From 707220b150d57ce89dae8c0413b5d5f1fc580dd2 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 14 Jun 2010 02:03:01 +0000 Subject: gpencil simplified filtering, unbiased smoothing, and pen eraser that works --- source/blender/editors/gpencil/gpencil_paint.c | 89 ++++++++++++++------------ 1 file changed, 49 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index e06722c1af1..544d87333d8 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -184,25 +184,22 @@ static void gp_get_3d_reference (tGPsdata *p, float *vec) /* check if the current mouse position is suitable for adding a new point */ static short gp_stroke_filtermval (tGPsdata *p, int mval[2], int pmval[2]) { - int dx= abs(mval[0] - pmval[0]); - int dy= abs(mval[1] - pmval[1]); - /* if buffer is empty, just let this go through (i.e. so that dots will work) */ if (p->gpd->sbuffer_size == 0) return 1; + else { + /* check if the distance since the last point is significant enough + no need for abs() or sqrt(), and don't bother checking Manhattan distance (ok?) */ + + int dx= mval[0] - pmval[0]; + int dy= mval[1] - pmval[1]; - /* check if mouse moved at least certain distance on both axes (best case) */ - else if ((dx > MIN_MANHATTEN_PX) && (dy > MIN_MANHATTEN_PX)) - return 1; - - /* check if the distance since the last point is significant enough */ - // future optimisation: sqrt here may be too slow? - else if (sqrt(dx*dx + dy*dy) > MIN_EUCLIDEAN_PX) - return 1; - - /* mouse 'didn't move' */ - else - return 0; + if ((dx*dx + dy*dy) > (MIN_EUCLIDEAN_PX * MIN_EUCLIDEAN_PX)) + return 1; + } + + /* pencil 'didn't move' if we make it this far */ + return 0; } /* convert screen-coordinates to buffer-coordinates */ @@ -349,30 +346,44 @@ static short gp_stroke_addpoint (tGPsdata *p, int mval[2], float pressure) /* smooth a stroke (in buffer) before storing it */ static void gp_stroke_smooth (tGPsdata *p) { - bGPdata *gpd= p->gpd; - int i=0, cmx=gpd->sbuffer_size; - /* only smooth if smoothing is enabled, and we're not doing a straight line */ if (!(U.gp_settings & GP_PAINT_DOSMOOTH) || (p->paintmode == GP_PAINTMODE_DRAW_STRAIGHT)) return; - - /* don't try if less than 2 points in buffer */ - if ((cmx <= 2) || (gpd->sbuffer == NULL)) - return; - - /* apply weighting-average (note doing this along path sequentially does introduce slight error) */ - for (i=0; i < gpd->sbuffer_size; i++) { - tGPspoint *pc= (((tGPspoint *)gpd->sbuffer) + i); - tGPspoint *pb= (i-1 > 0)?(pc-1):(pc); - tGPspoint *pa= (i-2 > 0)?(pc-2):(pb); - tGPspoint *pd= (i+1 < cmx)?(pc+1):(pc); - tGPspoint *pe= (i+2 < cmx)?(pc+2):(pd); + else { + bGPdata *gpd= p->gpd; + int num_points=gpd->sbuffer_size; - pc->x= (short)(0.1*pa->x + 0.2*pb->x + 0.4*pc->x + 0.2*pd->x + 0.1*pe->x); - pc->y= (short)(0.1*pa->y + 0.2*pb->y + 0.4*pc->y + 0.2*pd->y + 0.1*pe->y); + /* don't try if less than 5 points in buffer */ + if ((num_points <= 5) || (gpd->sbuffer == NULL)) + return; + else { + /* apply weighting-average (avoiding errors from sequential processing) */ + + tGPspoint *begin = (tGPspoint*)gpd->sbuffer + 2; + tGPspoint *end = (tGPspoint*)gpd->sbuffer + num_points - 2; + + tGPspoint orig_a = *(begin - 2); + tGPspoint orig_b = *(begin - 1); + + tGPspoint *c = begin; + tGPspoint *d = begin + 1; + tGPspoint *e = begin + 2; + + + for (; c < end; ++c, ++d, ++e) { + tGPspoint orig_c = *c; + + c->x= (short)(0.1*orig_a.x + 0.2*orig_b.x + 0.4*orig_c.x + 0.2*d->x + 0.1*e->x); + c->y= (short)(0.1*orig_a.y + 0.2*orig_b.y + 0.4*orig_c.y + 0.2*d->y + 0.1*e->y); + + orig_a = orig_b; + orig_b = orig_c; + } + } } } + /* simplify a stroke (in buffer) before storing it * - applies a reverse Chaikin filter * - code adapted from etch-a-ton branch (editarmature_sketch.c) @@ -385,12 +396,12 @@ static void gp_stroke_simplify (tGPsdata *p) short flag= gpd->sbuffer_sflag; short i, j; - /* only simplify if simlification is enabled, and we're not doing a straight line */ + /* only simplify if simplification is enabled, and we're not doing a straight line */ if (!(U.gp_settings & GP_PAINT_DOSIMPLIFY) || (p->paintmode == GP_PAINTMODE_DRAW_STRAIGHT)) return; /* don't simplify if less than 4 points in buffer */ - if ((num_points <= 2) || (old_points == NULL)) + if ((num_points < 4) || (old_points == NULL)) return; /* clear buffer (but don't free mem yet) so that we can write to it @@ -1283,8 +1294,10 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even tablet= (wmtab->Active != EVT_TABLET_NONE); p->pressure= wmtab->Pressure; - //if (wmtab->Active == EVT_TABLET_ERASER) + if (wmtab->Active == EVT_TABLET_ERASER) // TODO... this should get caught by the keymaps which call drawing in the first place + // .. but until that's possible, duct tape the eraser function back on + p->paintmode = GP_PAINTMODE_ERASER; } else p->pressure= 1.0f; @@ -1515,8 +1528,6 @@ static EnumPropertyItem prop_gpencil_drawmodes[] = { void GPENCIL_OT_draw (wmOperatorType *ot) { - PropertyRNA *prop; - /* identifiers */ ot->name= "Grease Pencil Draw"; ot->idname= "GPENCIL_OT_draw"; @@ -1533,8 +1544,6 @@ void GPENCIL_OT_draw (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; /* settings for drawing */ - prop= RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements."); - RNA_def_property_flag(prop, PROP_HIDDEN); - + RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements."); RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", ""); } -- cgit v1.2.3 From f399481251a4d375a494517925c64b3b3c6db7e8 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 7 Aug 2010 10:57:15 +0000 Subject: SpaceNav turntable and fit in 3D view. Tablet data rides with cursor/button events (incomplete! Mac-only for now). Grease pencil works better with pen. --- source/blender/blenlib/intern/math_rotation.c | 6 +- source/blender/editors/gpencil/gpencil_paint.c | 14 +- source/blender/editors/space_view3d/view3d_edit.c | 565 ++++++--------------- .../blender/editors/space_view3d/view3d_intern.h | 4 +- source/blender/editors/space_view3d/view3d_ops.c | 8 +- source/blender/makesdna/DNA_view3d_types.h | 16 +- source/blender/windowmanager/WM_types.h | 14 + .../blender/windowmanager/intern/wm_event_system.c | 512 +++++++++++-------- source/blender/windowmanager/intern/wm_window.c | 3 - source/blender/windowmanager/wm.h | 1 - source/blender/windowmanager/wm_event_types.h | 59 ++- 11 files changed, 539 insertions(+), 663 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index 6b5bf7743ef..ad6ce5c4448 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -132,7 +132,6 @@ void mul_fac_qt_fl(float *q, float fac) q[1]*= si; q[2]*= si; q[3]*= si; - } void quat_to_mat3(float m[][3], float *q) @@ -308,7 +307,6 @@ void mat3_to_quat_is_ok(float q[4], float wmat[3][3]) mul_qt_qtqt(q, q1, q2); } - void normalize_qt(float *q) { float len; @@ -585,7 +583,7 @@ void axis_angle_to_quat(float q[4], float axis[3], float angle) } /* Quaternions to Axis Angle */ -void quat_to_axis_angle(float axis[3], float *angle,float q[4]) +void quat_to_axis_angle(float axis[3], float *angle, float q[4]) { float ha, si; @@ -687,7 +685,7 @@ void mat4_to_axis_angle(float axis[3], float *angle,float mat[4][4]) } /****************************** Vector/Rotation ******************************/ -/* TODO: the following calls should probably be depreceated sometime */ +/* TODO: the following calls should probably be deprecated sometime */ /* 3x3 matrix to axis angle */ void mat3_to_vec_rot(float axis[3], float *angle,float mat[3][3]) diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 7656295fd61..68ae37a0a56 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1233,6 +1233,8 @@ static int gpencil_draw_cancel (bContext *C, wmOperator *op) /* create a new stroke point at the point indicated by the painting context */ static void gpencil_draw_apply (bContext *C, wmOperator *op, tGPsdata *p) { + printf("< pressure = %.2f\n", p->pressure); + /* handle drawing/erasing -> test for erasing first */ if (p->paintmode == GP_PAINTMODE_ERASER) { /* do 'live' erasing now */ @@ -1245,6 +1247,7 @@ static void gpencil_draw_apply (bContext *C, wmOperator *op, tGPsdata *p) } /* only add current point to buffer if mouse moved (even though we got an event, it might be just noise) */ else if (gp_stroke_filtermval(p, p->mval, p->mvalo)) { + /* try to add point */ short ok= gp_stroke_addpoint(p, p->mval, p->pressure); @@ -1293,11 +1296,18 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even wmTabletData *wmtab= event->customdata; tablet= (wmtab->Active != EVT_TABLET_NONE); - p->pressure= wmtab->Pressure; - if (wmtab->Active == EVT_TABLET_ERASER) + + + if (wmtab->Active == EVT_TABLET_ERASER) { // TODO... this should get caught by the keymaps which call drawing in the first place // .. but until that's possible, duct tape the eraser function back on p->paintmode = GP_PAINTMODE_ERASER; + p->pressure = wmtab->Pressure; + } + else { + /* 20% to 200% of normal mouse-based strength */ + p->pressure = 1.8 * wmtab->Pressure + 0.2; + } } else p->pressure= 1.0f; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index bce4a7e8f58..981b45c7396 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -313,7 +313,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event) QUATCOPY(vod->oldquat, rv3d->viewquat); vod->origx= vod->oldx= event->x; vod->origy= vod->oldy= event->y; - vod->origkey= event->type; /* the key that triggered the operator. */ + vod->origkey= event->type; /* the key that triggered the operator. */ vod->use_dyn_ofs= (U.uiflag & USER_ORBIT_SELECTION) ? 1:0; if (vod->use_dyn_ofs) { @@ -351,7 +351,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event) sub_v3_v3v3(my_pivot, rv3d->ofs, upvec); negate_v3(my_pivot); /* ofs is flipped */ - /* find a new ofs value that is allong the view axis (rather then the mouse location) */ + /* find a new ofs value that is along the view axis (rather then the mouse location) */ closest_to_line_v3(dvec, vod->dyn_ofs, my_pivot, my_origin); vod->dist0 = rv3d->dist = len_v3v3(my_pivot, dvec); @@ -498,7 +498,6 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf) /* assign map to operators */ WM_modalkeymap_assign(keymap, "VIEW3D_OT_rotate"); - } static void viewrotate_apply(ViewOpsData *vod, int x, int y) @@ -602,7 +601,6 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) int i; float viewmat[3][3]; - quat_to_mat3( viewmat,rv3d->viewquat); for (i = 0 ; i < 39; i++){ @@ -759,7 +757,6 @@ static int view3d_rotate_poll(bContext *C) void VIEW3D_OT_rotate(wmOperatorType *ot) { - /* identifiers */ ot->name= "Rotate view"; ot->description = "Rotate the view"; @@ -774,6 +771,169 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; } +// returns angular velocity (0..1), fills axis of rotation +// (shouldn't live in this file!) +float ndof_to_angle_axis(const float ndof[3], float axis[3]) + { + const float x = ndof[0]; + const float y = ndof[1]; + const float z = ndof[2]; + + float angular_velocity = sqrtf(x*x + y*y + z*z); + + float scale = 1.f / angular_velocity; + + // normalize + axis[0] = scale * x; + axis[1] = scale * y; + axis[2] = scale * z; + + return angular_velocity; + } + +static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float dt = ndof->dt; + + RegionView3D* rv3d = CTX_wm_region_view3d(C); + + if (dt > 0.25f) + /* this is probably the first event for this motion, so set dt to something reasonable */ + dt = 0.0125f; + + /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ + float phi, q1[4]; + float m[3][3]; + float m_inv[3][3]; + float xvec[3] = {1,0,0}; + + const float sensitivity = 0.035; + + /* Get the 3x3 matrix and its inverse from the quaternion */ + quat_to_mat3(m,rv3d->viewquat); + invert_m3_m3(m_inv,m); + + /* Determine the direction of the x vector (for rotating up and down) */ + /* This can likely be computed directly from the quaternion. */ + mul_m3_v3(m_inv,xvec); + + /* Perform the up/down rotation */ + phi = sensitivity * -ndof->rx; + q1[0] = cos(phi); + mul_v3_v3fl(q1+1, xvec, sin(phi)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + /* Perform the orbital rotation */ + phi = sensitivity * ndof->rz; + q1[0] = cos(phi); + q1[1] = q1[2] = 0.0; + q1[3] = sin(phi); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + ED_region_tag_redraw(CTX_wm_region(C)); + return OPERATOR_FINISHED; + } + +static int viewndof_invoke_1st_try(bContext *C, wmOperator *op, wmEvent *event) +{ + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float dt = ndof->dt; + + RegionView3D *rv3d= CTX_wm_region_view3d(C); + + if (dt > 0.25f) + /* this is probably the first event for this motion, so set dt to something reasonable */ + dt = 0.0125f; + + /* very simple for now, move viewpoint along world axes */ + rv3d->ofs[0] += dt * ndof->tx; + rv3d->ofs[1] += dt * ndof->ty; + rv3d->ofs[2] += dt * ndof->tz; + +// request_depth_update(CTX_wm_region_view3d(C)); /* need this? */ + ED_region_tag_redraw(CTX_wm_region(C)); + + return OPERATOR_FINISHED; +} + +static int viewndof_invoke_2nd_try(bContext *C, wmOperator *op, wmEvent *event) +{ + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float dt = ndof->dt; + + RegionView3D* rv3d = CTX_wm_region_view3d(C); + + if (dt > 0.25f) + /* this is probably the first event for this motion, so set dt to something reasonable */ + dt = 0.0125f; + + float axis[3]; + float angle = ndof_to_angle_axis(&(ndof->rx), axis); + + float eyeball_q[4];// = {0.f}; + +// float* eyeball_v = eyeball_q + 1; + + axis_angle_to_quat(eyeball_q, axis, angle); + + float eye_conj[4]; + copy_qt_qt(eye_conj, eyeball_q); + conjugate_qt(eye_conj); + +// float mat[3][3]; +// quat_to_mat3(mat, rv3d->viewquat); +/* + eyeball_v[0] = dt * ndof->tx; + eyeball_v[1] = dt * ndof->ty; + eyeball_v[2] = dt * ndof->tz; +*/ +// mul_m3_v3(mat, eyeball_vector); +// mul_qt_v3(rv3d->viewquat, eyeball_vector); + + // doesn't this transform v? + // v' = (q)(v)(~q) + + float view_q[4]; + copy_qt_qt(view_q, rv3d->viewquat); + +// float q_conj[4]; +// copy_qt_qt(q_conj, q); +// conjugate_qt(q_conj); + + mul_qt_qtqt(view_q, eyeball_q, view_q); + mul_qt_qtqt(view_q, view_q, eye_conj); + +// mul_qt_qtqt(eyeball_q, q, eyeball_q); +// mul_qt_qtqt(eyeball_q, eyeball_q, q_conj); + +// add_v3_v3(rv3d->ofs, eyeball_v); + + copy_qt_qt(rv3d->viewquat, view_q); + + ED_region_tag_redraw(CTX_wm_region(C)); + + return OPERATOR_FINISHED; +} + +void VIEW3D_OT_ndof(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Navigate view"; + ot->description = "Navigate the view using a 3D mouse."; + ot->idname = "VIEW3D_OT_ndof"; + + /* api callbacks */ + ot->invoke = viewndof_invoke; + ot->poll = ED_operator_view3d_active; + + /* flags */ + ot->flag = 0; +} + /* ************************ viewmove ******************************** */ @@ -839,7 +999,6 @@ static void viewmove_apply(ViewOpsData *vod, int x, int y) static int viewmove_modal(bContext *C, wmOperator *op, wmEvent *event) { - ViewOpsData *vod= op->customdata; short event_code= VIEW_PASS; @@ -2650,397 +2809,3 @@ int view_autodist_depth(struct ARegion *ar, short *mval, int margin, float *dept return (*depth==FLT_MAX) ? 0:1; return 0; } - -/* ********************* NDOF ************************ */ -/* note: this code is confusing and unclear... (ton) */ -/* **************************************************** */ - -// ndof scaling will be moved to user setting. -// In the mean time this is just a place holder. - -// Note: scaling in the plugin and ghostwinlay.c -// should be removed. With driver default setting, -// each axis returns approx. +-200 max deflection. - -// The values I selected are based on the older -// polling i/f. With event i/f, the sensistivity -// can be increased for improved response from -// small deflections of the device input. - - -// lukep notes : i disagree on the range. -// the normal 3Dconnection driver give +/-400 -// on defaut range in other applications -// and up to +/- 1000 if set to maximum -// because i remove the scaling by delta, -// which was a bad idea as it depend of the system -// speed and os, i changed the scaling values, but -// those are still not ok - - -float ndof_axis_scale[6] = { - +0.01, // Tx - +0.01, // Tz - +0.01, // Ty - +0.0015, // Rx - +0.0015, // Rz - +0.0015 // Ry -}; - -void filterNDOFvalues(float *sbval) -{ - int i=0; - float max = 0.0; - - for (i =0; i<6;i++) - if (fabs(sbval[i]) > max) - max = fabs(sbval[i]); - for (i =0; i<6;i++) - if (fabs(sbval[i]) != max ) - sbval[i]=0.0; -} - -// statics for controlling rv3d->dist corrections. -// viewmoveNDOF zeros and adjusts rv3d->ofs. -// viewmove restores based on dz_flag state. - -int dz_flag = 0; -float m_dist; - -void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode) -{ - RegionView3D *rv3d= ar->regiondata; - int i; - float phi; - float dval[7]; - // static fval[6] for low pass filter; device input vector is dval[6] - static float fval[6]; - float tvec[3],rvec[3]; - float q1[4]; - float mat[3][3]; - float upvec[3]; - - - /*---------------------------------------------------- - * sometimes this routine is called from headerbuttons - * viewmove needs to refresh the screen - */ -// XXX areawinset(ar->win); - - - // fetch the current state of the ndof device -// XXX getndof(dval); - - if (v3d->ndoffilter) - filterNDOFvalues(fval); - - // Scale input values - -// if(dval[6] == 0) return; // guard against divide by zero - - for(i=0;i<6;i++) { - - // user scaling - dval[i] = dval[i] * ndof_axis_scale[i]; - } - - - // low pass filter with zero crossing reset - - for(i=0;i<6;i++) { - if((dval[i] * fval[i]) >= 0) - dval[i] = (fval[i] * 15 + dval[i]) / 16; - else - fval[i] = 0; - } - - - // force perspective mode. This is a hack and is - // incomplete. It doesn't actually effect the view - // until the first draw and doesn't update the menu - // to reflect persp mode. - - rv3d->persp = RV3D_PERSP; - - - // Correct the distance jump if rv3d->dist != 0 - - // This is due to a side effect of the original - // mouse view rotation code. The rotation point is - // set a distance in front of the viewport to - // make rotating with the mouse look better. - // The distance effect is written at a low level - // in the view management instead of the mouse - // view function. This means that all other view - // movement devices must subtract this from their - // view transformations. - - if(rv3d->dist != 0.0) { - dz_flag = 1; - m_dist = rv3d->dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - sub_v3_v3(rv3d->ofs, upvec); - rv3d->dist = 0.0; - } - - - // Apply rotation - // Rotations feel relatively faster than translations only in fly mode, so - // we have no choice but to fix that here (not in the plugins) - rvec[0] = -0.5 * dval[3]; - rvec[1] = -0.5 * dval[4]; - rvec[2] = -0.5 * dval[5]; - - // rotate device x and y by view z - - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, rvec); - - // rotate the view - - phi = normalize_v3(rvec); - if(phi != 0) { - axis_angle_to_quat(q1,rvec,phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - } - - - // Apply translation - - tvec[0] = dval[0]; - tvec[1] = dval[1]; - tvec[2] = -dval[2]; - - // the next three lines rotate the x and y translation coordinates - // by the current z axis angle - - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, tvec); - - // translate the view - - sub_v3_v3(rv3d->ofs, tvec); - - - /*---------------------------------------------------- - * refresh the screen XXX - */ - - // update render preview window - -// XXX BIF_view3d_previewrender_signal(ar, PR_DBASE|PR_DISPRECT); -} - -void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode) -{ - RegionView3D *rv3d= ar->regiondata; - float fval[7]; - float dvec[3]; - float sbadjust = 1.0f; - float len; - short use_sel = 0; - Object *ob = OBACT; - float m[3][3]; - float m_inv[3][3]; - float xvec[3] = {1,0,0}; - float yvec[3] = {0,-1,0}; - float zvec[3] = {0,0,1}; - float phi; - float q1[4]; - float obofs[3]; - float reverse; - //float diff[4]; - float d, curareaX, curareaY; - float mat[3][3]; - float upvec[3]; - - /* Sensitivity will control how fast the view rotates. The value was - * obtained experimentally by tweaking until the author didn't get dizzy watching. - * Perhaps this should be a configurable user parameter. - */ - float psens = 0.005f * (float) U.ndof_pan; /* pan sensitivity */ - float rsens = 0.005f * (float) U.ndof_rotate; /* rotate sensitivity */ - float zsens = 0.3f; /* zoom sensitivity */ - - const float minZoom = -30.0f; - const float maxZoom = 300.0f; - - //reset view type - rv3d->view = 0; -//printf("passing here \n"); -// - if (scene->obedit==NULL && ob && !(ob->mode & OB_MODE_POSE)) { - use_sel = 1; - } - - if((dz_flag)||rv3d->dist==0) { - dz_flag = 0; - rv3d->dist = m_dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - add_v3_v3(rv3d->ofs, upvec); - } - - /*---------------------------------------------------- - * sometimes this routine is called from headerbuttons - * viewmove needs to refresh the screen - */ -// XXX areawinset(curarea->win); - - /*---------------------------------------------------- - * record how much time has passed. clamp at 10 Hz - * pretend the previous frame occurred at the clamped time - */ -// now = PIL_check_seconds_timer(); - // frametime = (now - prevTime); - // if (frametime > 0.1f){ /* if more than 1/10s */ - // frametime = 1.0f/60.0; /* clamp at 1/60s so no jumps when starting to move */ -// } -// prevTime = now; - // sbadjust *= 60 * frametime; /* normalize ndof device adjustments to 100Hz for framerate independence */ - - /* fetch the current state of the ndof device & enforce dominant mode if selected */ -// XXX getndof(fval); - if (v3d->ndoffilter) - filterNDOFvalues(fval); - - - // put scaling back here, was previously in ghostwinlay - fval[0] = fval[0] * (1.0f/600.0f); - fval[1] = fval[1] * (1.0f/600.0f); - fval[2] = fval[2] * (1.0f/1100.0f); - fval[3] = fval[3] * 0.00005f; - fval[4] =-fval[4] * 0.00005f; - fval[5] = fval[5] * 0.00005f; - fval[6] = fval[6] / 1000000.0f; - - // scale more if not in perspective mode - if (rv3d->persp == RV3D_ORTHO) { - fval[0] = fval[0] * 0.05f; - fval[1] = fval[1] * 0.05f; - fval[2] = fval[2] * 0.05f; - fval[3] = fval[3] * 0.9f; - fval[4] = fval[4] * 0.9f; - fval[5] = fval[5] * 0.9f; - zsens *= 8; - } - - /* set object offset */ - if (ob) { - obofs[0] = -ob->obmat[3][0]; - obofs[1] = -ob->obmat[3][1]; - obofs[2] = -ob->obmat[3][2]; - } - else { - VECCOPY(obofs, rv3d->ofs); - } - - /* calc an adjustment based on distance from camera - disabled per patch 14402 */ - d = 1.0f; - -/* if (ob) { - sub_v3_v3v3(diff, obofs, rv3d->ofs); - d = len_v3(diff); - } -*/ - - reverse = (rv3d->persmat[2][1] < 0.0f) ? -1.0f : 1.0f; - - /*---------------------------------------------------- - * ndof device pan - */ - psens *= 1.0f + d; - curareaX = sbadjust * psens * fval[0]; - curareaY = sbadjust * psens * fval[1]; - dvec[0] = curareaX * rv3d->persinv[0][0] + curareaY * rv3d->persinv[1][0]; - dvec[1] = curareaX * rv3d->persinv[0][1] + curareaY * rv3d->persinv[1][1]; - dvec[2] = curareaX * rv3d->persinv[0][2] + curareaY * rv3d->persinv[1][2]; - add_v3_v3(rv3d->ofs, dvec); - - /*---------------------------------------------------- - * ndof device dolly - */ - len = zsens * sbadjust * fval[2]; - - if (rv3d->persp==RV3D_CAMOB) { - if(rv3d->persp==RV3D_CAMOB) { /* This is stupid, please fix - TODO */ - rv3d->camzoom+= 10.0f * -len; - } - if (rv3d->camzoom < minZoom) rv3d->camzoom = minZoom; - else if (rv3d->camzoom > maxZoom) rv3d->camzoom = maxZoom; - } - else if ((rv3d->dist> 0.001*v3d->grid) && (rv3d->dist<10.0*v3d->far)) { - rv3d->dist*=(1.0 + len); - } - - - /*---------------------------------------------------- - * ndof device turntable - * derived from the turntable code in viewmove - */ - - /* Get the 3x3 matrix and its inverse from the quaternion */ - quat_to_mat3( m,rv3d->viewquat); - invert_m3_m3(m_inv,m); - - /* Determine the direction of the x vector (for rotating up and down) */ - /* This can likely be compuated directly from the quaternion. */ - mul_m3_v3(m_inv,xvec); - mul_m3_v3(m_inv,yvec); - mul_m3_v3(m_inv,zvec); - - /* Perform the up/down rotation */ - phi = sbadjust * rsens * /*0.5f * */ fval[3]; /* spin vertically half as fast as horizontally */ - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, xvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - if (use_sel) { - conjugate_qt(q1); /* conj == inv for unit quat */ - sub_v3_v3(rv3d->ofs, obofs); - mul_qt_v3(q1, rv3d->ofs); - add_v3_v3(rv3d->ofs, obofs); - } - - /* Perform the orbital rotation */ - /* Perform the orbital rotation - If the seen Up axis is parallel to the zoom axis, rotation should be - achieved with a pure Roll motion (no Spin) on the device. When you start - to tilt, moving from Top to Side view, Spinning will increasingly become - more relevant while the Roll component will decrease. When a full - Side view is reached, rotations around the world's Up axis are achieved - with a pure Spin-only motion. In other words the control of the spinning - around the world's Up axis should move from the device's Spin axis to the - device's Roll axis depending on the orientation of the world's Up axis - relative to the screen. */ - //phi = sbadjust * rsens * reverse * fval[4]; /* spin the knob, y axis */ - phi = sbadjust * rsens * (yvec[2] * fval[4] + zvec[2] * fval[5]); - q1[0] = cos(phi); - q1[1] = q1[2] = 0.0; - q1[3] = sin(phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - if (use_sel) { - conjugate_qt(q1); - sub_v3_v3(rv3d->ofs, obofs); - mul_qt_v3(q1, rv3d->ofs); - add_v3_v3(rv3d->ofs, obofs); - } - - /*---------------------------------------------------- - * refresh the screen - */ -// XXX scrarea_do_windraw(curarea); -} - - - - diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 846300ff9a6..ca75eb81724 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -71,6 +71,7 @@ void view3d_keymap(struct wmKeyConfig *keyconf); void VIEW3D_OT_zoom(struct wmOperatorType *ot); void VIEW3D_OT_move(struct wmOperatorType *ot); void VIEW3D_OT_rotate(struct wmOperatorType *ot); +void VIEW3D_OT_ndof(struct wmOperatorType *ot); void VIEW3D_OT_view_all(struct wmOperatorType *ot); void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot); void VIEW3D_OT_view_selected(struct wmOperatorType *ot); @@ -98,8 +99,6 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, struct ARegion *ar, struct bAnimVizSettings *avs, struct bMotionPath *mpath); void draw_motion_paths_cleanup(Scene *scene, View3D *v3d, struct ARegion *ar); - - /* drawobject.c */ void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int flag); int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt); @@ -192,4 +191,3 @@ void draw_volume(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, st #endif /* ED_VIEW3D_INTERN_H */ - diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 22fab5887ee..dced49494ca 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -28,6 +28,7 @@ #include #include +#include // [mce] debug, remove when finished #include "MEM_guardedalloc.h" @@ -61,6 +62,7 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_rotate); WM_operatortype_append(VIEW3D_OT_move); WM_operatortype_append(VIEW3D_OT_zoom); + WM_operatortype_append(VIEW3D_OT_ndof); WM_operatortype_append(VIEW3D_OT_view_all); WM_operatortype_append(VIEW3D_OT_viewnumpad); WM_operatortype_append(VIEW3D_OT_view_orbit); @@ -155,12 +157,17 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0)->ptr, "center", 0); /* only without camera view */ RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1); + /* 3D mouse */ + WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON1, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "VIEW3D_OT_ndof", NDOF_MOTION, 0, 0, 0); + /* numpad view hotkeys*/ RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD0, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_CAMERA); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD2, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPDOWN); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD4, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT); + WM_keymap_add_item(keymap, "VIEW3D_OT_view_persportho", PAD5, KM_PRESS, 0, 0); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD6, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); @@ -300,4 +307,3 @@ void view3d_keymap(wmKeyConfig *keyconf) viewmove_modal_keymap(keyconf); viewzoom_modal_keymap(keyconf); } - diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index c5516a3bff5..23934f665c5 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -47,10 +47,10 @@ struct wmTimer; /* This is needed to not let VC choke on near and far... old * proprietary MS extensions... */ #ifdef WIN32 -#undef near -#undef far -#define near clipsta -#define far clipend + #undef near + #undef far + #define near clipsta + #define far clipend #endif #include "DNA_listBase.h" @@ -137,12 +137,12 @@ typedef struct View3D { float blockscale; short blockhandler[8]; - float viewquat[4], dist, pad1; /* XXX depricated */ + float viewquat[4], dist, pad1; /* XXX deprecated */ int lay_used; /* used while drawing */ - short persp; /* XXX depricated */ - short view; /* XXX depricated */ + short persp; /* XXX deprecated */ + short view; /* XXX deprecated */ struct Object *camera, *ob_centre; @@ -298,5 +298,3 @@ typedef struct View3D { #define V3D_BGPIC_EXPANDED 2 #endif - - diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index c84a5e64889..e6e75bf793c 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -346,6 +346,7 @@ typedef struct wmEvent { } wmEvent; /* ************** custom wmEvent data ************** */ + typedef struct wmTabletData { int Active; /* 0=EVT_TABLET_NONE, 1=EVT_TABLET_STYLUS, 2=EVT_TABLET_ERASER */ float Pressure; /* range 0.0 (not touching) to 1.0 (full pressure) */ @@ -371,6 +372,19 @@ typedef struct wmTimer { int sleep; /* internal, put timers to sleep when needed */ } wmTimer; +typedef struct { + /* awfully similar to GHOST_TEventNDOFMotionData... */ + + /* Each component normally ranges from -1 to +1, but can exceed that. */ + + float tx, ty, tz; /* translation: -x left, +y forward, -z up */ + float rx, ry, rz; /* rotation: + axis = (rx,ry,rz).normalized + amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */ + + float dt; // time since previous NDOF Motion event (or zero if this is the first) +} wmNDOFMotionData; + typedef struct wmOperatorType { struct wmOperatorType *next, *prev; diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 63dcda3c12e..030ce7fa888 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -29,6 +29,7 @@ #include #include #include +#include // [mce] debug, remove when finished #include "DNA_listBase.h" #include "DNA_screen_types.h" @@ -99,7 +100,7 @@ void wm_event_free(wmEvent *event) void wm_event_free_all(wmWindow *win) { wmEvent *event; - + while((event= win->queue.first)) { BLI_remlink(&win->queue, event); wm_event_free(event); @@ -115,7 +116,7 @@ static int wm_test_duplicate_notifier(wmWindowManager *wm, unsigned int type, vo for(note=wm->queue.first; note; note=note->next) if((note->category|note->data|note->subtype|note->action) == type && note->reference == reference) return 1; - + return 0; } @@ -123,20 +124,20 @@ static int wm_test_duplicate_notifier(wmWindowManager *wm, unsigned int type, vo void WM_event_add_notifier(const bContext *C, unsigned int type, void *reference) { wmNotifier *note= MEM_callocN(sizeof(wmNotifier), "notifier"); - + note->wm= CTX_wm_manager(C); BLI_addtail(¬e->wm->queue, note); - + note->window= CTX_wm_window(C); - + if(CTX_wm_region(C)) note->swinid= CTX_wm_region(C)->swinid; - + note->category= type & NOTE_CATEGORY; note->data= type & NOTE_DATA; note->subtype= type & NOTE_SUBTYPE; note->action= type & NOTE_ACTION; - + note->reference= reference; } @@ -147,15 +148,15 @@ void WM_main_add_notifier(unsigned int type, void *reference) if(wm && !wm_test_duplicate_notifier(wm, type, reference)) { wmNotifier *note= MEM_callocN(sizeof(wmNotifier), "notifier"); - + note->wm= wm; BLI_addtail(¬e->wm->queue, note); - + note->category= type & NOTE_CATEGORY; note->data= type & NOTE_DATA; note->subtype= type & NOTE_SUBTYPE; note->action= type & NOTE_ACTION; - + note->reference= reference; } } @@ -177,13 +178,13 @@ void wm_event_do_notifiers(bContext *C) if(wm==NULL) return; - + /* cache & catch WM level notifiers, such as frame change, scene/screen set */ for(win= wm->windows.first; win; win= win->next) { int do_anim= 0; - + CTX_wm_window_set(C, win); - + for(note= wm->queue.first; note; note= next) { next= note->next; @@ -219,13 +220,12 @@ void wm_event_do_notifiers(bContext *C) } else if(note->data==ND_FRAME) do_anim= 1; - + if(note->action == NA_REMOVED) { ED_screen_delete_scene(C, note->reference); // XXX hrms, think this over! if(G.f & G_DEBUG) printf("scene delete %p\n", note->reference); } - } } if(ELEM5(note->category, NC_SCENE, NC_OBJECT, NC_GEOM, NC_SCENE, NC_WM)) { @@ -245,13 +245,13 @@ void wm_event_do_notifiers(bContext *C) } } } - + /* the notifiers are sent without context, to keep it clean */ while( (note=wm_notifier_next(wm)) ) { wmWindow *win; - + for(win= wm->windows.first; win; win= win->next) { - + /* filter out notifiers */ if(note->category==NC_SCREEN && note->reference && note->reference!=win->screen); else if(note->category==NC_SCENE && note->reference && note->reference!=win->screen->scene); @@ -268,7 +268,7 @@ void wm_event_do_notifiers(bContext *C) for(ar=win->screen->regionbase.first; ar; ar= ar->next) { ED_region_do_listen(ar, note); } - + for(sa= win->screen->areabase.first; sa; sa= sa->next) { ED_area_do_listen(sa, note); for(ar=sa->regionbase.first; ar; ar= ar->next) { @@ -277,14 +277,14 @@ void wm_event_do_notifiers(bContext *C) } } } - + MEM_freeN(note); } - + /* cached: editor refresh callbacks now, they get context */ for(win= wm->windows.first; win; win= win->next) { ScrArea *sa; - + CTX_wm_window_set(C, win); for(sa= win->screen->areabase.first; sa; sa= sa->next) { if(sa->do_refresh) { @@ -292,7 +292,7 @@ void wm_event_do_notifiers(bContext *C) ED_area_do_refresh(C, sa); } } - + /* XXX make lock in future, or separated derivedmesh users in scene */ if(!G.rendering) /* depsgraph & animation: update tagged datablocks */ @@ -310,7 +310,7 @@ static int wm_handler_ui_call(bContext *C, wmEventHandler *handler, wmEvent *eve ARegion *region= CTX_wm_region(C); ARegion *menu= CTX_wm_menu(C); int retval; - + /* we set context to where ui handler came from */ if(handler->ui_area) CTX_wm_area_set(C, handler->ui_area); if(handler->ui_region) CTX_wm_region_set(C, handler->ui_region); @@ -362,14 +362,14 @@ static void wm_handler_ui_cancel(bContext *C) int WM_operator_poll(bContext *C, wmOperatorType *ot) { wmOperatorTypeMacro *otmacro; - + for(otmacro= ot->macro.first; otmacro; otmacro= otmacro->next) { wmOperatorType *ot= WM_operatortype_find(otmacro->idname, 0); if(0==WM_operator_poll(C, ot)) return 0; } - + /* python needs operator type, so we added exception for it */ if(ot->pyop_poll) return ot->pyop_poll(C, ot); @@ -391,7 +391,7 @@ static void wm_operator_reports(bContext *C, wmOperator *op, int retval, int pop wmWindowManager *wm = CTX_wm_manager(C); ReportList *reports = CTX_wm_reports(C); char *buf; - + if(popup) if(op->reports->list.first) uiPupMenuReports(C, op->reports); @@ -399,7 +399,7 @@ static void wm_operator_reports(bContext *C, wmOperator *op, int retval, int pop if(retval & OPERATOR_FINISHED) { if(G.f & G_DEBUG) wm_operator_print(op); /* todo - this print may double up, might want to check more flags then the FINISHED */ - + if (op->type->flag & OPTYPE_REGISTER) { /* Report the python string representation of the operator */ buf = WM_operator_pystring(C, op->type, op->ptr, 1); @@ -410,16 +410,16 @@ static void wm_operator_reports(bContext *C, wmOperator *op, int retval, int pop if (op->reports->list.first) { ReportTimerInfo *rti; - + /* add reports to the global list, otherwise they are not seen */ addlisttolist(&CTX_wm_reports(C)->list, &op->reports->list); - + /* After adding reports to the global list, reset the report timer. */ WM_event_remove_timer(wm, NULL, reports->reporttimer); - + /* Records time since last report was added */ reports->reporttimer= WM_event_add_timer(wm, CTX_wm_window(C), TIMER, 0.02); - + rti = MEM_callocN(sizeof(ReportTimerInfo), "ReportTimerInfo"); reports->reporttimer->customdata = rti; } @@ -457,13 +457,13 @@ static int wm_operator_exec(bContext *C, wmOperator *op, int repeat) { wmWindowManager *wm= CTX_wm_manager(C); int retval= OPERATOR_CANCELLED; - + if(op==NULL || op->type==NULL) return retval; - + if(0==WM_operator_poll(C, op->type)) return retval; - + if(op->type->exec) { if(op->type->flag & OPTYPE_UNDO) wm->op_undo_depth++; @@ -473,17 +473,16 @@ static int wm_operator_exec(bContext *C, wmOperator *op, int repeat) if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; } - + if (retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED) && repeat == 0) wm_operator_reports(C, op, retval, 0); - + if(retval & OPERATOR_FINISHED) wm_operator_finished(C, op, repeat); else if(repeat==0) WM_operator_free(op); - + return retval | OPERATOR_HANDLED; - } /* for running operators with frozen context (modal handlers, menus) */ @@ -501,11 +500,11 @@ int WM_operator_repeat(bContext *C, wmOperator *op) static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, PointerRNA *properties, ReportList *reports) { wmOperator *op= MEM_callocN(sizeof(wmOperator), ot->idname); /* XXX operatortype names are static still. for debug */ - + /* XXX adding new operator could be function, only happens here now */ op->type= ot; BLI_strncpy(op->idname, ot->idname, OP_MAX_TYPENAME); - + /* initialize properties, either copy or create */ op->ptr= MEM_callocN(sizeof(PointerRNA), "wmOperatorPtrRNA"); if(properties && properties->data) { @@ -525,20 +524,19 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P op->reports= MEM_mallocN(sizeof(ReportList), "wmOperatorReportList"); BKE_reports_init(op->reports, RPT_STORE|RPT_FREE); } - + /* recursive filling of operator macro list */ if(ot->macro.first) { static wmOperator *motherop= NULL; wmOperatorTypeMacro *otmacro; int root = 0; - + /* ensure all ops are in execution order in 1 list */ if(motherop==NULL) { motherop = op; root = 1; } - /* if properties exist, it will contain everything needed */ if (properties) { otmacro= ot->macro.first; @@ -573,11 +571,11 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P opm->opm= motherop; /* pointer to mom, for modal() */ } } - + if (root) motherop= NULL; } - + WM_operator_properties_sanitize(op->ptr, 0); return op; @@ -600,10 +598,10 @@ int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerR if(WM_operator_poll(C, ot)) { wmOperator *op= wm_operator_create(wm, ot, properties, reports); /* if reports==NULL, theyll be initialized */ - + if((G.f & G_DEBUG) && event && event->type!=MOUSEMOVE) printf("handle evt %d win %d op %s\n", event?event->type:0, CTX_wm_screen(C)->subwinactive, ot->idname); - + if(op->type->invoke && event) { wm_region_mouse_co(C, event); @@ -626,14 +624,13 @@ int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerR } else printf("invalid operator call %s\n", ot->idname); /* debug, important to leave a while, should never happen */ - + /* Note, if the report is given as an argument then assume the caller will deal with displaying them * currently python only uses this */ if (!(retval & OPERATOR_HANDLED) && retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED)) /* only show the report if the report list was not given in the function */ wm_operator_reports(C, op, retval, (reports==NULL)); - - + if(retval & OPERATOR_HANDLED) ; /* do nothing, wm_operator_exec() has been called somewhere */ else if(retval & OPERATOR_FINISHED) { @@ -708,7 +705,7 @@ static int wm_operator_call_internal(bContext *C, wmOperatorType *ot, int contex } switch(context) { - + case WM_OP_EXEC_REGION_WIN: case WM_OP_INVOKE_REGION_WIN: case WM_OP_EXEC_REGION_CHANNELS: @@ -727,36 +724,36 @@ static int wm_operator_call_internal(bContext *C, wmOperatorType *ot, int contex case WM_OP_EXEC_REGION_CHANNELS: case WM_OP_INVOKE_REGION_CHANNELS: type = RGN_TYPE_CHANNELS; - + case WM_OP_EXEC_REGION_PREVIEW: case WM_OP_INVOKE_REGION_PREVIEW: type = RGN_TYPE_PREVIEW; break; - + case WM_OP_EXEC_REGION_WIN: case WM_OP_INVOKE_REGION_WIN: default: type = RGN_TYPE_WINDOW; break; } - + if(!(ar && ar->regiontype == type) && area) { ARegion *ar1= BKE_area_find_region_type(area, type); if(ar1) CTX_wm_region_set(C, ar1); } - + retval= wm_operator_invoke(C, ot, event, properties, reports); - + /* set region back */ CTX_wm_region_set(C, ar); - + return retval; } case WM_OP_EXEC_AREA: case WM_OP_INVOKE_AREA: { - /* remove region from context */ + /* remove region from context */ ARegion *ar= CTX_wm_region(C); CTX_wm_region_set(C, NULL); @@ -785,7 +782,7 @@ static int wm_operator_call_internal(bContext *C, wmOperatorType *ot, int contex return wm_operator_invoke(C, ot, event, properties, reports); } } - + return 0; } @@ -828,13 +825,13 @@ int WM_operator_call_py(bContext *C, wmOperatorType *ot, int context, PointerRNA #endif retval= wm_operator_call_internal(C, ot, context, properties, reports); - + /* keep the reports around if needed later */ if (retval & OPERATOR_RUNNING_MODAL || ot->flag & OPTYPE_REGISTER) { reports->flag |= RPT_FREE; } - + return retval; } @@ -851,13 +848,13 @@ void wm_event_free_handler(wmEventHandler *handler) static void wm_handler_op_context(bContext *C, wmEventHandler *handler) { bScreen *screen= CTX_wm_screen(C); - + if(screen && handler->op) { if(handler->op_area==NULL) CTX_wm_area_set(C, NULL); else { ScrArea *sa; - + for(sa= screen->areabase.first; sa; sa= sa->next) if(sa==handler->op_area) break; @@ -886,16 +883,16 @@ void WM_event_remove_handlers(bContext *C, ListBase *handlers) { wmEventHandler *handler; wmWindowManager *wm= CTX_wm_manager(C); - + /* C is zero on freeing database, modal handlers then already were freed */ while((handler=handlers->first)) { BLI_remlink(handlers, handler); - + if(handler->op) { if(handler->op->type->cancel) { ScrArea *area= CTX_wm_area(C); ARegion *region= CTX_wm_region(C); - + wm_handler_op_context(C, handler); if(handler->op->type->flag & OPTYPE_UNDO) @@ -917,7 +914,7 @@ void WM_event_remove_handlers(bContext *C, ListBase *handlers) ScrArea *area= CTX_wm_area(C); ARegion *region= CTX_wm_region(C); ARegion *menu= CTX_wm_menu(C); - + if(handler->ui_area) CTX_wm_area_set(C, handler->ui_area); if(handler->ui_region) CTX_wm_region_set(C, handler->ui_region); if(handler->ui_menu) CTX_wm_menu_set(C, handler->ui_menu); @@ -942,45 +939,45 @@ int WM_userdef_event_map(int kmitype) return LEFTMOUSE; else return RIGHTMOUSE; - + case ACTIONMOUSE: if(U.flag & USER_LMOUSESELECT) return RIGHTMOUSE; else return LEFTMOUSE; - + case WHEELOUTMOUSE: if(U.uiflag & USER_WHEELZOOMDIR) return WHEELUPMOUSE; else return WHEELDOWNMOUSE; - + case WHEELINMOUSE: if(U.uiflag & USER_WHEELZOOMDIR) return WHEELDOWNMOUSE; else return WHEELUPMOUSE; - + case EVT_TWEAK_A: if(U.flag & USER_LMOUSESELECT) return EVT_TWEAK_R; else return EVT_TWEAK_L; - + case EVT_TWEAK_S: if(U.flag & USER_LMOUSESELECT) return EVT_TWEAK_L; else return EVT_TWEAK_R; } - + return kmitype; } static void wm_eventemulation(wmEvent *event) { static int mmb_emulated = 0; /* this should be in a data structure somwhere */ - + /* middlemouse emulation */ if(U.flag & USER_TWOBUTTONMOUSE) { if(event->type == LEFTMOUSE && (event->alt || mmb_emulated == KM_PRESS)) { @@ -1032,10 +1029,10 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi) if(ISTEXTINPUT(winevent->type) && winevent->ascii) return 1; if(kmitype!=KM_ANY) if(winevent->type!=kmitype) return 0; - + if(kmi->val!=KM_ANY) if(winevent->val!=kmi->val) return 0; - + /* modifiers also check bits, so it allows modifier order */ if(kmi->shift!=KM_ANY) if(winevent->shift != kmi->shift && !(winevent->shift & kmi->shift)) return 0; @@ -1045,16 +1042,16 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi) if(winevent->alt != kmi->alt && !(winevent->alt & kmi->alt)) return 0; if(kmi->oskey!=KM_ANY) if(winevent->oskey != kmi->oskey && !(winevent->oskey & kmi->oskey)) return 0; - + if(kmi->keymodifier) if(winevent->keymodifier!=kmi->keymodifier) return 0; - + /* key modifiers always check when event has it */ /* otherwise regular keypresses with keymodifier still work */ if(winevent->keymodifier) if(ISTEXTINPUT(winevent->type)) if(winevent->keymodifier!=kmi->keymodifier) return 0; - + return 1; } @@ -1077,7 +1074,6 @@ static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent *eve for(kmi= keymap->items.first; kmi; kmi= kmi->next) { if(wm_eventmatch(event, kmi)) { - event->type= EVT_MODAL_MAP; event->val= kmi->propvalue; } @@ -1089,7 +1085,7 @@ static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent *eve static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHandler *handler, wmEvent *event, PointerRNA *properties) { int retval= OPERATOR_PASS_THROUGH; - + /* derived, modal or blocking operator */ if(handler->op) { wmOperator *op= handler->op; @@ -1100,11 +1096,11 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand wmWindowManager *wm= CTX_wm_manager(C); ScrArea *area= CTX_wm_area(C); ARegion *region= CTX_wm_region(C); - + wm_handler_op_context(C, handler); wm_region_mouse_co(C, event); wm_event_modalkeymap(C, op, event); - + if(ot->flag & OPTYPE_UNDO) wm->op_undo_depth++; @@ -1122,11 +1118,11 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand /* this special cases is for areas and regions that get removed */ CTX_wm_area_set(C, NULL); CTX_wm_region_set(C, NULL); - } + } if(retval & (OPERATOR_CANCELLED|OPERATOR_FINISHED)) wm_operator_reports(C, op, retval, 0); - + if(retval & OPERATOR_FINISHED) { wm_operator_finished(C, op, 0); handler->op= NULL; @@ -1135,18 +1131,17 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand WM_operator_free(op); handler->op= NULL; } - + /* remove modal handler, operator itself should have been cancelled and freed */ if(retval & (OPERATOR_CANCELLED|OPERATOR_FINISHED)) { WM_cursor_ungrab(CTX_wm_window(C)); BLI_remlink(handlers, handler); wm_event_free_handler(handler); - + /* prevent silly errors from operator users */ //retval &= ~OPERATOR_PASS_THROUGH; } - } else printf("wm_handler_operator_call error\n"); @@ -1178,18 +1173,18 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa wmWindowManager *wm= CTX_wm_manager(C); SpaceFile *sfile; int action= WM_HANDLER_CONTINUE; - + if(event->type != EVT_FILESELECT) return action; if(handler->op != (wmOperator *)event->customdata) return action; - + switch(event->val) { case EVT_FILESELECT_OPEN: case EVT_FILESELECT_FULL_OPEN: - { + { ScrArea *sa; - + /* sa can be null when window A is active, but mouse is over window B */ /* in this case, open file select in original window A */ if (handler->op_area == NULL) { @@ -1197,37 +1192,37 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa sa = (ScrArea *)screen->areabase.first; } else sa = handler->op_area; - + if(event->val==EVT_FILESELECT_OPEN) ED_area_newspace(C, sa, SPACE_FILE); else ED_screen_full_newspace(C, sa, SPACE_FILE); /* sets context */ - + /* settings for filebrowser, sfile is not operator owner but sends events */ sa = CTX_wm_area(C); sfile= (SpaceFile*)sa->spacedata.first; sfile->op= handler->op; ED_fileselect_set_params(sfile); - + action= WM_HANDLER_BREAK; } break; - + case EVT_FILESELECT_EXEC: case EVT_FILESELECT_CANCEL: { /* XXX validate area and region? */ bScreen *screen= CTX_wm_screen(C); - + if(screen != handler->filescreen) ED_screen_full_prevspace(C, CTX_wm_area(C)); else ED_area_prevspace(C, CTX_wm_area(C)); - + /* remlink now, for load file case */ BLI_remlink(handlers, handler); - + wm_handler_op_context(C, handler); /* needed for uiPupMenuReports */ @@ -1253,11 +1248,11 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa if(handler->op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; - + if (retval & OPERATOR_FINISHED) if(G.f & G_DEBUG) wm_operator_print(handler->op); - + if(wm->op_undo_depth == 0) if(handler->op->type->flag & OPTYPE_UNDO) ED_undo_push_op(C, handler->op); @@ -1299,14 +1294,14 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa } CTX_wm_area_set(C, NULL); - + wm_event_free_handler(handler); - + action= WM_HANDLER_BREAK; } break; } - + return action; } @@ -1358,7 +1353,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) if(handler_boundbox_test(handler, event)) { /* in advance to avoid access to freed event on window close */ always_pass= wm_event_always_pass(event); - + /* modal+blocking handler */ if(handler->flag & WM_HANDLER_BLOCKING) action |= WM_HANDLER_BREAK; @@ -1366,13 +1361,13 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) if(handler->keymap) { wmKeyMap *keymap= WM_keymap_active(wm, handler->keymap); wmKeyMapItem *kmi; - + if(!keymap->poll || keymap->poll(C)) { for(kmi= keymap->items.first; kmi; kmi= kmi->next) { if(wm_eventmatch(event, kmi)) { - + event->keymap_idname= kmi->idname; /* weak, but allows interactive callback to not use rawkey */ - + action |= wm_handler_operator_call(C, handlers, handler, event, kmi->ptr); if(action & WM_HANDLER_BREAK) /* not always_pass here, it denotes removed handler */ break; @@ -1398,7 +1393,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) for(drag= lb->first; drag; drag= drag->next) { if(drop->poll(C, drag, event)) { drop->copy(drag, drop); - + wm_operator_invoke(C, drop->ot, event, drop->ptr, NULL); action |= WM_HANDLER_BREAK; } @@ -1419,7 +1414,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) break; } } - + /* fileread case */ if(CTX_wm_window(C)==NULL) return action; @@ -1443,7 +1438,6 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) action |= wm_handlers_do(C, event, handlers); } - /* revert value if not handled */ if (wm_action_not_handled(action)) { event->val = KM_RELEASE; @@ -1473,7 +1467,7 @@ static ScrArea *area_event_inside(bContext *C, int x, int y) { bScreen *screen= CTX_wm_screen(C); ScrArea *sa; - + if(screen) for(sa= screen->areabase.first; sa; sa= sa->next) if(BLI_in_rcti(&sa->totrct, x, y)) @@ -1486,7 +1480,7 @@ static ARegion *region_event_inside(bContext *C, int x, int y) bScreen *screen= CTX_wm_screen(C); ScrArea *area= CTX_wm_area(C); ARegion *ar; - + if(screen && area) for(ar= area->regionbase.first; ar; ar= ar->next) if(BLI_in_rcti(&ar->winrct, x, y)) @@ -1512,21 +1506,21 @@ static void wm_paintcursor_tag(bContext *C, wmPaintCursor *pc, ARegion *ar) static void wm_paintcursor_test(bContext *C, wmEvent *event) { wmWindowManager *wm= CTX_wm_manager(C); - + if(wm->paintcursors.first) { ARegion *ar= CTX_wm_region(C); if(ar) wm_paintcursor_tag(C, wm->paintcursors.first, ar); - + /* if previous position was not in current region, we have to set a temp new context */ if(ar==NULL || !BLI_in_rcti(&ar->winrct, event->prevx, event->prevy)) { ScrArea *sa= CTX_wm_area(C); - + CTX_wm_area_set(C, area_event_inside(C, event->prevx, event->prevy)); CTX_wm_region_set(C, region_event_inside(C, event->prevx, event->prevy)); wm_paintcursor_tag(C, wm->paintcursors.first, CTX_wm_region(C)); - + CTX_wm_area_set(C, sa); CTX_wm_region_set(C, ar); } @@ -1536,7 +1530,7 @@ static void wm_paintcursor_test(bContext *C, wmEvent *event) static void wm_event_drag_test(wmWindowManager *wm, wmWindow *win, wmEvent *event) { if(wm->drags.first==NULL) return; - + if(event->type==MOUSEMOVE) win->screen->do_draw_drag= 1; else if(event->type==ESCKEY) { @@ -1545,24 +1539,24 @@ static void wm_event_drag_test(wmWindowManager *wm, wmWindow *win, wmEvent *even } else if(event->type==LEFTMOUSE && event->val==KM_RELEASE) { event->type= EVT_DROP; - + /* create customdata, first free existing */ if(event->customdata) { if(event->customdatafree) MEM_freeN(event->customdata); } - + event->custom= EVT_DATA_LISTBASE; event->customdata= &wm->drags; event->customdatafree= 1; - + /* clear drop icon */ win->screen->do_draw_drag= 1; - + /* restore cursor (disabled, see wm_dragdrop.c) */ // WM_cursor_restore(win); } - + /* overlap fails otherwise */ if(win->screen->do_draw_drag) if(win->drawmethod == USER_DRAW_OVERLAP) @@ -1579,24 +1573,24 @@ void wm_event_do_handlers(bContext *C) for(win= wm->windows.first; win; win= win->next) { wmEvent *event; - + if( win->screen==NULL ) wm_event_free_all(win); else { Scene* scene = win->screen->scene; - + if(scene) { int playing = sound_scene_playing(win->screen->scene); - + if(playing != -1) { CTX_wm_window_set(C, win); CTX_wm_screen_set(C, win->screen); CTX_data_scene_set(C, scene); - + if(((playing == 1) && (!win->screen->animtimer)) || ((playing == 0) && (win->screen->animtimer))){ ED_screen_animation_play(C, -1, 1); } - + if(playing == 0) { int ncfra = sound_sync_scene(scene) * FPS + 0.5; if(ncfra != scene->r.cfra) { @@ -1605,41 +1599,41 @@ void wm_event_do_handlers(bContext *C) WM_event_add_notifier(C, NC_WINDOW, NULL); } } - + CTX_data_scene_set(C, NULL); CTX_wm_screen_set(C, NULL); CTX_wm_window_set(C, NULL); } } } - + while( (event= win->queue.first) ) { int action = WM_HANDLER_CONTINUE; if((G.f & G_DEBUG) && event && !ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE)) printf("pass on evt %d val %d\n", event->type, event->val); - + wm_eventemulation(event); CTX_wm_window_set(C, win); - + /* we let modal handlers get active area/region, also wm_paintcursor_test needs it */ CTX_wm_area_set(C, area_event_inside(C, event->x, event->y)); CTX_wm_region_set(C, region_event_inside(C, event->x, event->y)); - + /* MVC demands to not draw in event handlers... but we need to leave it for ogl selecting etc */ wm_window_make_drawable(C, win); - + /* first we do priority handlers, modal + some limited keymaps */ action |= wm_handlers_do(C, event, &win->modalhandlers); - + /* fileread case */ if(CTX_wm_window(C)==NULL) return; - + /* check dragging, creates new event or frees, adds draw tag */ wm_event_drag_test(wm, win, event); - + /* builtin tweak, if action is break it removes tweak */ wm_tweakevent_test(C, event, action); @@ -1647,7 +1641,7 @@ void wm_event_do_handlers(bContext *C) ScrArea *sa; ARegion *ar; int doit= 0; - + /* XXX to solve, here screen handlers? */ if(event->type==MOUSEMOVE) { /* state variables in screen, cursors */ @@ -1664,18 +1658,18 @@ void wm_event_do_handlers(bContext *C) for(ar=sa->regionbase.first; ar; ar= ar->next) { if(wm_event_inside_i(event, &ar->winrct)) { CTX_wm_region_set(C, ar); - + /* does polls for drop regions and checks uibuts */ /* need to be here to make sure region context is true */ if(ELEM(event->type, MOUSEMOVE, EVT_DROP)) { wm_region_mouse_co(C, event); wm_drags_check_ops(C, event); } - + action |= wm_handlers_do(C, event, &ar->handlers); - + doit |= (BLI_in_rcti(&ar->winrct, event->x, event->y)); - + if(action & WM_HANDLER_BREAK) break; } @@ -1692,7 +1686,7 @@ void wm_event_do_handlers(bContext *C) /* NOTE: do not escape on WM_HANDLER_BREAK, mousemove needs handled for previous area */ } } - + if((action & WM_HANDLER_BREAK) == 0) { /* also some non-modal handlers need active area/region */ CTX_wm_area_set(C, area_event_inside(C, event->x, event->y)); @@ -1712,7 +1706,7 @@ void wm_event_do_handlers(bContext *C) win->eventstate->prevy= event->y; } } - + /* store last event for this window */ /* mousemove and timer events don't overwrite last type */ if (event->type != MOUSEMOVE && !ISTIMER(event->type)) { @@ -1747,9 +1741,9 @@ void wm_event_do_handlers(bContext *C) /* unlink and free here, blender-quit then frees all */ BLI_remlink(&win->queue, event); wm_event_free(event); - + } - + /* only add mousemove when queue was read entirely */ if(win->addmousemove && win->eventstate) { wmEvent event= *(win->eventstate); @@ -1759,7 +1753,7 @@ void wm_event_do_handlers(bContext *C) wm_event_add(win, &event); win->addmousemove= 0; } - + CTX_wm_window_set(C, NULL); } } @@ -1770,10 +1764,10 @@ void WM_event_fileselect_event(bContext *C, void *ophandle, int eventval) { /* add to all windows! */ wmWindow *win; - + for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) { wmEvent event= *win->eventstate; - + event.type= EVT_FILESELECT; event.val= eventval; event.customdata= ophandle; // only as void pointer type check @@ -1795,15 +1789,15 @@ void WM_event_add_fileselect(bContext *C, wmOperator *op) wmEventHandler *handler= MEM_callocN(sizeof(wmEventHandler), "fileselect handler"); wmWindow *win= CTX_wm_window(C); int full= 1; // XXX preset? - + handler->type= WM_HANDLER_FILESELECT; handler->op= op; handler->op_area= CTX_wm_area(C); handler->op_region= CTX_wm_region(C); handler->filescreen= CTX_wm_screen(C); - + BLI_addhead(&win->modalhandlers, handler); - + WM_event_fileselect_event(C, op, full?EVT_FILESELECT_FULL_OPEN:EVT_FILESELECT_OPEN); } @@ -1817,7 +1811,7 @@ wmEventHandler *WM_event_add_modal_handler(bContext *C, wmOperator *op) { wmEventHandler *handler= MEM_callocN(sizeof(wmEventHandler), "event modal handler"); wmWindow *win= CTX_wm_window(C); - + /* operator was part of macro */ if(op->opm) { /* give the mother macro to the handler */ @@ -1827,10 +1821,10 @@ wmEventHandler *WM_event_add_modal_handler(bContext *C, wmOperator *op) } else handler->op= op; - + handler->op_area= CTX_wm_area(C); /* means frozen screen context for modal handlers! */ handler->op_region= CTX_wm_region(C); - + BLI_addhead(&win->modalhandlers, handler); return handler; @@ -1849,7 +1843,7 @@ wmEventHandler *WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap for(handler= handlers->first; handler; handler= handler->next) if(handler->keymap==keymap) return handler; - + handler= MEM_callocN(sizeof(wmEventHandler), "event keymap handler"); BLI_addtail(handlers, handler); handler->keymap= keymap; @@ -1861,20 +1855,20 @@ wmEventHandler *WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap wmEventHandler *WM_event_add_keymap_handler_priority(ListBase *handlers, wmKeyMap *keymap, int priority) { wmEventHandler *handler; - + WM_event_remove_keymap_handler(handlers, keymap); - + handler= MEM_callocN(sizeof(wmEventHandler), "event keymap handler"); BLI_addhead(handlers, handler); handler->keymap= keymap; - + return handler; } wmEventHandler *WM_event_add_keymap_handler_bb(ListBase *handlers, wmKeyMap *keymap, rcti *bblocal, rcti *bbwin) { wmEventHandler *handler= WM_event_add_keymap_handler(handlers, keymap); - + if(handler) { handler->bblocal= bblocal; handler->bbwin= bbwin; @@ -1885,7 +1879,7 @@ wmEventHandler *WM_event_add_keymap_handler_bb(ListBase *handlers, wmKeyMap *key void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap) { wmEventHandler *handler; - + for(handler= handlers->first; handler; handler= handler->next) { if(handler->keymap==keymap) { BLI_remlink(handlers, handler); @@ -1904,16 +1898,16 @@ wmEventHandler *WM_event_add_ui_handler(const bContext *C, ListBase *handlers, w handler->ui_area= (C)? CTX_wm_area(C): NULL; handler->ui_region= (C)? CTX_wm_region(C): NULL; handler->ui_menu= (C)? CTX_wm_menu(C): NULL; - + BLI_addhead(handlers, handler); - + return handler; } void WM_event_remove_ui_handler(ListBase *handlers, wmUIHandlerFunc func, wmUIHandlerRemoveFunc remove, void *userdata) { wmEventHandler *handler; - + for(handler= handlers->first; handler; handler= handler->next) { if(handler->ui_handle == func && handler->ui_remove == remove && handler->ui_userdata == userdata) { BLI_remlink(handlers, handler); @@ -1931,13 +1925,13 @@ wmEventHandler *WM_event_add_dropbox_handler(ListBase *handlers, ListBase *dropb for(handler= handlers->first; handler; handler= handler->next) if(handler->dropboxes==dropboxes) return handler; - + handler= MEM_callocN(sizeof(wmEventHandler), "dropbox handler"); - + /* dropbox stored static, no free or copy */ handler->dropboxes= dropboxes; BLI_addhead(handlers, handler); - + return handler; } @@ -1966,7 +1960,7 @@ void WM_event_remove_handler(ListBase *handlers, wmEventHandler *handler) void WM_event_add_mousemove(bContext *C) { wmWindow *window= CTX_wm_window(C); - + window->addmousemove= 1; } @@ -1976,7 +1970,7 @@ int WM_modal_tweak_exit(wmEvent *evt, int tweak_event) /* user preset or keymap? dunno... */ // XXX WTH is this? int tweak_modal= (U.flag & USER_RELEASECONFIRM)==0; - + switch(tweak_event) { case EVT_TWEAK_L: case EVT_TWEAK_M: @@ -2010,7 +2004,7 @@ static int convert_key(GHOST_TKey key) case GHOST_kKeyLinefeed: return LINEFEEDKEY; case GHOST_kKeyClear: return 0; case GHOST_kKeyEnter: return RETKEY; - + case GHOST_kKeyEsc: return ESCKEY; case GHOST_kKeySpace: return SPACEKEY; case GHOST_kKeyQuote: return QUOTEKEY; @@ -2018,15 +2012,15 @@ static int convert_key(GHOST_TKey key) case GHOST_kKeyMinus: return MINUSKEY; case GHOST_kKeyPeriod: return PERIODKEY; case GHOST_kKeySlash: return SLASHKEY; - + case GHOST_kKeySemicolon: return SEMICOLONKEY; case GHOST_kKeyEqual: return EQUALKEY; - + case GHOST_kKeyLeftBracket: return LEFTBRACKETKEY; case GHOST_kKeyRightBracket: return RIGHTBRACKETKEY; case GHOST_kKeyBackslash: return BACKSLASHKEY; case GHOST_kKeyAccentGrave: return ACCENTGRAVEKEY; - + case GHOST_kKeyLeftShift: return LEFTSHIFTKEY; case GHOST_kKeyRightShift: return RIGHTSHIFTKEY; case GHOST_kKeyLeftControl: return LEFTCTRLKEY; @@ -2034,93 +2028,135 @@ static int convert_key(GHOST_TKey key) case GHOST_kKeyCommand: return COMMANDKEY; case GHOST_kKeyLeftAlt: return LEFTALTKEY; case GHOST_kKeyRightAlt: return RIGHTALTKEY; - + case GHOST_kKeyCapsLock: return CAPSLOCKKEY; case GHOST_kKeyNumLock: return 0; case GHOST_kKeyScrollLock: return 0; - + case GHOST_kKeyLeftArrow: return LEFTARROWKEY; case GHOST_kKeyRightArrow: return RIGHTARROWKEY; case GHOST_kKeyUpArrow: return UPARROWKEY; case GHOST_kKeyDownArrow: return DOWNARROWKEY; - + case GHOST_kKeyPrintScreen: return 0; case GHOST_kKeyPause: return PAUSEKEY; - + case GHOST_kKeyInsert: return INSERTKEY; case GHOST_kKeyDelete: return DELKEY; case GHOST_kKeyHome: return HOMEKEY; case GHOST_kKeyEnd: return ENDKEY; case GHOST_kKeyUpPage: return PAGEUPKEY; case GHOST_kKeyDownPage: return PAGEDOWNKEY; - + case GHOST_kKeyNumpadPeriod: return PADPERIOD; case GHOST_kKeyNumpadEnter: return PADENTER; case GHOST_kKeyNumpadPlus: return PADPLUSKEY; case GHOST_kKeyNumpadMinus: return PADMINUS; case GHOST_kKeyNumpadAsterisk: return PADASTERKEY; case GHOST_kKeyNumpadSlash: return PADSLASHKEY; - + case GHOST_kKeyGrLess: return GRLESSKEY; - + default: return UNKNOWNKEY; /* GHOST_kKeyUnknown */ } } } +#if 0 /* adds customdata to event */ static void update_tablet_data(wmWindow *win, wmEvent *event) { const GHOST_TabletData *td= GHOST_GetTabletData(win->ghostwin); - + /* if there's tablet data from an active tablet device then add it */ if ((td != NULL) && td->Active != GHOST_kTabletModeNone) { struct wmTabletData *wmtab= MEM_mallocN(sizeof(wmTabletData), "customdata tablet"); - + wmtab->Active = (int)td->Active; wmtab->Pressure = td->Pressure; wmtab->Xtilt = td->Xtilt; wmtab->Ytilt = td->Ytilt; - + event->custom= EVT_DATA_TABLET; event->customdata= wmtab; event->customdatafree= 1; } } +#endif + +/* adds customdata to event */ +static void attach_tablet_data(wmEvent* event, const GHOST_TabletData* ghost) +{ + if (ghost->Active != GHOST_kTabletModeNone) + { + wmTabletData* data = MEM_mallocN(sizeof(wmTabletData), "customdata tablet"); + + data->Active = ghost->Active; + data->Pressure = ghost->Pressure; + data->Xtilt = ghost->Xtilt; + data->Ytilt = ghost->Ytilt; + + event->custom = EVT_DATA_TABLET; + event->customdata = data; + event->customdatafree = 1; + + printf("+ pressure = %.2f tilt = %.2f %2f\n", data->Pressure, data->Xtilt, data->Ytilt); + } +} + +/* adds customdata to event */ +static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* ghost) +{ + wmNDOFMotionData* data = MEM_mallocN(sizeof(wmNDOFMotionData), "customdata NDOF"); + + data->tx = ghost->tx; + data->ty = ghost->ty; + data->tz = ghost->tz; + + data->rx = ghost->rx; + data->ry = ghost->ry; + data->rz = ghost->rz; + + data->dt = ghost->dt; + + event->custom = EVT_DATA_NDOF_MOTION; + event->customdata = data; + event->customdatafree = 1; +} /* imperfect but probably usable... draw/enable drags to other windows */ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *win, wmEvent *evt) { short mx= evt->x, my= evt->y; - + if(wm->windows.first== wm->windows.last) return NULL; - + /* top window bar... */ if(mx<0 || my<0 || mx>win->sizex || my>win->sizey+30) { wmWindow *owin; wmEventHandler *handler; - + /* let's skip windows having modal handlers now */ /* potential XXX ugly... I wouldn't have added a modalhandlers list (introduced in rev 23331, ton) */ for(handler= win->modalhandlers.first; handler; handler= handler->next) if(handler->ui_handle || handler->op) return NULL; - + /* to desktop space */ mx+= win->posx; my+= win->posy; - + /* check other windows to see if it has mouse inside */ for(owin= wm->windows.first; owin; owin= owin->next) { - + if(owin!=win) { if(mx-owin->posx >= 0 && my-owin->posy >= 0 && mx-owin->posx <= owin->sizex && my-owin->posy <= owin->sizey) { evt->x= mx-owin->posx; evt->y= my-owin->posy; - + return owin; } } @@ -2130,34 +2166,34 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi } /* windows store own event queues, no bContext here */ -/* time is in 1000s of seconds, from ghost */ +/* time is in 1000s of seconds (or milliseconds?), from ghost */ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int time, void *customdata) { wmWindow *owin; wmEvent event, *evt= win->eventstate; - + /* initialize and copy state (only mouse x y and modifiers) */ event= *evt; - + switch (type) { /* mouse move */ case GHOST_kEventCursorMove: { if(win->active) { GHOST_TEventCursorData *cd= customdata; wmEvent *lastevent= win->queue.last; - + #if defined(__APPLE__) && defined(GHOST_COCOA) //Cocoa already uses coordinates with y=0 at bottom, and returns inwindow coordinates on mouse moved event evt->x= cd->x; evt->y= cd->y; #else int cx, cy; - + GHOST_ScreenToClient(win->ghostwin, cd->x, cd->y, &cx, &cy); evt->x= cx; evt->y= (win->sizey-1) - cy; #endif - + event.x= evt->x; event.y= evt->y; @@ -2169,23 +2205,23 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t if(lastevent && lastevent->type == MOUSEMOVE) lastevent->type = INBETWEEN_MOUSEMOVE; - update_tablet_data(win, &event); + attach_tablet_data(&event, &(cd->tablet)); + // update_tablet_data(win, &event); wm_event_add(win, &event); - + /* also add to other window if event is there, this makes overdraws disappear nicely */ /* it remaps mousecoord to other window in event */ owin= wm_event_cursor_other_windows(wm, win, &event); if(owin) { wmEvent oevent= *(owin->eventstate); - + oevent.x=owin->eventstate->x= event.x; oevent.y=owin->eventstate->y= event.y; oevent.type= MOUSEMOVE; - - update_tablet_data(owin, &oevent); + + // update_tablet_data(owin, &oevent); wm_event_add(owin, &oevent); } - } break; } @@ -2218,8 +2254,9 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t // Use prevx/prevy so we can calculate the delta later event.prevx= event.x - pd->deltaX; event.prevy= event.y - pd->deltaY; - - update_tablet_data(win, &event); + + // [mce] tablet never sends trackpad events. + // update_tablet_data(win, &event); wm_event_add(win, &event); break; } @@ -2239,25 +2276,27 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t event.type= BUTTON5MOUSE; else event.type= MIDDLEMOUSE; - + /* add to other window if event is there (not to both!) */ owin= wm_event_cursor_other_windows(wm, win, &event); if(owin) { wmEvent oevent= *(owin->eventstate); - + oevent.x= event.x; oevent.y= event.y; oevent.type= event.type; oevent.val= event.val; - - update_tablet_data(owin, &oevent); + + attach_tablet_data(&oevent, &(bd->tablet)); + // update_tablet_data(owin, &oevent); wm_event_add(owin, &oevent); } else { - update_tablet_data(win, &event); + attach_tablet_data(&event, &(bd->tablet)); + // update_tablet_data(win, &event); wm_event_add(win, &event); } - + break; } /* keyboard */ @@ -2267,11 +2306,11 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t event.type= convert_key(kd->key); event.ascii= kd->ascii; event.val= (type==GHOST_kEventKeyDown)?KM_PRESS:KM_RELEASE; - + /* exclude arrow keys, esc, etc from text input */ if(type==GHOST_kEventKeyUp || (event.ascii<32 && event.ascii>0)) event.ascii= '\0'; - + /* modifiers */ if (event.type==LEFTSHIFTKEY || event.type==RIGHTSHIFTKEY) { event.shift= evt->shift= (event.val==KM_PRESS); @@ -2306,29 +2345,30 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t key we don't want the key modifier */ if(event.keymodifier == event.type) event.keymodifier= 0; - + /* if test_break set, it catches this. XXX Keep global for now? */ if(event.type==ESCKEY) G.afbreek= 1; - + wm_event_add(win, &event); - + break; } - + case GHOST_kEventWheel: { GHOST_TEventWheelData* wheelData = customdata; - + if (wheelData->z > 0) event.type= WHEELUPMOUSE; else event.type= WHEELDOWNMOUSE; - + event.val= KM_PRESS; wm_event_add(win, &event); - + break; } + case GHOST_kEventTimer: { event.type= TIMER; event.custom= EVT_DATA_TIMER; @@ -2338,6 +2378,36 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t break; } + case GHOST_kEventNDOFMotion: { + event.type = NDOF_MOTION; + attach_ndof_data(&event, customdata); + wm_event_add(win, &event); + + break; + } + + case GHOST_kEventNDOFButton: { + GHOST_TEventNDOFButtonData* e = customdata; + + event.type = NDOF_BUTTON_NONE + e->button; + + switch (e->action) { + case GHOST_kPress: + event.val = KM_PRESS; + break; + case GHOST_kRelease: + event.val = KM_RELEASE; + break; + } + + event.custom = 0; + event.customdata = NULL; + + wm_event_add(win, &event); + + break; + } + case GHOST_kEventUnknown: case GHOST_kNumEventTypes: break; @@ -2347,8 +2417,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t wm_event_add(win, &event); break; - } - } } diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index e4bb5b797d3..d9dad900632 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -796,8 +796,6 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) } } - - break; } @@ -805,7 +803,6 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) wm_event_add_ghostevent(wm, win, type, time, data); break; } - } return 1; } diff --git a/source/blender/windowmanager/wm.h b/source/blender/windowmanager/wm.h index 7228a6dcd93..bbf9ed9af6a 100644 --- a/source/blender/windowmanager/wm.h +++ b/source/blender/windowmanager/wm.h @@ -83,4 +83,3 @@ extern int circle_select_size; #endif #endif /* WM_H */ - diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 6cb3971bd21..9db84bf7795 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -36,42 +36,66 @@ #define WM_EVENT_TYPES_H /* customdata type */ -#define EVT_DATA_TABLET 1 -#define EVT_DATA_GESTURE 2 -#define EVT_DATA_TIMER 3 -#define EVT_DATA_LISTBASE 4 +#define EVT_DATA_TABLET 1 +#define EVT_DATA_GESTURE 2 +#define EVT_DATA_TIMER 3 +#define EVT_DATA_LISTBASE 4 +#define EVT_DATA_NDOF_MOTION 5 /* tablet active, matches GHOST_TTabletMode */ +/* [mce] also matches my own TabletTool.type */ #define EVT_TABLET_NONE 0 #define EVT_TABLET_STYLUS 1 #define EVT_TABLET_ERASER 2 -#define MOUSEX 0x004 -#define MOUSEY 0x005 +/* [mce] what are these for? */ +#define MOUSEX 0x004 +#define MOUSEY 0x005 /* MOUSE : 0x00x */ -#define LEFTMOUSE 0x001 -#define MIDDLEMOUSE 0x002 -#define RIGHTMOUSE 0x003 -#define MOUSEMOVE 0x004 +#define LEFTMOUSE 0x001 +#define MIDDLEMOUSE 0x002 +#define RIGHTMOUSE 0x003 +#define MOUSEMOVE 0x004 /* only use if you want user option switch possible */ #define ACTIONMOUSE 0x005 #define SELECTMOUSE 0x006 /* Extra mouse buttons */ -#define BUTTON4MOUSE 0x007 +#define BUTTON4MOUSE 0x007 #define BUTTON5MOUSE 0x008 /* Extra trackpad gestures */ #define MOUSEPAN 0x00e #define MOUSEZOOM 0x00f #define MOUSEROTATE 0x010 /* defaults from ghost */ -#define WHEELUPMOUSE 0x00a +#define WHEELUPMOUSE 0x00a #define WHEELDOWNMOUSE 0x00b /* mapped with userdef */ #define WHEELINMOUSE 0x00c #define WHEELOUTMOUSE 0x00d #define INBETWEEN_MOUSEMOVE 0x011 +/* NDOF (from SpaceNavigator & friends) */ +#define NDOF_MOTION 0x12 +enum { + NDOF_BUTTON_NONE = NDOF_MOTION, /* never sent, used during translation */ + NDOF_BUTTON1, + NDOF_BUTTON2/*, + NDOF_BUTTON3, + NDOF_BUTTON4, + NDOF_BUTTON5, + NDOF_BUTTON6, + NDOF_BUTTON7, + NDOF_BUTTON8, + NDOF_BUTTON9, + NDOF_BUTTON10, + NDOF_BUTTON11, + NDOF_BUTTON12, + NDOF_BUTTON13, + NDOF_BUTTON14, + NDOF_BUTTON15, + NDOF_BUTTON16*/ + }; /* SYSTEM : 0x01xx */ #define INPUTCHANGE 0x0103 /* input connected or disconnected */ @@ -126,9 +150,9 @@ #define CAPSLOCKKEY 211 #define LEFTCTRLKEY 212 -#define LEFTALTKEY 213 -#define RIGHTALTKEY 214 -#define RIGHTCTRLKEY 215 +#define LEFTALTKEY 213 +#define RIGHTALTKEY 214 +#define RIGHTCTRLKEY 215 #define RIGHTSHIFTKEY 216 #define LEFTSHIFTKEY 217 @@ -169,8 +193,8 @@ #define PADPERIOD 199 -#define PADSLASHKEY 161 -#define PADASTERKEY 160 +#define PADSLASHKEY 161 +#define PADASTERKEY 160 #define PADMINUS 162 #define PADENTER 163 @@ -299,4 +323,3 @@ #endif /* WM_EVENT_TYPES_H */ - -- cgit v1.2.3 From 4bf887d4d3592e955144388305ae801040a57701 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 10 Aug 2010 09:51:22 +0000 Subject: SpaceNav works in 3D view on Windows. Cleaned up related WIP code. --- source/blender/editors/space_view3d/view3d_edit.c | 3 ++- source/blender/windowmanager/intern/wm_event_system.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 8dd901d9e54..874a2f778f5 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -27,7 +27,6 @@ */ #include -#include #include #include @@ -879,6 +878,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } +#if 0 static int viewndof_invoke_1st_try(bContext *C, wmOperator *op, wmEvent *event) { wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; @@ -961,6 +961,7 @@ static int viewndof_invoke_2nd_try(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } +#endif void VIEW3D_OT_ndof(struct wmOperatorType *ot) { diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index e281e65539e..bce1cc22f7f 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -29,7 +29,6 @@ #include #include #include -#include // [mce] debug, remove when finished #include "DNA_listBase.h" #include "DNA_screen_types.h" -- cgit v1.2.3 From 91e2a5517190b532a78515956391d2e699ae88b8 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 14 Aug 2010 21:01:09 +0000 Subject: continued Win32 tablet hackery --- .../blender/windowmanager/intern/wm_event_system.c | 35 ++++------------------ 1 file changed, 5 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index bce1cc22f7f..6a2102633c3 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1977,7 +1977,7 @@ int WM_modal_tweak_exit(wmEvent *evt, int tweak_event) if(evt->val==tweak_modal) return 1; default: - /* this case is when modal callcback didnt get started with a tweak */ + /* this case is when modal callback didnt get started with a tweak */ if(evt->val) return 1; } @@ -2062,28 +2062,6 @@ static int convert_key(GHOST_TKey key) } } -#if 0 -/* adds customdata to event */ -static void update_tablet_data(wmWindow *win, wmEvent *event) -{ - const GHOST_TabletData *td= GHOST_GetTabletData(win->ghostwin); - - /* if there's tablet data from an active tablet device then add it */ - if ((td != NULL) && td->Active != GHOST_kTabletModeNone) { - struct wmTabletData *wmtab= MEM_mallocN(sizeof(wmTabletData), "customdata tablet"); - - wmtab->Active = (int)td->Active; - wmtab->Pressure = td->Pressure; - wmtab->Xtilt = td->Xtilt; - wmtab->Ytilt = td->Ytilt; - - event->custom= EVT_DATA_TABLET; - event->customdata= wmtab; - event->customdatafree= 1; - } -} -#endif - /* adds customdata to event */ static void attach_tablet_data(wmEvent* event, const GHOST_TabletData* ghost) { @@ -2100,7 +2078,7 @@ static void attach_tablet_data(wmEvent* event, const GHOST_TabletData* ghost) event->customdata = data; event->customdatafree = 1; - printf("+ pressure = %.2f tilt = %.2f %2f\n", data->Pressure, data->Xtilt, data->Ytilt); + // printf("+ pressure = %.2f tilt = %.2f %.2f\n", data->Pressure, data->Xtilt, data->Ytilt); } } @@ -2165,7 +2143,7 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi } /* windows store own event queues, no bContext here */ -/* time is in 1000s of seconds (or milliseconds?), from ghost */ +/* time is in milliseconds, from ghost */ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int time, void *customdata) { wmWindow *owin; @@ -2205,7 +2183,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t lastevent->type = INBETWEEN_MOUSEMOVE; attach_tablet_data(&event, &(cd->tablet)); - // update_tablet_data(win, &event); wm_event_add(win, &event); /* also add to other window if event is there, this makes overdraws disappear nicely */ @@ -2218,7 +2195,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t oevent.y=owin->eventstate->y= event.y; oevent.type= MOUSEMOVE; - // update_tablet_data(owin, &oevent); wm_event_add(owin, &oevent); } } @@ -2263,7 +2239,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t case GHOST_kEventButtonDown: case GHOST_kEventButtonUp: { GHOST_TEventButtonData *bd= customdata; - event.val= (type==GHOST_kEventButtonDown) ? KM_PRESS:KM_RELEASE; /* Note!, this starts as 0/1 but later is converted to KM_PRESS/KM_RELEASE by tweak */ + event.val= (type==GHOST_kEventButtonDown) ? KM_PRESS:KM_RELEASE; + /* Note!, this starts as 0/1 but later is converted to KM_PRESS/KM_RELEASE by tweak */ if (bd->button == GHOST_kButtonMaskLeft) event.type= LEFTMOUSE; @@ -2287,12 +2264,10 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int t oevent.val= event.val; attach_tablet_data(&oevent, &(bd->tablet)); - // update_tablet_data(owin, &oevent); wm_event_add(owin, &oevent); } else { attach_tablet_data(&event, &(bd->tablet)); - // update_tablet_data(win, &event); wm_event_add(win, &event); } -- cgit v1.2.3 From 162795cffec42cbd3c426c62b7eae2992b93a7cb Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Fri, 21 Jan 2011 09:59:58 +0000 Subject: applied SpaceNav patch from Tom Acunzo --- source/blender/editors/space_view3d/view3d_edit.c | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 874a2f778f5..2c00d2dcba4 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -833,6 +833,7 @@ float ndof_to_angle_axis(const float ndof[3], float axis[3]) return angular_velocity; } +#if 0 // my version static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) { wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; @@ -877,6 +878,90 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; } +#endif + +// Tom's version +static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float phi, q1[4]; + float m[3][3]; + float m_inv[3][3]; + float xvec[3] = {1,0,0}; + float yvec[3] = {0,1,0}; + float vec[3]; + float mat[3][3]; + const float rotaSensitivity = 0.007; + const float tranSensitivity = 0.120; + + ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d = CTX_wm_region_view3d(C); + View3D *v3d = CTX_wm_view3d(C); + + float dt = ndof->dt; + + if (dt > 0.25f) { + /* this is probably the first event for this motion, so set dt to something reasonable */ + dt = 0.0125f; + } + + /* Get the 3x3 matrix and its inverse from the quaternion */ + quat_to_mat3(m,rv3d->viewquat); + invert_m3_m3(m_inv,m); + + /* Determine the direction of the x vector (for rotating up and down) */ + /* This can likely be computed directly from the quaternion. */ + mul_m3_v3(m_inv,xvec); + + //if(rv3d->persp=!= RV3D_PERSP) //Camera control not supported yet + /* Lock fixed views out of using rotation controls */ + if(rv3d->view!=RV3D_VIEW_FRONT && rv3d->view!=RV3D_VIEW_BACK) + if(rv3d->view!=RV3D_VIEW_TOP && rv3d->view!=RV3D_VIEW_BOTTOM) + if(rv3d->view!=RV3D_VIEW_RIGHT && rv3d->view!=RV3D_VIEW_LEFT) { + // Perform the up/down rotation + phi = (rotaSensitivity+dt) * -ndof->rx; + q1[0] = cos(phi); + mul_v3_v3fl(q1+1, xvec, sin(phi)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + // Perform the left/right rotation + mul_m3_v3(m_inv,yvec); + phi = (rotaSensitivity+dt) * ndof->ry; + q1[0] = cos(phi); + mul_v3_v3fl(q1+1, yvec, sin(phi)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + // Perform the orbital rotation + phi = (rotaSensitivity+dt) * ndof->rz; + q1[0] = cos(phi); + q1[1] = q1[2] = 0.0; + q1[3] = sin(phi); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + } + + // Perform Pan translation + vec[0]= (tranSensitivity+dt) * ndof->tx; + vec[1]= (tranSensitivity+dt) * ndof->tz; + //vec[2]= 0.0f;//tranSensitivity * ndof->ty; + //window_to_3d_delta(ar, vec, -ndof->tx, -ndof->tz); // experimented a little instead of above + copy_m3_m4(mat, rv3d->viewinv); + mat[2][2] = 0.0f; + mul_m3_v3(mat, vec); + // translate the view + add_v3_v3(rv3d->ofs, vec); + + // Perform Zoom translation + if (ndof->ty!=0.0f){ // TODO - need to add limits to prevent flipping past gridlines + rv3d->dist += (tranSensitivity+dt)* ndof->ty; + // printf("dist %5.3f view %d grid %f\n",rv3d->dist,rv3d->view,v3d->grid); + } + + //printf("Trans tx:%5.2f ty:%5.2f tz:%5.2f \n",ndof->tx, ndof->ty, ndof->tz); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} #if 0 static int viewndof_invoke_1st_try(bContext *C, wmOperator *op, wmEvent *event) -- cgit v1.2.3 From 3ccbfef6be193c79d065c0f116c36891c0040bc0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 24 May 2011 10:15:02 +0000 Subject: == Paste Poses == "On Selected Only" option is now on by default. Stored poses only get pasted on to bones that are selected when pasting, instead of on the bones that were selected when copying. (First GSoC11 commit. Yay!) --- source/blender/editors/armature/poseobject.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 8176aa5893b..fa5fecbd9d0 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -1002,6 +1002,14 @@ static int pose_paste_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } + /* if selOnly option is enabled, if user hasn't selected any bones, + * just go back to default behaviour to be more in line with other pose tools + */ + if (selOnly) { + if (CTX_DATA_COUNT(C, selected_pose_bones) == 0) + selOnly = 0; + } + /* Safely merge all of the channels in the buffer pose into any existing pose */ for (chan= g_posebuf->chanbase.first; chan; chan=chan->next) { if (chan->flag & POSE_KEY) { @@ -1169,7 +1177,7 @@ void POSE_OT_paste (wmOperatorType *ot) /* properties */ RNA_def_boolean(ot->srna, "flipped", 0, "Flipped on X-Axis", "Paste the stored pose flipped on to current pose"); - RNA_def_boolean(ot->srna, "selected_mask", 0, "On Selected Only", "Only paste the stored pose on to selected bones in the current pose"); + RNA_def_boolean(ot->srna, "selected_mask", 1, "On Selected Only", "Only paste the stored pose on to selected bones in the current pose"); } /* ********************************************** */ -- cgit v1.2.3 From 1788bc298c7afc202346477ac14456f6f208359b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 24 May 2011 12:12:12 +0000 Subject: = Limit Distance Constraint - 'For Transform' Option = The Limit Distance Constraint now has a "For Transform" option just like all the other Limit constraints. This option controls whether the constraint gets applied to interactive transforms in the 3D View too, preventing controllers from getting large values without the animator knowing. Additional code changes: * Split code to get constraint targets and grab their matrices for solving out to a separate helper function: get_constraint_targets_for_solving() * Fixed a bug where "found constraint ...." prints would appear in the console. Looks like some warning print that was forgotten TODO: * While coding this, I noticed potential division by zero bugs with the Limit Distance constraint. Looking into these after this commit. --- source/blender/blenkernel/BKE_constraint.h | 1 + source/blender/blenkernel/intern/constraint.c | 52 ++++++++++++++--------- source/blender/editors/object/object_constraint.c | 3 +- source/blender/editors/transform/transform.c | 27 ++++++++++-- source/blender/makesdna/DNA_constraint_types.h | 5 ++- source/blender/makesrna/intern/rna_constraint.c | 5 +++ 6 files changed, 67 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h index 7c0e7050a9f..ddff45c5422 100644 --- a/source/blender/blenkernel/BKE_constraint.h +++ b/source/blender/blenkernel/BKE_constraint.h @@ -154,6 +154,7 @@ void constraints_clear_evalob(struct bConstraintOb *cob); void constraint_mat_convertspace(struct Object *ob, struct bPoseChannel *pchan, float mat[][4], short from, short to); void get_constraint_target_matrix(struct Scene *scene, struct bConstraint *con, int n, short ownertype, void *ownerdata, float mat[][4], float ctime); +void get_constraint_targets_for_solving(struct bConstraint *con, struct bConstraintOb *ob, struct ListBase *targets, float ctime); void solve_constraints(struct ListBase *conlist, struct bConstraintOb *cob, float ctime); #ifdef __cplusplus diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index d3c14a9dd12..35e1cae0523 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -2642,6 +2642,8 @@ static void distlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * /* set distance (flag is only set when user demands it) */ if (data->dist == 0) data->dist= dist; + + // FIXME: dist may be 0! /* check if we're which way to clamp from, and calculate interpolation factor (if needed) */ if (data->mode == LIMITDIST_OUTSIDE) { @@ -4427,6 +4429,34 @@ void get_constraint_target_matrix (struct Scene *scene, bConstraint *con, int n, unit_m4(mat); } } + +/* Get the list of targets required for solving a constraint */ +void get_constraint_targets_for_solving (bConstraint *con, bConstraintOb *cob, ListBase *targets, float ctime) +{ + bConstraintTypeInfo *cti= constraint_get_typeinfo(con); + + if (cti && cti->get_constraint_targets) { + bConstraintTarget *ct; + + /* get targets + * - constraints should use ct->matrix, not directly accessing values + * - ct->matrix members have not yet been calculated here! + */ + cti->get_constraint_targets(con, targets); + + /* set matrices + * - calculate if possible, otherwise just initialise as identity matrix + */ + if (cti->get_target_matrix) { + for (ct= targets->first; ct; ct= ct->next) + cti->get_target_matrix(con, cob, ct, ctime); + } + else { + for (ct= targets->first; ct; ct= ct->next) + unit_m4(ct->matrix); + } + } +} /* ---------- Evaluation ----------- */ @@ -4471,27 +4501,7 @@ void solve_constraints (ListBase *conlist, bConstraintOb *cob, float ctime) constraint_mat_convertspace(cob->ob, cob->pchan, cob->matrix, CONSTRAINT_SPACE_WORLD, con->ownspace); /* prepare targets for constraint solving */ - if (cti->get_constraint_targets) { - bConstraintTarget *ct; - - /* get targets - * - constraints should use ct->matrix, not directly accessing values - * - ct->matrix members have not yet been calculated here! - */ - cti->get_constraint_targets(con, &targets); - - /* set matrices - * - calculate if possible, otherwise just initialise as identity matrix - */ - if (cti->get_target_matrix) { - for (ct= targets.first; ct; ct= ct->next) - cti->get_target_matrix(con, cob, ct, ctime); - } - else { - for (ct= targets.first; ct; ct= ct->next) - unit_m4(ct->matrix); - } - } + get_constraint_targets_for_solving(con, cob, &targets, ctime); /* Solve the constraint and put result in cob->matrix */ cti->evaluate_constraint(con, cob, &targets); diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index 450bd70a568..a3df25824a4 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -567,7 +567,8 @@ static bConstraint *edit_constraint_property_get(wmOperator *op, Object *ob, int } con = constraints_findByName(list, constraint_name); - printf("constraint found = %p, %s\n", (void *)con, (con)?con->name:""); + //if (G.f & G_DEBUG) + //printf("constraint found = %p, %s\n", (void *)con, (con)?con->name:""); if (con && (type != 0) && (con->type != type)) con = NULL; diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 27ca345e132..5b733cab699 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1982,12 +1982,15 @@ static void protectedQuaternionBits(short protectflag, float *quat, float *oldqu /* ******************* TRANSFORM LIMITS ********************** */ -static void constraintTransLim(TransInfo *UNUSED(t), TransData *td) +static void constraintTransLim(TransInfo *t, TransData *td) { if (td->con) { - bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_LOCLIMIT); + bConstraintTypeInfo *ctiLoc= get_constraint_typeinfo(CONSTRAINT_TYPE_LOCLIMIT); + bConstraintTypeInfo *ctiDist= get_constraint_typeinfo(CONSTRAINT_TYPE_DISTLIMIT); + bConstraintOb cob= {NULL}; bConstraint *con; + float ctime = (float)(t->scene->r.cfra); /* Make a temporary bConstraintOb for using these limit constraints * - they only care that cob->matrix is correctly set ;-) @@ -1998,6 +2001,8 @@ static void constraintTransLim(TransInfo *UNUSED(t), TransData *td) /* Evaluate valid constraints */ for (con= td->con; con; con= con->next) { + bConstraintTypeInfo *cti = NULL; + ListBase targets = {NULL, NULL}; float tmat[4][4]; /* only consider constraint if enabled */ @@ -2010,7 +2015,17 @@ static void constraintTransLim(TransInfo *UNUSED(t), TransData *td) if ((data->flag2 & LIMIT_TRANSFORM)==0) continue; + cti = ctiLoc; + } + else if (con->type == CONSTRAINT_TYPE_DISTLIMIT) { + bDistLimitConstraint *data= con->data; + if ((data->flag & LIMITDIST_TRANSFORM)==0) + continue; + cti = ctiDist; + } + + if (cti) { /* do space conversions */ if (con->ownspace == CONSTRAINT_SPACE_WORLD) { /* just multiply by td->mtx (this should be ok) */ @@ -2022,8 +2037,11 @@ static void constraintTransLim(TransInfo *UNUSED(t), TransData *td) continue; } + /* get constraint targets if needed */ + get_constraint_targets_for_solving(con, &cob, &targets, ctime); + /* do constraint */ - cti->evaluate_constraint(con, &cob, NULL); + cti->evaluate_constraint(con, &cob, &targets); /* convert spaces again */ if (con->ownspace == CONSTRAINT_SPACE_WORLD) { @@ -2031,6 +2049,9 @@ static void constraintTransLim(TransInfo *UNUSED(t), TransData *td) copy_m4_m4(tmat, cob.matrix); mul_m4_m3m4(cob.matrix, td->smtx, tmat); } + + /* free targets list */ + BLI_freelistN(&targets); } } diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index 1d752fce4ef..c2c0c6f1611 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -677,7 +677,10 @@ typedef enum eRotLimit_Flags { /* distance limit constraint */ /* bDistLimitConstraint->flag */ typedef enum eDistLimit_Flag { - LIMITDIST_USESOFT = (1<<0) + /* "soft" cushion effect when reaching the limit sphere */ // NOT IMPLEMENTED! + LIMITDIST_USESOFT = (1<<0), + /* as for all Limit constraints - allow to be used during transform? */ + LIMITDIST_TRANSFORM = (1<<1) } eDistLimit_Flag; /* bDistLimitConstraint->mode */ diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index e7604b2beb4..eb5e8e5a59e 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -1787,6 +1787,11 @@ static void rna_def_constraint_distance_limit(BlenderRNA *brna) RNA_def_property_enum_items(prop, constraint_distance_items); RNA_def_property_ui_text(prop, "Limit Mode", "Distances in relation to sphere of influence to allow"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "use_transform_limit", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LIMITDIST_TRANSFORM); + RNA_def_property_ui_text(prop, "For Transform", "Transforms are affected by this constraint as well"); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } static void rna_def_constraint_shrinkwrap(BlenderRNA *brna) -- cgit v1.2.3 From f920df3ce748a955de8e67f1678bf3a53048ba16 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 24 May 2011 12:20:02 +0000 Subject: Bugfix: Limit Distance constraint could be doing divide-by-zero in a few cases, especially if the object and target are at the same location when the constraint is created. This manisfested as the constrained object disappearing when the constraint was added, only reappearing after transforming it a bit. --- source/blender/blenkernel/intern/constraint.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 35e1cae0523..fe3286dcc2b 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -2642,15 +2642,13 @@ static void distlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * /* set distance (flag is only set when user demands it) */ if (data->dist == 0) data->dist= dist; - - // FIXME: dist may be 0! /* check if we're which way to clamp from, and calculate interpolation factor (if needed) */ if (data->mode == LIMITDIST_OUTSIDE) { /* if inside, then move to surface */ if (dist <= data->dist) { clamp_surf= 1; - sfac= data->dist / dist; + if (dist != 0.0f) sfac= data->dist / dist; } /* if soft-distance is enabled, start fading once owner is dist+softdist from the target */ else if (data->flag & LIMITDIST_USESOFT) { @@ -2663,14 +2661,14 @@ static void distlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * /* if outside, then move to surface */ if (dist >= data->dist) { clamp_surf= 1; - sfac= data->dist / dist; + if (dist != 0.0f) sfac= data->dist / dist; } /* if soft-distance is enabled, start fading once owner is dist-soft from the target */ else if (data->flag & LIMITDIST_USESOFT) { // FIXME: there's a problem with "jumping" when this kicks in if (dist >= (data->dist - data->soft)) { sfac = (float)( data->soft*(1.0f - expf(-(dist - data->dist)/data->soft)) + data->dist ); - sfac /= dist; + if (dist != 0.0f) sfac /= dist; clamp_surf= 1; } @@ -2679,7 +2677,7 @@ static void distlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * else { if (IS_EQF(dist, data->dist)==0) { clamp_surf= 1; - sfac= data->dist / dist; + if (dist != 0.0f) sfac= data->dist / dist; } } -- cgit v1.2.3 From 435229e3b3383af59fcafb23691fcb458b84e714 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 24 May 2011 12:24:05 +0000 Subject: Bugfix [#27453] Copy Paste fcurve modifers is broken Wrong poll was getting used --- source/blender/editors/space_graph/graph_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 962cadba1f3..0da03832d15 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -2248,7 +2248,7 @@ void GRAPH_OT_fmodifier_paste (wmOperatorType *ot) /* api callbacks */ ot->exec= graph_fmodifier_paste_exec; - ot->poll= graphop_editable_keyframes_poll; + ot->poll= graphop_active_fcurve_poll; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -- cgit v1.2.3 From 80e2f6c68ce3351f78c944a37557c969f9308a7a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 25 May 2011 13:10:07 +0000 Subject: Swapped hotkey for setting interpolation from Shift-T to TKEY, since this is more commonly used that the TimeSlide tool (which is DopeSheet only). Noticed that this does bring this out of line with the hotkey for setting extrapolation, but then again, extrapolation is a per-curve setting. --- source/blender/editors/space_action/action_ops.c | 2 +- source/blender/editors/space_graph/graph_ops.c | 2 +- source/blender/editors/transform/transform_ops.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index 6c3f80cda41..43d9ae0f5c9 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -162,7 +162,7 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) /* menu + set setting */ WM_keymap_add_item(keymap, "ACTION_OT_handle_type", VKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "ACTION_OT_interpolation_type", TKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "ACTION_OT_interpolation_type", TKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "ACTION_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "ACTION_OT_keyframe_type", RKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 03cc8bb9e80..544df2dab70 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -361,7 +361,7 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) WM_keymap_add_item(keymap, "GRAPH_OT_handle_type", VKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "GRAPH_OT_interpolation_type", TKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "GRAPH_OT_interpolation_type", TKEY, KM_PRESS, 0, 0); /* destructive */ WM_keymap_add_item(keymap, "GRAPH_OT_clean", OKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 7bdf6c909d9..4b0a734a98e 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -897,7 +897,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); RNA_enum_set(km->ptr, "mode", TFM_TIME_SCALE); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0); RNA_enum_set(km->ptr, "mode", TFM_TIME_SLIDE); break; case SPACE_IPO: -- cgit v1.2.3 From 433cc155275f56d43e48bf410d487ab51cf597f0 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 25 May 2011 17:14:31 +0000 Subject: Code Cleanup in DocumentExporter.cpp. (Test Commit) --- source/blender/collada/DocumentExporter.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 00daac60281..bb0bc5e1e76 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -397,10 +397,14 @@ protected: { if (!ob_arm->adt) return; - + + //write bone animations for 3 transform types + //i=0 --> rotations + //i=1 --> scale + //i=2 --> location for (int i = 0; i < 3; i++) sample_and_write_bone_animation(ob_arm, bone, i); - + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) write_bone_animation(ob_arm, child); } -- cgit v1.2.3 From 10c30bda08f64c51a2e9df64d492d56124895ec3 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 26 May 2011 12:09:21 +0000 Subject: Bugfix: Label for "Local With Parent" constraint space was broken by tooltips patch applied a few weeks ago in trunk --- source/blender/makesrna/intern/rna_constraint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index eb5e8e5a59e..4bd3c8fbc7c 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -85,7 +85,7 @@ static EnumPropertyItem target_space_pchan_items[] = { static EnumPropertyItem owner_space_pchan_items[] = { {0, "WORLD", 0, "World Space", "The constraint is applied relative to the world coordinate system"}, {2, "POSE", 0, "Pose Space", "The constraint is applied in Pose Space, the object transformation is ignored"}, - {3, "LOCAL_WITH_PARENT", 0, "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, + {3, "LOCAL_WITH_PARENT", 0, "Local With Parent", "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, {1, "LOCAL", 0, "Local Space", "The constraint is applied relative to the local coordinate sytem of the object"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 36a720606e4689eaa2cc3c089a3ff6c27ed023ee Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 26 May 2011 12:34:53 +0000 Subject: New experimental drawtype for armatures: "Wire" This is equivalent to using B-Bones which are all scaled to have xwidth=zwidth=0, which can be useful to see how some limbs will bend, without the overhead of blocks blocking the view or having to scale down bone sizes first. --- source/blender/editors/space_view3d/drawarmature.c | 105 +++++++++++++++++++-- source/blender/makesdna/DNA_armature_types.h | 3 +- source/blender/makesrna/intern/rna_armature.c | 1 + 3 files changed, 100 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 7c66cec5730..f42fd461510 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -1217,6 +1217,87 @@ static void draw_b_bone(int dt, int armflag, int boneflag, int constflag, unsign } } +static void draw_wire_bone_segments(bPoseChannel *pchan, Mat4 *bbones, float length, int segments) +{ + if ((segments > 1) && (pchan)) { + float dlen= length/(float)segments; + Mat4 *bbone = bbones; + int a; + + for (a=0; amat); + + glBegin(GL_LINES); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(0.0f, dlen, 0.0f); + glEnd(); // GL_LINES + + glPopMatrix(); + } + } + else { + glPushMatrix(); + + glBegin(GL_LINES); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(0.0f, length, 0.0f); + glEnd(); + + glPopMatrix(); + } +} + +static void draw_wire_bone(int dt, int armflag, int boneflag, int constflag, unsigned int id, bPoseChannel *pchan, EditBone *ebone) +{ + Mat4 *bbones = NULL; + int segments = 0; + float length; + + if (pchan) { + segments= pchan->bone->segments; + length= pchan->bone->length; + + if (segments > 1) + bbones = b_bone_spline_setup(pchan, 0); + } + else + length= ebone->length; + + /* draw points only if... */ + if (armflag & ARM_EDITMODE) { + /* move to unitspace */ + glPushMatrix(); + glScalef(length, length, length); + draw_bone_points(dt, armflag, boneflag, id); + glPopMatrix(); + length *= 0.95f; // make vertices visible + } + + /* this chunk not in object mode */ + if (armflag & (ARM_EDITMODE|ARM_POSEMODE)) { + if (id != -1) + glLoadName((GLuint) id|BONESEL_BONE); + + draw_wire_bone_segments(pchan, bbones, length, segments); + + /* further we send no names */ + if (id != -1) + glLoadName(id & 0xFFFF); /* object tag, for bordersel optim */ + } + + /* colors for modes */ + if (armflag & ARM_POSEMODE) { + set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag); + } + else if (armflag & ARM_EDITMODE) { + set_ebone_glColor(boneflag); + } + + /* draw normal */ + draw_wire_bone_segments(pchan, bbones, length, segments); +} + static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned int id, float length) { @@ -1656,7 +1737,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int use_custom = (pchan->custom) && !(arm->flag & ARM_NO_CUSTOM); glPushMatrix(); - if(use_custom && pchan->custom_tx) { + if (use_custom && pchan->custom_tx) { glMultMatrixf(pchan->custom_tx->pose_mat); } else { @@ -1684,6 +1765,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, } else if (arm->drawtype==ARM_LINE) ; /* nothing in solid */ + else if (arm->drawtype==ARM_WIRE) + ; /* nothing in solid */ else if (arm->drawtype==ARM_ENVELOPE) draw_sphere_bone(OB_SOLID, arm->flag, flag, 0, index, pchan, NULL); else if (arm->drawtype==ARM_B_BONE) @@ -1702,7 +1785,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, /* very very confusing... but in object mode, solid draw, we cannot do glLoadName yet, * stick bones and/or wire custom-shapes are drawn in next loop */ - if ((arm->drawtype != ARM_LINE) && (draw_wire == 0)) { + if (ELEM(arm->drawtype,ARM_LINE,ARM_WIRE)==0 && (draw_wire == 0)) { /* object tag, for bordersel optim */ glLoadName(index & 0xFFFF); index= -1; @@ -1773,8 +1856,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, if (index != -1) index+= 0x10000; // pose bones count in higher 2 bytes only } - /* stick bones have not been drawn yet so dont clear object selection in this case */ - if ((arm->drawtype != ARM_LINE) && draw_wire) { + /* stick or wire bones have not been drawn yet so dont clear object selection in this case */ + if (ELEM(arm->drawtype, ARM_LINE, ARM_WIRE)==0 && draw_wire) { /* object tag, for bordersel optim */ glLoadName(index & 0xFFFF); index= -1; @@ -1784,7 +1867,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, /* wire draw over solid only in posemode */ if ((dt <= OB_WIRE) || (arm->flag & ARM_POSEMODE) || (arm->drawtype==ARM_LINE)) { /* draw line check first. we do selection indices */ - if (arm->drawtype==ARM_LINE) { + if ELEM(arm->drawtype, ARM_LINE, ARM_WIRE) { if (arm->flag & ARM_POSEMODE) index= base->selcol; } @@ -1879,6 +1962,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, } else if (arm->drawtype==ARM_LINE) draw_line_bone(arm->flag, flag, constflag, index, pchan, NULL); + else if (arm->drawtype==ARM_WIRE) + draw_wire_bone(dt, arm->flag, flag, constflag, index, pchan, NULL); else if (arm->drawtype==ARM_B_BONE) draw_b_bone(OB_WIRE, arm->flag, flag, constflag, index, pchan, NULL); else @@ -2013,7 +2098,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) } /* if solid we draw it first */ - if ((dt > OB_WIRE) && (arm->drawtype!=ARM_LINE)) { + if ((dt > OB_WIRE) && (arm->drawtype != ARM_LINE)) { for (eBone=arm->edbo->first, index=0; eBone; eBone=eBone->next, index++) { if (eBone->layer & arm->layer) { if ((eBone->flag & BONE_HIDDEN_A)==0) { @@ -2034,6 +2119,8 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) draw_sphere_bone(OB_SOLID, arm->flag, flag, 0, index, NULL, eBone); else if(arm->drawtype==ARM_B_BONE) draw_b_bone(OB_SOLID, arm->flag, flag, 0, index, NULL, eBone); + else if (arm->drawtype==ARM_WIRE) + draw_wire_bone(OB_SOLID, arm->flag, flag, 0, index, NULL, eBone); else { draw_bone(OB_SOLID, arm->flag, flag, 0, index, eBone->length); } @@ -2047,7 +2134,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) /* if wire over solid, set offset */ index= -1; glLoadName(-1); - if (arm->drawtype==ARM_LINE) { + if ELEM(arm->drawtype, ARM_LINE, ARM_WIRE) { if(G.f & G_PICKSEL) index= 0; } @@ -2081,6 +2168,8 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) if (arm->drawtype == ARM_LINE) draw_line_bone(arm->flag, flag, 0, index, NULL, eBone); + else if (arm->drawtype==ARM_WIRE) + draw_wire_bone(OB_WIRE, arm->flag, flag, 0, index, NULL, eBone); else if (arm->drawtype == ARM_B_BONE) draw_b_bone(OB_WIRE, arm->flag, flag, 0, index, NULL, eBone); else @@ -2109,7 +2198,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) /* restore */ if(index!=-1) glLoadName(-1); - if (arm->drawtype==ARM_LINE); + if ELEM(arm->drawtype,ARM_LINE,ARM_WIRE); else if (dt>OB_WIRE) bglPolygonOffset(rv3d->dist, 0.0f); /* finally names and axes */ diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h index 3547101612f..808db1f4843 100644 --- a/source/blender/makesdna/DNA_armature_types.h +++ b/source/blender/makesdna/DNA_armature_types.h @@ -136,7 +136,8 @@ typedef enum eArmature_Drawtype { ARM_OCTA = 0, ARM_LINE, ARM_B_BONE, - ARM_ENVELOPE + ARM_ENVELOPE, + ARM_WIRE } eArmature_Drawtype; /* armature->deformflag */ diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index d398bb4bb78..61b0cbbf586 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -814,6 +814,7 @@ static void rna_def_armature(BlenderRNA *brna) {ARM_LINE, "STICK", 0, "Stick", "Display bones as simple 2D lines with dots"}, {ARM_B_BONE, "BBONE", 0, "B-Bone", "Display bones as boxes, showing subdivision and B-Splines"}, {ARM_ENVELOPE, "ENVELOPE", 0, "Envelope", "Display bones as extruded spheres, showing deformation influence volume"}, + {ARM_WIRE, "WIRE", 0, "Wire", "Display bones as thin wires, showing subdivision and B-Splines"}, {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_ghost_type_items[] = { {ARM_GHOST_CUR, "CURRENT_FRAME", 0, "Around Frame", "Display Ghosts of poses within a fixed number of frames around the current frame"}, -- cgit v1.2.3 From 93e992c5d980ce2186c025dbf6f4900b1ad78557 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 26 May 2011 17:07:38 +0000 Subject: AnimationExporter class refactoring. Exported AnimationExporter class to a separate set of files. --- source/blender/collada/AnimationExporter.cpp | 660 +++++++++++++++++++++++++++ source/blender/collada/AnimationExporter.h | 139 ++++++ source/blender/collada/CMakeLists.txt | 2 + source/blender/collada/DocumentExporter.cpp | 635 +------------------------- 4 files changed, 802 insertions(+), 634 deletions(-) create mode 100644 source/blender/collada/AnimationExporter.cpp create mode 100644 source/blender/collada/AnimationExporter.h (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp new file mode 100644 index 00000000000..8b2aada5e9a --- /dev/null +++ b/source/blender/collada/AnimationExporter.cpp @@ -0,0 +1,660 @@ +/* + * $Id: DocumentExporter.cpp 36898 2011-05-25 17:14:31Z phabtar $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include "GeometryExporter.h" +#include "AnimationExporter.h" + +template +void forEachObjectInScene(Scene *sce, Functor &f) +{ + Base *base= (Base*) sce->base.first; + while(base) { + Object *ob = base->object; + + f(ob); + + base= base->next; + } +} + +void AnimationExporter::exportAnimations(Scene *sce) + { + if(hasAnimations(sce)) { + this->scene = sce; + + openLibrary(); + + forEachObjectInScene(sce, *this); + + closeLibrary(); + } + } + + // called for each exported object + void AnimationExporter::operator() (Object *ob) + { + if (!ob->adt || !ob->adt->action) return; + + FCurve *fcu = (FCurve*)ob->adt->action->curves.first; + + if (ob->type == OB_ARMATURE) { + if (!ob->data) return; + + bArmature *arm = (bArmature*)ob->data; + for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) + write_bone_animation(ob, bone); + } + else { + while (fcu) { + // TODO "rotation_quaternion" is also possible for objects (although euler is default) + if ((!strcmp(fcu->rna_path, "location") || !strcmp(fcu->rna_path, "scale")) || + (!strcmp(fcu->rna_path, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)) + dae_animation(fcu, id_name(ob)); + + fcu = fcu->next; + } + } + } + + void AnimationExporter::dae_animation(FCurve *fcu, std::string ob_name) + { + const char *axis_names[] = {"X", "Y", "Z"}; + const char *axis_name = NULL; + char anim_id[200]; + + if (fcu->array_index < 3) + axis_name = axis_names[fcu->array_index]; + + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + fcu->rna_path, axis_names[fcu->array_index]); + + // check rna_path is one of: rotation, scale, location + + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); + + // create input source + std::string input_id = create_source_from_fcurve(COLLADASW::InputSemantic::INPUT, fcu, anim_id, axis_name); + + // create output source + std::string output_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); + + // create interpolations source + std::string interpolation_id = create_interpolation_source(fcu->totvert, anim_id, axis_name); + + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + + addSampler(sampler); + + std::string target = translate_id(ob_name) + + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + addChannel(COLLADABU::URI(empty, sampler_id), target); + + closeAnimation(); + } + + void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) + { + if (!ob_arm->adt) + return; + + //write bone animations for 3 transform types + //i=0 --> rotations + //i=1 --> scale + //i=2 --> location + for (int i = 0; i < 3; i++) + sample_and_write_bone_animation(ob_arm, bone, i); + + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + write_bone_animation(ob_arm, child); + } + + void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) + { + bArmature *arm = (bArmature*)ob_arm->data; + int flag = arm->flag; + std::vector fra; + char prefix[256]; + + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); + + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); + if (!pchan) + return; + + switch (transform_type) { + case 0: + find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); + break; + case 1: + find_frames(ob_arm, fra, prefix, "scale"); + break; + case 2: + find_frames(ob_arm, fra, prefix, "location"); + break; + default: + return; + } + + // exit rest position + if (flag & ARM_RESTPOS) { + arm->flag &= ~ARM_RESTPOS; + where_is_pose(scene, ob_arm); + } + + if (fra.size()) { + float *v = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); + sample_animation(v, fra, transform_type, bone, ob_arm); + + if (transform_type == 0) { + // write x, y, z curves separately if it is rotation + float *c = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); + for (int i = 0; i < 3; i++) { + for (unsigned int j = 0; j < fra.size(); j++) + c[j] = v[j * 3 + i]; + + dae_bone_animation(fra, c, transform_type, i, id_name(ob_arm), bone->name); + } + MEM_freeN(c); + } + else { + // write xyz at once if it is location or scale + dae_bone_animation(fra, v, transform_type, -1, id_name(ob_arm), bone->name); + } + + MEM_freeN(v); + } + + // restore restpos + if (flag & ARM_RESTPOS) + arm->flag = flag; + where_is_pose(scene, ob_arm); + } + + void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm) + { + bPoseChannel *pchan, *parchan = NULL; + bPose *pose = ob_arm->pose; + + pchan = get_pose_channel(pose, bone->name); + + if (!pchan) + return; + + parchan = pchan->parent; + + enable_fcurves(ob_arm->adt->action, bone->name); + + std::vector::iterator it; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + + BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); + } + else + copy_m4_m4(mat, pchan->pose_mat); + + switch (type) { + case 0: + mat4_to_eul(v, mat); + break; + case 1: + mat4_to_size(v, mat); + break; + case 2: + copy_v3_v3(v, mat[3]); + break; + } + + v += 3; + } + + enable_fcurves(ob_arm->adt->action, NULL); + } + + // dae_bone_animation -> add_bone_animation + // (blend this into dae_bone_animation) + void AnimationExporter::dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name) + { + const char *axis_names[] = {"X", "Y", "Z"}; + const char *axis_name = NULL; + char anim_id[200]; + bool is_rot = tm_type == 0; + + if (!fra.size()) + return; + + char rna_path[200]; + BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].%s", bone_name.c_str(), + tm_type == 0 ? "rotation_quaternion" : (tm_type == 1 ? "scale" : "location")); + + if (axis > -1) + axis_name = axis_names[axis]; + + std::string transform_sid = get_transform_sid(NULL, tm_type, axis_name, false); + + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + (char*)translate_id(bone_name).c_str(), (char*)transform_sid.c_str()); + + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); + + // create input source + std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, is_rot, anim_id, axis_name); + + // create output source + std::string output_id; + if (axis == -1) + output_id = create_xyz_source(v, fra.size(), anim_id); + else + output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, v, fra.size(), is_rot, anim_id, axis_name); + + // create interpolations source + std::string interpolation_id = create_interpolation_source(fra.size(), anim_id, axis_name); + + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + + // TODO create in/out tangents source + + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + + addSampler(sampler); + + std::string target = translate_id(ob_name + "_" + bone_name) + "/" + transform_sid; + addChannel(COLLADABU::URI(empty, sampler_id), target); + + closeAnimation(); + } + + float AnimationExporter::convert_time(float frame) + { + return FRA2TIME(frame); + } + + float AnimationExporter::convert_angle(float angle) + { + return COLLADABU::Math::Utils::radToDegF(angle); + } + + std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) + { + switch(semantic) { + case COLLADASW::InputSemantic::INPUT: + return INPUT_SOURCE_ID_SUFFIX; + case COLLADASW::InputSemantic::OUTPUT: + return OUTPUT_SOURCE_ID_SUFFIX; + case COLLADASW::InputSemantic::INTERPOLATION: + return INTERPOLATION_SOURCE_ID_SUFFIX; + case COLLADASW::InputSemantic::IN_TANGENT: + return INTANGENT_SOURCE_ID_SUFFIX; + case COLLADASW::InputSemantic::OUT_TANGENT: + return OUTTANGENT_SOURCE_ID_SUFFIX; + default: + break; + } + return ""; + } + + void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, + COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis) + { + switch(semantic) { + case COLLADASW::InputSemantic::INPUT: + param.push_back("TIME"); + break; + case COLLADASW::InputSemantic::OUTPUT: + if (is_rot) { + param.push_back("ANGLE"); + } + else { + if (axis) { + param.push_back(axis); + } + else { + param.push_back("X"); + param.push_back("Y"); + param.push_back("Z"); + } + } + break; + case COLLADASW::InputSemantic::IN_TANGENT: + case COLLADASW::InputSemantic::OUT_TANGENT: + param.push_back("X"); + param.push_back("Y"); + break; + default: + break; + } + } + + void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length) + { + switch (semantic) { + case COLLADASW::InputSemantic::INPUT: + *length = 1; + values[0] = convert_time(bezt->vec[1][0]); + break; + case COLLADASW::InputSemantic::OUTPUT: + *length = 1; + if (rotation) { + values[0] = convert_angle(bezt->vec[1][1]); + } + else { + values[0] = bezt->vec[1][1]; + } + break; + case COLLADASW::InputSemantic::IN_TANGENT: + case COLLADASW::InputSemantic::OUT_TANGENT: + // XXX + *length = 2; + break; + default: + *length = 0; + break; + } + } + + std::string AnimationExporter::create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name) + { + std::string source_id = anim_id + get_semantic_suffix(semantic); + + //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); + bool is_rotation = false; + + if (strstr(fcu->rna_path, "rotation")) is_rotation = true; + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fcu->totvert); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_rotation, axis_name); + + source.prepareToAppendValues(); + + for (unsigned int i = 0; i < fcu->totvert; i++) { + float values[3]; // be careful! + int length = 0; + + get_source_values(&fcu->bezt[i], semantic, is_rotation, values, &length); + for (int j = 0; j < length; j++) + source.appendValues(values[j]); + } + + source.finish(); + + return source_id; + } + + std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) + { + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_rot, axis_name); + + source.prepareToAppendValues(); + + for (int i = 0; i < tot; i++) { + float val = v[i]; + if (semantic == COLLADASW::InputSemantic::INPUT) + val = convert_time(val); + else if (is_rot) + val = convert_angle(val); + source.appendValues(val); + } + + source.finish(); + + return source_id; + } + + std::string AnimationExporter::create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name) + { + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fra.size()); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_rot, axis_name); + + source.prepareToAppendValues(); + + std::vector::iterator it; + for (it = fra.begin(); it != fra.end(); it++) { + float val = *it; + if (semantic == COLLADASW::InputSemantic::INPUT) + val = convert_time(val); + else if (is_rot) + val = convert_angle(val); + source.appendValues(val); + } + + source.finish(); + + return source_id; + } + + // only used for sources with OUTPUT semantic + std::string AnimationExporter::create_xyz_source(float *v, int tot, const std::string& anim_id) + { + COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(3); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, false, NULL); + + source.prepareToAppendValues(); + + for (int i = 0; i < tot; i++) { + source.appendValues(*v, *(v + 1), *(v + 2)); + v += 3; + } + + source.finish(); + + return source_id; + } + + std::string AnimationExporter::create_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) + { + std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + + COLLADASW::NameSource source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + param.push_back("INTERPOLATION"); + + source.prepareToAppendValues(); + + for (int i = 0; i < tot; i++) { + source.appendValues(LINEAR_NAME); + } + + source.finish(); + + return source_id; + } + + // for rotation, axis name is always appended and the value of append_axis is ignored + std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) + { + std::string tm_name; + + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (strstr(name, "rotation")) + tm_type = 0; + else if (!strcmp(name, "scale")) + tm_type = 1; + else if (!strcmp(name, "location")) + tm_type = 2; + else + tm_type = -1; + } + + switch (tm_type) { + case 0: + return std::string("rotation") + std::string(axis_name) + ".ANGLE"; + case 1: + tm_name = "scale"; + break; + case 2: + tm_name = "location"; + break; + default: + tm_name = ""; + break; + } + + if (tm_name.size()) { + if (append_axis) + return tm_name + std::string(".") + std::string(axis_name); + else + return tm_name; + } + + return std::string(""); + } + + char* AnimationExporter::extract_transform_name(char *rna_path) + { + char *dot = strrchr(rna_path, '.'); + return dot ? (dot + 1) : rna_path; + } + + void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) + { + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + + for (; fcu; fcu = fcu->next) { + if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) + continue; + + char *name = extract_transform_name(fcu->rna_path); + if (!strcmp(name, tm_name)) { + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; + if (std::find(fra.begin(), fra.end(), f) == fra.end()) + fra.push_back(f); + } + } + } + + // keep the keys in ascending order + std::sort(fra.begin(), fra.end()); + } + + void AnimationExporter::find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) + { + if (rotmode > 0) + find_frames(ob, fra, prefix, "rotation_euler"); + else if (rotmode == ROT_MODE_QUAT) + find_frames(ob, fra, prefix, "rotation_quaternion"); + /*else if (rotmode == ROT_MODE_AXISANGLE) + ;*/ + } + + // enable fcurves driving a specific bone, disable all the rest + // if bone_name = NULL enable all fcurves + void AnimationExporter::enable_fcurves(bAction *act, char *bone_name) + { + FCurve *fcu; + char prefix[200]; + + if (bone_name) + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone_name); + + for (fcu = (FCurve*)act->curves.first; fcu; fcu = fcu->next) { + if (bone_name) { + if (!strncmp(fcu->rna_path, prefix, strlen(prefix))) + fcu->flag &= ~FCURVE_DISABLED; + else + fcu->flag |= FCURVE_DISABLED; + } + else { + fcu->flag &= ~FCURVE_DISABLED; + } + } + } + + bool AnimationExporter::hasAnimations(Scene *sce) + { + Base *base= (Base*) sce->base.first; + while(base) { + Object *ob = base->object; + + FCurve *fcu = 0; + if(ob->adt && ob->adt->action) + fcu = (FCurve*)ob->adt->action->curves.first; + + if ((ob->type == OB_ARMATURE && ob->data) || fcu) { + return true; + } + base= base->next; + } + return false; + } diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h new file mode 100644 index 00000000000..89db0788674 --- /dev/null +++ b/source/blender/collada/AnimationExporter.h @@ -0,0 +1,139 @@ +/* + * $Id: DocumentExporter.cpp 36898 2011-05-25 17:14:31Z phabtar $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include +extern "C" +{ +#include "DNA_scene_types.h" +#include "DNA_object_types.h" +#include "DNA_anim_types.h" +#include "DNA_action_types.h" +#include "DNA_curve_types.h" +#include "DNA_armature_types.h" + +#include "BKE_DerivedMesh.h" +#include "BKE_fcurve.h" +#include "BKE_animsys.h" +#ifdef NAN_BUILDINFO +extern char build_rev[]; +#endif +} + +#include "MEM_guardedalloc.h" + +#include "BKE_action.h" // pose functions +#include "BKE_armature.h" +#include "BKE_object.h" + +#include "BLI_math.h" +#include "BLI_string.h" +#include "BLI_listbase.h" + +#include "RNA_access.h" + +#include "COLLADASWSource.h" +#include "COLLADASWInstanceGeometry.h" +#include "COLLADASWInputList.h" +#include "COLLADASWPrimitves.h" +#include "COLLADASWVertices.h" +#include "COLLADASWLibraryAnimations.h" +#include "COLLADASWParamTemplate.h" +#include "COLLADASWParamBase.h" +#include "COLLADASWSampler.h" +#include "COLLADASWConstants.h" +#include "COLLADASWBaseInputElement.h" + +#include "collada_internal.h" + +#include +#include // std::find + +class AnimationExporter: COLLADASW::LibraryAnimations +{ +private: + Scene *scene; + COLLADASW::StreamWriter *sw; + +public: + + AnimationExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryAnimations(sw) { this->sw = sw; } + + + void exportAnimations(Scene *sce); + + // called for each exported object + void operator() (Object *ob); + +protected: + + void dae_animation(FCurve *fcu, std::string ob_name); + + void write_bone_animation(Object *ob_arm, Bone *bone); + + void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type); + + void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm); + + // dae_bone_animation -> add_bone_animation + // (blend this into dae_bone_animation) + void dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name); + + float convert_time(float frame); + + float convert_angle(float angle); + + std::string get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic); + + void add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, + COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis); + + void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); + + std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name); + + std::string create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name); + + std::string create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name); + + std::string create_xyz_source(float *v, int tot, const std::string& anim_id); + + std::string create_interpolation_source(int tot, const std::string& anim_id, const char *axis_name); + + // for rotation, axis name is always appended and the value of append_axis is ignored + std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); + + void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); + + void find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode); + + // enable fcurves driving a specific bone, disable all the rest + // if bone_name = NULL enable all fcurves + void enable_fcurves(bAction *act, char *bone_name); + + bool hasAnimations(Scene *sce); + + char* extract_transform_name(char *rna_path); +}; \ No newline at end of file diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index fa7bfee8ee5..130e18f4c9a 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -58,6 +58,7 @@ endif() set(SRC AnimationImporter.cpp + AnimationExporter.cpp ArmatureExporter.cpp ArmatureImporter.cpp CameraExporter.cpp @@ -80,6 +81,7 @@ set(SRC collada_utils.cpp AnimationImporter.h + AnimationExporter.h ArmatureExporter.h ArmatureImporter.h CameraExporter.h diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index bb0bc5e1e76..0bdf41f15eb 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -114,6 +114,7 @@ extern char build_rev[]; #include "TransformWriter.h" #include "ArmatureExporter.h" +#include "AnimationExporter.h" #include "CameraExporter.h" #include "EffectExporter.h" #include "GeometryExporter.h" @@ -298,640 +299,6 @@ public: // TODO: it would be better to instantiate animations rather than create a new one per object // COLLADA allows this through multiple s in . // For this to work, we need to know objects that use a certain action. -class AnimationExporter: COLLADASW::LibraryAnimations -{ - Scene *scene; - COLLADASW::StreamWriter *sw; - -public: - - AnimationExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryAnimations(sw) { this->sw = sw; } - - - - void exportAnimations(Scene *sce) - { - if(hasAnimations(sce)) { - this->scene = sce; - - openLibrary(); - - forEachObjectInScene(sce, *this); - - closeLibrary(); - } - } - - // called for each exported object - void operator() (Object *ob) - { - if (!ob->adt || !ob->adt->action) return; - - FCurve *fcu = (FCurve*)ob->adt->action->curves.first; - - if (ob->type == OB_ARMATURE) { - if (!ob->data) return; - - bArmature *arm = (bArmature*)ob->data; - for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - write_bone_animation(ob, bone); - } - else { - while (fcu) { - // TODO "rotation_quaternion" is also possible for objects (although euler is default) - if ((!strcmp(fcu->rna_path, "location") || !strcmp(fcu->rna_path, "scale")) || - (!strcmp(fcu->rna_path, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)) - dae_animation(fcu, id_name(ob)); - - fcu = fcu->next; - } - } - } - -protected: - - void dae_animation(FCurve *fcu, std::string ob_name) - { - const char *axis_names[] = {"X", "Y", "Z"}; - const char *axis_name = NULL; - char anim_id[200]; - - if (fcu->array_index < 3) - axis_name = axis_names[fcu->array_index]; - - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - fcu->rna_path, axis_names[fcu->array_index]); - - // check rna_path is one of: rotation, scale, location - - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); - - // create input source - std::string input_id = create_source_from_fcurve(COLLADASW::InputSemantic::INPUT, fcu, anim_id, axis_name); - - // create output source - std::string output_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); - - // create interpolations source - std::string interpolation_id = create_interpolation_source(fcu->totvert, anim_id, axis_name); - - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; - COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); - std::string empty; - sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); - sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); - - // this input is required - sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); - - addSampler(sampler); - - std::string target = translate_id(ob_name) - + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); - addChannel(COLLADABU::URI(empty, sampler_id), target); - - closeAnimation(); - } - - void write_bone_animation(Object *ob_arm, Bone *bone) - { - if (!ob_arm->adt) - return; - - //write bone animations for 3 transform types - //i=0 --> rotations - //i=1 --> scale - //i=2 --> location - for (int i = 0; i < 3; i++) - sample_and_write_bone_animation(ob_arm, bone, i); - - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) - write_bone_animation(ob_arm, child); - } - - void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) - { - bArmature *arm = (bArmature*)ob_arm->data; - int flag = arm->flag; - std::vector fra; - char prefix[256]; - - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); - - bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); - if (!pchan) - return; - - switch (transform_type) { - case 0: - find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); - break; - case 1: - find_frames(ob_arm, fra, prefix, "scale"); - break; - case 2: - find_frames(ob_arm, fra, prefix, "location"); - break; - default: - return; - } - - // exit rest position - if (flag & ARM_RESTPOS) { - arm->flag &= ~ARM_RESTPOS; - where_is_pose(scene, ob_arm); - } - - if (fra.size()) { - float *v = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); - sample_animation(v, fra, transform_type, bone, ob_arm); - - if (transform_type == 0) { - // write x, y, z curves separately if it is rotation - float *c = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); - for (int i = 0; i < 3; i++) { - for (unsigned int j = 0; j < fra.size(); j++) - c[j] = v[j * 3 + i]; - - dae_bone_animation(fra, c, transform_type, i, id_name(ob_arm), bone->name); - } - MEM_freeN(c); - } - else { - // write xyz at once if it is location or scale - dae_bone_animation(fra, v, transform_type, -1, id_name(ob_arm), bone->name); - } - - MEM_freeN(v); - } - - // restore restpos - if (flag & ARM_RESTPOS) - arm->flag = flag; - where_is_pose(scene, ob_arm); - } - - void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm) - { - bPoseChannel *pchan, *parchan = NULL; - bPose *pose = ob_arm->pose; - - pchan = get_pose_channel(pose, bone->name); - - if (!pchan) - return; - - parchan = pchan->parent; - - enable_fcurves(ob_arm->adt->action, bone->name); - - std::vector::iterator it; - for (it = frames.begin(); it != frames.end(); it++) { - float mat[4][4], ipar[4][4]; - - float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - - BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); - where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); - - // compute bone local mat - if (bone->parent) { - invert_m4_m4(ipar, parchan->pose_mat); - mul_m4_m4m4(mat, pchan->pose_mat, ipar); - } - else - copy_m4_m4(mat, pchan->pose_mat); - - switch (type) { - case 0: - mat4_to_eul(v, mat); - break; - case 1: - mat4_to_size(v, mat); - break; - case 2: - copy_v3_v3(v, mat[3]); - break; - } - - v += 3; - } - - enable_fcurves(ob_arm->adt->action, NULL); - } - - // dae_bone_animation -> add_bone_animation - // (blend this into dae_bone_animation) - void dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name) - { - const char *axis_names[] = {"X", "Y", "Z"}; - const char *axis_name = NULL; - char anim_id[200]; - bool is_rot = tm_type == 0; - - if (!fra.size()) - return; - - char rna_path[200]; - BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].%s", bone_name.c_str(), - tm_type == 0 ? "rotation_quaternion" : (tm_type == 1 ? "scale" : "location")); - - if (axis > -1) - axis_name = axis_names[axis]; - - std::string transform_sid = get_transform_sid(NULL, tm_type, axis_name, false); - - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - (char*)translate_id(bone_name).c_str(), (char*)transform_sid.c_str()); - - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); - - // create input source - std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, is_rot, anim_id, axis_name); - - // create output source - std::string output_id; - if (axis == -1) - output_id = create_xyz_source(v, fra.size(), anim_id); - else - output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, v, fra.size(), is_rot, anim_id, axis_name); - - // create interpolations source - std::string interpolation_id = create_interpolation_source(fra.size(), anim_id, axis_name); - - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; - COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); - std::string empty; - sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); - sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); - - // TODO create in/out tangents source - - // this input is required - sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); - - addSampler(sampler); - - std::string target = translate_id(ob_name + "_" + bone_name) + "/" + transform_sid; - addChannel(COLLADABU::URI(empty, sampler_id), target); - - closeAnimation(); - } - - float convert_time(float frame) - { - return FRA2TIME(frame); - } - - float convert_angle(float angle) - { - return COLLADABU::Math::Utils::radToDegF(angle); - } - - std::string get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) - { - switch(semantic) { - case COLLADASW::InputSemantic::INPUT: - return INPUT_SOURCE_ID_SUFFIX; - case COLLADASW::InputSemantic::OUTPUT: - return OUTPUT_SOURCE_ID_SUFFIX; - case COLLADASW::InputSemantic::INTERPOLATION: - return INTERPOLATION_SOURCE_ID_SUFFIX; - case COLLADASW::InputSemantic::IN_TANGENT: - return INTANGENT_SOURCE_ID_SUFFIX; - case COLLADASW::InputSemantic::OUT_TANGENT: - return OUTTANGENT_SOURCE_ID_SUFFIX; - default: - break; - } - return ""; - } - - void add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, - COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis) - { - switch(semantic) { - case COLLADASW::InputSemantic::INPUT: - param.push_back("TIME"); - break; - case COLLADASW::InputSemantic::OUTPUT: - if (is_rot) { - param.push_back("ANGLE"); - } - else { - if (axis) { - param.push_back(axis); - } - else { - param.push_back("X"); - param.push_back("Y"); - param.push_back("Z"); - } - } - break; - case COLLADASW::InputSemantic::IN_TANGENT: - case COLLADASW::InputSemantic::OUT_TANGENT: - param.push_back("X"); - param.push_back("Y"); - break; - default: - break; - } - } - - void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length) - { - switch (semantic) { - case COLLADASW::InputSemantic::INPUT: - *length = 1; - values[0] = convert_time(bezt->vec[1][0]); - break; - case COLLADASW::InputSemantic::OUTPUT: - *length = 1; - if (rotation) { - values[0] = convert_angle(bezt->vec[1][1]); - } - else { - values[0] = bezt->vec[1][1]; - } - break; - case COLLADASW::InputSemantic::IN_TANGENT: - case COLLADASW::InputSemantic::OUT_TANGENT: - // XXX - *length = 2; - break; - default: - *length = 0; - break; - } - } - - std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); - bool is_rotation = false; - - if (strstr(fcu->rna_path, "rotation")) is_rotation = true; - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(fcu->totvert); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rotation, axis_name); - - source.prepareToAppendValues(); - - for (unsigned int i = 0; i < fcu->totvert; i++) { - float values[3]; // be careful! - int length = 0; - - get_source_values(&fcu->bezt[i], semantic, is_rotation, values, &length); - for (int j = 0; j < length; j++) - source.appendValues(values[j]); - } - - source.finish(); - - return source_id; - } - - std::string create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name); - - source.prepareToAppendValues(); - - for (int i = 0; i < tot; i++) { - float val = v[i]; - if (semantic == COLLADASW::InputSemantic::INPUT) - val = convert_time(val); - else if (is_rot) - val = convert_angle(val); - source.appendValues(val); - } - - source.finish(); - - return source_id; - } - - std::string create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(fra.size()); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name); - - source.prepareToAppendValues(); - - std::vector::iterator it; - for (it = fra.begin(); it != fra.end(); it++) { - float val = *it; - if (semantic == COLLADASW::InputSemantic::INPUT) - val = convert_time(val); - else if (is_rot) - val = convert_angle(val); - source.appendValues(val); - } - - source.finish(); - - return source_id; - } - - // only used for sources with OUTPUT semantic - std::string create_xyz_source(float *v, int tot, const std::string& anim_id) - { - COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(3); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, false, NULL); - - source.prepareToAppendValues(); - - for (int i = 0; i < tot; i++) { - source.appendValues(*v, *(v + 1), *(v + 2)); - v += 3; - } - - source.finish(); - - return source_id; - } - - std::string create_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); - - COLLADASW::NameSource source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - param.push_back("INTERPOLATION"); - - source.prepareToAppendValues(); - - for (int i = 0; i < tot; i++) { - source.appendValues(LINEAR_NAME); - } - - source.finish(); - - return source_id; - } - - // for rotation, axis name is always appended and the value of append_axis is ignored - std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) - { - std::string tm_name; - - // when given rna_path, determine tm_type from it - if (rna_path) { - char *name = extract_transform_name(rna_path); - - if (strstr(name, "rotation")) - tm_type = 0; - else if (!strcmp(name, "scale")) - tm_type = 1; - else if (!strcmp(name, "location")) - tm_type = 2; - else - tm_type = -1; - } - - switch (tm_type) { - case 0: - return std::string("rotation") + std::string(axis_name) + ".ANGLE"; - case 1: - tm_name = "scale"; - break; - case 2: - tm_name = "location"; - break; - default: - tm_name = ""; - break; - } - - if (tm_name.size()) { - if (append_axis) - return tm_name + std::string(".") + std::string(axis_name); - else - return tm_name; - } - - return std::string(""); - } - - char *extract_transform_name(char *rna_path) - { - char *dot = strrchr(rna_path, '.'); - return dot ? (dot + 1) : rna_path; - } - - void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) - { - FCurve *fcu= (FCurve*)ob->adt->action->curves.first; - - for (; fcu; fcu = fcu->next) { - if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) - continue; - - char *name = extract_transform_name(fcu->rna_path); - if (!strcmp(name, tm_name)) { - for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; - if (std::find(fra.begin(), fra.end(), f) == fra.end()) - fra.push_back(f); - } - } - } - - // keep the keys in ascending order - std::sort(fra.begin(), fra.end()); - } - - void find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) - { - if (rotmode > 0) - find_frames(ob, fra, prefix, "rotation_euler"); - else if (rotmode == ROT_MODE_QUAT) - find_frames(ob, fra, prefix, "rotation_quaternion"); - /*else if (rotmode == ROT_MODE_AXISANGLE) - ;*/ - } - - // enable fcurves driving a specific bone, disable all the rest - // if bone_name = NULL enable all fcurves - void enable_fcurves(bAction *act, char *bone_name) - { - FCurve *fcu; - char prefix[200]; - - if (bone_name) - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone_name); - - for (fcu = (FCurve*)act->curves.first; fcu; fcu = fcu->next) { - if (bone_name) { - if (!strncmp(fcu->rna_path, prefix, strlen(prefix))) - fcu->flag &= ~FCURVE_DISABLED; - else - fcu->flag |= FCURVE_DISABLED; - } - else { - fcu->flag &= ~FCURVE_DISABLED; - } - } - } - - bool hasAnimations(Scene *sce) - { - Base *base= (Base*) sce->base.first; - while(base) { - Object *ob = base->object; - - FCurve *fcu = 0; - if(ob->adt && ob->adt->action) - fcu = (FCurve*)ob->adt->action->curves.first; - - if ((ob->type == OB_ARMATURE && ob->data) || fcu) { - return true; - } - base= base->next; - } - return false; - } -}; void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename) { -- cgit v1.2.3 From c61d39ef6c254868ec750e98328c35cf7eca1c38 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 29 May 2011 19:27:30 +0000 Subject: Add support for exporting F-Curves with BEZIER and STEP INTERPOLATION types. --- source/blender/collada/AnimationExporter.cpp | 163 +++++++++++++++++++++------ source/blender/collada/AnimationExporter.h | 5 +- 2 files changed, 130 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 8b2aada5e9a..f28883ce91c 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -54,7 +54,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // called for each exported object void AnimationExporter::operator() (Object *ob) { - if (!ob->adt || !ob->adt->action) return; + if (!ob->adt || !ob->adt->action) return; //this is already checked in hasAnimations() FCurve *fcu = (FCurve*)ob->adt->action->curves.first; @@ -82,6 +82,7 @@ void AnimationExporter::exportAnimations(Scene *sce) const char *axis_names[] = {"X", "Y", "Z"}; const char *axis_name = NULL; char anim_id[200]; + bool has_tangents = false; if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; @@ -100,7 +101,20 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string output_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); // create interpolations source - std::string interpolation_id = create_interpolation_source(fcu->totvert, anim_id, axis_name); + std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents); + + // handle tangents (if required) + std::string intangent_id; + std::string outtangent_id; + + if (has_tangents) { + // create in_tangent source + intangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::IN_TANGENT, fcu, anim_id, axis_name); + + // create out_tangent source + outtangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUT_TANGENT, fcu, anim_id, axis_name); + } + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); @@ -111,6 +125,11 @@ void AnimationExporter::exportAnimations(Scene *sce) // this input is required sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + if (has_tangents) { + sampler.addInput(COLLADASW::InputSemantic::IN_TANGENT, COLLADABU::URI(empty, intangent_id)); + sampler.addInput(COLLADASW::InputSemantic::OUT_TANGENT, COLLADABU::URI(empty, outtangent_id)); + } + addSampler(sampler); std::string target = translate_id(ob_name) @@ -148,7 +167,7 @@ void AnimationExporter::exportAnimations(Scene *sce) bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); if (!pchan) return; - + //Fill frame array with key frame values framed at @param:transform_type switch (transform_type) { case 0: find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); @@ -168,28 +187,29 @@ void AnimationExporter::exportAnimations(Scene *sce) arm->flag &= ~ARM_RESTPOS; where_is_pose(scene, ob_arm); } - + //v array will hold all values which will be exported. if (fra.size()) { - float *v = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); - sample_animation(v, fra, transform_type, bone, ob_arm); + float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); + sample_animation(values, fra, transform_type, bone, ob_arm, pchan); if (transform_type == 0) { // write x, y, z curves separately if it is rotation - float *c = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); + float *axisValues = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); + for (int i = 0; i < 3; i++) { for (unsigned int j = 0; j < fra.size(); j++) - c[j] = v[j * 3 + i]; + axisValues[j] = values[j * 3 + i]; - dae_bone_animation(fra, c, transform_type, i, id_name(ob_arm), bone->name); + dae_bone_animation(fra, axisValues, transform_type, i, id_name(ob_arm), bone->name); } - MEM_freeN(c); + MEM_freeN(axisValues); } else { // write xyz at once if it is location or scale - dae_bone_animation(fra, v, transform_type, -1, id_name(ob_arm), bone->name); + dae_bone_animation(fra, values, transform_type, -1, id_name(ob_arm), bone->name); } - MEM_freeN(v); + MEM_freeN(values); } // restore restpos @@ -198,12 +218,12 @@ void AnimationExporter::exportAnimations(Scene *sce) where_is_pose(scene, ob_arm); } - void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm) + void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) { - bPoseChannel *pchan, *parchan = NULL; - bPose *pose = ob_arm->pose; + bPoseChannel *parchan = NULL; + /*bPose *pose = ob_arm->pose; - pchan = get_pose_channel(pose, bone->name); + pchan = get_pose_channel(pose, bone->name);*/ if (!pchan) return; @@ -249,7 +269,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) - void AnimationExporter::dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name) + void AnimationExporter::dae_bone_animation(std::vector &fra, float *values, int tm_type, int axis, std::string ob_name, std::string bone_name) { const char *axis_names[] = {"X", "Y", "Z"}; const char *axis_name = NULL; @@ -279,12 +299,12 @@ void AnimationExporter::exportAnimations(Scene *sce) // create output source std::string output_id; if (axis == -1) - output_id = create_xyz_source(v, fra.size(), anim_id); + output_id = create_xyz_source(values, fra.size(), anim_id); else - output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, v, fra.size(), is_rot, anim_id, axis_name); + output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, values, fra.size(), is_rot, anim_id, axis_name); // create interpolations source - std::string interpolation_id = create_interpolation_source(fra.size(), anim_id, axis_name); + std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, axis_name); std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); @@ -349,7 +369,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if (axis) { param.push_back(axis); } - else { + else { //assumes if axis isn't specified all axi are added param.push_back("X"); param.push_back("Y"); param.push_back("Z"); @@ -382,10 +402,34 @@ void AnimationExporter::exportAnimations(Scene *sce) values[0] = bezt->vec[1][1]; } break; + case COLLADASW::InputSemantic::IN_TANGENT: + *length = 2; + values[0] = convert_time(bezt->vec[0][0]); + if (bezt->ipo != BEZT_IPO_BEZ) { + // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data + values[0] = 0; + values[1] = 0; + } else if (rotation) { + values[1] = convert_angle(bezt->vec[0][1]); + } else { + values[1] = bezt->vec[0][1]; + } + break; + case COLLADASW::InputSemantic::OUT_TANGENT: - // XXX *length = 2; + values[0] = convert_time(bezt->vec[2][0]); + if (bezt->ipo != BEZT_IPO_BEZ) { + // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data + values[0] = 0; + values[1] = 0; + } else if (rotation) { + values[1] = convert_angle(bezt->vec[2][1]); + } else { + values[1] = bezt->vec[2][1]; + } + break; break; default: *length = 0; @@ -406,7 +450,18 @@ void AnimationExporter::exportAnimations(Scene *sce) source.setId(source_id); source.setArrayId(source_id + ARRAY_ID_SUFFIX); source.setAccessorCount(fcu->totvert); - source.setAccessorStride(1); + + switch (semantic) { + case COLLADASW::InputSemantic::INPUT: + case COLLADASW::InputSemantic::OUTPUT: + source.setAccessorStride(1); + break; + case COLLADASW::InputSemantic::IN_TANGENT: + case COLLADASW::InputSemantic::OUT_TANGENT: + source.setAccessorStride(2); + break; + } + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); add_source_parameters(param, semantic, is_rotation, axis_name); @@ -426,7 +481,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - + //Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) { std::string source_id = anim_id + get_semantic_suffix(semantic); @@ -444,9 +499,10 @@ void AnimationExporter::exportAnimations(Scene *sce) for (int i = 0; i < tot; i++) { float val = v[i]; - if (semantic == COLLADASW::InputSemantic::INPUT) - val = convert_time(val); - else if (is_rot) + ////if (semantic == COLLADASW::InputSemantic::INPUT) + // val = convert_time(val); + //else + if (is_rot) val = convert_angle(val); source.appendValues(val); } @@ -455,7 +511,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - +// only used for sources with INPUT semantic std::string AnimationExporter::create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name) { std::string source_id = anim_id + get_semantic_suffix(semantic); @@ -474,10 +530,10 @@ void AnimationExporter::exportAnimations(Scene *sce) std::vector::iterator it; for (it = fra.begin(); it != fra.end(); it++) { float val = *it; - if (semantic == COLLADASW::InputSemantic::INPUT) + //if (semantic == COLLADASW::InputSemantic::INPUT) val = convert_time(val); - else if (is_rot) - val = convert_angle(val); + /*else if (is_rot) + val = convert_angle(val);*/ source.appendValues(val); } @@ -486,7 +542,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - // only used for sources with OUTPUT semantic + // only used for sources with OUTPUT semantic ( locations and scale) std::string AnimationExporter::create_xyz_source(float *v, int tot, const std::string& anim_id) { COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; @@ -513,7 +569,41 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - std::string AnimationExporter::create_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) + std::string AnimationExporter::create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents) + { + std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + + COLLADASW::NameSource source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fcu->totvert); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + param.push_back("INTERPOLATION"); + + source.prepareToAppendValues(); + + *has_tangents = false; + + for (unsigned int i = 0; i < fcu->totvert; i++) { + if (fcu->bezt[i].ipo==BEZT_IPO_BEZ) { + source.appendValues(BEZIER_NAME); + *has_tangents = true; + } else if (fcu->bezt[i].ipo==BEZT_IPO_CONST) { + source.appendValues(STEP_NAME); + } else { // BEZT_IPO_LIN + source.appendValues(LINEAR_NAME); + } + } + // unsupported? -- HERMITE, CARDINAL, BSPLINE, NURBS + + source.finish(); + + return source_id; + } + + std::string AnimationExporter::fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) { std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); @@ -597,8 +687,8 @@ void AnimationExporter::exportAnimations(Scene *sce) char *name = extract_transform_name(fcu->rna_path); if (!strcmp(name, tm_name)) { for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; - if (std::find(fra.begin(), fra.end(), f) == fra.end()) + float f = fcu->bezt[i].vec[1][0]; // + if (std::find(fra.begin(), fra.end(), f) == fra.end()) fra.push_back(f); } } @@ -648,9 +738,10 @@ void AnimationExporter::exportAnimations(Scene *sce) Object *ob = base->object; FCurve *fcu = 0; - if(ob->adt && ob->adt->action) + if(ob->adt && ob->adt->action) fcu = (FCurve*)ob->adt->action->curves.first; + //The Scene has animations if object type is armature or object has f-curve if ((ob->type == OB_ARMATURE && ob->data) || fcu) { return true; } diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 89db0788674..3968401331a 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -95,7 +95,7 @@ protected: void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type); - void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm); + void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) @@ -120,8 +120,9 @@ protected: std::string create_xyz_source(float *v, int tot, const std::string& anim_id); - std::string create_interpolation_source(int tot, const std::string& anim_id, const char *axis_name); + std::string create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents); + std::string fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name); // for rotation, axis name is always appended and the value of append_axis is ignored std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); -- cgit v1.2.3 From c6dbb0b201da73008c35920cb40f3d84fcb35a9f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 1 Jun 2011 06:09:34 +0000 Subject: Bugfix [#27535] Insert delta key via IKey menu doesn't work well Index needed to be incrememented regardless of whether Keying Set is able to be shown, otherwise lookup fails with wrong Keying Set found --- source/blender/editors/animation/keyingsets.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index c525c9af626..610022660bd 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -782,19 +782,19 @@ void ANIM_keying_sets_menu_setup (bContext *C, const char title[], const char op * - these are listed in the order in which they were defined for the active scene */ if (scene->keyingsets.first) { - for (ks= scene->keyingsets.first; ks; ks= ks->next) { + for (ks= scene->keyingsets.first; ks; ks=ks->next, i++) { if (ANIM_keyingset_context_ok_poll(C, ks)) - uiItemIntO(layout, ks->name, ICON_NONE, op_name, "type", i++); + uiItemIntO(layout, ks->name, ICON_NONE, op_name, "type", i); } uiItemS(layout); } /* builtin Keying Sets */ i= -1; - for (ks= builtin_keyingsets.first; ks; ks= ks->next) { + for (ks= builtin_keyingsets.first; ks; ks=ks->next, i--) { /* only show KeyingSet if context is suitable */ if (ANIM_keyingset_context_ok_poll(C, ks)) - uiItemEnumO_value(layout, ks->name, ICON_NONE, op_name, "type", i--); + uiItemEnumO_value(layout, ks->name, ICON_NONE, op_name, "type", i); } uiPupMenuEnd(C, pup); -- cgit v1.2.3 From 23888be4238f992e5f57638b953b01b778975e8f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 1 Jun 2011 06:26:54 +0000 Subject: Usability Tweak [#27469] Adding/Rename markers (M/Ctrl-M) were restricted to only being available when the mouse was hovering just over the time scroller at the bottom of animation editors, as otherwise we'd get nasty keymap conflicts where markers keymap would block all the primary function keymaps. However, in the case of Adding/Renaming markers, there are no other keys which currently conflict with these in such cases. Hence, it is fine to let these ones be able to be run from anywhere within the animation editors, which should make it easier to add markers for lipsyncing purposes again for example. --- source/blender/editors/animation/anim_markers.c | 11 +++++++++++ source/blender/editors/include/ED_markers.h | 3 +++ source/blender/editors/space_action/action_ops.c | 4 ++++ source/blender/editors/space_graph/graph_ops.c | 4 ++++ source/blender/editors/space_nla/nla_ops.c | 4 ++++ 5 files changed, 26 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index c802ba621f1..f61c1ff7962 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -1495,3 +1495,14 @@ void ED_marker_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", BKEY, KM_PRESS, KM_CTRL, 0); #endif } + +/* to be called from animation editor keymaps, see note below */ +void ED_marker_keymap_animedit_conflictfree(wmKeyMap *keymap) +{ + /* duplicate of some marker-hotkeys but without the bounds checking + * since these are handy to be able to do unrestricted and won't conflict + * with primary function hotkeys (Usability tweak [#27469]) + */ + WM_keymap_add_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0); +} diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h index f804e052301..8476e67acd5 100644 --- a/source/blender/editors/include/ED_markers.h +++ b/source/blender/editors/include/ED_markers.h @@ -72,6 +72,9 @@ void ED_operatortypes_marker(void); /* called in screen_ops.c:ED_keymap_screen() */ void ED_marker_keymap(struct wmKeyConfig *keyconf); +/* called in animation editors - keymap defines */ +void ED_marker_keymap_animedit_conflictfree(struct wmKeyMap *keymap); + /* debugging only */ void debug_markers_print_list(struct ListBase *markers); diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index 43d9ae0f5c9..2ccad308676 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -40,6 +40,7 @@ #include "BLI_blenlib.h" #include "ED_anim_api.h" +#include "ED_markers.h" #include "ED_transform.h" #include "action_intern.h" @@ -193,6 +194,9 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) /* transform system */ transform_keymap_for_space(keyconf, keymap, SPACE_ACTION); + + /* special markers hotkeys for anim editors: see note in definition of this function */ + ED_marker_keymap_animedit_conflictfree(keymap); } /* --------------- */ diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 544df2dab70..0d7cdf94bc7 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -46,6 +46,7 @@ #include "UI_view2d.h" #include "ED_anim_api.h" +#include "ED_markers.h" #include "ED_screen.h" #include "ED_transform.h" @@ -399,6 +400,9 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) /* transform system */ transform_keymap_for_space(keyconf, keymap, SPACE_IPO); + + /* special markers hotkeys for anim editors: see note in definition of this function */ + ED_marker_keymap_animedit_conflictfree(keymap); } /* --------------- */ diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index 85dcf14adac..ea8e8961f02 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -45,6 +45,7 @@ #include "BKE_screen.h" #include "ED_anim_api.h" +#include "ED_markers.h" #include "ED_screen.h" #include "ED_transform.h" @@ -262,6 +263,9 @@ static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap) /* transform system */ transform_keymap_for_space(keyconf, keymap, SPACE_NLA); + + /* special markers hotkeys for anim editors: see note in definition of this function */ + ED_marker_keymap_animedit_conflictfree(keymap); } /* --------------- */ -- cgit v1.2.3 From 6394261e54215d50b1e39e8ea45dcb63080f193e Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 1 Jun 2011 06:43:10 +0000 Subject: BGE Animations: Removing guards that prevent the action actuator from being used on non-armatures. Object animation works through this actuator now too. :) --- source/blender/editors/space_logic/logic_window.c | 4 ---- source/blender/makesrna/intern/rna_actuator.c | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index bce492f5a04..0a9a91a53af 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3679,10 +3679,6 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) PointerRNA settings_ptr; uiLayout *row; - if(ob->type != OB_ARMATURE){ - uiItemL(layout, "Actuator only available for armatures", ICON_NONE); - return; - } RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr); row= uiLayoutRow(layout, 0); diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 116f5185980..410822cecf8 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -426,11 +426,11 @@ EnumPropertyItem *rna_Actuator_type_itemf(bContext *C, PointerRNA *ptr, Property if (ob != NULL) { if (ob->type==OB_ARMATURE) { - RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_ACTION); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_ARMATURE); } } - + + RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_ACTION); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_CAMERA); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_CONSTRAINT); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_EDIT_OBJECT); -- cgit v1.2.3 From dd43faa85555f1c9504eca4bf46201d1b6e0a253 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 1 Jun 2011 11:55:28 +0000 Subject: * Fix compiler warning from previous commit * For new themes, size of handles in graph editor is now 4. Allows them to be seen better. (TODO: .b.blend needs updating) --- source/blender/editors/include/ED_markers.h | 1 + source/blender/editors/interface/resources.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h index 8476e67acd5..a8e91add348 100644 --- a/source/blender/editors/include/ED_markers.h +++ b/source/blender/editors/include/ED_markers.h @@ -34,6 +34,7 @@ #define ED_MARKERS_H struct wmKeyConfig; +struct wmKeyMap; struct bContext; struct bAnimContext; struct Scene; diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 1a2a2906f1a..3564dad474a 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -663,7 +663,7 @@ void ui_theme_init_default(void) SETCOL(btheme->tipo.handle_vertex, 0, 0, 0, 255); SETCOL(btheme->tipo.handle_vertex_select, 255, 133, 0, 255); - btheme->tipo.handle_vertex_size= 3; + btheme->tipo.handle_vertex_size= 4; SETCOL(btheme->tipo.ds_channel, 82, 96, 110, 255); SETCOL(btheme->tipo.ds_subchannel, 124, 137, 150, 255); -- cgit v1.2.3 From b41427c66b31642869ba8540235ed964abcb244c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 2 Jun 2011 11:51:38 +0000 Subject: Bugfix: "Time Slide" tool broken Dunno how long this has been broken for (*), but the Time Slide transform tool in DopeSheet no longer did anything most of the time. It appeared to be be caused by some blotched indexing code from ages ago. I've fixed this problem, as well as preventing the case where it would also give errors when only a single key was selected. (*) Does anyone actually use this tool? IIRC, this was added during Orange, though I can't find the commit for this anymore or why it was added. Probably it might be better to just let it go... --- source/blender/editors/transform/transform.c | 4 ++-- .../blender/editors/transform/transform_conversions.c | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 5b733cab699..0ce21c2efee 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -5801,8 +5801,8 @@ int TimeSlide(TransInfo *t, const int mval[2]) char str[200]; /* calculate mouse co-ordinates */ - UI_view2d_region_to_view(v2d, mval[0], mval[0], &cval[0], &cval[1]); - UI_view2d_region_to_view(v2d, t->imval[0], t->imval[0], &sval[0], &sval[1]); + UI_view2d_region_to_view(v2d, mval[0], mval[1], &cval[0], &cval[1]); + UI_view2d_region_to_view(v2d, t->imval[0], t->imval[1], &sval[0], &sval[1]); /* t->values[0] stores cval[0], which is the current mouse-pointer location (in frames) */ // XXX Need to be able to repeat this diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index c7699f7249c..29eea932a56 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -3129,12 +3129,21 @@ static void createTransActionData(bContext *C, TransInfo *t) /* check if we're supposed to be setting minx/maxx for TimeSlide */ if (t->mode == TFM_TIME_SLIDE) { float min=999999999.0f, max=-999999999.0f; - int i; - td= (t->data + 1); - for (i=1; i < count; i+=3, td+=3) { - if (min > *(td->val)) min= *(td->val); - if (max < *(td->val)) max= *(td->val); + if (count > 1) { + /* search for min/max selected values to transform */ + int i; + + td= t->data; + for (i=0; i < count; i++, td++) { + if (min > *(td->val)) min= *(td->val); + if (max < *(td->val)) max= *(td->val); + } + } + else { + /* just use the current frame ranges */ + min = (float)PSFRA; + max = (float)PEFRA; } /* minx/maxx values used by TimeSlide are stored as a -- cgit v1.2.3 From 072d350aab27bf9cd0b8e41375ce81f726f6de91 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 2 Jun 2011 11:58:13 +0000 Subject: Time-Slide Fix: Second attempt at fix for only having a single-key selected. In this case, it just uses the start/end frame as it's min/max --- .../blender/editors/transform/transform_conversions.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 29eea932a56..29fc514f01f 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -3129,18 +3129,15 @@ static void createTransActionData(bContext *C, TransInfo *t) /* check if we're supposed to be setting minx/maxx for TimeSlide */ if (t->mode == TFM_TIME_SLIDE) { float min=999999999.0f, max=-999999999.0f; + int i; - if (count > 1) { - /* search for min/max selected values to transform */ - int i; - - td= t->data; - for (i=0; i < count; i++, td++) { - if (min > *(td->val)) min= *(td->val); - if (max < *(td->val)) max= *(td->val); - } + td= t->data; + for (i=0; i < count; i++, td++) { + if (min > *(td->val)) min= *(td->val); + if (max < *(td->val)) max= *(td->val); } - else { + + if (min == max) { /* just use the current frame ranges */ min = (float)PSFRA; max = (float)PEFRA; -- cgit v1.2.3 From 02c6cb8039604cacf75b10a86b97b6495497f7fd Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 2 Jun 2011 12:21:55 +0000 Subject: Deleting keyframes usability tweak: There won't be dangling "empty" actions left behind anymore in the DopeSheet channel list after you've deleted all their keyframes (and don't want to add keyframes to them anymore). Of course, this poses problems with more actions getting created if you then go and keyframe those objects again. If this does turn out to be an equally bad problem, then another approach from the channel filtering code side (probably aided by the restructed code) will help (though doesn't solve the problem where people complain of having heaps of "empty" actions dangling from objects they no longer want animated). --- .../blender/editors/animation/anim_channels_edit.c | 32 ++++++++++++++++++---- .../blender/editors/animation/keyframes_general.c | 4 +-- 2 files changed, 29 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index f755df79986..1f9774dd10a 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -515,12 +515,34 @@ void ANIM_fcurve_delete_from_animdata (bAnimContext *ac, AnimData *adt, FCurve * * - Drivers * - TODO... some others? */ - if (fcu->grp) - action_groups_remove_channel(adt->action, fcu); - else if ((ac) && (ac->datatype == ANIMCONT_DRIVERS)) + if ((ac) && (ac->datatype == ANIMCONT_DRIVERS)) { + /* driver F-Curve */ BLI_remlink(&adt->drivers, fcu); - else if (adt->action) - BLI_remlink(&adt->action->curves, fcu); + } + else if (adt->action) { + /* remove from group or action, whichever one "owns" the F-Curve */ + if (fcu->grp) + action_groups_remove_channel(adt->action, fcu); + else + BLI_remlink(&adt->action->curves, fcu); + + /* if action has no more F-Curves as a result of this, unlink it from + * AnimData if it did not come from a NLA Strip being tweaked. + * + * This is done so that we don't have dangling Object+Action entries in + * channel list that are empty, and linger around long after the data they + * are for has disappeared (and probably won't come back). + */ + // XXX: does everybody always want this? + /* XXX: there's a problem where many actions could build up in the file if multiple + * full add/delete cycles are performed on the same objects, but assume that this is rare + */ + if ((adt->action->curves.first == NULL) && (adt->flag & ADT_NLA_EDIT_ON)==0) + { + id_us_min(&adt->action->id); + adt->action = NULL; + } + } /* free the F-Curve itself */ free_fcurve(fcu); diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index f111339b963..e2afda04d30 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -111,7 +111,7 @@ void delete_fcurve_keys(FCurve *fcu) { int i; - if(fcu->bezt==NULL) /* ignore baked curves */ + if (fcu->bezt==NULL) /* ignore baked curves */ return; /* Delete selected BezTriples */ @@ -124,7 +124,7 @@ void delete_fcurve_keys(FCurve *fcu) } /* Free the array of BezTriples if there are not keyframes */ - if(fcu->totvert == 0) + if (fcu->totvert == 0) clear_fcurve_keys(fcu); } -- cgit v1.2.3 From 05a1c144ad3ece78a641401be1193905c3db49f5 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 3 Jun 2011 13:34:02 +0000 Subject: Experimental Feature: Frame Range Masks for FModifiers Using this feature, it is now possible to for example have different noise-profiles for different parts of a curve, which makes it possible to do animate camera shake for example. Or perhaps, for having greater control of mixing and matching different parts of F-Modifier effects, such as combining several generator modifiers to get multi-case functions for instance. See http://aligorith.blogspot.com/2011/06/gsoc11-fmodifier-range- masks.html for details. --- source/blender/blenkernel/intern/fmodifier.c | 35 ++++++++++++++++++------- source/blender/editors/animation/fmodifier_ui.c | 18 +++++++++++++ source/blender/makesdna/DNA_anim_types.h | 13 ++++++--- source/blender/makesrna/intern/rna_fcurve.c | 35 +++++++++++++++++++++++++ 4 files changed, 88 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 844f25e6d21..4a1a0f9ac6b 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1230,11 +1230,21 @@ float evaluate_time_fmodifiers (ListBase *modifiers, FCurve *fcu, float cvalue, for (fcm= modifiers->last; fcm; fcm= fcm->prev) { FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm); - /* only evaluate if there's a callback for this */ - // TODO: implement the 'influence' control feature... - if (fmi && fmi->evaluate_modifier_time) { - if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) - evaltime= fmi->evaluate_modifier_time(fcu, fcm, cvalue, evaltime); + if (fmi == NULL) + continue; + + /* if modifier cannot be applied on this frame (whatever scale it is on, it won't affect the results) + * hence we shouldn't bother seeing what it would do given the chance + */ + if ((fcm->flag & FMODIFIER_FLAG_RANGERESTRICT)==0 || + ((fcm->sfra <= evaltime) && (fcm->efra >= evaltime)) ) + { + /* only evaluate if there's a callback for this */ + // TODO: implement the 'influence' control feature... + if (fmi->evaluate_modifier_time) { + if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) + evaltime= fmi->evaluate_modifier_time(fcu, fcm, cvalue, evaltime); + } } } @@ -1257,11 +1267,18 @@ void evaluate_value_fmodifiers (ListBase *modifiers, FCurve *fcu, float *cvalue, for (fcm= modifiers->first; fcm; fcm= fcm->next) { FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm); - /* only evaluate if there's a callback for this */ + if (fmi == NULL) + continue; + + /* only evaluate if there's a callback for this, and if F-Modifier can be evaluated on this frame */ // TODO: implement the 'influence' control feature... - if (fmi && fmi->evaluate_modifier) { - if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) - fmi->evaluate_modifier(fcu, fcm, cvalue, evaltime); + if ((fcm->flag & FMODIFIER_FLAG_RANGERESTRICT)==0 || + ((fcm->sfra <= evaltime) && (fcm->efra >= evaltime)) ) + { + if (fmi->evaluate_modifier) { + if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) + fmi->evaluate_modifier(fcu, fcm, cvalue, evaltime); + } } } } diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 954928fc486..3018fa697b8 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -694,6 +694,24 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie default: /* unknown type */ break; } + + /* one last panel below this: FModifier range */ + // TODO: experiment with placement of this + { + box = uiLayoutBox(layout); + + /* top row: use restricted range */ + row= uiLayoutRow(box, 0); + uiItemR(row, &ptr, "use_restricted_range", 0, NULL, ICON_NONE); + + if (fcm->flag & FMODIFIER_FLAG_RANGERESTRICT) { + /* second row: settings */ + row = uiLayoutRow(box, 1); + + uiItemR(row, &ptr, "frame_start", 0, "Start", ICON_NONE); + uiItemR(row, &ptr, "frame_end", 0, "End", ICON_NONE); + } + } } } diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 4b649031f97..88a3fe81825 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -62,6 +62,9 @@ typedef struct FModifier { short flag; /* settings for the modifier */ float influence; /* the amount that the modifier should influence the value */ + + float sfra; /* start frame of restricted frame-range */ + float efra; /* end frame of restricted frame-range */ } FModifier; /* Types of F-Curve modifier @@ -86,13 +89,15 @@ typedef enum eFModifier_Types { /* F-Curve Modifier Settings */ typedef enum eFModifier_Flags { /* modifier is not able to be evaluated for some reason, and should be skipped (internal) */ - FMODIFIER_FLAG_DISABLED = (1<<0), + FMODIFIER_FLAG_DISABLED = (1<<0), /* modifier's data is expanded (in UI) */ - FMODIFIER_FLAG_EXPANDED = (1<<1), + FMODIFIER_FLAG_EXPANDED = (1<<1), /* modifier is active one (in UI) for editing purposes */ - FMODIFIER_FLAG_ACTIVE = (1<<2), + FMODIFIER_FLAG_ACTIVE = (1<<2), /* user wants modifier to be skipped */ - FMODIFIER_FLAG_MUTED = (1<<3) + FMODIFIER_FLAG_MUTED = (1<<3), + /* restrict range that F-Modifier can be considered over */ + FMODIFIER_FLAG_RANGERESTRICT = (1<<4) } eFModifier_Flags; /* --- */ diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 1b18f88efcc..c1123bbb3fd 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -454,6 +454,22 @@ static void rna_FModifier_active_set(PointerRNA *ptr, int value) fm->flag |= FMODIFIER_FLAG_ACTIVE; } +static void rna_FModifier_start_frame_range(PointerRNA *ptr, float *min, float *max) +{ + FModifier *fcm= (FModifier*)ptr->data; + + *min= MINAFRAMEF; + *max= (fcm->flag & FMODIFIER_FLAG_RANGERESTRICT)? fcm->efra : MAXFRAMEF; +} + +static void rna_FModifier_end_frame_range(PointerRNA *ptr, float *min, float *max) +{ + FModifier *fcm= (FModifier*)ptr->data; + + *min= (fcm->flag & FMODIFIER_FLAG_RANGERESTRICT)? fcm->sfra : MINAFRAMEF; + *max= MAXFRAMEF; +} + static void rna_FModifier_active_update(Main *bmain, Scene *scene, PointerRNA *ptr) { FModifier *fm, *fmo= (FModifier*)ptr->data; @@ -1015,6 +1031,25 @@ static void rna_def_fmodifier(BlenderRNA *brna) RNA_def_property_boolean_funcs(prop, NULL, "rna_FModifier_active_set"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, "rna_FModifier_active_update"); RNA_def_property_ui_icon(prop, ICON_RADIOBUT_OFF, 1); + + /* restricted range */ + prop= RNA_def_property(srna, "use_restricted_range", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", FMODIFIER_FLAG_RANGERESTRICT); + RNA_def_property_ui_text(prop, "Restrict Frame Range", "F-Curve Modifier is only applied for the specified frame range to help mask off effects in order to chain them"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); // XXX: depends on UI implementation + + prop= RNA_def_property(srna, "frame_start", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "sfra"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_FModifier_start_frame_range"); + RNA_def_property_ui_text(prop, "Start Frame", "Frame that modifier's influence starts (if Restrict Frame Range is in use)"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + + prop= RNA_def_property(srna, "frame_end", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "efra"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_FModifier_end_frame_range"); + RNA_def_property_ui_text(prop, "End Frame", "Frame that modifier's influence ends (if Restrict Frame Range is in use)"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); } /* *********************** */ -- cgit v1.2.3 From 71419c46471586e93884aa151f5b160863025886 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Fri, 3 Jun 2011 23:12:34 +0000 Subject: Building fix: added missing include. Aligorith: would be nice to include needed headers for functions you use... --- source/blender/editors/animation/anim_channels_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 1f9774dd10a..438c6e7e95e 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -38,7 +38,7 @@ #include "BLI_blenlib.h" #include "BLI_utildefines.h" - +#include "BKE_library.h" #include "DNA_anim_types.h" #include "DNA_object_types.h" -- cgit v1.2.3 From 56e20eafe90ba6082acad9f84da3a1dc69c987a0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 4 Jun 2011 01:54:34 +0000 Subject: User Pref to not overwrite Recent Files list everytime you open a new file This is just a more formalised version of a local hack I've been running locally for the past year now. It's especially useful when you want to maintain your own set of recently opened test files (or perhaps current project files), but then be able to quickly open some .blend files downloaded from the web (i.e. checking out some bug report, or how someone else sets up some node setup) without loosing/polluting your existing recent files list as a result of doing so, and having to either resort to some nasty methods to get it back. Of course, this is still really hacky, as for instance, it means that the currently opened file will not show up in the recent files list for quick reload. However, that's why this is a userpref :) --- source/blender/makesdna/DNA_userdef_types.h | 1 + source/blender/makesrna/intern/rna_userdef.c | 6 +++++- source/blender/windowmanager/intern/wm_files.c | 7 ++++++- 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 1057eeae40f..a7a04384d3c 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -435,6 +435,7 @@ extern UserDef U; /* from blenkernel blender.c */ #define USER_NONEGFRAMES (1 << 24) #define USER_TXT_TABSTOSPACES_DISABLE (1 << 25) #define USER_TOOLTIPS_PYTHON (1 << 26) +#define USER_NO_RECENTLOAD_UPDATE (1 << 27) /* helper macro for checking frame clamping */ #define FRAMENUMBER_MIN_CLAMP(cfra) \ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 33808446757..12df0b5dbd7 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2864,7 +2864,11 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) prop= RNA_def_property(srna, "recent_files", PROP_INT, PROP_NONE); RNA_def_property_range(prop, 0, 30); RNA_def_property_ui_text(prop, "Recent Files", "Maximum number of recently opened files to remember"); - + + prop= RNA_def_property(srna, "use_update_recent_files_on_load", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_NO_RECENTLOAD_UPDATE); + RNA_def_property_ui_text(prop, "Update Recent on Load", "When enabled, opening files will update the recent files list. Otherwise, updates only occur when saving"); + prop= RNA_def_property(srna, "use_save_preview_images", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_SAVE_PREVIEWS); RNA_def_property_ui_text(prop, "Save Preview Images", "Enables automatic saving of preview images in the .blend file"); diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index a5ee01de2f1..313e9357094 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -376,7 +376,12 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) if (retval != BKE_READ_FILE_FAIL) { G.relbase_valid = 1; - if(!G.background) /* assume automated tasks with background, dont write recent file list */ + + /* dont write recent file list if: + * 1) assuming automated tasks with background + * 2) user preference to not do this is enabled (i.e. developer testing mode) + */ + if (!G.background && !(U.flag & USER_NO_RECENTLOAD_UPDATE)) write_history(); } -- cgit v1.2.3 From e27fe1c0493fcc06a835cb4d29628d6565d1c31b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 4 Jun 2011 02:23:17 +0000 Subject: Actions are no longer created with Fake Users Due to overwhelming support from animators, Actions are no longer created with fake users by default. If you're mainly creating action libraries (the primary use case and argument for having this, mostly used for creating a set of motions for games or perhaps to use in NLA), you're really in the minority here. For the most part, fake users just lead to heaps of "dangling" actions in files which newbies (and even experienced users) may often be unaware of. Since Fake Users are really more of an "opt-in" system everywhere else (i.e. when creating Material Libraries), the same should applied for Actions and creating Action Libraries. --- source/blender/blenkernel/intern/action.c | 5 ----- 1 file changed, 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 77f56058a4f..21d9701004b 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -85,8 +85,6 @@ bAction *add_empty_action(const char name[]) bAction *act; act= alloc_libblock(&G.main->action, ID_AC, name); - act->id.flag |= LIB_FAKEUSER; // XXX this is nasty for new users... maybe we don't want this anymore - act->id.us++; return act; } @@ -200,9 +198,6 @@ bAction *copy_action (bAction *src) } } - dst->id.flag |= LIB_FAKEUSER; // XXX this is nasty for new users... maybe we don't want this anymore - dst->id.us++; - return dst; } -- cgit v1.2.3 From 185663b52b618a5fc20878db269ac056ede7591e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 4 Jun 2011 06:22:01 +0000 Subject: FModifier Influence/BlendIn-Out Following on from my commit to introduce frame ranges for FModifiers, those frame ranges can now have blend in/out values. By setting a blendin or blendout value, you're specifying the number of frames for the modifier's "full influence" to take effect or fade out relative to the start/end frames. The "full influence" above needs a little clarification. When the "use influence" setting is enabled, "full influence" is taken from the "influence" slider (a new setting). Otherwise, it uses 1.0 (i.e. unmodified influence, same as old behaviour before the introduction of influence controls). The influence slider basically says how much the modifier's effects are allowed to contribute to the final result. --- Notes: - This opt-in "Use Influence" approach is really forced upon us because there are heaps of old files for which we cannot easily version patch without spending some effort going through all the data in the file, hunting out the F-Modifiers. - interpf() seems to use a backwards order compared to everything else --- source/blender/blenkernel/intern/fmodifier.c | 61 ++++++++++++++++++++++--- source/blender/editors/animation/fmodifier_ui.c | 26 +++++++++-- source/blender/makesdna/DNA_anim_types.h | 6 ++- source/blender/makesrna/intern/rna_fcurve.c | 34 ++++++++++++++ 4 files changed, 117 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 4a1a0f9ac6b..dcf81c19479 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1013,6 +1013,7 @@ FModifier *add_fmodifier (ListBase *modifiers, int type) fcm= MEM_callocN(sizeof(FModifier), "F-Curve Modifier"); fcm->type = type; fcm->flag = FMODIFIER_FLAG_EXPANDED; + fcm->influence = 1.0f; BLI_addtail(modifiers, fcm); /* tag modifier as "active" if no other modifiers exist in the stack yet */ @@ -1200,6 +1201,47 @@ short list_has_suitable_fmodifier (ListBase *modifiers, int mtype, short acttype /* Evaluation API --------------------------- */ +/* helper function - calculate influence of FModifier */ +static float eval_fmodifier_influence (FModifier *fcm, float evaltime) +{ + float influence; + + /* sanity check */ + if (fcm == NULL) + return 0.0f; + + /* should we use influence stored in modifier or not + * NOTE: this is really just a hack so that we don't need to version patch old files ;) + */ + if (fcm->flag & FMODIFIER_FLAG_USEINFLUENCE) + influence = fcm->influence; + else + influence = 1.0f; + + /* restricted range or full range? */ + if (fcm->flag & FMODIFIER_FLAG_RANGERESTRICT) { + if ((evaltime <= fcm->sfra) || (evaltime >= fcm->efra)) { + /* out of range */ + return 0.0f; + } + else if ((evaltime > fcm->sfra) && (evaltime < fcm->sfra + fcm->blendin)) { + /* blend in range */ + float a = fcm->sfra; + float b = fcm->sfra + fcm->blendin; + return influence * (evaltime - a) / (b - a); + } + else if ((evaltime < fcm->efra) && (evaltime > fcm->efra - fcm->blendout)) { + /* blend out range */ + float a = fcm->efra; + float b = fcm->efra - fcm->blendout; + return influence * (evaltime - a) / (b - a); + } + } + + /* just return the influence of the modifier */ + return influence; +} + /* evaluate time modifications imposed by some F-Curve Modifiers * - this step acts as an optimisation to prevent the F-Curve stack being evaluated * several times by modifiers requesting the time be modified, as the final result @@ -1240,10 +1282,13 @@ float evaluate_time_fmodifiers (ListBase *modifiers, FCurve *fcu, float cvalue, ((fcm->sfra <= evaltime) && (fcm->efra >= evaltime)) ) { /* only evaluate if there's a callback for this */ - // TODO: implement the 'influence' control feature... if (fmi->evaluate_modifier_time) { - if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) - evaltime= fmi->evaluate_modifier_time(fcu, fcm, cvalue, evaltime); + if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) { + float influence = eval_fmodifier_influence(fcm, evaltime); + float nval = fmi->evaluate_modifier_time(fcu, fcm, cvalue, evaltime); + + evaltime = interpf(nval, evaltime, influence); + } } } } @@ -1271,13 +1316,17 @@ void evaluate_value_fmodifiers (ListBase *modifiers, FCurve *fcu, float *cvalue, continue; /* only evaluate if there's a callback for this, and if F-Modifier can be evaluated on this frame */ - // TODO: implement the 'influence' control feature... if ((fcm->flag & FMODIFIER_FLAG_RANGERESTRICT)==0 || ((fcm->sfra <= evaltime) && (fcm->efra >= evaltime)) ) { if (fmi->evaluate_modifier) { - if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) - fmi->evaluate_modifier(fcu, fcm, cvalue, evaltime); + if ((fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED)) == 0) { + float influence = eval_fmodifier_influence(fcm, evaltime); + float nval = *cvalue; + + fmi->evaluate_modifier(fcu, fcm, &nval, evaltime); + *cvalue = interpf(nval, *cvalue, influence); + } } } } diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 3018fa697b8..8058454f510 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -604,7 +604,7 @@ static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, sho void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm) { FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm); - uiLayout *box, *row, *subrow; + uiLayout *box, *row, *subrow, *col; uiBlock *block; uiBut *but; short width= 314; @@ -700,16 +700,36 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie { box = uiLayoutBox(layout); + /* restricted range ----------------------------------------------------- */ + col = uiLayoutColumn(box, 1); + /* top row: use restricted range */ - row= uiLayoutRow(box, 0); + row= uiLayoutRow(col, 1); uiItemR(row, &ptr, "use_restricted_range", 0, NULL, ICON_NONE); if (fcm->flag & FMODIFIER_FLAG_RANGERESTRICT) { /* second row: settings */ - row = uiLayoutRow(box, 1); + row = uiLayoutRow(col, 1); uiItemR(row, &ptr, "frame_start", 0, "Start", ICON_NONE); uiItemR(row, &ptr, "frame_end", 0, "End", ICON_NONE); + + /* third row: blending influence */ + row = uiLayoutRow(col, 1); + + uiItemR(row, &ptr, "blend_in", 0, "In", ICON_NONE); + uiItemR(row, &ptr, "blend_out", 0, "Out", ICON_NONE); + } + + /* influence -------------------------------------------------------------- */ + col = uiLayoutColumn(box, 1); + + /* top row: use influence */ + uiItemR(col, &ptr, "use_influence", 0, NULL, ICON_NONE); + + if (fcm->flag & FMODIFIER_FLAG_USEINFLUENCE) { + /* second row: influence value */ + uiItemR(col, &ptr, "influence", 0, NULL, ICON_NONE); } } } diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 88a3fe81825..c650d15722d 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -65,6 +65,8 @@ typedef struct FModifier { float sfra; /* start frame of restricted frame-range */ float efra; /* end frame of restricted frame-range */ + float blendin; /* number of frames from sfra before modifier takes full influence */ + float blendout; /* number of frames from efra before modifier fades out */ } FModifier; /* Types of F-Curve modifier @@ -97,7 +99,9 @@ typedef enum eFModifier_Flags { /* user wants modifier to be skipped */ FMODIFIER_FLAG_MUTED = (1<<3), /* restrict range that F-Modifier can be considered over */ - FMODIFIER_FLAG_RANGERESTRICT = (1<<4) + FMODIFIER_FLAG_RANGERESTRICT = (1<<4), + /* use influence control */ + FMODIFIER_FLAG_USEINFLUENCE = (1<<5) } eFModifier_Flags; /* --- */ diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index ba0563f554a..263978221bb 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -470,6 +470,14 @@ static void rna_FModifier_end_frame_range(PointerRNA *ptr, float *min, float *ma *max= MAXFRAMEF; } +static void rna_FModifier_blending_range(PointerRNA *ptr, float *min, float *max) +{ + FModifier *fcm= (FModifier*)ptr->data; + + *min= 0.0f; + *max= fcm->efra - fcm->sfra; +} + static void rna_FModifier_active_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { FModifier *fm, *fmo= (FModifier*)ptr->data; @@ -1050,6 +1058,32 @@ static void rna_def_fmodifier(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_FModifier_end_frame_range"); RNA_def_property_ui_text(prop, "End Frame", "Frame that modifier's influence ends (if Restrict Frame Range is in use)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + + prop= RNA_def_property(srna, "blend_in", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "blendin"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_FModifier_blending_range"); + RNA_def_property_ui_text(prop, "Blend In", "Number of frames from start frame for influence to take effect"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + + prop= RNA_def_property(srna, "blend_out", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "blendout"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_FModifier_blending_range"); + RNA_def_property_ui_text(prop, "Blend Out", "Number of frames from start frame for influence to fade out"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + + /* influence */ + prop= RNA_def_property(srna, "use_influence", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", FMODIFIER_FLAG_USEINFLUENCE); + RNA_def_property_ui_text(prop, "Use Influence", "F-Curve Modifier's effects will be tempered by a default factor"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); + RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); // XXX: depends on UI implementation + + prop= RNA_def_property(srna, "influence", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "influence"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_ui_text(prop, "Influence", "Amount of influence F-Curve Modifier will have when not fading in/out"); + RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); } /* *********************** */ -- cgit v1.2.3 From f2daf2ca6b9aec02ebe8108c6354d1aebc869e99 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 5 Jun 2011 18:58:22 +0000 Subject: Add new animation export features. - Bone animations are also exported as f-curve animations now. As a result euler rotaions of bones are also exported. All animations with BEZIER, LINEAR or STEP ipo are exported. - Quaternion rotations export. - Object parented with armatures, animations to Armature Objects as a whole are also exported. --- source/blender/collada/AnimationExporter.cpp | 103 ++++++++++++++++++++------- source/blender/collada/AnimationExporter.h | 4 +- 2 files changed, 79 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index f28883ce91c..98699e22030 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -55,41 +55,86 @@ void AnimationExporter::exportAnimations(Scene *sce) void AnimationExporter::operator() (Object *ob) { if (!ob->adt || !ob->adt->action) return; //this is already checked in hasAnimations() - FCurve *fcu = (FCurve*)ob->adt->action->curves.first; - - if (ob->type == OB_ARMATURE) { - if (!ob->data) return; - - bArmature *arm = (bArmature*)ob->data; - for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - write_bone_animation(ob, bone); - } - else { + char * transformName = extract_transform_name( fcu->rna_path ); + + //if (ob->type == OB_ARMATURE) { + // if (!ob->data) return; + // bArmature *arm = (bArmature*)ob->data; + // while(fcu) + // { + // transformName = extract_transform_name( fcu->rna_path ); + // // std::string ob_name = getObjectBoneName( ob , fcu); + // // for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) + // // write_bone_animation(ob, bone); + // dae_animation(ob, fcu, ob_name, transformName); + // fcu = fcu->next; + // } + //} + //else { while (fcu) { - // TODO "rotation_quaternion" is also possible for objects (although euler is default) - if ((!strcmp(fcu->rna_path, "location") || !strcmp(fcu->rna_path, "scale")) || - (!strcmp(fcu->rna_path, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)) - dae_animation(fcu, id_name(ob)); + transformName = extract_transform_name( fcu->rna_path ); + printf("fcu -> rna _path : %s \n transformName : %s\n", fcu->rna_path, transformName); + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || + (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| + (!strcmp(transformName, "rotation_quaternion"))) + dae_animation(ob ,fcu,/* id_name(ob),*/ transformName); fcu = fcu->next; } - } + //} } - void AnimationExporter::dae_animation(FCurve *fcu, std::string ob_name) + std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) { - const char *axis_names[] = {"X", "Y", "Z"}; + //hard-way to derive the bone name from rna_path. Must find more compact method + std::string rna_path = std::string(fcu->rna_path); + + char* boneName = strtok((char *)rna_path.c_str(), "\""); + boneName = strtok(NULL,"\""); + + if( boneName != NULL ) + return id_name(ob) + "_" + std::string(boneName); + else + return id_name(ob); + } + + void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName) + { + printf("in dae animation\n"); const char *axis_name = NULL; char anim_id[200]; bool has_tangents = false; - if (fcu->array_index < 3) + if ( !strcmp(transformName, "rotation_quaternion") ) + { + const char *axis_names[] = {"W", "X", "Y", "Z"}; + if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index]; + } - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - fcu->rna_path, axis_names[fcu->array_index]); + else + { + const char *axis_names[] = {"X", "Y", "Z"}; + if (fcu->array_index < 3) + axis_name = axis_names[fcu->array_index]; + + } + std::string ob_name = std::string("null"); + if (ob->type == OB_ARMATURE) + { + ob_name = getObjectBoneName( ob , fcu); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char*)translate_id(ob_name).c_str(), + transformName, axis_name); + } + else + { + ob_name = id_name(ob); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + fcu->rna_path, axis_name); + } + // check rna_path is one of: rotation, scale, location openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); @@ -221,9 +266,9 @@ void AnimationExporter::exportAnimations(Scene *sce) void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) { bPoseChannel *parchan = NULL; - /*bPose *pose = ob_arm->pose; + bPose *pose = ob_arm->pose; - pchan = get_pose_channel(pose, bone->name);*/ + pchan = get_pose_channel(pose, bone->name); if (!pchan) return; @@ -636,23 +681,27 @@ void AnimationExporter::exportAnimations(Scene *sce) if (rna_path) { char *name = extract_transform_name(rna_path); - if (strstr(name, "rotation")) + if (!strcmp(name, "rotation_euler")) tm_type = 0; - else if (!strcmp(name, "scale")) + else if (!strcmp(name, "rotation_quaternion")) tm_type = 1; - else if (!strcmp(name, "location")) + else if (!strcmp(name, "scale")) tm_type = 2; + else if (!strcmp(name, "location")) + tm_type = 3; else tm_type = -1; } switch (tm_type) { case 0: - return std::string("rotation") + std::string(axis_name) + ".ANGLE"; + return std::string("rotation_euler.") + std::string(axis_name) + ".ANGLE"; case 1: + return std::string("rotation_quaternion.") + std::string(axis_name) + ".ANGLE"; + case 2: tm_name = "scale"; break; - case 2: + case 3: tm_name = "location"; break; default: diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 3968401331a..0368e34dc42 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -89,7 +89,7 @@ public: protected: - void dae_animation(FCurve *fcu, std::string ob_name); + void dae_animation(Object* ob, FCurve *fcu, char* transformName); void write_bone_animation(Object *ob_arm, Bone *bone); @@ -137,4 +137,6 @@ protected: bool hasAnimations(Scene *sce); char* extract_transform_name(char *rna_path); + + std::string getObjectBoneName ( Object *ob,const FCurve * fcu); }; \ No newline at end of file -- cgit v1.2.3 From ef5f78ecc7a6a7aac04207d3733087db8d03f5a6 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Sun, 5 Jun 2011 22:06:29 +0000 Subject: 3D Audio GSoC: Making it possible to access blenders internal sounds via Python. --- source/blender/blenkernel/BKE_sound.h | 2 ++ source/blender/blenkernel/intern/sound.c | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 04597fd666e..7402d501120 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -104,4 +104,6 @@ int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, flo int sound_get_channels(struct bSound* sound); +void* sound_get_factory(void* sound); + #endif diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index e0e456a371e..f42492ef713 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -502,3 +502,8 @@ int sound_get_channels(struct bSound* sound) return info.specs.channels; } + +void* sound_get_factory(void* sound) +{ + return ((struct bSound*) sound)->playback_handle; +} -- cgit v1.2.3 From 42ece56e91db997425f010e2cf18c9021113f5e7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 8 Jun 2011 01:53:12 +0000 Subject: don't write file history in backgound mode (running ctest would overwrite all my recent-files.txt), and add an error about mingw/quicktime being unsupported. --- source/blender/windowmanager/intern/wm_files.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 5d005e23029..c088d0d2d43 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -747,7 +747,10 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re if(fileflags & G_FILE_AUTOPLAY) G.fileflags |= G_FILE_AUTOPLAY; else G.fileflags &= ~G_FILE_AUTOPLAY; - write_history(); + /* prevent background mode scripts from clobbering history */ + if(!G.background) { + write_history(); + } /* run this function after because the file cant be written before the blend is */ if (ibuf_thumb) { -- cgit v1.2.3 From 9dd066eb652c478b6eeba2630aea999490739849 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 8 Jun 2011 05:39:58 +0000 Subject: cmake: remove python include in the wm module, set opengl as a system include. --- source/blender/windowmanager/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index 6d125c01af4..0cf59a9b598 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -101,7 +101,6 @@ endif() if(WITH_PYTHON) list(APPEND INC ../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) add_definitions(-DWITH_PYTHON) if(WITH_PYTHON_SECURITY) -- cgit v1.2.3 From cec102e7813a6eeb45223be9c14d4850146f5d8e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 8 Jun 2011 10:57:24 +0000 Subject: Bugfix [#27586] P for setting playback range is clamped to > 0 Thanks for the patch Bastien Montagne. Was just legacy code from 2.4x --- source/blender/editors/animation/anim_ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c index 0e0bf275d8f..7a94a21d41e 100644 --- a/source/blender/editors/animation/anim_ops.c +++ b/source/blender/editors/animation/anim_ops.c @@ -199,8 +199,8 @@ static int previewrange_define_exec(bContext *C, wmOperator *op) * - must clamp within allowable limits * - end must not be before start (though this won't occur most of the time) */ - if (sfra < 1) sfra = 1.0f; - if (efra < 1) efra = 1.0f; + FRAMENUMBER_MIN_CLAMP(sfra); + FRAMENUMBER_MIN_CLAMP(efra); if (efra < sfra) efra= sfra; scene->r.flag |= SCER_PRV_RANGE; -- cgit v1.2.3 From 05b54bec3baec12320e7893543bb685a13f8bce5 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 8 Jun 2011 13:00:25 +0000 Subject: Apply [#27477] COLLADA export support for textures mapped to COLSPEC Patch provided by Pelle Johnsen --- source/blender/collada/EffectExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp index ff714533199..0bbf714137e 100644 --- a/source/blender/collada/EffectExporter.cpp +++ b/source/blender/collada/EffectExporter.cpp @@ -273,7 +273,7 @@ void EffectsExporter::operator()(Material *ma, Object *ob) std::string uvname = strlen(t->uvname) ? t->uvname : active_uv; // color - if (t->mapto & MAP_COL) { + if (t->mapto & MAP_COL | MAP_COLSPEC) { ep.setDiffuse(createTexture(ima, uvname, sampler)); } // ambient -- cgit v1.2.3 From 17becc751dbb8b6ca48dbc58f906388be2614126 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 8 Jun 2011 15:17:38 +0000 Subject: Bugfix #27601 Scaling in compostior down to 1 pixel size crashed gaussian blur. --- source/blender/nodes/intern/CMP_util.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c index 78025f4d964..982aaf9991d 100644 --- a/source/blender/nodes/intern/CMP_util.c +++ b/source/blender/nodes/intern/CMP_util.c @@ -1320,6 +1320,8 @@ void IIR_gauss(CompBuf* src, float sigma, int chan, int xy) if ((xy < 1) || (xy > 3)) xy = 3; + if (src->x < 2 && src->y < 2) return; + // see "Recursive Gabor Filtering" by Young/VanVliet // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 if (sigma >= 3.556) -- cgit v1.2.3 From 65ec26ab830b3ba44230de4b7b1dc782cccb88fd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 8 Jun 2011 16:00:52 +0000 Subject: fix for own error r35918, generalizing looping over modifier ID links broke loading smoke group references because they already had calls to newlibadr_us() elsewhere, removing those assignments fixes loading. --- source/blender/blenloader/intern/readfile.c | 6 ------ source/blender/modifiers/intern/MOD_smoke.c | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6f0400d5764..3987b082aeb 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3843,12 +3843,6 @@ static void lib_link_object(FileData *fd, Main *main) if(smd && smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) { - smd->domain->coll_group = newlibadr_us(fd, ob->id.lib, smd->domain->coll_group); - smd->domain->eff_group = newlibadr_us(fd, ob->id.lib, smd->domain->eff_group); - smd->domain->fluid_group = newlibadr_us(fd, ob->id.lib, smd->domain->fluid_group); - - smd->domain->effector_weights->group = newlibadr(fd, ob->id.lib, smd->domain->effector_weights->group); - smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */ } } diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c index d8e94e92bfa..b6203bb3c1d 100644 --- a/source/blender/modifiers/intern/MOD_smoke.c +++ b/source/blender/modifiers/intern/MOD_smoke.c @@ -43,6 +43,7 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_smoke_types.h" +#include "DNA_object_force.h" #include "BLI_utildefines.h" @@ -156,6 +157,10 @@ static void foreachIDLink(ModifierData *md, Object *ob, walk(userData, ob, (ID **)&smd->domain->coll_group); walk(userData, ob, (ID **)&smd->domain->fluid_group); walk(userData, ob, (ID **)&smd->domain->eff_group); + + if(smd->domain->effector_weights) { + walk(userData, ob, (ID **)&smd->domain->effector_weights->group); + } } } -- cgit v1.2.3 From 43ec34f05483a57fd9d2c1488501f8936e5f2b56 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 8 Jun 2011 16:08:57 +0000 Subject: Bugfix #27601 Revision for previous fix; fast gaussian now survives on images with a dimension smaller than 3 pixels! Thanks Bastien Montagne for patch. --- source/blender/nodes/intern/CMP_util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c index 982aaf9991d..b73a46c7d7d 100644 --- a/source/blender/nodes/intern/CMP_util.c +++ b/source/blender/nodes/intern/CMP_util.c @@ -1320,7 +1320,11 @@ void IIR_gauss(CompBuf* src, float sigma, int chan, int xy) if ((xy < 1) || (xy > 3)) xy = 3; - if (src->x < 2 && src->y < 2) return; + // XXX The YVV macro defined below explicitely expects sources of at least 3x3 pixels, + // so just skiping blur along faulty direction if src's def is below that limit! + if (src->x < 3) xy &= ~(int) 1; + if (src->y < 3) xy &= ~(int) 2; + if (xy < 1) return; // see "Recursive Gabor Filtering" by Young/VanVliet // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 -- cgit v1.2.3 From e7e1bc4ca1bb1194f26d965270b76734d2cc91bd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 02:47:22 +0000 Subject: add foreachIDLink function for cloth, remove cloth specific newlibadr calls in readfile. --- source/blender/blenloader/intern/readfile.c | 10 ---------- source/blender/modifiers/intern/MOD_cloth.c | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 3987b082aeb..49579432de2 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3847,16 +3847,6 @@ static void lib_link_object(FileData *fd, Main *main) } } - { - ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth); - - if(clmd) - { - clmd->sim_parms->effector_weights->group = newlibadr(fd, ob->id.lib, clmd->sim_parms->effector_weights->group); - clmd->coll_parms->group= newlibadr(fd, ob->id.lib, clmd->coll_parms->group); - } - } - /* texture field */ if(ob->pd) lib_link_partdeflect(fd, &ob->id, ob->pd); diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c index 30ddb3f7b9c..1d2a6b2f788 100644 --- a/source/blender/modifiers/intern/MOD_cloth.c +++ b/source/blender/modifiers/intern/MOD_cloth.c @@ -190,6 +190,19 @@ static void freeData(ModifierData *md) } } +static void foreachIDLink(ModifierData *md, Object *ob, + IDWalkFunc walk, void *userData) +{ + ClothModifierData *clmd = (ClothModifierData*) md; + + if(clmd->coll_parms) { + walk(userData, ob, (ID **)&clmd->coll_parms->group); + } + + if(clmd->sim_parms && clmd->sim_parms->effector_weights) { + walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group); + } +} ModifierTypeInfo modifierType_Cloth = { /* name */ "Cloth", @@ -215,5 +228,5 @@ ModifierTypeInfo modifierType_Cloth = { /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL, + /* foreachIDLink */ foreachIDLink, }; -- cgit v1.2.3 From 912db4cdb571d6421cb8c018a0db4fa93984549c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 03:56:32 +0000 Subject: [#27615] Box select of mesh object disabled or translated due to curve object ED_view3d_init_mats_rv3d was calling glMultMatrixf() which was mostly harmless but could also lead to confusing bugs (2 reported previously). Looked into this and every call to ED_view3d_init_mats_rv3d except for object drawing, doesn't need this so made a second version of ED_view3d_init_mats_rv3d - ED_view3d_init_mats_rv3d_gl which does the matrix multiplication, remove confusing checks in selection code. --- source/blender/editors/include/ED_view3d.h | 1 + source/blender/editors/space_view3d/drawobject.c | 2 +- source/blender/editors/space_view3d/space_view3d.c | 11 +++++--- .../blender/editors/space_view3d/view3d_select.c | 29 +++++++--------------- 4 files changed, 19 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 0adf6633b05..dfe0a304748 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -265,6 +265,7 @@ struct ARegion *ED_view3d_context_region_unlock(struct bContext *C); int ED_operator_rv3d_unlock_poll(struct bContext *C); void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d); +void ED_view3d_init_mats_rv3d_gl(struct Object *ob, struct RegionView3D *rv3d); int ED_view3d_scene_layer_set(int lay, const int *values, int *active); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 391eecbbbae..35edd961b1e 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5812,7 +5812,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) /* multiply view with object matrix. * local viewmat and persmat, to calculate projections */ - ED_view3d_init_mats_rv3d(ob, rv3d); + ED_view3d_init_mats_rv3d_gl(ob, rv3d); /* which wire color */ if((flag & DRAW_CONSTCOLOR) == 0) { diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index fb67e38cbf7..6833dec2e43 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -208,13 +208,18 @@ void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d) mul_m4_m4m4(rv3d->viewmatob, ob->obmat, rv3d->viewmat); mul_m4_m4m4(rv3d->persmatob, ob->obmat, rv3d->persmat); + /* initializes object space clipping, speeds up clip tests */ + ED_view3d_local_clipping(rv3d, ob->obmat); +} + +void ED_view3d_init_mats_rv3d_gl(struct Object *ob, struct RegionView3D *rv3d) +{ + ED_view3d_init_mats_rv3d(ob, rv3d); + /* we have to multiply instead of loading viewmatob to make it work with duplis using displists, otherwise it will override the dupli-matrix */ glMultMatrixf(ob->obmat); - - /* initializes object space clipping, speeds up clip tests */ - ED_view3d_local_clipping(rv3d, ob->obmat); } /* ******************** default callbacks for view3d space ***************** */ diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 6391db7ae5e..9290e1fc631 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -485,11 +485,8 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, if (extend == 0 && select) EM_deselect_all(vc->em); - /* workaround: init mats first, EM_mask_init_backbuf_border can change - view matrix to pixel space, breaking edge select with backbuf. fixes bug [#20936] */ - - /* [#21018] breaks zbuf select. run below. only if bbsel fails */ - /* ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d) */ + /* for non zbuf projections, dont change the GL state */ + ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); glLoadMatrixf(vc->rv3d->viewmat); bbsel= EM_mask_init_backbuf_border(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); @@ -497,15 +494,13 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, if(ts->selectmode & SCE_SELECT_VERTEX) { if (bbsel) { EM_backbuf_checkAndSelectVerts(vc->em, select); - } else { - ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ + } + else { mesh_foreachScreenVert(vc, do_lasso_select_mesh__doSelectVert, &data, 1); } } if(ts->selectmode & SCE_SELECT_EDGE) { - /* Does both bbsel and non-bbsel versions (need screen cos for both) */ - ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ - + /* Does both bbsel and non-bbsel versions (need screen cos for both) */ data.pass = 0; mesh_foreachScreenEdge(vc, do_lasso_select_mesh__doSelectEdge, &data, 0); @@ -518,8 +513,8 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, if(ts->selectmode & SCE_SELECT_FACE) { if (bbsel) { EM_backbuf_checkAndSelectFaces(vc->em, select); - } else { - ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ + } + else { mesh_foreachScreenFace(vc, do_lasso_select_mesh__doSelectFace, &data); } } @@ -1491,12 +1486,8 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten if (extend == 0 && select) EM_deselect_all(vc->em); - /* workaround: init mats first, EM_mask_init_backbuf_border can change - view matrix to pixel space, breaking edge select with backbuf. fixes bug #20936 */ - /*ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);*/ /* for foreach's screen/vert projection */ - - /* [#21018] breaks zbuf select. run below. only if bbsel fails */ - /* ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d) */ + /* for non zbuf projections, dont change the GL state */ + ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); glLoadMatrixf(vc->rv3d->viewmat); bbsel= EM_init_backbuf_border(vc, rect->xmin, rect->ymin, rect->xmax, rect->ymax); @@ -1505,7 +1496,6 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten if (bbsel) { EM_backbuf_checkAndSelectVerts(vc->em, select); } else { - ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); mesh_foreachScreenVert(vc, do_mesh_box_select__doSelectVert, &data, 1); } } @@ -1525,7 +1515,6 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten if(bbsel) { EM_backbuf_checkAndSelectFaces(vc->em, select); } else { - ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); mesh_foreachScreenFace(vc, do_mesh_box_select__doSelectFace, &data); } } -- cgit v1.2.3 From 252f7c9af845c22b5f0a39aa3e14e8823dd7ebd2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 04:28:53 +0000 Subject: fix [#27616] Appending an object from a file brings all existing group links to scene When appending from a blend file which had an object already linked, _but_ was not in any scenes. - the linked object would be instanced. --- source/blender/blenloader/intern/readfile.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 49579432de2..1dc02c4b866 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -12742,8 +12742,14 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const /* when appending, make sure any indirectly loaded objects * get a base else they cant be accessed at all [#27437] */ if(ob->id.us==1 && is_link==FALSE && ob->id.lib==lib) { - if(object_in_any_scene(mainvar, ob)==0) { - do_it= 1; + + /* we may be appending from a scene where we already + * have a linked object which is not in any scene [#27616] */ + if((ob->id.flag & LIB_PRE_EXISTING)==0) { + + if(object_in_any_scene(mainvar, ob)==0) { + do_it= 1; + } } } } -- cgit v1.2.3 From 152b06dc825c9b674b56e469af1028a3f8e58d7f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 07:40:30 +0000 Subject: use a better method for finding the precision to use for float buttons, about 4x faster to calculate and will show for eg, 0.0108 rather than 0.01, but 0.0100001 still displays as 0.01. --- source/blender/editors/interface/interface.c | 49 ++++++++++++++++++---------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index a21122698d9..99b4b68b42d 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -74,6 +74,9 @@ #define MENU_ITEM_HEIGHT 20 #define MENU_SEP_HEIGHT 6 +#define PRECISION_FLOAT_MAX 7 +#define PRECISION_FLOAT_MAX_POW 10000000 /* pow(10, PRECISION_FLOAT_MAX) */ + /* * a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt * @@ -463,27 +466,39 @@ static int ui_but_float_precision(uiBut *but, double value) * _but_, this is only for small values si 10.0001 will not get * the same treatment */ if(value != 0.0 && (value= ABS(value)) < 0.1) { - double prec_d= -(log10(value)); - double prec_d_floor = floor(prec_d + FLT_EPSILON); - int test_prec= (int)prec_d_floor; - - /* this check is so 0.00016 from isnt rounded to 0.0001 */ - if(prec_d - prec_d_floor > FLT_EPSILON) { /* not ending with a .0~001 */ - /* check if a second decimal place is needed 0.00015 for eg. */ - if(double_round(value, test_prec + 1) - double_round(value, test_prec + 2) != 0.0) { - test_prec += 2; + int value_i= (int)((value * PRECISION_FLOAT_MAX_POW) + 0.5); + if(value_i != 0) { + const int prec_span= 3; /* show: 0.01001, 5 would allow 0.0100001 for eg. */ + int test_prec; + int prec_min= -1; + int dec_flag= 0; + int i= PRECISION_FLOAT_MAX; + while(i && value_i) { + if(value_i % 10) { + dec_flag |= 1<> (prec_min + 1)) & ((1 << prec_span) - 1); + + while(dec_flag) { + test_prec++; + dec_flag = dec_flag >> 1; } - } - if(test_prec > prec && test_prec <= 7) { - prec= test_prec; + if(test_prec > prec) { + prec= test_prec; + } } } - CLAMP(prec, 1, 7); + CLAMP(prec, 1, PRECISION_FLOAT_MAX); return prec; } @@ -1484,8 +1499,8 @@ static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double va if(scene->unit.scale_length<0.0001f) scene->unit.scale_length= 1.0f; // XXX do_versions /* Sanity checks */ - if(precision>7) precision= 7; - else if(precision==0) precision= 2; + if(precision > PRECISION_FLOAT_MAX) precision= PRECISION_FLOAT_MAX; + else if(precision==0) precision= 2; bUnit_AsString(str, len_max, ui_get_but_scale_unit(but, value), precision, scene->unit.system, unit_type>>16, do_split, pad); } -- cgit v1.2.3 From 09e96f6b56754f395e7d1383c8e1603fd2fc88a4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 08:58:27 +0000 Subject: RNA properties - expose values as radians rather then degrees - sequencer wipe angle - mesh autosmooth - bevel modifier angle - edge split angle --- source/blender/makesrna/intern/rna_mesh.c | 23 ++++++++++++++ source/blender/makesrna/intern/rna_modifier.c | 43 +++++++++++++++++++++++++- source/blender/makesrna/intern/rna_sequencer.c | 25 ++++++++++++++- 3 files changed, 89 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 2d3c3fe7a3a..479e449958b 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -40,6 +40,9 @@ #include "WM_types.h" +#include "BLI_math_base.h" +#include "BLI_math_rotation.h" + #ifdef RNA_RUNTIME #include "DNA_scene_types.h" @@ -912,6 +915,20 @@ static void rna_TextureFace_image_set(PointerRNA *ptr, PointerRNA value) tf->tpage= (struct Image*)id; } +static void rna_Mesh_auto_smooth_angle_set(PointerRNA *ptr, float value) +{ + Mesh *me= (Mesh*)ptr->id.data; + value= RAD2DEGF(value); + CLAMP(value, 1.0f, 80.0f); + me->smoothresh= (int)value; +} + +static float rna_Mesh_auto_smooth_angle_get(PointerRNA *ptr) +{ + Mesh *me= (Mesh*)ptr->id.data; + return DEG2RADF((float)me->smoothresh); +} + static int rna_MeshFace_verts_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]) { MFace *face= (MFace*)ptr->data; @@ -1913,9 +1930,15 @@ static void rna_def_mesh(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", ME_AUTOSMOOTH); RNA_def_property_ui_text(prop, "Auto Smooth", "Treats all set-smoothed faces with angles less than the specified angle as 'smooth' during render"); +#if 1 /* expose as radians */ + prop= RNA_def_property(srna, "auto_smooth_angle", PROP_FLOAT, PROP_ANGLE); + RNA_def_property_float_funcs(prop, "rna_Mesh_auto_smooth_angle_get", "rna_Mesh_auto_smooth_angle_set", NULL); + RNA_def_property_ui_range(prop, DEG2RAD(1.0), DEG2RAD(80), 1.0, 1); +#else prop= RNA_def_property(srna, "auto_smooth_angle", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "smoothresh"); RNA_def_property_range(prop, 1, 80); +#endif RNA_def_property_ui_text(prop, "Auto Smooth Angle", "Defines maximum angle between face normals that 'Auto Smooth' will operate on"); prop= RNA_def_property(srna, "show_double_sided", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 75f3f1ef238..ff277b6d9b0 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -578,6 +578,34 @@ static void rna_UVProjectModifier_num_projectors_set(PointerRNA *ptr, int value) md->projectors[a]= NULL; } +static float rna_EdgeSplitModifier_split_angle_get(PointerRNA *ptr) +{ + EdgeSplitModifierData *md= (EdgeSplitModifierData*)ptr->data; + return DEG2RADF(md->split_angle); +} + +static void rna_EdgeSplitModifier_split_angle_set(PointerRNA *ptr, float value) +{ + EdgeSplitModifierData *md= (EdgeSplitModifierData*)ptr->data; + value= RAD2DEGF(value); + CLAMP(value, 0.0f, 180.0f); + md->split_angle= (int)value; +} + +static float rna_BevelModifier_angle_limit_get(PointerRNA *ptr) +{ + BevelModifierData *md= (BevelModifierData*)ptr->data; + return DEG2RADF(md->bevel_angle); +} + +static void rna_BevelModifier_angle_limit_set(PointerRNA *ptr, float value) +{ + BevelModifierData *md= (BevelModifierData*)ptr->data; + value= RAD2DEGF(value); + CLAMP(value, 0.0f, 180.0f); + md->bevel_angle= (int)value; +} + #else static void rna_def_property_subdivision_common(StructRNA *srna, const char type[]) @@ -1365,10 +1393,16 @@ static void rna_def_modifier_edgesplit(BlenderRNA *brna) RNA_def_struct_sdna(srna, "EdgeSplitModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_EDGESPLIT); - // XXX, convert to radians. +#if 1 /* expose as radians */ + prop= RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_ANGLE); + RNA_def_property_float_funcs(prop, "rna_EdgeSplitModifier_split_angle_get", "rna_EdgeSplitModifier_split_angle_set", NULL); + RNA_def_property_range(prop, 0, DEG2RAD(180)); + RNA_def_property_ui_range(prop, 0, DEG2RAD(180), 100, 2); +#else prop= RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0, 180); RNA_def_property_ui_range(prop, 0, 180, 100, 2); +#endif RNA_def_property_ui_text(prop, "Split Angle", "Angle above which to split edges"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); @@ -1965,10 +1999,17 @@ static void rna_def_modifier_bevel(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Edge Weight Method", "What edge weight to use for weighting a vertex"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); +#if 1 /* expose as radians */ + prop= RNA_def_property(srna, "angle_limit", PROP_FLOAT, PROP_ANGLE); + RNA_def_property_float_funcs(prop, "rna_BevelModifier_angle_limit_get", "rna_BevelModifier_angle_limit_set", NULL); + RNA_def_property_range(prop, 0, DEG2RAD(180)); + RNA_def_property_ui_range(prop, 0, DEG2RAD(180), 100, 2); +#else prop= RNA_def_property(srna, "angle_limit", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "bevel_angle"); RNA_def_property_range(prop, 0, 180); RNA_def_property_ui_range(prop, 0, 180, 100, 2); +#endif RNA_def_property_ui_text(prop, "Angle", "Angle above which to bevel edges"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); } diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 4171189d928..8c4e4d9e736 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -680,6 +680,23 @@ static void rna_SequenceEditor_overlay_frame_set(PointerRNA *ptr, int value) ed->over_ofs= value; } + +static void rna_WipeSequence_angle_set(PointerRNA *ptr, float value) +{ + Sequence *seq= (Sequence *)(ptr->data); + value= RAD2DEGF(value); + CLAMP(value, -90.0f, 90.0f); + ((WipeVars *)seq->effectdata)->angle= value; +} + +static float rna_WipeSequence_angle_get(PointerRNA *ptr) +{ + Sequence *seq= (Sequence *)(ptr->data); + + return DEG2RADF(((WipeVars *)seq->effectdata)->angle); +} + + #else static void rna_def_strip_element(BlenderRNA *brna) @@ -1460,10 +1477,16 @@ static void rna_def_wipe(BlenderRNA *brna) RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Blur Width", "Width of the blur edge, in percentage relative to the image size"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - + +#if 1 /* expose as radians */ + prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE); + RNA_def_property_float_funcs(prop, "rna_WipeSequence_angle_get", "rna_WipeSequence_angle_set", NULL); + RNA_def_property_range(prop, DEG2RAD(-90.0f), DEG2RAD(90.0f)); +#else prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "angle"); RNA_def_property_range(prop, -90.0f, 90.0f); +#endif RNA_def_property_ui_text(prop, "Angle", "Edge angle"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -- cgit v1.2.3 From 75dcc2a7dd1b4108cc724d1fd39761c4685d5186 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 9 Jun 2011 11:09:46 +0000 Subject: Fix [#27378] ASC-CDL Color Balance Node does not allow for full range of values Report title is incorrect, it does allow for the full range, but actually allows too much, so clamping slope and power min at 0. --- source/blender/makesrna/intern/rna_nodetree.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index d0b60c7f153..7fd6a9dacfe 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -2221,6 +2221,7 @@ static void def_cmp_colorbalance(StructRNA *srna) RNA_def_property_float_sdna(prop, NULL, "gamma"); RNA_def_property_array(prop, 3); RNA_def_property_float_array_default(prop, default_1); + RNA_def_property_range(prop, 0.f, FLT_MAX); RNA_def_property_ui_range(prop, 0, 2, 0.1, 3); RNA_def_property_ui_text(prop, "Power", "Correction for Midtones"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); @@ -2229,6 +2230,7 @@ static void def_cmp_colorbalance(StructRNA *srna) RNA_def_property_float_sdna(prop, NULL, "gain"); RNA_def_property_array(prop, 3); RNA_def_property_float_array_default(prop, default_1); + RNA_def_property_range(prop, 0.f, FLT_MAX); RNA_def_property_ui_range(prop, 0, 2, 0.1, 3); RNA_def_property_ui_text(prop, "Slope", "Correction for Highlights"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); -- cgit v1.2.3 From 21f5a87999bbc3f022a62812ae1ec1a30fa98135 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 11:19:34 +0000 Subject: fix for memory leak re-binding meshes. --- source/blender/editors/object/object_modifier.c | 10 ++++++++-- source/blender/modifiers/intern/MOD_meshdeform.c | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 5996037cd2d..32844e6af5d 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -1259,16 +1259,22 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; if(mmd->bindcagecos) { - if(mmd->bindweights) MEM_freeN(mmd->bindweights); if(mmd->bindcagecos) MEM_freeN(mmd->bindcagecos); if(mmd->dyngrid) MEM_freeN(mmd->dyngrid); if(mmd->dyninfluences) MEM_freeN(mmd->dyninfluences); + if(mmd->bindinfluences) MEM_freeN(mmd->bindinfluences); + if(mmd->bindoffsets) MEM_freeN(mmd->bindoffsets); if(mmd->dynverts) MEM_freeN(mmd->dynverts); - mmd->bindweights= NULL; + if(mmd->bindweights) MEM_freeN(mmd->bindweights); /* deprecated */ + if(mmd->bindcos) MEM_freeN(mmd->bindcos); /* deprecated */ + mmd->bindcagecos= NULL; mmd->dyngrid= NULL; mmd->dyninfluences= NULL; + mmd->bindoffsets= NULL; mmd->dynverts= NULL; + mmd->bindweights= NULL; /* deprecated */ + mmd->bindcos= NULL; /* deprecated */ mmd->totvert= 0; mmd->totcagevert= 0; mmd->totinfluence= 0; diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index ba73f3fa0d1..5021f3a6d2e 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -72,6 +72,8 @@ static void freeData(ModifierData *md) if(mmd->dyngrid) MEM_freeN(mmd->dyngrid); if(mmd->dyninfluences) MEM_freeN(mmd->dyninfluences); if(mmd->dynverts) MEM_freeN(mmd->dynverts); + if(mmd->bindweights) MEM_freeN(mmd->bindweights); /* deprecated */ + if(mmd->bindcos) MEM_freeN(mmd->bindcos); /* deprecated */ } static void copyData(ModifierData *md, ModifierData *target) -- cgit v1.2.3 From ee713387242e992fdb8d87897193a6946fd1d0c0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 9 Jun 2011 12:44:38 +0000 Subject: Bugfix: Setting action for AnimData via RNA didn't change the usercounts. Cheers to Atom on BA for noticing this. --- source/blender/makesrna/intern/rna_animation.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 7f817aa5b4b..d523a01dc2c 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -76,6 +76,10 @@ static void rna_AnimData_action_set(PointerRNA *ptr, PointerRNA value) ID *ownerId = (ID *)ptr->id.data; AnimData *adt = (AnimData *)ptr->data; + /* manage usercount for current action */ + if (adt->action) + id_us_min((ID*)adt->action); + /* assume that AnimData's action can in fact be edited... */ if ((value.data) && (ownerId)) { bAction *act = (bAction *)value.data; @@ -85,6 +89,7 @@ static void rna_AnimData_action_set(PointerRNA *ptr, PointerRNA value) if (ELEM(act->idroot, 0, GS(ownerId->name))) { /* can set */ adt->action = act; + id_us_plus((ID*)adt->action); } else { /* cannot set */ @@ -98,6 +103,7 @@ static void rna_AnimData_action_set(PointerRNA *ptr, PointerRNA value) act->id.name+2); adt->action = act; + id_us_plus((ID*)adt->action); } } else { -- cgit v1.2.3 From d4ae38cc6c4ec8e3d13f26d12f85bca561f64f0f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 13:46:34 +0000 Subject: fix for own mistake & fix some comments. --- source/blender/blenloader/intern/readfile.c | 7 ++----- source/blender/makesrna/intern/rna_internal_types.h | 3 ++- source/blender/nodes/intern/CMP_nodes/CMP_math.c | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1dc02c4b866..9d3035057ba 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5642,11 +5642,10 @@ static BHead *read_data_into_oldnewmap(FileData *fd, BHead *bhead, const char *a while(bhead && bhead->code==DATA) { void *data; #if 0 - /* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */ + /* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */ short *sp= fd->filesdna->structs[bhead->SDNAnr]; - char *allocname = fd->filesdna->types[ sp[0] ]; char *tmp= malloc(100); - + allocname = fd->filesdna->types[ sp[0] ]; strcpy(tmp, allocname); data= read_struct(fd, bhead, tmp); #else @@ -12707,7 +12706,6 @@ static int object_in_any_scene(Main *mainvar, Object *ob) return 0; } -/* when *lib set, it also does objects that were in the appended group */ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const short idcode, const short is_link) { Object *ob; @@ -12770,7 +12768,6 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const } } -/* when *lib set, it also does objects that were in the appended group */ static void give_base_to_groups(Main *mainvar, Scene *scene) { Group *group; diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index 6ff7bc20b05..249833ae94b 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -179,7 +179,8 @@ struct PropertyRNA { * since python will convert int/bool/pointer's */ struct StructRNA *srna; /* attributes attached directly to this collection */ - /* python handle to hold all callbacks in a tuple */ + /* python handle to hold all callbacks + * (in a pointer array at the moment, may later be a tuple) */ void *py_data; }; diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_math.c b/source/blender/nodes/intern/CMP_nodes/CMP_math.c index 96fa13d99f0..b7a67f3563b 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_math.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_math.c @@ -144,7 +144,7 @@ static void do_math(bNode *node, float *out, float *in, float *in2) if( in2[0] != 0.0f ) out[0]= floorf(in[0] / in2[0] + 0.5f) * in2[0]; else - floorf(in[0] + 0.5f); + out[0]= floorf(in[0] + 0.5f); } break; -- cgit v1.2.3 From 15d0d3f41e51a29f79f40600fdd3d856e9c525c4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 14:27:51 +0000 Subject: replace log() calls with constants --- source/blender/blenkernel/intern/multires.c | 2 +- source/blender/blenkernel/intern/seqeffects.c | 2 +- source/blender/blenlib/intern/math_base_inline.c | 2 +- source/blender/editors/interface/interface.c | 4 ++-- source/blender/editors/space_outliner/outliner.c | 2 +- source/blender/render/intern/source/sunsky.c | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 5802bb2b697..d833c184274 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -1020,7 +1020,7 @@ static void old_mdisps_rotate(int S, int UNUSED(newside), int oldside, int x, in static void old_mdisps_convert(MFace *mface, MDisps *mdisp) { - int newlvl = log(sqrt(mdisp->totdisp)-1)/log(2); + int newlvl = log(sqrt(mdisp->totdisp)-1)/M_LN2; int oldlvl = newlvl+1; int oldside = multires_side_tot[oldlvl]; int newside = multires_side_tot[newlvl]; diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index c19a74deff6..fbb5a77fa04 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -1582,7 +1582,7 @@ typedef struct WipeZone { static void precalc_wipe_zone(WipeZone *wipezone, WipeVars *wipe, int xo, int yo) { wipezone->flip = (wipe->angle < 0); - wipezone->angle = pow(fabsf(wipe->angle)/45.0f, log(xo)/log(2.0f)); + wipezone->angle = pow(fabsf(wipe->angle)/45.0f, log(xo)/M_LN2); wipezone->xo = xo; wipezone->yo = yo; wipezone->width = (int)(wipe->edgeWidth*((xo+yo)/2.0f)); diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c index d37f1d6c5f0..2a2b1100fd9 100644 --- a/source/blender/blenlib/intern/math_base_inline.c +++ b/source/blender/blenlib/intern/math_base_inline.c @@ -114,7 +114,7 @@ MINLINE float shell_angle_to_dist(const float angle) /* used for zoom values*/ MINLINE float power_of_2(float val) { - return (float)pow(2.0, ceil(log((double)val) / log(2.0))); + return (float)pow(2.0, ceil(log((double)val) / M_LN2)); } MINLINE float minf(float a, float b) diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 99b4b68b42d..37e4cc7616b 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1733,7 +1733,7 @@ void ui_set_but_default(bContext *C, short all) static double soft_range_round_up(double value, double max) { /* round up to .., 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, .. */ - double newmax= pow(10.0, ceil(log(value)/log(10.0))); + double newmax= pow(10.0, ceil(log(value)/M_LN10)); if(newmax*0.2 >= max && newmax*0.2 >= value) return newmax*0.2; @@ -1746,7 +1746,7 @@ static double soft_range_round_up(double value, double max) static double soft_range_round_down(double value, double max) { /* round down to .., 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, .. */ - double newmax= pow(10.0, floor(log(value)/log(10.0))); + double newmax= pow(10.0, floor(log(value)/M_LN10)); if(newmax*5.0 <= max && newmax*5.0 <= value) return newmax*5.0; diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 43e46d485ee..2c1ba148643 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -436,7 +436,7 @@ static void outliner_sort(SpaceOops *soops, ListBase *lb) static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, TreeElement *parent, short type, short index); -#define LOG2I(x) (int)(log(x)/log(2.0)) +#define LOG2I(x) (int)(log(x)/M_LN2) static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) { diff --git a/source/blender/render/intern/source/sunsky.c b/source/blender/render/intern/source/sunsky.c index f645c29a7a5..5877fa42292 100644 --- a/source/blender/render/intern/source/sunsky.c +++ b/source/blender/render/intern/source/sunsky.c @@ -460,7 +460,7 @@ void AtmospherePixleShader( struct SunSky* sunSky, float view[3], float s, float vec3opv(sunSky->atm_BetaRM, sunSky->atm_BetaRay, +, sunSky->atm_BetaMie); //e^(-(beta_1 + beta_2) * s) = E1 - vec3opf(E1, sunSky->atm_BetaRM, *, -s/log(2)); + vec3opf(E1, sunSky->atm_BetaRM, *, -s/M_LN2); E1[0] = exp(E1[0]); E1[1] = exp(E1[1]); E1[2] = exp(E1[2]); -- cgit v1.2.3 From cede08e1e25c3a37b5276c80302bdb7acc27cd78 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 9 Jun 2011 15:26:05 +0000 Subject: Bugfix #26886 Operator redo: F6 menu didn't work for macros yet (like Duplicate-grab). --- source/blender/editors/screen/screen_ops.c | 8 +------- source/blender/windowmanager/intern/wm_operators.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index f016fb6822a..68326edfb11 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2461,13 +2461,7 @@ static void SCREEN_OT_repeat_history(wmOperatorType *ot) static int redo_last_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { - wmWindowManager *wm= CTX_wm_manager(C); - wmOperator *lastop; - - /* only for operators that are registered and did an undo push */ - for(lastop= wm->operators.last; lastop; lastop= lastop->prev) - if((lastop->type->flag & OPTYPE_REGISTER) && (lastop->type->flag & OPTYPE_UNDO)) - break; + wmOperator *lastop= WM_operator_last_redo(C); if(lastop) WM_operator_redo_popup(C, lastop); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1b7333024e7..8f15a21c624 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -921,7 +921,16 @@ static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op) if(ED_undo_valid(C, op->type->name)==0) uiLayoutSetEnabled(layout, 0); - uiLayoutOperatorButs(C, layout, op, NULL, 'H', UI_LAYOUT_OP_SHOW_TITLE); + if(op->type->flag & OPTYPE_MACRO) { + for(op= op->macro.first; op; op= op->next) { + uiItemL(layout, op->type->name, ICON_NONE); + uiLayoutOperatorButs(C, layout, op, NULL, 'H', UI_LAYOUT_OP_SHOW_TITLE); + } + } + else { + uiLayoutOperatorButs(C, layout, op, NULL, 'H', UI_LAYOUT_OP_SHOW_TITLE); + } + uiPopupBoundsBlock(block, 4, 0, 0); uiEndBlock(C, block); @@ -3125,7 +3134,6 @@ static int radial_control_cancel(bContext *C, wmOperator *op) static int radial_control_modal(bContext *C, wmOperator *op, wmEvent *event) { RadialControl *rc = op->customdata; - wmWindowManager *wm; float new_value, dist, zoom[2]; float delta[2], snap, ret = OPERATOR_RUNNING_MODAL; -- cgit v1.2.3 From 3a51735fbe083016baf2c74ee2efdbbc01e0249c Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 9 Jun 2011 15:54:44 +0000 Subject: Bugfix #27078 Added notifier to make material preview update when selecting a face in editmode with a different material than displayed. --- source/blender/editors/mesh/editmesh_mods.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index b5da36756b5..741cfd7078c 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -2339,7 +2339,7 @@ int mouse_mesh(bContext *C, const int mval[2], short extend) if (efa && efa->mat_nr != vc.obedit->actcol-1) { vc.obedit->actcol= efa->mat_nr+1; vc.em->mat_nr= efa->mat_nr; -// BIF_preview_changed(ID_MA); + WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); -- cgit v1.2.3 From 55c488abf055897a1d55a694f2b460e94ac17c6b Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Thu, 9 Jun 2011 16:05:34 +0000 Subject: Fix for GLSL material node inside groups. These were using the GPULink point from the input stack argument, but this only exists for directly linked nodes. If a node is linked directly to a group socket, which is not linked externally, the stack argument is actually the external group input. --- .../blender/nodes/intern/SHD_nodes/SHD_material.c | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c index 8b477af0689..f66df9bba90 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_material.c @@ -209,6 +209,17 @@ static void node_shader_init_material(bNode* node) node->custom1= SH_NODE_MAT_DIFF|SH_NODE_MAT_SPEC; } +/* XXX this is also done as a local static function in gpu_codegen.c, + * but we need this to hack around the crappy material node. + */ +static GPUNodeLink *gpu_get_input_link(GPUNodeStack *in) +{ + if (in->link) + return in->link; + else + return GPU_uniform(in->vec); +} + static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) { if(node->id) { @@ -229,18 +240,18 @@ static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, /* write values */ if(hasinput[MAT_IN_COLOR]) - shi.rgb = in[MAT_IN_COLOR].link; + shi.rgb = gpu_get_input_link(&in[MAT_IN_COLOR]); if(hasinput[MAT_IN_SPEC]) - shi.specrgb = in[MAT_IN_SPEC].link; + shi.specrgb = gpu_get_input_link(&in[MAT_IN_SPEC]); if(hasinput[MAT_IN_REFL]) - shi.refl = in[MAT_IN_REFL].link; + shi.refl = gpu_get_input_link(&in[MAT_IN_REFL]); /* retrieve normal */ if(hasinput[MAT_IN_NORMAL]) { GPUNodeLink *tmp; - shi.vn = in[MAT_IN_NORMAL].link; + shi.vn = gpu_get_input_link(&in[MAT_IN_NORMAL]); GPU_link(mat, "vec_math_normalize", shi.vn, &shi.vn, &tmp); } @@ -250,11 +261,11 @@ static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, if (node->type == SH_NODE_MATERIAL_EXT) { if(hasinput[MAT_IN_AMB]) - shi.amb= in[MAT_IN_AMB].link; + shi.amb= gpu_get_input_link(&in[MAT_IN_AMB]); if(hasinput[MAT_IN_EMIT]) - shi.emit= in[MAT_IN_EMIT].link; + shi.emit= gpu_get_input_link(&in[MAT_IN_EMIT]); if(hasinput[MAT_IN_ALPHA]) - shi.alpha= in[MAT_IN_ALPHA].link; + shi.alpha= gpu_get_input_link(&in[MAT_IN_ALPHA]); } GPU_shaderesult_set(&shi, &shr); /* clears shr */ -- cgit v1.2.3 From 10082b798625a6797ea48a6ffeb904951368297b Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 9 Jun 2011 16:12:10 +0000 Subject: Bugfix #27081 Displacement mapping didn't do linear interpolation between pixels, causing render artefacts. Now it uses for image render without AA a default interploation filter of 1 pixel size. Fix provided by Miika Hamalainen. Thanks! --- source/blender/render/intern/source/imagetexture.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c index 7d2c7b35247..cb08ae96bf7 100644 --- a/source/blender/render/intern/source/imagetexture.c +++ b/source/blender/render/intern/source/imagetexture.c @@ -76,6 +76,8 @@ extern struct Render R; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, int imaprepeat, int imapextend); + /* *********** IMAGEWRAPPING ****************** */ @@ -201,7 +203,16 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre ibuf->rect+= (ibuf->x*ibuf->y); } - ibuf_get_color(&texres->tr, ibuf, x, y); + /* interpolate */ + if (tex->imaflag & TEX_INTERPOL) { + float filterx, filtery; + filterx = (0.5f * tex->filtersize) / ibuf->x; + filtery = (0.5f * tex->filtersize) / ibuf->y; + + boxsample(ibuf, fx-filterx, fy-filtery, fx+filterx, fy+filtery, texres, (tex->extend==TEX_REPEAT), (tex->extend==TEX_EXTEND)); + } + else /* no filtering */ + ibuf_get_color(&texres->tr, ibuf, x, y); if( (R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields) ) { ibuf->rect-= (ibuf->x*ibuf->y); -- cgit v1.2.3 From c8a654c41c877d082fd09f1050a787eb015191f4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jun 2011 18:28:58 +0000 Subject: add includes for windows. --- source/blender/editors/space_outliner/outliner.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 2c1ba148643..bd2d591a8c8 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -57,6 +57,7 @@ #include "BLI_blenlib.h" #include "BLI_utildefines.h" +#include "BLI_math_base.h" #if defined WIN32 && !defined _LIBC # include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ -- cgit v1.2.3 From 9cf0bbb95c00129501d14f97be3f33cc208771fb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Jun 2011 09:44:27 +0000 Subject: added a check to console auto-compleation for pythons struct_seq type, so bpy.app and sys.float_info autocompleate their attributes rather then bring treated as a typle. --- source/blender/windowmanager/intern/wm_operators.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 8f15a21c624..06d049d2cb5 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1485,6 +1485,14 @@ static int wm_open_mainfile_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED( { const char *openname= G.main->name; + if(CTX_wm_window(C) == NULL) { + /* in rare cases this could happen, when trying to invoke in background + * mode on load for example. Don't use poll for this because exec() + * can still run without a window */ + BKE_report(op->reports, RPT_ERROR, "Context window not set"); + return OPERATOR_CANCELLED; + } + /* if possible, get the name of the most recently used .blend file */ if (G.recent_files.first) { struct RecentFile *recent = G.recent_files.first; @@ -1535,7 +1543,7 @@ static void WM_OT_open_mainfile(wmOperatorType *ot) ot->invoke= wm_open_mainfile_invoke; ot->exec= wm_open_mainfile_exec; - ot->poll= WM_operator_winactive; + /* ommit window poll so this can work in background mode */ WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH); @@ -1954,7 +1962,7 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) ot->invoke= wm_save_mainfile_invoke; ot->exec= wm_save_as_mainfile_exec; ot->check= blend_save_check; - ot->poll= NULL; + /* ommit window poll so this can work in background mode */ WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH); RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file"); -- cgit v1.2.3 From eeba87792661a56f3a2d312421c500186aca8445 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Jun 2011 10:13:50 +0000 Subject: fix [#27607] Scene's render.filepath gets cropped to 159 characters use 240 char limit, remove backbuffer path which wasn't used. --- source/blender/blenkernel/intern/blender.c | 1 - source/blender/blenkernel/intern/scene.c | 3 +-- source/blender/makesdna/DNA_scene_types.h | 2 +- source/blender/makesdna/DNA_userdef_types.h | 2 +- source/blender/render/intern/source/pipeline.c | 3 +-- 5 files changed, 4 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 20b44b3b899..5a9432552d2 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -180,7 +180,6 @@ static void clean_paths(Main *main) BLI_bpathIterator_free(bpi); for(scene= main->scene.first; scene; scene= scene->id.next) { - BLI_clean(scene->r.backbuf); BLI_clean(scene->r.pic); } } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 11cdcddae3a..51eaba3c05b 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -476,8 +476,7 @@ Scene *add_scene(const char *name) sce->audio.doppler_factor = 1.0; sce->audio.speed_of_sound = 343.3; - strcpy(sce->r.backbuf, "//backbuf"); - strcpy(sce->r.pic, U.renderdir); + BLI_strncpy(sce->r.pic, U.renderdir, sizeof(sce->r.pic)); BLI_init_rctf(&sce->r.safety, 0.1f, 0.9f, 0.1f, 0.9f); sce->r.osa= 8; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 70e90cfc713..2b88469a28d 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -350,7 +350,7 @@ typedef struct RenderData { float bake_maxdist, bake_biasdist, bake_pad; /* paths to backbufffer, output */ - char backbuf[160], pic[160]; + char pic[240]; /* stamps flags. */ int stamp; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 50e66f91028..907710ae4cd 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -305,7 +305,7 @@ typedef struct UserDef { int savetime; char tempdir[160]; // FILE_MAXDIR length char fontdir[160]; - char renderdir[160]; + char renderdir[240]; // FILE_MAX length char textudir[160]; char plugtexdir[160]; char plugseqdir[160]; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 436f0ecd997..e120854b6cf 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2070,8 +2070,7 @@ static void load_backbuffer(Render *re) if(re->r.alphamode == R_ADDSKY) { ImBuf *ibuf; char name[256]; - - BLI_strncpy(name, re->r.backbuf, sizeof(name)); + BLI_path_abs(name, re->main->name); BLI_path_frame(name, re->r.cfra, 0); -- cgit v1.2.3 From ff5fb2f4ef8997cb110476f2823b6edfd28cea08 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 10 Jun 2011 12:08:55 +0000 Subject: Bugfix: Text Editor operators crash when invoked from Python/Console --- source/blender/editors/space_text/text_draw.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c index 625e5561389..28230b7a48b 100644 --- a/source/blender/editors/space_text/text_draw.c +++ b/source/blender/editors/space_text/text_draw.c @@ -907,9 +907,12 @@ static void text_update_drawcache(SpaceText *st, ARegion *ar) void text_drawcache_tag_update(SpaceText *st, int full) { - DrawCache *drawcache= (DrawCache *)st->drawcache; - - if(drawcache) { + /* this happens if text editor ops are caled from python */ + if (st == NULL) + return; + + if(st->drawcache) { + DrawCache *drawcache= (DrawCache *)st->drawcache; Text *txt= st->text; if(drawcache->update_flag) { -- cgit v1.2.3 From 44bce3b8765906d202211b9e2d3b5e2354ba66d6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 10 Jun 2011 12:51:07 +0000 Subject: Adding properties to Keying Sets via the Scene properties will now set "entire array" property on by default, making it easier to add transforms to Keying Sets. This doesn't affect Keying Set paths added via Python or any other means. --- source/blender/editors/animation/keyingsets.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index 610022660bd..69e7c4eb73a 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -224,6 +224,7 @@ static int add_empty_ks_path_exec (bContext *C, wmOperator *op) ksp->groupmode= KSP_GROUP_KSNAME; // XXX? ksp->idtype= ID_OB; + ksp->flag= KSP_FLAG_WHOLE_ARRAY; return OPERATOR_FINISHED; } -- cgit v1.2.3 From 9d5f436d7591a1199cee13bb5b20010edfe003d2 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 10 Jun 2011 13:06:51 +0000 Subject: Alignment tweaks to F-Modifier header buttons. I was going to include this change along with support for moving FModifiers around on the stack, though that looks like it might be a bit more involved than first though. To be dealt with later... --- source/blender/editors/animation/fmodifier_ui.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 8058454f510..8197d6b25dd 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -622,7 +622,7 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie block= uiLayoutGetBlock(row); // err... /* left-align -------------------------------------------- */ - subrow= uiLayoutRow(row, 0); + subrow= uiLayoutRow(row, 1); uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_LEFT); uiBlockSetEmboss(block, UI_EMBOSSN); @@ -640,7 +640,7 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie uiItemL(subrow, "", ICON_NONE); /* right-align ------------------------------------------- */ - subrow= uiLayoutRow(row, 0); + subrow= uiLayoutRow(row, 1); uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_RIGHT); -- cgit v1.2.3 From 753623d1d7ec002523a0b4ec35dc8ff1f0df8ec1 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 10 Jun 2011 14:03:51 +0000 Subject: Bugfix #27136 Ending localview - which is similar to layer change - should send update similar to change layers too. Needed for example when loading a file saved in local view or when changing time in localview. --- source/blender/editors/space_view3d/view3d_view.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 0c4ab161e71..aadb355f743 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1560,7 +1560,7 @@ static void restore_localviewdata(ScrArea *sa, int free) } } -static void endlocalview(Scene *scene, ScrArea *sa) +static void endlocalview(Main *bmain, Scene *scene, ScrArea *sa) { View3D *v3d= sa->spacedata.first; struct Base *base; @@ -1586,6 +1586,8 @@ static void endlocalview(Scene *scene, ScrArea *sa) base->object->lay= base->lay; } } + + DAG_on_visible_update(bmain, FALSE); } } @@ -1594,7 +1596,7 @@ static int localview_exec(bContext *C, wmOperator *UNUSED(unused)) View3D *v3d= CTX_wm_view3d(C); if(v3d->localvd) - endlocalview(CTX_data_scene(C), CTX_wm_area(C)); + endlocalview(CTX_data_main(C), CTX_data_scene(C), CTX_wm_area(C)); else initlocalview(CTX_data_main(C), CTX_data_scene(C), CTX_wm_area(C)); -- cgit v1.2.3 From ce3f040e140996d7594c25e436ba49d7c09b30ed Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Jun 2011 16:59:15 +0000 Subject: fix [#27627] Strange behavior with solid open gl lights disable turning off all lights in the user preferences. --- source/blender/makesrna/intern/rna_userdef.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index b67805c97b9..14af5ed7a3f 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -245,6 +245,13 @@ static void rna_UserDef_weight_color_update(Main *bmain, Scene *scene, PointerRN static void rna_UserDef_viewport_lights_update(Main *bmain, Scene *scene, PointerRNA *ptr) { + /* if all lights are off gpu_draw resets them all, [#27627] + * so disallow them all to be disabled */ + if(U.light[0].flag==0 && U.light[1].flag==0 && U.light[2].flag==0) { + SolidLight *light= ptr->data; + light->flag |= 1; + } + WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D|NS_VIEW3D_GPU, NULL); rna_userdef_update(bmain, scene, ptr); } -- cgit v1.2.3 From a4aa7abd65f3f95abc18dce3efff9de388432367 Mon Sep 17 00:00:00 2001 From: Jason Wilkins Date: Fri, 10 Jun 2011 20:59:48 +0000 Subject: suspiciously consistent typo --- source/blender/editors/sculpt_paint/sculpt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index cab8c522a89..be985342ea8 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -3559,7 +3559,7 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -static int sculpt_brush_stroke_cacel(bContext *C, wmOperator *op) +static int sculpt_brush_stroke_cancel(bContext *C, wmOperator *op) { Object *ob= CTX_data_active_object(C); SculptSession *ss = ob->sculpt; @@ -3595,7 +3595,7 @@ static void SCULPT_OT_brush_stroke(wmOperatorType *ot) ot->modal= paint_stroke_modal; ot->exec= sculpt_brush_stroke_exec; ot->poll= sculpt_poll; - ot->cancel= sculpt_brush_stroke_cacel; + ot->cancel= sculpt_brush_stroke_cancel; /* flags (sculpt does own undo? (ton) */ ot->flag= OPTYPE_BLOCKING; -- cgit v1.2.3 From 7b124242e7a2f5138f245af6af506081b83e5103 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 11 Jun 2011 00:25:48 +0000 Subject: SpaceNav works on Linux --- source/blender/editors/space_view3d/view3d_edit.c | 8 ++++---- source/blender/windowmanager/intern/wm_event_system.c | 6 +++++- source/blender/windowmanager/intern/wm_window.c | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 315c8b39f44..76d595c275b 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -958,10 +958,6 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) RegionView3D* rv3d = CTX_wm_region_view3d(C); - if (dt > 0.25f) - /* this is probably the first event for this motion, so set dt to something reasonable */ - dt = 0.0125f; - /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ float phi, q1[4]; float m[3][3]; @@ -970,6 +966,10 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) const float sensitivity = 0.035; + if (dt > 0.25f) + /* this is probably the first event for this motion, so set dt to something reasonable */ + dt = 0.0125f; + /* Get the 3x3 matrix and its inverse from the quaternion */ quat_to_mat3(m,rv3d->viewquat); invert_m3_m3(m_inv,m); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 96071bc442b..56805aa3d3f 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2375,7 +2375,9 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U { wmWindow *owin; wmEvent event, *evt= win->eventstate; - + + printf("ghost (%d) --> wm\n", type); + /* initialize and copy state (only mouse x y and modifiers) */ event= *evt; @@ -2579,6 +2581,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U } case GHOST_kEventNDOFMotion: { + puts("ndof motion in wm"); event.type = NDOF_MOTION; attach_ndof_data(&event, customdata); wm_event_add(win, &event); @@ -2588,6 +2591,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U case GHOST_kEventNDOFButton: { GHOST_TEventNDOFButtonData* e = customdata; + puts("ndof button in wm"); event.type = NDOF_BUTTON_NONE + e->button; diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 9ee39132521..7524174c345 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -621,12 +621,12 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) if (!ghostwin) { // XXX - should be checked, why are we getting an event here, and // what is it? - + puts(" event has no window"); return 1; } else if (!GHOST_ValidWindow(g_system, ghostwin)) { // XXX - should be checked, why are we getting an event here, and // what is it? - + puts(" event has invalid window"); return 1; } else { win= GHOST_GetWindowUserData(ghostwin); -- cgit v1.2.3 From 8e85491ab7f4d2e156910eceb87ca4023d42c95a Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sat, 11 Jun 2011 01:03:03 +0000 Subject: BGE Animations: Adding a layer option to Action actuators. --- source/blender/editors/space_logic/logic_window.c | 3 +++ source/blender/makesdna/DNA_actuator_types.h | 2 ++ source/blender/makesrna/intern/rna_actuator.c | 5 +++++ 3 files changed, 10 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index 0a9a91a53af..0cbc67a3504 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3699,6 +3699,9 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) uiItemR(row, ptr, "frame_blend_in", 0, NULL, ICON_NONE); uiItemR(row, ptr, "priority", 0, NULL, ICON_NONE); + row= uiLayoutRow(layout, 0); + uiItemR(row, ptr, "layer", 0, NULL, ICON_NONE); + row= uiLayoutRow(layout, 0); uiItemPointerR(layout, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NONE); diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 683d8142cc9..7951ebc8c99 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -56,8 +56,10 @@ typedef struct bActionActuator { char frameProp[32]; /* Set this property to the actions current frame */ short blendin; /* Number of frames of blending */ short priority; /* Execution priority */ + short layer; /* Animation layer */ short end_reset; /* Ending the actuator (negative pulse) wont reset the the action to its starting frame */ short strideaxis; /* Displacement axis */ + short pad[3]; float stridelength; /* Displacement incurred by cycle */ // not in use } bActionActuator; diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index e16d13fafaa..656dbc53656 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -616,6 +616,11 @@ static void rna_def_action_actuator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Priority", "Execution priority - lower numbers will override actions with higher numbers. With 2 or more actions at once, the overriding channels must be lower in the stack"); RNA_def_property_update(prop, NC_LOGIC, NULL); + prop= RNA_def_property(srna, "layer", PROP_INT, PROP_NONE); + RNA_def_property_range(prop, 0, 4); /* This should match BL_ActionManager::MAX_ACTION_LAYERS */ + RNA_def_property_ui_text(prop, "Layer", "The animation layer to play the action on"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + prop= RNA_def_property(srna, "frame_property", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "frameProp"); RNA_def_property_ui_text(prop, "Frame Property", "Assign the action's current frame number to this property"); -- cgit v1.2.3 From a3101de7be2820bd19fd6aec25c63ccb449a8675 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 11 Jun 2011 08:55:29 +0000 Subject: remove backbuf from internal struct's (unused in 2.5x) --- source/blender/makesdna/DNA_scene_types.h | 17 ++--------- .../blender/render/intern/include/render_types.h | 2 +- .../blender/render/intern/source/convertblender.c | 1 - source/blender/render/intern/source/envmap.c | 1 - source/blender/render/intern/source/pipeline.c | 33 ---------------------- source/blender/render/intern/source/pixelshading.c | 25 ++-------------- 6 files changed, 7 insertions(+), 72 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 2b88469a28d..b9830138150 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -253,19 +253,12 @@ typedef struct RenderData { */ short yparts; - short winpos, planes, imtype, subimtype; - - /** Mode bits: */ - /* 0: Enable backbuffering for images */ - short bufflag; - short quality; + short planes, imtype, subimtype, quality; /** * Render to image editor, fullscreen or to new window. */ short displaymode; - - short rpad1, rpad2; /** * Flags for render settings. Use bit-masking to access the settings. @@ -322,11 +315,7 @@ typedef struct RenderData { /** * Adjustment factors for the aspect ratio in the x direction, was a short in 2.45 */ - float xasp; - /** - * Adjustment factors for the aspect ratio in the x direction, was a short in 2.45 - */ - float yasp; + float xasp, yasp; float frs_sec_base; @@ -349,7 +338,7 @@ typedef struct RenderData { short bake_normal_space, bake_quad_split; float bake_maxdist, bake_biasdist, bake_pad; - /* paths to backbufffer, output */ + /* path to render output, can contain // suffix and #'s for current frame */ char pic[240]; /* stamps flags. */ diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index cf16211b6d1..b2535ebc9ea 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -214,7 +214,7 @@ struct Render ListBase instancetable; int totinstance; - struct Image *backbuf, *bakebuf; + struct Image *bakebuf; struct GHash *orco_hash; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index c1c2fb60abd..15fc9d38c01 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4665,7 +4665,6 @@ void RE_Database_Free(Render *re) re->totvlak=re->totvert=re->totstrand=re->totlamp=re->tothalo= 0; re->i.convertdone= 0; - re->backbuf= NULL; re->bakebuf= NULL; if(re->scene) diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c index 1e40ab886ae..e2ab21ef877 100644 --- a/source/blender/render/intern/source/envmap.c +++ b/source/blender/render/intern/source/envmap.c @@ -149,7 +149,6 @@ static Render *envmap_render_copy(Render *re, EnvMap *env) envre->r.layers.first= envre->r.layers.last= NULL; envre->r.filtertype= 0; envre->r.xparts= envre->r.yparts= 2; - envre->r.bufflag= 0; envre->r.size= 100; envre->r.yasp= envre->r.xasp= 1; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index e120854b6cf..9c66f7f65ae 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2065,35 +2065,6 @@ static void do_render_fields_3d(Render *re) re->display_draw(re->ddh, re->result, NULL); } -static void load_backbuffer(Render *re) -{ - if(re->r.alphamode == R_ADDSKY) { - ImBuf *ibuf; - char name[256]; - - BLI_path_abs(name, re->main->name); - BLI_path_frame(name, re->r.cfra, 0); - - if(re->backbuf) { - re->backbuf->id.us--; - if(re->backbuf->id.us<1) - BKE_image_signal(re->backbuf, NULL, IMA_SIGNAL_RELOAD); - } - - re->backbuf= BKE_add_image_file(name); - ibuf= BKE_image_get_ibuf(re->backbuf, NULL); - if(ibuf==NULL) { - // error() doesnt work with render window open - //error("No backbuf there!"); - printf("Error: No backbuf %s\n", name); - } - else { - if (re->r.mode & R_FIELDS) - image_de_interlace(re->backbuf, re->r.mode & R_ODDFIELD); - } - } -} - /* main render routine, no compositing */ static void do_render_fields_blur_3d(Render *re) { @@ -2104,10 +2075,6 @@ static void do_render_fields_blur_3d(Render *re) G.afbreek= 1; return; } - - /* backbuffer initialize */ - if(re->r.bufflag & 1) - load_backbuffer(re); /* now use renderdata and camera to set viewplane */ RE_SetCamera(re, camera); diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c index 2d42938f6ac..56a1c870904 100644 --- a/source/blender/render/intern/source/pixelshading.c +++ b/source/blender/render/intern/source/pixelshading.c @@ -502,21 +502,6 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, /* ------------------------------------------------------------------------- */ -static void fillBackgroundImage(float *collector, float fx, float fy) -{ - collector[0] = 0.0; - collector[1] = 0.0; - collector[2] = 0.0; - collector[3] = 0.0; - - if(R.backbuf) { - float dx= 1.0f/(float)R.winx; - float dy= 1.0f/(float)R.winy; - - image_sample(R.backbuf, fx*dx, fy*dy, dx, dy, collector); - } -} - /* Only view vector is important here. Result goes to colf[3] */ void shadeSkyView(float *colf, float *rco, float *view, float *dxyview, short thread) { @@ -626,18 +611,14 @@ void shadeSkyPixel(float *collector, float fx, float fy, short thread) float fac; - /* 1. Do a backbuffer image: */ - if(R.r.bufflag & 1) { - fillBackgroundImage(collector, fx, fy); - } - else if((R.wrld.skytype & (WO_SKYBLEND+WO_SKYTEX))==0) { - /* 2. solid color */ + if((R.wrld.skytype & (WO_SKYBLEND+WO_SKYTEX))==0) { + /* 1. solid color */ VECCOPY(collector, &R.wrld.horr); collector[3] = 0.0f; } else { - /* 3. */ + /* 2. */ /* This one true because of the context of this routine */ if(R.wrld.skytype & WO_SKYPAPER) { -- cgit v1.2.3 From 81946b9138201800e495eb28addf254958feb1a4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 11 Jun 2011 10:09:56 +0000 Subject: fix for recent commit, this stops makesdna from working right: /* ... // ... */ --- source/blender/makesdna/DNA_scene_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index b9830138150..c6fa07482c5 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -338,7 +338,7 @@ typedef struct RenderData { short bake_normal_space, bake_quad_split; float bake_maxdist, bake_biasdist, bake_pad; - /* path to render output, can contain // suffix and #'s for current frame */ + /* path to render output */ char pic[240]; /* stamps flags. */ -- cgit v1.2.3 From 3361ae0271b8db7a56f107265fa018ffb6646c28 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 11 Jun 2011 12:10:01 +0000 Subject: Bugfix #27138 Theme color fix for button type "Value slider". On text editing mode, the selected part of the text was invisible. --- .../blender/editors/interface/interface_widgets.c | 68 ++++++++++++---------- 1 file changed, 36 insertions(+), 32 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 41bb12e4433..c8e9244d431 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -2326,39 +2326,43 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s wtb.outline= 0; widgetbase_draw(&wtb, wcol); - /* slider part */ - VECCOPY(outline, wcol->outline); - VECCOPY(wcol->outline, wcol->item); - VECCOPY(wcol->inner, wcol->item); + /* draw left/right parts only when not in text editing */ + if(!(state & UI_TEXTINPUT)) { + + /* slider part */ + VECCOPY(outline, wcol->outline); + VECCOPY(wcol->outline, wcol->item); + VECCOPY(wcol->inner, wcol->item); - if(!(state & UI_SELECT)) - SWAP(short, wcol->shadetop, wcol->shadedown); - - rect1= *rect; - - value= ui_get_but_val(but); - fac= ((float)value-but->softmin)*(rect1.xmax - rect1.xmin - offs)/(but->softmax - but->softmin); - - /* left part of slider, always rounded */ - rect1.xmax= rect1.xmin + ceil(offs+1.0f); - round_box_edges(&wtb1, roundboxalign & ~6, &rect1, offs); - wtb1.outline= 0; - widgetbase_draw(&wtb1, wcol); - - /* right part of slider, interpolate roundness */ - rect1.xmax= rect1.xmin + fac + offs; - rect1.xmin+= floor(offs-1.0f); - if(rect1.xmax + offs > rect->xmax) - offs*= (rect1.xmax + offs - rect->xmax)/offs; - else - offs= 0.0f; - round_box_edges(&wtb1, roundboxalign & ~9, &rect1, offs); - - widgetbase_draw(&wtb1, wcol); - VECCOPY(wcol->outline, outline); - - if(!(state & UI_SELECT)) - SWAP(short, wcol->shadetop, wcol->shadedown); + if(!(state & UI_SELECT)) + SWAP(short, wcol->shadetop, wcol->shadedown); + + rect1= *rect; + + value= ui_get_but_val(but); + fac= ((float)value-but->softmin)*(rect1.xmax - rect1.xmin - offs)/(but->softmax - but->softmin); + + /* left part of slider, always rounded */ + rect1.xmax= rect1.xmin + ceil(offs+1.0f); + round_box_edges(&wtb1, roundboxalign & ~6, &rect1, offs); + wtb1.outline= 0; + widgetbase_draw(&wtb1, wcol); + + /* right part of slider, interpolate roundness */ + rect1.xmax= rect1.xmin + fac + offs; + rect1.xmin+= floor(offs-1.0f); + if(rect1.xmax + offs > rect->xmax) + offs*= (rect1.xmax + offs - rect->xmax)/offs; + else + offs= 0.0f; + round_box_edges(&wtb1, roundboxalign & ~9, &rect1, offs); + + widgetbase_draw(&wtb1, wcol); + VECCOPY(wcol->outline, outline); + + if(!(state & UI_SELECT)) + SWAP(short, wcol->shadetop, wcol->shadedown); + } /* outline */ wtb.outline= 1; -- cgit v1.2.3 From e0dee9b41d2ecc6ef6062becd7ba84a1d3d3163e Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 11 Jun 2011 13:12:57 +0000 Subject: Bugfix #27105 Node editor: collapsed node didn't allow to size it using the right hand side grab thingemabobs. --- source/blender/editors/space_node/node_edit.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 99f2ea99efc..e539334c282 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1366,10 +1366,17 @@ static int node_resize_invoke(bContext *C, wmOperator *op, wmEvent *event) UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->mx, &snode->my); - /* rect we're interested in is just the bottom right corner */ totr= node->totr; - totr.xmin= totr.xmax-10.0f; - totr.ymax= totr.ymin+10.0f; + + if(node->flag & NODE_HIDDEN) { + /* right part of node */ + totr.xmin= node->totr.xmax-20.0f; + } + else { + /* bottom right corner */ + totr.xmin= totr.xmax-10.0f; + totr.ymax= totr.ymin+10.0f; + } if(BLI_in_rctf(&totr, snode->mx, snode->my)) { NodeSizeWidget *nsw= MEM_callocN(sizeof(NodeSizeWidget), "size widget op data"); -- cgit v1.2.3 From fbd5b4eb535c06cc298b8f5ea98be9da087527a3 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sat, 11 Jun 2011 14:08:46 +0000 Subject: Fix for edge mesh BVH: The edge distance callback for leaf nodes was calculating actual sqrt'ed distance, while needing squared distance to be compatible with bounding box checks. This also solves previous concerns about performance when using sqrt in the comparison callback. --- source/blender/blenkernel/intern/bvhutils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index 5520e4d1d41..cc45abb5998 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -493,7 +493,7 @@ static void mesh_edges_nearest_point(void *userdata, int index, const float *co, // NOTE: casts to "float*" here are due to co being "const float*" closest_to_line_segment_v3(nearest_tmp, (float*)co, t0, t1); - dist = len_v3v3(nearest_tmp, (float*)co); + dist = len_squared_v3v3(nearest_tmp, (float*)co); if(dist < nearest->dist) { -- cgit v1.2.3 From 9095612b855c22ad809babbfa05902b2fee582f2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 11 Jun 2011 17:05:20 +0000 Subject: remove some warning for unused struct members --- source/blender/editors/mesh/editmesh_tools.c | 2 +- source/blender/editors/space_console/console_draw.c | 2 ++ source/blender/editors/space_sequencer/sequencer_edit.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 424d3dd5a38..bfae101d38e 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -3967,6 +3967,7 @@ short sharesFace(EditMesh *em, EditEdge* e1, EditEdge* e2) return 0; } +#if 0 typedef struct SlideUv { float origuv[2]; @@ -3980,7 +3981,6 @@ typedef struct SlideVert { EditVert origvert; } SlideVert; -#if 0 int EdgeSlide(EditMesh *em, wmOperator *op, short immediate, float imperc) { return 0; diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c index bf5df87610c..905fed4f30b 100644 --- a/source/blender/editors/space_console/console_draw.c +++ b/source/blender/editors/space_console/console_draw.c @@ -83,11 +83,13 @@ typedef struct ConsoleDrawContext { int console_width; int winx; int ymin, ymax; +#if 0 /* used by textview, may use later */ int *xy; // [2] int *sel; // [2] int *pos_pick; // bottom of view == 0, top of file == combine chars, end of line is lower then start. int *mval; // [2] int draw; +#endif } ConsoleDrawContext; void console_scrollback_prompt_begin(struct SpaceConsole *sc, ConsoleLine *cl_dummy) diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 6900271deea..c8965c4d3db 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -124,7 +124,7 @@ typedef struct TransSeq { int startstill, endstill; int startdisp, enddisp; int startofs, endofs; - int final_left, final_right; + /* int final_left, final_right; */ /* UNUSED */ int len; } TransSeq; -- cgit v1.2.3 From 6c15d28db2719d96ca4834fe4f5ccef51a76625b Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 12 Jun 2011 08:34:53 +0000 Subject: Logic: clear "Script" when setting Script Controller mode to "Module" The text datablock was linked to the controller. So even if the script was set to 'module' and saved, once linked/appended the object the script would come together. If someone wants to implement this "clear" only once the file is saved, please go ahead. But I believe it's ok to loose the script if you change it for module (and with the new datablock lookup it's straightforward/quick to reassign a textblock) -- bug not reported anywhere, from my own list --- source/blender/makesrna/intern/rna_controller.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_controller.c b/source/blender/makesrna/intern/rna_controller.c index 92c762098c7..db5409bf7ef 100644 --- a/source/blender/makesrna/intern/rna_controller.c +++ b/source/blender/makesrna/intern/rna_controller.c @@ -87,6 +87,20 @@ static void rna_Controller_type_set(struct PointerRNA *ptr, int value) } } +static void rna_Controller_mode_set(struct PointerRNA *ptr, int value) +{ + bController *cont= (bController *)ptr->data; + bPythonCont *pycon= (bPythonCont *)cont->data; + + // if mode changed and previous mode were Script + if (value != pycon->mode && pycon->mode == CONT_PY_SCRIPT) + { + // clear script to avoid it to get linked with the controller + pycon->text = NULL; + } + pycon->mode = value; +} + static int rna_Controller_state_number_get(struct PointerRNA *ptr) { bController *cont= (bController *)ptr->data; @@ -222,6 +236,7 @@ void RNA_def_controller(BlenderRNA *brna) prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, python_controller_modes); + RNA_def_property_enum_funcs(prop, NULL, "rna_Controller_mode_set", NULL); RNA_def_property_ui_text(prop, "Execution Method", "Python script type (textblock or module - faster)"); RNA_def_property_update(prop, NC_LOGIC, NULL); -- cgit v1.2.3 From 1d40ca4860af0da49801a964c945f43fdad0f77e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 12 Jun 2011 10:24:47 +0000 Subject: 2.5 Image Buttons: * Fixed an alignment issue, left column had unnecessary row declaration. --- source/blender/editors/space_image/image_buttons.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index adce540cee4..f416db1df25 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -787,10 +787,9 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char col= uiLayoutColumn(split, 0); sprintf(str, "(%d) Frames", iuser->framenr); - row= uiLayoutRow(col, 1); uiItemR(col, userptr, "frame_duration", 0, str, ICON_NONE); if(ima->anim) { - block= uiLayoutGetBlock(row); + block= uiLayoutGetBlock(col); but= uiDefBut(block, BUT, 0, "Match Movie Length", 0, 0, UI_UNIT_X*2, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Set the number of frames to match the movie or sequence."); uiButSetFunc(but, set_frames_cb, ima, iuser); } -- cgit v1.2.3 From 982eb9942c396f23e7f9678f290e5fc6f6ec835b Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 12 Jun 2011 11:03:21 +0000 Subject: 2.5 Image Buttons: * Code cleanup, removed some unnecessary code. --- source/blender/editors/space_image/image_buttons.c | 23 ++++++++-------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index f416db1df25..0210b0dd78d 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -662,7 +662,6 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char block= uiLayoutGetBlock(layout); - imaptr= RNA_property_pointer_get(ptr, prop); ima= imaptr.data; iuser= userptr->data; @@ -719,21 +718,17 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char } } else { - row= uiLayoutRow(layout, 0); - uiItemR(row, &imaptr, "source", 0, NULL, ICON_NONE); + uiItemR(layout, &imaptr, "source", 0, NULL, ICON_NONE); if(ima->source != IMA_SRC_GENERATED) { row= uiLayoutRow(layout, 1); - split = uiLayoutSplit(row, 0.0, 0); if (ima->packedfile) - uiItemO(split, "", ICON_PACKAGE, "image.unpack"); + uiItemO(row, "", ICON_PACKAGE, "image.unpack"); else - uiItemO(split, "", ICON_UGLYPACKAGE, "image.pack"); + uiItemO(row, "", ICON_UGLYPACKAGE, "image.pack"); - split = uiLayoutSplit(row, 0.0, 0); - row= uiLayoutRow(split, 1); + row= uiLayoutRow(row, 0); uiLayoutSetEnabled(row, ima->packedfile==NULL); - uiItemR(row, &imaptr, "filepath", 0, "", ICON_NONE); uiItemO(row, "", ICON_FILE_REFRESH, "image.reload"); } @@ -771,11 +766,10 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char col= uiLayoutColumn(split, 0); uiItemR(col, &imaptr, "use_fields", 0, NULL, ICON_NONE); row= uiLayoutRow(col, 0); - uiItemR(row, &imaptr, "field_order", UI_ITEM_R_EXPAND, NULL, ICON_NONE); uiLayoutSetActive(row, RNA_boolean_get(&imaptr, "use_fields")); - - col= uiLayoutColumn(split, 0); - uiItemR(col, &imaptr, "use_premultiply", 0, NULL, ICON_NONE); + uiItemR(row, &imaptr, "field_order", UI_ITEM_R_EXPAND, NULL, ICON_NONE); + + uiItemR(split, &imaptr, "use_premultiply", 0, NULL, ICON_NONE); } } @@ -809,8 +803,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char uiItemR(col, &imaptr, "generated_width", 0, "X", ICON_NONE); uiItemR(col, &imaptr, "generated_height", 0, "Y", ICON_NONE); - col= uiLayoutColumn(split, 0); - uiItemR(col, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, ICON_NONE); + uiItemR(split, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, ICON_NONE); } } -- cgit v1.2.3 From 09492d90728420aeeaf1e3a2c568ab36226018d6 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 12 Jun 2011 11:09:39 +0000 Subject: Bug fix: keyed physics didn't work properly if the first key wasn't the keyed particle system itself * Also some nicer rotation handling for the explode modifier --- source/blender/blenkernel/BKE_particle.h | 2 + source/blender/blenkernel/intern/particle_system.c | 114 ++++++++++++--------- source/blender/modifiers/intern/MOD_explode.c | 24 ++--- 3 files changed, 81 insertions(+), 59 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 4dfc53e1734..feeab98ad78 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -300,6 +300,8 @@ void psys_get_pointcache_start_end(struct Scene *scene, ParticleSystem *psys, in void psys_check_boid_data(struct ParticleSystem *psys); +void psys_get_birth_coordinates(struct ParticleSimulationData *sim, struct ParticleData *pa, struct ParticleKey *state, float dtime, float cfra); + void particle_system_update(struct Scene *scene, struct Object *ob, struct ParticleSystem *psys); /* ----------- functions needed only inside particlesystem ------------ */ diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index fca8d470dc1..4e3840832bb 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1562,8 +1562,7 @@ static void initialize_all_particles(ParticleSimulationData *sim) } } } -/* sets particle to the emitter surface with initial velocity & rotation */ -void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, float cfra) +void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, ParticleKey *state, float dtime, float cfra) { Object *ob = sim->ob; ParticleSystem *psys = sim->psys; @@ -1575,17 +1574,6 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, float q_phase[4]; int p = pa - psys->particles; part=psys->part; - - /* get precise emitter matrix if particle is born */ - if(part->type!=PART_HAIR && dtime > 0.f && pa->time < cfra && pa->time >= sim->psys->cfra) { - /* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */ - while(ob) { - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, pa->time, ADT_RECALC_ANIM); - ob = ob->parent; - } - ob = sim->ob; - where_is_object_time(sim->scene, ob, pa->time); - } /* get birth location from object */ if(part->tanfac != 0.f) @@ -1594,7 +1582,7 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, psys_particle_on_emitter(sim->psmd, part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,0,0,0,0); /* get possible textural influence */ - psys_get_texture(sim, pa, &ptex, PAMAP_IVEL|PAMAP_LIFE, cfra); + psys_get_texture(sim, pa, &ptex, PAMAP_IVEL, cfra); /* particles live in global space so */ /* let's convert: */ @@ -1654,37 +1642,27 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, mat4_to_quat(rot,ob->obmat); mul_qt_qtqt(r_rot,r_rot,rot); } -#if 0 - } -#endif if(part->phystype==PART_PHYS_BOIDS && pa->boid) { - BoidParticle *bpa = pa->boid; float dvec[3], q[4], mat[3][3]; - copy_v3_v3(pa->state.co,loc); + copy_v3_v3(state->co,loc); /* boids don't get any initial velocity */ - zero_v3(pa->state.vel); + zero_v3(state->vel); /* boids store direction in ave */ if(fabsf(nor[2])==1.0f) { - sub_v3_v3v3(pa->state.ave, loc, ob->obmat[3]); - normalize_v3(pa->state.ave); + sub_v3_v3v3(state->ave, loc, ob->obmat[3]); + normalize_v3(state->ave); } else { - VECCOPY(pa->state.ave, nor); + VECCOPY(state->ave, nor); } - /* and gravity in r_ve */ - bpa->gravity[0] = bpa->gravity[1] = 0.0f; - bpa->gravity[2] = -1.0f; - if((sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) - && sim->scene->physics_settings.gravity[2]!=0.0f) - bpa->gravity[2] = sim->scene->physics_settings.gravity[2]; /* calculate rotation matrix */ - project_v3_v3v3(dvec, r_vel, pa->state.ave); - sub_v3_v3v3(mat[0], pa->state.ave, dvec); + project_v3_v3v3(dvec, r_vel, state->ave); + sub_v3_v3v3(mat[0], state->ave, dvec); normalize_v3(mat[0]); negate_v3_v3(mat[2], r_vel); normalize_v3(mat[2]); @@ -1692,12 +1670,7 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, /* apply rotation */ mat3_to_quat_is_ok( q,mat); - copy_qt_qt(pa->state.rot, q); - - bpa->data.health = part->boids->health; - bpa->data.mode = eBoidMode_InAir; - bpa->data.state_id = ((BoidState*)part->boids->states.first)->id; - bpa->data.acc[0]=bpa->data.acc[1]=bpa->data.acc[2]=0.0f; + copy_qt_qt(state->rot, q); } else { /* conversion done so now we apply new: */ @@ -1710,7 +1683,7 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, /* *emitter velocity */ if(dtime != 0.f && part->obfac != 0.f){ - sub_v3_v3v3(vel, loc, pa->state.co); + sub_v3_v3v3(vel, loc, state->co); mul_v3_fl(vel, part->obfac/dtime); } @@ -1747,13 +1720,13 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, if(part->partfac != 0.f) madd_v3_v3fl(vel, p_vel, part->partfac); - mul_v3_v3fl(pa->state.vel, vel, ptex.ivel); + mul_v3_v3fl(state->vel, vel, ptex.ivel); /* -location from emitter */ - copy_v3_v3(pa->state.co,loc); + copy_v3_v3(state->co,loc); /* -rotation */ - unit_qt(pa->state.rot); + unit_qt(state->rot); if(part->rotmode){ /* create vector into which rotation is aligned */ @@ -1793,32 +1766,74 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, axis_angle_to_quat( q_phase,x_vec, phasefac*(float)M_PI); /* combine base rotation & phase */ - mul_qt_qtqt(pa->state.rot, rot, q_phase); + mul_qt_qtqt(state->rot, rot, q_phase); } /* -angular velocity */ - zero_v3(pa->state.ave); + zero_v3(state->ave); if(part->avemode){ switch(part->avemode){ case PART_AVE_SPIN: - copy_v3_v3(pa->state.ave, vel); + copy_v3_v3(state->ave, vel); break; case PART_AVE_RAND: - copy_v3_v3(pa->state.ave, r_ave); + copy_v3_v3(state->ave, r_ave); break; } - normalize_v3(pa->state.ave); - mul_v3_fl(pa->state.ave,part->avefac); + normalize_v3(state->ave); + mul_v3_fl(state->ave, part->avefac); } } +} +/* sets particle to the emitter surface with initial velocity & rotation */ +void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, float cfra) +{ + Object *ob = sim->ob; + ParticleSystem *psys = sim->psys; + ParticleSettings *part; + ParticleTexture ptex; + int p = pa - psys->particles; + part=psys->part; + + /* get precise emitter matrix if particle is born */ + if(part->type!=PART_HAIR && dtime > 0.f && pa->time < cfra && pa->time >= sim->psys->cfra) { + /* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */ + while(ob) { + BKE_animsys_evaluate_animdata(&ob->id, ob->adt, pa->time, ADT_RECALC_ANIM); + ob = ob->parent; + } + ob = sim->ob; + where_is_object_time(sim->scene, ob, pa->time); + } + + psys_get_birth_coordinates(sim, pa, &pa->state, dtime, cfra); + + if(part->phystype==PART_PHYS_BOIDS && pa->boid) { + BoidParticle *bpa = pa->boid; + + /* and gravity in r_ve */ + bpa->gravity[0] = bpa->gravity[1] = 0.0f; + bpa->gravity[2] = -1.0f; + if((sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) + && sim->scene->physics_settings.gravity[2]!=0.0f) + bpa->gravity[2] = sim->scene->physics_settings.gravity[2]; + + bpa->data.health = part->boids->health; + bpa->data.mode = eBoidMode_InAir; + bpa->data.state_id = ((BoidState*)part->boids->states.first)->id; + bpa->data.acc[0]=bpa->data.acc[1]=bpa->data.acc[2]=0.0f; + } if(part->type == PART_HAIR){ pa->lifetime = 100.0f; } else{ + /* get possible textural influence */ + psys_get_texture(sim, pa, &ptex, PAMAP_LIFE, cfra); + pa->lifetime = part->lifetime * ptex.life; if(part->randlife != 0.0f) @@ -1904,6 +1919,7 @@ static void set_keyed_keys(ParticleSimulationData *sim) PARTICLE_P; ParticleKey *key; int totpart = psys->totpart, k, totkeys = psys->totkeyed; + int keyed_flag = 0; ksim.scene= sim->scene; @@ -1933,6 +1949,8 @@ static void set_keyed_keys(ParticleSimulationData *sim) for(k=0; kob ? pt->ob : sim->ob; ksim.psys = BLI_findlink(&ksim.ob->particlesystem, pt->psys - 1); + keyed_flag = (ksim.psys->flag & PSYS_KEYED); + ksim.psys->flag &= ~PSYS_KEYED; LOOP_PARTICLES { key = pa->keys + k; @@ -1956,6 +1974,8 @@ static void set_keyed_keys(ParticleSimulationData *sim) if(psys->flag & PSYS_KEYED_TIMING && pt->duration!=0.0f) k++; + ksim.psys->flag |= keyed_flag; + pt = (pt->next && pt->next->flag & PTARGET_VALID)? pt->next : psys->targets.first; } diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index f1bc0d33fd8..10bcbee6661 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -779,11 +779,11 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd, ParticleSettings *part=psmd->psys->part; ParticleSimulationData sim= {NULL}; ParticleData *pa=NULL, *pars=psmd->psys->particles; - ParticleKey state; + ParticleKey state, birth; EdgeHash *vertpahash; EdgeHashIterator *ehi; float *vertco= NULL, imat[4][4]; - float loc0[3], nor[3]; + float rot[4]; float cfra; /* float timestep; */ int *facepa=emd->facepa; @@ -814,7 +814,7 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd, for (i=0; itime) + if(facepa[i]==totpart || cfra < (pars+facepa[i])->time) mindex = totvert+totpart; else mindex = totvert+facepa[i]; @@ -868,26 +868,26 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd, /* get particle */ pa= pars+i; - /* get particle state */ - psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc0,nor,NULL,NULL,NULL,NULL); - mul_m4_v3(ob->obmat,loc0); + psys_get_birth_coordinates(&sim, pa, &birth, 0, 0); state.time=cfra; psys_get_particle_state(&sim, i, &state, 1); vertco=CDDM_get_vert(explode,v)->co; - mul_m4_v3(ob->obmat,vertco); - VECSUB(vertco,vertco,loc0); + sub_v3_v3(vertco, birth.co); /* apply rotation, size & location */ - mul_qt_v3(state.rot,vertco); + sub_qt_qtqt(rot, state.rot, birth.rot); + mul_qt_v3(rot, vertco); + if(emd->flag & eExplodeFlag_PaSize) mul_v3_fl(vertco,pa->size); - VECADD(vertco,vertco,state.co); - mul_m4_v3(imat,vertco); + add_v3_v3(vertco, state.co); + + mul_m4_v3(imat, vertco); } } BLI_edgehashIterator_free(ehi); @@ -911,7 +911,7 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd, orig_v4 = source.v4; - if(facepa[i]!=totpart && cfra <= pa->time) + if(facepa[i]!=totpart && cfra < pa->time) mindex = totvert+totpart; else mindex = totvert+facepa[i]; -- cgit v1.2.3 From f6de4fecfa25f9d2da05755d2c3e14359518ce67 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 12 Jun 2011 13:35:17 +0000 Subject: Bugfix #27519 Full Sample AA (FSA) was failing in cases. Bug report was an empty scene (with compo nodes) linking in another .blend scene (with render). That case gave warning "FSA not supported with rendering". That now is allowed. Then I noticed FSA was giving corrupt sample buffers or crashes in cases, especially on first buffer, this appeared to be a missing compo tag on first sample buffer. Lastly, to make FSA render a tiny bit less frustrating: added render window statistic to show which of the FSA steps is being done. --- source/blender/editors/render/render_internal.c | 3 + source/blender/render/extern/include/RE_pipeline.h | 2 +- source/blender/render/intern/source/pipeline.c | 101 ++++++++++++++------- 3 files changed, 72 insertions(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index 6191ec9c035..d4de1386871 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -302,6 +302,9 @@ static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str) BLI_timestr(rs->lastframetime, info_time_str); spos+= sprintf(spos, "Time:%s ", info_time_str); + if(rs->curfsa) + spos+= sprintf(spos, "| Full Sample %d ", rs->curfsa); + if(rs->infostr && rs->infostr[0]) spos+= sprintf(spos, "| %s ", rs->infostr); diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 47230ab3089..23f301249ba 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -146,7 +146,7 @@ typedef struct RenderResult { typedef struct RenderStats { int cfra; int totface, totvert, totstrand, tothalo, totlamp, totpart; - short curfield, curblur, curpart, partsdone, convertdone; + short curfield, curblur, curpart, partsdone, convertdone, curfsa; double starttime, lastframetime; const char *infostr, *statstr; char scenename[32]; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 9c66f7f65ae..90f07586786 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2169,6 +2169,24 @@ static void render_scene(Render *re, Scene *sce, int cfra) do_render_fields_blur_3d(resc); } +/* helper call to detect if this scene needs a render, or if there's a any render layer to render */ +static int composite_needs_render(Scene *sce, int this_scene) +{ + bNodeTree *ntree= sce->nodetree; + bNode *node; + + if(ntree==NULL) return 1; + if(sce->use_nodes==0) return 1; + if((sce->r.scemode & R_DOCOMP)==0) return 1; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==CMP_NODE_R_LAYERS) + if(this_scene==0 || node->id==NULL || node->id==&sce->id) + return 1; + } + return 0; +} + static void tag_scenes_for_render(Render *re) { bNode *node; @@ -2177,7 +2195,8 @@ static void tag_scenes_for_render(Render *re) for(sce= re->main->scene.first; sce; sce= sce->id.next) sce->id.flag &= ~LIB_DOIT; - re->scene->id.flag |= LIB_DOIT; + if(RE_GetCamera(re) && composite_needs_render(re->scene, 1)) + re->scene->id.flag |= LIB_DOIT; if(re->scene->nodetree==NULL) return; @@ -2224,24 +2243,6 @@ static void ntree_render_scenes(Render *re) set_scene_bg(re->main, re->scene); } -/* helper call to detect if theres a composite with render-result node */ -static int composite_needs_render(Scene *sce) -{ - bNodeTree *ntree= sce->nodetree; - bNode *node; - - if(ntree==NULL) return 1; - if(sce->use_nodes==0) return 1; - if((sce->r.scemode & R_DOCOMP)==0) return 1; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type==CMP_NODE_R_LAYERS) - if(node->id==NULL || node->id==&sce->id) - return 1; - } - return 0; -} - /* bad call... need to think over proper method still */ static void render_composit_stats(void *UNUSED(arg), char *str) { @@ -2257,6 +2258,16 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree) float *rectf, filt[3][3]; int sample; + /* interaction callbacks */ + if(ntree) { + ntree->stats_draw= render_composit_stats; + ntree->test_break= re->test_break; + ntree->progress= re->progress; + ntree->sdh= re->sdh; + ntree->tbh= re->tbh; + ntree->prh= re->prh; + } + /* filtmask needs it */ R= *re; @@ -2264,25 +2275,27 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree) rectf= MEM_mapallocN(re->rectx*re->recty*sizeof(float)*4, "fullsample rgba"); for(sample=0; sampler.osa; sample++) { + Render *re1; RenderResult rres; int x, y, mask; - /* set all involved renders on the samplebuffers (first was done by render itself) */ + /* enable full sample print */ + R.i.curfsa= sample+1; + + /* set all involved renders on the samplebuffers (first was done by render itself, but needs tagged) */ /* also function below assumes this */ - if(sample) { - Render *re1; - tag_scenes_for_render(re); - for(re1= RenderGlobal.renderlist.first; re1; re1= re1->next) { - if(re1->scene->id.flag & LIB_DOIT) { - if(re1->r.scemode & R_FULL_SAMPLE) { + tag_scenes_for_render(re); + for(re1= RenderGlobal.renderlist.first; re1; re1= re1->next) { + if(re1->scene->id.flag & LIB_DOIT) { + if(re1->r.scemode & R_FULL_SAMPLE) { + if(sample) read_render_result(re1, sample); - ntreeCompositTagRender(re1->scene); /* ensure node gets exec to put buffers on stack */ - } + ntreeCompositTagRender(re1->scene); /* ensure node gets exec to put buffers on stack */ } } } - + /* composite */ if(ntree) { ntreeCompositTagRender(re->scene); @@ -2325,6 +2338,17 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree) break; } + /* clear interaction callbacks */ + if(ntree) { + ntree->stats_draw= NULL; + ntree->test_break= NULL; + ntree->progress= NULL; + ntree->tbh= ntree->sdh= ntree->prh= NULL; + } + + /* disable full sample print */ + R.i.curfsa= 0; + BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); if(re->result->rectf) MEM_freeN(re->result->rectf); @@ -2364,8 +2388,10 @@ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree) } /* own render result should be read/allocated */ - if(re->scene->id.flag & LIB_DOIT) + if(re->scene->id.flag & LIB_DOIT) { RE_ReadRenderResult(re->scene, re->scene); + re->scene->id.flag &= ~LIB_DOIT; + } /* and now we can draw (result is there) */ re->display_init(re->dih, re->result); @@ -2383,12 +2409,21 @@ static void do_render_composite_fields_blur_3d(Render *re) /* INIT seeding, compositor can use random texture */ BLI_srandom(re->r.cfra); - if(composite_needs_render(re->scene)) { + if(composite_needs_render(re->scene, 1)) { /* save memory... free all cached images */ ntreeFreeCache(ntree); do_render_fields_blur_3d(re); - } else { + } + else { + /* ensure new result gets added, like for regular renders */ + BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); + + RE_FreeRenderResult(re->result); + re->result= new_render_result(re, &re->disprect, 0, RR_USEMEM); + + BLI_rw_mutex_unlock(&re->resultmutex); + /* scene render process already updates animsys */ update_newframe = 1; } @@ -2724,7 +2759,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo } if(scene->r.scemode & R_FULL_SAMPLE) { - if(composite_needs_render(scene)==0) { + if(composite_needs_render(scene, 0)==0) { error(erh, "Full Sample AA not supported without 3d rendering"); return 0; } -- cgit v1.2.3 From 5745f99deed89e547da87235f934c477675dd747 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 12 Jun 2011 23:51:30 +0000 Subject: =?UTF-8?q?Elbeem=20/=20Fluidsim=20update:=20a)=20Enable=20the=20p?= =?UTF-8?q?ossibility=20to=20remove=20the=20"air=20bubble"=20around=20subm?= =?UTF-8?q?erged=20collision=20object.=20This=20feature=20is=20enabled=20a?= =?UTF-8?q?s=20standard=20for=20new=20files.=20The=20code=20was=20found=20?= =?UTF-8?q?in=20elbeem=20by=20nudelZ,=20coded=20and=20provided=20by=20Nils?= =?UTF-8?q?=20Th=C3=BCrey=20(thanks!)=20b)=20Old=20baked=20files=20gets=20?= =?UTF-8?q?deleted=20if=20a=20new=20bake=20gets=20started=20(were=20overwr?= =?UTF-8?q?itten=20before=20and=20resulted=20in=20weird=20old=20bake=20+?= =?UTF-8?q?=20new=20bake=20mixture)=20(idea=20by=20nudelZ)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/blender/editors/physics/physics_fluid.c | 55 ++++++++++++++++++++-- source/blender/makesdna/DNA_object_fluidsim.h | 5 +- source/blender/makesrna/intern/rna_fluidsim.c | 8 +++- .../blender/modifiers/intern/MOD_fluidsim_util.c | 10 ++-- 4 files changed, 68 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 4aa9b942cf3..d54048546fe 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -56,6 +56,7 @@ #include "DNA_object_fluidsim.h" #include "BLI_blenlib.h" +#include "BLI_fileops.h" #include "BLI_threads.h" #include "BLI_math.h" #include "BLI_utildefines.h" @@ -125,7 +126,7 @@ static void get_fluid_gravity(float *gravity, Scene *scene, FluidsimSettings *fs if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) { copy_v3_v3(gravity, scene->physics_settings.gravity); } else { - copy_v3_v3(gravity, &fss->gravx); + copy_v3_v3(gravity, fss->grav); } } @@ -442,8 +443,8 @@ static void fluid_init_all_channels(bContext *C, Object *UNUSED(fsDomain), Fluid for (fobj=fobjects->first; fobj; fobj=fobj->next) { Object *ob = fobj->object; FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim); - float active= (float)(fluidmd->fss->flag & OB_FLUIDSIM_ACTIVE); - float rot_d[3], old_rot[3] = {0.f, 0.f, 0.f}; + float active= (float)(fluidmd->fss->flag && OB_FLUIDSIM_ACTIVE); + float rot_d[3] = {0.f, 0.f, 0.f}, old_rot[3] = {0.f, 0.f, 0.f}; if (ELEM(fluidmd->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE)) continue; @@ -809,6 +810,44 @@ static void fluidbake_free_data(FluidAnimChannels *channels, ListBase *fobjects, } } +/* copied from rna_fluidsim.c: fluidsim_find_lastframe() */ +static void fluidsim_delete_until_lastframe(FluidsimSettings *fss) +{ + char targetDir[FILE_MAXFILE+FILE_MAXDIR], targetFile[FILE_MAXFILE+FILE_MAXDIR]; + char targetDirVel[FILE_MAXFILE+FILE_MAXDIR], targetFileVel[FILE_MAXFILE+FILE_MAXDIR]; + char previewDir[FILE_MAXFILE+FILE_MAXDIR], previewFile[FILE_MAXFILE+FILE_MAXDIR]; + int curFrame = 1, exists = 0; + + BLI_snprintf(targetDir, sizeof(targetDir), "%sfluidsurface_final_####.bobj.gz", fss->surfdataPath); + BLI_snprintf(targetDirVel, sizeof(targetDir), "%sfluidsurface_final_####.bvel.gz", fss->surfdataPath); + BLI_snprintf(previewDir, sizeof(targetDir), "%sfluidsurface_preview_####.bobj.gz", fss->surfdataPath); + + BLI_path_abs(targetDir, G.main->name); + BLI_path_abs(targetDirVel, G.main->name); + BLI_path_abs(previewDir, G.main->name); + + do { + BLI_strncpy(targetFile, targetDir, sizeof(targetFile)); + BLI_strncpy(targetFileVel, targetDirVel, sizeof(targetFileVel)); + BLI_strncpy(previewFile, previewDir, sizeof(previewFile)); + + BLI_path_frame(targetFile, curFrame, 0); + BLI_path_frame(targetFileVel, curFrame, 0); + BLI_path_frame(previewFile, curFrame, 0); + + curFrame++; + + if(exists = BLI_exist(targetFile)) + { + BLI_delete(targetFile, 0, 0); + BLI_delete(targetFileVel, 0, 0); + BLI_delete(previewFile, 0, 0); + } + } while(exists); + + return; +} + static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) { Scene *scene= CTX_data_scene(C); @@ -878,6 +917,9 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) // reset last valid frame domainSettings->lastgoodframe = -1; + + /* delete old baked files */ + fluidsim_delete_until_lastframe(domainSettings); /* rough check of settings... */ if(domainSettings->previewresxyz > domainSettings->resolutionxyz) { @@ -1018,6 +1060,13 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) else if (domainSettings->typeFlags&OB_FSBND_PARTSLIP) fsset->domainobsType = FLUIDSIM_OBSTACLE_PARTSLIP; else if (domainSettings->typeFlags&OB_FSBND_FREESLIP) fsset->domainobsType = FLUIDSIM_OBSTACLE_FREESLIP; fsset->domainobsPartslip = domainSettings->partSlipValue; + + /* use domainobsType also for surface generation flag (bit: >=64) */ + if(domainSettings->typeFlags & OB_FSSG_NOOBS) + fsset->mFsSurfGenSetting = FLUIDSIM_FSSG_NOOBS; + else + fsset->mFsSurfGenSetting = 0; // "normal" mode + fsset->generateVertexVectors = (domainSettings->domainNovecgen==0); // init blender domain transform matrix diff --git a/source/blender/makesdna/DNA_object_fluidsim.h b/source/blender/makesdna/DNA_object_fluidsim.h index 6f4c16cb7f3..578bf8dd415 100644 --- a/source/blender/makesdna/DNA_object_fluidsim.h +++ b/source/blender/makesdna/DNA_object_fluidsim.h @@ -69,7 +69,7 @@ typedef struct FluidsimSettings { short viscosityMode; short viscosityExponent; /* gravity strength */ - float gravx,gravy,gravz; + float grav[3]; /* anim start end time (in seconds) */ float animStart, animEnd; /* bake start end time (in blender frames) */ @@ -161,6 +161,9 @@ typedef struct FluidsimSettings { #define OB_FSBND_FREESLIP (1<<(OB_TYPEFLAG_START+4)) #define OB_FSINFLOW_LOCALCOORD (1<<(OB_TYPEFLAG_START+5)) +/* surface generation flag (part of enabling chapter 6 of "Free Surface Flows with Moving and Deforming Objects for LBM") */ +#define OB_FSSG_NOOBS (1<<(OB_TYPEFLAG_START+6)) + // guiDisplayMode particle flags #define OB_FSDOM_GEOM 1 #define OB_FSDOM_PREVIEW 2 diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c index 7c93ae4168b..1ba2e32502f 100644 --- a/source/blender/makesrna/intern/rna_fluidsim.c +++ b/source/blender/makesrna/intern/rna_fluidsim.c @@ -312,7 +312,7 @@ static void rna_def_fluidsim_domain(BlenderRNA *brna) /* advanced settings */ prop= RNA_def_property(srna, "gravity", PROP_FLOAT, PROP_ACCELERATION); - RNA_def_property_float_sdna(prop, NULL, "gravx"); + RNA_def_property_float_sdna(prop, NULL, "grav"); RNA_def_property_array(prop, 3); RNA_def_property_range(prop, -1000.1, 1000.1); RNA_def_property_ui_text(prop, "Gravity", "Gravity in X, Y and Z direction"); @@ -384,6 +384,12 @@ static void rna_def_fluidsim_domain(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Generate Speed Vectors", "Generate speed vectors for vector blur"); + /* no collision object surface */ + prop= RNA_def_property(srna, "surface_noobs", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "typeFlags", OB_FSSG_NOOBS); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, "Hide fluid surface", ""); + /* particles */ prop= RNA_def_property(srna, "tracer_particles", PROP_INT, PROP_NONE); diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c index 61345427d1c..277f0852f90 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.c +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c @@ -90,10 +90,10 @@ void fluidsim_init(FluidsimModifierData *fluidmd) fss->viscosityValue = 1.0; fss->viscosityExponent = 6; - // dg TODO: change this to [] - fss->gravx = 0.0; - fss->gravy = 0.0; - fss->gravz = -9.81; + fss->grav[0] = 0.0; + fss->grav[1] = 0.0; + fss->grav[2] = -9.81; + fss->animStart = 0.0; fss->animEnd = 4.0; fss->gstar = 0.005; // used as normgstar @@ -111,7 +111,7 @@ void fluidsim_init(FluidsimModifierData *fluidmd) // no bounding box needed // todo - reuse default init from elbeem! - fss->typeFlags = OB_FSBND_PARTSLIP; + fss->typeFlags = OB_FSBND_PARTSLIP | OB_FSSG_NOOBS; fss->domainNovecgen = 0; fss->volumeInitType = 1; // volume fss->partSlipValue = 0.2; -- cgit v1.2.3 From ef1824cdcb9d78dd22316d48fd2d9c8bb6f41fa3 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 13 Jun 2011 00:02:23 +0000 Subject: Elbeem / Fluidsim: a) Also fixed an "upcomming" bug in regard of gravx,y,z now converted into an array. b) Little typo fix --- source/blender/editors/physics/physics_fluid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index d54048546fe..d54d608d2c7 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -443,7 +443,7 @@ static void fluid_init_all_channels(bContext *C, Object *UNUSED(fsDomain), Fluid for (fobj=fobjects->first; fobj; fobj=fobj->next) { Object *ob = fobj->object; FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim); - float active= (float)(fluidmd->fss->flag && OB_FLUIDSIM_ACTIVE); + float active= (float)(fluidmd->fss->flag & OB_FLUIDSIM_ACTIVE); float rot_d[3] = {0.f, 0.f, 0.f}, old_rot[3] = {0.f, 0.f, 0.f}; if (ELEM(fluidmd->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE)) -- cgit v1.2.3 From a6b23a00a4286999518a50231af64886753993e9 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 13 Jun 2011 12:03:05 +0000 Subject: Bugfix #27537 Using texture properties, the material nodes now re-render previews too. --- source/blender/makesrna/intern/rna_texture.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 3a80207ba15..9e3a31ddb2e 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -135,6 +135,7 @@ static void rna_Texture_update(Main *bmain, Scene *scene, PointerRNA *ptr) DAG_id_tag_update(&tex->id, 0); WM_main_add_notifier(NC_TEXTURE, tex); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); } static void rna_Texture_voxeldata_update(Main *bmain, Scene *scene, PointerRNA *ptr) -- cgit v1.2.3 From 97b966f2d6811a8476bfc42a69551073cb96a9cb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 13 Jun 2011 12:03:13 +0000 Subject: Fix #27594: non-active object in weight paint mode doesn't free memory. Also removed some commented out 2.4x code that is already replaced. --- source/blender/editors/util/ed_util.c | 25 ++++------------------ source/blender/windowmanager/intern/wm_init_exit.c | 9 -------- 2 files changed, 4 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c index 705fb83264c..3dd7514429e 100644 --- a/source/blender/editors/util/ed_util.c +++ b/source/blender/editors/util/ed_util.c @@ -106,10 +106,6 @@ void ED_editors_exit(bContext *C) if(sce->obedit) { Object *ob= sce->obedit; - /* global in meshtools... */ - mesh_octree_table(NULL, NULL, NULL, 'e'); - mesh_mirrtopo_table(NULL, 'e'); - if(ob) { if(ob->type==OB_MESH) { Mesh *me= ob->data; @@ -122,26 +118,13 @@ void ED_editors_exit(bContext *C) else if(ob->type==OB_ARMATURE) { ED_armature_edit_free(ob); } - else if(ob->type==OB_FONT) { - // free_editText(); - } - // else if(ob->type==OB_MBALL) - // BLI_freelistN(&editelems); - // free_editLatt(); - // free_posebuf(); // XXX this is still a global... - } - } - else if(sce->basact && sce->basact->object) { - Object *ob= sce->basact->object; - - /* if weight-painting is on, free mesh octree data */ - if(ob->mode & OB_MODE_WEIGHT_PAINT) { - mesh_octree_table(NULL, NULL, NULL, 'e'); - mesh_mirrtopo_table(NULL, 'e'); } } } - + + /* global in meshtools... */ + mesh_octree_table(NULL, NULL, NULL, 'e'); + mesh_mirrtopo_table(NULL, 'e'); } diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 2e4148ca51d..d57c94a5826 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -328,7 +328,6 @@ static void free_openrecent(void) /* bad stuff*/ -extern ListBase editelems; extern wchar_t *copybuf; extern wchar_t *copybufinfo; @@ -394,10 +393,6 @@ void WM_exit(bContext *C) free_anim_drivers_copybuf(); free_fmodifiers_copybuf(); free_posebuf(); -// free_vertexpaint(); -// free_imagepaint(); - -// fsmenu_free(); BLF_exit(); @@ -420,10 +415,6 @@ void WM_exit(bContext *C) BPY_python_end(); #endif - if (!G.background) { -// XXX UI_filelist_free_icons(); - } - GPU_buffer_pool_free(NULL); GPU_free_unused_buffers(); GPU_extensions_exit(); -- cgit v1.2.3 From a4216cb1d4336bd2244f4519398db0b9f19833ad Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 13 Jun 2011 13:54:21 +0000 Subject: Transformation Channel Driver Variables - "Proper Localspace" By popular demand, the "Transformation Channel" driver variable type now has a "local space" transform space option which uses the same magic that constraints use for defining local-space. This is what many bug reporters and feature requesters have moaned about for a while now, so after reviewing several of the bug reports which lead to the current situation, here is what has been much-wanted for so long! In order to implement this, I've: - renamed the old "Local Space" option here to "Transformation Space", in order to prevent old rigs breaking. This has also been kept, as it is useful for #21384 (though perhaps with this new option it isn't needed anymore) - reviewed my fix for #20870 (IIRC, a Durian-era bug), which related to the non-uniqueness of matrix->euler decomposition --- source/blender/blenkernel/intern/fcurve.c | 70 +++++++++++++++++----- source/blender/editors/space_graph/graph_buttons.c | 8 +-- source/blender/makesdna/DNA_anim_types.h | 6 +- source/blender/makesrna/intern/rna_access.c | 2 +- source/blender/makesrna/intern/rna_fcurve.c | 13 +++- 5 files changed, 75 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index d6a9d950015..be2a6a762ee 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -42,6 +42,7 @@ #include "MEM_guardedalloc.h" #include "DNA_anim_types.h" +#include "DNA_constraint_types.h" #include "DNA_object_types.h" #include "BLI_blenlib.h" @@ -52,6 +53,7 @@ #include "BKE_animsys.h" #include "BKE_action.h" #include "BKE_armature.h" +#include "BKE_constraint.h" #include "BKE_curve.h" #include "BKE_global.h" #include "BKE_object.h" @@ -1197,7 +1199,7 @@ static float dvar_eval_transChan (ChannelDriver *driver, DriverVar *dvar) Object *ob= (Object *)dtar_id_ensure_proxy_from(dtar->id); bPoseChannel *pchan; float mat[4][4]; - float eul[3] = {0.0f,0.0f,0.0f}; + float oldEul[3] = {0.0f,0.0f,0.0f}; short useEulers=0, rotOrder=ROT_MODE_EUL; /* check if this target has valid data */ @@ -1210,36 +1212,62 @@ static float dvar_eval_transChan (ChannelDriver *driver, DriverVar *dvar) /* try to get posechannel */ pchan= get_pose_channel(ob->pose, dtar->pchan_name); - /* check if object or bone, and get transform matrix accordingly */ + /* check if object or bone, and get transform matrix accordingly + * - "useEulers" code is used to prevent the problems associated with non-uniqueness + * of euler decomposition from matrices [#20870] + * - localspace is for [#21384], where parent results are not wanted + * but local-consts is for all the common "corrective-shapes-for-limbs" situations + */ if (pchan) { /* bone */ if (pchan->rotmode > 0) { - VECCOPY(eul, pchan->eul); + VECCOPY(oldEul, pchan->eul); rotOrder= pchan->rotmode; useEulers = 1; } if (dtar->flag & DTAR_FLAG_LOCALSPACE) { - /* specially calculate local matrix, since chan_mat is not valid - * since it stores delta transform of pose_mat so that deforms work - */ - pchan_to_mat4(pchan, mat); + if (dtar->flag & DTAR_FLAG_LOCAL_CONSTS) { + /* just like how the constraints do it! */ + copy_m4_m4(mat, pchan->pose_mat); + constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, CONSTRAINT_SPACE_LOCAL); + } + else { + /* specially calculate local matrix, since chan_mat is not valid + * since it stores delta transform of pose_mat so that deforms work + * so it cannot be used here for "transform" space + */ + pchan_to_mat4(pchan, mat); + } } - else + else { + /* worldspace matrix */ mul_m4_m4m4(mat, pchan->pose_mat, ob->obmat); + } } else { /* object */ if (ob->rotmode > 0) { - VECCOPY(eul, ob->rot); + VECCOPY(oldEul, ob->rot); rotOrder= ob->rotmode; useEulers = 1; } - if (dtar->flag & DTAR_FLAG_LOCALSPACE) - object_to_mat4(ob, mat); - else + if (dtar->flag & DTAR_FLAG_LOCALSPACE) { + if (dtar->flag & DTAR_FLAG_LOCAL_CONSTS) { + /* just like how the constraints do it! */ + copy_m4_m4(mat, ob->obmat); + constraint_mat_convertspace(ob, NULL, mat, CONSTRAINT_SPACE_WORLD, CONSTRAINT_SPACE_LOCAL); + } + else { + /* transforms to matrix */ + object_to_mat4(ob, mat); + } + } + else { + /* worldspace matrix - just the good-old one */ copy_m4_m4(mat, ob->obmat); + } } /* check which transform */ @@ -1255,9 +1283,21 @@ static float dvar_eval_transChan (ChannelDriver *driver, DriverVar *dvar) return scale[dtar->transChan - DTAR_TRANSCHAN_SCALEX]; } else if (dtar->transChan >= DTAR_TRANSCHAN_ROTX) { - /* extract euler rotation (if needed), and choose the right axis */ - if ((dtar->flag & DTAR_FLAG_LOCALSPACE)==0 || (useEulers == 0)) - mat4_to_eulO(eul, rotOrder, mat); + /* extract rotation as eulers (if needed) + * - definitely if rotation order isn't eulers already + * - if eulers, then we have 2 options: + * a) decompose transform matrix as required, then try to make eulers from + * there compatible with original values + * b) [NOT USED] directly use the original values (no decomposition) + * - only an option for "transform space", if quality is really bad with a) + */ + float eul[3]; + + mat4_to_eulO(eul, rotOrder, mat); + + if (useEulers) { + compatible_eul(eul, oldEul); + } return eul[dtar->transChan - DTAR_TRANSCHAN_ROTX]; } diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index fb1144b4fa8..e820fdbb642 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -493,7 +493,7 @@ static void graph_panel_driverVar__transChan(uiLayout *layout, ID *id, DriverVar DriverTarget *dtar= &dvar->targets[0]; Object *ob = (Object *)dtar->id; PointerRNA dtar_ptr; - uiLayout *col, *row; + uiLayout *col, *subcol; /* initialise RNA pointer to the target */ RNA_pointer_create(id, &RNA_DriverTarget, dtar, &dtar_ptr); @@ -509,9 +509,9 @@ static void graph_panel_driverVar__transChan(uiLayout *layout, ID *id, DriverVar uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA); } - row= uiLayoutRow(layout, 1); - uiItemR(row, &dtar_ptr, "transform_type", 0, "", ICON_NONE); - uiItemR(row, &dtar_ptr, "use_local_space_transform", 0, NULL, ICON_NONE); + subcol= uiLayoutColumn(layout, 1); + uiItemR(subcol, &dtar_ptr, "transform_type", 0, NULL, ICON_NONE); + uiItemR(subcol, &dtar_ptr, "transform_space", 0, "Space", ICON_NONE); } /* driver settings for active F-Curve (only for 'Drivers' mode) */ diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index c650d15722d..00a9786fc6f 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -289,8 +289,12 @@ typedef enum eDriverTarget_Flag { DTAR_FLAG_STRUCT_REF = (1<<0), /* idtype can only be 'Object' */ DTAR_FLAG_ID_OB_ONLY = (1<<1), - /* toggles localspace (where transforms are manually obtained) */ + + /* "localspace" flags */ + /* base flag - basically "pre parent+constraints" */ DTAR_FLAG_LOCALSPACE = (1<<2), + /* include constraints transformed to space including parents */ + DTAR_FLAG_LOCAL_CONSTS = (1<<3), } eDriverTarget_Flag; /* Transform Channels for Driver Targets */ diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 9b8db639cbb..cc18d8d9d0d 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -3102,7 +3102,7 @@ static char *rna_path_token(const char **path, char *fixedbuf, int fixedlen, int /* 2 kinds of lookups now, quoted or unquoted */ quote= *p; - if(quote != '"') + if(quote != '"') /* " - this comment is hack for Aligorith's text editor's sanity */ quote= 0; if(quote==0) { diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 263978221bb..ab3665fb8ff 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1104,6 +1104,12 @@ static void rna_def_drivertarget(BlenderRNA *brna) {DTAR_TRANSCHAN_SCALEY, "SCALE_Y", 0, "Y Scale", ""}, {DTAR_TRANSCHAN_SCALEZ, "SCALE_Z", 0, "Z Scale", ""}, {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_local_space_items[] = { + {0, "WORLD_SPACE", 0, "World Space", "Transforms include effects of parenting/restpose and constraints"}, + {DTAR_FLAG_LOCALSPACE, "TRANSFORM_SPACE", 0, "Transform Space", "Transforms don't include parenting/restpose or constraints"}, + {DTAR_FLAG_LOCALSPACE|DTAR_FLAG_LOCAL_CONSTS, "LOCAL_SPACE", 0, "Local Space", "Transforms include effects of constraints but not parenting/restpose"}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "DriverTarget", NULL); RNA_def_struct_ui_text(srna, "Driver Target", "Source of input values for driver variables"); @@ -1144,9 +1150,10 @@ static void rna_def_drivertarget(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Type", "Driver variable type"); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); - prop= RNA_def_property(srna, "use_local_space_transform", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", DTAR_FLAG_LOCALSPACE); - RNA_def_property_ui_text(prop, "Local Space", "Use transforms in Local Space (as opposed to the worldspace default)"); + prop= RNA_def_property(srna, "transform_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); + RNA_def_property_enum_items(prop, prop_local_space_items); + RNA_def_property_ui_text(prop, "Transform Space", "Space in which transforms are used"); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); } -- cgit v1.2.3 From aff9f8ce81565483e5cbd128186e9dbdb63d7794 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 13 Jun 2011 14:11:29 +0000 Subject: Fix #27570: apply button for modifiers required the modifier to be enabled, we now just enable the modifier before apply. Patch Bastien Montagne (with some tweaks), thanks! --- source/blender/editors/object/object_modifier.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 32844e6af5d..fca35683c6f 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -399,6 +399,13 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene * static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, ModifierData *md) { + ModifierTypeInfo *mti= modifierType_getInfo(md->type); + + if (mti->isDisabled && mti->isDisabled(md, 0)) { + BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); + return 0; + } + if (ob->type==OB_MESH) { DerivedMesh *dm; Mesh *me= ob->data; @@ -442,7 +449,7 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, { ModifierTypeInfo *mti= modifierType_getInfo(md->type); - if (!(md->mode&eModifierMode_Realtime) || (mti->isDisabled && mti->isDisabled(md, 0))) { + if (mti->isDisabled && mti->isDisabled(md, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; } @@ -484,7 +491,7 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface); } } - } + } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { Curve *cu; int numVerts; @@ -530,6 +537,8 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, ModifierData *md, int mode) { + int prev_mode; + if (scene->obedit) { BKE_report(reports, RPT_ERROR, "Modifiers cannot be applied in editmode"); return 0; @@ -541,12 +550,20 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi if (md!=ob->modifiers.first) BKE_report(reports, RPT_INFO, "Applied modifier was not first, result may not be as expected."); + /* allow apply of a not-realtime modifier, by first re-enabling realtime. */ + prev_mode= md->mode; + md->mode |= eModifierMode_Realtime; + if (mode == MODIFIER_APPLY_SHAPE) { - if (!modifier_apply_shape(reports, scene, ob, md)) + if (!modifier_apply_shape(reports, scene, ob, md)) { + md->mode= prev_mode; return 0; + } } else { - if (!modifier_apply_obdata(reports, scene, ob, md)) + if (!modifier_apply_obdata(reports, scene, ob, md)) { + md->mode= prev_mode; return 0; + } } BLI_remlink(&ob->modifiers, md); -- cgit v1.2.3 From 4ca197ba590331246fbbcf7a78724ae3343ed0fc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 13 Jun 2011 14:56:47 +0000 Subject: Fix #27540: bug with bump mapping + reflection texture coordinates + nodes. --- source/blender/render/intern/source/render_texture.c | 4 +--- source/blender/render/intern/source/shadeinput.c | 10 ---------- 2 files changed, 1 insertion(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 5f5dab94ba3..c4587b83fcd 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -2192,6 +2192,7 @@ void do_material_tex(ShadeInput *shi) } } else if(mtex->texco==TEXCO_REFL) { + calc_R_ref(shi); co= shi->ref; dx= shi->dxref; dy= shi->dyref; } else if(mtex->texco==TEXCO_NORM) { @@ -2509,9 +2510,6 @@ void do_material_tex(ShadeInput *shi) shi->orn[0]= -shi->vn[0]; shi->orn[1]= -shi->vn[1]; shi->orn[2]= -shi->vn[2]; - - /* reflection vector */ - calc_R_ref(shi); } } diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index 77141d9b445..e22ddd28dda 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -543,11 +543,6 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert shi->orn[2]= -shi->vn[2]; } - if(texco & TEXCO_REFL) { - /* mirror reflection color textures (and envmap) */ - calc_R_ref(shi); /* wrong location for normal maps! XXXXXXXXXXXXXX */ - } - if(texco & TEXCO_STRESS) { /* not supported */ } @@ -1205,11 +1200,6 @@ void shade_input_set_shade_texco(ShadeInput *shi) shi->orn[2]= -shi->vn[2]; } - if(texco & TEXCO_REFL) { - /* mirror reflection color textures (and envmap) */ - calc_R_ref(shi); /* wrong location for normal maps! XXXXXXXXXXXXXX */ - } - if(texco & TEXCO_STRESS) { float *s1, *s2, *s3; -- cgit v1.2.3 From 0af94b45e4220b213df3d344c71abc47abdd4612 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 13 Jun 2011 15:07:36 +0000 Subject: Fix [#27463] COLLADA light quadratic attenuation exported wrong? Reported by Pelle Johnsen Fix falloff import. Point light and Spot light always were set to inverse quad, instead of choosing the proper one based on imported values. The --- source/blender/collada/DocumentImporter.cpp | 14 ++++++++++---- source/blender/collada/LightExporter.cpp | 6 ++---- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 72341e1caa2..10e6d611cc5 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -959,12 +959,12 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) if(IS_EQ(linatt, 0.0f) && quadatt > 0.0f) { att2 = quadatt; - d = (1.0f/quadatt) * 2; + d = sqrt(1.0f/quadatt); } // linear light else if(IS_EQ(quadatt, 0.0f) && linatt > 0.0f) { att1 = linatt; - d = (1.0f/linatt) * 2; + d = (1.0f/linatt); } else if (IS_EQ(constatt, 1.0f)) { att1 = 1.0f; } else { @@ -987,9 +987,12 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) case COLLADAFW::Light::SPOT_LIGHT: { lamp->type = LA_SPOT; - lamp->falloff_type = LA_FALLOFF_INVSQUARE; lamp->att1 = att1; lamp->att2 = att2; + if(IS_EQ(att1, 0.0f) && att2 > 0) + lamp->falloff_type = LA_FALLOFF_INVSQUARE; + if(IS_EQ(att2, 0.0f) && att1 > 0) + lamp->falloff_type = LA_FALLOFF_INVLINEAR; lamp->spotsize = light->getFallOffAngle().getValue(); lamp->spotblend = light->getFallOffExponent().getValue(); } @@ -1004,9 +1007,12 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) case COLLADAFW::Light::POINT_LIGHT: { lamp->type = LA_LOCAL; - lamp->falloff_type = LA_FALLOFF_INVSQUARE; lamp->att1 = att1; lamp->att2 = att2; + if(IS_EQ(att1, 0.0f) && att2 > 0) + lamp->falloff_type = LA_FALLOFF_INVSQUARE; + if(IS_EQ(att2, 0.0f) && att1 > 0) + lamp->falloff_type = LA_FALLOFF_INVLINEAR; } break; case COLLADAFW::Light::UNDEFINED: diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 89599c62768..12ccf77f6ad 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -68,20 +68,18 @@ void LightsExporter::operator()(Object *ob) std::string la_name(id_name(la)); COLLADASW::Color col(la->r * la->energy, la->g * la->energy, la->b * la->energy); float e, d, constatt, linatt, quadatt; - float r; d = la->dist; - r = d/2.0f; constatt = 1.0f; if(la->falloff_type==LA_FALLOFF_INVLINEAR) { - linatt = 1.0f / r; + linatt = 1.0f / d; quadatt = 0.0f; } else { linatt = 0.0f; - quadatt = 1.0f / r; + quadatt = 1.0f / (d * d); } // sun -- cgit v1.2.3 From a2dda7c74d74770aeceb37924a1ef8e0d90ae57b Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 13 Jun 2011 17:08:33 +0000 Subject: BGE Patch: [#27425] Allow to change the damping of the camera actuator ########## original name: "Allow to change the strenght of the "go behind" constraint of the camera actuator" The camera actuator is an actuator that drive the camera to follow an object, with a set of constraint. Currently, when the object followed rotate on himself (like a person, or an helicopter), the camera is really slow to go behind (at least 10 seconds). This patch gives the UI to tweak the strenght of the 'go behind'[named damping] constraint. ########### epydocs (rst) updated too --- source/blender/blenkernel/intern/sca.c | 1 + source/blender/blenloader/intern/readfile.c | 15 +++++++++++++++ source/blender/editors/space_logic/logic_window.c | 2 ++ source/blender/makesdna/DNA_actuator_types.h | 2 +- source/blender/makesrna/intern/rna_actuator.c | 7 +++++++ 5 files changed, 26 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c index 16cef67ea6d..0d523599598 100644 --- a/source/blender/blenkernel/intern/sca.c +++ b/source/blender/blenkernel/intern/sca.c @@ -430,6 +430,7 @@ void init_actuator(bActuator *act) act->data= MEM_callocN(sizeof(bCameraActuator), "camact"); ca = act->data; ca->axis = ACT_CAMERA_X; + ca->damping = 1.0/32.0; break; case ACT_EDIT_OBJECT: act->data= MEM_callocN(sizeof(bEditObjectActuator), "editobact"); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 9d3035057ba..1e604c45772 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11647,6 +11647,21 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + + { + /* add default value for behind strength of camera actuator */ + Object *ob; + bActuator *act; + for(ob = main->object.first; ob; ob= ob->id.next) { + for(act= ob->actuators.first; act; act= act->next) { + if (act->type == ACT_CAMERA) { + bCameraActuator *ba= act->data; + + ba->damping = 1.0/32.0; + } + } + } + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index bce492f5a04..019ce2a714a 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3786,6 +3786,8 @@ static void draw_actuator_camera(uiLayout *layout, PointerRNA *ptr) row = uiLayoutRow(layout, 1); uiItemR(row, ptr, "min", 0, NULL, ICON_NONE); uiItemR(row, ptr, "max", 0, NULL, ICON_NONE); + + uiItemR(layout, ptr, "damping", 0, NULL, ICON_NONE); } static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext *C) diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 683d8142cc9..887a0300ee2 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -133,7 +133,7 @@ typedef struct bIpoActuator { typedef struct bCameraActuator { struct Object *ob; float height, min, max; - float pad; + float damping; short pad1, axis; float pad2; } bCameraActuator ; diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index c7cf511d5c7..cddba59f979 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -922,6 +922,13 @@ static void rna_def_camera_actuator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Max", ""); RNA_def_property_update(prop, NC_LOGIC, NULL); + prop= RNA_def_property(srna, "damping", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "damping"); + RNA_def_property_range(prop, 0, 10.0); + RNA_def_property_ui_range(prop, 0, 5.0, 1, 2); + RNA_def_property_ui_text(prop, "Damping", "Specify the strength of the constraint that drive the camera behind the target"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + /* x/y */ prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "axis"); -- cgit v1.2.3 From 975a78bb4fc9a91af4943d60539ac22b126227fc Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 13 Jun 2011 20:21:48 +0000 Subject: 2.5 Camera: * Increase "Ortho_scale" maximum from 1k to 4k, Request by francoisgfx. --- source/blender/makesrna/intern/rna_camera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c index 1705e2e5376..37912f810fc 100644 --- a/source/blender/makesrna/intern/rna_camera.c +++ b/source/blender/makesrna/intern/rna_camera.c @@ -133,7 +133,7 @@ void RNA_def_camera(BlenderRNA *brna) prop= RNA_def_property(srna, "ortho_scale", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "ortho_scale"); - RNA_def_property_range(prop, 0.01f, 1000.0f); + RNA_def_property_range(prop, 0.01f, 4000.0f); RNA_def_property_ui_text(prop, "Orthographic Scale", "Orthographic Camera scale (similar to zoom)"); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); -- cgit v1.2.3 From e6b0a779561afabe55af422da1d538b5e95cecc1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 01:04:11 +0000 Subject: fix [#27648] Weird shading behind grayed out negate checkbox --- source/blender/editors/interface/interface_widgets.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index c8e9244d431..28890117ec3 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -2876,7 +2876,11 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct ThemeUI *tui= &btheme->tui; uiFontStyle *fstyle= &style->widget; uiWidgetType *wt= NULL; - + + /* backup the clear color [#27648], box widget clears it */ + float clear_col[4]; + glGetFloatv(GL_COLOR_CLEAR_VALUE, clear_col); + /* handle menus separately */ if(but->dt==UI_EMBOSSP) { switch (but->type) { @@ -3073,6 +3077,9 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct if(but->dt!=UI_EMBOSSP) widget_disabled(&disablerect); } + + /* restore clear color incase it changed */ + glClearColor(clear_col[0], clear_col[1], clear_col[2], clear_col[3]); } void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect) -- cgit v1.2.3 From dd3b729d62743120250fa33a02200035cf9d53e9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 01:54:03 +0000 Subject: mask modifier was taking into account zero weighted verts. --- source/blender/modifiers/intern/MOD_mask.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c index b36d6848533..8f435cc6e4f 100644 --- a/source/blender/modifiers/intern/MOD_mask.c +++ b/source/blender/modifiers/intern/MOD_mask.c @@ -202,7 +202,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, if (BLI_ghash_haskey(boneHash, SET_INT_IN_POINTER(dvert[i].dw[j].def_nr))) { def_weight = &dvert[i].dw[j]; - break; + if(def_weight->weight != 0.0f) { + break; + } } } @@ -243,26 +245,16 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* add vertices which exist in vertexgroup into ghash for filtering */ for (i = 0; i < maxVerts; i++) { - MDeformWeight *def_weight = NULL; - int j; - - for (j= 0; j < dvert[i].totweight; j++) - { - if (dvert[i].dw[j].def_nr == defgrp_index) - { - def_weight = &dvert[i].dw[j]; - break; - } - } + const int weight_set= defvert_find_weight(dvert + i, defgrp_index) != 0.0f; /* check if include vert in vertHash */ if (mmd->flag & MOD_MASK_INV) { /* if this vert is in the vgroup, don't include it in vertHash */ - if (def_weight) continue; + if (weight_set) continue; } else { /* if this vert isn't in the vgroup, don't include it in vertHash */ - if (!def_weight) continue; + if (!weight_set) continue; } /* add to ghash for verts (numVerts acts as counter for mapping) */ -- cgit v1.2.3 From d3dbd2f5b496ae7f24951cded986cb9427f0af34 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 02:26:43 +0000 Subject: mask modifier: replace bone hash lookup with a boolean array to quickly check selection state. simple test gives ~28% speedup in building the vertex hash. (no functional change) --- source/blender/modifiers/intern/MOD_mask.c | 76 ++++++++++++++---------------- 1 file changed, 36 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c index 8f435cc6e4f..3e8c28ec163 100644 --- a/source/blender/modifiers/intern/MOD_mask.c +++ b/source/blender/modifiers/intern/MOD_mask.c @@ -45,6 +45,7 @@ #include "DNA_modifier_types.h" #include "DNA_object_types.h" +#include "BKE_action.h" /* get_pose_channel */ #include "BKE_cdderivedmesh.h" #include "BKE_mesh.h" #include "BKE_modifier.h" @@ -102,7 +103,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm= derivedData, *result= NULL; GHash *vertHash=NULL, *edgeHash, *faceHash; GHashIterator *hashIter; - MDeformVert *dvert= NULL; + MDeformVert *dvert= NULL, *dv; int numFaces=0, numEdges=0, numVerts=0; int maxVerts, maxEdges, maxFaces; int i; @@ -130,50 +131,46 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* if mode is to use selected armature bones, aggregate the bone groups */ if (mmd->mode == MOD_MASK_MODE_ARM) /* --- using selected bones --- */ { - GHash *vgroupHash, *boneHash; + GHash *vgroupHash; Object *oba= mmd->ob_arm; bPoseChannel *pchan; bDeformGroup *def; + char *bone_select_array; + int bone_select_tot= 0; /* check that there is armature object with bones to use, otherwise return original mesh */ - if (ELEM(NULL, mmd->ob_arm, mmd->ob_arm->pose)) - return derivedData; - + if (ELEM3(NULL, mmd->ob_arm, mmd->ob_arm->pose, ob->defbase.first)) + return derivedData; + + bone_select_array= MEM_mallocN(BLI_countlist(&ob->defbase) * sizeof(char), "mask array"); + + for (i = 0, def = ob->defbase.first; def; def = def->next, i++) + { + if (((pchan= get_pose_channel(oba->pose, def->name)) && pchan->bone && (pchan->bone->flag & BONE_SELECTED))) + { + bone_select_array[i]= TRUE; + bone_select_tot++; + } + else { + bone_select_array[i]= FALSE; + } + } + /* hashes for finding mapping of: * - vgroups to indices -> vgroupHash (string, int) * - bones to vgroup indices -> boneHash (index of vgroup, dummy) */ vgroupHash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "mask vgroup gh"); - boneHash= BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "mask bone gh"); /* build mapping of names of vertex groups to indices */ for (i = 0, def = ob->defbase.first; def; def = def->next, i++) BLI_ghash_insert(vgroupHash, def->name, SET_INT_IN_POINTER(i)); - /* get selected-posechannel <-> vertexgroup index mapping */ - for (pchan= oba->pose->chanbase.first; pchan; pchan= pchan->next) - { - /* check if bone is selected */ - // TODO: include checks for visibility too? - // FIXME: the depsgraph needs extensions to make this work in realtime... - if ( (pchan->bone) && (pchan->bone->flag & BONE_SELECTED) ) - { - /* check if hash has group for this bone */ - if (BLI_ghash_haskey(vgroupHash, pchan->name)) - { - int defgrp_index= GET_INT_FROM_POINTER(BLI_ghash_lookup(vgroupHash, pchan->name)); - - /* add index to hash (store under key only) */ - BLI_ghash_insert(boneHash, SET_INT_IN_POINTER(defgrp_index), pchan); - } - } - } - /* if no bones selected, free hashes and return original mesh */ - if (BLI_ghash_size(boneHash) == 0) + if (bone_select_tot == 0) { BLI_ghash_free(vgroupHash, NULL, NULL); - BLI_ghash_free(boneHash, NULL, NULL); + MEM_freeN(bone_select_array); return derivedData; } @@ -183,7 +180,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, if (dvert == NULL) { BLI_ghash_free(vgroupHash, NULL, NULL); - BLI_ghash_free(boneHash, NULL, NULL); + MEM_freeN(bone_select_array); return derivedData; } @@ -192,17 +189,16 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, vertHash= BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "mask vert gh"); /* add vertices which exist in vertexgroups into vertHash for filtering */ - for (i = 0; i < maxVerts; i++) + for (i= 0, dv= dvert; i < maxVerts; i++, dv++) { - MDeformWeight *def_weight = NULL; + MDeformWeight *dw= dvert->dw; int j; - - for (j= 0; j < dvert[i].totweight; j++) + + for (j= dv->totweight; j > 0; j--, dw++) { - if (BLI_ghash_haskey(boneHash, SET_INT_IN_POINTER(dvert[i].dw[j].def_nr))) + if (bone_select_array[dw->def_nr]) { - def_weight = &dvert[i].dw[j]; - if(def_weight->weight != 0.0f) { + if(dw->weight != 0.0f) { break; } } @@ -211,11 +207,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* check if include vert in vertHash */ if (mmd->flag & MOD_MASK_INV) { /* if this vert is in the vgroup, don't include it in vertHash */ - if (def_weight) continue; + if (dw) continue; } else { /* if this vert isn't in the vgroup, don't include it in vertHash */ - if (!def_weight) continue; + if (!dw) continue; } /* add to ghash for verts (numVerts acts as counter for mapping) */ @@ -225,7 +221,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* free temp hashes */ BLI_ghash_free(vgroupHash, NULL, NULL); - BLI_ghash_free(boneHash, NULL, NULL); + MEM_freeN(bone_select_array); } else /* --- Using Nominated VertexGroup only --- */ { @@ -243,9 +239,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, vertHash= BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "mask vert2 bh"); /* add vertices which exist in vertexgroup into ghash for filtering */ - for (i = 0; i < maxVerts; i++) + for (i= 0, dv= dvert; i < maxVerts; i++, dv++) { - const int weight_set= defvert_find_weight(dvert + i, defgrp_index) != 0.0f; + const int weight_set= defvert_find_weight(dv, defgrp_index) != 0.0f; /* check if include vert in vertHash */ if (mmd->flag & MOD_MASK_INV) { -- cgit v1.2.3 From c0dc197257ffac467ad5a16dfe083519135f0afe Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 04:05:58 +0000 Subject: edit DAG defines to make it easier to add more & modify. --- source/blender/blenkernel/BKE_depsgraph.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h index 14251fb1762..f36073ba841 100644 --- a/source/blender/blenkernel/BKE_depsgraph.h +++ b/source/blender/blenkernel/BKE_depsgraph.h @@ -51,22 +51,23 @@ struct GHash; /* **** DAG relation types *** */ /* scene link to object */ -#define DAG_RL_SCENE 1 +#define DAG_RL_SCENE (1<<0) /* object link to data */ -#define DAG_RL_DATA 2 +#define DAG_RL_DATA (1<<1) /* object changes object (parent, track, constraints) */ -#define DAG_RL_OB_OB 4 +#define DAG_RL_OB_OB (1<<2) /* object changes obdata (hooks, constraints) */ -#define DAG_RL_OB_DATA 8 +#define DAG_RL_OB_DATA (1<<3) /* data changes object (vertex parent) */ -#define DAG_RL_DATA_OB 16 +#define DAG_RL_DATA_OB (1<<4) /* data changes data (deformers) */ -#define DAG_RL_DATA_DATA 32 +#define DAG_RL_DATA_DATA (1<<5) -#define DAG_NO_RELATION 64 -#define DAG_RL_ALL 63 -#define DAG_RL_ALL_BUT_DATA 61 +#define DAG_NO_RELATION (1<<6) + +#define DAG_RL_ALL_BUT_DATA (DAG_RL_SCENE|DAG_RL_OB_OB|DAG_RL_OB_DATA|DAG_RL_DATA_OB|DAG_RL_DATA_DATA) +#define DAG_RL_ALL (DAG_RL_ALL_BUT_DATA|DAG_RL_DATA) typedef void (*graph_action_func)(void * ob, void **data); -- cgit v1.2.3 From 991634c1471abcbb6c4706aa789b83a7c6fd912c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 04:19:00 +0000 Subject: own mistake in recent mask commit. --- source/blender/modifiers/intern/MOD_mask.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c index 3e8c28ec163..94442d96367 100644 --- a/source/blender/modifiers/intern/MOD_mask.c +++ b/source/blender/modifiers/intern/MOD_mask.c @@ -191,7 +191,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* add vertices which exist in vertexgroups into vertHash for filtering */ for (i= 0, dv= dvert; i < maxVerts; i++, dv++) { - MDeformWeight *dw= dvert->dw; + MDeformWeight *dw= dv->dw; int j; for (j= dv->totweight; j > 0; j--, dw++) -- cgit v1.2.3 From f4452b2ee7dee80f6f238fbe328c63f87d4043e8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 05:19:16 +0000 Subject: revert own fix for [#27648], looks like this needs to work differently to be fixed. --- source/blender/editors/interface/interface_widgets.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 28890117ec3..b6e255b6758 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -2601,6 +2601,7 @@ static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int UNUSED( /* store the box bg as gl clearcolor, to retrieve later when drawing semi-transparent rects * over the top to indicate disabled buttons */ + /* XXX, this doesnt work right since the color applies to buttons outside the box too. */ glClearColor(wcol->inner[0]/255.0, wcol->inner[1]/255.0, wcol->inner[2]/255.0, 1.0); VECCOPY(wcol->inner, old_col); @@ -2877,10 +2878,6 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct uiFontStyle *fstyle= &style->widget; uiWidgetType *wt= NULL; - /* backup the clear color [#27648], box widget clears it */ - float clear_col[4]; - glGetFloatv(GL_COLOR_CLEAR_VALUE, clear_col); - /* handle menus separately */ if(but->dt==UI_EMBOSSP) { switch (but->type) { @@ -3077,9 +3074,6 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct if(but->dt!=UI_EMBOSSP) widget_disabled(&disablerect); } - - /* restore clear color incase it changed */ - glClearColor(clear_col[0], clear_col[1], clear_col[2], clear_col[3]); } void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect) -- cgit v1.2.3 From 5fd9bd8bc9ebfe6f6be9afab620b89d8369e745f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 14 Jun 2011 07:33:25 +0000 Subject: Fixed weird assignment inside condition statement. --- source/blender/editors/physics/physics_fluid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index d54d608d2c7..b573c77c7f3 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -837,7 +837,7 @@ static void fluidsim_delete_until_lastframe(FluidsimSettings *fss) curFrame++; - if(exists = BLI_exist(targetFile)) + if((exists = BLI_exist(targetFile))) { BLI_delete(targetFile, 0, 0); BLI_delete(targetFileVel, 0, 0); -- cgit v1.2.3 From ce914e51ab281429428b20a94bcf7791684066b7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 09:41:29 +0000 Subject: fix [#27659] Segfault when adding None to a group --- source/blender/makesrna/intern/rna_group.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_group.c b/source/blender/makesrna/intern/rna_group.c index a5097cc8b41..5d71d204a72 100644 --- a/source/blender/makesrna/intern/rna_group.c +++ b/source/blender/makesrna/intern/rna_group.c @@ -95,7 +95,7 @@ static void rna_def_group_objects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Add this object to a group"); /* object to add */ parm= RNA_def_pointer(func, "object", "Object", "", "Object to add."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); /* remove object */ func= RNA_def_function(srna, "unlink", "rna_Group_objects_unlink"); -- cgit v1.2.3 From 113d653edbdcfabf48ac8dfab743f0c7500f0954 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 14 Jun 2011 09:55:38 +0000 Subject: Bugfix #27573 Sculpt and Paint undo steps kept hanging in the sculpt/paint modes. Now undo will switch back to global undo, and redo enter the mode again. Just like weight/vertex paint. --- source/blender/editors/util/undo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index 24a868891de..8a6ec7f75db 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -156,11 +156,11 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) int do_glob_undo= 0; if(obact && obact->mode & OB_MODE_TEXTURE_PAINT) { - if(!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname) && undoname) + if(!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname)) do_glob_undo= 1; } else if(obact && obact->mode & OB_MODE_SCULPT) { - if(!ED_undo_paint_step(C, UNDO_PAINT_MESH, step, undoname) && undoname) + if(!ED_undo_paint_step(C, UNDO_PAINT_MESH, step, undoname)) do_glob_undo= 1; } else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) { -- cgit v1.2.3 From 7272bb643c379986c7332a994ce9e576d3b8a748 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 14 Jun 2011 11:01:36 +0000 Subject: Bugfix: Distance DVar doesn't work with new Local Space Fixed references in UI to the old property, and adapted the backend code to work for the new options too. --- source/blender/blenkernel/intern/fcurve.c | 45 +++++++++++++++++----- source/blender/editors/space_graph/graph_buttons.c | 4 +- 2 files changed, 37 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index be2a6a762ee..1f45cc56117 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1153,25 +1153,50 @@ static float dvar_eval_locDiff (ChannelDriver *driver, DriverVar *dvar) /* check if object or bone */ if (pchan) { /* bone */ - if ((dtar->flag & DTAR_FLAG_LOCALSPACE) == 0) { + if (dtar->flag & DTAR_FLAG_LOCALSPACE) { + if (dtar->flag & DTAR_FLAG_LOCAL_CONSTS) { + float mat[4][4]; + + /* extract transform just like how the constraints do it! */ + copy_m4_m4(mat, pchan->pose_mat); + constraint_mat_convertspace(ob, pchan, mat, CONSTRAINT_SPACE_POSE, CONSTRAINT_SPACE_LOCAL); + + /* ... and from that, we get our transform */ + VECCOPY(tmp_loc, mat[3]); + } + else { + /* transform space (use transform values directly) */ + VECCOPY(tmp_loc, pchan->loc); + } + } + else { /* convert to worldspace */ VECCOPY(tmp_loc, pchan->pose_head); mul_m4_v3(ob->obmat, tmp_loc); } - else { - /* local (use transform values directly) */ - VECCOPY(tmp_loc, pchan->loc); - } } else { /* object */ - if ((dtar->flag & DTAR_FLAG_LOCALSPACE) == 0) { - /* worldspace */ - VECCOPY(tmp_loc, ob->obmat[3]); + if (dtar->flag & DTAR_FLAG_LOCALSPACE) { + if (dtar->flag & DTAR_FLAG_LOCAL_CONSTS) { + // XXX: this should practically be the same as transform space... + float mat[4][4]; + + /* extract transform just like how the constraints do it! */ + copy_m4_m4(mat, ob->obmat); + constraint_mat_convertspace(ob, NULL, mat, CONSTRAINT_SPACE_WORLD, CONSTRAINT_SPACE_LOCAL); + + /* ... and from that, we get our transform */ + VECCOPY(tmp_loc, mat[3]); + } + else { + /* transform space (use transform values directly) */ + VECCOPY(tmp_loc, ob->loc); + } } else { - /* local (use transform values directly) */ - VECCOPY(tmp_loc, ob->loc); + /* worldspace */ + VECCOPY(tmp_loc, ob->obmat[3]); } } diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index e820fdbb642..3073ff13075 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -472,7 +472,7 @@ static void graph_panel_driverVar__locDiff(uiLayout *layout, ID *id, DriverVar * uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA); } - uiItemR(col, &dtar_ptr, "use_local_space_transform", 0, NULL, ICON_NONE); + uiItemR(col, &dtar_ptr, "transform_space", 0, NULL, ICON_NONE); col= uiLayoutColumn(layout, 1); uiTemplateAnyID(col, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:"); @@ -484,7 +484,7 @@ static void graph_panel_driverVar__locDiff(uiLayout *layout, ID *id, DriverVar * uiItemPointerR(col, &dtar2_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA); } - uiItemR(col, &dtar2_ptr, "use_local_space_transform", 0, NULL, ICON_NONE); + uiItemR(col, &dtar2_ptr, "transform_space", 0, NULL, ICON_NONE); } /* settings for 'transform channel' driver variable type */ -- cgit v1.2.3 From 23e2bfed239256994a6daf2ca5a08298e7029681 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 11:18:00 +0000 Subject: fix [#25423] Mirror clipping is ignored with single vertex extrusion when using Face Snapping. --- source/blender/editors/transform/transform_generics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 8699eb1cc2d..71ebe5e051c 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -675,8 +675,9 @@ void recalcData(TransInfo *t) EditMesh *em = ((Mesh*)t->obedit->data)->edit_mesh; /* mirror modifier clipping? */ if(t->state != TRANS_CANCEL) { - clipMirrorModifier(t, t->obedit); + /* apply clipping after so we never project past the clip plane [#25423] */ applyProject(t); + clipMirrorModifier(t, t->obedit); } if((t->options & CTX_NO_MIRROR) == 0 && (t->flag & T_MIRROR)) editmesh_apply_to_mirror(t); -- cgit v1.2.3 From cc2c511207bafdd0116cc7bf264e9bd48a4bf75f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 14 Jun 2011 15:55:46 +0000 Subject: Nodes display now follow 'DPI' user pref too --- source/blender/editors/space_node/node_draw.c | 115 ++++++++++++++---------- source/blender/editors/space_node/node_edit.c | 2 +- source/blender/editors/space_node/node_intern.h | 4 +- 3 files changed, 71 insertions(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 0c9f12966ef..5f8ab0dded5 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -288,7 +288,7 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); layout= uiBlockLayout(node->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, - node->locx+NODE_DYS, dy, node->butr.xmax, 20, U.uistyles.first); + node->locx+NODE_DYS, dy, node->butr.xmax, NODE_DY, U.uistyles.first); node->typeinfo->uifunc(layout, (bContext *)C, &ptr); uiBlockEndAlign(node->block); @@ -392,6 +392,7 @@ static void node_update_group(const bContext *C, bNodeTree *UNUSED(ntree), bNode bNode *node; bNodeSocket *sock, *gsock; rctf *rect= &gnode->totr; + float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; int counter; int dy; @@ -430,7 +431,7 @@ static void node_update_group(const bContext *C, bNodeTree *UNUSED(ntree), bNode dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->inputs)-1); for(gsock=ngroup->inputs.first, sock=gnode->inputs.first; gsock; gsock=gsock->next, sock=sock->next) { gsock->locx = rect->xmin; - sock->locx = rect->xmin - NODE_GROUP_FRAME; + sock->locx = rect->xmin - node_group_frame; sock->locy = gsock->locy = dy; /* prevent long socket lists from growing out of the group box */ @@ -446,7 +447,7 @@ static void node_update_group(const bContext *C, bNodeTree *UNUSED(ntree), bNode dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->outputs)-1); for(gsock=ngroup->outputs.first, sock=gnode->outputs.first; gsock; gsock=gsock->next, sock=sock->next) { gsock->locx = rect->xmax; - sock->locx = rect->xmax + NODE_GROUP_FRAME; + sock->locx = rect->xmax + node_group_frame; sock->locy = gsock->locy = dy - NODE_DYS; /* prevent long socket lists from growing out of the group box */ @@ -654,7 +655,7 @@ static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *args_v) block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS); uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN); - layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, 20, U.uistyles.first), 0); + layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, NODE_DY, U.uistyles.first), 0); uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NONE); @@ -675,7 +676,7 @@ static void node_draw_socket_button(bNodeTree *ntree, bNodeSocket *sock, const c switch (sock->type) { case SOCK_VALUE: bt=uiDefButR(block, NUM, B_NODE_EXEC, name, - x, y+1, width, 17, + x, y+1, width, NODE_DY-2, &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL); if (cb) uiButSetFunc(bt, cb, arg1, arg2); @@ -693,7 +694,7 @@ static void node_draw_socket_button(bNodeTree *ntree, bNodeSocket *sock, const c args->arg2 = arg2; uiDefBlockButN(block, socket_vector_menu, args, name, - x, y+1, width, 17, + x, y+1, width, NODE_DY-2, ""); break; @@ -701,14 +702,14 @@ static void node_draw_socket_button(bNodeTree *ntree, bNodeSocket *sock, const c labelw= width - 40; bt=uiDefButR(block, COL, B_NODE_EXEC, "", - x, y+2, (labelw>0 ? 40 : width), 15, + x, y+2, (labelw>0 ? 40 : width), NODE_DY-2, &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL); if (cb) uiButSetFunc(bt, cb, arg1, arg2); if (name[0]!='\0' && labelw>0) uiDefBut(block, LABEL, 0, name, - x + 40, y+2, labelw, 15, + x + 40, y+2, labelw, NODE_DY-2, NULL, 0, 0, 0, 0, ""); break; } @@ -719,6 +720,8 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN bNodeSocket *sock; rctf *rct= &node->totr; float iconofs; + float socket_size= NODE_SOCKSIZE*U.dpi/72; + float iconbutw= 0.8f*UI_UNIT_X; int color_id= node_get_colorid(node); char showname[128]; /* 128 used below */ View2D *v2d = &ar->v2d; @@ -761,32 +764,32 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN icon_id= ICON_MATERIAL; else icon_id= ICON_MATERIAL_DATA; - iconofs-=15.0f; + iconofs-=iconbutw; uiDefIconBut(node->block, LABEL, B_REDR, icon_id, iconofs, rct->ymax-NODE_DY, - UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); + iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } if(node->type == NODE_GROUP) { - iconofs-=15.0f; + iconofs-=iconbutw; uiDefIconBut(node->block, LABEL, B_REDR, ICON_NODETREE, iconofs, rct->ymax-NODE_DY, - UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); + iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } if(node->typeinfo->flag & NODE_OPTIONS) { - iconofs-=15.0f; + iconofs-=iconbutw; uiDefIconBut(node->block, LABEL, B_REDR, ICON_BUTS, iconofs, rct->ymax-NODE_DY, - UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); + iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } { /* always hide/reveal unused sockets */ int shade; - iconofs-=15.0f; + iconofs-=iconbutw; // XXX re-enable /*if(node_has_hidden_sockets(node)) shade= -40; else*/ shade= -90; uiDefIconBut(node->block, LABEL, B_REDR, ICON_PLUS, iconofs, rct->ymax-NODE_DY, - UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); + iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } /* title */ @@ -851,7 +854,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN /* socket inputs, buttons */ for(sock= node->inputs.first; sock; sock= sock->next) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - socket_circle_draw(sock, NODE_SOCKSIZE); + socket_circle_draw(sock, socket_size); if(node->block && sock->link==NULL) { node_draw_socket_button(ntree, sock, sock->name, node->block, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, node_sync_cb, snode, node); @@ -869,7 +872,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN float slen; int ofs= 0; - socket_circle_draw(sock, NODE_SOCKSIZE); + socket_circle_draw(sock, socket_size); UI_ThemeColor(TH_TEXT); slen= snode->aspect*UI_GetStringWidth(sock->name); @@ -904,6 +907,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b rctf *rct= &node->totr; float dx, centy= 0.5f*(rct->ymax+rct->ymin); float hiddenrad= 0.5f*(rct->ymax-rct->ymin); + float socket_size= NODE_SOCKSIZE*U.dpi/72; int color_id= node_get_colorid(node); char showname[128]; /* 128 is used below */ @@ -978,12 +982,12 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b /* sockets */ for(sock= node->inputs.first; sock; sock= sock->next) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) - socket_circle_draw(sock, NODE_SOCKSIZE); + socket_circle_draw(sock, socket_size); } for(sock= node->outputs.first; sock; sock= sock->next) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) - socket_circle_draw(sock, NODE_SOCKSIZE); + socket_circle_draw(sock, socket_size); } uiEndBlock(C, node->block); @@ -1043,17 +1047,30 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN { bNodeTree *ngroup= (bNodeTree *)gnode->id; bNodeSocket *sock; - rctf rect= gnode->totr; - int index; uiLayout *layout; PointerRNA ptr; uiBut *bt; + rctf rect= gnode->totr; + float socket_size= NODE_SOCKSIZE*U.dpi/72; + float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; + float group_header= 26*U.dpi/72; + float arrowbutw= 0.8f*UI_UNIT_X; + /* layout stuff for buttons on group left frame */ + float col1= 6, colw1= 0.6f*node_group_frame; + float col2= col1 + colw1+6; + float col3= node_group_frame - arrowbutw - 6; + /* layout stuff for buttons on group right frame */ + float cor1= 6; + float cor2= cor1 + arrowbutw + 6; + float cor3= cor2 + arrowbutw + 6, corw3= node_group_frame - cor3-6; + + int index; /* backdrop header */ glEnable(GL_BLEND); uiSetRoundBox(3); UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70); - uiDrawBox(GL_POLYGON, rect.xmin-NODE_GROUP_FRAME, rect.ymax, rect.xmax+NODE_GROUP_FRAME, rect.ymax+26, BASIS_RAD); + uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymax, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); /* backdrop body */ UI_ThemeColorShadeAlpha(TH_BACK, -8, -70); @@ -1063,12 +1080,12 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN /* input column */ UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); uiSetRoundBox(8); - uiDrawBox(GL_POLYGON, rect.xmin-NODE_GROUP_FRAME, rect.ymin, rect.xmin, rect.ymax, BASIS_RAD); + uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymin, rect.xmin, rect.ymax, BASIS_RAD); /* output column */ UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); uiSetRoundBox(4); - uiDrawBox(GL_POLYGON, rect.xmax, rect.ymin, rect.xmax+NODE_GROUP_FRAME, rect.ymax, BASIS_RAD); + uiDrawBox(GL_POLYGON, rect.xmax, rect.ymin, rect.xmax+node_group_frame, rect.ymax, BASIS_RAD); /* input column separator */ glColor4ub(200, 200, 200, 140); @@ -1088,15 +1105,15 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN uiSetRoundBox(15); glColor4ub(200, 200, 200, 140); glEnable( GL_LINE_SMOOTH ); - uiDrawBox(GL_LINE_LOOP, rect.xmin-NODE_GROUP_FRAME, rect.ymin, rect.xmax+NODE_GROUP_FRAME, rect.ymax+26, BASIS_RAD); + uiDrawBox(GL_LINE_LOOP, rect.xmin-node_group_frame, rect.ymin, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); glDisable( GL_LINE_SMOOTH ); glDisable(GL_BLEND); /* backdrop title */ UI_ThemeColor(TH_TEXT_HI); - layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+23), - MIN2((int)(rect.xmax - rect.xmin-18.0f), 140), 20, U.uistyles.first); + layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+group_header), + MIN2((int)(rect.xmax - rect.xmin-18.0f), node_group_frame+20), group_header, U.uistyles.first); RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr); uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL); uiBlockLayoutResolve(gnode->block, NULL, NULL); @@ -1106,31 +1123,33 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN /* group sockets */ for(sock=ngroup->inputs.first, index=0; sock; sock=sock->next, ++index) { - socket_circle_draw(sock, NODE_SOCKSIZE); + float locx= sock->locx - node_group_frame; + + socket_circle_draw(sock, socket_size); /* small hack to use socket_circle_draw function with offset */ - sock->locx -= NODE_GROUP_FRAME; - socket_circle_draw(sock, NODE_SOCKSIZE); - sock->locx += NODE_GROUP_FRAME; + sock->locx -= node_group_frame; + socket_circle_draw(sock, socket_size); + sock->locx += node_group_frame; bt = uiDefBut(gnode->block, TEX, 0, "", - sock->locx-114, sock->locy+1, 72, NODE_DY, + locx+col1, sock->locy+1, colw1, NODE_DY, sock->name, 0, 31, 0, 0, ""); uiButSetFunc(bt, group_verify_cb, snode, ngroup); node_draw_socket_button(ngroup, sock, "", gnode->block, - sock->locx-114, sock->locy-NODE_DY, 72, + locx+col1, sock->locy-NODE_DY, colw1, NULL, NULL, NULL); uiBlockSetDirection(gnode->block, UI_TOP); uiBlockBeginAlign(gnode->block); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP, - sock->locx-40, sock->locy, 16, 16, ""); + locx+col2, sock->locy, arrowbutw, arrowbutw, ""); if (!sock->prev) uiButSetFlag(bt, UI_BUT_DISABLED); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN, - sock->locx-40, sock->locy-16, 16, 16, ""); + locx+col2, sock->locy-arrowbutw, arrowbutw, arrowbutw, ""); if (!sock->next) uiButSetFlag(bt, UI_BUT_DISABLED); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); @@ -1140,22 +1159,24 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN uiBlockSetEmboss(gnode->block, UI_EMBOSSN); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X, - sock->locx-22, sock->locy-8, 16, 16, ""); + locx+col3, sock->locy-0.5f*arrowbutw, arrowbutw, arrowbutw, ""); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN); uiBlockSetEmboss(gnode->block, UI_EMBOSS); } for(sock=ngroup->outputs.first, index=0; sock; sock=sock->next, ++index) { - socket_circle_draw(sock, NODE_SOCKSIZE); + float locx= sock->locx; + + socket_circle_draw(sock, socket_size); /* small hack to use socket_circle_draw function with offset */ - sock->locx += NODE_GROUP_FRAME; - socket_circle_draw(sock, NODE_SOCKSIZE); - sock->locx -= NODE_GROUP_FRAME; + sock->locx += node_group_frame; + socket_circle_draw(sock, socket_size); + sock->locx -= node_group_frame; uiBlockSetEmboss(gnode->block, UI_EMBOSSN); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X, - sock->locx+6, sock->locy-8, 16, 16, ""); + locx+col1, sock->locy-0.5f*arrowbutw, arrowbutw, arrowbutw, ""); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT); uiBlockSetEmboss(gnode->block, UI_EMBOSS); @@ -1163,13 +1184,13 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN uiBlockSetDirection(gnode->block, UI_TOP); uiBlockBeginAlign(gnode->block); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP, - sock->locx+24, sock->locy, 16, 16, ""); + locx+cor2, sock->locy, arrowbutw, arrowbutw, ""); if (!sock->prev) uiButSetFlag(bt, UI_BUT_DISABLED); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT); bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN, - sock->locx+24, sock->locy-16, 16, 16, ""); + locx+cor2, sock->locy-arrowbutw, arrowbutw, arrowbutw, ""); if (!sock->next) uiButSetFlag(bt, UI_BUT_DISABLED); RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); @@ -1179,17 +1200,17 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN if (sock->link) { bt = uiDefBut(gnode->block, TEX, 0, "", - sock->locx+42, sock->locy-NODE_DYS+1, 72, NODE_DY, + locx+cor3, sock->locy-NODE_DYS+1, corw3, NODE_DY, sock->name, 0, 31, 0, 0, ""); uiButSetFunc(bt, group_verify_cb, snode, ngroup); } else { bt = uiDefBut(gnode->block, TEX, 0, "", - sock->locx+42, sock->locy+1, 72, NODE_DY, + locx+cor3, sock->locy+1, corw3, NODE_DY, sock->name, 0, 31, 0, 0, ""); uiButSetFunc(bt, group_verify_cb, snode, ngroup); - node_draw_socket_button(ngroup, sock, "", gnode->block, sock->locx+42, sock->locy-NODE_DY, 72, NULL, NULL, NULL); + node_draw_socket_button(ngroup, sock, "", gnode->block, locx+cor3, sock->locy-NODE_DY, corw3, NULL, NULL, NULL); } } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index e539334c282..46c66c55d51 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1332,7 +1332,7 @@ static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event) } else { node->width= nsw->oldwidth + mx - nsw->mxstart; - CLAMP(node->width, node->typeinfo->minwidth, node->typeinfo->maxwidth); + CLAMP(node->width, UI_DPI_FAC*node->typeinfo->minwidth, UI_DPI_FAC*node->typeinfo->maxwidth); } } diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index fcf1c182600..a1c0f5535fe 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -152,8 +152,8 @@ extern const char *node_context_dir[]; // XXX from BSE_node.h #define HIDDEN_RAD 15.0f #define BASIS_RAD 8.0f -#define NODE_DYS 10 -#define NODE_DY 20 +#define NODE_DYS (U.widget_unit/2) +#define NODE_DY U.widget_unit #define NODE_SOCKSIZE 5 // XXX button events (butspace) -- cgit v1.2.3 From 3fe26d7093b86c6e3bd83be178f2bce5361f0fa3 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 14 Jun 2011 17:48:42 +0000 Subject: RGB curve widget follows user preference DPI now too. --- .../editors/interface/interface_templates.c | 69 +++++++++++----------- 1 file changed, 35 insertions(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index bbd1bd8773b..32a20e82d2f 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1586,21 +1586,22 @@ static uiBlock *curvemap_clipping_func(bContext *C, struct ARegion *ar, void *cu CurveMapping *cumap = cumap_v; uiBlock *block; uiBut *bt; + float width= 8*UI_UNIT_X; block= uiBeginBlock(C, ar, "curvemap_clipping_func", UI_EMBOSS); /* use this for a fake extra empy space around the buttons */ - uiDefBut(block, LABEL, 0, "", -4, 16, 128, 106, NULL, 0, 0, 0, 0, ""); + uiDefBut(block, LABEL, 0, "", -4, 16, width+8, 6*UI_UNIT_Y, NULL, 0, 0, 0, 0, ""); bt= uiDefButBitI(block, TOG, CUMA_DO_CLIP, 1, "Use Clipping", - 0,100,120,18, &cumap->flag, 0.0, 0.0, 10, 0, ""); + 0,5*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->flag, 0.0, 0.0, 10, 0, ""); uiButSetFunc(bt, curvemap_buttons_setclip, cumap, NULL); uiBlockBeginAlign(block); - uiDefButF(block, NUM, 0, "Min X ", 0,74,120,18, &cumap->clipr.xmin, -100.0, cumap->clipr.xmax, 10, 0, ""); - uiDefButF(block, NUM, 0, "Min Y ", 0,56,120,18, &cumap->clipr.ymin, -100.0, cumap->clipr.ymax, 10, 0, ""); - uiDefButF(block, NUM, 0, "Max X ", 0,38,120,18, &cumap->clipr.xmax, cumap->clipr.xmin, 100.0, 10, 0, ""); - uiDefButF(block, NUM, 0, "Max Y ", 0,20,120,18, &cumap->clipr.ymax, cumap->clipr.ymin, 100.0, 10, 0, ""); + uiDefButF(block, NUM, 0, "Min X ", 0,4*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmin, -100.0, cumap->clipr.xmax, 10, 0, ""); + uiDefButF(block, NUM, 0, "Min Y ", 0,3*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymin, -100.0, cumap->clipr.ymax, 10, 0, ""); + uiDefButF(block, NUM, 0, "Max X ", 0,2*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmax, cumap->clipr.xmin, 100.0, 10, 0, ""); + uiDefButF(block, NUM, 0, "Max Y ", 0,UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymax, cumap->clipr.ymin, 100.0, 10, 0, ""); uiBlockSetDirection(block, UI_RIGHT); @@ -1644,17 +1645,17 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event) static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap_v) { uiBlock *block; - short yco= 0, menuwidth=120; + short yco= 0, menuwidth=10*UI_UNIT_X; block= uiBeginBlock(C, ar, "curvemap_tools_func", UI_EMBOSS); uiBlockSetButmFunc(block, curvemap_tools_dofunc, cumap_v); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Horizontal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Extrapolated", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Horizontal", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 4, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Extrapolated", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 5, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); uiBlockSetDirection(block, UI_RIGHT); uiTextBoundsBlock(block, 50); @@ -1666,15 +1667,15 @@ static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void *cumap_v) { uiBlock *block; - short yco= 0, menuwidth=120; + short yco= 0, menuwidth=10*UI_UNIT_X; block= uiBeginBlock(C, ar, "curvemap_tools_func", UI_EMBOSS); uiBlockSetButmFunc(block, curvemap_tools_dofunc, cumap_v); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); uiBlockSetDirection(block, UI_RIGHT); uiTextBoundsBlock(block, 50); @@ -1728,15 +1729,15 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe uiLayoutSetAlignment(sub, UI_LAYOUT_ALIGN_LEFT); if(cumap->cm[0].curve) { - bt= uiDefButI(block, ROW, 0, "X", 0, 0, dx, 16, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "X", 0, 0, dx, dx, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[1].curve) { - bt= uiDefButI(block, ROW, 0, "Y", 0, 0, dx, 16, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "Y", 0, 0, dx, dx, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[2].curve) { - bt= uiDefButI(block, ROW, 0, "Z", 0, 0, dx, 16, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "Z", 0, 0, dx, dx, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } } @@ -1746,19 +1747,19 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe uiLayoutSetAlignment(sub, UI_LAYOUT_ALIGN_LEFT); if(cumap->cm[3].curve) { - bt= uiDefButI(block, ROW, 0, "C", 0, 0, dx, 16, &cumap->cur, 0.0, 3.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "C", 0, 0, dx, dx, &cumap->cur, 0.0, 3.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[0].curve) { - bt= uiDefButI(block, ROW, 0, "R", 0, 0, dx, 16, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "R", 0, 0, dx, dx, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[1].curve) { - bt= uiDefButI(block, ROW, 0, "G", 0, 0, dx, 16, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "G", 0, 0, dx, dx, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[2].curve) { - bt= uiDefButI(block, ROW, 0, "B", 0, 0, dx, 16, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "B", 0, 0, dx, dx, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } } @@ -1768,15 +1769,15 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe uiLayoutSetAlignment(sub, UI_LAYOUT_ALIGN_LEFT); if(cumap->cm[0].curve) { - bt= uiDefButI(block, ROW, 0, "H", 0, 0, dx, 16, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "H", 0, 0, dx, dx, &cumap->cur, 0.0, 0.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[1].curve) { - bt= uiDefButI(block, ROW, 0, "S", 0, 0, dx, 16, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "S", 0, 0, dx, dx, &cumap->cur, 0.0, 1.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } if(cumap->cm[2].curve) { - bt= uiDefButI(block, ROW, 0, "V", 0, 0, dx, 16, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); + bt= uiDefButI(block, ROW, 0, "V", 0, 0, dx, dx, &cumap->cur, 0.0, 2.0, 0.0, 0.0, ""); uiButSetFunc(bt, curvemap_buttons_redraw, NULL, NULL); } } @@ -1791,24 +1792,24 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMIN, 0, 0, dx, 14, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom in"); + bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMIN, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom in"); uiButSetFunc(bt, curvemap_buttons_zoom_in, cumap, NULL); - bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMOUT, 0, 0, dx, 14, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom out"); + bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMOUT, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom out"); uiButSetFunc(bt, curvemap_buttons_zoom_out, cumap, NULL); if(brush) - bt= uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, 18, "Tools"); + bt= uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, "Tools"); else - bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, 18, "Tools"); + bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, "Tools"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); if(cumap->flag & CUMA_DO_CLIP) icon= ICON_CLIPUV_HLT; else icon= ICON_CLIPUV_DEHLT; - bt= uiDefIconBlockBut(block, curvemap_clipping_func, cumap, 0, icon, 0, 0, dx, 18, "Clipping Options"); + bt= uiDefIconBlockBut(block, curvemap_clipping_func, cumap, 0, icon, 0, 0, dx, dx, "Clipping Options"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); - bt= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, dx, 18, NULL, 0.0, 0.0, 0.0, 0.0, "Delete points"); + bt= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Delete points"); uiButSetNFunc(bt, curvemap_buttons_delete, MEM_dupallocN(cb), cumap); uiBlockSetEmboss(block, UI_EMBOSS); -- cgit v1.2.3 From f3f3bcc45e701fac4abcfb68a2bbc60e06e6a9f4 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 14 Jun 2011 20:42:01 +0000 Subject: New Animation Import system. Only Mesh object animation import support implemented for now. --- source/blender/collada/AnimationExporter.cpp | 87 ++++-- source/blender/collada/AnimationExporter.h | 4 + source/blender/collada/AnimationImporter.cpp | 436 ++++++++++++++++++++++++--- source/blender/collada/AnimationImporter.h | 23 +- source/blender/collada/DocumentImporter.cpp | 5 +- 5 files changed, 480 insertions(+), 75 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 98699e22030..3ed4d9f7be9 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -57,7 +57,8 @@ void AnimationExporter::exportAnimations(Scene *sce) if (!ob->adt || !ob->adt->action) return; //this is already checked in hasAnimations() FCurve *fcu = (FCurve*)ob->adt->action->curves.first; char * transformName = extract_transform_name( fcu->rna_path ); - + + //if (ob->type == OB_ARMATURE) { // if (!ob->data) return; // bArmature *arm = (bArmature*)ob->data; @@ -74,17 +75,46 @@ void AnimationExporter::exportAnimations(Scene *sce) //else { while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - printf("fcu -> rna _path : %s \n transformName : %s\n", fcu->rna_path, transformName); + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) - dae_animation(ob ,fcu,/* id_name(ob),*/ transformName); + dae_animation(ob ,fcu, transformName ); fcu = fcu->next; } //} } + /*float * AnimationExporter::get_eul_source_for_quat(Object *ob ) + { + FCurve *fcu = (FCurve*)ob->adt->action->curves.first; + const int keys = fcu->totvert; + float quat[keys][4]; + float eul[keys][3]; + while(fcu) + { + transformName = extract_transform_name( fcu->rna_path ); + + if( !strcmp(transformName, "rotation_quaternion") ) + { + for ( int i = 0 ; i < fcu->totvert ; i+=) + { + quat[i][fcu->array_index] = fcu->bezt[i].vec[1][1]; + } + } + + fcu = fcu->next; + } + + for ( int i = 0 ; i < fcu->totvert ; i+=) + { + quat_to_eul(eul[i],quat[i]); + } + + return eul; + + }*/ std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) { //hard-way to derive the bone name from rna_path. Must find more compact method @@ -99,16 +129,18 @@ void AnimationExporter::exportAnimations(Scene *sce) return id_name(ob); } - void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName) + void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName ) { - printf("in dae animation\n"); + const char *axis_name = NULL; char anim_id[200]; bool has_tangents = false; + bool quatRotation = false; if ( !strcmp(transformName, "rotation_quaternion") ) { - const char *axis_names[] = {"W", "X", "Y", "Z"}; + //quatRotation = true; + const char *axis_names[] = {"", "X", "Y", "Z"}; if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index]; } @@ -118,8 +150,6 @@ void AnimationExporter::exportAnimations(Scene *sce) const char *axis_names[] = {"X", "Y", "Z"}; if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; - - } std::string ob_name = std::string("null"); if (ob->type == OB_ARMATURE) @@ -377,7 +407,7 @@ void AnimationExporter::exportAnimations(Scene *sce) float AnimationExporter::convert_angle(float angle) { - return COLLADABU::Math::Utils::radToDegF(angle); + return COLLADABU::Math::Utils::degToRadF(angle); } std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) @@ -414,7 +444,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if (axis) { param.push_back(axis); } - else { //assumes if axis isn't specified all axi are added + else { //assumes if axis isn't specified all axises are added param.push_back("X"); param.push_back("Y"); param.push_back("Z"); @@ -440,12 +470,12 @@ void AnimationExporter::exportAnimations(Scene *sce) break; case COLLADASW::InputSemantic::OUTPUT: *length = 1; - if (rotation) { + /*if (rotation) { values[0] = convert_angle(bezt->vec[1][1]); } - else { + else {*/ values[0] = bezt->vec[1][1]; - } + //} break; case COLLADASW::InputSemantic::IN_TANGENT: @@ -454,12 +484,13 @@ void AnimationExporter::exportAnimations(Scene *sce) if (bezt->ipo != BEZT_IPO_BEZ) { // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data values[0] = 0; - values[1] = 0; - } else if (rotation) { + values[1] = 0; + } + /* else if (rotation) { values[1] = convert_angle(bezt->vec[0][1]); - } else { + } else {*/ values[1] = bezt->vec[0][1]; - } + //} break; case COLLADASW::InputSemantic::OUT_TANGENT: @@ -469,11 +500,12 @@ void AnimationExporter::exportAnimations(Scene *sce) // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data values[0] = 0; values[1] = 0; - } else if (rotation) { + } + /* else if (rotation) { values[1] = convert_angle(bezt->vec[2][1]); - } else { + } else {*/ values[1] = bezt->vec[2][1]; - } + //} break; break; default: @@ -516,9 +548,8 @@ void AnimationExporter::exportAnimations(Scene *sce) for (unsigned int i = 0; i < fcu->totvert; i++) { float values[3]; // be careful! int length = 0; - get_source_values(&fcu->bezt[i], semantic, is_rotation, values, &length); - for (int j = 0; j < length; j++) + for (int j = 0; j < length; j++) source.appendValues(values[j]); } @@ -526,6 +557,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } + //Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) { @@ -676,7 +708,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { std::string tm_name; - + bool is_rotation =false; // when given rna_path, determine tm_type from it if (rna_path) { char *name = extract_transform_name(rna_path); @@ -695,9 +727,10 @@ void AnimationExporter::exportAnimations(Scene *sce) switch (tm_type) { case 0: - return std::string("rotation_euler.") + std::string(axis_name) + ".ANGLE"; case 1: - return std::string("rotation_quaternion.") + std::string(axis_name) + ".ANGLE"; + tm_name = "rotation"; + is_rotation = true; + break; case 2: tm_name = "scale"; break; @@ -710,8 +743,8 @@ void AnimationExporter::exportAnimations(Scene *sce) } if (tm_name.size()) { - if (append_axis) - return tm_name + std::string(".") + std::string(axis_name); + if (is_rotation) + return tm_name + std::string(axis_name); else return tm_name; } diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 0368e34dc42..8fe2a0db04b 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -111,6 +111,10 @@ protected: COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis); void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); + + /*float * get_eul_source_for_quat(Object *ob );*/ + + /*std::string create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, const std::string& anim_id, int array_index);*/ std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index a166324bde7..6efc712959f 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -89,12 +89,15 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) { COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - // COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); - // COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER ) { + COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); + COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + } float fps = (float)FPS; size_t dim = curve->getOutDimension(); unsigned int i; - + std::vector& fcurves = curve_map[curve->getUniqueId()]; switch (dim) { @@ -108,28 +111,42 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); // fcu->rna_path = BLI_strdupn(path, strlen(path)); fcu->array_index = 0; - //fcu->totvert = curve->getKeyCount(); + fcu->totvert = curve->getKeyCount(); // create beztriple for each key for (unsigned int j = 0; j < curve->getKeyCount(); j++) { BezTriple bez; memset(&bez, 0, sizeof(BezTriple)); - // intangent - // bez.vec[0][0] = get_float_value(intan, j * 6 + i + i) * fps; - // bez.vec[0][1] = get_float_value(intan, j * 6 + i + i + 1); - + // input, output bez.vec[1][0] = bc_get_float_value(input, j) * fps; bez.vec[1][1] = bc_get_float_value(output, j * dim + i); - // outtangent - // bez.vec[2][0] = get_float_value(outtan, j * 6 + i + i) * fps; - // bez.vec[2][1] = get_float_value(outtan, j * 6 + i + i + 1); - bez.ipo = U.ipo_new; /* use default interpolation mode here... */ + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER ) + { + COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); + COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + + // intangent + bez.vec[0][0] = bc_get_float_value(intan, (j * 2 * dim ) + (2 * i)) * fps; + bez.vec[0][1] = bc_get_float_value(intan, (j * 2 * dim )+ (2 * i) + 1); + + // outtangent + bez.vec[2][0] = bc_get_float_value(outtan, (j * 2 * dim ) + (2 * i)) * fps; + bez.vec[2][1] = bc_get_float_value(outtan, (j * 2 * dim )+ (2 * i) + 1); + bez.ipo = BEZT_IPO_BEZ; + //bez.h1 = bez.h2 = HD_AUTO; + } + else + { + bez.h1 = bez.h2 = HD_AUTO; + bez.ipo = BEZT_IPO_LIN; + } + // bez.ipo = U.ipo_new; /* use default interpolation mode here... */ bez.f1 = bez.f2 = bez.f3 = SELECT; - bez.h1 = bez.h2 = HD_AUTO; + insert_bezt_fcurve(fcu, &bez, 0); } @@ -147,11 +164,15 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) unused_curves.push_back(*it); } + void AnimationImporter::fcurve_deg_to_rad(FCurve *cu) { for (unsigned int i = 0; i < cu->totvert; i++) { // TODO convert handles too cu->bezt[i].vec[1][1] *= M_PI / 180.0f; + /*cu->bezt[i].vec[0][1] *= M_PI / 180.0f; + cu->bezt[i].vec[2][1] *= M_PI / 180.0f;*/ + cu->bezt[i].vec[1][0]; } } @@ -277,10 +298,11 @@ bool AnimationImporter::write_animation(const COLLADAFW::Animation* anim) bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* animlist) { const COLLADAFW::UniqueId& animlist_id = animlist->getUniqueId(); - + animlist_map[animlist_id] = animlist; - + #if 0 + // should not happen if (uid_animated_map.find(animlist_id) == uid_animated_map.end()) { return true; @@ -291,17 +313,18 @@ bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* ani // what does this AnimationList animate? Animation& animated = uid_animated_map[animlist_id]; Object *ob = animated.ob; - + char rna_path[100]; char joint_path[100]; bool is_joint = false; // if ob is NULL, it should be a JOINT if (!ob) { + ob = armature_importer->get_armature_for_joint(animated.node); if (!ob) { - fprintf(stderr, "Cannot find armature for node %s\n", get_joint_name(animated.node)); +// fprintf(stderr, "Cannot find armature for node %s\n", get_joint_name(animated.node)); return true; } @@ -309,7 +332,7 @@ bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* ani is_joint = true; } - + printf("object for animlist: %s found\n", animlist->getUniqueId().toAscii().c_str()); const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); switch (animated.tm->getTransformationType()) { @@ -512,66 +535,361 @@ virtual void AnimationImporter::change_eul_to_quat(Object *ob, bAction *act) } #endif -// prerequisites: -// animlist_map - map animlist id -> animlist -// curve_map - map anim id -> curve(s) -Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, - std::map& object_map, - std::map& root_map, - COLLADAFW::Transformation::TransformationType tm_type, - Object *par_job) +//Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, +// std::map& object_map, +// std::map& root_map, +// COLLADAFW::Transformation::TransformationType tm_type, +// Object *par_job) +//{ +// bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; +// //bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; +//} + + +//sets the rna_path and array index to curve +void AnimationImporter::modify_fcurve(std::vector* curves , char* rna_path , int array_index ) +{ + std::vector::iterator it; + int i; + for (it = curves->begin(), i = 0; it != curves->end(); it++, i++) { + FCurve *fcu = *it; + fcu->rna_path = BLI_strdupn(rna_path, strlen(rna_path)); + + if (array_index == -1) fcu->array_index = i; + else fcu->array_index = array_index; + + unused_curves.erase(std::remove(unused_curves.begin(), unused_curves.end(), fcu), unused_curves.end()); + } +} + +void AnimationImporter::find_frames( std::vector* frames , std::vector* curves) { - bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + std::vector::iterator iter; + for (iter = curves->begin(); iter != curves->end(); iter++) { + FCurve *fcu = *iter; + // + ////if transform is rotation the fcurves values must be turned in to radian. + //if (is_rotation) + // fcurve_deg_to_rad(fcu); + + for (unsigned int k = 0; k < fcu->totvert; k++) { + //get frame value from bezTriple + float fra = fcu->bezt[k].vec[1][0]; + //if frame already not added add frame to frames + if (std::find(frames->begin(), frames->end(), fra) == frames->end()) + frames->push_back(fra); + + } + } +} + +//creates the rna_paths and array indices of fcurves from animations using transformation and bound animation class of each animation. +void AnimationImporter:: Assign_transform_animations(std::vector* frames, + COLLADAFW::Transformation * transform , + const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves, bool is_joint, char * joint_path) +{ + //bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; - bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + //Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; + + //char joint_path[100]; + + /*if ( is_joint ) + armature_importer->get_rna_path_for_joint(animated.node, joint_path, sizeof(joint_path));*/ + + //bAction * act; + + //if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); + //else act = ob->adt->action; + // + ////Get the list of animation curves of the object + // ListBase *AnimCurves = act->curves; + // + +// char* tm_str; +// int array_index; + + //curves belonging to the animation + //std::vector curves = curve_map[bindings[j].animation]; + + //to check if the no of curves are valid + bool xyz = ((tm_type == COLLADAFW::Transformation::TRANSLATE ||tm_type == COLLADAFW::Transformation::SCALE) && binding->animationClass == COLLADAFW::AnimationList::POSITION_XYZ); + + + if (!((!xyz && curves->size() == 1) || (xyz && curves->size() == 3) || is_matrix)) { + fprintf(stderr, "expected %d curves, got %d\n", xyz ? 3 : 1, (int)curves->size()); + return; + } + + //find key frames of the animation and accumulates them to frames of the transformation. + find_frames (frames , curves ); + + char rna_path[100]; + //char joint_path[100]; + + + switch (tm_type) { + case COLLADAFW::Transformation::TRANSLATE: + case COLLADAFW::Transformation::SCALE: + { + bool loc = tm_type == COLLADAFW::Transformation::TRANSLATE; + if (is_joint) + BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, loc ? "location" : "scale"); + else + BLI_strncpy(rna_path, loc ? "location" : "scale", sizeof(rna_path)); + + switch (binding->animationClass) { + case COLLADAFW::AnimationList::POSITION_X: + modify_fcurve(curves, rna_path, 0 ); + //add_fcurves_to_object(ob, curves, rna_path, 0, &animated); + break; + case COLLADAFW::AnimationList::POSITION_Y: + modify_fcurve(curves, rna_path, 1 ); + //add_fcurves_to_object(ob, curves, rna_path, 1, &animated); + break; + case COLLADAFW::AnimationList::POSITION_Z: + modify_fcurve(curves, rna_path, 2 ); + //add_fcurves_to_object(ob, curves, rna_path, 2, &animated); + break; + case COLLADAFW::AnimationList::POSITION_XYZ: + modify_fcurve(curves, rna_path, -1 ); + //add_fcurves_to_object(ob, curves, rna_path, -1, &animated); + break; + default: + fprintf(stderr, "AnimationClass %d is not supported for %s.\n", + binding->animationClass, loc ? "TRANSLATE" : "SCALE"); + } + break; + } + + + case COLLADAFW::Transformation::ROTATE: + { + if (is_joint) + BLI_snprintf(rna_path, sizeof(rna_path), "%s.rotation_euler", joint_path); + else + BLI_strncpy(rna_path, "rotation_euler", sizeof(rna_path)); + std::vector::iterator iter; + for (iter = curves->begin(); iter != curves->end(); iter++) { + FCurve* fcu = *iter; + + //if transform is rotation the fcurves values must be turned in to radian. + /*if (is_rotation) + fcurve_deg_to_rad(fcu); */ + } + COLLADAFW::Rotate* rot = (COLLADAFW::Rotate*)transform; + COLLADABU::Math::Vector3& axis = rot->getRotationAxis(); + + switch (binding->animationClass) { + case COLLADAFW::AnimationList::ANGLE: + if (COLLADABU::Math::Vector3::UNIT_X == axis) { + modify_fcurve(curves, rna_path, 0 ); + //add_fcurves_to_object(ob, fcurves, rna_path, 0, &animated); + } + else if (COLLADABU::Math::Vector3::UNIT_Y == axis) { + modify_fcurve(curves, rna_path, 1 ); + //add_fcurves_to_object(ob, fcurves, rna_path, 1, &animated); + } + else if (COLLADABU::Math::Vector3::UNIT_Z == axis) { + modify_fcurve(curves, rna_path, 2 ); + //add_fcurves_to_object(ob, fcurves, rna_path, 2, &animated); + } + break; + case COLLADAFW::AnimationList::AXISANGLE: + // TODO convert axis-angle to quat? or XYZ? + default: + fprintf(stderr, "AnimationClass %d is not supported for ROTATE transformation.\n", + binding->animationClass); + } + break; + } + + case COLLADAFW::Transformation::MATRIX: + case COLLADAFW::Transformation::SKEW: + case COLLADAFW::Transformation::LOOKAT: + fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); + break; + } + //BLI_addtail(&AnimCurves, curves); + +} +void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , + std::map& root_map, + std::map& object_map ) +{ + bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + + if ( ! is_object_animated(ob,node) ) return ; + + char joint_path[200]; + if ( is_joint ) + armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + + bAction * act; + + if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); + else act = ob->adt->action; + //Get the list of animation curves of the object + + ListBase *AnimCurves = &(act->curves); + if (!ob) { fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); - return NULL; + return; } - // frames at which to sample - std::vector frames; + + float irest_dae[4][4]; + float rest[4][4], irest[4][4]; + + if (is_joint) { + get_joint_rest_mat(irest_dae, root, node); + invert_m4(irest_dae); + + Bone *bone = get_named_bone((bArmature*)ob->data, bone_name); + if (!bone) { + fprintf(stderr, "cannot find bone \"%s\"\n", bone_name); + return; + } + + unit_m4(rest); + copy_m4_m4(rest, bone->arm_mat); + invert_m4_m4(irest, rest); + } + + + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); + + //for each transformation in node + for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { + COLLADAFW::Transformation *transform = nodeTransforms[i]; + COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; + + + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); + + //might not be needed, let's see + std::vector frames; + //all the curves belonging to the transform + + //check if transformation has animations + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else + { + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + + //calculate rnapaths and array index of fcurves according to transformation and animation class + + Assign_transform_animations(&frames,transform, &bindings[j], &animcurves, is_joint, joint_path ); + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } + std::sort(frames.begin(), frames.end()); + } + if (is_rotation || is_matrix) { + if (is_joint) + { + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_QUAT; + } + else + { + ob->rotmode = ROT_MODE_EUL; + } + } + } + +} + +bool AnimationImporter::is_object_animated ( const Object *ob , const COLLADAFW::Node * node ) +{ + bool exists = false; + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); + + //for each transformation in node + for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { + COLLADAFW::Transformation *transform = nodeTransforms[i]; + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); + + //check if transformation has animations + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else + { + exists = true; + break; + } + } + + return exists; +} + +void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW::Node * node , COLLADAFW::Transformation::TransformationType tm_type) +{ + bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; // for each , , etc. there is a separate Transformation - const COLLADAFW::TransformationPointerArray& tms = node->getTransformations(); + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); unsigned int i; - // find frames at which to sample plus convert all rotation keys to radians - for (i = 0; i < tms.getCount(); i++) { - COLLADAFW::Transformation *tm = tms[i]; - COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); + for (i = 0; i < nodeTransforms.getCount(); i++) { + COLLADAFW::Transformation *transform = nodeTransforms[i]; + COLLADAFW::Transformation::TransformationType nodeTmType = transform->getTransformationType(); - if (type == tm_type) { - const COLLADAFW::UniqueId& listid = tm->getAnimationList(); + if (nodeTmType == tm_type) { + //get animation bindings for the current transformation + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); + //if transform is animated its animlist must exist. if (animlist_map.find(listid) != animlist_map.end()) { + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - + if (bindings.getCount()) { + //for each AnimationBinding get the fcurves which animate the transform for (unsigned int j = 0; j < bindings.getCount(); j++) { std::vector& curves = curve_map[bindings[j].animation]; - bool xyz = ((type == COLLADAFW::Transformation::TRANSLATE || type == COLLADAFW::Transformation::SCALE) && bindings[j].animationClass == COLLADAFW::AnimationList::POSITION_XYZ); + bool xyz = ((nodeTmType == COLLADAFW::Transformation::TRANSLATE || nodeTmType == COLLADAFW::Transformation::SCALE) && bindings[j].animationClass == COLLADAFW::AnimationList::POSITION_XYZ); if ((!xyz && curves.size() == 1) || (xyz && curves.size() == 3) || is_matrix) { std::vector::iterator iter; for (iter = curves.begin(); iter != curves.end(); iter++) { FCurve *fcu = *iter; - + + //if transform is rotation the fcurves values must be turned in to radian. if (is_rotation) fcurve_deg_to_rad(fcu); for (unsigned int k = 0; k < fcu->totvert; k++) { + //get frame value from bezTriple float fra = fcu->bezt[k].vec[1][0]; - if (std::find(frames.begin(), frames.end(), fra) == frames.end()) - frames.push_back(fra); + //if frame already not added add frame to frames + if (std::find(frames->begin(), frames->end(), fra) == frames->end()) + frames->push_back(fra); } } } @@ -583,7 +901,38 @@ Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, } } } +} + + +// prerequisites: +// animlist_map - map animlist id -> animlist +// curve_map - map anim id -> curve(s) +Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, + std::map& object_map, + std::map& root_map, + COLLADAFW::Transformation::TransformationType tm_type, + Object *par_job) +{ + + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; + bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + + COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; + Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; + const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + if (!ob) { + fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); + return NULL; + } + // frames at which to sample + std::vector frames; + + find_frames_old(&frames, node , tm_type); + + unsigned int i; + float irest_dae[4][4]; float rest[4][4], irest[4][4]; @@ -664,7 +1013,6 @@ Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, tm_str); else strcpy(rna_path, tm_str); - newcu[i] = create_fcurve(axis, rna_path); #ifdef ARMATURE_TEST diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 05347a1fbc1..08addc987ba 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -94,16 +94,35 @@ public: #if 0 virtual void change_eul_to_quat(Object *ob, bAction *act); #endif + + void translate_Animations_NEW ( COLLADAFW::Node * Node , + std::map& root_map, + std::map& object_map ); + bool is_object_animated ( const Object *ob , const COLLADAFW::Node * node ) ; + + + void Assign_transform_animations(std::vector* frames, + COLLADAFW::Transformation* transform , + const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves, bool is_joint, char * joint_path); + + /*void Assign_transform_animations(std::vector* frames, + COLLADAFW::Transformation *transform , + COLLADAFW::AnimationList::AnimationBinding * binding, + COLLADAFW::Node * node);*/ + void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: // animlist_map - map animlist id -> animlist // curve_map - map anim id -> curve(s) - Object *translate_animation(COLLADAFW::Node *node, + Object * translate_animation(COLLADAFW::Node *node, std::map& object_map, std::map& root_map, COLLADAFW::Transformation::TransformationType tm_type, Object *par_job = NULL); - + + void find_frames( std::vector* frames , std::vector* curves ); + void find_frames_old( std::vector* frames, COLLADAFW::Node * node, COLLADAFW::Transformation::TransformationType tm_type ); // internal, better make it private // warning: evaluates only rotation // prerequisites: animlist_map, curve_map diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 10e6d611cc5..68fc63dfa0b 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -250,8 +250,9 @@ void DocumentImporter::translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW unsigned int i; Object *ob; - for (i = 0; i < 4; i++) - ob = anim_importer.translate_animation(node, object_map, root_map, types[i]); + //for (i = 0; i < 4; i++) + //ob = + anim_importer.translate_Animations_NEW(node, root_map, object_map); COLLADAFW::NodePointerArray &children = node->getChildNodes(); for (i = 0; i < children.getCount(); i++) { -- cgit v1.2.3 From 1d41694e6974ee870fdeef2a5516d8368a2b9853 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 01:56:49 +0000 Subject: fix [#27662] Storing png/tga images ignore Alpha settings - don't clear alpha when baking RGB images - when baking results in partial alpha. set the depth to 32. --- source/blender/blenpluginapi/iff.h | 3 ++- source/blender/editors/object/object_bake.c | 21 +++++++++++++++++++-- source/blender/imbuf/IMB_imbuf.h | 3 ++- source/blender/imbuf/intern/rectop.c | 17 ++++++++++++++++- source/blender/render/intern/source/rendercore.c | 20 ++++++++++++++++++-- 5 files changed, 57 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenpluginapi/iff.h b/source/blender/blenpluginapi/iff.h index bccc7bdb769..77cdf889ea5 100644 --- a/source/blender/blenpluginapi/iff.h +++ b/source/blender/blenpluginapi/iff.h @@ -113,9 +113,10 @@ LIBIMPORT void interlace(struct ImBuf *ib); LIBIMPORT void IMB_rectcpy(struct ImBuf *dbuf, struct ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height); -LIBIMPORT void IMB_rectfill(struct ImBuf *drect, float col[4]); +LIBIMPORT void IMB_rectfill(struct ImBuf *drect, const float col[4]); LIBIMPORT void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, int y2); LIBIMPORT void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2); +LIBIMPORT void IMB_rectfill_alpha(struct ImBuf *drect, const float value); #endif /* IFF_H */ diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 565c5810cff..c669a69b157 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -854,10 +854,14 @@ static void finish_images(MultiresBakeRender *bkr) Image *ima= (Image*)link->data; int i; ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + short is_new_alpha; if(ibuf->x<=0 || ibuf->y<=0) continue; + /* must check before filtering */ + is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); + /* Margin */ if(bkr->bake_filter) { char *temprect; @@ -882,6 +886,18 @@ static void finish_images(MultiresBakeRender *bkr) IMB_filter_extend(ibuf, (char *)ibuf->userdata); } + /* if the bake results in new alpha then change the image setting */ + if(is_new_alpha) { + ibuf->depth= 32; + } + else { + if(bkr->bake_filter) { + /* clear alpha added by filtering */ + IMB_rectfill_alpha(ibuf, 1.0f); + } + } + + ibuf->userflags|= IB_BITMAPDIRTY; if(ibuf->mipmap[0]) { ibuf->userflags|= IB_MIPMAP_INVALID; @@ -1028,7 +1044,8 @@ static DerivedMesh *multiresbake_create_hiresdm(Scene *scene, Object *ob, int *l static void clear_images(MTFace *mtface, int totface) { int a; - float vec[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + const float vec_alpha[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + const float vec_solid[4]= {0.0f, 0.0f, 0.0f, 1.0f}; for(a= 0; aid.flag&= ~LIB_DOIT; @@ -1039,7 +1056,7 @@ static void clear_images(MTFace *mtface, int totface) if((ima->id.flag&LIB_DOIT)==0) { ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - IMB_rectfill(ibuf, vec); + IMB_rectfill(ibuf, (ibuf->depth == 32) ? vec_alpha : vec_solid); ima->id.flag|= LIB_DOIT; } } diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index 5d61452e149..e9592fdc164 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -442,8 +442,9 @@ void IMB_freezbuffloatImBuf(struct ImBuf *ibuf); * * @attention Defined in rectop.c */ -void IMB_rectfill(struct ImBuf *drect, float col[4]); +void IMB_rectfill(struct ImBuf *drect, const float col[4]); void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, int y2); +void IMB_rectfill_alpha(struct ImBuf *ibuf, const float value); /* this should not be here, really, we needed it for operating on render data, IMB_rectfill_area calls it */ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2); diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c index 44af7ffdb3f..844478e03cb 100644 --- a/source/blender/imbuf/intern/rectop.c +++ b/source/blender/imbuf/intern/rectop.c @@ -450,7 +450,7 @@ void IMB_rectblend(struct ImBuf *dbuf, struct ImBuf *sbuf, int destx, /* fill */ -void IMB_rectfill(struct ImBuf *drect, float col[4]) +void IMB_rectfill(struct ImBuf *drect, const float col[4]) { int num; @@ -561,3 +561,18 @@ void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, i if (!ibuf) return; buf_rectfill_area((unsigned char *) ibuf->rect, ibuf->rect_float, ibuf->x, ibuf->y, col, x1, y1, x2, y2); } + + +void IMB_rectfill_alpha(ImBuf *ibuf, const float value) +{ + int i; + if (ibuf->rect_float) { + float *fbuf= ibuf->rect_float + 3; + for (i = ibuf->x * ibuf->y; i > 0; i--, fbuf+= 4) { *fbuf = value; } + } + else { + const unsigned char cvalue= value * 255; + unsigned char *cbuf= ((unsigned char *)ibuf->rect) + 3; + for (i = ibuf->x * ibuf->y; i > 0; i--, cbuf+= 4) { *cbuf = cvalue; } + } +} diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 0087be8cca9..e6206007b7a 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2464,7 +2464,8 @@ static int get_next_bake_face(BakeShade *bs) if(tface && tface->tpage) { Image *ima= tface->tpage; ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - float vec[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + const float vec_alpha[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + const float vec_solid[4]= {0.0f, 0.0f, 0.0f, 1.0f}; if(ibuf==NULL) continue; @@ -2484,7 +2485,7 @@ static int get_next_bake_face(BakeShade *bs) imb_freerectImBuf(ibuf); /* clear image */ if(R.r.bake_flag & R_BAKE_CLEAR) - IMB_rectfill(ibuf, vec); + IMB_rectfill(ibuf, (ibuf->depth == 32) ? vec_alpha : vec_solid); /* might be read by UI to set active image for display */ R.bakebuf= ima; @@ -2671,10 +2672,14 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up for(ima= G.main->image.first; ima; ima= ima->id.next) { if((ima->id.flag & LIB_DOIT)==0) { ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + short is_new_alpha; if(!ibuf) continue; + /* must check before filtering */ + is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); + if(re->r.bake_filter) { if (usemask) { /* extend the mask +2 pixels from the image, @@ -2706,6 +2711,17 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up } } + /* if the bake results in new alpha then change the image setting */ + if(is_new_alpha) { + ibuf->depth= 32; + } + else { + if(re->r.bake_filter) { + /* clear alpha added by filtering */ + IMB_rectfill_alpha(ibuf, 1.0f); + } + } + ibuf->userflags |= IB_BITMAPDIRTY; if (ibuf->rect_float) IMB_rect_from_float(ibuf); } -- cgit v1.2.3 From b89924f5dde483fffbd071a5c84713a2bb357557 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 02:14:38 +0000 Subject: de-duplicate multires image filter function. (no functional change) --- source/blender/editors/object/object_bake.c | 41 +--------- .../blender/render/extern/include/RE_shader_ext.h | 4 +- source/blender/render/intern/source/rendercore.c | 87 +++++++++++----------- 3 files changed, 47 insertions(+), 85 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index c669a69b157..fc5f09f2fe0 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -854,49 +854,11 @@ static void finish_images(MultiresBakeRender *bkr) Image *ima= (Image*)link->data; int i; ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - short is_new_alpha; if(ibuf->x<=0 || ibuf->y<=0) continue; - /* must check before filtering */ - is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); - - /* Margin */ - if(bkr->bake_filter) { - char *temprect; - - /* extend the mask +2 pixels from the image, - * this is so colors dont blend in from outside */ - - for(i=0; ibake_filter; i++) - IMB_mask_filter_extend((char *)ibuf->userdata, ibuf->x, ibuf->y); - - temprect = MEM_dupallocN(ibuf->userdata); - - /* expand twice to clear this many pixels, so they blend back in */ - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - - /* clear all pixels in the margin */ - IMB_mask_clear(ibuf, temprect, FILTER_MASK_MARGIN); - MEM_freeN(temprect); - - for(i= 0; ibake_filter; i++) - IMB_filter_extend(ibuf, (char *)ibuf->userdata); - } - - /* if the bake results in new alpha then change the image setting */ - if(is_new_alpha) { - ibuf->depth= 32; - } - else { - if(bkr->bake_filter) { - /* clear alpha added by filtering */ - IMB_rectfill_alpha(ibuf, 1.0f); - } - } - + RE_bake_ibuf_filter(ibuf, (unsigned char *)ibuf->userdata, bkr->bake_filter); ibuf->userflags|= IB_BITMAPDIRTY; if(ibuf->mipmap[0]) { @@ -1349,7 +1311,6 @@ static void finish_bake_internal(BakeRender *bkr) /* freed when baking is done, but if its canceled we need to free here */ if (ibuf->userdata) { - printf("freed\n"); MEM_freeN(ibuf->userdata); ibuf->userdata= NULL; } diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 958c19ab9ca..a59ebdaa5a2 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -193,6 +193,8 @@ typedef struct ShadeInput /* node shaders... */ struct Tex; struct MTex; +struct ImBuf; + /* this one uses nodes */ int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres); /* nodes disabled */ @@ -209,6 +211,6 @@ struct Object; void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr); int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob, short *do_update, float *progress); struct Image *RE_bake_shade_get_image(void); +void RE_bake_ibuf_filter(struct ImBuf *ibuf, unsigned char *mask, const int filter); #endif /* RE_SHADER_EXT_H */ - diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index e6206007b7a..d0daf5b817a 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2590,6 +2590,48 @@ static void *do_bake_thread(void *bs_v) return NULL; } +void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *mask, const int filter) +{ + /* must check before filtering */ + const short is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); + + /* Margin */ + if(filter) { + char *temprect; + int i; + + /* extend the mask +2 pixels from the image, + * this is so colors dont blend in from outside */ + + for(i=0; i< filter; i++) + IMB_mask_filter_extend((char *)ibuf->userdata, ibuf->x, ibuf->y); + + temprect = MEM_dupallocN(ibuf->userdata); + + /* expand twice to clear this many pixels, so they blend back in */ + IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); + IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); + + /* clear all pixels in the margin */ + IMB_mask_clear(ibuf, temprect, FILTER_MASK_MARGIN); + MEM_freeN(temprect); + + for(i= 0; i < filter; i++) + IMB_filter_extend(ibuf, (char *)ibuf->userdata); + } + + /* if the bake results in new alpha then change the image setting */ + if(is_new_alpha) { + ibuf->depth= 32; + } + else { + if(filter) { + /* clear alpha added by filtering */ + IMB_rectfill_alpha(ibuf, 1.0f); + } + } +} + /* using object selection tags, the faces with UV maps get baked */ /* render should have been setup */ /* returns 0 if nothing was handled */ @@ -2677,50 +2719,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up if(!ibuf) continue; - /* must check before filtering */ - is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); - - if(re->r.bake_filter) { - if (usemask) { - /* extend the mask +2 pixels from the image, - * this is so colors dont blend in from outside */ - char *temprect; - - for(a=0; ar.bake_filter; a++) - IMB_mask_filter_extend((char *)ibuf->userdata, ibuf->x, ibuf->y); - - temprect = MEM_dupallocN(ibuf->userdata); - - /* expand twice to clear this many pixels, so they blend back in */ - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - - /* clear all pixels in the margin*/ - IMB_mask_clear(ibuf, temprect, FILTER_MASK_MARGIN); - MEM_freeN(temprect); - } - - for(a=0; ar.bake_filter; a++) { - /*the mask, ibuf->userdata - can be null, in this case only zero alpha is used */ - IMB_filter_extend(ibuf, (char *)ibuf->userdata); - } - - if (ibuf->userdata) { - MEM_freeN(ibuf->userdata); - ibuf->userdata= NULL; - } - } - - /* if the bake results in new alpha then change the image setting */ - if(is_new_alpha) { - ibuf->depth= 32; - } - else { - if(re->r.bake_filter) { - /* clear alpha added by filtering */ - IMB_rectfill_alpha(ibuf, 1.0f); - } - } + RE_bake_ibuf_filter(ibuf, (unsigned char *)ibuf->userdata, re->r.bake_filter); ibuf->userflags |= IB_BITMAPDIRTY; if (ibuf->rect_float) IMB_rect_from_float(ibuf); -- cgit v1.2.3 From 1669ab6648c81b7f17601cc28dd9bcf3c04f9bbb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 02:17:39 +0000 Subject: correction for own commit r37492 --- source/blender/render/intern/source/rendercore.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index d0daf5b817a..6b50ba417eb 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2625,7 +2625,7 @@ void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *mask, const int filter) ibuf->depth= 32; } else { - if(filter) { + if(filter && ibuf->depth != 32) { /* clear alpha added by filtering */ IMB_rectfill_alpha(ibuf, 1.0f); } @@ -2714,7 +2714,6 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up for(ima= G.main->image.first; ima; ima= ima->id.next) { if((ima->id.flag & LIB_DOIT)==0) { ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - short is_new_alpha; if(!ibuf) continue; -- cgit v1.2.3 From 6aa77771443391c827268ef0eac7a5e4382a3e44 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Wed, 15 Jun 2011 02:40:25 +0000 Subject: removed temporary debug logging --- source/blender/windowmanager/intern/wm_event_system.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 56805aa3d3f..b41eebc5298 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2376,8 +2376,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U wmWindow *owin; wmEvent event, *evt= win->eventstate; - printf("ghost (%d) --> wm\n", type); - /* initialize and copy state (only mouse x y and modifiers) */ event= *evt; @@ -2581,7 +2579,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U } case GHOST_kEventNDOFMotion: { - puts("ndof motion in wm"); event.type = NDOF_MOTION; attach_ndof_data(&event, customdata); wm_event_add(win, &event); @@ -2591,7 +2588,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U case GHOST_kEventNDOFButton: { GHOST_TEventNDOFButtonData* e = customdata; - puts("ndof button in wm"); event.type = NDOF_BUTTON_NONE + e->button; -- cgit v1.2.3 From 5e418071352977f0e55e0f84ffbb02ff8c5a6763 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 15 Jun 2011 09:45:26 +0000 Subject: Fix #27654: vertex parenting not working with constructive modifiers. Vertex parents were not requesting the original index layer, now do this as part of depsgraph building, and make constraints with vertex groups use the same system. Fix is based on patch by Campbell, but with some changes. --- source/blender/blenkernel/depsgraph_private.h | 3 ++- source/blender/blenkernel/intern/constraint.c | 13 +++---------- source/blender/blenkernel/intern/depsgraph.c | 17 +++++++++++++++-- source/blender/blenkernel/intern/object.c | 5 +++-- source/blender/blenloader/intern/readfile.c | 1 + source/blender/makesdna/DNA_object_types.h | 5 ++--- 6 files changed, 26 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/depsgraph_private.h b/source/blender/blenkernel/depsgraph_private.h index 1fed115893c..ef4f320602b 100644 --- a/source/blender/blenkernel/depsgraph_private.h +++ b/source/blender/blenkernel/depsgraph_private.h @@ -69,8 +69,9 @@ typedef struct DagNode void * ob; void * first_ancestor; int ancestor_count; - unsigned int lay; // accumulated layers of its relations + itself + unsigned int lay; // accumulated layers of its relations + itself unsigned int scelay; // layers due to being in scene + unsigned int customdata_mask; // customdata mask int lasttime; // if lasttime != DagForest->time, this node was not evaluated yet for flushing int BFS_dist; // BFS distance int DFS_dist; // DFS distance diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index d3c14a9dd12..18c9ab7dc90 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -449,16 +449,9 @@ static void contarget_get_mesh_mat (Scene *scene, Object *ob, const char *substr freeDM= 1; } else { - /* when not in EditMode, use the 'final' derived mesh - * - check if the custom data masks for derivedFinal mean that we can just use that - * (this is more effficient + sufficient for most cases) - */ - if (!(ob->lastDataMask & CD_MASK_MDEFORMVERT)) { - dm = mesh_get_derived_final(scene, ob, CD_MASK_MDEFORMVERT); - freeDM= 1; - } - else - dm = (DerivedMesh *)ob->derivedFinal; + /* when not in EditMode, use the 'final' derived mesh, depsgraph + * ensures we build with CD_MDEFORMVERT layer */ + dm = (DerivedMesh *)ob->derivedFinal; } /* only continue if there's a valid DerivedMesh */ diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 472d7d77b80..c2800410657 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -372,6 +372,9 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O node2->first_ancestor = ob; node2->ancestor_count += 1; } + + /* also build a custom data mask for dependencies that need certain layers */ + node->customdata_mask= 0; if (ob->type == OB_ARMATURE) { if (ob->pose){ @@ -451,8 +454,12 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O case PARSKEL: dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Parent"); break; - case PARVERT1: case PARVERT3: case PARBONE: + case PARVERT1: case PARVERT3: dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB, "Vertex Parent"); + node2->customdata_mask |= CD_MASK_ORIGINDEX; + break; + case PARBONE: + dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB, "Bone Parent"); break; default: if(ob->parent->type==OB_LATTICE) @@ -647,8 +654,11 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O if (ELEM(con->type, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_CLAMPTO)) dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB, cti->name); else { - if (ELEM3(obt->type, OB_ARMATURE, OB_MESH, OB_LATTICE) && (ct->subtarget[0])) + if (ELEM3(obt->type, OB_ARMATURE, OB_MESH, OB_LATTICE) && (ct->subtarget[0])) { dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB, cti->name); + if (obt->type == OB_MESH) + node2->customdata_mask |= CD_MASK_MDEFORMVERT; + } else dag_add_relation(dag, node2, node, DAG_RL_OB_OB, cti->name); } @@ -722,6 +732,9 @@ struct DagForest *build_dag(Main *bmain, Scene *sce, short mask) itA->node->color |= itA->type; } } + + /* also flush custom data mask */ + ((Object*)node->ob)->customdata_mask= node->customdata_mask; } } /* now set relations equal, so that when only one parent changes, the correct recalcs are found */ diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 16fa1605467..dff62b05bd3 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2641,11 +2641,12 @@ void object_handle_update(Scene *scene, Object *ob) #else /* ensure CD_MASK_BAREMESH for now */ EditMesh *em = (ob == scene->obedit)? BKE_mesh_get_editmesh(ob->data): NULL; + unsigned int data_mask= scene->customdata_mask | ob->customdata_mask | CD_MASK_BAREMESH; if(em) { - makeDerivedMesh(scene, ob, em, scene->customdata_mask | CD_MASK_BAREMESH); /* was CD_MASK_BAREMESH */ + makeDerivedMesh(scene, ob, em, data_mask); /* was CD_MASK_BAREMESH */ BKE_mesh_end_editmesh(ob->data, em); } else - makeDerivedMesh(scene, ob, NULL, scene->customdata_mask | CD_MASK_BAREMESH); + makeDerivedMesh(scene, ob, NULL, data_mask); #endif } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1e604c45772..222c4bcf6fc 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4321,6 +4321,7 @@ static void direct_link_object(FileData *fd, Object *ob) MEM_freeN(hook); } + ob->customdata_mask= 0; ob->bb= NULL; ob->derivedDeform= NULL; ob->derivedFinal= NULL; diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 54a885a0860..f4488c140a0 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -250,12 +250,11 @@ typedef struct Object { struct FluidsimSettings *fluidsimSettings; /* if fluidsim enabled, store additional settings */ struct DerivedMesh *derivedDeform, *derivedFinal; - int lastDataMask; /* the custom data layer mask that was last used to calculate derivedDeform and derivedFinal */ + unsigned int lastDataMask; /* the custom data layer mask that was last used to calculate derivedDeform and derivedFinal */ + unsigned int customdata_mask; /* (extra) custom data layer mask to use for creating derivedmesh, set by depsgraph */ unsigned int state; /* bit masks of game controllers that are active */ unsigned int init_state; /* bit masks of initial state as recorded by the users */ - int pad2; - ListBase gpulamp; /* runtime, for lamps only */ ListBase pc_ids; ListBase *duplilist; /* for temporary dupli list storage, only for use by RNA API */ -- cgit v1.2.3 From aaf7dae5f18d918cce34e6c54eb971778cdd1bb9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 15 Jun 2011 10:17:06 +0000 Subject: Code cleanup: remove unused shaded draw mode code. --- source/blender/blenkernel/BKE_displist.h | 5 - source/blender/blenkernel/intern/blender.c | 1 - source/blender/blenkernel/intern/displist.c | 496 --------------------- source/blender/editors/mesh/mesh_data.c | 5 +- source/blender/editors/object/object_add.c | 2 - source/blender/editors/object/object_relations.c | 2 - source/blender/editors/space_view3d/drawobject.c | 104 +---- source/blender/editors/space_view3d/view3d_draw.c | 4 - .../editors/transform/transform_conversions.c | 4 - .../blender/editors/transform/transform_generics.c | 3 - .../blender/render/extern/include/RE_shader_ext.h | 1 - source/blender/render/intern/source/rendercore.c | 34 -- source/blender/windowmanager/intern/wm_init_exit.c | 1 - 13 files changed, 3 insertions(+), 659 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h index 68745975dae..b00db53a199 100644 --- a/source/blender/blenkernel/BKE_displist.h +++ b/source/blender/blenkernel/BKE_displist.h @@ -97,15 +97,10 @@ extern void makeDispListCurveTypes_forRender(struct Scene *scene, struct Object extern void makeDispListCurveTypes_forOrco(struct Scene *scene, struct Object *ob, struct ListBase *dispbase); extern void makeDispListMBall(struct Scene *scene, struct Object *ob); extern void makeDispListMBall_forRender(struct Scene *scene, struct Object *ob, struct ListBase *dispbase); -extern void shadeDispList(struct Scene *scene, struct Base *base); -extern void shadeMeshMCol(struct Scene *scene, struct Object *ob, struct Mesh *me); int surfindex_displist(DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4); -void reshadeall_displist(struct Scene *scene); void filldisplist(struct ListBase *dispbase, struct ListBase *to, int flipnormal); -void fastshade_free_render(void); - float calc_taper(struct Scene *scene, struct Object *taperobj, int cur, int tot); /* add Orco layer to the displist object which has got derived mesh and return orco */ diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 5a9432552d2..0f545ad3ff9 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -154,7 +154,6 @@ static void clear_global(void) { // extern short winqueue_break; /* screen.c */ - fastshade_free_render(); /* lamps hang otherwise */ free_main(G.main); /* free all lib data */ // free_vertexpaint(); diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 9aa794aa97e..8f57490d057 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -65,9 +65,6 @@ #include "BKE_lattice.h" #include "BKE_modifier.h" -#include "RE_pipeline.h" -#include "RE_shader_ext.h" - #include "BLO_sys_types.h" // for intptr_t support #include "ED_curve.h" /* for BKE_curve_nurbs */ @@ -286,499 +283,6 @@ int surfindex_displist(DispList *dl, int a, int *b, int *p1, int *p2, int *p3, i return 1; } -/* ***************************** shade displist. note colors now are in rgb(a) order ******************** */ - -/* create default shade input... save cpu cycles with ugly global */ -/* XXXX bad code warning: local ShadeInput initialize... */ -static ShadeInput shi; -static void init_fastshade_shadeinput(Render *re) -{ - memset(&shi, 0, sizeof(ShadeInput)); - shi.lay= RE_GetScene(re)->lay; - shi.view[2]= -1.0f; - shi.passflag= SCE_PASS_COMBINED; - shi.combinedflag= -1; -} - -static Render *fastshade_get_render(Scene *UNUSED(scene)) -{ - // XXX 2.5: this crashes combined with previewrender - // due to global R so disabled for now -#if 0 - /* XXX ugly global still, but we can't do preview while rendering */ - if(G.rendering==0) { - - Render *re= RE_GetRender("_Shade View_"); - if(re==NULL) { - re= RE_NewRender("_Shade View_"); - - RE_Database_Baking(re, scene, 0, 0); /* 0= no faces */ - } - return re; - } -#endif - - return NULL; -} - -/* called on file reading */ -void fastshade_free_render(void) -{ - Render *re= RE_GetRender("_Shade View_"); - - if(re) { - RE_Database_Free(re); - RE_FreeRender(re); - } -} - - -static void fastshade_customdata(CustomData *fdata, int a, int j, Material *ma) -{ - CustomDataLayer *layer; - MTFace *mtface; - int index, needuv= ma->texco & TEXCO_UV; - char *vertcol; - - shi.totuv= 0; - shi.totcol= 0; - - for(index=0; indextotlayer; index++) { - layer= &fdata->layers[index]; - - if(needuv && layer->type == CD_MTFACE && shi.totuv < MAX_MTFACE) { - mtface= &((MTFace*)layer->data)[a]; - - shi.uv[shi.totuv].uv[0]= 2.0f*mtface->uv[j][0]-1.0f; - shi.uv[shi.totuv].uv[1]= 2.0f*mtface->uv[j][1]-1.0f; - shi.uv[shi.totuv].uv[2]= 1.0f; - - shi.uv[shi.totuv].name= layer->name; - shi.totuv++; - } - else if(layer->type == CD_MCOL && shi.totcol < MAX_MCOL) { - vertcol= (char*)&((MCol*)layer->data)[a*4 + j]; - - shi.col[shi.totcol].col[0]= ((float)vertcol[3])/255.0f; - shi.col[shi.totcol].col[1]= ((float)vertcol[2])/255.0f; - shi.col[shi.totcol].col[2]= ((float)vertcol[1])/255.0f; - - shi.col[shi.totcol].name= layer->name; - shi.totcol++; - } - } - - if(needuv && shi.totuv == 0) - VECCOPY(shi.uv[0].uv, shi.lo); - - if(shi.totcol) - VECCOPY(shi.vcol, shi.col[0].col); -} - -static void fastshade(float *co, float *nor, float *orco, Material *ma, char *col1, char *col2) -{ - ShadeResult shr; - int a; - - VECCOPY(shi.co, co); - shi.vn[0]= -nor[0]; - shi.vn[1]= -nor[1]; - shi.vn[2]= -nor[2]; - VECCOPY(shi.vno, shi.vn); - VECCOPY(shi.facenor, shi.vn); - - if(ma->texco) { - VECCOPY(shi.lo, orco); - - if(ma->texco & TEXCO_GLOB) { - VECCOPY(shi.gl, shi.lo); - } - if(ma->texco & TEXCO_WINDOW) { - VECCOPY(shi.winco, shi.lo); - } - if(ma->texco & TEXCO_STICKY) { - VECCOPY(shi.sticky, shi.lo); - } - if(ma->texco & TEXCO_OBJECT) { - VECCOPY(shi.co, shi.lo); - } - if(ma->texco & TEXCO_NORM) { - VECCOPY(shi.orn, shi.vn); - } - if(ma->texco & TEXCO_REFL) { - float inp= 2.0f * (shi.vn[2]); - shi.ref[0]= (inp*shi.vn[0]); - shi.ref[1]= (inp*shi.vn[1]); - shi.ref[2]= (-1.0f + inp*shi.vn[2]); - } - } - - shi.mat= ma; /* set each time... node shaders change it */ - RE_shade_external(NULL, &shi, &shr); - - a= 256.0f*(shr.combined[0]); - col1[0]= CLAMPIS(a, 0, 255); - a= 256.0f*(shr.combined[1]); - col1[1]= CLAMPIS(a, 0, 255); - a= 256.0f*(shr.combined[2]); - col1[2]= CLAMPIS(a, 0, 255); - - if(col2) { - shi.vn[0]= -shi.vn[0]; - shi.vn[1]= -shi.vn[1]; - shi.vn[2]= -shi.vn[2]; - - shi.mat= ma; /* set each time... node shaders change it */ - RE_shade_external(NULL, &shi, &shr); - - a= 256.0f*(shr.combined[0]); - col2[0]= CLAMPIS(a, 0, 255); - a= 256.0f*(shr.combined[1]); - col2[1]= CLAMPIS(a, 0, 255); - a= 256.0f*(shr.combined[2]); - col2[2]= CLAMPIS(a, 0, 255); - } -} - -static void init_fastshade_for_ob(Render *re, Object *ob, int *need_orco_r, float mat[4][4], float imat[3][3]) -{ - float tmat[4][4]; - float amb[3]= {0.0f, 0.0f, 0.0f}; - int a; - - /* initialize globals in render */ - RE_shade_external(re, NULL, NULL); - - /* initialize global here */ - init_fastshade_shadeinput(re); - - RE_DataBase_GetView(re, tmat); - mul_m4_m4m4(mat, ob->obmat, tmat); - - invert_m4_m4(tmat, mat); - copy_m3_m4(imat, tmat); - if(ob->transflag & OB_NEG_SCALE) mul_m3_fl(imat, -1.0); - - if (need_orco_r) *need_orco_r= 0; - for(a=0; atotcol; a++) { - Material *ma= give_current_material(ob, a+1); - if(ma) { - init_render_material(ma, 0, amb); - - if(ma->texco & TEXCO_ORCO) { - if (need_orco_r) *need_orco_r= 1; - } - } - } -} - -static void end_fastshade_for_ob(Object *ob) -{ - int a; - - for(a=0; atotcol; a++) { - Material *ma= give_current_material(ob, a+1); - if(ma) - end_render_material(ma); - } -} - - -static void mesh_create_shadedColors(Render *re, Object *ob, int onlyForMesh, unsigned int **col1_r, unsigned int **col2_r) -{ - Mesh *me= ob->data; - DerivedMesh *dm; - MVert *mvert; - MFace *mface; - unsigned int *col1, *col2; - float *orco, *vnors, *nors, imat[3][3], mat[4][4], vec[3]; - int a, i, need_orco, totface, totvert; - CustomDataMask dataMask = CD_MASK_BAREMESH | CD_MASK_MCOL - | CD_MASK_MTFACE | CD_MASK_NORMAL; - - - init_fastshade_for_ob(re, ob, &need_orco, mat, imat); - - if(need_orco) - dataMask |= CD_MASK_ORCO; - - if (onlyForMesh) - dm = mesh_get_derived_deform(RE_GetScene(re), ob, dataMask); - else - dm = mesh_get_derived_final(RE_GetScene(re), ob, dataMask); - - mvert = dm->getVertArray(dm); - mface = dm->getFaceArray(dm); - nors = dm->getFaceDataArray(dm, CD_NORMAL); - totvert = dm->getNumVerts(dm); - totface = dm->getNumFaces(dm); - orco= dm->getVertDataArray(dm, CD_ORCO); - - if (onlyForMesh) { - col1 = *col1_r; - col2 = NULL; - } else { - *col1_r = col1 = MEM_mallocN(sizeof(*col1)*totface*4, "col1"); - - if (col2_r && (me->flag & ME_TWOSIDED)) - col2 = MEM_mallocN(sizeof(*col2)*totface*4, "col2"); - else - col2 = NULL; - - if (col2_r) *col2_r = col2; - } - - /* vertexnormals */ - vnors= MEM_mallocN(totvert*3*sizeof(float), "vnors disp"); - for (a=0; ano[0]; - float yn= mv->no[1]; - float zn= mv->no[2]; - - /* transpose ! */ - vn[0]= imat[0][0]*xn+imat[0][1]*yn+imat[0][2]*zn; - vn[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn; - vn[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn; - normalize_v3(vn); - } - - for (i=0; imat_nr+1); - int j, vidx[4], nverts= mf->v4?4:3; - unsigned char *col1base= (unsigned char*) &col1[i*4]; - unsigned char *col2base= (unsigned char*) (col2?&col2[i*4]:NULL); - float nor[3], n1[3]; - - if(ma==NULL) ma= &defmaterial; - - vidx[0]= mf->v1; - vidx[1]= mf->v2; - vidx[2]= mf->v3; - vidx[3]= mf->v4; - - if (nors) { - VECCOPY(nor, &nors[i*3]); - } else { - if (mf->v4) - normal_quad_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co, mvert[mf->v4].co); - else - normal_tri_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co); - } - - n1[0]= imat[0][0]*nor[0]+imat[0][1]*nor[1]+imat[0][2]*nor[2]; - n1[1]= imat[1][0]*nor[0]+imat[1][1]*nor[1]+imat[1][2]*nor[2]; - n1[2]= imat[2][0]*nor[0]+imat[2][1]*nor[1]+imat[2][2]*nor[2]; - normalize_v3(n1); - - for (j=0; jflag & ME_SMOOTH)?&vnors[3*vidx[j]]:n1; - - mul_v3_m4v3(vec, mat, mv->co); - - mul_v3_v3fl(vec, vn, 0.001f); - - fastshade_customdata(&dm->faceData, i, j, ma); - fastshade(vec, vn, orco?&orco[vidx[j]*3]:mv->co, ma, col1, col2); - } - } - MEM_freeN(vnors); - - dm->release(dm); - - end_fastshade_for_ob(ob); -} - -void shadeMeshMCol(Scene *scene, Object *ob, Mesh *me) -{ - Render *re= fastshade_get_render(scene); - int a; - char *cp; - unsigned int *mcol= (unsigned int*)me->mcol; - - if(re) { - mesh_create_shadedColors(re, ob, 1, &mcol, NULL); - me->mcol= (MCol*)mcol; - - /* swap bytes */ - for(cp= (char *)me->mcol, a= 4*me->totface; a>0; a--, cp+=4) { - SWAP(char, cp[0], cp[3]); - SWAP(char, cp[1], cp[2]); - } - } -} - -/* has base pointer, to check for layer */ -/* called from drawobject.c */ -void shadeDispList(Scene *scene, Base *base) -{ - Object *ob= base->object; - DispList *dl, *dlob; - Material *ma = NULL; - Render *re; - float imat[3][3], mat[4][4], vec[3]; - float *fp, *nor, n1[3]; - unsigned int *col1; - int a, need_orco; - - re= fastshade_get_render(scene); - if(re==NULL) - return; - - dl = find_displist(&ob->disp, DL_VERTCOL); - if (dl) { - BLI_remlink(&ob->disp, dl); - free_disp_elem(dl); - } - - if(ob->type==OB_MESH) { - dl= MEM_callocN(sizeof(DispList), "displistshade"); - dl->type= DL_VERTCOL; - - mesh_create_shadedColors(re, ob, 0, &dl->col1, &dl->col2); - - /* add dl to ob->disp after mesh_create_shadedColors, because it - might indirectly free ob->disp */ - BLI_addtail(&ob->disp, dl); - } - else { - - init_fastshade_for_ob(re, ob, &need_orco, mat, imat); - - if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) { - - /* now we need the normals */ - dl= ob->disp.first; - - while(dl) { - dlob= MEM_callocN(sizeof(DispList), "displistshade"); - BLI_addtail(&ob->disp, dlob); - dlob->type= DL_VERTCOL; - dlob->parts= dl->parts; - dlob->nr= dl->nr; - - if(dl->type==DL_INDEX3) { - col1= dlob->col1= MEM_mallocN(sizeof(int)*dl->nr, "col1"); - } - else { - col1= dlob->col1= MEM_mallocN(sizeof(int)*dl->parts*dl->nr, "col1"); - } - - - ma= give_current_material(ob, dl->col+1); - if(ma==NULL) ma= &defmaterial; - - if(dl->type==DL_INDEX3) { - if(dl->nors) { - /* there's just one normal */ - n1[0]= imat[0][0]*dl->nors[0]+imat[0][1]*dl->nors[1]+imat[0][2]*dl->nors[2]; - n1[1]= imat[1][0]*dl->nors[0]+imat[1][1]*dl->nors[1]+imat[1][2]*dl->nors[2]; - n1[2]= imat[2][0]*dl->nors[0]+imat[2][1]*dl->nors[1]+imat[2][2]*dl->nors[2]; - normalize_v3(n1); - - fp= dl->verts; - - a= dl->nr; - while(a--) { - mul_v3_m4v3(vec, mat, fp); - - fastshade(vec, n1, fp, ma, (char *)col1, NULL); - - fp+= 3; col1++; - } - } - } - else if(dl->type==DL_SURF) { - if(dl->nors) { - a= dl->nr*dl->parts; - fp= dl->verts; - nor= dl->nors; - - while(a--) { - mul_v3_m4v3(vec, mat, fp); - - n1[0]= imat[0][0]*nor[0]+imat[0][1]*nor[1]+imat[0][2]*nor[2]; - n1[1]= imat[1][0]*nor[0]+imat[1][1]*nor[1]+imat[1][2]*nor[2]; - n1[2]= imat[2][0]*nor[0]+imat[2][1]*nor[1]+imat[2][2]*nor[2]; - normalize_v3(n1); - - fastshade(vec, n1, fp, ma, (char *)col1, NULL); - - fp+= 3; nor+= 3; col1++; - } - } - } - dl= dl->next; - } - } - else if(ob->type==OB_MBALL) { - /* there are normals already */ - dl= ob->disp.first; - - while(dl) { - - if(dl->type==DL_INDEX4) { - if(dl->nors) { - if(dl->col1) MEM_freeN(dl->col1); - col1= dl->col1= MEM_mallocN(sizeof(int)*dl->nr, "col1"); - - ma= give_current_material(ob, dl->col+1); - if(ma==NULL) ma= &defmaterial; - - fp= dl->verts; - nor= dl->nors; - - a= dl->nr; - while(a--) { - mul_v3_m4v3(vec, mat, fp); - - /* transpose ! */ - n1[0]= imat[0][0]*nor[0]+imat[0][1]*nor[1]+imat[0][2]*nor[2]; - n1[1]= imat[1][0]*nor[0]+imat[1][1]*nor[1]+imat[1][2]*nor[2]; - n1[2]= imat[2][0]*nor[0]+imat[2][1]*nor[1]+imat[2][2]*nor[2]; - normalize_v3(n1); - - fastshade(vec, n1, fp, ma, (char *)col1, NULL); - - fp+= 3; col1++; nor+= 3; - } - } - } - dl= dl->next; - } - } - - end_fastshade_for_ob(ob); - } -} - -/* frees render and shade part of displists */ -/* note: dont do a shade again, until a redraw happens */ -void reshadeall_displist(Scene *scene) -{ - Base *base; - Object *ob; - - fastshade_free_render(); - - for(base= scene->base.first; base; base= base->next) { - ob= base->object; - - if(ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) - freedisplist(&ob->disp); - - if(base->lay & scene->lay) { - /* Metaballs have standard displist at the Object */ - if(ob->type==OB_MBALL) shadeDispList(scene, base); - } - } -} - /* ****************** make displists ********************* */ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase, int forRender) diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index f3e26cfee36..c4a302d4d18 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -235,7 +235,7 @@ int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me) return 1; } -int ED_mesh_color_add(bContext *C, Scene *scene, Object *ob, Mesh *me, const char *name, int active_set) +int ED_mesh_color_add(bContext *C, Scene *UNUSED(scene), Object *UNUSED(ob), Mesh *me, const char *name, int active_set) { EditMesh *em; MCol *mcol; @@ -272,9 +272,6 @@ int ED_mesh_color_add(bContext *C, Scene *scene, Object *ob, Mesh *me, const cha CustomData_set_layer_active(&me->fdata, CD_MCOL, layernum); mesh_update_customdata_pointers(me); - - if(!mcol) - shadeMeshMCol(scene, ob, me); } DAG_id_tag_update(&me->id, 0); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index c5236a38970..7ca172c6945 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -823,8 +823,6 @@ static int object_delete_exec(bContext *C, wmOperator *UNUSED(op)) } CTX_DATA_END; - if(islamp) reshadeall_displist(scene); /* only frees displist */ - DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index f7158e4b4ec..aa2e6d2c145 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1127,8 +1127,6 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) } CTX_DATA_END; } - - if(islamp) reshadeall_displist(scene); /* only frees */ /* warning, active object may be hidden now */ diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 35edd961b1e..dcdb7954b16 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -215,7 +215,7 @@ int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt) if(ob==OBACT && (ob && ob->mode & OB_MODE_WEIGHT_PAINT)) return 0; - return (scene->gm.matmode == GAME_MAT_GLSL) && (dt >= OB_SHADED); + return (scene->gm.matmode == GAME_MAT_GLSL) && (dt > OB_SOLID); } static int check_material_alpha(Base *base, Mesh *me, int glsl) @@ -2584,7 +2584,6 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D const short is_paint_sel= (ob==OBACT && paint_facesel_test(ob)); int draw_wire = 0; int /* totvert,*/ totedge, totface; - DispList *dl; DerivedMesh *dm= mesh_get_derived_final(scene, ob, scene->customdata_mask); if(!dm) @@ -2718,10 +2717,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D } } else if(dt==OB_SHADED) { - int do_draw= 1; /* to resolve all G.f settings below... */ - if(ob==OBACT) { - do_draw= 0; if(ob && ob->mode & OB_MODE_WEIGHT_PAINT) { /* enforce default material settings */ GPU_enable_material(0, NULL); @@ -2750,38 +2746,6 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 0, GPU_enable_material); } } - else do_draw= 1; - } - if(do_draw) { - dl = ob->disp.first; - if (!dl || !dl->col1) { - /* release and reload derivedmesh because it might be freed in - shadeDispList due to a different datamask */ - dm->release(dm); - shadeDispList(scene, base); - dl = find_displist(&ob->disp, DL_VERTCOL); - dm= mesh_get_derived_final(scene, ob, scene->customdata_mask); - } - - if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !draw_wire) { - draw_mesh_object_outline(v3d, ob, dm); - } - - /* False for dupliframe objects */ - if (dl) { - unsigned int *obCol1 = dl->col1; - unsigned int *obCol2 = dl->col2; - - dm->drawFacesColored(dm, me->flag&ME_TWOSIDED, (unsigned char*) obCol1, (unsigned char*) obCol2); - } - - if(base->flag & SELECT) { - UI_ThemeColor((ob==OBACT)?TH_ACTIVE:TH_SELECT); - } else { - UI_ThemeColor(TH_WIRE); - } - if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) - dm->drawLooseEdges(dm); } } @@ -3139,57 +3103,6 @@ static void drawDispListsolid(ListBase *lb, Object *ob, int glsl) glFrontFace(GL_CCW); } -static void drawDispListshaded(ListBase *lb, Object *ob) -{ - DispList *dl, *dlob; - unsigned int *cdata; - - if(lb==NULL) return; - - glShadeModel(GL_SMOOTH); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - dl= lb->first; - dlob= ob->disp.first; - while(dl && dlob) { - - cdata= dlob->col1; - if(cdata==NULL) break; - - switch(dl->type) { - case DL_SURF: - if(dl->index) { - glVertexPointer(3, GL_FLOAT, 0, dl->verts); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, cdata); - glDrawElements(GL_QUADS, 4*dl->totindex, GL_UNSIGNED_INT, dl->index); - } - break; - - case DL_INDEX3: - - glVertexPointer(3, GL_FLOAT, 0, dl->verts); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, cdata); - glDrawElements(GL_TRIANGLES, 3*dl->parts, GL_UNSIGNED_INT, dl->index); - break; - - case DL_INDEX4: - - glVertexPointer(3, GL_FLOAT, 0, dl->verts); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, cdata); - glDrawElements(GL_QUADS, 4*dl->parts, GL_UNSIGNED_INT, dl->index); - break; - } - - dl= dl->next; - dlob= dlob->next; - } - - glShadeModel(GL_FLAT); - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); -} - static void drawCurveDMWired(Object *ob) { DerivedMesh *dm = ob->derivedFinal; @@ -3270,10 +3183,6 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas drawDispListsolid(lb, ob, 1); GPU_end_object_materials(); } - else if(dt == OB_SHADED) { - if(ob->disp.first==NULL) shadeDispList(scene, base); - drawDispListshaded(lb, ob); - } else { GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); @@ -3312,10 +3221,6 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas drawDispListsolid(lb, ob, 1); GPU_end_object_materials(); } - else if(dt==OB_SHADED) { - if(ob->disp.first==NULL) shadeDispList(scene, base); - drawDispListshaded(lb, ob); - } else { GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); @@ -3341,11 +3246,6 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas drawDispListsolid(lb, ob, 1); GPU_end_object_materials(); } - else if(dt == OB_SHADED) { - dl= lb->first; - if(dl && dl->col1==NULL) shadeDispList(scene, base); - drawDispListshaded(lb, ob); - } else { GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); @@ -6311,7 +6211,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) } } - if(dtflag2 & V3D_RENDER_OVERRIDE)==0) { + if(dt<=OB_SOLID && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { if((ob->gameflag & OB_DYNAMIC) || ((ob->gameflag & OB_BOUNDS) && (ob->boundtype == OB_BOUND_SPHERE))) { float imat[4][4], vec[3]= {0.0f, 0.0f, 0.0f}; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 573951da4ca..d316ef50679 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2074,10 +2074,6 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d) { CustomDataMask mask= 0; - if(v3d->drawtype == OB_SHADED) { - /* this includes normals for mesh_create_shadedColors */ - mask |= CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_NORMAL | CD_MASK_ORCO; - } if((v3d->drawtype == OB_TEXTURE) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { mask |= CD_MASK_MTFACE | CD_MASK_MCOL; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 68aa27a7b62..bf14b6e99ec 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5077,10 +5077,6 @@ void special_aftertrans_update(bContext *C, TransInfo *t) #if 0 // TRANSFORM_FIX_ME if(resetslowpar) reset_slowparents(); - - /* note; should actually only be done for all objects when a lamp is moved... (ton) */ - if(t->spacetype==SPACE_VIEW3D && G.vd->drawtype == OB_SHADED) - reshadeall_displist(); #endif } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 71ebe5e051c..20a26d8c58d 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -840,9 +840,6 @@ void recalcData(TransInfo *t) DAG_id_tag_update(&ob->id, OB_RECALC_OB); } } - - if(((View3D*)t->view)->drawtype == OB_SHADED) - reshadeall_displist(t->scene); } } diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index a59ebdaa5a2..b6af781f4d4 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -208,7 +208,6 @@ struct Render; struct Image; struct Object; -void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr); int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob, short *do_update, float *progress); struct Image *RE_bake_shade_get_image(void); void RE_bake_ibuf_filter(struct ImBuf *ibuf, unsigned char *mask, const int filter); diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 6b50ba417eb..7c197bb440e 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -1956,40 +1956,6 @@ void add_halo_flare(Render *re) R.r.mode= mode; } -/* ************************* used for shaded view ************************ */ - -/* if *re, then initialize, otherwise execute */ -void RE_shade_external(Render *re, ShadeInput *shi, ShadeResult *shr) -{ - static VlakRen vlr; - static ObjectRen obr; - static ObjectInstanceRen obi; - - /* init */ - if(re) { - R= *re; - - /* fake render face */ - memset(&vlr, 0, sizeof(VlakRen)); - memset(&obr, 0, sizeof(ObjectRen)); - memset(&obi, 0, sizeof(ObjectInstanceRen)); - obr.lay= -1; - obi.obr= &obr; - - return; - } - shi->vlr= &vlr; - shi->obr= &obr; - shi->obi= &obi; - - if(shi->mat->nodetree && shi->mat->use_nodes) - ntreeShaderExecTree(shi->mat->nodetree, shi, shr); - else { - shade_input_init_material(shi); - shade_material_loop(shi, shr); - } -} - /* ************************* bake ************************ */ diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index d57c94a5826..2a733bf28a9 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -379,7 +379,6 @@ void WM_exit(bContext *C) BKE_freecubetable(); - fastshade_free_render(); /* shaded view */ ED_preview_free_dbase(); /* frees a Main dbase, before free_blender! */ if(C && CTX_wm_manager(C)) -- cgit v1.2.3 From 39443dcb53d56192bdc3165436933c87f4b3f961 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 15 Jun 2011 10:19:35 +0000 Subject: Code cleanup: remove reference to workob global that no longer exists. --- source/blender/makesdna/DNA_object_types.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index f4488c140a0..dfc7d42793d 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -290,10 +290,6 @@ typedef struct DupliObject { float orco[3], uv[2]; } DupliObject; -/* this work object is defined in object.c */ -extern Object workob; - - /* **************** OBJECT ********************* */ /* used many places... should be specialized */ -- cgit v1.2.3 From 2164847928eeadaf754a08e17b030ee93f3815aa Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 11:50:45 +0000 Subject: fix for openexr include path, for both cmake and scons a custom openexr install wouldn't work since it expected BF_OPENEXR/include and BF_OPENEXR/include/OpenEXR to be in the search path. --- .../blender/imbuf/intern/openexr/openexr_api.cpp | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index 9fd6cd1c3fa..7b528ed9624 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -76,18 +76,18 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void) #include #include #else -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #endif using namespace Imf; -- cgit v1.2.3 From 4f3936083a67cd106124dd0392c5ef4a4dcdad7b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 12:09:02 +0000 Subject: replace own inline cmake include search logic for a typical FindXXX.cmake module. --- source/blender/imbuf/intern/openexr/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt index c1140bc59a9..9ca4dff5bc8 100644 --- a/source/blender/imbuf/intern/openexr/CMakeLists.txt +++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt @@ -44,7 +44,7 @@ set(SRC ) if(WITH_IMAGE_OPENEXR) - list(APPEND INC_SYS ${OPENEXR_INC}) + list(APPEND INC_SYS ${OPENEXR_INCLUDE_DIRS}) add_definitions(-DWITH_OPENEXR) endif() -- cgit v1.2.3 From 08c155845db4ba8157519f60707fcb156f27fd2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Jun 2011 14:06:25 +0000 Subject: remove unused arguments --- source/blender/blenkernel/BKE_action.h | 2 +- source/blender/blenkernel/intern/action.c | 2 +- source/blender/blenkernel/intern/constraint.c | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 698f0f0fecf..7d3de68c005 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -216,7 +216,7 @@ void pose_remove_group(struct Object *ob); /* Assorted Evaluation ----------------- */ /* Used for the Action Constraint */ -void what_does_obaction(struct Scene *scene, struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], float cframe); +void what_does_obaction(struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], float cframe); /* for proxy */ void copy_pose_result(struct bPose *to, struct bPose *from); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 77f56058a4f..f7086c81756 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -1128,7 +1128,7 @@ void copy_pose_result(bPose *to, bPose *from) /* For the calculation of the effects of an Action at the given frame on an object * This is currently only used for the Action Constraint */ -void what_does_obaction (Scene *UNUSED(scene), Object *ob, Object *workob, bPose *pose, bAction *act, char groupname[], float cframe) +void what_does_obaction (Object *ob, Object *workob, bPose *pose, bAction *act, char groupname[], float cframe) { bActionGroup *agrp= action_groups_find_named(act, groupname); diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 18c9ab7dc90..7be4744a224 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -424,7 +424,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4 /* ------------ General Target Matrix Tools ---------- */ /* function that sets the given matrix based on given vertex group in mesh */ -static void contarget_get_mesh_mat (Scene *scene, Object *ob, const char *substring, float mat[][4]) +static void contarget_get_mesh_mat (Object *ob, const char *substring, float mat[][4]) { DerivedMesh *dm = NULL; Mesh *me= ob->data; @@ -580,7 +580,7 @@ static void contarget_get_lattice_mat (Object *ob, const char *substring, float /* generic function to get the appropriate matrix for most target cases */ /* The cases where the target can be object data have not been implemented */ -static void constraint_target_to_mat4 (Scene *scene, Object *ob, const char *substring, float mat[][4], short from, short to, float headtail) +static void constraint_target_to_mat4 (Object *ob, const char *substring, float mat[][4], short from, short to, float headtail) { /* Case OBJECT */ if (!strlen(substring)) { @@ -597,7 +597,7 @@ static void constraint_target_to_mat4 (Scene *scene, Object *ob, const char *sub * way as constraints can only really affect things on object/bone level. */ else if (ob->type == OB_MESH) { - contarget_get_mesh_mat(scene, ob, substring, mat); + contarget_get_mesh_mat(ob, substring, mat); constraint_mat_convertspace(ob, NULL, mat, from, to); } else if (ob->type == OB_LATTICE) { @@ -677,10 +677,10 @@ static bConstraintTypeInfo CTI_CONSTRNAME = { /* This function should be used for the get_target_matrix member of all * constraints that are not picky about what happens to their target matrix. */ -static void default_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime)) +static void default_get_tarmat (bConstraint *con, bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime)) { if (VALID_CONS_TARGET(ct)) - constraint_target_to_mat4(cob->scene, ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); + constraint_target_to_mat4(ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); else if (ct) unit_m4(ct->matrix); } @@ -1152,7 +1152,7 @@ static void kinematic_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstra bKinematicConstraint *data= con->data; if (VALID_CONS_TARGET(ct)) - constraint_target_to_mat4(cob->scene, ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); + constraint_target_to_mat4(ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); else if (ct) { if (data->flag & CONSTRAINT_IK_AUTO) { Object *ob= cob->ob; @@ -2039,7 +2039,7 @@ static void pycon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraintT /* firstly calculate the matrix the normal way, then let the py-function override * this matrix if it needs to do so */ - constraint_target_to_mat4(cob->scene, ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); + constraint_target_to_mat4(ct->tar, ct->subtarget, ct->matrix, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); /* only execute target calculation if allowed */ #ifdef WITH_PYTHON @@ -2158,7 +2158,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint unit_m4(ct->matrix); /* get the transform matrix of the target */ - constraint_target_to_mat4(cob->scene, ct->tar, ct->subtarget, tempmat, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); + constraint_target_to_mat4(ct->tar, ct->subtarget, tempmat, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); /* determine where in transform range target is */ /* data->type is mapped as follows for backwards compatability: @@ -2209,7 +2209,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint tchan->rotmode= pchan->rotmode; /* evaluate action using workob (it will only set the PoseChannel in question) */ - what_does_obaction(cob->scene, cob->ob, &workob, pose, data->act, pchan->name, t); + what_does_obaction(cob->ob, &workob, pose, data->act, pchan->name, t); /* convert animation to matrices for use here */ pchan_calc_mat(tchan); @@ -2223,7 +2223,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint /* evaluate using workob */ // FIXME: we don't have any consistent standards on limiting effects on object... - what_does_obaction(cob->scene, cob->ob, &workob, NULL, data->act, NULL, t); + what_does_obaction(cob->ob, &workob, NULL, data->act, NULL, t); object_to_mat4(&workob, ct->matrix); } else { -- cgit v1.2.3 From a3e296fc4060ab9aac46a8ec2f18696d6776d653 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 15 Jun 2011 18:59:22 +0000 Subject: Committing patch #25676 Anisotropic filtering in viewport and BGE by me. This patch adds anisotropic filtering of textures in the viewport and the BGE. The quality of the filtering is adjustable in the user preferences under System. For more information on anisotropic filtering: http://en.wikipedia.org/wiki/Anisotropic_filtering One current limitation of this setup (having the option a user preference) is it makes runtimes more troublesome. Runtimes don't have user preferences set, so for now the blender player defaults to 2x AF. Options will be added later to change this value (probably a command line option). --- source/blender/editors/interface/resources.c | 2 ++ source/blender/gpu/GPU_draw.h | 5 +++++ source/blender/gpu/intern/gpu_draw.c | 25 +++++++++++++++++++++- source/blender/makesdna/DNA_userdef_types.h | 3 +-- source/blender/makesrna/intern/rna_userdef.c | 21 ++++++++++++++++++ source/blender/windowmanager/intern/wm_init_exit.c | 1 + 6 files changed, 54 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 6527e0140b8..3f825762d74 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1580,6 +1580,8 @@ void init_userdef_do_versions(void) U.dragthreshold= 5; if (U.widget_unit==0) U.widget_unit= (U.dpi * 20 + 36)/72; + if (U.anisotropic_filter <= 0) + U.anisotropic_filter = 1; /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h index 18a6f1ba73d..d75b8db2c4e 100644 --- a/source/blender/gpu/GPU_draw.h +++ b/source/blender/gpu/GPU_draw.h @@ -112,6 +112,11 @@ void GPU_set_mipmap(int mipmap); void GPU_set_linear_mipmap(int linear); void GPU_paint_set_mipmap(int mipmap); +/* Anisotropic filtering settings + * - these will free textures on changes */ +void GPU_set_anisotropic(float value); +float GPU_get_anisotropic(void); + /* Image updates and free * - these deal with images bound as opengl textures */ diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 7dfbc52819e..87d25ac850a 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -246,8 +246,9 @@ static struct GPUTextureState { int domipmap, linearmipmap; int alphamode; + float anisotropic; MTFace *lasttface; -} GTS = {0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 1, 0, -1, NULL}; +} GTS = {0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 1, 0, -1, 1.f, NULL}; /* Mipmap settings */ @@ -292,6 +293,26 @@ static GLenum gpu_get_mipmap_filter(int mag) } } +/* Anisotropic filtering settings */ +void GPU_set_anisotropic(float value) +{ + if (GTS.anisotropic != value) + { + GPU_free_images(); + + /* Clamp value to the maximum value the graphics card supports */ + if (value > GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT) + value = GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT; + + GTS.anisotropic = value; + } +} + +float GPU_get_anisotropic() +{ + return GTS.anisotropic; +} + /* Set OpenGL state for an MTFace */ static void gpu_make_repbind(Image *ima) @@ -559,6 +580,8 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int ima->tpageflag |= IMA_MIPMAP_COMPLETE; } + if (GLEW_EXT_texture_filter_anisotropic) + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, GPU_get_anisotropic()); /* set to modulate with vertex color */ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 907710ae4cd..ae57cf3f80b 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -375,7 +375,7 @@ typedef struct UserDef { short scrcastwait; /* milliseconds between screencast snapshots */ short widget_unit; /* defaults to 20 for 72 DPI setting */ - short pad[3]; + short anisotropic_filter; char versemaster[160]; char verseuser[160]; @@ -385,7 +385,6 @@ typedef struct UserDef { short autokey_flag; /* flags for autokeying */ short text_render, pad9; /*options for text rendering*/ - float pad10; struct ColorBand coba_weight; /* from texture.h */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 14af5ed7a3f..cf371fbf9bc 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -117,6 +117,12 @@ static void rna_userdef_mipmap_update(Main *bmain, Scene *scene, PointerRNA *ptr rna_userdef_update(bmain, scene, ptr); } +static void rna_userdef_anisotropic_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + GPU_set_anisotropic(U.anisotropic_filter); + rna_userdef_update(bmain, scene, ptr); +} + static void rna_userdef_gl_texture_limit_update(Main *bmain, Scene *scene, PointerRNA *ptr) { GPU_free_images(); @@ -2346,6 +2352,14 @@ static void rna_def_userdef_system(BlenderRNA *brna) {128, "CLAMP_128", 0, "128", ""}, {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem anisotropic_items[] ={ + {1, "FILTER_0", 0, "Off", ""}, + {2, "FILTER_2", 0, "2x", ""}, + {4, "FILTER_4", 0, "4x", ""}, + {8, "FILTER_8", 0, "8x", ""}, + {16, "FILTER_16", 0, "16x", ""}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem audio_mixing_samples_items[] = { {256, "SAMPLES_256", 0, "256", "Set audio mixing buffer size to 256 samples"}, {512, "SAMPLES_512", 0, "512", "Set audio mixing buffer size to 512 samples"}, @@ -2568,6 +2582,13 @@ static void rna_def_userdef_system(BlenderRNA *brna) prop= RNA_def_property(srna, "use_antialiasing", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "gameflags", USER_DISABLE_AA); RNA_def_property_ui_text(prop, "Anti-aliasing", "Use anti-aliasing for the 3D view (may impact redraw performance)"); + + prop= RNA_def_property(srna, "anisotropic_filter", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "anisotropic_filter"); + RNA_def_property_enum_items(prop, anisotropic_items); + RNA_def_property_enum_default(prop, 1); + RNA_def_property_ui_text(prop, "Anisotropic Filter", "The quality of the anisotropic filtering (values greater than 1.0 enable anisotropic filtering)"); + RNA_def_property_update(prop, 0, "rna_userdef_anisotropic_update"); prop= RNA_def_property(srna, "gl_texture_limit", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "glreslimit"); diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 2a733bf28a9..c61db1d653e 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -169,6 +169,7 @@ void WM_init(bContext *C, int argc, const char **argv) if (!G.background) { GPU_extensions_init(); GPU_set_mipmap(!(U.gameflags & USER_DISABLE_MIPMAP)); + GPU_set_anisotropic(U.anisotropic_filter); UI_init(); } -- cgit v1.2.3 From c02006bc2b8566ae96af1e9e9630f0ecd5a1d05e Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 16 Jun 2011 01:18:52 +0000 Subject: BGE Animations: Adding the ipo flag options to the action actuator. This still needs more testing. --- source/blender/editors/space_logic/logic_window.c | 14 ++++++- source/blender/makesrna/intern/rna_actuator.c | 46 +++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index a45e7d39c76..9500b1afe3c 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3677,12 +3677,22 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) { Object *ob = (Object *)ptr->id.data; PointerRNA settings_ptr; - uiLayout *row; + uiLayout *row, *subrow, *col;; RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr); row= uiLayoutRow(layout, 0); uiItemR(row, ptr, "play_mode", 0, "", ICON_NONE); + + subrow= uiLayoutRow(row, 1); + uiItemR(subrow, ptr, "use_force", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(subrow, ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + + col = uiLayoutColumn(subrow, 0); + uiLayoutSetActive(col, (RNA_boolean_get(ptr, "use_additive") || RNA_boolean_get(ptr, "use_force"))); + uiItemR(col, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + + row= uiLayoutRow(layout, 0); uiItemR(row, ptr, "action", 0, "", ICON_NONE); uiItemR(row, ptr, "use_continue_last_frame", 0, NULL, ICON_NONE); @@ -3695,6 +3705,8 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) uiItemR(row, ptr, "frame_end", 0, NULL, ICON_NONE); } + uiItemR(row, ptr, "apply_to_children", 0, NULL, ICON_NONE); + row= uiLayoutRow(layout, 0); uiItemR(row, ptr, "frame_blend_in", 0, NULL, ICON_NONE); uiItemR(row, ptr, "priority", 0, NULL, ICON_NONE); diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 75c884a5fbb..41b1ff11f04 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -353,6 +353,29 @@ static void rna_FcurveActuator_force_set(struct PointerRNA *ptr, int value) ia->flag &= ~ACT_IPOFORCE; } +static void rna_ActionActuator_add_set(struct PointerRNA *ptr, int value) +{ + bActuator *act = (bActuator *)ptr->data; + bActionActuator *aa = act->data; + + if(value == 1){ + aa->flag &= ~ACT_IPOFORCE; + aa->flag |= ACT_IPOADD; + }else + aa->flag &= ~ACT_IPOADD; +} + +static void rna_ActionActuator_force_set(struct PointerRNA *ptr, int value) +{ + bActuator *act = (bActuator *)ptr->data; + bActionActuator *aa = act->data; + + if(value == 1){ + aa->flag &= ~ACT_IPOADD; + aa->flag |= ACT_IPOFORCE; + }else + aa->flag &= ~ACT_IPOFORCE; +} static void rna_ObjectActuator_type_set(struct PointerRNA *ptr, int value) { @@ -626,6 +649,29 @@ static void rna_def_action_actuator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Frame Property", "Assign the action's current frame number to this property"); RNA_def_property_update(prop, NC_LOGIC, NULL); + /* booleans */ + prop= RNA_def_property(srna, "use_additive", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOADD); + RNA_def_property_boolean_funcs(prop, NULL, "rna_ActionActuator_add_set"); + RNA_def_property_ui_text(prop, "Add", "Action is added to the current loc/rot/scale in global or local coordinate according to Local flag"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "use_force", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOFORCE); + RNA_def_property_boolean_funcs(prop, NULL, "rna_ActionActuator_force_set"); + RNA_def_property_ui_text(prop, "Force", "Apply Action as a global or local force depending on the local option (dynamic objects only)"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "use_local", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOLOCAL); + RNA_def_property_ui_text(prop, "L", "Let the Action act in local coordinates, used in Force and Add mode"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "apply_to_children", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOCHILD); + RNA_def_property_ui_text(prop, "Child", "Update Action on all children Objects as well"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + #ifdef __NLA_ACTION_BY_MOTION_ACTUATOR prop= RNA_def_property(srna, "stride_length", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "stridelength"); -- cgit v1.2.3 From 47b061609d7a29116cdac9ba375408b5217683bd Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 16 Jun 2011 01:57:39 +0000 Subject: BGE Animations: FCurve Actuators are now converted to Action Actuators in do_versions(). Note: The fcurve actuator still needs to be removed from menus and such. --- source/blender/blenloader/intern/readfile.c | 36 +++++++++++++++++++++++++++- source/blender/makesdna/DNA_actuator_types.h | 1 + 2 files changed, 36 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1e604c45772..7c9dfc48fb0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11662,8 +11662,42 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + + { + /* convert fcurve actuator to action actuator */ + Object *ob; + bActuator *act; + bIpoActuator *ia; + bActionActuator *aa; + + for (ob= main->object.first; ob; ob= ob->id.next) { + for (act= ob->actuators.first; act; act= act->next) { + if (act->type == ACT_IPO) { + // Create the new actuator + ia= act->data; + aa= MEM_callocN(sizeof(bActionActuator), "fcurve -> action actuator do_version"); + + // Copy values + aa->type = ia->type; + aa->flag = ia->flag; + aa->sta = ia->sta; + aa->end = ia->end; + strcpy(aa->name, ia->name); + strcpy(aa->frameProp, ia->frameProp); + aa->act = ob->adt->action; + + // Get rid of the old actuator + MEM_freeN(ia); + + // Assign the new actuator + act->data = aa; + act->type= act->otype= ACT_ACTION; + + } + } + } + } } - /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */ diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index b368aadf4c2..071f66cddd6 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -122,6 +122,7 @@ typedef struct bObjectActuator { struct Object *reference; } bObjectActuator; +/* deprecated, handled by bActionActuator now */ typedef struct bIpoActuator { short flag, type; float sta, end; -- cgit v1.2.3 From 4ef1e67ce8245e03ff41c00a09be98d65dfe49f5 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 16 Jun 2011 02:14:01 +0000 Subject: BGE_Animations: Removing the Fcurve Actuator as a possible actuator type, but keeping a lot of the code around as reference. --- source/blender/editors/space_logic/logic_window.c | 4 +--- source/blender/makesrna/intern/rna_actuator.c | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index 9500b1afe3c..c1fc27eb9f3 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3988,6 +3988,7 @@ static void draw_actuator_game(uiLayout *layout, PointerRNA *ptr) uiItemR(layout, ptr, "filename", 0, NULL, ICON_NONE); } +/* The IPO/Fcurve actuator has been deprecated, so this is no longer used */ static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr) { Object *ob; @@ -4408,9 +4409,6 @@ static void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr, bContext *C) case ACT_GAME: draw_actuator_game(box, ptr); break; - case ACT_IPO: - draw_actuator_ipo(box, ptr); - break; case ACT_MESSAGE: draw_actuator_message(box, ptr, C); break; diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 41b1ff11f04..5f532d7bb31 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -49,7 +49,6 @@ EnumPropertyItem actuator_type_items[] ={ {ACT_CAMERA, "CAMERA", 0, "Camera", ""}, {ACT_CONSTRAINT, "CONSTRAINT", 0, "Constraint", ""}, {ACT_EDIT_OBJECT, "EDIT_OBJECT", 0, "Edit Object", ""}, - {ACT_IPO, "FCURVE", 0, "F-Curve", ""}, {ACT_2DFILTER, "FILTER_2D", 0, "Filter 2D", ""}, {ACT_GAME, "GAME", 0, "Game", ""}, {ACT_MESSAGE, "MESSAGE", 0, "Message", ""}, @@ -77,8 +76,6 @@ static StructRNA* rna_Actuator_refine(struct PointerRNA *ptr) return &RNA_ActionActuator; case ACT_OBJECT: return &RNA_ObjectActuator; - case ACT_IPO: - return &RNA_FCurveActuator; case ACT_CAMERA: return &RNA_CameraActuator; case ACT_SOUND: @@ -457,7 +454,6 @@ EnumPropertyItem *rna_Actuator_type_itemf(bContext *C, PointerRNA *ptr, Property RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_CAMERA); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_CONSTRAINT); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_EDIT_OBJECT); - RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_IPO); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_2DFILTER); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_GAME); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_MESSAGE); @@ -866,6 +862,7 @@ static void rna_def_object_actuator(BlenderRNA *brna) RNA_def_property_update(prop, NC_LOGIC, NULL); } +/* The fcurve actuator has been replace with the action actuator, so this is no longer used */ static void rna_def_fcurve_actuator(BlenderRNA *brna) { StructRNA *srna; @@ -2008,7 +2005,6 @@ void RNA_def_actuator(BlenderRNA *brna) rna_def_action_actuator(brna); rna_def_object_actuator(brna); - rna_def_fcurve_actuator(brna); rna_def_camera_actuator(brna); rna_def_sound_actuator(brna); rna_def_property_actuator(brna); -- cgit v1.2.3 From cfcc4b4fcd7dabd0929db53fc5a9cf0833704259 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 16 Jun 2011 02:46:38 +0000 Subject: == Simple Title Cards for Sequencer == This commit adds an experimental effect strip to the sequencer: "Title Card". This is useful for adding simple one-line text section headers or "title cards" (i.e. title + author/contact details) to video clips, which is often seen in demo videos accompanying papers and/or animation tests. See http://aligorith.blogspot.com/2011/06/gsoc11-simple-title- cards.html for some more details on usage. Code notes: - There are a few things I've done here which will probably need cleaning up. For instance, the hacks to get threadsafe fonts for rendering, and also the way I've tried to piggyback the backdrop drawing on top of the Solid Colour strips (this method was used to keep changes here minimal, but is quite fragile if things change). --- source/blender/blenfont/BLF_api.h | 1 + source/blender/blenfont/intern/blf.c | 1 + source/blender/blenkernel/intern/seqeffects.c | 135 +++++++++++++++++++++ source/blender/blenkernel/intern/sequencer.c | 3 +- source/blender/blenloader/intern/writefile.c | 3 + source/blender/editors/interface/interface_style.c | 10 ++ .../editors/space_sequencer/sequencer_draw.c | 1 + .../editors/space_sequencer/sequencer_edit.c | 7 +- source/blender/makesdna/DNA_sequence_types.h | 11 +- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_sequencer.c | 35 ++++++ 11 files changed, 204 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h index 57f8c83eda6..fba09ee9826 100644 --- a/source/blender/blenfont/BLF_api.h +++ b/source/blender/blenfont/BLF_api.h @@ -215,5 +215,6 @@ void BLF_dir_free(char **dirs, int count); // XXX, bad design extern int blf_mono_font; extern int blf_mono_font_render; // dont mess drawing with render threads. +extern int blf_default_font_render; // dont mess drawing with render threads. #endif /* BLF_API_H */ diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c index c0e62b1c0c7..3bfb7c22082 100644 --- a/source/blender/blenfont/intern/blf.c +++ b/source/blender/blenfont/intern/blf.c @@ -74,6 +74,7 @@ static int global_font_dpi= 72; // XXX, should these be made into global_font_'s too? int blf_mono_font= -1; int blf_mono_font_render= -1; +int blf_default_font_render= -1; static FontBLF *BLF_get(int fontid) { diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index fbb5a77fa04..688fdd8ff49 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -40,8 +40,11 @@ #include "BLI_dynlib.h" #include "BLI_math.h" /* windows needs for M_PI */ +#include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLF_api.h" + #include "DNA_scene_types.h" #include "DNA_sequence_types.h" #include "DNA_anim_types.h" @@ -2804,6 +2807,130 @@ static struct ImBuf * do_solid_color( return out; } +/* ********************************************************************** + TITLE CARD + ********************************************************************** */ + +static void init_title_card(Sequence *seq) +{ + TitleCardVars *tv; + + if(seq->effectdata)MEM_freeN(seq->effectdata); + seq->effectdata = MEM_callocN(sizeof(struct TitleCardVars), "titlecard"); + + tv = (TitleCardVars *)seq->effectdata; + + BLI_strncpy(tv->titlestr, "Title goes here", sizeof(tv->titlestr)); + tv->fgcol[0] = tv->fgcol[1] = tv->fgcol[2] = 1.0f; /* white */ +} + +static int num_inputs_titlecard(void) +{ + return 0; +} + +static void free_title_card(Sequence *seq) +{ + if(seq->effectdata)MEM_freeN(seq->effectdata); + seq->effectdata = NULL; +} + +static void copy_title_card(Sequence *dst, Sequence *src) +{ + dst->effectdata = MEM_dupallocN(src->effectdata); +} + +static int early_out_titlecard(struct Sequence *UNUSED(seq), + float UNUSED(facf0), float UNUSED(facf1)) +{ + return -1; +} + +static struct ImBuf * do_title_card( + SeqRenderData context, Sequence *seq, float cfra, + float facf0, float facf1, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, + struct ImBuf *ibuf3) +{ + TitleCardVars *tv = (TitleCardVars *)seq->effectdata; + + SolidColorVars cv = {{0}}; + struct ImBuf *out; + + int titleFontId = blf_default_font_render; // XXX: bad design! + + int width = context.rectx; + int height = context.recty; + float w, h; + int x, y; + + /* use fake solid-color vars to get backdrop (and an out buffer at the same time) */ + VECCOPY(cv.col, tv->bgcol); + seq->effectdata = &cv; + + out = do_solid_color(context, seq, cfra, + facf0, facf1, + ibuf1, ibuf2, ibuf3); + + seq->effectdata = tv; + + /* draw text */ + /* FIXME: imbuf out->rect is unsigned int NOT unsigned char, but without passing this pointer + * this drawing code doesn't work. This cast really masks some potential bugs though... + */ + BLF_buffer(titleFontId, out->rect_float, (unsigned char *)out->rect, width, height, 4); + + if (tv->titlestr[0]) { + /* automatic scale - these formulae have been derived experimentally: + * - base size is based on 40pt at 960 width + * - each 26 characters, size jumps down one step, + * but this decrease needs to be exponential to fit everything + */ + float lfac = strlen(tv->titlestr) / 26.0f; + float size = (width * 0.06f) * (1.0f - 0.1f*lfac*lfac); + + BLF_size(titleFontId, size, 72); + BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0); + + BLF_width_and_height(titleFontId, tv->titlestr, &w, &h); + x = width/2.0f - w/2.0f; + if (tv->subtitle[0]) + y = height/2.0f + h; + else + y = height/2.0f; + + BLF_position(titleFontId, x, y, 0.0); + BLF_draw_buffer(titleFontId, tv->titlestr); + } + + if (tv->subtitle[0]) { + /* automatic scale - these formulae have been derived experimentally (as above): + * - base size is based on 20pt at 960 width + * - size steps aren't quite as refined here. Need a slower-growing curve! + */ + float lfac = strlen(tv->subtitle) / 36.0f; + float size = (width * 0.03f) * (1.0f - 0.1f*lfac*lfac*log(lfac)); + + BLF_size(titleFontId, size, 72); + BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0); + + BLF_width_and_height(titleFontId, tv->subtitle, &w, &h); + x = width/2.0f - w/2.0f; + if (tv->titlestr[0]) + y = height/2.0f - h; + else + y = height/2.0f; + + BLF_position(titleFontId, x, y, 0.0); + BLF_draw_buffer(titleFontId, tv->subtitle); + } + + /* cleanup the buffer. */ + BLF_buffer(UIFONT_DEFAULT, NULL, NULL, 0, 0, 0); + + return out; +} + /* ********************************************************************** MULTICAM ********************************************************************** */ @@ -3343,6 +3470,14 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) rval.early_out = early_out_adjustment; rval.execute = do_adjustment; break; + case SEQ_TITLECARD: + rval.init = init_title_card; + rval.num_inputs = num_inputs_titlecard; + rval.early_out = early_out_titlecard; + rval.free = free_title_card; + rval.copy = copy_title_card; + rval.execute = do_title_card; + break; } return rval; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index b82ac69fc9e..550b81e8a0f 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -895,6 +895,7 @@ static const char *give_seqname_by_type(int type) case SEQ_MULTICAM: return "Multicam"; case SEQ_ADJUSTMENT: return "Adjustment"; case SEQ_SPEED: return "Speed"; + case SEQ_TITLECARD: return "Title Card"; default: return NULL; } @@ -3020,7 +3021,7 @@ Sequence *seq_foreground_frame_get(Scene *scene, int frame) if(seq->flag & SEQ_MUTE || seq->startdisp > frame || seq->enddisp <= frame) continue; /* only use elements you can see - not */ - if (ELEM5(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR)) { + if (ELEM6(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR, SEQ_TITLECARD)) { if (seq->machine > best_machine) { best_seq = seq; best_machine = seq->machine; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 240e8d00ab8..fb5c96cd854 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1892,6 +1892,9 @@ static void write_scenes(WriteData *wd, ListBase *scebase) case SEQ_TRANSFORM: writestruct(wd, DATA, "TransformVars", 1, seq->effectdata); break; + case SEQ_TITLECARD: + writestruct(wd, DATA, "TitleCardVars", 1, seq->effectdata); + break; } } diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 2e4106b3c04..1352648b271 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -295,6 +295,7 @@ void uiStyleInit(void) { uiFont *font= U.uifonts.first; uiStyle *style= U.uistyles.first; + int defaultFontId = -1; /* recover from uninitialized dpi */ if(U.dpi == 0) @@ -314,6 +315,7 @@ void uiStyleInit(void) if(font->uifont_id==UIFONT_DEFAULT) { font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); + defaultFontId = font->blf_id; } else { font->blf_id= BLF_load(font->filename); @@ -351,6 +353,14 @@ void uiStyleInit(void) blf_mono_font_render= BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size); BLF_size(blf_mono_font_render, 12, 72); + + /* also another copy of default for rendering else we get threading problems */ + if (defaultFontId != -1) { + if (blf_default_font_render == -1) + blf_default_font_render= BLF_load_mem_unique("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); + + BLF_size(blf_default_font_render, 12, 72); + } } void uiStyleFontSet(uiFontStyle *fs) diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 119c5da309e..e1efd5b4622 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -127,6 +127,7 @@ static void get_seq_color3ubv(Scene *curscene, Sequence *seq, unsigned char col[ case SEQ_GLOW: case SEQ_MULTICAM: case SEQ_ADJUSTMENT: + case SEQ_TITLECARD: UI_GetThemeColor3ubv(TH_SEQ_EFFECT, col); /* slightly offset hue to distinguish different effects */ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index c8965c4d3db..46638007fb1 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -98,9 +98,10 @@ EnumPropertyItem sequencer_prop_effect_types[] = { {SEQ_GLOW, "GLOW", 0, "Glow", "Glow effect strip type"}, {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"}, {SEQ_COLOR, "COLOR", 0, "Color", "Color effect strip type"}, - {SEQ_SPEED, "SPEED", 0, "Speed", "Color effect strip type"}, + {SEQ_SPEED, "SPEED", 0, "Speed", ""}, {SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""}, {SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""}, + {SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""}, {0, NULL, 0, NULL, NULL} }; @@ -408,6 +409,7 @@ int event_to_efftype(int event) if(event==16) return SEQ_COLOR; if(event==17) return SEQ_SPEED; if(event==18) return SEQ_ADJUSTMENT; + if(event==19) return SEQ_TITLECARD; return 0; } @@ -520,7 +522,8 @@ static void change_sequence(Scene *scene) "|Transform%x15" "|Color Generator%x16" "|Speed Control%x17" - "|Adjustment Layer%x18"); + "|Adjustment Layer%x18" + "|Title Card%x19"); if(event > 0) { if(event==1) { SWAP(Sequence *,last_seq->seq1,last_seq->seq2); diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 3e7654bcf47..b9bea7a89b0 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -227,6 +227,14 @@ typedef struct SolidColorVars { float pad; } SolidColorVars; +typedef struct TitleCardVars { + char titlestr[64]; + char subtitle[128]; + + float fgcol[3]; + float bgcol[3]; +} TitleCardVars; + typedef struct SpeedControlVars { float * frameMap; float globalSpeed; @@ -314,7 +322,8 @@ typedef struct SpeedControlVars { #define SEQ_SPEED 29 #define SEQ_MULTICAM 30 #define SEQ_ADJUSTMENT 31 -#define SEQ_EFFECT_MAX 31 +#define SEQ_TITLECARD 40 +#define SEQ_EFFECT_MAX 40 #define STRIPELEM_FAILED 0 #define STRIPELEM_OK 1 diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index ca19a86e42c..d1883b77697 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -534,6 +534,7 @@ extern StructRNA RNA_ThemeWidgetColors; extern StructRNA RNA_ThemeWidgetStateColors; extern StructRNA RNA_TimelineMarker; extern StructRNA RNA_Timer; +extern StructRNA RNA_TitleCardSequence; extern StructRNA RNA_ToolSettings; extern StructRNA RNA_TouchSensor; extern StructRNA RNA_TrackToConstraint; diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 8c4e4d9e736..eb2d38e9778 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -418,6 +418,8 @@ static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) return &RNA_ColorSequence; case SEQ_SPEED: return &RNA_SpeedControlSequence; + case SEQ_TITLECARD: + return &RNA_TitleCardSequence; default: return &RNA_Sequence; } @@ -886,6 +888,7 @@ static void rna_def_sequence(BlenderRNA *brna) {SEQ_SPEED, "SPEED", 0, "Speed", ""}, {SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""}, {SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""}, + {SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""}, {0, NULL, 0, NULL, NULL}}; static const EnumPropertyItem blend_mode_items[]= { @@ -1666,6 +1669,37 @@ static void rna_def_speed_control(BlenderRNA *brna) RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } +static void rna_def_title_card(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "TitleCardSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Title Card Sequence", "Sequence strip creating an image displaying some text on a plain color background"); + RNA_def_struct_sdna_from(srna, "TitleCardVars", "effectdata"); + + /* texts */ + prop= RNA_def_property(srna, "title", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "titlestr"); + RNA_def_property_ui_text(prop, "Title", "Text for main heading"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "subtitle", PROP_STRING, PROP_NONE); + RNA_def_property_ui_text(prop, "Subtitle", "Additional text to be shown under the main heading"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + /* colors */ + prop= RNA_def_property(srna, "color_background", PROP_FLOAT, PROP_COLOR); + RNA_def_property_float_sdna(prop, NULL, "bgcol"); + RNA_def_property_ui_text(prop, "Background Color", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "color_foreground", PROP_FLOAT, PROP_COLOR); + RNA_def_property_float_sdna(prop, NULL, "fgcol"); + RNA_def_property_ui_text(prop, "Text Color", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + void RNA_def_sequencer(BlenderRNA *brna) { rna_def_strip_element(brna); @@ -1691,6 +1725,7 @@ void RNA_def_sequencer(BlenderRNA *brna) rna_def_transform(brna); rna_def_solid_color(brna); rna_def_speed_control(brna); + rna_def_title_card(brna); } #endif -- cgit v1.2.3 From 051dedeeec50ca317c4ded0e0fe6ba3b18dee377 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 06:00:02 +0000 Subject: minor speedup for UI draw code, noticed ui_get_but_val() could be called 3-5 times per button draw, for RNA buttons this gets the entire array for each call so its not great to call many times. --- source/blender/editors/interface/interface.c | 80 ++++++++++++++++------------ 1 file changed, 47 insertions(+), 33 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 37e4cc7616b..cfbe1074dd3 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -77,6 +77,10 @@ #define PRECISION_FLOAT_MAX 7 #define PRECISION_FLOAT_MAX_POW 10000000 /* pow(10, PRECISION_FLOAT_MAX) */ +/* avoid unneeded calls to ui_get_but_val */ +#define UI_BUT_VALUE_UNSET DBL_MAX +#define UI_GET_BUT_VALUE_INIT(_but, _value) if(_value == DBL_MAX) { (_value)= ui_get_but_val(_but); } + /* * a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt * @@ -967,17 +971,16 @@ void uiDrawBlock(const bContext *C, uiBlock *block) /* ************* EVENTS ************* */ -static void ui_is_but_sel(uiBut *but) +static void ui_is_but_sel(uiBut *but, double *value) { - double value; /* only initialized when needed, to avoid calling when not used */ short push=0, true=1; if(ELEM3(but->type, TOGN, ICONTOGN, OPTIONN)) true= 0; if( but->bit ) { int lvalue; - value= ui_get_but_val(but); - lvalue= (int)value; + UI_GET_BUT_VALUE_INIT(but, *value) + lvalue= (int)*value; if( BTST(lvalue, (but->bitnr)) ) push= true; else push= !true; } @@ -997,24 +1000,24 @@ static void ui_is_but_sel(uiBut *but) case BUT_TOGDUAL: case ICONTOG: case OPTION: - value= ui_get_but_val(but); - if(value != (double)but->hardmin) push= 1; + + if(*value != (double)but->hardmin) push= 1; break; case ICONTOGN: case TOGN: case OPTIONN: - value= ui_get_but_val(but); - if(value==0.0) push= 1; + UI_GET_BUT_VALUE_INIT(but, *value) + if(*value==0.0) push= 1; break; case ROW: case LISTROW: - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, *value) /* support for rna enum buts */ if(but->rnaprop && (RNA_property_flag(but->rnaprop) & PROP_ENUM_FLAG)) { - if((int)value & (int)but->hardmax) push= 1; + if((int)*value & (int)but->hardmax) push= 1; } else { - if(value == (double)but->hardmax) push= 1; + if(*value == (double)but->hardmax) push= 1; } break; case COL: @@ -1385,6 +1388,10 @@ void ui_set_but_val(uiBut *but, double value) break; } } + + /* we can't be sure what RNA set functions actually do, + * so leave this unset */ + value= UI_BUT_VALUE_UNSET; } else if(but->pointype==0); else if(but->type==HSVSLI ) { @@ -1425,19 +1432,19 @@ void ui_set_but_val(uiBut *but, double value) /* then set value with possible edit override */ if(but->editval) - *but->editval= value; + value= *but->editval= value; else if(but->pointype==CHA) - *((char *)but->poin)= (char)value; + value= *((char *)but->poin)= (char)value; else if(but->pointype==SHO) - *((short *)but->poin)= (short)value; + value= *((short *)but->poin)= (short)value; else if(but->pointype==INT) - *((int *)but->poin)= (int)value; + value= *((int *)but->poin)= (int)value; else if(but->pointype==FLO) - *((float *)but->poin)= (float)value; + value= *((float *)but->poin)= (float)value; } /* update select flag */ - ui_is_but_sel(but); + ui_is_but_sel(but, &value); } int ui_get_but_string_max_length(uiBut *but) @@ -1974,17 +1981,19 @@ void uiBlockSetEmboss(uiBlock *block, char dt) void ui_check_but(uiBut *but) { /* if something changed in the button */ - double value; + double value= UI_BUT_VALUE_UNSET; // float okwidth; // UNUSED // int transopts= ui_translate_buttons(); - ui_is_but_sel(but); + ui_is_but_sel(but, &value); // if(but->type==TEX || but->type==IDPOIN) transopts= 0; /* only update soft range while not editing */ - if(but->rnaprop && !(but->editval || but->editstr || but->editvec)) - ui_set_but_soft_range(but, ui_get_but_val(but)); + if(but->rnaprop && !(but->editval || but->editstr || but->editvec)) { + UI_GET_BUT_VALUE_INIT(but, value) + ui_set_but_soft_range(but, value); + } /* test for min and max, icon sliders, etc */ switch( but->type ) { @@ -1993,17 +2002,20 @@ void ui_check_but(uiBut *but) case SCROLL: case NUMSLI: case HSVSLI: - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) if(value < (double)but->hardmin) ui_set_but_val(but, but->hardmin); else if(value > (double)but->hardmax) ui_set_but_val(but, but->hardmax); break; case NUMABS: - value= fabs( ui_get_but_val(but) ); - if(value < (double)but->hardmin) ui_set_but_val(but, but->hardmin); - else if(value > (double)but->hardmax) ui_set_but_val(but, but->hardmax); + { + double value_abs; + UI_GET_BUT_VALUE_INIT(but, value) + value_abs= fabs(value); + if(value_abs < (double)but->hardmin) ui_set_but_val(but, but->hardmin); + else if(value_abs > (double)but->hardmax) ui_set_but_val(but, but->hardmax); break; - + } case ICONTOG: case ICONTOGN: if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { @@ -2014,14 +2026,14 @@ void ui_check_but(uiBut *but) case ICONROW: if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) but->iconadd= (int)value- (int)(but->hardmin); } break; case ICONTEXTROW: if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) but->iconadd= (int)value- (int)(but->hardmin); } break; @@ -2038,7 +2050,7 @@ void ui_check_but(uiBut *but) case ICONTEXTROW: if(but->x2 - but->x1 > 24) { - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) ui_set_name_menu(but, (int)value); } break; @@ -2048,7 +2060,7 @@ void ui_check_but(uiBut *but) case HSVSLI: case NUMABS: - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) if(ui_is_but_float(but)) { if(value == (double) FLT_MAX) sprintf(but->drawstr, "%sinf", but->str); @@ -2079,7 +2091,7 @@ void ui_check_but(uiBut *but) case LABEL: if(ui_is_but_float(but)) { int prec; - value= ui_get_but_val(but); + UI_GET_BUT_VALUE_INIT(but, value) prec= ui_but_float_precision(but, value); BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value); } @@ -2105,8 +2117,10 @@ void ui_check_but(uiBut *but) strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR); if (but->flag & UI_SELECT) { strcat(but->drawstr, "Press a key"); - } else { - strcat(but->drawstr, WM_key_event_string((short) ui_get_but_val(but))); + } + else { + UI_GET_BUT_VALUE_INIT(but, value) + strcat(but->drawstr, WM_key_event_string((short)value)); } break; -- cgit v1.2.3 From 0a998decb66820eae4704220988fdc76adc341d4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 06:47:54 +0000 Subject: fix [#27673] Value sliders >1 do not represent numerical ratios right the soft limits for array buttons not take into account the min/max of all array elements --- source/blender/editors/interface/interface.c | 44 ++++++++++++----- source/blender/makesrna/RNA_access.h | 2 + source/blender/makesrna/intern/rna_access.c | 74 ++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index cfbe1074dd3..bde5d111501 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1765,50 +1765,70 @@ static double soft_range_round_down(double value, double max) void ui_set_but_soft_range(uiBut *but, double value) { - PropertyType type; - double softmin, softmax /*, step, precision*/; - + /* ideally we would not limit this but practially, its more then + * enough worst case is very long vectors wont use a smart soft-range + * which isnt so bad. */ + if(but->rnaprop) { - type= RNA_property_type(but->rnaprop); + const PropertyType type= RNA_property_type(but->rnaprop); + double softmin, softmax /*, step, precision*/; + double value_min= value; + double value_max= value; /* clamp button range to something reasonable in case * we get -inf/inf from RNA properties */ if(type == PROP_INT) { int imin, imax, istep; + const int array_len= RNA_property_array_length(&but->rnapoin, but->rnaprop); RNA_property_int_ui_range(&but->rnapoin, but->rnaprop, &imin, &imax, &istep); softmin= (imin == INT_MIN)? -1e4: imin; softmax= (imin == INT_MAX)? 1e4: imax; /*step= istep;*/ /*UNUSED*/ /*precision= 1;*/ /*UNUSED*/ + + if(array_len >= 2) { + int value_range[2]; + RNA_property_int_get_array_range(&but->rnapoin, but->rnaprop, value_range); + value_min= (double)value_range[0]; + value_max= (double)value_range[1]; + } } else if(type == PROP_FLOAT) { float fmin, fmax, fstep, fprecision; + const int array_len= RNA_property_array_length(&but->rnapoin, but->rnaprop); RNA_property_float_ui_range(&but->rnapoin, but->rnaprop, &fmin, &fmax, &fstep, &fprecision); softmin= (fmin == -FLT_MAX)? (float)-1e4: fmin; softmax= (fmax == FLT_MAX)? (float)1e4: fmax; /*step= fstep;*/ /*UNUSED*/ /*precision= fprecision;*/ /*UNUSED*/ + + if(array_len >= 2) { + float value_range[2]; + RNA_property_float_get_array_range(&but->rnapoin, but->rnaprop, value_range); + value_min= (double)value_range[0]; + value_max= (double)value_range[1]; + } } else return; /* if the value goes out of the soft/max range, adapt the range */ - if(value+1e-10 < softmin) { - if(value < 0.0) - softmin= -soft_range_round_up(-value, -softmin); + if(value_min+1e-10 < softmin) { + if(value_min < 0.0) + softmin= -soft_range_round_up(-value_min, -softmin); else - softmin= soft_range_round_down(value, softmin); + softmin= soft_range_round_down(value_min, softmin); if(softmin < (double)but->hardmin) softmin= (double)but->hardmin; } - else if(value-1e-10 > softmax) { - if(value < 0.0) - softmax= -soft_range_round_down(-value, -softmax); + else if(value_max-1e-10 > softmax) { + if(value_max < 0.0) + softmax= -soft_range_round_down(-value_max, -softmax); else - softmax= soft_range_round_up(value, softmax); + softmax= soft_range_round_up(value_max, softmax); if(softmax > (double)but->hardmax) softmax= but->hardmax; diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index ca19a86e42c..882fbce9271 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -716,6 +716,7 @@ int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]); int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); @@ -726,6 +727,7 @@ int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int i float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]); float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index ab11f88e0f6..8fbee8ea740 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1643,6 +1643,43 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values) memset(values, 0, sizeof(int)*prop->totarraylength); } +void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]) +{ + const int array_len= RNA_property_array_length(ptr, prop); + + if(array_len <= 0) { + values[0]= 0; + values[1]= 0; + } + else if (array_len == 1) { + RNA_property_int_get_array(ptr, prop, values); + values[1]= values[0]; + } + else { + int arr_stack[32]; + int *arr; + int i; + + if(array_len > 32) { + arr= MEM_mallocN(sizeof(int) * array_len, "RNA_property_int_get_array_range"); + } + else { + arr= arr_stack; + } + + RNA_property_int_get_array(ptr, prop, arr); + values[0]= values[1]= arr[0]; + for(i= 1; i < array_len; i++) { + values[0]= MIN2(values[0], arr[i]); + values[1]= MAX2(values[1], arr[i]); + } + + if(arr != arr_stack) { + MEM_freeN(arr); + } + } +} + int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index) { int tmp[RNA_MAX_ARRAY_LENGTH]; @@ -1839,6 +1876,43 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val memset(values, 0, sizeof(float)*prop->totarraylength); } +void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]) +{ + const int array_len= RNA_property_array_length(ptr, prop); + + if(array_len <= 0) { + values[0]= 0.0f; + values[1]= 0.0f; + } + else if (array_len == 1) { + RNA_property_float_get_array(ptr, prop, values); + values[1]= values[0]; + } + else { + float arr_stack[32]; + float *arr; + int i; + + if(array_len > 32) { + arr= MEM_mallocN(sizeof(float) * array_len, "RNA_property_float_get_array_range"); + } + else { + arr= arr_stack; + } + + RNA_property_float_get_array(ptr, prop, arr); + values[0]= values[1]= arr[0]; + for(i= 1; i < array_len; i++) { + values[0]= MIN2(values[0], arr[i]); + values[1]= MAX2(values[1], arr[i]); + } + + if(arr != arr_stack) { + MEM_freeN(arr); + } + } +} + float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index) { float tmp[RNA_MAX_ARRAY_LENGTH]; -- cgit v1.2.3 From 4a5a9dc71c181c849e352d534d80144fd190411c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 07:02:33 +0000 Subject: fix for own error in r37542 --- source/blender/editors/interface/interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index bde5d111501..30c0f552b72 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1000,7 +1000,7 @@ static void ui_is_but_sel(uiBut *but, double *value) case BUT_TOGDUAL: case ICONTOG: case OPTION: - + UI_GET_BUT_VALUE_INIT(but, *value) if(*value != (double)but->hardmin) push= 1; break; case ICONTOGN: -- cgit v1.2.3 From f227c4a064d96909243b4a60a7f6c544f521817a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 07:59:22 +0000 Subject: fix [#27675] Bones shift out of place when leaving edit mode - float precision issue, details commented in the source. --- source/blender/blenkernel/intern/armature.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index fd25ebe266f..0b31e51d62e 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -1343,8 +1343,12 @@ void vec_roll_to_mat3(float *vec, float roll, float mat[][3]) cross_v3_v3v3(axis,target,nor); /* was 0.0000000000001, caused bug [#23954], smaller values give unstable - * roll when toggling editmode */ - if (dot_v3v3(axis,axis) > 0.00001f) { + * roll when toggling editmode. + * + * was 0.00001, causes bug [#27675], with 0.00000495, + * so a value inbetween these is needed. + */ + if (dot_v3v3(axis,axis) > 0.000001f) { /* if nor is *not* a multiple of target ... */ normalize_v3(axis); -- cgit v1.2.3 From 216ba20942249c96f808d9e5c7ca4cc47c6b77f5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 12:48:25 +0000 Subject: fix [#27671] Transforming sequencer effects strips crashes --- .../editors/transform/transform_conversions.c | 40 ++++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index bf14b6e99ec..669c3195dfd 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -3725,27 +3725,8 @@ void flushTransGraphData(TransInfo *t) * seq->depth must be set before running this function so we know if the strips * are root level or not */ -#define XXX_DURIAN_ANIM_TX_HACK static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag) { - -#ifdef XXX_DURIAN_ANIM_TX_HACK - /* hack */ - if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) { - Sequence *seq_t[3]; - int i; - - seq_t[0]= seq->seq1; - seq_t[1]= seq->seq2; - seq_t[2]= seq->seq3; - - for(i=0; i<3; i++) { - if (seq_t[i] && ((seq_t[i])->flag & SELECT) && !(seq_t[i]->flag & SEQ_LOCK) && !(seq_t[i]->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL))) - seq->flag |= SELECT; - } - } -#endif - /* for extend we need to do some tricks */ if (t->mode == TFM_TIME_EXTEND) { @@ -4105,6 +4086,7 @@ static void freeSeqData(TransInfo *t) static void createTransSeqData(bContext *C, TransInfo *t) { +#define XXX_DURIAN_ANIM_TX_HACK View2D *v2d= UI_view2d_fromcontext(C); Scene *scene= t->scene; @@ -4135,6 +4117,24 @@ static void createTransSeqData(bContext *C, TransInfo *t) t->frame_side = 'B'; } +#ifdef XXX_DURIAN_ANIM_TX_HACK + { + Sequence *seq; + for(seq= ed->seqbasep->first; seq; seq= seq->next) { + /* hack */ + if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) { + Sequence *seq_user; + int i; + for(i=0; i<3; i++) { + seq_user= *((&seq->seq1) + i); + if (seq_user && (seq_user->flag & SELECT) && !(seq_user->flag & SEQ_LOCK) && !(seq_user->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL))) { + seq->flag |= SELECT; + } + } + } + } + } +#endif count = SeqTransCount(t, ed->seqbasep, 0); @@ -4154,6 +4154,8 @@ static void createTransSeqData(bContext *C, TransInfo *t) /* loop 2: build transdata array */ SeqToTransData_Recursive(t, ed->seqbasep, td, td2d, tdsq); + +#undef XXX_DURIAN_ANIM_TX_HACK } -- cgit v1.2.3 From fd24c99b5ddd251ee64f95ae227ba76bcf9cb561 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 15:01:22 +0000 Subject: directory only filesel for operators which don't have a filepath or filename property. --- source/blender/editors/space_file/file_draw.c | 24 +++++++++++++----------- source/blender/editors/space_file/file_ops.c | 11 +++++++---- source/blender/editors/space_file/filelist.c | 2 ++ source/blender/editors/space_file/filesel.c | 21 +++++++++++++++++---- source/blender/makesdna/DNA_space_types.h | 25 +++++++++++++------------ 5 files changed, 52 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c index a6fee359197..9fecfda7764 100644 --- a/source/blender/editors/space_file/file_draw.c +++ b/source/blender/editors/space_file/file_draw.c @@ -185,16 +185,18 @@ void file_draw_buttons(const bContext *C, ARegion *ar) uiButSetCompleteFunc(but, autocomplete_directory, NULL); uiButSetFlag(but, UI_BUT_NO_UTF8); - but = uiDefBut(block, TEX, B_FS_FILENAME, "", - min_x, line2_y, line2_w-chan_offs, btn_h, - params->file, 0.0, (float)FILE_MAXFILE-1, 0, 0, - overwrite_alert ?"File name, overwrite existing." : "File name."); - uiButSetCompleteFunc(but, autocomplete_file, NULL); - uiButSetFlag(but, UI_BUT_NO_UTF8); - - /* check if this overrides a file and if the operator option is used */ - if(overwrite_alert) { - uiButSetFlag(but, UI_BUT_REDALERT); + if((params->flag & FILE_DIRSEL_ONLY) == 0) { + but = uiDefBut(block, TEX, B_FS_FILENAME, "", + min_x, line2_y, line2_w-chan_offs, btn_h, + params->file, 0.0, (float)FILE_MAXFILE-1, 0, 0, + overwrite_alert ?"File name, overwrite existing." : "File name."); + uiButSetCompleteFunc(but, autocomplete_file, NULL); + uiButSetFlag(but, UI_BUT_NO_UTF8); + + /* check if this overrides a file and if the operator option is used */ + if(overwrite_alert) { + uiButSetFlag(but, UI_BUT_REDALERT); + } } /* clear func */ @@ -202,7 +204,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar) } /* Filename number increment / decrement buttons. */ - if (fnumbuttons) { + if (fnumbuttons && (params->flag & FILE_DIRSEL_ONLY) == 0) { uiBlockBeginAlign(block); but = uiDefIconButO(block, BUT, "FILE_OT_filenum", 0, ICON_ZOOMOUT, min_x + line2_w + separator - chan_offs, line2_y, diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index a5d516a1417..11e7040d4c9 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -205,9 +205,10 @@ static FileSelect file_select(bContext* C, const rcti* rect, FileSelType select, SpaceFile *sfile= CTX_wm_space_file(C); FileSelect retval = FILE_SELECT_NOTHING; FileSelection sel= file_selection_get(C, rect, fill); /* get the selection */ + const FileCheckType check_type= (sfile->params->flag & FILE_DIRSEL_ONLY) ? CHECK_DIRS : CHECK_ALL; /* flag the files as selected in the filelist */ - filelist_select(sfile->files, &sel, select, SELECTED_FILE, CHECK_ALL); + filelist_select(sfile->files, &sel, select, SELECTED_FILE, check_type); /* Don't act on multiple selected files */ if (sel.first != sel.last) select = 0; @@ -216,7 +217,7 @@ static FileSelect file_select(bContext* C, const rcti* rect, FileSelType select, if ( (sel.last >= 0) && ((select == FILE_SEL_ADD) || (select == FILE_SEL_TOGGLE)) ) { /* Check last selection, if selected, act on the file or dir */ - if (filelist_is_selected(sfile->files, sel.last, CHECK_ALL)) { + if (filelist_is_selected(sfile->files, sel.last, check_type)) { retval = file_select_do(C, sel.last); } } @@ -378,8 +379,10 @@ static int file_select_all_exec(bContext *C, wmOperator *UNUSED(op)) /* select all only if previously no file was selected */ if (is_selected) { filelist_select(sfile->files, &sel, FILE_SEL_REMOVE, SELECTED_FILE, CHECK_ALL); - } else { - filelist_select(sfile->files, &sel, FILE_SEL_ADD, SELECTED_FILE, CHECK_FILES); + } + else { + const FileCheckType check_type= (sfile->params->flag & FILE_DIRSEL_ONLY) ? CHECK_DIRS : CHECK_FILES; + filelist_select(sfile->files, &sel, FILE_SEL_ADD, SELECTED_FILE, check_type); } ED_area_tag_redraw(sa); return OPERATOR_FINISHED; diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 32b725e0b1f..6736230e84f 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -915,6 +915,8 @@ void filelist_select_file(struct FileList* filelist, int index, FileSelType sele int check_ok = 0; switch (check) { case CHECK_DIRS: + check_ok = S_ISDIR(file->type); + break; case CHECK_ALL: check_ok = 1; break; diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 45193a38ef5..3dbfdc9f7d0 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -121,6 +121,9 @@ short ED_fileselect_set_params(SpaceFile *sfile) /* set the parameters from the operator, if it exists */ if (op) { + short is_filename= FALSE; + short is_dir= FALSE; + BLI_strncpy(params->title, op->type->name, sizeof(params->title)); if(RNA_struct_find_property(op->ptr, "filemode")) @@ -128,7 +131,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) else params->type = FILE_SPECIAL; - if (RNA_struct_find_property(op->ptr, "filepath") && RNA_property_is_set(op->ptr, "filepath")) { + if ((is_dir= is_filename= RNA_struct_find_property(op->ptr, "filepath")!=NULL) && RNA_property_is_set(op->ptr, "filepath")) { char name[FILE_MAX]; RNA_string_get(op->ptr, "filepath", name); if (params->type == FILE_LOADLIB) { @@ -140,12 +143,13 @@ short ED_fileselect_set_params(SpaceFile *sfile) } } else { - if (RNA_struct_find_property(op->ptr, "directory") && RNA_property_is_set(op->ptr, "directory")) { + if ((is_dir= RNA_struct_find_property(op->ptr, "directory")!=NULL) && RNA_property_is_set(op->ptr, "directory")) { RNA_string_get(op->ptr, "directory", params->dir); sfile->params->file[0]= '\0'; + is_dir= TRUE; } - if (RNA_struct_find_property(op->ptr, "filename") && RNA_property_is_set(op->ptr, "filename")) { + if ((is_filename= RNA_struct_find_property(op->ptr, "filename")!=NULL) && RNA_property_is_set(op->ptr, "filename")) { RNA_string_get(op->ptr, "filename", params->file); } } @@ -155,6 +159,13 @@ short ED_fileselect_set_params(SpaceFile *sfile) BLI_path_abs(params->dir, G.main->name); } + if(is_dir==TRUE && is_filename==FALSE) { + params->flag |= FILE_DIRSEL_ONLY; + } + else { + params->flag &= ~FILE_DIRSEL_ONLY; + } + params->filter = 0; if(RNA_struct_find_property(op->ptr, "filter_blender")) params->filter |= RNA_boolean_get(op->ptr, "filter_blender") ? BLENDERFILE : 0; @@ -216,10 +227,12 @@ short ED_fileselect_set_params(SpaceFile *sfile) params->display= FILE_SHORTDISPLAY; } - } else { + } + else { /* default values, if no operator */ params->type = FILE_UNIX; params->flag |= FILE_HIDE_DOT; + params->flag &= ~FILE_DIRSEL_ONLY; params->display = FILE_SHORTDISPLAY; params->filter = 0; params->filter_glob[0] = '\0'; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index e120cd14775..2b039060e47 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -696,18 +696,19 @@ enum FileSortTypeE { #define FILE_OPENFILE 0 #define FILE_SAVE 1 -/* sfile->flag and simasel->flag */ -#define FILE_SHOWSHORT 1 -#define FILE_RELPATH 2 /* was FILE_STRINGCODE */ -#define FILE_LINK 4 -#define FILE_HIDE_DOT 8 -#define FILE_AUTOSELECT 16 -#define FILE_ACTIVELAY 32 -#define FILE_ATCURSOR 64 -#define FILE_SYNCPOSE 128 -#define FILE_FILTER 256 -#define FILE_BOOKMARKS 512 -#define FILE_GROUP_INSTANCE 1024 +/* sfile->params->flag and simasel->flag */ +#define FILE_SHOWSHORT (1<<0) +#define FILE_RELPATH (1<<1) /* was FILE_STRINGCODE */ +#define FILE_LINK (1<<2) +#define FILE_HIDE_DOT (1<<3) +#define FILE_AUTOSELECT (1<<4) +#define FILE_ACTIVELAY (1<<5) +#define FILE_ATCURSOR (1<<6) +#define FILE_DIRSEL_ONLY (1<<7) +#define FILE_FILTER (1<<8) +#define FILE_BOOKMARKS (1<<9) +#define FILE_GROUP_INSTANCE (1<<10) + /* files in filesel list: file types */ #define BLENDERFILE (1<<2) -- cgit v1.2.3 From 6aa524f357154fd927fff537c04c32c46611f3d0 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 16 Jun 2011 15:04:37 +0000 Subject: AnimationExporter - Quaternion to euler conversion ( in progress ) AnimationImporter - Action group assignment to bones - Revert to conversion of angles from deg to rad. --- source/blender/collada/AnimationExporter.cpp | 51 ++++++++++++++++++++-------- source/blender/collada/AnimationExporter.h | 4 +-- source/blender/collada/AnimationImporter.cpp | 19 ++++++----- source/blender/collada/DocumentImporter.cpp | 2 +- 4 files changed, 49 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 3ed4d9f7be9..8f6f3fae982 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -86,35 +86,43 @@ void AnimationExporter::exportAnimations(Scene *sce) //} } - /*float * AnimationExporter::get_eul_source_for_quat(Object *ob ) + float * AnimationExporter::get_eul_source_for_quat(Object *ob ) { FCurve *fcu = (FCurve*)ob->adt->action->curves.first; - const int keys = fcu->totvert; - float quat[keys][4]; - float eul[keys][3]; + const int keys = fcu->totvert; + float *quat = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 4, "quat output source values"); + float *eul = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 3, "quat output source values"); + float temp_quat[4]; + float temp_eul[3]; while(fcu) { - transformName = extract_transform_name( fcu->rna_path ); + char * transformName = extract_transform_name( fcu->rna_path ); if( !strcmp(transformName, "rotation_quaternion") ) { - for ( int i = 0 ; i < fcu->totvert ; i+=) + for ( int i = 0 ; i < fcu->totvert ; i++) { - quat[i][fcu->array_index] = fcu->bezt[i].vec[1][1]; + *(quat + ( i * 4 ) + fcu->array_index) = fcu->bezt[i].vec[1][1]; } } - fcu = fcu->next; } - for ( int i = 0 ; i < fcu->totvert ; i+=) + for ( int i = 0 ; i < fcu->totvert ; i++) { - quat_to_eul(eul[i],quat[i]); + for ( int j = 0;j<4;j++) + temp_quat[j] = quat[(i*4)+j]; + + quat_to_eul(temp_eul,temp_quat); + + for (int k = 0;k<3;k++) + eul[i*3 + k] = temp_eul[k]; + } return eul; - }*/ + } std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) { //hard-way to derive the bone name from rna_path. Must find more compact method @@ -134,15 +142,16 @@ void AnimationExporter::exportAnimations(Scene *sce) const char *axis_name = NULL; char anim_id[200]; + bool has_tangents = false; bool quatRotation = false; if ( !strcmp(transformName, "rotation_quaternion") ) { - //quatRotation = true; - const char *axis_names[] = {"", "X", "Y", "Z"}; + quatRotation = true; + /*const char *axis_names[] = {"", "X", "Y", "Z"}; if (fcu->array_index < 4) - axis_name = axis_names[fcu->array_index]; + axis_name = axis_names[fcu->array_index];*/ } else @@ -173,7 +182,19 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string input_id = create_source_from_fcurve(COLLADASW::InputSemantic::INPUT, fcu, anim_id, axis_name); // create output source - std::string output_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); + std::string output_id ; + + /*if(quatRotation) + { + float * eul = get_eul_source_for_quat(ob); + float * eul_axis = + for ( int i = 0 ; i< fcu->totvert ; i++) + eul_axis[i] = eul[i*3 + fcu->array_index]; + output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); + } + else*/ + + output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); // create interpolations source std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents); diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 8fe2a0db04b..e05fac4eed7 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -112,9 +112,7 @@ protected: void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); - /*float * get_eul_source_for_quat(Object *ob );*/ - - /*std::string create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, const std::string& anim_id, int array_index);*/ + float * get_eul_source_for_quat(Object *ob ); std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 6efc712959f..c7f4d28e120 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -170,8 +170,8 @@ void AnimationImporter::fcurve_deg_to_rad(FCurve *cu) for (unsigned int i = 0; i < cu->totvert; i++) { // TODO convert handles too cu->bezt[i].vec[1][1] *= M_PI / 180.0f; - /*cu->bezt[i].vec[0][1] *= M_PI / 180.0f; - cu->bezt[i].vec[2][1] *= M_PI / 180.0f;*/ + cu->bezt[i].vec[0][1] *= M_PI / 180.0f; + cu->bezt[i].vec[2][1] *= M_PI / 180.0f; cu->bezt[i].vec[1][0]; } } @@ -677,8 +677,8 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, FCurve* fcu = *iter; //if transform is rotation the fcurves values must be turned in to radian. - /*if (is_rotation) - fcurve_deg_to_rad(fcu); */ + if (is_rotation) + fcurve_deg_to_rad(fcu); } COLLADAFW::Rotate* rot = (COLLADAFW::Rotate*)transform; COLLADABU::Math::Vector3& axis = rot->getRotationAxis(); @@ -735,6 +735,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); bAction * act; + bActionGroup *grp = NULL; if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); else act = ob->adt->action; @@ -765,8 +766,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , copy_m4_m4(rest, bone->arm_mat); invert_m4_m4(irest, rest); } - - + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); //for each transformation in node @@ -803,7 +803,10 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , //Add the curves of the current animation to the object for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; - BLI_addtail(AnimCurves, fcu); + if (ob->type == OB_ARMATURE) + add_bone_fcurve( ob, node , fcu ); + else + BLI_addtail(AnimCurves, fcu); } } std::sort(frames.begin(), frames.end()); @@ -812,7 +815,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , if (is_joint) { bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - chan->rotmode = ROT_MODE_QUAT; + chan->rotmode = ROT_MODE_EUL; } else { diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 68fc63dfa0b..cb1d984888c 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -256,7 +256,7 @@ void DocumentImporter::translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW COLLADAFW::NodePointerArray &children = node->getChildNodes(); for (i = 0; i < children.getCount(); i++) { - translate_anim_recursive(children[i], node, ob); + translate_anim_recursive(children[i], node, NULL); } } -- cgit v1.2.3 From dce577ad85e9c3349000143cf4e7647254c01cb9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Jun 2011 15:28:39 +0000 Subject: use directory selector for properties defined as PROP_DIRPATH, user preferences 'File' buttons for eg. --- .../blender/editors/interface/interface_layout.c | 5 ++++- .../blender/editors/space_buttons/buttons_intern.h | 1 + source/blender/editors/space_buttons/buttons_ops.c | 24 +++++++++++++++++++--- .../blender/editors/space_buttons/space_buttons.c | 1 + 4 files changed, 27 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 55c1488291b..79a90fb9d1d 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -534,7 +534,10 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *n uiDefAutoButR(block, ptr, prop, index, "", icon, x, y, w-UI_UNIT_X, h); /* BUTTONS_OT_file_browse calls uiFileBrowseContextProperty */ - but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL); + but= uiDefIconButO(block, BUT, subtype==PROP_DIRPATH ? + "BUTTONS_OT_directory_browse" : + "BUTTONS_OT_file_browse", + WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL); } else if(flag & UI_ITEM_R_EVENT) { uiDefButR(block, KEYEVT, 0, name, x, y, w, h, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL); diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index 925223b43ea..d25bd7940ab 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -71,6 +71,7 @@ extern const char *buttons_context_dir[]; /* doc access */ /* buttons_ops.c */ void BUTTONS_OT_file_browse(struct wmOperatorType *ot); +void BUTTONS_OT_directory_browse(struct wmOperatorType *ot); void BUTTONS_OT_toolbox(struct wmOperatorType *ot); #endif /* ED_BUTTONS_INTERN_H */ diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c index 9b914df1b3c..99e5c6d693e 100644 --- a/source/blender/editors/space_buttons/buttons_ops.c +++ b/source/blender/editors/space_buttons/buttons_ops.c @@ -104,11 +104,12 @@ static int file_browse_exec(bContext *C, wmOperator *op) FileBrowseOp *fbo= op->customdata; ID *id; char *base, *str, path[FILE_MAX]; + const char *path_prop= RNA_struct_find_property(op->ptr, "directory") ? "directory" : "filepath"; - if (RNA_property_is_set(op->ptr, "filepath")==0 || fbo==NULL) + if (RNA_property_is_set(op->ptr, path_prop)==0 || fbo==NULL) return OPERATOR_CANCELLED; - str= RNA_string_get_alloc(op->ptr, "filepath", NULL, 0); + str= RNA_string_get_alloc(op->ptr, path_prop, NULL, 0); /* add slash for directories, important for some properties */ if(RNA_property_subtype(fbo->prop) == PROP_DIRPATH) { @@ -191,12 +192,13 @@ static int file_browse_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_CANCELLED; } else { + const char *path_prop= RNA_struct_find_property(op->ptr, "directory") ? "directory" : "filepath"; fbo= MEM_callocN(sizeof(FileBrowseOp), "FileBrowseOp"); fbo->ptr= ptr; fbo->prop= prop; op->customdata= fbo; - RNA_string_set(op->ptr, "filepath", str); + RNA_string_set(op->ptr, path_prop, str); MEM_freeN(str); if(RNA_struct_find_property(op->ptr, "relative_path")) { @@ -227,3 +229,19 @@ void BUTTONS_OT_file_browse(wmOperatorType *ot) WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); } +/* second operator, only difference from BUTTONS_OT_file_browse is WM_FILESEL_DIRECTORY */ +void BUTTONS_OT_directory_browse(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Accept"; + ot->description="Open a directory browser, Hold Shift to open the file, Alt to browse containing directory"; + ot->idname= "BUTTONS_OT_directory_browse"; + + /* api callbacks */ + ot->invoke= file_browse_invoke; + ot->exec= file_browse_exec; + ot->cancel= file_browse_cancel; + + /* properties */ + WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH); +} diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 16c4df59420..e2d80e9e775 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -187,6 +187,7 @@ static void buttons_operatortypes(void) { WM_operatortype_append(BUTTONS_OT_toolbox); WM_operatortype_append(BUTTONS_OT_file_browse); + WM_operatortype_append(BUTTONS_OT_directory_browse); } static void buttons_keymap(struct wmKeyConfig *keyconf) -- cgit v1.2.3 From 5ef551c97e700fbca8dd8678de06278edea18c61 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 16 Jun 2011 17:14:38 +0000 Subject: Small todo item: outliner display actions were sending undo pushes, not needed for UI stuff. --- source/blender/editors/space_outliner/outliner.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index bd2d591a8c8..57dec68f68f 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -1763,7 +1763,7 @@ void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) ot->exec= outliner_toggle_expanded_exec; ot->poll= ED_operator_outliner_active; - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + /* no undo or registry, UI option */ } /* --- */ @@ -1798,7 +1798,7 @@ void OUTLINER_OT_selected_toggle(wmOperatorType *ot) ot->exec= outliner_toggle_selected_exec; ot->poll= ED_operator_outliner_active; - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + /* no undo or registry, UI option */ } /* --- */ @@ -1855,7 +1855,7 @@ void OUTLINER_OT_show_one_level(wmOperatorType *ot) ot->exec= outliner_one_level_exec; ot->poll= ED_operator_outliner_active; - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + /* no undo or registry, UI option */ /* properties */ RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); @@ -3050,7 +3050,7 @@ void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) ot->exec= outliner_show_hierarchy_exec; ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + /* no undo or registry, UI option */ } void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) -- cgit v1.2.3 From d240733ae20612c98debd8c4226facae22350544 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 16 Jun 2011 19:25:21 +0000 Subject: Reverted Exporter unit conversion modifications. Animation Importer Code Cleanup. --- source/blender/collada/AnimationExporter.cpp | 28 +++++------ source/blender/collada/AnimationImporter.cpp | 75 ++++++---------------------- source/blender/collada/AnimationImporter.h | 2 +- 3 files changed, 30 insertions(+), 75 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 8f6f3fae982..f0491af3a49 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -428,7 +428,7 @@ void AnimationExporter::exportAnimations(Scene *sce) float AnimationExporter::convert_angle(float angle) { - return COLLADABU::Math::Utils::degToRadF(angle); + return COLLADABU::Math::Utils::radToDegF(angle); } std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) @@ -491,12 +491,12 @@ void AnimationExporter::exportAnimations(Scene *sce) break; case COLLADASW::InputSemantic::OUTPUT: *length = 1; - /*if (rotation) { - values[0] = convert_angle(bezt->vec[1][1]); + if (rotation) { + values[0] = (bezt->vec[1][1]) * 180.0f/M_PI; } - else {*/ + else { values[0] = bezt->vec[1][1]; - //} + } break; case COLLADASW::InputSemantic::IN_TANGENT: @@ -507,11 +507,11 @@ void AnimationExporter::exportAnimations(Scene *sce) values[0] = 0; values[1] = 0; } - /* else if (rotation) { - values[1] = convert_angle(bezt->vec[0][1]); - } else {*/ + else if (rotation) { + values[1] = (bezt->vec[0][1]) * 180.0f/M_PI; + } else { values[1] = bezt->vec[0][1]; - //} + } break; case COLLADASW::InputSemantic::OUT_TANGENT: @@ -522,11 +522,11 @@ void AnimationExporter::exportAnimations(Scene *sce) values[0] = 0; values[1] = 0; } - /* else if (rotation) { - values[1] = convert_angle(bezt->vec[2][1]); - } else {*/ + else if (rotation) { + values[1] = (bezt->vec[0][1]) * 180.0f/M_PI; + } else { values[1] = bezt->vec[2][1]; - //} + } break; break; default: @@ -601,7 +601,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // val = convert_time(val); //else if (is_rot) - val = convert_angle(val); + val *= 180.0f / M_PI; source.appendValues(val); } diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index c7f4d28e120..9588f985360 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -535,16 +535,6 @@ virtual void AnimationImporter::change_eul_to_quat(Object *ob, bAction *act) } #endif -//Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, -// std::map& object_map, -// std::map& root_map, -// COLLADAFW::Transformation::TransformationType tm_type, -// Object *par_job) -//{ -// bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; -// //bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; -//} - //sets the rna_path and array index to curve void AnimationImporter::modify_fcurve(std::vector* curves , char* rna_path , int array_index ) @@ -567,11 +557,7 @@ void AnimationImporter::find_frames( std::vector* frames , std::vector::iterator iter; for (iter = curves->begin(); iter != curves->end(); iter++) { FCurve *fcu = *iter; - // - ////if transform is rotation the fcurves values must be turned in to radian. - //if (is_rotation) - // fcurve_deg_to_rad(fcu); - + for (unsigned int k = 0; k < fcu->totvert; k++) { //get frame value from bezTriple float fra = fcu->bezt[k].vec[1][0]; @@ -589,32 +575,10 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path) { - //bool is_joint = node->getType() == COLLADAFW::Node::JOINT; COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; - //Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; - //char joint_path[100]; - - /*if ( is_joint ) - armature_importer->get_rna_path_for_joint(animated.node, joint_path, sizeof(joint_path));*/ - - //bAction * act; - - //if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); - //else act = ob->adt->action; - // - ////Get the list of animation curves of the object - // ListBase *AnimCurves = act->curves; - // - -// char* tm_str; -// int array_index; - - //curves belonging to the animation - //std::vector curves = curve_map[bindings[j].animation]; - //to check if the no of curves are valid bool xyz = ((tm_type == COLLADAFW::Transformation::TRANSLATE ||tm_type == COLLADAFW::Transformation::SCALE) && binding->animationClass == COLLADAFW::AnimationList::POSITION_XYZ); @@ -644,19 +608,15 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, switch (binding->animationClass) { case COLLADAFW::AnimationList::POSITION_X: modify_fcurve(curves, rna_path, 0 ); - //add_fcurves_to_object(ob, curves, rna_path, 0, &animated); break; case COLLADAFW::AnimationList::POSITION_Y: modify_fcurve(curves, rna_path, 1 ); - //add_fcurves_to_object(ob, curves, rna_path, 1, &animated); break; case COLLADAFW::AnimationList::POSITION_Z: modify_fcurve(curves, rna_path, 2 ); - //add_fcurves_to_object(ob, curves, rna_path, 2, &animated); break; case COLLADAFW::AnimationList::POSITION_XYZ: modify_fcurve(curves, rna_path, -1 ); - //add_fcurves_to_object(ob, curves, rna_path, -1, &animated); break; default: fprintf(stderr, "AnimationClass %d is not supported for %s.\n", @@ -687,15 +647,12 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, case COLLADAFW::AnimationList::ANGLE: if (COLLADABU::Math::Vector3::UNIT_X == axis) { modify_fcurve(curves, rna_path, 0 ); - //add_fcurves_to_object(ob, fcurves, rna_path, 0, &animated); } else if (COLLADABU::Math::Vector3::UNIT_Y == axis) { modify_fcurve(curves, rna_path, 1 ); - //add_fcurves_to_object(ob, fcurves, rna_path, 1, &animated); } else if (COLLADABU::Math::Vector3::UNIT_Z == axis) { modify_fcurve(curves, rna_path, 2 ); - //add_fcurves_to_object(ob, fcurves, rna_path, 2, &animated); } break; case COLLADAFW::AnimationList::AXISANGLE: @@ -713,8 +670,7 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); break; } - //BLI_addtail(&AnimCurves, curves); - + } void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , @@ -727,7 +683,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - if ( ! is_object_animated(ob,node) ) return ; + if ( ! is_object_animated(node) ) return ; char joint_path[200]; @@ -749,7 +705,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } - float irest_dae[4][4]; + /*float irest_dae[4][4]; float rest[4][4], irest[4][4]; if (is_joint) { @@ -765,7 +721,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , unit_m4(rest); copy_m4_m4(rest, bone->arm_mat); invert_m4_m4(irest, rest); - } + }*/ const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -776,14 +732,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; - - + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); - //might not be needed, let's see + //might not be needed std::vector frames; - //all the curves belonging to the transform - + //check if transformation has animations if (animlist_map.find(listid) == animlist_map.end()) continue ; else @@ -795,11 +749,10 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - - Assign_transform_animations(&frames,transform, &bindings[j], &animcurves, is_joint, joint_path ); - std::vector::iterator iter; + Assign_transform_animations(&frames,transform, &bindings[j], &animcurves, is_joint, joint_path ); + + std::vector::iterator iter; //Add the curves of the current animation to the object for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; @@ -826,7 +779,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } -bool AnimationImporter::is_object_animated ( const Object *ob , const COLLADAFW::Node * node ) +//Check if object is animated by checking if animlist_map holds the animlist_id of node transforms +bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node ) { bool exists = false; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -847,7 +801,8 @@ bool AnimationImporter::is_object_animated ( const Object *ob , const COLLADAFW: return exists; } - + +//XXX Is not used anymore. void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW::Node * node , COLLADAFW::Transformation::TransformationType tm_type) { bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 08addc987ba..1e005b5c341 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -99,7 +99,7 @@ public: std::map& root_map, std::map& object_map ); - bool is_object_animated ( const Object *ob , const COLLADAFW::Node * node ) ; + bool is_object_animated ( const COLLADAFW::Node * node ) ; void Assign_transform_animations(std::vector* frames, -- cgit v1.2.3 From 18b5dac5cad91abf4787d7fd7a06029a02b6609d Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 16 Jun 2011 19:45:38 +0000 Subject: Standard views (front, top, etc.) work from buttons on SpaceExplorer and SpacePilotPro. Linux can now determine which NDOF device is plugged in. --- source/blender/editors/space_view3d/view3d_ops.c | 8 +++- source/blender/windowmanager/wm_event_types.h | 58 ++++++++++++++++-------- 2 files changed, 47 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 3e99c6992d1..2dd560a6408 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -163,8 +163,14 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1); /* 3D mouse */ - WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON1, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_ndof", NDOF_MOTION, 0, 0, 0); + WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON_FIT, KM_PRESS, 0, 0); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_FRONT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_BACK, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BACK); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_LEFT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_LEFT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_RIGHT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_TOP, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_BOTTOM, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BOTTOM); /* numpad view hotkeys*/ RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD0, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_CAMERA); diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 748f5018e1a..ed500ccd5c5 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -79,25 +79,47 @@ #define INBETWEEN_MOUSEMOVE 17 /* NDOF (from SpaceNavigator & friends) */ -#define NDOF_MOTION 0x12 +#define NDOF_MOTION 0x12 // keep in sync with GHOST_NDOFManager.h enum { - NDOF_BUTTON_NONE = NDOF_MOTION, /* never sent, used internally */ - NDOF_BUTTON1, - NDOF_BUTTON2/*, the following buttons will be supported soon... - NDOF_BUTTON3, and possibly get meaningful names - NDOF_BUTTON4, - NDOF_BUTTON5, - NDOF_BUTTON6, - NDOF_BUTTON7, - NDOF_BUTTON8, - NDOF_BUTTON9, - NDOF_BUTTON10, - NDOF_BUTTON11, - NDOF_BUTTON12, - NDOF_BUTTON13, - NDOF_BUTTON14, - NDOF_BUTTON15, - NDOF_BUTTON16*/ + // used internally, never sent + NDOF_BUTTON_NONE = NDOF_MOTION, + // these two are available from any 3Dconnexion device + NDOF_BUTTON_MENU, + NDOF_BUTTON_FIT, + // standard views + NDOF_BUTTON_TOP, + NDOF_BUTTON_BOTTOM, + NDOF_BUTTON_LEFT, + NDOF_BUTTON_RIGHT, + NDOF_BUTTON_FRONT, + NDOF_BUTTON_BACK, + // more views + NDOF_BUTTON_ISO1, + NDOF_BUTTON_ISO2, + // 90 degree rotations + NDOF_BUTTON_ROLL_CW, + NDOF_BUTTON_ROLL_CCW, + NDOF_BUTTON_SPIN_CW, + NDOF_BUTTON_SPIN_CCW, + NDOF_BUTTON_TILT_CW, + NDOF_BUTTON_TILT_CCW, + // device control + NDOF_BUTTON_ROTATE, + NDOF_BUTTON_PANZOOM, + NDOF_BUTTON_DOMINANT, + NDOF_BUTTON_PLUS, + NDOF_BUTTON_MINUS, + // general-purpose buttons + NDOF_BUTTON_1, + NDOF_BUTTON_2, + NDOF_BUTTON_3, + NDOF_BUTTON_4, + NDOF_BUTTON_5, + NDOF_BUTTON_6, + NDOF_BUTTON_7, + NDOF_BUTTON_8, + NDOF_BUTTON_9, + NDOF_BUTTON_10, }; -- cgit v1.2.3 From 135608206316a45afa7d722cf38ae0142dfe64f2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 02:22:38 +0000 Subject: fix [#27681] Python: crash assigning a 'set' to an array --- source/blender/python/intern/bpy_rna.c | 10 +- source/blender/python/intern/bpy_rna_array.c | 133 ++++++++++++++++++--------- 2 files changed, 94 insertions(+), 49 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 38cc3edd8f6..00325446e61 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1380,12 +1380,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb if (RNA_property_array_check(ptr, prop)) { - int ok= 1; - /* done getting the length */ - ok= pyrna_py_to_array(ptr, prop, data, value, error_prefix); - - if (!ok) { + if(pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) { return -1; } } @@ -1767,8 +1763,8 @@ static int pyrna_py_to_prop_array_index(BPy_PropertyArrayRNA *self, int index, P if (totdim > 1) { /* char error_str[512]; */ - if (!pyrna_py_to_array_index(&self->ptr, self->prop, self->arraydim, self->arrayoffset, index, value, "")) { - /* PyErr_SetString(PyExc_AttributeError, error_str); */ + if (pyrna_py_to_array_index(&self->ptr, self->prop, self->arraydim, self->arrayoffset, index, value, "") == -1) { + /* error is set */ ret= -1; } } diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index df295e812be..0d58856c184 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -68,15 +68,19 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] /* check that a sequence contains dimsize[dim] items */ const int seq_size= PySequence_Size(seq); if(seq_size == -1) { - PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not %s", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); - return 0; + PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); + return -1; } for (i= 0; i < seq_size; i++) { PyObject *item; int ok= 1; item= PySequence_GetItem(seq, i); - if (!PySequence_Check(item)) { + if(item == NULL) { + PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); + ok= 0; + } + else if (!PySequence_Check(item)) { /* BLI_snprintf(error_str, error_str_size, "expected a sequence of %s", item_type_str); */ PyErr_Format(PyExc_TypeError, "%s expected a sequence of %s, not %s", error_prefix, item_type_str, Py_TYPE(item)->tp_name); ok= 0; @@ -91,39 +95,43 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] PyErr_Format(PyExc_ValueError, "%s sequences of dimension %d should contain %d items", error_prefix, (int)dim + 1, (int)dimsize[dim + 1]); ok= 0; } - else if (!validate_array_type(item, dim + 1, totdim, dimsize, check_item_type, item_type_str, error_prefix)) { + else if (validate_array_type(item, dim + 1, totdim, dimsize, check_item_type, item_type_str, error_prefix) == -1) { ok= 0; } - Py_DECREF(item); + Py_XDECREF(item); if (!ok) - return 0; + return -1; } } else { /* check that items are of correct type */ const int seq_size= PySequence_Size(seq); if(seq_size == -1) { - PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not %s", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); - return 0; + PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); + return -1; } for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); - if (!check_item_type(item)) { + if(item == NULL) { + PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); + return -1; + } + else if (!check_item_type(item)) { Py_DECREF(item); /* BLI_snprintf(error_str, error_str_size, "sequence items should be of type %s", item_type_str); */ PyErr_Format(PyExc_TypeError, "%s expected sequence items of type %s, not %s", error_prefix, item_type_str, Py_TYPE(item)->tp_name); - return 0; + return -1; } Py_DECREF(item); } } - return 1; + return 0; /* ok */ } /* Returns the number of items in a single- or multi-dimensional sequence. */ @@ -136,8 +144,21 @@ static int count_items(PyObject *seq, int dim) int i; for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); - totitem += count_items(item, dim - 1); - Py_DECREF(item); + if(item) { + const int tot= count_items(item, dim - 1); + Py_DECREF(item); + if(tot != -1) { + totitem += tot; + } + else { + totitem= -1; + break; + } + } + else { + totitem= -1; + break; + } } } else { @@ -156,18 +177,22 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA totdim= RNA_property_array_dimension(ptr, prop, dimsize); tot= count_items(rvalue, totdim - lvalue_dim); - if ((RNA_property_flag(prop) & PROP_DYNAMIC) && lvalue_dim == 0) { + if(tot == -1) { + PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, error validating the sequence length", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop)); + return -1; + } + else if ((RNA_property_flag(prop) & PROP_DYNAMIC) && lvalue_dim == 0) { if (RNA_property_array_length(ptr, prop) != tot) { #if 0 /* length is flexible */ if (!RNA_property_dynamic_array_set_length(ptr, prop, tot)) { /* BLI_snprintf(error_str, error_str_size, "%s.%s: array length cannot be changed to %d", RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), tot); */ PyErr_Format(PyExc_ValueError, "%s %s.%s: array length cannot be changed to %d", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), tot); - return 0; + return -1; } #else *totitem= tot; - return 1; + return 0; #endif } @@ -205,13 +230,13 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA if (tot != len) { /* BLI_snprintf(error_str, error_str_size, "sequence must have length of %d", len); */ PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, sequence must have %d items total, not %d", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), len, tot); - return 0; + return -1; } } *totitem= len; - return 1; + return 0; } static int validate_array(PyObject *rvalue, PointerRNA *ptr, PropertyRNA *prop, int lvalue_dim, ItemTypeCheckFunc check_item_type, const char *item_type_str, int *totitem, const char *error_prefix) @@ -221,8 +246,8 @@ static int validate_array(PyObject *rvalue, PointerRNA *ptr, PropertyRNA *prop, /* validate type first because length validation may modify property array length */ - if (!validate_array_type(rvalue, lvalue_dim, totdim, dimsize, check_item_type, item_type_str, error_prefix)) - return 0; + if (validate_array_type(rvalue, lvalue_dim, totdim, dimsize, check_item_type, item_type_str, error_prefix) == -1) + return -1; return validate_array_length(rvalue, ptr, prop, lvalue_dim, totitem, error_prefix); } @@ -250,25 +275,39 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, int int totdim= RNA_property_array_dimension(ptr, prop, NULL); const int seq_size= PySequence_Size(seq); - assert(seq_size != -1); + /* General note for 'data' being NULL or PySequence_GetItem() failing. + * + * This should never be NULL since we validated it, _but_ some triky python + * developer could write their own sequence type which succeeds on + * validating but fails later somehow, so include checks for safety. */ + + if(seq_size == -1) { + return NULL; + } - for (i= 0; i < seq_size; i++) { + for (i= 0; (i < seq_size) && data; i++) { PyObject *item= PySequence_GetItem(seq, i); + if(item) { + if (dim + 1 < totdim) { + data= copy_values(item, ptr, prop, dim + 1, data, item_size, index, convert_item, rna_set_index); + } + else { + data= copy_value_single(item, ptr, prop, data, item_size, index, convert_item, rna_set_index); + } + + Py_DECREF(item); - if (dim + 1 < totdim) { - data= copy_values(item, ptr, prop, dim + 1, data, item_size, index, convert_item, rna_set_index); + /* data may be NULL, but the for loop checks */ } else { - data= copy_value_single(item, ptr, prop, data, item_size, index, convert_item, rna_set_index); + return NULL; } - - Py_DECREF(item); } return data; } -static int py_to_array(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, char *param_data, ItemTypeCheckFunc check_item_type, const char *item_type_str, int item_size, ItemConvertFunc convert_item, RNA_SetArrayFunc rna_set_array, const char *error_prefix) +static int py_to_array(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, char *param_data, ItemTypeCheckFunc check_item_type, const char *item_type_str, int item_size, ItemConvertFunc convert_item, RNA_SetArrayFunc rna_set_array, const char *error_prefix) { /*int totdim, dim_size[MAX_ARRAY_DIMENSION];*/ int totitem; @@ -276,8 +315,8 @@ static int py_to_array(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, char *p /*totdim= RNA_property_array_dimension(ptr, prop, dim_size);*/ /*UNUSED*/ - if (!validate_array(py, ptr, prop, 0, check_item_type, item_type_str, &totitem, error_prefix)) { - return 0; + if (validate_array(seq, ptr, prop, 0, check_item_type, item_type_str, &totitem, error_prefix) == -1) { + return -1; } if (totitem) { @@ -297,16 +336,26 @@ static int py_to_array(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, char *p data= PyMem_MALLOC(item_size * totitem); } - copy_values(py, ptr, prop, 0, data, item_size, NULL, convert_item, NULL); + /* will only fail in very rare cases since we already validated the + * python data, the check here is mainly for completeness. */ + if(copy_values(seq, ptr, prop, 0, data, item_size, NULL, convert_item, NULL) != NULL) { + if (param_data==NULL) { + /* NULL can only pass through in case RNA property arraylength is 0 (impossible?) */ + rna_set_array(ptr, prop, data); + PyMem_FREE(data); + } + } + else { + if (param_data==NULL) { + PyMem_FREE(data); + } - if (param_data==NULL) { - /* NULL can only pass through in case RNA property arraylength is 0 (impossible?) */ - rna_set_array(ptr, prop, data); - PyMem_FREE(data); + PyErr_Format(PyExc_TypeError, "%s internal error parsing sequence of type '%s' after successful validation", error_prefix, Py_TYPE(seq)->tp_name); + return -1; } } - return 1; + return 0; } static int py_to_array_index(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, int lvalue_dim, int arrayoffset, int index, ItemTypeCheckFunc check_item_type, const char *item_type_str, ItemConvertFunc convert_item, RNA_SetIndexFunc rna_set_index, const char *error_prefix) @@ -336,20 +385,20 @@ static int py_to_array_index(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, i if(lvalue_dim == totdim) { /* single item, assign directly */ if(!check_item_type(py)) { PyErr_Format(PyExc_TypeError, "%s %.200s.%.200s, expected a %s type, not %s", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), item_type_str, Py_TYPE(py)->tp_name); - return 0; + return -1; } copy_value_single(py, ptr, prop, NULL, 0, &index, convert_item, rna_set_index); } else { - if (!validate_array(py, ptr, prop, lvalue_dim, check_item_type, item_type_str, &totitem, error_prefix)) { - return 0; + if (validate_array(py, ptr, prop, lvalue_dim, check_item_type, item_type_str, &totitem, error_prefix) == -1) { + return -1; } if (totitem) { copy_values(py, ptr, prop, lvalue_dim, NULL, 0, &index, convert_item, rna_set_index); } } - return 1; + return 0; } static void py_to_float(PyObject *py, char *data) @@ -414,7 +463,7 @@ int pyrna_py_to_array(PointerRNA *ptr, PropertyRNA *prop, char *param_data, PyOb break; default: PyErr_SetString(PyExc_TypeError, "not an array type"); - ret= 0; + ret= -1; } return ret; @@ -435,7 +484,7 @@ int pyrna_py_to_array_index(PointerRNA *ptr, PropertyRNA *prop, int arraydim, in break; default: PyErr_SetString(PyExc_TypeError, "not an array type"); - ret= 0; + ret= -1; } return ret; -- cgit v1.2.3 From 897b570c1a4fe5596989208f3c4d5cf2c0cb38e0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 02:26:34 +0000 Subject: ulti line formatting for PyErr_Format calls (no functional change) --- source/blender/python/intern/bpy_rna_array.c | 38 +++++++++++++++++++--------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index 0d58856c184..9843a57e0f2 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -68,7 +68,8 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] /* check that a sequence contains dimsize[dim] items */ const int seq_size= PySequence_Size(seq); if(seq_size == -1) { - PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); + PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", + error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); return -1; } for (i= 0; i < seq_size; i++) { @@ -77,12 +78,14 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] item= PySequence_GetItem(seq, i); if(item == NULL) { - PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); + PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", + error_prefix, Py_TYPE(seq)->tp_name, i); ok= 0; } else if (!PySequence_Check(item)) { /* BLI_snprintf(error_str, error_str_size, "expected a sequence of %s", item_type_str); */ - PyErr_Format(PyExc_TypeError, "%s expected a sequence of %s, not %s", error_prefix, item_type_str, Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, "%s expected a sequence of %s, not %s", + error_prefix, item_type_str, Py_TYPE(item)->tp_name); ok= 0; } /* arr[3][4][5] @@ -92,7 +95,8 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] dim=0 */ else if (PySequence_Size(item) != dimsize[dim + 1]) { /* BLI_snprintf(error_str, error_str_size, "sequences of dimension %d should contain %d items", (int)dim + 1, (int)dimsize[dim + 1]); */ - PyErr_Format(PyExc_ValueError, "%s sequences of dimension %d should contain %d items", error_prefix, (int)dim + 1, (int)dimsize[dim + 1]); + PyErr_Format(PyExc_ValueError, "%s sequences of dimension %d should contain %d items", + error_prefix, (int)dim + 1, (int)dimsize[dim + 1]); ok= 0; } else if (validate_array_type(item, dim + 1, totdim, dimsize, check_item_type, item_type_str, error_prefix) == -1) { @@ -109,21 +113,24 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] /* check that items are of correct type */ const int seq_size= PySequence_Size(seq); if(seq_size == -1) { - PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); + PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", + error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); return -1; } for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); if(item == NULL) { - PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); + PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", + error_prefix, Py_TYPE(seq)->tp_name, i); return -1; } else if (!check_item_type(item)) { Py_DECREF(item); /* BLI_snprintf(error_str, error_str_size, "sequence items should be of type %s", item_type_str); */ - PyErr_Format(PyExc_TypeError, "%s expected sequence items of type %s, not %s", error_prefix, item_type_str, Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, "%s expected sequence items of type %s, not %s", + error_prefix, item_type_str, Py_TYPE(item)->tp_name); return -1; } @@ -178,7 +185,8 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA tot= count_items(rvalue, totdim - lvalue_dim); if(tot == -1) { - PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, error validating the sequence length", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop)); + PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, error validating the sequence length", + error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop)); return -1; } else if ((RNA_property_flag(prop) & PROP_DYNAMIC) && lvalue_dim == 0) { @@ -187,7 +195,8 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA /* length is flexible */ if (!RNA_property_dynamic_array_set_length(ptr, prop, tot)) { /* BLI_snprintf(error_str, error_str_size, "%s.%s: array length cannot be changed to %d", RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), tot); */ - PyErr_Format(PyExc_ValueError, "%s %s.%s: array length cannot be changed to %d", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), tot); + PyErr_Format(PyExc_ValueError, "%s %s.%s: array length cannot be changed to %d", + error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), tot); return -1; } #else @@ -229,7 +238,8 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA if (tot != len) { /* BLI_snprintf(error_str, error_str_size, "sequence must have length of %d", len); */ - PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, sequence must have %d items total, not %d", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), len, tot); + PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, sequence must have %d items total, not %d", + error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), len, tot); return -1; } } @@ -350,7 +360,8 @@ static int py_to_array(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, char * PyMem_FREE(data); } - PyErr_Format(PyExc_TypeError, "%s internal error parsing sequence of type '%s' after successful validation", error_prefix, Py_TYPE(seq)->tp_name); + PyErr_Format(PyExc_TypeError, "%s internal error parsing sequence of type '%s' after successful validation", + error_prefix, Py_TYPE(seq)->tp_name); return -1; } } @@ -384,7 +395,10 @@ static int py_to_array_index(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, i if(lvalue_dim == totdim) { /* single item, assign directly */ if(!check_item_type(py)) { - PyErr_Format(PyExc_TypeError, "%s %.200s.%.200s, expected a %s type, not %s", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), item_type_str, Py_TYPE(py)->tp_name); + PyErr_Format(PyExc_TypeError, "%s %.200s.%.200s, expected a %s type, not %s", + error_prefix, RNA_struct_identifier(ptr->type), + RNA_property_identifier(prop), item_type_str, + Py_TYPE(py)->tp_name); return -1; } copy_value_single(py, ptr, prop, NULL, 0, &index, convert_item, rna_set_index); -- cgit v1.2.3 From ac089ddd15c0d5400274076dd857f0c22c460a54 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 03:17:07 +0000 Subject: fix for drawing bones names twice in object with viewport 'Outline' option enabled. --- source/blender/editors/space_view3d/drawarmature.c | 18 +++++++++--------- source/blender/editors/space_view3d/drawobject.c | 4 ++-- source/blender/editors/space_view3d/view3d_intern.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 7c66cec5730..02a7ea890f5 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -1577,7 +1577,7 @@ static void bone_matrix_translate_y(float mat[][4], float y) } /* assumes object is Armature with pose */ -static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, short ghost) +static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, const short is_ghost, const short is_outline) { RegionView3D *rv3d= ar->regiondata; Object *ob= base->object; @@ -1737,7 +1737,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, } /* prepare colors */ - if(ghost) { + if(is_ghost) { /* 13 October 2009, Disabled this to make ghosting show the right colors (Aligorith) */ } else if (arm->flag & ARM_POSEMODE) @@ -1905,7 +1905,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, draw_pose_dofs(ob); /* finally names and axes */ - if (arm->flag & (ARM_DRAWNAMES|ARM_DRAWAXES)) { + if (arm->flag & (ARM_DRAWNAMES|ARM_DRAWAXES) && is_outline == 0) { /* patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing */ if ((G.f & G_PICKSEL) == 0) { float vec[3]; @@ -2259,7 +2259,7 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); - draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } glDisable(GL_BLEND); if (v3d->zbuf) glEnable(GL_DEPTH_TEST); @@ -2338,7 +2338,7 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base * BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); - draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } glDisable(GL_BLEND); if (v3d->zbuf) glEnable(GL_DEPTH_TEST); @@ -2408,7 +2408,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) if (CFRA != cfrao) { BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); - draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } } @@ -2423,7 +2423,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) if (CFRA != cfrao) { BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); - draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } } } @@ -2444,7 +2444,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) /* ********************************** Armature Drawing - Main ************************* */ /* called from drawobject.c, return 1 if nothing was drawn */ -int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag) +int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag, const short is_outline) { Object *ob= base->object; bArmature *arm= ob->data; @@ -2510,7 +2510,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, in } } } - draw_pose_bones(scene, v3d, ar, base, dt, FALSE); + draw_pose_bones(scene, v3d, ar, base, dt, FALSE, is_outline); arm->flag &= ~ARM_POSEMODE; if(ob->mode & OB_MODE_POSE) diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index dcdb7954b16..5fcfe404d82 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5441,7 +5441,7 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base) } else if(ob->type==OB_ARMATURE) { if(!(ob->mode & OB_MODE_POSE)) - draw_armature(scene, v3d, ar, base, OB_WIRE, 0); + draw_armature(scene, v3d, ar, base, OB_WIRE, FALSE, TRUE); } glLineWidth(1.0); @@ -5977,7 +5977,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) case OB_ARMATURE: if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { if(dt>OB_WIRE) GPU_enable_material(0, NULL); // we use default material - empty_object= draw_armature(scene, v3d, ar, base, dt, flag); + empty_object= draw_armature(scene, v3d, ar, base, dt, flag, FALSE); if(dt>OB_WIRE) GPU_disable_material(); } break; diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index cd6bff1ebba..aa92f0d0a59 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -120,7 +120,7 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa #define V3D_CACHE_TEXT_ASCII (1<<2) /* drawarmature.c */ -int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag); +int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag, const short is_outline); /* drawmesh.c */ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, int faceselect); -- cgit v1.2.3 From 7cbc4c0dd7cf5c69eb74b36cd01c8321ad1a085f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 05:45:46 +0000 Subject: IDProperty python module update - add support for IDProp array slicing, but not resizing. - rename array attribute type to typecode and use chars 'f', 'd', 'i' which match pythons array module. (was using int's which only have a meaning internally). - rename function 'convert_to_pyobject' to 'to_dict' and 'to_list' for IDProp group and array types respectively. - remove 'len' array attribute, calling len(array) is fine. --- source/blender/python/generic/IDProp.c | 326 ++++++++++++++++++++------ source/blender/python/generic/IDProp.h | 5 +- source/blender/python/generic/py_capi_utils.c | 70 ++++++ source/blender/python/generic/py_capi_utils.h | 2 +- source/blender/python/intern/bpy_props.c | 6 +- source/blender/python/intern/bpy_util.c | 60 ----- 6 files changed, 333 insertions(+), 136 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/IDProp.c b/source/blender/python/generic/IDProp.c index a807624187a..f6eb46796c9 100644 --- a/source/blender/python/generic/IDProp.c +++ b/source/blender/python/generic/IDProp.c @@ -45,26 +45,31 @@ #include "py_capi_utils.h" #endif -extern PyTypeObject IDArray_Type; -extern PyTypeObject IDGroup_Iter_Type; +extern PyTypeObject BPy_IDArray_Type; +extern PyTypeObject BPy_IDGroup_Iter_Type; +extern PyTypeObject BPy_IDGroup_Type; /*********************** ID Property Main Wrapper Stuff ***************/ -static PyObject *IDGroup_repr( BPy_IDProperty *self ) +/* use for both array and group */ +static long BPy_IDGroup_hash(BPy_IDProperty *self) { - return PyUnicode_FromFormat( "", self->id->name); + return _Py_HashPointer(self->prop); } -extern PyTypeObject IDGroup_Type; +static PyObject *BPy_IDGroup_repr(BPy_IDProperty *self) +{ + return PyUnicode_FromFormat( "", self->id->name); +} PyObject *BPy_IDGroup_WrapData( ID *id, IDProperty *prop ) { switch ( prop->type ) { case IDP_STRING: #ifdef USE_STRING_COERCE - return PyC_UnicodeFromByte(prop->data.pointer); + return PyC_UnicodeFromByte(IDP_Array(prop)); #else - return PyUnicode_FromString(prop->data.pointer); + return PyUnicode_FromString(IDP_Array(prop)); #endif case IDP_INT: return PyLong_FromLong( (long)prop->data.val ); @@ -75,14 +80,14 @@ PyObject *BPy_IDGroup_WrapData( ID *id, IDProperty *prop ) case IDP_GROUP: /*blegh*/ { - BPy_IDProperty *group = PyObject_New(BPy_IDProperty, &IDGroup_Type); + BPy_IDProperty *group = PyObject_New(BPy_IDProperty, &BPy_IDGroup_Type); group->id = id; group->prop = prop; return (PyObject*) group; } case IDP_ARRAY: { - BPy_IDProperty *array = PyObject_New(BPy_IDProperty, &IDArray_Type); + BPy_IDProperty *array = PyObject_New(BPy_IDProperty, &BPy_IDArray_Type); array->id = id; array->prop = prop; return (PyObject*) array; @@ -135,13 +140,13 @@ static int BPy_IDGroup_SetData(BPy_IDProperty *self, IDProperty *prop, PyObject st = _PyUnicode_AsString(value); IDP_ResizeArray(prop, alloc_len); - memcpy(prop->data.pointer, st, alloc_len); + memcpy(IDP_Array(prop), st, alloc_len); Py_XDECREF(value_coerce); } #else st = _PyUnicode_AsString(value); IDP_ResizeArray(prop, strlen(st)+1); - strcpy(prop->data.pointer, st); + strcpy(IDP_Array(prop), st); #endif return 0; @@ -344,7 +349,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g prop = IDP_New(IDP_ARRAY, val, name); for (i=0; idata.pointer)[i] = (float)PyFloat_AsDouble(item); + ((double*)IDP_Array(prop))[i] = (float)PyFloat_AsDouble(item); Py_DECREF(item); } break; @@ -352,7 +357,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g prop = IDP_New(IDP_ARRAY, val, name); for (i=0; idata.pointer)[i] = (int)PyLong_AsSsize_t(item); + ((int*)IDP_Array(prop))[i] = (int)PyLong_AsSsize_t(item); Py_DECREF(item); } break; @@ -465,9 +470,9 @@ static int BPy_IDGroup_Map_SetItem(BPy_IDProperty *self, PyObject *key, PyObject return BPy_Wrap_SetMapItem(self->prop, key, val); } -static PyObject *BPy_IDGroup_SpawnIterator(BPy_IDProperty *self) +static PyObject *BPy_IDGroup_iter(BPy_IDProperty *self) { - BPy_IDGroup_Iter *iter = PyObject_New(BPy_IDGroup_Iter, &IDGroup_Iter_Type); + BPy_IDGroup_Iter *iter = PyObject_New(BPy_IDGroup_Iter, &BPy_IDGroup_Iter_Type); iter->group = self; iter->mode = IDPROP_ITER_KEYS; iter->cur = self->prop->data.group.first; @@ -480,9 +485,9 @@ static PyObject *BPy_IDGroup_MapDataToPy(IDProperty *prop) switch (prop->type) { case IDP_STRING: #ifdef USE_STRING_COERCE - return PyC_UnicodeFromByte(prop->data.pointer); + return PyC_UnicodeFromByte(IDP_Array(prop)); #else - return PyUnicode_FromString(prop->data.pointer); + return PyUnicode_FromString(IDP_Array(prop)); #endif break; case IDP_FLOAT: @@ -504,20 +509,37 @@ static PyObject *BPy_IDGroup_MapDataToPy(IDProperty *prop) return NULL; } - for (i=0; ilen; i++) { - if (prop->subtype == IDP_FLOAT) { - PyList_SET_ITEM(seq, i, - PyFloat_FromDouble(((float*)prop->data.pointer)[i])); + switch(prop->subtype) { + case IDP_FLOAT: + { + float *array= (float*)IDP_Array(prop); + for (i=0; ilen; i++) { + PyList_SET_ITEM(seq, i, PyFloat_FromDouble(array[i])); + } + break; } - else if (prop->subtype == IDP_DOUBLE) { - PyList_SET_ITEM(seq, i, - PyFloat_FromDouble(((double*)prop->data.pointer)[i])); + case IDP_DOUBLE: + { + double *array= (double*)IDP_Array(prop); + for (i=0; ilen; i++) { + PyList_SET_ITEM(seq, i, PyFloat_FromDouble(array[i])); + } + break; } - else { - PyList_SET_ITEM(seq, i, - PyLong_FromLong(((int*)prop->data.pointer)[i])); + case IDP_INT: + { + int *array= (int*)IDP_Array(prop); + for (i=0; ilen; i++) { + PyList_SET_ITEM(seq, i, PyLong_FromLong(array[i])); + } + break; } + default: + PyErr_SetString(PyExc_RuntimeError, "invalid/corrupt array type!"); + Py_DECREF(seq); + return NULL; } + return seq; } case IDP_IDPARRAY: @@ -595,7 +617,7 @@ static PyObject *BPy_IDGroup_Pop(BPy_IDProperty *self, PyObject *value) static PyObject *BPy_IDGroup_IterItems(BPy_IDProperty *self) { - BPy_IDGroup_Iter *iter = PyObject_New(BPy_IDGroup_Iter, &IDGroup_Iter_Type); + BPy_IDGroup_Iter *iter = PyObject_New(BPy_IDGroup_Iter, &BPy_IDGroup_Iter_Type); iter->group = self; iter->mode = IDPROP_ITER_ITEMS; iter->cur = self->prop->data.group.first; @@ -731,7 +753,7 @@ static PyObject *BPy_IDGroup_Update(BPy_IDProperty *self, PyObject *value) Py_RETURN_NONE; } -static PyObject *BPy_IDGroup_ConvertToPy(BPy_IDProperty *self) +static PyObject *BPy_IDGroup_to_dict(BPy_IDProperty *self) { return BPy_IDGroup_MapDataToPy(self->prop); } @@ -773,7 +795,7 @@ static struct PyMethodDef BPy_IDGroup_methods[] = { "updates the values in the group with the values of another or a dict"}, {"get", (PyCFunction)BPy_IDGroup_Get, METH_VARARGS, "idprop.get(k[,d]) -> idprop[k] if k in idprop, else d. d defaults to None"}, - {"convert_to_pyobject", (PyCFunction)BPy_IDGroup_ConvertToPy, METH_NOARGS, + {"to_dict", (PyCFunction)BPy_IDGroup_to_dict, METH_NOARGS, "return a purely python version of the group"}, {NULL, NULL, 0, NULL} }; @@ -792,16 +814,16 @@ static PySequenceMethods BPy_IDGroup_Seq = { }; static PyMappingMethods BPy_IDGroup_Mapping = { - (lenfunc)BPy_IDGroup_Map_Len, /*inquiry mp_length */ - (binaryfunc)BPy_IDGroup_Map_GetItem, /*binaryfunc mp_subscript */ + (lenfunc)BPy_IDGroup_Map_Len, /*inquiry mp_length */ + (binaryfunc)BPy_IDGroup_Map_GetItem,/*binaryfunc mp_subscript */ (objobjargproc)BPy_IDGroup_Map_SetItem, /*objobjargproc mp_ass_subscript */ }; -PyTypeObject IDGroup_Type = { +PyTypeObject BPy_IDGroup_Type = { PyVarObject_HEAD_INIT(NULL, 0) /* For printing, in format "." */ - "Blender IDProperty", /* char *tp_name; */ - sizeof( BPy_IDProperty ), /* int tp_basicsize; */ + "Blender IDProperty", /* char *tp_name; */ + sizeof(BPy_IDProperty), /* int tp_basicsize; */ 0, /* tp_itemsize; For allocation */ /* Methods to implement standard operations */ @@ -811,7 +833,7 @@ PyTypeObject IDGroup_Type = { NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ NULL, /* cmpfunc tp_compare; */ - ( reprfunc ) IDGroup_repr, /* reprfunc tp_repr; */ + (reprfunc)BPy_IDGroup_repr, /* reprfunc tp_repr; */ /* Method suites for standard classes */ @@ -821,7 +843,7 @@ PyTypeObject IDGroup_Type = { /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + (hashfunc)BPy_IDGroup_hash, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ NULL, /* getattrofunc tp_getattro; */ @@ -850,7 +872,7 @@ PyTypeObject IDGroup_Type = { /*** Added in release 2.2 ***/ /* Iterators */ - (getiterfunc)BPy_IDGroup_SpawnIterator, /* getiterfunc tp_iter; */ + (getiterfunc)BPy_IDGroup_iter, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ BPy_IDGroup_methods, /* struct PyMethodDef *tp_methods; */ @@ -861,7 +883,7 @@ PyTypeObject IDGroup_Type = { /*********** Main external wrapping function *******/ PyObject *BPy_Wrap_IDProperty(ID *id, IDProperty *prop, IDProperty *parent) { - BPy_IDProperty *wrap = PyObject_New(BPy_IDProperty, &IDGroup_Type); + BPy_IDProperty *wrap = PyObject_New(BPy_IDProperty, &BPy_IDGroup_Type); wrap->prop = prop; wrap->parent = parent; wrap->id = id; @@ -872,36 +894,58 @@ PyObject *BPy_Wrap_IDProperty(ID *id, IDProperty *prop, IDProperty *parent) /********Array Wrapper********/ -static PyObject *IDArray_repr(BPy_IDArray *self) +static PyTypeObject *idp_array_py_type(BPy_IDArray *self, short *is_double) { - return PyUnicode_FromFormat("(ID Array [%d])", self->prop->len); -} + switch (self->prop->subtype) { + case IDP_FLOAT: + *is_double= 0; + return &PyFloat_Type; + case IDP_DOUBLE: + *is_double= 1; + return &PyFloat_Type; + case IDP_INT: + *is_double= 0; + return &PyLong_Type; + } + *is_double= 0; + return NULL; +} -static PyObject *BPy_IDArray_GetType(BPy_IDArray *self) +static PyObject *BPy_IDArray_repr(BPy_IDArray *self) { - return PyLong_FromSsize_t( self->prop->subtype ); + return PyUnicode_FromFormat("", self->prop->len); } -static PyObject *BPy_IDArray_GetLen(BPy_IDArray *self) +static PyObject *BPy_IDArray_GetType(BPy_IDArray *self) { - return PyLong_FromSsize_t( self->prop->len ); + switch(self->prop->subtype) { + case IDP_FLOAT: + return PyUnicode_FromString("f"); + case IDP_DOUBLE: + return PyUnicode_FromString("d"); + case IDP_INT: + return PyUnicode_FromString("i"); + } + + PyErr_SetString(PyExc_RuntimeError, "invalid/corrupt array type!"); + return NULL; } static PyGetSetDef BPy_IDArray_getseters[] = { - {(char *)"len", (getter)BPy_IDArray_GetLen, (setter)NULL, (char *)"The length of the array, can also be gotten with len(array).", NULL}, - {(char *)"type", (getter)BPy_IDArray_GetType, (setter)NULL, (char *)"The type of the data in the array, is an ant.", NULL}, + /* matches pythons array.typecode */ + {(char *)"typecode", (getter)BPy_IDArray_GetType, (setter)NULL, (char *)"The type of the data in the array, is an int.", NULL}, {NULL, NULL, NULL, NULL, NULL}, }; -static PyObject *BPy_IDArray_ConvertToPy(BPy_IDArray *self) +static PyObject *BPy_IDArray_to_list(BPy_IDArray *self) { return BPy_IDGroup_MapDataToPy(self->prop); } static PyMethodDef BPy_IDArray_methods[] = { - {"convert_to_pyobject", (PyCFunction)BPy_IDArray_ConvertToPy, METH_NOARGS, - "return a purely python version of the group"}, + {"to_list", (PyCFunction)BPy_IDArray_to_list, METH_NOARGS, + "return the array as a list"}, {NULL, NULL, 0, NULL} }; @@ -919,14 +963,11 @@ static PyObject *BPy_IDArray_GetItem(BPy_IDArray *self, int index) switch (self->prop->subtype) { case IDP_FLOAT: - return PyFloat_FromDouble( (double)(((float*)self->prop->data.pointer)[index])); - break; + return PyFloat_FromDouble(((float*)IDP_Array(self->prop))[index]); case IDP_DOUBLE: - return PyFloat_FromDouble( (((double*)self->prop->data.pointer)[index])); - break; + return PyFloat_FromDouble(((double*)IDP_Array(self->prop))[index]); case IDP_INT: - return PyLong_FromLong( (long)((int*)self->prop->data.pointer)[index] ); - break; + return PyLong_FromLong((long)((int*)IDP_Array(self->prop))[index]); } PyErr_SetString(PyExc_RuntimeError, "invalid/corrupt array type!"); @@ -951,7 +992,7 @@ static int BPy_IDArray_SetItem(BPy_IDArray *self, int index, PyObject *value) PyErr_SetString(PyExc_TypeError, "expected a float"); return -1; } - ((float*)self->prop->data.pointer)[index] = f; + ((float*)IDP_Array(self->prop))[index] = f; break; case IDP_DOUBLE: d= PyFloat_AsDouble(value); @@ -959,7 +1000,7 @@ static int BPy_IDArray_SetItem(BPy_IDArray *self, int index, PyObject *value) PyErr_SetString(PyExc_TypeError, "expected a float"); return -1; } - ((double*)self->prop->data.pointer)[index] = d; + ((double*)IDP_Array(self->prop))[index] = d; break; case IDP_INT: i= PyLong_AsSsize_t(value); @@ -968,7 +1009,7 @@ static int BPy_IDArray_SetItem(BPy_IDArray *self, int index, PyObject *value) return -1; } - ((int*)self->prop->data.pointer)[index] = i; + ((int*)IDP_Array(self->prop))[index] = i; break; } return 0; @@ -988,11 +1029,156 @@ static PySequenceMethods BPy_IDArray_Seq = { NULL, /* intargfunc sq_inplace_repeat */ }; -PyTypeObject IDArray_Type = { + + +/* sequence slice (get): idparr[a:b] */ +static PyObject *BPy_IDArray_slice(BPy_IDArray *self, int begin, int end) +{ + IDProperty *prop= self->prop; + PyObject *tuple; + int count; + + CLAMP(begin, 0, prop->len); + if (end<0) end= prop->len+end+1; + CLAMP(end, 0, prop->len); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + + switch (prop->subtype) { + case IDP_FLOAT: + { + float *array= (float*)IDP_Array(prop); + for(count = begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(array[count])); + } + break; + } + case IDP_DOUBLE: + { + double *array= (double*)IDP_Array(prop); + for(count = begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(array[count])); + } + break; + } + case IDP_INT: + { + int *array= (int*)IDP_Array(prop); + for(count = begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyLong_FromLong(array[count])); + } + break; + } + } + + return tuple; +} +/* sequence slice (set): idparr[a:b] = value */ +static int BPy_IDArray_ass_slice(BPy_IDArray *self, int begin, int end, PyObject *seq) +{ + IDProperty *prop= self->prop; + short is_double= 0; + const PyTypeObject *py_type= idp_array_py_type(self, &is_double); + const size_t elem_size= is_double ? sizeof(double) : sizeof(float); + size_t alloc_len; + size_t size; + void *vec; + + CLAMP(begin, 0, prop->len); + CLAMP(end, 0, prop->len); + begin = MIN2(begin, end); + + size = (end - begin); + alloc_len= size * elem_size; + + vec= MEM_mallocN(alloc_len, "array assignment"); /* NOTE: we count on int/float being the same size here */ + if(PyC_AsArray(vec, seq, size, py_type, is_double, "slice assignment: ") == -1) { + MEM_freeN(vec); + return -1; + } + + memcpy((void *)(((char *)IDP_Array(prop)) + (begin * elem_size)), vec, alloc_len); + + MEM_freeN(vec); + return 0; +} + +static PyObject *BPy_IDArray_subscript(BPy_IDArray* self, PyObject* item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += self->prop->len; + return BPy_IDArray_GetItem(self, i); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->prop->len, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return BPy_IDArray_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_TypeError, "slice steps not supported with vectors"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, "vector indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + return NULL; + } +} + +static int BPy_IDArray_ass_subscript(BPy_IDArray* self, PyObject* item, PyObject* value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += self->prop->len; + return BPy_IDArray_SetItem(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->prop->len, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return BPy_IDArray_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_TypeError, "slice steps not supported with vectors"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, "vector indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + return -1; + } +} + +static PyMappingMethods BPy_IDArray_AsMapping = { + (lenfunc)BPy_IDArray_Len, + (binaryfunc)BPy_IDArray_subscript, + (objobjargproc)BPy_IDArray_ass_subscript +}; + + +PyTypeObject BPy_IDArray_Type = { PyVarObject_HEAD_INIT(NULL, 0) /* For printing, in format "." */ "Blender IDArray", /* char *tp_name; */ - sizeof( BPy_IDArray ), /* int tp_basicsize; */ + sizeof(BPy_IDArray), /* int tp_basicsize; */ 0, /* tp_itemsize; For allocation */ /* Methods to implement standard operations */ @@ -1002,17 +1188,17 @@ PyTypeObject IDArray_Type = { NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ NULL, /* cmpfunc tp_compare; */ - ( reprfunc ) IDArray_repr, /* reprfunc tp_repr; */ + (reprfunc)BPy_IDArray_repr, /* reprfunc tp_repr; */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - &BPy_IDArray_Seq, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + &BPy_IDArray_Seq, /* PySequenceMethods *tp_as_sequence; */ + &BPy_IDArray_AsMapping, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + NULL, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ NULL, /* getattrofunc tp_getattro; */ @@ -1106,7 +1292,7 @@ static PyObject *BPy_Group_Iter_Next(BPy_IDGroup_Iter *self) } } -PyTypeObject IDGroup_Iter_Type = { +PyTypeObject BPy_IDGroup_Iter_Type = { PyVarObject_HEAD_INIT(NULL, 0) /* For printing, in format "." */ "Blender IDGroup_Iter", /* char *tp_name; */ @@ -1165,7 +1351,7 @@ PyTypeObject IDGroup_Iter_Type = { void IDProp_Init_Types(void) { - PyType_Ready( &IDGroup_Type ); - PyType_Ready( &IDGroup_Iter_Type ); - PyType_Ready( &IDArray_Type ); + PyType_Ready(&BPy_IDGroup_Type); + PyType_Ready(&BPy_IDGroup_Iter_Type); + PyType_Ready(&BPy_IDArray_Type); } diff --git a/source/blender/python/generic/IDProp.h b/source/blender/python/generic/IDProp.h index 0ca8af81f7c..aca5c0195cc 100644 --- a/source/blender/python/generic/IDProp.h +++ b/source/blender/python/generic/IDProp.h @@ -37,14 +37,15 @@ struct BPy_IDGroup_Iter; typedef struct BPy_IDProperty { PyObject_VAR_HEAD struct ID *id; - struct IDProperty *prop, *parent; + struct IDProperty *prop; /* must be second member */ + struct IDProperty *parent; PyObject *data_wrap; } BPy_IDProperty; typedef struct BPy_IDArray { PyObject_VAR_HEAD struct ID *id; - struct IDProperty *prop; + struct IDProperty *prop; /* must be second member */ } BPy_IDArray; typedef struct BPy_IDGroup_Iter { diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index ec774f44075..801e44bd008 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -38,6 +38,76 @@ #define PYC_INTERPRETER_ACTIVE (((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current)) != NULL) +/* array utility function */ +int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObject *type, const short is_double, const char *error_prefix) +{ + PyObject *value_fast; + int value_len; + int i; + + if(!(value_fast=PySequence_Fast(value, error_prefix))) { + return -1; + } + + value_len= PySequence_Fast_GET_SIZE(value_fast); + + if(value_len != length) { + Py_DECREF(value); + PyErr_Format(PyExc_TypeError, + "%.200s: invalid sequence length. expected %d, got %d", + error_prefix, length, value_len); + return -1; + } + + /* for each type */ + if(type == &PyFloat_Type) { + if(is_double) { + double *array_double= array; + for(i=0; itp_name); + return -1; + } + + Py_DECREF(value_fast); + + if(PyErr_Occurred()) { + PyErr_Format(PyExc_TypeError, + "%s: one or more items could not be used as a %s", + error_prefix, type->tp_name); + return -1; + } + + return 0; +} + + /* for debugging */ void PyC_ObSpit(const char *name, PyObject *var) { fprintf(stderr, "<%s> : ", name); diff --git a/source/blender/python/generic/py_capi_utils.h b/source/blender/python/generic/py_capi_utils.h index 1730ad71721..bf2eb175882 100644 --- a/source/blender/python/generic/py_capi_utils.h +++ b/source/blender/python/generic/py_capi_utils.h @@ -35,7 +35,7 @@ void PyC_LineSpit(void); PyObject * PyC_ExceptionBuffer(void); PyObject * PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...); void PyC_FileAndNum(const char **filename, int *lineno); -int PyC_AsArray(void *array, PyObject *value, int length, PyTypeObject *type, const char *error_prefix); +int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObject *type, const short is_double, const char *error_prefix); /* follow http://www.python.org/dev/peps/pep-0383/ */ PyObject * PyC_UnicodeFromByte(const char *str); diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c index 8ed4e41de3e..0ba80bf0850 100644 --- a/source/blender/python/intern/bpy_props.c +++ b/source/blender/python/intern/bpy_props.c @@ -459,7 +459,7 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyBool_Type, "BoolVectorProperty(default=sequence)") < 0) + if(pydef && PyC_AsArray(def, pydef, size, &PyBool_Type, FALSE, "BoolVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -603,7 +603,7 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyLong_Type, "IntVectorProperty(default=sequence)") < 0) + if(pydef && PyC_AsArray(def, pydef, size, &PyLong_Type, FALSE, "IntVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -759,7 +759,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyFloat_Type, "FloatVectorProperty(default=sequence)") < 0) + if(pydef && PyC_AsArray(def, pydef, size, &PyFloat_Type, FALSE, "FloatVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index 6e321015bc6..1450621d59e 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -122,63 +122,3 @@ short BPy_errors_to_report(ReportList *reports) Py_DECREF(pystring_format); // workaround return 1; } - -/* array utility function */ -int PyC_AsArray(void *array, PyObject *value, int length, PyTypeObject *type, const char *error_prefix) -{ - PyObject *value_fast; - int value_len; - int i; - - if(!(value_fast=PySequence_Fast(value, error_prefix))) { - return -1; - } - - value_len= PySequence_Fast_GET_SIZE(value_fast); - - if(value_len != length) { - Py_DECREF(value); - PyErr_Format(PyExc_TypeError, - "%.200s: invalid sequence length. expected %d, got %d", - error_prefix, length, value_len); - return -1; - } - - /* for each type */ - if(type == &PyFloat_Type) { - float *array_float= array; - for(i=0; itp_name); - return -1; - } - - Py_DECREF(value_fast); - - if(PyErr_Occurred()) { - PyErr_Format(PyExc_TypeError, - "%s: one or more items could not be used as a %s", - error_prefix, type->tp_name); - return -1; - } - - return 0; -} -- cgit v1.2.3 From 775ea4de9297135805d053753c937b9c25d3d9bc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 05:56:17 +0000 Subject: fix for memory leak converting an idproperty group into a dict --- source/blender/python/generic/IDProp.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/python/generic/IDProp.c b/source/blender/python/generic/IDProp.c index f6eb46796c9..2543d34f58c 100644 --- a/source/blender/python/generic/IDProp.c +++ b/source/blender/python/generic/IDProp.c @@ -575,6 +575,7 @@ static PyObject *BPy_IDGroup_MapDataToPy(IDProperty *prop) return NULL; PyDict_SetItemString(dict, loop->name, wrap); + Py_DECREF(wrap); } return dict; } -- cgit v1.2.3 From 28f347dc42ee24fe840f4927ec76824dc0fe0c27 Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Fri, 17 Jun 2011 07:15:36 +0000 Subject: Adding .aif to known audio extensions so it doesn't get hiden by default --- source/blender/imbuf/intern/util.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index 6e5e87d7e5c..ab4744a67c3 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -142,6 +142,7 @@ const char *imb_ext_audio[] = { ".flac", ".wma", ".eac3", + ".aif", NULL}; static int IMB_ispic_name(const char *name) -- cgit v1.2.3 From 1563ae8098d56fcd0590652b8d8e2cd0048bdc7b Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Fri, 17 Jun 2011 07:18:51 +0000 Subject: aiff too --- source/blender/imbuf/intern/util.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index ab4744a67c3..8223b8045b4 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -143,6 +143,7 @@ const char *imb_ext_audio[] = { ".wma", ".eac3", ".aif", + ".aiff", NULL}; static int IMB_ispic_name(const char *name) -- cgit v1.2.3 From 46ef1bb17093391418b38c470d77c1182193fe1f Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Fri, 17 Jun 2011 08:50:47 +0000 Subject: adding .m4a video extension --- source/blender/imbuf/intern/util.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index 8223b8045b4..fe85f63e109 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -142,8 +142,9 @@ const char *imb_ext_audio[] = { ".flac", ".wma", ".eac3", - ".aif", - ".aiff", + ".aif", + ".aiff", + ".m4a", NULL}; static int IMB_ispic_name(const char *name) -- cgit v1.2.3 From 68a12c74b6ebd64f85b22b13902a467bc5d6b496 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 12:48:33 +0000 Subject: fix [#26621] Memory leaks when creating popup window. also fixes memory leak when cancelling a popup dialog (new image for example). --- source/blender/editors/include/UI_interface.h | 4 +- .../blender/editors/interface/interface_regions.c | 20 ++++++ source/blender/windowmanager/intern/wm_operators.c | 74 +++++++++++++++------- 3 files changed, 74 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 1a26079800c..61e19655f8d 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -298,10 +298,12 @@ void uiPupMenuInvoke(struct bContext *C, const char *idname); /* popup registere * but allow using all button types and creating an own layout. */ typedef uiBlock* (*uiBlockCreateFunc)(struct bContext *C, struct ARegion *ar, void *arg1); +typedef void (*uiBlockCancelFunc)(void *arg1); void uiPupBlock(struct bContext *C, uiBlockCreateFunc func, void *arg); void uiPupBlockO(struct bContext *C, uiBlockCreateFunc func, void *arg, const char *opname, int opcontext); -void uiPupBlockOperator(struct bContext *C, uiBlockCreateFunc func, struct wmOperator *op, int opcontext); +void uiPupBlockEx(struct bContext *C, uiBlockCreateFunc func, uiBlockCancelFunc cancel_func, void *arg); +/* void uiPupBlockOperator(struct bContext *C, uiBlockCreateFunc func, struct wmOperator *op, int opcontext); */ /* UNUSED */ void uiPupBlockClose(struct bContext *C, uiBlock *block); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 623651083d2..62043f240e4 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -2582,6 +2582,25 @@ void uiPupBlock(bContext *C, uiBlockCreateFunc func, void *arg) uiPupBlockO(C, func, arg, NULL, 0); } +void uiPupBlockEx(bContext *C, uiBlockCreateFunc func, uiBlockCancelFunc cancel_func, void *arg) +{ + wmWindow *window= CTX_wm_window(C); + uiPopupBlockHandle *handle; + + handle= ui_popup_block_create(C, NULL, NULL, func, NULL, arg); + handle->popup= 1; + handle->retvalue= 1; + + handle->popup_arg= arg; + // handle->popup_func= operator_cb; + handle->cancel_func= cancel_func; + // handle->opcontext= opcontext; + + UI_add_popup_handlers(C, &window->modalhandlers, handle); + WM_event_add_mousemove(C); +} + +#if 0 /* UNUSED */ void uiPupBlockOperator(bContext *C, uiBlockCreateFunc func, wmOperator *op, int opcontext) { wmWindow *window= CTX_wm_window(C); @@ -2599,6 +2618,7 @@ void uiPupBlockOperator(bContext *C, uiBlockCreateFunc func, wmOperator *op, int UI_add_popup_handlers(C, &window->modalhandlers, handle); WM_event_add_mousemove(C); } +#endif void uiPupBlockClose(bContext *C, uiBlock *block) { diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 06d049d2cb5..e840aca4a6a 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -938,13 +938,28 @@ static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op) return block; } -/* Only invoked by OK button in popups created with wm_block_create_dialog() */ +typedef struct wmOpPopUp +{ + wmOperator *op; + int width; + int height; + int free_op; +} wmOpPopUp; + +/* Only invoked by OK button in popups created with wm_block_dialog_create() */ static void dialog_exec_cb(bContext *C, void *arg1, void *arg2) { - wmOperator *op= arg1; + wmOpPopUp *data= arg1; uiBlock *block= arg2; - WM_operator_call(C, op); + WM_operator_call(C, data->op); + + /* let execute handle freeing it */ + //data->free_op= FALSE; + //data->op= NULL; + + /* in this case, wm_operator_ui_popup_cancel wont run */ + MEM_freeN(data); uiPupBlockClose(C, block); } @@ -960,9 +975,9 @@ static void dialog_check_cb(bContext *C, void *op_ptr, void *UNUSED(arg)) } /* Dialogs are popups that require user verification (click OK) before exec */ -static uiBlock *wm_block_create_dialog(bContext *C, ARegion *ar, void *userData) +static uiBlock *wm_block_dialog_create(bContext *C, ARegion *ar, void *userData) { - struct { wmOperator *op; int width; int height; } * data = userData; + wmOpPopUp *data= userData; wmOperator *op= data->op; uiBlock *block; uiLayout *layout; @@ -991,7 +1006,7 @@ static uiBlock *wm_block_create_dialog(bContext *C, ARegion *ar, void *userData) col_block= uiLayoutGetBlock(col); /* Create OK button, the callback of which will execute op */ btn= uiDefBut(col_block, BUT, 0, "OK", 0, -30, 0, UI_UNIT_Y, NULL, 0, 0, 0, 0, ""); - uiButSetFunc(btn, dialog_exec_cb, op, col_block); + uiButSetFunc(btn, dialog_exec_cb, data, col_block); } /* center around the mouse */ @@ -1001,9 +1016,9 @@ static uiBlock *wm_block_create_dialog(bContext *C, ARegion *ar, void *userData) return block; } -static uiBlock *wm_operator_create_ui(bContext *C, ARegion *ar, void *userData) +static uiBlock *wm_operator_ui_create(bContext *C, ARegion *ar, void *userData) { - struct { wmOperator *op; int width; int height; } * data = userData; + wmOpPopUp *data= userData; wmOperator *op= data->op; uiBlock *block; uiLayout *layout; @@ -1024,6 +1039,28 @@ static uiBlock *wm_operator_create_ui(bContext *C, ARegion *ar, void *userData) return block; } +static void wm_operator_ui_popup_cancel(void *userData) +{ + wmOpPopUp *data= userData; + if(data->free_op && data->op) { + wmOperator *op= data->op; + WM_operator_free(op); + } + + MEM_freeN(data); +} + +int WM_operator_ui_popup(bContext *C, wmOperator *op, int width, int height) +{ + wmOpPopUp *data= MEM_callocN(sizeof(wmOpPopUp), "WM_operator_ui_popup"); + data->op= op; + data->width= width; + data->height= height; + data->free_op= TRUE; /* if this runs and gets registered we may want not to free it */ + uiPupBlockEx(C, wm_operator_ui_create, wm_operator_ui_popup_cancel, data); + return OPERATOR_RUNNING_MODAL; +} + /* operator menu needs undo, for redo callback */ int WM_operator_props_popup(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { @@ -1043,28 +1080,19 @@ int WM_operator_props_popup(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) int WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width, int height) { - struct { wmOperator *op; int width; int height; } data; + wmOpPopUp *data= MEM_callocN(sizeof(wmOpPopUp), "WM_operator_props_dialog_popup"); - data.op= op; - data.width= width; - data.height= height; + data->op= op; + data->width= width; + data->height= height; + data->free_op= TRUE; /* if this runs and gets registered we may want not to free it */ /* op is not executed until popup OK but is clicked */ - uiPupBlock(C, wm_block_create_dialog, &data); + uiPupBlockEx(C, wm_block_dialog_create, wm_operator_ui_popup_cancel, data); return OPERATOR_RUNNING_MODAL; } -int WM_operator_ui_popup(bContext *C, wmOperator *op, int width, int height) -{ - struct { wmOperator *op; int width; int height; } data; - data.op = op; - data.width = width; - data.height = height; - uiPupBlock(C, wm_operator_create_ui, &data); - return OPERATOR_RUNNING_MODAL; -} - int WM_operator_redo_popup(bContext *C, wmOperator *op) { /* CTX_wm_reports(C) because operator is on stack, not active in event system */ -- cgit v1.2.3 From b306566a44be30fb33d6079c0b2a02b1161ff88c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 13:02:23 +0000 Subject: fix [#25598] projection surface snap issue Excuse the thrashing, this is from r35438, reverted r35444 under the _wrong_ impression Martin considered unacceptable. --- source/blender/editors/transform/transform.h | 3 ++- source/blender/editors/transform/transform_snap.c | 8 +++++++- source/blender/makesdna/DNA_scene_types.h | 1 + source/blender/makesrna/intern/rna_scene.c | 6 ++++++ 4 files changed, 16 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 0e0d452a9e6..d8e750acb88 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -95,7 +95,8 @@ typedef struct TransSnap { short modePoint; short modeSelect; short align; - short project; + char project; + char project_self; short peel; short status; float snapPoint[3]; /* snapping from this point */ diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index e3e5e012920..c4d6eb02028 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -392,7 +392,7 @@ static void initSnappingMode(TransInfo *t) } else { - t->tsnap.modeSelect = SNAP_ALL; + t->tsnap.modeSelect = t->tsnap.project_self ? SNAP_ALL : SNAP_NOT_OBEDIT; } } /* Particles edit mode*/ @@ -457,6 +457,11 @@ void initSnapping(TransInfo *t, wmOperator *op) { t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project"); } + + if (RNA_struct_find_property(op->ptr, "use_snap_project_self")) + { + t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project_self"); + } } } /* use scene defaults only when transform is modal */ @@ -468,6 +473,7 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + t->tsnap.project_self = !((t->settings->snap_flag & SCE_SNAP_PROJECT_NO_SELF) == SCE_SNAP_PROJECT_NO_SELF); t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index c6fa07482c5..100a66d209f 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1071,6 +1071,7 @@ typedef struct Scene { #define SCE_SNAP_ROTATE 2 #define SCE_SNAP_PEEL_OBJECT 4 #define SCE_SNAP_PROJECT 8 +#define SCE_SNAP_PROJECT_NO_SELF 16 /* toolsettings->snap_target */ #define SCE_SNAP_TARGET_CLOSEST 0 #define SCE_SNAP_TARGET_CENTER 1 diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 145a58ecf0f..f24c83efe05 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1173,6 +1173,12 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Project Individual Elements", "Project individual elements on the surface of other objects"); RNA_def_property_ui_icon(prop, ICON_RETOPO, 0); RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ + + prop= RNA_def_property(srna, "use_snap_project_self", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT_NO_SELF); + RNA_def_property_ui_text(prop, "Project to Self", "Project into its self (editmode)"); + RNA_def_property_ui_icon(prop, ICON_ORTHO, 0); + RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ /* Grease Pencil */ prop = RNA_def_property(srna, "use_grease_pencil_sessions", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From f69d80533833910baef04f97d60eeaab34e452eb Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 17 Jun 2011 13:57:41 +0000 Subject: Bugfix, irc report: Adding new material in active node didn't update the material properties buttons. --- source/blender/editors/space_node/node_edit.c | 9 +-------- source/blender/editors/space_node/space_node.c | 3 +++ 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 46c66c55d51..71dd7b02e1c 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -504,14 +504,7 @@ void node_set_active(SpaceNode *snode, bNode *node) ED_node_changed_update(snode->id, node); } - // XXX -#if 0 - if(node->id) - ; // XXX BIF_preview_changed(-1); /* temp hack to force texture preview to update */ - - // allqueue(REDRAWBUTSSHADING, 1); - // allqueue(REDRAWIPO, 0); -#endif + WM_main_add_notifier(NC_MATERIAL|ND_NODES, node->id); } else if(snode->treetype==NTREE_COMPOSIT) { Scene *scene= (Scene*)snode->id; diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 29316c5645a..029c55d0851 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -200,6 +200,9 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_refresh(sa); else if(wmn->data==ND_SHADING_DRAW) ED_area_tag_refresh(sa); + else if(wmn->action==NA_ADDED && snode->edittree) + nodeSetActiveID(snode->edittree, ID_MA, wmn->reference); + } break; case NC_TEXTURE: -- cgit v1.2.3 From c9b0ce8693ace816e49e157587ebe295dfd9b379 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 17 Jun 2011 18:41:43 +0000 Subject: creating armatures for bones which are not skinned( in progress ) --- source/blender/collada/ArmatureImporter.cpp | 94 ++++++++++++++++++++++++++++- source/blender/collada/ArmatureImporter.h | 4 ++ source/blender/collada/SkinInfo.cpp | 4 ++ 3 files changed, 100 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 8987e4ffaf7..e64afa1f7b6 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -78,6 +78,67 @@ JointData *ArmatureImporter::get_joint_data(COLLADAFW::Node *node); return &joint_index_to_joint_info_map[joint_index]; } #endif +void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *parent, int totchild, + float parent_mat[][4], bArmature *arm) +{ + float mat[4][4]; + float obmat[4][4]; + + // object-space + get_node_mat(obmat, node, NULL, NULL); + + // get world-space + if (parent) + mul_m4_m4m4(mat, obmat, parent_mat); + else + copy_m4_m4(mat, obmat); + + EditBone *bone = ED_armature_edit_bone_add(arm, (char*)bc_get_joint_name(node)); + totbone++; + + if (parent) bone->parent = parent; + + // set head + copy_v3_v3(bone->head, mat[3]); + + // set tail, don't set it to head because 0-length bones are not allowed + float vec[3] = {0.0f, 0.5f, 0.0f}; + add_v3_v3v3(bone->tail, bone->head, vec); + + // set parent tail + if (parent && totchild == 1) { + copy_v3_v3(parent->tail, bone->head); + + // not setting BONE_CONNECTED because this would lock child bone location with respect to parent + // bone->flag |= BONE_CONNECTED; + + // XXX increase this to prevent "very" small bones? + const float epsilon = 0.000001f; + + // derive leaf bone length + float length = len_v3v3(parent->head, parent->tail); + if ((length < leaf_bone_length || totbone == 0) && length > epsilon) { + leaf_bone_length = length; + } + + // treat zero-sized bone like a leaf bone + if (length <= epsilon) { + add_leaf_bone(parent_mat, parent); + } + + } + + COLLADAFW::NodePointerArray& children = node->getChildNodes(); + for (unsigned int i = 0; i < children.getCount(); i++) { + create_unskinned_bone( children[i], bone, children.getCount(), mat, arm); + } + + // in second case it's not a leaf bone, but we handle it the same way + if (!children.getCount() || children.getCount() > 1) { + add_leaf_bone(mat, bone); + } + +} void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[][4], bArmature *arm) @@ -300,6 +361,30 @@ ArmatureJoints& ArmatureImporter::get_armature_joints(Object *ob_arm) return armature_joints.back(); } #endif +void ArmatureImporter::create_armature_bones( ) +{ + std::vector::iterator ri; + //if there is an armature created for root_joint next root_joint + for (ri = root_joints.begin(); ri != root_joints.end(); ri++) { + if ( get_armature_for_joint(*ri) != NULL ) continue; + + //add armature object for current joint + Object *ob_arm = add_object(scene, OB_ARMATURE); + + ED_armature_to_edit(ob_arm); + + // min_angle = 360.0f; // minimum angle between bone head-tail and a row of bone matrix + + // create unskinned bones + /* + TODO: + check if bones have already been created for a given joint + */ + + create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, (bArmature*)ob_arm->data); + + } +} void ArmatureImporter::create_armature_bones(SkinInfo& skin) { @@ -373,7 +458,7 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) if (shared) ob_arm = skin.set_armature(shared); else - ob_arm = skin.create_armature(scene); + ob_arm = skin.create_armature(scene); //once for every armature // enter armature edit mode ED_armature_to_edit(ob_arm); @@ -413,7 +498,7 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) DAG_id_tag_update(&ob_arm->id, OB_RECALC_OB|OB_RECALC_DATA); // set_leaf_bone_shapes(ob_arm); - // set_euler_rotmode(); + // set_euler_rotmode(); } @@ -472,6 +557,11 @@ void ArmatureImporter::make_armatures(bContext *C) // free memory stolen from SkinControllerData skin.free(); } + + //if skin_by_data_uid is empty + if( skin_by_data_uid.empty() ) + create_armature_bones(); + } #if 0 diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index d36bccf7e57..90cb0271e60 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -105,6 +105,9 @@ private: void create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[][4], bArmature *arm); + void create_unskinned_bone(COLLADAFW::Node *node, EditBone *parent, int totchild, + float parent_mat[][4], bArmature *arm); + void add_leaf_bone(float mat[][4], EditBone *bone); void fix_leaf_bones(); @@ -123,6 +126,7 @@ private: #endif void create_armature_bones(SkinInfo& skin); + void create_armature_bones( ); public: diff --git a/source/blender/collada/SkinInfo.cpp b/source/blender/collada/SkinInfo.cpp index 10780de2e70..6be97693cd2 100644 --- a/source/blender/collada/SkinInfo.cpp +++ b/source/blender/collada/SkinInfo.cpp @@ -308,11 +308,15 @@ void SkinInfo::find_root_joints(const std::vector &root_joints std::vector& result) { std::vector::const_iterator it; + // for each root_joint for (it = root_joints.begin(); it != root_joints.end(); it++) { COLLADAFW::Node *root = *it; std::vector::iterator ji; + //for each joint_data in this skin for (ji = joint_data.begin(); ji != joint_data.end(); ji++) { + //get joint node from joint map COLLADAFW::Node *joint = joint_by_uid[(*ji).joint_uid]; + //find if joint node is in the tree belonging to the root_joint if (find_node_in_tree(joint, root)) { if (std::find(result.begin(), result.end(), root) == result.end()) result.push_back(root); -- cgit v1.2.3 From 3f0e480ba9ebf3f3455ffae30b9d82d1dca8c1bc Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 17 Jun 2011 20:01:24 +0000 Subject: unskinned armature import improved but unfinished. --- source/blender/collada/ArmatureImporter.cpp | 24 +++++++++++++++++++++--- source/blender/collada/ArmatureImporter.h | 1 + 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index e64afa1f7b6..6eb03a21d6e 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -383,7 +383,22 @@ void ArmatureImporter::create_armature_bones( ) create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, (bArmature*)ob_arm->data); + fix_leaf_bones(); + + // exit armature edit mode + + + if (joint_parent_map.find((*ri)->getUniqueId()) != joint_parent_map.end() && ob_arm->parent!=NULL) + ob_arm->parent = joint_parent_map[(*ri)->getUniqueId()]; + + unskinned_armature_map[(*ri)->getUniqueId()] = ob_arm; + + ED_armature_from_edit(ob_arm); + ED_armature_edit_free(ob_arm); + DAG_id_tag_update(&ob_arm->id, OB_RECALC_OB|OB_RECALC_DATA); } + + } void ArmatureImporter::create_armature_bones(SkinInfo& skin) @@ -558,9 +573,7 @@ void ArmatureImporter::make_armatures(bContext *C) skin.free(); } - //if skin_by_data_uid is empty - if( skin_by_data_uid.empty() ) - create_armature_bones(); + create_armature_bones(); } @@ -657,6 +670,11 @@ Object *ArmatureImporter::get_armature_for_joint(COLLADAFW::Node *node) return skin.get_armature(); } + std::map::iterator arm; + for (arm = unskinned_armature_map.begin(); arm != unskinned_armature_map.end(); arm++) { + if(arm->first == node->getUniqueId() ) + return arm->second; + } return NULL; } diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index 90cb0271e60..f83a492afb6 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -89,6 +89,7 @@ private: std::map joint_by_uid; // contains all joints std::vector root_joints; std::map joint_parent_map; + std::map unskinned_armature_map; MeshImporterBase *mesh_importer; AnimationImporterBase *anim_importer; -- cgit v1.2.3 From 64d02584e1b56a3d11a1ade1754be644433f8eab Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Fri, 17 Jun 2011 21:24:05 +0000 Subject: fix fileselect for images from sequencer * recent code to provide directory only fileselect broke selection of images with 'A' (rev. rev. 37552.) --- source/blender/editors/space_sequencer/sequencer_add.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 6d50913dfd4..502e2add066 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -546,7 +546,7 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME|WM_FILESEL_RELPATH); sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES); } -- cgit v1.2.3 From f7e22c729e8fa20a0c9b6d9f1d2bba0505c09585 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 18 Jun 2011 03:14:24 +0000 Subject: throw an error if preprocessor definitions are used for DNA array lengths (previously would fail silently & not work right). --- source/blender/makesdna/intern/makesdna.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index 8b841b67e54..80299d44a78 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -670,6 +670,8 @@ int arraysize(char *astr, int len) } else if( str[a]==']' && cp) { str[a]= 0; + /* if 'cp' is a preprocessor definition, it will evaluate to 0, + * the caller needs to check for this case and throw an error */ mul*= atoi(cp); } } @@ -713,7 +715,12 @@ static int calculate_structlens(int firststruct) /* has the name an extra length? (array) */ mul= 1; if( cp[namelen-1]==']') mul= arraysize(cp, namelen); - + + if (mul == 0) { + printf("Zero array size found or could not parse %s: '%.*s'\n", types[structtype], namelen + 1, cp); + dna_error = 1; + } + /* 4-8 aligned/ */ if(sizeof(void *) == 4) { if (len % 4) { @@ -743,7 +750,12 @@ static int calculate_structlens(int firststruct) /* has the name an extra length? (array) */ mul= 1; if( cp[namelen-1]==']') mul= arraysize(cp, namelen); - + + if (mul == 0) { + printf("Zero array size found or could not parse %s: '%.*s'\n", types[structtype], namelen + 1, cp); + dna_error = 1; + } + /* struct alignment */ if(type >= firststruct) { if(sizeof(void *)==8 && (len % 8) ) { -- cgit v1.2.3 From 82216030e97561ddd5d5184be8077423d6cc6c2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 18 Jun 2011 08:45:45 +0000 Subject: py-api: store frequently used strings as unicode PyObject's to avoid creating/distroying every time. also fix for cmake warning --- source/blender/python/intern/CMakeLists.txt | 2 + source/blender/python/intern/bpy_interface.c | 9 +++- source/blender/python/intern/bpy_intern_string.c | 57 ++++++++++++++++++++++++ source/blender/python/intern/bpy_intern_string.h | 37 +++++++++++++++ source/blender/python/intern/bpy_rna.c | 25 ++++++----- 5 files changed, 116 insertions(+), 14 deletions(-) create mode 100644 source/blender/python/intern/bpy_intern_string.c create mode 100644 source/blender/python/intern/bpy_intern_string.h (limited to 'source/blender') diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 454a706a16b..03df9f9cb6c 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -45,6 +45,7 @@ set(SRC bpy_app.c bpy_driver.c bpy_interface.c + bpy_intern_string.c bpy_library.c bpy_operator.c bpy_operator_wrap.c @@ -60,6 +61,7 @@ set(SRC bpy.h bpy_app.h bpy_driver.h + bpy_intern_string.h bpy_operator.h bpy_operator_wrap.h bpy_props.h diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index e6f4c5713a1..8017720671e 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -43,6 +43,7 @@ #include "bpy_rna.h" #include "bpy_util.h" #include "bpy_traceback.h" +#include "bpy_intern_string.h" #include "DNA_space_types.h" #include "DNA_text_types.h" @@ -205,7 +206,9 @@ void BPY_python_start(int argc, const char **argv) Py_NoSiteFlag= 1; Py_Initialize(); - + + bpy_intern_string_init(); + // PySys_SetArgv(argc, argv); // broken in py3, not a huge deal /* sigh, why do python guys not have a char** version anymore? :( */ { @@ -251,7 +254,9 @@ void BPY_python_end(void) pyrna_free_types(); /* clear all python data from structs */ - + + bpy_intern_string_exit(); + Py_Finalize(); #ifdef TIME_PY_RUN diff --git a/source/blender/python/intern/bpy_intern_string.c b/source/blender/python/intern/bpy_intern_string.c new file mode 100644 index 00000000000..c9d6025ddff --- /dev/null +++ b/source/blender/python/intern/bpy_intern_string.c @@ -0,0 +1,57 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/intern/bpy_intern_string.c + * \ingroup pythonintern + */ + +#include + +PyObject *bpy_intern_str_register; +PyObject *bpy_intern_str_unregister; +PyObject *bpy_intern_str_bl_rna; +PyObject *bpy_intern_str_order; +PyObject *bpy_intern_str_attr; +PyObject *bpy_intern_str___slots__; +PyObject *bpy_intern_str___bases__; + +void bpy_intern_string_init(void) +{ + bpy_intern_str_register= PyUnicode_FromString("register"); + bpy_intern_str_unregister= PyUnicode_FromString("unregister");; + bpy_intern_str_bl_rna= PyUnicode_FromString("bl_rna"); + bpy_intern_str_order= PyUnicode_FromString("order"); + bpy_intern_str_attr= PyUnicode_FromString("attr"); + bpy_intern_str___slots__= PyUnicode_FromString("__slots__"); +} + +void bpy_intern_string_exit(void) +{ + Py_DECREF(bpy_intern_str_register); + Py_DECREF(bpy_intern_str_unregister); + Py_DECREF(bpy_intern_str_bl_rna); + Py_DECREF(bpy_intern_str_order); + Py_DECREF(bpy_intern_str_attr); + Py_DECREF(bpy_intern_str___slots__); +} diff --git a/source/blender/python/intern/bpy_intern_string.h b/source/blender/python/intern/bpy_intern_string.h new file mode 100644 index 00000000000..a974ccfb898 --- /dev/null +++ b/source/blender/python/intern/bpy_intern_string.h @@ -0,0 +1,37 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/intern/bpy_intern_string.h + * \ingroup pythonintern + */ + +void bpy_intern_string_init(void); +void bpy_intern_string_exit(void); + +extern PyObject *bpy_intern_str_register; +extern PyObject *bpy_intern_str_unregister; +extern PyObject *bpy_intern_str_bl_rna; +extern PyObject *bpy_intern_str_order; +extern PyObject *bpy_intern_str_attr; +extern PyObject *bpy_intern_str___slots__; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 00325446e61..16f4de700f6 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -39,6 +39,7 @@ #include "bpy_props.h" #include "bpy_util.h" #include "bpy_rna_callback.h" +#include "bpy_intern_string.h" #ifdef USE_PYRNA_INVALIDATE_WEAKREF #include "MEM_guardedalloc.h" @@ -5217,7 +5218,7 @@ static void pyrna_subtype_set_rna(PyObject *newclass, StructRNA *srna) item= pyrna_struct_CreatePyObject(&ptr); /* note, must set the class not the __dict__ else the internal slots are not updated correctly */ - PyObject_SetAttrString(newclass, "bl_rna", item); + PyObject_SetAttr(newclass, bpy_intern_str_bl_rna, item); Py_DECREF(item); /* done with rna instance */ @@ -5279,7 +5280,7 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) //PyObject *slots= PyObject_GetAttrString(newclass, "__slots__"); // cant do this because it gets superclasses values! //PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); // can do this but faster not to. PyObject *bases= ((PyTypeObject *)newclass)->tp_bases; - PyObject *slots= PyDict_GetItemString(((PyTypeObject *)newclass)->tp_dict, "__slots__"); + PyObject *slots= PyDict_GetItem(((PyTypeObject *)newclass)->tp_dict, bpy_intern_str___slots__); if(slots==NULL) { fprintf(stderr, "pyrna_srna_ExternalType: expected class '%s' to have __slots__ defined\n\nSee bpy_types.py\n", idname); @@ -5649,7 +5650,7 @@ StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_pr /* ack, PyObject_GetAttrString wont look up this types tp_dict first :/ */ if(PyType_Check(self)) { - py_srna= (BPy_StructRNA *)PyDict_GetItemString(((PyTypeObject *)self)->tp_dict, "bl_rna"); + py_srna= (BPy_StructRNA *)PyDict_GetItem(((PyTypeObject *)self)->tp_dict, bpy_intern_str_bl_rna); Py_XINCREF(py_srna); } @@ -5657,7 +5658,7 @@ StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_pr /* be very careful with this since it will return a parent classes srna. * modifying this will do confusing stuff! */ if(py_srna==NULL) - py_srna= (BPy_StructRNA*)PyObject_GetAttrString(self, "bl_rna"); + py_srna= (BPy_StructRNA*)PyObject_GetAttr(self, bpy_intern_str_bl_rna); } if(py_srna==NULL) { @@ -5747,7 +5748,7 @@ static int deferred_register_prop(StructRNA *srna, PyObject *key, PyObject *item py_srna_cobject= PyCapsule_New(srna, NULL, NULL); /* not 100% nice :/, modifies the dict passed, should be ok */ - PyDict_SetItemString(py_kw, "attr", key); + PyDict_SetItem(py_kw, bpy_intern_str_attr, key); args_fake= PyTuple_New(1); PyTuple_SET_ITEM(args_fake, 0, py_srna_cobject); @@ -5794,7 +5795,7 @@ static int pyrna_deferred_register_props(StructRNA *srna, PyObject *class_dict) /* in both cases PyDict_CheckExact(class_dict) will be true even * though Operators have a metaclass dict namespace */ - if((order= PyDict_GetItemString(class_dict, "order")) && PyList_CheckExact(order)) { + if((order= PyDict_GetItem(class_dict, bpy_intern_str_order)) && PyList_CheckExact(order)) { for(pos= 0; postp_dict); // // remove the rna attribute instead. - PyDict_DelItemString(((PyTypeObject *)self)->tp_dict, "bl_rna"); + PyDict_DelItem(((PyTypeObject *)self)->tp_dict, bpy_intern_str_bl_rna); if(PyErr_Occurred()) PyErr_Clear(); @@ -6405,7 +6406,7 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class const char *identifier; PyObject *py_cls_meth; - if(PyDict_GetItemString(((PyTypeObject*)py_class)->tp_dict, "bl_rna")) { + if(PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)) { PyErr_SetString(PyExc_AttributeError, "register_class(...): already registered as a subclass"); return NULL; } @@ -6470,7 +6471,7 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class return NULL; /* call classed register method () */ - py_cls_meth= PyObject_GetAttrString(py_class, "register"); + py_cls_meth= PyObject_GetAttr(py_class, bpy_intern_str_register); if(py_cls_meth == NULL) { PyErr_Clear(); } @@ -6528,7 +6529,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla StructRNA *srna; PyObject *py_cls_meth; - /*if(PyDict_GetItemString(((PyTypeObject*)py_class)->tp_dict, "bl_rna")==NULL) { + /*if(PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)==NULL) { PWM_cursor_wait(0); PyErr_SetString(PyExc_ValueError, "unregister_class(): not a registered as a subclass"); return NULL; @@ -6547,7 +6548,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla } /* call classed unregister method */ - py_cls_meth= PyObject_GetAttrString(py_class, "unregister"); + py_cls_meth= PyObject_GetAttr(py_class, bpy_intern_str_unregister); if(py_cls_meth == NULL) { PyErr_Clear(); } @@ -6597,7 +6598,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla /* call unregister */ unreg(CTX_data_main(C), srna); /* calls bpy_class_free, this decref's py_class */ - PyDict_DelItemString(((PyTypeObject *)py_class)->tp_dict, "bl_rna"); + PyDict_DelItem(((PyTypeObject *)py_class)->tp_dict, bpy_intern_str_bl_rna); if(PyErr_Occurred()) PyErr_Clear(); //return NULL; -- cgit v1.2.3 From 1283b07409ae6656d8a4064a6236efdcae59b7a0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 18 Jun 2011 09:01:26 +0000 Subject: use ascii drawing function where utf8 isnt needed. --- source/blender/editors/interface/view2d.c | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index eb522a1d2b8..43bf2f59e04 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -1542,7 +1542,7 @@ static void scroll_printstr(Scene *scene, float x, float y, float val, int power } /* draw it */ - BLF_draw_default(x, y, 0.0f, str, sizeof(str)-1); + BLF_draw_default_ascii(x, y, 0.0f, str, sizeof(str)-1); } /* Draw scrollbars in the given 2d-region */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index d316ef50679..0ed62f3953f 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -627,7 +627,7 @@ static void draw_view_axis(RegionView3D *rv3d) glEnd(); if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x", 1); + BLF_draw_default_ascii(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x", 1); } /* BLF_draw_default disables blending */ @@ -647,7 +647,7 @@ static void draw_view_axis(RegionView3D *rv3d) glEnd(); if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y", 1); + BLF_draw_default_ascii(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y", 1); } glEnable(GL_BLEND); @@ -666,7 +666,7 @@ static void draw_view_axis(RegionView3D *rv3d) glEnd(); if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z", 1); + BLF_draw_default_ascii(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z", 1); } /* restore line-width */ @@ -757,7 +757,7 @@ static void draw_viewport_name(ARegion *ar, View3D *v3d) if (name) { UI_ThemeColor(TH_TEXT_HI); - BLF_draw_default(22, ar->winy-17, 0.0f, name, sizeof(tmpstr)); + BLF_draw_default_ascii(22, ar->winy-17, 0.0f, name, sizeof(tmpstr)); } } @@ -2422,7 +2422,7 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar) BLI_snprintf(printable, sizeof(printable), "fps: %i", (int)(fps+0.5f)); } - BLF_draw_default(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1); + BLF_draw_default_ascii(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1); } /* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */ @@ -2644,7 +2644,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid); } - BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ + BLF_draw_default_ascii(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ } ob= OBACT; -- cgit v1.2.3 From 968b2a8afbef552988d10df38e358d97d273dc8c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 18 Jun 2011 14:12:54 +0000 Subject: rename cmake include/libraries to conform with suggested cmake names --- source/blender/blenkernel/CMakeLists.txt | 4 ++-- source/blender/blenlib/CMakeLists.txt | 2 +- source/blender/blenpluginapi/CMakeLists.txt | 2 +- source/blender/collada/CMakeLists.txt | 20 ++++++++++---------- source/blender/editors/render/CMakeLists.txt | 2 +- source/blender/imbuf/CMakeLists.txt | 4 ++-- source/blender/makesrna/intern/CMakeLists.txt | 2 +- source/blender/quicktime/CMakeLists.txt | 2 +- source/blender/render/CMakeLists.txt | 2 +- source/blender/windowmanager/CMakeLists.txt | 4 ++-- 10 files changed, 22 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 5078657588d..9c06e325ce2 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -273,12 +273,12 @@ endif() if(WITH_CODEC_QUICKTIME) list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INC}) + list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index 0c25da325ad..c6848346220 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -137,7 +137,7 @@ set(SRC ) if(WITH_BINRELOC) - list(APPEND INC_SYS "${BINRELOC_INC}") + list(APPEND INC_SYS "${BINRELOC_INCLUDE_DIRS}") add_definitions(-DWITH_BINRELOC) endif() diff --git a/source/blender/blenpluginapi/CMakeLists.txt b/source/blender/blenpluginapi/CMakeLists.txt index c3aad25ccbe..a5af15d7f55 100644 --- a/source/blender/blenpluginapi/CMakeLists.txt +++ b/source/blender/blenpluginapi/CMakeLists.txt @@ -50,7 +50,7 @@ set(SRC ) if(WITH_CODEC_QUICKTIME) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index a7e7c973f36..07da532146f 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -44,19 +44,19 @@ set(INC_SYS if(APPLE) list(APPEND INC_SYS - ${OPENCOLLADA_INC}/COLLADAStreamWriter - ${OPENCOLLADA_INC}/COLLADABaseUtils - ${OPENCOLLADA_INC}/COLLADAFramework - ${OPENCOLLADA_INC}/COLLADASaxFrameworkLoader - ${OPENCOLLADA_INC}/GeneratedSaxParser + ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter + ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils + ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework + ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader + ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser ) else() list(APPEND INC_SYS - ${OPENCOLLADA_INC}/COLLADAStreamWriter/include - ${OPENCOLLADA_INC}/COLLADABaseUtils/include - ${OPENCOLLADA_INC}/COLLADAFramework/include - ${OPENCOLLADA_INC}/COLLADASaxFrameworkLoader/include - ${OPENCOLLADA_INC}/GeneratedSaxParser/include + ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter/include + ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils/include + ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework/include + ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader/include + ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser/include ) endif() diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt index c3bb6f457a2..0d1de00806b 100644 --- a/source/blender/editors/render/CMakeLists.txt +++ b/source/blender/editors/render/CMakeLists.txt @@ -52,7 +52,7 @@ set(SRC if(WITH_CODEC_QUICKTIME) list(APPEND INC ../../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 16bc7854617..812d5c03fdb 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -130,12 +130,12 @@ endif() if(WITH_CODEC_QUICKTIME) list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INC}) + list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 4e4ff396e71..ed5a1566cdc 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -177,7 +177,7 @@ if(WITH_CODEC_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INC}) + list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt index 3b70cf19a7f..0ed773ddd93 100644 --- a/source/blender/quicktime/CMakeLists.txt +++ b/source/blender/quicktime/CMakeLists.txt @@ -43,7 +43,7 @@ set(INC ) set(INC_SYS - ${QUICKTIME_INC} + ${QUICKTIME_INCLUDE_DIRS} ) if(USE_QTKIT) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index aea377a35bb..7521d6b9ce5 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -124,7 +124,7 @@ endif() if(WITH_CODEC_QUICKTIME) list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index 0cf59a9b598..f9c1d800c02 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -90,12 +90,12 @@ endif() if(WITH_CODEC_QUICKTIME) list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INC}) + list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INC}) + list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() -- cgit v1.2.3 From e46e2d9d5400729da2980cc5b1f2e24df9207c5a Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 18 Jun 2011 20:30:09 +0000 Subject: resolved collision among WM event types, ndof no longer encroaches on keyboard turf --- source/blender/windowmanager/wm_event_types.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index ed500ccd5c5..210dd902b99 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -78,8 +78,13 @@ #define WHEELOUTMOUSE 13 #define INBETWEEN_MOUSEMOVE 17 -/* NDOF (from SpaceNavigator & friends) */ -#define NDOF_MOTION 0x12 // keep in sync with GHOST_NDOFManager.h + +/* NDOF (from SpaceNavigator & friends) + These should be kept in sync with GHOST_NDOFManager.h + Ordering matters, exact values do not. */ + +#define NDOF_MOTION 400 + enum { // used internally, never sent NDOF_BUTTON_NONE = NDOF_MOTION, -- cgit v1.2.3 From 31093223cde693eda9c499b9dc2fb0f182d91dc5 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sat, 18 Jun 2011 23:22:55 +0000 Subject: SVN maintenance. --- source/blender/python/intern/bpy_intern_string.c | 2 +- source/blender/python/intern/bpy_intern_string.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_intern_string.c b/source/blender/python/intern/bpy_intern_string.c index c9d6025ddff..c6629007532 100644 --- a/source/blender/python/intern/bpy_intern_string.c +++ b/source/blender/python/intern/bpy_intern_string.c @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/python/intern/bpy_intern_string.h b/source/blender/python/intern/bpy_intern_string.h index a974ccfb898..af6a9b7101a 100644 --- a/source/blender/python/intern/bpy_intern_string.h +++ b/source/blender/python/intern/bpy_intern_string.h @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From f31bae0aabe47b928a8c77020a798e815ed8b70f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Jun 2011 01:23:50 +0000 Subject: fixed possible use of uninitialized variable. --- source/blender/nodes/intern/SHD_nodes/SHD_material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c index f66df9bba90..4e1b53e2026 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_material.c @@ -86,7 +86,7 @@ static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in, ShaderCallData *shcd= data; float col[4]; bNodeSocket *sock; - char hasinput[NUM_MAT_IN]; + char hasinput[NUM_MAT_IN]= {'\0'}; int i; /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily -- cgit v1.2.3 From 28f0d96bea5fc0da635a3bd3396a07da610e9f8a Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 19 Jun 2011 04:20:43 +0000 Subject: --- source/blender/collada/AnimationImporter.cpp | 1 + source/blender/collada/ArmatureImporter.cpp | 22 ++++++++++++++-------- source/blender/collada/ArmatureImporter.h | 2 +- source/blender/collada/DocumentImporter.cpp | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 9588f985360..7d9e48668c9 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -681,6 +681,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; + const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; if ( ! is_object_animated(node) ) return ; diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 6eb03a21d6e..b4cfd1ba9cd 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -134,9 +134,9 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p } // in second case it's not a leaf bone, but we handle it the same way - if (!children.getCount() || children.getCount() > 1) { - add_leaf_bone(mat, bone); - } + /*if (!children.getCount() || children.getCount() > 1) { + add_leaf_bone(mat, bone);*/ + //} } @@ -369,8 +369,10 @@ void ArmatureImporter::create_armature_bones( ) if ( get_armature_for_joint(*ri) != NULL ) continue; //add armature object for current joint - Object *ob_arm = add_object(scene, OB_ARMATURE); + //Object *ob_arm = add_object(scene, OB_ARMATURE); + Object *ob_arm = joint_parent_map[(*ri)->getUniqueId()]; + //ob_arm->type = OB_ARMATURE; ED_armature_to_edit(ob_arm); // min_angle = 360.0f; // minimum angle between bone head-tail and a row of bone matrix @@ -388,8 +390,8 @@ void ArmatureImporter::create_armature_bones( ) // exit armature edit mode - if (joint_parent_map.find((*ri)->getUniqueId()) != joint_parent_map.end() && ob_arm->parent!=NULL) - ob_arm->parent = joint_parent_map[(*ri)->getUniqueId()]; + //if (joint_parent_map.find((*ri)->getUniqueId()) != joint_parent_map.end() && ob_arm->parent!=NULL) + // ob_arm->parent = joint_parent_map[(*ri)->getUniqueId()]; unskinned_armature_map[(*ri)->getUniqueId()] = ob_arm; @@ -520,14 +522,18 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) // root - if this joint is the top joint in hierarchy, if a joint // is a child of a node (not joint), root should be true since // this is where we build armature bones from -void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *parent) +void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *parent, Scene *sce) { joint_by_uid[node->getUniqueId()] = node; if (root) { root_joints.push_back(node); - if (parent) + if (parent) { + Object * par = parent->parent; + parent = add_object(sce, OB_ARMATURE ); + parent->parent = par; joint_parent_map[node->getUniqueId()] = parent; + } } } diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index f83a492afb6..f9cb09dca19 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -137,7 +137,7 @@ public: // root - if this joint is the top joint in hierarchy, if a joint // is a child of a node (not joint), root should be true since // this is where we build armature bones from - void add_joint(COLLADAFW::Node *node, bool root, Object *parent); + void add_joint(COLLADAFW::Node *node, bool root, Object *parent, Scene *sce); #if 0 void add_root_joint(COLLADAFW::Node *node); diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index cb1d984888c..7d1de7d5a6d 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -378,7 +378,7 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren bool is_joint = node->getType() == COLLADAFW::Node::JOINT; if (is_joint) { - armature_importer.add_joint(node, parent_node == NULL || parent_node->getType() != COLLADAFW::Node::JOINT, par); + armature_importer.add_joint(node, parent_node == NULL || parent_node->getType() != COLLADAFW::Node::JOINT, par, sce); } else { COLLADAFW::InstanceGeometryPointerArray &geom = node->getInstanceGeometries(); -- cgit v1.2.3 From 145944d66f8364c82bdc83dcd57774284b775add Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Jun 2011 06:57:56 +0000 Subject: cmake: new macro file_list_suffix() for adding a suffix to every file in a path before the file extension. useful to create names for debug libs on windows. --- source/blender/modifiers/intern/MOD_explode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index 10bcbee6661..5da2464ef89 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -776,7 +776,7 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd, { DerivedMesh *explode, *dm=to_explode; MFace *mf= NULL, *mface; - ParticleSettings *part=psmd->psys->part; + /* ParticleSettings *part=psmd->psys->part; */ /* UNUSED */ ParticleSimulationData sim= {NULL}; ParticleData *pa=NULL, *pars=psmd->psys->particles; ParticleKey state, birth; -- cgit v1.2.3 From adb81a0351c0854ee8529ae7a66ef9c907790ee5 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 19 Jun 2011 07:43:43 +0000 Subject: Fixed Armature Import Without Skin controllers. Armatures and animations get imported. Some inaccuracy remains with bone transforms. --- source/blender/collada/AnimationImporter.cpp | 2 +- source/blender/collada/ArmatureImporter.cpp | 17 ++++++++--------- source/blender/collada/DocumentImporter.cpp | 7 +++++++ 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 7d9e48668c9..42dbc086146 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -680,7 +680,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , bool is_joint = node->getType() == COLLADAFW::Node::JOINT; COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; - Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; + Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map[node->getUniqueId()]; const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index b4cfd1ba9cd..262834d895b 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -134,9 +134,9 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p } // in second case it's not a leaf bone, but we handle it the same way - /*if (!children.getCount() || children.getCount() > 1) { - add_leaf_bone(mat, bone);*/ - //} + if (!children.getCount() || children.getCount() > 1) { + add_leaf_bone(mat, bone); + } } @@ -382,7 +382,7 @@ void ArmatureImporter::create_armature_bones( ) TODO: check if bones have already been created for a given joint */ - + leaf_bone_length = FLT_MAX; create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, (bArmature*)ob_arm->data); fix_leaf_bones(); @@ -522,6 +522,7 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) // root - if this joint is the top joint in hierarchy, if a joint // is a child of a node (not joint), root should be true since // this is where we build armature bones from + void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *parent, Scene *sce) { joint_by_uid[node->getUniqueId()] = node; @@ -529,9 +530,7 @@ void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *paren root_joints.push_back(node); if (parent) { - Object * par = parent->parent; - parent = add_object(sce, OB_ARMATURE ); - parent->parent = par; + joint_parent_map[node->getUniqueId()] = parent; } } @@ -675,8 +674,8 @@ Object *ArmatureImporter::get_armature_for_joint(COLLADAFW::Node *node) if (skin.uses_joint_or_descendant(node)) return skin.get_armature(); } - - std::map::iterator arm; + + std::map::iterator arm; for (arm = unskinned_armature_map.begin(); arm != unskinned_armature_map.end(); arm++) { if(arm->first == node->getUniqueId() ) return arm->second; diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 7d1de7d5a6d..117479b2022 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -378,6 +378,13 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren bool is_joint = node->getType() == COLLADAFW::Node::JOINT; if (is_joint) { + if ( par ) { + Object * empty = par; + par = add_object(sce, OB_ARMATURE); + bc_set_parent(par,empty->parent, mContext); + //remove empty : todo + object_map[parent_node->getUniqueId()] = par; + } armature_importer.add_joint(node, parent_node == NULL || parent_node->getType() != COLLADAFW::Node::JOINT, par, sce); } else { -- cgit v1.2.3 From b15a2b0ffc3a8c91020f59613ed89078101eb435 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Jun 2011 07:46:24 +0000 Subject: cmake: added FindOpenJPEG module. --- source/blender/imbuf/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 812d5c03fdb..14679b37d1e 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -119,7 +119,7 @@ if(WITH_IMAGE_TIFF) endif() if(WITH_IMAGE_OPENJPEG) - list(APPEND INC_SYS ${OPENJPEG_INC}) + list(APPEND INC_SYS ${OPENJPEG_INCLUDE_DIRS}) add_definitions(-DWITH_OPENJPEG) endif() -- cgit v1.2.3 From 8eb375048eb1ca908b4228eb568a95f0fb53c0ff Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Jun 2011 09:32:37 +0000 Subject: removing python includes for blenkernel since pynodes are commented. --- source/blender/blenkernel/CMakeLists.txt | 2 +- source/blender/blenkernel/intern/node.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 9c06e325ce2..02a890115cf 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -284,7 +284,7 @@ endif() if(WITH_PYTHON) list(APPEND INC ../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) + # list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) # for pynodes, commented now add_definitions(-DWITH_PYTHON) if(WITH_PYTHON_SECURITY) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 3a8a2ae9c09..64e374fe4c0 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -32,8 +32,10 @@ */ -#ifdef WITH_PYTHON -#include +#if 0 /* pynodes commented for now */ +# ifdef WITH_PYTHON +# include +# endif #endif #include "MEM_guardedalloc.h" -- cgit v1.2.3 From dd364944d11bfbe2c2e9441a16602f7004fbdfd4 Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Sun, 19 Jun 2011 20:41:41 +0000 Subject: By Morten S. Mikkelsen; this adds support for tangent bump shading left: legacy bump, righ: sparkybump http://pasteall.org/pic/show.php?id=13875 bugs [#26320], [#27506] there's still an issue with texture OSA as you can see --- source/blender/render/intern/source/render_texture.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index c4587b83fcd..f0c39964d5a 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -2620,6 +2620,12 @@ void do_material_tex(ShadeInput *shi) } } } + if ((use_compat_bump || use_ntap_bump) && (shi->mat->mode & MA_TANGENT_V)!=0) { + const float fnegdot = -dot_v3v3(shi->vn, shi->tang); + // apply Gram-Schmidt projection + madd_v3_v3fl(shi->tang, shi->vn, fnegdot); + normalize_v3(shi->tang); + } } -- cgit v1.2.3 From 015b0ea00afc4f12be5fc830152930cd9bbb6dac Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 20 Jun 2011 01:54:49 +0000 Subject: small fix to turntable mode, first attempt at trackball code, ndof now respects view locking and updates 'User Persp' etc. --- source/blender/editors/space_view3d/view3d_edit.c | 110 +++++++++++++++------- 1 file changed, 78 insertions(+), 32 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 76d595c275b..d1be99ce7ee 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -954,46 +954,92 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) { wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - float dt = ndof->dt; - - RegionView3D* rv3d = CTX_wm_region_view3d(C); - - /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ - float phi, q1[4]; - float m[3][3]; - float m_inv[3][3]; - float xvec[3] = {1,0,0}; - - const float sensitivity = 0.035; + float sensitivity = 1.f; /* ooh, magic number! + const float sensitivity = 0.035; /* ooh, magic number! + there will be several of these as interactions get tuned */ + float dt = ndof->dt; if (dt > 0.25f) /* this is probably the first event for this motion, so set dt to something reasonable */ + /* TODO: replace such guesswork with a flag or field from the NDOF manager */ dt = 0.0125f; - /* Get the 3x3 matrix and its inverse from the quaternion */ - quat_to_mat3(m,rv3d->viewquat); - invert_m3_m3(m_inv,m); - - /* Determine the direction of the x vector (for rotating up and down) */ - /* This can likely be computed directly from the quaternion. */ - mul_m3_v3(m_inv,xvec); - - /* Perform the up/down rotation */ - phi = sensitivity * -ndof->rx; - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, xvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + RegionView3D* rv3d = CTX_wm_region_view3d(C); - /* Perform the orbital rotation */ - phi = sensitivity * ndof->rz; - q1[0] = cos(phi); - q1[1] = q1[2] = 0.0; - q1[3] = sin(phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + int /* bool */ has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); + if (has_rotation) + rv3d->view = RV3D_VIEW_USER; + + if (has_rotation) { + if (U.flag & USER_TRACKBALL) { + /* TODO: write trackball code! */ + + float axis[3] = {ndof->rx, ndof->ry, ndof->rz}; + float angle = sensitivity * dt * ndof_to_angle_axis(axis, axis); + float rotation[4], rotationconj[4]; + float view[4], viewconj[4]; + + // convert to quaternion + axis_angle_to_quat(rotation, axis, angle); + + // extract rotation component of viewquat + copy_qt_qt(view, rv3d->viewquat); + invert_qt(view); + normalize_qt(view); + copy_qt_qt(viewconj, view); + conjugate_qt(viewconj); + + // transform device rotation into view's frame of reference + // rotation(view) = view * rotation(world) * viewconj + mul_qt_qtqt(rotation, rotation, viewconj); + mul_qt_qtqt(rotation, view, rotation); + + // apply rotation to obtain new viewpoint +// copy_qt_qt(rotationconj, rotation); +// conjugate_qt(rotationconj); +// mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotationconj); +// mul_qt_qtqt(rv3d->viewquat, rotation, rv3d->viewquat); + mul_qt_qtqt(rv3d->viewquat, rotation, rv3d->viewquat); + + // this is *close* to trackball behavior + // rotation axis needs to remain fixed relative to viewpoint, not world coordinates + + ED_region_tag_redraw(CTX_wm_region(C)); + + } else { + /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ + float phi, q1[4]; + float m[3][3]; + float m_inv[3][3]; + float xvec[3] = {1,0,0}; + + /* Get the 3x3 matrix and its inverse from the quaternion */ + quat_to_mat3(m,rv3d->viewquat); + invert_m3_m3(m_inv,m); + + /* Determine the direction of the x vector (for rotating up and down) */ + /* This can likely be computed directly from the quaternion. */ + mul_m3_v3(m_inv,xvec); + + /* Perform the up/down rotation */ + phi = sensitivity * dt * ndof->rx; + q1[0] = cos(phi); + mul_v3_v3fl(q1+1, xvec, sin(phi)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + /* Perform the orbital rotation */ + phi = sensitivity * dt * ndof->rz; + q1[0] = cos(phi); + q1[1] = q1[2] = 0.0; + q1[3] = sin(phi); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + + ED_region_tag_redraw(CTX_wm_region(C)); + } + } - ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; - } +} // Tom's version #if 0 -- cgit v1.2.3 From 6d7e3509a9feb6d7259ad395d46ca20fa0b5234e Mon Sep 17 00:00:00 2001 From: Michael Fox Date: Mon, 20 Jun 2011 02:37:13 +0000 Subject: small safety fix for recent commit to normal mapping (uninitialised variables) --- source/blender/render/intern/source/render_texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index f0c39964d5a..43e6043366c 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -2118,7 +2118,7 @@ void do_material_tex(ShadeInput *shi) float fact, facm, factt, facmm, stencilTin=1.0; float texvec[3], dxt[3], dyt[3], tempvec[3], norvec[3], warpvec[3]={0.0f, 0.0f, 0.0f}, Tnor=1.0; int tex_nr, rgbnor= 0, warpdone=0; - int use_compat_bump, use_ntap_bump; + int use_compat_bump = 0, use_ntap_bump = 0; int iFirstTimeNMap=1; compatible_bump_init(&compat_bump); -- cgit v1.2.3 From 4ce97c5ed4a95a555a21c0e2dd1b909409f35a8d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 03:10:02 +0000 Subject: changes to startup.blend - enable manipulator option, applies to new 3d views (not sure why it was disabled) - reported in [#27664] - remove rigify and netrender scene ID properties - set console scrollback to 256, was 128 which could sometimes cut off output of help() - enabled syntax highlighting and line number in the text editor for game logic and python screens --- source/blender/editors/datafiles/startup.blend.c | 11527 ++++++++++--------- source/blender/editors/space_console/console_ops.c | 2 +- 2 files changed, 6171 insertions(+), 5358 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index 1121eb5a299..dce7ee25e8d 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -1,885 +1,1054 @@ /* DataToC output of file */ -int datatoc_startup_blend_size= 349868; +int datatoc_startup_blend_size= 375912; char datatoc_startup_blend[]= { - 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 55, - 82, 69, 78, 68, 32, 0, 0, 0,240,236,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, - 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 32, 1, 0, 0, -240,235,191, 95,255,127, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, - 40, 54, 45, 21, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0,162,144, 0, 0, 0, 0, 0, 0, - 60,109,101,109,111,114,121, 50, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 76, 69, 78, 68, 69, 82, 45, +118, 50, 53, 55, 82, 69, 78, 68, 32, 0, 0, 0, 0,112,125, 82,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, + 32, 1, 0, 0, 16,111,125, 82,255,127, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, + 1, 0, 0, 1, 72, 17, 30, 2, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 24, 1, 0, 0,200,136, 44, 21, 1, 0, 0, 0, -106, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40,138, 44, 21, 1, 0, 0, 0, 40,138, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 24, 1, 0, 0,152,101, 29, 2, + 0, 0, 0, 0,106, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,248,102, 29, 2, + 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,134, 61, 3, + 0, 0, 0, 0,248, 14,187, 3, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 72,126,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 79, 20, 2, 0, 0, 0, 0, 88, 79, 20, 2, + 0, 0, 0, 0, 88, 79, 20, 2, 0, 0, 0, 0, 72, 80, 20, 2, 0, 0, 0, 0, 72,126,181, 3, 0, 0, 0, 0, 72, 80, 20, 2, + 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,107, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 80, 20, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72, 17, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 29, 0,126, 7, 5, 4, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, + 1, 0, 0, 0,104, 46, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 72, 70, 2, 2, 0, 0, 0, 0, 8, 52,119, 3, 0, 0, 0, 0, 8, 52,119, 3, 0, 0, 0, 0, 40, 47, 68, 2, + 0, 0, 0, 0,168, 2, 68, 2, 0, 0, 0, 0, 56, 4, 68, 2, 0, 0, 0, 0, 56, 4, 68, 2, 0, 0, 0, 0,216,254,190, 3, + 0, 0, 0, 0,152,255, 77, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, +216, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, + 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,105, 29, 2, + 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 40,113, 29, 2, 0, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,216,125, 29, 2, + 0, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,106, 29, 2, + 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0,184,105, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,106, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,107, 29, 2, + 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,120,107, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,108, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6,184, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,109, 29, 2, + 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,110, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 6,124, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2,124, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104,111, 29, 2, + 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0,248,110, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,111, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,164, 2,108, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 32, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 32, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,113, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,113, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152,113, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,114, 29, 2, 0, 0, 0, 0, 40,113, 29, 2, + 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,114, 29, 2, 0, 0, 0, 0,152,113, 29, 2, + 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,114, 29, 2, 0, 0, 0, 0, 8,114, 29, 2, + 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,115, 29, 2, 0, 0, 0, 0,120,114, 29, 2, + 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,115, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,115, 29, 2, 0, 0, 0, 0,232,114, 29, 2, + 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,115, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,116, 29, 2, 0, 0, 0, 0, 88,115, 29, 2, + 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56,116, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,116, 29, 2, 0, 0, 0, 0,200,115, 29, 2, + 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168,116, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,117, 29, 2, 0, 0, 0, 0, 56,116, 29, 2, + 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,117, 29, 2, 0, 0, 0, 0,168,116, 29, 2, + 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,117, 29, 2, 0, 0, 0, 0, 24,117, 29, 2, + 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,118, 29, 2, 0, 0, 0, 0,136,117, 29, 2, + 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,118, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,118, 29, 2, 0, 0, 0, 0,248,117, 29, 2, + 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,118, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,119, 29, 2, 0, 0, 0, 0,104,118, 29, 2, + 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,119, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,119, 29, 2, 0, 0, 0, 0,216,118, 29, 2, + 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184,119, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,120, 29, 2, 0, 0, 0, 0, 72,119, 29, 2, + 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,120, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,120, 29, 2, 0, 0, 0, 0,184,119, 29, 2, + 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152,120, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,121, 29, 2, 0, 0, 0, 0, 40,120, 29, 2, + 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,121, 29, 2, 0, 0, 0, 0,152,120, 29, 2, + 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,121, 29, 2, 0, 0, 0, 0, 8,121, 29, 2, + 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,122, 29, 2, 0, 0, 0, 0,120,121, 29, 2, + 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,122, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,122, 29, 2, 0, 0, 0, 0,232,121, 29, 2, + 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,122, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,123, 29, 2, 0, 0, 0, 0, 88,122, 29, 2, + 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56,123, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,123, 29, 2, 0, 0, 0, 0,200,122, 29, 2, + 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168,123, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,124, 29, 2, 0, 0, 0, 0, 56,123, 29, 2, + 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,124, 29, 2, 0, 0, 0, 0,168,123, 29, 2, + 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,124, 29, 2, 0, 0, 0, 0, 24,124, 29, 2, + 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,136,124, 29, 2, + 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,124, 29, 2, + 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,216,125, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,129, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,120,107, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, 40,184, 29, 2, 0, 0, 0, 0, 40,184, 29, 2, + 0, 0, 0, 0,200,126, 29, 2, 0, 0, 0, 0, 56,128, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,163,166, 3, 0, 0, 0, 0,184,135, 61, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,126, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,128, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,128, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,126, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, +129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,129, 29, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,216,125, 29, 2, 0, 0, 0, 0,232,107, 29, 2, + 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 4, 4, 74, 1,184, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,152,130, 29, 2, + 0, 0, 0, 0, 8,132, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 7,180, 3, + 0, 0, 0, 0,120, 62,166, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,130, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 8,132, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 26, 0, 74, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,158, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,132, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,130, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 61,196, + 0, 0, 0, 0, 0, 0, 0, 0, 1,128,156, 67, 1, 0,207,195, 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, +157, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, +157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 74, 1,158, 1, 57, 1,158, 1, 0, 0, 56, 93,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 1,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 23, 75, 3, + 0, 0, 0, 0,104,151, 78, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 23, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,104, 50,185, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,220,255, 57, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 65,145, 3, 0, 0, 0, 0, - 68, 65, 84, 65,224, 0, 0, 0, 40,138, 44, 21, 1, 0, 0, 0,107, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,104, 50,185, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 60, 89, 3, 0, 0, 0, 0, 24, 23, 75, 3, + 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,140, 44, 21, 1, 0, 0, 0, -200,146, 44, 21, 1, 0, 0, 0, 40,147, 44, 21, 1, 0, 0, 0,104,159, 44, 21, 1, 0, 0, 0,216,159, 44, 21, 1, 0, 0, 0, -152,227, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 57, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,140, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -200,140, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,200,140, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,141, 44, 21, 1, 0, 0, 0, -104,140, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 40,141, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,141, 44, 21, 1, 0, 0, 0,200,140, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,141, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,232,141, 44, 21, 1, 0, 0, 0, 40,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,141, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 72,142, 44, 21, 1, 0, 0, 0,136,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, -232,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -168,142, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,143, 44, 21, 1, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,143, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,104,143, 44, 21, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,143, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -200,143, 44, 21, 1, 0, 0, 0, 8,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,220, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,200,143, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,144, 44, 21, 1, 0, 0, 0, -104,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,220, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 40,144, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0,200,143, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0, 40,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 6,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 72,145, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2,132, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0, -232,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -168,145, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,104,146, 44, 21, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 2,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,146, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -200,146, 44, 21, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,100, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,100, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 40,147, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,147, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,140, 44, 21, 1, 0, 0, 0, 40,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -152,147, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,148, 44, 21, 1, 0, 0, 0, 40,147, 44, 21, 1, 0, 0, 0, -200,140, 44, 21, 1, 0, 0, 0,232,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 8,148, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,148, 44, 21, 1, 0, 0, 0,152,147, 44, 21, 1, 0, 0, 0, - 40,141, 44, 21, 1, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -120,148, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,148, 44, 21, 1, 0, 0, 0, 8,148, 44, 21, 1, 0, 0, 0, -232,141, 44, 21, 1, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -232,148, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,149, 44, 21, 1, 0, 0, 0,120,148, 44, 21, 1, 0, 0, 0, -104,140, 44, 21, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,149, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,149, 44, 21, 1, 0, 0, 0,232,148, 44, 21, 1, 0, 0, 0, -136,141, 44, 21, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,149, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,150, 44, 21, 1, 0, 0, 0, 88,149, 44, 21, 1, 0, 0, 0, - 72,142, 44, 21, 1, 0, 0, 0, 8,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,150, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,150, 44, 21, 1, 0, 0, 0,200,149, 44, 21, 1, 0, 0, 0, -168,142, 44, 21, 1, 0, 0, 0,104,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,150, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,151, 44, 21, 1, 0, 0, 0, 56,150, 44, 21, 1, 0, 0, 0, -136,141, 44, 21, 1, 0, 0, 0,200,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,151, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,151, 44, 21, 1, 0, 0, 0,168,150, 44, 21, 1, 0, 0, 0, -104,143, 44, 21, 1, 0, 0, 0,200,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,151, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,151, 44, 21, 1, 0, 0, 0, 24,151, 44, 21, 1, 0, 0, 0, -104,140, 44, 21, 1, 0, 0, 0, 40,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,151, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,152, 44, 21, 1, 0, 0, 0,136,151, 44, 21, 1, 0, 0, 0, - 8,143, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,152, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,152, 44, 21, 1, 0, 0, 0,248,151, 44, 21, 1, 0, 0, 0, -168,142, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -216,152, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,153, 44, 21, 1, 0, 0, 0,104,152, 44, 21, 1, 0, 0, 0, - 40,144, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,153, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,153, 44, 21, 1, 0, 0, 0,216,152, 44, 21, 1, 0, 0, 0, - 40,144, 44, 21, 1, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,153, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,154, 44, 21, 1, 0, 0, 0, 72,153, 44, 21, 1, 0, 0, 0, -136,144, 44, 21, 1, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 40,154, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,154, 44, 21, 1, 0, 0, 0,184,153, 44, 21, 1, 0, 0, 0, -232,141, 44, 21, 1, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -152,154, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,155, 44, 21, 1, 0, 0, 0, 40,154, 44, 21, 1, 0, 0, 0, - 8,143, 44, 21, 1, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 8,155, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,155, 44, 21, 1, 0, 0, 0,152,154, 44, 21, 1, 0, 0, 0, -232,144, 44, 21, 1, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -120,155, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,155, 44, 21, 1, 0, 0, 0, 8,155, 44, 21, 1, 0, 0, 0, - 40,144, 44, 21, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -232,155, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,156, 44, 21, 1, 0, 0, 0,120,155, 44, 21, 1, 0, 0, 0, -232,144, 44, 21, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,156, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,156, 44, 21, 1, 0, 0, 0,232,155, 44, 21, 1, 0, 0, 0, -168,145, 44, 21, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,156, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,157, 44, 21, 1, 0, 0, 0, 88,156, 44, 21, 1, 0, 0, 0, -104,143, 44, 21, 1, 0, 0, 0,104,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,157, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,157, 44, 21, 1, 0, 0, 0,200,156, 44, 21, 1, 0, 0, 0, - 8,143, 44, 21, 1, 0, 0, 0,104,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,157, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,158, 44, 21, 1, 0, 0, 0, 56,157, 44, 21, 1, 0, 0, 0, - 72,142, 44, 21, 1, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,158, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,158, 44, 21, 1, 0, 0, 0,168,157, 44, 21, 1, 0, 0, 0, -200,143, 44, 21, 1, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,158, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,158, 44, 21, 1, 0, 0, 0, 24,158, 44, 21, 1, 0, 0, 0, -104,146, 44, 21, 1, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,158, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,159, 44, 21, 1, 0, 0, 0,136,158, 44, 21, 1, 0, 0, 0, -232,141, 44, 21, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,159, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,158, 44, 21, 1, 0, 0, 0, - 72,145, 44, 21, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -216,159, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,163, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,141, 44, 21, 1, 0, 0, 0,200,140, 44, 21, 1, 0, 0, 0, 40,141, 44, 21, 1, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,236, 44, 21, 1, 0, 0, 0,120,236, 44, 21, 1, 0, 0, 0, -184,160, 44, 21, 1, 0, 0, 0, 40,162, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,160, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 40,162, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,162, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,160, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 97, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,163, 44, 21, 1, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0, 24,188, 44, 21, 1, 0, 0, 0,216,159, 44, 21, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, -104,143, 44, 21, 1, 0, 0, 0,200,143, 44, 21, 1, 0, 0, 0,136,141, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,219, 1, 0, 0, 4, 4, 74, 1,220, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,186, 44, 21, 1, 0, 0, 0,216,186, 44, 21, 1, 0, 0, 0,120,164, 44, 21, 1, 0, 0, 0, -232,165, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,164, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, -232,165, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 74, 1, 31, 0, 74, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 6, 0, 0,118, 7, 0, 0,189, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,165, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120,164, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, 0,128, 86,196, 0, 0, 0, 0, - 0, 0, 0, 0, 1,128,156, 67, 2,128,222,195, 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0,188, 1, 0, 0, - 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0,188, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0, 74, 1,189, 1, 57, 1,189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74, 1,189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,186, 44, 21, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 60, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,136, 67,191, 3, 0, 0, 0, 0,104, 50,185, 3, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,111,255, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 24,188, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,192, 44, 21, 1, 0, 0, 0,152,163, 44, 21, 1, 0, 0, 0, -104,140, 44, 21, 1, 0, 0, 0, 40,144, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0,168,142, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 0, 0, 0, 0,131, 0, 0, 0, 15, 15, 44, 6,132, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,191, 44, 21, 1, 0, 0, 0,216,191, 44, 21, 1, 0, 0, 0, -248,188, 44, 21, 1, 0, 0, 0,104,190, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,188, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,104,190, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,137, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,197, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 6, 26, 0, 44, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,136, 67,191, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24, 67, 62, 3, 0, 0, 0, 0,248, 60, 89, 3, + 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,190, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,188, 44, 21, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, - 18, 0, 0, 0,105, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 44, 6,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 57, 1,203, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216,191, 44, 21, 1, 0, 0, 0, -173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 67, 62, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,136, 67,191, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254, 57, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,248,192, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,199, 44, 21, 1, 0, 0, 0, - 24,188, 44, 21, 1, 0, 0, 0,104,143, 44, 21, 1, 0, 0, 0,104,146, 44, 21, 1, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0, -200,143, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,221, 1, 0, 0, 99, 3, 0, 0, - 3, 3, 74, 1,135, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,196, 44, 21, 1, 0, 0, 0, -184,196, 44, 21, 1, 0, 0, 0,216,193, 44, 21, 1, 0, 0, 0, 72,195, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -216,193, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 72,195, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 74, 1, 26, 0, 74, 1, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, 74, 3, 0, 0, 99, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,104, 62, 68, 2, 0, 0, 0, 0, 24, 67, 62, 3, + 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, +111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 57, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 72,195, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,193, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, 0,128,173,195, 0, 0, 0, 0, - 57, 1, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 56, 1, 0, 0, 18, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 74, 1,109, 1, 57, 1, 91, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,221, 1, 0, 0, 73, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,109, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 62, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, -184,196, 44, 21, 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10,254, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,104, 68, 2, 0, 0, 0, 0,104, 62, 68, 2, + 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 57, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120,152,192, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,120,152,192, 3, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, - 14, 0, 0, 0, 14, 0, 0, 0, 24,198, 44, 21, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 24,198, 44, 21, 1, 0, 0, 0, -219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,233, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 88,239, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,244, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,229, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,228, 46, 21, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,199, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -104,212, 44, 21, 1, 0, 0, 0,248,192, 44, 21, 1, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0, 72,145, 44, 21, 1, 0, 0, 0, - 8,143, 44, 21, 1, 0, 0, 0,136,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 2, 0, 0, 43, 6, 0, 0, -133, 0, 0, 0, 69, 4, 0, 0, 1, 1,139, 3,193, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,210, 44, 21, 1, 0, 0, 0,232,210, 44, 21, 1, 0, 0, 0, 24,200, 44, 21, 1, 0, 0, 0,216,205, 44, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,104, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,104,117, 1, 2, 0, 0, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 24,200, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,201, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,139, 3, - 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 2, 0, 0, 43, 6, 0, 0, -133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,136,201, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,202, 44, 21, 1, 0, 0, 0, - 24,200, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 2, 0, 0,161, 2, 0, 0, -159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,167, 3, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,218,253, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,248,202, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104,204, 44, 21, 1, 0, 0, 0, -136,201, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 2, 0, 0, 43, 6, 0, 0, -159, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,104,117, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,119, 1, 2, 0, 0, 0, 0,184,104, 68, 2, + 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 57, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,104,204, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,205, 44, 21, 1, 0, 0, 0, -248,202, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 43, 6, 0, 0, -159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,119, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,104,151, 78, 3, 0, 0, 0, 0,104,117, 1, 2, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,216,205, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,204, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40,253, 57, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 2, 0, 0, 43, 6, 0, 0, -159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,104,151, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,119, 1, 2, + 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,207, 44, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 96, 3, 0, 0, 72,207, 44, 21, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,107, 82,144, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, 89,180,236, 62,209,249,224,190, - 48,180, 81,191,184,158, 81,191, 65,158,131, 63,142,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 38, 11,117,188,207,156,122, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,211, 48,186, 62, 11, 16, 79, 63, -144,199, 64,188, 0, 0,135,180,163, 15,188,190,102, 75, 53, 62,223,125, 81, 63, 0, 0,104, 51,207,107,117,194, 81,204,216, 65, - 40,156, 5,194,136,247,159,192,121, 62,114, 66,214,253,213,193, 94,225, 3, 66,236, 7,160, 64, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 89,180,236, 62,209,249,224,190, - 48,180, 81,191,184,158, 81,191, 65,158,131, 63,142,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 38, 11,117,188,207,156,122, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,181, 12, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,181, 12, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99,181, 12, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 14, 43, 0, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 57, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,162, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 72,128, 81, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,168,129, 29, 2, + 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0,232,107, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 15, 15, 52, 6, +124, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,136,138, 29, 2, 0, 0, 0, 0,136,138, 29, 2, + 0, 0, 0, 0,168,135, 29, 2, 0, 0, 0, 0, 24,137, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,222,176, 3, 0, 0, 0, 0, 72,166,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,135, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,137, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,198, 68, 0, 0,200, 65, 0, 96,198, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 52, 6, 26, 0, 52, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, -232,210, 44, 21, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,137, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,135, 29, 2, 0, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 51, 6, 0, 0, 18, 0, 0, 0, 97, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 52, 6, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,138, 29, 2, + 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,212, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -232,220, 44, 21, 1, 0, 0, 0, 56,199, 44, 21, 1, 0, 0, 0, 40,144, 44, 21, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0, - 8,146, 44, 21, 1, 0, 0, 0,232,144, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, -133, 0, 0, 0,139, 1, 0, 0, 2, 2,160, 2, 7, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,219, 44, 21, 1, 0, 0, 0, 8,219, 44, 21, 1, 0, 0, 0, 72,213, 44, 21, 1, 0, 0, 0,152,217, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 72,213, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,214, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 40, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, - 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 2, - 26, 0,160, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, -133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,146, 29, 2, + 0, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,184,112, 29, 2, + 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,185, 1, 0, 0, + 31, 3, 0, 0, 3, 3, 74, 1,103, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,209, 2, 2, 0, 0, 0, 0,120,143, 29, 2, + 0, 0, 0, 0,120,143, 29, 2, 0, 0, 0, 0,152,140, 29, 2, 0, 0, 0, 0, 8,142, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 68, 2, 0, 0, 0, 0, 56,177, 79, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,152,140, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8,142, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 26, 0, 74, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 6, 3, 0, 0, + 31, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 8,142, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,140, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, 0,128,157,195, + 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 18, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 74, 1, 77, 1, 57, 1, + 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,185, 1, 0, 0, + 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,184,214, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,216, 44, 21, 1, 0, 0, 0, - 72,213, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0, 0, 91,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, -237, 0,200, 0,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, -159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,237, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 1, 0, 0,120,143, 29, 2, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 40,216, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,152,217, 44, 21, 1, 0, 0, 0, -184,214, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 69, 62, 3, + 0, 0, 0, 0,136, 69, 62, 3, 0, 0, 0, 0,216,144, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216,144, 29, 2, 0, 0, 0, 0,220, 0, 0, 0, + 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56,145, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 56,145, 29, 2, + 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, + 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, + 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, + 1, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,248,110, 29, 2, + 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, + 51, 6, 0, 0,125, 0, 0, 0,233, 3, 0, 0, 1, 1,143, 3,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, + 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 88,147, 29, 2, 0, 0, 0, 0, 24,153, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,120, 76, 3, 0, 0, 0, 0,104,176,176, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,147, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,148, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,192, 99, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 99, 68, + 0, 0,200, 65, 0,128, 99, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,143, 3, 26, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, + 51, 6, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 3, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,148, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,150, 29, 2, + 0, 0, 0, 0, 88,147, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, +165, 2, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 83, 3, + 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0,159, 2, 0, 0, -159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,150, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,151, 29, 2, + 0, 0, 0, 0,200,148, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, + 51, 6, 0, 0,151, 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,152,217, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40,216, 44, 21, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,236, 0, 0, 0, 18, 0, 0, 0,198, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 1, 0, 0, 18, 0, 0, 0,236, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, - 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 1, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,159, 2, 0, 0, -159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 1,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,151, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,153, 29, 2, + 0, 0, 0, 0, 56,150, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, + 51, 6, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0, 8,219, 44, 21, 1, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,153, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,151, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, + 51, 6, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 3, 83, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,154, 29, 2, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,136,154, 29, 2, 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,222,149, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, + 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, + 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, +123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188, + 25, 36,134, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 8,240,191, 62, +130,116, 85, 63,112,191, 70,188, 0, 0,224,180,179,172,175,190,143, 90, 41, 62,193,177, 67, 63, 0, 0, 8, 52,207,107,117,194, + 80,204,216, 65, 41,156, 5,194,136,247,159,192,121, 62,114, 66,213,253,213,193, 95,225, 3, 66,236, 7,160, 64, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, +123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188, + 25, 36,134, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 93,106, 16, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,106, 16, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93,106, 16, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,116,139, 3, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56,220, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0, 56,220, 44, 21, 1, 0, 0, 0, 19, 1, 0, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,220, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -152,227, 44, 21, 1, 0, 0, 0,104,212, 44, 21, 1, 0, 0, 0,168,145, 44, 21, 1, 0, 0, 0,232,141, 44, 21, 1, 0, 0, 0, - 72,145, 44, 21, 1, 0, 0, 0, 8,146, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, -141, 1, 0, 0, 69, 4, 0, 0, 12, 12,160, 2,185, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24,226, 44, 21, 1, 0, 0, 0, 24,226, 44, 21, 1, 0, 0, 0,200,221, 44, 21, 1, 0, 0, 0,168,224, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,200,221, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,223, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 40, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, - 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 2, - 26, 0,160, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, -141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 56,223, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,224, 44, 21, 1, 0, 0, 0, -200,221, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0, 64, 35,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,158, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0, -159, 2,200, 0,141, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, -167, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,159, 2, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,168,224, 44, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56,223, 44, 21, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, - 0, 64, 35,196, 0, 0, 0, 0,199, 1, 0, 0,216, 1, 0, 0, 18, 0, 0, 0,158, 2, 0, 0, 0, 0, 0, 0,198, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 1, 0, 0, 18, 0, 0, 0,158, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,216, 1, -159, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,159, 2, 0, 0, -167, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 1,159, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, + 56, 1, 0, 0, 56,158, 29, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, + 1, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,104,111, 29, 2, + 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +163, 2, 0, 0,125, 0, 0, 0,107, 1, 0, 0, 2, 2,164, 2,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226, 2, 2, + 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,168,160, 29, 2, 0, 0, 0, 0,248,164, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,165,176, 3, 0, 0, 0, 0, 8,223, 78, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,160, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,162, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, + 0, 0,200, 65, 0,192, 40, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,164, 2, 26, 0,164, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +163, 2, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 64, 1, 0, 0, 24,226, 44, 21, 1, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,162, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,163, 29, 2, + 0, 0, 0, 0,168,160, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 67, 0, 0, 67,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, + 6, 0,217, 0,213, 0,200, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 0, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,213, 0, + 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,163, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,164, 29, 2, + 0, 0, 0, 0, 24,162, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, +163, 2, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,230, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -152,227, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,220, 44, 21, 1, 0, 0, 0, -104,146, 44, 21, 1, 0, 0, 0, 8,143, 44, 21, 1, 0, 0, 0, 72,142, 44, 21, 1, 0, 0, 0,200,146, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 1, 1, 74, 1,225, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,234, 44, 21, 1, 0, 0, 0,248,234, 44, 21, 1, 0, 0, 0, -120,228, 44, 21, 1, 0, 0, 0,232,229, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,228, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,232,229, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, - 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0,101, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,164, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,163, 29, 2, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 0, +202, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,202, 1, 0, 0, 18, 0, 0, 0,212, 0, 0, 0,111, 18,131, 58, +111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0,203, 1,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, +163, 2, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 1,213, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,228, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,229, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,228, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88,231, 44, 21, 1, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, 88,231, 44, 21, 1, 0, 0, 0, -156, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 66, 80, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, -149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, -152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, - 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, - 77,255,170, 64, 0, 0,128, 63, 3,201,194, 63, 34, 49,132,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63,124, 38,130, 63, -180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 42,119, 58, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,204,230,156,191, -216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,128,206,159,187, 0, 0,168,180, 59,189,199,189,147,167,196, 61, -206,223,140, 62, 0, 0,248, 51,211,120, 21,194,145, 5, 2, 66, 10,136,213,193,193,214,159,192,219, 38, 19, 66,197,173,255,193, -158,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, -149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, -152, 9, 52,193, 0, 0,128, 63, 3,201,194, 63, 34, 49,132,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63,124, 38,130, 63, -180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 42,119, 58, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,204,230,156,191, -216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,167, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,168,167, 29, 2, 0, 0, 0, 0, 19, 1, 0, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,202, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, + 1, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 8,107, 29, 2, + 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +163, 2, 0, 0,109, 1, 0, 0,233, 3, 0, 0, 12, 12,164, 2,125, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 22, 3, 2, + 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0, 72,169, 29, 2, 0, 0, 0, 0, 40,172, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 86, 78, 3, 0, 0, 0, 0, 24,153, 74, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,169, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,170, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,124, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, + 0, 0,200, 65, 0,192, 40, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,164, 2, 26, 0,164, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +163, 2, 0, 0,109, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 24, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,170, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,172, 29, 2, + 0, 0, 0, 0, 72,169, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 67, 0, 64, 20,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, + 6, 0,200, 0, 99, 2,200, 0, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0,135, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 99, 2, + 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 25, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,172, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,170, 29, 2, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,104, 68, 0, 64, 20,196, 0, 0, 0, 0,203, 1, 0, 0,220, 1, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, +202, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 1, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, + 4, 0,220, 1, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, +163, 2, 0, 0,135, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1, 99, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 23, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,248,234, 44, 21, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,173, 29, 2, 0, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, - 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,238, 44, 21, 1, 0, 0, 0, -248,242, 44, 21, 1, 0, 0, 0, 88,243, 44, 21, 1, 0, 0, 0,136,252, 44, 21, 1, 0, 0, 0,248,252, 44, 21, 1, 0, 0, 0, -120, 48, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,238, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -120,238, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,120,238, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216,238, 44, 21, 1, 0, 0, 0, - 24,238, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -216,238, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,239, 44, 21, 1, 0, 0, 0,120,238, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,239, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,152,239, 44, 21, 1, 0, 0, 0,216,238, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,239, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -248,239, 44, 21, 1, 0, 0, 0, 56,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,240, 44, 21, 1, 0, 0, 0, -152,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0, 88,240, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -120,241, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 70, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216,241, 44, 21, 1, 0, 0, 0, - 24,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -216,241, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,152,242, 44, 21, 1, 0, 0, 0,216,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,242, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -248,242, 44, 21, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,243, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,243, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120,238, 44, 21, 1, 0, 0, 0,216,238, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,243, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,244, 44, 21, 1, 0, 0, 0, 88,243, 44, 21, 1, 0, 0, 0, -120,238, 44, 21, 1, 0, 0, 0,152,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,244, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,244, 44, 21, 1, 0, 0, 0,200,243, 44, 21, 1, 0, 0, 0, -216,238, 44, 21, 1, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,244, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,245, 44, 21, 1, 0, 0, 0, 56,244, 44, 21, 1, 0, 0, 0, -152,239, 44, 21, 1, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,245, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,245, 44, 21, 1, 0, 0, 0,168,244, 44, 21, 1, 0, 0, 0, - 56,239, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,245, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,245, 44, 21, 1, 0, 0, 0, 24,245, 44, 21, 1, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,245, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,246, 44, 21, 1, 0, 0, 0,136,245, 44, 21, 1, 0, 0, 0, -248,239, 44, 21, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,246, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,246, 44, 21, 1, 0, 0, 0,248,245, 44, 21, 1, 0, 0, 0, -152,239, 44, 21, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -216,246, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,247, 44, 21, 1, 0, 0, 0,104,246, 44, 21, 1, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,247, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,247, 44, 21, 1, 0, 0, 0,216,246, 44, 21, 1, 0, 0, 0, -248,239, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,247, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,248, 44, 21, 1, 0, 0, 0, 72,247, 44, 21, 1, 0, 0, 0, -152,239, 44, 21, 1, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 40,248, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,248, 44, 21, 1, 0, 0, 0,184,247, 44, 21, 1, 0, 0, 0, - 24,241, 44, 21, 1, 0, 0, 0,216,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -152,248, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,249, 44, 21, 1, 0, 0, 0, 40,248, 44, 21, 1, 0, 0, 0, -120,241, 44, 21, 1, 0, 0, 0,216,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 8,249, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,249, 44, 21, 1, 0, 0, 0,152,248, 44, 21, 1, 0, 0, 0, -120,241, 44, 21, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -120,249, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,249, 44, 21, 1, 0, 0, 0, 8,249, 44, 21, 1, 0, 0, 0, -216,241, 44, 21, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -232,249, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,250, 44, 21, 1, 0, 0, 0,120,249, 44, 21, 1, 0, 0, 0, - 24,238, 44, 21, 1, 0, 0, 0,152,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,250, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,250, 44, 21, 1, 0, 0, 0,232,249, 44, 21, 1, 0, 0, 0, -152,242, 44, 21, 1, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,250, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,251, 44, 21, 1, 0, 0, 0, 88,250, 44, 21, 1, 0, 0, 0, - 56,239, 44, 21, 1, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,251, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,251, 44, 21, 1, 0, 0, 0,200,250, 44, 21, 1, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,251, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,252, 44, 21, 1, 0, 0, 0, 56,251, 44, 21, 1, 0, 0, 0, - 56,242, 44, 21, 1, 0, 0, 0,152,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,252, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,252, 44, 21, 1, 0, 0, 0,168,251, 44, 21, 1, 0, 0, 0, -216,241, 44, 21, 1, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,252, 44, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,252, 44, 21, 1, 0, 0, 0, - 24,238, 44, 21, 1, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -248,252, 44, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184, 0, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,239, 44, 21, 1, 0, 0, 0,120,238, 44, 21, 1, 0, 0, 0,216,238, 44, 21, 1, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 53, 45, 21, 1, 0, 0, 0,168, 53, 45, 21, 1, 0, 0, 0, -216,253, 44, 21, 1, 0, 0, 0, 72,255, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,253, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 72,255, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,255, 44, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,253, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 97, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184, 0, 45, 21, 1, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,152, 5, 45, 21, 1, 0, 0, 0,248,252, 44, 21, 1, 0, 0, 0,248,242, 44, 21, 1, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, 56,239, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 94, 1,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 4, 45, 21, 1, 0, 0, 0,120, 4, 45, 21, 1, 0, 0, 0,152, 1, 45, 21, 1, 0, 0, 0, - 8, 3, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 1, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 8, 3, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,110, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0,128,161, 67, 0, 64, 40, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,168, 29, 2, + 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,184,112, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0,233, 3, 0, 0, 1, 1, 74, 1, +201, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,168,182, 29, 2, 0, 0, 0, 0,168,182, 29, 2, + 0, 0, 0, 0, 24,176, 29, 2, 0, 0, 0, 0,136,177, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 44,186, 3, 0, 0, 0, 0,120,243,187, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,176, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,177, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0, 33, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 3, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 1, 45, 21, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0, 94, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 6, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,177, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,120, 4, 45, 21, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,178, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,248,178, 29, 2, + 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 57,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 33,105, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, +254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, +228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, +151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, +241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, +255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,194, 70,158, 62,240,233,167, 62, 32,206,159,187, 0, 0,168,180, 34,111,178,189, +170,173,175, 61,170,177,123, 62, 0, 0, 8, 51,211,120, 21,194,144, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66, +196,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, +254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, +241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, +255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -152, 5, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24, 30, 45, 21, 1, 0, 0, 0,184, 0, 45, 21, 1, 0, 0, 0, - 88,240, 44, 21, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0,248,239, 44, 21, 1, 0, 0, 0,184,240, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0,101, 0, 0, 0, 69, 4, 0, 0, 4, 4, 94, 1,225, 3, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 28, 45, 21, 1, 0, 0, 0,216, 28, 45, 21, 1, 0, 0, 0, -120, 6, 45, 21, 1, 0, 0, 0,232, 7, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 6, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,232, 7, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 94, 1, 31, 0, 94, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, 39, 4, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 7, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 6, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, - 0, 64,112,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,254,127,112,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, - 0, 0, 0, 0,193, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, - 0, 0, 0, 0,193, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,194, 3, 77, 1,194, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0,101, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,194, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 28, 45, 21, 1, 0, 0, 0, -162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, +100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,168,182, 29, 2, 0, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, +216, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 40,104, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110, +103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,185, 29, 2, + 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,248,191, 29, 2, 0, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0,152,201, 29, 2, + 0, 0, 0, 0, 8,234, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,186, 29, 2, + 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 72,186, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,187, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,188, 29, 2, + 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,188, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,190, 29, 2, + 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0,200,189, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,190, 29, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,191, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,192, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,192, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,192, 29, 2, 0, 0, 0, 0,248,191, 29, 2, + 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,192, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,193, 29, 2, 0, 0, 0, 0,104,192, 29, 2, + 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,193, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,193, 29, 2, 0, 0, 0, 0,216,192, 29, 2, + 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184,193, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,194, 29, 2, 0, 0, 0, 0, 72,193, 29, 2, + 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,194, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,194, 29, 2, 0, 0, 0, 0,184,193, 29, 2, + 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152,194, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,195, 29, 2, 0, 0, 0, 0, 40,194, 29, 2, + 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,195, 29, 2, 0, 0, 0, 0,152,194, 29, 2, + 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,195, 29, 2, 0, 0, 0, 0, 8,195, 29, 2, + 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,196, 29, 2, 0, 0, 0, 0,120,195, 29, 2, + 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,196, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,196, 29, 2, 0, 0, 0, 0,232,195, 29, 2, + 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,196, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,197, 29, 2, 0, 0, 0, 0, 88,196, 29, 2, + 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56,197, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,197, 29, 2, 0, 0, 0, 0,200,196, 29, 2, + 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168,197, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,198, 29, 2, 0, 0, 0, 0, 56,197, 29, 2, + 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,198, 29, 2, 0, 0, 0, 0,168,197, 29, 2, + 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,198, 29, 2, 0, 0, 0, 0, 24,198, 29, 2, + 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,199, 29, 2, 0, 0, 0, 0,136,198, 29, 2, + 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,199, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,199, 29, 2, 0, 0, 0, 0,248,198, 29, 2, + 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,199, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,200, 29, 2, 0, 0, 0, 0,104,199, 29, 2, + 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,200, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,200, 29, 2, 0, 0, 0, 0,216,199, 29, 2, + 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184,200, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0, 72,200, 29, 2, + 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,200, 29, 2, + 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,152,201, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,205, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,184, 16, 30, 2, 0, 0, 0, 0,184, 16, 30, 2, + 0, 0, 0, 0,136,202, 29, 2, 0, 0, 0, 0,248,203, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 45,166, 3, 0, 0, 0, 0, 88,108,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,202, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,203, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,203, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,202, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, +129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,205, 29, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0,152,201, 29, 2, 0, 0, 0, 0,136,191, 29, 2, + 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0,168,212, 2, 2, 0, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0, 88,206, 29, 2, + 0, 0, 0, 0,200,207, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 26, 89, 3, + 0, 0, 0, 0, 56,243, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,206, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0,200,207, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,207, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,206, 29, 2, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, + 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 24, 30, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72, 43, 45, 21, 1, 0, 0, 0, -152, 5, 45, 21, 1, 0, 0, 0,152,242, 44, 21, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0,216,241, 44, 21, 1, 0, 0, 0, -248,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, - 1, 1, 23, 3,172, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 41, 45, 21, 1, 0, 0, 0, -200, 41, 45, 21, 1, 0, 0, 0,248, 30, 45, 21, 1, 0, 0, 0,184, 36, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -248, 30, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104, 32, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 22, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 23, 3, 26, 0, 23, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -104, 32, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216, 33, 45, 21, 1, 0, 0, 0,248, 30, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,146, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,104,205, 29, 2, + 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1, +141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0, 40,214, 29, 2, 0, 0, 0, 0, 40,214, 29, 2, + 0, 0, 0, 0, 72,211, 29, 2, 0, 0, 0, 0,184,212, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 64, 89, 3, 0, 0, 0, 0, 88, 74, 78, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,211, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,212, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -216, 33, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 72, 35, 45, 21, 1, 0, 0, 0,104, 32, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,212, 29, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,211, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, + 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0,248,189,176, 3, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 88, 75, 3, 0, 0, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 88, 75, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,205,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 72, 35, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184, 36, 45, 21, 1, 0, 0, 0,216, 33, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0, -163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -184, 36, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 35, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,205,182, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 84, 75, 3, + 0, 0, 0, 0, 88, 88, 75, 3, 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, + 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 3,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 84, 75, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 71, 1, 2, 0, 0, 0, 0, 8,205,182, 3, 0, 0, 0, 0,152, 56,190, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 38, 45, 21, 1, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, - 40, 38, 45, 21, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 36,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,118,171, 98, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, - 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, - 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, - 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0, -110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 3, 6,158, 63, 92,224,143,191,244,250, 39,191, 8,165, 39,191, -170,164,167, 63,132,167,141, 63,180,164, 28, 63,149, 84, 28, 63, 0,127,159,188,126,242, 74, 64, 8,108,228,190, 50,247,227,190, -221,212, 27,191, 39,197,170,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62, 12,250,206, 62, 0,247,196,187, 0, 0,150,180, -203,132,183,189, 61,175,180, 61,245,110,129, 62, 0, 0,120, 51,211,120, 21,194,144, 5, 2, 66, 9,136,213,193,193,214,159,192, -219, 38, 19, 66,196,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, - 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, - 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 3, 6,158, 63, 92,224,143,191,244,250, 39,191, 8,165, 39,191, -170,164,167, 63,132,167,141, 63,180,164, 28, 63,149, 84, 28, 63, 0,127,159,188,126,242, 74, 64, 8,108,228,190, 50,247,227,190, -221,212, 27,191, 39,197,170,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, -214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,162, 30,184, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 71, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 94, 68, 2, + 0, 0, 0, 0, 88, 84, 75, 3, 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, + 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 94, 68, 2, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,132, 68, 2, 0, 0, 0, 0,248, 71, 1, 2, 0, 0, 0, 0,136, 62,190, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200, 41, 45, 21, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,132, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72, 55, 82, 3, + 0, 0, 0, 0,248, 94, 68, 2, 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, +108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, - 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 55, 82, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56,210,184, 3, 0, 0, 0, 0,136,132, 68, 2, 0, 0, 0, 0,200, 74,190, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 72, 43, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120, 48, 45, 21, 1, 0, 0, 0, - 24, 30, 45, 21, 1, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0,152,239, 44, 21, 1, 0, 0, 0, 24,241, 44, 21, 1, 0, 0, 0, -216,241, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,173, 1, 0, 0, 69, 4, 0, 0, - 16, 16, 24, 6,153, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 47, 45, 21, 1, 0, 0, 0, - 8, 47, 45, 21, 1, 0, 0, 0, 40, 44, 45, 21, 1, 0, 0, 0,152, 45, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 40, 44, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,152, 45, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,173, 1, 0, 0,198, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -152, 45, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 44, 45, 21, 1, 0, 0, 0, - 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68,240,130,178,193, 24,148, 5, 68, - 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,126, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,126, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, -236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,127, 2, 7, 6,109, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,199, 1, 0, 0, 69, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,127, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,210,184, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,178, 61, 3, + 0, 0, 0, 0, 72, 55, 82, 3, 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0, - 8, 47, 45, 21, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,178, 61, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168,107, 82, 3, 0, 0, 0, 0, 56,210,184, 3, 0, 0, 0, 0,152, 79,190, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,246, 98, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,120, 48, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 43, 45, 21, 1, 0, 0, 0, 24,238, 44, 21, 1, 0, 0, 0,120,241, 44, 21, 1, 0, 0, 0, 56,242, 44, 21, 1, 0, 0, 0, -152,242, 44, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, - 6, 6, 0, 3,172, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,140, 47, 4, 1, 0, 0, 0, - 56,140, 47, 4, 1, 0, 0, 0, 88, 49, 45, 21, 1, 0, 0, 0, 56, 52, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 88, 49, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200, 50, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,107, 82, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,104, 10,180, 3, + 0, 0, 0, 0,200,178, 61, 3, 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 10,180, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0,168,107, 82, 3, 0, 0, 0, 0,200, 85,190, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -200, 50, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56, 52, 45, 21, 1, 0, 0, 0, 88, 49, 45, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 10,180, 3, 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 56, 52, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 50, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,146,190, 0,128,164, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,214, 29, 2, + 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, - 56,140, 47, 4, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, - 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,152,181, 78, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,228, 29, 2, + 0, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, + 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, +139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0, 56,227, 29, 2, + 0, 0, 0, 0, 56,227, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, 0, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,137, 82, 3, 0, 0, 0, 0,152, 19,181, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 88,216, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,217, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,200,217, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,219, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 56,219, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,220, 29, 2, 0, 0, 0, 0,200,217, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,168,220, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 56,219, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0, +112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 24,222, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,220, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,223, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 3, 0, 0,136,223, 29, 2, 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, + 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, + 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, + 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193, +193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, + 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -887,24 +1056,95 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, + 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 56,227, 29, 2, + 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,228, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,234, 29, 2, + 0, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, + 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0, +233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,247, 2, 2, 0, 0, 0, 0,136,232, 29, 2, + 0, 0, 0, 0,136,232, 29, 2, 0, 0, 0, 0,168,229, 29, 2, 0, 0, 0, 0, 24,231, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,128,181, 3, 0, 0, 0, 0, 40,155,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,168,229, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,231, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0, +166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,249, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 24,231, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,229, 29, 2, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68, 96,240,187, 64, + 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, + 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, + 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0, +233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,248, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 48, 1, 0, 0,136,232, 29, 2, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,234, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,228, 29, 2, 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,168,190, 29, 2, + 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, +139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,238, 2, 2, 0, 0, 0, 0, 72,239, 29, 2, + 0, 0, 0, 0, 72,239, 29, 2, 0, 0, 0, 0,248,234, 29, 2, 0, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176,178, 3, 0, 0, 0, 0,216,134,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,248,234, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104,236, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65, 0,192, 64, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3, 26, 0, 4, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,246, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,104,236, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0,248,234, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,240, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,216,237, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,236, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, + 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 33, 0, 0, 72,239, 29, 2, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -998,7 +1238,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1035,6 +1274,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1128,2564 +1368,2849 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 55, 45, 21, 1, 0, 0, 0, -104, 59, 45, 21, 1, 0, 0, 0,200, 59, 45, 21, 1, 0, 0, 0, 56, 67, 45, 21, 1, 0, 0, 0,168, 67, 45, 21, 1, 0, 0, 0, -120,174, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 55, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -168, 55, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,168, 55, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8, 56, 45, 21, 1, 0, 0, 0, - 72, 55, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 8, 56, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104, 56, 45, 21, 1, 0, 0, 0,168, 55, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 16, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 56, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0, 8, 56, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 40, 57, 45, 21, 1, 0, 0, 0,104, 56, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, -200, 56, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7,245, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -136, 57, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 6,245, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -168, 58, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 6, 72, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0, - 72, 58, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 72, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 8, 59, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 6,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 59, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 56, 60, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 55, 45, 21, 1, 0, 0, 0, 8, 56, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 60, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -168, 60, 45, 21, 1, 0, 0, 0,200, 59, 45, 21, 1, 0, 0, 0,168, 55, 45, 21, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 60, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 24, 61, 45, 21, 1, 0, 0, 0, 56, 60, 45, 21, 1, 0, 0, 0, 8, 56, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 61, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -136, 61, 45, 21, 1, 0, 0, 0,168, 60, 45, 21, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 61, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -248, 61, 45, 21, 1, 0, 0, 0, 24, 61, 45, 21, 1, 0, 0, 0, 72, 55, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 61, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -104, 62, 45, 21, 1, 0, 0, 0,136, 61, 45, 21, 1, 0, 0, 0,104, 56, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 62, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -216, 62, 45, 21, 1, 0, 0, 0,248, 61, 45, 21, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 62, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 72, 63, 45, 21, 1, 0, 0, 0,104, 62, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 63, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -184, 63, 45, 21, 1, 0, 0, 0,216, 62, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 63, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 40, 64, 45, 21, 1, 0, 0, 0, 72, 63, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 64, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -152, 64, 45, 21, 1, 0, 0, 0,184, 63, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 64, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 8, 65, 45, 21, 1, 0, 0, 0, 40, 64, 45, 21, 1, 0, 0, 0,104, 56, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 65, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -120, 65, 45, 21, 1, 0, 0, 0,152, 64, 45, 21, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 65, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -232, 65, 45, 21, 1, 0, 0, 0, 8, 65, 45, 21, 1, 0, 0, 0, 72, 55, 45, 21, 1, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 65, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 88, 66, 45, 21, 1, 0, 0, 0,120, 65, 45, 21, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 66, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -200, 66, 45, 21, 1, 0, 0, 0,232, 65, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 66, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 56, 67, 45, 21, 1, 0, 0, 0, 88, 66, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 67, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 45, 21, 1, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 67, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -104, 71, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0,168, 55, 45, 21, 1, 0, 0, 0, - 8, 56, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0, -246, 3, 0, 0, 16, 4, 0, 0, 7, 7,121, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,223, 45, 21, 1, 0, 0, 0,104,223, 45, 21, 1, 0, 0, 0,136, 68, 45, 21, 1, 0, 0, 0,248, 69, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,136, 68, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248, 69, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,159, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,239, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,121, 7, - 26, 0,121, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0, -246, 3, 0, 0, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,248, 69, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 68, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,237, 68, - 0, 0, 0, 0, 0, 0, 0, 64,104, 7, 0, 0,121, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,103, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,121, 7, - 2, 0,104, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 4, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,104, 71, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,164, 45, 21, 1, 0, 0, 0, -168, 67, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, -104, 56, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 71, 3, 0, 0, - 4, 4, 60, 1, 72, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,162, 45, 21, 1, 0, 0, 0, -232,162, 45, 21, 1, 0, 0, 0, 72, 72, 45, 21, 1, 0, 0, 0,184, 73, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 72, 72, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184, 73, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 1, 31, 0, 60, 1, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,120, 7, 0, 0, 41, 3, 0, 0, 71, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -184, 73, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 72, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,158, 67, 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,149, 67, 0, 64, 74,196, 0, 0, 0, 0, - 43, 1, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 60, 1, 41, 3, 43, 1, 41, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 41, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, -232,162, 45, 21, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40,164, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, - 8,169, 45, 21, 1, 0, 0, 0,104, 71, 45, 21, 1, 0, 0, 0, 72, 55, 45, 21, 1, 0, 0, 0, 8, 59, 45, 21, 1, 0, 0, 0, -104, 59, 45, 21, 1, 0, 0, 0,136, 57, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, - 0, 0, 0, 0,115, 0, 0, 0, 15, 15, 60, 6,116, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,167, 45, 21, 1, 0, 0, 0,232,167, 45, 21, 1, 0, 0, 0, 8,165, 45, 21, 1, 0, 0, 0,120,166, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 8,165, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120,166, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,199, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 6, - 26, 0, 60, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 6, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,120,166, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,165, 45, 21, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, 18, 0, 0, 0, 89, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 60, 6, - 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, - 26, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 6, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,232,167, 45, 21, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,169, 45, 21, 1, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,120,174, 45, 21, 1, 0, 0, 0, 40,164, 45, 21, 1, 0, 0, 0, 72, 58, 45, 21, 1, 0, 0, 0, -232, 57, 45, 21, 1, 0, 0, 0, 40, 57, 45, 21, 1, 0, 0, 0,168, 58, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 6, 0, 0,120, 7, 0, 0, 73, 3, 0, 0,244, 3, 0, 0, 3, 3, 60, 1,172, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,172, 45, 21, 1, 0, 0, 0,200,172, 45, 21, 1, 0, 0, 0,232,169, 45, 21, 1, 0, 0, 0, - 88,171, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,169, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 88,171, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 6, 0, 0,120, 7, 0, 0,219, 3, 0, 0,244, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,171, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232,169, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,232,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,149, 67, 0, 0, 0,195, 0, 0, 0, 0, 43, 1, 0, 0, 60, 1, 0, 0, 18, 0, 0, 0,145, 0, 0, 0, - 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 18, 0, 0, 0,145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, - 0, 0, 12, 4, 6, 0, 60, 1,146, 0, 43, 1,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 6, 0, 0,120, 7, 0, 0, 73, 3, 0, 0,218, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 1,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,200,172, 45, 21, 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,174, 45, 21, 1, 0, 0, 0, - 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, - 40,174, 45, 21, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0, 56, 82, 53, 4, 1, 0, 0, 0, - 68, 65, 84, 65,160,178, 0, 0, 56, 82, 53, 4, 1, 0, 0, 0,219, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -136,233, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 40, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -168,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,239, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -136,244, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 46, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 24,229, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 72,228, 46, 21, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, - 88, 0, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 3, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -232, 6, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 24, 12, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 72, 17, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -120, 22, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -168, 27, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -216, 32, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 8, 38, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -104, 48, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -152, 53, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -200, 58, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -248, 63, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 40, 69, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 88, 74, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -136, 79, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -184, 84, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -232, 89, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 24, 95, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 72,100, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -120,105, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -216,115, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 8,121, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 56,126, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -104,131, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -152,136, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -200,141, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, -248,146, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 40,152, 47, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 72,228, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, - 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0, - 56,182, 47, 4, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 72,139, 44, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,236, 44, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -248,236, 44, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 40, 54, 45, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 88, 57, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, - 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, - 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, - 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, - 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, - 56,171, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -136,244, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200,136, 44, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, -200,136, 44, 21, 1, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, -136,233, 46, 21, 1, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -120,174, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,169, 45, 21, 1, 0, 0, 0, - 8, 59, 45, 21, 1, 0, 0, 0,200, 56, 45, 21, 1, 0, 0, 0,232, 57, 45, 21, 1, 0, 0, 0,104, 59, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0,117, 0, 0, 0,244, 3, 0, 0, 1, 1, 60, 6,128, 3, 1, 0, - 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,221, 45, 21, 1, 0, 0, 0,232,221, 45, 21, 1, 0, 0, 0, - 88,175, 45, 21, 1, 0, 0, 0,216,216, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,175, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,200,176, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 6, 26, 0, 60, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0,117, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,176, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,248,200, 45, 21, 1, 0, 0, 0, 88,175, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, - 0,128, 35,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 35,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0,141, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0,141, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,142, 2,143, 0,142, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,103, 1, 0, 0,244, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 0,142, 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,200, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 8,204, 45, 21, 1, 0, 0, 0,200,176, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, - 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,143, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,204, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,216,216, 45, 21, 1, 0, 0, 0,248,200, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, - 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0,180, 0, 0, 0, - 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 59, 6, 0, 0, 59, 6, 0, 0,143, 0, 0, 0,244, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,216, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,204, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 59, 6, 0, 0,143, 0, 0, 0,244, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,156, 5,102, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72,218, 45, 21, 1, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, 72,218, 45, 21, 1, 0, 0, 0, -156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 20,231, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, - 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192, -115,208,213, 64, 0, 0,128, 63,178,157,229, 62,115,171, 57,191,116,169, 81,191,184,158, 81,191,117, 90,127, 63, 60,253,178, 62, -158, 53,185, 62, 35, 44,185, 62,145,180,109,188,205,211,206, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 33,171,108, 65, 33,210,111, 65,190,240,191, 62, 90,116, 85, 63, 0,179, 70,188, 0, 0,240, 50,192,223, 99,190,200,172,219, 61, - 59,215,253, 62, 0, 0, 32,178, 57,113,117,194, 25,209,216, 65, 27,159, 5,194, 52,252,159,192, 79, 55,114, 66,130,247,213,193, -120,221, 3, 66,101, 4,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33,210,111,193, 0, 0,128, 63,178,157,229, 62,115,171, 57,191,116,169, 81,191,184,158, 81,191,117, 90,127, 63, 60,253,178, 62, -158, 53,185, 62, 35, 44,185, 62,145,180,109,188,205,211,206, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 33,171,108, 65, 33,210,111, 65,199, 58,183, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 58,183, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 58,183, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65, 33,210,111, 65, - 0, 0, 0, 0, 0, 0, 0, 0,126,231,166, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, +216, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0,184,184, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 18, 30, 2, + 0, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0,136, 31, 30, 2, + 0, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72, 19, 30, 2, + 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 19, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8, 21, 30, 2, + 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 21, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 64, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200, 22, 30, 2, + 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 23, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 6,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136, 31, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, + 1, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, + 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,216, 3, 3, 2, + 0, 0, 0, 0, 40,243, 30, 2, 0, 0, 0, 0, 40,243, 30, 2, 0, 0, 0, 0,120, 32, 30, 2, 0, 0, 0, 0,232, 33, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 17,185, 3, 0, 0, 0, 0, 24, 2,190, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 32, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232, 33, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, + 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, + 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, + 0, 0, 0, 0,248,168,180, 3, 0, 0, 0, 0,248,168,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56,225,176, 3, 0, 0, 0, 0,200,180, 78, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 33, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120, 32, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,111, 69, 0, 0, 0, 0, 0, 0, 0, 64,240, 14, 0, 0, 1, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,239, 14, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, + 10, 0, 1, 15, 2, 0,240, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104, 40, 30, 2, + 0, 0, 0, 0,136, 31, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, + 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 63, 3, 0, 0, 4, 4, 58, 1, 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,120,255, 2, 2, 0, 0, 0, 0, 40, 39, 30, 2, + 0, 0, 0, 0, 40, 39, 30, 2, 0, 0, 0, 0, 72, 36, 30, 2, 0, 0, 0, 0,184, 37, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,146, 79, 3, 0, 0, 0, 0,136,139, 68, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 72, 36, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184, 37, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,156, 67, 0, 0,200, 65, 0,128,156, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 58, 1, 26, 0, 58, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 38, 3, 0, 0, + 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 1, 26, 0, 3, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 24,111,119, 3, + 0, 0, 0, 0, 24,111,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 43,186, 3, + 0, 0, 0, 0, 72,109, 82, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,184, 37, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 36, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 67, 0,128, 73,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 67, 0,128, 73,196, + 0, 0, 0, 0, 41, 1, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 58, 1, 38, 3, 41, 1, + 38, 3, 0, 0,168,217, 62, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 1, 38, 3, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 88,225,188, 3, + 0, 0, 0, 0,136, 2, 64, 3, 0, 0, 0, 0,152,108, 74, 3, 0, 0, 0, 0,200, 54, 89, 3, 0, 0, 0, 0,168,126,184, 3, + 0, 0, 0, 0,216, 66, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,152,108, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,126, 74, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 41, 1, 36, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,126, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,152,108, 74, 3, 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 85,152,137, 66, -113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,232,221, 45, 21, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 56,182, 47, 4, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,184,157, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,162, 74, 3, 0, 0, 0, 0, 8,126, 74, 3, + 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 41, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, -232,223, 45, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 40, 54, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, - 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,225, 45, 21, 1, 0, 0, 0, -232,229, 45, 21, 1, 0, 0, 0, 72,230, 45, 21, 1, 0, 0, 0, 8,239, 45, 21, 1, 0, 0, 0,120,239, 45, 21, 1, 0, 0, 0, - 72, 50, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,162, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,225, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -104,225, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,104,225, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,225, 45, 21, 1, 0, 0, 0, - 8,225, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -200,225, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,226, 45, 21, 1, 0, 0, 0,104,225, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,226, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,136,226, 45, 21, 1, 0, 0, 0,200,225, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,226, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -232,226, 45, 21, 1, 0, 0, 0, 40,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0, -136,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 72,227, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,227, 45, 21, 1, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,227, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 6,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -104,228, 45, 21, 1, 0, 0, 0,168,227, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,228, 45, 21, 1, 0, 0, 0, - 8,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -200,228, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,136,229, 45, 21, 1, 0, 0, 0,200,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,229, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -232,229, 45, 21, 1, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,184, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,230, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,230, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,225, 45, 21, 1, 0, 0, 0,200,225, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,230, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,231, 45, 21, 1, 0, 0, 0, 72,230, 45, 21, 1, 0, 0, 0, -104,225, 45, 21, 1, 0, 0, 0,136,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 40,231, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,231, 45, 21, 1, 0, 0, 0,184,230, 45, 21, 1, 0, 0, 0, -200,225, 45, 21, 1, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -152,231, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,232, 45, 21, 1, 0, 0, 0, 40,231, 45, 21, 1, 0, 0, 0, -136,226, 45, 21, 1, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 8,232, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,232, 45, 21, 1, 0, 0, 0,152,231, 45, 21, 1, 0, 0, 0, -136,226, 45, 21, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -120,232, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,232, 45, 21, 1, 0, 0, 0, 8,232, 45, 21, 1, 0, 0, 0, - 72,227, 45, 21, 1, 0, 0, 0,168,227, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -232,232, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,233, 45, 21, 1, 0, 0, 0,120,232, 45, 21, 1, 0, 0, 0, - 40,226, 45, 21, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,233, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,233, 45, 21, 1, 0, 0, 0,232,232, 45, 21, 1, 0, 0, 0, -168,227, 45, 21, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,233, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,234, 45, 21, 1, 0, 0, 0, 88,233, 45, 21, 1, 0, 0, 0, - 8,225, 45, 21, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,234, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,234, 45, 21, 1, 0, 0, 0,200,233, 45, 21, 1, 0, 0, 0, - 8,225, 45, 21, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,234, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,235, 45, 21, 1, 0, 0, 0, 56,234, 45, 21, 1, 0, 0, 0, -232,226, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,235, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,235, 45, 21, 1, 0, 0, 0,168,234, 45, 21, 1, 0, 0, 0, - 40,226, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,235, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,235, 45, 21, 1, 0, 0, 0, 24,235, 45, 21, 1, 0, 0, 0, -168,227, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,235, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,236, 45, 21, 1, 0, 0, 0,136,235, 45, 21, 1, 0, 0, 0, -200,228, 45, 21, 1, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,236, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,236, 45, 21, 1, 0, 0, 0,248,235, 45, 21, 1, 0, 0, 0, -232,226, 45, 21, 1, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -216,236, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,237, 45, 21, 1, 0, 0, 0,104,236, 45, 21, 1, 0, 0, 0, -104,228, 45, 21, 1, 0, 0, 0,200,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,237, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,237, 45, 21, 1, 0, 0, 0,216,236, 45, 21, 1, 0, 0, 0, - 72,227, 45, 21, 1, 0, 0, 0,136,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,237, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,238, 45, 21, 1, 0, 0, 0, 72,237, 45, 21, 1, 0, 0, 0, -200,228, 45, 21, 1, 0, 0, 0,136,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 40,238, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,238, 45, 21, 1, 0, 0, 0,184,237, 45, 21, 1, 0, 0, 0, -136,226, 45, 21, 1, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -152,238, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,239, 45, 21, 1, 0, 0, 0, 40,238, 45, 21, 1, 0, 0, 0, - 40,229, 45, 21, 1, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 8,239, 45, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,238, 45, 21, 1, 0, 0, 0, -136,229, 45, 21, 1, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -120,239, 45, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,243, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,226, 45, 21, 1, 0, 0, 0,104,225, 45, 21, 1, 0, 0, 0,200,225, 45, 21, 1, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 56, 46, 21, 1, 0, 0, 0,216, 56, 46, 21, 1, 0, 0, 0, - 88,240, 45, 21, 1, 0, 0, 0,200,241, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,240, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,200,241, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,133, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,241, 45, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,240, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,243, 45, 21, 1, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,184, 11, 46, 21, 1, 0, 0, 0,120,239, 45, 21, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, -168,227, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, 40,226, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 4, 4, 96, 1,184, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 10, 46, 21, 1, 0, 0, 0,120, 10, 46, 21, 1, 0, 0, 0, 24,244, 45, 21, 1, 0, 0, 0, -136,245, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,244, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, -136,245, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 6, 0, 0,128, 7, 0, 0,153, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,245, 45, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24,244, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,175, 67, 0,128, 86,196, 0, 0, 0, 0, - 0, 0, 0, 0,255,127,167, 67,255,127,204,195, 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0,152, 1, 0, 0, - 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0,152, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0, 96, 1,153, 1, 79, 1,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 1,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 10, 46, 21, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140,254, 41, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 66, 75, 3, 0, 0, 0, 0, 24,162, 74, 3, + 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 41, 1, 58, 0, 20, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -184, 11, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24, 19, 46, 21, 1, 0, 0, 0, 56,243, 45, 21, 1, 0, 0, 0, - 8,225, 45, 21, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0,168,227, 45, 21, 1, 0, 0, 0, 8,228, 45, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 17, 17, 32, 6,184, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 18, 46, 21, 1, 0, 0, 0,136, 18, 46, 21, 1, 0, 0, 0, -152, 12, 46, 21, 1, 0, 0, 0, 24, 17, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 12, 46, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 8, 14, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 66, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 14, 46, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 24, 17, 46, 21, 1, 0, 0, 0,152, 12, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, - 0, 0,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,207,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, - 0, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 0, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,158, 1,203, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,220, 0,158, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 17, 46, 21, 1, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 14, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, - 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,188,159,235,194,239,231,178, 67, 51, 5, 0, 0, 68, 5, 0, 0, - 18, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, - 18, 0, 0, 0,157, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, - 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,158, 1, 51, 5,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34,254, 41, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,136, 18, 46, 21, 1, 0, 0, 0, -175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24, 19, 46, 21, 1, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,184, 25, 46, 21, 1, 0, 0, 0,184, 11, 46, 21, 1, 0, 0, 0,200,228, 45, 21, 1, 0, 0, 0, - 40,229, 45, 21, 1, 0, 0, 0,232,226, 45, 21, 1, 0, 0, 0,104,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 5, 0, 0,128, 7, 0, 0,185, 1, 0, 0, 99, 4, 0, 0, 9, 9, 64, 2,171, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 22, 46, 21, 1, 0, 0, 0,216, 22, 46, 21, 1, 0, 0, 0,248, 19, 46, 21, 1, 0, 0, 0, -104, 21, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 19, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, -104, 21, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 16, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,181, 67, 0, 0,200, 65, 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 64, 2, 26, 0, 64, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 5, 0, 0,128, 7, 0, 0,185, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 82, 75, 3, 0, 0, 0, 0,168, 66, 75, 3, + 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 41, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 21, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 19, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, - 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,118, 63, 20, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 2, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, - 0, 0, 0, 4, 10, 0, 64, 2,145, 2, 64, 2,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 5, 0, 0,128, 7, 0, 0,211, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 2,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 82, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,184, 86, 75, 3, 0, 0, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,216, 22, 46, 21, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,242,253, 41, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,184, 86, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 90, 75, 3, 0, 0, 0, 0,184, 82, 75, 3, + 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 41, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 90, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,216,101, 75, 3, 0, 0, 0, 0,184, 86, 75, 3, 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,194,253, 41, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,216,101, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,155, 75, 3, 0, 0, 0, 0,184, 90, 75, 3, + 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 41, 1,130, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,155, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,216,101, 75, 3, 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16,253, 41, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,184, 25, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72, 50, 46, 21, 1, 0, 0, 0, - 24, 19, 46, 21, 1, 0, 0, 0,136,229, 45, 21, 1, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0, 40,229, 45, 21, 1, 0, 0, 0, -200,228, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,185, 1, 0, 0, 99, 4, 0, 0, - 1, 1,251, 3,171, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 48, 46, 21, 1, 0, 0, 0, -200, 48, 46, 21, 1, 0, 0, 0,152, 26, 46, 21, 1, 0, 0, 0,184, 43, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -152, 26, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8, 28, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216, 75, 3, 0, 0, 0, 0,184,155, 75, 3, + 0, 0, 0, 0, 56, 96,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, +110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, +110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,185, 1, 0, 0,210, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 8, 28, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120, 29, 46, 21, 1, 0, 0, 0,152, 26, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,211, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,145, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,216, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,104, 99,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -120, 29, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232, 30, 46, 21, 1, 0, 0, 0, 8, 28, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,211, 1, 0, 0,211, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -232, 30, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184, 43, 46, 21, 1, 0, 0, 0,120, 29, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195, -163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,211, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,200,158, 61, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,146, 74, 3, 0, 0, 0, 0,216,216, 75, 3, + 0, 0, 0, 0,216,101,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, +105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, +105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -184, 43, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 30, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,146, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0, 72,108,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,211, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200, 54, 89, 3, 0, 0, 0, 0, 72,146, 74, 3, + 0, 0, 0, 0,136,111,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, +112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, +112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 45, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, - 40, 45, 46, 21, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,219, 69,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18, 3,187, 0, 0, 0,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,219, 69,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,153,133, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,219, 69,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 54, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,120,114,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0, 40, 39, 30, 2, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,216,238, 63, 3, 0, 0, 0, 0,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104, 40, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, + 1, 0, 0, 0, 88, 45, 30, 2, 0, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, + 0, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 6, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, 15, 15, 68, 6,116, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, + 0, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0,200, 42, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 58, 68, 2, 0, 0, 0, 0,168, 84,119, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200, 42, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,128,200, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,200, 68, + 0, 0,200, 65, 0, 96,200, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0, 68, 6, 26, 0, 68, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 26, 0, + 5, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, + 0, 0, 0, 0, 56, 13,122, 3, 0, 0, 0, 0, 56, 13,122, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 68, 68, 2, 0, 0, 0, 0,152, 76, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 42, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, + 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 18, 0, 0, 0, 89, 0, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0, 68, 6, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 6, 0, 0, 26, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 90, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 89, 68, 2, 0, 0, 0, 0,168,176,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 45, 30, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0,104, 40, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, + 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,233, 3, 0, 0, 3, 3, 58, 1,169, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 8, 0,168,209, 2, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 72, 46, 30, 2, + 0, 0, 0, 0,184, 47, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 69, 68, 2, + 0, 0, 0, 0,232,252, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 46, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0,184, 47, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,156, 67, 0, 0,200, 65, 0,128,156, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 58, 1, 26, 0, 58, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 1, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,185,188, 3, 0, 0, 0, 0,120,118, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 47, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 46, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 67, 0, 0,250,194, 0, 0, 0, 0, 41, 1, 0, 0, 58, 1, 0, 0, 18, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 18, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, + 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 58, 1,143, 0, 41, 1,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 1,143, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,107, 68, 2, 0, 0, 0, 0, 24,109, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0,166, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 66,180, 3, 0, 0, 0, 0, 56, 66,180, 3, 0, 0, 0, 0,136, 50, 30, 2, + 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0,136, 50, 30, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,232, 50, 30, 2, + 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0,232, 50, 30, 2, 0, 0, 0, 0,219, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, + 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 30, 0,255,255, + 3, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 70, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 72, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 74, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 76, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 78, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 80, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 82, 0, + 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, + 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, + 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, + 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 45, 30, 2, + 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0,117, 0, 0, 0,233, 3, 0, 0, 1, 1, 68, 6, +117, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,168,215, 2, 2, 0, 0, 0, 0,168,241, 30, 2, 0, 0, 0, 0,168,241, 30, 2, + 0, 0, 0, 0,200,230, 30, 2, 0, 0, 0, 0,136,236, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184, 69, 2, 2, 0, 0, 0, 0, 56,183, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,230, 30, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,232, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,200, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,200, 68, 0, 0,200, 65, 0, 96,200, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 6, 26, 0, 68, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0,117, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 26, 0, 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0,184,116,119, 3, 0, 0, 0, 0,184,116,119, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 64, 76, 3, 0, 0, 0, 0,168,110, 68, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,232, 30, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,233, 30, 2, 0, 0, 0, 0,200,230, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 67, 0,192, 32,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,192, 32,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0,130, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0,130, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,131, 2,143, 0,131, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,103, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,131, 2, 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 56,130, 79, 3, 0, 0, 0, 0, 56,130, 79, 3, + 0, 0, 0, 0, 56, 34, 79, 3, 0, 0, 0, 0, 56, 34, 79, 3, 0, 0, 0, 0, 56,112, 68, 2, 0, 0, 0, 0,216, 33, 90, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 34, 79, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55,194, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, + 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, + 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,233, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,235, 30, 2, + 0, 0, 0, 0, 56,232, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0, +227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0,143, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, + 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, + 0, 0, 0, 0,120,170,186, 3, 0, 0, 0, 0,120,170,186, 3, 0, 0, 0, 0,104,220, 79, 3, 0, 0, 0, 0,104,220, 79, 3, + 0, 0, 0, 0,152, 96, 68, 2, 0, 0, 0, 0,152,121, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,220, 79, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,224, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, + 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255, +144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,235, 30, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,236, 30, 2, 0, 0, 0, 0,168,233, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0, +180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 67, 6, 0, 0,143, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,236, 30, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,235, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 67, 6, 0, 0,143, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 5, 91, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4,180, 3, 0, 0, 0, 0,136, 69,191, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,237, 30, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,248,237, 30, 2, + 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +234, 87,235, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190, +142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, + 51,120,173,192,115,208,213, 64, 0, 0,128, 63,177,157,229, 62, 77, 24, 61,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, +138, 74,182, 62,158, 53,185, 62, 35, 44,185, 62,143,180,109,188,147,164,210, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 39,240,191, 62,126,116, 85, 63,112,189, 70,188, 0, 0,186,180,244,190, 95,190, + 4,178,215, 61, 46, 62,249, 62, 0, 0,240, 50,197,112,117,194,178,208,216, 65,220,158, 5,194,231,251,159,192,221, 54,114, 66, + 29,247,213,193, 58,221, 3, 66, 25, 4,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,177,157,229, 62, 77, 24, 61,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, +138, 74,182, 62,158, 53,185, 62, 35, 44,185, 62,143,180,109,188,147,164,210, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65, + 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,199,250,165, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200, 48, 46, 21, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, - 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 72, 50, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, 25, 46, 21, 1, 0, 0, 0, 72,227, 45, 21, 1, 0, 0, 0,136,226, 45, 21, 1, 0, 0, 0,232,229, 45, 21, 1, 0, 0, 0, -136,229, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,185, 1, 0, 0, 99, 4, 0, 0, - 3, 3, 68, 1,171, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 54, 46, 21, 1, 0, 0, 0, - 8, 54, 46, 21, 1, 0, 0, 0, 40, 51, 46, 21, 1, 0, 0, 0,152, 52, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 40, 51, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,152, 52, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,185, 1, 0, 0,210, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -152, 52, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 51, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0,128,131, 67, 0, 0,232,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0,192, 31,196, 0, 0, 0, 0, - 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1,145, 2, 51, 1,127, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,211, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, - 8, 54, 46, 21, 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104, 55, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,104, 55, 46, 21, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, - 14, 0, 0, 0, 14, 0, 0, 0,184, 55, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,184, 55, 46, 21, 1, 0, 0, 0, -219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, - 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,233, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56, 40, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 88,239, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,244, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,229, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,228, 46, 21, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, - 56,174, 47, 4, 1, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, -200,134, 46, 21, 1, 0, 0, 0,232,223, 45, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 58, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0,184, 63, 46, 21, 1, 0, 0, 0, -232, 72, 46, 21, 1, 0, 0, 0, 88, 73, 46, 21, 1, 0, 0, 0,168,127, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -120, 58, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 56, 59, 46, 21, 1, 0, 0, 0,120, 58, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 59, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -152, 59, 46, 21, 1, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,152, 59, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, - 56, 59, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -248, 59, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0,152, 59, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 20, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 24, 61, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 20, 4, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, -184, 60, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -120, 61, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 5,144, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -152, 62, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,144, 1, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, - 56, 62, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 68, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -248, 62, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 68, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248, 2, 20, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 63, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 40, 64, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0, 56, 59, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 64, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -152, 64, 46, 21, 1, 0, 0, 0,184, 63, 46, 21, 1, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 64, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 8, 65, 46, 21, 1, 0, 0, 0, 40, 64, 46, 21, 1, 0, 0, 0, 56, 59, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 65, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -120, 65, 46, 21, 1, 0, 0, 0,152, 64, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 65, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -232, 65, 46, 21, 1, 0, 0, 0, 8, 65, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 65, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 88, 66, 46, 21, 1, 0, 0, 0,120, 65, 46, 21, 1, 0, 0, 0,152, 59, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 66, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -200, 66, 46, 21, 1, 0, 0, 0,232, 65, 46, 21, 1, 0, 0, 0,120, 58, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 66, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 56, 67, 46, 21, 1, 0, 0, 0, 88, 66, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 67, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -168, 67, 46, 21, 1, 0, 0, 0,200, 66, 46, 21, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 67, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 24, 68, 46, 21, 1, 0, 0, 0, 56, 67, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 68, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -136, 68, 46, 21, 1, 0, 0, 0,168, 67, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 68, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -248, 68, 46, 21, 1, 0, 0, 0, 24, 68, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 68, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -104, 69, 46, 21, 1, 0, 0, 0,136, 68, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 69, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -216, 69, 46, 21, 1, 0, 0, 0,248, 68, 46, 21, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 69, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 72, 70, 46, 21, 1, 0, 0, 0,104, 69, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 70, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -184, 70, 46, 21, 1, 0, 0, 0,216, 69, 46, 21, 1, 0, 0, 0,152, 59, 46, 21, 1, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 70, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 40, 71, 46, 21, 1, 0, 0, 0, 72, 70, 46, 21, 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 71, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -152, 71, 46, 21, 1, 0, 0, 0,184, 70, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 71, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 8, 72, 46, 21, 1, 0, 0, 0, 40, 71, 46, 21, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 72, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -120, 72, 46, 21, 1, 0, 0, 0,152, 71, 46, 21, 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 72, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -232, 72, 46, 21, 1, 0, 0, 0, 8, 72, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 72, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 72, 46, 21, 1, 0, 0, 0,120, 58, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 73, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, - 24, 77, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0,216, 58, 46, 21, 1, 0, 0, 0, - 56, 59, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 21, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7,108, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,134, 46, 21, 1, 0, 0, 0, 72,134, 46, 21, 1, 0, 0, 0, 56, 74, 46, 21, 1, 0, 0, 0,168, 75, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 56, 74, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 75, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,133, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, - 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -103, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, + 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,168,241, 30, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,168, 75, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 74, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 68, 0, 0, 0, 0, 0, 0, 48, 65, 0, 0, 0, 0, 0, 0,238, 68, - 0, 0, 0, 0, 0, 0,164, 66,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, - 82, 0,112, 7, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 21, 4, 0, 0,102, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, +216, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 72, 17, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, + 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,244, 30, 2, + 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,248,250, 30, 2, 0, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0, 40, 4, 31, 2, + 0, 0, 0, 0,232, 38, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,245, 30, 2, + 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 72,245, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,246, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,247, 30, 2, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,247, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,249, 30, 2, + 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0,200,248, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,249, 30, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,250, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,251, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,251, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,251, 30, 2, 0, 0, 0, 0,248,250, 30, 2, + 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,251, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,252, 30, 2, 0, 0, 0, 0,104,251, 30, 2, + 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,252, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,252, 30, 2, 0, 0, 0, 0,216,251, 30, 2, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184,252, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,253, 30, 2, 0, 0, 0, 0, 72,252, 30, 2, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,253, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,253, 30, 2, 0, 0, 0, 0,184,252, 30, 2, + 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152,253, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,254, 30, 2, 0, 0, 0, 0, 40,253, 30, 2, + 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,254, 30, 2, 0, 0, 0, 0,152,253, 30, 2, + 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,254, 30, 2, 0, 0, 0, 0, 8,254, 30, 2, + 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,255, 30, 2, 0, 0, 0, 0,120,254, 30, 2, + 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,255, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,255, 30, 2, 0, 0, 0, 0,232,254, 30, 2, + 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,255, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 0, 31, 2, 0, 0, 0, 0, 88,255, 30, 2, + 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56, 0, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 0, 31, 2, 0, 0, 0, 0,200,255, 30, 2, + 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168, 0, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 1, 31, 2, 0, 0, 0, 0, 56, 0, 31, 2, + 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 1, 31, 2, 0, 0, 0, 0,168, 0, 31, 2, + 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 1, 31, 2, 0, 0, 0, 0, 24, 1, 31, 2, + 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104, 2, 31, 2, 0, 0, 0, 0,136, 1, 31, 2, + 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104, 2, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 2, 31, 2, 0, 0, 0, 0,248, 1, 31, 2, + 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216, 2, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 3, 31, 2, 0, 0, 0, 0,104, 2, 31, 2, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72, 3, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0,216, 2, 31, 2, + 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 3, 31, 2, + 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 40, 4, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 7, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,168, 45, 31, 2, 0, 0, 0, 0,168, 45, 31, 2, + 0, 0, 0, 0, 24, 5, 31, 2, 0, 0, 0, 0,136, 6, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,223, 78, 3, 0, 0, 0, 0, 72, 85,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 5, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136, 6, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 6, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 5, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0, +129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 7, 31, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0, 40, 4, 31, 2, 0, 0, 0, 0, 88,248, 30, 2, + 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,232, 8, 31, 2, + 0, 0, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,153,179, 3, + 0, 0, 0, 0, 24,112,183, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 8, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 8, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, + 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, +113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, +113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 24, 11, 89, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 87, 89, 3, + 0, 0, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 87, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,184,135, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 24, 77, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,101, 46, 21, 1, 0, 0, 0, - 88, 73, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0,248, 62, 46, 21, 1, 0, 0, 0, -152, 59, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 67, 3, 0, 0, - 4, 4,144, 1, 68, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,100, 46, 21, 1, 0, 0, 0, - 88,100, 46, 21, 1, 0, 0, 0,248, 77, 46, 21, 1, 0, 0, 0,104, 79, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -248, 77, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104, 79, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,184,135, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 40,116,184, 3, 0, 0, 0, 0, 56, 87, 89, 3, + 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 37, 3, 0, 0, 67, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -104, 79, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 77, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0,128,199, 67, 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,191, 67,254, 63, 73,196, 0, 0, 0, 0, -127, 1, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,144, 1, 37, 3,127, 1, 37, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,116,184, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,184,135, 68, 2, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, - 88,100, 46, 21, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 67,119, 3, 0, 0, 0, 0, 40,116,184, 3, + 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,101, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -200,114, 46, 21, 1, 0, 0, 0, 24, 77, 46, 21, 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, 1, 0, 0, 0, -184, 60, 46, 21, 1, 0, 0, 0,216, 61, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0, -145, 1, 0, 0, 19, 4, 0, 0, 1, 1,247, 2,131, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,113, 46, 21, 1, 0, 0, 0, 72,113, 46, 21, 1, 0, 0, 0,120,102, 46, 21, 1, 0, 0, 0, 56,108, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,120,102, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,103, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,247, 2, - 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0, -145, 1, 0, 0,170, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 67,119, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,152,177,187, 3, 0, 0, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,232,103, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88,105, 46, 21, 1, 0, 0, 0, -120,102, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0, -171, 1, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,105, 2, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 88,105, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,106, 46, 21, 1, 0, 0, 0, -232,103, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0, -171, 1, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,152,177,187, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56,180,179, 3, 0, 0, 0, 0,168, 67,119, 3, + 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, +111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,200,106, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,108, 46, 21, 1, 0, 0, 0, - 88,105, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, -171, 1, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,180,179, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,120,149, 78, 3, 0, 0, 0, 0,152,177,187, 3, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 56,108, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,106, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0, -171, 1, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2,105, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,120,149, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8, 22,184, 3, 0, 0, 0, 0, 56,180,179, 3, + 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,109, 46, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 96, 3, 0, 0,168,109, 46, 21, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 56,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,101, 96, 10,191, -222,160, 81,191,184,158, 81,191,117, 90,127, 63,205,101,133, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, 28, 37,154, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, - 0,247, 70,188, 0,192, 32,182,112,221,152,190,163, 93, 19, 62, 51, 77, 42, 63, 0, 32, 4, 54,215,104, 25,196,133,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,101, 96, 10,191, -222,160, 81,191,184,158, 81,191,117, 90,127, 63,205,101,133, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, 28, 37,154, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 22,184, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,120,149, 78, 3, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152, 6, 75, 3, 0, 0, 0, 0, 8, 22,184, 3, + 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, - 72,113, 46, 21, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 6, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,114, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, - 24,121, 46, 21, 1, 0, 0, 0,152,101, 46, 21, 1, 0, 0, 0,120, 58, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0, -216, 61, 46, 21, 1, 0, 0, 0, 24, 61, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0,143, 1, 0, 0, 18, 18,240, 5,144, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,119, 46, 21, 1, 0, 0, 0, 72,119, 46, 21, 1, 0, 0, 0,168,115, 46, 21, 1, 0, 0, 0, 24,117, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,168,115, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,117, 46, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, - 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, - 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 24,117, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168,115, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0, 79, 67, 0, 0, 0, 0, 0,224,187, 68, - 0, 0, 0, 0, 0, 0,187, 67,223, 5, 0, 0,240, 5, 0, 0, 0, 0, 0, 0,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, -118, 1,223, 5,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 26, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,118, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 6, 75, 3, + 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,136,118, 46, 21, 1, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,118, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,248,118, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -136, 1, 0, 0, 72,119, 46, 21, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,118, 46, 21, 1, 0, 0, 0,136,118, 46, 21, 1, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,162, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0,248,174,178, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0,248, 7, 31, 2, + 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6, +140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 51, 3, 2, 0, 0, 0, 0, 72, 18, 31, 2, 0, 0, 0, 0, 72, 18, 31, 2, + 0, 0, 0, 0,248, 13, 31, 2, 0, 0, 0, 0,216, 16, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 86, 68, 2, 0, 0, 0, 0,232,187,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 13, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104, 15, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 54, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 15, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216, 16, 31, 2, 0, 0, 0, 0,248, 13, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0, +220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 53, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 4, 64, 3, 0, 0, 0, 0,232, 4, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 4, 64, 3, + 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,189,191, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 16, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 15, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, + 0,234,179, 68,224,198,182,194,184,177,165, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, + 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, + 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, + 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 52, 3, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 72, 18, 31, 2, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152, 25, 31, 2, + 0, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, + 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0, +233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 42, 3, 2, 0, 0, 0, 0,168, 22, 31, 2, + 0, 0, 0, 0,168, 22, 31, 2, 0, 0, 0, 0,200, 19, 31, 2, 0, 0, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3,190, 3, 0, 0, 0, 0, 56, 18,185, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,200, 19, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0, +166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 45, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 19, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, + 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, + 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0, +233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 43, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 2, 0, 0,168, 22, 31, 2, 0, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0, 42, 2, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 24,121, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,127, 46, 21, 1, 0, 0, 0,200,114, 46, 21, - 1, 0, 0, 0,152, 62, 46, 21, 1, 0, 0, 0,184, 60, 46, 21, 1, 0, 0, 0, 88, 60, 46, 21, 1, 0, 0, 0,248, 62, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, 19, 4, 0, 0, 3, 3,144, 1, -207, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,124, 46, 21, 1, 0, 0, 0,216,124, 46, 21, - 1, 0, 0, 0,248,121, 46, 21, 1, 0, 0, 0,104,123, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,121, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104,123, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, 94, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,123, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,121, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,232,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, 0, 0, 35,195, 0, 0, 0, 0,127, 1, 0, 0, -144, 1, 0, 0, 18, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -126, 1, 0, 0, 18, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,144, 1,181, 0,127, 1,163, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 95, 3, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,216,124, 46, 21, - 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,126, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 56,126, 46, 21, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, - 14, 0, 0, 0,136,126, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,136,126, 46, 21, 1, 0, 0, 0,219, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, - 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 56,174, 47, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,233, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 40, 54, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,239, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,244, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 46, 54, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,229, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,182, 47, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,228, 46, 21, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 56,174, 47, 4, - 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,127, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,121, 46, 21, 1, 0, 0, 0,120, 61, 46, 21, 1, 0, 0, 0,248, 59, 46, 21, 1, 0, 0, 0, 88, 63, 46, 21, - 1, 0, 0, 0, 56, 62, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,145, 1, 0, 0, - 19, 4, 0, 0, 9, 9,248, 2,131, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,131, 46, 21, - 1, 0, 0, 0,104,131, 46, 21, 1, 0, 0, 0,136,128, 46, 21, 1, 0, 0, 0,248,129, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,136,128, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,129, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,248, 2, 26, 0,248, 2, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,145, 1, 0, 0, -170, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,248,129, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,128, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68,113, 44, 49, 67, -200,233,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2,105, 2,248, 2, -105, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,171, 1, 0, 0, - 19, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,105, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 25, 31, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 38, 31, 2, 0, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0, 24,250, 30, 2, + 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, + 0, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 73, 1, 2, + 0, 0, 0, 0,120,141,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 26, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0,248, 27, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,126, 68, 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 27, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 2, 0, 0,104,131, 46, 21, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0, -243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,248, 27, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,104, 29, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, +144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, +144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 30, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184, 33, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,184, 33, 31, 2, 0, 0, 0, 0,156, 0, 0, 0, + 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,251,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, +205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 38, 31, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 25, 31, 2, 0, 0, 0, 0,120,247, 30, 2, + 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,209, 2, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,216, 39, 31, 2, + 0, 0, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,162,166, 3, + 0, 0, 0, 0,248, 39, 76, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 39, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 39, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, + 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, + 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, + 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,166, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0,200,134, 46, 21, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56,171, 46, 21, 1, 0, 0, 0, 88, 57, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,135, 46, 21, 1, 0, 0, 0,136,138, 46, 21, - 1, 0, 0, 0,232,138, 46, 21, 1, 0, 0, 0, 72,143, 46, 21, 1, 0, 0, 0,184,143, 46, 21, 1, 0, 0, 0, 72,154, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,135, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,136, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 72,136, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,136, 46, 21, 1, 0, 0, 0,232,135, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,136, 46, 21, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0, 72,136, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0,168,136, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,137, 46, 21, - 1, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0,104,137, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,138, 46, 21, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,138, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,196, 3, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,138, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,138, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,139, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,136, 46, 21, 1, 0, 0, 0,168,136, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,139, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,139, 46, 21, - 1, 0, 0, 0,232,138, 46, 21, 1, 0, 0, 0, 72,136, 46, 21, 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,139, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,140, 46, 21, - 1, 0, 0, 0, 88,139, 46, 21, 1, 0, 0, 0,168,136, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,140, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,140, 46, 21, - 1, 0, 0, 0,200,139, 46, 21, 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,140, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,141, 46, 21, - 1, 0, 0, 0, 56,140, 46, 21, 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,141, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,141, 46, 21, - 1, 0, 0, 0,168,140, 46, 21, 1, 0, 0, 0,232,135, 46, 21, 1, 0, 0, 0,136,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,141, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,141, 46, 21, - 1, 0, 0, 0, 24,141, 46, 21, 1, 0, 0, 0,232,135, 46, 21, 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,141, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,142, 46, 21, - 1, 0, 0, 0,136,141, 46, 21, 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0,136,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,142, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,142, 46, 21, - 1, 0, 0, 0,248,141, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,142, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,143, 46, 21, - 1, 0, 0, 0,104,142, 46, 21, 1, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0,136,138, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,143, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,142, 46, 21, 1, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,143, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,147, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0, 72,136, 46, 21, 1, 0, 0, 0,168,136, 46, 21, - 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, - 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,170, 46, 21, - 1, 0, 0, 0,184,170, 46, 21, 1, 0, 0, 0,152,144, 46, 21, 1, 0, 0, 0, 8,146, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,173,175, 3, 0, 0, 0, 0,136,173,175, 3, 0, 0, 0, 0, 24, 44, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0, 24, 44, 31, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120, 44, 31, 2, + 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,120, 44, 31, 2, 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, + 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 83, 78, 0, 0, +216, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,184,243, 30, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0, +103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 31, 2, + 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, 0, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, + 0, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56, 48, 31, 2, + 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 48, 31, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 49, 31, 2, + 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 50, 31, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184, 51, 31, 2, + 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 52, 31, 2, + 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,236, 2, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, + 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,232, 53, 31, 2, + 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0, 88, 54, 31, 2, + 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,200, 54, 31, 2, + 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0, 56, 55, 31, 2, + 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,168, 55, 31, 2, + 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0, 24, 56, 31, 2, + 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,136, 56, 31, 2, + 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,248, 56, 31, 2, + 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,104, 57, 31, 2, + 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,216, 57, 31, 2, + 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0, 72, 58, 31, 2, + 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,184, 58, 31, 2, + 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0, 40, 59, 31, 2, + 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,152, 59, 31, 2, + 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0, 8, 60, 31, 2, + 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,120, 60, 31, 2, + 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,232, 60, 31, 2, + 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0, 88, 61, 31, 2, + 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,200, 61, 31, 2, + 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 62, 31, 2, + 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 66, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, + 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, 40,105, 31, 2, 0, 0, 0, 0, 40,105, 31, 2, + 0, 0, 0, 0, 8, 64, 31, 2, 0, 0, 0, 0,120, 65, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 20,181, 3, 0, 0, 0, 0,152,190,176, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 64, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120, 65, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 65, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,239, 68, 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0, +127, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +109, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 66, 31, 2, + 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 71, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, + 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,216, 67, 31, 2, + 0, 0, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,181, 3, + 0, 0, 0, 0,120, 55, 68, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 67, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 67, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196, + 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, +209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, +209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0,232, 95,177, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,113, 78, 3, + 0, 0, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,113, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,144, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8,146, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, - 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 88, 1, 0, 0,184, 24, 76, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 53,119, 3, 0, 0, 0, 0,248,113, 78, 3, + 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 53,119, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,146, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,144, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, - 97, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 88, 1, 0, 0,120,113,119, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216,176, 3, 0, 0, 0, 0,168, 53,119, 3, + 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,216,176, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,104,179,187, 3, 0, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,120,147, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,154, 46, 21, 1, 0, 0, 0,184,143, 46, 21, - 1, 0, 0, 0,232,135, 46, 21, 1, 0, 0, 0,104,137, 46, 21, 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0,136,138, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 69, 4, 0, 0, 6, 6,196, 3, - 70, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 6, 54, 4, 1, 0, 0, 0, 56, 6, 54, 4, - 1, 0, 0, 0, 88,148, 46, 21, 1, 0, 0, 0,216,152, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,148, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,149, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 88, 1, 0, 0,104,179,187, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,182,179, 3, 0, 0, 0, 0,216,216,176, 3, + 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, +111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,182,179, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,104,179,187, 3, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,149, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,152, 46, 21, 1, 0, 0, 0, 88,148, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 91, 67, 0, 96,133,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,127,133,196, 0, 0, 0, 0,203, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 43, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, 43, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, 44, 4,203, 0, 44, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 44, 4, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,152, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,149, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,154,153, 41,191,205,204,212, 63,154,153,149,191,205,204, 10, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 2, 0, 0, 0, 0, 0, 0, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,232, 78,167, 3, 0, 0, 0, 0, 8,182,179, 3, + 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, 56, 6, 54, 4, - 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, -154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 78,167, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,104,186,182, 3, 0, 0, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,104,186,182, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72, 83, 78, 3, 0, 0, 0, 0,232, 78,167, 3, + 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 83, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0,104,186,182, 3, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 83, 78, 3, + 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,162, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0,200, 23, 89, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,248, 71, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0,232, 66, 31, 2, + 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2, + 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,200, 83, 31, 2, 0, 0, 0, 0,200, 83, 31, 2, + 0, 0, 0, 0,232, 72, 31, 2, 0, 0, 0, 0,168, 78, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 16, 79, 3, 0, 0, 0, 0, 40,125,184, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 72, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88, 74, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 74, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200, 75, 31, 2, 0, 0, 0, 0,232, 72, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 75, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56, 77, 31, 2, 0, 0, 0, 0, 88, 74, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 77, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 78, 31, 2, 0, 0, 0, 0,200, 75, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, +180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 78, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 77, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 80, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, 24, 80, 31, 2, + 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, +142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, +111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, +166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,252, 5,136,190, + 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, +158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, +166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3693,21 +4218,273 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, + 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200, 83, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0,248, 71, 31, 2, + 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5, +104, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 55, 3, 2, 0, 0, 0, 0,216, 89, 31, 2, 0, 0, 0, 0,216, 89, 31, 2, + 0, 0, 0, 0, 56, 86, 31, 2, 0, 0, 0, 0,168, 87, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 30,178, 3, 0, 0, 0, 0,200, 57,178, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 86, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 87, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 57, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 87, 31, 2, + 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 86, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,224,189, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0, +240, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +222, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 56, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 89, 31, 2, + 0, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,136, 89, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136, 89, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,216, 89, 31, 2, 0, 0, 0, 0, +178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0,120,113,184, 3, 0, 0, 0, 0,168, 10, 89, 3, 0, 0, 0, 0, 24, 89, 31, 2, 0, 0, 0, 0, + 24, 89, 31, 2, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, +248, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,209, 2, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,152, 92, 31, 2, 0, 0, 0, 0, + 8, 94, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,184,176, 3, 0, 0, 0, 0, + 40, 86, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 92, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 8, 94, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 94, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 92, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, + 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104,220,182, 3, 0, 0, 0, 0,104,220,182, 3, 0, 0, 0, 0,216, 96, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, +216, 96, 31, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56, 97, 31, 2, 0, 0, 0, 0, + 68, 65, 84, 65,224, 0, 0, 0, 56, 97, 31, 2, 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, +152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, +152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +104, 98, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0, +216, 50, 31, 2, 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 42, 3, 2, 0, 0, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, + 88, 99, 31, 2, 0, 0, 0, 0,200,100, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,190, 74, 3, 0, 0, 0, 0,232, 19,184, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 99, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0,200,100, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 45, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,100, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 99, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, + 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, + 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, + 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104, 43, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, +169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0, +231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +136,171, 31, 2, 0, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, +184,114, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +216,106, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 40,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, +184,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +152,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +232,109, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 88,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +200,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, + 72,107, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 56,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, +184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +168,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, +152,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 24,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0, +152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +136,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, +216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +248,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0, +216,106, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +104,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, +120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +216,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0, + 8,109, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 72,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,114, 31, 2, 0, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0, + 40,108, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +184,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0, + 40,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 40,115, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0, + 24,116, 31, 2, 0, 0, 0, 0,136,117, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,171,181, 3, 0, 0, 0, 0,200, 91, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,116, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0,136,117, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,117, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,116, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, + 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0, +152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184,238, 2, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 0, 0, 0, 0, +200,122, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 20,184, 3, 0, 0, 0, 0, + 24, 63,183, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,119, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 88,121, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,246, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,121, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, +200,122, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196, 0, 0, 0, 0, + 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, + 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,240, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 23, 79, 3, 0, 0, 0, 0, +120, 23, 79, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 23, 79, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,243, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +200,122, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,121, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, + 56,124, 31, 2, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, + 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3808,8 +4585,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3839,6 +4614,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3939,83 +4715,21 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72,154, 46, 21, - 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,147, 46, 21, 1, 0, 0, 0,136,138, 46, 21, - 1, 0, 0, 0, 40,138, 46, 21, 1, 0, 0, 0,200,137, 46, 21, 1, 0, 0, 0, 8,137, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 69, 4, 0, 0, 1, 1,178, 3, 70, 4, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,169, 46, 21, 1, 0, 0, 0, 56,169, 46, 21, 1, 0, 0, 0, 40,155, 46, 21, - 1, 0, 0, 0, 40,164, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,155, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,152,156, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,128,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,178, 3, 26, 0,178, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,178, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,156, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,168,159, 46, 21, 1, 0, 0, 0, 40,155, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0,109,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,109,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, -179, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, -179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,180, 3,143, 0,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 0,180, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,159, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,184,162, 46, 21, 1, 0, 0, 0,152,156, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,162, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 40,164, 46, 21, 1, 0, 0, 0,168,159, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, - 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, - 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,118, 7, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,164, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,162, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,101, 4, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 3, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,165, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,152,165, 46, 21, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,161, 58,190, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, - 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, - 0, 0,128, 63,169,255, 27, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,254,123,173, 63,140,225, 88, 62, 26, 63,185, 62, - 35, 44,185, 62,150,126,161,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, - 0, 25, 95, 64, 97, 66,141, 62,204, 23, 29, 63,192, 60, 18,188, 0, 0, 96,179,195, 15,188,190,130, 75, 53, 62,216,125, 81, 63, - 0, 0,192,179,115, 77,100,193, 16,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,246, 46,190,192, 88,106,234, 64, - 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, - 0, 0,128, 63,169,255, 27, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,254,123,173, 63,140,225, 88, 62, 26, 63,185, 62, - 35, 44,185, 62,150,126,161,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, - 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 18,106,224, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4023,383 +4737,482 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 56,169, 46, 21, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, -205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 10, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, 56,171, 46, 21, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,134, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,172, 46, 21, 1, 0, 0, 0,120,176, 46, 21, - 1, 0, 0, 0,216,176, 46, 21, 1, 0, 0, 0, 72,184, 46, 21, 1, 0, 0, 0,184,184, 46, 21, 1, 0, 0, 0, 72,211, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,174, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,172, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,172, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,184,172, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,173, 46, 21, 1, 0, 0, 0, 88,172, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,173, 46, 21, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,173, 46, 21, 1, 0, 0, 0,184,172, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,173, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0, 24,173, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,174, 46, 21, - 1, 0, 0, 0,120,173, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0,216,173, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,174, 46, 21, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,118, 7, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,175, 46, 21, - 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 3, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,176, 46, 21, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 3, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,100, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,176, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,177, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,172, 46, 21, 1, 0, 0, 0, 24,173, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,177, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,177, 46, 21, - 1, 0, 0, 0,216,176, 46, 21, 1, 0, 0, 0,184,172, 46, 21, 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,177, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,178, 46, 21, - 1, 0, 0, 0, 72,177, 46, 21, 1, 0, 0, 0, 24,173, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,178, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,178, 46, 21, - 1, 0, 0, 0,184,177, 46, 21, 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,178, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,179, 46, 21, - 1, 0, 0, 0, 40,178, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,179, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,179, 46, 21, - 1, 0, 0, 0,152,178, 46, 21, 1, 0, 0, 0, 88,172, 46, 21, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,179, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,179, 46, 21, - 1, 0, 0, 0, 8,179, 46, 21, 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,179, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,180, 46, 21, - 1, 0, 0, 0,120,179, 46, 21, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,180, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,180, 46, 21, - 1, 0, 0, 0,232,179, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,180, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,181, 46, 21, - 1, 0, 0, 0, 88,180, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,181, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,181, 46, 21, - 1, 0, 0, 0,200,180, 46, 21, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,181, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,182, 46, 21, - 1, 0, 0, 0, 56,181, 46, 21, 1, 0, 0, 0,120,173, 46, 21, 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,182, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,182, 46, 21, - 1, 0, 0, 0,168,181, 46, 21, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,182, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,182, 46, 21, - 1, 0, 0, 0, 24,182, 46, 21, 1, 0, 0, 0, 88,172, 46, 21, 1, 0, 0, 0,120,173, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,182, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,183, 46, 21, - 1, 0, 0, 0,136,182, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,183, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,183, 46, 21, - 1, 0, 0, 0,248,182, 46, 21, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,183, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,184, 46, 21, - 1, 0, 0, 0,104,183, 46, 21, 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,184, 46, 21, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,183, 46, 21, 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,184, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,188, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0,184,172, 46, 21, 1, 0, 0, 0, 24,173, 46, 21, - 1, 0, 0, 0, 56,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, - 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,219, 46, 21, - 1, 0, 0, 0, 24,219, 46, 21, 1, 0, 0, 0,152,185, 46, 21, 1, 0, 0, 0, 8,187, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,185, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8,187, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, - 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,187, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,185, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, - 97, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,120,188, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,193, 46, 21, 1, 0, 0, 0,184,184, 46, 21, - 1, 0, 0, 0, 88,172, 46, 21, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0,120,173, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,119, 7, -100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,192, 46, 21, 1, 0, 0, 0, 56,192, 46, 21, - 1, 0, 0, 0, 88,189, 46, 21, 1, 0, 0, 0,200,190, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,189, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,190, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,160,137, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,190, 46, 21, - 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,189, 46, 21, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -118, 7, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,119, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +168,157, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, +232,109, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,120,169, 31, 2, 0, 0, 0, 0,120,169, 31, 2, 0, 0, 0, 0, +152,158, 31, 2, 0, 0, 0, 0, 88,164, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 32, 90, 3, 0, 0, 0, 0,136,218,187, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,158, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 8,160, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,160, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0,120,161, 31, 2, 0, 0, 0, 0,152,158, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, + 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 78, 68, 2, 0, 0, 0, 0, 40, 78, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 78, 68, 2, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55,194, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,120,161, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,162, 31, 2, 0, 0, 0, 0, + 8,160, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, + 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,239,178, 3, 0, 0, 0, 0, 72,239,178, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 72,239,178, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,224, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,162, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 88,164, 31, 2, 0, 0, 0, 0,120,161, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,164, 31, 2, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,162, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,165, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,200,165, 31, 2, 0, 0, 0, 0, +156, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, + 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191, +147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62, +216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,247, 46,190,192, + 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, + 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56,192, 46, 21, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,193, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200,202, 46, 21, - 1, 0, 0, 0,120,188, 46, 21, 1, 0, 0, 0,248,174, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0,152,174, 46, 21, - 1, 0, 0, 0,120,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,101, 0, 0, 0, - 15, 2, 0, 0, 8, 8,119, 7,171, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,201, 46, 21, - 1, 0, 0, 0,152,201, 46, 21, 1, 0, 0, 0, 56,194, 46, 21, 1, 0, 0, 0, 40,200, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 56,194, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,195, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,195, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,198, 46, 21, 1, 0, 0, 0, 56,194, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0,128,200,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,200,195, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,145, 1,203, 0, -145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 6, 0, 0,118, 7, 0, 0,127, 0, 0, 0, - 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,145, 1, 0, 0, 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66, +116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,120,169, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,184,198, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,200, 46, 21, 1, 0, 0, 0,168,195, 46, 21, - 1, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, - 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, - 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 6, 0, 0, 15, 2, 0, 0, - 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 40,200, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,198, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,144, 1, 0, 0, 18, 0, 0, 0,154, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,154, 6, 0, 0, 18, 0, 0, 0,144, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,155, 6,145, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 6, 0, 0,127, 0, 0, 0, - 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 6,145, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, +136,171, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0, +120,177, 31, 2, 0, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0, 88,185, 31, 2, 0, 0, 0, 0,200,185, 31, 2, 0, 0, 0, 0, + 24,211, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 24,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, +168,172, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +136,173, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +216,174, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, +104,174, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 72,175, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +152,176, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, + 40,176, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 8,177, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 88,178, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,178, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +200,178, 31, 2, 0, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,178, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 56,179, 31, 2, 0, 0, 0, 0, 88,178, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,179, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +168,179, 31, 2, 0, 0, 0, 0,200,178, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,179, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 24,180, 31, 2, 0, 0, 0, 0, 56,179, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +136,180, 31, 2, 0, 0, 0, 0,168,179, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +248,180, 31, 2, 0, 0, 0, 0, 24,180, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +104,181, 31, 2, 0, 0, 0, 0,136,180, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,181, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +216,181, 31, 2, 0, 0, 0, 0,248,180, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,181, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 72,182, 31, 2, 0, 0, 0, 0,104,181, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,182, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +184,182, 31, 2, 0, 0, 0, 0,216,181, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,182, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 40,183, 31, 2, 0, 0, 0, 0, 72,182, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,183, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +152,183, 31, 2, 0, 0, 0, 0,184,182, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,183, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 8,184, 31, 2, 0, 0, 0, 0, 40,183, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +120,184, 31, 2, 0, 0, 0, 0,152,183, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +232,184, 31, 2, 0, 0, 0, 0, 8,184, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 88,185, 31, 2, 0, 0, 0, 0,120,184, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,185, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232,184, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,185, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +152,189, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0, +136,173, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, +235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, + 8,219, 31, 2, 0, 0, 0, 0, 8,219, 31, 2, 0, 0, 0, 0,184,186, 31, 2, 0, 0, 0, 0, 40,188, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 88,181, 3, 0, 0, 0, 0,136,172,175, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,184,186, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,188, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, + 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, + 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, +235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 40,188, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184,186, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, + 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, + 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,152,189, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0, +200,185, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, +248,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, + 15, 15,127, 7, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,104,193, 31, 2, 0, 0, 0, 0, +104,193, 31, 2, 0, 0, 0, 0,136,190, 31, 2, 0, 0, 0, 0,248,191, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216,243, 74, 3, 0, 0, 0, 0,120,145,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +136,190, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,191, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +248,191, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,190, 31, 2, 0, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,127, 7, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, +104,193, 31, 2, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +120,202, 31, 2, 0, 0, 0, 0,152,189, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, + 72,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, + 93, 0, 0, 0,231, 1, 0, 0, 8, 8,127, 7,139, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46, 3, 2, 0, 0, 0, 0, + 56,201, 31, 2, 0, 0, 0, 0, 56,201, 31, 2, 0, 0, 0, 0,120,195, 31, 2, 0, 0, 0, 0,200,199, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 31,166, 3, 0, 0, 0, 0,168, 83,188, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,120,195, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,196, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, + 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, + 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, + 93, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,152,201, 46, 21, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,232,196, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88,198, 31, 2, 0, 0, 0, 0, +120,195, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0,128,184,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 0,128,184,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, +113, 1,203, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 6, 0, 0,126, 7, 0, 0, +119, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,113, 1, 0, 0, 4, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 49, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 88,198, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,199, 31, 2, 0, 0, 0, 0, +232,196, 31, 2, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, + 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 6, 0, 0, +231, 1, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 48, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,202, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,211, 46, 21, - 1, 0, 0, 0, 88,193, 46, 21, 1, 0, 0, 0,184,175, 46, 21, 1, 0, 0, 0,216,173, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, - 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 3, 0, 0, 17, 2, 0, 0, - 69, 4, 0, 0, 2, 2, 76, 3, 53, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,209, 46, 21, - 1, 0, 0, 0,104,209, 46, 21, 1, 0, 0, 0,168,203, 46, 21, 1, 0, 0, 0,248,207, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,203, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,205, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 83, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 76, 3, 26, 0, 76, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 3, 0, 0, 17, 2, 0, 0, - 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,200,199, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88,198, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,112, 1, 0, 0, 18, 0, 0, 0,162, 6, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 6, 0, 0, 18, 0, 0, 0,112, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,163, 6, +113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 6, 0, 0, +119, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 6,113, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 24,205, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,206, 46, 21, 1, 0, 0, 0,168,203, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 64, 2,196, - 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 26, 2, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 26, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 27, 2,200, 0, - 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 43, 2, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 27, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0, 56,201, 31, 2, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,136,206, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,207, 46, 21, 1, 0, 0, 0, 24,205, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 3, 0, 0, 75, 3, 0, 0, 43, 2, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,202, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 24,211, 31, 2, 0, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, + 40,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, +233, 1, 0, 0,233, 3, 0, 0, 2, 2, 80, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226, 2, 2, 0, 0, 0, 0, + 40,209, 31, 2, 0, 0, 0, 0, 40,209, 31, 2, 0, 0, 0, 0,104,203, 31, 2, 0, 0, 0, 0,184,207, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,147,178, 3, 0, 0, 0, 0,200, 60,183, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,104,203, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,204, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 83, 68, 0, 0,200, 65, + 0,192, 83, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 80, 3, + 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, +233, 1, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,248,207, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,206, 46, 21, - 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, - 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 26, 2, 0, 0, 18, 0, 0, 0,114, 2, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,114, 2, 0, 0, 18, 0, 0, 0, 26, 2, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, - 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,115, 2, 27, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 75, 3, 0, 0, 43, 2, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 2, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,216,204, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 72,206, 31, 2, 0, 0, 0, 0, +104,203, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0,128,234,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, +231, 1,200, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, + 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,231, 1, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,104,209, 46, 21, 1, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 72,206, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,207, 31, 2, 0, 0, 0, 0, +216,204, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,210, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,152,210, 46, 21, 1, 0, 0, 0, 19, 1, 0, 0, 1, 0, 0, 0, 56,174, 47, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, + 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,230, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72,211, 46, 21, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,202, 46, 21, 1, 0, 0, 0, 24,176, 46, 21, 1, 0, 0, 0, 88,175, 46, 21, 1, 0, 0, 0, 56,174, 46, 21, - 1, 0, 0, 0,152,174, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 3, 0, 0,118, 7, 0, 0, 17, 2, 0, 0, - 69, 4, 0, 0, 8, 8, 42, 4, 53, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,217, 46, 21, - 1, 0, 0, 0,232,217, 46, 21, 1, 0, 0, 0, 40,212, 46, 21, 1, 0, 0, 0,120,216, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 40,212, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,152,213, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 64,133, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 41, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 50, 68, 0, 0,200, 65, 0, 64, 50, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 42, 4, 26, 0, 42, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 3, 0, 0,118, 7, 0, 0, 17, 2, 0, 0, - 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,184,207, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,206, 31, 2, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0,230, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, + 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,119, 2, +231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, + 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 2,231, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,228, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,213, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8,215, 46, 21, 1, 0, 0, 0, 40,212, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0, 40,209, 31, 2, 0, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,118, 7, 0, 0, 43, 2, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,215, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120,216, 46, 21, 1, 0, 0, 0,152,213, 46, 21, - 1, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67, 96,187,216,196, 96,187,216, 68,244, 43, 91,196, -244, 43, 91, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 41, 4, 0, 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, - 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0, 42, 4, 27, 2, 42, 4, - 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 3, 0, 0,118, 7, 0, 0, 43, 2, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 4, 27, 2, 0, 0, 7, 0, 0, 0, 0, 0, +104,210, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,104,210, 31, 2, 0, 0, 0, 0, 19, 1, 0, 0, 1, 0, 0, 0, +152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,120,216, 46, 21, 1, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,215, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24,211, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,202, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, +216,174, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, +233, 1, 0, 0,233, 3, 0, 0, 8, 8, 46, 4, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46, 3, 2, 0, 0, 0, 0, +200,217, 31, 2, 0, 0, 0, 0,200,217, 31, 2, 0, 0, 0, 0, 8,212, 31, 2, 0, 0, 0, 0, 88,216, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,162,182, 3, 0, 0, 0, 0,120,102, 68, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 8,212, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120,213, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,133, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,160,133, 68, 0, 0,200, 65, + 0,160,133, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 46, 4, + 26, 0, 46, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, +233, 1, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,120,213, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,214, 31, 2, 0, 0, 0, 0, + 8,212, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,232,217, 46, 21, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, + 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 49, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,232,214, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88,216, 31, 2, 0, 0, 0, 0, +120,213, 31, 2, 0, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67,145,139,217,196,145,139,217, 68, +240, 6, 70,196,240, 6, 70, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 4, 0, 0, 0, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0, 46, 4, +231, 1, 46, 4,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, + 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 4,231, 1, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 48, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 0, 0, 16, 6, 0, 0, 56,174, 47, 4, 1, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99, -101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,219, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0,136,233, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,222, 46, 21, 1, 0, 0, 0, 72,223, 46, 21, 1, 0, 0, 0,104,222, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 88,216, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,214, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, + 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, - 90, 0, 1, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, - 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,227, 46, 21, 1, 0, 0, 0, 88,227, 46, 21, - 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0,200,217, 31, 2, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,184, 5, 0, 0,152,219, 31, 2, 0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +152,225, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,230, 31, 2, 0, 0, 0, 0,152,189, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, + 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, + 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, + 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, - 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,227, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,208, 40, 21, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, - 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, -180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4,205,204,204, 61, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,152,219, 46, 21, 1, 0, 0, 0, 8, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,220, 46, 21, 1, 0, 0, 0,200,221, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 56,220, 46, 21, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0,200,221, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,110,101,116,119,111,114,107, 95,114,101,110,100,101,114, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,220, 46, 21, - 1, 0, 0, 0,216,220, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 0, 0, 0,216,220, 46, 21, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,115,101,114,118,101,114, 95, 97,100,100,114,101,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,221, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,120,221, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 91,100,101,102, 97,117,108,116, 93, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, -200,221, 46, 21, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,220, 46, 21, 1, 0, 0, 0, - 6, 0, 0, 0,112,111,115,101, 95,116,101,109,112,108, 97,116,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,222, 46, 21, 1, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0,216,222, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0,206, 2,179, 1, 56, 40, 54, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,222, 46, 21, 1, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0, 72,223, 46, 21, 1, 0, 0, 0,104,222, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 0, 4, 0, 0,160, 3,244, 2, 56, 46, 54, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,223, 46, 21, 1, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,222, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 0, 4, 0, 0,158, 0, 21, 2, 56,182, 47, 4, 1, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0,184,223, 46, 21, 1, 0, 0, 0, -150, 0, 0, 0, 1, 0, 0, 0,184,225, 46, 21, 1, 0, 0, 0, 56,226, 46, 21, 1, 0, 0, 0,184,226, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, + 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, +102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,234, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,183, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, + 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 5, 0,128, 7, 56, 4,205,204,204, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +152,225, 31, 2, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, +130, 0, 0, 0, 1, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,210, 2,173, 1,248,248, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, +130, 0, 0, 0, 1, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 4, 0, 0,165, 3,239, 2,232,255, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0, +130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 0, 4, 0, 0,159, 0, 15, 2,168,242, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0, 8,230, 31, 2, 0, 0, 0, 0, +150, 0, 0, 0, 1, 0, 0, 0, 24,232, 31, 2, 0, 0, 0, 0,152,232, 31, 2, 0, 0, 0, 0, 24,233, 31, 2, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, @@ -4410,30 +5223,30 @@ char datatoc_startup_blend[]= { 102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0, -204,197,121, 63, 0, 0, 0, 63, 68, 65, 84, 65, 56, 0, 0, 0,184,225, 46, 21, 1, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, - 56, 43, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, +204,197,121, 63, 0, 0, 0, 63, 68, 65, 84, 65, 56, 0, 0, 0, 24,232, 31, 2, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, +152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0, - 56,226, 46, 21, 1, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,232, 31, 2, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200,200,255,128, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,184,226, 46, 21, 1, 0, 0, 0,148, 0, 0, 0, 1, 0, 0, 0, -168,110, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 24,233, 31, 2, 0, 0, 0, 0,148, 0, 0, 0, 1, 0, 0, 0, +168,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,124, 7,231, 65,255, 74, 20, 65, 54, 86,123, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 0, 0, 0, 88,227, 46, 21, 1, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, -255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, +255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63, 205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 56,231, 46, 21, 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, +168,237, 31, 2, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, @@ -4442,11 +5255,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,233, 46, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 64, 1, 0, 0, 56,231, 46, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,239, 31, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,168,237, 31, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63, -242, 4, 53,191,243, 4, 53, 63,184,232, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +242, 4, 53,191,243, 4, 53, 63, 56,239, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4454,10 +5267,10 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, -184,232, 46, 21, 1, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,233, 46, 21, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 56,239, 31, 2, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,239, 31, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0,136,233, 46, 21, 1, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0, 8,240, 31, 2, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61, @@ -4472,17 +5285,17 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,235, 46, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,168,235, 46, 21, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,242, 31, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,242, 31, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 32, 5, 0, 0, 56,182, 47, 4, 1, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0,168,242, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,228, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4512,30 +5325,30 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,236, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, - 24,236, 46, 21, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,248, 31, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, - 56, 46, 54, 4, 1, 0, 0, 0, 56,182, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,248,248, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, +232,255, 31, 2, 0, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, +200, 48, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248,236, 46, 21, 1, 0, 0, 0, 72,237, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,254, 31, 2, 0, 0, 0, 0,184,254, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, @@ -4559,27 +5372,27 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,237, 46, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 33, 62, 3, 0, 0, 0, 0, 8, 41, 62, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 8, 0, 0, 0,248,236, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 72,237, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -152, 0, 0, 0,152,237, 46, 21, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 0, 0, 0,104,254, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 4, 0, 0, 0,184,254, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +152, 0, 0, 0, 8,255, 31, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 56, 46, 54, 4, 1, 0, 0, 0,116, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 40, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,232,255, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,229, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4608,18 +5421,18 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,238, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,120,238, 46, 21, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 88, 5, 32, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 88,239, 46, 21, - 1, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,208, 66, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 56, 6, 32, 2, + 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,208, 66, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -4635,17 +5448,17 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,184,242, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,168, 9, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,244, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 32, 2, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184,242, 46, 21, 1, 0, 0, 0, 24, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,168, 9, 32, 2, 0, 0, 0, 0, 24, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -4654,9 +5467,9 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 40, 0, 0, 0, 24,244, 46, 21, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 1, 0, 52, 0, 52, 0, 56, 52, 54, 4, 1, 0, 0, 0, 56, 70, 54, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 0, 16, 0, 0, 56, 52, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 8, 11, 32, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 1, 0, 52, 0, 52, 0,120, 11, 32, 2, 0, 0, 0, 0,200, 27, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 16, 0, 0,120, 11, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4784,8 +5597,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0, 56, 70, 54, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0,200, 27, 32, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5937,7 +6750,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,112, 1, 0, 0,136,244, 46, 21, 1, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,112, 1, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, @@ -5948,11 +6761,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,246, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,246, 46, 21, - 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, - 16, 0, 15, 0, 56,216, 54, 4, 1, 0, 0, 0, 56,234, 54, 4, 1, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 56,216, 54, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,173, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,173, 32, 2, + 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, + 16, 0, 15, 0, 72,174, 32, 2, 0, 0, 0, 0,152,190, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 72,174, 32, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6080,7 +6893,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0, 56,234, 54, 4, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0,152,190, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7233,24 +8046,24 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 69, 0, 0,152, 1, 0, 0,168,246, 46, 21, 1, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69, 0, 0,152, 1, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,248, 46, 21, 1, 0, 0, 0,152,255, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,250, 46, 21, 1, 0, 0, 0, 24,253, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 80, 33, 2, 0, 0, 0, 0,248, 87, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 82, 33, 2, 0, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,248, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,251, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,253, 46, 21, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 24, 81, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 83, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 86, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,136,248, 46, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,239, 46, 21, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,216,248, 46, 21, - 1, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,200, 80, 33, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 24, 81, 33, 2, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,250, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 82, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7259,16 +8072,16 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,250, 46, 21, - 1, 0, 0, 0, 52, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200, 82, 33, 2, + 0, 0, 0, 0, 52, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0, 4, 0,128, 63, 247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182, 230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191, 0, 0,128, 63, - 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,104,251, 46, 21, 1, 0, 0, 0, 84, 1, 0, 0, + 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,184, 83, 33, 2, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,253, 46, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7277,15 +8090,15 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 24,253, 46, 21, 1, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 49, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,232,253, 46, 21, - 1, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 72, 86, 33, 2, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,255, 46, 21, 1, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 87, 33, 2, 0, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 75,138,139,255,255,255,255, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, @@ -7294,16 +8107,16 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,152,255, 46, 21, - 1, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,248, 87, 33, 2, + 0, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 2, 66, 82, 0, 0,248, 2, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232, 6, 47, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100, + 0, 0, 0, 2, 66, 82, 0, 0,248, 2, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104, 95, 33, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100, 100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248, 4, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 93, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7323,8 +8136,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,192, 0, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 32, 89, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7333,10 +8146,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248, 4, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 93, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120, 6, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232, 94, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7344,13 +8157,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,120, 6, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,232, 94, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 24, 12, 47, 21, - 1, 0, 0, 0, 88, 0, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,184,100, 33, 2, + 0, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, 111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40, 10, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 98, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7370,8 +8183,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 80, 7, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,208, 95, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7380,10 +8193,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40, 10, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 98, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,168, 11, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,100, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7391,13 +8204,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,168, 11, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 56,100, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72, 17, 47, 21, - 1, 0, 0, 0,232, 6, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8,106, 33, 2, + 0, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, 117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 15, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248,103, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7417,8 +8230,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,128, 12, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 32,101, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7427,10 +8240,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 15, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248,103, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,216, 16, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,136,105, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7438,13 +8251,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,216, 16, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,136,105, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,120, 22, 47, 21, - 1, 0, 0, 0, 24, 12, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 88,111, 33, 2, + 0, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114, 117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136, 20, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72,109, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7464,8 +8277,8 @@ char datatoc_startup_blend[]= { 0, 0, 30, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,176, 17, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,112,106, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7474,10 +8287,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136, 20, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72,109, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 8, 22, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,216,110, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7485,13 +8298,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 8, 22, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,216,110, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168, 27, 47, 21, - 1, 0, 0, 0, 72, 17, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168,116, 33, 2, + 0, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,184, 25, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,114, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7511,8 +8324,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,224, 22, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,192,111, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7521,10 +8334,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,184, 25, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,114, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 56, 27, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,116, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7532,13 +8345,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 56, 27, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 40,116, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216, 32, 47, 21, - 1, 0, 0, 0,120, 22, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248,121, 33, 2, + 0, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232, 30, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,119, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7558,8 +8371,8 @@ char datatoc_startup_blend[]= { 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 16, 28, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 16,117, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7568,10 +8381,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232, 30, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,119, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,104, 32, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120,121, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7579,13 +8392,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,104, 32, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,120,121, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8, 38, 47, 21, - 1, 0, 0, 0,168, 27, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72,127, 33, 2, + 0, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114, 101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 36, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,125, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7605,8 +8418,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 64, 33, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 96,122, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7615,10 +8428,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24, 36, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56,125, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,228, 97,175,190, - 50,131,112, 63,218,243,127,191, 10,183,157,188,152, 37, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 50,131,112, 63,218,243,127,191, 10,183,157,188,200,126, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7626,13 +8439,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,152, 37, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,200,126, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56, 43, 47, 21, - 1, 0, 0, 0,216, 32, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152,132, 33, 2, + 0, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97, 114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72, 41, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,130, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7652,8 +8465,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,112, 38, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,176,127, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7662,10 +8475,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72, 41, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,130, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,200, 42, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 24,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7673,13 +8486,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,200, 42, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 24,132, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104, 48, 47, 21, - 1, 0, 0, 0, 8, 38, 47, 21, 1, 0, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232,137, 33, 2, + 0, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120, 46, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216,135, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7699,8 +8512,8 @@ char datatoc_startup_blend[]= { 0, 0, 30, 0, 35, 0, 0, 0, 0, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,160, 43, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 0,133, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7709,10 +8522,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120, 46, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,135, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,248, 47, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,104,137, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7720,13 +8533,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,248, 47, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,104,137, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152, 53, 47, 21, - 1, 0, 0, 0, 56, 43, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56,143, 33, 2, + 0, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105, 108,108, 47, 68,101,101,112,101,110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 51, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40,141, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7746,8 +8559,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,208, 48, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 80,138, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7756,10 +8569,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 51, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40,141, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 40, 53, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,184,142, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7767,13 +8580,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 40, 53, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,184,142, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,200, 58, 47, 21, - 1, 0, 0, 0,104, 48, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,136,148, 33, 2, + 0, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216, 56, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,146, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7793,8 +8606,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 0, 54, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,160,143, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7803,10 +8616,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216, 56, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120,146, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 88, 58, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 8,148, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7814,13 +8627,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 88, 58, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 8,148, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248, 63, 47, 21, - 1, 0, 0, 0,152, 53, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216,153, 33, 2, + 0, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8, 62, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,151, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7840,8 +8653,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 48, 59, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,240,148, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7850,10 +8663,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8, 62, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,200,151, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,136, 63, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 88,153, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7861,13 +8674,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,136, 63, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 88,153, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40, 69, 47, 21, - 1, 0, 0, 0,200, 58, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40,159, 33, 2, + 0, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110, 102,108, 97,116,101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56, 67, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,157, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7887,8 +8700,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0, 96, 64, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0, 64,154, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7897,10 +8710,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56, 67, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24,157, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,184, 68, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,168,158, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7908,13 +8721,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,184, 68, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,168,158, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 88, 74, 47, 21, - 1, 0, 0, 0,248, 63, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,120,164, 33, 2, + 0, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97, 121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104, 72, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,162, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7934,8 +8747,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144, 69, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144,159, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7944,10 +8757,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104, 72, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104,162, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,232, 73, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,248,163, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7955,13 +8768,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,232, 73, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,248,163, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,136, 79, 47, 21, - 1, 0, 0, 0, 40, 69, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,200,169, 33, 2, + 0, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105, 103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152, 77, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,184,167, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -7981,8 +8794,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,192, 74, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,224,164, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -7991,10 +8804,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152, 77, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,184,167, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 24, 79, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 72,169, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8002,13 +8815,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 24, 79, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 72,169, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,184, 84, 47, 21, - 1, 0, 0, 0, 88, 74, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 24,175, 33, 2, + 0, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105, 120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200, 82, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,173, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8028,8 +8841,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,240, 79, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 48,170, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8038,10 +8851,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,200, 82, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8,173, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 72, 84, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,152,174, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8049,13 +8862,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 72, 84, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,152,174, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232, 89, 47, 21, - 1, 0, 0, 0,136, 79, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104,180, 33, 2, + 0, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117, 108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248, 87, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,178, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8075,8 +8888,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 32, 85, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,128,175, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8085,10 +8898,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248, 87, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,178, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120, 89, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,179, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8096,13 +8909,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,120, 89, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,232,179, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 24, 95, 47, 21, - 1, 0, 0, 0,184, 84, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,184,185, 33, 2, + 0, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117, 100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40, 93, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,183, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8122,8 +8935,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 80, 90, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,208,180, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8132,10 +8945,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40, 93, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,183, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,168, 94, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,185, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8143,13 +8956,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,168, 94, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 56,185, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72,100, 47, 21, - 1, 0, 0, 0,232, 89, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8,191, 33, 2, + 0, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105, 110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 98, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248,188, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8169,8 +8982,8 @@ char datatoc_startup_blend[]= { 0, 0, 6, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0,128, 95, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0, 32,186, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8179,10 +8992,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 98, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248,188, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,216, 99, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,136,190, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8190,13 +9003,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,216, 99, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,136,190, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,120,105, 47, 21, - 1, 0, 0, 0, 24, 95, 47, 21, 1, 0, 0, 0, 0, 1,174,232,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 88,196, 33, 2, + 0, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 0, 1,174,232,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111, 108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,103, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72,194, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8216,8 +9029,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,176,100, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,112,191, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8226,10 +9039,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,103, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72,194, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 8,105, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,216,195, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8237,13 +9050,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 8,105, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,216,195, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168,110, 47, 21, - 1, 0, 0, 0, 72,100, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168,201, 33, 2, + 0, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, 114, 97,112,101, 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,184,108, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,199, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8263,8 +9076,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,224,105, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,192,196, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8273,10 +9086,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,184,108, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,199, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,110, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8284,13 +9097,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 56,110, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 40,201, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216,115, 47, 21, - 1, 0, 0, 0,120,105, 47, 21, 1, 0, 0, 0, 0, 1,184,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248,206, 33, 2, + 0, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 0, 1,184,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, 117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,113, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,204, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8310,8 +9123,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 16,111, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 16,202, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8320,10 +9133,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,113, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,204, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,104,115, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,120,206, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8331,13 +9144,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,104,115, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,120,206, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8,121, 47, 21, - 1, 0, 0, 0,168,110, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72,212, 33, 2, + 0, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, 101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,119, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,210, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8357,8 +9170,8 @@ char datatoc_startup_blend[]= { 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 64,116, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 96,207, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8367,10 +9180,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24,119, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56,210, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,152,120, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,200,211, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8378,13 +9191,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,152,120, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,200,211, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56,126, 47, 21, - 1, 0, 0, 0,216,115, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152,217, 33, 2, + 0, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, 111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72,124, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,215, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8404,8 +9217,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,112,121, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,176,212, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8414,10 +9227,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72,124, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,215, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,200,125, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 24,217, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8425,13 +9238,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,200,125, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 24,217, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104,131, 47, 21, - 1, 0, 0, 0, 8,121, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232,222, 33, 2, + 0, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,129, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216,220, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8451,8 +9264,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,160,126, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 0,218, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8461,10 +9274,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120,129, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,220, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,248,130, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,104,222, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8472,13 +9285,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,248,130, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,104,222, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152,136, 47, 21, - 1, 0, 0, 0, 56,126, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56,228, 33, 2, + 0, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111, 102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,134, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40,226, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8498,8 +9311,8 @@ char datatoc_startup_blend[]= { 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,208,131, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 80,223, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8508,10 +9321,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,134, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40,226, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40,136, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184,227, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8519,13 +9332,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 40,136, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,184,227, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,200,141, 47, 21, - 1, 0, 0, 0,104,131, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,136,233, 33, 2, + 0, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216,139, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,231, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8545,8 +9358,8 @@ char datatoc_startup_blend[]= { 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 0,137, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,160,228, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8555,10 +9368,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,139, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120,231, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 88,141, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 8,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8566,13 +9379,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 88,141, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 8,233, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248,146, 47, 21, - 1, 0, 0, 0,152,136, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216,238, 33, 2, + 0, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101, 120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,145, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,236, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8592,8 +9405,8 @@ char datatoc_startup_blend[]= { 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 48,142, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,240,233, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8602,10 +9415,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8,145, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,200,236, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,136,146, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186, 88,238, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8613,13 +9426,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,136,146, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0, 88,238, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40,152, 47, 21, - 1, 0, 0, 0,200,141, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40,244, 33, 2, + 0, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104, 117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,150, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,242, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8639,8 +9452,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 96,147, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 64,239, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8649,10 +9462,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56,150, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24,242, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,184,151, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,168,243, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8660,13 +9473,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,184,151, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,168,243, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40,152, 47, 21, 1, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248,146, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119, + 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119, 105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,155, 47, 21, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,247, 33, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -8686,8 +9499,8 @@ char datatoc_startup_blend[]= { 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144,152, 47, 21, - 1, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144,244, 33, 2, + 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, @@ -8696,10 +9509,10 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104,155, 47, 21, 1, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104,247, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,232,156, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 95,255,186,224,255,127,191,114, 97,255,186,248,248, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8707,9 +9520,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,232,156, 47, 21, 1, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 48, 0, 0, 0,248,248, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 83, 69, 82,112, 13, 0, 0,224,228,168, 2, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 33, 8, 17, 1, + 0, 0, 0, 0, 85, 83, 69, 82,184, 13, 0, 0,224,237,167, 1, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 33, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8725,9 +9538,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8745,9 +9558,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8765,22 +9578,23 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, - 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 56,138, 55, 4, 1, 0, 0, 0, 56,138, 55, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 3, 47, 21, 1, 0, 0, 0,184,160, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62, -205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, - 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, + 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, + 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0,120, 7, 34, 2, + 0, 0, 0, 0,120, 7, 34, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8,185, 19, 2, + 0, 0, 0, 0, 8,185, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 91, 33, 2, + 0, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 1, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, + 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, + 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, + 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, + 0, 0, 0, 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, + 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8789,9 +9603,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 2, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, @@ -8813,83 +9629,94 @@ char datatoc_startup_blend[]= { 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 30, 0, 0, 56,138, 55, 4, 1, 0, 0, 0,189, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, - 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, - 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, - 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255, -255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255, -255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, - 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, - 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, -128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255, -255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255, -255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230, -100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, -255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, - 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180, -128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, - 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, - 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255, -215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 30, 0, 0,120, 7, 34, 2, + 0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97, +117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, +153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, +153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255, +180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, + 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, + 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255, +128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, + 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, +190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, + 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, +144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, +255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, + 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, + 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, +219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,32, 255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, + 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, - 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255, +250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, +255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, +255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, + 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, @@ -8897,19 +9724,19 @@ char datatoc_startup_blend[]= { 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, + 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, @@ -8921,69 +9748,69 @@ char datatoc_startup_blend[]= { 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, + 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, +126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, +255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, 219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255, -109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, +255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, -198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255, -128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, +255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, + 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, @@ -8991,31 +9818,31 @@ char datatoc_startup_blend[]= { 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, 241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, + 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 4, 0,155,155,155,160,100,100,100,255,111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255, +255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, -155,155,155,160,100,100,100,255,111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, 127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, @@ -9027,7 +9854,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, @@ -9035,1015 +9862,1003 @@ char datatoc_startup_blend[]= { 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, 219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, + 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255, -220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, - 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, - 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, - 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, - 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, - 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, - 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, - 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255, +189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, + 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255, +193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, + 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255, +238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255, +152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255, +176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, + 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0,152, 3, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 40, 4, 47, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,248, 91, 33, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,152, 92, 33, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 40, 4, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 88,157, 47, 21, - 1, 0, 0, 0,152, 3, 47, 21, 1, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 92, 33, 2, 0, 0, 0, 0,190, 0, 0, 0, + 1, 0, 0, 0, 24, 38, 34, 2, 0, 0, 0, 0,248, 91, 33, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 88,157, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0,232,157, 47, 21, 1, 0, 0, 0, 40, 4, 47, 21, 1, 0, 0, 0,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,232,157, 47, 21, - 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,120,158, 47, 21, 1, 0, 0, 0, 88,157, 47, 21, 1, 0, 0, 0,105,111, 95,109, -101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 24, 38, 34, 2, + 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,152, 92, 33, 2, 0, 0, 0, 0,105,111, 95, 97, +110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0,120,158, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 8,159, 47, 21, 1, 0, 0, 0,232,157, 47, 21, - 1, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0, 24, 38, 34, 2, + 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 8,159, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,152,159, 47, 21, - 1, 0, 0, 0,120,158, 47, 21, 1, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,248, 39, 34, 2, + 0, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152,159, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 40,160, 47, 21, 1, 0, 0, 0, 8,159, 47, 21, 1, 0, 0, 0,105,111, 95,109,101,115,104, 95,115,116,108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,248, 39, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, + 1, 0, 0, 0,152, 40, 34, 2, 0, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 40,160, 47, 21, - 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,184,160, 47, 21, 1, 0, 0, 0,152,159, 47, 21, 1, 0, 0, 0,105,111, 95,109, -101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 40, 34, 2, + 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,248, 39, 34, 2, 0, 0, 0, 0,105,111, 95,109, +101,115,104, 95,115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0,184,160, 47, 21, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,160, 47, 21, - 1, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 78, 65, 49,140,230, 0, 0, 56,188, 47, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, - 78, 65, 77, 69, 11, 12, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, - 0, 42,108, 97,115,116, 0,120, 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42, -112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116, -121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, - 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117, -115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99, -107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, - 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, - 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114, -101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109, -101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, - 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116, -109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, - 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112, -111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105, -103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114, -109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101, -109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108, -117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115, -116, 97,114,116, 0,101,110,100, 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, - 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101, -108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117, -110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, - 0,115,105,122,101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108, -105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100, -114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, - 0, 42,100,111,102, 95,111, 98, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111, -102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, - 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116, -117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, - 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97, -115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121, -114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110, -100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116, -101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, - 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0, -109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0, -117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112, -112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, - 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, - 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109, -111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, - 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, - 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102, -102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109, -105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, - 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, - 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110, -103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0, -114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105, -102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115, -104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101, -110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42, -115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115, -117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105, -110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101, -114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, - 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119, -115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, - 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95, -115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116, -112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, - 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112, -111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, - 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, - 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108, -108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, - 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112, -101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, - 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, - 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109, -101, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97, -115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108, -116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99, -116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111, -117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, - 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116, -121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97, -115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, - 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102, -105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99, -107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112, -108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, - 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, - 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0, -115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111, -116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111, -102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101, -115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117, -102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, - 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97, -121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, - 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114, -101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, - 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100, -116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115, -117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116, -101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, - 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97, -116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99, -101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114, -101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, - 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101,109, -105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105, -115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, - 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, - 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, - 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, - 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0, -109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95, -116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, - 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110, -103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115, -112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102, -114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, - 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109, -105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116, -104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0, -103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108, -111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116, -104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109, -105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0, -102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0, -102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, - 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115, -116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95, -119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97, -115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, - 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, - 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101, -115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, - 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0, -114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108, -101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, - 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, - 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109, -111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, - 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108, -102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99, -107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116, -117,114,101,100, 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,103,112,117,109, 97,116,101,114,105, 97,108, - 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, - 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0, -101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0, -101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, - 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114, -101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105, -103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, - 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0, -111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115, -117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116, -101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,101,121,105, -110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118, -111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, - 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,116,119, -105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,116,104,108, -101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111, -108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, - 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97, -114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, - 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101, -115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118, -102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99, -116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0, -115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42,109,102, 97, 99,101, 0, 42, -109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101, -114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115, -101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97, -116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, - 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0, -115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, - 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0, -117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, - 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, - 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0, -115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109, -105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, - 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, - 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114, -101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100, -103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42, -111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, - 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98, -106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109, -112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101, -118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97, -100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97, -114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, - 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109, -101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99, -111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115, -112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108, -105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102, -103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, - 0,116,105,109,101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109, -105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110, -117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, - 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, - 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, - 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97, -108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, - 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0, -112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, - 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105, -109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, - 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110, -116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, - 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105, -109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101, -114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115, -105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, - 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114, -105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, - 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99, -101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103, -104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, - 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112, -111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0, -118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116, -108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103, -101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105, -110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117, -114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, - 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105,110, -110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95, -111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114, -101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, - 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, - 95,114, 97,100,105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115, -118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, - 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, - 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, - 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, - 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120, -121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115, -101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116, -114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100, -105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, - 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111, -116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105, -115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, - 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, - 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102, -108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111, -102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98, -111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112, -101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109, -102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109, -105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104, -111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97, -100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0, -112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111, -114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109, -101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112, -105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114, -105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42, -100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102, -108, 97,103, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, - 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, - 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116, -101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112, -108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97,100, 51, 91, 56, 93, 0, 99,117,114,105,110,100, -101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116, -101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111, -114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110, -107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95, -102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100, -105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, - 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95, -102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, - 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105, -102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111, -119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0, -102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0, -119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0, -116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101, -115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101, -112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101, -100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, 99,111,109,112,114,101,115,115,105,111,110, 0, -110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0, -112, 97,116,104, 91, 50, 52, 48, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99, -104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, - 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116, -101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, - 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, - 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0, -107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, - 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, - 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, - 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95, -108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, - 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, - 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114, -105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116, -103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121, -110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112, -114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115, -111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, - 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108, -115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, - 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, - 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116, -105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, - 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97, -108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111, -119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0, -112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97, -121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116, -121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120, -112,111,110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97, -114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,103,115,116, - 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, - 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97, -116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112, -101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, - 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101, -114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111, -116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, - 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105, -122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, - 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, - 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101, -108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99, -101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111, -114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, - 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111, -103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115, -107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110, -101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101, -112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105, -115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114, -107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0, -115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105, -110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114, -103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, - 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115, -112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114, -111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, - 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, - 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, - 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115, -101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0,115,101, -108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, - 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101, -114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121, -116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118, -101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109, -115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99, -111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100, -101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101, -109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, -109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, - 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112, -108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101, -108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, - 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, - 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117, -109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, - 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105, -122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111, -102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95, -109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114, -105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, - 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97, -116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115, -117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97, -112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103, -101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0, -121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, - 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120, -105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119, -105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, - 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99, -101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95, -115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108, -112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101, -116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, - 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, - 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, - 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101, -110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95, -109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, - 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97, -107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, - 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115, -116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115, -116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116, -121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, - 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97, -100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105, -109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98, -108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95, -100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109, -101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101, -116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, - 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101, -114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, - 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 0,100,111,109,101, 0,115, -116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, - 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111, -114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, - 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110, -116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101, -121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, - 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, - 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,114, 97, -100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, - 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122, -101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95, -105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112, -114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42, -118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, - 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112, -101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0, -116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115, -105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114, -116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, - 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97, -108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, - 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, - 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, - 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95, -115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, - 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, - 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, - 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116, -105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111, -110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, - 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, - 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, - 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105, -109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114, -101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114, -103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, - 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115, -107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101, -115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117, -108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115, -107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0, -115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114, -101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114, -111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110, -117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, - 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, - 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109, -111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0, 97,117,116,111, 95,110,111, -114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99, -117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, - 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, -115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,116,111,116,111, 98, -106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116, -109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121, -115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, -113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115, -101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101, -110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, - 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 99,117,115,116,111, -109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110, -103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, - 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108, -101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, - 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, - 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116, -115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, - 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, - 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114, -115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, - 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, - 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122, -111,111,109, 0,116,119,100,114, 97,119,102,108, 97,103, 0,105,115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105, -101,119,108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, - 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100, -101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, - 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110, -103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, - 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95, -117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, - 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, - 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103, -114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101, -115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109, -111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97, -110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97, -121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102, -105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104, -111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97, -120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107, -101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0, -111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95, -110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104, -111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105, -110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101, -118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97, -116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104, -111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, - 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101, -101,100,105,116, 91, 56, 48, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95, -102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115, -112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101, -116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42, -102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116, -105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, - 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, - 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105, -115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0, -115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, - 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108, -111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99, -104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101, -105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111, -119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105, -110,101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105, -120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100, -119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, - 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, - 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116, -111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97, -108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0, -115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, - 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100, -114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42, -101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, - 97,103, 0,116,105,116,108,101, 91, 50, 52, 93, 0,109,101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116, -105,108,101,115,121, 0,115,101,108,115,116, 97,116,101, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107, -114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111, -108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114, -118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117, -114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103, -115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, - 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99, -107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, - 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, - 42, 97,114,101, 97, 0, 42,115,111,117,110,100, 0,115,110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, - 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0, -107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, - 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, - 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, - 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0, -109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, - 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98, -117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101, -114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110, -101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115, -101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, - 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, - 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107, -101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95, -100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95, -116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111, -112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95, -110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119, -110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0, -119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101, -115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111, -110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95, -104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0, -104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, - 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111, -110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, - 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108, -105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105, -116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95, -104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, - 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97, -109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, - 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0, -118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101, -108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, - 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, - 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111, -116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99, -101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97, -100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, - 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105, -112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110, -117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115, -112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95, -115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97, -110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100, -108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108, -101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, - 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97, -108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110, -110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, - 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108, -101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114, -116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115, -105,122,101, 0, 98,112, 97,100, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115, -121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0, -109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, - 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105, -111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, - 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95, -115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97, -100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117, -105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115, -110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116, -101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115, -101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95, -116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117, -112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116, -100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, - 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, - 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, - 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, - 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, - 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110, -115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108, -108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112, -114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118, -105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99, -104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109, -101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101, -109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100, -111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117, -110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, - 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103, -115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103, -104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100, -108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108, -108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104, -111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, - 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, - 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, - 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105, -109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122, -101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, - 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105, -116, 0,112, 97,100, 56, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101, -114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,101,110,100,101,114, 0,112, - 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,111,118,101, -114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0,118,101,114,116, 98, 97,115,101, 0, -101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, - 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, - 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100, -114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97, -112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101, -114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, - 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, - 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115, -105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, - 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, - 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115, -105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, - 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98, -117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, - 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97, -119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, - 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, - 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, - 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105, -110,115,117, 98,118,101,114,115,105,111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, - 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101, -110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114, -105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, - 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, - 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114, -105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, - 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, - 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111, -102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100, -105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101, -107, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97, -100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, - 51, 0,115,101,113, 98, 97,115,101, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, - 0,115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, - 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101, -110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42, -111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115, -116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, - 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, - 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87, -105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97, -109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, - 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, - 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, - 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, - 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115, -116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0, -116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101, -120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0, -109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, - 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0, -115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, - 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, - 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, - 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100, -105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, - 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108, -117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105, -111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114, -111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0, -112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42, -102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0, -111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107, -115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, - 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, - 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108, -105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80, -114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115, -101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, - 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0, -109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, - 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111, -110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110, -100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97, -110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, - 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105, -110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, - 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105, -110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114, -111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0, -100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, - 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, - 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, - 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0, -102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107, -101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99, -104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98, -106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115, -101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, - 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114, -109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100, -116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, - 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98, -111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115, -101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116, -115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0, -103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116, -104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109, -101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111, -115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115, -116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95, -118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, - 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, - 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98, -111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111, -109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95, -109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, - 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102, -102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105, -107,108,105,110,119,101,105,103,104,116, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114, -111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, - 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, - 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, - 95, 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105, -110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97, -120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117, -115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95, -109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114, -112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116, -105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0, -116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114, -114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0, -115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116, -101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42, -112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110, -103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110, -117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101, -115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, - 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0, -118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105, -118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105, -116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, - 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109, -105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, - 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99, -104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120, -105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102, -115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100, -101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110, -112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112, -101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, - 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, - 0,111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42, -108,105,110,107, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, - 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116, -104, 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116, -111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, - 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121, -112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, - 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116, -104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110, -100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97, -116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, - 42,112,114,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, - 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, - 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119, -105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101, -110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103, -109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0, -102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0, -120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, - 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116, -105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, - 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111, -108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0, -112,114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95, -108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112, -105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112, -105,108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120, -116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, - 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109, -101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, - 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114, -101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, - 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109, -112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, - 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114, -109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97, -108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, - 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42, -119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111, -116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98, -117,102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105, -103,104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, - 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116, -101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115, -101,116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0, -105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111, -116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, - 97,110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120, -116,117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, - 97,100,105,117,115, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105, -118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, - 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122, -101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, - 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97, -114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0, -112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, - 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105, -101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105, -118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0, -121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121, -105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, - 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115, -115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112, -114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0, -112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, - 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, - 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0, -104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, - 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, - 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108, -105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, - 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105, -102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102, -121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116, -105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97, -110,100, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116, -102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95, -118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, - 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100, -114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, - 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100, -115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108, -100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109, -112, 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, - 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, - 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101, -110,103,116,104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109, -105,110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, - 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97, -105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116, -115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, - 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, - 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, - 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95, -111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95, -102,114, 97,109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116, -111,116,117,110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, - 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, - 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117, -112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102, -102,101, 99,116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100, -115,112,114,105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, - 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, - 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, - 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0, -101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115, -105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108, -105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114, -111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114, -111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, - 99,116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, - 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99, -116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115, -116, 97,110, 99,101, 95,114,101,112,101,108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, - 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101, -115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, - 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, - 42,115, 98,117,102,102,101,114, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101, -118,101,108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119, -105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108, -101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0, -113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0, -100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105, -109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, - 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101, -101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, - 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, - 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105, -110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, - 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0, -103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105, -102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97, -112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105, -100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, - 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97, -116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42, -111,112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110, -116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100, -101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0, -118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, - 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99, -121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116, -101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, - 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, - 95,116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, - 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95, -105,110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, - 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, - 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0, -101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107, -101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116, -105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116, -115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110, -100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, - 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, - 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115, -105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0, -115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110, -115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97, -115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, - 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, - 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97, -120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117, -109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, - 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95, -115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115, -109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, - 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, - 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101, -115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, - 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114, -101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, - 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, - 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116, -105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0, -118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114, -111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104, -101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, - 52, 93, 0, 0, 84, 89, 80, 69,205, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104, + 80, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0,152, 40, 34, 2, + 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,100,230, 0, 0, 88, 29,204, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 7, 12, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, + 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105, +110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116, +121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0, +100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97, +109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, + 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105, +108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, + 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97, +109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, + 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0, +116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97, +112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, + 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101, +121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, + 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105, +110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, + 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116, +111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0, +108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111, +114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, + 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110, +100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108, +101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, + 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, + 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, + 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0, +102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0, +111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, + 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, + 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115, +111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110, +100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, + 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, + 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, + 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99, +111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, + 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112, +114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0, +116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111, +110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117, +115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, + 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0, +119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97, +102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100, +102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, + 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, + 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109, +101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0, +107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105, +116,121,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105, +101,108,100,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119, +110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, + 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114, +115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105, +116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, + 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, + 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116, +121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112, +116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0, +102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111, +117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, + 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, + 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105, +115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, + 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, + 99, 97,108,101, 0,102, 97,108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, + 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110, +116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111, +107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, + 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, + 99,104,101,100,102,114, 97,109,101, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104, +116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, + 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105, +116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0, +100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, + 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, + 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, + 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, + 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121, +109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112, +101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100, +101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110, +111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, + 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119, +103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116, +115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, + 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102, +116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, + 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, + 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95, +115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97, +114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97, +100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, + 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0, +115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0, +115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, + 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, + 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95, +102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, + 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, + 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, + 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101, +110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99, +116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111, +110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105, +116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0, +115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121, +112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0, +109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, + 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109, +105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, + 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112, +104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, + 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, + 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101, +114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0, +114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108, +111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, + 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, + 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105, +114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, + 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, + 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98, +111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110, +100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, + 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, + 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101, +120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, + 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, + 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, + 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109, +112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111, +108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0, +114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0, +102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, + 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111, +108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, + 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, + 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97, +112,116,111, 95,116,101,120,116,117,114,101,100, 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,103,112,117, +109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0, +105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, + 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97, +116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42, +109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114, +115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, + 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0, +118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, + 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103, +118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97, +100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, + 98,115, 0, 42,107,101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110, +117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114, +118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, + 95,109,111,100,101, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97, +108,101, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101, +120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, + 42,108, 97,115,116,115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100, +105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0, +117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, + 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42, +118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115, +101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115, +101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, + 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101, +100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111, +109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101, +100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101, +108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0, +115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, + 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110, +115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100, +101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119, +101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110, +100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, + 41, 0,118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99, +111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118, +101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0, +112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102, +108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100, +103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, + 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, + 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118, +108, 97,121,101,114, 95,116,109,112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0, +114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101, +102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101, +101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, + 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, + 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101, +116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114, +114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, + 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97, +110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108, +111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114, +101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, + 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115, +112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, + 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115, +116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, + 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0, +100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114, +103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, + 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98, +106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105, +110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, + 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101, +110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116, +105,109,101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, + 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, + 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110, +100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114, +116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101, +114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, + 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, + 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, + 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116, +100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, + 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112, +116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, + 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68, +105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120, +105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0, +108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99, +114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95, +114,105,109, 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, + 0,115,116,101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111, +102,115, 0, 97,110,103,108,101, 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, + 0,102, 97,108,108,111,102,102, 95,114, 97,100,105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116, +115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112, +101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, + 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, + 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, + 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111, +120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116, +105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97, +116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, + 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, + 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122, +101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, + 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0, +111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95, +114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0, +112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97, +102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118, +105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117, +112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114, +116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, + 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105, +110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97, +119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112, +102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, + 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101, +102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97, +110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116, +115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, + 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114, +101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111, +100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118, +101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, + 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115, +116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105, +109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97,100, 51, 91, 56, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118, +101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, + 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, + 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122, +100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115, +105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111, +119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100, +101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100, +101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116, +105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95, +115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102, +114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, + 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, + 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0, +102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, + 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97, +109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, + 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, + 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, + 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, + 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102, +102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, + 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, + 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0, +107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, + 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, + 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99, +108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105, +110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, + 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, + 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, + 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103, +111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97, +109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115, +112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, + 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97, +103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105, +110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, + 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112, +115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103, +112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117, +115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, + 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, + 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99, +101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114, +101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101, +110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118, +105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103, +114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97, +114,116, 0, 98, 97,107,101, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101, +108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115, +104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, + 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99, +103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, + 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108, +101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105, +118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108, +112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, + 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108, +105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116, +102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116, +104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, + 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0, +122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, + 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118, +105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101, +115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99, +115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0, +109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, + 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110, +100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, + 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111, +100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97, +111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114, +101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, + 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105, +110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95, +112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, + 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, + 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, + 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, + 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, + 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0, +100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97, +103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109, +101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111, +100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116, +105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111, +114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83, +112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, + 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, + 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112, +116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, + 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, + 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, + 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, + 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, + 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116, +101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, + 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100, +101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102, +108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, + 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, + 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, + 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108, +101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108, +108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116, +114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115, +105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120, +112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109, +116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, + 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99, +116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111, +100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111, +114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117, +114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, + 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0, +112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, + 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, + 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, + 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, + 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115, +116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, + 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116, +121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, + 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114, +102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102, +121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111, +110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106, +112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101, +115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111, +109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97, +114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, + 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42, +119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0, +114,116, 49, 0,114,116, 50, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, + 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115, +111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97, +109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, + 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116, +114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, + 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121, +112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, + 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95, +120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101, +100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111, +110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100, +114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99, +105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110, +116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101, +105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110, +116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, + 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109, +101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, + 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97, +108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, + 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115, +101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97, +117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, + 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, + 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107, +101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, + 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112, +111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115, +107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95, +105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97, +108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116, +104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, + 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, + 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103, +104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0, +115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115, +107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, + 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111, +110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116, +101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, + 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95, +110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107, +103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114, +105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95, +109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95, +109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111, +114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, + 98,106,101, 99,116,115, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105, +110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, + 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111, +106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105, +101,100, 95, 97,108,112,104, 97, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101, +108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, + 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105, +111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42, +119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, + 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, + 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, + 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, + 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42, +115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, + 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116, +104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, + 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0, +103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118, +105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118, +105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105, +110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, +111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, + 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111, +109, 0,116,119,100,114, 97,119,102,108, 97,103, 0,105,115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119, +108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, + 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112, +116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, + 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108, +101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98, +108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115, +101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, + 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101, +110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105, +100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0, +103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100, +101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115, +112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116, +114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108, +116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, + 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122, +111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101, +112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108, +100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117, +109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115, +116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, + 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105, +101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97, +105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119, +110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0, +102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100, +105,116, 91, 56, 48, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105, +108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, + 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, + 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111, +108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109, +101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115, +121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115, +116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0, +115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99, +111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, + 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99, +107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, + 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103, +104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108, +105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, + 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95, +112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, + 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99, +101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99, +104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, + 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100, +105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99, +114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, + 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97, +119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100, +105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, + 0,116,105,116,108,101, 91, 50, 52, 93, 0,109,101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108, +101,115,121, 0,115,101,108,115,116, 97,116,101, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, + 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, + 97,114,101, 97, 0,114,101,116,118, 97,108, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95, +119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110, +102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, + 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42, +105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0, +104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, + 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97, +114,101, 97, 0, 42,115,111,117,110,100, 0,115,110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98, +108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101, +114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115, +104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110, +101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119, +105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105, +110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116, +101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116, +116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0, +112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, + 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, + 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108, +112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110, +105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, + 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114, +105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111, +111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116, +105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117, +109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0, +119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99, +111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, + 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102, +105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, + 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, + 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98, +117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95, +116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, + 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115, +116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108, +101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, + 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, + 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, + 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116, +105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101, +114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, + 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, + 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0, +102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, + 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, + 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, + 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98, +111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, + 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, + 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108, +105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101, +108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100, +108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, + 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, +115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, + 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105, +103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101, +108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105, +110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, +101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101, +120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122, +101, 0, 98,112, 97,100, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110, +116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111, +118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, + 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, + 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, + 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101, +108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, + 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0, +116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, + 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120, +116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114, +112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104, +101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102, +108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105, +114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, + 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, + 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, + 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, + 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103, +114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0, +100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105, +110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101, +102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99, +101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97, +110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110, +117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101, +115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110, +115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100, +111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108, +105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0, +116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, + 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101, +115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, + 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108, +100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102, +114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99, +101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101, +110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105, +116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, + 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110, +100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0, +119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118, +101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103, +108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, + 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, + 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, + 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, + 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114, +101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110, +116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105, +110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101, +120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, + 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0, +100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122, +101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, + 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118, +101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, + 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, + 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116, +121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114, +115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105, +110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, + 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114, +115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101, +114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115, +105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0, +102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, + 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105, +103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0, +108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, + 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105, +112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97, +108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99, +117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102, +115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105, +115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, + 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100, +101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, + 0,115,101,113, 98, 97,115,101, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0, +115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42, +101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110, +100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111, +108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, + 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, + 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99, +102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105, +100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109, +112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, + 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, + 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73, +110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95, +115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, + 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116, +111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120, +102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, + 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, + 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115, +116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0, +102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, + 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, + 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105, +115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97, +114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117, +101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111, +110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111, +112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112, +111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102, +114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111, +116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, + 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, + 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, + 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105, +110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114, +111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101, +116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, 97, +105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, + 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95, +105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110, +101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, + 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110, +103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97, +116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110, +101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, + 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110, +108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111, +116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100, +105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0, +102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97, +109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97, +109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102, +108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101, +100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104, +101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106, +101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, + 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, + 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, + 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116, +104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, + 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111, +110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115,101, +100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115, +105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103, +104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, + 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, + 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115, +116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, + 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118, +105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97, +116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0, +105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111, +110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, + 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, + 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, + 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102, +110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107, +108,105,110,119,101,105,103,104,116, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111, +120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, + 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0, +105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, + 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110, +115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120, +118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115, +116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, + 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, + 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105, +109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, + 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114, +111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115, +112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101, +114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112, +111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103, +108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117, +109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115, +101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99, +107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118, +111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, + 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, + 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105, +110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97, +120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, + 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105, +115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, + 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, + 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112, +117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, + 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42, +115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0, +111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108, +105,110,107, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0, +108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, + 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111, +109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97, +100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112, +101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99, +107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104, +114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100, +101,120, 0, 97,108,108,116,121,112,101,115, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116, +115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42, +112,114,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97, +120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0, +112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105, +100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110, +116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, + 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, + 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, + 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0, +102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105, +111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98, +116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108, +109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112, +114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108, +103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105, +108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105, +108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, + 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, + 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101, +115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0, +119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101, +115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, + 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112, +108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97, +118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, + 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108, +112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, + 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, + 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, + 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117, +102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103, +104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95, +114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, + 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101, +116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105, +109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116, +104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97, +110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116, +117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97, +100,105,117,115, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118, +101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42, +108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, + 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42, +103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114, +116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, + 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0, +114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101, +116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118, +101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121, +105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105, +101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99, +111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, + 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114, +105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112, +104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0, +100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, + 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, + 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97, +100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97, +108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105, +116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, + 95,111,102,102,115,101,116, 91, 50, 93, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102, +121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, + 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105, +109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110, +100, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116,102, + 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118, +101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, + 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, + 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95, +110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115, +105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100, +102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, + 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, + 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95, +101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110, +103,116,104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105, +110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95, +108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105, +108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, + 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, + 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99, +104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99, +104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111, +117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102, +114, 97,109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111, +116,117,110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99, +104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, + 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, + 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102, +101, 99,116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115, +112,114,105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, + 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, + 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95, +115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101, +102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105, +109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105, +100,101,114, 95,102,114,105, 99,116,105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111, +108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111, +117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99, +116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99, +111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116, +105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, + 97,110, 99,101, 95,114,101,112,101,108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, + 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, + 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, + 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42, +115, 98,117,102,102,101,114, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118, +101,108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105, +110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, + 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113, +117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100, +114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109, +101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, + 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101, +110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0, +109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97, +100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, + 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97, +119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103, +101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102, +116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112, +116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, + 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, + 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, + 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111, +112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116, +115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, + 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, + 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97, +102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, + 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101, +112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0, +116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95, +116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, + 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105, +110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, + 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97, +112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101, +120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101, +121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105, +118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115, +116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100, +109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99, +101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97, +108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105, +122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115, +116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, + 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115, +116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97, +110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97, +105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, + 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109, +112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, + 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115, +112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109, +100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42, +116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, + 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, + 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0, +110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101, +115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, + 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0, +112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105, +109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118, +101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111, +117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, + 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, + 93, 0, 0, 0, 84, 89, 80, 69,205, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104, 111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0, 118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50, 115, 0,118,101, 99, 50,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, @@ -10226,7 +11041,7 @@ char datatoc_startup_blend[]= { 105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0, 32, 5,112, 0, 36, 0, 56, 0, -112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0, 16, 6,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, +112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0,184, 5,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, 112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0,104, 0, 64, 1, 40, 1, 8, 1,136, 0,216, 1, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0,152, 1, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, @@ -10235,12 +11050,12 @@ char datatoc_startup_blend[]= { 248, 0, 80, 0,136, 0, 0, 0,152, 0, 48, 0, 16, 2,160, 0, 0, 0,120, 0, 0, 0, 0, 0, 96, 0, 8, 0, 8, 0, 48, 1, 112, 0, 16, 2,104, 0,128, 0, 88, 0, 96, 0,200, 1,144, 0,136, 0, 80, 0,144, 0,112, 0,208, 0, 16, 0, 16, 1, 48, 0, 0, 0,152, 0,184, 0,104, 0, 48, 0, 24, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 12, 0,224, 1, 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0, 0, 4, 64, 0, 24, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 12, 0,224, 1, 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0,168, 3, 64, 0, 24, 0, 16, 0,104, 0, 96, 0, 24, 0,248, 2, 48, 0, 16, 0,168, 0, 88, 0, 96, 0, 56, 0,192, 1, 32, 0, 8, 0, 24, 0, 80, 2, 0, 0, 0, 0, 88, 0, 96, 3, 0, 0, 0, 0, 0, 0, 0, 0, 56, 1, 56, 0,144, 0, 64, 0,240, 0,104, 0,248, 0,240, 0, 96, 2,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,120, 2, 64, 0, 24, 0, 216, 0, 48, 1, 72, 0,200, 2, 40, 0,136, 1,104, 0,216, 0,160, 0,136, 1, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2, -120, 1, 16, 0, 88, 30, 80, 0, 56, 0,112, 13,216, 0, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 32, 1, +120, 1, 16, 0, 88, 30, 80, 0, 56, 0,184, 13,216, 0, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 32, 1, 88, 0, 16, 0, 8, 0, 44, 0, 0, 1,240, 0,200, 1, 32, 1, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 32, 0, 72, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, @@ -10446,495 +11261,493 @@ char datatoc_startup_blend[]= { 2, 0,171, 3, 7, 0,133, 2, 4, 0,172, 3, 4, 0,173, 3,162, 0,174, 3, 2, 0,175, 3, 2, 0,244, 0, 7, 0,176, 3, 12, 0,177, 3, 12, 0,178, 3, 12, 0,179, 3, 12, 0,180, 3,163, 0, 64, 1,164, 0,181, 3, 58, 0,182, 3, 2, 0,183, 3, 2, 0,184, 3, 2, 0, 56, 2, 2, 0,185, 3, 7, 0,124, 2, 2, 0,186, 3, 2, 0,187, 3,146, 0,188, 3,134, 0,189, 3, -134, 0,190, 3, 4, 0,191, 3, 4, 0,192, 3, 4, 0,193, 3, 4, 0, 67, 0, 12, 0,194, 3, 12, 0,195, 3, 12, 0,196, 3, - 7, 0,197, 3, 0, 0,198, 3,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 0,251, 2, 7, 0, 69, 1, - 7, 0,252, 2, 7, 0,244, 2, 0, 0, 18, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,199, 3, 2, 0, 15, 0, 2, 0,200, 3, - 7, 0,255, 2,166, 0, 12, 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 0,201, 3, 4, 0,151, 2, 4, 0,202, 3, - 4, 0, 15, 0, 4, 0,203, 3, 7, 0, 69, 1, 7, 0,204, 3, 7, 0,205, 3, 7, 0,149, 2,163, 0, 40, 0, 4, 0, 17, 0, - 2, 0,206, 3, 2, 0,207, 3, 2, 0,244, 2, 2, 0,208, 3, 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, - 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, - 7, 0,221, 3, 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3, - 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, 7, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, - 7, 0,237, 3, 7, 0,238, 3, 7, 0,239, 3, 44, 0,160, 0,167, 0,240, 3, 7, 0,241, 3, 4, 0,195, 2,168, 0, 5, 0, - 58, 0,232, 1, 7, 0,242, 3, 7, 0,243, 3, 2, 0, 17, 0, 2, 0,244, 3,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, - 4, 0, 15, 0, 4, 0,245, 3, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,246, 3, 4, 0,247, 3, - 4, 0,248, 3, 4, 0, 17, 0, 9, 0,249, 3, 9, 0,250, 3, 12, 0,251, 3,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, - 4, 0, 17, 0, 4, 0,252, 3, 4, 0,253, 3, 4, 0,254, 3, 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0,247, 3, - 4, 0,151, 2, 2, 0, 2, 4, 2, 0, 54, 0, 0, 0, 3, 4, 0, 0, 4, 4, 0, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, - 12, 0, 8, 4,171, 0, 9, 4, 9, 0, 10, 4,172, 0, 1, 0, 7, 0, 36, 2,162, 0, 30, 0, 4, 0, 17, 0, 7, 0, 11, 4, - 7, 0, 12, 4, 7, 0, 13, 4, 4, 0, 14, 4, 4, 0, 15, 4, 4, 0, 16, 4, 4, 0, 17, 4, 7, 0, 18, 4, 7, 0, 19, 4, - 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, - 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, - 4, 0, 36, 4, 4, 0, 37, 4, 7, 0, 38, 4, 7, 0,156, 3,164, 0, 54, 0, 4, 0,247, 3, 4, 0, 39, 4,173, 0, 40, 4, -174, 0, 41, 4, 0, 0, 35, 0, 0, 0, 42, 4, 2, 0, 43, 4, 7, 0, 44, 4, 0, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4, - 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 2, 0, 55, 4, - 0, 0, 56, 4, 2, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 0, 0, 60, 4, 4, 0,121, 0, 4, 0, 61, 4, 4, 0, 62, 4, - 2, 0, 63, 4, 2, 0, 64, 4,172, 0, 65, 4, 4, 0, 66, 4, 4, 0, 79, 0, 7, 0, 67, 4, 7, 0, 68, 4, 7, 0, 69, 4, - 7, 0, 70, 4, 2, 0, 71, 4, 2, 0, 72, 4, 2, 0, 73, 4, 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 2, 0, 77, 4, - 2, 0, 78, 4,175, 0, 79, 4, 7, 0, 80, 4, 7, 0, 81, 4,130, 0, 82, 4, 12, 0, 4, 3,168, 0, 83, 4, 7, 0, 84, 4, - 7, 0, 85, 4, 7, 0, 86, 4, 0, 0, 87, 4,176, 0, 1, 0, 7, 0, 88, 4,146, 0, 52, 0,145, 0, 89, 4, 2, 0, 15, 0, - 2, 0, 90, 4, 2, 0, 91, 4, 2, 0, 92, 4, 7, 0, 93, 4, 2, 0, 94, 4, 2, 0, 95, 4, 7, 0, 96, 4, 2, 0, 97, 4, - 2, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 4, 0,104, 4, 4, 0,105, 4, - 7, 0,106, 4, 4, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 73, 0,111, 4, 73, 0,112, 4, 0, 0,113, 4, - 7, 0,114, 4, 7, 0,115, 4, 28, 0, 77, 0, 2, 0,116, 4, 0, 0,117, 4, 0, 0,118, 4, 7, 0,119, 4, 4, 0,120, 4, - 7, 0,121, 4, 7, 0,122, 4, 4, 0,123, 4, 4, 0, 17, 0, 7, 0,124, 4, 7, 0,125, 4, 7, 0,126, 4,176, 0,127, 4, - 4, 0, 51, 0, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, - 4, 0,135, 4, 4, 0, 35, 0,177, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,170, 0, 2, 0, 73, 1, 2, 0,107, 1, - 2, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,153, 1, - 7, 0,155, 1, 7, 0,154, 1, 7, 0, 67, 0, 4, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, - 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, 2, 0,151, 4, 2, 0, 72, 1, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, - 2, 0,155, 4, 2, 0,156, 4, 2, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, - 7, 0,163, 4, 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4, 2, 0,170, 4, - 2, 0,171, 4, 2, 0,172, 4, 2, 0,173, 4, 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4, 2, 0,178, 4, - 2, 0,179, 4, 2, 0,180, 4, 2, 0,181, 4, 7, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 7, 0,186, 4, - 7, 0,187, 4, 7, 0,188, 4, 2, 0,189, 4, 2, 0,190, 4, 2, 0,191, 4, 2, 0,192, 4, 2, 0,193, 4, 2, 0, 17, 0, - 7, 0,194, 4, 7, 0,195, 4, 28, 0, 77, 0, 43, 0,125, 1, 2, 0,126, 1, 2, 0,196, 4, 22, 0,146, 0,178, 0, 8, 0, -178, 0, 0, 0,178, 0, 1, 0, 4, 0,134, 3, 4, 0,197, 4, 4, 0, 17, 0, 2, 0,198, 4, 2, 0,199, 4, 24, 0,159, 0, -179, 0, 13, 0, 9, 0,200, 4, 9, 0,201, 4, 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, - 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, 4, 0,210, 4, 4, 0, 35, 0, 0, 0,211, 4,180, 0, 5, 0, 9, 0,212, 4, - 9, 0,213, 4, 4, 0,214, 4, 4, 0, 67, 0, 0, 0,215, 4,181, 0, 17, 0, 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, - 4, 0,219, 4, 4, 0,220, 4, 4, 0,221, 4, 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, - 4, 0,227, 4, 2, 0,228, 4, 2, 0,229, 4, 4, 0,230, 4, 4, 0,231, 4, 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, - 4, 0,218, 4, 4, 0,232, 4, 4, 0,233, 4, 4, 0,234, 4, 4, 0,235, 4, 7, 0,236, 4, 4, 0,237, 4, 4, 0, 88, 0, - 4, 0,238, 4, 4, 0,239, 4, 4, 0,240, 4, 4, 0,241, 4, 4, 0,242, 4, 18, 0, 28, 0,183, 0, 7, 0, 4, 0,243, 4, - 7, 0,244, 4, 7, 0,245, 4, 7, 0,246, 4, 4, 0,247, 4, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0, -184, 0, 1, 0, 0, 0, 18, 0, 57, 0,248, 4, 58, 0,249, 4, 4, 0,134, 3, 4, 0,250, 4, 4, 0,251, 4, 4, 0, 35, 0, - 4, 0,252, 4, 4, 0,253, 4,185, 0,110, 0,179, 0,254, 4,180, 0,255, 4,181, 0, 0, 5,182, 0, 1, 5, 4, 0, 19, 3, - 4, 0,121, 0, 4, 0, 61, 4, 7, 0, 2, 5, 4, 0, 3, 5, 4, 0, 4, 5, 4, 0, 5, 5, 4, 0, 6, 5, 2, 0, 17, 0, - 2, 0, 7, 5, 7, 0, 8, 5, 7, 0, 9, 5, 7, 0, 10, 5, 7, 0, 11, 5, 7, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, - 2, 0, 15, 5, 2, 0, 16, 5, 2, 0,243, 0, 2, 0, 17, 5, 4, 0, 18, 5, 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 94, 1, - 2, 0,104, 0, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, - 2, 0, 28, 5, 2, 0, 29, 5, 2, 0, 95, 1, 2, 0, 30, 5, 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 4, 0, 34, 5, - 4, 0, 72, 1, 4, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5, 2, 0, 41, 5, - 2, 0, 42, 5, 2, 0, 43, 5, 16, 0, 44, 5, 16, 0, 45, 5, 15, 0, 46, 5, 12, 0, 47, 5, 2, 0, 48, 5, 2, 0, 49, 5, - 7, 0, 50, 5, 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 4, 0, 54, 5, 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, - 7, 0, 58, 5, 2, 0, 59, 5, 2, 0, 60, 5, 2, 0, 61, 5, 2, 0, 62, 5, 2, 0, 63, 5, 2, 0, 64, 5, 7, 0, 65, 5, - 7, 0, 66, 5, 7, 0, 67, 5, 0, 0, 68, 5, 0, 0, 69, 5, 4, 0, 70, 5, 2, 0, 71, 5, 2, 0,229, 1, 0, 0, 72, 5, - 7, 0, 73, 5, 7, 0, 74, 5, 0, 0, 75, 5, 0, 0, 76, 5, 0, 0, 77, 5, 0, 0, 78, 5, 4, 0, 79, 5, 2, 0, 80, 5, - 2, 0, 81, 5, 7, 0, 82, 5, 7, 0, 83, 5, 2, 0, 84, 5, 2, 0, 85, 5, 7, 0, 86, 5, 2, 0, 87, 5, 2, 0, 88, 5, - 4, 0, 89, 5, 2, 0, 90, 5, 2, 0, 91, 5, 2, 0, 92, 5, 2, 0, 93, 5, 7, 0, 94, 5, 7, 0, 67, 0, 34, 0, 95, 5, - 0, 0, 96, 5,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, - 2, 0, 87, 0, 7, 0,100, 5, 7, 0, 67, 0,187, 0, 7, 0, 2, 0,212, 2, 2, 0, 72, 1, 2, 0, 76, 3, 2, 0,101, 5, - 7, 0,102, 5, 7, 0, 67, 0, 34, 0,103, 5,188, 0, 5, 0, 7, 0,104, 5, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 67, 0, - 0, 0,229, 1,189, 0, 28, 0, 7, 0,149, 4, 7, 0,150, 4, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,105, 5, 2, 0,196, 4, - 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4, 2, 0,157, 4,188, 0,106, 5, 2, 0, 13, 5, - 2, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, 2, 0,243, 0, 2, 0, 17, 5, 2, 0,107, 5, 2, 0,108, 5,187, 0,109, 5, - 2, 0,110, 5, 2, 0, 19, 5, 2, 0, 22, 5, 2, 0, 23, 5, 7, 0,111, 5, 7, 0, 87, 0,190, 0, 6, 0,190, 0, 0, 0, -190, 0, 1, 0, 4, 0,246, 3, 0, 0, 3, 4, 4, 0, 17, 0, 24, 0,112, 5,191, 0, 4, 0,192, 0,113, 5, 9, 0,114, 5, - 0, 0,115, 5, 4, 0, 88, 0,193, 0, 8, 0,191, 0,116, 5, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0,117, 5, 2, 0,118, 5, - 2, 0,119, 5, 4, 0, 87, 0, 9, 0,120, 5,194, 0, 6, 0, 2, 0,104, 0, 2, 0,252, 3, 2, 0,121, 5, 2, 0,206, 2, - 4, 0, 17, 0, 7, 0,223, 2,195, 0, 14, 0, 2, 0, 17, 0, 2, 0,122, 5, 2, 0,123, 5, 2, 0,124, 5,194, 0,125, 5, - 9, 0,120, 5, 7, 0,126, 5, 7, 0, 54, 0, 4, 0,127, 5, 4, 0,128, 5, 4, 0,129, 5, 4, 0,130, 5, 38, 0,117, 0, - 24, 0,159, 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 0,131, 5, 7, 0,132, 5,197, 0, 14, 0,191, 0,116, 5, - 4, 0, 88, 0, 4, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5, 4, 0,137, 5, 4, 0,138, 5, 7, 0,139, 5, - 7, 0,140, 5, 4, 0,141, 5, 7, 0,142, 5, 7, 0,143, 5, 4, 0, 35, 0,198, 0, 7, 0,191, 0,116, 5, 2, 0, 17, 0, - 2, 0, 35, 0, 4, 0, 34, 0, 4, 0,144, 5, 79, 0,145, 5, 9, 0,120, 5,199, 0, 82, 0,198, 0,146, 5,198, 0,147, 5, -197, 0, 99, 3, 7, 0,148, 5, 2, 0,149, 5, 2, 0,150, 5, 7, 0,151, 5, 7, 0,152, 5, 2, 0,252, 3, 2, 0,153, 5, - 7, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, 2, 0,157, 5, 2, 0,127, 5, 2, 0,158, 5, 2, 0,159, 5, 2, 0,160, 5, - 2, 0,161, 5, 7, 0,162, 5, 7, 0,163, 5, 7, 0,164, 5, 2, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5, 2, 0,168, 5, - 2, 0,169, 5, 2, 0,170, 5, 2, 0,171, 5, 2, 0,172, 5,193, 0,173, 5,195, 0,174, 5, 7, 0,175, 5, 7, 0,176, 5, - 7, 0,177, 5, 2, 0,178, 5, 2, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, - 0, 0,185, 5, 2, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 7, 0,192, 5, - 7, 0,193, 5, 7, 0,194, 5, 7, 0,195, 5, 7, 0,196, 5, 2, 0,197, 5, 0, 0,198, 5, 0, 0,199, 5, 0, 0,200, 5, - 0, 0,201, 5, 24, 0,202, 5, 0, 0,203, 5, 0, 0,204, 5, 0, 0,205, 5, 0, 0,206, 5, 0, 0,207, 5, 0, 0,208, 5, - 0, 0,209, 5, 0, 0,210, 5, 0, 0,211, 5, 0, 0,212, 5, 2, 0,213, 5, 2, 0,214, 5, 2, 0,215, 5, 2, 0,216, 5, - 0, 0,217, 5, 0, 0,196, 4, 4, 0,218, 5, 2, 0,219, 5, 2, 0, 87, 0, 4, 0,220, 5, 7, 0,221, 5, 7, 0,222, 5, -200, 0, 8, 0, 4, 0,223, 5, 4, 0,224, 5, 4, 0,225, 5, 4, 0,226, 5, 4, 0,227, 5, 4, 0,228, 5, 4, 0, 51, 0, - 4, 0,121, 2,201, 0, 4, 0, 7, 0,229, 5, 0, 0,230, 5, 0, 0,231, 5, 2, 0, 17, 0,202, 0, 4, 0, 7, 0,232, 5, - 4, 0, 17, 0, 4, 0,233, 5, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 0,112, 5,177, 0,234, 5, - 38, 0,235, 5, 12, 0,236, 5,178, 0,237, 5, 24, 0,238, 5, 7, 0,239, 5, 7, 0,240, 5, 7, 0,241, 5, 7, 0,242, 5, - 4, 0,134, 3, 4, 0,243, 5, 4, 0,244, 5, 4, 0,245, 5, 4, 0,246, 5, 2, 0, 17, 0, 2, 0, 66, 1, 53, 0, 61, 1, -203, 0,247, 5,199, 0,248, 5,204, 0,249, 5,185, 0,177, 0,183, 0,250, 5, 12, 0, 98, 0, 12, 0,251, 5, 9, 0,252, 5, - 9, 0,253, 5, 9, 0,254, 5, 9, 0,255, 5,205, 0, 0, 6, 2, 0, 1, 6, 2, 0, 2, 6, 2, 0,244, 0, 2, 0, 3, 6, - 4, 0, 4, 6, 4, 0, 5, 6, 12, 0, 6, 6,188, 0,106, 5,189, 0, 7, 6,201, 0, 8, 6,159, 0,112, 3,202, 0, 9, 6, -206, 0, 11, 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,235, 0, 37, 0, 60, 1, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0,104, 0, - 7, 0, 10, 6, 2, 0, 11, 6, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, - 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, 7, 0, 18, 6, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 79, 1, 7, 0, 21, 6, - 7, 0, 22, 6, 7, 0, 23, 6, 7, 0, 24, 6, 7, 0,166, 0, 2, 0, 25, 6, 2, 0, 26, 6, 0, 0, 27, 6, 0, 0,196, 4, - 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, 2, 0, 11, 6, 7, 0, 31, 6, 7, 0, 32, 6, 62, 0, 33, 6,159, 0,112, 3, -207, 0, 34, 6,208, 0, 35, 6,209, 0, 36, 6,210, 0, 37, 6,211, 0, 38, 6, 7, 0, 39, 6, 2, 0, 40, 6, 2, 0, 41, 6, - 7, 0, 42, 6, 7, 0, 43, 6, 7, 0, 44, 6,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, - 7, 0, 47, 6, 2, 0, 48, 6, 7, 0, 20, 6, 7, 0, 79, 1, 7, 0, 87, 0, 4, 0, 49, 6, 2, 0, 30, 6, 2, 0, 11, 6, - 24, 0,112, 5, 24, 0, 50, 6, 12, 0, 51, 6,206, 0, 52, 6,212, 0, 34, 6, 0, 0, 53, 6, 4, 0,134, 3, 4, 0,243, 5, - 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 2, 0, 17, 0, 2, 0, 21, 2, 7, 0,110, 0, 7, 0, 58, 6, - 7, 0, 59, 6, 7, 0, 60, 6, 7, 0,166, 0, 7, 0,239, 5, 2, 0, 61, 6, 2, 0, 62, 6, 2, 0, 63, 6, 0, 0, 64, 6, - 0, 0, 65, 6, 0, 0, 66, 6, 0, 0, 67, 6, 0, 0, 68, 6, 12, 0, 69, 6, 12, 0, 70, 6, 12, 0, 71, 6, 2, 0, 72, 6, - 2, 0,134, 2, 2, 0, 73, 6, 0, 0, 74, 6, 0, 0, 75, 6, 9, 0, 76, 6,159, 0,112, 3,214, 0, 24, 0, 16, 0, 34, 0, - 16, 0, 61, 0, 15, 0, 77, 6, 15, 0, 78, 6, 15, 0, 79, 6, 7, 0, 80, 6, 7, 0, 81, 6, 7, 0, 82, 6, 7, 0, 83, 6, - 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 86, 6, 2, 0, 87, 6, 2, 0, 88, 6, 2, 0, 17, 0, 2, 0, 89, 6, 2, 0, 90, 6, - 2, 0, 91, 6, 2, 0, 92, 6, 2, 0, 93, 6, 2, 0, 57, 6, 7, 0, 94, 6, 4, 0, 95, 6, 4, 0, 96, 6,213, 0, 6, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6,215, 0, 8, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 0, 0, 97, 6, 0, 0,176, 0,216, 0, 14, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6,214, 0, 98, 6,217, 0, 99, 6, - 12, 0,100, 6, 2, 0, 72, 1, 2, 0,101, 6, 4, 0, 17, 0, 7, 0,102, 6, 4, 0, 57, 6,218, 0, 21, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6,208, 0, 35, 6,214, 0, 98, 6, 2, 0,103, 6, - 2, 0,104, 6, 2, 0,105, 6, 2, 0,106, 6, 2, 0, 89, 6, 2, 0,107, 6, 2, 0,108, 6, 0, 0, 17, 0, 0, 0, 35, 0, - 9, 0, 62, 2, 4, 0,109, 6, 4, 0,110, 6, 19, 0,111, 6,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, - 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6,214, 0, 98, 6, 7, 0, 86, 2, 7, 0, 87, 2, 2, 0,103, 6, 2, 0,112, 6, - 2, 0,113, 6, 2, 0,114, 6, 4, 0, 17, 0, 7, 0,115, 6, 4, 0, 11, 6, 4, 0, 35, 0,159, 0,112, 3,220, 0, 16, 0, - 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, 0, 0,119, 6, 0, 0,120, 6, 0, 0,121, 6, 4, 0,122, 6, 4, 0,123, 6, - 4, 0,124, 6, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,125, 6, 2, 0,126, 6, 2, 0,172, 1, 2, 0,127, 6, 0, 0,128, 6, -221, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 4, 0,129, 6,220, 0,130, 6,222, 0,131, 6, - 12, 0,132, 6, 12, 0,133, 6,223, 0,134, 6,211, 0,135, 6,224, 0,136, 6, 2, 0,137, 6, 2, 0,138, 6, 2, 0,139, 6, - 2, 0, 67, 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, -214, 0, 98, 6, 12, 0,140, 6,226, 0,141, 6, 0, 0,142, 6,227, 0,143, 6, 2, 0, 17, 0, 2, 0,144, 6, 2, 0,145, 6, - 2, 0,146, 6,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 4, 0, 17, 0, 39, 0,227, 2, - 37, 0, 60, 1, 51, 0,147, 6,229, 0,148, 6,230, 0,149, 6,159, 0,112, 3, 7, 0,150, 6, 7, 0, 86, 2, 7, 0, 87, 2, - 7, 0,115, 6, 7, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6, 2, 0,154, 6, 2, 0,155, 6, 2, 0,156, 6, 0, 0,157, 6, - 0, 0,158, 6, 0, 0,159, 6, 0, 0, 57, 6,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, - 7, 0, 47, 6, 2, 0, 48, 6, 2, 0,101, 6, 2, 0, 17, 0, 4, 0, 35, 0,217, 0, 99, 6,214, 0, 98, 6,232, 0, 31, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 34, 0,160, 6, 4, 0,161, 6, - 4, 0,162, 6, 2, 0, 88, 0, 2, 0,163, 6, 2, 0,164, 6, 0, 0,165, 6, 0, 0,166, 6, 4, 0,167, 6, 4, 0,168, 6, - 4, 0,169, 6, 2, 0,170, 6, 2, 0,171, 6, 2, 0,172, 6, 2, 0,173, 6, 7, 0,174, 6, 15, 0,175, 6, 15, 0,176, 6, - 4, 0,177, 6, 4, 0,178, 6, 0, 0,179, 6, 0, 0,180, 6, 2, 0,181, 6, 0, 0,192, 2, 9, 0,182, 6,233, 0, 10, 0, - 19, 0, 29, 0, 9, 0,183, 6, 9, 0,184, 6, 9, 0,185, 6, 9, 0,186, 6, 9, 0,187, 6, 4, 0, 88, 0, 4, 0,188, 6, - 0, 0,189, 6, 0, 0,190, 6,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, -233, 0,191, 6, 2, 0, 88, 0, 2, 0,163, 6, 4, 0, 87, 0, 9, 0,192, 6,235, 0, 3, 0,235, 0, 0, 0,235, 0, 1, 0, - 7, 0,193, 6,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6,214, 0, 98, 6, - 12, 0,194, 6, 4, 0,195, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,196, 6,237, 0, 26, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6,214, 0, 98, 6, 19, 0,197, 6, 19, 0, 78, 0, 2, 0, 17, 0, - 2, 0,163, 6, 7, 0,198, 6, 9, 0,199, 6, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0,115, 6, 7, 0, 44, 6, 7, 0,200, 6, - 7, 0,201, 6, 53, 0, 61, 1, 53, 0,202, 6, 4, 0,203, 6, 2, 0,204, 6, 2, 0,244, 0, 12, 0,205, 6,159, 0,112, 3, -238, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 2, 0, 17, 0, - 2, 0,143, 3, 4, 0, 35, 0,159, 0,112, 3,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, - 7, 0, 47, 6, 2, 0, 48, 6,214, 0, 98, 6,222, 0,131, 6, 0, 0,206, 6, 0, 0,117, 6, 0, 0,118, 6, 2, 0, 15, 0, - 2, 0,207, 6, 2, 0, 17, 0, 2, 0,125, 6, 9, 0,199, 6, 4, 0,122, 6, 4, 0,208, 6, 4, 0,209, 6, 4, 0,210, 6, - 15, 0,211, 6, 15, 0,212, 6, 7, 0,213, 6, 7, 0,214, 6, 7, 0,215, 6, 7, 0,198, 6, 2, 0,216, 6, 2, 0,234, 0, - 2, 0,172, 1, 2, 0,217, 6, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,218, 6, 2, 0,219, 6, 9, 0,220, 6, 9, 0,221, 6, - 9, 0,222, 6, 9, 0,223, 6, 9, 0,224, 6, 2, 0,225, 6, 0, 0,226, 6, 49, 0,227, 6,240, 0, 7, 0,240, 0, 0, 0, -240, 0, 1, 0, 4, 0,228, 6, 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,229, 6, 4, 0, 15, 0,241, 0, 14, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 4, 0,164, 6, 4, 0, 35, 0, 12, 0,230, 6, - 12, 0,231, 6, 0, 0,232, 6, 0, 0,233, 6, 4, 0,234, 6, 4, 0,235, 6,242, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 45, 6, 4, 0, 46, 6, 4, 0, 35, 0, 0, 0,236, 6,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, - 4, 0, 46, 6, 7, 0, 47, 6,244, 0,237, 6,214, 0, 98, 6,245, 0,238, 6, 2, 0, 72, 1, 2, 0,239, 6, 2, 0, 86, 2, - 2, 0, 87, 2, 2, 0, 17, 0, 2, 0,155, 6, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, 0, 0,240, 6, - 2, 0,241, 6, 2, 0,242, 6, 2, 0,243, 6, 2, 0, 35, 0,247, 0, 12, 0, 2, 0,242, 6, 2, 0,244, 6, 2, 0,245, 6, - 0, 0,192, 2, 2, 0,246, 6, 2, 0,247, 6, 2, 0,248, 6, 2, 0,249, 6, 2, 0,250, 6, 2, 0, 89, 6, 7, 0,251, 6, - 7, 0,252, 6,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 0, 3, 4,247, 0,253, 6,247, 0,254, 6,247, 0,255, 6, -247, 0, 0, 7, 7, 0, 1, 7, 2, 0, 2, 7, 2, 0, 3, 7, 2, 0, 4, 7, 2, 0, 5, 7, 2, 0, 6, 7, 2, 0, 7, 7, - 2, 0, 8, 7, 2, 0, 9, 7, 2, 0, 10, 7, 2, 0, 11, 7,249, 0, 10, 0, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, - 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 2, 0, 18, 7, 2, 0, 19, 7, 2, 0, 20, 7, 2, 0, 21, 7,250, 0, 8, 0, - 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 7, 0, 10, 6, 7, 0, 35, 0, -251, 0, 18, 0,249, 0, 28, 7,249, 0, 29, 7,249, 0, 30, 7,249, 0, 31, 7,249, 0, 32, 7,249, 0, 33, 7,249, 0, 34, 7, -249, 0, 35, 7,249, 0, 36, 7,249, 0, 37, 7,249, 0, 38, 7,249, 0, 39, 7,249, 0, 40, 7,249, 0, 41, 7,249, 0, 42, 7, -249, 0, 43, 7,250, 0, 44, 7, 0, 0, 45, 7,252, 0, 97, 0, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 16, 7, 0, 0, 48, 7, - 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, - 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, - 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, - 0, 0, 73, 7, 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, - 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, - 0, 0, 89, 7, 0, 0, 90, 7, 0, 0, 91, 7, 0, 0, 92, 7, 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, - 0, 0, 97, 7, 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, - 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, - 0, 0,113, 7, 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, - 0, 0,121, 7, 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, - 0, 0,129, 7, 0, 0,130, 7, 0, 0,131, 7, 0, 0,132, 7, 0, 0,133, 7, 0, 0,134, 7, 0, 0,135, 7, 0, 0,136, 7, - 0, 0,137, 7, 0, 0,138, 7, 0, 0,139, 7, 0, 0,140, 7, 0, 0,141, 7,253, 0, 5, 0, 0, 0,142, 7, 0, 0, 70, 7, - 0, 0, 72, 7, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0,251, 0,143, 7, -252, 0,144, 7,252, 0,145, 7,252, 0,146, 7,252, 0,147, 7,252, 0,148, 7,252, 0,149, 7,252, 0,150, 7,252, 0,151, 7, -252, 0,152, 7,252, 0,153, 7,252, 0,154, 7,252, 0,155, 7,252, 0,156, 7,252, 0,157, 7,252, 0,158, 7,252, 0,159, 7, -252, 0,160, 7,252, 0,161, 7,253, 0,162, 7, 4, 0,163, 7, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0,255, 0, 1, 0, - 0, 0,164, 7, 0, 1, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,133, 2, 7, 0,165, 7, 7, 0, 36, 2, 1, 1, 90, 0, - 4, 0, 17, 0, 4, 0,166, 7, 4, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, - 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, 0, 0,177, 7, 4, 0,178, 7, 2, 0,179, 7, 2, 0,180, 7, - 2, 0,181, 7, 2, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, 4, 0,186, 7, 2, 0,187, 7, 2, 0,188, 7, - 4, 0,189, 7, 4, 0,190, 7, 4, 0,191, 7, 4, 0,192, 7, 4, 0,193, 7, 4, 0,230, 6, 4, 0,194, 7, 2, 0,195, 7, - 2, 0,196, 7, 2, 0,197, 7, 2, 0,198, 7, 12, 0,199, 7, 12, 0,200, 7, 12, 0,201, 7, 12, 0,202, 7, 12, 0,203, 7, - 0, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7, 2, 0,207, 7, 2, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, - 2, 0,212, 7, 0, 1,213, 7, 2, 0,214, 7, 2, 0,215, 7, 2, 0,216, 7, 2, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, - 2, 0,220, 7, 2, 0,221, 7, 4, 0,222, 7, 4, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, - 2, 0,228, 7, 2, 0,229, 7, 2, 0,230, 7, 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, - 2, 0,236, 7, 2, 0,237, 7, 2, 0,238, 7, 2, 0,239, 7, 2, 0,240, 7, 2, 0,196, 4, 0, 0,241, 7, 0, 0,242, 7, - 7, 0,243, 7, 2, 0,178, 5, 2, 0,179, 5, 2, 0,244, 7, 2, 0,245, 7, 7, 0,222, 2, 47, 0,246, 7, 7, 0,247, 7, - 4, 0,229, 1, 0, 0,248, 7, 2, 1, 24, 0, 19, 0, 29, 0, 12, 0,249, 7, 12, 0,250, 7, 12, 0,251, 7, 12, 0, 45, 6, - 38, 0,117, 0, 38, 0,252, 7, 4, 0,253, 7, 4, 0, 87, 0, 2, 0,254, 7, 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 1, 8, - 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 4, 8, 2, 0, 5, 8, 2, 0, 6, 8, 2, 0, 7, 8, 2, 0, 8, 8, 2, 0, 35, 0, -211, 0, 9, 8, 9, 0, 10, 8, 2, 0, 11, 8, 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1, 12, 8, 13, 0, 13, 8, - 4, 0, 17, 0, 4, 1, 7, 0, 4, 1, 0, 0, 4, 1, 1, 0, 3, 1, 14, 8, 3, 1, 15, 8, 2, 0, 45, 5, 2, 0, 17, 0, - 4, 0, 35, 0, 5, 1, 25, 0, 5, 1, 0, 0, 5, 1, 1, 0, 6, 1, 16, 8, 7, 1,136, 6, 0, 0, 17, 8, 0, 0, 18, 8, - 0, 0, 19, 8, 2, 0, 20, 8, 2, 0, 21, 8, 2, 0, 22, 8, 2, 0, 23, 8, 2, 0, 24, 8, 2, 0, 35, 0, 2, 0, 17, 0, - 2, 0, 25, 8, 2, 0, 26, 8, 2, 0, 27, 8, 4, 0, 28, 8, 5, 1, 29, 8, 9, 0, 30, 8, 4, 0, 31, 8, 4, 0, 32, 8, - 4, 0, 33, 8, 4, 0, 34, 8, 0, 0, 35, 8,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 0, 3, 1, 14, 8, 3, 1, 15, 8, - 3, 1, 36, 8, 3, 1, 37, 8, 2, 1, 38, 8, 15, 0, 49, 0, 0, 0, 46, 6, 0, 0, 39, 8, 2, 0, 90, 6, 2, 0, 91, 6, - 2, 0, 40, 8, 2, 0, 35, 0, 2, 0, 2, 8, 2, 0,229, 6, 2, 0, 17, 0, 8, 1, 16, 8, 12, 0, 41, 8, 12, 0, 45, 6, - 12, 0, 42, 8, 12, 0, 43, 8, 9, 1, 24, 0, 9, 1, 0, 0, 9, 1, 1, 0,214, 0, 98, 6, 15, 0, 44, 8, 15, 0, 45, 8, - 2, 0, 90, 6, 2, 0, 91, 6, 2, 0, 46, 8, 2, 0, 47, 8, 2, 0, 48, 8, 2, 0, 17, 0, 7, 0, 82, 2, 2, 0, 22, 8, - 2, 0, 23, 8, 2, 0, 1, 8, 2, 0, 49, 8, 2, 0, 6, 8, 2, 0,196, 4, 10, 1, 16, 8, 12, 0, 50, 8, 12, 0, 51, 8, - 12, 0, 42, 8, 0, 0, 52, 8, 9, 0, 53, 8, 11, 1, 14, 0, 0, 0, 54, 8, 2, 0, 55, 8, 2, 0, 56, 8, 2, 0, 57, 8, - 2, 0, 58, 8, 2, 0, 31, 5, 2, 0, 26, 5, 2, 1, 59, 8, 38, 0, 60, 8, 4, 0, 61, 8, 4, 0, 62, 8, 4, 0, 63, 8, - 4, 0, 35, 0, 0, 0, 64, 8, 12, 1, 3, 0, 0, 0, 65, 8, 4, 0, 66, 8, 4, 0, 67, 8, 13, 1, 4, 0, 4, 0,161, 6, - 4, 0, 68, 8, 4, 0,167, 6, 4, 0, 69, 8, 14, 1, 2, 0, 4, 0, 70, 8, 4, 0, 71, 8, 15, 1, 5, 0, 7, 0, 72, 8, - 7, 0, 73, 8, 7, 0, 74, 8, 4, 0, 17, 0, 4, 0, 35, 0, 16, 1, 6, 0, 0, 0, 75, 8, 0, 0,118, 6, 41, 0,130, 0, - 2, 0,104, 0, 2, 0, 30, 5, 4, 0, 35, 0, 17, 1, 14, 0, 17, 1, 0, 0, 17, 1, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, - 4, 0, 26, 0, 4, 0, 76, 8, 4, 0, 77, 8, 4, 0, 78, 8, 12, 1, 79, 8, 0, 0, 75, 8, 16, 1,106, 3, 13, 1, 80, 8, - 14, 1, 81, 8, 15, 1, 82, 8, 18, 1, 12, 0, 0, 0,253, 1, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, - 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0, 9, 0, 83, 8, 9, 0, 84, 8, 9, 0,229, 0, 9, 0,231, 0, 19, 1, 48, 0, - 19, 1, 0, 0, 19, 1, 1, 0, 9, 0, 85, 8, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, - 4, 0, 85, 0, 4, 0, 86, 8, 4, 0, 87, 8, 4, 0, 77, 8, 4, 0, 78, 8, 4, 0, 88, 8, 4, 0,243, 0, 4, 0, 89, 8, - 4, 0, 90, 8, 7, 0, 91, 8, 7, 0, 35, 0, 7, 0, 92, 8, 7, 0, 93, 8, 4, 0,121, 0, 4, 0, 94, 8, 17, 1, 95, 8, - 28, 0, 77, 0, 38, 0,117, 0, 24, 0, 96, 8, 41, 0,130, 0, 7, 0, 97, 8, 7, 0, 98, 8, 18, 1, 62, 1, 19, 1, 99, 8, - 19, 1,100, 8, 19, 1,101, 8, 12, 0,102, 8,245, 0,238, 6, 9, 0,103, 8, 7, 0, 13, 4, 7, 0,104, 8, 7, 0,105, 8, - 4, 0,106, 8, 4, 0,107, 8, 7, 0,108, 8, 9, 0,109, 8, 4, 0,110, 8, 4, 0,111, 8, 4, 0,112, 8, 7, 0,113, 8, - 20, 1, 4, 0, 20, 1, 0, 0, 20, 1, 1, 0, 12, 0,114, 8, 19, 1,115, 8,203, 0, 11, 0, 12, 0,116, 8, 12, 0,102, 8, - 12, 0,117, 8, 19, 1,118, 8, 0, 0,119, 8, 0, 0,120, 8, 4, 0,121, 8, 4, 0,122, 8, 4, 0,123, 8, 4, 0, 35, 0, - 16, 0,124, 8, 21, 1, 4, 0, 7, 0,125, 8, 7, 0, 76, 3, 2, 0,126, 8, 2, 0,127, 8, 22, 1, 6, 0, 7, 0,128, 8, - 7, 0,129, 8, 7, 0,130, 8, 7, 0,131, 8, 4, 0,132, 8, 4, 0,133, 8, 23, 1, 13, 0, 7, 0,134, 8, 7, 0,135, 8, - 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, 7, 0,140, 8, 7, 0,141, 8, 7, 0,142, 8, 7, 0,143, 8, - 4, 0,233, 2, 4, 0,144, 8, 4, 0,145, 8, 24, 1, 2, 0, 7, 0,104, 5, 7, 0, 35, 0, 25, 1, 5, 0, 7, 0,146, 8, - 7, 0,147, 8, 4, 0, 88, 0, 4, 0,193, 2, 4, 0,148, 8, 26, 1, 6, 0, 26, 1, 0, 0, 26, 1, 1, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,149, 8, 2, 0, 54, 0, 27, 1, 8, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, - 2, 0,149, 8, 2, 0, 54, 0, 7, 0, 21, 0, 7, 0,121, 0, 28, 1, 45, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,149, 8, 2, 0,239, 0, 2, 0, 55, 4, 2, 0,150, 8, 7, 0,151, 8, 7, 0, 86, 0, 7, 0,246, 2, - 4, 0,152, 8, 4, 0, 79, 0, 4, 0,195, 2, 7, 0,153, 8, 7, 0,154, 8, 7, 0,155, 8, 7, 0,156, 8, 7, 0,157, 8, - 7, 0,158, 8, 7, 0,243, 2, 7, 0, 59, 1, 7, 0,159, 8, 7, 0,160, 8, 7, 0, 35, 0, 7, 0,161, 8, 7, 0,162, 8, - 7, 0,163, 8, 2, 0,164, 8, 2, 0,165, 8, 2, 0,166, 8, 2, 0,167, 8, 2, 0,168, 8, 2, 0,169, 8, 2, 0,170, 8, - 2, 0,171, 8, 2, 0, 21, 2, 2, 0,172, 8, 2, 0, 18, 2, 2, 0,173, 8, 0, 0,174, 8, 0, 0,175, 8, 7, 0,237, 0, - 29, 1,176, 8, 58, 0,232, 1, 30, 1, 16, 0, 30, 1, 0, 0, 30, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,149, 8, - 2, 0,239, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 71, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,177, 8, - 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,227, 0, 5, 0, 2, 0, 15, 0, 2, 0,178, 8, 2, 0, 17, 0, 2, 0,179, 8, - 19, 0,197, 6,226, 0, 3, 0, 4, 0, 66, 0, 4, 0,180, 8,227, 0, 2, 0, 31, 1, 7, 0, 31, 1, 0, 0, 31, 1, 1, 0, - 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 0,181, 8, 32, 1, 5, 0, 0, 0, 18, 0, 7, 0, 79, 1, - 7, 0,182, 8, 4, 0,183, 8, 4, 0, 35, 0, 33, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 0, - 34, 1, 4, 0, 0, 0, 18, 0, 57, 0,184, 8, 7, 0, 79, 1, 7, 0, 35, 0, 35, 1, 6, 0, 2, 0,185, 8, 2, 0,186, 8, - 2, 0, 15, 0, 2, 0,187, 8, 0, 0,188, 8, 0, 0,189, 8, 36, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, - 0, 0,190, 8, 0, 0,191, 8, 37, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 1, 4, 0, 2, 0,192, 8, - 2, 0,193, 8, 2, 0, 17, 0, 2, 0, 35, 0, 39, 1, 6, 0, 0, 0, 18, 0, 0, 0,194, 8, 2, 0,195, 8, 2, 0,243, 2, - 2, 0, 72, 1, 2, 0, 67, 0, 40, 1, 5, 0, 0, 0, 18, 0, 7, 0, 76, 3, 7, 0,146, 4, 2, 0, 17, 0, 2, 0,207, 2, - 41, 1, 3, 0, 0, 0, 18, 0, 4, 0,195, 2, 4, 0,192, 8, 42, 1, 7, 0, 0, 0, 18, 0, 7, 0,146, 4, 0, 0,196, 8, - 0, 0,197, 8, 2, 0, 72, 1, 2, 0, 87, 0, 4, 0,198, 8, 43, 1, 4, 0, 0, 0,199, 8, 0, 0,200, 8, 4, 0, 15, 0, - 7, 0,211, 2, 44, 1, 3, 0, 24, 0,201, 8, 0, 0,202, 8, 0, 0,203, 8, 45, 1, 18, 0, 45, 1, 0, 0, 45, 1, 1, 0, - 2, 0, 15, 0, 2, 0,204, 8, 2, 0, 17, 0, 2, 0,205, 8, 2, 0,206, 8, 2, 0,207, 8, 2, 0, 87, 0, 2, 0, 67, 0, - 0, 0, 18, 0, 9, 0, 2, 0, 46, 1,208, 8, 24, 0, 42, 0, 2, 0,121, 5, 2, 0,104, 8, 2, 0,209, 8, 2, 0, 35, 0, - 47, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0,210, 8, 2, 0, 17, 0, 2, 0,207, 2, 2, 0,211, 8, 4, 0,212, 8, - 4, 0,213, 8, 4, 0,214, 8, 4, 0,215, 8, 4, 0,216, 8, 48, 1, 1, 0, 0, 0,217, 8, 49, 1, 4, 0, 34, 0,160, 6, - 0, 0,164, 7, 4, 0, 72, 1, 4, 0, 17, 0, 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1,218, 8, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,219, 8, 2, 0,207, 8, 2, 0,204, 8, 2, 0,220, 8, 2, 0, 67, 0, 2, 0,229, 1, 0, 0, 18, 0, - 9, 0, 2, 0, 50, 1,208, 8, 45, 1,221, 8, 2, 0, 13, 0, 2, 0,222, 8, 4, 0,223, 8, 51, 1, 3, 0, 4, 0,221, 2, - 4, 0, 35, 0, 24, 0, 42, 0, 52, 1, 12, 0,157, 0,224, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,151, 8, 7, 0, 86, 0, - 0, 0, 18, 0, 0, 0,225, 8, 2, 0,226, 8, 2, 0,227, 8, 2, 0,228, 8, 2, 0,229, 8, 7, 0,230, 8, 53, 1, 8, 0, - 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, 7, 0,235, 8, 7, 0,236, 8, 7, 0,237, 8, 7, 0,238, 8, - 54, 1, 13, 0, 2, 0, 17, 0, 2, 0,239, 6, 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,239, 8, 7, 0, 13, 4, 7, 0,240, 8, -245, 0,238, 6, 53, 1,241, 8, 2, 0, 15, 0, 2, 0, 39, 5, 2, 0, 4, 6, 2, 0,242, 8, 55, 1, 11, 0, 4, 0,221, 2, - 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,243, 8, 0, 0, 18, 0, 7, 0,244, 8, 7, 0,245, 8, 7, 0,151, 3, - 2, 0,246, 8, 2, 0,247, 8, 56, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 0,112, 5, - 57, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,190, 8, 24, 0, 42, 0, 58, 1, 13, 0, 2, 0, 17, 0, - 2, 0, 15, 0, 2, 0,204, 8, 2, 0,152, 3, 7, 0,248, 8, 7, 0,249, 8, 7, 0,196, 4, 7, 0,163, 3, 7, 0,122, 3, - 7, 0,125, 3, 7, 0,250, 8, 7, 0,251, 8, 24, 0,252, 8, 59, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 0,151, 8, - 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,225, 8, 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,229, 1, 2, 0, 39, 5, 60, 1, 8, 0, - 24, 0, 42, 0, 7, 0,240, 2, 7, 0,253, 8, 7, 0,254, 8, 7, 0, 35, 0, 2, 0, 87, 0, 2, 0,207, 2, 7, 0, 67, 0, - 61, 1, 12, 0, 2, 0, 15, 0, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,243, 2, 2, 0,221, 2, 2, 0,255, 8, 4, 0, 35, 0, - 7, 0, 0, 9, 7, 0, 1, 9, 7, 0, 2, 9, 7, 0, 3, 9, 0, 0, 4, 9, 62, 1, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, - 4, 0,151, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0,196, 4, 2, 0, 61, 0, 2, 0, 5, 9, 2, 0, 6, 9, 63, 1, 7, 0, - 4, 0,195, 2, 4, 0, 7, 9, 4, 0, 8, 9, 4, 0, 9, 9, 7, 0, 10, 9, 7, 0, 11, 9, 0, 0,196, 8, 64, 1, 7, 0, - 0, 0, 12, 9, 24, 0, 13, 9, 0, 0,202, 8, 2, 0, 14, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,203, 8, 65, 1, 6, 0, - 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,151, 8, 4, 0, 86, 0, 0, 0, 15, 9, 0, 0, 16, 9, 66, 1, 1, 0, 4, 0, 17, 0, - 67, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 17, 9, 7, 0, 18, 9, 34, 0,160, 6, 68, 1, 4, 0, - 0, 0,159, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 69, 1, 2, 0, 4, 0, 15, 0, 4, 0, 79, 6, 70, 1, 6, 0, - 0, 0,199, 8, 0, 0,200, 8, 4, 0, 15, 0, 7, 0, 29, 2, 24, 0, 53, 3, 24, 0, 19, 9, 50, 1, 10, 0, 50, 1, 0, 0, - 50, 1, 1, 0, 50, 1,218, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,204, 8, 2, 0, 20, 9, 0, 0, 18, 0, 9, 0, 2, 0, - 24, 0, 42, 0,245, 0, 16, 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 0, 21, 9, 28, 0, 77, 0, - 7, 0, 13, 4, 7, 0, 22, 9, 7, 0,240, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0, 23, 9, 4, 0, 88, 0, 4, 0, 35, 0, - 9, 0, 24, 9, 9, 0, 25, 9, 71, 1, 6, 0, 71, 1, 0, 0, 71, 1, 1, 0, 24, 0, 42, 0, 9, 0, 26, 9, 2, 0,244, 0, - 0, 0,192, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 27, 9, 4, 0,126, 0, 7, 0, 28, 9, 72, 1, 28, 0, 72, 1, 0, 0, - 72, 1, 1, 0, 18, 0, 29, 9, 72, 1, 36, 0, 12, 0, 30, 9, 0, 0, 18, 0, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 33, 9, - 7, 0, 34, 9, 4, 0, 17, 0, 7, 0, 35, 9, 7, 0, 36, 9, 7, 0, 37, 9, 7, 0, 38, 9, 7, 0, 79, 1, 7, 0, 29, 2, - 7, 0, 39, 9, 7, 0,193, 2, 7, 0, 40, 9, 7, 0, 41, 9, 7, 0, 42, 9, 7, 0, 43, 9, 7, 0, 44, 9, 7, 0,167, 0, - 4, 0,126, 0, 2, 0,158, 5, 2, 0, 11, 7, 73, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 45, 9, 12, 0, 46, 9, - 12, 0, 47, 9, 72, 1, 48, 9, 9, 0, 49, 9, 9, 0, 50, 9, 4, 0, 17, 0, 4, 0, 54, 6, 2, 0,247, 2, 2, 0,109, 6, - 4, 0, 51, 9, 4, 0,126, 0, 4, 0, 52, 9, 2, 0, 53, 9, 2, 0, 54, 9, 2, 0, 55, 9, 2, 0, 56, 9, 4, 0, 57, 9, - 4, 0, 58, 9, 4, 0, 59, 9, 4, 0, 60, 9, 4, 0, 61, 9, 4, 0, 62, 9, 74, 1, 2, 0, 7, 0,147, 2, 4, 0, 17, 0, -161, 0, 5, 0, 74, 1, 63, 9, 4, 0,193, 2, 4, 0, 64, 9, 4, 0, 65, 9, 4, 0, 17, 0,160, 0, 16, 0, 4, 0, 66, 9, - 4, 0, 67, 9, 4, 0, 68, 9, 4, 0, 69, 9, 2, 0, 70, 9, 2, 0, 71, 9, 2, 0, 72, 9, 2, 0,244, 0, 2, 0, 73, 9, - 2, 0, 74, 9, 2, 0, 75, 9, 2, 0, 76, 9, 4, 0, 77, 9, 4, 0, 78, 9, 4, 0, 79, 9, 4, 0, 80, 9, 75, 1, 41, 0, - 75, 1, 0, 0, 75, 1, 1, 0, 18, 0, 29, 9, 12, 0,177, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 81, 9, 2, 0, 82, 9, - 2, 0, 83, 9, 2, 0,137, 3, 2, 0, 84, 9, 4, 0, 69, 2, 4, 0, 59, 9, 4, 0, 60, 9, 72, 1, 85, 9, 75, 1, 36, 0, - 75, 1, 86, 9, 12, 0, 87, 9,161, 0,114, 3, 24, 0, 88, 9, 75, 1, 89, 9, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 90, 9, - 7, 0, 8, 2, 7, 0,127, 3, 7, 0,129, 3, 2, 0,160, 3, 2, 0, 35, 0, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0,132, 3, - 7, 0, 93, 9, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, 7, 0, 97, 9, 7, 0, 98, 9, 7, 0, 99, 9, 7, 0,100, 9, - 7, 0, 62, 2,158, 0, 16, 0, 12, 0,101, 9, 68, 0,102, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0,103, 9, 4, 0, 87, 0, - 7, 0, 98, 2, 7, 0,104, 9, 7, 0,105, 9, 12, 0,106, 9, 4, 0,107, 9, 4, 0,108, 9, 9, 0,109, 9, 9, 0,110, 9, -160, 0,113, 3, 0, 0,111, 9, 76, 1, 1, 0, 4, 0,108, 9, 77, 1, 12, 0, 4, 0,108, 9, 7, 0,216, 8, 2, 0,112, 9, - 2, 0,113, 9, 7, 0,114, 9, 7, 0,115, 9, 2, 0,116, 9, 2, 0, 17, 0, 7, 0,117, 9, 7, 0,118, 9, 7, 0,119, 9, - 7, 0,120, 9, 78, 1, 7, 0, 78, 1, 0, 0, 78, 1, 1, 0, 12, 0,121, 9, 4, 0, 17, 0, 4, 0,122, 9, 0, 0, 3, 4, -253, 0,123, 9,157, 0, 9, 0, 19, 0, 29, 0, 12, 0,124, 9, 12, 0,101, 9, 12, 0,125, 9, 12, 0, 98, 0, 4, 0, 17, 0, - 4, 0,126, 9, 4, 0,127, 9, 4, 0, 35, 0,217, 0, 6, 0, 19, 0,128, 9, 12, 0,101, 9, 58, 0,129, 9, 0, 0,130, 9, - 4, 0,131, 9, 4, 0, 17, 0, 79, 1, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 45, 6, 4, 0, 46, 6, 7, 0, 47, 6, - 2, 0, 48, 6,214, 0, 98, 6,157, 0,109, 3,217, 0,132, 9, 0, 0, 72, 1, 0, 0,101, 6, 2, 0, 17, 0, 7, 0,133, 9, - 80, 1, 8, 0, 80, 1, 0, 0, 80, 1, 1, 0, 78, 1,134, 9, 28, 0, 77, 0, 12, 0,115, 3, 4, 0, 17, 0, 0, 0, 18, 0, - 4, 0,255, 7, 81, 1, 5, 0, 81, 1, 0, 0, 81, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,135, 9, 82, 1, 14, 0, - 82, 1, 0, 0, 82, 1, 1, 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,136, 9, 0, 0,137, 9, 0, 0,135, 9, - 7, 0,138, 9, 7, 0,139, 9, 4, 0, 35, 0, 28, 0, 77, 0, 7, 0,140, 9, 7, 0,141, 9, 83, 1, 9, 0, 83, 1, 0, 0, - 83, 1, 1, 0, 24, 0,142, 9, 0, 0,250, 2, 7, 0,143, 9, 2, 0,144, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,145, 9, - 84, 1, 7, 0, 34, 0,160, 6, 18, 0, 29, 9, 4, 0, 17, 0, 4, 0,146, 9, 12, 0,147, 9, 24, 0,142, 9, 0, 0,250, 2, - 85, 1, 15, 0, 24, 0,142, 9, 2, 0,148, 9, 2, 0, 17, 0, 2, 0,149, 9, 2, 0,150, 9, 0, 0,250, 2, 24, 0,151, 9, - 0, 0,152, 9, 7, 0,153, 9, 7, 0, 29, 2, 7, 0,154, 9, 7, 0,155, 9, 2, 0, 15, 0, 2, 0, 72, 1, 7, 0, 79, 1, - 86, 1, 6, 0, 24, 0,142, 9, 7, 0, 63, 9, 2, 0,156, 9, 2, 0,157, 9, 2, 0, 17, 0, 2, 0,158, 9, 87, 1, 6, 0, - 24, 0,142, 9, 4, 0,159, 9, 4, 0,160, 9, 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,250, 2, 88, 1, 4, 0, 24, 0,142, 9, - 4, 0, 17, 0, 4, 0,159, 9, 0, 0,250, 2, 89, 1, 4, 0, 24, 0,142, 9, 4, 0, 17, 0, 4, 0,159, 9, 0, 0,250, 2, - 90, 1, 4, 0, 24, 0,142, 9, 4, 0, 17, 0, 4, 0,159, 9, 0, 0,250, 2, 91, 1, 2, 0, 4, 0, 17, 0, 7, 0, 13, 4, - 92, 1, 2, 0, 24, 0,142, 9, 0, 0,250, 2, 93, 1, 10, 0, 24, 0,142, 9, 4, 0,161, 9, 7, 0,120, 0, 4, 0, 17, 0, - 2, 0,158, 6, 2, 0,162, 9, 2, 0, 87, 0, 2, 0, 67, 0, 7, 0,163, 9, 0, 0,250, 2, 94, 1, 10, 0, 24, 0,142, 9, - 2, 0, 15, 0, 2, 0, 63, 4, 4, 0, 85, 0, 4, 0, 86, 0, 7, 0,253, 8, 7, 0,254, 8, 4, 0, 35, 0,157, 0,224, 8, - 0, 0,250, 2, 95, 1, 4, 0, 24, 0,142, 9, 4, 0,138, 3, 4, 0,164, 9, 0, 0,250, 2, 96, 1, 4, 0, 24, 0,142, 9, - 4, 0,138, 3, 4, 0, 35, 0, 0, 0,250, 2, 97, 1, 6, 0, 24, 0,142, 9, 7, 0,120, 0, 7, 0, 65, 3, 4, 0,165, 9, - 2, 0,138, 3, 2, 0,139, 3, 98, 1, 6, 0, 24, 0,142, 9, 4, 0,166, 9, 4, 0,167, 9, 7, 0,168, 9, 7, 0,169, 9, - 0, 0,250, 2, 99, 1, 16, 0, 24, 0,142, 9, 24, 0, 86, 9, 4, 0, 15, 0, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, - 7, 0,173, 9, 7, 0,174, 9, 7, 0,175, 9, 7, 0,176, 9, 7, 0,177, 9, 7, 0,178, 9, 2, 0, 17, 0, 2, 0, 35, 0, - 2, 0, 87, 0, 2, 0, 67, 0,100, 1, 3, 0, 24, 0,142, 9, 4, 0, 17, 0, 4, 0, 21, 2,101, 1, 5, 0, 24, 0,142, 9, - 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,179, 9, 0, 0,250, 2,102, 1, 10, 0, 24, 0,142, 9, 0, 0,250, 2, 2, 0,180, 9, - 2, 0,181, 9, 0, 0,182, 9, 0, 0,183, 9, 7, 0,184, 9, 7, 0,185, 9, 7, 0,186, 9, 7, 0,187, 9,103, 1, 5, 0, - 24, 0,142, 9, 0, 0,250, 2, 7, 0,201, 2, 2, 0,188, 9, 2, 0, 17, 0,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, - 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,189, 9, 7, 0,190, 9, 2, 0, 17, 0, 2, 0, 21, 2,105, 1, 8, 0, 7, 0, 7, 0, - 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,189, 9, 7, 0,190, 9, 2, 0, 17, 0, 2, 0, 21, 2,106, 1, 8, 0, - 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,189, 9, 7, 0,190, 9, 2, 0, 17, 0, 2, 0, 21, 2, -107, 1, 7, 0, 24, 0,142, 9, 0, 0,250, 2, 7, 0, 79, 1, 7, 0, 88, 1, 2, 0, 17, 0, 2, 0, 72, 1, 4, 0, 35, 0, -108, 1, 5, 0, 24, 0, 53, 3, 7, 0, 79, 1, 2, 0, 57, 3, 0, 0, 59, 3, 0, 0,191, 9,109, 1, 10, 0,109, 1, 0, 0, -109, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,192, 9, 7, 0, 22, 1, 7, 0, 23, 1, 2, 0,121, 9, 2, 0,193, 9, - 24, 0, 42, 0,110, 1, 22, 0,110, 1, 0, 0,110, 1, 1, 0, 2, 0, 17, 0, 2, 0, 72, 1, 2, 0,194, 9, 2, 0,195, 9, - 28, 0, 77, 0,157, 0,224, 8, 24, 0,159, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,196, 9, 7, 0,197, 9, 7, 0,198, 9, - 7, 0,199, 9, 7, 0,236, 2, 7, 0,200, 9, 7, 0,226, 8, 7, 0,201, 9, 0, 0,202, 9, 0, 0,203, 9, 12, 0,118, 3, -111, 1, 8, 0, 7, 0, 36, 2, 7, 0,253, 8, 7, 0,254, 8, 9, 0, 2, 0, 2, 0,204, 9, 2, 0,205, 9, 2, 0,206, 9, - 2, 0,207, 9,112, 1, 19, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,208, 9, 0, 0, 18, 0,111, 1,209, 9, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,210, 9, 2, 0,211, 9,111, 1,212, 9, 2, 0,213, 9, 2, 0, 87, 0, 7, 0,214, 9, 7, 0,215, 9, - 4, 0,216, 9,112, 1,217, 9, 4, 0,218, 9, 4, 0, 67, 0,113, 1,219, 9,114, 1, 4, 0, 0, 0,220, 9, 2, 0,221, 9, - 2, 0,222, 9, 4, 0, 35, 0,115, 1, 34, 0,115, 1, 0, 0,115, 1, 1, 0,115, 1,223, 9, 0, 0, 18, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0, 76, 8, 2, 0,104, 8, 2, 0,224, 9, 2, 0,163, 6, 2, 0,213, 9, 2, 0,178, 8, 12, 0,219, 8, - 12, 0,225, 9, 19, 0,197, 6, 9, 0,226, 9, 7, 0,214, 9, 7, 0,215, 9, 7, 0, 71, 2, 7, 0,227, 9, 0, 0,228, 9, - 2, 0,229, 9, 2, 0,230, 9, 7, 0,231, 9, 7, 0,232, 9, 2, 0,233, 9, 2, 0,234, 9, 9, 0,235, 9, 16, 0,236, 9, - 16, 0,237, 9, 16, 0,238, 9,114, 1,146, 0,116, 1,239, 9,117, 1,240, 9,113, 1, 8, 0,113, 1, 0, 0,113, 1, 1, 0, -115, 1,241, 9,115, 1,242, 9,112, 1,243, 9,112, 1,244, 9, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, - 31, 0, 72, 0,159, 0,112, 3, 12, 0,245, 9, 12, 0,246, 9,111, 1,247, 9, 12, 0,248, 9, 4, 0, 15, 0, 4, 0,249, 9, - 4, 0,250, 9, 4, 0,251, 9, 4, 0, 17, 0, 4, 0, 35, 0, 12, 0,252, 9, 12, 0,219, 8, 12, 0,225, 9, 4, 0, 68, 6, - 9, 0,253, 9, 9, 0,254, 9, 4, 0,255, 9, 9, 0, 0, 10, 9, 0, 1, 10, 9, 0, 2, 10,118, 1, 6, 0, 4, 0,119, 0, - 4, 0,121, 0, 4, 0,178, 8, 0, 0, 3, 10, 0, 0, 4, 10, 2, 0, 35, 0,119, 1, 16, 0, 2, 0, 22, 8, 2, 0, 23, 8, - 2, 0, 5, 10, 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 65, 0, 2, 0,198, 6, 2, 0, 8, 10, 7, 0,235, 2, 7, 0, 9, 10, - 7, 0, 10, 10, 2, 0, 94, 1, 0, 0, 11, 10, 0, 0, 12, 10, 4, 0, 13, 10, 4, 0, 14, 10,120, 1, 9, 0, 7, 0, 15, 10, - 7, 0, 16, 10, 7, 0, 23, 9, 7, 0, 76, 3, 7, 0, 17, 10, 7, 0,115, 6, 2, 0, 74, 3, 0, 0, 18, 10, 0, 0, 35, 0, -121, 1, 4, 0, 7, 0, 19, 10, 7, 0, 20, 10, 2, 0, 74, 3, 2, 0, 35, 0,122, 1, 3, 0, 7, 0, 21, 10, 7, 0, 91, 8, - 7, 0, 13, 0,123, 1, 7, 0, 0, 0,253, 1, 2, 0, 28, 5, 2, 0, 29, 5, 2, 0, 30, 5, 2, 0,218, 4, 4, 0,121, 0, - 4, 0, 61, 4,124, 1, 9, 0, 7, 0, 22, 10, 7, 0, 23, 10, 7, 0, 24, 10, 7, 0, 82, 2, 7, 0, 25, 10, 7, 0, 26, 10, - 7, 0, 27, 10, 2, 0, 28, 10, 2, 0, 29, 10,125, 1, 8, 0, 2, 0, 30, 10, 2, 0, 31, 10, 2, 0, 32, 10, 2, 0, 33, 10, - 7, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10,126, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,127, 1, 2, 0, - 0, 0,161, 0, 0, 0, 38, 10,128, 1, 1, 0, 0, 0, 18, 0,129, 1, 10, 0, 0, 0, 39, 10, 0, 0, 40, 10, 0, 0,107, 6, - 0, 0, 41, 10, 2, 0, 5, 10, 2, 0, 42, 10, 7, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 7, 0,200, 9,130, 1, 2, 0, - 9, 0, 46, 10, 9, 0, 47, 10,131, 1, 11, 0, 0, 0, 30, 5, 0, 0, 15, 0, 0, 0, 74, 3, 0, 0, 76, 3, 0, 0, 48, 10, - 0, 0,104, 0, 0, 0,159, 2, 7, 0, 49, 10, 7, 0, 50, 10, 7, 0, 51, 10, 7, 0, 52, 10,132, 1, 8, 0, 7, 0,185, 8, - 7, 0,120, 0, 7, 0, 12, 10, 7, 0,152, 2, 7, 0, 53, 10, 7, 0,233, 0, 7, 0, 54, 10, 4, 0, 15, 0,133, 1, 4, 0, - 2, 0, 55, 10, 2, 0, 56, 10, 2, 0, 57, 10, 2, 0, 35, 0,134, 1, 8, 0, 7, 0, 58, 10, 7, 0,201, 2, 7, 0, 59, 10, - 7, 0, 72, 8, 7, 0, 73, 8, 7, 0, 74, 8, 7, 0, 60, 10, 7, 0, 61, 10,135, 1, 6, 0, 2, 0, 62, 10, 2, 0, 63, 10, - 7, 0, 64, 10, 7, 0, 65, 10, 7, 0, 66, 10, 7, 0, 67, 10,136, 1, 1, 0, 0, 0, 18, 0,137, 1, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 68, 10,138, 1, 10, 0, 2, 0,247, 3, 2, 0, 17, 0, 7, 0,146, 4, 7, 0, 69, 10, - 7, 0, 70, 10, 7, 0, 71, 10, 7, 0, 72, 10,137, 1, 73, 10,137, 1, 74, 10,137, 1, 75, 10, 51, 0, 11, 0, 4, 0, 17, 0, - 4, 0, 61, 0, 4, 0, 76, 10, 4, 0, 77, 10, 16, 0, 78, 10, 16, 0, 79, 10,138, 1, 80, 10, 7, 0, 81, 10, 7, 0, 82, 10, - 7, 0, 83, 10, 7, 0, 84, 10,230, 0, 10, 0, 4, 0,121, 9, 4, 0, 85, 10, 7, 0, 86, 10, 7, 0, 87, 10, 7, 0, 88, 10, - 7, 0, 89, 10, 7, 0, 8, 0, 7, 0, 10, 0, 4, 0, 72, 1, 4, 0,240, 2,229, 0, 18, 0, 4, 0,124, 0, 4, 0, 90, 10, - 4, 0, 91, 10, 7, 0, 92, 10, 4, 0, 93, 10, 7, 0, 94, 10, 7, 0, 95, 10, 4, 0, 96, 10, 7, 0, 97, 10, 4, 0, 98, 10, - 7, 0, 99, 10,230, 0,100, 10, 7, 0,101, 10, 7, 0,102, 10, 7, 0,103, 10, 7, 0,104, 10, 4, 0,105, 10, 4, 0, 35, 0, -139, 1, 4, 0, 39, 0,227, 2, 7, 0,106, 10, 7, 0,161, 1, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 0,139, 1,107, 10, - 51, 0, 73, 10, 43, 0,108, 10, 49, 0,109, 10, 22, 0,146, 0, 0, 0,110, 10, 7, 0,111, 10, 2, 0, 10, 6, 2, 0,112, 10, - 4, 0,104, 0, 4, 0, 17, 0, 7, 0,113, 10, 4, 0, 79, 2, 4, 0,114, 10, 7, 0,115, 10, 7, 0,116, 10, 7, 0,117, 10, - 7, 0,161, 1, 4, 0,118, 10, 7, 0,119, 10, 0, 0,120, 10, 0, 0,121, 10, 0, 0,122, 10, 0, 0,123, 10, 7, 0,124, 10, - 7, 0,125, 10, 7, 0,126, 10, 7, 0,240, 2, 7, 0,127, 10, 4, 0,128, 10, 7, 0,129, 10, 7, 0,130, 10, 7, 0,131, 10, -140, 1, 10, 0, 4, 0, 15, 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 0,200, 3, 4, 0,132, 10, 4, 0,133, 10, 4, 0,134, 10, - 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0,141, 1, 1, 0, 0, 0, 64, 8, 84, 0, 7, 0,140, 1,135, 10, 4, 0,136, 10, - 4, 0,137, 10, 4, 0,138, 10, 4, 0, 35, 0, 9, 0,139, 10,141, 1,140, 10,142, 1, 5, 0, 7, 0,147, 2, 7, 0,221, 2, - 7, 0, 29, 2, 2, 0,128, 2, 2, 0, 35, 0,143, 1, 5, 0, 7, 0,147, 2, 7, 0, 88, 4, 7, 0,141, 10, 7, 0,142, 10, - 7, 0,221, 2,144, 1, 5, 0, 24, 0,143, 10,145, 1, 20, 0, 7, 0,232, 5, 7, 0,144, 10, 7, 0, 54, 0,146, 1, 3, 0, - 7, 0,145, 10, 4, 0,146, 10, 4, 0,147, 10,147, 1, 7, 0, 4, 0,148, 10, 4, 0,149, 10, 4, 0,150, 10, 7, 0,151, 10, - 7, 0,152, 10, 7, 0,153, 10, 7, 0, 54, 0,148, 1, 8, 0,148, 1, 0, 0,148, 1, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, - 2, 0, 17, 0, 2, 0, 72, 1, 7, 0,221, 2, 7, 0,193, 8,149, 1, 6, 0,149, 1, 0, 0,149, 1, 1, 0, 24, 0, 42, 0, - 2, 0,206, 2, 2, 0, 17, 0, 2, 0,154, 10,150, 1, 17, 0,143, 1,192, 3,143, 1,155, 10,142, 1,156, 10,143, 1,176, 8, -144, 1,157, 10, 4, 0, 79, 0, 7, 0,221, 2, 7, 0,246, 2, 7, 0,158, 10, 4, 0,148, 10, 4, 0,159, 10, 7, 0,152, 10, - 7, 0,153, 10, 7, 0,104, 0, 4, 0,160, 10, 2, 0, 17, 0, 2, 0,161, 10,151, 1, 15, 0, 7, 0,248, 0, 7, 0,162, 10, - 7, 0,145, 10, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10, 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, 7, 0,169, 10, - 7, 0,170, 10, 7, 0,171, 10, 7, 0,172, 10, 4, 0, 17, 0, 4, 0,173, 10,152, 1,121, 0, 19, 0, 29, 0, 31, 0, 72, 0, -153, 1,174, 10,151, 1,175, 10,168, 0, 83, 4, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 0,180, 9, 2, 0,176, 10, - 2, 0,107, 1, 2, 0,177, 10, 2, 0,160, 3, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, - 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0,129, 5, 2, 0,187, 10, 2, 0,188, 10, 2, 0,189, 10, - 2, 0,190, 10, 2, 0,191, 10, 2, 0, 18, 2, 2, 0,169, 8, 2, 0,144, 8, 2, 0,192, 10, 2, 0,193, 10, 2, 0,210, 3, - 2, 0,211, 3, 2, 0,194, 10, 2, 0,195, 10, 2, 0,196, 10, 2, 0,197, 10, 7, 0,198, 10, 7, 0,199, 10, 7, 0,200, 10, - 7, 0,201, 10, 2, 0, 79, 5, 2, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,205, 10, 7, 0,151, 8, 7, 0, 86, 0, - 7, 0,246, 2, 7, 0,157, 8, 7, 0,206, 10, 7, 0,207, 10, 7, 0,208, 10, 7, 0,209, 10, 4, 0,152, 8, 4, 0,150, 8, - 4, 0,210, 10, 4, 0,211, 10, 7, 0,153, 8, 7, 0,154, 8, 7, 0,155, 8, 7, 0,212, 10, 7, 0,213, 10, 7, 0,214, 10, - 7, 0,215, 10, 7, 0,216, 10, 7, 0,217, 10, 7, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,151, 3, 7, 0,104, 0, - 7, 0,221, 10, 7, 0,222, 10, 7, 0,223, 10, 7, 0,224, 10, 7, 0,206, 0, 7, 0,225, 10, 4, 0,226, 10, 4, 0,227, 10, - 7, 0,228, 10, 7, 0,229, 10, 7, 0,230, 10, 7, 0,231, 10, 7, 0,232, 10, 7, 0,205, 0, 7, 0,233, 10, 7, 0,237, 3, - 7, 0,235, 3, 7, 0,236, 3, 7, 0,234, 10, 7, 0,235, 10, 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10, 7, 0,239, 10, - 7, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, 7, 0,247, 10, - 7, 0,248, 10, 7, 0,249, 10, 7, 0,250, 10, 7, 0,251, 10, 4, 0,252, 10, 4, 0,253, 10, 43, 0,125, 1, 58, 0,182, 3, - 12, 0,254, 10, 58, 0,255, 10, 24, 0, 0, 11, 24, 0, 1, 11, 28, 0, 77, 0,163, 0, 64, 1,163, 0, 2, 11,141, 0, 50, 0, -141, 0, 0, 0,141, 0, 1, 0,152, 1, 3, 11,150, 1, 4, 11,147, 1, 86, 9,171, 0, 9, 4, 9, 0, 10, 4,154, 1, 5, 11, -154, 1, 6, 11, 12, 0, 7, 11, 12, 0, 8, 11,126, 0, 9, 11,134, 0, 10, 11,134, 0, 11, 11, 24, 0, 12, 11, 24, 0, 13, 11, - 24, 0, 36, 0, 12, 0,147, 9, 0, 0, 18, 0, 7, 0,237, 0, 7, 0, 19, 3, 7, 0, 14, 11, 7, 0, 15, 11, 4, 0,195, 2, - 4, 0, 16, 11, 4, 0, 17, 0, 4, 0,152, 8, 4, 0, 17, 11, 4, 0, 18, 11, 4, 0, 19, 11, 4, 0, 20, 11, 2, 0,244, 0, - 2, 0, 21, 11, 2, 0, 22, 11, 2, 0, 23, 11, 0, 0, 24, 11, 2, 0, 25, 11, 2, 0, 26, 11, 2, 0, 27, 11, 9, 0, 28, 11, -130, 0, 82, 4, 12, 0, 4, 3, 12, 0, 29, 11,146, 1, 30, 11, 4, 0, 31, 11, 4, 0, 32, 11,155, 1, 33, 11,132, 0, 16, 3, -156, 1, 34, 11, 7, 0, 35, 11,128, 0, 37, 0,157, 1, 24, 9, 7, 0, 52, 4, 7, 0, 36, 11, 7, 0, 37, 11, 7, 0,232, 5, - 7, 0,161, 3, 7, 0,151, 3, 7, 0, 38, 11, 7, 0, 81, 2, 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 41, 11, 7, 0, 42, 11, - 7, 0, 43, 11, 7, 0, 44, 11, 7, 0, 53, 4, 7, 0, 45, 11, 7, 0, 46, 11, 7, 0, 47, 11, 7, 0, 54, 4, 7, 0, 50, 4, - 7, 0, 51, 4, 7, 0, 48, 11, 7, 0, 49, 11, 4, 0, 50, 11, 4, 0, 88, 0, 4, 0, 51, 11, 4, 0, 52, 11, 2, 0, 53, 11, - 2, 0, 54, 11, 2, 0, 55, 11, 2, 0, 56, 11, 2, 0, 57, 11, 2, 0, 58, 11, 2, 0, 59, 11, 2, 0,196, 4,168, 0, 83, 4, -129, 0, 11, 0,157, 1, 60, 11, 7, 0, 61, 11, 7, 0, 62, 11, 7, 0,233, 1, 7, 0, 63, 11, 7, 0, 64, 11, 7, 0, 65, 11, - 4, 0, 88, 0, 2, 0, 66, 11, 2, 0, 67, 11, 58, 0,232, 1,158, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 2, - 7, 0, 68, 11,159, 1, 6, 0,159, 1, 0, 0,159, 1, 1, 0,158, 1, 63, 9, 4, 0,250, 0, 2, 0, 69, 11, 2, 0, 17, 0, -160, 1, 5, 0,160, 1, 0, 0,160, 1, 1, 0, 12, 0, 70, 11, 4, 0, 71, 11, 4, 0, 17, 0,161, 1, 9, 0,161, 1, 0, 0, -161, 1, 1, 0, 12, 0,119, 0,160, 1, 72, 11, 4, 0, 17, 0, 2, 0, 69, 11, 2, 0, 73, 11, 7, 0, 89, 0, 0, 0, 74, 11, -159, 0, 6, 0, 19, 0, 29, 0, 12, 0, 47, 5, 4, 0, 17, 0, 2, 0, 75, 11, 2, 0, 76, 11, 9, 0, 77, 11,162, 1, 6, 0, - 12, 0, 78, 11, 4, 0, 79, 11, 4, 0, 80, 11, 4, 0, 17, 0, 4, 0, 35, 0,211, 0, 81, 11,163, 1, 17, 0, 19, 0, 29, 0, -164, 1, 82, 11,164, 1, 83, 11, 12, 0, 84, 11, 4, 0, 85, 11, 2, 0, 86, 11, 2, 0, 87, 11, 12, 0, 88, 11, 12, 0, 89, 11, -162, 1, 90, 11, 12, 0, 91, 11, 12, 0, 92, 11, 12, 0, 93, 11, 12, 0, 94, 11,165, 1, 95, 11, 12, 0, 96, 11,211, 0, 97, 11, -164, 1, 32, 0,164, 1, 0, 0,164, 1, 1, 0, 9, 0, 98, 11, 4, 0, 0, 8, 2, 0, 99, 11, 2, 0, 35, 0, 2, 1,100, 11, - 2, 1,101, 11, 0, 0,102, 11, 2, 0,103, 11, 2, 0,104, 11, 2, 0, 22, 8, 2, 0, 23, 8, 2, 0,105, 11, 2, 0,106, 11, - 2, 0,200, 3, 2, 0,229, 6, 2, 0,107, 11, 2, 0,108, 11, 2, 0,109, 11, 2, 0, 67, 0,166, 1,110, 11,167, 1,111, 11, -168, 1,112, 11, 4, 0,113, 11, 4, 0,114, 11, 9, 0,115, 11, 12, 0, 89, 11, 12, 0, 42, 8, 12, 0,116, 11, 12, 0,117, 11, - 12, 0,118, 11,169, 1, 17, 0,169, 1, 0, 0,169, 1, 1, 0, 0, 0,119, 11, 18, 0, 28, 0, 2, 0,120, 11, 2, 0, 15, 0, - 2, 0, 13, 0, 2, 0,121, 11, 2, 0,122, 11, 2, 0,123, 11, 2, 0,124, 11, 2, 0,125, 11, 2, 0, 17, 0, 2, 0,126, 11, - 2, 0, 29, 0, 2, 0, 35, 0,170, 1,127, 11,171, 1, 10, 0,171, 1, 0, 0,171, 1, 1, 0, 12, 0,128, 11, 0, 0,119, 11, - 2, 0,129, 11, 2, 0,130, 11, 2, 0, 17, 0, 2, 0,131, 11, 4, 0,132, 11, 9, 0,133, 11,165, 1, 7, 0,165, 1, 0, 0, -165, 1, 1, 0, 0, 0,119, 11, 0, 0,134, 11, 12, 0,202, 7, 4, 0,135, 11, 4, 0, 17, 0,223, 0, 14, 0,223, 0, 0, 0, -223, 0, 1, 0, 0, 0,119, 11, 18, 0, 28, 0,172, 1, 16, 8, 9, 0,136, 11, 9, 0,137, 11,170, 1,127, 11,162, 1,138, 11, - 12, 0,139, 11,223, 0,140, 11, 7, 1,136, 6, 2, 0, 17, 0, 2, 0,196, 4,173, 1, 8, 0,173, 1, 0, 0,173, 1, 1, 0, - 9, 0, 2, 0, 9, 0,141, 11, 0, 0, 3, 4, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,142, 11,174, 1, 5, 0, 7, 0,143, 11, - 4, 0,144, 11, 4, 0,145, 11, 4, 0, 72, 1, 4, 0, 17, 0,175, 1, 6, 0, 7, 0,146, 11, 7, 0,147, 11, 7, 0,148, 11, - 7, 0,149, 11, 4, 0, 15, 0, 4, 0, 17, 0,176, 1, 5, 0, 7, 0,253, 8, 7, 0,254, 8, 7, 0,221, 2, 2, 0, 32, 2, - 2, 0, 33, 2,177, 1, 5, 0,176, 1, 2, 0, 4, 0, 51, 0, 7, 0,150, 11, 7, 0,253, 8, 7, 0,254, 8,178, 1, 4, 0, - 2, 0,151, 11, 2, 0,152, 11, 2, 0,153, 11, 2, 0,154, 11,179, 1, 2, 0, 34, 0,191, 6, 18, 0, 29, 9,180, 1, 3, 0, - 16, 0,155, 11, 4, 0, 17, 0, 4, 0, 35, 0,181, 1, 6, 0, 7, 0,104, 0, 7, 0,223, 2, 7, 0,156, 11, 7, 0, 35, 0, - 2, 0,243, 0, 2, 0,157, 11,182, 1, 5, 0, 7, 0,158, 11, 7, 0,120, 0, 7, 0, 64, 9, 7, 0, 65, 9, 4, 0, 17, 0, -183, 1, 6, 0, 19, 0,197, 6, 0, 0,159, 11, 0, 0,160, 11, 2, 0,161, 11, 2, 0, 17, 0, 4, 0,162, 11,184, 1, 7, 0, -184, 1, 0, 0,184, 1, 1, 0, 0, 0, 3, 4,183, 1,163, 11, 2, 0,164, 11, 2, 0, 15, 0, 7, 0, 58, 0,185, 1, 7, 0, - 12, 0,165, 11, 0, 0,166, 11, 9, 0,167, 11, 7, 0, 58, 0, 7, 0,142, 11, 4, 0, 15, 0, 4, 0, 17, 0,186, 1, 3, 0, - 7, 0,168, 11, 4, 0, 17, 0, 4, 0, 35, 0,187, 1, 15, 0,187, 1, 0, 0,187, 1, 1, 0, 78, 1,134, 9,185, 1, 59, 0, - 12, 0,118, 3, 27, 0, 47, 0,186, 1,169, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 15, 1, 4, 0,170, 11, - 0, 0,159, 11, 4, 0,171, 11, 7, 0,172, 11,188, 1, 2, 0, 0, 0,173, 11, 0, 0,174, 11,189, 1, 4, 0,189, 1, 0, 0, -189, 1, 1, 0,157, 0, 53, 3, 12, 0,175, 11,190, 1, 24, 0,190, 1, 0, 0,190, 1, 1, 0, 12, 0,176, 11,157, 0,224, 8, -189, 1,177, 11, 12, 0,178, 11, 12, 0,118, 3, 0, 0, 3, 4, 7, 0,142, 11, 7, 0,179, 11, 7, 0, 85, 0, 7, 0, 86, 0, - 7, 0,196, 9, 7, 0,197, 9, 7, 0,236, 2, 7, 0,200, 9, 7, 0,226, 8, 7, 0,201, 9, 2, 0,180, 11, 2, 0,181, 11, - 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,191, 1, 6, 0,191, 1, 0, 0,191, 1, 1, 0, 12, 0,176, 11, - 4, 0, 17, 0, 4, 0,151, 2, 0, 0, 3, 4,192, 1, 11, 0,192, 1, 0, 0,192, 1, 1, 0, 19, 0,197, 6, 0, 0,182, 11, - 4, 0,162, 11, 2, 0,183, 11, 2, 0, 35, 0, 0, 0,159, 11, 4, 0,170, 11, 2, 0, 17, 0, 2, 0,184, 11,193, 1, 8, 0, -193, 1, 0, 0,193, 1, 1, 0, 12, 0,185, 11, 0, 0, 3, 4, 0, 0,186, 11, 2, 0, 17, 0, 2, 0,184, 11, 4, 0,187, 11, -194, 1, 5, 0,194, 1, 0, 0,194, 1, 1, 0, 0, 0,159, 11, 4, 0,170, 11, 7, 0,211, 2, 31, 0, 12, 0,157, 0,109, 3, -157, 0,188, 11,189, 1,177, 11, 12, 0,189, 11,190, 1,190, 11, 12, 0,191, 11, 12, 0,192, 11, 4, 0, 17, 0, 4, 0,244, 0, - 2, 0,193, 11, 2, 0,194, 11, 7, 0,195, 11,195, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,196, 1, 5, 0,196, 1, 0, 0, -196, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,197, 1, 6, 0,196, 1,196, 11, 24, 0, 42, 0, 4, 0,197, 11, - 7, 0,198, 11, 4, 0,199, 11, 4, 0,121, 9,198, 1, 3, 0,196, 1,196, 11, 4, 0,197, 11, 7, 0,200, 11,199, 1, 8, 0, -196, 1,196, 11, 24, 0, 42, 0, 7, 0, 67, 1, 7, 0,201, 11, 7, 0, 19, 3, 7, 0, 23, 9, 4, 0,197, 11, 4, 0,202, 11, -200, 1, 5, 0,196, 1,196, 11, 7, 0,203, 11, 7, 0,104, 8, 7, 0,242, 2, 7, 0, 54, 0,201, 1, 3, 0,196, 1,196, 11, - 7, 0, 23, 9, 7, 0,204, 11,145, 1, 4, 0, 7, 0,205, 11, 7, 0,222, 10, 2, 0,206, 11, 2, 0, 72, 1,202, 1, 14, 0, -202, 1, 0, 0,202, 1, 1, 0, 12, 0,207, 11, 12, 0,208, 11, 12, 0,209, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0, - 4, 0,210, 11, 7, 0,211, 11, 4, 0,199, 11, 4, 0,121, 9, 7, 0, 13, 4, 7, 0,244, 2,153, 1, 23, 0, 4, 0,197, 11, - 4, 0,212, 11, 7, 0,213, 11, 7, 0,240, 2, 7, 0,214, 11, 7, 0,240, 8, 7, 0,205, 11, 7, 0,215, 11, 7, 0,223, 2, - 7, 0, 92, 10, 7, 0,146, 4, 7, 0,216, 11, 7, 0,217, 11, 7, 0,218, 11, 7, 0,219, 11, 7, 0,220, 11, 7, 0,221, 11, - 7, 0,222, 11, 7, 0,223, 11, 7, 0,224, 11, 7, 0,225, 11, 7, 0,226, 11, 12, 0,227, 11,114, 0, 40, 0,113, 0,228, 11, -203, 1,175, 10, 58, 0,229, 11, 58, 0,255, 10, 58, 0,230, 11,204, 1,231, 11, 40, 0,160, 0, 40, 0,232, 11, 40, 0,233, 11, - 7, 0,234, 11, 7, 0,235, 11, 7, 0,236, 11, 7, 0,237, 11, 7, 0,238, 11, 7, 0,255, 7, 7, 0,239, 11, 7, 0,161, 1, - 7, 0,240, 11, 4, 0,241, 11, 4, 0,242, 11, 4, 0,243, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,244, 11, 2, 0,245, 11, - 2, 0,246, 11, 4, 0,247, 11, 7, 0,223, 2, 4, 0,248, 11, 7, 0,249, 11, 4, 0,250, 11, 4, 0,251, 11, 4, 0,252, 11, -130, 0,253, 11, 12, 0,254, 11,168, 0, 83, 4, 4, 0,255, 11, 7, 0, 0, 12, 7, 0, 1, 12, 4, 0, 67, 0,115, 0, 12, 0, -113, 0,228, 11,141, 0, 39, 3, 7, 0,128, 1, 7, 0,255, 7, 7, 0, 2, 12, 7, 0, 3, 12, 7, 0, 4, 12, 2, 0, 5, 12, - 2, 0, 6, 12, 2, 0, 7, 12, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 0,228, 11,132, 0, 16, 3,134, 0, 18, 3, - 7, 0, 63, 9, 7, 0, 8, 12, 7, 0, 9, 12, 7, 0, 69, 1, 7, 0, 10, 12, 4, 0,156, 9, 4, 0, 12, 3, 2, 0, 15, 0, +134, 0,190, 3, 4, 0,191, 3, 4, 0,192, 3, 4, 0,193, 3, 4, 0,194, 3, 12, 0,195, 3, 12, 0,196, 3, 12, 0,197, 3, + 7, 0,198, 3, 0, 0,199, 3,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 0,251, 2, 7, 0, 69, 1, + 7, 0,252, 2, 7, 0,244, 2, 0, 0, 18, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,200, 3, 2, 0, 15, 0, 2, 0,201, 3, + 7, 0,255, 2,166, 0, 12, 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 0,202, 3, 4, 0,151, 2, 4, 0,203, 3, + 4, 0, 15, 0, 4, 0,204, 3, 7, 0, 69, 1, 7, 0,205, 3, 7, 0,206, 3, 7, 0,149, 2,163, 0, 40, 0, 4, 0, 17, 0, + 2, 0,207, 3, 2, 0,208, 3, 2, 0,244, 2, 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, + 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, + 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, + 7, 0,230, 3, 7, 0,231, 3, 7, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 7, 0,237, 3, + 7, 0,238, 3, 7, 0,239, 3, 7, 0,240, 3, 44, 0,160, 0,167, 0,241, 3, 7, 0,242, 3, 4, 0,195, 2,168, 0, 5, 0, + 58, 0,232, 1, 7, 0,243, 3, 7, 0,244, 3, 2, 0, 17, 0, 2, 0,245, 3,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, + 4, 0, 15, 0, 4, 0,246, 3, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,247, 3, 4, 0,248, 3, + 4, 0,249, 3, 4, 0, 17, 0, 9, 0,250, 3, 9, 0,251, 3, 12, 0,252, 3,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, + 4, 0, 17, 0, 4, 0,253, 3, 4, 0,254, 3, 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0, 2, 4, 4, 0,248, 3, + 4, 0,151, 2, 2, 0, 3, 4, 2, 0, 54, 0, 0, 0, 4, 4, 0, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 0, 0, 8, 4, + 12, 0, 9, 4,171, 0, 10, 4, 9, 0, 11, 4,172, 0, 1, 0, 7, 0, 36, 2,162, 0, 30, 0, 4, 0, 17, 0, 7, 0, 12, 4, + 7, 0, 13, 4, 7, 0, 14, 4, 4, 0, 15, 4, 4, 0, 16, 4, 4, 0, 17, 4, 4, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, + 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, + 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, + 4, 0, 37, 4, 4, 0, 38, 4, 7, 0, 39, 4, 7, 0,156, 3,164, 0, 54, 0, 4, 0,248, 3, 4, 0, 40, 4,173, 0, 41, 4, +174, 0, 42, 4, 0, 0, 35, 0, 0, 0, 43, 4, 2, 0, 44, 4, 7, 0, 45, 4, 0, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, + 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 2, 0, 56, 4, + 0, 0, 57, 4, 2, 0, 58, 4, 7, 0, 59, 4, 7, 0, 60, 4, 0, 0, 61, 4, 4, 0,121, 0, 4, 0, 62, 4, 4, 0, 63, 4, + 2, 0, 64, 4, 2, 0, 65, 4,172, 0, 66, 4, 4, 0, 67, 4, 4, 0, 79, 0, 7, 0, 68, 4, 7, 0, 69, 4, 7, 0, 70, 4, + 7, 0, 71, 4, 2, 0, 72, 4, 2, 0, 73, 4, 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 2, 0, 77, 4, 2, 0, 78, 4, + 2, 0, 79, 4,175, 0, 80, 4, 7, 0, 81, 4, 7, 0, 82, 4,130, 0, 83, 4, 12, 0, 4, 3,168, 0, 84, 4, 7, 0, 85, 4, + 7, 0, 86, 4, 7, 0, 87, 4, 0, 0, 88, 4,176, 0, 1, 0, 7, 0, 89, 4,146, 0, 50, 0,145, 0, 90, 4, 2, 0, 15, 0, + 2, 0, 91, 4, 2, 0, 92, 4, 2, 0, 93, 4, 7, 0, 94, 4, 2, 0, 95, 4, 2, 0, 96, 4, 7, 0, 97, 4, 2, 0, 98, 4, + 2, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 4, 0,103, 4, 4, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4, + 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 73, 0,110, 4, 73, 0,111, 4, 0, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, + 28, 0, 77, 0, 2, 0,115, 4, 0, 0,116, 4, 0, 0,117, 4, 7, 0,118, 4, 4, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, + 4, 0,122, 4, 4, 0, 17, 0, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4,176, 0,126, 4, 4, 0, 51, 0, 7, 0,127, 4, + 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 4, 0,134, 4, 4, 0, 35, 0, +177, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,170, 0, 2, 0, 73, 1, 2, 0,107, 1, 2, 0,135, 4, 7, 0,136, 4, + 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,153, 1, 7, 0,155, 1, 7, 0,154, 1, + 7, 0, 67, 0, 4, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4, + 7, 0,149, 4, 2, 0,150, 4, 2, 0, 72, 1, 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, + 2, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 7, 0,163, 4, + 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 2, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4, + 2, 0,172, 4, 7, 0,173, 4, 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 2, 0,177, 4, 2, 0,178, 4, 2, 0,179, 4, + 2, 0,180, 4, 7, 0,181, 4, 7, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 7, 0,186, 4, 7, 0,187, 4, + 2, 0,188, 4, 2, 0,189, 4, 2, 0,190, 4, 2, 0,191, 4, 2, 0,192, 4, 2, 0, 17, 0, 7, 0,193, 4, 7, 0,194, 4, + 28, 0, 77, 0, 43, 0,125, 1, 2, 0,126, 1, 2, 0,195, 4, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, + 4, 0,134, 3, 4, 0,196, 4, 4, 0, 17, 0, 2, 0,197, 4, 2, 0,198, 4, 24, 0,159, 0,179, 0, 13, 0, 9, 0,199, 4, + 9, 0,200, 4, 4, 0,201, 4, 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, + 4, 0,208, 4, 4, 0,209, 4, 4, 0, 35, 0, 0, 0,210, 4,180, 0, 5, 0, 9, 0,211, 4, 9, 0,212, 4, 4, 0,213, 4, + 4, 0, 67, 0, 0, 0,214, 4,181, 0, 17, 0, 4, 0,215, 4, 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, 4, 0,219, 4, + 4, 0,220, 4, 4, 0,221, 4, 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0,227, 4, + 2, 0,228, 4, 4, 0,229, 4, 4, 0,230, 4, 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, 4, 0,217, 4, 4, 0,231, 4, + 4, 0,232, 4, 4, 0,233, 4, 4, 0,234, 4, 7, 0,235, 4, 4, 0,236, 4, 4, 0, 88, 0, 4, 0,237, 4, 4, 0,238, 4, + 4, 0,239, 4, 4, 0,240, 4, 4, 0,241, 4, 18, 0, 28, 0,183, 0, 7, 0, 4, 0,242, 4, 7, 0,243, 4, 7, 0,244, 4, + 7, 0,245, 4, 4, 0,246, 4, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 18, 0, + 57, 0,247, 4, 58, 0,248, 4, 4, 0,134, 3, 4, 0,249, 4, 4, 0,250, 4, 4, 0, 35, 0, 4, 0,251, 4, 4, 0,252, 4, +185, 0,105, 0,179, 0,253, 4,180, 0,254, 4,181, 0,255, 4,182, 0, 0, 5, 4, 0, 19, 3, 4, 0,121, 0, 4, 0, 62, 4, + 7, 0, 1, 5, 4, 0, 2, 5, 4, 0, 3, 5, 4, 0, 4, 5, 4, 0, 5, 5, 2, 0, 17, 0, 2, 0, 6, 5, 7, 0, 7, 5, + 7, 0, 8, 5, 7, 0, 9, 5, 7, 0, 10, 5, 7, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, + 2, 0,243, 0, 2, 0, 16, 5, 4, 0, 17, 5, 2, 0, 18, 5, 2, 0, 19, 5, 2, 0, 94, 1, 2, 0,104, 0, 2, 0, 20, 5, + 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, + 2, 0, 29, 5, 4, 0, 30, 5, 4, 0, 72, 1, 4, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, + 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 16, 0, 40, 5, 16, 0, 41, 5, 15, 0, 42, 5, 12, 0, 43, 5, + 2, 0, 44, 5, 2, 0, 45, 5, 7, 0, 46, 5, 7, 0, 47, 5, 7, 0, 48, 5, 7, 0, 49, 5, 4, 0, 50, 5, 7, 0, 51, 5, + 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, 2, 0, 55, 5, 2, 0, 56, 5, 2, 0, 57, 5, 2, 0, 58, 5, 2, 0, 59, 5, + 2, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 7, 0, 63, 5, 0, 0, 64, 5, 4, 0, 65, 5, 2, 0, 66, 5, 2, 0,229, 1, + 0, 0, 67, 5, 7, 0, 68, 5, 7, 0, 69, 5, 0, 0, 70, 5, 0, 0, 71, 5, 0, 0, 72, 5, 0, 0, 73, 5, 4, 0, 74, 5, + 2, 0, 75, 5, 2, 0, 76, 5, 7, 0, 77, 5, 7, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, 2, 0, 82, 5, + 2, 0, 83, 5, 4, 0, 84, 5, 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 87, 5, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 67, 0, + 34, 0, 90, 5, 0, 0, 91, 5,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 0, 92, 5, 2, 0, 93, 5, + 2, 0, 94, 5, 2, 0, 87, 0, 7, 0, 95, 5, 7, 0, 67, 0,187, 0, 7, 0, 2, 0,212, 2, 2, 0, 72, 1, 2, 0, 76, 3, + 2, 0, 96, 5, 7, 0, 97, 5, 7, 0, 67, 0, 34, 0, 98, 5,188, 0, 5, 0, 7, 0, 99, 5, 0, 0, 15, 0, 0, 0, 87, 0, + 0, 0, 67, 0, 0, 0,229, 1,189, 0, 28, 0, 7, 0,148, 4, 7, 0,149, 4, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,100, 5, + 2, 0,195, 4, 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4,188, 0,101, 5, + 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0,243, 0, 2, 0, 16, 5, 2, 0,102, 5, 2, 0,103, 5, +187, 0,104, 5, 2, 0,105, 5, 2, 0, 18, 5, 2, 0, 21, 5, 2, 0, 22, 5, 7, 0,106, 5, 7, 0, 87, 0,190, 0, 6, 0, +190, 0, 0, 0,190, 0, 1, 0, 4, 0,247, 3, 0, 0, 4, 4, 4, 0, 17, 0, 24, 0,107, 5,191, 0, 4, 0,192, 0,108, 5, + 9, 0,109, 5, 0, 0,110, 5, 4, 0, 88, 0,193, 0, 8, 0,191, 0,111, 5, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0,112, 5, + 2, 0,113, 5, 2, 0,114, 5, 4, 0, 87, 0, 9, 0,115, 5,194, 0, 6, 0, 2, 0,104, 0, 2, 0,253, 3, 2, 0,116, 5, + 2, 0,206, 2, 4, 0, 17, 0, 7, 0,223, 2,195, 0, 14, 0, 2, 0, 17, 0, 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5, +194, 0,120, 5, 9, 0,115, 5, 7, 0,121, 5, 7, 0, 54, 0, 4, 0,122, 5, 4, 0,123, 5, 4, 0,124, 5, 4, 0,125, 5, + 38, 0,117, 0, 24, 0,159, 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 0,126, 5, 7, 0,127, 5,197, 0, 14, 0, +191, 0,111, 5, 4, 0, 88, 0, 4, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 7, 0,131, 5, 4, 0,132, 5, 4, 0,133, 5, + 7, 0,134, 5, 7, 0,135, 5, 4, 0,136, 5, 7, 0,137, 5, 7, 0,138, 5, 4, 0, 35, 0,198, 0, 7, 0,191, 0,111, 5, + 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, 4, 0,139, 5, 79, 0,140, 5, 9, 0,115, 5,199, 0, 82, 0,198, 0,141, 5, +198, 0,142, 5,197, 0, 99, 3, 7, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 7, 0,146, 5, 7, 0,147, 5, 2, 0,253, 3, + 2, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, 7, 0,151, 5, 2, 0,152, 5, 2, 0,122, 5, 2, 0,153, 5, 2, 0,154, 5, + 2, 0,155, 5, 2, 0,156, 5, 7, 0,157, 5, 7, 0,158, 5, 7, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 2, 0,162, 5, + 2, 0,163, 5, 2, 0,164, 5, 2, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5,193, 0,168, 5,195, 0,169, 5, 7, 0,170, 5, + 7, 0,171, 5, 7, 0,172, 5, 2, 0,173, 5, 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, + 0, 0,179, 5, 0, 0,180, 5, 2, 0,181, 5, 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, + 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 2, 0,192, 5, 0, 0,193, 5, 0, 0,194, 5, + 0, 0,195, 5, 0, 0,196, 5, 24, 0,197, 5, 0, 0,198, 5, 0, 0,199, 5, 0, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5, + 0, 0,203, 5, 0, 0,204, 5, 0, 0,205, 5, 0, 0,206, 5, 0, 0,207, 5, 2, 0,208, 5, 2, 0,209, 5, 2, 0,210, 5, + 2, 0,211, 5, 0, 0,212, 5, 0, 0,195, 4, 4, 0,213, 5, 2, 0,214, 5, 2, 0, 87, 0, 4, 0,215, 5, 7, 0,216, 5, + 7, 0,217, 5,200, 0, 8, 0, 4, 0,218, 5, 4, 0,219, 5, 4, 0,220, 5, 4, 0,221, 5, 4, 0,222, 5, 4, 0,223, 5, + 4, 0, 51, 0, 4, 0,121, 2,201, 0, 4, 0, 7, 0,224, 5, 0, 0,225, 5, 0, 0,226, 5, 2, 0, 17, 0,202, 0, 4, 0, + 7, 0,227, 5, 4, 0, 17, 0, 4, 0,228, 5, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 0,107, 5, +177, 0,229, 5, 38, 0,230, 5, 12, 0,231, 5,178, 0,232, 5, 24, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, + 7, 0,237, 5, 4, 0,134, 3, 4, 0,238, 5, 4, 0,239, 5, 4, 0,192, 3, 4, 0,240, 5, 2, 0, 17, 0, 2, 0, 66, 1, + 53, 0, 61, 1,203, 0,241, 5,199, 0,242, 5,204, 0,243, 5,185, 0,177, 0,183, 0,244, 5, 12, 0, 98, 0, 12, 0,245, 5, + 9, 0,246, 5, 9, 0,247, 5, 9, 0,248, 5, 9, 0,249, 5,205, 0,250, 5, 2, 0,251, 5, 2, 0,252, 5, 2, 0,244, 0, + 2, 0,253, 5, 4, 0,254, 5, 4, 0,255, 5, 12, 0, 0, 6,188, 0,101, 5,189, 0, 1, 6,201, 0, 2, 6,159, 0,112, 3, +202, 0, 3, 6,206, 0, 11, 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,235, 0, 37, 0, 60, 1, 7, 0, 86, 2, 7, 0, 87, 2, + 7, 0,104, 0, 7, 0, 4, 6, 2, 0, 5, 6, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 0, 6, 6, 7, 0, 7, 6, + 7, 0, 8, 6, 7, 0, 9, 6, 7, 0, 10, 6, 7, 0, 11, 6, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, 7, 0, 79, 1, + 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, 7, 0, 18, 6, 7, 0,166, 0, 2, 0, 19, 6, 2, 0, 20, 6, 0, 0, 21, 6, + 0, 0,195, 4, 2, 0, 22, 6, 2, 0, 23, 6, 2, 0, 24, 6, 2, 0, 5, 6, 7, 0, 25, 6, 7, 0, 26, 6, 62, 0, 27, 6, +159, 0,112, 3,207, 0, 28, 6,208, 0, 29, 6,209, 0, 30, 6,210, 0, 31, 6,211, 0, 32, 6, 7, 0, 33, 6, 2, 0, 34, 6, + 2, 0, 35, 6, 7, 0, 36, 6, 7, 0, 37, 6, 7, 0, 38, 6,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 7, 0, 14, 6, 7, 0, 79, 1, 7, 0, 87, 0, 4, 0, 43, 6, 2, 0, 24, 6, + 2, 0, 5, 6, 24, 0,107, 5, 24, 0, 44, 6, 12, 0, 45, 6,206, 0, 46, 6,212, 0, 28, 6, 0, 0, 47, 6, 4, 0,134, 3, + 4, 0,238, 5, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 17, 0, 2, 0, 21, 2, 7, 0,110, 0, + 7, 0, 52, 6, 7, 0, 53, 6, 7, 0, 54, 6, 7, 0,166, 0, 7, 0,234, 5, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, + 0, 0, 58, 6, 0, 0, 59, 6, 0, 0, 60, 6, 0, 0, 61, 6, 0, 0, 62, 6, 12, 0, 63, 6, 12, 0, 64, 6, 12, 0, 65, 6, + 2, 0, 66, 6, 2, 0,134, 2, 2, 0, 67, 6, 0, 0, 68, 6, 0, 0, 69, 6, 9, 0, 70, 6,159, 0,112, 3,214, 0, 24, 0, + 16, 0, 34, 0, 16, 0, 61, 0, 15, 0, 71, 6, 15, 0, 72, 6, 15, 0, 73, 6, 7, 0, 74, 6, 7, 0, 75, 6, 7, 0, 76, 6, + 7, 0, 77, 6, 2, 0, 78, 6, 2, 0, 79, 6, 2, 0, 80, 6, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 17, 0, 2, 0, 83, 6, + 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 86, 6, 2, 0, 87, 6, 2, 0, 51, 6, 7, 0, 88, 6, 4, 0, 89, 6, 4, 0, 90, 6, +213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,215, 0, 8, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 0, 0, 91, 6, 0, 0,176, 0, +216, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, +217, 0, 93, 6, 12, 0, 94, 6, 2, 0, 72, 1, 2, 0, 95, 6, 4, 0, 17, 0, 7, 0, 96, 6, 4, 0, 51, 6,218, 0, 21, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,208, 0, 29, 6,214, 0, 92, 6, + 2, 0, 97, 6, 2, 0, 98, 6, 2, 0, 99, 6, 2, 0,100, 6, 2, 0, 83, 6, 2, 0,101, 6, 2, 0,102, 6, 0, 0, 17, 0, + 0, 0, 35, 0, 9, 0, 62, 2, 4, 0,103, 6, 4, 0,104, 6, 19, 0,105, 6,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 7, 0, 86, 2, 7, 0, 87, 2, 2, 0, 97, 6, + 2, 0,106, 6, 2, 0,107, 6, 2, 0,108, 6, 4, 0, 17, 0, 7, 0,109, 6, 4, 0, 5, 6, 4, 0, 35, 0,159, 0,112, 3, +220, 0, 16, 0, 0, 0,110, 6, 0, 0,111, 6, 0, 0,112, 6, 0, 0,113, 6, 0, 0,114, 6, 0, 0,115, 6, 4, 0,116, 6, + 4, 0,117, 6, 4, 0,118, 6, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,119, 6, 2, 0,120, 6, 2, 0,172, 1, 2, 0,121, 6, + 0, 0,122, 6,221, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0,123, 6,220, 0,124, 6, +222, 0,125, 6, 12, 0,126, 6, 12, 0,127, 6,223, 0,128, 6,211, 0,129, 6,224, 0,130, 6, 2, 0,131, 6, 2, 0,132, 6, + 2, 0,133, 6, 2, 0, 67, 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, + 2, 0, 42, 6,214, 0, 92, 6, 12, 0,134, 6,226, 0,135, 6, 0, 0,136, 6,227, 0,137, 6, 2, 0, 17, 0, 2, 0,138, 6, + 2, 0,139, 6, 2, 0,140, 6,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0, 17, 0, + 39, 0,227, 2, 37, 0, 60, 1, 51, 0,141, 6,229, 0,142, 6,230, 0,143, 6,159, 0,112, 3, 7, 0,144, 6, 7, 0, 86, 2, + 7, 0, 87, 2, 7, 0,109, 6, 7, 0,145, 6, 7, 0,146, 6, 2, 0,147, 6, 2, 0,148, 6, 2, 0,149, 6, 2, 0,150, 6, + 0, 0,151, 6, 0, 0,152, 6, 0, 0,153, 6, 0, 0, 51, 6,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 2, 0, 95, 6, 2, 0, 17, 0, 4, 0, 35, 0,217, 0, 93, 6,214, 0, 92, 6, +232, 0, 31, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 34, 0,154, 6, + 4, 0,155, 6, 4, 0,156, 6, 2, 0, 88, 0, 2, 0,157, 6, 2, 0,158, 6, 0, 0,159, 6, 0, 0,160, 6, 4, 0,161, 6, + 4, 0,162, 6, 4, 0,163, 6, 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6, 2, 0,167, 6, 7, 0,168, 6, 15, 0,169, 6, + 15, 0,170, 6, 4, 0,171, 6, 4, 0,172, 6, 0, 0,173, 6, 0, 0,174, 6, 2, 0,175, 6, 0, 0,192, 2, 9, 0,176, 6, +233, 0, 10, 0, 19, 0, 29, 0, 9, 0,177, 6, 9, 0,178, 6, 9, 0,179, 6, 9, 0,180, 6, 9, 0,181, 6, 4, 0, 88, 0, + 4, 0,182, 6, 0, 0,183, 6, 0, 0,184, 6,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, + 7, 0, 41, 6,233, 0,185, 6, 2, 0, 88, 0, 2, 0,157, 6, 4, 0, 87, 0, 9, 0,186, 6,235, 0, 3, 0,235, 0, 0, 0, +235, 0, 1, 0, 7, 0,187, 6,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, +214, 0, 92, 6, 12, 0,188, 6, 4, 0,189, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,190, 6,237, 0, 26, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 19, 0,191, 6, 19, 0, 78, 0, + 2, 0, 17, 0, 2, 0,157, 6, 7, 0,192, 6, 9, 0,193, 6, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0,109, 6, 7, 0, 38, 6, + 7, 0,194, 6, 7, 0,195, 6, 53, 0, 61, 1, 53, 0,196, 6, 4, 0,197, 6, 2, 0,198, 6, 2, 0,244, 0, 12, 0,199, 6, +159, 0,112, 3,238, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, + 2, 0, 17, 0, 2, 0,143, 3, 4, 0, 35, 0,159, 0,112, 3,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6,222, 0,125, 6, 0, 0,200, 6, 0, 0,111, 6, 0, 0,112, 6, + 2, 0, 15, 0, 2, 0,201, 6, 2, 0, 17, 0, 2, 0,119, 6, 9, 0,193, 6, 4, 0,116, 6, 4, 0,202, 6, 4, 0,203, 6, + 4, 0,204, 6, 15, 0,205, 6, 15, 0,206, 6, 7, 0,207, 6, 7, 0,208, 6, 7, 0,209, 6, 7, 0,192, 6, 2, 0,210, 6, + 2, 0,234, 0, 2, 0,172, 1, 2, 0,211, 6, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,212, 6, 2, 0,213, 6, 9, 0,214, 6, + 9, 0,215, 6, 9, 0,216, 6, 9, 0,217, 6, 9, 0,218, 6, 2, 0,219, 6, 0, 0,220, 6, 49, 0,221, 6,240, 0, 7, 0, +240, 0, 0, 0,240, 0, 1, 0, 4, 0,222, 6, 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,223, 6, 4, 0, 15, 0,241, 0, 14, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 4, 0,158, 6, 4, 0, 35, 0, + 12, 0,224, 6, 12, 0,225, 6, 0, 0,226, 6, 0, 0,227, 6, 4, 0,228, 6, 4, 0,229, 6,242, 0, 6, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0, 35, 0, 0, 0,230, 6,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6,244, 0,231, 6,214, 0, 92, 6,245, 0,232, 6, 2, 0, 72, 1, 2, 0,233, 6, + 2, 0, 86, 2, 2, 0, 87, 2, 2, 0, 17, 0, 2, 0,149, 6, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, + 0, 0,234, 6, 2, 0,235, 6, 2, 0,236, 6, 2, 0,237, 6, 2, 0, 35, 0,247, 0, 12, 0, 2, 0,236, 6, 2, 0,238, 6, + 2, 0,239, 6, 0, 0,192, 2, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6, 2, 0,243, 6, 2, 0,244, 6, 2, 0, 83, 6, + 7, 0,245, 6, 7, 0,246, 6,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 0, 4, 4,247, 0,247, 6,247, 0,248, 6, +247, 0,249, 6,247, 0,250, 6, 7, 0,251, 6, 2, 0,252, 6, 2, 0,253, 6, 2, 0,254, 6, 2, 0,255, 6, 2, 0, 0, 7, + 2, 0, 1, 7, 2, 0, 2, 7, 2, 0, 3, 7, 2, 0, 4, 7, 2, 0, 5, 7,249, 0, 10, 0, 0, 0, 6, 7, 0, 0, 7, 7, + 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 2, 0, 12, 7, 2, 0, 13, 7, 2, 0, 14, 7, 2, 0, 15, 7, +250, 0, 8, 0, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 7, 0, 4, 6, + 7, 0, 35, 0,251, 0, 18, 0,249, 0, 22, 7,249, 0, 23, 7,249, 0, 24, 7,249, 0, 25, 7,249, 0, 26, 7,249, 0, 27, 7, +249, 0, 28, 7,249, 0, 29, 7,249, 0, 30, 7,249, 0, 31, 7,249, 0, 32, 7,249, 0, 33, 7,249, 0, 34, 7,249, 0, 35, 7, +249, 0, 36, 7,249, 0, 37, 7,250, 0, 38, 7, 0, 0, 39, 7,252, 0, 97, 0, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 10, 7, + 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, + 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, + 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 0, 0, 65, 7, + 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, + 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, + 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7, + 0, 0, 90, 7, 0, 0, 91, 7, 0, 0, 92, 7, 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, 0, 0, 97, 7, + 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, 0, 0,105, 7, + 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, + 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, + 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, 0, 0,129, 7, + 0, 0,130, 7, 0, 0,131, 7, 0, 0,132, 7, 0, 0,133, 7, 0, 0,134, 7, 0, 0,135, 7,253, 0, 5, 0, 0, 0,136, 7, + 0, 0, 64, 7, 0, 0, 66, 7, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0, +251, 0,137, 7,252, 0,138, 7,252, 0,139, 7,252, 0,140, 7,252, 0,141, 7,252, 0,142, 7,252, 0,143, 7,252, 0,144, 7, +252, 0,145, 7,252, 0,146, 7,252, 0,147, 7,252, 0,148, 7,252, 0,149, 7,252, 0,150, 7,252, 0,151, 7,252, 0,152, 7, +252, 0,153, 7,252, 0,154, 7,252, 0,155, 7,253, 0,156, 7, 4, 0,157, 7, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0, +255, 0, 1, 0, 0, 0,158, 7, 0, 1, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,133, 2, 7, 0,159, 7, 7, 0, 36, 2, + 1, 1, 89, 0, 4, 0, 17, 0, 4, 0,160, 7, 4, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, + 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 4, 0,172, 7, 2, 0,173, 7, + 2, 0,174, 7, 2, 0,175, 7, 2, 0,176, 7, 4, 0,177, 7, 4, 0,178, 7, 4, 0,179, 7, 4, 0,180, 7, 2, 0,181, 7, + 2, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, 4, 0,186, 7, 4, 0,187, 7, 4, 0,224, 6, 4, 0,188, 7, + 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, 2, 0,192, 7, 12, 0,193, 7, 12, 0,194, 7, 12, 0,195, 7, 12, 0,196, 7, + 12, 0,197, 7, 0, 0,198, 7, 2, 0,199, 7, 2, 0,200, 7, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, 2, 0,204, 7, + 2, 0,205, 7, 2, 0,206, 7, 0, 1,207, 7, 2, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, 2, 0,212, 7, + 2, 0,213, 7, 2, 0,214, 7, 2, 0,215, 7, 4, 0,216, 7, 4, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, 2, 0,220, 7, + 2, 0,221, 7, 2, 0,222, 7, 2, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, 2, 0,228, 7, + 2, 0,229, 7, 2, 0,230, 7, 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 0, 0,236, 7, + 0, 0,237, 7, 7, 0,238, 7, 2, 0,173, 5, 2, 0,174, 5, 2, 0,239, 7, 2, 0,240, 7, 47, 0,241, 7, 7, 0,242, 7, + 4, 0,229, 1, 0, 0,243, 7, 2, 1, 24, 0, 19, 0, 29, 0, 12, 0,244, 7, 12, 0,245, 7, 12, 0,246, 7, 12, 0, 39, 6, + 38, 0,117, 0, 38, 0,247, 7, 4, 0,248, 7, 4, 0, 87, 0, 2, 0,249, 7, 2, 0,250, 7, 2, 0,251, 7, 2, 0,252, 7, + 2, 0,253, 7, 2, 0,254, 7, 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 35, 0, +211, 0, 4, 8, 9, 0, 5, 8, 2, 0, 6, 8, 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1, 7, 8, 13, 0, 8, 8, + 4, 0, 17, 0, 4, 1, 7, 0, 4, 1, 0, 0, 4, 1, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, 2, 0, 41, 5, 2, 0, 17, 0, + 4, 0, 35, 0, 5, 1, 25, 0, 5, 1, 0, 0, 5, 1, 1, 0, 6, 1, 11, 8, 7, 1,130, 6, 0, 0, 12, 8, 0, 0, 13, 8, + 0, 0, 14, 8, 2, 0, 15, 8, 2, 0, 16, 8, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0, 19, 8, 2, 0, 35, 0, 2, 0, 17, 0, + 2, 0, 20, 8, 2, 0, 21, 8, 2, 0, 22, 8, 4, 0, 23, 8, 5, 1, 24, 8, 9, 0, 25, 8, 4, 0, 26, 8, 4, 0, 27, 8, + 4, 0, 28, 8, 4, 0, 29, 8, 0, 0, 30, 8,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, + 3, 1, 31, 8, 3, 1, 32, 8, 2, 1, 33, 8, 15, 0, 49, 0, 0, 0, 40, 6, 0, 0, 34, 8, 2, 0, 84, 6, 2, 0, 85, 6, + 2, 0, 35, 8, 2, 0, 35, 0, 2, 0,253, 7, 2, 0,223, 6, 2, 0, 17, 0, 8, 1, 11, 8, 12, 0, 36, 8, 12, 0, 39, 6, + 12, 0, 37, 8, 12, 0, 38, 8, 9, 1, 24, 0, 9, 1, 0, 0, 9, 1, 1, 0,214, 0, 92, 6, 15, 0, 39, 8, 15, 0, 40, 8, + 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 41, 8, 2, 0, 42, 8, 2, 0, 43, 8, 2, 0, 17, 0, 7, 0, 82, 2, 2, 0, 17, 8, + 2, 0, 18, 8, 2, 0,252, 7, 2, 0, 44, 8, 2, 0, 1, 8, 2, 0,195, 4, 10, 1, 11, 8, 12, 0, 45, 8, 12, 0, 46, 8, + 12, 0, 37, 8, 0, 0, 47, 8, 9, 0, 48, 8, 11, 1, 14, 0, 0, 0, 49, 8, 2, 0, 50, 8, 2, 0, 51, 8, 2, 0, 52, 8, + 2, 0, 53, 8, 2, 0, 29, 5, 2, 0, 54, 8, 2, 1, 55, 8, 38, 0, 56, 8, 4, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, + 4, 0, 35, 0, 0, 0, 60, 8, 12, 1, 3, 0, 0, 0, 61, 8, 4, 0, 62, 8, 4, 0, 63, 8, 13, 1, 4, 0, 4, 0,155, 6, + 4, 0, 64, 8, 4, 0,161, 6, 4, 0, 65, 8, 14, 1, 2, 0, 4, 0, 66, 8, 4, 0, 67, 8, 15, 1, 5, 0, 7, 0, 68, 8, + 7, 0, 69, 8, 7, 0, 70, 8, 4, 0, 17, 0, 4, 0, 35, 0, 16, 1, 6, 0, 0, 0, 71, 8, 0, 0,112, 6, 41, 0,130, 0, + 2, 0,104, 0, 2, 0, 28, 5, 4, 0, 35, 0, 17, 1, 14, 0, 17, 1, 0, 0, 17, 1, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, + 4, 0, 26, 0, 4, 0, 72, 8, 4, 0, 73, 8, 4, 0, 74, 8, 12, 1, 75, 8, 0, 0, 71, 8, 16, 1,106, 3, 13, 1, 76, 8, + 14, 1, 77, 8, 15, 1, 78, 8, 18, 1, 12, 0, 0, 0,253, 1, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, + 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0, 9, 0, 79, 8, 9, 0, 80, 8, 9, 0,229, 0, 9, 0,231, 0, 19, 1, 48, 0, + 19, 1, 0, 0, 19, 1, 1, 0, 9, 0, 81, 8, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, + 4, 0, 85, 0, 4, 0, 82, 8, 4, 0, 83, 8, 4, 0, 73, 8, 4, 0, 74, 8, 4, 0, 84, 8, 4, 0,243, 0, 4, 0, 85, 8, + 4, 0, 86, 8, 7, 0, 87, 8, 7, 0, 35, 0, 7, 0, 88, 8, 7, 0, 89, 8, 4, 0,121, 0, 4, 0, 90, 8, 17, 1, 91, 8, + 28, 0, 77, 0, 38, 0,117, 0, 24, 0, 92, 8, 41, 0,130, 0, 7, 0, 93, 8, 7, 0, 94, 8, 18, 1, 62, 1, 19, 1, 95, 8, + 19, 1, 96, 8, 19, 1, 97, 8, 12, 0, 98, 8,245, 0,232, 6, 9, 0, 99, 8, 7, 0, 14, 4, 7, 0,100, 8, 7, 0,101, 8, + 4, 0,102, 8, 4, 0,103, 8, 7, 0,104, 8, 9, 0,105, 8, 4, 0,106, 8, 4, 0,107, 8, 4, 0,108, 8, 7, 0,109, 8, + 20, 1, 4, 0, 20, 1, 0, 0, 20, 1, 1, 0, 12, 0,110, 8, 19, 1,111, 8,203, 0, 11, 0, 12, 0,112, 8, 12, 0, 98, 8, + 12, 0,113, 8, 19, 1,114, 8, 0, 0,115, 8, 0, 0,116, 8, 4, 0,117, 8, 4, 0,118, 8, 4, 0,119, 8, 4, 0, 35, 0, + 16, 0,120, 8, 21, 1, 4, 0, 7, 0,121, 8, 7, 0, 76, 3, 2, 0,122, 8, 2, 0,123, 8, 22, 1, 6, 0, 7, 0,124, 8, + 7, 0,125, 8, 7, 0,126, 8, 7, 0,127, 8, 4, 0,128, 8, 4, 0,129, 8, 23, 1, 13, 0, 7, 0,130, 8, 7, 0,131, 8, + 7, 0,132, 8, 7, 0,133, 8, 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, + 4, 0,233, 2, 4, 0,140, 8, 4, 0,141, 8, 24, 1, 2, 0, 7, 0, 99, 5, 7, 0, 35, 0, 25, 1, 5, 0, 7, 0,142, 8, + 7, 0,143, 8, 4, 0, 88, 0, 4, 0,193, 2, 4, 0,144, 8, 26, 1, 6, 0, 26, 1, 0, 0, 26, 1, 1, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,145, 8, 2, 0, 54, 0, 27, 1, 8, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, + 2, 0,145, 8, 2, 0, 54, 0, 7, 0, 21, 0, 7, 0,121, 0, 28, 1, 45, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,145, 8, 2, 0,239, 0, 2, 0, 56, 4, 2, 0,146, 8, 7, 0,147, 8, 7, 0, 86, 0, 7, 0,246, 2, + 4, 0,148, 8, 4, 0, 79, 0, 4, 0,195, 2, 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,152, 8, 7, 0,153, 8, + 7, 0,154, 8, 7, 0,243, 2, 7, 0, 59, 1, 7, 0,155, 8, 7, 0,156, 8, 7, 0, 35, 0, 7, 0,157, 8, 7, 0,158, 8, + 7, 0,159, 8, 2, 0,160, 8, 2, 0,161, 8, 2, 0,162, 8, 2, 0,163, 8, 2, 0,164, 8, 2, 0,165, 8, 2, 0,166, 8, + 2, 0,167, 8, 2, 0, 21, 2, 2, 0,168, 8, 2, 0, 18, 2, 2, 0,169, 8, 0, 0,170, 8, 0, 0,171, 8, 7, 0,237, 0, + 29, 1,172, 8, 58, 0,232, 1, 30, 1, 16, 0, 30, 1, 0, 0, 30, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, + 2, 0,239, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 71, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,173, 8, + 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,227, 0, 5, 0, 2, 0, 15, 0, 2, 0,174, 8, 2, 0, 17, 0, 2, 0,175, 8, + 19, 0,191, 6,226, 0, 3, 0, 4, 0, 66, 0, 4, 0,176, 8,227, 0, 2, 0, 31, 1, 7, 0, 31, 1, 0, 0, 31, 1, 1, 0, + 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 0,177, 8, 32, 1, 5, 0, 0, 0, 18, 0, 7, 0, 79, 1, + 7, 0,178, 8, 4, 0,179, 8, 4, 0, 35, 0, 33, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 0, + 34, 1, 4, 0, 0, 0, 18, 0, 57, 0,180, 8, 7, 0, 79, 1, 7, 0, 35, 0, 35, 1, 6, 0, 2, 0,181, 8, 2, 0,182, 8, + 2, 0, 15, 0, 2, 0,183, 8, 0, 0,184, 8, 0, 0,185, 8, 36, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, + 0, 0,186, 8, 0, 0,187, 8, 37, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 1, 4, 0, 2, 0,188, 8, + 2, 0,189, 8, 2, 0, 17, 0, 2, 0, 35, 0, 39, 1, 6, 0, 0, 0, 18, 0, 0, 0,190, 8, 2, 0,191, 8, 2, 0,243, 2, + 2, 0, 72, 1, 2, 0, 67, 0, 40, 1, 5, 0, 0, 0, 18, 0, 7, 0, 76, 3, 7, 0,145, 4, 2, 0, 17, 0, 2, 0,207, 2, + 41, 1, 3, 0, 0, 0, 18, 0, 4, 0,195, 2, 4, 0,188, 8, 42, 1, 7, 0, 0, 0, 18, 0, 7, 0,145, 4, 0, 0,192, 8, + 0, 0,193, 8, 2, 0, 72, 1, 2, 0, 87, 0, 4, 0,194, 8, 43, 1, 4, 0, 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, + 7, 0,211, 2, 44, 1, 3, 0, 24, 0,197, 8, 0, 0,198, 8, 0, 0,199, 8, 45, 1, 18, 0, 45, 1, 0, 0, 45, 1, 1, 0, + 2, 0, 15, 0, 2, 0,200, 8, 2, 0, 17, 0, 2, 0,201, 8, 2, 0,202, 8, 2, 0,203, 8, 2, 0, 87, 0, 2, 0, 67, 0, + 0, 0, 18, 0, 9, 0, 2, 0, 46, 1,204, 8, 24, 0, 42, 0, 2, 0,116, 5, 2, 0,100, 8, 2, 0,205, 8, 2, 0, 35, 0, + 47, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0,206, 8, 2, 0, 17, 0, 2, 0,207, 2, 2, 0,207, 8, 4, 0,208, 8, + 4, 0,209, 8, 4, 0,210, 8, 4, 0,211, 8, 4, 0,212, 8, 48, 1, 1, 0, 0, 0,213, 8, 49, 1, 4, 0, 34, 0,154, 6, + 0, 0,158, 7, 4, 0, 72, 1, 4, 0, 17, 0, 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1,214, 8, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,215, 8, 2, 0,203, 8, 2, 0,200, 8, 2, 0,216, 8, 2, 0, 67, 0, 2, 0,229, 1, 0, 0, 18, 0, + 9, 0, 2, 0, 50, 1,204, 8, 45, 1,217, 8, 2, 0, 13, 0, 2, 0,218, 8, 4, 0,219, 8, 51, 1, 3, 0, 4, 0,221, 2, + 4, 0, 35, 0, 24, 0, 42, 0, 52, 1, 12, 0,157, 0,220, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,147, 8, 7, 0, 86, 0, + 0, 0, 18, 0, 0, 0,221, 8, 2, 0,222, 8, 2, 0,223, 8, 2, 0,224, 8, 2, 0,225, 8, 7, 0,226, 8, 53, 1, 8, 0, + 7, 0,227, 8, 7, 0,228, 8, 7, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, + 54, 1, 13, 0, 2, 0, 17, 0, 2, 0,233, 6, 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,235, 8, 7, 0, 14, 4, 7, 0,236, 8, +245, 0,232, 6, 53, 1,237, 8, 2, 0, 15, 0, 2, 0, 35, 5, 2, 0,254, 5, 2, 0,238, 8, 55, 1, 11, 0, 4, 0,221, 2, + 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,239, 8, 0, 0, 18, 0, 7, 0,240, 8, 7, 0,241, 8, 7, 0,151, 3, + 2, 0,242, 8, 2, 0,243, 8, 56, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 0,107, 5, + 57, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,186, 8, 24, 0, 42, 0, 58, 1, 13, 0, 2, 0, 17, 0, + 2, 0, 15, 0, 2, 0,200, 8, 2, 0,152, 3, 7, 0,244, 8, 7, 0,245, 8, 7, 0,195, 4, 7, 0,163, 3, 7, 0,122, 3, + 7, 0,125, 3, 7, 0,246, 8, 7, 0,247, 8, 24, 0,248, 8, 59, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 0,147, 8, + 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,221, 8, 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,229, 1, 2, 0, 35, 5, 60, 1, 8, 0, + 24, 0, 42, 0, 7, 0,240, 2, 7, 0,249, 8, 7, 0,250, 8, 7, 0,152, 3, 2, 0, 87, 0, 2, 0,207, 2, 7, 0, 67, 0, + 61, 1, 12, 0, 2, 0, 15, 0, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,243, 2, 2, 0,221, 2, 2, 0,251, 8, 4, 0, 35, 0, + 7, 0,252, 8, 7, 0,253, 8, 7, 0,254, 8, 7, 0,255, 8, 0, 0, 0, 9, 62, 1, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, + 4, 0,147, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0,195, 4, 2, 0, 61, 0, 2, 0, 1, 9, 2, 0, 2, 9, 63, 1, 7, 0, + 4, 0,195, 2, 4, 0, 3, 9, 4, 0, 4, 9, 4, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9, 0, 0,192, 8, 64, 1, 7, 0, + 0, 0, 8, 9, 24, 0, 9, 9, 0, 0,198, 8, 2, 0, 10, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,199, 8, 65, 1, 6, 0, + 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,147, 8, 4, 0, 86, 0, 0, 0, 11, 9, 0, 0, 12, 9, 66, 1, 1, 0, 4, 0, 17, 0, + 67, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 13, 9, 7, 0, 14, 9, 34, 0,154, 6, 68, 1, 4, 0, + 0, 0,159, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 69, 1, 2, 0, 4, 0, 15, 0, 4, 0, 73, 6, 70, 1, 6, 0, + 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, 7, 0, 29, 2, 24, 0, 53, 3, 24, 0, 15, 9, 50, 1, 10, 0, 50, 1, 0, 0, + 50, 1, 1, 0, 50, 1,214, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,200, 8, 2, 0, 16, 9, 0, 0, 18, 0, 9, 0, 2, 0, + 24, 0, 42, 0,245, 0, 16, 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 0, 17, 9, 28, 0, 77, 0, + 7, 0, 14, 4, 7, 0, 18, 9, 7, 0,236, 8, 7, 0,227, 8, 7, 0,228, 8, 7, 0, 19, 9, 4, 0, 88, 0, 4, 0, 35, 0, + 9, 0, 20, 9, 9, 0, 21, 9, 71, 1, 6, 0, 71, 1, 0, 0, 71, 1, 1, 0, 24, 0, 42, 0, 9, 0, 22, 9, 2, 0,244, 0, + 0, 0,192, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 23, 9, 4, 0,126, 0, 7, 0, 24, 9, 72, 1, 28, 0, 72, 1, 0, 0, + 72, 1, 1, 0, 18, 0, 25, 9, 72, 1, 36, 0, 12, 0, 26, 9, 0, 0, 18, 0, 7, 0, 27, 9, 7, 0, 28, 9, 7, 0, 29, 9, + 7, 0, 30, 9, 4, 0, 17, 0, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 33, 9, 7, 0, 34, 9, 7, 0, 79, 1, 7, 0, 29, 2, + 7, 0, 35, 9, 7, 0,193, 2, 7, 0, 36, 9, 7, 0, 37, 9, 7, 0, 38, 9, 7, 0, 39, 9, 7, 0, 40, 9, 7, 0,167, 0, + 4, 0,126, 0, 2, 0,153, 5, 2, 0, 5, 7, 73, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 41, 9, 12, 0, 42, 9, + 12, 0, 43, 9, 72, 1, 44, 9, 9, 0, 45, 9, 9, 0, 46, 9, 4, 0, 17, 0, 4, 0, 48, 6, 2, 0,247, 2, 2, 0,103, 6, + 4, 0, 47, 9, 4, 0,126, 0, 4, 0, 48, 9, 2, 0, 49, 9, 2, 0, 50, 9, 2, 0, 51, 9, 2, 0, 52, 9, 4, 0, 53, 9, + 4, 0, 54, 9, 4, 0, 55, 9, 4, 0, 56, 9, 4, 0, 57, 9, 4, 0, 58, 9, 74, 1, 2, 0, 7, 0,147, 2, 4, 0, 17, 0, +161, 0, 5, 0, 74, 1, 59, 9, 4, 0,193, 2, 4, 0, 60, 9, 4, 0, 61, 9, 4, 0, 17, 0,160, 0, 16, 0, 4, 0, 62, 9, + 4, 0, 63, 9, 4, 0, 64, 9, 4, 0, 65, 9, 2, 0, 66, 9, 2, 0, 67, 9, 2, 0, 68, 9, 2, 0,244, 0, 2, 0, 69, 9, + 2, 0, 70, 9, 2, 0, 71, 9, 2, 0, 72, 9, 4, 0, 73, 9, 4, 0, 74, 9, 4, 0, 75, 9, 4, 0, 76, 9, 75, 1, 41, 0, + 75, 1, 0, 0, 75, 1, 1, 0, 18, 0, 25, 9, 12, 0,177, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 77, 9, 2, 0, 78, 9, + 2, 0, 79, 9, 2, 0,137, 3, 2, 0, 80, 9, 4, 0, 69, 2, 4, 0, 55, 9, 4, 0, 56, 9, 72, 1, 81, 9, 75, 1, 36, 0, + 75, 1, 82, 9, 12, 0, 83, 9,161, 0,114, 3, 24, 0, 84, 9, 75, 1, 85, 9, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 86, 9, + 7, 0, 8, 2, 7, 0,127, 3, 7, 0,129, 3, 2, 0,160, 3, 2, 0, 35, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0,132, 3, + 7, 0, 89, 9, 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0, 93, 9, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, + 7, 0, 62, 2,158, 0, 16, 0, 12, 0, 97, 9, 68, 0, 98, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 99, 9, 4, 0, 87, 0, + 7, 0, 98, 2, 7, 0,100, 9, 7, 0,101, 9, 12, 0,102, 9, 4, 0,103, 9, 4, 0,104, 9, 9, 0,105, 9, 9, 0,106, 9, +160, 0,113, 3, 0, 0,107, 9, 76, 1, 1, 0, 4, 0,104, 9, 77, 1, 12, 0, 4, 0,104, 9, 7, 0,212, 8, 2, 0,108, 9, + 2, 0,109, 9, 7, 0,110, 9, 7, 0,111, 9, 2, 0,112, 9, 2, 0, 17, 0, 7, 0,113, 9, 7, 0,114, 9, 7, 0,115, 9, + 7, 0,116, 9, 78, 1, 7, 0, 78, 1, 0, 0, 78, 1, 1, 0, 12, 0,117, 9, 4, 0, 17, 0, 4, 0,118, 9, 0, 0, 4, 4, +253, 0,119, 9,157, 0, 9, 0, 19, 0, 29, 0, 12, 0,120, 9, 12, 0, 97, 9, 12, 0,121, 9, 12, 0, 98, 0, 4, 0, 17, 0, + 4, 0,122, 9, 4, 0,123, 9, 4, 0, 35, 0,217, 0, 6, 0, 19, 0,124, 9, 12, 0, 97, 9, 58, 0,125, 9, 0, 0,126, 9, + 4, 0,127, 9, 4, 0, 17, 0, 79, 1, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, + 2, 0, 42, 6,214, 0, 92, 6,157, 0,109, 3,217, 0,128, 9, 0, 0, 72, 1, 0, 0, 95, 6, 2, 0, 17, 0, 7, 0,129, 9, + 80, 1, 8, 0, 80, 1, 0, 0, 80, 1, 1, 0, 78, 1,130, 9, 28, 0, 77, 0, 12, 0,115, 3, 4, 0, 17, 0, 0, 0, 18, 0, + 4, 0,250, 7, 81, 1, 5, 0, 81, 1, 0, 0, 81, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,131, 9, 82, 1, 14, 0, + 82, 1, 0, 0, 82, 1, 1, 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,132, 9, 0, 0,133, 9, 0, 0,131, 9, + 7, 0,134, 9, 7, 0,135, 9, 4, 0, 35, 0, 28, 0, 77, 0, 7, 0,136, 9, 7, 0,137, 9, 83, 1, 9, 0, 83, 1, 0, 0, + 83, 1, 1, 0, 24, 0,138, 9, 0, 0,250, 2, 7, 0,139, 9, 2, 0,140, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,141, 9, + 84, 1, 7, 0, 34, 0,154, 6, 18, 0, 25, 9, 4, 0, 17, 0, 4, 0,142, 9, 12, 0,143, 9, 24, 0,138, 9, 0, 0,250, 2, + 85, 1, 15, 0, 24, 0,138, 9, 2, 0,144, 9, 2, 0, 17, 0, 2, 0,145, 9, 2, 0,146, 9, 0, 0,250, 2, 24, 0,147, 9, + 0, 0,148, 9, 7, 0,149, 9, 7, 0, 29, 2, 7, 0,150, 9, 7, 0,151, 9, 2, 0, 15, 0, 2, 0, 72, 1, 7, 0, 79, 1, + 86, 1, 6, 0, 24, 0,138, 9, 7, 0, 59, 9, 2, 0,152, 9, 2, 0,153, 9, 2, 0, 17, 0, 2, 0,154, 9, 87, 1, 6, 0, + 24, 0,138, 9, 4, 0,155, 9, 4, 0,156, 9, 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,250, 2, 88, 1, 4, 0, 24, 0,138, 9, + 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, 89, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, + 90, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, 91, 1, 2, 0, 4, 0, 17, 0, 7, 0, 14, 4, + 92, 1, 2, 0, 24, 0,138, 9, 0, 0,250, 2, 93, 1, 10, 0, 24, 0,138, 9, 4, 0,157, 9, 7, 0,120, 0, 4, 0, 17, 0, + 2, 0,152, 6, 2, 0,158, 9, 2, 0, 87, 0, 2, 0, 67, 0, 7, 0,159, 9, 0, 0,250, 2, 94, 1, 10, 0, 24, 0,138, 9, + 2, 0, 15, 0, 2, 0, 64, 4, 4, 0, 85, 0, 4, 0, 86, 0, 7, 0,249, 8, 7, 0,250, 8, 4, 0, 35, 0,157, 0,220, 8, + 0, 0,250, 2, 95, 1, 4, 0, 24, 0,138, 9, 4, 0,138, 3, 4, 0,160, 9, 0, 0,250, 2, 96, 1, 4, 0, 24, 0,138, 9, + 4, 0,138, 3, 4, 0, 35, 0, 0, 0,250, 2, 97, 1, 6, 0, 24, 0,138, 9, 7, 0,120, 0, 7, 0, 65, 3, 4, 0,161, 9, + 2, 0,138, 3, 2, 0,139, 3, 98, 1, 6, 0, 24, 0,138, 9, 4, 0,162, 9, 4, 0,163, 9, 7, 0,164, 9, 7, 0,165, 9, + 0, 0,250, 2, 99, 1, 16, 0, 24, 0,138, 9, 24, 0, 82, 9, 4, 0, 15, 0, 7, 0,166, 9, 7, 0,167, 9, 7, 0,168, 9, + 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, 7, 0,173, 9, 7, 0,174, 9, 2, 0, 17, 0, 2, 0, 35, 0, + 2, 0, 87, 0, 2, 0, 67, 0,100, 1, 3, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0, 21, 2,101, 1, 5, 0, 24, 0,138, 9, + 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,175, 9, 0, 0,250, 2,102, 1, 10, 0, 24, 0,138, 9, 0, 0,250, 2, 2, 0,176, 9, + 2, 0,177, 9, 0, 0,178, 9, 0, 0,179, 9, 7, 0,180, 9, 7, 0,181, 9, 7, 0,182, 9, 7, 0,183, 9,103, 1, 5, 0, + 24, 0,138, 9, 0, 0,250, 2, 7, 0,201, 2, 2, 0,184, 9, 2, 0, 17, 0,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, + 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2,105, 1, 8, 0, 7, 0, 7, 0, + 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2,106, 1, 8, 0, + 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2, +107, 1, 7, 0, 24, 0,138, 9, 0, 0,250, 2, 7, 0, 79, 1, 7, 0, 88, 1, 2, 0, 17, 0, 2, 0, 72, 1, 4, 0, 35, 0, +108, 1, 5, 0, 24, 0, 53, 3, 7, 0, 79, 1, 2, 0, 57, 3, 0, 0, 59, 3, 0, 0,187, 9,109, 1, 10, 0,109, 1, 0, 0, +109, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,188, 9, 7, 0, 22, 1, 7, 0, 23, 1, 2, 0,117, 9, 2, 0,189, 9, + 24, 0, 42, 0,110, 1, 22, 0,110, 1, 0, 0,110, 1, 1, 0, 2, 0, 17, 0, 2, 0, 72, 1, 2, 0,190, 9, 2, 0,191, 9, + 28, 0, 77, 0,157, 0,220, 8, 24, 0,159, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9, + 7, 0,195, 9, 7, 0,236, 2, 7, 0,196, 9, 7, 0,222, 8, 7, 0,197, 9, 0, 0,198, 9, 0, 0,199, 9, 12, 0,118, 3, +111, 1, 8, 0, 7, 0, 36, 2, 7, 0,249, 8, 7, 0,250, 8, 9, 0, 2, 0, 2, 0,200, 9, 2, 0,201, 9, 2, 0,202, 9, + 2, 0,203, 9,112, 1, 19, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,204, 9, 0, 0, 18, 0,111, 1,205, 9, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,206, 9, 2, 0,207, 9,111, 1,208, 9, 2, 0,209, 9, 2, 0, 87, 0, 7, 0,210, 9, 7, 0,211, 9, + 4, 0,212, 9,112, 1,213, 9, 4, 0,214, 9, 4, 0, 67, 0,113, 1,215, 9,114, 1, 4, 0, 0, 0,216, 9, 2, 0,217, 9, + 2, 0,218, 9, 4, 0, 35, 0,115, 1, 34, 0,115, 1, 0, 0,115, 1, 1, 0,115, 1,219, 9, 0, 0, 18, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0, 72, 8, 2, 0,100, 8, 2, 0,220, 9, 2, 0,157, 6, 2, 0,209, 9, 2, 0,174, 8, 12, 0,215, 8, + 12, 0,221, 9, 19, 0,191, 6, 9, 0,222, 9, 7, 0,210, 9, 7, 0,211, 9, 7, 0, 71, 2, 7, 0,223, 9, 0, 0,224, 9, + 2, 0,225, 9, 2, 0,226, 9, 7, 0,227, 9, 7, 0,228, 9, 2, 0,229, 9, 2, 0,230, 9, 9, 0,231, 9, 16, 0,232, 9, + 16, 0,233, 9, 16, 0,234, 9,114, 1,146, 0,116, 1,235, 9,117, 1,236, 9,113, 1, 8, 0,113, 1, 0, 0,113, 1, 1, 0, +115, 1,237, 9,115, 1,238, 9,112, 1,239, 9,112, 1,240, 9, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, + 31, 0, 72, 0,159, 0,112, 3, 12, 0,241, 9, 12, 0,242, 9,111, 1,243, 9, 12, 0,244, 9, 4, 0, 15, 0, 4, 0,245, 9, + 4, 0,246, 9, 4, 0,247, 9, 4, 0, 17, 0, 4, 0, 35, 0, 12, 0,248, 9, 12, 0,215, 8, 12, 0,221, 9, 4, 0, 62, 6, + 9, 0,249, 9, 9, 0,250, 9, 4, 0,251, 9, 9, 0,252, 9, 9, 0,253, 9, 9, 0,254, 9,118, 1, 6, 0, 4, 0,119, 0, + 4, 0,121, 0, 4, 0,174, 8, 0, 0,255, 9, 0, 0, 0, 10, 2, 0, 35, 0,119, 1, 16, 0, 2, 0, 17, 8, 2, 0, 18, 8, + 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, 2, 0, 65, 0, 2, 0,192, 6, 2, 0, 4, 10, 7, 0,235, 2, 7, 0, 5, 10, + 7, 0, 6, 10, 2, 0, 94, 1, 0, 0, 7, 10, 0, 0, 8, 10, 4, 0, 9, 10, 4, 0, 10, 10,120, 1, 9, 0, 7, 0, 11, 10, + 7, 0, 12, 10, 7, 0, 19, 9, 7, 0, 76, 3, 7, 0, 13, 10, 7, 0,109, 6, 2, 0, 74, 3, 0, 0, 14, 10, 0, 0, 35, 0, +121, 1, 4, 0, 7, 0, 15, 10, 7, 0, 16, 10, 2, 0, 74, 3, 2, 0, 35, 0,122, 1, 3, 0, 7, 0, 17, 10, 7, 0, 87, 8, + 7, 0, 13, 0,123, 1, 7, 0, 0, 0,253, 1, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0,217, 4, 4, 0,121, 0, + 4, 0, 62, 4,124, 1, 9, 0, 7, 0, 18, 10, 7, 0, 19, 10, 7, 0, 20, 10, 7, 0, 82, 2, 7, 0, 21, 10, 7, 0, 22, 10, + 7, 0, 23, 10, 2, 0, 24, 10, 2, 0, 25, 10,125, 1, 8, 0, 2, 0, 26, 10, 2, 0, 27, 10, 2, 0, 28, 10, 2, 0, 29, 10, + 7, 0, 30, 10, 7, 0, 31, 10, 7, 0, 32, 10, 7, 0, 33, 10,126, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,127, 1, 2, 0, + 0, 0,161, 0, 0, 0, 34, 10,128, 1, 1, 0, 0, 0, 18, 0,129, 1, 10, 0, 0, 0, 35, 10, 0, 0, 36, 10, 0, 0,101, 6, + 0, 0, 37, 10, 2, 0, 1, 10, 2, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0,196, 9,130, 1, 2, 0, + 9, 0, 42, 10, 9, 0, 43, 10,131, 1, 11, 0, 0, 0, 28, 5, 0, 0, 15, 0, 0, 0, 74, 3, 0, 0, 76, 3, 0, 0, 44, 10, + 0, 0,104, 0, 0, 0,159, 2, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10,132, 1, 8, 0, 7, 0,181, 8, + 7, 0,120, 0, 7, 0, 8, 10, 7, 0,152, 2, 7, 0, 49, 10, 7, 0,233, 0, 7, 0, 50, 10, 4, 0, 15, 0,133, 1, 4, 0, + 2, 0, 51, 10, 2, 0, 52, 10, 2, 0, 53, 10, 2, 0, 35, 0,134, 1, 8, 0, 7, 0, 54, 10, 7, 0,201, 2, 7, 0, 55, 10, + 7, 0, 68, 8, 7, 0, 69, 8, 7, 0, 70, 8, 7, 0, 56, 10, 7, 0, 57, 10,135, 1, 6, 0, 2, 0, 58, 10, 2, 0, 59, 10, + 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10,136, 1, 1, 0, 0, 0, 18, 0,137, 1, 4, 0, 7, 0, 5, 0, + 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 64, 10,138, 1, 10, 0, 2, 0,248, 3, 2, 0, 17, 0, 7, 0,145, 4, 7, 0, 65, 10, + 7, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10,137, 1, 69, 10,137, 1, 70, 10,137, 1, 71, 10, 51, 0, 11, 0, 4, 0, 17, 0, + 4, 0, 61, 0, 4, 0, 72, 10, 4, 0, 73, 10, 16, 0, 74, 10, 16, 0, 75, 10,138, 1, 76, 10, 7, 0, 77, 10, 7, 0, 78, 10, + 7, 0, 79, 10, 7, 0, 80, 10,230, 0, 10, 0, 4, 0,117, 9, 4, 0, 81, 10, 7, 0, 82, 10, 7, 0, 83, 10, 7, 0, 84, 10, + 7, 0, 85, 10, 7, 0, 8, 0, 7, 0, 10, 0, 4, 0, 72, 1, 4, 0,240, 2,229, 0, 18, 0, 4, 0,124, 0, 4, 0, 86, 10, + 4, 0, 87, 10, 7, 0, 88, 10, 4, 0, 89, 10, 7, 0, 90, 10, 7, 0, 91, 10, 4, 0, 92, 10, 7, 0, 93, 10, 4, 0, 94, 10, + 7, 0, 95, 10,230, 0, 96, 10, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 4, 0,101, 10, 4, 0, 35, 0, +139, 1, 4, 0, 39, 0,227, 2, 7, 0,102, 10, 7, 0,161, 1, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 0,139, 1,103, 10, + 51, 0, 69, 10, 43, 0,104, 10, 49, 0,105, 10, 22, 0,146, 0, 0, 0,106, 10, 7, 0,107, 10, 2, 0, 4, 6, 2, 0,108, 10, + 4, 0,104, 0, 4, 0, 17, 0, 7, 0,109, 10, 4, 0, 79, 2, 4, 0,110, 10, 7, 0,111, 10, 7, 0,112, 10, 7, 0,113, 10, + 7, 0,161, 1, 4, 0,114, 10, 7, 0,115, 10, 0, 0,116, 10, 0, 0,117, 10, 0, 0,118, 10, 0, 0,119, 10, 7, 0,120, 10, + 7, 0,121, 10, 7, 0,122, 10, 7, 0,240, 2, 7, 0,123, 10, 4, 0,124, 10, 7, 0,125, 10, 7, 0,126, 10, 7, 0,127, 10, +140, 1, 10, 0, 4, 0, 15, 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 0,201, 3, 4, 0,128, 10, 4, 0,129, 10, 4, 0,130, 10, + 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0,141, 1, 1, 0, 0, 0, 60, 8, 84, 0, 7, 0,140, 1,131, 10, 4, 0,132, 10, + 4, 0,133, 10, 4, 0,134, 10, 4, 0, 35, 0, 9, 0,135, 10,141, 1,136, 10,142, 1, 5, 0, 7, 0,147, 2, 7, 0,221, 2, + 7, 0, 29, 2, 2, 0,128, 2, 2, 0, 35, 0,143, 1, 5, 0, 7, 0,147, 2, 7, 0, 89, 4, 7, 0,137, 10, 7, 0,138, 10, + 7, 0,221, 2,144, 1, 5, 0, 24, 0,139, 10,145, 1, 20, 0, 7, 0,227, 5, 7, 0,140, 10, 7, 0, 54, 0,146, 1, 3, 0, + 7, 0,141, 10, 4, 0,142, 10, 4, 0,143, 10,147, 1, 7, 0, 4, 0,144, 10, 4, 0,145, 10, 4, 0,146, 10, 7, 0,147, 10, + 7, 0,148, 10, 7, 0,149, 10, 7, 0, 54, 0,148, 1, 8, 0,148, 1, 0, 0,148, 1, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, + 2, 0, 17, 0, 2, 0, 72, 1, 7, 0,221, 2, 7, 0,189, 8,149, 1, 6, 0,149, 1, 0, 0,149, 1, 1, 0, 24, 0, 42, 0, + 2, 0,206, 2, 2, 0, 17, 0, 2, 0,150, 10,150, 1, 17, 0,143, 1,193, 3,143, 1,151, 10,142, 1,152, 10,143, 1,172, 8, +144, 1,153, 10, 4, 0, 79, 0, 7, 0,221, 2, 7, 0,246, 2, 7, 0,154, 10, 4, 0,144, 10, 4, 0,155, 10, 7, 0,148, 10, + 7, 0,149, 10, 7, 0,104, 0, 4, 0,156, 10, 2, 0, 17, 0, 2, 0,157, 10,151, 1, 15, 0, 7, 0,248, 0, 7, 0,158, 10, + 7, 0,141, 10, 7, 0,159, 10, 7, 0,160, 10, 7, 0,161, 10, 7, 0,162, 10, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10, + 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, 4, 0, 17, 0, 4, 0,169, 10,152, 1,121, 0, 19, 0, 29, 0, 31, 0, 72, 0, +153, 1,170, 10,151, 1,171, 10,168, 0, 84, 4, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 0,176, 9, 2, 0,172, 10, + 2, 0,107, 1, 2, 0,173, 10, 2, 0,160, 3, 2, 0,174, 10, 2, 0,175, 10, 2, 0,176, 10, 2, 0,177, 10, 2, 0,178, 10, + 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, 2, 0,124, 5, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, + 2, 0,186, 10, 2, 0,187, 10, 2, 0, 18, 2, 2, 0,165, 8, 2, 0,140, 8, 2, 0,188, 10, 2, 0,189, 10, 2, 0,211, 3, + 2, 0,212, 3, 2, 0,190, 10, 2, 0,191, 10, 2, 0,192, 10, 2, 0,193, 10, 7, 0,194, 10, 7, 0,195, 10, 7, 0,196, 10, + 7, 0,197, 10, 2, 0, 74, 5, 2, 0,198, 10, 7, 0,199, 10, 7, 0,200, 10, 7, 0,201, 10, 7, 0,147, 8, 7, 0, 86, 0, + 7, 0,246, 2, 7, 0,153, 8, 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,205, 10, 4, 0,148, 8, 4, 0,146, 8, + 4, 0,206, 10, 4, 0,207, 10, 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,208, 10, 7, 0,209, 10, 7, 0,210, 10, + 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 7, 0,151, 3, 7, 0,104, 0, + 7, 0,217, 10, 7, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,206, 0, 7, 0,221, 10, 4, 0,222, 10, 4, 0,223, 10, + 7, 0,224, 10, 7, 0,225, 10, 7, 0,226, 10, 7, 0,227, 10, 7, 0,228, 10, 7, 0,205, 0, 7, 0,229, 10, 7, 0,238, 3, + 7, 0,236, 3, 7, 0,237, 3, 7, 0,230, 10, 7, 0,231, 10, 7, 0,232, 10, 7, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10, + 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10, 7, 0,239, 10, 7, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, + 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, 7, 0,247, 10, 4, 0,248, 10, 4, 0,249, 10, 43, 0,125, 1, 58, 0,182, 3, + 12, 0,250, 10, 58, 0,251, 10, 24, 0,252, 10, 24, 0,253, 10, 28, 0, 77, 0,163, 0, 64, 1,163, 0,254, 10,141, 0, 50, 0, +141, 0, 0, 0,141, 0, 1, 0,152, 1,255, 10,150, 1, 0, 11,147, 1, 82, 9,171, 0, 10, 4, 9, 0, 11, 4,154, 1, 1, 11, +154, 1, 2, 11, 12, 0, 3, 11, 12, 0, 4, 11,126, 0, 5, 11,134, 0, 6, 11,134, 0, 7, 11, 24, 0, 8, 11, 24, 0, 9, 11, + 24, 0, 36, 0, 12, 0,143, 9, 0, 0, 18, 0, 7, 0,237, 0, 7, 0, 19, 3, 7, 0, 10, 11, 7, 0, 11, 11, 4, 0,195, 2, + 4, 0, 12, 11, 4, 0, 17, 0, 4, 0,148, 8, 4, 0, 13, 11, 4, 0, 14, 11, 4, 0, 15, 11, 4, 0, 16, 11, 2, 0,244, 0, + 2, 0, 17, 11, 2, 0, 18, 11, 2, 0, 19, 11, 0, 0, 20, 11, 2, 0, 21, 11, 2, 0, 22, 11, 2, 0, 23, 11, 9, 0, 24, 11, +130, 0, 83, 4, 12, 0, 4, 3, 12, 0, 25, 11,146, 1, 26, 11, 4, 0, 27, 11, 4, 0, 28, 11,155, 1, 29, 11,132, 0, 16, 3, +156, 1, 30, 11, 7, 0, 31, 11,128, 0, 37, 0,157, 1, 20, 9, 7, 0, 53, 4, 7, 0, 32, 11, 7, 0, 33, 11, 7, 0,227, 5, + 7, 0,161, 3, 7, 0,151, 3, 7, 0, 34, 11, 7, 0, 81, 2, 7, 0, 35, 11, 7, 0, 36, 11, 7, 0, 37, 11, 7, 0, 38, 11, + 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 54, 4, 7, 0, 41, 11, 7, 0, 42, 11, 7, 0, 43, 11, 7, 0, 55, 4, 7, 0, 51, 4, + 7, 0, 52, 4, 7, 0, 44, 11, 7, 0, 45, 11, 4, 0, 46, 11, 4, 0, 88, 0, 4, 0, 47, 11, 4, 0, 48, 11, 2, 0, 49, 11, + 2, 0, 50, 11, 2, 0, 51, 11, 2, 0, 52, 11, 2, 0, 53, 11, 2, 0, 54, 11, 2, 0, 55, 11, 2, 0,195, 4,168, 0, 84, 4, +129, 0, 11, 0,157, 1, 56, 11, 7, 0, 57, 11, 7, 0, 58, 11, 7, 0,233, 1, 7, 0, 59, 11, 7, 0, 60, 11, 7, 0, 61, 11, + 4, 0, 88, 0, 2, 0, 62, 11, 2, 0, 63, 11, 58, 0,232, 1,158, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 2, + 7, 0, 64, 11,159, 1, 6, 0,159, 1, 0, 0,159, 1, 1, 0,158, 1, 59, 9, 4, 0,250, 0, 2, 0, 65, 11, 2, 0, 17, 0, +160, 1, 5, 0,160, 1, 0, 0,160, 1, 1, 0, 12, 0, 66, 11, 4, 0, 67, 11, 4, 0, 17, 0,161, 1, 9, 0,161, 1, 0, 0, +161, 1, 1, 0, 12, 0,119, 0,160, 1, 68, 11, 4, 0, 17, 0, 2, 0, 65, 11, 2, 0, 69, 11, 7, 0, 89, 0, 0, 0, 70, 11, +159, 0, 6, 0, 19, 0, 29, 0, 12, 0, 43, 5, 4, 0, 17, 0, 2, 0, 71, 11, 2, 0, 72, 11, 9, 0, 73, 11,162, 1, 6, 0, + 12, 0, 74, 11, 4, 0, 75, 11, 4, 0, 76, 11, 4, 0, 17, 0, 4, 0, 35, 0,211, 0, 77, 11,163, 1, 17, 0, 19, 0, 29, 0, +164, 1, 78, 11,164, 1, 79, 11, 12, 0, 80, 11, 4, 0, 81, 11, 2, 0, 82, 11, 2, 0, 83, 11, 12, 0, 84, 11, 12, 0, 85, 11, +162, 1, 86, 11, 12, 0, 87, 11, 12, 0, 88, 11, 12, 0, 89, 11, 12, 0, 90, 11,165, 1, 91, 11, 12, 0, 92, 11,211, 0, 93, 11, +164, 1, 32, 0,164, 1, 0, 0,164, 1, 1, 0, 9, 0, 94, 11, 4, 0,251, 7, 2, 0, 95, 11, 2, 0, 35, 0, 2, 1, 96, 11, + 2, 1, 97, 11, 0, 0, 98, 11, 2, 0, 99, 11, 2, 0,100, 11, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0,101, 11, 2, 0,102, 11, + 2, 0,201, 3, 2, 0,223, 6, 2, 0,103, 11, 2, 0,104, 11, 2, 0,105, 11, 2, 0, 67, 0,166, 1,106, 11,167, 1,107, 11, +168, 1,108, 11, 4, 0,109, 11, 4, 0,110, 11, 9, 0,111, 11, 12, 0, 85, 11, 12, 0, 37, 8, 12, 0,112, 11, 12, 0,113, 11, + 12, 0,114, 11,169, 1, 17, 0,169, 1, 0, 0,169, 1, 1, 0, 0, 0,115, 11, 18, 0, 28, 0, 2, 0,116, 11, 2, 0, 15, 0, + 2, 0, 13, 0, 2, 0,117, 11, 2, 0,118, 11, 2, 0,119, 11, 2, 0,120, 11, 2, 0,121, 11, 2, 0, 17, 0, 2, 0,122, 11, + 2, 0, 29, 0, 2, 0, 35, 0,170, 1,123, 11,171, 1, 10, 0,171, 1, 0, 0,171, 1, 1, 0, 12, 0,124, 11, 0, 0,115, 11, + 2, 0,125, 11, 2, 0,126, 11, 2, 0, 17, 0, 2, 0,127, 11, 4, 0,128, 11, 9, 0,129, 11,165, 1, 7, 0,165, 1, 0, 0, +165, 1, 1, 0, 0, 0,115, 11, 0, 0,130, 11, 12, 0,196, 7, 4, 0,131, 11, 4, 0, 17, 0,223, 0, 14, 0,223, 0, 0, 0, +223, 0, 1, 0, 0, 0,115, 11, 18, 0, 28, 0,172, 1, 11, 8, 9, 0,132, 11, 9, 0,133, 11,170, 1,123, 11,162, 1,134, 11, + 12, 0,135, 11,223, 0,136, 11, 7, 1,130, 6, 2, 0, 17, 0, 2, 0,195, 4,173, 1, 8, 0,173, 1, 0, 0,173, 1, 1, 0, + 9, 0, 2, 0, 9, 0,137, 11, 0, 0, 4, 4, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,138, 11,174, 1, 5, 0, 7, 0,139, 11, + 4, 0,140, 11, 4, 0,141, 11, 4, 0, 72, 1, 4, 0, 17, 0,175, 1, 6, 0, 7, 0,142, 11, 7, 0,143, 11, 7, 0,144, 11, + 7, 0,145, 11, 4, 0, 15, 0, 4, 0, 17, 0,176, 1, 5, 0, 7, 0,249, 8, 7, 0,250, 8, 7, 0,221, 2, 2, 0, 32, 2, + 2, 0, 33, 2,177, 1, 5, 0,176, 1, 2, 0, 4, 0, 51, 0, 7, 0,146, 11, 7, 0,249, 8, 7, 0,250, 8,178, 1, 4, 0, + 2, 0,147, 11, 2, 0,148, 11, 2, 0,149, 11, 2, 0,150, 11,179, 1, 2, 0, 34, 0,185, 6, 18, 0, 25, 9,180, 1, 3, 0, + 16, 0,151, 11, 4, 0, 17, 0, 4, 0, 35, 0,181, 1, 6, 0, 7, 0,104, 0, 7, 0,223, 2, 7, 0,152, 11, 7, 0, 35, 0, + 2, 0,243, 0, 2, 0,153, 11,182, 1, 5, 0, 7, 0,154, 11, 7, 0,120, 0, 7, 0, 60, 9, 7, 0, 61, 9, 4, 0, 17, 0, +183, 1, 6, 0, 19, 0,191, 6, 0, 0,155, 11, 0, 0,156, 11, 2, 0,157, 11, 2, 0, 17, 0, 4, 0,158, 11,184, 1, 7, 0, +184, 1, 0, 0,184, 1, 1, 0, 0, 0, 4, 4,183, 1,159, 11, 2, 0,160, 11, 2, 0, 15, 0, 7, 0, 58, 0,185, 1, 7, 0, + 12, 0,161, 11, 0, 0,162, 11, 9, 0,163, 11, 7, 0, 58, 0, 7, 0,138, 11, 4, 0, 15, 0, 4, 0, 17, 0,186, 1, 3, 0, + 7, 0,164, 11, 4, 0, 17, 0, 4, 0, 35, 0,187, 1, 15, 0,187, 1, 0, 0,187, 1, 1, 0, 78, 1,130, 9,185, 1, 59, 0, + 12, 0,118, 3, 27, 0, 47, 0,186, 1,165, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 15, 1, 4, 0,166, 11, + 0, 0,155, 11, 4, 0,167, 11, 7, 0,168, 11,188, 1, 2, 0, 0, 0,169, 11, 0, 0,170, 11,189, 1, 4, 0,189, 1, 0, 0, +189, 1, 1, 0,157, 0, 53, 3, 12, 0,171, 11,190, 1, 24, 0,190, 1, 0, 0,190, 1, 1, 0, 12, 0,172, 11,157, 0,220, 8, +189, 1,173, 11, 12, 0,174, 11, 12, 0,118, 3, 0, 0, 4, 4, 7, 0,138, 11, 7, 0,175, 11, 7, 0, 85, 0, 7, 0, 86, 0, + 7, 0,192, 9, 7, 0,193, 9, 7, 0,236, 2, 7, 0,196, 9, 7, 0,222, 8, 7, 0,197, 9, 2, 0,176, 11, 2, 0,177, 11, + 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,191, 1, 6, 0,191, 1, 0, 0,191, 1, 1, 0, 12, 0,172, 11, + 4, 0, 17, 0, 4, 0,151, 2, 0, 0, 4, 4,192, 1, 11, 0,192, 1, 0, 0,192, 1, 1, 0, 19, 0,191, 6, 0, 0,178, 11, + 4, 0,158, 11, 2, 0,179, 11, 2, 0, 35, 0, 0, 0,155, 11, 4, 0,166, 11, 2, 0, 17, 0, 2, 0,180, 11,193, 1, 8, 0, +193, 1, 0, 0,193, 1, 1, 0, 12, 0,181, 11, 0, 0, 4, 4, 0, 0,182, 11, 2, 0, 17, 0, 2, 0,180, 11, 4, 0,183, 11, +194, 1, 5, 0,194, 1, 0, 0,194, 1, 1, 0, 0, 0,155, 11, 4, 0,166, 11, 7, 0,211, 2, 31, 0, 12, 0,157, 0,109, 3, +157, 0,184, 11,189, 1,173, 11, 12, 0,185, 11,190, 1,186, 11, 12, 0,187, 11, 12, 0,188, 11, 4, 0, 17, 0, 4, 0,244, 0, + 2, 0,189, 11, 2, 0,190, 11, 7, 0,191, 11,195, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,196, 1, 5, 0,196, 1, 0, 0, +196, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,197, 1, 6, 0,196, 1,192, 11, 24, 0, 42, 0, 4, 0,193, 11, + 7, 0,194, 11, 4, 0,195, 11, 4, 0,117, 9,198, 1, 3, 0,196, 1,192, 11, 4, 0,193, 11, 7, 0,196, 11,199, 1, 8, 0, +196, 1,192, 11, 24, 0, 42, 0, 7, 0, 67, 1, 7, 0,197, 11, 7, 0, 19, 3, 7, 0, 19, 9, 4, 0,193, 11, 4, 0,198, 11, +200, 1, 5, 0,196, 1,192, 11, 7, 0,199, 11, 7, 0,100, 8, 7, 0,242, 2, 7, 0, 54, 0,201, 1, 3, 0,196, 1,192, 11, + 7, 0, 19, 9, 7, 0,200, 11,145, 1, 4, 0, 7, 0,201, 11, 7, 0,218, 10, 2, 0,202, 11, 2, 0, 72, 1,202, 1, 14, 0, +202, 1, 0, 0,202, 1, 1, 0, 12, 0,203, 11, 12, 0,204, 11, 12, 0,205, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0, + 4, 0,206, 11, 7, 0,207, 11, 4, 0,195, 11, 4, 0,117, 9, 7, 0, 14, 4, 7, 0,244, 2,153, 1, 23, 0, 4, 0,193, 11, + 4, 0,208, 11, 7, 0,209, 11, 7, 0,240, 2, 7, 0,210, 11, 7, 0,236, 8, 7, 0,201, 11, 7, 0,211, 11, 7, 0,223, 2, + 7, 0, 88, 10, 7, 0,145, 4, 7, 0,212, 11, 7, 0,213, 11, 7, 0,214, 11, 7, 0,215, 11, 7, 0,216, 11, 7, 0,217, 11, + 7, 0,218, 11, 7, 0,219, 11, 7, 0,220, 11, 7, 0,221, 11, 7, 0,222, 11, 12, 0,223, 11,114, 0, 40, 0,113, 0,224, 11, +203, 1,171, 10, 58, 0,225, 11, 58, 0,251, 10, 58, 0,226, 11,204, 1,227, 11, 40, 0,160, 0, 40, 0,228, 11, 40, 0,229, 11, + 7, 0,230, 11, 7, 0,231, 11, 7, 0,232, 11, 7, 0,233, 11, 7, 0,234, 11, 7, 0,250, 7, 7, 0,235, 11, 7, 0,161, 1, + 7, 0,236, 11, 4, 0,237, 11, 4, 0,238, 11, 4, 0,239, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,240, 11, 2, 0,241, 11, + 2, 0,242, 11, 4, 0,243, 11, 7, 0,223, 2, 4, 0,244, 11, 7, 0,245, 11, 4, 0,246, 11, 4, 0,247, 11, 4, 0,248, 11, +130, 0,249, 11, 12, 0,250, 11,168, 0, 84, 4, 4, 0,251, 11, 7, 0,252, 11, 7, 0,253, 11, 4, 0, 67, 0,115, 0, 12, 0, +113, 0,224, 11,141, 0, 39, 3, 7, 0,128, 1, 7, 0,250, 7, 7, 0,254, 11, 7, 0,255, 11, 7, 0, 0, 12, 2, 0, 1, 12, + 2, 0, 2, 12, 2, 0, 3, 12, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 0,224, 11,132, 0, 16, 3,134, 0, 18, 3, + 7, 0, 59, 9, 7, 0, 4, 12, 7, 0, 5, 12, 7, 0, 69, 1, 7, 0, 6, 12, 4, 0,152, 9, 4, 0, 12, 3, 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index 97c2d9e3eb4..3effea296d7 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -84,7 +84,7 @@ static void console_scrollback_limit(SpaceConsole *sc) { int tot; - if (U.scrollback < 32) U.scrollback= 128; // XXX - save in user defaults + if (U.scrollback < 32) U.scrollback= 256; // XXX - save in user defaults for(tot= BLI_countlist(&sc->scrollback); tot > U.scrollback; tot--) console_scrollback_free(sc, sc->scrollback.first); -- cgit v1.2.3 From 09fc9257e1420879bde42b249bc3750fde31b14d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 03:24:07 +0000 Subject: fix [#27664] startup.blend - manipulator user-prefs regarding issues in the report 1) fixed in previous commit. 2) intentional leaving as is. 3) left 'handle size' as is IMHO acceptably general, edited 'hotshop' tooltip/ 4) corrected default values. --- source/blender/makesrna/intern/rna_userdef.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index cf371fbf9bc..1bdb21d2d00 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2115,19 +2115,22 @@ static void rna_def_userdef_view(BlenderRNA *brna) prop= RNA_def_property(srna, "manipulator_size", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "tw_size"); RNA_def_property_range(prop, 2, 40); + RNA_def_property_int_default(prop, 15); RNA_def_property_ui_text(prop, "Manipulator Size", "Diameter of widget, in 10 pixel units"); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop= RNA_def_property(srna, "manipulator_handle_size", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "tw_handlesize"); RNA_def_property_range(prop, 2, 40); + RNA_def_property_int_default(prop, 25); RNA_def_property_ui_text(prop, "Manipulator Handle Size", "Size of widget handles as percentage of widget radius"); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop= RNA_def_property(srna, "manipulator_hotspot", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "tw_hotspot"); RNA_def_property_range(prop, 4, 40); - RNA_def_property_ui_text(prop, "Manipulator Hotspot", "Hotspot in pixels for clicking widget handles"); + RNA_def_property_int_default(prop, 14); + RNA_def_property_ui_text(prop, "Manipulator Hotspot", "Pixel distance around the handles to accept mouse clicks"); prop= RNA_def_property(srna, "object_origin_size", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "obcenter_dia"); -- cgit v1.2.3 From 3e76245eb20288ec293ee43a7ea43de70cdc21ae Mon Sep 17 00:00:00 2001 From: Michael Fox Date: Mon, 20 Jun 2011 03:37:41 +0000 Subject: small fix, This enables correction of the tangent when normal mapping is in use and tangent lighting will be used --- source/blender/render/intern/source/render_texture.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 43e6043366c..5aad055a8f6 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -2119,6 +2119,7 @@ void do_material_tex(ShadeInput *shi) float texvec[3], dxt[3], dyt[3], tempvec[3], norvec[3], warpvec[3]={0.0f, 0.0f, 0.0f}, Tnor=1.0; int tex_nr, rgbnor= 0, warpdone=0; int use_compat_bump = 0, use_ntap_bump = 0; + int found_nmapping = 0; int iFirstTimeNMap=1; compatible_bump_init(&compat_bump); @@ -2429,6 +2430,9 @@ void do_material_tex(ShadeInput *shi) /* we need to code blending modes for normals too once.. now 1 exception hardcoded */ if ((tex->type==TEX_IMAGE) && (tex->imaflag & TEX_NORMALMAP)) { + + found_nmapping = 1; + /* qdn: for normalmaps, to invert the normalmap vector, it is better to negate x & y instead of subtracting the vector as was done before */ if (norfac < 0.0f) { @@ -2620,7 +2624,7 @@ void do_material_tex(ShadeInput *shi) } } } - if ((use_compat_bump || use_ntap_bump) && (shi->mat->mode & MA_TANGENT_V)!=0) { + if ((use_compat_bump || use_ntap_bump || found_nmapping) && (shi->mat->mode & MA_TANGENT_V)!=0) { const float fnegdot = -dot_v3v3(shi->vn, shi->tang); // apply Gram-Schmidt projection madd_v3_v3fl(shi->tang, shi->vn, fnegdot); -- cgit v1.2.3 From 57ed59eac217ec79da7c886fd7074449fe168d68 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 04:09:33 +0000 Subject: fix [#27700] Add effect strip ignore channel argument --- .../editors/space_sequencer/sequencer_add.c | 47 ++++++++++++++++------ 1 file changed, 35 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 502e2add066..e4c3555eac1 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -82,6 +82,7 @@ #define SEQPROP_ENDFRAME (1<<1) #define SEQPROP_FILES (1<<2) #define SEQPROP_NOPATHS (1<<3) +#define SEQPROP_NOCHAN (1<<4) #define SELECT 1 @@ -122,8 +123,12 @@ static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, w float mval_v2d[2]; UI_view2d_region_to_view(v2d, event->mval[0], event->mval[1], &mval_v2d[0], &mval_v2d[1]); - - RNA_int_set(op->ptr, "channel", (int)mval_v2d[1]+0.5f); + + /* effect strips dont need a channel initialized from the mouse */ + if(!(flag & SEQPROP_NOCHAN)) { + RNA_int_set(op->ptr, "channel", (int)mval_v2d[1]+0.5f); + } + RNA_int_set(op->ptr, "frame_start", (int)mval_v2d[0]); if ((flag & SEQPROP_ENDFRAME) && RNA_property_is_set(op->ptr, "frame_end")==0) @@ -636,14 +641,16 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) seq->blend_mode= SEQ_CROSS; } - // XXX, this conflicts with giving a channel with invoke, perhaps we should have an active channel - // but for now this is much more usable - if(seq->seq1 || seq->seq2 || seq->seq3) { - int chan= MAX3( seq->seq1 ? seq->seq1->machine : 0, - seq->seq2 ? seq->seq2->machine : 0, - seq->seq3 ? seq->seq3->machine : 0); - if(chan < MAXSEQ) - seq->machine= chan; + /* an unset channel is a special case where we automatically go above + * the other strips. */ + if(!RNA_property_is_set(op->ptr, "channel")) { + if(seq->seq1) { + int chan= MAX3( seq->seq1 ? seq->seq1->machine : 0, + seq->seq2 ? seq->seq2->machine : 0, + seq->seq3 ? seq->seq3->machine : 0); + if(chan < MAXSEQ) + seq->machine= chan; + } } if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); @@ -670,14 +677,30 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) /* add color */ static int sequencer_add_effect_strip_invoke(bContext *C, wmOperator *op, wmEvent *event) { + short is_type_set= RNA_property_is_set(op->ptr, "type"); + int type= -1; + int prop_flag= SEQPROP_ENDFRAME; + if(!ED_operator_sequencer_active(C)) { BKE_report(op->reports, RPT_ERROR, "Sequencer area not active"); return OPERATOR_CANCELLED; } - sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME); + if(is_type_set) { + type= RNA_enum_get(op->ptr, "type"); + + /* when invoking an effect strip which uses inputs, + * skip initialzing the channel from the mouse. + * Instead leave the property unset so exec() initializes it to be + * above the strips its applied to. */ + if(get_sequence_effect_num_inputs(type) != 0) { + prop_flag |= SEQPROP_NOCHAN; + } + } + + sequencer_generic_invoke_xy__internal(C, op, event, prop_flag); - if (RNA_property_is_set(op->ptr, "type") && RNA_enum_get(op->ptr, "type")==SEQ_PLUGIN) { + if (is_type_set && type==SEQ_PLUGIN) { if(!RNA_property_is_set(op->ptr, "relative_path")) RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); -- cgit v1.2.3 From c27fa83cf7893a824a2a72fae195989283aeebdb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 20 Jun 2011 09:08:41 +0000 Subject: Fix #27703: reflection texture coordinates + nodes not working right in GLSL. --- source/blender/gpu/intern/gpu_material.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index e936f35574d..3804aad6848 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -942,8 +942,10 @@ static void do_material_tex(GPUShadeInput *shi) texco= texco_object; else if(mtex->texco==TEXCO_GLOB) texco= texco_global; - else if(mtex->texco==TEXCO_REFL) + else if(mtex->texco==TEXCO_REFL) { + GPU_link(mat, "texco_refl", shi->vn, shi->view, &shi->ref); texco= shi->ref; + } else if(mtex->texco==TEXCO_UV) { if(1) { //!(texco_uv && strcmp(mtex->uvname, lastuvname) == 0)) { GPU_link(mat, "texco_uv", GPU_attribute(CD_MTFACE, mtex->uvname), &texco_uv); @@ -1173,7 +1175,6 @@ static void do_material_tex(GPUShadeInput *shi) } GPU_link(mat, "vec_math_negate", shi->vn, &orn); - GPU_link(mat, "texco_refl", shi->vn, shi->view, &shi->ref); } if((mtex->mapto & MAP_VARS)) { -- cgit v1.2.3 From dbe7488c43bf5be76f7ab9be8951c3f1af96b002 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 09:34:35 +0000 Subject: Fix [#27474] Blender crashes on collada import if input_set is missing reported by Rebin Cornelius. This needs patch from upstream report http://code.google.com/p/opencollada/issues/list?thanks=164 applied to OpenCOLLADA. lib/windows/collada and lib/win64/collada have already been updated. Ensures we don't read past array boundaries. --- source/blender/collada/MeshImporter.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index b6576858c51..806be14d0ed 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -755,9 +755,11 @@ MTex *MeshImporter::assign_textures_to_uvlayer(COLLADAFW::TextureCoordinateBindi MTex *color_texture) { const COLLADAFW::TextureMapId texture_index = ctexture.getTextureMapId(); - const size_t setindex = ctexture.getSetIndex(); + size_t setindex = ctexture.getSetIndex(); std::string uvname = ctexture.getSemantic(); + if(setindex==-1) return NULL; + const CustomData *data = &me->fdata; int layer_index = CustomData_get_layer_index(data, CD_MTFACE); CustomDataLayer *cdl = &data->layers[layer_index+setindex]; -- cgit v1.2.3 From bb851003b50077dcebe1f80703fd1ba0c0783a1d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 10:22:39 +0000 Subject: Remove redundant e usage. Energy is already multiplied into exported light. Fixes potential bug (e used uninitialised, reported by Campbell Barton on IRC). --- source/blender/collada/LightExporter.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 12ccf77f6ad..13eb62ca969 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -67,7 +67,7 @@ void LightsExporter::operator()(Object *ob) std::string la_id(get_light_id(ob)); std::string la_name(id_name(la)); COLLADASW::Color col(la->r * la->energy, la->g * la->energy, la->b * la->energy); - float e, d, constatt, linatt, quadatt; + float d, constatt, linatt, quadatt; d = la->dist; @@ -84,7 +84,7 @@ void LightsExporter::operator()(Object *ob) // sun if (la->type == LA_SUN) { - COLLADASW::DirectionalLight cla(mSW, la_id, la_name, e); + COLLADASW::DirectionalLight cla(mSW, la_id, la_name); cla.setColor(col); cla.setConstantAttenuation(constatt); exportBlenderProfile(cla, la); @@ -92,7 +92,7 @@ void LightsExporter::operator()(Object *ob) } // hemi else if (la->type == LA_HEMI) { - COLLADASW::AmbientLight cla(mSW, la_id, la_name, e); + COLLADASW::AmbientLight cla(mSW, la_id, la_name); cla.setColor(col); cla.setConstantAttenuation(constatt); exportBlenderProfile(cla, la); @@ -100,7 +100,7 @@ void LightsExporter::operator()(Object *ob) } // spot else if (la->type == LA_SPOT) { - COLLADASW::SpotLight cla(mSW, la_id, la_name, e); + COLLADASW::SpotLight cla(mSW, la_id, la_name); cla.setColor(col); cla.setFallOffAngle(la->spotsize); cla.setFallOffExponent(la->spotblend); @@ -112,7 +112,7 @@ void LightsExporter::operator()(Object *ob) } // lamp else if (la->type == LA_LOCAL) { - COLLADASW::PointLight cla(mSW, la_id, la_name, e); + COLLADASW::PointLight cla(mSW, la_id, la_name); cla.setColor(col); cla.setConstantAttenuation(constatt); cla.setLinearAttenuation(linatt); @@ -123,7 +123,7 @@ void LightsExporter::operator()(Object *ob) // area lamp is not supported // it will be exported as a local lamp else { - COLLADASW::PointLight cla(mSW, la_id, la_name, e); + COLLADASW::PointLight cla(mSW, la_id, la_name); cla.setColor(col); cla.setConstantAttenuation(constatt); cla.setLinearAttenuation(linatt); -- cgit v1.2.3 From 201052a3ffbb7070ac9ad454197a7b380097568d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 10:28:37 +0000 Subject: Apply Patch [#27454] Add simple Transparency texture import for COLLADA submitted by Steffen Ohrendorf. --- source/blender/collada/DocumentImporter.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 10e6d611cc5..efd60c16ef6 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -670,6 +670,18 @@ void DocumentImporter::write_profile_COMMON(COLLADAFW::EffectCommon *ef, Materia i++; } } + + if(ef->getOpacity().isTexture()) { + COLLADAFW::Texture ctex = ef->getOpacity().getTexture(); + mtex = create_texture(ef, ctex, ma, i, texindex_texarray_map); + if(mtex != NULL) { + mtex->mapto = MAP_ALPHA; + mtex->tex->imaflag |= TEX_USEALPHA; + i++; + ma->spectra = ma->alpha = 0; + ma->mode |= MA_ZTRANSP|MA_TRANSP; + } + } // TRANSPARENT // color // if (ef->getOpacity().isColor()) { -- cgit v1.2.3 From 81f5679ff50fde4085b92cb39f98efd8354fc5ef Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 10:50:17 +0000 Subject: Fix [#26821] Import Collada: instance_node still incorrectly handled reported by David Roy patch submitted by Camillo Dell'mour --- source/blender/collada/DocumentImporter.cpp | 25 +++++++++++++++---------- source/blender/collada/DocumentImporter.h | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index efd60c16ef6..0502102f7c4 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -309,7 +309,7 @@ Object* DocumentImporter::create_lamp_object(COLLADAFW::InstanceLight *lamp, Sce return ob; } -Object* DocumentImporter::create_instance_node(Object *source_ob, COLLADAFW::Node *source_node, COLLADAFW::Node *instance_node, Scene *sce, bool is_library_node) +Object* DocumentImporter::create_instance_node(Object *source_ob, COLLADAFW::Node *source_node, COLLADAFW::Node *instance_node, Scene *sce, Object *par_ob, bool is_library_node) { Object *obn = copy_object(source_ob); obn->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; @@ -353,10 +353,10 @@ Object* DocumentImporter::create_instance_node(Object *source_ob, COLLADAFW::Nod Object *new_child = NULL; if (inodes.getCount()) { // \todo loop through instance nodes const COLLADAFW::UniqueId& id = inodes[0]->getInstanciatedObjectId(); - new_child = create_instance_node(object_map[id], node_map[id], child_node, sce, is_library_node); + new_child = create_instance_node(object_map[id], node_map[id], child_node, sce, NULL, is_library_node); } else { - new_child = create_instance_node(object_map[child_id], child_node, NULL, sce, is_library_node); + new_child = create_instance_node(object_map[child_id], child_node, NULL, sce, NULL, is_library_node); } bc_set_parent(new_child, obn, mContext, true); @@ -367,7 +367,12 @@ Object* DocumentImporter::create_instance_node(Object *source_ob, COLLADAFW::Nod // when we have an instance_node, don't return the object, because otherwise // its correct location gets overwritten in write_node(). Fixes bug #26012. - if(instance_node) return NULL; + if(instance_node) { + if (par_ob && obn) + bc_set_parent(obn, par_ob, mContext); + return NULL; + } + else return obn; } @@ -385,11 +390,11 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren COLLADAFW::InstanceLightPointerArray &lamp = node->getInstanceLights(); COLLADAFW::InstanceControllerPointerArray &controller = node->getInstanceControllers(); COLLADAFW::InstanceNodePointerArray &inst_node = node->getInstanceNodes(); - int geom_done = 0; - int camera_done = 0; - int lamp_done = 0; - int controller_done = 0; - int inst_done = 0; + size_t geom_done = 0; + size_t camera_done = 0; + size_t lamp_done = 0; + size_t controller_done = 0; + size_t inst_done = 0; // XXX linking object with the first , though a node may have more of them... // maybe join multiple meshes into 1, and link object with it? not sure... @@ -423,7 +428,7 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren Object *source_ob = object_map[node_id]; COLLADAFW::Node *source_node = node_map[node_id]; - ob = create_instance_node(source_ob, source_node, node, sce, is_library_node); + ob = create_instance_node(source_ob, source_node, node, sce, par, is_library_node); } ++inst_done; } diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h index e57d621eeef..5ccec534680 100644 --- a/source/blender/collada/DocumentImporter.h +++ b/source/blender/collada/DocumentImporter.h @@ -72,7 +72,7 @@ public: /** these should not be here */ Object* create_camera_object(COLLADAFW::InstanceCamera*, Scene*); Object* create_lamp_object(COLLADAFW::InstanceLight*, Scene*); - Object* create_instance_node(Object*, COLLADAFW::Node*, COLLADAFW::Node*, Scene*, bool); + Object* create_instance_node(Object*, COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool); void write_node(COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool); MTex* create_texture(COLLADAFW::EffectCommon*, COLLADAFW::Texture&, Material*, int, TexIndexTextureArrayMap&); void write_profile_COMMON(COLLADAFW::EffectCommon*, Material*); -- cgit v1.2.3 From d27863733710ab23749b21755be245bc7a303f12 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 12:43:10 +0000 Subject: Fix [#26912] [Collada] Screw up with names/ids on import Reported by Valeriy Firsov Use the node name if it exists, fall back to id otherwise. --- source/blender/collada/AnimationImporter.cpp | 9 +++++---- source/blender/collada/ArmatureImporter.cpp | 6 +++--- source/blender/collada/DocumentImporter.cpp | 5 +++-- source/blender/collada/MeshImporter.cpp | 8 ++++---- source/blender/collada/SkinInfo.cpp | 6 +++--- source/blender/collada/collada_internal.cpp | 2 +- 6 files changed, 19 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index a166324bde7..336f127b11f 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -53,12 +53,12 @@ #include -// use this for retrieving bone names, since these must be unique +// first try node name, if not available (since is optional), fall back to original id template static const char *bc_get_joint_name(T *node) { - const std::string& id = node->getOriginalId(); - return id.size() ? id.c_str() : node->getName().c_str(); + const std::string& id = node->getName(); + return id.size() ? id.c_str() : node->getOriginalId().c_str(); } FCurve *AnimationImporter::create_fcurve(int array_index, const char *rna_path) @@ -827,7 +827,8 @@ void AnimationImporter::evaluate_transform_at_frame(float mat[4][4], COLLADAFW:: unit_m4(m); - if (!evaluate_animation(tm, m, fra, node->getOriginalId().c_str())) { + std::string nodename = node->getName().size() ? node->getName() : node->getOriginalId(); + if (!evaluate_animation(tm, m, fra, nodename.c_str())) { switch (type) { case COLLADAFW::Transformation::ROTATE: dae_rotate_to_mat4(tm, m); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 8987e4ffaf7..8b8e89fd4f5 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -42,12 +42,12 @@ #include "ArmatureImporter.h" -// use this for retrieving bone names, since these must be unique +// use node name, or fall back to original id if not present (name is optional) template static const char *bc_get_joint_name(T *node) { - const std::string& id = node->getOriginalId(); - return id.size() ? id.c_str() : node->getName().c_str(); + const std::string& id = node->getName(); + return id.size() ? id.c_str() : node->getOriginalId().c_str(); } ArmatureImporter::ArmatureImporter(UnitConverter *conv, MeshImporterBase *mesh, AnimationImporterBase *anim, Scene *sce) : diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 0502102f7c4..78ee444bb4e 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -441,7 +441,8 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren // check if object is not NULL if (!ob) return; - rename_id(&ob->id, (char*)node->getOriginalId().c_str()); + std::string nodename = node->getName().size() ? node->getName() : node->getOriginalId(); + rename_id(&ob->id, (char*)nodename.c_str()); object_map[node->getUniqueId()] = ob; node_map[node->getUniqueId()] = node; @@ -523,7 +524,7 @@ bool DocumentImporter::writeMaterial( const COLLADAFW::Material* cmat ) if(mImportStage!=General) return true; - const std::string& str_mat_id = cmat->getOriginalId(); + const std::string& str_mat_id = cmat->getName().size() ? cmat->getName() : cmat->getOriginalId(); Material *ma = add_material((char*)str_mat_id.c_str()); this->uid_effect_map[cmat->getInstantiatedEffect()] = ma; diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index 806be14d0ed..d1977d15fb2 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -62,7 +62,7 @@ extern "C" { #include "MeshImporter.h" #include "collada_utils.h" -// works for COLLADAFW::Node, COLLADAFW::Geometry +// get node name, or fall back to original id if not present (name is optional) template static const char *bc_get_dae_name(T *node) { @@ -835,7 +835,6 @@ MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmateri if (*color_texture && strlen((*color_texture)->uvname) && strcmp(layername, (*color_texture)->uvname) != 0) { - texture_face = (MTFace*)CustomData_get_layer_named(&me->fdata, CD_MTFACE, (*color_texture)->uvname); strcpy(layername, (*color_texture)->uvname); @@ -905,7 +904,7 @@ Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::Insta uid_object_map[*geom_uid] = ob; // name Object - const std::string& id = node->getOriginalId(); + const std::string& id = node->getName().size() ? node->getName() : node->getOriginalId(); if (id.length()) rename_id(&ob->id, (char*)id.c_str()); @@ -917,6 +916,7 @@ Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::Insta if (old_mesh->id.us == 0) free_libblock(&G.main->mesh, old_mesh); char layername[100]; + layername[0] = '\0'; MTFace *texture_face = NULL; MTex *color_texture = NULL; @@ -959,7 +959,7 @@ bool MeshImporter::write_geometry(const COLLADAFW::Geometry* geom) return true; } - const std::string& str_geom_id = mesh->getOriginalId(); + const std::string& str_geom_id = mesh->getName().size() ? mesh->getName() : mesh->getOriginalId(); Mesh *me = add_mesh((char*)str_geom_id.c_str()); // store the Mesh pointer to link it later with an Object diff --git a/source/blender/collada/SkinInfo.cpp b/source/blender/collada/SkinInfo.cpp index 10780de2e70..83b9449c8f2 100644 --- a/source/blender/collada/SkinInfo.cpp +++ b/source/blender/collada/SkinInfo.cpp @@ -48,12 +48,12 @@ #include "SkinInfo.h" #include "collada_utils.h" -// use this for retrieving bone names, since these must be unique +// use name, or fall back to original id if name not present (name is optional) template static const char *bc_get_joint_name(T *node) { - const std::string& id = node->getOriginalId(); - return id.size() ? id.c_str() : node->getName().c_str(); + const std::string& id = node->getName(); + return id.size() ? id.c_str() : node->getOriginalId().c_str(); } // This is used to store data passed in write_controller_data. diff --git a/source/blender/collada/collada_internal.cpp b/source/blender/collada/collada_internal.cpp index 4f4d16d3b0d..9cb6a227fc9 100644 --- a/source/blender/collada/collada_internal.cpp +++ b/source/blender/collada/collada_internal.cpp @@ -265,7 +265,7 @@ std::string get_light_id(Object *ob) std::string get_joint_id(Bone *bone, Object *ob_arm) { - return translate_id(id_name(ob_arm) + "_" + bone->name); + return translate_id(bone->name); } std::string get_camera_id(Object *ob) -- cgit v1.2.3 From 0faeffb8a57493b6ccebc87decfed54c51152af0 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 20 Jun 2011 13:04:11 +0000 Subject: Compile fix. Note that var introduction must happen at start of code block. --- source/blender/editors/space_view3d/view3d_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index d1be99ce7ee..d506c4a5636 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -952,11 +952,13 @@ float ndof_to_angle_axis(const float ndof[3], float axis[3]) // Mike's version static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) { + RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; float sensitivity = 1.f; /* ooh, magic number! const float sensitivity = 0.035; /* ooh, magic number! there will be several of these as interactions get tuned */ + int /* bool */ has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); float dt = ndof->dt; if (dt > 0.25f) @@ -964,9 +966,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) /* TODO: replace such guesswork with a flag or field from the NDOF manager */ dt = 0.0125f; - RegionView3D* rv3d = CTX_wm_region_view3d(C); - int /* bool */ has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); if (has_rotation) rv3d->view = RV3D_VIEW_USER; -- cgit v1.2.3 From 11014defdb8cf93fb339e2442a93fbc2525586fa Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 15:17:02 +0000 Subject: since render branch isnt planned to be merged now, enable strict warning flags for cmake and tag unused vars. --- source/blender/render/CMakeLists.txt | 2 -- source/blender/render/intern/include/rayobject.h | 2 +- source/blender/render/intern/source/convertblender.c | 16 ++++++++-------- source/blender/render/intern/source/rayshade.c | 2 +- source/blender/render/intern/source/rendercore.c | 8 ++++---- source/blender/render/intern/source/renderdatabase.c | 4 ++-- source/blender/render/intern/source/shadeinput.c | 2 +- source/blender/render/intern/source/shadeoutput.c | 4 ++-- source/blender/render/intern/source/strand.c | 6 +++--- source/blender/render/intern/source/zbuf.c | 10 +++++----- 10 files changed, 27 insertions(+), 29 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 7521d6b9ce5..a2d698b739e 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -24,8 +24,6 @@ # # ***** END GPL LICENSE BLOCK ***** -# remove warning until render branch merged. -remove_strict_flags() set(INC intern/include diff --git a/source/blender/render/intern/include/rayobject.h b/source/blender/render/intern/include/rayobject.h index dea8c1bdb6f..bef7ae6196b 100644 --- a/source/blender/render/intern/include/rayobject.h +++ b/source/blender/render/intern/include/rayobject.h @@ -60,7 +60,7 @@ int RE_rayobject_raycast(RayObject *r, struct Isect *i); RayObject* RE_rayobject_octree_create(int ocres, int size); RayObject* RE_rayobject_instance_create(RayObject *target, float transform[][4], void *ob, void *target_ob); -RayObject* RE_rayobject_empty_create(); +RayObject* RE_rayobject_empty_create(void); RayObject* RE_rayobject_blibvh_create(int size); /* BLI_kdopbvh.c */ RayObject* RE_rayobject_vbvh_create(int size); /* raytrace/rayobject_vbvh.c */ diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 15fc9d38c01..87a1c118897 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -341,7 +341,7 @@ u | | F1 | F2 | /* ------------------------------------------------------------------------- */ -static void split_v_renderfaces(ObjectRen *obr, int startvlak, int startvert, int usize, int vsize, int uIndex, int UNUSED(cyclu), int cyclv) +static void split_v_renderfaces(ObjectRen *obr, int startvlak, int UNUSED(startvert), int UNUSED(usize), int vsize, int uIndex, int UNUSED(cyclu), int cyclv) { int vLen = vsize-1+(!!cyclv); int v; @@ -393,7 +393,7 @@ static void calc_edge_stress_add(float *accum, VertRen *v1, VertRen *v2) acc[1]+= 1.0f; } -static void calc_edge_stress(Render *re, ObjectRen *obr, Mesh *me) +static void calc_edge_stress(Render *UNUSED(re), ObjectRen *obr, Mesh *me) { float loc[3], size[3], *accum, *acc, *accumoffs, *stress; int a; @@ -590,7 +590,7 @@ static void SetTSpace(const SMikkTSpaceContext * pContext, const float fvTangent } } -static void calc_vertexnormals(Render *re, ObjectRen *obr, int do_tangent, int do_nmap_tangent) +static void calc_vertexnormals(Render *UNUSED(re), ObjectRen *obr, int do_tangent, int do_nmap_tangent) { MemArena *arena= NULL; VertexTangent **vtangents= NULL; @@ -759,7 +759,7 @@ static void as_addvert(ASvert *asv, VertRen *v1, VlakRen *vlr) } } -static int as_testvertex(VlakRen *vlr, VertRen *ver, ASvert *asv, float thresh) +static int as_testvertex(VlakRen *vlr, VertRen *UNUSED(ver), ASvert *asv, float thresh) { /* return 1: vertex needs a copy */ ASface *asf; @@ -782,7 +782,7 @@ static int as_testvertex(VlakRen *vlr, VertRen *ver, ASvert *asv, float thresh) return 0; } -static VertRen *as_findvertex(VlakRen *vlr, VertRen *ver, ASvert *asv, float thresh) +static VertRen *as_findvertex(VlakRen *vlr, VertRen *UNUSED(ver), ASvert *asv, float thresh) { /* return when new vertex already was made */ ASface *asf; @@ -810,7 +810,7 @@ static VertRen *as_findvertex(VlakRen *vlr, VertRen *ver, ASvert *asv, float thr /* note; autosmooth happens in object space still, after applying autosmooth we rotate */ /* note2; actually, when original mesh and displist are equal sized, face normals are from original mesh */ -static void autosmooth(Render *re, ObjectRen *obr, float mat[][4], int degr) +static void autosmooth(Render *UNUSED(re), ObjectRen *obr, float mat[][4], int degr) { ASvert *asv, *asverts; ASface *asf; @@ -2100,7 +2100,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem /* Halo's */ /* ------------------------------------------------------------------------- */ -static void make_render_halos(Render *re, ObjectRen *obr, Mesh *me, int totvert, MVert *mvert, Material *ma, float *orco) +static void make_render_halos(Render *re, ObjectRen *obr, Mesh *UNUSED(me), int totvert, MVert *mvert, Material *ma, float *orco) { Object *ob= obr->ob; HaloRen *har; @@ -4699,7 +4699,7 @@ static int allow_render_object(Render *re, Object *ob, int nolamps, int onlysele return 1; } -static int allow_render_dupli_instance(Render *re, DupliObject *dob, Object *obd) +static int allow_render_dupli_instance(Render *UNUSED(re), DupliObject *dob, Object *obd) { ParticleSystem *psys; Material *ma; diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index e8f66cf18ef..34d3adcf15b 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -1231,7 +1231,7 @@ static QMCSampler *get_thread_qmcsampler(Render *re, int thread, int type, int t return qsa; } -static void release_thread_qmcsampler(Render *re, int thread, QMCSampler *qsa) +static void release_thread_qmcsampler(Render *UNUSED(re), int UNUSED(thread), QMCSampler *qsa) { qsa->used= 0; } diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 7c197bb440e..096a278a705 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -1984,7 +1984,7 @@ typedef struct BakeShade { short *do_update; } BakeShade; -static void bake_set_shade_input(ObjectInstanceRen *obi, VlakRen *vlr, ShadeInput *shi, int quad, int isect, int x, int y, float u, float v) +static void bake_set_shade_input(ObjectInstanceRen *obi, VlakRen *vlr, ShadeInput *shi, int quad, int UNUSED(isect), int x, int y, float u, float v) { if(quad) shade_input_set_triangle_i(shi, obi, vlr, 0, 2, 3); @@ -2015,7 +2015,7 @@ static void bake_set_shade_input(ObjectInstanceRen *obi, VlakRen *vlr, ShadeInpu shi->view[2]= shi->vn[2]; } -static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int quad, int x, int y, float u, float v, float *tvn, float *ttang) +static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int UNUSED(quad), int x, int y, float UNUSED(u), float UNUSED(v), float *tvn, float *ttang) { BakeShade *bs= handle; ShadeSample *ssamp= &bs->ssamp; @@ -2183,7 +2183,7 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int quad, int } } -static void bake_displacement(void *handle, ShadeInput *shi, float dist, int x, int y) +static void bake_displacement(void *handle, ShadeInput *UNUSED(shi), float dist, int x, int y) { BakeShade *bs= handle; float disp; @@ -2556,7 +2556,7 @@ static void *do_bake_thread(void *bs_v) return NULL; } -void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *mask, const int filter) +void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *UNUSED(mask), const int filter) { /* must check before filtering */ const short is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index afe4d5c7e35..456162d2d30 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -446,7 +446,7 @@ VlakRen *RE_vlakren_copy(ObjectRen *obr, VlakRen *vlr) return vlr1; } -void RE_vlakren_get_normal(Render *re, ObjectInstanceRen *obi, VlakRen *vlr, float *nor) +void RE_vlakren_get_normal(Render *UNUSED(re), ObjectInstanceRen *obi, VlakRen *vlr, float *nor) { float (*nmat)[3]= obi->nmat; @@ -1238,7 +1238,7 @@ static int panotestclip(Render *re, int do_pano, float *v) - shadow buffering (shadbuf.c) */ -void project_renderdata(Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, float xoffs, int do_buckets) +void project_renderdata(Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, float xoffs, int UNUSED(do_buckets)) { ObjectRen *obr; HaloRen *har = NULL; diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index e22ddd28dda..2702b7e5145 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -303,7 +303,7 @@ void shade_input_set_triangle_i(ShadeInput *shi, ObjectInstanceRen *obi, VlakRen */ /* copy data from face to ShadeInput, scanline case */ -void shade_input_set_triangle(ShadeInput *shi, volatile int obi, volatile int facenr, int normal_flip) +void shade_input_set_triangle(ShadeInput *shi, volatile int obi, volatile int facenr, int UNUSED(normal_flip)) { if(facenr>0) { shi->obi= &R.objectinstance[obi]; diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index 5a5de938e43..7f921d21041 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -705,7 +705,7 @@ static float WardIso_Spec( float *n, float *l, float *v, float rms, int tangent) } /* cartoon render diffuse */ -static float Toon_Diff( float *n, float *l, float *v, float size, float smooth ) +static float Toon_Diff( float *n, float *l, float *UNUSED(v), float size, float smooth ) { float rslt, ang; @@ -806,7 +806,7 @@ static float Minnaert_Diff(float nl, float *n, float *v, float darkness) return i; } -static float Fresnel_Diff(float *vn, float *lv, float *view, float fac_i, float fac) +static float Fresnel_Diff(float *vn, float *lv, float *UNUSED(view), float fac_i, float fac) { return fresnel_fac(lv, vn, fac_i, fac); } diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c index 9f5c2c39472..72cb35e7827 100644 --- a/source/blender/render/intern/source/strand.c +++ b/source/blender/render/intern/source/strand.c @@ -594,7 +594,7 @@ static void do_strand_fillac(void *handle, int x, int y, float u, float v, float } /* width is calculated in hoco space, to ensure strands are visible */ -static int strand_test_clip(float winmat[][4], ZSpan *zspan, float *bounds, float *co, float *zcomp, float widthx, float widthy) +static int strand_test_clip(float winmat[][4], ZSpan *UNUSED(zspan), float *bounds, float *co, float *zcomp, float widthx, float widthy) { float hoco[4]; int clipflag= 0; @@ -615,7 +615,7 @@ static int strand_test_clip(float winmat[][4], ZSpan *zspan, float *bounds, floa return clipflag; } -static void do_scanconvert_strand(Render *re, StrandPart *spart, ZSpan *zspan, float t, float dt, float *co1, float *co2, float *co3, float *co4, int sample) +static void do_scanconvert_strand(Render *UNUSED(re), StrandPart *spart, ZSpan *zspan, float t, float dt, float *co1, float *co2, float *co3, float *co4, int sample) { float jco1[3], jco2[3], jco3[3], jco4[3], jx, jy; @@ -778,7 +778,7 @@ void render_strand_segment(Render *re, float winmat[][4], StrandPart *spart, ZSp } /* render call to fill in strands */ -int zbuffer_strands_abuf(Render *re, RenderPart *pa, APixstrand *apixbuf, ListBase *apsmbase, unsigned int lay, int negzmask, float winmat[][4], int winx, int winy, int sample, float (*jit)[2], float clipcrop, int shadow, StrandShadeCache *cache) +int zbuffer_strands_abuf(Render *re, RenderPart *pa, APixstrand *apixbuf, ListBase *apsmbase, unsigned int lay, int UNUSED(negzmask), float winmat[][4], int winx, int winy, int UNUSED(sample), float (*jit)[2], float clipcrop, int shadow, StrandShadeCache *cache) { ObjectRen *obr; ObjectInstanceRen *obi; diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 174b1378f67..98dbb796f5b 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -715,7 +715,7 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) } } -static void zbufline_onlyZ(ZSpan *zspan, int obi, int zvlnr, float *vec1, float *vec2) +static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), float *vec1, float *vec2) { int *rectz, *rectz1= NULL; int start, end, x, y, oldx, oldy, ofs; @@ -1287,7 +1287,7 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, */ /* now: filling two Z values, the closest and 2nd closest */ -static void zbuffillGL_onlyZ(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, float *v3, float *v4) +static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), float *v1, float *v2, float *v3, float *v4) { double zxd, zyd, zy0, zverg; float x0,y0,z0; @@ -3236,7 +3236,7 @@ static void copyto_abufz(RenderPart *pa, int *arectz, int *rectmask, int sample) * Do accumulation z buffering. */ -static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase *apsmbase, unsigned int lay, int negzmask, float winmat[][4], int winx, int winy, int samples, float (*jit)[2], float clipcrop, int shadow) +static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase *apsmbase, unsigned int lay, int negzmask, float winmat[][4], int winx, int winy, int samples, float (*jit)[2], float UNUSED(clipcrop), int shadow) { ZbufProjectCache cache[ZBUF_PROJECT_CACHE_SIZE]; ZSpan zspans[16], *zspan; /* MAX_OSA */ @@ -3692,7 +3692,7 @@ static int vergzvlak(const void *a1, const void *a2) return 0; } -static void shade_strand_samples(StrandShadeCache *cache, ShadeSample *ssamp, int x, int y, ZTranspRow *row, int addpassflag) +static void shade_strand_samples(StrandShadeCache *cache, ShadeSample *ssamp, int UNUSED(x), int UNUSED(y), ZTranspRow *row, int addpassflag) { StrandSegment sseg; StrandVert *svert; @@ -3941,7 +3941,7 @@ static void reset_sky_speedvectors(RenderPart *pa, RenderLayer *rl, float *rectf /* main render call to do the z-transparent layer */ /* returns a mask, only if a) transp rendered and b) solid was rendered */ -unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pass, ListBase *psmlist) +unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pass, ListBase *UNUSED(psmlist)) { RenderResult *rr= pa->result; ShadeSample ssamp; -- cgit v1.2.3 From 692e0ebc1312fc39753a899e35f77db0577339c0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 15:20:33 +0000 Subject: fix for incorrect bake api usage. but not a bug. --- source/blender/editors/object/object_bake.c | 2 +- source/blender/render/extern/include/RE_shader_ext.h | 2 +- source/blender/render/intern/source/rendercore.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index fc5f09f2fe0..cc9a6f7f5f0 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -858,7 +858,7 @@ static void finish_images(MultiresBakeRender *bkr) if(ibuf->x<=0 || ibuf->y<=0) continue; - RE_bake_ibuf_filter(ibuf, (unsigned char *)ibuf->userdata, bkr->bake_filter); + RE_bake_ibuf_filter(ibuf, (char *)ibuf->userdata, bkr->bake_filter); ibuf->userflags|= IB_BITMAPDIRTY; if(ibuf->mipmap[0]) { diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index b6af781f4d4..27c87caf14a 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -210,6 +210,6 @@ struct Object; int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob, short *do_update, float *progress); struct Image *RE_bake_shade_get_image(void); -void RE_bake_ibuf_filter(struct ImBuf *ibuf, unsigned char *mask, const int filter); +void RE_bake_ibuf_filter(struct ImBuf *ibuf, char *mask, const int filter); #endif /* RE_SHADER_EXT_H */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 096a278a705..6747784b21a 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2556,7 +2556,7 @@ static void *do_bake_thread(void *bs_v) return NULL; } -void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *UNUSED(mask), const int filter) +void RE_bake_ibuf_filter(ImBuf *ibuf, char *mask, const int filter) { /* must check before filtering */ const short is_new_alpha= (ibuf->depth != 32) && BKE_alphatest_ibuf(ibuf); @@ -2570,9 +2570,9 @@ void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *UNUSED(mask), const int fil * this is so colors dont blend in from outside */ for(i=0; i< filter; i++) - IMB_mask_filter_extend((char *)ibuf->userdata, ibuf->x, ibuf->y); + IMB_mask_filter_extend(mask, ibuf->x, ibuf->y); - temprect = MEM_dupallocN(ibuf->userdata); + temprect = MEM_dupallocN(mask); /* expand twice to clear this many pixels, so they blend back in */ IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); @@ -2583,7 +2583,7 @@ void RE_bake_ibuf_filter(ImBuf *ibuf, unsigned char *UNUSED(mask), const int fil MEM_freeN(temprect); for(i= 0; i < filter; i++) - IMB_filter_extend(ibuf, (char *)ibuf->userdata); + IMB_filter_extend(ibuf, mask); } /* if the bake results in new alpha then change the image setting */ @@ -2684,7 +2684,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up if(!ibuf) continue; - RE_bake_ibuf_filter(ibuf, (unsigned char *)ibuf->userdata, re->r.bake_filter); + RE_bake_ibuf_filter(ibuf, (char *)ibuf->userdata, re->r.bake_filter); ibuf->userflags |= IB_BITMAPDIRTY; if (ibuf->rect_float) IMB_rect_from_float(ibuf); -- cgit v1.2.3 From f6d899af052d7061b30f49ae4f25f68e1dd336cf Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 20 Jun 2011 16:38:21 +0000 Subject: Bugfix #27692 Render + compositing error: When adding renderlayer nodes in a composite, without having own scene render, the renderlayer nodes were not tagged as changed, causing compositing to give previous result. --- source/blender/render/intern/source/pipeline.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 90f07586786..2a47a2db0ff 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2233,6 +2233,8 @@ static void ntree_render_scenes(Render *re) render_scene(re, scene, cfra); restore_scene= (scene != re->scene); node->id->flag &= ~LIB_DOIT; + + NodeTagChanged(re->scene->nodetree, node); } } } -- cgit v1.2.3 From 203e02f9d78dc88df42221b88d86a440ce6b70b4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 20 Jun 2011 17:28:25 +0000 Subject: Fix related to #27689: unwrap, pack island, minimize stretch now cancel operator if there are no uv's selected. --- source/blender/editors/uvedit/uvedit_unwrap_ops.c | 97 +++++++++++++++++++---- 1 file changed, 83 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index 1b8acb013ea..ae6836446fa 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -134,6 +134,41 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) /****************** Parametrizer Conversion ***************/ +static int uvedit_have_selection(Scene *scene, EditMesh *em, short implicit) +{ + EditFace *efa; + MTFace *tf; + + /* verify if we have any selected uv's before unwrapping, + so we can cancel the operator early */ + for(efa= em->faces.first; efa; efa= efa->next) { + if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) { + if(efa->h) + continue; + } + else if((efa->h) || ((efa->f & SELECT)==0)) + continue; + + tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + + if(!tf) + return 1; /* default selected if doesn't exists */ + + if(implicit && + !( uvedit_uv_selected(scene, efa, tf, 0) || + uvedit_uv_selected(scene, efa, tf, 1) || + uvedit_uv_selected(scene, efa, tf, 2) || + (efa->v4 && uvedit_uv_selected(scene, efa, tf, 3)) ) + ) { + continue; + } + + return 1; + } + + return 0; +} + static ParamHandle *construct_param_handle(Scene *scene, EditMesh *em, short implicit, short fill, short sel, short correct_aspect) { ParamHandle *handle; @@ -171,15 +206,11 @@ static ParamHandle *construct_param_handle(Scene *scene, EditMesh *em, short imp int nverts; if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) { - if(efa->h) { - continue; - } - } - else { - if((efa->h) || (sel && (efa->f & SELECT)==0)) { + if(efa->h) continue; - } } + else if((efa->h) || (sel && (efa->f & SELECT)==0)) + continue; tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -256,13 +287,19 @@ typedef struct MinStretch { wmTimer *timer; } MinStretch; -static void minimize_stretch_init(bContext *C, wmOperator *op) +static int minimize_stretch_init(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); MinStretch *ms; int fill_holes= RNA_boolean_get(op->ptr, "fill_holes"); + short implicit= 1; + + if(!uvedit_have_selection(scene, em, implicit)) { + BKE_mesh_end_editmesh(obedit->data, em); + return 0; + } ms= MEM_callocN(sizeof(MinStretch), "MinStretch"); ms->scene= scene; @@ -270,7 +307,8 @@ static void minimize_stretch_init(bContext *C, wmOperator *op) ms->em= em; ms->blend= RNA_float_get(op->ptr, "blend"); ms->iterations= RNA_int_get(op->ptr, "iterations"); - ms->handle= construct_param_handle(scene, em, 1, fill_holes, 1, 1); + ms->i= 0; + ms->handle= construct_param_handle(scene, em, implicit, fill_holes, 1, 1); ms->lasttime= PIL_check_seconds_timer(); param_stretch_begin(ms->handle); @@ -278,6 +316,8 @@ static void minimize_stretch_init(bContext *C, wmOperator *op) param_stretch_blend(ms->handle, ms->blend); op->customdata= ms; + + return 1; } static void minimize_stretch_iteration(bContext *C, wmOperator *op, int interactive) @@ -288,6 +328,9 @@ static void minimize_stretch_iteration(bContext *C, wmOperator *op, int interact param_stretch_blend(ms->handle, ms->blend); param_stretch_iter(ms->handle); + ms->i++; + RNA_int_set(op->ptr, "iterations", ms->i); + if(interactive && (PIL_check_seconds_timer() - ms->lasttime > 0.5)) { char str[100]; @@ -334,7 +377,8 @@ static int minimize_stretch_exec(bContext *C, wmOperator *op) { int i, iterations; - minimize_stretch_init(C, op); + if(!minimize_stretch_init(C, op)) + return OPERATOR_CANCELLED; iterations= RNA_int_get(op->ptr, "iterations"); for(i=0; icustomdata; @@ -445,6 +491,12 @@ static int pack_islands_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); ParamHandle *handle; + short implicit= 1; + + if(!uvedit_have_selection(scene, em, implicit)) { + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_CANCELLED; + } if(RNA_property_is_set(op->ptr, "margin")) { scene->toolsettings->uvcalc_margin= RNA_float_get(op->ptr, "margin"); @@ -453,7 +505,7 @@ static int pack_islands_exec(bContext *C, wmOperator *op) RNA_float_set(op->ptr, "margin", scene->toolsettings->uvcalc_margin); } - handle = construct_param_handle(scene, em, 1, 0, 1, 1); + handle = construct_param_handle(scene, em, implicit, 0, 1, 1); param_pack(handle, scene->toolsettings->uvcalc_margin); param_flush(handle); param_delete(handle); @@ -488,8 +540,14 @@ static int average_islands_scale_exec(bContext *C, wmOperator *UNUSED(op)) Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); ParamHandle *handle; + short implicit= 1; - handle= construct_param_handle(scene, em, 1, 0, 1, 1); + if(!uvedit_have_selection(scene, em, implicit)) { + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_CANCELLED; + } + + handle= construct_param_handle(scene, em, implicit, 0, 1, 1); param_average(handle); param_flush(handle); param_delete(handle); @@ -834,11 +892,13 @@ static void uv_map_clip_correct(EditMesh *em, wmOperator *op) void ED_unwrap_lscm(Scene *scene, Object *obedit, const short sel) { EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); + ParamHandle *handle; const short fill_holes= scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES; const short correct_aspect= !(scene->toolsettings->uvcalc_flag & UVCALC_NO_ASPECT_CORRECT); + short implicit= 0; - ParamHandle *handle= construct_param_handle(scene, em, 0, fill_holes, sel, correct_aspect); + handle= construct_param_handle(scene, em, implicit, fill_holes, sel, correct_aspect); param_lscm_begin(handle, PARAM_FALSE, scene->toolsettings->unwrapper == 0); param_lscm_solve(handle); @@ -857,9 +917,18 @@ static int unwrap_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); int method = RNA_enum_get(op->ptr, "method"); int fill_holes = RNA_boolean_get(op->ptr, "fill_holes"); int correct_aspect = RNA_boolean_get(op->ptr, "correct_aspect"); + short implicit= 0; + + if(!uvedit_have_selection(scene, em, implicit)) { + BKE_mesh_end_editmesh(obedit->data, em); + return 0; + } + + BKE_mesh_end_editmesh(obedit->data, em); /* add uvs if they don't exist yet */ if(!ED_uvedit_ensure_uvs(C, scene, obedit)) { -- cgit v1.2.3 From c849a938a0585b473ecc3d28407f918ddd25df08 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Jun 2011 17:50:59 +0000 Subject: fix for crash drawing zero length motion path and a leak with zero length paths. --- source/blender/blenkernel/intern/anim.c | 7 ++++++- source/blender/editors/space_view3d/drawanimviz.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 1763866c000..0747d87a0ab 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -171,7 +171,12 @@ bMotionPath *animviz_verify_motionpaths(Scene *scene, Object *ob, bPoseChannel * avs= &ob->avs; dst= &ob->mpath; } - + + /* avoid 0 size allocs */ + if(avs->path_sf >= avs->path_ef) { + return NULL; + } + /* if there is already a motionpath, just return that, * but provided it's settings are ok */ diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c index ee78fd92b79..aa3ba1a3062 100644 --- a/source/blender/editors/space_view3d/drawanimviz.c +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -117,7 +117,11 @@ void draw_motion_path_instance(Scene *scene, len = mpath->length; mpv_start= mpath->points; } - + + if(len <= 0) { + return; + } + /* draw curve-line of path */ glShadeModel(GL_SMOOTH); -- cgit v1.2.3 From ed3dadf48998a23eef64e6de06dc72f1d094b40c Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 20 Jun 2011 20:21:52 +0000 Subject: Blender 2.58 release preparations: * Update of Release Log Links to point to: http://www.blender.org/development/release-logs/blender-258/ --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index e840aca4a6a..f65485b84dd 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1247,7 +1247,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NONE); uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-257/"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-258/"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.5/Manual"); uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // -- cgit v1.2.3 From 4030f82aadec55add812043a355b4bd11210c10c Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 20 Jun 2011 21:34:23 +0000 Subject: ndof trackball works... somehow --- source/blender/editors/space_view3d/view3d_edit.c | 75 +++++++++++++---------- 1 file changed, 43 insertions(+), 32 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index d506c4a5636..048742fa392 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -949,6 +949,25 @@ float ndof_to_angle_axis(const float ndof[3], float axis[3]) return angular_velocity; } +void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) + { + const float x = ndof->rx; + const float y = ndof->ry; + const float z = ndof->rz; + + float angular_velocity = sqrtf(x*x + y*y + z*z); + float angle = ndof->dt * angular_velocity; + + // combined scaling factor -- normalize axis while converting to quaternion + float scale = sin(0.5f * angle) / angular_velocity; + + // convert axis-angle to quaternion + q[0] = cos(0.5f * angle); + q[1] = scale * x; + q[2] = scale * y; + q[3] = scale * z; + } + // Mike's version static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) { @@ -964,7 +983,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) if (dt > 0.25f) /* this is probably the first event for this motion, so set dt to something reasonable */ /* TODO: replace such guesswork with a flag or field from the NDOF manager */ - dt = 0.0125f; + ndof->dt = dt = 0.0125f; if (has_rotation) @@ -972,37 +991,29 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) if (has_rotation) { if (U.flag & USER_TRACKBALL) { - /* TODO: write trackball code! */ - - float axis[3] = {ndof->rx, ndof->ry, ndof->rz}; - float angle = sensitivity * dt * ndof_to_angle_axis(axis, axis); - float rotation[4], rotationconj[4]; - float view[4], viewconj[4]; - - // convert to quaternion - axis_angle_to_quat(rotation, axis, angle); - - // extract rotation component of viewquat - copy_qt_qt(view, rv3d->viewquat); - invert_qt(view); - normalize_qt(view); - copy_qt_qt(viewconj, view); - conjugate_qt(viewconj); - - // transform device rotation into view's frame of reference - // rotation(view) = view * rotation(world) * viewconj - mul_qt_qtqt(rotation, rotation, viewconj); - mul_qt_qtqt(rotation, view, rotation); - - // apply rotation to obtain new viewpoint -// copy_qt_qt(rotationconj, rotation); -// conjugate_qt(rotationconj); -// mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotationconj); -// mul_qt_qtqt(rv3d->viewquat, rotation, rv3d->viewquat); - mul_qt_qtqt(rv3d->viewquat, rotation, rv3d->viewquat); - - // this is *close* to trackball behavior - // rotation axis needs to remain fixed relative to viewpoint, not world coordinates + + float rot[4]; + float view_inv[4], view_inv_conj[4]; + + ndof_to_quat(ndof, rot); + + // swap y and z -- not sure why, but it works + { + float temp = -rot[2]; // also invert device y + rot[2] = rot[3]; + rot[3] = temp; + } + + invert_qt_qt(view_inv, rv3d->viewquat); + copy_qt_qt(view_inv_conj, view_inv); + conjugate_qt(view_inv_conj); + + // transform rotation from view to world coordinates + mul_qt_qtqt(rot, view_inv, rot); + mul_qt_qtqt(rot, rot, view_inv_conj); + + // apply rotation + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); ED_region_tag_redraw(CTX_wm_region(C)); -- cgit v1.2.3 From 768184753abb5a69e278bfe6207fe070b2e0ffc7 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 20 Jun 2011 22:44:35 +0000 Subject: fix for build with cmake (patch by Joerg Mueller) --- source/blender/blenkernel/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 02a890115cf..9c06e325ce2 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -284,7 +284,7 @@ endif() if(WITH_PYTHON) list(APPEND INC ../python) - # list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) # for pynodes, commented now + list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) add_definitions(-DWITH_PYTHON) if(WITH_PYTHON_SECURITY) -- cgit v1.2.3 From 3cad2a72b5d7e0dc18c56222a77fdf2d747f460c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 21 Jun 2011 01:41:39 +0000 Subject: Animation Channel Filtering Refactor - Part 1 * Removed list-expanders for Materials, Textures, and Particles. So instead of: Object Materials Material 1 ... material 1 anim data ... we now have Object Material 1 ... material 1 anim data ... This makes it faster+easier to get to these items. If you don't want to see all of these, you can still use the data-block filters from the header to hide these. * Internal cleanup - removed "owner" and "ownertype" settings from bAnimListElem. The purpose of these was muddled, and more of a hassle to maintain than doing anything useful - it was only really used for the stuff above. * Removed need for "sa->spacedata.first" casts all over the show for animation editor tools which needed access to editor data. This can now be retrieved directly. --- .../editors/animation/anim_channels_defines.c | 328 ++--------------- source/blender/editors/animation/anim_filter.c | 389 +++++++-------------- source/blender/editors/include/ED_anim_api.h | 17 +- source/blender/editors/space_action/action_draw.c | 2 - .../blender/editors/space_action/action_select.c | 2 +- source/blender/editors/space_graph/graph_edit.c | 10 +- source/blender/editors/space_graph/graph_select.c | 10 +- source/blender/editors/space_nla/nla_draw.c | 8 +- .../blender/editors/transform/transform_generics.c | 6 +- 9 files changed, 171 insertions(+), 601 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 51fde09b074..c71ffe9cd5e 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -159,8 +159,8 @@ static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, floa short indent= (acf->get_indent_level) ? acf->get_indent_level(ac, ale) : 0; /* get context info needed... */ - if ((ac->sa) && (ac->sa->spacetype == SPACE_ACTION)) - saction= (SpaceAction *)ac->sa->spacedata.first; + if ((ac->sl) && (ac->spacetype == SPACE_ACTION)) + saction= (SpaceAction *)ac->sl; if (ale->type == ANIMTYPE_FCURVE) { FCurve *fcu= (FCurve *)ale->data; @@ -235,13 +235,6 @@ static short acf_generic_indention_flexible(bAnimContext *UNUSED(ac), bAnimListE { short indent= 0; - if (ale->id) { - /* special exception for materials, textures, and particles */ - // xxx should tex use indention 2? - if (ELEM3(GS(ale->id->name),ID_MA,ID_PA,ID_TE)) - indent++; - } - /* grouped F-Curves need extra level of indention */ if (ale->type == ANIMTYPE_FCURVE) { FCurve *fcu= (FCurve *)ale->data; @@ -274,24 +267,11 @@ static short acf_generic_group_offset(bAnimContext *ac, bAnimListElem *ale) if (ale->id) { /* special exception for textures */ if (GS(ale->id->name) == ID_TE) { - /* minimum offset */ offset += 21; - - /* special offset from owner type */ - switch (ale->ownertype) { - case ANIMTYPE_DSMAT: - offset += 21; - break; - - case ANIMTYPE_DSLAM: - case ANIMTYPE_DSWOR: - offset += 14; - break; - } } /* special exception for materials and particles */ else if (ELEM(GS(ale->id->name),ID_MA,ID_PA)) - offset += 21; + offset += 14; /* if not in Action Editor mode, groupings must carry some offset too... */ else if (ac->datatype != ANIMCONT_ACTION) @@ -324,46 +304,6 @@ static short acf_generic_none_setting_valid(bAnimContext *ac, bAnimListElem *ale } #endif -/* check if some setting exists for this object-based data-expander (category only) */ -static short acf_generic_dsexpand_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting) -{ - switch (setting) { - /* only expand supported everywhere */ - case ACHANNEL_SETTING_EXPAND: - return 1; - - /* visible - * - only available in Graph Editor - * - NOT available for 'filler' channels - */ - case ACHANNEL_SETTING_VISIBLE: - if (ELEM3(ale->type, ANIMTYPE_FILLMATD, ANIMTYPE_FILLPARTD, ANIMTYPE_FILLTEXD)) - return 0; - else - return ((ac) && (ac->spacetype == SPACE_IPO)); - - default: - return 0; - } -} - -/* get pointer to the setting (category only) */ -static void *acf_generic_dsexpand_setting_ptr(bAnimListElem *ale, int setting, short *type) -{ - Object *ob= (Object *)ale->data; - - /* clear extra return data first */ - *type= 0; - - switch (setting) { - case ACHANNEL_SETTING_EXPAND: /* expanded */ - GET_ACF_FLAG_PTR(ob->nlaflag); // XXX - - default: /* unsupported */ - return NULL; - } -} - /* check if some setting exists for this object-based data-expander (datablock only) */ static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale), int setting) { @@ -459,8 +399,8 @@ static void *acf_summary_setting_ptr(bAnimListElem *ale, int setting, short *typ /* if data is valid, return pointer to active dopesheet's relevant flag * - this is restricted to DopeSheet/Action Editor only */ - if ((ac->sa) && (ac->spacetype == SPACE_ACTION) && (setting == ACHANNEL_SETTING_EXPAND)) { - SpaceAction *saction= (SpaceAction *)ac->sa->spacedata.first; + if ((ac->sl) && (ac->spacetype == SPACE_ACTION) && (setting == ACHANNEL_SETTING_EXPAND)) { + SpaceAction *saction= (SpaceAction *)ac->sl; bDopeSheet *ads= &saction->ads; /* return pointer to DopeSheet's flag */ @@ -782,7 +722,7 @@ static short acf_group_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale /* for now, all settings are supported, though some are only conditionally */ switch (setting) { case ACHANNEL_SETTING_VISIBLE: /* Only available in Graph Editor */ - return ((ac->sa) && (ac->sa->spacetype==SPACE_IPO)); + return (ac->spacetype==SPACE_IPO); default: /* always supported */ return 1; @@ -879,7 +819,7 @@ static short acf_fcurve_setting_valid(bAnimContext *ac, bAnimListElem *ale, int return 0; // NOTE: in this special case, we need to draw ICON_ZOOMOUT case ACHANNEL_SETTING_VISIBLE: /* Only available in Graph Editor */ - return ((ac->sa) && (ac->sa->spacetype==SPACE_IPO)); + return (ac->spacetype==SPACE_IPO); /* always available */ default: @@ -1101,203 +1041,6 @@ static bAnimChannelType ACF_FILLDRIVERS = acf_filldrivers_setting_ptr /* pointer for setting */ }; -/* Materials Expander ------------------------------------------- */ - -// TODO: just get this from RNA? -static int acf_fillmatd_icon(bAnimListElem *UNUSED(ale)) -{ - return ICON_MATERIAL_DATA; -} - -static void acf_fillmatd_name(bAnimListElem *UNUSED(ale), char *name) -{ - BLI_strncpy(name, "Materials", ANIM_CHAN_NAME_SIZE); -} - -/* get the appropriate flag(s) for the setting when it is valid */ -static int acf_fillmatd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) -{ - /* clear extra return data first */ - *neg= 0; - - switch (setting) { - case ACHANNEL_SETTING_EXPAND: /* expanded */ - return OB_ADS_SHOWMATS; - - default: /* unsupported */ - return 0; - } -} - -/* materials expander type define */ -static bAnimChannelType ACF_FILLMATD= -{ - "Materials Filler", /* type name */ - - acf_generic_dataexpand_color, /* backdrop color */ - acf_generic_dataexpand_backdrop,/* backdrop */ - acf_generic_indention_1, /* indent level */ - acf_generic_basic_offset, /* offset */ - - acf_fillmatd_name, /* name */ - acf_fillmatd_icon, /* icon */ - - acf_generic_dsexpand_setting_valid, /* has setting */ - acf_fillmatd_setting_flag, /* flag for setting */ - acf_generic_dsexpand_setting_ptr /* pointer for setting */ -}; - -/* Particles Expander ------------------------------------------- */ - -// TODO: just get this from RNA? -static int acf_fillpartd_icon(bAnimListElem *UNUSED(ale)) -{ - return ICON_PARTICLE_DATA; -} - -static void acf_fillpartd_name(bAnimListElem *UNUSED(ale), char *name) -{ - BLI_strncpy(name, "Particles", ANIM_CHAN_NAME_SIZE); -} - -/* get the appropriate flag(s) for the setting when it is valid */ -static int acf_fillpartd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) -{ - /* clear extra return data first */ - *neg= 0; - - switch (setting) { - case ACHANNEL_SETTING_EXPAND: /* expanded */ - return OB_ADS_SHOWPARTS; - - default: /* unsupported */ - return 0; - } -} - -/* particles expander type define */ -static bAnimChannelType ACF_FILLPARTD= -{ - "Particles Filler", /* type name */ - - acf_generic_dataexpand_color, /* backdrop color */ - acf_generic_dataexpand_backdrop,/* backdrop */ - acf_generic_indention_1, /* indent level */ - acf_generic_basic_offset, /* offset */ - - acf_fillpartd_name, /* name */ - acf_fillpartd_icon, /* icon */ - - acf_generic_dsexpand_setting_valid, /* has setting */ - acf_fillpartd_setting_flag, /* flag for setting */ - acf_generic_dsexpand_setting_ptr /* pointer for setting */ -}; - -/* Textures Expander ------------------------------------------- */ - -/* offset for groups + grouped entities */ -static short acf_filltexd_offset(bAnimContext *ac, bAnimListElem *ale) -{ - short offset= acf_generic_basic_offset(ac, ale); - - if (ale->id) { - /* materials */ - switch (GS(ale->id->name)) { - case ID_MA: - offset += 21; - break; - - case ID_LA: - case ID_WO: - offset += 14; - break; - } - } - - return offset; -} - -// TODO: just get this from RNA? -static int acf_filltexd_icon(bAnimListElem *UNUSED(ale)) -{ - return ICON_TEXTURE_DATA; -} - -static void acf_filltexd_name(bAnimListElem *UNUSED(ale), char *name) -{ - BLI_strncpy(name, "Textures", ANIM_CHAN_NAME_SIZE); -} - -/* get pointer to the setting (category only) */ -static void *acf_filltexd_setting_ptr(bAnimListElem *ale, int setting, short *type) -{ - ID *id= (ID *)ale->data; - - /* clear extra return data first */ - *type= 0; - - switch (setting) { - case ACHANNEL_SETTING_EXPAND: /* expanded */ - { - switch (GS(id->name)) { - case ID_MA: - { - Material *ma= (Material *)id; - GET_ACF_FLAG_PTR(ma->flag); - } - - case ID_LA: - { - Lamp *la= (Lamp *)id; - GET_ACF_FLAG_PTR(la->flag); - } - - case ID_WO: - { - World *wo= (World *)id; - GET_ACF_FLAG_PTR(wo->flag); - } - } - } - - default: /* unsupported */ - return NULL; - } -} - -/* get the appropriate flag(s) for the setting when it is valid */ -static int acf_filltexd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) -{ - /* clear extra return data first */ - *neg= 0; - - switch (setting) { - case ACHANNEL_SETTING_EXPAND: /* expanded */ - /* NOTE: the exact same flag must be used for other texture stack types too! */ - return MA_DS_SHOW_TEXS; - - default: /* unsupported */ - return 0; - } -} - -/* particles expander type define */ -static bAnimChannelType ACF_FILLTEXD= -{ - "Textures Filler", /* type name */ - - acf_generic_dataexpand_color, /* backdrop color */ - acf_generic_dataexpand_backdrop,/* backdrop */ - acf_generic_indention_flexible, /* indent level */ - acf_filltexd_offset, /* offset */ - - acf_filltexd_name, /* name */ - acf_filltexd_icon, /* icon */ - - acf_generic_dsexpand_setting_valid, /* has setting */ - acf_filltexd_setting_flag, /* flag for setting */ - acf_filltexd_setting_ptr /* pointer for setting */ -}; /* Material Expander ------------------------------------------- */ @@ -1307,12 +1050,6 @@ static int acf_dsmat_icon(bAnimListElem *UNUSED(ale)) return ICON_MATERIAL_DATA; } -/* offset for material expanders */ -static short acf_dsmat_offset(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale)) -{ - return 21; -} - /* get the appropriate flag(s) for the setting when it is valid */ static int acf_dsmat_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) { @@ -1368,10 +1105,10 @@ static bAnimChannelType ACF_DSMAT= { "Material Data Expander", /* type name */ - acf_generic_channel_color, /* backdrop color */ - acf_generic_channel_backdrop, /* backdrop */ - acf_generic_indention_0, /* indent level */ - acf_dsmat_offset, /* offset */ + acf_generic_dataexpand_color, /* backdrop color */ + acf_generic_dataexpand_backdrop,/* backdrop */ + acf_generic_indention_1, /* indent level */ + acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ acf_dsmat_icon, /* icon */ @@ -1466,22 +1203,10 @@ static int acf_dstex_icon(bAnimListElem *UNUSED(ale)) } /* offset for texture expanders */ +// FIXME: soon to be obsolete? static short acf_dstex_offset(bAnimContext *UNUSED(ac), bAnimListElem *ale) { - short offset = 21; - - /* special offset from owner type */ - // FIXME: too much now! - switch (ale->ownertype) { - case ANIMTYPE_DSMAT: - offset += 14; - - case ANIMTYPE_DSLAM: - case ANIMTYPE_DSWOR: - offset += 7; - } - - return offset; + return 14; // XXX: simply include this in indention instead? } /* get the appropriate flag(s) for the setting when it is valid */ @@ -1534,14 +1259,14 @@ static void *acf_dstex_setting_ptr(bAnimListElem *ale, int setting, short *type) } } -/* material expander type define */ +/* texture expander type define */ static bAnimChannelType ACF_DSTEX= { "Texture Data Expander", /* type name */ - acf_generic_channel_color, /* backdrop color */ - acf_generic_channel_backdrop, /* backdrop */ - acf_generic_indention_0, /* indent level */ + acf_generic_dataexpand_color, /* backdrop color */ + acf_generic_dataexpand_backdrop,/* backdrop */ + acf_generic_indention_1, /* indent level */ acf_dstex_offset, /* offset */ acf_generic_idblock_name, /* name */ @@ -2590,9 +2315,6 @@ static void ANIM_init_channel_typeinfo_data (void) animchannelTypeInfo[type++]= &ACF_FILLACTD; /* Object Action Expander */ animchannelTypeInfo[type++]= &ACF_FILLDRIVERS; /* Drivers Expander */ - animchannelTypeInfo[type++]= &ACF_FILLMATD; /* Materials Expander */ - animchannelTypeInfo[type++]= &ACF_FILLPARTD; /* Particles Expander */ - animchannelTypeInfo[type++]= &ACF_FILLTEXD; /* Textures Expander */ animchannelTypeInfo[type++]= &ACF_DSMAT; /* Material Channel */ animchannelTypeInfo[type++]= &ACF_DSLAM; /* Lamp Channel */ @@ -2860,7 +2582,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float * - in Graph Editor, checkboxes for visibility in curves area * - in NLA Editor, glowing dots for solo/not solo... */ - if (ac->sa) { + if (ac->sl) { if ((ac->spacetype == SPACE_IPO) && acf->has_setting(ac, ale, ACHANNEL_SETTING_VISIBLE)) { /* for F-Curves, draw color-preview of curve behind checkbox */ if (ale->type == ANIMTYPE_FCURVE) { @@ -2930,17 +2652,17 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float glColor3fv(color); /* check if we need to show the sliders */ - if ((ac->sa) && ELEM(ac->spacetype, SPACE_ACTION, SPACE_IPO)) { + if ((ac->sl) && ELEM(ac->spacetype, SPACE_ACTION, SPACE_IPO)) { switch (ac->spacetype) { case SPACE_ACTION: { - SpaceAction *saction= (SpaceAction *)ac->sa->spacedata.first; + SpaceAction *saction= (SpaceAction *)ac->sl; draw_sliders= (saction->flag & SACTION_SLIDERS); } break; case SPACE_IPO: { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; draw_sliders= (sipo->flag & SIPO_SLIDERS); } break; @@ -3264,7 +2986,7 @@ void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *b * - in Graph Editor, checkboxes for visibility in curves area * - in NLA Editor, glowing dots for solo/not solo... */ - if (ac->sa) { + if (ac->sl) { if ((ac->spacetype == SPACE_IPO) && acf->has_setting(ac, ale, ACHANNEL_SETTING_VISIBLE)) { /* visibility toggle */ draw_setting_widget(ac, ale, acf, block, offset, ymid, ACHANNEL_SETTING_VISIBLE); @@ -3291,17 +3013,17 @@ void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *b short draw_sliders = 0; /* check if we need to show the sliders */ - if ((ac->sa) && ELEM(ac->spacetype, SPACE_ACTION, SPACE_IPO)) { + if ((ac->sl) && ELEM(ac->spacetype, SPACE_ACTION, SPACE_IPO)) { switch (ac->spacetype) { case SPACE_ACTION: { - SpaceAction *saction= (SpaceAction *)ac->sa->spacedata.first; + SpaceAction *saction= (SpaceAction *)ac->sl; draw_sliders= (saction->flag & SACTION_SLIDERS); } break; case SPACE_IPO: { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; draw_sliders= (sipo->flag & SIPO_SLIDERS); } break; diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 967002131c2..b42fc47b14c 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -258,29 +258,29 @@ static short nlaedit_get_context (bAnimContext *ac, SpaceNla *snla) */ short ANIM_animdata_context_getdata (bAnimContext *ac) { - ScrArea *sa= ac->sa; + SpaceLink *sl = ac->sl; short ok= 0; /* context depends on editor we are currently in */ - if (sa) { - switch (sa->spacetype) { + if (sl) { + switch (ac->spacetype) { case SPACE_ACTION: { - SpaceAction *saction= (SpaceAction *)sa->spacedata.first; + SpaceAction *saction= (SpaceAction *)sl; ok= actedit_get_context(ac, saction); } break; case SPACE_IPO: { - SpaceIpo *sipo= (SpaceIpo *)sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)sl; ok= graphedit_get_context(ac, sipo); } break; case SPACE_NLA: { - SpaceNla *snla= (SpaceNla *)sa->spacedata.first; + SpaceNla *snla= (SpaceNla *)sl; ok= nlaedit_get_context(ac, snla); } break; @@ -303,6 +303,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) { ScrArea *sa= CTX_wm_area(C); ARegion *ar= CTX_wm_region(C); + SpaceLink *sl= CTX_wm_space_data(C); Scene *scene= CTX_data_scene(C); /* clear old context info */ @@ -317,6 +318,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) } ac->sa= sa; ac->ar= ar; + ac->sl= sl; ac->spacetype= (sa) ? sa->spacetype : 0; ac->regiontype= (ar) ? ar->regiontype : 0; @@ -397,7 +399,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) /* quick macro to add a pointer to an AnimData block as a channel */ #define ANIMDATA_ADD_ANIMDATA(id) \ {\ - ale= make_new_animlistelem((id)->adt, ANIMTYPE_ANIMDATA, NULL, ANIMTYPE_NONE, (ID *)id);\ + ale= make_new_animlistelem((id)->adt, ANIMTYPE_ANIMDATA, (ID *)id);\ if (ale) {\ BLI_addtail(anim_data, ale);\ items++;\ @@ -432,7 +434,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) /* this function allocates memory for a new bAnimListElem struct for the * provided animation channel-data. */ -static bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, short ownertype, ID *owner_id) +static bAnimListElem *make_new_animlistelem (void *data, short datatype, ID *owner_id) { bAnimListElem *ale= NULL; @@ -443,10 +445,6 @@ static bAnimListElem *make_new_animlistelem (void *data, short datatype, void *o ale->data= data; ale->type= datatype; - // XXX what is the point of the owner data? - // xxx try and use this to simplify the problem of finding whether parent channels are working... - ale->owner= owner; - ale->ownertype= ownertype; ale->id= owner_id; ale->adt= BKE_animdata_from_id(owner_id); @@ -509,55 +507,6 @@ static bAnimListElem *make_new_animlistelem (void *data, short datatype, void *o ale->datatype= ALE_NONE; } break; - case ANIMTYPE_FILLMATD: - { - Object *ob= (Object *)data; - - ale->flag= FILTER_MAT_OBJC(ob); - - ale->key_data= NULL; - ale->datatype= ALE_NONE; - } - break; - case ANIMTYPE_FILLPARTD: - { - Object *ob= (Object *)data; - - ale->flag= FILTER_PART_OBJC(ob); - - ale->key_data= NULL; - ale->datatype= ALE_NONE; - } - break; - case ANIMTYPE_FILLTEXD: - { - ID *id= (ID *)data; - - switch (GS(id->name)) { - case ID_MA: - { - Material *ma= (Material *)id; - ale->flag= FILTER_TEX_MATC(ma); - } - break; - case ID_LA: - { - Lamp *la= (Lamp *)id; - ale->flag= FILTER_TEX_LAMC(la); - } - break; - case ID_WO: - { - World *wo= (World *)id; - ale->flag= FILTER_TEX_WORC(wo); - } - break; - } - - ale->key_data= NULL; - ale->datatype= ALE_NONE; - } - break; case ANIMTYPE_DSMAT: { @@ -957,7 +906,7 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct return NULL; } -static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, void *owner, short ownertype, int filter_mode, ID *owner_id) +static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) { FCurve *fcu; int items = 0; @@ -973,7 +922,7 @@ static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve */ for (fcu=first; ( (fcu = animdata_filter_fcurve_next(ads, fcu, grp, filter_mode, owner_id)) ); fcu=fcu->next) { - bAnimListElem *ale = make_new_animlistelem(fcu, ANIMTYPE_FCURVE, owner, ownertype, owner_id); + bAnimListElem *ale = make_new_animlistelem(fcu, ANIMTYPE_FCURVE, owner_id); if (ale) { BLI_addtail(anim_data, ale); @@ -985,7 +934,7 @@ static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve return items; } -static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, void *owner, short ownertype, ID *owner_id) +static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) { bAnimListElem *ale=NULL; bActionGroup *agrp; @@ -1057,7 +1006,7 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS if ((filter_mode & ANIMFILTER_CHANNELS) || !(filter_mode & ANIMFILTER_CURVESONLY)) { /* filter selection of channel specially here again, since may be open and not subject to previous test */ if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { - ale= make_new_animlistelem(agrp, ANIMTYPE_GROUP, NULL, ANIMTYPE_NONE, owner_id); + ale= make_new_animlistelem(agrp, ANIMTYPE_GROUP, owner_id); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1086,7 +1035,7 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS { if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { /* NOTE: filter_gmode is used here, not standard filter_mode, since there may be some flags that shouldn't apply */ - items += animdata_filter_fcurves(anim_data, ads, first_fcu, agrp, owner, ownertype, filter_gmode, owner_id); + items += animdata_filter_fcurves(anim_data, ads, first_fcu, agrp, filter_gmode, owner_id); } } } @@ -1097,7 +1046,7 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS /* loop over un-grouped F-Curves (only if we're not only considering those channels in the animive group) */ if (!(filter_mode & ANIMFILTER_ACTGROUPED)) { // XXX the 'owner' info here needs review... - items += animdata_filter_fcurves(anim_data, ads, (lastchan)?(lastchan->next):(act->curves.first), NULL, owner, ownertype, filter_mode, owner_id); + items += animdata_filter_fcurves(anim_data, ads, (lastchan)?(lastchan->next):(act->curves.first), NULL, filter_mode, owner_id); } /* return the number of items added to the list */ @@ -1112,7 +1061,7 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS * - for normal filtering (i.e. for editing), we only need the NLA-tracks but they can be in 'normal' evaluation * order, i.e. first to last. Otherwise, some tools may get screwed up. */ -static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, void *owner, short ownertype, ID *owner_id) +static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) { bAnimListElem *ale; NlaTrack *nlt; @@ -1128,7 +1077,7 @@ static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, b * - as AnimData may not have an action, we pass a dummy pointer just to get the list elem created, then * overwrite this with the real value - REVIEW THIS... */ - ale= make_new_animlistelem((void *)(&adt->action), ANIMTYPE_NLAACTION, owner, ownertype, owner_id); + ale= make_new_animlistelem((void *)(&adt->action), ANIMTYPE_NLAACTION, owner_id); ale->data= (adt->action) ? adt->action : NULL; if (ale) { @@ -1166,7 +1115,7 @@ static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, b if ( ANIMCHANNEL_SELOK(SEL_NLT(nlt)) ) { /* only include if this track is active */ if (!(filter_mode & ANIMFILTER_ACTIVE) || (nlt->flag & NLATRACK_ACTIVE)) { - ale= make_new_animlistelem(nlt, ANIMTYPE_NLATRACK, owner, ownertype, owner_id); + ale= make_new_animlistelem(nlt, ANIMTYPE_NLATRACK, owner_id); if (ale) { BLI_addtail(anim_data, ale); @@ -1204,7 +1153,7 @@ static int animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key // TODO: consider 'active' too? /* owner-id here must be key so that the F-Curve can be resolved... */ - ale= make_new_animlistelem(kb, ANIMTYPE_SHAPEKEY, NULL, ANIMTYPE_NONE, (ID *)key); + ale= make_new_animlistelem(kb, ANIMTYPE_SHAPEKEY, (ID *)key); if (ale) { BLI_addtail(anim_data, ale); @@ -1221,7 +1170,7 @@ static int animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key if (filter_mode & ANIMFILTER_ANIMDATA) ANIMDATA_ADD_ANIMDATA(key) else if (key->adt->action) - items= animdata_filter_action(ac, anim_data, NULL, key->adt->action, filter_mode, NULL, ANIMTYPE_NONE, (ID *)key); + items= animdata_filter_action(ac, anim_data, NULL, key->adt->action, filter_mode, (ID *)key); } } @@ -1250,7 +1199,7 @@ static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int /* add gpd as channel too (if for drawing, and it has layers) */ if ((filter_mode & ANIMFILTER_CHANNELS) && (gpd->layers.first)) { /* add to list */ - ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, NULL, ANIMTYPE_NONE, NULL); + ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, NULL); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1266,7 +1215,7 @@ static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int /* only if editable */ if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) { /* add to list */ - ale= make_new_animlistelem(gpl, ANIMTYPE_GPLAYER, gpd, ANIMTYPE_GPDATABLOCK, (ID*)gpd); + ale= make_new_animlistelem(gpl, ANIMTYPE_GPLAYER, (ID*)gpd); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1285,11 +1234,7 @@ static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int /* NOTE: owner_id is either material, lamp, or world block, which is the direct owner of the texture stack in question */ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode) { - ListBase texs = {NULL, NULL}; - LinkData *ld; MTex **mtex = NULL; - short expanded=0; - int ownertype = ANIMTYPE_NONE; bAnimListElem *ale=NULL; int items=0, a=0; @@ -1304,8 +1249,6 @@ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data Material *ma= (Material *)owner_id; mtex= (MTex**)(&ma->mtex); - expanded= FILTER_TEX_MATC(ma); - ownertype= ANIMTYPE_DSMAT; } break; case ID_LA: @@ -1313,8 +1256,6 @@ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data Lamp *la= (Lamp *)owner_id; mtex= (MTex**)(&la->mtex); - expanded= FILTER_TEX_LAMC(la); - ownertype= ANIMTYPE_DSLAM; } break; case ID_WO: @@ -1322,8 +1263,6 @@ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data World *wo= (World *)owner_id; mtex= (MTex**)(&wo->mtex); - expanded= FILTER_TEX_WORC(wo); - ownertype= ANIMTYPE_DSWOR; } break; default: @@ -1352,69 +1291,34 @@ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data ok=1;) if (ok == 0) continue; - /* make a temp list elem for this */ - ld= MEM_callocN(sizeof(LinkData), "DopeSheet-TextureCache"); - ld->data= tex; - BLI_addtail(&texs, ld); - } - - /* if there were no channels found, no need to carry on */ - if (texs.first == NULL) - return 0; - - /* include textures-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(owner_id, ANIMTYPE_FILLTEXD, owner_id, ownertype, owner_id); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add textures */ - if ((expanded) || (filter_mode & ANIMFILTER_CURVESONLY)) { - /* for each texture in cache, add channels */ - for (ld= texs.first; ld; ld= ld->next) { - Tex *tex= (Tex *)ld->data; - - /* include texture-expand widget? */ - if (filter_mode & ANIMFILTER_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(tex) { - ale= make_new_animlistelem(tex, ANIMTYPE_DSTEX, owner_id, ownertype, owner_id); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + /* include texture-expand widget? */ + if (filter_mode & ANIMFILTER_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(tex) { + ale= make_new_animlistelem(tex, ANIMTYPE_DSTEX, owner_id); + if (ale) { + BLI_addtail(anim_data, ale); + items++; } } - - /* add texture's animation data - * NOTE: for these, we make the owner/ownertype the material/lamp/etc. not the texture, otherwise the - * drawing code cannot resolve the indention easily - */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_TEX_DATA(tex) || (filter_mode & ANIMFILTER_CURVESONLY)) { - ANIMDATA_FILTER_CASES(tex, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, tex->adt, filter_mode, owner_id, ownertype, (ID *)tex);, - items += animdata_filter_fcurves(anim_data, ads, tex->adt->drivers.first, NULL, owner_id, ownertype, filter_mode, (ID *)tex);, - items += animdata_filter_action(ac, anim_data, ads, tex->adt->action, filter_mode, owner_id, ownertype, (ID *)tex);) - } + } + + /* add texture's animation data */ + if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_TEX_DATA(tex) || (filter_mode & ANIMFILTER_CURVESONLY)) { + ANIMDATA_FILTER_CASES(tex, + { /* AnimData blocks - do nothing... */ }, + items += animdata_filter_nla(ac, anim_data, ads, tex->adt, filter_mode, (ID *)tex);, + items += animdata_filter_fcurves(anim_data, ads, tex->adt->drivers.first, NULL, filter_mode, (ID *)tex);, + items += animdata_filter_action(ac, anim_data, ads, tex->adt->action, filter_mode, (ID *)tex);) } } - /* free cache */ - BLI_freelistN(&texs); - /* return the number of items added to the list */ return items; } static int animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) { - ListBase mats = {NULL, NULL}; - LinkData *ld; - bAnimListElem *ale=NULL; Object *ob= base->object; int items=0, a=0; @@ -1426,93 +1330,64 @@ static int animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data /* for now, if no material returned, skip (this shouldn't confuse the user I hope) */ if (ma == NULL) continue; - + /* check if ok */ ANIMDATA_FILTER_CASES(ma, { /* AnimData blocks - do nothing... */ }, ok=1;, ok=1;, ok=1;) - + /* need to check textures */ if (ok == 0 && !(ads->filterflag & ADS_FILTER_NOTEX)) { int mtInd; - + for (mtInd=0; mtInd < MAX_MTEX; mtInd++) { MTex *mtex = ma->mtex[mtInd]; - - if(mtex && mtex->tex) { + + if (mtex && mtex->tex) { ANIMDATA_FILTER_CASES(mtex->tex, { /* AnimData blocks - do nothing... */ }, ok=1;, ok=1;, ok=1;) } - - if(ok) + + if (ok) break; } } if (ok == 0) continue; - /* make a temp list elem for this */ - ld= MEM_callocN(sizeof(LinkData), "DopeSheet-MaterialCache"); - ld->data= ma; - BLI_addtail(&mats, ld); - } - - /* if there were no channels found, no need to carry on */ - if (mats.first == NULL) - return 0; - - /* include materials-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(ob, ANIMTYPE_FILLMATD, base, ANIMTYPE_OBJECT, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add materials? */ - if (FILTER_MAT_OBJC(ob) || (filter_mode & ANIMFILTER_CURVESONLY)) { - /* for each material in cache, add channels */ - for (ld= mats.first; ld; ld= ld->next) { - Material *ma= (Material *)ld->data; - - /* include material-expand widget? */ - // hmm... do we need to store the index of this material in the array anywhere? - if (filter_mode & ANIMFILTER_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(ma) { - ale= make_new_animlistelem(ma, ANIMTYPE_DSMAT, base, ANIMTYPE_OBJECT, (ID *)ma); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + /* include material-expand widget? */ + // hmm... do we need to store the index of this material in the array anywhere? + if (filter_mode & ANIMFILTER_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(ma) { + ale= make_new_animlistelem(ma, ANIMTYPE_DSMAT, (ID *)ma); + if (ale) { + BLI_addtail(anim_data, ale); + items++; } } - - /* add material's animation data */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_MAT_OBJD(ma) || (filter_mode & ANIMFILTER_CURVESONLY)) { - /* material's animation data */ - ANIMDATA_FILTER_CASES(ma, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, ma->adt, filter_mode, ma, ANIMTYPE_DSMAT, (ID *)ma);, - items += animdata_filter_fcurves(anim_data, ads, ma->adt->drivers.first, NULL, ma, ANIMTYPE_DSMAT, filter_mode, (ID *)ma);, - items += animdata_filter_action(ac, anim_data, ads, ma->adt->action, filter_mode, ma, ANIMTYPE_DSMAT, (ID *)ma);) - - /* textures */ - if (!(ads->filterflag & ADS_FILTER_NOTEX)) - items += animdata_filter_dopesheet_texs(ac, anim_data, ads, (ID *)ma, filter_mode); - } + } + + /* add material's animation data */ + if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_MAT_OBJD(ma) || (filter_mode & ANIMFILTER_CURVESONLY)) { + /* material's animation data */ + ANIMDATA_FILTER_CASES(ma, + { /* AnimData blocks - do nothing... */ }, + items += animdata_filter_nla(ac, anim_data, ads, ma->adt, filter_mode, (ID *)ma);, + items += animdata_filter_fcurves(anim_data, ads, ma->adt->drivers.first, NULL, filter_mode, (ID *)ma);, + items += animdata_filter_action(ac, anim_data, ads, ma->adt->action, filter_mode, (ID *)ma);) + + /* textures */ + if (!(ads->filterflag & ADS_FILTER_NOTEX)) + items += animdata_filter_dopesheet_texs(ac, anim_data, ads, (ID *)ma, filter_mode); } } - /* free cache */ - BLI_freelistN(&mats); - /* return the number of items added to the list */ return items; } @@ -1522,51 +1397,39 @@ static int animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *anim bAnimListElem *ale=NULL; Object *ob= base->object; ParticleSystem *psys = ob->particlesystem.first; - int items= 0, first = 1; + int items= 0; for(; psys; psys=psys->next) { short ok = 0; - + if(ELEM(NULL, psys->part, psys->part->adt)) continue; - + ANIMDATA_FILTER_CASES(psys->part, { /* AnimData blocks - do nothing... */ }, ok=1;, ok=1;, ok=1;) if (ok == 0) continue; - - /* include particles-expand widget? */ - if (first && (filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(ob, ANIMTYPE_FILLPARTD, base, ANIMTYPE_OBJECT, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - first = 0; - } /* add particle settings? */ - if (FILTER_PART_OBJC(ob) || (filter_mode & ANIMFILTER_CURVESONLY)) { - if ((filter_mode & ANIMFILTER_CHANNELS)) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(psys->part) { - ale = make_new_animlistelem(psys->part, ANIMTYPE_DSPART, base, ANIMTYPE_OBJECT, (ID *)psys->part); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + if ((filter_mode & ANIMFILTER_CHANNELS)) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(psys->part) { + ale = make_new_animlistelem(psys->part, ANIMTYPE_DSPART, (ID *)psys->part); + if (ale) { + BLI_addtail(anim_data, ale); + items++; } } - - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_PART_OBJD(psys->part) || (filter_mode & ANIMFILTER_CURVESONLY)) { - ANIMDATA_FILTER_CASES(psys->part, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, psys->part->adt, filter_mode, psys->part, ANIMTYPE_DSPART, (ID *)psys->part);, - items += animdata_filter_fcurves(anim_data, ads, psys->part->adt->drivers.first, NULL, psys->part, ANIMTYPE_DSPART, filter_mode, (ID *)psys->part);, - items += animdata_filter_action(ac, anim_data, ads, psys->part->adt->action, filter_mode, psys->part, ANIMTYPE_DSPART, (ID *)psys->part);) - } + } + + if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_PART_OBJD(psys->part) || (filter_mode & ANIMFILTER_CURVESONLY)) { + ANIMDATA_FILTER_CASES(psys->part, + { /* AnimData blocks - do nothing... */ }, + items += animdata_filter_nla(ac, anim_data, ads, psys->part->adt, filter_mode, (ID *)psys->part);, + items += animdata_filter_fcurves(anim_data, ads, psys->part->adt->drivers.first, NULL, filter_mode, (ID *)psys->part);, + items += animdata_filter_action(ac, anim_data, ads, psys->part->adt->action, filter_mode, (ID *)psys->part);) } } @@ -1649,7 +1512,7 @@ static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_da if ((filter_mode & ANIMFILTER_CURVESONLY) == 0) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(iat) { - ale= make_new_animlistelem(iat, type, base, ANIMTYPE_OBJECT, (ID *)iat); + ale= make_new_animlistelem(iat, type, (ID *)iat); if (ale) BLI_addtail(anim_data, ale); } } @@ -1659,9 +1522,9 @@ static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_da /* filtering for channels - nla, drivers, keyframes */ ANIMDATA_FILTER_CASES(iat, { /* AnimData blocks - do nothing... */ }, - items+= animdata_filter_nla(ac, anim_data, ads, iat->adt, filter_mode, iat, type, (ID *)iat);, - items+= animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, iat, type, filter_mode, (ID *)iat);, - items+= animdata_filter_action(ac, anim_data, ads, iat->adt->action, filter_mode, iat, type, (ID *)iat);) + items+= animdata_filter_nla(ac, anim_data, ads, iat->adt, filter_mode, (ID *)iat);, + items+= animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)iat);, + items+= animdata_filter_action(ac, anim_data, ads, iat->adt->action, filter_mode, (ID *)iat);) /* sub-data filtering... */ switch (ob->type) { @@ -1694,7 +1557,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, if ANIMCHANNEL_SELOK((base->flag & SELECT)) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(ob) { - ale= make_new_animlistelem(base, ANIMTYPE_OBJECT, NULL, ANIMTYPE_NONE, (ID *)ob); + ale= make_new_animlistelem(base, ANIMTYPE_OBJECT, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1715,12 +1578,12 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, { /* AnimData blocks - do nothing... */ }, { /* nla */ /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)ob); + items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)ob); }, { /* drivers */ /* include drivers-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, base, ANIMTYPE_OBJECT, (ID *)ob); + ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1729,14 +1592,13 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* add F-Curve channels (drivers are F-Curves) */ if (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_DRVD(adt) || !(filter_mode & ANIMFILTER_CHANNELS)) { - // need to make the ownertype normal object here... (maybe type should be a separate one for clarity?) - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, ob, ANIMTYPE_OBJECT, filter_mode, (ID *)ob); + items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ob); } }, { /* action (keyframes) */ /* include action-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, base, ANIMTYPE_OBJECT, (ID *)ob); + ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1745,8 +1607,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* add F-Curve channels? */ if (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_ACTC(adt->action) || !(filter_mode & ANIMFILTER_CHANNELS)) { - // need to make the ownertype normal object here... (maybe type should be a separate one for clarity?) - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)ob); + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ob); } } ); @@ -1763,7 +1624,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(key) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, base, ANIMTYPE_OBJECT, (ID *)ob); + ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1773,12 +1634,12 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* add NLA tracks - only if expanded or so */ if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)key); + items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)key); }, { /* drivers */ /* include shapekey-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, base, ANIMTYPE_OBJECT, (ID *)ob); + ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1787,7 +1648,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* add channels */ if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) { - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, key, ANIMTYPE_DSSKEY, filter_mode, (ID *)key); + items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)key); } }, { /* action (keyframes) */ @@ -1795,7 +1656,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(key) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, base, ANIMTYPE_OBJECT, (ID *)ob); + ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1805,7 +1666,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* add channels */ if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, key, ANIMTYPE_DSSKEY, (ID *)key); + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)key); } } ); @@ -1934,7 +1795,7 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { /* check if filtering by selection */ if (ANIMCHANNEL_SELOK( (sce->flag & SCE_DS_SELECTED) )) { - ale= make_new_animlistelem(sce, ANIMTYPE_SCENE, NULL, ANIMTYPE_NONE, NULL); + ale= make_new_animlistelem(sce, ANIMTYPE_SCENE, NULL); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1953,12 +1814,12 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat { /* AnimData blocks - do nothing... */ }, { /* nla */ /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, sce, ANIMTYPE_SCENE, (ID *)sce); + items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)sce); }, { /* drivers */ /* include drivers-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, sce, ANIMTYPE_SCENE, (ID *)sce); + ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1967,13 +1828,13 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add F-Curve channels (drivers are F-Curves) */ if (EXPANDED_DRVD(adt) || !(filter_mode & ANIMFILTER_CHANNELS)) { - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, sce, ANIMTYPE_SCENE, filter_mode, (ID *)sce); + items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)sce); } }, { /* action */ /* include action-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, sce, ANIMTYPE_SCENE, (ID *)sce); + ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1982,7 +1843,7 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add F-Curve channels? */ if (EXPANDED_ACTC(adt->action) || !(filter_mode & ANIMFILTER_CHANNELS)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, sce, ANIMTYPE_SCENE, (ID *)sce); + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)sce); } } ) @@ -1996,12 +1857,12 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat { /* AnimData blocks - do nothing... */ }, { /* nla */ /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, wo, ANIMTYPE_DSWOR, (ID *)wo); + items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)wo); }, { /* drivers */ /* include world-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, sce, ANIMTYPE_SCENE, (ID *)wo); + ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)wo); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -2011,13 +1872,13 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add F-Curve channels (drivers are F-Curves) */ if (FILTER_WOR_SCED(wo)/*EXPANDED_DRVD(adt)*/ || !(filter_mode & ANIMFILTER_CHANNELS)) { // XXX owner info is messed up now... - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, wo, ANIMTYPE_DSWOR, filter_mode, (ID *)wo); + items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)wo); } }, { /* action */ /* include world-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, sce, ANIMTYPE_SCENE, (ID *)sce); + ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -2026,7 +1887,7 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add channels */ if (FILTER_WOR_SCED(wo) || (filter_mode & ANIMFILTER_CURVESONLY)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, wo, ANIMTYPE_DSWOR, (ID *)wo); + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)wo); } } ) @@ -2046,12 +1907,12 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat { /* AnimData blocks - do nothing... */ }, { /* nla */ /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, ntree, ANIMTYPE_DSNTREE, (ID *)ntree); + items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)ntree); }, { /* drivers */ /* include nodetree-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, sce, ANIMTYPE_SCENE, (ID *)ntree); + ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)ntree); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -2061,13 +1922,13 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add F-Curve channels (drivers are F-Curves) */ if (FILTER_NTREE_SCED(ntree)/*EXPANDED_DRVD(adt)*/ || !(filter_mode & ANIMFILTER_CHANNELS)) { // XXX owner info is messed up now... - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, ntree, ANIMTYPE_DSNTREE, filter_mode, (ID *)ntree); + items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ntree); } }, { /* action */ /* include nodetree-expand widget? */ if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, sce, ANIMTYPE_SCENE, (ID *)sce); + ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -2076,7 +1937,7 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat /* add channels */ if (FILTER_NTREE_SCED(ntree) || (filter_mode & ANIMFILTER_CURVESONLY)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, ntree, ANIMTYPE_DSNTREE, (ID *)ntree); + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ntree); } } ) @@ -2496,8 +2357,8 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim * since all the other Animation Editors won't have this concept * being applicable. */ - if ((ac && ac->sa) && (ac->sa->spacetype == SPACE_ACTION)) { - SpaceAction *saction= (SpaceAction *)ac->sa->spacedata.first; + if ((ac && ac->sl) && (ac->spacetype == SPACE_ACTION)) { + SpaceAction *saction= (SpaceAction *)ac->sl; ads= &saction->ads; } else { @@ -2511,7 +2372,7 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim */ // TODO: we should really check if some other prohibited filters are also active, but that can be for later if ((filter_mode & ANIMFILTER_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) { - bAnimListElem *ale= make_new_animlistelem(ac, ANIMTYPE_SUMMARY, NULL, ANIMTYPE_NONE, NULL); + bAnimListElem *ale= make_new_animlistelem(ac, ANIMTYPE_SUMMARY, NULL); if (ale) { BLI_addtail(anim_data, ale); (*items)++; @@ -2608,12 +2469,12 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode switch (datatype) { case ANIMCONT_ACTION: /* 'Action Editor' */ { - SpaceAction *saction = (SpaceAction *)ac->sa->spacedata.first; + SpaceAction *saction = (SpaceAction *)ac->sl; bDopeSheet *ads = (saction)? &saction->ads : NULL; /* the check for the DopeSheet summary is included here since the summary works here too */ if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items)) - items += animdata_filter_action(ac, anim_data, ads, data, filter_mode, NULL, ANIMTYPE_NONE, (ID *)obact); + items += animdata_filter_action(ac, anim_data, ads, data, filter_mode, (ID *)obact); } break; diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 5ecbaeb1c87..a8836458fad 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -41,6 +41,7 @@ struct bContext; struct wmKeyConfig; struct ReportList; struct ScrArea; +struct SpaceLink; struct ARegion; struct View2D; @@ -72,7 +73,8 @@ typedef struct bAnimContext { short mode; /* editor->mode */ short spacetype; /* sa->spacetype */ short regiontype; /* active region -> type (channels or main) */ - struct ScrArea *sa; /* editor */ + struct ScrArea *sa; /* editor host */ + struct SpaceLink *sl; /* editor data */ struct ARegion *ar; /* region within editor */ struct Scene *scene; /* active scene */ @@ -108,8 +110,6 @@ typedef struct bAnimListElem { int flag; /* copy of elem's flags for quick access */ int index; /* for un-named data, the index of the data in it's collection */ - short elemFlag; /* flags for the list elem instance (not the data it represents) */ - short datatype; /* type of motion data to expect */ void *key_data; /* motion data - mostly F-Curves, but can be other types too */ @@ -126,7 +126,6 @@ typedef struct bAnimListElem { * NOTE: need to keep the order of these synchronised with the channels define code * which is used for drawing and handling channel lists for */ -// XXX was ACTTYPE_* typedef enum eAnim_ChannelType { ANIMTYPE_NONE= 0, ANIMTYPE_ANIMDATA, @@ -141,9 +140,6 @@ typedef enum eAnim_ChannelType { ANIMTYPE_FILLACTD, ANIMTYPE_FILLDRIVERS, - ANIMTYPE_FILLMATD, - ANIMTYPE_FILLPARTD, - ANIMTYPE_FILLTEXD, ANIMTYPE_DSMAT, ANIMTYPE_DSLAM, @@ -188,7 +184,6 @@ typedef enum eAnim_KeyType { /* ----------------- Filtering -------------------- */ /* filtering flags - under what circumstances should a channel be added */ -// XXX was ACTFILTER_* typedef enum eAnimFilter_Flags { ANIMFILTER_VISIBLE = (1<<0), /* should channels be visible (in terms of hierarchy only) */ ANIMFILTER_SEL = (1<<1), /* should channels be selected */ @@ -222,9 +217,6 @@ typedef enum eAnimFilter_Flags { /* 'Object' channels */ #define SEL_OBJC(base) ((base->flag & SELECT)) #define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED)==0) - /* 'Sub-object' channels (flags stored in Object block) */ -#define FILTER_MAT_OBJC(ob) ((ob->nlaflag & OB_ADS_SHOWMATS)) -#define FILTER_PART_OBJC(ob) ((ob->nlaflag & OB_ADS_SHOWPARTS)) /* 'Sub-object' channels (flags stored in Data block) */ #define FILTER_SKE_OBJD(key) ((key->flag & KEY_DS_EXPAND)) #define FILTER_MAT_OBJD(ma) ((ma->flag & MA_DS_EXPAND)) @@ -243,9 +235,6 @@ typedef enum eAnimFilter_Flags { /* 'Sub-AnimData' channels */ #define EXPANDED_DRVD(adt) ((adt->flag & ADT_DRIVERS_COLLAPSED)==0) /* Texture expanders */ -#define FILTER_TEX_MATC(ma) ((ma->flag & MA_DS_SHOW_TEXS)) -#define FILTER_TEX_LAMC(la) ((la->flag & LA_DS_SHOW_TEXS)) -#define FILTER_TEX_WORC(wa) ((wo->flag & WO_DS_SHOW_TEXS)) #define FILTER_TEX_DATA(tex) ((tex->flag & TEX_DS_EXPAND)) /* Actions (also used for Dopesheet) */ diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index f0f34645ebf..1b8a1778707 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -248,8 +248,6 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar) break; case ANIMTYPE_FILLACTD: - case ANIMTYPE_FILLMATD: - case ANIMTYPE_FILLPARTD: case ANIMTYPE_DSSKEY: case ANIMTYPE_DSWOR: { diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index 4d0043913ab..95f618ad360 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -780,7 +780,7 @@ static void actkeys_select_leftright (bAnimContext *ac, short leftright, short s /* Sync marker support */ if (select_mode==SELECT_ADD) { - SpaceAction *saction= ac->sa->spacedata.first; + SpaceAction *saction= (SpaceAction *)ac->sl; if ((saction) && (saction->flag & SACTION_MARKERS_MOVE)) { ListBase *markers = ED_animcontext_get_markers(ac); diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 0da03832d15..71c937b87cb 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -279,7 +279,7 @@ void GRAPH_OT_view_selected (wmOperatorType *ot) /* Bake each F-Curve into a set of samples, and store as a ghost curve */ static void create_ghost_curves (bAnimContext *ac, int start, int end) { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; int filter; @@ -399,7 +399,7 @@ static int graphkeys_clear_ghostcurves_exec(bContext *C, wmOperator *UNUSED(op)) /* get editor data */ if (ANIM_animdata_get_context(C, &ac) == 0) return OPERATOR_CANCELLED; - sipo= (SpaceIpo *)ac.sa->spacedata.first; + sipo= (SpaceIpo *)ac.sl; /* if no ghost curves, don't do anything */ if (sipo->ghostCurves.first == NULL) @@ -1725,7 +1725,7 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op)) /* set the new current frame and cursor values, based on the average time and value */ if (ked.i1) { - SpaceIpo *sipo= ac.sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac.sl; Scene *scene= ac.scene; /* take the average values, rounding to the nearest int for the current frame */ @@ -1792,7 +1792,7 @@ static void snap_graph_keys(bAnimContext *ac, short mode) ked.list.last= (ac->markers) ? ac->markers->last : NULL; } else if (mode == GRAPHKEYS_SNAP_VALUE) { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; ked.f1= (sipo) ? sipo->cursorVal : 0.0f; } @@ -1906,7 +1906,7 @@ static void mirror_graph_keys(bAnimContext *ac, short mode) return; } else if (mode == GRAPHKEYS_MIRROR_VALUE) { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; ked.f1= (sipo) ? sipo->cursorVal : 0.0f; } diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c index cb799b85d3a..507ee43c6aa 100644 --- a/source/blender/editors/space_graph/graph_select.c +++ b/source/blender/editors/space_graph/graph_select.c @@ -90,7 +90,7 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel) bAnimListElem *ale; int filter; - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; KeyframeEditData ked= {{NULL}}; KeyframeEditFunc test_cb, sel_cb; @@ -201,7 +201,7 @@ static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, sho bAnimListElem *ale; int filter; - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; KeyframeEditData ked; KeyframeEditFunc ok_cb, select_cb; View2D *v2d= &ac->ar->v2d; @@ -958,7 +958,7 @@ static void get_nearest_fcurve_verts_list (bAnimContext *ac, const int mval[2], bAnimListElem *ale; int filter; - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; View2D *v2d= &ac->ar->v2d; /* get curves to search through @@ -1091,7 +1091,7 @@ static tNearestVertInfo *find_nearest_fcurve_vert (bAnimContext *ac, const int m /* option 1) select keyframe directly under mouse */ static void mouse_graph_keys (bAnimContext *ac, const int mval[2], short select_mode, short curves_only) { - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; tNearestVertInfo *nvi; BezTriple *bezt= NULL; @@ -1218,7 +1218,7 @@ static void graphkeys_mselect_column (bAnimContext *ac, const int mval[2], short bAnimListElem *ale; int filter; - SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first; + SpaceIpo *sipo= (SpaceIpo *)ac->sl; KeyframeEditFunc select_cb, ok_cb; KeyframeEditData ked; tNearestVertInfo *nvi; diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index e830a421a59..c4a3a2324b4 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -605,8 +605,8 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie indent= 0; if (ale->id) { - /* special exception for materials and particles */ - if (ELEM(GS(ale->id->name),ID_MA,ID_PA)) { + /* special exception for textures */ + if (GS(ale->id->name) == ID_TE) { offset= 21; indent= 1; } @@ -653,8 +653,8 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie group = 5; if (ale->id) { - /* special exception for materials and particles */ - if (ELEM(GS(ale->id->name),ID_MA,ID_PA)) { + /* special exception for textures */ + if (GS(ale->id->name) == ID_TE) { offset= 21; indent= 1; } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 20a26d8c58d..82f3ad87785 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -349,6 +349,7 @@ void recalcData(TransInfo *t) ac.obact= OBACT; ac.sa= t->sa; ac.ar= t->ar; + ac.sl= (t->sa)? t->sa->spacedata.first : NULL; ac.spacetype= (t->sa)? t->sa->spacetype : 0; ac.regiontype= (t->ar)? t->ar->regiontype : 0; @@ -383,7 +384,7 @@ void recalcData(TransInfo *t) SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first; ListBase anim_data = {NULL, NULL}; - bAnimContext ac; + bAnimContext ac= {NULL}; int filter; bAnimListElem *ale; @@ -392,12 +393,11 @@ void recalcData(TransInfo *t) /* initialise relevant anim-context 'context' data from TransInfo data */ /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - memset(&ac, 0, sizeof(bAnimContext)); - scene= ac.scene= t->scene; ac.obact= OBACT; ac.sa= t->sa; ac.ar= t->ar; + ac.sl= (t->sa)? t->sa->spacedata.first : NULL; ac.spacetype= (t->sa)? t->sa->spacetype : 0; ac.regiontype= (t->ar)? t->ar->regiontype : 0; -- cgit v1.2.3 From ccc112a8577a3b094e4f88ca0a1e810b40ceea86 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 02:15:07 +0000 Subject: fix for error in swizzle assignment leaving an unhandled exception. --- source/blender/python/generic/mathutils_Vector.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/mathutils_Vector.c b/source/blender/python/generic/mathutils_Vector.c index d0ba94474d4..e07b51c9e4b 100644 --- a/source/blender/python/generic/mathutils_Vector.c +++ b/source/blender/python/generic/mathutils_Vector.c @@ -1634,7 +1634,7 @@ static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) size_from= axis_from; } - else if((size_from=mathutils_array_parse(vec_assign, 2, 4, value, "mathutils.Vector.**** = swizzle assignment")) == -1) { + else if(PyErr_Clear(), (size_from=mathutils_array_parse(vec_assign, 2, 4, value, "mathutils.Vector.**** = swizzle assignment")) == -1) { return -1; } -- cgit v1.2.3 From a4178b7a6a1ce804f581c0e3289aa0f912085c78 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 21 Jun 2011 02:31:12 +0000 Subject: Bugfix: Fix for autokey menu in Timeline The mode items were only enabled correctly when auto-keyframing was enabled. --- source/blender/makesrna/intern/rna_scene.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index f24c83efe05..1322a18421b 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1047,10 +1047,14 @@ static void rna_def_tool_settings(BlenderRNA *brna) {UV_SELECT_FACE, "FACE", ICON_UV_FACESEL, "Face", "Face selection mode"}, {UV_SELECT_ISLAND, "ISLAND", ICON_UV_ISLANDSEL, "Island", "Island selection mode"}, {0, NULL, 0, NULL, NULL}}; - + + /* the construction of this enum is quite special - everything is stored as bitflags, + * with 1st position only for for on/off (and exposed as boolean), while others are mutually + * exclusive options but which will only have any effect when autokey is enabled + */ static EnumPropertyItem auto_key_items[] = { - {AUTOKEY_MODE_NORMAL, "ADD_REPLACE_KEYS", 0, "Add & Replace", ""}, - {AUTOKEY_MODE_EDITKEYS, "REPLACE_KEYS", 0, "Replace", ""}, + {AUTOKEY_MODE_NORMAL & ~AUTOKEY_ON, "ADD_REPLACE_KEYS", 0, "Add & Replace", ""}, + {AUTOKEY_MODE_EDITKEYS & ~AUTOKEY_ON, "REPLACE_KEYS", 0, "Replace", ""}, {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem retarget_roll_items[] = { @@ -1193,7 +1197,7 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_REC, 0); prop= RNA_def_property(srna, "auto_keying_mode", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "autokey_mode"); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "autokey_mode"); RNA_def_property_enum_items(prop, auto_key_items); RNA_def_property_ui_text(prop, "Auto-Keying Mode", "Mode of automatic keyframe insertion for Objects and Bones"); -- cgit v1.2.3 From 24ca3eb4c42f3dfb4e2b775f53b35e4c4dcd8367 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 21 Jun 2011 04:01:51 +0000 Subject: AnimFiltering Code Cleanups - Part 2 * Changed all int's to size_t's, where the int's were used for size of channel list returned * Object vs Base is now passed to filtering functions - was relic from old owner/ownertype code which required access to bases * Found bug in NLA code where filter was being overwritten and then used again as input for some other function unintentionally * Found bug where trying to select a NLA strip would crash if lamp data was around --- source/blender/editors/animation/anim_filter.c | 82 +++++++++++------------ source/blender/editors/include/ED_anim_api.h | 2 +- source/blender/editors/space_action/action_draw.c | 6 +- source/blender/editors/space_graph/graph_draw.c | 3 +- source/blender/editors/space_graph/graph_utils.c | 11 +-- source/blender/editors/space_graph/space_graph.c | 3 +- source/blender/editors/space_nla/nla_channels.c | 3 +- source/blender/editors/space_nla/nla_draw.c | 6 +- source/blender/editors/space_nla/nla_edit.c | 3 +- 9 files changed, 64 insertions(+), 55 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index b42fc47b14c..2343c73921c 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -349,7 +349,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) * - ListBase anim_data; * - bDopeSheet *ads; * - bAnimListElem *ale; - * - int items; + * - size_t items; * * - id: ID block which should have an AnimData pointer following it immediately, to use * - adtOk: line or block of code to execute for AnimData-blocks case (usually ANIMDATA_ADD_ANIMDATA) @@ -756,7 +756,7 @@ static bAnimListElem *make_new_animlistelem (void *data, short datatype, ID *own /* 'Only Selected' selected data filtering * NOTE: when this function returns true, the F-Curve is to be skipped */ -static int skip_fcurve_selected_data (bDopeSheet *ads, FCurve *fcu, ID *owner_id, int filter_mode) +static size_t skip_fcurve_selected_data (bDopeSheet *ads, FCurve *fcu, ID *owner_id, int filter_mode) { if (GS(owner_id->name) == ID_OB) { Object *ob= (Object *)owner_id; @@ -906,10 +906,10 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct return NULL; } -static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) +static size_t animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) { FCurve *fcu; - int items = 0; + size_t items = 0; /* loop over every F-Curve able to be included * - this for-loop works like this: @@ -934,12 +934,12 @@ static int animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve return items; } -static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) +static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) { bAnimListElem *ale=NULL; bActionGroup *agrp; FCurve *lastchan=NULL; - int items = 0; + size_t items = 0; /* don't include anything from this action if it is linked in from another file, * and we're getting stuff for editing... @@ -1061,12 +1061,12 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS * - for normal filtering (i.e. for editing), we only need the NLA-tracks but they can be in 'normal' evaluation * order, i.e. first to last. Otherwise, some tools may get screwed up. */ -static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) +static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) { bAnimListElem *ale; NlaTrack *nlt; NlaTrack *first=NULL, *next=NULL; - int items = 0; + size_t items = 0; /* if showing channels, include active action */ if (filter_mode & ANIMFILTER_CHANNELS) { @@ -1131,10 +1131,10 @@ static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, b } /* Include ShapeKey Data for ShapeKey Editor */ -static int animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key *key, int filter_mode) +static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key *key, int filter_mode) { bAnimListElem *ale; - int items = 0; + size_t items = 0; /* check if channels or only F-Curves */ if ((filter_mode & ANIMFILTER_CURVESONLY) == 0) { @@ -1180,12 +1180,12 @@ static int animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key /* Grab all Grase Pencil datablocks in file */ // TODO: should this be amalgamated with the dopesheet filtering code? -static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int filter_mode) +static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int filter_mode) { bAnimListElem *ale; bGPdata *gpd; bGPDlayer *gpl; - int items = 0; + size_t items = 0; /* check if filtering types are appropriate */ if (!(filter_mode & (ANIMFILTER_ACTGROUPED|ANIMFILTER_CURVESONLY))) @@ -1232,12 +1232,12 @@ static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int } /* NOTE: owner_id is either material, lamp, or world block, which is the direct owner of the texture stack in question */ -static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode) +static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode) { - MTex **mtex = NULL; - bAnimListElem *ale=NULL; - int items=0, a=0; + MTex **mtex = NULL; + size_t items=0; + int a=0; /* get datatype specific data first */ if (owner_id == NULL) @@ -1317,11 +1317,11 @@ static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data return items; } -static int animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +static size_t animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { bAnimListElem *ale=NULL; - Object *ob= base->object; - int items=0, a=0; + size_t items=0; + int a=0; /* firstly check that we actuallly have some materials, by gathering all materials in a temp list */ for (a=1; a <= ob->totcol; a++) { @@ -1392,12 +1392,11 @@ static int animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data return items; } -static int animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +static size_t animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { bAnimListElem *ale=NULL; - Object *ob= base->object; ParticleSystem *psys = ob->particlesystem.first; - int items= 0; + size_t items= 0; for(; psys; psys=psys->next) { short ok = 0; @@ -1437,14 +1436,13 @@ static int animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *anim return items; } -static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { bAnimListElem *ale=NULL; - Object *ob= base->object; IdAdtTemplate *iat= ob->data; AnimData *adt= iat->adt; short type=0, expanded=0; - int items= 0; + size_t items= 0; /* get settings based on data type */ switch (ob->type) { @@ -1509,7 +1507,7 @@ static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_da } /* include data-expand widget? */ - if ((filter_mode & ANIMFILTER_CURVESONLY) == 0) { + if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(iat) { ale= make_new_animlistelem(iat, type, (ID *)iat); @@ -1542,14 +1540,14 @@ static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_da return items; } -static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) { bAnimListElem *ale=NULL; AnimData *adt = NULL; Object *ob= base->object; Key *key= ob_get_key(ob); short obdata_ok = 0; - int items = 0; + size_t items = 0; /* add this object as a channel first */ if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { @@ -1674,7 +1672,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, /* Materials? */ if ((ob->totcol) && !(ads->filterflag & ADS_FILTER_NOMAT)) - items += animdata_filter_dopesheet_mats(ac, anim_data, ads, base, filter_mode); + items += animdata_filter_dopesheet_mats(ac, anim_data, ads, ob, filter_mode); /* Object Data */ switch (ob->type) { @@ -1773,23 +1771,23 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, break; } if (obdata_ok) - items += animdata_filter_dopesheet_obdata(ac, anim_data, ads, base, filter_mode); + items += animdata_filter_dopesheet_obdata(ac, anim_data, ads, ob, filter_mode); /* particles */ if (ob->particlesystem.first && !(ads->filterflag & ADS_FILTER_NOPART)) - items += animdata_filter_dopesheet_particles(ac, anim_data, ads, base, filter_mode); + items += animdata_filter_dopesheet_particles(ac, anim_data, ads, ob, filter_mode); /* return the number of items added to the list */ return items; } -static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, int filter_mode) +static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, int filter_mode) { World *wo= sce->world; bNodeTree *ntree= sce->nodetree; AnimData *adt= NULL; bAnimListElem *ale; - int items = 0; + size_t items = 0; /* add scene as a channel first (even if we aren't showing scenes we still need to show the scene's sub-data */ if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { @@ -1951,12 +1949,12 @@ static int animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_dat } // TODO: implement pinning... (if and when pinning is done, what we need to do is to provide freeing mechanisms - to protect against data that was deleted) -static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, int filter_mode) +static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, int filter_mode) { Scene *sce= (Scene *)ads->source; Base *base; bAnimListElem *ale; - int items = 0; + size_t items = 0; /* check that we do indeed have a scene */ if ((ads->source == NULL) || (GS(ads->source->name)!=ID_SCE)) { @@ -2348,7 +2346,7 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo /* Summary track for DopeSheet/Action Editor * - return code is whether the summary lets the other channels get drawn */ -static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim_data, int filter_mode, int *items) +static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim_data, int filter_mode, size_t *items) { bDopeSheet *ads = NULL; @@ -2392,10 +2390,10 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim /* ----------- Cleanup API --------------- */ /* Remove entries with invalid types in animation channel list */ -static int animdata_filter_remove_invalid (ListBase *anim_data) +static size_t animdata_filter_remove_invalid (ListBase *anim_data) { bAnimListElem *ale, *next; - int items = 0; + size_t items = 0; /* only keep entries with valid types */ for (ale= anim_data->first; ale; ale= next) { @@ -2411,11 +2409,11 @@ static int animdata_filter_remove_invalid (ListBase *anim_data) } /* Remove duplicate entries in animation channel list */ -static int animdata_filter_remove_duplis (ListBase *anim_data) +static size_t animdata_filter_remove_duplis (ListBase *anim_data) { bAnimListElem *ale, *next; GHash *gh; - int items = 0; + size_t items = 0; /* build new hashtable to efficiently store and retrieve which entries have been * encountered already while searching @@ -2457,9 +2455,9 @@ static int animdata_filter_remove_duplis (ListBase *anim_data) * will be placed for use. * filter_mode: how should the data be filtered - bitmapping accessed flags */ -int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode, void *data, short datatype) +size_t ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode, void *data, short datatype) { - int items = 0; + size_t items = 0; /* only filter data if there's somewhere to put it */ if (data && anim_data) { diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index a8836458fad..be46c237e80 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -299,7 +299,7 @@ typedef enum eAnimFilter_Flags { /* Obtain list of filtered Animation channels to operate on. * Returns the number of channels in the list */ -int ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, int filter_mode, void *data, short datatype); +size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, int filter_mode, void *data, short datatype); /* Obtain current anim-data context from Blender Context info. * Returns whether the operation was successful. diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index 1b8a1778707..760db5dd133 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -77,7 +77,8 @@ void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) View2D *v2d= &ar->v2d; float y= 0.0f; - int items, height; + size_t items; + int height; /* build list of channels to draw */ filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); @@ -166,7 +167,8 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar) AnimData *adt= NULL; float act_start, act_end, y; - int height, items; + size_t items; + int height; unsigned char col1[3], col2[3]; unsigned char col1a[3], col2a[3]; diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index 382bb71a592..73ecea8e31e 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -964,7 +964,8 @@ void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) View2D *v2d= &ar->v2d; float y= 0.0f, height; - int items, i=0; + size_t items; + int i=0; /* build list of channels to draw */ filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c index e4509a29a91..e20b4593fa9 100644 --- a/source/blender/editors/space_graph/graph_utils.c +++ b/source/blender/editors/space_graph/graph_utils.c @@ -70,7 +70,7 @@ bAnimListElem *get_active_fcurve_channel (bAnimContext *ac) { ListBase anim_data = {NULL, NULL}; int filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_ACTIVE | ANIMFILTER_CURVESONLY); - int items = ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); + size_t items = ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* We take the first F-Curve only, since some other ones may have had 'active' flag set * if they were from linked data. @@ -99,7 +99,8 @@ int graphop_visible_keyframes_poll (bContext *C) bAnimListElem *ale; ListBase anim_data = {NULL, NULL}; ScrArea *sa= CTX_wm_area(C); - int filter, items; + size_t items; + int filter; short found = 0; /* firstly, check if in Graph Editor */ @@ -147,7 +148,8 @@ int graphop_editable_keyframes_poll (bContext *C) bAnimListElem *ale; ListBase anim_data = {NULL, NULL}; ScrArea *sa= CTX_wm_area(C); - int filter, items; + size_t items; + int filter; short found = 0; /* firstly, check if in Graph Editor */ @@ -230,7 +232,8 @@ int graphop_selected_fcurve_poll (bContext *C) bAnimContext ac; ListBase anim_data = {NULL, NULL}; ScrArea *sa= CTX_wm_area(C); - int filter, items; + size_t items; + int filter; /* firstly, check if in Graph Editor */ // TODO: also check for region? diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 883b476f372..24e196749a8 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -513,8 +513,9 @@ static void graph_refresh(const bContext *C, ScrArea *sa) if (ANIM_animdata_get_context(C, &ac)) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; + size_t items; int filter; - int items, i; + int i; /* build list of F-Curves which will be visible as channels in channel-region * - we don't include ANIMFILTER_CURVEVISIBLE filter, as that will result in a diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index 38f680fff07..be050dded45 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -81,13 +81,14 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; int filter; + View2D *v2d= &ac->ar->v2d; int notifierFlags = 0; /* get the channel that was clicked on */ /* filter channels */ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); - filter= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); + ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get channel from index */ ale= BLI_findlink(&anim_data, channel_index); diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index c4a3a2324b4..c53eac78b19 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -470,7 +470,8 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) View2D *v2d= &ar->v2d; float y= 0.0f; - int items, height; + size_t items; + int height; /* build list of channels to draw */ filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); @@ -828,7 +829,8 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) View2D *v2d= &ar->v2d; float y= 0.0f; - int items, height; + size_t items; + int height; /* build list of channels to draw */ filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 77c91b28a63..08607e6183b 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -250,7 +250,8 @@ static int nlaedit_add_actionclip_exec (bContext *C, wmOperator *op) ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - int filter, items; + size_t items; + int filter; bAction *act; -- cgit v1.2.3 From a48a4270dceb3f739a18dc3eaf64f6bc95407ea1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 04:03:26 +0000 Subject: fix for PLY import using directory only select, operators which define 'files' but not 'filename' or 'filepath' would use the directory selector. also made code less confusing. --- source/blender/editors/space_file/filesel.c | 15 ++++++++------- source/blender/editors/space_sequencer/sequencer_add.c | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 3dbfdc9f7d0..6773dfb6b2d 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -121,8 +121,10 @@ short ED_fileselect_set_params(SpaceFile *sfile) /* set the parameters from the operator, if it exists */ if (op) { - short is_filename= FALSE; - short is_dir= FALSE; + const short is_files= (RNA_struct_find_property(op->ptr, "files") != NULL); + const short is_filepath= (RNA_struct_find_property(op->ptr, "filepath") != NULL); + const short is_filename= (RNA_struct_find_property(op->ptr, "filename") != NULL); + const short is_directory= (RNA_struct_find_property(op->ptr, "directory") != NULL); BLI_strncpy(params->title, op->type->name, sizeof(params->title)); @@ -131,7 +133,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) else params->type = FILE_SPECIAL; - if ((is_dir= is_filename= RNA_struct_find_property(op->ptr, "filepath")!=NULL) && RNA_property_is_set(op->ptr, "filepath")) { + if (is_filepath && RNA_property_is_set(op->ptr, "filepath")) { char name[FILE_MAX]; RNA_string_get(op->ptr, "filepath", name); if (params->type == FILE_LOADLIB) { @@ -143,13 +145,12 @@ short ED_fileselect_set_params(SpaceFile *sfile) } } else { - if ((is_dir= RNA_struct_find_property(op->ptr, "directory")!=NULL) && RNA_property_is_set(op->ptr, "directory")) { + if (is_directory && RNA_property_is_set(op->ptr, "directory")) { RNA_string_get(op->ptr, "directory", params->dir); sfile->params->file[0]= '\0'; - is_dir= TRUE; } - if ((is_filename= RNA_struct_find_property(op->ptr, "filename")!=NULL) && RNA_property_is_set(op->ptr, "filename")) { + if (is_filename && RNA_property_is_set(op->ptr, "filename")) { RNA_string_get(op->ptr, "filename", params->file); } } @@ -159,7 +160,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) BLI_path_abs(params->dir, G.main->name); } - if(is_dir==TRUE && is_filename==FALSE) { + if(is_directory==TRUE && is_filename==FALSE && is_filepath==FALSE && is_files==FALSE) { params->flag |= FILE_DIRSEL_ONLY; } else { diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index e4c3555eac1..067d63b3b6c 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -551,7 +551,7 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME|WM_FILESEL_RELPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH); sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES); } -- cgit v1.2.3 From 418d2ce49e3efc4b6197d7c524ac8c9875a0fe97 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 07:41:49 +0000 Subject: allow rna to set vertex parent indices, blender checks for invalid values on access. build blenderplayer by default on linux with scons. --- source/blender/makesrna/intern/rna_object.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 8ee8652e2e5..8000427cb21 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1826,7 +1826,6 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "parent_vertices", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "par1"); RNA_def_property_array(prop, 3); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Parent Vertices", "Indices of vertices in cases of a vertex parenting relation"); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update"); -- cgit v1.2.3 From a50aa13faccec46df3a478c8de47925d4a5cfb5c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 08:09:42 +0000 Subject: py api: make all classes __init__ functions in a readonly state, except for operators. In bug [#27701], the panels __init__ function (which runs on every draw), was adding new rna properties. --- source/blender/python/intern/bpy_rna.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 16f4de700f6..b9af75834e0 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -6041,9 +6041,10 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param PyGILState_STATE gilstate; #ifdef USE_PEDANTIC_WRITE + const int is_operator= RNA_struct_is_a(ptr->type, &RNA_Operator); const char *func_id= RNA_function_identifier(func); /* testing, for correctness, not operator and not draw function */ - const short is_readonly= strstr("draw", func_id) || /*strstr("render", func_id) ||*/ !RNA_struct_is_a(ptr->type, &RNA_Operator); + const short is_readonly= strstr("draw", func_id) || /*strstr("render", func_id) ||*/ !is_operator; #endif py_class= RNA_struct_py_type_get(ptr->type); @@ -6099,6 +6100,11 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param * Although this is annoying to have to impliment a part of pythons typeobject.c:type_call(). */ if(py_class->tp_init) { +#ifdef USE_PEDANTIC_WRITE + const int prev_write= rna_disallow_writes; + rna_disallow_writes= is_operator ? FALSE : TRUE; /* only operators can write on __init__ */ +#endif + /* true in most cases even when the class its self doesn't define an __init__ function. */ args= PyTuple_New(0); if (py_class->tp_init(py_srna, args, NULL) < 0) { @@ -6107,11 +6113,16 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param /* err set below */ } Py_DECREF(args); +#ifdef USE_PEDANTIC_WRITE + rna_disallow_writes= prev_write; +#endif } - py_class_instance= py_srna; #else + const int prev_write= rna_disallow_writes; + rna_disallow_writes= TRUE; + /* 'almost' all the time calling the class isn't needed. * We could just do... py_class_instance= py_srna; @@ -6125,7 +6136,10 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param py_class_instance= PyObject_Call(py_class, args, NULL); Py_DECREF(args); + rna_disallow_writes= prev_write; + #endif + if(py_class_instance == NULL) { err= -1; /* so the error is not overridden below */ } -- cgit v1.2.3 From 2145005e5e3d9618982b25047bf803a3433fe0a3 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 21 Jun 2011 11:15:37 +0000 Subject: Fix for [#26939] Hair Combing intersects emitter when combed fast * Hair combing now uses substeps to apply the combing when the mouse movement exceeds 0.2 of the brush radius. * This could make combing a bit slower on fast mouse movements, but the increase in combing quality is definitely worth it. --- source/blender/editors/physics/particle_edit.c | 236 +++++++++++++------------ 1 file changed, 124 insertions(+), 112 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 6155929243b..9124bdaf41c 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -3461,7 +3461,8 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) ARegion *ar= CTX_wm_region(C); float vec[3], mousef[2]; int mval[2]; - int flip, mouse[2], dx, dy, removed= 0, added=0, selected= 0; + int flip, mouse[2], removed= 0, added=0, selected= 0, tot_steps= 1, step= 1; + float dx, dy, dmax; int lock_root = pset->flag & PE_LOCK_FIRST; if(!PE_start_edit(edit)) @@ -3496,152 +3497,163 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) view3d_operator_needs_opengl(C); selected= (short)count_selected_keys(scene, edit); - switch(pset->brushtype) { - case PE_BRUSH_COMB: - { - float mval_f[2]; - data.mval= mval; - data.rad= (float)brush->size; + dmax = MAX2(fabs(dx), fabs(dy)); + tot_steps = dmax/(0.2f * brush->size) + 1; - data.combfac= (brush->strength - 0.5f) * 2.0f; - if(data.combfac < 0.0f) - data.combfac= 1.0f - 9.0f * data.combfac; - else - data.combfac= 1.0f - data.combfac; - - invert_m4_m4(ob->imat, ob->obmat); + dx /= (float)tot_steps; + dy /= (float)tot_steps; - mval_f[0]= dx; - mval_f[1]= dy; - ED_view3d_win_to_delta(ar, mval_f, vec); - data.dvec= vec; + for(step = 1; step<=tot_steps; step++) { + mval[0] = bedit->lastmouse[0] + step*dx; + mval[1] = bedit->lastmouse[1] + step*dy; - foreach_mouse_hit_key(&data, brush_comb, selected); - break; - } - case PE_BRUSH_CUT: - { - if(edit->psys && edit->pathcache) { + switch(pset->brushtype) { + case PE_BRUSH_COMB: + { + float mval_f[2]; data.mval= mval; data.rad= (float)brush->size; - data.cutfac= brush->strength; - if(selected) - foreach_selected_point(&data, brush_cut); + data.combfac= (brush->strength - 0.5f) * 2.0f; + if(data.combfac < 0.0f) + data.combfac= 1.0f - 9.0f * data.combfac; else - foreach_point(&data, brush_cut); + data.combfac= 1.0f - data.combfac; - removed= remove_tagged_particles(ob, edit->psys, pe_x_mirror(ob)); - if(pset->flag & PE_KEEP_LENGTHS) - recalc_lengths(edit); - } - else - removed= 0; - - break; - } - case PE_BRUSH_LENGTH: - { - data.mval= mval; - - data.rad= (float)brush->size; - data.growfac= brush->strength / 50.0f; + invert_m4_m4(ob->imat, ob->obmat); - if(brush->invert ^ flip) - data.growfac= 1.0f - data.growfac; - else - data.growfac= 1.0f + data.growfac; + mval_f[0]= dx; + mval_f[1]= dy; + ED_view3d_win_to_delta(ar, mval_f, vec); + data.dvec= vec; - foreach_mouse_hit_point(&data, brush_length, selected); + foreach_mouse_hit_key(&data, brush_comb, selected); + break; + } + case PE_BRUSH_CUT: + { + if(edit->psys && edit->pathcache) { + data.mval= mval; + data.rad= (float)brush->size; + data.cutfac= brush->strength; + + if(selected) + foreach_selected_point(&data, brush_cut); + else + foreach_point(&data, brush_cut); + + removed= remove_tagged_particles(ob, edit->psys, pe_x_mirror(ob)); + if(pset->flag & PE_KEEP_LENGTHS) + recalc_lengths(edit); + } + else + removed= 0; - if(pset->flag & PE_KEEP_LENGTHS) - recalc_lengths(edit); - break; - } - case PE_BRUSH_PUFF: - { - if(edit->psys) { - data.dm= psmd->dm; + break; + } + case PE_BRUSH_LENGTH: + { data.mval= mval; + data.rad= (float)brush->size; - data.select= selected; + data.growfac= brush->strength / 50.0f; - data.pufffac= (brush->strength - 0.5f) * 2.0f; - if(data.pufffac < 0.0f) - data.pufffac= 1.0f - 9.0f * data.pufffac; + if(brush->invert ^ flip) + data.growfac= 1.0f - data.growfac; else - data.pufffac= 1.0f - data.pufffac; + data.growfac= 1.0f + data.growfac; - data.invert= (brush->invert ^ flip); - invert_m4_m4(ob->imat, ob->obmat); + foreach_mouse_hit_point(&data, brush_length, selected); - foreach_mouse_hit_point(&data, brush_puff, selected); + if(pset->flag & PE_KEEP_LENGTHS) + recalc_lengths(edit); + break; } - break; - } - case PE_BRUSH_ADD: - { - if(edit->psys && edit->psys->part->from==PART_FROM_FACE) { - data.mval= mval; + case PE_BRUSH_PUFF: + { + if(edit->psys) { + data.dm= psmd->dm; + data.mval= mval; + data.rad= (float)brush->size; + data.select= selected; + + data.pufffac= (brush->strength - 0.5f) * 2.0f; + if(data.pufffac < 0.0f) + data.pufffac= 1.0f - 9.0f * data.pufffac; + else + data.pufffac= 1.0f - data.pufffac; + + data.invert= (brush->invert ^ flip); + invert_m4_m4(ob->imat, ob->obmat); + + foreach_mouse_hit_point(&data, brush_puff, selected); + } + break; + } + case PE_BRUSH_ADD: + { + if(edit->psys && edit->psys->part->from==PART_FROM_FACE) { + data.mval= mval; - added= brush_add(&data, brush->count); + added= brush_add(&data, brush->count); - if(pset->flag & PE_KEEP_LENGTHS) - recalc_lengths(edit); + if(pset->flag & PE_KEEP_LENGTHS) + recalc_lengths(edit); + } + else + added= 0; + break; } - else - added= 0; - break; - } - case PE_BRUSH_SMOOTH: - { - data.mval= mval; - data.rad= (float)brush->size; + case PE_BRUSH_SMOOTH: + { + data.mval= mval; + data.rad= (float)brush->size; + + data.vec[0]= data.vec[1]= data.vec[2]= 0.0f; + data.tot= 0; - data.vec[0]= data.vec[1]= data.vec[2]= 0.0f; - data.tot= 0; + data.smoothfac= brush->strength; - data.smoothfac= brush->strength; + invert_m4_m4(ob->imat, ob->obmat); - invert_m4_m4(ob->imat, ob->obmat); + foreach_mouse_hit_key(&data, brush_smooth_get, selected); - foreach_mouse_hit_key(&data, brush_smooth_get, selected); + if(data.tot) { + mul_v3_fl(data.vec, 1.0f / (float)data.tot); + foreach_mouse_hit_key(&data, brush_smooth_do, selected); + } - if(data.tot) { - mul_v3_fl(data.vec, 1.0f / (float)data.tot); - foreach_mouse_hit_key(&data, brush_smooth_do, selected); + break; } + case PE_BRUSH_WEIGHT: + { + if(edit->psys) { + data.dm= psmd->dm; + data.mval= mval; + data.rad= (float)brush->size; - break; - } - case PE_BRUSH_WEIGHT: - { - if(edit->psys) { - data.dm= psmd->dm; - data.mval= mval; - data.rad= (float)brush->size; + data.weightfac = brush->strength; /* note that this will never be zero */ - data.weightfac = brush->strength; /* note that this will never be zero */ + foreach_mouse_hit_key(&data, brush_weight, selected); + } - foreach_mouse_hit_key(&data, brush_weight, selected); + break; } - - break; } - } - if((pset->flag & PE_KEEP_LENGTHS)==0) - recalc_lengths(edit); + if((pset->flag & PE_KEEP_LENGTHS)==0) + recalc_lengths(edit); - if(ELEM(pset->brushtype, PE_BRUSH_ADD, PE_BRUSH_CUT) && (added || removed)) { - if(pset->brushtype == PE_BRUSH_ADD && pe_x_mirror(ob)) - PE_mirror_x(scene, ob, 1); + if(ELEM(pset->brushtype, PE_BRUSH_ADD, PE_BRUSH_CUT) && (added || removed)) { + if(pset->brushtype == PE_BRUSH_ADD && pe_x_mirror(ob)) + PE_mirror_x(scene, ob, 1); - update_world_cos(ob,edit); - psys_free_path_cache(NULL, edit); - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + update_world_cos(ob,edit); + psys_free_path_cache(NULL, edit); + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + } + else + PE_update_object(scene, ob, 1); } - else - PE_update_object(scene, ob, 1); WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); -- cgit v1.2.3 From 5dd76a3f4e1c6df77177d7751050784f8ee7a600 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 21 Jun 2011 13:02:21 +0000 Subject: 1 pixel tweak to have outliner icons + selection circles align for default DPI. Problem now is that icons/text are scaling and drawing with pixel units, whilst other items draw subpixel. This makes not every dpi size result in perfect aligning yet. --- source/blender/editors/space_outliner/outliner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 57dec68f68f..0ce6b5d2ce2 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -4737,7 +4737,7 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { // icons a bit higher - tselem_draw_icon(block, xmax, (float)startx+offsx, (float)*starty+2*ufac, tselem, te, 1.0f); + tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); offsx+= UI_UNIT_X; } -- cgit v1.2.3 From 8a335767d51b466d857b3d3ffeeccc0e6b2f2f60 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 21 Jun 2011 15:28:13 +0000 Subject: Snapping/Project Disable editmesh as target if proportional edit is on (that was messed up incorrectly in revision 33233) --- source/blender/editors/transform/transform_snap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index c4d6eb02028..d9d9b0f9102 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -385,8 +385,8 @@ static void initSnappingMode(TransInfo *t) if (t->tsnap.applySnap != NULL && // A snapping function actually exist (obedit != NULL && ELEM4(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE, OB_LATTICE)) ) // Temporary limited to edit mode meshes, armature, curves { - /* editmode meshes now supported */ - if ((obedit->type != OB_MESH) && ((t->flag & T_PROP_EDIT) || t->tsnap.project)) /* also exclude edit for project, for now */ + /* Exclude editmesh if using proportional edit */ + if ((obedit->type == OB_MESH) && (t->flag & T_PROP_EDIT)) { t->tsnap.modeSelect = SNAP_NOT_OBEDIT; } -- cgit v1.2.3 From 20e273a695ff2dde6b085b9dce83288572fef4a2 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 21 Jun 2011 16:38:28 +0000 Subject: Upping the release number to 2.58 --- source/blender/blenkernel/BKE_blender.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 07f0885372a..4ea5db93350 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,17 +43,17 @@ extern "C" { /* these lines are grep'd, watch out for our not-so-awesome regex * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ -#define BLENDER_VERSION 257 -#define BLENDER_SUBVERSION 1 +#define BLENDER_VERSION 258 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 /* used by packaging tools */ /* can be left blank, otherwise a,b,c... etc with no quotes */ -#define BLENDER_VERSION_CHAR b +#define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE beta +#define BLENDER_VERSION_CYCLE release struct ListBase; struct MemFile; -- cgit v1.2.3 From 22c68cd748257e63391e6b23b1d0b7e5895d3121 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 21 Jun 2011 16:54:34 +0000 Subject: =?UTF-8?q?New=202.58=20splash=20image.=20Thanks=20Rog=C3=A9rio=20?= =?UTF-8?q?Perdiz!=20(Judge=20committee=20Sebastian=5FK=20&&=20FrancoisGFX?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/blender/editors/datafiles/splash.png.c | 14717 ++++++++++-------------- 1 file changed, 6310 insertions(+), 8407 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index aea2a9a1a14..aa358275335 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,8411 +1,6314 @@ /* DataToC output of file */ -int datatoc_splash_png_size= 268962; +int datatoc_splash_png_size= 201866; char datatoc_splash_png[]= { -137, 80, - 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6, 0, 0, 0, 8, 90,206, 70, 0, - 0, 10, 78,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120, 94, -157,147,103, 84,147,103, 27,199,175,231,121,178, 7, 35, 9, 17,144,241,176,151, 76, 25, 1,100,134, 21, 1, 25, 34, 75, 20, 66, - 18, 32,140, 16, 67, 2, 14, 92,136,168, 64, 69, 81, 17,193,137, 84, 69, 44, 88,173,128,212,137, 40, 14,138,162,226,214,130, 20, - 17,181, 22,171,184,112,244, 3,231, 84,223,158,119,244,237,239,211,255, 92,227, 92,247, 53,110, 0, 70, 72,152, 84,150,139,106, - 0,228,200,148,138,232, 96,127, 60, 62, 33, 17, 39,247, 0, 10, 84, 32,129, 35,128, 80,148, 39, 15,159, 25, 20, 3, 0, 32, 8, -228,227,121,209,193,254,240, 5, 4,224,245, 13, 64, 0, 0,174,217,134, 68,226, 56,252,127,104,138,228, 10, 37, 0, 18, 9, 0, - 83,197,146, 60, 17, 0, 82, 12, 0,217, 5, 74,185, 18, 0, 25, 5, 0, 78,106,150, 92, 9,128, 18, 0,128,163,136, 79, 72, 4, - 64,181, 1,128,147, 62,161,167, 0, 0, 39,117, 66,251, 2, 0, 71,156, 35, 19, 3,160, 49, 0, 32, 23,231,136,197, 0,104, 39, - 0,172,206, 87, 73,196, 0, 88, 24, 0,148,228, 75, 37, 5, 0,216,117, 0, 48,205, 86,229, 72, 1,176,183, 0,192,201,145, 8, -243, 0, 8, 12, 0, 48, 85, 74, 68, 25, 0, 4, 7, 0, 96, 40, 98,162,249, 0,132,105, 0, 20, 70,250, 87, 58,245, 43,173,148, -204, 87, 2, 0,240,115,229, 11, 20,210,244, 12, 37,110, 41,178,194, 29,221,221,121,120,136,164, 32, 91,162, 84,218, 70, 10, 69, - 89, 66,133, 24,231,231,230,200,133,178, 5, 0, 19, 61, 3, 0, 0, 43, 47, 58,216, 31, 23, 4,242, 93, 29,221, 93, 93,109,157, -236, 28,191,204,233,191, 59,255, 38,241, 9,137,248,132,122, 25, 5, 8, 0, 32,220,238, 47,182,127, 23,151, 91, 7,192, 27, 3, -192,214,125,177,165,110, 1,104, 93, 9,160,125,231,139,205,116, 39,128,122, 49, 64,203,229,175,250,225, 10, 2,249,120,134, 82, - 41,247,176,183, 47, 40, 40,176,147, 74, 68,118,162,140,175,234,252,207,128,191,193, 87,245,236, 4,129,124,252,207,241,224, 1, -146, 52,161, 42, 91,137, 71, 7,251,227,162,220,236, 92,149, 2,207,147, 11, 69, 18,220,246,175, 71,252,143, 19,191,226,171,119, - 76,137,150,164, 73, 20, 18,153, 72,130,199, 74, 37, 5, 82, 89, 58,206,207,149,137,165, 74,105,174, 12,151,202,254,211, 18,255, - 97,218, 95,152,184,107, 0, 96,215,127, 2, 78,178, 29,104, 92,230, 0,246,107, 55, 16,216,116,192,146,182, 3, 0,242,231,222, -194,168,177, 16, 9, 0,113,134,195, 19,119, 15, 0, 48,241,155,255, 21,180, 2, 0,208, 60,105, 58, 14, 0,192,143,142,193, 69, - 42, 69,254,132,143, 0, 0, 64, 4, 26,168, 3, 7,116,192, 0, 76,192, 18,108,193, 9,220,192, 19,124, 33, 16,166, 67, 4,196, - 64, 2,204, 5, 17,100, 64, 14, 40,160, 0, 10, 97, 57,148, 64, 25,172,131, 77, 80, 3, 59,160, 30, 26,160, 9, 14, 65, 43, 28, -131,211,112, 14, 46,193, 21,232,131,187,208, 15, 67,240, 20, 70,225, 53,140, 35, 8, 66, 70,152, 8, 27,209, 65, 12, 17, 51,196, - 6,113, 66,120,136, 55, 18,136,132, 33,209, 72, 2,146,130,164, 35, 50, 68,133, 20, 34, 43,144, 50,164, 18,169, 65,118, 33, 13, -200,247,200, 81,228, 52,114, 1,233, 69,110, 35, 3,200, 8,242, 59,242, 30,197, 80, 6,202, 65,245, 81,115,212, 30,229,161,126, -104, 40, 26,131,206, 65,211,209,121,232, 66,180, 24, 93,139, 86,163,117,232, 1,180, 5, 61,141, 94, 66,251,208,126,244, 41, 58, -134, 1, 70,199,184,152, 17,102,139,241, 48, 62, 22,129, 37, 98,105,152, 2, 91,130,149, 98, 85, 88, 29,214,132,181, 99, 93,216, - 53,172, 31,123,134,189, 35,144, 8,108, 2, 78,176, 37,120, 18, 66, 8,179, 8, 34,194, 60,194, 18, 66, 57,161,134,176,143,208, - 66,232, 36, 92, 35, 12, 16, 70, 9,159,136, 76,162, 30,209,134,232, 65, 20, 16,227,137,233,196, 2, 98, 9,177,138,184,135,120, -132,120,150,216, 71, 28, 34,190, 38,145, 72, 92,146, 5,201,141, 20, 66, 74, 32,101,146, 22,145,202, 73,219, 72,205,164, 83,164, - 94,210, 32,105,140, 76, 38,235,144,109,200, 94,228, 8,178,144,172, 36,151,144,183,144, 15,144, 79,146,175,146,135,200,111, 41, -116,138, 33,197,137, 18, 68, 73,164,200, 40, 69,148, 42,202,126,202, 9,202, 85,202, 48,101,156,170, 65, 53,163,122, 80, 35,168, - 98,234, 2,106, 5,181,158,218, 78,189, 76, 29,162,142,211, 52,105, 22, 52, 47, 90, 12, 45,147,182,156, 86, 77,107,162,157,165, -221,163,189,164,211,233,198,116,119,122, 20, 93, 74, 95, 70,175,166, 31,164,159,167, 15,208,223, 49, 88, 12,107, 6,159,145,196, - 80, 49,214, 50,246, 50, 78, 49,110, 51, 94, 50,153, 76,115,166, 47, 51,145,169,100,174,101, 54, 48,207, 48, 31, 48,223,170,177, -213,236,212, 4,106, 98,181,165,106,181,106, 45,106, 87,213,158,171, 83,213,205,212,253,212,231,170, 47, 84,175, 82, 63,172,126, - 89,253,153, 6, 85,195, 92,131,175, 33,212, 88,162, 81,171,113, 84,227,166,198,152, 38, 91,211, 81, 51, 66, 51, 71,179, 92,115, -191,230, 5,205,199, 44, 50,203,156, 21,200, 18,179,138, 89,187, 89,103, 88,131,108,140,109,194,230,179, 69,236, 21,236,122,246, - 89,246, 16,135,196,177,224, 8, 56,153,156, 50,206,119,156, 30,206,168, 22, 75,203, 89, 43, 86,107,190, 86,173,214,113,173,126, - 46,198, 53,231, 10,184,217,220, 10,238, 33,238, 13,238,251, 73,250,147,252, 38, 73, 38,173,153,212, 52,233,234,164, 55,218,147, -181,125,181, 37,218,165,218,205,218,125,218,239,117,112,157, 64,157, 44,157,245, 58,173, 58,247,117, 9,186,214,186, 81,186, 5, -186,219,117,207,234, 62,155,204,153,236, 57, 89, 52,185,116,242,161,201,119,244, 80, 61,107,189,104,189, 69,122,187,245,186,245, -198,244, 13,244,131,245,229,250, 91,244,207,232, 63, 51,224, 26,248, 26,100, 26,108, 52, 56, 97, 48, 98,200, 54,244, 54,148, 26, -110, 52, 60,105,248, 4,215,194,253,240,108,188, 26,239,196, 71,141,244,140, 66,140, 84, 70,187,140,122,140,198,141, 45,140,103, - 25, 23, 25, 55, 27,223, 55,161,153,240, 76,210, 76, 54,154,116,152,140,154, 26,154,134,155, 22,154, 54,154,222, 49,163,154,241, -204, 50,204, 54,155,117,153,189, 49,183, 48,143, 51, 95,101,222,106,254,216, 66,219, 66, 96,177,208,162,209,226,158, 37,211,210, -199,114,158,101,157,229,117, 43,146, 21,207, 42,203,106,155,213, 21,107,212,218,197, 58,195,186,214,250,178, 13,106,227,106, 35, -181,217,102,211, 59,133, 56,197,125,138,108, 74,221,148,155,182, 12, 91, 63,219,124,219, 70,219, 1, 59,174, 93,152, 93,145, 93, -171,221,115,123, 83,251, 68,251,245,246, 93,246,159, 28, 92, 28,178, 29,234, 29,238, 58,178, 28,167, 59, 22, 57,182, 59,254,238, -100,237, 36,114,170,117,186, 62,149, 57, 53,104,234,210,169,109, 83, 95, 56,219, 56, 75,156,183, 59,223,114, 97,187,132,187,172, -114,233,112,249,232,234,230,170,112,109,114, 29,113, 51,117, 75,113,219,234,118,147,199,225, 69,242,202,121,231,221,137,238,254, -238, 75,221,143,185,191,243,112,245, 80,122, 28,242,248,205,211,214, 51,203,115,191,231,227,105, 22,211, 36,211,234,167, 13,122, - 25,123, 9,189,118,121,245,123,227,222, 41,222, 59,189,251,125,140,124,132, 62,117, 62, 15,125, 77,124,197,190,123,124,135,253, -172,252, 50,253, 14,248, 61,247,119,240, 87,248, 31,241,127,195,247,224, 47,230,159, 10,192, 2,130, 3, 74, 3,122, 2, 89,129, -179, 2,107, 2, 31, 4, 25, 7,165, 7, 53, 6,141, 6,187, 4, 47, 10, 62, 21, 66, 12, 9, 13, 89, 31,114, 83,160, 47, 16, 9, - 26, 4,163,211,221,166, 47,158,222, 25,202, 8,157, 25, 90, 19,250, 48,204, 58, 76, 17,214, 30,142,134, 79, 15,223, 16,126,111, -134,217, 12,217,140,214, 8,136, 16, 68,108,136,184, 31,105, 17, 57, 47,242,199, 40, 82, 84,100, 84,109,212,163,104,199,232,194, -232,174,153,236,153,201, 51,247,207,124, 29,227, 31, 83, 17,115,119,150,229, 44,213,172,142, 88,245,216,164,216,134,216, 55,113, - 1,113,149,113,253,241,246,241,139,227, 47, 37,232, 38, 72, 19,218, 18,201,137,177,137,123, 18,199,102, 7,206,222, 52,123, 40, -201, 37,169, 36,233,198, 28,139, 57,243,231, 92,152,171, 59, 55,123,238,241,100,245,100, 97,242,225, 20, 98, 74, 92,202,254,148, - 15,194, 8, 97,157,112, 44, 85,144,186, 53,117, 84,196, 23,109, 22, 61, 21,251,138, 55,138, 71, 36, 94,146, 74,201,112,154, 87, - 90,101,218,227,116,175,244, 13,233, 35, 25, 62, 25, 85, 25,207,164,124,105,141,244, 69,102, 72,230,142,204, 55, 89, 17, 89,123, -179, 62,103,199,101, 55,231, 80,114, 82,114,142,202, 88,178, 44, 89,103,174, 65,238,252,220, 94,185,141,188, 68,222, 63,207, 99, -222,166,121,163,138, 80,197,158, 60, 36,111, 78, 94,155,146,163,148, 43,187, 85,150,170,149,170,129,124,239,252,218,252,183, 5, -177, 5,135,231,107,206,151,205,239, 94, 96,189, 96,205,130,225,133, 65, 11,191, 93, 68, 88, 36, 90,212, 81,104, 84,184,188,112, - 96,177,223,226, 93, 75,144, 37,169, 75, 58,150,154, 44, 45, 94, 58,180, 44,120,217,190,229,180,229, 89,203,127, 42,114, 40,170, - 44,122,181, 34,110, 69,123,177,126,241,178,226,193,149,193, 43, 27, 75,212, 74, 20, 37, 55, 87,121,174,218,177,154,176, 90,186, -186,103,205,212, 53, 91,214,124, 42, 21,151, 94, 44,115, 40,171, 42,251, 80, 46, 42,191,248,141,227, 55,213,223,124, 94,155,182, -182,167,194,181, 98,251, 58,210, 58,217,186, 27,235,125,214,239,171,212,172, 92, 88, 57,184, 33,124, 67,203, 70,124, 99,233,198, - 87,155,146, 55, 93,168,114,174,218,177,153,182, 89,181,185,191, 58,172,186,109,139,233,150,117, 91, 62,212,100,212,244,213,250, -215, 54,111,213,219,186,102,235,155,109,226,109, 87,183,251,110,111,218,161,191,163,108,199,251,157,210,157,183,118, 5,239,106, -169, 51,175,171,218, 77,218,157,191,251, 81,125,108,125,215,183,188,111, 27,246,232,238, 41,219,243,113,175,108,111,255,190,232, -125,157, 13,110, 13, 13,251,245,246, 87, 52,162,141,170,198,145, 3, 73, 7,174,124, 23,240, 93, 91,147,109,211,174,102,110,115, -217, 65, 56,168, 58,248,228,251,148,239,111, 28, 10, 61,212,113,152,119,184,233, 7,179, 31,182, 30, 97, 31, 41,109, 65, 90, 22, -180,140,182,102,180,246,183, 37,180,245, 30,157,126,180,163,221,179,253,200,143,118, 63,238, 61,102,116,172,246,184,214,241,138, - 19,180, 19,197, 39, 62,159, 92,120,114,236,148,252,212,179,211,233,167, 7, 59,146, 59,238,158,137, 63,115,189, 51,170,179,231, -108,232,217,243,231,130,206,157,233,242,235, 58,121,222,235,252,177, 11, 30, 23,142, 94,228, 93,108,189,228,122,169,165,219,165, -251,200, 79, 46, 63, 29,233,113,237,105,185,236,118,185,237,138,251,149,246,222,105,189, 39,174,250, 92, 61,125, 45,224,218,185, -235,130,235,151,250,102,244,245,222,152,117,227,214,205,164,155,253,183,196,183, 30,223,206,190,253,226, 78,254,157,241,187,203, -238, 17,239,149,222,215,184, 95,245, 64,239, 65,221,207, 86, 63, 55,247,187,246, 31, 31, 8, 24,232,126, 56,243,225,221, 65,209, -224,211, 95,242,126,249, 48, 84,252,136,249,168,106,216,112,184,225,177,211,227, 99, 35, 65, 35, 87,158,204,126, 50,244, 84,254, -116,252, 89,201,175,154,191,110,125,110,249,252,135,223,124,127,235, 30,141, 31, 29,122,161,120,241,249,247,242,151, 58, 47,247, -190,114,126,213, 49, 22, 57,246,224,117,206,235,241, 55,165,111,117,222,238,123,199,123,215,245, 62,238,253,240,120,193, 7,242, -135,234,143, 86, 31,219, 63,133,126,186,247, 57,231,243,231, 63, 0, 3,152,243,252,228,233,233, 61, 0, 0, 0, 6, 98, 75, 71, - 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, - 0, 0, 0, 7,116, 73, 77, 69, 7,219, 4, 4, 19, 16, 22,110,185,205,242, 0, 0, 32, 0, 73, 68, 65, 84,120, 94,236,189,123, -180,109, 87, 93,231,249,249,205, 57,215,115,239,115, 78, 94, 36,225, 37, 33,188, 21,161, 48,160, 85, 42, 74, 73, 40, 69, 75, 27, -149,132,194, 6, 44, 69,161,203,238,174, 70,187, 17,170,171,122,104,141, 18, 5,202,106,180, 91,233, 38,165,229,168, 82, 75,139, - 72,169, 77, 15,149, 78,240, 5,104,161,166, 4, 31, 32, 96, 66,124, 0, 9, 33,185,185,231,236,189,215, 99, 62,126,253,199, 92, -231,220,115,111,238, 59,185, 33,129,245,201,216, 57,247,156,189,246,218,115,174, 53,215,252,254, 94,107, 46,152,153,153,153,153, -153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, -153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,121, 80,176,103,218,224, 1, 70,166, 87, 13, 92,109, 12,143, - 80,101, 3,248,233,239, 51, 51, 51, 51, 51, 51, 51, 15, 3, 4, 48,198,200, 19,255,249,117,207,252,197, 15,252,232,139, 62,253, -103, 63,246,205,119,255,240,203,190,228, 87, 75,103,174, 57,180,205,204,204,204,204,204,204,204,121,240, 96,122,234, 2,148,223, -243,194,167,188,225, 71, 95,252,212, 87, 92,225,187,197, 35,182, 23,205,115,191,236, 73, 79,249,202,167, 62,226,218,247,126,248, -142, 59,142,172,198,143, 2,202, 44,238, 51, 51, 51, 51, 51, 51,231,204,131, 41,234, 6,104,191,250,170,230, 91,255,193,229,225, -233,221, 93,247,224,143,220, 77,232, 6,158,252,228,199, 93,252,226,175,124,194, 55,126,228, 19, 71,236,199, 62,185,251, 65,160, - 99, 22,246,153,153,153,153,153,153,115,226,193, 20,117, 1,170,247,223,190,123,199,165, 59,229, 51,190,226, 9,219, 87,106, 80, -226,222, 46, 97,111,143,139, 47,191,220,189,244,249, 95,248,213, 49,133, 39,189,247, 67,119,252, 49,112, 55,179,176,207,204,204, -204,204,204,156, 53, 15,166,168, 3,136, 42,123,191,246,161,163, 31,184,179,139,151,190,224,105, 23, 61,185,182, 14,223,117,196, -123,239,129,170,229, 5, 95,241,133, 79,123,198,227,118,158,247, 59,127,246,201,219, 87,125,184,237, 76, 59,156,153,153,153,153, -153,153,201, 60,216,158,240,126,229,251, 14,240,152,175,124,226,214,183,255,220, 75,175,254,174,199, 53,174,222,108, 60, 88,139, -121,212, 85,212,143,125, 44,183,126,242,238,221, 87,255,196,111,255,200,187, 63,240,137,183, 2,123,211,231,245,148,123,126, 8, -160,170,215, 0, 23, 79,191,222, 38, 34,159,211, 70,201,231, 91,127,103,102,102,102, 30,234, 60,216,162,190,143, 1,182,129, 43, -174,220,118,223,244,159,190,253, 9,223,247,149, 87, 46,174,236,187, 8, 36,228,138,199,208,124,193,227, 25, 53,241,191,252,204, -251,254,195,255,249,171,127,250, 47,128,191, 33,183,247,126, 11,187,170, 94, 13, 92,125,166,237, 38,142,136,200, 45,103,218, 8, - 64, 85,111, 2,174,157,126,125,189,136,188,233,116,219, 63,220,249, 92,233,239,100,156, 92, 75, 54, 80,246,239,196, 0,184, 5, -184, 13,184, 81, 68,142,156,236,179,231,130,170,158,184,255,179,229,172,199,224,204,204,204,231, 55,238, 76, 27,156, 2, 3, 36, - 96,235,210,101,241,197,151, 46,220,165, 73,229,192, 64,144,233,127, 34, 34,186,255, 23,217,255,251,193,187, 14,104,125,212,238, -123,127,237,211,191,241, 99, 47,122,236,139,190,252,242,197, 69,163, 87, 56,114, 55,125,187,164,184,244, 10,254,143, 87, 63,239, - 21,215, 60,241,138,167,188,230,109,191,251,218,123, 87,227,123,121, 96,132,253, 58,224,141,103,218,104, 31, 85, 5,184, 17,184, - 89, 68,110, 56,195,230, 51, 15, 3, 38, 33,191,110,122,157,202,192,219, 55, 88,222,166,170, 55,144, 13,151,251, 35,238,215, 0, - 55,157,105,163,147,112, 51,240,130, 51,109, 52, 51, 51, 51,115, 62,162, 46,128, 44, 42,123,205, 15,189,240,113, 63,252,210,103, - 94,254,188,157,166, 40,147,152, 44,216,198,228,151, 8,226,236,113,191, 99, 12, 98,237,177,223, 37,191,151, 16,245, 42, 41, 56, -135, 57,180,159, 16, 61,169, 19,190,253, 5, 79,255,178,103, 61,241, 17,239,120,229, 91,110,254,129, 63,250,232, 93, 63, 3, 12, -220,127, 97, 63, 87,174, 3,174, 83,213,235,128,235,239,231,228, 62,243,217,231,143,206,180,193, 9,188, 10,184, 86, 85,175,159, -189,230,153,153,153,135, 42,231, 35,234, 0,143,120,243, 55, 62,254, 45,223,243,229,143,126,238,184, 73,104, 18,172, 17,192,128, - 74,126, 97,144, 36, 89,122, 21, 48,146,125,251,164, 96, 65, 68,178,191,175, 96, 69,196, 25,177,147, 71,156, 69, 93, 1, 85,146, - 8,195,102,228, 25,143,187,252, 17, 55,253,240,183,252,196,247,188,245,183,158,244, 11,191,249,209, 31, 1,238,226,129,241,218, - 33,123, 66,167,226, 90,142,231, 90,224, 38, 85,125,193, 44,236,159, 51,220, 66,142,196,220, 34, 34, 55,195, 65,168,252, 90, 38, - 49,159,182,187, 26,120,187,170, 62,251, 1, 58,247, 55,144,195,251,103,226,129,248,174,153,153,153,207, 3,206, 71,212,165, 42, -204,213,255,240,105, 23, 63, 71,215, 30,223, 15,144, 82, 22,233,131,200, 58,211,107,255, 31, 10,214, 96, 46,189,124, 18,247,132, - 24, 32, 77, 81,124,129, 3,133, 55, 41, 11,191, 49, 16,201,245,249, 2,227,224,217, 41, 75,243, 31,191,255,235,191,247, 57, 79, -185,242,139,255,217, 79,189,239,251, 7, 31, 63,112,236, 11,206, 31, 17, 57,109,104,115,242,206,223,200,177, 48,237, 53,228,201, -254, 97,153, 67,158, 57,224, 6,224,134,147,121,222,147,104,223, 8,220,168,170,111, 35,159,111,200, 99,224,129, 58,247, 55,238, - 27, 17, 51, 51, 51, 51, 15, 4,230, 76, 27,156, 4, 59,250,116,247, 47,254,201, 93,239, 23, 51,176, 40, 35,139, 6,218, 90,167, - 87, 58,246,239, 42, 81,155, 17,162, 71,170, 54,139,124, 74,144, 18, 7, 94, 57, 0, 35,164, 30, 82, 7,218, 3, 67,254, 93,199, -105,123, 69, 53,225, 99, 34, 12,145,239,253,214,231, 92,123,211,155,191,245, 87,174,186, 98,251, 91,200,178,127, 62,253, 56,107, - 68,228, 70,114, 78,243,176,199,116,221, 41, 54,159,121,120,240, 2, 17,121,245,217,132,210, 69,228,213, 28,239, 81,191,238, 84, -219,206,204,204,204,124, 54, 57, 31, 79, 29,133,187, 95,247,171,183,255,192,175,253,217,103,190,229,105, 87, 54,143, 19, 48, 73, - 53,229,119,133,164, 89,178, 55, 99, 50,207,250,130,173, 47,252,238,175,122,226,213,181,171, 77, 74, 9,172,205,190,117, 74,232, -184, 66,172, 96, 30,251, 76,204, 35,158,136,108, 95,137,212,219, 16, 6,210,250, 46,116,239, 83,164,187, 62, 10,161, 3,105, 80, - 34, 81, 33,173, 70,158,251,244, 47,248,130,119,189,249, 91,127,250,235, 94,255,159,237,199, 63,117,244, 29, 28, 43,222,187, 32, -136,200,109,170,122, 35,199, 60,182,243,169, 98,190, 15, 39,169,136,190,229,129, 8,237,158, 80,225,127, 94,183,155, 61, 16,251, - 56,145, 11,209,223, 19,218,121, 86,251, 59, 15, 15,249, 6,142, 21, 87, 94,172,170,215,156,141, 65, 48, 51, 51, 51,243, 96,114, - 62,162, 30,129, 53,240,225,223,185,117,245,150,223,185,117,213,112,242, 69,108, 46,125,225, 51, 46,127,229,183, 60,251,241,143, -108, 77,105, 66,210, 28,122,239,123,116, 88, 67, 92, 99,159,252, 92,220,179,191, 13,251,248,191,123,159, 15,239,187,222,122,207, -237,132, 91,223, 77,252,171,247, 33,182, 4, 85, 84, 96,220,140, 60,249, 81,151,238,252,202,191,252,111,126,242,249,175,125,251, - 61,159, 57,218,255, 38, 15, 64, 40,254, 12,220,111, 81,131, 3, 97,123, 21,217,219,191,143,113,160,170,183,113, 44, 52,124, 82, -129, 82,213, 55,114,236,179, 55,138,200, 13,135,246,251, 42, 78,168,232,158,246,249,166,179,169,222, 87,213, 87,145,189,209,147, -237,227,180,237, 58, 25,247,183,191,167,233,235,235,200,251,221,191, 87, 30, 46, 92,165,248,137, 2,126,248, 59,103,102,102,102, - 30, 18,156,143,168, 39,160, 7, 2,121, 81,152, 41,235,125,112,207,187,138,240,133,111,122,241,147,127,240,181,207,187,234,121, -113,132, 49, 70,212, 15,104,191,129, 48,128, 83,170,175,255,103,184,103,191,244, 20, 95,113, 12,185,228, 42,138, 75, 94,137,185, -242, 25,132, 63,252, 41, 48, 17,200, 21,242,227,198,243,140, 39, 61,242,178,183,252,147,231,189,249,229,111,252,141,111, 1,254, -154, 11, 43,234,135, 39,242,179, 22,181,195,168,234,181,192,219, 57,189, 40, 92, 77,246, 10, 95,117,154,106,235,253,123,171, 1, -110,214,124,139,214,219, 56,117, 4,225,106,242,173, 89,215, 76,225,228,251, 48, 9,229,219, 56,117,106, 97,191, 93,215,169,234, - 89, 9,231, 3,212,223,147,245,245, 38,102, 97,157,153,153,153, 57,142,243, 17,117,200,194,233,167, 23, 28, 19,116,251,184,203, -234,111,124,219, 75,159,250,166,175,125,242,101, 79, 26,186, 68,140, 30,134, 14,130, 7, 81,164,128,234,155,127, 4,251,244,111, - 56,216,217,110, 55,240,174, 15,220,206,187, 62,120, 59,247,172, 58, 10, 43, 60,237, 81,151,240, 77,207,126, 34, 95,242,132, 71, -230, 29, 63,246, 57, 72,185,133,127,239,191,129,210,229, 38, 24, 33,172, 6, 94,246,252,167, 63,235,231,222,253, 23,175,124,215, - 31,222,254, 6, 46,208,237,110,147,224, 29, 22,187,115, 13,223,238, 23,220,189,253,132, 63,223, 66,222,215,190,145,112,216,155, -189,154, 99,149,246,167, 11,245, 94, 76,222,239,190,103,125, 35,199, 60,203,253,251,177,247,121,149,170,222, 38, 39, 95, 40,230, -141,220, 87,208, 15,239,107,191,109,215,112,223,126,220,135, 11,212,223,139, 57, 94,208,143,112,172,125,199, 69, 22, 30, 96, 78, -188, 11,226, 1, 9,189, 95,136,116,196,204,204,204,231, 47,194,253,103, 63,228,189,243,194,167, 95,242,189, 55, 92,255,148,239, -127,204,178,105,186, 81,209, 56,128, 31,242, 86, 70, 32,172, 41,190,250,187, 40,190,230,251, 14, 62,252, 95, 62,246, 41, 94,251, -243,239,225,182,207,236, 81, 87, 5,133, 51, 24,133, 20, 60, 46, 5,190,241,217, 79,224,127,187,238,185,180, 85, 1, 64,252,200, - 77,132, 63,254, 25,100,235,138,233,107,133,178, 44,120,255, 71, 62,113,199,223,251,167,255,241,235, 84,249, 51,114,138,224,148, -168,234,235, 56,180,248,140,136,156,246, 56,156,194,131,125,193,137,121, 89, 61,205, 10,107, 83,222,247,143, 56,180,172, 42,240, -234,147,229,118, 79,226,221,222, 34, 34,207, 62, 97,155,195,223,181,207,141,228,125, 30, 39, 10,211,119,191,157, 99,226,113, 4, -120,194,225,237,166,144,251,219, 14,125,236, 22,242,253,248,199,165, 28, 78,227,121, 95,176,254,158,162,175,183,145,191,243,198, -195,127, 84,213,139, 47,132, 40,170,234,173, 28,159,183, 63,238,124,156, 13, 83, 63, 15, 47, 62,115,132,147, 71, 27,110, 35,159, -203, 27, 78, 60,254, 51, 51, 51, 51,167,227,124, 61,245,125,246, 5,253,241,175,249,154, 71,255,171, 55,190,240,170,255,214, 37, -199,102,240, 16, 71,136, 33,139,185, 0, 26,145,203, 30,139,251,210, 87, 28,124,248, 99,119, 28,225, 21, 63,249, 46, 62,221, 5, -218, 69,131,183,150,162,176,148, 86,176, 90, 34, 49,240,142,247,255, 37,214, 24,126,232,219,158, 7,128,125,226,223, 39,126,228, - 55, 32,174,192, 53, 32, 16, 70,207,179,158,112,249,149, 95,250,180, 43,191,246,253, 31,186,227,195,228, 20,193, 89,123,235,147, -200,159,138,107,185,175,160,156, 84,156,206,192,219, 56,222,187, 60,229,189,206, 34,114,243, 20,222,222,247, 72,175, 81,213, 87, -157, 33, 31,126,179,136, 92,127,178, 55, 36, 23,249,189,158, 99,130,178,127, 15,246, 97, 65, 60,124, 12,110, 35, 27, 45,247,105, -223,161,182,157,105,241,150, 11,217,223,219, 56,197,254, 46,144,160,159, 88, 95,112,198,186,132,179,228, 84,233,131,171,201,231, -227,117,170,250,176, 93,126,119,102,102,230,193,231,254,136,186, 0,114,201,194, 61,255,173,215, 61,225, 71, 95,242,140,203,158, - 57,244, 48,136,135,148, 67,237, 20,230, 96, 75,245, 35,238,201, 95,133, 44, 47, 59,216,193,235,127,254,125,124,236,111,143,194, -206,146,163,171, 0, 18,177, 2,173, 21, 46, 91, 56, 46,110, 28, 59, 59, 75,126,229, 15, 62,198,243,190,232,113, 92,251,204,199, -131,117,216,171,191,138,240,129,127,143, 60,226, 42,208, 68, 18,161,108, 74, 94,242,188,167, 92,251,254, 15,221,241,239,128,123, - 56, 7, 81,231,236,151,140,189,129,243,184,183, 88,143,173, 45,190,207, 25,151, 27, 21,145, 91, 52, 47, 77,186, 47,182,215,114, -122, 49, 57,105,158,124,159, 73, 56,111,225,248, 80, 55,112, 16, 38, 63, 44, 90,111, 58, 93,251, 14,181,237, 85,156,132, 7,161, -191,167,109,223, 3,201,212,151,195,227,227,150, 51, 24, 87,103,203,254,186,242,135,195,248,135,215,160,223,231,141,170,122,181, -156,162, 14, 98,102,102,102,230, 48,231,115,127,247,126, 81,220,242,185, 79,216,250,190,247,253,247, 95,244, 75, 47,121,218, 37, -207,220,108, 34,145,152, 5,221, 0, 86, 16, 43,136, 19,196, 26,196, 9,230, 81, 79, 63,216,201,199,239,188,151, 95,255,192, 95, - 67,219,228,219,220,140, 1,107,137, 24,246,134,200,199,239,218,112,219,167, 55,120, 21,146,181,188,251, 79,255,234, 88, 3, 46, -123, 34,218,237, 2, 97,106,141, 66, 72, 60,245, 49,151, 60, 1,120, 36, 15, 76, 90,225,100, 92, 71,246, 34,207,181, 64,235,176, -192, 29, 57, 7, 81, 56,108, 60,156,238,190,248, 91,206, 50, 76,123, 88, 64, 14,183,233,184, 72,196, 89,182,239,184,176,247, 9, - 92,200,254,222,118, 14,251,187, 95, 76, 41,132, 19,195,229,247, 71, 92,143, 0,175, 39,167, 62,158, 45, 34,215,139,200,155, 14, -189,174, 23,145, 75,166,109, 14, 27, 45,175,154, 12,175,153,153,153,153,211,114,174,158,250,126,184,253, 81,223,249,119, 31,241, -131,111,253,198,199,125,119,145, 44,155, 49,129, 85,208,132, 40, 72, 18,212,202, 20,122,207, 31, 17, 87, 98, 46,254,130,131, 29, -221,126,215, 46,221,198,195,118,197,129,157,176,239, 91, 27, 3,170,220,187,242,248, 49,240,152, 29,199, 94,191, 95,147,199,148, - 79,183, 48,108,144,102, 11, 69, 33, 4, 30,127,197,214,229, 85,105,175, 28,198,248, 97,206,141,215,159,230,189,171,201, 34,117, - 53,217,131, 58,168,254, 62, 7,111,241,176,200,157,117,129,213,228, 93, 31,252,174,167,190, 55,250,108, 35, 7,167, 18,254,195, - 94,250, 89,237,235,196,182,157,192,133,236,239, 89,239,239,254, 48, 25,110, 39,214, 14,188,254, 20,199,255,172,152, 62,123,198, -207,139,200,155, 84,245,102,142, 79,113,188,145,211, 27, 82, 51, 51, 51, 51,231, 36,234, 2,176, 85,219, 47,255,215,223,240,152, - 55,191,250,154, 71,124,197, 56, 66, 95,228, 37, 95, 53, 42,226, 19,101,105, 56, 26, 99,106, 48, 6,103, 15,238, 96, 23, 0, 13, - 7, 59,187,124,167,197,150, 5, 49, 65, 94, 47, 94, 39, 81,159,126,170,128, 53,172, 55,158,191,234,123,170,103, 30,106,170, 70, - 80, 15,161, 7,179,141,104, 66, 83,226,146, 69,209,238,180,229,197,159, 30,187,115,138, 64,200, 89,228, 44,167,188,234,235, 56, -246,120,206,155,128,179, 45,150, 58, 92,221,124,181,230,194,175,243,225, 84, 17,130,179, 53, 46, 78,197,121,137, 48,121,219,147, -221, 66,119, 33,251,123, 46,237, 59, 47, 38, 65,191,137,227,251,241,234, 7, 43, 66, 0, 7,233,136,215,115, 44,244,127,181,170, - 94, 39, 39, 20, 6,206,204,204,204, 28,230,108, 68,125, 63,148, 93, 60,245,138,250,219,126,254, 37,143,127,211,151, 92,222, 94, -222,141, 9, 42,151, 5,221, 39,156, 79,148,141,229,159,191,251, 19, 31,124,220, 69,229, 69,223,125,205, 35, 30,215, 43,200,190, -183,238, 61,233, 51,127,137,121,236,115, 0,120,218,163, 47,229,203,158,116, 57,191,247,225,187,192,185, 44,226,102, 18,244,253, -117,225, 82,254,108,127,207,154, 39, 93,121,108,126,215,221, 79,194,176,139, 14, 23, 33,211, 19, 99, 52,237, 27, 5,152, 67,109, -126,192,152,188, 39, 56, 54,201,158,169,152,235, 48,135,197,233,106, 46,236,173, 87,247,151,115, 49, 16, 78,181,237,195,169,191, -199,113, 10, 65,127,253, 89,158,231, 7,154,195,171,216,193,195,232, 56,206,204,204,124,118, 56,147,168,239,135,219, 47,191,254, -239, 92,242,218, 31,255,250,199,252,211, 43,235,162,220, 36, 65,218,236,130,235,152,168,147,210,151,240, 63,190,243,175,222,121, -195,251, 62,253,203, 63,125,253, 85,223, 47, 58, 69,222,237, 84,253,238, 12,122,231,159, 29,236,216, 24,225, 95,124,243,179,249, -250, 15,253,191,208,123,168,202, 44,236, 48, 61,205, 13,208, 4,171, 13,207,250,194, 71,243,242,175,254,162,131,207,166, 79,127, - 24, 85,143,196, 49,111,168,138, 17,229,158, 85,223,237,110,198, 61, 46, 16,147,176, 31,158,100,175,227,220, 43,161,111,227,252, - 87,166, 59, 23,193,125,168,240,112,235,239,137,130,126,195,217, 68,114, 46, 4, 34,114,228,132,226,198,107,121, 96, 30, 36, 51, - 51, 51,243, 57,202,233, 68, 93, 0,113, 86,158,252,134,175,123,212,143,191,246,239, 93,249,181, 33,192,198, 25,164, 50,104, 82, -180,139, 44,156,112,251, 16,250,239,248,185,143,255,212,111,127,116,247,231,129,244,215, 71,253,157,136, 62, 85, 15, 60,117,160, -110,137,183,191, 23,119,228,118,228,226,171, 0,120,225,179,174,226,134,127,242,247,121,205, 79,191,135,205,189, 3,212, 21,216, -156, 79,103,244,176,233,248,146,167, 94,193, 47,189,246, 27, 88,212,249, 62,117,124, 71,252,208, 59,144,178, 2,137,160, 9, 77, - 17,140,225,214, 59,238,189,171, 31,227,254, 35, 89, 47, 20, 55,115, 44, 92,125,226,173,110,103,195,103, 77, 36, 62, 75, 60,108, -250,171,249,105,108, 39, 10,250,253, 41,140,123, 32,248,108, 24, 54, 51, 51, 51, 15, 83, 78,151,123, 22,224,242, 55,126,253,163, -127,242,251,191,226,202,175,237, 3,248,214, 33,141, 69, 19,176,137, 44,106,203,111,125,114,125,231,243,222,250, 23, 63,240,219, - 31,221,253,191,128,219,129, 79,124,228, 51,253, 71, 48, 2,113, 42,122,178, 38,135,216,195, 10,255,222,183, 28,247, 37,223,253, -252, 47,226,247,127,228,197,188,230, 31,126, 49,143,191,164,162, 86,207,210, 68,190,252, 73,151,241, 19,223,243, 53,252,238, 27, -174,227,241, 87,236, 28,108, 31,254,240,167,208,123,111,135,162, 66,167, 34, 60, 66, 4, 35,124,228,111,143,252, 21,249, 57,235, -251, 1,252,135, 10,167,170, 58,127,168,112,190,237, 59,213,182,231,187,191,207, 26,122,252,227, 85,225,161, 33,232, 51, 51, 51, - 51,231,196,105,195,239,143,189,184,124,222,119,124,241, 37,207, 31,251, 4,203, 2, 41, 5, 29, 21,219, 7,170,133,229,103, 63, -120,247, 95,252, 15,191,116,251,191,222,237,226,123,128,187,201, 15,122,169,127,247,214,189, 63,248,212,158,255,206,203,218,194, - 69,213,131,226,118,154,150,244,215,191, 75,120,223,143,225,190,226, 53, 7,223,243,140,199, 93,198, 91,190,243,171,248,145,151, - 7,238,184,103, 77, 89, 56, 30,117,201,226, 62,237,137, 31,250, 85,194,159,252, 44,212, 45, 0, 98, 44, 26, 19, 18, 19,190, 31, -120,199,123,110,125, 31,121, 61,250, 11, 41,234,231,147,215, 60, 46,132,170, 23,104,213,179,251,193,109, 28,107,223,169,214,142, - 63,142,233,254,237, 83,241, 80,239,239,113, 60,196, 5,253,124,139, 24,103,102,102, 62, 15, 57,157,167,238,174,186,164,122,210, -197,149, 37,164, 92,221,174,155, 72, 57, 70,164, 18, 94,251,174,191,185,249, 21, 63,123,235,255,188,219,197,119, 3,119, 2, 71, -129, 17,240,159,188,119,252,131,119,124,248,200, 7, 10, 7,218, 71, 64, 17, 67,190, 95,189,221, 34,254,201,127,192,223,252, 47, -208,205,103,142,251,194,186,112, 92,117,197,206,125, 5,221,119,196,247,191,149,240,158, 55, 32, 85,137, 88,155,243,245, 69, 5, - 62, 80, 24,248, 47, 31,249,212, 29,191,247,161, 59,111, 38,175,253,126, 65, 68, 93,143,127,196, 39,156,253, 36,123,226,109, 98, - 39, 93,180,229,179,200,225,246, 93,172,121, 57,211, 51,113,186,109, 30,234,253, 61,224,161, 44,232,154,151,238, 61,204,249,214, - 38,204,204,204,124,158,112, 58, 81,183, 31,186,179,251,232,223,142, 49,180,173,165,245,145,214,194,202, 38,125,217,219,111,251, -133, 31,189,233, 83, 63, 8,124, 16,248, 12,217, 67,207,234,157, 31,242,114,231,143,255,206,157, 55, 30,245, 17,231, 35,248,148, -171,230,166, 69,105, 88,108,145,110,253,117,198,119,188,130,248,231,239, 64,119, 63,113,210, 6,232,250, 46,210,173, 55, 51,254, -242,119, 18,254,248,223, 66, 93,131,117, 48, 85,225,137, 41,144,222,131, 85,126,232, 23,255,248,151,129,191,156,190,255, 1, 23, -245, 67,247, 45, 31,230,172,110, 47,154,110, 67, 58, 60, 33,191,238, 12,158,238,131,205,141, 28,159,187, 61,221,178,185,251,199, -226,148,219, 60, 12,250, 11,156, 84,208,111,225,244,107, 22,156, 22, 85,189, 90, 85, 95,119,232,117,237,161,247,206,105,193,162, -105,251,195, 69,153, 71, 56,203,241, 54, 51, 51,243,249,203,105,195,239,119,175,194, 31,190,228, 23, 62,254,166,215,124,213, 21, -215, 93,218,186,157, 15,127,166,255,219,255,251,189,159,126,231,159,127,114,243,255, 0,159, 2,238, 37,123,231,135, 69, 52, 2, -221, 95,222,213,255,250, 27,126,243,142,107,223,252, 13,143,125, 65, 88, 5,112, 6,169,236,177, 18,182,118, 27,194, 81,252,123, -127, 24, 41,151,200,165, 79,197, 92,242, 4,112, 53, 36, 79,186,247,175,209,187,254, 28,250,123,161, 40, 96,113, 44,175,158,111, -123, 51,232, 32,148, 75,195,191,191,249, 35, 31,250,255,254,235, 39,126,129, 28,122, 63,182, 74,205, 3,192,228,157, 95,203,125, -159, 47,126,132,115,171,124,127, 53,199,175,189,126,147,230,199,140,158,118,177,151,233,251,175,131,179,187,159,254,124,152,170, -172,223,196, 49, 17,185, 86, 85,223,118, 50,143,245,208, 45, 95,103, 18,169,135,108,127,225,148,130,126, 46, 11, 10,157,140,171, - 57, 94,136, 95,207,177,168,197, 53,154,215, 58,184,225, 76,247,154,235,177,199,232, 30, 62,198, 15,218,210,184, 51, 51, 51, 15, - 95, 78, 39,234, 30,184,231,247,111,219,251,119,191,127,219,222, 77,192, 22, 57,111,126, 7, 57,212,190,154,182, 57,113, 89,177, - 68,126,222,250, 29,255,230,221,159,122,203,179, 30,219, 62,254,165,207,188,244,137,221,238,136,108,151, 80,153,188,210, 28, 10, - 69,129, 20, 69,174, 96,191,251,131,132, 79,223,114,176, 59, 49, 14, 92, 9,139,229,241,123, 87, 96,140,104,106,168,171,146, 91, - 62,118,231,145,255,233,223,190,255,205,100, 47,189,227, 12, 79,104, 59, 25,170,167, 94, 26,237, 52,220,231,105,104,167, 67,242, -106,105,175,230,216,147,208,246,133,238,102,242,196,127, 56,148,191, 31,230,191,150, 99,185,233,243,246, 32,207,146, 27, 56,254, - 49,168,175,154, 60,205, 27, 56,214,182,107,201, 66,120, 49,217, 19, 63,194, 41,114,240, 15,229,254, 78,253, 58, 89, 74,224,237, -231, 48, 20,110, 60,143,123,215,175, 37, 27, 76,183,145,143,193,201,214,126,191,134,251, 46,145,123,203,133, 52,112,102,102,102, - 62,119, 56,157,168, 71,178,112, 7,178,136,155,233,111,195,244,218, 15,183,159,140, 0,172,146,234,159,254,119,191,248,241, 31, -186,116,225,222,240, 15,158,184,243,232,254,232, 8, 91, 5, 82,219, 99,247,175, 3,136,129,178, 62,253,125,104, 10, 36,133, 33, -146,118, 71,154, 71, 94,193,135, 63,117,100,117,253,155,126,231, 77, 71,215,254, 61, 28, 51, 50, 46, 52,183,144, 5,253,108,243, -233, 7,136,200, 13,122,108, 1,155,125, 47,236, 90, 30, 2, 21,226,147,183,126, 61,217,187,222,143, 72,156,232,121,238,115, 4, -184,254, 20,239, 29,240, 80,238,239, 73, 56,215,244,192, 89, 45,167,123, 10,174,230,236,235, 12,110,224, 2, 26, 56, 51, 51, 51, -159, 91,156, 46,167,174,100,113, 94,147, 39,241,123,200,225,246,205,244,247,211,185, 52, 74, 22,254,163,187, 93,252,237,111,190, -225,163,255,235,207,254,241,221,127, 81,151,134, 98,215,147,142,122,232,211,193, 94, 4, 65,228, 36,175,233, 63, 34, 48, 38,116, - 55, 32, 71, 6,154,139, 47,226,183,111, 59,122,199,215,254,192,205, 63,112,219,157,171,255, 76,110,219,134, 11,144, 75,159,184, -153, 60,185, 94, 47,249, 65, 28,231, 44,232,251, 76,222,221,179,201,251, 59, 27, 79,255, 70,114, 40,251, 92,189,194,115, 70,242, - 67, 97,246,219,118, 42,110, 38, 63,246,244,172,142,193, 67,185,191, 15, 50,251,249,250,179, 58,110,228,227,240, 2, 17, 57,167, -136,208,204,204,204,231, 55, 23,114,145, 22,200, 43,191,183,100, 47,237,139,190,227,203, 47,255,174,127,245,194, 71,127,211,163, -119, 74, 23, 6, 37, 56,129,218, 34,206,100,207,221, 28,106,142, 42, 68,208,144,160,143, 88,159, 40, 10, 97, 55,194, 15,191,231, -158,223,250,223,223,121,235,219,124, 76,127,200,177, 91,233,142, 45, 44,255, 48, 98, 10, 5,159,232, 37,222, 70,126,186,217,253, -241, 6,239, 23,135,106, 9,246, 61,236, 35,228,103,182,223,175, 10,236,135,106,127, 31,108,166,227,112, 53,247,173, 77,184,133, - 28,110,159,133,124,102,102,230,156,185,208,162, 14, 89,216,107, 96, 7,184,242, 11, 46,169,190,230, 85,207,189,252, 69,223,126, -205,101, 95,250,152,173,162, 64, 5, 85, 37,137,144, 14,181,198, 40, 24,213,124,235,154,192,221,125, 76,255,233,131,247,252,233, -219,222,247,233,119,254,201,223,172,127, 13,248, 91,114,228,160,227, 97, 42,232, 51, 51, 51, 51, 51, 51, 15, 36, 15,134,168, 67, -254,158, 18, 88, 0,219,192,149,151, 44,221,223,249,210,171,150, 95,250,226,103, 94,242,156,103, 62,186,125,228,197,149, 93, 44, -156,148,206,136, 9, 9,221,196, 52, 30, 29,211,230, 99,159,238,238,186,241, 3,247,252,215,223,187,109,245, 7,159,188,119,188, - 5,248, 4,176, 75,206,161, 95,176,123,210,103,102,102,102,102,102, 30,110, 60, 88,162, 14,249,187, 12, 80,145, 67,242, 45,185, -162,254, 18,224,138,182, 50,151,214,206,108, 23, 86,202,144, 52,244, 65,247, 54, 67,188, 91,149, 79,147, 67,236,187,228,188,249, -154, 51, 23,234,205,204,204,204,204,204,124,222,241, 96,138,250, 62,251,226, 94,144,189,247,253,151,227,224,233,235, 64,246,192, -253,244, 26,201, 66, 30,152,197,124,102,102,102,102,102,230,164,124, 54, 68,253, 48,251,171,194,155, 67, 63,247, 73,112,240,116, -117,101, 22,242,153,153,153,153,153,153,211,242,217, 22,245, 19, 57,220,158, 89,196,103,102,102,102,102,102,102,102,102,102,102, -102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 30,214,168,234, 67,109,109,135,153,207, 2,251, -227,224,225, 56, 30, 30,142,109,158, 57,123,228, 69, 47,122,209, 59, 49, 70,173,115,118,123,103,199, 42, 36, 69,195, 48, 12,106, -173,141, 85, 89,177, 94,175,147,247, 94, 83, 74,130,106,126,200,121, 2, 98,216, 95,237,205, 80,150,169,114,142,132,138,247, 94, - 68, 68, 4,149,194, 57,134,113, 80,146,106, 89, 87,148,101, 21, 68, 36, 24, 99, 8, 33,226,189, 79, 34,146,218,182,101, 24,122, -234,186,166, 31, 6,170,178,100,181, 90,153, 24,163,180, 77, 43,174,112, 98,172, 53,170, 68,231, 92, 24,135,209,132, 24,197, 90, -171, 41,165, 4, 98,140, 65,140,181, 54,165,100, 54,155,141, 69, 49,228,135,189, 37, 85, 85, 64, 52, 37,213,148, 60,170, 17,103, - 77, 93, 85,146, 98, 76,136,104, 81, 20, 9, 85,188,247, 70,193,166,148, 68,140, 25,173, 49, 94, 85, 36,165, 40,128,136,128, 42, -209, 88,139,181,214,132, 16,168,235, 90,134,190, 71, 85, 17, 17,170,162, 72,170, 42,170,138,130,136, 17, 20,193,136, 96,140, 33, -134,160,235,245, 74, 72, 73, 16,209,170,105, 84,196,184, 24,163, 17, 48, 34, 32,214,210, 52, 77, 74, 41, 69, 85,245, 64, 68,196, -105, 74,210,117,157, 90,107, 83,233, 74, 99,172, 49, 8,118,244, 35,101, 81,202, 48,142, 38,120,239,131, 15,201,216,188, 72, 95, - 10, 33,185,178, 50, 41, 70,147, 52, 9, 32, 77,211, 90, 99, 76, 49,142, 99, 97,140, 72, 81, 20,132, 24, 99, 12, 49,198, 24, 99, - 26,135,128,152,100,203,146, 24,131, 2, 52, 77, 75,140,193,146,212, 98,140,166, 24, 49,214,138, 17,172, 49,166,142, 41,133,186, - 44,147, 49, 70,197,152, 8,224, 67, 32,134, 0, 34,120,239,173,136, 72, 83, 85, 0, 66, 62, 22,164,148,108,225, 10,235, 67, 8, -198,152, 96,173, 21, 4,141, 41, 98,141,181, 49,198, 34,165, 36,198, 26, 9, 33,146, 98,212,148, 18, 34,130,177,198,107, 82, 10, -231,176,214,202, 56,142, 86, 85,169,171, 74,250, 97, 64, 68,196, 57,139,117, 78,140,136, 87, 77,253, 56,122,181,214, 74, 81,184, - 50,132, 96, 64, 72, 41, 73, 76, 81,157,117, 41,166, 68, 89, 20, 69, 74,201,168, 42, 33, 4, 81, 77, 24, 99, 83, 93, 87, 81,140, -213, 20,147,128, 98,173, 85, 85, 13, 73, 53, 10,168,170,106,138,193, 90, 99, 5,129,190, 31,196,123,159,202,170,242, 58, 13,198, -194, 57, 21, 17, 66, 8, 54,198,136,177, 6, 52,175,156,232,172, 53, 69, 89,210,117,157,169,235, 26,239, 71, 82, 74, 38,165, 36, -206, 57,140,177, 41,166,132,115, 86, 68,140,196,152, 8, 49,136, 51, 70,139,178, 8,154, 52, 57,107,211,122,179,161, 44, 11,107, -173, 3, 85, 73, 41, 50,250,160,206,218,100,114,155, 25,199,209,150,101,201, 56,142, 34,130, 56,231,140, 49,198,245, 67,111, 10, - 87, 56, 49,198,160,138, 15, 97, 52, 34, 49,132, 96,140,181,210, 52, 13,193, 7, 49, 34, 54,169, 26, 64, 5, 72, 41,145, 82, 10, -214,154, 0,146, 47, 77, 20, 17,131, 76,179,130,181,150,144, 98, 10,222, 39,103,157,186,178, 48,128, 9, 33, 48,122, 47,109,219, - 0,176, 89,173,109, 82,213,186,110,162,247, 62,150, 69, 17, 99,138, 41,198,136,170, 74, 83,215, 38, 95,211,138,115,142,164, 81, - 11, 87, 4, 31, 66, 66,140,166, 16,213,135,144,140, 49, 18, 83, 34,165, 40, 34, 72, 97, 11,131, 32, 41,165,252, 16, 72, 49,168, - 38,172, 53, 73,196, 36, 99, 13, 49, 4,107,172, 37,134, 40,154, 18, 73,213,136,136, 49,198, 88, 5,103, 68,204, 24, 60,198, 24, -113,206,217, 97, 24, 4, 69, 52,207, 25, 24, 99, 48, 34,136, 49,234,156,245, 41,166,100,140,164,148, 82, 12, 33,132, 24,147,148, -101,105,247,143, 25,130, 22, 69, 65, 74,137, 16, 66,112,174, 16,107,173,132, 16,108, 82, 21, 99, 76,190, 94, 84, 77, 74,201,166, - 20,197, 57, 7, 64, 8, 1, 31,252,168, 81,125,219,182,211, 53, 97,163, 24,241, 49,196, 81, 53, 37,231, 10,188, 31,147,136, 32, - 34, 41,132,160, 34, 66,254,250, 68,204,115,169, 53,198,152, 73,244,213, 57,171,249, 18, 53,196, 24, 41,138,194, 42,152, 24,130, - 5,138,148,146, 3,108, 81,150, 70, 83,114,195, 48,104,254,184,166,162,112, 41,132,168,144, 47,136,148, 82,180,214,170,136, 80, -148, 5,133, 43,152,222,179,170, 74,140, 49,166,152,210,254, 92,137,130,181,118,127,124, 73, 76,209,146,212,133, 24,141, 32, 41, - 75, 1, 70,192, 41,152,148, 18,198, 26, 66, 8, 88,147,127, 26, 99, 16, 17, 92, 81,160,154, 72, 49, 33, 34,162, 40,130,164, 24, -227, 8, 36, 85, 69, 85, 35,228,201,189, 44,203, 36, 34,201, 90, 27, 99, 74, 18,125, 16, 31, 60,136,224,156, 75,198,152,164,170, -234,189,199,123, 15, 40,154,123,106,243,252,110,197, 24, 73,227,152,143,119, 81, 20,140,163,183,160,249, 2, 64,172,136, 56, 80, -151, 82,210,148,146, 26, 99,146,181, 70, 67,136, 41,132, 16, 81, 77,206, 21, 89, 79,140,193, 26, 67, 74,202, 56, 14,178, 92, 46, -196, 57, 39, 73,147, 76,199, 78,234,186, 46, 69,164, 80,212,200,139,255,209, 63, 58,202, 36, 68,198, 90,163,104, 82,160,109, 22, - 82,148, 46,197, 20,117,236, 71,181, 69,193,122,181, 18, 64,130,247,200, 56,130, 49,186,223,163,164, 9, 91, 22,136, 88, 89,110, -111,137,247,158,245,106,143,182,109,232,214,107, 92, 93,169,247, 94, 76, 34,137,179,105,123,107, 11, 48, 42,249,201,171, 24,147, - 7,207, 56,142, 84, 85,197, 56,142, 24, 99, 56,122,244,168,160, 72, 89, 87, 52,117, 3, 24,181,206,168, 49,134, 49, 68, 41,172, -165,235, 58, 45,139,130,193,143,121,114,115,133, 25,251, 94,218,118,145,175, 4,129, 97,136, 24, 7,133, 45, 88,237,173, 99, 12, -163,154,124,122, 5,231, 40,203, 50,141, 93,167, 34,194, 69, 59,219, 2,198, 68, 77,236,237,237,233,246,246,118, 26,199, 81,179, -237,226, 88,173,214, 41,145,216,106,183,101,181, 89,137, 17, 97,107,107, 75, 54,155,142,162, 40,112, 70,216,221,221, 37,165,168, - 70,133, 40, 73, 16, 75, 89,215,212,101, 73, 34,177, 58,186, 2, 18,139,182,213,222,123,146,247, 32, 98,156, 43,164,105,106, 49, - 54, 47,131, 47,198,176,238,186, 24,198, 49,138,170,184,186, 38,198, 32,154,148,210, 21,218,182, 45,123,187, 71,141,117, 78, 20, - 72, 41,210,182, 11,185,247,222,123,163,136,104, 76, 72, 93,186,212,111, 58,182,118,118,196,154, 60,255,238,173, 55,162,154, 68, - 68, 76,211, 44,108, 81, 8,123,123,107,209,164,201, 21, 46, 13,163, 87, 17,163,181, 51, 58,166,188,184,159,179, 14,213,128,113, -133, 56, 99,179,225, 33,162,146, 23, 2,148,105,144,166,177,239,247, 39, 51,196, 88, 98, 76, 44,151, 11, 52, 37, 66, 74,178, 94, -175,217, 94, 44,100,111,179, 65,128,162, 40,180, 44, 10,193, 58,237,250, 46, 57,231,132,164,132, 24,104,234,154, 24,163,108, 54, - 27,113,206,137, 15,249, 41,187,206, 57,181,214, 72, 85, 84, 32,176,238, 58,109,202, 26, 17,197, 24, 35,128,236,237,237,177,181, -181,197, 62,125,223, 17, 66,208,178, 44, 21, 72,227, 56,178,216, 90, 72,191,233,141,115, 78,202,178,212, 97,232, 84, 48,136, 49, - 98,140,145,162, 40, 36,248, 32,171,245, 10,231, 44,117, 89, 39,175, 17, 13, 17, 48, 88,103, 53,132, 17,148,100,156,211, 48,142, - 36,205, 6,134, 49, 34,170, 42, 97,140, 72, 33,154,148,148, 98,212,229,114, 59,105,138,210,117,157, 44,151, 75, 73, 33, 74, 63, -246, 44,154, 86, 49, 70,251,126, 64, 53, 73,211, 52,178,183,183, 71,190,128,145, 24,188,110,111,111, 43,130,174, 86, 27, 98, 10, - 44,151, 91, 6,144, 16,163, 90, 81,173,203, 38, 41, 74,223,247,200,244,115,185,189, 35,221,106, 37, 33, 37,182,182,150, 8,162, -187,123, 43, 77, 41, 98,173,165,170, 10,233,251, 65,202,186,164, 46,107, 70, 31, 12,146,100,232, 6,105,155,214,142, 49, 36, 17, - 73,146,167, 81, 77, 33, 74,219, 46,100,189, 94,171,106, 36, 69,149,124,254, 17, 64,155,170, 73, 42,170,195,144,231,204,113, 12, - 76,154,143,136, 80,215, 53, 77,211, 32, 70,180,235, 58, 77,160, 22, 36, 29,136,190, 33,248, 64, 85, 85,248, 16,232,215, 61, 69, -229,212, 26,171,198, 26, 5, 48,198,176, 94,109, 68,242, 68,169, 34, 34,219, 59,219,154, 82, 74, 49, 70, 85,205,162, 20,162, 18, -131, 23,177, 6, 81, 88,119,107, 49, 98, 76,221,212,106,197, 72,240, 35,195,224, 49,198, 80,213, 21,227, 56,170, 49, 70, 5,165, - 44,107,137, 41, 72, 30,163,213, 65, 31, 85, 84,194, 56, 10,226, 36,165,128, 70,149,162, 42, 37,198,132, 21, 68, 69,196, 57,167, - 86, 12, 74, 82,239,125,244, 49,138, 31, 70,221,218,218, 74, 49, 70, 29,186, 94,140, 19, 69, 39, 93,215, 40, 69, 97, 68, 36,207, -103,174, 40,212, 26, 43,131, 31,166,227,155,143, 95, 85, 86,136,136, 32, 70,172,129, 24, 2,174, 40,180,239,187, 52,142,158,170, -172, 52,132,160, 85,213,164,164, 49, 86, 85,153, 84, 84, 83, 8,234,125, 36,198,132,106, 62, 62, 77,211, 96,173, 48,142,163, 58, - 87,106, 74,201, 84, 85,101, 68, 68, 82, 74, 2,164, 16, 70,170,170, 65, 68, 88,175,215,162,170,214, 57, 35,101,153, 13,170, 97, - 24, 12, 96, 98,140,120,239, 89, 46,151,108, 54,155,148, 82,164, 40, 10,169,235, 70,214,235,181,214,117,173,198,144, 48,134,232, - 35, 24,104,235, 6, 85, 36,165,164,206, 57, 69,209, 4, 98, 68,166, 99,173, 26, 99,144,148,144,245,106,133, 24, 35, 62, 4, 17, -144,162,176,106,140, 69, 85,197, 24, 43,162,136, 58,136, 62, 34,198, 16,194, 72, 81, 20, 84, 69, 37,123,123,123,212, 85,133,171, - 42, 52, 70, 82, 74, 88,107, 53,134, 16, 93, 81, 98, 12,164,148,109,113, 64,173, 21,233,199, 49, 37, 31, 53,229,246, 25, 72,196, - 56,205,131,165,211, 24, 83,210, 20,113,198,226,202,146,113, 28, 40,139, 34, 27, 34, 70, 36,166, 68,240, 65,247,246,246,212, 90, -199,114,185, 16,107,140, 12,163,151,162, 40,196, 90,179,223, 71,233,251, 65, 55,155,141,170,170,150,117,137,136, 17,174,172, 0, - 0, 32, 0, 73, 68, 65, 84, 17,203,208,245, 74,202, 13, 2, 37,198,124,173, 26,131, 24, 83,224, 74, 35,206, 24,170,166, 33,197, -196,102,179, 49, 34, 98,170,178, 18,121,217, 63,254,199,169,176, 22, 87, 85, 34, 36,134,209,171, 40, 98,156,209,110, 51,224, 42, -167,126, 12, 84,101, 73,239,189, 20,214,230, 11,237,200, 17,196, 24,133,108, 6, 72, 81,208,182, 11,182, 46,222,146,187, 63,115, - 15, 33, 69,210, 56,130, 40, 34, 14,209, 68, 82, 69, 69,213,136, 85,227, 28,146, 80, 33,129,177,164, 20,105,154, 10,107, 45,222, -123,234,186, 38, 37,208,164,146, 52,177, 94,173, 49,214, 96,140, 85, 99, 12,214, 57,140,113, 82,183, 13,253,102,163,227,232, 17, -201, 86,139, 8,236,236, 92, 36, 70,140,116,131, 7,141, 56,107, 69,213,168,146,152,188,117, 69, 32, 38, 48, 86,176, 34,186, 90, -173,168,219,154,194, 58, 17, 17,250,193, 83, 58, 7, 70,213, 76,226, 84, 20,133,134, 16,179,140, 25, 80, 4,107, 77,150, 54, 81, - 52,102,119,107,239,232, 81,234,166,226,232,238, 10,153, 44, 23, 99, 64, 85, 40,235,154,210, 58,250,177, 7, 17,173,202, 82,156, -113, 32,138, 38,149,117,183,198, 40,168, 8,117,219, 98, 64,119, 87, 43,173,155,134,182,105, 49,198, 72,140, 30, 5, 45,140, 35, -197, 40,187,123,123, 44,150, 75, 17, 35, 72, 2,149,148,246,246,246, 72, 49,169,170,138, 88, 55, 9,104,137,113, 86, 52, 69,138, -170,148,190,239, 69, 35, 24,131,148,101,133,181,162,187, 71,247,112,133,211,177,235,243,136,154, 80, 17,154,197, 2, 35, 34, 67, -215, 35, 70,164, 93,180, 58,140, 30, 85, 21,141, 65, 84,149,173,173,133,110, 54, 61, 59,219, 59, 32, 50,121, 31,254,192,114,238, -134, 65,156, 49, 56,231,212,136,128, 49, 12, 93, 39, 82, 20, 26, 99,164, 42, 10,198, 16, 40,178, 97, 35,155,205, 70,139,178, 20, -128,194, 57,196, 90,140, 8,154, 18,137, 36, 34,194, 56,120, 29,135, 1, 1,156,115, 84, 85, 37,154,192, 24, 8, 41,177, 89,175, -105,219, 22, 85,212, 90, 97,179,233,181,169, 74, 66,138,146,141,108,161, 40, 44,206, 58,214,221, 26, 99, 44, 70, 84,196, 90, 74, - 87, 18, 99, 36,133, 64, 72,138,115, 86, 99,140, 18, 85, 41,157,197,217, 82, 49, 16, 83, 82,141,145,190,239,217, 90, 44,216,116, -157, 44, 22, 45, 49, 6, 48, 78, 37, 65,212,160,198, 89,192,144, 98, 22, 59, 35, 14,107, 21, 99, 10, 82, 8, 58,248, 0, 32, 49, - 6, 93, 44, 22,144,146, 36,178, 71,102,173,232,224,189, 24,177,140,227,136,181, 5,206, 57, 25,135, 78,155, 69, 67,142,168, 41, - 26, 19,117,211,208,111, 54, 84, 85, 35, 98, 64, 99,162, 31,123, 10, 91, 80, 55,181,238,238,238, 97,157,101,217, 46, 4, 3,187, -171, 21, 86,132,197,162, 21,128,148,162, 12,195, 0, 8,206, 57, 84, 85,187,110, 96,107,185, 64,172, 37,248,128,177, 22,163,199, -188,171,148, 2,128,218,201,203,240, 62,104, 24, 71, 73,192, 56, 14, 7,145, 44,107, 13,203,108,112,169,247, 35,195, 16,144,210, -192,152,112,149,195, 90, 39, 67,215, 81, 20,165,122,239,137, 41, 49, 41, 56,144,175, 39,231,140, 84,101, 61,141,133,200, 56,122, - 77,162, 16,243,100, 40, 34,186, 88, 44,241,126, 16, 68, 16, 21, 48, 16, 98, 16, 13,145,162, 40, 40,202,146, 77,215, 83, 90, 71, -210, 4, 36,172, 41,116,211,109,168,170, 74, 68, 4, 3,132,148,164,180,150,110, 24, 36,105,142, 60, 44,182, 22, 18, 98,196, 88, - 97,179,187, 66, 21, 92, 81,176, 88, 44, 64, 19,155,205,154,170,170, 25,134, 17, 65, 16, 35, 90, 56, 71,136, 1, 17,209, 16, 3, -133, 41,168,154,138,164,137,148, 18,130, 48,142,163, 24, 43,106, 77, 9,154,136, 36, 73, 49, 97,109,193,166, 91, 97,129,160, 42, -154,178,149, 97,173,209,182,173,136, 94,212, 71,143,100, 71, 75,125, 8, 32,164,182,173,113,174, 84,213, 68, 74, 0,137,148,208, -113, 28,178,240, 85, 21, 49, 70,134,161, 71, 68,196, 90,145,188,157, 76, 17, 58,161,105, 26, 0, 25,199, 81,124,244, 82,216, 98, - 26,163, 81,178, 1,218, 2,176, 90,173,180,109, 91,140, 49, 12,195, 32,206, 57, 68,132,190,239, 85, 85, 85,140, 96,197,128, 8, - 34, 66, 81, 56,196, 58,242,133, 37,144,144,170,168,136,154,164, 31,123,141,222, 75, 85, 53,196, 24,113,206,202, 56,246,120, 31, - 1,149,186,170, 53,169, 82, 20,133, 24,107,114,196, 67,149, 20, 35,131, 15, 44, 23, 45,125,215, 49, 70,207,178, 89,178, 90,175, - 40,203, 18, 99, 12,155,174, 87, 52, 81, 85, 21, 85, 85,146,146,234, 56,142, 58, 12, 3,198, 24,150,203,101,158,159,140, 21, 77, -138, 78,194,218,117, 29,198,136,198,144, 72,154, 16,201, 81,140,170, 46,137, 97,196, 90,155,181, 99,211, 51,122, 79, 8, 65,197, - 90,170,170,148,182,174,177,206, 73,214,184, 32,125,223,211,182, 53, 32, 28, 61,122, 84,151,203, 37, 41, 68, 70, 63,238,183, 83, -167, 40, 10, 93,215,163, 49, 18, 82,226,162,139, 46,202,199, 85, 19,138, 64, 10, 36, 17, 9, 49,137,181, 22,121,201,203, 94,166, -154, 18, 26, 2,106,114, 40, 72, 21, 22,203, 45,156,115, 32,249, 98,213, 28,162, 96,140, 30, 63,122,194, 48, 16, 83,162,110, 27, - 70, 31, 89,182,205, 36,202,142,123,143, 28, 33,198,136,166,124,208,178,244, 9,193,143,132,152, 88,110,109,145, 82,160, 31, 3, -190,239, 73,170, 88, 17,140,179,108,111,111, 79, 94,238,100,163,168, 34, 42,136,217, 23,148, 60, 57, 85, 77,133,152, 28,126,242, -227,128,181,142, 20, 19, 42,121,123,235,242, 69,108,139,130,189,221, 85, 54, 50, 80, 82, 84, 72, 9,146,130, 81,150, 91, 75, 4, -131,170,178,183,183, 55, 89,113, 6,149,156, 99, 72, 41, 79, 66, 34,134,162,172,104,155, 6, 65, 80, 32,169, 50,133,222, 81,160, -219, 91,145, 82, 68,156,163, 42, 10, 98,140,172, 54, 27,218,186,158,250, 18, 89,119, 3, 26, 35, 34,194, 98,185,196,218, 28,161, - 0,195,106,111,143, 16, 98, 54,128,242,164, 4, 34,185,207, 34, 56, 91,176,189,179, 4, 4,146,210, 13, 3,214, 8,133, 43, 88, -173, 86,104, 74,168, 1,107, 44,203,229, 18,200,231,211,199, 8, 9,202,210, 98,140, 67,140,224,135,145,132, 82, 85, 21,193,135, -233,194, 27,104,218, 26, 77,202,222,122,143,182,110, 89,111,214,180,117,155,207, 39, 74,140,158,177, 31, 40,155,150,166,174,177, -214,230,118, 2, 73, 19,123,123, 43, 68,148,237,157,139,176, 2,171,213, 6, 69,169,202, 44,140, 34,146,197,218, 24,214,235, 53, - 0, 91, 91, 91,232,116, 44, 55,235, 53,198,185, 28, 62, 3, 48,134,173,169, 47,171,205,134,229,162, 1, 21, 54, 93, 71,221,180, - 4, 63, 48,142, 30, 16, 22,109, 3,228,243,168,170,217, 28,145, 44,214,227,152,207,211, 56, 14,136, 24,118,118,182, 9, 33, 32, -214, 50,246, 61, 34,194, 16, 6, 22,245,130, 76, 2, 76,158,140, 37,143,191,253,126,122,239, 17, 85,162, 42, 67,223,231,107,196, - 0, 10,139,186,101,211,119, 52,109, 75, 97, 76, 30,115, 33,226,156,101,244,129,178,112,132,152, 24, 71, 79, 89,150,244,125,143, -155, 38,250,220,190,145,186,174, 8, 49,224,140, 35, 1,195,102,195, 98,177, 64,140,193,251, 0, 10,198, 57, 52,142, 24, 87,162, - 40,171,189, 61,170,210, 81,149, 21, 73,132, 20, 2, 34, 57,245,162,154, 64,133,193, 15, 56,235, 40,171,138, 16, 19, 6,176, 86, - 16, 99,217,172, 54,212, 77,193,166, 31, 40, 93,193, 48, 14,184,178,162,176,197,254, 4,157,195,230, 97,196, 7, 79,158,156, 45, -206, 88,198, 56,210, 84, 53,198, 22,120, 63, 96,172, 99, 28,122, 82, 74,108, 45,183,240,126,160, 31, 70,202,162,156,246, 17, 32, -101, 3,192,185, 50,143,137,186, 96,181,183,162, 46, 74,108, 89,128, 66,240, 99,182,202, 84, 48,206,128, 24,178, 5, 33, 24, 53, -172,214, 43, 76, 30, 36,121,110,136, 74,210, 72,223, 15, 32, 89, 96,147, 38,172, 8, 93, 63, 80, 55, 21,214, 88,114,148, 47,208, -173,215,212, 85,147, 39,228, 20,243, 28,152, 4,159, 60,209, 71,218, 69,203, 24, 3,206, 90, 98, 8,248, 16,105,234,138, 20, 82, -158,219,138,130,126, 24,105,202, 10, 77,145,189,161,195, 21, 21,133,115, 12,126,192, 96, 72, 49,178,181,179,133, 32,244, 99,143, -115,150, 20, 66,190, 14,167,241,100,140, 33,140, 35,221, 48, 96, 68,136,192,114,177, 32,134, 44, 34, 2, 96, 13, 77,189,152, 28, -131, 60, 23,199,148,144, 4,166, 48,168, 26,186,245, 30,139,197,130,245,122, 77,219, 44, 48,162,140, 33, 18, 99,160, 40, 74,186, -174,163, 40,242,245, 90,215, 53,195, 56, 98, 39, 67,123, 24, 6,140, 43,113, 70, 41,138, 44,242,217, 0, 99,186,198,243, 85,161, - 73, 73,170, 32, 16, 98,160,116, 37, 10,244,253,128,160, 52, 77,195,238,238, 46,144,175,235,174,235, 24,135,129,168,202, 98,185, -192, 24, 11, 41, 29, 24,119, 41, 37,140, 49, 24, 35,140, 33,226, 68, 8, 33,224,202,146,178, 40, 88,175, 87,148, 69,137,154, 44, -148,170,138,117,118,138,218, 66,223,247, 68,141, 44,218, 5,155,110,147, 67,236, 70,216,217,218, 38,248,128,143,121,172,146,229, -100,210, 55, 5, 99, 80,141,132, 49,167,135,114,152, 32,191, 87,215, 37, 77,211, 98, 93,113,112,142, 66, 8, 56,235, 8,193,179, -187,187, 59, 69, 60, 18, 85, 85, 83, 20, 5,198, 76,115,196,100,112,174, 86,107,186,126,147,175, 11, 99, 8, 49, 80,149, 21, 85, - 91, 49,116, 3, 49, 70,234,186,193, 90,195,232, 61,227,224,177,162,212, 77,205,106,181,199, 98,177,133, 78,115, 89, 78, 37, 88, -172, 43,232, 55, 61, 85, 85,226, 10,135, 43, 75,156,115,196,232,113, 69, 73,191,238, 49,214, 32,215,191,236,101,186,108, 91, 84, -149,163, 71,119, 73,201,147, 18,136,152,236, 25, 35,216,170, 98,236, 58, 82, 82,138,170,162, 46,179,152, 2,108,134, 1, 73, 32, - 54,231,139,219,182,101,181,187, 71,179,104, 64,132,213,209,163,217, 75, 61, 16, 49,155,243,135, 8,155, 77,143,117,134,110,211, - 35, 2,219,219, 57, 84,186,187,187,155, 69,180, 42, 24, 54, 29, 34, 66,211, 54, 24,201,185, 42, 49, 66, 74,145, 97,240,164,148, -104,219,150,245,122, 67,221, 84,236,173, 86, 8,138, 17,199,246,246, 18,145,156,143,136, 42, 12,227, 64,223, 13,104, 58, 54, 96, - 39,163,150,148,148,170,106, 24,199, 30, 91, 56,196, 42,149,171, 88,173,178,167,221, 46, 23,140, 62,146,124,200,131, 2,193, 56, -135, 53, 6, 5,234,170,194, 26, 65,147,178,233,123,252, 36,184, 49,129, 49,154,237,136,105,208, 44, 22, 45, 34,134, 77,183, 97, -223, 96,104,154,134, 77,191, 65, 35,136, 36,150,203,109, 54, 67, 79,242,129,182,169,179,200, 91,131,193, 50,244,221,193,133,109, - 69, 88,108,109,227,253, 72, 63,116,100,139,222,210,182, 45, 81, 21,166,215, 56,142, 96,132,182,110, 17,107, 73, 49, 18,162,167, -153, 66,107, 49,122, 6,239, 49,154, 13,156, 36,233, 96, 66, 95,175,215, 40,134, 20,198, 60, 33,107,246, 26,202,186,194,199,200, -246,214, 50, 79, 24,206,229,208,115, 89,160, 40, 14, 67, 72, 9, 87, 20,100, 47, 53,178, 94,175,113, 83,251,166,252, 33, 0,195, - 48, 16, 66, 96,177, 92,102,203,116,179, 97,103,103,103,154, 48,122,170,166, 65,116,186,240,114,188, 12, 0,107, 13, 81, 65,131, -167,170,235, 28,226, 15,129, 77,215, 81,149, 37,195, 48,208, 52, 45,155,205, 6,128,162,176, 52,205, 18, 68,241,227,136, 24,195, -208,247,217, 19,159,206,143, 49,230,192,168, 20, 17,114,106, 60,143,189,125,175,102,242, 62,216,218,218,202, 23,190,230,218, 1, -231,236,193,100, 53,142, 99,206,245,166, 52,237, 59,123, 98, 89,137,148,186,168,242,196,108, 12,206, 89,134,161, 39,132,200,114, -185,196, 15, 3,163,247, 40,224, 76,246,108,242,177, 50,212, 85,133,177, 22,159,211, 77,236,123, 67, 6,101, 24, 6,234,166,193, -143, 35,198,218, 28,134, 23,203,246, 78,190,182,214,123, 57,226,229,247,141, 38, 17,138,162, 2, 35, 20, 83,253,133, 53,194, 56, -142,244,163,103,123,123,155,113, 28, 25,134,145,182,109, 25,252, 72, 97,237,116,140, 20,231, 12,123,123,123, 24,107, 65, 21, 87, - 58,250,126,164,173,107, 68, 44,125,223,209, 46, 23,144, 18,162,249, 60,143, 49,224,196,144,163, 32,142,162, 40,240, 62, 34,146, - 13, 85, 1, 98, 84,170,202, 82, 21, 13,253, 56, 28, 8,116,140, 57,116, 91,149, 53,101, 89, 50, 78,226,217,117, 3,165,179, 89, - 36,156, 35,166, 72,233, 28,171,189, 53,152, 68,200,249, 84,218,182,197,123, 79,246,244, 29, 67, 78, 21, 81, 55, 13, 5, 38,123, - 95, 70, 80,133,205,122, 53,153,118, 80, 47, 22,132,113,196,138,165,112,246,216,184,172, 10,138,162, 66,163, 50,106, 34,248, 30, -212, 80, 53, 21,123,187,123, 44,218,134,126,244,108, 45,151,164, 20, 73, 33, 27,199, 34,185,182, 32,165, 68,223,247, 88,103, 25, -135,145,229,114,201,122,157,211, 82, 33, 37, 22, 77,147,231, 60,107,243,117,168,121, 30,176, 2,195,224, 17,129,166,169, 9, 33, -209, 84, 37, 62, 37,250,205,134,162, 40,179,113,152, 2,221,186, 35,215,131, 56,138,194, 82,215, 53, 93,215, 29, 68, 68, 21,197, -136,153, 28,154, 60,150,186,205, 58,207, 57, 76, 78, 5,224,156, 37,132, 72, 30,194,134,170,110, 24,186, 14,177, 22, 63,250, 41, -181,147,201, 66, 36,248, 16,113,206,229, 57,157,252,185,194, 57,234,166,193, 90,203, 56, 12,217, 72,152,198,162,160,148, 69,201, -106,179,202,122, 83,148,121,110,236, 58,234,186, 70, 20, 98,136,140,113,196,143, 30, 52, 27, 29,139,118,193, 24, 70, 64, 80, 77, -148, 69,129,115, 14,239, 61, 97,186,182,171,162, 0,201, 17, 62,227,236,164,115, 16, 99, 2,141,164,164, 24,129,126, 24, 17, 17, - 84, 20, 39,249, 28,185,162, 96,209,182,248,232, 73, 49,167, 57, 99,204,243, 89, 74,154, 69,118,114,112,202,201,129, 25,199, 62, -143, 63,192, 88, 67, 81, 22, 44,150, 11,234, 50,207, 83,189, 31,177,198, 82,150, 37,235,205, 10,171,134, 16,115,196,122,111,119, -151,166, 89,144, 72,116,125,199,176,233, 41,234,154, 24, 34, 91, 91, 91, 57,162, 29,114,100,169,170, 42,202,178, 68,140, 16,198, -128,188,252,149,175, 84,103, 45,168,144, 82, 0,129,123,239, 57, 66,213,180,148, 69,129,143,158,245,222, 10,131, 1, 13, 40,194, -214,246, 54,235,205, 6, 99, 12, 91, 23, 93,132,179,134, 97,240,244,125, 71,138, 17, 68, 49,106, 64,178,183,228,189, 39,161,148, -101,182,212,203,194,145,139, 0,210,129, 64,138,236, 91,107, 33,123, 15, 42, 7,194, 53,140, 61, 67, 63, 96, 38, 15,185, 40,221, -129, 72, 66,206, 51,117, 99,135,134, 4,154, 80, 49, 44, 22,249,226,117,206, 97,172,101,107,107,155, 20, 19,105,178,164,208,108, -213, 19, 19,123,235, 61, 66, 72, 24,145,201,195, 85, 54,221,154,186,110, 8,193, 83,215, 13, 34,134,164, 74,138,137,126, 28,241, - 93, 71,187,181,141, 17, 97,181, 94,103,171, 78, 3,162,121, 98,136,162, 56, 21, 22,211,164, 88, 21, 57, 28,185,218, 91,129,129, -162,172,166,226,135, 44,194, 49, 70, 54,221,134,173,229, 2,107,139, 41,213,144, 39, 89,239, 61, 93, 55, 9,185, 8, 91,109,131, -170, 64, 74,108,250,158,237,157,157,108, 92,104, 34,133,192,238,106,149,175, 17,147, 5,160,170, 42,134, 97,160,168, 42,124,159, -133,185, 40, 28, 99, 8,128,144, 98, 96,107,177, 96,240,158,190,239,167,235, 43,123,166, 91,203, 37,163,247, 7,109, 29,199, 17, -177,194,122,221,101,227,105,154,224,173, 49, 52,203, 37, 26, 35,155,205, 38,123,193, 34,236,236,236, 48,244, 61, 85, 89,211,245, - 27, 84,149,229,246, 54, 86,228, 32, 50, 34,198,224,138,130,205,106, 69, 85, 85,244,227,136, 19,153,194,179, 66,136, 89,248,199, -113,164,109, 26, 54,195, 64,105, 45,136,230,156, 82,210,156, 47, 93,175,242,121, 77,217,232, 40,172, 48,166, 68, 91,183, 88,129, -168,121, 50, 29,134, 1, 17, 8, 49,178, 92,108,161, 26, 25,134, 17,107,132,163,123,123,232,116, 78,116,154,108, 68, 36,135, 84, - 1, 72, 24,147,235, 55, 74, 99,217,244, 29,198,101,163,108,236, 71, 32,123, 82,109,219,230,232,137, 42, 91,219, 91,121,146, 19, -139,181,121, 98,205, 97, 62,203,126,177,211, 48,140,244,211,241,169,138, 2, 91, 20, 20,214,162, 38,215,153, 88,147, 11, 10,243, -152, 46, 16, 81,202,170,102,232, 6,124, 24, 89, 44,183, 49, 70,217,221, 59,154, 61, 73, 85,172,115, 40,176,108, 91, 54, 93,182, -240,141,113,144, 2, 42,150, 20, 60,229, 52, 81,196, 24,176,214, 82, 20,142, 77,215,225,140,193,231,116, 83, 30, 35, 41, 81, 85, - 37,222, 7, 54,155, 60, 81, 45,219, 5, 98, 5, 63,142, 88,231, 72, 36,172,177,236,173,214, 89,196, 69,178, 39, 56, 29,203,253, -185,187,110,107,156,228,126,199,148, 38,195,113, 69, 97, 45, 85,211,128, 66,223,117, 64, 54,182,203,178,152,206, 29,184,105,146, - 23,201,222,227,189,247, 30, 37,132, 17, 77, 9, 20,182,151, 75, 86,155,142,166, 46,241, 62, 17,213, 83,148,229,148,186,176,185, -175, 41, 34,170,136,179,121, 82,117, 37,136, 48,108,214, 84,109, 11, 49,145,200,227, 18,157, 34, 29, 34, 20,206,225,253, 72,225, -202,105, 60,122,198,113, 96,209, 52,116, 93, 71, 72, 9, 99, 45, 77,219,176, 89,111,168,235, 26,208, 41,245, 84, 48,250, 30, 39, -217,128,216, 31, 39,206, 25, 66, 72, 83,120,217,225, 99, 36, 69, 79,174,163, 2,159,252,148,254, 81,162,122, 36, 10, 98, 45,214, -154,131,194, 98, 49, 6, 63,142, 56,103, 65, 97, 28,122,124,200, 17,199,229,114, 73,156,196,202,251, 17, 37,139,154, 74, 30,227, - 67, 55, 28,204,179,170, 89,228,172, 53,148,101,133, 43,243,185, 23,178,168, 15,155, 13,101,211,224,108,142, 54,228, 34, 49, 65, -236,100,196, 14, 30, 51, 25, 68,139, 69, 75, 63,246,212, 69, 54,252,115, 90,195, 33,214,144, 66, 22, 68,227, 28, 41,122, 98, 72, - 8, 80, 55, 13,170, 58,253, 61, 50, 12, 67, 14,141, 43,164, 24, 41,139,146,113,244,196,148,189,102, 55,141, 57,141,199,188,126, -177,211,245,173, 57, 13,231,172,101,140,158,194, 85, 57, 66,233, 61, 49,122,172,113,144, 20,177,217, 96, 6, 67,105, 12,222, 15, - 20,101,142, 62,132,232, 25,123, 63, 25,121, 57, 10,161,192,208, 13, 44,150,217, 17, 14, 33,114,239,189,247,162,147, 49,104, 38, -179, 38,169, 30, 68,171, 69, 12,174,112,148,101,193,246,246, 54, 67,223,211, 15, 35,237,162,197, 88,155,143,111, 2,145, 8,170, -120,239, 89,175,187, 28, 61, 82,133, 4, 81, 19,206,149,217,144, 29, 7,156,205,209, 78,113,150, 69, 89,129, 49, 88, 59,213, 97, -189,228,229, 47,215, 20, 35,105, 26,232,201, 26,210, 24, 88,108,109, 17,124,100,236, 54,196,148,208, 20, 73,211,164,152,171, 59, - 45, 59, 59,219,216,162, 64, 0, 31, 19, 70, 96,111,119,151,229,178, 37,231, 51,133, 24, 35, 49, 68,246,118,143, 98, 11,139,181, -101,254, 46,201, 66,190,239,245, 24,103,176, 38, 15,202, 41,255,196, 48,140, 56,103,216,247,160, 68, 4,239, 35,198,192,114,185, - 68, 85,217,108, 54,180,109,195,106,179, 57,104,227, 86,219,178,233,123, 22,237, 18,231, 44, 85, 83,211,245, 35,154,242,168,117, -214,229,252,154, 21,162,247,136, 53,196,224,217,172,214, 44, 22, 11,186,110,141,143, 1, 77, 9,231,242,137, 88,109,214,104,130, - 16,179,112,138, 42,251, 49, 87, 3, 68, 17, 22,139, 22,200,147,173, 1, 54, 93,199,114,185,133, 49,134,189,213, 10, 82,162,105, - 26, 66,204, 97, 53,231, 28,126, 28, 97,138, 64,196,105,240, 79,249, 58, 52,105,182,164, 53,135, 42,115,104, 94,217,235, 59, 76, - 4, 4,218,186, 5, 3,101, 89, 97, 12, 7,158,175,247, 57,188, 43,146,189,174,178,174, 15, 68,211, 90, 71, 63,142,244,125,143, -166,152,173,231, 50,183,217,251,145,229, 98,129, 72,238, 89,183, 89, 35,198, 2,202, 48,244, 7,147, 17, 24,140, 81,218,229, 22, -154,242,228,191, 94,173,136,154,115, 90, 42, 66,152,242, 83, 91, 91, 91, 83, 26,230,248, 74,248,186,170,216,247,214, 83, 8,248, -233, 66, 22, 17,118,182,183, 17,231, 24,135, 14, 85,193, 24,176, 69, 69, 8, 89, 56,141, 24,156,181, 24, 99,217,108, 58,144,196, -178,109,201, 41, 64, 61, 8,237, 91,201,169,136,168, 17,145, 28,117,104,151, 11,186,245,138,166,105,113,101, 65,232, 71, 66, 82, -138,194,114,239,238, 46, 85, 85, 80,186, 50,123, 47,154,232,134,142,166, 89, 96,152, 66,165, 33,176,183,183, 71,142,224,180,196, - 41, 63, 27,198, 64, 89,151, 7, 23,118, 55,246,140,253,136, 88, 67, 91, 85, 20,117,133,149,108,205,171,228,136, 84, 97, 11, 66, -240,180,117,139, 18, 65, 12,171,213,138,170, 42,209,168, 84, 77,133, 21, 67, 18, 33,140,158,224,199,124, 45, 56, 7, 81, 73, 6, -156,100,207,177,168, 12,162,202,209,163, 43,234,166, 4,133,174,239,168,171,156,183,171,235, 38,143,243,201, 64,180, 98,112,101, -137,181, 66,240,121,146,173,203,146,148,148, 49,120,188, 31, 16,177, 7, 70,142, 17, 75,210,132,106, 64,213, 64, 10,249,122,219, -218, 98,111,119, 23, 83,150,120,239,169, 38, 47,105,244, 3,109,187,204,226,200,190, 56,230,112,239,222,222, 30, 0,238, 88, 21, - 52, 41,198, 44,214, 40,229,148,190, 26,199,113, 10,131,130, 43, 29,101, 81,146, 18,180,109, 22, 0,239, 3,187,187,187,212, 85, -133, 31, 7, 66,240,108, 45,150,120,205,158,217, 48, 14,160, 57,205, 36,211,164,151, 98, 96, 24, 60,117, 83, 35,147,103,183, 90, -175, 25, 39, 49,176,198,162,162, 52, 77,142, 48,168,128, 43, 28,253, 48, 18, 71, 79,146,148,211, 89, 69, 65, 85,215, 36, 18, 41, -228,116,198, 24, 19, 85, 89,100,193,244, 3, 49, 38,234,162,156, 10, 23,133,162, 42,216, 76, 5,162,144, 29,146,162, 44, 8, 33, - 80,150,101,142, 30, 89,203, 48,120, 96,154, 47, 82,204,243,149,234, 65,148, 51,198, 28, 81,245,222,163, 83,168,124,202,161, 83, -216,130, 36,202,178, 89, 76,121,228, 92, 85,223,212, 53,198, 90, 20, 1,205,213,224,170, 10, 2,163, 31, 24, 70, 79,105, 75,196, -230,240, 60,154,166,235,104,154,159,109, 65,225, 28, 26, 35,113, 50, 4,242,108,173,248, 24, 16, 5, 76, 54, 1,194, 24,168,234, - 58, 71,203,250, 30,166,235,166,174, 42,246, 29, 6,231, 28,227, 48,224, 83, 22,245, 16, 3,214, 58,226, 56, 82,148, 69, 22, 53, -114, 29, 16, 41,229,107,219,144, 35, 14, 46,215, 56,105,202,133,113, 85,149, 13,144, 97,232, 41,171, 26, 63,230, 90, 16, 31, 35, -165,181,152,162,192, 40,248,224, 49, 98, 80,129,113,236, 9, 83, 42,229, 56, 36,247,202,218, 92,220,156,103,121, 88,175,215, 24, - 17, 18,217,105, 21,103,166, 40,209, 26, 77, 74, 85,101,163,163,105, 90, 54,221, 58,167,104,234,138,113, 28,216,222,222, 57,136, -168,117, 93,159, 35,163, 67,142, 20, 86,117,149,195,248, 34,108,250, 1, 3, 36, 81,246,246,118, 17,178, 67, 49,248,145,232, 3, - 41,229, 57,232,162,139, 46, 98, 63, 45, 54, 12, 3, 68, 5,155,219,108,191,248,153,207,248,193,178, 44,114, 94,192, 90,156, 49, -132,148, 77,234,164,145,229,162,165,170, 27,202,170, 38, 73,206,245,212,117, 77, 85, 87,172, 87, 43,252,100, 1,111, 54,107,138, -162,152, 66, 59, 61, 69, 81,209,119, 29,214, 88, 86,171, 85, 54, 8, 12, 88,235, 48,206,178, 88, 44,240, 62, 11, 39, 34,108, 45, -182, 40,138,146, 68, 22,178,205,254,129,106,107,218,182,205,197,101, 83,238, 34,132, 64, 72,249,100,212, 85,133, 43, 10, 72,208, -180, 13, 49,140, 7,214, 79, 85,229,226,189,228,115, 33,131,117,142, 20,115, 40,122,240, 35,255, 63, 93,111, 26, 43,251,125,222, -247,125,126,219,127,159, 57,151, 87,151,164, 68,147, 18, 73,201, 18, 41,107,161,182, 74, 94, 98,215,118,109,216,174, 91, 47,117, -155,165,118,106,160, 75,146,182, 8,146,182, 9,210, 87, 5,242,166,245,139,162, 47,138,164, 91, 12,216, 48,220, 6,129, 99, 55, - 94,226,196,139, 44,201,150,228, 69,139, 45, 74,162,184,138, 34, 41,138, 20, 47,239, 61,231,204,252,183,223,218, 23,207,127,142, - 36, 59, 29,240,130, 4, 57,103,120,102,230,183, 60,207,119,123,194, 42,149,166,179,114,112,173,222, 19,125,160,233, 54,104,200, - 11, 87,225,140,161,170,106,140,181, 27,156,228,168,235,134, 88, 18,228, 76,183, 27, 72, 74, 17,189,103,183, 59,147, 3, 62,231, -173,179, 13,212,117, 69, 93, 85,212,117,205, 52,207, 2,133,131,116, 98, 70,179, 27,122,234, 90,170,176,162, 4,202,159,167, 25, -148,102, 13, 2,249,121, 31, 8, 33, 50, 47, 11, 80,208,198,210,245,242,123, 46,203, 66, 8,158,213,123, 66,140,248, 16, 72,165, -144, 98,164, 40,129,137,151,101,161,221, 46, 81,128,117, 93,208, 74, 81, 89, 71,221,116,180,149,197, 85,142,140,252,255, 87,239, -137, 41,208,245, 61,203, 50, 83,114,194, 85, 21,125,223,211,117, 29,109,219, 8, 39,100,205, 86, 24, 57,170,198, 81,217,211,129, - 30, 32, 70,176,162, 47,160, 20,225,240,140, 65,105,125,181,145,214,117,101,154, 38,124,140,104,107,133,166,233, 58,230,117, 33, -134, 72,211,200,225,189,174, 34, 30, 33, 23,172,117, 24,173, 9, 91,135, 83,187,138,170,170,183, 42,122,194,213, 21,109,211,210, - 54, 45, 77,211, 48,174,211,214,201, 72, 65,169, 97,251,103,233, 2,141,117, 2,127, 7,177, 82, 46,203, 2, 69,214,143, 81,210, - 17,140,199, 35,155,189,110,235,168,101,255,199,152,169,106,185,152, 86,191,226,189, 39,196, 76,211, 52,164,156,232,186, 14,191, -174, 56, 91,145, 75,102,156, 70, 17, 74,101,133, 50,210,133,151, 12,107, 10,196, 28, 81, 40,154, 90,184,178,101, 93,200, 49, 19, -114, 66,151,140, 82, 69,186, 46,173,229, 80,216, 58,228,101,158,184, 99,223,210, 91,199,154, 18,103,103,123,166,113, 20,173, 65, -129,166,105, 57,191,125,155,167,159,124,138, 84, 50, 41, 71,250,182,163,233, 90,172, 86, 84,117, 77,229, 42,214,101, 38,197, 68, - 8, 43, 57, 70,170,186,165,108, 10,121, 99, 44, 57, 71,186,174,195,185, 10, 31, 22, 20,154,190,239,153,166,137,170,105, 88,151, -133,190,239,136, 57,162,145,142,212,199, 40,157,188, 49,140,211, 68,136, 27, 55,221, 55,130, 28,165, 76,215,203,107,202,161,239, - 4,245,240, 1, 99,140,104, 19,156,136,185,156,115, 91, 71, 22,183,226, 49,110,232, 77,133,181,102,187, 36,188,112,242, 57, 11, -188,220, 10,231, 89, 74, 97, 26, 71,234,166,217,208, 18, 71, 8,129,176,174, 87, 52, 69, 78,137, 97, 16,237,130, 54, 26, 99, 53, -203, 52, 19,203,215,184,237,166,235, 54,138,203,162,172, 97,245,158,121, 94,182,117, 36,226, 37, 31,163, 32, 99,218, 74,113,182, -117, 91, 49,122,138, 82, 87, 69,143,181,150,148,243, 85, 87, 26,115, 70, 43, 13,165, 8, 5,172, 12, 42,151,109,127, 71, 66,242, -248,224,241, 33,146,163,208, 21,165,100,185,196,146,160,146, 57,101,118,187,157,172,191,146, 8, 62, 80,138, 20,251,107, 8, 2, -117, 23,129,131,231,117,146,134, 73, 41,234,170,166,169, 43,208, 10,141,102,156, 70,180, 50, 27, 26,208,162,209,172,243,130,117, - 66,201,101, 32,174,171,188,103,173,113, 70,144, 23,171,205,149, 32, 49,231, 44, 77, 11, 82,180,185,173,201, 56, 53, 30, 74, 73, - 1,160,213, 38,124, 86,242,121, 15,187, 29, 49,202,190,214,198,146, 98,194,154,138, 92,146,136, 34, 41,164, 24, 54, 52, 83, 73, -225,189, 44, 2,205,103,161,232,154,166,102,154, 70,114, 41,248,213, 19, 99,192, 26,195,188,174,204,243,132, 95, 61,228, 66,219, -247, 84, 86,138, 69, 16,132, 87,171,173,228, 42, 91, 83,149, 69, 96, 90, 91, 57,195,149,182,212, 77,133,213,150, 68,162,239, 90, -105, 16,156,163,107, 91,208,208,247,253,134, 40, 1, 40,114, 6,231, 44,203, 34, 20,155, 80,114,210,153, 89, 45, 34,205, 19, 50, - 91,148,160,198,149,147, 59,161,170,228,254,168,170, 26,231,234, 13,113, 19,132,193, 25,131,171, 29,202,130, 95,101, 13,168, 31, -253,143,126,162,164,148, 68,244,226,228, 48, 46,185, 96,157,147, 75, 38, 11,148,120, 24, 15, 34,138,137,158,190,237, 56, 28, 70, -186,166,102, 10, 1,210,201, 38,224,216,239, 7, 57,116,114,226,120, 56,144, 67,162, 20,169,118,207,206,164,186, 72, 72,151,160, -129, 80, 50, 37,201,197,174,148, 98, 94, 22,134,190, 39,120,207, 60,207,116, 93,139, 40,124, 53, 33,120,198,113,166,173,107,170, -166,230, 4,185, 92, 94, 94,110,157,123,102, 28,143,180,117,205,188, 44, 92,187,118, 13,103, 29, 37, 67,161,112,156,150,141,131, -116, 87,240,141,143, 65, 56, 40,227,240,201, 19, 67,132,156,104,134,158,121, 26,165,211,220,239, 24, 15,163,116, 8,125, 71,140, - 9,231,172, 64,208,170,208,183, 29,211, 52, 82,148,226,218,246, 30, 79,165,120, 78,137,105,146,206,232,236,236, 12,144, 13,118, -130,167,151,101,161,169, 27,242,198,223, 28,142, 71, 74,201, 12,251, 1, 85,164,203,206, 37,209,183, 3, 49, 39,166,121,166,107, -107, 64, 58, 85,239, 23, 42, 39, 23, 72, 86, 5, 99,180, 8, 11,149,252,172,113,142, 18, 35,227,198, 49, 67,193, 85, 53,214,124, - 35,188, 60, 45, 19,221,137, 95,207,249,234, 98,182, 90,104, 7,187,117, 57, 49,138, 15,244, 4, 47,101, 41, 16,229, 57,206, 93, - 9, 99,208,138, 92, 32,173, 43, 69,137, 24, 80,107, 65,103,148,218, 32,189, 34,162,155, 82, 10,149,181,116,195, 64,204,155,248, -166,128,214,133,140,102,220,132,111,125, 63,112, 82, 80,199,184,105, 27,148,166,105, 27, 66, 88,233,187,158,241,112, 64, 27, 75, -109, 45,202, 90,170,211,129, 62,141, 64, 33,103, 69, 74, 30,109, 29,181,171, 72, 41,144, 82, 97,232,123, 46,143,151, 87, 98,203, -161, 27,182,110, 72,214,117,206, 82, 64,196, 40, 40,150,108, 63, 64, 21,233,102, 55, 8,223, 90, 3, 89,248,184,166,170, 89,252, - 74, 74,145,122,235,150, 15, 71,177, 50, 82,164, 2, 87, 95,119,128,160, 96, 30, 71,156,214,124,224,157,223,194, 29,119,220, 65, -202,153, 47, 61,255, 2, 95,124,225, 43,220,124,245, 22,221,110,207,237, 91,183,120,225,249,231,185,249,202, 43,140,227,200, 60, - 77,252,159, 63,243, 15,249,225, 31,250, 62,158,125,250,139, 96, 12, 95,120,250,139,252,194, 47,255, 42,143,126,225, 73,206,111, -223,150,117,189, 61,180, 17, 94,245,250,245,107, 60,248,224,253,188,254,190,215, 83,245, 3,135,139, 3,218,110,112,191, 50, 12, -187, 29,126,245, 84, 77,133, 95, 60, 25,209,175, 0, 28,143, 66,157,184,170,186,234,132, 15,199, 35, 42, 67,191,235, 55,158,216, - 18,162, 40,244,221, 38,200, 44, 36,208, 22, 99, 53, 37, 41, 10,121, 59,240, 29,197,203,231,164,148,116, 69,174,170,153, 39, 41, -160,172,179,116,109,195,229,229, 1,241,148,219,173, 19,116,144, 18,243,178,202, 97, 8, 24,229, 88,227, 34, 23,111, 81, 20, 35, -221,248, 9,198,236,186, 14,163, 53,151, 23, 23,128,194, 86,150, 82,138, 8,237, 40,104,182,207,160,114,212,206, 80,148,226,120, - 24,113, 78,138,238,186,170,177, 86,248,207,227,197,133,208,126,206,208,119, 29, 39,235, 92,202, 16,214, 25, 99, 43,129,139,173, - 69, 23,136, 57, 17,147, 52, 3,214, 90,180,214,132, 16,208,198, 98,156, 65, 21, 54,100, 77, 62,243,174,235,248,122, 42, 40,230, -132,198,162,181, 32, 31,130,156, 20,194, 28,228,103,252, 74, 41, 34, 82,155,230,153,202, 58, 10, 73,206,205,166,165,168,130, 95, - 22,170,166,197, 88,141, 46,200,247, 20, 2,235, 26,228,226, 89, 23,172, 54,196,156, 4,189, 80,130,184, 74, 35,190, 33,157, 90, - 81, 80,116,109,195,234, 3, 93, 87, 19,124,162,170, 5,165, 32, 23, 66,206, 24,173, 33, 75,161,179,217,239,208,200, 69,156, 82, -218, 32,124,182, 66, 85, 40,155,190,239,132,174,181,110, 67, 52, 29, 90, 65, 34,163,209,132,148,182, 34, 93,163, 55,177,180, 86, -154, 66,129, 92, 0,161,158, 64,206,182,147,134, 98,245, 43,226, 43,205, 20, 4,158,223,239,118,200,205, 43,136, 67, 74,130, 92, -158, 62,239,147, 11,231, 68, 95,230,156,165, 16,212, 90,190, 11,165,105,170,150, 24, 4, 93, 88,214,133,190,239,165,217,137, 82, -172, 53, 77,115,117, 87, 77,211,184,161,211,224, 92, 77,138,129,197,123,156,181,120,239,113,166,194,199,133, 97,183, 19,129,102, - 18,219, 92, 42,101,163,236, 20, 41, 9,236,223,245, 13, 78,111, 72,215, 86,224,173,107,192, 58,235, 72, 41, 74,135,216,182, 52, -109,203,197,197,133,192, 70,117, 77, 41,114,248, 42,132,171, 0, 69, 42, 25,165, 96, 13,145,126,227, 64,227,234, 73,235,194,249, -133,112,120,121,227,151,135,125,203,186,202,130, 67, 41, 66,244,196, 44,226,134,182,174, 49,177,112,251, 56, 81, 74,162,106,154, -171, 78, 82, 25, 67, 85, 75,119,188,174, 11,104,177,134, 12, 93, 75, 81,106, 59, 4, 79, 28, 73, 33,164,132,184, 66,243,118, 80, - 42,188, 95, 9, 33, 82, 85, 53,171, 95,153,103,185,152,189,242,136,119,112, 79, 99, 43, 60, 19,177,200, 66, 17,254, 57, 19,214, -192,217,217, 25, 33, 6,214,113,165, 31,122, 14,151, 71,142,135, 3,104, 69, 81, 45,195,208,109, 23,148, 98,216,159, 1, 69, 4, - 40, 49,161, 52,236,250, 30,248, 90,101,234,189,167,170,165,163, 52, 90,170,252,170, 18,229,237,178,122,250,173,178, 51,174, 18, - 40, 47, 6,140, 21, 20, 34,108,174,131,202,136, 2, 90,161,136, 65, 32,186,121, 89,232,186, 22,165,229,130, 16,181,169,108,128, -105,154, 68,152,178,125,150,243,178, 96, 82, 34, 43, 37,162, 53,103, 81, 40, 82, 72, 76, 89,196,110, 49, 70,188, 22, 14, 87,183, -114,209,151, 34, 21,240, 52,142, 84, 77,195, 50,139,248, 70, 84,163,178, 41, 5, 41, 9,216, 74,170,201,101,158, 73, 86, 83,219, -138, 16, 3,125, 63, 16, 82,192,137, 13,139,188,253,174,198,106, 42, 43, 66,143, 18, 10,186, 82,140,243, 76,137, 34,156,219,237, -118,164, 20, 89,215, 25,103, 69, 9, 91, 87, 98, 3, 10, 49, 96,141,130,226,200, 41, 81, 87, 21, 62, 68,138, 42, 44,211, 4,125, - 71, 73,145, 82, 4,242, 22,170,160, 38,103,161, 80,188,151,245, 81,148, 28, 0,253,208, 67,129, 24, 34,174,170, 88,252,130,159, -103,118,187,221,149, 40,205,123, 79, 91, 59,198,121,166,107,123,230,113,150,181,152, 60, 37, 59,218,166,101,245, 43,107, 16,129, - 89,201,137,146,217, 96,122, 67, 85, 9,167,122, 60, 92,162,183, 42, 61,198,200,225,252,130,231,158,121,138,191,243,211,255, 49, - 63,249,227, 63,140,174, 43,198,151, 94,225,239,254,198,111,242,219, 31,249, 40,135,227,184, 81, 52,127,241,241,217,199,159,224, -251,255,210,183, 49, 47, 43, 95,120,234, 25,126,245,183, 62,196,239,125,228, 99, 87,255, 93,171,237,188, 67, 10,205,121,156,249, -111,255,222,223,230,181, 55,110,112,223, 61,119,243,186,187,238,228, 95,126,228,163,252,222, 31,127,138,155,231, 7,214,101,229, -242,112, 73,101, 52,111,125,232, 45,236,239,184,193, 97, 62,114,184, 60, 80,213,142,182,235, 80, 64, 74, 73, 14,164,224, 49,104, -186,125, 39, 93,101,136, 40,109,241, 62, 82,215,134,117,158,161, 20,138, 49,180,149,149, 67,215, 66,166, 64,209, 88,163,209,174, -134,156,153,231,229,234,146,161,100,218,190,195, 26,197,113, 20, 37,176,181,178,191,215,121,166,132, 72, 46,114, 57,180, 77, 75, - 46, 9,159, 61,186, 24, 86, 31,168,107, 71, 14,178, 31,173,182, 36, 31,241,203, 76,206,178, 63, 92,237, 24,199,137,161,239, 65, - 43,150,101,164,177, 13, 85,229, 40,104,252, 26,105, 59, 81, 41, 91,171,113, 27,180,123, 56,172,212,109, 75,191,219,145, 40,148, -148, 57, 94, 28,176,149, 99,183,223, 1,137,178,105,146,156,177,148,156,200,198,162,177,244,181, 35,248, 72,202,249,138, 11, 45, -136,112,179,174, 26,186,174, 39, 70, 17,200, 78,147,104, 11,156,181,248, 20,113,198, 81, 85, 48,142,139,192,211, 89, 58,111,165, - 20, 54,107,148,210,180,125,203,120, 28,229,108, 41,129,186,106, 56, 59,171, 8, 41,112, 56,151, 2,217,185, 74, 56, 89,109,152, -166, 69, 16, 44,173, 49, 70,116, 56, 49,103,252, 50, 83, 53, 53, 86, 25,230, 85,138, 43,165,183,206, 16, 67,222,246, 67,206, 82, -164,134,232, 73, 49, 80,183, 29,138, 66, 41,137,227, 40,194,199, 97,183,163,212, 53, 57, 70,124,140,228,109, 79, 86,174,194,108, - 2, 71,107,161,174,107, 74, 41, 36,239,153, 66,220, 46,241, 64, 73, 80, 57, 67,214, 25,107, 12, 85,223, 95, 21,247, 57, 23,208, - 66, 91,106, 43, 78, 7,183, 53, 34,202,218,171,162,209, 90,185, 28, 53,138,148, 34, 62,120,150,121, 38,171, 66,227, 26,230, 69, - 80,130,105, 28,161,108,154,148,146, 56, 76, 34,104,182,198,200, 30, 82, 26, 52,212, 70,186,232,227,241, 72,211,136,179, 66,190, - 75,152,231, 25,144,123, 46, 4, 65,204,114,201, 91, 99, 34,212,231,186, 9,155, 41,162, 35, 72,243, 76, 8,210,124, 28, 15,151, - 12,187, 61,227, 38,212,222,123,144, 35,198, 0, 0, 32, 0, 73, 68, 65, 84,237,246, 72,126,203, 74,206,133,156, 35,199,203, 35, -202,168,147,116, 13,107, 5,129,178, 49, 38,154,170, 67,212,138,210, 69, 25,103,174, 22,138, 49,134,113,158,196,202,213,201, 5, - 45,149,168, 8,226,160, 34,204, 51, 42, 70,112, 21, 57,122, 80, 45, 41,102,134,253, 78,186,185,180, 48, 79,203,149,186,157, 18, - 37, 4,160, 20,230,213,147,179, 40, 66,189,247, 92,191,118,109,131,155, 2,109, 91, 51, 78,242,198, 67, 20,177,222,229,113, 83, - 19, 90,205,174, 23,203, 68,201,133,203,219,231,226, 55, 55, 18,120,226,156,219,120,169, 64,140, 2, 91,231, 36,139,178,107,234, - 77, 36, 22, 81,166,102,119,182,231,246,237,219,156,148,153, 18,162,176,193,126, 85,141,183, 30,173, 20,103,103,123,110, 95, 8, -127, 87, 50,140,243, 44,159,211,246,229, 85,206,225,125, 32, 6, 81,116,198,197,179, 59,219,209,117,162, 78, 93,102,233, 94, 98, - 8, 4,239, 55,120,210,227,215, 0,170,160,181, 98,127,182, 39, 69,209, 56, 24, 45, 29,183,171,132,143,118,157,221,212,150, 82, - 84,105,109,183,110, 82,248,200,166,107, 4,238, 92, 87,121,126, 93, 99,141,162,218,236, 84,185, 20,170,173, 43, 57, 63, 63,151, -207, 81, 67, 70,211,117, 29, 74,107,252, 6, 71, 42, 32,105,129,197, 82, 74, 28, 14, 35, 57, 71,114,206,196, 81,180, 7, 49,110, -137, 74,102, 91, 43,214,208,245, 61,104, 17,195, 40, 99,216,247,131, 28, 92,193,162,180,161,175, 42,230, 73, 14,213,170,170,112, -174, 34,172, 11, 1,131,209,144, 82,220,208,139,154, 67, 8,204,235,140, 42,154,202, 89,114, 73,204,203,132,171, 29,185, 24, 66, -244,128, 22,234,167,106,136, 33, 80,200,162, 68,117, 21, 41, 22,150,237,243, 50,214, 10,236,218, 9, 10, 80,112,228, 28,233,251, - 86, 14,168,156,233,218, 78,120, 44, 37, 93, 67, 46,153, 24, 34, 67,223,179,174,158, 84, 34,108, 69,193,186, 8,148,121, 56, 92, - 96,173,165,118, 53, 49, 42, 80,194, 13,250, 16,216,109,112,163,113,150,186,110,184,214,206,188,233, 45,111,231,158, 27,119, 49, -126,245, 38,191,245,251, 31,227,227,159,248, 83,150,101,225,120, 56,240,189,223,254,126,254,187,255,225,191,231, 91,191,237,253, - 60,247,212, 51,252,163,159,255,167, 76, 97,225, 43, 95,121,121, 43, 94,191,241, 66,191,247,181,119,241,222,183,191,141,247, 62, -242, 54,238,190,243, 78,198,121,230,142,221,142, 23, 95,254, 42, 79,191,240,252, 55, 60, 55, 23,184,235,250,117,222,243,206,111, -225,238, 27, 55,184,251,206,235,220,177,219,241,192,235,191,137,107,251, 61,255,242,131, 31,225, 31,255,194, 63,229,177, 39,159, -150,181,227, 28, 15,222,123, 15, 63,242,239,255, 16,111,126,224,126,218,182,225,197,155,183,120,246,229,155,124,233,149,155, 84, - 8,119, 43,176, 37, 84,174,150, 78, 56, 5,114,202,212,174, 34,230, 64,229,132, 55,237,134, 30,133, 69, 91,132, 66, 74,133,170, -169,101, 79, 56, 73, 24,107,106,131, 95, 86,150,101,101, 24,134,141, 34,130,236, 35,115, 78,164, 34,154, 19,231,196,214,232,140, -163,144, 9,171,167, 31,122, 98,220, 68, 73, 74, 17, 83,102,215,182,196, 12,169,136,141,113, 89, 61, 80, 68, 27,144, 10,117, 87, -145, 66, 68,169,205, 53,208, 84,148,152, 81, 22,178,214,148,148,112, 85, 77, 42,137,221,176,219,186,180,133,156,139, 32,128, 37, -177,172, 43, 10, 67,211, 84,104,165,232,122, 41,244, 99,150,195, 90, 21,217,135, 20,133, 49, 10,165, 32,199, 8, 20,140, 22,180, -210,214, 13,168, 76,240, 65,144,185,188,113,233, 37,137,118,128,204, 52,175, 88,109,161, 20,209, 63, 24, 77,201,133,170,169,200, - 57,110, 72,107,133,247, 19,226,228,169,209, 78,179,142, 43, 90, 37,140,209,228,141,174, 50,206,113, 56, 30,229, 18,168,229, 61, - 23, 45,252,124, 42,137,156, 34, 57,102,250, 65,212,236, 49,166,237, 44, 45, 56, 99,113, 27,165, 20, 83,162, 40,185, 88, 93, 85, - 81,185,106,163, 53, 60, 93,215,227,253,202, 73,252,231,215,149, 16, 3,117,211,210,183, 45, 41,103, 78,154, 41,103, 29, 41, 70, - 82, 46, 28,143, 7,156,171, 48,206,144, 67, 36,230, 40,159,181, 21, 97,171,213, 22, 40,178,215,139, 52,128, 26,185,138,148, 41, -228,162,176,219, 61,134,102,235,110, 69,116,152,179, 52, 32,166,214, 88,219,136,102, 6, 69,242, 11, 99, 24, 81, 90,145, 83, 38, -149,130, 51,210, 48, 58,231, 4,253, 84, 26, 87, 85,232, 82,112,217, 92, 61,183, 20,209,122, 89,235, 56, 30, 46, 5, 45, 89, 87, -234, 70,206,236,178, 85,210, 39, 7,143, 15, 18,170,182,223,239,200, 57, 17,183, 80, 86, 31,253,230,226, 26,113, 78, 46,239,121, - 89, 54, 88,222,112, 18, 9, 59,231,136, 41,114,184,136,155,182, 77, 10,180,184,113,244, 41, 70,172, 82, 90,196, 30,243,132,223, - 58,213,161, 25, 88, 67, 96,156,103,154,106,235, 26,189,112, 43,117,227, 8,171,168,161,217, 42,255,237,111,144, 34,251, 59,174, - 19,130, 88,119, 82,138,164, 20,169, 54,193, 68,136,113,131,211, 10,109,215, 49, 47, 11,165,136, 69,162,107, 58,129,210,128,166, - 17,111,159,247, 2, 81, 55,141, 84, 68, 0,151, 23,151,156,188,232,194, 75, 20,178, 42,232,156,160,106, 40, 73, 32,221,170,174, - 57, 65,188,227, 40, 85, 83,191, 19,159,164, 53,154, 90,181, 18,196,225, 68,164,178,219,137,253,109, 28,183, 10, 55,101,234, 90, - 44, 57, 77, 83,115,234,184, 21,229,202, 30, 37, 98,193, 29, 41, 21,172, 53,114,152,213,242,122, 58,138, 55,243,226,226,124,243, - 20,139,170, 52,198, 32, 62,229, 16,200, 10, 98, 72,236,247, 3,243, 44,190,255,117, 14,194, 31,110,188, 49,112,101, 23, 42, 69, -248,100,191,172, 20, 37,133, 68,206,153,232, 3,227, 60,225, 47, 61,117, 35,220,152, 49, 78, 4, 62,182, 38,248, 64,219, 52,172, - 33,160, 16,213,108, 93, 57,214,120, 90,180,142,113, 28,233,187,238, 10, 78,157,167,137,162, 68,217,236,172, 40, 55, 23,159, 24, -186, 65, 10,139, 36,137, 95,245,246,189, 40,173, 69,181,110, 12,203, 60,211,181, 29,228,132,217, 32,125,187,121, 62, 67,140,104, - 43,188,186, 40,102, 87,108,181, 89,178, 4,104,184,226,215, 85, 41, 44,179,192,127, 49,105,154, 90, 60,176,165, 40,250,206, 98, - 92,131,202,138,162,107,194,234, 17, 15,186,226,236,172, 37,229, 36,220,181,209, 84, 78,224,210,156,133,158,145, 77, 18,113,206, -224,140, 99, 94, 15,178,225, 22, 73, 97,139, 41,162, 16,244,161,174,164,163,169,107, 71,206,134, 20,133,238, 41, 72, 33, 83,183, - 53, 77, 35, 7,121,183,107,209, 24, 4, 30,214, 44, 94, 14,194, 93,147,249,137,239,232,121,223,119,252,101,108,117, 31,235,205, - 87,249,141, 23, 95,230,217, 47, 62,207, 23,159,126,154,211,227,227,127,242, 41,238, 24,118,188,241, 13,247,241,242,205, 87, 65, -193,111,254,238, 71,184,125,126,193,191,233,241,194, 75, 95, 69,155, 47,240,190,119,189,147,239,249,192,191, 69,161,240,251,127, -252, 73,190,244,229,175,112,243,230,173, 63,247,108,205,229, 52,241,103,159,127,156,127,251,219,246,124,243,253, 15,240,238,183, -191, 21,103, 29,159,122,244,243,252,242,191,250,157,171, 11, 29,228,128,127,225,171, 55,121,244,177,199,185,235, 53,215,121,229, -214,171,204,243,202, 29,149, 70,237,123, 94,186,188,228,230, 97, 97, 56,219, 75,145,169, 53, 86, 43, 44, 2,237,231,156,201,235, -140,117, 13, 49,140, 88, 37, 97, 53, 49, 66, 92, 3,195, 78,232, 50,201, 25, 88,113,251, 61,243,188,114, 74,119, 43, 37, 83, 87, - 53,235,234, 49, 6,148,113,212, 27,106,229, 67,194, 58, 69, 44, 25, 85,138, 80, 27, 73,177, 46, 11, 77, 93,225,215, 72, 85, 27, - 98, 10,162,129, 49,114,168, 91,163, 55,136, 91, 99, 43,185,180,165, 0,105,129,204, 52,173,104,171, 89,131,164,131, 85,181, 32, - 58, 57, 25, 98, 90,105,235, 6,172,124,239,185, 72, 65,108,141, 37,172, 43,133,194,238,250,117,166,241, 32,103,143, 82, 40,231, -168,141, 35, 7,161,113,150, 44,250, 11,201,209,144,215, 95,231,137, 92, 34, 86, 87, 88, 91,112, 78, 50, 24, 10,153, 18, 11, 99, -156,164,123,111, 58, 65,226,178,208, 67,182, 56,178, 74, 40, 3,165,104,116,165,201, 25,154,182,193, 47, 51,125, 47,226, 80,138, - 36, 41, 42,173, 88,214, 5,173, 68, 41,175,181,166,105,154,173,235,222,196,200, 41,129, 86, 36,109, 24,215, 9,230, 21,173,217, -212,235, 82,196,201,247, 38,250,152,253,126, 79, 10,153,170,170,161, 8,172, 45, 23,161,232, 35, 50, 18, 90, 99, 67, 32,101,209, -131,132, 16, 36,109, 81, 41,154,166, 38, 68,233, 90,141,214, 34,200, 70, 80, 50,180,194,104, 75,223,186,205,205,145,136, 89, 92, - 81,139,151,247, 1,128, 82,184,202, 2,122, 91, 55, 9,178,132, 83,165, 44,157,255,186,172,204, 97,227,176,115,166,168, 26,173, -244,149,139,170,174,165, 96, 43, 89,212,231, 70, 21,234,182,195,101, 68,132,152, 11,182,182, 27,157,105, 64,139, 96,122,153, 39, - 40,108,162,194, 66, 81,133,121,211, 29,196, 49, 82, 82, 33,102,105, 10,218,166, 33,166, 64, 10, 17,219, 52,132, 40,122, 50,165, -228,142, 50,218,162,173, 34,103,161, 0,154,174, 38,250, 0, 25,172, 51,148, 34,148, 84, 93, 55, 24,107,174,180, 0, 33,120, 32, - 83,153,154, 24,196, 65, 97,235,186,134,172,104,235,158, 53,142, 44,139, 92,209,214,234,171,139, 83, 46,185,200, 56,143,196, 24, -105, 27,169, 24, 74,146, 11,185, 31, 6,166,101,145,168, 83, 54,129,209,102,117,241, 62,176,219,237,229,208,206,226,109,237,186, - 30,165, 33,167, 2,218,108,138,243, 25, 87, 89,150,113,196,110,220, 68, 91,213, 87, 10,237,166,110, 88,252,194,217,217,153,124, - 1,165, 72,229, 86, 85, 52, 40, 14,171,135,101, 69, 85, 21,227, 56,161,149,116,185,194,145, 40,134,190,195,214, 13, 49, 68,236, -182,232, 84, 22,158,101, 94,132,123,170,235,250,138,231, 60,241, 42, 33,136,141,175,170, 28,203, 60, 83, 87,245,149, 7, 56, 43, -133,214, 22, 99, 20,151, 23, 23, 34, 76,139,145, 76,166,222,237, 41, 49,145,146, 71, 35,190,213, 16, 3,231,183,207,105,187, 86, - 20,251,227,132,181,142,146, 36, 70,117,222, 68,116,226,111,118,116,109, 45, 65, 33, 49,138,168, 79, 73,151,104,156,120, 90,141, - 49, 76,203, 68,142, 98,167,232,135,129,113, 58,146,181, 37,174, 11, 70, 75,149,105,172,149,170,186,136, 55,119,183,219,113,251, -252, 54, 57,109, 28,140, 21,187,198,188, 44,196, 32, 2,165, 24, 35,198, 57,209, 88, 40,141,173,106,134,202,162, 50,236,247,123, -166,233, 72,152,226,182,153, 65,105,197,176,235,185,188, 60,208,183, 45,151,151, 7,249,253, 54,175, 47,232,171,239,164,174,107, - 82,204, 2, 97, 53, 13,201,123, 34,158, 72,222, 10,181,140, 95, 22,140, 50,116,195, 64, 33, 19, 67, 96,154,228,128, 11,155, 95, -126, 89,165, 51,175, 43,183,193,152, 14,103, 52,209,199,171, 12,129, 83, 49, 49, 77, 35,243,188, 0, 95, 91, 19, 49,106, 86, 45, -133,192, 50, 77,236,247,178, 78, 65, 32,234, 20, 35,174,174, 25, 47, 47,197,186, 21,163,172, 89, 36,217, 46,229, 76, 91, 55, 76, - 91, 40,134,213, 2, 39,151, 82, 72,169,208,182,150,183,222,173,249, 27,223,254, 26,250, 55,255, 36, 31,254,232,163,188,122,235, - 83,124,242,209,207,243,171,191,245,187, 60,251,194,139, 92, 59,219,243,218, 27, 55,176,214,242,239,124,199,251,249,129,239,254, - 46, 14,199,145, 71, 31,127,146,103, 95,248, 50,181, 19,241,161,143, 97, 59,195,132, 10,121,239, 59,223,198,178,122,190,233,181, -119,243,222,119,190,149,126,104,249,212,163,159,231,209, 47, 60,201,111,127,248,163,156,111, 1, 32, 95,123,136, 31,250,197,101, -225, 95,127,248, 99,188,255,145, 71,184,235,238,187,121,252,241, 39,248,208, 31,254, 49,159,250,204,103,249,243, 15, 13, 60,254, -244, 23,121,251,195,111,225, 29, 15, 63,196,239,252,254, 31,240,167,159,127,130,182,169,121,234,139,207,242,210,171,183, 49, 90, -243,250,251,223,192,155, 30,188,159,123,239,189,151,132,116,226,126,245, 20, 10,117,213, 96,172, 68,131,174,113,165, 36,241, 33, -175,243, 44, 33, 86, 33,202,133,115,156,112,157, 35,134, 32,231,192, 52, 35, 28,105,166,108,240,190, 13, 14,200,196, 28, 73, 65, -227, 42,131, 53, 14,133,194,135, 9,133, 98,157, 87,170,166, 38, 3, 37,101,180, 18,248,243,132, 66,234,162, 73, 57, 94, 33, 31, - 18, 28, 34, 58,147,170,134,101, 93, 40,185,108,130, 52, 79,140,114,161,245, 93,199, 26,196, 17, 16,130, 52, 27,178,103,165,192, -175,149, 37,153, 72,215,182,172, 49, 80,226,182, 14,138,192,218, 39,238, 56,248, 40,133, 96, 85,161, 96,227,185,229, 34,111,183, - 98,104,232,132,166,138, 49,108,133,179,132,176,212,117,205,120,220,242, 22,106,135,213,150,202, 73, 65,156, 98, 66,233, 36, 22, - 83,107, 8, 41, 50, 30, 36, 65, 77,208, 16, 67, 83, 55,232, 86, 75, 71,151, 18,182,178,104,196,109, 1, 66,241,105,160,170, 68, -215, 80, 85, 82,236,215,109, 67,244,158, 83, 0,211,186,174,228,156,153,231,153,147, 79,223, 7,121,205,211,159, 82, 68,208, 89, -140, 33,147,113,174,194, 57, 75,201,153,227,241,184,169,210, 45,182,174,168,234,138,146, 50,235,188,210,117, 45,203,186,146,130, -167,216, 10, 66, 36,110,205,135, 20,233,106,211,167,112,117,158,248, 24, 73, 65,190,183,144, 68,159,224,172, 67,233,194,225,114, - 2, 37,226,191,166,149,144,176,101,154,229,130, 7,177,236, 38,225,205, 83, 46,184, 90,211,208,177, 76,203,182, 9,180,104,125, -162, 8, 76,115,216, 82,249,146,228,120,212,141, 52, 53,243,178,108,239, 81, 26,211,227,225, 64,218,186,244,227,113, 60, 37,242, - 93,105,145,230,121, 33,103, 9,136,178,149, 35,120, 79,229,106,148, 65, 28, 22, 33,147,114,226,218,217, 25, 34, 12, 54, 66,233, -173, 30,181, 74, 22, 67,240, 43,117,215, 97,182,239, 63,213,219,165, 14,133, 37,136,197,162,105,164, 19,170,235, 26,140, 97, 89, - 87,186,166,225,242,226, 66,224,204, 32,144,163,209,134, 57, 78,144, 11,203,188,136,128, 32, 74, 74,210, 18, 34,121, 94,216,237, - 6, 82, 78,212,109,139, 4,139,120,154,166,193, 86,150,121,150, 15,117,191, 27,196,147,152, 51,243, 52,145,147, 36,111, 57, 99, -240, 25,198,121, 68,109,149, 80,206, 17,103,132,127, 94,125, 32,172, 11, 41,101,250,190,231,120, 56,208,236,119,226,119,212, 16, -214, 5,138, 66,169,194,181,107,215,160, 40,170,218,177, 70,177, 82,121,239,201, 64,213,117, 28,183,244,186,168, 51,235,197, 5, -117,221,110, 92, 92,141,179,134, 83,238, 49, 40,241,180,182, 18, 3,153,203,169, 99,151,215, 43,202,144,194,132,206, 18,178,225, - 20,168,166,226,120,140,228, 40, 11, 45,109,215,219, 50, 47,184,166,218,196, 63,114,153,246, 86,132, 50,189,235, 57, 78, 71, 66, -240, 76, 37, 49, 79,139,132,240,172, 30, 5,132, 32,138,234, 16, 35,203, 6, 65,245,125,207, 73,128, 88, 59,217,100,139, 95, 41, - 41, 95,121,106, 79, 62,216, 20, 35,182,174, 57,219,159,113,126,126,206,186,174,132, 16,232,186,238,170, 96, 9, 33,160,140, 8, -127, 82, 76, 44,179, 92,120,165,104,178,150,203,171,237, 6, 98,136, 44,203,132,219, 14, 22,138, 28, 4,211,178,130, 42,244,125, - 75,140, 34, 12,242,171,199,181,205,213, 97,218,180, 13,243, 52, 17, 66,144,195,201,106, 82, 73,180,173, 64,123,148,130,110, 29, - 57,138, 32, 46,103, 9, 89,208,218, 82,181,181,160, 71, 81,214, 68,200,153,174,170,164,131,217,232,133,147,175,159, 40, 86,185, -121, 94,200, 41, 35, 98, 61,182, 67,121,144,138,127, 19,187,205,243, 66,219, 54,242,115, 74,177,120,207,186, 65,112,165, 20,200, - 17,231, 68,157,157,179,188,150, 95, 3, 93,219, 64, 73, 24, 85, 72, 40,238,218,195, 27,175, 37,222,250,154,149,183,222, 85,208, -247,255, 24, 47, 95,140, 4, 63,243, 75,191,241, 91,124,240,163,127, 40,212, 13,112,253,142,107,124,251,251,222,205, 7,222,243, - 78, 46, 46, 14,220,124,245, 38, 47,190,244, 18, 31,254,248,159,240,185, 39,158,228,165, 87,110,242,245,143,147,128,231,179,143, - 63,197,127,245,215,255, 42, 63,253, 31,254, 40,119,156,237,121,254,197,151,249,212,103,191,192,199, 62,241, 41,137, 31,254,186, -199, 93,175,185,206, 59, 30,126,136, 7,238,251, 38,222,253,246,183,242, 67,223,243,157,244, 55, 94,195,173, 23,191,194, 39, 63, -247, 24,159,121,236, 9, 46, 54,244,233,244,120,228,173, 15,241, 29, 31,120, 47,181,117, 28,199, 35, 23,151, 7,126,234,199,127, -132, 71,190,229, 73,126,230,127,251, 89, 94,120,233,171, 0, 68, 64, 5,207,119,189,243,109,220,119,239, 55, 17, 66,224,137,231, -158,231,229,219, 7,142, 27,114, 98,177,172,126,165,113, 21,197, 66,206, 98,115, 21, 8, 90,144,190,182,173, 41, 90, 99, 81,132, - 53,224,122, 75, 92, 19,174, 50, 40,165,233,235,134, 80, 18,100,232,107, 41,188, 79, 26, 15,173, 13,218, 74, 87, 40,235,201,112, - 24, 71,134,161,199, 47, 43, 18, 93, 43,235, 66, 25, 89,167,214,218, 45, 91, 96, 97,153, 38, 52, 16,180,208,119, 73,101,162, 95, - 41, 69,209,184,154,162, 11, 97, 21, 46, 19, 3, 70,105, 81,238,199, 68, 83, 73,180,181,214, 91,178,162,146, 36,187, 82,144,162, -164,192,225, 40, 5,174, 86, 90,130,123,148,218,130,100, 10, 85, 45,121,251, 49, 4,188, 22,139,210, 48,116,184, 98,168,250,129, -147, 71,186, 20,205, 73,196,149,115,166, 50,149, 56, 76,116,129, 34, 93,235, 60, 79, 87,235,195,106, 41,170,180,209,114,169, 42, - 71, 8,145,182,237, 24, 6, 71, 73,210, 53,199,226,101,175, 89, 75,165,229, 44,179,206,210,234, 22,109, 12,117, 91,147, 82,160, -239, 58,170,166,230,120, 56,114,210, 61,173,171, 52, 32,198,172,236,207,118, 88, 43,186,150,101,145,203, 57, 36, 9,145, 66, 27, - 86, 37,188,114,101, 45,169, 8,124,158, 67, 4,191, 48,116, 3, 62, 74, 74,163,214,154,174,105, 5,161,161,108,251, 85, 52, 25, - 33, 69, 86,191, 89, 58, 21, 40, 37, 14,139, 83,158,123,211,212,148, 85,222, 87,101, 12, 90, 59,234, 90,220, 18, 97,163, 44,226, - 26,168, 43, 71,202,226,243, 62,191,184,144,215,210, 90, 10,178,117, 69,105, 57, 47,155,173,163,134, 66,142, 17, 91, 59,162,247, -212,174, 66,213,138,117,241,172,203, 34,247, 10,153,182,174, 55,250,192,209, 14, 3,228, 76,218,180, 3,192, 85, 83,165,181,166, -235, 90,252,102,183, 44, 89,156, 97, 74, 9,189, 97,186, 78,104,131, 8,199,227,145,161, 27, 48,141, 22, 29,145, 21,186,195,175, - 30,227, 44,148,132,247, 25, 99,165, 17, 77, 49, 97,151,101, 36, 23,216, 13, 59,198,121, 65,107, 81,250, 53, 27, 55, 17, 82,160, -168, 66,138,158,168, 10,214, 72, 7,187,219,237, 8,126, 37,132,204,116, 60,210, 54,155,117, 68, 27, 60,112,113,121, 73, 93, 85, - 88,224,114,148, 92,228,148, 4, 14,169, 76,225, 56, 29, 57,142, 35,187,253,126, 91,136,133,227,241,136,209, 26,183,223,211, 15, -114,112,202,144, 20,203,225,242,192, 41,121,104,232, 7,146,118,228,184,114, 56, 28, 17, 46,220,176, 46,146,240,213,109,139,207, - 24, 81,151,239,247,123,150,117, 65, 41,205,178,200, 7,105,156, 65, 81, 49, 12, 29,160,185, 56, 63,167, 32,254, 92,101, 20,243, - 60, 49, 23,225,189,208, 90,132, 16,206,137, 40, 65,201,162, 42, 10,216, 46,146, 94, 21,110, 77, 72,231,170, 53,199,113,164,105, -123,246,103, 59,114,201, 76,199,153, 97,104, 89,180, 68,106,158, 16,144,144,146, 92, 18,100,200,136, 71,180,106, 41, 69, 44,123, - 74, 43,129,138,171, 10,171,245,213,166,118,206, 17,151, 21,178,112,245, 85, 93, 1, 10,146, 34, 18, 33, 23,172,214,204,147,160, - 22,218,138, 18, 60,169,173,227,204,146, 13,238,204,102,231, 41, 5, 69,145,207,106, 89,208,198, 16,214,128,178,162,188,245, 62, -146,114, 34,248, 21,103, 45, 93,215,160,117,133,209, 5, 99, 78, 65, 34,114, 88,199,228, 25,186,225,106, 17, 27,109, 49,214, 64, -209,212,181,102,245, 43,106, 85,116, 93,143, 28,233,210, 25,107, 99,152,143, 51,174, 22,231,133, 82,144,148,240,108, 98,109,203, -204,179,104, 42, 42, 87, 49, 12, 61, 57, 23,252, 52,177,174, 51, 41, 21, 76, 18, 81,224,149,101, 40, 37,226, 34,223,189,182,154, -182,170,169,183,164, 45,173,244,166, 60, 21, 78,116,153, 34,151, 23,151,160,196,110, 56, 12, 3, 62,136, 98,214,213,162,224, 62, -217, 93,150,117, 37,248,192,251,223, 92,241,174,123, 39, 6,235,120,195,107,224,158, 42,160,183,247,116, 76, 29, 47,199,111,161, - 43, 61, 23,183, 95, 32,248,192,127,253,211,127,141,187,239,188,193,207,253,210, 47, 19, 67,226,153,103,159,227,158, 59,111,160, -141,230,190,215,221, 69,215,222, 75, 74, 35,111,126,240,126,110,222,186,197,229,225,200, 56, 73, 1,112,122,188,238,238, 59,249, -193,239,254, 78,174, 95,187,198,151,191,242, 50, 74, 25,190,244,229,175, 48,205, 19,215,206,246, 92,108, 41, 86, 0, 15,190,254, - 94,254,230, 79,253, 21,126,224,187,190,131, 59,206,206,168,234,138,232, 61,231, 47,190,204,227,207, 60,203, 52, 47, 18,136,180, -117, 21, 39, 36,224,242,120,196, 42,205, 59, 30,126,179,116,248, 47,191,196,115, 47,190,200,229,241,200,245,179, 61, 47,190,100, -241, 33,114,215,141,235,188,253,225,183,160,141,230,252,252,156, 47,191,244, 50,255,215,255,243,207,241,193,115,239,235, 94,199, -189,111,124, 35,109,211,209,247, 98, 83, 36, 75,188,174, 40,151, 21, 85,211,225,140, 35,197, 68, 33,211,237,122,198, 75,113,218, -152, 70,168, 28,173, 69, 8,151,183,245, 20,146, 68,208, 58,163,105,251,142,117, 94, 69,157,159,229,160, 95,203,138, 49, 48, 29, -143, 82,156,246, 3, 20,133, 15,126, 19, 98, 10,191, 28, 99,100,241,226, 21, 94, 22, 73,236,130,130, 81,208, 52, 29,214,176,137, - 78, 50,197, 73,116,109, 78, 17, 83, 11,199, 89, 82, 98,216, 13,162, 1,138, 34,122,211, 74, 38, 25, 30, 14, 7,177, 57, 89,205, -208,247,200,209, 37, 22,215,156,210,134,134, 37, 74,129,121,157, 57, 69,101, 75, 1, 11,211, 58, 35,241,213, 95, 27, 36,210,117, - 59,156,171,201, 37,161,209, 84,218, 32, 73,124, 2,129,119, 90,179,172, 66, 41, 42,101,104, 20, 20, 37, 9,103,126,163, 0, 82, -240,196,128,172,249,237, 28, 90, 67, 32,197,136, 49,178,114,167,113,102,216,245,140,135, 17,179,209, 86,166,174,208,218,176, 59, - 59,163, 36,113,129,172,155,118,167, 80, 56, 30, 39,172,150,192,168, 92,178,164,133, 26,153,144, 38,208,118, 38,229,140, 47, 9, -208, 88,107,183, 98,165, 48,110,201,154,125,215,139,203,192, 90,214,184, 50, 47,194, 39,119, 77, 75, 85,215, 52,186,101, 89, 23, -188,143,148,146, 68, 3,177, 93,232, 33, 4,170, 74,132, 98,243,188,112, 76, 19, 70, 11, 21,228,170,154,166,149, 4,185, 53,200, -192, 37,165, 20,108,116,243, 52, 79,116,117,205,105,162,101, 41, 10,165,197,221, 16,163,248,237, 99,158, 73, 75,162,109,229,162, -247,147, 80, 19, 41, 23,161, 16,141, 33, 26,153, 15,145,180,197, 21,161, 40, 36,132, 74, 40, 93, 65,117, 4,233, 40, 37,161,148, - 37,132,133,152, 19,164,204, 98,228, 60,119,206,145, 82,166,219,236,162,107, 10, 16,212,134, 30,104,148,146,156,150, 83,242, 97, - 81,133,152,164,128, 83, 70, 97, 99,146,240,151,140,168,199,109,109,161, 24, 78, 73, 82,165, 20, 84, 35,161, 22,248,149,166,170, -176, 26,148, 49,216,174,167, 74, 18,193,184, 6,143,173, 42,129, 91,179, 64, 72,137,196,241, 82, 46,221, 92, 50, 40, 56, 30, 47, -183,252,228, 68, 55,180, 92,156,159,211,239,118,160,164, 35, 79,171,164, 67,141,227,129,148,228,146, 17, 19,127,123,149,100,229, - 83,162,105,106,242, 22, 80, 96,140, 40,136,141,145,110,107, 24, 58,206,174,157,161,209,104,163, 24,103,201, 47, 47, 5, 84, 43, -138,240,152, 11,141, 18,223,187, 95, 60,251,221,142,113, 89,196,146,129, 38, 89, 71,206,133,241, 40,197,132,120,238, 53,174, 54, -178,201,180,166, 31, 36, 30,181,239, 59,142,203,122, 69, 83,212,109, 79,227, 54,187,220,188,208,180, 13,218, 42, 80, 34,184, 56, - 45, 74,109,173,216, 4, 55,174, 38,151, 76, 14,137, 84,196, 10,210,181,189,116,163,214, 50,110, 94,110,225,158,165,176,106,170, - 10,101, 90,150,101,194, 88,115, 85, 69, 23, 47, 42, 75,163, 13, 77, 43,214, 11,163,148,116,238,219,193,161,141, 92,214, 90, 73, - 66,224,186,174,226, 39, 71,209,118,221,149, 72, 36, 4, 79, 91,183,172,139,132,229,212, 77,195, 60,142, 34, 12,172, 68, 24,216, -117,110,115, 76, 72, 90, 23, 32,225, 44, 90, 18,202, 78, 17,157,109,219,138, 88,198,214,212,109,131, 42, 98,103,140, 41,161, 80, -148, 28,105, 59,129,215,115, 41,140,151,194,117, 15,125, 79, 33,179, 44,158,182,105,182, 78, 72, 68,115, 68, 41, 94,188,247,212, -109, 71, 88, 87, 86,164, 42, 86,165, 80, 53, 27, 84,167,181,168,241, 83, 18,170,160,233,165,120,221,232, 13,165,196,110, 87, 57, - 75,200,129,130, 34,120,177, 63,174, 97,145,144,163,166, 99, 92, 22,156,179, 92,239, 50, 63,245,157,150,247,220, 7, 77,202,160, - 2, 40, 45, 69, 93, 41, 92,220,247, 8, 55, 95,221,241,210,205,154, 79,255,139, 95,227, 23,254,249,175,240,233,207, 62,198,159, -127,252,139,159,253, 71,124,215, 15,127, 31,121,241, 44,175,220,162, 58, 27,152,111, 95,240,235, 31,252, 16,127,248,233,207,252, -133,231,255, 79,255,224,191,225,111,252,237,255, 28,156,197,191,124,155,188,204, 44, 33,242,192,189,175,227,247, 62,246,199,252, -201,159, 61,250, 13,207,175,235,154,199,158,122, 6,107, 44,239,123,231,219,185,251,198,117,230,101,225,169,103,159,227, 95,125, -248,163,124,232, 99,127,196,147,207,126,233,234,249,167, 78,239,153,231, 94,224,119, 62,242, 49,180,214,124,224,145,119,160,181, -229,241,103,158,230, 87,255,245, 7,121,230,249, 23, 0,168,108,197, 91,191,249, 77, 60,242,240,155,121,199,195, 15,241,213,155, - 55,121,242,217, 47,241,202,171,175, 2,112,113,121,224,115,143, 63,193,245,215, 92,231,254, 7, 30,228, 45, 15, 61, 68,202, 5, -163, 34, 68,209,189,100,165,152,143, 35, 69, 43,134, 90,210, 28,179,146,131,239,196,133,215,109, 45,103,136,146, 75, 96,157, 87, - 10,144,163, 34, 5, 9, 92,177,141,132,245,180,109,195, 41,194,211, 86,162,248, 62,229,229, 27,107, 80,104, 82,136, 44,235,194, - 48, 12, 12,131,168,168,167,163, 32, 59,185, 64, 93, 91, 80, 90,104,161, 40,185,220,109,215,160,149, 8,164,210,118,102, 26,183, -165,157, 21,168,235, 10,107, 29,211, 60, 51, 29, 47, 55, 24, 58, 48, 29,103, 64, 75,145,106,149, 64,201,182,194, 25,137,234, 77, -254,100, 53, 44, 44,222,111,123, 16, 20,154,170,174,183,110, 79,102, 65,156, 60,223,114, 41, 20,172,171,200, 69,120,215, 92, 4, - 1,177,214, 33,142, 3,133, 50, 14,173, 20,181,171,176,182, 34,165,149,197,139,245, 83, 25,137,110,173,171, 26, 93, 36,166, 24, - 35, 60,251,105,132,116, 81, 96,180,252,238,101,187,164, 74, 41, 52, 78,242, 72,190, 94, 12,118,106, 82,162, 79,180, 77,135, 97, - 65, 91,135,164,215,157,210,213,228,115,146,119, 43, 40,134, 4,185, 40,148, 81,196,228,209,186,160,172,102,168, 7,142,151,151, -164, 20, 25, 39,177,169, 74, 70, 74, 11, 44, 40,156,160,152,206, 18,163, 80,118,199,227, 72, 65, 52, 72,149, 17,222, 57,172, 66, - 99, 76,211,204, 48,116,244,189, 76,139,204, 69,220, 60,235,178, 72,226,226, 50, 17, 99, 32, 37,241,139,183,181, 80,204, 77,213, - 16,162, 76,159, 59, 30, 37, 59,197, 90, 67, 53,244,146,180, 89,100,184,215,180,161,171,198, 24, 74,144, 16, 36, 41,144,217,220, - 59,105,251,221,217,154,164, 69, 40,110,213, 96,146,103,201, 30,149,165,208, 76, 41,115,118,182,219, 10,188,140, 83,154,227,225, -200, 48,236,240,139,199, 53,142,101, 89,240, 94,246,129,115,142,166,109,177, 70, 80,111,123, 10,116,153,231,153,180, 38,220,208, - 19, 74, 70,199,196,241, 40, 3, 19,140,171,168,107, 49,222, 31,142, 71,196,150,211,225,106, 43,126,214,174,225,242, 32, 89,210, -195, 48,176, 4,207,197,225, 2,173, 20,251,253,158, 19,159,149, 74,193,251,149,105,154,209, 72, 37,221,239,119,196,205,251,174, - 0,229, 28, 57, 38, 98, 76, 84,149,219,146,187, 96,216,237,217,239,247, 80, 10,227, 60, 19,214,149,132, 36,194,181, 91,108,170, -177,142,182,169, 56, 28, 14, 24, 45,169, 59, 10, 72, 81, 58, 15, 5,148, 2, 93, 63, 48, 30, 71,214, 24,136,211, 66, 70, 81, 43, - 9,241,143,193,163,173, 97, 77,146,203,219,118, 18,247, 41,156,106, 16,197,245,246,190, 84,217, 14,145,148, 25,250,254, 74, 13, - 57,206, 35,107, 22, 63,108, 41,133,156, 68,205,106,140, 17, 59, 70, 37, 10, 73,177,214, 72, 98,146, 53, 22,101,149,192, 49,219, -193,122,250, 66,115, 74, 88,165, 41, 78,186, 69,171,197,147,185, 46, 43, 74,201, 37,178,122,207,176,219,145, 98,228,120, 60, 50, - 77,147,248,183,151, 64, 63,244, 76,199, 35, 41,137, 5, 45, 39,129,207,250, 97, 64, 89,123, 37,156, 57, 92, 94, 98, 93,133, 54, -154,218, 57, 66,218,244, 20,165, 80,107, 17,131,164,152, 48,214, 48,141, 35,243,164,216,239,123, 14,135,145,182,105,152,253, 66, - 94,229,179, 72,101,227,143, 74,161,111, 91, 98,206, 40,109,168, 42,131, 42,133,146,210, 54,192, 97, 19,179,172, 1,173, 45,243, -188, 82,136,164, 8,206, 74,145, 72,217, 38,175, 53, 53, 10, 69, 78, 34,112, 90,198,133,174,145,148, 44,215,247, 72, 38,118, 35, -214, 19, 85, 68,195,145,146, 36, 96,229, 44, 67, 63,180, 8,164, 82, 74, 87,175,183,174,158, 82, 64, 27,177,229,117,136, 23, 59, -165,204,225,112, 65,213, 84,244, 85,135, 82,134,123,110,116,188,235,198,200,143,189,219,113, 86, 59,202,141,215,145,173, 70,191, -242, 10,229, 43,183,136, 85,197, 87,234, 55,160,226,253,220,184,247, 77, 12,119, 44, 20,227,248,228,103, 30,228,137, 47, 62,199, - 56,142,236,250,158, 55,220,251, 58,254,254,223,250,207,248, 75, 63,240, 61,164,203,145, 95,251,181,223,228,151,127,243,119,184, -117,121,201,167, 31,253,220, 95,232,206, 1,222,247,206,183,243,189,223,241,173,228,217,147,110, 31, 24, 47, 46,121,229,230,171, -188,122,251, 54,255,248, 23,254,111,126,253,119, 63,242, 13,207,191,118,182,231, 45, 15, 62,192,127,240,131,223,207,251,222,243, - 8,166,174,200,139,231,153, 63,251, 12,191,253, 7, 31,231,131, 31,253, 56, 79,127,233, 27, 85,242, 32,159,245, 59, 30,122, 51, -143,188,237, 97,154,186, 98, 94, 87,218,166,230,218,254, 26, 55, 94,115,253,234, 82,247,209,115,126,113,201,225, 48,114,113,121, -193, 27,223,112, 31, 63,253, 19, 63,202, 60,175,252,214,239,127,140, 83,200,210,173, 87,111,113,235,213, 91, 60,249,248,227,188, -235,189,239,230,190,215,191, 1,219,138,221,203,207, 43,186, 54,248, 53,112,121,184,148, 92,107, 32,248,128,235, 36, 43, 59,103, -201,222, 78, 41,161,173, 65,226,162,101, 78,117,202,153,180, 6, 72, 5, 99, 28,211, 52, 94,193,166,218,152, 77,140, 36,133, 61, - 8,197, 24,115, 32, 35, 49,175, 97,245, 84, 93, 77,221,202,224,169,121,158, 89, 23, 67,191,107, 65,107,210, 26,200, 69,214, 91, - 54, 25,131, 66, 25,131,171,107,150,121,228,242,114,193, 25,139,173, 52, 97,131,144,215, 36, 46, 19,191, 44,104, 45,195, 99,178, - 47,236,155, 65, 6,176, 88, 13,202,210,181,130,188, 9, 72, 39, 17,187, 74, 21,114, 18, 47, 56, 57,201,197, 92, 60, 37, 21,180, -115,168,146, 4,149,147, 45,140, 49, 21,114,176, 1,218, 80,215,181,140, 43,206,133,148, 60,243,188, 82, 57,225,239,235,186,193, - 26,225,106, 37,206, 85,177,174, 51,117,211,110, 40,161,160,115,198, 74, 8, 85,223,119, 68, 31,104,155, 78, 28, 59, 41, 98,148, -104,116,198,227, 72, 86,153, 97,163, 8,114, 18,136, 91, 25,197, 60, 77, 52,109, 43,162, 49, 43,190,125, 31,182,215,217,146, 49, - 75,206,168, 34, 73,117, 33,137,107,161,169, 29,110,168, 88,214, 25,165, 4,250,151, 56, 96, 45,168,113,204,120, 63, 97,141, 4, -152,105, 45,244,104,140, 35,195,110,183,189, 39,177, 7,183,173, 20,107,218, 74, 3,116,210, 35, 20, 4,145,204, 89,220, 6,185, - 20,240,160,245, 73,151,160,182,130, 77, 16, 6,109, 53,243, 60,211, 53, 13, 77,221,112,138,185,141, 36,142,227, 72, 12,129,166, -174,232,251,129,197, 47,180, 77,123,229, 30, 82,104,188, 23,100,161,109, 79, 77,169, 98, 24, 58,172,171,176,198, 48,142, 23,212, -117, 67,219, 89,214,117,198, 41, 71,219, 52, 28, 14, 7,156, 19,159,250,197,225, 64, 93,215, 88,107, 8, 90,232, 41,201,171,151, -225, 54,235,186,138,107, 73, 11, 2, 98,181,146, 14,175, 20,233,138, 15,135, 3, 37,102,142, 57, 93,101,111, 27,173, 4,150, 36, -147,139, 92,220, 18,114,162, 57, 28, 15, 88, 39,214, 29, 65,152, 4, 98,234,155,134,227, 56,146,147, 84, 50, 89, 41, 40,112,214, -247,172, 41,225,140,116,166,151,231,231,128,150,191,148, 36,248, 44,139, 4,234, 55, 77,203,225, 32,208,253,120, 56,224,106, 71, -219, 13,180,109, 75, 41, 48,175, 43, 49,200, 70, 52,214,178, 27,122,214, 32,202,240,182,107, 25,167, 3, 93,219,209,214,149,116, -176, 74,145,114, 97, 90, 37,136, 97, 90, 38,170,218,161, 19,172,203,138,117, 1, 48, 44,209, 19, 55,155,135,181, 14,235, 12, 70, - 89,234,206,201, 4,162, 34,188,134,228,223, 91,118,187, 65, 20,246, 90,102, 4, 59, 91,179, 6,137,239,115, 78, 52, 4, 93,215, - 49,173, 19,118,131,230,171,170,162,178,150,146, 11,227, 52, 18,194, 74,215,247, 28,143,226, 83, 44,165, 64,150,157, 43, 83,197, -206,208, 70, 66,125,252,186, 80,148,194,167,136,206, 98,123, 1,117,245,197, 86, 85, 69,211, 84,132,144,168, 54, 71,128,113, 18, -164, 33,155, 42, 50, 77, 19, 23, 23, 23, 24, 99, 56,219,237, 36, 62,181,239,241,193, 67,130,160, 37,146,240,226, 98,196, 90,187, -189,190,112,181,251,221,142, 49, 28,183,234,117,150, 3,204,123,186,182,231,152, 15, 24,107, 37,145,204, 89,148, 50,130, 94,184, - 90,166,172,117, 29,199,233,136, 49,142, 97,232, 56, 30,142,212, 69, 16,131,156, 18,117,237,208,186,102,158, 71,180, 21, 65, 93, -201, 17, 52, 76,231, 2,211,233,124,117,166, 49,109, 7,231,126,183, 99, 90, 60, 70, 41,169,160,173,165,169, 20, 57,109,246, 30, -107, 33,103,166,101,197,110, 48,155, 82, 66,109,156, 82,169,156,117,164, 32,195, 34,172,214,226, 58,200, 82, 60, 93,235, 50, 63, -246, 78,203,183,127,179,165,243, 53,186, 36, 74, 72,112,235,166,160, 12,222, 51,229,138,231,185,135,179,251,191,139,238,218, 3, - 28, 94,126,137,227,120,228,231,127,233,255,229, 23,127,229, 55, 56, 61,238,184,118,198, 7,222,253, 46, 94,119,231,157, 92, 60, -251, 2,227, 60,227,172,195,123,207, 31,252,209, 39,248, 55, 61,254,214, 95,255,171,252,195,191,255,119,192, 90,210, 52,179, 78, - 51, 77, 83,241,224, 91,222,196,240,194,139, 60,245,236,115,127,225,103,206, 47, 46,121,219, 91,222,196,219, 31,250,102, 20,112, -124,245, 22,175,222,186,205,135,254,232, 19,252,220, 63,251,229,205,226,245, 23, 31, 49, 70, 62,251,196, 83,116,109,195,107,206, -206,184,227,218, 25,247,220, 37, 20,193, 61,119,221,160,239, 90,198,105,230,245,247,220,195,127,249,159,252, 53, 30,121,248, 33, -142,211,196,241, 56,113,199,181, 59,248,193,239,254, 75, 60,253,165,231,121,236,169,175,169,233,187,182,225,117, 55,238,224, 53, -117,197,251,222,120, 31,174,174,249,252,243, 95,225,118, 6,140,162,100,133,210,194, 47,158, 68, 64, 49, 36,214,197,147,138,240, -155,107,240,148,176, 77,135,171,182, 97, 29, 81,132,187,203,178,160,149,116,255, 69, 65, 81,154,146, 37,180, 38,100, 25, 92, 18, -130, 36, 73,106, 20, 93, 91, 51,142,210, 92, 40, 20,222, 47,168,109,152,145,213,138,184, 74,112, 83,211, 54,228,101, 19,188,101, -205,154,162,136, 85,139,136,137, 83, 22,111,247, 26, 60, 33,129, 42,133,221,208, 75,103, 90,164, 91,107,173,219, 92, 37, 50,137, - 44,173, 98,245, 50,219, 58,148, 64, 39, 69, 57, 45,106,228,142, 6,168,107,141,179, 53,206, 34,103,138, 95, 81, 40, 92,229,208, - 74, 11,165, 16, 37, 42,213,108, 5,122, 12,129,170,174,153,166, 85,172,170, 74,248,246, 70, 55, 50, 43, 98, 24, 40,136,143,188, -223,237,164, 65,202, 25, 74,194,105, 77,204, 17,163, 42,146, 42,164, 20,129,250,170,123, 79, 74, 97,180,228,150,199,224, 57, 63, -191,184,210,234,244,189, 97, 60, 78,116,109,199, 60,207, 80, 50,211, 36, 65, 65,183, 76, 24, 0, 0, 32, 0, 73, 68, 65, 84, 58, -125,215,225,189,199,185,138,186, 50, 27, 58,166,229,245, 5,196, 20,196,210, 90, 98, 72,164,184, 16, 98,194, 57, 72,113, 97,161, - 48, 12,123,180, 22,228, 77,105,177,255,230, 34, 9,122, 57, 23, 74,129,101,145, 6,101, 26, 71, 41, 44,198,137,170,174,175,206, -197, 83,192, 77, 78, 1,175, 4, 37, 57,219,237, 48, 70,163,181,196, 97, 43, 99, 40,169, 48, 45, 51,165, 72, 33, 56,206,147,232, -162, 38,185,155,208, 66, 25,150,156, 69,183,177, 21, 10,199, 44,130,198, 28, 19,198, 9,122, 19,151,192, 33,172,236,207,174, 1, -138,227,225,128,210, 26,219,183,116, 93,199,197,197, 5, 80,228, 94,181,154,241,242, 64, 74, 65, 40, 89,165,160,228,237,123,148, - 28, 13,153,148,151,175, 80,193,170,138,204,179,136, 23, 55,159,122,198, 20, 69,200,146,105,222,212, 13,199,229, 2, 5,140, 23, - 23, 20,165, 64, 11,116,234, 83,164,171, 43,206,207,207, 49,198,208, 13, 18,112, 95,138, 40,133, 47, 47, 46, 64, 41,138, 82, 28, -130, 84,173,231,231,231,210,169,107, 33,242,135,253,158, 90, 59,198,105, 38, 38,169,152, 41, 25,163, 43,114,242, 28,143, 35,125, - 63, 72,172,171, 54,236,119,123,230,101,198, 58,241, 84,250,101,193,184,138,195,197, 57, 17, 9,186, 57, 13, 21,161,192, 58, 47, - 91,110,116, 32,167,194, 97,156,168, 93,197, 56, 45,148,146, 25,250, 29, 62, 6,146,201, 52,117,139, 42, 26, 83, 27,218, 78,108, -123,218, 24,230,113,102,191,219, 70,156, 82, 80,106,207,186,206, 24,107,216,157,237, 9, 94,108, 24, 98,203, 74,172, 94,236, 84, - 70, 27,166, 60,162,148, 98, 63, 12, 92, 28, 15,172,171, 92, 58, 90,159, 66, 38, 36,148,102, 28, 71,230,109, 51,149, 34, 67, 31, - 98, 22,206,166,100,233,166, 87,191,110,126,223,196,178,206,210,101,132, 72, 76,137,170,170, 24,186,142,101,153, 89,102,225, 24, - 21,138,170, 18,109,131,143, 18, 80, 83,185,147, 79, 52,178,230,149,156,133,131, 58,113,167, 41, 37, 22, 47, 30, 72, 31, 60, 86, - 91,198,121,102,208,157, 76,145, 67, 44,133,107,248,218,137, 19,115, 20, 77, 69, 8,104, 91,208, 70, 98, 16, 11, 74, 6,164,228, -196,180, 44,148,109, 3, 85,117, 13, 74, 83, 55,213, 85,238,248,233,247,168, 27,153,132,135, 2,137,151, 44,236,135, 29, 90, 73, -108,235,126, 63,112,113,113,206, 50,206, 84, 85, 77, 34,145,148, 98,104, 58,148,145, 66, 64, 91,187,217,233, 44,206, 90, 80,176, -204, 19, 71,239,233,123, 17, 99, 94, 33, 62, 91, 0,142, 76,174, 42, 84,181,132,140, 88, 93,161, 43,197, 60,206,180,189, 84,213, -175,237, 51, 63,248, 80,197,183,222,185,114,255,189, 6,188,162,172, 9,102,225, 79, 49, 25, 85, 70, 80,154,155,241,140,151,219, -215,115,215, 91,191,151,186,191,155,207,253,233,167,121,226,169,103,248,224,199,255,136, 95,252,149, 95, 7,132, 94,186,231,181, -119,241,200,195,111,230,123,191,253, 3, 60,240,250,123,169,155,154,118, 24,120,239, 59,133, 82, 80, 74,241,187, 31,251, 56,126, -131,101,251,182,229, 13,247,125, 19,199,105,228,201, 39,159,230,222,123, 94, 75,240,146,250, 88,183, 53, 47, 62,243, 69,254,231, -255,253,103,249,194,211,207,202, 97,167, 20,168,194, 59, 31,122,136,191,247, 55,255, 83,126,224,135,191, 31, 20, 28,190,242, 10, -143, 62,254, 36,143, 61,245, 52, 47,189,252, 50,103,195,142,101,125,149,255,191,199,208,201,232,201,182,149,241,186, 63,255, 75, -191,202,239,253,225, 31, 51,207, 51, 85, 85, 49,110, 41,137, 31,251,196,167, 24,231,145, 7,238,189,143,167,158,125,142, 63,125, -236, 49,158,122,230, 75,146,250, 88, 73, 22,124, 41, 82,172,223,123,207, 61, 60,252,166, 7,184,231,206, 59,121,235, 55, 63,200, -143,252,224,247,243,248,151,159,231,247, 62,242,113,158,120,238,203,164,252,181,105,125,187, 97,199,225, 48, 98,173,162,111,123, - 66,137, 80,100,112, 80, 41, 34,168, 90,147, 80,111, 90, 43, 92,213, 96,141,172,205, 18,229,162, 46, 90,206,196, 83, 34,160,173, -106,161, 17,129,130,204, 36, 88,214,149,156, 18, 49, 23, 42, 85,216,237,122, 82,150,225, 35, 33,120,201, 37, 87,146,247,109,148, -218,132, 78,176,172,146,141,208,110, 80,168, 49, 6,171,229,117,231,105,166,105, 27, 98,242, 40, 36,183, 62,205, 51, 40,144, 9, -133, 3,243, 56, 51,251,121, 43,192,155,173, 33, 74,104,109, 41, 5,208,144, 98,100,245, 1,175, 61, 20,177,196,182,117, 75,161, - 16,124,192,182,142,206, 52,228, 92,200,136, 7,221, 85, 98,255, 61, 28, 46,233,218,118, 27, 42, 36,151,194,229,241,128,210,138, -121,153, 57, 13,204,210, 40,218,182,147, 16, 39,107, 57,140,163, 32,105, 38, 49, 30, 71, 26, 39,123,182, 27, 6, 98, 10,130,243, -111,154,163, 16,100,141,166, 32,197,139, 95,101,110,252,241,120,196, 56, 75,215,180,104,157, 8, 49,112, 88, 38,249, 30, 74, 70, - 33, 99,172,141,134,213,123,249,255,101,113, 34,185, 74,214,156,100,168, 11,157, 41, 42,242,194,120, 28,233,182, 65, 93,166, 8, -154, 42,243, 57,182, 88,106,242,118, 46,173, 44,139, 68, 8, 91,231,152, 54,235, 25, 74,214,118, 41,210, 52,157,210,250,244,233, -143,150, 39,200,153,109, 25,186, 14,144,252,248,190,237, 8, 57,162, 74,133, 82,194,201,155, 78, 6,192,204,235, 74,109, 12, 96, -153, 87, 79, 73, 11,103,103,215, 40, 37, 9,215, 94, 27,234,186,103,154, 23,161,158, 11,146,244, 87, 78,235, 83, 4,146,211, 56, - 74,128, 87,201,144, 53,198, 74, 70,137,247,158,224,165,152, 80, 74, 83,146,248,218, 83, 18, 61,214,178, 44,180,109,127,213, 64, - 90,173, 21,205,208, 19, 47, 47, 56, 30, 70,218, 93, 79,177, 14,165, 21,172,146, 6, 84, 98,102, 58, 28, 80, 86, 51,229, 45,154, - 48, 22,226,154,100,226, 80, 57,213,149, 50, 37, 41, 1,227, 81,248, 93,245,117,255, 77,163, 88,167,137,152,243,150, 92,150,113, - 78, 14,225,202, 90,148,178, 76,243, 81,132, 39,201,179,219,239,177,149,101, 87,237,201,165,112,188,156,200, 42,163,214,109, 8, - 76,145, 46, 93, 25,131, 81,134,148, 19,187,173,219,173, 93, 67,221, 9, 63,149,115,164,169,106,142,179, 92,164,218,106, 32, 83, -148, 70, 41,225,117,151, 84,104,109, 35,155,201,157, 68, 32,133,184, 65,235, 85, 37,179,116,143,135, 3,148, 66, 55, 12,114,128, -110,149, 23, 74,209, 15, 59,148, 18,126,106, 89, 23, 42,109,177, 77, 37, 29,174,146, 56,217,130, 92,164, 49,137, 88, 38, 43, 69, -163, 53,167, 73, 86,203,188,160,138,217, 20,204, 18,138,209,245,131,164,137, 21,104,235, 26, 91, 85,144, 36, 16,198,106, 25, 7, -154,115,161,174, 68,165,125,121, 57,110,138,109, 81,107, 79,199,163, 84,180,195, 32,144, 18,112,154, 88,230, 87,177,138, 5, 91, -209,182,205,213,160,141,227,241,200,181,107,123, 74, 17, 4, 32,167,194,238, 76, 40,135, 16, 2,231, 23, 7,250,190, 69, 83, 67, -214, 52,125, 43, 21,168,218, 56, 71, 10,130, 8,138,199,126,153,103,246,251, 61, 86,107, 50, 21, 41, 36,129,218, 75, 6, 52,117, - 37,190,252,117, 93,185, 56,140,236,119, 61,181, 18, 75,165, 49,142,152, 10,139, 95, 57,141,223,205,186, 72,133, 92, 10,172, 43, -195,126, 71,152, 87,252, 38,250,171,171, 10,215, 72, 90, 98, 12,146,220,103,140,227,242, 32,200, 67,219,116,132, 36,194,190, 98, - 97, 58, 92,136,230,160,170,176, 42,242,147,239,179,252,123,239,210,148,100, 64,237,200,179, 71,251, 21, 85, 89,178,219,222,157, - 85,228,221, 53, 94,189,254, 8,183, 94,120,149,179,235, 15,226,154,235, 60,246,153, 79,243, 39,127,246, 40,255,228, 23,255, 25, -159,127,234, 25, 0,238,190,241, 26,254,199,127,240,119,249,206,247,191,143,235,247,223,135, 50,138,226, 3,235,171, 23,252,204, -255,250,127,240,191,252,147,159,227,207, 63,238,184,118,198,127,241, 87,126,130, 31,255,161,239,231,129, 55, 62,128,170, 37,224, -132,148, 73, 62, 16,231,137,103,191,244, 2,175,220,250,154,143,189, 20,161, 59,222,242,166, 7,105,155,154,231,159,248, 34,119, -222,184, 3,231, 12, 15,189,241, 65, 66, 8,124,232, 15, 63,193,203, 27,239,125, 42,238,100, 45,203,207,131, 4,219,252,229,127, -247,251,120,255,123,222,133,247,158,203,241,200,231,159,120,138,147,242, 25,224,181,119,221,224,189,239,120, 27,119,221,184,206, -115, 47,188,200,111,126,240,195,124,242,115,143,113,126,241,231,237,116,112,235,246, 57,207,124,233, 57,222,254,240, 91,216, 15, - 29, 77,211,146,166,137,215, 53, 45, 28, 39, 62,247, 39,159,228,114, 90,120,251,123,222, 69, 63, 12, 44,235, 74,219, 85,104, 52, -227,186, 32, 88, 81,129, 36,130, 74, 63, 77,212, 70,198,207, 30,189,167,114,154, 16, 69, 89, 28,131,167,239,100,188,168, 82, 22, -171, 11, 37, 73,103, 88, 85,142,195, 56,162,129, 98, 45, 37, 5,188, 47, 91, 98, 96, 34,248,136, 15, 17,163, 34,221,208, 98,115, - 6,148, 12, 28,242,129,147, 21,202, 57,241, 79,135,224,145,184, 86, 77, 91,203, 44,108,109, 44,199,203, 75,208,154,174, 23, 91, -174,213,150,197,139, 77, 83, 41,233,180,109,101, 24, 71,201, 33,151,238, 79, 67, 22,218,165,169, 27, 98,201,164,144,168,156, 5, - 83, 40, 74,115,156, 70,132,111,151,125, 93,144,121, 28,186, 8,218,121,226,221,171, 74, 70, 4, 55,109, 69, 78,133,233, 56,109, -105,137, 5, 31, 18,235, 58,137,103, 61, 4,228,195, 80, 28,143, 19,251,205,135,126,121,126, 1, 25,102,191, 10,221, 87,215,172, -139, 80,146, 14,209,170, 24,187, 9,167,183, 46, 21, 64, 39, 69,107, 91,150,105, 98,154, 70, 20,226,115,215, 90, 34,172,115, 76, -152, 74, 19,252,204,236, 35,117, 35, 3,166,198,241, 40, 78,148, 34, 35,185,115,201,244, 85,133, 53, 21,117,237,160, 40,198,105, -186,202,239,119,206,145, 75, 98,158, 37, 68,172,170,220, 21, 31,174,181, 3, 78, 19,227, 36, 9,206, 56,135, 46,130, 2,105,180, - 76,164, 92, 3, 57,205, 24, 35,137,109,199,105,197, 25,203,186,174,180,157,101, 9, 1,103, 29, 57,203, 57,102, 53,216, 10,185, -116,183,142, 94, 27,131,179, 13,147, 95, 72, 65, 70, 21, 31,143, 71, 78, 97,110, 57,139,254,107, 89,102,138, 42,140, 99,160,170, - 28,117,101, 57, 78, 71, 74,136, 40,197, 21, 29,224,106, 73,244, 52, 86,206, 62, 17,124,107,230,101, 22, 91,107, 86,164, 28,169, -172, 97,241,137,176,174,236,207,206,174, 32,127,103, 45,118, 93, 36,253, 38, 3,205,208, 50, 29,133,195,204, 81, 20,128, 25, 73, - 69,194, 85,212, 77,131,247, 11,109,221,110,202,248,196,225,112,201,110,216, 49,244,195,214, 81, 59, 42,163,169, 43,203, 41, 8, - 38,229, 76, 74, 30, 91,213,164, 20,169,148,145, 3,180, 51,196,148,152,150, 9,191,172,104, 37,234, 73,165, 1, 52,227, 56,177, -219,248,217,101,155,118, 37, 97, 56, 10,173,183,142, 86,101,153, 1,174, 50,203,180,178, 44, 1,165, 12, 40,152, 22, 17,246, 93, - 94,142,164, 44, 67, 1,140,211, 50,194,111,241,100,157, 89, 54,107, 73, 51,244, 88,165,208, 89,212,162, 80,182, 74,106, 75,188, - 75, 69,194, 91,140, 38,249, 32,213, 46, 26,114, 70, 89,135, 42,162,238, 76, 49,160,109,139, 53,110, 67, 2, 16,191,253, 58, 11, - 47,142,228,123,167, 16,208,117, 77,152,103,162,214, 87,220, 31, 64,201, 34,242, 82, 74,161,149,120,172,141, 54,204,147, 4, 4, - 41,165,112,206,110,127,182, 60,119, 43, 80,222,186,174,104, 35, 83,156, 98,220, 2, 86,106,153,114,116,242,235, 78, 33,208, 84, - 50, 6,215,135, 81, 54, 83,222, 38,245,109,213,236,110, 55,136, 5,204, 90,170,170,190,250,247,171,151, 89,229, 10,152,166, 85, -160,113,165,112,174,161,235, 6,142, 71,225, 69, 97,235, 26, 41,176, 9,251,230, 89,102, 34, 39, 47, 27, 74, 27,136, 62,138,101, - 17,141, 41, 80, 87,194,225, 94, 92, 94,176,219,157,201, 28,246,173,227,111,154,134,174, 21, 24,106,252,255,216,122,243, 96,203, -174,235,188,239,183,247, 62,251,140,247,190,215,243, 8, 52, 26,141,110,204, 64,131, 24, 72,144, 0,193, 81, 52, 69, 81,148,168, -145,182,134, 40,113, 41, 42,185, 34,217, 41, 39,170,164, 28, 87, 69,142,147,114, 85, 98, 59,169, 68,174,114,201,209, 20,107,178, - 53,144, 18, 41,113, 6, 8, 18, 0, 7, 8, 2, 65, 12,108,128, 64, 99,234, 6,208,221,232,215,239,222,123,230, 61,228,143,117, -222, 3, 96,250, 84,113, 68,247,125,247,221,123,206, 94,107,125,235, 27, 26,209,126,202,251,104, 25,186,126,155,195,224,198,145, -193, 57, 34, 50, 69, 68,132,240, 99,173,163, 40,242,237,201, 34,177, 26,180,162, 29, 6,178, 36,135, 12,246, 21, 43,254,235,119, - 5,174,217, 99,137,151, 34,106,247, 28,130, 3,183, 32, 38, 26,148, 69, 49,194,224,248,198,131,103,217,247, 3, 63,140, 59,183, -137,214, 5,243, 67,215,113,246,165,151,248,214,183,159,224, 11,247, 63,176, 77, 64, 59,176,119, 15, 63,247, 99, 63,204,137,163, - 87, 80,150, 37,238,210, 2,101,196, 49,235,137,167,159, 97,209,172,216,191,123,247,118,161, 5,216,179,115, 7, 31,251,208, 7, -248,145, 15,127,128, 99, 39,142,161,172,232,237,197,114, 86,164, 89, 58,205, 40,203,156, 52, 77,120,243, 85, 55, 45,127,254,217, - 47,242, 43, 63,255,247, 56,124,244,114,158,120,236, 9,254,252,115, 95,224, 47,191,248, 21,102, 69,206,139,103, 95,221,254,126, -182,138,120, 84, 64,136,236, 88, 91,227,189,119,189,131,219,110,188,158, 29,235, 59,216,220, 92,242,204,233,211,164,169,229,192, -222, 61,156,125,237, 28,243, 89,197, 39,126,228,135,248,129,187,239,132, 8,143, 62,249, 52,247,127,253,155, 60,246,212,211, 44, -235, 55,152,247, 91, 87,154,166,216,196, 80, 20, 5,235,179,138,168, 20,103,206,158,229,209, 39,159,230,171,223,122,152, 51,175, -158,163,109, 59, 94,122,249,101, 94, 62,123,150,131, 7, 15,114,226,186,107, 56,124,249,229,140,131, 68,226,162, 21, 86,137, 95, -118,156, 26, 98, 16, 20, 40, 70, 73, 16,140, 62,128, 17, 73,217,170,150,231, 77, 43, 4,102,215,145, 60, 21,185,106,145,229, 19, -251, 58,144, 38, 25, 16, 88, 53, 43, 20,154, 68, 27,108, 42, 70, 55, 66,230,138, 40,132,100,103,115, 49,142,217, 34,132, 90,107, - 72,173,248,148,135, 40,132, 97,155, 73, 18, 95, 63, 12, 84,185,236,113,179, 34, 67, 43, 72,130,197, 36,210,136,128,194, 57,105, - 88,203, 82,200, 88, 38,136, 74,197,121,153,208,209, 18, 56,212, 59, 71, 28, 2, 40, 71, 54,153,215,228,105, 38,182,171,222,177, - 88,136,173,247,214,119,186,117, 73, 91,189, 53,153, 74, 42, 96,158,151,104, 45, 67,148, 73, 69,117,128,146,231, 46,157,149,248, - 81,156,251,202,170,218, 62, 95,165, 1,111,145,224, 21, 61,169,131, 90,114,155,139,161, 13,122, 34, 90, 27,162, 66, 26,136,121, -133,243, 35, 90, 27,178, 16,145,212, 77,177, 78, 70,139,220, 56, 4,249, 89, 49,200, 89, 55,155,205, 38, 63,141, 64, 58,161, 6, - 32, 8,215,208,119,204,170,146, 40,197,129,197,114, 65, 8,242,251,229,105, 37,107,182, 52,161, 27,122, 50,147,178,182, 38,131, -160,235,123, 76, 46,225, 54,222,129, 81,242, 93,101, 89, 34, 42,166,152,208,182, 13, 27, 27, 27, 50, 88, 86, 98, 97,189, 92, 46, -201,210, 68,108,130,179,140,229,106,177, 61,188,110,253,123,140, 32,201,160,130,182, 10, 34, 45,107,187, 85, 93,131,138,178,222, - 81, 18,129,171,148,160,213, 74, 41,234,122, 37, 18, 58,221,179, 92, 44,169, 74,177,150,110, 27,217,223,183,157, 36,252,205,102, - 57,227,232,153,175,173,177,149,121,191,121,233, 18,237, 36,209, 83,218,176, 88,174,208, 74, 56, 82, 49, 70,146, 16,133, 53,104, -210,148,209, 59,230,235,235, 52,181,164, 46,229,169,196, 55,110,214, 53,120,135, 81,138,249,108, 78,223,247,219,153,221,214, 90, -218,190,167,202, 10, 76, 34, 55,109,211,182,228,105,142, 74,164, 9,204, 18,133, 66, 14,220,205,197, 38, 99,240, 68, 38,242, 73, - 8,168, 56,201, 91,178,148,174,237,229,129,201,115,252,232,169, 17,104, 43, 77, 38,121,210, 56, 78,187, 17, 79, 64, 88,140, 97, -236,132, 48, 17, 29,243, 82,220,129,154,166, 65,163, 88, 76,208, 88, 89,148,212,109, 77,215,120, 98, 1,214, 26,182, 28,200,194, - 48, 80,111, 46,104,181, 24,164, 24,173, 72,178,124,210, 72, 7,180, 30,100,226,115,146, 59,173, 67, 36,120, 97,201,118, 93,199, -250,108,141,110, 16,246,123,235, 90, 49,218,232, 69,239,104,180, 33,207,196,148,224,210,230, 38, 97,130,219,203, 82,172,121,183, - 46, 73,143, 50, 88,173,104,251, 17,241,117, 7,148,194, 40,205,250,218, 58, 74, 79,193, 18,185, 76, 36, 62, 4,180, 23, 75,210, -224,197, 45,206, 90,195, 86,182,186,181,150,174,219, 10, 31, 8, 84,133, 48, 58,213, 52, 17, 43,165,100,218, 54,102,155, 81,239, -156, 20, 89,173,196,234,114,121,233,210,212,220, 64,150, 21,244,189, 4,238, 40,196,155,158,152, 97,140, 28, 36,117,189, 98,190, -182,198,170,174,201,178, 76,224,116,132,209,169, 38, 68, 97,181,170,113, 78, 10,109,153, 87,140, 40,108, 98, 89,174,150,116, 81, - 14,209,188,200,233, 58,199,114,177,160,172, 42, 57,112, 50,113,233,138, 74,160,199, 52, 77,145, 88, 77,152,205,103,184, 65, 28, -154, 86, 19,188,175,144, 3,206,102,217,118, 7, 27,167, 41,110, 24, 71,186, 81,116,255,193,123,114,171,216, 85,141,124,236,100, -194,251,142, 21, 36,157, 34,246,129,179, 79,156, 33, 15,103,217,153,143,168, 99, 7,224,208, 62, 65, 32, 22, 11, 22,249,110,102, -215, 92, 70, 95,119,172, 95,254, 54,230,251,175,225,225, 7, 30,228, 87,254,233,255,194,119,159,125,110,251,123,125,219, 13,215, -241,203, 63,247,119,121,199, 45, 55,177,107,215, 14,204,196,163, 0,143,178, 9,187,119,237,228,226,197, 13,206, 95,124,163,160, -231, 89,202,190, 61,187,184,235,246, 91, 57,126,236, 24,218, 36,196,137, 21, 91,111, 46,249,206,119, 79,241,189,231, 95,228,161, - 71,190,205,103,190,116, 47, 77, 43, 92,135, 60,205,248,196,143,124,132, 95,251,229,191,207,190,195,135,136, 49, 18,250,129,203, - 14,237,231,151,126,230,167,249,201, 31,250, 59,124,252, 23,255,225,182, 49,205, 86, 65, 7, 4, 86, 5,174,188,252, 48,215, 95, -117, 37, 71, 47, 59,196,198,230, 38,159,255,234, 67,124,254,254,175,114,118,210,165, 3, 44, 87, 53, 95,250,234,131,236, 90, 91, -231,248,209, 35, 20,121,198,162,110,196,175,127,122,205, 55, 55, 12,214, 24,110,190,246,106,174, 59,113,156,181,249,140,113, 24, - 33, 77,217,191,119, 55,207,191,248, 18, 15,127,231,201,237,215,142, 33,112,246,204, 25,234, 75,151,216,124,253, 34, 87, 28,187, - 18,180,164,193,245,221,128, 81,129,118,232,168,202, 10, 55, 72,200,140, 27, 70,146, 76,178, 3,210,196,226,124, 96, 94, 85,140, - 78,154, 88,157,200, 52,185,197,184,142, 17,113, 32,116, 35, 33, 6,114,155,137, 9,201,224, 17, 77,187,192,179,110,240,216, 44, - 17,123,213,224,161, 11,100, 89, 49,173, 30, 60, 67, 55,144,230,162, 83,223,220, 92, 18,163,167, 40, 43,154,118, 41,204,112, 37, -169, 95, 49, 10, 59,186,170,230, 16, 3,193,139,185,141,209,134, 44, 19,205,184, 82, 26,147, 37, 44,150, 43, 82,107,201, 11,121, -221,190,149,208,168,188,156,166,211, 0, 19,248, 69,219,182,211, 68,184, 37,143,139,178,115, 69,209,214, 53,179,249, 12,130,168, - 9,162,243, 52, 93,139, 54, 17,162,146, 51,120, 84,219,106,149,209, 9,159,197,123,143, 86,147,139, 92, 84, 56,239, 41,179,156, - 52, 17,195, 46,231, 35,122,154,204,157,147, 1, 67, 27,153,126, 19, 35,100, 47,173, 53,195,216, 97, 84, 66, 91, 55,228, 69,137, -119,146, 99, 46,136,153, 38, 70, 69, 86,164, 2,145,235,200, 86, 12,243, 86, 28,112, 36, 78,228,176, 4, 63,142, 16,197, 8, 44, -120,113,251,200, 38,137,221, 48,200,185,220, 14, 45,243,100,206,208, 59,188, 26,197, 37, 53, 72, 50,220, 27,247, 86,164, 31,251, -169,168, 54,132, 0,202, 32, 83,250,106, 69, 63,142, 36,206, 17, 35,100,137, 37, 68,200,172, 33, 68,143, 73,100,125,154, 76,171, - 28, 65, 1,228, 61, 37, 86,179,213, 74,133, 16, 89, 95, 91,103,244,227, 36,143, 85,132,232,184,116,105, 19,163, 64, 41,195,108, -109,182,141,164,224,165,193,234, 7, 73,107, 76,179,148,101,211, 78,171, 30, 25,150,138, 92,118,253, 33,136, 17, 90, 98, 19,218, -118, 96, 54,159, 73,115,138,120,166,172,150,203,137,111, 50, 25,221,163, 69,231, 45,123,141,140,170, 44,209, 74,227, 93, 96,199, -124, 78,221,214, 20,149,192, 55,117,221,160,181, 20, 1,107, 45, 67,219, 81,229, 5,107,107,179,109, 88, 87, 41, 69, 63, 72,183, -177,182, 86, 1,134,182, 93,177, 54, 95,131, 8, 18, 77,234,229, 33,155,122,159,182,235, 65, 13,104,109,240,195, 72, 81,202, 3, -209,247, 98,144,176,213, 17,197, 32,118,172,209, 57,172, 77,137,169,102,115,115, 19,165, 12, 0,202, 24,102,179, 57,132, 40,164, -153, 40, 55, 97,150,102,211,135,175,216, 92,174,112,125,135, 14, 66,160,211, 89,134, 26, 6, 34,194, 79,235, 59,137, 38,213,137, - 48,162, 99, 16,147,253, 36,205, 73,109,202, 98,115, 65,235, 70,202,181,117, 48,122,123, 58, 13,132,237, 29, 77, 85,202, 36,233, -189,103,177, 92, 18,188,167,170,100,103,183, 92, 46, 33,200, 20, 83,228, 18, 87,155,230, 37,109,219,145,151, 37,169, 78, 8,136, -141,160,210, 66,112, 75, 72,152,205, 10,252, 4,167,165,105,138, 73, 51, 92,211, 96,140,194,251, 64,149,206, 80,106,171, 59,151, -207,203,251,136,197, 79, 77,128,236,121,242, 9,110,212, 74, 77,138, 6, 43, 55, 96, 8,136, 1,198,140,118, 37,145,185,198,136, - 20, 72, 60,157, 75,162, 18, 75, 78,165, 20,194, 12, 86,216, 60, 35,207, 83,218,166,193, 40, 89,141,244,110, 36, 75, 68, 59,218, - 15,194,151, 40,203,140, 36,149,239, 46, 68,208, 90, 96,195,170,170, 88,173, 86,204,183,164, 34,137,232,205, 21,226,157,221,118, - 29,105, 50, 77,164, 74,227,156, 16,243, 0,154,182, 38,120,249,121, 85,158, 19,213, 27,144,178, 24,131, 72, 56, 13, 94, 14,176, - 60,149, 88,198,181,194,243,225,183,205,184,235,202,192, 94, 27, 72, 19, 13, 94, 11, 1, 46,135, 67, 55, 31, 36,158,222, 68,101, - 21, 95,123,240, 5,222,125, 83, 2, 23, 94,230,124,109, 57,187,127, 23, 59,111, 60,201,142, 35, 55,163,109,201,165,151, 94,230, -244,139, 47,209, 13,111,144,207,126,246,227, 31,227, 31,253,226,207,115,228,138, 35,130,148,116, 61,193, 75,144,199,165, 75,155, -252,245,125, 95,229,223,254,251, 63,222, 38,185, 89,147,112,229, 21,151,177,123,199, 58,239,185,243, 29,220,118,211,117,160, 32, - 70, 15, 83,135,159,165,150,203, 14,236,227,197, 51,103,153, 87, 5,235,107,243,237,162,222, 13, 61,159,250,252, 23,249, 7, 63, -255,119,217,171, 21,190,233, 25,250,142,182,237,216, 92, 46,177,198,242,107,191,252, 95,241, 47,255,237,111,111,155,218,108,195, -239, 26,110,189,225, 6, 78, 28, 59,202, 16,132,159,177, 99,190,198,109, 55, 94,203,114,185,224,161, 71,190,205,217,215,206,113, -232,192, 62, 62,252,222,119,243,174,219,222, 70,145,137, 11,227,107, 23,206,139,138, 33,181, 52,173,124,198, 49, 70,210, 36,229, -138,203, 15,114,248,208, 65,174, 58,114, 25, 63,251,241, 31,230,186,171,174,132,196, 50,180, 45, 46, 4, 46, 59,120,128,103, 95, - 60,195,198,230, 91,173,112,143, 29, 61,194,251,111, 59,201, 45, 55, 95, 79, 79,194,189,143,124,155,162,200,104, 91,145,186,185, -209,145,164, 34,165, 20,253,122, 74,219,119, 12, 67, 71,158, 21,212,171, 70, 26, 40,163, 8,193, 35,185,245, 66,202, 26,220, 0, - 33, 76,254,228, 35, 67,240,104,159,160, 19, 77, 66,138, 66,109,239,113,253, 40,147, 88, 98, 83,198,174,149, 9, 90, 5,210, 52, - 71, 43, 65, 33,181, 78, 16,154,176,194,106,131,202,115,154, 70,140, 96,180, 22,105,170, 49,226,207, 16,162,167,176,217, 54,209, -205, 7,113,218, 51,218,208,185,142, 84, 27,250,126,216,222,143,162, 53, 85, 90,160,140,184, 30,162,181, 12, 27,211,119, 87,150, -229,116, 30, 74,158,197, 48, 14,216, 68,190,151,174,149, 28,243,224, 61,196, 73,149, 18, 34, 90, 5,242, 44,199, 38, 22, 20, 66, - 32, 28, 28,206, 69,188,135,188,200,208, 65,188,234, 53, 18, 41,236,251, 32,137,135,193,211, 7,143,209,150,182,239,164,121, 87, -138, 97, 24,233,186,129,196,104,242, 66, 86, 14,218, 6,242,178, 68,169,200,216, 59, 36, 93, 46,161,237, 36,146, 59, 75, 51,172, -149,116,208, 45,167,188,212, 90, 6, 47,146, 52, 98, 68,169, 72,146,166,178, 82,203, 36, 12,171,105, 26, 33,196, 41,240, 33, 48, - 34,103,236,170,150, 12,243, 65,137, 58, 34,198, 72,187,229, 8, 56,171, 24, 6, 81, 54, 41,165,152, 77,231, 88,244, 17, 31, 71, -170,170,164,111, 27,154,213,146,170,170,176,121, 74, 63, 61, 59, 33, 56,202, 98,134,209, 26,163, 39, 4,123,106,162,244, 52,141, - 15,131,156, 89,222, 75,102, 7, 65, 77,103,106,100,158,207, 89, 46, 87,162, 71,103,100, 99, 99,131, 45, 68, 69, 39,134,194,102, -244,174, 33,248, 72,219,245,104,101,196,182,220, 40,186,182, 7, 13,209, 69, 33, 39,134,145,182,149,179,119,213,172,152,205, 42, -178, 52,103,109,109,141,161, 23, 79,141,100, 24, 6,250, 17,108, 98, 89, 95, 95, 67, 96,161,137,100,144, 36,140, 78,232,248,235, -102, 7, 30, 9, 11, 89, 95, 95, 39, 6, 79,215,119, 56, 39,187,133,205,197,130, 93,187,118,226, 70,113, 39,115,163, 35, 47,114, -154,186,161,105, 58,242,178,160, 44, 36, 96, 97, 12, 35, 70,137,141,108, 80,138, 44, 75, 73,167,172,218,224, 5,238, 81, 26,122, - 39,208,204,218,218, 26,193,121, 66,116,116,189,163,109,219,109,201, 86,221, 92,194, 90, 97,146, 26, 99,233,134,201, 17, 77,105, -209, 31, 54, 13,202, 24,154,229,114,122, 16, 4,154,143, 76, 80,243, 84,128,231, 89,142, 46, 75, 84,140,120, 21,113,131, 19,216, - 48, 19,239,251,166,105,152,173,173,193,116, 3, 25,155, 18,131,103,232, 58, 98, 8, 56, 37,161, 40, 32,211,134,164,239,200, 3, - 49,145, 23, 72,171,138,229,164,231,222,154, 98,242,162,192,152, 4,109, 70,140, 77, 88,179,115, 49,231,176, 9,253, 40,196,148, - 97, 24,177,137, 97,177, 92,178,149, 67,158,101, 25, 90,137,228, 97,203,225,142, 32,140,214,182, 27, 9, 94,180,215,206,137,209, -140, 82, 82, 64,131, 21, 71, 60,148, 72, 12,149, 49,100,105, 74, 4,129,218,179,108,155,184, 83,148, 37, 93,215, 9, 50,226, 36, -188, 34,159, 10,127,150, 89,180, 17, 39,185,232, 3,198, 90,136, 22,107,253, 4,251, 91,140,181, 83,252,163,100, 46,231,105, 2, - 81,200,109,226, 58,101,232,134, 30,227, 29,121,146, 83,149,249,100, 76,146, 96,144, 85,130, 66,246, 89,105, 42, 93,125,240,162, - 63, 78,141,184, 59,117,125, 15, 90, 51,159,205, 0,217, 77, 45,222, 52,137,206,231,115,182, 60,244, 67,240,212,117,205,254,117, -197, 63,252, 88,193,237,135, 18,104, 29,216,132, 48, 19,211, 12,125,246,117, 84, 20,127,232, 8,168, 3,107,176,183,226,238, 50, - 97,252,155,111, 50,220,124,130,229, 45, 31,229,200,145, 59, 72,178, 53, 66,219,176,113,230, 5,238,255,198,195,252,171,127,247, - 59, 60,255,210,203,172,207,215,248,165,159,249, 9, 62,241,177,143,112,248,208, 65, 8,178, 3,247, 33, 96, 18, 67,154,102, 18, - 15,220,182, 92,216,144, 96, 29,128,183,157,188,158,187,111,187,149,219,110,186,129,219, 79,222,196,142, 29,235,232, 36, 33, 70, -197,235,103, 95,229,187,207, 61,207,223,126,231, 9,190,254,183,143,241,218,133,243,188,118,254,117, 94, 57,119,158, 34,207,184, -236,192, 1,170,178,224,134,171,143,243,194,217, 87, 56,180,127, 31,137,209, 44,151, 43,190,243,221,103,248,203, 47,223,203, 31, -190,137,129,191,117,109,195,239, 65, 12, 73,246,236, 88,103,215,100,151,123,126, 99,131,115, 23, 46,114,252,216, 81,158,123,241, -101,206,190,118, 78,138,248,185,115,124,251,137,167,184,231,206,219, 41,210,140,126, 24,217,179,107, 23,246,197,183,202,227, 6, - 55,240,250,165, 77,110,188,230, 4,239,184,229,102,170,162,224,213,243, 23,240,222,243,220, 11, 47,179,177, 88,114,225,210,165, -239, 43,232, 0,171,186,161,238, 90,210, 36,229,142,235,175,225,134, 43, 14,243, 71, 95,184,151, 23,235, 26,155,164,248, 24, 8, - 83,243,135,247, 66, 98, 82,144,102,130, 60,249, 24, 41, 50,209, 81,143,163, 35, 42, 69, 55,118,164, 54,157,224, 92,183, 45,113, - 42,242,201, 53,210,135,233, 60,144, 9, 54,177, 18,252, 66, 20,196, 49, 73, 82,130,130,121, 53,163,109, 7,208, 26,107, 20, 68, - 33,142,246,125, 75,132, 73, 45,130, 40, 94,154, 6,143, 39,179, 25,131,243, 16,166, 68, 73,109, 88,181, 53,209,139,212,210, 57, - 97,229, 71,197,182,193,151,115,114, 38,140,110,100,108, 29, 38,153, 52,227,105, 74, 28, 29,131, 31,105,155, 22,177, 60, 22,148, - 97, 62, 23, 9, 49, 74,220,225,250, 78,116,233,109,219, 49,140, 30, 8,152, 52,193,187, 72, 61,212,162, 4, 81,154, 60,159,154, - 25, 55, 50,118, 61,195, 20, 52,130,224, 89, 19, 65, 48, 33, 40, 77, 8,142, 52, 77,208, 58, 39, 4,201,137, 15, 65,220,234,154, -174, 97,172, 71,148,150, 68, 51, 53, 58,186, 65,158,227, 16, 34, 69,106,197, 94, 53,203, 4,146,111,122,204,116,118, 58, 39,150, -176, 70, 41,186, 32,171,204,182,235, 81, 8, 71, 70, 98, 88,197, 84, 42, 49,134,196, 36, 68, 21,112, 78, 44,144,157,247,148,147, - 23, 70,223,117,148,101, 73, 48, 98, 29,188, 88, 44,100, 64,234, 33, 68,133,177, 26, 55,122, 82,107,105,154, 6, 99, 51, 49,110, -193, 48,246, 98, 72,164,209, 24, 19, 72,116, 66, 63,180, 48,245,235, 70, 41,116, 34, 89, 31,169,149,184, 91,113, 34, 21,245, 77, - 83, 55, 36,214,110,115,152,148,145, 0, 23, 31, 2,209,123,150, 43,225, 30, 25, 43,121, 8,171,113,196,106,131, 75,196,187,222, -106,141, 66,203,231, 82,149, 4,231,105, 66,207,198,198, 6, 33,108,217,182,123,113,244,108,196,108, 72, 35,126, 36,193,121, 18, -148, 38, 53, 9,179, 89,133,214, 9,206, 73, 81, 20, 15,116,137,196, 92,172, 86, 36, 90, 97,243, 84, 82,184,128, 16, 13,106, 24, -201, 75,203,114,115, 65, 98,180,252,146, 83,183,178,170, 87, 84, 51, 49,178,175,155,134,113, 33,102, 38, 90, 43, 50, 43, 6, 35, -105, 38,178,183, 50, 43, 9, 62,144, 88,153,180, 87,141, 68, 33,150, 86,180,163, 33, 4, 86, 77, 67,240, 66,172,200,243,156,186, -110,168,107,145, 56, 5, 28,169,177, 12, 67, 71, 89, 86,210,237,141, 34,221,234,199, 17,191, 92,160, 66, 68,229,185,164,205,197, - 40, 58,102,164,163, 51, 90, 19,181,162,109,123,102,243, 10, 21, 35,217, 76, 32,104, 31, 61,221,224,133, 79, 48, 58,218,102, 74, -253, 50,154,217,218, 28,173, 13,232,169, 96,186, 0, 81,254,142,124, 70, 65, 86, 17, 69,129,157,224,242, 44, 77,113, 94,116,210, -179,217,108,114,213, 91,159,116,238, 30,167, 20,105, 42,144, 31, 46,208,123, 97,148,118,221, 72, 12,162, 51,175,202, 25, 73, 98, -196,240,192, 9,116,175,149,228, 31, 55, 11, 49,134,233,199, 97,251,230, 43,242, 2,148,236,115,180,214,108,153,173, 36, 73,130, - 31, 6, 97,199,143, 35,101,158, 79,252,133, 14,101, 52,120,137, 76, 28,221, 72,106, 18, 92,244, 82, 48,149,194, 26, 67, 84,130, -102,164,105,142,242,129,186, 93,161, 80,184,209, 83,205,228, 96, 41,179,140,196, 90,178, 24, 37, 8, 6, 9,162,137, 49,208, 14, - 3, 97,116,248,209, 99,202, 4, 9, 93,137,184, 97, 32,207,165,217,201,172,196,159,106, 38,159,236,224,105,251,158, 56, 29, 92, -214,138,251, 92, 12,145,102, 34, 84,245, 93, 7,209, 19, 39,116, 65,107,141,154, 48,154,163,251,115,254,249, 71, 83,118,184,145, -225, 43,167,176, 39,142,240,213,251,191, 71,182, 54,231,237,215,238,128, 36, 16,247, 29,128, 42,131,213, 10, 74, 80,175,109,192, -197,139,240,161,119, 81, 31,254, 41,246,237, 60,129,239, 91,198,229, 38,103,206,156,225,222, 7,191,193,255,246, 27,255,142,215, - 55, 54, 0,248,169,143,126,152, 95,248,233, 31,103,239,222, 61,160, 52, 97, 24,104,155,150, 52, 75, 49,121,198,169,167, 78,241, -171,255,211, 63,231,145, 39,191,203,214,149,103, 41,123,118,238,162, 42, 11,230,179, 74, 96, 53, 55,138, 20, 84,107, 46,108, 92, -228,233,103,159,227,243, 95,253, 26, 79,156,122,118,123,253,181, 99,109,198, 71, 63,248, 1, 62,244,238,119,114,251,205, 55, 98, - 19, 33, 5,141,206, 97,211,130,205,197,146,197,106,193,193, 61,123,185,231, 29,183,115,234,217,211, 18, 22,195, 27, 83,250,193, -253,123,185,242,242,203, 57,124, 96, 47, 27,155, 98, 14,117,211, 53, 39,120,219,141,215,113,223,215,191,201, 63,251, 63,255, 13, -175,158,187, 64,158,165,220,116,245,113,174, 59,113,156,235,174,186,146, 27,175,189,134, 97, 24,121,238, 47, 62,205,215, 30,126, -100, 27, 49,120,243,107,111, 46,150,188,244,202,171, 60,250,228,119,201,172,165, 42, 11,190,251,236,243,124,243,209,199,120,245, -220, 5, 30,125,234,141,207,224,205,215, 51,207,191,192,170,107,120,237,194,235, 60,248,173, 71,184,253,150, 27,249, 7, 63,249, -163,188,240,202,107,252,222, 95,125,137,186,239, 72,211, 28, 99, 4, 9, 66,139, 3,166, 86, 2, 69,230,185,216,253,250, 32,112, -183,143, 50, 1,141, 46,146, 89,200,114,139, 79,204, 4, 79, 75, 81, 80, 10,148, 55, 66,232,154, 56, 56, 10, 25, 48, 98, 8,116, -163, 72, 29,163,206,100,143,238, 29,152, 84,156, 23, 85,196, 7,133, 10, 3, 99,239,152,205,102, 8,113, 75, 34, 95, 93,240,216, - 84, 66,129, 52, 48,120, 81,227,160,129, 16, 36,107, 61, 70, 12, 34,175,236,134, 97, 59,135, 34, 34,110,141, 93,223,209,117, 29, -229,196, 86, 7,145,170,118,117, 67,146, 89, 18,109,233, 71,177, 72, 53,198, 98,173,164,223,197, 24, 41, 42,105,100,140, 50,212, -171, 26,148,112, 84,146, 9, 73, 35, 10, 60,173,115, 67, 63,200,254, 90,105,113, 47,211,104,162,138, 12,253, 64,223, 75, 50,229, - 22,129,108, 24,132, 4, 56,122,143, 49, 18,149,154,100, 9, 34,181, 18,115,158,202, 38,219,159, 5, 81,154,245,113, 20,143,255, -196,166,146,116,167, 12, 89, 97,201,210,148, 85, 35,231,122, 89,148,180,125,139,209, 50, 92,249, 32, 65, 88,206, 13, 36, 70,200, -220,226,186, 23,133, 59,164, 51, 98,148,117,101, 90, 20, 36,198, 16, 49,232, 98, 75,174,246, 6,239, 96,181, 18,185,245,168,132, - 72, 55, 12,194, 19,178,214,226, 9,130, 16,143, 61, 90,137, 37,182, 82,146,218,214,245, 45, 46, 70, 66, 31,136, 33,226,243,145, -113,244, 36, 73,138, 77, 18, 86, 77,141, 77, 51,116, 98, 88,174, 86, 20,121,134,138, 34, 41, 12, 65, 84, 8,179,201,180,172,204, - 75, 76,165, 88, 46,107, 82,155,225,250,142,136,228,208,175, 26, 9,111, 25, 71,153,212, 37,157, 78,248, 34,253, 56, 50,159,205, - 24,135,129,190,239,137,139, 72, 85, 84, 24,147,160, 34, 36, 70,107, 66,148, 67,190,109, 87,100, 89, 78,140, 94, 66, 49,140, 88, -138,150,165,144,210,162,139,180,174,151, 3, 29, 41, 38,206,187,237,169,111,244, 30, 55,202, 20, 58,142,142,197, 98,193,172, 90, -155, 22,248, 98, 10,128,182,178, 11, 5,250, 81,194, 67,154,190, 69, 41, 69,234,228,230, 9, 62,176, 88,173,200,115,153,224, 23, -139, 37, 33, 6,102,107,107,172,150, 75,180,145,136, 79,249, 96, 10,108,158, 10, 33,166,105,197, 2,213,123,202,162,100,243,210, - 37,188,119, 16, 5,134,103, 28,241,105, 74, 63, 12, 16,195,246, 65,175, 0,180, 34, 47, 10,250,113,156, 80, 10, 77,102,101,207, -131,150, 46,211, 59, 97, 50, 42, 37,144,110,223, 15,216, 68,114,119,219,174, 33, 79, 11,217, 71, 27,217,237,133, 32, 58,198,182, -174,233,181,104,205, 37,167, 89, 65,140,172,154,134, 36, 73,168, 87, 43,137, 97,237,196,188, 96,185, 88, 82, 21, 51,250, 73,187, - 94, 55, 53, 69,150, 11,100, 55, 53, 7, 74,222,186,232,119,251,145,204,202,107,218, 84,110,246, 52,166,216, 68,139,142, 91,201, - 62,136, 24, 33, 10,225, 47,203, 50,186,213,106, 90,131, 4, 80,138,160, 20,227,216, 49, 70,152, 85,115,156,146,192, 13,239,166, - 48, 14,196,249, 41,203, 50, 50,155,209,141, 35,120,129,245,227,232,100, 55, 52, 10,239, 96,116,163,144,215,102, 51, 33, 54,105, - 33,121, 56, 23, 24,227, 0, 74, 51,203,242,237,220,246, 24, 2,163,139, 88,173,233,188,120, 27, 36, 86, 76, 38,202,164,146,195, - 69,105, 66, 52,172,231, 66,118,243, 65, 38,136,174,149, 7,173,107,155, 9,153,240,200, 42, 38,160,141, 38, 53, 41,253,216,162, -244, 79,176, 0, 0, 32, 0, 73, 68, 65, 84,179,179,208,252,211, 15, 38,236, 76, 1, 23,177, 55,158, 32,102, 22, 23,224,100,222, -243,216,159,222,199, 77,191,242,147,168,139, 11,248,222, 69,180, 2,174, 57, 66, 84, 35,241,192, 58,175,141,183, 51,159, 95,137, -235, 91,198,213,138,167,159,125,142,231, 94,124,153,167,158, 59,205,155,175,255,239,207, 62, 73, 81,164,252,212, 15,125,152,195, - 7,247, 75, 71, 61,140,164,121,202,231,191,112, 31, 63,255,223,254, 15,178, 79,123,211,181,103,231, 14, 50, 43, 81,191,135,246, -239, 37,184,145,186,241,104,211,243,244,115,207,243,169, 47,220,199,103,191,252,149,109,227,151,173,235,210, 98,197,191,255,179, - 79,241, 87,247,126,133,143,188,239,221,124,228,125,239,225,228,245,215,178,115,125,141,113,148, 24,212,245,249, 58,215, 29,191, -138,215, 47, 93,250,207,186,199, 53, 77,199,157,183,220,200,177, 43,142,112,213, 21,151,179, 54,155,113,230,213,215,248,204,151, -238,229,185,231, 95,150,201, 15, 56,180,127, 31,107,243, 25,243, 89, 69,154,166,220,255,208, 55,248,230, 99, 79,112,254,194,134, -220,211,111,186,182, 94,123, 54, 73, 52,119,175,175,115,104,239, 30,158, 59,115,150, 71, 30,127,156,199,159,249, 30, 47,157,121, -101, 66,213,164, 1,184,236,192, 62, 76, 98,121,225,229, 51, 92,125,236, 40,183,222,116, 3, 69,150,179,111,239, 30,186,126,224, -255,250,127,127,151, 87,206,157,167,174, 91, 94,222,184,196,209,227, 39,216,177,107, 39, 67, 55, 76,142,143, 74, 86, 81,202,224, -180,164,173, 25, 18, 92, 20,217,110, 0,136,129,186,109, 73, 19,141,182, 25, 74, 69,186,110, 68, 27, 61, 25,216, 68,148, 73, 48, -198,224, 6,225,247,152, 68,144, 44,107, 36,225,205,121, 71,153,231, 52,117, 75, 83,215,164,137, 36, 80,134, 24,240, 65, 17,157, - 99,185,116,160, 35, 70,153, 73,114,148, 19, 70,177,220, 54,105, 78, 18, 3,105, 37,154,107,231,228, 62, 78, 20, 4, 34,153,169, - 68, 38,235, 70, 50,107,233,219, 1,155, 89, 41,238, 78,164,170, 54,181, 12, 77, 79, 84, 65,254,251, 32,110,111, 73, 16, 56, 90, -107,129, 98,149, 86,128,144,186,130,143, 96,141, 20,244, 44, 39,207,115,156, 27,233, 59, 41,178, 91, 83, 96,112, 1,114,209,223, - 11, 47, 6,241,244,176,194,177, 18,205,189, 16, 3,141, 17,228, 83, 5, 69,146, 8, 55,199, 77,168,201,170,150, 66,233,189,200, -205, 98, 4,162, 52, 19,131, 19,105,110,153,230,164,211,148, 30, 3,232,212,136,231, 68,179,162,107, 91,148,214, 16, 60,125,223, -225, 71, 71,154,102, 36,153,248,148,136, 97,149, 68,195, 42, 5,222, 13,104,173, 48, 70,194,150,154,182, 21, 53,139,209,244, 83, -141, 81, 74,214, 88, 91, 86,215,160,240, 62,146,199, 72,239, 58,202,188,148, 1, 45, 70,218, 38,160,173,101,181,146,152,218,162, - 40,240, 94,210, 41,189, 15, 92,186,180,193,106, 53,162, 20,108,110, 58,242,178, 34,250,200, 24, 70,148,147,208,160,113, 24,201, -243,148,178, 20,237,126,223,245, 20,179, 2,113, 28,148,245,245,174, 93,187, 8, 33, 98,179,124, 90,177,136,140, 56, 70,136, 72, - 77, 13,193, 79, 77,150,218, 62,199,211, 52,165, 31,187,109,155,228,173,117, 99, 2,160, 17, 54,122,154,164,116,221, 64,215,246, -180, 77, 15, 40,178,162,192,185, 64,221, 53, 98,192, 15,219,127, 57,196, 72, 85, 86,146,112,148,166, 92,218,220,132,248, 6, 9, - 44, 51,194,154, 14, 33,208,246, 29, 99, 55,160,205,136, 77, 83,130,151, 55,185,117, 0, 68,239, 73,114,209, 93, 91,171,183,187, -142,197,226, 18,198, 36, 66, 50, 65, 44,247, 70, 63,162, 72, 38,114,135, 16, 38,234,149, 4, 56,212, 43, 17,255, 51, 29, 51,121, - 94,160,180,132,177, 68, 20, 90, 43, 70,165, 41, 43,137, 97, 29,189, 19, 50,138, 22,162, 94,223,117, 24,165,112,131, 35, 75,115, -196,109, 44, 76,132, 11,217, 79,135,233,166,141,222,163, 39,136, 47, 70,133,143, 65,200, 99,125,196, 7, 33, 2,150,179, 25, 93, -211, 80,205,231,242,218, 86,162, 14, 77,162,153, 21, 21, 1,113,200, 11,193,139, 97, 78, 93, 83,148, 37, 62, 78,182,139,125, 79, - 81,228,242, 29,133, 73, 73, 48, 12,140, 81, 30, 84,177,133, 28,241,209, 97,180,198,121,133, 27,131,176,163,109, 66,101,170,109, -153,154, 49,102,123,130,209, 90,163,146, 4, 59, 21,198, 16,133,179, 80,149, 18,137,185,170,151,211, 78, 72, 11,194,162,196,199, -217,121,135, 54,154, 48,120,130, 31,209, 36,216, 52,161,235, 6,138, 52,195, 55, 11,148, 18,159, 98,165,100,197, 50, 14, 3, 69, - 81, 96,179, 12,155, 9, 19,221, 59,135,177, 9, 6,129,219,125, 16,184, 49,155, 86, 24,203,122,197,218,108,141,213,106, 1, 74, - 34,102,109,162,169, 42, 97,120,138,239,177,162,235,123, 92,140,216,196, 48, 40, 67,154, 74,104, 70,211,118,114, 24,135, 64,208, -158, 61,187,119,240,171,239,142, 28,216, 99,137, 78,193, 60,131,186, 7, 63,242,190,227, 59, 97,111,202,201, 67,119, 19,154, 37, -177, 94,161, 14,237, 34,204, 43, 84, 61, 64, 2,231,195,173,148,215,220, 67, 24, 58, 46,189,126,129,199, 79,125,143,135, 31,123, -156,207,222,247, 53, 78,191,116,134,139, 83, 62,253, 63,251,199,191,202,223,255,196,143,147, 22, 57,205,106,197, 98, 85,211,118, - 61,198,104,158, 56,245, 12,255,243,191,254,127,222, 82,208,147, 36,225,238, 59,110,229,163, 31,124, 47,215, 28,187,146,253,123, -119,115,217,129,253, 92, 90,174,240, 78,188,164,191,252,213, 7,249,211,207,124,118,123,194,126,243,165,181,230,182,155,111,224, -253,119,190,157,107, 78, 92,197,190,221, 59, 40,115,241, 7,223,184,180,160,233, 59,246,238,222,201,163, 79, 62,201,127,248,244, -231,100, 79,251,166,203, 24,195, 21,135, 15,114,242,250,235,184,241,218,171, 81, 90,108,147, 47,110, 46,248,220,125, 15,240,224, - 35,143,110, 79,224,207,189,248, 50, 59,230, 51,142, 94,118,152,126, 16,167,178, 79,126,246, 75,219, 8,197,155,175,143,188,255, - 30, 70, 55,242,195,239,127, 31, 31,122,239,221,196, 24,121,237,194,235, 12,206,209,118, 61,171,229,138,173,228,178,173, 6, 96, - 99, 89,243, 95,252,196,143,114,252,200, 97,126,246,167,126, 12,187,107,157,208, 15, 60,244,213,135,248, 55,191,251, 71,124,249, -193,175,211,117,111,160, 1,207,159,126,129,119,220,245, 46,246,236,221, 11, 42, 18, 3, 84,213,140,182,111,133,199, 81, 15, 34, -107, 29, 53, 32,147, 98,102, 37, 35, 65, 56, 39,146,139,158,199,184, 13,133,250,137,188,107,109,194,232, 2,209,131, 87, 35,125, -235,100, 90, 74, 60,190,135, 96, 61, 81, 33,231, 8, 96,177, 12,163,124, 38,253,208, 67, 80, 68, 21, 40,243,146,113, 24,104, 90, -177,153, 70, 1,221, 64, 84,145,182,111,240, 78,214,148, 33,232,137,112, 53,173,167,250,142,170,154, 77,242, 40, 79, 55,229,164, -131, 60, 83, 89, 38,220,145, 16,196,243, 59, 85, 57, 74, 73, 12,173, 86,138, 64,144, 51,177,154, 49, 12,195,246, 10,205,141,146, -105,158, 36,102,250,223, 34,175, 77,172,193, 15,158, 36,213, 56, 39, 60, 21, 61, 53, 91,121,145,147,165, 18, 97, 42,133, 80, 19, -131, 39, 75, 18,146, 52,165,174, 87,108,217,203,110, 5, 32,101,169, 37, 24, 79,145,229,140,163,162, 31, 28,102,154,126,155, 70, -234,136,181,150,213,230,146, 36, 23, 35,174,186, 94, 97,204, 58, 74, 41, 18, 99, 73,178, 4, 23, 2,222, 13, 4, 47,220,167,118, -232,241, 78, 24,233,214, 90,172, 49,140,170,167,235,122, 76,154, 51, 14, 29, 42, 66,150,102, 68, 45,164,103,105, 26,145,213,106, -144,239, 45, 4,143, 26, 38,149, 80, 12,104,165, 73,140,197,199, 64,116,146,185,145,166,150, 16, 53,222, 15,219,247,169,214,134, -168,212,118,131,128,146,194,236,198,145,174,233,201,203, 2,173, 97,181, 88,145,165, 34,101, 27,134,145, 44,203,183, 13,100, 36, -239,190, 64,195,212,100,104, 98, 20, 95,151,217,218, 28, 34,130, 92,167,194, 59,136,200,189,234,189, 52, 55,195,116, 63, 69, 31, - 40, 11,241,138, 17,181, 19, 68,162, 16,229,178,105,135,186,185,185,137,243, 30,155, 36, 40, 20,163,159,210,211, 66, 0, 47, 25, -211, 94, 9, 81, 96,139, 16, 87,183, 13,213,108,134,142, 2,231,142,195,192,106,181,162,168, 10,188, 19,152,121,185, 88,226,189, - 71, 91, 75, 61,237, 59,181, 54,228, 69, 9, 42,138,206, 82,107,186,174,197, 7, 49,104, 88, 46,151,164,105,138, 82,226, 67,223, -247, 45, 46, 76,133, 52, 73,200,172, 98,109, 62, 19,131,148,168, 73,243, 66,118, 46, 86,164, 63,221, 48, 96,179,148,224, 38,131, - 3,197,196, 60,118, 68,101,100, 71,100, 36, 49, 41, 91,179,210,169,163,222, 8,109,137,226,114,102,109,130, 53, 6,212,214, 94, - 54, 48,184, 65,200, 56,117, 45, 55, 11,128, 6,231, 70, 84,148,189,105,102, 50,234,149,252,222, 73,146,160, 99,100, 84,138,177, -235, 48,137,193,119, 14,147,164, 40, 36, 89, 45, 42, 97,102, 2, 24,157,208,117,141, 72,182,180, 97,236,123,186,224, 81, 17, 97, -154, 42,145,135,204,230, 51, 80,144,100, 9, 6,133,115, 72, 3, 19,132, 93,155, 37, 41,206,191,225, 23,159,167, 98, 76, 49, 14, - 34,119, 75,140, 17,153, 30, 16,149,184, 93,245, 65, 2, 91,178,162,192, 40,205, 48,140, 4, 13, 70,137, 3,160,154,110, 46, 9, -192, 16,203,218,102,213,144,164, 66, 68,202,242, 92, 8, 53, 74,161, 16, 25, 91,136,242,159,235,235, 59,216,146,182,152, 68, 2, - 29,136, 34,123,220, 50,116,216,250,151,181,118,138,115, 12,211, 1, 52, 18,131, 6,213,138, 70, 59,136,159,119,145, 23, 20,121, - 78,215,117,147, 60, 70,214, 30, 54, 53,148,213,156, 68, 5,110, 63, 98,248,161,107,225,234,157,138,231,238, 59,205,133,198,113, -199,221, 7,192,164, 40,147,162,110, 61, 10, 27, 43,168, 2,100, 22,110, 58, 1, 39,110, 65,189,254, 42, 60,250,183,108,164,135, - 73,174,253, 16, 42,140,156, 57,251, 10, 15,124,235,111,248,204,151,191,194, 35,143, 63,201,185, 11, 23,121,179,118,123,112,142, - 87,207, 95,192,104,197, 56,122, 49,208,153,205,209, 74,137, 91, 92,220,254,163, 40,165,184,242,178,195,252,189,143,125,132, 15, -189,247,110,170,157, 59,229, 31, 56,199, 14,173, 57,115,246, 21,126,255,147,159,225, 15, 62,249,233,255,108, 65,223,146,202,221, -118,242, 38,174, 62,118,148,121, 89,110,147,142,234, 11,173,168, 82,138,130, 11, 27,151,248,230,223, 62,254,125, 5, 29,224, 93, -183,221,194,207,125,252, 71, 72,146,132,141,205, 77,246,237,222,197,108,231, 26,135,246,239, 99, 54,155,209,180, 29, 59,214,214, -248,192,187,223,201, 45,215, 95,203,129,221,187, 56,126,236, 40, 90,105,254,230,241, 39,120,247, 29,111,227,179,247, 63,248,150, - 98, 11,224,125,228,151,127,238,103,120,251,201, 27,233,251,158, 87,206,159,103, 85, 55,236,223,189,147, 99, 71,142,112,239,131, -223,248,190,247, 82,215, 53, 15, 63,246, 29,110,186,230, 56,167,190,251, 12,139,122,197,151, 31,250, 38,143, 62,254, 36, 95,127, -228,177,239,251, 25, 77, 93,243,149, 47,126,137,189,251,247,115,237, 13, 55, 50,159,149, 2,243, 34,207,111,106, 45,222,129,199, - 83,229, 21, 17, 80, 42, 16, 81, 12,189, 35,248, 17,231,229, 48, 29, 27,207,232,166, 4,176, 65, 97, 74, 35, 8, 88,150,145,101, - 25,163, 26,166, 1,201,147,217,132, 49, 8,251,123,235, 11, 29,250,158, 34,151, 51,207,106, 75, 51, 54,219,164, 96,147, 36,204, - 83, 57, 15, 70,239, 33, 5,239, 37,105,171,168, 74, 57,107,199,129,174,119,108, 53, 28, 10, 88, 45, 22, 24,107,176,105, 70,136, - 14, 29,228,108,176,169,144,147,211, 60, 99,232,122, 72, 13, 89,150,203,185,215, 53, 24,157,144,166,169,232,210, 3,216,212,226, -156, 36,134,201, 74, 85, 10,210, 48,202,158, 94, 41,133,138,138, 34, 45, 8, 65,152,229, 62, 72,180,170, 49, 18,191, 90,228, 5, - 38, 49, 24, 99,104,187,158,162,216,146,238,137, 91,159,210,138,166,235, 36, 42,122,112,144, 42,116, 20,200,218, 38, 41, 70, 79, -170, 15, 45, 97, 76, 74, 49, 77,210,150,190,235, 24, 0,173, 96,115,113, 9, 21,167, 1, 98, 66,114,181, 78, 49,211,249,208, 13, -157,152, 77,141, 35, 73,244, 24, 85,160, 77, 66, 89,106,130, 86,100,217, 12, 63, 6,154,174, 17, 40, 61, 70,148,244, 66,162, 0, -170,132, 48,231,229,163,166, 31, 68,137,179,182, 86, 76, 67, 66,135,119, 17,166,115, 60,170, 64, 53,159,211,214, 53,109,223, 18, -163, 98,108, 71, 84, 64,172,191,173, 97,232, 59,156, 19, 89,117,162, 36, 91,164,154, 87,168, 40,245, 99,185, 92,138, 26, 75,107, -188,143,148,101, 62, 33,172, 61, 67,215, 76,205,132, 71,147,224, 38,178, 91, 8, 14,227, 83,138, 44,165, 29, 58,202,172, 4,131, -160, 40, 72, 51, 30,180, 18,162,102,162, 41,179,153, 52,121,222,147, 40,173, 39, 89, 64,191,125,222,184, 32, 29, 28, 65,200, 94, - 40,136, 90,228, 94,179,249,124,178, 33,180,104, 12,171,122, 69,219, 52,168, 24, 37,224, 36, 70,172, 77, 89,213, 43,148, 82,172, - 88, 77,176,133,103,115, 99, 3, 61,117, 92, 1,241, 29, 54,214,178, 88,173,196,186,208,131, 82,145,166,110,136, 17,186, 78,228, - 7,195, 56, 82, 86, 21,102,112, 56, 37,236,207,214, 59,108,154,145,104, 67, 98,133,193,159,103,115,113, 92, 11,210,128, 12,163, -184, 89, 85, 85, 33, 15,121, 42,238,101,198, 36,226,184, 54,142, 19, 1, 68,211,212, 13, 89,153, 75,231,132,144,108,130,115, 36, - 70,211,141, 35,125,219,137, 46, 48,202, 68, 63, 14,131, 40, 4,140,248, 53, 27, 91,138, 27, 89, 89, 10, 83,219, 40,108,102, 33, - 10, 51,213,135, 64,162, 53, 73, 38,157, 23, 65, 65, 12,194,164, 12, 1,180,102, 28,182,172, 85,133,113,110,140, 65, 25,141, 78, - 13,201, 56, 98, 18,189,125,227,225, 61,117, 83,139,199,128,147,164, 37,141, 33,205, 45, 94, 43,178,172, 64, 37,154, 36, 38,172, -205,214,100, 55,101,237, 54,241,109,181, 20, 67,154,170,146, 36, 32,173, 20,213,124, 13,239,133, 89,155, 24, 67,211, 54, 68, 47, - 12,250, 44,203,104, 86,205, 54,212,166,244, 68,144,137,114, 40,104, 20, 38, 81,248, 65,208,132,126,232,100,103,103, 19, 76,146, -160,163,154,246, 99,178, 83, 28,251, 17,155, 6, 64,216,201, 73,146, 80,216,148,190, 19, 34,102, 8,129,232, 35,104,141, 27, 58, -178, 44,103,203, 86, 51,106,228,128,136,224,252, 64, 28,226,246,247, 60,142,129,162,200,216, 89,194,173, 87, 40,222,123, 69,228, -248,186,134, 23, 47, 18, 67,197, 23,159,187,192, 7,143,238,128,193, 67, 15, 28, 72,136,205,130,184,163,130,197,128,182, 21,241, -216, 49,168,222, 5,195,125,212,175,143, 52,215,191, 19, 58, 49,170, 88,213, 43, 78,191,248, 18,175,188,118,254,251, 10, 58,192, -233,151, 94,228,197, 51,146,147,158, 24, 61, 5,134, 4, 30,252,219,111,243,232, 83, 79,179,177, 88,110,255,217, 24, 35,207, 60, -255, 2,191,250,235,255,130, 95, 60,245,227,252,194, 79,254, 24, 87, 92,115, 21, 42, 79,161, 27,248,189, 63,251, 11,254,239,223, -254,253,239,251, 25, 59,215,215,185,230,170, 43,120,219,245,215,241, 3,247,220,197, 85, 87, 92,206,170,105, 56,127,241, 34, 49, -110, 53, 82,176, 62,171,120,245,252, 5, 62,249,249,123,121,226,233,103,248, 79,175,131,251,247,114,248,192, 62,180,209, 92,117, -228, 48,218, 36,244,195,200,171,231, 47,240, 23,159,255, 50,247, 61,244, 77, 0, 46, 45, 22,188,126,113,131,187,111,191,149, 35, -135, 15,209,212, 43,206, 93,188, 68, 98,196,201,239,205,197,118,255,238,221,220,126,242, 70,238,186,227, 54,134,190,227,213, 11, - 23,208, 74,241,232, 83, 79,243,215, 95,250,138, 56,208, 53, 29, 91,249,240, 32,106,132,196, 26, 82,155,210, 52, 13,175,158,191, -192, 45, 55, 92, 79, 17, 10,174,186,252, 48, 23, 46,110,176,243,217,211,219,113,181,111,190, 98, 0,156,227,244, 83, 79,176,239, -208, 65, 14, 94,118, 57, 1, 73,124,180,214, 18,141,196,167, 14,163, 68,138, 46, 23, 98, 59,189,190,190,134,214,211,122, 13,205, - 48,244,148,182, 96, 12,178,119, 30,199, 97, 66,231,132,107, 83, 20, 25, 34, 69,147,198,205, 59, 71, 36, 50, 12, 3, 76, 16,117, - 55, 14, 20, 69, 38,228, 92, 45,141,116,219,181, 24, 35,132, 86,107, 51, 72, 4,169,116,181, 76,171, 18, 29,171,153, 85, 51,201, -122,119,142,170, 90, 19, 88, 63,207,241,147,174,187, 48, 21,221,196,218,239, 58, 73,251,114,206,225, 99,192,119,158,177, 31,201, -139, 2, 63, 6, 70,213,177,149,106,167,128,196, 36,210,240,198, 64,158, 23,116, 77, 79, 32, 80, 86,179,137, 73, 47,207,161, 15, -142, 68, 25,218,126,196, 88,131, 49, 9, 38, 81, 36, 38,135, 32, 81,216,137,150,136,104,215, 59,154,161,198,102, 41,206, 9, 20, -156,217,140, 97,232,133,228,219,119, 88, 35,106,152, 22, 40,242,124, 82, 4, 85,248,232,105, 86, 13,121,150,203,121, 96, 18,220, - 48,144,164, 26,157, 72,118,188, 15, 30,157, 88, 6, 55,162,241,144, 24,186,166, 17, 94, 77,140,232, 40,113,206,110,112,160,149, -112,146, 92,196, 88,197,216,203,112, 52, 12,210,176, 9,111, 64, 56, 65, 91, 4,232,104,163, 12, 38,105, 70,106, 53,117, 45,156, - 23,162,162, 42,178,237,251,107,244, 30,163, 4,142,239,218, 94,248, 5, 58, 82,229, 5, 62, 10,210, 19,198,128, 41, 68,206,189, - 21,248, 51,116, 18, 53,190, 92,173,240,222, 79, 69, 93, 6,212,128, 20,103, 63,250,109,142,147, 36, 86, 66,221,172, 40,210,156, -110,136,140,227, 64, 32, 98,141,165,157,226,148,163, 17, 31,149,209, 9,236, 47, 4,101, 57,255,250,161,195, 38, 41, 73,146, 24, - 97,117, 6, 75,129, 72,165,108,150,210, 13, 3,110, 24, 9, 17,102, 85,201, 24, 61, 54, 17,184, 35,100,153, 24,153, 36, 2,231, -202, 15,241,140,125, 43,161, 34, 49,160, 91,209,134,230,121, 46,230, 50,109, 15,104,162, 6,157,166,204,103,179,237, 29,129, 82, -106,218,155, 71,105, 14, 42, 49,227,151,206,110,130, 60,162, 68,156,166, 19,100,239,198,145, 56, 73,226,134,161,163, 89, 57,214, -119,238, 32, 73, 19, 76,148,157,247, 56, 74, 14,176,247, 65,218, 64,196,183,190,233, 58,234,229, 82, 30,166,181,117,204,212, 29, -175,222,116,224,202, 7, 5, 76,208, 7, 40,209, 62,122,207,232, 5,122, 26,198,145,161, 22, 66,195,150, 79,239, 56,136,177, 75, -240, 94,246,234,206,177,113,233, 18,120,209, 87, 42, 37, 41,104,202, 88,134,190, 23, 13, 38,138,170,170,152,205, 36,131, 87, 27, - 9,146, 33, 70,130,243,180,109,131,205, 44,122, 84, 4, 29,167, 61,141,236,227,194,116, 99,216,212, 18, 92, 68,161, 73, 83, 97, -204,214, 77, 13,136, 1, 71,158,101,116,131,248, 55, 39,209, 10,240,224,133, 51,145,164, 57,214, 40, 6, 55, 82,149, 5, 91,154, -245,181,217,124,106,140,192, 79, 63, 51,248, 72,106, 69, 27, 9, 2, 31,105,173,137, 1,198,177,199,104, 33, 30,106,157, 64,212, - 36,211, 42, 95, 52,168, 2,163, 71,165, 72,115, 97,179,107, 45, 44, 79, 99, 4, 74,207,210, 20,239, 2,193,123, 76,106, 48,163, - 66,231,162, 57,141, 65, 62,191, 36, 73, 73, 38, 18,165, 76,251,136,189, 46, 0, 35,239, 57,238,248,196, 73,205,218,116,176, 2, -196, 35,187,137, 23, 58,238,140, 43,234,111,159,129, 91,126,136,254,213, 87,201, 30,123, 5,245,129, 91,224,229,134,223,250,244, -223,240, 95,126,248, 70,212,237,239,131,252,106,130,254, 26,143,247, 7,201,252, 58,230,226, 69,124,244,156, 59,127,145,190, 31, -233,122, 49, 69,217,170,183,239,186,237, 86,254,201,175,254, 18,135, 15,236, 37,203, 50,114,155,146, 36, 9,139, 85,205, 31,124, -242, 47,249,141,223,253,195,109,125,248,214,117,226,232, 21,252,250, 63,254, 21,222,127,207, 93, 40, 99, 72,119,205,113,155, 43, -254,236, 79,255,130,223,252,131,255,248,125,137,107, 32,133,250,199,126,240,131,188,231,206, 59,184,225,196, 85, 84,179, 10,107, - 83, 50,235,137,197,164,225,159,207,217,189,115,167,196,170,182, 47,179,107,199, 58, 87, 29,185,156,197,178,166,155,248, 44,239, -191,235, 78,126,249,103,127,122,154, 30, 60, 23, 54, 22,236,219,179,139, 60,207, 56,255,220, 6,191,255,169,191,164,109,197,227, -224,150,107,175,230,232,229,151,243,236,139, 47,177, 54, 43,121,253,210, 38,191,247,167,127,193,106,181,226,133,151, 95,217,126, -111,105, 98,185,252,208, 65,174,184,236, 16,251,247,238,102,231,142,117, 54, 55,151,104,163,185,241,234,227, 60,240,173, 71, 68, -118,245,166,130, 14,144,231, 25,183,220,112, 45,119,156,188,137, 35,135, 14,112,253,213,199,217,179,115, 7, 79,158, 58,199,203, -175, 93, 96,185,170,217,179,103, 23,175,111, 44,104,251,110, 27,201,113,227, 64,136,129,245,121,197,149,151, 29, 6, 96, 22, 61, -235,251,247,177,177,108, 24,130,195, 24, 69,136,226,138, 40,112,181,124, 97,117,221,146, 36,154,162, 40, 88, 53, 91, 41,142,129, -126,209, 80,205, 74, 18, 45, 43, 39,101,132, 44,230,156,132,153, 36,137, 24, 95,137, 62, 28, 8,162,131, 31,251, 17,180,228, 7, - 12,106,160, 44,132,111,148, 36, 6,107, 83,154,186,193,121,199,108, 62,163,105,228,121, 54, 86,172,129,199, 97, 20, 85,132, 73, -137,104,180,134,249, 20, 94, 53, 4, 24,134,158,152, 40,172,209, 83, 60,172,192,199, 98, 41, 43,252, 37, 55, 74,162,156, 72,148, - 45,131, 23,184, 59,203,172, 76,208,137, 36,173,141,195, 40,150,176, 54,161,107, 86,160,228,231,105,165,136, 74, 38,228,153,181, -210,204,219, 12,173, 5, 85,112,110, 36,198, 64, 84, 17, 20,162,179,159, 8,170,195, 40,129, 51, 73,146,226,147,137,185,173, 21, - 24,200, 10,217,219, 15,206,145, 40,133, 10,158,190, 21, 15, 15, 89,115, 88, 50, 35,236,251,186, 89,225,218,158,170, 20, 37,139, - 82, 16,130, 33, 0,125, 87,147,104, 9,248,146,149, 64, 65, 89, 8, 4, 63,142, 35,125,219, 18, 77,130,107,197,187, 32,205,100, -253, 85,150, 5,105,154, 78,188, 6,177, 84,109, 86, 29,214, 24,124,124, 35, 53, 14,134,109,149, 86, 80,138,182,107, 80, 74, 6, - 43,180, 18, 57,119,144, 70,220, 5,199, 56, 33,176, 46, 68,148,213,228, 86,228,183, 91, 19,185, 40,142, 20,137, 78,136, 90, 56, - 93, 38,138,116, 55, 75, 37, 43,197,227, 25,187,145, 52,155, 82,240,122,201, 59,136,217, 27,181, 10,165, 38,207, 18, 77,116, 3, -214, 36,104, 27,165,153, 26, 6, 86,171,102, 26, 2, 91,192,224,180, 39, 25,134,145, 68, 75, 54,178, 78,160,156, 85,244,227, 72, - 85, 84,196, 66,118,175, 81, 69,114, 37, 38,252, 81, 41,186,213, 74,216,144,195, 64, 98,132,177, 62,244, 3, 90, 69, 10, 5, 99, - 55,178,182,190, 70, 12, 81,172, 23,251,145,180,200,176,147, 89, 64, 86,136,236,164,235, 26, 36,141, 45,199,251, 48,237, 15, 64, -107,197,232,160,237, 26,138,162,148,215, 24,199, 73, 19,170,201, 50, 75,223,137,197,104, 68, 62,104,165,212,182,137,127, 83, 75, - 96,202,250,218, 26, 33,200,123,214, 74, 60,153,197,221,206, 51,175,102, 44,235, 37, 93, 87,163,179, 82,244,232, 89, 1, 81, 94, - 47,132,128, 10, 16, 8, 4,132,237,173,147, 4,173, 13,193,137,148,102, 43,203, 23, 60, 38,106,180, 14, 16, 2,117,221,189, 17, - 95, 56,189,214,150, 20, 13,245,134,161,255,108, 54, 35, 26,205,170,110,104,218, 22,154,192,250,250,218,180,122,200,112,110, 16, -173, 41, 80,162,192, 42, 54, 47, 45,137, 94,164, 49, 93, 63,125, 6,178, 50, 68, 43, 77,215,104,146, 92,140,131,130, 19,233, 25, - 90, 86, 38,242,251, 69,162, 86,148,229,140,209,121, 18, 3,109, 63,210,249, 64, 57, 19,249, 68, 64, 80,154, 24, 65, 35,240,248, -150, 50, 65, 39,106,187,243,116,110,164, 44, 42, 65, 4, 18,129,186,220,232,136,109, 71,154,231,184, 97,160,237,167,184,211,169, -121,211,128, 54, 66,180, 52,198,192,116,243, 55,173, 39, 34, 48,230,214,159,205, 40, 72,147,132,166, 21, 51, 36,109,160,173, 91, -124, 28,137,104,138, 76, 12, 58,234,186,102, 28, 13,101,105,249,111,222, 11,239,185, 42, 39,246, 14, 60, 68, 20,113,213,203, 72, -103, 29, 55,189,239, 38, 56,176,142,202, 50,242, 99, 59,225,224, 58,241,146,226,119, 62,255, 24,165, 11,180,203, 72,153, 95,139, - 82,138,151, 31, 56,199,249,236,114, 14,244, 13,139,102,197,170,110, 56,117,250, 52, 15, 63,241,228, 91,194, 74,230, 85,197, 59, -111, 59, 41, 12,246, 93,187,200,103,226,198,215,213, 43,158,250,222,115, 60,253,220,243,223, 87,208, 65, 24,222,191,249,135,255, -145,235,142, 95,201,225,163, 71,120,236,129,135,249,194,215, 30,226,143, 63,245,153,183, 16,218,182,174, 93, 59,118,112,211,213, - 87,241, 11, 63,241,163, 92,125,226, 56,186,204,209, 74, 80,139,114,199, 58, 97, 24,136,163,103,244,142, 52, 23,167,181,203,246, -237,227, 59,246, 25, 94,187,248,250,118, 65, 7, 56,251,234, 57,190,251,189,239,241,238,119,188, 3,165, 20, 85, 89,144,165,150, -199, 79, 61,195,111,253,241,159,176,229, 61,127,237, 85,199,184,231,157,111,231,238,119,220,206, 21,135, 14,146,103, 57,235,179, -192,129, 61,187,248,253,175, 61,196, 43,231,206,111,191,230,201, 27,174,229,231, 62,254,195,124,224,238,119, 50,155,149, 60,115, -250, 5, 94,223,216,224,175,190,252, 85,254,224, 83,127, 73,136,188,133, 79,176,253,123,237, 92,227, 29,183,156,228,206, 91,111, -230,232,101,135,240, 49,242,192,195,127,195,103,191,242, 32,247, 61,248,245,109, 77, 61,136,236,110,247,174,157,220,126,211,141, - 28, 59,114, 25,218,104, 94,125,237, 60, 69,145, 51,122,199, 15,190,231, 30,110,189,254, 90,254,248,203,247,243,212,139,103, 16, - 75,207, 32,235,161, 65,200, 68,243,249,156,182,239, 81, 74,211, 15, 3,206,137,212,209, 88,105, 0,183, 52,211,128, 84,150, 56, -153,186, 40,241,132,119,193, 77,168, 70, 75, 85,206, 8, 49, 50, 70, 79,105, 51,186,190,163,168, 10,182,178,223,131, 19, 79,138, -178, 44, 73,149, 20,193,196, 38,184,193,209,245, 61,105,106, 49, 70,144,129,206,105,170, 60,103,203, 62, 57, 77,197,132,197,230, -201,180, 51, 13,132,216,163,117,130,209,162, 13,215,200, 68, 87,149,213,148,247, 16, 25,189, 20,249, 44,149,130,149, 24, 77,144, -195,140,174,235,152,205,103,104,165, 24,220,192,216, 13,168, 52,193,227,209, 81, 79,201,156,154, 16, 16, 53, 65, 34, 70, 85, 32, -207,184, 40,101, 6,210, 68,246,224,195, 32,153,228,214, 90, 86,203, 26,157, 40, 34, 17,147,165,212,203, 5, 85, 85,226,163, 52, -250,126, 28,233,155,150,114, 94, 98,180,236,158,251, 94,114, 12,138, 60, 3,244,228, 96, 55,202,180,235, 28, 49, 74,250, 94, 81, - 86, 56, 31, 80,131,200,190,250, 86,194,120,146, 36,153, 8,127,134,166,110,241, 17, 98,244,168, 32,105,146,202, 24,156,119,114, -142, 59,145,218,106,157,208,181, 43, 36, 6, 88,152,252,101, 85,177,106,154,109,235,221, 60,203,200,211, 12, 31, 37,158,117, 28, - 71, 89, 59, 79,239, 9, 0,173, 33,200, 0, 18,163,129, 32,209,208, 89,150,109, 75,194,109,158,145, 69, 75,154,101,212,245,138, -174,235,241,163,163,156,149,194,191,232,196, 64,171,239, 26,252,212, 52, 72, 10,155,103, 43,175,126,152, 56, 20, 77,223, 79, 63, - 75,144, 21, 77, 16, 83, 28,173,177,137, 65, 41, 67,221,180, 36, 74, 43,150,109,139, 36,164, 73,238,107,130,172,144,167, 89, 12, -162,162,235,133, 17,174,148,176, 31,189,247,114,211,132,176, 77, 82, 11, 83,118,177,143,158,208,138,211,143, 11,146, 34, 22, 66, -164,235,167,157, 21,145,126,148, 96, 22,107,217,214,156,103,214,226, 93,164,239,197,245, 43,203,114,124,152,124,216,227,228, 48, -100, 45, 90, 69,202, 60, 39,232,137,191, 30,193,187,145,193,141, 52, 27, 13,243,106, 46,187,254,178, 98, 28,196,212,223, 90,131, -158, 9,196,225,125, 96,177,216,100, 86,205, 88,213, 2,143, 84, 69,129, 27,188,228,193,107, 3, 72,104,138, 49, 86,246, 28,198, - 16,186,158, 44,149,196,165,229, 98, 33,240,139, 77,168,235,233, 16,136,145, 48, 21,250, 24, 69,110, 82,166, 34,217, 48,102,202, -168, 15,194,190,213, 74, 49, 58,201,176,215, 90, 51, 14, 3, 54,145,230, 42,132,192,114, 41,153,204, 76, 13, 75, 93, 75,108,223, -244, 99,196,168,135, 72,136,128, 23, 36, 33,196, 72, 85,229,172,154,134,110,146,133,140,163, 76,216,205, 88, 79,127, 27,138,162, -196, 90, 67, 98, 52, 42, 70, 10, 43,114,137, 56,122, 94,175, 23,176,125,240,198, 55, 33, 22, 66,202, 10,104,136, 97,130, 31, 97, - 25, 86,172,175,173, 17,157, 19,126,130,181,180,222,211, 44,151,248, 24,129,201, 4, 70,169, 41,213,109,133, 15,129,245,117, 33, -196,132, 24, 9,110,196,133, 78,110, 78, 43,238,123,163, 27,232,154,134, 48, 77,244,227, 56,146, 36, 22,107, 53,248, 20, 73,181, - 10,180, 99, 79, 53, 19,227,154,247, 94, 25,120,207,225,138,184, 81,163,162,197,189,124, 17,125,211,126,153,166,178,130, 56,122, - 98, 49, 53, 87,125,143, 74,114, 56,156,242,185, 63,126,148,116, 89,115,112,119,197,197,102, 36,253,171, 63,160,190,229, 25, 22, - 99,197,201,219,111, 97,181, 92, 48, 43,118, 81,230, 57,143, 63, 13, 79,158,250, 30,111,190,118,174,175,115,197,101,135, 57,114, -232, 0,197,142,157,248,190,231,222,251, 31,224,183,254,232, 79,248,220,253, 15, 1,111,133,207,111,190,246,106,126,224,158,187, -184,227,228, 77,140,110,100, 62, 19,135,190,157,235,115,214,231, 34,103,123,243,117,253,241, 99,220,245,246,219,184,249,186,107, - 57,118,249, 33,142, 95,121, 37, 74, 41,158,126,252, 73, 30,249,206,147, 44,234,134, 3,123,247,112,215,173, 39,217,181,111, 31, -105, 52, 4,231,120,233,149,215,248,242, 67,223,224,211, 95,188,143,231, 94,120,131, 53,159,103, 41, 39,111,184,150, 44, 47, 56, -127,241,117, 14,238,221, 75, 63, 8,203,254, 95,253,230,239,240,240, 99,143, 3,112,244,242, 67,220,113,242, 70,110,188,246,106, -118,204,103,188,114,238, 60,127,254,215, 95,224,187,167,159,167,174,107, 54,235,213,246,107,106,173,121,125, 99, 3,165,133,185, - 91,215, 53,253, 48,242,169, 47,124,153, 39,190,251, 52,195,248,134,123,226,127,122,165, 38,225,250,171,143,113,229,145,195,244, -253,200, 51,167, 95,224,169,103, 78,243,192, 55,191,197,185,215, 47,190,229,207,206,103,115,174,188,252,114, 14,236,219,203,254, - 61,187,185,238,196, 85,236,217,189, 11, 34,220,251,192, 67, 92,118,240, 0, 15, 63,241, 36, 15, 63,244, 16,155,131,103,255,209, - 43,137, 65, 44, 53,173,181, 40,132,237, 92, 21, 37, 62, 72, 10, 92,240, 30,109, 21, 97,244,148,147,223, 1,136, 9, 83,140, 66, - 76, 91, 44, 86, 64, 64, 35,168,152, 82, 61,105, 42,105, 92,221,208, 19, 67, 96,177, 88, 10, 99, 60, 85, 19,225,181, 66,121, 73, -142,235,219,233,128,246, 3, 49, 68,180, 49,172,173,137,164,149, 40,204,250,113,236,104,125,192,133, 72,158,167, 82, 8, 17, 2, - 86, 12, 18,231,218, 53,194,145,153, 85, 51,178,204,210, 13,157,112, 2,220, 72,154, 72,120,137, 27, 29, 62,136, 95,132, 49,146, - 34,185,197,224, 70, 9,119,193, 24, 69, 81, 84,164,115,113,138,235,251,158,188, 40,169,166, 41, 82, 24,236,162,117,207,203, 28, - 21,164, 9,136,163, 39, 70,200, 74, 41, 82,104,141,142,154,174,235,152,207, 38, 3,174, 16, 68,238, 71, 16,146, 95, 39,210, 87, -148, 66, 43,168,151, 18,122, 85,205,102,194,155, 66,158,144,178,152,242,198, 9,244,157, 35, 79, 82,154,102,133, 82, 18, 75,155, -152,132,116,242, 14, 88, 46, 22,226, 91, 17, 2,107,235,235, 36,137,101, 54, 55, 52,157, 68,157,142, 33,224,131,163,174,151, 36, - 90, 86,172, 27,155,155,219,187,236, 52,207, 73,181,104,187,251, 90,172,124,243, 52,133, 84,162,187,251, 94,200,173, 68,240, 65, -114, 51, 98, 8, 96, 12,174, 31, 4,173,152,106, 75, 4,226,216,147,101, 25, 33, 74, 74,105, 81,136,247,193,188,122,131, 28, 55, - 91, 91, 67, 51,217, 12,123, 63,133,237, 8,233, 55,177, 41,190,239,153,207,164, 38, 37,105, 38, 28,165, 44, 67, 27, 35, 40,140, -181, 36, 69, 65,219, 54,136, 58,195, 17,189, 40, 35,198,161,199,249, 14,162, 38, 73,140,165,200,229,141, 45,151, 75,148,150, 12, -226, 56, 72,230,110, 0, 50,107,223,114,147, 27,155, 76,176,169,194, 71, 97,148,183, 77,199,250,250, 28, 20, 36,105, 74,179, 90, -145,102, 41, 41, 34, 53,211, 9,219,254,183, 91,108,108,165,222,136, 88, 85, 49,210, 52,211, 13,110, 51, 98, 12,116,189, 20, 75, -141,134,137, 96,181,181,191,219,154,230,148,146,194,238,131, 88, 57,134, 16,216,184,180,129,181, 98,173,151,166, 25, 33,120,154, -174, 39, 75, 18,152,160,145, 24, 68, 15,111,109, 70,154, 24, 86,117,183,205,156, 84, 49,160,181,193,143,226, 68,133, 82,100,211, - 46, 39, 73,140, 72,184,166,247,144,217, 20,157, 36,162, 67,119,142,110,236,137,131,200,220, 18,173, 49,214, 50, 79, 83,188,115, - 44,155,134, 68, 41,214,119,236, 96, 75, 38,180,185, 88,160,148,102,190, 54,155,186, 59,241, 30,222,220, 92,160, 80,219, 19,253, - 86,227,147, 24, 67, 8,178,166,240, 49,162, 39,178, 68,130, 16, 69,134,126,148,233, 2,129,122,188,247, 72,228,161,133,105, 23, - 45,176,188, 48, 68, 5,150,140, 19, 57, 67,138, 79,140, 17, 73, 59, 19,178,100,112,227,212,224,129, 66,201,110,108, 54,163, 94, - 46,137,206,177,121,113, 58,120,181, 65,155, 9,129, 72, 83,150, 75,113, 60, 74,173,133,233,126,217, 90,215,128, 60,252, 91,176, -104, 85, 20, 12, 62, 96,146,105,191,102, 19,236, 44,165,173,107,242,188,100, 28, 59,186,174,161, 9, 65,166,211, 40,186,123,105, - 48, 35,135,119, 23,124,226,102, 69,236, 29,177, 30,249,250,223,190,196,110, 19, 57,113,104, 29,117,177, 38, 94,166,225,165,215, -208, 59,215,136,235, 5,172, 2,177, 74,137, 47,213, 92,188,184,100,223,158,117, 94, 95,180, 60,251,157,231, 81,207, 93,228,248, -197,138, 19,119,124, 16,163, 53,217,174,157,156,122,238, 52,191,246,191,254, 31,219, 5,239,205,215,145,195, 7,216,183,123,151, -144,123,154,134,113,144,104, 77,153, 48,223, 90,208, 1,222,117,219,219,248,240,123,239,230,150,147, 55,131,134, 83, 79,157,226, - 55,126,251,247,249,163, 79,127,246, 45,147,239,214,117,113,177,224,237, 39,111,228, 99, 31,254, 16,218, 38,248,174,229,161,111, -124,139,223,252, 15,127,198,231,238,251, 26,169, 77,248,192, 93,239,228,150, 27,174,101,143,209, 52,139, 21,103, 95, 59,199,131, - 15, 63,194, 23,238,127,128, 83,167,159,219,126,173, 89, 89,242,225,247,191,155,123,222,126, 27, 87, 31, 59,202,174,157, 59, 40, -179,156,197,106,197,169,231, 78, 19,252, 27,239,247,213,115, 23,168,202,156, 3,123,247,112,197,161,131,124,235,177, 39, 88, 95, -155,147, 89,203,211,175,158,167,169,101,199,189, 62,171,248, 71,191,248, 11,188,239,157,239,224,200,161, 3,108,214, 43, 94,120, -249, 44,247,127,253, 97,158,127,233, 12, 47,189,246,253,191,147,214,154,203, 14, 30,224,158, 59,110,229,186,107, 78,112,221,137, -171,152, 87, 51, 78, 61,251, 4,207,191,252, 50,167,158,127,158,151, 94,121,237, 45,127,231,234, 99, 71,185,235,142, 91,185,237, -198,235,217,189,107, 39, 49, 68,150,171,154, 44,205,216,185, 99,206, 53, 39,174, 98,213, 52,156,126,241, 12,175,190,126,137,135, - 31,123,156,221,167,158,225,142,119,221, 73,145, 21, 52,190, 65, 69, 69, 85, 74, 2, 97,140,145,116,106, 34, 35, 1, 49,107,233, - 80, 8,169,170,200, 44, 67, 63,110, 39, 18,174, 86, 75,178, 84,154, 76,231, 28,237,114, 69,185, 99, 7,121,154,178, 90,213,204, -231,178,174, 90, 45, 86, 50,225,118, 45,222, 5,230,243, 18,109, 45, 65, 7, 50,151,163, 20, 19,156,141,196,137, 2, 62, 56, 24, - 71,130, 86,204, 10,113,144, 11, 46,200,253,151,230,104, 45, 5,118,203,208,102, 24, 7,108,180,196, 49,130, 17,247, 57, 51, 19, -133, 76, 81, 22, 12,195,128, 50, 70, 16,187, 32, 8,103,223,247,204,231,115, 98,148,116,187,190,151,245,215,114,185,154, 6,128, - 5,105,146, 50, 91, 43,113,157, 35, 42,145,228, 41, 20, 93,215, 97,172, 33, 75, 50,210, 60, 69, 43, 67, 81,149, 98, 0, 19, 35, - 77,215, 73,140,114,145,209,181, 61,198, 8,113,186,105,228, 12,175,230,146,119,174, 96, 42,106,129,229, 98, 33,220, 33, 45, 41, -161, 86,105, 76,106, 73, 76, 66,146, 8, 49, 55,205, 75,130, 27, 25, 70,135,138,162, 66,114, 97,164,156,205, 48, 17, 76,106, 38, - 39, 53,112,126, 82, 83,248, 72,231,100,112,138, 33,210,199, 94, 80, 71, 45, 9,117,193, 7, 98,221, 80, 7,225, 52, 17,101,133, -144, 76, 67, 69,150,201,202,192, 36,118,226,235, 48,166,135, 0, 0, 32, 0, 73, 68, 65, 84, 56, 73,236,116,150, 21, 34,225, 54, - 98,255, 93,217, 10,148, 24,129,185, 81,140,176, 82,155,226, 71,199,210, 47,196,181,207,138,132, 59,122, 97,222, 43, 35,136, 71, -223,117,219,136,101,215,118, 12,253, 32, 38,107, 65,100,191,198,202,106, 34, 68,225,119, 41, 45, 43,209,174, 19,178, 94,215,117, -120, 39,141, 83, 93,175,136, 1,178,114,198,208,181, 36, 74, 65,136,113,130,136,102,180, 77, 45,206,104,106,162,236, 35,153,213, -110, 20, 56, 33,203, 45,102,218,163,130,200,147, 18, 91,161,188, 76,192, 81,129, 31, 6,233,108, 16,207, 99, 99, 20, 68,129,126, -202,170,154, 38, 96, 49,121, 72, 18, 49,164, 65, 73, 18, 18,192,232, 29,149,205, 81,106, 10,155,215, 6,152,246,222,203, 37,222, - 11,225,195, 24,131, 82, 18, 48, 32,157,100, 75,179,106, 8, 49, 16,130,102,177, 92, 98,141,161,156,205, 72,162,208, 65,150,151, - 46,225,220,136,143,138, 44, 77, 25,199,158, 97, 0,101, 52, 49,130,205, 44, 85, 81, 73, 17,210, 90,160,152, 60,103,236, 59,250, -209, 19,130,216, 59,206,222,100, 11,155,171,148, 64, 32, 75,196, 57,205,148, 98, 69, 8,114,120,173, 86, 43, 73, 79,138,145,104, -196,193,174,109, 58,178, 60,101,199,250, 14, 86,203, 37,117, 45,233, 67,221, 20,152,147,101, 25,169, 77,209, 74,163,180, 98,199, - 78,201, 22,183, 54, 33, 4, 65, 58,172,145,125,146,178,137,104, 80,149,120,190,239,220,185,147,113, 16,194,160, 77, 82,210, 60, -221, 54, 47, 24,189, 23,232,176,109,233,251,142, 36,181,164, 90,200, 49, 58,129,177, 21,107, 74, 71, 36, 12,158,204, 90, 76,153, - 49, 78, 1, 49, 85, 85,209,181, 98, 39, 60, 91, 91, 35,120, 71,211,141, 68, 55, 16,135,158, 98,125,141,174,147,188,247,188, 72, - 81, 81, 86, 18, 91,247,139,247, 18,203, 26,130,252,255,179,249, 28,231, 28,171, 9,237, 8,193,225, 70,135, 30, 12,101, 53,201, -118,162,228,105,167, 89,198, 98,115, 83,160,193, 84,252,252,181, 86,172,234, 21,255,221,157, 41,179, 60, 39, 46, 59,212,108, 7, -215,237, 95,240,210,183,159,134,236,106,186, 87,158, 39, 61,188,134,186,242, 32, 97,109, 7, 28, 57,194,183,254,229,159,240,246, -183, 31,227, 59,223,121,129, 89,128,139, 33,112,206, 5, 92,215,115,224,196, 13, 92,123,231, 15,162,181,200, 2,149, 82, 92,220, - 92,176,111,239,110,118,172,175,109,167,144, 93,125,236, 40,255,251, 63,249,239,121,223,199,127, 16, 87,119,184, 85,203,230,249, -243,220,247,245,111,241,249,175,124,141,243,255, 25,169,215, 79,124,244,239,240,243, 63,241, 35, 28,216,183,151,224, 29,202, 43, -158,127,233, 44,167, 78,191,176,221, 84, 1,220,120,226, 56,255,250,215,255, 71,241, 56, 15,142,125,187,118,161, 98, 20,164,167, -233, 56,119,241, 18,222, 57,246,238,218, 73, 63,140, 28,189,252,144,236,228,154, 6,163, 13,123,119,238,228,158,183,223, 78,211, - 52,188,112,230, 21,206,190,118, 14,165, 20,239,191,235, 78,238, 60,121, 19, 71, 15, 31,226,192,190,125, 20, 89,198, 83,223,123, -150,123, 31,252, 6,143, 60,241, 36,167, 78,159, 6,100,165,112,249,161,131,148, 69,201,238,245, 57,206, 7,142, 94,118,136, 60, - 75,249,255, 9,123,239, 96,205,206,251,190,239,243, 60,207,233,231,125,239,189,219, 11,118, 23,139,197, 98,177,232, 29, 32, 0, - 54,176, 23,145,162, 73, 21,147,150,163, 98,209, 99, 69, 78,226,140,173,113,146,153,196, 78, 50,214,140,149,201, 56,114, 34,219, -177, 20,135,137,122,177, 26, 41,138, 18, 73,176, 8,133, 32, 81, 22,192, 46,234, 46,118,177,189,223,123,223,114,234, 83,242,199, -239,220, 11, 80,148, 39,231, 63, 14, 23,119,239,190,239, 57,231,249,149,239,247,243,181,222,115,117,121, 69, 94,220, 38,226,192, -245,123, 9, 33,176,103,215, 78,146, 56,230,241,111,124,155, 35,175, 29,229,240,171,175,243,248,211,207,173,255,155,148,146,103, - 24,164,160,139,180,102, 60, 42,249,196, 35,239, 98,188,176,200, 87,190,249,109, 30,123,250, 57,210, 56,226,249,195,111,241,224, -181, 22,146,218,198,197, 5, 22,202,146, 81, 81,176,115,203,102,146, 52,225,236,185,139, 52,109, 67, 28,109,100,235,198,141,252, -250, 31,126,145,229,201, 42,179, 1,206,115,229,242,101,254,226,139,127,198,157,247,222,205,181,215,238,197, 5, 16,180,177, 88, - 78,187,129,139,161, 1, 61,140,148,171,166, 18,171,144, 10, 20, 35, 9, 99,106,154, 26, 80, 8,103, 93, 44, 98, 93,215,209,183, - 66,139, 44,138,148,174,147,105,147,142, 53, 67,101, 64,146, 68, 76,167, 51, 76,108,208, 65,118,179,245,124,142, 25, 94,246,222, -122,138, 92, 68,100,163,145, 20,246,237, 32, 54, 51, 72, 97,109, 93, 79, 28,100,212,171,145,145, 56, 32, 7,148,119, 20, 69, 65, -172, 83,234,170,161, 31, 4,124,214, 58, 98,160,239, 37,133, 81, 41, 53, 8,239, 28,125,232,137, 61,120,103, 9, 65,222, 85,189, -235, 89, 28, 47,202,129,107,131,192,167, 2, 36, 89, 68,215, 73,215,238,123, 7, 70,154,162,182,233, 72,211, 4,101,148,160,115, -131,151,177,187, 50,196,113, 68,223,183,228,229,136,160,132, 6, 89,213,115,162, 40, 94, 39, 41,122, 47,218,169,166,109,152,215, - 18,173, 93,119, 45,161,105, 88,155, 72, 18, 2,113,154, 18, 13,157,170,179,150,206,185, 1,170, 21, 49,175, 42, 10, 85, 96,140, - 16,226,162,100, 16, 38, 39, 41,189, 21,229, 60, 64,211, 74, 58, 94,211, 55,140,242, 17,243,249, 28,107,165,105, 69, 67, 8, 34, -104, 93, 99,211,107,173,241, 46, 33, 56, 79,231, 91,156,115, 36,169, 96,119,173, 19,174, 66,235,218,161,241,179, 20,163, 17,218, - 24,178,108,208,126, 69, 34, 76,244, 94,166,216, 81,146,200, 89, 19, 68,114,223,183, 13,206, 9,253,110,141, 76, 87, 55,205,224, -203,151,119,224,124, 42,161, 63, 74,137,125,124, 97, 97,140, 30,214, 4, 89,150,225,156,101, 54,157,210,117, 50,242,103, 80,221, - 71, 81, 68,212,116, 29,182, 23, 53,165, 88,166,244,144, 61, 45, 29, 89,154, 21,120, 43,216,188,190,107,177, 93,187,254,153,143, - 70, 35,234, 74, 66, 5,188, 15,228,121,182,142,245, 83, 90,198, 93,121, 94,210,116, 29, 42, 8,167, 88, 8,100,201,208, 65, 74, -176,123, 20, 9,142,118, 92,136,133, 43, 9, 17,214,201,248,168, 30,170, 73,161, 40, 5, 70,227, 49, 62, 64, 91,119,235,187, 36, -215, 7,162, 88,147,164, 57, 81,148,208, 52,210,129,119,173,216,169,130,247, 76,166,115,122,219,147,103,114, 83, 41,165, 69,157, -109,228,224,158, 76,196, 66,183, 22, 20, 17,148,194,161, 8, 90,225,172,144,146, 36,127, 87,118,106, 33, 4, 68,124,167,168,234, -154, 60,139,113, 62,172,139,191, 80, 74, 94, 12, 65,246,234, 89,154, 74,193,227, 3,125,239, 40, 71,133, 60, 28,182,167, 28,151, -204,102, 21,222,137,144,164,242, 45, 89, 94,226,173,165,181, 61, 90, 73, 55,158,167,162,222, 79,146,132, 60,203,233,173, 37, 47, - 10,108,223,163, 19,217,241,103, 75,139, 88,107,201,139, 12, 2, 66,158,242, 94, 30,152,224, 48, 70,139,224,113,200,139,215,136, -154,119, 52, 42,113,222,146, 69, 17,171,211, 41,227,164,164, 10, 21, 73, 18, 19,167, 41, 25,217,240,160, 73, 39, 79, 16,241, 80, -211,117,132,166, 70,165, 41, 74,105,230,203,203,120, 99, 80, 90,138,151, 86, 75, 71,173,148,146,226, 42, 17,236,238, 26,244,166, -174, 4,227,155,231, 25, 65,105,156,237,165,155, 26, 23, 40, 45,150, 16,153, 10, 25,230,243,137,228,181, 35,118,165,160, 21,213, -108,206,251,111,137,185,231,218,152,224,122, 72, 12, 42,238, 88,116, 29,139,183,238,133,171,115,210,119,236, 7,235, 81, 23, 91, -184,231, 78, 40,238,102,199, 53,223,230, 63,252,201, 51,164, 46,176,109,156, 48,171, 44, 57, 1,118, 29,228,225,143,254, 56,113, -154, 16,130, 48,179,189, 11,220,180,239, 58, 54, 44,140, 89,157,190,181, 27,127,237,141, 19,252,147,255,249,151,248,175,207, 95, -224,195,239,121, 23, 73, 18,241,226, 43,175,241, 27,127,248,167,124,251,187,223, 19,101,246,112,197,145, 96, 51, 47, 95, 89,102, -117, 58,231,134, 27,111,192,213, 53, 47, 29, 61,198, 83,135,158,231,123, 47, 28,225,210,149, 43,236,220,182,149,143,189,255, 61, -236,221,185,131,139,151,175,114,231,205, 91,217,178,117, 11, 74, 43,136, 34, 48,134, 75, 87,175,242,212,161, 23, 56,244,210, 43, - 92,188,124,149, 79,125,232,125,252,196,167, 63,201,182,205,155, 65, 25, 86,103, 43, 60,247,226, 75,124,249,209,111,241,220, 75, -175,112,121,121,133, 77, 27, 55,112, 96,239, 30,238,190,245,102,222,243,224, 3,108,217,188, 17,165, 52,231,207,159,231,202,242, - 50,211,106,206, 11, 47,191, 38, 83, 53,173,185,243,150,131,124,224,225,119,112,235,141, 7, 56,121,254, 34, 95,248,143,127,194, -161, 35,175, 74,156,235,217,115, 28,123,243, 20,187,119,108,227,231,126,242,239,240,177, 71,222,205,150, 13,139,244,189,227, 55, -254,227,159,240,212,243,207,243,242,171,199,184,180,178, 74, 89,228,212, 85,131,103, 77,112, 10,155, 55,110,100,239,174,157,236, -216,186,133,107,118,108,227,220,229, 43,124,229,175,158,224,185,195,175,240,229, 71,191,193,172,106,214,119,239,198, 24,110,220, -119, 29,119,221,122,144, 44,205, 80,198,112,121,121,133,181, 0, 18, 33,155,121,158, 59,242, 50, 42, 4, 62,242,222,135,248,133, -127,241,191,114,242,204,217,245,207, 62,132,192,161,167,159,229,220,153,115, 60,244,206,135,134, 21,143,116,176,211,201,148,209, -104,132, 39, 48,159,213,244,131,248,151, 0,125,231,240, 70,242,191,211, 52, 39, 73, 28, 93, 43,207, 43,168,161,171, 18,148,245, -172,174, 41,242,156, 40,138,241, 40, 89, 85,122,193,221,142,199, 66,151,179,222,211,212, 53, 73,158,210,181,146, 22,231,147,192, -172,146,164, 68,239, 3,104, 41,126,108, 47,239, 84, 20, 34,216,139, 12, 69, 42,156,245, 81, 52, 26,172,189,146, 42, 87,183, 45, -182,235, 48, 81,196,104, 84,208, 91, 79,145, 23, 88,111,169,230,149, 76, 58,141,166,111, 91,210, 98, 36,106,234,186, 25, 86, 34, - 2, 73, 65, 67, 93,201,187,219,246,118,125, 44,236,131,224,155,181,137,135, 61,189, 88,134,227, 36, 89, 39,154,185,190, 71, 27, - 69,154,102, 76,171, 41,227,209, 88,118,216,125, 79,158,101,244,173,160,162,227, 56, 6,194,144,233, 33,153,224,109,215, 17,105, - 3, 14,188, 26,154, 68, 51,116,183, 8,125,174, 85,106,253,123, 12,109,131, 66,118,244,107, 89, 19, 1,153,160, 90,231,136,211, -132, 34,205,208, 90,175,167,134,102,105, 38, 77, 83,154, 67, 80,140, 23, 68,239,229,135,119,179, 27,138,233,186,106,232, 6, 26, - 96, 28, 71, 16, 68,120,236,162,158,222, 89, 66, 24,148,243,193, 75,232, 76, 8,244, 33, 48, 89, 89, 38, 40,153,130,198, 70, 34, - 97,181,142, 40,178, 88, 68,212, 62, 48,175,231,235,133, 85, 8,176,176, 48, 70,105,209, 3,229,185,172,167,227,200,176, 58, 89, -101,109, 2, 45,143,139,252,142,243,185,176, 78,170, 90,172,206, 90, 71, 34,184, 86, 34, 48,214,218,176,176,184,128,214,134, 40, -138, 98,146, 36,165,235,100,220, 2,122,189, 90, 81, 42,208,204, 86,200, 75,249, 33,144, 98,187, 6,116, 76,215,213,172, 44,175, -224,189, 88,182,188,151, 3, 40, 73, 34,170,121,197,100, 50, 97,195,134, 13,160, 20,227,114,188,158, 80, 6, 34,134,202,242,156, - 56,138, 68,204, 0,195,193, 21, 80, 3, 98,181,109, 44,194,132, 87,146, 59, 60,155,161,163,136,174,237, 73,178,156, 44,151,195, -121, 50, 19, 81, 89,107, 1,122,146, 52, 37,138,100,188,219, 52,162,126,117,214, 17, 39, 41,117, 83,211, 54,154, 40, 74,165, 80, - 1,180,145, 14,118, 97,105, 9,188,120,176,187, 94, 14, 57, 21, 69,120, 43,244, 40, 80, 67, 49, 19, 48, 65, 70,213,125, 45, 94, -215,222, 57,250,166, 34,207, 83, 8,142, 56, 74,100, 15,210,119, 40, 29,147,143, 71, 40,175,177,161, 39, 53, 2,250,233,157, 16, -216, 82, 21, 81, 85,115,137, 58, 13, 30,205,224, 73, 69, 0, 50,113,156, 34, 21, 27, 82, 57,231, 25, 93,219,209, 59, 81,227, 42, - 21,112,214,210,211, 99,180,166,154, 86, 36, 89, 74, 95,205,135,213,131,199, 6, 33,225, 5, 36,234,116,253,133,225, 61, 73, 38, -130, 58,135,197,107,104,154,154,216, 24, 90,103, 89, 24, 9, 71, 90,107,205,124,136,127, 37, 72,170,154,210, 18,189,235, 7,189, - 3, 1,232, 4,115,136,247,148,139,139,120, 5,137,214, 84, 77, 71, 26, 75,198,180, 54, 70, 88,245,214,202,164, 37,138, 96, 24, -125,102,185, 80,234,146,212, 72, 23,227, 29, 73, 34,251,117,235,197,182, 18,128,186,146,238,200, 91,207,103,223, 81,240,185,155, - 60, 97, 6,152, 22,180, 33,168, 12,117,223,126,152, 55, 4,101, 64, 71, 60,250,103,207, 51, 70,115,223,167,255, 41,164, 7,216, -100, 34,222,181,111, 51,207,157,158,112,117,181, 98,172, 13,151,242,205, 60,240,254, 79, 50,218,188, 69, 14,116,163, 81,113,204, -236,226, 37,254,187, 95,250, 87,252,201, 95, 62,202,219,175,125,123,247,240, 79,127,254,243,124,226,163, 31, 34, 56,199,213, 43, - 87,216,176,180,200, 59,238,190,147,170,110,120,254,229, 87,233, 58, 1, 87,220,122,227, 1, 30,188,251, 14, 62,245,145, 15,176, -121,227, 6,158,122,234, 25,126,241, 87,254, 29, 79, 60,125,104,253,231, 41, 13,215, 94,179,131,207,124,248, 3,220,114,240, 0, - 26,197,180,174,104,135, 78,230,226,233,179,252,235, 47,252, 6,191,243,167, 95,102, 94, 9, 33,235,218,221,215, 48, 42, 75, 86, - 86, 38,108,223,180, 17,133,231,220,133,139, 28, 63,125,134, 51, 23, 46,242,242,107,111, 16,240,108, 88,220,206, 7,222,249, 16, -159,252,240,251,216,180,184, 72, 20, 69,156, 61,119,158,167,158,123,145,175, 62,254, 20, 79,191,240, 2, 87, 7, 14,125,153,231, -108,223,186,153,119,220,115, 39, 91, 55,109,228,226,149,171,220,180,127, 63,143, 62,246,212,247, 9,248,198,163, 49,151,175, 92, -229,226,229,203, 84,117,197,100, 58,227,220,165, 43, 36,113, 74,239, 28,203, 43,111, 61,243,111,191,218,182,229,154,237, 91,249, -220, 15,127,156, 71,222,245, 48,213,108,198,153,243, 23,120,229,232, 49, 86,167,223, 31,221,234,156,227,149,163, 71,217,182,101, - 19,159,248,192, 35,108,219,186, 73,114, 34,146,152,121, 85, 83, 22, 57,155, 54, 44,242,213,111, 63,201, 63,255, 87,255, 7,187, -182,111,101, 84,142,248,235, 87, 8,129,243,103,207,242,141,175, 61,202, 59, 30,126,136, 44, 47,132,140, 25,164,171,237, 58, 73, -152, 43, 50,225, 79,104, 35,105,135,109, 35,246,216, 36,203,176,189, 23,207,184,117, 68,113, 76, 81, 22, 4,192, 7, 79,154,165, -244, 93, 79,215,118, 3,137, 50,160,188,184, 60, 60, 34,123,137, 99, 97,174,107,101, 72, 83, 77, 91,183,244,222, 18, 33, 62,115, -135, 19,252,169, 82, 16,222,138, 42, 94, 3,201, 40,163, 72,162,132, 44,203, 65,131,111, 28,147,174,162,200, 50,146,162,196, 91, - 79, 83,117,160, 2,109,144, 61,244,120, 36, 69,176,239,237,208,221,206,208,198, 16,167, 49,113, 58, 16,208,122,177,254,230, 69, - 42,135,186,149,160, 44,165,100,247, 31,188, 5,219,139,194,190,111, 0, 45,239,109,165,135,149,172, 56,106, 26, 43,153,237,147, -233,148,133,241,152,182,237,169, 86, 87, 25,151, 99, 90,219,209, 55,173, 52, 66, 54, 16,180, 28,224, 89, 62, 66,105,121,255,107, -164,160, 81, 40,178, 66, 26, 34,231, 28,222, 75, 22,123, 8, 65, 48,213, 70, 73, 83,164, 12, 69, 34,254,120,148, 65,136,114, 61, - 53,129, 56, 78, 73,179,156,186,158,211,249,150, 56, 21, 81,169, 15, 30,223,123,122,239, 80, 74, 99,219,142,128,168,201,189,247, -120,223, 50,153, 88, 70,101, 73,154,166,204, 43, 17,206, 57, 39,164,212,182,149, 78, 93, 25,141, 27,244, 79,242,231,100,117,108, -129,188, 28,147, 36,226, 16,170,155,138, 40,146, 98,198, 57, 79, 51,168,227,131, 18,215, 73, 50,156, 49,222, 59,102,243,154,241, -194, 34, 42,200, 58,180,183, 61, 70, 27,209,124, 68, 6, 29,100,106,108,157,163,175,107,105,168,156,103, 97, 65, 50, 34,244,240, -179,162,190,239,215,191,100,239,132,164,163,148, 26,118,172, 98,181,176,157, 69, 41, 81, 28, 43,165, 72, 98,131, 49, 37, 93,183, -138, 49,154,174,237, 64,131,109, 26, 90, 47,149,133,209,138,174,239, 80, 90, 70,205, 74, 43,150,151, 87, 80, 90,179, 48, 42, 89, - 89, 94, 37,201, 34,242,116, 88,252, 43,129,159,128,120,255, 34, 35,248, 84, 19, 27,186,218, 98,226, 12, 77, 32, 73, 12,125, 93, -211,107, 5,104,185, 57,147, 8,229, 61, 62,196,132, 94, 58,219,233,108,134,247, 22,133,166,239,221, 0, 47, 9, 52,173,236,204, -148,214,162, 30, 7, 17, 63,244, 29, 26,137, 14,148, 63,160,134,174, 27,172,115, 52,245, 90, 88,195,154,159, 60,102,222,204, 81, - 74, 51, 46, 75, 66,112,172,174, 78, 8, 4,154,186,193,152,136,197,165, 37,250,174, 35,232, 53, 46,181,162,174,106,202,162, 96, - 58,157, 82, 19,200,243,156,178, 28,201,207, 15,129, 16, 60,193, 43,172,175,209,136, 82, 61, 77,115,156, 19,198,112,153,231,232, -225,231,181,182,167,175,123,162, 56,198,104,131,237, 58,138, 66,152, 0,113,154,202,136, 49, 4, 18, 19,227,172,140,208,230,243, -233,250,139, 54,142, 99,234,229,154, 48,236,125,141, 82,140, 22, 23, 8, 33, 80, 85, 51,102, 51, 75, 86, 20, 88, 43, 47, 42, 16, -125, 67,231,172,164,175, 1,198,104,172, 86,208, 84, 4,101, 6, 37,124, 68,215, 74, 44,165, 50, 49,139, 11,169,168,251,135,151, -107,108, 12,217, 48,134, 19,133,167, 80,153,140,137, 6,171,158,124, 14,107,124, 3,141,166,111, 59,218,208,226, 3,148,121, 70, -108, 2,159,189, 71,243,209,173,142,223,250,237, 67,252,208, 93,219, 25,239,221, 72, 72, 19,148,235,240, 33, 66, 41,131, 42, 83, -158,249,139,151, 57,250,198,101, 62,118,199, 30,148,142,241,179,239, 80,152,150, 27, 62,117, 11,251, 95,153,240, 91, 95, 58,196, -233, 80,114,247,199, 62,199, 77,247, 62,140,109,135,251,245,226,101,254,245, 23,126,147, 95,249,194,111,242,246,107,231,214,173, - 60,112,247, 29,188,239,161,251,121,228,129,251,192, 57, 94, 56,114,132, 95,252,223,255,253,186,183,251,237,215,210,194, 2, 7, -174,223,199,181,187,174, 33, 75, 51, 46, 93,190,202,147,207, 62,199,145,215, 68, 65, 31, 71,134, 91, 14,220,192, 67,247,222,201, -150,141,155, 56,114,244, 24, 85,211,176, 99,155,136,193,108, 8, 24, 39, 7,201,223,251,241,207,176,115,219, 86,126,245,183,127, -159,186,150,169,208,202,116,194,155,103,207,177,123,231, 14, 58,107, 57,126,242, 12, 71,143,191,201,137, 83,167,215,191,219,187, -110,190,153, 59,111,189,153, 36, 26,236,136, 65,186,224,213,249,156, 67,135, 95,226,234, 16,170, 82,230, 41, 63,242,177, 15,241, -158, 7,239,227,250, 61,187, 57,113,230, 44,199,222, 60, 69,153,231,252,194,207,253, 61,126,255,139,127,206,119, 95, 56,204,134, -165, 69,254,246, 39, 63,194,199, 30,121, 55,179,170,225,255,252,141,223,227,143,255,226,171,120, 47,241,145,227,178,100,227,210, - 18,151,175,126,191,208,109,113, 97,204, 15,189,239, 61,252,216, 15,125,148,251,238,184,133, 67, 47, 30,230,213, 55,142,115,238, -226, 21,110,190,225,122, 78, 95,184,200,165,183,129,118,118,239,220,193,135,223,251, 78,118,108,217,204,201, 51,103, 57,176,111, - 47, 91, 54,110,160,204, 5,233,156,165, 41,231, 46, 92,164,110,107, 22, 71, 37,167,207, 95, 4,222,138,137,125,251,200, 31, 96, -249,234, 85, 30,253,234,215,216,127, 96, 63,215,236,222, 45,248, 86,239, 73,179,156, 92, 27,102,179, 57,121,153, 75,247,136,164, -134,205,166, 83,108,223,163,180,194,245, 22,219, 9, 33, 83,121,225,180, 11,177, 82,179, 80, 44,200, 52, 46, 56,234,105, 69, 94, -136,248,182,109, 91,180,210,116,117, 96, 45, 23, 98, 84,140,200,178,140, 76,133, 33,188,166, 34, 82,134,150,150, 44,206, 4,188, - 20,132, 69,225,253, 16,226, 97, 69,164, 54,155, 77,101,212,172,164,216,239,157,151,102,194,196,100,113,138, 30, 84,206, 77,215, -200,223,173, 53,160,176,237, 92,222,109, 90,131,151,176, 41, 19, 69, 44, 45, 45, 17,188,103, 58,172, 44, 68,196,235,177, 67, 76, -105, 94,148,100,113, 2,116,120, 31, 88, 88, 28,161,214, 15,165,132,201,108, 74,156, 38,100, 69,206,108, 58,101, 84, 20,204,107, -105, 14,188,135,102,112,175,160,193,246, 29, 24, 45, 2, 51, 5,206,202, 26,206,134, 32, 26, 2,163, 16, 12,183, 20, 54, 62, 8, -118, 58, 16,211,181,245,250,222,185,109,123, 92,232,112, 70, 13,129, 60,144, 36, 17,147,201, 42, 93,219, 81,142, 13,109, 83,129, -135,188, 44, 69,180, 27, 32,168, 32, 76,120, 27,100,210, 17,229,116,109, 75,215, 52, 24, 45, 4,213,174,105,152,205,230, 84, 77, -205,226, 88, 34,175,219,182, 3, 31,136, 19,131,214, 17, 62,120,108,100,215,109,146, 90, 27,242, 44, 37,142, 83, 76,100,104,219, - 86, 2,203,188, 71,101,172,107,165,180,150,201,112, 53,157,138,141, 53, 73,232,123,105,200, 84,146, 98,180,166,169,101,114,158, -101, 25, 77,215,201,231, 58,159,209,181, 45, 38,142,197,197, 53, 40,250, 21,226, 60, 75, 52,196,200,193, 30,173,177,112,109,103, - 49, 26,210, 88, 4, 20, 65,121, 17, 65,104,185, 7, 20,224, 92, 64,107,152, 76,167,148, 69,193,120, 60, 94, 63, 32,154,174, 37, - 75, 51,154,166,165,173, 27,218,206,210, 91,185, 73, 66, 16,212, 32, 40,186,166, 97,101, 50, 97,148,166,204,103, 21,205,188,198, - 68,134, 40,203,232,187, 10,147,104, 60, 6,140, 34, 77, 36,147,216, 89,143, 81, 96,162,132,126, 86, 13,113,126,226,109,246,222, - 13,227,171, 32, 34, 49, 64,105, 67,176,142, 81, 49,194, 6,199,116,229, 42, 58,205,200,139, 76,132, 31,195, 77, 62,171,103,114, -208,182, 45, 73,150,146,103, 41,101, 50,166,107, 5,206, 16, 25, 1, 3,212, 93, 75,240,110, 80,211,183,244, 86,108, 29, 33,168, -161, 34,131,201,116, 38,181,128, 76,204,240, 67, 85,153,229, 57, 62,120,162, 36, 99, 58,157, 0,226, 71, 20,148,173, 40, 81, 71, - 99,121, 72, 34,163,153,205,103, 20, 69, 65, 20,100,247,146,197,137,220,212,206, 19,105,197,149,203,151, 81, 64, 57, 26, 97,131, - 31,246, 43,178,170,112,125, 79,150,229,116, 93, 77, 97, 12,211,249, 28,231, 61, 74, 27,138, 44,147, 49,155,148, 49,228,121, 14, -120,226, 88, 10, 12, 66, 96,180,184, 40, 99,170, 34, 7, 45, 24,219,186,109,197,230, 22,201, 97,220, 52, 13,125,111,209, 65,212, -253, 89,146, 49,183, 22,188, 64, 26, 70,163,177,120,123,181,160, 30,189,237,169,170,134, 34, 47,153,246, 29,105,158,227, 85, 64, - 49,196, 63,166, 49, 42, 4,214,244, 27,109,219, 12,156,228, 14, 59,140, 96,187,182, 27,170,232,193,194,104, 28,255,213, 71, 70, -220,191,195, 16,174, 58,110, 40, 97,246,216, 97, 70, 55,125, 4,117,105, 25, 54, 47,162,189, 1,229, 9,111, 92,226,208, 75,103, -216,150, 24,250, 0,225,228,215,153,252,249, 55, 88, 60,184, 8,203, 29,143, 61,245, 26,214,195, 13,143,124,138,219, 30,126, 63, -245,116,130, 49, 26,223,121,222, 56,117,134,173, 27,151,120,215,253,247,240, 87,223,125, 6,185, 52, 91, 55,111,228,230, 3,251, -185,243,230,131,152, 36,166,107, 27,118,110,221,202,167, 62,252, 1,206, 95,188,200, 43,199, 78,176,118,109, 92, 90,226,179,159, -252, 40,183, 28,188,129, 3,123,247, 48, 42, 11,142,159, 60,197,249,139,151,217,177,117, 11,211,201,140,222, 58, 46, 92,185,194, -195,247,222,195,131,119,223, 65, 64, 49,157,137,123,192, 58, 79, 20,122, 90,167,249,227,191,252, 58,255,207,239,253, 17,199, 79, -157,226,225,251,238,225,129,187,110,227,214, 27, 15,112,221, 53,215,112,205, 53,219,137, 35, 9, 83,138, 99,195,217,243, 23,214, -173, 96, 81, 20,173,119, 14,189,115,204,171,154,139, 87,206,240,212, 51,207,243,204,139, 71, 56,127,233, 34,189,117,236,219,179, -139, 27,175,191,142,237, 91, 55,115,215,173, 55,139, 21, 84,107,206,156,191,192,175,255,225, 23, 57,121,230,172,116,198, 75, 27, -216,181,125, 43, 23, 46, 47,243,210,209, 55,216,179,115, 39, 31,121,228, 93, 40,165, 56,119,225, 34,175,190,113,156, 19,167,190, -159, 81,191,118, 93,123,205, 14,110, 58,176,159,237, 91, 55,243,198,169,211,188,246,198, 9,158,127,233, 53,158,126,254, 69, 94, -124,245,117, 25,187,107,136,148,102,247,206, 29,220,184,239, 58, 20,242, 46,184,253,190, 3,236,219,189,139,205, 59,182,161,147, -152, 55, 94,121,141, 95,255,195, 63,229,204,249, 11, 76,231, 21,215, 95,187,155,151,142,157,248, 62, 24,206,219, 15,244,181,171, -109, 26,142,188,112,152,190,235,185,238,250,125,104, 45,239,132,209,168, 32,207, 51,186,186,193,197,177, 88, 86,131, 31, 14, 85, - 41, 18, 37, 25, 12,108,215, 11,171, 35, 72,254,119,153,139, 56,205, 24,195,234,242, 50,121, 81, 16, 25, 67, 19, 36, 37,109,237, -119,105,154,134,174,233,152,205,103,140,199, 11,244, 93, 71, 98, 12, 33,138,112,214,145,103, 57, 93, 39,221,224,184, 24,211,246, -114, 56,196, 73, 76, 52,172,180,178, 60,193,187, 64,213,206,136,180,104,147,102,243, 25, 13, 13,107, 44,246, 81, 57, 2,173,209, - 33,144, 36,130,146,206,178, 12, 27, 60, 42, 8, 31,221, 68, 67, 74,217,124, 70, 64,156, 60,121, 94,224,173,101,117, 50, 33,207, - 50,170,186,102, 62,157,162, 70, 37,105,158, 19,105, 77,211,118,196, 90,252,219,214,246,100,121, 38,207, 48, 98,139,109,154,142, - 16, 28,211,169, 28, 78,179,190, 37,234, 59,178, 60,163,109, 90, 60, 16, 71, 29, 94, 33,162, 46, 13, 93,107,209, 40,130,209,232, - 24,250, 94, 34,162,219,174, 23,183, 65,144, 41,114,111, 59,186,182,151,119,106, 20,209,180, 1,107,197, 25, 52, 42, 50,242, 97, -210, 34,209,183, 50,249,152,207,231,168,225,125,101,226,152,206, 58,146, 88,156, 70, 89,146,224,227,152, 52, 75, 81,206,209,118, -157,172, 62, 67,160,171,107,166,211, 41,229, 72,186,246,190,111,229,231, 85, 21,214, 57,212,160,199,176, 94,108,185, 77, 43, 56, - 91, 19,197,100,185, 8,130,155,186,102, 54, 19, 33,162, 49,134,165,165, 37, 20, 2,141, 81, 90, 34,172,189,247,196,105, 74,176, - 86, 16,192, 89,190,222,112,122, 47, 36,192,209,128,199,110,106,217,155, 23, 69,142, 68,244,138,198, 97, 58,153,210, 37,189, 20, -164, 98,125,112,152, 40,194, 53, 13,210, 55, 57, 20,138,214, 90,156,245,132, 32, 62, 99,217, 21,107,180, 14,130, 46,237, 58,214, -138, 2, 19,197, 24, 29,147, 38, 34,152, 43,179, 12,143,124, 57,198, 8,253,168,169,106,249,114,156,101,210, 15, 55,238,194, 2, - 77, 91,179, 58, 91, 37, 75, 12,109,221,208,169,142, 90,203, 47, 95,150, 35, 92,111,137, 11,177, 20,244,222, 98, 27, 71,153, 9, -147, 30, 60, 93, 35, 93,238,168, 40,145, 45, 8,212, 94, 64, 9,213,116, 38,224,151,249,140, 70, 41,188,137, 89, 88, 92,160,177, - 22,148, 97, 50,157,145,102, 41,174,243,212,212,148, 89, 78,146,166, 56, 43,182,144,106, 62, 39, 4,207,120,188,192,108, 62,195, - 59,207,104, 44, 31, 48, 33, 80,247, 29,186,235, 49,105, 6,182,167, 44, 71, 98, 49,241,226,187, 78,211,181, 46, 85,188,174,109, -213, 14, 98,152, 14,141, 60,124, 93,211,209,247,173,220, 40, 33, 48,159,201,223,153,151, 37,171,147, 9, 33,200,184,223, 59,135, -114, 2,220,153, 12, 94,249,190,109, 41,138,130,182,109, 89, 28, 47,224,220,144,224, 99,101, 47,150,164, 41,109,211, 80,117, 45, -163, 44,147,113,182, 19,142,117, 83, 87, 36,169,208,248, 66,128,214, 10,133,170,169,106,150, 22,199, 4,165,137,108, 79,111,101, - 50,208, 89, 75,111,197, 3,221,116, 45,190, 17, 16,200,134,197, 37,233,254,128,166,235,112,125, 71, 18,167, 4,196,134, 49, 30, -212,238,227,197, 37,170,249, 20,215,117, 68, 73, 60, 40,137,251,225,198,245,160,133, 76,165,148,172, 98,178, 56,165,183,173,120, - 93,123,139,117,129, 34, 11,252, 79, 31, 76, 56,176, 35, 34,156,156,194, 8,118, 84,203,236,252,220,131,132, 60, 66,221,188,143, - 55,190,244, 60,215,109,203, 81,251,118,242,141, 67,167,217,181,161,192,250,192,201,139, 87, 89,249,149,223,229,238,155,183,195, -155, 45, 95,124,246, 8,151, 79, 95, 96,247, 35,159,229,254, 79,254, 24,110, 58,149,202,183,183, 76,103, 51, 34,163,121,249,232, -137,183, 29,232,112,231, 45, 7,248,233, 31,253, 12,239,124,224,110,150,198, 35, 8,129,171, 87, 87,121,250,240, 75,252,222,151, -190,242,125, 7, 58, 8,134,245,192,190,125,236,218,190,157, 34, 47, 56,242,250,235,252,238, 23,255,156,111,126, 71, 58,250,235, -174,221,197, 13,123,175,229,238,219,111, 69, 27,195,165,171,203,196,145,140,133,181,214,178, 42, 49,154,179, 23, 46,243,210,171, -175,179,103,215, 78, 78,156, 57,139,181,150,213,213, 41,193, 7,182,108,222, 40,110,142,121,197,169,115, 23, 56,117,238, 2,157, -149,188,122, 16, 65,223, 39, 62,240, 94,118,111,223, 70,172,141,124, 39, 69,206,225,215,143,114,232,165, 87,184,110,247,110, 46, -175,172, 48,157,206, 73,227,152,253,215,237,101,251,150, 77,188,121,234, 28,191,252,107,255, 47,175, 30, 63,193,234, 68, 58,249, -121, 85,179,125,203,102,110, 62,176,159,251,239,184,149,197,241,152,213,201, 42,175, 31,127,147, 71, 30,188,159,211, 23, 46,114, -121,121,133, 19,167,223,218,105,103, 89,198,238, 29,219,104,154,134, 27,174,187,150,207,124,228,131,132, 16,248,211,191,124,148, -223,253,210,159,243,220,145,151,215,139, 83,128,143,189,239, 17, 14,236,190,134, 11, 87, 87, 24,149, 18, 39,187,188,178, 74, 26, -167,108,218,186,153, 67,207, 61, 47,140,113, 99, 88,157,206,248,205, 63,250,226,223, 56,230,127,251,245,215, 59,118,128,215, 94, -121,149, 56, 78, 56,120,211, 77,136, 55, 59,176,178,186, 74,164, 53,101, 28,211,244, 66,105, 75,210,140,217,116, 6, 74, 44,155, -107, 60, 6,105, 84, 68,135,180,182,131,158,207, 69, 1,238,188,136,162,146, 56, 30,132, 97, 18, 32,229,188, 99,180, 56,198, 40, -152, 78, 87,201,211,140, 96,132,200,232,141,161,169, 59, 20,129, 52,137,105,218,142, 44,201,136,140, 28,202,222, 90,148, 54,168, - 54, 16,197, 9,163,209,130, 36, 96,182,141,140,105,189,164,128,205,231,213,186, 93, 42,203, 50,166, 83,177,158, 69, 81, 68,223, - 55,196, 81, 38,251,240,166,165,109,218,245,238, 87,210,233, 2,245, 80,156,120,239,133, 82,231,156,168,251, 21, 88, 12, 70,139, - 38,166,111, 29,121, 94, 98,140, 98,117, 50,197,123, 75,154,138,101, 44, 79, 83,226,209,136,201,234, 4,225,170, 27,186,121,135, -138, 20,169,142, 6,177,178,199, 27, 67, 22,165, 36,169, 96, 86, 77, 48,196, 81,132,213,160, 48, 36, 81, 24,116, 53,138, 56, 77, - 81, 33,200, 36,195,245,180,109, 75, 57,146, 49,189, 10,162, 13, 82, 90,168,110,120, 47,211,102, 37, 7,238,168, 28, 49,171, 43, -108, 93,163, 8,244,141, 38, 77,146,117,209,174, 10, 49,110,208, 74,245, 93, 67,111, 37,139, 35, 4, 17,145,155,200,176,184,176, - 36,187,243, 32,218, 46,130,199, 7,217,201, 43,239,241, 10, 8,136, 22,193,121,218, 86, 86, 21, 89,146, 49,175,231,140,138, 17, -206, 90,102,243, 57,222, 75,214,134, 66, 38,166,125,223, 19, 41, 69,239,100,178,163,140,224,103,189,247,216, 94, 86,194,202,123, - 34,147, 96,244,192,109,113, 22, 16, 59,161, 15, 1,101, 59,116,163,136, 34,109, 6,223,101,160,199, 48,157,206,200,203, 12, 21, - 52, 69, 30,179,186,186,138, 82, 98,204, 25,151, 37, 74, 43,154,166,101, 58,159, 15,135,242, 24, 99, 98,241, 94,106, 77,154,164, -168,160,208,145,166,107, 26,100, 47,154, 13,222, 72, 81,152,155, 84,212,216,177, 49, 52,157,100, 6,163, 53, 77, 61, 39, 45, 50, -218,186,149,100,175, 52, 69,107,141,195,176,178,114,149, 40, 74, 41,242,148,186,170, 89, 94,185, 74, 49,196, 9, 42,237, 81,136, -141,108,173, 19, 1,240, 40,140,137,177,222,139,247, 58, 4, 8,142,214,245,244,173, 96, 94,103,214,210, 54, 50,162, 42,162, 92, -136, 69,195, 75, 32, 54, 98,139, 35, 64,221,138,178, 53,205,115,170,121,141,210,178, 35,241,206, 97,135, 63, 95, 20,185,224, 81, -243, 28,213,203,131,233,189, 39, 73, 19, 92, 47, 29,136,137, 36,105,173, 29, 20,226,218,104,122,103,137,147,140,216, 59,234,186, - 38, 77, 99,170,217,156,233,234,148, 81, 57, 8,234,156, 3,231,112, 85, 3, 58,160,157,163, 88, 88, 24,118, 94,226, 11,117,222, -226,156,195, 32,160,135, 50,207,233, 67, 24,252,227, 98, 55,155,205,103,196,145, 64, 45,162, 36, 33,142, 13,139,139,139, 16, 2, -157,119,232, 68,124,163, 33, 40,214, 70,224,194,180,182,226,125, 55, 70,196,109,195,131, 98, 34,113, 38,204,231,115,130, 22,107, - 90, 93,215, 56,215,211, 52, 61,105, 34,138, 98, 99,196, 35,155,101,226, 69, 85, 8, 41,171,170, 68,180,184,184,184,128, 82,154, -190,147,135, 53,137, 35, 41, 6,189,193,186, 64,156, 37, 40,235,249,204,221, 17, 7,182, 42,130, 13,168,107,198, 4,163,216,249, -249,143, 18,206,212, 92,120,234, 44,219, 62,255, 57,198,155,206,241,157,239, 60,203,131, 27, 22, 88, 93,153,147, 41, 69,156, 39, - 84, 85,195,201, 51,151,152,102,129, 35,175, 93,166,168, 86,216,247,192,135,184,253, 83, 63,141,155,207, 69,141,174, 2,177, 86, -108,222,176,129,199,191,251, 52,191,243,167,111,101,144, 39, 73,194,167, 63,242, 1, 30,190,239, 46, 54, 46, 46,225,189,197, 7, - 89, 29,120,239,215,119,210,107,215,190, 61,187,120,240,158,187,216,177,109,211, 58,220,165,239,122, 38,179, 25, 77,221,226, 9, -108,221,180,145,159,253,220,143,177,103,231,118, 76, 36,254,114, 1,163,168,117, 42, 89, 24, 38,100,247,221,113, 59, 95,249,214, -183,217,182,105, 3,231, 46, 93, 65, 41,197,106, 93,177,105,227, 6,174,217,182,133,215,143,191,201,191,252,183,255,215, 15,216, -238,110,191,229, 70,118,110,221,202,166,165, 69,146, 52, 33, 54,134, 67, 71, 94,229,194,197, 75,156, 56,121,154,119,220,125, 59, -255,248,239,255, 36, 69, 57,162, 76, 83, 30,188,231, 14,144,229, 15, 31,127,255,187,121,225, 87, 94, 93,223,117,239,222,185,131, - 31,250,192,251,248,232,123, 31,102,251,150,205, 88,107,249,189, 47,125,133, 95,250,119,255, 1,128,133,209,104, 61, 22,118,237, - 90, 40, 11,254,246, 39, 63,198,207,126,246, 71, 24,109,223,140,111, 44,213,202, 10,251,174,219,195, 13,251,246,114,230,252,133, -239,243,163,159, 61,123,142, 7,239,186,157, 3,251,247,113,121,121,133,178,200, 57,112,221, 30,174,217,177, 3,215,138, 31,250, -151,127,249,223,240,151,223,122,156,187,111,187,133,205, 27,151,184,120,249,251,199,252,127,253,250,155, 58,118,128, 35, 47,190, -200,117,187,118,146, 46, 46, 50,159,213,140,202, 98, 29,248,164,181,166,154,205, 24,141, 23, 16,182, 58, 16, 32, 75, 35, 92, 28, -175, 31,156, 0,113,148, 80,142,243,117,203,102,223, 91,250,190,101, 45,176,131,224, 65,203,193,133,115,132, 40,146, 68,198,183, -253,140, 44,207,233, 93, 71, 22, 37,184, 48,172,159,189, 16, 37,181, 18, 60,181,209, 34,196,234,154,134, 36, 30,145,231,185, 88, -144,135,127, 79,219, 52,148,101,129, 82,129,121, 53, 76, 65, 99,121,134,186,174,195, 16,201,202,203, 75,192,205,104, 44,110,149, - 44, 19, 16,138,245,158, 16,188, 88,211,134, 80,166, 53,144,214,242,138, 99,113,113,145,128,129, 32,214, 99, 99, 52,206,203,248, -216,104, 33,183, 21,121, 73,223,182,116,182, 97,188, 48, 30,118,244, 49, 54,114,248,222,209,251,158, 40,137,200, 76, 12, 74, 88, - 27, 10, 77,172, 68, 53,238,172, 27, 66,187,122, 20, 34,120, 35, 40, 76,164, 7,155,159, 33,205,101,189,216,214,173, 0,208,180, - 6,223,145,166, 5, 11,227, 5,170,166,194,182,158, 50, 23,128,149,247, 94,162,165,157, 4,137, 25,173, 9, 62,144,105, 9,191, - 65, 27,148,245,248, 72,192,103,101,158, 12,194,103,153,126,122,111,169, 7,145,154,164,142,122,154, 86,194,101,226, 52,149,200, -219, 36, 89,119, 93, 64, 88,111,198,156,147,166,120,117, 54,161,204, 37,238, 54,138, 18,186,182,166,179,150,102,104,142,148, 82, -160,196, 10,232,155, 6,171,148,112,231,171, 74,138,181,217, 12, 29,203, 55, 29,197, 17, 12, 65, 55,163,178,100,222,200,170,197, -246, 61, 81,211,212, 68,133, 4,180,116, 93, 35,191,252,116, 70,156,230,216,222,177,176,176, 32, 98,180, 72, 60,117, 4,112,214, -146,231, 57,189,179,212, 77, 7,116,140,203, 17,214, 10, 22,177,110,107, 10, 83,226,135, 27, 18, 10, 96, 77, 0, 0, 32, 0, 73, - 68, 65, 84, 41, 73, 83, 22,135, 93, 45, 72,101, 51,157,174,210, 33, 7, 97,215,117,244,157,165, 40, 51,214,128,247, 77, 35, 99, -167,144,231, 68,137, 98, 94,245, 88,219, 19, 39, 11, 40, 45,118,140,233, 68, 48,135,224, 81, 74,198, 16,145, 22, 68,108, 57, 46, -209, 74,147,165, 9,109,223, 83, 13, 29,175,142, 99,130,151, 15,207, 24, 67,146,101,196, 38,162,105,106,218, 86,124,243,197,168, - 20,113,131, 23, 95,100,221,136,194, 63, 29,246,217, 66, 94,179, 76,167, 83, 70,101,137,210,154, 40,210,128,198,186,185, 76, 20, -250, 14, 99, 52,147,217,140, 16, 60, 73,156, 8,137, 41, 73, 49, 65,145,164, 41,233,144, 34, 22, 69, 17,107,190,215, 36,137,153, - 15,190,209,114,128,146, 88,231,232,170, 10,163, 21,104, 81,243,163, 20,243,170,162, 44, 37,133, 77,107,177,190, 20, 89,129, 49, - 6, 19,139,103,213, 4,249, 76,156,179, 50, 54,139,196, 3,218,117, 3,191, 95,107, 80,138,174,110,209,145, 36, 85,105, 60,211, -249,156, 40,146,194, 75,136, 87, 50, 89,201,147, 4,149, 21, 72,204,100,192,117, 45,189,115, 36,113, 2, 26,230, 85,197,168, 20, - 7, 65,219, 52,204,231,115,230, 72, 23, 99,144,157,187,118, 65,212,177, 65,192, 52, 75, 75, 99,169,136,103, 51,177,201, 40, 77, -221,214,120, 39, 72,198, 60,203,104,155,142,155,118, 24,126,244, 46,131,175,122,168, 28, 36,146,203,174,174,118,252,230, 31, 60, -203,193,205, 5,219,204, 18, 69, 20, 51,222,186,200,252,252, 85, 40, 71,212,203, 83,220,124, 74, 84,102,180, 73,194,209,211,171, -108,238, 42, 22,182,239,225,174,159,248,199, 82,124,186, 30,163, 12,147, 89,197,185,243, 23,248,179, 71,191,197,151,191,249, 24, - 55,221,112, 61, 15,220,121, 27,155, 55,110,196, 57,199,195,247,221, 67, 28, 27,170, 70, 84,197,211,249, 42,255,254,183,126,143, - 95,251,237, 63, 96,237, 50,198,112,231, 45, 55,243,209,247, 62,204,189,183,221, 76,154,166,108, 88, 24,163,141,140, 46,191,251, -252, 97, 60,129,189,187,119,113,221,238,107,104,154,138,224,229,123,109,134, 85, 67, 81, 20,196,145,144, 19,157,115, 60,243,226, - 17,190,240,251,127,204,137, 83,167, 57,120,253, 62, 14, 94,191,151,251,239,188,157, 7,239,190,139, 56, 49,156, 62,123,145,215, - 78,156,228,154,237, 91, 57,123,113, 43,103,207,203, 94, 89, 43,120,255, 3,247,179, 97,105, 17,109, 34,124,144,200,227,199,159, -254, 30, 71,142, 30, 99,247,206, 29, 68, 38,226,200,235,199,249,216, 35,239,228,246,155, 14, 16, 21, 5,243,201, 42,199, 79,157, -225,215,126,231, 15, 89,153,202,139, 42, 75, 19,118,109,223, 10,222,114,238,194, 37, 54,111, 88,162, 44, 74,254,214, 71, 63,200, - 43,199, 78,240,165,175,127,243, 7, 14,116,128,139, 87,174,242,171,191,245,251,188,235,190,123, 56,136,226,216,201, 83,252,220, -127,243,207,120,229,141, 19,104, 61, 32, 69,135, 43, 54, 17, 87, 87, 39, 60,243,226, 97,222,243,192,253,220,125,203,205,108,220, -176,196,142, 45,155,176,206,114,238,226, 21, 46, 93,190,196, 35, 15, 63,192,155,167,207,240,212,161,231,127,224,239,251,155,186, -242,255,212,245,192,157,119,240,207,127,238,167,121,252,197, 87,120,236,240, 75,212,141, 88, 53,113, 18,220, 84,230, 37,171,171, - 43,148, 69,137, 71,172, 95,182,149, 66, 75, 16,212,142,105, 53, 35,116,158,180,143,229, 57, 64, 0, 35,210, 73,150,178,171, 29, - 21, 56, 27,200,116, 74, 85,205,241, 85, 77, 54,184, 99,214,146,221,214,138,101,103, 28, 58, 72, 10,102, 91,139,136, 22, 52,117, -211, 80,183, 83,198,101, 73, 49, 42, 89,157,172,138,208, 87, 5,108,103, 41,203, 17,214, 89, 50,147, 17,220, 80,152,251,128, 82, - 17, 11,163,148,182,151,104, 82,101,213,240,185, 75,209, 82,142, 75,122,107, 73,179, 20, 91,213,140,199, 11,178, 47, 95,120, 11, - 76,227,189, 39, 86,134,149,149, 21,178, 44, 19, 6,134,237,113, 90,203,180, 82,203, 59, 53, 38,166,174,231, 18,218, 18, 88, 31, - 61,119,157, 80,232, 70, 99, 17, 49,218,174,195, 5, 9,119, 9, 72, 78,135, 54,178, 98,213, 90, 99,188, 33, 82, 17,104,112,222, -137, 72, 23,134,128, 42,201,165,136,227,152, 36,214,160, 2, 26,141,243, 26, 59,216, 8,179, 52,167,239,166,204,167, 83,226,165, -133,193,149, 32,141,196, 40, 23,231, 79,221,183,146,134, 87,148,210, 56,181, 82,212, 16,192, 42,249, 14,199,227, 18, 99, 98,250, - 94,126,215,213,213, 41, 90, 54,133,104,173,153,215, 53,161,170, 88, 19,100, 75,152, 85,144,213,163,151,148, 69,140,166,154,205, - 33, 4,170, 90,112,181, 90, 33,105,121,193, 51,159,205, 24,149, 37, 12,127,103,100, 34, 72,131, 36,177,121, 89,255,180, 93, 55, - 96,133,193,123,135, 11,129,113,185,136,142,100, 42,224,131, 88,201, 81, 16, 65, 96,117,178, 76, 81,148, 34, 6, 32, 12,164, 55, - 69,240,195,216,195, 24,172,245,204,230, 51,169,110,178, 28,163, 53,132,152,121, 45,106,190, 85, 47, 7, 75, 18,199,104, 99,152, - 76, 39, 68, 38,102,109, 15, 32,166,254, 24,239, 25,188,203,200,151,161, 53, 10, 79, 81,230, 40,239,169,171, 57,101, 89,208,247, -142, 36,150,151,118,215,182,200,193,173,152, 87, 83,140,146,236, 94, 19, 69, 72,124,167,161,235,123,234,186, 38,207, 10,178,188, -192,104, 77,221,180,232, 40,146,110,113,243,102, 8,129, 16, 36,152, 64,194, 82, 36,187,215,187, 64,154, 37,224,197,159, 89,205, - 43, 66, 44, 22,189,170,174,222, 98,209, 59, 71,219,118, 2,118, 80, 10,147, 36,204,235, 90,172, 36,201, 8,215,181,120,167,152, - 85, 51,188, 21,197,164,237, 58, 64,211,216, 6,124, 96,214,206,208, 74, 68,105,241,216, 48,155, 13,160,254,225,128,107,187,150, -114, 60, 38, 32,190,253,182,239,135, 36,181,128,183,129, 16, 39,196, 81, 74, 98, 96,222,212, 76, 39, 19,162, 52, 21, 36,235,124, -142, 89, 75,160,211,154,213,201,132, 44,203, 48, 38, 70, 32, 8, 29, 38, 50, 84, 85, 45,133, 68,239,241,198,130,181, 67,112, 65, - 16,172,107, 39,138,109,172, 69,101,153,208,145,180,150,157,109, 8,224,123, 8,144, 36, 25, 77, 99, 9, 62,224,140, 71,217,192, -218,251,217,121, 47,130,192,217, 32,204,243, 16, 84, 64, 13, 83,210,117,118,189, 23,178,210,104, 52, 18,223,172,151, 10,118, 13, - 80, 19,153,136,166,173,113, 46,240, 51,247,100,112,201, 66,223,162, 22,199, 80, 87,168, 45, 35,190,247,149,151, 81,147, 41,102, -251, 34,225,165,151, 56,126,230, 18,243, 30, 46,204, 45,253,108,142,235,122, 62,253,200, 65, 46,119, 61, 95,122,225, 60,155,234, - 57,182,159,112,243,143,253, 11,156, 87, 88,219,201,248,206,119, 28, 59,113,138,175, 63,254, 36,143, 62,241, 29,206,158,191, 72, - 81,100, 28, 59,121,134,143,127,224, 17, 30,190,231, 78,236, 48, 86, 11, 65,246,221, 62,120,110, 61,176,159, 31,122,255,123,249, -198,147, 79, 49,175,106,130,115, 28,220,127, 29,247,222,113, 43, 27,151, 22, 6, 27,214, 85,190,243,220, 97, 30,125,252, 9,250, -193,231,252, 15,127,242,115,124,224,157,239,192, 90, 43, 63,183, 19, 43,229,120, 36,133,162, 82,138,162, 44, 56,117,246, 28, 23, - 46, 94, 98,219,230, 77, 28, 63,121,138,163, 39, 78,146,196, 17,251,246,236, 97,117,186, 42,250, 8, 5, 59,183,109,230,214, 3, - 55,240,250,137,147,235,135,250, 63,249, 7, 63,203,189,119,220,138, 82,138,201,116,202,177, 19, 39,249,250, 19, 79,242,149,111, - 62, 70, 24,166, 12, 91,183,110,225,192,117,123, 16, 63,113, 67,179, 50,225,209,199,191,195,247, 94,120,145,203,203, 43, 44,175, -200,232,189,105, 59,158, 59,252, 10,155, 55,110,228,193,123,239, 34, 73, 82,158,120,246, 16,255,242,223,252, 42,163, 60,227,129, - 59,111,227,220,133, 75,156, 56,115,150,135,238,189,155,235,247,236,226,200,171, 71,121,224,174,219,216,191,111,175,168,212, 31, -123,146,175, 63,246, 4,151,150, 87,135,239,223,227,135,123, 66,107, 77,239, 60,109,215, 82,100, 5, 87,150,151, 89, 90, 28,177, -123,199, 54,202,133, 49,243,233,156,229,149,115,188,252,250, 49,190,254,196,119,177,214, 82, 22,249,250,100,110,237,250, 79, 29, -232,111, 63,236, 55,110, 88,226,230,253,251,248,137, 79,127,146,206,123,238, 61,120, 3, 70,107,190,254,244, 33,156, 21,184, 76, -112, 65,172,151,193, 51,157, 79,137,146, 4, 19, 12, 81,102, 8,138,117,118, 3, 30,130, 6,223,123,116, 42,227,208,186,126, 75, -112,219,119, 82,204,171, 8,166,171,171,120,164, 49,154, 78, 39,148, 69, 41,160,170, 56,194, 3,137, 49,204,230,115,172,115,140, -203, 49,126, 24,227, 3,184,190, 39, 56,129,147,180,109, 77,154,102,235,123,222,214, 53, 56,215,145,166,249,186,182, 8,130, 20, -114,109,131,237, 69,156,170,148,194, 71, 67, 14, 3, 30, 23, 2,211,169, 20,240,193, 9,249, 50,120, 79,111,123,226, 40, 38, 73, - 4,206,163,181, 6, 13,193,138, 46, 64, 27,153,212, 9, 68, 39,224,135,127,103, 26, 71,168,161,129, 81,200, 36,183,107,133, 36, - 90,142, 74, 81,218, 43, 72,162, 8, 13, 66,169,243, 97,176,244, 65,146, 24, 2,178,171,238,144,247, 80, 63,172, 90, 76, 44,201, -141,113, 44,194,223, 53,122, 39, 64,146,102,184,174, 35,205, 50,234,186,145, 41, 68, 57, 98, 62,159,177,186,186, 74, 89,142, 17, - 87,151,161,174,107, 57,124,187,158,200, 68,116, 77, 67, 48,154, 98,180, 64,223,201,148, 44,138, 34, 20, 82, 80, 56,231, 80, 70, - 0, 90, 16,134,221,185,136,144, 67, 16,241,180,115, 30,173,100, 84, 62, 26,151,196,177,156,125,109,219, 98,173, 4,146, 41,173, -112,195, 26,101,218,203,191, 59,205, 50, 70,163,145,112, 68, 52,204,231, 21,138,150, 40, 18,213,187,216,197,197, 10, 41,187,116, - 9, 17,107,234, 26, 31, 28,161,151,105,111, 28,199, 36, 89,138,235, 45, 81, 26, 71,116, 33, 48,155,174,162,148, 84, 5,113, 44, -156,247, 56,202,240, 4,146, 40, 38, 30,231,216,222, 82, 85,213,186, 16,197,123, 57,136,198,227, 5, 25,153, 38,153, 84,107, 38, -224,189,236,210,141, 5, 23, 60,202,117,168, 78,242,198, 35,173,135,253,141, 71,163, 80, 58, 2,239,152, 76, 69,208, 48,159,138, -237, 66, 33,227,122, 81,228, 15,121,219, 38, 37, 4,225,191, 27, 35,217,228,104, 69,166, 99, 73, 52, 83,114,168, 66,178,126, 67, -218, 97,252,225,157, 3,197,176,247, 22,107, 77,240, 34, 82,168,231,242,161,165,113,204,120, 60,150, 74,210, 89, 12, 26, 33, 72, - 9,143, 55,248,128, 66,132,106,193, 11, 52,192,104,141, 14, 80,117, 29,189,117,248,222,226,131,135, 52, 69,161, 72,135,145,203, -108, 50, 33,138, 34,178, 52,165,235,122, 86, 87, 86, 8, 58,162,200, 69,245, 8, 16,194,224,223,183,150,206, 5, 84,223,163, 85, - 4, 38, 34, 68, 80, 14, 2,187,182,239, 81,189, 5,165,137, 34,131,237,160, 40, 74,230,115, 25,213,121,239,113,222,211,181, 29, -218, 24, 70,227,177,176,148,157, 76, 50,214, 42,211,162, 44, 80,104,162, 88,172,133,137,137, 9,201,208,113, 47, 46,202,205,233, - 61, 73, 20,225,140,193,120, 47,251,159, 88,172,104,214, 90,180, 81, 3,245, 72, 94,154, 90,173, 33, 57, 7,170, 93,112, 68,218, - 12, 28, 4, 73,181,155, 78, 37, 45, 75, 41, 67,154, 27,122, 39,150, 17, 23, 68,113, 15,224, 66,192, 12, 93,207,166, 18,150, 18, - 77,243,234,235,244,171, 51,202,219, 14, 16,142,158, 68,223,125, 19, 47,157, 92, 38, 75,140,132,209, 44, 25,174,223, 18,147,189, -235, 38, 88,241,124,233, 91,199,120,223, 29,187, 72, 14,238,224,107,191,255, 12,215,218,138,105, 51,231,182, 31,249, 47, 88,188, -241, 46,234,129,110,232,188,103,117, 58,101, 58,159,115,233,234, 50, 39, 78,159,101,101, 50, 97,101, 50,225,145, 7,238,103,177, - 44, 57,119,233,178,140,242,156,216, 88,226, 72, 92, 7, 93,223,113,238,226,165,183, 14, 23,173,153,207,102, 28,123,243, 20,163, -162, 32,207, 82,254,232,203, 95,229,119,254,236, 47,197, 33,225, 97,215,246,173,124,239,133, 23,201,210,132,219,111, 58, 72, 20, - 9, 55, 65, 5, 89, 35,133,224,135,200, 95,184,188,188,194,229,229, 21, 94, 63,254, 38,189,117,236,220,186,149, 91,110,188,129, - 59,111, 61,136,137, 98,102,179,138,243, 23, 47,243,216,119,159,225, 43,223,254,171,245, 81,244,131,247,222,197,223,253,244, 39, - 72,226,132,203,203, 87, 57,122,226, 36,199, 79,157,225,165,215,223,160,233, 58,118,110,221,202,205, 55,236,227,134,235,174,101, -199,150, 45,236,220,182,149, 36, 78,184,112,249, 10, 90,107,158,122,238, 69,222,120,243, 36,107,215,134,165, 69, 62,246,200,187, -248,224, 59, 31, 98,255,222,189, 20, 89,138, 81,138,155, 14,236,231, 79,190,242, 53,222,126, 29, 58,242, 18, 31,121,207, 67,252, -194, 63,248, 25,118,236,217,141,111, 59, 78,188,121,146, 50,207,185,102,251,118,118,110,223,250, 3, 57,236,187,118,108,231,254, - 59,111, 99, 60,124,255, 90,107, 54, 45,109, 32,207,211,117,177,103,150, 38,156,187,178,204,249, 75,151,120,229,141, 19,252, 77, -215, 95,239,212,215,254,119, 8,129,178,200,185,245,198, 3,252,252,127,246, 89, 30,188,231, 14, 46, 92,188,194, 43,175,191,193, -149, 85,217,217,199, 93,203, 42,138, 60,205,105,130,248,191,149, 22,133,117,219,246,196,169,166,106, 26, 34, 12,202,200, 94, 50, - 50,134, 36,205,196,190, 22, 68,177, 29, 8, 36, 81,130, 14,138,160,100,101,217,247,162, 37, 49,145,161,183, 29,190,147, 3, 73, - 33,231, 69, 18, 39,216,222,146,151, 37, 10,177, 52,105,164, 8, 87, 64,150,202, 58,166,105, 42,188,245,116, 93, 75,100, 34,234, -190, 70, 27,205,124, 94,145, 36, 9, 81,156,144,196,130,198,110, 42, 73,101,180,206,210, 87, 29, 62, 4,210, 36,167,163, 39, 86, -242, 46, 82,200,142,220, 5, 25,109,163,196,182,170,181, 8, 94, 55,108,216,128,115, 50, 70,158, 78, 39, 88,235,168,235,150, 40, - 74,200,210,140, 36, 12, 54,180, 68,240,192,105, 34,113,181,109, 83,163, 81,228, 69,142, 81, 6, 23, 36, 79, 66, 5,232,113,224, - 60, 38,150, 29,120,219,214,235,211,209,182,107,233,123, 75,146,164, 4, 37,192, 29,171, 2,202, 57,210, 56,165, 30,132,198,107, -233,119,104,141,237, 4, 45,190,174, 37, 74, 18,138, 60, 34, 54, 18,107, 90,215,115, 89, 13, 20, 5,158,192,188,105,196, 59,159, -166,120, 39, 25,240, 74,105,108,175,134,230,241, 45,234,166,247,242,255,187,222, 81,148, 5,221,138,112,245,197,166, 40,255,157, -199, 17, 17,209,118, 29,243,249,156,197, 13,130,174,149,247,167,236,190, 3,129,198,116, 40, 28,214,202,217,209, 54, 13,157,210, - 20,163, 2, 29,132, 66,218, 91, 75,215,121,180,209, 36,105,138, 50,134,190,235,208, 74,166,203,109,219,160,148, 56,182,122,235, - 16, 54, 75,141,124,117,138, 40, 4,135,115, 61,163,162, 68, 25,197,116, 54, 97, 62,173,197,179, 30, 26,202,188,144,155, 44,136, -196, 30, 15, 81, 36, 57,220, 32, 48, 21,239, 61,121, 94, 80,181, 67,134,173,245,160, 64,107,225,251,182,109,143,237,107,154,186, -146, 67, 60, 73,232,251, 78, 2, 92,130, 35,139, 19,150, 87, 86, 8, 33,144,143, 70, 24,163,105,171, 22, 31, 68, 20, 22,153, 24, -231, 2, 1, 17,220, 41,229,152,207,122,138,241,152,249,108,130, 66,147,101, 37,105,106,168,157,151,155, 35, 8,113, 9,173, 9, - 94,186,252,174,233,112, 72,184,138, 86, 66,102,114,206, 17, 90,161,229,245,109, 47, 55, 80,112,244,125, 75, 97, 70,180,189,144, -147,210, 36,149, 74,180, 20, 5,125,221, 74, 17, 80,230,249, 32,166, 11,148,197, 8,219,203,206, 84,245,142, 60, 77, 48, 69, 73, -219,182,196,145, 33, 74,228, 6, 16, 97,132, 96, 28,131,119, 52, 85, 53, 76, 17, 2,104, 69, 89,142,165,226, 94, 93,197,163,192, - 8, 92, 33,142, 52,243, 86,226, 23, 67,240, 96, 12,113,146,208,214, 45,198, 68, 84, 85,195,226,120, 12, 74, 83,215, 53,182, 17, -248, 14,222, 83,213, 53, 90, 65,235,100, 15,156,198,195,129, 84,183,194,211, 71,175,115, 7,202, 34, 99, 77, 32, 18, 37,242,130, - 72,226, 20,143, 84,140,227,241, 24,165,164,123,200,210, 20,173,141,172, 34, 6, 12,112, 85, 87,152, 40,194, 59, 75,111,133,225, - 63,157, 76, 41,114,217, 61,165, 89,202,210,210,162,144,164, 84, 36,255, 30,215, 19,167, 25,222, 90,156,146,110,199, 68,134,121, - 39,157,192,123,111,207,217, 52,155, 49,155, 54, 44,220,127, 16, 70, 41,140,111,196, 95, 92, 70,173,206,177,101,193,177,139,171, -220,240,212, 51,100,183,109, 34, 20, 9,106, 73,115,195,245, 91,184,229,142, 61, 92,124,237, 28,106,117,198,164,153, 19,111,221, -199,142,123, 63,194,116,101, 21, 20,146, 80,215, 73,178,214,202,100,194, 87,191,253,248, 58, 53,238, 83, 31,124, 63, 63,243,217, -207,176,125,243,102,122,219, 83,213, 13, 73, 28,145,165,201,240,178,116,108,220,176, 81,196, 57,195,117,195,117,215,242,137, 15, -190,159,189,187,119,178,123,251, 54,162, 36,225,253,239,126, 24,167, 20, 95,255,171, 39,121,231,253,247,242,241,247,189,139, 93, - 59,182,147,166, 49,206, 58,185, 23,128,222, 58, 66, 24, 58, 8,215, 19,105, 73, 70,172,219,142, 44, 73,136, 35,131,243,142,233, -172, 98,121,117,202,166, 5,177,220, 52,109,195,172,109,176, 86, 10,115,173, 53,174,119,124,231,153, 67,236,191,110, 47,101,145, -115,237,174,107, 88, 89,157,208,180, 13,183,236,191,158,219,111, 62,200,190,107,119,113, 96,239, 94,182,111,221, 76, 28, 25, 94, - 61,118,156,167, 14,189,200,235,199,143,115,224,186,189, 28,123,243, 20,193,121, 60,129, 13, 75,139, 60,242,208, 59,248,216,135, -222, 71, 91,213,124,243,201,239,242,235,127,244, 69, 94,124, 89,160, 52,117,211,178,113,105,129,235,247, 94,203,107,199, 78,240, - 63,254,111,255,150,203,203, 43,252,244,143,254, 45,230,117,205,115, 47,190,204,215, 30,127,146, 67, 71, 94,229,220,165, 31, 68, -199,158, 60,115,150,159,250,209, 79,241, 15, 63,255, 83, 40,165,184,120,246, 60, 85,219, 48, 30,149,116, 85,197, 55,158,124,138, - 11,151,175,208,119, 61, 43,147, 31, 28,243,175, 93,107, 7,250,219, 15,243,181,235,174, 91,110,226,191,253,249,207,115,255,189, -119,115,249,210,101, 46,173, 44,243, 7,127,254, 53,108,223,113,233,234, 50,101,145,115,105, 50,231,192,205, 55,201,238, 53, 54, -168, 32,192,172, 36,149,162, 43, 78,132, 38, 23, 66, 88,159, 56, 85,179,138,153,235, 25, 47, 44, 34,146, 56, 37, 19, 20, 13,177, -137,177,193, 14,211, 45,177, 48,181,117,135, 86, 26,163,145,213, 88,211,145, 4,185,135, 84, 16, 93, 80, 24, 58,193, 56,150,212, -180,134, 6, 21, 25,178, 36,195,100, 74,146,225, 20, 68,196,232, 72, 80,221,113, 28, 81,215, 13,222,201,123,221, 57, 79,211,123, -180,138, 25,141, 10, 97, 82, 56,121,247,116,182, 35,139,228,125,134,150,209, 54, 14,186, 97, 2, 17,167, 49,244, 50, 97,211,136, - 24, 48, 31,160, 54, 93, 35,164, 58,111, 29, 81,100, 80, 38,162,105,154, 97,157,105,152, 15,144, 24, 60,180,182, 29,138,159,136, - 40,141,132,238, 54,236,145,109, 43, 83, 63,107, 61, 4,153,172, 6, 60,121, 33, 92,141,122, 46, 54,174,208, 59, 90, 44, 38,150, -134,206,182, 61,222, 8,143,222, 4, 1,165, 41,173, 80, 4, 64,161,149, 34, 32,140, 19,215, 6,178,108, 56, 67,130, 39,142, 34, -188, 22,241, 30, 65, 2, 84, 58,107,137, 85, 60,248,192, 45,133, 41, 1, 79,215,201, 72,189,109,107, 60, 80,228, 5,163,209,120, - 0,180, 5,172, 87,168, 16,208, 58,162, 11, 29, 90, 7,156, 11,116,157, 37,202,228,185,141,163, 8,239,101, 90,147,101, 49,214, - 27, 76, 4, 73, 42, 81,181,206, 73, 12,107,221,213,164,121, 70,174, 11, 64, 92, 75,226,252, 72,134,247,236,224, 84,179,146,171, -146,164, 25, 62, 52, 56,223, 19, 27,209,110, 36, 69, 74, 84, 85,115,146, 56,198, 12,232,193, 81, 57,166,106, 26,218, 90, 70,140, -243,186,166,247,130, 30, 85, 40,132,229, 17,145, 71, 50, 94, 8,192,108, 58, 71,101, 26,239, 60,113, 30,145,198, 18,252,226,157, -165,170,106, 97,186, 43,233,224,250,182,165,235, 91, 70,163,145,140,164,134, 78,204, 59,161, 32,137,224, 34, 34,142, 3,218,136, -213, 46, 40,197,104, 52,166,179,178,151,169, 42,177, 96,116,109,141, 10, 10,235, 44, 93, 39,184,215,209,184, 92, 31,147,228, 38, -149,108, 93,173,137,227,136, 52,203,176,182, 5,164, 10, 13,206,209,216,142,113,150, 49,155, 85,140,202, 66, 0, 11,157,149,112, -132, 97, 31, 30, 16,172,109, 81, 20, 40,173, 9,222,161,134,151,134, 28,216,145,248,204,149,172, 42, 66, 47, 7, 17, 65,129,151, - 7, 95, 1,227,241, 88, 14, 48,100, 52, 63, 26, 13,100, 40,109,152,204,103,132, 97,162, 16, 25, 37, 59,147,133, 5,172, 21, 5, -254,218,232,105,113, 97, 68,215,217,225, 6,214, 36,145, 6, 35, 15,201,120, 32,246,205,103,115,242, 34,197,186,128,243, 61,163, - 98,132, 87,129,166, 17,232, 79,211, 52,100,121,129, 82,226, 85, 77,146,100,253, 64,247,206,209,244, 30, 21,100,221, 96,187, 78, -186,130,182, 93, 31,137, 47, 95,189,138,210, 18, 91,105,173, 37, 49, 49,137, 49, 92,189,114, 5,101,204, 80, 88, 40,148, 49,100, -105, 70, 85,137,250,215, 5, 69,164, 21, 42,104,140,137,200,146,140, 36, 77, 80, 40,130,115, 84,109,143, 54,146, 93, 12,129, 60, -203, 89,200, 21,127,255,221, 9,239,221,163, 8, 62,102,113,255,221,208,123,130, 13,144,192,147,135,207,112,215,109,187, 88,173, - 58,142, 29,187,140,106, 91,194,178,230,235,127,124,132,233, 74, 75,227, 60,103,206, 92,226,185, 51, 19,182,245, 29,103,171,142, -247,124,232,199,153, 13,163,243, 36, 73,137,146,132,145,137, 57,126,250, 52,255,232,159,255, 34, 77,219,113,231,205, 7,249,249, -159,250, 59,188,235,254,123, 0,152,215, 53,117,211,144,165, 41, 27, 55, 44,145, 38, 25,117, 93,113,252,228, 73, 94,127,227, 56, -111,156, 20, 11,215,199,223,247, 30,254,135,127,244,159, 83,230, 57, 81, 28,177, 50,157,241,226, 43,175,242,221,231, 15,243,133, - 63,248, 35,218,166, 99,223,158, 93, 92,184,116,137,205, 27, 55, 18, 25,141, 11, 16, 58, 17, 58,122,239,209, 73, 10, 10,108,239, -192, 40,102, 85,197,233,179,231, 56,117,238, 28, 73, 28,113,253,158,221, 60,120,247,237, 92,123,205, 14,118,108,219, 34,157,197, -188,230,252,197, 75,172, 14,197,136,168,153, 21,104, 77,111,123, 94,120,245, 20, 95,126,244, 91,188,118,236, 56,187,119,236,160, - 28, 21,108,223,178,153,253,123,246,172, 91, 55,143,158, 56,201, 95,124,235,113,190,246,216, 19,188,246,198, 9,154, 86,198,159, - 27,151,150,184,245,192,126,122,219,243,196,211,207,242,224,221,119,112,117,121,133,201,108,198,226,120,196,229,171, 87,215,149, -246,163, 98,196,103,127,248,227,252,221, 31,251, 12,222, 90,230,179, 57,229,168,228,228,169,211,152,200, 48,155,215,156,187,116, -137, 53, 40,207,218, 85, 22, 57,123,174,217,201, 87,191,253, 56,251,175,221,195,135,223,243, 46, 54,111,219, 70, 95, 87, 40, 68, - 47,146,196, 17,207, 29,126,137, 19,103,206,177, 48, 42,248,255,187,214, 14,115, 99, 12, 90, 73,193,116,248,181,163, 28, 63,117, -134, 61,187,174,225,208,145,151, 57,126,234, 12, 79, 63,255,194, 15, 4,199, 76,102, 83,238,185,239, 62, 64,246,210, 4,232,218, -134,222,246,195,222, 28, 76, 20,129, 19, 90,152, 15,158, 34, 45,232,187,142,200,104,122,165,176,222, 97,219, 97, 60,237,189,236, -187,131, 20,204,114,255, 39,184,222,211, 90,121,223,168, 97,242, 23,197, 17,229,104,204,100,117,149,162,144, 72, 88,135,100,146, -171, 16,176,120,250, 70, 14,236, 36, 73,240,222, 18,122, 77,150,165,180,189, 37,137, 19, 92,144,112,173, 44,203,228,240, 85, 29, - 85, 5, 26, 77, 82,100, 96,229,247,153,205, 7, 43,238,112,128,180,157,136,134,141, 49,195, 59, 12, 20,210,185,134, 16, 24,141, - 70,184,185, 35, 31,101,168, 0, 62,120, 76,156,201, 10, 75,169, 97,146,229,134, 68,206,142,214,119, 56,235,208,145, 98,222,182, -168, 70,166, 30, 90,107,162, 97, 58,105,135,251,190,243,129,206,138,165,212, 57,185, 39,138,145,176,238,243, 36, 99, 54,159,139, -136,109,148, 12,182,102, 8, 46,144,100, 9, 72, 31, 41,152,218, 52,198, 90,139,115,129, 44,205, 49,166, 71,196,105, 18, 15,221, - 52,141, 20, 12, 67, 97, 81,140, 10,188,135,128,216,144,141, 54,226,165,215, 2, 98,179,214,210, 89,153, 28, 52,109, 67, 20, 37, - 44,140,199,244,118, 13,159,107,193, 40, 84, 47, 19,104, 23,160, 30,144,173,137,145, 24, 92,219, 91,180,214,180,173, 21, 49,117, -150, 65,144, 6, 52, 40, 43,154,181, 0,120,168,186,102,248,108,220,224,162, 16,145,122,221,182,100, 89,182, 30,203, 13, 3,146, -214,202, 26,194, 90, 73,146,139, 8, 30, 81, 42,203, 23, 43,163, 95,200,146, 88,140,239,121, 74, 52,228,246,214,117, 75,215,119, -120,175, 17,120,190, 84,194,113, 28, 49,175,103,168, 88,246,184, 11, 67,199,214,219, 30,239, 29,113, 34, 59,222,182,106, 64, 43, - 70,165, 88,176,226, 88,212,130,174,183, 64,160,234, 26,140, 21, 14,175,137, 52,147,201, 42,193,137,200, 42, 77,115,138, 82,170, -226, 52,149,131, 41,184, 32, 15,108, 44, 54,187,166,106, 89,190,218, 50, 94, 90,162,158,205,241, 64, 90,100,228, 67, 39,234,176, -232, 72, 88,243,210,249,139,173, 33, 4,201,106,183,206, 82,183,205, 80, 9,105, 57, 96,188,167,173,107, 58,165, 6,165,115, 66, -150, 8,131,215,123, 33,161, 69,145, 84,169, 12,251, 26, 20,224,197,107,108,140,236,136,148, 30,246,247,136, 88, 35,142, 98,170, -106, 78, 28,167,164,177, 97,113, 97, 76, 83,183,210,241,105, 67, 51,116,255, 33, 64, 94, 20, 50,138,114, 30, 99, 98,138, 34,161, -109,123,124,232, 8, 42, 37,137, 34,146,209,136,190,105, 72,178,148, 40,137,105,123,199,194,194, 8,130,200, 23, 12,138,116,156, - 9,165,206, 24,218,174, 65,171, 72, 70,251, 48,164,228, 37,212,182,195,213, 45, 73, 89,144, 12,190, 88,173,165, 74, 23,207,172, - 8,230, 8, 65, 16,141, 1, 26, 47,135,246,218, 67,127,117,101, 69, 4, 48,193,209, 54,130,252, 76,210,140,216,232, 65, 93,107, -129, 88,138,138,182,149, 44,120, 39, 49,130,182,111,177,214, 15,104,205,192,231,223,153,243,222,221, 17,161,177,176,160, 9,111, - 78,248,242,183, 94, 99, 92, 24,222,249,222,131,228,227,156,173, 75, 25,135,142,156,227,163, 15, 93,135,191,126, 3,255,247, 23, -158, 34,153,205,217,150,167,108, 42, 82,158,120,234, 24,222, 65,134,229,134,251,222,205,232,224, 3, 76,134,169,209,108,190,204, -115, 71, 94,166,237,122,254,251,255,229,151,215, 15,178,209, 72, 62,187, 51, 23, 46,136, 78,193, 72, 58,215,226,104, 68, 28,197, -212, 77, 69,221,180, 76,230, 21, 95,253,246,147, 92, 93, 94, 33,137, 35, 30,186,239,110,209,114, 24, 67,104, 26, 14,191,126,148, - 39,158, 57,196,147,207, 60,207,214,141,155,216,187,107, 23,159,253,225,143,179,115,219,102,124,240,111, 77,188,122, 17,191, 20, -131,151,119, 84, 22,212,109,203,179,207,191,192, 99,223,123,150,139, 87,174, 98,123,241, 49, 23,163,146,165,197, 5,182,108,218, - 72,221,180,124,235,187,207,240,236, 11,135,185,186,188, 66,239,228, 37,160, 81,220,184,255,122, 20,138, 55,207,156,227, 91, 79, - 60,197,209, 55,222,100,203,166, 77, 60,124,223, 93, 60,112,207, 93,248,222, 98,157, 69, 27, 67,215,203,126,250,250, 61,187,249, -166,137,214, 63, 7,128,213,233,148, 13, 27,150,248,137, 79,127,130,157,219,182, 50,171, 42,190,245,228, 83,188,252,198,155,156, - 60,125, 78,188,193, 3, 92,200,123,203,179, 47, 30,102,219,230, 77,220,115,235, 45,140, 71, 37,175,188,118,148,191,250,222, 51, - 92,190,116,153, 77, 27,151,216,176, 52,230,194,197,183, 0, 51,251,247,237,229,159,253,151, 63,199,117,187,174, 97, 97, 60, 98, -243,166, 13,120, 60,161,169,112,206,113,236,205, 83,188,126,252, 77,156,235,217,127,237,181, 28,123,243, 52, 71,143,203, 90,224, -111, 18,197, 41,165, 8, 10,242, 36, 97,105,113,129, 71, 30,124,128, 27,246, 94,203,197,203,151,217,181, 99, 59, 7,247,239,227, -229,215,223,224,240, 43, 71,121,250,197,195,235,223,193,219,175, 43, 23, 47,242,220, 51,207,114,199,157,119,138,173, 43,136,103, - 61, 77, 83,140,142,168,231, 21, 68,253, 48,109, 12,160,196,174,102,123, 75, 57, 42,101, 93, 53,140,130,181,150,124, 10,235, 61, -179,217,156, 52, 78, 80, 70, 2,165,148,134, 34,149, 41,103,164,133, 37,144,231, 57,120,233,234,133,219, 14,105, 58,172,240,102, -115,140, 82,152, 88, 44,103,214,247,195,244, 84, 44,107,214, 90,146, 52,162,107, 61,233, 56,197,245,110,125,154,224,122, 71,148, - 69,248,193,186,106,204, 16,157,154,101,116, 77, 75,146, 68,164,105, 70,211,214,232, 72,210,215,100, 52,222,174,143,130,155,182, -147, 67, 20, 17, 53, 10,200, 72,186, 83,109, 12,211,233, 42,163,209, 2,202,139,103, 61,120,135, 11,142,182,181,164, 89, 76,211, -200, 42,179, 44, 75, 41, 2,140, 34, 14,134, 36,138, 9,193, 99,123, 75,156,102, 56,219,210,247, 45,125,239,240, 78,248, 10,113, - 20,145,229,249,186,248,110, 97, 97,129,116, 88,113, 42,163, 40, 75,225, 1,244,189, 24,179,149,146,105,109, 8,130,230,214, 26, - 66, 80, 68, 73,138, 82,129,122,152,134, 68, 90, 83,183, 13,113, 42, 78,159,186,171, 81,206, 97,189,193,117, 34, 84,141, 84,132, -235,100,242,168,104,214,119,230,105, 33,252,118,141,194,133,126,104,202,132, 98, 89,215, 21, 11,163, 49,161,151, 68, 83,215, 75, -243, 25,197, 17,109,211, 14,211, 78, 57,236,187,206, 66,240,244,189, 52,140,107,235,209, 16, 2,113, 18,139,104, 46, 8,131,190, -175, 42,148,150,243,201,246,142,233,108, 10, 65,145,196, 17,202, 67,164,180,161,105, 90, 34, 19,200,199, 11,148,101,194,100, 54, -163,243,129, 16, 20,177,137,137,226, 68,246,231, 26, 17, 69,133,181, 27, 69,160, 33,131, 91, 3, 23, 96,214, 77, 89,190,122, 21, - 97,208,106, 52,138,182, 22,245,100, 18, 27,226, 56,163,235, 68,173,222,119,146,145,142, 82,148,229,136,214, 54,228,105,193,244, -255, 99,236,205, 99, 44,187,238,251,206,207, 57,247,220,245,109, 85,213,221,213, 75,117,245,194,222,200,102,179,185,147, 34, 69, - 81, 20, 45,201,148,100, 57,180,156, 56,182,227,216, 14,108,140,147, 9, 48,177, 17,100, 48,147, 1,102,226, 1,130, 56, 64,156, - 89, 16, 15,236,137, 19,195,206,120,145,101, 43,150, 20, 91,178,100, 90,162,196, 22, 73, 81,220,155,189,144,189,239,107, 45,239, -189,187,223,123,206,252,241,187, 85, 18,109, 79, 48, 23, 40,116,131,236,170,122,239,190,123,239, 57,191,223,239,251,253,124, 87, - 37,180, 69,183, 93, 34, 87, 99,105, 84, 77, 27,138,231,115, 45, 71,189,181, 96,180,136, 19,162, 80,148,233,214,194,234,202, 18, -253,100, 64,154, 79, 73,199, 53,165,201, 25, 13,135,164, 69,137,167,101,145,243,117, 0,218, 17,250,129,248,184, 59, 47,169,239, - 25,194,192, 39, 47, 43, 92, 93, 49, 24, 12,240, 60, 1, 45,212,117, 69,145,103, 84,149,216,192,180, 18,190,187,181,150, 48,140, -229,117,105, 97,171,143,199,171, 36, 65,132,214,134,178, 22,171, 65,158, 73, 32,192,112, 56,164,160, 32,233,201, 5,154,229,242, -223,122, 70,163,149,161, 40, 37,130,111,146,166, 12,250,125,129,254, 55,142,184,215, 19,127,187, 18,170,159, 35,196, 57, 40,235, - 18,173,252,110,148, 80, 96, 65,218,111, 86, 34, 74,179, 52, 67,121, 90,152,203, 77,131,241, 13,174,174,128, 22,231, 20,117, 45, - 59,206,113, 42,169,107, 0,101,110,169, 16, 82,214, 96, 52,162,172, 42,218,186, 37,142, 67,162, 72,130, 86,148, 21,111,104, 94, - 20,216,238, 2,156,142,199, 56, 45,243, 97,141, 38, 67,110,144, 42,207, 8,195, 0, 28, 56, 79, 83,215, 53,107, 10, 92,133,146, - 27,184,117,244,250, 98, 41,178, 22,102,122, 13, 79,236, 14, 37, 27,221, 87,184,165,138,223,251,211, 55,217, 57,236,113,245,250, -132,115,111, 94,224,240,222,121,188,186,229,169, 7, 23,217,244,224, 46,190,240,185,215, 9,178,130, 1,160, 90,168, 45,140,122, - 49,211,172, 96, 82, 42,246, 62,254,105,150,167, 41, 56, 73,104,202, 75, 73, 86,250,234,243, 71, 88, 90, 17, 75,218,254, 59,118, -241,233, 31,248, 48,187, 22,183,173, 51,171,163, 48, 34, 12, 3,140,231,117,110,136,150,227,167, 78,243, 43,255,215,111,242,198, - 59, 18, 62,114,247,254,125,140,134, 3,153, 95,118, 66, 24,163, 52, 23,175, 92,103,121,188,202,190, 93, 59,121,228,254,123,152, - 25, 13,241,131,144,182,109,201,242, 66, 2, 49,128,208,247,120,249,245,147,252,234,111,254, 54,207,126,244, 41, 6,131, 1, 51, -163, 33,107,194,157,185,153, 17,187,119, 46,112,199,194, 86, 33,170,149, 21,111, 29,127,151,119, 78,188,203,185,203, 87,214, 95, - 63,128,197,241,242,235,111,178,101,195, 28, 15,222,119, 15, 77,219,114,115,121,153,219,171,171,156, 58,123,142,231,142,188,204, - 35,247, 30,226,222,131,119, 49,236, 43, 62,251,141,111,242,252,139,175,114,244,189,147,148,197,247, 22,244, 13,179,179,124,234, -233, 39,121,236,193,251,216,187, 99, 59,113, 28,115,245,198, 77, 54,111,222,204,229,235, 55, 89,157, 76, 40,235,154,143, 63,249, - 4, 7,247,238, 34, 73, 18, 30, 60,124, 55,187, 23,183, 19, 4, 1,203,171,171, 56, 39,226,162,207,127,237, 47,185,240,125,254, -245,181,227, 84, 23,249,250,248,195, 15,240,143,126,234,239,226,249,129,136,194, 16, 17, 80, 89, 73, 49,113,246,194, 69,174,222, -188, 69,104, 68,228, 10,223,171,198,191,255, 88,171, 48,181,242, 56,184,111, 47, 59, 22,182,177,119,247, 14,238,216,185, 29,223, -248,156,191,114,149, 55,142,158,224,236,133,139,156,189,116, 89, 44, 94,223,119,104, 45,224,155,251,239,190, 11,207,192,114,154, -118,139,185, 71,211,180, 84,174, 34,136, 3,153,103,231,185,136,151,180,100,179, 43,179,198,243, 78, 40,138,140,184,215,239, 0, - 51, 33, 38, 14,104, 59, 59,173, 54,134,193, 80,236,104,117, 45,227, 22, 79, 75, 24, 74, 85,150, 88,235, 72,146,152,186,174,137, -227,164, 19, 99,181,157, 67, 72,212,224,190,241,105,170,134,210,214, 20,101, 65, 93, 75,229, 91, 20,157,247,186,150,141,132,209, - 30,120, 8,190, 22, 17,218,181,174,194,215, 1, 70, 25,209,186,104, 15,144,234, 60, 10, 3,154,202,145, 53, 25,195,225,144,164, - 43,194,172,109,145, 43, 75,161,149, 38, 43,114,160,203,125,119,174, 19, 52, 43,242, 52,197,121,154, 54,207,240,141, 79, 85,150, -130, 97,117,208,235, 39,180, 85, 75, 81, 21, 52, 85,131,214,178,160,175, 69,188,182, 14,217,224,251,225,186, 35, 39, 52,146, 14, - 87,178,150, 76,166, 49,158, 17, 65, 97, 35, 66,194,193,160,143,198, 81,181, 22,172, 69,155,206,239,222, 54,212,213,247, 54,109, -190,241,105, 90,113, 39,105, 45,137,146,214,130,167,228,252,183, 78,198, 53, 81, 16,211, 88, 75, 18,136,184,219, 41,193,233,122, -190, 79, 81,164,180,142, 46, 64, 6,218,166,162,170, 37,255, 93,107, 1, 64, 57,219, 50, 28, 74,148,185, 31,202,102,198,215,158, - 16, 63,157, 67,185, 78,247,228,132, 19, 95, 55, 21, 26,233,126, 78,210, 9, 65,224, 19,198, 49,117,183,118,216, 86, 84,241,233, -100,130, 49, 30,198,121, 88, 28, 85, 81, 97, 43,105,199,151,121,151, 14, 10,210,219,111,235, 6,191,179, 37, 24,165,200,106,105, -195, 52,173,165,172,197,159,151,101, 25,173,181,248, 54, 96, 50, 73,101, 30,100,197,203,172, 61,143,116, 50,166,169, 43,146, 56, - 38, 12, 3,170,170, 64,105,189,110,253,144, 10,184,145, 5, 91,107, 26,101, 25,141,102,168, 91, 75,150,166, 40,237, 9,248, 32, - 8,112,101,141,100,119, 43,208, 22,112, 18, 71,170, 96, 48, 26,137, 8,164, 44, 72,194,132,162, 44,153,102, 25,206, 66, 63,142, -152,102,185,192, 81,172,195,248, 18, 95, 87,150,146, 59,172,149,143,209,144,166, 83, 6,131, 1,147,233, 68, 90,217,158, 38, 14, - 67,178, 52, 35, 47,178,245,139, 96, 50,153, 72, 92, 97,211,226,172,144,173,242, 50,239, 82,206, 74,226, 36,161,110, 27,138, 76, -110, 36,135,176,179,189,110,174, 45, 27,150,158,132, 57, 20, 89, 71,114,147,120, 68, 5, 12, 70, 3,166,147, 41, 69, 89,118,231, - 73,110,114,237,105,146,222,154,138, 18, 76, 32,130, 61,207,151,202,122,146,166,235,149,128, 82, 16, 69, 9,113, 36,224, 22, 15, - 8, 76, 64, 94,230,132,113,140,111, 4, 28,147, 78, 86, 5, 77,216,134,210,182,107, 91, 65, 12, 26,201,227,117,206,117,163,142, -190,116, 27,111,214, 65, 69, 0, 0, 32, 0, 73, 68, 65, 84,144, 7,132,179,173, 8, 66,156,235, 30, 96,178, 17, 12,163, 16,207, - 57,134,131, 1,109, 20,145,149, 37,101,150,209,139, 99,166, 43, 43, 36,131, 1,253, 32, 38, 43, 43,148,167,153, 78, 5,150,162, -181, 70,107,213,253,169, 73,146, 30,158,239, 99, 34,169,186,218,166,165,214, 21, 15, 44,132,248, 19,135,211, 45,132, 9, 47,125, -251, 45,252,186,230,145, 67,187, 56,242,250,123,188,121,230, 54,131, 64,177,113,247, 38, 22, 63,122,128,179,223, 60, 75,177,154, - 50,208, 45,241,168, 71,177,154, 49,231,124,166,109,195, 96, 38,196,219,124, 23,105,188,129,114, 58, 69,119,182,185,211, 23, 46, -241,165,175,125,157,207,127,249,107,221, 77,239,177,123,251, 2, 27,230,102, 25,246,250, 36, 73, 36,231, 84,201,152, 40,239,132, -146,158, 17,113,223,187,167,207, 0, 48, 26, 12,120,246,227, 79,179,103,113, 1,173, 52,160,241, 13,156, 60,123,150,175,125,235, - 8,195, 65,159,103,158,122,146,103,159,121, 26,133, 38, 75, 83, 86,166, 83,198,147,105, 39, 54,212, 20,165,199,175,255,238, 31, -114,238,194, 37,254,248,203, 95,227,217,103, 62,202,161, 3,251,137, 59, 96,208,183,191,243, 58,202, 41,182,204,207, 51, 55, 59, -131,115,142, 93,139,219, 24, 14,251, 52,109,203,137, 83,103,214,175, 91,173, 53, 7,247,239,161,215,239,113,254,210,101,250,253, - 62,163,193,128,217,193,128,199, 31,126,128,126,146,160, 21,120,158, 98,219,252, 70,158,120,228, 33,246,239,220,193,139,175,191, -197,103,191,248,103, 20, 85, 69, 28,199, 12,146,152,165,149, 85,105, 57,171, 78, 36,166,100,129,169, 91,203,206,237, 11, 44,173, -142,121,249,181,215,121,232,240, 65,126,244,147, 31, 99,219,230,121,218,198,113,227,246, 45, 46, 92,189,198,119,222, 56,202,242, -202, 42,121,241,254,197, 19, 96, 56,232,115,104,255, 94, 46, 93,187,193,103,191,248,101,138,162,224, 23,254,222,143,177,101,211, - 38,150,199, 99, 46, 95,187,129,115,142,125,187,119, 82,148, 21, 87,111,222,226,237,247, 78,203,189,245, 95, 57, 6,189, 30, 7, -247,237,101, 52,236, 51,153, 78,184,124,245, 58,123,118,239, 68, 3,111, 30, 63,201,241, 83,167,121,247,236, 57,110,221, 94,122, - 95, 87, 98,237, 8,130,128, 61,187,119,242,212,163, 15,113,244,204,121, 94, 56,122, 2,165, 36, 74, 89, 68, 89, 21,174,149, 13, -133,214, 29, 50, 53, 48,178, 96,226,208,128, 31, 68,180, 85,141,142, 34,146,141, 27,100, 1, 27, 14, 25,204,111, 66,153,144,182, -133,241,245,203,228,215,174,145, 45,221,166, 46,107,146, 68,170,116,167,132,131, 17,134, 1, 96, 73, 83, 97,253, 39, 73, 76, 85, -202,136,208,143, 68,136,149,248, 17, 56,141,117, 93, 59,216,218,238, 79,161, 11, 26,101,168,108, 69,139,116, 18,162, 40,162, 40, - 36,254,212,248,157, 62, 72, 27,218, 86,236,107,114, 95,130,231, 27,166, 89, 70, 28,117, 97, 84,117,139, 49,166,203,138,144,191, - 43, 37,197,149,164,110,122,221,198,163,135,179,174, 3,100,121,104,103,168,235, 70,196,198,141,193, 24,131, 70, 90,252,194,157, -151,222,121, 94, 22,194,243,232,142,182,109,208,141, 71, 28,203,168, 37,138,164,112,106,149,195,213,242,220,107, 91, 11, 8,229, -212, 55,154, 40,140,177, 88,170,162,193,154, 26, 91, 59,122,253, 62, 90, 41, 64, 49,153,140, 49,190, 17, 16,140,107,152,164, 41, -129,246,100, 65, 54,194,251,143, 67,201, 66,175,242, 2,227, 39, 20,117, 73, 28, 69,210,197,232,216,237,242,120,116,164,233, 84, -120,252, 73,140, 42, 42,177,218, 25, 31,171, 13,147, 46,235, 98, 48, 26, 96, 60, 13, 78,184, 3, 81, 24, 97,125,131,179,138,178, -200, 59,219,183,193, 86,138,214,181,132, 38, 4,107, 5,179,141, 67, 7,170, 99,201, 40, 28,130,211,245, 67,233, 16, 5,161, 66, -105, 41,138, 38,147, 20, 13,152,186,110,104, 93,139,175, 36, 83, 29,231,104,156,235, 68, 96, 61,180,111,136,140, 1,235,232,245, - 18,178,162, 20,117,185,131,160,151,208,180, 22, 84, 23, 99, 88, 8, 52, 38,207, 50,172,107,137,195,136,213,213, 85,218,182, 93, -191,248,181, 22, 84,158, 83,221,236, 84,105,140,167,232,117,116,174, 53, 1,150,139,161,170, 45,161,209, 56,165,104,157, 37, 95, - 93,161,117,150,166, 41, 9,195, 62,195,193, 16, 80, 4, 56, 34, 43,148,187,188, 44, 48, 70,222,164,118, 64, 43, 94,251,233, 84, -192,252,190,145,147,105,173,101,117, 85, 30, 86, 69, 89,224, 28, 52, 85, 73,107, 45, 97,146, 96,180, 94,247,135,175,174, 44,119, - 39, 84, 54, 64, 97, 24, 83, 55, 53, 77,219,202, 69, 97, 12,126, 32,190,204, 52, 77,153,164, 41, 73,191,143,239,137,159,178, 42, - 5,249, 23, 4, 1,218, 72,139, 42, 73,250,120, 90,126,102,210, 19, 59, 87, 83, 73,110,121, 24, 5,120,200,255,107,235,154,178, - 17,123, 31,214, 49,201, 82,156,149,221,100, 28,134,164, 89,134, 83, 80, 22, 25,182, 21,209, 5, 74, 84,146,189, 94, 15,172, 8, -123,156, 82, 34,126,180, 80, 55, 21,101,103,165,147,212, 60,217, 41,123,158, 71,216,239, 81, 87, 53, 14,139,107, 93, 23,111,234, -161,149,194, 79, 34,234,218,162, 13,248,129,191,254,222,155,198,138, 26,190,123,159,233,100, 2, 74, 49, 29,143,229,243,244, 12, -218, 51,168,214,174, 43,228,173, 69, 58, 27,206, 9,198, 81, 75, 75,209,120, 62,142, 22,231, 12, 73,149,194,133, 41, 28, 88,128, - 91, 25,103,206,173, 48,235,105, 78, 94,184, 66,158,149,236,185,107, 27, 27, 99,160, 31,225,206, 77,249,230,137,235, 12,235,146, -217,141, 51,232,208,176,178,154, 50,108, 45,169,245,208,227, 41, 91, 31,123,140,229, 84,184,201,190,231, 49,232, 39,108,152,153, -225,198,210,247, 84,216, 79,126,224, 17,126,230,199,126,132,187,247,239, 35,142, 66,154,166,145,107,195,182,180,182, 83,232, 55, -142, 75,215,175,241,127,252,135,223, 38,235, 64, 37,247, 31, 60,192,129,125,123, 72,122, 9,145, 9,112,202,113,229,230, 45,190, -254,237, 87,112,206,241,139, 63,247,211,124,236, 67,143,145,103, 57, 90,105, 17, 60, 69,161,204,150, 93,200,112,216,103,118, 52, - 34,244,125, 0,110,175,172,114,229,250, 13,222, 58,126,130,171, 55,110,241,202,235, 71,153, 25, 13,121,228,254,195,236,220,190, -176, 46,212,210, 90,115,245,198, 77, 94,127,231,248, 58, 22, 22,164, 5,125,248,192, 62, 22,183,108,230, 43,207,191,192,210,202, -106,247,158, 2,118,108,219,198, 71, 30,127, 24, 99, 12, 85, 93, 49, 77, 51,166,233,148,215,142,157,224,205, 99, 39, 40,186,121, -247, 48, 73,248,212, 71, 63,194,211, 79,124,128,109,243, 27,177,109,195, 52,147,241,212,131,247,220,205,119, 95,127,139,133, 45, -155, 24, 14, 19,142,189,123,134, 99,167,206,242,240,165,107,204,205,109, 32, 79, 51,206,158,191,200, 27, 39,222,229,196,233,211, - 28,127,247,204,251,152,238,107,199,189,119,221,197, 15,127,236, 41,118, 47, 46,176,101,126, 35, 87,174,221, 96,121,117, 76, 24, - 4,156,187,120,133,183, 78,156,224,157,119,207,112,238,210, 69,110, 47,173,190, 47, 80,230,191,118, 84,109,141, 83,142,141,179, -179,236, 88,216,198,230, 13, 27,216,187,115, 7, 75,203, 43,188,119,246, 28,239,158, 57,199,149,235, 55,186, 74,239,253,135,181, -150,217,225,128, 65,210,163, 31, 69,252,216, 83,143,114,199,134, 1,191,245, 23, 71,168,154, 86, 68,197,182,107,183,183, 13,174, -116,221, 2,231, 17,198, 62,161,141,168,109,197,194,125,247,114,224,227,207, 16,205,111, 39, 10,103, 80, 68,120,202, 18, 41, 24, -205, 41, 18, 50, 86,199, 49,151,190, 83,112,107,229, 38,103, 79,254, 71,110, 29, 63,137,115,142,186,250,158, 63, 60,138, 66,113, -145,180,181,116, 10, 42, 97, 25,212,105,221, 45,244, 82, 52, 41,165,169,235,138,126,210, 71, 25, 15, 87, 57,140,103,168,171,154, - 32, 10, 36,123,221,128,197,210,235,197, 88, 0, 7,161,239, 83,213, 45,214, 9,111,162,170, 75,226,112,128,197,145,229, 41,211, -166, 38,137, 98, 28,154,182,118, 52,212,120,120,248,120,210, 14,110, 26,170,178,160,215, 27,224, 44,235,163, 56,177,105,105,104, -101,129,114,185,216,195, 68,169,159,118, 5,137,108,150,215, 70, 24,158,242,136,147,132,178,204,136,162,132,166, 41, 41,170,156, -186, 18, 49,223,154, 88,204,143,186,145, 93,207,167,237, 70, 78,117, 85, 49,169, 39, 12, 7, 67,156,107,214,171,127,133,108, 94, - 21, 30,131,193, 64, 34, 75,235,239, 89,226,106, 39,122, 0,215,182,120,190, 79,221,182, 52, 85, 45, 35,147, 74,158,203,105,211, -118, 58,162,136, 16, 1,104,181,206, 82,169, 10, 63, 52,242,204,143, 99,122,122, 64, 83, 87,148,101, 14, 14,137,154, 77,101, 3, -218, 75, 98, 60, 29,144,167, 25,126, 20,227,154, 90, 10,224,110, 60, 82,235,150, 42, 47,240,140, 66, 41, 15, 79, 41,154,182, 37, - 10, 4, 22,150, 78,133,221, 31,135,177,116,151, 20, 34, 98,117,150,186,113, 56, 45,128, 30,227,121, 6,207, 25,252,192,167, 40, -114,137,198, 84,138,166,181, 76,166, 19,250,163, 1,117, 94,211, 90,135,178, 18,220, 78, 32, 21,225, 52,205,136,162,110, 62,160, -141, 88,169,180, 33, 52,166, 3,171, 72,200,128,109,132,186, 19,199, 17,198,136,237,195, 51, 30,217,100,138,115,162, 30,108,109, - 3, 86,250,248,253,193, 64, 60,160, 85, 69, 18, 14,105,108, 67,228, 27,204,204,136,213,213, 21,234,178, 34, 83, 41, 65, 16,147, - 36, 49,190, 9,232,247,125, 92, 20,209,210,225, 24,107,129, 63, 4,161,192, 12, 70,163, 17,227,241,152, 60,149,214, 73,210, 79, -104,173,149, 29,170, 18,176, 6,214, 50,238,136,114,211, 60,135, 86,102, 24, 22,215, 9,248, 58, 15,106,145, 97, 76, 64, 91,137, -170,179, 68,129,214, 12,250, 67,194, 36,150, 0, 28, 64,105,205, 96, 48, 68, 41, 39, 29, 7, 37, 59,187,166,181, 29,169, 79, 17, -246, 66,124,101, 72,171, 66,226, 65,157, 35, 78,122,172, 78,229,117, 0, 40, 79, 97,109,140,109,101, 81,142,146, 88, 20,166,147, - 9, 97,224, 19, 39, 50,127,149, 24, 74,193, 32, 70,161,207,116, 50,198,243,215,210,135,228, 70, 91,251, 2, 73, 61,243,148,136, - 10,135,131, 62, 85,221, 18, 4, 30, 42, 18, 49, 15, 86, 32, 52, 85, 89,160,117,151,162,167, 69,105,186,150,180,102, 34,169,100, -167, 83,217,232,133,157,120,206,182, 82,221,251,218,195,243, 13, 90,201,239, 84, 74,173,111,144,180,115,242,121, 89,208,190,232, - 18,138, 42,103,110,118,196,161, 45,138,103, 31,140,113,117, 12,190,225,202,217, 11,108, 26,134, 84,149,101,233,242, 42, 87,155, -150, 79, 29,216, 14,167,223,133, 65,143,223,253,202,171,196,105,202,236,220, 16,211, 15,168, 38, 21,202, 4, 92, 45, 27,198,117, -195,124, 60, 68,111,217, 79, 83,148,104, 44, 40,195,151,159, 63,194,191,249,141,255,184,238,195, 94,216,186,153,159,124,246,135, - 56,184,247, 14,146, 56, 36,240,252,110,115,215, 80,212,150,170,106, 72,243,156, 52,203,121,233,213,183, 56,122,226, 20, 32,158, -251, 15, 62,242, 32, 27, 6, 3, 70,189, 30,218,243,184,121,123,137,127,255,123,127,196,183,191,251, 26, 79, 62,242, 16,207, 60, -245, 4, 97,224, 75,162, 20,173,140,157,154,150, 65,191, 71,224, 7, 24, 79,216,255,135, 14,236,227,181,163,199, 40,171,154,227, -167,206, 18,135, 33,187,182,111, 99,126,211, 28, 55,110, 46,177, 99, 97, 27,247,220,185,143,165,213, 49,227,201,148,149,149, 49, -151,174, 92, 35, 12,252,174, 2,147, 77,198,191,252,103,255,132,135,239,189,135, 47,253,197,215,241,141,199,120, 50, 97,227,220, - 44, 15, 30, 62,196,234,100,149,147,167,206,178,111,239,110,234,166,165,174, 91, 38,211,148,119,222,125,143, 55,142,157, 96,237, -152,157, 25,112,123,121,133,107,215,111, 48, 55,232,163,251,125,110, 46, 47,243,231,207,127,139, 35, 47,191,202,141,165, 21, 30, -127,240, 62,126,233,231,127,134, 67,247, 30,194,230, 69, 87,109,213, 52,109,195,214,173, 91, 57,113,238, 2, 47,189,246,230,186, -111,126,237,152, 25,246,217, 48, 59,203,194,214,205, 28,186,115, 63, 91,231, 55, 48,236, 15,217, 48, 59,199,120, 50, 97,156,102, -204,206,142, 88,220,186,149, 56,138, 49,190,230,246,242, 91,252,255, 57, 14,221,185,159, 45,243, 27,153, 29,142,232, 69, 33, 73, -156,176,127,207, 46,242, 34,231, 63,125,254, 11, 60,119,228, 37, 38,147,201,186,184,239,111, 58,180,214, 12, 98,159, 94,185,140, - 93,170,248,228,254,237,220, 49,251,131,252,187, 23,223,230,250,181, 37, 73,206,243, 12, 10,209,218, 52,181,136,177,156,133, 61, - 31,123,154,195,159,254,113,166,174, 71, 61,185,136,139,231,152, 84, 45,225, 57,203,198,131,138, 45,131, 10, 92,131,175, 20, 27, -250, 25,246,137, 4,239,229,157,120,209, 47,163,230,254, 3, 55,143, 60,135,246,100,161,243, 58, 17, 99, 28,199,120, 94, 68,219, - 52,244, 58,202,100,145,229, 93, 7, 80,238, 79,207, 19, 31,243, 36,157,208,235, 73,183, 45,203,196,145,148, 77, 37, 70,185,174, - 27,140, 19, 91,166,114,138,186,174,233,245,123, 64,131, 31,248,184, 86, 98,172,149,130,178,148,209, 2, 56,234,218,210,184, 70, -170,236, 70, 17,248, 1,181,171,169,211,148, 94,175, 71, 89,105,170, 74, 58,140,107,137,154,129, 39,233,154, 74, 43, 98, 99, 8, -186,188,118,107, 91,140,242,208,190, 7,173,100,118, 24, 95, 97, 2,121,150, 52,173,108,164,181,214,152, 32,164,238, 52, 15,214, -182, 84, 85,131,214,146,145,142, 21,103, 64, 89,213,160, 58, 0, 22,146,140,214,180,142, 65, 95, 34,111,171,166,192,152, 62,214, - 74, 39, 50,233,119,127,119,162, 99,105,170,134,162,200,133,146,106,132,151,239,121,138,186,118,148,141,136,211,234,186,198,181, - 45,147, 73, 74,224,107,180,231, 75, 23,179,155,131,135, 97, 72, 54, 77,169,173,197,247, 52, 73, 24,119,157,132,182, 75, 80,243, -132, 30, 8,224, 32, 47, 75,122,131,190, 20, 90, 8,164,199,182, 45, 26, 3, 74,224,100,147,241, 88, 58, 55, 26, 65,253, 58,135, -179,142, 73,190, 42, 69,154,147,248,216,181,103,123, 28,132, 34, 8,172,138, 82,218, 19,157,239,178,169, 26,242, 44, 23, 98, 92, -211, 80,231, 53, 81, 63,198, 88,139, 49, 33, 85, 37, 31,180,179, 22,207,192,120,101,138,242,164, 29,217, 84, 37,218, 51, 20, 85, -201,218,220, 27,101,241,124, 31,107, 29,121, 81, 97,188,150, 48,137, 73,167, 41, 73,210,163,104,106,130, 78, 32, 50, 94, 89, 1, -219, 50, 29, 79, 48, 81, 23,107,168, 44, 65,224,131,147, 40, 66,173, 53, 73,191, 71,219, 86,136,119,221, 82, 20, 21,158,231, 83, -213, 37,198,247, 40,203,134, 36,142,208, 90, 98,249,172,131, 94, 47, 98, 56, 28, 72,114, 78, 43,162, 63,173, 20, 85, 91,161,141, - 2, 37,228,185,217,153, 25, 97,253, 42,133, 31,135,157,157,196,117,221, 9,169,106,173,211, 52,121,177,222, 85,176, 40,180,115, -140,167, 83,225,153,215, 37, 78,201,142,186,215, 19, 54, 50, 74,168, 73,161, 31,128, 22,235, 92, 94, 20,100,227, 76, 22, 90, 28, - 10,205,104, 56, 32,157,174,121,184,101,241,195,130,195,202, 44,197,243,169,203, 2, 63,233, 49, 24, 14, 0,249,112,163, 64,144, -190,113, 23, 36, 80,181,226,119, 77,211,140, 40,137,240, 61,169, 0,203,170,146,121,163,231,161,148, 34, 43,114, 4, 26,100,168, -235,154, 40, 10,200,178, 28,108, 75,152, 72,104, 79, 89,150, 20,157, 0,112,212, 31,173,143, 81,194, 32, 96, 60, 30,163,149,146, -156,251, 70,102, 85, 46, 8, 80,221, 3, 37,238, 13,192, 58,198,147, 49, 78, 9, 70, 84, 28, 9, 6,101, 52,158,243,104,176,100, -147,177, 60,184,124,195,223,127, 72,243,201,125, 6,221, 88,240, 13, 20,150,119,206, 47,209, 58, 71, 72, 75, 89, 53,124,230,131, -187,177, 69, 9,126,194,234,155, 23,152, 92,184,205, 29,129,166,110, 90,218, 76, 54,161,211,178,198,122,154,186,204, 73, 30,253, - 65,252, 36, 33,114, 98,231,211, 90, 90,180,251,118,237,228, 59,111, 28, 5, 44,123, 23,183,179,113,102,136,164, 4,202,124,173, -181, 66,107,114,173,164,239,189,125,236, 36, 95,253,214,183,121,241,245, 55,153,164,226,101, 61,176,123, 39,158,241,169,172,220, -224,198, 57,230,102, 70, 60,243,212,135, 88, 89, 93,229,177,135,238,197, 55, 62,211, 44, 19, 33,140, 82,221,168,198, 97,248,158, - 77,229,252,149,171, 28,220,183,135, 39, 30,126,128, 23, 94,121,141, 43,215,110,112,247,129,125,100, 69,197,214,249,121, 94,123, -251, 24,171,211, 9, 89,209, 97,116,149, 34, 45,114,198,147, 41, 89, 94, 80,149,178,160,239,223,189,139,167, 31,127,132,162,172, -216, 56, 59,195,243, 47,189,194, 35,247, 30,226, 99, 79,126,144,187,246,237, 17,193,107, 83, 33,225, 60, 53,211, 44,227,250,141, -219, 92,189,254, 87,108,102, 14,118, 45, 46,176,184,176, 21,173, 53, 89,150,145,103, 57, 15,220,125, 39,187,183, 47,242,221,163, -239,112,236,196,123,252,238,159,124,137, 31,173, 43,246, 46,110, 39,203, 11,166,121,198,233,115, 23,121,254,165, 87,200,202,146, -217,209,224,125,139,122, 20, 69,220,181,119, 15,143, 63,120, 31, 59, 22,182,163,112,235, 27, 27, 2,159,126,146,176, 58,157,112, -233,202,117, 62,251,197, 47, 83,219,150, 45,155, 54, 48, 55,154, 1,254,191, 43,245, 93,219,183,113,239,161,131,244,227,136,126, -146,176, 99,251, 2,119,236,216,206,230,141, 27, 8, 2,159,229,229, 49,223,124,249,187,172,142, 39,127,237,123, 85,247,144,212, - 90, 51, 55, 35,163,141,133, 65,204,230, 94, 66, 18,133,188, 24,142,248,218,214,237, 44,254,248,189,220,145,102,172, 94, 56,207, -205, 99,199,184,117,241, 60, 97, 16, 81,215, 13,113, 47, 97,243, 19,143,179,117,251, 63, 96,195, 92,197,102,215,112, 98,226,227, -215,134,217, 89,195,197,183, 52,199, 95,248, 18, 15,126,226, 7,153,161, 33,176, 16,234, 16,194, 9,229,193, 33,171, 95,113,212, - 75, 31, 97,238,193,138,165, 87,159,199, 15, 36,197,210,186,182,203, 13, 7, 79,203,216, 71, 57, 71,220,139,193, 42,164, 37, 41, -193, 46, 18, 64, 35, 42,238,181,130, 71,107,181,206, 31, 87, 74,252,254,158, 18, 1, 92,235, 44,227,241,152, 56,144,249,125,145, - 23,132, 97, 72,158,127, 79,121, 95,116,207, 58,191, 43,230,188, 78, 28,232,251,210, 85,171,235, 82,138, 1, 13,249, 84, 42,112, -219, 54,120, 81, 68,223, 55,228, 69,142, 66,145,101, 89,231,251,118,132, 81, 72,213, 97,105,139,186, 36, 54, 49,170, 22,127,127, -221, 72,248,140, 82, 10,237, 60,148, 60,186,208,104,130,192,224, 92, 67,211, 56,194,126,216,193,189, 44,195,193,112,189,184,112, -173, 35,234,138,139,162, 40, 8, 67,159,149, 46,133,112,253,185,234, 28, 78, 57, 60,132,190, 25,132,221,230,193,105,140,111,104, -218,150,209,112, 72,107,155,245,238, 67,227,156,108,190,125, 31,139,235,198, 2, 66, 98,173, 10,137,171, 53, 90,147, 78, 38,120, - 61, 35, 27, 7, 45, 93,102, 31, 31,194, 0,227, 5,212,101, 73,235, 26,166,227, 9, 90,107,134,195, 1, 65, 24, 34, 84,188,150, - 64, 7, 40, 43, 96,154, 52, 21, 48, 80, 63,233,173,191,238,170,170,186,110,128, 80, 65,197, 13,213, 41,245,109,131,113, 14,198, -227,137,192, 79, 20, 96, 12,214, 57,241, 94, 43,141,103,124, 92, 99,169,241, 36,173, 11, 67, 94, 84,132,158,134, 70,201, 73,106, - 60,234,172, 20, 63,163,175, 69,133,231, 28, 73,220, 67, 4, 24,208,182,142,198,214,248,129, 32, 12,135,253,152,213,201, 20,176, -232, 36,160,182, 34,186, 67, 43, 73, 45, 67, 97, 77,194,120,117, 76, 16, 5,196, 97, 68,152, 68,184,212,226,180,135,175, 37,217, -204, 54, 13, 70, 43,172,178,196, 81,130,117,142, 40, 14, 59,225, 91, 67,191,159,224,156,162,170,235,245, 7, 51, 74, 46,142, 34, - 47, 73,122, 61,112, 96, 91, 24,141, 70,100,133,132,209,107,173,177,109,195,234,202,152,182,109, 69,200, 87,148, 84,181,131,166, -197, 79,122, 4,190,208,219,112,144,165, 5, 86,131, 14, 13,129,167,168,178,148,202, 51,148, 77,131,175, 4, 91, 59,157, 8,231, - 89,105, 81,110,250,129,207,120, 50, 33, 49, 1, 85,213, 80,219,134,178,172,187,234, 94,145, 21, 37, 97, 32, 42,203,201,116,138, -250,190, 74,119, 58, 21, 52, 97,146, 36, 76,198, 99,218,182,233, 22, 82,153,245, 27, 95, 54, 66,206,201,142,222, 31, 6, 20, 69, - 6, 78,118,183,105,154, 18,133, 33,113, 34, 97, 21, 34, 54, 12, 40,171,162, 19,154,104, 60, 4, 74, 17, 70, 34,176,105,171, 22, -144,155,123,210, 97,119,149, 18, 22, 1, 78, 90,117,173,149, 25, 87,175, 23, 51, 26,141, 40,138,138, 56, 14,240,140, 79, 93,151, -164,121, 70,228, 75,190,112,213, 84,100, 89,129,171,107, 44, 80,150, 53,207,220,219,231,211, 7,125,220,184,198, 29, 63,139, 58, -188, 7,106,203, 3,123,231,249,214,155,103, 73,107,120,242,193,157,204,110,222,196,215,190,115,138,143,253,192,126,222,121,238, - 36,195,126,136,171, 91,138,213,156, 97, 18,114, 43,171, 40, 90,135,106, 36,228, 97,211, 61, 31,134, 70, 58, 62, 73, 28, 51,205, - 51,142,117,129, 38, 96,249,228, 15, 60,197, 47,255,226, 63, 98,118, 52,194, 57,217,244,173, 45,188, 0, 85, 35, 26,130,157, 59, - 22,120,232,222, 67,156, 58,123,142,219, 75,203, 4, 65,192,220,236, 12,129, 49,212,141, 44,144, 0,215,110,221,226,189, 51,103, -187,185,116, 79,236, 61, 85,141, 67, 82,179,180,238, 56,247,214,161, 74,137,148,245, 61,159, 61, 59, 22,249,196, 71, 62,204,252, -166, 13,156, 57,119,145,162,168,216,181,125, 27, 81, 24,240,241, 39, 63, 72,150, 21,220,184,121,147,217, 14, 12,148, 68, 17, 51, -195, 62, 73, 28, 73,118,182,115, 60,253,248, 35, 40, 99,152, 44,175,226, 80,220,119,247,157,220,123,247, 93,236, 90,220, 38,225, - 34, 14,156,115,148,117,205,120, 60,229,173,227,239,242,173, 87, 94,101, 60,249,158,247,251,129, 67, 7,249,216,147, 31,100,126, -110, 6,215,182,140, 83, 81,251, 31,121,229, 85, 38, 89, 78,154,101,172,140, 39,108,217, 52, 71, 89,213,120, 74, 81,213,162, 13, - 88,187, 46, 38,211,148,231,190,253,242, 95,131,204, 20, 69,193,139,175,189, 73, 81, 86,252,131, 31, 95,100,207,142, 69,122,189, - 4, 47, 12,137, 64, 22, 35,223,112,123,121, 21, 63,240,121,243,173,147,188,125,236, 36,215,111,255,245,246,253,247, 31,195,126, -159,237,243,155,120,252,225, 7,216, 48, 51,226,226,149,235, 24, 79, 80,199,121, 86,112,246,194, 69, 86,198,227,191,241,123,165, -123, 5,179,163, 17,127,247,147, 31,227,224,174,237,124,224,192, 46, 86, 55,108,228,249, 54,230,252,220, 54,102,171, 2, 87, 23, -120,241, 28,219, 54,111, 97,225,161,135, 88,122,247, 61,206,124,227,235,108,223,179,155,197, 39, 30,231,149,151,222,160,125, 83, -227,187,136,227, 71,175,178,113,199, 22,246,253,104,193,227,132,252,235,155,142,119,142, 30,103,119,244, 41,102, 62, 50,224,138, -154,208,183,138,241,119,134, 84,183,161,169, 20, 99, 59, 7, 87,119, 51,179,255, 38,249,155,111, 98,173,160, 69, 69,128, 85, 83, - 57,121,142,153,192,144,231,165, 44, 56,174, 69,107,221, 81,226,100,179,186, 58, 25, 75, 46,188,214,235,163,184, 36,233, 3,142, - 44,205, 8, 34,131,242, 20, 81, 18,130, 21,167, 82,168, 67,114,151,119,138,123,181,206, 51,239, 15,250, 88,219, 82, 84, 13,117, - 81,227,172, 40,182,227,158,184,144,252, 80, 18, 46,113,146,254,104,157,136,170, 39,227, 49,113, 44,128,162,186, 43,244,202,170, -160,117, 14,219,180,248, 81, 72,209,217,246,178, 52,195,181, 45,241,104, 64, 93,213, 2,225, 25,196,208,202,184,208,243,124, 81, -186, 43, 69,211, 56, 76, 96,161,155,197, 75,182,187,162,169,106,122,113, 66, 90,230, 20,101,177,222,214,247,125, 95, 92, 10,218, - 9, 12, 8,213, 85,203, 57,248,172,143, 57,140,241, 72,211, 41,244, 18, 89, 19,180, 20, 63, 77, 83,137, 72,206, 51,132, 97,199, - 26,241, 20, 85,209,144,150, 57,180, 50,227,174,242,156,214, 10, 3, 37,207, 36, 38, 86,105, 25, 51,103,121, 78, 24,134, 88,219, - 74,231,210,105,172, 45,241,181, 34, 79, 51,217, 20, 33, 74,119,107, 45,211, 78,247,211, 79,250,228,101, 78,145,101,120,221,104, -206, 57, 71,221, 93, 3,189, 94,143,126, 95,136,118,147,233, 4,173, 20,198,248, 1, 2,121,209,221,204,213,145,244, 7, 2, 68, - 1,170, 74,252,144,158, 49,196,195, 17,121,158, 75,194, 79, 43, 57,183,182,181,208,214, 16,134, 4,190, 37,208, 62, 89, 81, 18, - 5,129, 88,101,170,138, 40,138,165, 98,119, 9, 85,219,160,149,164,209, 12,122, 73,183,123, 84,180,117,221,137,234, 34, 57,161, - 56,178, 92,170,216,170,168,104, 26,105,219, 40,235, 72,211, 28,175,219,181, 40,100, 99,129, 82,244,135,125, 17,227, 52, 13,253, -129, 60,224,112,226,183, 86,158,248,254,162, 56, 98,154,102,212,121, 67, 20,137, 16, 77,121, 66, 83, 3, 69, 47,234,137,240,173, -200,197, 62, 22,199, 76,179,156,172, 40,240,156, 8, 66,124, 95,230, 72,165,149,124,227, 56,138,209,166, 22,104, 75,235, 24,151, -153,204,146, 0,215, 54, 84, 40, 84,145,227,180,194,214,150,209, 64,110,174, 60, 47,153, 25,205,118,113,167, 33,109,230,196,238, -230, 27,130, 32, 32,137, 34, 89,176, 29,132,145, 88, 11, 1,180,145, 77, 19, 90, 9,118, 82,131, 23,196,180, 69, 70, 18,199, 24, -207,195, 11,124,234,170, 97,208,139, 41,203,140, 50,203,197,223,216,141, 24,112, 98, 7,108,170,138, 40, 12,240,253,112,189,243, -224,124, 17,233, 40, 79, 84,174,109,219,205,218, 92,189,206, 35, 22, 32,145,136,198,214,132, 57,189, 36, 1,165,164,253,213, 56, -194, 88,145,244, 34,154,182, 37,233,199,164,147,150,166,106,152,148, 18, 1,107,173,240,223,215, 14,223, 40,126,226,240, 0, 74, - 80,182, 70, 61,118, 16, 87,183, 80,107, 54,110,236, 81,213,240, 99, 79, 29,192,205, 12,249,253, 47,191,129,110, 45,202,143, 65, - 41,246,223,177,145, 11, 39,174,226,183,142,242,230,152,155,211, 22, 19, 26, 92,149,177,233,254, 79,162,194, 30,174,173, 81,218, -227,198,237, 37,190,242,252, 11,252,193, 23,255,140,170,170,152, 25, 13,249,192,125,135,168,154,134,105, 33,237, 99,180, 94,215, - 46, 56,231,104,218,134,178,170,249,230, 75,223,229, 87,255,239,223, 90,127,205, 79, 62,250, 16,255,244,231,127,134,189,187,118, -176, 50,153, 82,228, 5,121, 85,178,109,126,158, 31,254,216, 83,252,200,199,127,128,198, 89, 86,199, 19,222, 62,249, 30, 23, 46, - 95,226,214,242,132,133,173,243,220,119,240, 78,102,134, 67,156, 21,245,176,117,112,238,202, 21,206, 95,190, 66,222, 85, 76, 70, -195,201, 51,231,185,122,227, 6,151,175, 94, 99,255,238,157,242,112,112,150,172, 44, 56,122,226, 4, 95,248,218, 55, 56,115,254, - 2,187,183, 47,112,255,225, 67,236,220,190,192,205,155,183,176,214,177, 99,219, 22, 22,183,109,198,120,134,183, 79,190,135,209, -134,133,173,155, 9,252, 0,237,160,223, 75,216,179,115,145, 95,251,157,179,220, 90, 94, 33,142, 99,118, 46, 72, 46,251,133,203, - 87,216,187,184,157, 52, 47, 49, 94,141,231,121, 76,242,130,203,215,174, 83, 86, 37,195, 94,159,127,253,207,255, 41, 73, 44,153, - 13, 85, 83,177, 58,158, 48,158, 76,153,102, 25,253, 78, 87,242,253,199,134,217, 89, 6,253, 30,113, 28,115,234,220, 5,126,253, -119,254,128,166,174,248,204, 39, 62, 78, 8, 50, 39,116,142,153,217, 89,134,189, 27, 28,220,191,151, 52,207, 57,121,234, 52,127, -245, 88,171, 92, 0, 70, 67,225, 83, 92,190,113,139, 23, 95,125,157,237, 91,182, 48,191,105,142,247,206,158, 5,103, 89, 92,216, - 70, 16, 4,108,217, 52,207,210,202,251, 23,246,109, 91,230, 25, 38, 9,147, 60,231,163, 31,120,132,159,253, 59,207,178,178, 97, -196,231,147, 77, 76,129,102,105, 25,117,253,138, 36, 49,250, 50,174, 51,190,194,211, 62,219,239, 63,196,252,253,247,224,199, 9, -239,189,124,132,247,222, 58,205,198,187,192, 87,150, 73,125,154,125, 15,111,229,122, 22,242,175,254, 80,241,157,175, 30, 97,235, -190,207, 16, 71,154, 83,151, 83,110, 63, 95, 19, 14, 7,204, 60, 14, 55,223, 80, 84, 83,135,169, 27, 10,183,141,102,203, 65, 54, -173,172,144,221,188,129, 87,251, 52,181,104, 94,148,210,212,186,146,182,174,214, 52,182, 33,233,197, 93,197,169, 1,233,250, 72, - 90, 91, 74,191,223,199, 83,154, 52,203, 80,128,211, 10, 95, 25,154,170, 33, 10, 34,113,214,180, 13, 89, 38,214,220,126,191, 71, -235,164,248, 87, 90,198,152,181,171, 41,139,138,178, 46,193, 57,134,195,161,156, 56,235, 8,131,128,186,109,168,114, 69, 81, 21, -221,134, 14,140, 9,208, 74, 83, 20, 85,247,239, 29, 69, 85, 18,135,226, 81,119,214, 10,174, 58, 48,100, 89, 70,210,143,208,202, -144, 78, 83,217,156, 42,203,120, 37,197, 41,203,176, 47, 17,223,227,137,164, 40,246,226, 24,180,162,169, 27,170, 90,244, 31,101, -167, 16, 47,170, 90,248, 31, 78,212,234,211,233, 84, 52, 59, 74, 49,236, 64, 77,147, 84,208,213,206,202, 38, 36, 48, 62,173, 3, -223, 91, 67,179,214, 50,190,173, 21,129,145, 52,201,254, 64,146, 47,167,211,148, 40, 73, 8,180, 36,171, 69,126, 0,130,251,199, - 79,250, 52,174,193,211, 30,121, 41, 73,121, 10,136,251,125,250,253,190,116,135,181,237, 54, 5, 30,190,241, 0, 17, 12, 27, 63, -164, 44,203,245, 78, 71,191,215,167,105, 43, 38,233,132, 48, 12,241,163, 8,103, 91,140, 31,208, 58, 65,181, 59, 16, 93, 86,167, - 77, 26, 13, 7,212,117,131,119,207,125,247,253,139, 56,233, 17,197, 49,113, 28,147,196, 9,126, 16,224,135, 1, 73, 24,225,148, - 39, 73, 55, 97,212,205, 7, 60, 66, 35,249,179,117,235,232, 69, 17, 69, 91, 11,211,187,133,170, 99, 6, 71,113,136, 67,230, 60, -214, 89,166, 89, 23, 39, 26, 69, 40, 28, 85, 93, 17,134, 62,126, 16,128, 18,241,134,246, 52,101, 41,184, 63,249,176, 20,163,209, -136,182,105,164, 29,106,165, 98,246, 59,113, 86, 47, 78,240,125,153, 65, 88, 43, 34, 44,173, 58, 6,113, 24,224,172,164,135, 85, -181,100, 31,215, 77, 67, 93,203,207, 8,195,152,178,206,169,235, 6,156,163,169, 91, 1,207,216, 6,219,249,129, 21, 8,187,188, -149, 92, 94, 63,240,233,245, 36, 91, 55,142, 67,162, 48,196, 58,105,145, 27, 35,243,246,182,150, 72,212,225,112, 64, 20,134,235, -118, 10,227, 9, 73,201, 41,201, 32,110,172,235, 62,204,128, 40,142,100, 23,104,164,237, 35, 81,123, 98,249, 90, 67,178,134,129, -112,232,109,107, 37,171, 89,203,236, 42,233,245, 48,218, 35, 79, 83,252,206,158, 87,183, 13, 14, 71, 47, 78,104,173, 84, 70,141, - 21,129,138, 85,130,163, 12,252,128, 52,205,104,155,150,166,149, 81, 73, 85,118,177,176,165, 32, 45,157,131,214,181,196, 65,140, - 67,117,154, 8,169, 72,139,172, 64,160, 63, 82,129,150, 85, 73,183,207, 88, 7, 54,104, 60, 17,116, 56,121,255,190,239, 19, 24, -131,241,229,134,232, 37,201, 58,218,119, 52, 26,177,113,144,240,153,125, 62,241, 64,227,122, 17,147, 99, 87,249,214, 75, 23,216, - 65,134,142,123, 28,220, 49,224, 70, 1,255,249,249, 99, 68,105, 73,108, 32, 93, 78,185,120, 99, 74,210, 11,153, 95,156, 37,207, - 26, 86,202,138,113,217, 50, 51, 59, 96,121,218,114,248, 51,255, 77, 7,197,104,240, 60, 77, 18, 71,244,226,152,155,183,151, 56, -127,229, 42,143, 62,120, 47, 31,249,192,163,236, 94,220,206,205,219, 75,244,146, 88,206, 99,211,118,239, 81, 54,182,189, 36,102, -231,194, 54,180,242, 56,113,250, 52, 77,219,114,230,194, 69, 62,247,167, 95, 97,146,101,108,223,186,133,198, 89,112,142,170,150, -196,188,188,172, 72,115,105,157,158,185,120,153,239,188,249, 54,175,188,121,148,227,167,206, 50,158, 78, 49,158, 88,213,218, 86, - 16,157, 90, 41, 86,199,171,156, 62,127,145,235,183,151,200,243,130,172, 44, 56,112,199, 46, 14,223,181,159,209,160,207,252,198, - 13,180,214,114,227,214,109, 78,158,185,192,123,167,207,146,230, 57,155, 55,110,228,209, 7,238,227,193,123,238,198, 83, 26,237, -121,132, 97, 64, 89, 86,188,113,236, 4, 47,190,250, 6,199,222, 59,197,176,223, 99,227,134, 89,202,170,226,252,229,171, 92,185, -118,157,149,241,132,155,183,151,176,206,113,239,193, 3, 60,251,177,167,121,248,222,123, 24,141, 6,132, 65, 64, 24,134,220, 94, - 90,166,105, 45, 87,174,223, 96,231,194, 54,126,242,111,125,138,205,155, 55,145,103, 5,173,109,169, 91,177,221,220, 92, 90,226, -203,223,120,129, 63,123,238,235,220,252,190, 42,221, 24,195,198,217, 89, 62,249,244,147,252,202,255,240, 75,252,247,255,237,207, -243,232,125,135,153, 25, 14,232,247,122,114,109,213, 13,101, 89, 49, 77, 83,130,192,103, 97,203,102,222, 59,123,158, 75, 87,175, -177,210,233, 54,254,166,227,174, 61,123, 56,116, 96, 31,143,221,127, 15, 31,126,236, 17,230,102,103,208,218, 99, 97,235,102,254, -225,255,244,191,114,253,250, 77,122, 73,204,181,155,183, 56,119,233,242,251,190,247,127,249,165,127,204,194,150,121, 62,241,196, -163, 60,243,204, 71,121,185,213, 44, 31,254, 52, 89, 53,224,250,233,247,152, 92,189, 64, 48, 59, 79,163, 60, 26,103,152, 89,216, - 65,156, 68,180,117, 73,101,122,244,251,187, 9,195, 33,111,191,241, 29,178, 44,227,142,167,183, 16,239,158, 97,241,161,157,252, -227,109,240,249, 63, 85,124,227, 79,126,135,141,243,119,242,211,191,178,147,207, 44, 42,150, 98,159,227, 47, 77,185, 92,252, 23, -218,203,135,176, 62,168, 18, 84,110, 8,146,141, 48, 9,137,239,236,227,166,215,241, 42, 9, 91,241,187, 74,205, 40,143, 32, 12, - 8, 67,161,183, 9,139,221, 91, 23,209,149,101, 69, 93,139,248, 75,107,233,172,105, 45,217, 13,190,239, 19,132,210,166,173,107, -169,100,139,188, 68, 41, 17,231,213,141,197, 89,249, 57,173,149,118,184,115,224,144,197,122,109,131, 27,135, 50, 66,173,234,154, -182,105, 9,163, 8,167, 4, 24,213,212,178,169, 8, 67, 73, 82, 51,129, 47,213,112, 43, 63,215,247,125, 38,211, 41,109,219,116, - 54, 62,159, 56, 74,168,155, 22,165,133,108,231,105,143,178,200,177,173,216,190,202,188, 36, 73,228,217,155, 23, 37,206, 54, 56, -229, 17, 69, 1, 56, 77, 83, 87, 24, 95, 52, 14, 97, 24,144,167, 41,182,109,137, 19,177,214, 74, 44,110, 42, 58, 31, 35, 54,109, -223, 55,228, 89, 78, 85,213, 56,219,118,105,110,174,243,128,171, 14, 92,227, 81, 54,141, 36,178, 85,178,241, 41,171, 18,141,194, -243, 3,242, 60,149,243, 93,214, 40, 45,150,234,186,110,136,195,136,181,140, 16,209, 24, 57,162,208, 16,134,129, 20,195, 78,126, - 79, 85, 10,126,220, 24,175, 43,172,100, 60, 37,233,124,226,163, 15, 2,129,159, 53, 29, 7, 65,206,121, 67, 93,201,243, 90,107, - 77, 24, 10,217, 83,123, 26,163, 61, 15,107,161,169,107,188,192, 16, 24,153,111, 7, 90,178,117, 93,219, 96,149,162, 72, 37, 17, -109, 56,232,147,215, 37, 73, 24, 49, 28,244, 88, 89, 89, 37,240, 67,122,189,184,171,234, 26,166,211, 41,211,105,129,163, 5, 43, -184,187, 32,148,139, 50,203, 51,172,131,126,175, 39,232, 82,207,208,212, 37,158, 31,162,252, 0,223, 15, 80,174, 37,203,133, 58, -231, 25,205, 96,102, 22,156, 37,108, 91,198,227, 85,154,182,145,228, 49, 2, 52,154,162,170,112,109, 75,181, 42,150, 25,173,101, -182,186, 70, 39, 11, 99, 1,159, 96, 1,173,105,173,224, 78,251,253, 33,158, 39, 86,177,170,174,232,247, 36, 65, 8, 31,166,153, -204,102, 6,189, 1,211,116,140, 82, 66,134, 19,214,176,128, 31,164,253, 45,162,178,214,182, 12,131, 96,253, 65, 81, 87, 21, 77, - 43, 21, 71,221,138, 71, 61,142, 35, 18, 99,176,136, 79,113, 45,179, 56, 43, 74,140, 39, 55,223,200,151,246, 11, 8, 37,108, 13, -114, 99,155,174,229, 21, 11, 77,168,168, 42,226, 94, 15,219, 54, 76, 38,171,224, 20,198, 51,148,174, 20, 50,159,231, 97,181,134, - 86,102, 61, 85, 93, 75,100,172, 82,221, 57,182,235,176,134,181,138,167,110,106,106,231, 72,162, 24,171, 44,211, 73, 42,226,187, -200,209, 54, 53, 65, 32,249,237, 77,211, 16, 37, 33, 69, 86,146, 36, 66,172,234, 15,250,164,185, 92,100, 40,181, 62,139,175,170, -138,208, 15, 73, 43, 73,175,147,202, 92, 51, 26,205,210,182, 45,177,103, 48, 61, 31,165, 53, 78,149,120, 90,227,148,199, 91, 95, - 59,206,201,115,203, 80,183,152,133, 24,183,115, 6,117, 41,224,171, 47,188,193, 92, 90,208,219, 62,139,239, 20, 87,110,143, 41, -166, 21,231,207,220,100,219,194, 28,243,187, 54, 81,221,154,224, 95, 89,166, 31,107, 54,237,187,143,193,112, 68, 93, 8,214,215, - 2,199, 79,157,230,151,127,245,215,120,247,236, 57,230,102,236,159,167,254, 0, 0, 32, 0, 73, 68, 65, 84,102,152, 25, 14,169, -218,134,255,253,183,126,135,127,255,187,159,227,115,191,254,191,177,123,251, 2,101,150, 97, 45,221, 56,195,112,225,226, 18,127, -244,231, 95,229,237,119, 78,242,193,135,238,103,215,142,237, 60,114,248, 16,101, 89, 51,201,114,242, 60,199,212,102,125, 68,210, -182,146,131,108,140, 97,154,103,124,251,187,175,241,226,171,111, 98, 60,205, 19, 15, 61,192,195,247,220,205,129, 59,118, 74, 55, -170,174,200,203,146,107,183,110,145, 21, 21,227,201,148, 51,231, 46, 0,112,232,192, 94,154, 61,119, 48, 55, 59,195,166,141, 27, -200,179,156,105, 94,240,238,217, 11, 92,188,116,133,214, 57,182,204,207,115,240,192, 62,118, 47, 46, 0,242, 96, 76,167, 37, 55, -110,221, 34, 43, 10,182,204,111,228,228,153,115, 92,187,113,147,183, 78,190,203,236,112,196, 96,208,227,210,229, 43,252,171, 95, -251, 77,138, 74,238, 29, 99, 12,199, 78,190,199,220,104,196,204,160,207,194,150,205,200,100, 78,174,145,115,151,175,176, 97,102, -196,177,119, 79,179,121,227, 70,146, 56, 98, 56,232, 96, 83, 85,205,106,154,130,131,173,155,230,200,254,138, 85,204, 90,203,202, -202, 10,223,120,241, 59,108,158,155,229, 39,158,253, 33,246,238,218, 9, 56, 17,236, 53, 66, 22, 67,193,242,202, 42,175,188,253, - 14,151,175, 94,231,141,163,199,222,151,207,254,253, 71, 18, 69,108, 95,216,194,222, 59,118,178,109,243, 60, 27,231,230, 40,203, -146,171,215,111, 96,140,225,224,222,195,236,219,185,200, 31,124,233,207,184,177,116,155,183, 79,188,135, 68, 72, 57,118,109,223, -206,120, 58,229,103,254,254, 79,176,124,249, 50,102,227, 54,142,247, 54,177, 57, 28,226,143, 20,223,250,227, 85,174,167, 23,208, -233, 53,198,231, 7,164,201,132, 59,102,158, 97,223,174, 13, 44, 87,151, 41, 90,131,119,122, 59, 7, 63,158,113,161,136,217,251, -192, 67,220,245,224,189,204,108,184,139,129,239,216,184,105,194,117, 23, 17,132, 62,115, 27,246,177,255,208, 94, 94,187,169,248, -232,188,227,242, 88,115,251,124,192,210,202,117,220,150, 35, 28,250,133, 39,112,165, 99,238,181,128,233, 45, 32,216,207, 52,221, -198,230, 31,127, 24, 83, 92,226,250,171, 47, 49,185,113,153,233,141, 91,232, 90, 2,103,234,166,193,243,188,174,197,174,161, 91, - 0, 36,134, 89, 84,209,161, 9,214,149,230, 65,232,227,106,104,202, 70,148,228, 93, 70, 71,210, 75,100,177,182,226,175, 22, 20, -183, 66, 59,241,222,131, 0,171, 68, 52, 39, 72,215, 34, 47,136,147, 24, 17, 0,211,133,166,244,186, 34, 68,242, 34,138,170, 34, - 78, 36,212, 9, 11, 65, 20, 98, 43,217, 76, 40,232,212,228, 9, 32,214,105, 95, 27,226, 80,248, 13,203,203,203,180,173, 93,255, -157,101, 91, 49,205, 38,244,226, 68, 70,131, 93, 49,144, 77,179,245, 54,116, 91,213, 32, 13, 82,188, 48, 18, 23, 84, 89, 33,169, -105,194, 20, 88, 94, 94,198,247,253,117,242,168, 0,114, 20, 89, 62, 37,203,243,174,123, 41,160,155,178, 24,227,105, 1,102, 5, - 65,128, 69, 58,254,190,103, 72,211,148,192, 15,229,253,141, 39, 36, 73, 31,219, 52,132,129, 79,221, 10,190,183,223,239,119,227, -103, 71,221,214,104,227, 81,150, 93, 58,157,246,112, 88,226, 94,132,173, 69, 24,232, 92,215,141,214, 62,174,182,223,123,134,150, - 37, 74, 1, 86,224,103,198,217,110, 28, 35,208,182,198, 90,166,147, 49, 14,186,238,158, 86,242, 13,120,228,121, 65, 27, 56,156, -109,215, 37,243, 73,210,195,120,134,202,175,177,109, 67,158, 23, 24,227,201, 92, 38, 14,153, 25,141, 40, 43, 1,158,120, 90, 99, - 60,161,173, 85,101, 73,158,151, 40,164,151,227,105,205,196, 54,210,186,141,123,212,149,204, 90,171,202,162,181,194, 96,169, 17, -207,157,103, 98,250, 38,194,104, 69,154, 23, 68, 81,136,167, 52,206, 73,154,149,107, 45, 14,249, 80,211,116, 74, 93, 87,244,227, - 4,165, 61,166,211, 20, 63, 8,152, 78,166,244,146,164,147,248, 75, 53,159,213, 57, 81, 24, 81,148, 37,198,215, 96, 91,106, 43, -202,197, 32, 8,152,172,174,226,140, 71,224, 73, 16, 64, 81, 23,216,182,161,151,244,209,158,204,166,180,167,164,115, 16, 24, 80, -146,245,187,166,206, 76,162, 72, 20,228, 70,210,229,130, 80, 22,104, 95, 27,194,153, 25,154,166,162, 44, 11,218, 86,102,142,113, -175, 3,203, 20, 5, 45, 1,182,206,240,180,166,110, 44, 73, 18, 49, 24,244,112, 64,211, 52,152,208,224, 35,104, 65,103,101,230, -189,186,178,130,109,133, 41,221,105,241, 64,201,200,100, 52,136,200,211, 12,227,121, 4, 81, 76, 24, 39,212,117,141, 86, 96, 29, - 2, 45,112,142, 36,142,201,242, 92, 84,254,173,195,118,200,198, 73, 58, 1, 52, 78, 43, 92, 55,111,178, 86,224, 58, 0,202, 58, -250,125,217, 96,104, 45,193, 59,161,239,131, 47,246,184, 53, 11,161, 50, 34,192,140,130,132,186,173,208,158, 33,240, 58, 66, 97, -145, 73,184, 67, 45, 16,138,251,246, 39, 36, 27,124,138, 83,215, 56,118,226, 58,123, 54,207, 49, 41,115,152,233,163, 90,205, 31, - 30, 57,201, 48,203,137, 54,246,241, 35,159,219, 55, 38,172, 76, 27,102,251, 49, 54,212, 84, 78,115,250,204, 13,206, 46,165, 88, -173, 88, 94, 77,217,241,204,135, 4,163,232,186, 86, 85,219,178,101,227, 70,254,217, 63,252, 57,137, 87,125,238,121, 62,241,225, - 39,248,236, 23,191,194, 87,159,255, 22, 0,255,242,255,252, 13,126,238, 39,255, 14, 59,182,110,145,138,161, 42,153, 9,135,108, -216, 48,203,249,139, 87, 57,115,233, 10,198, 24,246,239,222,197,198,217, 57,130,192,144,151,117,215,129, 18, 50,148, 69,146,168, - 60,227, 49, 55, 26,242,221,183,143,242,230,177,147, 52, 77,195,142,133,237,108,223,182,133,214,201,188,116,109,142,230,172, 99, -195,204, 44,158, 82,160, 44,253, 94,194,165,107, 55,120,230,169, 39,249,216, 19,143, 97,173,165,108,106,202,186, 33, 10, 2,230, - 55,204, 81, 54, 53,179,195, 1, 15, 29, 62,196,129,189,187,217,181,125, 27, 85,213,144, 23, 34, 80,171,155,154, 99,175,156,230, -245,163, 39,248,224,195,247,243,147,127,235, 83,220, 94, 94,166,177, 13,131,126,143, 93,139,219,185,239,208, 1, 94,122,237, 45, - 54,111,216,192,189, 7, 15,240,161, 15, 60,204,227, 15,220, 71, 20, 6,152,142,192,232, 27,143, 13,115,179,108,153,223,196, 83, -143, 61,194,155,199, 78,178, 58,158,176, 60,158,224,251, 62,198, 24,209, 10,164,240,159, 62,255, 37,158, 59,242,226,186, 18, 31, -196, 93,114,255,221,119,115,232,206,189,236,219,181, 19, 20, 92,186,118,189,219, 52,200,136,199,120,154,178,110,184,126,243, 22, - 75,203, 43, 44, 45,173,240,155,127,240, 71,127, 45,167,254,251,143,162,170,100,227,233, 16, 39, 72, 20,178, 58, 73, 73,243,146, - 23, 94,125,137, 81,127,192,167, 63,250, 17, 94,120,229, 53,254,242,200,203,239,251,222,197,133,173, 44,110,157, 7,107,137, 3, -143, 42,190,131,219,103, 87,152,185, 39,166, 88,133,235,231,222,230,102,117,137,213,201, 53,226,180,160, 63,220,195, 29, 63,181, - 5, 46, 67,154, 40,170, 19,139,252,236,179, 13,155, 93,204, 11, 55, 45, 85, 54, 33,153,124, 16,127,139, 99,113, 62,229, 49, 55, -224, 13, 82,236,109,159, 7, 62,112, 47,143, 60,171,248,141,255,241,109,254,249, 63,185,135, 75,159,203, 89,186,254, 50,151, 79, -191,205,227, 31,254, 69, 6,198, 81, 84,142,229, 59,110, 49, 77, 94, 39,186,242, 36, 91, 54,247,112, 87, 6,108,123,100, 27,135, - 30,126,132,218,203, 88,201, 13, 55,191, 62,230,242,197, 63,230,218, 11, 95,135, 78,159, 83, 85,149,136, 52,181,250,222, 88,194, - 9, 5,210,247, 12, 74,105, 60,207,199,170, 6, 29,200,104,169,174, 91, 60, 79,244, 83, 40,141,179,205,186,199, 92, 41,105,203, -107,221,141,228,112, 20,117, 5,173,165,181, 45,190,246,201,203, 18,221,117,165,124,223,103,220,233, 21,180,146,116,182,178, 20, -176, 83,232, 7, 56, 7,190, 31,128,103,168,203,138, 97,127, 8, 90, 73,101,236, 68,103,132,150,215,107,180, 65,107, 1,225,136, -194,188,179,190,213, 13,211,102,130,111, 2,130,126,178,238,194, 41,170, 66,232,112, 72,107,222,181, 45,216, 26, 77,208, 97, 99, - 13,227,110,156,108,173,165,182,130,109,181,206, 82,149, 53,189,164, 71, 28,198,228,121,134,179,150, 48,138,164,155, 8, 88,219, - 74, 87, 36, 8, 41,112,120, 90, 8,161, 94,173, 41,235, 18, 47,208,244,147, 30,121, 93,200,134,165, 75,176,212,161,150, 44, 17, -211, 85,209,168,174,107,171,104,202,146,198, 85,132,113,136,175, 13,141,146, 49,182, 84,240,150,178, 40, 4, 50,230, 37, 34,160, - 51, 94,247, 12,115,216,166, 6,231, 48,158,196, 87,123,218,116, 5,171,216,202, 81, 10,111,239,254,125,255, 34, 12,101,174, 46, -105,101, 25,117, 35,190, 63,153, 55, 43, 64,110,106,173, 61, 2,223,199,243, 60,129,111, 84, 53,198,120,120,158,161,169,107,180, - 82, 40,237,161, 65,102,175, 64,212, 19,196,105, 11, 52, 77,141,181, 22,227,251,164,185,168,250,228,203,147,106, 91,105, 76,224, - 83, 21,165, 16,163, 20, 18,118,225, 32, 43,114,178, 52,147,202, 95, 41,134,163, 1, 56,228,131,104, 45,226,183,119, 29,225, 77, - 22,184,166,181,210, 18,214, 2,238,215, 40,252, 48, 88,111,249, 55,141, 21, 63,162,146,174,158,181,150,108, 42,177,135,217,100, - 66, 83,215,194,170, 47, 75,170,170, 38, 10, 67,176,194, 94,110,173, 69, 89, 81, 71,135, 97, 72, 16, 5,100,211,156,166,169,169, -234, 26, 63, 8,145, 76,117,211,109,144, 20,158, 9, 48,198, 35, 8, 34,180, 22,218, 94, 58, 77, 49,126,136,117,173,160, 18,173, -235,198, 17,136,176, 14,153,227, 87,101,133, 82,144,117, 96,156,182,109, 40,243, 2, 79, 9,220, 38, 10, 67,208, 2,245,175,171, -138, 40,138, 8,194, 16,207, 8, 27,216,235, 58, 47,214, 58, 81, 78,123,158, 8,107,148, 19,226,149,239, 19, 4,226,183,151, 44, -243,150, 56, 78,208, 74, 34, 65, 91,219,210, 54,210,110, 15,140, 33, 8, 66,202,166,150, 7,183, 82, 52, 77,139,223, 93,252, 97, - 20, 18, 4, 17, 65, 20, 33, 54, 60, 89,192,227, 40,166, 42, 75,154, 86,124,238,198, 23,120,134,103,124,158,186, 51,228,191,251, -144, 38,246, 13, 95,125,238, 56, 56,197,249,113,206, 93,243, 1,243,143, 30,224,246,235,231, 57,122,252, 10, 27, 3,104, 26, 15, - 47, 50,220, 94,173, 89, 45,107,140,118,132, 90,145, 27,195, 40, 54, 56, 20, 65,219,176,229,192,125,108, 57,252,145,117,207,232, -154, 45, 81,107,205,177,247, 78,241, 91,127,248,121,138,170, 98,227,204, 12,175,189,125,148,149, 78, 21, 61, 73, 83, 4,142, 35, -115,175,192,247, 89,238, 44,100, 87,174, 95,167,181,150, 93,139,219, 57,124,240, 0,115,179, 35,105,205,181, 22,112,216, 86, 68, - 49,107, 26,131, 45,155, 54,177,113,118,134,188, 40,185,116,245, 10, 23,174, 92, 99,105,101,149, 73,154,242, 19, 63,252, 73, 54, -109,152, 19,177,101,215,246, 11, 3,195,120,154,113,233,202,117,222, 60,246, 46,215,110,221,224,205, 99, 39,185,120,245, 26,253, - 36, 34, 12, 66,154,182, 97, 52, 26,114,245,198, 13,142,189,123,138,155,203, 43,204,205,140,184,231,192,126,182,109,222,132,214, -154,149,241,132,223,254,220,127,230,247,254,228,207, 24, 79,166,132,161,207,173,219, 75,204,204,140,120,244,222,123,152, 25,142, - 56,115,254, 2,127,242,213,231, 88,157,140,217, 56, 59, 75,191,151, 16, 70, 33,179,163, 33,155,231, 55,144,196, 17, 81,224, 19, -199, 33,253, 68,240,184,158, 39,144,166, 29,219,183,177,115, 97, 43, 81, 24,178,180,188,194, 36,205, 88, 90, 94,101,101, 60,102, -247,226,118, 94,125,235, 40,227,169,184, 3, 0,154,182,229,198,173, 91, 44,110,219,202,135, 30,125,152,125, 59, 23,217,180, 97, -110,189, 3,176, 54,139,181,173, 48,201, 79,159,191,200,107,239, 28,103, 58, 77,185,245, 87,132,118,107,199,236,112,192,211, 31, -124,156,195,119,238,229,142,197,237,204,140,134, 84,117,205,229,235, 55, 24,245,251, 92,186,122,149,255,249,223,254, 59,130, 64, -236, 71,223,255,122, 0,158,126,236, 17, 62,252,129, 71,233, 5, 1,215,111,222,228,187,167,110,242,226,242,121, 14,126,224, 46, -222,250, 2, 92, 56,119,132,213, 43,215,113,166,166, 88, 46,217,186,240, 9,126,234,231,103, 56,115,198,227,230,137,156, 45, 11, - 35,146,197,130, 23,111, 5,124,249,207,255,128, 81,188,136,190, 60,207,230, 3,138,197,216,178, 9,195, 91, 85,192,241,175, 57, -142,124,251,119, 72,212, 3,156, 63,113,139,252,202, 60, 55, 47,124,147,115,239,252, 62,129, 63,226,161, 39,127,144,251, 14, 59, -254,246,156,230, 68,157,112,229,155, 83,198,225, 95,144,212, 15, 48, 24, 57,130,173,160, 43, 72, 92,192,246, 97,198,204,157, 3, -194,244, 17,184,107, 51,171,167,143, 82,230,185,220,147, 81, 72, 91,181,235,207,229,178,170,104, 91, 75,156, 68, 20,181,224, 89, - 3,223,144,165, 5,101, 33,207, 42, 17, 1,247, 48,158, 71, 89, 87, 4,126,176,142,237,182, 86, 42, 66,207, 51,107,109, 93,162, - 36, 70,107, 79, 52, 80,202,129, 18, 93,142,131,174,147, 40,182,202,178, 20, 12,170, 31,248,228,185, 96, 85,141,231, 73,156,116, - 43,246,191,178, 20, 14,123,107, 91,170,186,164, 42,228, 62, 82, 74,194,195,130,110,236, 19,134, 33,190,231, 17, 39,146,148,215, - 90, 1,116, 89,219, 16,116,248, 92,227,203,189, 90,215, 13, 89,145,209,212,109, 55, 62,148, 48, 44, 79,203,151,241, 12, 85, 85, - 83, 87,194,164,151,156,117, 89, 99,250,189,132,178, 18,239,127,211,141, 9,202,170, 20,183, 76,183,182, 85,107, 8,104, 68, 88, - 46,209,208, 5,129, 31,210,116,186,176,186,110,169,203, 18, 99,124,240,196, 34,103, 29, 20,101, 78, 81,148, 98,217,179,150,186, -145, 77,147,164,195,149, 56, 37, 93,128,186,145, 77, 82, 81,100,157,150, 76,200,170,107, 0, 29,112, 52,173,188,191,181,177,134, -179,174,203, 91,119, 24,231,196,195,220, 84, 13, 24, 81,115,199, 81, 76, 99,107, 36,210,173,160,106, 82,226, 56,166,202,115, 82, -235, 48,218, 35, 8,101, 7,159,165, 41, 81, 28,225,112,221,236, 81,230, 0, 81, 20, 19, 6, 62,147, 60, 23,171,153,167,112, 86, -201,191, 43, 43,234,186, 97,101,105, 5, 63, 8, 58,206,118,139,194, 80,230, 5, 74,105,218,170,198,196, 17, 81, 28,227,154,150, - 64,251,232, 72,209, 90, 65,247,161, 28,171,227, 85,226, 40, 34,207, 82,226, 40, 36, 8,101,198,174, 60, 77, 23, 20,135, 66, 84, -213, 86, 1,198, 48, 77,167,248,158, 68,238,181,101,138,211,242, 48, 25,175, 44,211, 32, 11,106,155, 73, 4, 44, 97, 68, 28, 4, - 98, 85, 42, 75,105,179,244, 19, 60, 45, 40, 71, 19, 26, 60, 79,194, 38, 66, 47, 18,234,143, 51,114, 62,235,154,186,177, 68,161, -135,242, 36,101, 73,135,178,232,218,198,225,249, 6,219,200, 76, 43,240, 61,138,178, 34,203,228, 3,138, 66,241, 60,130,216, 78, -202,178, 68,121, 74, 40, 90, 26, 92, 43, 80, 26,173,165,229, 38,155, 8,153, 99,151,157,237,111, 50,153, 48, 24,141, 40,202,130, -178,168,240,194,128, 94, 24,172,183,252,203,178,196, 51, 62,190,245,240, 60,153,121, 37,113, 68,145, 78,137,194,176, 91,192, 11, -146, 36,166, 41, 42, 90,235,136,251,162,173,200,178, 9, 69, 85,202, 92,188, 63,192, 83,128, 54,221, 69, 86,211,235,197,148, 77, - 69,211, 74,199, 97, 50,153,162,208, 20,121, 65, 20,135,164,105, 78,165, 21,158, 39,237,189, 79, 31,242,249,133, 39,123,152,178, -193, 93,158, 80,174,230,220,182,138,220, 58,252, 34, 7,101,120,238,173,203,236,223,187,153, 91,167,174,163, 76,133,201,125, 86, -243,146, 32, 14,152,150, 53,123,119,207,179, 82,228, 52,105,203,230,166, 38, 83,150, 98,120, 7,101,211,174,223,160, 69, 5, 75, - 43, 43,252,250,255,243, 89,190,246,194, 17,108,235,248,165,159,255, 25,110, 45, 45,173,243,191, 55,111,216,192,207,254,237, 31, -230,201,199, 62,192, 90,216, 77,222,117,157, 78,158, 57,203,238,197, 5,158,249,200,147,108,155,223, 72, 89, 73,154,149, 66, 9, -205, 79,119,194, 80, 34,226, 36,198, 57,199, 95, 30,121,137,223,252,253, 63,124, 95,251,184,159,244,248,244,211, 31,102,126,211, - 70,138, 92,108,101,158,241,240,181,168,226,171,170,226,202,245, 27, 92,189,113,157,186,105,177,182, 32,240,125,241,110,231, 57, -243, 27,230, 88, 94, 89,229,115,255,229,207, 5,122, 17, 4, 60,243,228, 7,185,123,255, 30, 86,198, 99,110,175,172,114,244,196, - 41,254,222,179,159,102,199,194, 54,190,248, 23,223,224,174,189,187,121,246,227, 79,179,119,215, 46, 17,177,245,250,244,250, 61, -250,253, 62,183,142,173,112,245,214, 45, 14,223,121,128,249, 13, 93,200, 76,215, 77,242,125,159,192,243,201,202, 92, 90,134,206, -201,140,208,186,117, 84,105,175,215, 99,121,101,149,179, 23, 47,243,250, 59,199,249,194, 87,159,235, 70, 72,239, 63,170,186,225, -181,119,142,243, 35, 63,248, 81,130,112, 35,170,187, 22,229,162,182,212,133,248,134,211, 44,103, 97,235, 86, 14,223,185,143,119, - 78,190,139, 66,227,248,235, 63,111,121, 60,225, 47,143,124,155,199, 31,124,128,221,139,139, 68, 65,192,210,234,152,125,187,119, -114,226,189, 83,156,191,116,133, 48, 12,249,211,231,158, 95,255,158,181, 42,246,142, 29,210, 45,153,223, 48,199,107, 71,143, 49, - 23, 7,156,189,117,129,228,145,199,185, 49, 86, 92,184,240, 22,109, 53,166,113,224,150, 3,218,122,202,236,142, 59,113,206,242, -234,183, 53,126,127,150,221,251,224,220,106,194,159,127,247,235,120,109,203,244,245, 1,225,162, 98, 9,199, 55, 47,135, 60,127, - 74,145, 21, 16, 13, 28,161,222,195,135,127,162,230,199,126,124, 47,158, 43,249, 55,255,230, 7,176,211, 11, 60,242,212,207,242, -157,111, 95,225,230,242, 2,230,167,115, 86,142, 68, 92,187,152, 51, 45, 94,163,127,215, 39, 57,244, 67,155, 9,135, 22,223,105, -174, 76,225,141, 47, 14,216,242, 36, 18,254,114,226, 48,131,195, 31,225,198,145, 47, 48,205, 51,162, 32, 34,140,100, 46,235, 5, - 30,137,150, 57,123, 81, 86,180, 77,131,135, 56, 18, 80,170,211, 31, 9,150,212, 57,233, 90,235,174,120,176, 8, 66,217, 40,113, - 66, 57, 44,158,246,137, 34,137,105, 45,154,150, 56, 73,186,133,197, 82,215,210,114, 14,253,128, 52,157,210, 27, 12,200,166, 83, -217,172,106,141,115, 74, 10,163,166,193,181,178, 72, 77,107,209, 3,137,200, 11,154,218, 18,132,210, 81,144,133,202, 18,245, 18, -148,147, 8,219,194, 73, 18, 90,127, 40,177,216,158, 18,235, 89, 93,137, 53, 51, 8, 2, 4,185,161,232, 69, 9,121, 41,130,222, -170,150, 14,179,115, 22,207, 51, 56,165, 8,219, 0,133,232,184,122,253, 24,109,181,184,123,154, 46,100,203, 90,214,232,120,190, -239,147, 21, 21,198,200,184,181,177, 45,218,122,196,113, 8, 4,212,117, 43,254,126, 11,131,209,144,186,172,137, 34,161,157,102, -133,184, 8, 42,223,163,159,244,165,170,142, 68, 39,165,148,140,186,148, 82, 20,133, 20, 74,117, 93, 19,154, 16,235, 42,104,165, - 91, 34,175, 33,236,186,121,226, 26,104, 1,231,106,172,149, 77, 48, 40,122,113,140,246, 20, 85, 85, 99, 36,144, 68, 22, 73,223, -211, 56, 35, 39,171, 45, 37,176, 35,232, 90, 90,121,158,203, 9,178, 22,167,228, 33,166, 61,141, 78, 34,166,147, 9,214, 58, 81, - 45,218, 64, 36,251, 26,156,115, 36, 78,145,217,169,156, 44, 44,211, 52, 19,116, 96, 35, 59, 46,207,182,172,174, 78,240, 60,176, - 90,211,214,130,167,212, 74, 54, 12,113, 24,177, 58, 94,149, 54,120, 47,193, 15, 60,156,114,184,214, 18,134,134, 52,157, 98, 60, - 77, 20,199,224,105, 60,227,201,204,162, 19,116,161, 4,189,231, 33, 90, 1, 15,225,104,219,182, 38,238, 37, 84,117, 69,150,166, -180,109, 67,191,215, 35,205,115, 90, 5, 58,140,113,109, 67, 86,228, 36, 97,136, 53,190, 88,150,166, 41,218,211, 12,251, 67, 26, -107,177,182, 37,207, 11,172,149,132, 34,165, 52, 70,139, 95, 82, 18,209,114,241,141, 55, 13, 85,215,142,244, 60, 33, 6, 57,103, - 73,162,144,166,173,113, 86,253,191,116,189,105,144,109,215,117,223,247,219,195, 25,239,208,195,235, 55,227,205,120,120,120, 32, -230, 65, 36, 72,129,164, 72,112,176, 68,217,148,104,201,146,101,121, 72,108,203,178, 29,219,149,148,237,138,171, 18, 59,223,146, -170, 72,174,138,203,169, 74,148,196,150, 83, 82, 85,108, 41, 17, 21, 90,164, 68, 74, 36, 1,129, 34, 1,130, 36, 72, 98,198,155, -199,158,187,239,189,231,158,113,239,157, 15,235,116,147, 80,228,141,111, 0,222,235,211,247,238,179,247, 90,255,245, 31, 36,240, - 68,201,152, 42,205,115,172,210, 72, 60,171,167,170,107, 26,223, 96,181, 37,138, 4,225, 80, 58, 48,155,206,122, 98,161, 48,202, -149, 82, 2,139, 43, 35, 23,115, 89,225,188,199, 85, 30, 87,215,125,245, 45,222,236, 70, 43,130, 14,212, 77,133, 53,166,239,152, - 64, 5, 48,198, 50,234,165,125,198, 72, 5,232,189,199,104, 9,212,145, 78, 95, 33, 57,190,154, 60, 19, 18,160,233,139, 15, 19, - 69,208, 19,233,210, 52, 65, 41,129,232,157, 23, 3,163,186, 46, 49, 70,113,246,200,128,191,243, 76,130,221,109,241,219, 37,111, - 93, 95, 99,176, 52,230,218,205,109,150,134, 9, 7, 22, 45, 91,175,222, 64,117,158,163, 71,199, 52, 77,203,238,237,109,166,119, - 39,116, 88, 6, 70, 83, 18,136, 18,195,217,165, 21, 94,127,241, 18,102, 16,179,123,224, 20,199,143,158,101, 86,204,176, 10,162, - 8,188,239,200,210,132, 79,127,252,163,172,111,110,113,251,238, 93,202,186,102,125,107, 91, 2, 89,108,196, 99, 15, 93, 36, 78, - 83,102,243, 25,227,193, 16, 19, 25,210, 36,230,224,210, 18,247,159, 59,221,135,114,204,153,151,226,127,160, 16, 98, 96,154,136, - 23,184,213, 26, 23,137,135,247,230,238,148,166,109,184,112,246, 12, 85,213,114,119, 99, 93, 46, 21, 60, 95,254,250, 75,220,115, -236, 24,247,223,123, 86,186,213,190, 51,234,186,142,237,201,116,127, 94,218,118,142,189,100,182,227, 71, 14,179,184,180, 72, 62, -200, 49, 81,196,211,143, 63,194, 91, 87,174,209,180, 45, 75,139, 11,136, 79,120,198,160,237, 40,171,146, 95,248, 71,255,152, 44, -201,120,223, 99,143,226,188,231,185,111,188, 76,211,118, 92, 56,119,134,170,156,243,218,155,239,128,247,172, 28, 88,166,106, 26, - 30,186,239, 60, 63,251,147,159,164, 40, 74,146, 68, 52,201,206,121,202,166, 17, 40, 87,201,243, 57, 31,164,203,170, 43,150, 22, - 22, 24,143,134,228,105,202, 27,239, 92,102, 50,157,252,153, 23,250,242,210, 34, 63,253,201,103, 57,113,244, 48, 75, 11,226,175, -176,103,232,177,191,180, 24,173, 88, 99,121,245,205, 87,249,234,159,188,200,198,246, 14, 74,201,193,255,195,235,200,193, 21,254, -230,207,255, 69,206,156, 60,129,107, 91, 22,151, 22, 5, 33,172, 42,254,251,255,249,127,227,163,239,127, 47, 85,221,188,203, 78, -246,145,139, 23, 56,123,250, 4, 95,127,249, 21, 62,242,163,239, 99,105, 97,129,170,169,184,117,231, 14,225,192, 50, 85,108, 57, -249,192, 99,220,124,110, 27,127,240, 45,166,107,219,152,131, 16,214, 98,162, 67,129, 60, 74,248,226, 38, 76, 55,239,112,252,248, - 81, 54, 94, 9,184, 54, 48,187,123,133,232,198, 33,218, 3,199,209, 63, 6,187,141,166,250, 58,204, 87, 97,180, 28, 56,254,144, -230,131,139, 31, 38, 43, 20,135,114,199,151,148,231,196, 89,207,112,241,199,121,252, 49, 56,242,179, 71,249,236, 63,251, 42,223, -127,105,136,171,238,112,245,157, 63,162,173,214,248,248, 95, 56,204,169, 3, 5, 47, 62,151,209,181,158,174, 82, 92,250,126,193, -119, 95,105, 56,186,184,196,234,205,107, 76,231,150,209, 61,103,153, 95,121, 11,231, 90, 58,239, 72,140,197,117,242,158,169, 16, -176,113, 34,104,146,247,168,214,245,193, 73, 14, 27, 89,130,243, 52,206,227, 58,137, 6,173,170, 82, 46,217,121,199,112, 48, 36, -210,134,214, 59,130,243,189, 38, 92,147, 70,162,181, 54, 73,132, 82,150,209,200,176,187,187, 75,221, 54,104, 37, 81,181,251,228, - 45,192,198, 34, 43, 12, 4,108, 44, 74, 15,173, 21,109,235,169,234,134,209,112, 72,100, 34, 26,215,208,214, 53,105, 38, 26,245, -170, 44, 25, 12, 7, 4, 45,179,255,170,106,177, 90,216,242,132,192, 96, 56, 32,137, 98,196,182,186, 4,148,240, 6,130, 5, 20, - 40, 77,146,166, 24,163,152, 79, 69, 54,102,148, 33, 30,198,125, 97, 35,200,157, 15, 14,109, 20,243, 89,205, 32,150, 78,190,115, -146,235,110,140,140,236,116, 36,161,100,131,124, 64,213, 54, 20,197, 28,109, 52,105, 18,227, 90,133,141,117,223,177, 11,175,170, -169, 91,242, 60,239, 11, 16,225, 61,236,201,140,181, 22, 31,126, 29, 25, 92, 39,129,106,173, 10,164, 89,202,188, 42, 48, 38,222, - 63, 55,189,247,132,224,153,207, 11,130, 7, 27,217,253,145, 24, 40, 42, 47, 77, 65, 27,199,104,196,184,199,118, 93,199,116, 50, -193,216, 8, 71,197, 48, 31, 72, 11,111, 20,181,119, 88, 45,115,220,186,174, 24,228, 25,222,119,148,101,141,107, 27,188, 55, 40, -133,204,106,123,120, 35, 24, 69, 93, 75,229, 84,215, 21, 90,107, 70, 11,139, 66,244, 10, 18,183,105,227,152,166,243, 24,231,136, -109, 66,211,181,100,217,144,166,109,232,130, 36, 25, 25,173, 73,210, 12, 31, 58,188,151,234,110, 58,157,146, 36,146,197,174, 67, - 32, 74,196, 65, 40, 31, 12,105,187, 26, 67,134,235,101, 87,249, 96, 68, 83, 86,232, 40,238,245,129, 66,251, 87,253, 7,107,180, - 92,122, 93,221, 80,206, 69,243,173,181,194, 40, 41, 46,242, 52, 70,233,148,198,181,148,101, 69, 8,134, 36, 77, 36,122,176,243, - 76, 11,209,244, 70, 81, 76,232, 28,229,238, 46,117,156, 16, 69, 9,249, 64,170,223, 98, 62, 71, 43, 69,146,101,184,186, 6,239, -105,157,167,235,154,253,131, 79,245, 7,142, 2,140,181, 12, 7, 3,102,197,156,224,107,177,127,236,132,104,101,172, 64,230, 33, - 4, 90,215,225, 59,113,153,202,178, 62,198,208, 90,138, 98, 66,154,100, 88, 19, 51,111, 42,178, 56,198,121,177,132, 36, 72,124, -104,240,161,127,110,241, 18, 46, 10, 33,176,165,195,124,191, 11,171,145,151, 82,245, 27, 95, 27, 67, 89,139, 5,112,232,159, 86, - 43, 49,136,208,157,252, 62,243, 89, 65, 54, 28, 80,245, 30,251,198,187,222, 39, 95,162,105,235,222,149, 46,138, 98,148, 53, 68, - 81, 78,219,212,188,255,180,194,214, 17,171, 47,190,194, 92,107,166, 62,162,242, 29, 7, 6, 9,247,173,164, 44, 61,124,154, 23, -191,189, 74,186,144,113,227,218, 58,199, 79,172,176,180,178,200,183, 95,189,142, 41, 91,102, 69, 1,145,124, 6,151,175,175, 67, -100,240,109,195,142, 30,113,122, 56,166, 42, 10,136, 45, 93, 39,133, 73, 49, 47,249,194, 87,158,163,152, 21,124,232,233,247, 18, -188,227,238,218,198,190,255,247,238,100,202,194,104, 68,158,230, 68,113, 36, 99,135,190,187, 64, 65,211,116, 84, 77,131, 11, 30, - 29, 2,202, 72,177, 24, 16,153,166,214,208, 57,113,100,244,174, 99,123,119,151, 87,222,124,155,187, 27,235,242, 46, 12, 7,156, -185,231, 56,127,253,103, 62,205,125,231,206,202, 69,238, 58, 57,131,144, 68,181,213,245, 13,238,172,173,239, 63,211,120, 56,100, -117,107,139, 71,147,251, 69, 42,170, 68,101, 48,153, 21, 92,186,122,157, 15,189,255, 41, 86,150,151,105, 93,199,214,246, 14,215, -110,223,225,232,225,195,252,210, 47,252, 60,191,249, 59,159,227, 27,175,188,194, 63,253,229,191,197,251, 30,123, 88,100,162, 62, - 48,153, 21,108,239,238,242,219, 95,248, 18, 90,193,131,247,221,199,104, 56,224,238,218, 70, 63, 18, 49, 61,209,175, 69,181, 10, -109,251, 16, 30, 37, 6, 39, 87,111,222,230,243, 95,254, 42,111, 92,190,202, 48,207, 57,118,228, 16,127,244,194,215,185,187,246, - 3,171,218, 31, 94, 91,219, 59,252,223,159,255, 18,191,252, 87,127,158, 44,205,136,163,104, 95, 25,178, 55, 51, 13,109,203,238, -172,224,214,157, 85, 14, 44, 45, 48, 24, 14,216,216,252, 65,172, 43,252,160,211, 62,188,114,128, 51,247, 28,231,252,233,147,196, -177,252, 93,151,174,221, 96,117,109,157, 44,142,248,149,255,245,223,160,181, 24,114, 52, 77, 47,123,234, 28,159,250,232,143,145, -218,136, 43,215,110,240,208,125,231,185,126,251, 46,163, 60,195, 25,131,125,252,125,140, 22,199,108, 47,124,147,225,204, 51, 88, -206,176, 85,142, 95,212,196,117,204,202,145,192, 3, 43,129, 75, 71, 69,110,151,168,148, 86, 37,148,211,134, 98,109, 11,123,208, - 82,188,160,152, 60, 24,152,151,146, 47,145,220,147,243,246,119, 53,127,239,239,183,156, 9, 49, 96, 24,239, 26,142, 28,134,106, -118,144,175,124,229, 58,199,142,159, 36,139, 22,184,250,202,127,224,212,217, 79,112,248,232, 7, 56,121,254, 40,249,251,145, 6, -227, 81,184,252, 27,138,237,187,155,108,109,191, 67, 49,187, 74,115,224, 97,102, 59, 55,217,222, 89,165,155, 41,242, 40,161,152, - 10,114,185, 83, 20, 36, 73,138, 71,200,111,145,138,133,192,213, 58, 76,146, 16,188,204,103,157,115, 52, 78, 50, 50, 0, 98, 19, -211,181, 14,173,196,107, 96, 54,159, 51, 26, 13, 48, 40, 60,158,121, 37,112, 61, 74,161, 21,152, 90,140,110,178, 44,101, 60, 30, -227,218,142,182,237, 64, 9,177,172,109, 91,140, 18,168, 94, 35, 46,112, 58,104,108, 34,146, 93,231, 68, 33, 82, 85, 53,113,212, -107,201,157,216,203, 42, 45, 25,246,101, 49,151,177,130,115, 50,134,236, 57, 63, 33,136,231, 72, 89,213,146,214,150, 70,184,186, -165,233, 60,211, 86,200,154, 89, 38,163, 3,231, 91,130,146, 8, 99,215,138,246, 62, 4,133,181,170, 31, 29, 59, 65, 55,172, 32, - 21, 33, 40, 58, 87, 19, 27,139,182, 26,130, 40,136,228,153, 34, 49, 77,171, 74,218,186,161,246, 34,167,219,115,254,115,173, 60, -167, 82,129,249,124, 78, 28,203,184,215,117,157,112,248,148,194, 88, 75,231, 3,166,149,115,101,143,147,210,212, 13,174,245, 36, -137, 38,138,114,186,174, 69,130,124, 2,253,116,143, 64,160, 44,231, 61,105, 91, 28, 7, 65, 72,128,113,156, 0, 26,115,238,252, -249,127,225,189, 35,142, 19,246,194, 70,166,211, 25,243,249, 12,239,101, 78, 90,245, 2,251,189, 57,136, 15, 98,202,161,145, 4, - 37, 9, 74, 81, 36, 89,142,182, 10,223,207, 69,180, 53, 72,164,164, 16,135, 80, 26,155,196, 4, 7,177, 49,100,249, 0, 99, 99, -146, 36, 23, 88, 58, 52,228,201,128,182,103,226,230,121, 74, 93, 86,228, 61,225, 77,146,108, 68,178,230,156, 35,120, 15, 94, 24, -159,197, 76,242,107,203,178, 32,142, 82, 49,145, 25, 10, 11,124, 50,153,236,179, 8,219,166,145,153, 74, 87, 83,204, 10,186,126, - 94, 28, 89,201, 91, 23,152,182,166,107, 29,113, 28, 99,180,161,237, 2,121,158,202,115,244,124, 2,173,197,199, 62,138, 44, 58, -138,241, 94, 73, 21,213,111, 86, 99, 45,105, 42, 29,109,231,101,166,109,172, 84,123,174,109, 9, 62, 16,148, 39,178,166,151,249, - 9,140,146, 36, 9,145,149,106,113, 15,138, 71, 9,186, 16,167,113,127, 32,138,228,208,185,222,181, 46,207, 65,203,207, 47,203, -146,180,191,232,181, 17, 24,168,170,164, 74, 31, 14,115, 76, 95,189,134, 16,152, 21, 18, 10,163, 12,226, 56, 85,204,176,218,246, - 80,180, 39,138, 4,161,217,147, 90, 25,173,137,162, 8,109,122, 95,252,166, 33, 4,217, 23,218, 72,209,177,247, 50, 39,113,130, -115, 29, 10,153, 29,197,113,210,111,118, 97,233, 43, 43,233,108,143, 31,130, 7,109,205,224,240, 2, 75, 79,156,227,214,213, 77, -124,235,176,177,225, 35, 63,251, 36,193,107, 94,126,233, 42,195,229, 1,219, 59, 53,219,211,134,165,161,165,243,138,166,131,179, -247, 29, 39,143, 21,170, 21, 18,229,137,243,135,217,220, 42, 24, 63,244,113,146,225, 88, 20, 22, 90,163,251, 3,110,117,125,131, -231, 95,124, 25,148,226,240,202, 50,187,179, 25,111, 93,190,178, 63,111,157,151, 53, 40,201, 57,200,211, 20, 37,152, 30, 62, 64, -240, 94,102, 92, 65, 2, 59, 4,142,146,130, 44, 16,196, 52,195, 57,153, 27,182, 29,239, 92,190,202, 87,190,254, 77,222,236, 67, - 95,246,144, 16, 9,191, 16,200,108, 60, 28,238, 67,248,214, 90,186,174,229,198,237,187,188,117,233,114,111,206, 36,252,131, 35, - 43, 7, 56,114,240, 32, 11,227, 33, 90,107,190,240,149, 63,230, 11, 95,121,129,115,167, 79,240,227, 31,126,134,165,197, 5, 92, -231,184,185,186,202,181, 27,183,249,147,151,191,205,151, 94,248, 58,193, 7,142, 31, 62,200,180,152,211, 52, 13,231, 78,157,100, -121,113, 76,154,102,164, 73, 44, 16, 94, 8,220,127,238, 44,247,157, 59, 77, 26,199,236, 39,241, 5,241, 43,104,218,150,186, 17, -175, 8,109,100,143,142, 7, 3,142, 31, 57,204,250,214, 54,159,255,242,243,188,242,218, 27,204,138, 31, 4, 33,129, 20, 30, 73, - 28, 99,163,136, 56,178,124,228,153,167,121,244,226,125,140, 71, 3, 25,147,245,255, 72, 73, 36,246,195, 89,154,178, 51,157,242, -239,126,251,179, 60,247,141,151,216, 75,176,251,211,107,117, 99,147,121, 89,179, 52, 30,179,188,184,200,221,245,117, 94,121,237, - 13,126,245,215,254, 45, 69, 89, 83,246, 4,171,189,220,137, 7,238, 61,203,235,239, 92,226,196,177,163, 60,245,200, 67,220, 94, -223,192,121, 73,105, 60,126,104,133,239,121,197,209, 15,127, 26, 53,111,153,110, 95,195,212, 21,147,170, 70, 71, 57,201,194,136, -195, 43, 71, 56,118,232, 33,182,135,154,237,244,251, 84,217, 21,194,210,148, 3,247, 13, 57,218, 62,201,234,250, 2,183, 95,249, - 34, 59, 55,214,216,126,187,100,123,190,203,234, 43, 95,224,205,151,159, 71,233,123,200,158, 89,226, 53, 91,242, 98, 97, 89,255, - 19,232,102,138,174, 80,108,237,166, 92,255,226,103,185,255, 3, 63,198, 99,207,252, 24, 63,241, 15, 79,241,212, 95,184,159,123, -158, 58,193,198,215, 58, 94, 91,187,195,237, 47, 78,184,117,233, 26, 59,235,111,176,179,253, 26,174,105,136,176,148,213, 38,205, -124, 29,215,238, 48,202, 91,234,121, 41, 23, 83,211,160,181,162,169, 27, 34,107,232,188,220, 8,137,141,233,156, 67,121, 48, 86, -179,119,238, 11, 47, 74,211,248,142, 44,149,177,145,177,154, 52,205,246,205,138,210, 36,161,174, 69,254,181,231,178, 41,217,235, -194, 69,242, 94, 76, 98, 90,215, 82, 87,245, 62,116, 93, 54,117,127,158,201, 8, 44,244, 13,149, 40, 99, 4,102, 15, 62,136,211, - 28, 30,163, 36, 24,166, 11, 29,157,247,180,174, 19,249, 86,219, 10,195,183,191,119,124,240,125,238, 68, 71,232,207,151,184, 39, - 84, 71,145,161,235, 58,240, 16,144, 81, 99,154,200,204, 91, 44,104, 3, 11,163,113,143, 32, 68,184,224, 81,200, 25, 24,250,182, - 69, 35, 81,203,214, 88,108,223,165, 27, 19, 17, 69,137, 52,128,168,158,195, 36,127, 34,178, 6, 99, 98,180,213, 68,218,138, 67, - 98, 28,225,219,150,233,124, 38,198,101, 77,133,182, 6,133, 32, 11,222, 59,172, 49,216,190,193,234, 58,201, 79, 55, 61,177,209, -123, 39, 92, 49, 39,191,107, 18, 75, 19,219, 58, 33,240, 53, 77, 37,223,107, 79,104, 77, 18, 65, 45,172, 49, 50,131,182, 54,194, -117,142,178, 40,164,147,174,123, 13,227, 92,170,130,202,121,118, 38,219,226,211,173,140, 72,158,154, 25, 62, 4, 34, 99, 73,211, - 24,141, 36,249,180,109,131,115, 66,128,115, 56, 18,147,136,243, 80, 38,151, 74,227, 68, 51,174,219, 78, 40,248,214, 80,148, 13, -113,220,103,212, 38,253,161,226, 3,109,191, 41,172, 50,140, 7, 35,170, 90,100, 7,131, 60,167, 44, 11,124, 16,246,116, 8,142, -201,238, 14, 40, 69,221,116,216, 40,194, 57,217, 20,170,239, 60,141, 81, 52,141,120, 28, 71, 70, 83,151, 21,174,107,201, 50, 49, - 94, 17, 22,183, 20, 40,174, 19,178,156,210, 86,146,209,180,100,171, 55, 93,135, 1, 76, 20,225,186,128,119,158,200, 68,100, 75, - 18,131, 42,243, 23,131,235, 36,125, 72,107, 97,154, 71, 81,111, 85,168, 32,177, 22,165, 60,185, 77, 41,203, 57,121,146, 18,229, - 67,102,243,130,121, 93, 51, 72,179,126,134, 2,147,217, 76, 42, 48,181, 71, 38, 82,228,131,156,106, 38, 81,136, 2,231, 66,215, - 57,138,233, 20,165,100, 90, 36,122, 72,233, 46,141,181,242,221,244,159, 71,219, 51,230, 65,145, 15,115,124,219,178,103,135,152, -228, 41, 54, 78,240,190, 99,107,107,147,241,120,129,166,174,164,203, 15, 1,109,181,108, 88,109,164,187, 81,162,147,117, 33,160, - 75, 24,141,196, 40,194, 24, 48,246, 7,206,115,243,182,149, 75, 13,136,146, 68, 96,193, 72, 99,108, 10, 11, 6, 14, 15,216,253, -218,101, 84,231,121,246,175, 60,197, 91, 95,124,157, 59,127,114,153, 91, 91, 83,244,100,142, 25,165, 80,213,245,242, 75,139, 0, - 0, 32, 0, 73, 68, 65, 84,148, 69,195,155,101,195,141,173,130,241, 32,102, 58, 45, 81,141, 99,117,123, 78,215, 54,108, 79,106, - 14,157, 60, 65,117,228, 4,211,233, 84,186, 18,239, 81,202,224,125,203,213,155,183,121,243,202, 53, 78, 28, 57, 76, 93,183,188, -113,233, 42, 55,123, 11, 83,173,224,158, 35,135, 56,123,226, 4, 89,146,160,180,204,124,149,150, 94,165,233, 28,157,151,217,155, -116,140, 94, 62, 87, 15,190,145,238, 1,132,156,227, 58,199,230,238, 46, 27, 59, 63,204,220,214, 28, 59,124,136, 15,191,247, 73, - 30,125,207,253,156, 59,125,138, 61,249,208, 94,199,190, 59,153,114,253,214, 45,174,223,190,187,255,167,182,119,118,185,179,182, -206,218,198, 6,167,238, 57,142, 66,113,223,217,211,252,204,167, 62, 65, 28, 89, 78, 30, 63, 38,135, 91, 8,204,231, 21,175,190, -115,153, 43, 55,110, 50,159,207, 57,116,112,133, 71, 31,184,159, 39, 30,126, 15, 23,238, 61,199,104, 48, 32,207,115,182,118,239, -178, 61,153,114,254,228, 49,182,119,119,184,179,190,198, 3,245, 25, 14,174, 28, 16,194,156,141,152,247,223,187, 86, 66, 58, 53, -218,112,119,125,131,141,205, 45,166,179,130,178,105, 57,123,242, 30, 62,244,244,147,188,240,141,111,239,203,226,246,150, 15,112, -250,248, 49,126,225, 51, 63,201,123, 46, 92,224,248,145,131, 88,173,217,153,206,168,235, 22,109,157,164,223,117,142,221, 89, 65, - 81,150, 52,181,232,110, 31,127,240, 1, 94,121,253,205,253,192, 28,144, 46,125,113, 60,230,254,243,103, 57,119,242, 4,159,252, -208,143,114,240,192,146,112, 78, 80, 98, 42,163,244,187, 34,104,247,214,137, 99, 71,121,250,137,199,248,245,127,255, 59,252, 87, -127,251,175,115,241,236, 25,222,184,124,153, 3,195, 1,119, 90,199,237, 99,167,120,122, 48,102,245,123, 1,223, 42,170,214, 83, - 59, 67,182,184,140, 74, 3, 39, 14, 31, 66,157,222,228,202,181, 43, 44,173, 44,114,226,224,163, 44, 41, 25, 70, 31,248,144,226, -220, 39, 14,242,235,255,244,125,188,253,181, 95, 37,160,112,170,165,154,172, 49, 90, 58,193,226,226, 50,235,191,171,104,167, 41, -122, 25,202,137,198, 53, 1,101, 21, 22,184,115,231, 26,159, 57, 12, 59, 94,177, 24,207,120,144,140, 63, 74, 53,169,183,172,191, -122,128,118,233, 43,116,203,183,217,185,226, 81, 6,242,197, 19,128,163,235,230,160,161,109, 45, 46,206,241,174,101, 54,107,123, -123, 88,139,115,245,254, 5, 49,159,207, 33, 67,206,131,216,226,130, 39,141, 83,246, 36,166, 81,170,177,157, 7, 37,196,219,224, - 3, 30, 71,158, 15, 80, 10,202,121,137,141, 34, 58, 23,168, 42, 33,130,198,113, 76,150,100,204,138, 2, 79, 13,206,147, 15,135, -204,166, 83,162, 40, 17,136,217,118, 88,246, 92, 69, 69,102,220,118,173, 72, 93,211, 12,218, 6, 79, 64, 25, 69,104, 28,104,113, -186, 83, 78, 97,209,160, 45, 77,215, 73,144, 86, 36,231,160, 79, 28,169,143,113, 46, 96, 85,160,237, 58,138,162, 96,113,113,113, - 63, 15,125, 60, 26, 11,234,216,212,196, 54,162,238, 90,124,144, 89,185,209, 6,109,197,141,212, 5, 71,158, 38, 56,215,251,156, -120, 5, 10, 58, 60,101, 85,202,229,173, 12,109,127, 79,248,174,197,155, 4,180, 66,123, 48,145, 36, 86,138, 72, 64,208,131, 16, -132, 7,208,245,168, 66,219, 8, 99,125, 52, 26, 49,221,157,145,102, 9,217, 64, 44,120,187,198, 19,130,140,161,246,208, 8,231, - 2,117, 51, 71, 43, 49,241,217, 11,147, 42,171, 90, 84, 78,218, 16, 60, 68,113,210,195,247, 1,165, 2,179,121, 65, 98, 99,172, -119,142,186,113, 52,213,132, 40,138, 1,205,188, 44,233,186,110,223,104,197, 59, 47,198,252, 33, 96, 35, 75,211, 58,232, 96,144, -229, 76,103, 19, 90, 31, 24, 12,134,116, 78,230,186,214, 10,171, 89, 25, 17,253,135, 0,131,193,136,178,174,152, 87, 21, 73, 20, -139,183,111,223,109, 87, 77, 67, 26,107, 60,129, 16, 60, 89,150,138,102,181,117,116, 14,182, 55, 55,177,214, 48, 28, 14,137,163, -120, 31, 10,205, 7, 35,234,170, 17, 87,186,166, 3,163,136,242, 49,177, 81,116, 94,168, 53,105,146,144,196, 49,117, 37,122,197, - 60, 23, 34, 4, 4,134,131, 1,147,201, 46,117,221, 73, 81,162,132, 48, 17, 2,232,196,138, 47,183, 86, 24, 45,225, 41,149,209, -168,126, 62, 50,212,154, 56, 49,212,117,139,141,250, 88, 84, 99, 72,172, 66, 25, 77,232,192,187,192,100,178, 3,222, 67,158,227, -154, 10,124, 64,143,199, 88, 19,131, 15, 4, 31,152,119, 13,227, 68, 2, 68, 58,231, 80, 8, 40,111,173,193,185,142,182,107,200, -178, 1, 85, 85, 49, 24,102,116,109, 75,146,196,244,101, 50,109,221, 48, 43,102, 8, 25, 68, 83, 85, 53,131, 97, 36,115, 31,173, - 25, 14,134, 40, 45, 82,151, 36, 73,100,104,143,176,173,171,186, 36, 78, 82,180, 54,228,153, 64, 73,218, 42,230,115,201, 42,222, -222,222,194,196, 17,126,111,195,181,142,100,144,236,147, 60,156,243,248, 42, 16, 27, 75,211,214,248, 78, 72, 41, 77,219,226,154, -138,209,120, 44, 7,132,119, 20, 69,177, 79,230, 83, 74,241,227,239, 25,240,231, 31,137, 9, 74,179,245,199,151,249,245,255,248, -125,254,225,207, 62, 1,111,110,241,149,111, 94,231,196,161, 5,230, 77,199,194,161, 17,219, 59, 5,233,242,152,196,119,108, 23, -162,219,244,117,199, 91, 87,119, 56,117, 48, 97, 16,107,140, 77,136, 76,224,246, 52, 38, 45, 43,102,197,148, 3, 11, 75,228, 89, - 42,213,118,208,156, 56,126,148,243,167, 79,113,252,240,129,253, 8,206,189,229, 3,220, 93,151,184,208,131, 43, 7,176,235,107, -172, 44, 47, 67, 63,162,235,188,167,169, 27,233, 80,148,140, 39,172,181,104, 69, 15,189, 75,248, 11,192,250,214, 54,219, 59,187, -162,216,248,193, 79, 96, 86,204,152, 20,115,218,206, 49, 47,231, 61,164, 38,164,193,166,233,184,187,190,193,247,223,124,135, 31, - 94,198,136,172,174, 40,107,118,167, 83,198,195,156,243,167, 79,113,226,216, 81,170,178, 98,109,115,139, 63,248,234, 31,243,213, -111,188,196,229,235, 55, 1, 72, 99, 25, 59, 45, 14,135, 52,206, 49,200, 51, 70, 3, 73,151,186,117,119,149,231, 95,124,153,231, - 95,124,153,105, 81,240,216,131, 23, 57,115,207,113,150,198, 35,146, 40, 98,144, 74,130,151,105, 13,174,171,152, 85,229, 62, 4, -254,234, 91,111,115,245,230, 45, 54,183,119,120,245,173, 75,204,171,138,200, 24,134,195, 1,237,110,183,223, 25,231, 89, 74,100, - 35,222,184,114,149,255,230,127,252, 87,252,226,103,126,146, 79,127,242, 89,150, 71, 99,185,184, 21, 24, 31,129,149, 46, 37, 75, - 19,110,220,190,195,239,254,193, 31,241,253,183,223, 65, 3,197,252,221,241,170, 82,240, 11,212,254,248,131, 15,240,224,133,123, -241,222,243,220, 75,223,226,247,159,251, 26,177,209,220,115,244, 8,215,111,189, 91,211,174, 81,252,254,115, 47,240,143,127,233, -111,240,215,254,226,159,231,155,223,123,141,159,253,137,143,179,177,189,197,225, 3, 75,188,176,189,203,248,108, 74,211,129, 57, -163,240,175,105,154,118, 78,154, 45, 51,156, 28,193, 13,214,153,181,155, 84, 27,175,115,242,216,123, 56, 58, 88,102,108, 96, 52, -128, 52,106,184,177,155,240,205,207, 46,112,244,200, 2, 27,247,188,151,237,237, 75,196, 78, 49, 58,121,129, 52,215, 76,118,222, -226,238,205, 71, 41, 11, 69,121,123,151,134, 6, 91,119, 68,139, 71,217, 45,110, 51, 26, 61, 10,143,193,218, 31,194, 89, 60, 75, -202, 18,135, 29,244, 99, 99,138, 87, 20,213,173, 3,196,227,171, 28, 61,123, 15, 90, 31,195,123, 79, 61,221,193, 59, 80, 68,120, -149,161,143, 30,228,128,106,152,174,173,245, 77,149, 20,158, 69, 49,103, 56,148,145,106,215, 57, 90,215, 49,202, 13,202, 7,106, -215,129, 19, 27,104,130,200,199,180, 6,155,138,211,103,219,118,130,188,117, 34,211,234,234, 78, 20, 49, 58, 67,107,100, 68,167, - 53, 54, 54,184, 38,224,244, 15,102,199,214,106, 48,138,208, 34,145,175, 93, 71,154,230, 40, 37,126, 24, 0,117, 37,141,194,104, - 52,162,235,186,158,116,166,152,236,150, 68,177,197, 90,185,143,178,222,193,179,235,246,220,227, 58, 92, 39,119, 13, 8,132,110, -173,240,143,234,174, 37, 79, 50, 90, 47, 42,171,121, 81, 96,210,132, 65,146,163,242,189,112,154,110, 95,134,231,235,146,166, 21, - 47,253,186, 81, 24, 29, 48,202,146, 36,154,186, 1,229, 21, 42, 50,196, 26,202,121, 77, 20,107,230,187,149,188,247, 86,202,149, - 52,203,233,218,154, 56,142,112,206,209,118, 45, 81, 28,209,213, 29,193, 73, 33,225,187,142,170, 44,209, 86, 36,125,222, 67,146, -137,135,126,211, 52,228, 89, 78,168, 75,249, 93,140,233,201,199, 74,154,136,182, 37, 74, 18,210, 52, 70, 41, 35,104, 72, 89, 49, - 28, 14,240,120, 9,183, 65, 76,137,156,114,216,178,135, 74, 76,100, 73,141,100,128, 55, 77, 45, 21, 77, 36, 21,214,172,152, 10, - 52, 18, 20, 85,211,176, 48, 90, 64,230,187, 82, 53,136,181, 94,199,116, 42, 25,229,101, 85, 73,194,218,112, 40,210,131,224, 73, -148, 34,142, 45,222,201,172,174, 42,230,184,222,226,207,152,158, 16,134, 71, 43,209, 30,206,231, 21,205,188, 68,117, 45, 26,143, -243, 29,211, 93,135,210, 10,155,103, 40,101, 8,200,156, 70, 57,133,138, 4,246,110,155,138,225,226, 18,105, 36, 6, 8,109,219, - 10,113,195, 66, 8, 82, 45, 26, 45, 94,185,114,117, 42,162,200,146,101, 3, 80, 10,133, 48,212,187,214,209,118,123,157,135,200, - 14,178,108,128,238, 73,112,109,219, 49, 30,143,177,145,161, 42, 11,180,181,212,101, 73,219,212, 12,243, 1,173,247,212,197,174, - 64, 80,243, 57,179,237,109,148,150, 68,167,217,100,130,210, 16,124, 64, 25, 67, 26, 37, 0,228, 67,241,161,111,218,150, 56, 77, -216, 35,155, 4,232, 53,159, 17,109,221,130, 81, 36,214, 80,213, 53,243,249, 28,173, 13,222, 59,198,121, 78, 67, 64, 43, 3,193, -147, 36, 17,185,201,152, 21, 51,180,150, 11,189,105, 58,242, 52,197, 7, 77, 85,215, 36, 81,130,243, 29, 96, 40,230, 37,113, 28, - 49,157,148,248,174, 19,253,104,108, 72,227, 20,149, 72,103, 90,206,231, 61,123, 83, 62,189,166,105, 48, 90,163,172,194, 96,132, -140,131, 34,210, 22,147,199,116, 77, 67, 28,247, 47,103, 38,208, 94, 8,129, 11,135, 29,127,243,253, 67,226,162,198,167, 25, 95, -121,233, 6, 79, 63,116, 28,245,196, 41,190,247, 59,223,230,137,135,142,211,121, 48,107, 51, 38,109,199,122, 19, 40,110,110,113, -250,232, 50,171, 69, 1,218,208,248,192,241,149,140,115,199, 70, 52,211,134, 77, 31, 24,141, 44,117,126,132,233,172,160,107,196, - 4,162,172,106, 22, 70, 35,230, 85,205, 86,159, 58,166, 20,220, 94,125,119,114, 24,200, 5,154,167, 9,193, 7,162, 56,233,199, - 70,226, 21, 32, 48,116, 77,235, 28, 4,135,209, 18,191,169,181, 70, 43, 77,211, 31,166, 93,219,113,251,206, 93,238,174, 75, 71, -187,183,146, 52,238,209,129,203, 60,253,196, 35, 16,232, 11, 84,205,100, 90,240,205,239,189,198,235,151, 46,113,240,192, 18,171, -125, 76,233,194,120,196, 79,124,228, 25, 30,186,255, 34, 7,150, 22, 24, 13,228,128,246,206,247,251, 35, 34, 4,197, 7,222,251, - 4,163,241,136, 47,127,237, 27,188,254,246, 37,170,166,161,233, 58, 86, 14, 44,243, 51, 63,241, 73, 86, 22,199, 82,144,119, 13, - 89,154,112,225,236, 25,156,115,188,115,245, 6,211,217,156,197,241,152,199, 31,126,143, 32, 7, 90,161,124,223,185, 24,141, 15, -114,193,238, 76, 39,188,117,233, 26,127,240,220,243,236,206,138,119,205,171,255,244,242, 1, 62,249,225,103,120,252,161,139, 36, - 81,132,235,187,151, 56,137,233,156, 23,174, 5, 34, 89,173,218,134, 27,183,238,176, 51,157,145,231, 41,101, 89,255,153,221, 54, -136, 55,251,251,159,120,148,199, 31,122,128,151,190,251, 42, 91, 59, 59,164, 73,202,231,255,240, 43, 0,226, 65,222,175, 56,178, -164, 89, 74,158,138,132,244,179, 95,252, 50,255,242,159,255,215,124,237,155,223,226,249,151, 94,230,177,139, 23,136, 15, 29, 98, - 54,171,184,248,240, 71,105, 47, 7, 70, 39, 3,206, 46, 98,140, 37,205, 22, 97,169,225,216,202, 34,231, 30,254, 49, 70,139,138, -140,128, 86,158, 40, 40,230,117,160,241, 49, 81, 22,216,184,181,202,230,157, 27,124,236, 47,253, 21,120, 6,118, 60, 12, 45,124, -251,191,253, 42,119,174,255, 49,170,147, 92,243,170,153,225, 19, 69,232, 60, 81,185,205,246,238,117,104, 75,190,243,219, 96, 51, -248,238,239,143,105, 62, 26,200,173, 38,190,172, 8,157,163, 42, 60, 77,172,137, 87,214, 56,152, 61, 67, 62,238,112,237, 58,107, -171,176,118, 51, 98,186,150,211,109,174,112,207, 51, 15, 16,191,252, 5,138,219,107, 24,107,240, 65, 96,218, 16, 20,113, 26,203, - 60,217, 70, 84,117, 77,215,138, 73, 76,231,157, 4, 47,229, 25,131, 65, 38,176,122,219,244,242, 40, 79, 85,149,189, 14,190, 37, -205, 82,145,224, 90,201, 81,207,178, 76, 70,180, 54, 34,178, 49,198,104,218,174, 35,201, 18,124, 23, 40,138, 41, 10, 77,158, 15, -247,121, 77,117,211, 16,233, 8,155,199, 36,105, 74, 93,213, 20, 69,193,104, 52, 38, 31,230, 66,192,179,134,166,115,212,141,188, - 59,123, 8, 88,167, 20, 74, 26,105,226, 52, 69, 35,209,208, 74,131,209,150,208, 9,156,237,130,100, 84,180,109,219,123, 65,148, -228, 70, 28,245, 92,213,145, 13, 50,234,166, 6,223, 17, 69,105, 63,130,245, 16, 60,206,129, 87, 45,177,142,132, 15, 16, 28,174, -107, 37, 86, 60, 4,108, 72,201,146,132,166,115,148,197,140,198,136,148, 78, 76,116, 20,121,154, 83,119,114,127, 38,113,194,238, - 92, 92,241,226, 94,162, 23,250,226,201, 53, 53, 16,200,178, 12, 21,250,115, 51, 40,188,235, 40, 59, 9,204,146,207, 89, 3, 26, -165, 13,229,188,192, 24, 75, 8,194, 1,240, 78,156, 64,173,177,253,168, 60,162,235, 28,214, 90, 75,154, 72,158,235,188,174,105, - 93, 75,222, 75, 2,240, 66,144,136, 18,137, 75,245,222,163,186,208,235,235,122,195,145, 44,101, 54,153,177, 51,217,197,232,136, -174, 19,237, 93,227, 28,126, 54, 97, 48, 24, 33,158,185, 83,160,103,249, 58, 79, 28, 69,212,149,116, 53,131,209, 2, 74,105,102, -179, 25,113, 18,137,252, 66, 25,130, 53, 61, 60,163, 8, 74, 28,186,112, 10, 87, 8,211, 17, 31,192, 90, 92, 39,158,196,218, 70, -100,195, 17,104,201, 16,222,151, 10, 89, 3, 88,172, 17, 24,170,174,155, 94,230, 0, 90, 11,241, 70, 98, 90,133, 37, 58, 30,141, -169,219,150,162, 16, 89, 89,108, 45,202, 26,230,243, 89,255,103,164,131,159, 78, 39, 66, 96, 83,144,197, 17,243, 70, 10,164,157, -221, 29,210, 92,248, 9,157,107, 5,177,104, 61, 62,202, 25,102, 17,173,243, 84,115, 49, 94, 9, 4,138,217, 28,198,138,196,136, - 4, 48, 50,134,174,238, 80, 74,147,102, 57,214, 40,156,181,178,193,156, 35, 82, 17,157,247,148, 85, 69,146, 38,251,190,206,202, - 90, 6,145,104,137,139,162, 20, 82,159,239, 24, 13, 71,204,139, 18,239,101, 3, 76,103,243, 30,186, 7,188,152,217,228,153, 88, - 80, 22,197,156, 44, 77,133, 46,222, 87,226, 26, 25, 77, 84,181,188, 36,211,233, 20, 99, 52, 1, 8, 94, 65,240,168,166,247,148, - 14,141, 36, 30, 53, 98,208, 35,254,255, 29,211, 66,140, 41, 70,195, 33, 30,205, 47,127, 48, 35,186,182,137, 63,113,128,233,155, -119,153, 79,102, 60,240,190, 83,168,203, 59,220,222, 44, 57,115,239, 10, 77,237, 25,159, 61,200,107,175,175, 82,116,129, 56,143, -185,116,117, 19, 29, 91, 14,140, 98,202,121,195,249,195, 35, 54,175,108,224,203,138,193,145,101, 54,215,107, 46,141, 91, 98,189, - 77,158,198,124,254,203, 95,229,218,237,187,252,151,255,249, 95, 99,109,115,139,223,252,157,207, 9, 7,163,144,125,240,195,203, - 24,195,163, 15,222,207,193, 3,203,125, 1,234,217, 35,102,185,190, 24, 33, 72, 49,230,156,195, 43,141,209,158,128, 72,132,124, -127, 48,228,121,206,169,123,142,115,103,117,157, 51, 39, 78,240,253,183,222, 1, 60,105,148,240,192,249,123,185,120, 94, 96,112, -173,197,249, 48,178, 2, 45,111,237,238,240,135,207,255,201,187,158,105, 58, 43,184,126,243, 46, 43,139,203,156, 63,115,138,241, - 48, 71, 3, 38,142,136, 9, 52, 90, 34,144, 23, 71, 99,154,186, 98, 97, 56, 96, 60, 26,178,181,189,131,247,158,187,235, 27, 28, - 60,176,132,209,138,233,180,144,121,101,219,137, 4,237,230, 45,110,221,189,203,169,227,199,184,189,182,198,195,205,125,104, 45, -197, 9,125,103,142,146, 28,232,206,117,188,246,205,119,120,253,157,119, 88, 90, 90, 98, 58, 47,255,147, 23,186,214, 66,170,107, -154,154, 99, 71,142,112,252,208, 65, 34, 43, 42, 2, 23,100,188,214,118,226,211,125,119,245, 46,223,121,237, 13, 54,119, 38,188, -241,246, 37,238,108,108,254, 39, 67, 87, 70,163, 1,207,254,232,251,248,171,159,249,243, 84, 77,195,100, 58,225,183,255,227, 23, - 57,184,178,204,185, 83, 39,184,116,237,134,100, 63,244,107, 60, 26,115,248,224, 1,154,166,225,252,217, 51,212,117,205,191,255, -236,239,113,224,192, 18, 79,189,231, 34, 63,245,137,103,249, 7,255,239, 23, 56,254,193,191,204, 3,103, 83, 54,111, 42,150, 34, - 69,122,247, 32, 62,205,208,157,102,253,246, 27,140, 55, 30,229,248,199,192,133, 18, 95,165, 60,148,117,148,193,113, 73,101,188, -189, 14,155,207, 7, 86,239,220,192, 23, 59,252,244,167, 43, 30, 32,229, 75, 76,120,135,154,196, 30,102,107,243,115,196,217, 89, - 22,150, 14, 81,149,235,132,185, 64,219,179,174,229,214,141,231, 24, 14, 79,241,122,254, 18, 39,252, 83,216,105,224,245,207,105, -242,149, 49,235,183, 2,243,106, 66, 89,213,236,126,127,139,165,247,140,185,240,224, 65, 34, 29,216,216,136, 80,103,166, 28,247, -154,235, 47, 20,204,215,143, 82,221,188,143,243, 31,252, 0, 59,197,231,185,241,197,207, 83,207, 10,156, 19,195,147,209, 96,128, - 75, 45,213,124, 78, 85, 85,216, 56, 38,162, 15,132,154, 78, 69,174,155,102, 52,157, 36,155, 13,242, 12,231,122, 25, 88,240,196, - 73, 76,112,162,105, 23,107,104,145,180, 10,113, 78, 46,120, 85, 43,162, 36,218,183, 55,149,184,237, 12,188, 71,107, 35,234,169, -174,163, 33,128,213,120, 39,103,116,150,100,116,190,163,158,206, 73,243,140, 68, 69,164, 74, 84, 75,214, 68, 34,179, 11,158, 60, -151,249,129, 22, 66, 11, 10,185,240,139,233, 76,254,155,214, 76,250, 52, 54,211,143,180, 6,131,129, 16,234,138, 57,181,150,172, -246, 16, 28,145, 54,253, 22,247,152,216, 16,218,128,241,129,214,123,156,115, 56, 3, 90,199,232, 84,184, 31, 26, 69,221, 84,114, -238,150, 37,226, 55, 98,101, 44,101, 44, 77, 83,209,116,130, 88, 42, 15,243,102,142,181, 98,201,251,195,163, 93,231, 68, 54, 7, - 80,213, 45,101, 91,147, 69, 41,157,239, 36,131, 68, 43, 84, 0,213, 57, 92,219,146, 12, 50, 84, 80, 56,183, 23,185, 11,120,143, - 49, 30,109, 13, 58, 8, 90,209,185, 86, 70, 36,214, 98, 59,231,169,230, 5,193,119, 40, 47,208,217,172,110,177,105,194,108, 62, - 35, 79,210,126,200, 47, 76, 60, 27, 71,204,231,115,218,178,146, 88,185,206,163,140, 72,172,146, 40,234, 61,179,101, 78,168, 98, -113,202,170, 42,209,158, 15,135, 98, 75,218,117, 29,243,121,181, 15, 9,215,109,139,239, 28,214,198, 56, 20,243,201, 4,215, 57, -240, 14, 31,199,140,135,185, 64,189, 65, 81,215, 5, 93, 43,201, 99,195,225,152,200, 88,166,173, 99, 56, 90,192, 68, 6,163,181, - 4,164, 36, 9, 81, 20, 19,199,182,255,176,123, 31,248,158,176, 81, 7,145,104,164,113, 44,241,168, 86, 92,123, 34, 35,250,241, -121, 81, 64, 8, 12, 71, 35,185, 48, 21, 68, 90, 72,111, 58,136, 13,103,154,230,152,200,208,180, 13, 74,121, 22,134, 67,118,119, -119, 9, 90, 83,205,230,160, 32,104, 45, 46, 64,214, 98,130,163,115, 49, 73,154,201, 92, 7,197,180,156,211,248,142, 65,128,121, -211, 72,246,124,154,246,218,116, 33,180, 76,103, 51,226, 56, 22, 34, 71, 16, 86,101,211, 52,194,178,239, 28,121,150, 82, 78, 11, -188,247,236,238, 76, 24, 45, 12, 73,147,140,233,108, 70,154,229, 24, 45, 93,178, 15, 50,247,181, 86,140,132,170,170, 21,201, 71, - 80, 76,103, 19,242, 60,167,174, 43,138, 98,142,162,119,238, 83,138, 56,203, 16,167,165,140, 36,201, 8, 61,241,175,115,158,160, - 28,113,154, 97,180, 6, 60,197,108,142, 42,171,253,141,108,180,192,212, 40,113, 13,115, 77,199,123, 78, 68,156, 95,206, 40, 47, -223,198,174, 44,241,221, 27,219,156,124,224, 36, 87,215,167,168, 59, 19, 54,138,134,197,141, 57,163, 3, 67,170,206,115,244,158, - 5, 54,222,174,120,224,190,227,220, 94,221,225,246,173, 93,226,160,200, 83,205,206,110,201,201,251,142,243,214, 91, 55, 89, 95, -221,225,192,193,148, 60, 31,114,244,216, 81,118,119,119,121,237,237,203,124,230,199, 63,193, 32,207, 24, 55, 67,158,126,252, 17, - 46, 95,191, 73,219,182, 44,140,134, 84,155, 63,184, 4,210, 36,102,117,117,147, 31,121,228, 97,150, 23, 37,121, 77,247,251,181, -237, 53,233, 46, 4, 8,158, 56,138,133,163,209,118, 56,215, 9,212,166, 20,177,145,223,115,115,123,155,119,174,223,228,251,111, -189,213,195,203, 41,195, 65, 46, 12, 96, 45, 63,171,233,100,230,182,189, 59,103,125,107,155,133,209,136,229,197,197,119,117,169, - 7,151,151, 88, 88, 24,115,242,196, 49, 6, 89, 66, 98, 35,201,124, 86,138, 16, 20,155,187,235,124,246, 11,127,200,111,124,246, -115,252, 89,235,220,233,147, 76,166,162, 25,222, 59, 84,138,170,230,230, 29, 49,193,121,229,181, 55,249,196, 51, 79,243,222, 39, - 30, 3, 5,109, 39,103,192,222, 24, 97,212,171, 97, 86,150, 22,121,235,242, 85,190,250,141,151,184,121,231, 46,127, 90,182,182, -188,184,200,201, 99, 71,246,223,231,197,241,152,199, 30,188, 72, 22, 75,228,172, 72, 48, 5, 45, 10,161,165, 40, 11,238,172,174, -243,250,219,151,120,251,234,117,222,186,116,133,157,233,236,255, 71,182,139,109,132,178,138,163, 43, 43,124,224,169,199,249,248, -135,126, 20,148,230,157, 43,215,249,222, 27,111,115,103,109,149, 23, 95,249, 46,214, 90,254,244,106, 91,201,194, 94, 24, 14,120, -251,210, 21, 62,240,212, 99, 56,231,248,139, 31,255, 8,231,207, 30,227, 87, 94,122,133, 59,117,199,242,247, 18,252,227, 49,119, - 86, 3, 7,159,129,163, 7,143,114,205,141,105,119,183,169,234, 93,174, 69,151, 56,233, 31,227,162,202, 80,153, 2, 98,190, 4, - 76,118, 96,245,115,129,116, 5, 30,126,250, 71, 24,141, 3, 47,111, 40, 62,255, 50, 20,119,198,164,135,224,207,253,243, 67,204, -255,201,199,184,118,233,139,236,108,172,160,149,162,243, 13,229,116,139,233,214, 53,234,114,131, 3,143, 63,205,206,231,190, 65, -148, 85,116, 43, 79,113,244, 68, 70,219, 4,238, 94,131,178,155,178,179,125,135,217,214, 58, 7,238,190,143, 51, 15, 7,238,190, - 10,107, 55, 51,170,119, 52,234, 88,199,161,139, 29,187,241, 6,198, 60, 77,242, 36,156,188,244,139,228, 31,251, 40,147,221,223, -102,118,249,117,238, 92,186, 14, 90, 51,219,221,101,207,180, 69,119, 26,149,200,249, 27, 69, 17, 10, 69,221,118,212,117,133,247, -129,214, 57,234,166, 33, 79, 50,170, 90, 82,202, 20, 26,107, 53, 65, 65,146,166,208,137,181, 47, 65,102,201, 11, 75, 75, 24, 5, -131,108, 0, 10,145,225,150, 21, 89,150, 81, 22, 98,234,133, 66,220,220, 26, 79,156,198,196, 61,176,210,212, 53,174,115,180,147, - 41, 1,137,130, 30,140, 70,180,174,221,151,184, 1,160,100, 76,235,234, 18,107, 4, 1,234,124,199,238,116,210,143,178,216,183, -191,222, 51,237,114,222, 49, 24, 13, 80, 40,148,134,217,108, 78, 20, 25,108,148,224, 90, 7, 72,199, 75,255, 89, 72,177, 18, 32, -244,169,138, 89, 74, 18, 37,236, 89,198,170, 56,238,239, 39,112,157,103,214, 21,253,243, 41, 28,130, 14,198,177, 37,138, 12,222, - 91,105,218, 8, 36,105, 70,150, 37,116,206,211,212,210,252,234,160, 9, 74,145, 70, 41,174, 19, 75, 94, 19, 91, 66, 28, 83,183, - 93, 47, 35, 20,141,126, 85,149, 24,101,176,177,152,225,148,253,187, 50, 24, 73,116, 43, 64,112, 14,171,148,198,196, 49,206, 25, -116, 45, 14,102,131,124,132,177,150,178,169, 80,185, 34, 77,165,106,115,206, 67,112, 2, 9,244, 90,185, 36, 77, 40,166, 19, 90, - 39,142, 99, 89,150, 17,105,141,235, 58,242, 60,163,106, 42,188,239, 24,228,189,253,160,150,174, 59,232, 61, 39,182,132,200,104, -166, 69,137,115, 45, 81,148,145, 36, 57, 85, 40, 8, 90, 73,178,152,181, 52, 77, 13,104, 70,163, 69, 92, 39,196, 8, 23,196, 20, - 38,138, 82,177, 40, 53,154,249,188,192,166, 49, 90,203,188,163,107, 29,243,217,140, 82, 11, 1, 68,107, 57,116,187,166, 69,119, - 29,241, 96, 32,142, 60, 33, 80,183,142,102, 62,195, 36, 9,131,124, 15,142,151,229,157, 72,234,124, 16,120, 89, 91, 77,215, 57, -210, 60,237,117,245,154,160, 3,227,133, 49,179, 89,193,104,152,227,130, 98, 58,157,146, 15, 6,253,220,186,215, 69,122, 40, 93, -129,247, 48, 30, 12,169,186,134,157,157, 29, 70,131, 33, 89,158,211, 52,189, 86,223, 24,154, 90, 60,240,235,186,166,152, 77,241, -206,147,228, 57,214, 90,218,182,233, 67, 10,132,213, 42,145,133, 13,187,219,187, 12,134,226, 0, 86, 85, 21,186,135,173,188,247, - 68,113, 74,158, 89,156,239,104, 27,153,249, 4, 99,208, 70, 54,159,243,142,241,104,132,107, 59,118,167,187,224, 28,117,219, 18, -250, 25,186, 54,134,114, 46,155,116, 52, 24,210, 4,169,136,231,165, 64,246,113, 36, 17,137, 0, 85,213,244, 82, 56,241, 11, 48, - 90,179,219, 54,228,110, 9,174,207,208,193,193,172,226, 59,111,175,113,234,216, 2,195, 40,227,234,198, 28, 87,181,220, 94,159, -177, 84, 5,150, 87,114, 86,215,119, 41,107,199,237, 27,171, 4,167, 88, 28,138,206,253,220,137,101,238,172, 79,185, 17, 2, 71, -207, 30,101,251,237,187,188,121,117,139, 35,247,173,176,190,181,201,175,254, 47,255, 7,222,123,242, 84,124,155, 1,126,250,199, - 63,206,107,239, 92,230,173, 75, 87,185,124,227, 38, 63,188,172,181, 28, 57,188, 66,154, 72,224, 75,100, 77,255, 57, 75, 71,210, -116, 29,117, 93,203,190,141, 44, 73,146, 48, 24, 40,202,121,217,207,181, 52,145, 53, 12,135, 57, 71, 15, 31,102,121,113,204,202, -242, 50,155,189,223,244,193,229, 37,238, 59,123,154,135,239,191,143,241,104,184,239, 94,101,173,228, 40,191,125,245,250,187, 46, - 75, 99, 12, 7, 15, 44,113,242,216, 97,178, 60, 19, 22,179,145,125, 39, 14, 89,112,236,208, 10,191,240,211,159, 98, 60, 26,240, -251,207,191,192,213, 27,183,247,255,142,197,133, 49,159,250,200,135,136,172,161,152, 75,226, 97, 20, 73,168,206, 35, 15, 94,100, - 48,200,120,234,145,135,185,231,216,177,125,190,132, 15, 94, 72,143, 74,147,196, 34,181, 49,218,160,181,140, 49,110,221, 89, 21, -102, 49, 26,221, 51,159, 1, 80,112,225,220,105,158,122,248, 65,182,118, 38, 40, 99, 56,114,112,133,160, 4, 6,221, 51,180,217, -222,217,101,123,119,202,234,230, 38,111, 93,185,206,119, 94,123,131,219,171, 27,220, 94, 93,123,151,116, 13,164,227,127,230,125, - 79,242,151, 62,245, 9,134,195, 33,227,209,144, 36, 18, 57,218,241,163, 71,217,157,205,216,218,149,174,126,143,112, 24,130,168, - 97,130,243,236, 78, 11,234,121,201,225,147,199,201,243,156,149,229,101,126,242,189,143,240,224,209, 49,255,236,245,235,124,251, -250, 29,178, 96, 89,187,241, 26,191,253, 47,199, 16,191, 70,252,123,207,240,232, 79,120,174,253,198,253, 68,250, 57,226,116, 72, -215, 77,248,141,255,203,112,250,231, 58,234, 47, 68, 76, 31,243, 44,166,129, 59,191,103,184,187, 19,248,159,254,118,160, 34,240, - 34, 5, 78, 65,254, 73,207,230,221, 69,174,255, 22, 92,123,253, 58,199,207,124,132,213, 91,223, 97,237,230,139,184,174, 37, 77, - 79,240,193, 79,253, 12, 93,118,158,131,135,142,242,201,191, 81,241, 63,252,103,159,231,214,218,171,160, 98,234,246, 36,201,214, - 97,102, 59, 87,153,172,191,206,206,234,247, 41,103,171, 28,125,248, 89,206, 28, 40,121,167,200, 72,125,198,164,201,113,151, 87, -105,143,122,226,149,187,204,111,127,153,249, 55,127, 12, 19,131,106,142,210, 22, 31,225,222,207, 60,194,201,187,183,184,250,252, - 11,116, 93, 39,103,136, 55,248,224,233,124,139,111, 37, 64,196,123,135,118,244, 16,122,239, 20,169,161,233, 58, 34,107,123, 53, -132,194, 88, 5, 94, 36, 95, 38,137, 25,198,210,200, 41,173,229,146, 67, 16,196, 44, 77,201, 7, 25, 77, 85, 51,153,245, 23,174, - 10,248, 86,148, 65, 38,200,104,119,239, 43, 79,147,148,206,138,100,178,170,106,154,182,197,214, 53, 81, 28, 51,153, 76,208, 90, -147, 13, 6, 88,163,192,119, 36, 73,134,243,158,122, 54,195, 40,141,177, 26, 19, 71,116,181, 72,154,211, 36,161, 40, 10,242, 97, - 78,172, 98,130, 11,104,163,153,236, 76,176, 86,200,189,138, 57,163,209, 8,107,141,232,245,219,142,216,198, 4,235,112, 78, 80, -128,214,183,168, 82,225,124, 71,167, 20,169,181, 56,163,240,157, 71, 69, 9,177, 82, 61, 41,217,161,181,176,228, 85, 80, 4,229, -246, 81, 79, 61, 50,236,236,236,244, 5,149, 39,142,123, 15, 16,163, 40,203,154,178,152,209, 69, 9, 73, 18, 81, 55, 45,150,128, -107, 91,154,182, 99, 48,200,112, 72,162,103,100, 52, 65, 73,190, 74, 62, 24, 17, 37,177, 68,214,246,239,224,124, 94,136, 59, 96, - 64,152,210,179,121, 67,208, 22,172,165,152,207, 80,198,178,184,184,136, 81, 17, 58, 10,140,135, 86,188,251,149, 71, 12,240, 75, -242, 60, 23, 72,222, 8, 45,127,148, 11, 3, 51,202,135, 52,117,205,124, 86,146, 13,114,106,215, 50,153, 76, 5, 48,209, 74,244, -213, 38,166, 85,142,196, 70,120,215,177, 48, 26,225, 28,204,139,153, 48,116,211, 24, 23, 60,117,213, 96, 81, 36, 61,193,205, 7, -153, 25, 27, 99, 49, 90, 51, 88, 92,194, 7,143,199,227, 74,113,230, 49,218,226,219,150, 54,120,138, 98, 46, 50, 7,107,152, 77, -133, 12, 88,215, 53,161, 39,107,204,166,146, 65,235, 67,192, 43, 5,173, 88, 8,214,198,146,143,229, 50,117,149,228, 22,171, 32, - 26,205,225,226, 34,104, 77,219, 84,116,109,203,172,149, 57,164,233, 45, 22,135,163, 81, 15,163,120,201,107,103,175, 99, 13, 61, -116, 99, 89, 24, 47, 50, 47, 75,154,182,193, 55,125,240, 65, 81, 96,202,154, 40,182,184,178,146,138, 47,138,228, 37,176,134,224, - 19,156,106,105,170, 74,120, 11, 93,135,119, 14, 87, 9, 12, 58,155, 21, 12,134, 35,154,166, 98, 62,155,203, 51,217,136, 56,141, -169,102, 5,195,241, 24, 77, 96, 62, 47,165,176, 82,138,182,235,104,157,200, 79,172,181,120, 15, 77,112,216,216,146, 14,135,212, -187,187,236,205,193,147, 56, 38,120, 49, 67, 0,169,111,235,170,162, 10, 97,191, 51,247,222,227,141,161,154,205, 4,154,243,189, -113, 72,240,228,217, 0,155, 88,142, 45,122, 88,182,196, 71,206, 81, 94,223,228, 64,100, 40,118, 43, 14,223,119,152,237,237,130, -137,107,152, 77, 28,179,162,225,206,180, 96, 82,117,196,145,226,192,129, 69,108, 98,185,118,121, 29,140,165,213,138,225, 88,138, -160,119,174,174, 83, 57,207,177,195,203,100, 11, 75,236,108,108,115,254,204, 25,218,174,225,236,169, 83,180,181,116,228, 85,221, - 16, 27,241, 33, 88, 24,143,216, 91,214, 90,158,124,232, 65, 62,244,222,167,184,120,254,156,124,182,192,215,191,253, 93,102,197, -140,251,239, 61, 75, 18, 11,207, 97, 15, 74, 22,185, 33, 24,212,254,124, 89,107,177,161,221,220,217,165,106, 91,134,121, 74, 81, - 36,236, 78,166, 92,189,121,155, 39, 31,121,112,255, 66,239,218,134,155,183,215,120,225, 91,223,225,247,191,252, 60, 74,139,235, -218,222,202,211,148,149,229,101,150, 22, 22, 56,188,180, 68, 22, 71, 84, 61, 27,188, 85, 98,181,185, 59,153,242,235,191,245, 59, -124,233,143,255, 4,173, 68,151,189,231,185, 62, 30, 14,185,126,235, 54, 11,163, 1, 93,231,101,164,134,196, 62,162,224,208,129, -101,242, 44,103,113, 60,164,105, 26, 26,165, 69, 45, 16,216,143, 76, 21,111,117, 67, 8, 74,194,152,246,139, 14,201,112,184,120, -246, 20,131,108,192,116, 94,112,119, 99,139,219,107, 27, 60,254,224, 3,128, 92,180,117, 85,147,196, 81,207, 31,144,189,214,117, - 29,175,189,245, 14, 95,121,225,235,188,113,249, 42,127,214,210, 90,243,119,255,234,207,225, 58, 97, 96,167,113, 76,240,210,177, -188,252,234,235,188,242,198, 91, 36,214,188, 11,110,223,155,189,106, 5, 79, 60,246, 16,223,122,245, 13,110,220,190,195,249,123, -207,240,228,253,231,249,224,189,199, 56,180,148,243, 15,175,108, 19, 31, 60,135,223,250, 58, 42, 93,224,238,237,215, 65, 93,225, -228, 7,150,120,253, 91,151,248, 11,159, 58,193,123, 46,156, 96,251,234, 18,118, 62, 35,184, 17,223,187,253,107,152,223,252,187, - 44, 28, 9,124,247, 87, 94,231,246,157,215,217,184,241, 26,143, 61,249,119,136, 89, 33, 9,138, 7, 85,198, 21, 26, 54,232,168, - 6,160,199,129,118, 82,113,253,234,175,241,200, 19,255, 4,251, 12, 84,110,135, 39,223,191,200, 19, 31, 41,184,178, 61, 96,237, - 69,120,243,102,206,127,241,191,127,140,111,252,198, 38,191,247,111,255, 29, 75,135, 78, 18,174, 4,234,122,135,205,181, 87,169, -230,119, 24,143, 30,230,241,135, 21, 21,158,221, 78, 81,198,129, 16, 6, 84, 37,180, 87, 59,226,131, 45, 59,238,155,184,111, 93, - 96,144, 46,208,185, 9,235,119, 54,185,252,198, 75, 60,251,247, 62,192,195, 23, 46,114,243,235, 95,231,237,223,255, 3,138, 98, - 34,151,156,142, 8,157,167,168,103, 56, 39, 40, 94,146,196, 52,117,189,223,232,196,153,161,172, 43, 84, 35, 35, 38,107, 45,206, - 73,122,155, 15, 98, 21, 27,199,113,223,181, 54,116, 33,144,198, 63, 32,128,197, 73, 66, 76,130,243,158,214,181,196,217,128,162, - 40,240, 94, 10,200, 40, 18,213, 85, 93, 74,211, 6, 66,208, 46,138,130,114, 62, 23,117, 80,150, 98,163, 24, 90,209,131, 43, 27, -211, 53, 29, 38, 50, 12, 70, 35,138,121, 73,221, 54, 36, 74,100,201,113, 8,146,229, 62, 24,210,204, 43,154,206, 17, 69,110,223, -232,200, 40,141,138, 98,202,178,100,103,119,135,225,104,132,213,146,152,233, 67, 75,235, 2, 10,136,147, 24, 26,176,177, 65, 57, -131,111, 42,140, 49,164, 90,138,144,182,146,164, 74,221,105,148,134,186,172, 72,211,140,162,156,147,245,176,121, 23,246, 66,172, -212,254,216, 35, 77, 19,180, 6,173, 52,214, 40,186, 22,140, 22, 15,253,182,107,104, 59, 48,218,160,172,166,152,149, 36, 89,194, -104, 48,160,109, 27,178, 36,195, 19, 48, 64,235, 68, 78, 92,150,165,164,131,246,103,144,185,231,212,233,127,209,118, 45,121,146, -136,137,125,112, 68, 70,230,169, 33, 4,242,193,128,249,188,196,251, 32,240, 45, 34,141,138,250, 42,190, 40, 68, 86,102,209,164, -153,248,141,139, 5,169, 24,166, 52,109, 77,150,101,180,173,104,219, 65, 32,184,170,107, 72,147,140,121, 81,160,181,161,235,106, - 34, 43, 49,164,193,131,178,146,176, 22, 20,232, 32,217,185, 85, 45, 23, 89,231, 28,227,133,133,125,168,196, 90, 75, 85, 86, 68, -145,101, 62, 47,145,168,209, 78,146,132, 50,113, 78,155, 20, 5,206,121, 49, 76,209,154,214, 59, 33,148,161, 36,164,164,169, 81, -222,161,148, 65, 37, 9,202,106,218, 89, 65,112,253,191, 83, 98, 92, 19,156, 35,205, 68, 50, 50,200, 7, 12,134, 35,170,121, 73, - 64,186, 88,165,228, 32,108, 59, 71,154,164, 82, 17,183,130,110,120, 15,222,139,252,192, 24, 45, 94,218, 74,245, 7,167,196, 78, - 14, 70, 3,108, 36, 95,206, 96, 52, 18, 82, 75,127, 56, 42, 20,109,183,167,247, 84,224,122,212, 32,182,178, 65,250,138,115,188, -176, 64, 28, 75, 42, 94, 93,149,196,145,165,170, 42,230,243, 57, 54, 18, 43, 82,133,204,157, 66, 8, 20, 69, 65, 85, 85,253,104, - 66,226, 7,231,179, 57, 81, 44, 16,113, 80,138,241,194, 2, 33, 32,151,138, 86,196, 81, 66,108, 13, 45,142,224, 97, 60, 26, 73, - 48,194, 64,224,254,182,235, 24, 13,135, 36,177,152, 47, 88,107,153, 87, 37,143, 28, 55,252,211,103, 15,160,171, 6,134, 9,147, -181, 25,151, 39, 45,247, 28, 95, 36, 51,210, 73,230, 73,204,242,193, 5,186,174, 99,107, 86,179, 51,235,208, 26,246, 36,102, 55, - 54,167,140, 53, 68,163,148, 91,243,138, 99, 71, 14,160,124,199,218,214,132,241,161,227,216, 19,143,176,188, 48,102,107,119,151, -181,141, 77,140, 86, 44, 45, 46,162, 16, 43, 99, 31, 2,183,239,174,243,237,239,189,198,238, 76,180,224, 43, 75,139,220,123,230, - 36, 71, 15, 29, 98,105, 60,139,139,172,119, 0, 0, 32, 0, 73, 68, 65, 84,162,115,158, 59,171,235,124,241,185, 23,120,253,237, - 75, 92, 60,119,134, 56, 22,133, 68,158,103,162,123,245, 93,207,236,223,123, 47, 68,122, 98,181, 97,109, 99,131, 43,215,111,242, -202, 27,111,208,118, 29, 39,143, 31, 67, 41,120,252, 61,247,115,248,208, 10, 74, 41,202,178, 1, 45,146,196,229,165, 69,222,190, -114,109,255, 98, 2, 33, 76, 94,187,125,139, 83, 71,143,114,226,216, 81,146, 56,197, 7,135, 67,244,227, 1,120,251,202, 53,190, -246,205,111,113,253,214, 42,117, 43,233, 93,135, 14, 44,243,240,197,251, 56,125,207,113,142, 28, 92,225,208,242, 50, 54, 50, 40, - 52,179,162,160,236, 17, 20, 33,243,196,228,121,142,181,226,155, 93, 85,226, 58,232,189,200,247,234,170,162,115,129,171, 55,110, -113,229,214,109,110,221, 89,101,214,135, 99,164,113,204,211, 79, 62,198, 79, 62,251, 33,126,228,177, 71, 56,117,252, 24, 7, 22, - 23, 88, 88, 24, 51,239, 11, 79,239,101,134, 46,102, 35,226,190,168,128, 51, 39,142,243,206,245,155, 92,190,118,131, 31, 94,143, - 62,112, 63, 15, 93, 56,207,229, 27, 55,248,169,143, 63,203,169,147,199,233,218,134, 36,142,241,206,243,230,229, 75, 20, 69,197, -239,124,225, 75,124,247,181, 55,251, 3,243,221,171,115,142, 44, 77,121,255, 19,143,242,157,215,223,228, 99,239,123,140, 95,250, -232,251, 24,159, 60,205,175,110,182,172,220,255, 44,199,142,222,199,139,191,251,235,184,162, 99,118,103,155,248,158,154, 52,177, -236,110,214, 52, 15, 62,200, 79,221,223,241,226,151, 15,226,210,183,105, 26, 75, 83,236, 50, 81,175, 49,172, 31,227,254, 95, 60, - 4,119, 78,243,137,159,249, 40, 79,189, 55,231,101,173,240,195,146, 57, 26,255,102,198,246,215, 82,118,239, 40,154, 29, 77, 93, - 40, 86,239,190,200, 79,253,226,251,249,229,159,115,220,169,115, 46,126,180, 33,197,179,144, 26, 78,156,107, 73,189,230,187,159, - 77,232,218, 5,182,107,197,157, 75, 47,225, 66,199,189,143,126,154,195,135, 31,229,224,209, 21, 46, 60,253, 75, 60,249,151, 74, - 94,233,198,172,126, 45, 80,108,109, 51,153,222,164,174,118,232,234, 9, 21, 19,182, 54,111, 17, 85,135,169,154,154,217,228, 58, -211,233, 13, 54,215,175,177,184,226, 57,120,241, 2,201,129, 3, 28,185,112, 63,211,155, 55,169,166, 19, 92,112, 12, 7, 66, 98, -171,235, 70,152,237,168, 30,238,214,236, 69, 69, 91, 43,179,104, 99, 45,170, 47,220,173,149, 68,207, 40, 18, 47,143, 16,130, 92, -140,113, 76, 8,162, 13,223,243,209,104,234, 22,148,199, 96, 33,136,239, 66,158,231,162, 74, 42,107, 80, 90,206,138,180, 87, 69, - 41,241,126,183, 54, 2,223,187, 24,182, 29,193, 24,130,119, 56, 15,179, 98, 38, 90,123,231,208, 90, 17,153, 8,173,229, 29, 44, -138, 2,165,165, 64,109,218, 22,107, 12,202,104,217, 67,190,143, 82, 86, 10, 3,248, 32,234,161,186,105,240,190,219, 15, 8,114, -174, 5,175,168,219,154,186,110,241,248,158,103,208,107,199,219, 86,172,208,179,132,174,237,208, 70, 9,233,206,119,194,245,242, -129,166,173,169,234, 26,143,100,146,212, 85,141,239,156,248, 7, 68,113, 79,178, 53,100, 89, 70,211,180,251,168, 5, 94, 46,117, -239, 61,218,168,254, 61,172, 17,137,184, 34,141, 34, 65, 68,230, 37,174, 31, 3, 39,177, 52,171, 16, 48,103,238,189,247, 95, 4, - 68,170,211, 57,135, 65,161,140, 84, 64,131,129,196,211,165,105, 74, 28, 9,115,213, 40, 67,156,198, 68, 61,227,218, 88, 75,221, - 84,168, 32,155, 1, 37,158,194, 62,132,158, 36,213,146,101, 41,105,154,146, 38,146, 65, 94,204, 75,226, 36,162,174,106,134,163, - 33, 74,107, 36, 8,165,235, 9,107, 2, 43,196,113, 34, 17,166, 94, 98, 97,211, 36, 37,142, 83,210, 36, 66,161, 41,155, 18,107, -236, 62, 60, 35, 95,166,196,126,182,141,176,238,187, 78, 14,170, 16, 2,113, 26, 67,128,186,105, 48,214, 96, 35, 43,158,240,229, - 28, 81, 28,123,241, 38,118,142,208,121,240, 14,237, 29,161, 19,153, 86,232,187,249,206,181,189, 60,164, 55,127, 25, 14,101, 19, - 26, 35, 5,143,213, 68, 86,152,142, 77, 93, 19, 69, 49, 74,137, 29,224, 96,144, 17, 69, 9,157,151,248,215,170,239, 32,247,204, -253,247, 42,225, 56, 21, 8, 81,136, 38, 34,111, 51, 70,147,196,169,144,141, 98,201,180, 79, 83,145,236,165, 73, 74,146, 36,189, -247,179,140, 13,186, 32,210, 15,109, 35,154,170,162,115,142,186, 44,169,189,167,154,205,228,231,151,194,102,199, 43,218,182,166, -169, 36, 26,208, 70, 18, 0,163, 8, 88,107,137,226,132, 56, 22,103,184,124, 56,144,240, 25,160,173, 91,140, 49, 12, 70, 67,234, -174,193,117, 45, 73,146,226,188, 16,240, 58,215, 71,106, 58,199,133,227, 41,255,250, 23, 14, 99, 38,115, 56,182, 64,245,230, 29, - 94,248,246, 77, 50,173,216, 94,157, 50,155, 87, 28, 61,177,204,247, 46,111,177,180, 52, 96,101,101,140,153,149,160, 3,211, 54, - 80,151, 29,149, 3,213,182,140,148,112, 54, 34, 99, 88,157, 52, 52, 65,225,234,150, 93, 63, 38,189,231,126,234,170,226,157, 43, -215,248,192,143, 60,206, 7,158,124,140, 98, 94,226, 93,160,238, 90,118,103, 83,222,186,114,141,111,188,242, 61,246, 36, 88,214, - 90,238, 59,125,138, 7, 46,156, 35, 73, 18,118,119,119,249, 87,255,230,255,228,202,141,219,156, 63,125,146,251,207,223, 75,192, - 99,148, 34,142, 4,177,168,155,150, 14,241, 82,104,157,239,173,122, 21,119, 55, 54,248,198,183,191,207,139,175,124,143,186,172, - 9,192,210,226, 2,207, 60,245, 4,239,125,244, 81,178, 76,120, 42, 85, 83,115,227,246, 93, 46, 95,191,201, 75,175,124,247, 93, - 76,121,173,224,211,159,248, 40,255,248,151,255, 22,239,185,112,158, 73, 49,163,110, 91,108, 47,169,116,125,199,123,103,109,131, - 83, 39,238, 97,105,113,196,180, 40,122,111,111, 56,127,246, 20, 63,250,212,147, 92, 60,127,142, 3,203,139, 12,178, 92,242, 17, -162, 72, 56, 22, 73, 66,150, 74,108,234,158,146,165,109, 91,202,170,198, 7,233, 26,246,238,203,189,121,252,193,165, 5,214,182, -119,184,210,203,230, 66,240, 60,250,192, 69, 30,121,240, 1, 78, 29, 59,194,193,149,101,210, 52,161, 44, 43,138,249,156,121, 15, -203, 14,178,108,191,224,126,227,210, 85,254,224,249, 23,248,245,255,240,255,112,249,218, 77,218, 31, 58,204,146, 52,230,239,255, -226, 95,166,110, 26,214,183, 39, 60,253,196, 35, 44, 12,135,100,105,198,242,226, 2,198,104, 94,123,251, 10,191,245,249, 63, 96, -123,103, 71, 84, 8, 63,180,100,188,165,176, 81,196,218,198, 38, 31,121,250, 71,120,232,220, 73, 62,118,246, 24,238,190,251,249, -239, 46,223,226,208,217,247,242, 96,125, 31,201, 84,177,182,170,112,217, 14,167, 79,125,152,144,237, 98,188,103,102,103,220,252, -146,225,131,127,238, 32,241,131, 67,110, 60, 55,161, 93,154, 83, 77,230, 56,213,144, 44,150,164,151,207,112,225, 17,195,135, 62, -212,224,142,196, 68,163,130, 11,196,220,104, 18,166,135,119, 89, 63,152, 18, 94, 87, 84, 46, 80,236,108,179,122,231,219,188,241, -234, 27, 92,237, 46,112,241,169,132,197, 92,116,205,101,168,153,105,199, 36, 41,113,183, 50,254,248,181,127,205,179,255,232,103, -249,204, 63,120,130, 79,254,149, 31,225,195,207, 46,112,236,147,247,112,248,201, 71, 97,235, 46, 69, 50, 38, 73, 34, 54,190,163, -216, 90,187, 75, 61,223,160,169,119, 41,231, 59,120, 61, 97,178,118,139, 60, 62,135,243, 80,206,215,152, 78,110, 81, 79,111,147, -100, 53,199, 31,188, 72, 51, 47,209,113,202,241,135, 31,129,106, 78,181,185, 73, 20,217,126,174, 30, 75, 33,215, 27,103, 69,145, -216,128,167,169,152, 7, 89,109, 8,136,219, 28,200,236,121,255,115, 55,154,160,250, 4, 51, 39,100, 94,101,164,136, 52, 86, 20, - 20,109,235,228,255,137, 13, 6, 69,219, 73,167,158,246, 42, 31,231,189, 52,110,173,116,247,243, 66, 92, 69,155,174, 33, 77, 82, - 68,242, 41,217,237, 98,101, 43, 92,173,178,148,200,227,170,174,136,172,149,182, 81, 9,135,165,235, 58,178, 60,199, 70,194,214, - 55, 61,226, 36,169,107,209,126,179, 97, 35,131,247, 10,163, 85,175, 58, 82, 52,181,152,236, 24, 43,114, 57,171, 34, 90,223,137, - 52,218,121, 76, 18, 99, 35,205,222,172,187,109,228, 50,175,234,154, 36, 75, 9, 65, 92,245,140,214, 40,132, 7, 16,199, 17, 1, - 25, 71,181,173, 52,181,194,115,242,196,169,248,181, 40,163,247, 97,255, 44, 77, 81,202, 96,180,218,127,223,172, 86,116, 72,234, -169, 60,127,140,115,162,100,144,239,197, 98,147, 36, 37,215, 18, 0,162, 80, 44, 46,141, 49, 38, 66, 43,153,243,213,243, 10,175, - 68, 42,224,189,124, 96,174,233,112,157,216, 96, 58,231, 48, 74, 30,102, 54,155, 74,133, 20,196, 57, 43,201, 36,242,179,170, 29, -145,145,206, 34,138, 98, 70,227,177,200, 8,140,103, 94, 86,242,133,181,142, 44,143,161,131,166,110,100,134,216,182, 68, 73,132, -213, 25, 93,215,201, 37,210,212,251, 29, 82,150,231, 76,167,194, 72,175,235, 90, 36, 56, 74,114,202,199,227, 49,206, 57,118,118, -118, 72,123,187, 85,215, 58,130,250,255,168,122,211, 88,203,178,243, 60,239, 89,107,237,241,204,247,222,170, 91,195,173,169,107, -232,170,174,234,169,186,155,205,166,154, 51, 41,153,163, 72, 73,212, 96,203,176, 4, 7,177, 29, 72, 78,144,252, 9, 18,248, 7, -129,196, 72,144,193, 1,108, 35, 65, 16, 40, 48, 98, 8,134,172,216,146, 40,137,164, 68,138,115,179,155, 61, 86, 15,213,213,213, - 93,243,116,231,225,140,123, 90,123,173,252,248,246,189, 98, 14, 80,232, 31, 85,125,207, 61,231,236,179,215, 90,239,247,190,207, -235, 64, 41,108, 89,225,195,128,186, 42, 9, 7, 61, 92, 86,224, 74, 7, 65, 64,171,215,199, 40, 24, 77,167,248,218,162,146, 0, -109, 66, 18, 99,168,112,152, 70,194,156,102, 2,194,137,162,184,201,125,202,236, 85, 16,185, 51, 64, 19, 54, 52, 34,235, 28, 74, - 5,140,199, 51,210, 52, 33, 48, 10, 23,199,146, 55, 71,129,119,114,234,243,224,113,148,121, 37,198,140,170,196, 4, 34,137,197, - 73, 66, 85,228,228,121, 73, 18, 71, 68,145,180, 8, 69, 97,140,199,145,101, 57, 38, 12,168,242,146,218,215,205, 13, 53,145, 11, - 93,107, 58,105,202,120, 58, 69,141, 70,224, 61,114,165, 75, 75, 26, 85,137, 52,255, 90,146, 48,197, 4,187,108,255,148, 34,207, - 69, 66, 85, 96, 66, 41,127,241,181, 72,242, 50, 27, 50,148, 85,221,176,255, 97, 60, 25,209,105,119,154, 83,167,195, 53,114,214, -239,127, 34, 37, 24,213,248, 78,194,242,207,110,242,131,159, 92,167,221,107, 99,125,205, 96,177, 67,105, 45, 87,223, 91,163,104, -165,220, 29, 23, 20,171, 83, 86, 55, 11, 58,113,128,179,142, 35, 7, 98,110,109,207,232,104,197,194,254, 30, 53, 10,159, 89, 22, - 18,184, 55,181,168, 72, 49,216,183,159, 52,137,121,225,229,183,248,214, 15,126, 76, 81, 85, 92, 56,115, 70, 12,109,174,198, 57, -145,165, 23, 6, 18, 15,219,108, 28,220, 71, 15, 31,226,196,177, 35,180,211,148,178, 42, 57,184,127, 31, 23, 31,189,192, 31,253, -249,183, 64, 41,110,221,189,195,225, 3, 7,161,149, 48,153, 73,254, 31, 64, 21, 18,107,195,139,185, 76, 43,205,202,218, 6, 63, -125,245,181,255, 95,101,168, 54,154,135, 79,158,216,203, 89, 59, 47,204,248,126,167, 77, 20, 73, 86,251,231, 31,231,206,156,166, -211,110,113,127,121,149,125,131, 30,175, 93,126,151,141,205, 33,167,142, 31,225, 19,207,125, 72,190, 99, 78, 72,135, 63,124,241, -103,188,252,246,187,236, 52, 6, 59,231,225,221,171,215, 56,125,228, 8, 79, 94, 56, 71, 18,202, 6, 51,138,130, 61, 37, 64,164, - 86,185,161,238,150,108, 84,181,100,155,173,149,215, 81,217, 10,101, 26,185,213,123, 94,121,251, 50,183,126,238,100,125,246,212, - 67,156, 58,113,140,162, 40,216,254,185,134,187,105,150, 81,215, 53, 73, 20, 17,104, 77, 85, 21,108,108,101,220, 91, 89,227,218, -205, 91, 76,178,156,162,170, 25,142,199,164,105,202, 63,249,237,223,224,238,131,101,126,242,202,235,196,105,204,210,225, 67,252, -250, 23,127,145,118, 75,188, 42,157,118,139,241,120,202,226,226, 2,199,143, 28, 2,239,246, 16,186, 63,255, 8,130, 64, 22, 27, -239,152,235, 47, 48,151,134,252,183,191,243,219,252,171, 91,247,248,118,112,138,207,252,234,111,208,115,112,184, 5,151,223,208, - 60,244,249, 37, 6,219, 31,229,208,103, 15,243,157,127,209,197,219,159,225, 70,235, 12, 55,127,196,255,240,191,124,136, 47,253, -151,158,135, 31,254, 36, 55,236, 79,169,247, 77,201,242, 49,107,179,235,164, 75,251,137,151, 31,231,210, 56,161,211,181,188,243, - 39,109,190,240, 21,207, 91,225, 20,187,222, 39,177,158,173, 20,220, 20, 50, 63, 69,123,205, 35,207,126,137,131,189, 46,243,139, - 21,181,106,209,242, 51, 22,116, 76,225,193,228, 49,171, 78, 17,110,244, 41, 94,200,104,253,122,139,162,140,217,140, 50, 92,165, -176,151, 60,213,214, 1,174,127,235, 18,118, 27, 86,183, 53,206,230,148,217,144,186,154, 82,102, 19,170,157, 21, 58,189,148, 90, -205,176,211,154,188, 24, 83,229, 59, 84, 46,103,231,218, 10,161, 43, 8, 90,210,152,166, 12, 28,255,212,167,241, 42, 96,227,221, -119,176,174,162, 46,228, 32,161,140, 34,159,230,120, 60,113,146,160,117, 64,150, 77,240,181, 44,122,104,129, 70,201, 88, 77,174, -165,186,150,150, 48,165, 20, 69, 89, 99, 66, 69,164, 3,156,134,160, 33, 71,186,154,166,161,173,148,195, 71, 16, 82,185,154,172, -200, 8,117, 68, 24, 5, 88,229, 8,131,128,241,112, 72,156, 36, 40, 20,237,118, 87, 24,236, 74,137,209, 52, 47,136,162, 4,144, -231, 47,138, 98,207,109, 63, 28,142,196,165,239,133,103, 16,132,162,176,230,121, 69, 24,106,134,195, 17, 73,146, 48,155,137,170, - 27,198,205, 56,203,104, 90,105,194,116, 60, 38, 43, 10,226, 36, 38,140, 35, 57,189,123,161,235, 69,122,215,104,106,137,211, 72, -154,219,208,120, 95,211,110,181, 41,109, 9, 78, 99,156, 69, 41, 41,220,154, 85, 5,210,178,230, 1,143,247, 10,188, 71, 7,162, - 16, 79,167, 83, 60,158, 52, 73,246, 20, 68,175, 60,206,122,218,237, 20, 91, 8,152,199,123,143, 64,104, 68, 97, 11,189,167,174, -196, 67,146,166, 41, 65,144, 80, 22, 2, 61, 83, 90, 17,136,105,172,102,126,110,110,239,201,140, 17,204,158, 54,134, 36,149,156, -180, 2, 20, 34, 21,214, 86,161,226, 64,226, 9,214, 33,155, 54, 37,174, 7, 45,192,211,201,120, 76,145,231,180,187, 29, 66, 19, - 48,203,102, 40, 20,181,243,141, 99, 82, 62,112,173,161,180,130, 67, 45,242,130, 86,218, 34,203,103,212,153, 84,139,182,187,109, -177,235,231, 57,161,145,211,105, 68,136,245,142,233,108, 74,156,164, 68, 70,227,148,107,230,214, 70, 22,237, 74, 98,119,237,118, -155,162,144, 17,128, 49,130, 59,245, 74, 73,169,188,243, 12,230,230, 41,203,130,202,123, 76,171, 77,191,211,145,211,184,149, 66, - 13, 19,134, 13,152,223, 54, 51, 73, 8,146,132, 26,168, 93, 77,167,221, 2,106, 84, 24,144,132, 9, 14,135,171, 4,177,106, 66, - 67, 62,203, 81, 72, 37, 95,171,213, 34, 43,144,153, 75, 32,241,191,178,170, 4, 14,225, 20,179,166,155, 61,138, 18,234,186,162, -214,154, 94,175, 39,239,151, 82,120,231, 24,141, 70,236,214, 83,182,124, 10, 94,177,189,189,141,115,130,156,149,249,167, 35,136, - 34,140, 87, 84,149, 37,136, 34,162,184,201, 92, 55, 55,110,226, 24,202, 18,156, 5,235,113,117, 13, 90,163,125,205,116, 60, 69, -199, 82,172,209,233,180,136, 91, 45,138, 60,167,246, 66,140,195,203,162, 48, 30,143,201,139,130, 36, 77,165,205,205, 86,152, 32, -160,219,238, 50, 28, 15,137,130, 0,175, 21,173, 40, 37, 12, 20,199,146, 16, 52,168,194,241,198,219, 43,244, 15,116, 49, 24,230, - 83,195,212, 91,236,250,136,238, 92,151,253, 70,177, 98,165,134,176,172, 42,124,172,137, 59,154,237,202,177,216,142,104,121,199, -129,195, 3,148,175, 25,205, 42,214, 39, 5, 40, 71,156, 24, 14, 28, 62,202, 95,189,248, 50,127,252,231,127,201,234,198, 38,115, -189,110, 35,185,149,148,149,197,213,150,173,225,136,247,110,220,100,123,231,111, 43, 61, 15,236,155,163,215,105,145,103, 37, 30, - 89,164, 55,119,134, 56,231, 24, 78, 38, 28, 90, 60, 64, 96,116, 67,135,146,215,175,180,240, 0,234, 90,230,208, 89, 94, 16, 69, - 1,251,231,230,248,248,115,207,240,234, 91,239, 74,129,145, 82,204,117,187, 28, 95, 58, 4,138, 70,222,182, 24, 19,178, 49, 28, -241,202, 27,111,178,186,182,206,207, 63,214, 54,183, 88, 93,223,228,232,210, 18, 89, 89, 17,152,128,183,223,123,143, 31,191,252, - 50, 65, 16,240,216,185, 51, 84,182,230,237,119,175, 10,229, 80,137,167, 65, 43,120,236,225, 51,124,229,115,159,225,216,225,195, - 24,165,152, 21, 57,117, 19,195, 83,205,185, 88, 41,201,196, 58, 39,114,170,173, 69,213,170,172,148, 89,224,100,196,166,148, 66, -149, 21, 31,220,184,201,194,160,223,196, 67,229,241,236,147,143,243,200,169,135, 72,226,132,218,213,123,244,183,221,140,127,191, -219, 38,137, 19,194, 64,138,105,130,181, 13,174, 92,187,201,207, 46,189,185,247, 51,178, 44,227,245,203,239,242,143,254,238,111, -208,237,116, 41,202,138,115,167, 78, 48,156, 76,169,109, 77,146, 36,236,159,159,227, 39,175,190,206,127,247, 47,255, 15, 62,250, -236, 51, 66, 96, 12, 4, 39, 90, 86,146, 32,208, 90,203, 38, 34, 8, 56,123,242, 56, 39,143, 28,230,183,158,125,148, 63, 88,219, -230,221,197,231,249,252, 83, 79,241,181, 1,252,137, 85, 96, 70, 92,157,188, 69,111,249, 34,203,179, 0, 51,132, 36,254, 8,203, - 27,223,165,123,120,145,104,238, 41, 30,188,251, 45,254,244,159,127,140,143,255,126,155,163, 47, 61, 79,112, 36, 96,109,120,131, -233,120,147,187, 15,126,138, 58, 81, 48,254,246,121, 78,253, 90, 27,245, 17,120,153, 9,199, 49,220,222, 55, 68,189, 50,192,110, -123,214, 86, 87,184,121,245,155,116,187,199,120,254,107,135,184,252,141, 26,151,133,180, 91, 50,103,173,128,241, 78,200,164,242, -204,214, 21,249, 84,115, 96, 95,202,198, 79, 61,135,159,243, 82,217, 25,230,232, 15, 39,184, 91, 26, 55,105,161, 30,186, 77,118, -231, 3,182, 87,161,182, 83,202, 98, 19,197, 22,170,220,102,233,244,211,180,188, 98, 56, 27, 82,230,219,104, 95,163,169,153,236, - 76, 48, 58, 32,216,127, 1, 51,155, 50,219,186,134, 41,106, 78,127,230,211,100, 91, 27,108,221,190,133,197, 66, 73, 99,242, 18, - 80, 77,228, 61, 89,150, 19,234, 16,111,100,228,163,188,172, 3, 90, 43,130, 72,218,206,112, 30, 33, 94, 66,171, 45, 17,174,170, -217,244, 87, 85, 73,237, 61, 97, 24, 0, 6,231, 5,111,154, 91, 75, 16, 70, 40,165, 41,203,156, 98, 55, 69,233, 37, 30, 7,226, -135,210, 70,209,233,244,152,101, 51,180, 21, 21,160, 40,132, 88,167, 3,213,156,180, 67,146, 56, 98, 50,153, 82,149, 21,131, 65, - 95,212,138,188,108, 64, 93, 33, 98, 51,145,180,142,110,174,187,162,144,126, 13, 81,121, 51,226, 84,224, 76,211,233, 12,188, 36, -120,146, 52, 37, 14,165,232,198, 24, 67, 18, 39,104,165,153, 76,166,120,239,136,195,144, 56, 77, 8,116, 32, 41, 40, 15, 85, 81, -162,180,168, 2, 74, 25,140,169, 9,180,192,194,148, 18,192,151,242,158,184,149,160,240,100,179, 76,156,241,113, 72, 89, 57,116, - 68,163,214,166,204,242,137, 28, 24,172, 0,107, 64, 73,143, 74, 16,160,117,192,184,241, 71,116,187,109, 64, 24, 48,230,161, 51, -103,190,222, 74, 99,116, 20, 80,219,166, 61,167, 16, 70,174, 45, 45,227,241,136, 60,207, 49, 90,203, 34, 26,135,104, 35, 11, 71, - 86, 22,164,137,104,249, 85, 85, 82,213, 22,235,100,151, 47,243, 22, 1, 14,104, 52, 73, 26, 19,199, 9, 26,141,214, 30,163,164, -118, 51,142,147,189, 57, 77, 24,134,248,210, 50,157, 77, 37, 75,238, 29, 69,150,147,101,210, 68, 83, 86, 37,202,104,180, 50,104, - 45, 50,168, 81, 26,175,197,136,230,125, 3, 9,177, 53, 56,203,116, 58,145,216, 89, 96,240, 90, 34,105,114,129,133, 36,105, 74, -218,106,161,209,130, 3, 12, 3,186, 29,169,199,139, 34,233,140,175, 75,185,240,226, 56, 34, 8,197,172, 22,197, 82, 95, 42, 25, -118, 40,138,146,170, 20, 28,161,245, 78,162, 25,174,166,211,105, 19, 24,105, 84,139, 99,145, 97,156, 23,127, 64, 24, 4, 12, 71, - 35,138, 82,164,156,178,148,190,245, 60,147, 29,114, 59, 77,165,117, 14, 57,205,149,133,244,203,187, 38,215,168, 43,137, 0,162, - 20,210,107,111,169,189,163,174, 45, 81, 20, 82, 90,233, 10, 54,129,220,194,203,170, 32, 52, 1,217,108,134, 43, 75,112, 78,200, -111,200,226,132,131,164, 97,144,123,231,240, 10,218, 29, 49, 79, 41,173,165,231,216, 9,121,202, 89,105,233,114,222,211,106,181, -196,163,160, 20,217,108,134,215,178,153, 42, 43,193, 83, 86,101,133,242, 96, 93,141,114,150, 95, 28,204,232,183, 67, 70, 43, 27, -172,110,103, 92,190, 61,100, 33, 9,248,204, 87, 47,114,237,210, 29, 90,161, 66,185, 26,141,167,152, 9,111,252, 55, 63,247, 4, - 79, 62,114,152,160, 42,184,180, 81, 48,208, 80,100,150,253,139, 29,214,134, 25, 87,223, 93, 33, 9, 20,251,186, 9,105, 89,177, -239,153,207,147,121,153, 29,223,190,191, 76,150,229, 92,124,244,188,220,104, 42,139,117, 53, 97, 24, 96,109,205,234,250, 22,195, -241,152, 36, 73,120,244,220,195,180,211,132, 52,137,153,229, 5, 87,174, 93,231,238,253,101,134,147, 9,157, 52,101, 99,123,167, -185, 38,197, 23, 33,134, 54,217,160,218,170, 34, 47, 42,102,179, 25, 97, 16, 96,157,227,237,171, 31,176,186,182, 78, 43,141,233, -245,186, 92,188,112,142,135,142, 29,193, 24,131,171, 93,227,124, 23,185,238,206,253,101,150,215,183,104,110,107,128,196,129,246, - 45, 12, 88, 58,120,128, 99, 71, 14,242,228,249, 71, 88,152, 27,176, 51,154,176,188,182,206,160,221,161,149,198,164,105,139,155, -247,238,115,227,246,109,106,231,152, 27, 12,216, 55, 47,115,237,253,243,115,196, 81, 36,167,128,102, 3, 89,213,174, 25,171, 64, - 16, 72,148,169,174,101,246,184,203,249, 14, 67,169, 84,149, 58,224, 12,175, 60, 63,126,245,117,254,227, 55,191,203,221,101,193, -215, 62,117,225, 28, 79, 63,254, 40,131,110, 71, 70, 1,205,168, 75, 33,210,103,175,211,226,228,209, 37,230,251, 61,217,144, 7, -134,215,223,124,135,245,237,109,225, 86, 52,180,195,135,142, 31, 37,208,134,253,115, 3,158,188,112,142,178, 44,200,203, 10,156, - 35, 77, 98,226, 40, 38, 12, 3,150, 14, 30,224,219, 63,124,129,191,248,238,247,153,204,102, 20,101, 69,191,223, 99,105,113,145, -173, 29, 49,115, 42, 5,157, 78,139,165, 3,251,248,239,255,254, 47,243, 29, 23,242,103,171, 37, 15,151,191,198,129, 68, 49, 60, - 0,104,184,185, 12,107, 63,140, 56, 50,183,143,216, 5,220,248,171, 7,172,221,124, 13,142,239,112,240,228,195,156, 59,244, 5, -206,124,248, 12,151, 95,251, 17,119,223,128,197,191, 51, 71,111,115,137, 96,120,136,120, 62,199, 71,154,113,182, 69,181, 48, 98, -188, 81,114,124,255, 2, 73,187,224, 21, 66,222,186,222,230,254,223,192, 91,175,254,136,123,215,126,138,241,134,231,191,242,187, - 12,239,193,213, 55, 94,228,200,147, 71, 8, 59, 83, 20,158,150,138, 25,221, 11,248,224,167,240,226, 75, 63,196, 5,251,249,248, -239,205, 83,119, 35, 76, 58,166,174,218,228,111, 5,108, 41,207,240,186,165,202, 55,176,227,140, 96,223, 42, 97,125, 0, 19, 44, - 16, 39,154, 32,210,116,250, 7,233,117, 79, 17, 31,177,148,163, 25,217,108,140,181, 5,206, 91, 66, 3,243,135,218,116,118,158, -160, 51,137,184,249,102,201, 68,223,199, 79,199, 12, 78,156, 32,223,222,193, 78, 38,236, 22,249, 24, 19,162, 60,104,163,168,189, -148, 13,129,108,214, 0,188,149,186,103, 87, 75,226,105,214, 44,144,202,123, 60, 66, 80, 11, 76,128, 86, 30,191, 27,142, 80,186, -249, 33, 30, 95,203, 38, 76, 27,133,243, 18,219,149,222,247,148,162,144,197,180, 44, 69,165, 85, 14,208,134, 36,137,241,202,131, -115,114, 64,177, 53, 56, 47, 5, 69,222, 55, 99, 89,241, 17,121,239, 69,149,171, 42,156, 83,196,113, 66, 24, 6, 77, 68,204,130, -210,178,126, 68, 50,142,202,139,138,218, 85,212,181,124,143, 59,173,142,156,182, 93, 77,171,149, 96,109,133,148,188, 72,229,112, - 16,232,189,145,148, 54,138,241,100, 2, 90,206, 71, 26, 5, 10,194, 88,126,159, 56, 22,178,163, 54,186,153,127, 75,115,157, 9, - 4,218, 86,149,149,252, 61, 74, 76,126, 97, 40,108, 19, 68,110, 79, 98,241, 22, 24, 99,192, 75,218, 76,107, 69, 89, 74,115, 98, -104,196,171, 85,150,229, 30, 9,214,156, 57,247,200,215, 77, 24,201, 41,220, 57, 38,179, 9,206, 59,202,178, 36, 47,114,234,186, -217, 85, 86,226, 22, 47, 75,105,185,153, 76, 38,242,161, 54, 50,155, 68,186, 12,187,185,228,162, 44,247,130,249,129, 49,212,206, - 99,140, 97,150,101,224,100,190, 93, 85, 21, 97, 28,224,107,133, 87, 14, 85,215,140,198, 35,148,247,180, 58, 29,130, 64, 78,106, - 74,203,233,219,215,150,162, 40,201,203, 2,213, 48,199, 37, 78,209,100, 34,203,146,217,108, 74, 62,203, 40, 10,121,209,165,173, -132, 58,132,194, 4,242,187, 77,167, 83,164,194, 46, 0,133, 20,164,152, 6,220,111, 52,101, 85,237, 93,152,187,109, 82,182,150, -147,127, 24, 72, 78,191,215,235, 34, 99,134,230,228,163, 27,102,178,247,205,191,147,114, 14,107,197, 36,231, 61, 76,178,169,176, -174,157,144,149,148,214, 34,189, 34,181,125,222,123,210, 36,197,132,134,217,108, 70,183,221,197, 3,133,173,152,141, 39,100,121, -142, 49, 1,212, 22,175, 37, 74,166,144, 44,111, 89,138,145,194,218,122, 79,161,136,227,152,233,116, 38, 6,168, 66,124, 5, 38, -208, 96, 12, 38,140, 9,210,148,164,211,161, 86,154, 42,203,209,157, 20,103, 29, 73,183, 39, 78,205, 64,162, 44, 73,154, 74,227, - 90,158, 33,228, 35,143,173, 36,166, 86, 89,139,210, 82, 18, 83,217,154, 64, 75,157,163, 9, 52,214,137, 99, 94, 42, 32,107,190, -252,108,143,254,129, 46,223,250,246, 59,204, 47,244,184,183, 57,230,203,207,157,128,201,140,247,111,109,227,203,138,153, 87,220, -220,156,225,188, 32,130,215, 39, 5,104,205,141,229, 9, 3,155,115,122,169, 79, 61,155, 49, 28, 22,244,230, 90,140,119, 50, 86, -103, 37, 65,229,136,181,162,117,225, 19,188,248,230,101,254,248,155,127,205,252,160,199,151, 62,243, 73, 14, 31, 88,100,151,230, -167,144,108,249, 44,207,184,245,224, 62, 27,155,219, 88,107, 57,184,111,158,179,167, 30, 34, 8, 67,226, 32,164,219,233,240,199, -223,252, 43,105,109,235,117, 57,118,228, 16,221,118,202,129,197,253, 50,122,153, 78, 24, 78,166,220,185,191, 66, 86,136, 95,193, -121, 79,175,219, 97,115,123,139,239,253,228,103,172,111,111,147,198, 9,135, 15,238,231,212,241, 99, 28, 59,124, 24,239, 61, 69, - 41,209, 22,219, 48, 6, 14, 44,238,103, 52,157,176,186, 46, 13,103,199,150, 14,243,249, 79,125,140,103, 30,127,148, 67, 7, 22, - 89,152,235,147, 21, 5,255,219,255,245,111,200,242,156,163, 75, 75, 28, 91, 58,140,209,154,237,209,152,235,183,110,115,127,101, - 21, 91,215,116,219, 45,206,157,122,136,163,135, 15, 50,215,239,129, 19,112, 78,101,107,234, 90,230,150,182, 81,126, 52,138,210, -138,169,115,151,190, 21, 26,197,234,218, 22, 47,188,254, 6, 87,222,191,206,149,107,215,177,117,205,161,253,251, 57,251,208, 9, -214, 54, 55,169,107,199,115, 79, 63,205, 99,231,206, 16, 24,217, 32,217, 74,148, 29,163,164,254,114,208,239, 73,140, 21,207,234, -198, 54,255,246, 63,252, 41,255,230,255,253, 51,238,220, 95,102, 50,157, 17, 6,134,231,159,190,200,243,207, 92,228,217,139, 79, - 64,179,153,181,206, 51,153, 76,232,180,219,244,186, 93, 60,158,209,120,194,189,213, 53,250,157, 54, 63,187,244, 22,213,110, 66, -192,123,142, 46, 29, 34, 77, 83,182,119,134, 98,160,237,118,248,236,227,103,217,234,205,243,205, 97, 70, 84, 36, 76,111,107,182, -239, 47,113,245,199,158,236,148,226, 59,255,254, 15, 9,182,247,211,155, 91,160,172, 60,183,238, 94, 98, 52,190, 67,188, 56, 97, -188, 60,226,206,235, 43,100,197,113,242,241, 3, 30,188,255, 93,238,190,188, 65,101,143,209,159,235,227,215,207,208, 46, 33,218, -111,176,120,108,107,192,202,104,139, 27,203, 14, 59, 12,233,245, 99,202, 53,203,233, 71, 78,208, 57, 56,199,133, 95,120,158,227, - 71, 34,146, 8,198, 27, 41,163, 97,135,217,193,136, 95,107,197, 76,112,124,227, 79, 52,111, 92,186, 11, 65,206, 39,190,252, 97, -186,251, 67,204,251,176,176,148,176,229, 32, 75, 97,250,130, 98, 56, 41,168,171, 29,242,108,139, 48, 29,113,242, 23,158,224,226, -135, 63,199,209,207, 29,226,224, 19,251,104,157,156,199, 7, 53,238,190, 37, 78, 2,230,207,247,177,227,138,170,128,168,189,128, - 26, 56, 54,163, 91, 20,203,143,177,121,191, 98,251,238,123, 84,106,136,159, 77, 89,122,246, 25,182,174, 94, 97, 50, 26,137, 41, -205, 89,185, 15,150, 21, 6, 3, 22,172,171,168,170, 26,165,164, 27,195,163, 48,161,134, 26, 92, 45,157,226,182, 22,130,167,119, -205,162,229, 64, 25,137,108, 90,219,116,154,135, 17, 74,215, 56, 47,240, 42, 87, 53,184, 86, 91, 19, 68, 33,117, 45,133, 38,218, -232,189,131, 80, 28,133,228,147, 25,179,188, 32, 48, 1, 85, 85, 80, 53,255, 95, 20,202,166, 53,142, 34,198,227, 9,121,222,204, -216, 51, 89, 3,234, 90, 82, 44, 97, 96, 8, 76, 36, 92,252, 40, 66,123,133, 50, 13, 22,188,150,181, 41, 10,197, 68,237,189,195, -104, 57,196,149, 85, 51,106,118,194,166,168,172, 69, 35,233, 47,163,204,222,127,193,239,213,203,134, 97, 76,153,231,212, 78, 42, -107,165,233,209,163,181, 33,203,164,193, 52,108,140,163, 82,234, 21,131, 17,229,204, 4, 70,242,247,181,197,122, 79, 85, 20,242, -157,173,229,253, 83, 70,148, 18,165, 52,214, 89,108,237, 9, 66,131, 9, 3,148,147, 81,160, 89, 58,118,226,235, 69,145, 19,134, - 49, 40, 71,158, 23,164, 13,183,217,123,121,177, 90,107, 90, 73, 66, 20, 5, 72, 78, 27,145,147,227,152, 64,129, 50, 1,149, 45, - 68, 18, 78, 91,224,161,104,192, 15, 50, 91,118,196, 97,132, 87, 98, 22,168,172,184, 0,165, 5, 39,100, 50, 25,145,207,114,202, -186,196,150, 21,157,118, 27, 19,134, 4,141, 81,193,107,232,164, 41, 69, 51,255, 52, 81, 64, 49,203, 68,218,177,210, 78,100,243, -140,170,201, 74,107, 32, 76, 82,130, 56, 70,225,155,185,134,212,199, 22,101, 9, 74, 19, 39, 82, 50, 83, 85, 5,121, 33, 51,232, -178, 42,197, 48,104,119,111,124, 80, 86, 2, 47, 8,162,160, 57,101,213,180,218,109,170,178, 38,142, 2,210, 86,139, 56,142,155, - 2, 16,217,193, 69, 81,132,243,142,172, 1,236, 72,150,208, 51,157, 78, 4,195,155,151, 24,221,196,205,162,144, 36,149,156,125, - 89, 21,104, 37, 13, 62,237,118, 7, 5,242,193,149, 2, 62, 1,192,137, 73, 35, 10, 67,186,221, 30,222,123, 81, 26,180,166,223, -235, 18,133, 33,237,118,151, 48,138, 80, 10,170,178,196,123, 49, 17,117,250, 93, 58,237, 46,105,171, 37,207,153,196, 24,109,228, - 2,196,131, 54, 40,165,105,183, 90,164, 73, 10, 26,170,186, 66,225, 65,137,179,223,215,210,195, 12, 50,234,240,174,150, 25,123, -115,130, 53, 70,240,179, 66, 89, 42, 49, 74, 83, 21, 83,254,155, 47,245,121, 60,180,176,145,113,249,218, 42,195, 89,129,213,138, -143, 94, 56,204,247,222,188,207,201,135, 15, 50,153,214,220, 94,159, 98, 13,180,250,109,250,174,198, 87,142,235,247,182,137, 93, -133,113,138,220,107, 58,237, 20,172,229,193,118,198, 86,229,232,167, 33,157, 36, 96,234, 19,122,103,159,101,115, 52,229,131,155, - 55, 89, 94,219,160,221,105,115,238,212, 67, 36, 81,140, 86,138, 86,154, 18,133,210, 68,183,182,190,197,253,149, 85,156,115,124, -244, 67, 79,209,235,118,105,181, 82, 6,189, 46, 55,239,223,231,123, 47,188, 4,192,230,246, 14, 59,195, 49,199,151, 14,146, 38, - 9,105,154,176,185,181,205,139,175,191,197, 7, 55,110,177,185, 61,100,126,208,103,190,223, 39,137, 99,198,147, 25,235, 91, 91, - 18, 25,107, 37,100,121,206,161,253,251, 56,182,116,152,202, 86,148, 85,197,100, 58,227,214,253,251,124,255,167,175,240,237, 31, -252,152, 59,247,238,237,157,211,135,227, 49,235,155,162, 34,180,211,148, 51, 15,157,192,104,205,100, 42,144,154, 50,207, 56,121, -252, 40, 97, 16,242,239,254,236, 47,121,235,189,247, 81, 90,211,235,180,120,236,252, 57, 62,247,137,231,233,117, 58,123,167,150, -170,170,196,212,231,164, 49,177,118, 14,165,228,244,228,156, 39, 47, 75,156,173,137,162,144,219,247, 30,112,245,198, 77,174, 92, -189,198,245, 59,119,217,218, 25, 82,219,154,247,111,222,226,187, 47,188,196,120, 50,229, 43,191,244, 41, 62,246,204, 69,106,100, -134,110,173, 3,239,216,109,239,171, 42,139,209,138,105,150,115,231,254, 3,222,120,251, 50,223,251,233,207, 24,142, 39,123,155, - 96,231, 60,107, 91, 59,252,198,151, 62,207,225, 3,251, 73,194,136, 89, 94,138,179, 94, 41,246,205, 15,152, 31, 12,208, 40,238, -173,174,242,222,181, 27, 92,185,118,131,188, 44,246, 12,133,237,180, 5,206,211, 74, 98,246, 13, 6, 12,167, 99,118,134, 99,126, -237, 87,190,192,247,231, 14, 17, 71,109,220, 77,195,198,198, 6,147,237, 53,142,156, 63,205,209, 71, 21, 87,254,232, 1,215, 62, -248, 83, 86,215,114,238,220,188,196,237,171,127,141,117, 99,194,246, 8,123, 55, 99,107,227, 62,235,183, 95, 97,123,245, 61,166, -163, 21,242,157,107,108,174,188,205,218,157, 91, 20,101,135,246,226, 57,226,201, 49, 58, 69, 74,208, 45, 40,235, 33,149, 46,153, -149, 59, 12,215,110, 51, 77,175,177, 89,189, 65,209,190,195,182,191,202,131,234, 38,147,185,156,254, 35, 41,135,125,135,185, 25, -156, 91,242,220,160,102,243,128,225,112,175,207,252, 47, 30,196, 15, 10,226, 27, 33,251,206,194, 98,154, 51, 29, 5,172,191,227, -153,228,154, 98,178, 67, 86,172, 51,155,172, 98,163,154,227,131, 95,100,127, 39, 98,120,219, 96, 55, 61,113,207, 97,217,102,156, -111,179,208,190,200,210, 51, 39, 57,122,190,197,172,158,192,116,137,110,114,136,118,127,202,237,217,139, 12,175,175,115,239,131, - 43,236,140,110, 17,100, 83, 6, 39,143, 51,127,228, 40, 59,119,239,160,106, 81, 76,113,130,217,245, 90, 78,236, 74,107, 2, 45, - 10,142, 49,210, 78, 25, 6, 98, 52,222,245,103,132,161,222,187,222,202,170, 0, 36,223,237, 61,132,161,180, 54,106, 37, 38,207, -208,200, 1,208, 90, 75,146, 36,152, 32, 96,154, 77,169,107, 49,230,250,218, 35,109,152,138,233,108, 42,235,142,242, 84,174, 38, -208, 66,106,147,145,146, 16, 59, 5,155, 44, 10,130,120,154,170, 6,240, 84,227,156,197,218, 26,105,148,212,148, 69,142, 14, 69, - 74, 47,102, 25, 81, 28,225, 60, 20,121, 78, 24, 72,148, 90, 43, 67, 28, 70,123, 30, 39,109, 52, 85, 93,161,181,166,170, 44,157, -110,143,162,204,155, 53, 82,227,189, 66,233, 64, 98,123,145,172,117, 90,131, 14, 12,121,150, 97,148,198,121, 65,191,234,192, 8, - 39, 5,168,189,149,104,108,221,176, 62,106,143,117, 78, 14,148,209,110,135,138,252, 28,143, 28, 24,109, 41,117,228, 74, 41, 52, -136, 74, 92, 74,172, 26, 20,230,196,169,211, 95,223,149,174,202,210, 2,142,162,168,216,133,248, 7,129, 38, 12, 35,180,150, 38, -183,162, 40, 8,141, 65,105, 45,178,123, 93,179, 91, 18, 82,215,150, 56,140,200,138,140, 36, 73,169,202, 18,103,155,142,238,102, -113, 41,139,130, 40,140,176,181, 21, 98,151, 22,110,182,181, 21, 85,150,131,115, 88,239,241, 90, 19, 52, 51,240, 36, 78,208,198, -160,181,156,172, 91,105,139,178, 40, 32, 16, 89, 28, 35,115, 63,165,128,218, 17,244,251,164,177, 84,152, 6, 65, 72, 93,203,102, - 34, 8, 66, 57,145, 27, 89,140,228,185,155, 11, 52, 12, 9, 77,196,174,227, 81, 36,160, 18,165, 84, 51,139, 7,231,189,204,170, -149, 64, 73,140, 22, 99,194,174,137,111, 58,155, 80,100, 37, 69, 85,144,198, 41, 97, 28, 82, 22, 57,101, 41,210,166,119, 14,101, - 45, 97, 43, 37, 73, 98,162, 64,158, 75, 43,249,210,212,117, 77, 20, 75,239,113, 85, 85, 84, 78,228, 34,109, 52,157, 86,155, 36, -142,101,102,221,233,210,106,181,155, 15, 92,228, 83,163, 21,105,187,221, 92,160,142,188, 20,174,187, 9, 2,208,194, 16, 15, 3, -153, 97,161, 96,150,231,242,190,106,137,159, 41,165,232,117,187, 98,126, 68, 49, 12,164, 36, 0, 0, 32, 0, 73, 68, 65, 84,178, -167,121,158,147,196,194, 34,136,226, 8,188,200,205,202, 4,196, 97, 68, 89,149,132, 81,204, 46,139, 88,174, 25,223, 92, 47, 6, -165,100, 86,251, 15, 62,217,229, 87, 6,154,157, 15,110,145, 7,134,183,215, 39, 4, 97,200, 66, 39,226,204,193, 14, 47,189,187, -206,161,253, 93,226,185, 54,171,155, 99, 98,160, 76, 18, 76,150, 67,105,137,210,144,188, 2,141, 35,238, 68, 92,203, 43,206, 29, - 26,224,125,197,104, 92, 17,246, 98,234,210, 98,211, 24, 14, 60,202, 59,239, 95,227,205,119,223,227,204,137,227,252,103,127,255, -183, 24,244,186,160,188, 92, 15,198,208, 74, 83, 70,147, 9,111, 92,126,151,123,141,156,124,225,225, 51, 92,188,112,158, 52, 78, -120,255,218,117,126,252,202, 27,140,199, 99,138,178, 66,163,120,232,216, 17, 60,138,249,193,128, 94,183,195,100,154, 49, 26,141, -217, 30,143,104,167, 45,206,156, 56,202,161,197,253, 56,239,249,209, 75,175,242,193,141, 91, 56,231, 56,249,208, 9, 62,245,220, -135, 56,117,226, 24,129, 49,123,137, 9,165,164, 91,189,213, 74, 88,223,220,100, 52,153,226,189,176,203,101,193,133,253, 11, 11, - 92, 56,115, 90,102,121, 73, 66, 93, 91,182, 70, 99,138,188, 36, 47, 75,230,123, 93,202,170,228,214,189,251, 20, 69,201,233, 19, -199,120,250,177, 11,156, 58,118,148,178,172, 24, 77, 39, 56,231, 40,173,124,159,109,105,201,139, 18, 87,215, 2,236,104,188, 51, -114,131, 48,188,119,253, 38,175,190,115,133,247,111,220,228,189,155,183, 73,162,144,185, 94,151, 94,175, 75,183,211,102, 56,153, -208,138, 83,254,171,127,244,187,236,159,159,167,157,166, 50, 54, 42, 11,196, 56, 40,247, 0,208, 40,163, 41,203,130,245,173, 29, - 94,126,243, 29,174,221,186, 43, 53,184, 40, 6,253, 62, 15,159, 60,206, 51,143, 63, 70,158,205, 56,121,236, 24,147,217,140,229, -245, 13,174, 94,191,197,229,247, 63, 96, 56, 26,115,230,196,113, 22,247,205,115,251,222, 3, 94,122,227, 77,222,187,126,131,173, -237, 29,108, 45,174,247,162, 44,105,181, 82, 22,247,239,227, 99, 31,186,200,103, 30, 59, 71,111, 97,158,203, 71, 79,208, 61,124, -138, 11,253, 47, 99,162, 71,216,183,255, 89,158,124,226, 97,158,122, 90,211,159,243, 60,254,213,135,153,172, 28,228, 39,127,241, -175,169,170, 33,167,206,127,153, 83,143,125,158,213,245,191, 65,141, 10,198, 59,235, 76,134, 15, 24,174, 94,193,217, 29, 76,160, -201, 38, 27,148,197,140,139,207,125,133,127,249,251, 1,243, 79,149, 44, 95, 29,192, 74,159,135, 23,142,112,246,241, 3, 80,134, -212, 97, 27,148, 38,175,114,170,220, 82,151, 21,113,127,142, 98,184,198, 56, 31,179, 28,220, 99, 43, 41,249,201,118,193,149,181, -138,141,173, 91,220,203, 94,103,243,206,207,152,218, 29,166, 7,107,150,103,134, 89,216, 33,233,103,228, 43, 33,107,119, 61,247, -151,175,145,109,223,102,103,243, 6, 45,125,145, 15,255,206, 25,138, 7,158, 7, 55,183,152, 78,182, 40,214, 70,196, 29,208,245, - 54,177,254, 8,113,117,154,157,252, 3,218,225,152,201,118, 7, 85, 47,209,162,135, 74,215,241,253, 33,122,167, 96,186,178, 76, -127, 62,161,125,240, 48, 97,183, 71,239,240, 1,214,175, 94,149,241, 80, 94,176, 91,151,108,203, 26,173, 69,209, 44, 43, 41, 43, -113, 30,112,144,205,102,194,246,119, 2, 39,139,195, 4,148, 36,137, 90,173, 54,187,213,161,104,233, 36, 79, 82,145,194,203,170, - 36,140, 35,140, 14,228,254, 18, 69, 68,161,244,142,163, 20, 69,217,112, 37,242,146, 52, 77,136, 99, 73, 13,133, 65, 83, 26, 19, - 4, 88, 87, 11, 70, 91,139,170, 96,173,147,238,145, 44,103,143,133, 94, 91,140,214,244, 7, 3,146, 36, 1,212,158,177,217,249, -221, 84, 81,216,248, 62, 42,146, 36,198,104, 37, 81, 78,103, 17,176,140, 84,210,106, 37,163,211, 56, 18,186, 92,188,187,166, 4, -145, 28, 10,139, 2,239,154,124,126, 40, 45,153, 89,150,163,141, 20,143, 56, 28,120,223,172,149, 21,214,123, 66, 19, 53,170,120, -137, 49, 80, 59, 43,107, 97,131, 28,151,100, 1,194,203, 15, 35, 52, 30,165,100,109, 52,205,159, 32,136,208, 40,210,150,164, 76, -204,249,199,159,248,122,154,166,123,179, 80,231,100, 78,208, 78,219,132,241,238, 2, 39, 11, 14,190,233,223, 53, 33,206, 59,146, - 88,110, 64,121, 94, 73,148, 36,145, 15,168,174,107,226, 80,102,237,173,118, 11, 64,100,137,192, 80,228, 57, 69, 81,160,149, 68, - 79, 4,100, 34,187,154,162,144,121,175,119, 82, 39,231,106, 75, 94,136,204, 27,132,205,124, 58,138, 81, 72, 44,161,246, 22, 59, -157, 65, 19, 11,219, 45, 54, 81, 73, 76,128,100,176,203, 90,106,254,170,170, 89,120,179, 41,229,116, 74, 49,205,152,101, 51, 10, - 91,202, 9,190,176, 34,225, 76,198,141,163, 60, 32, 14, 99, 60,178,104,214, 94,176,178, 50,139,150,162,250,162,148,126,246,218, -213, 82,214,145,237,214,161,234,189, 15,214, 24, 3, 90,161,181, 17,195,155,147,214,157,202,150,120, 20, 85,158,203, 28,190,174, -105,119,186, 40,165,169,234,154, 78, 35,159,199, 81, 76, 24, 69,160, 60,142, 6,189,106,100, 83,161,148,106, 34,134, 49, 73,171, - 69,158, 77,169,202,146,176, 89,252, 29, 30,229, 61, 73,146, 10,125,207,138, 47,161, 42,133,220, 84, 53,187, 90,173, 27, 3,136, - 86,152, 48, 36, 10, 67,166,211, 9,198, 72, 38,187, 40, 10,249, 92,160, 81, 34,228,154,240, 32, 20,185, 40, 68, 41,233,111,183, -141, 52, 90, 85, 22,165, 37,111,249,159,159,130, 63,251,203,159,241,220, 67,115,176,208,231, 7,183, 70,140,157,226,233, 19, 11, -184,178,230,221,235,107,164, 73, 64,183,155, 16,226,121,176, 57, 67,215,138,118, 36, 70, 69,103, 45,101,104,232, 56, 72,128,145, -209,108,207, 60,222,107, 70,227,140, 44,171, 88,236,196,164,221, 30, 89,255, 36,111,188,123,133, 87, 47,189,195,242,250, 58, 74, - 41,142, 28, 62, 68, 28,197, 56,239,161, 81,159,182,134, 67,126,250,234, 27,108,110,239, 48, 63, 24,112,252,232, 33,122,221, 46, -131,110,135,118,187,205,205,187,247,184,117,255, 1, 85,101, 57,120, 96, 63,251,247,237,163,221, 74, 57,121,252, 24,139, 11,243, - 12,122, 93, 54,119,134,172,111,108, 50,153,205, 56,124, 64, 36,246, 94,183,195,173,123,210, 18, 22, 69,194,173,158,239,247, 56, -180,127, 31,104, 77, 86, 72,153,134, 84, 95,138,195,246,234,141,219,141, 99,220,162, 3,195,133,135,207,242,133, 79,127,130, 79, -124,228, 89, 14,237,223, 71, 28, 69, 88,107,217, 25,238,112,111,121,141,233,116,194,163,103, 79,113,108,105, 73, 20, 18, 15, 91, - 59, 59,220, 95, 89,227,202, 7,215, 57,119,250, 36, 94, 41,242, 89,198,116,150, 51, 26, 79,168,108, 37, 35,170, 70,241, 73, 99, - 1,231, 84,182,198,123, 8,140, 38, 47, 5,222,116,127,121,153,187, 15, 86,168,157,227,233,199, 30,229,196,209, 35,204,102, 51, -134,227, 9, 43,235,235,220,188,115,143,163,135, 15,209,237,182, 37,202,217,156,226,118,199,108, 0, 85,105,121,229,210,219,252, -193,191,255, 15,188,253,222,251, 76, 26, 15, 74,148, 68, 60,249,232,121,190,240,137,143,242, 11, 79, 95,228,248,209, 37,182,135, - 67,174, 92,187,201,123, 31, 92,103,117,125,157,157,225,136,201,108, 70,183,219, 97,105,113, 63,221, 78,135, 63,250,243,111,114, -111,121,149,110,167, 69, 20, 4, 20,101,197,209, 67, 7, 48, 38, 96, 97,208,231, 83, 23, 78,242,143,191,250, 75, 92,222,183, 72, -118,224, 12, 31,251,228,111,112,234, 57, 69,148,247,112,197, 4,223, 85,204, 93, 8,120,122,193,242,164,209, 92,124,126,142, 99, - 95,253, 45, 62,252,212,231,248,229,223, 59,197,199, 63, 17,242,210, 95,140, 24,173,188,129,183, 57,249,246, 93, 54, 30,188,139, -171, 75, 76, 16, 98,171,140,185,131, 15, 81,215, 29,126,248,114,159,183, 94, 16,131,213,205,187, 87, 9,203, 69,126,239,195,112, -118, 33,228,244, 98,139,179, 7, 14,113,246,192, 73,142,158,127,148, 67,103, 30,103,174,125,130,164,125,144,193,252, 17,186,105, - 11,103, 34, 66,227,200,166, 83,134,155,107,228,121,133, 69,211,154, 59, 76, 57,217,102,150,109,114,239,238, 85,174,221,184,205, - 78,172,112,155, 57,229,112,131, 34,219,194, 24,199,169,179,191,206, 51,207,143,217, 62, 24,115,247,229, 33,121,182, 77, 85,101, -228,122, 76, 64,193,214,237,187,140, 55, 59, 44,191,255, 6,149, 93,103,226,215, 72,220, 35, 84,182, 67,234, 99, 14, 30,156,177, -244,248, 81, 6, 39, 14,209, 61,184,136, 78, 90,216,218, 19,247,186,204, 29, 94, 98,235,198, 7,114,159,174, 10,202,210,226,169, - 1,105,116,116,181,107,146, 80,226, 92,215, 70, 35,136,109, 89,144,146, 36, 33,140, 66,162, 40,110, 36,119,225,114, 76,167,179, -230,148, 94,225,154,181, 13,104,238,245,242,239, 60, 10, 26,121, 57, 12, 67,217, 4, 42, 64,121,217,212, 90,203,180, 65,100, 91, - 91, 18, 71, 49, 69, 46,153,111,239,220, 30, 30,182,174, 43, 4,131,157,211,237,116,137, 34, 77,146,180,208, 90,224, 83,187, 28, -141,178,202,101,132, 88, 20, 8, 4,199, 17, 68, 33,149,173,104, 39,109, 92,237,192, 11, 10,214,121,249, 93,243,188,160,174,133, - 60,231, 28,242,158,184,102,246,109, 2, 81,159,181,116,175,231,121,142, 87,178,158,105,154,220, 63, 77,145,152, 7,221,216, 12, -148,106,202,163,156, 5,148,248, 14,208,120,106,108,227,215,170,170, 26,105,169, 51,212, 30,170, 34,151, 38,186, 32,192,121, 73, - 1, 8,130, 25,204,217, 71,206,127,221,121, 49, 22,180,219, 45,132,207,156,144,103,153,204,219,242,130, 60,151,197,171, 44, 5, -192,239,113,104, 29,136,219, 58, 12, 41,138,188,201,110, 87,120,118, 35, 12,178,184, 43, 60, 65, 20,162,106, 57,165,183, 91, 29, -130, 40, 36,155, 9,240,164, 40, 10,202, 92,100,113,175, 5, 73, 27, 37, 9,101, 37, 51,249, 52,138, 41, 43,201, 42,102, 83,233, -204, 46, 43,113, 89,227, 60,213,116,130, 50,205,204,221,203,204,212,101, 57,121, 89,137,193,174,200,168,203, 18, 91, 20,148,121, -134,111,164,198,218, 53,185,243,102,177,218, 53,255, 5, 97, 32, 27,156,178,196, 58, 75, 43, 77,137, 99,153,255, 27, 45,181,130, - 85,115,130, 79,219, 41,206, 90, 58,157, 54, 90,105,112,194, 68, 54,129, 72, 83, 74, 41,166,179, 25, 81,163, 56, 40, 47,117,167, - 26,246, 54, 11,206, 11,146, 39,106,181, 8,140,204,210,165, 14, 87,160, 12, 38, 16,108,226, 44, 23, 51,138,181, 86,226, 31, 86, -220,198,182,182,127, 43, 87, 69, 6,148,166, 44, 74,170,102,134,238,188,156, 80, 65,226,104,187,104,222, 40,144, 93,119,237,100, -134,102,157,199, 27,185,192,229,245,218,198,133,170, 9, 35, 67,104,100,110,111, 2, 3, 30,156,173,247,164, 54,239,164,206, 48, -140, 69,238, 21,128,132,199, 86, 53,157,118,202,163,102,147,147,139, 45, 22, 63,118,129, 75, 47,221,192,100, 21,243, 73,200, 82, - 39, 32,212,138,155,247,118, 40, 43, 71,237, 21,183, 87,199,204,106,135,245,142,131,139,125,138,233,140,254,252,128,178,170,233, -196, 1,173,110, 72, 47,141,217,206, 28, 90, 57,102,133,163,182,158, 68, 43,186,237, 22,249,129, 71,137, 3,195,131,245, 45, 54, -182,182,248,167,191,251,247,216,183,111,129, 60,203,101,134,229,193,104, 77,183,221, 97,121,101,141,219, 15, 86,152,206,102,156, - 62,126,140, 35,135, 14, 81, 84, 37,127,245,195, 23,120,249,210,219, 76,166, 98,194,153, 76,103,108,110,239, 48, 26,141, 89, 58, -176,143, 67, 7, 23,137, 35,241, 86,220,121,176,194,160,215,197,161, 56,184,111, 30,148,226,133, 87, 94, 99,121,109,163,153, 43, - 10,207, 96,113,255, 62,210, 40,164,174, 4, 55, 59,158, 76,249,222, 75,175,240,141,191,254, 62,183,239,203, 73,219,123, 71,183, -211,101,174,215,101,255,160,207,190,185, 1, 38, 8,168,157,160, 55,175,220,184,137,115,142,202, 58,106,239, 88, 92, 88,224, 7, - 47,190,204, 11,175,190,190, 55, 99,124,254,153, 39,233,181, 59,180, 91, 45, 58, 45,169, 80,181,214,146,101, 57,181,131,208,104, -218,173, 54, 73,218,200,151,141,186, 82,213,162, 14, 77,154,156,251,202,250, 38,221,118,155,185,185,190,108,236,170,138,185,254, -128,127,246, 79,255, 49, 23, 31, 61,207,160,219, 37, 8, 2,234,198, 83,225,172,163, 40,197, 80, 89, 59, 33,142, 45,175,174,177, -188,177,193,250,198, 22,187,178,123,109,107,178,162,224, 31,124,237,171,104,173,153,140, 39,108,236, 12,121,255,230, 77, 86,214, - 55,185,187,188,194,246,112,204,163,103,207,240, 11, 79, 95,100,208,239,147,231, 5,163,201,148,183,174, 92,197, 90,203,135,158, -124,156,118,171, 69, 59, 77,121,228,204, 73,170,233,136,223,249,244,115,252,136,136,159,153, 62, 31,255,213,191,203,151,247, 89, - 62, 66,204,107, 55, 20,215, 70,223, 35,216,126,132, 40, 80,108,244, 53,111,188, 9,179,165, 0,151,195,234,107,158,182,130,122, -209,177,118,251,105, 94,254,206,191, 96,107,245, 22,198,196,156,122,250,119,249,231,255,247,159,178,185,115,142,245,187,175, 17, - 37, 57,179,233, 42,247,238,189,202,214,214, 53,214,214,150,153,110, 46,115,253,246,144,173,228, 8,203, 61, 77,149,104,156,246, - 36, 6, 14, 39, 25,131,176,100, 95, 63,228,200,190,132,163,173,136,179,211, 46,231,143,247, 56,187,216,227,240, 82,155,199,207, -156,224,196,217,147, 16,157, 67, 37, 29,170,209, 14,101, 53,163,178, 37,182, 86,100, 91, 31, 48,141,110, 19, 45,205, 56,246,228, - 18,135,206, 46, 80,143, 98, 22,159, 26, 48, 84,138,123, 47, 84, 20,249, 29,202,124,194,184, 88,161,206, 51,102,227, 27, 60,184, -181, 67, 54,126, 64,181,185,194,206,246, 61,186,157, 71,208, 54, 33, 43, 52,180,199,204,205,197, 28,125,228, 36, 81, 26, 48,153, -100,212, 86, 81, 89,136,251, 61,226,118,139,241,157,219, 98, 14, 54, 90, 34,184,141,170, 26, 4,114, 16,171, 43,161, 80,198,177, -160, 96,147, 52,101, 23, 4, 54,205,102,212, 86,242,215,181,151,232,101,109,107, 57,136,213, 98,168, 76, 83,169,123,142, 66,161, -145,102,217,148, 26, 79,108, 2,178, 60,111, 22, 60, 77,183,219, 65,107, 67,214,120,124,118,199,144, 73, 44,192, 28, 99,100,190, -108,140,252,153,140,199,152,192,200,193, 81,107,156,171,105,183,123, 4,129, 36,187,148, 23,201, 59, 10, 5, 48,163,148, 22, 21, - 33,203,208, 70, 42,128,163, 32,162, 40, 11, 57,204, 40, 72,147,148, 40,150,241,107, 85, 85,162, 56, 55,135,193,218, 86,148,165, -224,158,165, 57, 78,161, 67,233,108, 15,147, 72, 40,148, 38,192,214,226, 93,177, 86,164,124,173, 53, 13, 58, 76,214, 45,215,204, -198,141, 24,209,141,105, 10,162,148,172,165,222, 59,180, 10,104, 76, 12, 4, 81, 68, 96, 12,161,146,238,145,186,150,251,140,173, - 44,230,212,217,115, 95,247, 94,218,168,148, 82, 40,163, 80, 94, 17, 37, 33,113, 36,249, 57,101, 20, 50,156, 23,176,140,214,134, - 32, 48, 84,165,116,108,135,198,160, 77,132, 14,154, 30,229, 48,220,155,197, 79,167, 83,153,207,164, 9,113, 20, 33,237,105,229, -158,132,162,149,100,203,227, 52,161,200,114,156,146, 88,142,171,107,201,112, 59,135,210, 6,163,101,143, 19, 54, 82, 79, 94,228, - 20,147, 25,106,111,203,231,101,147, 3,160, 21, 40, 80, 94,161,144,252,164, 66, 94, 23,129,228, 88,149,214,244, 6,131,102,166, -211,162,221,110,137,129, 33,144, 5,172,170,107, 92, 45,145,140, 36, 73, 72, 19, 1,232, 4, 97,136,242,194, 61, 23, 7,164,219, - 51, 26,133, 65, 64, 81,150, 2,204,177, 22,129,206,252,109,126, 54,138, 99,249, 89,173,150, 80,129,148,162,221, 74,136,162, 88, -220,227,206,209,238,116, 80, 74,156,150,117,109,229,189,139, 35,108, 41,181,179,222,121,226, 40,166, 44,115, 76, 40,227, 4,107, - 75,194, 40, 36,155,102,216, 74,242,216, 40, 77, 28, 39, 84, 85,137, 71,230, 66,187,191,163,209, 1, 85, 85,211,106,181,136, 34, -217,221,181,210,148,221,222,115,165, 36, 42, 98, 76,136,115, 21,182,170,229, 39, 52,139,184,181, 22,154,217,172, 0,111, 82,194, - 56,198, 86, 21,190,246,224,193, 43, 79,160, 52,157, 20,254,225, 99, 41, 39,246,183, 40, 55, 70,220,222,204, 89, 28,180,201,203, -146,150, 82,164,177,193,107,205,120,156, 49, 44, 28, 59,179,146,110,108,192,123,142, 29,223, 71, 49, 46,137, 66,133, 9, 13,207, - 62,118,132,241,182,208,204, 2,229,209, 97,196,190, 78, 76, 55,128,135,142,117,153, 78, 28,247,147, 37,126,244,242, 43,188,121, -249, 93,180, 54,252,189,175,126, 25,229, 60,121, 89, 72, 84,203, 75, 52,199, 89,203,191,253,147,111,176,181, 51, 36, 12, 13,115, -253, 62, 73, 20,112, 96,223, 2, 7,247,239, 39, 10, 12,203,107, 27,123,112,160, 52,142,249,149,207,127,150,103, 30,123, 12,231, - 28, 15,214,214,249,222,139, 47,115,247,193, 50,113, 51,170, 56,123,250, 36,113, 24,176,188,190,133,194, 51,223,239,113,238,244, -105, 62,242,244, 19,204,247,250, 98,166,115, 14, 91,123, 70,147, 17,163,225, 8,143,103,117, 93,106, 86, 61,144,101, 57, 91, 59, - 59,188,249,254,251, 20,165,144, 30, 59,237, 22,215,110,222,226,189,107, 55, 89, 94, 91, 39, 12, 12,219,195, 49,167, 79, 28,165, -172, 44, 87,174,221,216, 91, 52,127,253,139,159,231,244,201, 99,196, 97, 72,218,248, 7,218,109,233, 49,136,227,136,185,193,128, - 94, 75,212,179,170, 42, 41,170,170,153,177, 11,155,127,113,223, 28, 55,239, 61,224,205, 43, 87,249,208, 19, 23, 56,176,176, 64, -167,211,102,184, 51,228,216,225, 67,156, 61,115, 82,110,132,120,217,252,214, 22,229, 60,165,171,200,102,197, 94, 17,200,165,203, - 87,120,241,181, 75,188,247,193,117,156,247,156,126,232, 4, 31,127,238,105, 78,157, 56,193,206,206,136,163,135, 23,217,183, 48, -143,173, 29,227,225,152, 44,203,233,117, 59,140, 39, 19,110,223,123,192, 19,231,207,241,228,249,179, 56, 87,179,186,181,197,230, -230, 22,179,188, 96,117, 99,147,243,103, 31,230,209,179,167, 24, 79,166,156, 90, 28,240,181,143,126,136,213,197, 37,254,240,214, - 10, 71,220,231,105,221,158,227,181,171,134,239, 47,194,149, 23, 96,229,103,223,101, 56,214,220,157, 44,242,224,182,230,253, 23, -182, 89,126, 45,229,210,143, 54, 25,109,121,110,191, 27,115,245,101, 67,145,149,212,132,184, 32,231,185,223,255, 79,248,135,255, -243,239,241,155, 75, 80,238, 59,194,189,229, 1,195,173,119,240,197, 14,181, 15,105,247, 15,113,226,201,175,146,232, 83, 60,253, -229,135,248,157, 47, 90, 46, 95,210, 20,115,158, 60, 80,236,204, 20,155,195,128,113, 22, 81,135, 10, 87, 66, 85,107,102, 45, 15, -181,167,111, 20,167, 3,197,163,222,112, 65, 27, 62,177,160,249,236, 66,204,226,241, 1,227,155, 15, 67,176,201,172,156, 80,148, -178, 16,140, 71, 25,107,171, 43, 24, 85,211,238,222,231,193, 75, 23,232, 31, 87,220,252,217,148, 98,114,141,162, 24,146,175,108, -225,163,156,217,250, 26,171,247,150, 41,134,247, 24, 77,110,227,198,138,238,226,163, 4, 81, 27,107, 53,195,229, 9,173,185, 9, -173, 99, 23, 9, 91, 3, 84,189, 3,101, 65,153,123,170,170,166,125,248, 32, 81, 96, 40,214,215,208,186,105,103,108, 12,150,182, -174, 36,213, 98, 20,173,180,133,214, 10,231,157, 40,175, 65,128,195, 81,151, 37, 40,208,104,108, 41, 41,143, 36,105,201, 61, 48, -138,136, 26, 83, 91, 89, 22,104,211, 68,163, 75, 75,160, 53,179,162, 32, 14, 2,202,202,162,180,223,131,200,196, 81, 4, 64,171, -149, 18, 55, 74,100, 24,134, 4, 38,160,200,115, 49, 84,163,136, 35,137,159,105,173,232,247,187, 68, 81, 66, 85, 20,148, 85, 51, -207, 54,178,238, 20,121,142,115, 16, 54,235, 65,154,182,196,112, 23,199, 84,149,165,176, 82, 48,211,234,180,169,107,129,162,133, -145, 28,138,210, 68,106, 84,195, 48, 36,107,104,171,181,171, 73,155,113,166,119,158, 89,158, 97,144, 57,154,140,112, 3,130, 64, -114,243,117,237, 80, 70,212, 45,213, 40, 20, 42,208,212, 85, 19, 93,198,161,145,251,116, 16, 5, 68, 97, 68,218,110,201,162,175, - 53, 74, 27,226, 40,100,183,120,167,182, 50, 2,175,107,217, 76, 7, 69,145,163, 3,137, 45, 89,231, 26, 62,174, 44,158,189, 78, -135,193, 96,192,222,195,203,172, 15, 20, 74,121,188, 0,218, 80, 58, 34,112,226,238,243,181,107,224, 28, 1,101,145,227,189,116, -158,163, 60,113,148,146,229, 25,206,187,189, 69,216, 40, 41,109,209, 74,211,106,119,152,236,236, 96,189,162,221,109, 49,203, 10, -122,189, 14, 74, 25,108, 93,147, 68, 49, 40, 69,162, 20,129,214,140,178, 2,133,131,184,141, 55, 26,234, 90,200,103, 70,145,215, -142, 52, 12, 1,207,100,214, 56, 14,181, 68,188, 38,147, 25,221, 94,135, 48,140,152,159, 75,152,204,166,100, 89, 70, 20, 9,187, -189,213,105,145,186,152, 32, 12,152,140,199,140,134, 67,230,230,230,100, 81,140, 34,226, 36,194, 33,146, 74,154,164, 76, 38, 19, -146, 56, 69, 41,136,188, 71, 69, 49, 40, 47, 85,173,120, 32,197,218, 28,101, 52, 74,137,233, 80,135, 33,161,247, 50,243,247,146, -251,176,181, 44,168,113, 28, 19, 70,226,186, 47,202,130,114, 34, 94,135, 86,218,110,204,125, 21,105,218,198,123,113,165,122,100, - 87,215,106,220,247, 74, 41,166,147,169, 40, 40,182, 38,140, 26, 44,172, 81, 84,165,101,102, 11,188,151, 84, 67, 18, 71, 50,102, - 49,134, 52, 16,127, 65, 81,148, 4,129,128, 21,156,147,124,179,173, 43,140,146,174,123, 95,215, 12, 71, 99,162,230,139, 86,150, - 5,161, 17, 90,146,173, 43,130, 56,164,204, 4,183,248,185, 51,134,133, 99, 3,124,160,120,243,123, 87,136,147,128,119, 94,190, - 65,255,244, 33,214,198, 57,105, 88,179,110, 21,167, 31, 89,226,221,247,151,169,172,135, 16,130,208, 48,220, 30, 51,119,120,192, -202,157, 77, 14, 44,245,217, 28,142, 89,191,189,206, 54,134,202, 24,250,115, 41,137,118,116,250, 9, 11, 11, 61,244,160,195, 45, -109, 56,176, 48, 79,175,221,161,170,107,238,173,172,112,234,216, 81, 30,220,218, 96,233,208,126, 49,117,137,159,132,221,226,153, -208,132,184, 90, 32, 18,171,155,219,252,197,223,252,128,183,222,125,143,159,127,140,167, 83,242,162,164,172,100,254, 53, 30,143, -233,119, 59, 40, 20, 15, 86,214,152,155,235,115,235,206, 61, 14, 29,216,207,246,206, 14,107,155, 91,244,187, 93,206, 63, 44, 0, -149,162, 44,112, 94, 10, 50,108,109,233,117,122,124,236,217,167,121, 42, 59, 47, 11,243, 7,215,247,158,107,126,110,192, 23, 62, -253,113,142, 47, 45, 17,133, 2,127,185,117,127,153,247,174,223,228,193,234, 26, 81, 24,179, 48,223,227,193,218,134, 84,106,214, - 53,105, 18, 51, 63, 24,112,233,242, 21, 78, 30, 59, 76,191,223,103,115,103,200, 27,239, 92,230,196,177, 35, 44,244,251, 0, 68, - 70,204,174,142, 93,233, 93, 97,109,197,172,200,217,220,220,230,141, 43,239,179,177,177,201,145,131, 7, 49, 97, 68,154,166, 28, - 88,152,163, 21, 71,220,121,176,204,205, 91,119,153, 27,244,247, 54,237,181,173,169,156, 19, 7,176,134,149,149, 13,110,220,190, -203, 7, 55,111, 53,149,179,242,184,118,243, 22,211,217,148, 63,250,215,255, 43, 43, 27, 27,132,129,224,138,119, 70, 19,170,186, -102,103, 52,226,165,215,223, 98,125,123,155,207,124,244, 35,156, 61,121, 66,110,208,101,197,157,187, 15, 88,223, 25,146, 23,194, -222,190,244,206,101,206,158,248, 60, 95,120,238, 41,142,118, 98, 62,250,252,135,248,175,223,188, 73,100,186,108,222,218, 97,118, -235, 30,251,146, 99,164,203, 83, 76,153,178,189,177, 70, 52,122, 25,181,114,153,181,118,139,201,218, 45,170,108,147,238,220, 2, - 58, 60, 8,222,162,107,143, 83, 37,227,157,251,156,251,205,175,193,253, 22,223,250, 63,215,249,230,208,178,117,237, 30,227,225, -117,156,237,161,205, 26,115, 11, 75, 28,152,127,156, 11,143, 7,252,234,103, 61, 27,204,248,211,187,109, 12, 30,103, 21,147, 33, -216,106, 67,186, 34,104,145, 14,187,196,129,166, 46, 60,250,186, 98,114, 74,177, 21, 41,110, 82,210,198,114,208,135, 12, 48, 28, - 38,100, 65,135, 60,252,153,138,197,252, 57,182, 94,240,108,181,127,202,221,219,239,146, 91, 69, 60,232,177,158,215,108,143,135, - 36,250, 15, 89,249,131, 47,178,189,118,159,108,178, 67, 93,173,195, 32, 67, 45, 23,140,239,111,113,244,233,199, 88,189, 84, 80, -172, 79,232,157, 56, 71,109, 11,202,106,130,210, 33,217,208,114,237,242, 45, 90, 71, 54,201,175, 45,226,247, 87,164,117, 5,117, -129,215, 29,166,219, 5,253,115,231,217,186,113,131,108,189, 41,240, 81, 74, 76,186, 97, 72, 43, 78,112,206, 49,155,102,162,236, - 70, 17, 30,100, 83,239, 60,113,154,162,181,102, 52, 26, 17, 4, 1, 85,109,169,236,140,176,185,246,180,210,180,219, 45,166,211, - 41,211,201,223,154, 39, 99,147, 16,107,141,115, 86, 70,134,182,220, 83,254, 64, 10, 75,118,179,229,227,241, 24, 19,132, 36, 81, - 76, 24,132, 36,129, 33, 47, 74,162, 72,211,237,119, 49,218,200,166,181,200,177,214,161,148,102,107,107, 11,173, 20,221, 78,151, - 48, 8,137, 99, 33,221,137, 67, 62, 20, 85,173,250,185, 90,241, 40,100, 54,149, 90,215, 32, 72,240,206,227, 93, 13, 65,208,128, -204,124,115,112,178,152, 64, 75,114, 75, 22, 72,188, 23,154,168,172,144, 90,230,229,181,224,151,131, 32,146, 84, 10, 21, 74, 5, -152, 38,250, 23, 52,135, 64,231,128,230, 96,171, 42,221,108, 20,196,188,231,149,162,174, 74, 74,239,169,107, 79,220,160,217, 37, - 34, 24,200,162, 30, 4,130,111, 12,195,144,178,156,238,189,193,214, 66, 86, 20,180,195, 93,254,110, 13, 26,112, 50,228, 23,100, -157,204,109, 3, 45, 89,185,218, 72,187,147,115,158, 36,141,228,244, 56,155, 81, 85,117, 99,190, 19,195, 85,208, 60, 57, 72,220, -193, 59,201, 54,218,177,196,208,188,243, 34,143, 55,187,248,110, 83,131, 89, 89, 75,158,201,239,154, 77,166, 64, 77,216,235,147, - 79, 38,180,187,125, 92, 16, 72, 25,129,214,152, 40,198,107, 40,178,138,118, 18, 51,203, 51,156, 50, 96,118, 37,109,169, 4,212, - 90,211,238,118,153,140, 70,104, 99,136, 66,233, 3, 86, 90,204, 8,187, 25,122, 87,215, 40, 15,101,158,163, 20, 24, 99,152,140, -199, 40, 37,156,226,188,200,232,116,100, 39,156,101, 50,103, 81, 74,209, 78, 4, 5,152, 68, 97,147,145, 23, 82, 27, 64,187,213, -218,171,131,213, 90, 55,124,117,207, 44,207, 9, 3,189,231, 80,223,149,233,241, 52, 23,156,151,145, 72, 37,167,200, 94,183,143, - 54,138,162, 40, 41,138,130,110,183, 67,167,219, 17, 67, 81,131,130,141,211, 24,144, 2, 1,173,193,218,154, 60,159, 81, 85,133, -124,241, 84,133, 14, 2,104,230, 52, 32, 39,132, 60,111,220,161, 86,124, 13,222,123,100, 11,226,155, 89,143,152,190,116,187, 41, - 1,137, 18,138,198, 20,216,141, 74,190,246,228, 0,188,195, 15,107, 86,135, 83,206,158, 56,192, 40, 12,137,202, 18, 95,215,204, - 61, 52,207,131,247,239,241,248,201,125,156, 58,177,159,245,183,215, 24,151, 53,214, 24,210, 73,205,226,129,132,120,190,205,108, -103, 70,149, 6,244, 78, 44,178,122,123,131, 56, 82, 76,103, 37,190,174, 8,102, 53, 7,231, 66,212,254, 83, 28,159, 63,200,112, -123, 11,235, 28,103, 79, 30,103,190,223,227,245,203,239,241,250,219,151,185,120,254, 28, 7, 23,165,133,237, 39,175,188,202,218, -198, 22, 0, 14,215,200,139, 16, 7,134, 95,254,236, 39,249,200, 83, 79,240,157,159,188,200,173,219,119, 64,105,122,157, 14,171, -155, 27,204,242, 28,239, 60,139,251,247,113,116, 50, 33,137, 98,134,147, 9,121,158,115,127,101,149,118, 43,101,223,220,128, 32, - 8,200,139, 2,231, 16, 42,160, 73,169,108,213, 72,145, 21, 56,216, 26, 21,140, 39, 99,249, 92, 81,226,129, 80,138,131, 11,243, -116, 91,109,105, 57,107, 28, 73, 95,252,212,199,137,227,152,191,248,206,247,153,102, 25, 39,150, 14,115,254,204,105, 94,124,245, - 53, 64,170, 92,159,126,236, 2, 31,251,240,211,152, 48,228,219, 63,252, 9,227,233,148, 65,167, 37,133, 51, 97, 32,114,187,171, -193,202,171,246,222, 83, 89,201,176,175,172,111,242,210,165,183,120,235,221,247,240,222,243,165,207,126,138, 71, 78,157,164,215, -235, 72,217,146,173, 88, 58,116,168, 65, 65,211,156,218,132,210,104, 2, 67, 20,138,250, 83,150, 37,203,107,107, 92,187,115,135, -159,127,244, 59,109,186,237, 54, 87,174, 93,231,212,137,227, 20, 69,193,253,213,117,174,221,188,197,181,155,183,184,251, 96,153, -205,161,192,126,162, 32,224,220,169,147,164,105,204,160,215, 98,154,101, 92,190,250, 1, 81, 24,113,241,145,179, 76,139,130,215, - 46,189,201,255,244,143,126,139, 99,199,143,242,191,223,223,102,187,170,208, 85,135,251,247,222,100,238,208,179, 60,255, 79, 60, -191,125, 36,165,240,142,127,198,127,202,223,252,217,255,136,198, 98,162, 46,101,166, 57,112,168, 96,117,237, 38, 38,120, 0, 53, -248, 58,167,152,109,176,179,126, 29,245,210,109, 22,162,231,240, 15, 70,212, 85,142,155,148,148,211, 7, 44,157,251, 34, 91,227, -255,136,137, 42,206, 62,125,145, 39, 63,229,169,189,226,167,223,111, 17, 5,158,185,199, 21,211,202,179,189,115,157, 67,131, 83, - 80,121,184, 13,219,235,138,110,223,115,228,163, 25,213,161, 8,191,110,152,100,158,205,205,132,181, 15, 52,247,207, 67,145,122, -102,175,192,193,167, 35, 92,191,198,215,138,246, 51, 10,126,242, 60, 65,112,156,205,222,139,172, 77, 50, 20, 1,133, 53, 76,179, - 85,116,252,255, 80,229, 61,150,111,190, 79, 16, 76,104, 13, 45,179, 98,139, 78, 43,226, 23,190,242, 41,202, 95,250, 24,111,191, -248, 3,138,145,162, 88, 93,195,122,145,159,203,122, 68,118,117,204,141,185,111, 19,149,159, 35,187, 54, 99,225,161, 49,117, 57, -165,115,176, 77, 94, 65,225, 21,199,158,255, 24,215,190,245,231,104, 20, 94, 11, 43,189,118, 18,239,242,222, 19, 38,130,159, 46, -114, 71,110,171,102,175,172, 8,162,144,241,120, 76,187,221,197,171,154,196, 39, 56,229,176,165, 37,214,193,158,250,213,110,183, -209, 8,185, 52,203, 50,124,237,176,206, 54,247, 72, 79, 81, 90, 33, 96, 42, 69, 20, 54,166,180, 48, 68, 16,198, 94,144,215, 89, - 70,210, 74,113,181,163,213, 18,240, 77,145,149, 4, 73,176,103,240, 86,104, 70,195, 17, 56, 71,229, 28, 91,219, 91,104,163, 25, -244, 7,226,121, 34,196,150,242, 51, 39,147, 9,105,154, 64, 93, 83, 3,189, 94, 15,165, 20,147,201, 4,137, 12, 59,252,238,104, -179,150,247, 33, 77, 99, 2, 99,176,222,131,247,205,104, 88, 70,102,214,213, 68,129,148,150, 5, 58,160, 82,224,156, 28,156,189, -243,232, 80,188, 94,248, 26,239, 37,125,228,108,141, 14, 26, 35,159,246, 40, 35,222,169,170,174, 48, 40,180, 9, 80,129, 33,140, - 26, 92,175,242,212,214,145,166,137,200,239, 71,142,159,248,122,171, 37,174, 64, 99, 4,200, 31, 71, 17, 97, 16, 18, 24,141,114, -210,138, 22,132, 1,129, 9, 81, 90,184,224,129, 9,197, 9,237, 85,179, 3, 17,253,223,123, 71, 89, 86,132, 65, 36,208,137, 40, - 33,142,163,189,153,117, 20, 68,120, 37, 51,140,202, 74, 94, 55,140,195, 61, 21, 32,155,137,164,174,194,136,186, 18,147, 28,222, - 83, 22,150, 44,207,246, 28,241,149, 19, 10, 93, 86, 90,116,104,246,102, 45,253,193, 64, 40, 65,129, 66, 57,145,139, 77, 32, 82, -116, 16,135,180, 82,145,217,119,231, 63, 74, 41,156, 21,105,219, 32,198,174, 93,124, 38, 90,102,232, 81,104,216,217, 25, 50,203, -164, 53, 40,159, 78,201,242,156,118,167,211,128, 5,132,228, 19, 69, 49,224,177,182,162,211,145,120,217,120, 50,161,172, 4,252, - 33,196, 46, 33,188,205, 50, 41,158, 49, 74, 28,244, 73,154,138,156, 95, 11, 84, 33,106,226, 20,147,201, 20,163, 21, 74, 25,130, -208,176, 7,136, 8, 12, 70, 9, 80, 69, 25,132, 73,236, 37,242, 80, 86, 82,122, 99,173, 69, 43, 67,167,221, 98, 54,157, 81, 86, -210, 64,151,164, 9,198, 52,152,217,162, 32, 12, 99,140,209,141, 97,207, 82,238,114, 0,202,140, 36,138, 80, 78, 92,159,104,193, - 9, 23,141,177,164,211,106, 17, 70,194,121, 87, 78, 90,188,140,209, 36, 73, 74,171,149,240,241,211, 49,159,122, 40,193,123,141, -178,112,251,238, 58,216,138,229,141, 25, 61, 20, 39, 78, 47,146,151,142,153,134, 72,107, 34,231, 25,142,102,228, 30,148, 49,204, -138,146,201,176,100, 56,202, 88,236,132,220,191,189, 69, 21, 71,140,198, 37, 71,143, 45,128,245,156, 90,232, 80,216,154, 91,247, - 55, 48, 7,207, 97,227, 62,239, 92,189,198,143, 94,126,149, 89, 86, 48,215,239, 18, 4, 98, 62,252,238, 79, 94,228,253, 27, 55, -121,232,248, 17,118,139,114, 54,182,135,128, 34,137, 99,186,173, 22,199,142, 44,241,250, 91,151,249,119,223,248, 38, 91,219, 59, -120,164,194,244,194,153, 83, 28, 61,120,136,249,193,128,162,204,113, 30,214,214, 55,216,216,218,226,222,242, 42,120,207, 52,203, - 89, 93,223,100, 50,157, 49,158, 78, 73,211,132,126,183, 45,227,151, 64,210, 18,117, 93, 51,158,101, 24,173, 40,173,229,165, 55, -222,228,202, 7,215,126,142, 99,174, 57,123,250, 20,173, 84,192, 77,253, 78, 27,101, 12,117,109,185,122,227, 22, 55,110,223,165, -170, 74, 54,135, 99,174,223,190,195,115, 79, 61,193, 11,175,188, 70, 93, 59,142, 29, 57,204, 71, 46, 62, 65, 18,199,124,235,123, - 63,196, 1,157,118,135,249, 65,143, 78,167, 3, 52, 72, 79, 95, 75,205,176, 21,150,182,173,189,204,231, 2, 67,158, 21,108,236, - 12,169,202,146,202, 90, 6,189, 30, 73, 34,228, 48,241,104, 56,170,178,164,176, 21,117,237, 8,194,144,126, 87,106, 81,147, 52, -161,221, 74,233,180,219,184,218,114,127,121, 21,231,197,152,248,233,231,159,227,239,124,236,163,124,252,185, 15, 17, 6, 1,181, -151,114,160,229,181,117,102, 69,193,237,123,203,108,236,236,112,250,196, 49, 62,249,145, 15,115,234,216, 18,247, 87,214,153,101, - 5, 73, 20,113,233,242, 21,148,130,249,249,121, 62,249,228, 35,152,170,224, 19, 31,122,156,111,168,136,119, 86,135, 28,159,251, - 47,168,214,142,179,122,255, 5, 6, 11,154,125,238, 17, 54,142, 42,246, 71,246,255,227,234, 61,131, 44, 77,207,243,188,235,125, -191,124, 98,135,233,233,158,156,118,119,102,243, 34, 46, 0, 9, 0, 1, 38, 65,164,105, 72, 36, 69,145, 46,154, 18,109, 75,116, - 82, 73, 42,149,202,101,151,203, 42,201,233,143,237,146, 93, 22, 21, 44,202,180, 89, 50, 77,145,146, 72, 89,162, 37,146, 16, 40, - 36, 18, 88, 44, 54,239,204,236,228,208,185,251,244, 9, 95,126,131,127, 60, 95, 15, 72,119,213,254, 65,245, 98,187, 79,159,243, -189,239,115, 63,247,125,221,124,176, 53,230,189,111,254, 54,101,113,139, 43,159,252,243,252,232,159,251, 51,252,237,191,250, 3, -240,125, 63,196,239,252, 47,127,141,182,158, 50, 94,123,137,149, 19, 31,102,245,196,171,216,197,130,252,240, 6,197,116, 6, 38, - 32, 78,135, 24,103,248,158,191,241, 51,216, 7,125,204,169, 61,194, 75,142,205,215, 51, 14, 79, 12,249,222,151, 42,138, 73,192, -205,175,192,189,249,155,100,219,207, 50,216,240, 92, 58,157,243,242, 89,205, 87,126, 79,179,252, 9,248, 76, 95,241,193, 65, 72, -126, 15,234,109, 69,179, 5,109, 11,197, 67, 79,176,167, 24,127, 68,209,198,158,188,210,152, 80, 81,191, 14,222,130,178, 35,138, - 7,235, 44,159,153, 50,159,202,107,226,145,225, 97,237, 66,132,155, 52,236, 61,254,128,249,254, 93,230,123, 59,156,254,158,239, - 99,116,238, 26,145,214,172,156, 90,101,146, 79,168,119, 43,108,163,113,205,156,122,113, 64,185,216, 69,219, 29,194,179,240,248, - 59, 15, 89, 52,219, 52, 7,123,140, 79,157,196, 56,193,126,135,253, 30, 89, 28,145,239,239,162,129,166,170, 17, 47,144,161,109, - 91, 49,139,121,143, 69,154,217,162, 40, 34,238,252, 52,199, 19,176,114, 80, 86,165, 28,246, 97,136,181,178,226, 51, 70,136,157, -117, 91,203, 90, 20, 5,218, 83, 22, 21, 77, 85, 17,119,113,223, 56,142, 9,181,228,193,157,247,180,221, 48,150,196, 82, 28,230, -189, 23, 54,134,147, 33,195, 24, 67,218,147, 42,217,170,227, 71, 40,232,124, 1, 93,244, 76, 9, 86,252,216,176,157, 36, 49, 65, - 16, 9,168,169,147,250,189,131,193, 80, 62, 51,249, 98,193,160, 63, 4,165, 59, 35, 96, 76, 18,201,239, 11, 16,133, 49,210, 57, - 47,107,215, 0, 13, 90,158,153,206,122,210, 84, 62,203,241,147,245, 67,210, 69, 0,229,249,107,141, 35, 8,100,255,175,117, 32, - 42,176,146,146, 28, 81, 74, 29,173,147, 52,154, 14, 35,241, 58,104,228,119,174, 91, 81, 72,240, 40,223,213, 28, 91,107, 40,196, -192, 81,114, 0, 0, 32, 0, 73, 68, 65, 84, 10,217,221, 58, 20,189,238, 5,153,207,102,221, 35, 70, 19, 68,225,147, 27,139,245, - 30,103, 4,143, 39,117,160,190,107, 41, 3, 90,249,224,203, 63, 93, 67, 79, 99,208,202, 51, 24, 14,209, 97,132,214, 30,111,193, -121, 79,150,100, 36,169, 68,165,140, 49,204,102, 83, 28,144,244, 6, 34,227,134, 49,253,161, 56, 26,171,170, 64, 41,141,210,154, -249,124, 38,251, 4,213, 16,103,210,152,165, 2, 41,169, 8,131,206,160, 54, 47,159,160, 51,179, 84, 26,134, 64, 16,125,129, 22, - 7,121,209,181, 77, 89, 43, 37, 46, 32,251,239,229,229, 37, 2, 45,142,255,197,108,134,181,150, 52, 75, 40,230,185, 76, 78,202, -129,129,201,228,136,241,120,136,214, 33,113, 20, 98,172,196,207,134,131, 1, 14,197,124, 62, 35,140, 98,162, 64, 98,100, 32,209, -181,166, 44,177, 70,154,164,142,205, 24, 97,168,165,244, 94,107,148,119,204, 22, 11, 20,142, 56, 73,101,111,105, 12,190,161,219, -103,131, 10, 20, 89,156, 33, 62, 73, 77,152,132,120,207,119, 87, 36,222,163, 98,217, 57, 89, 47, 81,143,217,108, 14,120, 1, 25, - 0,105, 36,254,135,170,146,215, 65, 33, 18,144,119,134,166,169,100,149, 82,138,113, 74, 41, 69,152,200,107, 27,199,113,247, 1, - 21,120,194,177,180,239,189,167,174, 43,201,135, 86, 53, 63,253,209,101, 48,160, 98, 13,135, 11,134,163,140,163,173, 9,132, 16, -123,195,244,209, 1, 91, 22, 22, 73,192,162,109, 25,182,208,139, 35,182,242,146, 75,202,163, 71, 61, 10,227, 72,181,230, 48, 9, - 57,127,121,149,235, 15,167,180, 94,146, 20,206,123,222,107, 91,158, 59,127,130,222, 78,203,108, 94,241,216,236,241,104,123, 23, - 16, 53, 37, 12, 67, 86,151,150,249,173,127,243, 13,140, 49, 60,255,204,211,164, 81,204,165,243,231,120,248,120,139,165,225, 0, -231, 28,103, 54, 54, 72,210,132,182,105,121,255,206, 93,142,163,140,222, 58,202,178,228,238,163,199, 92, 58,127,134,178, 42,187, - 91,120,205,218,234, 42, 74, 41,202,186,101,115,123, 23, 99, 26,174, 94,185, 66,221, 54,148,149, 40, 32,222,251, 39,239, 73,231, -165,235,160, 42, 43,182,103, 51,222,122,239, 58,111,223,248,128,214, 28, 31,232, 16,133,138,201,116, 66, 18, 93, 96,117,121,153, - 40,142, 8,116,192,214,209, 17, 55,238,222, 99,158,231,164,105,202,167, 62,242, 33, 54, 78, 44,179,123,120,136,243, 96,172,128, -101,234, 86, 64, 73,147,249,156, 55,175,223,224,228,234, 9,202,186, 18,136, 80, 28, 19,132, 1,166, 59,208, 77, 43,221, 13, 42, - 8,152,204,231,220,121,244,152,219, 15, 31,162,149,124,142,171,186,101, 58,159, 75,222,126,216,103,177, 88, 80,148, 21,162, 14, - 10,209,113,121, 41,147, 14,231, 48, 36,237, 76, 80, 85, 93,145,196, 82, 46,212,230, 5, 75,227, 17, 89,191,199,247,124,234,163, - 24,107,112,214,161,240,108,237,238,177,185,179,203,119,222,121,143, 71, 59,187,224, 60, 27, 39, 78,112,254,244, 6,253,126,159, -217,162,224,239,253, 95,255,136,229,209,144,213,213,101,222,187,113,139, 19,171,203, 36, 88,126,238, 79,254, 49,254,201,172,225, -157,195, 93, 62,241,197,191,204, 95, 60, 11,255,240,181, 51,212,237,103,136,227,125, 30, 84, 48, 81,138,175,252, 66,194,221,215, -190,193, 51,175,252, 4,113,111, 70,112,226, 89,222,120, 29,126,244, 55, 38,244,122, 67, 86,206,127,142, 72, 31,112,246,226,103, -249,220,231,255, 8, 31,255,177,154, 95,248,235, 63,197,175,253,157,115,156,189,242,253, 28,213, 71,236, 62, 56,100,116,242, 5, -212, 27,138,213,143,101,172,142, 63, 65,230,150,185, 60, 88,227,227,167, 11, 22,192,191,250,181, 3, 94,127,237,111,162,215,246, -137,139,139,240,247, 71, 56,179, 68,255,212, 89,118,238,254, 54,246,239, 39,252,227,151,190,143,245,107, 79,243,217,255, 72,241, - 34, 49, 87, 84,202,175,207, 53,155,255, 66,113,184, 11, 47,172,120, 22,143, 20, 46,131,217,212,163,198,138,182,240,184, 72, 17, -170, 19, 44,110,188,194,169,243,138, 76, 61, 96,127,186,160,154, 23,248,126,159, 79,124,241, 57,198,111, 69, 60,186,254, 46,204, - 83,214,178, 63, 78,245,158, 99,118, 98,159,216,230, 92,220,216,224,205, 71,111,209, 62,246,180,182,166,204, 15,176,139, 93,170, -188,199,209,254, 93,122, 67,197,244,214, 54,113,223,227, 77,141,138, 82, 76,227, 48, 13,244, 47, 61, 77,250,240, 30,211,205, 71, - 88,239, 8,148, 38,141, 19, 22,121, 78, 94, 44, 68, 97, 53, 78, 96, 84, 64, 24,198,164,105,140,247, 50,252, 89, 47,242,121, 89, -148,212,212,244,210, 76,250, 34,196,150, 33,103,132,175, 37, 3,175, 35, 25,142,162,136,131,201,132, 44, 73,232,245,251, 98, 28, -211, 90,192, 93, 64, 93,151, 68, 81,194,120, 60, 22,208, 76, 85,162,148,102, 56, 26,146,231, 11,234, 74, 26, 63, 7, 61, 57,148, -143, 41,117,121, 94,210, 52, 21,109,183, 95,183,221,123, 85, 20,227,128, 40,150, 9, 91,146, 72, 61, 22,249, 66,146, 77, 81,194, -162, 88,144, 36, 41,206, 90,233,107,143, 35,130, 40, 38,246,177,236,228,123, 41,199, 42,119,190,200,113,181, 35,203, 18,210, 84, -146, 43,109,219, 32, 29,238,138,180,159, 18,162, 9,162,136,241,104, 76,219, 53,193, 1,210, 73,162,192,187, 6,144,134, 54,229, - 21,202,120, 90, 20,117, 93,163,148,156, 35, 79,124,112, 90,163, 91, 69,163, 27,210, 56, 33,140, 66,113,115,167,189, 30,222,123, -102, 71, 83, 80, 1,206,137, 64,238,148,195, 27,195,228,232, 72, 14, 11, 96,212, 31, 96, 90, 49,181, 5, 74,209,235,103, 40, 37, - 77, 79, 74,129,115,142,249, 98, 78,191,223,167, 44, 75,122,189, 62, 69, 89,200, 30, 65, 9,211, 59, 8,100,242,180, 86,120,220, -211,201, 20, 99, 29, 42,138,100,202,246, 17, 73,183, 67, 55,182,165,105,228,102,167,212,177,203, 29,134,163, 17, 77, 91,211, 52, - 21,163,209,152, 50,207,233,117,208,141, 65,218, 99,190,152, 51, 24, 12,240, 74,120,213,101,158,163,130, 0, 29,199, 12,135, 99, -240, 86,204, 75,198,112, 52,157,202, 67, 53, 73,152,205,166, 40,165,209,161,192, 15, 52, 33, 85, 81, 10, 88, 39, 0,237,161,168, - 90,192, 51,159,231, 34,241,116, 47,112, 47, 77, 9, 34, 65,129,102,105, 79, 34, 15, 58,192,180, 34,111,155,166, 65, 43,245,196, - 33, 28,198,178,159,153,205,230, 4, 81, 72, 47, 73, 41, 22,115,210, 94,134,242, 80,148, 21,222, 91,210, 52, 3, 37,100,176,168, -187,193,210, 29,240,242,119, 59,194, 58, 79,160, 66,156,239,148,135, 64,138,109,194, 32,192,105,197,112, 56,144, 75,137,150,189, - 77, 81, 20,146,129, 31, 8, 22,209, 59, 80,120, 92, 83, 17,165, 25,182,181,204,155, 25, 89,154, 17,106, 77, 89,213, 88,196, 32, -167, 91, 97,212,199,161,152, 71,156,179,244,178, 30, 69, 89,210, 26,195,247, 94, 77, 89,239,201,161,230, 19,184,115,111, 7,237, - 13, 85,209,240,252,198, 8,151, 23,168, 72, 49,176,158,126, 24, 82, 28,213,188,190, 61,165, 1, 74, 15,211, 56, 64,233,152,139, -103,123,236, 62,156, 48,143, 34, 30,151,150, 44,137,152,148, 13, 55,238, 79,192,193,106,148,114,247,168,100,148,141, 48, 10,218, - 34, 39,236,214, 27,222,123,214, 86,150,105, 90,195,203,207, 93,229,189, 15,238,112,235,222,125, 62,242,210,243,196, 58, 36, 73, - 18,154,166,225,112, 58,227, 43,223,124,141,239,121,245,163, 60,251,212, 21,190,231,147, 31,231,234,229,139, 92,191,117,151,157, -131, 3, 38, 71,115, 54,183,119,153,206,133,253,239,148, 22,197, 74,105,182,118,101, 90, 71, 57, 86,150,151,184,122,249, 2,107, -107,171, 76,166,115,230,243,156,209,112, 64,146, 74,191,116,160,197,213,154,166, 41,167,179,148,245, 19,171,172,157, 56,193,191, -252,221,175,114,252, 37,117,189,136, 1,198,125,247,162,121,225,204, 25,174,156, 63,203, 7,119,238, 83, 85, 21,191,255,250, 27, -124,248,197,231,104,157,227,233,139, 23,184,116,241, 60,159,254,216,135, 49,198, 48,201,115,250, 89,198,217, 83, 27, 60,117,225, - 2, 47, 62,253, 20,101, 46,128,162,192,218,238,242, 37, 88, 76,165, 20,182,182, 76,142, 38, 28, 28, 28,145, 87, 21, 87,206,157, -101, 99,125,157,143,191,242, 2, 87,206,159, 35,203, 50,132,200, 21,146,166, 13, 71,179, 25,120, 71,218,173,210,172,181, 84, 85, -197,111,125,245, 27,252,155,111,124,147,155,119,239,241, 7,123,225,211, 36,230,165,103,174, 96,172, 35, 63,146, 97, 97,182, 88, - 48, 91, 44, 24, 13, 7,140,250, 18, 83, 43,129, 69, 94, 48, 57,154,226,172,227,204,198, 58,151,207,159,101,123,255,144,197,162, -224,212,201, 53, 62,116,245, 41,214,134, 49,118,253, 20,215, 31,237,113,138, 31, 97, 41,131, 95,226,144, 7, 55, 87,136,117,200, -222,214, 61,118, 31,255, 75,212,239, 90, 92,208, 50,219,186, 69,128, 35, 27, 39,132, 91, 83,226,100, 76,211,204, 56,216,220,231, -218,103,255, 83, 70, 97, 69,126, 84,242,198,155,135, 60,188,183,138, 14, 60,233,240,101,182,239,126,139,229,245,167, 56,127,237, -223,225,234,243, 63,192,230,157,111,178,163,191,193,112,112,138,253, 15, 12,215,171,130,191,255, 63, 94,231,222,219,191,200,226, -240, 13,134,163, 85,242, 34,167,215, 75,137, 82, 33, 78,154,119, 10, 92,171,177,190,101,247,225, 47,114,233,254, 15,176,245,206, -207,240,194,231, 62,194,103, 62,167,208,206,179, 61, 83,220,121,243,109, 78,252,153, 23,184,252, 74,129,219,239,177,255, 14,236, - 28, 42,172,170,200,231, 33, 83,167,152,108, 77,152, 95,159,177,124,165,230,218,185, 13,174,215,134,235,239,222,192,183,150,171, -207, 93,226,212,249, 85,246,110, 42, 86,214, 95, 34,159,222,166,186, 53, 99,177, 92,113,114, 20,178,177, 58,230,254,189, 67,188, - 5,111,114,240, 53,110,150, 50,221, 59,224,227,159,252, 16,247,110,123, 50, 45,141,106, 1,150,214, 11,187,188,105, 67,206,124, -242,211, 52,255,252, 55,240,177,193, 89, 79, 89, 55,244,135, 3,176,130, 82, 77, 51,153, 88,189,181,228, 69, 65,110,100,141, 26, -234, 4,111,133,216,214,207,122,128,163,172, 27,172, 51,114, 88,107, 24,244,135,120, 44,197,162,194,169,174,151,163, 42,241, 70, - 12, 96,101, 85, 19, 71, 17,227,229, 37,156,113, 68,105, 44, 64, 46, 35, 16,172,214, 26,250,131, 1,206,203, 97, 28,133, 17,117, -221, 60, 49,189,133, 97, 36,131, 84, 83,147, 38, 9, 85, 93,226,189,248,105,218,186, 34, 73, 99,226, 48, 4, 39, 62,161, 40,137, -136, 98,241, 57,101, 89,198,108, 54,199,133, 82, 30, 54, 91, 44,192, 41, 84,160,169, 90,131, 54,158, 56, 14,176, 22, 22,243, 41, -222,122, 70,195, 33, 89, 42,151, 30,239, 5,164, 19, 4,242, 25, 46, 59,117, 54,159,119, 43,133, 52,165,151,166, 68, 81,210,249, -147, 68,233,118, 14,188,119,204,243,156,225, 96, 0, 14, 60,150, 64, 71,228,197,156, 48,136,200,122, 25, 10,133,243,134,162,168, - 72,123, 25,120,121,166,135,199, 59,225,249,124, 46, 15, 96, 0,103, 24,142, 70,180,198, 62,121, 64,226,193,122,217,125, 28,118, -109, 80,120,209,251,199,163, 49, 90, 59,145, 14, 60,210,145, 30, 72,215,122, 16, 72,188,224,152, 54, 22,105,113,203,135, 90, 99, -218,150,217,108,134,119, 86,246,205,189, 30,161, 82,148, 85,137, 71,118,235,222, 11,126, 47, 77, 82,140,151,168,153, 87,138,193, - 80,138, 87,240,114, 67, 51,173, 72,249, 90, 11,213, 74,105,217, 79,162,160, 40,115,180,134, 48, 8,113, 14,185, 40, 24, 41, 89, -209,161,102, 62, 47,186, 67, 48, 36,138, 2, 2, 21,203,234, 65,105,136, 19,188,119,164, 62,197,180,146, 23, 28, 12,134,196,169, -116,235,226, 60,160, 37,255,235, 45,101,221,160, 91,141,177, 45, 40,232,247,134,180, 70, 74, 13,218,170, 34,212, 33,105, 63,195, - 35, 4, 35,103, 92, 23, 29, 9,133, 99,239, 60, 89,175,143, 49,194, 84,206,250, 61,154,178, 38,140, 2, 22, 51, 49,149,180,199, - 30,132,182,101, 48, 26, 49,159, 77,241, 58,192, 52, 21,173, 23,196,237,210, 96,137,162, 42,152,119, 77, 88,129, 10,104, 76,131, -228, 55,229, 1,239,241, 40,171, 58, 23,123, 12,117, 77,109, 12,253,126,159,249, 98, 33,232,198, 80, 46, 94,105, 58,160, 23, 4, -242,254, 80,199,121,121,161, 43,181, 13, 29,229,200,200, 84,143,227, 39, 94, 22,118, 61, 9,168,237,130,111,189,185,201,234, 40, - 33, 11, 20, 58,207, 57,172, 28,117,181,224,228,234, 0,156,165,202, 91, 84,168,176, 30, 86,179,128,184,159,145, 6,176,121,119, -159,178,110,185,104, 71,108, 79, 11,114,235,201,116, 40,156,120, 5, 77,107, 73,138,134,239, 20, 5, 39,226, 28,178, 17,227,209, - 80, 14,142,249,140,157,253, 3, 86,150,150,216, 61,152,112,112, 56, 33, 77, 99, 54,183,119,121,230,242, 69,178, 36,161,106, 26, -130, 32,224,147, 31,126,133, 23,159,189, 74, 28,132,108,156, 88,225,206,253,135,220,121,248, 0,231, 96,117,121,204,211, 87, 46, -178,126, 98,153, 32, 8,196,157,219, 52,236,237, 31,176,127,112, 32, 31,164, 48,228,233, 75, 23, 56,117,114,141,209,112, 64, 47, - 73, 49, 39, 86,209, 8,194,248,189, 7, 15, 57,177,180, 36,151, 62,173,104,218,230,137, 73,108,105, 52,146,131, 18,193,107,174, - 46,141, 89, 93, 94,102, 52, 24,136,185,174,105,152,206,231, 60,122,188, 37,254, 11, 5,103, 54,214,137,163,136,229, 94, 74, 47, -142,185,121,235, 46, 79, 93, 56,135, 86,154,239,188,251, 30,101, 37,205,105, 55,238,221,163,223, 79,185,116,238, 28, 58, 16,146, -162,168, 57,138, 48,140,137, 34,185,240,158, 92, 61, 65,150,222,163,159,166,220,121,240,136,121,158,115,233,236,105, 94,188,118, -149, 94, 26, 83, 53, 70, 38,125,173,208, 90,250,210,195, 78,157, 42,107,136,195,144, 87, 95,126,145, 94, 18,115,230,244, 41,190, -250,205,215,200, 11,185, 4,129,230,197,107, 87, 41,202, 10,173, 52,243, 60,231,183,191,250,117,254,245, 55,190,197,246,238, 46, -117, 35, 83, 74, 28,135,244,122, 61,150,150, 70, 24, 43,151,248, 31,252,236, 31,225, 95,124,233,171, 60,115,241, 60,243, 60, 39, -193,243,226,149, 11,252,230,214, 4,107, 35,124,180,206,209,183,225,245, 47, 39, 28, 29,126,131,186,125,192,116,243, 93,140,158, - 96, 26,131,109,107,202,249,125,118,239,126,141,103, 95,253, 17, 84, 82, 66, 24, 97,138, 57, 77,181,160,250,214,255, 46,156,133, -112, 76,191,191,142,179,215,112, 65,204,231,127,248, 23,217,222,254, 21, 6, 39, 71, 92, 58,255, 83,124,250,167, 21,223,254,245, - 19,188,246,155,127, 19, 14,193,228, 37,179,195, 59,228,139, 41,144, 18, 70, 61,230,179, 41, 56,195,220,182, 4, 69,133, 55,226, -252,118, 78, 50,201,197,180,229,253,163,127,202,248,196, 55,184,254,149, 51,252,234,127, 55, 32, 12,199, 56,159, 83,230,143, 56, -250,169,159,225, 83, 95,252,105,254,236, 79, 84,152,143,102,212, 95,131,195,226,144, 96,227, 17, 90, 29, 49,123,111,143,157,251, -223,225,193, 59,219, 28,124,228, 2, 87, 63,245, 18,170, 45,185,243,232, 17,173,247,156, 91, 26, 50, 62,223, 48, 59,124,132,105, - 61,249, 60,167, 50, 7, 52, 71,142,229,193,128,251,227,199, 48,201,208,170,123,222,198, 17, 71,243, 28,180,230,249, 15, 61,143, -137,196,148,101, 10,131,200,126, 1,101, 9,193,104,200,234,181,231,216,123,247, 45, 22,139, 5, 0,149,119, 12, 6, 3,154,170, - 33,246, 33, 58, 12,105,172, 20,240, 4, 65, 32,133, 41,109,131,246, 10,148, 72,227, 97, 16,147,101, 82, 13, 93, 85, 18, 49, 5, -240, 94,145,100, 49,206, 41,192,131, 19, 92,118,221, 72,243,166, 67,204,186, 97, 20, 82, 85,149,172, 21, 3, 77,104,132,158,217, - 84, 21, 85, 93, 99,189,101,121,184, 68,214,235, 9,147,161,145,172,189, 53, 93,219, 40,142,193, 96,196, 98, 54,235, 84, 81,197, - 98,158, 19, 45, 69,194,149,215, 10,219, 90,106, 85, 96, 29, 79, 82, 33, 81, 20, 81,149, 37, 88,143,199,161,172,167,110,229,103, -175, 42, 25, 30,156,147, 60,250, 60,159,147, 37,242,236, 11,117,216, 41,174,186,139,171,137,209,216,122, 71, 91,212, 18, 27,111, - 42,194, 32,166,151,117,175, 91,253,221, 6, 76,173, 84,183,214,141, 81,200,128,148, 36, 25, 85, 83, 19, 84, 21,113,154,209, 52, -150, 40, 12,187,182, 82,233, 53, 9,171, 90,178,165, 32,149,148, 14, 40, 43,105, 91,210, 74,178,229, 58,234,152,232,165, 33, 74, - 98,188, 5,237, 29,121, 81,128,129,253,253,125,113,223,105,205,104, 52, 38,234,178,140, 97,231, 46, 86,240,221,203, 1,194, 13, -159, 77,167, 79,178,226, 65, 28,145,232,128, 16,168, 90, 35,160, 16, 28, 30,223, 25,223, 2,134,195, 33,166,144,238,101,217, 5, -183,232,208, 49, 26, 15, 17, 44, 97,139,246,158,233,116,202,120, 52,194, 41, 1,228, 47,138,156, 48, 12, 73, 2,153,150,140,107, -200, 23,237, 19,167,121, 47,203, 24, 15,229,161,170,117, 32, 19,141,130, 56,203, 8,117, 32, 96,130, 88, 99,172,144,130,134,195, -126, 39,165,122,138,162,236,118, 53, 1,195, 76, 76, 26,248,174, 76,192, 6,228,101,133,214,190,139,114, 36, 93,238,191,161,236, -100,127, 99,165,174, 20,160,232, 58,130, 23,139, 57,253,254,128,178, 44, 1, 41,216,145,166, 58, 1, 59,104,173, 65,137,206, 30, - 5, 17, 10, 24, 12, 71,184,182,193,212,210,164, 54, 24,246, 65,195, 96, 48,192, 26,219,177,137, 29, 65, 24,176,152, 47, 80, 74, - 49,236, 15, 64, 75,132, 81,163,168,170, 26,165,165,133,109, 62,159,161,149, 98, 48, 30,227,172, 65,218,128, 22, 56, 47, 52, 35, -165, 20,129, 14, 48,129,236,250, 21,158, 48, 12, 8, 58,249,236,169,147, 9,103,199, 1, 62,246,224, 52,191,245,187,215,137,181, -163,215, 24, 84,172,201, 91, 79,164, 21,203, 43,125,194, 44, 97,247, 32,103,175,168,137,179,140,181,165, 30,179,105, 73, 98, 65, - 7, 80, 98,169,112,132,182,165,137, 99, 78, 37,154,133,245, 28,196, 1,163,220, 80, 97,169,172,231,103, 63,119,133,215,231,240, -126,173,121,234,226, 69, 0,154,214,112,239,225, 38,167,214,215, 57,127,106,157,247, 63,184,213,145,158,132, 38,184,178,188,196, -112, 48,196, 76,167,114,160,100, 41,189, 94,143, 69, 89,113,229,194, 89, 14, 38,215,184,191,185, 37,232,224,166,237,128, 68, 17, -195,129, 80,195,210, 36,101,107,111, 31,231, 97, 94,148, 76,102, 11, 30,108,109, 51,156,246, 57,189,113,146, 32, 12, 40,171,154, - 71,155,219,178,166,170,196,189,189,185,187,203,214,222, 62, 71,147, 41,187,135,135, 79, 14,116,224, 9,120,165,105, 26, 22,121, -193,160,151,226, 3, 49,185,205,115,105,138,178,214,242, 96,115,147,211,167,214, 73,162,132,253,122, 74, 94,150, 12,251,125,234, -166,230,252,233, 83,188,246,230,187, 84,101,197,242,112,200,222,193,132,241,112, 72,154,196, 36,174, 3,105, 32,107,129,163,233, -140,173,157, 61,126,231,235,191,207,131,199, 2,205,121,249,185,171, 92, 58,123,134,115,167, 79, 49,207,115,142,233,146,130,234, -148, 88,107, 28, 73,197,101,219,200, 94,126, 82, 76,248,123,255,247,175,113,243,131, 59, 44,254,192, 3, 27,164, 17, 43, 47, 74, -130, 64, 61,161, 73, 14,135, 67,174, 94,185, 72, 85, 87, 28, 28, 78,104, 90,195,234,242, 42,175,190,252, 34,103,214,215, 9,130, -128,170,109,232,101, 61, 62,246,202,243,188,254,246,123, 44,143,199,156,233, 71,236, 39, 3,222, 62,170,176, 83, 56,124,244, 53, -222,254, 90, 69, 81,236, 48, 61, 56, 96,253,202,171, 20, 71, 71,180,213, 29, 26,151,210,148, 51,166, 91,239, 48, 88,251, 36,229, - 98, 78, 61,249, 54, 74,245,112,222, 83,206,118,217,158,220,224,204, 51, 31, 38, 28, 94,162,170,142, 48,174,162,154,239,177,178, -250, 2,103,127,232, 69,130,173, 17,135,179,155,188,249,255, 60,195,187,111,191,207,193, 27,183, 56,154, 30, 18, 41, 47,197, 73, -182, 37, 8,196,192, 20,132, 1,253,225, 18, 58, 8, 37, 70,213, 4,114, 88, 24, 35,223,151, 68, 88, 83,179,255,232, 30, 97,186, -139,210,138, 40,238,211, 54, 57,206, 25,222,255,234,127,195,163, 27,255,136,199,247,255, 22, 63,247,159,173,208,255, 99,142,131, - 95, 57, 67,249,193, 22,225,232,144, 96,240, 30,213,236, 38,139,195,125, 30,189, 22, 16,182,151,184,242, 61, 47,224,238, 95,103, -111,145, 99,173,229,226,210,136,157,237,119, 48,238,105,138,197, 2,171, 74,108, 81,147,249,132,208,213,132,233, 16,223, 38,224, - 79, 48, 58,191,198,209,116,202,157,251,143,120,233,165,107,156, 56,127, 30, 76,203,246,163, 45,116,101,169,156,130,221,144, 66, - 55,244, 47, 94, 99,243,157, 55, 8,130,142,242,217,235, 81, 20,133, 12, 34,222, 83, 55,210,136,230, 90,139,193, 49,234,247,137, -146,132,182,109,177,206, 18, 41,241,230,180,166,197, 89,241, 81, 69, 90, 19,119,103, 68, 89,150, 79,158,101, 85, 94, 80, 85, 98, - 54,110, 26, 71, 24, 58,230, 93,241,146,242,138, 52, 77, 80, 74, 19, 5, 49,121, 81, 98,109, 75,191,215,199, 42, 11,129,116,161, -135,177,144, 52,171, 69,217, 93, 52, 34,242,197,156,162, 40, 25, 47, 45,211,180, 13,101,158, 3, 98, 72,139,162,152, 65, 24, 51, - 95, 44,104,141,235,218,219, 20,222, 43,105, 85,211, 33, 89, 38,208,181, 99,179, 50,208, 77,209,162, 70,180,206,208, 84, 21,139, -118,193,112, 56,196, 33, 19,119, 26, 39,148, 85,142,115,162, 82,235, 48, 32,201, 50, 84, 43,137, 24, 99, 12,243,197, 66,124,232, -222, 19,167, 41,222, 88,210, 36,198, 58,199, 98,190, 64,114,235,224,157, 37,141, 69, 13, 46, 75,249,249,179,180, 7,222, 83, 27, -169,125, 13,206, 95,186,252,215,226, 56,166,151,246, 58,103,120,136,119, 14, 21, 4,164, 73, 66,156, 36, 79,246,184,182,187,137, -213,117, 77,107, 26,232, 94, 96,227, 61,174,105,176,120,170,178,162,234,130,251,199,255, 84, 85, 69, 83,149, 84,117, 67, 85,150, -148, 69,142,113, 86,226, 17, 89,138, 83, 96,234, 70,222, 0,198,118,136, 87,129,223,247,211, 12,227,189,180,170,101, 25, 73, 42, -109,111,105, 42, 8, 67,229,229, 98,144,116, 38,132,186,203,136, 59,227,192, 11, 20, 37, 77, 82,234,166,150,233,223,203, 4,111, -141,161,159,245, 57, 46, 46,232,245,123, 36, 81, 68,191,215,163,200, 75,154, 70,246, 60, 65, 20, 48, 91,228,224, 28,105,150,113, -220, 62, 86, 84,242,130, 26, 35, 88,191,227,120,148,105,164, 8, 39, 10, 35,156, 23, 71,122, 20,134, 52, 77, 11, 74, 46, 62, 73, -146, 62,121,184, 89, 35, 93,196,214, 26,146, 68,184, 0,199,208,155, 48,148,120,153,105,101, 15, 25, 4,226, 41,136,162, 24,103, - 28,141,109,112, 86,144,176, 81, 20, 17,197, 49,166,105,196,245,174,180, 48,135,195, 64,232,119, 85, 69, 93,137, 49, 36,203, 50, -156,151,181, 7, 94,227, 76, 67,191,151, 17,199, 9, 69,158,139, 18,210, 31,208, 90, 49, 67, 69, 81,132,214, 98, 38, 83, 90,246, -195,105, 42, 4, 37,227, 44,117, 89, 98,173,236,214,173,181,252,204, 39,251, 60,119, 34,128, 89,203,111,255,179, 55, 65,105, 70, -253, 8, 95, 52,180, 58,160,172, 44, 89, 34,145,168,123, 7, 5,139,142,242, 4,138,222, 60,199, 56, 69, 54, 72, 88, 26, 68,236, -238, 45,136,181, 96, 22, 7,120,242,188,161,104, 28,213,162, 98,222, 90, 62,113,225, 4,203,235, 3, 62,216,202,153,215, 21, 19, -191,198,227,189, 93,222,189,121, 11, 99, 44,195, 65,159,103,159,186, 66,211,212, 76, 23, 5,171,203, 99, 94,126,254, 89,214,215, - 86,121,253,237,119,249,218,107,175, 99,173,101,109,121,137, 44, 77,233,101,146, 78,216,220,217,103,247,224,160,251,176,180,108, -156, 60,193,250,202, 10,151,207,157, 37,138, 99,250,221,101,174,168,106,102,243, 5,211,249,172,163,102, 41,206,156,218,144,215, - 51,148,201, 98,255,112,194,141,219,146, 51,111,141,225,236,169,117,206,159, 57,205,139,207, 60,197,195,205,109,246, 14, 39, 79, - 30, 18, 90,193,120, 56,224,249,171, 79, 49, 30, 14,112,116, 83,128,119,220,121,240,152,189,195, 3,180, 86,156,219, 56,197,249, -179,167, 89, 95, 89,226,236,233, 13, 78, 44, 47, 83,148, 57,189,180,199,228,104,202,245, 59,119, 56,152, 28, 17, 70, 17,175,190, -242,162,228,240, 19, 97, 37,104, 64, 12, 75,142, 32, 80, 4, 97,200,202,120,200,206,238, 1,121, 89, 98,172, 99,208, 19,131, 93, -214, 77, 94,199,158,147,214, 88, 90, 99,208,154,238,179, 38, 32,167,214, 24,246, 15, 14,185,253,232, 17, 85, 85, 63, 57,208, 47, -159, 63,203,149, 11, 23,232,247, 82,178, 44, 67,233,128, 91,119,239,243,230,123,215,121,239,230,109,142,230,139, 39,223,223, 90, -195,234,242, 50, 87,206,159, 99,216, 23,196,168, 49,162, 16, 28, 59,141,215, 51,197,107,109, 76,142, 99,190,151,179,115,251, 3, -170, 98,143, 83,159,252, 83,252,202, 47,124,129,191,240,197,103,248, 78,240,227, 92,255,250,175, 48,219,121,141,124, 54,225,197, -239,255,207,249, 31,190,241, 63,241,133,159,253, 49,190,242,203, 31,240,248,230,175,227,155, 35, 22, 7, 55,184,244,252, 79,211, - 31,159,160,156, 61,162,174,102, 76,247,110,179,125,247,107, 16,151,164, 43,154,163, 15,230,108,222,125,135,111,254,206,223,229, -230,107, 63, 79, 93, 76,136,211, 62, 62,177, 68, 58, 36, 77, 50, 2, 52, 86,137,177, 86,171, 8,239, 28,182,117, 56, 44,222, 88, -180,130, 48,136, 9,131, 8, 84, 32, 64, 33, 99,240,182,193,212, 5,214, 74, 18,164, 46,115,142,246,111, 81,205,238,146, 46,125, -145, 23,158,211,220,120, 39,226,206,187,239,114, 52,187,193,254,141,119, 41, 15,197,119, 20,244,207,112,238,252,159, 38,227, 10, - 27, 87,114, 14, 15,143, 88,148, 37,147,124, 78,225,182,201, 31, 55, 84,249, 17, 20, 57, 62,170,228, 0, 41, 74,194, 19,125,124, -153, 16,143,214, 24,246,215,136,198,150,189,189,125,206,173,175, 97,146, 51,120,165,104,138, 67,249,155,168, 8,223,243, 88, 52, - 58,138,232,101, 33,205,254, 62,141, 49,221,228, 28,208, 58,241,156,212,149, 68,109,109, 55,193,151, 85, 37, 44,145,178, 38, 47, -114, 76,107,200,250, 25, 81, 20,139, 98, 24,106,194, 56,162, 40,229,162,123,124, 89,213, 65, 64,210,121,118,162, 72,232,110, 89, -146, 49, 28,138, 41,217,122,143, 53, 50,224,228,121, 73,214, 75,137,162, 24, 21,120, 76,219, 61,219,189,195, 91, 8,148,252,127, - 25,231,105,219,154,193, 64, 98,204, 32, 14,245, 36,145,178, 42, 73,128,120, 60, 82, 52,118,108,148,174, 75,137, 20,155, 86, 80, -202,101, 93, 61, 97,144, 56,231,232,150,124,120,173,137,147,176,147,218, 21,198, 88, 90,219,146,166,178, 66, 69, 9,251,222, 57, -136, 98, 57, 11, 90,107,136,194,152, 36,142, 72,211, 46,153, 20,137,153, 22, 39, 20, 62,235, 28,182, 51,164,166,169,156, 7, 97, - 20,225,177, 84, 69,133,239,148, 93,239, 5,235,173,148,196,230,194, 40,142, 49,173, 37,111, 10,194, 84, 38, 63,165,101,103, 88, -148, 37, 73, 42,192, 20,239, 61,198,202, 47, 57,232, 15,240, 56,230,243, 5,198,123,108,219, 18,120,158,228,168,181, 10, 8, 66, -193,136,250,182,197, 1,214,131,115,134,227, 56, 68,154,101, 68,129,152,213,198,163, 17, 42, 73,112, 70, 12, 98,121, 81, 48, 28, - 12, 8,117,136, 10, 35, 84, 43,113, 9,211, 29, 50, 56,240, 74,236, 58,198,123,185, 13, 43, 5, 78,110, 88,182,109, 73,226,132, -188, 46,232,101, 61,170,186, 66,163, 81,129, 2, 39, 57,112,165, 21, 69, 83,208, 11,123,132,113,204,124, 62, 35,205, 18,180,142, - 73,251, 61,138,197,140, 69,190, 0, 47, 84, 36,215, 73,206,109, 83,209, 58, 24, 15,135, 79,110,108,109,107,152, 78,167,178, 87, -215, 1, 65, 16, 82, 52, 45,105,154, 18, 7, 65, 87,122, 33,196,175, 40,146,219,151, 67, 12, 36, 98,174, 11,233,197, 33,200,221, -142, 56, 12, 5, 77,136, 35,205, 82,180,215, 82,100,208,189,174,214,202, 94, 93,133, 10,229, 53, 54, 55, 20, 69, 33, 21,167, 65, -192,160, 63,192,121, 79,211,136, 2,163,181,166,110, 91, 6,131, 1, 65, 16, 16,199, 93,146, 65, 41, 26,211,130, 23, 89,125,177, -200,233,101, 25, 85,231,164, 87, 94,209, 26,139, 14,196, 15, 80, 20, 5, 65, 32,222,137,227, 62,225, 40,138, 72,123, 61,180,146, -255, 78, 63, 40,249,225,231,123,120, 3,223,121,253, 54, 77,217,240,176,180, 92, 25,103, 12,174,108, 16,134, 33, 43,242,190,101, -239,241, 1,211,188,165, 55, 16, 94,244,160,174,152, 70, 1, 35,103,184,243, 96,143, 75,231,215, 24,102, 9,173,243, 60,119,225, - 4, 62, 14,121,231,198, 22,222, 59, 98, 15,103,135, 41,147,163, 25,245,102, 77,218, 79,208,253,152,179,235, 3,146, 81,159, 43, -151, 46,240,206,251, 55,165, 76,199, 91,158,185,114,153, 47,125,253,155,124,253,181,215,153,205, 23,252,187,127,242, 71, 8,163, -144, 40, 8,121,254,234, 83,124,248,133,231, 56,179,177,142,210, 34, 71,159, 63,179,193, 59, 55,111,162,129,231,174, 92, 38, 8, - 66, 6, 93,218,193, 58,207,225,116,198,187, 55, 63,224,219,111,190,205,253,173, 29, 34, 29,112,233,218,121,206,109,156, 34,212, - 26, 97,172, 59,170,186, 17,195, 79, 79,226,147,117,211,202,100, 83,215,124,233, 43, 95,231,205,247,111,240, 7,191, 70,195, 17, - 27,235,107, 20,121, 69, 81, 86,242,158, 9, 2,238,111,110,113,127,243, 49,101, 85,163, 81,204,230, 11,172, 49, 98,164,113,150, -225,176, 71,154,164,180,166,229,214,195,135, 28,167, 65,118,246, 14, 56,156,206, 57,127,250,180,224,134,129,214,121,140,145, 24, -101, 85, 55,108,239,238,114,239,209, 38,187,135,178, 86, 91, 26, 14,168,154,234, 73,113, 74,221,212, 40, 20,129, 86, 79, 46,197, -117, 45, 60,172,178,146,203,242,193,225,132,111,190,249, 14,243,121,254,135,126,159,135,155, 91, 60,125,241, 2,147,217,156,193, -193,132,105,103,224,219,221, 63,192, 56,129, 24, 73, 14, 23,174, 94,188,200,171,175,188, 72, 20, 71, 24,231,112, 94,128, 73, 85, -221, 8,221,176,169,168, 8,184, 91, 22,244,207, 62, 15,239, 30, 80,230,111,176,122,250, 42, 31,190,118,145, 67, 74, 26,239, 89, - 89,137,248,216,247,253,247,220,124,243, 31,178,182,190,202,247,254,216, 95,100,217, 27, 28, 57, 31,255,194,127,193,100,239,117, -166, 59,239,242,244, 71,255, 28, 63,250, 23,254,107, 30,221,134,111,253,203,191,206,246,187,191, 74, 91,239,177,116,242,147,164, -189,148,205,119,190, 77,253,208, 50,221,185, 65,147,111,129, 85, 88, 60, 26, 75,224, 18,226, 0, 90, 39, 6, 72,144,135,188,107, - 42,194, 44,237, 84, 59, 13,218, 99,116,141,175, 74, 76, 37,132, 66,165, 21, 97,220,195, 19,162,148, 69,249, 0, 29,136,177, 83, - 27,184,251,198,191,226, 23,255,171,159,228,159,255,157,207,162, 19, 77, 53,187, 9,213, 22, 59,251, 59,164,107, 49,131,254, 69, - 54, 46,124, 47, 31,249,208, 85,158,126,206,241,157,247,254, 40,107,203, 59,220,189, 87, 96, 49, 4,190,196,154,247,153, 77, 10, -210,108, 70,207,196,212,170,102,243,246, 99,174,126,254, 44,126,170, 80,234, 4, 97,118,142,231, 94, 57,199,239,127,229,203,188, -123,231, 62,103,244, 10,108,173, 48,186,168,209,174,193,171,132,214, 6,168,125, 77,179,225,232,159,127,138,228,246, 45,138,188, -192, 58, 3, 42,198,183, 18,117,246, 86,234,154,171,170, 34, 95, 44,232, 15,135, 4, 40,156,183,184,133, 60,135,102,211, 25,105, -218, 99,208, 23, 3,155,105, 91,180, 82,148,121,142,245,158, 56,136,176,174, 37, 64,114,226,109,219,118,145,173,238, 25, 86, 74, -231,185, 34,166,200, 11,130, 72,100,231,227,181,107, 18,119,157, 34, 81,132,239,100,127, 21, 4, 4,206, 63,129,179,212,141,184, -212,157,115,164,113,138,183,142, 72, 7, 44, 10, 89, 43, 40,173, 89, 90, 26, 97,173, 18, 64, 86, 18, 83,218, 86,134,220, 40,196, - 57,143,178, 14,143,144, 29,189,242, 68, 90, 99,180,198,181, 45,113, 44, 42, 66,211, 52, 20, 85, 73,150,196,228,185,172,161,134, -131, 97,247,187, 68, 24, 83,163,131,174,229,210, 41,188,179,232, 32,194,105, 97,228, 43, 45, 36,185,172,215, 39,176,210,134, 42, -248, 91,105,255, 20, 16, 78,138,105, 26,202,186,198,121,137,201,133, 97, 72,216,182, 45,113, 20,209, 42,217,101,232, 72, 36,232, -208,134,180,173,236,176, 37,183, 12, 81, 16,211, 26,153, 36,181,214,244, 6,125, 2, 96,230, 61,166,110, 4, 22,211, 97,253,196, - 60, 38, 31,108,239,229, 54, 97,173,197, 57, 75,221, 24,194, 0, 22,139, 5,201, 49,221,202, 88, 4,144,223, 33, 77,131, 0, 21, - 6,224, 44, 82, 74,191, 16,211,155,214, 68, 73,136,181, 78, 28,242,129,194, 26, 65, 22, 22,121,142, 53,226,108, 68, 67,160, 66, -145,194,157,163, 49, 13,253,176, 71, 24, 10,173, 77, 76,109,210,167,222,154, 22,107, 13,206, 68, 88, 45, 57, 89, 61, 28,117,210, -145,195, 55, 21, 73,156, 1,142,162,168, 16, 44,166,133, 80,128, 59, 58, 14,160,213, 66, 88, 10, 53,104, 69,128, 24,231,208, 1, -253,190, 60, 36,243,121,142,210,242,191,151, 69, 69, 20, 5, 56,235, 33, 22,230,186, 14, 98, 66, 93,209, 90, 81, 70, 92, 39,249, - 43,173, 72,162,132, 54,240,228,139, 90,246,162, 14, 66, 29,136, 92,223,235, 51, 91,204, 24, 13,134,228,197, 2, 29, 74, 5,166, -199,177,200, 23,164, 73,202, 96,208,167,169, 91,156,175, 8,227, 37, 60,226, 10, 13,181, 38,136, 18,140,105, 72,211,238, 38,172, - 60, 71,221, 37,101,212, 33, 80,149,151,254,244,227,135,186, 49, 98,244,171,155, 26,221, 72,206,187,110,106,126,228,165, 24,173, - 20, 71,215, 55,121,240,232,136, 74, 69, 88, 99,169,210,148,226,241,148,197,162,126, 34,205,158,185,176,194,198,138,195,134, 1, -243,194,226, 12, 36,145,146,181,143, 15,176, 90,177,118,122,196, 8,197,242, 90,159,111,188,189,201,236, 96, 70,144, 36, 68,253, -144,105,217, 48,142, 99, 8, 35,206,156, 25, 51,181, 61,220,112,196,226,254, 67,166, 71, 98,124, 68, 11, 22,245,240,104,198,149, -139,231,120,235,230, 7,180,198,176,181,119,192,168, 63,224,233,203, 23,201,139,146,126, 47,163,105, 13,101,119,145,125,231,198, - 45,110,223,127,200,228,104,202,189,205,109,126,242, 71,190,192,229,179,167, 41,170,130,166,117, 76,142,166,172,175,173,113,237, -233,203, 56, 15, 59,251, 7,108,110,109, 49, 26, 12, 88, 93, 93,166,172,106,106, 85,115,112, 56, 17, 20,237,162, 96,101,121,204, -211,231,207, 10,248, 34, 78,248,240, 75, 47, 80, 84, 21,215,111,223,227,248,235,104, 54, 99,119,239, 0,123,229, 41, 28, 80, 55, - 45, 42, 81,100,105,198,137,165, 37,118,246, 14,228,130,237, 60,143,183,182,233,247,123, 12,189,168, 2, 89,146,112,239,209, 38, -183,238,222,103,239, 96,130,214,154,147,171, 43, 12,178,132,126, 63, 67, 35,165, 77, 30, 89, 77, 88,107,201,203,146,182,181,236, - 28, 28, 0, 14,165, 69,154, 63,125,242, 36,227, 97,159,178,170, 57,154, 30,241,173,183,222, 99,231,224, 16,111, 90, 94,121,254, - 57, 94,188,246, 52,163,209,136,198, 88,166, 71, 71,188,117,253,102,119,184,253,225,175,126,191, 47,204, 4, 99,120,239,214, 45, - 46,156, 57,195,209,116,198,163,205,109,118, 15, 15,255,208,247, 38, 89, 66,127,208, 39, 10,165,112,201, 59, 97, 34, 52, 70, 90, -223,134, 81, 64,144,245,105,107,232, 77, 95,224,143,254,145, 87, 24, 13,223,194,198,223, 98,251, 46,252,173,255, 54,195, 70,138, -131,217, 67,246, 55, 95,103,253,153, 79,209, 31,213,188,243,205,155, 76,182,175,113,176, 91,178,247,232,203,156,189,250,125,188, -240,249,191,130,246, 71,188,113,127,193,137, 31,238,243,131,127,252,191,100,235,239,252,199,220,190,255,207,168,201,169,166,183, -217,125,251,125,146, 72, 97, 77, 69,237, 51,140,149,110, 10, 87, 22, 88, 21,144, 12,135, 68,222, 99, 12, 40, 23,160,124, 75,235, - 28,218, 24,180, 86,184,214,128,149,106,205,188,220,231,252,199, 62,195,199, 62,243,151,248,173, 95,254, 75,204, 30,223,251,255, -189, 82, 50,247, 41, 29,161, 3,216,187,251, 53,242,163,219,164,113,143,214,228, 84,101, 37,188,136,201, 50,189,203,151,185,246, -145, 31,103,240,167,225,124, 90,114,242,217, 83,252,234, 63,120,129,122,245,235,220,127, 60, 37,212, 10,189, 54, 33,155,123,118, - 30,220,161,151,105,116,147,179,124,118, 29, 53,140, 9,131,150, 32, 94, 70,133,167, 40, 31,133,188,250,105,205, 55,127,239, 75, -132,247,222, 33,152,158,103,115,246,152, 19, 61, 69,239, 84,132,117, 41,225,201, 0,183, 19, 98,206, 68,156,124,241, 37,138,217, - 20,186,131, 84,197, 18, 93, 30, 44, 13,169,234,154,193,160,131, 98,181, 13, 97,156, 18, 6, 17,253,225, 16,229, 69, 25,170,235, - 18,239,165,162, 57,237,165,100,129,116, 80, 76,167, 83,233, 79,239, 84, 84, 83,181, 36,169,196,161, 21, 18,213,114,192,116, 54, -165,151,244,136,194,144,178, 22,183,119, 89, 60, 3,234,183, 0, 0, 32, 0, 73, 68, 65, 84,139,153,216,122,135, 51, 30,219,138, -138,224,148,135, 22,226, 48, 70, 7, 9,198, 8,184,166,169,181, 24,250,202,188,123,223,101,164,189,140,186,148,125,253, 98, 33, -195, 75,160, 21,243, 60, 39,136, 2,188, 23,128,151, 6, 44, 50, 28, 6, 1,130, 40,199,227,218,110,170,239,212,108,107,196,167, -228,156,127,194, 67,113,222, 33,133, 47, 18, 29,142,124,130,238,212, 91,139,102, 58,159,227,157,160,162, 37, 82, 45, 94, 37,143, -100,216, 65, 24, 48, 94, 73, 41, 77, 93,139, 71, 37, 75, 68,141, 16,227,171, 35,184,244,244, 51,127, 45, 8, 67,130, 48,164,109, - 91,180, 87, 36, 89,130,107,133,253, 93,213, 34, 67, 31,227,245,140, 49,180,214, 16, 6, 65,151, 87,142,137,147,152, 32, 8,177, -166,197,180, 13,113, 28, 99,240,104, 47,198, 59,175,228,128,119,222,147, 47, 22, 40, 37, 57,117, 80,120, 99, 58, 57, 79,131, 18, -218,143,115, 16, 37,177, 24,153,170,138,254,160,223,237,176, 11,234,186, 22,153, 34,148,139,195,124, 54, 23, 57, 74, 75,135,121, - 81,150,221, 1, 41, 69, 3, 77,221,208,239,245, 59,150,239,119,249,245, 34,103, 7,228, 69, 33,176, 20,223, 85, 84,118, 30, 3, -141, 98, 62, 19, 66, 80,146,100,160,132, 32, 23, 70,130,130,109,234,250, 73,254, 60, 10, 68, 54,201,203,130, 64,135,104, 68, 2, - 42, 91,217,113,224,160,174,106,142,107, 55,219, 70, 46, 21,131,129, 56,100,211, 36, 33,236,164,218, 36, 22,249, 71,242,140, 50, -177,164,169,220, 40,219, 86,100,254,170,170, 48,157,122,225,156,197, 56,203,104, 56,164,234,110,190,198, 88, 52,160, 3,185,212, -180,149,228, 57, 61, 30, 99, 45, 26, 49,201,181,206,210,212,173, 56, 76,147, 4,239,160, 53, 13,117,247,253,113,154,210,148, 53, - 90, 43,185,241, 42,213,193, 39, 60,222,119,147, 69, 16,224,157,195, 24, 97,234,255,236,167, 70,156,221, 24,242,123,223,190,207, -163,220, 50,157, 22,168, 80,211,150, 45, 89,162, 56,117,110,204, 83,207,158, 97,152, 70, 84,101,195,172,182, 92, 60,127,146, 83, -231,151,105,227,152,182,178, 84,104,150,178,136,179,103,199,212,139,150,253, 73, 78, 47,209,244,134, 9, 59,123, 11,206,157, 95, -225,226,165, 85,118,247, 23, 92,187,176,194,227,205, 35,130, 40,160,137, 87, 48,195,179, 92,191,123,143,111,190,245, 62,117,211, -224,156,103,216,239, 19,133,154, 48, 12,184,251,224, 49, 59,123, 7,108,172,173, 82,213, 53, 7, 71, 83,230,121,193,112, 48,100, -216,239,227,149, 40, 57, 39, 87,151,104, 90,195,238,193,132,170,170,184,118,229, 50,195,225,144,162, 16,121, 58,138, 34,154,186, -102,123,255,176,171, 40,157, 97,157,103,216,235, 19,104,152, 47, 22, 60,216,220,225,246,253,251,220,121,248,152, 32, 80, 34,181, -101, 61,162, 56, 98,145,231,188,246,230, 59,127,136,186, 6,176,178, 52,226,244,250, 73,150,199, 35,210, 36, 70, 41, 79, 99, 12, - 71,147, 41,179,188, 32, 47,114, 22,121, 65,191,151,241,252,213,167, 57,119,106,131,193, 96,192,184,223,151, 62,114,219, 50,157, -206,216,218,219,103, 60, 28,114,245,169, 75,196, 81,200,104, 48,120,162,184, 53, 77, 87,236, 99, 44,222, 89, 86,150,198, 20, 85, -205,195,173,237, 78,230, 6,188,103,101,121,137, 36, 73, 56, 60,154, 49, 91, 44, 56, 56, 60, 96,239,240,136,211, 27, 39,249,240, - 11,207, 19,197, 33, 97, 32, 38,209,217, 34, 71, 1, 15, 54,183,158,252, 46,113, 20,114,225,236, 25,146, 56,102,101, 60,148, 85, - 69,158,179, 40,114, 26, 99,186,159,163,125,242,253,105,154,242,220,149, 75,172, 46, 45, 17,133, 33, 90, 7, 40,132, 72,217,182, -134, 75,195,136,155,189, 1,237,137,117,190,240, 83,255, 22, 63,247,105, 79,190,186,206,155, 95,255, 54, 59,143,110, 48, 43, 31, -113,176,243, 22,211,253,247,216,125,240, 53,138,253, 15,240,107, 53,197,214,148,173,135,215, 57,154,126,192,225,222,251, 28,110, -127, 7,165,160,169, 14,169,118, 15, 41, 95,159,178,251,157, 93,138,249, 67,142,230, 15, 88,204,238,145, 79, 30,227,155, 9, 77, -155, 83, 85, 37,214,214, 40,111,209, 42,124,162, 48, 88,227, 59,226,166,165,174, 74,242,163,125,130,104,133,124,114, 15,175, 2, -194,113,204,120,184, 65,111,121,141,143,253, 7, 63,199,191,253, 39,254, 46, 31,253,196,211, 92,188,246, 23, 80,241, 42, 31,251, -244, 95,161, 63, 78, 48,214,112,234,169,143, 49,126,250, 18,229,108,143, 54, 95, 96,109, 77, 93, 44, 40,102, 7,148,109,142,106, - 44,104, 77,148,244, 89,191,240,121,206, 61,253, 33,146,171,240,250,227,152,133,131,173,111,157,100,245,220, 54,147,131, 61,242, -133,172, 59,207, 93,221, 32,212,142,195,123,178, 18,121,245,167,255, 61,206, 63,119,137, 69,115, 68, 59,141, 72,211, 83,152,166, - 7,213,136,245,243,142,189, 71,247, 89, 63, 59, 96,251,173, 71,184, 98,159,165,181, 37,194,222, 24,116,132, 42, 52,110, 24,146, -173,244,153, 61,184,195,252,112, 34,235, 57, 99, 73,226, 84,124, 53, 74,211, 88, 43, 52,201, 72,156,230, 65, 20, 96,107,131,241, - 98,190, 59,110,105, 43,202, 18,173,229,185,237,156,149, 75,166, 51, 84,101, 37, 76, 12,117, 12,245,146, 41,180,174,164,118, 91, -107, 69, 81, 20, 18, 25,141, 98,121, 15,234,128, 40,145,166,208,198,180, 56,107, 72,178, 4, 77,167,140, 57, 81, 82,148, 14,240, - 14,130, 64, 19, 69, 98,128,110, 91,233, 71,119, 94, 98,218,116, 42, 90,211,182,180,214,146,165, 25, 81, 87,206,130,147,231,167, -242, 78, 38,105,143, 60,111, 91,193,150,103, 89, 70, 85, 85, 68,145,196,216,154,182,145, 53,139, 7,211, 26,138,170,100, 49,159, - 35,224, 48,131, 87, 30,239, 44,202, 43,188,183, 28,195,169,234,166, 6,239,228,119,139, 34,156,241,232, 72,192,106, 90,123, 76, -219,173,156,147,132,168, 51,171,134, 58, 68,216, 36, 45, 97,221, 52,228,121,222, 25, 95, 28,173, 7,231, 45, 30, 37,157,232,153, -128,250,123,113,130,242,224,156,195, 26, 35,181,167, 93,254, 54,208, 1, 97, 42, 96,148, 98, 62,103,122, 52,195,187,227,134,158, -128,164,223, 39, 8, 52, 69,177, 64,121,240,157,148, 29, 39, 50,197,233,160,203,193,123,143, 14, 66,194, 72,110,107, 86,203, 77, -191,233, 28,202,199,149,139,179,217, 76,164,237, 56,198, 57,135,107, 26,230,109,203,160,215, 35, 12, 3,202, 60,167,169,235, 39, -114,179,210,154,241,120, 36, 63,151,119, 36,113,194,113,211, 24, 64,150, 37, 84, 85, 75,150,165, 40, 36,110,179,168, 42, 20, 94, -118, 69, 70,170,247,202, 70, 72,115, 90,107,188, 18,179,156,183,246,137, 35, 20, 20,179,197, 92,110,176,221, 68, 94,151, 34,189, - 28,199,241,162, 40, 22,195, 80, 44, 15,216, 36,142,197, 25, 95, 11,153, 77,224, 32, 78, 38, 2, 5,189, 56,165,245,142, 40, 77, -233, 5, 1,206,137,236,217, 84, 21,222, 59, 70,227, 49, 82, 62, 35,255, 78, 20, 74, 28, 49, 47,142,113,188,146, 61,183,222,129, -210, 16, 40,138,170, 68, 55,181, 68,166,186,201,187,153, 52, 12,250,125,116, 24,146,245, 66,142,171,105,155, 64, 16,145, 77, 45, -206,127,231, 28, 97, 40,135,188,169, 5, 51,234,189, 56,124, 7,189, 30,207, 93, 24,114,235, 75,239,114,251, 96,206, 78,233, 57, - 57,238,115, 38,241, 28, 46, 44,135,185,163,124, 56,195,212,150,135,247, 15, 57,127,113, 21, 85,182,236,207, 23,164,101,196,169, - 83, 35,252,198,128,189,195, 18,141,167,245, 33,227, 97,196,193, 86,201,195,123,135, 28, 89, 69,233, 60, 39,151,251,212,149, 34, - 12, 2,230, 85,203,211, 87, 55,120,240,240, 8,103, 43, 6, 23, 52,151, 79,159,230,163, 47,191,216, 21,157,180,172,173, 46, 75, - 26,163, 44, 73,146,136,195,163, 35,126,243,203, 95,227, 99, 47,191, 40,187,193, 64, 58,150,131, 80,110,231, 90,105, 6,163, 49, - 97, 24, 16,135, 17,167, 46,158,103,109,117,149,253,201, 33,248,239,254, 45,111,220,190,203, 27,239,190,199,214,222, 1,253, 36, - 97,125,117, 25,148,103,111,114, 36,173,101,145,240,215,195, 72,160, 27,171, 43,203,224, 29,147,195, 9,147,121,193,172, 51, 76, - 30,127, 13,251,125, 94,188,250, 12,207, 63,243, 20,235,107,171,100,105, 66,211, 58,170,170,226,214,195, 71,188,254,246,187, 18, -171, 65,166,233, 52,137,233,247,196,107,162,149,230,193,230, 38,239,223,188,205,206,193,132, 40,138,184,112,230, 20,163,209,136, -181,213, 85, 33,190,213, 45,173,109, 59,165, 42,160, 44, 23, 76,142,166,220,184,119,159,199, 91, 59, 79, 36,251,186,109, 25,244, -123,114, 9, 73, 98,198,195, 62,167, 78,158,192, 26,139,115,176,123, 56, 97, 58,155,178,186,178, 74, 28,198,172,173, 46,243,161, - 23,158,125, 34,215, 31,127,153,214,178,179,127,192,181, 43, 23,185,116,238, 28, 59,251, 7,188,246,214,187,124,227,245, 55,158, -252,183,142,191,210, 56, 33, 77, 98, 38,211, 57, 85,221,176,186,178, 76,150, 36,228,101, 73, 81, 86, 96, 12,237,160,199,219,147, - 57,195,242, 85,202,187,158,223, 60,225,216,158,104, 76,120,145,249,163,127,141,217, 15,193, 55, 52,213, 17,135, 15,127,159,229, -141,151,152, 92,255, 22,145,154, 99,170, 22,111, 29, 85,181,199,108,247,125, 76, 61,227,228,249, 43,148, 85,197,124,118, 23, 91, - 22,236, 63,250,125,172,105, 73,135, 39,169,138, 61,218,162,196,217, 2,173, 83, 8, 98,154,182,192,216,130,147,167, 94, 97,122, -120,155,166,154, 49, 57,242, 12,135, 99,146,112,206,171,127,230,151,249,165,191,247,131,252,141,223,189,205,254,157,175,208, 95, -122,145,179,245,135,152,159,126,204,225,246, 27,108,237,125,192,242, 31,125,134,240,129,231,135,126,252, 63, 33, 94,129,179,155, -207,240,103,191,255, 20,139,111,195,183,126,239, 43, 44,158,127,192,143,255,137,159,226, 47,253,233, 23,168,235, 61,188,145, 90, - 92,167, 29,117, 57, 39,233,173, 82,149, 59, 60,122,235,155,236,223, 62, 77,101,167,220, 48, 2,115,225,145,227,165,151,159,226, -189, 91,183,120,240,224, 8, 29,104, 62,249,253,159,227,250,250, 42,211,135, 45,197,189,139,236, 31,236,115,102,109,192,187,183, -230,212,205,156, 40,136, 56,218,119,172, 6, 79,177,118,106,194,218,114,198,228,169, 37,234,173, 57,202, 7, 40,111,208, 65,140, - 33, 68,135, 10,107, 50,206,124,236, 83,216, 47,255, 14, 69, 94,116,206,108, 71,158,151,196,177, 36,120, 84,172, 48,166, 22, 53, -211,121, 26, 35,221,230,117, 85,138, 36, 30,197, 4,129, 39,207,231, 24, 35, 29, 31,113, 24, 82,149,149, 12, 80, 26,180,146,148, -142, 53,142,168,215, 35,246,157, 34, 27,199,148,101, 13, 30,170,178,192,117,205,112,116,251,248, 97,156, 97,141,163,156,139,164, -239,189,135, 56,166,170, 74, 66, 45, 42,112,156,166,120,223, 16,198, 49,145,145,214,205,166,149, 94, 12,165, 53, 2,163, 9, 40, -138,138,197, 98, 65,220,193,185,140,247,104,237,209, 8, 19,196, 99,177,173,239, 12,143, 41, 77, 93, 17,199, 41, 85, 85, 80, 85, - 53,199,101, 97,129, 82, 4, 97, 36, 67,134,149,203,131,177,194,147, 15,181, 70, 37,154, 56,141, 25, 69, 17,166, 53, 44, 22,115, -202, 90,134,192,193,120,140, 82,138,182,169, 73,179,148,170,172,233,245, 82,132,210, 90, 17, 69, 9, 77,107,233,101,201, 19, 95, - 66, 88, 87, 21, 89,214,147,219,139,238,170, 86,181, 28,118,214, 57,234,170, 32, 80,138,186,236,218,187,186, 73,182,210, 98,140, -104,202,146, 44,235, 17, 69, 1,218, 75, 20,193, 6, 45,243,163, 2,133, 76,116,165,105, 33, 12,232, 15,135,180, 85,133,105, 26, -150,150,150,145, 72, 84,141,212,226,137,147,218, 91,177,237,231,121, 78, 20, 69, 76,243,239, 58,131,195, 32, 32,140, 99,156, 49, -212,149, 68, 2,122, 89,134, 87,138, 0,205,108,190, 0, 60,195,225, 72,214, 4, 70, 92,238,129,181, 68, 58, 96, 60, 30,227,172, - 24,204,154,198,144,102, 17,105, 44, 5, 3, 42,168, 9, 9, 48,182,193, 52, 13,202,139,204, 49, 28, 14, 64,105,234,170,194, 90, - 71, 22, 71,168, 56,166,223, 23, 23,252,241,126, 52, 12, 3, 60,154,162,168,136,226, 8,129,247, 75,195, 90,191,215,147,216, 88, -231, 24, 22,140,172,184,223, 77,211, 60,145,102,122,189,222, 31, 98, 33, 75, 61,109,204,104, 52, 0,107,176,208, 41, 7, 9,113, - 20,117,127, 35, 33,235,229,101, 41, 78,238,166,197, 5, 0,130,194,237, 15,229, 98,227,156,148,152, 56, 52, 97,160,197, 47,160, - 20,105, 47,163,236,224, 65,166,109,137,136,200, 59,170,159,113,142, 36, 77,169,138, 2,194, 16,175, 28, 97, 24, 16,198, 17,174, -181,232, 40,233, 18, 18, 13,105,150,241,151,255, 88,159,225,221,109,190,190, 95,112, 54,142, 89, 90, 15, 89,203, 18, 22,211, 5, -207, 60,189, 66, 59,205,105, 45, 84,165,225,220,133, 21, 70,253,140,249,131, 9,249,162,165,143,103,235,193, 33, 39, 78,173,208, - 31,103,180,222,162, 35,205,162,128,229,141, 85,150,178,144,253,123,251,132, 97,200,221,157, 25, 23, 55, 86, 8, 35,205, 86,168, - 25, 57, 69,210,131,133,145, 38,178, 36, 10, 88, 25, 15, 5,212,128,231,193,230, 54, 47, 93,123,138,181,149, 85,158,189,124,137, -217,162, 64, 43,136, 66,205,231, 63,249, 42,131, 65,143,165,177, 92, 42,107, 99, 9,148, 98, 81, 20,236,237, 31,242,220, 51,151, - 88, 91, 89,161, 40, 43,226, 72, 51,157,231, 4, 74,225,112, 44,202,146, 36, 73, 88, 93, 26,163,181,102,208,239,145,165, 49,189, - 36,193, 3, 73, 36,200,225,178, 44,105,181, 72,241,209,250, 58,161,214,180, 77, 77, 91,127,215, 80, 6, 48, 28,246,185,118,229, - 18,131,110,170, 14,195,136, 32,244,212,117, 73, 81,150, 12,250, 61,230,197, 2,239,228, 53,215, 74, 99,172, 35,212, 18, 85, 91, - 30, 13,229,111, 22, 71,172,173, 44,211, 58,139,183,146, 75, 63,206,141,183, 70,218,253, 60,158, 48, 10, 57,119,230, 20,253, 97, -159,167,206,157,229,119,190,241, 45, 14,143,142, 88, 91, 30,179,178,180,196,169,147,235, 44,143,135, 44,141, 70,204,230, 51,140, - 53,244,123, 25, 39, 87,150,153, 45, 10,250,253, 62, 89,146,224, 85,194,124,186,201,160,223,227,213, 15,189,204, 59, 55,110,138, - 99, 30, 77, 22, 11,214,115,216, 73,249,207, 92,186,128,177, 45,239,223,186,203,209,244,187,159,237, 36, 14, 57,185,178,242, 36, -218, 51, 28, 12,168,203,138, 69, 33, 77,132,167,151, 6,188, 30, 47,195,180, 98,126, 24,240,229,127,210, 48,251,165,123, 52,237, - 33,119, 95,251,121, 2, 59,193, 71, 3,218,178,101,190,127, 11,143,226,252,211,127,138,251, 55,255, 54,181,254, 61,124, 53, 16, -100,117,181, 67,113,240,144,241,250,139,228,147, 55,177,237, 18, 77,171,169,230, 91,228,147, 45,194,116,137, 40,138,241,117,131, -199, 99,141, 71,135, 13, 78,105,162, 36, 97,125,227,227, 12, 86,206, 99,124, 75,253,248, 77, 22,243, 25, 77,101,200,143,118,152, -108,190,205,255,252,139, 63,196,237,189, 95, 39, 68,147, 13, 91,202,122,206,157,239,124,153, 15, 93,252,179,124,228, 63,172, 25, - 48,231,249, 31, 83,252, 31,255,107,194,198, 52,228,217,203, 27,252,196, 73,203,207,199, 1, 85, 1,109, 83, 83, 54,154,241,201, - 23,120,116,253,159,162,195,140, 80, 5,104, 29,163, 84, 75, 62,223,227,224,241,107, 52, 85,205,104,249, 44, 56, 69, 67,133, 89, - 76, 40,203, 57,139, 67,197,203,159,127,154,233,228,136,155,183,110,179,178,180,196,181, 87, 94, 96,231,236,148,233, 3,152, 76, -114,198,237, 17, 54, 57,164, 89,156, 35, 28,203,126,123,127, 59, 36, 57,127,146,166, 88,112,249,242,105,194, 15, 63, 67,156,166, -236,237,206,113,100, 40,229,240,155,154,102, 3,178,165,117,178,149,101, 60, 14,215, 58, 26,228, 64, 53,181, 37, 78, 53,206, 66, -146, 68,180,109,195,108, 62,103, 52, 24, 48,159,119,224,171,194,208, 42, 89, 97,202,100, 57,199,219,148, 48, 78,232,247,250, 56, -103,177, 45,160, 32,142, 82,210, 76, 99,141, 28,184, 2,113, 17, 35,158,117, 22,229, 53,198,181,204,231,115, 52, 10,180, 98, 60, - 30, 17, 4,154,180,223, 19, 58,167, 87,162, 18, 68, 17, 1, 93,187, 90,105,187,131, 82,166,127,156,197, 25,203,172,157, 17,133, - 1,189, 94,159,186,110,201,250,125,172, 49, 36,105,130,214,194,253,168,235, 6,231,187,210, 43, 2,188,210,232,192,163,188, 70, - 69, 41,214,250, 39,102,100,169, 94,253, 3,148, 82, 21,208,216, 6,172, 64,122,188,150,103,174, 45, 11, 89,219, 58,135,142, 98, -122, 89,159,198, 72,154, 96, 62,157, 50, 26,141,101,117,218, 90,194, 64,225, 0,229, 29,206,107,188, 55,196, 81,208,241, 96,178, -238,231,162,203,149,107, 69, 18,133,196, 73,138,179,158, 40, 14,186,135,135,200, 99, 74, 43,226, 80,126,184,197, 98, 65, 8, 68, -189, 30,139,197,130,192,180, 20,139, 5, 94, 1,214,201, 36,128,220, 82, 20,128, 14,233, 15, 50, 98,237,112,202,176,178,212,231, -196, 74,196,201,113, 64,217, 68,224, 45, 1, 45,251, 51,135,210,150,195,185, 33,192, 81, 21, 2,106, 81, 65,200, 96, 56, 64,119, -211,177,242, 30,107, 44,211,249,148,162, 44, 25,142, 71,178,145, 82,224,189,224, 55,143,163, 98, 97,228, 64, 65, 89, 22,120, 13, -190,149,108,189, 82,158,106,177, 32,233,247, 65, 73,134,221,180,134,217, 76,162, 5,233,113,181,164,179,228,115, 41,102, 73,211, -148, 52,235, 63,113, 71, 58,103,104,140,200,209,141, 49,164,137,236, 54,143, 93,236,105, 26, 51, 30,167, 88,235,104,203,138, 94, -175,135,193, 19, 68,177, 40, 10,133, 24, 78,148,213, 68,105,194,124, 49, 71, 58,124,187,140,189,214, 88,107,186,216,134, 76,206, -253, 94,175, 51,178, 89,240,116, 17, 67, 71, 28,197,178, 99, 9, 2,146, 40,238,220,228,178, 50,105,218, 22,175, 5,160,208, 58, -139, 66,145, 13, 50, 2, 29,161, 84,183,131, 74, 51,218,186,164,152,207,229,117,139, 83,104, 26, 76,219, 96,140, 71, 91,233, 99, - 87, 74,145, 26, 97, 57,211, 8,196, 33,203, 50,134, 89,203,103, 47,167,188,253,149,135,156, 62,119,130, 50,175, 57,186,181,203, -150, 61,226,212,153, 37,170,195, 57,213, 81,142,215,176,124,114,196,222,206,156,250,112,142, 53,150, 52,211, 12,251, 25,113,168, -217,189,191,205,126, 20, 80,151,134,126, 47, 98,176, 58,226,104, 90, 16,102,203,212, 86,112,218,139,189, 5,239, 46, 44, 69,109, - 96, 39,103,199, 42, 78,174,140,216,217, 47,137,203,130, 52, 14, 57,185,118,130, 94,154,137,225,179, 18,201,124, 60, 28, 50, 30, - 13,233,167, 9,251,147, 35, 38,211, 25, 31,127,101,149,181,213,101, 81, 63,218,134,200, 88,170,182,193, 53,134,107, 87, 46,162, -208, 44, 47,141,104,236, 49,252,200, 51,153,207,169,234,150,201,228,136,121, 94, 50,157,207,137,194,136,217,162,224,226,217,179, - 92, 56,125, 74,228,229,214,160, 2,197, 44, 47, 24,100, 61,130, 48,122, 34,157, 71, 81,216, 93, 66,191,251, 53,159,231, 28, 78, -231, 92,186,112,142, 36,146,130,156, 44, 73, 80, 75,203, 60,247,212, 37,246,247, 14,216,222,219, 39,138, 67,126,232,243,159,229, - 51,159,248,104,215,195,110,201,139,146,233,108,202,222,225,132,131,201,148, 69, 81, 48,157,207,159, 80,227,188,247,156, 60,113, - 66, 46,218,136, 76,217,139,101,210,223,222, 59,228,230,189, 7, 66,203, 67,246,248, 97, 24,144,101, 9,222,121,166,243, 5,183, - 31,110,114,251,193, 35, 86,151,199,172, 46,143,233,247, 50,234,186,229,253, 15,238,242,123,223,126,157, 47,255,254,107,128,184, -247,151,151,151, 25, 69, 3,226, 48,166,215, 75,165,116,198, 88,250,253,140,162,148, 7,250,229,179,167,121, 20,133,236,239, 79, -112,120,166,139,156,247,111,222,166,174,107, 78,174,172,112,254,236, 41,118, 15, 15, 57,156,205, 48,101,133, 27,158,228,250,108, -198,209,246, 20,115,248, 14, 59,230, 13,202,249, 30,197, 98,139,166,156, 96,234, 9,145,123,196,188,156, 51,222,120,149,159,248, -185, 95,231,244, 58,124,245,171,207,243,111,126,237,139, 56,119, 72, 91,151, 56,107,248,194,159,255,199,124,232, 83, 63,200,255, -251,127,254, 60, 55,222,249, 5,108,155, 51, 8,157,152,130, 71, 27, 24,103, 72,199,167,217, 88,123, 22, 79,200,131,247,254, 49, - 39,206, 62, 67,156,157,197,148, 11, 38, 59,239,226,125, 35, 32, 43, 99,113,192, 71,127,246, 39,121,254, 7, 94,224,222,252, 87, -248,204,143,253, 85,122, 61,184,254, 15,174, 83,244,102,108,126,233, 13,182,244, 63,101,240, 67, 95,228,185,160,226, 11,122,137, -248,207,121,254,245,111, 20,252,251,159,235,161, 84, 72,190, 7, 63,249, 55, 62,205, 82,246, 50,255,219, 95,125,157, 87, 62,247, - 19, 36, 39,167, 60,124,237,117,154,178, 34,202, 50,156, 15, 80,109,193,225,209,251, 56,103,168,203,109,130,176,135,215,158, 38, - 63,164,156,239, 81, 78, 34, 2,237,249,216,103, 62,204,141,123, 15,121,231,225, 99,174,157, 58, 69, 22, 26,110, 29,252, 22,139, -253,134,217,214, 54, 57, 19,122,107,207,178, 40, 14,233, 71, 25,206, 57,242, 59,171,140,175,213, 36,222, 17, 45,159, 99,184, 54, - 34,111,175, 83, 30,148, 52,141,146,181, 93, 99,169,138,150,165,103, 94, 96,250,213, 47,201,224,129,134, 72,163, 99,255,196,235, -164,154,238, 25,214, 25,188,100,215,238, 1,135,181, 82, 7,253,255,113,245,230, 65,182, 37,245,157,223, 39, 51,207,126,151,186, -181,191,170,122,251,210,111,105,186,105,232,102, 17, 13, 26, 64, 44, 2, 9, 4,218, 16,114, 88, 88, 97,141, 53,227,112,140,229, -109, 38, 36,123, 52, 76,196, 88, 19, 35,107, 20, 35, 91, 19, 26, 75,193, 16, 10,225, 9,203,163,205, 26, 9,129, 9, 22, 1, 3, -116,211, 52, 13,189,190,125,169,122,181,215,221,207,150,231,156, 76,255,145,247, 61,201,190,127,117, 71,116,215,173, 91,247,156, -147,153,191,239,247,251,249, 6,179,103,202,120,154, 18, 71, 53,117,237,198,202,237, 86,135,218,186,251, 45,155,102, 52,182,161, -177, 13,129, 23, 58,227, 97,237,228,203, 82, 23,180,146, 22,181,116, 90,125,232, 7,140, 39, 35,176,204,222, 75,208,237,118,161, -246,144,210, 80, 27, 67,107, 70,153, 43,180, 70,121,138, 80,249,152, 6,188,218,149, 53, 53,198, 48, 30, 79,240, 60,143,128,192, - 73, 86,198, 98,165,165,200,107,130,208,199, 24,133,174, 43,138, 50,199, 15, 66, 20,130,166, 41,241, 9, 49,198, 82,150, 53,190, -239, 12,211, 77, 83,209,212, 21, 38,112,136,245,216, 11,201, 11,151,161,143,163,104,118, 31,105,138,162,196, 26, 67, 96, 12,202, - 11, 8,149, 37,240,125,234,186, 38, 77, 51,130,192,163,106, 92, 79,188,206,115,148,231, 58,228,211,212, 17,230,146,196,145, 87, -171,170,198,107, 37, 9,121,158,187,246, 45, 99,220, 34,173, 20, 69,233,190, 20, 33,132, 59,225, 2,117, 89,146,101,206,193,169, -173,197,111,156,153,133,198,184, 72,135,169,193, 83, 46, 42, 21,119, 16,233,152,227,203, 33, 79, 62, 58,207,211,231,218, 60,178, - 17, 19,213, 13,221, 86,128,138, 37,120,146,208, 19,212,198, 98, 60, 15,207, 88,178,198,237,254, 74,109,232,143,107, 14, 70, 21, -187, 35,184,126,216,240,226,118,195, 94, 95, 83, 84,165,163, 92,249,206, 48,167, 75,141,239,251,180, 91, 29,138, 34,127, 56,166, - 87, 74, 81, 78, 75,194,216,197,238,164,149, 8,207, 49,121, 39, 89, 70, 18, 4,216,166,162,110, 4,147,201,196,141,101,102,187, - 44, 37, 93,109,108,146,180, 93, 26, 0, 75, 24, 6,179,108,184,235,104,211,165, 67,250,161,132, 59,133, 11,129,244,228, 67,232, - 78,145,167,132, 73,130,105, 44,202,247,201,138, 2, 36, 68, 15, 8, 99,158,135, 48, 10,207,115, 76,225,180,110,168,109, 77,171, -221,114, 70, 59, 43,176, 74, 0,110,138, 97, 76, 77,221, 88,252,208, 3,227,200,113, 77, 89, 50,219,118,161,132, 36, 8, 36,121, -229,186,129, 45, 78,171,210,165,227,223,215,210, 73, 39, 65, 16, 16,250,177,211, 42,173,165,221,237, 82, 27, 67, 83, 88, 60, 47, -192, 83, 2, 63, 12,104, 2,133, 39,189, 89,199,123,141,144, 2, 55, 79,146, 72, 11, 86, 24,202,178,160,170, 52, 79, 63, 50, 71, -250,226, 54,223,191, 49,224,210, 69,159,185,192,103,126,177,197,141,187,135,116,139, 26,198, 83,146, 56,162, 20,130, 75,167, 22, - 24, 30,101,132,115, 17,235, 38,101,100, 61, 58, 73,200, 92,228,145,103, 21,163, 52,167, 29, 75, 84, 83,147,239, 13,168,144,220, -217,236, 83, 90,129, 39, 36, 94, 47, 34,108, 44,101, 97, 8, 60,197,135,223,184,193,171,247, 14, 96,222, 99,231,112,192,180,204, -184,113,231, 30,217,108,145,122,238,133, 23, 57,182,180,200,155, 94,255, 24,111,127,203, 83,220,223, 63,152,221, 0, 21,105,158, - 35,143, 32, 74,102,101, 8,158, 2,227, 18, 15, 39,214,215,152,230, 14,108, 33,132, 32, 76, 66, 78,110, 28,103, 50,158,112,237, -222, 38,186,114, 6, 46,207,243,156, 27,213,247, 57,177,182, 74,167,221, 98,107,119,151,175,127,251,121, 14,142, 6, 51,109, 46, -228, 98,199, 85,179, 74, 92,212,209,138,153,147, 20,152,239,205,113,241,204,169,153,131,215, 80, 53,142,142,101,140, 97,103,255, -128,207,127,245,155,140,198, 19,140, 49,212,186, 98, 48, 26,241,202,141, 91,204,119, 59, 40, 41,168, 27,195,104,234,202,129, 48, -246,225, 66,222,235,118, 57,117,124,157,197,158, 27,227,233,178,196, 54, 21,237, 56, 33, 9, 3,170,166,161, 63, 30,225,251,254, - 67, 8,204, 52,203,216, 59, 56,228,240,176,207,198,218, 42,171, 43,139,188,229,245,143,179,208,237,240,217, 47,127,149,115,167, - 78,160,164, 64, 72, 65,171, 21,179,182,186,202,219,158,124,130,225,100, 74,191, 63,164,219,117,113,184, 75,103, 79,115,108,245, - 24,173,216,113,174,163, 40,226,248,218, 10, 95,254,214, 51,236,238, 31,242,183, 95, 81, 24,112,246,204, 73,222,254,228, 19,180, -219, 9,147,137,243, 14,164, 89, 78,172, 20,207,103,154,254,225, 17,227,221, 29,116,191, 33, 47,107,154,108,200,116,120,143,166, -158,114,252,242, 79,226, 9,143,181,243,239,102,237,141,111, 34,175, 13,223,125,246, 14,190, 45,185,252,142, 95, 97,235,230,231, - 88, 59,249, 54,222,244,206, 95,228,252,207, 90, 90,115,130,247,101,127,159, 32,110,115,235,234,159, 81, 55, 25,173,200,201, 35, -203,199,222,192,149,215,255, 60,143,189,107,133,246,155, 45,223,248, 55,255, 13,223,249,236, 63,100,122,248, 26, 85,145, 81, 85, - 19,108, 51, 75,253, 8,197, 19,255,201, 7, 56,247,150, 55, 19, 46,173,178,125,245, 11,252,213, 63,254, 12, 79,189,229,227,248, -106,153,115, 63,185,200,137,143,253, 43,134, 95, 29, 34, 63, 11, 63,252,225, 57,254,205,102,134, 88,138,233, 15, 70,252, 65,217, - 98, 65, 66, 16,194,151,126, 29,114,153,211, 52,199, 41,215,158,231, 71, 30,255, 12,205, 79,167, 60,247,189,223,230,197, 63,254, - 83,234, 98,138, 53,146,192, 38, 72, 26,154,124, 72, 45, 39, 32, 61,116, 62,196,212,110, 18,182,117,119, 15,239,249, 21,206, 63, -177,202,183, 95,186,205,203,183,238,112,238,244,113, 78, 61, 22,242,202, 23,110,177,191,125,141,170, 37, 88, 89, 56,162, 41, 2, - 10,127, 17, 63, 10, 41, 11,197,214,107,146,211,103,199, 12, 95, 48, 20,221,101,188,213, 45, 66,255,144,163,164, 68, 29,134,152, -151, 53, 53,154,213, 75, 61,218,203,203,244,183,238, 33,133,163, 51,214, 90, 83, 25,141, 39, 60,226, 40, 36, 47, 12,173, 86,139, -233,216,153,224,242,188, 36,138, 34,140,169,103, 58,117, 62,243, 23, 65, 85,106, 12,238,144, 98,112, 60,247,124, 90,208, 88,215, -121,238, 43,127,166, 31, 59,200, 25,194, 80, 53,142, 7, 15,118,150,152, 40,232,180,187,142,208,153, 78,157, 54, 15,228, 69, 70, - 89,104,215,174,169, 20,186,114, 62,161, 40,114,114,171, 8, 4,214, 6,120,165,131,164, 85,117, 77, 83,215,100,121,138,176,110, - 13,108,183, 90,212,166,161, 74, 93,140,211,152,154,170,170, 41, 10,199,142,240,253,128,178,156,186,197, 92, 72, 55,117,182, 51, -105, 64,184, 54, 67,165,156, 15, 44, 8, 44,166,113,252,252,102,118,136,243, 2,133,239,197,232,178, 32, 78, 60,242, 76,187,120, -185,174, 80,129, 55, 75, 78, 57, 35,185,174, 53,158, 23, 64,211, 56,217,185,221,198, 90, 39,103, 8,161, 80,167,207,157,255,100, - 24,134,164,147, 9, 82, 41,176,174,146,179,211,234,208,152,134,222,156,171, 89, 20, 56,178, 85, 57, 27, 25, 10, 99, 64, 74, 76, -227,112,150,115,237, 54,113, 43, 33, 12, 2,142,205,123,188,231,177, 22,255,245, 7,143,241,143,126,108,157, 31,122, 93,143,243, -107, 49,115,158,160,211, 14, 8, 18, 15,111,170,201,191,191,197,193,205, 35, 70,183,250, 12,174,239,211,108,143,153, 31,229,216, - 65,206,124,161, 88, 78,124, 78,109, 68, 60,122, 49,225, 7, 47, 38,124,248, 77, 17, 63,112, 94,240,232, 9,143, 56,240,144,210, -145,216,172,116, 81,157,172, 40, 72, 98, 87, 48,210, 84, 46,134,240, 0,178,225, 78,191,160,132,196,212, 46, 2,166,164,107,239, -201,242, 12,207, 11, 80, 56, 64, 75, 81, 56, 23,163,231,121,132,129,203,157, 6,177,195,166,250,129, 79, 90,148, 60, 40,166, 23, -194,129, 56,176,204,140,110, 17,126,228,227,121,206,240, 86,230, 26,161,112,200, 91, 41,145, 74,184,113,126, 94,224,121, 30, 73, -226,232, 67,190,239, 60, 10, 46,194,228,145,149, 26, 47,116, 90,120,145, 23, 52,198, 1, 59,164,112,155, 21,165,156,222,171,188, -217, 63, 7, 62,158, 31,240,160, 40, 64, 42,167, 81, 25, 99, 8, 98,183, 25,241,124,135,116,213,181,166, 54,142,177, 44,172,161, - 49, 32,149,132, 74,227,199,142,111,172, 43,167,117, 85, 85,245,208,220, 18,120, 33,126, 16, 98,172,115,231, 35, 5,166,113,201, -131, 15, 92, 10, 9, 14,118, 24, 79, 52,105, 85, 17,183,157, 54,246, 19,239, 56,207,233,165,152,111,220, 29,224,231,174,219, 61, - 8, 3,134,211, 28,173, 27, 22,218, 45,188, 94,143,181,197, 14,181,145, 76,170, 6,225,251,168,118, 66, 21, 68, 84, 64,104, 5, -194, 87, 52, 85,205,177,185,144, 91,141,229, 68, 39,162,156, 20, 12,166, 37,139,115, 45,222,249,246,199, 56, 53, 31,240,249,155, -130,229, 78, 68,212,233,113,247,254, 54,147, 52,101,121,113,158,183,191,249, 73, 90, 73,204,203,215,110,112,253,246, 93,172,133, -110,183,195,169,141,117,167,169, 87, 26, 93,106,116,173, 41, 74,103, 0, 42,202,130,105,150, 81,215,206, 52,218,142, 99, 90,113, - 64,187,211, 97,174,149, 32,128,251, 59,251, 12,199, 19,122,221, 14, 79, 62,254, 24,139,243,115, 8, 41,153,159,235,113, 48, 24, -178,127,112, 68,187,221,226,220,169,147,172, 47, 47, 98,112,139, 65, 94,213,236, 31,246, 31,130,158,138,162,100,154,229,188,233, -141,143,177,212,235, 81, 20,153,139,172, 52, 13,158,242,232,117,218,220,221,218, 98, 60, 77,177,184, 49,122,224,251,184, 61,159, -139,132, 93,191,179,201,112,226, 34,161, 82, 41,148,146, 8,229,162,165,243,115, 29,124, 79,185,113,189, 82,196, 81, 68, 28, 71, -116, 58,109,186,173, 22,135,131,145,171,194,204,156,164,229, 16,182, 11, 88, 99,248,230,243, 47,240,245,103,191,195,238,254,161, -227, 74, 88,216, 56,182,134,177,134,151, 94,189,202,112,154,178,189,183, 79, 83, 55,120,161,143, 68,112, 98, 99, 29, 41, 20,171, -203,139,108, 28, 59,230, 30,124, 74, 81,148, 37,123,251, 71, 28, 28, 13,120, 0,189, 2, 39, 69, 29, 30,245, 73,226,248, 97,237, -234,209,112,200,104, 60, 38, 80,138,111,214, 10,225,183,208,119, 43, 70,155,207, 51,233, 95,101,188,251, 10,211,225, 77,146,222, -121,218,203,167, 88, 60,118,142, 34,157,112,180,119,135,131,173,219,244,143,174, 50, 62,186,142, 9, 21,167,159,254, 25,122,193, - 2,163,189,109,110, 62, 95,114,245, 25,197,209,157,187,100,197,208, 77,238, 84,128,176,150,160,189,204,242,201,215,227,203,144, -173,219, 99,110,126,105, 76, 83, 12,217,191,243, 13, 70,123,223,195,179, 37,117, 99, 40,139, 17,173,222, 34, 39,223,253,102,214, -159,120, 3, 42, 92, 98,126,116,153, 78,122,154,142,191, 74, 97,246,145, 23,119, 56, 57, 60,206,209,203,130, 19,139, 49, 95,249, -236,203,180,127,120,153, 79,255,242,151,185,249,185,109,190,250,103,191, 73,127,251,205,244,174,180,185,242, 70,193,240, 96, 11, - 61,233,243,209,143,156,230,231,126,250, 10,205,233, 46,119,190, 92, 83, 23,123,212,173,130,116,231, 0,161, 36,107,231,222, 77, - 81, 14,232, 46, 93,161,214, 83, 23, 43,179,198,105,209,126,139, 78,247, 28,189,197,183,178,114, 33,166,174, 6, 28,238, 28, 49, -158,164,156, 60,177,206,234,169,101,210,233, 24,175,215, 34, 94,235, 96, 71, 33,200, 4,132, 65,219,154,114, 60,161, 14,250, 28, -170, 62, 76, 78,113,112,245, 21,226,100,204,104, 48,166, 28,184,166, 53, 83, 25,170,184,161,219, 14,233,223,185,237,184,236,158, -114,227,102,203, 44, 26,172,102,220,139,140, 56,137,153, 78, 83, 30,196,153,141,177,248,129,135,242,124, 26, 99,105,181, 90, 68, - 97, 76, 20,199, 20,121,225,238,197, 74, 19,197, 33,158,231,170, 85, 75,237, 76,206,186, 44, 41,203,226,161,113, 13,235, 72,167, - 66, 40, 39,141, 10,137,240, 28,109, 51, 12,253,153,175, 72,162, 60, 65, 93,215,184,102,201,138,178,200, 31,122,181, 28, 96,204, -201,176,190,239, 32, 98, 97,228, 33,172,156, 25,208,156,254, 93, 85,122, 6, 28,114,159,195,121,164, 20, 8,183, 73, 7,119, 82, - 70, 64, 85,149, 72,165,200,139,194, 73, 20,141,118,105,142,218, 32, 4,248, 65,136,175,148,203,212, 91,156,139, 61,137,103,134, - 63, 59,123,191,154, 48,244, 29,223, 0,135,118, 86,190, 66, 34,176,198,144, 23,249, 76, 58, 23, 8, 36,190, 63,235,154,168,170, - 10,173, 43,172,112,176,120, 41, 93, 78, 79, 8,232, 4, 29, 80,238,151,158, 76, 38, 84, 85,133, 23,132,132, 51,247,185,139, 54, -213,180,147, 4,169, 28, 34,246,131, 79,248,252,231, 79, 47,177,232, 73, 68, 35,192,247,224,168, 96,235,218, 14,223,217, 26, 82, - 53,176,177, 16,115,127, 84, 57,253, 68, 74,247,221, 52,208, 13, 53,234,222,144,188,182,160,107, 38,158, 79, 71, 9,214,150, 90, - 92, 92,239,145,235,134, 43, 43,243, 92,121,164,195,143,190,217,167,202, 53, 71,253,156,235,123, 37,127,244,237, 49,207,221,178, - 40,229,211,105, 57, 20,161, 21, 80,149, 53, 74,250, 84, 85,195,131,206,219,170,118,153,241,209,100,132,163, 3, 42,202, 50,163, - 48, 32,132,195,180, 6, 94, 64,148, 68,110,151, 56,219,209,101,233,148,105,150,209,138, 18, 68,224, 48,178,121,150,225, 41, 69, -145,231,180,219, 29,178, 60,163, 46,106,164,112, 39,178,164,157,208,212,238,228, 69,227,226,121,121,153, 17,122, 1,181,109, 40, -203, 18,165,102,250, 56,206, 93,169,124,223,237, 42, 77,131, 47, 37, 37,150, 36, 78,168,171,154,170,169,168, 10,253,112,247, 24, - 70, 33, 82,184,113,170, 47, 61,198,147, 49,173, 86,130,214, 21, 65, 20,224, 9, 15,233,187,135,169,213, 13,194,119,210,129,122, -240,125, 35, 64,184,139, 13,229, 65, 99,220, 5, 42, 96, 50,113, 27, 35,132,107, 53,122, 16, 77,244,124,215, 62,132, 49,180,103, -154,253,106,199, 99,186,111, 88, 57,189,204,222,221, 3,242, 82,179,212,137,176,199, 23,241,179,146, 88,221, 99,126, 41,100,154, -230,220,190,123,136, 39, 4,253,162,161, 95,230, 44,207, 9,164,145, 12, 74,203, 74, 28,224,117, 18,154,184, 77,166,107,210,124, -194,178,103, 24,164,154,131, 72,114,117, 63, 37, 86,138, 61, 93, 51, 85,150,188,180,124,229,185, 59, 12,210,146,247,191,229, 56, - 23,218, 37, 85,216,229,242,242, 58, 11,189, 46,219,123,251, 20, 90, 59, 98,149, 16, 44,204,245, 56,185,118,140,175, 62,243, 29, -130,192,155,109,232, 60,140,113,236,104,172,113, 27, 87,225,160, 68, 15,226,119,161,239, 58,231,117,109,176, 51, 35,105,221, 88, -218,237,132,105,158, 81,213, 13,183,238,109, 82,148, 5, 39,214, 86, 25, 79,166,120, 74,210,234,180,216,219, 63,112,104,229,215, - 93, 33,137, 34, 86, 22,122, 44, 47, 45,178,187,187, 71,127, 56, 68, 74,201, 83,175,127,140,183, 63,245, 6,132, 16,220,190,183, -201,119, 95,126,149, 19,235,235, 60,249,248,235,184,179,181,197,215,159,123,126, 22, 59,115,175,251,187,123,232, 74,227,201,199, - 92,180,172,210, 24,227,122, 12,164,112, 27,240, 90, 74,142,250, 3,178, 44, 99,117,105,137, 36,118,230, 76,233, 41, 60,229, 92, -229, 66,184, 60,172,105,204,195,147,250,100,154,114,239,254, 54,143, 95,122,132, 99, 43, 43,140,211,140,123,219,187, 52, 85,195, -205, 27,155,124,232, 61,239, 98,174,219,193, 83,174, 24,169, 63, 24, 16, 5, 1,167,143,175,115,230,228, 9,158,184,114, 9, 63, -112,249,250,122,246, 0,172,107, 23,165, 91,152,239,113,246,204, 9,158,127,245, 21,254,255, 74, 4, 5, 63, 0, 0, 32, 0, 73, - 68, 65, 84, 47, 63,240,105,181, 90, 28, 13, 71,120,126,192,112, 50,101, 48, 24, 97,165,224, 96, 84,208,238,172,209, 4,231, 17, -241, 54,173,100,149,211, 23,223,196,252,229,119,115,242,209, 55,240,210, 23, 63,205,225,253,111,129,237,185, 83,146,177, 88,209, - 64, 93, 50,190,191, 3,229, 33,166, 2, 41,219, 4,135, 45, 26, 37,104,242, 1,147,225, 22, 86, 84, 72, 41,193,139,136,194, 4, -157,239,178, 53, 60, 64, 24,139,193, 80,228, 83,140,244, 48, 34, 32,207, 7,164,147, 17,237,222,105, 46,126,244, 3,100,163,125, -178,225,152,110,239, 60,171,193, 6, 39,222,181,206,229,167, 50,254,248,247, 19,126,240,131,150,239,255,165,224,254,237,251,252, -225,111,254, 34,195,253,219,148,213,167,105,183,142,113,227,153,223,161, 51,191,200,165,139,199,120,237,223, 27,190,112,245, 63, - 16,200,136,197,229, 53,126,252,141,130, 63,216,143,249, 15,191, 87,113,231,217, 79,147,247,191, 73,255,104,199,129, 73,144,180, -123,231, 57,218,126,158, 17, 47, 17,180,143, 65, 61,193, 15, 59, 68,254, 18,173,197,243,172,108,188,141,167,223,247, 52, 52,150, -122,237,144,157, 59, 59, 20,195, 1, 47,223,184,199,217,181, 69,222,252,193,247, 51,127,233, 28,123,155,215,121,205,110, 83,237, -182,168,181,165,172,166,232,180,143,188, 49,166,222, 24, 83,236,127,129, 60,219, 97, 58, 25, 18,205,181, 1,183,161, 19,194,167, -220, 18,180, 47,175,210, 91, 61, 70, 61, 29, 99,172, 75,241,168, 32,192, 26, 87, 97,218,106,181, 8,227, 8,176, 68,137, 91,176, -235, 89,252,120, 60,113,164,207,164,213, 34,207, 93,250,164,105,106,119,210,182, 13, 90, 87, 76, 39, 83,172,117,102,233, 40,114, -217,255, 44, 77,241,130,128,170, 44,156, 84,169, 32, 14, 99, 60, 79,145,101, 19,172,173, 72, 90, 45,186,221, 46,142, 72, 87,147, - 36, 17,214, 70, 84, 85,133, 51,108,103,164, 19,141,105, 26, 38, 19,119,130,174,102,135,147, 7,239,101,172, 37,240, 13,186,170, -241,195,144, 52,157,226, 7, 17, 69, 49,157, 45,232,206,247,164,117, 13,216,153,220,105,102,239, 9, 96,208,149,187,174,180,113, -254, 12, 35, 93, 12,176, 21,116,144,202,153,157, 49,206,184,109, 49, 88, 83,227,249, 1,233, 52,199,247,221,232,223,213,114, 67, - 16, 68, 40, 85, 51, 29,187,146, 25, 1,179,245,215,113,228,149, 18,152, 6,148, 39,241,148, 82,120,126,131,135, 71, 16,197, 40, -207,141,154,211,105, 14, 2,148,239, 19,133,174, 94,180, 19,199, 14,241, 58,117,174,201,168, 21,211,157,235,145,166, 83,222,118, - 62,225,191,127, 95,139,147,243, 1, 40,119,114, 70, 72,236, 75,123,252, 31,207,222,162,180,150,185,216,167,241, 36,183,183, 38, - 44,100, 25,158,173,169, 43,136, 60,193, 80, 41,242, 56,230, 88,173,241,148, 71, 7,203, 94,224,187, 60,251,209,148, 23, 38, 21, -152,134, 47,190,118, 72,215,247, 88, 89,108,113,110, 41,102,237,220, 42,107,111, 93,224, 7, 47,204,209,207, 75,174,109, 23,124, -235, 86,201, 55,110,228,108, 13, 92, 97, 74,165,181,211,155, 43,137, 17, 16, 71, 17,211, 52,197, 83,110,108,164,148, 3,142, 96, - 27,178,204, 97, 5,195,208, 65, 4,176, 60, 52,154,197,113,139,172,200,105,108,141, 41, 5,166,169, 8,163,152, 34,207,104,199, - 45,202,178,116,209,136, 32,164,105,106,140, 53,140, 70, 99,252, 48, 0, 51,139, 45,104,237, 70, 52,190, 71,163, 13, 22,225, 98, -100,101,129,181, 14, 41, 91,164, 41,214,130, 21,130,106, 54, 38,242, 60, 15,211, 52, 40, 3,249, 76, 83,210,165, 6,172,203,165, - 43,137,177, 14, 71, 57, 28,141, 80,210,229,230,181,209,152, 28, 34,223, 71,155,134,116, 58,165,193,162,156,131, 3,225, 43,170, - 60,119, 16, 19,137,219, 53, 42, 69,171,149,204, 22, 52, 55,254,111,181,156, 38,230, 60, 13, 96, 60,139,180,179,147,150,181, 44, - 31, 30,178,190,182,200,159,191,120,192,201,149, 57, 14,182,251,116,143,247,192,151, 92,255,206, 45,162,105, 70, 21, 10, 40, 12, - 39,174, 28,231,214,141, 29,142,180,166,103,160, 21, 88, 70,131, 41,219,135, 57,231, 67,203,168, 61,135,173,156, 75,251,120, 59, -162,210, 37,157, 80, 65, 3,102, 62,162,204, 52,211,170,193, 7,226,110, 72, 58,173,121,246,197, 93,110,222, 63, 32, 89,191,136, -174,151,137, 48,124,248,189,239,225,165,171, 55,144, 66,114,208, 31,208,237,118, 25,140, 71, 92,191,125,151,124, 70,253,155, 78, -178,217,196, 69,208, 24,139,178,150,210, 52,120,194,225,112, 31,236,200, 29,184,194,245, 11,184,133,176,102,190,215,230,244,241, -227, 8, 33,184,191,119,192,221,123, 91, 4,190,199,202,226, 2, 82, 74,124,229,145, 68, 17,231, 78,158, 96,174,219, 65, 90,102, -167, 83, 73,146, 36, 20, 51,163,206,194,124,143,179,199, 55,152,155,233,142, 47, 95,187,193,112, 60, 37,140,250,236, 31,236,187, - 13,102,224,234,144,245, 44, 14,249,224,247,185,179,181, 77,161, 43, 78,110,172,113,114,125, 29,140,225,149, 27,154, 73,150, 19, -122,142, 35,255,216,197, 11, 44,205,119,145,210,163,212, 5,166,169,105,172, 64, 97, 41,117,197,238,225, 33, 82,226, 22, 54,192, - 24,216,220,217,227, 47,191,252, 53,218,173,132,165,197, 5,214, 86,150,217, 63, 56,228,117, 23, 31, 97,247,176,207,210,194, 2, -171, 75,139, 44,244,122,156, 59,121,156, 94,175,199, 35,103, 78,115,225,204, 41, 36,206,192,105,102,159,183,169, 52,129,239,234, - 49,139, 50, 39, 14, 67,226, 32, 98, 82,185, 50,164,211,199,215, 57,125, 98,131,147,107,171,188,237,169, 55,146,151, 21,247,119, -247, 28, 94, 54,207,105, 38, 33,198, 79, 48,219, 78,225,187,244,206,255,138,149,165,183,177, 56, 39,137, 98,193,214, 22,244, 58, -103,233,111,125,155, 70,223,198, 88, 15, 83, 21, 24, 1, 70,151, 12, 14,175,211, 10, 26,188,104,129,202,198, 96,112, 70,173, 42, -103,210,191,142, 71, 76,216, 57,129, 12, 18,234, 98, 72,218, 79,177,102, 14,107, 4,117, 61,165,212, 19,170,108,128,197, 98,131, - 13, 54, 30,253, 33,158,122,239, 47,112,191,248, 35,178,221, 33,113,251,144, 50, 77,185,190, 58,161,122,111,139,253, 97,194, 23, -254,242,147,252,197,239, 23,140, 7, 87, 17,254, 60,119, 94,248, 60, 0,127,245,169,167,241,165,160, 50, 22,171,230,185,243,234, -151,185,252,230, 31,103,239,230,151,152, 12,143,120,236, 3,191,206,223,251, 93,184,253,173,207,113,255,198,103,201,135, 47,145, -246, 55,201, 68, 77, 28,198, 92,121,235, 79, 81,148,219,120, 65,143,163,251,223,103,110,113, 68, 16,175,130, 39,233,116, 79,176, -178,246, 20,151, 95,247, 52,137,103, 57,251,145, 49, 7,191,247, 97, 46, 92, 60,228,149,151,174, 99,116,206,245,187,219, 92, 82, - 62,226,123,107, 44, 62,186,192,241,243,127,205,205,187,247,169,171, 0, 93, 15,169,203, 49, 77,190,207,218,198, 26,250,216, 46, -131,231,238, 50,189,119,159, 83,111,121,156, 96,165, 70,111, 43, 80, 1, 81, 20, 83, 35, 88,185,116,133,251,207, 62, 75,211,104, -146,150,211,117,117,149, 97,172,117,240,178, 48,196, 90, 48, 85, 61, 43,111, 49,232,162, 66, 5,138, 40, 72,192, 74, 90, 73,155, - 52,117, 73, 16,167, 29, 55,120,158, 68, 41,215, 12, 56,157, 78,145, 66,208,238,116,240, 3,119,136, 9,219, 29,106, 93,206,198, -206, 25,224, 10, 88,154,202, 33, 87,149,116,198, 85, 41, 21,142,210,233,162,188,174, 95, 32,198, 90, 87,126, 34,132,160,221,110, - 35,165,164,105, 12,217, 12, 59,107,140, 51, 73, 59,100, 57,204,121, 29, 26,107, 72,162,158,123, 14, 54, 46, 18,140,181,110, 51, -109, 26,140,177, 68,145, 27,249,131,235, 54,145,190,116, 61,242,161,143,148,222,204,145,223, 96,141,139,137,251, 42,192,151, 30, -133, 46, 41, 10, 77,219,115,206,250, 32,112,135,102, 55,133,112,211,131,105,154,186,117,197, 56,179,160,242,124,234,217,228,220, - 15, 67, 64, 96, 76,141,167,148,196, 15, 28,132,197,137,250,110,164, 94, 27,135,245, 75,162, 4, 33,220,142, 60, 47,115,166,153, -235,204,150,158,164,156, 57,187,223,113,165,199, 63,251,209, 57, 18, 37,104,114,139,188,185,197,159,124,227, 6,231, 87,186, 28, -166, 37,117, 63, 99,101, 46,100, 89,122,108, 30,140,104,101,154,181,197,132,186,145, 88,109, 72, 22,219,200,221, 17,129,209,100, - 86, 48, 45,157,209,110,189, 46,201,240, 40,133,135, 15,120,141,230,148,240,144, 77, 77,146,121, 92,191,175,249,214,213, 3, 30, - 89,159,231,226,201,121,230,219, 93,222,250,232, 60,111,189, 84,240,247,139,156,151,239,105,254,236,123, 41,127,241,157,193,236, -116,238,198,208,141,169,105,183,219, 84,181, 35,114,213, 77,131, 53, 53,198, 88,192, 53,168, 85, 85,237,200,118,157, 14,147,201, - 4, 97,157,193, 46,138, 18,210, 52,115, 84, 36, 47, 64, 72, 65,146,180, 41, 75,151,135,140,163,132,188, 44,144, 40,164,112, 48, - 31, 83,107,130, 32,166,154,209,196,124, 47, 38, 47, 11, 60, 36, 97, 24,206,220,132, 46,211,175,243,210,149, 45,132, 62,113,232, -220,140, 0,147,201,196, 45, 8,198,184,139,122, 86,120,160,107,119,106, 15,148,194, 0,173, 36,161, 44, 75,202,170,118,241, 58, -229, 8,112, 58,207, 29, 99, 63, 12, 81,141,101,154, 78,105, 69, 45,116,154,211,208,208,105,119,221, 40, 11, 7, 72,104,170, 26, -161, 60, 55,190, 50,134,188,174, 41,243,156, 78,171,195,120, 58, 70, 2, 70, 56, 40, 77,224,123,180,187, 93,142,138,156,139, 43, - 9, 87, 15,167, 20,135, 41, 63,250,150,115, 48, 42,216, 31, 23,172,157, 91,230,254,181, 29,240, 20,131,189, 17, 89,238,138, 99, -234,113,202,246,168,166, 76,115,138,170,226,106,161,144,197,136, 78,171,228,228, 98,155, 32, 48, 12, 83, 75,173, 60,148, 87, 49, - 61, 40, 24, 27,103,192, 89, 92,138, 89,153, 75,184,101, 83,146, 0, 84,101, 17,249,152,204,171, 25,239,236,242,189, 87,174, 1, - 78,150,185,179,181, 53,227, 57, 75, 78,159,216,224,160, 63,160,105, 26,178,178,192, 11,188, 25, 9,205,101, 89, 67,223, 39,106, - 39,179, 83,137,243, 17,148,186, 36, 43, 11,164,117, 27, 93,173, 53, 81,224, 8,110,197, 12,113, 44,146,152,166, 49,244, 71, 35, -108, 99,200,138,130,205,205,251,156, 58,181,193,226,252, 60,157, 86,204,104,146, 82,104,205,205,123,247,156,254, 13, 28, 30,245, -121,237,230, 45,252, 64,113,225,204, 25,148,148,228, 69, 78,175,221,162, 44, 74,142,134, 99, 23,223,116,135, 3, 30,164, 35, 66, -223,167,221,110,209,110,185, 22,189, 19, 39, 87, 49,166,230,214,230, 22,198, 24,210,162,100, 52, 77,153,230, 57,194, 10, 55,102, -244, 21,101, 81,146,149, 26,223,115,145,181,197,249,121,170,198, 50,158,166, 12,199, 99,226, 40,228, 29,111,126,146,199, 46, 94, -160,219,233, 82, 87,154,254, 96, 72,154,229, 28, 91, 93,229,233,167,222,192,165,115,103,168,106,215, 93,173, 16,156, 63,115, 10, -107, 45,121,233,224, 66, 74, 74,116,229,226,153,117, 29, 97,140,161, 40, 75, 22,231, 23,121,228,244,105, 78,157,216,224,165,215, -174, 97,140,225,206,214, 54,163, 73,202, 56,205,169,154,134,139,103,206,112,119,107, 7,161, 4,163,209,132,197,192,199,106, 67, -149, 27, 4, 25,117,177,197,245, 23,255,156,215,244,132,198,100,232,186,162, 41,115,178,209, 17,202,236,209,212, 10, 93, 67, 85, -229,164,131,187, 52,248,228,149,198,230,215, 16,178,227,252, 6,141,165, 44, 83,178,209, 38,143,191,255, 87,121,223,175,253, 12, -213, 51,130,111,255,197, 95,113,227,213, 63,192, 19, 35,106, 13,186,152,210,216,146,108,184, 73, 54,218,230,252,219,127,129,127, -249, 23,255,140, 13, 52, 63,247,223,254, 57,241, 74,194,193,214, 22,157,203,119, 73, 95,251, 34,195,255,249, 2,202,196,216, 44, -228,254,171,255, 59,253,163, 67, 46,158, 63,195,239,253,206,191,230, 39, 62,246,113, 58, 29,103,224, 5,120,238,185,103,249,204, -167,255, 45,255,250,119,127,149,160,123,146,203,111,250, 4, 82,231, 60,247,231,255,140,241,193, 77,138,209, 93,138,209, 53,214, - 31,121, 31,225,169, 8, 63, 61,197,135,254,139,127,200,215,191,251, 41,182, 95,253, 22,158, 23,224,183, 22, 89,191,248, 62,178, -209, 22,141, 18,248,137, 79, 58,172, 24, 16, 48,248, 70,143,115,239, 55,232,175, 93, 97,229,112,204, 84,231, 72,223,227,246,222, - 54,103,162, 67,166, 95, 93, 68,116,125,218,199, 39,244,175,121, 52,197,128, 70,231,164,211, 62,111, 95,127,138,104,161,199, 11, -165, 70,150, 79,113,230, 7, 86,217,187,191, 67, 1,180, 90,109,188,160,131,221,211,176,186, 78,123,190,203,184,127,136,174, 42, -242,194, 65,181,162, 40,198,224, 76,154,101, 89,162, 60,159,172,116, 60,144,192,139,144,184,182, 55, 99,205,172, 32,169,193,243, - 44,121, 94,211,212, 6,102,135,153, 36,105,205, 70,236,134,225,112, 68,183,219, 37,207, 50,164, 20,248,126, 8, 52,104,157, 19, -120,142,253,224,251, 30,158,240, 64, 72, 38,211,130, 48,116, 90, 52,141,196, 52, 53,214, 24,172,117,154,252,252,252,252,195,251, -201, 90,151,236, 49,141, 68, 8,139, 64, 48, 24,244,137,227,136, 40, 74,168,109, 77,160, 34, 30, 52, 27, 6,145,143,111, 93,206, - 93, 73, 71, 40,181, 66, 56,195,246,236,103, 26,155,160,117,142, 47,221,239, 96,177,120,128, 49,238,164,239,169,128,198,212, 24, - 41,136, 91,174,117,205, 90, 65, 43,113,207,149,241,120, 76,156, 56,148, 57, 56,223, 73,173, 28,173, 46,207, 75,230, 58, 1, 94, - 28, 83, 27,167,243, 59,105,163, 70,173,159, 60,249, 73,173,181, 43,102,152,157,196, 30,116,227, 58, 3,128,155,231, 27,107, 25, - 79, 38,128,164,221,105, 59, 16,191,181,124,228, 41,143,127,250,193, 69, 2,169,192, 90,190,251,249, 87,185,182, 61, 98, 46, 14, -208,194,178,180, 58,207, 98, 39, 96,161,215,166,221, 13,157, 1,109,156, 49,210,134,126,209,144,132, 30,221, 78,204,222, 56,163, -237, 43,108,203, 39,110,183,136,103, 78, 68, 19, 39,172, 31, 95, 66, 87,154,157,189, 49,141, 53, 40,169,136, 3,143, 58,205, 8, -179, 28, 93,148,140, 74,193,100,100,216,188,121,192,170, 10, 81,237,132,245, 51, 93,222,117, 33,228, 35,143,133, 92, 92,139, 25, -228, 53,131,204,115,139,103,233, 58,205,235,202,237,226,124, 47, 32, 73, 90, 14, 58,144, 23,232,217,184, 48, 75, 83,226, 40, 66, -215, 53,158,144,100, 51, 80,141,174, 28, 99,221, 21, 55,148, 72,207,181,153,105, 93, 98, 27, 67, 51,187,128,132,242,240,125,143, - 34,203,104,106, 75,171,149, 32,165,165,200,115,234,198, 17,251,106,237, 96, 22, 90, 59, 7,125, 20, 69, 40,161,176, 2,210,233, - 20,215, 95,238,163,164,116,122,104, 18, 57,247,104,228,152,216, 81, 24, 62, 4,207,120, 74,128, 82, 46, 99, 29,132,179, 5,168, -228, 1, 5,175,210,154,186,177, 96, 13,117, 93, 97,113,133, 0, 66, 56,164,163,139, 96,101, 84, 85,133,107, 96,115,252,126, 61, - 27,191, 11, 4,141, 0, 93, 85,142, 37, 96, 12,190, 39,248,224,220,148, 91,123, 35, 74,171,248, 59,143,172,240,214, 75,199, 80, -143,174, 83,222,216, 98,123, 90,209,155,159,163,117,108,142,110, 39,230,240,238, 46, 7,218, 32,124, 69,207, 26,130,166,161, 70, - 80,251,174, 2, 81, 98,232,133,138,133, 72,210,207, 74,142,198, 5,185,177,244, 90, 1,227, 97,201,227,151, 87,169,149, 65,215, -130,188,180,132,145,194,150, 53,231,186, 33,113, 28,161,231, 78, 51,201, 51, 90,115, 61,110,223,217,164,174, 43, 46,157,191, 64, -232,251,164, 89,202,120,154,114, 56, 24, 18,248, 51, 79, 6,130,110, 59,113, 30, 13, 41,136,194,128, 56,114, 83,169,198,184, 17, - 92, 81,104,210, 60,163,210, 46,235, 93,213,110,170, 83, 53, 46, 71,158,101, 57,165,214,132, 97, 64, 24, 4,100, 69,193,120, 50, -101, 48,158,112,119,107, 27, 33, 5, 82, 42,210,194, 65,151, 90, 81,140, 17,130,105,154,225,123, 30,103, 78, 28,103,227,216, 10, - 66, 72,174,221,190,203,171, 55, 28,187, 61, 74, 98,164,132, 27,119, 55, 57, 60,250,255, 18,216,166, 89, 70, 28,134,180, 91, 9, -243,115, 61, 54, 86, 87, 88, 92,152, 71,107, 61,187, 78, 65, 74,151, 1, 95,232,205,145,180, 18,170,170,162,208,174, 44, 38, 47, - 10,124,169,104, 76,197, 65,127,200, 81,127,192,238,193, 33, 85, 85,115,227,206, 61,250,163, 49, 79, 63,245, 70, 30,125,228, 2, - 69,145,243,226,245,155, 92,189,113,139,159,252,224,251,185,116,238, 12,157,118,155,147,235,235,172, 46, 45,144,132, 46,143, 31, -135,225,195,222,130, 40,244,241, 61,223, 37, 88,164,160,170,106, 14,250,135,124,249, 27,207,146,102, 25,187,135, 7, 96, 93,145, -212, 66,175, 75, 18,199,172,173, 44, 51,223,235,209, 31, 12,185,119,127,155,241,100, 76, 99, 45,245,226, 26,117,218, 65,103, 71, -232, 98,192,100, 56, 64, 23,125,242,244,136,124,188, 77, 58,184, 77, 58,222, 68, 8,159,108,114,139,209,209,125, 72, 30,225,117, -111,254, 53,126,246,231,254, 37,143,190,245,105,158,253,226,215,232,239,190, 64,105,142,168, 38, 71, 20,147,219,116,122, 23,248, - 59, 63,242, 47, 88,121, 51, 36,151, 33,220, 57,199,238,221, 87, 25,142,191,141, 40, 50, 42, 61,160, 24,109, 50, 58,186, 70,119, -254, 28,237,249, 85, 94,249,122,202, 55, 95,129,229, 39, 78,241,249, 95,254, 37, 94,184,179,200,246,189,231,232,223,221, 97, 50, -218, 97,119,251,203,188,240,229,223, 38,242,106,254,207, 63,252,191,248, 87,191,245,191,241,134, 39,159,194,213,107,242,112,250, -179,190,190,193, 15,255,200,143,242,171,191,250,171, 36,170,224, 51,191,247, 73,198,227, 93,226,120,145,127,240,107,191,205,139, - 47,254, 25,163,221, 17, 31,252,196, 23,176,186, 97,255,254,243, 12, 54, 23,185,241,245, 63, 70, 40, 69,111,229, 81,100,224,113, -226,202, 7, 88, 56,247, 78,198,247, 95, 38,111, 38,228,118,204,225,240,128,155,215, 53,197,221,121, 14,174,237,177,176, 62, 97, -175, 63, 34, 8, 19,140, 41,200,237, 17,163, 91, 57,253,173,107, 72,125,136,206, 20,117, 93, 96,171,140,170, 28,177,188,177, 66, -220,105,211,154,107,147,116,222, 65,216, 36, 68,221, 49, 83, 81,225,235, 5,148, 23,162,100, 64,211, 46,176,147, 67,244,100, 76, - 89, 57,239,137,167, 60,138,135,178,162, 37,136, 66,148,242,241, 61, 55,109, 50,184, 82, 33, 7, 1,107,208, 85,133, 49,110, 65, - 18, 74, 18,248, 46, 86, 93,104, 77, 85,215, 15, 97, 95,238,239, 38, 65, 88, 23,231,172,221,228,204, 77, 17, 5, 40, 65, 16, 4, - 84,181, 70, 74, 39, 13, 51,219, 32, 87, 51, 41,205, 0, 77,163,193,184,205,186, 16,130,178, 40, 40,138,156,178, 44,103,204,122, -215,223, 17, 4, 1,217,204, 8, 39,173,164, 49,134,188, 44,104,234, 26,129, 3,214,212, 51, 26,105,109, 28,156,172,110, 26,170, -170,114, 50,158, 46, 49,198,121,136,210, 44,197,204,100,133,186,118,224,165,198, 54, 14,236, 38, 37, 74, 42,231,227, 41, 10, 44, - 14, 47,237, 5, 1,101, 81, 56,160,140,242, 30, 78,108,165,231, 17, 4, 1,211,204,149,115, 9, 92, 18, 43,207, 11,148,146,168, - 51,231, 47,124, 50, 10,102, 4, 51, 63, 32,240, 61,130, 48, 68, 40,133,169, 12, 89,158,131, 16,100,121, 78, 93, 53,184, 72,130, - 43, 31,185,178, 30,240, 43,239,157,199, 7, 68, 13,175,124,241, 85,166,101,197,217,227, 11,104,211, 80, 87,208,142, 2, 84,168, -152,159,107, 33,164, 64, 37, 62, 50,118,208, 24, 41, 37,105, 81, 51,152, 22, 12, 52,180, 60, 40,203, 6,101,106,124, 44,198, 66, -103,213,229,145,139, 66, 67,101,232,246, 34,150,122, 45, 84, 43,100, 58,156, 80, 26, 67, 55, 78,232,133,138,166, 72, 73, 15, 70, -188,118,175, 15,133,207, 66,114, 26,218,115,180,230, 66, 46,157, 12,249,200, 19, 45,126,248, 74,200,164,180,228, 38,196, 8,159, -166,254, 91, 61,237, 72, 7,212, 81,146,164,213,194, 15, 2, 84, 16, 32,149,239, 0, 4,190,143,110, 92,181,105, 24,134,206, 37, -238,133,248, 82, 96, 77,253, 48,222,229,121, 46, 26, 24,249, 62, 65,232,187, 47, 36, 8,144, 56,246,176,174,181,235,201,149,130, - 48, 8,168,234, 26, 99, 27, 90,113,139,170,118,117,131,197,172, 60, 0,152,213, 7, 86,238, 2,240,156,249, 73, 74,233,114,152, -128,193,186,239, 46, 8, 0, 9, 86, 34,133,114, 38, 42, 3,190,231,185,180,128,148, 68, 97, 12,166, 38,142,163,135,191,171,239, -249, 76,211, 9,101, 89,226, 8, 72,150, 40,113,165, 57, 97, 16, 98,140,153,141,157,157,238,223, 78, 92,255,181,174, 42,194, 56, - 98,125, 33,225,157,157, 41,198, 15, 25,213, 6, 83, 22,156,152, 15, 17, 43,115,232,173, 1,247,119, 39,108, 95,221,165,219, 75, - 88, 93,239,177,127,152, 49,108, 44, 82, 55,116,165,219,188,236,234,134,229,249, 22, 13,208, 86, 1,147,180,196,247, 37,105, 37, -120,121,119,140,174, 44, 43,221,128,233, 40,163,189,208, 97, 58,173, 40, 39, 14,136,227, 18,216,146, 56,145, 20,133,193,172, 93, -194, 26, 75, 24, 39, 76,210, 41,187,135,125, 46,157, 59,131,174, 42, 6,163, 49,183,238,109,178,189,183,207, 96, 52,166,106, 12, -167, 54, 86, 89, 91, 94, 98,121, 97,129,249,158, 51,186,213,117,253,112, 98, 83, 53,174, 88, 36, 47, 53,133, 46,209,186, 38, 43, - 28,155,253,104, 56, 96, 50,157,162,171,154, 48,240, 73,162,144,166,113,177,152, 7,139,103, 81, 58,154, 97, 89, 85, 44,244,122, - 52,198,176,179,183,143, 43, 59, 42, 25, 78, 38,204,117,219,180,227, 24,207,247,153, 76,167, 20,133, 3, 29,157, 59,121,156,139, -103,207, 97,113,180,182,191, 13,109, 89,232,245, 56,177,190,202,165,115,103, 56,115,242, 56,101, 85, 83, 87, 21,253,209,152,237, -189,125,210,204,105,230, 94,224,160, 22, 82,130, 16,142, 38,168,117,197, 36, 77, 41, 43, 77, 85, 59, 73, 65, 87,154,173,221, 61, -172,117,253,215,151, 47,158, 99, 52, 28,241,181,111,127,135, 47,124,237,155,108,172, 46,243,223,253,226,207,115,233,236, 25,150, -150, 22, 28,193, 49,203,153, 95, 88, 64, 8,215, 40, 24, 5,142,161, 16,135,161,227, 74,204, 28,200,214, 56,130, 99,224, 7, 40, - 79,241, 71,159,253,127,104,106,119,253,174, 44, 46,114,225,204, 41, 30, 57,119,138,249,185, 57,142, 45, 46, 98,172,161,168,106, - 68, 93,179,216,109,179, 31,118,208,227,152,186,200, 49,233, 93,178,105, 78, 54,217, 38, 27,109, 81,230,125,242,225, 22,217,116, -159,139,111,253, 37, 94,247,131,255,156, 15,125,226,147,252,194,167, 62,206, 79,125,124,157,159,253,129,152,119,188,177,203,251, -254,193, 7, 57,108, 62,193,222,173,255, 72,214,191, 79,144,172,113,229,233,159, 99,176,125,135,215,254,239, 87,185,251,215, 7, - 12, 38, 7,212, 89,202,238,245,111, 81,142,110,146,167, 7,120,254, 60, 27,103,223,205,177,115,239,163,206,166,188,248,215,191, -133,156,187, 71,254,138,207,179, 55, 54, 24,164, 5,254,218,132,159,253,216,255,196,119,191,250, 5,190,255,165, 95,231,237,111, -122, 61,175, 94,187,193,133, 11, 23, 30,202, 56,238, 36,101, 24, 14,135,206, 21, 13, 15, 39,113, 63,240,182,183,243,159,125,226, -231,248,204,167,255, 87,188,222, 57,206, 60,246,195,220,187,250, 61,146,206, 25,182,238,124,139,239,126,225,159, 19,172, 70, 40, -219,240,202, 51,159, 98,229,216, 99, 60,246,142, 95, 97,235,198, 95, 49, 57,186, 71,149, 78, 40, 38,123,164,251, 55,153, 28,222, - 99,116,120,157, 81,255, 42, 7,247, 95, 38,175, 4,213,120,196,220,162, 98, 56,153,208, 76, 13,117,121, 68,222,223, 99,176,125, -147,226,112,135,246,194, 2,166, 81,152,170, 66,120,146,238,114,155,249,165,121,180, 46,185,191,121,196,209,102, 73,195, 22,197, -116, 76,160, 54,240, 68,132, 20, 30,229,164,192,139,166,140,183,183, 48,141,165,174, 43,116,161, 1,225, 38,186,194, 67,224,122, -218,165,116, 13,106,113,156,184,231,142,239,185,131,199,236, 26, 53,198,101,220,125, 63,194, 24,231, 35, 10, 66, 87, 94, 21,120, - 10,148,162,210,185, 51,174, 38,177, 75,241,132,161, 51, 8,206, 34, 96, 98,118, 16,245, 61, 31, 36, 4,126,128,175,220, 51, 38, -137, 92,203,101, 81,204,154, 73,197,108,193,175,107,154,198, 34,165, 35,184, 9,233,166,213, 90, 59,115, 91, 81,148, 46, 61,229, - 73, 2, 47, 64, 72, 71, 21, 13,194,144,162,112,212,202,110,187,131,107,227, 12,102,165, 45,181,115,173,123,238, 20,175,117, 69, - 24, 37, 36,113, 76, 24,134,142, 33, 97, 28, 29,206, 15,125,210, 52,117,174,127,229, 3,130, 86, 28,163,164, 71, 93,107, 66,223, - 71, 72, 15, 83, 59,248, 87, 28, 70,228, 89,129, 49,205, 76, 90, 46,209,186,162,213, 78, 64, 8,188,186,170,200, 11, 87,161, 23, -135, 49,133,118, 38,174, 32,142,105,164,128, 74,144,166, 41, 86, 48,211,214, 37,141,177,232, 98,202, 63,126,207, 26,173,110, 4, -219, 99,254,250, 43, 47, 50, 40, 60, 90, 17,188,120, 99,151, 36,142, 24, 22, 53,141, 74,217, 88,237, 50, 28,166,108,238, 15, 89, - 91,234,241,200,202, 60,233,210, 28,195,113,137, 23, 74, 48,150,147, 82,178,119,251, 0, 61,204,144, 8,246,171,134, 14,144,231, - 5, 65,187, 77,216,138,144,190, 91,120, 43, 41, 81,186,161,179,212,165,109, 93,233, 73, 97,225,232,104,200,112,154,113,114,101, -153, 94, 16,208, 76,143, 40,142, 52,247,246,142,104,135,150, 19, 79,172,177,177,152,241, 79,222, 15,163,188,225,217, 77,203,167, -158, 81,236, 13, 37,105,158,209,235, 58,208, 12,194, 57,217,149,231, 35,234, 26, 7,222,175,176,181, 97,174, 51,231,178,128,158, -156, 97, 83, 93, 68,205, 25,243, 4,204, 38, 29, 18, 80,129, 67,239, 54,117, 69, 24, 70, 40, 47, 36,150, 53,198, 90, 26,173,103, - 6, 55,103, 52, 52,184,197, 27,220,132, 36,140,194, 89, 36, 67, 80, 87,213,172,159,184, 68,212, 46, 98, 17, 4, 17,249, 44,191, - 14, 22, 41, 93, 38,221, 26, 11,194, 61, 44,218,157, 54,166,169, 31, 70,163,156,166,211,224,205, 50,142, 86, 56, 39,180,177, 13, -129, 23,184,253, 0, 46, 37,160,117, 77,173, 53, 74, 57,243, 72, 43,142,176, 64,109, 12,121,238,112,133, 46,183, 31,240,143,222, -217, 97,126,144,243,213,205,148,227, 85, 69,154,213,216,121,103, 36,252,238,189, 1,147,195, 49,210,212,212,186,192,214, 93,182, - 51, 77,183, 19, 49,191,216,101,112,107, 23,213, 88,188, 36,100, 50, 74, 17,129, 27,109,175, 44,182, 56, 48, 32, 61,231,131, 24, -231,154, 73,217,208,238, 68,140,139, 26, 43, 4, 19,221,176,177,212,102,146,107,166, 90,240,253, 65,131, 45, 70, 44,157, 74,169, -181,230,235, 47,126,159,171,183,238,242,232, 35, 23, 16, 51, 95, 64,183,211, 70, 72, 65, 94,150,236,236, 29,224, 43,193,194, 92, -151, 32,116, 61,231, 78, 30,153,193,122,180,251, 78,132,177,132,145,107, 43,204,180, 70,219, 26, 33,228,195,141,105,183,219,117, - 36, 68, 37, 57,121,252, 56,113,224, 51, 45, 74, 6,253,225, 67, 87,236,124,111,142, 99, 43,139, 4,158, 34, 47, 53,171, 75,139, - 92,191,123,151,189,163, 35,130,192,115, 52, 54, 33, 73,162,128,227,107,107,100,121,206,193, 96,192,171, 55,110, 50, 63, 55,199, -193,225,145,115,252,254,173, 87,127, 56,228, 59, 47, 78,217, 59, 56,226, 93, 79,191,133, 94,183, 11, 64,183,211,134,198, 56,108, -177, 82,108,168, 85,206,158, 58, 9,128,239, 41, 64, 17, 45, 44,144, 68, 17,211,212,213,188, 86,149, 75,132, 60,120,165,121,198, -173,219,119,121,236,145,243, 20,117,205,137,181, 53,238,110,237,240,233,127,255,103,188,229,245,143,147,102, 57, 95,125,230, 89, - 46,157, 59,205,111,125,242,127, 36,105, 37,120,202,115,254, 20,235,146, 49,158,146,100,133,195,126, 14,116,197,222,209, 33,215, -174,223, 98,115,119,143, 83,235,107, 92,191,115, 23,112,242, 72,167,221,113,233, 18,223, 33,158, 59,173, 22,199,150, 22,168, 3, -143,238,234, 18,155,194,167,208, 41, 89,166, 73, 39,215, 8,154, 22, 70, 27,170,202, 81,197,210,116,151,197,181,183,113,252,220, - 91,233,118, 83, 38,229, 22, 95,251,178,166,185, 46,248,221, 73,131,103,231,136, 60,159, 51,107, 11,188,254,159,254, 41,193,155, -224,185,223,217, 99,243,234, 31, 83,234,109, 36, 30,122,111,159,154,154, 60,221,227,196,227, 63,206,220,234,101, 78,158,122, 23, -107,231,231, 17,218,178,125,191, 79,127,235, 5,218, 87, 42,122, 39, 79,114,237,243,127,202,222,245,207,243,248,199,127,140,133, - 83,143,115,227,142,229,214,139,127,200, 92,183,197, 87,254,227, 55, 30,202, 36, 0,167, 78,157, 98,123,123,155,191,253,250,204, -103, 62,195,199, 62,246, 49,192,221,175, 39, 79,157,230,143,255,240, 15,248,249,191,247, 95,242,111,255,201,123, 72, 39, 55,121, -221,219,127,149,165,229,199,208,147, 91,108, 60,249, 58,218,199,143,243,182, 75,191, 66, 93,140, 25, 14, 95, 64, 26,201,225,230, - 51,140,247, 95,197,216,134, 48, 89,198, 51, 83,140, 86,148,153,135, 14,143,136, 77, 70, 58, 44, 56,222,173, 89,233, 36,220, 25, -110,163, 76,133,191, 80, 97,238, 29, 82, 11, 11, 75, 53,137, 76, 48, 44,226,139, 57,114,235,106,148, 35, 21,224,117,183,217,190, -145, 50, 26,222,199,107, 37, 44, 28, 55, 32, 61,132, 8,240,109,136,109,205,225,121, 30,158,231, 72,161, 66, 8, 38,211, 9,117, - 13,117, 85,184, 9, 78, 20, 51,153, 78, 9,227,208, 77, 67,181,198, 11, 60,148,112, 39, 79, 41,220,129,106,182,214,162,140,155, -238, 40, 92, 83, 38,128, 15,216,166,194, 90,152, 76,199,200,217, 61,141, 48, 51,249,211,130,112, 26,121, 81,234,217,223,191, 38, - 75, 83, 66,223,167,156, 25,206,226, 56, 70, 40,137, 48, 2, 33,113, 19,234,202, 32,148, 37, 12, 66, 4, 80,134, 30,158,144,140, - 70, 35,192,153,218,154,170, 34, 10, 34,194, 56,164,221,118,125, 6,126,232, 14, 62,211,105, 70,156, 56, 24, 87, 94,150, 4, 65, - 72,158, 23, 36,201,172,100, 38, 12, 41,139, 2,227,187,104,103,187,213,166, 44, 92,117,111,154,166,180, 59, 29,166,105, 74, 20, -184, 52, 83, 86,148, 4,190, 34, 73, 58,248,190,164, 44, 43,130,208,163,169, 26,132,114, 45,150, 97,227, 83, 85, 53, 77, 93,145, -151, 37, 89,150,187, 83,255,201, 51,103, 62,233,249,158,227, 64, 55, 53,117, 99, 48,128,242, 60,242, 44,119, 99,118, 33,136,195, - 24,229, 75,148,116,172,221,143,189,169,205,187, 95, 55,135,189, 61,228,247,255,244, 57, 50, 45, 8, 16, 72, 33,104,117, 19,202, -198, 50, 62,202,169,117,195,116, 90, 80, 26, 75, 90, 84,228, 89,197, 96,156, 35,164,194,111,121,132,202,167,237, 41,132, 18,120, - 73, 64,214, 52,120, 65,196,177, 51, 75,140,199, 5,249, 36, 67,167, 57,121, 63,133,170, 66, 73, 65, 24,170,135,227,102,155, 23, - 72,233, 17,122, 30,158, 39,137,227, 0,131,160, 29,135,232,105,206,225,206, 62,227,131, 67,134, 89, 77,207,244, 8,223,255, 97, -196,198, 49, 34, 15,206, 45, 90,126,234,209,136, 51, 43, 30,149,240,153,148,146, 82, 59, 44,170,239,251, 40, 57,171, 73,108, 28, -176,165,105, 92, 43,143, 3,226, 72,164, 16,179, 18,129,153, 81,162,174,145, 74, 17,248, 78,183, 23, 66, 58,215,145,157, 85,210, - 22, 25,122, 70, 18,171,202,210,185, 56,181,126,232,202,215,165, 99, 5, 71, 97, 8,214,197, 28,202, 82,227,121,138, 86,210,154, -141, 52,163, 25,157, 72,160,164,164,177,142,128, 22,197,173,135,145,140, 7,153,198, 70,215,232, 82, 99,173, 33, 77, 83,167,193, - 87,142,251, 93,106, 77, 81,150, 84,117,237,234,252,154, 6,207,243,221,130, 94,187,207, 11,238,239, 80,215, 53, 40,233,162,125, -126,128, 84,174,150, 87, 41,143, 39, 55, 44, 63,255,120,136, 74, 53,223, 59, 72, 49,185,230,202, 74,204,226, 19,103, 16, 71, 53, -183,238, 31, 81,140,115,172, 82,120, 94, 64, 38,224,222,189, 33,139, 11, 9,107,107, 61,142,198, 37,163, 32, 64,230, 37,158, 20, -212,153,102,190, 21,226,181, 66, 94,220, 25,211,154,139,233,250,146, 90, 55, 44,118, 35, 68, 28, 16, 36, 1, 7, 35, 77, 88, 87, -156, 94,235, 32,246,118,233,166, 35, 98, 93, 17, 78,135,164, 11,167, 48, 42, 96,253,248, 6,251,253, 62,251, 7,135, 12, 38, 19, - 78, 30, 91,193, 26,183,136,244, 7, 99, 44,150,203, 23,206,179,190,188,140,174, 53,105,150,147, 87, 21,198, 58,250,222,131, 90, -200,131,254,128,157,253, 35,238,110,109,187,186,224,217, 38,238,129,166,221, 73, 18,172, 49, 12,199, 19,146, 56,100,117,101,153, - 78,156, 48, 78,167,236, 31, 29, 81, 85, 53,113, 28, 18,135,238, 4, 18,133, 62,221, 78,155, 55,189,254, 49, 94,189,126,139,162, -212, 28, 91, 90,100,117,101,137, 48,240,216,220,217,101,255,112,128,146, 46,182,232, 12, 58, 33,119,182,182, 49,230,111, 98, 96, - 0, 22, 8, 66,159,193,104, 68, 20,132, 84,117,197,247, 95,189,198,230,238, 30,186,114,250, 95, 81,150,140, 70, 35,170,166,161, -174,106,218,173, 4, 99, 26,124, 63, 96, 97,126,142,165,133, 5,186,157, 22, 22,193,214,206, 46,186,170, 88, 90, 88, 96,101,121, - 9,223,115, 93,238, 55,238,221,227,194,153, 83, 92, 58,123,134,205,157, 29,158,127,233,101, 78,108,172,243,163, 63,244, 46, 22, -230,231, 8, 3,151,224, 16, 82,160,148, 55, 27, 79,186, 78,179, 74, 87,232, 90, 51, 28, 78,216, 62, 56,228,251,175, 92,229,133, - 87, 94,193,226,204,121,111,121,226, 49, 46,159, 63, 75,175, 55, 71, 59,142, 88,152,159, 99,174,211, 65, 41,197, 66, 40,152, 42, -143,215, 38, 21,137, 58,206,217,115, 31,231,228, 35, 31,226,214,107, 95, 64,235,109,162, 25,158, 83,218,136, 43,239,248,187,132, -143, 15, 96,109, 27, 86, 39,216,102, 64,176, 18,208,170, 66,146, 78,200, 96,120,139,123, 55,158,225,206, 43,175,226,237,159,231, -242,229, 57,174,189,252, 42,186,158,162,203, 49,186,158, 80,102, 3,138,241, 22, 74, 37,172,156,120, 61,197,120,135,251, 87, 95, -225,240,168,192,122, 22, 33,134,196,151, 2,164,170, 89,125,252, 73,206, 62,253, 30,198, 7,125,110,253,233,231,249,246, 95,252, - 38, 7, 91, 47,240, 7,191,255, 25, 46, 95,185,252,240, 20,238,251,254,140,168, 6,103,207,158,101, 48, 24, 0,240, 39,127,242, - 39,108,108,108,240,228,147, 79,226, 12, 95, 41,173, 78,151,149,197, 69,254,240,223,253, 59, 26,109,184,242,150, 95, 34, 12, 23, - 89, 57,241, 4,126,147, 32, 7, 57, 38,214, 28,110, 94,101,247,214, 95, 51,218,188, 77, 62, 57, 32,180, 57,181, 30,225, 5,115, - 51,169,173, 4, 83, 83,235,156, 50, 27,144, 79,247,232,223,219,226,204,185, 99,140,210,140,201, 81,159,164,211,230,252,133,211, - 28,187,240, 62, 54,222,176, 70, 94, 12, 49, 83, 15, 25,204,163,154, 30,115,167, 90, 4,212,204,181, 91, 76,205,144,189,239,189, -202,194,153, 99,132,209,113,132,104, 17, 68, 49,141, 17,132,139, 21,163, 59,215,152,142, 70,212,117, 77, 16,248, 4, 65,136,231, -185,123, 62,207, 51,180, 46,220,148, 70,186,174, 8,135,187,150, 78, 26,132,217, 84,172, 65,121, 64,211, 56,222,137, 46, 65, 8, - 55,209,244, 3, 60,165,102, 19,101, 55, 97,117, 44,134,134, 48,138, 9,194,144,166,110, 48,141, 33, 8,157, 59,222, 17,232, 52, - 88,251,208, 71, 33,132,171,248,149,184,195,155,167, 60, 48, 22, 83, 59,140,157,167, 36, 85, 89, 18, 5,179,123, 60,116,189, 28, -101, 89, 18, 5, 17, 81,236,106,188,235, 74,227,251,129, 35,125, 54, 13, 81, 20, 0,179,145, 63,194,149,110,205,254,189,170, 43, -119, 0,172, 93,207,137,123,246,251,120,106,150, 91,247, 67, 87,146, 38, 28,154, 93,107,141, 20,224, 40,171,194,173, 45, 22, 60, - 33, 9,194,128,186,118,241, 62,107,133, 59,124, 96,104,181,218, 15,159,213,106,113,117,245,147,181,174,103,186,151,187,201,226, - 56,162,169,140, 3, 97, 88,215,198, 85,228, 25, 90, 87,104,173, 73,252,154, 79,126,104,137,164, 49,124,238,243,223,199,214, 22, - 26, 69,170,107,138,188, 38,157,230, 52,121, 3,166,193,247,220,207,205, 38, 5,117,250, 32, 39,104, 56, 60, 28,179,127,127,204, -225,112,194,110, 63, 99,107,103, 76,109,225,216, 82,151,165, 99,115,116,123, 9,199,214,230,153, 20, 13,253,221, 9,190,117, 37, - 43, 85, 94,208, 4, 62,158,196,157,164,125, 15,233, 73, 26,128,198,128, 16, 8, 79, 17, 40,197,116, 58,101, 92,164,212, 69, 73, - 39, 12,216, 56,117, 28,206,111,192,214, 24, 54, 39,208,138, 97,169,205,169, 57,120,207, 41,120,207, 5,137, 22,138,155, 71, 56, -109,185,200,221,164,192, 15, 72,243,212,197,246,106,227, 10, 92,148,219,145,250, 15, 71,140, 46, 39, 88,228,153, 51,118,212, 13, -250, 1, 34,116,182, 80, 40, 41,103,141, 61, 30, 81, 20,131, 0,173, 43,167,163, 24,103,148, 19, 66, 58, 92,169,214, 8,233, 76, - 17,113, 24, 26,152,209,168, 0, 0, 32, 0, 73, 68, 65, 84,130,112, 58,121,213,184,178,150, 44, 77, 41,170,191,233,218,205,138, -212,189,175,105,144, 82,184,159, 41, 5, 65, 24,144,231, 5,141, 49, 36,173,152,192, 15,241, 60, 31,107,113,211, 7,225,168,112, -121, 85, 57,150,114,237,118,194, 81, 24,242, 55,197, 50, 46, 67,239,254,191,134,166,114,163,105, 79,214,252, 47, 31, 89, 97,110, -111, 72,169, 53,189, 32,224,252,217, 85,206,182, 20,226,220, 26,183,190,119, 3,161, 66,166,135, 83, 50, 97,105,202,138,171,219, - 19, 2, 12, 77, 18,178,119, 52,193,148, 37, 98, 54,242, 58,125,106, 1,209,248, 40,101,105,164, 36,144,146,133, 86, 68, 92, 55, -172, 45,196,196,129,207,104,162, 25,104,203,120,144,242, 99,235,134,227,113,205,169,121,143,245,121,197,106, 34, 80,101,202,174, -154,231,176,246, 41,102,139,211,214,206, 62,203,139,139, 78,239,246,157,174,121,111,103,135,253,131, 35, 6,253, 33,253,241, 8, -139,123, 0, 87, 51,175, 68,109, 12,149,174,216,239, 15,216,220,221, 35,203,115,198,147, 41,133,214, 88, 99, 88, 94, 92, 96,101, -105,129, 40,112, 55, 82, 57,251, 46,178,220,229,103,227, 40,160,219,110, 83,228, 5,135,131, 33,190,239, 19, 6, 1, 2, 92, 5, -170,144,204,119, 90, 28,246, 7,140,211, 12,132,228,220,201, 13, 14,251, 67,110,111,110, 57,167, 43,150, 56, 8, 88, 63,182,194, -252, 92,111,246,223, 78,220, 74, 14, 32, 36,199,143, 45,115, 98,125,141,185, 78,151,225,120, 76, 81,186,216,142, 67,215, 42,134, -227, 49,165,214,140,211, 12, 33, 44,237, 56,166,172,106,138,178, 36, 8,125,162, 32,164,215,237, 18, 5, 62, 89,145,115,127,127, -159,201, 52,229,216,242, 34,127,247,103,126,130, 44,203,249,246,247, 94,228,214,221, 77,150,151, 22, 88, 94,152,103,190, 55, 71, - 83, 27,122,237, 22,203,139,243, 68, 65,136,177,198, 29, 12,140,157,193, 55, 64, 74,197, 52, 77, 41, 42,253,176, 70,182, 59,215, -225, 91,207,191,192,214,238,254,195,145,244,218,202, 18,221, 86,155, 36,137, 57,117, 98,131,181,149, 21,186,157, 22,129, 31,176, -224,215,236, 54,146,155,163, 9,231, 46,125,136, 55,190,225, 73, 46,253,244, 42, 27,139,159,224,234,119,191,194,225,214,203, 52, - 70,112,233, 7,254, 83, 22,158,110, 97,170, 93,199,167,176,146, 32,233,210,233,157, 35,219, 46,105, 50,197,120,180, 75, 89, 14, - 41,235, 9,251,219, 47,144,143, 79,145,151,135,140, 14,110,160,203, 41,117,153,146,141,119,152, 12,238, 32,253,136,166, 25, 59, - 83, 97,182, 67,149, 31,178,123,243,107,164,237,155, 72, 99,136,230,219,172,174, 62,129,127,111, 25,244, 35,220,125,233, 47,217, -188,246, 69,124, 41,249,221, 79,125,138, 32,112, 72,232,143,126,244,163, 92,187,230, 12,155,151, 46, 93,226, 59,223,249, 14,191, -241, 27,191,241,112,115,246,165, 47,125,137, 95,254,229, 95,166,170, 42, 6,131, 1,195,225,144,133,222, 28,183,183,251,232,238, - 59,105,183, 59, 76, 71,219,140,167, 91, 28,110,223,100,220,191, 79,177,189, 71,127,239, 38,147,187,219,148,147,125,140,206,201, -116, 78,123,254, 36, 65,178,140,109, 74,144,110,194, 39,132,166,204, 71,232,108,143,114, 58,164, 46,125,174,188,241, 18,163,241, -132, 74, 9,142,175,175,224, 7, 27,136, 78,139,160, 25,146,251,160,138, 46, 97,251, 56,202, 44,209, 57, 86, 99,167, 41,115,199, -150, 57,246,200, 89,162, 56, 32, 27, 41,194,112, 17, 37, 99,132, 31,224,117, 83,188, 42,165,232, 31, 56,142,199, 36,163,172, 10, -172, 49, 52,214,245, 81,232,178, 34, 12, 92, 81,139,167, 92,101,117, 16,184, 73,100,211, 52,148, 69, 49,243, 21, 57,205, 89, 8, - 1, 98,182,104, 25, 75,165, 93,118, 29, 28, 64,203, 69,168,221, 40, 90, 41,229,186, 27,148, 43, 64, 18, 72, 60,207,245,148,171, - 25,216,203,152,154, 86,146, 96,165,116,148, 59,227, 12,124,229,172, 49, 13,107,103, 30, 39,167,211,107,173, 49,214,149,124, 53, - 77,253,240,125,155,166,161,221,233,224,121,138, 52,205,168, 26, 59,251, 59, 75,130, 96,102,136, 51,194,249, 7, 66,133, 47, 3, -231,124, 15, 92, 29,172, 51,235, 57,204,243,131,207,212, 84,110,212,175,148, 66, 73,133,176, 22,221, 84, 32,133,243, 26, 52,134, -166,214, 46, 81, 98,220, 36,215,117,167, 4,248,190,235, 95,209, 90,211,212, 13,141, 49,168,229,181,181, 79, 38,237,132, 56,138, - 9,130,144, 32,112, 59,140,188, 44,200,139, 2, 97,221,197,161,188,192,145,208, 4,124,232,177,132,247, 62,182,192,214, 51,183, -248,246,205, 67,176, 2, 33, 26, 86,219, 1,237, 0, 90,157,152, 36, 14, 89, 90,155,163,159, 87, 12,227,128, 56, 14, 64, 41,194, - 78, 66,220,107,161,133,135,242, 61,218,129, 7,181, 69,232,138, 42, 45,217, 57, 76,177, 52, 96,156,206,215,154,143,233, 45,119, -152, 86, 13,165,113, 95, 88,209,207,169, 50, 77,218,159, 16,134,146,202, 10, 44, 2, 99,107, 60, 95, 97, 43,208,121, 77, 81,214, -248,161,196, 75,124,228,204,233, 43,111,110,178,255,210,107,236,108,237,176, 32,187,200,141,211, 16,118, 97,109,133,246,124,155, -183, 46,107, 62,112, 9,146, 8,142,198,154,146,104, 86,120,227,216,193, 2, 40,234,146, 90, 87, 76,167,153,107, 21,242, 61, 44, -174,126,207, 97, 2,243, 89,155,151, 51, 84,180,219, 9, 73,156, 60,108, 99, 11,195, 0, 41, 45, 8, 23,107, 8,130, 0, 79, 66, - 16, 38,132,161, 51,147, 56,199,163,161,174, 27,164, 16,228,101,230,204, 37,101, 73, 93, 59, 19,155,239,187, 98, 0,165, 20,129, - 10,208,181,235, 10,126,208, 67, 28,206,140, 57,117, 83,131,176, 4, 65,132, 99,126, 59,232, 65, 99,102,220,240, 48,164,152, 25, - 0, 91, 73, 7,169,228,195, 81,175,239, 59,189, 71, 8, 75,158,185, 90, 88, 33,221, 73,236,127,120,111,155, 39, 79,182,176, 35, - 77,221, 24, 34, 95,177, 74,133,152,139, 17, 97,139, 63,255,220, 43, 44, 31,235,146,143, 50,198,133,139,199,141,116, 67, 35, 64, - 52, 13,210,192, 36,117,117,129,166,106, 24, 14, 50,170,172, 36,144,130,178, 21, 82,215, 13,177, 7,158, 4,211,212,108,143, 10, -142, 38, 5,218, 90,230, 22,187,156,142, 27,246,239, 29, 96, 60,129,175, 75,238,223,159,114,103,164, 57, 50, 1,155, 38,230,254, -222, 1, 47, 94,189, 69,150,103,196, 81, 64, 20, 6, 88, 1,195,209,152,219,155,247,201,139,130,178,114,189,247,106,102,228,210, -117, 77, 81,148,164,105,202, 36,205, 41,180,235, 54, 62, 56, 26,176,179,127, 64, 20, 4, 60,126,249, 17, 46,158, 59,141,239,249, -228, 69,193,238,225,209, 67,237,221, 90,139, 84,146,105,150,177,181,179,203,253,221, 61, 74, 93, 57, 12,164, 5,207, 83,248,158, - 98,190,211,225,216,202, 50, 22,203,189,251, 59,172, 44, 46,176,186,188,132,177, 6, 79, 42,186,157, 14, 73, 28, 82, 55,134,254, -104,236,244, 66, 97, 57, 60, 26, 80, 91,227, 38, 57, 64,174, 53,163,201,132,178, 44,104,197, 17,147,233,212,193, 81,202,146,122, -246,112,170, 42,231,217,232,117,186, 46, 98,132, 59, 81, 11, 4,237, 56,162,212, 46, 79, 91,215, 53, 95,249,198, 51, 88,224,204, -137,227,124,226,167, 62,202,227, 87, 46,145, 36, 9,237, 36, 97,123,119,143,235,183,238,144,229,110,212,215, 31,142, 8, 3,231, -143,217,239, 15,220,103, 20,150, 6,135, 11,101,182,208,143, 70, 99,238,222,223,230,115, 95,254, 26, 95,250,250, 55,185,183,179, -203, 96, 86,141,219,155,235,242,248,229, 71, 88, 91, 93,225,196,250, 26, 77, 93,179,189,191,207,214,206, 62, 66,192,122, 18,240, -141,163,140, 65,158, 35,170,101,238,220, 30,241,242,215, 94, 99,243,218,183,240,147,121, 44,138,249,213, 11, 44,189,227, 28,197, -100, 11, 35, 20,214, 86,156,184,252, 14,206, 55, 79,145, 28, 38,236,220, 25, 48, 28, 28,146,231, 57,217,180,143, 78,143,200,179, -125, 70,253,187,255, 47, 89,111, 26, 44,233,117,159,247,253,206, 57,239,222,219,221,215,217,103, 48,152,193, 50, 0, 1, 8, 32, - 8,130, 27, 36, 74, 20, 37, 81,164, 41,198,138,100, 41,145, 25,149, 75, 86, 89,118,236,170, 40,169, 44, 76,170, 98, 85,202,249, - 16,167, 82,254,160, 36, 21,187, 98,149,101, 71,148,236, 72,148,184,239, 43, 8,144, 0,102, 0, 12,102,189,115,239,157,219,119, -235,190,189,188,111,191,251, 57,249,112,250,142,168, 74, 87, 77, 77, 1, 31,230,206,116,247,123,206,127,121,158,223, 67,153,231, - 28,110,127,159,241,225,219, 12,246,222, 32, 75, 14,169, 69,135,206,252,121,242,120,135, 60,222, 37, 79,122,140,135,155, 76,250, - 93,130, 69,159,248,240, 46,157,249,147, 84,215, 67, 70, 73,137,164, 65,154, 76,216,185,249,101, 46, 93,126,148, 79,127,250, 63, -165,174,109, 28,241,167, 63,253,105,142, 89, 7,135,135,135,252,193, 31,252, 1,199,182, 72,176, 98,177, 95,252,197, 95,196,247, -125,142,142,142, 24,143,199, 12,142, 6,180, 35,197, 55,127,112, 19, 93, 13, 72, 70,219, 36,195, 45, 38,195, 91,140, 14,110, 18, - 31,110,144,246, 70,104, 45,113,253, 22,203, 23,222,207,226,169,167, 88,123,248,227,204, 45, 63, 78,150,236, 81, 22, 99,164,212, -152, 90,163,235, 10, 97,106, 28, 63, 66,139, 54,142,154, 99,233,116,147,126,156, 48, 42, 75,134,147, 46,253,171, 99,202,244, 62, -237,217, 22,249,168, 65,216, 56,129,169,231, 41,107,143,176, 53, 64, 73,193,242,147,239, 34,171, 18, 38,101, 2,233, 44, 66,182, -173,187,102, 92,224,207,230, 12, 54,238, 76, 97, 74,102,218,133, 42,124,207, 67, 74,137, 13, 32,177,130,183,188,176,106,120, 41, -132,229, 71, 96,208, 70, 16, 69,225, 3,225,152,235, 90,168, 87,165, 43, 91, 4, 8, 11, 92,145,202,102,173, 43,199, 42,236, 29, - 71,145,231, 25, 74, 89,162,163,114, 28,210,212,198,187, 42, 37,241, 93,123,233, 35, 4,198, 64, 94,100, 96,236,185, 22, 6,193, -116, 90, 36, 16, 66,210, 8, 35, 92,207,179,123,245,233, 89, 31,248, 1,142,107, 19,208,180,182,150, 99, 41, 1, 20,158,239,226, -187, 14,181,169, 40,138,154,188,200,237,228, 44,152,138, 67,133,180,231,184, 84, 8, 45,112, 61, 7,215,119,241,124, 43, 24,151, -142,178,247, 21, 53, 97, 20, 61, 40,102,140,182,172, 16, 41,166,225, 50,142, 5, 73, 25, 99, 59,121,140, 5,209, 32,133,213, 2, - 96,211, 50,165,227,160,117,109,125,234,147, 73,138,106, 57, 8, 35, 72,198, 9, 94,224, 81,215, 53, 81, 35, 34,205, 82, 28, 41, -113, 93, 59, 74,105, 70, 1, 31,125,178, 9,187, 19,190,244,242,109, 60,227, 50, 19,194,185, 51, 11, 76,106,197,221, 44, 39,147, -146, 70,109, 24, 29, 76, 88,154,235,112,121,173,141, 41, 13,165, 20,180, 3, 75,189,217, 27,229,228,147, 2,215,145, 36,163,132, - 58,242,105, 74,104, 73, 24,244, 38, 28,237, 38, 40, 71,209,158,241, 17,174,207,233,115, 43, 40, 95, 81,150, 5, 55,175,117,169, -227, 28,199, 19,244,118,198,132, 11, 21, 66,121, 52, 34, 73, 81,129,227, 59, 84, 85,141, 18, 22, 70, 83, 85, 22,149,138,209,108, -221,186, 67, 54,153,208,153,155, 67, 46,204,160,203, 26,243,246, 30,234,204, 41,204,229,199,160,125,157,133,123,183,249,173,103, -125,126,227,169, 6,223,189, 91,242,135,223, 19,220,239,107,134,113, 76, 85,150, 15,170,108,129, 29,143,244,122,125,148,227,160, -171, 18, 91, 94, 88, 92,108, 24,248, 72,229, 32,177, 94, 73, 36,160,141, 29, 79, 42,152, 76, 18, 28,215,238,174, 28,215,163, 44, - 52,210, 83,140,147, 4,215, 81,132, 65,136, 86,160, 1, 33,108, 5,215,104,216,208, 3, 59,213, 55, 68, 81,131, 58, 47,153,148, -233, 84, 53, 47,112, 2, 31,169, 13,195, 41, 20,196, 81, 10,103, 10,111,200,178,148, 44,213, 4, 65,132,223,182,249,233, 2,104, - 54,155, 36,113,140,214,182, 16, 1, 91, 17,142,226,120, 42, 46, 41, 9, 67, 31,109, 32,153, 76,248,224,165, 6, 31,190,210,196, -140,107,136, 34, 66, 81,240,217, 63,252, 34,191,252,137,103,105,173,173,115,237, 91,215, 9, 77, 69, 60, 74,233,116, 66,122,117, - 73, 93, 27, 78, 46,132,120, 74,112, 56, 42,153, 20, 37,190,107, 88,241, 20,194, 11,233, 13, 6,180, 67, 23,213,112,208, 70, 18, -180,219,148,227, 24,215, 21, 28, 72,143,104,109,134,211,115, 29,112, 36, 66, 42, 94,126,103,147, 79, 61,229,243,206,189, 30, 63, -216,179,227,169,219, 67,195,155, 91,119, 25,156,239, 48, 19,218, 4, 49, 37, 32,158,100, 28, 13,198,140,198, 19,146, 52,101,182, -211, 33,207,114,146, 52, 37, 10, 2,178,188, 64,136,132,108,250, 96, 10, 64,107, 77,171,213,100,103,247,128,120, 50,225,242, 67, -231,121,226,242,195,156, 62,177, 78,146,166, 96,236,148,227,244,234, 42,183, 54, 55, 57,236, 13,240, 93, 69, 20, 88,166,115, 85, - 91,139,156,205, 9,208,244,142,142, 24, 39, 9,163,113,140, 82, 14,231, 79,159,100,109,121,133,102, 35, 98,117,121,145, 44,203, -185,191,187,203, 96, 28,219, 93,119,105, 5,122,235,171,203, 20, 69,193,193,209,144,108,186,163, 7, 43,144, 44,138,130,162,176, - 2,190,192, 15, 8,131,192,118, 0, 85,133, 18,130,249,217, 89, 38, 89,138,209,246, 2, 57, 62,228,243, 12,148, 16, 76,210,140, -165,197, 5, 6,195, 17, 95,249,206, 15,208, 6, 92,101,159,209,175,127,247,251,116, 58, 29,222,188,254, 14,155, 59, 93,250,131, - 17,131,209,136,254,112,100,137,132,202,101, 56, 78,184,250,206, 77, 58,237, 38,171,243, 11, 60,114,249, 34,151,207,157,102,105, -126, 1,223,119, 41,117,205, 40,153,144,231, 37,151,206,159,227, 43,223,249, 30, 27,219,127,189, 91,246,125,159,229,197, 69,102, -103, 58, 52, 66,159,163,209,152,237,157, 93, 54,119,118, 9, 60,143,250,210,105,186,121,141,200, 43,134,249, 22,121,113, 72, 89, -164,100,131,251, 84,197, 24, 45, 10,102,214,223, 77, 62, 57,192, 15, 34,208,134,165,213,199,120,247,217,139, 92, 89, 78,249, 15, -255, 38,100,220,235,146,140, 15, 64,121, 20,147, 9,121, 62, 33, 27, 15,209,161,193,115, 86,104,206, 93, 32,155, 12, 8,231, 47, -242,208, 35,191,193,175,255,246,167,168,133,230,223,253,203, 63,227,181,175,125,134,178, 58,226,210, 51,255,132,143,252,254,239, -113,115,252, 13,174,253,217,255,201,225,246, 30,209, 80,162,117,132,215,200, 57,218,123, 21,128,139, 23,207, 51, 28,142, 57, 78, -144, 60, 38,112, 2, 28, 11,230,128,191,177,111,247, 60,143,110,183, 75,146, 36,244,122, 61,235,203,174, 43,100,177, 69, 50,208, -212,249, 17,249,164,135,231, 84,120,158,195, 68, 91, 30, 70, 81, 38, 44,159,124,146,149,179, 47,177,119,255,107, 12,118, 94,198, -107,172,161,194, 89, 84, 58,192, 80,130,168, 16,142,135,227, 70,184,209, 42, 11, 39,159,193,241,206,176,122,186,203,189,173,109, -242,209,132, 18,141, 95,230,108,124,239, 13,214, 95,124, 28, 47,104, 81,212, 49, 66, 53, 72, 14,125, 68,190,132, 59,123, 31,243, -218, 18,171, 79,190, 7,101,190,199,225,155,150, 3,224,169, 22,121,218,199, 91,154,165,209,106, 19, 86, 86,184,165,148, 75,158, -167, 20, 21,228,105, 58,189, 68, 35,234,170, 98,156,196,248, 78, 77,166, 43, 75,171,116,220,169,103, 28, 52, 26,148, 21, 73,151, -149,141,242,118,188, 0, 87, 8,194, 70, 99,138, 41,175,241,253, 6, 18,195,104, 52, 38, 8, 3,164,176,186,168, 48, 12,241,253, - 0, 41, 5, 70, 67, 60, 25, 91, 47,184,231,146,231, 25,186,210,104,169,113,180, 3, 24,219, 16, 57, 86, 96,156, 36, 99,219,176, - 8, 65, 48, 77,236,172,116,141,146, 14,129,231, 99,124, 97, 19,215,164, 67,145,167, 40,207, 7,108,163,233,251, 10,107, 53, 75, - 45, 66,184, 46, 65, 58,120,222, 52, 66, 88, 8,242,220,134,167,213,166, 68, 27,235,155,215,181, 1, 36, 69,154, 35, 92, 73, 81, - 90,136,152, 31, 6,164,137,141, 26,111,132, 17,134, 26,207, 11,240, 93, 43,188, 46,138, 12, 5,100, 85, 65,153, 91,171,180, 5, -194, 41,156, 48,138, 80,142, 34, 73, 82, 76,101,149,181,158, 12,104,181, 90, 54,192, 3, 65,109, 64, 84,246, 80,158,137, 60,214, -231, 35,126,244,213,215, 89,137,124, 86,215,231, 8, 91, 17, 27,123, 9,119,146, 9,107,115, 45,222,119,105, 5,215, 81,140,227, - 4,223,115, 73, 38, 41,133,208, 28,198,134,253,113,201, 76, 0, 70, 72,102,218, 30, 46,146, 19, 75, 13, 92, 37, 41,107, 67,158, - 27, 14,218, 99,210, 52,229,104,152, 65, 92, 80, 22, 49,221,110,159, 51,171, 45,188,118,192,227,239, 58,193,238,246, 17,135,119, -251,184, 66,147, 29,165, 52, 23, 93,142,186, 49, 50,148,104,161,136, 2,159, 70, 43, 64, 83, 67,101, 31,166,225,225, 17,131, 73, - 78, 93,212,152,120,194,194,246, 14,254, 36, 39,205, 19,228,173, 27,228,175,188,198,222,254, 1,103, 79,205,226, 62,255, 16,206, - 36,225,125,245, 38,207,157,158,225,218, 78,206, 95, 92, 83,252,229,235,125, 10,227, 82, 78,223,108,233, 42,226,241,152, 34,207, -192, 24,148, 84,180, 90,129, 21, 94, 57, 10, 41, 20, 6,240,141, 99, 87, 15,213, 49, 56,166,196,113, 92,180,182, 68, 35,131,198, - 11,124,202,170,176,227,170,210,218, 10,125,223,231,216,114,232, 52, 35,178, 44,179,149,165, 18,152, 90,163, 12, 24, 71,226,212, -210,106, 33, 92, 23, 83, 27, 38,211,125,249,113, 86,189,204, 50,194, 70, 68,165, 53,237,102,147, 52,203, 8,188, 8, 95,218,174, -210,243, 60, 90,205, 38, 89,158,227,251, 33, 45,215, 35,205, 83,204,212,114, 34,165, 36,141,107,106, 12, 15, 45, 9,126,255,165, - 22, 78, 38,192,119,160, 72, 24,119,123,152, 12,154,202, 65,100,134,187, 91, 7,180, 27, 62,227,222,152,229,149, 54,243, 99, 69, -222, 9, 9,128, 44, 45,249,196,207, 61,199,253,123,123,188,246,214, 13,158,121,248, 20,107,255,248,191,132,254, 14, 27,255,250, -143,217,216,216,224,222, 36,101,238,116,139,100, 28, 83,104,197,176, 86,228,247, 14, 89, 59,216, 98,206, 41, 25,142, 75,214,141, - 64,159, 92,225,143,126, 28, 51,123,110,157,192,149, 60, 27,236,115,226,254, 30,127,154,167, 4, 51, 77, 26,129,181, 8, 14,134, - 67, 70, 73, 66,173, 53,158,239,210, 12,237,212, 2, 96,115,103,135,181,229, 37, 43,104,113,109,103, 33,149,196,117, 61,154, 81, -104, 47,167,178,228,157,219,119, 25,140, 70, 60,218, 63, 98,105,113, 30, 41,108,225,118,204, 10,152,237,180, 56,232, 29, 17,165, - 19,194,208, 39,242, 3,124,223, 69,199,246,231, 72, 1,117, 93,147,229, 5,187,251, 7,220,190,183, 5, 2,171,212, 21,130,178, -170,152,237,116, 8,195,144,173,157, 46, 70, 8, 27, 78, 51, 63,103,197, 99, 97, 72,224,123,127,227, 98, 7, 91,124,173, 47, 45, -177,190,186,194,226,194, 12, 85, 81, 49, 24,199, 12, 71, 99,146, 73,202,252,204, 28,135,253, 62,221,253, 3,188, 32,160,153, 5, -132, 81,132,231,251, 76, 50,139,194, 29, 39,127, 29,155, 90,214,182, 91,190,183,179, 71,216,235, 51, 78, 38, 96,108,102,244, 49, -244,198, 81,146,113,146, 48, 78, 18, 14,143,250,156, 92, 93,102, 48,138,217,222, 63, 96,107,167,203, 99, 15, 93,160,211,105, 49, -142, 19,118,186,187,220,220,184,199,237,173,251, 28,244,143, 30,252,156, 48, 12, 57,127,114,157,147,171,171, 4,129,199,237,123, - 91,124,225,155,223,101,247,224,128,186,212,156, 61,181,198,130,171, 89,121,254,253, 76,202, 13,146,123, 91, 20,185, 75, 58, 25, -144,167, 67, 76, 21,115,180,127,151,249,149,135,208,131,132, 76,184, 52,102, 91,228,111,214,124,245, 14,124,219, 13,248,241,203, -159,165,223,253, 38,179, 11, 15, 51,183,116, 25,137,194, 17, 30,114, 73,144, 31,140,240, 26, 29,162,112,141,143,255,206,151,120, -232, 83,146, 70,195,240,119, 91,134,215, 72,217,221,255, 56,173,198, 42,243,115, 39,121,247, 7, 79,176,115, 4,147, 87, 44,104, -166,186,254, 38, 78, 59, 37,175,109, 26, 96, 26,219, 28,249, 26,232,118,187,180, 90, 45, 90,173, 22, 65, 16, 60,152,122,253,228, - 69,126,252, 18, 66, 48, 24, 12,200,178,140,193, 96,192,112, 56,164,223,239,115,184,219,101,113, 49,226,242, 47,252, 43,238,188, -242,191,176,241,189,127, 65,166, 13,105,230, 83,202, 18,225, 43,170,193,128, 81,255, 30,242,246,215,200,235, 62, 90, 37,140,251, - 93,180,153,224, 6,179, 72,225, 82,155, 28, 71, 66, 56,115,154,149,211, 31,228,131, 31,252, 40,237, 14,220,188,215,231,225, 71, -182,121,229, 91, 47, 19,132, 17, 23,158, 56, 75,107,254,113,134,174, 3,193, 1,122,191,133,241, 20,210,117, 24, 15,106, 58,110, - 66, 60,217,163,247,149, 69, 68,148, 80,215, 7,160,207,129, 22, 40,111,158,164,216,161,125,242, 4,189,155, 55,240,131,128,241, -120, 8, 72,178, 73, 6, 72,234,218,160,117, 49, 61,239, 4,195,241, 16,199,113,153,153,181,151,103, 51,138, 0,155,173, 94,151, - 53, 90, 10, 28, 71,226, 7, 1, 2, 43, 40,174,178,154, 48,244,173, 93,179, 54,104, 41,192,128,169, 13,113, 26,219, 80,171,169, - 0,185,170,172,224,213,104,131, 81, 80,215, 21, 94, 16,112,108,209,174,107,195,120, 26,168,164,149, 75,216, 8,167,232, 86, 75, -229,204, 50,141,156,238,220,181,227,216,179, 85, 8,132, 84,140, 70, 35,187, 62,168,107,170, 90,211,104, 54,241, 60, 7,155,163, - 94,146,166, 25,190,231, 32, 28,166, 83,138, 10,203,107,208, 54, 29,211, 88,189, 84, 81, 79,139, 0,173,113, 92, 23, 42,208, 85, - 69, 73, 14,194,134,222, 84,117,197,100, 42,120, 21, 34,199,117, 61,180, 99, 35,186, 71,163, 49, 74,185, 68,141, 6, 85,109,115, - 8,202,162,192, 81,210,114,221, 35,223,167,114, 28, 91, 93,229, 57,198,181, 88,204, 40,138,108,231, 38,236, 23,112,174,225,208, -172, 75,174,223,216,231,244,202, 12,131, 74,243,246,246,152, 76, 73, 94,120,242, 36, 11,179,109, 94,191,118,135, 72, 27, 22,151, -102, 25, 85,138, 63,191, 89,243,173,237,146,193,196,144,103, 54, 28, 67, 42, 75, 60,171,116, 65,168, 71,184, 10,222,123, 97,150, -185,150,207,211,115,109,150, 59,109,206,158, 50,108,238, 15,209,121,193,248, 40,101,171,159,160,246, 71,236,251, 62,139, 39,103, - 89,185,124,130,254,253, 67,234,172, 96,178, 59, 68,181, 2,116,156,163, 35,123, 17, 86,177,134, 10,162,134, 71, 89,212,108,238, -107, 92,105, 71,143, 71,113,202,214,157,123,204,246,250,148, 74, 18,133, 33,189,195, 67,146,225,128,131, 97,147,181,249,139,232, -115,143,195, 67,119,241,186, 47,243,244,236, 1, 79,159,153,240,119, 95,104,243,185,171, 19,254,236,181, 17, 7,163, 12,167,246, -137,154, 77,164,214, 36, 83, 48, 79,224,135, 72,199, 33,203, 50,130, 32, 96, 52,178, 17,147,158,231,208,104, 54,145, 66, 33, 28, -107,133,144, 50,160,172, 10, 27,217,170, 44,157, 72, 34,113, 29,119, 42,184,171, 31,236,220,227,113,108, 43,222, 40,178,233, 80, -202, 70, 15, 42,161,240,219,109, 52,134, 60,205, 30,132,238, 72,101, 63, 91,235,179,183,163, 56, 83,215,212,181,161, 17, 69,118, - 20, 86,215, 4, 97,104,255,238,128,231, 56, 36,241,152, 32, 12, 81, 82, 17, 68, 1,121,105,113,178, 89, 89,178, 58,227,242,207, - 62,185,200,140,239, 98, 74, 3,162,134,102, 72,228,123,168, 0, 68,171,137,206, 75,134, 53, 52,165, 34, 75,115,220, 65, 74,212, -105,176, 30,185, 92,249,240, 35,208, 8, 48, 23,207,211,222,137,217,248,131, 13, 2, 71, 65,235, 3,208,130,179,255,249,195,132, -255,219, 63,229,230,171,239,208,221, 62, 98,198, 8,140, 35, 89, 31,236,241,124, 43,231,214, 94,202,155,147,146,131,113, 69, 86, -105,158, 56,217,228, 35,171, 6,143, 93, 68,173, 40,218, 30, 31,123,238,113,146, 31,192,203,230,175,167, 39, 8,137,169, 43,124, -207,103,174,211, 97,128, 77, 86,131,140,170,180,254, 85,207,181,123, 80, 12, 96,236,126,125,107,167,203,126,175, 79, 24,132,180, -154, 13, 86,167, 28,243,225, 48,166, 44, 75,198, 19, 27, 17, 92, 27, 8, 92, 91,153, 15,227, 4,144, 52, 91, 13, 22,231,231,201, -178,140,225, 56, 65, 42,135,197,217, 89,252,169,127,123, 48, 26,115,106,125,157,115,167, 79, 16,120, 46, 69, 89, 82,105, 77, 94, - 20, 52,163,136, 97,124, 64, 93,213,108,238,236,242,240,185,211,156, 59,115,138,185,185, 89,126,124,245, 45,142,134,195, 7, 23, - 67, 93,215,100, 69,129, 16, 32,106,235, 74, 88,244, 92, 90,141,144,157,189, 67, 64, 35, 37, 28, 28, 14,184,191,211,101,105, 97, -129, 90, 27, 92,101, 39,112,244, 7,244,142, 6,108,108,109, 63,248, 51,171, 90,243,253, 31,189,134,227, 72,180,182, 72,217, 70, - 16, 34,165,156, 94,234, 14,141,200,230, 55, 39,147,148,219,155,247,121,228,194, 57,146, 36,230,251,175,190,198,238,222, 62,103, - 78,158, 96, 20, 79,184,122,227, 6,215,174,223, 36, 77, 83,126,242,229, 57, 14, 43,203, 75,196,147, 9,174,163,120,248,220, 89, - 22,230,231,120,231,214,109, 94,121,227, 45, 26,158,199,209,234, 9,212,233,247, 35,126,108,152,228, 95,165, 30, 71, 76,226, 62, -186,202, 41,178, 1, 82,130,227,185,228,241,136,186,168,201, 15,119,169,117,194,254,193,159,147,141,187,148,233,158,237,154,132, - 34,203,198,100,217, 30,130, 18,109, 98,116, 5, 71,197, 61,206,158,253, 4,239,251,117,232,191,110,216,236,194, 63,124,201,224, -153,136,157, 31,221,226,228,197,231,217,186,243, 53,238,236,172, 35,223, 43,208,223,138,104, 59,151,184,123,237,243,248,167, 5, -158, 55,195,184,158,112,172, 95,220,222,220,162,219,237,210,239,247, 57,127,254, 60, 47,189,244, 18,159,251,220,231, 30,252,155, -143,187,245,227,223, 47, 95,190, 76, 81, 20,116,187, 93, 70,163, 17,123,123,123, 36, 73, 66,119,167,203,120,184, 67,118,255,109, - 6, 59,175,147,166, 41,235,103,126,137,199,222,255, 15,248,230,255,251,155,100,131, 17, 31,253,173,127,203,107,111,252, 79, 28, -190,245,125,106,157, 18, 52,230,112, 76, 70,133,100,102,249, 9,162,206, 9,202,100, 64, 26,111,161,132,131, 31,118,168, 26,112, -233,103,161,249,131, 57,190,255,253, 39, 88, 88,190,197, 81, 47,230,246,253, 29,158,121,246, 25, 90,171,235,220,126,235, 42,123, - 59, 7, 20, 90, 33,235,144,186, 44, 56,186,237, 19, 46,127,135,253,171, 10, 25,190,133,107, 22,104,206, 62, 67, 93, 84,104, 35, -168,119, 26, 4,157, 69,202,234, 45,164, 35,240, 28, 43,254, 82, 66,226, 56,182,240,205,210, 12,141,166, 42,109,243,104,140, 61, -143, 70, 73,130, 80,130,118,179, 77, 24,134, 16, 50,157,114,164, 40, 57, 21,234,106,112,124, 11,152, 65, 67, 18,143,113, 92, 69, - 16, 88,252,171,214, 26,229, 42,202, 50,199, 15, 45, 38,187,172,172,211,167,170,114,180, 86,152,194, 22,223,150, 75,239, 32,165, - 93, 53, 23,133,181,225,153, 41,250,213,117,173, 5, 20, 33,168,140,198,100, 57, 96,208, 74,225, 56,246,162, 55,166,182,211, 48, -169,166,130, 61, 31,223, 23,148,121, 65, 16,184,148,133, 61,183,209, 9,157, 78,203,238,188,107,131, 23,184, 20, 89,137,148, 22, -237,141, 54, 8,229, 82,215, 86, 88, 29, 52, 27, 80, 85,212, 83, 65,173,214,214,137,213,104, 52,112, 28,133, 64,144,167, 41, 81, - 20, 0,150, 61, 82,151, 37,186, 54, 76,138, 17, 74, 56,168,229,245,245,207, 76,210,220, 10,125,170,138,186,214, 86, 29,157, 91, -232, 72, 93,215, 8, 37,201,211,148, 36,142,121,239, 5,143, 43, 58,102,123,107,128,240, 29,110,198, 53,107,235, 51,124,236,189, -151,216,220,233,243,197, 47,253,144, 23,159, 58,199,153,135,207,112,123,172,249,253, 47, 29,241,214,161,166,212,118,119,235, 5, - 1, 72, 65, 35,136,192, 24,198,163, 49,227,172,100, 82,193, 94, 21,242,246,126,197,183,118, 21,223,222,133,151,247, 12,165,112, - 88, 91,106,113,229,124, 27,207,143, 72,180, 64, 43,193,209,222,144,170,174, 9, 26, 33, 11,167,230,145,129, 75,220, 29, 32,181, -134, 92, 35, 93,137,227, 9,138,162,166,174, 52, 2,141, 31, 74,130,192,167,170, 12,210,245,169,138,156, 50, 25, 51, 25,197, 68, -157, 54,107, 63,245, 36, 71,247,182, 48,101,197,236, 35,231, 16,141, 14,212, 9, 98, 80, 96, 80,136,245, 25,218,202,240,204,170, -228,111, 61,217,224,201,211, 13,210, 82,178, 63,177, 59,143, 90,107,102,102,218, 72,199,153,238, 50,203,169, 72,206, 10,130,220, - 32,180,149,162,132,162, 44, 48,102,186,239,102,250,223,218,216,157,142,167,108,133,104, 52,198, 8, 92,199,238,206,131, 32,152, -250,218,107, 42, 93, 19,248, 1, 2,133,242, 20,142,242, 16,104,226,113, 12,198, 16, 53,155,132, 65,136,227,185,182, 40, 51, 86, -252,102,187,254, 2,215,115,145,210,194,108,170,233, 14,222, 17, 54, 3,190, 40,173,104, 3, 3,101,109,253,241,202,117,185,184, - 18,240, 63,127,114,150,245,200, 69,151, 6,124, 15,145, 85, 24, 35,168,239,222,229,222,230, 33,103, 78,206,227, 62,116,154,123, -111,222,103,101,185,137,114, 61,118,122, 9, 79, 62,180,200,197,159,189, 4,169,230,230,183,110, 51,247,240, 9,196,242, 44, 23, -159,127,142,236,198, 38,193,179,239, 67,168, 54,140,191, 74,203,196, 52,235,146,197, 78,139,106, 52,166, 87, 73, 30, 46, 15,121, -171,155,112,237,238,136,205,163,138,111,236, 86,188,222,211, 52, 71, 35, 92,161,249,214,198,132,222, 56, 39,170, 83,178,209, 8, -199,241,120,181,106, 35,180, 65, 72, 5, 24,170, 90,227,121, 46,142,227,178,123,112,192, 36,181, 35,110,131,181,156,181,155, 13, - 90,141,198,116, 95,231, 19,249, 62,101, 93,211,157, 38,138,133,129,181, 2,214,181,125,255,247, 15,251,108,222,239,146, 21, 57, -117, 81,216, 52,195,170, 70, 57, 46,142,231, 66,109,201,106, 6,193,112,108, 19,214, 38, 89,198,202,226, 34, 39, 87,151,167,144, - 22, 69,187,217, 36, 8,124, 28, 37, 17, 8, 22,167,152,217,133,185, 14,219,187,251,132,158, 75, 24,250,244, 7, 35, 70,163, 49, -221,253,125,126, 50, 12, 69, 74, 73,167,217, 64, 41,135, 81, 28,147,230, 22, 57, 57, 28,143, 73,211,140,163,225,144,195,190, 13, - 80,209,198, 16, 5, 1,237,118,147,197,185, 57, 90,205, 6,158,227, 48,219,110,113,239,126,151,100,146,162, 92,135,208,183,147, -140,170,170,136,179, 9, 69, 81,219,241,168, 49,212, 90,115,172,204, 85, 82, 17,133, 62,174,231,178,188,176,192,139,207, 61,131, - 49,154,123,247,187, 12,198, 49,105,154, 50,223,110, 51,140, 99,134, 83, 5,248,241, 43,240,125, 30, 62,119,134,179, 39,215,121, -227,250,117,254,215,255,235,143,248,250,183,127,192,245, 59, 22,227,235, 40, 7,177,188,134,147, 60,143,170,230,217,185,249, 13, -124,221, 67,214, 9,165, 72, 72,199,251,180,102, 47,178,124,238, 2,105,190,199,220,169,117,102,231, 79,112,255,213,239,208,112, -211,233,216, 58, 97,166, 25,146,143,182, 24, 30,188, 69,158, 13, 49,117,193, 68, 13, 81,185,173,223,214, 46,254, 50,167, 95,156, -229,157,191,128,123, 55, 55, 25,126,233, 22,131,107, 19,210,113,159,209,112,131,254,193,171, 76, 98,151,131,239,237,112,112,239, -101, 82,255, 46, 94, 75,145,244, 51,162, 21,151,191,243,233,127,193, 56,206,184,251,246,231,201,211,156,199, 31,127,156,170,170, - 72,211,148, 43, 87,174,240,229, 47,127,249,255, 87,208, 28,191,126,247,119,127, 23, 99, 12,221,110,151,131,131, 3, 14, 15, 15, -233,118,187,236,237,238,176,189,185, 77,119,243,171, 12,122,111, 50,179,244, 8,238,236,105,238,190,249,111, 24, 14,110, 16, 69, -107, 4,209, 25,246,239,252,128,246,204, 89,150, 78, 62, 99,173,150, 90, 18,205,158, 98,118,253, 9,148,113,113, 2, 31,191,177, - 72, 89, 12,201,226, 46,189,110, 73,127,120,150,232,195,208,251,209, 58,237,185, 29, 6,195, 3,106, 36,101, 94,227, 12,214, 9, - 58,154,209,248, 62,121,236, 97,170,138, 42,207, 40,243,140,168,147, 49,220,124,147,131,187,215,201,147, 17, 11, 39,159, 65, 98, - 3,160, 74,157, 33,163, 33,249,254,125,178,180,192,143, 92, 16, 18,199,179,169,107,186,156,198,167,186, 14,158,103, 87,142,237, -118, 11, 41,108,182, 68, 93,213, 54, 44,165,212, 32, 13, 74, 58,100, 89,142, 82, 18,199, 83,214,233, 52,125,246, 66, 63, 36,108, -132,212, 83, 95,188,214, 26,131, 61, 99,149, 82, 84, 83, 93,140,227,216, 59,231,248, 30,211, 90, 79, 5,140,154, 98,250,255,234, -218, 70, 90,107,163, 31, 20,199,141, 40,194,241, 93, 2,207,181,103,121, 94, 16, 70,161,237,250,141, 45,154, 29,207,138, 76,125, - 63,196,115, 29,187,235, 23, 80,107,195,113, 84,108,158,102, 24, 93, 83,149, 53, 65, 24,224,121,238,116, 79,238,131,182,118, 98, -223,183,235,209,102,179,137,235, 42, 2, 47,192,117, 45, 58, 86, 40,129,148, 54,202,219,145,146, 73, 50, 33,207, 83, 52,150, 14, - 41,165,162,214,154,108, 42, 66,148, 8,219,228,173,157, 58,253, 25,165, 36, 66,218, 8, 73, 63,240,144,210,181, 42,111,215, 65, - 41, 97,199,203, 69,129,214,154, 23, 47, 53,105,141,199,236,238, 13, 49,173, 38,137,208,252,202,251, 31,227,219, 63,190,203, 43, - 95,121,133, 95,249,213,151,136,230,102,216, 60,136,249,204, 87, 6,148,194, 67,184,118,244, 44,133,196,117, 28,202,210, 94, 42, -186,214,100,105,250,224,128,242, 3, 31,229,168,105,133,100, 24, 23,112,243,200,240,185, 55,251,124,109, 91,226, 69, 62,167,151, -219,156, 91,109, 18,206, 68, 76, 10,193,224,104,200,209,254,152,249,249, 54,173,213, 14,198,177,209,116,249, 48, 67, 23, 26,215, -147, 56,129, 67,158,215, 40, 5, 80,147,230, 5, 69, 86, 18, 69, 14,218, 21,212, 21, 68,126, 72,235,201,135,144,189, 33,155,183, - 55, 57,137, 11,151,206, 35,110,189,205,155,255,207, 23,184,253,230, 38, 75,227, 10,231,217, 71, 49,126, 3,199,119, 56,213,145, -124,248,178,226,133,115,138,208, 87,196, 25, 76,106,151,170,178,187,206,168, 17,225,185, 14,142,103, 41, 99,121,105,221, 3,181, - 49,152,202,138,157,140,177, 93,144, 31,134,184,238,148, 2, 39, 36,149, 54, 24, 97, 80,182,207,196,115, 45,104,161,168,107, 28, - 37,166,150, 17, 27,249,233, 40,187, 31,154,196, 49, 66, 74,148,148,248,129,135,169, 44,193, 40, 12, 67, 60,165, 44,198, 80, 57, -120,174, 75, 94,228,196,113,108,247, 95,142,135,157, 12,106, 28,215,153, 86,149, 26, 33, 37,158,114,144, 2,158, 62, 45,249,175, -126,174,205,137,200,179,153,244,128,184,181,129,233,116, 16,105, 65,117,253,109,134,185,102,253,242,105,148,113,185,119,255,144, -221,253, 49,207, 61,185,198, 66,211,227,252, 7, 30, 6, 41,248,241, 55,111,241,234,205, 67,158,252,208,187,160,209, 65,168,130, -224,145,117,132, 76, 48,233, 91,136,239,255, 37,188,122,141, 57, 39,103,101,109,134, 11,231, 78,114,237,246, 30,106,120,200,247, -238,166,108,151,146, 63,221,129, 31,165,146, 65,173, 56,219, 16,220,136, 53,135,165,224,135, 91, 21,215,246,107,222,238, 21,236, -143,114,246,130,101, 43, 28,212,150,128,151,101, 25,203, 11,139,248,174,226,238,116, 20,124,172,192, 46,202,138, 48,240,241,124, - 31,207, 85, 56,202,157,162, 26,199, 28, 30, 29, 61, 80,151,102, 69,137,231, 90, 59, 74, 20,248,108,237,238, 97,180, 21, 6, 61, -241,200, 69, 78,174,173,226,123, 54,204, 36,244, 3,214, 87,150, 80,174,203,214,125,187, 71,182, 22, 21,203,197,182,149,183,100, -146,165, 86, 72, 84,228,100, 69,201, 78,183,203,237,205,109,210, 52,195,230,154,219,117,142,116, 20,121, 94, 76,247,237,150, 79, - 0, 32,140,101, 37, 52,166, 69,130, 49,134,188,178,157, 74, 57,237,254,141,177,168, 91,163, 13, 73,154,226,187, 14, 94,232,211, - 10, 34,148, 35,233, 15,135,220,221,218, 33,205,172,106,217,192,212,142, 99, 5, 66, 18,112,166,251,193,192,117, 81,202,225,212, -250, 42,141, 40,100,105,126,158,153, 86,139, 11,103, 79,241,212, 99,143,240,252, 51, 79, 50,219,238, 48, 30,143, 57, 24, 14,185, -113,103,131, 94,223,162,154,143, 95,107, 43, 75,188,239,185,167,121,238,201, 39,152,105,218,120,227,113, 50,225,240,168,207,112, - 58, 22, 93,152,153,193, 52, 58,100,229, 12,158,187, 72, 69, 72, 58, 57,162,146,109, 12,109,150,214,158,229,244, 99,127,139,170, -177,133,246, 21, 65, 24,176, 30,253, 42, 59,119,239,113,255,222,143,136,227,156, 44,143, 73, 38,214, 22,218,108,122,144,167,228, -105,138,142, 83,252,246, 10, 74, 5,204, 45, 60, 66,221, 93, 99,123,231, 6,177, 28, 51, 78,118,137,247,222,162, 50, 19, 14,239, -189, 66,146,220, 99, 60,186, 71, 26,103,140, 6, 67,210,250,109, 46,127,248,151,241,102,218,196,241,144,149,149, 79,240,230, 15, -254,152,146,251, 12,143, 70, 44,116, 58,120,190, 79,154, 90,246,249,249,243,231,185,118,237, 26, 54,156,195, 10, 99, 23, 22, 22, -120,233,165,151,184,116,233, 18,219,219,219,236,237,237,217, 72, 39, 39, 14, 0, 0, 32, 0, 73, 68, 65, 84,203,124,111,143,221, -189, 61,226,241, 0,209, 60, 73, 69,135,248,224, 30,179,203, 87, 80,202,112,180,245, 93,202, 92,211, 94, 58,193,230, 91,255,158, - 52,219,231,169, 15,253,183, 60,247,177,127,200,187,126,250,215,120,234,103,127,139, 70,251,121,186, 55,191, 76,154,246, 40,210, - 17,249,100, 76, 93, 38,148,233, 62,147,120,147,131,157,187,228,187,143, 19,133, 1,227,238,125, 26,115, 25,131,120, 66,158,142, -200,250,134,180, 59,162,214, 93, 76, 17, 81,150, 96, 68, 77, 89,166,212,147,152,229, 11, 45,142,186,125,162,213, 14,173,246, 57, -140,158, 65, 48, 13,131, 81,135, 4, 58, 33, 31,143,201,139,124,202, 68, 0, 37,173, 51,200, 11, 67, 28,215, 3,105,139,215, 52, -203, 30, 8,133,143, 47, 58, 41, 36, 2,141,209,118,130,152,101, 5,174,227,160,148,107, 69,166,190,101,110, 88,245,188,143,235, - 58,248,174, 21,159, 85,245, 79,160,190,107, 11,148, 9, 2, 31,223,183,169,153, 54,170,219, 94,238, 66, 90,244,185,125, 25,116, - 85,227,184, 14, 82, 10,164,235, 80,164, 25,126, 24, 32,140, 70, 41,135,188, 40,241, 61,143, 44,203,168,117, 77, 81,228,232, 90, -227,251, 30,249, 20,119, 43,132, 5,238,164, 19,155,232,102,243,208, 53,181,174,169,234,210,162,183,141, 13,238, 54, 24, 43,194, -115,108, 50,167, 49, 6, 41, 45, 31,163,170,107,138, 42,167, 46, 45,131,165, 44, 44, 33, 47,205, 50,108,194, 92,102,207,179, 41, -249,179, 42, 11,148,144,212,194,170,245,213,137,211,103, 62, 83, 86, 21,209,148, 18,102,229, 95, 80,148, 21,121,110,227, 65,109, - 22,172, 85,109,255,204,163, 13,210,157,125,164, 17,140,189,128, 43,103, 23, 89, 94,155,231,135,127,249,109,158,127,241, 10,141, -229,121,100, 85,242,207,190,222,227,198, 65,134,114, 29, 92,199,193, 81,118,188,232, 56,142, 37,229,160, 25,143, 99,180,182,163, - 96,109, 4,233,100,130,146,194, 10, 69,166,135,157,158, 90,140,178,170,228,106, 55,227,175,222, 25,241,213,205,146,133,197, 57, - 46,173,183, 89,157,111, 18, 11,201,173,205, 62,121,146, 50, 55, 19,178,118,126,133, 82, 11,242,163, 24,145,151,148,181,193,109, - 89,246,122, 85,104,130,208, 65,152, 26, 35, 13, 2,195, 36, 47,233,143, 38,164,119,182, 73,142,198,212,198,218,194,154, 23,151, - 17,111,110,177,121,243, 6,157,192, 99,233,204, 69,120,244, 69,152,123, 2,221,242, 64, 57,136,149, 69,230,101,205, 79,173, 42, - 62,250, 68,200,229,101, 65, 63,158,112,175, 87, 32,165,131, 54,118,164, 62, 78, 18, 26, 81,132,114, 60,234,218,142, 47, 93,207, -102,172,123, 65,128,231,122,160, 13,121, 89,146,231,185, 29, 39, 41, 57,253, 28,114,140, 0, 79, 57, 24,163,209, 70, 83,149, 53, -121,150,114, 44,106, 43, 43, 27, 23,234,121,222, 95,119,231, 88,222, 64, 85, 90, 52, 40,218,170,161,179,212, 10, 48,140,177,162, - 62,199,115, 65,104,235,159,116, 28,124,215, 67, 27,131,146,130,134,111,248,221, 15, 52,249,157, 15, 45, 50, 35, 37, 70,215, 32, - 92, 76,111,196,238,119, 95,165,121,122, 13,177,176,192,228,218,155,220,232,165, 92,122,223,243,152, 86,196,133, 11, 43,220,185, -181,199,214,222,144,199,206,207, 17, 45,205,195, 70,143, 47,126,239, 54,225,164,224,209, 83,103, 49, 15, 61, 7, 91,111,192,205, -219,240,217,127, 7, 95,252, 19, 68, 54, 64,188,117,147, 31,255,224, 46,222,221, 91, 12,119, 54,169,189,136,253,218,225,213,187, - 71,124, 97, 23,246,181, 36, 80, 48, 35, 12, 7, 19,205, 59, 49, 28,149,112, 61, 21,220, 45, 5, 55,198,130, 55,134, 53,205, 78, -219,106, 1,138,130,193,104,204, 40, 78,216,239, 29, 48, 74, 98,146, 36,181,246,180,233,158,179,174,107,194,169,208, 48, 47,202, -105,232, 9, 28,244,250, 12, 71, 35,170,170, 66, 79,223, 85,207,179,204,127,163, 13,157,118,203,218, 84,140,161,211,234,208, 8, - 3, 90,205, 6,237,102,139,153, 78, 19,199,117,233,238,238,211,157,102,184,219, 2,162, 36,240,125,230,230,102,153,237, 52,201, -178,140,254, 96, 72,154,229, 76,178,156,221,195, 67, 6,195, 49, 69, 93,210,106, 68,172, 44, 46,218, 66,175,172,112, 28,133,148, -214, 26,115,156,170,102,128,100,146,210, 31,142,136, 39, 41,121, 89, 18,199, 49, 90, 91, 81,156,231,121, 72, 36, 89,110, 35,133, -141,177,156,119, 97,140,117, 72, 72,195, 65,239,136,173,157,238,131,139,183,170, 42,180,174,113,164, 68, 77, 45,156,142,148,140, -226,152, 56, 73,104,132, 33, 47, 62,251, 20,247,119,118,137,194,136, 23,159,123,154, 95,122,233, 67,204,206,118, 40,203,146, 71, - 46, 94, 96,125,121, 25, 37, 4, 71,131, 17,247,182,187, 28, 23, 33, 96,199,251,141, 32,176,223,127,207, 35, 77, 83,246, 14, 14, -153,164,211,104,103, 33,152,109, 55,144,142,195, 56,174, 25, 15, 15, 9,103, 86, 57,243,200, 39, 56,241,196,111,178,254,216, 71, -185,120,229,227, 92,254, 7,239, 98,239,155,239, 80, 57, 67,200, 50, 14,239,222, 32,203, 74,178,225,109,160,164, 78, 19,234, 50, - 38, 30,247, 56, 26,196, 52,154, 77,178,108,192,204,234,211, 52,230,207,128,169, 49,210,229,104,247, 46, 71,251,111,147,197, 93, - 38,241, 14,105,218, 39,143,123,244,246, 55, 88, 90,126,142,209,225, 45, 78,159, 61,197,103, 63,251,247,249,198,215, 79,226, 76, - 36,163,219,123, 76,244, 30,111,125,233, 15,185,247,214, 23,104,159, 61,135,223,118, 57,218,217,199,157,174,223,198,227, 49,190, -239,211,106,181,104,183,219,156, 58,117,138, 19, 39, 78, 48, 55, 55,199,201,147, 39,233,245,122,236,236,236,176,191,191, 79,175, -215, 99, 56, 28, 98,180,134, 50,167, 8,207, 16,181,207, 18,180, 22, 8, 58,107, 40,229,210,158, 61,193,242,217, 39,105, 62,182, - 70,160, 22,136,247, 14,233,204, 61, 68,247,214, 53,238,254,248, 91,108, 93,127,139,108,180,199,168,191, 65, 85,140, 41,171,152, - 44,217, 37, 75, 14, 81,194, 96,170, 9, 89,178, 67,127,227,117,200,124, 70, 19,232,204, 15, 56, 58,236, 89,168, 84, 16,147,108, -239, 50,216,221, 32, 58,189,128,142,167, 35,222, 42,167,152, 12, 88, 60, 51,195, 83,191,248, 18, 69, 59,196, 12, 13, 66,181, 16, -178,129, 46, 51,210,193, 1,158, 59,162, 26, 15, 80, 82, 81,212, 21,197, 20,222,148,150, 5, 66, 27, 92,215, 78, 3,117,109,236, -153, 85,150,228, 85, 73,173,177,147, 43, 37, 30,224, 97, 29,199,238,163,193,144, 36,241,116, 53, 38,145, 18,132,148,118,116, 45, -132,253, 78,215,102,106,179,117,108,244,181, 82,211, 70, 69, 78,199,243,214,174,118, 12,199,177,123,117, 61, 29,199, 75,140,209, -148,165,166,170, 43,234,170,158, 62,103,142,213,175,104,131,198,254, 12,215,179,170,126, 33, 28, 43, 84,205, 10,176,125, 40,121, - 86,144,229,133,109, 14, 92, 15, 41,148,237,160, 29, 9,218, 38, 93, 86,117,101,207,126,165,152,228, 41, 69, 89,216,230, 54,203, -236,202,184,178,169,114,190,103,227,107,109,130, 98,129, 96, 58,101, 46,203,159,152,210,253,181,240,178,172, 44,208, 71, 8,129, - 90, 92, 91,251,140, 16, 2,229, 40,202,170, 32,142, 19,178,204, 34,232,142,109, 23,157, 78,199, 94, 22,142,195,139,151,155,184, -195,152,251, 8, 38,253,152,119, 63,113,150,254, 65, 31, 38, 9,231,158,123,130, 50, 43,217, 30,228,252,223,215,106,140,182, 33, - 14, 82,185,212,117, 73, 85,218,234,201, 15,124,140, 54,228,121, 65, 20, 69, 0,100,217, 4, 4, 20,213, 49, 7,189,192,104, 91, - 85, 53, 27, 13,171,220, 53,150,156,230, 53, 59,188,221, 51,124,125, 91,115,107,172, 57,191,214,225,225,181, 6, 6,101,253,239, - 59, 67,230,230, 27,204,172,204, 98,132, 67, 54,152,224, 74,129, 19,249,168,200, 71, 27, 9,194, 80,230, 21,195,113,134, 86,176, - 59,202, 56,138, 99,124, 89, 89,240,129, 22, 44,185, 62,119, 95,191, 74, 58,153, 16,250, 46,243,203, 75,112,110, 1,234, 49,226, -139,175,112,120,117,131, 70, 30, 66,238, 98,124, 23,183,233,113,114,193,225,231, 30, 10,248,200,101,159,213, 25, 67,127, 52, 97, - 99,223,138, 35,180, 49,120,158,107, 43,120,207,163,214, 54, 71, 93, 9, 69, 94, 22,100,211, 93,184,231,218,236,115, 33,196,180, -170, 5,129, 77,188,178, 57,217, 14, 70,107,148,176, 62,206,193, 96, 64,150,102,148, 85, 69,145,219,188,224,172,176, 95,146, 34, -183,107,128,122, 42,120,171,167,157,155, 16,208,104, 88, 33,143,169,236, 88, 44, 47,172,253,201,243, 61, 58,161,225, 87,158,109, -241,251, 63, 63,203, 51,203, 33,178,182, 29, 45,194, 10,244,118,190,241, 50, 85,154,210,153,159, 69, 12,135,148,183, 55,240,219, - 77,246,181,131,172,114, 34,233,112,238, 68,155,175,127,127,131,231, 46, 46,225,244,142,216, 62,156, 48,236, 14,152,155,111,226, - 86, 53,114,243,109,188,163, 13,234,207,127,155,205,215, 55,152,241, 21, 98,101, 22,230,103, 89, 91,159, 39,233, 79,216,221, 41, -184,181,209,101, 48,169,200,218, 51,236,141, 10,138,178, 38,215,130, 74, 10,134, 53, 28,105,112,149, 32,182,119, 28, 61, 45, 8, -132,161,116,125, 90, 81, 72,156, 21,118, 44, 61, 73,153,164, 41,253,193,200,226, 94,203,242,193,119,220,242,164, 21,198,216, 46, - 53,207,203, 7,227,191, 48, 8,145, 74, 81,213, 54,195,124, 97,110,150, 19, 43, 75, 68, 65,240,160,171, 12,166,138, 91,215,117, - 30,128,145,242,162, 98, 48, 24,146,166, 25,147,116,242,224, 18,158,237,180, 88, 93, 90,100,117,113,158,245,229,101,102, 58, 45, -139,126, 44,115, 66,215,163, 63, 28, 83, 87,211,135,215, 96, 11, 50, 99, 71,225,118, 98,102,200,138,146,252, 39,138, 18, 41,152, -142,240, 29, 92,101,187,144,178, 44, 41,170,233,231,141, 33,201,114,142, 49,179,205,102,132,171, 92,178,178,192,119,220, 41,139, -189,207,177,253, 74, 10, 59,214, 87,202,153,118,151,118,165, 80, 85,118,135,254,241,143,252, 12, 63,117,229, 49,110,222,219,164, -211,106,113,246,228, 58,147, 44,227,222,214, 54, 85, 85,243,220,187,174,176,180, 56,143, 82,138,157,189, 61,226,100,242, 55,198, -239, 74, 24, 30, 62,127,158,243,167, 78,178,177,117,159,111,255,240,199,220,220,216,228,176,215,167, 40,115, 60,207,163,168,106, - 38,131, 17,181,144, 80,197, 24,160,152,196,164,135,183, 72,147, 30,253,237,171,136,225,195, 36,227, 46,147,244, 58,117,146,162, - 83,135,222,246, 53,116,157, 48, 25, 29, 97,234,156,178,180, 32, 22, 83,167, 40,191,205,115, 31,255,223,121,244,167,254, 62,189, -221, 87,169,138,120,154,246,165, 25, 13,238, 48, 60,186, 67,157, 14,105, 54, 87, 89, 57,243, 33,158,121,207,111,242, 63,252,243, -231,184,181,119,138,195,240, 38,250,252,187,121,249, 79, 62,199,214,230, 31, 83,246,239,211, 62,119, 18,103, 52, 68,122,139,156, -185,244, 27,104,185,193,160,223,163, 28,196, 36,249,132,209,112,196, 96, 48,160,217,108,218,231,177,180, 7,183, 82,118,162,114, -124,153,143,199, 86, 28,108,187, 61,197,222,206, 14,222,194, 83,148,197, 24, 71,122, 20,121,143, 50, 27, 34,164,139,244,230, 40, -247,246,153,176,207,112,227, 22,105,218, 69,134, 1,121, 49, 36,141,247,217,185,253, 53, 6,187, 63,194, 11,218,100,147, 30,101, -188,143,114,124, 92, 63,176, 36, 53, 41,169,234,148, 73,122,136,174, 52,147,131, 35, 22, 86, 93,246,118,118,168,171,154, 78, 39, - 96,120,112, 64,120,102, 9, 49,176, 13,158,214, 57,166, 28, 33, 85,202,252,185,135,104, 71, 62, 59, 71, 27,168,116, 30, 33, 29, -202, 34,163,202,143,112,194,152,222,246,134,213, 6, 9,129,239,248,212, 66, 79,191, 83,138,100, 50, 65, 10, 51,189, 76,193,113, - 61,234,178, 38, 12,124,210, 73, 74, 81,150, 68, 65, 52, 93, 63,154, 7, 29,113,173,107,170,170,162,170,108, 84,248,241,217, 38, -164, 64, 98, 39,205,121, 94,160,177,190,118,229, 88, 68,183,209,122,250,126, 91,186,167,235, 40,164,156, 54, 61, 2,234,218,174, -146,106,109,172,157, 88, 41,219,245, 87,182, 1, 45,203,130, 32, 10, 48,218, 34,163, 29,101, 99,172, 61,199,193,245, 44, 1, 79, - 9,200,179,156,172, 44,208, 85, 73, 81, 91,186,157,214, 21, 70, 74,202,188, 66,136, 41, 67, 68, 72, 60,223,183, 19,113,163,166, -205, 68,136,114, 29, 42, 93, 17, 5, 33,101, 89,161,148,197, 57,143,199, 35,203, 54, 81, 18,132,164,168, 74,154, 97,131,192, 15, -112, 61, 23,229, 90, 0,150,174, 42,252, 32, 66, 74,129, 58,117,238,252,103,142,247,191, 18,135,178,182, 7, 79, 24,134, 68,141, -136, 96,202,203, 61, 78,235, 58,217, 17,204,232,152,109, 45,121,100,182,193, 35, 79,156,225,141,191,250, 22,167,158,126,204,250, -133, 29,193, 55,111,103,188,188, 17,227, 70,190,125,227,141,198,243,108,224, 67, 93, 89,161,150, 51,221,125, 24,160, 42, 44, 43, - 88, 8,203,188,213, 90, 19, 70, 33,161,231,163,141,161,209,140,136, 34, 43,210,105, 54,155,182, 90, 41,107,210,162,224, 32,145, -124,229,102,204,181, 36,224,236,122,135,115,171, 77, 28,223, 97,239, 96, 76, 18, 79,240, 26, 30,179, 39,231,153,236, 15,201,247, - 7, 80, 85,224, 59, 24, 71, 64,165,193,104, 60,229, 16,249, 46,157,192,161,192,142, 74,246, 6, 25,241,126,223,238, 66, 85,197, -120,156, 35,141,166,189,181,203,240, 59,223,231,206,157, 59,120,145, 79,243,241,243,232,237, 3,110, 93,221,162,232, 87, 52, 79, -158,131,135,214,233,132,146, 71, 87, 28, 62,246, 88,155, 79, 62,221, 33, 3, 38,153, 33, 46,106, 92,215,183, 16, 17, 37, 16,194, -238,211,243, 44, 67, 58,214,131, 89, 85, 54, 32,192, 86,200,199,118, 5, 7,199,115, 16, 6,226,100, 66, 28,143,153, 36,201,212, -147,105, 47,219, 40, 10,112, 93,135,162,172,108,162,207,116, 10,162, 28, 27, 49,235,123, 30,174,231, 81, 85,213, 52,125, 40,152, - 62, 40,149,221, 3, 59,146,118, 0,191,240, 84,139,255,250,151,231,249,192,133, 38, 13, 97, 64,131,177,124, 29,132,227, 32,222, -190, 77,247,218, 59,156,255, 59, 31, 71,108,109,145,188,241, 6,106,146,208,137,154,188,225,118,112,140,226,250,159,127,145,185, -249, 89, 94,190, 63,228,249,139,139,188,252,239,191, 66,186,184, 70, 20,184, 84,104,110,222,219,229,202, 67, 11,176,210, 66, 62, -255, 36, 51,207, 95, 65, 92,190, 0,221, 49,148,138, 27,111,109, 99, 92,135, 51, 75, 1,171,235, 29,188, 42,227,153,142,230,253, - 43,138,243,126,137,172, 53, 18,216, 45, 20,169,134, 75,179,112, 54, 82,252,244,186,226,209,182,226,133, 37,184, 87,181, 8,124, -143,188,182, 4,171,124,170, 37,208,198, 96, 16,148,101,249, 19,151,140,173,216,237,175,105, 12,171,146,228,121,206, 56,153,144, -229, 25,142,107,185,210,129,239, 49, 63, 51, 67, 24,250,214,118, 86, 91,120,196, 36,203,144, 66, 97,209,187,214,175, 94, 22, 37, -163, 56,102,191, 63,120,112,161,218, 85,138, 71,173, 53,237,102,131, 32,240, 9, 60, 15, 37, 37,121, 89, 50, 24, 14, 56, 26,142, -168,181,205,107,111, 70,214, 10, 84,107, 75, 51, 28, 78, 38,196,201,228,111,252,253, 13,118, 71,237,185, 14, 70, 64, 89, 84,244, -134, 3,122,253, 33,166,174,105, 68, 17,235, 43, 75,150,186, 5,116,154, 77,102, 58,109,206,158, 88, 71, 74,201,225,112, 72, 89, -216,132,172, 90,215, 24, 64,107, 67, 85, 91,186, 96, 16,134,132,190,205,134, 56,123,242, 4,255,205,239,253, 61,140, 49,188,252, -198, 53,102,154, 13,180, 49,220,188,179,193, 27,239,220,224,189,207, 62,205,195, 15, 93, 32,116, 93,150, 22, 22,112,149,226,141, -183,223, 97,239,208,230,193, 47,205,207,241, 43, 31,253, 8, 63,245,196, 99,246, 59, 37,108,254,251, 48,142, 25,197, 9, 6,136, - 66,159, 86,163,193,218,210, 60,197,100, 72,145,141, 9,162, 16,227, 68,148, 89, 13,198,118, 95,241,222, 38,229,184, 75,233,239, -147, 29, 30, 17,202, 54, 73,233, 98,242, 1,121, 62, 1,108, 82,156,208, 96,168, 89,189,242, 40, 39, 46,255, 58,105,220,103,176, -123, 21, 93, 39,104,157, 34, 85, 72,145, 12,200,227, 46,141,246,105, 86,207,188,192, 83, 31,122,158, 23,255,179,132,247, 24,143, -252,197, 22, 95,248,204,159,242,249,127,254,223,145,140,182,105,157, 94,100,255,198, 29,188,118,131,230, 76,136, 50, 77,154,179, - 79, 19, 52,215, 49,209, 54, 91,175,189,197,218,218, 10,227, 81,194, 96, 56,160,215,235, 97,140,193, 42,161, 45, 3,126, 28,199, - 76, 38, 9, 15, 44,178,211, 11,125, 52,236,179,181,123,196,204,218,211, 12,246,126, 68,157,143, 40,211, 3,234,124, 76,145,142, - 40,179, 33,233,232, 62,227,189, 30,101, 58, 32,141,123, 40,147,160,243, 49,233,248, 62,233,224, 30,167, 30,249, 20, 11, 39,159, - 39,136, 22,145, 82,129, 99,161, 83, 82, 64, 93,229, 40,169, 44,109, 46, 27,147, 12, 15,233,204, 10, 28, 71, 49, 30, 39,120,205, - 6, 47,124,248,131,204,157, 62,193, 32,238, 82, 29,217, 72, 79, 93, 21,184,205,146, 76, 43, 58,174, 79, 50,216,167,136, 93,164, -156, 5,157, 83, 20, 67,130, 70, 74,213, 63,176,148, 63,233, 34, 29,235,244, 9,124, 11, 40,146,211, 75, 78,107,109,173, 97,101, - 65,224,219,125,179,239, 7,212,117,133,227, 57,214, 29,228, 74, 42,109, 35, 85, 65,211,136, 26,184,174,157,248, 54,162, 6,194, - 17,164, 73,106, 57, 34,158,135,231, 7,248,254,116, 7,238,219, 72,109, 49,125, 54,108,222,123, 72,141, 13,225, 66, 9,164,144, - 15,198,244,174,163, 48, 66,145,166, 25, 69,110,133,105,218,212, 96, 20,121,145, 17, 4,161,237,208,165,196,113, 29,108,210, 26, - 40, 37, 40,170,250,193,217, 97,159, 27,137, 84,118, 45, 86,148, 53,122,122,167, 58,174,131,239,249, 52,162, 8, 33, 21, 85, 89, - 81,105, 59, 25,240, 3,159, 50, 47, 41,139, 10,132,197,163,199, 73, 74,173,107,210, 44,197,102,114, 64,179, 17, 77,125,243, 57, -190, 63,213, 88,213, 37,173, 86,123,186, 46, 87,168,197,213,181,207, 4,129,229,225, 42, 71,218,253,196,116,188,152,231, 25,117, -101, 43, 36, 43,134,168,185,188,234,115, 38, 44,217,233, 38, 60,115, 97,137,118,203,231,230,183,127,136, 60,119,129,165,118, 72, - 89,212,124,107,171,100, 51, 22,228,233, 4, 33, 21,181,193, 34,104,171, 26,229, 56, 8, 97,168,203,154, 70,212, 32, 12,124, 2, -223, 39, 8,124,106,109,115, 98, 45, 12, 68,130,208,184,142, 69,163, 42,105,223,220,178,182,185,188,206,180,179,172,235, 26, 47, - 8,232, 15, 38,124,103, 35,231,229,125,129,244,124,222,253,240, 44, 8, 56,232,165, 36,195,152,217,181,121,162,197, 25,146,163, - 9,229,225, 24,165, 53,210,247, 16, 82, 35,164, 75, 16, 58, 40, 45,241, 67, 23, 79,186, 24, 33,240,252,128, 58,175,113,165,164, -150, 46,217, 36, 97,103,239,144,195, 3, 59,202, 58,117,234, 4,206,179,151, 16, 72,178,173, 46,162,174, 81,147, 10,247, 0,246, -222,233,210,116, 60,104,186, 68,190,224,197,211, 30,191,248, 68,155, 15, 95, 10, 89,138,172,232,232,246,126,134,192,166, 13,217, -149,182,121, 80, 41, 30, 35, 4,149,178,196, 58, 57,237,144,171,178, 32, 30,141,169,211, 20,234, 10, 45, 29, 26, 81, 68,163,101, - 69,105,210,113,113, 92, 7,129, 68, 9, 75,110,114, 92,151,162,200, 16, 8,132, 4, 47, 8,240, 29,143, 99, 98,221,201,121,151, - 15, 61,236,241,247, 62, 48,195,239,188,111,158, 15, 94,233, 80, 92,221,102,231,206, 1,115,235,179,152, 90, 35, 92,151,228,234, - 54,119,111,236,177,176,218,102,113,126, 14,115,233, 12, 59, 91, 99,226,112,134,238,107,219, 52, 28,205,235,222, 44, 59,163,148, -245,165, 38,114,216,231,167,127,225,221, 36,219, 93,100, 24, 17,206,117,216, 62,140,145, 24,150, 58, 1,235, 63,115,145,250,250, - 33,223,254,234,117,242,123, 99,230,255,246, 39,224,153,247,194,140, 96,238,233, 11,136, 59, 7, 28,108,110,209,206, 51, 46,158, -157,103,213,131,179, 47,158,225, 61,191,250, 36,191, 26,214, 60,213,200,249,196, 42, 60, 61, 3, 71,147,154,162,208,196,149,228, -122,162,249,226,150, 33,156,237,160, 28, 43,202, 17,210, 90, 11,179,172,152,138, 18,173,104,174,124,160,196,197, 30,254,128, 16, -199, 89,234, 54,132,196, 96,199,213, 54,168,194, 48,211,110,227,249,118,114, 37,165,181,151, 84,117, 77, 89,215,164,153, 77,248, -147,194, 80, 21,182, 56, 11,131,112,186,230,201,167,123,234,138,100, 58, 89,113,167, 19, 25, 99, 12,117, 85,113,115, 99,147,123, -219,247,113, 93, 91,124, 28,239,242, 60,127, 10, 23,170, 43, 92,101, 19, 17, 93,199,195, 96, 30,116,215, 74, 89,146,150, 82,210, - 34,111, 51,187, 98, 49, 88,165,109,154,102,150,250,102, 52,253,193,144,131,126,159,205,157, 93, 14,143, 6, 28,244,122,104,109, -117, 52,229,180,147,180, 43, 32, 69, 24,248,132,190, 11, 82,210,110, 52,248,131,255,226, 31,177,180, 48,207, 96,156,240,185, 47, -127,131,192,247,120,229,234, 91,244,142, 6,252,143,255,228,247,248,192,135,222,103, 39, 12,105, 10, 24,132,148,116,247,247,185, -119,191, 75,150, 91, 54, 64,150, 23, 8,105,112, 29,151,219,247,238,115,239,254, 54, 66, 8,138,210,130,149,178,188,160, 50,154, -213,249,121, 58,243, 29,222,185,177, 73,216,138,144, 74,145, 87, 22, 15, 42, 5,140,134, 27,148,197, 0,252, 49,189,157,125,154, -186, 34, 25, 31,144, 79,250,212,181,193, 24,139,112, 54,216,236,107,116,141, 43, 5,113,191, 75, 85,141,168,210, 33,101,157,227, - 5,115, 68,205, 21, 46,188,251,215, 88,191,244, 1, 86, 79, 60,194,228, 8,118,110, 6,108,174, 11,238,126,222,163,183,159,177, -253,246, 31,209,104,159,162,213, 92,102,116,176, 69,218, 27, 34, 42,159,249, 25,159,189,189,107, 44, 44,190, 64,235,209, 21,110, -255,224, 11, 28,237, 28,176,114, 98, 13, 49,221,149,218,233,163, 29,249,234,233,103,118, 44,212, 58,158, 66,230,105,198,205,119, -222,225,111,255,253, 55,249,189,255,227,215,248,210,191,252, 87,136,218,218, 13,165, 52,232,124, 66, 93,199, 24, 93,160,133, 67, -153, 13,152, 91,121,156,165,133,167,217,191,247, 77, 38,147, 93,102,215,223,197,185,199, 62,133,239,180,104,116,214, 9, 90, 43, -212,186, 34,203,134, 96,114,180, 41,169,203,132, 42, 29,147,197,187,148,217,128, 81,127,196,217,135, 79,147, 26, 77,146,165, 24, - 20,237,206, 9, 28, 89,112,116,127,128, 18, 17, 72, 77,168, 34,154,243,138,221,221, 30, 42,139, 41, 50,133,235,206, 2,130,162, - 24,227,182, 38,148,131, 61,106,109, 41,104,121, 54,221, 7, 79,108, 42,102,232, 91, 31,185,235,218,103,231, 56, 47,192, 66,187, -114,187, 14, 18,224, 78, 59, 85,223,117,145, 74,224, 56,158,189, 37,165, 64, 9, 7, 93,107, 92,199,234,137,170,186, 36, 29, 79, -208,210,224,123, 54,225, 82, 40,187,198,173,167,171,174, 73,154, 34,164, 64, 24, 16,106, 26,200,229, 56, 15,244, 72, 90,215, 72, -233, 32,208, 8, 37, 73,211, 20, 93,219, 54,220,115, 92,164,178,107,100,137,109,170,116, 85,225,122, 62,142,114,237,101,111, 12, - 85,109, 11,121,163, 45,133,213,178, 82,192,247, 61, 26,141, 6,199,132,206,186,182,184,230, 99,150,137,239,123, 84,186,166,174, -236,247, 53,159,142,225,143, 1, 53,182,240,176, 56,112,235, 69, 23, 56,158,135,227, 40,138,172,192,243,236, 51, 95,215,246, 59, -166, 78,156, 62,243, 25,233, 88,195,125,154,218,241,199,177,128,192,247, 3, 92,101,209,117,158,111,153,187, 51, 77,143,119,207, -195,155,221, 17,221, 94,194,220, 76, 68,182,213,229,107, 91, 9,207, 61,118, 18,148,225,115,111,142, 57, 44, 4,158,251, 19,152, - 81,215, 69,185, 10, 11, 98,201,173,181, 75, 42,202,178, 66,160,144,158, 67, 24, 6, 88, 38,181, 21, 69, 56,142,139,235, 56, 8, -105, 16,210,114,120,229, 52,146,212, 26,252,205,212,251,107, 85,189,160,153,228, 53,175,117, 51,254,114,163,166, 51,219,226,226, -137, 54, 81,160,216,223, 61, 98, 56,204, 89, 61,191, 68,208,242,137,123, 49,229, 32,193, 76, 42,100, 39,160,172, 53,165, 46, 41, -178, 18,133,161,174,160,166, 34, 10,172,248,225,242,165,243,156,121,252, 10,189,237,251,168, 72,145,100, 5, 45, 63, 36,212, 14, -201, 59,183, 57, 58, 56,196, 13, 45,255,247,254,221,187, 92,191,179,197,155,183, 14,232,152, 22,205, 15,191, 15,102, 58, 56,105, -202,236,172,199,149,211, 33, 63,255, 68,147,255,228, 61, 77, 78,204, 24,102, 90,129,165,223,185, 62, 26, 27,199,153, 38, 9, 89, -158,145,231,185,165,189, 1,147,241,152,100, 52,166, 46, 50,132,177,226, 37, 33, 37,141,102, 19,141, 29,209,103,105,138,231,218, - 11,219, 8,144,142,162, 42,173, 56,175,210,154,192,115,152,137, 60,206,174,120, 60,119,193,231,151,158, 10,249,237, 15,204,241, -145, 71,155,156,104,123,248,161,203,228,245, 46,255,250, 75,215,153,157,107,176,118,118, 9,169,128, 84,243,165,239, 92,103,166, -213, 96,233,172,101,168, 51,204,249,147,111,222, 64,248, 30,167,147,125,148,239,179, 57,179,200,222, 48,227,133, 39,207,160,251, -125, 90, 39,215,216,248,234,203, 60,244,158, 43,204,173,205,243,141,239,220,228,220,185,101, 46,172,205, 16, 22,130,127,251,217, - 87,112,141, 33, 29,166,156,249,216,199,236, 63,226,181, 31, 34,239,222,199,247, 92,102,126,254, 5,252,197, 5, 88, 95,131,247, - 61,203,240, 27, 55,217,251,230, 53,226,220,176,219, 79, 25,151,134,197,134,199,187,102, 21, 79,204, 10, 90,142,225,122, 95,115, -191,148,180, 58, 29,180,177, 83, 38,109, 4,102,250,221,138, 2, 27, 76,164,181,161,172,108,231,100, 87, 80, 14,158,107, 5, 53, - 24,166,130, 49,193,120, 60,126, 48, 85,114, 93,135,102, 20,225, 58, 46,249, 84,129,122,216,235, 91,126,192,180,211,146, 64,109, - 32, 47,237,184,220, 96,147,158,142, 70, 67,234,170, 70, 96,136,130,144,229,185, 57,187,238,240,172,191, 53,158,138,231,138,178, - 66, 74, 69,146,196, 8,160,211,178,163,219,238,126,143,131, 94, 31, 93,105,171,208, 15,125,164,176,251, 64, 93,107, 43,136, 19, - 6, 71, 72,187, 46,168, 74,148,227, 16,250, 46,205,168,129,114, 92, 26,145, 21,211, 37,137, 37,127, 25, 99, 21,196,121, 94, 79, -187, 38, 27, 95,219,105, 54, 49, 88,132,103, 58,117,199,232, 90,115,233,194, 57, 62,249,209, 15,179,180,178,194,221,141, 13,238, -108,110,179,179,183,199,214, 78,151, 79,254,252,135,249,232,135,222,143, 41, 43,146,120, 76, 94,149, 12,134, 67,242,178,228, 71, - 87,223,228,229,215,175, 2,176, 48, 55,199,211,143, 95,102,125,105, 9,165, 28,198,241,152, 52, 45,216, 59,236, 19, 79, 87, 80, -190,239,115,114,121,137,185,153, 25, 90,179,179,140, 26, 17,107,231, 94,164, 28,119,169,178,132,178, 44, 25, 39, 59,140,246,222, -102, 97,245, 52, 70,246,169,165, 96,184,185, 67, 49,238,177,122,225,231,113,130,101,134,135, 87, 17,198, 22,116,152,154, 44,142, -241,194, 0, 93, 23,228,105, 76, 85,142, 80,202,163, 53,119,142, 86,235, 44,239,255,239, 95, 64,111, 55,105,127, 24,146, 93,184, -243,131, 87,121,253, 63, 92,101,111, 99,131,154,140,147,231,126,129,229, 83, 47, 80,228, 7,196,253,187, 8,165,200,253,146,114, -152, 16,205, 43,230, 87,222,207, 83,143,254, 71,184, 51, 43, 92,251,238,103, 57,218,223, 99,126,105, 9,223,179,118, 73, 99,254, -186, 8,179, 19, 80,171,216, 22, 82,146, 78, 18,238,110,108,144, 59, 46,179,139,167,248,206,159,221, 98,255,222,151,112, 3,159, -108,146,160, 92,159,118,187, 65,145,151, 40,229,145,229, 57,181, 78,248,208, 39,255,156,143,252,246,175,242,222,127,250,143,120, -254,249,127, 76,150,173,113,176,247, 67, 38,227, 61,134,195, 77,178,172,199,252,194, 35,204,173, 94,161, 54, 80, 23, 99,138, 73, -140,209, 25,117,149,162,107,144, 34,162, 25,206,178,126,110,129,131,225,128, 50,207, 72, 55, 5,142,159, 50,201,143, 16,186,131, -112, 2,140,136, 88,190,184, 68, 62, 58,100,184,183,131,191, 60,139,206, 59, 72, 21, 80,155, 20,194, 4,167, 72,112,204,212, 58, -219,136, 40,203, 10,105, 12,158, 31, 32,132, 65, 27, 77, 58, 73,201, 51, 27, 87, 92,228,133,221, 33, 43, 73,224, 7,160,107,140, -180,138,247,170,172,201,171,146, 73,146,216,241,186,174,241,125, 31, 37, 21,101,157,131, 84, 86,133, 30,133,120,158, 75,146,166, - 84,149,229,178,107,172,112,172, 40, 75,132, 17, 56,174, 68, 57, 62,101,153,147,167,185, 45,200,141, 65, 9,123,215, 84,149,181, -154,161, 13,199,248, 85, 12,148,101, 69, 85, 90,200,147, 54,160,181,253,252, 48,218,170,236,167,133,185,227, 89, 27, 50, 26,252, - 32, 36, 12,236,136,188,170,172, 55,255, 39, 35,172,237,159,107,247,233,101, 81,226, 57, 14, 6,137, 55, 5,218, 56,174,157,170, - 4,190, 77,125, 19, 66,146,229, 25, 69,145,147,166,233,116,234, 34,112, 61, 23,195, 52, 77, 85,131,144,194,178,223,139,178,102, -146,196,120,126, 0,194,146,105,138,178,162,204,173, 72, 13, 12, 89, 94, 80,148, 57,163,180,224, 63, 62, 31,112,245,118, 15,141, -228,198, 70,143, 48,233, 51,191,188,192,217,243,107,148, 69,197, 95,188, 61,162, 59,200, 41,139,130, 90,192,146, 42,121,118, 85, -240,246,174, 85, 5, 98, 12,198, 88,108,158, 20, 18, 67,141,174,107, 43,194,194, 86,175, 22,244, 47, 24,197, 35,242,188,160, 42, - 74, 27, 46, 99,106, 70,195,216,230,218,154,122,218,221,218, 15, 64, 27, 99, 35, 78, 93, 23,140,224,157, 35,195,215,239,215,140, - 76,192,251, 30,157,195,115, 96,227, 94,143,200,243, 56,253,232, 26,153, 86,164,117, 77,213,155, 16, 52, 67,220,192, 71, 74, 40, -128,163, 44,199,199,224,250,118,212,114,120, 24,179,218,182,161, 1, 7,189, 62,153,174,216,223, 29, 49,222,221, 97,111,123,135, - 60,206,152, 89, 90, 96,233,133,167,200, 54,238, 51,216,223,103, 33,242, 89, 95, 95,197,189,112, 22,241,118,143,111,126,225, 21, -182,239,246, 89,214, 33,234,196, 58, 78, 51,224,210,170,207,139,143,183,248,248, 51,109,126,233,177, 38, 31,186,164, 56, 59,171, -152,107, 8, 90, 13,215,190, 39,166,102,112, 52,198,213,133,253,226, 97,199,246,198, 88,143,163,231,123, 56,174,131,235, 88, 97, - 93, 93, 85,204,132, 6, 95, 25, 92,165,121,250,116,192, 79, 63,222,224, 83,207,118,248,165,103, 58,252,214,139, 29,126,249,241, - 6, 47,158,246,121,116,201,167,237, 74,132,152,254,172, 65,193, 95,125,254, 42, 51,142,224,131, 63,115, 5,227, 9,168, 5,223, -254,194, 85,214, 22,103, 56,181,220,192, 19,192,214, 54,183, 7, 37,219,219, 3,154,157, 16, 39,157, 32, 71, 41,147, 83, 39, 25, -100, 5,126,173, 89,116, 11,190,250, 39,223,225,197,167, 79, 32, 79,173,115,115,163,199,253,110,159,164, 18,204, 55, 61,178,241, -255, 71,212,155, 6, 89,118,222,231,125,191,247,236,231,238,247,246,222, 61,221,211,179, 1,179, 0, 24, 44, 36, 0, 2, 4, 64, - 2, 36,196,181, 40,128, 20, 23,173,137,149, 40,114, 36,151, 45,149,163,184,236,114,204,146,147,216, 85,177,163,164, 42,169,138, - 28,165, 34, 43,178,203, 46,209,162, 41, 81, 20, 37,113, 1, 1, 18, 43, 1,204, 96, 6,179, 47, 61,189, 47,119, 63,251,250,230, -195,123, 7,234, 47, 51, 53, 53,213,213,125,187,239,249,111,207,243,123, 98,162, 56,199,172,152,244,163,140,131,215,222, 97,248, -131, 31, 50,255,192, 60, 20, 46, 65, 38, 40,194, 12,227, 51, 79,163,205,207, 64,191,199,248,229,183, 89,122,242, 17, 26, 39, 86, -105,203,152, 54, 41,125, 47, 38,200, 74, 26,150, 70,195,128,143, 46,219,172, 54,108, 86, 12, 37, 12, 27,101, 16, 22, 37, 69, 33, - 16, 40,117,233, 96,228, 17, 76, 10,200,221,143,187,103,140, 90,165, 66, 81, 42,146, 84,150, 23, 20,185, 74,214,203, 38,171,104, -215,113, 38, 90, 16, 73, 28,167,248, 97,192,200, 11,240,195,144, 78,163,165, 86,235,185, 90, 97, 75, 41,169, 85, 43,212,170, 21, -246,246,123,164, 89, 54,249,247,146, 40, 77,213,116,173, 43,166,127, 16,132,164,105,142, 44, 37, 81,146, 16, 37, 9,154,174, 43, -190,124, 89,126,128, 86, 77, 50,197, 82,207, 11,229,249, 21,154, 70, 54, 57,211, 84,109, 71,101, 59,107,234,119, 33,207,115, 74, - 9, 18,137, 97,104,212, 43, 85,164, 80, 52,195,162, 44,169,184,206, 36,218, 81, 9,144, 28,199, 97,186,221,194, 11, 67,178,201, - 89,172, 40,212,186,244,185, 39, 63,194,247,127,242, 42,207, 61,249, 24,171, 39,142, 17,123, 1, 27,219,219,220,222,220,230,225, -251, 78,115,252,200, 97, 46, 95,191,201,203,111,188,133, 23, 70, 44,207,207,179,223,237,115,233,250, 13,222,191,126,139,107,183, -214, 0,152,159,153,226,161,251,206, 48, 59, 51,141,231,251,236,238,119,209, 13,125, 82,236, 4,166,174, 49, 51,213,230,244, 61, - 39,120,226,225, 7, 48,218, 83,164, 75,171, 24,241, 44,113,170,145,250,119,232,110,188, 73, 50, 62,224,190,199,127,155,106,107, -137, 40,190,138,110, 66,237,232, 2,159,253,226, 31,242,167,255,231,139,188,122,243, 12,251,195, 31,145, 13, 6, 72, 81,128,212, - 84, 97, 31, 15,104, 53, 92, 70,253,117,242, 44,166, 51,251, 24, 11,171, 31,227,240,234,147, 28, 57, 5, 23,191,189,193,248, 29, -143,254,206, 38,126,184,134,231,223,102,212,187,138,223,187, 73,165,190,168,222, 39, 90,157,100,240, 62,101, 37, 39, 31,100, 72, -189, 73,226, 27, 56, 86,194, 91, 47,125,131,197,149,103,121,228,217,191,199, 79, 95,250,191,217, 88, 95,195,247,198,212, 26, 13, -116, 93,133, 33,221,157,204,165,148,132,126,192,141,219,215,216,220,216, 69,119,166,169, 84, 59,120,189,139,244,119, 95, 33,215, - 82,242,196, 65, 3,210, 96,164,206, 66, 66, 80, 96,145, 39, 17,134,238,242,208,103,255, 49, 91,215,250,108,124,127,131,222,102, -206,248,224, 22,221,157,243,132,254, 30, 69,212,195,169, 76,211,156, 62,142, 99, 58,104,214, 36, 37, 45, 30,145, 23, 17,166, 89, -199,112,218, 84, 59, 71,145, 70,139,197,123,218,140,186, 93, 2,127, 68,181,101, 49,190,190, 67,152,246,169, 86,103, 41,114, 11, -221,236, 64, 62,207,202,131,135,168,235, 57,194,178, 40,162, 42,142,213, 65, 20,146, 50, 75,176, 43, 49,222,158, 74,234, 76,226, - 24,132,134,105,155, 84, 92,133, 34, 55,116,245,220,215,117, 67, 9,234, 38,231,223,138,237,144,166, 25,186,110, 42,216,150,169, - 19, 78,178, 52,242, 66,241,222, 93,183,130, 31, 40,125,140,105,154,104,168, 97,180, 82,113,201,242, 18, 83,183, 17, 2,208, 52, - 64,163, 90,113, 41, 10,149,189,161,178,216,149, 47, 93,109,186,116, 37, 76, 78, 99,138, 44,167, 90,169,161, 0, 50,170, 25, 55, - 12, 75,225,211,109, 27, 83, 87, 2, 85,203,180,177, 93,133,179,181, 12,101,143,141, 35, 5,144, 49, 39,234,120, 41, 75, 12, 83, - 39,138, 34, 92, 91,101,104,168, 97,117,146, 0,151,231, 19,221,148, 10,224,178, 44, 27,161,233, 8, 77, 97, 99,133, 6, 32, 16, -134,218,164,154,166,141, 2,142, 25,196,147, 13, 66,154, 36,228,101,138,174, 25,248, 65,128,109,171,232,244,162, 44, 48,116, 77, - 32,132, 82,201,122,163, 33,134,105,161,161,163, 21, 5, 73,166,214, 92,102,163,142,117,247,190, 24,229,116, 51,131,229, 41,135, - 81, 44,176, 28,131, 97,210, 36,235, 71,196,121,138,105,152, 28,153,173,177,238,199, 68, 73,130, 76, 82,142,203, 61,254,199,191, -255, 27, 28,254,195,239,242, 7,111, 7,232,186,129,105, 9,242, 36,158,100, 77,223, 85,188,170, 65,237, 46,233, 75,136, 16, 33, - 4,150,101, 98, 57, 46, 89,158, 19,134, 42,156,196,180, 44, 84,238,110, 65, 74, 73, 89,128, 97,187,196,229, 36,247,187, 84, 89, -181,105, 2,175,110, 11, 46, 14, 52,158, 95,157,226,177,227, 46,126,119,192,149,203,187,204,206, 55, 89, 60,212,198,239,122,108, -223,220,165,171, 25,204,213,109,186,113, 74, 16,102,184, 75, 77,216,235, 67,163, 66,175, 59, 96,236,251,212, 42, 46, 2,131,186, - 97, 18,105, 5, 73, 17,162, 87,116,200, 37,169, 31, 66,223,199,118, 92, 26,157, 38, 20, 26,254, 96, 76,229,175,223,160, 55, 28, -226,140, 6,148,133,198,109,179, 74, 43,222,225,206,214, 14,109, 39,167,102, 10,132,233,178, 48, 63,199,212,252, 20,167,143,207, -128,151,130,200,161,128,110,152,226,152,130,219,227, 8, 87, 10,124, 36,105, 92, 96, 9, 29,175, 40,113,132,192,177, 76, 34, 13, -230,108, 65,197,214, 41,164, 70, 77,215,168, 25,128,105,128,169, 65,170, 62, 31, 89,129,148, 2,153, 65,105,168,105, 63,187,190, -141,233, 86, 25, 30,244,105, 76,215,249,216, 71,239, 65, 28,170, 66, 63,225,218,107, 87, 25, 6, 9, 94, 16,211, 63, 24,242,212, -177, 14,232, 26, 27,235, 1,199, 15, 53,217,234,250, 52,107,109,220,222, 16, 35,207,232,143, 60,180, 35, 29, 1, 41, 15,238, 0, - 0, 32, 0, 73, 68, 65, 84,172,204,229,228,252, 4, 0, 83,232, 92,120,111,135, 67, 77, 7, 47, 8,185,182,109,112,223,145,105, - 18, 36,166,144,172,141, 66,188,124,143, 47, 61,126,152,232,242, 14,127,242,131, 27, 80,192,124,167,201,243, 95,253, 34,242,205, -215, 17, 69,143,217, 95,123, 1, 49, 40,144, 51,117, 26, 63,251, 44,173, 48,100,245,245, 55,184,242,199, 63,100,187, 31, 18, 20, - 64,146,177, 98, 58,108, 9,147, 39,173, 49,103, 83,141, 11, 98,134,126, 82,210, 11, 51,188, 36, 71,215, 77,220,170, 70,150,164, - 42,101, 15,117,231,204,211,148, 40, 78,176, 38,246,151,187,133, 78,211, 13, 36,130, 36, 78,217,218, 85,194,175, 70,189,134,101, -170, 53,124,197,113, 8,227,144,173,253, 61,116, 33,104,183,154,212,170, 85,106,213, 10, 73,154,114,112,208, 37,203,255,246, 6, -158,229, 5,113, 20,147,214,114,146, 84,101,173,151,121,193,208, 27, 51,242, 3,242, 60,167,234,186, 72,164,242,170,187, 46,207, - 63,253, 36,255,213,215,190,200,234,161, 67,236,247,250,156,187,116,133,139, 87,174,177,182,185,201,103, 62,254, 52,166,105,242, -215, 47,191,198,149,155, 55, 25,142, 21,168,200,182, 76,218,141, 58,243,179,115, 28,244,251,244,135, 67,188, 32, 32,157,156, 29, - 12, 93,163, 86,107, 32,130,128,209, 56,197,106, 26,100, 69,129,109,153, 74,252,147, 43,127,245,145,195,203, 28,244,123,196, 73, -170,236,117,166,193,237,245,117,222,186,240, 62, 69, 81,176,115,112,192,183,254,234,251,236,247,250, 60,254,200,131,188,248,153, -231,177, 44,131,209,216,227,218,173, 53,222,124,247, 60, 0, 21,215, 33,140, 98,110,222,190,195,161,121,133,200,157,158,234,176, -177,189, 67, 24,134,147,124,235, 2, 39, 78, 8,147,132,177,239,211,181, 59,120,221, 45, 26,250, 50,245,246, 67, 56,245,123,152, - 90,241, 57,243,224, 47,241,224,195,117,194, 4,174,188,247, 56,175,191,243, 27, 96,103,188,127,238,123,252,203,255,247,151,233, -238, 92,161,179,124,130, 96,111,143,178, 63,166, 16, 41, 66,211,137,163, 62,235,235, 87,153,157, 94,100, 56,220,225,129,207,252, - 93,206,156,169, 50,220,146,184,142,192,182, 77,214,110,253, 64,173,112,131, 93,162,225, 46,195,131, 75, 68,195, 45, 76,167,133, - 91,107, 3, 14,210, 90,161,220,123,153,212, 52,208,130,152, 36,149, 92,243,215, 49,200,185,244,210, 59, 44,157,120,129, 71, 62, -249, 15,121,251,111,254, 21, 7,221, 17, 7,221, 55,209, 45, 27, 91, 23,152,142,163,156, 40, 97,130, 68,199,114, 27, 52,103, 14, - 41,129,151, 5,186,110,171,100,196,177,199,153, 79,255, 46,221,141, 31,115,243,157,255,200,216, 15,113, 28, 3, 77,207, 40, 73, - 41,211,156, 27, 87,191,141,165, 85, 41,199, 3,162,120,132,215,187,134, 33, 76,236, 70, 7,239,224, 22,195,189,247,149, 72, 76, - 88, 36,217,136, 60, 13,209,245, 42,122,197, 4,205,192,112,167,105,116, 78,226,212,231,232,109,238,113,244,196, 49,222,252,201, -235,196,121, 64,123,193,165,191,213, 67,180, 35,180,192, 0,105,144, 5,146,189,247,235, 44,220,255, 48,114,247, 50,113, 47, 70, - 51, 4,213,122,155, 40, 29, 82,107, 79,211,151,146, 48, 12, 63, 56,225, 80, 40,199,142,102,169,233,247,238,246, 48,138, 99,202, -201,217,181, 68, 1,100,164, 86,226,184, 54,190,239, 81,171,214, 40,165, 10, 96,177,109, 75,229, 80,160,108, 97,222,200, 71, 51, -116, 26,141, 6, 73,156,128, 40, 64, 72,108,219, 33,207, 99, 44,221, 68, 72, 65,213,169, 34,133, 68, 22, 5, 66, 51, 16,174,141, -144, 58, 69,174,192, 93, 37,146, 82,148,164, 69,174,162,102, 77, 19,169, 73, 10,153,171, 63,179, 76,217,242, 38,201,109,170, 56, - 73,194, 52,194, 54, 93,156,170, 3, 18, 66, 63,160,222,168, 2,106,123, 86, 88, 6, 97,162, 96, 8,134,166,226,187,133, 16,106, - 91,157, 21,200,172,160,200, 18, 12,211,198,173,184, 4,113, 66,173, 90,193, 52, 44,116,189, 68,150, 37,217, 36,158, 85,145, 68, - 53,165,143,144, 18, 41, 33, 75, 74,252,194, 67, 8,131, 34,135,188, 72, 48, 13, 19,189, 51, 51,243,117,195, 48,136, 83,229,171, - 46,210, 68, 77, 0, 19, 81,143,110, 24, 20,233, 4,162, 82,150,228, 18,142,204,185, 44, 58, 57,131, 32,195,116, 44, 82,161, 67, -154,114,226,196, 34,174,169,241,214, 70,204,102, 48,137, 9,117,108, 30,168, 6,108,190,115,129,207,221, 91, 97, 43, 49,216,141, - 13,138, 2,198,222,152, 44, 83,209,160, 82, 74,133, 93, 53, 84,176,132, 16, 10,120, 82,173,213, 72,147, 68,121,207,227,140,178, - 84, 12, 92,211, 52, 40,203,146, 44, 47, 65,128,163, 91, 32, 4,154, 20, 24,186,174,206, 6, 66, 7, 77,181, 8,121, 14,151,187, - 37,175,246, 29,142, 29,106,112,255, 33,135, 59,155, 3,118,183,251,160,105,212,102,106,228, 94,140, 72, 10,172, 76, 41,255,147, - 56,197,138, 82,186, 65,194, 32, 81,141, 79,189,162, 99, 87, 77,218,213, 26,199, 79, 28,165,223, 27, 80,150, 57, 89, 38, 25,250, - 17,182, 55, 34, 74, 50, 70,131, 49,121,150,210,156,110, 49,246, 98,110,111,239,146, 73, 73,179, 90,195, 16, 57,105, 24,225,239, -119,185, 52,138,184,186,239,163, 89, 85, 70,126,198,219,111,175,179,152,164, 88,171, 77,200, 75, 74, 77,195,109,216,152, 82, 48, -231, 58, 76, 53, 28,102, 43, 54, 75,117,151,133,134,205, 74,195,102,177, 97, 51, 87,179, 88,112, 13,154,166, 70, 69, 55,168, 11, - 29, 83, 47,193,178, 16, 5,200,205, 24,209, 84, 94,208, 82,128, 48, 64, 84, 45, 68, 94,112,237,173, 59,252,217,197, 93, 30, 90, -170,225,222,183,204,225, 83,115,104, 77,135,245, 31, 94,229,149, 31, 95,227,214,222,152,102,221, 38, 77,115, 54,135, 17, 71,134, - 93,236,229,101,222, 90, 27,208,172,217,216,174,141,211,114,176,215,118, 56,252,232, 73,134, 26, 88, 58,220, 59,219, 96,119,125, -151,131, 59, 3,218, 39, 87,217,190,115,128, 64,195, 47, 37,118,154,179,222, 11, 72, 28, 3,199, 48,168, 90, 22,213, 52,163, 51, - 85,229,221,107, 7, 76, 91,130,249, 67, 45,242, 32,161,113,123,147,139, 23,111,176,116,207, 50,223,252,230, 57, 94,125,245, 58, -135, 53,147,202, 51,191,140,152,255,121,202,229, 38,211,115, 9, 71, 30, 58,202,253,159,248, 16,103, 58, 53, 30,110,232,252,217, -165, 93, 46,237,102,248,121,202,188,150,115,172,105,178,212,116,169,155, 26,162, 80, 57,246, 94,156,144, 77,214,161,160, 26, 28, -115,162, 97, 72,115,181, 6,151,178, 36,157, 20,221, 18,137,174, 11, 42,182, 67,179, 81,199, 48, 4, 66, 83,224, 33, 93, 83, 54, -154,233, 78,155, 70,189,142, 59,185,187,215,106, 10,244, 18,198, 9,163,177,143, 16,138, 90,165,105,234,110,175,136,116,106,229, -119,246,228,189,252,214,127,253, 43,124,236,241, 71,137,146,132,107, 55,111,209,106, 52,249,213,175,188,200, 47,190,248,121,206, -156, 56,193,239,253,193, 31,241, 31,190,245, 23,252,187,111,254, 57,221,193,128,167, 30,253, 16,157,102,147,183, 46,188,207,126, -175, 79,183, 63,196,243,125,144, 37, 71,150,151,121,225, 83,207, 81,117, 29, 94,122,237, 77,230,231,102,185,240,189,111,243,220, -147,143,211,105, 54, 40,133,192, 27,143, 41,203, 82,173, 46,139,156,229,133,121,166, 59, 29, 28,215,166, 81,171,179, 48, 51, 3, - 82,114,225,202,117,132, 16,220, 90,223,228,196,220, 44,205, 73,227,178,186,180, 64,148,100,220, 90,223, 96,113,126,150, 63,248, -151,191,139,101, 41,193,166, 31, 70, 92,191,181,198,235,231, 46,124,160, 39,184,231,232, 42,135,151, 22, 88, 90,152, 99, 52, 86, - 56,219,177,239,115,208, 27,144,102, 25,182,105, 48, 51, 61,197,153, 19, 71,169, 87, 42,236, 73,139,222,206, 22, 66,118, 40,138, -130, 50,135,230,124,139, 56,236,115,229,252,109,174, 92,124, 23,137, 67, 25,148, 28,108,188,129, 48,251, 92,185,120,149, 40,216, - 36,233,245, 40,205,128, 44, 74, 41,101,166, 86,241,178, 36,139,198, 68,113,206,161,147,143,241,232, 39,190,202,212,243,146,141, - 87, 97,112, 21,182,238, 92,100,115,243,101,188,254, 26,145,183, 75, 18, 28,176,119,243, 37, 90,211, 39,121,242,153,255, 21,111, -188, 65, 20,244, 56,124,223,231,249,141,111,255, 47,248, 23, 28,174, 94,248, 22,166,225, 80,117, 12, 6,227, 24, 97, 86,208,179, - 29,116, 57,160, 49,255,136, 18, 86,153, 21, 28,183, 65,174, 85, 41, 75, 23, 97, 84,113,170,179, 56,181, 22,186,238, 80,171, 58, - 84,170, 54,186, 97,146,187,130, 34,204, 41,164,100,247,234, 95, 50,216, 62, 79, 81,164,184,149, 54,150,161, 97, 56,109,100, 17, -145,166, 49,142, 40, 73, 34,159, 36,236,225, 15,238,112,239, 19,191,206,199,255,197,215, 56,246,165,167, 89,174,189, 8, 69, 3, -175,127,131, 44,233,145, 36, 93,194,241, 14,121, 30, 99,218, 46,134, 89,193,176,218, 84,234,179, 52,235, 71, 40,114,155,234, 92, -140, 85,198,108,110,239, 49,187,188,192,217,167,158, 36,183, 10,252,237,144, 66,115, 49,244, 42,121, 98, 48,222,141,105, 44,148, -228,118,137,203, 10,134, 93, 65,232, 18,179, 17, 35,162, 49, 90,169,126,183, 45, 75,157,170,202, 92,137, 85,163, 40,156, 4,152, -168,196, 71, 41,164, 18,112,150, 37,149, 74,133, 48,140,137, 99,197,104, 40, 41,137,162,148, 90,173,170,206, 20, 82, 34, 12, 77, - 5, 9, 73, 40, 39, 66, 58,149,144, 25,145,102,202, 1, 84,102,114, 82, 68, 53,146, 84,221,243, 85,115,160,220, 45,119,195,183, -164,144,216,150,129,105, 88,152,134,161,248,239,186,129,169,171,120, 87, 93,168,247,118, 94, 72,162,192, 39, 78, 99,181,249,146, - 26,154,132, 48, 74, 73,147,152, 34, 43,168, 55,235,100,105,166,166,233,201, 93,221,212, 84, 74, 92,148,166,216,150, 73, 89,230, -104,134,162, 41,102, 89, 66,154, 23,228,121, 74,158, 37,234,107,141, 83,197,147,144, 37,113,156, 82,169,186,100,121, 76,181, 82, - 65, 51, 84, 30,136,105, 42,141,141,107,171,191,155,134,137,174, 41,109, 66, 28,199,232,179, 11, 11, 95,183, 76, 91,217,161,178, - 28,211, 86,201, 53,142,109, 83,173,215,149,194,110,194,204,181, 76, 19,203, 48, 9,116,155, 47,204,231,156, 91, 27,208,170,185, -140,147,140, 90,171, 66,104, 86, 57,212,118,217, 30,132,188,183,175,236, 8,166,105,226,104,176,168,249, 36, 81,193,153,101,135, -191,184,145, 19,134,202, 71,235, 58, 46,182,171,160, 31,121,150,168, 9, 92, 55,168, 76,132, 5,105,148, 96,219, 38,182,101,127, - 96,245,210,117,141, 52,141,149,159, 88,215,208,165, 64,119,212, 29,185,226,222, 21, 97,232,100, 69, 14, 40,149,163,169, 43,165, - 99, 24,197,188,181,149,113,110, 92,225,228, 74,131,133,186,206, 70, 63, 32, 78, 11,230, 23,167,104,182, 45,242, 56,199, 50, 52, -202,170, 73,171, 83, 67,160, 19,102, 5,157,150,133,149,231, 8, 41,233, 71, 9,110,161,196, 89, 94, 24,227,197, 41,251,195, 24, - 47, 77, 40,203,140,208,243, 40, 74,137,227,184, 20,105, 66,236, 7,212, 42, 46,171, 39, 79,160, 59, 14,123,155,155,248,121,130, -135,193,172,169,177,220,168, 83,175, 90,108,244,250, 88,162,100,106,177, 73,112,101,159, 43, 87,186,116,111,141, 48,198, 1,149, -133, 38, 98,125,204,250,205, 30,205,169, 42,138, 8,162,129,173, 35, 44, 19, 81,106,224, 8, 68,213, 86,147,185,107,192,173, 17, -127,254,173,243,188,116,109,143, 71, 14, 79, 33, 53, 13, 97,107, 80, 72,174,253,232, 38,223,120,121,141,211,135,106,124,252,233, -123,185,179,214,163,229,216,104,182,206,247,190,249, 14,155,155, 3,108, 10,142, 31,158, 38, 14, 51, 42,142, 69,197,177, 41, 26, - 85,230, 90, 53, 94,238,135, 72,199,228,206,126,192,194, 98,147, 90,127,139,206,241,101, 78, 28, 91, 38, 11, 83, 58,182, 70,255, -198, 38,169,110,112,232,233, 71,185,112, 99,151, 13, 75,167, 55, 78,209,133, 84,133,213,178,200,194,140, 99,171,211, 76,205, 55, -120,243,226,174,226,166, 87, 92, 70, 61,143, 91,126,204,157,131, 62,211,117,139, 69,199, 98,237,218, 54, 11,135,167,216,219,236, - 49, 43, 35,204,163,115, 36,255,233,255, 33,217,220,161,123,144,209,120,234, 65,120,230, 89,120,246, 19,252,204, 11,247,241,179, -243, 14, 43,185, 71, 61, 25, 33,211,136, 97,191,199,130,145, 49, 8, 18,106, 90,193, 82,171, 74,187, 98,145,100, 5,113, 81, 2, - 10,192,100, 24, 10,226,195,228, 14,122, 55,154, 88,197, 55,104,170,176, 79, 2,110, 20, 48, 3, 64,160,107,224, 58, 46,213, 74, -133,102,163,142,101,169,135, 67, 16, 69, 28,244,250,120,129, 15,104, 88,134, 66, 48, 23, 69, 78,197,117, 57,123,234, 94,158,126, -236, 17, 62,247,137,143,161,235, 6,223,121,233,101,222,120,231, 28,131,177,199,217, 83,247,112,230,222, 19,220,127,234, 30,222, -126,239, 34,127,253,202,171,188,117,254, 2,179, 83, 29, 62,254,196, 99,220,115,228, 8,149,138, 75,153, 23, 92,186,126,147,205, -157, 93,224,238,198, 75,240,210,107,111,240,206,197,203,204, 78,117,248, 87,255,248, 31, 18,197, 49, 63,252,241,235, 32, 4, 27, - 59, 59, 12,198, 30, 66, 8,126,238, 51, 63,195, 63,255,239,254, 1,191,246, 11, 95,230,193, 51,247,114,227,230, 58, 35,207,195, - 11, 61,118,118,187, 31,232, 15,158,123,242, 35,252,202,215,190,196,247, 95,254, 9,223,123,229, 85, 46,221,184,205,181,155,183, - 24,251, 62,255,226, 31,253, 54,135, 22, 22,232, 15, 71,244,135, 35,214, 54,182,184,122,123,141,115, 23, 47, 3, 48, 55, 61,197, -220,204, 52,166,101, 81,117, 20, 27, 99,228,143,233, 14,134,140,198, 62, 73,154,242,225, 7,207,242,244,163,143, 48,213,110,225, - 24, 58,119,122, 35,250,131, 30,100, 26, 81,156, 35,243, 8, 93,207, 8,130, 49,113,150,145,197, 67,186,251,111, 19,133, 62,133, -215, 35, 60, 56,160, 98, 37,236,109,223,161, 72,250, 68,221, 30,237,165, 19, 68,221, 29,100, 89, 32, 44, 3, 33, 74,242,100,204, -244,161,227,140,123, 58,225,218,105,134,221,125, 54,110,157,103,119,235, 77,130,225, 29,198,189,107, 12, 55,223, 33,142,251, 28, -127,236,215,120,224,163,255, 45,143,252,163, 21, 30,248,249, 51, 92,251,206, 26,130, 49, 95,252,226, 41,194,222,135,248,201,119, -254, 55, 12,219, 66, 24, 22,150,227,224, 15, 70,244, 61,143, 48, 12, 88, 58,114, 63,245,214, 81,194,193,117,102,166,151,152,155, -110,211,104, 55,104, 55,154,232,174, 67, 22,101,160,169,130,163,153,166, 34, 56,230, 32,243,132, 48,136, 41, 74,137, 48, 12,236, -106,139, 95,249,157,119,241,178,140,237,155, 63,161, 76,124,164, 86,165, 49,125,134,157,219,239,114,235,226,183, 8, 6, 87,104, -180,151, 8, 46, 85,232,191, 62,102,224,117, 57, 88,123,141,254,254,121,133,139,213, 43, 52,167, 79,210,158, 62, 67,169,149,144, - 7,202,131, 93, 42,248,152,208, 42,140,118,186, 44, 28,113, 24,116,251, 68,105, 74,103,254, 4, 75, 71,143,227, 37, 59,196, 59, -133,154, 22, 77,131, 44, 41,137,251, 41,213, 78,140, 72, 58,104, 78, 7, 93, 70,248,250, 30,101,232,227, 31,108, 35,132,138,151, -174, 84, 42, 36,121, 66,158,229,212, 42, 85,188, 96,140,105, 90, 56, 21,135,162, 40, 48,109,149, 61,145,166, 41,213,106, 5,109, -178,150, 79, 39, 96,151, 44, 79,113, 44,231,131,213,120, 81,128, 99,153, 10,142, 36,149,232, 21,193,100,216, 83,182,105, 77, 8, -149, 94,166,105, 88,134,137,208, 76, 36, 18, 75,179, 16,154,142,102, 42, 1,163,208, 84,224, 82, 81, 40,166, 73, 57, 41,180,149, -170,114, 90, 37, 89,250, 1, 35, 66, 9, 0, 37, 89,150,160,233, 2, 77, 83,175,155,122, 0,168,122,150,166, 25, 66,168,231, 66, -156, 36, 10,106, 35, 37,134,110, 42, 93,152,102,168,211,131,110,146,164, 42, 23, 64,215, 13, 37,116, 22,144,165,201,100,157,175, -147, 37,169,226,220,151, 96,155,186, 18, 7, 26,138,105, 31,133,209, 7,254,246,187, 86,105,195, 52,209, 15, 31, 59,254,245, 48, -142,168,212,234, 84, 92, 87, 5,125, 56, 46,150, 99,163, 78,140,130, 56,141,209,133,142,110, 26,164,121,193, 48,130,199, 86, 76, - 66, 63, 32,205, 75, 90, 51,109,118, 47,223,164,182, 56,199,242,180, 75,197, 16,252,231,243, 93,213,209,148, 37,131, 40,229,225, -106, 72, 82, 72,202, 34,102,108, 54,217, 28, 68, 56,142,178,185,105,104,120,222, 24,132,134,101,216, 24,150,202,251,142,162,136, -106,173,138, 97,152,132, 81, 68,158, 39, 31,172, 48, 16, 66,117, 41, 19,165, 55, 20, 80,170, 20,157,188, 40,200,211,156, 44, 87, -107,125, 77,155, 8,152, 12,117,195, 42, 37,236,247, 61, 94,186, 25,177, 85, 58,252,204,125,211, 20, 89,202,216,139, 17,133, 96, -126,101,134, 36,138, 41,122, 1, 50, 43,168,216, 26,118,179,138, 81,148, 36, 93, 15, 41, 36,251,195,144,181, 81,192, 40, 72,104, - 84, 45, 92, 75,167, 98, 27, 56,134,192,176, 4,110,205,193,170, 58, 4, 67,143, 36,203,209,144,152, 26, 76,181, 58,132, 99,143, -245,245, 93,170,121, 74,165,204,112, 53,147, 90,171, 65, 30, 39, 68,131, 62,119,194,140,107, 23,182,184,121,179,139, 17,230,244, - 70, 1, 87,135, 17,103,102,218,196, 67,159, 45, 47,101,126,181, 13,142,142,220, 77,184,252,211, 77,204, 81,136,187,218, 68,244, - 50,174,191,177,198,173,247,247,185,125, 99,159,191,249,193, 21,230,155, 22, 95,250,236, 25, 88,168, 33, 28, 29, 17, 22,252,213, - 95, 94,224,234,149, 61, 62,247,208, 34,139, 79, 28,231,181,239, 95,229,237, 43,251, 76, 89, 37,242,192,227,234,251,187, 76, 55, - 29,170,205, 58, 51,115, 13,110,173,117, 81, 57,221, 14,107,123, 49,203, 71,103, 40,198, 1, 91, 94, 73, 24,103,172, 30,158, 70, -120, 33, 23,174,239,115,242,145, 83,204,206,119,200, 70, 62,236,109,176, 59, 78, 89,152,169, 49, 16, 38, 94,223,231,190,134,201, -244,116,131,165,197, 22,185, 38,152, 89,104, 50,213,116, 89,219, 26, 96,100, 57,211,117,139, 65, 82, 82,169, 85,216,222, 15,152, -173, 89, 56,148, 92,218, 30, 81,111, 86, 57,216, 30,179,230,197,220, 90, 91, 39,250,201,247,185,248,250, 57,174,172,141,240, 6, - 41,199,142, 31,133, 99,159,130,198,115,208,121, 26,253,100,147,229,211, 54,247,127,248, 56, 31,121,236, 4, 79,205,215,232,246, - 60,244, 60,225,100,219, 98, 94,100, 44, 53, 52, 78,205,213,153,106,214, 40, 74,240, 19,117,215,211,244,187,171, 54,141,188, 84, - 62,255,187, 69,190,148, 42,136,197,178, 76,144,168, 53,119,179,142, 16, 74, 56,119,245,246, 29,164, 44, 97,114,219, 46, 81, 15, -161,254,112,248,193, 42, 49,138, 18, 86,151, 22, 57,121,252, 24,179, 83,109,142,175,174,224,216, 22,255,230,223,253, 9,223,248, -139,239, 50,246, 3,190,240,201,103,249,248, 71, 30,101,121,113,158,222, 96,200,239,253,193,191,229,253,107,215,121,242, 67, 15, -241,137,167,158,228,236,169,123, 56,178,188,196, 56, 8,184,116,237, 6, 63,121,243, 29,238,170, 4,166, 90,109, 92,219,100, 52, -246, 57,113,116,149,127,246,219,191,201, 67,103, 78,241,111,255,228,155,252,229,143, 94,225,141,243, 23,185,118,227, 38, 66,194, - 63,253,173,223,224,119,254,201,111,177,176, 56,199,168,215,103,111,175, 71,163, 89,195,243, 3,110,175,111, 79,154, 17,120,248, -190,211,124,250, 99, 31,101,182,211,230,252,165, 43,108,237, 29,208,105,214, 9,227,132,189,131, 30,207, 60,250, 33,142, 31, 94, -102, 48,242, 72,226,132,115,151, 46,243,202,155,111,115,208,235, 3,202,146,179, 48, 61,205,194,220, 12,142,107, 79, 30,148,146, -225,216,155,104, 6, 36,171, 75,139,104,154, 96, 48,244,216, 61,232,178, 55, 10,241,163, 16,145,166, 8, 67, 35,244, 14, 48,117, -159, 36, 76,200,227,128, 52, 29, 19, 5,125,130,241, 26,142, 46, 9,188, 17,245,186,133,150, 14, 9,130, 30, 69, 33,104, 47, 62, -128,187,220, 36, 30,122,100,129,175,238,235,148, 4,131, 3,156,154,206,254,230, 85,226,184,139, 55,188,134,215,189,141,105, 55, -153, 95,122,134,246,242,199,153, 89,250, 8,149, 70, 27,153,103,220,121,115,196,246, 91, 16,244,118,185,179,241, 71, 92,123,185, -195,143,191,247,175, 41, 11,143,208, 27, 80,171, 53,105, 55, 27, 52, 38,147,101, 28,134,116,183,175, 50,218,191, 76,156,131,211, -152,161,221,110, 80,106, 26, 66,215, 57,216,239,210,106,181, 73,211,140, 36,205,104,212,219, 8,145, 17,199, 41, 65, 24, 81, 74, -129, 38,192,208, 52, 42,109,139,141,235,111,178,119,251,199,100,101,159,113,127,135,231,190,252,251,252,230,255,245, 15,248,189, -127,242, 11, 44, 63,252,219,200,252, 44,221,225, 59,248,227, 62,227,131,107,244,182,222,102,180,243, 54, 73, 52,166, 57,119,134, -206,145, 39, 88,185,247,147,180,155, 39, 16,134, 75,156,142, 33, 25,147,167, 99,146, 34, 65, 19,130, 48, 74,145,254, 8,183, 37, - 24,132, 30, 34,211,240,215,218,216,149,125,198,187, 33,101, 89,193,210,116, 48, 12,178, 72, 98,215,199,152, 98, 10, 3,151,146, -148, 76, 59,128,196, 39,233, 30,160, 25, 58,154, 80,133, 19, 9,174,237, 40, 36,121, 81,144,229, 42,246,216,182,109,242, 36,157, - 56, 74, 84,161, 69, 67, 13,145,150, 69, 94,170, 76,118,169,196, 40, 72, 41, 40,100, 73, 94, 40,107,155,178,158,161,200,115,154, -138, 33, 85,170,122, 99,114, 27, 55,144, 18, 74, 89, 32, 21,250, 1, 77,215,208, 80,193, 77, 66,232,147,134, 70,229,146,255,173, - 0, 85,144,164, 9, 69, 89, 78, 44,103,106,139, 13,106,218,215, 52, 93, 21,225, 76,109,154,117,221,192, 48, 13, 44,211,192,180, -237, 73, 3,144,147, 77,116, 52,174,235, 16,248,170,113,213, 53,227,131,134, 64,137,201, 77,194, 64,157,221,234,245, 58, 26,154, -218, 64,219,206,228,255,223,165,240,133,200, 82, 53,235,166,165, 80,186,192, 7,193, 65,101, 81,160,207,175,172,124,221,118, 28, -100, 89, 2, 18, 77, 24,228,121, 78,158,229, 56,142,139,148, 82,101,170,203,156, 56, 80, 68, 28,219,182,217,142,117,190,112, 76, -231,218,246,152,249,169, 42,254,126,159,199, 87,235, 76, 47,116,208,164,228, 74, 31, 34,148, 87,208, 52, 76, 78,184, 49,213,138, - 73,106,187, 76,215, 13, 94, 95, 87,162,185,172, 80, 62,190,178, 80, 43,152, 36, 85, 84,179, 18,144, 66, 39, 75, 19,101,243,178, - 20,161, 71,215, 13,245,131,207,239, 50,168, 53, 37, 54, 50,149,242, 60, 47, 11,178, 52,166, 20,146, 34, 85, 34,191, 34, 77, 40, -100, 73, 24, 5,148, 69,134,208, 52,116, 20, 92,127,125,207,231,219, 87,125,124,105,242,212,153, 89,178, 50,103,119,103, 0,182, -193,244,202, 20,141,153, 6,133, 23, 50,218, 29,147,248, 41,211, 43, 83, 84,166,154,220,220, 25, 17,164, 25, 13, 91, 80,119, 77, -156,138, 69,197,182,212,246, 32,203,137,251, 35,226, 4, 6,101,134, 38, 75,116, 75, 50,242, 50, 70,158,199,112, 52,162, 82, 53, -240,199, 33,102,163, 74,165, 83, 99, 60,244,201,226,152,110, 63,160,145,197, 52,243,140,218, 84, 29,183,102, 81,198, 49,185,161, -115,103,167,207, 91,155, 1,155,195,152,147, 14,156, 63,183,197, 79, 94,187, 69,127,119,136, 39, 74,166,242,156, 63,251,254, 85, - 6,155, 35, 60, 47,226,212, 74,139,103, 62,121, 31,171, 79, 29, 67, 4, 37,201,122, 23,163,208,248,209,119,207, 83,244, 2, 76, - 75,163, 95,113, 56,247,211, 77,210,141, 46,245, 50,227, 96, 16,131, 99,171,160,133,161,207,212,161, 54, 69,156, 49,142, 82,144, - 16, 69, 25,134, 33,184,190, 61,160,234,152,104, 82, 50, 70,144,231, 25, 31,251,240, 41,174,158,187,136,239,212, 89,152,111,147, - 68, 17, 55,126,122,153,177,229,114, 97,237,128,135, 31, 59,205,153,185, 22,199, 78,206,177,124,255, 9,102,141,156,235, 91, 67, -210, 65, 68,144,151,244,187, 33,113,160,104,122,154,109, 81,107, 59,116, 26, 54,174, 16,120, 81,134, 68, 39,136, 82, 68, 81, 16, -106,170, 75, 46,139,132, 78,205,165, 82,183, 9,178, 28,111,109,143,197,108, 4,167, 62, 10,154,137, 22,189,206,249,255,227,155, - 44,124,241,211,136, 7,190,132,245,212, 23,120,240,133,179,124,178,161,177,190,182,131,159,230,204,184, 58, 29, 81, 82,205, 67, - 74, 4,141,218, 4,136, 36,117,132, 38,144, 69, 65, 86,228, 19, 37,109, 78, 81,228,184,149, 10,160, 44,112,165, 84,226,206,177, - 31, 50, 24,143,137,146,152, 90,165, 66,165,162,172,153, 97, 20, 50, 24,141,217,222,221, 39,140, 99,142, 29, 94, 38,140, 98,162, - 36,102,106,170,205, 67,247,157,230,185, 39, 31,231,145,251,239, 99,107,239,128,215,223, 61,207,237,141, 77,166, 59, 29,158,121, -252, 67, 60,120,223,105, 90,173, 6, 63,122,253,167,188,115,241, 18,247, 28, 61,194,115, 79,126,132, 71,206,158, 97,101, 81, 77, -197,215,111,221,230,251,175,190,201, 96, 60,198, 52, 77, 78, 30, 59, 74,187,221,226,218,173, 53, 78,158, 56,198,127,243, 11, 95, -225,171, 95,126,129,171,215,110,112,103,115,155,245,173, 45,110,222,217,224,240,161, 69,254,217,111,255, 38, 95,125,241, 11,148, -105, 14, 89,129, 38, 37,215,110,221,226,246,250, 38,151,111,220,226,250,237, 53, 0,154,245, 58, 31,121,248, 65,158,122,244, 67, - 12,125,143, 11, 87,174,225,123, 42, 29,235,190,147,247,240,196,135, 30,228,197, 79, 61, 15,154,248, 32, 21,238,210,245,219,188, -254,206,185,137,183,216, 85,216, 78, 83,217,128,154,141,154,178,241,221,186,195,198,246, 14,131,209,152,133,185, 89, 58,157, 54, - 65, 20,179,181,187, 75, 20, 39, 32,116, 66, 33, 72, 14,186,104, 89,132,209, 60,142, 86, 6,228,233,128, 44,141,137, 34,159, 34, - 29, 17,238, 95, 35,246,251,204, 44, 46,112,208,235, 18, 91, 18, 35,207,169,212,143,242,194, 47,254, 49,187,187,151,105,157,232, - 80, 95, 58, 68,216, 29,145, 39, 62,121, 22,145,250, 93,234, 13, 73,119,227, 10,195,253,107,164,209,136, 19,143,254, 18, 63,247, -123, 47,242,236,175, 60,196,199,191,242, 32,121,247, 44,183, 47,191, 69,111,253, 77,182,175,124,135,225,254, 85,138,168,228,210, - 79,255,119,178,224, 54,178,180, 65,183,240,189, 33, 73,156,147, 21,106,245, 91,173, 85, 17,186,198,104, 52,166,226, 24,232,166, -134,109, 25,120,253, 46, 73, 18, 17,199, 41,163,209, 46, 69,154, 32,101,134, 83,169,160,107, 26,190,231, 83,150, 32,144,104,134, -114,224,136, 76, 16, 12,239,144, 37, 30, 97,175,203,225,211,159,227,211, 95,253,167, 20, 35,104,175,130,223,134, 67,206, 49,174, - 92,188, 68,111,251, 45,226,104, 31,175,123, 29,127,112,155,250,236, 9,102, 15, 61,138,237,180, 8,134,123,244,187, 23, 8, 70, -183, 72,199, 7,228, 69,136, 46, 82,226, 36, 32,139,199,100,177, 79, 20,244,168, 84, 11, 6,131,144,188,240,240,182, 60,178,112, -131, 44, 2,221,106, 82, 0,162,132,178,204, 8, 6, 61,154,171, 2,173,152, 35, 75,125, 34,185,133,136, 67, 68, 48, 34, 73, 19, - 28,219, 37,142,212, 68,154,164,202,226,230, 86,149,239, 59, 12, 67, 52, 77,113, 16,202,178,192,243, 60, 60,207,131,178, 68,232, - 10,213,166, 9,129,134,178, 59,234,134, 65, 57, 33,187,149, 37,228,185,162,127,102, 89,174,138, 54, 32,229,196, 90,154, 42,180, -121,158,151,164,105, 70,158, 23,228,185, 66, 39,167,169, 90,115,167,105,142,161, 41, 13, 22,168,252,242,178, 84,144,175, 44, 83, - 81,169,150,169, 10,110,165, 86, 67,215,197,132,249,174, 54, 1, 69, 41, 49,116,161, 82, 15, 45, 53,105, 43,135, 67, 73,153,103, -184, 78, 5,219,177,112, 28, 7, 74,229, 52, 65,211,208,144, 19,253,136,114,213, 24,154,129,166, 43,197,187, 97,168,116, 54, 67, - 40, 7, 75,197,117,201, 10, 5,206, 17, 66,213, 66,197,208, 80, 65, 95,213, 90,131, 44, 75,112, 39,140, 23, 67, 2,134,105,226, - 58, 46, 57, 37,102, 81, 78, 10,188,192, 15, 2,106,213, 42,194,210, 16,165, 64,119,117, 60,223, 35,207,114, 46,237, 21,120, 39, - 26, 52,221, 1,222,238,144, 71, 30, 56,130,183,191, 71,253,244, 49,204,170,206,175, 62, 82,227,127,122,105,196, 48, 41,144, 6, - 68, 82,103,144,150,184, 54, 44,212, 20,134, 47,207, 85,180,168,242,162, 23,164, 89, 73, 24,250,140,199, 30,154,174, 81,173, 86, -177, 28,149,249, 29,140,199,220,141,197, 44,203,146, 82,149,125,242, 60, 39, 41, 37, 50,138, 0,129,101, 89, 32,149, 13,161, 40, -115,100, 33, 85,179,146, 40,111, 56,154,160,234, 58, 0, 20,121, 65,106, 91,164,105,204, 27,251,112,237, 71, 49,159, 57, 82,229, -211,103, 58,172,175,239,113,123, 99, 68,167, 97,211,153,233, 96,152, 54,221,173, 17,149,237, 62,237, 67, 83,180,170, 46,145, 31, - 81, 17,130, 44,136, 41,100, 78,156, 65, 81, 66,221, 49, 41,132, 78, 82,100,108,238,121, 28, 94,104, 35, 76,141, 66, 43,241,163, -128, 78,179, 74, 41,116,220,233, 38, 82,147,148, 69,142, 81,209, 17,169,202,124,239,231,146,150,107, 82,213, 74,250,221, 49,190, -132,162, 98, 96, 69, 5,117, 77,195, 74, 18,190,245,195, 27, 8, 89, 80,113, 29,244,154,197, 65, 40,121,233,181,219, 84,130,152, - 76, 55, 40,220, 10, 75,167,151, 16, 83, 14,189, 55,110,243,202, 79, 55, 72,210,156,168,225,208, 26,248,180,108, 21,247,186,221, - 75, 88, 24,141,232, 88, 58,251,185,192,148,202, 69,160,233, 58,153, 97,224,216, 22,221, 94,128,110,185,168,173,125,137,227, 24, -136,168, 32,117, 93,202,241,152,147,182,132, 48,230,245,181, 61, 62,253,165, 79,241,159, 94, 57,207, 67,103, 14,227, 11,131,113, -161,241,233,255,242, 5,254,228,247,191,193,171, 23,183,120,225, 83, 31, 66, 72,137,220,223, 99,107,119,140, 63,140,153,153,111, -208,104, 85, 57,216, 29, 97,153, 38,195,184,224,212,170,203,246,251, 59,232, 53,139,123, 31, 92, 66, 20, 26,253,222,152, 52, 47, - 25,237,122, 10,219, 91,171,178,237,123, 20,150,201,120,127,196,122,162,172, 39,143, 20, 33, 34,185,138, 52,102,144,175, 95, 96, -237,202, 22,103,175, 13,144, 79,157, 70, 24, 77,164,251, 16,226,203, 53,126,233,200, 20, 63,252,247, 47,113,241,122, 23,199,200, -200, 42, 58,149, 97, 72, 63, 78,168,219, 46, 58, 25,253,220, 64,104, 58,182, 1,210, 84, 55,188, 52, 43, 25,141, 60, 58,173, 6, -165, 4, 81, 22, 20, 66, 0,106,162,200,114,157, 40, 73,232, 15,199,148,185,234,242, 43,142,133, 62,213,230,232,202, 33,142,173, - 30,230,175, 94,122, 5,128, 99, 43,203,124,236,209, 15,113,234,196, 49,202, 66,242,147,183,222,230,214,198, 6, 0,171,135, 22, -169, 84, 42,236, 29, 28,176,185,187,207,159,124,251, 47, 57,122,120,153,207,127,226, 89, 78, 30, 63,202,202,226, 60, 97, 20,211, - 31,142, 57,119,233, 42,107, 27,155, 88,150,197, 35,247,159,166,217,168,243,250,219,231, 89,152,157,225,103, 63,249, 44,159,255, -196, 51, 12,119,247,185,112,249, 26,123,251, 7,120, 81,204,195,247,157,230, 75,159,253, 20, 47,126,230,121,132,174, 83,166,202, - 98,227,135, 33, 81,156,176,187,223, 85, 74,225,201,199,116,167, 69,156,198, 8, 93,176,190,185, 77,163, 86,227,228,241,227,236, -247,187,152,186,206,226,220, 44, 67,127,140,208,116,198,190,207,214,222, 1,239,189,127,233,131, 88,215, 32,140,168,215,170, 76, -181,219, 44,205,205, 80,115, 29,182,247,186,244,199, 99,110,175,111, 80,173,184,180, 26, 13,246, 15,122, 56,182, 42,252, 85,215, - 1,203, 98, 99,111, 64,158, 69,180, 78, 30,103,230,208, 71,177,153, 98,253,253,127, 67, 52,186, 65,146, 22,132,227, 62,121, 89, -178,124,250,115, 84,235, 45,130,225, 55, 72,210, 6,166,158,178,250,212,175,115,244,239, 9,222,121,231, 20,251,201, 62, 78,189, -198,189,159,253, 2, 87,254,244, 63,144,101, 17,195,222, 38, 92, 53,104, 77,205, 97,102, 33, 65, 82, 80, 90, 29,178,169,140,170, - 12, 57, 35, 42, 92,122,222,196,120,165,134,231,175, 19,141,118,176, 43,211,156,122,228,215,184,169,213,185,241,222, 31,115,230, -153,255, 2,167, 58,205,141,183,254,144, 40, 30,146, 23, 46, 66, 40,225,146, 97, 25,212,106, 21,108, 75, 71,228,146, 60,151,212, -107, 53,134, 35, 15,199, 54,208,169,128,102,145,197, 17,161,239, 97,187, 85, 74,169,161, 91, 6,134, 6, 21,199,161, 36,167, 72, - 50,138, 82,146,164, 5,102,109,134, 7, 62,254,247, 89,191,147,178,181,105,114,241, 85, 65,150,198, 4,209, 85,252, 96,143,254, -157, 31,163,145, 19,197, 30,102,117, 14, 74,131,193,206, 57,208, 13,202,188, 36, 13,251, 68,209, 1, 50, 79,112, 43, 85, 74, 97, - 80,228, 35, 10,125,164,222,255, 34,167,162, 57, 56,142,134, 63, 24,224,104, 17,123, 63,189,129,125,104,150,165,206, 17,162, 72, - 0, 9,121, 18,146, 38, 9,131,219,151,233, 44,156, 34,246,199, 36, 86, 68, 11, 65,130,160,200, 36,165,165,208,214, 89,154, 41, -248, 74,213, 69, 74, 65,152, 69, 56,150, 74, 74, 43,178,156,161, 55, 84,194,213, 82,145, 72,117,223,167, 86,171, 98,219, 14,134, -105,226,104, 6,165,204,209, 52, 73,158, 42,231, 70,153, 43,114,155,101,169, 13,111,158, 38, 36,153,164, 90,173, 1,234,253,170, - 9, 40, 75, 0, 57,217,208, 40,186, 91,148, 36,184,147, 65, 44, 77, 99,116,221, 32,207, 21,200, 69, 8,129,169,171,216,112,203, -208,208, 52, 3,128, 52, 43, 73,100,138,107,155, 68,147,162,138,166, 97,152,146, 56, 84, 40, 91, 77,131, 92, 66,181,226,226, 5, - 62,150,105,226, 56, 14, 97, 24, 32, 75,168,214, 92,202, 82,113, 43, 12, 93,167,200,115,188,201,196,109,234, 58,225,228,253,146, - 20, 49,186,174,166,121, 83, 55, 24,141,198, 72,160, 81,107,144, 21,202, 98,234, 86,106, 72, 89, 82, 20,146, 32,136,148,103,125, -241,240,225,175,151,101,169,216,236,121, 73,145, 42,114, 13,154, 90, 47,198, 81, 68, 26,197,234,182,145, 43,248, 73,156,196, 36, -113,204,133,177,193, 11,167,234, 92,223,232, 50, 85,177,121,236,193,163, 92,127,245, 45, 22, 31, 57,205,146, 9, 81,154,113,117, -164, 99, 11,248,204,124,204,238,182,207,176,144,216,134,198,251, 97, 93, 37,146, 25, 10,145,154,102, 41,134,101,225,218, 54,201, -196, 74, 99,219, 14, 97, 28, 77,190, 73, 37,128, 51, 52,109,178, 94,209,208, 13, 37,104, 80,221, 21, 8,161, 97,232, 26,134, 97, -160, 27,218, 7, 47,166, 99, 43,191,123,165, 82,193,182, 76,242, 44, 67, 72,197,224, 46,242,140,138,171,186,227, 36, 45,120,111, - 55,229,135,155,146,138,107,112,246,136, 75,146, 73,182,246, 61, 12, 67, 99,102,182, 73,123,177, 73,212,247,104, 38, 9, 53, 71, - 67, 68, 25,113,152, 82,100,146,221, 32, 37, 13, 34, 74, 93,167, 90,181,209,117,131,153, 86,133,154,173,225,186, 14,162, 40,168, -213,212,138,102,184, 55,100,148,230,100,210,192, 21,106,141, 35,100,161,114,235,115,137, 38, 5,169,148, 56,186,142, 35,115, 60, -215,198, 74, 50,156, 60,167, 76, 11,218,115,117, 62,250,225, 21,110,247, 85, 80,142, 22, 5,180,211,152,214,124,135,143,125,254, - 33,156,162, 64,248, 17, 87,126,186,206,133,247,182,176, 76,157,170, 44,105, 70, 41,109, 87, 99, 92,104, 28, 62,185, 64, 49, 14, - 49,146,132,113, 86,160,139,146,220, 50, 97,228,179, 61, 8,201, 36, 20,125,143,250, 84,147,222, 40,196,180, 13,116,205, 68,215, -193, 15, 18, 42, 89,130,158, 36,236, 7, 5, 50,202,240,227,156, 99,247,204, 19,103, 37,237, 86,149, 97,152,241,167, 63,188,202, -126, 16,179,229,229, 88,105,128,214,238,240, 87, 63,186,192,189,179, 21,218, 71,150,184,190,209,195, 49, 13,206,221,220,163,229, - 86,240,227, 8, 27,112,171, 14, 32,217,217, 15,209, 77,131,205,245, 33,155, 7, 35,102, 90, 14,129, 31, 18, 21,130, 76,104,244, -198, 49,227,177,143, 7, 44,206,212,177, 50, 73, 25,140,152,126,226, 48,232,109, 56,246, 12,237,141,119,248,241,203,239,176,228, - 93,193, 60,162,163,229,219,176,127, 17, 49,244, 89,125,238, 97, 30,251,149,231, 57, 43,116,246,182,246, 9,163,152,134, 13,165, - 48,153,157,238, 32,202,148, 40, 43,136, 11,165,212,189,203, 78, 7,197, 77,215, 13,117,119,215,117, 29,161, 43, 48,132, 40, 21, - 37, 48, 12,194,137,216, 78,195,212,117, 6, 99,159,191,243,149, 47,210,110,214,185,120,245, 58, 97, 28,243,169,143, 61,205,145, -213, 37,242,188,100,107,127,159, 55,223,125,143,237,221, 61, 6,227, 49,135,151,150,152,238, 52, 89, 61,180,196,230,246, 46,183, -214, 55,120,244,161, 7,104, 84, 43, 72, 36,157, 70,147,173,221, 61,222, 58,127,129, 87,223, 57,135,231, 7, 28, 59,188,204,220, -204, 52,227,177,199, 65,111,192,223,249,202, 11,188,248,153,231,153,157,157,229,173,115,239,177,185,179,195,119, 95,250, 9, 81, - 28,115,108,245, 48,207, 62,241, 24, 71,151,151, 41,139,130, 96,228,145,229, 57,221, 94,159, 91, 27, 91, 28,244,250,172,109,109, -211,157,100,160, 47,204,206, 43, 2, 62, 94, 0, 0, 32, 0, 73, 68, 65, 84,242,232,217,251, 88,154,155, 83,223,167,128,183, 47, - 94,130, 18,230,102,166,112, 93,135, 70,181, 78, 20, 70, 12,189, 49,175,253,244, 28,223,123,237, 53,144,138,151,191, 52, 63,199, -253, 39, 79,112,255,201,123, 89, 89, 90,156,224,162, 75,188, 32,100,107,119,143,195, 75,139, 76,181, 90,104,186, 18, 39,105, 66, - 61,131,210, 52,102,125,171,139, 33, 37,179, 15, 63, 72,167,241, 8,199, 87,159,166, 54,253, 73,110,223,252, 46,197,240, 54, 78, -115,150,179,207,253,207,172, 44, 63,135,219, 58,202,213,119,255, 12, 67,198,248,113, 76,163,174,113,251, 37,155,178, 16,164,189, - 46, 73,209, 3, 93,167, 98, 46,210,223,126, 31,205,118, 72,194, 49,131,131, 77,114, 89, 99,113,229, 56, 26, 41,214,246, 51,156, -251, 27,155,239,252,233,144,183,191,241,231, 92,121,243, 95,147,120,123, 80,166,204, 28,122,140,163,247,127,142,207,127,237,107, - 44,172,126, 1,187,185,160, 20,250,211,139, 10,205, 26,121,128, 64,163, 36, 8,122,196,193,136,192,143,105,117,166,200,210,148, -253,238,144, 40, 14,201,147, 20,219,210, 40, 53,157, 52, 11, 41, 10, 73,197,173, 81,115, 13,116,129, 2,166,136,130, 66,104,100, - 73,140, 31,133, 20, 69,129, 91,169, 49,183,250, 56,126,111,155,200,223, 97, 28,222,164, 31,190, 71,175,119,139,112,188, 70,165, -115, 31,213,246, 41, 78,156,253, 42, 31,254,244, 31,225, 56, 14,221,221,183,240,246, 46,144, 4,251,228,193, 30,101,188, 15,153, -143,208, 93, 52,189,128, 34, 34, 9,123, 20,201,128, 44,244, 41, 40, 89, 88,153,103,103,111, 15,167,217,164,109, 88, 88, 75, 77, -234,167,230,200,246, 44,138, 44,166,200, 60,210,168, 71,153,239,209,158, 62,198,120,208,163, 48,134,212, 69,138,215, 61, 64, 22, - 57,113,170, 6, 46, 89, 74,220,138,139,105,152, 4, 97, 64, 89, 22, 8, 77,128,166,232,142, 97, 16, 97,234, 38, 73,166,182,130, -160, 72,131,105,154, 98,232, 38,166,101, 18,199, 10, 33,156,101,249,100, 74,151,100,133, 36,207, 75,116, 3,116, 67,167,204, 75, -202,162, 32, 77, 84,236,178,242,130,231,232, 19,189, 66, 65, 1, 37, 24,134, 58,129,100,105, 65, 81, 78,236,159,165,130,224, 24, -186, 65,150, 41, 0,140, 68, 96,217, 22, 81, 28, 65, 89, 78, 28, 47, 74, 80,235, 88, 10, 44, 21, 69, 33, 69, 89,168,128, 45,211, - 84, 2, 64,169,134, 78, 41, 5, 81, 18,227,186, 46,182, 99,147, 23, 5, 81, 24, 33, 4, 84,220, 10, 89, 81, 82,173, 84, 20, 46, -183, 90,197,182,108, 10, 10, 69,192, 43, 10, 5,194, 41, 75,132,208,201,178,148, 40,142, 84, 82,156,105,169, 51,130,174, 77,156, - 46, 10,208,163,207,175,172,124,221,152,172,175, 45, 91,125, 65,134,161, 83,202,146, 50, 83, 64, 20,203, 54,213, 93, 66, 64,146, -198,232,154, 32,205, 10,162,180,100, 39,145,124,229,254, 38,111, 93,217,195,110,205,242,192, 35, 15, 19,159,127, 7,115,182,205, -153,195, 13,186,113,201, 49, 57, 98, 78, 87,247,176,131, 97, 68,173, 94,225, 39,219, 37, 73,150,161, 25, 26,119,209,148,174,237, - 18,196, 49,245,122,157, 44,203, 20,245, 71, 87, 42,247, 40, 82, 29,161,162,237, 40, 46,119, 18, 39,148,148, 40, 72,141, 18, 68, - 68,161, 2,183, 40,241,130, 84, 91, 7, 9,154,174, 79,196, 11, 42,194, 47, 75, 51, 76,211, 32,138, 35,229, 3,212, 53,132, 6, -186,174,211,239, 15, 57,183, 21,240,198, 70, 76,195,209, 56,181,210,160,148, 18,111, 24, 33,179, 18,167,221,192,157,107, 82, 38, - 25, 65,146,179,114,118, 21, 89, 22,108,237,140,209, 12,157,186,161, 97,186, 58, 69,150,163, 9, 69, 1,210,116,129,174, 43, 49, - 71,150,166,164,189, 17, 46,130, 86,167, 70,187,209, 84,185,227, 21, 3, 97, 27,148, 65, 66, 75, 47, 16, 89, 78, 32, 53,136, 83, - 42, 81, 70, 67,148, 52, 22, 58,196,227,152,177,161,177, 63, 8,177,135, 62,179,173, 58,233, 40, 96, 84,171,177,122,124,158, 27, -239,222,225,234,141, 62,155,219,125,252,113, 68,211,212,105, 76,213, 40,210,148,217,154, 77, 92,106, 60,247,226,163,152, 81,194, -214,206, 24, 89, 72, 66, 77,167, 51,221,160, 49,213, 32,139, 83, 74,199,160,165,149,152, 53,151, 60,205,240,125,149, 26,148, 38, - 25, 1, 58, 69,156, 83,198, 49, 34, 7,199, 54, 40,114, 69,101, 10, 10,201,153,229, 41, 54,250, 30, 39,142,204,243, 31,127,240, - 62,165, 31,240,234, 0,158,104,230,124,227,202,136, 63,125,233, 58,231,111,239, 67,150,114,122,105,138,235,251, 62,253,131,144, -212,210,249,240,233, 89, 66, 9,241, 56,197,172, 91, 68,185, 34,162,137, 40,161, 86,183, 25,120, 9,139,179, 29,110,239,244,232, -102,153,114, 81,196, 57,135,107, 14, 85, 91, 71, 23,202, 59,190, 82,152,112,246, 5, 48,103,112,179,219,124,255, 47, 95, 98,111, -123,139,242,220, 5,166,155, 6,218, 92, 29,217,106, 35,151,159,135,169, 23, 49, 30,126,140,211,143,154, 44,140, 60, 94,185,176, - 13, 82, 61,112, 98, 97, 98,139,146,172, 4,169,169, 27,157, 16, 66, 5, 32,153, 38, 66, 66, 41, 4,119,185,206,186,161,131, 44, - 63,128,253,100,121,142, 44, 11,229, 29,215,117,190,242,185, 79,177,223, 31,176,182,177,197,200,243, 89, 89,156,167,226,186, 56, -150,137,169, 27,116, 7, 3,206, 95,185,138,231, 7,156, 58,126,132, 99,135, 87, 40,100,201, 59, 23, 47,177,182,181,131,134, 96, -186,211, 97, 97,118, 22,195,212,185,112,249, 26,239, 93,190,202,165,107, 55,152,233,116,120,226,225,135, 56,177,186,204, 96, 56, -102,175,215,103,122,106, 74,165,183, 9, 65,152,196, 92,188,118,147,191,121,229, 85, 22,103,166,121,242, 67, 15,243,200,253,103, -176, 77,147, 60, 75,241,130,128,131, 94,143,119, 47, 95,229,252,197,203,188,113,254, 2,151,175,223, 4,212,234,253,212,241, 99, -172, 44, 45, 48, 61,221, 33, 78, 98, 46, 95,191, 69,127, 48, 2, 77,112,124,117,133,123,142,172, 18,133, 17,165, 44, 73,178,148, -243,151,174,114,237,214, 26,134, 97,176, 52, 55,195,253, 39,239,225,241,135, 31,160,217,168, 3, 16, 37, 9, 23,175,222,224,237, -139, 23, 25, 12,199, 44,206,207,177,178,184,192,242,194, 44, 83,237,214,100,155, 87,144,164, 49, 70, 9,113, 94,208, 62,178,130, -223,215, 25,141, 35, 44,167,129,211, 58,134,217, 92,165, 61,191,140,102, 86, 8,253, 29, 6, 7,215,208, 76,139,131,205,243, 74, -183, 35, 35,242,112,147, 48,142, 17, 82, 16,123, 99, 10, 25, 48, 55,255, 17,100,153, 49,222,187,137, 20,106,181,153,197, 93,122, -221, 3,218,173, 6,123,189,155,236,239,189, 71,232, 93,197,247,175, 67,153,227, 52, 23,153, 95,125,134, 74,179, 69, 22,251,108, - 94, 31, 83, 10,141,192,223, 97,116,112,157, 32,220,167, 94,159, 34,242,246,128,146,214,212, 20,149,198, 17, 21,249, 90,230, 56, -141, 54,181, 90,133, 50, 47, 16, 18,208, 4, 73, 28,169,172,241, 66,137,190,164,156, 48,192,213,120, 73,152,230,100,113,200, 96, -239, 6,199, 79,126, 22,127,212,195,114, 90, 88,110,141, 40,241,241, 71,119, 24, 13,214,136,198,187, 68,222, 38,131,173,119,248, -200,199,255, 7,254,249,191,255,101,126,241,171, 15,208,124, 72,199,202,142,145,228, 45,250,219,231, 9, 14,174, 16, 39, 62, 70, -117,129,250,252,131, 88,118,139, 60, 26, 32,147, 0, 10, 21,244, 83,202,130, 82, 26, 28, 62,115,156,106,179, 73,183, 55,164,181, - 60,199,195,207,126,150,234,116,131, 97,116,157,188,171, 86,212, 69,234, 1, 3,166,206, 30, 33, 58, 72,176, 58, 48, 85,119,241, -118,182, 0,137,166, 25,228, 89,170, 38,110,195, 64,215, 84,242,164, 46, 52,194, 88, 41,221,227, 9,253, 48, 47,114, 28,219, 70, -104, 2,215,117, 85,140,105,166,168,166,142,235, 98, 77,124,228, 66,211,144,133, 36,201, 21,144,198, 52,116, 74, 32, 12, 19,242, - 92, 1,212,114,169, 82, 42,243, 34,195,182, 29,178, 68,161,133,245, 73,141, 51,116,147,178,148,104,134,174,116,100,150,242,199, - 35, 85, 83,158,231,185, 26, 54, 77,229, 0, 19, 66,168,207, 33,139,191,109, 42, 16,147,196,209,187,209,204,242,131,149,122,158, - 37,216,142, 67, 28, 71, 88,166, 73,154, 42, 34,165,156,232, 9, 12, 67,159,128,194, 20,214,185,148, 37,182,107,131, 80, 44,121, -211,212,209,132, 10,181,169,184, 85, 12, 83, 21,245,187, 25, 31, 73,146,146,101, 74, 41,159, 68, 9,105,146, 98, 24, 38,250,204, -220,252,215,179, 92, 25,253,165,212, 64, 83,177,154,138,126,164, 34,240,148,186, 87,146, 37,234,222, 41, 75,197,189,205,178,140, - 59,221,152,216,173,242,185, 51, 83,188,250,246,251, 76,223,115, 63,115,191,252,243,100,223,250, 22, 86,219,225,241,165,130, 86, -127,159, 11, 7, 41,155, 82,195, 45, 5,238,194, 28, 23,122, 74, 49,108,232, 42,156, 68, 22,138,137, 45,165, 98,228, 10, 29, 52, -161, 51,246,198,148, 40, 95, 99, 89, 42,144,135,109,219,232, 66, 82,160, 40, 61,134,166,136, 81, 97, 24, 42,243,191, 16,196,113, - 68, 18, 79,136,108,113, 76,146,168, 41,171,152,176,118,243, 76, 33,102, 85, 23,151, 80,228, 25,113, 20,147, 36, 41,134,174, 17, -197, 49,195,168,228,124, 79,240,234,122,200, 82,199,224,244,225, 38,227, 32,103,212, 27, 49, 28,134,172, 30,159,199,170, 87,201, - 2, 31,167, 89, 33, 49, 45, 42, 81, 76,141, 12,162, 84,169, 42,145, 80, 20, 36, 72,100, 57, 65,137,238,141,137,117, 3,203,128, -220,177,216, 57,240,209, 76,129,174,149,228, 73,137,149,169,168,200,220,182,233, 44,116, 16,162,196,201, 83,146, 66,224,182, 92, -136, 67,138, 18,202, 56,101,170,213,192,172,219,136, 52, 97, 24,196,236,245,125,140,145,207,220,145, 89, 42, 6,148, 97, 74,197, -210, 9,187, 62, 86, 41,137,163,148,176, 98,179,183, 61,224,230,173,125,166,230, 26,148, 89,134,149,229,164,104,140,178,156,134, -173,209,234, 52, 40,188,132, 94, 34, 41,243, 18,167, 98,146,249, 49, 90, 89,146, 70, 57, 38, 57, 83,157, 26,113, 92,112,223,131, -135,104,205,182,200,179,146,141,110,200,242, 66,147, 40,136,232, 44,206,211, 31, 70,228,227, 17,233,212, 20,121,148,242,171, 31, - 59, 74, 44, 37, 87,247, 2,222,189,227,113,223, 61,179,124,230,153,251,136, 19, 21, 96,242,209, 7, 79, 16, 69, 1,123,153,164, -106,219,172,111,123,120, 89,198,201, 51,139,172, 44,182,216,220, 28, 98, 86,109, 74, 83, 39, 74, 80, 10, 84, 29, 22,230,235,212, - 27, 85, 66, 63,229,122, 47,228,242,245, 59,136,203, 63,100, 78, 95, 67, 27, 5,116,187, 67, 60, 63, 98,225,216, 97,230,190,242, -187,200,230,211, 8,221, 71,216,171,106, 37, 47,115, 68,239, 28,115, 71, 90,204,151, 57,127,245,238, 38,142, 14,126,146, 35,117, -147,186,169,145,100, 5, 97, 86, 82, 76,238,235,154, 38,208, 12,181, 61,146,147, 14, 63,138, 18,198,129,106, 64,213,184, 33,105, - 53,155, 88,134,133, 99,219, 60,251,145,199,232, 15,250,220,217,218, 97,107,119,143,118,179,201,195,103,238,165, 81,171, 83, 20, - 5,155, 59, 59,188,119,249, 26, 21,215,225, 11,207, 63,199,177,213,101,182,118,246,248,206, 15, 94,102,118,106,138,135,238, 63, - 69,179,209,192, 52, 12, 46, 93,191,201, 91,231, 47,114,254,210, 21,146, 44,231,241,135, 30,228,200,225, 37, 92,199,225,149,159, -190, 75,127, 52,226,248,202, 33, 26,245, 58, 51, 83,109, 76,221, 96,107,119,159,107,183,110,163, 27, 58, 71, 86,150,105, 53,234, - 20,101, 73,148, 36, 12,189, 17,123,253, 17,183,214, 55,184,112,249, 58, 55,215,215,255, 86,136, 99,155,156,190,231, 4,103, 79, -223,139,134, 80,105,109, 81,196,238,126, 23,144, 28, 62,180,136, 99,219,116,123, 3,188, 40, 34,142, 82,138, 60,103, 56,246,144, - 64,179, 86,165,211,106,225, 5, 62,227,113,128,101,153,120,126,192,112,236,177,179,127,128,101, 90,124,245,243,159,226,158,163, - 71, 38,211, 75,129,161,235, 84, 43, 46,243,211,211, 44,174,204,179, 95, 74,242, 56, 69,147, 14,163,209, 1,253,221,247, 9,250, -183, 17, 2,170, 85,157, 36, 76, 39,246,165, 0, 77,151,140,187,107,200, 44,198,243, 99, 90, 21, 24,247,175, 51,246,122, 36,195, - 29,138, 72,167, 53,117,150,217,163,143, 33, 12, 23,239,224,186, 42, 14,166, 69,153,134, 12,246,239, 80,119, 11,146,254, 13,250, - 7, 55, 73,188, 93,210,120, 72,115,250, 52,135,207,254, 28,173, 70,157,122,245, 30,188, 96,135,238,222, 69,250,187, 87,145, 2, - 92,183, 67, 99,230, 36, 81,184,207, 96,255,125,210, 84, 35, 11,183,177,234, 54,245, 90, 7,215,118,176, 76,147,146,130,178,200, -201,115,181,190,157,157,153, 35, 43, 84,212,178,105,233, 96,187, 20,152,200, 34, 39,139, 66, 50,127,192,115,255,223, 43,188,242, -123,127,151,223,248,239,127,157,133,175,253, 42,231,254,230, 10,195,189,243,100,105, 64, 26, 13,137,227, 46,201,112,141,188,200, - 57,243,196,239,176,190, 6,239,190,172,241,198,127, 30,178,181,126,157, 56, 31, 35, 52,147,153,195, 31,227,232,233, 47,115,226, -204,215, 88, 60,242,113,164, 81, 33, 47, 33,142,135, 20,105, 76, 81, 36,232,118, 3,221,157,161, 76,107,172,158, 93, 37,244, 6, - 4,113,130, 62,154,193, 10,230,209,228, 26,221,205, 62,154,168, 80,150, 1,165,223,227,228, 19,247,225, 46,206, 50, 61, 55, 79, -103,169, 67,247,198,117,242, 44, 70,161,150,133,194,127, 27, 6,119, 99,131, 77,203, 66,232, 42, 31,193, 50, 21, 64,171, 82,169, - 98,154,198,228, 30, 94,160, 11, 21,196, 34,132,186, 91,235, 19, 5,186,148, 74,225,110, 91, 54, 69, 81, 80,169, 85, 17, 2,164, - 4,203, 50,201,243, 84,121,220, 75, 64,104, 68, 81, 72, 94,228,148,148, 36, 81, 76, 18, 39, 8, 33,209,181, 9,134, 91, 83,110, - 23,195, 52,209, 53,161,128, 51,166,161,224,107, 5,138,222, 55, 1,216, 84,171, 21, 21, 58, 99, 90,228, 69,134,105,216,216,150, - 73, 16,133,216,182, 69,156,164, 84,171, 46, 72,141, 40, 81,241,187,101,145, 35,180,137,179, 70, 51,201,178, 76, 5, 48,153,198, - 7, 91,169, 60, 87, 2, 90, 74, 37, 44, 76,178, 12,132, 34, 98,218,142,173, 78,205,233,132,128,169,169,228, 68, 77, 8,132, 80, -167, 26, 33,116,178, 60, 67,159, 93, 90,252,186,242,126, 22,228, 64, 20, 40,198,117,146,196, 20, 82,117, 16, 89,145,145,165,138, - 88, 85,113, 93,234,141,186,130,236,107,170,219, 90,239, 23,180,166,106,124,249,193, 89,190,253,221, 31,179,251,230, 5,106,211, - 11,108,188,126,142,205,219, 93,222,237,195,126,152,112,250,232, 52,159,127,234, 8,191,255,230,128,157,177,178, 38,196,113,140, -227, 42,219, 92,146,166,104, 2,245, 67, 43, 74,130, 40, 84,136, 90,211, 80, 54, 1, 38, 5, 95,168, 85,142, 20,146, 52, 78,136, -146,152, 36, 86,183,191, 44,203,112, 92, 21, 60, 47, 52, 53,157, 27,154,166,136, 68,226,110, 18,151,196,180, 45, 12,161, 41,118, -175, 0,211, 50, 48, 12, 91,137, 87, 18,213, 53, 54, 26, 53, 76,195,100,156,148, 92,232,155,156, 59, 40,145, 90,193,153,195, 77, -154,245, 10,187,187, 30,105,156, 96,235, 58,113,119, 76,255,192,195,208, 5, 83,135,103,145,182,131,191, 55, 38,237, 7, 20, 18, - 8, 19,110,245,149,122,210, 17, 26, 39, 31, 88, 97,127,163,199,214, 80, 5,134,212,234, 6,101, 20, 19,247, 35, 52, 93,144,149, - 80,100, 5,134,101, 80,140, 35,202, 66,195,154,170,162, 89, 22,222,254,136,206,124,155, 34, 76,145, 21,245,218,148,163,128, 74, -195,165,110,234,200, 36,195,172, 59,164, 94,132, 85, 22, 56, 83,117,226,170, 67, 90,148, 96, 27,180, 91, 53, 85,111,226,140, 59, -227,148,118,205, 98,234,240, 12,253, 59,125, 66, 63,161,217,170, 18, 75, 73,179,238,114,115,115,132, 87,192,234,242, 20,254, 40, - 38, 19, 18,163,148,104, 18, 44, 67,167,247,255, 51,245,166,177,114,165,249,121,223,239, 61,251,169, 58, 85,117,247,253,242,114, -105,146,205,102, 55,123,157,238,158,158,105,181,102,145,108, 45,176, 70,138, 44, 89, 89,164, 36, 16, 18,197, 1, 98, 97,236, 36, -112, 0, 1, 3, 4, 2,146,248, 75,228, 5, 48,178, 32, 49, 98, 59,142, 37, 56,146,162, 25, 89,138,198, 35,207,140,122, 52, 61, -189, 76, 55,201,238,230, 78,222,253,222,218,171,206,250,158,247,188, 39, 31,222, 34, 39,245,137, 32,200, 91,203, 61,117,222,255, -242, 60,191, 39, 46,136,167, 5,169,170,152,228,154,211,222, 4,207,243, 57,191,214, 34, 78, 18, 46, 60,181,206,238,245,123, 76, -114,201,159,159, 42,134,143, 78,120,106,115,142, 71,227,156,127,249, 95,255, 21,126,231, 15,111,240,197,151,206,176,182,214,225, -249,203,235, 70, 69, 61, 76,217, 89,108,240,209,225,148,162, 44,113,202, 26,225,186,108,175, 68, 28,199, 5,227,188, 98,216,157, - 18,117, 26,172,174,180,144,177, 34,176, 5, 69, 44,177, 34,159, 65, 42,177, 43, 69, 36, 10, 30,125,242, 9, 39,123, 7,212,158, -205,134,208, 44,183,230,104,189,241, 69,176, 59, 80, 13,168,179, 79,169,117,129,136,191, 11, 15,238,194, 36, 97,243,234, 38,163, -189, 1, 31,239, 15,169,180,166,233, 59,224,122, 4,174, 67, 81, 41,210,162, 66, 88, 53,117,101, 38, 59,198,111, 94, 27,197,173, - 99, 84,190,105,158, 27,177,140, 54, 88, 76,207, 53,215,217,179, 87, 46,177,182,178,194,116, 50,229,225,193, 33, 43,139, 11,172, -175, 44, 19,134, 1,211, 52,229,207,254,226, 47,185,251,104, 15,219,178,185,242,212,121,124,215,229,143,190,249,231, 12,198, 99, - 46,156,217, 98,121,113,145, 70,224,115,102,115,131,254,112,200,222,193, 33,131,241,132, 48,240,121,246,210, 5, 58,173, 54,133, -148,220,123,184,203,100, 58,165, 17,132,180,162, 38,173,168,193, 52, 73,184,121,251, 14, 31,223,189,207,202,226, 34, 27,203, 75, - 56,174,137,151,140,179,140,209,120,194,163,253, 67,134,163, 17, 90,107,210, 60,167, 55, 24,114,102,107,131, 47,190,241, 58, 23, -206,158, 97,174,221,162, 63, 30,177,119,120,200,225,113,151,113,156,224, 56, 46,235, 75,243,180,162, 8,207, 53, 55,172, 7,251, -251,188,251,209, 13, 30,238, 30,144,203,130, 82,105,243,186,215,215,217,218, 88, 5, 4, 7, 39,167,236, 31, 30, 51,223,105,243, - 99,175,191,194,249,237, 45,146, 52,103, 26, 39, 76,226, 41,121, 46,105, 71, 77,132, 99,211,110, 70,220,159,102,100,131, 33, 81, -216, 36,137, 39,228,197,136,116,244,144,201,240, 62,161, 7,185,172,144,217, 16,165, 18,202,116, 2,228, 36,211, 67, 90,209, 28, -105, 41,113, 44, 27,183, 74,168,171, 9, 74, 57,188,241,203,191,195,207,124,245, 26,147, 71, 11, 56, 27, 21,167, 31,191,135,176, -125,106,215,166, 42, 75,250,189, 93, 44,203,193,210, 26, 85,140, 80,197,128, 70,103,149, 40,106,226,216, 30, 59, 91, 47,146,230, - 41, 39, 7,239,145, 77, 15,176,236,128,149,181,151, 88, 92,127,154,179, 23,255, 42,157,133,151,120,241,167,126,155,254,201, 77, -122,187,215,177,221,128,249,197, 5, 66,223, 37,151, 21, 85, 37,113, 29,131,191, 86, 85,141,237,218, 84,117,133,227, 5, 80, 41, - 84,145, 32,211,156, 60,143,233, 44, 93,226,115,207,253, 93,254,233, 31,151,124,227,223,214, 28,127, 56,229,104,239, 61, 78,111, -253, 62, 54, 57, 89,114, 66, 49,124,196,232,232, 67,230,214,158, 39,104,175,176,251,233, 15,121,180,127,147, 52,121,192,120,116, -155,201,232, 17,101,222,103,121,227,179, 68,115, 23, 41,178, 19,250,221, 91,148,121, 23,203,170, 1, 65, 89, 87,120,193, 60, 78, -176,128, 27, 44, 97,185,139,228, 19,197,214,133, 57, 14, 79, 79,209, 65,193,104,183, 38,138,166,164,213, 20, 87,175, 96, 1,110, - 67,112,230,236, 2,107, 23, 54, 17,237,121,194,133,121, 22,206,110,176,119,253, 6, 42,205, 41,117,105, 28, 73,149,156, 17,229, - 32, 47,114, 60,199,104,170, 60,223,195,117, 93,168, 43,195,128,247,141, 53,172, 44, 75, 92,223, 8, 78, 77,162,153, 79, 85,155, -241,122,150, 75,164, 44,104,183, 91, 8, 97, 82,218,152,217,217,148,172,240,124, 67,151,115,109,123, 38,208,179, 8,253,192,132, - 90,149, 37, 69, 33,201,165, 68, 85,154, 90, 51, 19,105,219, 80,139, 89, 1,192, 12,223,106, 48,210,104, 77, 93, 27, 47,189, 97, -176, 99,180, 93,162,194, 16, 25, 77,160,139,231, 25,177,157, 99,153, 3,215, 17, 14, 21, 26,215,118, 80,165,194,182, 4,142,103, -220,101, 32,112, 45,155, 44,205,113, 61,199, 52,164,133, 36, 12, 76,162,158,227,152,136,238, 34,147,179,137,130,111,210,217,102, - 35,119,219, 49,223,223, 52, 73,144,170, 48,124,248,205,179,103,191,102,219, 46,182, 35, 40,178, 2, 97, 11,154, 97, 19, 85, 43, - 80, 26,207,183, 9,252, 0,215,113,104, 54, 27,184,179, 49,161,101,219,198, 82,230,121,216,174,195,251,123, 83, 70, 86,131, 95, -254,220, 58,227, 56,231,198,253, 35, 6,150,207,167, 83, 65,203,183,121,235,149, 29, 62,115,117,155, 15,119, 71,252,243, 31,166, -102, 60, 81, 41, 4, 2, 44, 16,181, 97, 34,215,181,198, 18, 22,142,239,131, 22,212,104, 30,103,124,171,202,100, 60,171,153, 77, - 64,202, 18,223,245, 41, 43,133, 37, 52, 6,202,111,161,102,234, 70, 85,150, 88,182,217,181,219,174,192,245,124,162,102, 19, 91, -216, 79,170, 70,165, 74, 96,198,253,246, 92, 28,207, 67, 22, 5,150,227,224,123, 30, 89,110, 16,130,165, 82, 20,248,220,153,184, -124,255,176,198,119,107, 54,215,218,204, 69, 30,147, 73,142,240, 61,142,211,146, 84,193, 83, 23, 86, 16,158, 77,107,173, 67,115, -125,142,104,173,131,146,138, 32, 45,240,107,141,198,162,189, 16,144,166,138, 88,129,182,106, 34, 27,100, 47, 51,201, 67,218, 34, -181, 29,116, 89, 34,147, 28,116, 69,170,148,185,112,167, 41,110,163, 1, 53, 36,189, 4,167, 29, 34,100,137, 78,115, 28,219,166, -177,208, 97,124, 58, 33, 29,101,180, 92,155,220,245,176, 29, 27,187, 80, 52,151,219, 88,182, 3,186, 98, 90,214,104, 27,238, 29, - 37,172,183,124,162,118,147,108,154, 18,232,138,112,169,197,209,238,144, 96,185,205, 97, 55,102,125, 41, 98,123, 99,142,105, 94, - 18,116, 34,148,231,160,149,241,171,142, 22, 66,220, 86,147, 70, 20, 48, 42, 20,213, 84, 18, 87,138, 87, 94,187,194,173, 27,187, -108,157, 93,197, 17, 53,235,147, 46,223,235, 42,106,199, 34, 31, 79,120,235, 51, 87,184,246,220,121,158, 90,107, 81, 90, 53,117, -109,209, 59,237,115,122, 56,230,185,167, 55, 88,220, 92, 99, 45,178,216, 63,154,208,112,109,180,174,200, 42,205, 27,215,182,185, -181, 55,102,148,152, 28,102, 91,193, 56,206,112, 3,143, 44,242,152,156, 38, 52, 91, 1,157,134,135, 42, 53, 58,116,113,180,102, -255,112, 72,154,103,228,117,205, 86,121,138,181, 89,130,234, 34,142, 62, 69,124,251,155,188,255,127,254, 9, 31,191,127,151,227, -189, 62,190,170,152,107, 53,248,167,223,121, 96,108, 43,218, 68, 41,218,158,143,107, 65, 82,148,148, 10, 28,215,198,117, 44,192, - 56, 48,102,139, 2, 28,215,166,225, 7,212,212,148,186,162,148, 37,143,195,121, 26,190,207,246,198, 58, 39,253, 62,183,239, 61, - 34,138,154, 52, 27, 33,237,102,147,110,175,207,222,225, 17,189,209, 8,223,119, 57,187,185, 73, 20, 69,124,124,239, 62,163,177, - 17,220,196,113,202, 59, 31, 94, 55, 59, 54, 4,195,201,132,251,187,251, 20, 82,114,126,103,155,213,149,101, 38,211, 9,239, 93, -255,132,201, 52,166,221,110,113,249,220, 89, 86, 22, 22,136,154, 17,105,150,209, 31,142, 56,233,247,185,247,208,112,219,251,195, - 17,131,225,144,105,156, 97, 91, 32,132,241,247,246, 7, 35, 14, 79, 78, 25, 79,166, 60,218, 63, 68,149, 37, 81, 20,113,247,225, - 67,190,253,206,251,124,255,131, 15, 25,199, 9,139,237, 22,205, 70,147, 51,155, 27, 56,142,195, 52,142,169, 42,205,241, 73,151, - 56, 79, 57,119,230, 12, 95,124,227, 85,182,214,215, 89,156, 55, 24,221,241, 52, 38, 78, 98,206,239,108,243,165, 55, 94, 99,101, -113,145,193,104, 52,227,153,107,186,253, 1,113, 28,211,108, 54, 41,178, 2, 71,192,254,113,151,188,214,212, 73, 76,224,194,116, -116, 64,220,189,133,204,115, 58, 11, 77,170, 98, 98,190,251,217, 16, 41,167,184,222, 2, 69, 50, 98, 58, 60, 50, 35,202,220,228, -213,111,109,157, 33, 43, 21, 47,191,245,171,252,151,159,133,155,253,179, 84,113, 64,150, 30, 48, 58,185,143,133,141, 99, 57,212, -186, 38, 30,159, 50, 29, 62, 34, 73, 70,200,162,100,126,190, 67, 99,190,197,201,222, 13, 30,222,125,143,222,201, 71, 20,113,159, - 90, 64,212,217, 38,106,173,210, 92,156,227,210, 75,215, 40,114, 24,236,125, 72,163,189,129,204, 39, 76,135,251, 76,198, 99,164, - 84,196,211, 41, 73,156, 35,101,133,214,224,217, 26,207, 6,215, 54,153, 14,105, 94,160,100,133,174, 5, 81,103,141, 75,111,252, - 71,140,251,167, 36,163, 91, 76, 79,111,211, 59,248,152, 90, 79, 24, 15,119,153,118, 63,165, 76,123, 72, 89,177,124,241, 43, 44, -110,191, 76, 50,250,148, 34,143, 17,114, 66, 42,123,228,211, 46,114,122, 68,145,246,241,230,207, 81, 22, 3,134,195, 59,200,188, - 75, 50, 61,162,152,116, 81, 90, 98,213, 96,185, 30,142, 29, 96,249, 33, 66,120, 84,165, 69,123,189, 65,224, 10,250,167, 7, 88, -141,140,227,247, 63,193,143,108, 22, 86,158, 65,215, 1,110, 35, 98,254, 76,147,102,232, 16,118, 26,212,162, 65,115,101,141,139, -175,191, 74,255,222, 93,146,254, 0,199,179, 81, 82,225,186, 38,161,176, 40, 36,181, 37,208,181, 6, 33, 40,242,148,178,172,177, - 48,246, 45,203,182, 8,195,198,147,113, 55,181,198,113,252, 39,186,169,170, 82,184,182, 57,116,149,148, 96,153,174,214,177, 60, -176,160,204,115, 30,167, 82, 58,182,139, 31,120,232,186,158,173, 0, 44, 3, 58,242,205,253, 94, 32,112, 61,143, 52,141, 1, 65, - 35, 52, 14, 24, 85,150,168, 89, 51,107,217, 6,140,102, 98,115, 53, 85,109,226,101,203, 92,146,102, 25, 85,165,113, 28,155, 56, -142,169,181,201, 72,127, 28, 89,158,101, 25, 8,112, 61,151,170,210, 64,133,227,122, 84, 90, 81,150, 18,199,119,141, 21,187, 52, - 20, 75, 44,115, 30,151,170,164, 86, 2, 63,244,158,104,121,146,105, 76,150,103,198,190,102,139, 39, 99,125, 33,108,115,150,109, -237,236,124,205,178,141, 34,144, 90, 80,213, 53,129,111,108, 39,142,101,227,206, 80,123,186, 86,212,152,110,164,174, 13, 82, 83, - 87,179, 4, 55,173, 41, 11,201,221,190,228, 91,247, 50,222,184,188,192, 79,190,178,201,185,115,203,108,175, 47,240,234,181, 29, -162,185,136,143,238,245,248,135, 63,200,201,132,121,163, 88,214,147, 61, 73,158, 26,206,181,227, 62, 22, 68,152,221, 61,150,101, -128, 2,128,235,216,179,209, 71, 64,165,141,157,168,170, 53,182,176, 0, 1, 66, 32,132,192,113, 29,108,203,164,239, 80, 67,171, -213, 34, 12, 26, 4,190,161,162,121,190, 1,240, 75,105, 4,128,245,236,162,170,235, 26,215,117, 41,149,196,181, 76,110, 46, 48, -171,194, 12,155,186,210,154,172,130,235,253,154,155, 67,151, 7,195,132,167, 86, 2,106,171,166,219, 77,152, 38, 18, 37, 37,253, -145, 41, 6,206,108, 47,224,123, 46, 11,203, 17,195,163, 1,200,138,104, 41,100,109,125,145,211,221, 62, 19, 89, 18, 56, 46, 45, - 27,168, 43,170, 18,124, 7,156,186,166, 22, 22,181,176,152,223, 94, 32,159,100,212,149, 70, 38, 37,107,231,151, 9, 90, 62,195, -254, 20,145, 43,156, 60,199, 90,154, 71,184, 46,233,241,192, 4,231, 8,141,194,248,235,109,207, 34, 25, 36,236, 79,114,210, 68, -210,246, 61,220, 86,131,162, 22, 68,150,169, 66,219,171, 77,198,199, 19, 28,199, 4,130, 84,150,197,238,193,132,245,141, 54,129, -210, 56,145,207,234, 98,147,211,238,144, 78,211,236,198, 44, 85,226, 47, 69,124,114,167,207, 56, 45,153, 28,199,180, 26, 14,130, -154,107, 23, 86,104,180, 27,236, 61, 58,161,156, 91,100,124,239, 33,218,134, 79,134, 53,151, 90, 53, 43,235, 75, 92,189,176, 70, - 40, 20, 77,203,226,207,190,127,135, 13,223,230,163,253, 30, 15,142,198, 92, 92,239,208,106,132,168,204, 32, 40,157, 90,115,103, -111,196,202,218, 60,159,127,237,105,198,163, 33,227,126,134, 44, 36,150,168,153,102, 21,207, 63,181,198,213, 43,107,124,247, 7, - 15,136, 86, 58, 56,190,199, 97,162, 81,185,100,146, 20, 12, 10,201, 52, 47, 72,123,167,112,253, 99,246,223,126,143, 7,223,254, -136,235,183, 30,113,146, 75,122,147, 2, 47, 50, 8,212,175,253,239,111,211, 77, 13,144,102,161, 97,179,209,180, 80, 88,164, 74, -208,240, 93, 82, 41, 41, 74,101, 32, 22,194, 92,123,186,174,209,218,236,244,147, 60, 65, 22,229,108, 84,102, 4, 49,157, 86,196, -112, 50,165, 29, 69, 12, 70, 99,110,223,187,111,176,171,142,209,141,180, 90, 77,134, 99, 3, 98, 25, 12, 70,156,217,220, 36, 77, - 83,190,251,206,251,132,129, 79,156,166,156,244,122, 76,227,148, 52,205, 40,148, 34, 73,115,110,223,127,192,214,250, 42,215,158, -190, 68,167,213,100, 56,153,242,238,245,155, 40,165,120,241,153,167,121,227,213, 23,217, 92, 91,123,130,217, 60,233,245,249,228, -206, 61,226, 52, 99,161,213,194,247,125, 26,205,144,247,175,223,228,232,164,199,249,157,109, 70,211, 9,239,124,240, 17, 73,102, - 48,177,150,109,131,101,210,197,180,214,108,173,173,177,181,110, 48,175,182,235,242,214,171, 47,177,190,186,202,193,241, 49,221, -193,144,119, 63,186,193,123,215, 63, 33,207, 37,181,174,208,117, 77,212, 48, 49,179,174, 99, 83,105, 35, 56, 12,130,192, 32,115, -211,156,188, 48,184,220, 56,137, 25,140, 38,200,178, 36, 10, 27, 51,164,109,205,104, 52, 97,156, 85,164,131, 17,165, 44,152,111, -183,160, 76,217,126,233, 87,120,250,133,223,160,119,240, 93, 70,189, 61,212,244,128, 74,149, 44,108, 94, 99,231,218, 47,211,106, -109,160, 43,197,164,255,128,133,249, 5,230, 23,151,104,134, 46, 71, 71,183,249,206,157,139,108,158,105,163,226,243, 4,139, 43, -132,231,154, 28,223,248, 62, 85, 85, 82,215, 26,215, 11, 16,182, 71, 93, 85,232, 74, 50,236,238,210,153,219,164, 46, 99, 6, 71, - 55,233,238,125, 64,169, 37,148, 5, 88, 22,194, 50,218,147,116,226, 16, 70,171, 56,205, 8, 81, 57,248,225, 50,216, 37,147,222, - 61,100,174,168,106,176, 29, 1,181,160,148, 5, 89, 46,205,251, 47, 42,178,178, 66, 87, 53,181,150,248,205, 5,118,174,253, 20, - 90,151,100,227, 67,100, 62, 38, 47,122,228,105,151, 52, 62, 38, 8,230,184,250,230,111,241,214,175,254, 35,126,233, 31,253, 38, - 95,250, 79,127,134,133,207,189,206,238, 55,111, 19,143, 30, 34,179, 62,121,210, 67,170, 49, 50, 59, 37, 29,239,227,218, 77,242, -180,139, 46, 98, 74, 21,163,202, 4, 89, 78,209,121, 31, 93, 37,136, 90,204, 40,111,198,213, 35,112,200,198, 22,235, 79, 45, 50, - 60, 61,225,226,229, 29,156,200, 99,233,234, 57, 90, 23,155,180,197, 42,205,214, 38,174,179, 66,116,182,133, 87,244, 80, 2,210, -145, 32,215,154,229,157, 13, 6,247, 30, 48,236,247, 80, 85,101,196, 93,150,141,229,216,200,188, 64, 43, 69,169, 36, 2,115,175, -247,252,128, 82, 21,216,246,204,202, 60, 43,136,107,173, 73,210,204,116,212,182, 57, 59,178, 34,157, 77,145, 33, 8, 3, 44,203, - 16, 30, 85, 85, 26,231,147, 16,179,117,178,166,200,243, 39,231,149,231,249, 88,150, 57, 55, 44,203,162, 44, 37,178, 48,113,166, -186, 82, 88,182,137,193,214,212, 68,205, 8,234,218,116,229,218, 88,228,202, 74,225,205,214,190,246,172, 0,148,165, 68,204, 94, - 71,154,166, 52, 26,205, 89,215, 95,226,218,230, 60, 41,242, 28, 11, 76, 65,163, 53,142,237, 24, 77,152,235, 98, 89,206,108,237, - 13,181,170,159, 88,216, 84, 37,201,115, 35, 80, 87,170, 2, 1, 82, 22,152,232,101, 27,165, 75,148, 44,177, 28, 97,196,187,139, -107,107, 95,211, 90, 35,139,156, 90, 99,198, 32,142, 32,137, 19, 42,165,168,209, 4,129,107, 42,155,194, 84, 21, 38,195, 54,101, -154,196,100, 89, 70,150, 25,191, 93, 89,150,140,211,146,127,253,233,152,155, 39,102,151, 50,204, 20, 63,120,208,227, 15,223, 63, -226,247,239, 86, 60,154, 84,200,194,132,189, 60, 46, 10,202,178, 36,106, 69, 8, 75, 24,113,130, 44,241, 3,223,236, 91,148, 66, -230, 57,101, 41,113,109,155,176,209,192,181,109,252,192,228,129,251,129, 79, 35,108, 16,250, 1, 65, 35,164,217,108,206, 98,100, -109,162,102, 19,173,161, 44, 11,148, 86,134, 74,231,185, 20, 69, 78,158,102, 72,105, 80,184,237, 78,155, 48, 12, 12,232, 64,153, -184, 76,128, 70,163, 73,216,108, 26,213,188, 59,139,136, 13, 27, 4,129,111, 10, 32,219,229,180, 12,248,222,113,133,180, 60,190, -242,230, 14, 23, 54, 23, 80,181, 32,201, 10,234,172,156, 85,227, 10,187,130, 96,161,137, 27,120, 56,161,207,104,146,225, 2,251, -227,130, 81, 89, 17, 42,133, 19, 53, 9,231,155, 68,237,144, 50, 43,240, 27, 30, 80,113,246,242, 58,181,227, 18,119, 39,224, 57, - 44,111, 47,210, 8, 60,250,167, 9,219, 79,175, 80, 20,154,114,154, 34,147,130,178,170,201,149, 6, 85,211, 88,110,147, 74, 67, -139,242, 26, 62,183,246, 71, 52,116,141, 78, 50,108, 85, 97,229, 5,170, 40,105, 45, 55,104,117, 26, 28,239,143, 40,170,154,222, - 84,178,126,126,137,249,208, 99,125,189, 77,239,222, 49,163,227, 49,193, 82,155, 34, 85,212, 66,240,204,185,121, 42,223,133, 81, -138,242,124, 34, 71,243,211, 63,254, 52, 45, 75,176,178,208, 96,117,109,193, 20, 85, 2,142, 31,157,242,241,195, 30,175,108,133, -188, 55,168,200, 1,145,196,188,249,202, 5, 84,169,176, 92,193, 71,119,187, 92, 88,139, 24, 38, 5,143, 14, 99,198,211,156,206, - 98,131,126, 42, 73, 51, 69,162,161, 72, 10,110,239,246,216, 94,110,176,179,216,226,206,225,152,197,166, 75, 82,104,206,159, 95, -228,238,254,128, 55,158,219,225,242, 86,135,119,175, 31,176,185,212,162,200,115,236,105, 6,190, 67,232,123,248,186,194,179, 32, - 41, 50,246, 78, 7,164,212,204,175,181,193,178,233,199, 57, 10,129,231,217,220,124,216,167, 59, 46,104,135, 22,174,214, 52, 45, -139,208, 22,100,182,161,207, 5,142,203, 36,147,148,186,194,115, 28, 44,219,194, 70, 80,150, 18,165, 43, 51,210,195,104, 83,168, - 33,203,115,230,230, 58, 4, 51, 11,103, 94, 72,122,163,201,172, 83, 30,206,194, 32, 36,227, 56,229,184,107,112,186, 74, 41, 26, - 13,159,135,251,135,248,174,131, 82, 21,147,105, 76, 24,248,184,190,135,109, 9,163,148, 31, 79, 88, 90,152,103,123, 99,221,168, -123,117,197,173,123, 15, 9,131,128,159,253,242, 23,216, 94, 95,195,247, 60,164,148,220,121,180, 71,127, 56,226,254,195,125, 60, -215,101,126,174,131, 16,130, 43,231,207,115,239,209, 46,135,167, 93,210, 52, 67, 85,154, 81, 28, 51, 24,142,120,252,152,235,180, - 89, 95, 93,102,123,109,141, 92, 74,142,187, 61,234, 26, 70,163, 49, 73,150,211, 12, 3,186,131, 33,239, 93,255,152,253,227,147, - 39, 86,182, 70,163, 65,146,164,244, 6, 3,166,211,152,124,134,230, 77,178,148,105,156,226,216, 54,185,148, 36,121, 78,154,101, -140,166, 9, 15,247,246,169,133,197,226, 92, 7, 85,205, 70,165,133,228,180, 59,102,233,133,107,196,199,125,108,187,198,107,118, - 56,251,210,207,178,188,248, 58,238,252,231,144, 50, 37,238,223,195, 34,163,177,176,134, 23,172,208, 90,188,136,223, 90, 34, 30, -222,103,208, 61, 66,149, 18,207,241, 57,222,255,148,209,241,117,238,221,238, 99,135,203,136, 18,202,188, 98,237,194,143,113,238, -226,207,209,240,219,156, 30,126,128,176,102, 36, 75, 97, 81,169,156,238,193, 61, 60,175, 77,115,174,141,231,218, 84,217, 0, 45, -187,212, 66, 97, 91, 21,186, 78, 24,143,134, 36,201,128, 50, 47,144,186, 36,238,125,130,227, 53, 25,236,189,207,194,234, 83, 4, -209, 38,233,100, 15, 85,196, 96, 9, 44,219, 8,145,107, 44,108,167,166,200,198,228,211, 17,151,191,240,119, 80,211,152,124,122, - 23, 41, 75,100, 49, 34,141,251, 72,217, 39, 27,237, 33,227, 30,231,159,249, 10,182, 88,227,224,157,154,143,255,240, 14,123,127, -121,143,225,241, 7,164,241, 49,121, 58, 64,231, 35,228,244,136,164,127,139, 60,139,113,194, 8,173, 10, 84,153,160,138, 33, 74, - 78,209,114,138,140,247,169,100,134,176, 29, 80, 18,180,162,214, 10,163,181,106, 80,198, 30, 59, 87, 22, 25,140, 7, 92,121,246, - 18, 79,159,251, 59,204, 95, 88,197,109, 60,164,108,249,184,249, 69, 26,245, 85,162,240, 50,222,186, 11,245,132,188, 63, 32,207, - 20, 86,145, 48,237,118,201,165, 73,157,204,243,156,192,247,159, 28,218, 97, 16,226,123, 62,142,235, 82,228, 41,150,101, 19,134, -161,137, 79,173, 20,150,237, 32,139,226, 73, 49, 24, 54,155,102,167,140, 5, 55,221,163,207, 0, 0, 32, 0, 73, 68, 65, 84,212, -248,158, 75, 86, 72,147,167, 32, 75, 60,207,165,209, 8,169,197,140,250,102, 27,200,139, 99, 25, 97,118, 89, 22, 6,183, 58,123, -126, 47,240, 41,149, 25,247, 55,155, 77, 44,203,184,172,124,215, 37,207,228, 44, 60,197, 53, 74,125, 85, 18,120,230,236, 49,104, -214,140, 74, 43,163, 17,176, 12,237,180, 82,245,140,242,150,206, 4,119, 37,143, 93,117,165, 52,220,251, 74, 87, 79,158,211,113, - 92,227,238,114, 93,234, 90, 83, 11,147, 0,167,148, 17,191, 85,101, 97,166,214,194, 8,192, 93,215, 69,212, 21,105,154,226, 58, - 46, 0,129,107, 82,225,236,149,245,245,175, 85,149,185, 81, 99, 65,173, 13,120,223,182, 4,209,108, 71,102,212,231, 25, 73, 98, -218,126, 41,205,206,221,158, 89,120,170,202, 68, 90, 62, 38, 2, 69, 81,196,253,110,202,159,223,137,121,247, 4,174, 15, 29,246, -242,144,130, 25,106,214, 53,106,122,199,245,104, 54, 27, 56,142, 67,154,166, 70,217, 55,131,123,152, 72,190,194, 40,216, 49, 35, - 65, 33,140,181,160,214,181,249,101, 0, 6,180,111, 68, 22,178, 40,204, 14,126,246,203,179, 44,203,140,212, 29, 19, 78, 33,101, -129,231,250,184,142, 75, 45, 52,170, 44,177, 45, 3, 62,168,117, 5,194, 84,109,158,235,226,249, 62,182,109,146,132, 64,240,120, - 18, 96,170, 59,102,157,126, 65,145, 73,100, 5,183,251,146, 63,121, 80,113,175,159,242,236,217, 57,174, 93, 88, 36,181,106, 70, -163,156,201, 32,102, 48,202, 72, 51,137,219,105,112,122, 52, 38,157,164,180,214, 22, 24, 14, 83, 52,176,180, 24,241,220,179, 91, -198,206,231,122,120,243, 33,227, 71, 3,116, 81, 33, 26, 77,156,192, 38, 25,231,216,142,203,217,237, 14,135,187, 61, 6,199, 35, - 22,150, 59,172,172,183,233,118,167,200, 10,174,188,118,142, 70, 43, 96,146, 85,172,174,207,147,164, 5, 50, 78, 25, 41, 65, 45, -224,249,231,183,176,173,154, 60, 41, 40,139,138,181, 43,235, 52,252,128,150, 39, 56,232,103,204,109, 44,178, 55, 78,120,106,123, - 9, 93, 74,154,205,128, 82, 88,220, 58, 77,241, 61,139, 48,176, 73, 38, 18, 44,155,192,117, 56, 24,165,140,135, 57, 43,243, 13, - 94,250,220, 21,162,192,225,222,225,152,205,141, 22,150, 45, 80,142,199,250,250, 28,223,120,119,151,186, 72,121,102, 46, 96,100, -133,244,122, 49, 10,193,229,167,214, 16, 74,179,215,139,249,157,127,245, 62,255,213,175,125,137,221,253, 19,110, 63,236,177,179, -210,225, 27,223,189,195,175,124,233, 34, 31,220, 57,101,156, 41,164,172, 56,234, 38, 92, 59, 19,241,151,247,135,132,142, 77,169, - 53,103,182, 87,200, 11,197,159,189,243, 0,233, 8, 6,131, 20,203,115,241,178,156, 52, 47,113, 2,151, 65, 89,177,182,216, 70, - 4, 30,221,178,162, 0, 86, 86,150,232, 37, 5,148, 37,231,150, 90, 92,221,156,231,133,203,155,252,194,151,174,242,135,127,246, - 33,150,237,240,187,191,245, 83,236, 31,143,248,222,189, 46, 65,224,145, 40, 24, 36, 25,141,192, 37, 43, 52,181, 48, 25, 9,150, - 96, 6,160, 48,215,201, 99,252,164, 25,155,153,107,230,194,153,109,110,221,123,192,112, 50, 97, 52, 30, 81,170,138, 76, 74, 38, -147,152, 56, 73,233,180, 35, 26, 97,192,105,127, 64, 24,152, 52,175, 70, 16, 80, 42,133,231,251,100,121, 78,150,229, 4, 65,192, -242,252, 60,247,118,247,176, 45,139,207,190,252,162,169,161,108,139, 44,147,124,124,231, 54,207, 94,190,196,218,202, 18,243,115, - 29,100, 33, 25, 77,167, 20, 89,206,100,154,240,195, 79, 62, 69, 85, 21,237,102,147,115, 59,219,188,252,220, 21,110,220,186,203, -237, 7, 15,105, 69, 17, 81, 24,208,237, 15, 24,204,146,225,154, 97,200,206,230, 58, 23,119,182,169,133, 96, 56, 28,209,138, 26, -212, 24, 38,196,197,115,103,104, 69, 17,113,156,113,247,209, 46,174,237, 18, 53, 66, 86,151,150,184,114,254, 28,155, 27,171, 88, - 66,144, 21, 5, 73,150,211, 31,140, 72,242,130,209,104,196,112, 52, 38,151, 5,113,156,112, 58, 24,178,127,120,196, 36,142, 89, -154,239,208,105,181, 72,139,156,172, 80,148, 69, 70,146,197,180,159,125,137,168,249, 10,167,187,183,112,215, 60,196,162,195,225, -167,183,144,105, 15, 63, 88,160,181,242, 12,237,229,107, 8,145, 34,243, 41,217,244,152, 82, 38,184, 65, 68, 62,218, 39,203, 99, -162,214, 28,121, 26,211, 12, 53,121,114,159,253,251,223,101,216,189, 71, 17, 15,185,248,242, 47,240, 55,254,241,103,217, 88,254, -247, 72,135, 83, 14,238,126, 7, 61,115, 49,216,142, 75, 85,102,140,135,143,232, 29,237, 83, 85, 22, 69, 54,165, 22,109,230,230, -154, 44,172,110, 98, 5,115, 8,127,137,108,176, 75,220,189,197,180,127,159,120,112, 31, 55,232,112,241,149, 95,230,249, 47,252, - 23,188,246,227,127,147,151,222,250, 91, 52,162,139,196,233, 49, 73,247, 46,102, 98,170,145,105, 66,228,108,243, 55,255,241, 67, -254,238,111, 63,203, 36,252, 9, 30,190,255, 54,217,248, 30, 85,153,163,228,136,114,188, 79,145, 28,209, 94,126, 14, 17, 70,244, - 7, 55, 25,117, 63, 34, 29, 61, 36, 25, 31, 48,234,223, 34, 62,252, 62, 34, 59, 34,155,236, 51, 73, 78,112,252, 53,126,242,175, -255, 51, 44,207,165,123,240, 14, 85,153, 81,170, 12,165, 98,234, 98,202,184,191, 75,123,229, 42, 53, 53,186,146, 80,107, 30, 71, -165, 90,150,133, 82, 54,100, 54, 27, 23, 58,116, 39, 93,252,198, 23,137,188,121, 14, 15, 62,161, 19, 76,112,244, 34,115, 27,219, -204,191,238,178,216,154,199,237,109, 81,150,219,184,173, 67, 38,143,118, 57,188,243, 41,182,229, 60,233,150,243,188,192,117,141, -224, 43, 73, 50, 2,223, 35, 73, 83, 26,141, 6,174,235,162,148,233,168,149, 82, 4,129, 89, 1, 23, 69, 97,108,126,181,198,247, -125,132,101, 68,108,190, 31, 96,217, 38,164, 69,235,138, 48, 12,177,132,133,204, 82,242,162,160,148, 5,165, 86, 88,216, 88,182, -225,177, 91,150, 32,205,115, 16, 2,224, 9, 83,160,170, 52,147,233,132, 60,207,159, 52,130,238, 76,192,166,103,220, 19, 0, 75, - 24, 23,149, 65,219, 26,130,160,214, 70,135, 6, 38, 63,165,213,106,225, 7, 1,212,181,209, 14, 56, 14, 82, 25, 87,153,241,224, -155,247, 87, 87,181, 25,225,215,181, 41,110, 28, 23,207,119,169, 84, 69,232, 26,244, 48,149, 17, 90, 63, 65,229, 42,227,255,215, - 74,225, 58,206, 19,231,128,189,185,115,246,107, 97,163, 65,224, 5,132,179, 12,216,192,247,141,231, 13, 72,147,148, 44,137,141, -218, 23,140,183,123, 54,130,171, 1,223,243,240, 67,227,201, 14,103,200, 63, 33, 4,174,235, 34,149, 36, 77, 51,146, 52,155,101, -192,218,104, 93, 83, 86,138, 60,203, 8, 3, 31,203,182,177,109, 19, 90,239,121, 46,182, 99, 97, 9, 27,215,247,103,182, 52, 11, -207,243, 8,195,144, 40,108, 96,193,147,231,151, 51,106,147,170,140, 39,177,209,106, 64,109,129, 96,166,116,175,140, 93,174,170, -102, 89,188, 38,196,222,158,141, 53, 60,199,198, 11, 12,123, 56, 45, 76,245,168,100,105,166, 3,165,161, 13, 73, 41,169,107,112, - 3,159,186,214, 70,124, 55, 59,216,227,105,130,176,141, 95,209,113, 76,138,215,113, 42,248,227, 79,199,124,247,238, 41, 11,145, -199,213,139,203, 92,188,180, 70, 45, 4, 19,165,185,123,175,199, 66, 39,196,109, 71,244, 39, 41,253,196, 92,164,155, 43,109,210, - 84,210, 59,141,233, 29, 15,105,181, 26, 4,139, 45,104, 25, 15,105,127,144,178,113,102,158,198, 66,131,131,227, 17, 94,224,227, -216, 54, 97, 20,114,208,157,226, 52, 67,236,102,192,112, 16,131,134,179, 23,151,145,170, 34,180, 61, 42, 33, 72, 85,201,210, 92, -131, 50,206, 89,217, 90,100,191,151, 34,171,154,213,181,136, 70, 51,164,118,109,122,227,130,193,112,202,114,187,193,194, 92,192, -225,193,152,120,154, 98,135, 30,131,113,198, 56, 43,241, 85, 69,149,230,244,166, 5, 15,123, 9,131, 81,134, 22,154,254, 56, 99, -114, 60,224,189,143, 15, 57,232, 39, 28,239,118,241, 29,155,214,124, 11,109,185,188,249,242, 89,254,167,111,239,241,157,187, 67, -222,216,106,112,239,116,202,232,184,199,165,139, 91,180,231, 35, 58,237,128,223,251,198,135,252,202, 79,191,196,211, 59,243, 44, -204, 53,184,184,179, 68, 39,180, 89, 88,152,227,229, 75,171,156, 89,105, 35,149, 98,107, 53, 2,215,230,233,229, 54,187,163,148, -147,238,148, 82,106, 60,215, 38,143,115,108,207,101, 56,201, 25,141, 50,230, 23,155,180,162,128,176, 19,144,196,138, 58,244,144, -133,166,112, 61,218,157, 22,194,179, 56,179,181,192,224,160,199, 82,123,142,141,213,121, 28,149, 32, 86, 90,116, 31,245,248,206, -173, 33, 43, 77,135, 87,159,219,230,235,239,238, 49, 77,115,188,102, 68, 94, 42, 42, 93,227, 57, 22, 73, 97, 80,148,182, 16,232, -122, 54,170, 22, 38,222, 84,207, 14,116,102,183,130,249,185, 22,167,189, 62,221,193, 0, 33, 44,150, 22,230,217, 90, 95, 37,205, -114,142,187, 61, 92,215,230, 11,159,125,141, 7,187,123, 92, 58,127,150,215, 95,122, 30, 89, 42, 6,227, 49,227, 56, 38, 73, 18, -230,219, 29,158, 58,123,134,209,100,202,163,253, 3, 44,199, 34,203, 11,131,153,212, 53,127,254,151,239,144,230, 5, 43,203, 75, -230, 26,119, 28, 99,169, 19,130,178,210, 28,119,187,124,122,239, 1,158,227,210,140, 26,160, 53, 31,220,188,197,187,215,111,146, - 23, 5,219,235,171, 68,205, 6, 15,247, 15,159,116,219, 81,179,201,250,202, 50, 11, 11, 29, 60,203,194, 15, 2,230,218, 45,211, - 49, 8,200,210,156,180,200, 41,103,187, 77,219, 50,107,176,178,170, 64,107,146, 36, 67,105, 77,224,123,166, 0,178,109,116, 85, - 81, 86, 38, 10, 55, 73, 83, 38, 73, 70, 60, 77,204,120,214,182,153,235,116,102, 92,128,153, 58,127, 60,197,170, 53, 89, 46,137, -162, 13,220,249,171,148,147, 1, 75, 94,139,201,112, 72,146, 14,201,211, 35,210,201, 46,195,147, 27, 52, 92, 69,145, 39,164,201, - 41, 69, 60, 64, 87, 57,232,140, 42,203, 25,141,199,108, 63,253,227,156, 30,222,197,177, 36, 77, 39, 39,233,125, 76,239,240, 83, -214,214,190,192,191,243,215, 46, 81, 12, 45,236,214, 23,217,122,238, 21, 58, 43,155, 88,150, 67, 35,218,194,114,125,138,184,139, -235, 88,228,197,128, 74,229,100,201, 41,241,100, 66, 16,206,225,160, 41,210, 17,105, 50,101,212,189, 65,210,251,136, 98,122,132, - 19, 46, 17,205,175,146,229,135,140, 83,200,210,132,229,237, 23, 88, 90,123, 9,187, 53,207,180,119,151,124,122,204,243, 63,245, - 53,254,243,119,255, 71, 94,123, 46,163, 93, 91,200, 51, 46,211,163,231, 56,186,253, 45,122,135,223,161,156,236,161,138, 12,183, -177, 78,208, 90,193,118, 53, 50,137,145, 50,166,212, 5, 74, 78, 16,218, 70, 85, 41, 74,123, 44,109,189,201,213,207,125,149, 87, -191,244,223,210,106,173,130,239, 51, 62,189,203,112,239, 47,176, 28,135,206,252,211, 44,156,121,131,203,175,253, 6, 27,103,191, -128, 16, 22,121, 62, 66, 87,102, 84, 76,173,168,116, 73, 85, 22, 36,211,148,106, 52,100,235,133,203,220, 31,127,128, 58,126,153, -253,247, 63,162, 59,186, 77, 29,245,136,212, 57,236,164, 73,248, 92,205,122, 91, 32, 38, 46,201,224, 34,209,149, 54, 34,233,146, - 13, 71,179, 3, 91, 81, 85,102,175, 94,149,138, 32, 52,204, 2, 89,150, 8,203, 0, 88, 74, 85,206, 58, 82,163, 83, 73,227, 20, -203,182,112, 61,131,103, 54,124, 21,115, 29, 21,165,164, 44,171,217,180,217, 71,230, 5, 74, 25,223,184, 57,203,108, 42, 37,113, - 61,207, 76,150,139,146, 74, 87,232,178, 36, 73, 19,178, 44,163,174, 77,254,186,233,158, 21, 85, 85,153,189,184,239, 97,213, 22, -182,107,116, 86, 97,232,227,186, 30, 88,166,217, 83, 74,161, 42, 69, 94, 24, 59, 93, 24,250, 4, 97,128,176, 5,142,227, 97, 91, -224,121, 70,180,167, 42,163,251,114,125,151, 74, 25, 93,152, 17, 8,106, 28, 63,160, 72, 51,100,110,146, 35, 31, 55,151,105,145, -227,185, 30, 82,150, 38, 40, 42, 48,222,248,122, 86,108, 9,203, 8,244, 30, 55,164,246,250,153, 51, 95, 51, 8, 76, 69, 85,149, -248,110, 64,158,167,200, 66, 82, 20, 5, 74,105,108,107,150,215, 12, 52,163, 8,119,150,225, 93, 74, 3, 6,176, 93,119,182,107, - 51,105, 87,197,108,188,142, 54, 59, 9,173,140, 95, 59,142, 19,146, 52, 37,207, 50, 2,207,163,194, 32, 0,127,180,163,215,212, -181,217, 97, 11, 49,123,145,142,131,231, 26,120,140,172, 12,252, 38,240,125,108, 4, 85,165,113, 29, 7,173,161,209, 52, 70,253, - 74, 73, 74, 85,146, 39, 41, 73,156,206,108,110,230,239, 52,198, 54, 7,204,170,177,177, 25,183, 52, 66, 44, 71,128, 6, 97,153, - 80, 0,223,247, 77,176,194,204, 71, 47, 75,131, 25, 44,138,226,201,110,196, 17,230,115,145,165, 1,243,100, 89,134, 99,187, 76, -167, 19, 14,199, 37,223,123, 88,240,199, 31,158, 16,103,138, 87, 46,173,241,185, 23,182, 89, 91,106, 48,209, 53,177,172,232,199, - 37,121, 98,246, 48,165,172, 41,198, 9,181,148,120,158,199,112, 90,112, 52,201,169, 5, 36,131, 12, 45, 43, 60,223,197,118, 45, - 14,239, 15,208,186,100,233,236, 42, 31, 63,234, 81, 87,130,147, 94,140, 43,106,130,208, 35,206, 37,241,180, 32,242, 92,118,111, -238,177,180,181,104,170,225,105, 78, 60, 72,200, 51, 69,225,217,224, 89,200, 76,211,235, 79,232,247, 51, 30, 28,141,104,122, 1, - 47,189,176,129,194, 34,158,164,132,182,195,131,126, 74, 33,140,226,125,103,163,195,242,218, 28,105, 34, 25,196, 18,225, 90, 88, - 26, 90,190,203, 40,149, 12,135, 57,145, 0, 71, 64,161, 53, 27, 91,203,228, 85, 73,171,233,115,123,111,194,113, 33,248,123,191, -254, 57,238,117,115,228,116,200,193,221, 61,218, 65,200,197,203,103,216, 88,108,242,225,221, 35,182,183,151,104, 71, 77, 84,109, -209,154,111,240,195, 79,143,177, 91, 77, 86,214, 34,206,110,175,176,184,212, 70,184, 46,171,203,115,188,112,245, 28,171, 29,159, - 71,147, 4,106,155,133,165, 38, 63,255,249,139,228,147,220,116,192,185,164, 20, 22,169,182,105,204, 53,184,184,210,230, 56, 41, -185,190, 63,161,206, 11, 78, 39, 37,100, 57, 77,173,177,171,130, 15, 31, 30,115,255, 52,101,120, 56,225, 91, 63,220, 99,127,146, -243,246,157, 46,127,244,189, 71,180,155, 46,170, 22,160, 43, 74,199, 71, 85, 26,215,178,144, 85,253, 68,128, 99,114, 9, 64, 41, -101, 70,232,213,143, 18,224,148, 82, 92, 56,179, 61, 75, 33, 91,162, 63, 28,224, 59, 46,191,246,139,127,141,222,112,204, 73,191, -135,239,186, 92, 62,183,195,254,113,151,237,181, 21,174, 94,190,200, 83,103,207,112,127,111,159,241,120,138,148,138,149,229, 69, - 94,125,238, 89,230,231,231, 56, 56, 62, 37, 75, 51, 90,173,136,229,165, 69, 60,199,101,239,240,136,185, 86,139,173,213,101, 54, - 86, 86,248,198,183,191,131, 45, 4,237, 40, 98, 56,153,240,111,190,247, 14,253,193,144,192,247, 57,127,118,135,102,240,152, 83, - 93,178,177,182,202,171, 47, 94,227,180,215,231,240,180, 71,154,101, 8, 44, 54,215,151, 57,187,185,110,212,232,179, 68,168, 52, -205,140,144,180,210,102,116,158,102,196,179, 2,190,212,149,137,195,196, 76, 40,106,140, 83, 64,215,179,149, 68,245,120, 50,102, -160, 82,150,101, 35,168, 77,145,108,155,226,222,115, 28, 26,141, 0,199, 50,159,107, 16,120,164, 89,198,164,215, 37,138, 58, 76, -199, 39, 36,131, 30,161,147, 33, 68,193,120,112, 68, 58, 61, 37,159, 30,145, 13,119, 9,156, 12, 75, 23,228,113, 31,153,156, 82, - 38, 61,160,160, 84,146,203,175,254, 2,103,158,251, 37,154,243,215,184,127,227, 79,232,117,187,236,156, 59,135, 31, 54, 72,213, - 49,247,246, 94,226,151,254, 93,151, 87, 94,169,232,118,175,160,234, 22, 27, 23,223,224,181,183,190,202,231,126,230, 55, 57,222, -251,152,222,193, 71, 8,225, 97, 91,198, 79, 92, 41,201,168,127,130,240, 86, 32, 63,132,233,125,202,228,216, 88, 85,171,154, 96, -110, 3,215,149,212, 74, 34,115, 69, 50,222,229,120,239, 7,244, 14,175, 51, 29,223,167,189,120,137, 87,191,252,219,188,244,250, - 95, 71,222,247, 56, 92, 9,184,241,117,151,254,183, 32,173, 10, 52, 54,150, 29, 17,180,206,179,253,194,127,192,107,159,251, 91, -132,237, 11,140,123,119, 40,101, 66,153, 13, 40,243, 1,121, 58,160,152, 30, 82,101, 19,206,191,240,171,108, 93,249,105,172, 70, -131,238,193,135, 28,239,253, 37,195,222,125,116, 93,225,183,215, 89, 92,127,157,206,230,139,204,207,157,195,114, 3,100, 50, 36, -147, 9,170,140,169,138,161,185,175, 87, 57,149, 76, 40,229,152, 50, 31, 50, 62,121,200,203, 63,241, 38,107,103,150,216,143,191, -139,234,199,100,167, 61, 54,159,217,224,204,235, 13, 74,235, 1,199, 93,139,190,104,227, 30, 66, 53,134,211, 7, 54,209,181,101, -146,253,219, 20,113,140,176,109, 2,207, 69, 74, 99,101,149,133,164,144,146, 70, 24,152, 61, 59, 16, 69, 77, 51, 9, 86, 37,150, -109, 86, 92, 38,221,172, 34, 8, 60, 35, 56, 19, 22,150, 45,176, 45,227, 34, 48,244,181,153, 42, 60, 51, 83,229, 26,195, 39,177, -108, 27,219,113,168, 85,133, 31,122,179,231,169, 41, 74, 69, 93,107,180,170,176,109, 11,223, 51,135,118, 89,152, 48,153, 60,207, -201,139, 28,219,113, 16,194,132,175, 88, 64,158, 21, 8, 33,240,131,199,123,113, 15, 33, 4, 90, 27,173,136,235,186, 76, 38, 99, - 92,223, 37, 75,115,124,207,197,100,194,135, 80, 11,234, 90, 16,204,166,113,126,224, 81, 73,115,190, 65,141,229,185, 20,165,137, -124,181, 53, 36, 89, 74, 24,134, 56,142,141,227,216,248,190, 71, 16,134,132,225,172, 17, 15, 2, 92,215, 38,207, 11,236,149,141, -141,175, 85,101, 73, 93,153,165,189,235, 90,120, 65, 96,254,236,121, 8,171, 70,107,195,234,181, 45,135,178,204,177, 92,199,140, -162,108, 19,158, 82,107,205, 92, 59, 34,240, 3,108, 64, 22, 37,205, 40, 50, 59,111,207, 16,226, 74,165,208,182,241, 28, 86,234, - 71,227,117,215,113, 24, 77, 38,100, 73, 76,150,167,100,105, 78,150,207,114,214,165, 73,233, 17,152, 76, 94,215,178,113, 60,135, -162, 44, 76, 49,225,121,148,101, 65,163,209, 32,147, 41, 69, 81,144, 36, 41, 50,151,168,202,216, 12, 30,131, 0,202,178, 68,149, -138, 60,207,209, 88,104,173, 40,165,164,217,106, 97, 91, 54, 89, 86, 82, 72,137,192,198, 11, 27,212,218,194,114, 28,132,112, 9, - 27,161,129, 88,216,198,210, 36,106,139,168,217, 64, 35,240, 61, 23,219,117,145,101,142, 16, 22,174,107, 35, 11,243,154,100,165, -200,165,230,250, 97,198,239,189,127,204,183,110, 15,232, 38, 21, 95,188,186,206,165,173, 5,118, 86, 35,180,170,112,103,194,142, -206,114,135,197,149, 14,235, 27,139, 28,159, 78,136,108, 88,155,111,178,180,220,194,241, 28, 6,221,152,227, 65,204,218,230, 60, - 73,109,243, 96,175,207,105, 63,197,247, 28,154,117, 73,203,247, 89, 93,110,209, 10, 92,138, 76,113,120, 60,102,110,103,129,253, -227, 41, 74, 8,100, 42, 57,119,126,149,149,181, 22, 55,238,116,201,138,138, 78,232,160,170,154,163,126,138,210, 53, 97,195,129, - 74, 51, 28, 38, 28,141,114,164,214, 36, 73, 73,154, 11,227, 80,176, 45,186,170,166,219, 75, 40,235,138,166, 5,142,101,211,233, -132,228,129,203, 47,190,121,145,115, 59,139,108,157, 93,102,235,220, 26, 8, 11, 71, 88,252,111, 95,191,201, 63,249,214,109,254, -187, 95,255, 60,235,171,243, 84,115,115,100, 65,135,187, 67,201,111,255,171,143,249, 39, 95,127,159, 59,253,132,191,184,221, 99, - 41,242,217,239, 79,152,228, 5,183,247, 39,156,198,146, 63,254,254,125, 90, 65,136,170, 53,227, 84,209,110,134,252,249,167, 39, -180, 67,139,237,205, 69,174,158, 89, 70,186, 14,235,107,115, 4,205,128,139,231,151,184,122,110,133,133,197, 14, 97, 20, 50,206, - 37, 63,184,211,195,173,107,242, 74,242,242,249, 69, 90,205,128,200,119, 41,138,146,192,210,244, 75, 88, 92,157,195,241, 93,114, - 33,176, 52,220, 57,154, 32,181, 96,173,227,147,150,154, 73, 81,161,171,138,188,182, 24,103, 18, 91, 8, 44,171,166, 80,198,191, - 46,132,153, 4, 57,182, 17, 12, 22,255, 63,204, 42,192,213,203, 79,225,249, 62, 87,159, 58, 79,171, 21,113,249,252,121, 52,130, -134,239,209,105,183, 57,234,118, 57,191,115,134,157,141, 53, 38, 73,194,242,226, 18,142,101, 33,132,160,217,104, 50,142, 19, 54, -215, 86,184,116,126,135,255,251, 79,254, 13,167,189, 30,171, 43, 75,124,230,218, 85,132,101,115,243,214, 29,242,162,224,243,159, -121, 17,219,178,120,251,131,143,184,251,224, 17, 73,154, 97, 91, 54,113, 18, 51,153,198, 28,119,123,148, 85, 73, 85, 86, 79, 60, -176,221,225,136,173,213, 21,234, 26, 14, 79,187, 36,105,138, 44, 37,173, 86,196,198,234, 10,237,150, 25, 49, 78,147,132,219, 15, - 30,114,210,237,145,164, 25, 91,235,171,216,182,209, 9, 32,106,108,199,157,117, 47, 21, 8, 19,162, 36,102,135,187,168,107,140, -245, 71, 60, 57,240,181,214, 51, 33,146, 17,109, 90, 70,217,132,231,184, 52,194,144, 48, 52, 55,107,111, 6,235, 72,227, 49,121, - 26,211,104,132, 84,197,132,170, 44, 16,149, 36,244,106,242,201, 41,101,218,101, 58, 62,164,115,230,175, 48, 58,185, 75,169,143, -136,194, 38,129,103, 68,105, 27,231, 95,160,185,252, 20,253,195, 79,144,249,144,185,149,103, 73,166, 61,146,201, 41, 75, 75,107, -132,110,193,176,119,139,239,191, 29, 80,251,151, 8, 95, 16,244,110, 70,244, 14,110,179,126,246, 57,230,191, 44,184,118,249, 23, - 73,179, 54, 7,183,255, 95,170,210, 16,191, 42,149,162,228,132,100,180, 75,154,100, 84,150, 79,109,249,232,178, 36,108,180,104, -182,218,132,157, 21,227,238,241,182,176,180,195,168,247, 41,147,163,119,152, 28,127,128,227, 47,226,183, 58, 12,123, 15, 72, 78, - 20,197,163, 85,100, 6, 71,221, 93,166,227, 67, 38,189, 27,172,110,126,158,159,249,143,191,202,171,191,241, 34,151,127,118,129, - 69,123,135,147, 3,197,100,120,155,170,136,145,121, 31, 53, 61, 96,122,122, 3,141, 67, 56,183, 69,158, 13, 72,135, 7, 72,105, - 68,115,121,214, 67,102,167,204, 45, 95, 99,121,237,121,180, 83, 19, 15,246, 24,245,111, 51,233,127,130,140,247,201,199,187,200, -180,143, 37,106,132, 46, 16,228, 80,230,136, 42,161, 40, 50,158,121,243, 85,158,121,249, 26, 11, 13,141,183,172,240,183, 91, 68, -219,103, 88, 92,222,129,186, 64,143,118, 25,237,127, 66,127,247, 41,234, 10,166,105,197,240,193, 49,205,179, 46,241,163,123,168, - 60,167,174, 5,158,103,132,169,213,172,131,173,103,235, 83,219,114,145,101, 65, 81, 20, 84, 26, 30,179, 33,194, 70,136,241,153, -128,109,187, 40, 85,128, 54, 34,213,162, 40,158,216,175,125,223, 51,187,110,106, 84, 85,146,166, 41, 65, 16,162,181,177,171,201, - 18,252,192,195,114, 28,170,218, 20,223,181,112, 40, 75,109, 16,222,129,143,170,161,214, 70,100, 87,215, 53, 50,207,141,197,214, - 49,228,182,114,246,221,209,202, 56, 24,192, 50, 13,107,216, 4,109,162, 87, 29,215,153,105,206,204,110,252,241,195,117, 77, 65, -227, 57, 14, 74,105,148, 84, 84,148, 32,106, 28,219, 64,102,116, 53,203, 54,113,141,229, 47, 77, 19, 74, 37,177,132,192,113, 92, - 35,232,171, 5,170,148,212,186,198,178, 29,138, 66, 34, 94,127,235,173, 26, 4,149, 86,200,162,196,243,124,124,223,200,231,133, - 48, 85,180,214, 26,173,181, 9, 75, 41, 37,147,209,248,201,158, 16, 75,224,218,198,238, 38, 48,251,245, 36, 75,105, 71,109, 44, -219,168, 3,245,108,172, 50, 26, 12,208,149,162,209,104,146,100, 70, 32, 99,217,182,121,129, 90, 97,190,203, 53,216,166,107,182, - 44,135,170, 42,205,152, 57, 12, 13,135,126,246, 51,109, 33, 0,141,192, 1, 97,212,249,195,225,136,186,174,141,208, 1,129,210, -154,105,154, 18,184, 30,147,233,132, 74, 85,212,194, 4,212,152,132, 28,155,249,185, 57,116,173,177,133, 33, 18,217,130, 89,225, -160,160, 22, 56,182,139,235, 58, 88,179, 49, 99, 85,105,146,105,130,174,103, 83,130,218,236, 78, 12,225,168,194,113, 28,116, 85, - 49, 26, 12, 40,181,201, 19,246, 29,199,144,199, 48,147,136,142,171,153, 15, 52,255,254,171,171,252,216,211, 43,172,181,108, 70, -227,156, 73,156,114,127,127,200, 52, 41, 57, 57, 26, 18,186, 54, 11,203, 45, 2,215, 38,181, 45,172, 66, 35,199, 49,150,107, 49, -181, 93,210,113,138,111, 11,206,181,124,180,165,241, 29,155, 52,215, 52, 86,219,196,189, 9,161,231,242,224,100,202,184,168,104, -251, 14, 59,171, 17,101, 90,144,229, 21,125, 85, 99,219,166, 97,178,230, 34,138,222, 24,215,178,216, 94,244,233,141, 11,250,133, -162,214,130,200,179, 41, 53, 40, 81,131,212, 96, 9,174, 61,189, 76, 89, 84,220,221, 29,162, 68, 77,123,190, 77,226,216,156,139, - 92,222,122,245, 2, 89, 37,176, 92, 11, 37, 43, 30, 30,143,249,163,119, 30,226,217, 22, 63,255,197,103,120,251, 81,193,255,250, -157,125, 98, 41,112, 92,193,217, 85,151,191,113,185,197,171,103,219,236,108,175, 16,119, 71,104, 27, 74, 85,113, 58, 41,152,102, - 37, 55,247, 83,110, 30, 77,113, 60,219, 20, 77, 82,147,103,102,226,224,139,138,159,126,237, 28,109, 15, 46,173,183,240, 60,143, - 90, 87, 28,244, 19, 22, 91, 62, 75,109,131, 97,244,108,193,221,163, 17,247, 15, 70,204,135, 54,183, 78,167, 28, 29,198,216,190, -195, 66,211, 67, 72,137,244, 60, 22, 35,143,173,149, 5,236,208, 98,216,157,240,207,255,244, 19, 62,218, 29,242,202,133,101,172, -186,230,189, 71, 3,180, 16, 28, 22, 22,126,224, 27,245,186,237, 48,136,115,236, 48,196,183, 29,108, 27, 84,101,174,139, 52,203, -205,161, 53,123,188,249,218,203,124,249,141,215, 57,233,245, 89, 90, 92,160, 44, 75, 70,227, 9,101, 85,209,237,247,201,115,201, -202,210, 2,207, 61,125, 25,223,117,185,113,247, 46,119,238, 63, 66, 41,197, 92,187, 77, 16,120, 92, 58,119, 22, 89, 42,254,224, - 79,191,137,174, 53,159,125,233,121, 46,157, 63,207,100, 26,243,254,141,143, 89, 91, 94,194,178, 45, 62,184,249, 9,131,209, 4, - 81,215,172, 46, 47,178,186,184, 72,119, 56,226,189,143, 62, 6, 75,115,233,236, 89,206,110,110,160,180,230,193,238,222,147,176, - 25,106,144, 74,113,239,225, 30,195,241,152,185,185, 57, 46,158, 59, 67, 20,132,164,121,206,221,135,187, 76,227, 41, 43, 11, 11, -252,228, 91,159,231,185, 43,151,145,165,228,131,143,110,114, 50, 24, 18,204, 66, 49, 74, 85,161, 74,245,100, 29,230,186, 6,236, - 65, 93, 35, 44, 27,106,140,157,105,118,143,112, 28,199,124, 71, 49,119, 83,203,118,152,239,180, 8,124,143, 44, 47, 40, 74, 51, - 41,235,245,251,168,162, 64,250, 75,184, 65,139,197,213,117, 6, 39,199, 84,181,166, 21, 69, 36,147, 62,101,243, 89,158,255,236, - 87, 9,220, 37,110,191,255,191,112,231,230,239, 82,201, 62,182, 29,114,229, 51,111,146,203,144, 44,153, 34,179, 9,181, 46, 81, - 37,140,142,110,178,185,177,129, 31,132, 12,166, 83, 58, 75,203,164, 73, 11,191,115, 1,199,182,168,170,156,107,159,249, 53,190, -252,213,139,188,190,156,115,123, 28,240, 7,255,125,198,173, 27,255,128,221, 7,223,100,235,220, 91, 76,142,111,243,201, 7,255, - 12, 44, 15,219,179,177,181,139,182, 28,180,150,180, 23, 55,120,241,231,126, 30,185, 63, 96,154, 54,201, 51,201,164,127, 19, 57, -222,195, 9,151, 88,217,249, 2, 94,228,227,123, 29,130,246, 89,194,185, 22,148,130, 98,154,147,203, 83, 6,135, 55,216,186,244, - 87,249,202,223,251, 34, 94, 2,163,155, 48, 58,133, 15,190,253, 54, 15,111,253, 62,131,195,119,153,246,238, 82,219, 37,157,197, -103,185,252,218,175,147,103, 61, 38,221,187, 84,165, 70, 8, 65, 89,101,104,153, 35,211, 3,188,112,153,185,245,151,209,197, 20, - 69,137, 42, 51,100, 58, 64, 23, 3,228,116,143, 82,213,184,150,192,115, 44,202,186, 50,247, 99, 89, 50,156, 12,217, 60,123,141, -175,252,230, 31, 16,132,224,159,127,132,144, 67, 6,131, 61,134, 73, 65,171,185, 68,232,218,148,253, 35, 82,177, 64,245,224, 50, - 89, 38, 25,246,239, 82, 4, 31,224,244,238,209,127,112,223, 76,105,103,223,139,186,174, 25, 79,198,102, 71, 37,140, 99, 9, 76, - 82,167,109, 89,216,174,141,146, 21,174, 45,112,125, 31,165, 36, 85,101, 4,114,150, 99, 19, 79, 13, 35,164, 17,181,177, 0,165, - 53,121,154, 98, 89, 14,163,241, 8,234, 26,203,113,105,183,219, 8, 97,145, 36, 9,186, 6,106, 65, 20, 53, 40,114, 73,154,165, - 8,219, 98,174,221,198,158, 21,210,117,173,145,178,152,253,219,138, 60,203,177, 44, 11,199,115,152,239,204,145, 36, 9, 53,134, -207,175, 52,100,169, 73, 51,108,183,219,100, 50,163,152,145,242, 26, 97, 64,146,100, 8, 33,232,116, 90,216,182, 75,146,166, 88, -179,245,113,212,108,206, 62, 8, 77, 89, 25, 80,153, 16, 80, 42,133,107,187,179,244,212,217, 8, 95, 41, 99, 95,110, 52,168,181, - 81,226, 87,165, 36, 78,204,132, 93,124,254, 75, 95,174,139,194,116,190, 96, 70,222,173, 86,147,186,174,201,211, 2, 47,112,141, - 88,161, 52,185,178,211,241, 4,173, 53,237,168,245,163, 40, 83,173,153, 76, 98,168,107,106, 12,223, 55, 75, 50,163, 64,111,181, -169, 49,225, 41,227,241,144, 74, 25, 91, 88, 24,134, 56,182,192,178,140, 87, 60, 8, 3,132, 53, 67,184, 22,138, 52, 79,141, 56, - 64,153,136,189, 70, 20, 33,132, 69,165,202, 89, 53, 47,136, 90, 45,179,203,214,154,209,120, 68,173,107,218,157, 14,106,214, 53, -185,190,225,236, 90,152,159,155, 23,102,239,168,245,227, 93,132,192,117,108,230, 23,230,112,132,133, 22,166, 50, 51, 99, 22, 35, -180, 51,207, 89, 33,149,194,158,249, 7, 17,230, 0, 79,226, 20,199,115,176, 16,100, 73,134, 70, 27,209,158,101,145, 76, 99, 83, -109, 33, 16,212,230,255,233,154, 86, 59, 66,104, 65, 86,100,216,182,197,250, 66,196,122, 75,240,153, 85,193,151,158, 94,228,210, -198,156, 41, 18,138,130, 94,150, 81,230,154,147,211, 9,247, 78,198,108, 47, 7,124,112,239,148,208,242, 56,127,110,149,197, 70, -192,254, 97, 15,207,243,145,181,166, 63,200,112, 93, 65, 62, 78,201,149,198,141,124,220, 90, 48,201, 36,205,170,162,185, 16, 34, - 28, 23,178,146,211, 36,195,179, 5, 89,161, 57,123,126,153,189, 7, 93,243, 90, 29,115,210,207,135, 46,183,186, 41,129, 13,107, -157, 6, 82, 74,166,133, 96,234, 11, 94,189,186,202,207,189,241, 28,147,241,136,193, 40,103,172,106, 58, 77,159,249, 86, 72, 43, -112, 57, 29,197,124,251,250, 46, 55, 30,196,108,173, 52,120,246,242, 58,223,248, 36,230,253, 19,152, 22, 38, 93,111, 60, 30, 19, -250, 51, 91,137, 5, 75, 97, 77, 39,106,114,174, 93, 51, 76, 36,221,113,129,210, 53,123, 3,179,203, 47,102, 78, 5,215, 55,172, -129, 74, 87, 68,141,144, 36, 73,104, 52, 26, 38,248, 66, 20,156, 91,242, 89,107,212, 92, 93,116,136,243, 10,148,226,245, 75,107, - 68,145, 71,224, 57, 4,158, 67,232, 90,100,165, 38, 79, 36,119,142,198,228, 73,206,211, 23, 87,144,165,226,189,235, 71,220,186, -115, 74,179, 1, 87,182,150,185,175, 29,254,229, 95,220,229, 43, 47,172,211, 9,124,254,135,223,191,142,237,219, 44, 47, 68, 28, -156,164,248,161,207, 52, 43,152,230, 37, 11, 59,231,112,130, 6, 69, 28, 83,201, 28,153,165, 84,165, 34,151, 6,178, 4,102, 77, -244,183,127,253, 63,100, 52,153,112,243,246, 61,238,220,127,192, 36, 78,233,180, 90,196,105,202, 92,167,205,171,207, 63,203,198, -234, 10,182, 37,248,238,123, 31,114,218,235, 18,133,134, 17,241,212,206, 25,222,124,237,101,238, 62,216,229, 95,252, 63,223, 96, - 99,101,133, 87,158,123, 6,215,177,105,183,219, 92,190,112,142, 78,171,197,237, 7, 15,153, 76, 38,252,240,227,219, 60, 60, 56, -100,103, 99,157,102, 35,100,239,240,136,239,189,255, 33,235,171,203, 92,121,234, 2, 43,179,194,226,131, 27,159,112,127,111,159, -243,219, 91,204,207,117, 40, 85,201,163,131, 35,226, 36,229,194,206, 54, 11,157, 14,211, 36,101, 18,199,244,134, 35, 60,203,226, - 39,222,250, 28,207, 95,189,194,198,234, 10,142,101, 49, 77, 18,222,126,239,135, 12, 70, 35, 4,130,162, 44,153,196,177,225,233, - 55, 27, 70,124,106, 25, 58,101,205,143,214,110,230,128, 55,135,123, 28,167, 12,227, 41, 90, 41, 60,215,163,217, 8,104,206,184, - 12,165, 50,188,136,193,196, 20, 42, 43,173,144,158,242, 89,126,230,167,216,187,249, 14, 66,143,152,159, 95,163, 53, 63,135,142, - 94, 1,171, 61,179, 28,186,104, 85,112,120,247, 79,129, 26, 75,247, 88, 92,217, 32, 30,101,100,217,152, 82,198, 56, 53,168, 90, -209,233, 68, 44,116, 86,201,100, 66,127, 56,166,221, 10,176,133,205,104, 48, 96,146, 78,112,194,115,188,244, 19,191,197,127,243, -247, 63,195, 27,150,203,239, 51,226,214,191,232,240,224, 32, 99,126, 57, 96,109, 94,240,123,255,240,239,243,189,111,254,109,108, -175,137,227,120,212,181, 64, 8,155,178, 42,217, 62,127,141,229,149, 53,100,218,163,223, 61, 33,147, 37,142,215, 33, 92,188, 72, -123,233, 50, 97,224, 19, 70, 77,150,206,254, 44,162, 86,244, 14,191,199,180,123, 74, 58,125,136,204, 99, 46,191,246,159,112,249, -245, 87,200, 15,161,136, 39,120, 11, 17,163,147, 93,246,239,190,205,116,112,159,249,165, 75,172,172,191,196,213,151, 46,130,174, -249,228,227,135,220,254,232,119, 25,157,222, 70, 43, 51,213,208,229,132, 34, 62,166, 22, 62,139,103, 94,161,170, 76,218,161, 42, -198,212, 42,167, 46,167, 84,114, 76,237, 52, 17,117,133, 99,105,168, 45,226, 60,165, 44, 74, 60,215, 34,203, 74,190,240,159,125, -157,213,198, 21,214, 54, 44,188, 57, 72, 39,167,184, 27,119, 40,210, 35, 62,189,251,128,197,230, 28,139,107,235, 36,101,147,228, - 70, 65,247,232,128,172,177,135, 55,120,196,224,222, 39, 84, 85,133, 82,154,102,100, 14, 52, 1,232,186, 70, 22,198,190, 5, 16, - 69,209, 19,202,103, 16, 4, 40, 85,206, 38, 98, 2,203, 49, 99,240,170, 52, 92,145,178,170,104, 55, 91, 70,200,173, 36,174,227, - 51, 25,143,168,171,218, 76,165, 42,147, 87,223,142, 90,179,166, 84, 60,209,121, 61, 9, 10,211,154,199, 62,242,102, 51, 66, 8, -243,154, 12,113, 52, 67, 96, 58,125,207,241,104,181, 91, 51, 62, 5,100, 89, 10, 66,224,187,254,140, 94,170,113, 28, 11, 33,106, - 4, 70, 99, 83,228,146, 66,154,162,160, 25, 53, 9,253, 16, 48,163,117,171, 6,109, 25,135,190,133, 17, 53, 87,162, 70,101, 5, -126,163,129,109,217,148, 50, 51,235,105, 97,211,108, 24,252,172,235, 26, 86,126, 50,141,169,170, 10,219,182,177,183,207,157,251, -218,227, 76, 87,223, 55, 40, 75,195, 75, 55,233, 48,194,178, 40,139,130,172, 48,226, 2, 0,219,182,104, 52, 77, 8, 10,192,116, - 58, 69,235,154, 48, 8,112, 93,143, 52, 73,241, 92,151, 92, 26,148,230, 52, 49,184,214,118,187, 77, 16, 62,222,125, 27, 5,100, - 61, 27,147,219,174,139,133, 0,203, 84, 71,166,251,181,129,154, 90, 27, 48,141,174,140,157,193,216,132,106,138, 34,159,125,152, - 53, 69,110,178,128,189, 32,192, 17, 80,234,146, 74, 42,180,134,178,148, 63, 18,227,249,190, 9, 87, 17, 22,186,170,176,234,138, - 70,163,137, 16,150,177,219,200, 98,246, 62, 53, 89, 38,141,109,194,182,204, 84, 65,216, 84, 26,100, 33, 13, 76,160,174, 13,255, - 91, 24,241, 70, 94, 20, 6, 84,163, 43,154, 81,227,201,206, 35,240, 3, 28,207,129,122,182,111,105, 4,132,126,136,227,185,140, -146,156,110,172,121,255, 72,241,135, 55,134,124,253,250, 41, 63,184,219, 99,152,107, 66,223, 97,101,169,205,214,230, 2,175, 92, -125,138,179,235, 75,188,120,105,149,181,133, 38,157,208,166,144,154,104, 46, 32,171, 42,100, 94,240,202,165, 85,206,111,207,225, -216, 14, 11,145,205, 87,190,244, 28, 47,191,116,158, 51,243, 62, 31,222,235, 98,105,120,227,229,109, 22, 22,218, 56, 22, 72, 28, - 46,108,180,121,243,217,109,150, 22,155, 44, 69, 46, 23,182,231,248,202,151,159,231,236,206, 34, 79,159, 93,224,210,106,135,103, - 47,173,113,254,252, 18, 59, 11, 33, 75,139, 17,109,223,167,237, 59, 20,182, 77, 16,134,172, 47, 68, 44,182, 2, 38, 73,206,255, -245,111,111,243,175,223,219,103,103,125,142,179, 59,203,220, 79, 93,254,143, 15, 19,110,158, 84,168,218,126, 50,241,105,132, 33, -113,146, 80, 86, 10,199,114,232,197,166,104,184,221,147,220, 62,138,217, 31,100, 28,143,114, 42, 12, 25, 80, 87,149,153,234,216, -246, 19,241,162,101,217,164,211,137, 81,132,151, 10,237, 55,121,112,154,242, 96,234,240,205,123, 41, 55,123, 21,223,123, 48, 7, - 98,131, 16, 0, 0, 32, 0, 73, 68, 65, 84,225,127,254,214, 67,222,190,117, 66, 35,244, 56, 62, 29,211,108,120, 44, 52,125,176, - 96,125, 53, 98,125,185,141,231,185,248,174,224,185,167, 86,184,176,185,128,171, 37,125, 4, 39, 73,197,235, 79,175,178,222,176, -120,247,198, 1, 39,147,132,170, 18,140,227, 12, 74, 73, 5,132,190,207, 52,251,255,168,122,179, 88,203,178,243,190,239,183,214, - 94,123, 60,195,157,111, 77,221, 93, 61, 84,179,155,100,115, 16, 73, 49, 98,147, 52,105, 65, 20, 67, 75,166, 28, 13,136, 37,200, -146, 32, 25, 80, 16,199,136, 13, 89,158, 32,196, 12,226, 0,126,200, 96,228, 37, 72,148, 68, 8, 98, 36,144, 25,217,138,108,208, - 26, 18,205,164, 68, 54, 91,156,123,170,234,174,170,174,186,117,235,142,103,220,243, 26,242,240,237, 91,132,251,169,128, 70, 85, -157,186,123,159,181,190,239, 63,138,130,125,239,218, 53,226, 52, 35, 45, 10,246, 46, 95,197,100, 41,121, 81, 72,217, 11, 96,123, -199,131,227, 35,178, 52,231,228,252,156,217, 98, 73,145,165,148,117, 69,221,118,172,150,107,238, 62, 56,100,190, 92, 81, 53, 13, -111,220,126,155,197,114,197, 98,181, 38, 75, 83, 41, 63,234, 36,236, 98,182, 92, 74,101,163, 86,172,202,138,178,105, 72, 34,141, - 11,162,180,189,117,247, 30, 47,125,243, 91,204,103, 75,146, 44,102,127,123,135, 36, 77,184,121,251, 46,207,223,120,134, 23,222, -241, 12,143, 93,185, 76,219,118, 28, 28, 31,115, 54,155,147, 23, 25,219, 91, 27,160, 52,119,239,221,103, 92,140,185,178,191, 71, - 20, 41,170,186, 97,190, 92,225,157,227,234,149, 75, 92,222,223,151, 34,151, 36,198, 35,234,225, 60,203,184,247,224,144, 55,223, -190,199,249,124,206,108,185,164, 72, 82,242, 44, 19, 1,156,150, 56, 78, 31, 60,189,247,120,103, 33, 72,241,197,241,108,198,157, -123,247,153,205, 22,196, 73,204,100, 92, 48,202,115,161,207,156,195,186,142,186,233,134,115, 64, 17, 17,136,146,136,173,247,189, - 23,147,188,155,229,249,140,197,217,125,178, 75, 99,148, 11,172,150, 71,212,229, 41,235,243,183, 41,203,131, 71,103,141,115,208, - 46,239,145, 23, 9,121,162, 72, 99,131,199, 17,250,142,182,169,232,186,134, 52, 86,108,111,110,179, 44, 59,214,203, 53, 79,223, -120,134,237,233, 38,145, 42, 89,157,125,135,223,253,141,146,111, 47,223,199,248, 67, 41,233, 99,138,228,118,194,124, 9, 59, 63, - 9, 63,244, 51,207,163,226,255,148,215,191,244,235,116,213, 17,206,214,184,190, 34,184,134,197,233, 93,202, 70,145,231, 91, 16, - 69, 68, 42, 70, 71, 26, 95,159,145,166, 49,249,120, 3,101, 58,178,228, 49, 20, 17,203,147,123,156, 62,124,137,229,193,215, 48, -217, 38,121,122,153,178,205,169,117, 70,185,120,200,226,224,219, 84,235, 99,234,102, 65,156,110,243,241,207,252, 36, 79, 63,191, -141,243,154, 91,111,156,178,120,248, 58,171,229, 3,150,167,175,208, 47,223,162, 46,239,210,148, 39, 4,149,178,251,248,199, 89, -159,126,147,190,153,225,109,133,107, 23, 4,187,198,119,115, 86,203,135,196,163,199,176, 93, 73,215,214,228, 89, 70,145, 8, 12, -220,180,150,190, 93,144,111, 95,166, 94, 29,211,185, 77,180, 25,115,126, 18, 56,124,237,144, 70,159, 17,183,107,206, 22,231, 36, -241, 68,154,219, 78, 87, 52,205,130,182, 59,164, 59,121, 72,179, 92, 72,236,234, 96, 99,118,222, 99,187, 14,165, 2,113,150,136, -102, 42,120,250,182,149, 51,216, 8,180, 61, 30, 10, 79,180,142,168,171,106,184, 84, 69,131,149, 38, 25, 77, 47,194,179,182,105, - 49, 90, 68,204,113,154,208, 54, 29, 40, 8,206,209,180, 98,145, 70, 5,218,170, 37,120,201, 93,111, 91,185,167,188,119, 56,231, -233,123,249, 60, 77, 85, 19,212,144, 98, 58, 64,241, 1, 17, 93,247,157, 31,104,100, 81,211, 95,136,236,146, 88,238,212,190, 23, -173, 64, 20, 69,196,177,161,174, 27, 2,138, 60,205, 30,157, 99,121,150, 97,123, 71, 98, 98, 2, 82,174,166, 34,141, 15,129,216, -196, 84, 85, 5,120,178,124, 68,150,101,128,116,112,244,189,165,109, 90,154,182,193,251,192,100, 99,138,137, 34,212,135, 62,250, -177,112, 1,181, 39, 73, 60,112, 92,142, 72, 27, 20,208,217,158, 40,210, 3,124, 17, 33, 56,132, 36,237,244,174,167,107, 58, 2, -158,182,181, 76, 38, 83, 34, 21,177,172, 74,240,110,176,164, 41,130,210, 40, 29,177,177, 33,113,126,206, 15,118, 50,165, 72, 98, -241,141,247, 93,135,127, 4,141,203,176,224,131,100,194,167,121, 38,144,135,150,191, 94, 56,203,136,174,107, 88,151, 82, 26,159, -101, 25,206, 59,210, 36,102, 60,222, 16, 14,127,128,253,163,200, 16,199, 17,109,219, 11, 60,110, 61, 74,131,119, 14, 99,244, 35, -139, 80,215,119,244, 78,248,189, 56,142,176, 78,126,168, 33, 4,130, 82,196, 81,132, 86,129,206, 5,241,204,231, 57,117,221,208, -119, 45,105,146,226,181,162,169, 43,172,149,164,161,241,120, 76,211, 52,104, 21,145,166,223,229, 83,234,186, 70,105, 77,150, 36, -195, 11,214, 51,153, 78, 9, 3,188, 51, 30,141,136, 76,204,106,177,224,210,196,176,159, 90,158,158, 88, 94,124,126,159,107,227, -148,235, 87, 55, 48,145, 38,213, 2, 99,250,182, 71, 5,143,211,129,186, 15,120,109,208,214,225,149,199, 4, 69,146,202,118,180, - 92,247, 36, 69,138, 13,154, 88, 7, 9,245, 24, 66,117, 76, 36, 41, 73, 90, 71, 88,107,241, 1,148,130,216, 72,229, 96, 28, 41, -148,142,200,140,162,237,157, 12, 52,218,176,232, 58,190,117,243,152,255,231,207,223,228,107,111,157,242,253,223,251, 52, 87,174, - 94,230,255,125, 99,193,183, 30,212,172,170,146,216, 36,108,109,110,202,144,136, 8, 33,189,247,172,215,107,226, 72,147,230, 57, - 85, 89,210,118, 61, 46,120,242,172, 32, 56,135,117, 14,235, 29,249,224,196, 8, 33, 96,157, 35, 29, 54,252,213,106,137,239, 90, -200, 10,138, 52,166,237, 58,166,147, 41,193,123,225,197,203,122,160,118, 68,236,162, 35,205,149,177, 33,154, 31,242, 19,223,123, -133,159,248,196,115,116,214,225,156, 3,100,152,212, 70, 97,208,228,105,204,186,110,249,191,127,239, 85,222,247, 61, 79,113,116, -239,156, 47,254,197, 91,252,225,235, 39, 24, 99, 88,218,192, 78,166,153, 53,208, 39, 57, 71,171,146,170,181, 60,255,158,119, 99, -138, 41,182,235, 69,252,210, 59,180, 25, 6, 72,173,169,170,138,123,183,110, 50,205, 50,118,182, 55,120,112,124,202,254,238, 54, -169, 73,184,118,245, 50,101, 93,243,230, 91,119, 57,157,207,185,122,121,159, 34,203,104,154,134, 85, 41, 33, 48,219,219, 91, 92, -218,222,100, 50, 26, 49, 95,173,216,218,152,130,210,178, 81, 69,226, 22,153,142, 10,166,211, 49,119,239, 31,242,165,151,191, 78, -221,212,108,109,108,176,191,179, 13, 90,243,202,235,111,240,153, 79,124,156,103,158,186, 78, 93,215, 28,157,207,120,245,245,155, -188,250,230,109,158,124,226, 49, 46,239,238,162,148,226,245, 91,111,242,161,247,190,192,229, 75,251,124,253,149,215, 56, 60, 60, - 98, 85,149,108,109,110,240,248,213,171,188,243,153, 39,121,236,202,101,166,163, 49, 81, 28,225,157,231,149, 55,110,241,205,215, -222,224,240,228, 4,173, 13,211,113, 65,154, 36,196, 73, 76,145,166, 20,121, 54, 8,246, 86,116, 93, 71,211,182, 4, 2,139,229, -154,213,170,164,233,164, 48, 39, 75, 12,211,241,152,201,100,130,137, 13,120, 79, 64, 68, 83,117,211,210, 89, 75,162, 3,182,235, - 81, 59, 55,200, 38,215, 88, 55,134,135,111,127,135, 84,149, 60,243,142,231, 89, 55,154, 85, 41, 48,173,247, 13,205,242,152,221, - 39, 62,204,165,235,159,164,158, 29,242,210,239,252, 50,151,158,121,142, 60,153,178, 57, 25, 51,159,157,179,108,114, 30,127,215, - 95,197,119, 29, 7,111,124,158,103,158,124, 74,132,192, 65, 46,132, 16, 20,121,166,104,124,198,218, 78,209,233,147,108,236, 60, - 67,140,163,111,123, 62,240,169,159,230,159,255, 34,124,129, 5, 47,253,230,132,223,255,151,191,198,201,237, 63, 97,231,218,247, - 18, 66,203,205,175,254, 95,156, 29,124, 13,157, 21,100,217,246,192,135, 74,191,198,104,235, 18,207,188,247, 19,196,145, 99,177, - 4,162, 49,245,226,132,234,236, 59,120,165,184,242,236,103,217,220,122, 2, 27, 60,147,173,109,218,166,161, 89,157, 19,130,163, - 44, 15, 25,231,151,185,241,142, 31, 67,233, 2, 59,174, 41,237, 57,253,225,109,102, 39,183, 57,188,243,135, 28,223,254, 34,217, -232,113,254,242,143,255, 47, 60,247,119,223, 77,248,227,192, 31,255,230,255,201,171,127,242,143, 72,139, 9,125, 22, 99,203, 57, -190, 77,248,216,103,255, 59, 84,182,199,209,155, 95,224,224,245,223,166,111,103, 4, 20,125,215, 99,189,198,181, 11,174, 61,255, -195,100,155,215,200,211, 45,210, 98, 7,175,192, 86,231, 88,247,128,241,214,156,245,242,156,189, 27,239,198,205, 55, 72, 47, 7, - 92,215,114,246,246, 77, 38,101,205,106,245,144,120,120,174, 38,142, 9,192,186,148, 90,239, 34, 47,112,193,131,119, 88, 27, 48, - 70,224,242, 60,203, 72,243,156,224,164, 48,201, 40, 40,235,154,190,239, 24, 23, 57,235,166,129,160,201,178,152, 44,203, 33, 4, -170,178,146,203,124, 88, 6,171,170, 38, 49, 9, 23,125,247, 81, 20,161,180,122, 20,132,147, 12, 27,191,137, 52, 89, 33,155,116, -223,246, 24,173, 49, 89, 10,214, 18, 84, 4, 58,224, 90, 17, 95,167, 3, 34,172,144,182, 70, 65,169, 69, 55,146,101, 25,126,104, -128, 19,250, 54, 80,151, 53,163,113, 65, 83,215, 68,198,176,185,185,137,115,158,166,111,193, 57,148,142, 81, 74,196,149, 73, 26, - 83,151, 13, 89,150,224,131,150, 42,226, 8,186, 70,114, 91,236, 32,240, 67, 49, 12, 57, 17, 6, 37,165, 42, 90, 71, 2, 47,171, -193,135,173, 21, 0, 81,164,136, 76,140,209, 26,239,229,162, 88, 46,151,100, 89,134, 49, 9, 62,246,143,138,238,163, 40, 2,173, - 25, 23, 5,179,249,140,160,181,112, 24, 90, 83,174,215, 52, 77,135, 49, 18,170, 49, 42, 10,180,146,136,187,162, 24,177, 14, 1, -237,197,123,152,101, 25, 23,138,217,245,122,141,247,142, 16, 28,105, 58, 38, 55,210,172, 22, 37, 49, 46, 72,237,168, 87,158,190, -239,217,222,222,198, 24, 67,213,180, 4,107, 73,243,140,174,237, 69, 44, 97, 27,146, 36,165,170, 42, 76,100,228, 48,240, 1,107, - 35,138,209,136,216, 24,177,218,180, 45, 10,192, 24, 66,104,177, 94, 74,109,240,158,108, 60, 25, 56,142,136,209,192,129, 4,231, - 24,143, 39, 4,111,105,157, 99, 52, 30, 83,150, 37,184, 32, 49,130,198,224,109, 71,221,244, 36,177, 40, 29,241, 50, 56,172,214, - 37, 38,214, 2, 67, 3, 74,155,225,128,140, 97, 16, 34,206, 58,195,188,213,188, 81,102,124,225,206, 41,137,114, 60, 54,213, 92, - 25, 71,188,231, 82,202,118,226,217,219, 25, 51, 41, 82, 46,109,141, 88, 85, 45,143, 93, 78,169, 74, 71,158,229,114,161, 33, 28, -119, 58, 73, 1,200, 98,177, 54,101, 38,150,151,179,211,100, 89, 68,215, 5,186,182, 33, 67, 97, 35,225,110, 92,217,178,232, 29, -111, 29,174,105,219,142,147, 69,197, 55,239, 47, 89,215,150, 81,172,121, 80, 58,182,166, 57,197,214, 30, 91,207,239,242,219,135, - 61,231, 55, 15, 81, 65, 56,169,116,240,153,206,231,115, 76,100, 48,169,228, 11,120, 16, 47,169,214,128, 34, 47, 70,196,137,101, - 62, 95,208, 55,141,148, 28,104,141, 81, 12,233, 76, 5,214, 90,234, 70,224,171, 52, 75,201, 39, 19, 98, 38,172,171,146,174,239, -153, 76, 38,180, 93, 71, 28,199,152, 40,102,178,145,208, 54,210,148, 4,138, 36, 73,152, 91, 7,163,199,249,213,151, 23, 44,186, -215,249,207, 62,243, 78,214, 77,160,183,142,117,227,120, 98,119,204,218, 90,154,206,242,249, 63,189,197,170,215, 52,203,146,235, - 79,109, 99,148,227,230,105,197,183, 15, 86, 68,131,165,134,224,113, 62,176, 51, 29,113, 41, 73,104,231, 39,152,209, 20,165,135, -159, 95,111,209, 94,222,101,165, 20,163,209,136,221,237,109, 14, 14, 14, 88, 55, 13,109,221, 48, 42,114,142,203,115,202,186,226, -177, 43, 87,248,208,251, 94,224,225,201, 41,247, 30, 28,202,214, 26,199,128, 84, 62, 70, 90,177, 90,151, 28,159,157,211, 89,203, -249, 92,114,223, 55, 38, 35,105,114,138,132, 15, 63, 60, 58,225,230,157,187,172, 86,107,122,103,201, 51,161, 0, 54, 54, 54, 64, -193,237,131, 3, 76, 34, 34,157,163,211, 51, 14, 79,206,208, 90,211,117, 29,155,147, 49, 27,211, 9, 7, 15,143,176,206,115,124, -122,202, 40, 23, 65, 83, 80,178,145, 39,131, 45,169,235, 58,150,170,194,104,205,249, 98,206,189,135, 71,212, 77,139,179, 14,101, - 20,101, 89,178, 90,173,216,222,218, 36, 53,134,190,235,153, 45, 87, 88, 43,116,138,119, 1, 23, 60, 73,108,216,217,222, 28, 84, -244, 21,206,203, 51,233,123, 89, 42, 98, 99, 8,206,209,129, 4,239, 24,131, 14,142, 24, 69, 93, 61,164,139, 18,182, 71, 19,178, -199,247, 56, 59,182,180,117, 73,140, 97,123, 28, 88, 45, 86,148,213, 18,215, 46,217,123,242, 47,113,253,217, 79,177,191,189,205, -254,245,143,243,210,239,254, 35, 30,220,253, 14,171,233, 22,147,157,125,222,241,194, 15,161, 77, 65, 58,122,156,227,251,127,206, - 55,190,249, 50,207, 63,255, 30,198,211, 13, 90,235,192, 7,202,178,163,108, 22,140,243, 57,109,117,155,183,223,254, 2, 77,189, -166, 94,157,114,112,255, 43,156, 29,255,247,252,212,175,196,252,226, 95,115, 92,218,253, 5,222,126,229, 23,240, 10,158,255,121, - 40,151,127,151,127,246,161, 79,115,120,247,247,177, 33,225, 34,116,198, 59,203,234,228, 54,183,191, 99,120,242,198,123,113,139, - 59,204,206,142,232,250,142,100,180,207,104,231,157,108, 94,122, 23,187,123,207, 19, 84, 77, 94,108, 48, 95,223, 97,126,252, 38, -235,217, 91, 88,187, 38,190, 52, 97,182,122,131, 64, 68,104,122,130,178,148,171, 57, 33,138, 41,166,143,241,131, 63,245,175,120, -241,211, 31,102,244,129,192,173,127,227,185,249,202, 87,137,242,148, 43,239,249, 49, 14,190,249, 27,172,142,103, 92,191,241,227, -252,216,207,255,111,108, 94,134,111,126,227, 30,237,149,235,184,233,123,185,247,197, 47,210, 55, 21, 96, 48,104, 66, 82,208,212, - 71, 4,213, 83,135,183, 69, 83,228, 45,161, 45,233,219, 35,162,253, 45, 30, 30, 30, 98,146, 49,244,151,137, 87,129, 46,158,211, -189,125, 68,241,216, 62,179,179,134, 36,145,179, 78,161, 80, 90, 49, 25, 79, 88,175, 75, 34, 45,244,165, 2,198,147, 9,125, 47, - 40,172,247, 94, 28, 89,189, 32,198,102, 52,194, 90,169, 10,111, 58,241,122, 39,153,164,147,198,102,112, 57,121, 79, 28,197, 84, -205,138, 16, 68, 35,166, 52,244, 77,207,198,198, 6, 23,101, 46,109,211, 50,153, 22, 68, 58, 70, 43, 45, 41,165, 26, 22,171,133, -252,185, 38,197,245, 61, 89,118, 17,136,227, 72,211,152, 81, 38,113,178,117, 93, 19,169,128, 34,193, 7, 79,145, 20, 4, 29,240, -206, 98,123,177,220,181,173,240,235,206, 57,186, 89, 43, 25, 45, 90,188,247,105,154,146,133, 20,111, 2, 65, 65, 91,215, 4,175, -168,214, 21,105,150,128,146, 90,113, 34, 9,183,233,123, 41, 86,139, 34, 77,150,102,148, 77,245,200,174,109, 46,210,104, 34, 37, - 98,149,225, 46, 7, 2,174,151, 73,196, 4,168,235, 53, 74, 69, 44,151, 75,225, 51, 52,162,152, 79, 98, 50,159,211,183, 29, 65, - 41,154,170, 38, 75, 51,244,176, 29, 71, 70, 26,119,242,209, 8,156,163, 30,184,197, 85, 89, 50, 46, 68, 92,215, 91,199,198,198, -198, 35,174,188,105, 91,226, 56, 38, 49,134,173,173, 45,130, 23,200,163,105, 26, 66,164, 25, 79,198,120,103,153,140, 71,104, 37, -112,120,164,245,224, 15, 86, 67,104,135, 92, 96,163,241, 8,235, 45, 93, 59,252,254, 16,104,251,142, 81,158,203, 69, 48, 30,163, - 35,141,237, 36,229, 39,137, 83,241, 16, 58,143,181, 61,182,233, 8, 97,232,203, 86,138,196, 72,171, 14, 4,240, 16,116, 32, 4, -135, 14, 82,181,105,219,150,209,104, 68,185, 88, 81,213, 18,237, 58,158, 76,136,148,180,210, 9, 34, 34,177,147,180,173,164, 84, -121, 79, 91,119, 52, 93, 67,146,165, 76,141,136,255,116,148, 96,187,134,166,235, 5,238,209, 96,147,140,239,156, 91,222,172, 18, -254,191,123, 45, 33, 64,232,164,146,243,137,141, 64,145,104,180,237,120,118, 47,103,219,244,108, 25,152,154, 64,100, 12, 69, 18, -120,253,141, 35,154,166,225,234, 19,151, 88,173,106, 66, 93,115, 84, 90, 94, 61, 44,217, 25, 41,188,210,172,215, 13,235, 14,124, -170,249,242, 61,195,126,218,115,117, 75,177,177, 57,229,218,200,240,179, 63,242, 65,158,125, 98,135,255,227,107, 51,254,224,139, -103,180, 71, 45,238,160, 36, 40,153,134,219,186, 6,173, 81, 33, 48,217,216, 32,205, 82, 52, 74, 2,134, 42,201,218, 87, 64, 63, -188,204, 73,146, 64, 16,126, 53, 73, 83,161,106,198, 99, 25,236, 66,160,107,231,172, 86, 43, 81,200, 42, 37, 16,150,119,164,121, - 70,156,166,108, 38, 9, 40,134,103,230,136, 34,233, 66, 78,146,100,176,140, 40,146, 52, 70, 34, 22, 21, 74, 27,186,108,194,231, -223,132,231,190,254,128, 79,189,255, 42, 95,125,237, 33,127,246,250, 67,234, 85,207,103, 95,124,154,103,174,109,242,163, 47,222, -224,247,191,118,159, 63,251,202,109,138, 88,241,212,227,219,124,223,247, 60,193,205,249, 45,206,150, 45,214, 42, 90, 23,248, 43, - 31,188,204, 63,254,165, 95,164, 89,207,120,233, 27,175,241,167,183, 23,124,233,181, 99,188, 82,120,231, 97, 72,199,170,202, 18, -173, 20, 87,175, 93, 97,107,156, 99,189,231,225,209, 41, 85,221, 16,199, 49, 91,155, 91, 44,203,146,170,174,121,226,177,171,236, -239,237, 82, 85, 21,109, 39, 10,224,224, 47,104, 41,133,175, 61, 93,215,241,224,225, 49, 93,215, 49, 29,143,169,219, 26, 99, 18, -180,130, 75, 59, 59,168, 40,226,242,254, 14, 39,231, 51,230,243, 5,206, 57, 38,147, 41, 31,124,207, 11, 28, 28, 29,203, 64, 21, - 44,109,219, 12, 69, 25,142, 7, 15,143, 73,140,225,185, 27,207,240,236,147, 79,136, 11,197,118,204, 22, 75,154,186, 33, 82,154, -197,114,197,253,240, 96, 8,250,128,141,201, 8, 23, 2,103,243, 5,203,178, 36,120, 73,212,235,250,134,170,145,184,231,170,233, -184,188,231,217,222,220,160,208, 26, 19, 25,234,182,148,243, 70,105,210, 98,132,117,142,186,110,112,214,177,174, 42,218, 94,188, -196,251,241, 54, 86, 41, 34,173, 25,101,153, 12, 75,218,209, 59, 57,124,227,170, 98,214, 30, 17, 5,141,117, 45,147,241,152,213, -106,197,124,126,206,222,165, 43,160, 44,143, 61,126,149, 94, 93, 7,150,188,254,245, 95,231, 91,125,133, 34,112,237,157,159,198, -135, 30,187,190,207,238,165,235,212,179, 55, 88,204, 78,240,221, 28,163, 44, 89, 82,112,116,240, 54, 62, 60, 73,154, 38, 36,169, -161,109,196, 67, 92,174,107, 70,147, 17, 79,109, 77,176,221, 54,171,213,132,108,114,202,253,215,255, 41,191,245,223,252, 3,174, -252,114,207,187, 62,214,114,118,111,196,171,175, 28, 17,127,254, 18, 31,248,143,231,252,210, 43,191,203,127,251,158, 79,113,248, -214, 31, 0, 9,113,154,226,180, 67, 57,197,217,241,235,184,222,113,249,234,117,178,145, 39,213,158,174,174, 8,229,109,108,245, -128,104,244, 62,116,156,211,184,138,245,209, 67,154,229,219,172,231,183, 24,111, 62, 77,150,239, 82, 87, 43,178,241, 62,237,114, - 78, 89, 30, 96,187,154,174, 60,163,107,206,137,182,159, 99,118, 55,112,231,117,197,253,131,151, 89,158,221, 98,189,126,128,214, -154,237,167, 62,196,187,174,253, 32,223,247,233,255,132,249, 44,240,210,111,253, 58,103,103,175, 98,219,115, 66,190, 32,217,219, -192, 30, 88,130,111,177, 58, 33, 10,138,208, 45,105, 92, 3,244,132,182,199,211, 19, 97,241,125, 67, 87, 41, 50,237,169, 14,206, -232,168, 48,161,195,108,104, 70,163,156,126,240,148, 55,117,131,243,210, 33, 97,140, 38,203,114,198, 69,193, 98,189, 20,113,178, -142,112,206, 19,130, 34, 43, 10,148,247,196, 70,236,205,178,108, 9, 31,239,157,151, 14,117, 19, 40,215,107,242, 52, 25, 40, 97, - 9,207, 49,198,144,229, 35,214,171,149, 44, 85, 3, 10,185, 94,175,152, 78,167,128,108,196, 4,201, 14, 24,143, 71,120,165, 48, - 90,122, 79,234,186, 38, 78, 83,148,146,168,218,216,136,229, 25, 20, 93, 43,129,102,137,201,136, 19, 45, 3,136, 86,216,208,211, - 44, 91, 92, 16,101,124,156,136, 48,244, 2, 21,151, 65,160,161,139,122, 82,159, 19, 69, 6,235,123,186,186, 71,233,239, 6,186, - 5, 47,176,127,219, 53, 82, 80, 19, 2,145,210,132, 8,146, 84,154,217,186,174, 37,142,228, 12,213, 58, 34,186,254,244, 51,159, -147, 43, 28, 34, 45,214, 0,231, 3, 90, 73, 72, 76, 18,137,194,123,189, 46,169,170, 26,231, 29, 23,246, 26, 99, 34,186,182,131, - 16, 72, 19, 67,219, 43,178, 60,195, 43, 15, 74, 38,136,166,105, 6,249,189, 35, 78, 50,180,209, 34, 16,240, 18, 92,223, 15, 34, - 57, 9,250, 55,143,120,175,174,151,139, 58,138,244, 35, 27,156, 7,108, 8,143,224,109,173, 68, 60,145,166,169,124, 49,156,244, -241, 94, 60, 80,231, 28, 93,215,161,149, 84,212, 69,145,196,240, 37, 81, 76, 64,120, 71,173, 65,161,105,218,150,200, 68,195,139, -160,229, 65, 15,158,118,165,196, 3, 89, 85, 21, 74,137, 71,176,183,146, 36,148,198,241, 35, 56,185, 11,129, 60, 73, 4, 25, 8, -129,136,239, 54,120, 53,141,244,223,250,190,151,225, 3, 30, 77,137,117, 93,211,116, 50,197, 69, 90, 99, 18,185,128,170,114, 61, -248,159, 37,160, 71,134, 11,105, 43, 34, 64, 62, 46, 72,147,148,222, 5, 44,138,133,143, 89,153, 9,231,161,224,205,117,194, 43, -205,148,159,248,200, 85,222, 58, 91,241,157,163,150,149, 74,121,187,116,140, 47,239,243,176,134, 54,210,236, 95,127,140, 19, 31, -145,239,239, 50,218,223,165,247, 49,155,219,155,108,110,111,243,194,149,109, 62,116, 99,194,203, 15,215,188, 50,131,247, 63,190, -205, 7,174,109,242, 61, 31,122,146, 63,191,189,230,191,254,119,119,135,119, 5,186,222,226,113,196,137,160, 17,182,109,101, 24, - 83, 18,209, 40,150,164, 24,173, 35,226, 88,178,142,219,182,165,235, 59,234,166,166,169,106,170,186,198, 12,239, 77,215, 75,113, -130,247, 14,147, 36,180, 93, 39,124,146, 18,113,203,120, 50, 38, 73,146, 97,250, 85,180, 93,135, 49,137,108,118,198, 72,104, 68, -156, 80,149, 53,222,203, 80, 38, 48, 94,205, 69, 45,106,221, 58,254,240,173, 37, 87, 70,138,207,188,247, 42,239,189,177,203,245, -171, 19, 78,207, 74, 38,211,132, 44,141,121,254,169, 45,174, 95,154,242,214,173, 19,226,113,138, 27, 77, 24,133,192, 56,209,252, -216, 15,190,192, 31,126,251,144, 59,183, 79,249,235,239, 79,201,187, 25, 79,110, 41,246,167,134,175, 30,116, 40, 37,207,141,225, - 32,113,206, 17, 71, 17, 65,107,222,251,204,147,108,111,110,241,220, 51, 79,114,121,127,159,253,221,109,178, 52, 97,148,201,176, - 73,240,162, 93,201,114,225, 5,135,119,166,172, 27, 41,251, 24, 50, 19, 86,213, 26,130,232, 92,198,197,120,208,126,104,230,235, - 53,199,167,167, 52, 77,143,138, 52, 27,211, 41,105, 18, 99,189, 99, 99, 60, 98, 99, 50, 25,172,151,163, 65,196, 38,190,223,229, -122,205,124,181, 36, 77, 82,138, 60,199, 68,154,243,243, 57,179,197,146,186,109,168,234,230,145, 69,117,216, 10,232,251,158,217, -114, 77, 83,213,244, 67, 46,246, 69,135,252,149,189, 93,242, 44,101,190, 90,163,148,100,224, 43,229,241, 33, 32,121, 20,138, 60, -207,196,182,167,165, 84, 67, 43,205,168, 16, 11,169, 15, 98, 95,210,132, 71,223, 51,239, 61,145,145, 36,178,222, 5, 84, 4,164, - 59,120, 28,179,217,156,182,119,148,101,195,179,207, 62,203,184,216, 36, 47,114,146, 56, 3, 29,209,217,138,213,249, 33, 77,121, - 74,181, 58, 96,117,242, 6, 17,107,188,147,152,219, 52, 10,104,223, 16,186, 21,137, 86, 20,121, 74,221, 59,162, 40,112,118,118, -198,106,189,166,200,115, 70,227,124, 88,114,214, 88,235, 8, 90, 17, 69, 41, 6,199,242,228,109, 30,190,253,103,252,203,255,253, - 53,190,252, 71,142, 7, 15,238,113,239,141, 47,176,255,252, 71,249, 59,239,203,184,229,225,217,231,127,154,189,107, 63, 78, 18, -107,150,103,183,137,226, 13,176,107, 92, 91,211,172,143, 89,156, 31, 82, 87, 53,117,121, 78,189, 56,199,186,142,221, 43,151,152, -157,158, 50, 63,126,147,227,155, 95, 98,126,118,147,166, 60,161, 24, 95,230,169,247,255, 36,251,151,223, 71,190,181,197,104,122, -137,174,153,179, 56,121,147,122,121,192,122,246, 6,193, 57,146,209, 54,101,221, 51, 91,220,162, 46, 79,168, 87, 39,212,213, 57, -182, 58,197,182,231, 92,187,241, 89, 86,229,138,251, 55,127,159,245,250,129,120,211,155, 25,170, 92,209,172, 42, 38,187, 55, 88, - 47, 14,113, 77, 5, 64, 62,218, 3,223,225,187, 21,202,246,152, 44, 37,210,150, 34,141,217,217,217,165,237, 61,171, 85,141,237, -150, 96, 59, 18, 12,147, 34,197,249,142,166,149,250, 93,103, 37,122,220,245, 14,165, 21, 74, 67, 18, 27, 20, 10,231,123, 98, 19, -201,115,110, 91,210, 60,147, 68,211,166,145, 51,161,105, 37, 31,164,105, 9, 90, 68,215,106, 56,139,162,225,220,141, 34, 77, 80, -160,149, 65, 33, 67,128,142, 35,240, 98,147,107,234, 86,254, 28, 31,168,235, 18, 41, 10,235, 40,178,161, 25,206, 91,226, 36,166, - 92, 11, 26,109,134, 37,213,245,130, 26,162, 35,218,182, 37, 47,114, 65, 57,179,140, 60,207,233,135, 64, 29,107, 5,205, 75, 77, - 78,154,100,228,121, 70,158,100, 36, 89,138,179,158, 56, 78,240,182,147, 62, 18, 20,222, 5,241,189,107, 77,219, 53,164,105, 2, -120, 17,237, 5,168,202, 53, 89, 38,218,154, 72, 43,113,139,132,128, 13, 2,193,247, 93, 79,116,237,137,235,159,187, 80,131,135, - 32, 13, 65, 90,107,154,166, 21,158,218, 90,202,170,194,123, 79, 64, 20,170, 70, 27,178, 76,120,205,200, 12, 13, 52, 65, 4,105, -214, 90,146, 88, 82,229,154,174, 17, 49,157, 86,152,139,254,215, 65, 24,161, 35, 67, 89,151, 56, 43, 54,175, 40,254,110,191,186, - 49, 82, 38, 99,123, 79,219,117,114,137, 71,154, 72, 9,124, 66, 8,104, 99, 4,146, 11, 34,106, 88,173,214,116,157,132,222,132, - 32,201, 64,109,219,139,152,174,170,104,235, 26,235,130,228,206, 59,121,112,109, 43, 23,173,116,201, 75, 16, 0, 72,175,109, 8, - 97, 8,231,207,137,227, 88, 84,150, 94,196, 19,109, 43,133,244,214,246, 16, 46,212,237,154,160, 53,174,119, 52, 85, 37, 60,220, - 32,208, 75, 18,105,227,105,219,134,190, 23,200,178,110, 27,113, 28,104, 17,129,196, 70,252,238,189,181,104,165,233,186, 22,107, - 45,197,104, 68,150,103, 98, 53,204, 50, 92,240, 82, 20,160, 68, 37,106, 98,105, 36,138,163, 24,165,165,218,207, 90,139, 87,138, -143, 92,139,249,235,239, 45,248,194,159,189,205,227,143,109,115,247,193,140, 98,179, 32, 74, 82,186,214,145, 38, 25,165, 15, 60, -253,248, 14,190,180,168,206, 51, 73, 52, 89, 26,115,109, 26,243,244,165,156, 95,253,210, 61, 14,215, 29,214, 69,252,220,139,215, -248,212, 39,158,229,164, 51,252, 23,255,246, 30,181,143, 8, 62, 12, 1, 36, 14,165, 60,202,203, 48,164, 77,140,235, 26,250,160, - 32, 72,114,148, 28,196, 17,205, 0,177, 22, 69, 65,172, 99, 64,211,118, 45,121, 42,150, 41,165,213, 48, 4,201,159,107,226,139, -254,225,140, 16, 4, 81,202,242, 28,208,131,226, 83, 4, 88, 58,138,208, 90,160,218,222,246,146, 42, 21, 44, 40,105,238, 19,248, - 77,129, 10,104, 29,147,166, 6,175, 34, 94, 58,232,185, 62,106,120,108,119, 66,145, 37,236,239, 20,130, 36,184, 64,239, 61,155, - 27, 99,158,125,106, 31,215, 91,110, 61,152,227,231, 43,222,113,117,139, 75,211, 2,187, 90,178,181,145,242,217, 23,159, 65,197, - 26,235, 33,198,243,213,187, 11, 14,207, 75, 8,158,206,182,164, 38, 25, 98,148, 13, 40,184,126,105,151,219,119,239, 97,189,167, -110,234, 33,134,185,230,116, 49,167,170, 27,146, 56,230,225,209, 49,171,178,228,224,225, 17, 15, 79,207,168,155,134,211,243,115, -150,203, 53,117,221, 80, 14, 91,173,208, 85,226, 48,145, 38, 67, 79,150, 74,226, 96,100, 52, 33,120,242,225,221,246,206, 51, 95, -174, 56,159,207, 57,157,207,121,112,116,202,170,148,195,108,177, 92, 81,213, 13, 16,184,188,183,199,100, 44,221,214, 23, 91,195, -100, 52,126,164,230, 79,210,148,205,201,136,141,233, 20,173, 7, 20, 74,139,232, 76, 71,134, 0, 92,221,223,227,137,107, 87,208, -145,216, 60, 79,102,231,204, 22, 11,140,137,137, 77, 44, 72,152,243,116, 93,143, 15, 66,189,229,113, 66,154, 37, 84,117,195,217, -124, 78, 85,215, 98, 27, 76, 18,162, 72, 44,176, 4,209,245,152, 40,134, 72, 14, 66,148,161,243, 25,243,249, 57,193,123,166,147, - 17,157,237,135,214,197, 30,231, 97,117,126, 74,228,155, 65,253,125, 68,183, 62,198,219, 5,202,247, 16, 52,193,117,232,216, 80, -140, 71,140,198, 19,210, 98,196,178, 92,146, 38, 9,193, 6,146,193,207,127,116,116, 68, 85,137, 23,122, 52, 30,211,117,142,217, -108, 54,124,239,115,214,171, 5, 69,220, 16,181,119, 56,185,243, 59, 60,120,227,119, 57,189,253, 69,110,127,253, 37,110, 53,255, - 17, 63,241,177,158, 79,222,208, 60,224, 18,233,228, 67, 60,245,158, 31,230,195,159,250,175,248,193,159,249,199,236, 62,249,163, -188,246,231,191,134, 11,146,207, 17,186, 14,175,160, 90,156,211,181, 37,121,210,176,154, 29,208,148,167,180,245, 57,116,115,130, -210,100,147,199,233,108,197,236,228, 38,179,243, 91, 44,207,238,178,120,240, 13,214, 39,223,196,117,107,118,175,127,130,113,182, - 77, 90,108,178, 58,185,203,114,118,139,245,252, 62,125,179,162,171,239,179,154, 29,144, 77,159, 98,181,188, 71, 85, 30, 97,155, -146,190,155,227,250, 21,190,159,161, 53,140,118,222, 69, 94,236, 10, 31, 29, 37,164,197,132,224, 59,250,186, 36,205, 99,124, 39, -165, 95,197,104, 76,219,181, 66,193, 42,133,107, 86,120,111,201, 76,198,246,214,136,186,153,211,219, 22,239, 44,109,215, 83, 20, - 57, 38, 75, 41, 75,161,248,180,142,113,206, 2,138,217,233,140,172,200, 0, 68, 17,222,201,125,161,181, 68,133,151, 85, 35, 75, -143,214,244,118, 16, 66,218,158, 72, 71,152, 56,162,235, 44,145,150,193,192, 68,241,208,153,160, 73, 82,121,159, 46,206, 24,239, -122, 84, 36,103,188, 70,145,100, 9, 93,223, 19,156,228,174, 24,109, 32, 72,195,102,211,182,120, 68,251, 37,100, 53,160,196, 91, -158, 38,153, 12, 20, 94,203,103, 72, 98,210, 56, 38,138, 13,209, 48,160, 92,228, 88,228,121, 70, 60,116, 58, 84, 85,137, 82,138, -170, 90,203,249, 25,137,176,187,109, 26, 46,234,156,181, 70,190, 43,120, 70,121, 65,223,203, 61,165, 53, 72, 79,139,160, 0,209, -227, 79, 62,245,185, 72,171, 65,189,106, 36,123, 92, 43, 80, 74,254, 81, 1,242, 44, 38, 49, 41,121,145,201,135,138, 36, 72,191, -170, 74,162, 72,252,219, 38,210,120,157,200,164,100, 37,180,223, 59, 47, 31,160, 40,104, 58, 73,229, 17, 78, 25,210, 52,126,228, -225,139,227, 88, 90,167,218, 22,148, 76,236, 23, 28,100,150, 37, 24,147, 16,199,178,237,121, 36,154, 86,161,112,189,101,181, 30, - 96,110, 96, 60,154,160, 81,100,133,148,179,120, 4,125,104, 26, 81, 7,134, 16, 96,168,150,141, 34, 9,206,183, 85,133, 11,138, -201,116,140,235, 3,253,192,245, 37, 38, 65, 27, 77, 85, 87, 36, 73,130,117, 98, 23,184,200,234, 77,210, 4,105,208,145, 90,206, -166,109,232, 7, 24, 8, 2,113, 18,227,131, 88, 37,186,190, 35, 56,249,117,164, 34,172,147,162,123,239,189, 12, 33,195, 38, 89, - 87, 13, 73,158, 80,150, 21, 23,181,180, 89, 33, 74,207,170,174,240,202,147,167,133,252,187,162, 24, 53,188,233,129, 64,231,228, - 69, 86, 74,146,187, 66,215,242, 79, 62,115,141,215,190,249, 22,223,252,250, 27,156,246, 70, 46, 43, 29,161,202, 30, 95, 85, 20, - 17,236,239,142,121,229,173, 19,178,166, 98,172,122, 46, 79, 83,186,166, 35, 9,158,127,246,135,119, 56, 90,183,216, 30,174,108, -166,252,207,127,255,175,176,116,240,247, 62,127,139,219,103,149, 12,110, 77, 75, 22, 39, 16,137,157,163,233,106,121,217,116, 16, -232, 89,121,178, 34,151,144, 9, 45, 95, 1, 63,100, 22, 95,212, 17,246, 3, 42, 99,146,152,174,105, 64,235, 1, 1, 81,131,187, - 64,225,250, 94, 4,112,113, 76, 59,160, 26, 93,215,226,156,195,133, 48,240,215, 61,146,108, 24,136,180,162,181, 61,227,209, 68, - 6,206,174,195, 6,113, 67,120, 2,145,209, 40, 21, 73, 67,148,243,252,241,205, 57, 55,166,129, 23,158,216,166,108,122, 17, 70, -133, 0, 65, 81, 55,162,148,221,155, 36,188,176, 99,184,114,117,135, 91, 71, 53,166,169, 57, 89,212,204,208,252,240, 71,158, 98, -111,115, 68,221, 57,138, 84,168,167,151,238,150,148, 85, 73,132,162,110,106,148, 14,104, 37,220,163, 15,138, 44,138,120,229,230, -155,220,186,115,151,195,147, 51,102,139, 5,135, 71,199,204,230, 11,238, 31, 30,113, 58,155,115,116,122,198,124,185, 98, 85,150, -178, 45, 55, 45, 93,223, 63,138,107,222,152, 76,184,188,191, 39,223, 23, 29,177,177,187, 75, 49, 25,203, 80,170,101, 0, 55,198, - 12,195,208,176,185, 16, 48,209,208,107,224, 29,103,179, 25, 7,135, 71,172,171,154, 11,120,114, 49, 64,149, 69,150,179,179,181, - 69, 80, 18,224, 52, 95, 45,105,187,158, 36, 54, 92,185,114,137, 43,219,219,152, 68, 54, 36,231, 60,214,123,156,119,204,206,231, -188,126,251, 46,227,124,196,254,206, 22,105, 42, 8,206,233,217,140,217, 98,201,195,147, 99,230,139, 37,199,103,231,204,151, 43, -250,129, 39, 77,147,152,178,106, 36, 52, 42, 4,154,182,101,177, 90, 49, 91, 44, 89, 87, 53,222, 89, 70,121, 78,150,166,120, 47, -136,157,216,146, 26,210,233, 62,155, 91,155, 52,229,138, 40,214,132,160, 57, 61, 57,130,225,123,145,100, 9,109, 35, 97, 77,147, - 34, 35, 78, 13, 58,244, 24, 35,142,129,243,217,154,227,195, 59, 44,207,142, 56, 60, 58,225,248,232, 1, 93,211, 48, 30,141,233, -172,124, 87,139,162, 96, 60, 26,227, 92,201,106,177,226,244,252,156,201,120,194,214,214, 54,145,246,180, 14, 98,147,202,153,163, - 20,163,209,148,237,173, 41,151,246,246,217,220,119, 28, 61,120,153,127,245, 91, 45,183, 86,239,100,227,131, 10,123, 47,231,225, -189,183,248,232,139, 79,176,179, 27,152,108,237, 51,218,249, 48,247,223,248, 19,218,245, 49,232,152, 72, 27,140, 73, 88, 47,142, -169,150,103,104,191, 68,133, 6,215, 28, 83,151,231,168,126,142, 86, 45,203,249, 67,170,179,251,156, 31,124,153,213,209, 55,168, -151,183, 73, 70,251,236, 94,255, 56,239,122,255,207, 82,164,219, 60,245,194,243,236,237,190,139,227,163, 59, 44, 79,223,160, 93, -221,161, 57,123,157, 98,242, 52,147,189,119, 18, 97,201,199, 59,172, 23, 15,104, 87,119, 9,118, 69,219,159,226,109,198,120,231, - 6,251,215,191,159,235,239,248, 4,219,143,191,143,182, 60,167,173,142, 9,190,167,199,144,196, 26,232, 25,101, 6,235, 32, 50, - 9, 85,125, 6,173,160,165,211,105,193,114,249, 16,219,183,100,121, 46,225, 95,163,130,170,108, 72,146, 24,112, 88,235, 72, 19, -131,183, 22,107,165,182, 56, 47,114,209,211, 84, 53,189,237, 49,137, 80,118,203, 82,212,239,121,150, 19,153,132, 36,145,226, 49, - 99, 12, 33,210, 4,239, 73,211,140, 60, 17,158,187,183, 14, 21,164, 19, 61,138,227,129,163,239, 40, 70, 5,206,123, 70,163, 17, - 73, 28,211, 13, 17,177,121, 94,128,146, 69, 45, 54,154,182,151,134,207,216,136,230, 9,148,200,163,188, 27,218, 66,229,251, 85, -150,149,156,127,214,203,121,166,244,163, 0,154,246, 34,221, 52, 72,244, 45, 12,231,181, 10,172, 6,103, 73,211, 52, 88, 43,193, - 86,197,104,132,119,110, 8, 70, 83, 40, 31, 30,157,147,214,245,168, 72, 65, 80,196,198,160,148, 36, 47, 70,143, 93,191,254, 57, -165, 53,200, 2,131,117,158,216,200, 95,134,247,100, 89, 70,211,246, 36,169,108,206,177, 49, 18,159,167, 21,120,143, 13,110, 8, -252, 16,222, 54, 4,233,148, 14, 46,144,141, 10,226,200,224, 58,139, 49, 9,193, 13,226,167,216,160, 34, 45,121,182,182, 35, 75, - 51,218,190, 37,248,128, 29, 96,237,174,235,176,206,146,101,169,108,129,195, 67, 98, 56,192,215,171, 21,101, 85, 14,246,129,152, -209, 40, 39,104,141,209,145, 92,254,214,177, 90, 47,209, 65,242,234,139,241,152,241,104, 68,158,229,128, 52,228,164,105,138, 87, -138,241,116, 76, 20, 69, 92,228,242,218,206,138, 7,223, 65,154, 9,199,107,140, 28,142, 10,201,181,191,224,123,173,181, 52, 67, - 56, 65, 8,129, 98, 60, 66, 69,234,223,203, 9, 63, 9, 75, 0, 0, 32, 0, 73, 68, 65, 84,207,111,170,134,222,246, 4, 37,151, -212,120, 60, 38,207,115,148,252,216,209, 90, 81,215,173,240,194, 54, 48, 29,143,232,173,101, 84,140,228, 50,114,194, 59, 37,137, - 12, 77, 10,217, 76,211, 44, 39, 78,100,211,205,179, 12,107, 61, 62, 56, 92,223,243,193,235, 83, 62,126, 69,241, 23,247,214, 44, -108, 76,148, 68, 60,117, 73,244, 3,213,172,100,127,175, 96,188, 53,226, 75,183, 78,217, 75, 35, 82,235,217,154,102,196, 33,144, -230, 49,255,227,151,239,115,127,222, 16, 71,154,186,131,255,225, 23,191,143, 43, 91, 35,254,206,111,222,227,238, 66,218,200,100, -192,113,100, 69, 38, 23,110, 36,185,248, 42, 40,186,178, 68,235, 8,156, 39, 49, 18,121, 88, 87,149,124, 1,252,197,151, 74,126, - 61,153, 78, 6,136,171,196, 13,238, 3,169,195,149,173,188,235,186, 71,112,237,186, 90,227,157, 80, 43,192,144, 90,152, 12,195, -102, 44, 83,183,119, 36, 73, 74,240,129,174,235,136, 35, 25, 24,146, 56, 17, 58,196, 57, 20,154, 44, 75, 72,147, 76, 56,235, 16, -241,218,237,135, 28, 30,157,243,193,103,247,112, 94,188,212, 90, 11,186,212, 44,215, 60, 60, 56, 98,243,210, 37,174, 95,223, 99, -190,110, 80,235,134, 47, 31,158,145,228,134,127,241,123,175,242,246,237, 51,126,251,171,119,249,228,251, 31, 99, 51,143,248,163, - 55, 78, 89, 53, 94,168, 35,107,233, 26, 41, 21,234,122, 75, 99,123, 54,243,130, 34,207,232,123,203,168,200,169,235,150,205,233, -132,221,237,109,210, 56, 38,205, 82,182, 54, 37, 76, 35,207,114, 54, 38,242,222, 84,117,205,104, 52,226,198,147, 79,112,245,242, - 37, 2,130, 76, 41, 4,137,218,185,124,153,237,221, 29,116,154,162, 99,121, 38, 1, 65,158,188, 15, 92, 84,197,234,129,102,210, - 81,132, 15,129,190,151,129, 22, 36, 44,230,124,190, 96, 54,159,163,149, 38, 54, 17, 77,215,211,181, 61, 77, 39, 54,157,174,179, - 28,158,158,242,224,225, 17,214, 9, 77,180, 88,172, 57, 61,159, 83, 14,158,246, 7, 71, 71, 88,107,217,217,222,100,127,123,139, -221,237, 45,182,166, 83, 46,237,237,145,165, 9,167,231, 51,170, 90,162,102,211, 84,138,153,138, 44,103, 52, 42,200, 83,105,106, - 12, 65,134,237,182,109, 89, 87, 53, 77,219,162, 35,121,207,162,225,255,107,173,176,253, 10, 19, 79, 24,109,108,163,157, 35, 73, - 97,111,111,159, 36, 78,105,218,154, 44,205, 41,178,148,211,243, 99,140,201, 8,192,100, 58,197,117, 45,243,249,138,107,207,253, -135, 60,245,238, 31,197,121,199,106,113,128,107,151, 4, 20,214, 71,168,200, 8,197,228,123,156, 21,157, 64,106, 32,224,153, 47, -214, 84,101, 73, 62,158, 50,202,115,146, 56,198,217,142,166,174, 7,209,167,156, 19, 93,227,104,150, 15,208,213,107,124,231,207, - 62,207,183,254,205,203,220,125,243,203, 60,120,235, 43, 52,230, 6, 63,251,115, 35,174,221, 48,180,179,167,185,246,158,159, 34, -219,216,162, 94,157,177, 58,123, 11,103, 7, 61, 80, 61, 99,189, 92, 48,159, 29, 83,151, 43,218,186,100,185,156,225,218, 53,169, -169, 9,110, 5,174, 71,227, 81, 10,188, 45,113, 42,166,152, 92,197,134,192,157,155, 47,179, 88, 46, 89, 46,110, 82,207, 95,161, -155,223,164,179,138,231, 62,242,183,185,122,253, 69,162,108,194, 11,239,255, 33,130,154,208, 84,247,153, 63,252, 22,213,236,140, -189, 39,191,159, 27,239,255, 27,220,120,238, 47, 17, 66,130,237, 78, 9,225,148,106,118, 31,219, 59,242, 52, 33, 73, 32, 56, 79, -239, 53,231,179,115,156,183, 20,105,193,214,206, 46, 79, 62,253, 24, 85,179, 32, 73, 98,218, 78,242, 6, 70,227, 17,206, 65,219, -212,152,120,208, 44,165, 41,182,151, 2, 23,173, 53,197,100,132,210,122,184,108,123, 57, 27, 8,104, 68,255,212, 59,247,200,134, -230,125, 24,150, 55,169,229,206, 82,217,154,219, 78,238,145, 56, 54,232, 40, 22, 29, 71, 16,109,149,237, 45, 89,146,224, 93, 32, -203, 11,218,166, 37, 47, 10, 65,112,181,145,184,226, 84,144, 71,133,148, 23,121,235, 72, 50,137,129, 77, 98, 67, 58,160,185,202, -122,210, 44,197, 5, 79,112, 1,147,198,143, 80, 65, 51,160,148,242,201, 3,125,215, 62, 66,168,154, 70, 10,210, 66,240, 2,173, -183, 13,218, 24,210, 84, 4,227,113, 28,147,166, 41,125,223,147,100, 41,113, 28, 99,251,142, 56, 78,200,226,148,139, 52, 61, 29, - 71,242,157,184,250,248,227,159, 83, 74,161,144, 47, 58,128, 4,250,119, 4, 37, 28,181,137, 69, 25,222,247, 61,104,169, 36,245, -206, 97,210, 20,223, 59,170,186,161,235, 45,125,215, 2,210, 92,131,146,182, 25,201,209,149, 90,185, 52, 77,136,141,168,215,219, -174,195, 89, 43,255, 88, 19, 1,154, 8,169,105,236, 58, 41,200,200,243,156,222, 58,180,138,104,187,150,178, 44,105,154,134,182, - 17,129,197,133,232, 32,132,128,245, 14, 29,228, 18, 14, 33,176, 44, 75,250, 33,191, 30, 16,110,114,176,149, 85, 77, 45, 92,176, -214, 76,166,147, 71, 60, 73,223, 58,218,190, 37,205,133, 62,232,218, 22,180,252, 80, 9,208,214, 45, 85, 61,192, 36,107, 17, 48, - 69,177, 8,250, 76, 28, 51, 46, 10,208, 32, 17, 2,158,182,110,137,147, 88, 46, 7,165,240,206,202,101,156, 74,101, 95,108, 98, -140, 73,176,214,163,209,228,227,156,120,240, 55,102, 3, 47,211,245, 29, 65,228,177, 2,249, 40, 45, 47, 46, 16,233,136,186,145, - 2, 19, 17,108, 24,186,174, 37,207, 11,126,226,221, 25,245,186,228,164,234, 89,174, 26,246, 70, 25, 81,172, 88,247,129,189,189, - 49,227,113,193,205,179, 10,223,116,108,116, 61, 86, 5,118,115,195, 31,223, 93,240,191,126,249, 1,139,186, 35, 85,154,211, 6, - 62,250,174, 29,254,201,207,124,146, 95,250,205, 59,124,251, 97,135,142,228,115, 68, 70,252,227,105,146, 12,162, 23, 79,156, 24, -218,166, 69, 25,131, 27, 54,106,235,196, 61,160, 7,142,220,249, 64,145,231,164,105, 78, 81,100,212,173,216,154,130, 12,191,160, - 20,163,241, 88,166,236, 60, 39, 73, 18,121,238, 3, 7, 28, 25,177, 65, 78,167,211,193, 11,218,147,198, 41,145,249, 46, 95,223, -116, 50, 44, 74,246,186,167,110,154, 71,207, 52,205,114, 18, 35, 81,199, 90, 71, 82, 1,153,165,140,178,132,247,108, 6,222,255, -142, 75,244, 46,160, 99, 77, 20, 2,202, 40,210, 81,198,100,123,155, 16,107,180,247,124,253,246, 41, 7, 51,113, 53,164, 69,198, - 26,207,201, 89,205, 91, 7, 11, 62,251,226, 13, 54, 70, 49, 47,222,216,102,119, 58,226,168, 12,180,206, 93,184, 65,137,147, 4, -111, 29,135, 15,143, 72, 76,196, 83,143, 95,227,241,171,151,216,222,220,224,210,222, 30,151,119,183,217,221,217,230,242,222, 46, -219,155, 27,108,109, 78,201,210,132,221,173, 45,182, 54, 54,112,214,178,183,189,197,222,246, 46, 33, 56,113,114, 12,223, 95,111, - 45,221, 64,219, 20,163,156,241,120,196,104, 50, 97,178,185, 73,148, 37, 68, 38, 33,138,227, 65, 4,235, 8, 32,207, 82, 75,143, -129,136, 64,191,251, 95,150,101,196,137, 33, 75, 83,138, 60, 37, 79, 19,182, 54, 55, 48, 38,226,244,124,198,114,181,102,185, 46, -153, 45, 22, 88,231,217,216,152,112,109,127, 23,133,162,119, 78, 16,186,174,103, 58, 30,147,198, 49,227,201, 68,108, 57, 0,136, - 11,163,109, 27, 58, 59,244, 79, 88, 75,154, 9, 18,103, 34,205,198,120,204,230,116,202,222,246,150,244, 26,148, 53,139,229,138, -211,243, 25, 0, 23,141,143, 62,120, 82,173, 8,253,156,216, 87,178,233,147, 14, 72,144, 29, 80,165,154,243,249, 57, 4,197,206, -238, 46,203,245,138,174,233,208,145, 97,115, 99,131,233, 19,239,100,243,242, 71,217,127,252,163, 92,190,254, 81, 76, 86,176,154, -221,163,111, 86,152, 88,150, 1,173, 60,109, 39,154,161,174,115, 56, 63,124,219,131, 99,126,122,204,249,217, 67,234,182, 97, 58, -221, 96, 50,153,226, 66, 96, 62,159,179, 92, 86, 98, 95, 11, 17,193,247, 60,113,117, 11,215,220,161, 61,255, 54,171,147,111,240, -240,173, 63,226,203, 47, 63,205,139,127,237, 50, 31,123,111,224,240,222,148,100,251, 35, 92,127,239, 15,240,158, 15,253, 45, 62, -252, 3,255,128, 15,126,242,151,248,218, 31,253, 79, 4,101, 73,227, 92, 56,104,165, 8, 65, 81,119,115,214,231, 71, 52,205, 26, -250, 37,101,121, 78, 87,173,113,174, 34, 43, 70,144,102,172,151,199, 60,184,245,219, 28,188,250, 27, 52,103,175,210,206,239,208, - 86, 53,147,107, 31,102,247,234,247, 48,221,188,193,237,155,255,150, 59, 55,255,148,249,201,183,177,237,219,172, 86,247,137,204, - 6,187, 79,254,101,118,175,126,148,117,249,144,131,219,127,192,234,236, 14, 76,206,113,103,119,177,173, 34,137, 3,203,243, 83, -154,166, 98,126,118, 76, 26,199,100,121,202,229,203,151, 24,143, 38, 24,147, 81,213, 75,218,182, 39,142, 21, 70,105, 84, 36,124, -180,240,216, 45,109,219, 19,188, 32,177, 93, 47,177,222,125,223, 17,199, 17, 74, 73, 92,170,137, 83, 18, 19,225, 81,172, 6, 21, -250,104, 52,162,243,150, 44,201,176,182, 35,207, 11,146, 36,197,245, 29, 77,223, 13,195,172,108,187,145, 82,180,253, 96,143,236, - 44, 62, 4,188,135, 98, 92, 96,125, 64, 71, 9,222,139,146,190,237, 59,186,166,195,196,146, 69,210, 54, 50, 4,184,193, 70, 86, - 55,210, 50,231,125, 0,239, 49,137,161,115,150, 68, 39, 4, 2,190,183,232, 56, 65, 69,223, 13, 90,138,147, 24,212, 16, 46, 99, - 7, 13,146,181,162,251, 72, 12, 77, 85,203, 18,231, 61,101, 93, 19,169,139,103, 28, 48, 70, 50, 13,186,174, 69, 71,114, 79, 56, -235, 9,200, 66,237,144,240,229,104,186,181,253,185,178, 92, 83, 87, 53, 77,223, 62, 18,135, 69, 90,108, 6,178,169, 8, 84,153, - 13,144,178,137, 13, 77,221, 8,212,233, 68, 16,144,102, 25,145,138,165, 21, 39, 77, 36, 61, 74, 65, 85,215,131, 4, 95,136,125, -235, 69,157,156,196,178, 93, 73,135,185,168, 73,227, 56,150,203,110,248,162,186,225, 11,175,133,232, 31,190, 20, 8, 7, 99, 34, -178, 44,163, 40, 50,178, 44,127,196,185,117,141,248, 18,219, 74, 4, 82, 69, 81,200, 75,211, 75,215,174, 15,194,249,166,137,240, -155,214, 90,130, 18,203, 66,215,181,164,105, 78, 83,214, 67,195,142, 17,200,167,151, 52,162,229,106, 77,215,247,212,117,131,245, -150, 40,146, 52,187,188, 40, 6,136, 62,224,157,192, 35, 33,132,225, 65, 68,131,175, 58, 34, 56,135,142, 20,125,103,233,109, 47, - 27,109,111,177,125,199,104, 34,106,239, 36, 78, 8,195, 36,169, 17,104,166,183,189,188, 20, 78,132,127,214, 90, 8,208,245,162, -126,135, 32, 13, 93,206, 98,116,140,237, 42,126,229, 7, 46,241,197,215,143,233,219, 64, 19, 2,219,153, 38,219,219,100,146,138, - 40,241,238,193,140,157, 84,241, 67, 31,188,198, 70,166,208,193,115,167,236,249,181,175, 28,224,189, 71, 71,242,242, 87, 1,254, -233, 79,127,152,187,243,158, 95,253,147, 3, 25,184,162, 88, 4,122,157, 37, 73,100,130,149,109,106,176,237, 41,132,126,208, 10, -105, 51,210, 76, 38,147,193,115,156,224,156,165,119,223,173, 72, 20,177, 37,140, 70, 35,249,187,141,161,239, 58,156,247,120,239, - 30, 9,237, 58,219,201,207,171,174, 9, 90,132,103, 98,173, 20, 65,213,106,177, 34, 78,132,163,170,203, 82,166,232, 68,114,195, - 93, 8, 52,149,116, 27,247,109,135, 40,112, 61,182,147, 65,213,104,131, 51, 25,151,210,150,143, 61,183,135,117,142,166,181,124, -235,235,119, 48, 81, 68, 49, 22,127,172, 14,240,240,104,206,239,253,197, 3,172, 14,172, 23, 53,135,109, 79,236, 20, 47,236,228, - 28,172,106,254,234, 71,110,144, 38, 17,153,129, 23,118, 13,159,122,207, 30, 73,146,240,246, 2,226, 56,165,183,242,111,203,138, - 17,111,190,117, 27, 2,100, 73,194,198,116,204,198,120, 76, 8,210,117, 16, 25, 67,145, 38,152,200, 48, 30,141, 41,138,140,120, - 24, 92,198,227, 66, 4, 64,128, 30, 10, 79, 76,108,112,206, 82, 87, 21, 73, 18, 19,180, 34, 56,201,106,232,218,150, 56,206, 40, -138,156, 46, 4,138,141, 13,242,241,148, 56,205, 81,145,108,236,222,123,250, 94, 96,239,139,255, 76, 20,177, 57,157, 14,233,127, - 82,188, 18,188,103, 93, 86,244,253,144,239,142,108,246,203, 33,213,170,200, 51,182, 55, 54, 80, 90, 44,171,171,117,201,225,209, - 49,117,215,202,240,154, 74,181,164, 11,210, 27,209,118,146,119,209, 89,233,193, 22,177, 81, 74, 49, 8, 35, 37, 63, 99,160,196, - 0,175, 2,109,215,138, 82, 62,120, 73,123, 84, 26,107, 29, 77,211,209,119, 53,182, 89, 82,171, 17,248, 64, 20,137, 74,184,105, - 42,178, 44, 97, 52, 26,211, 84, 45, 71,135,199, 44,203, 37,171,178,100, 58, 25,179,185, 53,225,193,219,223, 98,125,126,135,166, - 57, 39, 29,239, 51,221,123,146,106,118, 15, 19,123,198,163, 49,125,107, 49,177, 2,235,104,122,241, 58,163, 7, 61,208,208,200, -229,250,138,197,108, 38,212,139,214,236,110,239,176,185,181,129,119, 18,100,210,117, 45,203,213, 10,208, 68, 38,231,233, 27,239, - 32, 51,129,179,147,175,240, 23, 47,143,184, 57,127, 1,163, 21,185, 82, 28,188,249, 58, 39,103,119,248,228, 15,127,144,255,242, -103, 71,204,246,254, 33,175,191,244,219,148,203, 91, 56,215,226, 21, 40,129, 35,145, 52,206,138,245,106,142,235, 45,182, 93, 83, -215, 37,171,243, 3,210, 80,209, 54, 15,240,109,137,173, 78,137,162,158,201,120,130,199, 96,251, 21, 85, 87, 73, 79,123,187,230, -244,205,127,199,226,240, 43,180,139, 67, 98,109,208,233, 6, 46, 68, 56, 91,113,118,248, 77, 22,179,155,180,203,183,168, 15,110, -115,120,247, 54, 58,245,172, 86, 51,218,170,197, 58, 79,148,196, 88, 23, 40,171,134,221,157,109,146, 56, 39,205, 71,244,182,198, - 24,141, 49, 49,214,247, 84, 77, 11,222, 19,153,136,196,136,110, 38,120, 63,228,129, 40, 26,219, 51, 30,141,168,202,138,182,105, -192, 43,148,130, 85, 85,210,119, 22,147, 38,210,189, 16, 25,186,166, 69, 41, 77, 8,146, 99, 82, 87,205,240,238, 36,162,215, 73, -178, 97,227,214, 84,101, 77,219, 86, 52,109, 71, 80,160,252,176,184, 33,225, 96,105,154,146,103,185, 44,158, 3, 68, 15,146, 22, -122,177,160,118,125, 47,155,187,181, 8,242,107,169, 7, 45,140, 50,226,238,144,214, 79, 11, 62,208,117,162,239,176,214, 98,140, -148,198, 56,103, 7,175,185,195,152, 68,144, 77,165,176, 93, 79,103,165,137,180,105, 91,218,186,166,170,133,190,150,123, 46,150, -140,251, 94,218,225,180,209,164,105,246, 72, 12, 30,237, 93,190,244,185,206, 74, 3,153,179,146, 76,214,180, 13,109,215,210,118, - 18, 31,219,247, 61,222, 75,151,108, 50,168, 2,147,120,152,166,188,127,100,215,105,157, 28, 30, 26, 81,123,119,182, 99, 84,136, - 37,192,123,225, 80,219, 97,227, 50,177,180,175, 69, 58,194, 13,208, 90,240,158,182,239,240,189, 29,194, 99,134,188,104, 37,156, - 65,150,100, 68, 17, 4, 23, 0,177,146,165,105, 38, 27, 65, 85, 82, 13,124, 99,219,118,140, 39, 27, 36,105, 66, 89,150,140,199, - 99,225, 70,188,195,214, 53,152,152,245,122, 77,219,214,228,249,136,216,196, 52,157,248, 6, 81,225,209,195,168,234,106,184,120, - 59,234,186, 36,132, 64,146,138, 64, 80,135, 65,137, 27, 2, 1, 79, 20, 37,195,150,156,160,156, 76,113,105, 42,188,141,120, 26, -133, 7,146, 54, 31, 25, 90,108,144,217, 42, 77, 83,121, 73,188,199,218,142, 96,123, 92,111, 89,204,231, 82, 16,144,138,150, 65, -107, 9, 75,144, 92, 1,205,122, 93,162, 8,226, 9, 86,138, 40,138,177,174,231, 51,207,111,242,129,199,114,222,122,184,224,232, -188, 34,110,122,182,119, 10, 66,100,120, 98,119,194, 73, 99,201,199, 41,145, 11, 28, 28,204,185,251,214,125, 94,123,184,224, 95, -188,124, 76,213, 43, 70,169, 88,206, 26, 27,248,123,159,122, 7, 63,255,201,103,216,221, 48, 28,206, 58,222, 56,174,229,103,222, - 55,116, 93, 43,131, 10,210,105,156, 13, 66, 34,103, 59,156,149,132,164,166,105, 80, 64,146,196, 56,144,119,103, 24,192,138,172, - 32, 50, 17, 89,158,146,165,178,189,245,173,216, 25,157,115, 20,169, 4, 10, 53,157, 92,194, 74,129, 15, 72,254,255, 64,229,228, - 89, 54, 60,203,150, 98, 84,176, 92,174,104,155, 70, 60,205,195,164,127,129,140, 4, 39,162,202, 40,210,140, 71, 35,140, 86,244, -222,146,199,153, 20,157,172, 75,142,230, 37, 47, 62, 53,102,111,163, 64, 41,216,216, 26,177,152, 87,140, 71, 25, 32, 92,253,214, -230,132,143,127,224,113,102, 71, 43,150,139, 21, 75, 15,215,198, 41,121,164,121,104, 29,143,237,142,120,231,245, 93,150,101,203, -173,151,191,195,179,239,122,134,231,118, 52,207,238, 25,190,125,100, 89,172, 27, 34, 29, 49,217,152, 18,169,192,233,233, 41, 1, -161, 96,218,190,227,238,131,135, 76, 70, 35, 46, 26, 12,211, 44, 37, 54,250,223, 83,134,167,177, 28,130,162,234,143, 48,145,196, - 25, 59, 47,122,133,213,114,197,254,246, 22, 89, 49,166,172, 74,146, 88,168, 27, 59, 64,117,206, 73,184, 79, 80, 10,226,152,116, - 50,102, 50,158, 14, 22, 60,133, 25, 6,236,174,147,195, 55,139, 69,200,105,180, 18,159,176, 22, 43,166,115,246,209,118, 31,130, -100, 47,172,203,154, 36, 77,216,218,152, 18, 39, 9,125, 47, 74,225,170,172,105,173,124,230,209,168, 96, 52, 88, 90,125,240,148, -117,131,181,146,149, 95, 53, 13,179,217,130,211,249, 28,128, 11, 27,232,133,149,104, 84,228, 67,254,129, 99, 62,151, 68, 65, 99, -132, 62,147, 11,194,144, 23, 5,163,233, 14,173,133,217,249, 17,211,233,148,241,100,130, 30, 4, 79, 89,158,146, 23, 19, 25,242, -250, 14, 99,192, 53, 75,146,168,103,189, 62,163, 90, 62,164, 90, 30,208,172,238, 99, 98,205,252,252, 84, 96,126, 35,237,144, 30, - 81, 84,163, 52,222,131,235, 28, 30,199, 69,213,110,219,214,232, 40,162,174, 43, 78, 78,142,229,253,156,140,216,222,221, 37, 77, -114,156,243,116,109,133,115, 78,218,190,180,161, 93,158,179,186,247,231,188,245,229,207,243,242, 23,255, 53, 55, 95,253, 83, 30, -222,249, 35,238,189,246,175,153, 45,223,193,223,248,145, 39,249,244,247,194, 51,191,240, 11,108,142,255, 22, 77,125, 70,215,172, - 25, 21, 79,112,227, 63,248,155,156, 29,188,130,109,206,136, 76, 74,164,101, 35,140,116, 66,240, 29,179,179, 3, 92,189,130, 80, - 18, 66, 79,219, 52,156,156,156,208, 89, 71,176, 13,211,196, 82, 46,239, 80,206,222, 38, 74,198, 82,226,162, 3, 93, 91,227,124, - 79, 22,230, 44,230, 55, 89, 60,252, 26,205,242, 45,186,229, 3,202,250,148, 88, 25,108,235,168,170, 30,101, 12, 33, 68, 40, 36, -207,124,111,255,146,104, 72, 76,194,230,116,131,197,252, 33,162, 28, 31,206,171,129,214,105,123, 11,222, 83,140, 38,130,186, 37, - 41,101, 85,203,185, 17, 15,226,218,174, 35,207, 83,250,222,145,198, 41, 73, 46,195,174,138, 34,150,203, 21, 10,133, 82, 1, 23, - 4,221,188,104, 16,245,222, 65, 20, 97,189,197, 24,113,134, 92,208,179, 94, 5, 34, 21, 83,140, 82, 84, 20, 63,130,185, 47, 54, -226, 56, 74,228,247,246, 61, 93,103, 31,161,196, 23,142,171, 52, 73,196,198,220,203,253,169,181,198, 91, 71, 80, 98,179, 78,139, -130, 36, 17,142, 62, 50, 67,193,140,147,122, 88,231, 29, 89, 38, 20,172,247,208, 59, 75,223, 54,162,159,136,165, 5,181,107, 59, -188,247,132, 11, 36,173,239,105,154, 70, 16,222, 97,209,113,174, 39, 82,114,206, 38, 70,172,189,209,149,199, 31,255, 92,223,247, - 20,163, 17,221,160,166, 19,245,178, 38, 73, 50,250,190, 39, 79, 83,178, 52, 37, 78, 98,156,183,168, 32,254,219,166,235,152,142, - 36, 37,174,109, 90, 92, 47,101, 12,189,237, 41,138,130, 81, 49,162,106, 42,148,142, 30,217, 95, 36, 26,239,187,229,242,102, 56, - 44,162,196, 16, 71, 18, 67,136, 15, 3,252,154,226,189, 69, 71, 17,206,127,215, 30, 21, 25, 9, 16, 72,147, 76, 10,231, 35,121, - 88, 77, 45, 16,235,100, 60, 65, 33, 48,123,164, 34,146, 76, 46,209, 44, 77, 49, 89, 70,181,150,252,247, 16,148,108,231,241, 16, -166,225, 36, 93, 44, 54,137, 8,224, 66, 0,133,124,102, 39, 8, 69, 20, 9, 18, 33,222, 97, 79,154,230,136,194, 61, 30, 54, 10, - 77,103, 7,181,126,164, 49, 74,126,248,125,215,211,247,189, 12, 54,173, 84, 11,226, 61, 12,105, 67,203, 85, 73, 89,138,170,185, -170,165,198,210, 57,129,170,101,208,234,104,170,230,209,139, 37,141,122,134,178, 44,197,250,144, 73,174,118, 20, 69,252,220, 7, -198,196,161,231, 59,175,158,240,112, 81,113,117,123, 68,167, 20,151, 31,219, 70,197,138,215, 94, 63,228,250,245, 29,158,120,242, - 18,189,179,220, 95,246,172,250,136, 31,124,247, 62, 47, 62, 53,229, 43,119,230,196, 90,115,218,193,223,252,204,115,236,142, 21, - 74,167,124,228,233, 13, 94,186,187,230,104, 81,147, 38,169, 8, 26, 7, 85,112,215,117, 52,131,240,209, 59, 79, 94, 72, 56, 79, -154,165,244,157,208, 32,125,211,208,181,237,208,174, 39, 25,206, 33, 72, 26, 32, 40,170,101,137, 11, 30,231, 61, 27, 27, 27, 3, -234, 35,155, 54, 4,178, 44, 39,142,165, 15, 57,142, 53, 27, 27,155,143,220, 14,138, 1,182,235,164,195, 96, 60,153,200, 80,104, - 18,156, 23,248, 61, 49, 2, 89, 37,195,196, 29,105,141,209, 26, 80,244, 93,131,117,142,181, 55,188,249,198, 93,126,244, 35, 79, -225,188, 80, 6,219,187,155,164, 35,201, 0,215,145,160, 59,160,121,225,198, 30, 55,239, 30,243,250,225,130,203,105, 74,174, 35, - 74, 2,135,231, 53,159,254,208,147,168,200,240,250, 55, 94,229,233, 75, 19,172, 73,184,178,145,242,151,158, 46,120,245, 20,206, -107, 43,195,134,142,216,157, 78,184,125,247, 30,111, 31, 28,112,124,118, 46,169,107,211, 9,189,179, 34, 94,109,218, 1, 38,148, -188,134, 40,138,104,187, 30,130,180, 61, 41,173,233,251,142,182,151, 82, 36,133,160, 24, 39,167,103,220,184,118,133,107, 87, 46, -203,118, 99,133,107,108,219, 86,168,167,201,132,182, 21, 95,119,158, 9, 29,146, 22, 5,163,173, 77, 54,166, 83,246, 47, 95,101, -103,127, 31,147, 36,172,203, 10,231, 29, 6,136,146,152,113,158,147,164,169,108,254, 93,247, 8,226, 6,134,134,197,158, 81, 81, - 80,100,114,118,104,173, 89, 87, 21, 85, 93,115,116,114,202,170,172, 8,222, 51, 30,141, 40,114,105,115,212,145,166,237, 58, 25, - 0,154,134,114, 80,190,123,239,232,156, 69,107, 40, 6,129,213,233,249,156,249,114, 73, 64,220, 42,109,215,145, 37,226, 2, 72, -134, 33,110, 76,195,186,215,196,113,194,124,121,142,235, 69,115,224,250,158,213,114,142, 54,129,107, 87,175,146, 23,194, 93, 78, -199, 27,244,109,197, 40,245, 76,114,232,235, 35, 92,183,164, 41,207,217,123,242, 19,216,206,115,242,240, 53,170,197, 49, 62,241, - 36, 68,100,249,132,174,171, 32,138, 8, 65, 14,108,107, 3, 38, 74, 64,137,171, 70,233, 8,219,182,172,103, 39,172, 22, 51,150, -229,138, 52, 49,108,239,238, 83, 20, 19,148, 86,172,150, 11, 80, 30, 31, 34, 20,150, 60,238, 80,205,125,170,211,183,184,180, 51, -162,158,253, 5,191,115,107,151,252,251,158, 65,121,216,140, 50,174,222,248, 44, 87,158,252, 17,254,246,175,252,231,252,236,223, -255, 0, 79,255,195, 95,166,187,253,189,220,251,246,231,233,219, 37, 58, 78,233,154, 5,222, 10,236,223,247, 53, 77,185,162,108, - 87,216, 74,108,157,174,111,233,218, 53,243,211, 99, 92, 51,163,175,206,176,141,132, 14,173,206,207,232,154,142,182, 41, 89, 47, -207,105,150, 71,116,205,106,128,245, 91,112,160, 72, 24,111,108, 50,154, 78, 24, 23, 5,227,241, 6, 62, 88,226, 44,231,242,229, - 43, 52, 93, 79,211,181,108,108,100,156,158, 30,226, 9,196,145,193, 58, 71, 98,140,184,134,188, 88,182, 64,138, 88, 52, 16,153, -255,159,169, 55,141,213,244, 60,239,251,126,247,250, 44,239,123,182, 57,179,147, 28, 46, 34, 41, 82, 11,101, 74,138, 29, 43, 74, - 98,171,137,147,218, 73,156,182, 64, 3, 3, 65,139, 34, 69,186, 32, 77,138,164, 40,208, 6, 45,136, 22,104, 10, 20, 41,250,169, - 69,191,181,105, 81,160, 46,130,214,110, 98,103,115, 28, 47,177,100,199,146,172,136, 18, 37,238,228, 12,103, 57,115,214,119,121, -182,123,235,135,235, 57,163, 18, 32, 6,130, 56, 56,231,188,231,121,238,251,186,254,171,147,140,137, 92,216,108, 55, 44,150, 45, -148, 34,185, 7,118, 22, 28,231,200,197,217, 57, 41,101, 22,139, 6,109, 53,214,202,240,231, 47, 41,166,148,104,124,141, 65, 97, -172,161,219,138,218,125, 24, 71, 74,209, 56,171, 24,250, 64,136,210, 2, 23,130, 92,146,168,130, 54, 96,180,197,123,135,181, 78, -138, 83, 98,100, 24, 70, 64,205, 86, 73, 47,223,255,114,135, 16,196,254, 54, 14, 65,254, 28, 3,211, 56,209,204,201,116,206,122, -124, 83,163,181, 33,206,255,109, 74,162, 94,247, 85,141,213,134,144, 3,228, 66,158,147, 84, 75,201,179,248, 87, 44,208,165, 20, -186,190,147,207, 65, 57,154, 69, 43, 67,173, 51,130,116,148,130,185,118,243,214, 27,149,175,192, 72,219, 90, 85,121,236, 12,241, - 93, 78,200,218, 72,157,104,202, 89,188,147,189, 64, 72,165,100,170,166, 66, 43, 77,152, 2,139,101, 35, 48,159,245,248, 74, 46, -210, 18, 5, 34, 53,198,146,138,180,152, 93,146,254, 74,169,249,112, 79,120, 87,209,247, 29, 90, 73, 11, 79,229,189,240, 20, 70, -166, 38,165, 20,219,245,154, 97,232, 81, 69, 17,162,168,198, 67, 16,159,252,182,151,176,253,157,197, 14,219, 94, 38, 96,171, 12, -139,229, 18,101, 68, 15,224,156,199, 26, 35,124, 74,150, 94,118,177, 17,116, 24, 35, 86, 35, 85,212,147,131,161, 36, 17,212, 41, - 5,218,104,138,202, 51,167,157,113,174, 34,151, 60, 83, 1,150,245,172, 22,190, 20,179,165, 16,200,177, 80, 84, 65,230,122, 17, -111,169,121,146, 63, 95,173,216, 94, 92,208,109,182,116,219, 78,130, 60,138, 64,246,101, 62,152,149,146,202,219, 24, 69, 0, 18, - 98, 36, 83, 8,227,196, 52,141,178,125,106, 69,156, 18,211, 28, 55,235, 13,252,149,159,190, 77, 55, 36,190,243,193, 49,103,161, -240,226,237, 5, 71,167, 3,239,127,116,194, 71, 31,157, 16, 98,230,199, 62,251, 52, 33, 68,214,239, 63,224,215,222, 57,230,151, -127,112,198,207,124,238, 58,177,100,190,241,225, 57, 41, 23, 82,210,252,141, 63,249, 60,227,102, 75,189,123,128, 33,243,229, 59, - 59,252,243,123,145, 92,100, 8,211,118, 46,229,153, 38,156,159,251,132,139,136,218,152, 63,143,202,121,138,146,180,178,252,228, -210,111,216,221,217, 65,205,252,252,234,226, 66,130, 30,166, 81, 68,132, 74,126, 15,101,182, 12,106, 61, 35, 35, 49, 49, 14, 61, - 90, 75, 18, 96,237, 37, 93,204,104,205,102,179,194,121, 39,207, 71,152,228,239,148, 4, 73, 68,124,178,213, 94, 66,251,194, 39, -167,153,107,243,222,163,157,104, 46,126,248,201,138,113,125,193,171,207, 28, 96,180, 98,115,122,193,119,190,241, 93, 30,124,248, - 9,235,211, 13,109, 91, 17, 83,224,227, 15, 31,112,231, 83, 79,243,222,187,199,188,127,190, 97, 19, 39,116, 83,147, 41,252,249, -159,252, 20,185, 64,214,134,205,253, 71,188,244,226,211,172,199, 72,213, 56,126,226, 78,195,135,103,137,147,190, 80,148,160, 34, -119,110,221, 96, 10, 1,173, 12,117, 83,179,221,110,248,240,238,125,238, 61,124,196,233,197, 5,155, 77,199,131, 71, 71,124,124, -255, 17, 79,223,188, 1, 69,208, 42, 40,179,165, 75,160, 67,230,207, 94, 43, 9,173,248,248,254, 67,190,244,234,167,249,243, 95, -251, 99,188,252,236, 29,134,177,231,124, 45,186,144,237,182, 67,145,177,174, 38,198,132,115, 6,103,141,212, 1,207, 89, 12,162, -210,181,236,236,239,131,243,104, 95,201, 69, 58, 35,244,214,106,172,243, 98, 21,141, 63, 18,218,245,195,192,166,235,104,155,134, -131,221, 93,105,148, 34,179,157, 21,246, 93,215,243,248,244,140, 16, 3,187,203, 5, 59,139, 86,196,165, 85, 5,133, 39, 3,246, - 48,142,114, 48,215,210, 43, 97,140,102,189,237, 56, 59,191, 16, 30,113,118,155,196,152, 68,177,175, 21,222, 89,234,186, 38, 82, -216,219, 91, 80, 45,246, 57, 61, 57,103,184,220,224, 82, 96, 24, 38, 86,171, 45, 59,109,195,217,197,138,237,102,139,164, 17,214, -172,214,107,214,171,115, 22,139, 5, 7,251,123,220,184,126,147, 43,159,250,211,188,254, 83,127,147, 79,191,254, 11, 28,222,254, - 34,105,152, 80,213,130,235, 55,111, 17,135,158, 41,140,104, 20, 74, 23,156, 5,180,167,148, 89,159,144, 17, 68, 77, 65,152, 68, -193,223,111, 71, 30, 62,120,192,102,115, 78, 24, 37, 38,218,218, 22, 99, 5,142, 26,166, 17,171, 29,245, 98,159,157,221, 43, 12, -221,154,147,247,127,139,127,252,127,252, 3,190,241,143,238,242,253,111,191,195, 15,190,251, 79,121,251,187,127,151,179,243,207, -114,251,250,117, 70, 13, 79,125,245,101,238, 28,254,117,116,229,233, 87,143,185,118,231,143,241,229,159,255,155,116,167,103,172, - 79,126,128,177, 14,235, 90,180,177, 79,196,199,113, 26,192,205,133, 35, 67,199, 52,142,140, 93,135,156, 68,114, 14, 9,203,103, - 72,185, 96,141,195,250, 90, 54,206,162,168, 91,135,206,226, 15, 15, 17,180,213,178,208,117, 29,149,175,120,230,169, 91, 92, 92, - 60,162,239,182,146, 73, 96, 44, 90, 41,170, 90, 58,192, 75, 18, 24, 91, 41,169, 60,237, 7,137,116,214, 20,226, 36, 22,205, 97, - 24,177,206,145, 67,162,239, 59,114, 18,171,170,160, 78,145,113, 74,144,193,105, 73,160, 12,211,132,175, 23, 24,107, 40, 72,106, - 97,152, 2, 5,133,177,146,146,234,180, 38,230, 12, 37, 83,213,181,208, 43, 49,144,178,108,251, 82,116, 54,162,148, 21,196, 53, - 76, 51, 34, 42, 45,159, 85,221,226,172,145,129, 20, 65, 35,149, 49, 84,222,211,111,183,196, 40, 22,187, 97,232, 81, 70,116, 31, - 41,102,140,187,204, 58,137,228, 20,197, 61, 82,196,145, 83, 87, 13,198, 58,138, 41,178, 48,106,104,155, 5, 33,142,196, 32,161, - 78, 77,211, 18, 99, 96,177,108,197,198,107, 60, 41, 73, 88,156, 82, 10,179,119,245,234, 27, 90,203,129, 59,205, 24,125, 98,134, -202,199,137, 49,200,118,149,115,193, 58, 79,213, 84,178,145, 33, 66,150,130, 64, 36, 49,198, 57,137, 45, 80, 47, 90, 12,200,225, - 98, 44, 93,183,101, 28, 39, 52,138, 48, 6,156,247, 79, 4, 80,206,139,185,126, 24,122,218,118, 49,115,164,154,152, 37,253, 43, -166, 64, 70, 68,102, 97,146, 73, 36,196, 64,206,229, 9,132, 33,200, 64, 35, 7,130, 18,200, 50,132, 72,229,107,148,214,196, 49, -160, 84,161,228, 72, 76, 65, 68, 90,174,166, 91, 93, 16,231,139,116, 12,210,194, 51,142, 82,124,175,149,198,215, 30,148,154, 61, -233, 89,212,232, 41,202, 84,101, 52, 33,137, 7, 50, 4,225,186,107, 47,131,208,216,247, 84,181,199,186, 25,126,214, 10,231,106, -121,248, 66, 96,181,237, 24, 55, 27,152, 70, 72, 17,144,238,237,221,253,125,172,151,193, 99,103,103,135,166,169,209, 69, 58,218, -173,153,253,215, 83, 68, 69, 73,191, 27, 39,137, 76,212,170,176,216, 89, 82, 87,142,207, 93, 53,252,201,231, 90,190,241,230, 61, -206,199, 66,109, 20, 79, 93, 93,178, 25, 2, 7,203,134,253,253,154,157,118,193,197,144,240,149,101,232, 38,126,249,247, 63,198, - 42,248,214, 71,103,252,254,135, 23, 24,165,232, 19,236,215,142,191,250,103, 95,161,100,205,238,149, 29, 82, 72,236, 47, 52, 78, - 25,254,224,254, 32,189, 0,182, 66, 81,136,169, 96,108, 65, 35, 47,107,152,228, 5, 80,128,178, 6,139,120,209, 21,138,189,189, - 61, 25,134,140, 65, 35, 94,115,249,156, 36,100, 34, 76,146, 9, 62, 12, 19,211, 36,116,205, 48, 14,116,155,142,161,239,228,247, -219,247,156, 30, 61,230,232,225, 3, 46, 78,142, 57, 63, 59, 98,123,118,206,250,244,140,237,249, 57, 23, 39,199,172, 78, 79, 88, -159,157,178, 58, 63,225,226,228,148,179,179, 83,134,113,196,122,143,175, 90,172,117, 12,227, 64,140,153, 41,136,112,211, 25,205, -222,193, 30,215,236,134, 27,123, 45,191,244,203, 95,231,251,223,124,155,215,190,244, 18,159,121,253, 85, 78,143, 79,233, 78, 47, - 88,221,127, 8,214,241,237,123, 27,225,227, 20, 4,101,216,109, 61,219, 33,112,239,180,231,249,155,251, 92,191,126,192,187,223, -249, 30,207,190,242, 18, 7,121,100,147, 20,149,213,188,254,116,203,175,252,203,199,104,215, 16, 74,134, 48,241,210,157, 59, 28, -238,239,114,176,187, 67, 55,138,210,215, 59,207,149,189, 93, 36,174,217,114,251,198, 53,154,186,225, 9,239,173, 68, 77,235,102, - 13,202, 20, 3,170, 64, 65,137, 72,179,100,190,243,131, 31,242,252,211,183,217, 89,180,124,238, 83,207,241,233,231,159,229,193, -209, 17,219,110,139,214, 82,154,177, 92,180,132,113, 96,232, 71, 66,156,168, 43, 63,211, 69, 10,103, 28,211, 56,144, 50,130, 28, -149, 76, 31, 18, 67,134, 82,121,124,187, 96,247,224,144,106,209,208, 44, 90,161,214,188,167,235,122, 78, 79,207,200, 37,179,187, - 92,176,191,187, 71,219,212,108,250,238, 73,104, 70, 63,140,108, 59,209,186, 92,217,223,229,202,222,158, 88,205,148, 20,200,148, - 34,157,244,155,237,192,106,179,150,195,218,121,110, 92,187,202,162,149, 16, 15, 95,215,236, 95,189,198, 11, 47,190,196,222,254, - 62,174, 89, 16,149, 34, 20,205,186,223, 98,116,196,250, 93,250,126, 36,132, 68,183, 29, 40, 37,225,172,165, 40,197,225,225, 53, -226, 56,177,222,172,153,198, 45,211, 52,225,253,130,195,171,135, 52,213,130,163,147, 35, 22, 75,248,240,157,223,227,124,125, 68, -189,123,147,229,206,211,216,122,151,144, 44, 37, 30,179, 57,123, 8, 69, 3,130, 62,121, 87, 83,148, 8,162,132, 51,130,156, 3, - 40, 13, 90, 80, 9,163, 13, 33,102,186,110,205,249,217, 35,214,155, 53, 33, 68,118,118,247, 89,180, 75, 92,213, 16,166,129,179, -243,115,172,243,140,125,160, 54, 19, 11,238, 50,156,254, 30,103,247,254, 57, 97,245, 46,167,199,191,205,175,253,234,111,241,214, - 63,252, 1,247,127,239,152,113,115,159,172, 45, 79,189,248,103,248, 47,127,229, 63,225,191,250, 51,159,225, 15,255,181, 63,207, -221, 55, 95,231,254,131,127,194,180,221, 98,171, 6, 85, 52,227,246, 49,207,189,250,231,232, 46, 30, 16,198, 11,170,106,137,118, -141, 84, 77,107, 73,182,140, 12,168, 44,249, 24, 70, 59, 18,138, 41, 38,172,113, 24,103,184,242,212, 23,217,191,253, 41,214,143, -239, 49, 70,209, 58,104, 45,231,224,115,207, 61,139, 86, 35,199,199,143, 72, 33, 16, 66, 34,134, 64, 2, 41, 40,234,165,148, 43, -165,136, 70,203,185, 93, 9,162, 91,183,141,136,171,157,216, 91, 47, 46, 46, 72, 57, 81, 53, 21,227, 36, 20, 2,170, 96,157,166, -228, 68,206, 81,244, 57,186,176,104, 26,114, 28,137, 73,172,113,214, 58,148, 81,228, 16,192, 24,166, 94, 28, 73, 70,105,124, 93, -209, 52, 66, 5, 54, 77, 75,213, 8, 4, 47, 10,115,105, 17,165, 36,118,150, 45,181,175,169, 43, 79,221,136,147, 38, 38,209, 68, -197, 73, 98,152,101,169, 21,181,190,243,158,105,148, 4,213, 18, 69,215, 85,162, 8,202, 99,144,128, 28, 25,248, 64,165,196,152, - 20, 69,153,249,107, 34, 33,100, 50,167,211,182, 45, 73,139, 31,125,154, 70,161,129,226,132,119, 78, 46,118, 38, 64,227,156,197, - 28, 92,187,246,134, 2,124, 83, 83, 87, 53, 33, 38,140, 82, 98,191,170, 28, 97,146,132,174,118,209, 98,149,126, 2,127,143,227, - 64,237,100,139, 46, 73, 34, 59,199, 48, 96,173, 36,228, 88, 87,177, 94,173, 25,167,129,148, 68, 69, 91,114,150,131,123, 10,104, -163,152,166, 72, 85,213,164, 40,118, 4,177,198,201, 64, 81,138, 34,142, 35,253, 48,206,220,161,166,174,101,146,119, 86,134,136, -221,157, 93, 36,149,205,208,117, 3,211, 56, 81, 72,132, 16,217, 93, 74,174,240,118, 43, 92,184,160, 14,242, 65,143,227,132,210, -138,170,109, 81, 74,172, 77, 97,134,109, 65,160,203, 75, 17,150,244,234, 10,231, 81, 82, 2,100,168, 72, 83,162,246,149, 40,249, - 71,209, 12,164, 24, 33, 35, 89,240, 9, 10, 25, 95,215,168, 34,220,187,112, 60,153,205,106, 5,243,240,160,180, 66,165,136, 90, - 46,105, 42, 17,240, 9, 92,169, 72, 69,114,188, 55,107, 41,191,152, 38, 41,127, 40, 74,201,240, 50, 79,210,198, 26, 9, 33,241, -142,159,122,105, 65, 19, 59,126,227, 7,167,236,235, 64, 9, 35,253,249,134, 43, 75,199, 64, 33, 63,120,128,207, 91,198,147, 51, -190,249,214, 35,254,207,175,127, 76,181,168,249,220, 51, 87,184,123,178, 33,231, 66,166,112, 17, 20, 63,254,220, 30,255,193,159, -253, 34,111, 62, 88,243,205,247,207,185,190,215,112,243,160,226,169,133,226, 23,191,121, 76,204, 69,166,207, 36,130,142,190,147, -130, 2, 99,204,147, 24, 71, 73,214, 19, 49, 87, 74, 66,207,180,109,139, 53, 82,156,144,163,136, 0,211,157, 0, 0, 32, 0, 73, - 68, 65, 84,180,116,141,147, 88,207,114, 73,212,141,104, 8, 82, 73, 56,235,136, 33,130,214,108,215, 43,214,103,231,108,207, 47, - 24,186, 30, 85, 34,206, 72,170,146, 74,133,162,229,229, 71, 41, 80, 6, 81,132,203,134,158,147,248,218,135,237,150,238,252,132, -211,199, 39,140,227, 32,249,243,206,226,125, 77,229, 5,161, 74,185,112,116,214,241, 31,253,233,151,249, 83, 95,251, 60, 95,248, -241, 79,179,187,191, 71,136,137,235,183,111,176,127,227, 42,215, 94,120,134,253, 43, 7,188,247,193, 35, 62, 62,234, 80,227,128, -174, 44, 73,105, 80,133,111,124,255, 62, 55,119, 27, 62,247,210, 83,188,247,245, 63,224,234, 11,207, 80, 59,203,161,205,108, 35, - 56,103,120,238,176,226, 91,159, 12,196,172,196,218,181,222, 96,172, 97,217, 46,184,178,191,203,222,206, 14,215, 15,247,217,219, - 89,178,179, 92,176,183, 20,136, 83,162,112,231, 50, 10, 0,165,102,174, 78,236, 3, 74, 73,165,176,181, 34, 28, 10, 33,178,233, - 58,190,252,218,231, 40, 49, 99,180,230, 11,159,126,145,109,223,243,240,241, 9, 69,101,106,239,185,172, 27, 30,134,158,203,158, - 4,217,150, 59,252,252,238, 85,117,133,117,179,174, 68,192, 24, 57,252, 41,212, 77,195,149,195, 67,124,211,176,127,120,200,237, - 59,207,176,119,237, 42,217, 88,186, 16,201, 74,218, 24, 69,165, 44, 89, 0, 49, 37,166, 16,184, 88,111,152, 66,196,214, 53,109, -211,114,153,204,229,156, 5,163,216,221, 63, 96,177,183, 71,181,179, 68, 85, 13, 83, 74, 84,237,130,197,206, 46,251,135, 87, 80, - 70,154, 35,199, 16,208, 90,188,194, 24, 67, 24, 69,212,186,179,220,193,152,106,166,205, 68, 63,180,179,179,100, 59,140,212,222, -115,253,230, 13,154,186,197, 59, 67,158, 70, 86,235, 51,214,235, 21,253,208,113,114,188, 34,118,231, 44,220,200,249,241,187, 28, -125,244,251,156, 61,254, 30,171,135,255, 18,237,106,158,255,226, 95,100,177,124,134,126,245,128,245,217,199,179,240,183,146,126, -128, 84, 72,100,116,206, 34,202, 66, 99,172,192,202, 80, 80,242, 11,164,164,244, 4,189, 92,173, 86,156,158, 62,102,125,190,194, - 55, 53,139,197, 18,239,133,107, 29,199,192,166,235, 25,167,140,117, 13,215,110, 61,205,237,155,215,240,249, 49,103,143,191,205, -209, 71,191,197,253,143,190,206,201,189,175,115,126,252, 54,235,163,159,229,236,229,138,163,115,199,179, 55, 95,229,250,115,255, - 46,227,240,144,205,217, 93,250,254,132,207,255,220,223,226, 63,254,123,127,155, 23,175,255, 13,182, 93,199,246,228,123,136, 41, -217,162,172,166,196,192,139,175,253,155,124,246,143,255,101,226,240,144,110,125, 66,206,226,197, 21, 4, 49,210, 30, 60, 13,195, - 17,202,108, 80,197, 74, 33,149, 81,236, 46,107,246, 15, 22,172,214,103, 84,206, 83,183, 53,151,105,128, 77, 85,201,153, 89, 10, -253,208, 63, 89,244,170,202, 11,226,148,193,123, 63,111,183,113, 22, 92, 79, 51,109, 38,239,169,175, 28,117, 37,193, 92,117, 93, - 83, 57, 75, 76, 65, 84,229,206, 81, 53, 13, 85, 37,252,183, 42,112, 25, 80, 37,121, 23, 22,231, 28,245,140, 28, 12,189,244, 13, -104, 35, 34, 54,103, 12, 41, 69, 22,139, 5,117, 85,137, 94, 40, 4,140, 23, 75, 92, 41, 8, 29, 6, 80, 10, 18,112,148, 89,180, - 53, 41,103,186,217, 83,191, 88, 44,112,206, 17, 75, 98, 81, 55,210,214,137, 34,229, 72, 74,242,119, 52, 82, 40,227,157,103, 26, -122,113,150, 25, 75, 12,129,166,105, 5, 77, 28, 39,188,119,104,173, 97,254,218,121, 44,140, 99, 63, 11,239, 68,172, 61,142, 35, -230,250,237,219,111, 40,165,168,107, 41,215,232,250,142, 41, 69, 33,255, 67,100,119,111, 79, 32,101,163, 68,185, 28, 5, 66, 13, - 83,152, 5, 60, 78, 36,254, 41, 49, 14,211,204, 37, 1, 69,211, 15, 3,139,118, 33,176,179,210, 56,111,209,202,162,141, 38, 37, -249, 59,198, 58, 66, 14, 18,232, 16, 2, 97,154,200, 69,114,215,181, 50,100,164,145,124,154, 2,149,179, 56,231, 69, 65, 30, 2, -117,227, 41, 72,116,158, 81, 90, 38,124,109,241, 94, 4, 21,185,136, 50, 93, 27, 45,254,199, 28,136, 97,142,165, 45,145, 56, 37, -129, 69,114,145,224,129,186, 22,241,158,153,249,113,148,132, 1,244,226,131, 68,105,164, 7, 94, 20,139, 49, 73, 22,183,214, 26, -212,172, 60,180, 70,116, 1, 90, 94,214,156,103,191,104, 8,196,105, 34, 12,195,124, 33, 21,200, 5, 85, 10, 69,105,240, 30,111, -165,197, 12,228,151,182,186, 56,103, 28,132, 94,104, 22,205,204, 59, 90,150,203,133,240, 57,117,141, 46, 80, 87, 14, 21, 3, 31, -125,240,152, 55,126,254, 83, 12, 1, 86,155, 53,215,215,159,240,213,219,138,183,222, 59,230, 23,127,247, 17,215,237,192,194,193, -209,217,192,175,188,121,194,187,167, 35,187,251, 11,254,204, 79,190,192, 87, 94,187,205,219,119,207,216, 12,145, 95,248, 19,159, -225, 47,253,220,103,248,163, 95,120,154,255,230, 23,191,199,223,252,165, 31,242, 75,191,243, 17,255,211, 63,250, 0,231, 20, 95, -251,220,109,134,190,227, 55,222, 58, 98, 28,132,231, 79, 81, 6,158,162, 96,232,199, 89,188,101,208, 69,154,238,198, 41,226,189, -196,240, 14,227, 56,243,201,178,165,107, 45,226,149,213,102, 69,138,137,152,101, 67, 13, 51, 79, 79, 73, 12,171, 51,198, 77,135, - 46, 17,107, 20,205,210, 3,154,174, 11,144, 21,237, 94, 75, 85,121,218,157, 37, 78,131,117, 78,208,146,218, 99,148,240,192,181, - 19, 97, 83, 24, 35, 57, 71,194,216,145,134,115, 98,119,134, 83,133,106,177,195, 20, 3, 85, 45,213,150,156,125,194, 87, 94,190, -201,166, 11,132, 40,150,180, 52,255,190,167, 20,177,218,240,249, 87,110,114,103,191,225,237,119,143,248,251, 63, 56,229,104,221, -243,210,245, 5,109,227,121,176,158,248,218,103,174,114,250,206,219, 52, 87,175,179,220, 95, 98, 84,226,192, 41,250, 88,184,181, -191, 96, 24, 6,190,251,176,199, 85, 53,125,183,229,222, 39,247, 89,111, 59,158,186,121,141,182,185,132,156, 13,149,115,243, 97, -144,208,179, 43, 69,168, 26, 25,229, 83,138,196, 44, 2, 36,107, 44,144,133, 82, 50,138,166,170,184,247,224, 17,191,251,237,127, -201,103, 94,121,137,253,189, 93,114,206,124,254,229, 23, 41, 40, 30,175, 87,108,214, 27,200,176,218,172,200, 41, 99,156,197, 89, -141, 86, 6,163, 20,155,174, 35,164, 31,101, 3, 56, 39,149,184,109,219, 82, 87, 82,219, 60, 77, 65,146, 32,147, 40,119,173, 21, -151, 75, 12,129,221,131,125, 92, 85, 97,189, 20,241, 28, 94,191,193, 98,119,135,189, 43,135,236,238,237,113,243,233,167,177,117, -131,173,106, 78, 86, 43,182,211,196, 98,111,143,122,185,195,114,177,164,106, 91, 57, 51,114,102,177,104, 49,214, 50,244, 61, 79, -236,149, 70, 97,140,197, 58, 75,215, 13, 40, 37,101, 26,206,123,148, 49, 76,161,103,177, 92,178,187, 60, 96,154,132,107, 77, 41, -115,101,127,159,163, 71, 15,184,253,212,109,124,229,104,218,134,179,179, 51,214, 91,233,128,151, 90, 75, 17, 40,109, 55, 43, 14, -246, 26,118,170, 72,109, 39,186,245, 99,162, 62, 99,239,240, 89,218,221, 87,120,250,213,159,227,250,115, 95,165, 20,197,249,227, - 31,224,188,195, 32, 53,179,170, 36, 74,201, 56, 47,156,106,153,183, 52, 74,153,135,244,140,226,114, 88, 18, 65,173, 82, 19,221, -122, 77,183,217,112,116,114,134,179,134,221,253,125,209,160, 20,232,183, 27,206,143,207,216,108,214, 44,247,174,112,176,127,200, -225,222, 30,187, 77, 65,135,142,202,172,185,247,209,175,243,141,191,255,125,190,251, 15,222,228,135,223,251, 22,247, 62,250, 29, -210,120,130,111, 26, 62,253,197,191,202, 79,255, 27,255, 33,239,127, 7, 62,249,193,247,104,246,158,194, 47,247,217, 60,254, 1, - 83,140,168, 98, 88, 92,121,142,103, 95,251, 5,134,205, 39,228,188, 33,247,167, 20,192, 57,203, 98,209, 72,112,203,246, 30,237, - 82, 51, 94,108,136,122,135, 97, 12, 44, 23, 13,119,238,220, 98,219,157,211,143, 35,222,203,153, 24, 99,154,183,113, 79, 41,101, -222,190,101,168, 52,198,130,150, 86, 52, 51, 11, 63, 67,156,209, 13,144, 77,120, 26,153,198,241,137, 5,242,210,101, 20,231,229, -160,174, 27, 46,109,114,117,211,204, 11,223,230,201,162, 70, 41,136,141, 56, 64,206,179, 19, 41,178, 92,182,178, 96,230,132,100, -174,152,217,170,219, 83, 12,196,113,194,213, 21, 37, 11,218, 48,206,116,103,152, 34, 41,102, 22,115, 27, 97,140,137, 49, 70,218, - 70,116, 66, 83, 20, 94, 93,171,185, 74,213, 56,172, 19,132,210, 24,135, 51,150, 41,142, 76, 83,100, 12,145,106,190,107,141, 81, -128, 76, 15,222, 59,177,221, 90,201,218, 16, 5,190, 37,169, 68,201,130,154, 72, 6,135, 1, 20,230,218,173,219,111,196, 52,243, -189, 74,201, 7, 31,194, 19,110,203, 88, 67, 73, 98,150,247, 94,252,130,151,113,176,144, 9, 99,160,228,132, 54, 22,231,107,198, -177, 71,105,195,182,235,229, 7,145,187, 13,111, 43,249,229, 40,133,243,146,123,171,173,196,140, 94,202,253,173,145,225,162,170, -106,172, 21,126, 83, 33,182,174, 20,195,108,159, 81, 18,167, 26, 2, 57, 6,156,151, 23,161,235,182, 36,165, 4,150, 14,115,197, -170,154,149,225, 90,147,138,180,249, 56, 47, 81,172, 77,211,206,156,142,212, 42, 38, 50,226, 7, 4,233,213,157,152,194,136,175, - 60,117, 93, 83, 87, 21,211, 32,209,174, 82, 15, 43,131,133, 53, 34,164, 80, 74,179,187,187,195,101,114,214, 48, 13,172, 47, 86, -148, 52,209,143, 35,171,174,163,219, 10,180,103,180, 66, 91, 79,105, 91, 84,211,136,226, 56,202, 64, 51,205, 14, 1, 17,114, 20, -188,117,212,181,151,141,181,200, 65,101,140, 70,197,200,180,217,178,219,122, 76,206, 40, 50,222, 41,254,218,207, 60,207,179,251, - 21,223,187,191,229,227, 11, 56, 29, 20, 83, 26, 57, 25,225,222,201,200, 31,121,237, 14,168,204,155, 15,183,124,233,185, 67,254, -243,191,248,135, 57, 95,245, 28,236, 52, 28, 54,142,247, 30,158,243,249,103,174,240,185,103,174,241, 95,252,239,191,199,175,127, -239, 49,141, 41, 84, 78, 30,180, 95,251,131,251, 60,222,142,252,197,159,127,141,255,251,119, 62,102, 74,114, 97,182,205, 44,212, -155, 31,172,170,146,108,119,165, 37, 74,120, 26, 6,214, 27, 73,231, 43, 72, 54,254, 56, 72,134,243,106,181, 22, 20,199, 24,188, - 19,255,254,118,187, 33,140, 35,106, 28, 32,142,108,215, 91,246,106,201, 66,223,223, 91,178, 92, 46,104,125, 67,219, 88,249,218, -198,208, 86, 13,181,115,248,102,129,173, 28, 90, 25, 46,241,140, 82, 20,168,130,183, 2,183, 57,235,200, 9,134, 56, 81, 55, 26, -149, 71, 54, 39, 71, 84, 8,138,227,154, 29,190,254,189, 79,248,241, 27,138,107, 87,118,168, 23, 13,214,123,156,214,172, 78,206, -232, 63,185, 71,169, 27, 78, 62,190,203,197,249,154,173,111,249,191,190,245,128, 97, 76, 92,175,224,198, 65,203,135,199,107, 62, -126,239, 49,175, 47, 7,202,141,155,236, 44, 23,216, 44,241, 19,123, 14, 54, 33,241,242,173,150,223,126,251,130, 71,231, 91,156, -175,217, 95,212,228, 92,184,121,237, 16,231, 42, 82, 78, 80,178, 60, 35,204, 5, 49, 10,204, 19, 36, 2,121,111,149,230, 50,153, - 80,107,249,223,218, 8,116, 94,114,161,169, 43, 86,235, 45,191,245,141,223, 99,154, 38,158,127,230,105, 52,138,219,215, 14,153, -134,137,247,238,222,165, 31,122,234,186, 34,132,200,208,247, 76, 97, 18, 59, 92, 16,177,234,165,224,205, 90,129,101,167,105,144, -173,212,123, 64,210,180,250, 81,248, 76,209,187,200,214, 92, 85,149, 64,153, 86,220, 32,155,237, 22,165, 10, 41, 70, 81,212, 27, - 67,237, 5, 9, 72,113,182,123, 42, 37,112,236,188, 45,245,221, 64, 65, 16, 55,107,103,232, 58,200, 38,148,147, 56, 45,214,221, -134, 97, 28,104, 91,209,240,244,125,143, 86,200,251,106, 53, 90,201,185,176, 92,238,208,182, 45,186, 20,234,182,102,119,255,128, -146, 53,103,167,143, 57, 59, 59,230,236,244, 28,231, 20,149,111, 9,169, 32, 34,179,200,118,211, 11, 5, 16, 38, 14, 14,174,210, - 46,118, 49, 17, 76, 60,229,226,236, 61, 78, 79,238,145,115,102,239,218,171,212,203,171,220,120,238,143,227, 22, 87, 56,185,247, - 7,160, 12, 96,200, 69,244, 56, 37,203, 59, 0, 5,163, 20, 86,107,180, 53,164,164,128,196, 52,137, 93, 78,105,169,155,109, 42, -135,245,142,213,234,140,213,106,139,177, 21,251,135, 87,216,191,114,128, 54,138,227,227, 99,206, 79, 78, 88,111, 87,132, 56, 17, - 81,212,237, 14,183, 15,119, 40,221, 7,172, 79,190,201,209, 71,191, 75,127,252, 93,186,213, 3, 74,127, 74,183,254,136,183,126, -247,239,115,247,205, 95,229,209,221,223,227,236,209,191, 96,216,124, 68, 9, 91, 74, 82, 28, 62,251, 69,118,247,159,101,117,252, -251,108, 31,253, 62,227,249,199, 36,213, 34, 5, 44,142,172,107,198,237, 72,200,150,169,177,164, 28,209, 49,176,216, 89,112,253, -160,229,241,201,125,156,243, 56, 45,136,228,101,171, 24, 10,182, 93, 71,138, 81,104,212,148, 24,163, 36, 10, 78,227,136,140,142, - 5,148,154,105,224,129, 41, 72,238,132,196,164, 10,170,219,182, 45,222, 75,122,168,247, 82,227,170,180, 98, 74,153,156, 11, 33, -140,242,245,221,101, 42,169, 67,156, 55,242, 12,139,133,218, 98,141, 66, 91, 43, 40,180,182,116,221,102,126,167, 20, 41, 77,196, - 49,226,106, 63, 11,155, 5, 85,188,180,210,122,239,112,117,197,208, 15, 12,195, 72, 38, 97, 49,140, 81,188,247, 10,201, 82,168, - 42,207, 24, 36,182, 60,134,128,245,243,251,100, 68,244,231,157, 71, 33,214,184,113,184,108,116, 19, 68, 78, 18,230, 34,222, 90, -209, 68, 88, 73,181,115, 78,208,181, 20,197,202,233,173, 3,173, 48,123,135, 87,223,168,155,154,245,122, 61,255,192, 34,100, 83, - 70,100,244,206, 73,208, 71,187,108, 33,201,225, 50,246,210,237,188,179,148, 75,204, 58,153,186, 54,155, 13, 85,189, 16,184, 58, - 68,198, 81, 18,112, 74, 44, 12, 65, 20,188,149,171,137, 73,242,176,149,177,104,133, 88,225,250, 1, 93,228,128,146,127,133, 23, - 47,136, 95, 91, 89, 77, 91,215,104, 37, 9, 95,185, 20,124, 37, 80,199,118,187, 33, 21,184,140, 7,245, 78,184,122,109,196, 71, -238,156,149,105,222, 42,225, 27, 11,140,227,132,245, 30,138,240,184,227, 56, 82,162,120, 20,115,150,182, 47,165,228, 23,146,227, - 92, 94, 81, 57,114,146, 92,237,148, 19, 6,192,136,239,182,246, 53, 74,203,134, 61, 77, 2,153,167, 41, 48, 78,211, 19,197,109, -206, 98,195,218,219,223,167,105, 26,106,103,113, 90,227,188,195,121, 43, 15,133, 2,148,162,105, 26,150,139, 5, 37, 71, 82,138, -244,155, 53, 58, 78, 28,236, 44, 88, 54, 13,228, 66,229, 13, 77, 93,179,190, 88,113,122,122, 74,183,217,240,183,254,210, 87,121, -112,124,193,183,223,122, 68,177, 30,127,101,159,207,190,120,141,227,251, 39,180,182,208,238,183,216,221, 67,194,118,195,131,141, -164,120,197,162,248,210, 75,135,252,107,127,228, 5,254,220, 31,122,142, 12,252,226,215,223,227,159,189,249,144,186, 50, 12,211, -136, 41, 9,173, 50,173,183,124,253,135, 71, 60,187, 80, 28, 13,142, 62, 91,106, 95, 17, 99,192, 89,241,139,231, 57,143,191, 20, -129,218, 75, 46,172, 55, 27, 10,138,208, 15,228, 28,105,170, 26,227,156,120,141, 83, 32,230, 8, 37, 49,206, 46, 1,103, 53,169, -219,224,188,163,219,246,212, 46,227,149,193, 56, 77, 28, 35,211,148, 68,181,108, 10, 37, 43,198,174,163,109,107,148, 50,212, 85, - 75,158, 70,170,182,198,104,139, 49, 22, 13,100, 36, 7, 61, 5, 69,206,145,186,114, 80, 52,195,166,112,177,142,140, 89,177,222, -142,108, 55, 43,210,180,229,100, 53,240,230,183,127,200,163,183,223,103,120,240,144,238,225, 3,134, 62,240,255,254,147,239,240, -214, 59,119,249,253,223,125,135,175,127,231, 46,191,254, 7,247, 56, 61, 91,243,229, 23,111,242,147,159,185,201,201, 89,135,169, - 13, 83, 82,124,247,238, 5,255,214,191,243,179,184,197, 14, 57, 38, 22, 70,225,235, 6, 93,121,118, 27,139,202,153,195,189,154, -223,124,103, 69, 42,133,197,222, 46,121, 24,168,124,133,119, 6,239, 28, 33,202,134,145,231,173,206, 40,129,222,245, 37,116, 91, - 68,253, 95,138,232, 91,138, 82, 51,132, 42,255,148,146,103, 52,170,193,251,138,119, 62,248,152,183,223,255,128, 79,191,244, 2, -203,229,146,231,110,223,166, 27, 6,142, 78, 79,229, 48, 76, 17,103,165, 85,106,185,179,164,105,127,180,253,196, 24,201, 68,188, -175,240,115, 6,192, 56, 12,116,195,196,184,221, 16, 99,100,103,185,196, 87,158,170,174,232,182,221, 76, 27,137,207,119,189,150, - 40,204,202, 73,150,133,179,210, 87,208,247,189,188, 99,179,144,246, 50, 81,172,169, 43,182,221, 70,236,104, 74,146,227,234,170, - 33,230, 72,201,133, 75,223,240,166,239, 80,206,163,180,102,236, 6,208, 72,207,180,157,185,205, 65,232, 43,101, 50, 33,118, 24, -147,105, 91, 81, 28,175, 87, 43,214,219, 53, 23, 23,107,169,213,204, 16,147,194, 56,131, 50, 21,144,197,109, 98, 12, 41, 12,128, -150,108,248,170,230,202,222, 62, 71, 71, 15, 73,195, 41, 75,215,209,159,189,203,197,163,111,179, 61,251,128,229,173,207,242,169, -215,255,109,154,234, 6,167,247,127,151, 76,134,172, 80, 41,115,112,184,135,119, 14,171,192, 24, 40,165, 80,251,134,162,228, 25, -213, 90,129,176, 78,164,148, 9, 49,147,139,198,105,185,140,186,205, 57,235,237,134,147,147,115,140,174, 56, 56,184,194,114,103, -143,170,113,132, 81, 66, 82, 54,235, 53, 25, 48,198,177,183, 92, 82, 59, 77,223, 93, 96,129,171,215, 14,185,117,253, 10, 78,111, - 8,171,123, 12,231,239, 51, 92,220,101,115,126,196, 94, 91,115,227,198, 85,108,217,176, 57,121,155,245,197, 67, 54,231, 27,206, -214, 27, 66, 40,140,227,150,113,140,132,113, 69,202, 19, 90,123,226, 54, 18,131, 66, 27,168,236, 72,204, 61,138,194, 20, 2,214, - 57,182,155,141,156,137, 37,163, 75, 33, 23,197,162,169, 89,236, 44,216,108, 37, 37,210, 24, 35,136,171,175,228, 44, 45, 96,213, - 76,155, 90,113,171,136, 94, 39,224, 43, 73,208, 52,222,146,103, 61,152,113, 21,198, 88, 17,123,206,168,150,132,162, 73, 79,199, - 48,140,104,171, 81, 40,250,205,134, 2,244,189, 60,159,211, 56, 97,189, 44,146,130, 58, 15,196, 81,146, 14,149, 82,132,105,132, - 34,195, 73, 83,139,253, 54, 38,161,178,198,126,132,130, 92,186,218,224,189, 37,147,231,225,199,163,180, 32,148,228, 76,229,189, - 44,173, 70, 49, 12,146,204,152,139,136,231,180,149,108, 10, 41,186, 73,228, 36, 25, 19, 57, 11, 90, 29,210, 12,247,231,132, 82, - 26,148,232,172, 52, 66,119, 94,234,193,204,225,141, 27,111,168,121, 91, 30, 71, 57, 76, 54, 93, 71, 8,179,207,175,136, 64,204, - 91, 11,136, 90, 56,165, 36, 31,244,252, 33,116,221,150,190, 23, 65,128,117,158,213,106,197, 24,132,255,117,198,162,157, 23,241, - 91, 20,139,144, 82,144,178,134, 28,209, 86,130, 33, 98, 74, 51, 87, 81,144,239, 92, 2, 29, 40,178,161,148,140, 68,192, 86,158, -177,239,168,235, 90,154,205,114,126, 66, 3, 40,107,137, 81,166,193, 49, 76,196, 97, 68, 91, 67,152,164,199,221, 88, 17, 21, 80, - 10,149, 19,152, 35,134, 32,218, 21,107, 72, 33,145,178,248, 36, 99, 14,236,180, 11, 57,180, 98,192, 59,207,102,189,193,206,106, -202, 92,102,145, 94,144, 7,170,148, 52, 59, 3, 70, 66,144,200, 87,239, 37,104,101, 49,167,228, 85, 85,197, 98,103, 7,103, 69, -121, 74, 46,172,215, 43,198, 16, 41, 69,177,172, 27,177,247,104,205,249,209, 49,222,105, 90,165,168, 43,203,222,222, 46,185,192, -102,125,134,213,133,163, 71, 15,120,248,224,136,205,249,138,211,179, 51, 82, 14,220,216,173,249,247,126,234,121,222,186,119,198, -209,105,207,131,147, 45,119, 79,123,174, 95, 89,240,175,126,229, 69,222,251,240, 62, 62,142,148,238,130,159,124,253, 37, 76,152, -248,233,215,111,240,244,142,225,202,194, 49, 20,217, 22,190,242,217, 91,252,149,255,249,235, 20, 45, 23,131,100,134,139, 39, 20, -192, 24,197, 63,125,243,152,135,167,231, 79,160,196,186, 18,235,154,113, 78, 32, 36, 36,184, 4, 37, 10,213,146, 1,141,192,144, - 65,162,117,167, 24, 89, 54, 53,206, 11,236,181,179, 20,159,106, 28,122,198,245, 10,131,198, 90,131,138, 29,206, 89, 10,150,146, - 11,186,241,114, 1,104, 43, 47,147,177,108,182,219,121,155,169,177,149, 76,230,221,197, 26,173,193,105,141,245, 21,149,215, 80, - 20,222, 91,198, 41,146,139,248,230,149, 85,212,173,188,124,211, 24,233,182, 9,173, 18,127,249, 75, 87,216,247,138,243,227, 53, -171,117, 15,155, 11,226,197, 41,123,181,225,221,163,158,172, 13, 55,111, 95,227,143,253,248, 11, 92,189,178,199,149,235, 7, 84, -149,227,221,143,143,248,224,120,224,221, 71,107, 94,125,254,144,175,126,250, 54,215,247, 61, 87,118, 27,106,167,249,205,239, 63, -226, 87,127,112,193,123, 31, 29,241,218,205,150, 87, 95,185,201,111,190,117,198, 89, 87,240,149,167, 15,145,119,223,125,143, 77, -215, 73,169,138, 53,130,212,230,242,228,162,206, 37, 11,204,157, 50, 99, 8,160, 4,146,207, 69,160,120,103,133, 59,212, 90, 58, - 28, 46,219,219,154,202,211,180, 13,171,205,150,239,254,240, 29,118,155,134, 43, 7,251, 60,255,212,109, 30, 62, 62,230,254,163, - 35,156, 49, 44,118,118,176,198, 82,213, 53, 49, 39,218,186,193, 56,113,145,228, 92,136, 69,106, 48, 55,221,134,113, 8, 88,163, - 68, 83,162, 21,151, 17,208,221,166,155,203,136, 60, 49,199, 25, 38,119,148,156,232,123,177,108, 94,114,164,221, 32, 27,140,120, -198, 45, 93,223,163,181,102, 12, 35,139,118, 73,202, 25,111,101, 88, 47,185,176,222,174,133,242, 81, 10,173, 97,156, 38,154,170, -194, 96,240,190, 34, 71,225,231,173,150, 16, 16,231, 29, 77,211,144,162,124,134,185,100,166, 36,121, 10,171,109,160,219,244,196, - 24, 72, 69,196,158,122,166, 27,141,154, 83, 16,211,156,190,167,165, 75,226,241,241, 9,155,243, 21, 15,142, 30,146, 82, 98,179, - 89,115,118,190, 34, 77, 3,251, 7, 11,106,103,209,241, 49,155,243,247,136,212,236,221,252, 49,250,213,125,198,126, 53, 15, 89, - 9, 84,102,152, 70,198, 41,138, 6, 5,133,115,134, 82, 52,153,132, 54,242,245,208, 96, 93, 75, 41, 2,181,230, 82, 80, 73,224, -102,239, 20, 67,223,177,217,174,121,244,240, 33,171,213, 10,235, 43,246,246,175,114,120,120,141,102,209, 80,178,156, 79,171,109, - 79,229, 91,177, 91,117, 35,165, 68,198,110, 67,223,141,120,107, 88, 46, 42, 42, 99,185,216,116,124,114,116,202,217,217,134, 97, -154,152, 98,161,144,240, 70, 20,253, 10, 89,248,116,209,228,162,200,121,100,217,102, 14, 15, 12,123,187, 21,206, 25, 82, 42,116, -163,156,207,198, 90,186,237,150, 52, 37, 66, 39, 91,119,209,115, 62,199,248,163,158,241,186,174,233,135,129, 24, 3,198, 72, 99, -167,175,228, 62,162, 20, 98,146,220,246,186, 18, 33,110,211,212, 56, 35,219,182,210, 6, 20,244,219, 45, 33, 38,156,158,163,179, -131, 56, 50, 74,129,144, 2, 67, 55,200,146,186,179,192, 25, 81,181,231, 36, 52, 86,152,100, 24,170,156,220, 73,149, 23, 10,175, -170, 42,156,151,222,243, 39,217,236, 41,161,138, 2, 20,237,178,197, 85, 30,235,141, 64,250, 65,158,151, 24,231,236,130,185,235, -194, 57, 65, 51,251,105,100, 24,100,136,173, 43, 89, 84, 55,155, 13,227, 48,138,205,214,136, 11,173,174,107, 41,241, 74,242,156, -135, 48, 17,166,145,113, 18, 23, 71, 1,164,138,217,224,180,160, 90, 57,103,204,213,155,183,223,184,132, 20,156,247,194,103, 86, -115,137, 70,140,104,101,208, 86, 97,180,148, 95, 24, 99,176,243, 33,190, 94,111,132, 79,205, 25,173, 20,245, 98,137,210,226,235, -206, 73,218,116, 82, 42,148, 44, 85,136,151, 62, 64,217,132, 3, 99,148, 23,189,223,246,144, 19, 41, 74,101,163,118,179, 13, 33, - 69,148, 2,163, 52,218,136, 26, 80, 33, 91,118, 76, 18,229,199,255,239,107, 40,235, 40, 73, 14, 12,177,194, 73,248,195, 44, 65, -149,112,143,113, 36,151,196,101, 27,154,146,125,155,113, 28, 69,113, 95,120, 34,232, 82, 74, 17,115, 70, 21,129,123,166, 41, 60, -161, 30, 46,185, 76,173, 21,139, 69, 75, 12,129,156,149, 64,245,117, 69, 85, 73,250, 87, 93, 55, 24,165, 72, 8,220, 40,193, 49, -242, 34,142, 99, 79,158, 38, 22,222,145,195,128, 43,137,179,163,135,228, 56,177,119,101,135,177,219,178, 89,175,216, 14, 61,167, - 39, 39, 76,211,192,197,197,185,248,214,167,128,214, 18,182,160,173, 34, 38,240, 86,241,159,254,133,159,228,237, 15, 30,242,224, -180,231,108, 8,220,216,109, 88, 58,205,189,243,192, 79,124,254, 6,191,253,237,251,188,119, 60,178,176,153,195,214,177, 61, 95, -241,210, 43,207,210,238,239,145,114,198,228,194,217,122,226,191,255,229,239,210, 24,131,175, 28,218, 56, 17,251, 81,112,206,227, -141,198,233, 34,225, 45,219, 13, 57, 79, 56,223, 96,236, 44,134, 75,137, 88, 10, 74, 43, 98, 76,172, 87, 27, 98, 8,148, 40,124, - 21, 57,163, 42, 79,227, 28,221, 48,208,182, 18,219,170,141, 97, 88,159,179, 89, 93,112,251,112,143,167,175,182,220,187,247, 0, - 79, 33, 39,133,170,101,107,149, 24, 98,201, 46, 56,187, 88,203, 97,156, 19,214,137,104,210, 20, 69, 70, 99,172,134,148, 72, 41, - 48, 13, 61,113,144, 42,199,166,174,112, 94,244, 15, 20,200,243,115, 84,102,139, 78, 78,145,255,236,107, 79,243, 51,159,187,201, -171,159,185,195,207,124,245, 21, 62,255,218, 11,216, 27,183,121,234,165,231,249,252, 79,124,129, 47,124,238, 54, 79, 63,117,200, -215,254,196,235, 60,119,231, 22,223,254,230, 7, 60, 26, 18,183,174, 44,248,254,135, 39,124,114,209,203,176,154, 3,255,240,219, - 31,241,149,207, 60,197,127,247, 75,111,242,243,255,237,175,241,191,126,253, 49,125,125,192,255,242,207,143,248,175,255,238,183, - 24,207, 54,252,204, 23,111,243,207,222,185, 96, 10, 35,149,175, 32, 11,207,152, 75, 17,196, 38, 37, 74,153,139,147, 46, 7, 95, - 5, 97, 30,134,225,210, 70, 40, 27,130,210,151,217,238,162,154, 87, 90,254,212, 74, 63,177,174,166,148,248,240,147, 7, 44,219, -134, 69,211,112,231,246, 77,254,224,135,239, 80, 80,180,109, 75,204,145, 20, 34,117,221,112,233,145,119, 78, 50,180, 43, 39,137, -130, 18,178, 33, 57,234,109,219, 80,123, 15, 73,177,237,182, 52,237,130, 82,230,115, 32, 23,194, 48, 60, 25, 0,199, 97,224, 50, -116,202,213,126, 70, 26, 10, 59,187,187,178, 1, 25, 3,200,123, 39,170,112, 81, 15, 43,163,153,134,203, 86, 64, 17, 51,229, 44, - 27,141, 49,134,172,228,189, 46, 26,134, 78,130,155, 72,153, 24,203, 12,169, 66, 85, 9, 10,224,230,207,101,103,113,192,118, 20, -161,173, 65,163, 84,134, 98, 80, 74,158,145, 56, 11,121,149, 50,128, 28,230,117, 93,179,104, 29,253,212, 19,199,136, 54,224,140, - 98,219,201,129,126,245,218, 21, 20,145,254,236, 99,212,112,159,208,221,147,140,112, 13,245,194, 73,170,221, 80, 24,167, 8, 69, - 99,148, 34,150,132, 38,113,120,176,203,222,206,130,146,178,228,101,100, 37,153,226, 51,253,152,179, 12, 86, 40, 89,198,202, 76, -177,104,165,136,211, 72,183, 93,113,252,248,136,227,227, 99,142, 79,206,232,123, 41,226,241,222,178,237, 4, 22,158,210,196,241, -209, 57,219, 97,100, 12, 35,231,155, 45,167,171,129,117, 47,233,142, 70, 59,140, 5,173,244, 92,110, 37, 86,171,164, 10, 97,234, - 9, 99,196, 85,176,220,209,236,239, 58,118,118,229, 25,117,222,177, 90,175, 24,134,158,146, 37, 59, 66,228, 69,162, 8, 55,222, - 18, 98, 98,111,119,201, 56, 4,198,105,124,130,206, 12,195, 40,104,146,147,114, 22,235,172,164, 64,230,252,196, 45,101,140,104, -150,172,181,148,172,232,135,142,105,144, 75,174,170, 36,112, 71,161,176,109,133,243,114, 25, 75,120,151, 17,129,182, 42, 18,174, -100,228,142,169,171, 26, 41, 4, 74,104,165, 89, 46, 90,180, 86,164, 20,159,136, 67,101,144, 81,180,109, 35, 89, 44, 69, 42,178, - 47,243, 82,226, 76, 51, 41,138, 92,176,243,215,181,202, 96,140, 37,151, 36, 97, 55, 69, 52, 47, 0, 37,101, 74,148, 0,168, 68, - 66, 35, 98,215, 16, 2,227,165, 6,129,140,209,134,202, 75, 84, 51,243, 59,226,156, 36,211,149, 82, 48,214,227, 42,137, 34,247, -181,147,193,121,255,234,181, 55,180,117, 92, 86,125,250, 74, 38,159, 97,232,101,178, 77,137, 52, 12,140, 97,148, 23,218,154, 31, - 97,249,169, 80, 74,146,214,164,182,197,104, 77,137, 50,113, 85,149,164,139,229, 52, 79,150, 70, 67, 41,148, 4,117, 83, 19,194, - 68,142, 17,173,138,168, 25,189,167,169, 43, 10, 69,248,121, 99,101, 87, 47, 2, 57,100, 20, 58, 39, 54, 93,143, 51,162, 4,141, - 41, 17,114, 34, 71, 41, 61,153,198,137,148, 11,222, 87,196, 56,137,223,214,206, 65, 2, 74,106,242,140,214, 84,190,198, 91, 63, -115,190,242,162, 59, 43, 86, 50, 50, 52,139, 70, 30, 12, 35, 23, 71,229,165, 14,182,170,156, 64,155, 57,179, 92, 74,159,119, 46, - 50,245,139, 22, 64,242,199,181, 22,229,126, 76, 34,244,240,222, 11,140, 26, 36, 72, 35,246, 29, 67,183,162, 63, 63,147, 48,136, -245, 5,105,234, 8, 97, 22,156,105,197,197,217, 74, 38,241,186, 18,207,124, 9, 79,224,155,152,227, 44,140, 16, 62,102,247,202, - 62,190,118, 16, 19,127,253, 47,188,206,195,251,231,220, 63,186, 64, 25, 71, 85, 50,215,246,107,206,250, 76, 84, 53, 95,126,237, - 14,159,187, 85,243,206,135,143,248,228,209,154,139,245,192, 79,255,244,107, 76, 33,161, 83,145,174, 97,173,248, 31,254,222,247, -132,187, 87, 26,107,180,136,242,128, 16, 39,217,206,149,108,241, 86,137, 66,118, 28,122,198,152,136, 81,132, 39,146,126, 52,206, -209,188, 9,141, 92,230, 69, 21,176, 22, 99, 61, 49, 39,129, 98,103,168,245,248,163,143, 88,157, 93,112,243,234, 33,215, 23,150, - 78, 53,212,198,114,124,122, 65,181,187, 20, 17,102, 41,180, 85,197,114,103, 23,109, 61, 39,143,143,169, 42, 71, 85,137,144,176, -100,201, 86, 71, 23,225, 41,181,193, 58,199,114,119, 23,171, 69,112, 57, 77, 19,149,175,104,171,150, 97,154,112, 86, 32,207, 66, - 33,160,249,133, 31, 59,224,166,141,188,191,245, 60,124,188,226, 96,111,193,171, 47,223, 0,237,248,213,223,120,135,183,222,252, -136, 46, 91, 94,127,253,121,140,130, 95,255,167,111, 49,110,183,220,190,190,224, 68,213,156,159,172,121,247,164, 99, 61,102, 30, -175, 2,143, 47, 70,254,206,111,188,205,239,188,117, 4, 64,197,196, 65,219,112,101,233,232,183,107,254,241,155,247,121,120,178, -226,249,167,175,240,193,209, 6,107, 29,253, 52,112,250,248,132,103,159,186, 77, 83,123,180, 17,212, 66, 46, 51,201,109,160,128, -181,142,146, 51, 49,101,148, 42, 20,212, 19, 88, 94, 43, 48, 86, 42,138,115,150,119,176,114, 98, 23, 51, 90, 34,124, 99,138, 28, -159,156, 50,244, 3,109,219,114,176,187,195,131,147, 83, 66, 16,119,137,212, 17,203, 65,180,217,110,132,199,110,151,244, 67, 39, -195,188,213,148, 40,104,218, 56, 74, 40, 81,200,137,186,170, 24, 58,169,210,172, 42,201, 42,112,214,211,247, 29,206,137,240,231, -114,179,208, 70,104,164,203,124,130,113,144, 66, 11,239, 37, 17,210,215, 53,181,151,128,168, 48,142,104, 5,190,146, 84,189,148, -196,173, 99,180,158,173,179,210, 32,183,186, 16,193,159, 20,121,120,166, 32,145,164,250,178,157, 49, 10,221, 83,114,194,184,194, -110,123,141,110, 28,184,116,115,136,229, 12,174, 29, 30, 82, 47, 26,134,190,135, 82,112, 94,225,140,151,172,240, 4, 26, 77,162, -144,167,196, 48,141, 52,149, 97, 24, 2,143,142,206, 56, 57,185, 96,179, 21,180, 37, 14,107,249,255,198, 45,155,213, 57, 41, 26, -158,121,246, 89,114,145,110,132,172, 21,196, 12, 69,172,170,155,174,103, 24, 34, 33, 22,114,129,102,206,203, 15,179, 87, 58, 35, -225, 40, 10,135,177,106, 30, 58, 68, 44, 88,207,240,112,219, 84,180,181,195, 57, 77,154, 70,210, 20, 33, 11,154, 82, 47, 12, 97, -144,180,208, 97, 28,200, 33,208, 56,197,254, 97,139, 53, 94, 46, 37,163,216, 93, 46,217,221,113,224,119,241,139, 37,121, 74, 88, - 91,248, 67, 95,254, 18,215,174, 47,169,189,158, 59, 58,102, 81,162, 82, 12, 51,106,187, 88,182,104,165,102,219, 94, 79,204,145, -113, 24,165,211, 92,219,249,174,145, 18,146,237,118,141,171, 43, 4, 25, 20,218, 33,167, 44,209,229,198,161,209, 96, 52, 70,139, -248,184,160,158, 8,199, 82, 22,189,213, 24, 38, 22,139,197,156,124, 40,142, 23,103,173, 84,109, 15,129, 24, 39, 25,148,130,216, -163, 83,146,231,180,242,179,242,190,150,122,226,122,182, 66, 59, 43,137,138, 10,113, 4, 25, 12,174,146, 64,172,203, 58,108,227, -220, 60, 52,107,180,250, 81, 63, 74, 14, 9,109, 53, 80,230, 33, 91,162,200,157,183,144, 5, 93,186,228, 24,164,175,162,162,242, - 14,103, 12, 18,228, 53, 48, 77, 1, 55,223, 27, 90, 41,172,113,248,218,227,172,166,114, 66, 61, 90,111, 69, 49,159, 37,252,169, -228,140,217,187,118,237,141,156, 11,109, 83, 51, 5,233, 46,175, 42,105,191, 73, 89,166,223, 39,155, 43,136, 88, 44,198,121,202, - 45, 79,188,224, 2,251, 5, 66, 22,137,190, 88,200,252,252,175, 68,240, 57, 47, 29,202, 18, 21, 42, 91, 93,219,182,144,211, 12, -147,143, 88, 43, 63,104, 74, 73, 46, 89, 13, 34,206, 19,191, 58, 32,193, 0, 97,132,114,153,232,230,177,222, 99,140, 23,127,173, -115, 52,117, 67, 83,215, 72,210,155, 76,118,214,201, 67, 96,140,168,204, 67, 76, 79, 80, 5,241, 26, 43,180, 17, 91, 15, 74, 38, -243, 24, 38,180, 49, 51,119,193,147, 11,157,156, 9, 57, 75, 36,105, 41,228, 60, 7,101,228, 66,215,109,197, 2, 23, 35,218,104, - 66, 16,127,172, 85,176, 93,157, 50,117,107,166, 77,143,177, 26,103, 69, 4,103, 43, 75, 74,112,120,253,144,148,147,108,201,139, - 5,149,247,140,253, 64, 93, 45, 68,148,152, 50,237,156,220, 84, 55, 13,139,189, 29,198,113,224,248,108,197, 78,229,248,115, 47, -239,241,222,221, 99,182, 17, 2,133, 62,100, 14,118,106,214,219,158, 76,225,254,241,150, 43,215,175,241,252, 83,251,252,218,119, -238,113, 17, 44,255,250, 79,189,194,227,109, 34,132, 68,235, 44,109,235,249,219,255,207,119,241, 51,199, 89,148,130, 44, 47,173, -213,154,109, 63,224,156, 69,106, 60, 33,199, 2, 42,227, 50, 84, 59, 11,154,166, 69,105, 17,110, 45,218,150,161,239, 81, 41,145, -141, 97,127,127, 95,120,246, 36, 69, 36,148, 76,183,221,112,113,252, 8,163, 10,159,253,194,103,120,249,133, 79,241,226,231, 94, -227,124,219,179, 62,121, 68, 23, 10, 86, 87,104,163,240, 77,141,245, 13,174,174, 88, 95, 92,176,216, 89,176,179,179, 75, 65,144, -144,105, 10, 96,196,174,232, 27, 73,251,203, 90,182,132,245,166, 71,250,140, 45, 41,203,168, 88, 87, 21,139,157, 22,107, 43,162, - 82,188,180,111,248, 11,183, 70,206, 7,195,218,120,180,130,123, 15,206,216, 76,146,234,180,238, 39, 30,156,245,188,247,201, 5, -239,127,178,230,124,232,248,254,221, 53,235,108, 88,120,203,199,103, 29, 63,188,123,194, 39, 23, 19,232,140,215, 6,173, 50, 65, - 73,159,186,209,114, 56,253,248, 87,191,192,254,173,107, 92,189,118,149, 91, 55,111,112,239, 34,210,245, 35, 23,155, 14,173, 53, - 49, 6,218,186, 97,117,113,193,178,105,177, 70,132,113,218,104, 25, 54,103,205, 66, 46,146, 58,152,139,188, 29,114,159,107, 64, -150,249, 82,202,140,154, 21,200, 32,162, 90, 5, 74,202, 95,114,206, 12, 33,112,118,177,162, 27, 70, 84, 73, 4, 52, 99,140, 84, -222, 49, 76,210,174, 23,230,195, 80,105,177, 8,214, 77,139, 49, 14,111, 36,210, 82, 41,249,158, 83,148,252,238,190,235,229,114, -156,191, 86,138,114,168,250,186, 97, 26, 36,106, 56,151,140, 55,150, 41,140,226,122, 40,242, 30,134, 56, 1, 18,199,106,173,163, -223,110,231,128,160,106,182, 10, 9, 79,170,181,192,192,214, 73, 0, 81, 63, 77,115,110,131,102, 26,167,249,130,200,120, 39,194, - 92,129, 68, 35,211, 40, 23,124, 65,130,147, 20, 25, 99, 50,139,197,174,156,103,121,214,225, 16,153,146, 52, 85,134, 73, 50, 60, - 66,152,168,235, 10, 99, 45, 99, 63,144,138,162,148,217,143, 78,102,154,164,196,233,153,219,183,105,218,134,166,242,148,162, 56, -184,122, 13, 20,228,172,201,168, 89, 20, 92,211, 54, 13, 79,221,188,193,193,238, 2, 41,206, 82,144, 18,227, 36, 2, 79,171, 53, - 82, 70, 50,176,191, 92,178,179,183,139,213,210,150,153, 98, 98,119,119, 15,230,203, 68,232,129, 12, 69, 97,156, 20,128,108,187, - 94,104, 49, 36, 38,252,157, 0, 0, 32, 0, 73, 68, 65, 84,235,200,218, 96,172, 38, 39,136, 83,164, 31, 38, 98, 54, 56,171,240, -149, 52,141,105, 11,227, 32,159,149,119, 30,215, 46, 89,109,122,198,144,217,158, 60, 34,229, 45,139,182, 37,134, 76,211,236, 83, -121, 79, 74, 35, 6,141,182, 90, 58, 23,188, 67, 25, 77,237,106, 36,197,109, 75, 46,226, 92, 80, 74, 17,163,120,187, 21, 82, 73, -124, 9,211, 79,163, 60, 63,195, 52,208,247,146,239,209,119, 61, 49, 78, 40,109,176, 90, 19,166, 72,201,226, 74,154,130, 36, 25, - 90, 43, 63,191, 82,115, 70,198, 48,226,189, 99, 12, 3,146,248, 38,129, 93,114,128, 3, 48,111,194, 10,165, 68,201, 63, 14, 17, -239,100, 1, 64, 41, 65, 45,141,216,207, 36, 0, 75,129, 18, 93, 75,206, 25, 40,164, 84,136, 33,146,147, 36,142,166, 48, 39,186, - 25,205,101,186,160,214,134,156,132, 42,139,229, 50,198, 57,130, 50,148, 34,165, 81,222, 9,165,124, 25, 65,238,156,133, 92, 24, -227,132, 46, 18, 10,212,245, 18, 80, 38,129, 99, 80, 84, 38, 77, 51, 21,150,196, 30, 58,142, 19,206, 59,204,141,219, 79,191,145, - 75,194,122,129,227, 52,224,125, 69,136, 18,133,167, 99,164,110, 26,234,170,166,148, 34, 17,157,222,203,131, 54, 72, 3,218, 48, -141,172, 86, 43,182,219,142,161,235, 8,211, 32,226,185, 92,152,194,196, 48,116,243, 70, 81,232,186,142, 41, 76, 84, 78,184, 10, - 16,133,189, 49,154,202, 75, 78,180,178, 26, 10,164,156,229, 0, 42,242,155,168,172, 68,163,106,107,105,170, 90, 30,202,105,148, - 3, 99, 10,132, 56, 49,244, 18,127,104,140, 65,147, 73,185, 60,137,102, 13, 65,138, 35,140, 17, 33,133, 22, 92,232, 73,217,199, - 20, 3, 90, 89,198,105, 96,232, 39,114,152, 4,130,177,150,205,118,246, 29, 54, 13, 41,103, 66,140, 79,236, 77, 85, 45,159,141, -117, 94, 30, 86,173,241,214,226,170,138, 28, 37, 45,106,234,123,226,102, 69,154, 36,145,207,213, 21,139,229, 18, 87,139,215, 63, -103,133,247,162,252, 94,157,175,169,219,138,237,118, 67,142, 73,106, 67,189,136, 64,180,213,120, 91,211, 79, 61,219,109,143,175, - 29,117,189,203,237,155, 55, 25,198,196, 83,187,153,143,128,167, 66,207,117,167, 56,233, 2,123,251, 13, 99, 86, 92, 91, 8, 52, -125,180, 25, 25,116,203,181, 70,243,173,251, 3,231, 83,164, 11,153,245,152,120,229,206, 62,239,191,251,128,255,237,183, 63,192, -168,130,114, 6,173, 29, 57, 10, 60,149,149,116,108,143, 83, 64,101,225, 30,115,201, 24,101,196, 65, 16, 37,233,105,103,111, 95, -224, 95,173,240,214, 50, 4, 81, 30, 55,173,184, 14,148,146, 11,166, 91, 95,144,183, 91,190,252,233,155,252,236,159,248,163,124, -230,229, 23,120,250,217, 27,196,169,231,195,247,223,231, 43,175,127,154,211, 62,201,133, 80,137,179, 96, 26, 7, 46, 86, 23,180, -117, 77,179,187, 16,187, 87,201, 51,140, 39,141,110,125,215, 81, 91, 75, 74, 5,109, 13, 77,179,224,248,248,152,202, 91,156,119, -226,203,214,134,152, 19, 83, 63,200,179, 57, 26,254,212,181,145, 91,215,118, 57, 9, 5,172, 97,175,245, 76, 70, 51,132,204,118, - 72, 12, 41, 83, 45, 26,174, 63,119,141,118,191,225,147,143, 86, 68,103,121,254,133,235,220,188,115,141,183,190,255, 9,167,219, -129, 71,171,248,100, 99,206, 74,161,234, 6,175,228, 64, 31,134,145,189,221,150, 23,110,222,226,165, 23, 94,224,217,103,239,240, -226,157, 59,188,250,202,107,188,112,235, 22,215,175,239,177,108, 37,228,226,250,222,190, 64,135, 81, 26,165, 52,138,152, 50, 32, - 8, 81,201,133,148, 5, 30, 44, 5,164, 9, 79, 46,241,203,128,154, 31, 29,168,160,141, 92,150, 49, 73,247,185, 66, 46,254, 41, - 72, 62,251,249,197,154, 24, 35,182,150, 12,135,237, 86, 90,163,140,210,120, 87,205, 73,145, 98,247,220,174,215,140,147,148, 64, - 89, 35,161, 25,165,100, 74,146,142,132,170,174,209,198, 48, 77, 18, 40,148,146,188,207,198,206, 60,104, 46,243,115, 32, 98, 81, -173, 45,227, 36, 73,137,195,216,211,212, 13, 90, 23, 17, 49,105,203, 56, 78, 52,245,220,131,128,148,106,132, 40, 84,154, 64,211, -153, 20, 4, 37,146,247,175,166,118,158, 24, 34, 83,144,246, 66,113, 7,104, 80,138, 24, 3, 49,204,231,194,216,163, 84,160, 93, -104,154,166,101,119,103,193,206,114,143,113,140,156,175, 86,196, 80, 68,156,151, 36, 55,222,251,154,110,186,236,196,136,160,120, -242,121, 91,109,104,155,150,245,249, 57,103,171, 19,114,154,184,122,112, 5,140,197, 26,241, 74,147,179,112,181, 70,241,254,135, - 31, 51,134,204,114,167,225,252,108,197,181,235,215,209,202,204,130,189,140, 85,144, 74,100,181,190, 32, 77,137, 97, 74, 18,218, - 18, 38,166, 48,177,191,183,135,162,204,203,145,151, 1,219,202,187, 18,227,136, 49, 21,168, 66,140,153, 56, 77, 88,123,233,220, -113,242, 89,206,103, 74,179,239,201, 67, 70, 27,241,145, 23,219,112,114,118, 78, 24, 34, 90, 5, 82,232,231, 75, 78,122,238,173, - 49, 28, 28,222,164, 31,214,108,214, 23,132,146, 80,128,243,213,124, 30, 75, 80, 87, 41,242,179,138, 82,221, 97,157, 67,219, 31, - 21, 52,237, 44,151, 40, 43,246, 86,178, 56,148,166,105, 34, 78,153, 66,158, 7,198, 8, 40,218,166, 65,198, 49, 41,114, 49, 90, -134,249,166, 93,224, 43, 7, 69, 2,141,140,209,164, 92, 40, 89,212,134,117, 93, 9,194,107, 61,149, 19,173,136, 46,133,166,109, -197,221, 21, 47,235,132,133, 94,213, 70,232,170, 20, 35, 41, 77,228,185, 13,173,164, 4, 69, 60, 53,185,136, 37,249, 50,111,228, -146,198, 3,200,162,120,198,217,217,133, 98, 61, 86, 9,239,173,200, 56,237, 73, 57,201,160,172, 20, 69, 43,166, 57,147,165, 36, - 41, 41, 18,237,138, 60,207, 49, 73, 64,214, 56, 10,250, 57,133,137,156, 69, 47, 32,237,156,162,126,215, 26,204,149, 27, 55,223, -208, 64, 81,242,129, 89,227,184,244,253, 57,231, 69,216,101,140, 8,186,102, 65, 67,152,166, 39,240,197, 56,202, 7, 97,125, 69, - 63,183, 96, 21, 36,167,246, 98,117,129, 72,248,211, 92,115, 39,155,148,209,210,246, 20, 83, 20,190, 44, 78,140,253,128,247,118, -134, 81,107, 50,242,119,170,153,223, 15,147, 4, 15,148,146, 81, 69,188,159, 5,168, 91, 49,221,251,202,163,208,243,244, 22, 8, -227,248, 68,205,168,103,200, 38,134,137,144, 4, 2,218,246,226,203, 69,203,180,102,157,197, 91, 71, 81,144,194, 68, 46, 2,213, -199, 41,144,201, 79, 32, 45, 73, 9, 26,169,106, 81,206, 86, 94,146,227,156, 23, 37,175,115,210, 50,165,140,240, 45,214,106,202, -250, 19,158,185,234,184,121,243,128,221,218,240,218, 23, 94,225,225,221,135,172,186,158,166, 94, 80, 20,104, 5,125, 55, 48, 78, -145,182,173,112,182,198, 56, 75,214,130,145,212, 77,203, 24, 7,206,207,215, 24,239,112, 85,195,193,254, 62, 74,105,202, 56,176, - 94,111,201,202,240,149,189,129,127,255,199,110,178, 58,186,160,105, 43,150,113,226,246,149,150,227,190, 48,197,204,162, 50,124, -114,220,177, 13,129, 59,207, 95,103, 79,103,254,199, 95,121,155,207,191,124,157,131, 74,241,209, 15, 63,226, 95,252,214,183,248, -205, 7, 2,173, 78, 67,160, 89,180, 24,132,139, 82, 40,116, 1, 95,121,134,105, 34,165, 68,229,107, 48,134,126, 59,208, 54, 2, -119,118,227, 72, 49,138,113, 20,241, 92, 70, 34,118,173, 53,172,207, 78, 25, 46, 46,232,251,158,102,236,248,218,237,154,157, 59, -207, 97, 43,207,221, 15,239,114,255,189,143,104,134, 83,142, 30,175,216, 61,216,101,183, 93,112,255,147, 7, 12,195,200, 56, 73, -121,135,177,138,213,102, 77,127,118, 65,140, 3, 10,135,115,208,173, 54, 20, 3,222, 40,182,155, 11,198, 52, 97,149,161,204, 52, -207, 48,140,104,149, 41,200, 37,128, 42,196,144,201,227,200,178, 86,252,165,175,221,225, 27,247, 35,215,246,119,185,125,208,176, - 29, 35,215,158,186,194,197,102,226,209,201,154, 27,135, 75,206,207,183,248, 69,197,250,104,205,163,199, 43,142,207, 7,158,221, -205,252,189,111,222,231,123,239, 31,209,107,205,201, 86, 54, 69,138,162, 88,141,182, 21, 49,102, 82,201,168,146,217,108, 70,124, -211,240,224,232,136, 97,156,248,240,227,187, 60, 56,186, 71,213, 58, 30, 62,184,203,149, 27, 75,110,221,185,202,176,150, 60,119, - 51,111,234,227, 52,205, 27,223,172,202, 77,146,199, 96,180,216,247, 46,189,220, 41, 11,178,166,129, 48, 15, 1,133,121, 75,138, -153,152, 34, 83, 76,179,248, 72,218, 4,167,249,114,180, 64, 40,138,126, 16, 72,222, 90, 71, 63,191,231,151, 29, 6,206, 57,198, - 65,222, 19,231, 28,221, 56,204,200,154, 70,207, 97, 52, 33, 8,220,105,180,193, 58, 47, 98, 34, 43, 5, 78,165, 8,207, 94,213, -146,222, 21, 66,198, 24,233, 98, 32,201,249,177,221,110,197, 47,239,188, 12,130, 70,156, 45, 97, 26, 73,185,208, 46, 22, 56,103, - 81,104, 54,235, 53,138, 68,211, 46,168,107,241,244, 86, 85, 67, 46,179,109, 42,103,156,175,160, 20,148, 1,149, 51, 20, 48,206, - 98,144,204,237,202,123,233, 63, 79, 61,168,128,115, 25,223,238, 49,246,114,121,146, 19,164,130,118,142, 91,183,110, 83, 89, 47, -219,229, 60, 92,169, 34,195,252, 98,185, 64, 27,135,246,142,177,159, 24,167, 34,135,186,175, 24,199,158,139,243, 11,134, 97,100, -181, 90,211,245, 43,194,208, 51,197,137,245,234,130, 92, 68,148,120,229,234, 13,198, 56,205,195,153, 12,108, 86,201, 96, 97,108, - 77,200, 96,181, 34, 37,113,150,236, 52,158,131, 43, 7,178, 33,150,194,122,117,206,102,179,229, 50, 71,195, 59,169,161, 45,104, - 82,142,108,183, 29, 25,216, 89,212, 84,190,166,104,136,147, 84,120, 42, 83,179,237, 38,182,219, 21, 87,118,106,110,220,186,134, -213,154, 24,164,173, 50, 23,141,202, 25,163, 21,198, 89,110, 92,127,154, 82, 18, 97,146, 66, 18,237, 36, 46,181,169,235, 89,236, - 42,119,138, 50,179, 29, 18,216,110, 58,194, 36, 73,159,190,170,230, 51, 84, 58, 33,140, 21,254,187,109, 91,218, 86, 6, 49, 9, -180, 74, 72, 93, 12, 79, 4,215,214, 73,118, 7,136, 77,110,156, 41,148, 28, 5, 37, 26,198, 17, 82, 18,240, 42,101,225,188,231, -239, 71, 27,201,136, 87, 86,114, 32,172,147, 97, 34, 4,201,104,177,102, 30, 82,179,184,170, 40, 69,242, 5, 0,138,216, 13, 1, -196, 82, 37,209,229, 40, 69, 70,138,185, 64,158, 59,209,101,105, 64,129, 46, 92,210,103,105, 70, 87,148, 81,228,152,169,171, 70, - 62, 43,167, 69,220,107, 13,206, 24,140, 19,143,127,201, 82,114, 22,130,252,153, 98, 36,132, 17,235, 60, 85,229,136, 89,222,115, -115,120,227,230, 27,121,158,216,189,243, 79,124,129, 74, 41,169,202, 84,122,134,157, 2, 74,171,217, 50, 35,124, 67,179,216,145, - 45, 34, 37,172,146, 15,123,156,228, 65,204, 89, 38, 25,129, 56,100,155, 19,155,152, 76, 57, 50,101, 11, 92, 81,178,112,114, 49, -202, 37,110,172,157,197, 45,145, 28, 5, 10,243,222, 83,148,136,127,156,151,239,161,118,238,137,135, 79, 41, 0, 41, 86,185,140, - 15, 20, 72,166,208,247, 18, 90, 48, 78,129, 48,206,125,184, 37, 51,133,132,168,215, 3, 83,148,224,140,161,239,169, 23, 11,185, -156, 42,129,104,198, 49,160,181,194, 59,177,187, 25,109,225,114, 35, 82, 82, 49,232,156, 52,189,153,121, 11, 48,136,143,119, 89, -182, 76,219, 11, 62,251,249,207,176,187,191, 43, 97, 50, 97,228,229, 87, 94,224,171,255,202, 31,230,252,244,140,213,106,133,171, -106,180, 41,248,202,210,119,115, 79,123, 85,129,115,132, 49,145,179,162,170, 37,107,122,209, 46,161,204,214,194,156,240,174,102, -231,202, 33,203, 69,139, 61,255,132,159,248,252,211,248,202,241,240,116,203,160, 12, 59, 41,114,231,160,229,189,147,129, 71,219, -136, 93, 56, 94,125,241, 58,167,155,200,151,126,236, 57,222,124,231, 19,126,235,221, 19,126,243, 91,159,240,253,187,231,108, 98, -225,131, 73, 20,160,139,157, 37, 41,202,229,167, 84,193, 42,197,152, 35, 74, 43, 42,231,229, 50,113,226,243,188,108,109, 27, 99, -196, 21, 73,222, 83, 70,202, 11,188,213,196,190,103,245,232, 1, 97, 18, 33,224,157,167,238,240, 66,119,252,255, 49,245, 38, 65, -150,101,247,121,223,239, 12,119,124, 83,206, 83,205,213, 85,213,232, 9,221,232, 6, 26, 68, 3, 4, 65, 16, 2, 5, 18,148,194, -146, 77,209, 33,135,229,240, 20,146, 67, 22,195,246,206, 11, 7, 54,142,240,214, 27,109,188,241,194, 86,200,178, 77,219, 52, 45, -135, 69, 91,164, 8,142,104,140,221,232,121,170, 57, 43,231,151,239,189,251,238,120,206,241,226,127,179,160, 70, 32,186, 17,168, -206,202,124,117,239, 57,255,225,251,126, 31, 43, 47, 92,103,230, 39,156,220, 59,101,103, 99,139,168, 46,249,236,188,230,209,209, - 49,105, 54,225,157,247, 63, 5, 87, 83, 21, 75,162, 84, 82,255,102,231, 11,140,119,140, 55, 87, 25, 12,215,232,218,138,131,131, - 35,210, 65, 74,108,228, 32, 49, 64,164, 13,109,111,185, 90, 27,143,136,179,156,233,233, 28,229,101, 42,213,182,178,163, 62, 57, - 17, 32,199,223,124,121,139,131,211,138, 75,155, 9,222,196,172,236,172,240,204,222, 26,135,211,146,237, 73,206,234, 40, 99,144, -192,225,147,130,163,179,130,214,138, 40,107,111,109,133, 70,195,217,162,226,241,172,161, 44,165, 24,148, 78,221, 18,140, 2, 39, - 9,113, 73, 38, 49,137,207,220,186, 74,177, 44,250, 98,185, 65, 91,205,217,233, 9, 93, 72, 56, 62, 58, 3,175,136, 76,130,111, -127, 17,150, 2, 32,153,206, 1,130,140,250,146, 68, 96, 36,242,162,203,179,237,131, 8,167,154,174,235,119,238, 34,168,147,174, - 71,172, 62,242,247,154,249, 98, 65, 81, 44, 69,104,216,143, 30,163, 52, 37,201,114,218,186,195, 68,150,174,174,201, 7,131,254, -243,146,241,101,221,246, 62,220, 68,216,211,105, 28, 97,180,208, 40, 47,126,127, 17,188,201,129,164, 16,223,177, 96, 59, 37,105, - 80,194,138,106, 4, 6,212,144,231, 57,117, 93,147, 36,169,224, 67, 59, 79, 54,200, 81, 64, 91,213, 96,196,211, 27, 66, 0, 5, -174,237, 88,214,203, 94,196,234,122, 43,156, 20,111, 89,150, 82, 87, 13, 73,150,128,151, 41, 69, 20,197, 68, 70,227,130,176,182, -117,255,185,169,128,136,158,156, 8, 49, 37,184,163,194, 90, 88, 93,217, 70, 41,241,152,163,197,130,151,166, 17,129,142,141,205, -109,210,124, 64,150, 38, 76, 70, 3, 38, 43,235,180,222,177,152,139, 43, 0,101,208, 70,129,130,209, 32, 71, 5, 77,217, 84,116, -173,116,126, 77,211,209,120,135,198,200, 88,188, 3, 27,193,198,218, 58,222, 7,202,106,137, 81, 6,107, 64, 91, 75,221, 54,100, -113,254, 84, 11,164,145,113,240,178, 89, 82, 87, 53,190,147,196, 59, 71, 36,107, 80, 20, 4, 97, 91,232, 40,198, 32,216, 93, 31, - 68,135, 96, 99,177,128, 5, 45,225, 42, 77, 7,179,233, 49,205,114, 38, 69,162, 71, 52, 11, 86, 19, 16, 52, 56,202, 96, 34,129, - 28,137, 32, 83,177,182,190, 75, 80,142,162,152,202,222, 60,207,159, 78,135, 22,139, 57,218, 26, 66,240, 44,151, 75,186, 78,214, - 44,113, 28,209,182,194, 89,215, 74, 38, 24,109, 35, 17,217, 89, 38, 25, 3,210,141, 27,186, 78,138,136, 36, 77,104,218, 6,231, - 58,241,169, 39, 6,213, 23, 59,109,211, 17,144, 98, 77, 68,179, 2,104,210,218, 18,160,223,167, 55,212,109, 43, 29,183,162,215, -216,136,123,196,154, 62, 2,182,243, 8,244, 76,238, 57,133,162,108,132, 79, 66,144, 79, 85,166, 50, 30, 77, 32,120,240, 29,178, -114, 12, 30,215,201, 90, 76,222, 73, 73,113,211, 70,222, 5,107, 45, 86, 9,215,196, 41, 48, 90, 38, 14,109,211,208,182, 53, 1, -232,154, 6,101,100,221,224,250,247, 72,107, 69,218,139,145,149,209,184,182,195, 59, 89, 1,180,109, 43,133, 89, 8,132, 0,102, -125,107,251,123,114, 89,246, 68, 52,163,233,154, 94,112, 96, 52,224,169,170,138, 36, 75,196,151,158, 10,136,197, 70, 34,106,144, -113, 12, 44, 22,146, 53,174,148,146, 29,116,156, 50,204, 82,242,193,128, 44, 19,105,254, 69,206,186, 40, 25, 35,193, 55,142,134, -146,162, 99, 68,201, 26, 69,130,138, 85,214,146, 38,177, 84,226, 74,113, 17, 82,161,141,116,249, 4, 25, 47,150, 85,133,239,250, - 92,103, 31, 48,177, 17, 15,180, 85,184,224,201, 51,233,228,101,255,102,136,250,253,190,233, 21,194,105,146, 97, 35, 75,215,186, -167,221, 79,154,138,255,118,177, 40,136,210, 4,215,182, 52,173, 40, 53,155, 86,252,140, 77,213, 80, 86, 37,193, 5, 58,239, 41, -171, 26,171,148,116,219,109,131, 14, 29,105, 59,229,252,232,144,149,141, 45, 22,231, 5,243,186,100,107,107,141, 89,227, 57, 91, - 46,185,113,253, 50,247, 62,248,132, 44,203,168,218,138,233, 89,137, 38, 98,122, 94,224,156, 99,144, 79, 88, 25,175,178, 50, 26, - 17, 69, 26,107, 21,229,124, 65,177, 40,200, 83, 65, 46,198,253,132, 64,105,176, 73, 70, 58, 59,224,255,122,243, 35,174,174, 79, -168, 59, 79,156,197, 68,218,178,112, 45,137, 81,188,244,242, 85,142, 26,133,118,158, 60,143,104,150, 29,239,124,180, 79,177,104, -201, 34, 79,237, 53, 47, 95,155,240,193, 76,114,223, 37, 93, 47,162, 94,150,152,126,135, 41, 35,240,154, 40,146,252,110,165, 53, - 93,213,226, 93, 75, 32,192,133, 86,161,170,112,109, 67,121, 62,165, 56, 63, 35,183,134, 81,170,249,237,127,235,219,252,251,127, -247,239, 17,187, 22,167, 2, 87, 94,255, 22,227,201,170, 88, 84,226,192, 34,192,225,233, 28,167,107, 54,247, 54,185,255,240, 0, -231, 90, 58,192,234,128,247, 10,107, 13, 54,177, 88, 35,144,155,211,163, 19,108, 34, 96,155,131,179, 25,101, 81, 64, 8,104, 99, -232,186, 6, 27,203, 40,205,198, 49,211,249,185, 88,168,186,142, 65, 44, 46, 14,109, 44,113, 26,241,245, 27, 67, 8,129,120,101, -133,221,221, 9,103,247,142,185,127,239,152, 60,177, 52, 77,135, 81,138,123,167, 37,147, 65,202,230,192,114,239,176, 96,119, 53, - 39,142, 21,179,121,195,189,253, 41, 54,142, 57,152,215,116, 78, 70, 48, 1, 37,123,239, 78,144,203, 26,249,190,126,235, 55,126, - 21,107, 52,123,151,214,217, 88,223,100,122, 54,227,116, 58,227,195,119,223,103,103,103,139, 44,233,195,124, 26, 81,215,130, 28, - 2,206,139,162, 92,105, 45,239,104, 95, 24,119,253,243,235,156,192, 75,234,186,162,115,190,239,174,228,152, 58, 62, 59,227,244, -124,202,225,225, 17, 7,199,199,204, 22, 75,102,243, 5, 62,128, 54,162,224,237, 58,143, 81,208, 6,112,157,160,141,179,254,178, - 29,142, 71,196, 54,166,109,107, 98,155,144, 13, 18,240, 10, 15, 50, 14,212,154,200,136,221,208, 33, 1, 22, 90,235,167, 10,122, -173, 37, 52,230,194,146, 19, 39, 9,113,175, 78, 14, 94, 44, 75,206,203,191,147,231, 3, 41,204, 3,232, 72,242, 32,234,178, 34, - 4, 47, 42,248,186, 21,245,115,211,225,232, 63,131,182,195,133,174, 63,216,133,223,237, 58, 79,156, 70, 44,151,101,175, 17,145, - 95,107,180, 17,116,171, 22,226,164, 64,176,236,211,198,161,107, 59,170,122, 73,221, 76,201,243,140,213,245, 13, 86, 70, 67, 38, - 43, 35,202,229, 57,218, 52,212,205, 41,174, 91,146,103, 6,173, 65,105,197,112, 48, 65, 41, 67,221, 84, 40,101,250,159,169,101, -109,117, 12, 74, 49, 28, 14, 81,193,163,173,194,183, 8, 19,196,136,232,214, 88,141,213, 17, 54,146, 4, 63, 57, 23,107,148,145, -134,101,101, 50, 65, 27, 43,170,247,190, 91, 84, 65, 99, 35, 69,240,142, 14,141,210, 22,156,236,215,181, 54, 36,189,182,168,235, - 2,145, 53,216, 40, 33, 77, 35, 98, 27,225,149, 97, 94,148, 52,203,146,197,217, 49,117, 49, 21,241,160,141,250,231,214, 97, 12, - 12,178, 1,249, 80, 44,190, 42,136, 78, 67, 41, 69, 83,215, 84,149, 68,110,175,174,237, 97, 35,205,124,113,134, 81, 18,150,226, - 58,177, 2,214,117,139,181,162,191,176, 70, 4,172, 70,235,167,211,147,166,174,169,171,234,169, 88,178,170, 91,162, 72,236,137, -214, 24,226, 88,244, 82, 74, 75,116, 51, 90,226,184, 67, 80, 2, 23, 82, 26,165, 33,137,229,126,177, 86,130,181,226,254, 18, 84, - 33,144,229, 25, 38,138,208, 65,145, 36,114, 39,217,200,210,186, 14,173, 68,124, 40, 94,116,176, 70, 38,183,218, 72,182,130,172, -130, 65,196,168, 94,158,183,224, 9, 94,247, 13,165, 20,210, 65, 1, 1,180, 50,125,225,106,209, 26,172,141,233,235, 13,130, 7, - 99,165,217, 13, 74, 65, 16,108,108,108, 35, 2,112,225, 18,107, 91, 89, 97, 4,144,198, 24,240,254,226,123,144,201, 99, 8,160, -181,124,214,210,116, 58,204,230,222,165,239, 41,173,251, 67, 58, 98, 89, 22, 40, 45,208,153, 36,142, 89, 46,151, 76,198,163,167, -106,107, 5,132, 0,243, 69,239, 97,108,107,218, 86,194, 90,180,214, 36,249,128,209,112, 40,163,252, 88,208,117,222,123,148,214, -212,181,164, 99,217, 40,194, 7,193,135,198,113,132,210, 50,110, 81, 70, 19,245, 23, 60, 65, 42,144,162, 40, 88,150, 37, 85,245, -175,197,142,106,129,111,160,197,247,170,180, 36, 75,105,109,201,178,148,160,164,122, 53, 74, 30,128,178, 92,202,168,176,255, 62, - 4,156, 33,213,190, 82, 74,198, 47, 73,207,255,206, 82,180,150, 4,171,139,104, 74,155,197, 61,112, 70,224, 59, 77, 45,193, 48, - 73, 42,145,122, 23, 74,127,173,192,135, 64, 98, 97,107,108, 24,102, 67, 70, 99,195,147, 71,135,216, 60, 39,203,135,252,240, 39, -159,178,185,190,131, 53,154,127,241, 7,127,204,221,199,231, 60,220, 63, 37,132,136,151, 94,122,153, 36, 77, 24, 12,115, 46,108, - 20, 46,116,204,166,231,184,186,161,152, 47,201,243, 68, 58,144,197,146,241,202, 42, 73,158,211, 17, 24,143,115,102,197,130,217, -209, 17,255,221, 63,250, 6,101,211, 50, 47, 90,158, 28, 23, 12, 86, 18, 78, 91,197,179,159,187,196,214,192,210, 46, 11, 78, 78, -150, 28, 30,206,136,146, 8,181, 44, 73, 85,195,239,254,141, 23, 24,174,142,184,182,150,243, 47, 62, 60, 37,142, 45, 70,105,210, - 76,246,146,202,121, 90, 2,137,149,202,183,127,206, 9,222,227,219,150, 40,137, 9, 90, 17, 17,225,131,195,230, 18,142,240,236, - 70,198, 87, 95,186,202,206,234,132,201,100,133, 47,127,237, 87,249,201,219, 63,103,122,239, 99,242, 43, 55, 81, 73, 66, 28, 37, - 44,202,130,193, 40,102, 56, 76,121,251,237,159,113,190, 40,120,252,240,136,101, 53, 71,148,248, 17,203,162, 69, 25, 72, 7, 57, -109,231,112,109,135,107, 36,233,200,198,226,206, 80, 14,156, 2,109, 59,234,214,179, 44, 43,180, 49,140, 39, 35,218, 74, 24,202, - 10, 72, 18, 75, 89, 55,120, 58, 54, 54,183,208, 74,243, 91, 47,174, 48,157, 85, 96, 12,235,169, 38, 89, 31, 17,180,102, 81,181, -228,145,230,232,193, 25,105, 30,115,124, 94, 49,200, 35,102, 11,199,102,110,105,188,102,119,103,133,195,147, 25,251,139,146,243, - 69,139,150,251, 22,148,198, 1, 81,108,137,148, 2, 21,240,173,231,235, 95,252, 2, 33, 40, 92,211, 49,159,205, 49,157, 23,229, -255,206, 30,235,235,171, 12,134, 99,172,141,168,139,165, 28,238, 61,212,199, 5,121,169, 67, 8,210, 97, 42, 89, 47,249, 32,107, -179, 16, 46, 14, 33,245,244,255,171,154, 22, 13, 60,120,248,136,101, 33, 9, 92,129, 30, 53, 27,228,125, 41,138, 37,222, 7,214, - 86, 87,136,140, 70,197, 25, 73,150,210,117, 29, 23,162, 87,173, 20, 24, 77, 85,247,160, 11, 35,151, 87,148,244,201, 84,173,100, - 75, 59, 47,155, 79, 27,201,103, 45, 34, 59, 89,163, 41, 37,170,125,109, 52, 42,120,186, 86, 58,186,170, 22, 61, 76, 54,200,165, -145,232,223, 83,231,100,247, 24, 41, 17,196, 41, 37,225, 64,117,221, 48, 24, 12,145,192, 15,104,155,150,225,112, 72, 20, 75,220, -110, 85, 85,196,113, 76,135,167,170, 43,185,224, 34, 25,255, 11,157, 50, 32,209,198, 98,175,147,110,205,226,157,199, 70, 34,190, -189, 80,216,151,203, 25,193, 21,248, 80,211,117, 11,186,182,162,243, 50,218, 37, 56,180, 85,132,208, 80, 86,103, 4, 21,200,243, - 21, 38, 43, 43, 98, 15, 14,129, 72, 9, 65,113, 52, 30, 96,180,102, 52, 90,225,210,222, 14,147,149, 21,156,215,212, 85,129,214, -210, 9, 2,228,121,196,100, 60, 98, 60, 26, 18, 39, 9,121, 98,201,211,148,201,100,157,241,120,181,159,136, 10,117,206, 88, 67, -154,198, 24,101, 25,230, 67,246, 46,237,161,144,168,232, 97,150, 97,140, 38, 77, 34,172, 86,216,216,146, 70, 49, 77, 83, 81, 87, - 75, 22,103,231,116,109,137,247,237, 83, 14,133, 88,255,250,231,180,147,142, 51, 27,164,228,105,206,120, 60, 38,138, 37, 8,233, -130, 56,216,182, 13, 85,219, 81,215, 37,235,235, 59,189,134,166, 4,239,101, 79,236,229,179,174, 26,241,121,183, 77, 39, 66,103, - 68, 92,109,181, 37,120, 17,150, 53,173, 16, 29, 67, 63,233,109,234, 6,109,196,198,216,180,109,223,209,182,196, 70,114,206,219, -174,165,109,106,170,170, 34,244,235, 35,163, 21,160, 9,174,195, 1,174,117,232,224,233, 60,136,125,205,163,149,228,106,152,190, -184, 72,227,244,105,129,220,185, 11,253, 74,143, 41, 15,200, 59, 66,192,117,226, 67,239, 90, 65, 77, 7, 60,244,197,176,136,214, - 36,152, 70,105,113, 7,249,224,161,127, 87, 59,231, 8,136, 53,184,245,194, 38, 33,200, 4,212,185,126, 61,164,181,168,250,147, -152, 40, 73, 80,200,215, 14,158,126,194,165, 80, 94,145, 38,130,144,150,226, 36, 35,141, 4,159,222,180,173, 16,229, 8, 34,104, - 51, 74,227,157, 99,178, 50, 33,142,172, 84, 9, 94, 72, 80,129, 64,185, 44,105,234, 37,101, 89,209, 58,193, 67,102, 89,250,180, -234, 73, 51,177,117, 89, 43, 18,255,182,105,105,157, 99,185, 44,169,170, 26,215,255, 64, 89, 34,120, 86,107, 69,252,226, 59,129, -145, 4, 2,177,181,180,222, 61, 77, 76, 19,148,160, 40,190,155,126,180,223,180, 98, 97,176, 81, 68,181, 20,175,124, 62, 28,160, -140, 34,138,108,239, 65,116,164,121, 38,202,199,182,198,107,200,210,193,211,159, 69, 48,172,138, 40,145,156,220,170,174,200,146, -132, 98,177,120, 42,196, 83, 72, 66, 91,214,119, 25, 18, 30, 16, 97,181,230, 34,196,190,170, 42,130, 82,100,105,130, 82,200,101, - 60,123,204,238,213,203, 60,249,240,109,214, 38, 57, 54,139, 56, 62, 47,113, 93, 96,119,117,194,221,143, 62, 65,197, 9, 47,124, -254, 37, 94,255,210,171,252,131,127,240,239,241,159,254,195,127,200, 55,191,241, 75,252,159,191,247, 63,241,226,222,136,111,255, -218, 95, 99,111,111,151,122, 81, 65, 44,158,251,208,212,164, 89,130,177,154, 56,177, 12,135, 57,139,226,156,227,131, 35, 62,250, -240, 83,233,190, 42,207,119,238, 76,120,245,206, 85, 94,127,229, 26,179,121,193,209,121,195,202, 40,227,180,168, 72,108, 68, 82, -213,220, 76, 3,239, 62, 89,112,184,104,121,233,133, 75, 92,218,154,240, 95,255,179,159,225, 48,172,143, 19,238,158, 44,153,151, -162, 14, 55,214,160,189,198,171,142,182,115, 98, 55,210,134,224,156,116,238,120,178, 36, 34, 40,241,242, 59,239, 88,223,222,230, -141, 47,126,129, 27,147, 17,207,239, 14,113, 54,227,248,224,156,175,252,218, 55,184,127,120,198,221,183,223, 99,237,242, 13, 46, -223,185, 67, 85, 58, 54,183, 55,216, 63, 56,228, 15,127,239,255,224,157,143, 63, 36,201, 44, 85,221,225, 48, 24,175, 88,150,142, -209,234, 4, 29, 69,212,174, 35, 77, 82,134,195, 17,101, 19,152, 47, 43,188, 11, 44,150, 37, 73,154,225, 20,212, 69, 67, 89,203, - 11,163, 34, 73,101,170,138, 5, 73,150,145,229, 3,206,166,103,104, 52,137,141,152, 21, 21,217, 32,101, 49,157,114,123, 59,229, - 87, 94,188,204,163,211, 18, 90,207,218,234,144,120,144,112,242,248,140,198,117, 44,203,150, 98, 86,114,214, 8,123,122,117, 24, - 51,202, 99, 58, 5,233,100,192,201,253, 99,238,159,148,156,150, 93,159,189,167, 80,202,224,189, 28, 12,198, 40,178, 56, 35, 79, - 35,118,198, 17,227,200,176,190,182,198,104, 56,226,193,195,123,232, 56,230,240,240, 9,237,178,164,243,134,217,124,129,114,191, -224, 38,128, 8, 72, 85, 8, 4,164, 27,245,157, 19, 14,130,115,148, 85, 67, 80,178,202,146, 7,146,190, 24,237, 40,235,150,179, -217, 57, 98, 51, 18,110,180,214, 50, 82, 85, 74,163,131,167,170, 26,150,203,130,243,197, 66, 14, 50,215,145,196, 9,117,211,200, -106,174,173,251, 98, 57,193,185,150,160, 36, 80,167,174,170, 94,100, 27, 75,222,130,150,160, 39,201,130,246, 56, 39, 23, 80, 18, - 37, 2,122,106, 58, 81, 56, 43, 73, 33, 52,198, 66,240, 4,175,250, 29, 97,194,124, 62,151,213,132, 11, 36, 3,113,217, 44,138, - 5,117,211,112, 1, 28, 49,218,244,204,135,166,255,185, 58,140,149,176,160,225, 96,128, 3,178, 84, 0, 31, 46,116, 79,139, 34, -217, 9,203,244,206, 94,172, 8, 0,173, 20,101, 83,139, 51,192, 57, 46, 82, 19,147, 36,161, 42, 75,218, 86,138,194, 56, 21,202, -153, 53, 98,239,108,154,166, 23,120,117,100,137, 37,132,130,186, 94, 82,213, 37,171,147, 9, 93, 55,103, 56,146,119,165,170, 5, -103,171, 77,204,241,225, 1, 59,151,175, 17,188, 76, 84, 92,159,167, 93,148, 11,154,178, 98,177,152, 50, 28, 78,200, 7, 35,124, - 48,184,224, 89, 93, 29, 11,119, 61, 79, 25,228, 25, 86, 55,172,173, 76, 64, 71, 88, 3,163,225,144, 64,203,100, 48, 96,190,156, - 81, 87, 21,231,231,115,166,167, 39,194,189, 40, 23, 44,230, 37, 93,219,161,173,150, 78, 22, 77, 8,210,237,203,165,167,228, 44, - 11,158,206, 75,134,120, 85, 11,249,113,152,203,218,117, 58,155, 19, 90,207,133,181,217,251, 64, 93,214,108,237, 92,193,104,197, -124,126, 70,154,103,104, 52, 77,235,122, 65,101,159, 77,222,182,196, 54, 65,107,225,245, 71,241, 47, 92, 82,229,178,194,185, 14, -208, 79,191, 23, 16,149,122,146,245,185,234,189,240,217,119, 29, 74, 5,134,195, 49, 58,182, 61,173, 46,160, 85,144, 34,197,137, -181, 76, 71,146,164,168,228,138,148, 14, 55, 4,148,150,247,178,237, 58, 92,224,169, 29, 27, 47,100, 69,173, 13, 81, 44, 48,157, - 72, 91, 80,253,148, 76,133,167,151, 50, 2,124, 68, 91,225,121, 92,112, 33,228,194,150,175, 79, 80,125,161, 21,203, 59,220,137, - 40, 80, 71, 6,163,101,199,143,247, 79,139, 26, 21,130, 88,190,251, 73,169,141,197,213,101,173,208,246, 2,226, 96,112,222, 99, -148,162,108, 58,140,146,189,189, 25,172,174,126, 79,198,118,226,227,142,173, 37, 73,133, 77, 92, 46,151,228,195,156,197,108, 78, - 85, 85,180,174, 21,177, 15, 64, 16,161, 74,240, 80,214,130,128,117,222,209,186, 86,130, 89,186, 78, 46, 95,223, 17, 89, 25, 17, - 27,163,241, 78, 14,218,166, 23,222,200,174, 79,198, 33, 77, 35,118,145,184,191,240, 35, 35, 30,189,164, 23, 81, 68, 81,244,116, - 90,112,161,214, 95, 86, 21,160,168, 27,177,147, 57,215,145,165, 9,117,221, 16,240, 20, 69, 65,211,200,161, 24,153,136, 69, 89, -210,182, 18,223, 87, 53, 53,174,199, 77,118,157, 39,142, 99, 34, 99, 88,204,231,208, 63, 76,113,146, 80, 46, 11,108, 28, 81, 45, - 27,156, 2,180,161, 92, 10,249, 8, 64,161, 73,210,132,106,185,100,195, 44, 24, 12, 86,120,249,185, 91,252,191,255,223, 91,108, -237, 93, 98, 86, 26, 46, 93,185,202,100,117,147, 79, 62,248,144, 47,125,229,117,158,187,113,137, 87,158,191,205, 11, 47, 61,203, -217,201, 19,158,124,248, 54,255,248,191,253,199,156, 62,126,200,139,183,183,201, 98,195,147, 79, 63, 98,165,171,169,155,146, 78, - 43,140, 82,220,125,188,207,225,254, 49, 71,211, 51,246, 31,159,112,114, 60, 69, 69, 17,107, 27,235,236, 93,190,194,112,180,134, -159, 31,241,183,191,243,121,202,162,230,234,206,132,227,186,229,189,253, 57,167,251, 51, 74,215,145, 26,233,162,242, 60,230,133, -231,175,112, 84, 53,104,107,120,237,153, 45,254,247, 63,255,128, 66, 25,190,120,103,135, 63,125,231, 49, 27,155, 19,217,223,160, -176,253,218,163,170,106, 6,121, 38, 15,186,181,156,159, 23, 68,177, 68, 53, 62,123,125,139,111,190,241, 26,215,118,246, 40,102, - 5,143, 31,124, 70,131,230,201,147, 83,190,250,237, 95,102,188,181,199,244,241, 41,175,126,233, 75,172, 93,189,142, 66,224, 12, - 77, 83,240,224,179, 79,121,251,253, 15,185,122,105,194,199,247, 78, 65,197, 12,211,132,208,235, 34,226, 56, 33,205, 6,156,158, - 45,152,140,198, 52,117,197,104, 56,100, 56,204,177, 70, 51,200, 19,226, 52, 19,241,162,213,108,238,174, 51, 28,142,161, 3, 21, - 41, 58, 31,152, 78,207,104,170, 37,171,147, 85,134,163, 1, 27, 27, 27,156,158, 76,137,146,152,196, 87,252,238,119,158,231,206, -213, 85,126,250,201, 33, 31, 60,156, 81,148, 45,179,121,197,229,157, 49,103,179,138,213,173, 21,138,147, 57,227,201, 0,173, 20, -179,170,102,103,107,140, 77, 99,158,191,190,193,159,255,236, 62,159,158, 20,180, 46,224, 84,127, 81,224, 9,166, 31,149,123,153, - 64, 93,219, 91,103,148, 41,158, 28,159,243,228,224, 49,199, 79, 30,178,183,181,197,149,221, 77,182, 86, 86,121,244,228,132,170, -147,139,105,111,115,157,233,249, 2, 99, 52, 77,215,209, 52,141, 92,222, 65,246,140, 33,132,190,107,145,139, 92,246,205, 10,124, -223, 93, 4, 65, 46,215, 85,197,108,190, 32,142, 18,148,238, 87, 24, 86, 32, 28, 90, 43, 60,130,228,108,187,142,166,107,169,138, - 57,231,103,103, 76, 79, 78,152, 77,207,105,155, 26, 21, 2,101, 93,147,231, 41,117, 45,209,143,105,154, 18, 37,137,116,204, 74, -172,114, 1,208, 65,225,251,195,222,216,168,199, 49, 87,212,117,135, 82, 26,250,110,166,110, 26, 57,224,180, 34,201, 82,138,229, - 82,120,232, 54, 6, 37,157,138, 54, 17,117, 37,147,132,193,104,132, 10, 34, 96,106,125,139,210, 86, 70,248,136,160,212, 5,143, -198,147,102, 25, 16,232,234, 14,165,165, 83,146,119, 85,108,173, 77, 43,239,175,137,101,212,125,129,187,110,234, 26,250,145,166, -119, 78,206,150,126,149, 23,197, 61, 69,175,110,136, 34, 5, 70,126,230,160,132, 82,233,156,116,139,222, 95, 64, 90, 22, 44,151, -103, 64, 71, 20, 69,120,223, 34, 59,110, 71,215, 46,137,162,192,114,113,204, 96, 56, 98,178,178,202,198,218, 6,217, 32, 33,182, - 49, 77,187, 4, 29,136, 98,203,233,249, 9,109, 43, 44,139,217,226,140,114, 57,103, 81, 44, 88, 20, 51,208,158, 54,120,180,238, -184,126,253, 22, 79, 14,159,176, 44, 10, 76, 20,115,114,116, 74, 81,212,116,109,131,234,207,207, 36,146,105,166, 50, 6,193,210, - 6,130, 19,240,215,250,234, 42, 43,147,137,188,147, 85,137, 86, 10,101,100, 20,223,214, 53,117, 43, 98,231,193,112,136,119, 34, - 40,243, 33, 16, 16, 1,109,221, 53, 84,197,130, 52, 29,179,186,182, 3,202, 81,150, 5,170, 23,136,213,189,219, 32, 77, 83,148, - 82, 84,203, 5,157,247,180,174, 69, 41, 71,189,108, 81, 70, 38, 22,198, 42, 6,195, 1, 93, 85,227,188, 39,142, 5, 21,171,251, - 21, 84, 26, 11,138, 56,138, 37, 60,133, 16,122,203,155,135,208,139, 42, 91, 33,239, 5,231,209,200, 36, 85, 44,202,125,176,138, -138,176, 90,196,152, 4, 79,211,136, 75, 35, 31,228, 36, 73, 66,232,159,153, 40, 53,104,228,114, 6,225, 60,104, 45,118, 55,240, - 82, 16,225,241,157,132,193, 0,178,162,232,223,123,109, 52, 40,112,174,215,150,105,133, 87,208, 53,237,211,130, 61,168,128,239, -196,138,136, 17,155,184, 82, 2, 63,146, 36, 83,135,214,146,191,226,131,196,177, 38,113, 76,219,120,172,209, 4, 47,154, 53,179, -186,185,249, 61, 2, 76, 70, 57,121, 30,145, 36, 18,145,186, 40, 10, 34,219, 71,189,105,141,235, 58,134, 3, 1,174, 68,253, 37, -219, 54, 45,141, 19,139, 88, 64, 20,226,214, 70, 79,213,225, 18, 74, 0,202,106,162, 52,150,253,102,232, 80,198,162,141,140,112, -149,214,168, 40,166, 40,151, 64,192,198, 49,101, 41,191,119, 20, 89,108, 95,117,187,254,191, 93, 43,106,211, 40,137,193,183,132, -122, 78,221, 74, 38,116,113, 62,165, 46, 75,206,206, 78, 89,206, 11, 34, 3,109,117, 46,138, 85,165, 9,125,214,177, 15,142,174, -169,101,244,130, 88,124, 20, 98, 35, 48,214, 8, 74,176,169,169, 90,137, 3,149,232,190, 64, 28, 25, 34,163,209, 74, 99, 98,219, - 19,191, 28,195,225, 16, 23, 60, 67,189,164,169, 29, 47,127,237,117,222,253,225, 15, 41,170,115,110, 61,119,155,221,205, 21, 60, -154, 87,190,240, 69,154,166,229, 59,191,254, 77, 30, 60, 62,224,222,135, 31,112,101,119,147,247,255,248, 15,217, 75, 3,223,255, -201,135,124,249,229,231, 73, 71, 67,154, 38,166, 73, 86, 89, 26,203,201,209, 9,155,107, 99, 9, 51, 25, 79, 72, 71, 67,174, 93, -187,202,205,155,215,153,172, 14,184,114,249, 18,235,171, 99, 86, 87, 87, 24,140, 70,188,255,224,148,239, 62, 19,179, 58, 30, 50, -211,154,103,175,108,242,242,157, 29, 62, 58, 89,210, 46,107, 12,220,182, 41, 0, 0, 32, 0, 73, 68, 65, 84,178,214,115, 80,180, - 48,200,217,203, 21, 87,119,215, 25,175, 12,169,170,134,255,245,207, 31,242,232,112,201,239,254,246, 23,248,253,191,252,140, 72, -137, 50,212,196,150,174,113, 68,105, 66,108, 12,231,197,130, 40,178, 52,157,163,168, 91,110, 93, 90,231,155,223,120,141,103,118, -119,228, 26, 27,142,216,189,118, 29,109, 60,203,105,195,171,111,188,140, 51, 35, 30,220, 59,229,214,157,103, 49,195,156, 75,123, -187,104, 95, 65,181,224,173,119, 62,226,175,254,228,143, 89, 54, 45,179,233,146,203,207, 92,101,144,164, 84,213,156,170,241,100, -163, 1,173, 51,140,135, 67, 44,226,137,206,242, 1,222,137,205, 48,205,100,244, 62,200, 19,150,101, 69, 28, 69,184, 70,246,120, - 77,215,177, 50, 24,178,182,182,142, 50,150, 98,185,164, 44,101, 60, 56, 91, 44, 48, 74, 81,181,158,235,171,150,255,234,119, 94, -163, 37,224, 27,199,131, 39, 83,182, 39, 25,211,166,197, 85, 29, 15,206, 22, 92,222,158,176,119,117,131,155,151, 87, 56, 58,152, -179, 61,136, 57,157, 86,140, 38, 25,155,147, 33,111,190,183,207,123,251, 51,210, 72, 64, 76,157, 20,242,172,165, 49, 78,105, 18, - 43,186,144,213,241,132, 71,251,103, 76,198, 25,203,162, 22,113, 81,170, 57, 61, 61,166, 41, 75,178,209, 16, 29,103,252,230, 55, -191,206,175,127,237, 43,252,244,157,247,144,156,106,193, 97,138,125, 76,192, 22,162,169, 48, 98,239,106, 59, 73, 89,236, 90, 41, - 55,149,128, 73,188, 19, 80, 83, 81, 44,209, 70,172,127, 23,214,183,139,169, 89, 28, 11, 12,196, 70, 34,178,130, 94, 12,213, 79, - 99,187,182,161,169,106,138,217,148,211,195, 99,186,182, 5, 47,147, 0,107, 98, 90, 87,201, 42,204, 59,154,166,166,237, 92, 47, - 2, 4, 19, 5,249,122, 81,132,181,138, 54,116,228, 73, 76,116,177, 10,195, 83,183, 29,117,219, 48, 26, 14,168,202, 2, 99,148, -192,150, 90,153, 2, 88, 19, 99,251, 51,193,249,128,228, 59, 40,140,130, 44,149,184, 98,165, 84,127,192,121,146, 56,145,177,125, - 44,201,141,145,150,159, 81, 43,131, 10, 82,200, 24,107, 9,161,161,237,106,154, 70, 50, 7,154,166,101,144, 75,161,104,181,238, - 63,155,132,170,146,136,101,133,116,248,109,227,168,170,178,159, 32,202,247,154, 38, 98,229,173,234, 90, 20,248, 61,149, 44,137, - 34, 58,215,176, 92, 46, 5,202, 83, 85, 68,145, 1,213,224,155, 26, 99, 91,188, 91,160,104, 88, 20,167, 24, 85,145,167, 26, 27, -193,217,244, 16, 21, 26, 84,168, 81,186,195,106,135,214, 14,107, 29,105,140,216,166, 84, 75,240, 82,212, 93,190,116,157,143, 63, -249, 8,107, 45,131,209, 8,241, 86, 43, 8, 30,130, 67,153, 95,172, 93,180,130,224,133,199, 46,157,101, 68, 62,200, 25,142, 70, -212, 77, 43,103,162,145, 0, 31,165,149,248,173,107,135,177,134,149,201,132,193, 64,226, 82,181,150, 47,143, 14, 20, 11, 89,119, - 6,163,216, 92,191, 66, 20,107,142, 79,143,168, 42, 73,167, 84,113, 76,215,180,148,101,137, 15,224,125, 32, 78, 6, 40,167,201, - 6,162,129, 74,211, 4,165, 13,137,149, 20,208,193, 96, 32, 5, 69,219,144, 38, 66,233,172, 59, 79,211,137,210,125, 89, 11,223, -189,118,221, 83,154,165,168,237,197, 46,230,157,239, 63, 7,215,107, 21,132,163, 47, 58, 45,233,166,181,149, 21,114, 63,184,193, -251, 30,156,166, 69, 55,214, 5, 72,226, 72,114, 70,180, 17,123,154, 53, 82,212, 24, 67,112, 13,198, 42,160,159, 92, 56, 73,160, -172,170,134,174,105,101, 63, 31,196,109,165, 21,160,100,178,108,148,172,200, 34, 43, 26,138,166,170, 9,206, 11, 60, 45,137,112, -109, 35,107, 3,231, 80, 8, 73,209, 0, 30, 8, 78,120, 50,226,138, 17, 71,128,185,116,245,218,247, 18,109,192, 10,142,174, 88, -204,101,183,165, 36,204,193,218,158, 64, 21,197, 40, 20,117, 93,179, 44, 75,148, 82,189,141, 76,150,245,198,200, 62,222,181,141, -120,255, 8,146, 85, 27, 75, 8,138, 40, 6,229, 15, 48, 4,240,174,235, 69, 52, 10, 21, 4,118,144,166, 82,137,185, 86,172, 35, -206, 59,178, 60, 39, 77, 18,118, 54,198, 92, 89,143, 81,237, 57,227,212, 49, 61,122, 72,164, 78,249,194,179,207,241,155,223,120, -131,175,254,210,243,188,241,149,215,184,117,237, 18,207,222,190,201,157, 91,219,236,110,174,241, 43,111,188,206, 87,190,240, 60, - 59, 91, 19, 12, 29,153,214,172, 78, 38,220,190,113,137,157,141, 1,155, 27, 35, 82,211, 17,154, 37,147, 36,144, 42, 69, 22,199, -204,151, 37,174,117, 92,228,124,163,117,191, 15,146, 73, 4,206,137, 62,192, 70, 40,173, 73,195,146,205,220,242,133, 47,127,145, -233,233,140,197,221,143,216,216,217,228,236,228, 4, 48,188,242,234, 43,172,164, 17,151,183,215,121,244,224, 46,215,111,222,192, -215,142,119,222,252, 43,124, 85,242,251, 63,254,132,247, 30,156,242,165, 87,110,114,248,240, 33, 77, 61,231,189,187,119,153,158, -207, 56, 95, 46,216,220,217, 34,143, 53,181,107,217, 88, 29,177, 40, 22,156,157, 30, 81,204,166,204, 23,115, 78, 78, 78,101,108, -122,122,194, 39,251,103,116,139, 5,223,249,229,231,200, 93,199,124,190,228,199, 63,189,139, 43, 43, 38,177,229, 60, 55, 92,219, -156,208,181,142,135, 39, 37, 79, 30, 28,114,120, 60,101, 77,181,188,127,120,206,173,157, 1,191,245,245,219,252,241,207,159,112, - 58, 43,209,180,196,113, 66, 23,160,152, 23,162, 76, 13, 16,169,142, 33,138, 97,164, 56, 63, 47,249, 59,191,249, 29, 14, 78, 78, - 24,142,214, 25,175,109,210, 46,230,184,229,130,235, 55,175, 51,171, 20,155, 91, 55,249,202, 27,111,112,180, 56,161,169, 75,254, -224,247,254, 55,126,252,195, 55,249,211, 55,127,204,178,108, 57, 58, 58,162,174, 90,130,214,148,101, 69,150,106,158, 28, 47, 40, - 43,197,249,188, 98,109,117,131,191,245,221, 95, 35,205, 82,214, 55, 55,121,225,206, 45,142,143,142, 57,159, 79, 9, 65, 2,126, -130,131, 52,205, 8, 33, 96,141, 97, 56,204, 80,198, 18,148, 32, 43,173,210,172,172,172, 98,227,136,101,185,164,173, 75,170,174, - 99,144, 15,249,198,179,107, 84,139, 5,159,222, 59,227,222,195, 83,212, 96,128, 73, 35, 22,243, 18, 22, 53,227,224,152,157, 87, - 44,171,150, 60, 50,204,170, 6, 19,132,131, 62, 45, 61,123, 59, 99, 62,254,236,136, 79, 14,102,120, 45, 47,176, 67,225, 58,197, - 51,155, 3,206,106,217, 29, 43,163,153,228, 41,155, 43, 3, 30, 31, 77,137,140,161,108, 28,167, 39, 51,158, 28,157,114,124,178, -192, 97,169,186,150, 59,215,175,241,165,207,191,200,229,221,109,222,122,255, 35,166,179, 25, 23,121,207,214, 70,116, 78,186, 98, - 64, 44, 46,253,190,216, 59,255,180,115,183, 90, 19, 20, 56, 39,170,236, 11, 30,133, 15, 1,133,140,250, 36,215, 89,192, 75, 70, - 27, 46, 2, 85,158,126,241, 32,163,105, 57,139, 68,141,221,148,194, 3, 40,231, 51,138,249, 28,215, 9, 12,195,251,126,199,143, -216,171,242, 65, 66,215,202,110, 81, 5,112,125,145,237, 93, 0, 28,101, 35,246, 88, 99, 44, 81,100,104,234,154, 56,146,236,243, -182,109,201, 7, 3,170,166,161,109,101,181,224, 26, 97, 55, 88,163, 48, 74,124,231, 77, 91, 11,200,166,215, 6, 25,101,229, 32, -118,162, 7,104,154, 6,141, 20, 55,157,115,148,117, 69, 18,247,188,255, 70,190,239,225,112, 72, 85,213,132,254, 60, 2,177,235, -213,149, 36,213,225, 69,137,144,101, 25, 24,232, 92,192, 70, 17, 89,154,210,180,142, 36,210,148,139,146, 52, 23, 1, 86, 89, 85, - 88, 45, 81,211, 4, 25,189, 86, 85, 69, 64, 78,245,182, 21,218,164,182, 17,139, 98, 33, 16,146,166, 98, 89,136,232,184,235, 36, -138, 51,138, 44,197,114, 65,231,164, 99,203,178, 84,120, 31,181,192, 87,186,166,161,174, 27, 97, 25,116, 53,217, 96,200,181, 43, -215,136,211,132,241,104,192,120, 52,194,104, 81,246, 71, 54,162,117,242,135, 26,130,251,197,136, 88,105, 84,191,147, 61, 95, 44, -229,242, 51,146,233,173,180,150, 75,221,104,240,224,113,180,117, 67,148,196, 68,113,202,202,202,132,241,202, 10, 70, 25,177, 20, -187, 86, 70,195, 93, 71, 93, 87,140,198,107,128, 99, 81, 76, 73,210, 12,171, 46,196,171,153, 20, 30,131, 1,214, 24,188,212, 21, -212,149, 32,197,147, 68,148,238,131, 44, 39, 50, 18, 90,226,156,132, 80, 21, 85, 45,130, 62, 45, 43, 23, 89,225, 40, 52, 50,125, -210, 90, 70,247,109, 43,211, 22,173, 52,113, 36,197,175,234,255,163,141,192,205, 46, 66,194,180, 66,132,216, 70,139, 43,161, 19, -207,186,232,165,100, 69, 21,188, 88,169, 93,219,208, 5,193, 94,107, 45, 98,185, 72,235,167, 34, 79, 41,190,101,106,230,125, 32, -205,250,156,248,254, 47, 31,124,191,186,104,159, 90, 38,101,114, 36,107,161,214, 11, 34, 88, 7, 5, 42,244,197, 57, 40, 21, 16, - 5,126,175,169,233,133,149,145,213,180,157,136,156,204,229,235,215,191,103, 19,201,242, 22, 59,150,160, 8,179,129,248, 3,171, -186,193, 26,241,140, 86,125,200,194,197, 14, 66,178,207,101,249, 79, 8,196,218, 18,180,116,178,203,101,249,244, 7, 51, 70, 58, - 1,140,236, 23, 35, 35, 30, 70, 27, 75,199, 78, 8, 16,160,243, 29,190,115,172, 76,198,228,131, 20,154,146,149,129, 35, 90, 76, -153, 31, 62,228,227,119, 63,193,119, 21,239,126,114,204,241, 89,195,215,126,249,235,108,239,236, 17, 15, 19, 38,171,107, 16,106, -118,119,198, 76, 70, 99,238, 60,123,147,189, 75, 59,124,242,222,187, 60, 57, 61,230,246, 11, 47,242,220,243,207,113,235,230, 21, -190,253,205,175,178, 49, 30,242,237,191,246,117,252,114,198,134,246,252,225, 31,253, 8,186,130,117, 83,146,151,167, 76,212,130, -216,213, 24,229,233, 90, 71,240, 29, 69, 85,179, 44,150, 84,117, 77,217,139,247,234,186, 38,138, 12,227,200,177,181,125, 73, 82, -215,134, 3,190,255,175,254,138,224, 91,214, 7, 35, 94,251,242,171,124,240,163, 31,113,188,255,128,163,227, 39,196, 70, 83, 21, - 37,127,246,253,239,163,109,224,199,239, 61,226,221,199, 83, 70, 58,112,247,209, 35,222,252,100,202, 59,247, 78, 88,212, 2, 58, - 49,113,196,201,241,148, 79, 30, 61,230,201,147,125, 14,206, 78, 56, 62, 58,231,120,118, 78, 81,118, 24, 29, 49,156,140,177, 38, -162, 89, 86, 92,127,230, 6, 7,115,199,111,127,126, 76, 50, 30,241,103,127,245, 46,239,125,240, 4,223, 5,102, 62,176,150,199, -188,187,191, 96,255,116, 78, 92,201,158, 88,215, 53,126, 36,149,247, 43,235, 17,235,235,171,252,201,123,251, 60, 56,152,211,212, - 45,195,204,242, 95,254,163,191,203,206,213,203,188,241,194,179,188,112,231, 38,137, 59,229,218,218, 26,119,238,220,198,163,169, -171, 6,167, 12,187, 55,159,225,232,241, 1,239,255,252, 99,158,127,245,203, 4, 50, 86,247, 46, 51, 24, 90, 30,220,255,132,229, -249, 25,111,253,240,109, 62,249,244, 83,118,247,182,120,241,115,207,243,248,225,125, 82, 11,235,107, 99,214,214,183,120,240,248, -136, 96, 50,156, 75,120,253,151, 94,227,149,207,191,192,215,191,252, 58,239,189,245, 41, 94,181,236,172,175,209, 52, 45,135,143, -247,169,154, 14,213, 58, 84,212,143, 97,109, 68,231, 21,117, 41,232,227, 44, 73, 89, 20, 11,242, 81,138,178, 50,122, 78,227,148, -225,104,140,177, 17,227,113,206,188,116,140,148,227,223,252,218, 77,230, 39,103, 92, 75, 2, 3, 11, 15,155,192,218,250,128,182, -238, 56, 84,154,177, 85, 68,206,241,112,127,206,185,135,224, 2,161,237, 24, 13, 82,214,214,135,232,174,225,222,147, 41,167,149, -235, 15, 14,177,185,108,142, 51,206,155, 95,236,225,106, 87,209,225, 80, 38,166,108, 28,105,154,144,245, 7,240,245,171,215,248, -209,123, 31,227, 9,252,198, 55,191,193,218,104,204,112,144,243,198,151,190,192,225,201, 9,135, 39,199,114, 0, 18,168,235,154, -186,169,233,218,142, 44,203, 40,138, 37,113, 36,238, 14,148, 2, 36, 88, 71, 33,126,245,166, 31,159,138, 26, 90,190, 71,175,130, -184, 21, 90, 17,128, 74,222,184,248,221, 77,127, 64, 6, 2, 73,212,195,162,148,238,247,191, 14,117,209,225, 5, 79,181, 44, 41, - 23, 5, 40, 73,231, 75,211, 76, 4, 64,198, 18,247,221,174,141,162,126, 12, 45,235, 57,185, 44, 37, 35,125, 48, 24,160,144, 21, -128, 54, 90, 14,126, 99,168,235, 26, 99, 45, 89,154,138, 38, 38, 4,137,134,109, 68, 33,156,101, 49, 93, 43,184, 97, 31, 36,127, - 26,228,176,206,210,132,197, 66,210,227,154,182,145,177,109,150,209, 52,162, 15,201,115,113,226,164, 73,138,243, 29, 81,156,160, -149, 56, 96,140,178, 44,171, 26,109,100, 47, 31, 37, 17,105, 44,197, 78, 83, 75,248, 7, 86, 70, 49, 94,123,177, 11, 40, 40,155, - 70,180, 40,145, 48, 45,234,166,195, 35,107,134,225,104,212,239,143, 19,226, 52, 97,185, 40, 69, 35,160, 4,205, 93,213,226, 10, - 72, 99, 97,111,104, 45, 97, 69, 32,168,216, 44,205,105,186,134,216,104, 41,238,226, 8, 97,131, 71,114, 30,107,152,207,166,236, -236, 92, 37, 75, 34, 20,154,179,233, 20,148, 98, 56, 26,139,235,192, 73, 23,170, 20,160,100, 52,156, 68, 49,222,137,104, 56, 50, - 22,215,201,152, 24,173, 9,161, 67, 41, 35,173,184,146,221,112,231, 28, 77, 37,159,103,189,172, 80, 38,102,109,101, 13, 99,122, -155, 88, 87,245,163,236, 14,223, 5,182,182,118, 56,159, 30,225, 93,135, 64,104, 18,172, 22, 96,209,114,185,196, 43,112, 77,131, - 22,157,160,104,157, 26, 17, 55,251,206, 81,213,194,251,183, 70,146,204, 12, 10,163, 69,187, 5, 90,196,118,218,115, 97, 29, 83, - 70, 61,125,158, 49,170, 39,222,245,218,137, 0, 23, 12,120, 29, 12, 4,228,125,242, 34,160, 3,104,186, 86,222, 95, 45,158,114, - 99,165,121,141, 34,139,233, 63, 35, 99,196, 63,158,167, 57,206,117,200,154, 72, 8,172, 90,107, 52,194, 83, 73, 18, 1,205, 16, -100, 50, 45,148,197,190, 56,142,164, 59, 15, 94, 70,240, 54,178,196, 81,140,210, 32, 60,150,240,116, 74, 34,223,168, 20, 10, 1, - 17,215, 61,253,154,253,244, 65, 43, 48, 91,123,187,223,107,107,241, 69,227, 3, 93,159, 48, 19, 39, 49,139, 98, 9,206, 97,172, - 36,212, 60, 29,189, 71,130, 94,189,248,223, 26,225,255, 10, 68,192,138,210, 92, 5, 81,137,123,135, 81,146,194, 38,214,139,136, -196, 10,126,207, 57, 71, 87,119,248, 32, 29,239, 48,139, 25,196,150,237,220,161,230, 15, 73,172,162,153,213, 24, 2,127,249,222, - 35, 90, 61,194, 14,134,124,235,215,190,204,183,191,245,101,174,238,109,178,179,181,206,253, 15, 63,129,229,140,229,233,148,135, -159, 29, 80,206, 11,172,246,188,245,179,247,112, 13, 60,115,249, 10,143, 62,189, 11,193,115,247,227,123,132, 96,121,255,131,247, -248,211, 63,248,127, 48,157,227,100, 90,240,254,221,135,156, 46, 28, 15, 78,107,238, 77, 91, 78, 11,199,238,181, 17,169, 63,103, -123,160, 49,245, 9,169,246,164,186,197, 24, 65,117, 22,203,134,200, 6, 82,230,188,240,194,203, 40, 87,115,126, 94, 17,165, 3, - 14,239,125,204,151,191,252, 18,183,158,191,205,242,252,132,174, 94, 98,179,140,199, 39, 11,254,217, 63,255,115,166,231,251,196, - 86,113,122,240,132,233,121, 77,225, 96,125,103,139, 75, 87,110,178,182,178,198,104,156,177, 62, 78, 49, 77,133, 14,134, 69,209, - 81, 86, 45, 10, 75, 22,229,108,109,111,177,189,181,201,202,120,140,242, 29,224, 73,122,145, 96, 85, 20,236,159,206,184,179, 25, -243,252,237,109,110,236,109,177, 58,180,124, 58, 93,178, 59,201, 88, 91, 31, 50, 61,175,185,180, 61,198, 36, 49,167, 39,115, 80, -134,245, 72,203,197,148, 37, 92,219, 91,231,159,255,100,159,131,147, 37, 46, 4,206, 23, 21,245,236,132, 91,119,118,153,159, 21, -188,245,147,191, 4,103,121,254,249,235,108, 95,187,202,139, 47,189, 72, 50,200,217,185,252, 12,190,236, 40, 43,205,175,255, 27, -127,139,173,237,109,158,185,181,201, 40, 73,249,167,255,195, 63,229,173,183,222, 38, 40,195,123,239,127,200,246,230,132,174, 88, -114, 54, 59, 35,120,136, 6, 57,201, 32,165, 11,154,131,195, 99,190,240,202,171,252, 59,191,243,183,137, 18,205,104,176,202,103, -247,238, 98,115,249, 25, 63,250,240, 67,108, 36,113,181, 33, 82, 8, 74,184,194, 70,194, 66,207,226, 4, 31, 36,120, 65, 71,150, - 97, 54,161,172, 42,234,170,230,232,108,138, 15, 30, 27,193,114, 89,246, 22,203,140,251,143,142,248,111,254,195,175,114,103,164, -249,163,159, 31,146,142, 18, 94,188,181, 71,211, 42,170,214,241,165,107, 19, 74,165, 40,130, 97,111,103,204,214, 40,230,100, 90, -144, 79, 6,172,174,230,152, 36, 33,104,203,143,223,217,231,188, 17,117,171,214, 98, 67,107, 92,203,246,234,152,243,170,195,106, - 75,215,120,206,231, 37,139,249,146,196, 26,138,122,137,239, 28, 15,159, 28,114, 52,157,179,177,189, 69,177, 88,240,157,175,127, -141, 60,207,153,205, 11,148,130, 23,110,221, 98, 99,117,141,199,135, 7,228,105,202, 27,175,189,194, 47,189,250, 10,191,253, 91, -223,225,119,190,251,215, 57,155,207,249,236,193, 35,178, 84,146,236,130,119,104, 99, 49,214,210,117,178,191,171,170, 82, 68, 75, -145,193,249,142, 44,203, 73,146, 8, 23,100, 52, 25,124, 63, 81, 0,154,182,166,169,101, 28,216,180,253,136, 58,138,176, 86, 99, -181,140,251, 66,232, 29,249, 65, 84,244,117, 89, 50,159,158,178,152,207, 25,140, 6, 84, 85,213,239,154, 61,109, 43,129, 34, 73, - 58,144,125,104,239, 42,169,155,150,178,172, 88, 46, 75,188,119, 88,107, 48, 72, 96,197, 5,248, 35,138, 99,154,166,166,105, 26, -178,172,207, 95, 15, 94, 64, 37,131, 28,215, 57,180,146,241,127, 81, 20, 34,102,109, 26,210, 52, 38,203,228,224,109, 59, 79, 28, - 11,131, 33, 79, 19,150,165, 32,107,139, 69, 65,211,119,206,117, 83,209,117, 98, 57, 75, 18,193, 77, 23, 69,137,242, 80,213, 2, -161,137,147,132,128, 8,105,157,235,136,163, 30,254,161, 36, 49, 75, 27,177,198,217, 88,118,183, 33, 64,250,116,229,225, 9, 58, -160,131,197,196, 18, 13, 28,197, 98, 53,139, 35, 97,220,171,200,200,148,176, 7,139, 24, 19,131, 18,135,128,119, 30,173, 44,117, - 93,226,157,251, 69,225,148, 38,212, 85, 67,215, 53,156,159,159,178,182,186, 65,146,231,124,252,233, 39,220,187,251,128,114, 81, -176,190,185, 65, 32,160,116, 76,231,164,179, 75,250, 34, 74,217,136,206, 5, 20,189, 40, 83, 3, 30,130, 22, 80,138,137, 36, 97, -175,243, 98, 99,149,196,178, 14, 23, 20, 93, 83,129, 86, 12, 7, 67,130, 10,232,160, 9,253, 13,234, 67,192,152,136,155, 55, 62, -199,209,233, 19,113,168,104, 97,245, 27,101, 5, 27, 29, 2,131, 52, 37, 32,164, 63,239,100,202,147,101, 25, 30, 97,241, 7, 39, -162,109, 23, 2, 42, 8,169,209,117, 29,177, 53,125,176,145,252,158, 1,143,242,136, 93, 12,121,142,165,185,148, 75, 93,163, 80, -125, 71, 46, 78,169, 64,231, 29, 81, 36,251,234,128,238,173,127,209,211, 38,182, 44, 10, 20,129,178, 17,124,173,115,194, 79,177, - 90,156, 91,105,154, 98,250,123, 45, 77, 37, 89,205,245,154,171,174, 19, 14,204, 69, 69, 33,117,176,124,167,170,191,176, 53,154, - 46, 92, 88, 50,133, 28,137,145, 10,167,243, 29, 70,253,162, 32, 81, 10, 8, 34,248, 19,240,145, 60, 3, 38,146, 95,111,182, 47, - 95,250,158, 24,245,101,127,214, 57,177,163, 68, 54, 18,111, 97,100,105,170, 6,109,109, 15,102,232,228,161,119, 30,239,101,103, -230,124,215, 43, 65,133, 28,166,188,122, 58, 26,180, 70,120,235,113, 34, 48,123, 97,172, 75,103, 30, 71, 17,147, 60, 98,115,104, -217,157, 88,170,227,125,220,124, 65, 20,197, 52,102, 64, 53, 95,242,210, 11,183, 88,217,217,229,171,111,124,145,239,254,245,215, -249,141,111,253, 18,147,216,241,236,181,219,124,248,206,187,164,137,101,101, 48,192,219, 8, 21,101,108,238,237,114, 86,183,156, - 45, 22, 40,175,168,107, 17, 8,253,252,157,183,120,114,255, 9, 73,182,130,195,243,224,195,247, 73,147,148,149, 75, 87, 88,189, -116,157, 16, 28,179,197,146,174,106,184, 53,130,241,230,132,151,190,120,139, 56, 91,163,168, 27,246,118,118,217, 92, 29,113,237, -210, 54, 55,110, 92, 98,107, 53,102,111, 96,217,222, 25,115,117,247, 10, 89,154,226, 58, 69, 58, 24, 80,207, 14,153,157, 30,241, -202,107,175,114,112,120,206,193,254, 99, 92,209,176,178,185,194, 7,239,127,202,120,104,137, 99,203,116,214, 49,173, 52,233,120, -194,231,110, 93,227,206,157,103,208,193, 83,159, 31, 99, 92, 75,100, 83,124,156,209,118,158,237,237, 13, 54, 55,214, 88, 29, 77, - 88, 89,145,138, 59,137, 98, 76, 36, 52,165, 65,214,239,182, 98, 65, 63, 70,121,198, 15, 62, 59,231,223,125,101,141,166,109,217, -222, 91, 39,195,241,246,126,193,251,143,231,108, 71,112, 62,175,200, 7,137, 40,129, 81, 52, 93,203,104, 20,179,123,123, 23, 99, - 45,191,255,231,247,233, 2,116,190,197,123,216, 63, 56, 99,190,191,207,193,254, 19,130,170,217, 94, 91,225,224,238, 19,148,206, -113,222,115,237,214, 45,118,214,215,249,241, 59,159,242, 31,255, 23,127,159,183,127,250, 54,159,190,243, 38,191,255,251,255, 55, - 63,127,247, 46, 46,116, 92,219, 91,167,114, 29,150, 14, 93, 45,120,112,124, 72,227, 58, 78,230,115,226,212,177,178,190,194,225, - 97,199,206,246, 21,126,237, 87,223,160, 90, 44,228,101, 12, 29,183,111, 95, 99,107,125,135, 65, 54, 96,239,242, 21,218,170,225, -240,248, 72, 0, 43, 78,118,157, 90,203,190,206, 59, 41, 40, 9, 14, 79, 32,138, 19,170,170, 34,181,146, 40,181,108,106,166,103, -133, 76,136,186,150,209,100, 72,211, 53,252,103,223,190,131, 90, 31,115,248,233, 62, 15,206, 27,110, 94,158, 16,235,192,209,180, - 36, 29,100,172,103,150,135,251, 51,146, 52,226,184,104, 57,154, 87,108, 56, 79,172, 90, 38,163,140, 43, 59, 67,126,240,211, 71, - 60, 58, 47, 41, 29,120, 15,173, 11, 20,165, 39, 75, 97,255,172,192,119, 13, 86,105,242, 65,134,209,150,217,124, 73, 81, 54, 76, -231,243,126,204,105,168,154,150, 39, 7,199,188,254,242, 75,236,108,110,114, 62,155, 73,200, 71,211,176,185,177,198, 23, 63,255, - 34,175,190,244, 60,183,111, 92,227,234,165, 61, 70,131,156,206, 57,190,252,202,203,172,173,142,249,236,254, 67,170,166,253,215, -118,118,162,150,247,128,243, 50,105,139,172,197, 26, 75, 28, 37,228,131, 33,193, 59, 66, 95, 96, 43,241,202,241, 20, 18,211,117, -120, 39, 35,251,174,109,159, 42,199,165,227,144,108,104, 25,231, 75,160,146, 86,138, 98, 81, 48, 59, 61,195, 57,199,100, 60,145, -208, 39, 99,112, 94,132,100,174,235, 16,213,117, 32,137, 99, 1,148,120, 73,170, 82, 90,247,225, 47, 49,139,178,144,149,130, 15, -100,105, 46,133,128,147,216, 86, 29,132, 19,145, 94,240, 26,148, 48, 51, 68, 23,211, 50, 30, 15,177, 54,198, 60,197,227, 10, 5, - 51, 77,227,167,103, 93, 28, 71, 88,163,105, 90,177,253, 57, 31, 24, 14,134, 34, 88,210,114,128,198,113, 68,217,212,226,177,239, -167, 12, 89, 26,147,196, 9, 74, 41,210,184,103,140, 55, 13, 77,215,209, 58,153,136,136,159, 92, 82, 32, 91,231,169, 91,143, 82, - 2,199,105,218, 70,116, 16, 93,219, 55, 64,173, 56, 9,218,134,224, 3, 65,137,176,242,194,169,115, 49,214, 85, 74,252,227, 30, - 65,122, 55,117, 3, 90,124,214, 93, 43, 54,191,224, 59,246, 15, 30,146, 37, 67, 86, 87, 54,120,244,248, 33, 10,133,137, 20,169, - 77, 9, 58, 16, 27, 97,193, 71,113, 66, 89, 86, 68,198, 64, 80, 16, 12,160,145,241,188, 40,224, 55,183,183,216,217, 94,103, 60, - 94,145,239,191,172, 8,186, 7,191,116, 30,231,101,220,110, 34, 67,150,102, 68,113,134,209,200,133,101,132, 0,105,149,229,202, -181,219, 20,203, 25,222,181, 82, 16,249,142, 52, 77,233,218,150, 40,150,162, 65,194,178, 18,154, 70, 50, 1,146, 56, 21, 49,102, - 47,240,140,250,137,114,100,228, 18,142,147, 68, 68,151, 90, 46,108,131, 8,204,100,107, 32, 16, 23,173, 5,182, 3,160,140,124, -142,178, 94,234,213,240,253,104,191,110, 90,170,170, 0,165,250,105, 68, 37,233,158,173, 32, 90, 59,215, 82, 45,155,167,133, 2, -128, 54,154,186,109,159, 78,178, 47, 86, 7, 38, 18,113,232,133, 24, 21,196, 81, 32, 47, 13,253, 37, 45, 99,116,130,216,237,156, - 11,116, 93, 75,100, 45,194, 8,144,247,229,130, 83, 33,157,185,194, 24, 80, 24, 36, 16, 77,166, 9,190, 19,160,142,217,185,124, -249,123, 42,120,186,198, 81, 55, 45, 38,178,100, 89, 70, 0,218,170, 34, 78, 18,177, 83, 57, 73, 67,178,253, 7,233,188,208,121, -140,141,128, 64,154,101,132, 32, 49,155,141,235,168,151, 37,222, 43,148,149,221,162, 49, 17, 26, 17,219, 68,120, 6,110,193, 68, -205,104,102,199,196, 70,243,225, 7, 31, 50, 43, 61,215,158,185,193,206,213, 29,190,248,194, 29, 94,122,225, 38,207,124,238, 38, - 7,247, 62,165,155, 23,204,247, 79,216,191,255,136,163,253, 67, 22,243, 51,106,231,104,171,154,135,143, 78, 57, 56,153, 83, 55, - 37,119,239,221, 39,142, 98,138,101,205,244,248,132, 36,130,227,233,156,120,176,138,139, 34, 54, 54, 87,136, 6, 49,101,213,144, -173,110,210, 25,205, 96,117, 66,187, 60,225, 87,126,249, 13, 78,159, 60,225,254,180,100, 62, 47,185,121,101,135, 47,126,229, 11, -156,207,206,200, 87,115,232,114,156, 78,121,255,221, 79,105, 23,231,132, 97, 2, 38, 39, 86, 26, 29, 13,152, 79,207,201,135, 49, - 71,239,255,132,207,189,248, 26,123,151,174,162,147,148, 7, 71, 51,178, 44,230,238,254, 17,167, 39,103,156,205, 91,234,198,179, -104, 20,151,118, 55,105, 26,199,116, 49,231,248,224,144,199,143,246, 57, 93,150,116, 68, 44,202, 37, 85, 89, 96,141,116, 4,103, - 39, 83, 33, 39, 57, 71, 23,196, 35,217, 53, 53, 10, 69, 48,154,101, 81, 19,124,160,169, 58, 78,143, 14, 57, 92, 24,214,183,134, -188,126, 99,204,124,209,176,189, 61,225,214,149, 21,226,216,242,238,253, 41,117, 39, 54,168,224, 68, 53,218, 41,205,217,225,156, -227,131,115,242, 73,198,127,255,253,135,210, 37,121,100, 87, 27,160,158, 47,233,234,134,157,171, 87,185,113,121,151, 43,123,187, - 84,217, 42, 55,238,220, 38, 31,173,242,135,255,242, 47,248, 91,255,246,119,249,227, 63,252, 51,126,248, 23,255,138, 55,223,252, - 49,119, 94,122,137,124,146,242,243,183,223, 34, 31,231, 92,219,217,228,221,119,222,229,238,225, 19,118,175,108,227,149,230,250, -245, 75,172,172,110,131, 94,193,154,152,255,252,119,255, 62,170,110,184,127,239, 51,210, 40, 98, 49, 59,231,240,240, 4, 29,199, -252,217, 15,254,146,114, 81,114,116,116, 74,211,214,228,195, 1, 93, 23, 72,162, 72,246,130,117, 43,121,205, 81, 68,156, 72, 2, - 97, 62,204,201,243, 49, 85, 93,163,157, 99, 56, 72, 25, 78,198, 52,190,227,232,100,202,225,209, 1,117, 3,127,243,133, 53, 54, -135, 57,235, 3,203,163,233,146,179,131, 5, 15, 31, 31,179, 49,206,248,104,255,156,183,222,217,103, 47,215, 60,115,121,204,216, - 4,236,116,193,245,117, 75, 98, 34,146,200, 48,140, 3,199,211,154,119,247,167,204,107,233, 48,149, 2, 99,224,242, 90,206,227, -179,154,206, 67,221, 73, 16,132,115,129,241, 56, 19, 39,137,211, 36,131, 33, 69,217,178, 88,148,148, 85,197,175,127,253,171,108, -109,174, 83, 84, 21,197,114,201,124, 81, 48, 91, 20, 84,101, 77,177, 44, 57,157,158,115, 62, 95,208,116,142,178,170, 56,159,205, -216,222,216,224,185, 59,183,184,255,232, 49, 69, 47,174,211, 90, 34, 87, 47,178,214,219,166, 5,173,159,118,192,206,183, 68, 54, -233,217, 11, 18,128, 97,227, 8, 2,148,149, 92,102, 73,108, 69, 95,162,144,113,161,150,195,201, 24, 67,150, 36, 12,135,195, 94, - 21, 12,129, 14, 99, 35, 34,173,169,170,154,147,163, 99, 20, 74,224, 53,253, 69,104, 76,132, 15,130, 35, 70, 9, 27, 35,234, 39, - 43,101, 89,136,146, 57,200, 40,218,244, 35,252,206,201, 57, 21,199, 9,229,178,164,110, 91, 18, 43,226,199, 56,146,177,123, 20, -197, 36,121, 66,154, 36, 20,203,165,172, 72, 16, 18,164, 53, 50, 45, 92, 46, 43, 33, 30,170, 32,156,137, 86,184, 19,109, 43,164, - 50,231, 36,194,185,173, 27,153, 60, 58, 9, 14, 89, 46,151,164,137,140,224, 67,215, 81, 85, 37,105,150, 34,214, 60,219, 11, 51, - 91,210, 56, 33, 4,121, 6, 27,215,146, 38, 25, 98,171,115,210, 53, 90, 75,150,102, 16,164, 8,186,176, 38,133, 16,200,243, 12, -148,136, 28,163, 40,145, 49,124, 63,150,109,155,142,124,144,139,240,175,207, 18,111,218,134, 44, 74,105,125, 71,158,166,180,222, -139, 80, 76,107,158, 60,186,203,104, 52,102, 48, 90,225,244,248,136,243,243, 57, 59, 59, 91,236,238,108,115,116,122, 44, 80,160, -224, 89, 95, 95,167, 88, 46,105, 59,113, 38,120, 4, 79,220,245, 49,175,117, 89,179, 88,116,152, 88, 19,167,137, 76, 8,218, 14, - 66, 63, 26,118,158,160, 68, 17,158, 15,114,129,244, 76,198, 56,231, 69, 76, 88,139, 8,178,109, 28,151,118,175, 81, 55, 5, 93, - 43, 88,213, 56,138,192,131,178,138,184,255,108,125,215,162,173,101,144,231, 24, 35,240,152, 98, 89,208,212, 45, 73, 42, 16, 26, -165,132,183, 46,104, 89,139, 10,226, 59, 15,114,227,202, 13,216, 79,203,148,234,245, 32,198,200,245,170, 68, 35, 34, 98,118, 5, - 74,225, 93,139,239,121,244,190, 19, 39, 85,211,117, 98,179,238, 58, 2,138, 65,150, 81,214,178,122, 93, 22, 5,229,114, 9, 8, - 78, 60,138, 44,222, 9,217,206, 7,241,178,167,105,175, 63,178, 17,222,251,254, 34, 87, 40, 37,255,140, 82,104, 43, 19,131, 40, - 18,215,142,128,224,100, 71, 30, 89, 9,119,177,218,224,233,197,141, 90, 73, 17, 3, 4, 20,198, 88, 92, 63, 93, 11, 4,204,222, -149, 43,223,187, 16, 21,200, 71, 33,123,192,178, 88,210,120, 25, 27, 92, 32, 90, 37, 34, 83,225, 3, 50, 66, 49,138, 44,141,241, - 46,144, 38, 73, 95,177, 11,244,191,115,142, 36,151, 7,175, 11,142,221,141, 49,119, 46,165,108, 71, 37,155, 67,133, 81, 53,111, -254,236, 3, 46, 61,115,135,193, 36,230,243,175,188,196, 87,191,242, 26, 43,171, 9,153,129,179,233, 49,167,197,146, 52,201, 25, -229, 99,178,124,204,206,173,155,232, 84,108,110,135,179, 83,138,162,160,152,117, 60, 57,155, 19,172,229,163,207,238, 83, 54,208, -121,207,241,241,148, 39,247,238, 18, 69, 17, 42,196,196, 43, 99,214,215, 87, 89, 20, 2,114,209,193,179,117,249, 10, 15, 62,124, -155,163,247,126,142, 63, 63, 99, 45, 55, 92,191,117,153,103,158,219,224,241,225, 25, 63,250,241,125,126,246,179, 15,184,251,193, - 35,174, 95,218,195, 15,115, 94,252,252, 29,156, 10, 28, 45, 74,118,119,111, 99, 9, 60,190,123, 31, 19,229, 60,115,243, 6,127, -249, 23,127,193,165,189, 93,174,220,186,195, 95,253,217,247,121,242,120, 31, 19, 25, 30,157,158,242,240,201, 25, 77, 93,211, 89, -131,182, 17,211,229,140,166, 11,156,206,103, 40, 44,193,200,126, 43, 50, 17, 26, 71, 98,123,246,175,181,180, 93,131, 81, 10, 23, - 28, 58, 82,104, 31,104,202, 10,229, 3, 45,242, 0, 57,196, 78, 17, 39,150, 65,146, 16,107,207,159,188,179,207,214, 32,226,245, -155, 27, 28, 47, 27,108,208, 92,185, 52,225,149, 59,187, 92,218, 28,147,231,146, 94,230,103, 21,163, 24,242, 72,163, 2, 76,139, -150, 31, 60,106,120,246,250,101,158,123,238, 10,197, 98,193,188,168,232,148,101,178,146,241,149, 55, 94,229,210,213,103, 89,189, -124,153,217,162,228,238, 39,239,177,182,115,155,223,251, 39,255, 11,139,249,140, 63,249,139, 55, 41,231, 1, 21,149,140, 6,138, - 63,250,151,223,231,232,224,152, 36,141,120,247,157,119, 89, 84, 51,162,108,192,141,155,183, 88, 89,221,225,193,253, 57, 90,173, - 16, 25,203,213, 43, 91,108,172,174,113,247,195, 15, 56, 57, 43,136,146,136,149,213, 53,110, 61,251, 60, 63,251,233, 79,185,121, -243, 58,113,150, 80, 54, 53,179,233,148,193,112,136, 2,170,114,193,124, 58,197, 27, 77,190,178,134, 25,230,104,155, 82,213,142, -170,105, 41,170, 37, 54, 73,112, 78,179,152, 78,209, 33,144,167, 41,151, 47,237,144, 38, 25, 71,135, 11, 42, 87,241, 55, 94,221, - 35, 29,196,252,233, 79, 31,243,228,180,160,241,138, 52,137, 88, 85, 13, 59, 73, 32, 74, 44, 89,217,146, 27,133,242,158,217, 40, - 39, 68,150,135,199, 5,243,131,115,118,110,237,146, 36,134, 31,125,118, 70, 31,131,140, 83,176, 51, 78,121, 52,173,101,111, 24, -148,116, 57,174, 99,190, 40, 89,214, 13, 40,143, 85,129, 52,205,200,242,148,163,227, 83,174, 94,190,196, 87,190,240, 50,222,133, - 30,234,209,112, 50,157,114,112,114,194,241,201,153,216,183,250,206,165,174,106,186,206,177, 44, 75,124, 8,236,110,110,112,116, -114,198,188, 40, 72,162, 8,173,149, 8,171,188, 56, 61,150,101, 33, 32,150,214,209, 53, 13,222,181,160,132, 57,173,251, 81, 37, - 64, 28,247, 17,167,198, 98, 99, 81,219,163,100,175, 42,121, 12, 65, 52, 51,202, 16, 71, 22,215,213,164,105,132,107,131, 28, 86, -177, 33,137, 35,206,207,166,156, 28, 29,227,186,142, 36,203, 8,222,247,133,133, 20,142,244, 29,211,124,126, 78,215,182,253,184, -213, 82, 20, 18, 2,213,116, 45, 89,154, 81, 87, 18,216, 97,172,236,186,151,203, 5, 62, 72, 71,219,212, 45,206, 7,177, 0, 41, -100,223, 8, 24, 27,177,172,151,104, 45,233,144,131,129,140,124, 5, 77,157, 60,189, 36,196,110, 23, 8, 78,138,150,166, 21, 60, -118,154, 38,184,214, 75, 87, 93,149, 84,101,217, 35,111,187,126,252, 41,152,218, 56,137,104,218, 26,107, 35,202,170,162,237,106, -242,108, 64, 89,215, 68, 70,252,238,178,109,149,139,253, 2,151,154, 38,137,120,194,157,196,130, 90, 27,201,228, 64, 75,199,172, -149, 76, 26, 76, 28,209, 84,181, 28,236, 74, 81,215, 21,121, 62,160,234,196,210,171,130,146,127,238,126,161,238, 63, 57,218,103, - 48,200,184,115,251, 89,180,214,220,188,113,147,131,131,125,230, 69, 77,189, 44,137, 76,196,198,250, 26,211,217,188,183, 33,138, -168, 49, 4, 89, 29, 97, 68,236,231,130,163,169, 90,188,119, 68, 38,162,241,194, 16, 81, 10, 8,154,224, 37,149, 50,120, 69, 89, -203,115,190,186,182, 70,215,122,230,231, 83,170,186,146, 9,141,243,172,175,109, 51, 43,206,232, 90, 73,190,187, 0,206,212, 85, - 3, 78,240,225, 77,219, 98,172,238,167, 58, 18,229, 76,240, 68,177,216,225, 64,118,216,173,119,226, 37,111,157,132, 39, 5,240, -222,211,133, 32,197,167,220,237, 68,145,145, 75, 80,110,249, 94,248,136, 40,242,149,248, 61,186, 86, 8,120,244,157,189, 4,178, -136, 6, 44, 73, 19,170,186,150, 41,118, 85, 35,180, 70, 17, 3,218,126,245,105, 76, 31,115, 28,100, 21,133, 82, 18,207,170,149, - 76,169,229,147,237, 53, 49,253, 95, 65,130,136,188, 15,224,131,188, 10, 62,224,131, 80,251,148, 86,196,177,237,215, 75, 10,133, -188,239,114,103,203, 24,255, 23,122, 7,133,217,190,116,233,123, 23, 30, 58,188,146,223, 67, 41, 17,103, 92,140, 4, 26,161, 65, - 9, 8, 64,146,210,172, 18, 65,128,209,162,120,140, 35, 73,202,146, 9,142,194, 59,199,202, 48,227,213,207, 95,226,141,151, 47, - 49,212, 29,223,255,163, 31,240,227,247,238,113, 54, 93, 64,186,193,127,244,159,252, 61,190,244,218, 45,174,108,110, 96,234,142, - 58, 56,134,249,136,245,181, 13,182,118,119,121,241,198, 85, 14,239,221,231,100, 86,225, 77,194,167, 15,222,229, 71, 63,253,136, -186, 53,156,204, 91,138,165, 34,216,148,120, 52, 96,177,108,216,218,220, 18,202, 90,150,178,183,185,205,218,230, 26,163,124,194, -222,205, 27, 36,169, 97,113,240,128,135, 31,125,192,233,225, 1, 7,135, 7, 60,252,248, 1,197,193, 17, 89, 30,147, 43,195,229, -189,171,100,195, 85,210, 44, 97, 20, 89,190,248,210,117,234, 14,166,141,230,227, 79, 15,104, 92,203,219, 63,255,132,123,159, 28, -144,153, 1,235, 59, 19,238,126,248, 62, 77,221,145,230, 67,158,123,254, 58,159,189,255, 30,223,254,206,119,249,225, 15,127,198, -193,241, 41, 81,164,120,247,163,143,232,128,213,237, 13,246,143,207,105, 59, 37, 10,212, 96,217,218,217,100, 99,101, 66,158, 68, - 4,223,177, 50, 30,203, 31, 16,138,124, 48, 68, 41, 77,237, 69,101,107,147,152, 16,126,225,195,180, 74, 10, 43,229, 2, 33,120, - 76,128,166,170,233,202,146,135, 7,103,216, 44, 97,176,185,193,247, 31, 42,110,109, 89, 46,175,196, 56, 2,109,175, 68, 30,141, - 99,110,236,172,240,252,237, 93, 38,235, 25,121, 18,177,119,121,157, 95,249,218, 29,190,244,185,109, 30,157, 46,121,235,225,130, -235,219,171, 12, 82,207,237,155,187,204,102, 21, 15,143,102, 28, 29, 29, 10, 93, 42, 74,248, 31,255,201,255, 78, 99,229,226, 0, - 0, 32, 0, 73, 68, 65, 84,204,131,131, 71, 36,217, 10,251,103, 71,172,110,239,240, 43,191,250,117,126,240,230, 15,184,119,239, - 3,166,179, 25,227, 73,202,179,183,111,242,185,103,175, 82,204,102,172,172,174,240,210,107,207, 17,212,136,207, 62, 59,230, 91, -223,250, 6,127,231,119,190,203,217,193,140,160,106,158,185,118,153,247, 62,250,132, 75, 55,110, 66, 8,156,157,156,242,193, 71, - 31,112,227,153,155,220,187,119,151,199, 15, 31, 16,186,154,193,104,192, 98, 62,227,193,131,187,144, 88,198, 91,187, 68,121, 46, -234,210, 32, 1, 60, 38,205, 80, 74,147,100, 35,108,154, 82,187, 14,147,164, 96, 45,117,227,112, 8,159,225,202,213, 45, 62, 62, -170,249, 15,222,216,198, 90,203,202, 40,227,211,135,167, 68,193,161,130,226,115,207,109,243,149,103,119,169,235,134,251,203,142, - 42, 4, 86,242,132,194, 91,110,110,229, 28, 31, 45,177, 10, 30, 44, 97, 77, 57,222,123,116, 74,231,165,162, 94,118, 48,138, 53, -199, 69,199,255,207,212,155, 60,105,118,157,103,126,191,115,206,157,191, 41,243,203,204,154, 11, 85, 40, 20,134, 2, 1,112,210, - 72,177, 37,138, 86,107,160,228,232,104,183,187,189,144, 29,209,142,182, 28,225,176,151, 94,216,225, 13,189,245,206,255,129,195, - 59, 71,203, 45, 59,100,169, 37, 53,213, 52,155,110,113,130, 8,130,152, 11, 5,212,156,149, 89, 57,126,195,157,207,224,197,123, - 51,217,136, 64,144,136, 42, 36,178,190,188,247,156,119,120,158,223,147,196,138, 72,203, 62, 77,107,200,227, 64,223,122,148,239, -113, 93, 45,227, 54, 99,184,122,105, 11,235, 60,223,250,198,111, 81,214,245,208, 29, 11,134, 53,139, 83,166,179, 49,215, 46, 95, -226,210,206, 22,206, 58, 22,235, 53,117,211,178,174, 42, 22,203, 53,214, 58,110,189,112, 21,231, 28,123, 7, 71, 72,148,228, 48, -174, 78, 99,186,222, 97, 34, 77,223,137, 45, 53,205, 18,218,166, 37,210, 66,118,140, 98,137, 74, 62,187,180,133, 78, 39,135,125, - 20, 11, 41, 77, 32, 48, 10, 16,142,120,146, 36,148, 39,167,224, 17, 31,176,142, 48, 90, 88,240,145, 49,196,137,226,244,100,201, -233,225, 33, 58,138, 72,243, 92,118,148,195,193,220,180, 66,168,204,242, 12,241,224,123,210, 68, 98,161,227, 36, 35, 16, 40,242, -156,170,110,206,125,196, 38, 18,141,143,214,162,224,238,251,142, 52, 77,233, 59, 73,117, 19,191, 58,232, 32, 59,233,162,144,127, -110, 26,201,253, 78,146,136,213, 74, 24,252, 69, 94,200,222, 90, 9,125, 50, 88,136,163,136,214,118, 36,145, 0, 82,196,206, 38, -161, 50,102, 88, 83,100, 89, 2, 65,138,242, 72, 69,212,125, 75, 26, 71,160,149, 8,234,144,195,185, 30, 82, 36, 3, 1,231,123, - 41,212,253, 0,194,137, 4,194,162,181,166,119,110, 56,139, 3,130,252,149, 96,150,224, 37,231,194,246,110, 0,125,201, 46, 95, -121,209, 43,196,145, 88,254,218,186, 34, 4, 65,126,123,229,193, 91,198,179, 57,215,175, 94, 35,205, 18,158, 60,222,197,232,136, -201,116, 44,141,152,150,116,179,222,185,161,171,149,203,112, 50, 25, 15, 35,101,249,254, 61, 10,107, 61,146,118, 39,186, 40, 0, -143,197, 59, 75,219, 89, 97,144,244, 61, 77,211,161,116,196,120, 52,162,105,106,170,170,193, 58, 75, 85,174,209, 26,110,223,186, - 67, 85,157,130,119,244,118, 40, 14,116, 16,198,136,150,108,143,186, 19,122, 92,219,137, 43, 33,207,114, 17, 40,247, 45,103,246, - 66, 89,123,244,160, 2, 97, 88, 5,248, 97,172,125,166,108, 87,200, 51, 72,144, 21, 17, 94,128, 76,193,137,109,205,251, 32,157, -182, 10,164, 73,140, 81,146, 54, 23,144, 20, 82,163,100,181, 19,197, 50,189, 18,230,193,160,116,135,115,225,180,216, 31,101, 98, -115, 70, 67,108, 91, 73,180,211,250,204, 30,170,126,161, 77, 75, 99, 66,144,207,209,163,112,214, 19, 25, 69, 80,178, 22,144,104, - 87,225,200, 40, 37, 36,213, 56, 22, 77, 2, 65, 84,241, 74,203,213,174,228,250,198, 92,188,114,229,219,210,159,139,194,239, 12, -200,208,117, 29, 32, 30, 84,180,162,237, 44, 40, 1,210, 4,206,212,147,242, 50, 6, 37, 8,192,224, 29, 46,104,174,238, 76,248, -149,183, 46, 51,203,224,193, 39, 31,240,151,127,241, 35,126,246,179,207,249,194, 43, 55, 56, 90, 47,248,135,223,250, 71,124,235, - 91,191,204,238,163, 7,124,252,246,251,220,253,224, 33,211,157, 75,204,183, 55,232,155, 21,251,247,239,177,247,241,199,188,253, -227, 31,115,176,238, 89,181,150,167,251,251, 20,209,132,171, 59,215,208, 89,194,120, 54,101,103,103,204,147,207, 62,197,150, 21, - 91, 99,241,186, 94,216,185,200,229,157, 77,154,234,136,141,233,152,205,217,152, 8,120,240,225, 79,217,125,112,192, 55,255,224, - 27, 92,188,122,157, 75, 47,190,206,215,190,249, 15,248,242,215,190,200,139,175,188, 74,155, 20,132,182,162,238, 44,205,241,138, -235, 55,174,176,108,122, 94,123,229, 53,222,250,194, 29, 54,162,134,235, 87,174,178, 53,158,114,251,213,151, 40, 70, 57,123, 79, - 31, 81,149, 13,243,205, 77,242, 34,226,233,189, 79,185,241,194, 45,238,223,251,152,100,126, 17,173, 45,239,126,240, 41,202,196, - 60, 63, 94,179,247,244,144,249,116,147, 34,207,153, 77,198, 92,189,116,153,141,209,136,174,237,168, 22,167,196, 73,130,245,208, -180, 53, 26, 69,112,158,190,151,144, 20,165, 12,161,247,242,194, 84, 37,182,183,180,189,163,247, 34, 82, 42,187, 14, 23,143,176, -105,134, 79, 50, 70,243, 45,162,188,192,196, 9,206,117,252,237,167, 11,218, 30,190,124, 37, 35,137, 13,125, 43,213, 98,221, 89, -240,142,241, 56,231,226,165, 77,230, 91, 83, 57,196,141,226,155,183, 71,252,224,211, 61, 92, 60, 65,197, 99, 62,189,183, 75,154, - 68,156, 46, 75,234,178,225,233,238, 62, 63,249,241,143, 89,151, 37,111,190,241, 10, 87, 46,204,217,218, 24,241,250,155,111,240, -215,255,215,159,243,241,135,239, 83,228, 10, 21,207,112,193,176,174, 90,162, 44,229,231,239,221, 35, 30,143, 88,174, 19,182,183, - 47,242, 95,254,139, 63,230,206,157, 59,124,118,239, 25,127,247,221, 15,249,163, 63,252, 42,159,125,244, 25, 71,213,146, 87, 95, -125,133,170,170, 80, 33, 80,181, 53,143, 31, 60,225,249,193, 33,171,197,130,163,227, 35,158, 62,190,207,162,237,216,188,120,149, - 98, 52,165, 15,225, 60, 98, 51, 73, 51,214,101,133,242, 8,243,121,216,171,102,105,134, 50, 49,141, 19,140,164, 13,154, 16, 39, -172,202,134,101,235,152,198,138, 95,121, 93, 0, 64,125,213,113,112,184,102,209,120,126,231,215, 94,100,115, 50,226,234,245, 77, - 94,185, 58, 39,209,138, 79,142, 74,126,112,247,144,175,189,121,153,175,190,113,141,211,189, 35,108,158,243,242,157,107, 84, 77, -207, 71,143, 78,137, 34, 69,239,225,181,203, 83, 30, 29,183, 76,166,133, 8,215,186, 30,215, 67,150,107,210, 60,161, 15, 1,229, - 3, 40,104,234,154,197,114,197,106, 93,242,251,223,252,109,170,170,162, 29,172, 95, 89,150, 50,157,142,185,126,241, 34,211,201, -152,120, 24,205, 6, 47,190,251,174, 23, 30, 67,158,166, 76,198, 35,110, 94,189, 74,154, 36, 60,125,182, 55, 88, 52,165,219,246, - 33,144, 21, 35,180, 49, 44, 86, 43,188, 71,192, 44,145,198, 91, 75, 91,215,178,171, 30, 4, 94,222, 75,146, 90,128,243, 83, 36, -138, 34, 41,254, 99,137,189,244,222,146, 68,138, 52,206,136, 82,177,106, 25, 37, 23, 65, 28, 75, 88,147, 6,180,242, 44, 78,151, - 44, 79, 78,136,162,136, 56,207, 9,214,129,134,174,237, 72, 98, 9,242,136,147,152,170,170, 72,116, 68, 49, 42,100,247, 27,203, -247, 83,174,133, 46,215,187, 30,156,199, 58, 97,155, 39,177, 68, 67, 39,137,228, 77,212, 85, 77,100,228,162,244,222,163,181, 92, -124, 81, 28,147, 68, 17,109, 39,246, 49,144, 81,112,211,182, 18,252,212, 11,185, 50,205, 50, 92,239,177, 72,194,163, 50,146, 94, - 56,158, 20,131,245, 79, 44,189, 33,192,186, 92,145,102,137,188, 99,157, 32,115,229,118, 22, 12,106,164, 5,201,173,130, 60,139, -142, 51,108,106, 39,235, 0,148,116,161, 42, 96,173,132,240, 68, 81, 76,111,123,146, 56, 57,255, 28, 1,234,186, 34,132, 64,150, -164,152, 88, 46,140,214,246, 56,239,135, 51, 67, 97,116, 0,101,232,155,150,197,233, 49, 73,146, 51,153,110,114,120,116,196,226, -100, 73,231, 45,105,150, 66,208,152, 56, 38,142, 19,154, 78, 24, 7, 74, 27,146, 60, 69, 35, 59, 97,201, 21,151,206,176,235,197, - 18, 56, 31, 96, 53, 89,156,208,180, 45,103,224,157,179,191,101,130, 33,171, 29,201, 44,240,146,165,209,118,100, 69,193,214,246, - 21,122, 87,161,241,131,176,213, 16, 69, 9,125,219,224, 53,164,113,194,114,181, 58,123,224,100,170,228,122,121,214, 6, 61, 66, - 50, 48, 42,204, 48,189, 56, 19,196,165, 73,130, 66,166, 69,125, 47, 2,231, 16, 6,175,189,147, 32,167, 16,160,119,150,190, 19, -114, 97,108, 12, 74, 11,247, 63,120, 40,235,146,190,239,105, 90,201,138, 56, 11, 54, 27,229,178, 2, 49, 90, 86, 63,103,204, 7, -209, 81, 72,162, 40, 94,246,237, 70,107,108,239,240, 65,138,245,179, 52, 58,185,103,173,172, 26,148, 25,166, 47, 18,226, 18,130, -151,248, 91,165, 57, 11, 99,242,200,127,195,121, 17,176, 6,163,135, 62, 92,166, 25,114, 19,128,217,186,116,233,219, 90,137,226, -213, 90, 43,254, 78,132, 64,101,173, 35, 78, 5,176, 31,156,208,118,148, 2,163,101, 68,215,216,134, 34,205, 81, 40,178, 72,177, -153,107,110,108,103,232,174,228, 95,255,205, 15,121,247,131,199,116,141,163, 0, 46, 94,152,112, 84,173,249,253, 63,248, 22,191, -250,213, 87,217,123,122,196,250,249,146,163,163, 19,222,252,202,155, 36, 81,203,195,159,191,203,147,123,247,169, 27,143, 29, 93, -196, 37,219,164,147, 45, 70,163, 9, 69, 81, 80,182, 21,173,235, 73, 10,195,165,139,155, 60,184,247,128, 56,207,184,121,117,139, - 59, 95,120,133, 11, 23,119,184,125,251, 5, 62,125,255, 7,188,247,211,183,249,240,189,143, 56,122,182, 71,189, 62,228,243,251, - 79,184,122,243, 58, 63,255,240, 93, 30, 61,218,229,234,213, 29, 30,127,242, 17,127,246, 47,255,140,159,253,253,123, 60,123,190, -199, 81, 89,241,228,160,226,180,106,120,178,187, 15, 40,158,237, 30,179, 46, 79,249,240, 39, 63, 1,109, 88,149,107,178,209,152, -229,209, 9,121, 18,113,249,218,101,186,186,225,104,127,143,157,237, 25,171,186,225, 96, 89,113,233,218,101,190,247,255,126, 79, -216,227, 93,192,247,142,151, 95,125,145, 81, 81,136, 93, 37,142,233,250,142,147,211, 99,170,213,138,108, 58, 1,109,200,178,148, -201,120,131,170,179,196,185,240,226, 39,147, 13,162, 84,248,214, 65,105,154,120, 68, 60, 26, 99, 70, 99, 66, 90,224, 77,130, 41, - 70, 40, 29, 51,158, 76,145, 90, 52,156,219,120,228,129,210,188,255,172,225,187,159, 46,201,210,132, 81, 10,179, 34, 33,210, 10, -165, 4, 96, 97, 61,244,214,177,191,234,248,127,222,127,206,255,250,239,142,249,249, 33, 60,122,186, 79,164, 12,111,189,245, 5, - 14,142, 79, 89,213,167,232, 40,208, 54, 22,239,123,166,147, 28,235, 58,126,246,238,207,217,123,254,156,195,221, 93,190,255,246, -207,177, 64, 60,218,226,218,139,183,152,111, 94,224,241,147, 61,214,109,160, 44, 35,102,243, 11,252,119,255,237,191,224,247,127, -239,119,104,106, 79,219,172,121,244,104,151,143,223,185,203,225,179, 79,121,251,157,119,184,113,227, 6,239,255,252, 61, 62,191, -255,128,227,197, 9,101, 93,131, 49, 34, 82, 59,122, 14,177, 33,228, 19,198,147, 25, 58,142,112, 10,122, 43, 64, 20,207, 32,242, - 50, 70, 24,202,202,160,140,198, 59, 69,227,134,184,204, 16,208, 42,194, 68,177,136,140,186,150, 52, 77,249,209,195,146,255,236, - 11, 27,108,142,199,252,244,222, 46, 39,149, 99,115, 26,243, 96,111,197,245,235,115, 44, 6,231, 20,151, 47,111,242,198,173, 11, -152,206,241,231, 63,126,204,131,167, 39, 28, 46, 26,102,121,132, 77, 51,170,117,203,143, 63, 57,162, 48, 16, 27,205,183,190,112, - 1,159,229,124,246,228,148, 56, 54,232,212,128, 49,100,105, 12,116, 40,165,241, 38, 69, 71, 26, 55,224, 55,215,235,134,111,252, -250,175,160,149,166,110,133,172, 21,188,103,156, 23, 40,163,229, 61,117,194, 76, 48,145,208,171,242, 60,227,210,206, 54, 91, 27, - 51,138, 92,210,155,182, 55, 55, 25, 21, 57,251,135, 71,212, 93,135,117, 34, 80, 90,151, 53,113,146, 50, 26, 21,196, 73,130,119, - 78, 92, 48,193,203,101,102,229, 28, 56, 75, 63,243, 33,136,240, 40, 18, 43, 80, 8,129, 51,248, 84, 28,137,109,205,245,157,248, -199,211, 20, 99, 16,202, 27,142,200, 68,140, 38, 25,206, 74,199,100,140,104, 53, 86,167, 11,234,245,138, 44,207, 49,113,130,237, - 59,250, 78,196, 72,206,121,180,134,209,100,130, 86,131,152, 77, 75,160,137,243,150, 44, 73, 73, 83, 9,239,144,216, 76,139,137, - 99,108,111, 25,141,100, 66, 99,173, 35, 78, 98, 52,129, 44,203,100, 63, 26,160, 44,215,162,177,208, 70, 28, 16,113, 6, 90, 50, -204,207, 40,151,206,245,152, 65, 64,140, 67, 70,242,109, 35, 35, 99, 37, 35, 90,173, 52,125,219,176, 92, 46,177,214,225,123, 75, -146, 13, 33, 85,222, 19,199,137, 20, 66,195,193,108, 34, 3, 90, 81,100, 25,105,146, 96,212,176,226, 68,209,212,213,128, 79, 85, -168, 72,196,136, 33, 40,204,208,141,141, 10,233, 30,189, 11,232, 72,139,208,206, 91,116, 16,144, 73, 58,156, 45, 81, 44,123, 96, -239,165,163,143,211,132,190,109, 89, 46,143,240, 1,182,231, 23,120,248,232, 49,155, 27,115,180,210,168, 32,196,178,233,120, 74, -164,133,175, 15,136, 16,203, 8,100, 42,132,128, 81,195,245,170, 13,174,111,153,111,204, 24,141, 38,204,166, 83, 41, 8,234, 14, - 71,128, 48, 36, 4, 58, 71,154,164,108,110,206,200,179, 92,116, 23,145,166,235, 90,108, 47, 83,150, 60, 27, 97,125, 3, 74,176, -212,214, 89, 70, 89,198, 25,107,193,104,185,232,146, 52,197, 35, 34,238, 60, 47,144, 96, 30, 81,200, 27, 37,157,120,192, 99, 76, - 36, 20, 64,231,206, 59,103, 97, 87,200,231, 47, 35,109,141, 15,210, 44, 69, 38, 34,224, 65,121,122, 43,133, 95, 20, 75,145, 16, - 96,112,142,156,145, 2, 37, 8, 72,186,112, 75,217,212,132,224, 25,101, 66, 27, 52, 70, 83, 55, 53, 77,221,208,116, 13,206, 75, - 64,145,181,189,216, 49,173,192,124,206,248, 47, 40, 47,169,113, 62,156,251,237,189, 19,193,155,115,126,176,253,197,128,116,230, -206, 74,178, 98,158, 74,114, 97,215, 54,228, 73, 42,141,152,150,168, 88,147, 22,163,111,159, 93,212,157,243,116,109,131, 11,129, - 56,137,201,211,140,190, 29, 88,180, 70,200, 74,121,150, 73,170, 88,215, 17,107,205, 56,215,140, 88,227,234, 21,180, 29, 79, 30, - 63,135,104,206,246,118,193,151,190,116,135,249,198,152, 98,178,193, 27, 95,252, 34, 55,175,237,112,229,226, 20,175,144, 60,234, -211, 19,174,109,110,240,236,201, 39,220,255,232, 1,206, 37, 68, 27,151, 81,227, 57,163,233,148,157, 75,219,140,198, 57, 15, 31, - 63,101, 50, 47,216,222,154, 97, 28, 60, 59, 56, 97, 60, 54,220,186,121,129,136,154,119,223,255,140, 7,247,119,121,247,131,187, -252,251, 31,253,128,191,253,247,159,178, 88,116,148,117,207,202,121,246, 14, 78,121,184,191,230,195,207,118, 57, 90,172,241,238, -148,187, 31,126,200,221, 7,207, 8, 38,230,241,222, 41, 93,187,102, 89,247, 84,173, 35, 40,205,243,229,146,131,227, 5, 85,231, - 56, 61, 62, 21,219,204,198, 6,247, 30, 62, 37,118, 45, 70,123, 84,128,195,253, 3, 38, 23,175,114,244,252, 57,167,171, 22, 51, -189,196,222,163,207,120,251,157, 15, 40,171,158, 52, 31,161,180,102,190, 49,195,104,205,201,209, 41, 18,106, 47, 84,166, 52, 79, - 65, 25,146, 52,103,123,123, 27, 31, 52, 46, 64,145, 23,242,176,165, 49,189, 54, 88, 29, 81,121, 8, 73,206,108, 54, 37, 74,114, - 90,247, 11,171, 68,100,228,107,212,117,141, 49,134,104,240,222, 38, 81, 76,211,212, 56, 43,156,103,167, 51,126,240,249,146,191, -253,188,229,207,222,121,206,251,187,107,222,123,238,248,116,127,205, 95,126,188,224,127,249, 55,143,249, 63,223, 95,242,131,251, - 13,207, 43,137,195,140,178,156,117, 89,242,236,233, 46,255,252,143,255,136,131,131, 67,142, 15, 78,200, 83, 67,150, 69, 4, 13, -203,202, 98,240, 84,199,107,246,202, 21,191,246,214, 23,249,230, 55,126,139, 95,250,234,151,249,103,255,236,159, 50,159,108,210, - 52, 37,111,190,241, 69,126,251,183,191,206,133,157, 13,110, 93,188,192,103,247,239, 18, 37, 41,235,213, 18,219, 59,254,244, 95, -254, 57, 71,171, 39,184,174,197,232,136, 94,201,110, 77,188,155,129,123,247,238,113,120,116, 72,190,177, 77,103,101,167,229,131, - 20, 35,130,122,132,222,203,104, 91,178,194, 53, 4,135,243,162, 3,209, 70,252,182, 33,200, 11,229,135,170,184,169, 42, 9,188, -136, 19, 84, 44, 7,237,111,220, 24, 65,112,188,123,255,136,169, 81, 28, 29,173,121,254,188,228,230,141, 45,130, 82,172,234, 14, - 29,197,188,118,107,155, 75,179, 4,211, 59,136, 19,102,190, 39,217,154,178, 51, 73,248,193,251, 15, 57,109, 52,177,118, 92,158, -101,124,235,151, 94,228,251,247, 42,130,181,216,225,207,149,143, 11,170, 82,196, 77, 90, 89,230, 91,219, 4, 29, 51,155, 22,180, - 93,195,139,215,175,177, 53,159, 75,183,224, 4, 24,210, 90, 25,235,149,131, 95,187,110, 26,172,117,244,206, 49,155, 76,152,140, - 70, 4, 37, 59,225,170,105,168,171,154,160, 96, 92, 20,236,237, 31,210,180, 29, 90, 1, 38,146,209,251,112,177,231,211, 49,203, -229, 10,219,247,244,157,168,208,179, 44, 3,192,218, 97,135,170, 53,117, 85, 15,122,149,128,210,114, 40,170,190,165,238, 26,233, -122, 80, 24,165, 24,229, 19,122,223,147,165, 25,214,246, 52,117, 75, 50, 36, 84, 89, 39,140,110,231,193,246, 61,235,211, 19,148, -247, 20, 27,211,115, 53,186,236, 13, 37, 77, 49, 40,232,157, 35,142, 34,178, 44,165,239,123,220, 0,128,137,134,238, 61,142, 35, - 18, 19, 19, 84, 32,137, 99,218,182,193,123, 71,211, 52,104, 19,227,130,248,237,189,242,180,141,172, 29,204,176,235,246,200,100, -178,173,170,225,185, 56, 75,188, 19, 53, 59, 33,200,179,227,157, 8, 71,173,149, 3,188,107,104,219,238,188, 91, 11, 65,114,201, -207,178,195, 65,244, 16,222,203,174, 62, 77, 4, 88,163,181,162, 26,144,184,235,245, 90, 92, 5,198,144,166, 9,171,213,146,182, -105, 33,200,244,225, 44,153, 82, 41,141,239,101, 90, 19,153, 72,206,235,190, 31, 52, 7, 45,218, 68,120, 47,204,114, 99, 12,121, - 54, 34,138, 69,224, 39, 29,170,103,181, 58,166,235, 74, 70,163, 41, 39, 39,199,140,198, 57,202, 24,150,167, 11, 66,232, 89, 47, -151,108,110,111,138,255,223,181, 40, 47, 29,242, 96, 82,195, 35, 93,174,179,150,211,213,154,197, 98,141,115,129,124, 60,194, 40, - 77, 85,175,137, 52, 4, 4,229,219,245, 29,145,209,100,133, 92,234,151, 47, 95, 98, 60,154,202,200,186,174,136,147,148,201,116, - 78,215,174,105,171,154, 60, 77,176, 65,114, 18, 8,138, 44, 73, 7, 1, 25,228, 73, 70,156,100,210,245, 50, 4,123, 5, 41, 52, - 68,240, 40, 63, 39, 29, 16, 56,142, 54,180,157,197, 58,177,225,245, 93,135, 10,160,181,198, 15,151,166, 50,200,136,155,128,235, - 29, 46,120,212, 80, 76,181,125, 71,150,101,231,235,157, 52,149, 11,148, 32, 5,151, 50, 34,104, 60,211,103,244, 3, 58, 55, 32, -122,157,190,149,176, 25,173, 20, 85, 89,227,149,180, 92,194,210,111, 65,169, 95, 76,142, 34,161, 95,102,113,140,115, 1, 79,160, -119,131, 78,196, 73,252,114,158,138,176,209,246,146, 40, 24,153,152,178,170,208,177, 58, 95,209,152,164, 40,190,221,182,173,140, - 42,134,135, 27, 36,209, 70,252,234,226,213,179,157,101,148,102,128,236, 30,182, 38, 9, 23,230, 41,169,209,188,254,198,151,184, -253,210,203,120,229,249,143,255,201,127,202,215,190,254,171,148,213,146,227, 39, 7,252,230, 55,191,193,139, 87, 46,179,145, 9, -178,176,152, 78,185,117,227, 22, 31,254,248,135,252,240,175,191, 67,223,151, 84, 86, 83, 76, 38,152, 44, 39,104,205,233,201,130, -253,163, 3,154,178,162,115,138,241, 40,231,224,240,136,227,211, 35, 78, 23,107, 54, 55, 71,188,251,209,167,252,249, 95,252,127, -252,228,103,143,120,118,184,226,241,254, 9,207,143,150,172, 78, 26, 28, 80,108,206,232, 2, 44,150, 53, 85, 39,149,158, 11,129, -222,194,162, 82, 44, 42, 72,211, 92,254,172,214, 81,183, 1, 92, 43,150,178,122, 65,185, 90,225,109,199,163, 71,251, 52, 85,205, -201,178,103, 99,172,184,245,194,117,210,174,228,210,149,109,148,201,216,220,153,147,109,238,240,244,179, 79,197,127,175, 2, 15, -247, 15, 89, 87, 13,243,217, 38, 59,155,155,108,109, 78,136, 77, 4,206, 49,157,111,208,212, 75,156,237,177,189, 35, 54,209,208, - 41,196,244, 77, 79,215, 54, 64,224,116, 93,211, 27, 3, 38,193,250, 64,211, 91,108,111,137,180, 84,231, 77, 37,201, 74, 26,217, -191, 20,121,113,190,171,233,187,134,200, 8, 91, 32, 40, 56, 79,202,115,144,166, 49,160, 88,174,106,172,137,121,178, 12,124,240, -108,205,199,167,134,143,247, 86,232, 84, 0, 32, 62,136, 16,202, 7, 81, 7,107,109,168,123,207,199,119,239,241,133, 23,111, 66, -156,243,116,119,159,201, 44, 33, 79, 10, 42,103, 41,203, 64,190,177,195,155,175,221, 33,159,108,242,194,139, 47,242,197, 55, 94, -231,238,189,135,244, 77,224,198,173,171,252,246, 55,190,206,100, 99,139, 7, 31, 61,230,187,223,253, 30,219,155, 41, 39,171,150, -163,163, 5, 63,254,119,239,112,247,209,187,236,236,236, 48,219,156, 17, 98, 9,123, 88,175,215,172,170,154,199,123,251,116, 74, -147,142,167, 24, 99, 80,202, 96,155,138,180, 24,225,189, 39,203,114, 80, 26, 81,202, 4,122, 39,227, 62,235,129, 32, 47,146,117, -146, 67, 44, 56, 81, 3, 4,148, 49,210,225, 41,133,137, 98, 12,154,247,119, 43,254,233, 91, 51,110, 94,220,224,241,201,138,253, -221, 99,146,241,152,253,163, 37,167, 71, 37, 47,221,186, 64,232,100,178,181,238, 91,110, 93,152,208,250,192,199,247,247,137, 21, - 60,179,154,184,183,252,207,255,197,215,184,125,113,196,193, 73, 77, 86, 36,252,225,157, 57,255,247, 7, 11,182,166,194,150, 86, - 8, 20,166, 24, 21,164,249,152, 72, 39,172,214,173,120,117,189, 16,226, 22,203, 37, 95,250,194, 27,248, 32,144,152, 85, 89, 82, - 86, 21,157,237,232,173,167,110,106,170, 70,236, 63,113, 60, 80, 25,189,165,170,107,202,170,166,170, 27,170,182,165,170, 27,154, -170, 6, 5,199, 39, 11,185, 36,187,150,253,253, 61,142,143,142, 40,203,146,186,172,216,216,220, 98, 50, 42,136, 83,129,164, 64, -192,232,179,142, 71,212,188,105, 38, 29,149,137, 18,178, 34, 39, 73, 18, 20, 72,110, 66, 31, 8,218, 19,148,248,176, 81, 1,219, -123,182, 54,230,180, 93, 75,211,116,231, 59, 74,217,121,134,193,154, 6,182,111, 8,109, 75,148,102, 76, 70, 99, 1,190,164, 25, -157,179,212,101, 61,172, 1, 44,105,154, 51, 46, 38, 36,137,228, 48,244,189,100,177, 71,113, 76,215, 53,164,137, 4, 50,181, 67, -113,146,166, 49, 77, 45,161, 81,218, 8, 60,230, 28,189,105, 20,202, 24,156,245,180, 77,131, 36, 2,202,202, 70, 84,250,178, 55, -141,226,136,190,237, 73,243, 12,223, 7,116,172, 16,220,172, 38,205,114,226, 40, 65, 34, 52,115,122, 43, 99,237,178,170,144,112, - 18,185,160,116, 36,133, 66,146, 36, 84,101,137,237, 58,154,174, 37,203,114,226,232,204,121, 36,187, 84,231, 68, 68,214,214, 13, -120, 47,207,181,146, 17, 59, 10, 12,160,180, 22, 61,147, 70, 46,208,161, 3,142, 34, 17, 4,162,229, 57,143,227, 68, 68,129,121, - 34,144, 31,163, 41, 70,134, 43,151,174,242,228,241, 46,207, 15,143,184,124,113,155,131,195, 5,179,249, 6,125,215,179, 60, 89, -136,112,108, 80, 98,203, 8, 94,166, 28,145, 14,120,101, 72,148, 96, 83,235, 70, 50,202,139,209,136, 40, 78,134,238, 83, 19,134, -189,179, 13,142,174,109,169,234, 22,107, 97,123,123,131, 0, 44,150, 43,132, 26, 40, 33, 98,139,245, 49,231,192, 23,163, 9, 30, -146, 52, 38,142,164, 99,213, 81, 68,215,183,120,235,134, 14, 93, 52, 93,105,148,208,212, 13, 62,120,178, 36,147, 70, 20,141,210, -114,241, 7, 31,136, 77, 36, 90, 27,206,106, 45, 17, 67,234,160, 9, 90,147,166, 9, 81, 44,118, 55,144, 31,153,172,151,228,189, -203,135,152,238,115,124,186, 18,231,135,132,132, 73,100,234,127,136, 94,206,139,130,186,109, 9,222,203,100, 7,177, 32,234,200, - 96,173,165,170,106,202,213, 90,222,241,197, 66,166,101,145, 0,117,226, 97,157,149, 70, 41, 54,120,166,147, 9, 73, 26, 15, 59, -117,153,196, 56,235,132, 47,160,144,233, 68, 43, 57, 40, 38, 27,143,191,237,189, 23, 47,161, 26, 54, 38, 65, 62,136, 36,138,206, -237, 32,194,222,109, 1, 71,106, 75, 62,250,240,125, 78,151, 21,191,250, 43, 95,227,149,219,215, 8,182,164,200, 18, 62,185,123, -159, 52, 79,200,163,148, 59, 47,223,230,249,238, 99,140,114, 92,120,225, 26,189,239,176,203, 5,247, 63,124,143,163,123,159,144, - 23, 83,230, 47, 92, 99,239,232,128, 69,233,233,186,134,195,131, 35,166,211, 49,137, 86, 28,159,172,169,214, 43,102,147,130,147, -231,187,140,139, 9, 95,250,149, 55,152,109, 77,185,253,202,109,190,250,230, 29, 94,124,225, 6,119,238,188,200,181,235,151,193, -213,100,121,202,237, 23, 47,115,253,250, 38,243,139, 27, 92,186,176,195,151,222,188,197,229, 75, 59,188,252,210, 11,236,236,108, -243,242,203,215,216,220,202,153,110,140, 89,156,118,108,111,109,242,252,104,197,245, 91,115,118,174,205,137, 83,152,140, 34, 10, - 19,243,141,175,255, 50, 95,254,210, 29,110,222,122,129,110,177, 38,119, 37,163, 81, 1,113,198,214,165, 75,148, 39,199,244, 42, -229,201,179,167,120,165,120,118,112,202,170, 44,201,199, 83,166, 27,115, 38,211, 9, 77,213,162,227,136,128, 34, 53,134,106,177, -100,177,172,185,124,245, 10,206, 15,156,238,174,167,174, 75,186,222,178,118,134,178,111,229, 64, 13,103,130, 15,113, 29, 4, 37, -194,154, 52, 79,135,135, 71,128, 21,222,139,127,120,185, 92, 50,202,243,161,242, 51,128, 34,141, 35,210, 36,165,239,100,151,149, -100, 41, 70,105,218,174, 27,198,145,114,200,116,157,149,177, 85,128, 44, 21, 38,119,150, 8,165,203, 5,233, 98,189,142,104,170, -134, 43, 23,182,184,247,217, 83,226,172, 32,164,176,125,233, 50, 87, 47, 93,229,203, 95,249, 34, 87, 46, 93,225,206, 23, 95,231, -248,248,136,173,157, 45,137,225,205, 34,238, 63,120,128,247,158,190,107,121,250,108,151, 63,255,235,191, 98,239,217,231,156,158, -158,242,108,127,159, 31,253,224,135,188,250,234, 75,220,120,241, 10,125,223,179, 88,173,249,244,243,135, 44,155,142,182, 15,152, - 36, 33, 50, 17,222,123,146, 44,149,195,194, 7,178,193, 47,140, 22,207,179, 49, 6, 15,152,200,160,149, 38, 50, 17, 90,201,126, - 54, 73, 18,226, 36, 22,133,247,176,131,147,216, 71,135,242, 78,246, 93,190,167,235, 61, 65, 43,190,124, 61,227,214,213, 77, 22, - 39, 53,167,135, 75,174,238,140,168,215, 53, 63,189,187,199,113,128,173, 89, 70,145,196,212,189,227,194,246,140,215, 95,216,226, -193,163, 35,158, 29,183,172, 78, 86,252,242,155,215,121,243,230, 22,127,242,135,175,243,187, 95,189, 14,206,241,127,252,236, 57, -117,231, 48,177, 68,123,142,139, 20, 99, 12,218, 32,151,179, 15,180,195,250, 43,248,192,227,253, 67,238,188,252,146, 28, 14,214, -210,244, 61, 71, 39, 39,148,101,133,181,142,101, 41, 44,251,166, 23,235,149, 11, 30,235,252,249,129,210,118,130, 17, 93, 46, 86, - 28, 45, 22, 20,163,156,229,106,197,186,170,137,181,166,108, 26,180, 81,244, 77, 75,239, 44,117, 93,129,254, 69,214,181,142, 13, -145,209,114, 9,245, 29,182,235,168,235,150,179,232, 97,188,199,104, 48,169, 30,118,206,144,100, 99,194,176, 67,204,139,140,106, -181,162,110, 42,148,226,252,207, 21,199, 2, 61,209, 42, 34,206, 34, 89,241, 89, 47,233,124,125, 77,215,116,164,163, 17, 70, 27, -153, 64, 69, 17, 89, 38,187, 76,233, 60,173, 60,255,131,192,175,239, 90, 58,235,200, 6,145, 95,219,247,216,174, 35, 27, 73, 14, -184,136,169,212,217,121, 78,154,102, 40, 52,157,149, 11, 71, 13,157,165,115, 3, 78,181,179,100, 69, 14, 90,172, 86,145, 49,180, -182,197, 68,226,207, 6, 17,229,245,189, 40,232,235,106, 77,240, 48, 26,229,228, 69,142,100, 96, 20, 56, 39, 42,237,128, 8, 14, -141,145,209,107, 61,184, 20,198, 67,212,172,247,146,136, 22, 27,161,123, 74,164,115, 71, 8, 18, 73, 42,151,114, 74, 20, 25,218, -170,166,237, 68,137,173,141, 68, 76, 39, 73, 34, 36, 53, 47,118,173,179,164,190,179,164,203, 52, 23, 46, 66,223, 75,104,138, 66, - 49,154,141,185,116,249, 6, 7,123,251,188,245,197, 47,177,251,244, 41, 58, 17,206, 64, 90,164,212, 77,207,100, 60,165,239, 5, - 61,172,180, 70, 17, 49,154, 20,164, 70,208,209,210, 4, 56,108, 47,209,218, 50, 69, 72,136, 35, 72,134,192,155,182,233,104,219, - 30,239, 58,132,195,174, 49, 74, 10,162,114,189,166,235, 90,230,155, 23,105,154, 53, 93, 91,203,115, 94,213,228, 69, 78,185, 94, - 19, 80,231,207,127, 32,144,197, 9, 4, 33,176,165,169,144,221,226, 72,166, 52, 74,203,228,210, 12,151,103, 20,137,157,218,107, -137,251, 62, 35,189,157,187,190, 20,100, 81, 68,211, 52, 2,168,106, 91,218, 86, 32, 71,103, 90, 18,107, 45,113, 28,137,214, 76, - 5, 78, 79, 23,244,157, 36, 82,158,229,222, 39, 73,130, 49,178,223, 78,178,140, 44, 21, 91,165,252, 28,196,243,144,102, 41, 18, -158,102, 68, 7, 16, 15,185, 11, 89,118,158, 76,218,181, 45,113,244, 11,194,107,150,166, 18,146,228, 3, 40,117,142, 8,110, 59, - 89, 83,157,221,205, 73, 28,203, 5, 63,219,222,254,118,146, 74, 69,217,180, 45,117,211,160, 20,148,171, 53,177, 22, 56,129,137, - 12,145, 54, 20,186,230,224,209, 35, 14,246, 78,249,189, 63,252, 22,127,244,187,191, 70,174, 34, 30,124,250, 41,159,191,247, 30, - 71, 75,203,111,254,206,239,178,185, 57,198,250, 22, 21,122,102, 59, 51, 46, 94,152,113,239,147,159,179, 60, 94,177,251,100,143, - 7, 31,127,196,169,213,148,241, 24, 29, 39,120,175, 72,179, 17, 7, 39, 75, 46,236,108,210,215,199,156,156, 28, 17,101, 57, 23, - 47, 93,228,141, 55,238,240,165, 47,190,193,229, 11, 27, 28,236,238,210, 46, 27,158, 63,121,198,163,187,247,233, 7, 78,240,163, -135,187,184,166,231,149,151,111,208,156, 30,242,240,238, 3,170,253, 67,182,178,132, 56, 74,152,111,205,168, 23, 75,138, 60, 38, -143,103,188,118,235, 53,210, 40, 98, 60,202,120,245,181, 87,249,245,175,125, 21,237, 19,158,237,238,226, 77,196,229, 27, 23, 72, -210,152, 59, 47,221, 98,156, 40,182, 55, 82,246, 31, 62, 66,235, 64,165, 21, 35, 20,165, 85, 60, 63, 57,226,244,120,193,231,143, -158,209, 13,123, 23,165, 61,139,147,138,107, 87, 47,208,247, 29,199, 39,199,232, 56, 65, 43, 13, 74,170, 71,219,148,226,225, 93, -173,169,235,154, 16, 2,141, 78, 89,180,210, 97, 57,235, 16,123,207, 74, 14,236,174,149, 96, 21, 6,127,165, 15, 68, 38, 66, 1, -171,213,138,170, 42,169,171,122, 24, 23,118,231, 59, 61,107,197, 75,107,157,103,148,231,178,227,177, 98, 21, 10, 67, 57,154,164, - 9,214,246,228,121, 78,100, 18,186,190,147,209,208,240,235, 38,138,136, 80, 40, 51,140,181, 85, 76,185, 60,226,246,237,107, 92, -220,218, 98, 99,115,131,194, 71, 92,191,180,205,116, 99,147,245,106, 69,112,242,125,237, 62,221,231,253,247,223,231,228,228,136, -182,107,121,242,232, 17,119,239,222,165,108, 26,232, 53,206,203,203,180,183,187, 79,215, 46,200, 70, 9,167,101,197,186,181,172, - 59, 71,148,228,146, 49, 96,164,242, 78, 51, 25,147, 38,145, 16,187,208,144, 68,137, 4, 57,120,143, 66,118,233,222, 73, 69,222, - 54,253, 48,117,144,174,221,123, 79,219,181, 56,103,113,222, 10, 20,164,151,132,179,224,135, 80,162, 97, 23,250,233,222,138,175, -191, 52,101,107,146,241,226,205, 29,156,117,208,119,172,214, 61,139,206,241,238,195, 21,243, 2, 46,110, 77,240,168,115,229,236, -173, 23,183,233,234,134, 77,229,184,122,109,147,182,247,212,173,227,111, 63, 62,229,127,248,171, 93, 78,107,203,104, 99,134, 73, - 18, 78,235,146, 85,221,211,245, 34, 48,202,210,152, 34, 75, 24, 21, 5, 69, 94,144,230, 5, 65, 41, 46,239,108,243,242,141,235, -164,105,202,184,200,152, 78, 38,244,214,243,232,233, 83,246, 14, 14,168,234,154,147,197,138,163,211, 83,161, 63,198,178, 31,175, -135, 14,189,237,122, 14, 79, 78,217,221,127,206,230,108,194,201,106, 69, 93, 53,226,229,174,155,243, 34,208, 57,203,100, 58,165, -110, 26,234,178, 38,138, 68,233, 77,128,141,249, 22, 90, 5,142, 14, 23,244,214, 81,228, 9, 89, 86,208,117, 43,250, 1, 84, 85, - 87,146,236, 85, 20, 35,210, 98, 4,193,163, 6,129, 82, 91,182,152, 36,161, 24, 23,244,182,195, 91,209, 13, 68, 73, 66,176,142, - 36,137,241, 94,128, 48,174, 23,149,119,185, 60,165,170, 42,162, 40, 38,202, 98, 92, 39, 58,145, 98, 52, 18, 70,120,219,210,187, -158, 73, 81, 80,213,237,249, 62,213, 90, 75,145,231, 40, 4,252, 18,199, 67,194,163, 49,231,239,155, 31,126,222,198, 72,252,106, -181, 46,241,125, 47, 43,132,166,195,186,158,174,174,105,215, 21,182,183,116, 77,141,183, 86,236,114, 78,172,108,103, 7,187,144, -205, 18,124, 80,244,193, 19, 37, 9,160,105,234, 10,113, 7, 64,112, 78, 64, 50, 94,194,102,186,174, 99, 52,202, 49, 70,146,194, -178, 92, 46,130, 51,161,151,128,127,100,202, 38, 42,115,185,148, 36, 81, 78,130, 78, 20,210, 69,246, 93, 71, 20, 37,242,117, 18, - 9,186, 73,226, 76, 2,102,148,162,107,197, 85, 96,173, 69,105, 67, 83,201, 5,114,122,114,130,179,150,151,111,191, 66,146,164, -124,252,201, 93, 54,103, 83,234,186,165, 40, 10,214,101,201,246,124,142, 54, 17,189, 21,144, 14, 74, 40,116,202,104,156,147,189, -182, 6,156, 10,248, 94, 38,159, 58, 82,164,153,124, 6, 93, 47,207,159, 48,245, 3, 78, 57,170,117,201,108, 54, 97, 54, 25,179, - 92, 87, 44,151,242, 76,229,121,198,179,221,135,132, 32,236,147,182,149,196,188, 52, 73, 40,171,146,128,240,248,125, 16, 76,113, -211, 86, 8,178, 88,166,115, 74, 43,154,225, 78,112, 94, 18,247, 92,144,104, 96,215, 91, 76,146,160,181, 56,135,140, 17, 17,154, -115,142, 56, 77,208,145,156,137, 73, 28, 83, 53,146, 0,121, 22, 37,222, 91,153,154, 57,231, 68,197,111, 45,109,219, 75,119,236, - 7,167, 68, 8,128,196,132,103,169, 0,146,210, 76,114,232,147, 36, 30, 40,132, 50, 1,207,114, 33,208,157,141,235,179, 84,154, - 20, 23,164,240, 91,151, 37,189, 19, 54, 76, 83, 55,232,200,176, 46, 75,153,128, 4, 48,145, 44, 67,210, 88, 50, 89,140,150, 70, - 70, 43,141, 41,102,179,111,183,125,135,209, 2,168, 16, 9,190,120, 17, 37,154,212,241,210,141,109, 70,122,197,143,126,240, 17, - 93,235,248,147, 63,249, 99,178, 80,178, 62,170, 40,166, 27,252,236,167,111, 51,187,118,131,255,228, 63,255,231,232,196,242,224, -243,123,204, 71, 35,202,227, 67,252,209,115, 62,255,228, 19, 30, 61, 91,147,111, 94,225,147,251, 79, 56, 12, 41,183,238,188,193, - 11, 87,231,188,255,254,199,180, 78,179, 89, 36,244,182, 65,121, 69,213, 42,174, 94,189,206,173,151, 95,165, 72, 13,245, 98,193, -131,251,159,241,103,127,250,175, 56, 93,214,212, 93,224,211,251,247,121,248,108,143,174,135,189,195, 5, 85,181, 70,231, 5,139, -117,197,243,189, 37,214, 69,140,102, 19, 92,215,176, 90,173, 25, 23, 27,220,249,194, 91,236, 92,184,204,175,254,218, 87,185,124, -121,147,117, 89, 51, 73, 51, 86, 39, 11,110,223,184,140,235, 27, 78,142,123,182,230, 59, 40, 45, 7,205, 59, 31,190,205,123,239, -191,203,123,239,126, 66,154, 90,246, 79, 61,149,115,116,222,208,184,136,199,123, 79, 57, 89, 86, 56,219, 19, 23, 25,168,152, 81, -145, 82,100, 25, 89, 20,179, 90, 44, 25,141, 11, 76,108,232,186, 14, 23, 60,121,145, 51,222,152,147, 20, 17, 77, 85,115,186, 88, -144,110,110,177,172, 69, 1,235,188,140,186,206, 84,204,178, 52, 10,244,125, 55,168, 43,219,193,147,236, 41,235,146,196, 68,131, -194,243,236,247,203,142,242,172, 18,141,227, 88,210,232, 66, 32,205, 50,218,186,162,105, 69,152,213,246, 29,237, 48, 54,138,226, - 68, 44, 57,177,112,193,123, 20,192,223,152, 0, 0, 32, 0, 73, 68, 65, 84,235,228,130,111, 90,122, 47,182,155, 56,205, 80, 4, -214, 86,113,178, 92,177, 94,175, 40,208,212, 85, 73,189, 94,114,112,188,228,241,227,199,132,166,229,254,131,135, 44, 23,167,172, - 86, 21,229,106, 77, 93, 86,120,161, 61,112,124,124,200,100,154,114,225,202, 22, 30,197,186,169, 49,197,148,164,152,146,100, 57, - 38,146, 49,175, 82,106,248, 95, 8, 65, 70,229,182,109,104,250,142, 40,142,241, 46, 16,197,134,166,170,164, 4,145, 47, 15, 65, - 58,194,174,235,192, 13,241,159,177,164,123, 57,239,206,126, 11,214, 90, 52,129, 56, 77, 68,153,220,119,231, 88, 83,147,141,121, -190,234,249,253, 87,198,216,160,120,225,133,109, 46, 92,221, 70,121, 71,230, 3,127,248, 91,183,121,243,206,101,130, 7,197,224, -141, 30, 62,167, 91,215, 54,185,250,194, 14, 79,158, 30,177,179, 53,225, 7,247,142,248, 31,255,244, 35,246, 78, 42,166,211, 41, - 90, 15, 42,104,165,101, 90,160, 52,104,197,104, 60, 35,202, 50,106,103,135, 17,177, 36,139,185,224,249,135,255,224,235,204, 70, - 5,121,158,147, 14, 34,171,186,105,248,252,241, 46,167,139, 37,167,235, 37, 71, 39,167, 28,158, 44,132,206, 21, 2, 85,211,178, -174, 74, 78,151, 75,238, 63,126,130, 71, 88,213,199, 39,167,212, 3, 1,171,179, 18, 47,154, 23, 99,166,211, 41,117, 85, 18, 2, - 50,170,244, 94,192, 41,113,224,240,249, 33,214, 65, 89, 55,231, 5,225,133,157, 57,206,138,178,248,228,104, 73, 26, 69, 44, 27, -161,207,101, 89, 70,150,103,180, 85,141, 2,108,215, 12, 29,232,136, 56, 17,145,166, 15,158,241,116,131,174, 23, 75, 80, 90,164, - 36, 90,139,179,163,183, 2, 20,241,129,182, 94, 99,251, 64,146, 38,100,121,142, 30, 58, 35,137,158,108,233,250,158,201,100, 74, - 93, 85,242,249,164, 41,109,219, 98,140,193, 89,203,106,177, 16,231,142,181,148,171, 37,190,237, 40,151, 43, 78,143,159,179,124, -190, 71,181, 88,162,131, 67,227,105, 87, 75,130,109,113, 77,141,175, 43, 92,223,226,235,138,174, 42,161,235,233,170,138,174,174, - 8,109,143, 9, 18,142,211,181, 13,174,109,229,223,107, 91,250,170,166, 92,157,210, 55,141, 80,201,202, 21,101, 89,226,218,150, -182,105,168, 42, 9,191,170,214, 13,171,213,146, 56,138,206,159, 61,107,173,164,188,197,241, 48, 81,144,139,197,246,150,166,237, -206, 59,185, 56, 82,160, 21,113, 20,225, 92, 79,211,244, 12,193,216, 50,249, 65,201,136,120,232,250,147, 36,161,105, 58, 41, 78, - 21, 2,122, 49, 17, 90,123, 60,129,141,209,156, 71, 79,119,153,111, 93,192, 59, 71, 18, 71,232,160, 56, 58, 57,225,194,197, 29, -249,172,123,139, 86, 96, 48,160, 3, 93,235, 81,218, 13,103,148,168,201,227, 56, 98,103,123,147, 81, 49,102, 50, 25, 99,180,193, -246, 34, 22, 11, 33,224,154,118, 56,210, 20,105,158,203, 5,104, 61,117, 83, 49,159,111,209,182,107,214,235, 21,145,142,200,243, - 12,163, 52,101, 89,146,166, 25,177,145,192,175,178, 42, 57,139, 73,141,226,152,186,148,127, 62,155, 94, 26, 99, 48, 90,138, 84, -163,135, 21,178,115, 40, 45,120, 99, 99,212,249,249,120,134,147,174, 43,113, 19, 40, 96, 50, 30, 81, 85, 18,211,237, 7,139,105, -150, 72,138,105, 20, 9,128,173,179,253,160, 61,233,168,234, 90, 32, 59,157,208,228,148, 82, 56,215,203, 26, 72, 49, 80,239,192, -182, 61, 30,232, 59,153, 56,248, 16,206,167, 67, 93, 39, 89, 42,189,237,137, 6,161, 98,221,212, 8,210,218, 16,153,152,166,150, -117, 78,150,231, 36,177,160,157,215,229, 90,126,159,151, 9,152,186,122,251,118,104,172,140, 88, 20,103, 73, 78, 43,169,148,210, -152, 87,111, 78,249,251, 31,190,143,111,225,229, 87,111,242, 75,111,189, 74,181, 56, 38,141,102,188,241,203, 95,225,217,209, 9, -243, 11, 23,120,233,149, 23,233,251,146,221,187,159,147,160,105, 67,203,179,123,239,177,247,248, 25, 46,191,196,198,165,107, 4, - 19, 19,199,138,249, 60,227,239,190,255, 35, 9,129,199,115,253,210,156,131,167, 79,136, 77, 96, 54,154, 97,139, 9,241,100,147, -128,161, 90,158, 82,158, 28,242,244,240, 57,227, 60,227,241,163, 3,162,108,204,116,154,178, 60, 93, 48,205, 19,234, 94, 70,167, - 58, 27, 83, 76,103,108,204, 70,236,108,108,177,119,248, 20,215,195,178,116,236,204, 55, 96,125,128,143, 50, 54, 46,108,178, 56, - 56,165,200, 34,170, 85,137, 11, 10,175, 12,101,219,242,234, 27,175, 65,148, 98, 88,115,239,227, 79,249,232,179,231, 76, 55, 13, -171,165, 88,249, 50, 51, 97,150,197, 92,221,154,113,218,214, 60,123,126, 72,143,161,152,140,104, 26,203,133,249, 5,140,234,232, -234, 6,148, 38,232,132, 52,137,197, 30,227, 45,105, 44,145,160,139, 85,201,120, 82,208,215, 53, 93, 58,198, 7,197,170, 44,113, - 94,118,195, 82, 4,244, 4,103,153,142, 70,104,173,169, 26,241,230,106,165,207,109, 20, 74, 41, 76,164, 25,143,167, 44,151, 75, - 20, 96,162,132, 52,137, 24,138, 87, 66,240,178, 63, 82,138,217,120,138, 50, 10,219,118, 84,109,131, 54,154,209,104, 36,106, 98, - 28, 27,179, 13,233,104, 16,241,135, 68,104, 10, 22, 19,175, 17, 79,177, 40,120,147, 72,212,215,125,215, 8,166,181,107,152,140, -198,120,215,145,105, 77,100, 20, 81,156, 97, 76,196,186,109, 88,173, 78, 49,197, 24,101, 18, 44, 82, 17,163, 4,118, 19, 0,163, -204, 80, 1, 55,104, 35,187, 43,235,197, 34, 18, 28,184, 65,161,155, 38, 9,113, 38, 17,193,206, 89,138, 34,103,185, 92,162, 35, -131, 63, 75, 42,210,145,140,227, 29,195, 45,175,176, 78,166, 15, 90,203, 5,138,119,231, 29, 80,154,167,152, 16, 73, 87, 73,160, -169, 26, 70, 69,142, 86,138,219,115,205,127,255, 31, 93,231, 11,215, 11, 18, 45,227,255, 72, 11,254,213, 58, 15,193,227, 3, 24, - 37,123,225,200,104,196,155, 13,117,239,249,223,223, 62,224,127,251,187,103, 28,156, 44, 80,109, 75, 58,155, 48,157,204,232,186, -142,120,216,217, 73,112,131, 40, 88, 21, 66,199,243, 40,246,246,158, 97,187,158,139, 87,175,242, 95,253,163,111,113,231,230, 77, -202, 86,226, 62, 9,176, 42, 75,234,182,229,254,195,199,172,170,146, 34,205, 40, 70, 5,207, 15, 14,145,136,213,148,166,169, 56, - 93,174, 41,171,154,173,205, 25, 0,207,246, 15, 88,151, 21, 54,136,192,231,224,248,152,166,110,184,112,233, 50,222, 87, 28,236, -159, 50,223,222, 34, 4, 41,242,109, 47,130,159,224,228,135,229, 60, 82,160,102,134,241, 40, 3,107, 89,183,150,190, 21,124,169, - 6,210, 60,149, 21,158, 23,244,103,213, 52,216,222,146,196, 9, 12,123,106,107, 45,121, 49,198,104,205,186, 92,227,157, 5,173, -105,154,138,166, 21,139,142, 70,145, 36, 50, 46, 86, 33, 16,180,193, 97, 72,243,156, 36,207, 24, 21,178,135, 14,214, 99,189, 48, -228,125,219, 17,250,150,214, 5, 34, 45, 22,220,182,151,255,127,105,107,204,201, 90, 10,217, 68, 71,232, 88,139, 64, 82, 9,139, -195,186,142,208, 5,225,179, 35,239, 80,148, 36,242,189, 41, 61,124, 15,138,128, 92, 14, 77, 45,120,233, 60,207, 81,177,236,111, -235,186,230, 12,177, 27, 37,146,213,221, 59, 75,172,196, 87, 45, 35,107,143, 50, 6, 53,236, 73,215,235, 53, 2,155, 1, 21, 20, - 58, 18,161, 93, 54,206, 73,210,152, 52,203,229,242,178, 14,173, 21, 73,172,209, 81, 34,151, 98, 8, 56, 31,164, 19,236,237,240, - 19,240, 16, 36,119, 91, 25, 67,164,164,155, 12,200,239,245, 46, 80,213, 37, 32, 9,114,177,142, 9, 33,226,116,217,178, 57,221, - 64, 71, 48,202, 71, 60,121,250,136,186,106,153,111,205,152,109,204, 57, 62, 57,161, 92,158,162,163,132,190,115,191, 56, 47, 16, -152, 82,154,165,236,108,205, 73,243,140, 60, 21,198,127,185, 90,241,116,239, 25, 77, 45,236,244, 36,210,204,231,219, 92,188,120, -113, 56,167, 60,182,179,228, 89, 76,146,229,252,253, 79,254,134, 44,203,153, 78, 39,120, 15, 33,184, 97, 29,225, 89, 87, 43, 17, -185, 69,194, 76,177,214,201,152,221,136, 74, 93, 10, 78, 6,212,111, 68, 8, 34, 16, 60,107, 90, 69, 28, 41, 98, 74, 59, 76,232, - 84,144,143, 44, 26,166, 36,214,185,193,126, 41,159, 85,154,165,224,160,237,106,214,235,138,174,179,104,141, 20, 5, 78,240,195, -125,223,145,100,177, 88,227,146,152, 60,207, 25,143,198,152,225,130,118,225, 23,118,196,166,237,200,226,148,160, 3,193,203,250, -130, 16, 88, 45,151, 20,227, 49,206, 90,208,208, 53, 98, 45,175,155,154, 60, 31, 17, 25,141,243, 98,209,211,200, 52,195,121,207, -106,181, 36, 4,177, 4,170,107,175,191, 30,244,176,116, 15, 61,196, 70, 49,154,196,140,148,101,239,241, 62, 93, 85,243, 79,254, -241,239,161, 66, 79, 74,202,238,211, 71,204, 54,119,120,225,197,155,132,209,132,203,215,174,208,183,107,142, 15,158,211,173,151, -116, 77,199,120, 54,101,113,184,207,223,252,235,239,176,121,225, 6,215,110,190,128, 67, 17,124,203,209,254, 46, 15,159, 62, 99, - 62,159, 19,108,207,201,201, 41, 69,146,114,235,198,117,174,221,188,197,229,155, 47, 19, 92, 75,189, 60,225,189,159,189,195,222, -243, 35,238,126,242,144, 19,167,152,196,129,108,148,145, 36, 17,243, 89,142, 82, 17,143,246, 79, 73, 66, 67,150, 38, 52, 93, 71, - 80, 49, 38, 54,148,235, 26,128,178,214,140, 38, 16, 25, 25,131,196,113,132,107,107, 66,128,241,120,130, 15, 14,173, 83,217,141, -100, 57,182,235,201,139, 28,223, 91, 76,168, 57, 56, 90, 49,153,111, 48,157,140,153,231, 35, 78, 86,167, 82, 21,245, 29, 7, 71, -199,114,184,198, 25,197,120, 76, 28,197, 36,103,200, 75, 5, 81,156,161, 12, 24, 34,250,186,165,117, 45,106, 80, 92,219,166, 33, - 4,139,203,102,172,187,112, 94,197,142, 71, 99,170,166,101, 60, 42, 48, 74,227,149, 60,162, 89, 34,135, 14,136,157,165,119, 98, -101,106,234,154,141,141, 77,130,117,216, 40,194,123, 71,145,166,216, 65, 12,102,134, 7,183,183,150,200,104,154,186,161, 40, 36, -202, 16,165,168, 43, 25,243, 4, 32, 45,114,240,129, 52, 75, 72,163, 20, 84, 64,155, 4,235, 44, 77,215, 97, 76, 12,202,211,247, -210,149,170, 72, 19,250,128, 54, 34,102, 92,213, 53,190, 19, 15,169, 81,129,196,104,206,178, 1,242, 60,103, 93,213,140, 70, 99, - 18, 35, 89,196, 90,137,224,170,174,219, 97,213,169,134,137, 65, 68, 59, 80,179,100,252, 40, 30, 76,219,117,231,221,123,158,231, -178,143,213,138,190, 23,241,213,104, 52,146, 21, 68,223, 35, 88, 10,206, 95,240,188, 72,209, 58, 62,127,121, 8, 67, 10, 88, 36, - 80,149,166,174,137, 18, 17,134,213,117, 73, 50,136,112, 92,240,116, 77,131,138, 99,110, 76, 13, 47,109,101,204, 71, 9, 47,204, - 98,110,238, 20, 36, 38,160,130,165,106, 61,139,198,146,199, 26,143, 98,217,122, 14,106,120,231,241,154, 15,246, 58,148, 22,146, -214,114,185,132, 32,226, 67,140,193,245,253,249,116, 37,156, 21,105,122,216,145,102, 25, 7,143,158,160,199, 99, 38,163, 49,175, -220,188,206, 63,254,205, 95, 39,137, 13,182,179,180,189,120,102,243, 92,108,167,103, 62, 90,173, 53,123, 7,135,124,240,201,167, - 50,134, 12, 74,198,197, 74, 49,202, 83,154,166, 99, 89,174,233,218,142,186,105,137,162,136,135,123,187, 44, 78,151, 24,109,216, -220,218,160,235, 58,206,224, 38, 93,219,145, 36,146,154, 85,215, 53,202, 59,172,245, 88,219,161,148,240, 14,186, 94,216,227, 0, - 59,179, 24,215,244,144,102,180,206, 81, 87, 61,243,233,152, 40, 75,176,109,199,217, 85,109,180, 34, 77, 98,185,164,173,195,196, - 50,234,111,219, 94,158,117,229, 89,173,106,156,147,175,171, 21,164,121, 6,189,136,219, 34,163,207,187, 45,173, 53, 58,138,240, -193,210, 55, 61,109,215, 19, 25,205,107,175,222, 70, 71,154,201, 36,231,173, 59,183,105, 87, 39,140,211,132,103,207, 23,252,217, -119,126,194, 56,207, 64,105, 48,195,225,220,159,121,241,165, 0, 8, 94,225, 97,248,126, 52,232,232,252,123, 9, 65,114, 5,218, -170,145,233, 65, 20, 13,151,139,161,174, 74,166,211, 41, 61,129,152,132, 16, 58,214,235, 53,206,245, 24, 29,147,196,131, 50,126, - 56,240,219, 97,221,229,177, 24, 21,163,180, 34, 24,136, 80,162,239,232,123, 58, 39, 9,115, 65, 41,146, 44, 99,182, 49,149, 16, -153, 32, 94,235, 0, 76,199, 83,148, 54, 40,173,100,157,224, 29, 58,112, 46,152, 77, 83,209, 73, 68,137,112, 13, 80,162,163,234, -173,197, 53, 29, 42,213,132,160, 89, 29,183,164,105, 6, 65,177,170, 74,146, 36, 97, 99, 99,198,114,185, 26,128, 63, 96,173, 25, -214, 92, 10,135,147,105,160,239,241, 14,180,142, 72,242,132,113, 49, 98,190, 57, 99, 52,158,208, 54, 53,203, 69, 73,239,123,180, -150,116,196, 73, 49, 2,196,175,157,102, 49,182,109,184,242,229,215,233, 85,195,135,255,230, 59,244,182, 30,214, 98, 35, 76, 44, -122,158, 44,203,232,250,158, 40, 74,196,213, 19,155, 33,162,148,243, 29,248,122,189, 6,100,133, 49, 25, 77, 48,145, 62,231, 25, -160, 53,222,122, 66,144,244,205,206, 74,161, 51, 26, 21,148,165,116,235, 81, 20,145,166,153, 76,123,180, 38,201,115, 18, 35,231, - 65,211,118, 28, 31, 30, 10, 87,164,107,207, 59,125, 31,164,227,118,206, 17, 37, 41, 59, 91, 91, 66, 10,212, 26,207, 64,141,115, - 22, 19,157, 1,155, 4,210,150, 37, 57,214,187, 1,168, 3,105, 28, 83,174,215,228, 69,193,114,121, 10, 65,211,116, 13, 1, 89, -191,108,108,108, 12, 83,214,150,190, 21,107,103,154,166,216, 86, 82,243,212,237,175,124, 53,104, 99,232,109, 79,223,116, 92,152, -231, 60,252,228, 30,116,142, 87, 95,186,204,141,107, 87,105,214, 75, 32,225,181, 55,223,160,172, 75,138, 60,131, 40,225,165, 59, - 55,176,173,103,113,178, 96,190, 51,197,150, 13,159,124,250, 25,113,191,226,223,126,231,251,108, 92,122,153,203,151, 47,242,248, -249, 62, 15,238,127,142,111, 79,233, 58,104,173,226,229, 91,215,184,120,105,206,206,252, 50,171,211, 35,166,227,130,199, 39, 43, - 46,143, 99,254,213, 95,189, 77,131,167, 24, 68,136, 27,243, 12,213, 15,202,222, 60,101, 52, 78, 89,157,214,216,206,178, 92, 87, -140,210,152,101,221,177,150,162,134, 36,210, 2, 46, 48, 25,145,150, 7, 88, 17,200, 50,217,195, 86, 85, 69,217,136,186,120, 99, - 99, 74,142,176,141,139, 81,129,201, 82,116, 60,198,105, 77,154,196,156, 30, 60, 27, 70, 87,129, 56,203,176,189, 40,116, 15,247, - 15,201, 39, 57,135,135,107,218, 62,112,245,210, 22, 55,175, 95, 65,105, 56, 62, 60, 97,115,186,193,100,115,202,201,241, 17,235, -229,154,182,174,241,200, 37, 19, 37, 67,186,143, 78,104, 85,204,114,189, 6, 37,118,151,217,108,134, 82,122,168,218,213,240,123, - 35,206,172, 50, 81, 20,201, 65, 82, 11, 81,201, 24,195,120, 60,198,123,135, 69,168, 67,121,122, 54,186, 14,210, 5,122, 47, 59, -114, 47, 97, 22, 66, 50,211,104, 35, 94,217,166,235,241,125, 79,239, 29, 12,191, 86, 20, 99,210, 44, 70,171, 33,193, 41, 40, 92, -240,244,182,195,121, 68, 37, 62, 84,254, 70, 71, 40,131,116, 75, 94,196, 70, 33, 72,100, 98,235, 90, 98, 37,236,122, 81,185,230, -164, 81, 2, 90, 44, 49,224,233, 58,207,104,156, 83,150, 37,193, 6,188,242,232,179,238,200,251,193, 83,142,216, 85,188, 0, 59, -240, 34,180, 50,113, 76,150,202,158,172,239,196, 23,155,164, 41,214,123, 34, 99, 8, 65,170,218,179, 75,175, 44, 75, 8, 65,124, -166, 94,120,219, 74, 41,138,241,152,186,148, 68, 58, 81, 80,247, 68, 70,126, 45, 74, 18,217,201, 57, 71, 22, 15,135, 33, 82,205, - 71,145,120,152,227, 52,193,245, 61, 90,131,138,132, 58,149,166, 25,113, 28, 9, 67,188,151,149, 86,158,139,240, 74, 5, 69,211, - 84,152, 56,197,219, 30,162,136, 40,156,245,184, 10,137,107, 28, 50,209,189,151,112, 22, 99,248,141, 55, 95,227,171,175,191, 10, - 1,186,222,194,176,223,108,218, 14,215,247,180,125,127,126,201,159,156,156,240,236,224,128,166,149,177,228,124, 99,131, 16, 2, -187,251,207,105,218,142,166,235,112,189, 99, 52,202,249,236,201, 19,214,235, 21,193, 7, 38,211, 41,235, 85, 41, 10,119, 43, 96, -142, 52,145, 48,141,195,227, 19,102,147, 41,243,217,152,166, 90,114,186, 88, 18,180, 34, 38,176,110,193,202,153,201,214, 40, 38, -142, 98,124, 28, 97,173,231,248,184,100,115, 62, 69, 7, 75,240,210,133, 10, 39,187,167,152, 76,233,187, 30,123, 38, 94,114, 3, -195,155,128,239, 44, 22, 79,221,180, 72, 33, 32,190,100, 29,201,164, 37, 56,133,210,210,105,186,222, 81,150, 53,193, 57,174, 93, -189,196,215,126,237, 75,124,243, 55,191,206,254,254, 83,142, 15, 15,185,119,247, 46,161,235, 72,243, 20, 21, 37,252,197,247,223, -197,104, 3, 70, 46,111, 25,215,246, 67, 49, 40, 63,123,133, 18,158, 0, 17,113, 36, 57,219,222,202,231,105,173, 39,207, 82,122, -215,147, 36, 25, 38, 74,208,202, 17,208, 52,117, 45,239,140,151,120,217,170,238, 72, 83, 37, 99, 95, 18,156,147, 93,188, 82,138, - 96, 3, 54, 8,198, 20, 32, 74, 19,112,158,172,200,233,186,142,174,173,209, 42,162,110, 4, 88,162,213,217,239, 85, 68, 73,202, -100,107, 78, 94,164,172, 86, 21, 74, 41, 54,166, 27,114,137, 43, 77,223,118,152, 40, 26,196,102,158, 40,138, 57,163,192,233, 97, - 74,128,247, 36,105, 70, 89,174, 40,138,130,170, 44,137,162,136, 55,222,248, 50,222, 26,190,251,189,239,177,177,185, 77, 28,197, -204,198, 19, 14,219, 19,244, 58,224,227,136,182,148,181,151, 67, 38, 84,249, 32, 80,244, 65,236,119, 65,121, 70,249,132,141,141, - 9, 89,150,209,182, 50,121,243,182,195,217,150,124,188,201,149,151, 94,103,114, 41,101,245,224, 25,229, 98,197, 87,254,155,255, -154,233, 44, 99,255,157, 31,115,247,237, 31,113,239,239,127, 66, 20,199,140,139, 49, 81, 26,209,117,150,200, 40,140, 73, 88,173, -215, 4, 5,120, 24, 21, 57,206, 5,234,186, 36, 43, 10,234,245, 10,231,165,185, 25,143,199,164, 73,116, 46,106, 60, 19,193, 37, - 73,194,122,189, 34,141, 19, 44,129,166,109, 24, 23, 99,170,178,164, 24,201, 4, 9,163,193, 43,234,182, 38, 75, 36,249,239,232, -240,144,222, 74,170, 95,148,196,120,231,113,214, 18, 37, 9,117, 85, 97,180,161, 24, 21,204, 55, 54, 7,215,149, 37, 75, 98,206, -184, 7, 33, 4,180,150,201,164,214,230, 23,205, 69,211,208,116, 29,227,129,138,185, 90,172,206,255, 59,117, 93,145, 23, 5, 69, - 81, 80,183, 13, 69, 38,168, 99,217,243,151,140, 70, 35,105, 12,110,190,245,229, 32,180, 89,197,149,173, 12, 86,199,108,111,109, -176,179,181,197,108,180,193,225,254, 30,113,156,114,251,213,215,209,227, 49, 18, 99,152,162,241,236,237,237,226,188, 65, 39,129, -103, 15,158,176,181, 57,227,217,147,135,252,205,223,252, 29, 47, 94,185, 70, 60,201,240, 94,243,195,183,223,163, 35, 48, 74, 20, -243, 34, 98, 84,196,124,235, 15,126, 23,173,197,239,122,120, 90,161,178,148,197,201, 1,247, 62,185,199,238,209,154,217,230, 38, -151, 46,108, 49,202, 19,154,213, 41, 31,221,123, 70,215,122,146, 92, 99, 91,143,247, 96,242,148, 73, 30, 35,202,196, 20,163, 12, -104, 79, 30, 75,126,173, 87,208,181,194,153,118, 4,162, 56, 35,120,203,201, 98, 69,150,101,248,222, 14,228,165, 64, 28, 27,140, - 10,196, 70,145,103, 57, 73, 62, 99,107,123,206,225,242,148, 80, 87, 56,235, 57,126,190, 75, 31,231,172,143,151,108,108,100,204, -119, 46,176,127,184,224,149,151,110,112,245,226, 6,139,163, 35,242, 52,147,253,102,221,115,235,246, 77, 30, 63,124,132,119,208, -183, 13,101,221,145,231, 49,206,122,150, 77,143, 77,199,228,121, 78,215,247,180,117,205,120, 60,197,121,139,243,226,185, 78, 99, - 81,142,158,253,125,246,151, 11, 1,239, 7, 53, 42,162,162,205,139, 2, 19,197,104, 37, 49,183,125, 91, 67,100,100,100,232,145, -228, 50, 21,152,140,198,231, 95,239,204, 58,226,156,165,111, 27, 84,148, 16,130,120,122, 35, 19,147,142,114,162, 65,152,227,156, -167,119, 78, 58,104, 20,249, 40,167,179,194,245,142,149,161,115,158, 36,214,120,111,105, 91, 1, 70, 84,235, 21,222,203,110,238, -236, 5,202,210,116, 88, 43,136, 31, 84,212,192,134, 72, 71, 88,111,207, 31,238,179, 63,175,181, 30, 19, 73, 55,115, 86,160,116, -125, 71, 93, 85,231, 93, 81, 62,146, 76,236,224, 21, 12, 15,185, 82, 34,152,147,181,129,116, 36, 85, 85,201,222, 54,142,137,135, - 29,163, 88,227,132, 50,181, 94,151, 76, 38, 19, 66, 8, 44, 87, 75, 70, 99, 25,223,181, 93,135,216,196, 60,190,149, 78, 56, 77, - 82,188, 10, 67,209,208, 98,162, 88,214, 73, 81, 36,151,123, 28,227,188,165,200,134,100,178,224,168,170, 26, 55,140,237,138,209, - 8, 80,242,153,214, 53,227,241, 24,215, 91, 78, 79,142,153,111,111,159,251,177,171, 97,205,114, 38,154, 74,181,226, 55,222,188, - 35, 62,244, 32, 76,236,222, 59,198, 69, 65, 18, 39, 84, 77, 67, 89,214,104, 45, 98, 66, 17, 63, 74,226, 83, 85, 85, 28, 28,159, -176, 88,151,120, 47, 23,101,100, 36,115,188,172, 91,238, 61,124, 32,187,238, 56, 34,142, 50,156,109,113, 30,250,174,193,122, 71, -232, 44,173,237, 89,174, 42, 54,102, 83,174, 92,220,166,106, 75,154,213,138,178,105, 73, 99, 67,219,180,180,189,162,243,112,105, -163, 32,203, 82, 26,215, 98, 59,207,241,170, 99,190, 57,198,119, 18,142, 17,199, 49, 93,211, 16,143, 70, 48, 76,104,122, 43,157, - 78,232,228, 2, 11, 38,224,156, 68,121, 70,146,109, 1, 72,193,234,172, 32,111,157,115, 98,231, 75, 12, 95,121,237, 5,110,191, -120,137,107, 87,174,240,206, 59,239,113,225,242, 53,110,220,188,206,123,239,252,148,135,159,125,196,133, 75, 87, 49,186, 96,178, - 53,231,238,227, 99, 30, 61,221,163,111,106,210, 52,197,185, 32,239, 11,158,182,119, 36,121, 49, 76, 7, 18,218, 70, 40, 97,125, -239,228, 6, 65,227, 67, 7,206,227, 29,120, 5,113, 44,170,124, 19, 71,196, 74,120, 9,211, 73, 70,211,116,148,101, 41, 34,204, - 72,179, 42, 43,130,212,165,140, 70, 41,125,223, 18,188,161,239, 28, 81,172, 65,129, 66,200,104, 77, 45, 81,183, 73,106, 88, 13, -211,199,255,240, 47,241,162,199,196,121, 1, 70,226, 68,181,137,152,140, 39,116,214, 18,107,201, 44, 7,104, 7,191,115,150,101, - 88,111,113, 93, 15, 58,162,239,196,223, 62, 26,229,172,214, 43,129, 17,229, 18,172,178, 49,217,226,224,168, 97, 93,149,120, 43, - 42,240,113, 81,208,218,142,141,201, 6, 79,247,247,240,206, 99,130,172, 69, 38,147, 2, 31, 2, 85,213,200,214, 43,200, 74, 32, - 77, 18,210, 52, 99, 60, 46,232,186,142,166,170, 88,173, 78,248,159,126,114,159,167,223, 57,194,206,127, 14,135,247,104,154,154, -104,126,147,106,109,217, 41, 42, 54,183,183, 48,179, 49,205,186,100,241,124,143,189, 15, 63,224,243, 31,253,132,102,185,162,235, - 58, 17,253, 53,141, 20,130, 38,198,245, 45, 65, 41,166,211, 41, 74, 41, 22,139,197,112,129,138,101, 77, 41, 5, 30,138, 81,134, -210, 98,105, 60,155,244,165, 89, 74, 83,215,140,198, 99,202,178, 2, 2,197,120, 74, 85, 85,140,178,140,229,106, 45,147, 67,103, - 41,203, 53,189, 21,174,128, 2,108, 8,100,137,172, 14,250,182,147, 49,191, 54,204,183,230, 40,165,104,219,179,201,227, 96, 59, -238,123,242,124, 68, 8,126, 56,155, 33, 30, 2,142, 66,112,148,117,141,193,200,212,216,123, 78, 79, 79,137, 99,129, 2,101,121, - 70,219,137,208, 52,104,121, 33,210, 52, 39,141, 53, 93,219, 99, 54, 46, 94,253,118, 18,167, 76,138,140, 75, 89,205,238,222, 33, -229,170,230,248,104, 69,145, 21,108, 93,218, 98,186, 57, 99, 89,119, 92,186, 58,199, 13,150,150,135,247,239,163,162, 9, 81,146, -114,237,202,101,146, 40, 97,239,240,128,123,159,124,130,137, 98,234, 96, 73,162, 20, 19,107, 22,167,251,204,138,156, 91,215,230, - 92,152, 79,248,173,111,252, 38, 42,138,249,183,223,251, 62,127,249,221,159, 99, 66, 7, 6, 22,203,138,202, 6, 46,110, 77,121, -235,173, 87, 56, 57, 62,230,131,143, 31,113,112,184,162, 15,158,209,198, 24, 19,231, 92,185,114,133,203, 87, 47,115, 97, 99, 76, - 49,158,144, 68, 49,249,104,130,142, 53, 77,111, 41, 61,244, 38,197,170, 8,171, 34, 26,239, 25, 77,230,232, 52,195, 36, 41,105, - 49, 6, 19,209, 5, 80, 89,198,120,182, 69, 54,157, 65, 92,112,120,178, 18,191, 99, 95,179, 90, 30,226,186, 14,215,174, 56,122, -126,192,165,141,152,205, 44, 98,123, 62, 99,126,225, 2, 91,179, 13,174, 94,190,128,246,142,216, 57,158,238,239, 51, 29,143,216, -221, 59,198, 36, 17, 71,123,207,241, 78,211,181, 37, 39,139, 21,182,107,137, 3,172,170,150,100,126,137,188, 24, 73, 85, 60,236, -212,162, 68,120,192, 42,104,178, 52,161,119,226,177,245, 67,183,105,173, 48,141,173, 21,240,197,217, 37, 23, 69, 9, 81, 36, 15, -183, 82,138,190, 19, 63,182, 30, 58,194,179,238, 39, 78, 98,116, 16, 12,103,215,183, 56,215,163, 6,129,100,215,247,180,125, 3, - 33,112, 70, 85, 50, 90, 30, 88, 99, 12, 65,169,225,240, 9, 68,145, 40,114,155,170,166,175,101,231,222,212,165,196, 49, 34, 7, -146,109,235,225,114,208,195,161,219,227,157,208,181,228,189,146,125,165,140,204, 56,199, 48,202, 30,223, 2, 1,201, 84, 6,124, - 24,236, 59, 67, 71,110, 69, 49, 26,199, 49,113,146,160,148,172, 18, 20,226,201,109,134,145, 25, 8,172,164,235, 36, 14, 51, 73, -196, 63,219,117,157,192, 27, 34, 65,133,118,125, 79, 93,203,106,160, 25, 14,229, 51, 69,177,132,125,200,215,102,232, 62, 76,100, -168, 59,121, 73,195,255, 79,214,155, 4,107,154,166,231, 89,215, 59,126,195, 63,156, 49,231,204,202,154,171,171,231,110, 73,238, -182,100,183, 44, 89, 29,216, 14,194, 54,182, 33,194, 1, 54, 94, 0, 17, 4, 11, 96,203, 74, 17,176, 96,201, 10, 88, 19, 1, 1, - 94, 56, 48, 54, 50,118, 16,132,101, 9,201, 18, 45,169,187,122,170,234,154, 51,171,114, 62,211,255,255,223,252, 14, 44,158,239, -156, 34,130,172,101,102,101,158,115,254,239,123,223,231,185,159,251,185,238, 24, 65,105,114, 78, 98, 94,156, 38, 20,178, 59, 74, -202,140,195, 36,243, 60,101,240,174, 32,231,136,176,188,133,120,149,147,108, 35,104, 35,197, 76,215,247,242,181, 58,119, 85,116, -104,107, 49,202, 96, 11,143,178,134,231,155, 13, 38, 74,113,115,190,217, 9, 70, 87, 25,172,213,156,111,183,236,102,124,106, 63, -137,225,170, 31,122,206,206, 55,188, 56, 59, 23,163,147,145,245,213, 16,194,188,158, 37,207,219,102,152, 8,202, 48,198,204,110, -183, 19, 34, 88,146, 57,224, 98,177,194,149, 37, 77,211,226, 77,166, 27, 59,140,173,200, 9,170,229, 66, 70, 53,217, 98, 45, 20, - 38, 49, 78,176,233, 39,140,202, 95, 56,141,195,196, 16,193, 59,207, 75,183,143,209, 78,240,177,211,144,175, 70, 41,198, 8, 21, - 15,173,192,234, 89, 18, 31, 73, 42, 18,166, 72,219,141,116,227, 36,107,111, 41,176, 94,120,156, 51,188,252,210, 29,190,255,235, -127,142,111,126,251, 91, 24, 95,147, 72, 40,227, 8, 57,113,239,222, 43,100, 21,185,247,202, 93,142,174,221,225,155,223,249, 14, -229, 98,193,209,245, 61,126,254,254,199,156,156,237,132, 95,144, 5,120,210,181, 61,218, 9,151, 59, 36, 41,220,114,202,228, 52, -145,194,196, 52, 13,140,161, 35,133,204,174, 27, 48, 42, 51,197, 9, 53,203,185, 26,121,231, 46,205, 79, 49, 68, 10,235,184,132, -159,120, 91,160,141, 34, 5, 73,216, 26,167,132,113,150,213,254, 26,111,229, 29, 5, 69, 76, 89,212,129, 48,161,181,193, 40, 40, - 74,135,177,226,226,175,170,146,152, 38,250, 62,200, 22, 80,223,178,187,216,201, 59, 20,164,224, 80, 74,242, 32,148, 49, 92, 6, -243, 72, 32,140,236,108, 43,160,172,164,193,177,133,195, 25,131, 68,239,202,200,161, 31, 90, 92,161,217,109, 71, 14, 15, 14,232, -250,137,170, 52, 52,109,195,114,177,164,168,106,250,174, 33,102,208, 78, 81, 23, 37,206, 26,198, 32,231,148, 86, 51, 74, 60, 71, -114, 28, 73, 73, 20,194,182,221,112,112,253, 87,248,141, 95,251,183,249,240,135, 79,121,242,238,207,152,204, 25,122,108,113, 94, -243,232,207, 54,244,126,160,127,254,144,184,184, 11, 39,111, 80,222,191,203,209,151,190,198,235,191,250, 43,156, 63,254,140,147, -207, 30,144, 81,212, 85,137,245, 22, 73,218, 43,137,211, 36,227, 16,253, 5, 56,169, 40, 74,140,145,231,107, 24,197,112,156,179, -176, 56,140,150, 36, 71,231, 28, 17, 41, 46,189,251,255, 24, 45, 99,144,237,142,194,145, 67, 36,147, 40,124, 37, 96,175, 73, 20, - 72,121, 95, 11,114, 78,243,179, 44, 42,161, 66, 54,149, 64,140,163, 41,201,168, 83, 95, 54, 29,227, 40, 42,219, 56,209,143, 3, -109,211,208,247, 3, 90,201,246,130, 43, 4, 99, 92, 85, 53,105,154, 8, 97, 98, 26, 3,198,201,182,132,183, 22,231, 60,206, 9, - 78,185,240, 30,245,165, 95,254,243,121,223, 13,156, 61,125,202,151,191,254,117,110,223, 56,102,187, 57,225,173, 47,125,141,186, -244,124,248,238, 79,185,247,250,219, 28, 28,238,113,122,242,130, 97,156,128, 68, 12, 19,245,122,159,221,118, 67,202,176,185,216, -240,226,233, 19,154,118,203,187, 63,251,136,216, 7,118,195,196,235,175,222,227,163, 15, 62,228,218,129,230,181,215,110,115,122, - 62, 48, 69, 69, 24, 2,143,159,158,114,253,246,117, 66,180,168,220,115,122,182,101, 24, 50,123,149,226,116,215,115,222,138,204, -185, 87, 87, 88,171, 57,216, 91, 81, 20,142,179,147, 19,134,190,165, 55, 75, 22,203, 5,235,131,125,250,249, 48, 12, 99, 32,145, -208, 74,179, 94,173,216,181, 45,101, 89,210,117,253, 60,247,150,185,140, 47, 11, 54,155, 45, 48, 95,138, 78, 0, 7,109, 43, 17, -142, 83, 8, 88, 21, 73, 67,143, 75, 19,103,231, 91,194,152, 88,249,204, 75, 47, 93,227,205, 55,223,230,112,127,205,174, 27,249, -236,228,148,216,140,108, 78, 94,224,106, 71, 31, 70, 64,200, 78,253, 40, 7,163,175, 42,154, 77,195,197,182,167, 56,190,142,245, - 5,164, 36,171, 57,195, 56,207,212,229,251, 5, 36, 51,122, 28,209, 70,130,115,100,134, 39, 64,140, 75,217, 61,147,233,154,142, -170,148,212,162,128, 24, 52,198,190,231,242,175,210,250,139,185, 99, 76, 81, 76,105,115,229,154, 66, 36,107,208,104,148, 6, 55, -255, 61,125, 43,107,141, 69, 81,208,117, 45,206, 22, 40, 37,115, 50,109, 37,167,120, 12, 73,140, 83, 57,163,209,210,145,207,251, -223,198,202,236, 58, 78, 19, 67, 47,133,130,119,158,148, 19,133,247,160,100, 77, 78,107, 9,187, 16,148,231,116,117, 16,150,101, - 73, 98, 54,131,104, 43, 42,202, 92,145,123,111,153,166, 52,175, 89, 37,145,178,149,161,170, 10,153,151, 41, 37, 56,201, 52, 7, - 92, 24, 71, 72, 1, 16, 83,214,197,197, 5,146,227, 45,123,173,198, 57,202,178, 38,230, 32, 38, 48,196,180, 19,179, 4,137,116, - 93,135, 54,179,123,216,121,166, 81,226, 34, 77, 86,104,107,216,108, 54, 12, 51, 88,130, 44,242,230,106,185, 34,107,197,246,226, - 66, 62, 3, 99,217,223,223, 67, 41,129,250,108, 47, 54, 72, 38,178, 34,132, 12, 68,170,197, 18,146,128, 43,154,166,101,177, 90, - 97,180,152, 18,245, 60,123,159,198,113, 30, 73, 68,170,194,243,245,123,119,176,198, 8,185, 42, 68, 36, 5, 75, 36,108,165,213, - 23, 93,109,150,153, 97, 74, 9,201,190,206,144, 19,253,208,147,145,127,227,243, 77,139,210,134,205,102,139,183, 18,243,104,204, - 44, 73,167, 68,219,238,164, 64,204,145,194,106, 54,231,167,244,227,200,209,209, 17,133, 47, 89, 44, 74,218,190, 99, 26,122,242, - 36, 74, 76,211,116,140, 10,150,222,179, 94, 47,169,188,134,178, 4,231,249,244,189, 7,252,230, 95,248, 42,175,191,126,151,223, -249, 39,191, 71, 23, 43, 78,119, 23,226, 54,206,114,167, 27, 99, 24,187, 1,140, 98,177,168, 56, 63,223,176,127,176,228,215,190, -243, 45, 94,186,115,147,156, 6,234, 82, 54, 54,110,220,124,133, 23,167, 27,142, 14, 14, 24,134,129,231, 79, 31, 98,157,229,163, - 15, 63, 32, 77, 80,239, 47,185, 56,127,206,147,199,207,152, 66,224,249,233, 5, 95,253,214,203, 36,231, 57,121,220,241,147, 31, - 61, 96,189,191,162,172, 42,138, 66,214,219,166,105, 96, 74,145, 48, 4, 84,202,248,170, 36,229,128,201,138,102, 55,128,133, 89, - 80,248,255,253,210, 70, 65, 18,191, 65, 81, 57,185, 60,148,161,172, 28,113,140,116,253,128,183, 98,116, 59, 56,216, 35,147, 56, -191,216,114, 9, 51,233,118, 27,188,243, 24,173,176, 69,133, 86,242,174, 27,227,102,232,143, 66, 27, 9,129,106,187,129,190,147, - 47,196, 24, 49,208,165, 44, 51,222,162, 90, 8,151,193, 57,246,246,247,231,179, 0, 66, 24,197, 92, 55,138, 33,107,185, 92, 50, - 77, 2,191,138, 73, 14, 15,165, 69,181, 20,212,180, 38,135,130,253,131, 35, 32, 81, 22,150,135,159,125,198,254,225, 17,235,186, -166, 29,250,121,222, 46, 82,188,172,225, 37,114,152,232,251, 29,195, 56,112,116,243,155,132,246, 83,188,151,142,243,151,126,235, -191,225,237,175,127,159,119, 63,248,151,108,206,127,134,218,255,148, 35, 51,241,202,159,251, 22, 79,158,183, 60,251,209,142,131, -151, 59,186, 41,243,202,237,255,152, 48,108, 80, 86,145,243,115,170,151,158,241,226,135,127,194, 31,254,163,127, 72, 74, 17,141, -152,106, 19,144,131, 4,144,173,246,246,200, 49,211,181, 59, 64,204,104,222, 23, 56, 39,171,147,160,240,222,147,115,102,187,221, - 16, 66, 96,189, 94, 95,153,233, 54,155, 45,190, 40,175, 10,119,173, 36, 4,200, 40, 77,210,138,113,104,105,154,110,158,191,207, - 27, 10, 49, 96,181, 36,182,161, 68, 9,205, 41,227,171, 98, 86, 19,228, 44,206, 57,225, 92, 49,191,175,150,221,230, 28,235, 12, - 93, 55,226,189,101,177, 92, 93,169,141,204,197,126, 74, 34,241,147, 50,166,176,128,168,108, 49,201,179, 37,219, 52, 10,245,253, -223,252,102,254, 87,191,251, 19,222,120,253, 53,254,222,223,251,235,156,159, 60, 99,232, 58, 78, 55,129,189,195, 61,156, 50,188, -253,181,183,249,228,147, 79, 0,201, 0, 94, 47, 61,103, 31,254,148,237, 24,241,135, 55,217,156,157,243,193, 7, 31,208,199,142, -143, 63,120, 66, 63,141,124,251,235, 95,165,139, 19, 58,244,252,225, 31,254,148,122,149, 57,223, 40,190,252,230, 29,142, 14,247, -248,244,211,207, 88, 29, 28,145,177,244,221,150,208,158,115,118,218, 49, 76, 98, 76,113,149,164, 80, 93, 59, 58, 20, 19,147, 53, -228,156,104,218,145,245,241, 53,250, 56, 95, 26,195,136,213,138,106,177, 36,197,200,249, 70, 92,128,133,117,248,170, 18,137, 47, -140,108,206, 55,164, 36, 6,165,122,177, 32,165, 60, 83,124,150, 92,174, 40,104,173,217,109, 46,168, 22, 11,249,240,230,234, 54, - 76,137,212, 93, 16,167,129,105,183, 97,127,111,205,221,187, 47,177, 95,123,180, 77, 84,149,227,249,217,150,166,237,161,221,241, -217,211, 23, 44, 15,174,179,109, 27,152, 50,170,176, 88,144, 48,138,227, 91,104, 95,224,172, 37, 71,176, 86,179,219, 53,148, 85, - 33, 43, 60, 74,205, 21,242,192, 98,185,100,236,133, 33, 92, 23, 98,144,209, 86,220,210,228, 76,219,181, 40, 12, 85,225, 1, 4, -221,235,156,152,110,114, 38,146,208,232,171,139, 93,246,113,197,145,171,149,146,181, 55,239, 25,123,217,157,117,133, 1,109,152, -134,158,190, 31,112, 70,228, 80, 99, 20,202, 56,100,205,197,131,146,148, 40,165,212,149, 84,152, 17,147, 87, 66,188, 1, 90,201, -108, 90,118, 74,165, 43,191,220,229, 76,211,116, 53,143, 86, 90,240,195, 41, 8,185, 42,199, 76, 89,200,197, 63, 76, 35, 99,215, -161,180,102, 49, 31, 58,174, 16,120, 68,206,153, 97,234, 9,253, 72, 72, 34,117,173, 86, 43,198, 97, 64,219,153,171,140,116, 27, - 93,211,200, 8, 38, 37,114, 8,146, 55,157, 51,109,223,179, 94, 46,137, 73,186, 94,157, 52, 69, 85,176,217,110,209,214,162,114, - 98,177, 88,194,188, 2,179,221,236,200, 73,230,145, 86, 25, 92,225,100, 77, 46, 68,118,205, 22,131, 84,231,171,245,106, 94, 11, -149, 61,248,189,189,125,218,182, 67, 25,195,162, 46,201, 25, 98, 12,116,157,200,169, 26, 77, 72,129,213,106,193, 56, 74,113, 52, -142, 35,218, 40,250, 94, 94,212, 75,230,128,179,150,140,196, 68, 22, 86,243,230,157, 91, 28, 44,197,108,148,230, 74, 46,134, 73, - 40,122,200,229,168,103,213, 34,101,249,189,148,101,132, 67, 78,180,253,200,147,166,231,124,179,157, 99, 76, 27,170,170,102, 24, -122, 66, 24,209,218,225, 10,131, 74, 82,144,200, 95, 37, 42,202,217,147, 71,104,171,133, 25,144, 97,189,191, 71,219,237, 40,177, -224, 44,121, 24, 24,115,224, 98,211,114,243,104,159,213,193, 30, 54, 13,124,231,144,110, 71, 0, 0, 32, 0, 73, 68, 65, 84,245, - 59, 95,229,143,255,236, 29,126,254,163, 39,188,118,111,193, 66, 5,254,220,215,126,137,227,187, 95,226,209,197,134, 15, 63,249, - 88,246,154,137,220,185,113,196,195,207,158,179,237, 6,110, 94, 59,228, 59,223,250, 10, 7,135, 7, 36,173, 81, 90,100,121,140, -166,107, 51,171,178, 64,171,132, 54,137,139,205, 25,195,208,240,222,207,127,206,241,173,155, 24,111,120,240,193, 7, 60,127,252, -132,107,135,215, 89,237, 95,227,254,151, 95,163,233, 79, 24,119,137,127,249,187, 63,100,187, 29, 81,214,208,119, 13,144, 56,191, -144,121,241,229, 47,173,193, 98,153,144,176,143,170,246,148,117,205,106, 89,163,141,162,217,236,136, 65,118,165,141, 83,160, 53, - 85,225,137, 25,200, 2, 79,105,155,134,182, 21,196,246,209,254, 30, 1,136, 99,162, 92, 8,159,189,105, 91,172, 51,180,219, 6, -155, 65,103,136,100,178,146,162, 44,142,226,191, 48,206,201, 56, 40, 8,247, 63,166, 68,152, 34,211, 20,241, 78,140,150, 25, 69, -140, 3,100,217,191, 94,237,239,227, 75, 49,110, 45, 22, 43, 32,211, 52, 50,139, 77, 36,250,174, 37,133, 68,189, 92, 17,134,158, - 93,219,178, 92, 44,132,172,151, 5,231,187,109, 70,194,168, 24,251,158,132,158,179,228, 21, 85,185,160,176,138,179,237, 6, 89, - 18, 16,111, 72, 14,129,166,223,240,143,159, 61,166,235, 20,159,252, 1,124,218,255, 30, 93,187,165,253,197,117,158, 62,124, 74, -179,251,144,237,217,251,232,245, 41,199, 7, 37,111,254,249,239, 82,149,158,135, 15, 94,112,241,248, 33,109,119,198,151,222,252, -247,137,221, 13,114,238, 72,169,101,211,124,194,237, 47, 7,250, 23, 79,248,163,127,248, 63,145, 81, 76,211, 4, 25,194, 56,162, -157, 16,217,150,203, 37,231,231,231,132, 16,101, 11, 96,190,100,149, 82,179,228,109,112,214, 49,134,137,161,107,196,103,160, 20, -101, 89,178,219,108,201, 72,115,152,231,162,224,236,244,148,105,154,176,222,211,119,210, 48,138,156, 62, 16, 99,194, 88,139, 51, - 5, 85, 93,162,149,128,104,166,161,199, 21, 37,253,208,206,119,205,229, 72, 85, 46,125,239, 61,155,139, 13,227, 56, 92, 81, 17, -181,214, 87,231,195,106,181,194, 24, 81, 71, 19, 98, 82, 14, 73, 8,163,203,197,146,102,183, 37,101,137,108, 30,135, 1,181, 48, - 38,191,241,230,203,252,197,239,126,155,190,221,113,254,236, 25,213,209, 13,190,242, 75,223, 97,185,231, 24,186,150,161,237,136, -227,132, 41, 42,153, 75,182, 59, 30,253,228, 79, 25,205, 62, 57, 71,126,242,222,123, 4, 83,162,172,227, 96,233,105,183, 59,116, -232,185,118,239,144, 15,222,127,128, 53,146,198,133, 6,151, 71, 30, 63,219, 17, 34,100, 29,217,182, 3,133,207,236,182,129,110, -204,236,173, 23, 44,170,130,131,195, 61, 20,138,102,215,201, 5,179, 92,226,170, 10,111, 61,197,124,232,119,109, 39,251,140,222, - 80, 87, 53,195, 40,146,236,165,236,161,181, 44,232,135, 48,178,217,236, 68,158, 70,179, 58,216, 71, 1,219,139,205,124, 80, 25, -246,246,101,213, 39, 76,194, 81, 38,101,140,117, 87, 38, 43,137,141,148,151, 35,143, 45, 46,193,209,178,134, 52,210, 77, 19,125, -219,224,157,102, 10,138,182,105, 89,213, 5,221, 48,226,124,193, 24, 3,231,155,134,195,187,247,169,215,251,164,217, 76,212,247, - 35,198,104,166, 65, 92,143, 83, 28, 65,201, 10, 10,104, 36, 18,114,139, 82,226, 14, 45, 75,161,187, 57,107, 81,198, 48, 52, 29, -190, 42,101, 46,233, 61,125, 63, 96,181,228,247,230,156,105,251,118,118,121,138,132, 8,160,140, 97,189, 88,206,135, 51,120, 95, - 50,166,112,149,144,165,181, 33,199,200,118,187,197, 91, 71, 86, 95,204,162,198,190, 7,163,201, 73,145,115, 68,238, 77,145,158, -197, 36, 39, 52,183,170, 40, 64,137,147, 61,197, 72,211,245, 44,102,211,149,243, 30,235,253,220,197, 15, 76,105,194,233,153, 2, -229, 61,230,234,194, 14,172, 86,245, 21,224, 65, 43, 69, 89, 47, 8,227,132,182, 26,103, 29,214, 9,230,181,109,133, 55,238,156, -163,174,107, 98, 8,108,230,181,204,186, 44, 65, 65, 59,179,202, 67, 72,148,165, 71, 27,195,182,217,206,225, 21,179,153, 50, 25, -166, 73,114,146,235, 69, 45,206,116,173, 33,231,249,101, 21, 36,169,247, 34, 81,182,109, 43,230, 20,184,170,190,201,176,221, 54, - 44,151, 53,155,205, 22,235,140,124,158, 89, 34, 37, 21, 48,165,136,183, 94,230,228, 70, 46,232,102,183, 35, 43, 69, 34, 97,148, -193, 23, 78, 58,246,203,217,121,140,162, 92, 40, 37,110,218, 36, 91, 20,214, 88,110,238,175,120,227,206, 45,156,177, 84,101, 33, - 44,242,113,186, 58,192,174,244,159,156,174,222,141,148, 97,215, 15, 60,222,117, 76, 65,246,126, 85,148,195,102, 28, 7,178,138, -130,141,118,142, 75,104, 79,140,151,251,253, 34,149,231, 20, 73, 99,207,122, 89,113,122,122,202,246,124,195,241,225, 49,203,189, -138, 56, 70,124, 89, 48,244, 61,161,107, 56, 59,189, 96,117,120,192,173,195, 53,237,180,225,214,237,155,108,250, 45,159,124,250, -156,105, 59,176,244,240,230, 43,119,120,245,245,175,241,181,111,126,139,189,227, 91, 20,245, 10, 83, 12,156,158,238,232, 59,137, - 73,109,155,150,186, 42,241,149,101,189, 60,164,223, 54, 12,211,200,201,227,231,196,105,226,225,147, 79, 73,161,229,217,217, 41, -143, 63,254,136,101, 85,163, 77, 73,139,229, 87,191,247, 75,188,243,195,119,184,113,227,136,212, 91,246, 15,214, 60,123,250, 25, -205,121,195,207, 63,121, 72, 31, 3,103,103,195,229,200, 28,208,212,133,101,181,191,224,233,147, 51, 86,123,107, 14, 15,215,242, - 25, 33, 5, 99,179,237,102, 39,190, 39,142, 3, 89,101, 50,154, 28, 36, 78,212,213, 21,206,202,103, 28, 83, 66,197, 68, 34, 65, - 22,233, 61,166,105,246,141, 72, 30,184, 6,180, 45, 80, 38,160,180, 39,197, 1,225,156, 27,198,174,199,105,201, 52, 8, 25, 25, -133, 25, 77,118,115,170, 25,153,148, 35, 67, 59,119,237,214, 48,205, 70,200,156, 34, 83, 18,201,217,152,138,213,122, 77,189,183, -194, 91,233, 84,219,118, 71, 86,153,189,213, 30,153, 44, 80,154, 24, 80,202,176, 88,200, 69, 19, 99, 38,199, 64,215, 70,206,207, - 58,234,197,146,245,222, 1,199,215,175,241,232,209, 35,218, 93, 67,189, 92,177,221, 54, 24, 73,249,165,111, 47,120,227, 27,127, -143,255,236,159,255,215,124,175, 28,248,201, 88,240,127,253,183,207,201,183,255, 53,237,217, 57, 15,126, 0, 93,211, 49, 54, 79, -208,234,156,227,183, 15,185,251,230,171, 84,181,102,106, 26,218,166, 35,244, 61, 71,119,239,112,242,254, 77, 98, 56,166,105, 79, - 56,123,252,135,220,252,230, 33,175,254,242,215,249,240,255,248,199,252,228, 95,252, 14,198, 24,134,113, 68,107, 61,119,227,162, -104, 54, 93,203,216, 14,226, 11,201, 82,236, 23, 51,254, 92,161, 88,174,151, 0,244,157, 48,236,149, 82,132,113,164, 90, 44, 25, -134,129,178, 44,201, 40, 84,202,156,111, 55,244,221, 23, 89, 26,117, 93, 19, 99, 98, 28,134,121,156,103,169,202,133,148,221, 90, -198,158, 57, 70,152,199, 74,105,110, 10,202, 75, 85,180, 23, 42, 96,204,145,205,249, 5, 41,137,218,184, 88, 44,230,145,160,176, -251, 99,148,144,161,190,235,240,222,163,172, 21,197, 81, 73,177,161,148,140,212, 82, 74,168,255,226, 63,255, 7, 57, 54, 3, 79, -159, 63,231,252,244,156,107, 47,221,231,207,255,229,239,131, 30,249,236,227,143, 88, 90,207,197,243,167,168,110, 75,111, 60,166, - 90,241,254,123,239,115,242,236,140, 59, 47,223,231, 98,179,229,255,254,127,254,132,107,135,251,188,249,214, 29, 54, 39, 39, 84, - 42,115,227,238,109,126,252,139, 79, 9,131,229, 87,126,229,151,120,246,232, 1,239,125,240, 46,237,110, 32, 91,197, 48, 69,154, -102,194, 88,135, 82,134,101, 93,139, 91,240,112,159,164, 50, 9, 77, 55, 4,154,166,199, 22, 30,173,161,240, 5,195, 56, 72,229, -148, 51, 99, 63,178,221,109, 88, 46,106,154,174, 99,177, 92,163,114,162, 27, 70, 82,152, 83,171,188, 23, 83,195, 32,177,149,243, -213, 70, 70, 46,191,105, 24,168,170, 5,253,208,125,113,121, 91,195, 24,228,129, 46,189, 39,134, 4, 57,146, 21, 56, 55, 31,198, - 22,226, 16,152,134,134, 56, 77, 28,238, 31, 64,152, 72, 49,202,229,167, 52, 71, 55,111,209,108, 79, 56, 57,191,160, 92, 31,205, -135,233,101, 95, 43,191, 92, 33,152,215,177,239, 73, 6,233, 88,179,250,162,210,139,145,205,118, 75, 81,136,108,212,247,146, 42, - 21,163,160, 31, 75, 95,208,116, 45,222, 11, 21,206, 24, 67, 85,215,192, 44,129,133, 68, 74,145, 24, 19, 77, 35,107, 30,151,157, -251,162,170, 48, 69, 49,119,224,142, 41, 74,220,164,115,142, 93,211, 98,173,158, 31, 28, 9, 47,208, 90, 32, 23,121,254, 41,134, - 41,201,133,231, 20, 58, 27,124,233,209,222,162, 98,102,179, 17,147,156, 84,207,115,247,162, 5,167,184, 90, 46,201, 90, 51,116, - 2, 28,185,124,144,181,150,157,121,249, 30, 53,235,245, 18,148, 28,102, 33, 73,242,213, 48,211,192,180, 82,248,170,160,174,106, - 98,140,132, 48, 18, 70,145,217,173,115,108, 54, 27, 4,247, 41,142, 87,173, 13,235,245, 18,201,128,206,236,154, 29,139,121,255, -127,187,107, 40, 11,139,209,142,156, 18, 89, 9,184, 70, 27,115, 53, 79,207, 49, 98,173, 4,132, 56,107,101, 45,101,126,137,250, - 97,192, 57,161,216,141,227,136, 51,142, 62, 12, 20, 78,204, 65,211, 52,205,135,128,112,171,173, 22, 5,168,237,135,171, 78,193, - 24, 11, 22,134, 78, 8,119, 57,231,249, 80,150,177,196,229,191,149, 1,103, 61,105, 30, 41, 24,109,137, 49,224,173,225,229, 27, -199,236, 45,106, 86,117,141,154,139, 56, 9, 68, 19, 40, 69, 70,130,111,158,157,111,120,177,221, 97,138,146,105, 26,233,123,217, -136,144,100,179, 5,237, 12,159, 41, 10,199, 56,245, 40, 12,222,139,145, 75, 86, 44,101,228,226,156,151, 11,106, 12,120, 27,184, - 56,123,193,110, 19, 57,188,118,136, 10,163,236,208,102,153,235, 14,155, 11, 9, 69, 81,142, 91,199,135,116,161,197, 90, 75,189, -180,152,178,226,253,119, 31,224,146, 28,112,235,253, 26,147, 39,142,143,239,240,214, 27, 95,162, 25, 58,222,124,227,203, 68, 37, -210,114,215,110,249,228,195, 79,200,147,226,250,221, 53,239,253,226,167,188,243,195,119, 41, 10,195,209,237, 99, 62,255,236, 5, -201,214, 92,219, 43, 49, 56,234,250,128,213, 81,197,233,201, 5,143, 30, 61,102, 24, 58, 82,182,140, 65,186,231,203, 88,105,171, - 68,206, 76, 25, 25, 57,105,133,245,102, 54, 18,182,212,101,201,110,215,226,157,199, 23,158,161,159, 8,113,194,106,145,186,167, - 97, 16,214, 66, 78, 56, 47, 10, 85,156, 2,182, 20, 55,187,213, 18,145,219,141, 66,115, 43,173, 56,167,141, 17,178, 88,138, 18, -181,108,141, 92,180,174, 40,152,210, 68, 10,210,149,229,164, 88,148, 5,206, 25,198,126,100,202, 66,180, 11,137, 43,216,208,229, - 28, 95,161, 24,163,168,105,206, 9,138, 84,101, 25,155,134, 28,137, 1, 80,130,240, 53, 78,228,249,178, 44, 56, 56, 62,162,217, - 53,180,109, 75, 85,150,116,189,100, 81,164, 44,251,239, 49,201, 28,190, 40,215,196,209,208, 77, 35,175,189,250, 22,211,208,241, -249,231,159,115,255,254,107, 60,124,244, 8, 16,223, 79, 6,254,194,223,249,239,185,190,247,155,252, 7,255,213,192,103, 91,199, - 31,254, 67,197,147,247,127, 7,142,126,193, 24, 61,213,197, 27,152,210,160,117,143,185,159, 88,215, 6,149, 55,168,126, 36, 12, -163,156,214, 94, 49,140,138,223,255, 31,255, 21,159,254,232,127,103,169,207,248,202, 91,111,114,253,222,171,220,249,238,111,242, - 39,127,240, 7, 60,124,247,103, 24,107,175,124, 32, 83, 16, 68,236, 56,118, 88, 99,217,110,197, 32, 90,184,130,118,236, 33, 39, -234,170,164,170, 23, 88,107, 24,135,158, 48, 74, 0, 18,192,222,222,158, 40,182, 90,146, 75, 99, 8, 20,101, 73,223,246, 92,236, - 46, 40,138, 66, 10,219,196,124, 94,237,145,194, 68, 85, 47,232,102,159,203, 20, 38,124,233,201, 25, 20,210,204, 93,222, 69,245, -106, 41,133,114, 22,131, 49, 41,211,116, 59, 82,202,196, 20,176, 86,200,146,144, 48,218, 18,162,208, 48, 47, 27,205,194, 21,212, -171, 5,228,204,197,102,131,158,207, 62,235,178,225,217,139,231,236, 29, 95,227,229, 47,127,157,123,175,223,199,154,129,231,159, -124,198, 18, 89,220, 31,187,115, 62,255,244,115,146, 93,114,118,254,115, 94,156,181,188,242,218,107,124,242,240, 17,159,124,242, - 17, 38, 12, 20,241,132, 15,126,118, 66,109, 28,185,114,252,228,199, 13,119,110,221,231,165,123, 55,121,246,236, 19,254,232,157, -159, 19, 66,160, 94, 21,108,206, 70,118, 77,100,181,168,240, 78,179, 90,175, 89, 46,150,140, 33,240,252,244,156,100, 10,138,170, - 38, 78, 9,101,197,185,233,125,129,178, 22,155, 34, 77,219,206, 51,193,145,229,106,201,208,117, 44, 22,181, 60,176, 81, 88,234, - 90, 41,234,197, 74,126,146,177, 98,212, 6,231, 10, 2,153,237,102,139,243, 30,103, 29,219, 40,180,158,220, 3, 57, 83, 45, 69, -162,209,122,162, 44,106,148,149,117, 46,136,164, 89,242,143, 97, 66, 43, 43,128,152,224,112,165,167, 9, 19,218,120,148,201,104, - 87,162,140,226,197,110, 75,138, 5,139,195,155, 50, 11,209,146,173, 43,105, 66, 82, 77,251, 66, 98,245,138,178, 34,171, 12, 30, -113,244,134, 72, 63,201,195,165, 81,132, 32,115, 30,145,183,197, 56, 35,159,162,172, 92,133,152, 88, 46, 87,180,205,142, 24, 38, -250,113, 66,229,185, 35,176, 22, 95, 56,134,193,162,173,149, 61,200,166,161,233, 91, 42, 36,246,113, 28,164, 67, 69,137, 65,174, - 46, 75,198,161,199,106, 51,119, 6, 1, 98,152,187,126,193, 20,106,139, 68, 0, 42,197, 52, 31,110, 58, 43,162,130,148, 34, 33, - 76, 56, 39,193, 50, 58,105,150,171, 37,221,208, 51, 78,211,149, 51,187, 31, 6,138, 82,168, 75, 93, 47,152,226,245,106, 69,211, - 52, 76, 83, 96, 24, 58,233,252, 53, 87,149,104,206, 25,227, 28, 68,153, 63, 23, 69,129,117,158,161, 29,177,179,211, 87,152,216, -150, 97,232, 88, 86, 75,218, 78,224, 65, 93,119, 25,124, 34, 78,241, 69,181,160, 42, 74,134,177, 7, 21, 68,218,103,142,112, 5, -140,179, 44,170, 5,109,215,145,145,181,190,174,145, 25,157, 51,134,144, 2,106, 38, 95,101, 45, 74,133,146, 35,141, 41, 70, 24, - 36, 46,181,240, 22, 99, 37, 53,106, 12,146,179,237,180, 38,229, 68, 55, 14,172, 87,146, 2,101, 23,178,238, 50, 12, 3,151, 89, -226,128, 20, 61, 41,205,234, 83,198, 41,135, 4,208,201,165, 25, 82,226,221, 71, 79,201, 83,228,232, 96, 69,233, 61,251,117, 45, - 92,119,165,216, 52, 29, 23, 93, 63, 83,168, 50,222, 88,250,166, 33, 68,217,207, 94,173,150, 80,130, 68,173, 6, 1,249, 36, 73, -177, 10, 25,186,113,144, 85,196,152,200, 89, 93,113,244,187,174, 99, 74,137, 24, 29,202, 45,169, 23, 59, 30, 63,122,130,119,112, -172, 14, 56,186,118, 76,215,246,184,253,125,154,179, 83,134, 20,248,236,217, 11,142, 15,247,152,166,196,131,135,103,184,162,225, - 43,223,124,139,161, 63,227,167,239,124,206,230,201, 14,239, 97, 84, 79,249,217, 47,222,231,100,171,184,113,252,127,210, 15,112, -237,198, 62,214, 5,154,126, 32, 13, 14,245, 30, 60,124,208,241,202,189,138,147,211,142,199, 63, 61,227,206,237,155,124,237,235, - 95,225, 39, 63,255, 17,239,255,226, 49,199,215, 90,134, 15, 70,186,182,167,112, 22,235, 10,150,171, 61, 22, 40,150,235, 5,183, -238,220, 96,234, 54, 52,173, 24, 83, 67,215, 19,201,156,159,119,196, 41,208,134, 40, 77, 68, 55, 65,128, 33, 12,226,248,182,158, - 85, 89, 49,196,137,195,189, 21, 93,223,211,238,182, 48, 94,154, 76,165,248, 52, 74,145,180, 38, 27, 25, 43,150,235, 53,219,139, -115,226, 52, 74,129,158,164,232, 45, 93,137, 54, 50,243, 86,200,142,117, 93, 84,132,105,162,217,117,140, 83,207,233,230,156,210, -150,212,139, 18, 23,193, 22,154, 0,228,172, 36,245,220,123,172,213,178,111,239, 28, 69, 81, 8,191, 35, 36,180,215, 48,105,156, - 50, 20,165, 22, 19,238, 56,155,180, 66,224, 66,105, 78,158,190, 96,185, 94, 49,140, 82,148,174,150,203, 25,156,149,216, 12, 95, -228,165,135,112,138,119, 5, 94, 27, 62,123,248,128,215, 94,123, 13,197, 67, 34, 19,123,203,154,243,237,134, 28, 70,174,191,252, - 93,136, 79,120,244,236,127,229,159,254,119,127,147,183,254,110,166,212,153,174, 81, 12,244, 28, 92,115,220,123,237, 21,234,175, - 12, 88, 94, 48, 13,129,102,151, 81,106, 73,142, 91,242, 56, 49,197,128, 50, 53,241,247,255, 17,187,159,252, 14, 97,151, 88,220, -217,227,201,227, 39,196, 96,216,215,191,207,117,149,249,112,104,177,177, 16,243,235, 48,162,102,142,129,247, 30,107, 61, 7, 86, -204,199, 57,101, 66, 10, 76, 51,161, 47,196,196,254,222, 30,160,100,108,150, 51,100, 33, 79,150,101,121,181, 42, 91, 86, 21, 40, - 25,133,105, 37,155, 91, 90,107,246,246,246,174,112,195,120, 71, 76, 25, 95, 85,104, 32,182,147,140, 72, 98, 68, 88,239,158,104, - 38,166,152,216,156,159, 83,150, 5,198, 20,116,131, 96,192, 87,171, 61,249,240, 83, 98,215, 74,225, 27,166,145,221,188, 5, 19, -179, 52, 82,128,168, 66, 41,209, 53,221,236,219, 90, 96,173,198,124,245,213,155,191,189, 58,216,231,198,221,123,220,126,233, 30, -155,211,231, 60,121,240,128,182,105,193, 40,158, 63,249,140, 31,252,224,199,140,148,244, 40, 98, 84, 68, 50,109,211,242,199, 63, -120,135,243,166,103,237, 34,182,116,188,116,239, 22,174, 94,113,231,206,171,124,235,155, 95,231,211,103,143,249,189, 63,249, 9, -127,250,238,199, 92,191,121, 11,239, 44,187,109,199,114,185,224,232,112,193,193,222,146,101,189,100, 10,129,118, 10, 92,180, 19, -217,127,193,199,157,194,136, 86,134,162, 44,164,155,209,146, 25,108,140,161,219, 9,125, 13, 99,152, 6,113, 29, 99, 20,214,203, -131,236,188, 24,104,166, 48,225,188,124,208,211, 56, 93,145,126, 84,146,131,202, 88, 49,162,145, 97,185,222, 35, 6, 89,147, 26, -198,145,162, 18,147,196, 37,101, 72,205,165,214, 56, 13,232,172,241,133,199,249, 2,109,172, 56, 18,141, 96, 20, 83,146, 85, 37, -231, 69,250, 77, 73,146,237,172,243, 84,133, 48,126,149,145,213,179, 16,163, 96, 91,167,145, 41, 8,239, 58, 6, 49,109,141, 81, - 58,182,164, 50,198, 56,185,200, 21, 84,101,205, 20,165, 10,157,122, 65,116,122, 47,251,228,206, 59, 98,200, 66, 93,115, 30, 95, - 72, 18, 24,113,230,154, 91,203, 24, 70,170,170,102, 26, 70, 50,137,186,170, 49, 86, 2, 4, 52, 90, 12,117,198,224,157,204,238, -156,147,176,136,194, 59,140,182,178, 34, 21, 35,171,229, 10, 82, 66,165,217,213, 62,107,250,146, 74, 52, 81, 47,106, 82, 20,233, -118, 57,227, 34, 37,183,218,147,200,160,196, 8, 50, 12, 51, 83, 90,103, 22,245, 98,158,253,207, 93,170,209, 20, 85,137, 68,166, -202,159, 23,135,180, 65, 91,129,105,104, 45,240, 14,149, 36,244, 37, 14, 35,190, 40,112,198,136,211, 63, 76, 8,250, 86,220,254, -214,185,121, 45, 19,218,174,149,148, 49,231,197, 52,164,196,160,101,189, 56,207,165,251, 22, 87,173,214,154,161, 23, 10,159, 85, -106,222,253,207, 18,250, 1,236,218,158,170,240,104,107,196,123,144,196, 73, 91, 85, 2,245,145,103, 82,130,100, 82,138, 68, 18, -101, 81, 94,249, 27,250,105,152,215, 50,153, 11, 75, 61,127,182,197, 85,183,229,156,195,106, 25, 5,121, 39, 14,237,194,137,209, -211,204,202, 66, 66,209,180, 29,103, 93, 71,200,138,110, 18, 51,213, 37,226,115,140,113, 86, 24,122, 82,140,172,214, 43,198,169, -151,238, 47, 4,214,139, 37, 83, 28,145, 89,255,132,202, 51,111,123, 86,135, 46, 67, 43, 46,255,205, 97, 24,168,202,146,168, 12, -139,245, 62,138,158,162,240, 52, 77,199,217,233, 57,123,203,146,106,177, 7,190, 64,135,128, 51,138,152,193, 24, 77,225,133,197, - 62,245, 81,232, 99, 78, 83,151, 5, 33,106, 86,213, 17,245,222,154,151,238, 30,179,216,187,193,241,205,107,220,189,127,155,163, -235, 55, 88, 45,246, 80,186,224,238,221, 87,120,227,181,151,241,206,211,108, 18,175,190,122,151,172, 50, 31,127,252, 49,231,231, - 98,114,188,255,202,203,252,210,183,191,206,171,175,223,163,168, 11,238,222,185, 75, 85, 74,177, 25, 98, 36,142,153, 7, 15, 63, - 39,135,200,249,197,134,166,147,177, 89,136, 35, 41,102, 96, 86,100,250, 22,107, 12, 33,206,207,107,138,130, 91, 78,137,243,179, -139, 43, 83,235,208,181,160,231, 64,149, 73,246, 60,148, 86,168, 12,227, 52,208,183, 13,113,148,203,133, 36, 84, 57,173, 12, 25, -145,212,141,149,142, 62, 70, 25, 13,214, 11,233,252,246,246, 15,240,222,129,130, 16, 38, 98, 78, 44, 87,178,129,160,141,152, 93, -195, 40,187,210, 70, 27,172, 85,148,197, 28,200,148,226, 60, 74,145,150, 49, 43, 53,191,219,150,148, 37,166,214, 26, 77,225, 45, - 97, 24,136, 83,160,111, 91,250, 77, 75,179,221,176,221, 53,194,165, 0,148, 18, 25, 89,240,165, 10,231, 61,195, 16,185,118,227, - 58,143, 31,127,206,157, 59,119,217,110,183, 12,237, 57, 55, 94,255,117,148,222,162, 72,148,139,175, 82,239, 28,163,130, 39,143, - 30,208,159, 60, 99,161,191,196, 91, 95,255, 14,250,228, 26,187, 23, 43, 56,104, 88,196, 19, 50, 10,173, 50,113, 8,164,121, 12, -166, 46,206,121,243,229,251,156,156, 60,102, 28, 34,207,155,145, 41, 79, 76,198,176,244,150,227,131,154, 20, 21, 89, 9,232, 41, -103,225, 60, 20, 69, 41,231, 40,151, 27, 42, 35,222, 58, 22, 85, 65, 85,120, 74,239,177, 26,241,109,197,137,117, 85,210,244, 35, -150,140,117,197,172,114, 68,180,177,140,109, 75, 81, 8, 23, 2,164, 67,175,235, 57, 93, 77, 73,192, 15,243,121,191,217,136, 50, - 90, 85,178,150,102,220, 76,192,155,228,124, 79,136, 79,161,172, 10,114,144,247,113,138, 19, 85, 89, 93, 41, 14,118, 62,199,141, - 17,204,248,114,177,192,106, 43, 76, 21,163,232, 59, 97,219,151,101, 73,223,203,136,209,252,141,191,242,151,126,219,175,111,240, -250,219,111, 96, 85,228,211, 7,143, 88, 46,214,156,239, 26,212,176,229,207,126,240, 67,138,245, 77,202,194,243,236,197, 11, 78, - 78, 95, 80,151, 21,214, 27, 46,206,159, 82, 21,142,131, 61,207,178, 92,160, 23,123, 88,103, 57,217,158,242,187, 63,120,135,159, -190,247,128,194, 84,236,175, 87,228, 49, 96, 49,220,186,113,107,222,205, 14,140,217,144,203, 10, 83, 47,233, 83, 34,103,131, 47, - 10,186,182,103, 28, 7, 98,150,132,177, 75,211, 64, 10,130, 43, 53,218, 16,114,196, 42,133,214, 32,212, 39, 37,149, 86, 63, 16, - 70,217,199,204,179,195,113,154,194,149, 83, 59,196, 72, 8,145,162,172,168,170, 26,201, 29,118, 34,171, 12, 61, 57, 9, 81, 42, -132,128,117,118, 54, 85, 32,151,115,144, 53,177, 28,133, 36, 53, 14, 35,100,153,227,203,139, 52,231,113,167,132, 47, 10,198, 97, - 32,199, 40,242, 77, 20,232,129, 50,226,176,239,187, 14,175, 13,218, 40, 98, 86, 56,173, 80, 78,214,217,166, 32, 88, 67,133,204, -110,181,182,120, 43,243,227, 75, 72,134,184,176,179, 36,245, 76, 19, 49, 71,226, 24, 80, 89, 93,117,153,164, 68,204,226,116,207, - 89,118,122,115, 74, 88, 51,239,111, 43,197,122,181, 22,217,110,154, 56, 59, 23, 90,222,101, 82,144,208,213, 36,181,104,156, 38, - 10,127,153, 38,166,113,222,207, 7,132, 98,219,182, 36, 96,183,221,208,247,146,231,238,172, 97, 10, 51,210,117, 86, 6,178, 18, -122,149, 72,237,226, 28,111,187, 14,237,164, 80,186,244, 67,164, 40,232, 73, 51,171, 52,164,203,234,116,182,136, 41,249,158,140, -152, 0,208, 40,180, 18,122,157,247,130,141,148, 23,108, 98, 81, 47,153,194,196,122,185, 68,105, 51,203,241, 35,133,247,104, 35, -224,152,182,149,241,133,115,194, 5, 40, 10,249, 62, 99,148,128, 9,111,197,208,215, 13, 18, 93,170,148,194, 59, 49, 54,165, 44, -187,226, 49,103,152,199, 28,211, 36,100, 55, 73,197, 50,244,189, 20,143,144,217,117, 45, 99, 63,161,148,102,156,228, 96,140, 49, -206,197,148, 96, 78,133, 0, 40,251,245, 33,136,106,163,200,146,197, 16, 34, 83, 12,164, 16,100, 71, 58, 69, 65,227,230, 68, 51, -136,156,159, 97,126, 31,144, 11, 40, 38,124,225, 49, 86,248,215, 40,152,166,145,114, 30,211, 8, 48, 72, 16,153,117, 93, 17,131, -116, 37, 83,144,159, 95, 81,120, 41,250,172, 17, 47,128,179,120, 47,217,245,122, 86, 9,134,113,194, 88,195, 16, 38,156, 95,144, - 66,162,170, 52,109,219,243,236,100, 75,123,241, 28, 87, 56,246,143,175, 19,135,142,132,172, 41, 78,195,196,249,105, 71, 89,149, -244, 99,194, 87, 37, 74, 59,180,146, 17, 85, 78,160,181,130,105,160,178,142, 23,143,206,249,240, 23, 79,153, 58,104,182, 35,155, -147, 11, 66,219,241,232,233, 57,123,235, 21,138,196,249,217, 22,235, 11, 22,213,130,131,195,125,114, 63,241,233, 71, 15,121,248, -224,115,114, 12,108,183, 59,158, 63, 59,151,162,188,172, 24,135,134,118,215,112,113,113, 78, 28,132, 90,216,238, 26,156,117, 50, -118,139, 1, 53, 77, 82, 92,149, 82, 40,151,139,133,236,133, 43, 41,246,141, 55, 18, 31, 27, 2, 78, 43,118,187,150,190, 29, 89, -174,151, 2, 58,137,129,178,148,159,183, 87,146, 20,232, 75, 47,208,162, 44, 23, 74, 57,119,119,195, 56, 97,149, 2, 50, 83,202, -116,109, 75,140,145,178,178, 52, 23, 27,170,186,146, 98,106,156, 80,218,202, 92,156, 76,181,218,195, 22,210, 69,166, 44,103, 65, -214,138, 20,147,156,149,206,162, 72,232, 40, 69, 74, 72, 19, 82,176, 4, 98,134, 20,229,185,205, 74,138,202,156,242,188,142, 38, -116,189, 24, 2,121, 10,228, 40, 23,237,120,185,217,227, 97, 24, 36,243,224,252,252,148,107,215,175,211, 53, 23, 40,191,207, 87, -191,251, 31,129,234, 9,195,134, 41,100,114,120,153,237,243,134,103, 79,223, 97,251,226, 67, 94,122,253,223,228,175,254, 3, 40, -191,106, 25, 63, 89,178,249,240, 22,219,229, 6, 63,157,146,141,199,164,192,201,227, 71, 44,142,174,241,248,199,239,176,178, 16, -200,252,218, 47,127,155,151,110, 92, 99,127,125, 8,198, 81,236, 47, 89, 30, 93,103,127,127,143,219, 55,110,242,202,173,107,188, -118,235, 38,215,150, 14,167, 50, 47,221,189,206,241,254,146, 47,191,245, 10,215,214,158, 28, 58,202,202,112,113,113,194, 94,109, - 41, 92,100,243,226, 25,214, 4,118,155, 11, 86,118,192,230,142,238,226, 25,213,184, 99,115,113,206,243,231,207, 41, 77, 98,187, -219, 49,182, 13,199,135, 75, 14,246, 22, 28, 46, 60,125,183,165,242,154,169, 31,208,214, 19,198,137, 41, 68, 20, 2,146,154,198, - 48,251, 45, 2, 85, 85, 99,188,163,240, 51,221,207, 90,198, 40, 13, 69,233, 10,154,174,193,168,153,186, 9, 87,205, 82, 8, 66, -230,148, 81,230,165,249, 89,227,140, 67,207, 77, 80,202, 9,187,190,253, 58,251,215,246, 57, 63, 61,229,221,159,125,132,171, 86, -140, 26, 32,241,179,143,158,112,112,235, 21,250,161,165,139, 3, 79,159,159,144,135,137,103, 47, 54,188,246,234, 61, 20,142,251, -247, 86,220, 58,188,206,163, 39,207,121,252,249, 35, 82, 84,124,244,217, 57,135,135,135,188,118,231,158,200,131, 90,205,213,160, -230,244,252,148,102, 12,140, 9,172, 47,168, 92,164,111,229, 50,213,198,146, 67,146,174,220, 21,180, 77,195,166, 9,212, 44, 40, -230, 11,161, 27, 36, 19,153, 8,182,168,200, 57, 98, 11,100, 94, 57, 12,248, 66, 46, 6,103, 12,125, 63,226, 11,133,178,154, 85, -185,154, 15, 30, 71,152,190,200,189, 53, 70, 14,249, 52,131, 66, 66,152,104,187, 14, 53,255,151, 82, 64,107, 71,225, 61,201,201, - 78,183,115,194,239,109,155, 86,138,147,208,161,181,194,102,203, 24, 71,188, 47, 49, 42,203,177,170, 20, 33, 76,172,214, 75, 50, -179, 33, 10,169,240,134, 56, 81, 20, 11, 22, 94,214,211,242,124,176, 19,198,249,207,204, 39, 70,206, 12,243,140,215, 57, 75, 72, - 19,139,197,138,144, 68, 46,238,199,137,194,137,241,195, 90,131, 47, 11, 82, 76,104, 5, 93, 39,102, 58, 48,216,156, 25, 98, 68, -147, 89, 20, 37,104, 57,228, 83, 8,108, 54, 27,194, 20, 65,101,150,203, 53, 32,115, 26,107,173,204,209,148, 20, 58,253, 40,187, -240, 41, 74,212,107, 6, 22,203, 37,219,205,197, 28,174, 49,178,219,109,229, 18,214,178,151,171,140, 56, 62,199,221,142, 80,120, - 70,107, 69,238,157, 15,143,105,144, 64,161,170,168, 48, 70,138,176, 16, 37,202, 49,140,178, 79,190, 88,214,242,181,140,129,148, - 50,101,237, 81, 73, 76, 93,219, 94,224, 64,139,170, 34, 4,185,240,201, 98,120, 65, 9,122, 23,165,240,206, 49,204, 44,229, 97, - 28, 81, 89, 58,153,126, 24, 57, 59, 61, 99,181, 90,113, 25, 89,153,149,228, 94,119,131, 20, 66,151,169,103,105, 24,232,227,132, -130, 43, 31,195,122,111,239,170,112,138, 49, 82, 22,165,132, 65,140, 61, 93, 43, 88,222, 75,114, 84,105, 44,125,156,115,189,181, - 34, 69, 49,206, 36, 45,238,101, 16,165, 0, 18,147,146,203,126, 10,129, 97, 2,165, 1, 37,159, 69,156, 11,182, 52,102, 57,168, -181,144, 4,251,190, 23,243,167, 49, 56, 99, 80,200,159,157,154, 22, 20,212,139, 90, 46,241,186,154,163, 63, 35, 74,121,188, 23, -110,126,219, 74,112, 70,215,182, 87,144,163, 16,228,103, 16,115, 20,170,159,210, 24,163, 80, 57, 83, 85, 37,117,233,233,250,129, -126,232, 88, 45, 87,104, 37,161, 64,221,110,203,209,177,231,252,236,148,166,203,196, 23, 47, 80,185,195,248, 21, 62,206,161, 47, -203, 18,101, 28,153, 76,123,113, 70,223,122,140,118,244, 93,207,114,165,168,138,130,174,153, 8, 74,211, 79, 18,180,179,183, 94, -208, 77, 61,149,247, 88, 11,219,221,150,117, 93, 49, 14,145,174,151,247,183, 12, 25, 76, 34,119,138,202, 27,148, 50,104,171,104, -183, 27, 49,143,213, 43,129,189,232,192,249,139,115,180,181,188,252,210, 75,236, 54, 27,240, 5,206, 88,214,123,107,218,205,134, - 23, 23, 23, 8,226, 80, 46, 62, 49, 91, 73,129,152,156,172, 97,102,165,209,202, 80, 91, 81,104, 92, 89,243,252,228, 57,165, 47, - 41,235,146, 7,159, 60,162,189,104, 41,235, 82,252, 13, 90,100,249,108,148, 36,171,149, 21,202, 10, 55,190,116,142,110,236, 49, - 58,147, 19,164,217, 72,215,110, 26,146, 18,144, 16,202,176, 90,237,177,107, 55, 68, 38,148,113, 76,125, 79, 81, 85,216,218,194, - 84,207,157, 95, 66,107,132,125, 81,214,236, 6, 37,231,101, 63,160,147,197,228,140,210, 86, 30, 46,101, 73,105,146, 49,145, 83, -164, 32,238,120, 99, 12, 41,107, 49,229, 41, 37, 69,166,210, 88, 50, 99,215, 51,120,199,162, 90,115,113,114,194,106,185,224,103, - 63,122,135, 87,126,249,109,222,254,119,255, 83,190,178,248, 45,202,241,251,252,139,127,254, 59,124,252,139,223,231,211, 15,126, -159, 28, 26,198,237, 67,138,245,155,188,253,230, 93,110,232,129, 50, 79,172,255,122,131,122,176,230,231,255,243,109,206,247, 62, -226,112, 61, 80,151, 37,239,253,248, 39,220,234, 39,238,222,190,203, 31,253,111,255, 11,247,191,242, 6,183,238,223,192,132,142, -227,162,196,215, 75, 40, 60,213,106, 69,172, 39, 52,137,202, 24,116, 72,124,222,238, 88,239,105, 54,155, 11,246,246,246,120,233, -232,144,226,238, 45,190,249,237,175,176, 62,144,153,249,193,205,235, 60,123,246, 12, 66, 98, 28, 58,218,139,142,156, 21,159, 61, -125,202,222,254, 62,247, 94,126,157,211, 23,207, 72,237, 64,123,190,227,230,221,155, 60,127,241, 57,102, 81,240,244,209, 51,134, - 33,114,216, 6, 78, 78,159,114,227,206,130,156, 12, 93, 23,216,126,122,129, 45, 28,161, 75,228,164,200, 65,147,149,150,230, 42, - 75,188,111,176,134,105,144,177,207,106, 85,145,178, 34,117,153, 77,179,101,111,181, 34,165, 68,211, 52, 8,135,194,162, 16, 58, -103,206, 9,137,184,117,224,196,108,109,102,133,208,252,141,191,253,215,126,251,226,233, 83, 30,124,250,132,128,102,239,112, 73, - 97,231, 64,122,224,201,227,207,105,198, 13,239,191,251,144, 97,154,248,198, 55,190,202,225,141, 3,188,201,156,157,110, 40, 11, -195,131,135,159,241,139,207,123, 46,182, 61,202,120,110, 92, 59,162,210,137,105,234, 81,179,180,211,245, 19,187, 49,210, 68, 48, -174,160, 94, 45, 41, 11,201, 61, 30, 71,145,144,173,115, 76,211, 72,214, 10,239,102,167, 57, 16,131,184, 7,229,126,203, 92, 2, -244,149, 74,104,103,209, 90,190, 89, 51, 75,166, 33, 70, 89, 91,210, 51,150, 49, 67,210, 26,239, 68,194,118, 94, 24,223,214,121, -188,243,178,131,236, 11,180, 17, 67,152,144,173, 2, 86, 65, 89, 87,104, 45, 38,138,171,104, 72,113,153, 96,157,196,233,137, 36, -106,209,142, 89, 62, 41,216,237,182, 36, 32,198,137,213,114,201, 52, 75, 43,113, 10,114,233, 40,133, 47, 42,212, 12,187, 80, 64, -211, 73,230,112,140, 73,214,215, 16,137, 64, 41, 49,119,153,249, 82,159,130,112,178,199, 94,246,219, 67,148,249,237, 52, 74,180, - 34, 74,216,213,114,105, 75,231, 56, 6, 1, 46,164, 24, 65,139,243, 54,132,200,230, 66,210,186, 18,204,217,191, 18,142, 16,162, - 24,177, 22,139, 5,133, 43,100,159,220,104,198, 81,192, 47, 33,202,108,109,185, 92,208,204, 72,219,156, 18,203,121, 37,195,120, - 79, 85,214,210, 13,205,210,177,153,127, 86,104,233,244,125, 81, 80, 56, 39,115,171,105, 34,164,217,156,134,124,240,151, 60,236, -170,170,174,128, 12,214, 59, 46,119,222,219,221,142,126, 28, 9, 33,130, 81, 12, 99, 32, 78,163,116, 84,133, 23,243, 99, 22,243, - 8, 74,232, 82, 83,152,208, 74, 19, 82, 4, 37,172,111,235, 12,109,211,210, 52, 13,109,215, 73, 90, 19,224,141, 65,205,238,244, -205,230,130, 48, 78,148,139, 5, 33,136,124, 45, 46,102, 80, 86,147,162,132,223,228,156,169, 23,181,236,246,134,140,247,134,139, -179, 11, 54,231,103,164, 44, 56,206,122,177,160,240,133,208,240,170, 26,133,172,152,121,231, 41, 11, 47, 82,168,179, 98, 78, 52, - 82,168,149, 69,137,183,134,114, 54, 86, 26, 37, 51,125,165, 64,169,140, 74, 80,148,229, 23, 43, 54, 97,206,208,118,194, 14,240, -133, 40, 73,253, 56, 48, 78,113, 6,116,212,120, 35,241,202, 0, 41, 39, 82, 78, 92, 38,122, 25, 5,187,166,101, 10,242,121, 75, - 74, 87,148,223, 51, 10,107,103,114, 99,204,179,178, 36,221,196, 52,142,115,180,164, 99, 82,178, 46,186,172, 45,227, 24, 57, 57, - 27, 24,251, 29,198,120,202,186,160, 90,172,177,165, 67, 33,115,250, 20,165, 72,113,214,144,178,160,120,115, 20,183,190,241, 18, -210, 19, 83, 66,107, 73, 95,219,236, 90,124, 89,210, 77, 35, 10,241,130,148,229, 2,107, 4,216,163,208,148, 69, 73, 54, 10,157, -181, 20, 2, 89, 49, 41,112, 90,163, 84, 66,153,136,154, 6, 54,109,131,113, 37,123,171, 37,198,137, 49, 42,197,192,174,233,136, - 33, 9,190, 53,201,187, 21, 98,128,152,137, 42,146,145,104,106,101,229,235,211,214, 50, 13, 3, 99,211, 50,244,130, 14,174,235, - 18,109, 20, 73, 9, 89,209, 91, 7, 70, 46, 74,131, 64,146,138,162,148, 85, 74, 37,134,220, 16, 2, 99, 43,115,125,239,189,188, - 15, 10,180, 22,114,159,177, 90,176,197,179, 63, 71, 25, 69,142,137, 20, 2,125, 63,208,245, 29,164,136, 74, 10,140,198, 21, 5, -210,171,167,203,154,155,218,151, 20,101, 65,225, 29,101,233,169, 43, 73,255,178, 90,168,139,203, 69, 37,103,165, 49,216, 89, 6, -158, 79, 23,201,199,176,138,118, 23, 41,170,130,245,222, 62,103,167,103,124,249, 43,111,243,189,255,228, 63,100,124,240, 37,126, -245,239, 95,227,251,191, 50,242,215,254,246, 43,132,226, 55,248,218, 55,126,157,226,248, 85,170,229, 91,124,251,251,127,159,251, -255,222, 5, 31,133, 5,207,254,153,101,243, 83,207,240, 76,241,244,243,142,207,223,251, 9,161,236, 88, 93, 63, 68,181, 13, 31, -253,252,231,228,161,229,241, 7, 31,242,157,239,125,151,223,248,203,127,137, 63,254,189, 63,194,105,205,194, 89, 72,129,131,253, - 21, 78,129, 87,138,246,226,132,161, 61, 71,155, 12, 42,145, 98,160,170,197,155,227, 11,207,215,190,242,109, 94,190,255, 58,167, -207, 54,252,179,127,250, 59,164,177,167, 86, 53, 43, 42,108,208,152, 62, 80,216,138,187,183,238,241,252,227, 79,113,195,192,129, - 53,108, 63,255,132,253,202,114,123,127,159,240,108,195,129, 43,216, 47,107,150,139, 5,223,253,206,119,185,127,235, 30,175,190, -250, 50,135,199, 7,124,239,183,190, 75,185, 92,178,168, 44,218, 70,108, 24,176,121, 68,231,200,216,205, 41,124, 36,134, 40, 16, -170,144,210,149, 90, 25, 66, 36, 41, 45,138,160, 54, 20,133, 39,198,132, 47,203,171,119,189,235,122,134,113,148,145,141,179, 3, -113,176,193, 0, 0, 32, 0, 73, 68, 65, 84, 87, 40,103,243,214,203,119,127, 91, 25,207,241,141, 99,172,143,140,231,167,116,159, -127,194,159,252,193,191,230, 7, 63,124,135,231, 23, 29,219, 54,112,116,184,198, 41,197,246,228, 41,139,149,226,253,247, 63,102, -127,191,102,204,158,207,159,183, 28,238,239,113,227,230, 53,246,247,151,140, 83,123,245,128, 55,205, 72,147, 52,197,122,133,175, -106,172,247,114,153, 27,139,181,194, 98,247,222, 51,133,136,164, 11, 65,154,231, 33,202, 24,188,181,140,227, 64, 74, 95,144,206, - 64,102,204, 40,141,213, 10,180, 66,163, 25,131, 72,103,206, 90,114, 2,239, 44,237, 40,156,230,105, 12,179,211, 90,144,146, 41, -102,180, 18,101,215, 24, 67,211, 52,140,227,196, 24, 5, 88,162,181,146, 74, 55, 76,232,156,176, 86,211,117, 45, 93, 63,208, 52, -130, 27, 53,214, 18,131,204,143, 47,209,165,117, 37, 24,196,170, 40,201, 81, 16,167,114, 56,203,225, 38,124,117, 77, 86,153,190, - 31, 17,167,166, 69,187,185, 56,112,238,234,112,246,133,100,238,106, 20, 33,141, 40, 5, 49, 38,198, 48,162, 16,233, 69,228,112, - 35,180, 56, 68,174, 14, 33,147,114,162,217, 53,228, 44,121,203, 57,102, 48,154,186, 20,137,239, 98,179, 97, 24,100, 36,113,233, -250,143, 49,201, 78,164, 51, 87, 70, 66,173, 5,213, 90,213, 37, 57, 43,140,179,212,149, 68, 91, 86, 85, 69,211, 54, 84, 11,201, - 15,174,171, 10,227, 28, 67,223, 11,100,134,204, 24,133,217,175,181, 18,165,196,200,193,171,149, 98, 24,231, 0, 2,173,113,179, -210,114,153,131,172,140,166, 46,229,192, 73, 73,246,208, 67, 16,120, 3, 89,164, 64, 99,133, 8,167,141, 33, 12,129,178,244,132, - 73, 36,170,105,154,176, 78, 46,134,126, 20,247,249, 52, 5,172, 53,178,119,157, 69,158,183,214, 51, 12,189,144,223,130,164,192, -229,148, 8,243,200, 97,106, 59,134, 40,100, 44,109, 53,139,122, 65, 76, 82,152,173, 87,107,140, 54,116,187, 29,101, 93, 32,206, -197,200, 48, 77, 24, 37, 47,226,118,187,187,218, 42,176,222,203, 92,205, 75,215, 31, 83, 68,231,140, 53, 70, 14,116,163,201, 41, - 50,134,137,110, 28, 25,198,158, 24, 51, 49,201,243,103,141, 96, 45,101,168,132,200,191,136,103, 35,165,200,200,156,124,135, 96, - 57,189, 19, 7,118,211,236, 68,181, 48, 10,131, 92,144,101, 85,114,153,192,231,189,103,187,221, 50, 78,227,213, 40,198, 23,158, -182, 31,209,206, 80,250,130,194, 21,160, 52,206, 27,166,113,162, 40,196, 36,151, 98,160,172, 75, 66, 24, 49,179, 4,136,146,159, -109, 12,146,116,229,138,138,106,181, 79, 85, 22, 44, 10,195, 20, 18,103,155,150, 97, 28,133,130,101, 11, 41,118,170, 26,227, 60, -198,149, 88,239,104,119, 23,244,187,158, 41, 73,220,112,215, 13,196, 65,242,172, 83,134, 20, 71, 98,210,184,114,193, 56,244, 72, -206,245, 68, 70,224, 83,101, 85,210,182, 59, 10,103, 64, 37,134, 97, 98,111,127,133, 45, 10,246,215,123,236, 31,172,177,222,113, -243,230, 45,234,245, 62,109,211,242,210,173, 59,124,231, 27, 95,230,252,244, 57, 39, 79,158,178,180, 98, 84, 77, 41, 97,212,252, -115, 87, 26,107,156,100,112,207, 99, 11,227, 28,113,146, 45,130,105, 26, 37,154, 21,168, 87, 11, 92, 81, 80, 47,150,104,109,217, - 91,237, 81, 45,151,184,186,162,222, 91, 65, 4, 61, 95,198,205,197,134, 49,200,120, 81,194,125, 36, 27, 61,106,105,164, 67, 78, - 56, 83,176, 88,173, 8,211,192,110,219, 72, 0,201,148, 72, 57, 82,150, 2, 56,185, 12, 6, 34,139, 41,117,236,123,156,145,188, -109, 49, 89, 26,140, 70,222,169, 40,107, 95,133,243,243,255, 39,187,219,202, 24, 28,144,149, 6, 5, 86,107,194, 40, 78,116,239, -101,215, 61,164,136,240,203,225,254,203,111, 16,148,133, 24,248,246,223,250, 62,254,250, 61, 46,222,191,206,247,127,253,144,111, -148,142, 35, 44, 15,238,195, 65,130,235,235, 3,170,131,125, 66, 55,162, 30,236, 81,220,134, 79,222,129,159,191,215,243,232,253, - 39, 60,127,254, 30,211, 48, 82,171, 99,220,177,167, 82, 29,207, 62,250,132,105, 26, 88,183, 59,170,178, 66, 37,203,131,143, 31, -176,218,223,227,230, 43, 47,243,232,197, 9,103, 23, 39,100, 18,103, 79,158,176,217, 94, 64,136,108,206, 79,177,198,176, 92, 46, -176, 69, 37,216,228,194,163,179,152, 36,167,182,227,206,221, 91, 28, 30, 29,114,237,218, 49, 67,232,249,197, 39, 31,144, 21, 44, -247,247, 48, 38, 19,167, 6, 73, 68, 43, 57,186,125,196, 39,103, 47,120,120,114, 74,185,191, 38,146,233,211,196,179,147, 19,250, -177,231,248,232,136,235,235,125,250,243,134,251, 55,238,241,198,253,151, 48,113,228,165,251,183,249,206,175,253, 42, 47,189,250, - 50,155,102,135,183,153,167,143, 63,131,126, 36,237, 54,220,185,126, 13,171,102, 67,102,136,216,249,243, 8,113, 34,228,140, 47, - 10,180,181,178,105, 17, 35, 33, 73,110,123, 86,208,119, 61, 67,223, 51,142,178, 34,109,254,198,223,252,171,191,109, 82,203,238, -201, 99, 62,248,211, 63,230,221,119,126,204,159,254,248, 67, 46,198,204,179,109,203,170, 46,249,210,151,238,192,212,114,180, 48, -188,246,246,107,124,250,217, 11,186, 62,241,225,195, 11,148, 22,102,122, 81, 9,235,122, 28, 6,226,152,136, 65, 49, 98, 25,180, - 97,185, 90,163,141,204, 62,141,177,116, 77, 71,215,183, 24,235,228, 64,138, 9,157,213, 60,147,118, 48,207,129, 98,152, 31, 50, - 95, 96,140, 2,165, 69, 74, 82,242,118,101, 34,211, 24,209,136,129,170, 27,123, 57,152,146,194,186,185,227, 67, 1,114,201,213, -101, 77,136, 95,172,147, 13, 97,158, 33,229, 44,107, 66, 49, 50,141,129,148, 19,211,216,203, 33,172, 20,222,201,218,209, 48, 13, -244, 93, 47,221, 73,146,189,108, 41, 6,102, 60,168, 18, 35, 95, 74,113,102,147, 79,104, 5,109, 47,115,105, 73,252, 81,196,105, - 66, 41,139, 47, 60, 73,101,198, 65,176,168,205, 56, 8,177, 47, 65,154, 15,251,156,179,204, 84, 98, 70, 43, 43, 47, 82,134,148, - 18,222, 22,178,250, 96, 44, 49,139,116, 43,178,178,188,176, 83,148,117, 40,231,156,228,239, 90, 33, 30,109,182,219,171, 89, 78, - 93,215, 44, 22, 11,202,178,164,174, 75, 98,146, 78, 34,205,151,241, 48,140,196, 44,204,119,227,196,156, 53,116, 61, 33,139, 75, -122,189,150,139, 77,107, 61,147,203,164,179,142, 41,205,127,151, 99, 26,229,107,115,206,145, 64,208,136, 93,135, 47,132,181,108, -181, 66, 25,195, 52, 6,150,235, 53,222, 9,182,209, 88, 73,107, 19,188,107,100, 81,151, 24, 37,236,229, 75, 23,168,202, 50,202, -112, 86,208,150,162, 76, 76, 44, 74,249,179, 67,136,144, 35,198,200,158, 57,200, 60, 92,105,197, 20, 34, 85, 89,204,115,107,217, -249,212, 90, 46, 79,101,228,123, 42, 86, 75,150, 85, 77, 89, 87,212,165,204,200,235,170,198,151, 2, 16,210, 90, 48,158,133, 47, -229,123, 47, 43,188, 51,244,195, 72, 81,120, 66, 24, 89, 45, 87,172, 86,107, 22,203,138,186, 40, 9,147,252,121,103, 29,137,204, - 20, 5, 38,145, 51,156,158,158,179, 59,191,160,219, 53,194,136,232,251, 43,201, 91, 27, 49, 42, 93,166, 65, 41,102,229, 42,201, -207, 34,130,152,247,208,160,196,204,122,249,123, 33,200,187,217,117, 61, 33, 10,214,210, 90, 59,143, 87,132, 70, 87,150, 37, 85, - 85, 80, 20, 2, 66, 18,188,105,193, 52,201,124,112, 24, 58,208,178, 73, 97,180,152, 50,157, 47,216,110, 55,212,181,164, 10, 86, -117, 69,225, 61, 97,154, 88,173,150,148,115, 39, 56,197, 9,109, 29,217, 22, 50, 7,118, 26,111,101, 19, 4, 5,198, 56,140, 85, - 92,156,157,146, 82,196, 23, 75,142,111, 92,163, 92,200,170,101, 93, 47,137,105, 96,154, 90, 52, 17, 27, 3,218, 36,156, 17,191, -202,122,111,193,241,209, 33,215,175, 31,162, 83, 36, 13, 29, 71,139,146,213,122,143,187, 55,174,161,141,230, 91,223,248, 18,199, -135,135, 92, 63, 60,102,111,111,197,173,155,119,184,126,237, 22, 7, 7,199,236,175, 86, 52,167,167,188,120,254,140,231, 23, 23, - 20,133, 71, 23, 14, 91, 22, 44, 87, 53,251,135,107,154, 38, 16, 99,194,104,200, 33,146,166,129,105,108, 25,167, 30,166, 1,147, - 19, 33, 6,124,225,217,219, 63,192, 21, 53,213,162,196,218, 98, 94,131,116,100, 20,202, 64,232, 70,242, 20,196, 55, 84,175,168, -150, 21, 89, 69,134,166, 99, 10, 1,227, 28,154, 72, 84, 18, 96,227,202, 2,171, 36, 56,169,107, 90,156, 17,163,168,179,226,198, - 38,137, 81,211, 24, 73, 18,203, 41,145,146, 66, 27,133,210, 86, 58,189, 16, 32,167,121,124,144,241, 86,208,181, 90, 67, 38,145, -148,188,135, 0, 49, 5,178,209, 56, 99, 40, 23, 37, 42, 9,126, 90, 27, 67,206, 64,140,184,162, 16, 79,136,114,115,241, 48, 50, -134,145,190, 54, 76,238,128,125,243, 29,142,126,185,226,245, 42,242, 63,180,138,127,242, 95, 94,112,239,251, 37,203,183,224,241, - 31, 91,118,219, 63,224,201,103,207, 49,143,239,178,255, 87, 50, 11,237,160,223,227,120,249, 10, 95,254,181,175,115,243,206, 91, - 84,247, 3,102, 58,227,193,159,253,144,222, 56, 14, 73,212,198,241,224,193, 99,186,174,227,123,127,241,123,220,191,255, 42,203, -189, 37, 97, 28, 57,121,113, 66,215,180,172,171, 5,245,162,162,233, 58,210,108, 18, 62,220, 59,148,196, 54,101,136, 99,224,201, -103,159, 19, 38,145,245,183,155,142,131,253, 3,234,253, 67,146,205,252, 91,255,206,223,165, 94, 45, 81, 73,241,214,107,111,112, -124,227, 6, 15, 63,249,152,113,154,120,252,252,156, 91,119,239,114,231,229,151,217, 13, 35,183, 94,186,205,205, 59,183,209, 30, -222,249,217,143,169,151, 53, 79, 95, 60,101,187, 61,167,212,158,107,171, 21,219,205, 5,195,118, 75,161, 20, 47,221,190,205,215, -190,242, 54,127,235,239,252, 27, 28,221, 90,115,239,213, 91,156, 53, 47,216,156,183,108, 78,159, 82,229,158, 66, 79, 84, 22,188, - 10,168, 60, 73,241,175,141,108,251,148,158, 24, 34, 86, 95, 42,203,151,136,112,217,127, 55,118,120,250,219, 31,191,251, 33,231, - 39, 79,120,247,163,207,120,239,225, 41,209,122,186,113, 7,211,196, 65, 53,240,252,249, 83,232,123, 72, 35,159, 61, 62,199,153, - 37, 81, 23,188,254,198,109,156,179,220,188,126, 13,231, 28,221,102, 67,215, 14,248,229, 1,245,209, 49, 56,137,107, 28,194,120, -101, 30,114,222, 51, 78, 66,130,107,154,150,174,235,232,154,134,110,232,133,203, 61,141,212, 69,129,247,110,238, 22, 58,180,146, -249,166,209,138,148,132, 61,158,115, 38, 43, 37, 29,130,179,132,152,241,206, 16,115, 38, 79, 17, 91, 90,250,110,184,122,200, 99, - 76, 12,211, 72, 93,150, 2, 64, 49,194,226,190,116, 36, 79, 65,102,183, 89,205, 73, 80,133, 71, 33, 1, 6,245, 98,193, 52,200, -238,116, 63,140,212,181,236, 55, 67, 70,220,142,176, 90,175,200, 58, 81, 23,158,172, 5, 16, 19, 66, 68,105,136, 33, 73,216,197, - 24, 24,167,192, 20,229,239,213, 86, 76, 45,166,240,168, 12, 9,129,122, 72,146,146,124,189, 67, 63,145,179, 68, 27,118,221, 56, - 23, 52,178,183, 28,149, 72,229, 78,203, 76, 62, 38, 8,211,128,153, 37,218,194, 23, 36, 18,117, 41,169,109, 49,140,130,198,205, -153,213,106,129,247,114,128,199, 40, 35, 5, 95, 84, 40, 18, 77, 55, 80,120,203,174,237,240, 86,246,175,235,229,146,169,151,238, -181,172, 75,156, 17, 83, 99,206, 66, 56,146,164, 33,217, 67,191,220, 19,181,214,210,245, 61, 90, 27, 73,242,178, 18,118,130, 18, - 73, 92, 43,133, 8,191,154,161,239,200, 42, 83, 22, 5, 70,207, 10,132, 18, 56,131, 54, 66,194, 75, 49,211,244, 61, 93,215, 82, -184,121,139, 64, 75, 39, 97,172,160,100, 47, 59,240,162, 42,103,149, 98, 98, 24, 37,145, 73, 33, 74, 73, 10,178, 91,190, 94, 44, -103, 89,217, 81, 22, 37, 69, 33, 89,228,213, 98, 65, 85, 85,114, 65, 89,145,175, 81, 74,100,249,185,232,177, 74,137,105,211, 26, -121,158,167,129,186,174,104,154,157,108,108, 20, 82, 56,104, 52,214,137,154, 82,120,249,154, 51,194, 10,239, 71, 57,132,117,134, -182,239, 8, 83,162,235, 91,166, 97,132, 48,128,210,164, 41, 16, 21, 84,179,195,214, 89,115, 85, 60, 93,102, 0,164,148, 49, 40, -148,247,152,153, 37,208,181, 45,218, 24,170, 43, 57, 94, 92,181, 18,126,145,152,226,196,216, 75, 70,250, 48,200,248, 71, 43, 69, -206, 89,156,189, 89,212,146,190,111,165, 16,142, 65, 2,135,130,152, 24,199, 81,120,249, 33, 70,202,170,160,107, 90,138, 74, 2, - 77,156,177, 20,165,176,182,211,252,124, 56,239,102, 87,176,167, 90, 44,169, 86,123, 68,227,233,134,129,205,102,203,208,118, 56, -227, 41, 43, 75,223,245, 24, 37,120,204, 97, 26,217, 54, 59,142,175,221,226,112,181,100,239, 96,143,253,253, 21, 7,135, 43,172, - 43, 57,190,115,139,227,107,199,220,184,113,204,122,111, 77,189,168,177,121, 96,187,221,240,244,217, 41,247,110, 95,227,124,179, -101,156, 34,159, 62,248,156,166,109,121,248,248, 25, 93,219,114, 92, 86,116, 93, 67,211, 53,252,191, 68,189,217,143, 95,103,122, -231,247,121,151,179,254,150, 90, 73, 22, 73, 81,162, 36,106,111,117,203, 45,245, 98,123, 98,140,237,241, 0, 99,231, 38,152,228, - 38,185, 72, 46, 18, 36, 64,242, 71,232, 95, 9,130, 4,152, 36,131,100,110, 28, 4, 72,224, 24, 51,158,113,119,219,189,169,213, -106,146, 90, 40,238,181,215,111, 59,219,187,229,226, 57, 85,173, 27, 53, 68, 54, 89,245,171,115,222,247,121,190,107,223, 15,180, - 94, 49,223,191,206,247,127,240, 9,171,182,163,172, 38, 60,123,121,196,206, 86,133,241,142,205,226, 66,156, 37,117,129,172,186, -134,162,174,152,205,230, 68,165,104, 54, 43,212, 8,211, 95,156, 47, 70,173,128, 60,151,122,124, 31, 76,150,163,128, 44,183,108, -154, 53, 42,137,246, 69, 37,161,164, 78,142,206, 48, 56,206,150, 27, 46, 86, 98, 57, 20, 10, 82, 46,250,162, 44,177, 70,211,172, -214,210, 87, 95, 20, 87,142,140, 60,183,132,232, 9, 73,222,170, 44,183, 40, 45,130, 79, 65,221,204,149, 91, 8,173,136, 73,161, - 71,212, 74, 41,121, 70,173, 22,212, 65, 25, 37,121, 10,101,137,213,226, 20, 32,198,241,185, 22, 11,174, 45, 10,116, 76,120, 10, -178,172, 70,105,195,206,205,187, 20, 59, 57,166,218,163, 12,175, 48,185,184,193,111,190, 80,252,237,255,254,136,221, 59, 7,124, -250,103, 48,207, 6,126,246,247,150,243,147, 83,224,136,124,126,151,131, 79, 44, 59,119, 97,231, 13,152,246,138,235,115,216,250, - 56,225, 31,238,211,237, 86,196,229,183, 60,123,122,200, 43,101,226,183,191,251, 29, 15,239,223,231,131,247,222,198,133,142,159, -255,250, 39, 60,124,248, 37, 27,215,176,189, 61, 71,229,150,166, 89, 99, 51,203,198, 57, 54,125, 15,198, 80,213, 5,161,151,160, -173,163,231,207,121,241,226,144,182,217,240,236,219,199, 60,248,226,115,238,189,126,143,183, 94,191, 71,219, 37,222,126,231, 61, -146,131,161,237,217,219,217,102, 90,151, 24, 21,169,108,198,245,235, 7,244,139, 13,171, 77, 71, 86,100,252,221, 79,254, 22,114, -197,143,254,248,143,120,246,236, 24,165, 3,219,251,219, 84, 59,219, 36,155,113,188,188, 32, 36, 9,144,201,242,138,212, 13,188, -243,246,219,252,246,243,251,152,220,240,246, 27,111,177, 55,221,229, 71,223,255,136,143, 63,252, 62,175,191,254, 22,123,251,251, -148, 91, 53, 47, 78, 22,248,110,131, 29, 54,228,180,236,207, 75,240, 3,209,117, 99, 47,129,102,189, 89, 83, 79, 42,140,209,104, -109, 48,251,243,233,167, 93, 82, 92,180,145,163,179, 5,182,200,177, 25, 84,202, 19,135, 1, 51, 90,213,108, 53,227,246,237, 55, -249,232,195, 15,249,237,163,199, 52,237,134,174,233,137,125,207,209,225, 17,171,197, 26, 51,219, 66,215, 91, 68,173, 40,202, 2, -141, 64,216,222,201,132,107,243, 81, 49,107, 45, 32,182,158,166,235,136,128,177,210,124,165,243,156,174,109,113, 78,194, 70,242, - 60,151,198, 31, 45,219,184, 82,138, 20, 32, 4,143, 50, 22,173, 51,220,200, 83,103,202,192, 16,208, 90, 4, 80, 58,137,114,212, - 38, 32, 37, 73, 87, 11, 16, 72,184, 16,165, 34, 48,122,156, 79,248,224,104,154,134,224, 61, 69, 33, 66, 21, 31, 18,211,170, 30, -183,101, 81,115,107,212, 21, 61,160,149,180,123,205,183,183, 72, 41, 50,203,229,133,104, 55, 18,220, 80,150,149,240,203, 89, 41, -211,114, 89,226, 34,164, 24, 69, 1,105,132, 90,232,250,158,224, 68,217, 28,220, 64,102, 13,131,235,200,181,166,237, 55,164, 32, -161, 8,121,158,200, 50,133,142,129,174,239,137, 94, 54, 46,165, 32,134, 64,215,172, 41,140, 36,210,233, 36,205,107,133,213,227, -231, 31, 88,173, 37, 66,215,104,129,163,226, 8,183,133, 32, 22,140,141,211,178, 33,152,130,164, 53,206, 57, 76, 33,225, 20, 62, - 37, 66,144,203,104, 24,122, 18, 2,251, 40, 37, 13, 68, 49, 4, 73,253, 82, 34, 28,106,154,102, 68, 47, 18, 70, 75,169,132, 53, - 98,235, 1, 72, 17,220,224, 70,238, 23,114,155, 95,169,229, 87,155, 13,174,239,233,135,129,249,124, 46,207,208, 48,144, 84, 68, -169,116,117, 17, 5, 34,109,211,210, 15,210, 64,103,146,162,247, 3,101, 89,179, 89,175,176, 69, 33,150,198, 76, 82,209,126,223, -216, 6,121, 81,140,202,222, 72,112, 1, 31, 60, 38, 55, 87,122, 1,241,160,143,225, 30,222,139, 22, 33,136, 88, 76,236, 50, 99, - 13,110, 16, 29, 64,110, 37, 76, 70, 27, 77, 94, 20,172,155, 53, 42,203, 24, 66,196, 5,113, 67,120,231,197,179,109, 12, 6, 67, -145, 21,130, 52, 88,131, 54,150,245,122, 77,145,231,116, 77, 11, 49,162,178, 76,222,147, 32, 21,165,113,156,196, 93, 76, 20,121, - 38,156,105,138,216,220,224,252, 0, 62, 80,229,162,133,233,122, 17, 25, 53,155, 13,153,201,174,134, 76, 99, 52, 10,121, 38, 44, - 25,218,200, 69,155,231,185, 64,223, 38, 35, 4, 47,241,201, 87,195,174, 97, 90, 85, 56, 47, 14, 5,173, 68,137,159,143,104,134, -247,129,220, 74, 38,185, 66, 49,184, 65, 6,135,193, 17, 92, 32, 47, 75, 25,236, 66, 36, 5,241,236,134, 24, 48,153,150,191, 51, - 47, 8, 86,179, 90,119, 44, 22,107, 72,142, 20, 6,242,172,100,103,255, 26,219,211, 57,171,205, 5, 90, 91, 50,165,168,139, 10, - 91,213,108,109,239,178,179,181,195,189,123,119, 89, 44, 55,212,121,197,214,214,140, 62, 52,152,124,198,102, 8,188,243,193,251, - 28,220,186,197,206,206,117,174,221, 60, 96,182,179, 79, 84,114, 62,157,172, 22, 60,124,242,132,229, 98,205,116, 82,147, 89,205, -199,223,127,143,103, 79, 30,163, 52,188,114,251, 54,123, 7,215,153,207,182,248,230,249, 49, 65, 41,110,190,118,155,152,224,244, -108,133, 79,134,166,105,121,121,120, 74,215,183, 56, 60,139,205, 64,215, 73,202, 92,158,105, 82, 26,216,172,150, 68,231,104, 55, - 11, 66, 63,208,174,215,184,161,195,228, 5, 86,103,132, 36, 81,161,214, 74, 80, 76, 12, 27,182, 39, 53,147,122,194, 16,250, 43, - 79,117,239,122, 92,219,146,188, 36,152,249,206, 97,114,209, 95,248,193,145,155,156,172,148,172,140, 56,210, 54,209,251, 17,171, -148, 37, 36,211, 66,225,168, 56, 90,184, 0,137, 43,213, 98,101, 64,141, 20,131, 56, 84,146,146,116,181,205,102,131, 45, 68, 7, - 3, 74,106,114,209,160, 34, 93,204,152,207,182,152, 86, 51,110,125,231,207,233,187,231,236,239,220,224,229,163,199,124,251,228, -144,195,211,134, 77,251, 25, 83,243, 1,195, 15, 20, 15, 87,150,103,127, 15,171,126,205,214,238,119,120,253,141,154,249, 29, 24, -126, 1,237, 99,208,219,162, 49,153, 56, 17,100, 30,125,177, 5,215,207,121,241,229,231,188,253,254, 59,252,233, 63,249, 17,239, -125,240, 38,215,110,236, 49, 0, 63,252,195, 63,225,205,119, 62,224,224,224, 85,246, 14,110,114,227,230, 45,190,124,246, 45, 71, - 47, 95,208,132,192,175,126,245, 27,206, 23, 23,188,120,249,130,175, 31,127, 75,239,155,241,217, 13,232, 20,240,109,203,245,253, -107,228, 81, 65, 50, 28,189, 56,196, 40,205, 95,255,155,191,230,229,211, 23,188,120,250,132, 39, 79,190,229,249,211,231, 60,127, -241,152,212,119,252,226, 23,159,241,139, 47,126,195,245, 27,215,120,242,228, 5,207,143,142,184,117,227, 26,215,234, 93,142,190, - 61,228,244,197, 41, 58, 25,148,119, 28,190, 56,230,124,117, 65, 63,108,216,218,218, 98,178, 37, 69,104,203,118,195,233,197,154, -123,239,188,195, 7, 31,188, 71,150, 89, 22,235, 83,162,119,220,220,218,227,213,253, 3,222,188,125,139,174,237,121,235,187, 31, -177,179,179,199,124, 50,199,118, 23,204,106,197, 7,111, 92,103,187, 54,108, 23,176, 85, 74,234,103,110, 45,230,214,254,246,167, -222,193,241,241, 9,211, 89,197,214, 86, 69,219,111,120,113, 60,112,227, 90,197,172,154,160, 39,219,232,204,114,186, 56,225,255, -251,135, 95,224,154,158,194,102,116,203, 37, 77,235,136,217, 4, 53,223, 70,103,217,213,196,223,247, 29,121, 46, 37, 24,195,224, - 73, 41,142, 9, 94,134,213,122, 69, 63, 54,210,224,165,103, 90,163,153,204, 38,163,112, 39,199, 24, 73,105, 2,241,100,214, 69, - 41, 7, 76, 38, 74,217,204, 90,134,110, 64, 43,168,170,154,193,121, 12,137,144, 4,174, 50, 70, 68, 68,110,232, 81, 90,163,180, - 68,114, 70,128, 40,151, 74, 76,137, 24,127, 47, 28, 41, 51,131,201, 52,126,240,191, 31, 12, 70,123,219,114,181, 34,184,129, 16, - 36, 55, 92,105, 81, 21,199, 24,153,212, 21, 85, 89, 96,178, 28,130,163, 31, 15, 51, 99, 12,195,248, 2, 38, 18, 62, 38,170,178, - 34, 37, 80,218,224,189,195, 57, 79,150,105,242,178, 70, 41,208, 86,179, 89,175,137, 33,136,247,154, 68,153,215,100,133,197, 24, - 17,207,132, 48,126,150,192, 48,244, 12,131, 84,253,229, 70,227, 98,162, 42, 10,252,232,119, 21,117,190,103, 24, 6, 72,160,180, -166,158,212, 87,222,205,178,172,232, 93, 79,105, 51, 92, 82, 24, 13,214,138, 69, 76, 41,195, 48,116,227,118,166, 8, 97,192,106, -169, 98, 85,252,126,200,210, 74, 68,138, 97,144, 11, 64,143, 62,209,178,172, 36,130, 22,200,199,242,130, 60, 23, 20,198, 24, 67, - 74,226,211, 87, 90,134, 58,173,245, 85,161,142, 26, 17, 22,225,134,115, 41,235,113,129,174, 27, 19,229,140, 40,234,227, 8,241, - 15,221,216,188, 20, 71, 17, 83, 18,238, 88, 54, 84,241,154,102,153,165,172, 10,138, 82,106,122,125, 24,107, 15,147, 12,156, 67, -215, 83,213,210, 69,238,189, 84,219,198, 24,137,163,173, 81,105, 69,145, 23,148, 69,193,166,105,233,218,150, 77,179,166, 61, 95, -208, 71,127,245,107,151,122,139,174,235, 4,162,182, 86,236,119, 41, 1,162, 37, 80, 74,209,245, 45, 40,185, 4,137, 34,254,204, -242,140, 62,120,162,243,168,144, 80,153, 65,249, 32,208,168, 82, 2,253,143,161, 52,101, 89,160, 84, 34,183, 34,252, 28,156, 20, -232,244, 78, 58,193,251, 97,184,122,127,218,145,115, 11, 62,138, 31,185,172,137, 41, 48,155,205,232,251,129,162,172,105,186,158, -161,239,152,205,102,114,180,167, 68,223,245, 76,234, 26,165, 53,253,184,217, 15,195,192,164,174,209, 35,154,162,128,162, 44,176, -163, 15, 55,207,243,171,244,188, 16, 2,190, 31,100, 75, 53,178, 13, 26,107,177, 86,124,209, 74, 9,140, 95, 86, 21, 41, 42,202, -122, 70, 52, 57,109,211,209,187, 13,205,122, 77,210,138, 73, 81,161, 85,100,221,244, 44, 87, 39,172, 87, 29,174,117, 40, 20,126, -136,188,118,231, 14,171,139,115,126,250,243,207,177,100, 60,254,242, 62,117,189, 3,198, 34,233,112,154,204,230,116,157,227,233, -243,231,220,185,125, 29, 16,186,109, 58,171, 88, 47,207, 57,124,121,200,217,233, 57,221,166,227,236, 98,195,151, 15,191,226,155, -135, 95,243,242,249, 9, 81, 25, 76, 86,112,116,116, 66,215,174,217,172, 26,140,150,140, 2,105,255, 50, 66,241,216, 76,170,159, - 83,196,196, 68,223,116,164, 20, 32,120,156,139,104,107,132,115,239,165, 19, 60,120,169, 50, 94,109, 22, 12, 67, 71, 86, 40, 76, - 94,211,108, 26, 12, 10, 51,166,190,229,153, 5,101,104,250, 14, 60,148,243,138,162,200,199,103, 83, 66,140, 34, 1,239, 28,151, -137,116, 41, 70,212, 72, 54, 38, 47,131,189, 15,145, 52,210, 93,131,247,196, 32,110, 35,109, 52, 68, 9,117, 82, 90,163,146, 65, - 25, 33, 48, 47,145,170,224,123,169, 14, 86, 18,175, 26, 73,232,148,152,236,204,128,138,155,119,239,177,123,235, 13, 94, 62,251, - 28,125,120,134,206, 20,213,206, 27, 76,247,183,241,253, 49,145, 10,215,237,242,236,223, 71, 94,156, 60, 37,162,184,254,246, 13, -102, 51,184,115, 67,241,202,187,107,210, 91,107,118, 95,139, 76,246, 11, 94,126,147, 56,189,128,126,169,121,241,240,115,218,245, -125,186,166,103,219,247, 84,182,196,164,156,195,179, 11,190,248,236,215, 60,122,248,128, 95,255,236, 51,158, 60,120,196,176, 14, -252,225,199,127,196,237, 59,111,178,185,232,120,252,236, 5,239,188,251, 93,254,252,175,254,138, 63,253,103,255,140, 31,252,232, -135,220,186,123,155,174,109, 89,156, 30,113,122,118, 68,211,245, 84,101,206,111,127,253, 43, 30,124,254, 25,143,238, 63,224,175, -255,183,127,205,251,239,223,227,171, 47,126,205,116, 90,176, 90, 94,112,122,122,194,225,241, 11,209,176, 68,216,221,217,226,205, - 55,238,146,169,140, 71, 15,190,226,193,103,191,225,233,151, 95,209, 95, 52,220,222,187,129, 86,138,147,195,151, 52,125,207,209, -233, 17, 33, 4, 30, 63,121,202,201,225, 9, 58, 70,142,159,159,241,244,219,167, 24,114,238,220,122,157,163,179,115,202, 73,205, - 43,119, 94, 65,197, 30, 19, 19, 63,251,233, 47, 40,171, 9,255,237,255,240,223,243,230,119,222,194,217,138,255,251,255,250, 15, -124,246,224, 9,205,197, 41, 58,116, 76,242,140,247,239,189, 66, 21,123,212, 91,119,174,167,179,243,115,108,110,169, 42,205,224, - 90, 94,191,123, 11,163, 20,219,213, 22, 47, 95, 28,177,116,158, 48, 90,213,110, 94,223,193,166,177,125, 44,171, 48,179, 57,110, -144,124,225, 56,180, 56,159,100, 35,211,138,178,148, 8, 79,231, 60,235,213,138,217,214, 22, 40,197,197,249,130,110,232,241, 41, - 9,172,175, 53,187,251,251,194,177, 14,131,180, 33,185,136,119, 61, 85, 37, 73,107,109,219, 73, 45,161,209,116, 93, 55,198,231, -137, 79,219,216, 76,132, 94, 93,135,201,115,102,211, 25,193, 15, 18, 46,225, 3,218,138,176, 69,107,141, 40,197,147, 76,162, 74, - 35,249,203, 17, 99, 44,209, 57,180, 17,203,128,206,198,205, 95, 33, 34,162,213,138,168,100, 75,214,249,216,234,150,229, 87, 2, -161,189,189, 93,180, 82, 44, 23, 23, 40, 99, 40,235, 26,133,193,121, 73, 45, 42,202, 90,190,135,194,210,247,158,188,204, 80, 9, -156, 19,123,157,120,241, 27,178,188,144,131,117, 62,199, 40,197,122,189,190,218,128,178, 76,144, 0, 98, 68,105,217,244,228,159, - 8, 40,214,171, 21, 90, 43,234,122,130, 82,106, 20,212, 41,180,181,152, 36,232, 70, 76,145,204,230, 36,165,184, 12, 51, 89,173, - 87,148, 89,142,215, 25, 67,239,176, 86, 68,120, 33, 4,214,237, 6, 19,145,106,195, 81,240,165,208,164, 36,133, 44, 89, 46, 28, -123, 89, 86, 68,239,217,108, 54,100, 89,198,100, 82, 95,121,155,219,182,163,235,186,223, 31,236,234, 82, 65, 28,137, 62, 18, 1, -157, 20, 81, 11, 71,138, 18,136, 90, 43, 9,120, 49,198, 80, 87, 21, 62,136, 90, 31, 96, 62,159,143, 48,240, 32,220, 94,136,120, -231,232,219,129,249,214, 76,168,146,174, 19,190,105,211, 9,205,172, 21, 69,158, 99, 76,142, 49, 34, 48,235, 7,201,221, 47,139, - 2,146, 36, 24,118,109,135, 15, 3,243,217,124,132,164,185,210, 73, 84,149, 92,250,144,104,187, 22,149,196, 46,163, 53, 88,155, -139,189,205,218, 17,154,215,108, 54,157,252,188, 46,191,102, 37, 45,120,198, 40,134, 97, 76,192, 83, 10,165, 36,135,223,121,207, - 98,185,100,125,177,248,253,103, 77, 36,155, 76,168,178,140,114, 82, 49,173, 39,160,228,231,217,108,214,114, 81,154,145, 95,179, -150,139,197,130, 34,151,160, 33,173, 69, 45,190, 94,173, 0,152, 77,103,162, 55, 81,154,171,127,146,132, 61,181,193,225,122, 25, -130,231,211, 41,171,205,134, 20, 18, 74, 39,166,245,148,203,188, 8,239, 61,211,233,148,213,168,205,152,212, 18, 86, 19, 83,132, -196,213,191, 39,147, 9,164, 72, 68,126, 22,140, 67,250,101, 6, 65,102, 37, 60,135, 17,105, 26, 92,184, 66,127, 66, 28,195, 67, -218, 30,239,122,114, 29,241, 67, 51,234, 91, 12, 69, 57,161,154, 78, 9, 14,110,223,220,227,241,179,231,220,189,113,157, 39, 47, -142,216,221,217,226,249,227,151, 20,117,205, 43,119, 95,103,123,183,102,121,122,193,233,233, 57,167,199,135,172,218,150,221,221, - 29,166,147, 9,171,118,160,158, 72,115,227,102,189,196, 69, 71,112, 70, 18, 45, 99, 79,179, 22, 45,128, 86,134,178,206,241, 67, - 68,155, 52,118, 16,100,236,237,237,161,240, 48,210, 44, 49, 56, 89, 0,124,164,119, 61,222, 37, 50, 35,150, 35,173, 52, 26, 65, - 10, 81,150,128,167,239, 34, 74,203,146, 97,172,102, 62,171,152, 78,107, 86,231,167, 24, 45,205,145,182,152, 81,149, 21,145, 68, - 82,145,110,104, 89,174, 54, 84,185,132,204,100,198,140, 52,135,135, 97, 32, 21,133, 44, 60, 68,164,195,219, 98, 12,128,184,104, -148,145,168,107,140,146,161, 54, 66,150, 25, 82, 82,168,145, 50, 81, 81, 9,119, 27, 68, 63,148,229, 66,157,105, 3,205,170,145, -231, 86, 27,134,161,103, 82,214,156, 52, 25,243,173, 25, 31,253,229, 95,240,248,244, 25,149,178, 92,187,251, 1,106,245, 38,197, -214, 29, 54,203, 83,194,202,145,205,247,240,110,160, 57,127, 78,114, 45,245,245, 15,121,243, 59, 63,230,205, 55, 19,211, 15, 96, -189, 11, 3, 16,255,167,196,195, 71, 11, 38,215,183, 49, 73,113,255,243,127,197,249,226, 95,163, 82,224, 45,213,178, 51,173,120, -229,214,171,108,214, 43,142,159, 63, 99,112, 29,237,106,129,210,142,105, 93,130,178, 60,125,124,204,214,206, 54,186,204,121,251, -253,143, 56,186, 56, 99,182,181,195,245,189, 3,238,189,251, 54, 69,174,184,184, 56,227,197,147,111,217,157,205,233,155, 13,207, -238,223,199,173,206, 25, 54, 75, 25,160,242,156,213,234,152, 98, 62, 39,120, 77,194, 16, 85,228,218,141, 61, 50, 85,240,236,240, -152,114, 58,231,171,175, 30, 9,141,188,232,152,204,183,200,202,140,253,131, 3, 94,191,115,135, 95,127,241, 27,166,251,187,196, -168,153,239, 78,121,229,224, 0,163, 51, 30,124,241, 53,205,234,130, 79, 62,249, 49,219,243,125, 30,127,251, 72, 34,132,195,134, - 87,111,189,194,249,225, 33, 23,203, 51,146, 75, 28, 95,156,179,181,119,147,233,254, 62,206,247,104, 11,125,231,248,252, 55,247, -185,118,107,206,151,191,253, 18,205,192,141, 27, 7,152,170,224,211,172,158,176,191, 55,101,111, 94, 19, 93,207,193,238, 62,171, -101,195,163,111, 31,115,255,210,170,166, 44, 55,246,118, 72,222, 51, 96, 72,245, 22,118, 50, 37, 41,133, 34, 97,115,201, 16,159, - 78, 37,128, 94,143,169, 99,139,197, 5,155, 77, 67, 54, 78,128, 49,201, 3, 18, 19,163, 32, 74,182,150, 4, 40,147,161,180,248, - 55,101, 83, 46,232, 93,143,213, 22,163,180,164,180,105, 17,114,136,213, 69, 54,191,224,157,136,115,188, 23,232, 89, 43, 54, 77, - 67, 12,162, 88,212, 86,178,227, 3,137, 52,194, 82, 42, 41,180,146,230,183, 72, 66,165, 36, 91,186,147,124,107,163, 20,155,182, -145,169, 85, 65,223, 15,164,190,165,218,218, 98,190,181, 69, 61,169,201,173, 92,218, 18, 5, 41, 73, 96,221, 48, 16, 98,194,104, -139, 86, 70, 98, 89,203, 26, 99, 36, 25, 79, 98, 33, 37,154,179,105, 26, 66,140, 20,101, 41,147,182,243,196, 36, 27,126,166, 69, -224,102, 50,225,196,172,145, 32, 26,163, 53, 41, 68,188, 15, 16,197, 43,238, 66, 36,179, 2,239,103, 99,186,216,208,139,226, 93, - 94, 72, 73,215,147, 44,115, 35, 77, 80, 86, 84,216, 36,133, 54, 82, 21,184,110, 68,200,103,172,161,109,214, 52, 77, 39,241,136, -101, 54, 94, 96,137, 20,196,190, 18,130, 84,147, 26,173, 80, 74,179, 92, 44,208,200, 69, 21,163,136,213,170,170, 66, 43, 13, 90, -182, 69,208,164, 36,219,245,224, 61,222,139,200,203, 24, 73,121,147, 65, 68,178,226,203,162,144, 67, 68, 11,215, 56,116, 29,121, - 38,195,136,244,127, 75,223,113, 72,137,194, 90,140,177,184,222,143, 67,228, 64, 94,150,196, 24,197,129, 96, 12,151, 73,121,178, -125,167,113,219,215,228, 89, 78, 85,148,216,108,228, 35,157,168,135,141, 22, 69,190, 92,126, 82, 3,219,117,157,112,213, 74, 6, -176,201,100, 74,215,183,132, 40,109,110, 41,201,144,153,101, 6, 53,110,109,198, 90,140, 18,254,123, 24, 68,151,145, 23,185,168, -139, 51, 81,179,202,207, 71,190,255, 75, 39,130,205, 50, 90, 47, 85,171,202,136, 39, 90, 27, 9,176,209,198,160, 34,156,156,157, -225,157,199, 24, 67, 89, 86, 20,121, 33,200,204,224,168,235,154,182,149,175,173,200,139, 43,100,198,230, 22,107, 50,161, 52,162, -160, 72, 38,207, 36, 11,191,170,176,121, 46,219,126,223,147,103,242,253,167, 40,194, 60,239, 37, 64,169,174,107, 98,140,227,239, -145,166,186,110,232,153, 76, 43,242, 66,132,117,117, 85,163,181,102,179,110, 48,198, 92,169,242, 1, 46,131,144, 98, 12,132, 36, - 8,133, 15,226,239,183, 54, 67,143, 54, 79,163, 53,218, 26,234,249,140,217,246, 46,245,246, 53, 58, 23, 73,118, 34,126,244, 77, - 75, 63, 12,156,157,158,177, 88, 54,156, 45, 55,244,206,209, 12, 13,131,119, 12, 41,210,181, 45,223, 60,250,150,211,179,115, 22, -171, 5, 46,138, 29,244, 98,189,225,248,228, 2,231, 4,242,119,222, 97,178,130, 60, 23,202, 44, 37, 73, 19,155,205,183,169,235, -156, 34, 31, 93, 38, 86, 6,188,178,172,200,203,140, 24, 29,203,229,134,136, 22, 84, 46, 36,130, 50, 20,213,140,178,154, 49,221, -222, 33,159,204,200,235, 9,213,124,139,124, 62, 39, 43,106, 76,145,145,151, 37,117, 93, 81, 79, 43,138, 44,167, 42, 37,198,217, - 39,112, 94,232, 41,137, 20,238, 73, 62, 72, 98, 95, 61,165,200, 10,202,162, 34, 38,209,194,104, 43, 26, 27,133, 34,105, 35,161, - 68, 41, 16,125, 32,186,129,166,151,224, 28,157, 27, 84, 72, 66, 69,198, 81,104,170,224, 82,247, 35,182,170,203,119, 68, 40, 41, - 61, 14,127,106, 68, 26,243,162,192, 40, 37,249,232, 33, 18,130,228,230,171,224, 9, 58,167, 55,129,204,192,143,255,227,191, 68, -175,223, 65,115, 64, 62,185,133, 26,114,154,147,103,156, 62,255,140,211,231,191,164, 57,253,138,174, 57, 67, 39, 77,138, 21,235, -245, 62,231,135,112,242,121,226,225,255,249,148, 71, 15,127,202,203, 23,255,128, 15,138,166,219,176, 60,125,200,250,226, 51,186, -197, 25,117,145,177,103, 61, 62,207,248,230,193, 23,172, 47, 46, 80, 73,232, 98,148, 98,136, 10,111, 50, 38,123, 59, 84,211, 25, -127,240,221, 15,217,217,170,200,148,231,218, 78,201,209,243,175, 56,252,246, 43, 94,124,251, 45,126,179,161, 74, 25,235,229,146, -179,229,154,243,229, 9,186,202, 56, 61, 59,167,156, 22,216, 73, 65, 52,134, 27,123,215, 80,202,114,122,124,193,151,143, 14, 57, - 93, 12,100,198,242, 31,254,237, 63,160,162, 97,107, 86,241,234,237, 3,222,187,247, 54,111,222,189, 77,235, 59, 94,123,255, 30, -118, 34, 86,222,144, 6,110, 28,220,166,217, 56,218, 77,195,246,108,194,193,245,235,220,255,234, 27,110,238,110, 51, 52, 75,126, -249,171,159,243,244,249, 17,191,189,255,128,131,107,215,168, 39,115,190,254,242, 43,202,170,228,222, 91,175,163,115,197,173,155, - 7, 76,103,115, 94,127,227, 77, 62,250,222,219,248, 97, 65,215, 52,124,247, 15, 62,228,248, 98,144,187,250,206,237,189,244,206, - 91,175, 82,198,134, 95,253,234, 75,200, 75,118,175, 79, 24,156,229,219,199, 71,108,205,182,152,111, 77,201,116,226,124,217, 16, -170, 57, 93,144, 40,188, 73, 37, 23,120,153,203,161,170, 98,194, 13, 29,203,245,154, 24,146,164, 99, 13, 94, 46, 32, 64, 41,197, -100, 58,197,251, 32,182,167,178, 96,189, 90,131, 18,213,251,206,238, 30,102,132,122,180,146, 96,142,205,152,166,148,101,185,252, -154,143,100,101, 70,138,162,238,181,153,101, 60,119, 81, 90, 51,155, 76, 81, 74,177,222,108,228, 0, 45, 75, 41, 68, 8,178,205, -166, 36,124,104, 24, 47, 79,173, 53,201, 39, 80, 34, 50, 11, 49,113,153, 46,182, 94,175, 9, 33, 82, 79, 74,134,110,160,223,108, -152,237,238,140,185,232, 3,147, 73,197,224,122, 92,219, 83, 77, 68,241, 77, 2, 23,165,163,189,172, 42,148,210,244,110, 32,248, -128,243,105,132,204,228,210,107,154, 22,173, 69, 21,222,118, 13,196, 68, 93,215, 2, 95, 42,153,152,147, 15, 18,248,162, 53, 41, - 70,218, 70, 2, 56,228, 69, 83,152,204,144, 61,248,193, 76, 0, 0, 32, 0, 73, 68, 65, 84,231, 5,198, 88,217,176,181,108,103, -145,136,213, 82, 86,162,181, 33, 70,177, 75,196, 40, 47,175, 50,150,105, 93, 99,140, 38,203, 11, 82,136,244, 94,202, 32,172,181, -172,215, 43,166,211, 41, 93,215, 83, 85, 57,126, 24,136, 42,161,146, 70, 41, 65, 99,140,201,104, 54,155,171,203, 67, 37,105, 13, - 3,152,205,183, 40,114, 43, 67,142,143,100,133, 37, 70,208, 90,141,201,118, 74,146,169,148,130, 40,145,161,253,208,145,231, 57, -202,168,177,231, 89, 19, 71,161, 98, 76,162,224,206,115, 9,184,201,179,140, 77,219,146,136, 24,165, 49,121, 6, 94,236,121,109, -219,178,181, 37,165, 63,171,213,134, 34,207,105, 91,137, 46,213, 74, 11,149,161, 44,104, 81, 93, 91, 43,186,130,190,111, 89,173, - 54,120,239,198, 44,131, 12,146, 38, 70,199, 48, 72, 9, 67, 81,230,180,141, 36,183,109,109,111,163,148,108,185, 23, 23,231, 72, -196,167, 97,123,123, 7,231, 60,147,105,205,106,211, 80, 87, 21, 41, 74,136,132, 54,150, 20, 34, 32,150, 20, 31, 28,106,164,146, - 72,242, 44, 24, 99, 88,174, 86, 44, 47, 46, 8, 33, 48,157,206, 32, 37,108,158,225, 7,249,115, 55, 27,249, 58, 83, 8,108,239, -238,210, 15, 61,211,122,194,242,236,140,157,235,215, 89,175,215, 35, 61, 98,136, 4, 20, 26,107,172, 8, 52,181, 56, 58,154,182, -187,106,131, 2, 8, 81,248,239, 20, 37,100,166, 40, 43, 46,197,140, 34, 18, 21,212,228,210, 51,157, 24,181, 28, 93,143,214,137, -233,108,126, 53, 4,181, 93,131,213,118, 12,202, 72, 40, 35,162, 61,177,164,138, 35, 68, 2,167, 36,142, 56, 43, 75, 84,140, 72, - 68,115,207,102, 35,145,151, 66,127,200, 96, 38,138,127, 65, 46, 46, 23,130, 60,191,180,254,136, 54, 67,105, 65,152,172, 53,120, - 55,200,150,106, 37,129,209, 88,137, 26, 86, 81, 16, 25,205, 37,170,160, 73,201,143,239, 98, 69,138,130,174,153, 92,210, 33,125, -146,176, 21,162, 34, 68,137,114, 46,171, 10,107,164,145, 81,242,218, 35,198,100,104, 43, 73,108, 69, 38, 28,103,231, 29, 85, 33, -136,101,145, 75, 46,120,140, 81, 52, 5, 90,225,163,248,200, 19,137, 16, 28,121,150, 99,162,104,125, 12,112,113,126,129, 82, 9, - 99, 21,222, 71,234,124, 66, 61,219, 34, 27, 3,117, 98, 24, 56, 61, 61,199, 26, 72, 62,209, 71, 71, 93, 77, 49, 38, 48,108, 26, -240,145,141,115, 4,151,196, 18,101, 52,182,204, 73, 81,104,210, 76, 27,148,205,200,114, 43,190,251, 8,200,222, 68,244,142,164, - 68, 75, 20, 73, 50,240,107, 77, 89,150, 52,171, 5, 33, 36,225,246,253, 64, 61,219,230, 59,255,205,127,199,234,197, 51,252,242, -156,107, 31,254, 17, 59,205, 63,103,119,242, 29,134,176, 97,239, 96,198,206, 63,143,116,255,168,248,237, 79,159,113,244,242, 39, -232,204, 98, 41,241,241, 28,163,114,146, 79,168, 34, 99,113,250, 45,253,250, 5,217,252, 58,219, 55, 63, 32, 44, 23, 92, 28,253, -156,102,248, 41,217,102,193,171,247,238,240, 74,115,206,171,247,238,241,219,135, 15,104, 23, 43,250,174,101,179,148, 38,182,249, -100,194, 43,175, 73, 84,237,100, 90,177,187,119, 11,165, 18,199, 39,199, 76,171,146,190,239, 5, 17,206, 75, 76, 8,180,231,231, -232, 0, 49, 14,220,120,101, 7,157, 89,218,190,103,181, 90,177, 60, 57,101,240,112,124,124, 76,240,137,235, 59, 37,207,207, 58, -206,163, 66, 37, 79, 8, 25,215,166, 80,217,241,249,247,134,182, 15, 28, 28,236,177,247,218,107,188,243,201, 39,100,181,229,232, -240,136,235, 55,246, 25,218, 14,213, 39,142,143,206,185,184,184,224,155, 39,223,146, 98,226,248,248,136, 20,224, 7, 63,248, 1, -186, 40, 41,178,140,235,123,115,126,242,247, 63,227,119,247,239,243,241, 39, 31, 49,223,221,230,218,141, 27,180,189, 35, 43, 43, -214,171, 37,135,207,158,208,119,129, 31,254,240, 35, 98,130,206,123,204, 31,125,252,206,167,167, 47,159,240,217,231,207, 40,119, -114, 2,150,175, 31, 47,185,180,170,229,165,197, 71,207,106, 72,184,162, 38,144,176, 73,210,147,242, 66,170, 89,149,146, 52, 43, -165, 20,203,213,146, 24,226, 21,231, 54,244, 29, 85, 85, 10, 60,104, 44,171,205,134,161,151, 13,164,235, 7,166,117, 77, 85, 77, - 40, 43,225,248, 4,194, 94,144,105, 75,215,119,100, 69, 33,219, 97, 38, 61,222,144,232,154, 14,144,248,189,232,228,194,247,206, -163,181,197,121, 71,239, 28, 42, 41,176, 6, 98, 32, 33, 23, 36,230,114,251, 50, 24, 37,135, 92,138,113,124, 81,149,168, 63,173, -180, 94,245,189, 67, 91, 5, 42, 17, 35,228, 35, 79,166,148,162,170,171, 81, 80, 39,154,129,162, 42,105,214, 13,206, 7, 76,158, - 83,228, 21, 93, 63, 32,109, 59,145,190,243, 88, 43,129, 54, 41,164,171,200,218,178,202, 81,218,140, 16, 41,212,165,132, 60,196, - 36,133, 30,209,123,250, 65, 66, 36,218,166,145,131, 52, 74,229,233,165,106, 61, 69, 17, 36,245, 93, 71,179,105,104, 70,120, 84, - 4,116, 18, 94, 64, 12,100,121, 78, 81,138, 90, 61,161, 73, 35, 45,146,148,160, 39,155,166, 65,105,131,205, 45,235,213, 18,165, - 68,164,146,231,150,190,109,201, 50,217,246, 51, 43,221,226, 70, 75, 22,248,166,105, 48,214,160, 73,100, 38,163,170,164,109, 79, -105,117,245,153, 54,109, 75,136, 9, 9,125,137,146,209,110, 51,172, 17, 78,158,148, 70,142, 46, 74,226, 91,146, 84,184, 34,207, - 25,134, 65,182,127, 47,112,127, 76,178,101,251, 16, 36,142, 55, 47,176,214, 72, 42, 97, 8, 12,163, 23, 61,207,115,113, 91,216, - 92,160, 95,173,176, 70,116, 21,130,102, 8, 21,144, 82,162, 27, 6,218,174,161,237, 68,144,119,169,149,168,235, 41,197,101, 66, - 97, 38, 53,188,195,224,198,207, 48, 17, 83, 26,253,218, 29, 33,201, 51,234,124, 32, 47,114,124, 20,155, 98,150,101,172, 87, 43, - 50, 35,109, 92,222,245, 4,239,209,198,208,118,221, 56,132, 73,186, 98,158, 75, 8, 75, 8,129, 68,164,235,228,226, 44,202,146, - 24, 5,237,240, 78,158,137,232, 3,164, 36, 98,171, 92,132, 82,253,224,216,218,221, 38, 38,176,151,226, 55, 35,226, 71,163, 13, - 73,201, 80, 21, 82,194,121,217,230,250,190,167, 40, 10,146, 70,180, 38,222, 95,233, 9, 38,117, 77,150,101, 92, 6, 26, 93, 62, -115, 77,211, 48, 12, 18, 79, 44,246,183, 1,107,115,218,174, 97,189, 90,225,134,129,233,100,138,181,146, 97,158, 21, 5, 6,200, -114, 9, 47, 1,201,134, 80, 74,126,230,160,198,247, 48,162,180, 80, 23,153,149,194, 24,165,212, 21, 69, 85, 21, 5, 85, 89, 92, -253,183, 44,147,164, 71,107, 37,175, 32,137, 6, 82, 32,107,147, 93,253, 93, 0,214,142,191,174,228,243,184,180,139,134, 16, 5, -105, 52, 25, 62, 10, 13,167,116, 38,208,115,140,216, 92,160,119,249,122, 50,234,186, 20,239,120, 20, 47,124, 82,138,186,172, 80, - 42, 65, 38, 2,224,148, 34,117, 61, 17, 17,112, 8, 12, 67, 79, 54, 42,147,187,182,197,245,157, 12,137, 49,200,179,160, 13,137, - 75, 27, 90,192, 39,133,206,114, 73,131, 51, 22, 18,164,152,200,242, 12, 31, 68,215, 80,228, 66,119,145,148,212,127,170, 68, 63, -120, 74,107,160,109, 9, 40,202,106, 74,136, 18,245,106,173, 98,232, 29,121,158,227, 91,161,134,180, 50,120, 36,151, 96,232, 59, -122,231, 81, 36,180,146, 8,236,126,112, 12,125, 47,148,202,184, 72,120, 39, 81,221,121, 38,203,137,205, 12, 97, 24,216,121,235, -109,102,111,127, 66,104, 91,154,179, 35,178,201,117,118,202,143,168,183,175,209,135, 64,169, 12,127,246, 47, 54,252,151, 31, 20, -116,255,116, 70,251,237,123,104,155,147, 87,115, 22, 47,239,179,186,120,198,224, 27,218,213, 83,250,230, 20,155, 79,217,191,249, - 99,230, 59, 63,166,156,191,139,118, 61,245,205, 30, 53, 44, 56, 58, 95,115,244,248, 9,103,139,134,106,123,143,231,199, 23, 60, - 61, 90,208,167, 64, 52,137, 77,239, 41,178,140,227,163, 99,158, 61, 63,226,229,211,231,188, 56, 60,100,177, 88,242,213,227,231, -188, 60,191, 32, 36,197,108, 62, 97,189, 89,242,245,225, 49,222,194,139,139, 5,203,117,199,163,103,135,244,109,207,225,170, 35, - 88, 11, 89, 78, 93,151, 68,215,115,251,218, 54,223,125,231, 54,223,121, 99,159,119, 95,223,231,123,239,222,162,174, 13,153, 81, - 84, 89, 2,211, 49, 47, 65, 7,135, 95, 47, 57,125,252,136, 71,191,249, 10,203,132,217,214, 53, 54, 93,199,175,126,245, 27,214, - 23, 39,148,181, 12,104, 49, 69,202,249, 12,147, 89,222,126,243, 46, 58, 58,222,126,255, 29,254,254,103, 63,231,155,111,190,164, - 9,137, 55,239,221, 99, 0,158, 61,127,204,246,238, 62,175,191,126,151,211,147,115,110,221, 60,224, 59,239,190,139, 86,154,174, -113,156, 47,214,152,219,219,197,167, 23,253,192,100,119,194,197, 69, 98,103,247, 58,247,238,221, 38,203, 51, 14,174,239, 99,109, -198,162,131, 84,212,162,218, 85, 34,144,136,222, 17,130, 19,111,106, 85,203, 75, 18,101,107,234,251,158,162, 20,235,134,181,134, -229,106, 67, 12,194, 65,198, 16,168, 38, 21,185,150, 34,136,193, 57,108,145,143,135,142,102,185, 90, 10,164,236,196,250, 84,228, -242,240,232,145,151, 42,203, 66,184,225, 32,155,142, 64,218,154,224,221, 85, 94, 53,200,198,131, 54, 36, 37,158, 99,177, 68, 69, - 46,211,196, 18, 1, 21,195,168,108,246, 24, 45, 83,175, 81, 90,224,248,241, 48,181, 86,186,191, 3, 98,101,170,167,242,189, 94, -214,159,166,148, 48, 70,145, 21, 57, 46, 42,156, 31,200, 50, 9, 94, 49,153, 29, 55, 87,233,187,141,209, 19,149, 8,195,172, 21, -171,203,208,247, 24, 45, 33, 58, 50,245,122,130, 31, 88, 45, 87,180,109, 59, 42,203,133,147,213, 90,170, 73,171,170, 34,203, 51, -170,178,226,210, 58,214,119,195, 8,213,137,117,176,239,100,171,202, 50, 3, 74,172, 95, 10, 48, 74, 4,128,121,145,145, 0, 63, -136,248, 44,132, 32, 16, 36,154, 50,151,139, 48, 68,199,101, 53,234, 48, 12, 12,163,202, 61,164, 68,102, 37, 12,198,111, 90,166, -179, 25,211,217,148,170,174,176,153, 97,179,218,208,119, 29,206,185,209, 99, 45,141, 83, 49,202,255,150, 65, 70, 46,151, 48, 14, - 41,121,150, 35,221,223,129,204,100,132, 24, 73, 49,140,207,133,194, 90, 9, 54,241,195, 64,244, 34,190, 83, 90, 56,245,161, 27, - 72, 36,234,122,138, 70,154,239,140,145,182,179,162,144,156,237,204, 88, 98, 18,237, 66, 8, 14,239,130,216, 4,187,142,190,149, -106,198,182,237,200, 50,225,214,147,214, 88, 35,186,131, 75,110, 58, 43,178,171,195, 76, 91, 73, 30,212, 90,203,175, 27, 73, 53, -212, 90,144,153, 34, 47,100,120,181, 98, 7,234,122,233,124, 79, 41, 49,155,206,132, 82, 24, 6,134,224, 25,250, 1,165,181, 8, - 50, 23, 11,250, 94, 40, 39, 61,102,181, 27, 45, 98,205,161,151, 26,204,170, 46, 49,185,101, 62,223, 18, 84,201, 26,108, 38, 53, -157, 69, 81,210,108, 90, 80,137,118, 28, 30,139, 34,191,130,208,141,181,148, 69, 41, 92,108, 33,136, 87,150,101, 72,244,167,120, -248,187, 94,120,237,203, 75, 28, 24, 47,192,113,176,138,242, 60, 74,151,180,252,183,162,200, 41,198,237,249,247, 67,144,167,235, - 37,103,192,135,192, 48,120,250,126,180, 23, 42,161, 31, 52,138,168,196, 74, 23,188,191, 18, 1,186, 32,239,165, 84, 14,143,121, - 17,121, 65, 26, 63,227,124, 20,211, 46,151, 11,124,140, 99,157,173,148, 10, 41, 45,214, 74, 18,144, 34,160, 81, 8, 21, 87,149, - 5, 89, 46,250, 26,173,165, 71,225,178, 98,119, 50,153,160,140, 12,179, 69,158, 49, 56,177,139, 86,117,137,181, 6,173, 33,196, - 4, 81,114, 47,108,102, 48, 73,130,127,228,179,148, 36,204, 34, 47, 80,136,126,227,210,179,239,131, 56, 86,210,248,236,232,244, -251,184,105,173, 69,223, 19,137,178, 65, 91,113, 40, 24,107, 9, 24, 34, 10,101,229,207,204,203, 10,155, 89, 94, 28, 30,210, 54, - 66, 1,229,214, 80,150, 19,138, 42, 27, 19, 3, 29,165,138,104, 12, 58,151,220, 0,172,184, 50, 20,145,172,200,201, 50,249, 26, -148, 21, 65, 41,128,209,154,168, 4, 81,245, 33, 74, 66,157, 82, 34,162, 75, 92, 13,234, 74, 25,196,143,111,232,219,158,174, 29, -168,174, 95,231,181,247, 63,161, 46, 42, 22, 47, 30,115,247,173,247, 89,189,204, 32,214, 12,155, 83, 90,235,152,253,193, 30,247, -179,196,151,255, 6, 78, 14, 79,184, 56,252, 45,229,244,128,143,255,228,207,184,125,243,143,121,247,123,127, 72,181,253,135, 76, -167,119,248,254,247,254, 19,222,252,175, 95,227, 47,255,179,158,255,226,207, 13,155,234, 3,170, 87,114,218,179, 47,217,156, 55, -220,124,229, 38,175, 30, 92,231,214,107,175,240,238, 59, 31,240,221, 15,223,227,240,244,130,168, 11,206, 47, 78,120,250,236, 5, - 23,171, 53,202, 20,172, 83,226,218,181,125,162,205,120,245,238,171,132,164,168,167,146,161,254,228,197, 17, 93,132,195,139, 13, -245,100, 78, 94,101,216, 44,167, 11,137,191,248,139, 63, 37, 69,168, 38, 19,202,106,142,174,119, 24, 84,197,215, 79,142,217,217, -219,167, 13,150, 24, 12,123,251,215, 56,184,121,139,131, 91,183,185,121,243, 54,215, 15, 14,216,222,222, 98, 50, 47, 8,161,165, - 46,193,159, 31,179, 60, 61,161,217,180,236,220,220,103,182,119,141, 69,179,228,248,232, 37,123,219,187,220,123,227, 53,230, 91, - 51, 34,158,175,190,122, 68, 74, 3,235,214,241,197,151, 15,120,255,131,119,177,198,112,253,198,117,124,212,120,159,120,254,252, - 41,206, 15,184, 94,113,125,111,155,229,226,130,219,119,222,224,238,221, 55, 49, 55, 94,187,254,233,164,218,101,189,144,203,200, -135,158,174,237,137, 93,207,225,225, 17,203,144, 97,139,138, 48,114,157,110,112,104, 21,152,212, 53,147, 82,242,195,141, 26,225, -235,222,209,180,107,170,170, 36,198, 68,215,245,108, 26, 81,248,154,220, 18,130,248,107, 1,241,178,230,118, 84,138, 59,148,209, -232, 20, 33, 69, 73,142, 74,162,136, 55,153,229,178, 65,172, 44, 75, 82,130,186,146,186, 79,149,192, 5,217,236,134,193,203, 36, -235, 3, 69, 94, 16,224,234, 32, 75, 73,141,191, 79,184,120, 55,136,226, 62, 38,225,164, 99,144,205, 54, 47,114, 66, 20,254, 8, - 45, 48,160, 27, 15,102, 20, 4, 47, 9,100,153, 21,129, 72,179,217, 96,198, 23, 93, 27,139,205, 44,125,231, 48, 70, 4,100, 42, - 33, 86, 41,109,113, 65, 62,223,152,196, 82,150, 98,164,105,197,246,101, 52, 52,155, 13,151,161, 44,109,219,145,146,192,148, 54, -147,109,118, 58,157, 51,157, 78,200,115, 73,242, 66,107,114,109,198,182, 54,217, 58, 7, 39, 49,176, 49, 37,225,146,181,161, 27, -122,138, 60,195, 13,178, 29,228, 69, 78,223,202,244,173,148, 70, 27, 4, 2,205, 51,140, 22, 30, 47, 17, 5,190, 12,129,210,230, -226,253,181,178, 49, 92, 34, 8,140, 80,188, 75,158,114, 76,152, 51, 70,211,183, 61, 41, 9,116,238, 99, 24,149,246,210,188, 39, -113,176, 94,188,253, 33,202, 33,145,198, 33, 17, 41, 54, 9, 33, 80,213, 21,144, 4,217, 72, 17,107,101,123, 75, 49,146,149, 37, -110,252, 30,195,229,229,174, 20,179,249, 28,173, 24,133,111, 66, 99, 40, 45,246,195, 97, 24,104, 70, 47,114,150,203, 48,115,201, -175, 55, 77, 51,110,104, 82, 16, 35,151, 66, 66,196,128,146, 39,224,253, 88,201,233, 69, 39, 96,172, 8,211,250,174,191, 66, 18, -108, 38,121,229,218, 88,102, 91,115, 82,138, 20, 69,137, 34,225,134,225,138,135, 46, 11, 81,170,203,193, 25,152, 84, 21,110,112, -116,141, 36,172,245,157, 12,118, 49, 73,145,203, 37,191,105, 50, 75,234,123, 76,150,137,136, 82,203, 86,104,140,166,235,122,140, -209, 50, 48, 41,133,178,178, 17, 94,186, 8,186, 70, 98,128,139, 50, 31,245, 0, 45,118, 68, 74,186,110, 84,224,119, 29,198,202, -229,230, 6,119, 37, 68, 84,106, 20,107, 18, 5, 5,235, 5,201,200,203,130,166, 21,125,193,165, 39, 63,105, 40,243,130,222,121, -188, 27, 8, 65,116, 11,222,185,241,226,144, 11, 80, 41,209,204,164, 20,241,227,239,201,242, 18, 97,222,100, 41,200,172, 44, 11, -202,200, 22,175,181, 64,229,155,205,154,222,201,160,105,173, 97,117,177,192, 15, 82, 27,172,180, 68,172, 26, 52, 74, 9, 2,144, -103,114,193,199, 24,200,115, 75,240,126, 44,198,145,208,166,204, 94,110,243,114, 81,167,152,208, 36,124,132, 73, 45, 90,139,193, - 15,116, 99,138,164, 27,122,156, 27, 72, 49,160, 77, 70, 63,116,216, 44,103,189,222,224, 6,129,127,221,232, 54, 40,114,177,155, -218, 44, 35,183,130,244,148,165, 52, 55,118, 67, 39,231, 83,140,160, 36,195, 65, 22, 14, 63,110,236, 50,196,103, 70,226,112,181, -181, 4, 20,237,224,197,235, 62, 14, 66,222,247, 44,150, 23,248, 0,211,122, 42,105,107,198,242,226,228,156,160, 3, 85,166,200, -243,146,162,170,233,154,158,114, 58,193,142,148,197,224, 59, 76, 82,104, 20,164,203,197, 35, 98,243, 2,109,140,160, 64, 54, 71, -154, 49,133, 34, 53,214, 10,154,213, 7, 66, 76, 52,109, 35,231,205, 48,240,214, 39, 63,198, 29,193,242,236, 17, 7,175,190,206, -203, 71,103, 52,155, 19,186,254, 57,131,107, 56,253,242, 21, 30,253,123,197,211,251, 95,114,244,252, 11, 66,236,248,224,141, 31, -242, 71,255, 21,236,127,164,185,254, 35,199,254, 15, 13,219, 92,231,224, 22,124,252,113, 96, 31,131, 82,137,120, 96, 57,254,249, -107,228,215, 95,112,254,205,151, 20,211,109, 94,221,223,230,198,193, 29,114, 74,166, 91,219,184,182,225,237,187,119, 56,184,125, -135,191,251,233,103, 36,109,168,115,195, 78, 93,177, 88, 45, 8, 67,195,217,217, 5, 46, 14,180,141,196, 78, 95,172, 59, 12,240, -230,235,175,240,218,221, 27,120, 52,251, 55, 14, 56,189, 88,209,116, 29,247, 63,251, 21,169, 91,115,118,177,100,162, 28,182,208, -148,251,123,124,117,180,226,217,105,195,223,253,226, 62, 47,143, 23,156, 95, 52,248,161,195,135, 64, 31, 20, 90,101,228,249,148, - 42,155, 9,226,151, 25,166,179, 2, 19, 18, 97,211, 16, 93,228,246,157, 91, 92,123,245, 38,153, 45,249,251,191,249,183, 92,159, - 76,241,157,148,255, 44,215, 27,118,246,182,121,121,178,230,141,183, 15,152, 76, 74,214,203,150,186,168,249,246,193, 55, 16,193, - 90, 77,116, 45,203,102,195,207,254,225,151, 52,155, 21,247,191,184,143,121,227,246,237, 79, 31, 60,252,154,182,221, 80, 23, 34, -220,233,150, 75,214,141,163,207,167,148, 19, 41,114, 15,222, 97,141,136,158,230,179, 25,214,202,212,150, 89,177, 55,245, 77,199, -106,211,224,131, 84,200,117, 93,127,229, 31,159,111,109, 81,149, 18,209, 55, 12,210, 47,219, 15,131,228,120,219,140, 97,132,247, -154,205,102,220, 12, 19, 85, 81,146, 21, 57, 77,179,161,107, 59,134,190,191,130,217,148, 2,109, 20,171,205, 90,188,176, 65, 4, - 55,151,155,155,210,114, 1, 93, 86, 10, 58, 39, 94, 77,231,195,200,167, 9, 55,228,251, 30,109, 45,201, 11,116,105,115, 57,232, - 66, 8, 87, 54, 40,109, 45,198,202, 22, 5,178,157, 40,132,207,119,193,211,182, 29,146,135,109,233, 7,137, 25,245,222, 97, 76, - 38,131,201,120,129,103,218,208,245, 45,209, 7,217, 54, 99, 28,225, 97, 75,145,231,114,193, 42, 17,154,129,112,204,187,219,187, -148, 85, 73, 34,145,231,146,145,158,148, 4, 81,136,136,208, 99,172, 97,181, 94,203, 5,222,117,212,117, 37,225, 37, 10,234,186, -162, 24,225,211, 60, 47,196, 3,221,182,248,224, 70, 65,154, 66,171, 68,223, 13, 72,189,172,192,154,198, 10, 61, 81,215,178, 21, -244,195, 64,223,183,100, 86,190,134, 97,232,137, 94,236,102, 50, 52, 37,202, 82, 58,209,135,190,163,172,107, 98,138, 68, 31,112, -193, 9,196,154, 46,171, 58, 45,151,109, 66, 74, 75, 53,174, 81, 26, 99,165, 98, 20,196, 59,223,182,253, 85,106,214, 48, 12,152, -164, 68, 96,233, 35, 86,233,171,139,193, 88,129, 74,179,204,210, 54,194,195,202, 6,233, 80,200,118,191, 88, 44,144,228, 64,233, - 89,111, 54, 13, 74,201, 22,126,217,204, 87, 21, 21, 46, 56,140,214, 76,167, 51,170,170, 28, 81,144, 12, 55,120,108,158,161,212, -229,246, 47,190,107,101, 12, 49,136,202,187,105, 26, 18,137,249,124, 38,193, 60,121, 78, 8, 18,231, 43, 2,183, 72,215,180,228, -121,129,214,242,231,116,125, 71, 93,142, 69, 53, 62, 48,157, 77,152, 76,166, 76, 39, 19,170,186,166,200,115,202,178,144,152,214, -220, 18, 81,100,133,196,243,102,153,192,211,131,151, 75, 0, 45,221, 6, 41, 37, 46,171,130,137,114,161,136, 72,111, 64, 41, 17, -218,137, 48,117, 20, 3,142,180,130,181, 98,187,235, 90, 41,139,200,139,156,161, 27,104, 91,121, 71,252,224,133,202, 25,109,112, - 93, 55,112,105,225, 90, 46, 23,116, 93, 71, 94,228,144, 18, 69,149, 99,141,229, 50, 67,254,114, 64,113,206, 81,213,181,112,219, -232, 43,244, 35, 51,153,240,223, 70,209,118, 45,137,196,100, 50,149,115,165, 31,132,203, 31,209, 38,161,160, 18, 85, 89,162,148, - 18,255,127, 8,100,153, 56, 57,188, 27, 36, 90,120, 92, 16,148,209,104, 37,177,184, 74, 41, 54,237, 6, 72, 99,128,148, 98,211, -116, 76, 39, 19,178, 60, 19,109,200, 56,224,163, 68, 47, 0, 66, 13,153, 49,166,119,240, 3,179,217,148, 34,207,176, 70,236,136, - 69,110,233,250,126,180,229, 33,150, 70, 36,191,193, 57, 39,150,190, 92, 68,192, 32,202,114,133, 44, 3, 74,137,112, 52,211,146, - 22,104,180, 65, 43, 75, 66,242,191,149, 82, 24, 43,207, 11, 74,206,173, 24, 32, 42,197,108,190,139,201,114, 18, 10,239,123, 86, -155, 53, 74,102, 4,174, 95,219,231,240,197, 9,139, 77, 39,142, 6, 19, 73,195, 64, 10, 80,149, 5, 69, 81, 97, 50, 73, 38, 75, - 10, 6, 39,168,165, 86,242,220, 40,173,168,138,156, 17,152, 32, 51,242,247,116, 93, 75,211,202,179, 62, 12, 3,146,148,103, 24, -218,150,131,219,119,168,247, 74,194,102,129, 78,208, 45, 90, 54,221, 6,239,207,241,205, 57,155,147,103,172,206, 31,114,126,241, - 21,221,234, 57, 41, 69,178,236,117,178, 88,210,220,135,195,127,167, 89,125,171, 56,125,174,200,106,120,243,221,158, 71,169,224, - 56, 45,249,151,121,201, 23,199,138, 23, 15, 58,150,205,231,156,190, 60, 66,119, 3,123,117,205,191,250, 95,254,103,126,242,239, -254,142,179,139, 37, 63,253,229,103,188, 56, 58,228,253,247,239,241,230,189,215,177, 36,180,142, 76,234, 25,157,139,100,185, 37, -185, 72, 34,208,110, 54,220,216,153, 75,187,222,166,225,226, 98,133,138, 25, 39,231,167, 12,237,192, 86, 93,243,171,223, 62,192, - 13,145, 89,101, 57, 95,174,105, 46,214,104,173,121,245,181, 3,110,222,220,227, 15,190,255, 30,123,123,187,108,223, 56,224,167, -191,249,156, 85,219,115,180, 88,115,190, 89, 51,221, 18, 90, 4,114, 78, 47, 86, 44,215, 14,141,102,247,250, 46,219,211,130,176, -216,240,197, 23,223,240, 39,127,246, 31, 97,234,138,255,247,111,254,134,227,103,135, 84,198,160, 2, 24, 60,239,125,240, 46, 47, -142, 94, 48, 41, 51, 66, 27,208, 88, 62,255,205,125, 94,187,121,128,213,145, 95,253,230,115,158,124,243, 45,119, 94,125,141,229, -122,195,243, 39, 79, 49,147, 50,251,212,187, 78,210,181,156, 99,211,116,132,124, 74,168,166,194, 59, 90,205,208,110, 48, 70, 83, - 22, 21,211,178, 64,105, 88, 45, 86,116,157,240,183, 41,193,186,221,144, 82,100, 54,159, 97,173, 97,112, 30,165,165, 64, 62,207, -196,195,106,180, 25, 47, 5, 81, 41, 58,231,113,193, 51,155,207,177, 74, 38,178,126,240,227,161,195,213, 97,151,146,240,168,151, - 91, 81,145, 23,172,215, 27, 98, 8, 76, 38, 19,201,197, 5,218,126,160, 40,138, 81,184, 34, 73, 91, 49,130,210,194,129,106,173, -137, 17,146,151, 82, 19,149,210, 21,239,230,131,244,147,103, 89, 38, 91, 92,130,161,239, 37,225, 12, 81,109,103,153,148, 98, 56, -231,112,110, 64, 43,141, 50,138,190, 19,216,214,218, 49,179, 25, 80, 6,134,118,144,233,221, 57, 36, 23, 10,202, 82, 14, 58,201, - 43,239, 41,235, 26,141,244,105,247,125, 47, 27, 93,138,148,101, 77, 61,147,226, 15,101,196,210, 5,138, 97, 12, 67,185,252,179, - 66,144,108,239,166,105,174,190,118,239, 29,179,177,225, 39,196,241,144, 34, 94, 69,129, 26,133, 64,153, 49,144,130,136,187, 98, -144,204,242,178,172, 32, 70,138, 82, 96,216, 24,194,184, 69,140,189,243, 36, 72,138,217,108,122,117, 89, 89, 35, 93,229,214, 26, - 65, 77,252,128,244, 64,215, 68,239,229,255, 75, 16,222,167,147, 33, 40,145, 32,138,104,209,104,177,141,133, 81,169, 62, 12,210, -254, 86, 20, 50,208,204,166, 83,113, 49, 24, 43, 8,129,146,176,142,178,172,176,214, 96, 71, 8, 92, 41, 69, 57,138,177,148,146, -118,188,229,114,141,247, 14,173,141,232, 2,180,198, 57,225,131, 73,210, 37, 63,116, 66, 45,204,166, 19,138, 82,254,206, 75,174, -217, 57, 73, 57, 52,151,104,198,248,188,200,229,105,197, 23, 92, 8,188,156,146,244, 95, 39,228, 98,213, 74, 54,233,161,107,209, -218,176, 94,175,105, 55, 27, 98, 18,183, 69,223,201,102,158, 98, 98, 50,157, 10, 4, 27, 3, 54,151,170, 87, 82,196,245, 3,109, -215,114,153,181,175,149, 34,164,128,181,226,251,191, 44, 90,185,204,127,207, 70, 8, 92, 33,130,196,224,189,240,196,105, 76, 63, - 84, 80,100, 25,109, 35,239,174, 15,129,105, 93,227, 99, 64,178,249, 69, 83, 18,156,151, 20, 65,239,169,202,223, 43,218,139,170, - 4, 24, 7, 30, 67, 76,129,182,105,175, 6, 84,109,164,131,254,114, 72,108,154, 6,173, 45, 68, 65,158,138, 44, 19,145,154, 81, - 4,239,232,187, 1, 63,186, 14,180, 17,255, 58, 41, 49,190, 46, 12,125,143, 82,138,193,139,203, 68,208,186,132, 31, 6, 80,226, -165, 46,139, 74,126,182,198,140,212, 23,104, 37, 3,190,119,254,106, 3,110,187, 22, 21,133,131,222,172,215,116, 93,135, 50,154, -162, 16,189,142,181,150,102,172,214, 21,237,143,196, 66,183,173, 68, 62,163,204,136, 66, 6,105, 22,180,226,140,145, 6, 45,197, -102,211, 16, 99, 26,159, 47, 79, 81,228,216,204,140, 29, 9,107,154,213, 70,158, 29,210, 88,216, 36, 20,159,116, 95,120,202,162, -132,241,172, 35,137, 67, 70, 41,129,230,149, 86,100, 99, 68,111, 2,234,178,196, 5, 89,134,202,122,138,115,194,255,123, 18,109, -223, 18,156,163,170, 50, 25, 22,116, 98,112,129,100, 51,186,182, 17,251, 97,244,100, 54,103, 50,153,146,101,134,170,158, 82,100, -151,141,140,242,185,183,205,134,245,106,141,235, 27, 17,174,170, 40, 93, 0, 69, 77, 94, 26,136,242, 14, 12,110,192, 42,112,171, - 53,183,118, 94,101,229, 90,250,163, 11,108, 85,211,247, 61, 90, 89,188, 91,208,172, 79, 88, 47, 15,233, 22,207,104,215, 79,216, -172, 94,114,118,250,144, 71, 95,159,112,212,205, 56,124,121,193,225,131,111, 56, 63,123,198,186,221,197,185,138, 95,254,109,226, -217,255, 83,243,104, 13, 79,207, 21, 79, 30,126, 75, 27, 30,178,120,246, 88,206,214,197, 41, 15,190,126, 64,138,142,157,107,215, -165,118,245,181, 87,217,157, 77,105, 47, 46, 56, 59,190,160,117,134,253,173,109, 81,180,215, 53, 31,255,232, 15,201, 38, 19, 78, - 23, 45,139,245,154,139,197, 9, 95, 62,122, 74,183, 58,230,244,228,132,237, 74,243,205,211, 67,206, 47,206,216,154,239,112,239, -205, 55, 89,118, 3, 77,144, 2,166,211,214,113,190,114, 52, 27,199, 87, 95, 63,231,228,232,156,112,113, 78,150, 28, 59,243, 93, - 94,121,245, 46,123,251,215, 40,102,215,248,221,131, 71,100,153,231,198,254,174,164,243,101,150, 69,235, 89,119, 17, 83,214, 76, -203,130,179,151,199,236,236,236,240, 87,255,233, 95,241, 63,254,175,255, 7,135,207,143,216,170, 51,126,247,219,111, 96,179,193, -120,207,234,116,201,239, 30, 62,102, 43,215, 92,159,207,217,175, 75,113, 4, 77, 38, 28, 47,123,190,255,209,247,136, 67,164,115, - 61,198,170,240,105, 89, 86, 56,151,232,163, 38,205,118, 80,121, 73, 26,225,173, 20, 69, 56, 99,179, 28,107, 20,101, 85,178, 94, -173, 9, 81,194, 13,188,243,252,231,223,223,231,231, 79,150, 76,167, 83, 82,146,182, 53, 80, 76,103, 51,121,201, 99, 64,105, 17, -198, 40,173, 41,170,138,178, 44, 69,236,164, 68,229,238,147, 4, 35,136,119,220,176,181,181, 37, 47,133,201, 36, 16, 68, 43,156, -247,227,116,158, 51,184,129,178,168,240, 65,250,204,255,226,141,146, 63,190, 59,229, 55,199,158,182,105, 80,198, 80,100, 37,131, - 27,248,238,117,203,141,218,240,114,229,209, 70, 60,216, 36, 17, 91,201, 54, 45,254,117,225,137,199,204,243,174,151,131,119, 16, -174, 58,211,210, 83, 94, 20, 5, 93, 63,224,157, 67,107,197,122,181,193,123,225,203, 50, 43, 54,177,162, 40,228,238, 75,233, 10, -118,213, 90, 33, 45,106, 3,160,198,173,188,191,186,232, 0, 38,179, 25,193,139,218,123, 54, 19, 21,255,101,160, 71,138,191,183, - 85, 9, 28, 41,155, 78, 24,197,106,114,208,138,170,123,112,130, 4,244,131,192,236,205, 40,178, 11, 65,172,111, 90,107,208, 50, -245,247,195, 32, 54, 21, 99, 48,122,228,132,187, 94,124,169,113,172,247,244,158, 44,207, 71, 72, 85,210,209,148,177,132,193, 97, -172,108,242, 33, 4,146, 10, 87,195, 79,150,143, 27, 96, 46,141,105,130,168,136,234,183,174,100, 59,117,131, 84,204, 10,228, 45, - 23,187,209, 98, 43,148,132, 47,209, 93, 24, 45,212, 6, 73,224,107,109,164,193,239, 18, 26, 7,105,198,210,154,241, 80,245, 44, - 46,206, 71,231,132,168,149,235,122, 66,240,158,170, 42, 80, 90,148,209, 49,197,209, 70,101,113,109,139, 25,249,228,162, 40, 25, -156, 67, 43,133, 50,178, 1,183,109, 79, 59, 66,248, 77,211,141,223, 91, 70, 82,130, 6, 93,217, 51,141, 65,197, 68,219,108,228, -235,115, 66, 79, 64,148,159,183, 21,120,222, 7, 73,168,179,185,197,216, 66,210,248, 12, 34,116, 28, 28,193, 15,116,221, 64,211, -173, 9, 94,212,232,130, 30,216,171,237, 42,145,196, 30, 55, 94,178, 33, 72,248,136, 54, 2,147, 74, 36,175, 88, 20, 51, 35,205, -139, 67, 47, 3,245,165, 42,124, 90, 75,199,119,215, 54, 24,101, 41, 10, 65,206, 38, 85,133,228,124, 71, 98,144, 27, 54, 43,228, -103,218,181, 61,109,215,144, 84, 66, 41, 17,118, 58, 39, 29, 1,222, 57,218,182,231, 50,159,190,170,132,114, 41,171,146,164, 20, -221, 32, 3,148,235,189,136, 7,179,140,224, 60,206,251,241,253, 16,154,197,123, 41,239,145,207, 87, 46,234,188,144, 8, 97, 65, - 88,122,250,161,199,123, 39,139, 0,162, 33,232, 58,105,174,114,110, 16,136,221, 90,202,170,196,106, 9,186,209, 6, 98, 12, 12, -131, 8,237,242, 76,196,137,155,102,131,115, 14,101,140,208, 91, 41, 81,148,114,254, 40,160,109, 27,148, 26, 93, 0, 67, 75,215, - 54,168, 17,113, 89,175,215, 20, 85, 77,140,162, 95,144,118,193, 75,167, 9,104, 13, 42, 41,218,205, 90, 40,173, 82,184,125, 17, -117, 90, 20, 80, 21,162, 23,136, 49, 1,226, 32,208, 90, 3, 92,157, 37, 62, 69,217,154,199, 33, 32, 2, 49, 70,208,130, 66, 22, -165, 20,227,128,133, 76, 74,162,130, 2,146, 80,149,229,164, 64,107,233,115,136,120,156,219,224, 6,199,102,181,193,140,103, 87, - 85, 85,212,211, 41, 89, 46, 67,100, 61,155,202, 55, 16,229,239, 19, 59,173,199,181, 34,118,118,110,160,237,156,100, 51, 52, 43, - 22,103, 47, 25,178,156, 87, 63,254, 14,214,215,184, 33,151,225,109, 88,210,175,142,240,253, 2,215,158,227,251, 83,146,235, 24, -124,131,107, 79, 88,191,252,156,229,197, 3,150,203,111, 88,156,127,197,226,232, 62, 15,126,254, 25, 71,247,127,202,225,241, 3, -142,142, 29,103,207, 79, 56, 57,124,192,106,243, 5,171,167, 95,209, 13,158,229,233, 49,214, 90,114,221,179, 59, 77, 76,102,150, -127,252,233, 79,248,187,127,252,130,118,253,140, 44, 11, 20, 5,156,173,207, 73, 41,177,108, 29, 67,215,240,254,187,239,242,227, - 79,190,203,187,223,121,143,106, 94,243,218,107,175,115,238, 20,201, 64, 8,142,105,157, 51, 52, 27,142, 78, 47, 88, 13,142,175, -158,188,164, 42, 75, 46,214, 23,124,253,248,148,243,166,147,178,166,190,229,124,181, 96,208,134,182,107,209, 58,178,220, 56,190, -124,244, 45, 55,111, 94,227,245,123,247,248,201,103, 95,210,180,107,114,165, 36,225, 79,195,100, 20,152,230, 85,205,166,151,110, - 10, 23, 52, 63,254,209,247,184,125,123,143,124, 59, 35,155,150, 40,229,241,125,160,200, 75, 62,252,240, 67,102, 55,238, 16,140, -225,225,195, 47, 57,126,242,148, 45, 91,242,198,193, 1, 55,119,118,184,243,218, 29, 66, 12,152,237,186,252,116, 72,138, 70,231, -228,243,237,241,161,146, 9,204, 13, 61, 26,225,185, 38,101,197,116, 54,189,186,236, 51, 43,222, 88,128, 55,118,115,246,166, 37, -223,156,117,120,239,201,108,134, 25,197, 34,235,102,131, 27,188,240,143,110,192,249, 56,114,215, 18,149, 90, 86, 37,121, 89, 81, -148, 21, 85, 85,142,117,172,163, 98,214,136, 32, 35,203, 11,218,182, 69,105,197,116, 62, 39, 33,147,164,205, 45,202, 24,140,214, -220,221,214, 60,190,232,217,171, 44, 47,151,142, 44, 23,111,187,119, 3, 55,103, 57, 7, 83,195, 44,215, 28,174, 3, 41,129, 74, - 81, 56,180, 20, 69,100, 52, 66,144,214, 10,140,135, 86, 76, 39, 83, 57, 44,189, 40, 62,141, 82,228, 54, 71,107,177, 74,109, 54, - 98,183, 83, 74,145,198,131, 66,193,213,159, 83,150,178,213, 8,247, 53,218,208,162,194, 69,143, 27, 91,193,172, 21, 11, 88,150, - 73, 41, 66, 61,169, 80, 72, 87,183,181, 86,196, 69, 93,199,186,217,208,117,189, 88,119, 82, 18, 63,113,219,142,176, 47,104, 99, -199,207, 88,138,101, 68, 52, 40,151,176, 86, 8,140,167,197,238,227,156,132,140,244, 93, 7, 74,141,150, 52, 69,215,180,116,189, -112,240, 9, 25, 6,242, 66,210,184,186,182,197, 71,129,209, 67, 8,114, 48, 7,143, 11,151,169,120, 99,142,188, 23,113,148, 12, - 50, 98, 33,234,189, 92,144,198,138,239, 57,203, 50,162,151, 45, 83,107,233, 33,183,214,160,188,156,128,110, 60,216,251,190,103, - 62,159, 11,151, 59,136,136,145, 56,122,204,211, 8, 93,134, 40,135, 94, 16,197,250,249,249, 57, 77,215,140,188,116,162,174, 74, - 38,147, 41,193, 59,234,233, 4,165,197,245,224,198,207, 73,134, 25, 35,130,174, 74,160, 92,197,200,103,142, 63,251, 77, 35,142, -141,204,102,244,163,216,237, 82,216, 85, 85,149, 8,245,162,216,156, 36,235, 94,218,214, 46,121,253,211,147, 19,234,201,132,186, -158,144,153,140,122, 50,197, 26, 81,202,163,100,200,236, 7,225,248,220, 32,195,226,246,246, 14, 2,217,119,104, 3,206,123, 66, -144,109,238,114, 88,184,220, 44,253, 88,215,139,146,159, 77, 63,170,248,203,170,194,245,142,178, 44, 68,151, 98, 68, 39, 97,148, - 18,206,186, 44, 89,175, 86,196,148, 40,108, 38,124,176, 19,221, 64,219,182,227,123, 40, 86, 82, 99, 47,155, 12, 37, 48, 39, 9, - 4, 70, 28,228,115, 28,186,238, 10, 46, 7, 69, 85, 85,244,189, 32, 54, 33,120, 36,174,183,160, 40,114,114,155,131, 6, 31, 61, - 34, 26, 23,154,163, 24,173,170, 32,234,241,245,122, 3, 73, 93,137, 53,157, 11, 72,216,147, 29,105, 42,205,116, 50,165,115, 18, - 50,149, 82,186, 18,144, 38, 4, 62,175,234, 74,168, 5,107,175, 6,218,245,122,131,181,150,201,100, 66,210,224,125, 32, 18, 5, - 61, 24,164,219,160,200,165,104,102,185, 92,208, 15,221,213,115,223,117,173, 32, 0, 94,222,129,174,151,129,188,200, 11,170,162, - 66, 42,125, 97, 50,157, 18,122, 17, 19,183,109,135, 31,251, 47,148, 82, 99,178,166, 22,100, 38, 1,200,242,112, 25, 8, 36,122, - 3, 5, 73,134, 38,173, 68,119,226,157, 12,230,222,137,138,221,141,200, 74,223, 13,212,147,114, 68,222, 34, 89, 46,194,224,132, -162, 40, 75,202,233,156,188,154, 48, 56,169,238,156, 76,107,194,144,104, 90, 71, 59, 56,178,220,144,229,134,227,211, 35,150, 23, - 11,250,166, 33, 6, 79, 34, 18, 83,162,107, 27,138,170,162,168,106,202,170,134, 20,228,204, 24, 6,202,178, 34, 5, 73, 48,204, -171,154, 20,122,124, 57,225,245, 79,254, 9,167, 47,133,158, 67, 25, 84, 44,209,182, 66,233, 9, 74, 89,108, 62, 71,155,154,232, - 26, 98,127, 74, 24, 78,105, 23, 47,104, 86, 79,233, 87,143, 89,159,127, 77,191,121, 78, 63,156,226,134, 51, 46, 78, 30,115,126, -252,128,110,253, 53,205,243,111,104, 86, 47,152,221,124,133,183,223,184,203,235,175,188,206, 55, 79, 30,145,134,129, 44,182,124, -243,248, 2,149, 20,165, 6,133,104,124, 46,150, 27,126,244,227, 15,120,235,141, 59,252,240,135, 31, 17,124,199, 55, 95,127,205, -166, 93,177,190, 88, 51,184,142, 15,223,123, 19,232,168,115,139, 49, 3,131,111, 24, 66,226, 95,254,213, 63,229,199, 63,248, 46, -206,123,142,206, 78,169,202, 1,149, 2,147, 89,198,201,249, 5,154,128, 15, 61,231,103, 13,250, 15, 97,249, 0, 0, 32, 0, 73, - 68, 65, 84, 47,207,215,188, 60, 89,179,127,109,151,135,143,158,243,236,217, 17,239,189,243, 22, 77,219,243,205,225, 25, 88, 88, - 54,107,130, 78,216,124, 74, 86,149, 88,147,179,110, 68,103,180,217,120,118,111,221,166,206,119,248,240,189, 15,216,217,223,227, -147, 31,126,204,179,163, 23,228,117, 65, 49,153,242,198, 91,247,120,253,131,119,104, 76,201,195,167, 47, 56, 94, 92,240,203,127, -252, 57,143,159, 30,210, 15,107, 76,190,189,243,105,175, 44,245, 84, 46,203,228, 37,204,226,114,155,213, 74,201,100, 49,173,201, -108,142, 81,146,106,214, 53,173,216, 72,146,120,244, 94,217,202,249,226, 68, 30,182,182,235, 25,134,158,161, 27,164, 96, 37, 38, - 62,190, 51,227,187, 7, 37, 15,207,199,188,239, 32, 66,184, 97, 16,161, 91,158,139,122, 84, 82,218, 2, 54,203, 88,175,214, 24, - 35, 30,202, 75,207,106, 89, 20,226, 13, 29,183, 88,165, 52,235,245,154,119,111, 84, 60, 58,115,220,219,207,121,218,104,180,178, - 35, 68,174, 56,152, 89, 66, 74, 28,204, 44, 15, 79,122, 98, 10,151,232,158, 64,147, 70, 9,111,154,229, 84, 69,197, 48, 10,162, - 82, 16,145, 86,158,101, 36, 47,219,182,181,162,162,191, 12,112, 9, 41,146,103, 5, 69, 89,225, 6,129,117,251, 65, 20,191, 33, - 74,177,201,149,199, 86, 41, 80,137,161,151, 80, 21,171, 37,197,233,242, 98, 17,244,161, 32,141,137,119,206,245,244,189, 4,129, -144, 18,198,104,138,162, 28,127, 62, 70, 44, 95, 65,210,172, 98, 8, 76,103,179, 81,148,150,174, 46, 85,107, 44,117, 93, 50,157, -206,200,172,101, 54,159, 81, 22,165, 92,188,200,102,123, 57,148,160, 69, 39, 17,162,240,253,193, 75, 39,183,181, 57, 26, 37,212, - 65,150,139, 29, 45,151, 18,148,232,228,114, 54,214,162,116, 68,172, 84, 25, 62, 38,121,177,234,138,170, 44,201,243, 82,134,138, - 40, 25,236,221,120,249,217,113,243,204,108,198,102, 20, 94,213, 85, 41, 94,117, 31, 40,138, 12,141,192,237, 90, 11,239,152,146, - 8, 19, 67,240,144,210,232,129,143, 44, 22, 11, 46,109,126,101, 85, 9,212, 92,148, 12,126,192, 90,121,126, 4, 14,214, 76,166, - 83,170,170,162,105, 91,250,190, 99, 54,159,209,180, 45,243, 75,116, 41, 4, 66,252,255,153,122,147, 47,203,211, 51,191,235,243, - 78,191,233, 14, 17,145,115, 86,102, 85, 86,214, 32,169, 84, 85,146, 90,234,150,186,101, 9, 75,234,182,218,134, 67, 27, 48,108, - 76,115, 0,195, 18,150, 44,216,233, 15, 96, 3,102, 9,135,195, 57,172,188,198,112,236,182,161, 77,183,187,229,110, 13,141,164, - 82,205, 83,206, 25,115,220,225, 55,189, 19,139,231,119, 67,228,162, 42,171,114,136, 27,119,120,223,231,249,142, 66, 89, 88,251, -155,120, 94, 99,140,212,211, 22,142,232, 69,220,231,163,188,239,199, 52,146, 67, 18,177, 88,223, 75,125,100, 85,211, 15, 3,214, -104,138,186,196, 88, 39, 98,205,224,167,146, 22, 71,240,145,170,169,105, 55, 27, 82, 78, 92,187,126, 29,163, 53,199,199,199, 24, -167, 56,216, 59,160,174, 11,209,163,228,137,255, 15, 82,209, 89, 56, 81, 60, 27, 35, 65, 58,187,203, 94, 91, 35,138,255, 9,177, - 49, 90,220, 15, 67,223,147,114,166,174, 43,129,248,145, 1,217, 21, 22,239, 5, 9, 89,111, 54,148,117,197, 24, 3, 70,107, 86, -155, 13,151,229, 45,133,168,246, 69, 73,157,241,253,120,105,113, 26,187, 22, 59,189, 78,198, 24,241,192,183, 45,166, 42,104, 42, -121,204,130,114,140, 52,181,216,229,114,206,248,224, 81, 90, 84,231, 93, 39,186,131, 93,134, 4, 64,206,138,217,108, 62, 13, 39, -134,237,182, 99,177,152, 81,150,165,160, 10, 77, 51,241,247, 21, 41, 38,138,157,184,203,137, 72,112, 12, 35,214, 56,252, 56,200, -115, 48,209, 59,214, 57,156,117,147,213,174, 96,232, 59,180, 49, 68, 47,139,199,142, 86, 32,103,150,203, 57, 85, 89,162,140, 38, -250,223, 56, 2, 64, 1,210, 5,127,113,126, 78, 76,153,210, 22,211,112, 33,150,187, 97, 24, 24, 7, 79,202,145,249,108,142,177, -134, 97,144, 75, 92, 41,225,215,181,209,228, 44,255, 13,210,139, 17,147,184,126,148,145,231, 65, 32,125,233, 4, 87,104, 66, 24, - 40, 75,209, 93,140,163,167, 46, 36, 20, 74, 27,195,249,249, 25,237,102,203,234, 98, 69,225,236,165,189,206, 22, 82, 89,237,170, - 6, 87,213,100, 52,109, 43, 5, 78,203,189, 37,139,229,146,162,174,200, 19, 98, 55,244, 29,153, 64,142,129, 24, 6,198,126, 64, - 25, 69,221,204,177,165,156, 91, 85, 81, 11, 98, 18, 35,179,249,146,230,202, 77,238,188,241, 21, 46,158, 72, 80, 86,138,153,170, -185, 65,181,124,145,122,113,139,170,190,138, 45,231, 24, 91, 18,195, 5,219,195, 95,146,218,199,228, 52,160,140, 67,153, 5,205, -222,109, 80, 21, 67,247,156,216,157, 49,116,207, 25,183, 79,232,207, 63,103,230, 6, 54,221, 22,101, 28,143, 63,249,144,119,127, -241, 99,142,143,123,134,216,113,124,177, 5, 35,108,207, 38, 40,182,190,164, 50,150, 20, 71,158, 63,124,194,231, 15, 30,240,240, -253, 95,242,211,159,252, 53, 15, 30, 63,230,221, 95,255,138,118,123,198,222,158,102,244, 91, 54,235, 22, 83, 70,234,166,225,245, - 47,188,130,182,142,177,111,249,197, 47,222,225,209,103,143,168, 10,203,172,170, 89,204, 75, 74,101, 24,186,145, 89, 83,225,131, - 33, 89, 75, 23, 34, 62, 68,158, 60, 59,103,181,238,120,126,116,198,195,199, 79,217, 14,158,213,197, 72, 85, 55,156, 94,116,156, -174,214, 28,159,173,121,240,248, 17,206, 64, 72,153,235,183,175,147,147,167,182, 21,245,188, 70,149, 53,232,134, 43,183,239,240, -226,189, 87,120,253,139,175,177,191,156,241,249,251, 31,176, 93,121,190,253,237,239,242,119,254,238, 15,185,113,251, 6,255,251, -159,252, 9,223,253,230, 91,220,126,225, 69, 76,115,229,234,143,114, 18,101,108,219,118, 19,103, 56,229,250, 42,129,198,227,196, -237,236, 84,214,187,122,206,237,102, 75, 89,149, 92,157, 57,246, 43,205, 69,180,156,111, 37,102,178,168,138, 75, 81, 80,217, 52, - 92,173, 50,179, 66,243,229,235, 5,159, 95, 0, 89,147,141, 2,196,106,178,109,123, 82,218,121, 54,101, 51, 49, 70, 18,219,138, -162,160, 27, 58,170,170, 98, 24,123,129,225, 10, 57,176, 66, 16, 1,212,239,220,157,241,231, 15, 91, 94,191,226, 56, 92,143,108, - 70, 79, 24,197,214,245,245, 23, 42,254,230, 73,199,139,251, 5, 39,219, 64,151, 20, 36, 41,165,103,130,178,131, 23, 88,204,236, -132, 89,218, 48,244, 82, 93,233,156,155,196, 99,194,153, 95,172, 87,128, 64, 95,214,152, 73, 71, 32,200,198,206, 71,237, 7,201, - 28, 87, 90,242,204,189,247,212,213,196, 11, 35, 23, 37,198, 16,115,152,182,127, 51, 77,254, 35, 69, 89, 96,148, 52,194,105, 35, -116,134,202,146,112,229, 10, 43, 16,115,240,212, 85, 35,201, 86,133,120,146,187, 78,158, 35,107, 12,179,249,156, 89,211,136,232, -170,174, 25,199,145,102, 54, 19,184, 79,239,188,218, 5, 85, 41, 9, 97,245,164, 96,175,170,138,170,148,173,187,106, 26, 42, 87, -210, 79,219,233, 56,117,210, 91, 43,240, 55,106, 87, 53, 11, 99,144,246,175,174, 27, 32, 79,220,103, 18, 15,120, 89, 78,106,239, - 32,232, 72, 63, 12,194,117, 26,205, 46,222,117,167, 57,216,109,117, 42,107, 22,139, 25,125, 63, 18,189,167,237,122,217, 14,124, - 64,130,116,162,108, 7, 69, 33, 42,246,174, 99, 24, 7,102, 77, 77, 51, 5,170,104,165, 47, 57,246,157,104,201, 90,249,158,141, -145, 3,180,112,238,146, 91, 94, 46,151,116, 93,135, 31,197,241, 48, 14, 3,214, 20, 66,231,100,197,124, 62,199,149, 82,104, 49, -180, 29, 69, 93, 92, 34, 45, 41, 41,198,126, 82,149,107,141,239,123,202,178,100,181,186,144,173, 54, 11, 45,208,247, 3, 17,113, - 28, 8,156, 26, 65,139,189, 74, 59,195,208, 15,108,183, 91,214,171, 11,250, 97,100,209, 52,104, 35,225, 36, 77, 85, 79,149,181, -162, 98,239, 71,249, 26,128,112,219,157,104, 50,196,250, 39,126,246,186,174, 47,109,161, 18,224,227,113, 86, 90,228, 70,239,113, - 70,180, 44,198, 90,176, 82, 80,130, 2,165, 96, 28, 70, 82,140,236,236,144,214, 73,117,110, 12,129,161,147,193, 61,101,177,175, - 53, 77, 69,202,106,178, 54, 74,178, 97,223,203, 5, 93,186,130, 24, 51,227, 56, 80, 58,121,175,182,219, 45,195, 40,129, 47,187, - 72, 98,107,228,178,115, 78,130,159,234, 90,162,160,209,147, 70, 65,107,134, 97,188, 20,220,118,125,143,181, 34, 16, 21,203,157, -208, 17,227,232,233,187, 78,168,190,233,179,212,141, 3,227, 32,138,252,170, 18,202,165, 40, 74,186,201, 51,174,148,193,149,210, -222,104,157,136, 41,157,115,184, 66,232,129,157,115,165,172,106,170,178,164, 40,172,112,249,133,155,180, 45,146, 43,224,123, 17, -245,206,102, 51,134,126, 96,177, 88,194, 52,228, 72, 63,193,120,169, 25,137, 49,226,156,168,225, 99,146, 97, 52,199, 73, 67,148, - 68, 7,164,146,104, 17,124,136,204,102, 13, 10,177, 55,218, 73,166,224,189, 8,133,197,134, 87, 78,200,129,100, 97,140,126, 36, -199,132, 15, 65,202, 97, 6,201,237,239,251,145,110, 28,197,153,227, 44,205,254, 18,237,170,203,207, 37, 81,206,247,178,170,192, -104, 10, 55,147, 90,223,126,152, 28, 31, 45,125,187,189,116,102,164, 36,195, 74,123,177,102,240, 35,111,127,249, 27, 84, 87,246, - 57,121,184, 38,196,136, 85, 73, 94,199,228, 32, 5,198,216, 17,134, 53, 67,119, 74, 12, 27, 72, 26,138, 5,245,254,171, 92,189, -243, 29, 94,122,229,239,241,202,151,255, 1,117,115,147,144,161,219, 60,195,164, 11,218,139,167,108, 79, 62, 99, 28, 70,110,124, -237,235,228,113,205,102,181,165, 93,173,121,249,245, 43, 92,172, 70, 78, 87,153, 46, 42,124,208, 36, 13, 33, 71,214,109,226,162, -207,156,117,176,245,240,224,120,228,116,171,216,250, 68, 59, 42, 58,159,121,252,228,132,143, 62,122, 68, 83, 55,188,255,254,115, - 2, 22,180,230, 75, 95,249, 50,127,250,167, 63,103,190, 92,224,170,125,238,220,189,197,124,111,206,242,234, 77,138,170,226,238, -203,247, 88,117,145,251,175,188,204,205, 91,119, 25,199,129, 87,239,223,101,189,217,146, 82, 96, 54,155, 17, 99, 98,185, 60, 96, -140,129,231,103, 27,110,220,184,193,241,201,154,151,238,223,231,183,191,246, 13,206, 47,206,248, 95,255,201, 63,229,201,251,239, - 51,142, 3,215,246,231, 28, 63,249,156,207,127,249, 14,207, 62,251,132, 7,159, 61,226,222,107, 95,228,244, 98,195,155,111,189, -193,227, 39, 15, 72,221,134,127,252,223,253,143,124,252,225, 51,254,254,223,255, 35,138,162,224,179,135,159, 50, 47, 13,234,250, - 75,247,178, 34, 83, 86,213, 37, 44,165,148,216,109, 84, 76,232, 66,161, 18, 20,187, 45,175,174, 9,126, 36,103,197,102,179, 34, - 38,120,235, 70,193,141, 69,193, 81,155,248,203, 79,206,168,103, 53,219,141,132,210, 44,151,123,146,242, 99, 51,223,186,227,120, -231,249,200, 91, 55, 75,254,207,143, 59,140, 21,238, 58,229,192,183, 94, 90,242,171,195, 72,187,105,169,103, 53,171,213, 10,241, -134, 10, 12,106,157,197, 15, 35,237,208, 81, 87,229, 37,180, 61,246, 61,111,220,154, 1,240,241,105,228,213,101, 32,167,204,223, - 60,235, 41,141, 84, 8,138, 5, 75,243,149, 91, 37, 40,197, 47,159, 11, 58,208,249, 1,171, 13, 49,201,101,178,183, 92,226,156, -180, 80,117,253, 64, 78,129,197,108, 78,142,137,243,139,115, 82, 18,184,180,105, 36,225, 12, 32, 43, 81,197,174,214, 91, 10, 43, -150,185,161, 31,176, 86, 83,213, 51,174, 28,236,163,148,226, 98,181,154,182, 77,177,221,244,131,240,166,198,149, 40, 96, 28, 35, - 33, 73,247,111, 89,150,204, 38,117,110,206,144,153,196, 51,211,143,221,229, 57,159, 55, 19, 82,177,198, 56,199,102,181,161,105, - 26,250,190, 99, 54,155, 49,250,113,242,176, 86, 8, 47,216,209,212, 13,253,216, 17,130,208, 44, 9, 41, 91,137, 41,226, 72,114, -225,100, 13, 58, 19,163, 88, 1, 67, 16, 36, 69, 41,195,122,179,130,233,177, 40,165,152,207, 23, 24, 45,145,186, 6, 5, 70, 46, - 0, 16, 30, 59,107, 48, 88,129,250, 13,164,144, 39,216, 95, 68,140, 49, 10,183,105, 11, 71,233,164,171,217, 40, 67, 66, 82,195, -130,151,109,209,143, 82,193,169,149,216,127,132,167,150,193, 42,120,207,249,197, 5, 89,193,222,222, 2, 87,200, 65,185,221,180, -236,237, 45, 80, 74, 98, 93,199,113, 68,116, 8,242,248,139,233,178,219,229,185,111, 59, 25,106,135,190,167,170,107,156,147, 76, -240,157,248, 44,132,128,210,134, 28, 3,100,168,170, 57, 99,144, 50,150,172,196,166,233, 10, 77, 24,188,240,226, 57, 96, 50, 84, -179, 26,109,133,115,179,197,196,165,186, 2, 83, 8,242,181,221,110, 49,166,160, 52,153,139,149,160, 13, 70,105,102,243,138,190, -235,137,209, 83, 22, 37, 87,246, 15, 88,173,215,244, 99,207,124,177, 71, 78,153, 16,164, 43,186,221,182,216,202,137,231,222, 22, -178,193,247,242,216, 65,248,232, 20,228,179,225,131, 64,232, 85, 49, 13,157,219, 45,133,115,184,170, 34,132, 68,214, 83,187,161, - 45,104, 91,225,139,199, 78, 82, 3,115, 18, 77,133,181, 86,222, 7, 49, 81, 55,205, 37, 10,149,115,158, 6,143, 10, 41,117,170, -104, 39,139,230, 14,173, 82, 74,178,229,179, 18,209,162,124, 15, 37,202,100,186,173,100, 51, 56, 39, 46,151,178,172,232,123,225, -168,173,117,140,227, 4,119,215, 21, 86, 89, 66,142, 88, 45, 90,152, 97, 24,105,154,138,126,232, 37, 92,202, 58,202,194,136,128, -214,201,166, 30,114, 34,140, 34,226,157, 47,247,176, 90, 51,134,192,208,119,192,228,151,143,226, 12, 9, 33, 48,155,149, 82, 87, -140,156,129,123, 7,251,248, 81,154, 10,197, 75, 47, 20,222,172,153,113,113,126, 78, 85,200, 16,188,191,183, 79,140,158, 49, 68, - 17, 7, 42,197,197,197, 5, 57, 38,234,249,156,178,170, 80, 70, 51,142,114,137, 43,160,112, 53, 41, 11,164,110,140, 97,103,177, -203, 57, 79, 2,216,192,114,185,148,133, 43, 75,112,142, 45, 44, 90,137,152, 14, 50,125,215, 51,140, 3,209,123,161,148,172,187, - 28,170,119,155,254,224, 7, 64, 83,215, 37,219,173,136,247,180, 82, 44, 22,191,233, 83,184, 12,155,233,123,140, 86, 20, 90,145, -141,161, 44,157,136, 8, 55, 61, 33, 73, 74, 95,244, 98,111, 43, 92, 65, 81, 21,220,126,245, 13, 94,127,235,251, 60,121,222,178, -218, 4,180, 10, 24, 91,146,213,140,224, 19, 33,180,228,176, 37, 14, 39,168,188, 38,169,125,246,110,188, 65,213,220, 96,255,218, -151,184,118,235,235,188,122,239,128, 39,143,122, 30, 62,250, 51,158,124,246, 23,108, 46, 62,162, 59,127,140, 41, 15,184,251,165, - 63, 98,239,106,201,233,234,159,242,249, 95,255, 27,210,122,133, 9,158,166, 42,120,118,114,134, 66,196,179, 69, 93, 17,195,200, - 11,183,247, 24,123, 79, 84,226,134,113, 70,241,210, 75,119,184,117,251, 22,203,189,134,247,223,251,152,235,183,246,113,166, 98, -181,218, 48,116, 3,139,253, 5,255,207,159,254, 37,215,111, 93,103, 62,111,208,185,228,206,157,155, 20, 69,197,193,193, 1,159, -124,242, 1,175,190,126,159,232, 21, 62,122, 62,250,224, 19,202,178,102, 28, 70,180, 65,180, 34, 81,241,254,251,239,227,189,232, -136,106,231,104,187, 13, 89, 23,168,152, 8, 97,164, 94,204,100,121, 29, 6,230,179,130, 47,188,124,151, 7,159, 61,161, 91, 95, -240, 15,254,232, 15,201,195,150,255,231, 79,254, 37, 31, 61,217,162, 42, 40,234, 37,215,175, 93,197,135,129,190, 61,166,174,102, -236,205,175,210,204,175,243,197, 55,191,136,239,206, 48,251,215,174,253,168, 44, 43,198,177, 39,103,241,230,186,162,148,169, 49, - 71, 22,243, 5,245,172,145, 11, 22, 16, 47,171, 21, 59,198,212, 1,124,109,102,216,250,204, 27, 87, 13, 63,123, 44, 10, 80,180, -194, 24, 75, 74,138, 24, 2,165, 73,188,180,231,248,249, 81,228,229, 61,195, 43, 7,150,207, 46, 36,206, 81,101,205,219, 55, 45, -247,247, 12,159,156,202,166, 38, 16,179, 69,107,203, 27,215, 13,223,184,237,248,213,225,150,210, 85,148,101, 33,126,213,193, 83, - 54, 13, 43, 15,199,157, 28, 24, 95,185, 81,176, 40, 13, 31, 60,219, 74,145,139, 54,242,120, 20,220, 90,136,178,246,241,121, 63, - 93,150, 76, 47,124, 36,133, 9,218, 66, 16, 9,157, 69,137, 92, 56,199,118,179,154, 46, 34,205,114, 57, 93, 18,131, 88,239,154, -186, 33, 39, 48,182, 32,134, 65, 60,242, 81, 42, 46,151, 51, 81, 52,251, 32,252,102,202, 98, 99,114,147,221,199, 89,233, 57,247, - 99, 32, 43, 17,217,148,101,193,206, 43, 60, 78, 27,227,118,179,101, 28,195,165, 8, 41,198,192, 98, 49, 39,197, 41,121, 46, 75, - 27,153,168,135,229, 57, 43, 11,135, 38, 99,157,136,138,194, 36,174, 42, 11, 75, 81,214, 20,149,244,135, 91, 35,135, 66, 89,137, -255,222,149, 5,182,168,177,133,195, 21, 53,133, 43, 80,100, 52,194,109, 86,117,125,105,133, 26,135,129,113,138,118, 45, 38,122, - 36,250, 64,221, 52,196,148,233,123,129, 24,141,145, 0, 28,109, 52,209, 39,124,140,104, 35,156, 98, 81,148, 84,149,132,139,164, - 44,251,186, 66, 54,197,148, 68, 1, 44, 33, 53, 98,203, 75, 81,120,201,148,224,252,252,140,205, 70,148,255, 41, 75, 98, 93,138, -153,166,169,105,219,158,253,253,125,134,113, 64,101,129, 55,155,186,153,160, 78,105, 8,147, 60, 0,169, 30, 29,134,158,186,174, -241,222, 83, 24, 51, 13, 59, 82, 32, 52,140, 3,206, 58,244,116,128,213,179, 25, 70,203, 38, 26,131,167,172, 26,170,194, 49, 12, -157, 12, 33, 19,164,186, 88,204,169,234, 90,178, 2,170,154,126, 12, 56,103,112, 85, 73, 82, 10,223, 13,248, 44,130,168,156, 35, -121,106,180,171,202,234, 18, 13,155,213, 53,117, 51, 67, 41, 68, 8,214,118,210, 17,144, 36,164,199, 88,195,102,187,161,174,100, -152,155, 55, 11,162,151, 45, 86,172,118, 29, 41, 37,178, 23, 71,135,117,210,146,166, 51,210,109,144, 4,137,179,214, 50,132,128, -115,130,194, 56,187,131,198, 37, 79,127, 71,155,164, 44,194, 73, 91, 20, 2,245,106, 61,217, 30,101, 72,149, 54,185,124,169,100, - 95,111,183,236,226,105,235,178,198, 88,217,108, 71, 63,149, 11,105, 75, 66,184,252,114,178,149,237,244, 36, 33, 68,188, 31,104, -102,179, 75,241,156,181,154,170,106,228,245,214, 74,138, 75,172,136, 1, 85,150,196,194, 28, 68,212,103,173,224,176,187,139, 43, -129, 8,223,140, 22, 13,202,208, 49, 14,162,238, 47,156,116, 38, 84,149, 8, 93,229,146, 23,241,105, 8, 98,205,173, 39,164,107, - 71,131,149, 69, 73, 74,114,110,180,219,158, 93, 28,179,208, 90, 17, 63, 4,202,194,224, 71, 79, 81,216, 75,104,124, 54,111,216, -182,178,209,199, 32,150,196,170,172,132,110,200,138,132,198, 26, 13, 25, 81,184,231,140, 41,166,104,236,182,165,174,100, 57, 49, -218,112,122,118, 74, 57,169,230, 79,143,142, 88,236, 45, 49,147,211,162,170,165,115, 98,179,217,226,202,130,174,239,217, 53,243, -213,147,197, 79, 91,177,212, 90,107,165, 61,179,151, 76,133,162,172, 48,198,137,166,194, 57, 58,159,240,227, 40, 77,134,179, 18, -180,194,217, 82, 6,115,160,110, 42, 73,166,235, 7,186,205,134,123, 47,190,202,232,123,186,110,139, 51,137, 66, 39,186,213,115, -252,112, 74,242,103,248,205,115,198,237, 17,177,223,160,220, 82,158,247,217, 28,239,230,116, 87,231, 28, 29,157,113,254,228, 29, -206, 87,159,224,187, 51,108,117,133,235,119,255, 22, 95,251,254,127,203,119,254,155,223,195,110,222,100, 44, 31,177,126,250, 41, -198, 56,240, 61,103,103, 91,118,169,133, 59,237,136, 82,134,118,235,105,251,132,206, 80,106, 67, 10,153,245,166,231,244,108,197, -227, 79,159, 83, 87, 13,167, 71, 27,222,251,245,103,212,245,146, 91, 55,239,160, 44,188,246,218, 43,236,237,239,241,187,191,247, - 59,188,116,247, 5, 30, 60,122,194, 95,253,245,207,208,174, 96, 24, 51, 15, 30, 62, 69, 27,105,178,236,134,142,253,131, 37,111, -191,249, 54, 31,124,252, 9,219,182,163,105,106,110,223,190,197,213, 43, 87,217,108, 86, 92,108, 90, 73,130,140, 61, 33,120,124, - 12,244,221,150,161,237,184,123,251, 58,101,105,105,187,142,122, 94,211, 69,205,225,233, 5, 79,142,207, 80,203, 25, 47,223, 59, -224,133,125,199, 11,183, 28,113,220, 98,178, 34,118, 45,243,198,145, 83, 71,191, 57,225,189,247,126,141,198, 98,234,229,254,143, -140,150,124, 95, 91, 56,118, 29,216, 51,151,248,221,251, 87, 56, 30,144, 3,198, 57,186,209,139,186, 58, 4, 54,171, 53,221, 40, - 30,210,171,181,136, 77,158,174, 60,119, 14, 42, 78, 59,133,182, 5, 95,185,225,184, 53, 83, 28,118,138,118, 76,124,251,165,138, -159, 62, 30,248,248, 44,240,157,151, 42,126,121, 20,209, 24, 20,154,153, 83, 52, 5,188,122,189, 96,229, 21,117,161,249,226,245, -146,175,191, 80,112,209, 71,254,245,231, 50,161,123, 63,162,140,226, 63,253,218, 1, 63,125,180, 1,196,234,210,110,183,244,221, -192,188,176,244, 73,113,216,203, 99, 2, 72, 74, 46,139, 27,115, 81,224, 63, 91,121,148, 2,166,233,210,247,129, 16, 61, 32,188, -181,252, 28,102, 77, 35, 86,179, 81, 56,191,229, 98,201,224, 61, 89,105,148, 21, 79,191, 79,114, 65,161, 32, 68,143,117,150,186, -172, 48, 19, 36,174,180, 40, 90,131, 15, 56, 99, 25, 71,233,146,182,211,225, 25, 83, 36,166, 81, 26,157,198,145,190,147,116,177, -140, 92,246,222, 7, 36,119, 89, 19,130,120,139,179,146,148,181,162,112, 19,100, 46,170,215,194,136, 90, 89,148,207,153,193,123, - 98, 86,212,181, 36,239, 41, 99, 25, 67,194,143,129,152, 64, 59, 71, 72, 96, 10, 17,136, 37, 85,209,183,129,152, 21, 33,128,118, - 98, 1,236,167,239, 57,230, 68, 14, 2,165,165, 20,169,202, 18, 66,160,237, 58, 20, 2,125, 22, 69, 65,219, 9, 92,109,140, 66, -105, 69,204, 65,222,248,109,135,202, 17, 84, 34,142, 35, 41, 73,187, 95,215,182,116, 93, 71,183, 90,211,247, 98, 33, 82, 40, 46, -206,165, 12,200,123,143, 86,162,244, 23,190, 49,211,247,157, 8, 7,131, 8, 31,181,214, 44,150, 11,102,179, 25,219,109,203,222, -222,146,148, 68, 48,232, 10, 9,209,104,135,128,210, 14, 61, 89, 23, 71, 47,133, 20,126,244,100,165, 36,230,117, 24, 8, 81, 10, -125, 68,141, 44,131,133, 12, 28,121,218,138, 20,209, 15, 24,131, 8,187,178, 12, 96,198, 26,202,186, 36, 41, 67, 51,111, 72,214, - 16,201, 20,117, 61, 53, 3,106,140,113,211, 97, 95, 98,181,161,180,150,186,116, 88, 45, 62,230, 52,245, 3, 84,149,164,190, 41, - 45, 67,116, 89, 85, 92,185,122,141,144, 19,219,190,167,174,231, 19, 66, 99,176,214, 16,145,172,118,163, 21,189, 31,201, 41,203, -175, 25,161, 7,140, 19, 28, 38, 69, 41, 3, 26,130,212,212, 38,101,201, 74, 17, 19,164, 9,182, 29,250, 30, 17,133,137,202, 95, -231, 76,240, 35,133,150, 98, 25,103, 45, 69,225,168,172, 8, 74,201, 19, 36, 63,109,176, 33, 68, 70, 47,240,110,206,137,156, 60, -243,249, 12, 99,165, 56,104,244,253, 52,236,105,209,183, 36, 73, 89, 83,218,138,166,102, 28, 9, 73,202, 69,180, 50,216, 41, 39, - 34, 6,121,253,171,105, 3,115, 74,144, 60,163, 52, 57,102,210,216, 17,163,103,185,156,161,115, 4,210,228,128, 72,151, 72,139, -208,117,153, 89, 45,180, 85, 12,158, 24,196, 38, 42, 27,122,186,252, 92,141,227,128,115,150,186,150,140, 13, 99, 52, 93, 55,200, -144, 86,214, 12, 99,192,216, 2,165, 11, 81,216, 27,135,247, 18, 93,156, 51,140, 62, 80, 55, 51, 82, 14, 98, 25, 43,203, 75, 23, - 64, 97, 45, 82,188, 83, 51,159,205,233,250,142, 56, 10, 69, 23,252,200, 48, 74, 52,242,172,150,130,153,110,221, 34,206, 25, 9, -136, 74, 25,180, 83,196,152,196,158, 55,244,236, 95, 57,152,178, 35, 2,155,205,150,126,179, 17,145,170,214,140,163, 56,119, 82, -146, 36,206,161,151,242,166,178,148,109,125,232, 7, 57, 43,147, 32, 30,198, 90, 68, 67,100, 24,188,167,172, 42,116, 89, 99,138, -138,109, 39,150, 73,114,230, 96, 95,196,196,193,167, 75,247, 82, 72, 61,235,243, 83,110,126,225, 21,226, 88,200,231,116, 92,195, -112, 72,236, 78,216,174,142,137,249,140,176, 57, 99,200, 3,205,149,183, 41,212,154,210,110, 57, 63,126,200,234,147,159,113,254, -248, 29,214, 23,159,178, 57,251, 20,223,159,163,203, 57, 69, 49,163, 41, 23, 92,233,110,115,244,112,195,217,163,143,232,253,103, -248,110, 67, 93, 56,222,252,242,171,226,124, 24, 35,197, 78,187,226, 69,188,172,180,228, 2,116, 62, 18, 66, 38,250, 64,223, 74, - 77,241,241,201, 25,171,213, 26,235, 12,161,235,120,118,120, 72,244,154,118,221,178, 55,223,231, 96,121,133,162,104, 56,216,187, -206,237,235,215,121,237,222, 77,238,190,112,131,243,243, 51,222,123,247, 99, 78, 47,206, 56, 63, 91,241,201,167,159, 83,150,138, -227,227, 35,186,118,205,131,207, 31,242,193,123, 31,113,126,186, 66,105,199,188,172,185,114,237, 58,207, 15,159, 10, 82, 58,233, -153, 70, 63,242,252,249, 49, 71,167, 39, 12,237,138,227,195, 83, 46,182, 29,174, 50, 92,191,126,192,226,202,117, 94,125,227,109, -154,107,119,185,113,243,101,190,248,229, 47,241,131, 63,248, 30,199,167, 39, 92,185,186,228,222,189, 23,113, 85,230,198, 65,195, -213, 91,123,152,217,254,193,143,152, 18,225,200,194,185,165,148,168,234, 5,223,124,193,241,206,161,191,204,254, 30,134,145,209, -143,162,112,213, 34,222, 48,133,229,173, 27, 5,203,202,241,193, 89,226,205,235, 5, 31,175,192,106,195,239,222,177, 92,169, 13, -239,159,202, 22,253,226,210,176, 14,154,164, 11,148, 50,220,158, 91,142,123, 69, 78,153,235, 77,102, 51,102,230,133,226,165,165, -225,238,210,176, 26, 51, 31,156,101,158,108,193, 88, 17,190, 85, 69,133,210,240,149, 27, 37,239, 28, 6, 98, 18,174, 55,231,140, -177, 21,237,208,243,246,173,134, 95, 62, 90, 99,180,194, 21,146,158, 68, 74,220, 94, 72,168,196,147,149,240,185, 62,196,233,131, - 29,240, 65,184, 33,235,100,195, 5,137,158, 53,214,210, 52, 13,182,144, 77, 52,132, 64, 81,151,148,214, 81, 76,155,125,206, 9, -223,143, 64,130, 44,138,211,210, 21,164, 32,170,121,103, 5, 45,232,135, 97,122,154,101, 3, 26,134,145,174,109,233, 7, 9, 41, - 17, 88, 59,139,142, 33,200, 54,102, 39, 75,149,168,242, 45, 89, 65, 8, 34, 78, 74, 41, 79,225, 26,194, 15,255,251,175, 41,222, - 63, 55,104,165,209, 90, 84,248, 74,103, 9, 40,201,137,186,172, 40,156,136,208,134, 65, 20,230, 10,228, 80, 36, 67, 18, 45, 69, - 89, 90,250,161, 35,103,232,218, 14,107, 37,239, 61,103, 81, 20,171, 44, 27,121, 86,153,162,172, 68,208, 55,138,231,218, 57, 17, - 31, 65, 38, 70,169,140,253,227,175, 44,248,213,161, 71,101,216, 65,156, 85, 93, 81,150,229, 4,231, 22, 24, 43,138,102,165, 20, -193, 11,119, 31,194,174,117,205,139, 96,176, 31,232, 7,201,190,254,175,126,112,159, 31,127,124,202,206,105, 80, 78, 90,128,174, -235,217,219,219,195,251,192, 56,241,246,214, 56,124,140,132, 40, 25, 7,104,225, 51,253,232,177, 78, 83,213, 21,222,143,148,174, - 64,107, 25,150,186,190,151,150, 56,196, 86,149,115,134, 40,182, 66,239,167, 44,242,186,161,169,107, 57,196, 99,162,172, 75,134, -110, 16, 8,216,139,168,168,105,154,201,166, 55,202,247,228, 61,206,217,233,235, 15, 56, 59, 5, 44, 13, 3, 99, 47,101, 61,174, - 40,232,183, 45, 93, 55,117,160, 71,129,235,253,196, 21, 15, 93, 79,219,110,209, 70,182,192,166,105, 24, 6,143, 70,160,237, 16, - 34,117, 93,131,154, 44, 82, 57,139,208, 45, 68,172,214,178, 45,151, 37,182,144,214,191,162, 16,107, 18, 74,226, 73,165,122,119, - 10, 60,201,146,212,150,115,166, 40, 74, 57,192,131,196,236,218, 66,194,102,114, 70, 62, 31, 57, 83,150, 37,198, 73, 84,106, 97, - 11, 52,242,107,125,247,155,244,189,157, 70, 71,107, 77, 12, 82,198,146,131, 64,204,229,228,195,206, 41, 9,138,164, 69,196,105, -139, 66, 6,112, 47, 78, 10,231, 10,198, 41,211, 98, 55, 56, 23, 14,138,178,144,174,249,186,166,109, 59,161, 6,178,216, 31,171, -178,162,174, 42,234,186, 70,235, 41,192,200, 24, 12, 10,235,204, 37,205, 7,242,122,187, 66,162,127,141,145,250, 96,239,101,187, - 82, 89, 62,234,213, 46,160,200, 24, 65, 42,122, 79, 89, 58, 98, 12,180,125,135,100,253,100,246,246,246,101, 24,180,150,205, 86, -172,142,163,151,104,106, 99,100,128, 40, 74,201,175, 48, 70,226, 92,245,244,125,133, 24, 81, 89,161,173, 8,131, 13,154,106, 86, -225,172, 37,199, 76,215,181,151,232, 85, 12,178,224,236, 82,249, 82,146, 14,128,189,189, 61, 92, 81,209,174, 55, 20,101, 65, 83, - 87,226,228,152,132,196,101, 37, 3,139,247,126,210, 60, 56,214, 23,103,211,162, 87, 80, 21,210, 20, 56,246,189,124, 62, 42, 89, - 90,146, 17,113,101, 74,226, 28,200, 49, 98,172, 33, 39, 56, 60, 60,230,181,175,254, 22,185,124,157,196, 13,250, 49, 49,108,142, -104, 47,158, 97,178,167,219,118, 84,123, 95,224,238, 87,254,152,131,171, 95,102,115,246,128,238,236, 67, 26, 19,240,221, 33,227, -250, 49,219,243, 7,244, 23,159, 51,118, 71,172,143, 62, 36,165, 64, 80,129,167, 15, 63,227,226,228, 83,214,167,143,232,211, 51, -186,147, 99,220,124,129, 63, 89,225, 99,102,232, 58,188, 79,151,116,208, 46, 97, 51,198, 76, 74,114,110,197, 56, 45, 84, 49, 78, -151,190,102,103,185,221,180, 29, 39,199,199,156, 94,156,243,217,131, 7,252,252,167,191,224,209,103,159,113, 48,107, 88,109, 58, - 62,248,248, 1,105, 28,169,172,230,235, 95,251, 10,247,239,189,196, 87,223,254, 18,223,250,157,111,208,173,123,246,247,150,236, - 45, 26,174, 95,191,198,171, 47,223,102,117,113,206,179,103, 71,108,186,150,199,207,158, 49,140,153,193, 71,122, 31,233, 6,201, -145, 48, 86,208,146,100, 10,198, 0,154,140, 31, 7,158, 30, 30,243,209, 71,159,240,206,187, 31,113,247,206,139,180,195,134, 63, -251,215, 63,229,227, 7,143,121,239,215,239,208, 84,115,190,240,230,219,220,123,237, 13,190,254,219,223,224,252,248, 12, 51,219, -223,251, 81,206,242,134, 8,193,139,245,166, 18,104,230,246, 76,241,124,213,179, 25,197, 11,238,189, 8,138, 34, 80,150,226, 53, -119,101, 69,101, 20, 93,212, 28,135,154,151,151,208,229,146,168, 11,172,130, 59, 11,197, 59,167,144,209,188,118,160,121,184,206, -244,201,112,238, 45,223,189,147,248,164, 21,168,247,198, 76,252,167, 63, 63,177,124,124,158,120,239, 40,112,220, 37,250, 40, 48, -120,202, 89,184,214,156,208, 74,178,195,111,204, 13, 71,109,194, 88,133, 70, 4,101,134,200,253,131,146, 15, 78, 71, 17, 31,105, - 13, 36, 98,130, 91, 75,225, 23,159, 94, 8,167, 24,130, 84, 18,198, 36, 97, 40, 57, 75, 74, 26,232,203, 45, 59, 79, 48,168,209, -134,118,219, 94, 90,158, 80,234,146,251, 50, 70,226, 53,171,178, 70,163,216,110, 55,104, 43, 69, 41,214,137, 2, 86, 96,120,129, - 55,165, 80,195, 95, 30,154, 40,133, 54,150,229, 98,142, 53, 98, 21,172,106,177, 4,250, 65,172,128,193, 75, 42,152,108, 81,146, -189,110,180, 12, 30,221, 32, 7,230,175,143, 18, 49,253,230,247,198, 24, 24,122,241,236,170,105, 75, 84, 10,200,162,250,119,133, - 40,243,253,180,169, 56,107,201,201, 11, 34, 48, 9,201, 4,214, 20,255,116, 14, 97, 18,153, 25, 80, 50, 12,168, 44,131, 5,211, -193,217,245, 61,255,229,239,222,228, 23,207,132,207,213,214,240,179, 7,107, 1,240,141, 36, 16,230, 36, 98,185, 24, 2, 85, 37, -141,119, 97, 26, 60,118,155, 68,206,121,226,191, 69,192,232,189,151,204,114, 35,153,243,191,247,218, 85,126,125, 36,158,254,186, - 17, 36,194,143, 3,243,249,130, 16,197,221,176,171,171,109,251, 94, 90,208,208, 40,101, 40,172, 80, 14, 57,103,113, 32, 36, 69, - 24, 3, 59,223,191,214,138,190, 23, 17,152,154, 46, 70,129,126,101,192, 43,157,155,124,251,129, 49,136,160,179, 40, 75,134,126, - 32, 38, 17,150, 69, 31, 80,214, 96,141,145, 96,160,178, 36, 4,225,226,149, 22, 11, 24, 74,106, 86,199, 81,226,125, 37,230, 56, -144,201,211,243, 33, 49,193,174, 40,104,187, 45,221,182,165,168, 10,150,139, 61,202,178, 70, 43,209,112,132, 32, 52, 89, 63,140, - 40,197, 20,230, 34,104,144, 66, 68, 87, 74,201,107,110,139, 2,109,100,176,132,204,208, 15,104, 45,249,244, 40, 53, 93,210, 74, -126, 30, 37,156,201, 90, 55,205,240,226,142, 80, 74, 95, 34, 24, 97,244,147,250,221, 77, 92,173, 12,101, 49, 70, 36,113, 47,177, - 43, 18,113,206, 77,255,150,247, 80, 10, 73, 96,248, 36,182, 39,173, 37,128,168, 44, 75,172,182, 98,223, 76, 25,152,114,201,147, -192,253, 18, 91, 42,208,186, 43, 10, 82,140,248, 32, 81,170, 40,125,105,249, 82, 74,132,156,198, 9,237, 54, 6,225,239, 99,244, -196, 36,181,172,125,223,211, 15,195, 52,244, 72,250,225,208,139,235,100, 71,129,249,209, 83, 55,146,226,231,138, 41,117, 82,229, -203,225, 83,234,113,229,107, 13, 99, 32, 78,226, 49,208,236,237, 45, 39,101,187,208, 39, 77,221,160,173,228,239, 87, 77,131,115, -165, 12,252, 93, 7,136,222,195,123,143, 45,221, 36,188, 77, 12,131, 4,226,100,178, 12, 64, 9, 17,216, 78, 95,119, 28, 61,243, -197, 66, 28, 59, 41, 51,134, 72, 93, 85, 84, 51, 25, 58,197, 93,163,104,102,205, 4,187, 75,202, 94, 76,146,244, 87, 85, 59, 33, -107,184,204,172, 64,113,137,112, 88, 43, 94,254, 98,218,244,227,100,231,139, 65,188,235,101,221,160, 92, 65,200, 25,171, 45,117, - 93, 49,110, 90,190,250,189,239,177,233,230,144,247, 80, 58,146,245, 12, 76,133, 91,190,204,205, 87,127,200,171, 95,251,143, 89, - 94,125,153,152, 2,232,130,179,167,191,162, 95, 31,226, 22,150,154,129,110,125, 68,101, 19,253,250,132,229,193, 29, 92, 85, 49, -182,103,116,219, 51,218,238, 57,193,159,161,218, 21,231, 23, 79,177,243, 6,191, 94,209,111, 55,144, 53,189, 23, 65,117, 89, 23, -184,202,161,208, 24,162,220, 21, 89,225,140, 66, 89, 71, 89,149,132, 4, 67, 28,105,251,129,182, 23,235,225, 56, 6, 98,146,130, - 31,109, 13, 99, 8,124,242,240, 33,199, 39,103,228,156, 56,111,183,156,159, 95,112,118,126,198,118,181,229,218,222, 21, 14, 31, - 61,101,111, 62,231,244,236,130, 79, 63,125,204, 87,222,120, 5,114,226,233,225, 67,110,223,186,129, 85, 35, 63,248,253,223,226, -245, 55, 95,227,245, 47,222,147,193,176,146,129, 41,132,200,122,211, 51,140,145,171,215,174,210,143, 61,155, 77,207, 48,102,108, - 41,105,157,239,127,240, 1,231,231, 23,108,135,196,119,191,241, 13, 62,124,116,204,255,251,206, 67,198,205, 19,254,230,151, 31, -241,214,111,127,155,236, 71, 76,189, 92,254,136,233, 16, 52, 19,143, 89,215, 53, 42,103,116,246,236,213,150, 39,231, 3,105,130, - 34,141, 49, 24, 39,202,192, 56,125,224,190,120,144,249,240, 44,211, 71,168, 12, 52, 38,115,216,193,149, 66, 68, 32,141, 83, 60, -217, 68,190,112, 69,243,224, 34,209,249, 72,140,114,225, 31,174, 61, 47,205, 2,133, 78, 24,149,120,180,146,131, 93, 41,208, 90, -248, 43,165,245, 52,213,154,203, 41,255,100, 80, 60,111, 51, 10, 57,116,148,118,248,232,153, 59,205,221, 61,203,231,107,232,251, - 14, 9,172,145, 18,143,111,189,180,224,157,231, 45,237, 16,197, 90,180,187,212,163, 64,125,214,200,212,170,152, 90,194, 74, 81, -188,122,239, 5, 98,215,178,169,198, 44,153,241, 18, 18, 34,181,174, 9,217,136, 98, 18, 56,215, 88, 75,105,196,207,171,148,168, -157,157,149,100,175,144, 68, 81,159,145, 72, 73,178, 8,209,102,149,164,189, 25, 35,109,114, 78,235, 9,206,202,160,242, 36,134, - 17,196, 83, 46, 26, 79,240,146,213,110,148,154, 42,102, 69, 64, 19,130,248,224,115,222,165, 82,201,215,138, 49,146,208, 64,100, - 28, 2,237, 86,194,115,140,182, 12, 83, 66,224,208,119,196,152,232,218,150,113,232, 24, 7,121,140,214,202,239,105,167,176, 27, - 99, 12, 62,202, 6, 46, 7,177, 97, 24, 71,190,245,202, 1,255,234,215, 79,241,163, 71, 10, 85,164,129,172,112, 2, 13,238, 50, -216, 11,231,176,206,209,247, 35,174, 40,104,234,250,242, 2, 79, 41, 49,155,137, 0, 18, 20,117, 37,218,135, 12, 40,165,248,214, - 43, 7,252,229, 39,103, 50, 88,218, 41,200, 38,139, 26, 24, 4,162,172,154,154,148, 20,201,123,170, 89, 45, 72,148, 23,216, 95, - 44,123, 18,120,148, 98,160,169,107,250,118, 43,177,182, 81,154,255,156,115,147,246, 65,120,104,224,114, 83, 15, 33, 96,157,101, - 62,155, 33,121,230,162,111,176,206, 97,181, 5, 45,226, 35,227,156,216,200, 98,132, 44, 86, 50, 31, 2, 41, 72,240,209,206,203, -109, 11, 71,205, 13,126,187, 0, 0, 32, 0, 73, 68, 65, 84, 78,194, 3,238, 54,226,178,172, 80, 89,146, 3,115,134,152,229, 18, - 45, 75, 73, 79,235,186,158,178, 22,151, 1, 40,234,166, 20,251, 80, 41,218,128,221,123,207,104,113,180,148,101, 57,105, 88,148, -160, 15, 73, 46,232,162,144, 65, 43, 36,249,252, 11,127, 45, 30,235,148,229,249, 78, 81, 84,216,109,219,146,179, 68,152,166,233, -220,112,182,152, 6, 56, 65,179, 0,102, 51, 25, 80,131, 15,204,231,226,203, 14, 73,154,216,118, 61, 4, 49, 69,118, 54, 81,231, - 10,234, 74,114, 14, 10,231, 64,107, 36, 88, 72, 6, 13,165, 21, 90, 75,204,173, 54,130,238, 41, 45, 23,145, 66, 33,150,215,192, -206,134, 25, 98,196,149,133,228, 54, 36,161,164,202,105, 19,150, 48, 35,161, 96,140,153,132, 97, 73,168,152,170,170,232,186,142, -148, 51,205,172,145, 97,101,232,101, 43,238, 59,114,204, 56,103, 41,138,138,193, 75,207,128, 43, 10,218,205, 6, 63,120, 50, 34, -104, 3,133, 54,146, 26, 55,122, 41, 89,138, 81,170,141, 85,202,120, 47, 23,175,214,176,221,110, 69,151, 48,244, 36,149, 65,201, -192, 81, 86,165,208,118,149, 92,170,214, 56,154,166, 70, 41,132,250,202, 2, 35, 43,164, 87, 65, 43, 17,123,150, 69, 65,158,134, -203,156,197,198,105,180,153,146,230, 2,101, 85,177, 11,155, 41, 39,100,163,176,150,170,145, 4, 56, 73, 25, 20,235,157,159, 22, -132,157,190,199, 26,131,155,232,137,162, 16,189, 65,240,129,170, 42,136, 62,211, 44,151,116, 49, 81, 54,115,172, 54, 84,229,146, -211,211,115,226,216, 18, 99,135,213, 21,229,242, 54,174,220, 39,229,145,246,236, 41,221,197, 99,124,119, 68, 24,215,108,206,159, - 49,172, 87, 96,106,114,232, 56, 63, 63,103,113,247,223,162, 57,184, 79,244, 23,104,191, 97, 28,207, 8,221, 57, 99,127, 68, 69, -207,108,102,105,163,151, 16,156,177,103,221,245,130, 72, 25, 9,175,242,163,116,139,100, 13,219,118,192, 39,209, 87, 12,222,211, -247, 35,235,205, 86, 56,120, 35, 22,101, 31, 34,153,196, 24, 51, 99, 23,200, 42,210,118, 35,235,245,138, 77, 43,141,153, 33, 72, -250,233,122, 59, 50, 91, 30,240,232,240, 25,171,109,199, 7, 31,126, 72,210,145,189,253, 25,235,190,195,149,146, 4, 90,149, 53, -219,237, 64,191,238, 56, 62, 94, 51,180,137, 31,252,224,251, 44, 22, 75, 14,159, 62,225,222,139,119,145,200, 97, 39, 1, 91, 24, -198,152, 80,122, 55, 96,101,174, 93,187,202,152, 6, 54,219, 21, 71,199,199, 28,204, 43, 10,122,246,151,115, 30, 60,125,194,159, -253,217,143, 57,124,250, 28, 51, 91,238,253, 40,100,121, 99,186, 66, 96,222,178,148,176,138,118, 24,121,227, 90,201,167,171,132, - 53,146,200, 84, 86,226, 87,215, 86, 84,242, 7,141,229, 90, 5,159,117,142,161, 15, 28,182,153,239,191,164,248,155,195,196,111, - 93,135,159, 60, 75,124,231,174,229,167,143, 7,190,120,205,242,240, 34,224,149, 76,188, 77,161,217,175, 12,218,104,238, 45, 96, - 81, 40,238,237, 41,102,133,229,230, 92, 19,179,112,241, 98,155,144, 56,211, 98,234, 2,142, 49, 97,180, 37, 36,225,188,139, 66, -146,181,102,165,230,206,210,240,241,153, 92,104, 41,103,137, 90, 85,138,111,223,155,243, 23,159,119,196,156, 48, 10,124,140,148, -101, 73, 76,226, 65,206, 73, 94, 88,137,130,149, 8, 70,107, 37,122, 85, 33,135, 52,211,166, 2, 16,131,240,227,187,130,135,174, -235, 37,177, 11, 4,202, 53, 48,248,192,191,243, 90,201,231,103, 35, 51, 19,248,123,175, 85, 28,109, 2,227,232,249,251, 95,154, -243,171,231, 61,127,252,141,235, 60,239, 44, 7, 69,224,239,190, 86,115, 58, 72,223,244,223,125,173,226,227, 21,252,131, 55, 23, -156,248,146, 23,246, 43,254,189, 47, 47,217,228, 18,237, 44,255,193,155, 75,222, 59, 17, 11, 74,204,145,255,236, 27, 87,248,201, -131, 21,255,232,119,174,160,128,191,243,133, 37,111,223,110, 8,170,224,222, 65,193,247,238, 55,124,249,186,229, 98, 59,114,120, -209,179, 95, 4,254,240,245,134,175,223, 46,200,209,243,195,215,106,126,249, 92, 14, 70,165, 37, 49,208,104,205,127,241,205,171, - 88, 99,249,222, 43, 53,111,223,170,104,135,192,106,144,129,238, 63,255,230, 13,126,235,238,156,215,174, 20,156,247,129,127,248, -205,219, 0,124,235,149, 3,126,231,229, 37,127,246,222, 51,254,209, 55,175,243,243,199, 91,174,212,134,239,223,175,248,214,189, - 25,247,175, 84,156,118,208,143,153,255,228,235,123,104,165,248,238, 75, 37,111, 92, 47, 72,186, 96, 80,229, 4,187, 11,215,119, -115, 89,242, 71, 95,187,193,239,189,178, 79, 83, 22,220, 90, 22,252,249,251,135, 44, 75,197, 31,124, 97,159,111,221,107,120,245, -122,197, 38,202,247, 87, 86, 13,125, 63,113,203, 86, 6, 40,148, 92, 80,206,202,123,197, 24, 73, 90, 27, 38,110, 94,233,132,179, -142, 24, 97,214,212, 4,239, 65, 75,169,144,213, 6, 87, 20, 20,214,226,202, 74,148,238, 78,170,122,135, 97,192, 22, 82,107,171, -148,186,132,101, 37,168,197, 17,131,252, 61,243, 41,116,164,235, 90,140,181,204,154, 25, 74,131, 70, 73, 44,235,212,116,183,152, - 75,109,233, 56, 14,130,136, 24, 5, 89, 30,147,209,134,182,149, 50,144,162, 44,126, 19, 70, 19, 60, 90, 65, 81, 86,132, 16, 9, -126,164,158,213,164, 8,125, 55,224,156, 32, 50,100,200,242, 15, 82, 10, 19,156, 46,149,199, 98,103, 77,151,155,120,244,162,159, -136, 33,225,199, 1,148,160, 36,206,149, 84,117, 67, 85,138,237, 81,186, 17,226,229,214, 45, 77,142,160,146,124, 45,241,201, 75, -179,161,112,236,224, 92,193,124, 46, 60,179,115,146, 69,160,216, 5, 20,101,218,190, 67,107, 77,225, 44, 41, 74,200, 79,140,145, -162,116,232,196, 37,138, 98,173, 97,103,185,243, 97,196,106, 17,113, 42,165, 48,106, 10, 25,210, 6,197, 52, 4,199, 56,109,210, -162,198, 23, 59, 94, 77,152,144,135,126,148, 94,250,194, 57,186,109,135,181,118,162,233, 36, 61, 48, 33,131,137, 20, 59,137,248, - 83, 33,209,209,243,229, 28,128,249,124, 46,175, 75, 20, 36, 73, 91, 35,103,166,150,243,203, 57, 17,154,133, 16, 96,162,123, 64, -145,173, 88,247,178,146,120,225,132,196,110,107,173, 41, 10, 59, 13, 83, 83,224,211, 40,212, 80,219,183, 82,174,179,217,224,202, -146, 56,142, 12, 94,194,154,250,190,191,188,140,219,174,157, 92, 45,146,204,185, 91,208,132,162,168, 73, 41, 81, 24, 67, 89,136, -157,181,237, 90,164,165,210, 76,239, 69,177,226,141, 94, 68,204,104, 69,156,206, 75,165, 18, 57, 11,242,165, 39, 20, 32,164,200, -102,117,193,213, 91,123,172, 79, 78,233,187,115,114,232, 32, 13,228,216,145, 82,160, 95,159,208,110, 31,226,251,167,116,155,231, -104,213, 66,244,116,235,141,208, 32,245, 93, 94,124,251, 31,242,194, 43, 63,192,184, 61,134, 97, 75,127,254, 25,121,120,134,138, - 27,250,205, 49, 97,123, 68,115,227, 38,185,208, 12,237,200,112,126, 66, 63, 72,222, 64, 86, 96,141,162,106, 42,200, 10,171, 45, -206,149, 52, 69,129,118, 18,160,102,140,162,169, 27,102,117,131,213,134, 89, 85, 81, 53, 37, 77, 53, 99, 62,107,152,205, 27,140, -145,172, 18, 87,150, 56, 35,159, 13,239,101, 57, 25,199,145,227,231,199,104, 87, 50,107, 22,220,123,237, 85,208,150,144, 50, 71, - 71,167, 28,157,158,240,252,120,203,173,107, 7, 56, 34,159,126,254,148,251,119,174,211,204, 74, 62,249,224, 51,172,202, 28,236, - 95,225,245,251, 47,113,116,116,130,228,183,120,218,118,100, 62,171,101,121,139,137, 97,232, 89,111, 70,114, 46,152, 47, 14, 24, -188,231,232,248,156,122,111, 15,173, 13, 95,188,127,151, 55,223,124,129,178,174, 48,123, 87,175,254,200, 26,195,172,105, 0, 73, -114,202, 89, 96,183,110, 16,165,250,249,152,137, 74,166,240,148,145,233, 29,133, 82,112,103,174, 89,141,208, 38, 9,157, 40,139, -130,152, 51,183,103,134,187,243,204, 47,206, 37,151,250,214, 92,179, 87,105,158,182, 10,143, 12, 4, 49, 41, 94,223,139,252,213, -145,229,176, 85,220,168, 51, 63, 59,214,236, 21,146,161,253,197,131,204,171, 7,154, 69, 85,160,108,193,152,132,235,179, 90, 10, - 15, 82,146,248,204, 29,239, 69,134,211,117,203,135,199, 83,194, 86,206,228,152,201, 90,224,198, 95, 62,239,133, 15,203, 73, 42, - 6,209,184,194,145,124, 32,230, 56, 13, 11, 34,106, 49, 78, 32, 17,107, 37, 32, 6,228,215, 0,148, 22,101,239, 78, 61,170,141, -192,245, 33,198, 75,184, 94,254,128,124,173, 27, 11,203,225,217,150, 47, 93, 47,248,252,124,228,238,210,114,116,209,178, 95, 59, - 62, 95, 5,238,238,215,156,247,137, 55,174, 57,158,108, 34,183, 26,197,170, 15, 44, 74,205,199, 71, 29,183, 22,142,109,212,188, -126,160,121,188,201,188, 48,215,108,198,204, 94,101,120, 62, 8,183, 95,186,130, 47, 95,179,252,250, 36,243,149, 91, 5, 79,182, -240,151, 15, 7,214,209,240,123,119, 12,143, 87,129,191,126,158, 57,237,225, 91,119, 10, 62,219, 24,190,119,191,226,221, 67,207, -143, 31, 39,246, 27,195, 11, 11,195,187, 39, 17,231,204,164,112,151, 13,234,173, 27,150,135,171,192,159,188,119,194,225,122,224, -111,191,126,133,247,142,101,147,251,171, 79,207,248,217,195, 53,199, 91,207,119, 94, 89,242,191,253,228,144,175,191,184,224,127, -248, 23, 31,241,215,159,175, 80, 10,190,249,242, 62,239, 28, 6,254,246,203, 37,159, 94, 36,254,242,129, 68,138,126,245, 86,201, -187,135, 45, 95,189, 93,241,209,225,150,127,245,209, 57,235, 96,248,237, 59, 21, 31,158, 70,118,225, 35,125,223,243,239,126,229, - 38,239, 60,109,249, 23,239,157,176, 44, 53,247,174,214,252,248,195, 99,254,232,183,110,243,193,201,200, 95, 61,246,180, 65,243, -141,219,142,247, 79, 38,216, 86,201,193,175,141, 64,201,206,186, 9,237,144,226,156, 16, 35, 97, 42,178,112,147,157,174, 44, 75, -202,210, 78,151,177, 40,143,165,123, 91, 84,221, 41, 75,126,185,209,226, 45,207, 25,198, 49,224,140,198,104,177, 71, 73, 15,188, -160, 40,174,152,234, 55, 67, 4, 53,213,159, 26,131, 70,145,149,194, 15,130, 28,184,178,160, 42, 11, 54,155, 13,131,151,244,186, -209,123, 17, 73,181, 45,243,249,140, 48,109,124, 77, 89, 78, 2, 77, 25, 80,172,149, 33,185,239,122,209, 21,244,237, 20,139,235, -129, 36, 94,235, 36,151,169,117,210, 35,110,172, 92,178,187,116, 54, 51,233, 62, 98,146,207,254, 14,238,213, 90,145,149, 92,208, - 74, 11,138, 36,209,177,162,152, 23, 90, 41, 2,114, 17,185,194,161,180,166,116, 37,163,151,128,161,166,110, 64, 25,140,146,164, -202,221,182,167,181, 38, 5,217, 74, 7, 63, 37, 78,142, 35, 33, 38, 98, 16,196, 68,107,185,136,180, 54, 83,143,128,102,219, 74, -126, 68, 89, 74,237,242,118,187,249,205, 66, 82, 72,207, 4, 73,208, 51,239, 61, 77, 83, 34, 77,121,115,234,178,154, 98, 99, 65, - 41,125,137, 20, 20, 86,168,143, 20, 3,222,203,160, 30, 99,162, 27, 7, 10,171,137, 33, 82,184,130,210,149,248, 16, 8,147,246, - 97,156, 68,125,205,124, 6, 33,224, 74, 41,103, 82, 90,156, 29, 74,137, 35, 99,236,101,160,240, 99, 96, 24, 71,180, 18,212,103, - 28, 71,250,161,159,244, 17, 35, 85, 85, 17, 67,160,105, 26,154,170, 65,107, 77, 63, 72, 7,133, 32, 16,146,224, 87,215, 13, 40, -104,219,142,190,235,132,202,170, 43,108, 81, 78,239, 63,241,251, 75,176,214, 20,166,149,127, 19,191, 59, 12, 35,121, 55,160, 76, -131, 80, 36, 19, 82, 96, 24,122,113, 24,164,200,182,109, 25,125,160,105,106,170,178, 32, 36,209,251,136, 91,161,188,220,222,243, -244, 57, 25,199, 65, 6, 30, 55,117, 3,244,129, 43,139, 57,235,243, 71,244,219, 51, 84, 92,163,194,134,236, 47,136,227, 25, 57, -245,248,237, 49, 35, 39,228,213, 25, 93,183,129,108,184,255,213,223,231,224,206, 55,105,174,190, 66, 53,191, 65,206,129, 24, 7, -250,238,156, 97,115, 72, 28, 54,140,237, 6, 53,123,145,229,173,111, 83,220, 42, 25, 47,158, 51, 55, 37,202, 21,148,205,156,102, - 49, 39, 40,141, 79, 25,180,197,167, 64, 54,154,140,162, 31, 70, 82,204,132, 36,168, 83, 12,129,164, 50,221, 32, 67, 17, 90,177, -218,108,216,182, 29,227, 48, 16,146, 20, 50,121, 47,122, 18, 99, 20,198, 41, 68,143,166,105,219, 21,135,135, 71,124,244,225,199, -156,157,111, 88, 93,116, 92,189,126,139,131,253,107, 24,237, 88,175, 59,222,255,248, 33, 69, 85,147,124,135,213, 5,101,109,248, -236,241, 51,198,228,121,244,236, 25, 55,175, 31,176,183,220, 67, 41,195,114,111, 73, 28, 35,175,190,124,143,174,239,152, 53, 13, - 87,175,236,211, 13, 29, 99, 63,161,144, 90,177,222,108, 89,245,158,213,214, 19, 70,203,124,113,128, 45, 75,129,246,180,209,196, -113,154, 4,199, 17,183, 88, 80, 84, 21,143, 86, 61, 55, 43,120,254, 92, 36,250, 59,101,182, 82,144, 19, 60, 88, 37,186, 49, 82, - 20, 3, 33, 40,146,202, 60, 94,103,190,243, 66,226,215,167,194,185,190,127, 14,223,127, 65, 99, 53, 92,140, 98,223, 73, 41,113, -180, 85, 28,220, 85,228, 16, 56, 11,153,131, 10, 78,182,145,243, 78,161, 77,230, 87, 49,179, 95,194,157,121,226,107, 87,225, 89, -171,120,231, 68, 26,208,156, 43, 9, 97,151, 62, 37,246, 23,227, 52, 54,218,203, 3,209,153,146, 96, 61, 70, 25, 64, 46,246, 68, - 36,105, 80,100,129,143, 98,100, 12, 34,126, 49, 90, 54, 12,116,166,176, 5,145,241, 18, 10, 86, 90, 88, 25,165,101, 88, 48,218, -144,173,136,210,188, 31,209,198, 80, 58, 71, 50,102,250, 0,101,146,247, 68, 20,167,109,228,206,126,193,178, 54,252,243,247, 78, -249, 15,191,118,157,123, 87,107, 46, 6,193,129,142,219,200, 75,251,142,121, 9,127,254,121,203, 15, 95,107,120,241, 74, 67,151, - 20,179,249,156,243, 1,110,212, 48,115,138, 63,127,226,249,225, 61,203,205, 70,113,222, 39, 32, 49,140,210, 51, 14, 83, 59, 21, -240,225,153, 71,105,197,147, 11,143,190, 83,241,209,137,100,179, 63,108, 3,127,251,197, 37,125,223,179, 44,231,124,114, 50,144, -148,226,147, 99,185, 16,253, 56,242,199,191,181,100,247,227,127,249,171, 67,160,226,103,159, 30, 19, 82,226,241,185,163,114,114, -176,190,125,123,206, 87,239, 94, 99, 86, 76,151, 64,206, 12,157,184, 20,230,243,249,164,160,149,139,121,221,109,216,171,102,252, -234,221, 11,138,178,226,221,103, 45,223,120,161,186,140,217,252,116,165,240, 49,243,217,241,150,239,191, 34,121,249,114, 64, 72, - 68,233, 65,227,120,231,201, 10,109, 44,239, 31,118,124,247,117,185,128,175,207, 75,110, 46,171,203,199,155,115,190,180,252,108, -183, 82,196, 17,166,205,164,235,149, 80, 57, 86,163, 81, 24, 5,125, 24, 80, 74, 4, 94,218, 40,116,102,130, 45,243,165, 23, 30, -100,136, 5,208,102, 87, 38,162, 46, 55,255,166,145,237, 88, 11, 67,195,182,235, 38,177,153,161,239,132,170,176, 78, 32, 84, 20, -184,137,127,119,214, 98,235,134,140, 88, 15,119, 1, 66,198, 24,105, 41,180,150,205,102, 35,151,170, 18, 61, 2,169,144,190, 2, - 20,165, 19,116, 96,189, 90,137, 32,204, 76, 58, 1, 35,205,104,187,166,192,232, 69,168, 26,240,164, 44,144,120, 24, 71,138,186, -102, 24, 90, 32, 99,173,102, 8, 9,149,229,231,217, 40,200, 25,200, 16, 35,186,148,220,248,186,170,209,211,134,106,180, 5,165, -168,156, 60, 38,159, 18, 78,105,180, 85,196, 48, 2,162, 78, 95,175,215,146,172, 22, 38, 15,182,150,109,103, 72,153, 16,132, 54, - 17,174, 93, 44, 61,133,179,216,170,148, 75,221, 8, 58,224,187,129,110,144,154, 88,173, 20,123,123,123, 2,175,118, 82, 94,210, -182,173, 4,125,228,204,184,237,209, 90,102,234,221,171, 39,249, 27,137,164, 20, 58,107,140, 45, 72,121,162,106,162, 39,163, 88, - 44,102,180, 91,240,227, 72,202, 48,155, 53,172,214, 27,182, 91,225,180, 71,239, 89, 46, 22,184,210,161,179,180, 83, 74,111, 70, -196,251, 64, 14,129, 20,132,150, 83, 90,250,226,253,232,177,214, 81,205, 26,156, 21,157,192,102,187, 37, 38, 48,206, 18, 39, 23, - 66, 38,177, 88, 44,167,109,119, 39,206,147,160,161, 89,211, 16, 70,209,171,168,156, 39,132, 81, 82,220,148,146,239, 79,187, 41, -153,176,146,124,254,221,133,238, 40, 40,156,132,100,197, 24,169,220, 84,159, 26, 90,198, 97,196,104,197,106,181, 66, 27,205, 98, -177, 96,103,241,220,108,214,204,102,141, 80, 70,101, 73, 72, 66,203, 86,181, 68,240,142,227,200,102,179, 1,165, 88,206, 37,221, - 47, 4, 79,129,124, 22, 99, 16,170,161, 31, 31, 18,163,231, 11,175,188,202,179,103, 79, 57, 57,121,142,161, 33,250, 53,218, 22, -116,195,136, 34, 67,232,216,108, 47,168,174,125,157,131, 23,190, 74,221,180,140,195,167, 28,125,250, 33, 81,149, 56, 83, 51,116, -107,180,134,250,202,107,244,221, 57,179,131, 43,220,126,245, 15,169,231, 55, 25,250,119, 89,222, 61,230,149,151, 10,254,234, 39, -127, 33,195, 39,226, 96,218,157, 77,253, 68, 35,110,219, 14, 10,199,232, 69,183,226,202,226,210, 13, 98,203,146, 89, 93,179, 94, -175,200,198, 50,219,155,179,186, 88,211,121, 41,117, 26,167,112, 38, 51,159,227,202, 6,231, 52, 41, 68, 74, 91,200,224,225, 61, -221,118,141,181,150, 15,222, 59,167, 41,155,203, 51,249,224,202, 85,182,219, 45,167,171,129,238,226, 17,110, 94, 51,155, 45,184, -186,127, 32, 26,128,170, 96, 76, 61,247,238,223,161,223,182,236, 47, 43,202,178,230,198,181, 27,164, 48,114,116,122,113,169, 21, -233,182, 29,167,103,167,144, 96,177, 47, 17,192, 15,142,142, 72, 89, 99,119, 77, 83, 32, 74, 75,167, 20,245,108,198,106,179,102, - 86, 55,124,190, 41,248,206, 93,120,188, 10, 28,109,214,148,165,164,174,229, 28,196,154,225, 36, 11,157, 20, 49, 74,120,173, 23, - 26,228,226, 39, 49,250,136, 86,240,127,124, 26,185, 82,139, 77, 72,105,133, 86,146,152,116,218,107,230, 46,112,218, 37,222, 57, -113,188,113, 37,162, 80,220, 89,100,242,229, 71, 50,243,120,157,104,156,226,247, 95, 84,252,179, 79, 90,118, 94,240,157,101, 39, - 27, 77,142, 35,117, 89, 19,115,148,130,132, 4, 57, 75, 96, 76,142, 50, 72,164,148, 80, 19,216,103, 92,193, 56,169, 90,181, 18, - 49,203,124, 57,131, 36,118, 56,163, 69,236, 70, 18,158,113, 23, 46,155, 21, 24, 18, 40, 38, 37,101, 66,249, 1,171, 45,166, 50, -132, 49, 8,156,161, 21, 38,103,206,218,200,223,122,185,225,151,207, 36,203,252,243,139,200,155,183,102,252,228,113,135, 51,150, -243, 46,240,237,235,150, 95, 62, 31, 72,100, 62, 57,245,188,125,171,228,157, 19, 41,157, 57,235,100,187,126,247, 36,161,209, 60, - 88, 37,190,116,205,241,179,167, 34,106, 43,236,148, 87, 15, 56, 51, 13, 48, 81,158,223,182,221, 2, 21, 71, 39, 71,178,109,106, -128, 37,155,245, 5,171,161,225,229, 3,195,187, 79, 47,184,119, 93,248,235,213,197, 25,255,253, 63,123, 42,219,198,255,239, 82, - 54,214, 81, 89, 75, 59,121,126, 85, 86,124,235,254,146,127,254,235, 83, 30,158,174,121,241,202,140,127,251,173,235, 40, 45,219, -158, 37, 18, 2, 68, 57,117,104,215, 91, 78, 55, 3,119,154,200,225,224,121,235,246,130,139, 62,225,140,160, 26,163,151,104,221, -122,186, 72, 47, 86, 23,151, 27,134, 53,150,179,214,243,234,213,130,247,159,183,188,117, 71,134, 14,101, 12, 71,155,145,159,127, -118,202,199, 39, 29, 49,138, 69,113,239, 96, 15, 99, 44, 77, 35,124,214, 48, 74,232,140, 31, 39,129,164,247,132,156, 49, 78,170, -127,179,206, 56, 35,250,128,245,182,165, 40,166, 20,177,114,215,234, 22, 9,190,199,152, 2,114, 98,151, 96, 6,160,180, 92, 48, -162, 87,213,148, 85, 69, 14, 1,107, 11,200, 35,125, 63, 96,156,192,192, 70,235,203,237, 50, 26,141, 81,153,108, 37, 30,213,143, -130, 24, 92,191,126,141, 24, 34,235,245,234,146,139, 94,238,237, 49, 14,227,196,155, 90,218,190,101, 54,107,200, 25,206, 47, 86, -164,148, 56, 61, 57,101,255, 96, 57,193,173, 34,190,179,246, 55,234,237,156, 19,101, 85,139,255, 60,102, 82,142, 56,107,136, 65, - 77,155,185,102,222, 84,196, 44,207, 69,206, 25,163, 36, 99, 65, 20,213,210,167,173,178, 4,165,228,148,105,251, 45,206, 56,170, -186,162,223,246,104,103,241, 41,162,130, 12, 6, 49, 7, 82,144, 96,148, 12, 20,174, 16,216, 63, 39, 4,108, 23,117,135,178,134, -162,114, 24,165, 41,173, 35,197,132, 41, 10,172,214,108,187,169,223, 32, 38,230,243, 25,155,118, 75,214, 34,252,202, 57,131,150, -130,168, 20, 18,235,245, 26, 87, 72,222,248,162,158,225,128, 24,165,231,192, 88,203,106,181, 37, 38, 73,112, 20, 47,189, 70,233, - 41, 69, 47,103, 22,139,185,120,226,155, 70, 66,124,156,148, 73,245,219, 14,200,151,207, 67,233, 10,188,143,172,183,107,225,246, -149,232,139,140,142,151,212, 66, 81,136, 32, 77, 98, 98, 5,178, 78,200,240,210,164, 76, 8, 3,130, 0,106,150,203, 57,221,208, -145, 83,162,107,123,230,139,153, 8, 12,199,129, 97, 24,132, 70, 73,105, 26, 78, 51,117, 93,179,217,108,169,103, 13,139,165,197, - 71, 25,106,186,190,157,104,200,169,137,174,221, 82,148, 5,131, 15,244,189, 80, 45, 89,137,198, 98, 62,151,194, 40,217, 60, 37, -125, 47,132, 68,215,110,167,206,139,201,159,111,180, 12,175, 73, 92, 70, 77, 35, 45,134,206, 57,180, 86,132, 24, 56, 63,191, 96, -177, 88, 72,110, 66, 41,131,189,179, 14,178,166,116, 5,103, 23, 71, 92,187,118,139,249,108,159,245,232, 40,170,125,186,179,207, - 24,218,141,124,110,178,167,237, 3, 87,238,253, 29,110,127,225,135,248,177,231,226,228,207,168,236,136, 29, 7,250, 77, 43, 62, -249, 20, 73,190, 69,145,169, 22,119,169,175,188,142, 8, 55, 51, 33, 52, 64,193,147,195,167,172,214,107,252, 56, 82,214, 37,123, -123,123,196, 40,206, 31,146,184,168,150,243, 57,237,216, 83, 20,110,122,109, 52,214, 86,236,234,169,101,176, 17, 20,162, 42, 75, -236, 21,203,249,217, 41, 74, 25,212, 76, 62, 19,155,205, 86,158,107,237,112, 69, 73,182,134, 24, 51, 67,140,168,170,161, 40, 75, -226, 56,224,115,164,170,106, 84,134,177,223, 72, 38,135,110, 56, 95,175,153,133,204,230,244,156,243,245,134,251,119,110,242,215, -127,249,115,116, 81,224, 94,251, 2, 62,121,170,166,224,195,207, 62,101, 28, 61,119,111,223,228,254,189,219, 92,172,183,156,173, - 54,104, 91,112,255,213,151,233,186, 45,199,207,207,216,172, 6, 82, 24,248,236,243, 19,108,140, 9,180, 28,124, 69, 49, 41,145, -135,145,162, 40,201,104,140,211,252,197,179,196,223,122,121,193,175,158,109,249,228,164,135, 17,118, 42,216,245, 40,105, 79, 65, - 27,222,190,213,112,119,105,120,180,138,252,244,153,225,176,203, 20,206,146, 39,104,123,213, 1, 89, 20,150,114, 38, 38,158,110, - 19, 47, 45, 52,103,109,224,209, 69,224, 91,119, 44, 79,214,137,127,243,216,163,141,108, 86, 41, 38,238, 46, 12, 87,106,205,170, -143,252,240,190,229, 95, 62,178,196, 73,141,111,173, 6, 4, 6, 97,130,213,173, 50,116,161, 99, 87,136, 16, 96,130, 89,157,192, -140, 57,202,159,209, 18,191, 57,140, 3, 41, 38, 9,122, 49, 2, 71, 22,133, 52, 52,133,148, 40,157,196,179, 42, 37, 28,104, 74, -242, 28,144,193, 85,133, 32, 23, 65,190, 6,128,168,233,165,168,165, 85, 6,165,224,208,151,212, 13, 60,233, 34,111, 41,232,146, -165,106, 12, 23,189,192,151, 15, 47, 34,133,171,121,214,101,222, 70,177,246,162,176,127,116,186,226,119,239, 20,188,251,124, 75, -196,240,233,185,229,141,171,134, 46, 25,254,163, 55, 10,254,201,175, 59, 81,207,193,101,210, 94, 81, 20,151, 10, 94,128,152,130, - 36,105,201,111, 67, 43,248,191,223, 59,226, 15,222,184,206, 55, 95,156,241,254, 81, 75, 76,153,170,169, 17, 5,184,165, 44, 69, - 88, 4, 96,245,174, 98, 86,134, 7, 77,230, 23,143, 54,252,193,151, 14,200, 28,240,139,199, 83,234,150, 43,248,224,176,229, 31, -126,243, 5,172, 86,252,207, 63,126, 38,143,171, 44,249,103,239, 60,227, 15,223,188,205,149, 89,193,106, 76,252,228,137,199, 22, - 50,132,236,218,194,118, 66,171,161,235,249,175,127,255, 21,254,167, 31, 63,199,104,205,159,126,120,198, 15,190,120,133,239,125, -233, 6,191,120, 36, 49,189,164,196,191,124,247,132,239,190,126,192, 31,188,121, 83, 2, 59,128,127,252,127,125, 34,209,183,141, -192,151,110,226, 93,141,173,113,198, 16,156, 69, 66, 84, 18,170,220, 93, 47,162,172,206, 57,177, 90,201, 69,201,102, 55, 86,202, - 15,165, 36,144,100,231, 24,144, 3, 93,113,124,124,140,248,165, 21,203,253,125, 36, 58, 87,242,221, 33,139,189,113, 66,123, 98, - 20, 27,141, 86,242,243, 4, 56, 91, 82,213,210,237, 46,105, 94,137,217, 98, 65,223,247,114, 56,175, 86, 2,105, 23, 82,108,132, - 18,113, 85,142,137,186,169, 24, 71,113, 95, 40, 20,171,243,115, 92, 89, 80,150,194,135, 26, 99,233,186, 45,104, 51, 69,236, 38, -156,179, 84,165, 12,113,179,153, 60,239, 90,203,115,148,147, 84,119,142,195,136,115, 5,179,102, 70, 24, 60, 62,250, 75,136,184, - 44, 74,129,159,157, 8, 89,199,224,153, 55, 53,125, 24, 5,214,118,226,170,168, 84,198, 88,241,254,251,161, 39, 89,177, 31,166, - 28, 25,123,137,123, 85,206,226,202, 18,149, 96,189, 93,177, 88, 44,216,180, 45,219,237,154,162, 40, 25,166,216, 83,101, 20,202, - 77,240,126,150,132, 70,101, 20, 77, 51,163,177, 53,193, 7, 6,111, 81, 8,146,150, 50, 12,109, 55, 57,102, 32,134,145, 97,144, -215,175, 44, 29,206, 86,244,125, 71, 70,188,226,219,205,150,139,139, 21,243,197,140,224, 35,101, 51, 35,120, 17,112, 22,206,201, - 81,161, 53,218, 72, 76,246,102,122,124, 99, 28, 48, 38,147, 19,104, 43, 67, 2,136,237, 52,198,132, 50, 34, 76,148,115, 71,116, - 10, 33, 4, 80,134,186, 46, 25, 7, 77,215,182, 20,181, 68,188,230,156, 88,175,214,211,249,136, 36, 67, 14, 35, 49,100,234,122, -134, 8, 24, 19,166,156,154, 15, 83, 20, 1,105,204, 68,173,217,108,215,148,101,141, 85, 89,138,109,178, 68, 86, 55,179, 70,212, -252,126, 36, 90, 79, 93,213,244,163, 68, 48,215,179, 25,227, 40, 46,153,156,225, 98,189,146, 20,202,156, 89, 44,132,211,183, 90, -226,187,215,235, 53, 34, 2,213,204,102, 66, 9,173,214,107, 78, 79, 79, 88,204,151,204,230, 51,138,186,132,152, 73, 89,244, 42, - 99, 28, 57, 59, 61,226,224,250,125,106,247, 50, 57, 42, 10, 74,116,123, 66,191, 57,196, 52, 55,185,249,242, 91, 28, 92,125,147, - 56,244,172,207, 62,102,243,244, 1, 55,246, 10,150,123, 11,246,155, 37,103,167, 71,156,157, 60,103, 86, 21, 20,213, 28,239,159, - 18,182, 37,231,195,154,245,249, 12,223,157,208, 92, 9, 83, 8, 82, 64, 37,113, 75,157, 30,159, 74, 84,178,147, 80, 26,109, 45, - 67,219,177,183,220, 67,208,184, 36, 3, 75, 12,204,103,115, 64, 74,200,230,243, 5,213,100, 81,221, 45, 27,219,173,124, 62,203, -178,160, 31,123,206,207, 79,209,214, 82, 92,234, 67, 42,102,141, 19,202, 98, 18, 11,174,215, 27,198,126,192, 40,176, 69, 65,191, -222,146, 99,135,118, 6,109, 44,154,132, 15,153,143, 31,159,176, 60,184,130,213,240,241,195,143,152,207,230,248, 35,184,255,242, - 29,110, 94,185,202,131,195, 39,148,206,145, 47, 34,123,117, 37,133, 94,193,147,148,226,230, 11,215, 56, 57, 60,165, 90,236,209, -133, 17,117,227,165,151,243, 24, 36,213,136,105, 26,159,213,211,100, 17, 70, 22,243,134,174,107,177,206,241,253, 23, 11,158,110, - 34, 49, 6,148, 86, 24,227, 72, 49, 18, 98,224,171,183, 27,254,230, 73,199,195,139,192,160,170,233,141, 43, 91,128,181, 83,243, - 86,148,109,183, 48,194,241,161, 51,111, 94, 17,126,252,163,149, 37, 36,137, 93, 44,139,146,126,236,169,156,116,175,203, 68, 37, -188,198,215,110,215,188,121, 77,243,108, 19,248,215, 79, 52,253,244, 65, 69,107,140,158, 26,151,166,240, 16,177, 23, 41,180, 50, -196, 48,146,149, 18,248,202, 75, 50, 86,233, 10,146,206, 40,126,147,224,150,145,203, 90, 4, 31, 2,151,146, 51,214, 73,151, 58, -211,175,203,223,171,167,225, 70,161, 53, 16, 37,104, 69,101,112,149, 67, 43, 65, 17,164,243, 91, 42, 81,181, 17,155,214,238,207, - 41,148,252,191, 36, 16,217, 14, 42, 26, 67,164,107,183,228, 12,195, 32,157,210,218,218, 75,107,159,179, 18, 6,179, 83,179,106, -163,177, 88,178,202,108,219, 13,179,122,198,182,237, 80, 58,115,113,118, 78,140,114,160, 43, 5,101,237, 40, 92,197,208,247, 20, -133, 28,178, 95,187,123,192,253, 43, 13,127,242,209,150,205,102,195, 78, 69, 46,155, 65, 35, 30,251,148,177,133,100,189,167, 20, - 64, 11, 39,105,148,136,201,178,151, 65, 44, 42,133,193, 76,147,124, 36,103,129, 46,125, 24,136, 99,164,158,207, 88,204,102,151, - 16,161, 32, 42, 82, 66,179, 94,173, 4, 57,209, 26, 63, 14, 52,243, 5,227,216, 51,108,101,155, 50,206,161,221,212,185,173,192, - 90, 39, 23,164, 15,236,124,169,222,123,129,216,149,153, 4,157, 6,235,204,255,215,212,185, 44, 57,146, 92,103,250,115,247,184, - 33, 2, 64, 34,171,216,205,238,166, 52, 50, 45, 40,141,141,233, 5,180,158,247,153,103,224,219,205, 86,102, 99, 54, 27,173,164, - 33,135,236, 98, 87, 86, 34, 1,196,197,175, 90,252, 30,104, 46,203, 44,179, 18,136,240,203, 57,255,249, 47,188,190,190,106, 70, -185,174,204,243, 76,138, 34, 72,118,157, 98, 75,167,105, 34,231,204,251,251,187,222, 17,122, 71, 49,198, 10,207, 59, 90,235,196, -144, 13, 1, 87,139,200, 84,164, 30, 72, 49,202, 27,190,100,186,110,224,112,232, 41,136,185,154,115,170,127, 51, 97, 44,136, 88, -148, 72, 49,243,219, 31,190,231, 48, 78,124,253,250, 11,135,195,129, 28, 21,215,234,189,162, 83,115,140,207,181, 34,114,146,198, - 62,178, 11,181,245, 61, 0, 40, 6, 52,212,131,255,124,126,161,235, 26, 30,203,204,161,250,148,207,143, 7,195,112, 0, 83, 52, -191,142, 81, 38, 74, 81, 22,164, 24,193,177, 41, 41,202,179,239,122, 74, 74,224, 12,166, 40,236,199,212, 61, 32,168, 74,136, 80, -169,112,242, 62,143,191,126, 92,177, 69,251,191,237,218,218,181, 75, 34,181,203, 21,219,190,193, 25,153, 79,221, 31, 55,160,218, - 14, 59, 67,204, 50,202,161,160,130,203, 72, 71, 61, 77, 19, 20,184,207,119,216,215, 77,210,172,185,105, 6,141, 17,182,141,151, -179,208,156,219,253, 74,223,138,111,144,129,156, 50,199,151, 35,141, 21,196, 92,128,211,254,179,215,107,221, 35,134,211,233,132, - 49,202,174, 31,122, 53, 59, 88,237,247,199,227, 70, 8, 34,217,198,148,216, 21, 52,214, 37,214, 85,126, 1,187,228,209, 88,203, - 52, 42,140, 38,133, 68,211,137, 88,233,183,149,174,111, 49, 78, 77,143,197, 62,125,222,115,145,134,122, 93, 87,166,227,137,224, - 21,109,188,219,241,166,156, 89,214,149,174,109,235,120, 16,114, 73,244, 93,203,252, 88, 16,143, 66,110,132,203,178,208,247, 3, -203,242, 80,241,242,120,208, 87,247,186,199,227,129,181,150,105, 26,121,204, 66, 10,166, 73, 22,216, 49,104, 84, 82,138, 98,179, - 95, 78, 39, 0, 62,174, 31,132, 24,158,197,119, 41,165, 58,252, 9,217,108,154,134,190, 85,241,153, 73, 88,219,176, 5, 79,223, - 12,252,254, 95,254,149,235, 60,177,172,129,156, 86, 44,153,156, 35, 93,127, 33,185, 9,131,163,132, 27,113,125, 99,190,254, 39, - 54,222,232, 90,135,197, 50, 93, 62,131,129,243,229,147,172,174, 23,207,234,103,190,190,221, 88, 99,166,164,192,116, 50,204,239, -127,101, 91,103, 5,216,196,200,241,120,228,246,184,113, 58,190,212, 2, 54,179,108, 1,103,149, 79,241,120, 60, 56, 12, 7,154, -166,146, 21, 75,225,126,159, 57, 30,229, 47, 81, 12, 44,143, 5, 31, 87,230,251,194, 99,190,211,183,106,152,138, 19, 34,234,156, -163,105,101, 33,220,181,213, 67,128,130, 69, 97, 99,195,120, 32, 39,221,135,228,204,253,126, 35,231,140,181,144,125,196,149,204, -208, 56, 82,178,188,190, 76,124,250,116,225,183,223,125,230,118,191,241,229,151, 95, 72, 65,205,194,233,120,224, 47,127,253,133, - 63,127,249, 66,223,117,188,158, 95, 88,214,192,241,114,100, 89, 87,200,137,142,140, 57,126,247, 67, 41, 20,198,241,136,143,146, -110, 12,135, 3, 41, 4, 94,206, 39, 40, 89,135, 37,134,206, 57,254,251,103, 25,103,236,115, 2,153, 36, 88,254,239,207, 43,133, -150,143,251, 77,176, 88,237, 8, 93,133,242, 0,233,112, 83,196,162,142, 42,231, 44, 63,246, 82,248, 63, 95, 60,214,181,181, 75, - 20,241, 44,231, 12, 86, 11,199,100,170,230, 78,255,117, 6, 54,191, 9, 74,107, 44, 57,232,103, 73,114,167,138,169,106,101, 83, -161, 24, 3, 70, 46, 96,214, 74,190,131,115,144, 18,166,105,100, 11,106, 1, 44, 37, 87,247,176, 40,102,172, 65,190,230, 41,213, - 9, 93, 17,228,215,182, 10,238,176, 77, 67,197, 9, 68,228,177,246,249,189,199,113,170, 4, 44, 29,182, 57,103, 78,117,115,148, - 82,184,221,110, 24,163, 3,224,120, 56,176,134, 80, 9, 58,154, 53,198, 36, 40, 52, 91, 91,159,153, 32,195,156, 50, 33,122, 82, -144, 54,247,229,124,102,219, 86, 14,253,129,251,253,142, 49,133, 97, 16, 68,215,182, 13, 31,215, 43, 93,223,241,113,171, 29, 40, -133,190, 85, 97,245,191,254,231,239, 41,165,112, 93, 35,255,251, 63,102,222, 86,185,215,125,123,127,167,228,204,186, 6,134,161, - 37, 70,121, 98,239, 36,192, 76,253,210,104,252,208, 58,135,109, 13,173, 83, 71,178,255,156, 15, 34,158,152,162,223, 9, 91,192, - 96,233,186,150, 97, 26,232,218,134,109,211,220, 91,114, 51,133,139,244,189,236,118,119,184, 95,107, 72,186,249,146, 11, 57,201, -135,125, 24,196,158,166, 64, 12, 43, 52, 86,227, 15, 0, 84, 84,236,114,166,203,229,194,234, 87,186,166,161, 20, 93, 94,187,212, -200,212, 2, 84,142,116, 15,166, 81,129, 28,126, 91, 73, 89,169,111, 33,120,218, 78,198, 32,165, 40,122,213,111, 27,198, 57,161, - 2, 64, 74,169,162, 71,178, 89,213,133,151,217,230,149,226,116,249,218,186,126,150,251, 3,156, 36,108,231,243,153,219,253,206, -167,207,159,101,246,212,183, 52,214, 65, 42,164, 34,200,181, 32, 55,192, 16, 2, 77,245, 72, 88,183, 5,249, 10, 56,142,199,233, -215,226,232,118, 99, 60,142,148, 92,176,182,193, 88,232,186,150, 28, 35,183,251, 93,114,180,146, 9, 62, 84,227,156,142, 98, 44, -231,203, 11,100, 17,250,118,123,213,253,130,147,196,113,119,171,179, 28,167, 19,243,178,114,191,125,232, 29, 88,203, 79, 63,253, - 68,240,158,219,252, 96, 28,122, 12,213, 38, 24, 88,171, 94,127, 91,150,167,242,228,227,126,163,228,200,249,244, 66,211,200,156, -197, 24, 56, 29, 79,234, 62,209,161,121,123,127,231,248,242,194,208, 75,239, 63,207,179,198, 17,206,242,243,151,159,235,186, 3, -107, 13,198,128,117,150,177, 31,184, 94,175,140,211,132, 49,133, 20,147,236,115, 15, 7, 76, 35, 2, 98,223,247,228,162,200, 86, -139,227,250,241, 78, 41, 5,103, 13,175,151, 87,156, 83, 10, 94, 8,190,206,229, 13,247, 90, 16, 58, 39,147,165,166, 21,217,112, - 24,250,234, 59,191, 39,204, 57,166,211, 72,168,169,140, 49, 74, 50,183,159,109,235,250,192,251,122, 65, 26,195,216,244,132,232, -159, 69,122, 65, 69,200,178,136,112,152, 49,116, 53,110, 58,166, 68, 73,137,109,147,193,209, 22, 2, 14, 40,166, 48,223, 31, 88, - 35, 30,193,241,120,228,118,187,113, 58, 77, 60,101,201, 70, 68, 81, 16,162,103,173,197,135,136,247, 27, 37,107, 45, 29, 14, 7, -214,117,227,124, 62,178, 46, 27,166, 49, 28,250, 94,146,196,176,255,237,138, 4, 26,199, 97, 24, 88,183, 25,231, 26, 46,151, 11, -123, 78,128,143,129,184, 37,166,211, 68,223,141,252,246,167,223,243,246,245,157,235,199,131,214, 21,188, 95, 57,141, 61,166,157, -216, 66, 33,196, 66,242, 55, 76,222, 56,182,134, 71, 94, 41, 94,151, 73, 74,133,182,111,121,185,124,230,187,239,127,228,114, 62, -178,110,158, 63,253,199,191,179,249, 13, 72,252,252,245,207,213,246, 86,225, 64,253,161,231,113,127, 96,145,164,205, 89,199,235, -229,162, 6, 41, 38,222,174,223,200, 49,241,250,250, 9,107, 91,214,117,195, 82, 8,193,115,121,125, 1, 11,223,190,126, 99, 89, - 36,229, 76, 69,161, 59,121, 71,132,178,198,196,141,117,188,124,190,112,232, 15,213,154, 89,196,220,161, 31, 48,141, 37, 70, 79, -215,180,228,156,184, 94,175, 24,227,248,252,249, 19,239,223,174,196, 24,120,121,121, 33,250,133,235,219,149,109,126, 48, 90,205, -250, 59,107,248,225,251,207, 24,211,242,221,111,190, 83,145,213, 21, 73,236,214,141,113,232,248,242,229,157,247,143, 25,215,203, -140,202,117,199,211, 31,134, 67,245,250,118,191,206,254,114,154, 75, 0,236, 0, 0, 14, 85, 73, 68, 65, 84, 22, 73,101, 56, 28, - 40,177,208,245, 45,141,133, 55,239,120,219,224,109, 45,124, 93, 10, 95, 55,248,186,138, 21,171,217,180, 36, 26,174, 17, 27,216, - 88,121,104, 15, 67, 79,201,210,120, 90, 43,211,141,182,109,248,237,177,193, 88,195,219, 86,212, 9,185,218, 9, 85, 34, 70, 99, - 29,100, 93,102, 33, 40, 43, 58, 4,117, 48, 41, 41,204, 35,108,155, 14, 41, 35, 51, 14,221, 2,234, 38, 10,130, 57, 75,145,179, -144,177,186,224,173, 83,134,182, 41,234,180, 98,204,184,162,207,208, 56, 17,128, 82,133,210,219,166,161, 27, 6,105,144,157,131, -178,123, 98, 75, 34,100, 43,172,216, 84, 54,173,117, 13,227,216, 75,147,158,148, 61, 28, 98,228, 56, 77,164,148,116,153,120,165, -166, 57,163,164, 48,219,182, 88,171, 88,201, 20, 21, 64,211, 15, 67,237,194, 42,177,171,173, 48,178,117, 24,168,210, 26, 43,205, - 42,114,222,218,163, 43,141,181,248,176,137,169,237, 28,185,232,162,239, 58,197,229,134,109,133,214,241,111,127,122,240,239, 55, -248,183,255,252,198,219,125,101, 11, 91,237, 38, 13, 49,200, 68, 67, 27, 93, 78, 91, 41, 37,194,166,192,136, 84, 20, 56,145, 75, - 33, 91, 67,218, 60,177, 94,118,182,105, 72, 33,177,250, 72, 88,107,174,187, 53, 20,189, 26, 10,130,202,230,101,169,239, 84, 69, - 88,219, 52,140,195,128,179, 6,103, 45,174,105,158,157,157, 64, 19, 65,222,125, 63,208, 15, 74, 40,147,220,102, 3, 43,253,242, - 62,183,182, 86, 44,100,107, 12,231,151, 23,172,115, 88, 35,130,157,115, 82, 48,236, 57,215, 93,215, 17,163,100,141,165, 20,134, -113,164, 31, 42,140,237, 28,203,166,196,179,156,228, 71,222,182,213,159, 60,137,161,189, 51,128,173,181,218, 51, 69,197,147,179, - 86,240,178, 83,128,198, 56,142,140,227, 81, 16,116,140, 80, 17,145,177,151, 60,204,214, 34, 41, 39,201,167,118, 31, 6, 31,148, -217,190, 75,192, 66, 12,172,203, 10, 5, 14,227, 1,185,136,173,207, 98,168,237,123,158, 76,255,232, 73, 89,107,170,109, 91,172, - 51,248,109, 67,153, 15,158,176,220,201,214,241,242,114, 98,153, 85, 80, 96,228,255, 62,207,119,230,101,150, 12,172,238,163,125, -127,133,160, 24,101, 99,149,170,120,185, 92,100,124,147,170, 75,151,209,200, 0,224,118,191, 97, 16,186,165,132, 64,153, 63,249, - 45, 80,138,138,221,143,143, 43,227, 65,115,255,219,227,174, 46,185,235,113,214, 62, 37, 90, 49,168, 0, 44, 69,172,101,231,108, -101,139, 79,156,207, 39, 78,211,145,148, 19,227,112,224,126,187, 17, 83,100, 91, 87, 68,140,109,171, 30,220,203,142, 53,138,101, - 62, 12,154,183, 90,231,216,181,215,182,158, 67, 93,219,212, 51,171,118,161,125, 47, 83, 35,219, 16,147,162,165, 77, 41, 52,174, - 90,108, 35,168,125, 24, 6,134,161,197, 89,169, 99,230,249, 65, 74,153, 20,101, 98,212,180, 45, 77,211,161,160,155, 12,197,168, -144,175, 72,200, 60, 43,128, 40,103,161, 83, 80, 83,242, 74, 86, 67,179, 44, 26, 13,244,125, 53,174,129,156, 18,201, 71,205,112, -205,175,129, 69,216,204, 60,175,152, 44,164,100,183, 2, 14,245,243,110,222, 87,190,199, 64,202,137,195,112, 96, 89, 84,240,184, - 70, 81,211, 62,250,154,218, 87,221, 51, 77, 97, 89, 54, 17,249,166, 81, 49,189,141,171,151, 60,244,125, 53, 5, 10, 26,183, 62, -230, 7,126, 91, 89,230, 15, 62,191,190,112, 24, 26,242,122,101, 58, 54,252,227, 63,254,158,151,227,145,134,141,184,124, 99,234, -224,119, 63,126,162,111,224,242,233, 71,126,243,195,239, 56,159, 94, 57,191, 92,104,108,195,251,199, 27,215,183,191, 18,214,111, -216,182,193, 53,142, 57,172, 92,223,127, 86,129, 82, 11,150,241,120, 20, 25,181,109,193, 89, 53, 22,130, 5,233,187,142,143,219, -141,249,227,131, 12, 44,203, 42,187,221,117, 22,250,156, 19,167,227,132,171, 77,218,253, 49, 51, 28,122,134,190,231,244,162,248, -234,105,154, 24,107,240, 86,206,138,252,117,141, 37, 38,101, 56,116,125, 75, 76,213,166,119,213,115, 63, 30, 71,188,247,202,238, -200,114,149, 60,157,206, 52,206,226,218,142,195,113,226,112, 58,225, 14, 35, 25, 73,183,115,129,144, 19,203,250,160,235,122,254, -252,243,149, 20, 3,247, 77,161, 75,197, 90,114,201,252,221,143,223, 97, 1,119,249,254,199, 63,108, 62,144,139,161,117,178, 22, -117,206, 17, 99,168,139, 93, 78, 87, 90,124, 98,199,199, 20,185, 94,175, 44,243,242,180,159,116, 85, 30,211,181,186,164, 93, 61, -232, 4, 21, 26,114, 12,148, 90,165,108,219,198,158,241,252,243, 45,240,229, 46, 2, 72,142, 9,191,110,132,117,227,241,184,211, -181, 45,247,219, 77,225, 10,233, 87, 56,212, 53, 13, 6,158,255,127,219,138,237, 46, 59, 64,193,118, 33, 69, 74, 80, 55,130, 81, - 37,213,184,134,156, 10,228, 92,225, 76,232,134, 14, 76,133, 54, 75,193,123, 79,244, 98,189, 75, 71,106, 73,245,162,114,206,233, - 98,168,223,105,135, 31, 13,144, 75,161,107, 45,198,128,177,234,190,141,149,182, 31, 98, 45, 6,204, 51,133,203,236, 23,130,115, - 53,209, 39, 83, 74,169,217,220, 42,176,250,182,165, 24,165,146, 61,185, 0,126,171,159, 71,196,169,177, 31, 84,180, 36, 25,104, -172,155,236, 85,187, 86,135, 97, 72,137, 61, 85,107,158,133, 56, 88, 11,109,127,224,245,242,153,166, 17, 19, 56,134,200,120,152, - 84,125, 71, 89, 23,182,174,193,135, 32,187,212,182,129, 10, 11, 82, 59, 11, 44, 66, 61,114,160,248, 72,113, 21, 42,110, 28,109, -211,178, 6,205, 8,117, 12,169,170,133, 2, 57, 81,140,229,208,247,136,168, 25, 33, 6,166,227,137,174, 83, 14,253,182,109, 98, - 66,119,146, 8,165,160,153,110,206, 25,178,114,166, 91,215,224,154,134,214,233,239, 89, 39,164, 69,242,167, 68, 66,102, 64, 42, - 38,101, 54,130,129, 24,115,229, 6, 20,150, 69,134, 60,109,219, 19,146,103,143,206,237, 42, 74,163,215,108, 43,159, 64,204,211, -221, 4, 37,212,103, 99,234, 59, 44, 73, 69, 79,223,245, 26,207, 88,171,184, 86,235, 48, 78,113,167, 77,227,120,220,111, 60,238, - 11, 44, 51, 63,252,195, 63,208,119, 29,183,199,131,195, 56,202,201, 46,139,251,112, 62,157,104,218,134,101,145,108,169,235,164, -125,223,255, 70, 65,209,200, 26,233,236,126, 14, 26, 13,200, 12, 71,207,191, 0,166,136,227, 97,138,246, 2, 70,251,103, 11, 30, - 91,187,126,211, 88, 78,211, 9,139, 97, 89, 87,205,222,187,129,113,156, 24,250,142,182,235, 24,134, 3,195, 32, 45,115, 41, 50, -211, 25, 70,133, 3,149,146,184,125,220,217, 54,197,199, 62,238, 15,117,189, 77,131, 41,202, 3,143, 41, 19,194,246,180,225, 61, -158, 39,166,105,122,158, 11,235,178,208,238,103, 80,202,116,109,143,181,186, 40,183,117, 99,154, 70,142,167, 19, 25,217,202, 58, -251,171,235,224,227, 33,253,127,215, 10, 37,137, 65, 54,205,135,218, 65, 7, 31,159, 69,154,126,215, 9, 58,143, 53,176, 38,122, -134,126,160, 63, 40, 94,117, 31,185, 24, 91, 45, 84,123,249, 93,128, 56, 8,206, 58,186, 65,114, 57, 80, 19, 65, 46,228,146, 53, -106,171, 29,251, 60,207, 28,143, 39,196,167,200,245,188,145,108, 87, 94, 3,253, 19,113, 10, 73,242,170,182,147,174,189,237,187, -103,184, 76,211, 72,102,107, 10,250,187,219, 90, 17, 26,101,189, 15,117,239,104,238, 46, 68, 39, 4,153, 44, 57, 35, 37,205, 90, -141,144,140, 1,138, 70,122,187,220, 19, 35, 52,199, 86, 94,128,102,199, 10,144, 26, 15, 35,141,211,216,171,152,140, 53,130,254, - 99, 82, 64,140, 69, 60,152,182,239,100,156,211,171, 9,218,145,193, 29,201,241,219,194,199,253,141,199,253,157,152, 55,110,183, - 27, 95,190,252,127, 92,107, 25,198,145, 79,159, 63,209, 52,150,191,252,242, 51, 95, 31, 55,126,249,229, 47,124,251,250, 23, 66, - 88,176, 46, 97, 27,195,229,101,162,233, 45,239,183, 27, 95,223,190,176,172, 55, 82,146,225, 23, 6,154, 78,170,131, 16, 35,253, -208,211, 54,202, 85,232, 91,237,203,152, 18, 33, 5,250,182,231, 48,141,116, 93,199,230,245, 92, 82, 86,110, 65, 73,137,166, 21, -129, 52,198,192,182,174,248,202,187,242, 81, 77, 64,215,201,188,167,109, 91,188,223,248,120,255, 70,223,117,156,166, 19,125,171, -166,102, 60, 28,104,156,101, 24, 58,160, 54, 54,165, 84,196, 90,118,199, 33,101,230,135,252, 6,188,247, 76,199,145,166,237,104, -186,129,225,116,226,254,113, 35,230, 82,243, 17,116,201, 59,219,211,119, 35,215,249, 70,235, 12, 63,255,245, 23,166,227,133,109, - 91,113, 47,223,255,248, 7, 57,156,117,228,168, 44,244,117,173,241,141, 93,139,179,130,178,223,222,222,184,221,239, 60,150, 71, - 13,217, 16,252,233, 58, 17,124,230,121, 37,248, 21,103, 84,101,110,155,242,150,173,181,220,110, 31,210, 83, 86,167,178,174,211, -124,249,126,251,224,126,127,176, 60, 30, 44,243,194,253,118,103, 89, 87,124,237, 94, 98, 12, 90, 68, 41,226,183,149,213,123,214, - 69,129, 31,222,111,132, 77, 22,169, 49,200, 30,116, 79,210,218,115,160,155, 70, 7,105, 73, 69,164,146,248, 43, 31, 96,223,132, - 5,109, 66,101, 25, 43,184,230, 48,142,130,229,114,126, 22, 10,198, 90,138,217, 97,215,204, 26,106, 20,167,113,244,125, 87,253, -154, 97,119,125,235,219,166, 30, 8,170, 14,151,213, 51,175, 51, 32,111,237, 20,117, 8,199,156,235,115, 73,114, 50, 74, 74,134, - 75, 69,197, 1, 69,240, 78, 74,117,131,230,252,236,152, 74,206, 28, 70, 5,162,228,148, 43, 36, 46, 84,165,100, 88,183, 77,135, -124, 74, 52, 77, 67, 8,137,203,249,194,203,229,149,113, 60,210,182,114,123,123,204,218,132,166, 49, 4,191,103, 0,151,170,185, -149, 17, 79, 14,158, 28, 2,164, 4,109,207, 48, 42,104,194,182, 45,182,237,200, 70,159,149, 92,112,109, 71, 65, 5, 82, 49, 64, - 54, 80,231,163, 56,205,128, 89, 61, 49, 40, 60,133,146,161,177, 4, 31,136, 89,208,125,204, 42,114,214,109,211, 12,175,190, 3, - 99,170,225,135,181, 80, 10,214, 64, 49,242,172, 95,231,133,152,180, 41,149,165,221, 67,222,173, 94,115, 37, 17,106, 46, 90, 12, - 21,154, 54,164, 36,149,128,113,114,253,243,222,179,109, 1,191,121,252,186,214,185,105,199,186,137,141, 28, 99,124, 34, 11, 77, -167,142,100,215, 84,191,156, 79,196, 20,249,238,251,239,105, 92,203,227, 33,217,143,116,217, 74, 6, 11, 33,210,118, 45, 63,253, -253,223,243,250,242,194,199,253,131,199,227, 78, 41,242,242,126,125,125,149,182, 27,139,223,212, 81,205,243, 90, 71, 0,210,190, - 55, 77, 3, 89, 29, 69,140,241,121,241, 77,211,164,207,234, 61,109,211,171,219,236,196,198,246,161, 34, 90, 22,114,142,204,143, -153,243,233,196,233,116, 36,132,192, 52,158, 53,175,221, 86,198, 65,243,215,195,225,128, 12,118, 60, 22,199,178,173, 42,168, 27, -185,117,197, 16,153,231,149,233, 48,242,237,253,157,157, 43,242,250,233,149,105,156, 24, 58, 57,157,133, 32, 91,228, 67,223,211, -246, 67,157, 75,110,108, 62, 48, 77, 71,198,241,192,245,237, 27,185, 20,124, 8,213,105, 49, 35, 47,117,234,243, 81, 55,218, 15, - 42, 6,215,154,233,222,247,154,225,150, 82,240,171,244,238,174,145, 82, 67,207,197, 85,223, 1,217, 77,203,234,183,199, 26, 87, - 3, 95, 84, 20, 72,153,163, 56,103, 17, 12,103,233,182, 87,253, 13,191,122, 66,148, 78, 60,166, 68, 88,189, 46,211,126,160,237, -123, 89,179, 30, 6,173, 63, 12, 57,203,153,176,235, 53, 98,108,218,134, 82, 34, 49,232, 82,177, 70,196, 68, 53, 81, 25, 87,207, -171,190, 23,186, 33, 55, 52, 95, 81, 39,131,175,141,144,173, 78,132,109,219,114,156, 38,168,251, 68,231, 25, 76,135, 3,185,228, -218,177,235,140,235,251,254,201,145,136, 81,159, 11,224, 56,141,164,146,113,141, 5, 99,241, 91, 96,173, 69,132,247, 10, 67,105, -219,150, 82, 52,142,212, 25,147,159, 5,110, 74,137,121,153, 89,182,141,105, 26,240, 94,239, 52, 6,241, 66,250,174, 37,149,204, -186,120,250,182,161, 96,160,128, 53,106,200,114,146, 83,223,252,184, 19,194,131,247,111, 95,184, 47, 55, 98, 86,198,196,222,233, - 90, 7, 49, 4,238,243, 85,163, 65,178,194,113,234,103,185,221, 62,104,218, 22,231,148, 61,225,156, 35, 4, 89,102, 27,148,159, -225,189, 66,114, 54, 95,209,185,190,211,217, 90,132, 32, 31,143, 19,206,137, 67, 19,162,103,243, 43, 33,200, 35,192, 53, 78, 72, -216,208, 85,142, 19,207,177, 18, 69, 41,151,125,219,242,152, 31, 56,167,188,136,224,149,218,121,191,127,232,188,136,158, 63,254, -241,143, 88, 7,183,235, 13,239,229,172,249,254,237, 27,165, 20,250, 65, 89, 24,146,160,194,219,219, 27,215,143, 43,247,109,227, -177,109, 92,223,110, 60,230,141,227, 73, 5,224,247,151,223,112,156,206,252,240,119,255,141,247,247,159, 25,134, 35,175,175, 47, -152,223,253,243,191, 20, 31,163, 14,199,176, 34,182,185, 94,160,115,174,194, 52,234, 92,247,185,114,219,245,200,192, 64,241,163, -198, 88,193,247, 20,117,102,251, 97,153,179,190,115,209,194,181, 86,222,237,187,103,242, 14,111, 83, 15, 88,138,230,243,227, 56, - 62,103, 61, 90, 67, 50,218,223,188, 32, 95,193,110,142,169, 74,126,118,184,101,247,163, 7,205, 54, 37, 61, 82, 48, 68, 83, 97, - 36, 5,124, 8, 42,205,200,199, 56,231,244,132,181,247,177,131, 49,210, 42,215, 47,240,156, 33, 27,163,136,208, 93,251,188,207, - 71,157,115, 28, 90,145,132,156, 83,103, 29, 83,212,198, 12,129,130, 56, 4, 24, 65,144, 57,103, 74,209,124,117, 39,231, 52,141, -171,135,162,125, 62,235, 92,132, 18,236, 14, 90,214,212, 72, 80,171,120, 70, 91,225, 71, 87,165,125,185, 84,183, 35,239,107,199, -104,201,185, 16,124,100,183,218,220,181,142,165, 20, 48, 72,118,101, 45, 49,249,231, 37,190, 27, 85,144,249, 21,122,173, 29, 52, - 70,227,139,156,210,254, 80, 32, 86, 34,136,145,102,118,239,168,169,143,144,156,117,153,215,191,185,255, 44, 24,200, 9,156,197, - 97,235,179, 55,207,239, 92,114,214, 5,221,117,207, 78, 61, 86, 84,102,127,102,214,238,207, 77,197, 90,168,240,172,115,246,137, - 14, 88,107,159,105, 91,114, 54, 43, 44,181,208,244, 65, 7,135, 14,221,106,247,234,132,236,148, 82,234,103,214,102,223,201, 64, -133, 95,215,117, 65,235,162,169,235,117, 28, 39,140, 81,250, 82,215,117,148,162, 2,213,135, 80,139, 43,143, 41,226,174, 12,131, - 14,194,231,165,239,181, 94, 40,242,209,110,187,246,185, 86,114,206,207,207,178, 67,253, 77,163,247,158,234,158,205, 41,129, 49, -132, 24, 52,175,173,151,122,206, 10,121,113,214,214,247,184,178,199,156,182,173,186,174,166,105, 89,183,141,130,144,138,191,253, -190,206, 57,141, 85,156,123,118,166, 49,166,231, 90, 10, 81,240,235,186, 44,250, 59, 78,221,178,247,190, 34, 30,242,115,104,154, - 61, 28, 70,228,196,117,219, 80,112, 11, 60, 30, 31, 40, 77,108,224, 56, 29,217,188, 7, 3,195,112, 16,127,193,235,121, 30, 14, -242,203,240,126,211,231,202,185, 34, 52,186, 36, 49,144, 99, 82,126,189,179,236,138, 13,191,249,231,165,222, 52, 13,235,186,233, -146,161,214,163,200, 10, 89,223,175, 60,247, 96,211,234,236, 96,127,207, 77,163,243, 33, 43, 74,245,111, 57, 25, 79,206, 73,150, - 99,221,254, 12,158,163,153,122, 62,237,159,197, 57,117,252,185, 72, 29,241, 92, 83, 73,255, 86,193,102,159,255,151,173,231,148, -181, 42,148,172,173, 99,186,253,247,202,126,193,107,125,238, 13, 76, 74, 21,246,119,226,164,236,200, 96, 41, 26,163, 56, 39,223, -121,235,246,179, 73,104, 86,170, 4, 47, 21,173,242,127,119,127,115,126,165, 84,131,147,172, 65,241,221,133,189,112, 62,159, 78, - 66, 88, 42,111,160,212,223,169, 15, 82,223,209, 24,160,136,107,208,183,207, 98,232,215,187, 34, 60,247,246,190,206,246, 34,251, -112,144,186, 37,132,192,237,118, 35,214,130,107,127, 7,122,206, 58,175,196,187, 41,245, 60, 77, 20, 74,109,202, 76, 29,231,100, - 40, 26,191,197, 20, 1,233,245, 47,151, 11, 6, 83,173,177,245,220,212,152,118,156, 95,206,116,173, 60, 49,230,121,230,118,251, - 38,121,120, 41,132, 53,114,122, 57,113, 58,159,105,219,230,185,222,150,117,225,118,191,107,189, 88,141,199, 98, 76, 24, 99, 57, -157,206, 79,238,140,223, 60, 95,191,126, 85, 99, 75,169, 5, 80,196, 22, 56,247, 3,253, 48,240,195,231, 11, 5,195,208, 31,193, -194, 63,253,143,127,226,255,253,233, 79,252, 23, 41,188,202,126,100,132,236,135, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, + 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 2, 0, 0, 0,135, 56, 89, 17, 0, 0, 10, 79,105, 67, 67, 80, 80, +104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61, +247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81, +193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251, +225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, + 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34, +192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, + 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, + 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86, +138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, + 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0, +120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194, +121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45, +234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, + 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217, +229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, + 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98, +185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, + 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3, +128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, + 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10, +100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, + 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133, +248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, + 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208, +100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51, +196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, + 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3, +132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67, +196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147, +201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, + 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173, +161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, + 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24, +103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145, +202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, + 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, + 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177, +205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248, +156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, + 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157, +231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128, +158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60, +197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, + 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, + 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182, +184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, + 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, + 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, + 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71, +103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210, +245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81, +229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, + 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, + 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219, +101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206, +105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53, +119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, + 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227, +123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, + 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146, +236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58, +189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, + 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171, +158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, + 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, + 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134, +157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100, +207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47, +151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221, +181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, + 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, + 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228, +233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, + 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147, +103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255, +139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199, +187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, + 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, + 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, + 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254, +203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194, +198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, + 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0, +249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, + 69, 7,219, 6, 21, 16, 50, 48,139, 37,211,236, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,105,148, 93,215,117, 30,184,135, +115,135, 55,215,171, 1, 19, 1, 2, 40, 78, 18, 73,137,166, 65, 41, 22,101,205,160, 90, 67,162, 88,138, 1,183,149,216, 89,113, + 98, 32,238,100,181,148,172,101, 3, 29,219,105,199, 75,178, 72,175,229, 33,113,187, 19,194, 67, 71,109, 39,110, 17,146, 45,219, +138,221, 22,161,182, 45,107,176, 45, 66,150,100, 81,226, 0, 20, 49,213,128, 26,222,171, 55,223,225,156,189,251,199,121, 85,134, + 1, 18, 4, 41,208, 36,237,251,253, 32, 11, 85,119, 56,247,220,123,191,253,157,111,239,123, 14, 64,129, 2, 5, 10, 20, 40, 80, +160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, + 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40,240,210, 7,191, 64,199,125,239,119,236,254,207,255,226,222, 67,111,191, 45,119, +242,151,103,219, 69, 71, 23, 40, 80,160,192,223, 6,126,127,203,171,182,253,222,191,249,142,221,152,237,154,170,191,239,190, 59, +111,217, 86,253,244, 95, 92,200,172, 20,221, 93,160, 64,129, 2,127, 99,160, 23,226,160, 21,200, 96,241,204,104,241,252,240,212, + 55,135, 79, 60,249,254, 55,220,250,181, 95, 56,112,235, 13,141,162,187, 11, 20, 40, 80,224,229,173,223,159, 92, 25, 37, 0,239, +188,163,169, 86, 93,175,107,123,189,153,109, 91,255,213,119,221,253,232,185,181,111,158, 95, 47, 58,189, 64,129, 2, 5, 94,174, +252, 14, 0,159,155,235,255,249,252,232,192,183, 79,197,108,242,209,200,173,183, 32, 42,127,239, 59,239,158, 40,243, 31,253,229, +130, 19, 45,186,190, 64,129, 2, 5, 94, 80,224, 11,122,244,155,102,162,223,251, 23,183,221, 90, 11,134,195, 28,152,105,199,158, +120,215,174,175,158, 94,250,174, 15,253,254,153,139,189, 23,247,202,247,237,219,215,108, 54, 1, 96,110,110,110,110,110,238,101, +113,183, 94,142,109, 46, 80,160,192,223, 78,126, 7,128, 74, 72,191,254,125,123,223, 51,219, 72, 70, 14, 64,112,235,206,210,141, +123, 51,149,191,255,147,159,122,248,203, 23,158,247, 97,103,103,103,103,103,103,175,178, 65,187,221, 62,121,242,228, 85, 54,120, +248,225,135,247,239,223, 15, 0, 71,143, 30,125,224,129, 7, 94, 22,119,235,165,217,230,125,251,246,237,223,191,191,217,108,238, +219,183,207,255,230,228,201,147,115,115,115,199,143, 31,111,183,159,115,233,212,165,199,185, 58,158,245, 22, 23, 40,240,119, 28, +230, 57,239,192, 24, 25,186, 50, 74,168,255, 63,254, 85,196, 64, 68, 68, 0,192, 15,254,238, 82,116, 48,126,251,174,122,150, 43, +180,215,146,114, 53,152,218,250,233, 15,189,247,223,255,250,159,126,228, 99,143, 88,247,124,188,154, 3, 7, 14,220,127,255,253, +207,186,217,241,227,199, 79,156, 56,113,236,216,177,226, 78,191, 16,180,126,224,192,129, 3, 7, 14, 92, 25,104,125, 16,122,240, +193, 7,143, 29, 59,118,244,232,209,231,196,242,251,246,237,123,248,225,135,175,101,203, 19, 39, 78,220,119,223,125,197,141, 40, + 80,224, 58,240, 59, 33, 30,122,221,182, 31,125,235,141,211,213, 80,144, 0, 17,136,128, 8, 16,209,240,230,207, 64,132,204,227, +159,145,128,200, 41,166, 2, 54, 12,104, 99, 47,235,114, 25,225, 79,126,255,235,223,118,247,174, 3, 31,254,253,149,245,209, 11, +116,121, 7, 54,112,240,224,193,231,161, 37, 11, 92, 5,143, 60,242,200,179,110,115,232,208,161,253,251,247, 31, 60,120,176, 16, +218, 5, 10,188,164,249,253, 3,111,218,241,179,239,185, 57, 27,138, 10, 50, 33, 0,129, 34, 40, 2, 16, 10,130, 2, 40, 0, 33, + 8,128, 40, 48, 32, 34, 16,128, 2, 35, 6,140,170, 94,226,251, 45, 85, 16,211, 97,246,166, 59,118, 61,246, 75,223,119,223,191, +251,173, 47, 63,185,242,188,175,225,196,137, 19, 87,254,210, 75,200,205,159, 31,126,248,225,251,238,187,175,160,248, 23, 2, 39, + 79,158, 60,126,252,248,201,147, 39,253,141,104, 54,155,251,247,239,247,204, 14, 0,179,179,179, 15, 61,244,208, 61,247,220,243, + 60, 58,255,216,177, 99, 87, 73, 51, 20,119,179, 64,129,235,195,239,132,240, 67,175,219,166,131, 60, 79, 82, 16, 65,244, 70, 12, + 2, 2, 32, 0,226,216,164, 97,162,169, 45, 64, 8, 34, 72, 0, 66, 0, 2, 8,224,153,158, 4, 68,129, 8, 28, 0, 3, 32,100, +105,222,140,162,147,191,240,143,127,232, 23, 63,243,224,167,190, 62,142, 1,207, 17,207, 52, 72,247, 30,142,119, 15,246,237,219, +119,232,208,161,151,139,207,254,114,193,177, 99,199,142, 29, 59,118,153, 54,111,183,219,199,143, 31, 63,126,252,248,131, 15, 62, +120,232,208, 33, 79,241,207,175,243,189,189, 86,244,115,129, 2,207, 15,215,250,125,147, 40,252,204,103,231,145,210, 74,232, 42, + 37, 40,199, 90,142,181, 28,203,248,135, 72, 98,202,192,229, 24,149, 1, 17, 68, 64,228, 18,178,206, 64, 18,144, 17,104, 2,144, +130, 36,160, 25,136,128,168,170,228, 78,108,234,254,243, 7,222,254,208,143,191,187, 28, 5,215,241,218,142, 31, 63,126,169,102, + 63,112,224, 64,113,191,175, 35,238,187,239,190,195,135, 15, 95,197,120, 57,124,248,240,166,250, 62,114,228, 72,209, 99, 5, 10, +188,116,253,153, 7, 63,191,244,153,199,219, 55,207, 68, 8, 40, 27,220,237, 11,217, 83, 43,175,187,169,113,228, 29,183,149,131, +146,136, 0, 51, 32,128,136,102,125,100,164, 93,119,209,204,205, 88,223,134,113, 29,108, 42,131, 21,237, 45,202,202, 19, 96, 71, +128, 37, 5,231, 20,164,159,125,247, 27, 94,177,119, 71,227, 77, 31,124,104,144,228,215,235,242,124, 21,135, 87,145,215, 88,149, +113, 25, 46, 43, 11,121, 30,158,192,102,169,207,181, 23, 53, 62,143, 93,174, 99,155, 55,207,126,245,125,175, 69, 89, 31, 59,118, +204,167,193,125,147, 10, 23,190, 64,129,151, 40,191, 3,192,169,213,244,212,106,122,229,239, 95,189,171,254, 79, 94, 55, 91,229, +200,138, 2, 33, 36,137,166, 3,112, 3,190,245, 13,230,158,247,243,222,239,184,114,200,160,173, 51,246,244,103,220,217,207, 35, +135,160,170, 8,217, 48,219,119,211,246,223,251,169,247,237,255,145,227,249,245,155,172,230,249,213,137, 55,155,205, 67,135, 14, + 29, 56,112,224,178,168, 48, 55, 55,231, 77,137, 43,137,239,254,251,239,247, 27, 31, 63,126,252,216,177, 99,254, 8,135, 14, 29, +186,180,188,100,110,110,238,129, 7, 30,184, 74, 61,207,161, 67,135,142, 28, 57,114,217, 46,207,116,198,111,177,205, 87, 54,248, +200,145, 35,135, 14, 29,242, 37,246,112, 61, 10, 84, 46, 37,244,205,195, 22, 40, 80,224,101,131,195,111,222,169,191,248,118,251, +115,111, 31,254,236,219, 7, 15,188,169,255, 31, 94,211,255,241, 87,247,255,195,171,242, 47,253,119,125, 54,216,115,127,158,124, +226, 80,242,201,195,201, 39,255,117,250, 59,255,107,250,219, 31,208, 63, 60,242,161,127,118,239,179,158,244,200,145, 35,155, 7, +185,250,150,247,223,127,191,223,172,213,106, 93,250,251,135, 31,126,216,255,254, 74,235, 96,255,254,253,173, 86,235, 42,205, 62, +125,250,244,149,163,129, 75, 15,184,111,223,190, 71, 30,121,228,153,118,127,240,193, 7,159,150,157, 31,122,232,161,103,218,229, +145, 71, 30,105, 54,155,215,183,205,151, 53,248,202,221,175,177, 78,241, 42,216,191,127,255,230,209, 46,205,120, 95,223, 93, 10, + 20, 40,112, 29,244,251,101, 40,135,252, 11,223,115,235, 15,188,246,134,116, 36,206,229,144,142,192,230,128,138, 1, 68,239,253, + 8,223,249,110,191, 89,119,148,254,193, 87,206,252,193, 87,207,180,250,163,128,241,149, 59, 38,223,115,207,205,223,126,211,118, + 0,224, 93,175,193,176,150,127,238,103, 32, 52, 0, 10,132,182,159,254,232,251,239,253,175,159,254,198,169,249,235, 48, 83, 77, +179,217,220,180,221,175, 49, 83,119,224,192,129,135, 30,122,232, 82, 5,122,226,196, 9,175,124, 55,165,241,236,236,172, 47,200, +121, 90,195,193, 51,181,215,224,190,176, 4, 54,170,197, 55, 69,186, 23,242,151,197,161, 75, 51, 4,155, 59,250,147,238,219,183, +239,210, 86, 93,223, 54,251,200,225,245,245,230, 71, 67, 87,255,124,236,218,249,253,105,181,252,223,164, 63, 86,160, 64,129,231, +140, 91,182,148,158,252,241,191,167, 63,251,214,225,253,111, 25,124,248,222,193, 79,236, 27,252,196,190,193, 79,222, 51,248,247, +175,204, 62,243, 51,155, 18,236,139, 79, 44,124,231,255,254,177, 29,255,234,151,103,255,237, 71,111,251,145, 95,123,229, 15,255, +218,109,255,230, 87,239,248,192,177,163,191,246,153, 65,146,141, 85,252, 99,159, 78,126,227,123,211, 79,125, 48,253,212, 7,210, + 79,125, 80, 63,253,195,255,227,195,239,251,214,245,251,101,138,248, 50, 49,248,180, 90,120,118,118,118, 83,198,158, 62,125,250, + 74,253,120,169, 76,190,172, 0,124,243,128, 30, 15, 61,244,208,101,142,196,236,236,236,166,168,111,181, 90,151,254,245,208,161, + 67,151, 74,245,203,184,245, 74,109,126, 93,218,124, 89,131, 79,159, 62,125, 89, 10,250, 91,119, 84, 78,159, 62,253,180,125,117, +141,250,253,202, 33,197,233,211,167, 55,107,162, 10, 20, 40,240,130,232,247,119,220,222,252,228, 63,187,221,136, 25,166, 57,184, + 12,156, 5, 66, 64, 0,117, 56,189,203,188,246,251,253,102, 79, 46,181,191,255, 23,255, 96,121,100,203,149, 82,206, 28, 4, 28, + 50,178,134,232,236, 39,254,236, 20, 19,125,232,253,111, 6, 0,190,249, 45,238,241,255, 23, 92, 31, 76, 9, 16,108,150,239,191, +251,198,237, 83,149,197,181,193,181, 52,230,105,107, 51,246,239,223,127, 41,211, 29, 62,124,248, 90,244,251,131, 15, 62,184, 41, + 99,159,182,100,219, 91,210, 94,237,250,154,203,167, 53,211, 79,156, 56,113,240,224,193,203,126, 57, 55, 55,119,244,232, 81,111, +122,248, 34,241,227,199,143, 95,118, 9,115,115,115, 87,214,233,251,147, 62, 19, 69, 94,151, 54,207,205,205, 93,185,239,183, 40, +150, 47, 77, 36, 60,191, 79,136,175, 12, 48,179,179,179, 71,142, 28, 57,114,228,200,203,104, 86,137, 2, 5, 94, 54,252, 30, 48, +126,232,221,187,127,228,205, 55,164, 9,164,152,131,228,128, 10, 1, 1, 0, 32,104,158,153, 91,223,136,213,105,191,241,209,255, +246,249, 39, 47,116,160, 81,237,244, 45,160, 99,132, 50,227,116,197, 52, 75,166,209,168,126,242,207,159,124,243, 29,187,247,223, +181, 23,216,240,236, 27,237, 87, 62,138, 51,123, 64, 69, 16,195, 82,248, 15,239,189,233,191,252,238,215,174,165, 73, 87,159,168, +224,216,177, 99,215, 88, 70,237,231, 81, 25,183,252,153,191,170, 63,121,242,228,177, 99,199, 60, 35,239,223,191,255,105,153,235, +240,225,195, 79,187,239,137, 19, 39, 78,158, 60,185,105,152,108,186, 43,155, 63, 63,240,192, 3, 79,123, 94,127, 82, 95, 8,244, + 66,180,249,153,206,251,188,177,111,223,190,205,251,226,207,254, 92,143,224, 39,177,217,116,117, 54,103,185,217,188,233,179,179, +179,207,212,207, 5, 10, 20,128,231,186,190,199,206,137,240,243,255,250,142, 31,121,253,246,225,208, 57,112, 32, 57, 16, 0, 35, + 50,162, 65,100, 66,131,180,227, 78,191,241, 83, 23,215,127,255, 43,231,160, 92, 2, 63, 93, 1,179, 3,234,165,238,169,149,225, +220,242, 48, 87, 20,230,207,252,229, 89,191, 49, 78,223,172,163, 46,128, 5, 4, 64, 5, 43,175,189,109,219,117,185, 66,111, 64, + 95,139,213,176, 73,148,237,118,251,234,124,180, 25, 45,158,182,166,222, 19,211, 85,104,235,178,211, 93, 58,206,184,202,121, 55, +197,254,117,111,179, 47,176,185,142, 79,149,247,250, 55, 27,246,156, 88,184,221,110, 31, 61,122,244,166,155,110,186,231,158,123, + 14, 30, 60,248,192, 6, 14, 30, 60, 56, 57, 57,121,105, 12,243,197, 66,197, 59, 92,160,192,117,208,239,175,159,173,125,230,159, +223, 22, 8, 15, 51, 1, 86, 80, 65, 5, 20, 84, 70, 32, 4, 68, 0, 69, 19, 82,243, 70,191,253,153,149,238,104,152, 67, 61,242, + 95,184,250, 25,200,128, 8, 84,215,251,121,158,217,157, 13,211,219, 40,117,199,218, 86, 0,134,116,136,165,154,130,130,181,119, +205, 78, 19,161, 92,195, 76,241, 71,143, 30,125, 90,138,217,191,127,255,236,236,108,179,217,244,169,203,103,157,159, 96,147, 43, +159, 53, 19,120,233,104,224,202,178,238,171,143, 21,174,164,254, 77,241,126,245, 29,175, 62, 13,195,183,210,230,235, 91,150,238, +211, 30,155, 1,245,232,209,163,207,233,248, 39, 79,158,188,202,246, 15, 60,240,192,137, 19, 39, 54,173,170,251,239,191,255,105, +195, 94,129, 2, 5,174,149,223,153,240,223,190,113,235, 79,191,125,103,150, 65, 18, 8, 18,168, 83,204, 37, 12,169,109, 93, 5, + 8, 12,251,149, 66, 16, 0,212,250,189,182, 52,202, 28, 6, 78, 0, 20, 65, 21, 20, 0, 20, 20, 64, 17,152, 6,195,252,108,146, + 68,119,109, 52, 64, 29,104, 14, 54, 1,170,163,138,138,236,104,198, 1, 83, 42,238, 89,155,119, 21, 31,214,123,181,222,119,126, +248,225,135,239,185,231,158,171, 91, 10, 87,202,207,107,161,179, 43, 21,232,115,186, 7,215,206,209,155,222,206,245,109,243,117, +228,119, 95,138,179,217,170,195,135, 15, 95,247,201, 59, 79,158, 60,121,244,232, 81,111,254,204,206,206, 30, 56,112,160,160,248, + 2, 5,158, 39,191, 55, 74,252,241,127, 50,187,127,119,125,148, 9, 68, 6, 9, 52, 23,147, 75, 88,226, 31,252,228,153,217,169, +232,232, 27,182, 39, 10,232, 37,124,158,203,234, 41,218,245, 26, 0,120,229, 13, 83,127,239,150, 45, 95,248,230, 10, 24, 3,138, + 64, 10, 10,224,191, 91, 18, 4,196,164, 53,184,101,219,152,104,180,187, 0,105, 87,211,137,141,233,199, 20, 20,240, 91,158,157, +222, 83,191,231,130,171,164, 67, 47, 99,189,103,157, 92,254, 5,194,179, 6,134, 43, 55,120,209,219,124, 21,114, 63,122,244,232, + 11, 52, 51,243,230,103,177,112,157,234, 56, 11, 20,248,187,200,239,119,237, 40,255,238,247,221,180,171, 18, 14, 5,177,204, 0, +160,153,196,162, 73, 8,239,249,232, 19,127,240,205,206,135,222,121, 3,122, 34,102, 4, 4, 48,164, 23,191, 14, 99, 39, 6,127, +236,189,247,188,235, 27,159,130, 36,135, 40, 4, 69, 0, 0, 1, 16, 0, 21,232, 15,239,190,253,134,239,123,211, 29,126, 99, 89, +254,166,106,142, 46, 3, 16, 80, 37,212,197,214, 32,187, 30, 95,177, 62,240,192, 3,155, 92,112,224,192,129,107, 97,156,231, 52, + 43,192, 75,164, 34,251,165,208,230, 75,201,253,216,177, 99, 47, 92,125,139, 47,210,247,231,218,191,127,127, 81, 72, 83,160,192, +115,227,119, 4,248,129,215, 78,253,210,123,246, 88, 11, 67, 67, 24,145,138,234,200, 85, 12, 62, 62,200,255,193,175, 60,241,228, +114, 2, 0,167, 86, 83, 64,213,177,126, 7,136,203,238,204,231, 76,251, 12, 54,247, 0,192, 59,239,222,115,236,135,222,242,193, + 95,249,147,225,122, 10,113, 4, 76,160, 10, 89, 14,195,209,183,191, 98,235,199,127,248,221,149, 56, 0, 0,200, 71,238, 27,159, +192, 48, 2,116,160,162,226,128,232, 47,158, 90,145,235,180, 76,235,137, 19, 39,188, 7,114,141,223, 67,190,160,220,244, 2,225, + 69,111,243,131, 15, 62,120, 41,185,191,208,149, 45,197,135, 78, 5, 10, 60, 43,158,177,126,230,208,235,102,126,249,187,246, 36, + 22,242,178,193, 18,171, 0, 12, 93, 37,230,223, 60,213,121,237,207, 63,234,201, 29, 0, 30, 93, 30, 1, 33,248, 53,152,152,192, + 24,176,253,252,115, 63,183,121,156, 31,124,219, 29, 95,252,200,119,127,240,239,191,106,239,100, 20,107, 94, 37,119,239, 45,211, +255,199,255,242,214,207,126,248,192,222,173, 13,191,141,253,210, 47,235,250, 25, 8, 34, 69, 4, 80,176, 14, 8, 79, 62,185,252, + 55,220, 23, 87, 86,182,188,212,206,123,229, 6, 47, 86,155,175, 36,247,205,218,205,191, 1,114, 47, 80,160,192,243,215,239,229, +144,126,234, 45,219,179, 68,160, 26, 96,136,154, 41, 39, 54,170,240, 79,127,118,233,199,254,199,249,252,146, 21,245, 30, 93, 28, +157,239,100,219,170,161, 83, 29,207, 5, 95, 42,203,185,207,218,207,255,188,121,253, 7,253, 54,175,222, 61,253,115, 63,240,198, +143,124,159, 93,106, 13,194,192,236,152,172, 92,122, 46,247,141,223,182, 95,251, 53,136,203, 0,128,196,234, 4,157,228, 73,250, +169, 63, 61,115,189, 46,242, 26, 45,218, 75,135,252,205,102,243,111, 76, 33,206,205,205,249,243, 94,125,134,203,167,253,235,139, +213,230, 23,157,220,175, 61, 41, 93,160, 64,161,223,255, 26,166, 43,166, 25,177, 21, 80,167, 58,116, 97,230, 48,194,131,191,113, +234,200,239,156,203,255,250,114,169,195, 76,126,225, 79,151, 3, 3,154, 56, 0, 69, 2,100,194,114,205,125,237,255,206, 79,252, +152, 14, 87, 55,183,140, 3,179,103,107,227,175,145,123, 62,114,127,246,127,218, 63,249, 48, 70, 33, 50, 35, 2, 4, 17,228, 54, + 32,248,189, 71,206,156, 91,238, 95, 47,114,223,228,247,171,115,193,165, 21,132, 87,126, 73,244,194, 97,243,188,254,163,214,107, + 23,239, 47, 98,155, 95, 92,114,191,244, 74,159,223,252,160, 5, 10,252,221,229,247,165, 94,126, 38,177,229, 50,151,115, 87,102, +232,145,188,241,191, 60,118,252,100,235,105, 55,254,229, 47,174,116,114,103,114, 7,185,128, 95,147,143, 17, 42, 53, 57,253,251, +217, 39,190,223, 61,250, 9,237,206, 95,182,139, 14, 86,228,244,137,236,183,126,192,254,197, 47, 65, 28, 3, 27, 64, 5, 68,164, + 0,147, 28, 88,255,183,255,250,165,235,114,121,190, 22,123,243,159, 87, 47,164, 59,126,252,248,165,235, 81, 60,191,249,226,159, + 7,142, 31, 63,190,169,187,159,105, 29, 12, 63,121,239, 75,167,205, 87,146,187, 47, 91,124, 78,113,247,200, 6, 54, 67,215,181, +124,134,230, 63,104,240, 63,251,181,162,138,215,184, 64,129,231,192,239,153,213, 55, 63,248,196,127,124,100,229,227,115,221, 35, + 39,230,111,251,200, 95,254,217, 83,207,168,166,219, 67,251,131, 31, 63, 27, 68,172,125,171,185, 0, 32, 32, 2, 34,148,235, 96, + 59,249,231,126, 42,251,196,251,179,223, 57,108, 63,247,211,246, 79,255,147,253,194,207,100,191,247,129,236,227,223,155,159, 56, +170,253, 51, 80,105, 0, 17,248, 58, 72, 33, 77, 49,136,233, 35, 15,253,197, 55,207,127,171,147, 71,250, 53,225, 30,121,228,145, + 77,202,123,214, 47, 60,225,146,121, 5,124,169,223, 85,212,244, 38, 61,125,235,247,160,221,110,111,166, 70,247,239,223,127,229, +236,193,151,206,239,248, 18,105,243,149,228,254, 92,151,183,157,157,157,189,127, 3,155,247,200,127,166,112,149,175, 82,253, 6, +155, 93,113,221,167, 85, 40, 80,224,111, 19,158,177,126,230, 92, 43,253,224,111,158,189,198,163,124,252,203,107, 63,191,183,250, +193, 55,108, 27,117, 51,172,135, 16, 17, 16, 2, 40, 4, 1, 6, 1,168,232,218, 87,237,242, 73, 0, 5, 0, 36, 3, 38,132, 74, +245, 18, 61, 15,144, 57,149, 82, 28,133,127,248,181, 11, 63,241,223,191,242,156,174,225, 26, 87,109, 61,124,248,240,179,114,193, +137, 19, 39, 14, 31, 62,236, 25,214,211,229,137, 19, 39,252,164, 49,151,186, 61,251,247,239,247,148,244,156, 20,235, 85,112,236, +216,177,205,137,124,253,202,212,155,235,154,250,181,170,155,205,230,220,220, 92,187,221,190, 82,161,191, 40,109,246,173,186,244, + 55, 87,153,190,120,115,168,113, 45,197,169,126, 98,184,185,185,185, 19, 39, 78, 92, 54,255,204,165,115, 44,251,160, 82, 84, 70, + 22, 40,240,124,248,253,185, 49, 44,192,143,124,242,220,150,122,240,254,187,166,146, 78, 6,181, 0, 99, 30, 87,196, 3, 0, 18, +132, 49, 62,211,158,162,144, 58,233,102,165,237, 91, 79,158, 89,121,223, 79,253, 81,118,253, 22,111,218, 36,130,171,175, 20,122, + 25,213, 2,192,253,247,223,239, 69,226,101,243, 80,190, 64,104,183,219, 7, 15, 30,124,248,225,135,125,170,192,107,219, 43, 55, +120,166,153,212, 94,148, 54, 95, 38,171,159,117,155,231,180, 82,182, 31,126, 93,253, 54, 93,175,224, 90,160,192,223, 45,127,230, +121, 32,119,250, 79, 63,122,250,167,255,104, 49, 14, 41,232,230,210,201, 33, 17,176, 0, 10, 8,120, 57, 0, 17, 16, 28, 64, 38, +218,181,216, 78, 75,205,137,223,252,218,202, 91,126,244,211,235,131,236,122, 53,233,196,137, 19,199,142, 29, 59,120,240,224, 61, +247,220,243,156,170, 44,142, 29, 59,118,207, 61,247, 92,125, 73,188,227,199,143, 95,223,143,239,253, 12,189,207, 52,219,240,179, + 94,194,139,210,230,235, 14,111,226, 95,253, 74,253,178,233,215, 50, 26, 43, 80,224,239, 56,240,186, 31,241,173,183, 53,126,245, +253,123,119, 55, 35,155,170, 53, 8, 49,163, 33,240,115,144,109,248, 41,224, 64,173, 64,226, 56,151, 32,192,174,131,127,249, 91, +243, 31,251,252,188,168,190,212, 58,104,211,214,216,100,225,118,187,253,156,164,232,115,133,247, 82, 54,167,116,247, 54,197, 75, +188,205, 47, 80,207,251,233,225, 46,101,255, 98, 9,167, 2, 5, 94, 76,126, 7,128,122,204,223,243,154,169,127,247,214, 29,123, + 38, 66, 80, 84, 85, 65,148,141, 83,145, 2,169, 34, 2, 32,172,140,220,207,127,118,233, 87,191,184,178,212,201,138,155, 81,160, + 64,129, 2, 47,117,126,247,136, 2,186,117, 75,252,221,223, 54,249,250,217,218,246,106, 48, 17, 81,200,152, 59,232,228,238,226, +192,126,229,252,224, 55,190,188,246,232,194,168,159,186,226, 54, 20, 40, 80,160,192,203,137,223, 47,133, 97, 52,132, 76, 32, 10, +214,233,101, 31, 73, 21, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, + 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64, +129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 94,210,192, 95,251, 79, 63,139,136, 10, 10, 0,196, 12, 0, 42, 14,156, 34, 17, + 18, 40, 16, 51, 33,249, 73,125,129,144, 56, 96, 85, 69, 96, 4, 61, 51,247,196,142,221,183,133, 70,156, 40, 17, 2,224,120,186, + 3, 68, 36, 12, 16, 68, 65, 65, 1, 8, 9,213,137, 10, 16, 19, 33, 18, 83, 16,176,168,130,128, 56, 0, 68, 17, 5, 64, 80,161, +144, 9, 8, 17, 1,128, 8, 0, 64, 65, 85,149, 0,137,200, 47,229, 65,196,164, 0,140,170,126,238, 50, 4,192, 63,254,227, 63, + 68,228, 59,110,191,157,131, 32,207,242,213,165,149, 71, 30,253,250, 91,247,223,247,138,217,157,189,110,207,230, 73, 20,242,176, +211, 10,234,211,146,182, 79,125,227,113, 83, 42,205, 76, 54, 75,149, 74, 20,213, 76, 16, 0,177,225, 0, 16, 17, 65, 69, 20, 80, +213, 17, 32, 16, 17, 50, 17,249,150,136,106,200, 70, 17, 1, 9,145, 16,192, 57,135, 8,132,172,170,128, 10,138, 64, 8,170,227, + 93,209,128,138,170, 32, 32, 16, 1,168, 10,154,128, 1, 65, 69,129, 16, 1,197, 58,100, 32,242,157, 47,227,213,175, 20, 1,148, +153, 0, 64, 68, 1, 65, 68, 12, 27, 17,241, 55, 67, 68, 16, 20, 56, 64, 0, 16, 17, 16,102, 3,128, 72,136,196,190, 91, 69,133, +201,119, 38,178, 9,178,100,216, 91, 62,195, 1, 2, 32, 34, 35, 2, 41, 8, 0,179, 65, 4, 68, 84,113, 20, 84,103,118,223,201, +153, 77, 71,157,184, 84, 62,127,254,169,143,254,198,111,221,126,211, 45,255,232, 61,111,183, 20, 0,200,185, 39, 30,255,210, 87, +190, 30, 69, 49, 51,155,176, 92,153,217,158,165, 25, 56,235, 40, 88, 56,253,167,147,245,106,127, 48, 58,249,245,111,158, 91, 90, + 94, 94,105,125,231,189,111,189,113,215,246, 44, 3,201, 71,128, 65,181,222,116,105, 47, 27, 14, 70,253,118, 62,232, 13,250, 93, + 50, 1, 33,213,227,176, 62, 57, 83,106,110,205,179, 97,169, 62,185,117,231,238,184, 62,211,235,246,178,164,189,248,248, 35,147, + 55,220, 82,111,110,201,211, 81,142, 1, 42,113, 96,108, 50, 4, 2,198, 64,156,123,234,236, 19, 54,205,235, 19,205, 60,233,238, +188,249,149,103, 31,253,115,142,167, 9,176,212,104,100,163, 78, 92,155, 82, 7,105,178, 94,170, 76,219, 60, 27, 13, 86, 84, 41, +207,242, 56, 10, 43,213,134, 42, 36,233,168,191,190, 58,189,101,199,212,150, 27, 91,139, 79,214,167,182,128, 41,247, 59,237, 97, +119, 49, 8,171, 38,174, 72,214,103,138, 52, 44, 25,162,128,176, 92,171,138, 98, 80, 42,167,105,154,245,123,105,127,173, 62,181, + 83,144,122,107, 23, 37, 89,189,241,206,123,151,151,230,215,151, 23,226,250, 36, 37,235,253,238,122, 20,150,219, 43,103, 51, 8, + 92,150,199, 1, 89,103, 47,182,214, 74, 97, 92, 42, 87, 75,113, 84, 42, 87, 37, 29,118,251,157,229,213,229, 90,125,154, 77, 88, +171, 55, 75, 81, 9, 8, 91,171, 23, 70,195, 81,169, 82, 37, 10,211, 81,223, 58,155,166,105,173, 20,246, 7, 73,154,167,132, 80, +137,203,173, 78,123,190,213,189,101,231, 13,185,211, 48, 14, 80,236,160,183, 94,105,108,137,163,184, 18, 5, 97, 64,231, 46,156, +153,158,217,179,103,239,206,187,239,186,145, 56, 84,231,128, 0, 65, 85, 68,129, 17, 25, 85,129, 72, 84, 81, 1, 8, 21, 16, 0, +196, 9,160,127,213, 16, 20, 84,133,152, 68,198,239, 34, 48,177, 56,107,237,210,202, 74,183, 55,152,221,189,171, 86,141, 71,105, +134,200, 34, 0,168,254,229, 21, 43, 0, 66,102, 99,133, 9, 79, 49, 8,168, 42,128, 42,142, 0, 20,157, 8,182, 59,163, 97,202, +149,198, 68,100,176,219, 94, 95, 90, 90, 88, 88, 90, 88,106,181, 91,157,206,210,234, 90,175, 63,108, 54,106,111,187,119,223, 91, + 95,115, 39, 3, 38, 22, 98, 34,206,243,245,229,149,211,243, 11, 75,235,189, 97,150, 85,226,232,214, 87,220,186,180,116, 49, 8, + 77,125, 98,226,179,127,246,149,225,250,122, 16,176,128,160,106, 41, 42, 49, 83, 64,236,223, 14, 98, 66,164,241,178, 64,136,153, +205, 73, 33, 10, 66,244,196,194,100,136, 50, 85, 98, 69, 7,169,181,224, 68, 17, 17,193,138,250, 21,138,156,170, 1, 0, 32, 1, + 5, 39,192, 8,170, 0, 72,136, 78,197, 40, 90,223,153, 42,130,224, 15, 11, 10,162,162,138,136,170, 10,170,160, 42,160,106, 85, +213,119,183, 40, 17,170,170, 83,145, 60, 87, 28,243, 36, 17, 89, 85, 84, 84,155,131,225,128, 13, 33,137,191, 87, 10,162, 0, 0, +170,234, 84, 13, 32, 16, 32, 5,170,150,144, 80, 53,181,150,223,247,206,251, 0, 0,136,136, 8,128, 84,101,124, 39,252,196,237, +128, 72,196,200, 68, 68,136,136, 36,162,136, 4, 32, 65, 20,187, 44, 31,229,174, 18,135,136, 8,160, 72,228,159, 8, 66, 4,103, +253,109,222,156,241, 23, 61,243,248, 69, 86, 9,124,204, 80, 5, 80,117,170,132, 12,160, 0,168, 34,200,138,254, 81, 0, 20, 21, + 2, 64, 0, 1, 85, 81, 64, 36,100, 98, 32, 30, 31, 93, 65, 84,149,144,171,149,232,137, 39, 79, 69, 81, 28, 71,113,169, 92, 99, + 86,205,221, 99, 79,204,221, 52,123, 83, 41, 10,179, 44, 87,117,198, 4,189,246,218,214,157,123,187,157,214, 43, 95,253,218,116, +212,182, 86,226,184,132, 48,110, 63, 19,161,162,162, 2, 34, 1, 9, 40, 51, 35,145,168, 16,177,170, 0,168,147, 28, 0, 16, 61, +227, 3,109,206,105,239,251, 12, 55, 46,118,131, 88,193, 7, 13, 66, 85, 5, 68, 31, 47, 1, 17,145, 64, 55, 58,200, 47,133, 66, +128, 68, 32,160,128,160, 74,100, 68, 28,136, 2,145, 63,220,198, 74, 85,168, 10, 2, 72, 68,104,124, 44, 65, 68, 26,119, 25, 34, +168,128, 2, 33,108, 68, 68,255,156, 64, 50, 26,217,108,157,145, 13,177, 95, 97, 11, 8, 8, 9,137, 1, 84, 85, 65,121,122,247, +157, 81, 24, 38,221,245, 40, 10,207,156, 57,245,235, 31,251,237, 93, 91,183,191,247, 31,190, 27,152, 84,164,181,188,252,231,143, + 60, 66, 28, 16,170,137,171,113,117,194,162, 81,155, 16, 7,253, 94,203, 37,173, 90,173,210,234,116,206,206, 47,173,247, 6, 86, +244,238, 87,221, 19,154,192, 57,196,160,100,216,128,138, 36,253,124,212,149,100, 96,243, 52,205, 70,164, 84,138,194,184, 84,226, + 40,140,202, 77, 19, 87,131,184,188,101,251, 30, 1,114,249, 8,197,153,210, 68,154, 75,169, 54, 81,153,152,177,121, 38, 2,214, + 14, 93, 58,234,247,122, 28,132,163,193, 96,148,164, 54,235,149,171,141, 81,123, 65, 52, 76, 83,225, 48, 76,211,174,179,185, 29, +117,131,168,130, 38, 72,134,189,106,185, 62,234,175, 85, 39,111, 8,131,168,209,168,247,147, 97, 58,236,130,104,169, 20,113, 80, + 17,117,149,106,189,213, 90,234,182,214, 56,136, 20,205,168,187,170,192, 2,129, 77,147,184, 62,157, 14, 90,206, 57,201, 19, 73, + 7, 65, 92,149, 60, 5,103,173,205, 41, 44, 5, 97, 20,150, 75, 0,184,182, 54, 63, 49,181, 51, 46, 87,134,189,181, 82,101,130, +216,164,131,158, 2,169, 16, 51,165, 89,110, 76, 16,132, 37, 1,100, 14, 74,149,186, 81, 71, 28,168,138, 49, 81, 80,106, 32,134, + 6,181,223,111, 35,234,176,191,110,130,160, 55, 24, 84,170, 13,155,166,195, 97, 15,213, 41,106,218,107,213,170, 85,231, 92, 57, +142, 50, 7, 97, 16,154,192,156,185,120,177, 81, 46,151,194,176, 63, 24,176, 9, 41, 8,243, 44, 47,151, 74,185,179,204,145,178, +185,184,220, 22,167,211,205, 32, 42,197,226, 28, 0,224,198, 19, 53,214, 25,254,209, 85, 20, 0, 5, 69, 66,245,143, 19, 17,160, +248, 7,218,115, 99, 16, 24,201,178,133,149,181,165,149,149,114,165,182,103,215,142, 48, 52,137,181,168,136,104,112, 44, 19, 16, + 0,148,188,222, 67,242,175, 4, 33,232,248, 13, 65, 85, 54,104,157,116,250, 89,187,151,115,216,152,156,108,228, 73,178,180, 56, +127,230,236,217,243, 11,243,243, 43,203, 11,171,171, 23, 22,151,197,201,235,191,253, 85,239,127,231,155, 94,115,199, 77,121,238, + 64, 48, 86, 29,173,183,230,230,206, 62,121, 97,241, 66,187,147,165,233, 77,123,118,236,220,179,253,212,249,165,246,218,170,137, +227, 47,127,237, 27,118, 56,156,168,149, 9,137, 80, 17, 41, 10,130,128, 13, 51,177, 33, 38, 50, 72, 10,162, 10, 68, 8, 8,108, +152,144,152,199,175,108, 16, 4,128, 10,170,206, 58, 81,101, 64, 68,100, 36, 11,234,223,108, 43, 46,100, 6, 5, 64, 34, 34, 32, + 96, 68, 5, 4, 66, 66, 84, 65,167,162,158, 8,136, 16, 81, 0, 16, 20, 17,212, 33, 49, 58,209,192,235, 60, 31, 44, 1,157,138, +136,128,122,137, 12, 10,170,136, 42, 96,216, 43, 72, 97, 50, 72, 8, 28, 48, 97,192, 6,137, 8, 16,145,156,232, 38,185,123, 70, + 17, 4, 20, 5, 0, 70,200, 69,197, 57,126,223,187,254, 39,212,113,200, 5, 80, 68, 64,175, 64, 17,152,145,136,144,144,153, 24, +128,189,192, 84,117, 42,128,164,162,113, 20,174,175,175, 55,106, 53,245,234, 85, 21, 68, 0,199,203,240,161,103,116, 4, 68,127, + 91,217,207,102, 70, 64,204, 4,136,160,160,128,170,128, 62,100,160,162, 1, 66, 98, 34, 5, 29,255,217,247, 15, 2, 35,161,215, +209,232,167, 23, 70, 85,113,155, 15,140, 72,173,222, 28, 14,215,207,158,159,159,153,158, 12,194, 40, 12,227,128,105,121,117,105, +165,221,190,101,118,150, 77,152,102,137, 97, 21,235,150, 47,206,183,214, 86,227, 82,165, 86,175,181,150,150,194, 40, 10,163, 24, + 20,208,160,205,114, 32, 70, 68, 80, 96, 66, 36, 82, 21, 81, 69, 0,242,193, 14, 17, 0, 85,213, 57, 71, 72,134,140,234, 95, 91, +193,196,175, 92,130,138, 0, 56, 30,189,160,128,167, 99, 54, 60,238, 17, 66, 0, 98, 3,226, 16, 4, 1, 16,198,225,205,223, 5, +242,157, 35, 78,156, 83, 66,102, 6,244,239, 36,136,117,234, 28,248, 67, 40,128,128, 63,170,170,250, 72, 2,170,136, 24, 4,129, +138, 40, 0, 17, 34,168,130, 34, 81, 50,236, 99, 62, 98,230,113,115,137, 16, 9,136,252, 46,106,221,150,155,239,174, 77,111, 77, +187,157,184, 84,106, 47, 47,252,234,127,251,127,166, 39,183,124,255, 63,254,158,168, 90,177,105,154,141,250, 95,251,234, 87,251, + 35, 65, 73,140,137,195,198, 54,113, 78,236,208, 4, 33, 71,141,108,212, 69, 55, 48, 97,184,178,210, 89,110,181, 58,189, 1, 51, +237,221,121, 3, 33,170, 83,151,245, 13, 89,100,182,195,110, 54,234, 57,235, 68, 1,208, 88,200, 9,164, 82,169, 84, 38,102, 40, +142, 37, 79,103,118,236,169,212, 39, 70,163, 65,150, 12,109,110, 43,149, 74,158,229, 46,205,179, 65, 91,213,165,105, 58, 28, 12, +109,150,138,112,181,214, 92, 95, 95, 25,101,121, 41, 10, 89, 53,174,214, 21,201, 58,167,249, 96,106,235,174,184,212, 40,215,182, + 84, 27,117,176,214, 2, 77, 52,106,224,146,110,167, 29,134, 37,151,117,178, 36,113,162,245,230, 13,154,117,234,141,153,250,228, +214,114,101,178,215,237,244, 58,173, 82,181,234,210, 30,135, 37,230, 48, 46,149, 64, 44,184,212, 10,113, 16, 77,109,221,102,109, +194, 38, 6,213,220,102,121, 50,140,203,141,124,212,203,179,145,130, 10, 26,114, 25,169,205, 83, 91,111, 78,170,115,134, 96,216, +239, 68,113,196,128, 10,129, 2,132, 6,195, 48,136,162, 50, 32,244, 59,171, 89, 50, 98,142,242,108,148,140,146, 36, 79, 66, 38, + 80, 65, 19,137,203, 42,213,102,183,211, 14,131,208,230,163,208, 68,195,225, 42, 19, 87,234, 91,157, 56, 0,104, 78,204, 12, 58, +171,195, 36,153,158,168, 59,224,167,150,230, 43, 97, 80,138, 75, 66,134,208,168,230, 44,163,114, 84,142, 75, 85,112,110,152,246, +215, 91,221,126, 47,159,222, 58, 83, 45, 71,206,137, 87,216,160,168, 99,110, 34, 0,135,196,176,241,246,146, 87, 88,170,170,138, + 4, 32, 66,204,113, 20,175,119,218,143,157,122,178, 92,174,222,120,195,182,122,173,230,156, 19, 81, 38,220,144, 32, 94, 23,145, + 31,176,250, 87,193,203, 23, 79, 29, 8,192,170,204,212, 29,142,150, 91, 35, 52,213,102,115, 75, 28, 6,107,203, 75,231,206, 62, +117,238,194,133,249,149,165,133,149,181,243, 23,151, 47,182,218,187,183,111,255,193, 3,239,124,243,190, 87,150, 74,129,115, 88, +162,208,246,251,231,207,158, 63,125,126,241,252,234,234,210,122,103,215, 84,179,210,168,174,180,187,103,231, 23, 83, 7, 23,230, + 23, 58,173,142, 1,136,195,208, 4, 33, 32,196, 65, 96, 56,100, 38, 66, 12, 67, 19, 48, 41,128, 19, 21, 81, 66, 54, 68,162,202, + 64,228, 25, 80, 20,145, 25, 48,119, 78, 65, 81, 1, 9, 68, 84, 65, 17,209,137, 42, 40, 35, 6, 76,138, 72,136, 28, 50, 18,140, + 5, 58,128, 1,204,124,199,142,165, 60, 24, 67,168, 32, 72,128,104, 16, 77,200,170,200, 32, 2,154,139, 3, 81, 1,112, 42, 34, +206, 83,171, 31,241, 19, 49, 17, 25, 98, 50, 20,112, 96, 69,141, 97, 67,100,152, 13,179, 42, 16, 42, 18,139, 8,129, 0, 49, 18, + 18,146, 10,228,206, 50,141, 3,182,170, 24, 54,204,204,239,123,199,219, 97, 60, 18,131,177,226, 6, 37, 19, 4,198,248,136,198, +134,193, 9,120, 37, 10, 4, 4,226,172,181, 14, 85,136,185,223,235,155,184,204, 8, 0,130,224,159, 27, 68,246,244, 1,140, 36, +170, 0,200,228,131,186, 23,178,140, 4, 27, 93,131, 72, 34, 0, 42, 74, 62, 96, 17, 16, 26, 68,149,141, 1,161, 23, 15, 0,180, + 33, 7, 20, 17,101, 99,180,227, 7, 1, 68,192,200, 91,183,109,123,242,137,199,243,204,150, 75,113, 92, 46, 9, 96,100,130, 71, + 31,123, 98,203,246,173, 19,213,146,181,226,108, 90, 42,149, 69,225,214, 59,247, 45,159, 63, 85,159,190, 65, 37, 3, 64, 14, 2, + 31,184,136,141,120, 59, 9, 17, 80, 65,188, 26,182, 72, 6, 25,199, 44,140, 74, 68, 76, 44, 27, 61,182,209,111,227, 39,218,143, +154,254,234, 15, 0, 72,196, 76,168, 64,204,108, 80,196,249,105,241,253,184, 4,199, 99, 69,221, 60,154,202,120, 81, 89,102, 67, +190,211, 12, 35, 0, 56,177,214,137,115, 27,177, 6,137,201, 71, 56,220,240,143,144,136, 0,114,103,137,152, 3,163, 10,158,208, +137, 77,210,235,160,228,136, 6,213, 1, 18,140, 3,230,248,133,172,205,236,153,190, 97,214,165, 35, 86, 73,250,173,143,254, 95, +191,210, 25, 6,141, 90,101,239,238, 27, 3, 68,100, 60,117,250,236,252,194, 60,177, 33,142,130,202,132, 41, 85, 76, 84, 42,215, + 38,156,160,230,233,104,208, 10, 88, 16, 97,109,173,213,234,244, 46,174,181,234,181,230,237,183,239, 19,117, 78, 53, 42,149, 53, + 25,216,100,228,172,213, 52,205,179, 20, 0, 6,163, 62,169, 76,214,155, 81, 41, 14,227, 42, 25, 14, 74,181,169,237,187,243,100, +221, 41, 6, 97, 20, 70, 85,116,169, 40,167,121, 46, 46, 43,149,106,113,173, 97,147,172,183,190,140, 0,234,178,213,165,179, 38, + 44, 87,234,211, 78, 68, 57,204,211,132, 77, 24,215,167,243, 65, 59,205,210, 81, 58, 92, 57,243,141,245,181,243,113, 84,179, 18, +228, 14, 1,145,195, 88, 53, 74, 6, 23,227,114,173, 54, 57,213,235,180,173,115,181,137,105,219, 91,238,244, 90, 86,141,164,131, +204,230,165, 90, 51, 25,116,203,113,212,152,220, 34,206,230,142,103,182,110,109,135,221,156,195, 0, 0, 32, 0, 73, 68, 65, 84, + 76, 52,146, 68,114,155, 57,155,102,105,194, 65, 69, 80, 7,221, 69,226,216, 57, 27, 85, 38,243,100,148, 14,215, 43,181,201, 60, +207, 59,171, 23,114,135, 96, 71, 1, 75,107,109, 9,213,142,146,129,136, 84,106,205,100,208, 3,149, 70,163,153, 99, 48, 28,116, + 13,155, 52, 29,245,250, 45, 22,113,105,127,199,182, 93,136,148,228,163, 60,207, 51,155, 84,171,205,193,104,128, 92, 98, 14, 76, + 16, 34, 82,146,101,129,230,235,157,149, 52,179, 97,104, 34, 70,235,116,173,215,223,218,108, 24,102, 0,137,226, 74,110,109,154, + 14,146,204, 13, 71,125, 43, 46,205,157,117, 48, 24,216,230,100, 57, 14, 3,231, 28,130,215, 25, 8, 2, 72,128,202, 48,142,248, +168,254,213, 27, 51, 52, 42, 40, 41,128,218, 51,103, 46,156,191,184,242,138, 91,111,218, 50, 53,229, 60,245,143,227,129, 31, 2, +226, 37,250,157, 0,189,139, 73, 0,160,214,191,170, 64,164, 78,117,173, 51,234, 12, 97,106,122, 71,173, 90, 73,211,222,133,243, +103,231,230, 78,157, 89, 88, 88,105,183, 47, 44, 46,207,175,172,146,194,254,239,216,247,207,191,235,109,219,166,235,163,204, 6, + 28, 5, 78,151, 23,206, 61,113,234,236,133,139, 43, 43,189,126,104,176, 92,105,128,100,213,137,122,185, 57,245,232,163, 79, 12, + 59,221,106, 96,162, 32, 48, 76,204,108,115, 9, 2,102,102, 68, 98,102, 34,227, 45, 40,113, 42,224,226,208, 56, 21, 43, 98,152, + 17,192, 57, 29,123, 54, 0, 86,196,233,248,229,205,157, 24, 68, 67,228, 64, 12,177, 97, 34,196, 52,119,158,169, 68,196, 58, 33, + 68, 4,117,170, 78, 53, 52,108, 69, 64, 33, 12,195, 49,161, 50, 25, 0, 81,151, 89, 69, 68, 66,112, 0, 78, 21, 68,157,130,147, + 92,192, 33,176, 85, 33, 0,246,236, 8, 24, 48, 5, 97, 96,136, 1,212, 95,144,215,216, 12,168, 48,214,142, 62,112, 50, 27,111, + 18, 8, 64, 96,140,122,233, 41, 26,135,134,131,192, 9,240,123,223,113,223,216, 92, 22, 65,130,141,155,164,134, 25,112, 44, 94, + 9,128,252,240, 74, 21, 8, 65,145, 9,189,178, 71, 80,107, 53,142, 3, 80,245,227, 33, 64,224,192,120, 5,138,222, 46, 71,218, + 20,244,222,121,242, 79, 18, 40, 48, 50,160, 23,181, 72,136,228,159, 54,111, 22,168,122, 67,130,152, 65,197,135,181, 13, 79, 70, +253, 14,222,230, 70, 5, 64,116,206,197,229,122,189, 94,254,198, 55,191, 81, 10,130,114,165, 86,169, 85,153,120,212,239, 45,174, +180,111,153,221,131, 72, 54,203,131, 48,136,194,112,216,105, 47, 46,204, 39,163, 81,158, 39, 8, 96, 8,152, 13,155,144, 77, 64, +128, 68,232, 31,111,221,112,150, 0,209,199, 48,167, 22,145, 84, 81, 68, 54, 28,152,191,162,112,220, 92,236, 27, 55,199,165,127, +165,169, 9, 73, 65, 92, 46,168,136,164, 10, 34, 86,253,181,251,211,121, 59, 30, 54,188, 79,239,174, 40, 32, 19, 3, 8, 56, 21, + 1,113, 34, 54, 23,113,196,134,216,248,213,176,136, 88, 21, 20,156,151,235,158,184,253,176,102,220, 70, 1, 21,151, 12,123, 6, +199,207, 49, 18, 27, 10, 17,141, 42,168,216,184, 62,179,253, 21,119,129, 2,137, 14,150,231, 63,246,177,227,167, 23,123,181, 74, +240,198,183,190,109,235,238,189,221, 78,239,236,169,199,158, 58,115,142, 20, 24,208,148,106, 65, 24, 7, 81, 37, 46,199, 42,249, +176,125,209,196,213, 78,235, 66,185, 18,165,163,100,105,101,109, 97,117,173,211,237,238,216,190,103,251,182,157,233,160, 31,134, +229, 16,193, 89,135,234,210, 65, 43, 75,211,209,176,215, 77,134, 12, 84, 45,149,227, 74,149, 76,152, 91, 75,200,113,185, 86,169, +213,243,204,137,179, 42,214,138,154, 32, 30,246,186,136, 80,105,212, 7, 73, 26,129, 29,117, 86,170,245, 45,128, 98, 51,187,184, +116, 33,233,174,148,171,117, 0, 81, 69, 33,204,135,189,168, 58,193, 65, 28, 6,209,176,215,141,234, 83,229,198,142,116,216,234, +183, 46, 84,106,147,229, 40,242,189,137,170,245,230,118,231, 50, 52,113,169,210,212,100, 61,201,109, 46,106, 45, 12,134,157, 45, +219,111,118,105,191,187,190,108, 93,206,224, 64,105,148,102, 81,104,106,245, 90,150,231,221,245,238,250,197,179,206, 41, 71, 97, + 88,170, 5, 38, 18, 65, 64,206,135, 93, 50, 6, 36, 67,132,184, 54,137, 20,172,175,183,152,184, 20,135,195, 52, 31,244, 59, 78, +185, 90,107,168,104,167,223, 67,100, 54, 36, 54, 3, 98,102, 42,197,241, 96,208,171, 53,102,144,204,182,173,219, 20, 33, 79,179, +204,201,112, 56, 66,144, 70,189, 97, 76, 56, 74, 6, 32, 46, 8,130,254,112, 96, 76, 96,202,141, 82,185, 26,134, 49,161, 76, 78, + 52, 3,198, 51, 75, 75,219, 38,167, 26,149,154,147, 60,179,208,172, 79,148,194,184,189,222,177,249, 8, 68, 85,165,215,237,166, + 9, 77,111,105, 6,129, 81,245, 47, 28,123,181,228,173, 61,245,146, 30, 1,145, 84, 69, 69, 67,195, 8,186,214, 90, 95, 88, 92, +142, 74,165,219,110,190, 41,142,163, 36, 77,199, 82,125, 60,220,100, 29, 15, 92,121, 28, 22, 54,172, 73,239, 37, 2, 41, 19,170, +213,222, 48, 91,235,102, 24, 84,167,183,108, 53, 42, 75,243,103,159,124,226,241,185,179,103,207, 95, 92,153,191,184,124,225,226, +106,111, 56,250,182, 59,110,249,167,255,224, 45,111,125,205,237,136,144, 91,140, 49,200, 58,235,231,159, 58,123,234,220,252, 66, +187, 51,204,242,157, 91, 38,103,103,247, 92, 28, 12,203, 1,141, 20, 31,127,236,113,116,110,178, 86, 54,204, 94,246, 24,166, 48, + 32,102, 70,111, 60, 51,251, 87,204,191, 28,132, 36,130, 68, 68, 8, 4,128,136,134, 9, 16,157, 83, 1, 53,204, 68, 64, 48, 30, + 80, 59,167,214,251,242, 4,162,154,229, 22, 17, 66, 99,156,138,127, 87,189,233,234, 37,178,248, 33, 56, 98,238,156, 33, 34, 38, +231,156, 3, 5,192,192, 24, 39, 98,197,121, 18,244, 1,144,201,243, 40, 8,248,180, 29, 1,104,192, 28, 4, 6, 20, 55, 50,149, + 28, 4, 20, 50, 17,170, 19, 0, 16, 5,197, 77,165,143,232, 0, 8,125, 56, 5,167,160,162,129, 33, 85, 33, 5, 36,230,127,244, +174,119,168,247,103,136,200, 4,155, 41,149,141,241, 62,123, 99,192,223, 46, 5,240,222,207, 6,173, 49, 7,220,239,173, 87,170, + 13, 80,245,140, 14, 10, 99,226,247,214, 47,249, 61, 85,252,144,109, 60,244, 3, 21,128,177, 5, 70,136, 4, 42,136, 27, 25, 24, + 68,244, 97, 47, 87,111, 85,123,189, 12, 62, 59,233,221, 28, 81, 64,244,118,183,110, 12, 3,157,181,147,147,211,237,214,234,242, +234, 90,173, 82, 46, 87,170,204, 20, 24,243,216,227,143, 85, 27,147, 55,238,216,154, 57, 7, 2, 81, 92,177, 89, 62,179,107, 54, +224, 44,119,102,106,122, 50,207,109, 16,132,132, 62, 70, 10,241,216,178, 66, 4, 34, 70,246,193, 10, 64,201, 41, 24, 68, 25,143, +120,132, 48, 32, 98, 80,241,254,137,239, 52,192,205,120,201, 62,206,249,102,142,169,159,128,188, 85,165, 58,142, 89, 10,200,132, + 0,226, 28,168, 2, 1,121,107,104,156, 45, 69, 0, 32, 38,102, 68, 0, 17,113,226,136, 24, 84,153, 13, 25,218, 48, 6,145,144, +125,148,245,105, 15, 68, 32, 68,239,243, 33, 34, 18,247,219,171,225,198,168,140, 40, 64, 38, 4,117,154,113, 84,219,118,203,171, +131, 48,178,105,230,214,150, 63,241,241,143,159, 94,234,139,164,111,126,227, 27, 95,255,166, 55,148,235,213,198,244,214,139, 75, +173,115,231,207, 90,129,106,115,154,163, 82, 84,169, 85,170,117, 4,155,142, 44,133,161,181,210,107,159,175,196,241,112,152, 44, +174,172, 46,174,182, 70,163,116,215,142, 27, 38,235, 21, 70, 52,140,234,114,176, 35,181, 46, 29, 14, 20,100,100,109, 16,196, 17, +101,108, 98, 54, 97, 20,132,104, 2, 11,184,235,230, 59, 65,243,206,234, 98, 80,174, 26,194,225,160, 99, 5,109, 54, 90, 91,248, +134, 40, 75,150,166,195, 97,111,125,129, 76, 56, 88,111,165,121, 54, 74,134, 72,152, 13,215,171, 91,118,187, 44, 69, 17, 99, 2, +210, 44,239, 47,133, 81,153, 3,195,204, 0, 24, 87,234, 89,210, 35, 50,189,238, 50, 82, 4, 8,121,210, 17, 53, 4, 82, 41,149, +243,108,148, 12,211, 44,207, 93, 62, 10,163,210,196,196,180, 9,226,209,168,175, 88, 14,194,106, 50,236,165,217, 40,138, 99,230, +192,144,102,253,245, 81,103, 69, 57,230, 48,172, 53,102, 80,173,203, 50, 69,142, 74,213,128,169, 90,155,112,214,149, 43,205,133, +167,254, 98,148, 90,235,136, 56, 8, 48, 15,163,138,136, 41,197,209, 68,173, 82, 41,151,147, 65,183, 62, 49, 57, 92, 95, 67, 98, + 39,106,179, 52,183,153, 9,202,229, 82, 57,177,121, 72, 48, 53, 61,221,106,173, 24,142, 65, 93,146,165, 54,203, 84,115, 68, 10, +194, 88, 92, 30, 6, 65,150,165,113, 24, 6,198, 48,106, 24,132, 83,141,250,182,169,201,213,110,114,126,249,226,100,204, 32,106, + 85,135,131, 30,100,189,173, 83,211,232,243,120, 28,177, 9, 49,136,114, 87,174, 86, 98, 99,198,111,178,110, 26, 40,227,247,147, +198, 73, 40,226, 40, 14, 7,253,193,169,185,115, 74,188,107,215,141,147,205, 9, 17,235,114, 7,160, 27,254,224,216,132,245, 98, + 98,156,101, 28,219,194,226, 77, 25,131, 38, 8, 76,146,229, 23,219,195, 84,131,122,115,178, 26,151, 6,157,181,167,158, 58,245, +196,169,185,133,165,139,139,173,181,133,229,181,139,107,237,102,163,254, 63,191,243,245,239,121,203,190, 70,181,146, 58, 12, 32, +160,204, 46,205, 95, 56,117,230,236,185,229,181,214,160, 95,171, 84, 69, 92,185, 86, 90,233,245,207, 47,172,174, 44,175,182, 86, +214, 2,128, 74, 28, 25, 34, 64, 96, 98,226,141, 60, 31, 18, 19,179, 23,107,234,243, 3, 62,235,228, 95,152,141,215, 6, 1, 0, +172,170, 55,153,144, 8,144, 17, 8, 64,145, 24, 81,153,144,137, 5, 4, 20,162, 40, 0,192, 92, 28, 51, 33,146,119,108, 4,192, +187,231,138,184,145, 35,220, 40, 6,217,176, 41,116, 60,224,166,141, 88,224,101,234, 56,123,103,144,198,255, 37,242, 14, 7,143, +115,116,158, 31, 52,117,146,139, 50,161, 32, 26, 66,227,229, 49, 34, 0,133, 99,234, 0, 98, 10, 9,137,216,137, 6, 65,200,196, +162,150,223,251,142,183,143,125, 50, 4,220, 48,206, 65,198,170,148, 55, 92,229,177, 57,226, 51,162,155,166, 4, 42, 34, 15, 7, + 61, 54,113,104, 0, 1, 68, 20, 69,124,171, 5, 4, 54, 92, 94,208, 49, 83,163, 2, 33, 91,117,228, 19,249,164,170, 2, 4, 98, +197, 87,134, 16, 17,141,203, 80, 16, 60,243,171,194,152, 98, 69,193,249,203, 86, 4, 2, 26, 27,220,227,102,131, 19, 33,196,137, +137,198, 19,167, 79,161, 72,169, 82, 46,151,171, 76,152, 13, 71, 95,125,236,177, 87,222,118,107, 28, 71,105, 50, 10,194, 32, 10, + 3,103,211,106,163, 1,214,166,201,160,223, 27,148, 75, 21,175, 54,140, 49,162, 0,170, 76,140, 72,161, 9, 68,156, 56,241, 73, + 41, 20, 21, 34, 0,144,113, 66, 66, 1,193,223, 16,177, 66, 76,190,215, 21,198,105, 21, 34,162,192,120,175,105, 51,245,170, 0, +136,204, 76, 50, 30,201, 16,128,138,138,175,101,241,105, 47,241, 67, 92, 39, 62,241,139, 8,227, 82, 33, 34, 95,238, 98,130,192, +191, 98,226,159, 34, 34,255,110,138,147,205, 78,247,133, 73, 68,172, 0, 78, 32, 31,245,194,136, 1,124,130, 6,144,200,103,211, +182,222,116,119,185, 57, 9, 78,121,208, 61,241,251,191,249,165,111,158, 31,141,122,187,183,207,188,251, 29,239, 82, 21,113,182, +189,178,182,190,222,109,181, 90,253, 4, 71,195, 94,169, 82,155,152,154, 98,195,171,243,231,195, 74, 13,208,228,217, 48, 29,172, +150,163,184,221,107, 47,175,182,151,219,107,105, 46,175,188,245,206,201,122, 29,216, 16,128, 56,103,140,201,134, 61, 39,214, 58, + 59, 24,142,226, 32, 36, 67,128, 32, 78,234, 19,147,200, 84,159,218,182,231,182,187, 71,217, 72,213,152, 40, 90,159, 63,213,239, +172,148,203, 19, 6, 50, 75,241,212,204,158,193,250,121,144, 60,119,138, 20, 50,201, 83, 79, 61, 90, 46, 55, 57,136, 59,107,139, +245,122, 3,145,109,154, 40,134, 89,158,244, 86,207, 83,121, 26,212,181, 46,206,169,106, 24,149,227,250, 84,185, 82,203, 83,171, +224, 68,209, 57, 33,198, 52, 25,170, 27,218,204, 82, 80,234,117, 91,204,198, 89, 48, 65, 60,236, 46, 83, 80,206, 70,189,238,250, + 50, 32,131, 9,202,229,114, 58,236,215, 38,166,152,163, 81,210, 47,215,183,132, 97, 57, 10, 40, 27,118, 22,231,159,234,247, 59, +131,126,127,189,211,238, 15,186,173,245,214, 90,123,117,109,117,117,117,125,173,223,107,239,217,123, 83,167,219, 94,239,180, 29, + 25,118,233,206, 93, 55,132, 38, 72,178, 52, 10, 34, 5,169,213,103,234,181,106,183, 61,223,104,238,184,253,214, 91,115,197, 86, +167, 19,134,229,192, 48,146,233,172,175,245,187,107,166,220, 8, 56, 32,208,220, 89, 85,137,152, 12, 7,131,126,143, 66, 3,128, + 73,150,161,205,183, 76, 78,139,234, 68,173,218,234, 14, 46,172,172, 6,154, 76,212, 27, 1,135,163,209, 48,142, 99, 67, 88,174, +212,146,209, 16, 9, 37, 79,147,100,100,169, 50, 81, 11, 66, 67, 99, 5,129,227, 97,191, 31,119,170, 2, 6,204, 68, 43,203, 11, +115,103, 23,118,239,218,185,109,219, 12, 33,230,121,166,168,227,119,115,108, 70, 42,160, 79,164,162, 42,160, 23, 12, 62,121,230, +147,109, 4,136,176,188,218, 89,237,228,229,218,228, 68,125, 66,108,186,178,120,225,201,211,115,167,206,156, 91, 88, 89,185,184, +214, 90, 92, 94, 27, 37,217,189,223,126,199,191,252,158,119,220,186,119,123,150, 41, 83, 92,162, 96,125,249,226,169, 83,167,207, +158, 95, 90,234,116, 6, 73, 26, 71,225,174, 29, 51, 22, 41, 85, 60,245,212, 57,155,164, 33, 97, 41, 52,177, 9,140, 33,255,170, +177, 33, 34,244,165, 7, 94,149,203,248,165,241, 47, 29, 25, 4,241, 41, 99, 21, 99,140,170, 58,245,217, 44, 36, 34,235,116, 60, + 8,119, 34, 78, 75, 33,123, 27,202,140,223, 92, 35, 78, 0, 32, 10, 67, 4, 82, 85, 98, 6, 29,235, 95,148,241,171,109,136, 16, + 73, 85,125, 73,132,117,170,162,232, 85, 34,128,241,246,213,216,216,240,132,143,155, 25,111, 20, 12,140,241,233, 73,102, 12, 3, +178, 0, 78,148, 17,152, 88, 1,152,137, 17, 51, 25,215,196, 24,194, 92, 84, 0,141, 79, 16, 3, 34, 97, 41,142, 17,129, 24, 1, +217, 40,168, 90, 65, 70,100,159, 35, 5,175,139, 65, 21, 5,212, 39,161, 85, 84, 20,152,156,117,160, 10,134,137,216, 87, 58, 25, + 67,149, 74,185,213,238,236,216, 58, 1,226, 72, 17, 13,171,168, 83, 65,102,242,162, 21,137,152,196, 87, 23, 2,138, 82, 96,200, +115, 50, 1,138,168, 56, 81, 7,160, 0, 10,194, 10,228,189, 17, 31, 3, 29,160, 2, 56, 7,136,226,252,120, 5,212, 87,149,120, +123,126, 99,104,137,128, 42,185,205, 39,167,102,110,222,125,227, 19,167,206,148, 75,149,114,181, 82,170,148,119,239,218,181,176, +188,252,135, 95,248,226,187,246,191,137, 48, 76,147, 52,142,204,160,215,229,104,155,106, 54,191,212,218,115,227,206, 81,191,109, +194, 40,144, 88, 5, 56, 96, 36, 70, 36, 14, 2,155, 39,128,100,140,209, 13,179, 8, 73, 85, 24, 64, 0,192, 1, 24, 0, 4,114, + 86, 16,209, 90,139,160,136,198, 71, 47, 64, 16,177,224, 54, 66,248, 88,233,176,170, 3,117,146, 43, 50, 1,128,162,218,220, 49, +161, 50, 18,144,138, 32, 19,121, 89,197,168,170, 2,162,130,204,134,124,218, 85, 33, 12, 98, 0,116,206, 34,192,120,144,135, 64, +108, 84,156, 47,114, 21,245,202,138,140, 33,167,121,104,226, 36, 77,136,116,156, 47,242,226, 69, 85, 68,166,246,190,170, 54,179, +197, 37, 35, 6,250,147, 79,127,242, 51, 95,252, 26,154, 74, 37,192,119,191,237,109, 28, 16, 0,164,131, 65,123,113,105,121,117, +213, 58,105, 78,212, 3, 99,250,195, 76,151,151,227, 40, 10,194,208,165, 67, 21,151, 36, 35, 67,104, 85,134,195, 52, 77, 50,151, + 75, 64, 92,173,213,115, 52, 97, 64, 46,233,170,205,114, 17, 16,117, 89,218,233,172,229, 22, 13, 97,150, 43, 19,213, 27,229, 82, + 24,244,115,152,222,177, 55,203, 70,171, 75, 75,185,181, 21, 1, 46,213, 3, 80,102,189,112,230,137,176,188,181,179,122, 65, 52, + 80, 37, 16, 84,107,101,212,179, 78,195, 40, 38,130, 61,179,175, 76,134, 29, 53, 53,177, 57, 42,144, 9,202,205, 61,131,238, 26, +136,204,220,112,123,150, 14,196,229, 4,194, 81, 20, 85,202,104, 56, 79,179,176, 84, 14,163,210,112,216, 83, 83, 53,145,233,183, +151, 4,177, 55, 26,245,123,109, 92, 15,109,238,166, 38, 93,171,189,212, 25, 12,169,221,142,162,120,117,101, 41,119, 58,119,254, + 76, 24, 86,172,205,134,201,233, 44, 29, 5, 65, 96, 51, 43,146,198, 97,200, 36,104,130,233, 45,183,246, 86, 23,195,218, 84,185, +190,173, 74,162,136,203,107,173,133,165,101, 80,176,110, 56,236,181,206,174,174,130, 64, 16,151,179,108, 85,108, 70,176,140, 76, + 40,216, 91,190, 56,191,188,216,235,247, 20, 49, 73,211, 71, 31,255,203,137,137, 9,103, 53,168, 52, 7,131, 65, 38,169, 2, 88, +235,130, 32,156,156,106, 90,151, 3,104,128, 68, 76,150,141, 97, 28, 14,219,130,193,104, 56,184,107,239,141, 23,218,221,133,149, +139,184,178, 72,166,220,172, 87, 76, 96,122,105,146,103, 3, 38, 96,151,151,226, 70,158,167,195, 65,114,118, 65,103,119,196,165, + 82,121, 60, 50, 29,103,112,144,216,136,184,181,213,214,218, 90,171, 86,107,220,253,234, 59,136, 48,205,173,231,160,113,225, 7, + 5,170, 14,145, 4,156, 47,207,213, 13, 91, 81, 21,144, 20, 84,189, 27,217, 31,166,107,157, 52,140,107,211,219, 26,140,174,211, + 90, 58,191,112,225,220,133,133,229,181, 86,171,219, 93,110,119, 6,195,100,231,214,233,247,237,191,247,238,219,103,115,177,195, +158,148,130, 56,237,245,158, 90,152, 63,179,112,113,173, 59,112,226,166,167, 26, 55,223,188,247,244,217, 69, 96, 46, 85,226,211, +103,230,201, 74,189, 20,129, 8, 18, 41,162, 83,165,241, 40,130,137,192, 0, 16,162,211,113, 70,148,137,157, 8, 33,168, 74,174, +132,160,140,232,124, 25, 40,184,136,140, 29,151,178, 64,192,228,172, 16,162, 34, 24, 3, 35,107,197, 10, 51, 91, 39,234,237, 29, + 38, 43, 98,173,245,217, 50, 85, 37, 99,172,179,222,107, 6, 85,102, 82, 69,102, 20,241,166,133, 26,166,220,186, 60,115,202,192, +100,236,184,220, 5,153,145, 17, 28,128, 56, 69, 37, 81,107, 76, 8, 52,166, 50, 38, 64,194,212, 42,168, 16,129,183, 13, 12,162, + 83,205, 84, 2,230,205, 50, 14, 67,132,128, 42,154,137, 26, 34, 2, 80,113,140, 68,134, 93,154, 27, 80, 80, 18, 4, 22,103,125, + 38,194, 41,160,103, 88, 68,167,130,130,196,140, 76,190, 12,214, 23,184,122,141,141, 68, 34, 80,171, 77, 92, 92, 62,157,231,181, +144, 80,212,169,207, 28, 26, 38,149,113, 9, 18, 2,146, 33,103, 61,209, 9,100,224,216, 32, 43,146, 56, 21,231, 64,209,123, 8, +138, 10, 34,162,190,114,156,198,174, 3,130,170,146,250, 33, 4,137,115, 62,230,249, 66,130,113,194, 90, 69, 21, 56, 96, 64, 99, +157,222,249,234,187,207, 95,152, 95, 88, 89,154,218,178,101,122,102,102,106,203,204,205,187,119, 63,246,212,153,179,231,110,221, +185,101,107,127,212, 67,212,122,109, 98,208,105, 35, 81,181, 90,217,186,107,247, 83, 95,127, 36,207,147,220,166,213, 90, 96,130, +128,137, 1,213, 89, 11,104, 16, 65,197,137, 8, 33,138, 2, 43, 35,130,241,163, 51, 34,240, 67, 50, 28,103,160, 9,141, 31, 39, + 58, 95, 45,235, 61, 19,239, 75, 33,170,170,130, 69, 16, 64,163,164,126,112,162,226,179, 29, 64,232, 75, 89,216,103, 61,152, 65, +156,243, 9,115, 28,199, 74, 69,255, 9,130,136,130, 18,147, 79, 18,248,196, 4, 0,176, 65,151,171, 83,161,113, 32, 1,171, 57, + 3, 33,163,117, 74, 27,114, 65, 21,145,212,229,131,233,217,123,106, 51, 59, 92,158,178, 49,127,246, 7,191,253,187,127,242,117, + 19, 79, 72,214,125,239,187,222,177,109,231,174, 52,207, 2,209,214,202,202,252,217, 83, 43,171, 45,224, 82,109,106, 6,178,129, +129, 32, 29, 37,221,245,174,184, 60, 46,213,154,211, 77,237,182, 74,113,100,109, 38,206,101, 54, 77, 93, 94, 42, 85,235,229, 10, + 75, 82,170,110,145,128, 51,238,117, 58, 29, 10,227,220,229, 10,204, 1, 13,147,196,170,196,198, 89,173, 15, 70, 3,199,229, 82, +109, 34,203,134,224, 18, 84, 84,117,206, 57, 19,212,231, 47,156,201,168, 49, 53,177, 5, 70,171,106, 2, 43, 32,106, 21,113,126, +121,129, 77,108,109,154,231, 41, 84,234,195, 84, 34, 22,151,103,131,225,186,100,105,192,108, 69, 68,212,103,115,122,157, 86,226, +242,198,196,204,104, 48,232,118, 86, 21, 89, 1,196, 90, 1, 80,133,100,212, 37, 48,213,198,132,203,179, 94,175, 23,133,129,137, + 42, 75, 11,103,178,209,122,115,219, 45,229,200,220,176,125,103, 54,234,153,184,220, 27, 38,245,106, 61, 10,203,189,206, 90, 92, +170,142,186,139,149,153,189,165,128, 85, 52, 52,148,231,125, 50,113, 9,183,212,154, 91,201,132, 65, 16, 24, 54,233, 96,117,219, +204,119,116, 86, 22, 6,131,182, 76, 54,195, 82,221, 74, 14, 46, 79,135, 61, 32, 50, 65,144,167, 46, 87, 23, 33,143,178,180, 82, +174, 37,233, 96,219,150, 27, 90,181, 70,150,165, 26,106, 24, 69, 1,241, 32, 97, 67,148,185, 94,187,219, 73, 50,231,242,132,162, +184,187,218, 66, 65,231, 50, 50,193,133, 85, 37,164, 44, 79,213, 89, 19,198,140,124,186, 53,216, 53,201, 2, 21,177,105, 92, 42, + 37,253,110, 35,174,138, 75, 71,157,213,230,142,221,195, 81,175,213, 94, 67,217,246,138,155, 74,140,234,198,190, 49, 50,113,127, +208,153, 59,191, 88, 46,197, 55,207,238, 49, 97,148,187,204,229,138, 14,253,248,123,236,212,131,140,125, 6,241, 58, 75,198, 57, + 54,167,222, 67, 36, 34,107,243,139,173, 65, 38,220,152,218, 22, 71, 81,210, 95, 95, 92, 94,124,234,204,217,179, 11,139,237, 94, +175,213,233,118,122,189, 82, 92,126,231, 27, 94,251,206, 55,237,171,150,195, 81,226, 2, 53,145, 38,171,243,231,207,157, 91, 92, + 90,239, 14, 70,137, 32,108,105, 84,102, 95,121,235,133,197,229,199,207, 94, 40, 7,184,182,222,139,201, 84, 75, 33, 42,134, 65, +224,198,222, 0, 16,142, 5, 59, 40, 56,149,141,178, 58, 5, 6, 95,255, 38, 10,226, 36, 12,200, 41,138,117, 34, 68,164, 72,156, +139,168, 42, 51,123,211,213, 48, 17,177,117,121,234,124,165, 10,102,214, 5, 76, 1,147, 83, 80, 85, 38, 22,117, 42,192, 72, 10, + 10, 32,226, 52, 52,236, 68,112,108, 61,131,127,246,136,208, 1,128, 8, 51, 25, 0, 98, 84, 1, 2, 96, 36, 32, 20,159,158,246, + 66,158,129, 48, 96, 4, 69,100, 66, 1, 85, 37,113, 62, 31, 71,138,224, 69,165, 56, 65,194, 72, 89,124,157,147, 2, 51, 90, 39, + 2, 42, 0,145, 65, 5, 18, 21, 98, 54, 68,128,148,169,122, 39, 7, 80, 65,156, 2,169, 19, 1, 4, 52,140, 66,214, 90, 66,212, +208,215, 74, 17, 19,138, 8,140, 77, 9, 95,252,135,170,121, 16,150, 38, 43,165,245,110,111, 75,179,225,131,156, 34,130,128, 16, +160,108,184, 21, 46, 87, 81, 68, 84, 64, 81, 85,181, 10, 64,164, 99,205,192, 8, 2,170,138,130, 52,254,244, 64, 1, 4,137, 65, + 81,172, 35, 38,246,151, 74,164, 54, 21, 37, 7,186, 81,227,130,160,110,236,114, 32, 19,170,179,121,169, 90,187,235,219,238,250, +227, 63,249,194,242,210, 98,181, 86, 15,162,248,134,237, 59, 86, 90,107, 95,254,234,215,182,239,127, 75, 28,151,179,124, 24,215, +106,177,228, 23, 47, 14, 67, 99,150, 22, 22, 43, 19, 19,235,173,118, 24,123, 19,204,224,216,222, 64,207,192,170, 42,121, 38,200, +204, 70,196, 17, 49, 81,232, 63, 43,218,240,179, 16, 0, 12, 27,111, 21,233,216, 95,115,234, 11,131, 2,190, 36,105,140, 8,140, + 8, 34,234,247, 38,102, 36,244, 55, 15, 68,199,229,236,168, 32, 32,190,150,212,215,216,128,142, 75,109, 68,113, 92,180, 48,182, + 63, 85, 85, 69,137,213,151, 69, 48, 7,164, 98,157, 35, 38, 14, 24,133, 16, 89, 37, 71, 96, 36, 22,201,136, 66, 21, 23,213,118, +212,182,236, 68, 4,230,224,212,151,190,240, 59,159,250,255,106,181,173,157,214,185,183,190,238,222, 91,111,125, 69,150,165, 28, + 5,157,149,133,238,106,123,121,117,197, 90,104, 76,149,226,184,100, 9,195,176,108,162,164, 1,178,222,110,159, 63, 63,119,113, + 37,170, 82,178,109,186, 62, 72,135, 73,154, 39,105,110, 51, 91,159, 40,199, 1, 4,165,173,170,132,146, 35, 50,228,105,150,118, + 45, 4,169,115,226, 50, 75, 84,173,148,137, 57,181,118,152,185,153,157, 59, 42,149,242, 96,208, 67, 66, 21,181,121, 42, 38,130, + 60, 3,200,107,245,109,105,154, 14,214, 22,201,148,157, 64,192,156, 13,215, 19, 9, 87, 90, 75,235,221,238, 40,203, 51,155,169, +205, 40, 44, 27, 19,174,183, 22,163,184,142, 6,140,137,145, 41, 57,115,222, 4, 17,163, 68,198,116,187, 29,181, 26,134, 81,185, + 82,115,226,162,106, 9,200, 25, 14, 20,110,112,214,109,223,182,221,102,195, 76, 48, 27,246, 65, 29,153, 64,192, 86,170,211,131, +238,106, 92,138,182,110,217,181,182,114,126,170,222, 84, 67,206, 13,107, 19, 19, 1, 2, 75, 53,144, 60, 25, 14,162,114,205, 84, +170, 49,213, 37,235, 7, 51,187, 7,253, 85,102,142,202,187, 64, 29,112, 41,203,134, 81,173,225, 72, 13, 7, 73,175,213,168, 79, +165,214,154, 32,170, 54,102,192, 37, 75,231, 30,157,154,222,147, 59, 11,163, 65, 20,149,203, 1,198,129,169,150, 75,221,254, 80, + 65, 93,218,199,184, 81,203,157, 77,250, 65,174,219,118,108, 71, 19,217, 44, 85,113, 64, 84, 41,213,109,158, 17, 3,128,201,211, +190,179, 57, 6,165,222, 96, 80, 14,227, 85,130,149, 94,210,152,112,208, 31, 0, 64,158,230, 61, 24, 13,147,164,222,152,110,175, +181,106,147,145,203, 7,167,207,205, 15,134,201,171,110,105,198,149, 10, 10,137,216,179,243, 23,218,189,225,238, 27,119, 77, 55, + 39,178, 44,115, 89,134,136,138,168, 62, 25,132,254,193,219,168,114,240, 41,214,113,246, 94, 64, 21, 81,128, 80,156,180,186,195, +206,208,197,229,137,153, 90,197,142, 70, 75,231,206,205, 47,204,159,159,191,184,212,106,181,187,221, 86,175,151,165,246,206,155, +103,223,251,142,239,188,249,198,109,163,204,166, 73, 94, 22, 28,244, 86,207,159, 95, 56,187,176,214, 29,140,172,186,173, 83,141, +198,150,173, 23,206,158,251,236, 23, 78,150,131, 32,207,178, 52,135,233,114, 89, 84, 16, 9, 9,212,123,153, 34, 56,118, 55,208, +169, 58,231,216,144,115, 18, 18,163, 33,171,194, 42,128, 24, 18,229, 0,110, 92,157, 1,129, 33,231, 68,172, 53,134,189, 74, 52, + 72,128,224, 92,158,185,156, 96, 35, 87,139, 24,109,102,138,201,128, 42,128, 18,250, 79, 48,189, 55, 5,113, 76, 10, 34,153, 50, +128, 34,230, 78,152, 8, 72,179, 60, 67, 50,198,127, 59,164,222,178, 85, 1, 82,151, 19, 27, 5, 13,144, 19,231,194,200,168, 83, +245,197, 60,136, 2, 40,226, 24,124,217,166, 26, 36, 50,152, 89,117, 78,195,144, 69,209, 58,103,173, 35, 0, 38, 18,135, 0, 24, + 24,114, 78,243,220, 5, 1, 48,155,192,248, 50, 80,112, 98,141,138, 67, 36, 81, 71,134, 68, 4,145, 16, 72,172, 48,131, 49, 36, + 42, 2, 32,160,164,226, 54,138, 66,112,252, 25,212, 56,155,154,229, 73,109,114,106,101,101,109, 28,207,189,208,222,240,154, 17, + 81, 9,212,249, 76,186,108,116, 21,170, 47,209, 3,207, 77,130, 48,246, 42,128, 54, 62,246, 25, 39, 97,217,187,211,214, 9,179, + 81,151, 19,178, 83, 63,142,193, 49,217, 33,248, 17,205, 56, 5, 12,154, 12, 71,123,102,111, 57,125,250,244,133,197,165, 70,163, +185,101,199,142,234, 68,109,239,141,187,190,252,245,199,159, 58,191,244,138, 91,246,228,121,146,140,134,113,185,182, 99, 87, 20, + 24, 57,245,248,233, 93,123,247,152, 32, 41, 85,234, 68, 1,128, 32, 69,224,220,248, 35, 47, 68, 38, 35,148, 89,107,137, 25, 20, + 69, 69, 92,230, 83, 57,170,162,190, 40, 17,141,194, 56,167, 36,170, 68,232,172,168, 2, 35,128, 19, 96, 2, 85,223,131, 72,236, +172, 85, 81, 52, 6, 8, 21, 68,133,137, 89, 20, 20,128, 9, 85, 85, 4, 8,193, 16,142,211, 84, 32,224,227, 8,121,151, 19, 67, + 34,231, 3,207,255, 79,213,155,253, 74,214,165,103, 94,239,176,214,218, 83,236,136, 56,113,134,204, 60,249,205, 67,125,245, 85, +149,171,108,183,171, 61,202,237,169,236,114,149,237,178,171, 12,182,154, 73,160,166,251,134,255, 4, 80,171,155, 65, 72, 8, 9, +209,146,133, 68, 35,220, 72, 92,210, 32,104, 48, 32, 89,242, 88,245, 77, 57,103,158, 49, 78,204,177,199,181,222,151,139,181, 35, + 11, 50,165, 84, 94,100, 70,158, 19,185, 99, 13,207,251, 60,191, 7,148,137, 21, 85, 69,137,152, 73,189, 6, 47,113,233, 7, 20, + 84, 85,239,125,232, 58,107, 48,222,231, 84,213, 36,217,233,187, 95, 37, 4, 74,204,139, 79,255,230,159,253, 55,127,162,110,180, +188,123,241,213,143,222,255,185,159,255,217, 46,120, 96,244, 93,104,218,254,102,177,171,193, 38, 9,151,179,135, 64,224,210, 98, +183, 94, 24,195,100, 56, 79,243, 15,190,244,177,181,233,242,213, 95, 3,105,219,132,237,182,170,186, 62,248,112,118,118,127, 58, + 59,111,154,125, 0,169,235,202, 11,144,113,237,186,107,219, 29, 25,139,100,186,206,247, 94, 70, 46,181, 0,187,166,121,119,114, + 4,168,155,249, 85,223,122, 87, 76,172,115,208, 87,189, 49, 73, 90, 74,168,193,140,178,241,189,213,221,173, 73,210, 34, 47,119, + 55, 23,139,229,221,174,237,117, 95,251,118,211, 7, 63, 61,126,216,245,126, 52,153, 30, 1, 88, 3, 89, 62, 65,114,128,222,158, +165,121,146,167,105,102,152, 84,186,229,106,147, 39, 6, 80,136,178,209,228,220, 88, 84,223, 72,144,106, 95,161,111,179,188,196, +182, 41,102, 39, 8,208,213,123,147, 30, 17, 33,205,206,170,218,135,230, 57,187, 4,129,250,174, 77,138, 50,207,143,154,102, 75, + 46, 51, 46, 81, 47, 73, 90,132,182, 49,142, 66,223, 58,151,245,198, 73,232, 52,116,171,187,235, 98,122,146, 22, 71,190,107, 12, + 83, 93,175,211,209, 24, 73,178,209, 36, 47,198, 62, 8,132,108,118,254,177, 53,148, 1,251,242,120,185,184, 42,138,113, 39,125, + 49, 30,239,154, 94,136,243,108,212, 84, 43,144, 22, 56, 17,224, 81, 98,171,190, 13,125,207,214, 54, 77, 5, 96, 64,252,126,183, +152, 28,157,250,224, 67, 8,142,123,223,238,217,218,137,213,206,211, 23, 47, 94,125,244,240, 62, 42, 74, 16, 84,153,142, 71,105, + 49, 42, 39, 51,101,102, 55, 6,128,203,249, 46,207,138,119, 30,146,248,230,114,190, 24,149,147,175,125,249, 13, 67,212,212, 13, +128,196,241,215, 96,116, 68, 5,140,118,222,131, 27, 66, 5, 84, 80, 15,167, 25, 16, 36,106,218,126,185,235,132,178,211,211, 41, +128,236,215,183, 23, 47, 47,158,189,120,113,113, 59, 95,172,215,183,203,245,102, 87,189,255,198,249,183,255,222, 55,127,234,227, +119, 44,187,253,182,117, 72, 88,181, 47,175,174, 94, 93,221,222, 44,183,117,215,191,243,214,131,147,251, 39, 79,158,190, 68,210, +227,123, 39,207,254,246,209, 46,108,167,206,154,193,225, 67,162,241,164, 27, 53,211,232,234,132, 32,130,128,214,112, 28, 4,196, +207,138, 1,138,150,142,160, 26,143, 80, 68,136,214,136, 23,195, 24,212,196, 89, 89, 28, 10,247, 65, 25,137, 1,172,165,198, 7, + 11,106,136,131, 6, 80, 12, 74,128,195, 13, 56, 26,251, 68,212, 32,244,209, 75, 42,154, 25, 91,249,158, 20, 28,155, 56, 85, 82, + 50,136,104,163,193,148,200,135, 48, 88, 10,137,226,118, 34, 42, 28, 71,109,136,206, 26, 81,144, 0,200,234,144,227,103,158,152, + 64,201, 7, 69, 0,107, 89, 68, 69, 4,227,228, 79, 69, 80,153,136,129, 36, 32,168, 26,199, 10, 72,160, 34, 24, 68,218,174,117, +136,252,251,191,245,173, 97,220, 6,168,162, 72,175, 61, 27,136, 8, 76, 3, 57,128,227, 59,166,175,135,126, 8, 58,172,215,204, +128,236,154,253,154, 92,150, 36, 12,196,241, 37, 98, 70, 32,122, 57, 68, 5, 84, 3,196,212, 67,156, 66,176, 68,186,128, 34,129, + 34, 34, 25, 98, 99, 16,135,191, 70, 67,186,211, 67, 52,150, 96,180,114,197,131,132,210,143, 29,245, 49, 43,134,132,164, 97,200, +143, 74, 16, 4, 62,154,142,127,248,233, 39, 68, 48, 30,141,147, 52,203,146,108,191, 93,126,246,248,233,199, 31,127,148, 37,182, +174,107, 66, 80,239,159, 63,125,218,116, 97,113,123,169, 64,121, 90,152, 52,161, 97,240,136, 32, 74,209,199, 2,138,136,108, 76, +100, 57,224,193, 26,140, 0, 8, 6, 34,126, 0,130, 72, 0,160, 56,250,136,130, 13, 27, 27,141, 4, 68, 76,108,162,163, 37, 72, +128,104, 93, 31, 50, 92,131,135, 61,142, 92, 6,187,165,101,130,215,184,135,104, 0,245, 56,196, 78,134,205, 16, 16, 85,149, 7, +159,232, 48,174, 8,162, 28,125, 59,131,171, 85, 1,145,172,173,246,107, 75,136,132,140, 24,188,156,189,251, 19,105, 81,114,238, + 86, 47,159,253,103,255,225,127,212,248,164,217,109, 30,220, 59,254,227, 63,254, 55,157,195,222, 7, 98,187,190,189,221,238,171, +171,235,155,166,247,227,201,145,177,174, 93,223, 74,223, 5,213, 52,207,122, 31,218,221, 38,203, 83,223,110,250,250, 46,205,210, +229,114,253,242,250,122,185, 93,239,247,245,116,148, 55, 77, 91,215, 45,170,162,239, 12, 66, 85,109,171,118, 95,183,149,146,171, +118,123,237,155,162, 40, 70,197, 24, 92,126,122,255,173,119, 62,248, 56,136,174, 23, 55, 38, 25,245, 77,131, 32,171,155,167, 2, +100, 56,247,221, 62,207, 50,241,109,211, 6, 54,110,179,184,122,249,252,211, 94,112, 50, 59, 43, 82,158, 76,142,206, 78,207,207, +238,189,153,229,101, 98,168,200,115,107,243,196,210,241,100, 58, 59, 58, 97,195,134, 57, 75,115, 38, 5, 5, 52, 73, 90, 28, 21, +163,177,229,132,136, 67,183,214,160, 93,187, 67,192,166,173,119,251,182,109, 27,235,220,110,241,188,105,118,163,233, 73,223,110, + 85,130, 37, 90, 46,174,187,118,239,210,162,241, 61,179,171,183,139, 98,116,156,164,101,215, 86,171,155,207, 93, 90,102,121,222, +238, 22,251,205,210, 38, 69,239, 59, 91, 76, 8,185,173, 87,190,175, 37,244,162,228,146,196,166, 37, 32,238, 23,215,192,201,120, +114, 66,100,155,106,125,118,254, 78, 91,175,125,187, 33,162,182,105,125, 8,156, 29,133,190, 78,211, 4,137,179, 98, 90,239,215, + 65, 84,196,231,121,177, 93,223,181, 29, 0, 83, 85, 87,139,229, 93, 80,204, 51,151, 37,174,235, 91,107, 18, 96, 72, 93, 74, 54, +201,211,204,184, 36, 39,220,182,225,106,185, 58, 41, 83, 32, 83,213, 85,219,181,204, 46,201,198, 46, 73,179, 52,223,239,119,251, +237,186,174,214, 47, 47, 46, 81,251,143, 62,124,127, 58, 30,139,130,136, 68,119,111, 20, 15,134, 88,182,198,103,137,200, 25,141, +122,251, 0, 21, 65, 85,181,132,190, 15, 55,155,106,223, 80, 54, 62, 46,139, 81,232,171,235,139, 23,143, 31, 63,254,225, 23,143, +159, 94, 94,221, 44,150, 23,183, 43, 66,252,222,175,255,194,191,245,189, 95,127,251,205, 51,239, 9,123,178, 33,108, 22,183,143, + 31, 61,123,118,113,119,117,183,244,193,255,157,159,254,170, 41,211,207,158,188,184,185, 93,172,119,213,103,143,158,165,168,211, + 44,183, 4, 97,136,104, 3, 68,119, 39,161,115, 22, 0, 33,102,172,226, 16, 14,193, 48,201,193, 21,148, 16, 67,212,226, 85,226, +194, 22, 36,136,130, 49, 20,130, 26, 66, 66, 66,132, 32,234, 37,240, 65,232,140, 30, 17, 66,236, 85, 12, 57,195,212, 41,164,142, +145,204,193, 16,135,200,208,118,194, 68,214,196, 40,169, 18, 34,177, 5, 84, 64,116, 76,113,177, 69, 21, 98,210,129,109, 64,113, + 24, 29, 21, 33, 98, 2, 0,102,102, 84, 32, 66, 38,199, 4,204, 17, 82,130,241,232,168, 64, 8, 76, 16, 84,131,168, 2, 48, 98, + 84,102, 40,154,115,112,216,179, 16,145, 77,100,143, 80,221, 7, 8,125,145, 39,252, 7,223,254, 13, 61,184,119, 32,190, 63, 81, + 33,145,225,128, 44, 65,137,249,240, 82, 8,113,113, 81, 80, 13, 0, 0, 2, 2, 2,170,224,101,189,171, 71,101, 1, 26, 87,174, +168, 91, 8, 18,137,246, 64, 20, 55,177,248,178, 3,133, 33, 42,243, 68, 81,134,102,107, 6, 97, 66,226,219,165,160, 10, 1,128, + 7,235, 33, 8,224,107, 67, 97,156, 88,170, 32, 17,113,188, 24, 69,145, 90, 68, 85, 33,248,208, 79, 38,211,122,183,190,184,188, +201,210,236,248,228,216, 57, 75,170,183,183, 55,155,170,249,240,189,119,189, 15, 93, 87,165, 89, 49,158, 30,127,249, 43, 95,109, +251,246,195, 47,127,109,183,153, 27, 78,226,117,239, 96, 56, 12, 68, 28, 69, 12,137,175,141,135,159, 49, 30, 2,114,112,197, 12, + 70,196, 67,134, 0,152, 8, 48, 62, 88, 68,196,100, 24, 1, 37, 40, 17, 25, 34, 5, 85, 15,198,152, 56,241, 4, 68, 20,137,238, +182,190, 29,161, 0, 0, 32, 0, 73, 68, 65, 84,210,184, 43,134,136,154,137,142,174,225, 55, 48,108, 11,162,196,104, 0,227,163, +131, 68, 76, 8, 64, 94, 36, 98, 9,226, 89, 67, 68, 0,133,200, 16,185,122, 55, 79,153, 0, 21,130, 47,207,222, 62,122,235,125, + 16,237,170,221,127,245, 79,254,233,213,170, 75, 51,155, 37,246,223,249,247,254,225,241,236,168,218,239,200,119,187,229, 98, 87, +215, 47, 94,188,218,108,150, 73, 49,153,156,156,249,190,101,231,128, 93, 8,146, 48, 43, 48, 24, 50,201,168,222,220,181,213, 93, + 98,146,229,102,253,234,250,102,189,217, 6,193,223,248,213,223,235,219,118, 49,191,186,186,122,186,175,118,183,183,175,124, 16, +199,198,247, 34,202,125,187,207,210,180, 44, 10,195,228,202,163, 55,223,253,210,244,236, 65, 83,239,250,182,118,233, 40, 27,143, + 17,144, 92,105, 93,230,251, 30, 84,250,174,221,205, 95,112,146, 45, 87,243,128,238,250,246,210,165,227,212,130, 74,200,243,137, + 49,166,111,183, 94, 2,187,172,223, 92,229, 89,234, 18,227,146,188,235,118,109,189, 27, 77, 79, 65,186,229,226, 82,218,122, 58, + 59, 7,109, 49, 52, 77,179,113,105, 81,237, 54,189, 8,114, 90,213, 53,160, 33,194, 32, 82,237, 86,161,111,102,247,223, 47, 70, +211,253,110,213,215,173,115,217,236,244,205,147,179,243, 94,250,224, 1,217,161, 77,172,181,210, 44, 85,125, 54,154, 37,197, 81, + 91,237,140, 27,155, 52, 77,242,145,203, 70,214,230,117,187, 35,147,155, 36,103, 67, 46, 29, 85,235,185, 37, 76,210, 44, 59, 58, + 31,141,143,251,118,139,108,136,141,223,207,145,204,232,248,156, 93,201,214,248,110, 75, 73, 62, 61,122,144, 36,142,141, 73,178, +204, 37,169, 73,138, 36, 47,154,102,183, 93, 47, 44, 81,154,101,132, 66, 54, 57,157, 30,237,234,250,238,246,154,141,173,234,170, +107,235,206,123, 38,211,183,219,213,122,233, 69, 63,120,227,222,182,237,151,155, 13,133,198, 37,229, 40, 27,185,180, 92,239,107, + 34,241,245, 22, 3, 84,237,254,114,126, 53, 57,122, 99, 84,158, 78, 39,169, 97, 82, 17,124,125, 46, 64, 2, 80,160,168, 18,131, + 4, 69, 38, 9, 18,215, 82,149,128, 0, 0,194,140,219,166,191,217,244, 1,220,209,244,152, 49,236, 86,243,103,207, 31,127,242, +249,163, 31,126,254,248,226,250,230,118,185,220, 87,205,199, 31,188,253,143,254,248, 59,191,252,115,223,240, 34,190,131, 4,201, +239, 54, 47,159, 63,253,228,139,231,215,203,205,106,183,127,120, 58, 61,185,119,246,249,203, 23,159,124,250,248,141,251,103,159, + 62,126,213, 85,213, 89,153, 23,169, 83,208, 32, 26, 68, 85, 5,163,237,131, 32, 6,119,172, 97,112,164, 33, 14,117,129,136,122, + 47, 42, 18,207,209, 65,197, 43,112,244, 46, 0,244,126,208,117, 5, 1, 68,153, 49,250, 62, 16, 49, 49, 6, 9,131, 42, 15,139, + 48, 8, 2, 19, 89,195, 30, 48,179, 22, 5,188,134,120, 8, 19, 0, 5,112,214, 32, 66, 8, 66,128, 48, 28,133, 21, 8, 0, 48, + 72, 24,178, 94,138,204, 28, 79, 89, 17, 84, 67,108,144, 8, 85, 84,145, 9,117, 96,216,160, 42, 9,136,202, 96,196, 16, 37, 4, + 77,172, 17, 80, 17,140,192, 32, 2, 13,170, 28,121, 35, 0, 4,100, 12,139,130,136, 26,195,168, 74,134, 59,213,166,105, 82,103, +153,137,191,255,157,223,164,193, 3, 27,255, 43,113, 56, 82, 14,110, 62, 53,150,162,219, 58, 26,209,117, 72,240, 12, 22, 60,208, +120,188, 14,198,218,219,249,109, 94,148,206,177,198, 23, 84,193,131,129,230,199,145, 7,130,225,172, 13,128, 24,167, 13, 8, 68, +108, 57, 90,252, 76,132,176,196,113, 13,197,220,231,193,131, 79, 28, 65,104,195,227, 6, 26,185, 5,164,140,160,196,150,145, 67, + 52,226, 40,196, 51,242,249,189,251,207,158, 63,109,219,182,200,179,241,120,102,140,181,172,127,253,195, 79, 79,206, 78,238,157, + 28,119,189, 39, 32, 8,253,118,183, 33, 8,183,151,175, 86,203, 85,154,100,196,198, 88, 23, 79, 3,175,173,193,130, 2, 66,113, +226, 11, 32,136,134, 40,186,144, 56, 98, 12,134,141,148, 7,136, 2,188,118, 35, 29, 28,184, 18,130, 30,192, 2,226,163,134,136, +135,189,250,199,139,120,124,239, 48,230, 9, 68, 95,179,110,226, 9, 29, 21, 52, 62, 23,128,192,164, 50,120,187,162,186,207,131, +243, 17,135,108, 25, 2, 51,147,117, 65,197,239,214,206, 26, 13,158,147,226,244,163,159,100,102,145,246, 79,255,228, 79,126,244, +249,243,196, 25, 75,240,123,223,253,238,151,190,244,222,118,117,135,100,219,186,106, 3, 94,221,204, 23,203, 85, 47, 48, 57,154, +161, 73,250,182,202, 38, 39,125,211, 36, 9, 33,185,116, 84, 52,187,109,183, 91,246,161, 69, 95,177,179, 55,139,213,197,245,237, +114,179, 45,199,227,159,253,198,207, 1, 64, 78,112, 60,202, 13,202,114,219,174,246,213,118,191,107,218, 94,180,103,194, 34, 47, + 38,229,212,230,229,244,228,236,225, 59, 31, 5,213,186,218,239,151,175, 4, 8,149,148, 64,130,239,219,150,216,182,213, 70,196, +231,229,177, 74,111,109, 10, 34,183, 55,151,121,158,213,155, 59,103,147,114, 60,201,199,167,117,179, 67,118,121, 81,250, 32,214, +165,163, 98,214,117,149,177, 57, 24,183,189,254, 36, 27, 29,179, 49,134, 19,147,100,108, 24, 52, 32,217,188, 60, 82, 96, 64,118, +206, 25,118, 73,154,163,116,105, 49, 33, 99,219,174,149,126,135,208, 50,115,146,151, 77, 93,245,221,158,216, 58,227,210, 52,147, +208, 97,240,162,128,224,243,242,184, 24, 77,156,113,189,111,108, 58, 98, 55, 66,245, 74,228,235, 93,223,109,242,242,132, 20,122, +241,134, 25,173, 51,198,238,182, 43,182,142,140, 97, 99, 99,186,210, 24,199,217, 68, 85, 33, 52,117,189,201, 70, 39,163,209,152, + 13, 89,151, 4,223,245,189, 10, 0,160,233,155, 42,244, 45,113, 66,198,132,208, 55,117,195,132, 41, 67,211, 54,147,241, 52,201, +179,201,248,168, 24, 77, 20,176,109, 27,239, 67, 89,142,203, 34, 67,208,220,152, 77, 47,109,144,113,158, 1, 99, 85,173,242, 44, + 29, 21,121,211,237,151,187,181, 97,120,112,255,173,179,147,147,106,187, 94, 44,119,229, 40,201, 83,171,138, 42, 66, 48, 92,209, +135, 73,219, 0,152, 82, 38, 36, 80, 20,136,200,150,222,251,249,166,219,214, 56, 25,207,202, 34,107,170,213,197,243,103,159,126, +241,197, 39, 95, 60,125,252,226,226,213,205,124,179,175,207,207, 78,191,247,107,191,248, 71,223,253,123,199,179,241,110,215, 27, + 49, 86,252,245,171, 23, 95, 60,121,252,236,114,190,221, 55,247,206, 78,198,179,169, 97,117,229, 72, 20, 94, 93,222,173, 23,171, +113, 98,167,101,106,145, 68, 85, 20, 66, 76,209,255,255,115,127,113, 2, 23,231,169,140,112,192,155, 69,176, 10, 4,141,209, 36, + 36, 32, 25, 78,147, 24,189,136, 3,171, 64, 69, 69, 13,198, 56,186, 26, 68,136,142, 65, 80, 69,160, 40,204, 14,218,189, 40, 0, +227,193,251, 73,200,136,170,106,136, 37,202, 53, 3,175,140,130,132, 32, 18, 1, 39,160,135,241, 24, 0, 30, 66,142,175,131, 53, +206,146, 2, 17, 64, 12,161, 19, 2, 35, 25,102, 66, 18, 47, 49,168, 31, 68, 52, 40,198,239, 14, 81, 7, 7, 53, 5, 80,199,230, + 64,157,194,214,183,187,106, 11,234,157,117,251,170,119, 4,121,150, 2, 16,255,193,183,191,133,128, 32,175, 23,225,248,134, 28, +244, 25, 27, 67, 68,131,183,250,240,103,226,152, 69, 20, 15, 75, 60, 34,147, 37,241,141, 15,121,158, 31,210,249, 26,205,253,209, +208,205, 68,134, 34, 25, 17,226,238, 19, 95, 41,134,155,226,228, 48, 90,194,225, 0,210,138, 99,113, 24,214,188, 65,111,127,109, + 24, 29, 88, 25, 24, 81, 92, 49,195, 48,172,161, 17,209, 3, 10,105, 86,140,203,209,211,103,207,153,185, 44,203,108, 52, 10, 93, +232,251,238,217,197,213, 87,190,252, 1, 2,181, 77,197,132,109,211,148,211,217,252,246,250,205,247,190, 74,208,249,222,179, 51, +113,202, 26,255,209, 32, 66, 58,124, 85, 10,192,104, 40, 14, 22,226, 20, 34,154, 96, 20,137,137,162, 85, 95, 33, 14, 21,136,137, +140, 9,189, 87, 64, 98,139,168, 34,253, 0,212, 68,208, 32, 68, 6, 35, 82,143,136,137,226,162,124,152,208,202, 1, 25, 54,248, +236,163,111, 21, 16, 72, 68, 34,129,136, 40, 18, 14, 16,128,137,192, 48,200,240, 22, 34,162, 49, 6, 17, 25,185,105, 26,232,247, + 8, 2,156,223,251,248,103,146, 36, 1,134,127,241, 39,255,237,255,243,127,253, 37,160, 26,196,239,254,238,239,127,253,103,126, +170,243, 33,180,173, 2,118,166, 32,103, 30,127,254,105, 35,198,229,163, 52, 43,200,164,140,218, 53, 85, 62,158, 16,160,203,242, +221,106,153,100, 37,166, 73,187,124, 73,136,226,195,139,171,155,235,249,124,187,223,190,255,206,151, 63,120,231, 75,221,126,169, +205, 70,212,247,109,171,234, 45,163,134, 80,181,181, 97,195,200,153, 99,227,242,201,233, 27,179,211,183,239,189,249, 86,219,214, +187,253,222,216,210,185,164,171,215,100,178,174,173,251, 94,234,253,109,223,183,157,247, 73,146, 74,223,230,121,190, 92,221,117, + 34,227,241, 44,203,138,114, 60,214,208,231,229,209,110,179, 40,203, 19, 98,139,136, 10,237,102,187, 12,192,142, 2, 38, 83, 82, +200,203, 99,237,122,180, 22, 65,251,102,143, 12,105, 49,147,222, 19,120, 36, 98,230,182,221,131,244,251,245,157,181,217,126,121, + 1,192,105, 62,203,199,227,166,217, 27, 87,244,138,189,247,132,241, 14,174,198,166,117,215,248,110,107,216, 41,168, 75,138,196, +242,250,238,185,117, 5, 51,245,253,174,111,186,180, 24,141,167,103,204,184,185,123,101, 76, 10,218, 26, 67,136,144,184, 12,145, +130,111, 69,149,217, 26, 75, 26,194,110,241, 60, 75, 70,197,120,150,101, 83,147,142, 66,215,181,251,185,168,189,187,248,209,228, +248,173,122,123, 19,131,135,210, 86,206,114,219,238, 67,232,179,172,172,186, 32, 2,137, 69, 38, 98, 54,137, 97,245,189, 72, 79, +168,198, 24, 36,174,118, 27, 31, 72,197, 79,138,114,177,217, 85,125,119, 54, 61, 74,139,210, 80, 39, 18,182,141, 47, 71,179,113, +145, 10, 36, 1, 85,250, 74,208,237,250, 60, 75, 37,205, 48,242, 81,226,113, 74, 67,148, 21, 40,114,105, 14, 92, 41, 21,213,249, +182,190,221,116, 46, 25,151,227, 50,116,245,245,197,139,199,143,158,124,246,248,201,167, 79,158,190,186,157, 95,223, 45,147, 36, +253,189, 95,249,217, 63,250,206, 47,127,249,131,183, 3,128,118,152, 42,237,239,110,159, 60,122,252,248,229,213,197,221,218,251, +254,239,254,244,215,147,163,209,143, 30, 63, 73, 45, 93,174, 55, 79,159,190,204, 13,165,150, 51,103, 53, 0, 49, 4,145, 32,209, + 51, 29, 93,208, 50,160, 90,108,212, 3, 34,247,102, 56, 74, 17,146, 33,138,160, 52, 38,142,176, 64, 96,136,218,240,144, 39, 50, +228, 67, 32,226, 65,156, 9, 0, 40,150, 56,232,160,144, 14, 4, 42,102, 38,244, 58,172,231,132, 36,160,175, 19,234,168, 58, 88, + 51, 15, 25, 49,141,169, 46,132, 32, 64, 17, 53, 16,165, 87,133,131,122, 67,135, 83, 32,121, 81, 4, 32, 5,136, 91, 11, 35, 51, + 43, 64, 47,194, 68, 74, 36,226, 69, 21, 1,141, 97, 47, 42, 0,134,144,153,124, 0,131,104,216, 40,170,146, 1,208, 32,186,218, +239,171,170,114,198,214, 94, 0,100,154, 23,200, 54,168,231, 31,252,206,119, 15, 78,202,248, 83, 65, 35, 98, 43, 26, 66, 44,136, +210, 16, 53,178,120,176,112,128, 68,115,203,192,251,164, 0,136,100, 19,190,157,207,103,179, 99, 38, 84,145, 24,137,141,163,246, +136,110,128, 65,136,143, 17,241, 3,150, 40,206,110, 68,145, 8, 16, 53,196, 69, 76, 98,250,102, 8,215, 15, 70, 73, 6, 21, 84, +133, 40, 97,199, 61, 15, 9, 9,136, 56, 2,213, 16,144, 15,129, 13, 36, 20,239,167,211,201,124,126,189, 90,109, 18,151, 76,143, +142, 29, 19, 72,255,228,217,211,172, 40,223, 58,191,215,180,173, 34, 56,166,187,249,197,213,197,229,104, 84,186,196, 86,251,189, +115, 9, 17,147,177, 33, 4, 68, 34,130,200, 81, 34,138, 90, 25,129, 12,236,203,104,101,137,215, 87, 36, 67,196,145,191, 51, 60, + 3,162, 16, 20, 13, 33,160,104, 79, 20,103, 32,131,254,101,173,141,102,128,232, 55,141,204, 3, 56, 32, 68, 99,154, 44,166,121, +227,115, 19,159,187,110,191, 92, 47,110, 34, 16, 15, 0,120, 8, 72, 33, 24, 82, 81,239, 37,158,238,153, 34, 21, 68,144,184,107, + 27, 13,173,113,233,233,251, 63, 81, 76, 38, 64,244, 47,255,135,127,254,191,252,203,127, 69, 76, 10,221,111,255,246,239,254,210, +183,126, 45,180,141,175,107, 52,166,222, 85,197,241,241,103,159, 60,218,119, 98,179, 12,186,189, 77, 70, 54, 45,162, 11,117, 92, + 78,186,182,219,109,230, 68,214,247,221,118, 91,181,219, 87,214, 38, 77,239, 95, 92, 93, 94,223,173,171,166,254,230, 79,255,226, +249,241,113,189, 93, 62,124,112,186, 95,173,246,251,253,110,191,238,154,174,239,187, 8, 38, 78, 24,242, 98, 60,154,220, 59,190, +255,230,201,131, 55,210, 34, 91, 92,189,234,234,141,248, 94,124, 67, 54,221,205,159,145, 43,144,220,120, 58, 29,143, 38, 93,215, + 49,104, 93, 45,154,166, 93, 46, 87, 89, 94, 74, 8,155,213, 69,146,142, 58,133,237,190,113,217,116, 84,100,193,119,196,166, 28, + 31,133, 0, 65, 67,232, 27, 32,155,142, 38,228, 43,128,192,198,121,239, 67,223, 10, 0,153,188,110,246,192, 68, 40,136,214, 37, + 37, 17, 37,249,136,172,117, 46, 1,232, 93,146,102,121,193, 38,173,215, 87, 26,124, 50,154,248,221, 2,141,101,240,187,197, 75, + 55,154, 58, 91,116,237,190, 24, 31, 39, 89,225,125,107, 92,162, 32,245,102, 97,216, 58,155,113,146, 75, 8, 22,177,174,118, 77, +181,156,158,188,195, 72,249,228, 56,116,141, 34, 22,121,177, 91, 93,138,242,126, 53,223,111,230,247,222,250, 74,231,219,197,205, +197,252,197, 95,228,227,211, 16,250,190,222,165,197, 88,209,222, 92,127,114,114,255, 67, 68,234,251,122, 52, 62,107,218,189,244, +125,154, 79, 73, 68, 67, 39, 26,156,203,178,172,140, 10, 95,221,119,219,170,202, 18, 7, 10, 46, 41, 70,197,184,110,170, 52, 45, +124,232, 30,156, 28,239, 91,185, 92,220,158,159, 76,170, 30, 92,126,154,165,206, 38, 25, 91, 62, 59,190,223,117,226,123, 13,190, +201, 39, 71,187,154, 74,199,169,141,247, 74, 19,153,131, 0, 98,144, 84,226, 32, 74, 25,177,106,187,139,219,170,237,205,209,236, + 56, 53,124,119,243,242,201,163,207,159,189,184,248,236,233,179, 39, 23,151, 55,155,205,174,106,191,254,225,187,255,193,223,255, +157,111,254,228,135, 10,228,189, 22, 38,211,186,122,241,236,241,231, 79,158,191,156, 47,230,203,205,135,111,158,177,113, 47,239, +110, 47,111,110,137,146, 31,126,250,197,126, 83, 21, 76,121,154,193, 64,116,210, 32, 34,162,193, 43,209,224, 3, 70, 34,235, 44, + 34,106,136,108, 69, 80,164,160,154,185,132,128, 68,189,138, 98, 60,161,171,180, 18,226, 41,151, 6, 9, 85,136,168, 11, 2, 8, +164,168, 8,170,106, 12,145, 65,223,171, 18, 48, 34, 19, 42,104,194, 36,136, 10,104, 8, 45,178, 0, 70,238,107, 98,141, 4,101, +166, 3,181, 81, 13, 50, 96,164,249,129,168, 32,128, 37,246,170, 6,217, 89, 51,200,179, 76,206,217,200,207,138, 94,113,162,152, +121, 66, 5,177,204,170, 16, 68, 84, 53,179, 6, 17,124,219,123, 65,203, 72, 68, 94, 52, 97, 78, 12, 5, 69, 85, 49, 20,229,254, + 96, 92, 70,113, 14, 2,202,100, 0,217,171, 4,145,105, 81, 32, 83,145,184, 46, 40,127,255,219,223, 2, 16,197, 8,122,199,193, +251, 4,136,136,162,138,209,195, 30,191,142,152,114, 18, 21, 8,135, 64, 64, 92,117, 89, 73, 21,149, 66,255,127,255,217,191,210, +236,244,236,120,172,226, 97, 24, 49, 2, 29, 96,185,170,162, 63,102, 10, 40,234, 0,208, 28, 36,102, 34,140,145,212,193,127,165, +196,230, 0,207, 26,134,190, 58,140,128, 33, 78,161,163, 63, 48, 30,134,145,145,137,145,136,140, 33,100, 34, 70,212, 56,236, 46, +139,209,231,143, 30, 25,166, 81,158,143,198, 19,239,189,248,240,215, 63,250,236,157,119,222, 30,229, 89,211,212,214, 36, 26,232, +225,187, 95, 10,237, 54, 27, 31,213,251, 45,147, 77,146, 20, 32, 96,252, 95, 83, 69, 36,100, 30,238, 13,164, 26,167, 14, 56, 92, +185, 8,144,140, 17,245, 32, 26, 83, 2, 49,195,230, 67,143, 76, 8, 52,208,208, 8,136, 40, 70,222, 0, 73,195,240,216, 12,186, + 83, 60,129, 48, 73, 84, 54, 95,199,219,134,116, 49, 33, 99,232,186,235,139,199,119,151,207,218,174, 73,178,210,217, 12, 48, 50, +146,101,200,210, 14, 55, 82,142,251, 1, 16, 51,219,182,218,106,183,155,220,123,111,122,255, 33, 90,254,171, 63,251, 63,254,244, +159,255,143,104,156, 37,252,123,191,250,155,191,252,203,191,208, 54,117, 64, 98,195,190,247,110, 50, 93,220, 92, 61,254,226,133, +162,128,120,165,148, 93,102,108, 26,124,157,184, 84, 7,127,177,201,138,241,171,151,207,155,221, 58, 49,181, 33,179,219, 87,183, +183,243,155,213, 74, 21,126,233,103,126,201, 50,174, 22,183,161,175,111,110, 94,117,222,175,119,123, 37, 82,164, 36,113, 36,162, + 40, 73,154,159,158,206, 78,239,157,151,147, 89,189,185,186,187,124,145,143,143, 9, 67, 80,107,140,237,218,106,191,153, 27, 66, +106,238,234,170, 1,223,178,181,162,184,222,238,150,171,121, 60,130, 77, 78, 31, 88, 87, 36,217, 20,218,221,116, 54, 75,210,124, +179,184, 14,210,231,134,234,122, 11,118, 52,202,199,137, 81, 4,232,218, 22,109, 90, 56,204,202, 51,235,210, 36, 31,129, 6,231, + 82,210,160, 18,218,237,210, 55,171,190,217, 33, 59, 31,124,240, 93,232,154,128,148,230,165, 74,168, 58, 15, 72,210,247, 93, 87, +247,117,165,100, 67, 0,223, 54,125,183,113, 46, 1,116,222, 55,125, 83,155, 36, 73,178, 82, 68,124,191, 71, 99,188,239, 21,201, +119, 77,146, 20,219,187,151,174,152,244,205,190,237,122,178,169,130,238,215,243,188, 60, 38,195,162,234,242,178,175, 22, 93,189, + 77, 82,215,117,158, 81, 76, 94,246, 94, 3, 64,240,237,116,246,214,104, 52, 37,130,208,251,182,217, 49,161,181,121,150, 37, 0, + 97,223,182,214, 88,231,210,206,247,134,140, 87, 76,216,100,105, 54, 29,141,108, 94,250,182,182, 6, 68,217, 75, 96, 4, 6, 45, +114,215, 4,189, 92, 46,207,202,163,114, 92, 38, 89,233,251,106, 52,154, 57, 11,155,245, 60,205,179,125,221, 22,121,129,200,158, +166,134,170,204, 97, 16,193, 3,150, 52, 68, 19, 1,131, 87,189, 93,215,139,141,207,138,241,120, 60,234,234,253,229,171,103,159, +126,246,232,243, 23, 47, 31, 61,127,241,242,102,190,222, 85, 39,211,241,247,127,227, 23,255,254,239,253, 74, 57, 46,171,218, 39, +156, 38,192,235,219,171, 39,143,158, 60,121,113,189,216,237,142,198, 99, 98,154, 29, 79,196,114,211,135, 39, 79, 94,236, 55,155, +105,158,167,214,198,188, 61, 13, 55,216,136,191, 2,195,209,197,141,132,131, 64, 97,136,141,179,209, 79,193, 68,140,209, 92, 16, +124,136,248,191, 56, 83, 29, 92,240,136,236,172, 33, 38, 9,162, 10,214, 80,180,158, 51, 15,248, 17, 31, 20, 16,157,177,209, 57, +111,141,233,130,196, 79, 83,132,138, 48,161,179, 86, 68,130, 68, 52,202, 32,211,139, 66,136, 71,119,198,131,209, 77, 5,213, 34, + 89,230, 16,137, 13, 76,168, 49,191,138,162,160,170, 38, 34,127, 99, 15, 3, 89, 47, 18,211,191, 8, 24,194,128,119, 75,172, 1, + 34,141, 58, 15, 82,208, 65, 93, 17, 0, 64, 81, 69, 67,204,236, 16,213, 26, 99, 8,216, 90,239,253,200,185, 60, 31, 33,114, 36, +203,155, 56,212, 37,141,220,200, 1, 84, 31,227, 67,195,247, 54,224, 98, 52,138,188, 62,202,113,170, 72,106, 34,233, 24,226,174, + 68,174, 28,143,202,201,213,237,252,227,247,206, 4,137, 15, 76, 11,208, 88, 91, 65, 10,160, 65,129,244,128,211,101,160,104,190, +212,129, 69,192,128, 33, 82, 16,144,137, 14,238,157,168,212, 83,196,225, 34,235, 16,231, 5,136,170, 25, 32,106, 0,208,225, 12, + 28,157,152, 72,175,209,243,225,222,253, 7, 31,190,255,246, 15, 63,121, 52, 41,167,121, 49,154,157,156,213, 77,117,117,125,243, + 63,255,239,255,231,191,246, 59,223, 73, 18,223,117, 85, 81,102, 8,254,250,250, 98,223,246, 18, 90, 21, 77, 51, 71,100,144,152, +112,184,157, 14,216, 47,142, 79, 12,197,171, 76,148,236,148, 34, 9,152,128, 32,174,206,145,212, 73,132, 26, 58,101, 23,155, 58, +212, 43,218,104,245,241,104, 1, 35, 23,116,128,110,147,138,168, 0,169, 12,114, 84,212,134, 20,227, 96,121,176, 10,177,177,214, +246,189,160, 66,208, 16, 72, 73,163,230,245,227, 20,246, 96, 90,250,177,142,133,190,173, 70,147,123,179, 55,222, 65,199, 55,207, +159,253,119,127,242,223,247, 74, 70,228,239,124,243,231,126,253,183,127,115,254,226, 89, 23,120,118, 58, 21,223, 52,117,227,146, +236,233, 23, 79, 39,167,247,183,171, 57, 72,112,197,200,144,138, 8, 41,249,174,113,197, 72,118, 59, 99,211,229,252,122,187, 94, + 59,234,236,200,137, 98,213,182,157,104, 8, 82, 20,249,228,232, 72, 67,127,124,116,180, 89,205, 83,155, 8, 42,208, 90, 67,112, +206,160, 74, 64,180, 54, 77, 92, 58,158,156,144,115,206,186,205,162,222, 55,251, 41,179,154,146, 52, 52, 85,157,143, 79, 77,154, + 73,211, 85,141, 40,245, 76,210,236,215, 72,188,218,172,124, 8, 46,201, 20,109,211,244,161, 89,142,143,239,113,234,178, 98, 44, + 34,217,228, 44,207, 70, 93,189,238,218,182, 40, 78,179, 44, 89, 45,175,210, 36,243, 34, 8,102,181,190, 73,133, 52,120, 31,188, +117,133,104,221, 54, 59, 85, 32,209,170,174, 93,146, 65,144,205,102,165,193, 55,251, 59,182,187, 34, 73,198, 39,247, 76,211,106, +128,106,115,105,109, 78,105, 46,156,143, 70,211,186,218,104,232, 65,125,179,191,147,222, 54,219,165,205, 70,163,163, 7,125, 8, +193,107,183, 89,150, 39,231, 77, 93,139,111,202,241,232,244,225,251,202,134,196, 88,114,203,171, 23,137,203,146,209, 88,250, 6, +216,200,238,198,141,239, 87,117, 55, 61, 62, 13, 94,136,231,171,197,117, 46, 38, 47,198,193,183,187,221, 93,215,213,170,161,111, + 43,151,150,251,106,215,122,233, 85,141, 23, 81, 56, 62, 61,175,118,235,106,183,180,118,180,235,118,149,135,220,154,119,222,124, + 75,250,166,107, 60,178, 17, 48, 29,180,121, 94, 0,232,221,122,137,160,231,211,241,178,110, 95,222,220, 36, 73, 98, 10,217, 85, +123, 64, 99,221, 73, 50,154,230,249,168,170,119,155,249, 21,104, 47,221,186,222,151,239,156,167,133, 13,225, 80,235, 97, 25,251, + 32,235, 77,183,237,193,114, 50,153, 58,223,181,215, 47, 47, 47,174,175, 94,190,188,124,113,115, 59, 95, 46, 23,155, 93,150, 38, +191,245,139, 63,253,171, 63,251,141,243,251,199,117,235,195,190,181, 26,154,106, 63,159,223, 92, 93,221,188,186, 91, 90, 50, 95, +251,202,251, 29,234,229,223, 46, 2,210,124,189,189,185,188,201,216,230,137, 99,134,224, 21,144,130, 4, 65, 81, 1, 68, 96,141, + 46,205,184, 20,146,170, 38,198, 70, 90,183, 32, 68,220, 44, 1,134, 88, 38, 36,146, 24,246, 18,207,162,242,122,109, 2,208,166, +239, 13, 98,226,172, 15,161, 11,194,135,161, 21, 33,106,100, 50,136, 34,136, 35, 20,133,206,247,113,190, 39,170, 28, 5,107, 36, +141,211, 83, 36, 64, 69, 5, 70, 10, 64,132,161, 11, 62,214, 44, 68,209,128, 15, 78,136,232,189, 51, 54,138, 69, 66, 49, 53,138, + 42,130,138,226,200,122, 9,162,234,125,207, 76, 68,232,189,136,138, 65,131,136,204, 38,104, 24,172, 36,170,136,200,132, 1, 81, +130,178, 33, 81,102, 68, 54,108, 1, 90, 97, 47,129,217,132,182, 78,217, 76,138, 18,153, 37,120,107, 45, 33,240,247,191,251, 91, +131,154, 17, 51,235, 18, 6,175,228,208,231, 34,120, 40, 2,136,114,132,143,139, 44, 2,227, 16,112,136, 64, 33, 36,100,195,167, +247,239, 25,128,201,184,144,161,213, 36,146,203, 56,250,229, 35, 41, 1, 25, 21, 4,163,251,221, 34, 2,144, 33, 85, 60, 88,116, + 6, 78,116,172, 89,137,225, 34,138,147, 17, 38,129,248,117, 33, 33, 26, 54,200, 72, 10, 4,236, 81,136,141, 4,137, 0, 60, 0, + 69,144,129,200, 6, 16, 20, 78,143, 79,159, 63,127, 94, 55,109, 89,142,202,114,138, 12, 69, 86, 60,126,252, 36, 31, 77,206,239, +157, 53,109, 77, 76,205,110,107,146, 49, 72,223, 52,126, 58,157, 74,156,224, 12,149, 0,116,200,168, 42, 42, 18,160, 68,145, 10, + 25, 1, 21, 85,197,171, 14, 94,125, 0,245, 26,152, 45, 0, 4, 17, 16, 97,182, 3,238, 94,163,181,113, 72,246, 30, 64, 62,136, +140,234, 3,196,218,168,120, 37, 49, 17, 22,198, 3, 15, 20, 94, 79, 88,201, 36,121,154, 23,249,228, 40, 73, 11, 67,134,144,128, +135, 63, 18,135,222, 81,226,131, 24,159, 34, 70, 80,180,249, 27, 95,249, 6,167,110,125,125,243,159,255,199,255,164,106, 58,208, +240, 51, 63,243,179,191,253,189,239,112,194,127,249,231,127,205, 8, 42, 80, 85,245,248,193,249,211,199, 47,175, 95,190,236,125, +231,187, 54, 47,198,190,217, 18,198,216, 29,231,121, 89,239, 55,245,110, 71,160,155,213,178, 13,154, 80,155, 39,182, 15, 97,181, +217, 92,205, 23,243,229,234,205,135,239,125,253,203, 95,111,214,215,168,126,191,219,168,234,122,183,111, 59,239,189, 15, 33, 48, + 35,176, 45,139,241,249,249, 91,247,223,254,242,232,248, 1,168,191,189,186, 72,198,247,207, 30,220,223,173,110,196,135,208,183, +214,229,126,183,168,170,245,102,181, 4, 52,245,126,157,231,197,246,238,213, 98, 87,229,229,145,113, 73,146,230,125,219,172,119, +187,204,194,217,249,219,147,217,217,126,183, 87,233,214,183,143, 69,177,170,235,196,154,205,252,169, 45, 78,138,204,174, 86,235, + 36, 45,218,222, 35, 38,125,215, 33, 37,170,161, 15,100,140, 77,179,178,175,119, 93,192,198,119, 93,219,139,132, 32,146,142,102, +199, 39,179,113, 57, 78,179,241,110,125, 55,191,189,146,174,203,199, 83, 8,129,136, 81,122,147,228, 34,193, 89,155, 21,211,237, +234,102, 52, 59, 31,207, 30, 24,131, 77, 85,177, 49,121, 57,189,121,250, 87,192, 6,209, 34,244, 36, 66, 72, 70,165,218,204,173, + 75,251,174,174, 54,119,109,211,244,189,104,104, 79, 30,188,159,101,174, 90,223,181,117,221, 41,220,123,243,227, 44, 27,133,174, +218,174,175,210,242,212,166, 19,239, 59, 4, 76,210, 76,165, 37,206,202, 81, 14,161, 69,202, 84, 61, 39, 73,175,100, 92, 70,214, +149,229, 52,203, 11, 50,102,122,116,220, 9, 26,118,170,200, 18, 72,247,171,218,223,159,157,105,223, 4,192,241,104, 12, 46,107, +130, 76,202,177,168,238,118,187,190, 15,109,181,237,155, 53,153,180,169, 86, 46,155,238,247, 59,178,147,170, 9, 89, 74,153,139, +234, 39, 84,157,191, 94,246,157,216,188,204, 25,176,222, 46, 46, 46, 94, 62,121,250,236,211,167,207,190,120,121,113, 53,159,111, +155,230,189,183, 30,254,131, 63,252,173, 95,255,197,159,116,121,210,236, 3,121,193,174,189,126,117,241,228,209,147, 23,151, 87, +251,170,157, 78, 38, 18,250, 90,101,185,173, 46,175,239, 46, 47,174,239,110,151, 35,107,178,196, 1,170, 35, 3,128, 65,186,182, +247,157,247, 68,232,189,198, 40,126,172, 55, 34,130,212, 24, 65, 12,160,108,152,201, 16,168,168,244,193, 91,230,200,233,237, 66, + 0,136,250, 45,128,106, 98,109,156, 71, 89, 34, 64,236,189, 40,104,132,145, 5, 4, 17, 97, 30,178, 61, 68, 24, 4,122, 0, 34, + 52, 76, 18,167,138,200,142, 7, 82, 83, 56, 84,167, 89, 99, 37,118,170,161, 18, 0, 50, 6, 9,175,161, 92,131, 40, 77,104,152, + 65,193, 16, 9,196, 67,218,112,161, 48,196,145, 30,232, 69, 16,129, 99,176, 21, 80, 69, 18, 99,148, 48,168, 2,130, 33,235, 85, + 45,179,179, 44,136, 2,200, 32,214,166,113,196,103,200, 48,129,143, 35, 73,230,170,105,219,174, 61, 42,114,101, 86, 80,199,228, + 44,123, 81,254,254,111,127, 59, 26, 42, 35, 69, 13,134, 81,197,225,104, 25,211, 11, 7,158,144,234,144,221,130,104,192, 36, 68, +166, 1, 85,104, 56, 4,201,179,164,222,173, 93,146, 25, 4, 17,101, 75, 24,129, 41,113, 46,200,195, 58,132,122, 64, 69, 7, 85, +137, 66, 86,156,123, 3, 1,137, 10,179, 25, 40, 69,240, 99, 86,129, 14,225, 49, 38,100,107, 19, 98, 86, 0, 98, 14,128,134,120, +136,243, 12, 6,204,184, 95, 97, 52,178, 74, 0,231,220, 40, 49, 79, 30, 63,205,139,209,104, 50, 78,109,166,193, 51,225, 39,143, + 30,125,252,209,135, 73,146,180, 77,107, 44,229, 69, 57, 26,141,178,108,100, 77, 88, 45,215,121, 94, 48, 69, 70, 58,189, 70,236, + 17,155, 88,228,132, 20,101,171, 16,111,141, 68, 36, 32, 17, 61, 54,164,250,136, 12, 91, 34, 20, 13,241, 34, 40,209,244, 73, 7, +243,124, 76,169, 1, 74,232,112, 80,241, 6,158, 76, 36,126,138, 10, 33, 29,232,240,164,160,198, 18,155, 36, 77, 71,137, 43,140, + 75,226,192,129,104, 40,216, 27,250,114,226, 30, 25,219, 0,216,160, 82,121,116,146, 29, 77, 86, 87,151,255,229, 63,254,199,139, + 77,205,132, 31,127,244,229,239,252,254,247, 38, 39,211,213,124,253,252,209,227, 0, 84,173,215,247,206,239,215, 77,243,151,127, +254, 23,100,243,182, 94,100, 73,110,172,101,155, 1,179,182, 59, 9, 93, 47,158, 65,124,144,245,174,109,234, 21,104, 72,172,103, +132,182,111,231,203,229,205,252,110,185,221,125,240,238,151,222, 58, 61, 70,109, 22,119,119, 93,215, 46,231, 87, 85, 8, 93,219, + 56,199,198, 88, 47,154, 37,217,209,236,232,193,195,183, 93, 94, 76,102,179, 32, 18,124, 16,223,216,164, 32,223, 41,154,190,219, +183,187,141,248, 70,125,239, 70,179,196, 37,196,169, 33,252,252,179,191,242, 68,108,172, 4, 47,226,173, 77,146,108,212, 52,181, +203, 70,218, 53,251,186,210, 32,192,169,250,218, 36,197,108,118,223,119,157,179,198,154, 60, 40,156,156,157, 51,244,222,119, 8, +224,187,221,102,241,146, 77,154,103, 89,150, 56,223,121,227,146,190,173, 92,146, 42,226,201,233,217, 7, 31,126, 52, 46, 71,249, +244,100,179,184,186,190,124, 21, 0, 27,145,190,173,165, 93,230,227, 25, 27,135, 42,198,229, 73,154, 0, 25, 38, 50, 54, 11,125, +213,236, 22, 89,113, 28,143, 66,108,221,104,124,236,146,196, 34, 11,152,164, 40, 1,113,183,154,119,125,191, 91, 93, 38,229, 25, +219,180,107, 42,182,121,146, 22,251,213,109, 16,117,233, 56,205,198, 68, 74,198, 26,227, 36,244,140,180, 93,206,147,209,113, 86, + 78,189,111,217,166, 76,230,225,249,155,101, 57,170,246,213,226,234,179,233,236, 60,201,138,182,222,140,138,220, 37,233, 40, 75, + 54,155,133, 2, 38, 89,193,140, 77, 91,117,253,206,184,233,108,124,100, 25,208,141,202, 81,153,184, 20,181, 91, 44,238,246,251, +245,241,209,113, 31,124,188,155,111,118, 27,199, 38,120, 63, 61, 57,203,138, 9,106,104,122,223,132,188,200,153, 89,110, 55,221, +106, 7, 46, 47,210,212,116,251,253,237,213,171,103,207,159,127,242,197,147,207,158,190,184,184,185, 93,108, 54,211,178,252,227, +239,252,202,191,253,251,191,113,255,193,113, 93,117,216,163, 19,221, 45,239, 30, 63,126,250,252,213,213,237,106, 85, 20,133, 77, +108,126, 52, 34,203,215,203,253,221,213, 13,250,144,177,157,228,169, 49,198, 25, 27,141, 45,157,239, 4, 52,154,146,163,215,197, + 26,131,132,108,209,112,252, 97, 5,133,145, 57, 78, 53, 17, 0,209, 28,166, 86,177,235, 45,136,248, 16, 66,240, 40, 16, 9,220, +150, 73, 15,142,189,131,160, 10, 1, 0, 8, 2, 0, 27,195,135, 79,143, 99, 82,196, 0, 10, 72,142, 98,126, 40, 30,218, 80, 84, +153,169,151,161, 66, 35,222,234,163, 80, 59,100,151, 14,232, 62, 66,178,204, 4,241,165,162,241,134, 8, 73, 69, 35,206,157, 0, + 21,200, 32, 49,178,168, 68,210, 9, 17, 9, 14,229, 18,113, 65,142,238,254,200, 20, 96, 38, 98,246,222, 27, 98, 54, 44, 32,145, +219,111,200,116,160,155,253,190, 76, 56, 73, 19, 64, 52, 76,104,216, 7, 81, 5,254,254,183,127,235,117, 34,126,176,163,196, 91, + 1,145,170,128,128, 6, 69, 30,134, 29,145,252, 30,141, 46,177,158, 53,174,120, 16,121,245,160,136, 28,186,126, 91,135,163, 73, + 17, 66, 79,138,160,200, 76, 56, 36,178,116, 64,169, 35,168, 6, 84, 66, 1, 16,100, 38,213,240,218,124, 4,120,168, 55,229,248, + 79,200, 97, 64, 2, 20,109,137,196,100, 9, 41, 46,165,252,227,222, 34,136,115,200,232,248,161,193,142,142,160,210,251, 94,138, + 73, 49,191,187,219,110,119,163, 81, 57,157, 30, 35, 35, 51, 45,239,238, 22,155,237,199, 31,188,215, 52, 53, 0,116,109,157, 20, +163,245,252,226,201,179,231,211,233,140,135,238, 85,138, 41,143,195, 14,199, 26,185,193,200, 34,158,200, 28, 4,145, 1,130, 29, +111,145, 81,152, 31,198, 83, 26,119,133,161,183, 43, 14, 34,162, 5, 22, 16,196, 15,213,169, 3,194, 41, 38, 33,116,144,190, 98, +171,162, 2,104,196, 26, 0,144, 49,131,122,197, 24,235, 3, 41,150,193,224, 48,209,125,205,210,143,215, 30, 81, 45,103,199,125, +211,253,215,255,201, 63,125,118,113,235, 24,207, 31,190,249, 7,127,248,135, 71,199, 99, 64, 92,205, 87,151,207, 31,177, 77,201, + 96,213,202,231,127,243,195,166,237,166,167,247, 25,196, 36,163, 32,194,132, 32, 1, 66,171,170,228, 70,204, 82,237, 54,219,125, + 99,216,248,102,155,152,222, 32,117, 93,119,183, 88,191,186,157, 55, 93,247,181, 47,253,196,123,239,190,235,235,221,102,187,107, +235,125,211,135, 16,231, 93,132,193, 7,103, 76,146,101, 71,163, 50, 41,202,242,222, 91,249,104, 82,239, 43,155,231,236,251,174, +239,150,203, 27, 34, 35,221,158,147,146, 76,154, 36, 89,104,219,182,109,214,119,207,154,170,106,149, 4,156, 33,234,186,198,165, +105,219,236, 51,203,197,248,204, 22,227, 16,130,209,208, 86,107, 38,108, 61, 42, 39,121, 81,100,229, 12, 84, 54,155, 59,151,228, +108,120,113,253,210,186,196, 38,133, 82,234,209,245,237, 94, 65,141, 49,198, 37, 93,179,245,190, 1,147, 49,193, 59,111,189,107, +157,187,189,124,186, 91,205,235,166,111, 60, 20, 69,142,210, 7,209,188, 56,202,210,194, 88, 86,114,161,111,216,112,154,142,156, +115, 10, 94,124, 64,144,208, 55,108, 18, 54,148,184, 36,177, 73,189, 91, 73,240,125,187,109,118,187,190,109,141, 75, 93, 82,102, +163,227,174,218,140,199,229,126, 53,207, 70, 35,148,110,183,219,121, 47,170, 98,144,231,183, 79,147, 36,203,242,212, 58,103,141, + 77,179,212, 87,107,228, 76,197, 59, 75,251,213, 45, 67,107,210,108,179,186, 35,151,179, 49,251,245, 34,248, 54,205,203,113,145, + 55,109,179,107,186,217,201,121,181,219, 92, 45,174,171, 94, 68,249,104, 50, 99,242,235,237,142,220,136, 56,166,231,237,241,236, +120, 83,135,122,191,122,247,252, 60,132,190,235, 90,162,100,121,251, 34, 73,243,190,171,119,235, 69,215, 52, 77,179,107, 60,122, +117,109,239,133,139, 44, 75, 65,186,229,221,237,179,103,207, 30, 61,123,254,197,243,151,207, 47,175,175,239, 22,125,144,159,255, +198, 87,255,193,191,254, 91,223,248,248,189,182, 15,125,227, 83,206,124,211, 92,190,120,246,217,227,103, 23,183, 75,235,204,135, + 31,189, 55, 57,157, 46, 86,235,201,209,244,118,190,184,184,184,182, 1,139, 52, 97, 67,198,112, 98, 13, 51, 91,230, 78,131,247, + 66,131,191,145,152,140, 25, 58,127,200, 90,195,108, 0,145, 45,199,124, 97,144, 16, 67, 42,170,218,121,111, 14, 69, 55, 74,216, +247, 93, 83, 55,251,182,233, 66, 71, 4,137,115, 81, 43,143,152,222, 24,200, 71, 68,107, 25,200,112,244,106, 3, 34,177, 2,244, + 65, 35,183, 60,210, 24,131,168, 97, 50,200, 67,143, 52,128, 33, 36,192, 88,210,201, 24,185, 35,135,122, 77, 66,195, 38,250,185, +141, 53, 62, 28,170,223, 48,234, 60, 96,136,141, 53, 33, 40, 2, 24,138,227, 80, 31, 67, 99, 52, 24,119, 8, 0, 58,239, 73, 53, + 53, 46, 4, 25,202, 3,105,208, 84, 44,179, 33,238, 85, 64,133,137, 69, 85, 0,182, 85,141, 26, 38,197, 72, 21, 19,142,142, 73, +181,108,124, 8,252,131,239,126, 43,122,183,135,238,150,131,211,218, 24, 22,149,225,155,146,136,147, 63,180,179, 12, 61, 75,135, +209,203,193,140, 14, 72,138,152, 89,186,185, 91,158,204,166, 62,200,208,239, 7,136, 32, 72, 24, 29,131, 3,185, 22,226, 25, 21, +227,138,136,230, 32, 91, 17, 69,206, 17, 17, 50,154, 72,148, 1, 64, 34, 19, 13,164,104,220,129,146,133,170, 66,114,232, 21, 84, + 5, 12, 52,164, 63, 99, 38,106, 24,219,170, 2, 72, 48,104,210,196, 60,123,254,210, 50,149,227,163,178,156, 72, 16, 70,249,155, + 79, 62, 61, 57, 59, 59, 57, 62,174,170,173, 97, 16, 65,151, 48,162,123,255, 75, 95,154,223, 92,186, 36,141,227,202, 56, 18, 21, + 13, 16,123, 38,117, 48,105, 41,136, 14,244, 75,128,173,200,172, 0, 0, 32, 0, 73, 68, 65, 84, 28,180,120,213, 31,251, 63, 15, +173,220, 49,116, 74,177,178, 41, 58, 78, 69, 67, 8,131,123,125,152, 40, 28,176,171,104, 34,225, 32, 26,153,244, 48,133, 29, 30, + 81, 17, 5,101,231,226, 77, 10,145, 68, 34, 33, 42,130,153, 41, 86,197,198,123, 34, 0,177, 53,204,201, 63,251, 47,254,211, 47, +158,223,178,225,163,233,248, 7, 63,248,163, 7,111,157,247,222, 27,107,231,183,171,221,122,149, 56, 91,181,221,252,234, 69,215, +214,105, 94, 48,106,187, 91,128,136,201, 74,245, 29, 0,168,201, 93, 49, 2,245, 64,110, 53,191, 83, 36,107, 83,227,146, 4,118, +132,184,222,237,239, 86,203,139,249, 29, 34,253,194, 55,127,241,104,124,116,125,125,161, 72,190, 23,233,251,166,217,231,105,218, +116, 61, 16,147,250,114, 52, 62,187,247, 48, 25,207,238,191,251, 21,237,154,245,106,233,164,218,111, 46,174,158,127, 54, 62,125, + 47,205, 71,204,216,108,215,213,118,213,119,117,219,110,250, 62, 40,154,186,217,111,154, 58, 77,178, 36,203,178,242,248,120, 58, +157,157, 62, 4, 50, 0,208,110,239,170,205,171,187,139, 79,146,209,125,155, 78,250,174,102, 99, 18,195,187,249, 19,193,132, 56, +169,182,215,104, 12,152,172,111, 26, 85, 96,195,170, 18, 66,111,152, 88,133,161, 69,164, 52,177,173, 15, 93, 31,202, 34, 77, 50, +103, 92,209,212,219,174,107,239, 22,183,130,156,165, 9,155,164,200, 51,237,219,253,234, 34,203,203,174,222,112, 58, 41,203, 73, +232,251,245,234, 42, 47,207, 76, 50, 10,226, 13, 51, 41,116,205,182,107, 43,182,169, 2,180,245, 14, 17, 64,188, 49,174,107, 86, + 77,181, 1,105, 67,219,181,125,125,250,224,109, 8,161,110,234,229,106,238,146, 52, 27, 29, 37,105,102,136, 22, 87,143, 76, 82, + 16,231, 93,187,223,109, 87, 66,220, 53, 77,223,182,251,245, 37, 39,101,154,228,235,249,133, 41, 38, 68,108,172,203,138,113, 57, + 62,242, 93, 85,111, 55,249,248,164,170, 54,251,186, 59, 63,123,243,100, 58, 5,213, 52, 73,218,182,230,180, 72,242,146, 17, 2, + 72,215,123, 32, 59,202,147,197,106, 85,117, 13, 3, 32,187,166,173,109, 90,178,205, 52,248,192, 41,184,124, 84,148,179,217, 40, + 79,161, 24, 77,157,227,174,222,191,124,241,228,241,147,167,143,158,189,122,121,117,115, 49,191, 93,110, 54, 15,239,159,252,251, + 63,248,206,239,255,230,207, 37,137,171,107, 97, 37, 35,184,189,189,121,242,248,209,203,235,219, 77,221, 24, 99,222,124,120,111, + 94, 87,183,119,171,231, 23,183, 87, 23, 87, 55,151,139, 89,150,185,204, 38,214, 18,177, 37,102, 99, 25, 57, 22,245, 24,203, 10, + 64, 64,214, 26,142,166,106,107,172, 49,209, 69, 97,201, 24,182, 42, 24,164,139, 11, 86, 68,220, 34, 19,138, 42,145, 33, 14, 18, + 54,213,110,223, 52,193,139, 53,198, 90,107,136,153, 24, 16, 37, 18, 37,153,163, 47, 17,117,208, 48, 25, 14,233, 65, 0, 59,172, +116,168, 49, 79, 52, 0,147, 95,247, 43, 11, 41,134,161,106, 13, 25, 0, 12,129, 87, 98, 52, 28,215,104,140, 96,253,240,154,236, + 13,128,136,150,216, 48,245, 65, 0,148,129, 16,177,247,109, 80, 53,196,230, 96,175,140,133, 30,135, 92,100,220, 18, 6,110,139, + 10, 26, 66, 71, 40, 72,130, 17, 98, 76,162, 96, 13,175,170, 26,164, 31,231,133, 51, 28,151, 65,107,204, 64,227, 87,229, 31,252, +246,183, 15,116,245, 67,117,211,240,155,215,142, 73, 24, 92,236,116, 96,193, 15, 5, 18,131, 51, 59,118, 86, 0,113,180,191, 24, +182,205,102, 45,156,100,169,197,160, 68, 16, 59, 30, 99, 4, 55,182,199, 17,113,108,126,100,203,100, 45,242,192,153,100,138,161, +252, 67,248,159, 6,147,105,140,201,197,100, 66,252, 98, 98,116, 22, 49, 50,106, 14,205,238, 58,244, 3,195, 1, 76,125,152, 27, + 0, 16, 40, 66, 57, 30,173,238,230,235,109, 53,153, 76,202,201,212, 89,179, 93,174,214,155,237,243,203,139,175,125,244, 37, 17, +239,187, 94,213, 95, 94, 94,119, 77,103,156, 13,193, 75,232,147, 36, 27, 90, 74,134,121,165, 87, 81, 98,139,108, 84, 67,144, 30, +233,192, 13,136,206,246, 67,163,112,196,130, 97, 24,222,187,129,155, 29, 55,234, 56,251, 25,246,212,168,199, 69,139,123,236,118, + 10,177,207, 50, 34,201, 14,118,213, 3,236,126,160, 96, 28,154,203, 7, 7,155, 70,217, 62,186,143, 6, 50,245,176,209,241,255, +244,167,255,226, 47,254,230,211, 60, 75, 70,121,250,123,223,251,254,151,191,254,149, 16,250, 40,121, 61,255,226,145, 71,147, 21, + 37,113,194, 4,168, 52,158,206,216,164, 65,144,217,160,130, 49,182,105,234, 44, 79,153,141,239,234,186,147,106,187,102, 8, 93, +219,168,180, 41,119, 42,176,217, 87,215,243,197,124,181,202,210,244,167,191,242,149,245,106,225, 12,139,248,182,218,214, 85,133, +168, 77,215, 52,109, 75,160, 69,150, 61,120,240,230,248,236,188, 60,126,120,116,122,114,119,249,172,222, 87,109, 91,247,193,142, +166,167, 16,218, 34, 47,250,170,218,110, 86,193,119,213,250,154, 76, 30,175,151,139,213,220, 36, 57,187,164,217, 45,197,119,211, +227, 7,206,154,237,242,234,246,250, 81,215,134,201,244, 76, 20,243,209,108,187,120,185,190,123, 10,210,207, 30,188,239,219, 93, +223,247,228,178, 44,205, 70,163, 73, 93,109,217,164,125, 87,133,122,211,119,123,151,140,130,239, 93, 98,146, 60,183,198, 26, 54, +203,237,174,107, 43, 6,156, 78, 38,162, 90, 76,206,178, 98,162, 96, 22,203, 69, 81, 76,210, 44,203, 29, 21,105,225,202, 83, 5, + 8,193,231, 69,169,253,174,247, 62, 77,143, 52, 52,168, 33,205, 38,136, 18,124, 71, 54, 83, 9,193,183,218,119,100, 12,145,173, + 54,243,208, 53,160,216,117, 93, 94, 28, 73,240, 26, 68,186,110, 49,191, 44,202, 99, 8,181, 49,137, 97,187,223,204,141, 77,146, +114, 86,215,117,239,251,248,137,171,150, 23, 46,201,247,213, 38, 14,103,146,116,172, 38, 95, 47,110, 56,155,156,158,222, 59,187, +119, 30, 39, 79,128,176,218,172, 36,212,231,231,239,118, 77,181, 90, 92, 90,155,142,203,233,120,114, 44,190, 71,164,178,156, 90, + 16, 36, 14,161, 67,228,196, 80,213,246, 77, 91, 23,153, 45,138,114, 52,153, 9, 96,181, 93,148,227,241,108, 54, 62, 61, 26, 29, +207, 38,227,114, 34,190,189,189,122,245,248,241,147, 71,207, 94,188,184,184,121,113,125,125,125,183,200,146,228,219,191,244,205, +127,247, 7,223,122,255,189,243,125,221,169,231,132, 76,187,219, 94,189,120,241,232,201,243,203,187,149,115,238,104, 92,164,227, +209,182,218,255,232,179, 39, 4,186, 89,238, 50, 50,179,233,208,186,227,140, 49,108, 80, 20, 85,137,227,135, 26, 99,163,189,179, +198, 48, 91,107,201,242,161,197,117,104,199,208, 32,160,202, 3,193, 54,146,151,134,106,104,139,216,251,176,111,234,222,247, 65, + 68, 68, 0, 49, 75,210,212, 58,137,235,196, 1, 41, 18,139,165,227, 13,250,245,199, 21,145,216,196, 75,182,202,176,121,136, 57, +184,253, 37, 70, 75,135, 89, 32,171, 70, 81, 97, 64, 60, 50,147, 42, 88, 34,141, 13, 60, 42, 49,193,207, 10, 38, 58,217, 0, 37, + 82, 73, 20,129, 72,188, 71, 34, 27,115, 4, 67,205, 6, 32, 34,115, 76, 90, 33, 1, 24, 99,226,209,119, 56,250, 33,118,170, 7, + 22, 56, 70, 84,194,190,247,117,219, 28,101, 89,154,166,189, 8, 1, 34,129,128,168,130, 97, 19,124,224, 63,248,205,111,197,253, +235,144, 41,138,167,243, 1, 67,127,112,207, 64, 80, 96,203, 24, 65,155,168,116,200,143,198, 62,189, 40, 8,240, 64, 61, 49, 24, +186,213,174,155, 29,149,240, 58, 55, 69,209,120, 66, 0, 74,236, 64,148, 13,177,179, 56,108,145,136, 81,129, 66, 6, 82, 67,116, +104,241, 59,116, 30, 69, 12,127,172, 59, 57, 52,155,162, 53, 3,235,150,245, 80,212, 23,147,165,120,168,143,137, 19,227, 31, 55, +128, 16,242,236,168,124,252,252, 69,150,102, 73,146,168, 74,219,212, 77,219,189,188,184, 60, 61,155,221, 59, 57,174,155,206, 37, +201,244,248,254, 7, 31,190,255,234,197,147,227,211,123, 77,181,117, 46, 67, 54, 68,230, 48,144,143,237,101, 49,162, 27, 34,236, + 69, 68, 94, 95,241, 84, 4, 99,148, 73,135,224,242,161,211, 3, 99,175, 85, 12, 68, 31, 54, 76,198,131, 32, 7,138, 16,157, 76, +175,203,175,225,144,231,138, 79,221,240,131, 14,189,139, 67, 67,109, 84, 6,163,155, 50,234, 69, 58,244,185, 35, 25, 94, 47, 23, +255,235,255,246,103,136, 48,202,242,239,254,238,247,127,226,167,190,222,213,123, 52,198, 26,222,172,182,151, 87,243,190,169,216, +101,160,253,118,117,135, 54, 1, 96, 21,104,234,125, 8,222, 24, 98,194,118,191,207,202,163,182, 90,175,111, 95,125,241,217, 39, + 9, 73,226,146,182, 19,166, 58, 33, 17,212,249,106,121,121, 51,223,236,171,147,217,189,175,125,244, 53, 8,157,120,223,182,253, +174,218, 55,109, 77,210,239,154, 46, 73,146,224,187, 50,203, 78,207, 30,186,172, 72,178,220, 89,187,217,172,211, 81,201, 46,155, +157,157, 23,229, 17,219,164,169,119,190,239, 58,223, 55,251, 61,177, 5, 99,198,105,186,188,125,177,238,188,179, 9,146,113,217, + 52, 31,141, 38,227,178,239, 58, 32, 86, 76,173,177,211,241, 56, 41, 79,119,251,165, 77,199,156, 78,243,114, 98, 73,128,211,174, +221,128,138, 15,221,104, 52, 43, 71,101,215, 53,157,111,109, 82, 26,151,236,182,139, 60,225,209,248,132,236, 40,207, 74, 9,173, +244,161,105, 67,211,213,227, 44,237,170,185,136,220, 61,255,235,241,209, 73, 81, 76,172, 54, 71, 71,179,241,228,212,101, 89,187, +223,136,120,155, 78,250,122,221, 87, 27, 65, 51, 26, 79,219,122,223,181,123,151,228,161,107,128, 12,137, 6, 13,105, 50,234,124, + 31,246, 27, 66,211, 7,223, 54,123, 64,206,242,209,110,117,131,218, 36,217, 8,137,178,172,236,154,221,197,179,191,157, 29,159, +111,183, 87, 68, 54,113, 41, 19,134,190, 75,210,113, 93, 45,167,167, 15,206,223,254,240,228,228, 94, 16,221,237,235,190,239,119, +119,151,187,205,213,241,131, 15,218,106,219,118,117,158,230,117,117,247,226,213,243, 36, 27,167,121, 89,150, 51,155,142,235,253, +122,114,116, 18, 66, 15, 32,198,218,162, 28,135,190,111,170,109,189,189, 61, 61,187, 79,196,198,101, 1,244,236,248,212,186,116, +177,221, 48, 72,154,102,193, 75, 49, 41,239,157,205, 30,156,157,157,156,221, 99,134,197, 98,254,252,217,147,199,207,158, 62,189, +184,120,126,121,253,226,242,122,179,111,126,242, 43,239,253,195, 63,252,246, 47,253,204,199, 72,216,212,193,105,162,190,189,126, +249,226,249,211,103, 23,183,115, 65,252,198, 79,126,213,141,179,166,105,166,167,211,231, 87,183,203,187,149, 19, 28,101, 46,113, + 6, 17, 19,231,172, 49,206, 37,160, 42, 8,214,184,248, 28, 91, 99,162, 12, 97,136, 13,153, 88, 65, 7, 3, 10,230,245,241, 18, +172, 49,131, 96, 0, 16, 84, 29, 27, 2, 6,144,160, 33,136, 4,241,109,223,121,239,227, 85, 54,117, 46,113,238,240,233,163,193, +138,128, 56,244,218, 19, 14,253,124,128,128, 1, 4,144, 88, 84,105,104,187, 70, 80, 96,231, 52, 12,173,161,160,224, 53, 16, 50, +128,144,146, 18,198,211, 23, 32, 26, 70, 64, 22, 13,209,172, 25, 99, 74, 17,171,238, 67, 32, 0, 98,150, 32, 65,188, 7, 73,173, + 99, 4, 17, 80, 85,203,212,123, 79,196,206,186, 78, 85, 1,140, 51,145,225,104,163, 63, 18,177,245, 30, 16, 82,195, 67,118, 22, +212, 88,238, 4,150,219,237, 36, 51, 89, 54, 82,149,196,217, 8, 32, 83, 36, 13,130, 34,125,240,252,135,191,251,237,248,190, 73, + 68,222, 68,219, 59,113,236, 94, 29,176, 38,100, 81, 53, 40, 24,131,136, 2, 10,104,162,232, 28,226,155, 56,212,232,198,115, 53, +130,181,102, 62,191,153, 28, 29,131, 6, 81, 56, 52,196, 68, 11,164,193,104,110, 65, 64, 67,226,195,255,199, 75, 18, 91, 49,232, +128,121, 65, 84,137,199,216,195, 47,209, 46, 21, 45, 74,160, 18, 6, 68,134,247, 49, 25, 12, 7, 62,101,188,135, 28, 80, 49,113, + 23, 16, 16, 0,145, 81, 57,237,219,237,245,205, 93,146, 56, 85, 77,179,180,111,170,187,249,250,242,246,238,167,190,246, 85, 32, +232,218,150, 49, 60,255,226,147,203,235,219,122,183,217,108,119, 69,158,255,184, 60,133, 92, 44,126, 29, 26,248,208, 2,138, 72, +136,186,147,198,150,238,193,213, 24,221, 61,170,234,163,206, 18,131,176, 67,233,214, 1,230, 14, 12, 3,170, 95,227,225, 29,241, +128,148, 4, 80, 54, 60, 64, 49, 7, 88,177,192,224, 11, 26, 12, 53, 26,194,192, 28,230,215,205,170,138,248,186,205,137,216,240, +237,213,237,223,252,237,143,136,248, 87,126,237, 91,127,247,231,191,217,247, 13, 18,154, 36, 17,145, 39,159, 63,218, 46,111, 5, + 96,179,184,105,235,166,239, 90, 81, 34,196, 52,115,203,171, 47, 76, 82, 78,142,143,234,170, 85,105,187,253,220,229,147,166, 15, + 10,249,236,228,158, 7, 22, 47,133,217, 17, 97,215,201,221, 98,253,242,102, 94,183,205,195, 7,111,190,117,239,172,235, 58,100, + 27,124, 95,237,183,109, 83, 19, 64,143,132,170,229,168, 44,203,201,244,244, 28,109,225,194, 58, 29,159,109, 87, 55,167,247, 30, +134,206,223, 62,251,171,151, 95,252,249,189,251,111, 52,213,174, 44,103,218,215,161,235, 20,160,239,218,197,221,213,203,139,231, + 94,237,131,123, 15, 70, 69,202,218,228,229,172,173, 42,129,158,217, 54,213, 38, 31,157,236, 86,215, 77,223,113, 50,217,220, 60, +117, 89, 62, 57,126, 3, 84,140, 43, 64,177,109, 43,147,230, 68,230,254,253,115,214,253,100,246, 16,161,239,118,119,163, 98, 60, +155, 78,181,223,153, 36,239,234,141,111,171,229,102, 21,218, 93,221,245,179,163,179,227,179,119,146, 36,105,235,157,177,110, 60, + 26, 49,145,146, 77,211, 12, 0, 60,154,106,241,220,165,153, 49, 41,105,151,141, 79,247,139,151,168,106,146, 12, 85, 66,232, 21, +116,113,249,169, 15,208, 84, 75, 13,253,118,117,195,164,214,168,117,133,138,110, 55,243,163,233,244,141, 55, 63, 32, 20,103,205, +102,179, 16,118,132,218,181,155,122,187, 20, 98,239,187, 80,111,202,147,115, 0,173,119, 43,146, 78,208, 46,239, 46,119,171,235, +213,234,110,114,250, 70,223,110,130,130,181,185, 49, 69,219,238, 63,127,244, 23,219,170,125,239,173,183, 31,188,241,209,100,118, + 38,161,239, 85, 19,151, 2, 26,237,219, 44,205,215,183, 47, 39,227,113,121,124,111,183, 89,216,108,116,122,114, 58,155,157, 24, +245, 0, 48,153,204, 78,143, 38,138,188,173, 26, 7,253,217,195,123,111,191,249,230,195,135,111,102, 69,178,223, 44,175, 46, 95, + 61,126,244,248,233,171, 87, 47, 46,111, 94, 94,223, 92,223, 45, 38,163,209, 63,250,227,111,253, 27,191,243,171,229, 56,173, 91, +207,144,164,236,182,203,187,167, 95, 60,122,241,242,114,185,171, 69,225,171, 95,251,224,229,124,254, 87, 63,252,188,105,154, 79, + 30, 61,219,221,174,143,203,130,153,172, 97, 34, 74,216, 58,231, 6,179, 47, 17, 33,117,190, 87, 84,195, 73, 16, 65, 34,107, 88, + 99,245, 28, 33, 32, 3,200,161, 18, 71, 45,177,130,118,189,143, 90, 8, 17, 90,107, 53,168,130,116,226, 9,145,145,154,206, 99, + 36,164, 17,102,214, 26,155, 96,180,178, 16,115,140,215, 28,212, 21, 26, 18,148,132, 12,160, 40, 67,185,160, 6, 0, 81, 37,160, +196,216,168,142, 10, 40, 33,116, 33,136, 4, 71, 36,224, 9, 45, 18, 58, 98,195,236, 44,130, 66, 8, 18,107,146,189, 6, 6, 74, +152, 84, 99,219, 21, 56, 54, 68, 20, 65,243,134,153,145, 68,196, 11, 88, 67,196, 70, 84,152, 25,141, 9, 33, 48, 98, 98, 18,249, +127,153,122,179,103,203,142,236, 62,111, 13,153,185,167, 51,221,177, 6, 20, 80, 0, 26, 13,160, 7,116,183, 40, 54, 37, 14, 10, +201, 18, 29,164, 56,216, 17,166,104, 59,252,234,255,208,225,240,155, 34,252,100,217, 50,229,166,200, 22,155, 24, 10, 53,221,186, +243, 61,243, 30, 51,115, 45, 63,228, 62,213,122, 7,112, 7,220,147, 59,247, 90,191,223,247, 73, 76,168, 26, 29,187,164,106,152, + 83, 41,247, 64, 14, 68, 17,216,116,157, 37,200,179,140, 12,147, 65,241,170, 32, 12,160,162,117,219,108,247,219, 77,189,231,127, +247, 23,127,146,252,168,135,209, 59,192, 24, 55, 5, 68, 18, 64,147, 16, 56,156,202, 99, 74,192,200, 25, 2,141, 92,203,228, 90, + 5,148,244, 48, 74, 86, 82,231,250,122, 11, 38,207, 51, 55,174, 8, 5, 0,129, 71,156,142, 32, 34, 72, 42,108, 9, 64, 42, 25, +167,253,199,251,170,234,136, 0, 58, 16, 27, 70, 66,228,248,134, 53, 22,167, 34,170, 2,241,193,221,174,227, 18, 24, 21,198,218, + 50,235, 56,190, 80, 68,212, 8, 74,168,128,199,179,233,215,223,124, 29,130,100,206, 16,114, 94, 21, 97,240, 47, 95,191, 93,204, + 22,159, 60,127, 90,215, 53, 25,227,108,241,241,103, 95,236, 55,155, 79, 63,251,210,247, 59, 69,103, 51, 99, 48, 83, 0, 69, 25, + 21, 39, 48, 74,175, 8, 14,214, 85, 5, 80,136, 49, 34, 1, 27, 11,170, 81, 69,199, 27,252,104, 23, 79, 75,215,177,152,155,214, +172,152,160, 78,227,221, 28, 68,254, 43, 87,227, 97,179,125, 88,150, 38,194,103,138, 27,169,104,148, 40, 49,166,226,243,136, 28, + 74,255,145, 68, 17, 86,181,198,190,125,251,250,155,111, 95,253,193,239,255,139,127,245,111,254, 77, 84, 65, 99,216, 57, 67,124, +253,246,178,222,183,138,174,107,234,147,197,162,243, 49,175,230,132,232, 44,117,125, 31,169,156, 45, 78,124,187,247, 81,200, 85, +128, 90, 78, 38,131,151,186,222, 90,107, 64, 66, 89,229, 20, 55, 10, 80,119,237,122,187,191,184,185, 29, 6,255,249,167,159, 63, +127,254, 67, 91, 78,194,224, 55,235,187,213,106,237, 24,250,126,104,135,222,104,152, 77,138,147,211, 71, 92,205,170,227,167,103, +207, 62, 86,206,182,155,141,181, 60,244,245,195,237,109,164,220, 49,182,109, 80,245,155,187, 11, 5,112,214,181,219,135,227,211, +199,189, 72,136, 48,248,206, 48, 31,159, 63,183,206,246,187, 59,223, 53,189, 80,221,180, 0,144, 21, 83, 32,163,125, 93, 44,206, + 44,219,161, 94,245,237, 46, 43,202,233,108,230,242, 89,223,183,253,208,179,106, 8,126,122,244,216,119,117, 84, 42,170,133, 97, +210,216,102,249,196,247,251,205,234, 1,108, 33,161,141,209,159,159,157,151,153,217,174,110, 92, 94,246, 98,183,155,165,111,119, +200, 6, 66,223,236, 86, 68,198,229, 19,178, 5,147,176, 45,218,253, 78,165, 39,240,214,150, 93,179, 55,196,132,152,151,115, 16, + 13, 94,117,216, 77, 23,231,156, 21, 49,224,110,191, 11,190,151,232,141, 49,195,208, 0,242,208, 53,109,235, 11, 75, 69, 53,207, +178, 25,185,178,170,166,211,217,236,163,207,126, 84, 77,102,155,219,183, 93,239,183,155,123,203,220,135, 48,120,232,251,206,154, +220,229,211,217,241,179,161,221,223, 94,127,183,235,250,179,211,231,103, 71,167, 38, 63,218,181,221,102,181,172,119, 43,178,133, +115,153,205,178, 42,175, 86,219, 37,114,126,118,250,132,136,130, 42,155, 92,163,223,173, 87,235,213,125,223,249, 8, 88,230,110, + 90,230,199,199,103, 79, 63,120,242,232,209, 7,243,249,194,119,205,221,205,213,139, 87,223,191,124,245,246,237,213,237,235,235, +219,183,151, 87,253,224,159, 61,126,242,199,191,252,197, 31,254,242,231, 94,124, 8,228,208, 73, 59, 92,189,125,251,205,183,223, + 61,172,182,221,224, 63,125,254, 88,156,121,121,113,121,117,117,155,229,238,230,234, 62, 83, 56,153, 20,150,153,152,173, 97, 75, + 6,153,137,108,250, 96, 39,190, 13, 19, 19,179,106, 52,132,200, 12,154,210,144,134, 64, 37,213,212, 85, 12, 49, 32,121, 80, 66, + 50,204,227, 4, 87, 85, 37, 42, 68, 64,204,173, 81, 64, 1,165, 17, 11,128,185,201,157,179,214, 26,235, 44, 34,229,228, 84,132, + 14,194, 35, 58,228, 50, 12,145, 70, 21, 81, 68, 37, 36, 1, 32, 66, 75,156, 78,163,144,116, 69,160, 0, 96,144,152, 12, 18,138, + 82, 26, 49, 41, 34, 51,119,189,104, 66,149, 13,130,160,233,243,153, 52,211,227, 53, 53,173,204, 64,211,180, 39,205, 68,172, 49, +233, 13,132,145,162, 66,136, 65, 14,212,202, 52,231, 53,144, 30, 57, 41, 46, 1,137, 70,158,200, 35, 64,184,169,251,190,239,231, + 85, 97,152, 17, 73,125, 96,147,188,161,184,218,239, 55,251,205,122,183,111,187,134,255,135, 63,251,147, 67, 34, 18, 1, 71, 48, + 91, 66,190, 24, 74,123,206,180,166, 78, 45, 87, 68,148,244, 32, 56,164,134,104,228, 66,224, 88,209,213,177, 81, 6,251,122,168, + 38,249,248, 67, 18, 34,144, 25, 1,149, 4,227,253,245, 32,113, 4, 24,175,196,160,168, 17, 33, 77,227, 70, 52,114, 58,167, 84, +133,152,101,252,245,164, 84,119, 2,190,167, 45,132, 42,200,193,130,141, 35, 58,158, 16, 0,216, 56, 56,184,160,210,228,198,230, + 25,144,124,255,234, 77,150,101, 69, 89, 90,147,101,214,108,182,155,191,255,230,219,175,190,248,225,164,116,237, 16,172,225, 52, +237,123,120,184,123, 88,173,102,211,105,230, 10,197,212,161, 72,125, 8,129,131, 94, 35,173, 55,211,130, 27, 17,137, 12,105, 50, +252,193,225,189,227,253,100,133, 0, 1, 12,130, 38,242,196,168, 69, 75,153,200, 49,131, 68, 4,170,200,137,237,132,128, 48, 34, +146,198,249, 89,210, 2,142,163, 68, 69,192,209,214, 50, 38, 4,128, 8,146, 24, 88, 1, 80,152,248,197,247,175,143, 23,143,255, +244,207,255,148, 45, 3, 17, 51, 35, 83,223,118, 87,239, 46, 23,199, 39,119,183,247,125,187,250,193,231, 63,174,219,160,128,195, +208,171,234,208,181, 22, 21,213, 15,221, 16, 66,239,187,214,218, 60, 10,109, 55, 75, 29,246, 89, 49,171,102,139, 34,135,216,174, +217,152,221,126,183,220,108,174,238,151,170,250,139,159,254,211,199,103, 79, 7,223,214,187,205,102,121, 39, 34, 26,251,186,235, +141,181,179,201,164,112,110,186, 56,143,100, 22,231,207,142,142,142,124,223, 65, 12, 93,179,223, 45, 47,118,203,155,143,127,252, +207, 23,199,167,171,187,119, 26,134,253,234,166,143,210,246,253,102,125,179,223,111, 87,155, 77, 81, 86, 97,104, 2, 58,235,178, +197,116, 22,251,102,241,232,147, 44,203, 49,246,211,163,147, 16, 36,170, 84,197, 12, 1, 44,103,217,100,182,123,184,152,206,143, +129, 12,129,196, 40, 67,187,129, 56, 68, 25,124,215, 45,183,235,161,169, 21,197, 16,102, 89, 25, 1, 50,151, 5,112,109,219,238, +214, 55,121, 86,181,190, 47,157, 45, 38, 71,119,247, 15,117,211, 40,186,188, 58, 46,203,201,236,248,188,154,158, 9,168,247, 61, + 19,205,102,199, 97,216,185,172,232,219,218, 7, 49,108, 11, 87,245,125,167, 18,235,229, 69, 91,239,145,217,185,140,216,118,245, +206,251, 96, 13,117,221,214,152,140, 80, 44,179, 72,172,251,190,221,109, 84, 37,207,171, 68, 61, 59, 62,121, 82,175,111,145,200, +102,230, 97,185,105,218,126,126,242,172,109, 59, 78,122, 0,180, 26, 98, 91,175,186,250,110,187, 93,101, 89,254,225,135, 63,154, + 85, 89,140,254,225,246,117,211,108,157, 53, 89, 94,197,126, 31,194,112,124,114,158,151, 69,215, 13,147,217, 98, 8, 97,185,126, +120,184,125, 91,148,165,203, 51, 47, 60,132,216, 7,145, 56, 24, 67,121,145, 63,253,232,217,249,227, 39,168,113,249,112,245,250, +237,235,151, 47,223,188,185,190,121,123,125,243,250,242,234,110,249,112,122,116,242,187, 63,253,234,139,207,190,140, 17,203,172, + 60, 61,153, 59, 50,119, 23, 23, 47,191,123,241,246,221,181, 34,127,254,213, 15,215,117, 61, 95, 76, 77,158,221,220, 47, 87,203, + 13,251,120, 84,102,165,203,210,238, 46,203,220, 1, 50,136, 68,192,168, 81, 4,223,135, 33, 18, 92, 22, 49,130, 18, 96, 84, 61, +128,124,213,164,138,203,184,167, 2,140, 96,172, 51,198, 28,154,149,169,235, 65,201,192, 71,233,211, 71, 88,228, 5, 91,118,214, +102,153,115,200,201, 91,103,136,152, 44,170, 26, 75,150, 9, 0,153,204,123, 47,133,104, 28, 13,219,204, 56, 90,244,200,164,172, +164, 2,130,228,198, 33,113,194,183, 35, 49,211,104, 15, 70, 5,229,132,116, 5, 50, 22, 70,236, 45, 90, 54,140,232,131, 39, 0, + 99, 44, 38,236,235,120,147, 29,233, 52,134, 13, 16,137, 72,221,117, 93,187,207,156, 99,230,204, 90, 0,140, 81, 12, 39,234, 34, +190, 87, 83, 37, 48, 78, 27,124,221,118,103,243, 50, 47,138,180,137, 77,150,187, 40,178,239,250,205,190,222,215,251, 56, 12, 65, + 35,255,187, 63,255,211,241,218, 56,166, 9,255,171,246,227, 72, 20,131,247, 40,104, 69, 96, 72,225, 63,144, 16, 14, 25,110, 76, +160, 8, 56,172, 12, 85,208, 24, 83,215,245,100, 90,141, 10,240,196, 45, 75, 14, 57, 66, 64, 58, 12,150,113,188,203,167, 57, 22, + 49,162, 27,127,126, 6, 68, 78,194,115, 28, 99, 56,233, 64, 23, 98, 66,228, 20, 65,132, 20, 95, 81, 85, 76,111, 67,105, 76, 13, +136, 33, 6,161,180,154,228,241, 75,160, 10,136, 34,193,249,241,249,219,139,183,171,237,126, 81,149,200,100, 93,150, 59,247,230, +205,197,221,122,253,187, 63,249,188,109,107, 69, 26,252,176, 56, 57,186,189,190,121,254,131, 47, 99,223, 8, 17, 36,100, 68,194, + 92, 38, 43, 0,142,253,223, 4, 84, 96, 99, 83,117,130, 76,242, 64, 81, 28,151, 30,169, 3, 6, 73,141, 64, 7, 90,100, 74,181, +211,104,161, 73,220,152,241, 57,154,222, 65, 40, 13, 30,199, 16,234,184,203, 24,171,124, 35,131, 51, 33,135, 70,112, 77,218, 81, + 31,182,222, 8, 4, 68,166,222,117,191,243,123,191, 55, 89, 76,131, 15,204, 35, 28,170,217,181, 89, 81,174,238,239,111,111,239, +209,111,206,206, 31, 63, 60, 44,251,253,154, 9,201,228,182,156,247,205,150,108, 53,180,141, 43, 23, 38, 43,135,253,109,223,134, +188,156,160,223, 71,229,163,163, 83, 24,214, 32, 67, 20,169,235,250,254, 97,115,179,220,186,194,253,225, 31,252,183, 89,238,118, +203,155,174,105,251,208,151, 25, 55, 77, 61,248, 88,101,206,102, 89,225,220,226,217,231, 89, 81,157,127,240,241,205,155,191,191, +124,245, 93, 49, 63,190,191,126,125,242,209,143,207,159,252, 32, 52,155,245,195,178,105,246, 57,161,168, 70, 69,107, 76, 49, 61, + 82, 68, 36, 27, 3,228,213, 60,207,167,190,217,108, 86,183, 15, 87, 47,242,106, 26, 68,251,174,111,246,251,190,219, 78,170,249, +180,154,222, 93,252, 23, 0,217,238, 86,157,200,209,100, 54, 59,125,186,188,187, 88,223, 95, 14, 96,145, 96,115,127,189,107,187, + 97,240, 81,168,235,118, 40,218,181,195,106,187,235,186,246,225,246,229,116, 50, 3,155, 1,178, 70, 49, 54, 91,175,111, 55,235, +251,232, 91,131, 66,232,155,245, 77, 86, 30,229,153,105,235,173,205,171,140,194,180, 42,171,197,153, 10,100,174, 42, 38,243, 40, +178,186,255,222, 15,131,115, 19, 69, 36,104,153,108, 89, 76, 9,218,135,235,215, 67, 80, 84,241,205, 54,115,166,243,177,221,175, +212, 22,245,182,137,177,101,227,234,205, 77, 62, 89, 52,237, 54,170,134, 24,251,193,159, 61,250,168,217,173,139,201,209,253,245, +139,213,102,229,178,242,233,135,159,116,251,245,253,253,187,205,230, 22,221,241,147, 39, 31,230,229,148, 68,135,126, 91, 55,219, + 8,236,125, 91,229,213,252,209,179, 73, 53, 87,239,207,158,126, 24,129,138,172,152,205, 23,125, 0, 97,103, 93, 37,160,150,134, +188, 60,106,187,122,182, 56, 58, 57, 63,126,246,236,163,199, 31,126, 92, 77,202,122,179,126,119,241,253,247,175,222,188,185,190, +121,115,121,249,230,242,250,230,238, 33, 70,253,201,151,191,248, 23,191,247, 47, 28, 75,110,244,151, 95,125,254,195,231,143,219, +245,246,213,119, 47, 94,127,255,250,122,185,153,205,170,127,242,207,127,246,245,155,139,111,191,125,117,118, 60,249,213,111, 94, +172,110,151,199,101, 81,230, 89, 10,163, 59,147,201, 33,174,203,204,108,141, 15, 67,140, 99, 80, 46,117,188, 1, 65, 5, 36, 66, +154,144, 91,226, 24, 34, 1, 58,107, 67,140,138, 96,137,162,168, 50,218,204,129,136,128,250, 24,172, 49, 10,154,186, 69,227, 46, +139,216, 75, 44,217, 36, 82, 84,102, 50, 85, 53,136, 25,155,241,109,254,240,154,155, 4,152,152, 8,143,160, 33, 2, 18,100,196, + 10,202, 72,170,234,172, 9,193, 7, 81, 4,204,152,153,115, 81, 32, 67,233, 80, 78, 3,109, 83, 24, 0, 12, 49, 50,106, 82, 82, + 3, 74, 58,109, 19, 62, 61, 72,204,172,179, 89, 6,136, 42,145,153,135, 40,168, 33,165, 76,210,117,207, 56,142, 81,125,240, 17, + 33, 55, 92,230,153,143, 35, 99, 39,168, 58,102, 99, 40, 42, 26, 70, 85, 32, 85, 5, 92, 53,221,204,217,201,180, 12, 49,186,204, +132, 56,178, 15, 85,213, 71,108,246, 91, 31, 98,148, 8, 72,252, 87,127,254,167, 7, 68, 60,143,244,153,145, 14, 60, 6, 33, 49, +165,191,117,204,164, 96,194,249, 80,218, 48,143, 39, 84, 34, 38,164, 71,115, 34,144,145,225,126,223,230,147, 10, 15, 39,141, 25, +195,149, 64,108,136, 9,148, 49, 9,189,198,103, 58, 32, 25, 68, 98, 96,132,120,120,202, 29, 68, 80, 32,122,232,112, 18, 51,162, + 69,144, 52,196, 7, 80,128, 0, 35,246,126, 84,161, 35, 25, 72,140,211, 49,156, 41,160, 49,221,241, 1,149,152, 92,158,205, 38, +249,111,190,249, 94,149,170,162, 96, 99,138,162, 84,141,223,190,120,125,122,118,252,244,252,184,233,189, 97,242,195,176, 94,222, +159, 62,122,210, 15,251,182,238,202,178, 34, 54,170, 17,198,237,121,210,193, 88, 78,194,166,131,210,230,112,177, 38, 29,211,158, +116,128, 65,194, 40,242,195,131,107, 27,136, 8, 71, 76, 95,178,187, 38,151, 12,198,180, 75,103, 51, 18, 51,222,255, 43, 18,149, + 82,229, 10, 17, 64,131, 31, 66,223,131, 10, 25, 51, 90, 68,198,117,117,250,147, 39,145, 48,155, 29, 29,157, 28, 69,145,195,151, +100, 31,212,119, 67,223,245,109, 59,108,183,235,201,236,100,113,250,248, 97,249, 0, 50,100,249, 28,137,134,253, 10,136, 53,122, + 59,153, 91,151, 73,191,182, 89,161, 18, 92, 89,109,182,251,114, 50, 49,121,134,195, 61, 34, 72,148, 93,221,220, 60,172,238, 54, +235,170,112, 95,125,252,201,126,223,248, 24,246,219,165,116,173,250,118,185,221, 89,107,202, 44,155, 20,213,252,248,177, 43,203, +217,226,241,252,120,190,186,191,158, 28,127, 80,228,217,246,225,134,144,135,122,181,190,254, 46,198,193, 50,237, 86, 55, 18,227, +230,225,214, 58,151, 25,123,127,127,179,223,239, 98,191,173, 38, 39, 97, 24,188,175,149,221,244,232,131,174,151,253,102,211,119, +117,189, 91, 91,227, 34, 64,219,172, 78,206,158, 14, 2,235,221,254,252,236,195,190,107, 86,203,235,229,195,109, 47,248,228,252, +113,145, 79,235,118, 87, 84, 39,170,169, 88,238,163,170, 32,169,104, 93,111, 38,213,121,179,122,141,106,216, 24, 17,105,247, 91, +166,124,126,242,216,216, 10, 81,179,172, 98, 87,214,155,229,166,174,187,253,125, 89, 20, 69, 94,216,188, 2, 50,251,205,114,232, +118, 97,104,171,201,145,239, 58, 87,204, 8,177, 40,178, 97,123, 71, 38,219,238,119,147,233,162,109, 26,182,134,137,156, 43,134, +208, 51,185, 65,176, 94,221, 12,190, 63,121,244,145, 12,237,110,191,114, 89,193,202,189, 31, 92, 54, 53, 89,185, 90, 61, 72,104, +167,211, 69, 94,206, 78,206, 63,144,161,182, 89,217,183,203,109,189, 63, 61,255,228,236,236,233,126,191,181, 54, 43,171,106,104, +183,138, 86, 8,202, 98,102,179,114, 49,155,123, 95, 43, 21, 67,183,235,219,166,154,206, 65, 6, 17,241,125,235,235, 7,180,147, +106,122, 52, 57, 57, 45,139,252,228,100,250,225, 71, 31, 45,206,206, 32,134,219,171,139,239, 95,124,247,234,245,187,139,187,251, + 87, 23,151, 23,215, 55, 77, 55,156,159, 61,254,215,127,244,199,159,127,244, 60, 2, 60, 61,157,253,254, 87,159,157,205,171,183, +175, 95,125,253,155,255,114,125,125,223,133,240,201,103, 31,238,218,250, 63,255,227,247,125,221, 54,237,240,230,205, 37,133,112, + 50, 41, 28, 17,168, 88, 68,203, 14,205,225, 69,214, 82,138,160,140,204, 40, 70,133,180,183,132, 40,170, 10,198, 88, 0, 13, 49, + 13, 53, 81, 17,188,143,204,134, 9, 85,200, 48, 51, 64, 12, 33,142, 46,108,151,182,116, 74,144, 66, 30, 62, 68, 69,200,152,189, +168, 49, 92,216, 76, 53, 58, 54,200,172,196, 65, 4, 37, 57,130, 88, 1,162, 68,107,205,104,186, 84,201,140,179,198,248, 16, 17, +208, 16, 42, 81,136, 33, 72, 66, 54,242,216,225, 33, 36, 70,102,210,195,150,111,220, 19, 24,134,145,236,146, 98,142,105, 15, 7, + 2, 80,102,185,205, 93, 94, 84,128, 22, 16, 36, 70, 6,100, 99,199,135, 27,179,177, 38,105, 35,152,168,112,206,101,101, 72, 78, + 78, 54, 42,154, 91, 55,120,159,124,223, 18, 53,133,248,214, 93,144,232, 23, 85,158,248, 57,162,239,191, 25, 96,131, 81,177, 31, +122, 4,224,148,156,255,235,191,252,183, 48, 66,192, 18,138, 65, 15, 71,234,120,118,170,106,140, 81, 52,140,249, 34, 64,136, 99, + 70, 5, 14,233, 78, 60,248,130, 82, 47, 33,169,162,131, 31,216,100,206,216,180,234,102,164,131,176, 15, 65, 21, 36,226, 24, 97, + 76,255,166, 2, 33,168, 36, 64, 29, 28,190,246, 8,149, 4, 56,132,229,211, 64, 71, 65,131,168, 0,202, 1,153,158,126,171,114, +120, 41, 72,131,154,136, 2,233,112, 71, 72, 53, 49, 64,102, 85,145,224, 79,142, 78,114,166,111, 94,189,158,148,165,203, 50, 99, + 76,158,231,251,221,238,242,250,238,171, 31,253,144, 20,163,234,208, 15,179,227,243,182,217,159,156,158, 53,187,157,201,114, 38, +107, 83,183,246, 16, 20,125, 79, 25, 75, 98,190,164,141, 79,223, 4,211,248, 72, 76, 40,249,145,134,193, 60,190, 11, 37,134,251, +200,204,193,145, 91,150,126,139,214,164, 27,191,190,103,248,188, 55, 57,209, 97, 72, 3, 16,250, 62,246,173,134,160,209, 35, 25, + 54, 38,133,159, 96,188,227,143, 15,148,162, 58,178, 69,201,198,176,225,100,140,173,183, 77, 12,131,181, 38,203,236,229,235,239, +103,179,249,226,244,108,185,220, 16,103,170, 34,190, 33, 54,160,193,119,141,155,156,128, 12,125,239, 53, 34, 50,213,219, 61,162, + 56,134,161,109,202, 66,178,188,100,196,205,102,243,230,242,122,187,171,159, 60,254,240,231, 95,253,158, 40, 72, 28,186, 97,224, + 24,119,155,101,219, 5, 16,157, 85, 89,158, 87,166,152, 77,230,199,199, 79,158, 79,166,199,235,213, 3, 57,135,104,194, 16, 46, +223,126,123,114,122, 82, 76,142,234,237,122,119,119, 25,135,166, 42,103,117,219,116,125,215,238,238, 55,251,125, 86,206,250,118, + 11, 26,178,162, 90, 28,159, 75,236,235,122,231,187,218,135,110,126,116,154, 87,199, 97,232, 0,141, 69, 1,140, 26,112, 58,153, +150, 69,222, 12,190,217,109,192,100,236,166,177,190, 93,156, 60, 65, 91, 52,251,181, 69,201,108, 54,116, 77,215, 53, 16, 35,146, + 9,125,167, 42,157, 15, 89, 54, 1,245, 72, 56,153, 31, 3, 6, 84, 30,154,181,130, 26, 54,108,172,250,193, 71,248,228,211, 47, + 17,176,235, 58, 68,246, 93,227, 92,214,245,173,115, 25, 33,251, 24,172,201, 13, 82,232,183,213,244, 52, 43, 38, 15,203,107,231, +242,217,226,108,187,186,217,172,215,196,204,198,169,120, 33,203,100, 38,139, 99, 12,221,118,191,158, 78,143,137,140,205, 75,203, +108,160,167,172,106,246, 91, 37, 12, 62,174, 55,247, 97,104, 95,190,252,135,135,219,139,199, 79, 62,250,252,203,223, 25,250,166, +235,187,106, 50,233,247,235,162,156,180,205,154,171, 5, 71, 79,164, 69, 81, 20, 60, 24,138,197,226,241,126,179,100,195, 39,103, + 79, 84,251, 32, 28, 99,104,234, 77, 94,150,147,197,113,206,254,236,209,201,249,227, 15,141,165,229,213,187,183,175,191,255,238, +197,183,175, 47,175,222,222, 92,191,186,188,186,186,187, 43,179,252,151, 95,253,211, 95,252,228, 39,243,217,145,133,250,159,124, +241,244,203,143,206,187,186,249,246,235,175,191,125,241, 34, 42,126,242,197, 15,214, 77, 93, 84,101, 57,157, 92,221, 60, 60,220, +222,231,140,199, 85,153, 49, 29, 90,143, 68, 72,100,216, 36,186, 10,130, 4, 1,196,164, 10,138,160, 73,228, 60, 58,162,210, 77, + 77,100, 4,188,140, 66,202,247,231,195,216,239, 9,170, 2,106,198, 15,214,120,158,190, 23,235, 16, 17, 33, 43, 98,198,233, 4, + 23,102, 70,226,168,128,168,140,144,156, 27, 99,141, 39, 25, 38, 84,152, 77, 18, 95, 70,137,105,208,170,105,247, 58,222,149,212, +144, 49,196, 52,150,196, 33,140,142, 76, 74, 53,207,132, 27, 73,233, 13,102, 78, 37, 85, 17,136,170,150, 8,152,156, 43, 50,103, +201,152, 97,240,233,106, 28, 37,240,225,205, 28, 1,173,115,198, 24, 66, 18, 68,203, 12,196,168,104,153,104,132, 24, 35, 18,129, + 40, 32, 50, 99,237, 67,221,119,199,101,110, 76,218,100,164, 94, 46, 41, 0, 27, 84, 33, 67,168, 64, 33,120,199,108,152,249,175, +254,226, 79,199, 80,185,142,237, 71,122,143,183, 5, 56,232,132,198,124, 17, 41,176, 65,100, 30,140,205,130,156, 0, 0, 32, 0, + 73, 68, 65, 84,169, 91,122,200,202,143,128, 8, 2, 68, 54,227, 52, 95, 69,122, 31,167, 69, 38, 99,153,115, 44,201,210,129,212, +131,230,125, 1, 85, 19, 32, 14, 36, 97,126, 14, 97,168,145,233,169,233,107,165,104, 57,168,130,160,136, 79,192,156, 20, 38, 7, + 9,240,219,160,108, 50, 46, 50,140,169,126, 69, 76,240,160, 3,181, 18, 0, 81, 67, 8, 39,103,243,251,251,135,229,166,153, 79, +166,108,172,181,156,187,236,155, 23,175, 0,233, 71, 63,124,222,116,157,181,110, 58,155, 94, 93,188, 2,180,170, 61,129, 49,185, + 69,193, 0,202, 68, 34, 2, 64,196, 12,140, 32,169,113,108, 0, 85, 98, 24,105,198, 35, 26,159, 71,149,251,161,125, 52,150, 7, +198,191,108, 26,191,201,180,109, 56,120, 10, 14, 30, 1, 60, 44, 20,128,153, 15,170, 62, 52, 8, 49,138,138,104,240, 49, 6, 98, +195, 89,110,141,211,180,124, 57, 64,233,137, 16, 20,109, 86,186,204, 0, 8,168, 18,225,126,189, 75,127,227,229,164,106,235,250, +230,118,125,114,254,216, 49,222,190,123,197, 54,247,125, 27, 99, 4,204,141, 97, 53,133, 97,146,110,131,156, 1,128, 53,212, 52, +245,217,227,103, 81,201, 55, 43,199, 1, 1,135,182,189,186,127,184,190,189,223,181,245,143, 63,251,242,209,249,163,221,110,139, +174,240,125, 19,187,102,187,221,228,121,110, 29,206,139,130, 92, 57,127,250,217,217,135, 31,151, 85,209,245,245,126,179,137, 10, +177,223, 7, 69, 85,115,114,124,214,109,238,114,151,147, 14,165,203,135, 97,120, 88,221, 21,174,128,232,149,179,114,178,152, 45, + 30, 25, 91, 0, 42, 35, 34, 80, 16,218,110,239, 93, 81, 89,223, 32, 64, 49, 61, 65,130, 42,207,200, 77,216,229,161,190,119,229, + 68, 20, 30,238,223,176,155,176, 49,251,253,110,177, 56,137,210, 27,147, 5,145,174,175,125,240,174,152,135, 40,195, 16, 66,232, +156, 5,118,153,113, 69, 86, 77, 12,130, 53, 78, 40, 35, 67,108,216, 16, 26, 82,102, 14,126,200,138,178, 44, 74, 0,174,155,186, +219, 47,183,155,155,197,124,214,111,215,213,228,168,217, 45,157,171, 50,107, 1, 99,223,213, 2,209,217,172,107,118, 89,230, 10, +147, 33,241,124,126, 26, 37, 56, 54,193,119,179,217,162, 44, 43, 25,134,174,111,144,204,110,117, 99, 45, 17,179,201,139,251,235, + 55,139,179,143, 89,181,110, 6, 8, 91,138,253,197,245, 53,101,139,143,158,126, 32, 67,187,218,110,119,219,141,198, 33, 4,143, + 26, 39,211,227,160, 24, 1, 89,177,152, 28,125,252,201,199,177,175,129,109, 57, 59,217,173,239,212,247,100, 41, 47,231,168,222, +123, 63,157, 45,206,159,156,159,206,167,103,143,158,148,121,213,213,155,203, 55, 47,190,123,241,221,155,119,151,111,111,110, 94, + 95, 94, 93,222,223,119,189,255,249,151, 63,253,229, 79,126,150,229,101,108, 30,126,250,217,179, 95,254,248, 83,163,253,219,151, +223,125,253,205,247, 87, 55,247, 31, 62,127,246,147,223,253,217,139,183, 23,215,151,215,211,105,245, 31,127,245,155,102,179, 59, + 46,139,210, 90, 38, 29, 57,169,136, 6, 17, 13, 27, 54, 72,140,132, 17,128,211,145,198,137, 43,160, 18, 53,170, 26,102, 32, 4, +162, 81, 39, 65,168, 18,129,192,160, 21,209, 68,149, 73,246, 84, 80,176,134, 17, 48,168,138,136,177, 70,223, 39, 45,144,162, 10, + 17, 51, 27, 4,240, 65, 85,128,205,216, 28,100, 67,168,208,197, 48,132, 65, 20, 45, 51, 17,143, 84, 21, 74, 38, 5, 80,145,195, +141, 50, 93,108, 15,218, 59, 50,128,104, 12, 48,179,143, 34,170,198, 82,140, 0, 49, 29,184,163,142,129, 82, 74, 26, 81, 36,166, +227, 17, 5, 18,141,128,137,125, 8, 26, 2,162, 14,209,163, 34, 1, 43,130,177, 12,135,161,115, 8,130,136,206,152,168, 82,228, + 14,121,236,222, 31, 60, 70,202,204,134,168,238,195,195,174, 57,171,178,162, 40,198, 25, 63, 40,146,121, 79, 94,147,212, 54, 7, +116,198,176, 53,134,152,255,250,207,254, 36, 61,210,244, 0, 40, 72,124, 72, 28,233,236, 7, 60, 61, 34,191, 63,118,145, 85, 83, +142,227, 80,231, 25,151, 18, 9,146, 54, 62,148, 25,241,246,126,125,114, 52, 19, 72, 54,139,113,199,105,172, 19,141, 49,142,125, + 37, 77,176,178, 3,122, 31,198,159, 42,189,139, 64, 66,152, 43, 42,162, 16, 51, 2,106, 20, 4,149,148,180, 73,136,124,137, 32, +138,152,156,223,227,212, 25, 81, 65, 98,194,166, 19,190, 95, 32,143, 79,163,180, 84, 33,165,163,233,228, 63,255,227,119, 34,178, +152, 77,153, 77, 85, 85, 26,252,175,126,243,205, 15, 63,254, 96, 94,149,189,168,111,219,160,212,238,214,189,215,233,116, 74,200, +198,101,132,140,227,136,102,132, 22,179,181,108,140, 74, 84,145,177,255, 6, 35,121, 46,253, 13, 18, 39,221,205,120,120, 39, 1, + 99, 26,118,165, 63, 48, 21, 32, 34,228, 68,167,123,255, 10,115,104, 6, 51,143, 69, 2, 26, 7, 97,233, 17, 34,132,108, 44, 91, +135, 9,211,129,172,168,170,137, 33,193,100,140,196,232, 92, 78,177, 71,182, 72,236,123,175, 10, 9,182,227,202,106,245,112,119, +119,187,122,244,228,204, 50, 46,239,239, 77, 86, 25,227, 68, 48,134, 14, 84, 99,148,188,156,228,213,113,219,236,136,193,251, 33, +203, 43,137,186, 93,221,249,161,165,216, 70,223,175, 54,187,183, 87, 87,239,110, 30,186,161,255,252,139,159,158,158, 60,106,219, +182,222,220, 74,223,119,205, 30, 33, 32,219,194, 48,219,202,204,142,159,127,254,101, 81,205,124,219, 12, 93, 31, 5, 12,162,134, +182,107,187,249,116,210,239,111,247,235,229,195,242, 62, 12,173,136,236,154, 38, 51,152, 91,123,245,112, 31,145, 13,232,208,181, +237,254,206,184, 28,217,236,118,187, 24,250,114,241,168,200,203,174,217,102,185,107,155, 54, 4,111,140,105,219, 58,134, 97,113, +246,108,232,219, 48,116,153,171,200, 86, 16, 59, 54, 5, 89, 99, 9,187,253,138,109,110, 76, 62,180,219,208,109,217, 80, 89,205, +115, 99,206,207,158,196,160, 64, 48,159,205,217,228, 67,183, 85,241, 10,104,141, 35,182,251,205,141,113,229,252,236, 67,107,237, +126,117, 95,215,117,179,186,100,228,199, 79, 63,210,208, 39, 90, 0,146,233,125, 55,244, 13,178, 85, 85, 9, 3,155, 92,193,244, +131,239,187, 46,170,180,109,227,251, 14, 0,189,247, 54,207,103,211,163,229,242,214,216, 44,138, 26,162,217,217, 7, 8, 74,156, +117,237, 94, 12, 33,114,179,223,182,245,189,216,242,201,179, 47,116,127,157, 85,243, 94,248,234,221,139,160, 70, 37, 26, 12,147, +163,199, 81, 67,179, 93, 50,229, 26,186,118,183,100,107,140,181, 38, 63,126,184,122,187,222,172, 29,163, 45, 22,251,237,198,183, +235,211,211,163, 39, 31, 60, 62, 59, 59,153,206,231, 49,248,229,221,197,235,239,191,253,205, 55, 47, 94, 95,221,188,189,186,190, +184,186,121, 88,175,143,166,199,191,255,139,223,249,131,127,246, 47,231, 71,231, 39,211,242, 15,126,241,195, 79,159, 63,189,121, +247,246,191,252,253,111,222, 92,220, 24,151, 45,142, 23,219,102,255,235,111, 95,132,190,127,119,125,127,117,113,147, 35,206, 75, +151,204,215,105, 37,133, 9,160,193,108,141, 33, 34, 69, 80, 21,131,135, 63,103, 78,200,188,131,204,136, 15,155, 41, 66,209, 49, +162, 65,132,162, 98, 13, 39, 38,159, 87, 1,145, 44,203,198, 20, 10,147, 49,108,144,130, 70, 68, 98,235, 64,213, 25, 78, 87,114, + 34, 50,140,136,152, 20,107, 9, 36, 34,170, 26, 65, 8, 28,219, 4,246,114,140,170, 32, 34,170,146, 54,130,138,191,181, 15,165, + 60,136, 2, 2, 74,102,140,168,198,152, 68, 86, 16, 69,140, 97, 54, 9, 39, 5, 99,254,132, 65,229,192,184,196,196, 32, 36, 0, + 8, 26, 83,176, 48,132, 16, 37, 90,102, 34, 74,224, 66, 4, 48,236,128, 14, 0,250, 36,221,182, 28,163,104, 12,104, 76,210, 95, + 35,162, 99, 71, 8,187,118,120,216,213,167,147,108, 49,153, 4,197, 16,252,248,104,132,241, 88, 30,115,212, 10, 4,192,100,202, +188, 96, 50,233, 25,152,104,238, 99,240, 46,141,218, 15, 30, 60, 76,131, 19, 34, 4, 34,149, 36, 11, 26, 3, 55,108, 80, 66, 74, +120,164,158, 17,230,152, 16,143,138,192, 54, 51, 32,105, 65, 33, 42,112, 8,122, 67,240, 62, 73,207,211, 46, 52,129, 6,112, 44, +252,104,144, 48,134,216,129,147, 23, 73, 14,224, 69,149,152, 64,196,128, 72, 18, 84, 68, 81,210,232,159, 70, 55, 87, 74,183, 38, +178, 40, 65,210,217,137,188,159,112,164, 93,238,168,200, 38, 66,164,179,199,143,127,254,163, 79,254,211,223,127,183,152, 84,167, +143,206,163,234,243, 15, 63,186,186,189,255,223,254,253,255,245,191,254,213,159, 81,244,192,230,147,207,126,180,223, 92,122, 79, +153,163, 97,232,141,205,152,232,189, 17,117, 12, 1,197, 32,122,208,124,131, 0,140,250,174, 20, 90, 71,228, 3,230,147, 84, 66, +194,206,128,200,184,139,161, 67, 92,104,156,215, 36, 65,251,200,197, 31,223, 99, 12,114,178,245, 29,244, 99,170,168, 24, 51, 91, + 64,130,200, 51, 19, 25,133,120, 0,201,167, 82, 85, 84, 69,227,242,244, 46, 17, 36,118,109,207, 4,168,194,198,198,193, 7, 47, + 24, 7,151,101, 46, 47, 92,158,139,130, 53,232,141, 1, 45,178,162,232,214, 75,128,208,172,151,209,215,110,114,164,128,121, 89, +190,250,250,111,103,139, 39,219,118, 37, 28,163,226,174,174,239, 87,219,102,232, 20, 96,102, 20,128,188,239,131,104, 12, 26,186, + 38, 70,177, 86, 17, 89,200,124,248,241,167,179,197,105,211,250,213,187,127, 4, 59,141,209, 71,129, 56,116,251, 93,237, 50,123, +119,115,223,214, 75, 11,116, 52, 43, 1, 34,104,118,115,183, 69, 37,239,133,180,111,129,103,243, 9,241, 84, 67,183, 31,122, 87, + 30,147, 6, 63,172,187,129, 63,248,228,167,243, 42,219,213,221,190,107,187,166, 6, 68,231, 92,229, 92,232, 80, 84,123,239, 93, +225,216, 98, 93,223, 91, 58,203, 51,183,215, 91, 18,175, 42,121,181,232,155,189,115, 69,110, 76,235,227,106,243,208,246,193, 50, + 69,223, 15,126,232,155,109, 8,195,244,248,105, 94, 84, 97, 24,178,124,166, 49,114,108,189, 2,160,160,168,115,213,116, 50, 93, + 44,206,111,175, 46,242,233,153,111,235,162,154,132, 62,250, 24,187,182,182,206,213,187,123, 54,153,130,134,190,107,135,166, 92, +156, 26, 19,125,143,189, 31,202,114,222, 55,187,203,253, 62,159, 76, 75,231,238,239,239,170,106,230,200, 70, 98, 54,230,232,209, +243, 16,245,229,197,119,193,199, 15,158,126, 58,173,114,203, 84, 45,206,141,157, 10,244,121, 49, 99, 91, 41, 12,182,152, 70, 0, + 67, 46,198,104, 8, 56, 47,125,191, 79, 55,159,235,203,151, 49, 6, 87, 76, 57,183, 76,236,202,108, 49, 63, 89, 44, 38,211,217, + 84, 4,118,155,245,245,219,151,223,190,248,246,221,213,205,229,221,221,221,242, 97,181,221, 89,182,191,255, 59,191,255,211, 47, +127, 62,248,190,105, 54, 95, 60, 93, 60, 61,121, 50,248,230, 31,126,245,171,215,175,223, 70,196,103, 63,248,240,254, 97,133,185, +121,242,232,252,213,223,252,250,106,179,157,217,172,154, 26,163, 35,169,157, 80,251,144,168,176,224,140, 65, 50, 81, 67,210, 79, +130,170,143,162, 72, 76,202,196, 49, 2, 17, 43,104,140,162, 2, 76, 38,125, 74,137, 40,170,128, 38, 50,187, 1,210, 24,162, 15, +193,176, 1, 50,221, 48, 88, 99,152, 76,114,225,197,228, 48, 82, 68,145,204,177,247, 10, 42,214, 25, 85,209, 8,200,148, 27, 4, +165,160, 81, 65,211,231, 35,135, 12,144, 80,132, 0,162, 74, 58,204,144, 40,136,210, 33,135,173, 72,162, 18, 21, 24,213, 24, 2, +114, 62, 65,105, 65, 18, 14,209, 57, 78,222, 57, 80, 48, 72, 74,128,162, 49,106,202,227, 39,250,187,181, 20,135, 24, 35, 90,103, + 53,106,219, 15,134,146,105, 89, 1,209, 56,198, 17, 25, 21, 41,209, 95, 9,211, 21, 48, 70, 73,198, 25, 82, 72, 10, 64, 34, 20, + 17,239,195,126,232,115, 75,179, 34,247, 2,162,146,101,142, 13, 15, 9,105, 9,160,239,121,244, 18, 77,122,209, 79, 27,221,191, +254,183,255, 22, 70,144,239, 72,254, 74,239, 42, 4,105,162, 64,163, 5,232,160, 64, 65, 98, 96, 64,136,137, 91,175, 7,233,118, +162,236,195,251, 4, 14, 40,147, 81,223, 54,145,143,170, 66, 20, 12,189, 87,159,143,247,103,192, 36,168, 82, 34, 98,155,134, 53, +239,215,168,114,128,100,165,127,108,212, 37,225, 1,193, 9, 32, 8, 17, 4,226,248, 86, 1,163,209, 85, 64, 0, 65, 35, 32, 18, + 42,165,121, 79, 10,134, 38, 71,176,198,241, 17, 69,132, 4,162,250,228,244,244,205,155, 55,171, 93,125,114,114,194, 68, 81,244, +120, 49,251,246,219,239, 93,150,253,224,217,121,106, 12, 22,213,244,245,247,191,185, 95,174,171,106, 66,204,198, 26, 50, 22,245, +160,242, 2, 21, 77, 25,199,148,236,228,145,132, 57,190,142, 16, 2, 16, 50,160,164, 96,254, 56, 84, 18, 57, 68,188, 14,255,143, +198, 39, 96,122,133, 18,162,100,246, 30,177, 67, 18, 71,193, 35, 30,188,183, 42, 17, 20,137,152, 51, 67,236, 84,131,170, 16,165, + 2, 29, 17, 16, 16,106,192, 98, 50, 97,151, 49, 82, 8,106, 8,251,190,115,153, 35, 54,153,163,229,195,170,238,195,217,241, 25, +163,191,187, 91,123, 47,161,223, 71, 31, 20,130, 53,206,100, 57, 34,249, 40, 68,232,123,111,157,241,253, 32,194,204,102,168,151, +185, 1, 85,184, 95, 47, 47,174,110,234,174, 47, 93,254,203,159,253,226,126,187,241,253, 64, 68,210,237, 99,191,247,162,147,204, + 69,165,199, 31,125,252,193,231, 95, 69,209,216, 55, 69, 53,151,232,219,253,182,204, 74,244, 77,240, 97,191,126,216,110, 87,147, + 34,159, 58, 83,247,109,215, 14,235,186, 93,239,119, 65,194,174,109, 38, 85,229,178,172,111,247,243,227, 39, 49, 74,219, 54,140, +154,226,163,207,158, 60,211, 97, 83,150, 71, 16,187, 24,194,110,191,149,208,151,147,227,190,223,152, 98,106,108,150, 87,211,161, +221,103,249,220,100, 51, 38,106,238,223,102,211, 57, 25, 71,214, 74,240,200, 25,160,194,176,204,242,162,238, 2,145, 35, 66,100, +102, 66, 85, 36,227,156,113,190,223, 24,107, 69, 52,244,245,233,241,233,116, 50,147, 97, 48,150, 93,158,177, 49, 55,111,191, 25, +134,182,235,218,193, 15,109,189,202, 11,151,229,133,181, 22, 1, 16,172, 42,250,190,115, 89,225,125,147, 27,103, 93,161,234,243, + 98,218, 13,181, 2, 75,236, 69, 2, 8,122,239,217, 98, 91,215, 2,220,110, 46,239, 87, 15,239, 46, 95,158,158, 60,121,254,209, + 15,202,233,169,239,106, 36,147,151,149, 82,182,190,125,201, 8,179,147,167, 67,187,170,166, 83, 13,190, 93,221,230,229, 76, 68, + 33, 6,206,220,100, 50,157, 31,159,173,214,173, 42, 28,159,156,103, 89,177,152, 87,167, 39,213,108, 62,173,166,211,110, 24, 86, +119, 87, 47,191,251,205,175,127,253,235,239, 47, 47, 47,111,111, 47,174,175,183,245,254,211,231,159,253,247,127,242,151,159,124, +248,169, 31,186,227,138,127,239,139, 15, 22, 37, 93,190,125,243,221,215,223,189,189,190, 61,127,114,250,233,151,159, 44,235,253, +122,185, 41, 74,247, 31,254,230,239,135,125,125, 94, 77,203, 60, 79,106, 64,227, 18,145, 9,149,209,178,117,134,141, 49,173,239, + 15, 59, 60, 5,196, 16,211, 50, 27,147,201,250,240,218,138,137,208, 21,162,152, 36, 48,196, 4, 43, 81,213, 24,130, 34,162, 99, + 22,213, 40, 33, 81,216,211, 0, 54,104, 58,112,152, 8,148, 49,248,177,173,157, 94,225, 9,136, 13,137,128, 15, 33,196,192,137, +213,113,120, 75, 0,144,180,220,146,148, 7, 60,132,208,144, 80,144, 82, 50,129, 16,153,145,157, 53, 72,132, 24,162, 70,149,164, + 22, 73, 41, 6,195,148,240, 33,137,142,251,126,143,120,200,179, 41, 51, 91,195, 33, 6, 85,180,214, 36,195,225,168,230, 99, 82, +129, 16, 35,155, 20,185, 65, 51,142, 49,210, 96,136, 9,148,201, 70, 85, 67,148,182,193,203,182,139,189, 63,155,148, 2, 86, 33, + 18,113, 58, 18, 13,145,136,166,129, 1, 35,105,146, 65, 19, 50, 27,195,198,107, 52,154,214, 33,163, 91, 68,248,183,134, 33,100, +128,209, 32, 13, 32, 18, 15,218,232,228, 9, 98, 72,220,171, 49,227, 50,178, 30, 85, 35, 37,223,180,168, 2,158, 30,205, 94,220, +236,240,124,174, 49,142, 10,246, 3, 69, 82, 71,213,201, 88,203,140,222,115,122, 83, 24, 23, 32,244,222, 93,164,135,147, 93,100, + 68, 1,129, 14, 4,170, 64, 2,145,233,144,227,161, 20, 94,209,148,136, 84, 28,161, 5,100, 57,189,118,232,152, 13,226,131, 53, + 67, 1, 9, 84, 76,102,255,232,159,253,252,255,248, 63,255,223,119,151,151, 63,248,244, 99, 80, 87,228,103, 63,254,252,211,255, +240,159,254,243,143, 62,123, 86,100,102,215,108, 77,150,157, 61,122, 4,144, 47, 22,147,213,114,195,236, 44,233,104,153, 79,246, +117, 60, 28,207,248,219,217,153, 15,129,217, 28,236,144, 49, 17, 31, 84,129, 17,226,200, 83, 56, 60,177, 0, 18, 83,126,252,157, +140,112,130,164, 45, 76,205, 92,129,247,188, 8, 29,173,179, 56, 66, 45, 0,148, 36, 14,170, 64,204, 35,186,255,224,131, 76, 26, +112, 0,137, 33,250,174, 35, 66,114,153,177,108,243, 76, 85,155,221, 6,165,243, 58,204,170,133,134,174,223,173,179,201, 49,160, + 49, 16,251,110,227,138,169, 10, 16,104, 64,140, 40,209, 55, 93,167,121, 89, 40,178, 97, 32,199, 49,202,224,227,224,189,134,240, +244,147,207, 49,159,247,219,203,233,116,209,109,238, 66, 95, 71, 4,198, 56, 4,153,157,126,112,246,236,147,174,217, 18, 87, 26, +187,245,253,205, 16,134, 24,194,126,123,247,112,115, 81, 84,167,113,168,213, 55, 3, 14,131,232,122,189, 33, 50,203,237, 14, 24, +251,125, 93,239,182,134,205,220,229, 81, 36, 6,239,138, 73,169, 88,111, 87, 82, 20,229,244,232,104,177,104,107,192,188,148,122, +217,180, 77,140,234, 12,134,216,247, 67, 40,226,206, 32, 69,208,204,101,210,109, 61,185,216, 14, 68,198,215, 91, 71, 70,144, 67, +191, 87, 42,242,172, 44,167,147,253,110,141, 49, 8,196, 40,193, 88,174,102, 19, 21,180, 54,151,232,157, 45, 39,121,222,113,182, +139,241,254,225,190,200, 55, 77,211, 84,147,217,208,118,141, 42, 81, 86, 77,103,113,183,243,190, 39, 37, 17,106,247,219,180, 22, + 26,186,118,232, 7,231,178,190,173,153,173, 53,166,233,154, 24,176,116,184,233,219,162, 90,128, 39, 25,122, 59, 61,153,103,185, + 53,102,121,119, 57,132,110, 24, 90, 59, 61,125,156,229,179,220,173,239, 46,170, 35,216,109,239,171,217, 41, 15,144,217,118,113, +242,200, 58, 27,200,204, 22,143,250,118,155,103,133,177,206, 26, 82, 31,119,235,119,229,100, 78, 54,103, 99, 44,199,117,221, 62, + 49,225,228,248,168,154,149,101, 81, 68, 9,203,187,219,205,253,237,155,215,223,191,188,120,247,238,246,246,226,250,102, 87,215, +139,217,226, 15,127,247,143,254,201,207,127,135, 98,219,215,235,175, 62,125,244,244,180,218,173, 55, 95,127,251,221,237,253,106, +190,152,156,156,157,244, 49,254,237,175,191,206,173,123,245,246,234,226,205,117,153,217,233,209, 49,234, 8,115, 53,142,210,199, + 46, 32,103, 99,217, 26,124, 8,214,176, 68, 13, 26, 25, 57,213,240,144, 24, 84, 65,116, 8, 65,130, 26,147, 92,170,130, 68,150, + 77,170,253,228,153,233,135, 16, 35,160,162, 37, 4,196, 33, 70, 4,101, 99, 52,136,162, 48,154,116,174,165, 74,121,240,209, 90, +195, 25, 74, 28,213, 15, 6, 72, 65,130,136, 70, 33, 34,209,113,180, 78,204, 16, 5, 8,162,160,140,222, 15,140, 41, 19, 50, 14, +138, 1, 68,152, 9, 1,125, 76, 67, 4,245, 18, 19, 46,139,129,211, 60, 56,109,139, 1, 48,170, 32, 37, 15, 19, 6, 21, 28,171, +149,160,160,101,150, 9,104,244,193, 57,151,216,130,160, 74,204, 72, 42, 1, 84,212,176, 37,195, 32,193, 50,167, 15,171, 33, 4, + 67,226,189, 97, 6, 96,107, 88, 6,141, 81,216,224,190,237,135,182, 61,158,149,232, 28, 8, 36, 79, 8, 3, 42, 81,148,212, 70, +210,224, 21, 29, 89,230, 36,125, 72, 55, 68, 82,224,255,241, 47,255, 28,198,246, 15,209, 72,114, 72,135,225,248,118,112,184, 95, +114,154,213, 28,230,216,240, 94,179,148, 46,245, 35, 98, 75, 14,216, 96, 0, 0, 45,178,252,237,197,197,124,113,108, 71,119, 35, +140, 98,189, 68,187, 25,239,250,138, 68,108, 80,198, 23,134,180, 34, 68, 72,251,130,195, 47, 46, 61, 54, 71, 33,121,242, 28, 43, + 40,210, 97,210, 50, 46,145, 83, 39,120,124, 63, 24, 23,140,240, 62,248,163,128, 60,146, 20, 32,205,254, 80, 1, 98,152,206,102, +187,237,246,226,234,174,176,217,236,120, 62,244, 67,158,101,203,229,102,179,111,127,254,197,243,174,247, 18,195,221,205,125, 63, + 12,243,227,147,253,102,229, 76,230,178, 12,229,208, 56, 26,179,139,233, 27, 76, 96, 5, 0, 68, 54,227,251,208,216,196, 2, 69, + 66,145, 56,254,232,108, 21, 5, 98, 68, 38, 0, 26,141,224, 99, 6,149, 15,165, 93,132, 67, 45, 56,101,204,210, 43,146,140,104, +186,164,136, 81,149,244,227,152,113,194,150, 2, 52,156, 50, 88, 69, 81,205,144,176,109, 7, 4, 84,241, 69,206, 10,132,192,113, +104,110,175,239, 59, 15,179,105,229, 50,115,121,249, 16,252,128, 10,214,229,169, 76,128, 49,248,174,141, 68,126,191,201,138,194, +247, 33, 70, 65,191, 5, 38, 19,183, 73, 26,247,230,250,246,118,185,236,188,255,225,199, 63, 48,161,117,197, 52, 52,123,223,212, +237,230,174,245,126, 86, 76,148,233,195, 31,126,117,116,254,164,221,109,156,115,211,147, 15,218,166,235,183,203,122,125,101,109, + 97,140,205, 51, 75,204, 57,103, 93, 83,199, 40,189,232,126,187, 14, 8,165,205, 55,187,141,117, 89,149, 59,103,204,209, 98, 33, +170,205,126,215,117, 53,187,114,113,124,222,214, 59,136,189,203,202,205,190,185,189,121, 27, 49,223,239,215,211,249,137, 14,141, + 97, 39, 50, 0, 66,136,218,251, 16,154,135,227,179, 15,252, 48,212,155,155,124,114, 76, 68,174,156,151,147, 89,150, 57, 6,109, +247, 75, 31,116,240,123, 66, 86,136, 32, 93,140, 42,126,200,178,124,232,107, 54,121, 20,159, 57, 6,141,253,224,219,118, 48,164, + 49,120,227, 50,118, 5,136,206,103, 11, 16, 25,134,182, 40,167,189, 31, 92, 86,177,117, 49,232,234,225, 74,128, 77, 58,128,217, +130,192, 48,244,192, 72, 4,126,232,145,108, 68, 41,242, 28, 20,230,211,227,135,229,187,235,213,114,191,219,158,159, 63, 59, 57, + 58, 33,114,229,226,220, 90, 87, 78,143, 1, 89, 21, 66, 24,182,235, 27,147, 79,201,228,205,126,103, 25,243,124, 14,138,157,239, + 21,140, 53, 1,144, 57,203, 39,213,220, 21,185,244,155,103,207, 30, 61,122,244,104,113,188, 96, 99,187,118,255,112,253,238,205, +203, 23, 95,127,251,205,139,139,183,151,119,119, 23,183, 55,117,221, 60,123,242,193,159,253,235, 63,126,246,193, 15,183,171,219, +179,137,251,242,249,105,105,244,205,171,151,255,240, 15, 95, 7,137,121,145, 7, 17, 83,229,222, 15,223,125,255,182,221,181, 19, + 99,143, 38,149, 25, 95, 82, 37,141, 83, 84, 49,202, 40,181,176,198, 72, 82,175,165,216, 71, 34, 34, 26,131,138, 68,104, 82, 14, +122, 60,107,240, 32, 60, 98,132,145,237, 46, 81,130,138,170,102,142,129, 72, 36, 42,162,177,196,201, 71,151,252,113, 34,134,153, + 57, 53,158,128, 13,161, 1,245,202, 68,134,199,117,215,193, 21,145, 14,113,176,204,169, 17, 58, 4, 25, 41, 44,100, 0, 1,153, +249, 16, 40, 78,183, 68, 99, 9, 20, 99,148,116,169,125,223, 47, 97,194,168,224, 12, 89,231, 44,178,138, 40,104,110,242,132, 42, + 87, 21,139,148, 14, 54,195,134, 0, 6, 31, 8, 34,115, 90,154, 41, 34,165, 72,184,247, 66, 76, 76, 22, 9, 13, 2,145, 17, 85, + 38, 50,214,166, 11, 29,145,161,228, 3, 81, 1, 68, 99,168,247,113,189,223,207,138,188,204,179,116,202,216,145,150, 67,160, 74, + 68, 34,170, 0,134,137,153, 12, 51, 18,138,130, 15,145, 64,211,224, 46,249,197,137, 71, 34,138,144,234,225,196, 79,194,114, 80, + 64,213,247,235,208,247, 97,111, 76,250, 91, 34,162,164,170, 5, 2, 6, 84, 57,136,161, 33, 0, 31, 79,243,135,237,238,233,241, + 76, 36, 61, 53, 15,133,132, 52,120, 79,187, 79, 73, 88, 48,147, 86,185, 4, 36, 33, 40,104,210,154,166,245, 35, 17, 18, 74, 2, +175,140, 96, 25,213, 67,202, 38, 69, 19,211,166, 29, 15,227,123, 81, 33, 1, 73, 55,221,116,157, 39,192,241,176, 37, 4, 74,195, + 18, 85, 38, 85,252,157,159,126,249,221,219,235,235,187,187,106, 50, 45,171, 50,138,255,224,233,163,191,251,205,119, 95,125,249, +241,249,201,162,238,194,143,126,246,187, 18,154,237,174, 57,127,250,120,189,218,184,224,152, 24,209, 40, 0, 59,171,209,171, 74, + 12, 66, 72,232,140, 98, 36, 66, 85,209,212, 85, 96, 74, 15, 42, 9, 33,253, 94,147, 24,132,144,213,164, 55,216, 20,110, 61,108, + 17, 84, 16, 57, 1, 66,117, 92,152, 34, 18,146, 49, 26, 98,140,131,113, 46, 97,232, 53, 36, 98,157,112,234,138,164,121, 86, 20, + 53, 12, 0,209, 7,155, 51, 18,182, 93, 15, 10, 93, 83, 91,146, 96, 45,145, 74,240, 38, 43,216, 24,132, 8, 81,216, 88,155,229, +138, 71, 72,168,210,183,251,218,106, 12, 54, 23,229,216,181,192, 70,163,247, 30,173,225,108,250, 40,160,217,175, 95, 89,235,186, +190,105,154,150, 16, 13, 91, 34,107,166,143,172,205,219,193, 83, 24, 6, 31, 93, 86,177, 45,167, 71,243,249,233, 73, 93,111,189, +224,244,228, 81,232,118,190, 93, 85,199,103, 93,179,111,235,218, 57,179,219,174,135,190, 71,241, 64, 90,239,219,213,234,206,139, +150,197,116,181, 89, 55, 67,180, 20,247, 97,112, 54,107,183,155, 72,182, 29,250,188,156, 13,195, 16,154, 77,244,158,220,196,149, +139,219,235, 43, 99, 43,132,161,116,150,137, 64,216, 15, 77, 84,200,184, 10,245, 67,181, 56,245, 68,235,235,111,178,242,180,156, +159,179,177, 24, 3, 16, 33, 90,109,247,198, 96,181,120,204, 77,141, 4, 67,219, 24, 91, 33,120, 37,107, 12,239,150,151,197,244, + 88, 67, 19,177,220,174,111,227,224,201,230, 72, 56,116,129,136,173, 41,253,176,235,155,189,198, 61,178,149, 32, 49, 14,251,237, + 93,107,171,204, 56,237,215, 89, 62, 55,140,126,232, 32,202,224, 99, 28,106, 96,107,139,249,224, 7, 2,200, 51,215,180, 97, 49, + 59,219,238, 30,190,125,243,155,166, 94,255,240,195, 47, 5,141,203,136,136,251,254, 30, 86,146,231, 19,233,119,214,132,193,235, +126,243, 48, 61,127,158,229,147,118,191, 70,197, 0,188, 95,223,100, 46,115,197,116, 49, 59, 10, 67, 71,166,244, 33, 88,226,217, +164,154,125,250,233,164,170,178, 44,239,218,166,174,119,155,251,155,111,190,251,250,197,235,139,205,126,191,218,108, 55,155, 13, + 91,243, 63,255,119,255,203, 23, 95,252,164,174,235,216,110,126,254,233,209,147,211,249,237,213,205,203, 87, 47,183,155,221,179, +143, 62,172,206,166,255,223,223,254,227,179, 71,199,157, 14,191,250,135,239,102,228,206,171,210,199,168,136,108,156,196,161,105, +251, 62, 52,185,181, 69,150,231,121, 22, 99, 80, 5, 31, 67,140, 98, 83,237, 61, 13, 16,172, 9, 94,200,176, 65,235,131, 71, 5, +203, 28, 48, 38,173, 3, 1, 41, 64,225, 44,170,168,136,199, 36, 2,228,193,135,145,170,164, 98,192,120, 1, 4,148, 24,172,179, +133,115, 94, 49, 9,155,148, 48, 70,193,136,206, 25, 81, 53,160, 33,137,136, 1, 13,211,144,182,112,138, 62, 13, 69, 69,217, 80, +242,119,166, 68, 37,160, 26, 99, 67, 12, 17,129, 64, 83,132, 7, 8,208, 25,136, 10, 34, 41, 15,168, 24, 81,217,177, 97,107, 37, +134, 94,133, 9, 24, 77,140, 67, 4,116,105, 9, 11,138,136,142, 40, 34,134,168,133,203, 0, 16, 33, 42,129, 4,176, 76, 94,162, + 2, 86, 69,209, 6, 1,137,214,218,160,136,160, 6, 13,128,104,140, 41,175, 14, 18, 33,105,224, 84, 17, 68, 98,188, 94,110, 10, +198,163, 73,217, 69,113,136,145,176,139,222, 32, 27, 70, 0, 26, 68,144, 17, 99, 4, 38, 80, 13, 33, 2,128, 65,238,209, 19, 40, + 1,241,255,244,151,127, 1, 8,140,128,230,183, 17,125, 28, 35, 26,233, 65,136,227, 61, 55,161, 5, 36,140, 36,152,195, 26, 22, + 71,132,103,194, 36,143,113,245, 52, 71, 8,128, 83, 19,239,183,237, 98, 62, 17, 25,239,246,233, 68, 38, 32,125, 95,184, 79, 35, +133, 68,200, 26,139, 84, 4,128, 26, 3,154,131, 24,100,108,185,141, 5, 78, 64, 74, 13,177,177, 16,251,219,164,230, 40, 34, 77, +122,215,177,120,139, 4, 74, 32,137,131,147, 30,103,227,216, 28,145, 1, 40, 70,157, 76,114, 6,255,143, 47, 47,115,103,102, 71, +115, 98,202,141, 27,250,254, 55, 47, 47,126,254,229, 39, 65, 98,223,247,183, 87, 23,203,229, 50,200, 48,244, 67,238,242, 4,205, + 52,198,106,148, 68,101, 24, 31,129,162,105, 89, 35, 49, 34, 36,249,150, 66,122, 77, 27,215,195,172,154,222, 71, 18, 69, 72, 37, + 10, 26, 67,104,210, 28, 38, 77,114,144, 65,163,140, 58, 66,194, 84,171, 83, 20, 64, 2, 77,141, 92, 0, 76,116,103, 68,250,109, +238,120,108, 35, 43, 0, 66, 86,206, 13, 99,219,180, 89,158,245,117,107, 51,139, 54, 67, 4, 21,181,214, 61,220,222,183,245,230, +248,241,179,217,124,122,241,234,123,224, 76,162,236,151,247, 46,171,140,203, 35, 88,100, 43,161,103,195,125, 63, 40,160,205, 28, +160, 27, 86,239,218,122, 89,230,249,114,179,189,184,185,109,187,222, 11,252,226,167,255,204,162,248,118, 75,177,237,219,253,166, +237,166,211, 41,101,238,217,243, 47, 92, 81,121, 49, 89, 81,146,134,187,139,151,104,109,189,188,204,108, 85, 86,149,250,222,135, +136, 34,221,246,190,233,122, 65, 18,223,163, 49, 79, 79,159,108,235,205, 32, 65, 99,200, 51, 87, 85,147, 40,113, 24, 90,227,114, +137, 66,168, 2,216,117,155,211,179,199,190,111, 86,235,109, 93,239, 67,243,144,229, 37, 32,119,109, 45,136,117,219, 53,237,158, + 8, 28, 27,114, 57, 82, 33,200, 33,198, 97,232, 93, 53, 37, 54,245,110, 37,202,206,112, 8, 61, 72,168,155, 70,136, 65,209,162, +175, 38, 39,206,102,108,115, 36, 38, 67,136,216,118,221,118,183,149, 48,236,214,247, 0,120,180, 56,206,156,169,155,214,230,229, +126,191,239,187,225,104, 49, 45,242, 2,208,129,239, 76, 54, 9,253,110,114,116,228,152, 98,240, 89, 86, 13, 62,206,166,179,147, +163,121, 81, 76, 53,134,172,156, 16, 72,235,251,182,239,110,151,183,147,242,168, 98,146, 24, 0,105, 54, 61, 98,150,182,235,216, + 22,229,252, 12,181,179, 46,207,202,197,126,189, 42,170,105,244,221,208, 55, 89,158, 7, 17, 81,244,221,190, 40,114,212, 33,250, + 22,144,143,142, 22,143, 31, 31, 85, 85, 54,153, 76, 84,180,222,109,238,111,223,190,121,245,242, 87,127,247,119,223,188,186,184, +185,127,184,123, 88, 6,209, 31,125,241,227,255,230, 15,255,248,195,167,207,111,223,254,230,209,220,252,248,147,163,130,240,235, +175,191,249,254,197, 43, 54, 12, 76,154,217,111, 95, 93,236, 54,187,235,171,155,239, 95, 94, 30,103,238,164, 42,153,153, 13,151, +142, 51,107, 66, 4, 31, 35, 34,176,161,204,216,180,169, 28,111,170,138,214,146, 87, 85, 80, 98, 78, 98,179, 4,154, 77,168,193, +160,146, 86,121, 2, 96,136, 13,161, 68,241, 33, 36,125,141,177,172,162,137, 42, 59,214, 17, 15,221, 72, 69, 16,213,182,239,153, +137, 24, 67, 20,195,204,128,206, 26, 70, 35,163,205,103,204,135, 32,160, 53,236, 12, 43,170, 38, 1,247,232,131, 38, 64, 48,105, +190,195,156, 2,239, 57, 83,170, 74, 38,146,176,136, 16,170,113, 38,125,243, 76,236,216, 18, 37,186, 31, 57,166, 40,154, 10,235, +134, 80, 16, 64,128,137,172,229, 46, 8,129, 26,102, 77,132, 94,107, 81, 5, 1,251,100, 88,101,163, 10,134,208,218, 44,136, 26, + 34, 34, 43, 26,145,146, 65, 57,213,143, 16, 16, 12,162, 2,129,234,253,182, 1, 13,103, 39,115, 47, 96, 8,129, 25, 85,153,216, + 18,132,177,217, 3,170, 34, 49, 16, 83, 8,202, 76, 0, 24, 68, 98, 28, 12, 82,239, 7, 51,238, 69, 85, 53,200,225,136, 2,132, +209, 73,136, 35,103,102,100,236, 42, 68, 96, 30, 19, 55,144, 30,118, 73,151,138,201, 16, 61,238, 8,146,108, 21, 64, 99,200,171, + 41, 63,220,140, 35,244, 17, 84, 25,117,140,141,208,248,229,198, 41,198, 97, 57, 43, 74, 76, 18, 21, 76, 98,117,166,227, 78, 80, + 89, 17,188,136, 1, 16,140,170, 35,138, 39,117, 91,137, 8, 68,210, 77,253,125,252, 71, 9,223,123,212, 71, 73,169,140,163, 27, + 5, 21,145,168,158, 21, 17,160,239,241,231, 63,253,201,197,229,253,213,205,221,108, 54, 63, 62, 57,214, 28, 62,126,246,236, 63, +254,237,223,253,205,223,125,251,135,255,244,199, 15,251,246,228,236,217,211,140,190,251,230,155, 47,127,242,179,118,191, 19, 0, + 86, 9, 33,188, 87,187,167,196, 21, 27,163,160, 26, 21, 21, 84, 6, 69, 65, 97, 64, 64,178, 32,202,214,136, 38, 8,193,216,184, + 2, 65, 98, 77,140,124,100, 74,111,127,160,128, 17,211, 91, 41, 32,168, 72,196,177, 1,160, 2,138, 17,217,162,161,196,104,163, +145,238, 44,132,246,191,202, 4,163,248,104,115,215,247,189,117,150, 48, 22, 85,161,164,160, 1,201,162, 73,175, 5, 32, 2,245, +190,142, 39, 71,214, 21, 81,160,110,246, 38, 43, 93, 89, 49,218,102,187,236,234, 70, 36, 90, 84,116,121, 57,169, 24, 1,140,221, + 14,181,181,198, 71,241,222,119,221,224,125, 40,114, 87,152, 16,169,204,114, 30, 54,187,221,110, 55,201,243,220,186,197,241,169, +113, 69,179,219, 70,228,249,252,169,177,153,162, 33,100,107, 93,179,221, 22,229,164,239,187, 60,115,203,237, 18,216,101, 0,125, +221, 2, 59,146,184,218, 62,236,246, 27,195,121,140, 50,153,206, 50,166,182, 27, 24, 89,253, 0,156, 5, 68,195,118,126,244,148, +145,167,147,108,181,222,220,223,109, 23,179,217,116,118,220, 52,123, 69,202,172,107,234, 38,203,139, 50,207, 69,164,223,175, 57, +159, 64, 24,156, 37,180,115, 8, 67,240, 29, 16,135,190,217,118,189,201,103,108, 50,227, 38, 12,146, 57,106,155, 48, 12, 53,171, +230,213,145,250,154,162, 4,148,170,152,102, 68,125,183,153,157,127,104, 12, 3, 65,215,110,183,245,182,240,118, 82, 86,131,247, + 26, 98, 27,106,231,170,174, 94, 13,245,242,201,249,243,188, 42,218,253,174,105,106, 76,122, 10,208,135,235,139,233,201,121, 81, + 20,198,184,251,135,183,251,182,159,149,243, 39,167,143, 21, 12,229, 85,145,209, 48,248, 16,189, 35, 10,193,163, 15,251,237, 61, + 97, 4, 16,227,154,220,209,233,241,209,190,174,219,190, 27,134,218,123,207,174,130, 96,144, 50, 54, 89, 94,232,233,201,209,217, +227, 71, 69,145,199, 16,134,174,217,172, 30,174, 46,223,188,185,120,251,234,205,229,205,253,114,185, 89, 13, 62, 62, 59, 63,255, +139,191,248,235, 79,191,248,234,238,221,149,214, 87, 63,255,252,105,149,187,155,215,111, 94,190,122,195,140,130,128,142,171,197, +228,250,250,225,237,235,139,210,216,220,152, 79, 78, 79,152, 9, 84, 19,155, 54, 70,236,195, 96, 8, 38,121, 22, 66,242, 22,144, +162, 48, 18, 42, 26, 2, 33, 80, 66,142,202, 70, 1, 48, 68, 85, 9, 9, 54,146, 34,207,134, 16, 0, 13, 81,142, 16, 69,135, 32, +201,146, 74, 76,138,136,204, 40,209,135, 94, 21, 44, 83, 16, 80, 80,107,141, 70, 29, 0,147, 72, 58, 77, 68,211,255, 5, 80, 12, + 49,210, 97,127,170, 99, 72, 7,216, 80,136, 49, 68, 53, 64,128, 18, 37, 29,152,227,205, 83, 83,153, 18, 52,105, 25,132,149, 34, + 34,146,239,189, 73,224,176, 4, 62, 36,195, 72,233,196, 79,195, 99, 75, 24, 68, 36, 70, 52,204,100,188,198,140,172,113, 24, 98, + 8, 65,210,240, 24, 15, 55,214, 16,162, 15,209, 25,227, 40, 7, 20, 5,116,100,131,134, 32,225,208,177, 18,228,145,208,144, 92, + 74,140,200,134, 98, 16,208, 88,119,253, 48, 12, 39,211,202,144, 65,144, 20,112, 84,228, 16, 37,149,245, 49,197,117,130, 8,160, + 68,207,100, 19,187, 94, 84, 17,104,240, 94, 98, 48,135,173,109,226,120,141, 91,102,129, 8,148, 68, 19, 64, 72, 17, 99, 74,219, + 0, 26, 28, 87,123, 66, 56,134,251, 19,239, 13,120,148, 20, 33, 40, 19, 70, 25,199, 96,189,102, 25, 67, 8, 49,173,105, 17,137, +129,148, 0, 34,140,143,132,180,247,246, 17, 17,137,237,200,144,140, 66,140, 26, 89, 37,241, 23, 89, 85, 34, 8, 40, 48,167,226, +146,142, 4, 24, 64, 48, 4, 49, 61, 85, 18,122,102,172,236, 30,150, 61, 0,162,104, 84,149, 68,210,115, 58,121, 71, 4,144, 52, +138,142,245, 89, 17,133, 63,250,189,159,253,239,255,254,255,217,110,183,206,185,217, 98, 14,160, 95,126,246,233,255,253,171,191, +255,233,231,207,115,231,186,174,157, 46, 30, 45,102,147,183, 47,191, 21,208,179,199,207, 80,149,153, 1, 73, 1, 73,146,204, 26, + 53,134, 52, 67,151, 24,131,239,149,192, 24, 99,200,164,134,147, 28,250,200, 35, 97,152,136,141, 17,141, 41,129,139, 64,169,185, +167, 32,227,152,246,158, 56,101, 0, 0, 32, 0, 73, 68, 65, 84, 82, 99, 34, 55,164, 97,153,200,168,115, 4,212,212,106, 35, 36, +137, 50, 14,157, 36,138, 82,194, 17,165,226,117,236,134,193, 71, 87, 22, 81,196,228, 14, 52, 50,129,146,129,232,137, 17,173, 67, +155,203,208,176, 70,114,101,179,188, 39,213,106,122, 98,139,162,221,111, 80,192, 15,189, 43, 42,196,200,126, 27, 7,228, 98, 94, + 20, 19, 85, 40,139, 34, 4, 29,124,136, 33,246,195,112, 50,153, 73,140, 96, 93, 28, 86,171,229, 3, 49,101, 89, 94,148,213,209, +217,211,200, 44,128, 46,159,102,121, 17, 99,232,218,118,186,152, 19,101,132,117,219,108,234,253,186,172,166,121, 94,108,219,102, +223,180,247,155,245,233,209,233,182,222, 11,113,158, 79, 5,145, 82,141, 0,193,185,156, 12,109, 55, 43, 91, 40, 6,140,108, 50, +166, 97,127,127,191, 3,195,110, 54,153,134, 32,171,205, 6,148,189,247, 6,109,140,126, 62,127,180,200,176, 7,183,220, 46,157, + 98, 97, 29,144,179,182,240,237,182,109,154,201,226,188, 23,169,219,173,201, 52,168, 49,134,138,162, 98,136,197,100, 46,209,239, +238,222,186,172, 84,224,182,222,238,154,102,177, 56,203,140,221,214,251,249,236,172,238,189, 72,204,108, 54,159, 44,154,102,211, + 55,117, 53, 59,241, 26,218,253,234,244,113, 85, 76,230,155,135,123, 64, 10,245,186,237, 60, 16,183,205,222,119,117,113,244,184, + 31, 38,147,106, 49,196,246,155,183, 47,103,213,252,217,249,211, 24,154, 16,194,110,191, 98,151, 23,217,177,203,105, 8,131,143, +234,251,125, 86, 46,178, 44, 71, 38,137,195,116,113,110,179,105,189,185,181,121, 53,153,206,195, 48,100, 25, 13, 67,237, 37, 20, + 69,241,232,108,118,124, 52,159,206,167, 64,220,119,237,126,187, 92,222, 93,189,126,253,246,197,155, 55,151, 55,247,203,205,118, +187,219,156, 31,159,252,171,127,249,231, 63,248,232,249,201,227,103,251,187,119,231,110,119,246,232,180,221,237,190,254,245,175, +239, 31,238,159,126,248,212,205,167,239,254,238, 31, 62,121,242,201,247, 87,215,111,222, 93, 76, 93, 54,201,172, 77, 29, 28, 4, +135,152, 90, 64,138,152, 25, 6, 16, 1,114,228, 4,128, 65,153,221,248,210,153,198,198,168,206,226, 16, 19, 76, 17,172,203,250, + 16, 85,148, 56, 37, 41,161, 96,142, 18, 3, 32, 16,102,206, 48,179,166,207,132, 37,138,232,209, 19, 24,102,236,188, 7,145, 44, +119, 49,168, 40,152, 49,215, 4, 22, 8, 13, 70, 21, 63, 68, 34,214, 0,214, 82,210,236, 9, 66,110,185,243, 33, 68, 9, 65,216, + 16,104,106,246,163, 40, 48,211,225,202, 39,169, 35, 19, 84, 36, 38,111, 20,170, 42, 89, 2, 25,239,135,150, 24,144, 65, 3,165, + 85,153, 70, 47,234,197, 51,176, 51,206,199, 64, 70,138,204, 74,148,255,159,169, 55,251,182, 36,185,238,243,246, 20,145,195, 25, +239, 80, 83, 87, 87,119, 3,141,129, 0, 65, 2, 20, 8, 83,166, 37,216,178, 23, 41,137, 11,146, 37,175,101,210,255,166,159,237, + 7,123, 45,201,131, 44, 89, 52, 41, 52,128,238,174,121,186,243,116,166,204,140,216,123,251, 33,242, 92,168,159,250,161,186,250, +214,189,167, 34, 35,247,254,253,190,111,155, 84, 8, 0, 57,136, 67, 49,141, 48,238,186,132, 8,109, 93, 3,178,217,192,161,222, +237,122,117,117,117, 34, 82, 87,116, 12, 18, 2,225,144,243,200,204,114, 3, 64, 77,136, 0, 73,245,110,189, 57,156,214,109,211, +154,155, 25, 84,140, 9,129,136, 43, 34, 66,202, 56,152, 17,186, 34, 1,164,210,157,228,145, 13, 14,158,178, 49, 0,179,240,223, +252,234,175,198,129, 8,143,107,211,241, 73, 75,163, 49,200,125, 60,114, 11,145,103,180, 5, 18,179,208, 61,108,253, 30, 71, 62, +210,201,247, 36, 1,114, 32,228,220,239,178,243,180,141,227, 35,214, 12,108, 20,138,112, 1,136, 21,220,132,121, 9, 92,150,237, + 72, 1,199,140,117,158,130, 84,135,113,238, 81,134, 66,165,184, 75,145, 71, 23, 82,217,114,142,249, 28,250,207,168,186,101, 58, + 95,152,208, 5,102, 9,165,117, 1, 99, 60,221,137, 11, 51, 46, 79,166,237,176,219,190, 57,189, 92,206,231,128, 72,204, 85,172, +206, 46, 46, 62,158, 95,252,226,143,127,184, 90,175,213, 97,182, 88,188,127,255,254,248,209, 99, 75, 29,145,148, 70, 7,151,146, + 42,140,238, 36,164, 17, 43,234, 14, 34, 49,132,186,244,197,212,178,231,242, 25, 0, 55,167, 49, 19, 54,214,198, 10,118, 3,161, + 92, 71,246,195,174,253,254, 29, 16, 93, 29, 10, 89, 66,184,208,239,203, 93,102,127, 19, 25,247, 65,191, 55, 95,113, 4,174,164, +170, 64,147,123,230, 16,170,182,149,170, 18, 41, 94, 89,185, 60,187,216,108,118,243,233,116,121,116,248,254,229,243, 33, 39, 53, + 13, 49, 14,125,191,185, 59, 87,160,217,124,201,130,117, 59, 67,174,187, 33, 79,167, 51, 71,188,120,247,213,108, 54, 77,170,167, +231, 87,151, 55,183,119,155,237,179,207,190,251,249,167,159, 89,127,115,123,254,113,115,119,215,212,205,100,186,156,204,166,245, +226, 16,168,178,212,207,142,143, 23, 7,199, 39,175,254,147,170,115, 8,222,109,136, 25,212,119,187,109, 96,233,119,171,245,122, +179, 27, 6, 55,223, 13, 93, 64, 55,181,171,155, 27, 9, 60,109, 91,180,228, 96, 33, 84, 89, 45, 86, 49, 10,239,186,158, 56,162, + 14,132,222,204,143,186,221,182,105,103,110,176, 77,253,110,216, 12,131,110,118,155, 16, 99,148,186,157, 55,211,122,114,119,119, +233, 24, 4, 53,109,111, 72, 98,168, 22,245,236, 40,109, 46, 57, 84, 20,154, 80, 79,132, 48,128,198,192, 41, 41,164,126,232,214, +102, 54,108,111,171,201, 28, 45,135, 80, 7,180,212,175, 23,135,143, 55,235,171,219,213,170,169, 99, 21,154, 88,213,121, 88,171, + 34, 72,181,221,220,205,167,139,249,108,158,205, 9, 97,219,173, 47, 46,207,150,139, 69,191,221,220,109,214,211, 58, 6,196,117, +215, 95,222, 93,175, 86,219,227,249,131, 42,212,169, 91,109,182,107,146,166,169, 26, 20,238,119,119,221, 96, 10, 60, 91, 28, 11, +218,108,249,137,144, 32,232,225,227,239,172, 87,183, 78, 56,153, 47,235,102,137, 62, 4, 17, 85,152, 46, 14, 63,249,244,179,207, +158, 30, 46, 14,151,147,201, 68,213,215,119, 87, 39,239,223,188,120,254,205,215,223,188,248,245, 55,207, 95,191, 63, 57,187,190, +169,132,254,244,167,255,197, 95,252, 55,255,236,232,232, 9,195, 46,216,230, 81, 59,204, 2,124,248,240,238,235,175,126,115,187, +221, 77,103,237,244,241,195, 95,127,243,245,213,229,205,233,217,229,235,231,175,143,154,233,188,110, 0, 70,181, 24, 19,233, 24, +200, 45, 57, 66,199,189, 96,161,220, 55, 1,255, 51, 68, 42, 1, 19,101,115,176,113,165,180, 75, 3, 24,112,224,210,104,171, 98, + 84,203,230, 48, 12, 22,132,192, 33, 91, 22, 18, 14, 81,136,212,177, 56,233,152, 73, 72,130,144,102, 35,194, 42, 22, 27, 90,209, + 76, 19, 24,172,182,219,117,183, 37,192, 58, 8,133,144,213, 4,145, 9,147,186,155, 67, 9,166,151, 59,103,225, 30, 50, 8, 48, + 0, 80, 25,181, 20, 19,211,232, 95, 26,217, 88,228,165,232, 4, 33,212,204,191,151,195, 17,130,130,169, 42,238,155, 42, 65, 56, +136,100, 53, 7,171, 99, 85,110,116, 6, 94, 51, 3,162,129, 71, 17, 4,234,134, 1,193, 0, 89, 53, 21,108, 73, 33,253, 18,115, + 20, 6,243, 98,236, 19, 98, 31,183,156,224,238, 68,124,185,222, 16,224,193,180, 45,211,241, 40,161, 31, 83, 67,152, 1, 0, 76, +176,204, 29,188,232,182,145,196, 85, 67, 8, 0, 60, 12, 3, 2,198, 42,154,155,248,232,138, 40,240, 45, 47,157,221, 61,108,230, +247, 16, 19, 36,128, 61,173,189,176, 86, 52,219,232, 99,245,177,123, 95, 38, 37,134,206,229,129, 81, 66,164,224,109, 91,157,175, + 55, 15, 14, 38, 41,217,253, 96,191,160,133,205, 70,238,188, 59, 32,147,227,126,122, 54,158,217, 58, 66,126, 97,255,236,113,180, + 50,199, 40, 30, 59, 24, 53, 44, 35, 96,126,228, 3,143, 63,150, 2,166,247,194, 35,114, 47,197, 33, 7, 3, 31, 11, 69,247,196, +203, 50,233, 35,196,156,253,199, 63,252,242,249,251,211,219,213,182,174,171,170,153, 49,241, 31,126,255,251,255,251,255,245,239, +254,191,223, 61,255,241,151,159,159,223,172,172,169, 68,120,185, 56,184,248,248,206, 20,103,179, 25,144,186,211,184,137, 38,217, +135, 24,157, 41,112, 19, 9,196,193,138,176,143, 93,220, 77,213,105,172, 98, 23, 28, 68,217, 69,237, 31,109, 56, 62,159, 44, 41, + 5,161,146, 42, 3, 80,205,196,204, 69,110,149, 13,139,171,140,137, 88,184,244,192,198,206,175,239,115,242,180,217,238, 66,152, + 81, 85,158,209, 94,152, 90,229, 27,169,253, 0, 65,153,137,133, 37, 84, 16,100,200, 67, 82, 16, 14,121,216,165,148, 17, 24, 53, + 1,213,228, 20,171,104,177,137,237,128,204,110,138,158, 8,201,205,182,219, 93, 54, 75,150, 31, 63,122, 22,231, 71,183, 55,119, +105, 72, 77,211,206,102,139,208,212, 40,181,153,186, 15,154,134,182,110, 85,123,105, 14, 14,230, 77, 26,214, 90, 77,170,202,250, +110, 55,159, 31,229,180, 73,221, 78, 98,172,156, 53, 15,235,110,152,207, 15,214,187,205,186,219, 85, 85,173, 33, 41, 10, 82,232, + 82,231,170,194,178,222,220, 41, 73, 3,154, 85, 15, 15, 63,191,221,108, 78,223,254,166, 57,122,102,128,144,186, 97,183,142,213, + 4,124, 75, 88,167,148, 54,183,107,159,203,241,209,163, 52,232,106,125, 99,200, 48,244,217, 51,121,149,157,250,213, 93,108, 38, +105,183, 21, 81, 97, 4,135,118,178, 72,187,235,128, 13,113,232,183,171,110,187,219,220, 94,212,205,204, 83, 46,166, 5,150,122, + 49,173,218,186,185,188,120,221, 78,102,187, 93,159,129,176,223, 52,109,251,224,201,231,183, 23, 31,222,188,254,102, 50, 91, 86, +237, 66, 98,221, 39,171,171,186, 74,249,118,179, 62,187,185,236,213,103,117,252,236,233, 15,136,252,230,250, 52,103,109,154,153, + 90,130, 80,123,159, 1,120, 50,153, 14, 67,246,161,191,189,124, 31,155,165,230, 29,197,185, 13,217,242, 16,235, 90, 72,134,110, +213,109, 86, 93,191, 93, 28, 28, 62,253,100, 57,159,205,154, 73,131, 64,219,205,221,221,205,197,201,219,119,111, 62,190,123,247, +241,244,227,249,197,197,245, 53,113,245,163,239,253,193,159,253,236,103, 15, 30, 60,189, 62,191, 8,222, 63,126, 52,123,120, 32, + 87, 23,215,191,253,221,203, 12,217, 9, 23,143, 14, 9,236,219,175,191,185, 58,187,241,148,221,224, 59, 15, 31,142, 62, 96, 24, +145,211, 64,128,134, 99,172,217,138,194, 20,145, 64,136, 75, 36, 60,151, 52,161,237, 71,148,123,151, 90,206,134, 68,194,236,142, +168,218,176,140,206, 2, 71, 7,111,107,206,224,224, 24, 36, 32,137,230,148, 93, 71,170, 30, 16,137,168, 90,234,119, 82, 62,239, + 9,132, 73, 17, 24,113, 63,106,119, 4, 74, 89, 59,210, 54, 90, 32,114,132,172,138, 0, 81,120,112, 77,144,203,139, 57, 11, 1, +144, 67, 78, 57, 51,161,193,184,128, 45, 2,191, 98, 88,139,101,139, 0, 12, 96,204,193, 93, 75, 67, 49,114, 80,205,102,192, 36, + 28, 88, 71,243,101, 57, 45,129, 69, 70, 11,102, 12,110, 26,145, 7, 75,194,145,176, 36,226,178, 48, 13,154, 81, 51, 49,187, 89, +118, 71,196, 40, 72,196,201,180, 12,100, 92,157,200,179, 27, 2, 9, 57,146, 92,172,182,150,134, 71,203, 69,168, 42, 3, 80, 85, +117,141, 76,132,232, 72,141, 56, 18,247, 67, 38, 4,195, 2, 72, 33, 36, 66, 15,238,100,104, 85, 21, 75, 56,197,204,249,111,254, +229,175,202,145, 72, 4,196, 82,206, 6, 47, 20,247, 49,102, 13,196,100,170,128, 68, 36,227,184,219,199, 93,231,168, 49, 4, 18, +188,143,232,143,206,219,123,250, 22,120, 58,191, 90, 29, 31, 30,169,235,222,148, 10,191, 15, 45,142, 17, 23, 96,137, 14, 6, 90, +234, 72, 35,116,197,192, 16,125,236,244,236, 3,142,229,155,133, 68, 72,100,247, 94,233,194,164, 87,219,223,128,125, 12,207,143, +187,207, 18, 29,116,220, 59,237,198,219,245, 8, 98,118, 42,177, 80,135,166,109,151, 77,252, 15,191,121,254,224,112, 73, 72, 77, +221, 8, 99,234,119,255,225,171,175,255,228,199,223, 71,198, 33, 13,211,249, 81, 26,250,102, 62,221,172, 86,117, 51,221,151, 99, +121, 28, 6,185,122, 86,150,200, 34,133, 43,112,143,241, 41,107, 11, 46,187,158,242, 3,115,199,146, 21, 35,192,145,166, 32, 99, +116,125, 28,210,149,184, 62,238, 73,203,229, 55, 67,191,183,188,143,250,129,130, 96,187,191, 91, 1, 32,229,108,147,201,188,140, +124,194,164, 17, 9,253,110, 71,160, 96,196, 65, 68,232,250,106, 53,100, 93, 30, 44,234,166,126,253,252, 37, 19, 85, 85,157,211, + 96,142, 96, 20,218,152,186,109,100,137, 12, 85, 59,179, 52,116,171,221,208,119,253,234, 99, 51,155,245,195,240,250,253,135,187, +213,102, 55,116, 63,255,217,159,195,176,189,185,185, 68,237, 39,147,118,114,240,168,239,239, 98,213, 80, 8, 64, 17, 67, 56, 58, +122, 0,174,219,205, 58,109,111,250, 93,162, 16, 44,229,235,139,247,253,230,238,227,233,187,186,158,170,105, 63,116, 18,107, 7, +175, 99,188, 88,173,222,158,157, 47, 38,117, 78,189, 25, 48, 7,116, 13,194, 49,134, 65,181,170,235,109,183,173, 98,123,187,235, + 20, 8, 25,115, 82,215, 97,117,123, 17,155,165, 8, 27, 9, 18,147,227,221,205,199, 71, 15, 30,118, 57, 29, 31, 62,186,184,189, +114,146, 52,172, 17, 61,165,236,136, 0, 70,158,165,154,196,170,114, 53,116,205,218,131,105, 51, 93, 36,237, 8,185,170, 27, 77, + 25,193,251,221,230,240,248, 49, 33,198, 80, 87, 33,204,231,179, 94, 65, 40,132, 88, 55,211, 69, 74,187, 93,183, 43, 91,238, 88, + 53,177,106,204,204,134,221,144,128, 24,111, 86, 55, 87,119,119,139,197,241,180,158,128,123,238, 87,234, 86, 46, 89,117,211,176, + 68,205,137, 99,203, 85,117,120,248,160,219,237,110,110, 46, 72, 90, 53,115, 80, 14, 85, 26,118,195,208, 31, 28, 29,167,164,221, +230,118,249,224,241,179, 47, 62,255,236,217, 39,243,249, 60,212,213,208,245, 55,151, 31, 63,190,127,243,242,197,183,191,253,246, +197,215,175,222,188, 61, 57, 61,191,190,121,120,120,252, 47,255,242, 87,191,248,233,159, 16,113,238,134,167, 11,248,195,239,125, + 18, 5, 94,125,243,226,213,139,151,203,227,229,163,239,124,242,246,228,108, 57,159,172,135,252,237,171, 55,190,237, 31,207,231, +179, 73,205, 34, 44, 1,193, 43, 17, 22,206,121,244, 98,194,158,136, 93, 86,159,163,211,174,140, 53,199, 12, 53,152, 3,122,105, +116, 22,167,217, 72, 29, 8, 65,162,112, 86,232,178,153, 67,228, 34,184,164,146, 86,100,226, 50,100, 29, 52,131, 67, 45, 21, 50, +155, 42,184, 2,160,142, 23, 31, 35, 34, 7,112,117, 71, 55,119,205, 30, 66,168,130, 76,155,154,104,252, 58,239,225, 49, 50,166, +205, 93,132, 0, 80, 85,211, 48,216, 62,184, 77,132,132,100,134,194, 28,153, 74,103,101,140, 83,178,187, 25, 34,163,123, 54,237, +115, 18,100, 68, 52, 4, 98,170,235,154, 29, 13,198, 3,213, 29,133, 89, 8,165, 92, 37, 75, 15, 8,201,193, 2,139,169,237, 82, +111,170, 99, 87,223,203,178, 18,232,222,177, 13,196,136, 34,210,169,154, 41, 35, 34,241,221,174,191,219,174,143, 23,211,217,100, +106, 5, 71,187,167,113,193,200,153,129,193,172, 36,108,178,163, 32, 8, 21,166,229, 88, 96, 42, 79, 89, 68, 54, 55,254, 31,255, +229, 63,191,231, 17, 66,241,202,194,126, 58,179,215,209,142,141, 27, 24,115,123,197,204,231,200, 5,156, 70,247,247,241,177, 81, + 38,229,148, 97, 64, 53, 7,183, 16,226,110,183,173, 39, 83, 28,175,203,116,255,129,216, 11,154,198,113, 49, 17, 9,153,223, 11, +163,225,222, 32, 61, 62, 16,120,143, 90, 39, 36, 28,143,122, 46,216,155,194,156, 27,225,184,123, 41, 55,142, 29,166, 49,148,227, + 48,254,230,227,162,114,196,206,141,184,201,242, 53,169,250,209,225, 65,191,186,126,119,190,154,183, 85,168, 43,137,113, 62,157, +188,120,249,246,110,187,249,163, 31,124,150, 18, 30, 28, 30,189,127,243,226,193,163, 79,183,155, 43, 66, 97, 9, 35,196, 14,220, + 85,145,132,100, 4, 64, 34,114,249, 26, 0, 93,115, 98,100,187, 47,172,142,149,168,223, 35,126,246,174, 38,255,125,209, 23, 75, +153,120,164,238,141, 79,145,146,240, 44,183,146,178,185, 46, 55,172,251, 54, 90, 81,176, 43, 84,237,178,153, 84,229, 9,141, 44, +214,239,220,156, 89,220,149, 66, 32,131,139,139,171,205,106,211, 52,117, 21,227,217,217,101, 12,130, 40, 14,100,253,142,130, 32, + 82,136, 77, 61,153,169,131, 13, 89,251, 53,133,122,117,247,222,134,117, 83, 53,171,219,245,235,247, 31,110, 86, 43,169,234,127, +240, 71,127,186,185, 62, 1,205, 77,221,196,170,166,170, 37,208,122,126, 40,161, 33,162,249,116, 42, 18,146,194,118,117,109,195, +174,212,147, 77, 77, 83,223,119, 59, 55, 63,156,181, 68,124,118,126, 78,204,217, 52,138,188, 60, 57,121,254,241, 28, 65,231,245, +148,145,154,201,100,216,174,235,186, 18,150, 33,105, 78, 9, 1,170,170,218,165, 92,140,149,110,131, 3,197,102, 14,218,163,166, +236, 62,244, 27, 39, 18, 97,236,111,165, 89, 84,161, 90,173,110,141,130,132,102,215, 15,105,232,147, 38,211, 14,210, 48, 59,120, +232,195, 70, 98,219, 30, 60,132,220, 19, 75,218,173,186,221,198, 0,212,225,234,242,189, 16, 12,221,174,239,119,147,105,107,154, + 52,237,118,155,187, 88, 77, 54,187, 77,211,180,135,203,227,126,200, 49, 54, 13,167,110,187,155, 31, 62,220,236,118,232, 6,110, +119,219,213,237,221, 57, 81,108,171,118, 82, 5, 34, 32,142,132, 14,200,179,197, 17, 32,174,239, 46,171,186, 85,131,216, 78, 60, +111, 53,167,201,116,174,125,127,248,228, 51,169,107,161,128, 68, 67,191,110,170,202,156,243,176,251,228,179,103,159, 60,126, 48, +155,183, 85,172,114, 78,183, 87,231, 39,239, 94,189,125,243,234,219,231, 47,127,243,252,197,203,247, 31, 46,174,174,171,170,249, +135, 63,251,197, 95,252,147, 95,205, 38,147,174,219, 46,167,179, 31, 62,157, 62, 56,154,156,189,123,247,205,111,126,123,122,122, +250,240,201, 3, 90, 78,190,254,250,197,171,119,103,235,237,246,155,175, 95, 45, 57, 62, 60,152,197, 24,162,196,194,141,169, 66, + 76, 57, 37,205, 12,140, 60,246, 35, 93,221, 71, 12,212,248,126, 61,206,102, 13,172, 20, 57,193, 1, 64, 93, 17, 25,152,204,161, +144, 23, 93, 33, 25,152, 89, 21,169,156,131, 57,149,138, 59,231,236,136, 46,194,102, 88, 79, 38, 34,108,230, 89, 19, 49,115, 16, +115,205, 89, 5,145,137,173,220,112,165,220, 27, 77, 68, 68, 56, 4, 73,102,166,185, 60, 36, 76,205,202, 22, 0,188,116,145,212, +220, 17, 68,196,212, 82, 74, 69,222,141,200, 64, 20,131, 4, 33,115, 52,223,103, 63,220,134,161, 44,125,124,211,237,182,219, 45, +131, 11, 19, 48,215, 76, 68,104, 14,106, 88, 30, 90,229, 47, 48,179, 0,248,144, 19, 34, 75, 16,130,130,149, 39, 24,115,110,110, +128, 66, 24, 57,150,254,148, 1, 49, 18,141,221, 20, 49, 53, 71, 23, 34, 33, 41,164,179,171,245,234,176, 14,135, 7,203,172, 86, + 20, 64, 35, 56,160,144,208, 75,252,159,152,136,178,121, 32, 68,132, 52, 62, 86, 65, 68,204,188, 31, 50,120,138, 28,135,156,248, +175,127,245, 87, 37, 39, 15,123,239,236,120,232,220, 11, 41,168, 92, 21,217, 11,210,182,244, 51,199, 55, 48, 51, 32, 2, 96,230, + 98,156,160, 50,115, 40,187, 20, 4, 51, 71, 68,161,176,217,110, 20,112, 82, 85,251, 20,211, 94, 90, 94, 34,131, 28, 96,159,171, +188, 95,112,239,139, 10,229,201, 50,142,211,247,190, 17, 36,166,241, 21, 10,203,129,111, 99,240,166,184,250,138, 89,209, 1, 8, +164, 52,161,220,220,242,104, 41,221,155, 8, 9,144, 71, 29, 70, 25,152, 48, 49,130, 39, 68,124,250,228,193,239,158, 63,151,170, + 9,196,177,109, 69, 66, 0,251,219,223,124,251,253, 47, 62,157,182,205,197,229, 69,213, 78,206,222,191,206,202,147,182, 97, 10, +247,168, 49, 4, 36,150,113, 28, 63, 26, 38,199, 94,215,254,241, 54,198, 25,209, 74,180,115, 60,217,203, 99,207, 76,247, 82,243, + 17,145,140,123, 67, 86,225,173,150,220, 99, 81, 71,142, 92,161, 2,243, 17, 70,166,189, 2, 4,220,209, 64,171,122, 6,165, 3, +194,162, 93, 66, 38, 22, 25, 97, 53,177, 2,135,171,243,243,219,235,219,118, 58,153, 76,166, 87,103,151,206, 68,204,170,105,216, +174,171, 16, 21,105, 58, 95,134,216,110,111, 46,185,142, 8, 20,155,249,229,155,175,218,182, 22,162,179,203,171,247,103,167,183, +171,245,116,118,240,189, 47,126,208,111, 87,117, 12,117, 8, 10,192,213,108,126,252,164,158, 31, 17, 49,152,215,147, 73, 61,153, +109,215,151,105,123, 87, 62,172,238, 14,154,250,126,171, 67,207, 33, 94, 93,126, 20, 66,142, 21, 34,130,234,205,106,245,155,215, +111,175,118,187,100, 94, 19, 50, 59, 1,182, 77, 27, 98, 0,240,193,212,145, 88, 74,114, 46, 50,128,101,155, 46, 14, 31, 28, 29, + 31, 28, 28,221,221, 93, 44, 38, 51, 33,138,177, 33,130,229,124, 41,177,218,117,221,135, 15,175, 86,215, 39,230,146, 82, 46,237, + 24,150,170,174,170,197,242,120, 80,173,170,138, 67, 3, 8,211,233,162,239,214,221,144,155,182, 13,213,172, 95,221,132, 80, 77, +167,203,118,210, 58,133, 52, 12,204,236,136, 46, 85, 55,116, 76,178,221,172, 39, 77,197, 85,197, 64,117, 21, 63,188,127,254,248, +209,179,108,112,123,119,113,117,119,147, 21,150,211,217, 98,126, 88,183,179,161,219, 90, 78, 82,213,230,212,182,109,100,122,251, +230,107, 12, 77, 12,181, 84, 13,161, 6,198, 97,183, 69,230,245,234,162,235,179,230, 62, 86,147, 97,232, 99,172, 16,252,224,209, +131,103,159,125,122,116,124, 24, 98,176,156,239,110,174, 78,223,191,126,255,230,245,243,215,175,191,121,249,242,229,187,247,111, + 78, 78,192,237, 31,254,226, 31,253,213, 95,254,235, 79, 30, 63,203, 78, 85,208, 79,151,252,233,113,220,172,174,126,251,247,191, +249,240,238, 3, 8,183,199, 7, 55, 55,183,191,254,237, 11, 22,190,188,188,141, 41, 29,181,237, 98, 82, 35, 11,130,179,112, 85, + 87,228, 48,168,186,131, 8, 7, 33, 40, 31, 85, 46,214, 57, 42, 27,166,113,215, 3,152,243,120,174, 19, 98,206,138, 52,222,199, + 83,206,149,176, 48,169,121,246,204,136, 76,148,205,212,157, 1,133,169, 79, 6,238, 34,165, 75, 47,109, 59, 41,252,188,114,122, +121, 89,200,237,103,227, 68,232,227,176,150, 20, 12,192,163,112, 54, 23,100, 0,136, 33,218, 61,224,171,100, 19,192, 16, 8, 0, +133,198, 40,118, 86, 64,100, 17, 97,230,200,196, 28, 0,201, 74,142, 19,165,192,112,128, 48, 48, 57,192,166,239,182, 93,151,116, + 80,213, 16, 66, 93,213,230,168, 8,129,136, 3, 23,208, 20, 33, 16, 81, 26, 6,119,148, 32, 64, 68,142, 34, 33,229, 92,238,207, +230,134,224, 69,174, 22, 3, 35, 10, 73, 96, 70, 46, 48, 3, 3, 53, 37, 26,169,130,194,104, 0,103, 55,183,145, 96,210, 78,193, +129,137, 2,139, 19, 49,161, 48, 15,106, 89,115, 96, 20,142,197,117,138, 69,130,231,206,128, 8,144,220, 83, 30,250,156, 8,221, + 28,220, 53,105,230,191,249, 87,191,162, 50,204, 26,157,121,190,175,166, 2, 48,151,141, 51, 98, 1, 3,112,217, 1, 20,211,105, + 65,163,112,161,157, 48,162, 59,151,171, 61,221, 27,174, 75,210, 18,137,208, 83,119,181,238,142, 22, 83, 27, 39,232, 14,230,200, +196, 44,200, 12,232,180,255,255,142,226, 58,218,179,112, 9,205,246,146,163,194,194, 33, 6, 66, 27,239,236,232, 58, 0, 18,161, +184,233, 94,165, 84,110,196, 94, 70, 52, 82, 64,190,238,229, 96, 47, 98, 87,162,241,112,164,125,154,144,101, 52, 92,147,176,101, + 99,137,211, 70,158,191,254,216,212,117, 83, 55, 28,226,164,174,111,175,111,191,122,254,234,151,127,246, 99, 51,121,242,233,119, +187,237,205,241,227,167, 58,108,205, 13, 24, 17,156,165, 38,145,251, 63, 58, 34,186,170,221,227, 4,202,202,185,184, 80,136,156, + 24,247, 23,120, 26,137,237, 72, 33,236, 93, 89, 99, 22, 22, 70,162,205,216,101, 45, 57, 1, 64, 96,145, 82,109,130,209,215, 72, + 37,168, 58, 82,111, 0, 0, 40,112, 32, 98, 87,115,211, 17,234,108, 6,128, 18, 35,228, 62,196,234,250,234,246,246,250,182,137, +248,224,233,179,243,147,143,195,110, 11, 76,253,110, 35,129, 65,106, 68, 36, 75,253,208, 27, 56,185, 75,219,230,126,115,250,241, +155,195,249,220, 29,222,158,157,157, 94, 92,238,118,187,131,227,199, 63,248,206,247, 97,232, 8,147, 57, 77,150,199, 49, 74,179, + 56, 64, 3, 32,170,154,217,193,131,135,221,102,123,125,113,190, 91, 93,214,211, 35, 51, 37,194,245,245,135,213,221, 77,172,218, +163,227,121, 83, 77,135,212,119,125, 47, 18,250,148,111, 55,219, 23,151, 87, 77,140,235,174, 91,247,195,195,249,124, 54,109,231, +179,233,122,189, 97, 97, 50, 99,196,200, 97,218, 76,102,237,100,215,109,182,235,179,227,135, 79, 34, 35, 64, 2, 8,192,225,250, +242, 68, 1, 84,109, 57,155, 76,102,203,205,106,213,101, 99,176,186,153, 32, 16,152, 18, 11,104,119,112,116,204,168,169,207,196, +177,106,234,180, 93,153, 25, 18, 87,205,124,189,221,138,219,208,173,167,179,165,235,208,119,219,166,158, 24, 0,133, 38, 15,131, +171, 34, 98,140, 85,113,160,107, 78,139,249,236,209,227, 39, 93,242,205,110,123,122,249,209,220, 31, 30, 62,248,236,217,119,235, + 24, 83,191, 33, 22, 98,174,234, 86,200,242,176,155,207, 15,205,211,213,233,199,233,242, 1, 11, 9,203,100, 50, 81,240,122,182, + 68, 14,169,223, 52,211, 67,145,216, 13, 3, 90, 94, 44,167, 95,124,249,195, 39, 79, 63,105, 39, 45, 16,174,175,111,206, 79,222, +190,127,243,234,213,155, 55,223,190,121,245,226,245,155,247,167,167, 87, 55,119,159,127,250,249, 95,252,242,159,253,201,207,255, +220, 52, 93,126,248,246,233, 81,251,189, 71,211,138,236,253,235,215,175,190,121, 30, 39,205, 39,223,253,228,221,249,229, 98, 49, +173, 23,211,183,239, 79, 96,179, 91,214, 97,218, 54,117,140, 18,197,193,170, 88,199,192, 41,185,170,145,140,216,118,131, 34,255, + 36, 65, 38, 44,145,118, 36, 42,119,122, 50, 28, 63,168,128,144, 7, 3, 66, 22, 86,115, 70,170,107,113,245,148, 18, 34, 6, 97, + 0, 27,204,136,152, 1, 72, 72,213,202, 75,108, 74,153, 2,183,117,139, 76,204, 92,133, 90,205,134,161, 7, 48, 66, 82,211, 18, +193,184, 71,216, 6,230,192,130,196, 41,171, 35, 70, 33, 38, 26,114,169, 19, 58, 32, 48,146, 58, 26, 16, 19, 11,145,238,187,129, + 33, 68, 22,138,228, 34, 1, 88, 0, 81,152, 17,209, 0,179,246, 0,206, 68, 8,100,197, 97,175,182,235,187,108,218,132,170,138, +181, 19, 17, 83,164,178,210,132,210, 19,117,247,193,156, 1, 88, 68,193,155, 42, 58,128, 90, 46, 50,234, 98, 84,102, 32, 53, 71, + 43,148, 3,231,146,209,116, 55, 4, 38,102,194,170,138,229,111,187,170,157,221,172, 64,243,225,114, 25, 42,145, 32, 37,235, 29, +152, 17, 73,221, 17, 85,136, 41,132, 49,134, 87, 8,132, 56,162,150,179,186,217,136,184, 76, 57, 89, 82, 4,207,170,252,215,255, +226,175,240,126,147, 58,254,168,246,179, 10, 47, 66, 40, 35, 68,183, 34, 28,221,223, 66,177,140,154,138,224,169, 96, 23,198, 41, +119,121, 27, 64, 42,207,121, 64,112, 55,171, 99,184,188, 91, 31, 30, 44,193,108,132, 30,151,121,178, 4, 0,195,189,203,124,124, + 73, 26,175,245,123,248,121,129,247, 96, 49,132, 56, 49,141,192, 96,146, 98, 80, 50, 55, 0,115,244,145,248,179,231, 35,224,200, + 87,128,255,252,120,101, 34,102,218,203, 67, 70,217,202,152, 31,247,123, 40, 36, 32,226, 98, 49,127,251,246,221,102,151,234,166, +153,205, 22, 36, 60,109,171,111, 95,190,221,116,221, 31,124,249,244,234,118,117,248,224,225,203,223,253,221,237,237, 93, 12, 33, + 86, 77, 85, 85, 99, 99, 96, 28,109,241,254,203, 24,185,239,123,220,111, 9,174,250,189,129,182, 76, 97,246, 24, 6, 7, 40,143, + 52, 40, 67,202,189, 55,145, 0,156,144,178,233,248,164,114,119,213,113,196, 4, 5, 71, 44, 80, 54,199,128,136,228,142,205,108, +129, 4, 28, 24,172,180, 81,106, 98,166, 40,224,102,106, 84,197,179,247,167, 55, 23,167,143, 63,255,242,240,104,241,246,197, 55, +102,142, 24,136, 2, 50,166,237,157,176,116,125,202,238,147,233,212,128, 67, 85,107, 63,156,159,126,253,224,224,168, 79,195,155, +147, 15, 23,151,183,219,190,251,206,103,223,123,116,120, 4,158, 98, 61, 5,183,170,105,219,233,220, 12, 8,105,189,186,155,212, + 49,198,184,190, 91, 27, 65, 85,207,171,186,234,215,183, 64, 2,110,171,187,107,215,158, 45,137,136,230, 30, 12, 84,251, 58,214, +231, 55,183, 31,111,110, 99, 8, 67, 26, 86,187,206, 28, 22, 77, 67,232,204,236,106,102,185, 64, 89, 99,172,146, 14, 72, 50,157, + 46, 93, 7,115,234,115,182, 97, 75, 14,219,108, 57,231,110,123, 55,157, 29,116,219,187,203,147,215,199,143, 62, 25, 20,118,219, +205,144,135,221,234, 22, 67,157,182,215,211, 73, 43, 18,171,102,154,134,222,115,202, 57, 97, 8,145,171,224, 3,144,232,230,182, +235,215, 77,156, 24, 64, 21, 42,205, 3,120,202,105, 48,184, 71,168,142,233,216,190,235,143,143,142, 85,211,201,233,199,179,203, +243, 39, 15, 63,249,242,241, 35, 83, 36,130,197,242,176,236, 75,178, 38,137,177,235,187, 40,113,117,117,162,142, 28,171,186, 93, + 28, 45,143,154,201,140, 37, 84,245,132, 8,135,221,102, 58, 63,220,237,182, 49,192, 39, 79,159, 62,253,226,243,167,159,127,177, + 88, 46,136,176,239,118, 55,103,167, 31, 63,190,124,245,234,197,139, 55,111,158,191,125,251,238,227,201,233,229,101,211, 46,126, +254,199, 63,255,229, 47,255,194,186,205,118,115, 61,107,195,247,159, 46, 63, 57,170,110, 47,206, 95, 60,255,230,221,219,247,135, +143, 30,200,172,122,241,246,228,250,250,166, 75,233,255,253,143, 95,181,128,199,139,121,185, 56,147,176,136, 4, 9,238,150, 28, +152, 40,198, 88,208, 32,128,140, 68, 18, 2, 99,240,241, 98, 49,210,172,156, 72, 93,105, 60, 8,208,212, 75, 25,221,178, 85,194, + 33, 80,202,170,230, 69,135,170, 6,227,210,110, 63, 61,117, 0,205,153,144,129, 32,105, 70,192,226, 80, 27, 73,217,238,130,148, + 53, 83,201, 12, 2, 32, 64,118,207,170,129,217,202, 59, 43, 67, 8,146,239,239, 79, 8, 68, 20,152,145,136,139,183, 20, 81, 77, +109, 20, 42, 1, 19,212, 85, 85,104,145, 33, 10,222,147,174,144, 0, 48,136,236, 99,131,132, 68,234,168,154, 43, 98, 38,169, 98, + 85, 87, 53, 34, 38, 29,157, 10,149,136,150,219,228,190, 12, 90, 7, 41, 1,237, 50,240, 41, 55,223,177,186,104,102, 37, 75, 1, + 44, 68,169,196,138, 0,138,254, 21,247,133,210,219, 46,245,155,221,241,114, 30, 37, 34,115,217,101, 10, 23,170, 64, 65,251,114, + 54, 37,116, 33, 6,135,178,113, 69,148,108, 57,171,129, 41,130, 7,102, 7,247,236,217, 70,244,174, 20,172,126,153,101, 56,148, + 50, 17, 22,138, 11, 32,154,106, 73,168,143, 50,220,226, 38, 33,134,130, 24,199, 82,252, 45,214,108, 48, 4,244,209,190,173,217, + 36,148,107, 39, 56,184, 48, 5,240, 97,200, 65,112,108,245,208,152,122,220,251,181,131, 83, 46, 49, 72, 98, 34,100,240, 12,128, + 72,209, 45,151, 29, 62,252, 30, 74,227,128, 72,158,198,111,175,129,129,209,216, 85,200,128,251,248,225,200,231, 2,118, 4, 34, + 87, 32, 30,171,183, 72,227,230,220, 29, 56,160,235,200,242, 45,128,175,125,250, 7,255,228, 39, 63,248, 95,255,205,223,206,166, +147,217,124, 81, 85,213,131, 7,143,126,242,131,239,254,251,255,248,187,239,125,254,201, 98, 62,149,120,180, 60, 56,110,166, 7, + 96,125,183, 93,199, 16,144, 1, 89, 10, 31,127,100, 31,239,255, 65, 32, 71, 67,211,114,252,155, 27, 1, 56,146,103,245,189, 41, + 11, 65,129,198,225,220,248, 14, 68,163, 53,214,209, 16, 11, 78,136, 16,201, 77,157,120,124, 38,151, 14, 24, 21,111,148,140,111, + 87, 68,238,136, 28, 16,140, 81, 48,208,158,182, 3,160, 35, 28,199, 1,250,126,144,170, 70,203,150,147, 84,211,108,131, 75, 64, + 55,161,137,199,206, 0, 84,135,102, 50, 75, 67,230,186,133,156,239,110,207, 8,200,193,134,174,239,118,131,186, 1,203,241,193, +131, 24, 34,104,101,121, 72, 57, 69, 96,215, 60,236, 86,210,204,183,219, 93,253,217, 60,155,165,220,161, 3,115,180,220, 73,172, +183,235, 85,183,221, 78, 39,243,213,237, 37, 66,149, 82, 87,133, 26,155, 44, 60,185,219,110, 46,214,171, 24, 99,215,237,234, 88, + 85, 49,158,175,183,191,121,255,225, 39,242,217, 52,106, 51,169, 25,133,136,173,108, 59, 28,145, 41, 84, 19,239, 87, 9, 58, 71, + 89,111,187,192,146,179,166,126,215,111,174,211,110,215,167,158, 98,187,187, 62, 23,169,234,217,252,118,117, 59,244, 55,146,166, +152,181,219,109,155,201, 18,192, 2,161,185,138,196,233,100,142,238,105,219, 53,117,211,175,184,170,231, 28,216,147,154,169, 83, + 76, 93, 63, 12,155,102,113,228,160, 68, 21, 48,231, 60,244,119, 87, 18,226,219,147,183, 8, 72, 34,143, 14,142,107,241,215, 47, +127, 23, 15, 62,205,187,174,173, 99,223,247, 57,231,205,237,105,221,206,186,205,102,246,228,139,156, 82, 2,158, 47, 30,144,224, +102,183,157, 49,162,199,174,187, 11,213,108, 58,155,109,118,187,249,114,241,228,147, 39,135,199,143,155,105, 91,213, 85,206,233, +238,242,242,246,234,236,227,199, 15, 31,206, 78,223,159,156,158, 95, 93, 95, 92, 93, 7,145,159,254,232, 31,252,225, 15,255,240, +248,193,163, 97,232,171, 42,252,228, 59, 15,231,147,184,219,172,126,247,235,111,207, 79,207,143,143, 15,226,114,126,114,117,117, +246,187, 27,142,116,113,118,181,186,188,125, 60,153,182, 85, 44, 54,212, 32, 17,129, 96, 20,228, 65, 0, 42,121,152, 97, 72,132, + 16,152,178,187,185, 17,114,182, 68,232,112,207,219,118,173, 88,134,172,163,141,205,140,160,160,100,196, 0,250, 93, 14,145, 69, + 0, 28, 82,214,209,226,137,134,232, 76,148,212, 8,177,137, 1,152,187, 93, 26, 63,255,134,125,215, 73, 16, 50, 48,243, 97, 72, + 4, 0, 76, 14,150,179,138,112,195, 49, 83,206,232, 8, 32,196, 14,168,238,224, 94,104,169,165, 53, 57,152, 11,177, 16, 13,160, + 57, 89, 16,102, 34, 7, 8, 76, 37,252,147,213,154,186,174,154, 70,179,101, 48, 80,141, 78, 61, 0, 58, 16,129,129, 27, 1, 58, + 78,234, 32,132, 41,107, 29, 67, 12,161, 12,165,195,168,200,246, 62, 37, 34, 2,183,146, 73, 65,199,156,141, 3,147,131, 25, 18, +129,250,152,136, 83,119, 17, 26, 15, 75, 70, 43, 3, 9, 5, 4, 53,231,128,104,106, 34, 97, 51,164,245,106,125,180,156, 55, 77, + 3,192,138, 70, 96, 40, 84,232, 47, 99, 83, 19,176, 14, 17, 16, 85,205, 65, 27,174, 18,104,202,169,140,199,220, 93, 53,185,187, +154, 3, 58, 19, 6,129, 65,139,235,138, 70,115, 19,162,152, 91,137, 96, 59,104, 33, 68,152,161,151, 19,115,159,113, 47,135, 35, + 90, 49, 37, 57, 2, 1,255,254, 57,171,106, 5,126,175,230, 2,160, 37,211, 45, 82, 7,223,245, 93,144,118,212,162,250,239, 57, +136, 48,218, 48,200,192,205,148,137, 75,253,117,204,252, 23, 11, 17, 8,130,238, 69,166, 37, 23,227,132,232, 90, 86, 41,224,186, + 15,114, 34, 48,129,105,233, 50, 16, 21,177, 8,128, 7,100, 97,203, 90,176,100,238, 10,194,160, 5, 79,227, 54, 66,119, 96, 12, +174,104, 78,217, 31, 63,124,242,229,103,167,175,223,157, 78,231,203,199, 79, 62, 9, 77,252,244,233, 39,215, 55,119,255,230,255, +254,251,127,253, 79,255,209,201,235,231,103, 39, 31,230,203,254,217,151, 95,158,188,125, 61, 12,179,170,145,194,243, 28,195, 67, + 8,238, 58,230,247,115, 66, 66, 96,178, 62,151, 1,184,153,187,237,223, 43, 75,186, 31,145, 73,124,223,244, 27, 17, 57, 12,224, + 96,106,136, 78, 92, 84,175,163,111, 27,220, 29, 84, 36,142, 73,248,130,154, 4, 29,223, 97,176,144,158,193,164,252, 29, 96, 24, +193,153,232, 41,133,233,212,250,164, 41,143, 16,110,145,156, 6,205,157,107,118, 51,138,220, 13,125,182,220,180, 11, 70,204, 57, +233,221,201,224,113,183, 89,205,154,214,145, 55, 67, 63,148,196,130,250,131,137,208, 40,116,113,138,109, 51, 95, 18, 83, 69,144, +186,221,195,163,229,242,112,121,113,122,182,186,185,154,204,231,185,219,176, 52,204,113,210, 78,230,179,233,199, 87, 95, 1,241, +228,240,225,110,117,177,238,110, 69,164,101,188,217,172,110,182, 91, 38,154, 78,166,151, 55,215, 77, 93,153,250,215,239, 62, 48, +243,207,190,243,172, 69, 97, 52, 53,159, 52, 77,221, 84,144,116,151, 50, 0, 12,102,145,132, 98, 12, 18,178,165, 88, 69,178, 76, +177, 30, 82,183,222,238,152,105,219,117,135, 7, 19, 14,146,163, 66,208,139,128, 0, 0, 32, 0, 73, 68, 65, 84, 92,245,185, 78, + 59, 52, 5,131,221,234,186,158,204,251,212, 3,113, 45,188,189, 61, 3,105, 61, 27,162,186,233,124,118,148,114, 55,244,155,172, + 30, 99, 59,157,207,132,142,145,195,144,134,172, 3,246,202,129, 87,185, 91,223,222, 60,125,242,236,225,193,193,186, 31,220, 13, +176,218, 14,137, 85,251,148,114,218,101,243, 71, 79, 62,245,212,113,172,234,102, 89,199,138, 14, 31,244,219, 91,215, 33,155, 24, +122,186,190,146, 80,117,171,179,201,193, 19,239, 55,159,124,247, 7,207,190,252, 97,213, 84, 49, 86,154,211,234,246,250,230,242, +236,226,252,228,253,135, 15,111,222,125, 60,191,185,190,190,185,219,244,221,231, 79, 63,255,241, 23, 95,124,247,187, 63, 86,221, +154,237, 30, 45,103,159, 29, 31, 50,218,221,237,213, 55, 95,253,166,157, 77,143,158, 62,250,240,238,221,193,147,199,121, 5, 87, +215,215,179,170,122, 52,109,166, 77,163, 6,206, 12,128,149,136, 48,247,169, 31, 15,119,230,100, 57, 15,185,112,238,136, 56, 67, +105,206, 91,246, 44,128,238,158,203, 43, 30,146,170,171,167,242,198,108,217,132, 9,204,221,113, 80, 19,182,182,109, 82, 78, 62, + 46, 97,109,252, 43,136, 8, 64, 93,223, 75, 96,119, 87, 64,200, 57,196,178, 85,130, 97,216, 33,196,174,219,130,131,170,194, 24, +224, 35, 54,144,192, 10,158, 93, 17,209,221,132, 37,155,103,115, 70,171, 99, 76,163, 21,154,220, 60, 34,103, 75, 69, 53, 76, 97, + 44,147, 74,140,253,144,192,148,153,171, 42,150, 70,120, 61,109, 25,100,215,237,134,161, 83,179,200, 1,203,229, 8, 77,205,213, +189,169,171, 9,177,187, 5, 10, 10, 70,224,204,188, 27, 58, 33, 10, 72,125,210, 42,112, 54,119,247,209,165,138,100,228, 90, 98, +245, 76, 57,187, 42, 8,221, 95, 77, 81, 29, 3, 67,100, 73,140, 0,174, 57,169, 58, 51,239, 44, 95,173,110,231,109, 61,155, 47, + 52,247,128, 74,136,238,164,201, 42,102, 4, 80,128,128,132, 76,106,106,150, 9,137, 36,118, 57,185, 25, 33, 76, 42,222,118, 62, +120, 2, 70,102, 73, 58,140, 67, 21, 48, 85,227,191,249,171,127, 10,132, 88, 46,131, 14, 37,202, 2, 4,123, 52,185,187, 57,149, +152, 34,151,179,143,137,246, 95,114, 81, 45, 49,114, 1,203,140,171,130,145,182, 76, 4, 86, 82,234,232,196, 12,121, 88,247, 54, +107, 27,216,155,186, 73,246, 64,131,177,192,227, 69,144, 13, 99,141,184,128,182,246, 90, 21, 51, 44,221, 4,252, 61,101,126, 4, + 14,140,138,110, 40,239,239,132, 88, 94, 68,202,108,100,252,101,101,138, 65,227,107, 6, 16, 56, 20, 34,205, 61,109, 14, 17, 65, +132,238, 79,121,119, 52,240,167, 15,151,223,190,122,147,210, 48,157,206, 38,147, 69, 51,105,217,244,197,155,247,243, 89,123,124, +184,252,228, 59, 63,172, 2, 13,131,137, 64, 30,114,140,209, 53,151, 37,193,248,240,227,145,159, 51,102,120, 96,255, 36,115,221, +175,153,201, 85, 71,114, 77, 16, 55, 71, 36, 14, 97,220,133, 48, 33, 50, 20, 40, 13,141,192, 5, 4, 64,164, 82,121,229,241, 22, +127,207,141,252,125,170, 65, 51,214, 85, 4,150,210, 8,227, 58,122,182,130,191, 65, 0, 10,162,154,175, 46,111,187, 33, 79, 39, +211,131, 71, 71,239, 94,191, 35,105, 76, 21, 65, 81,234,213,245, 41,113,104,218,182,219,221, 73,140,110,166, 78,155,187,211, 73, + 35,194,116,126,121,125,122,113,121,189,190,107, 38,179,127,252, 95,254,147,213,234, 70,152,221,210,226,248, 33, 14, 29,114, 19, + 39,179,201,124, 81,214,179,183,151,103, 0, 52, 93, 30, 64,218,173,238,238,186,110,235,121, 7,110,196, 33,245, 93,197,232, 57, +197, 24,251,126,183,217,236,158,127, 56,253,230,253, 73, 54,173, 66, 21,165,206, 90, 4,132,252,225,234, 10, 28,166,109,235,234, +211, 73,219,165,132, 37, 69,132,156,211,182,110,230,234,158,114, 74,221,106,189,237,189, 84,254, 98,181,217,174,204, 93, 77,147, + 51, 35,130,246,185, 91,109, 7,173,219, 89,191,187,227,170,101,242, 40, 81,251, 13,114, 85,181, 97, 24,122, 55, 4, 75,132,184, +219,221,177,136,187,182,237, 98,125,115, 90,215,211,105, 59, 97, 68, 17, 4, 55, 85,184,184, 58, 89,173,239,212,168,110,231, 13, +179, 73,180,212, 55,205, 68,152,155,197, 3, 29, 54,150, 19, 73,152,206,150,110,249,238,246,250,193,163,167,199, 15,159, 76,102, + 83,194, 0,150,186,212, 81,168, 43,225,205,221,117, 53, 91, 54,179,229,226,224,224, 15,254,228, 23,159,126,239,251,237,108, 74, +196,219,205,221,229,213,201,201,219, 55,175, 94,189,124,249,230,245,243,183, 31,222,159,157,223,173,215,243,233,226,151,191,248, +243,191,252,239,254,251,118,118, 52, 88,255,232,225,195,207,143,234,103,199,237,230,238,250,237,203, 23,223,124,253,237,147,207, + 62,141,203,217,191,251,219,191,127,240,224,248,242,230,246, 55,191,254,246, 97,219, 28,207, 39,128, 92, 0,233, 85,164,166,170, + 9, 41,171, 39,245,146, 64, 40,141,121,205, 9,108,140, 23, 19, 1, 3,101,205,229,205, 61,153, 17,161, 48, 35,160,170, 5, 97, + 34, 30,205,206,140,165,159,195,204, 49,114,206,154,109,196,148, 11,163, 90,185,145, 1, 5,140, 65, 76, 97,124,153, 46,200, 71, + 26, 89, 52,238,168, 57,131, 89, 54, 13,136,204,236, 0, 81,162,237, 9, 35,184, 7, 88,149, 5, 85,225,240,148,200,130,136,140, + 51, 37, 0,117,199, 66, 64, 33, 22, 33, 53,199,189,140, 65,205, 99, 8,109, 59,169,155,118,159, 83, 48,116, 48,183, 40, 34,145, +213,204, 84, 99, 8, 72,100, 62, 10,252, 16, 33,169,166,108,130,132,196, 57,123, 93, 9,145,152,121,206,206,130, 76,161, 44,117, +131, 80,206, 90, 12, 36, 65, 8,144,205,140, 8, 73, 40, 74, 68, 4,102, 22,137, 52,190, 97, 27, 0,174,187, 4, 41, 47,231,179, +200, 20,235, 10,129,213, 85,208, 89,216, 44, 51,146, 16,141,204, 64, 68, 33,206,238, 57,165,148,115,133,132, 20,179,102, 24, 89, +177,168,106, 66,232, 6, 89,179, 48,187,155, 96, 97,204, 91, 17, 28, 26, 24, 1, 0, 49, 27, 26,186,187, 58, 17,154, 58,162,129, +149,187,182,123,118, 39,196,194, 9, 0,116, 7, 45,110,111, 55, 87, 47,143, 10,194,226, 59, 29, 25,186, 57,217,108, 62,127,255, +234,132, 30, 44,161,228,105,145,144,196,192, 93,129, 4,203, 44, 26,198,217,213, 56, 92, 1, 47,176, 45,190,215, 24,141,139,203, +113,119,234,196,226,234, 8,110,234, 44,156,135, 60, 50,184, 28, 12,139,113,213, 0, 16, 5,193,246,222, 65, 32,115, 43, 41,121, +188, 71,240,222, 27, 51, 20, 74,112,168,228,154, 84,181,138,213,159,254,236,123,255,219,255,249,235,249,116,214, 76, 91,161,112, +252,232,241,179, 39,151,255,199,191,255, 79,223,253,252,211,205,213,201,251, 15,239, 9,163, 68,110,219, 73, 93,215, 18, 35,161, +170, 1,163,192,168,139, 42,182,151, 66,169,115, 34,214,212, 3, 17, 20, 66,129,106,249,246,162,144,233,232,176, 85,205, 56, 86, +125,141,164,180, 75, 96,156,130,129,187,105,201,115, 1,154, 59,149,242,153,155, 35,149,183, 31, 41,105,168, 24, 3,114, 64, 38, + 10,194, 68,150,114,209,160,163,187,199, 74,147,186, 67,238,182, 67,191, 75,121, 32, 3, 2,236,250, 77,136,147,148,125,123,115, + 86,183,139,102,118, 52,116, 27, 68,214,190,231,106,106,253, 46,167, 97,114, 48,203, 41,119,253, 48,100, 27,186,244,228,241, 3, +138,109,104,102,152,186, 56, 59,172,218,101,191,237,168,170,208,108,216,108,218,217,209,250,238, 90, 83,215, 46, 22, 66,212, 35, + 94, 95,157, 46, 14, 30,109,239,174,167,243, 67, 17, 57, 56, 92,244,119, 55, 44, 65,181, 7,105,179,247, 23,171,213,217,205, 77, +219, 86,102, 62,109,218,202,227,174, 31,102, 77,219, 84,213,139,211,139, 42, 86, 63,250,236, 9, 51,207,234,233,114, 57,235,186, +225,230,230,188, 75,105, 24,122, 34, 70,174, 82,159,114, 26, 80, 98,206,195,108,190,128, 28, 52, 89, 74,125,234,214,119, 68, 71, +139,121,172, 39,104, 87,102,105,182, 56,170,163,120,182, 97,232,118,119, 23, 92, 15,136, 11, 38, 26,186, 27, 66,195,208,206,166, + 75,116, 50,244, 73, 83,221,198, 42, 15,119,170, 65, 53,139,230,110,183,187, 94,111,152,165, 14, 50,155, 63,184, 91, 93,223,110, + 86,134, 64,154,114, 26,220,109,182,120,152,211,110,121,248,232,246,246,114,189,186,238,251, 65,194,180, 27,244,228,171,255,103, + 50, 61, 88, 30, 62, 48,183,182,106,154,118,126,115,119, 61, 63, 56,254,209, 31,253,164,157, 31, 30, 30, 31, 87,149,228,156,251, +190, 91, 93, 95, 95,156,189,123,251,238,205,201,217,249,201,217,213,217,213,229,245,221,106,218, 76,126,246, 7,127,252, 71, 63, +254,163,186,153,190,124,249,119,237,244,232, 7, 79, 31, 60,125, 52, 77,221,221, 55, 95,255,250,228,253,201,209,147,199,192,124, +122,113,249,226,221,135, 60,164,175,190,250, 70,204,159, 46,103,117, 8,201, 64,152, 17,169, 10, 76, 84,240, 44, 22, 98,108,155, + 58, 13,189,170,130, 89,233,203, 88, 89,126, 66, 25, 5,148,172,130, 23,149, 0, 33,245, 41, 69, 14,200, 52,104, 14, 36, 34,140, +238,230,206,140, 76, 56, 36, 75, 29, 56, 19, 0,162, 25, 16, 21,145,230,190,236, 8,125,202,132, 24, 98, 25, 49,187, 48, 7, 9, +217,178,153,170,230,162,182, 22,100,226, 17, 90,158,221,145, 75,227, 27,205,202,219,171, 17,137,136,244,125, 18, 66, 36, 84,211, +172,101, 82,237, 5,249, 72, 35, 37, 11, 84, 29,185, 8,244,220, 92,131, 8, 33,246, 93, 55,164, 76, 72,217,243,208,247,224, 78, +232,131,102,200, 8, 8, 18, 99,105, 96,133, 24, 80, 61,129,230,148,128, 32,148,190, 9,141,105,115,119, 43,211,126, 7, 83, 27, + 0, 28, 28,147,105,249, 69,131,165, 98,237, 99, 17,112,103, 14,132, 96,206,224, 70,104, 64,228,110,140,124,215, 15,219,245,230, +209,225,124,210, 54,170, 86,254, 68,117,136, 57,103,116, 39, 14,238,174,166, 76, 65, 4, 93, 45,229,156,179, 18,123,100,114, 33, + 43, 7, 5, 22, 25,108, 16,114, 51, 45,236, 52, 34,128, 1,132, 17,180,204,100,144, 0, 24,198,212,184,141, 64,117,195,123,163, +249, 72, 13,216, 15, 50, 92,141, 36,128, 25, 75, 89, 82,131, 59, 48,161,187,141,123, 78,252,189, 24, 29, 92, 73,234, 38, 98,206, +142,224,229, 5,192,212, 10, 0,216, 11, 91,216,141,202,137,168, 99,135,130,192,243, 8, 43,222,235,213,105, 31,153,119,115, 47, +105, 66, 36, 36,169, 10,172,107, 0, 35, 3,115, 0,166,178,142, 69, 83, 79,128,110,121, 76, 3, 16,168, 59,237, 17,105,165, 64, + 33,132, 99, 96,126, 4,234, 0,122, 80, 55, 6, 28, 82,254,252,201,167,143,143,222,191,120,243,110,121,116,112,112,248,100,113, +120,244,253, 31,124,239,236,226,234,127,254, 95,254,237,191,250,111,127,254,233,103,223,173,106,185,190, 89, 63,125,246,236,250, +244,148,152,156, 8, 24,116, 84, 5,224,158, 51,195, 68, 98,101,151, 43, 1, 28,135,180, 99, 64,160, 64,129, 77, 13,205,145,193, + 82,146, 80,141, 0, 36, 68, 66, 44,100,158,251,244,234,125,231,110,116,137, 35,104,202, 40, 76, 36,251, 98, 7, 33,147, 13, 25, + 34, 99, 96,100,209,190,119,166,125,243, 2,185,146,180,235, 1,145, 67,133, 68,136, 81, 68,192,149, 72, 16,197, 53,107,182, 12, +113, 50,171,119,119,167,195, 96,177,169,192,128,153, 55,171, 43, 25,159,156,150,210,224, 4, 89,117,214,212,253,118, 35, 28,116, + 24,170,229, 19,119, 55, 52,221, 93, 3,122,159,105,105, 25,184,230, 56,113,211,221,230,206,186,141,232,182,173,167, 94, 9,153, + 26, 36,208,184, 53,239,251,126,219,247,174,118,183,190,185, 94,109,213,245,110,179, 11, 18, 66,144, 71,143, 30,217,135,147,171, +171,179,131,217, 28,145,254,238,213,171, 24,165,105, 38, 19, 35,242,165,132, 48, 40, 84,245,146, 64,123, 85, 1, 75,128,109, 51, + 49,247,108,182,233,118,100, 90,213, 45,185, 33, 2,161,119,253,110,209, 54,211,195,199,125,175,253,250,210,114, 94,206, 38, 67, + 31,182,134,112,123, 38,213,212,188, 35,169, 45,173,174,111, 94,198,246,160,169, 39,205,100, 78,228,211,201,228,230,230,170, 31, +250, 16,229,122,221,221,173, 55, 77,213, 78,154,137,166, 45,154, 91, 78,234, 74, 48,165,170,118, 87,142,209, 44,167,100,253,118, +117,125,246,254,240,248,243,229,193,113, 73, 23,214,237,228,102,181,238,178, 79,231,243,221,135,231,186,187,251,201,159,253,215, +207,190,255,227, 80, 73, 16, 1,135, 52,244,235,213,205,245,233,135,183,111, 94,189,253,240,241,227,217,249,217,229,213,213,106, +213,117,253,247,190,248,226,127,248, 23,255,211,197,199,183,125,191,147,118,249,228,193,147, 31,125,126, 52,109,240,226,252,205, +155,111, 95, 78,151, 11,105,155,179,203,179, 39, 95, 60,186,222,236, 78, 79, 47, 23,117, 56,168, 98, 29, 43, 66, 40,165,193,192, + 92, 69,201,102,217,157, 8,235,186, 42,167, 79, 95, 66,236,197,178, 73, 88,110, 18,230,198, 20,220,115,185,220,171,154, 16, 15, +154, 43, 9,201,114,133, 21, 98, 64,180,126, 72,217,124, 86, 87,253,208, 51, 99, 36,114,115, 83, 99, 71, 22,234,146, 2,227,164, +170, 77,181,207, 9, 16,145, 69,246,195,130, 58,136, 35, 15,253, 64, 76,234, 46, 76,238,230,232,117, 19, 7,117,112, 11,132, 74, + 24, 72,178, 90,118, 64,242, 72, 85,136, 65,115, 6,112,114, 20,146, 62,167,148,141, 9, 8, 37, 91, 34,112, 9, 81, 53, 17,178, + 48,198, 80, 37, 85,115, 16, 34,145,232,142, 93,223, 71,213, 16,121,219, 23, 98, 78, 86,183, 97, 72,194,194, 33,224,136, 66, 1, + 66, 32,211,205, 48, 8, 49, 35, 59, 24, 18, 50,177,101, 15,145, 25,209,144,220,220, 5,192, 72,199,188,181, 23,172, 14,131,199, + 32,136,129,220,202,236, 55, 18, 15,230,110, 9,203, 23, 73, 18, 67,236,212,110, 47,175,159, 28,206,167,147, 5,170,151, 52,167, +186,147,107,140,156,179, 41,128,153, 87,194, 56,194,241,157, 80,155, 90,118,253, 48,244, 67,219, 86, 65, 88, 51, 1, 6,243,174, + 12,217, 42,145,242, 72,203,217, 1,153,255,250, 95,252, 85,129, 18,220,199, 34,247,175,251,232, 54,140, 42, 59,192, 61,146,191, + 92,189,209,221,153,208,204, 28, 92,152,169,244, 63, 97,236,153,238,201, 94, 99, 43,108,188, 38, 51,166,221, 26,171, 54,148, 71, +122,233,113, 21, 40, 17,148,197, 67, 1, 80,142, 24, 73, 3, 5, 64,115,231, 81, 65,228,224, 99,181,149, 92,221, 21,192, 16,101, + 28,224, 23,110, 3,142,104, 93,223,227,140, 75,108, 28, 76, 29,204, 61,153,230,130,209,216,255,102, 99, 96, 6,121,156,154,141, +227, 31, 2, 70, 46,133, 37, 0, 32,161,199,199,179, 95,255,238,133, 57, 28, 30, 29,198, 80,185, 89, 19,229,239,126,243, 77, 59, +109, 14,151,211,217,241,147,155,211,247,103, 39, 31,251,110,215, 78,102,197, 39,201,132, 44,161,244,185, 75,172,197, 52,131, 91, +193,253,154,149,144,108,145, 52,101, 55, 71,102, 4,160, 66,133,116, 7, 30,191,207,197,102,139, 72,110,174, 41, 49, 33,241, 56, + 76, 47,175, 32,154, 51,184,150, 47,189,164, 32,202,103,180,110, 23,177,106, 76,149, 24,137, 3,197, 96, 89,209,204,189, 4, 73, +145, 88, 94,252,230,171,190,239,151,243,201,242,201,227,183, 47,158, 35,197,156, 54, 93, 63, 8,123,211,206,182,155, 77, 59, 93, + 16, 49, 5,209,156,114,206, 54, 92,205,167,179,237,110,119,117,115,115,122,113,121,187,217,254,193,151, 63,126,244,232, 19,212, +206,242, 0, 28,134,126, 93, 71,105,219, 86, 51, 85,243,227,136,233,252,195, 55, 92, 77,153,201,140, 82,191,233,251,237,100,126, + 96, 57, 77, 23, 75,118,212,221,238,228,252,125, 86,100, 8,169, 31,222,157,159,191,185,184,238,135,220,165, 62,144,148, 0, 66, +136,114,187,222,172, 54,235, 7, 71,135,219, 93,255,238,226,108,209, 78,134,180, 5, 0, 22, 73, 41,213, 33, 58,184,154,238,182, +119, 85, 61,233,119,235,174, 91, 35, 32, 75,165,218, 5,137, 93,218, 73,136,221,238, 78, 88,218,118,114,113,246,209,193,170,122, +210, 15,121, 24,118,109,211,184, 99, 54,182,220, 25, 88,219, 46,152,164,235, 86, 77, 53, 65, 16, 3, 35, 4, 71, 28,134, 33,231, +225,244,246,214,129, 31, 31, 62, 56, 88, 30, 1,178, 27,152,166,131,197, 82,234,246, 96,126, 80, 5,217,179,178,243,102,183,173, +218,217,164,138,147,195,135,105, 72,253,234, 60,198,106,182, 56,158,206, 14,115,191,233,251,190, 31,250,159,254, 87,191,252,242, +143,127, 94, 87, 33, 4, 65,132,205,102,115,115,121,246,246,197,215, 95,127,253,187,231,175,223,188,254,240,241,205,201,249,205, +106, 85,199,240,203,159,255,249, 47,126,242, 39,159, 60,123,134, 49,180, 77,251,229,147,233,247, 63,153,107,218,189,125,249,234, +221,203, 55,143,191,251, 25,180,245,111,127,251,245,211, 79,159,188,120,119,250,235,191,253,221,163,182, 94, 78,218, 42, 10,148, + 28, 50, 81, 45, 17, 9,134,114,191, 35,169,171,202,193, 85,147,154, 10, 11,148, 98, 28, 22,181, 36, 10, 83, 32, 41,241,143, 18, + 61,224,200,150, 13, 8, 16, 41, 16, 59,104,182,188,235,123, 4, 12, 76,217,148,144,186,172,110, 90, 96, 89,106, 54,152, 71,230, +192,216,167,156,114, 46,114,248, 40,228,136,102,214,198,160,102, 73,115,121,103, 29, 69,213,128, 85, 12, 93,159,205,146,170, 22, +239, 6, 0, 57,154, 16, 71, 97, 98, 26,114,206, 41,155,123, 19,162,186,186, 91,129, 22,128,155, 0, 5,150,236,230, 0, 33,176, + 58,170, 59, 33, 86, 66,196,156, 82, 50,183, 32,146, 52,119,125, 34,129,156,117,215,117,170,218, 54,117,206,217, 53, 49, 18, 33, + 69, 33, 53,239,213,152, 8, 16,202,216,185,220,210,132, 89,136,179, 89, 25,149, 18, 22, 95, 6, 18, 17, 17,103, 83, 55,207, 14, + 81, 36,198,160,110, 0, 42, 28,144, 73,152, 13, 72,205,170, 82, 72, 33, 62,185,185, 99,203,203,217, 12,204, 32, 8,122,209,207, + 17, 9,151,222, 30,185, 9, 35,161,184,155,130, 7, 70,145,106, 59, 12, 58,244,145, 37,151,215,122, 98,183,220,167, 4,132, 21, + 83,118, 2,176,146,222, 51, 4,254,235, 95,253,243, 2, 12,178,189,105,110,223, 23, 29,231,218, 60, 74, 55, 70, 36, 1,236, 59, + 14,247,160,177,177,177, 92,238, 39,232, 68, 92,216,149, 99,184,124,212, 60, 1, 2,122, 26,182,131, 78,154,186,168, 23, 1, 20, + 73, 70, 37,147,141, 77, 56,119, 48,176, 82,199, 42, 35, 10, 26, 73, 6,123,176,145,187,105, 26, 47,180, 35, 78,158,240,254, 37, + 99,223, 12, 66, 4, 34,161,189, 90, 22, 74, 2, 21,201, 65, 75,232,138,198, 0,252,184,122,184,207, 69,238,255,251,242, 36, 43, + 47, 20, 54,155,205,216,243,183,175, 62, 28, 44, 23, 7, 7, 7, 33, 4, 83,157,212,241, 63,254,167,175,191,243,236,193,124,182, +168, 39,211,155,171,219, 47,190,243,221,237,221, 13, 49, 9,145, 57,236,227, 46,163, 67,170,188,148,236,105, 16, 12,142,158, 77, +193,133,100, 52,194,178, 0, 24,236,135,141, 62,110,111,138, 95, 16, 0,139,113, 23,239,159,153,238,174, 57,237, 86,151, 57, 15, + 44, 21, 7, 25, 25, 79, 76, 14, 20,234, 22, 1, 89,194,168, 98, 5, 7,207, 20,196,251,158,136, 37,132,161,239,222,191,249, 96, + 92, 29, 28, 29, 29, 60, 60,252,248,230,125,223,247, 20, 91,192,200,168,183,103,111,128,235, 24, 69,164,114, 34, 4,200,125,175, +253, 77,136,213,102,187,253,112,118,254,241,252,114, 72,249, 79,255,244, 31, 47, 39,113, 72, 67,153,197, 85, 85, 92, 28, 60,224, +230, 96,117,115,190, 60,126, 84,181,245,249,233, 9, 34,166,237, 93, 74,125, 30,186,201,236,209,176, 93, 15,253,206, 53, 15,221, +250,226,228,165, 26, 70, 9,221,110, 85,183,245,203,119, 31,159,159,158,246,185,215,148,135,156,133, 57,165,161, 79,125, 19,235, +110,232, 17,160,169, 99, 82,187,184, 93, 45,167,203,229, 98,190, 91, 93,214,205,100, 72,249,238,238, 44, 48, 3,137,129,212,117, +221,111, 55, 18,171,166,158,152, 27, 19,109, 54,235,108, 46,177, 65,183,171,219,219, 12, 30,171, 26,192, 93,251, 32, 21,154,174, +239,110,154,118,174,195, 22, 60,115,168,116,216,180,211, 67,137,147, 97,216,170, 38, 0, 24, 82, 94,109,119,131,218,162, 93,212, + 34,117,211,244,187,213,250,238,170,105, 91,145,112,176, 92,244,221,110,215,245,179,233, 36, 15,195,144,146,170, 13, 41, 87,245, + 20, 72,204,114,223,247, 40,245,108, 50, 3,160,213,110,163,230, 77,172,126,240,211, 63,250,226,251, 63, 18, 22, 32,239,119,187, +221,122,115,254,241,253,183, 95,127,245,252,197,139, 87,239, 63,188,254,120,250,225,236, 28,221,127,240,236,211,127,252,243, 63, +251,252,201, 83,103,140, 85,117, 56,159,124,241,112,218,242,112,241,241,227,187, 87, 47,135,148,214,219, 93,103,250,242,219, 23, +183,119,235,215,175, 62,110, 46,111, 30, 78,154,182,169, 80, 8,172, 80, 4, 9, 9, 12, 44,171, 35, 82, 21, 42, 10, 98,154, 83, + 74, 35, 34,144,152, 89,136, 66,249,192, 23,175,145,129,187, 89,209, 28,149, 17,171, 48,152, 90, 45, 92,138,148,110,229, 87,162, +186, 49, 33,145, 48, 2,128,152,233,160,234, 0,194,224,133,223, 91,206,128,209,165,201, 81, 66, 29, 36,101, 5, 55, 52,100,102, + 3, 18, 98,199, 18,197,182, 33, 15,227,145, 10,168,102,102, 57,134, 80,254, 78,149,134,160, 48, 27,162,165,236, 96,229,212, 40, + 30, 4, 97, 50,244,113, 43,133, 52,118,220,203,225, 86, 44, 58, 68,132, 66,136,149, 4, 5,200,230,140,192, 8, 41,167,156, 19, + 0, 85, 65,152, 73, 1,209, 65, 8, 28, 89,136, 74,103, 86, 88, 16,128,137,108,140,218,219, 40, 90, 64,148, 80,194,254,131, 38, + 45,255,211, 66,199, 18, 98, 36, 49, 47,191, 18, 10,137,158, 16,131,200, 77,151,118,219,213,225,124, 30, 75, 55,106,156, 64, 35, + 34,106, 6, 98,144,192,200,236,230, 10,134, 72,194, 84,184,235,232, 94,198,107, 64, 20, 3,151,165,183, 16,133, 32, 10, 8,102, + 4,174, 89,213, 45,231, 44, 40, 1, 93, 11,189,196,247,164,147,251,209,138, 23,102, 26,209, 72,176, 28,235,152,182,143,105, 23, +242, 56,248,126,156,130, 37,238,200,228, 14,251, 32,149,237, 71, 30, 80, 55,205,197,249, 10, 15,102,100, 96, 94,232,230, 25, 28, + 44, 57,162, 33,147,141,231,214, 8,138, 3, 40, 82,139,113, 66,131,192, 37, 3,238, 18,213,148,241, 30, 92,199,128,186, 39,147, +177,147,238, 49,153, 86, 18,174,102,128,196, 44,204,136, 89,139,191,207,113,172,146, 22,143,248,253,100,198,144,144,152,205,188, +100, 43, 17, 16, 49, 12, 74, 63,250,209,247,190,121,249,225,221,187,119,135, 71, 15, 38,147,249,226,248, 72, 85,207, 46,175,255, +237,191,255,245,163,199, 79, 82, 63,236, 54,183, 92,215, 10,105,232,119,128, 88, 2,181,166, 5,118, 77,229, 13,198, 13, 76, 93, + 34,151,146, 19, 48,146,123, 78, 61,138, 16,130,165, 68, 60,254,145,202,232, 9, 17,193,117,127, 65,128,145,125,140,232,166, 36, +140, 44,110, 70, 34,224,108,123, 1,226,184, 49,134,226, 83,119,102,215, 33,113,211,186, 38, 44, 22,202,170, 2,137, 14,150,214, +119,182,187, 5,136,174, 10,166,204,194,161,252,124,135, 52,164,164,216,134,170,219,110,154, 89, 32, 7, 53,239,119,183,101,177, + 53,228,126,219,117, 67,202, 85, 8, 7,109,216, 93,190, 85,108,195,100,174,121, 23,227, 2,144, 79, 63,188,237,119,125,218,222, + 52,213,242,203, 63,248,233,199, 55, 47, 79,222,254,174,158, 30,144, 84,136,149,129, 1,122,183,186,232,182, 29,202, 84,208,130, +224,132,105,187, 94,125,184,190,209,236, 66, 65, 68,251, 60,220,174, 86,179,201,164,170, 99, 91,197,249,100,114,183, 94,179, 80, + 96,233,250,225,239, 95,191,172, 3, 30, 78,219,100,151, 18,154,166, 57,170, 68,239,174,175,166, 7,143,234,192,237,100, 34,161, +233, 82,159,250,181, 89,116, 77,187,190, 23,137, 21, 35, 80, 64,199,126,187,201, 0,149,240,174,219, 49, 97,159, 85,250, 93, 12, +177,223,173,153, 47,164,154, 66, 74,193,185,169, 39,169, 95,175, 54,155,235,235,147,200,205,225,100,145, 92,145, 67, 78, 67,172, +230,253,144,186,110, 59,157, 31, 95,223,221, 14,221,122,179, 89, 5, 38, 68,182,156,169,110, 17,112,183,189, 90, 44, 31, 13,253, +182,110,106, 52,179, 97,123,244,228,179, 93,191,107, 22,139,103,159, 61,123,240,244,177, 83,216,238,182, 58,116,155,187,245,229, +213,199, 15,239,222,191,251,240,225,205,201,233,217,197,205,106,187,249,242,217,231, 63,253,242,139,131,249,193,106,155,110,119, +221,227,163,195, 71,173, 29,206,233,246,230,226,253,219, 55,237,180, 26,192, 6,205,203,135,139,183,167, 23,175,223,124,168,131, + 28,183,173, 72, 9,124, 3, 0,178, 16, 7, 41, 9,105,102,140, 21,141,158,226,100, 14, 40,194,170, 94, 42,220, 33,132,172,150, + 29,177,180,120,204,120,116, 55,131,151,127, 71, 7,128, 24, 56,155, 21,123,176,144,171,249,254,147, 12, 96, 70, 68,217,114,202, +169,239,135,194,160,138,194,196,130,132,213,216,200,103, 97, 30,242,224,138,134, 78,192, 70,142,110,177, 10, 68, 2,217,138,107, + 45, 4, 49,179,253,122,140, 74,219,209, 0, 0,177,140, 82,211, 48,144,155,132,176,237,123,243, 92, 94,100,147,154,163, 16, 19, + 33, 37,119, 70,172, 57,168,171, 22,180, 11, 11, 3, 23,233,178,128,168,155, 32, 83, 69,105,112,207,230,144,171, 88, 73, 33,245, + 19, 69,226, 4,102,102, 21,143,125,159,192,236,238,166, 90, 34,122,196, 66,224, 54,118,104,152,152, 82,202, 80, 84, 36,224,136, + 24, 88, 40,134, 62,101,207, 10, 4,106, 42, 82,230, 60,128,228,219,148,239,238,110,230, 77,221, 54, 77,249, 73,185,131,255,255, + 84,189,215,151,101,201,117,167,183, 93,196, 57,231,186,244, 89,174, 13,218,192, 53, 0,130, 67,209,138,196, 12, 37, 74, 90,212, +112,104,158,134,212,155,254, 73, 45,189,105, 73,163, 53, 67,105,196,161, 8, 52, 97, 26,109,202, 87,102, 86,250,235,142,137,216, +123,235, 33,206, 45, 80,111, 0, 26,171, 58, 51, 43,239, 57, 17,123,255,126,223,135, 94,134, 16, 34,236,101,181,166, 89, 85, 99, + 21, 76, 65,179,150,191, 17, 69, 8,194,149,112,175, 94, 22, 36, 66,136, 8,217,156, 1, 18, 80,159,147,166,161,169,107, 85,227, +127,255, 87,255,227, 8, 98,124,103, 64, 26,143,240, 59, 54, 11,254, 38, 27, 78, 72, 68,193, 11,166,166, 20, 10,162, 32,145,219, +200,146,100, 34,192,119,143,153,113, 35, 58,178, 67,129,136,237,230,230,126,127,190, 55,238, 10,137,139,173,123,228, 16, 4,122, + 39,118, 29,255,205,238,132,100,160, 59,103, 83,193, 64,234,168, 41,228,176,171, 35,141,180,176,209,216, 7,136, 72,130, 4, 68, +130, 92, 46, 35,133, 86, 81,184,138,160,128,140, 52, 22,109, 75, 55,130,129, 10,147,236, 29,125,172, 72,164, 16, 81,144,217,221, +170,192,179, 58,254,236, 87,223, 44, 22,243,189,253,163,130,196, 58,216,159,255,211,231,191,116,247,143,222,127,239,228,209,131, +203,203,183,179,217,188,223,182,177,174,217,199,133, 5,115, 24, 51,151, 14,196,140, 92,252, 34,239,118,186,227, 70,193, 77,193, +205, 85,181,239, 28,180, 60,230,125,132,184,209, 40,131,100, 26, 99, 14, 88,102, 48,198,194, 34, 81, 36, 74,172,138,212,189, 76, +186,204,168,158,206,137,176,188, 25, 98,221, 88, 74, 40,236, 14,200, 1,180,183, 65,157,194,249,155, 55, 57,219,193,233,131,163, +211,195,179,231,175, 33,196,118,189,204,219,155, 46,217,252,240, 33,186, 74,168,203, 97, 72, 29,187,205, 77, 16,101,225,219,155, +229,249,229,237,221,102, 83,215,147,255,238,207,254, 26,136,185,154, 16,241,252,232,116,113,240,240,237,217,139,229,249,215,251, +167,143,231,123,251, 8,116,255,246,217,118,211,237, 29, 62,244, 60,104,214,249,252, 40,229, 62,183,155,183,231,175,238,239,175, +182,219,251,201,108,159, 0,108,216, 92,221,222,252,236,233, 43, 71,209,156, 8,129, 16,171, 32,109,206,168,120,189, 90,214, 85, +188, 95,111,134,156,131,240,188,153,116, 89, 47,175,111, 79,247, 22,179,201, 36,229, 60,169, 39,195,176,110,234,137, 35,247,253, + 96,154,203, 26,142, 44,153, 42, 83,189,191, 88, 16,146,147,228,212,151, 58,116,144,170,164,193,170, 42,106,182,217,116, 58,108, +239,102,123,199,170,154, 21,145, 72,132, 83,191, 94,109,215,142, 20, 83, 90, 28, 62,210,156, 40, 84, 33, 68, 4,200, 57, 15, 67, + 27,235, 41,168,130,231,216, 44,204, 76,115, 18,198, 72, 58,169,154,166,170,182,247, 23,166,221,102,121, 43,213,164,239,214,235, +187,179,197, 98, 95,154,248,254,199, 31, 77,103,179, 48,153,130,234,242,246,234,254,246,230,245,139,111,190,126,246,244,229,217, +235, 87,231,151, 23, 55,119, 93,215,254,248, 59,223,251,201,143,127,119, 90, 87,219,237, 82,170,248,241,123, 71,159,125,231,253, +200,126,246,250,229,213,229,249,225,163,211,181,229,103, 79, 95,206,166,147,167, 47,207,222,188, 56, 63,110,154,195,102, 30,133, +128,198, 81,167, 16, 69,150,194, 58, 68, 0, 3,151, 50,199,128, 34,118,116, 98, 9, 33,136, 8, 16,211, 40, 85, 3,181, 84,142, + 71,230,230, 56, 94,208, 1,144, 2,170, 21,128, 24,160, 89,233, 8,142,151, 98, 70,115, 23, 66, 69, 65,112,181,180,220,180,253, +208,149, 95,248,166, 42, 15, 77,158, 53, 53,160,108,251,174,124,250,199,130, 44,141,149,198,114,122, 29, 93,110,224,234, 16, 36, +148,153, 0, 49,243, 72, 14,192, 29,150,170,216,235,148, 16,179,101, 64,102, 68,225,242, 44,114, 53,152, 84,177, 10, 33,171, 26, + 64,148,192,200, 40,129,131, 8,115, 73,183,112,145, 25,143,228,153,210,185,161,192, 36, 33, 34, 11, 0,140,159, 38,119, 66,246, +145,219, 2,133, 79,238, 14,230,102, 89,137, 9,145, 56,200,144,210,200,188, 65, 68, 32, 17, 6, 26, 79,159,187, 73, 7,186,121, + 96,146, 32,125,182,235,213, 42,160,157, 30, 28, 73, 12, 37,177,142, 72, 54,198, 14,137, 74,211, 5,129, 2, 49,138,170,149,210, +168,186,103,117, 68,172, 88,114,105,232, 3,104, 78,234,128, 0, 33, 4,117, 72,169,213,172, 49,132, 40,146, 77,165,144, 35,188, + 40, 81,105,204, 6,154,217, 8, 13, 54,220,145, 97,202,211,200,220, 7, 40,131,110, 34, 34, 4, 3,196,162,120,197, 17, 12, 89, + 6, 19, 37, 52, 9,142,232,136,196,140, 57, 15,140, 68,168,217, 81,132, 44,239,106,170,132, 84, 66,221,185,232, 62,160,152, 90, + 13,160,248, 0,132,196,124, 76,206,184, 39, 87, 47, 67,157,157,159,111, 55,212, 41, 47, 5, 65, 82, 0, 43, 44, 72, 80,176, 98, + 28, 0,244, 18, 0, 66, 0, 10, 12, 12,144,189, 36, 81, 68,138, 38, 79,203,204,222, 77,203, 44,173,252,235,145,184,164,119,147, +193, 71,159,188,255,193,211,151,207, 94, 60, 59, 57, 57, 61, 56,121,188,183,127,224,150, 62,120,252,240,127,253,223,255,254, 7, +223,255,222,201,233,254,235,103,207,194, 71,159,180, 93, 55, 95, 64,118, 37, 4, 2,115,237, 1,101, 92, 92,141,203, 27, 40, 21, + 39, 40,233,119,205, 72,100, 89, 1,193,114,118, 53, 3,119, 3, 14,145, 36, 32,178, 91, 46, 87, 59, 31,209,171,239, 2,172, 8, +224, 34, 66, 20,202,231,174, 0, 54,205, 11, 69, 58, 8,187,102,231, 72,150,147,230, 36,177, 86,119, 6, 7, 96,174, 88,189,143, +245, 44, 91,139,232, 34, 49, 78,103, 55,175,222, 16, 59, 73,104,151,183,243,189, 35,105,166,106,217,242, 48, 12,125,234,213,117, +136,181,152,218,182,107,219,161,235,186,238,228,248, 68,132, 52,231,146,190,154,204, 22,183,183,151,125,215,214,251, 15, 31,188, +255, 73, 12,184, 93,221,172, 90, 67, 14,195,176, 77, 41,247,237,218,161, 95, 93,191,110,102, 7,205,226,232,232,228,189,156,186, +246,254, 38, 19,105,183,121,246,230,108,185,221,198, 32,204,148, 20, 67,140,132,152,214,235,229,144,212,237,250, 46, 11, 19, 33, +181, 93, 95,133, 88, 5,190,184,189,249,135,175,191,254,201,236, 95, 77,234,104,154,219,182,111, 26,234,135, 13, 58, 74,172,212, +208,135, 62,214,139,245,237,219,189,163,163,105,228,155,126,227,161,233,123,103,142, 96,195,208,183, 36, 2, 2,140,184,183,152, +119,237, 6,144,133, 25,160, 2, 34,215,116,125,183,108, 66, 51,107,166,179,197,209,166,170,153,209, 45,128, 15,166,104, 68, 41, +119,161,154, 4,137,221,208,130,153,118, 43,166, 48,157,238,117,237, 18,133,177, 84,237,129,179, 51,199, 73,234, 90, 4,142,243, +227,106, 62,121,112,242, 96, 50,155,187,230,246,254,166, 93,111, 94,189,126,126,115,119,119,117,125,123,189, 92, 93, 94,223,174, + 54,155,110,232,191,255,193,251,127,240,217,103,155,245,181,204,142, 62,252,214,183, 63,120,114,184, 63,175,110,175, 46,174,206, + 47, 58, 77, 55, 55,203,231,151, 55, 81,232,250,126,121,246,230,178, 66,120, 56,157, 78, 38, 21, 9,155, 90, 0, 84, 53,102, 2, +240, 12, 10, 64,204,145,216,146,105,118, 47,128, 57, 67,140, 49, 16,146,249,200, 42, 41, 65, 94, 83,125,215,187, 6, 36, 38, 0, + 5, 0,138,129,186,161,117, 0,176, 28,165,178,242,153,195,226,254,180,130, 4, 30, 0,132,204,213,186,109, 63,228,108, 57, 33, + 82,227,209, 50, 76, 39,140, 36,217, 12, 0, 39, 85, 61, 88, 6,119,137, 66,128,134,216, 15, 57, 8,131, 3,137,184,186,162, 6, + 32,113,103,137,102, 89,193, 8, 17, 89,212,213,221, 69, 36,103,181,241, 74, 14,228,168, 38, 64, 84,177, 24,130,102, 3,183, 40, +164,154, 85, 51, 17,135, 66, 51, 20, 42,104,240,228,142, 88,132, 84, 86,140,224,229, 40, 64,204,165,152,154,178,199,200,230,224, +134, 85,164,172,217, 1,208,156,145, 11, 35,217, 44, 27,184, 16, 2, 71,119, 3,244, 97, 72, 37, 15, 97, 68, 37, 38,231,134,192, +104,102, 8, 72, 65,176, 16,145,203, 77, 60,235,114,181,246, 60, 28,236, 47,140, 16,204,144,201,178,185, 15, 18, 3, 98,116,205, +221,208, 49,115, 64,206, 58,246, 4, 16,209, 44, 3,208,164, 14,230, 88, 94,108, 65,100,200,102, 64,194,228,136,106,158,251, 14, + 11,162, 31, 57,144, 32, 41,255,237, 95,255,229,168,205, 40,203, 77, 87,252, 13,200,203, 71,156, 97,193,200,140,227,130,145, 44, + 38, 66, 84,198,234, 80, 22,239, 94, 66, 72,196, 5, 85, 52,226, 14,169, 68, 99,202,176, 29,101,189, 90, 41,201,162,174,199, 83, +187,249, 88,195, 65, 42,184,204,194,109, 40, 44,183,119, 14,115, 34, 65,112,179,140,224, 84,142,222,196, 8,246, 14, 20,143, 99, +197, 11, 24,145, 73, 80,200, 71, 55, 97,185,115, 32, 34,186,230, 2,231, 39,100, 48,243,221,184,125,199,211, 44, 46, 13, 96, 34, + 96,218,129, 4, 12, 49,224, 14,244, 79,196,199,123,139,207,127,249,213,100, 50,221,223,219, 55,181,245,118, 89, 5,121,254,252, +213,118,219,126,240,228,209,131, 7,239, 93, 95,158, 45, 14, 14,115,202, 28, 2, 19,169,230,172,153, 57, 72, 96,179, 2, 65, 26, +139,187,204, 2,200, 96, 14, 68,160,217,205, 76,251,178, 87, 32,166,157, 73,149,223,169, 19, 0,138,237, 10,128, 72,132,199, 37, + 56, 18, 33, 23, 19, 86, 97,106, 34,130,103,197,216, 52,211,137,131, 3,185, 52,181,165,150,235,202, 29,202,124,115,220,164, 56, +222,222,172,179, 99,195,126,252,224,244,249,151, 95,231,140, 28, 4, 93, 66,136, 65,196, 65, 17, 8, 67, 52,128,225,238,141, 14, +247,211,166, 73,217,223, 94, 94,159, 95, 93, 95,221, 92,255,193,239,253,233,199, 31,124,124,127,115,150,141, 79, 30,127,216,183, +219,183,231,111, 4, 82, 93,215, 39,143,222,191,191,185,186,191,189,201, 78,218,109,167,135,167,194, 18,171,169, 33,108,215,247, +158, 83,169,158,213,117,115,119,127,103,166,243,233,222, 63,126,243,236,237,253, 61,186,153,121, 70, 67,128,148,108,211,110, 10, + 21,206, 29,204,189,138, 33,155,170, 25,128,207,154,201,186, 79,131,230, 39, 71, 39, 81,236,228,224,176,237, 90, 85,213,220,229, +108,154,218, 62, 39, 79,121,189,186,173,170, 89,197,216,245,109, 55, 12, 70,209,135,142,131, 76, 39, 51, 32, 88,212, 53,135,176, + 90,223,131, 67,144, 56,164,222, 85,239,215,183, 93,238, 15, 38,147,189,189,195,242, 73, 8, 18, 28, 28, 72,214,171,251,106, 50, + 5, 75,154,250,186,153,110,182, 43, 3, 14,174, 8, 57, 84, 77, 64,148, 16, 99, 83, 51,210,122,179, 76,234, 15, 78, 31,169,106, + 93, 55,135,199,135, 31,127,255,179,163,211,199,211,189,133,229,225,234,237,249,219,139,179,103, 47,158, 63,125,241,242,217,155, +179,151,231, 23,231,215, 55,171,182,203,105,248,236,211, 79,254,245,239,253,235,233,116,222, 76,154, 15, 31, 31,125,255,211,247, + 16,242,139,175,190,188,189,186,186,190,191,159,158, 28, 17,230,179,139,203,171,171, 27,237,134,147,102, 50,173, 42,145,130, 89, +183,146,142,149, 16,220, 45,187, 17, 50, 35, 32,129,154,155, 3, 26, 48, 18, 7,137, 65,144,104,100,100,168, 1, 86,139,141,129, + 0, 0, 32, 0, 73, 68, 65, 84,130,102, 43, 63, 85, 87, 31,143,169,227,120, 26,213,180, 27, 6, 5,175, 37, 32, 98,214,156, 71, +128,107,185,146, 82,249,133,170, 99, 52, 53, 32, 31, 52, 13,154,163,132,170, 10,117,172, 38,117,237, 4, 64, 28, 40,102,183,140, + 14,232, 33, 8, 33,179, 68, 83, 39, 22, 66, 32, 39,135, 34,105, 98, 97, 33,225, 2, 50,171,132, 99,224,148, 85,147,149,222,103, +105,214,151, 47, 64,193, 3, 75, 93,213, 90, 42, 38, 12,133, 62,130, 5, 53, 72,100,142,117, 21,203,183, 15, 0,140, 24,130,148, + 67,150,186, 23, 77,102,137,249, 23,201, 39,135, 0,142,234,198,194,133,123, 85,202, 49, 6,227, 80,186, 28,195,145, 71,205,131, +153, 34,129, 68, 65,146, 64,104,170, 36, 92, 54,137, 72,104, 69,208,198, 50, 42,166,221,251,172, 55,203,245,193,108, 82,135, 9, + 51, 57,163,102, 39, 68,137, 21, 0,164, 46,149,162, 25,146,104,233,237, 7,113, 3,117, 21, 9, 84, 76,182,142, 33, 50, 66, 24, + 33,187, 68,238, 10,132,238, 20, 2,165,148, 5, 33,134,104, 14,201,141,255,167,191,249,203, 82,187,161, 82,161, 45,163,115, 55, + 48, 32, 10,165, 41, 90,198, 44, 5,150,160, 58, 98, 91, 0,188, 76,155, 16,138, 48,218, 70, 7,105,105,155,218, 72,161,132,209, +198, 81,210,136, 76,104, 87,183,235,211,147,147,194,224, 38, 2,116, 64, 97,166, 66, 46,251, 23, 3, 34, 64, 0,167,119,246,110, + 70, 4,125,215,123, 42, 80,223, 17,152, 75,236,230,160, 80,216,198, 68,164,154, 76,211,216,218, 66, 20,198,194, 86, 52, 0,116, + 35, 65, 36,216,153, 89, 70, 80,194, 56, 47, 49, 64, 66, 22,242,146, 54, 26,153, 55, 69,162, 66,102,190,127, 56,243, 33,189, 58, +127, 59,169,235, 16,107, 85,101,146, 38,208,255,251,171, 95,255,238, 15,191,255,222, 39,159,228,180,101,137, 87,111,207,231,211, + 89,187,188, 45,149, 49,102,114,135,178, 47,114, 51,176, 50,196, 50,183,177,245,228, 14,166,185, 16,140,115,210, 80, 85, 59, 87, + 54,239,232,207,229,255,166,196, 28, 88,180, 8,249, 70, 99,206,248, 93,143,164, 26, 0, 7, 15,205,172,142,226, 6, 82, 85, 96, +234,206,163,188,187,164,238,119,192,157,179, 23,111,186,118,179,191, 63, 63,122,116,250,242,233,203,238,254, 13,112,133, 4, 20, + 26,142,141,169,113,168, 72,104,216, 44, 1,117, 72,155, 73, 61,233,250,246,252,234,230,250,246,254,230,246,250,191,249,211,191, + 8, 54,228,172,205,116, 18,154,250,246,234,173,160, 15, 67, 63, 63, 56, 61,121,242,173,151,223,124,241,250,233,151,110,196,161, + 2, 77,195,230, 46,107,191,189,123,187, 56,122,172,219,229,122,121, 59,217, 59, 98,200, 57,219,225,209,233,237,242,230, 63,252, +244,243,118,232,199,220,106,105, 84, 70,169, 99,213,245,131,169, 57, 66, 29, 99, 55,244, 8, 88,135,202,213,137,169, 9,241,226, +246,110, 82,135, 71,251,251,136,218,109, 54,183,203,123, 96, 1,203,154, 53,212,245,222,116,166, 28,250,190,173, 98,112,228,108, + 94, 9, 91,234,205,180,226,200,238,205,164, 9,145,235, 48, 35, 48, 9,161, 79,195,221,122,233,200, 39,251,167,164,202, 18, 36, +212, 89,125, 24,218,205,250,114,232,250,102,190, 87,197,144,183,247,200, 1, 92, 83, 74,211,233, 52, 52,117, 93, 79,133,165,237, + 55, 34, 34, 92, 5, 22, 66, 48,144,110,187,110,154,230,232,244,248,131, 79,191,189,216, 91,196,186,218,172, 86,175,159,125,243, +236,197,139,215, 23, 23,175,206,206,222,188,189, 60,191,186,218,182,253,193,124,254,227, 79, 63,253,254,123, 79,126,240,233,119, + 7,205,145,253, 71, 63,250,206,241,126,115,117,254,242,205,243,231,113, 62,169, 79,143,159, 63,125,113,116,184,247,236,252,252, +245,171,139,125,146,189, 73, 45, 92, 70,186,160,142, 33, 22,154, 58,189,147, 43,141,193,129,221,196,148,152, 72, 4, 11,166,131, + 9, 12, 8, 73, 53,149, 87, 62,193,120, 20, 34, 38,179, 81,167, 60,104, 54,205, 66, 28, 37, 32,104,241, 52,215,129,213,156,136, + 10, 21, 88,152,193,161,207,217, 77, 5,133, 88, 8, 48,136,236, 77,167,117, 83, 35, 18, 2, 23, 28,121,209,125, 76,170, 74, 21, +115, 46,167, 58,100, 24,235, 47, 92,248,142, 65,178,153, 32,146, 16, 19,162,131, 89,130, 29,174,150, 9,137,216,220,221,140, 40, +148,216, 95,185,241, 75, 96,112,114, 7, 33, 98,102, 32,138,165,211,102,227,104,133, 17, 29, 10,218, 23,118,243, 0, 39, 34, 4, + 74,160,194, 44, 44,229,127,103,102, 68, 23, 17, 24,187, 54, 62,226,176, 16,152, 24,144,203, 4,149,152,153,196,199, 33, 15, 56, + 64,168, 98,153,120,144,160,148,182, 36, 82,209,109, 19,120,114,127,117,121, 51,139,116,188,127,224,194,110,134,136, 49,114,140, + 85,223, 15,174, 86,236, 87,238,238,121, 64, 17, 34, 42, 24,125,166, 17, 6,142,224, 66,108, 88, 90, 92, 32, 66, 57, 27, 33, 5, + 18,164, 50, 37, 19, 18, 2,132,192,108,102,242,206,145,100,136,224, 86,182,172,227, 42, 23, 12,208,137, 75,131,171, 0, 29, 93, + 2, 58,228,145,176,172, 9, 1,136, 25, 10, 75,169, 28,230,205,128,118,114,214, 29, 76,168,252,124,221,108, 54,155,194,245,178, + 27, 58,118, 37,178, 49, 97, 20, 16, 21, 28,209, 70, 17,108,233,124, 42, 32,169,103, 64,102, 0, 55, 68, 39,112, 29,149,212,174, + 99,239,137, 81,205,118,137,124, 99, 4,181,130,193, 33, 64,116, 5,231,241,241,233, 96, 14, 84,166, 28, 8,200,176, 43,235, 22, +217,110, 57,161, 51, 2,160,230, 81,120, 4,232,136, 10, 36, 56,234,169,176,107,211,247,191,253,225,215, 47,207, 95,190,122,249, +237,201,124, 62, 91,160,227,199, 31,125,252,244,229,235,255,243,239,255,225,244,193,195,201,108,255,235, 47,126,249,224,225,123, + 93,187,201,105, 80,160,138,104, 32,140, 36, 37,111,137, 68, 57,103, 82, 55, 71, 65, 41,163, 41, 32,112,203, 57, 39,116, 4,205, +169, 39,137,149,185, 51, 58,184, 97, 16,215,194,199, 23,112,207,166, 35,108, 64, 11,156, 33, 16,243, 14,121, 63,254, 58, 86,177, + 33, 22,140,194, 34,169,237,136,201,138, 92,197,203,219,133, 88, 8, 18, 58,168,185,203,100,110, 41,213, 85,213, 78, 14, 65, 38, +105,123,131,161, 54,197,126,121,198, 85, 67,213,158, 8,211,116,186,185, 87, 85,107,219,126,211,117, 67, 26, 66, 12,211, 40,171, +213, 70,152,166,211, 73,187,221, 14,171, 43,106,102,177,170,247,142, 78, 87,183, 87,195,102, 21,154, 57, 11,111,238,206, 86, 58, +196,208,204,246,142,193,141,208,103,135, 39,213,108,127,189,110, 45,111, 48,136,153, 62,123,249, 66,129,102,205,244,226,234,109, + 93,215,133, 82, 8,230, 65,100, 49,155,174,214, 27, 68,236,135,148,213,220,180,169,227,164,153,108,186, 77, 53, 13,123,211,217, +255,245,243, 95,109,187,238,163,195,121, 37,161,132, 43,234, 42,152,170, 33, 13,253,186,174,234,204,210, 42,228,172,154, 6,144, + 88,215,245,208,110,144,156,221,186,174,229,206,129, 36,185,166, 54,145,165,105, 12,117,211, 16,100, 64, 31, 82,175, 57,101,195, + 80, 79, 28, 98,202,221, 60,196,245,245, 69,108, 38,147,122,202, 28, 99,149,200, 7,203,230,161,114,181,170,154,149, 19,202,122, +125, 55, 12,219,106,114, 88, 53,123,167,239, 61,122,248,228,201,116,182,232, 55,203,243,215,207,206, 94,189, 62,187,120,123,113, +123,119,115,119,119,121,191,218,180,237, 65,221,124,231,147, 15, 63,124,252,164,169, 99,223,175, 57,196, 79,222,127,248,248,116, +127,232,150,175, 46,206,215,155, 85,159,252,242,242,170,190,185,190,188,186, 94,109, 54,235,251,245,227,249, 60, 20, 53, 18, 56, + 58, 82, 73, 52,162,140,199, 18, 80, 36, 36, 16, 53,117,179,210, 44, 66,216,181, 49,202,227, 14, 72, 34,244,125, 42,241, 18, 48, +119, 46, 43, 55, 6,240, 16,130, 35,108,219,142,129, 40, 4,203,218,167, 65,136,137,164, 10, 96,238, 18,130,187, 51, 50,153,153, + 57, 17,162, 82, 8, 4,128,145,163, 72, 36, 84, 38,180,241,108,103,105,232, 67, 44,158, 84,206, 25, 8,169,138,204,130,230,104, +230, 12, 0,110, 28,163,103, 69,178, 24, 72,192,145,176, 31,178,106, 18,146,119, 22, 33, 70,200, 14, 34, 1,208, 60,155, 21, 27, + 27,141,231,189,209,135, 60,254, 80,208, 0,204,129, 16,152, 72,213, 92,112, 7, 5, 3, 87,183, 29,124, 28, 5, 39, 40, 41,171, +186, 10,202,136,188, 53,200, 57,155,141, 93,246,146,216,241,172, 10, 30, 2, 59, 4, 40,221, 47, 68, 68, 86, 53,100,162, 82,237, + 47, 58, 16, 7, 66, 50, 1,114, 47,169,108, 36,190,187,223,214,228,199,251, 7, 78,168, 41, 23,236, 46, 34, 12,125, 63, 82, 74, + 0,134,148,235, 40, 70,177, 60, 63, 67, 36, 51,176,156, 1,140, 16,144, 88,221, 32,121,168, 36,101,203,217,132,209,140,212, 51, + 19,163, 84,134,217,157,221, 53,229,164,166,226,230,200,229,175, 0, 0,204,138,104,142,104,167,197, 24, 21, 76,184, 19,192,113, + 32, 79, 5,249, 40,101, 71, 90,152,239,133, 66, 94,108,161, 59, 52,226,206, 39, 90,182, 19, 86, 64, 99, 49,144,182,109, 95, 71, + 86,195,192,239,152,137,187, 3,185,187,187, 18,160, 26,136,144, 1, 10, 10,128, 22, 36,188,102, 39,114,244,114, 61, 49,119,128, + 92,166, 48, 86, 16, 60,229, 95, 15, 64, 44,193, 77,157,157,202,202,156,128,128, 25,203,109,130,119, 60,130, 82,203, 6, 87, 3, + 66,216, 25,167, 10,210, 43,131, 9,160, 3,227, 59, 31,172,153,154,197,102,254,253,111,127,240, 79, 63,127,126,176,255,230,193, +163, 15, 88,170,253,195,147, 31,125,239,123,255,219,223,255, 63,255,213,143,191,254,228,187,223,117,240,131,163,147,203,203, 23, +200, 81, 66, 68,142, 72,226,106, 32,240, 46,116, 84,118, 96,238, 78,204,230,142,217, 10, 54, 71,123, 5, 55, 75, 3,132, 26,137, + 93, 13, 36,184,250,191,184,213,112,185, 52,218, 59,218, 37,226,152,110,130, 18,115, 98, 66,145, 16, 20, 48,198,144,218,222, 13, +176,137,144,179, 35,128,161,155,162, 80,185,215, 72,156, 48, 13,221,242,206,225, 81, 86, 5, 14,192,128,213,132, 1,134,190,175, +247, 78,153, 99,187,221,138, 80,187,220,178, 59,130,175,182,109,151,134, 62,231,217,116,159, 53,229,188, 57,126,239,211,237,182, +239,218, 84, 77,246,185, 94, 68,134,163, 7,143,214,247,247,106,218,174,174, 39,211, 3,205,253,222,131,247,105,176,148, 7, 87, +247,193,218,110,123,176,191,104,215,171,170,217, 75,195,230,230,230,234,233,249,219,166,110, 14,103,179,245,118, 85,133, 42,105, + 42, 94, 89,115,143, 33,212,161,218,244,219,166,169,221, 53,185,223, 45,215,245, 73,112,164,235,229,234,112, 62,157,212,213,151, +175,206,186,182,251,240, 96,111,177, 55, 13,132, 39,139,253, 77,223,175,218,237,182,221, 74, 77, 49,198,126, 0, 17,202, 2, 8, +144,114, 15, 76,224, 57,229, 33,152, 99,140,203,212, 11,242,233,124,193,204, 67, 50, 96, 34, 51,181,212,200, 92,135,101, 93,205, +204,187,249,100,214, 49, 84, 85,157,234,169,170,222,223, 93, 30,157,190, 31, 67, 29,121,114,117,121,150,219,190, 34,168,166,139, +166,138,174, 67,136,117, 96, 58,122,242,112,186, 63, 63,121,240,164,174,234,245,205,229,171,215,207,158, 61,127,121,118,121,125, +123,191,186, 95,111,174,239,239, 45,231,143, 78,246,126,239,123, 63, 48,226,161,223,112,213,124,242,201,119,190,253,233, 7, 65, +240,234,229,179,139,179,203,193, 18, 52, 53, 82,122,245,236,185, 43,106,202, 77,109,139,195, 69, 25,137, 16, 65, 54, 98, 30,225, +236,234,170,134, 33,144, 57,128,122,225,254,101,208,146, 64,246,114,195, 35,226, 64,166,208, 89, 6,203,129, 37, 33,228,156, 66, +140, 10, 6, 64,181, 4,116, 75,110, 41,229, 32,194,194,105,232, 1, 53, 48, 23,201, 6, 35, 25,122,118,175,153,213, 61, 89,145, + 78, 80, 29, 74,137, 26,171, 42,106,214,164, 94,170,120, 96,104, 0,192,128,140,234,198,142, 8,196,194,224, 48, 12, 41,136,236, +158, 27,140,238,192, 36,129,201,205, 85,135,148, 11,222,124,112,171,163,168, 66,210,162,214, 3, 33, 30,178,103,135, 81, 59,228, +227,127, 34, 17, 46, 31,100, 83,181, 2, 58, 70, 68,214,172, 68,187,211,156,131, 3,134, 74,202, 5,130,136,137,204, 13,200,204, + 29,212,149, 70, 74,250,152,104, 1, 64, 46,211,255, 12, 0,206, 2, 77, 93,245,106,166, 25,156,204, 50, 87, 12, 25, 77, 45,198, + 74,213, 4,208,128, 28, 52,185,149,166, 15, 11, 33,210,122,219, 14,185, 61,217,223, 51, 7,204,218, 76, 38,125,206,160,166,189, + 1, 32, 6,198, 76,217, 83,168, 88,213, 76, 29,133,192, 69,179, 33, 32, 69,241,236, 92,158,131,238, 28,176, 27, 20,208,234, 74, +250, 1, 34,187,121, 51,164, 62, 4,239, 21, 1, 70, 61,105, 81,193,225, 40, 76, 68, 46,127, 27,101, 71,237, 69,223,236,230, 8, + 68, 76, 12,174,110, 6,164,197,144,142,166, 32, 82,228, 77,254, 27,159,198, 59, 10,217,111,196,208, 80, 80,127, 96, 78, 76, 68, +216,212,149,153, 11, 49, 22,213,159,146, 23,128, 39, 48,162, 35, 56,162,115, 89, 41,188,187, 79, 20, 90,129,107,129,206, 19, 9, +120, 46,143,227, 17, 8,108,138,200, 8,163,145, 21,203,177,151, 16,172,172,139, 29,161,100,244, 11,203, 12, 71, 42,227, 40,144, + 53, 47,138, 83,247,130, 49, 40,192,221, 48,102,103, 11, 74,167,100,106, 12, 28,179,234, 39, 31,125,240,213,243,179,139,243,243, +189,131,227, 73, 51, 93,183,219,135, 15, 30, 62, 62, 61,252, 95,254,143,255,244, 63,159, 28, 54,147,197,155, 23,207, 31,127,240, +248,234,205,107,102, 17, 33, 55, 51, 80,203,169, 24, 73, 88,196, 0, 65,117,188,152,186, 35,139, 64,157,144, 24, 45,119, 93,209, + 52,137, 48,114,220, 73,195,116,164, 34, 23,166,252,232, 62, 25,193,206, 56, 50,131, 20,128, 11, 14,193, 77,153, 37,247,189, 15, + 29, 86,209, 53,193,160,192,108,253, 22, 37,146, 8, 0,184,102,242,140, 4, 97, 50,147,201, 76, 98, 20, 81, 3, 16,105,210,246, + 30, 24,195,244,160,219,172,128,188,109,187,126,115, 27, 98, 5,140,171,237,198,134,164, 41,205, 23,199,117, 61,225, 89,213, 13, +105,221, 39, 75, 93, 53,221,203,214, 79,247,142, 99, 8,106, 58,217, 59,124, 88,205,114, 82,174, 14,114,223,131, 41,152, 57,113, + 66, 55,199,251,251,187,147,211, 7,203,219,219,205,242,246,238,250,106,147,242,219,235,243,166,122, 60,105, 38, 67, 74, 65, 68, +205, 1, 28, 13,204,117, 58,157, 40, 89,223,103, 85, 96,196,236,126,123,191,137, 18, 3,162, 3,238, 77,231,142,240,242,230, 90, +136,226,164,222, 91,204,212,146,165, 36, 66, 33, 78,182,109, 91,155,166,182, 91,183,247,179,189, 83, 55,243, 80, 87, 8,109,223, + 17,210, 54,117,158, 83,110,183, 15, 14, 14, 55,155,123, 51,152,204, 15, 2, 7,100,153,198, 25, 34,187, 97,183, 90,198,201,124, +190, 56,246, 13,119,171,101,140,149, 35,247,166,235,237,221,222,252, 96,181,186,203, 89,171,122, 26, 5,187,190,243,212,181,155, +155,189,195,147, 71, 31,127, 58,153, 79,246,247,143, 35,194,205,197,171,103,207,159,191,120,245,250,213,219,183,183,247,203,219, +229,170, 29,210,188,150,223,255,193,143,143, 23,115, 99, 9,213,164, 2,255,157,207, 62,249,232,227,199,171,235,219, 23,175,158, + 65, 32, 58,156,222,126,243,234,120, 86,221,111,187,155,171,213,241,180, 57,158, 77, 2, 81, 45, 98, 96, 93,118,100, 12, 60, 66, +141, 0, 81,161,216,174, 75,185,194, 10,105, 73, 28, 74,222, 3,137,136, 4, 17,204,212,129, 24,144, 66, 72, 41,169, 26, 49,103, +205, 33,132,170, 18, 52, 77,110, 8, 24, 43, 41,212, 0, 4,100,150, 52,100,183, 44, 18,156,209, 82,170, 42, 65, 96, 27,134, 66, +163,170,132,218,172,129, 8, 9,135,148, 53,103,148, 82,197, 35,119,143,145,220,105, 72,137, 35, 5, 10,160,158,221,208,113,132, + 59, 10,169,142, 20,115, 68, 24,122,205, 41,177, 20, 61, 27, 50, 50, 69, 73,125, 50,115, 97, 20,230,148,181,207, 3, 49, 86,129, +209,160,207,138, 8, 21, 81, 54,199,209, 26,104,102,206, 4,204,156,212, 8, 29,120,100, 1, 23,112, 13, 19, 13,230,129, 3,128, +165,161,175, 39,181, 57,112,208,146,138,134,113, 42, 93,240, 90, 46,129,221,201,114,166,128, 18, 42, 53,216,118, 67,153,198,184, +230, 16,196,140,132, 12, 24, 16,172,140,162, 84, 53,165,140,239,198, 58,228, 76,190,110,251, 58, 72, 85, 69, 71, 38,162, 97, 24, + 8,201, 0, 49, 2,170,105,118, 2, 19,145, 33,165, 18,145,100,226,100, 10,110, 33, 70, 80, 76,150,145,168, 72,104, 53, 91, 19, + 17,101,178,109,251,200,146, 53, 39, 29, 28, 49, 37, 5, 55, 32, 32,163,170, 38,221,244,252,183,127,243, 23,136, 94, 34,231,163, +181,179,224,250,119,109,161, 2, 46, 64, 7,100,148,130,200, 4, 43,206,168,146,100,218, 89, 64, 97,236,158,142,208, 94,192,127, +129,120, 41, 27, 90, 40,113, 65,130,109, 55, 76,167,147,146,213, 7, 47,203,107, 42,153,152, 2,207, 42, 73, 33,102,193, 82,157, + 47,143,177,242,180,221, 93, 49, 9,101, 44, 92,185, 58, 24,143,108,173, 50,174, 22, 0,231,241,116, 91,250,159,176, 27, 56,161, +131, 16,218,152, 47, 26,177,198,180, 75, 43,226,200,177,183,194,246, 26, 49, 1, 14, 8, 62,120,185,240,185, 75,168, 38, 21,125, +241,205,203,138,121, 54, 95, 8, 11, 16, 76,131,252,236,139, 47, 31,156, 30,255,241, 31,255,201, 55,191,254,220, 73,134,161, 11, +165,244,140, 72, 44,136, 78, 28, 36,196, 50, 94, 14,194,136, 50, 38,151,208, 1,164,100, 67, 37, 70,169, 42,150,138, 99, 45, 81, + 70,106,194,206,190,234, 56,150,120,223,185, 38,199,151, 16,122,137, 84,130, 57,133,106,118,112, 12,224, 88, 0,205, 54,250,182, + 65,196, 52,203,100, 66,132, 96, 54,180,237,197,203,179,118,187, 57, 56,125,180,127, 56, 63,123,113, 54,116, 27,196,104, 58, 12, +237, 38, 84,117, 78, 67,191,185,219, 44, 87,174,234,233, 46, 84, 21, 17,190, 62,123,115,189,218,220,222,221,126,252,225, 39,223, +249,248, 83, 71,186,189,189, 71, 79, 58,172, 60,171,154,205,231,243, 88, 87,171,155,243,155,179,111,230,243,253, 42,152, 97,204, +125, 23, 24,182,203,155,102,118,184,190,191,137,161,210,172,169,111,207,206, 95,111,251,237,203,243,243,151, 55,247, 65,228,250, +238,118, 59, 12,219,109, 59,169, 38,165,146, 32, 32,229,196, 80,133, 0, 0,253,208, 23,197,109,223,247,106, 26, 99,197,132,219, +190,223,155, 78,131,212, 23,119,183, 19,161,121, 85, 53,177, 74, 67,151, 12, 17,161, 27,210,102,187, 33,176,166,170, 99, 12,132, + 54,105,166,197, 6,147, 0, 1,112,194, 52,141, 49,153,129,219, 98,255, 84, 24, 7, 29,136, 48, 6,206, 67, 74, 41,183,237, 38, +132, 73, 93, 85, 44, 53, 73,236,186,117,201,207, 78,154,217,124, 18, 87,155,109,172,103, 64, 50,164,109, 63, 36, 34, 90,236, 31, + 28, 63,121,252,240,225,163,217,100,106, 58, 92,189,125,243,213,211,103, 95, 62,125,246,226,236,252,252,242,230,122,117,143, 14, + 63,252,214,135,127,240,233, 39,123,139,253,205,118, 21,132,190,251,237,111,253,209, 31,253,238,222, 94,115,117,246,230,155,175, +191, 0, 9, 91,180,175,190,126,186, 93,183,183,247,203, 87,223,188, 60,156, 78, 15,167,211, 42, 10, 0,149,155,188,136,148,222, + 80,233,156,184, 2, 49,169,169,187,150,176, 29, 51,141,170, 81, 44, 24,118, 34, 41, 55, 84, 18, 17,119, 27,178,149, 5, 25, 17, +138, 68, 2, 24, 6, 29, 17, 43,204,133, 73, 48,202,209, 10, 10,195,177,100, 27,132,216, 84,135, 33, 19, 99,249, 67,221, 65,136, + 75,131,143, 9, 57, 72, 29,164,244, 31,203,116,222,202,209, 36,169,149, 76, 98, 1,237, 49, 17,162,154,151,248, 32, 18, 20,138, + 12, 49, 51,113,100,108, 38,196, 12,110, 6,110,197, 47,148,114, 86,117,145, 17,163,224,136, 34,130,196,227,133,188, 64,234,125, +100,172, 91,249,230, 72,202,216, 23,118,157,111, 34,140, 65,220,192, 13,152,197,204, 11,122,182,184, 46,204, 33,231,236,217,198, +254, 60, 35, 3,141, 30,134, 29,140,135,139,110, 72,184,244,219,205, 60,231, 84,118,168, 35, 92,171,188,119,221, 0,144,200,174, +239,219,156,250,199, 71,199, 18,171, 50,222,160, 18,157, 96, 44, 52, 97, 36, 2,194,156, 51, 17, 74, 96, 4,204,170,196, 68, 44, + 59,139, 27, 2, 98,202, 58,174,226,128,204,149, 0, 82, 78,230, 10,238, 69, 61,173,166,104, 30, 16,213,161, 75,189, 20, 46, 57, +148,124,236, 59,241, 16, 24, 2,141,204, 1,216, 1,249, 93,221, 17,202, 36,216,208, 11,134,146,120, 23, 63, 87, 32,222,205,102, +156,118,235, 85, 3, 45,175, 0, 40,151,109,182, 16, 48,111, 50,161, 91,113,184, 18, 34,216,136,138,223,233,141,202,142,220,221, + 60,165,145, 58,134, 82,158, 97, 5, 44,236,224,128, 54, 46, 13,112,252, 2,193, 13,140, 92,208, 45,227,206, 72, 58,230, 80,136, +212, 20, 28,220,148,133,124,124,165,149,128, 13, 58, 58,168, 2, 49,144,153, 35, 59, 32, 35,170,145,176,131, 33,102,247,113, 69, +235,232,136,226, 0,223,250,240,189,215,175, 46,159,189,126,189,119,116,122,124,112, 60,228,116,120,116,242,209,227,199,127,255, +159,255,233,147,247,159,204, 14, 78,187,245,122,211,182, 77,108,204,198,223, 99, 36, 25,221,229,229, 70, 88,238,143, 76,105,200, + 60,198,151,194, 24, 30, 34,118, 36, 22, 6, 51, 51, 37,100, 22,210,108, 37,226,227, 8, 76,130, 12,174, 62, 42,253,136, 2, 22, +220, 27, 1, 3,145,132, 42,166,190, 7, 55,116, 2,114, 20, 97,150,212,117, 82, 53,136,168,109, 79,130, 6, 56, 12,131, 90,206, +121, 0,112, 10, 50, 12,109, 85,113,234,219,122,182, 31,235,250,238,230,162,221,172,211,160, 16,132, 9, 37,136,153,247,125,118, + 51,115, 60,168,130, 8, 95,221,109, 73,162, 19,181,155,139, 24,115, 53, 91,196,170, 78, 93,207, 28,166,123, 7,174,221,197,211, +159,206, 30,126, 70,177,202, 67, 27,226,116,232,183, 33,134,170, 10, 60, 9, 8,118,116,242,208,146,254,211,175,190, 94,183,173, +106,142, 85,125,125,127,217,246, 29, 35, 45,246,102,160,108,168,163,155,209,113,214, 76, 82,233, 8,102,171,170,208, 15,185,237, +251,131,249,236,106,185, 92,109,214, 85,172, 76,253,243,215,111,212,108,218, 52, 68,146,186,252,224,248,192, 29,134,102, 50,227, +188,152,206,215,109, 50, 75,132,118,151, 7,205, 57,109, 54, 33, 68,101,234, 52, 75, 53, 5,224, 62,117,145,188,150, 70, 45,109, + 87,173, 84,205,116,126, 80, 87, 13,199,208,247,171,118,187,241, 48,161, 80,187, 57,176, 19,134,183, 23,103, 32,181,196,202, 28, +215,203,117, 29,235,199,239, 63, 62, 57, 57,217, 63, 60, 66,130,229,205,117,219,109,159,189,120,243,197,179,103, 87, 55,183,151, +119,119,247,171,245,195,195,131,127,253,163, 31, 46, 38, 21, 98,216,182,221,147, 39,143,254,240, 15,255, 96,182, 55,187, 57,123, +253,246,197, 43,170,164, 53,171,192,191,254,229, 87,183,171, 13,171, 47, 98,245,222,209, 17, 34, 25,162, 21, 91, 3,148,150, 56, + 56, 18,144, 23, 87,133, 19, 22,127, 61, 18, 33,163, 20, 57, 76, 49,113,176,101, 51, 36, 42,151,114, 70,212,148,152,131,144,185, + 27,139, 20, 18, 84, 57,200, 19, 82,206,137,208, 74, 63,221,205, 84,141, 4, 20, 52,132,128, 14,157,246,132,224, 74, 49,144,187, + 39, 29,132,136,145,204,119, 68, 39, 2, 17, 6, 36, 6, 36,194,156, 70,213,154, 32,230,114,229, 54, 99,137,229,168, 84,172, 32, + 37,196, 65, 14,217,115,145,183, 89, 9,116, 40,136,160, 57, 48, 9,244,222,165,196, 33, 84,130,185, 48,164,152,193,156,208, 17, + 9, 28,187,161, 39,148, 16,131, 59,100,176,194, 44, 1,112, 5, 45,167, 79, 69,140, 81, 0,217,114,202,217, 16,133, 3,152, 57, +149, 7, 17, 96,168,234,161,239,221, 44,103, 85, 65,231,152,250, 97,218,230,166, 26,241,173,101, 58, 33, 18,134, 60, 8,113,172, +106, 53, 53,119, 36, 10, 33, 20, 82, 74,113,110,131, 38,224,236,224,236,184,105,245,118,181,124,255,112,143,130, 12, 73, 53,229, + 80, 69, 14, 1,204,221, 13,171,106, 72,189, 14,137,133, 57, 4,200,166,217, 68, 48,114,116,194,220,182, 18, 5,153,115, 2, 51, +101,230,148,180,138, 76, 84,126,224, 86,248, 96,142,230, 68, 6, 10, 0,217, 92,125,168, 36, 84, 18,248,111,255,234,223, 22,188, + 4,130,145,196, 18,105,247,223, 96, 99,220, 45,151,102,177, 67,129,179, 48,150,226, 37, 33,243,152,163, 25, 5, 67,133,162,190, +227, 12,239,216,140, 59,146,243,248,230,244, 24,248,254,110, 57,159,205,137,208,137,220,157, 75,244,222,169, 48,136,177,212,247, +203, 11, 1,125,135,141, 20,119, 27,209,232,163,119,148,113,244,131,148,222, 6,150,238,217, 46, 86, 50,106,194,139, 43, 29,208, +203,124, 9, 11, 58,125,196,178,235,142,130, 9, 64, 99, 90,157,145,129,128,169,152,177,199,253, 9,128,161, 19,145, 20,202, 57, +146, 27,242,147,135,135, 95,125,253, 18, 29,231, 7,251, 37,149, 22, 9,126,249,213,211,195,197,252,247,255,248, 79, 89,252,201, +183, 62, 6, 75, 67,159, 37,196,113, 13,129, 94, 74, 6,166, 94,202,124, 86,128, 97,101, 54, 88, 38, 93,128,194, 34,177, 54, 45, + 27, 32, 41, 60,168,178, 62,197,194,147, 46,135,148, 49,236,244,206,233, 42, 68,232,142,194,113,236,223,231, 68,147,154, 56, 32, +139,182, 27, 4, 96, 97, 27, 6,138, 21, 32,181,171,246,226,237,205,208, 15,135, 71, 7,199, 15, 14, 95, 61, 59,115, 16, 64, 4, +142, 66,182,221,220, 1, 5, 27,202,245,183, 21,204,205,100,218,181,237,243,215, 23,155,174, 95,109,214,191,255,227,223,137,177, +238, 84,171,186,217,110,182,142, 74, 50,109, 22, 7, 15, 30,191,135, 0,200, 28, 66,163, 82, 85,211,125,145, 10, 88, 8, 40, 86, + 49, 15,195,116, 58, 31,134,141, 43,133, 56,177,220,159,189,126,246,205,213,165, 57,108,219,109, 63, 12, 65,120,221,118, 67,202, +154,117, 82, 53, 76,187,139, 10, 0, 19,215, 85,181,221,118, 41,167,194, 74, 83,205, 65, 24, 0, 55, 67,234,115, 58,156,207,213, +248,110,189,221,111,164, 31,146, 33, 12, 67,222,110,151, 7,243,153,231,182,213, 84,197,166,215,244,118,121, 43,192, 7,211, 57, + 7, 1,162,170,170, 73,234,162,192,117, 2,194, 88,178,166,243,197, 1,152,170, 42, 17,230,148, 2, 85,235,118, 11,224,192,113, + 58,169,137,176, 31,134,118,181, 58, 56,122,220,181,119, 65,234,201,116,250,254,183,222,127,242,228,201,241,131, 39,200,184, 94, +223,191,189, 56,127,254,252,245, 23,207,158,189,188,184,184,190,187, 27,134,244,195, 15,159,252,249,239,253, 94,141,116,183,186, +147, 88,127,255,179,239,252,228,223,252, 4, 65,159,127,241,243,182,235, 14, 63,122,239,171, 95,127,121,116,122,216,131,254,242, +139,167, 13,242,233,222, 94, 16,174, 98, 33,111,163, 3,198,200, 68,193,193,134,156,133, 68,132,163, 84,230,214,165,158, 74, 60, +128,202, 30, 30, 75,112, 86, 42,210,221, 66,140, 9, 5,195,224, 57,198,138, 0,128, 40,196, 88,254, 81,182, 44, 36, 0,160,102, +204, 92, 14,188, 99,163, 5, 16,208,103,117,227, 0,170, 25,221, 4, 2, 51,155,155,102, 37, 4, 34,204, 96,104,238, 4,117,224, +193,193, 29,155,170,118,192,156,179,155,197,170, 22,192,193,178,234,144,213, 3, 11,128,169,187, 8,163, 35, 35, 40, 64, 49, 79, + 16, 11, 83, 49, 2,138, 26, 40, 50,123, 80,132,161,119,115,107,154, 72,200,155,148,104, 7, 1,136, 65, 12,209, 13,250,156,144, +160, 14, 21,160,113,144, 29, 66,203,119,174,185,210,123, 97, 9, 65,115, 46,113,240, 40,236, 4, 68,200,140,229,248,203,228,224, +216, 37,133,189,189,227, 15, 63,118,162,233,209,254,182,239, 60, 13,149,132,242,136,231, 42,152,102,102,138,177,241, 34,133, 5, + 10,129,205,157,133, 98,168,145,137,136, 68, 2,185, 27, 88,202,249,102,189,158,197,176,183, 88, 40,129, 48, 85, 85, 99, 96,238, + 26, 67,148, 24,135, 52,184,186, 4, 97, 9,102, 90, 80, 5, 33,196,108,234, 73, 41,112, 54,232,219,174,174, 36,214,181,185, 49, + 99,224, 80,172, 80,224, 86, 70, 82, 37, 89,164, 6,105,232, 34, 83, 12, 81, 36, 12, 89,249,239,254,230,223,149,155,203,168,152, + 48, 55, 47, 46, 36, 42, 48,229,241,244, 75,165, 4, 84, 18, 47, 69, 41, 50,190, 0,138,102,200, 84,113, 7,186,255,205,240, 32, +251, 8, 57, 68,128,209, 38,141,194,114,115,119, 23,235, 70,202,216,164,136,149,199,151, 45, 20,120,157,255,102,182,236,102,134, + 40, 5,248,136,192,224, 90, 52, 78,224, 86,172,176, 99,207,110,215,204, 31,149, 91, 35,210,101, 71,151, 87, 45,119, 81, 87, 21, +166, 29, 14,186,132, 94,199,187, 23,224, 78, 38, 69, 64,130, 96, 14, 6,158,179, 23,196, 40, 16,113,112, 52,128, 92, 42, 12, 33, + 78,132,245,215,223,188,152,207,102,211,217, 66, 85, 69, 36,117,253, 23,223, 60,253,206, 71,143,154,217,222,211, 47,254,249,213, +235,179,217,164, 97, 33, 34,118, 85,150,186, 84, 67, 72, 4,119,248,156,113, 40, 8, 94,138,178, 68,236, 8,110,137,136,199,236, +100,217,250, 35,192, 24,231, 31,191, 57, 83,123,167, 83, 4, 0, 0, 67, 98, 68,169, 38,211,122, 58, 51, 55, 10, 97, 44, 34, 32, +131, 25,215,117,217, 68,129, 59, 50,101,213,155,183,183,128,188,152, 53,251,135,123, 95,127,254,179,156, 83, 30,218,178, 92,108, +183,219,118,179, 74,195,192,210, 68, 78,149,216,100, 50, 91,175, 86,231, 23,111,239,214,155,190,239, 62,251,214, 39,235, 28,154, +233,193,116,214,104,234,209,114, 61,153, 30, 61,122, 63, 72, 76, 67, 87, 46,145, 55,103,111,246, 15, 79,134,187, 55, 85, 93,117, +171,107, 98, 86,245,170,153,185,235,221,197, 11,115,208,212,255,226,203, 95,127,125,113,217, 84, 53,184, 95,223, 47,137, 1,129, + 82,202, 41,107,100,170, 98,133,227, 26,197, 1,161,212, 77,187,161,119, 3, 38,202,170,219,174,175, 66, 96,166,229,106,125,114, +112, 52,155, 86, 73,253,205,213,125, 19, 4,137,186, 52, 12, 89,217,237,126,185,204, 40,119,109,219,246,105, 94, 77,132, 5, 17, + 24,189,138,145,128, 85, 19, 19,228, 62,183,219, 21,179, 68, 65, 70,234,251,126,181, 93, 71,230,126,187, 76,106,219,110, 45,113, + 98, 72,129,104,187,190, 95,223, 95, 87,147, 61,142, 97,187, 93, 70, 9,199,167,199,239,127,248,240,209,163,247, 66, 93,117,219, +213,253,253,213,171,231,175,159,191,126,243,229,203,215,207,222,156,173, 54,237,209,108,246,147,223,250,193,191,250,244,187,219, +161,223,164,116,184,191,255,147, 63,249,253,143, 63,253,240,250,226,205,179, 95,253, 42,206,103,241, 96,246,171,159,255,242,238, +126,121,125,183,252,197,207,190,124,114,120,112,180, 55, 33, 42,149,204,157,224, 30,177,232,109,136,136,153,132, 66,193,252,154, +231,114,220,226, 29,228, 5, 9, 11,253, 36,231,172, 59, 84,118,193,248, 49,145,170,230,156,153, 48,231, 60,168, 85,204,204,108, +106, 99, 6,112,247,108,124,247, 73, 14, 33,164, 60, 56, 88,202,137, 72, 0, 32,171, 5, 41, 59, 87,178,172,194, 12, 68,197, 48, + 19, 89, 2, 99,182,162, 55, 34, 44,122,107, 51,115,235,186, 54, 48, 3,148,103, 42, 0,144,250, 56, 76, 41, 42, 77, 38, 52,181, +130, 39, 35, 70, 32,108,219,108,169,112, 99,112,200,102,238, 2,196,196, 10, 24,136, 71,214, 58, 88, 25, 40,101, 27,112, 76,206, +193,152,108, 30,143, 79, 20, 99, 44,172,180,130,180,101, 36, 3, 39, 66, 97,212,108,106,227,136,118,221,246,188,183, 56,253,240, +195,215,175,207,126,241,249, 47,117,232, 6,135,161,109, 39, 76, 37, 33, 3, 6,196,140, 72, 67, 26,136,184,142, 21, 10,231,148, + 74,241,189,132, 80, 89, 68, 85, 83, 30, 8,168, 27,172,107,219,147,189, 61,138, 1, 29,153, 48,229, 30,220,202, 3, 54, 21,174, + 53, 97, 78, 9,192,153, 69, 66, 64,112,115, 3,116, 18, 54, 51, 52, 11,149, 56, 16, 2, 72, 12,106,224,166,170, 94,222,145, 8, + 32, 18, 3, 65, 55, 40,130, 51, 19, 11,153, 58,130,105,118,254,219,191,250,139,114,235, 39, 34, 40,110, 39, 44,250,164,241, 27, +222, 9,162, 10, 72,160,244,160, 0, 28,184, 44,251,192, 10,218,144,136,220, 0,242,120,133, 25,161,137,163,103,124,204, 74,150, +147, 38, 11,231,190, 85,140, 77, 32, 96, 66, 26, 17, 6, 99,223,169,156, 84,137, 0, 73,136,118,211, 69,212, 2,189,113, 99, 70, +112,163, 93,135,179,240,139,127,211,159, 45, 30, 13, 23,220,181,148, 70,142, 36, 90,121,203,149,166,214, 72, 10,222,169,172,199, + 79,196, 88,133, 2,164,209,137, 87,102,124,192,132, 72, 94,244,214, 60,210, 48, 16,193,204,247,231,147,179,243,183,203,213,102, +177,191,215, 76,102, 6,214, 84,225,151, 95,127,211,109,183,191,253,219,191,181, 89,221, 29, 28, 61, 58, 57, 61,190,191,190,110, +166,115, 68, 50, 51, 34,161, 81, 15, 89,122,218, 12,163, 40,158,222,121,177, 97,100,254,184,103, 29,241, 14, 0,174, 90,190,141, + 29, 63,109, 12,137,151, 2, 55,114,160,114, 23,113,111,230,123,210, 52,174,234, 90,198,127,228,110,204, 2, 14,150,148, 8,213, +140, 0,134,110,184, 95,174,171,201,100, 50,173,143,222,123,120,241,242,213,182, 85,228,144, 54,215,201,121,115,249,114,200,192, + 97,226,158,154,104,211,105, 83,207,246,110, 46,175,222, 92,190, 93,110, 58,176,252,225,123,159,196, 88, 31,157, 60,212,148,182, +247, 23, 44, 18,235,186,105,154,155,139, 87, 57,219,226,240,232,246,229, 47,110,175, 47,165,158, 69,242,197,193,131,118,115,159, +213,235,201,140,114,187,217,172,235,217, 65,168,234, 77,187,250,249,151,191,126,121,121, 53,153, 76, 98, 85,119,221,118,211,118, +204,148, 82,114,176,110,200, 44, 88, 87, 77,153,166, 33,161,186,243, 56,136, 76,229,173,172, 94,134,242,142, 64,109,223,214, 49, + 62, 60, 62,185, 90,222,247,195, 80, 7,100, 32,116,157,206,230, 30,235,117, 55,228,182,159, 68, 86,237,212, 97,179,109, 1, 16, + 29,134, 60, 48, 7, 51, 95, 45, 47,103,243,253, 89,211,112, 96, 52,239,115,150, 88,245,125,127,115,115,141,104, 36,141, 84,149, +112, 68,235, 84,109,182,127, 84, 85, 53, 73,156,207, 22,143,223,123,252,224,225,241,124,190, 24,210,176,186,191,123,115,246,230, +217,179,151, 95,191,124,241,213,139,151,175,222, 94,244,195,240,221, 7,199,127,248,217, 15, 30, 30,157,172,214,183,125,238,255, +228,143,254,240,119,126,239,183,173,239,159,125,241,139,126,232,223, 92, 94,118,195,246,243,207,127,169,174,151,175,222, 6,243, +227,189, 89,211,196,210,207,200,238,129,199,250, 76, 89, 67,141, 45,118,226,146, 81, 99,161,162, 51, 67, 26, 9,168,238,227,156, + 56,171, 21,155, 88, 54, 67, 0, 70, 76,217, 68, 8, 1,133,169, 79, 57,229, 36,194, 99, 52, 15,137, 9,133,201,220, 9,108,188, + 89, 50,185, 90, 63,100, 65, 43,169,110, 71, 80,240, 74,216, 71,140,107, 25,242, 19, 17, 79,235,134,168,100, 21,160,220, 77, 75, + 90,180,124,196, 66, 8, 69, 93, 29, 99, 32, 14,128,165, 40, 68, 14, 72,142,129, 17,198,171, 54,150,165,145, 59,164,108, 34,236, +160,105,116,191,130, 0, 50, 11, 2,150,180,123,249, 34, 89,100,220,157,130,149,250,163,170,250,144,251, 33,187,153, 89,102, 47, + 39, 81,218,177, 16, 32, 48,227, 46, 45,170,102, 44,140,174,125,202,105, 50,121,244,254,251, 63,253,233,207,255,241,167,159,111, +218,237,237,122,141,142,219,161, 61,153, 76, 41,136,132,192,210, 32, 26, 22,141, 38,128,153, 26,128,169, 18, 51,193,184,137,244, + 17, 65,195, 14,112,185, 92, 78, 34, 77,103,179, 18, 25, 47,179, 70,115,207, 89,153, 41,112, 96,102, 43,207,207, 49, 42, 81, 78, +183, 96,166,132, 32, 49,142, 51,132,194, 60, 40,210,214,242,100, 34, 34,192, 32, 92,164,165, 44, 72, 28,213, 64, 45,187, 25, 34, +171, 41,255,251,191,254,183, 35,131, 19, 1, 92,203, 73,121,231,158, 53, 24, 97,133, 64, 59, 93, 86, 41,185, 50,142, 43, 73, 4, + 26, 3,167, 59,242,139,163,185, 25,145, 3,252,102,156, 15,217, 74,204, 31, 8,136,208,115,191,237,243,108, 49,113,117, 32, 67, +167,221, 49,116,172, 30, 16,130, 32,171,155,131,141, 1, 24, 36, 66,231,209, 27, 98,165,149,244, 14, 30, 89,106, 84,227, 94,165, +252, 87, 30,215, 61,229,246,224, 72,110, 99, 84,114, 7, 87,240,119,192, 25, 66, 32,122,215,168, 69,183, 49,145, 96,232, 69, 37, +136, 8,133, 19, 91, 82, 70, 37,203,233, 14, 34,113, 58,169,126,249,229,243,166,106, 22,139, 57, 35,106, 78, 85,160,255,251,167, +255,252,157, 15,158, 12, 67,191,186,191,155,237,237,245,221, 22,176,200, 61,136, 88, 28,129,144, 29,128,136, 17, 75,124,200,223, + 37,147, 67, 8,190,251,109,165, 81,217,190,219,107,104, 42, 91, 96, 98, 26,239,220,184, 83,211,240, 88,103,115,208, 73,179,143, + 8, 33, 10, 32, 2,104,145,113,199,197, 47, 76, 0, 0, 32, 0, 73, 68, 65, 84,195,248, 66, 40,160, 78, 34,166,110,219,157,191, +122,189,190, 95,205,102,179,227,211,163,103, 95, 61,237,146, 78,234,122,179,188,202,198, 64,229,202, 41, 81,112, 90,195,222,209, +233,100,186,215,110,150,111,206,207,151,171, 21, 75,252,173, 31,255,164,170,136, 73, 55,219, 13, 87,147, 88, 77,167,251, 39,251, +135, 15,150,119,183, 55,183,215,148,182,179,131, 19,237, 59, 53,219, 59, 60,105, 55,203,205,166, 77,125, 91,133,234,249, 23,255, +153,171,249, 98,113,220,109,238,239, 87,203,175,207,223,100,131,182,221,204, 39,115,100,124,123,117,221,118,189, 35, 16,146, 1, + 12,195, 16, 67,140, 18, 75,134, 23, 25,205,188,142, 49, 74,220,246,189,219, 88,196, 31, 82,142, 44, 76,156, 52,149,157,206,221, +182,237,134, 97,209, 76,246,246,231,153, 48,245, 3,154, 7,118,142, 77,219, 13,128, 24, 34,103,215, 62,229,108,144, 85, 75,110, +162,106, 26, 4, 77,253,160, 57, 3,147,165, 52,168,239,237,159, 90,110,251,118, 53, 91, 28, 48, 34, 19, 79,166,243,161,223,110, + 55,203,147,147,147,135,143,143, 22, 7, 7, 36, 52,116,253,106,181, 60,187, 56,123,245,250,213,211, 87,103, 79, 95,189,121,123, +115, 51,171, 39,127,252,217, 15,190,245,232, 9,177,220, 93,159,125,255, 7,159,253,215,127,252,147,211, 7, 7,103, 95,127,211, +110,239, 19,249,245,205,237,254,201,225,170,237,159,125,243, 2,187,116,180, 55,221,155,213, 33,160,144,164,108, 36, 20, 72,138, +212,162,216,208, 10, 94, 27,129,193, 93,221,153,216,204,204, 29,193, 8,139, 11,201, 3,133, 33,231,119,147, 83, 51, 35, 36, 34, +206, 57,215,117, 40,115,155, 97, 80, 70, 12,145, 45,229,162,244, 9,204, 62,218, 24, 80, 77,199, 90,148, 91,145, 27,147, 8,131, + 24, 96, 12, 66, 88, 74, 36,132, 36,136,164,230,204,197,116,138,217,181, 92,248,153, 48, 23,233, 23,151,135, 17,187,155,112, 25, + 50, 11, 19, 0,161, 57, 48, 35, 11, 23,252,139,169, 2, 16, 49,169,101,115, 51,164, 32,140,128,142, 76,129, 3, 34, 2, 7, 22, + 20, 6,166, 33, 27,168,198, 58, 20,149, 31, 16,151,192, 68,249,250, 33, 27, 54,149,236,239, 81,172, 86, 41,117,195, 32,133,167, +130, 5,125, 67, 14,224,166,169,172,223, 0,208,173,235,251,165,218,209,227,199,103,111, 46,190,126,254,188,109,183,136, 56,159, + 78,159, 60,120,176, 89,175, 30, 76, 26, 9, 53,135, 24,234,198, 77,205,141,193,179,101, 64,175, 66, 3, 80,208, 91,192,132,229, + 83, 35,196,128,112,115,187,178,212, 29,238,239,129,200,238,172, 6, 14,142,132,194, 50, 10,190, 67, 69,140,132, 98,106, 65, 56, +134,224,238,170, 90,226,207,150, 45,134, 64,196,234,198, 8, 33,134,241,178,174, 30,138,239, 19,220,220,152, 80, 88, 10, 79,145, +169,220,227,176, 79, 3,255,221,223,252, 37,140,205, 93, 26,145, 38, 59, 17,202, 8, 34, 52,103, 14,227, 81, 24,119, 17, 61,220, +157,140,145, 70,155, 94, 57,180, 23,150,123,161, 32, 2,185, 41, 16, 65,185,106, 1, 18,151,165,144, 85, 85,120,251,246,246,225, +195, 7,102, 61,161, 56,184,155, 34,122,129, 19, 20, 70,174,249,136,198,216,189,210, 71, 47,221,142,216,131, 72, 50,126,197,165, + 39,108, 90,152, 57, 6,133,251,232, 64, 96, 6, 89,177,200,174, 93,109, 20, 66, 1,140,175,167,157, 68,157,208,144, 5,118, 47, +138, 17, 86, 7, 56,154,196,203,189,115,188, 47, 8,241, 8,241, 45, 89,170,253, 69,115,119,123,123,117,187,156,205,231,147,201, +196, 0, 68,112,189, 92,159, 95, 94,255,183,127,246,223, 47, 22,245,249,217,249,124,239, 96,187, 90, 86, 85, 61,170, 85, 88,118, +120, 63, 65,230,130, 22, 0,211,221, 76,109, 55, 90, 42,129, 35, 47,223,206,187, 6, 22,151,125, 54,208, 8, 21, 37, 34, 98, 46, +119,175,210, 47,159,236, 29,196, 88, 59,112,121, 67, 0,179,229, 97,204, 18,140, 71, 24, 68,164,213,221,242,252,205, 25, 56,238, +237, 79, 15,142, 31,188,252,250,153,171, 74, 12, 73,217,109,200, 41, 33, 73, 53,157,138,200, 98,198,251, 71, 15,145, 56,245,253, +203,151,175,174,238,238,231,243,253,239,126,244,109, 32, 72, 67,110, 22,135,100,158,134,237,226,224,144, 72, 54,235,229,230,246, +250,230,250,162,158,204,174, 94,127,209,109, 87, 67,183, 78,155,101,156,236,121,185, 75, 54,115,244,108,214,181,119,111,127,241, +213, 87,255,241,167,159,207,167, 83, 98, 90,109, 86,125, 26,110,238,151, 5,233, 92,130, 66, 69,103, 60,169,235,192,226, 35,216, +159, 28,188,156,165,218,126,200,234, 72, 92,196, 41, 85,172, 20,124,219,181,136,120,176, 88, 76,154,201, 98,222,172,187, 36, 6, +185,221, 58, 34, 32,101,205,106, 46, 34, 85,172, 42, 17, 68,234,251,158,133,205,116,218, 52,125,187,149,170,169, 10,154,124, 72, + 64, 20, 24, 35,113,219,183,205,100, 42, 68, 34,149,153, 3, 41, 32, 60,254,240,131,247,223,123, 50, 91,204,193,181,111,187,213, +242,254,242,242,237,171,243,203, 47, 95,188,122,126,126,190,221,110,191,251,222,251,127,246,187,127, 24,172,223,118,221,180,230, + 63,252,147, 63,250,225,143,127,123,232, 54,111,190,249,245,228, 96,177, 66,248,197,175,190, 0,160,231,175,206,222, 60,125,125, +188,152,236, 47,102, 84, 76,200, 14,170, 26, 67, 96,228,178,101, 41,251,134, 24,100,132, 61, 33,148,252,137,153, 49, 11,142, 53, + 69, 39, 96, 66,206,154,136,208, 70,105, 54,140,212, 95, 9, 85, 37,217,220, 82, 6,196,186,138,102,110,250, 78,134, 67,142, 92, + 8,220,194, 40, 34, 41, 37, 36,182, 2, 88,103, 86, 85,119, 15, 68,166,166,154, 10,251,186,196, 99, 98, 93, 87, 18, 1,193, 65, +131, 68,115, 69, 34, 53, 8, 34, 33, 72, 20, 33,100,115, 8,204,229, 33, 80, 38, 11,136, 68,238,196,130,200, 64,152,179,149, 64, +114,161,165,238,208,169, 36, 18,202,169, 62, 27,136, 68, 98, 48,115, 75, 78, 34,196,156,205,136, 88, 36,128, 89,249,128, 32, 82, + 78, 42, 7,179,230,193,195,151, 23,151,157,170,212,245, 42,229,205,144,153,176, 22, 14,204, 6,102, 6,230,185,180,190, 37,178, + 14,105,173,105,241,240,244,118,217,254,227, 79,127,182, 92,111, 75,152, 45,198, 96, 14,236,237,147,131, 35, 96, 38, 68, 22,202, + 57,107,206,150,141,152, 0, 11, 21,197,133, 24, 68, 10,112,133, 28, 84,109,185,222,220,222,223,159,238,207,170,166, 81, 53,220, +217, 49, 2, 5, 70, 84, 7, 66, 39,150, 66, 81, 44, 70, 13,162, 48,228, 84, 76, 44,229,239,184,174,130,170, 17,130, 16, 19,203, +120,209, 66, 38, 2, 3, 74, 67, 22, 44, 1,254,210, 82,245, 16,248, 29, 56, 32,165,196,127,251,215,255,142,198, 7,115,113,217, +141, 18,163, 50,193, 86,203, 84,110, 33,227,131,145, 60, 59,162,150, 50, 49, 73,145,107,192,187,208, 98, 73, 53,150, 33,199, 72, + 91, 30,179,150, 35,231,177,200, 54, 2,243,197,229,245,225,201,177,148,223, 92,244,157, 57,116, 28,195,149,120,209, 59,113, 42, + 34,113,241, 8,150,211, 72, 54, 42, 43,249,113,164,225,102,201, 13,118, 35,176,221,168,103,167, 28,249, 23,226, 18, 32, 2,121, + 23,156, 28,169, 46, 72,129, 0, 25, 32,188,163,199,143,177,202, 29, 91, 14, 1, 13,138,173,155,161,160,233,137,202, 23, 73, 28, + 31, 62, 60,121,254,252, 53, 16, 77,166,179,102, 50, 25,134, 20,132,190,252,250,217,233,225,126, 30,250,171,235,183,119,119,183, + 68, 30,171,186, 60,224,202,142, 98,231, 27, 68, 64,176, 33,149, 83,120,169, 44,143,160, 55,215, 66,254, 43, 99, 36, 87, 43,186, + 75, 26, 65,209,255,191,183,222,120,255, 33, 66, 8,243,227,135,229,231, 55, 94, 67, 10,148,172,236, 78,204, 41,198,180,221, 74, + 29,215,171,237,229,249,165, 14,219,197,254,193,209,233,131,151, 79, 95,164,172,105, 72,125,219,173,111,222, 0, 79,117,243,182, +154, 29,245,235,187,246,254,245,222, 98, 65, 0, 47, 94, 60,255,217,175,191,216,172,183, 31,125,252,221, 15,222,255,176,219, 46, + 93, 83,179, 56, 78,195, 22, 89, 42,219,174,111,222,128, 52,104, 90, 87,245,245,229,197,124,255, 84,152, 86,247, 43, 71,105,215, +171,102,182, 87, 9,197,201, 52,167, 14,101,210,117,195, 47,190,250,213,197,106,243,244,197,203,189,197,220, 29,210,144,238, 86, +235,145,183,231,227,164, 42,187,166,148, 38,245, 52,136,248,110, 83,239, 0,129,163, 35,180,125,251,174, 66, 55,228, 97, 82,213, + 72,152,205,126,248,233, 71, 76,248,249, 87,207,183, 93, 55,175, 66,172,107, 51, 3,146,178,191, 6, 5, 98,110, 87,119,186, 43, +226,215, 49, 70,166,182,221,198,216, 8, 67,144,186, 14,146, 77, 65,147,123,118,207,194,129, 89, 36, 72, 96,108,166,211,111,125, +250,201,163, 71, 79, 66,140, 67, 26,218,174,189,191,187,251,242,217,179, 95, 61,253,230,155,151,175,223, 92,188, 93,212,211, 63, +248,236, 71,191,243,157, 79, 38,179,197,171,103, 95,124,250,201,183,254,135, 63,255,243,253,253,253,231,191,252,231,118,187, 92, +117,237, 23, 95,126,245,242,155,103,147, 73,243,236,215, 79,107,131,147,253,121, 93, 87,174, 70,132, 89,157,152,133, 67,136, 12, +192,229,227, 23,162, 8, 48,129,140,177,246, 50,145,196,146,192, 51, 0,160, 34,102, 24, 13, 56, 0,136,234,202, 28, 25, 17,137, +170, 88, 1,143, 79,124, 22,137, 49,142,127,172, 48, 88, 9,171, 80, 96, 78,158,139,193, 46,165,172,166,165,166,158,135,212,247, + 67, 37, 2, 8, 99,149,164, 48, 55,152,128,104, 58,105, 88,202, 53, 31, 10,184,196,198, 79, 44, 87, 49, 6,150,108,134,204,187, +157, 0,102,117, 34, 38, 38,112, 36, 17, 22, 81, 3, 22, 14,204,229, 83, 38,194, 8, 2, 88,144,225, 84,246,135, 76,196, 66,230, +154,213, 9,203,189,151,144,208,204, 75, 40, 82,221, 0,129, 3,187,186,154,206,159, 60,185,223,180, 95,127,249, 84,115, 98,150, +219,251,165, 17, 34,139, 19, 72, 9,203,144,148, 19, 15,160,229,148,135,156,113, 58, 27, 12,159, 63,127,121,187, 90,169,101, 48, +127,242,240,228,241,163,199,151,215,111, 63, 60,220,219,159,237, 67, 73, 97, 26,228, 97,240,157,156, 90, 40, 20, 73, 81,105,147, + 49,242, 48,162,228,253,250,110,133,174,139,253, 57, 51,131,123,178, 92, 30,196,163, 68,176,212, 17,188, 76, 30, 32,196,160,217, +218,190, 19,198, 24,162, 2, 86,204, 14,144, 76,105,100,107,210,238,105,198,224,218, 15, 10,150,130,112,118,207,217,145,128,145, +204, 60, 59,148, 62, 48, 34,230,172,252,119,127,253, 23,239, 48,181,229, 83,130,229, 39,189,227, 90,189, 83,102,240, 78, 83, 14, + 4, 99,148, 22, 1,139, 72,174, 80,120,202, 16,185, 44,115,124,151,185, 46, 83,136,241,143, 7, 68, 48,117,102, 89,223,223,106, +152, 44, 38,149,155, 35,128,144, 56,148, 28,149,191, 75,221,140, 70,234, 82, 62,246,119, 39,239,119,231,145,200, 99,100,189, 76, +240,129,138,241, 17, 11,212,134,184, 68,125, 74, 27, 23,129, 9,153, 73,118,128,117,112,119, 55,203,133,129, 74,229,116, 11,101, +158,232,239,156, 37,190,243,126, 56,130, 1,238,214, 5,227, 35,150, 16,220, 76,155,166, 18,242, 23, 47, 94, 47,246,246, 98, 85, + 85, 85,221,118,237,102,189,185,190,190,250,193,119, 63,253,228, 59,223,185, 58,123,241,254, 7, 31, 93, 93,188,142,161, 25, 61, + 57, 37,199, 35, 76, 64,174, 14, 52,182,195, 70, 6, 82,201,134, 90, 1,246,152,143,212, 72, 51, 24,249, 27, 5, 68, 51,178, 85, +119, 28, 30, 68,100, 38, 51, 88, 28, 28,149, 1, 44,184, 1,209,216, 35, 6,114, 3, 20,113,207,224, 32, 44,119, 87,119,119, 55, +119, 89,243,193,225,241,193,201,226,236,213, 89,215, 14,155,229,101,151, 90,164, 41, 87, 65, 98,147,123,219,172, 46,254,195,127, +250,143,255,240, 95,254,233,243,159,255,244,191,252,236,243,203,187,251,164,233, 71,223,251,221,131,163,135, 92, 53, 20, 23,195, +230, 54,181,247,113, 54,223, 59,121,184, 89,173, 40, 86,221,102,189,188,127,219, 76, 23,195,230,126,187,188, 93, 28, 62, 90,222, +189, 69,150,186,158,222, 95,190,238,218,141,166, 97,177,127,188,222,220,253,243, 55, 79, 89,228,236,250,250,110,185,100,166, 24, + 4,157,134,212,219, 8,141, 40,215, 24,202, 57,101,213,166,174,130,132,221, 55, 12,230,214,132,255,143,169, 55,251,177, 45,185, +206,252,214, 16, 17,123,159, 49,231,155,119,190, 85,117,107, 96,145, 44,138, 67, 73,108,146, 18, 7, 73,109, 11, 26, 72,169,219, +109, 73,221,104,184,209, 15,134, 97,192,126,243,191,100,216, 64,195,176, 13,195, 48,108, 9, 80,183,221,118,183, 68, 81,226, 88, +243,157,115, 30, 78,230, 25,247,222, 17,107, 45, 63, 68,156, 44,189, 93,178, 88,200,203,147,251,196, 94,177,190,239,251,125, 94, + 64,155,174,203,231,156,168, 38,179,135,251,123,119,183,183,167,203,213,217,197,117,191, 55,154,204,175, 85, 99,191,234,101,230, +129, 74,146,148,174,174, 47,178,236,148,136, 45,165,126,175,234, 87, 53, 0,132,224,205, 52, 38,109,154,102, 54,159, 48,234,173, +205,173,221,221,189,157,173, 61,118,161,141, 93,168,195,237,251, 15, 31, 60,126,253,246,157,187,200, 20,155,213,116,122,245,242, +224,229, 47, 63,252,244,233,171, 87,167,231,215,211,233,244,209,254,173,255,228,219,223,189,127,123,135,125,208,216,126,231,251, +223,125,255, 55,190, 57,187, 56,189, 60, 59, 58,191, 56, 89,116,177, 30, 15,125, 8, 47, 62,125,222,206, 86, 91,227,225,112, 80, + 97, 89,252,113, 50,115,236, 56,167, 65, 0, 50,205, 42,132, 42,243, 86,147, 9, 17, 99,142,171,130,186,181,171,192,196, 20, 36, +137, 57,199,153,194, 4,102,142,124,206, 62, 49,123, 85,209, 36,196,236, 8, 85, 85, 68, 85,129,185, 88,205,204, 20,137,193,160, + 14,190,237,162, 33,120, 42,242, 90, 76, 41,169,152, 89,238, 84,206, 28,115,114, 92, 87,158,208,213,222,173,145,168,104,144,227, +232,232,216, 1,160,115,164,146, 61,151,132,128,236,179, 11, 30,156,203,239, 6,246,161, 38,231, 16,160,170, 2, 50,171,105, 76, +234, 28,154,129,137, 9, 24, 57,151, 68,136,153, 61,145,101,209, 8, 67, 85, 1,114, 65, 56, 1,128,168,100,109,137,139, 63,159, + 20, 23,210,180,200,207,159,189,154, 76,231,147,171,235,243,203,137,130,142, 7,195,235,197,124,213, 70,116, 28, 8, 29,168,247, + 62,207,175,177,233, 58,230, 48,222,252,249, 7,159, 30,158,158,128,161,169, 18,113,221,235, 93,205, 22, 53,200, 59,247,239,147, +115, 0,172, 42, 93,138,148,133, 17, 53,239,188,161,137,149, 74, 44, 51,200,104,107,239,221,124, 21,231,243,249,173,237,141,170, +174,146, 90,236,186,224, 42, 34, 66,162, 12,129,202,198,246,162,246, 1, 74, 18, 3,169,234, 32, 6,170,209, 57,159,151, 20, 25, +197,115,131,141,101,164,164, 81, 69,156, 99,118,216,117,130,102,204, 84,101,124, 2, 0,170, 33,145, 42,152,196, 40,137,255,244, + 71,127, 88, 42,233,138,160,154,199,237,140,113,207, 14, 60,203,139,247, 53,234,203, 40,135,126,138,173, 97, 61,185,175,231,204, +188,174,206,219, 98,202, 18,120, 9, 60,173,211,173,165, 14, 80, 23,173,108,109, 12, 37, 38, 43, 43,110, 83, 48,212,210, 21, 72, +228,214,205,128,134,120, 51,178,150,217, 58,123, 94, 11, 26, 31,114,247, 8,150,165, 5, 17, 21, 95,189, 3,200, 77,193,133,131, +137,159,155, 39, 1, 13, 21, 81,212,242,130, 4, 50,244, 6,215, 65,214,245,250, 41,123, 54,160,168, 72,153, 91, 99, 55,152,245, +140,118, 22,181,221,237,205,167,207, 94, 69,177,254,112, 84, 87,125,231,168,109,154,159,126,248,105,205,221,254,254,206, 98, 54, +255,248,195, 95,157, 31,191, 10,140,190,238,177,243,236, 3,177, 67,200, 45, 34,172,146, 84, 4,137, 75,240, 67,109,109, 57, 45, +237, 58, 57, 65,199,107, 33,152,156, 47,191, 44, 94, 39, 6,212, 56, 56, 19,243,245,168,191,177,153,177,154, 26, 99,201, 70,100, +174, 89,222, 43,117, 29, 34,115,229,231,215,179,179,195,195,148,236,238,163,135,163,205,209,171,167,175,186,110,217,174,218,212, +169,167, 4, 0, 0, 1,152,122,220, 45,151,179,207, 94, 30,126,248,236,229,249,228, 26,193, 0,221, 55,190,242, 53,239, 43,212, + 68, 68,177,185, 6,145,219, 15,223,214,152,212, 85, 34,214, 76, 39,189,193,184, 10,117,179, 90,176, 27,174,218,149, 25,110,108, +236,116, 77,211,182,203,225,104,179,238,111,118,205,236,147, 79, 62,252,229,179,231,249,249,152, 92, 93,119, 49,153,218,206,198, + 24,145,150,171, 6,214,215,152,252, 91, 78, 41,169,105,175,174, 3, 59, 85,181,242,234,197, 94,221,219,232, 15,135,189,161,129, +142,251,245,107,251,123, 41,197,103, 71, 39,128,174,235,154,141,209,104,119,107,235,236,106, 42,169,171,124,157,105,209,170,138, +190,114,206,123,199, 8,224,188,223, 26,141,103,243,105,138,157,239, 15,219,216, 69, 81,116,158, 9, 71,181, 75, 93, 28,141,199, +203,118,117,189,152,111,237,237, 60,122,243,173,251,175,189,190,177,189,139,200,211,235,203,195,195,195,207,158, 63,251,232,211, +231, 7,103,167,231,151, 83,231,232,155,191,246,213,175,127,225,109, 54,152,207,231,247,238,237,127,227, 27, 95,221, 24,143,142, +159,127,150, 40,117, 8,191,248,228,179,189,205,141,195,243,139, 79,126,249,241,198,160,191, 53,234, 83,161,129,228,203, 98, 6, +157,251, 12,228,102,202,197,108,200,142,204,178, 26, 68,134,150,123,125, 45,231,119,214,119,238,164,234,152, 45,143,216,217,211, +134, 64,128,206,187, 36, 41,207, 68,140,148, 84, 76, 85, 83, 44,223, 40, 67, 41,166, 44, 66, 68, 5,160,220, 58,131, 25,231, 74, +222, 5,206,200, 11,202,205,116,196,142,136,201, 57, 70, 36,209,168,128,149,119, 42,121, 61,146,145, 37,204,132, 49,199,115, 28, + 1, 0, 51, 3,100,249,151,137,152, 43, 95,238,174,148, 61,135, 22, 37, 86,235, 43,133,138, 58, 31,216,145,103,102,239, 16, 73, +147,196,100, 89,196,205, 59, 37, 98, 86, 80, 19,201, 58,115,169, 53, 67, 50, 85, 83,153, 38, 89,118, 58,157,207,155, 85,211,165, + 14, 81, 99, 23,163, 72, 74,201,133,208,136, 38,226,202,129, 3, 67,132,174,137,139,148,252,198,232, 98,114,125,116,122,214,117, +157, 35, 66,132,183,222,120,216, 38,157, 93, 95,125,229,209,221, 97,221, 47, 36,154,210, 83,103,142,125,130,114,196, 85,161,103, + 0, 42,146, 36, 2,152, 39, 15,166,199, 23,147,205,158, 31,142,134,170,128,104,142,125, 89, 24, 48, 6,226, 76,205,117, 76,128, +220,165,148, 99, 77,204,222, 0,152, 28, 33,139,196, 44,149,147,154,102, 39, 18,145,129,117,169,147,100, 68,168,102, 10,200, 8, + 68,152,161, 5, 42,134,136,150, 50, 90, 1, 29,115,140,202,127,246,163, 63, 44, 13,117, 6,136,180, 70, 13,220,212,244, 25, 34, +115,185, 94, 97,129,245,174,119, 41, 89, 40,200,128,150,242,156,173, 37, 12, 85, 64, 46,173,132, 57, 59,191,238, 87, 53, 34, 48, + 68,239,252,233,233,209,206,173, 59,146,186,204, 3, 64,200,190, 32,204,203,250, 60,122,150,176,149,149, 12, 85,126, 67, 20,163, + 75,166,246,174,215,180,140, 4,142,110,140,246, 88,108,129,134,146,241,110,192,197, 74, 77,159,215,196, 26,163, 65, 38, 80, 32, + 50, 64, 42, 48, 28, 67, 36,203,183, 24, 64, 34,244,148, 77,186,229,103,223,124,167,104,253, 90, 37, 71,126, 52,170, 62,121,246, +114,208,239, 87,117,221,239,247,235, 58, 44,166,211, 15,159,159,190,125,123,188,119,247,222,203,167, 79,190,241,205,127,244,226, +179,143,123,253,126,127,180,157,219,169,204,178,233, 84,178, 11,146,202,235, 15, 11,180, 30,203,175,120, 45, 55,184,178,139, 89, +123,224,136,125,233,154, 93,247, 30, 32, 81,232,143,171, 94,207,180,224, 76,193, 0,156, 67,100,141,137, 72,129, 28, 57,159, 59, +160,175, 46,167,103, 39,167, 10,112,239,222,237,126, 21, 62,253,240,227, 4, 56,191, 60, 97,239,129, 61, 98,109,237, 60, 38, 29, +247,181, 23,120,115, 52,232,247,122, 73, 82, 23,211,112, 56,252,250, 23,191, 38,113, 21,170,254, 96, 99,163,237,162,247,117,175, +223,107,187,180,156, 28,167,118, 89, 15,119,134, 27, 91,166,182, 90,204,134,227,205,170, 55, 34,166,174, 89,228, 12,180,196,184, +177,185,141, 93,252,241, 47,127,230,234,129,129,121,162, 69,179, 66, 38,199,212,180,109, 94,171,173, 37, 38, 92,191,188,177,137, + 73, 84, 6, 85,133,192,154, 61,147,101,182,192,189,173,173,175,190,253,218,157,157, 29, 3,119,126,189,152, 45,150,200,214, 52, +157,247,110,119,103, 43,248,234,233,241,177,103,232,215,189,202,249, 36,186, 22,184, 32,182,173,170, 5,143,222,133,170,215, 7, +213, 94, 85, 17, 82,155, 98, 21,124,191,223, 31, 12,198, 4,208, 27,110, 62,120,231,157, 55,191,244,222,254,189,215, 67, 21,154, +249,245,193,171,103,207, 62,123,250,228,229,171,151, 71, 39, 7,103,103,231, 87,215, 95,121,252,250,251,239,190,123,255,238,107, + 81,210,214,206,206, 55,191,245,235,175, 61,186,127, 61, 57,107,154,217, 39,159,124,244,226,244,116, 62,157, 93, 78,174,143, 94, + 29, 45, 39,179,157,209,112, 88,215, 55,222, 93, 34, 10,222, 37, 77,156,193,179,200, 88, 54, 84,107,110,117,233,207,225,181, 50, +134,204,222, 51,235,122, 39, 73,228, 20,208,179, 47,137, 15, 36, 68, 82,149, 54,118,193,249,108,146, 17,137, 18, 59, 38, 16,133, +224, 3, 50, 90, 30, 95, 40,103,103, 92,105, 66,101, 2, 68,102,242, 76, 92,204, 8,204, 46,228, 94,132,138, 93, 76,194,232,128, +144,115, 43,142,170,130, 49, 51, 98,110,197, 96, 36,172,214,158, 22, 38,151,127, 83,196,236, 28, 35, 81,169,137,203,143,122, 82, + 67, 32, 32,145,132, 0, 57,205, 0,104, 92,210,161,104, 42,128,192,193,103, 19,142, 9,146, 39, 48,131,148,208,231,141,129,187, +209,226, 8, 41,153, 1, 98,135, 41,132,122,190,108, 22,171, 85, 82, 80,181,220,188,218,175,195,100,186, 0,128, 6, 81,201,192, +120,217, 9,142, 71,211,101,243,243, 15, 62,158, 47, 22, 25,173,222,239,213,222,135,243,201,213,151,239,223,221,223,220,138,170, +160, 72, 76, 42,160,166, 61, 23,216,249, 76,177,245,206, 35,115, 62, 91, 67, 85, 49, 51,170, 77,102,203,118, 53,223,218,222,240, +189, 26,217, 35,113,215,117,206, 17,135, 0, 70,106,106, 42,142,208, 8,219,166,243,140,136, 44, 26, 93, 30,251, 50, 33, 17, 13, +153, 68,196,214,125,212,162,154, 67,203,204, 78,147, 16, 97, 8,228, 66, 21, 69, 40, 59,199, 25, 21,208, 36,121,231,204, 12,243, + 46,238,207,255,228, 71, 96,160, 32,165,200, 54, 79,182, 72, 0,192,174,108,191,168,240, 24, 0,128,202,122,187,228,101, 11,228, + 29,203, 42, 60, 71,128,141,224,230,159,222, 48, 13, 21,145,137, 75,119,135, 25,212, 85,117,126,114,234,251, 27,126, 29,145, 42, +131, 26, 25,185, 27,141, 49, 71,103,179,129, 68, 11, 3, 6, 74,176,215, 44, 99, 35, 53, 7, 74, 11,238, 38,163, 91,202, 95,201, + 76, 1,137, 17, 5,184,172,186,217, 21,202, 78, 94,200, 19,123, 32,134, 66,154, 51,204,171,223,108,154, 41, 34,167, 34,152, 65, + 78,237, 2, 49, 27,144, 34, 16, 16,231, 16, 22, 33, 0, 27,232,246,206,206,242,250,250,226,122, 62, 30, 13,201,133, 58,244, 24, +245,195,207, 62, 67,115, 3, 94,190,124,241,106,255,193, 27,154, 58,141, 82, 15,135,196,206,135, 42,171,200, 25,129, 74,204, 89, + 53, 45,141,103, 25,250,147, 93,237,133,136,161,107, 36,112,185,224,100,241,245,134,172,192,236,204,180, 63,218,169,122,125,160, + 92, 69, 70,150, 18,128,165,166,201,175, 8, 83,115,217,184,214,181,147,201,252,228,213, 11,235,150,175,191,243, 14,123,247,252, +201,139,235,211, 3,209,174,238,111,197,100,177,155, 85, 85,237, 29,250, 16, 25,157,119, 46,166,238,252,106, 10,128,183,239,220, +121,247,241,187, 10,145,156, 71,224,118, 62, 55,196,224, 56, 25, 46,103, 87, 93, 27, 1,124,187,188, 88, 45,103,139,217,213, 96, +180, 41,113,185,154, 28, 57, 4, 96, 95, 85,149, 11, 30, 36, 61,249,236,131, 31,127,244,113,236,186,121,211,204,166, 83, 1, 11, +176,126, 6,208,242,155, 45,198, 8,107,135, 93, 78, 47,116,109,151,204,250,253, 62,234, 90,212, 55,243,204,119,246,198,151,211, +249,197,245,162,170,170,173,205,209,254,214, 78,219,118,215,179,105, 47,212,103,147, 11, 48,245, 92,157, 92, 93,143, 67, 80,144, +202,123, 2, 76,210,121,230,182, 93, 25, 81,191,234, 85,193, 87, 85,127,181,184,114,190,118,228,137, 45, 37,107,147,116, 41,237, + 61,120,244,230, 87,190,126,251,225, 27,195,141, 45,105,227,114,118,249,228,201,147, 23,175, 14, 15, 78, 79,159, 31, 28, 30,157, + 93,116, 93,247,107,143,223,122,124,255,158, 26, 59,166,119,223,120,248,245,175,191, 71,218, 93, 28, 61,127,249,244,137, 16, 8, +232,214,230,240, 39, 63,254,153,182,114,107, 52,220, 24, 13, 60,121,200,161,142,210,245, 75, 73,173,114, 21, 33,106,238,226,201, +206, 63,242, 57, 41,152,123,148, 68,133,153, 21, 17, 84,193, 52,105,110,246,241,106,150, 84,234, 16,136, 25,193,114,102, 71, 84, + 77,181, 87,247, 8,172,137, 89, 51, 67, 34, 74, 38,136,236, 61, 3, 96, 29, 42, 17, 81, 85,199,156, 97, 91,236, 24, 50, 38, 9, +161, 72,150,128,204,148, 52,121,199,142, 93, 20,245,142,242, 77, 57,127, 71, 99, 18, 52,242,129,131, 39, 1, 76,146, 16, 13,201, + 1,176,169, 8, 42,152, 18,187, 42,120, 66, 80,133,220,149, 9,142,186, 54, 17,147,115, 78, 36,130,129,247,174, 77,137,137,122, +117,149, 13, 67, 34,146,109,136,136, 6, 70,206,121, 35, 51, 66, 38,151, 13, 43, 76,228,216,137,170, 98,206,189, 2, 35, 16, 96, + 39,118,113,117,237, 60,189,126,239,254,178, 89,165,152, 16, 76,212,174,174,175,199,131,254,112, 56,156, 45, 27, 64, 55,139, 66, + 33,184,224,143,143, 79, 46,174,167, 34,137, 8,251,117,245,248,181, 71,199,151, 87,247, 55,134,111,221,221, 71,176,192, 30,157, + 67, 38,118,232,157, 19, 64, 83,173,122,181,227,144, 36,105, 74,228, 28, 5,103,162, 68,144,196,206, 46,175,110,109, 15, 55, 54, +119, 93,168,136,188, 74,116,228,216, 57, 51, 75, 49,153,168, 35,108, 58,149, 24,123,117, 45, 6,160, 90, 85, 61, 85,200,192,112, + 3, 35, 36, 53, 69, 85,207,220, 73, 76, 49, 49,179,247,190,105, 27, 53, 53,212, 42,184, 78,208,146,196,148,242, 36,152, 45,128, +236, 57,195,229,234, 16, 90, 21,254,179, 63,254, 67, 64, 40,115, 47,131, 74,177, 9,146, 17, 18,169,100,170,250, 26,201, 5, 86, +138,188,254,193, 94, 62, 31,165, 89,137,132,181,150, 9, 37,118,104, 72, 25, 32,130, 8, 32, 57, 64, 65,104,160,206, 7,137, 93, + 84, 28, 13,107, 64,159,255,165,220,134, 90, 56,186,133,115,150,117, 95, 51, 53,162,245,202, 4,177, 44,202,243,215, 3, 72, 52, +229,211, 63,159,205, 8,154, 55,249,159,163,211,197, 64,129,214,247,144,124, 74, 26, 57, 36, 95, 40,146,197,169,175,121, 85,165, + 57,172, 91,218,150,180,252,191,101,202, 23, 20,206,197, 38,235,183, 24,229, 69,166,218,120,212,127,121,120,236,125, 85, 85,189, + 42, 4, 23, 66, 77,250,211,143,158,108,247,253,151,190,250,222,225,171,163, 71,111,191,115,118,124, 52,222,216,113,190, 42,246, + 76, 43,142, 87, 0, 2,226,178, 13, 67, 64,226, 27, 76,155,153,170, 8,136, 42, 96,161,142,220, 4, 17,242,146,162, 92,147,192, + 68,135, 59,183,217,179,118,109,142,229, 81,229, 76, 44,187,116,164,139,161, 87,105,236, 76,162, 37,189,184,156, 45, 22, 77, 24, +108, 62,122,252,168,109, 86, 31,252,253,143,167,167,175,122, 27,183, 37,117,132, 22,234, 13, 12, 53,168, 90, 55,117,206, 37, 73, + 23,147,233,197,228,122,177, 92,125,233, 11, 95,249,194,151,223, 71,100, 49, 52,176,184,154,223,122,240,104,255,193,155,231, 7, + 79,102, 23, 47,124,168, 92,175, 47,221, 74,218,153, 52,215, 73, 36, 54, 77,175,215,159,205,174, 57,244, 24, 89, 99,179,152, 77, +254,238,131,159,190,154, 76,135,253,126,215,117,203,182,109,219, 40,160,102, 38, 73, 37,105,126, 30, 21, 44,137,220,136, 64,121, +156,104, 99,231,144,122,189,218, 76,107,239,111,109,143,198,131,193,241,233,229,217,228,170,137, 93,215,117,154,196, 57, 26,246, +122,139,166,105, 98,155,162, 36, 85,239,160, 75,118,181,152, 87,132, 62, 84,140,138,232,242, 84, 91,247, 6,102,170, 73,230,243, + 75, 48,246,222, 87, 33,204, 23, 75, 51,219,191,125,231,189,111,188,255,248,139,191, 54,218,216, 68,194,217,229,233,217,225,171, + 39,207,158,188, 56, 56,120,254,234,240,197,193,201,233,100,178, 51, 30,127,227,205, 55, 95,187,119,111, 54,155,222,187,115,251, +215,191,241,222,131,251,119,206, 79, 14,154,213, 28, 7,189,143,159, 62,175,157, 63,155, 78, 62,251,224,233,102,175,190,179,189, +105,104,249, 41,228,226, 68, 35, 98, 6, 4,239, 88,138,146,136,162,178,174,199, 89, 55,187, 16,218,231,104,223,162, 70, 17, 48, + 19, 38, 17,199,158,185,236, 42,136, 93, 76,217,150, 13,165,246,192,128,215,193, 37,102,118,236, 51,186, 60, 4, 23, 83, 2, 49, +118,107,237, 14,114, 83,118, 46,187, 84, 88,247,120, 56,196,224, 93, 38, 63, 6,239, 12,129, 28,177, 39,176,245,201,193,148,146, +170,145, 15, 85,224,192,236, 68, 68, 82, 71, 76,140,204, 46, 16,162,228, 75, 61, 2, 17, 37, 85, 85,101, 66, 68,144, 36,153,254, +139, 4,204, 14,145,147,198, 20, 37,223, 4, 68, 21, 12, 44, 26, 82,142, 62, 98, 38,164,243, 58, 33,152, 93,193,180,254, 90, 19, +185, 64,200,200,192,216,116, 93, 8,161,107, 83,240,174,233, 98,142, 8, 24, 88,219,182,117, 85, 13,135,131,179,139,203, 65,191, +126,117,114,246,226,240,168,156, 98,132, 91, 91, 27,200, 46, 46, 23, 95,125,120,183,215,235, 25,144, 88,102,205, 35,128, 3,208, +224, 42, 0, 16, 81, 85, 1,196,170,242,165,240, 19, 80, 13, 46,166, 83,135,186,187,187,171, 68, 6,230, 66,197, 33, 0, 65,238, +120, 34,114,162,169,235, 58,102,240,206,229,149, 50, 82,182,132,150,190,114, 19, 41, 59,122,114,130,192, 72, 92, 2, 48,226,200, +229,190,204, 92,183,204, 68,196, 46,171,181,165, 33, 46,103,184,136,137, 72, 69,156, 81, 6, 99,230,238,173,188,221, 32, 80,203, + 48,252, 50,200,230,187, 34,193, 77, 95,105, 25,117,129, 32,195, 52,179,133,116,109,227,206,144,159,245, 61, 32, 39,217, 44, 71, +168,114,161, 5, 51,155,217,198,120,120, 50,153, 33,142, 51,139,147,145,204, 4, 29, 65,150, 3, 51,248,203,138, 22,105, 37,220, +129,235, 6,162,252, 56, 2,161, 19,205,232,211,146,245, 65, 2,180,181,238, 4, 69,190,128,204,230,202,243,176,100,131, 60, 50, +179,164,132, 38,235, 96,238, 58,133,101,152, 35,162,134,134, 6,140,206, 32,183,218,100,217, 62, 39, 49,114,196,200,149, 14, 66, + 64, 49, 27,111,110, 62,186,183,127,120,114, 49, 24, 14,189,115,131,193,232,141,199,111, 29,156,156,253,221, 39,135, 15, 30,221, + 57,124,249,100,213,174, 16, 45,198,198, 73,133,236, 16,179,197,202, 64, 20, 28,131,105, 70, 45,151,129, 29,233, 31, 72, 2, 98, + 6,204,222,192, 84, 5,145,214,136,102, 40,216, 31, 81,231, 56, 10, 34,128,116,157, 1,147, 99, 48,213, 85, 99,230,184, 14, 42, +145,131,215,156,153, 66,118,189, 26,236,136,152,177, 91, 16,210, 98,114, 53, 61,122, 49,186,251, 24, 24,217, 56, 54, 43,147,171, +173,251,111,205, 47, 94,144, 26, 32, 55,171, 70, 68, 76,177,139,205, 59,111,189,139,224, 22, 87, 19,244, 20, 23, 83, 53, 9,152, +150,147,147,233,233,115,195, 42,166, 84, 3,104, 90, 93, 93, 28,246, 7, 27, 33, 84,189,254,230,201,179, 95, 12, 55,246, 70,155, +123,179,243, 87, 72,210, 25,158,206, 86,207, 95, 30,248,135,247, 87,171,101, 18,201,215,210,124,150,172,145,212, 56,118,189, 85, +215, 45,155,166,164,162,181,116,190,156, 76, 46,204,244,139,143, 31, 17,200,209,197,213,116, 25,209, 36,248, 42, 89, 90,181,171, +166,109,150,205, 98,216, 27,222,221,187,117,116,126,153, 52,174, 86,171, 20,171,187,251,123,109,108,143,102,139,205,141,113, 23, +213, 48,133, 48,242, 85, 13,154,144, 67, 4,168,122,155,205,106, 49, 95,173,146, 65,175,223,127,237,141,183,222,250,210, 23, 71, +219,219, 85, 93,167,102,113,117,117,121,121,118,118,118, 57,121,241,234,224,224,236,252,228,226, 10, 76,222,189,255,224,173,123, + 15, 36,117,108,242,131,223,250,214,195, 55, 94,139,203,217,197,201,243, 15,127,245, 33,143, 70, 85, 21, 22,203,197, 47,126,126, +170,177,219, 25, 15,250,245, 0, 16,217,149,234, 32,133, 0, 0,142, 17,152, 98, 18, 3,200, 1,212,148,149,152, 98,205, 54, 34, +114,142, 37, 9, 88,134, 97,229, 86,103, 68, 70, 77, 42, 6,204, 46,105,100, 98, 48, 52,208,212,166,188,216,149, 36, 4,185,132, + 11,213, 12,208,188,243,106,224,152, 50, 78, 82,196, 0,137,125,190,251,103,176, 23,198, 46, 1,162,168,121, 70, 17, 3, 54, 95, +170,239,204,123,135,153, 52,204, 25, 84,198,236,208,136,216, 44,198,232,125, 8,117, 37,162, 73, 51, 6, 7, 29,251,242,158, 54, + 35,176,220, 74, 6, 6, 64,230, 12, 98, 30,106,136, 75, 91,131, 42, 66,118,223, 3,146,115, 62,115,187,141,137, 9,173, 43,130, +170, 97,217,220, 50, 25, 42, 18, 48, 34, 1,118,154, 37,226,114,217, 35, 87, 89,188, 53, 24, 17,242,213,244, 26, 1,246,247,182, + 87,177, 75, 41,129,105,211,196,182,237,136, 56,171, 2,139,229,106,181,106, 1, 44, 56, 78,104,143,238,220,173, 6,253,143, 63, +254,244,219,111,190, 54, 26,141,162, 49, 59, 0,233, 20,146,168, 5, 87, 27, 4, 5, 19, 81,246, 76, 68,102, 16,147,229,150,104, + 83, 49, 37,233,186,173,209,176,204,150,204,132,138, 68, 92,215,150, 36,182, 77, 76, 45, 3, 24,174, 17,229, 8,170,146,245,218, +220,127, 10, 6,228,125,183, 90, 49, 3,147, 15,228,146,197, 14, 0, 12,170,224, 82,210,130, 56, 70, 11, 33, 36, 81, 4,171,124, +136,109, 68,208,188,244, 82, 49,239,193, 33, 17,123,254,179, 31,253, 17,174,239,253, 89, 7,229,245,159, 36, 11,137,246, 57,153, +232,166,196, 47,239,206,214,177,126, 88,247,129,174, 21, 90, 43,204,195,236,135, 33,102, 66,179,108,236, 45,224, 73, 51, 85, 14, +124, 53,185, 30,141,134,156, 93,182, 25, 18, 95, 60,131,121,239,128,165, 58, 96, 61,201,100, 47,124,190, 53,100, 73, 10,144,114, +207, 97,105,175, 6,202,137, 80, 88, 67,139,242, 8,204,232,179, 93, 60,159,250, 89,184,227, 18, 94,203,181,117,153, 64,147, 1, +188,186, 86, 97,105,221, 52,136, 88,214,141,185, 51, 47,255,124, 42,127, 88,239,114,204, 96, 52,168,159,191,120,165, 70,195,209, +136,209, 85,161, 2,144,103,175, 78,182, 42,247,181,247,191,222, 44,151,239,124,249,107,121,219,228, 10,127,137, 85, 20,188,195, +242,238, 85, 83, 41, 43,254,155, 79, 23,214, 54, 32, 40, 19, 90,142,170,174, 97,157,108, 57,207, 76,152, 84,199,219,251,228, 28, + 17,107,106,193, 72, 21,128,208, 87,158,156,183, 24, 77,204, 5,111, 41, 97,229, 46, 78, 46,175, 38, 23, 0,114,239,193,195,179, +231,159,156,156,157,187,225,134,181,141,117,201,168,234,143, 70,182, 60,107, 22, 87, 33,176,169, 46,151,171,179,203,203,147,171, +137,153,125,239,123,191,191,156,207,187,213, 89, 24,236, 1, 86, 91,251,247,247,238,220,157, 78,206, 63,250,201, 95,110,223,127, +123,235,214,163,174, 91, 57,215, 71,163,225,230,118,175,238,169,152,196,102, 48,218,188, 60,125, 90, 85,195,203,147,231,179,229, +114,176,177, 3, 68,159, 60,123,218,175, 7, 77,215,181,146,184,200,115,132,255, 0, 33, 84, 5, 47,162, 41, 38, 66, 2, 2, 83, +136, 42,227,186,247,181,183, 30, 45,151,205,193,249, 52, 38,225,155, 98,118, 64, 5, 19,176, 36,105,217,180, 73,100, 60, 28, 44, +155,166,141,157, 99,106,186,118,119, 99,227,114,182, 76, 41,237,110,110, 24, 64,191, 10, 76, 84,213,181,180,171, 80,245, 76, 90, + 67, 68,246,161,238,255,250,183,190,245,218, 59, 95, 24,141, 54,152, 93,183, 90, 29, 29, 30, 76,206,206, 95, 29,157,124,252,228, +233,179,227,227,139,201,164,118,244,149,219,187,119,119,119, 0, 97, 99,107,248,253,239,126,123,111,127,111,114,252,234,224,249, +211,165,234,249,244,106,107,115,243,167, 63,254,249,106,209,236, 14,123,227,222, 0,114,234,192, 50,199, 57, 75,100,234,157, 55, +192, 36,169, 10,181, 67,143,136,201, 4,115,199,178, 99, 0, 11,158, 85,243, 76,134,236, 3,227,250, 43,167,229,102, 67,136, 10, +249, 16, 68, 48,107,150,109,168,188,222, 36,179, 77, 29,114, 22, 51, 29, 81, 62,197,152,193,178, 9, 26, 9, 12, 68, 77, 82, 36, +210,174,233, 98,140,162,198, 55,122, 47, 80, 93, 87,109,148,224, 24, 50,177, 5, 81,132,206,123, 0, 0, 32, 0, 73, 68, 65, 84, + 89, 36, 47,237,153,216,221, 20, 79, 34,145, 1, 72,206,221, 19,122,199,107, 11, 47, 25, 18,136,114,112,192, 57, 33,143, 96,104, +162, 8,148, 63, 4, 4, 98,159,155, 66, 44,137, 58,231,138, 4, 5,192,128,158, 89, 1,201,113,102,183, 50, 51, 82, 89,231, 50, +231,238, 76,208,148,152,184,147,104,136, 46, 31, 19,204,129,160, 38,215,247, 78, 64, 79,175,166,219,155, 27,247,111,221,190,158, +205,213,196,212,218, 46,166,148,222,123,231,157,208,239, 29, 28, 30,167,204, 47, 81, 24,244,235,179,201,244,205,205,225, 27,247, +111,147,171, 12,133,152, 68, 84, 13, 42, 87,231,143, 52, 71,141, 56,120, 80, 52, 77,204, 62, 95,163,153,248,114, 54, 35,208,241, +104,131,170, 80,140, 64, 49, 58, 79, 38,218,197,174,107, 59,239, 93,211,118,106,169, 10, 46,199, 24, 85,210, 77,229, 6,123,111, + 96,146, 18,152, 57, 23,192, 49,168,169,169, 3, 0,162,166, 77,160,185,248, 1, 0,192,121, 44, 27, 99,211, 46,117,154, 79, 85, +179,186,118, 0,108, 40,162,202,127,254,199,127,160,240,249,190,165,220,249, 57, 51, 22,214,241, 85,179,172, 7,174, 95, 2,152, +223, 3,185,211, 99,125,137, 44,151,165,162,244,229,127,148,173,226,136,133,170,140,159,187,206,205,192,177, 91,204,231, 85,175, +239,185, 88,172, 16, 13, 52,111,246,114,105,158, 17,223, 24, 94, 74, 17, 32,226, 77, 51, 93, 70,226,100,188,251, 58,218,207,235, +188,233,250, 16,167,130,197,192, 27,133,216,138, 23, 94,172, 96, 85, 33,223,118,214, 50, 2, 23,199, 56, 56, 0,151,205,254,132, + 30,201,209,205, 70, 36,203,155, 57,151,148, 11,165, 16, 16, 48, 73, 28,109,222,246,245,248,131, 95,253,116,115,115,183,174, 66, +148,212,175,235,139,203,203,227,203,249, 55,127,227, 27,253,241,214,100,114,213, 46,151, 33, 84,206,249,242,145, 56, 42,204, 79, +205, 45,175, 14, 49,135,241,180,108,214, 51, 86, 19, 1,209,200,249,130, 91,115,174,128,131,214,111, 63, 83, 1,170, 70, 91, 91, +218,182,232, 56,159, 4,106,144, 73, 71,210,180,165, 59, 29,141, 66,109,109,119,240,244,233,124,222,244,250,189, 59, 91,131,131, +167, 79,206,167,139,204,209, 19,242,113, 53,185,117,255,241,236,250,210,108, 53,236,247,218,182,107,150,171,227,243,201,197,100, +210,171,195,155,247, 31,163,175,145, 56,137,178,227,205,141,225,120,123,235,244,248,132,123,163,237,157,123,205,234,106,181,152, +163,164,222,230,174,103,127,121,242, 34,174,230,211,217,180,109, 87, 0,140,152, 66, 53, 60,159,156,133,241,246,195,123,247, 47, + 47, 46, 63,126,246,164,242,222, 33, 50,145,128,229,165,110, 25, 81, 12, 84, 44, 56, 82,145, 70, 4, 0,234,224,239,223,218,121, +116,123,255,131,151, 7,159,188, 58,236,215,189, 42, 4,195, 28, 53,179, 27, 23,110,126,217, 70,233,186,182,243,204,171,174, 83, +180, 85,211,173, 86,203, 65,191,183,138,210, 52,205, 32,240,104, 48, 96,196, 16, 92,191,215,119,236, 98, 39,189, 65,253,224,254, +131,127,244,155,223,191,253,224, 97, 93,215,136,176,152, 93, 93,158,157, 30, 28, 31, 62,121,241,242,163,231,207, 95,157,158,199, +174,187, 61, 28,188,182, 53, 98,135,219, 91, 91,223,252,141,111,252,230,119,190, 67,100,151, 39,135,234,232,232,226, 92, 37,246, +122,189,167,207,158, 99,219, 61,216,219,206,198,176, 44,121, 22,252, 23,187, 42,244,188, 15,249,187,234,124, 64, 0, 5, 77, 18, + 1,128,128, 96,173,226,171,154,130,101,127,177,230, 66, 78, 34, 53, 17, 75,149,243,162,106,152,235,241,172, 75,106, 4, 85, 8, +102,249, 65,202,144, 55,202, 59, 22, 38, 66,178,252,252,198, 4,104,196, 62,111, 71, 8, 76, 85,187,197,178,137, 34,222, 59,230, +108, 70,177,236,152, 19, 53, 79,148, 85, 47, 19,209,164,196,121, 19,205, 64,168, 38,128,134,142,242, 46, 37,251,184,156,203,128, +132,156,124, 4, 34,204, 4,221,124,145,206, 61,186,136,232,153,162,154,119,236, 40,168,106,236, 50,180, 43, 0,162,105,121,117, + 1, 32, 58, 42,126, 13, 4,199,156, 93, 24,148, 53, 54, 2,231,179,120,139,235, 46,161,252, 21,206, 57, 45,116, 76,149, 11,163, +224,170,224,231,171, 38,106, 34,128,126,213, 91,181, 93, 8,110, 52, 28,189,241,248,209,238,173, 91, 32, 73, 13, 98,215,189,249, +218,195,227,139,235, 13,167,191,254,214, 99, 10, 61, 68, 74, 93, 4, 0, 31,152,128, 65,213, 12,136,152,157, 51, 68, 19,205,221, +155,121,177,236,217,181, 81,174, 38,215,187,155, 27,190,223,255, 60, 21,132, 16, 99,148, 78,178, 25, 64, 82, 98,151, 43, 6,139, + 22,201,204,153,114,136,196, 0, 20,187,142, 9,153,153,153, 52, 74,222,201, 73,134,223,230,106, 11,196, 98,160,146,252, 14, 7, +134,114,187, 65, 2,239, 60, 2,138, 41, 3, 68, 49, 87,130,146, 37,166,143,160,166, 0, 12,153, 65,145,111, 83, 10, 72,101,196, + 95,239, 64,193,200, 4,254,193, 18, 30, 0, 13, 5,115, 83,199, 77,205, 7,162,161, 67,144,172,117, 90, 81,192, 51, 38,201, 68, + 5,188,227,249,162,169, 93,223,146,130, 83, 52,128,164, 96, 0, 46,107,152,168, 55, 6,110, 2, 68,191, 46,227,206, 58,110, 2, + 91, 51, 80, 11, 99, 62, 15,238, 89,157, 84, 4, 82, 81,205,117,126, 6,196,133, 93,134, 55, 64,156, 53,196,191,224,149, 29,129, +228,179, 59,228, 75, 16,146,154,121, 66,188, 41,250, 40,174, 33, 3, 68,116,134,134,166,136,140,108, 38,169,235, 92, 53, 24,108, +222,126,255,254, 59,207,158,126,250,226,229,179,119,222,121,199,208, 66,221,123,251,141, 71,127,249,239,255,195,223,253,244,163, + 31,252,227,239,189,122,250, 23,183, 31, 62, 6, 77,109,183,236,245, 71, 10,198, 72,104, 42, 34,235,212, 1, 32,170, 33,152,154, +105,102,159, 74,206,155,169, 42,138,250, 16,138,125,126,253,247, 95,179,173, 41,248, 96,201,200,123, 0, 67, 70,235,196, 57,151, + 61,148,138,232, 42, 15, 8,150,242,208,199, 73, 49, 54,203,197,242, 44, 54,247, 19, 7, 32,239,136, 17, 24, 36,109,239,222, 21, + 85,114, 3,182, 5, 32,155,170,128, 78,231, 11, 81,189,179,115,119, 99,188, 53, 91, 92,139, 73,175, 55,168, 6,189,237,253, 59, +104,230,124, 24,111,223, 53,228, 80, 13, 17, 3, 72,215, 45,231,203,213, 84, 76, 12,171,205, 91,247,156,171,219,217,249,106, 57, +237,141,239,172,212,227,114,182, 92,204,239,223,189,253,252,213,203,195,139,139,173,241,120, 88, 85,216, 38,201,156, 82, 34, 21, + 51, 80, 38, 66,197,186, 10,169,105,239,223,218,221,218, 24,159, 92, 92,254,248,163, 79, 12,128,152, 46,167, 87,204,155, 85,168, +140, 45, 37, 51,176, 92, 70,155, 82,202, 93, 45,209, 18, 2,246,235,170, 21,241,140, 33,132,166,109, 30,220,190,243,234,244, 84, + 52,121,118,183,118,182,151,139,101,175,223, 55,149,189, 91, 59,239,189,255,205,123, 15, 95,175, 7, 61, 51,136,237,234,106,114, +121,125,117,241,252,197,193, 71, 79,159, 31, 95, 78,166,243, 89,223,225, 87, 30,220, 11, 68,203, 46,190,247,165, 47,126,251, 55, +191,211, 31, 14, 47, 78, 94, 94,156,157, 54,236,207, 79,143,175, 39, 87,243,101,179,156,205,119,250,189,189,205,205, 12,116, 35, + 51, 50, 48, 3, 38, 32,231,178,119,183, 75,202,235,185, 8,203,194,179, 24,182, 50,253,149,204,152, 80, 17,187, 38, 18,145,115, +206, 0, 50, 57, 0,201, 37,145,192,100, 6, 73, 68, 65,131,227, 60,203,231,163,217,146,174,115, 75, 12,140,142, 72,172,148,178, +250,192,196, 36,201,136, 17, 29, 37,233,242, 96,232,125,240,193, 33, 18,173,235,141,215,248, 40,200,186, 72,222,105,112, 33,116, + 16, 20,218,224,218,217, 12, 64,168,206, 7, 96, 36,181,104,154,215, 41, 42,186,166, 90,149, 53,102,197, 28,213, 20,160,246, 46, +138,136,118,128, 22,106, 7,138, 41, 37, 46,215,116, 64, 34, 16,141,173,248,224, 29,130, 8,100,203, 10,153,199, 76, 23, 65,202, +241,248,146,118,230,236,158, 52,114,214,243,204, 14, 82,212,164,214,135,234,158,115, 85,224, 23,103,151,227, 81,191,174, 7, 77, +108,119, 55, 55,238,220,190,235,156,251,244,227, 79,106,239, 94,127,120,111,212,175,187,164,221,114,246,222, 23,223, 8,189,126, + 66, 86, 21, 23,124,182,140,136,116,236, 93, 46,223,179, 66, 89, 54, 85,203, 86, 81, 21, 72, 34, 87,215, 83,239,160,234,215,101, +147, 68,136, 0,171,182, 69, 16, 71, 92,122,203,205,145,165, 46,111, 32,215,133, 76,184, 94,248,138, 36,102, 2, 36, 69,180, 84, + 44,112,200, 14, 0, 48, 69,206, 80, 19,200, 41, 51, 5,242, 8, 70,204, 77, 76,166,137,128, 8, 32,197, 84, 10,155,137, 1, 34, +255,233,143,126, 15, 20, 53, 87, 31,225, 90,182,187,241,128,131,130,102,215,140,102, 96,241,122, 23, 65,166,166,104,165,138,163, +132,102, 11, 26,184, 60, 20,121,179, 97,101,157, 3,184,102, 47, 32,168, 25, 35,129,153,164,110,214,116,219,195,129, 34,100, 74, + 39,130, 21, 21,116, 77,218,202,115,153,138, 33, 26,173, 27,166,178, 19,188, 8,148, 76,104, 25,226,142, 80, 66, 82,153, 94,157, +191, 53, 69, 36, 69,176,194,222,231, 98, 18, 42, 24, 59, 45,175,172, 2, 48,206,151,190, 50,249, 91,246, 78, 2, 80, 89,121,230, +235, 76,126,230,145,114,154,143, 9, 37,181, 92,111,236, 61,120,211,249, 10, 13,238,236,223,253,217,223,255,141,175,234, 81,191, +175,192, 85, 85,117,203,197, 71, 79, 95,126,225,241,235,231,103, 71,174,234,213,189,170,157,175,216,251, 44,250,131,152,169,101, + 72,228,141,229, 40,251,235,173,120, 37, 17, 84, 9, 29, 51,101,101, 41,235,186,153, 16,130,136,200, 4, 98, 68,174, 55, 28,151, +158, 15, 69, 75,137,168,112,182, 65,209, 85, 65,163, 2,152,198, 40, 93,119,248,226,229,197,241,179, 10,245,141,119,191,124,126, +181,154,175,146,165, 86,208, 13, 55,183, 6,155,219,147,147, 3,105,102,117,109,190,242,179,233,244,242,226,234,197,225,225,245, +116,242, 59,191,253,195,123,143,222,186,186, 60,100, 21, 52, 25,239,221,185,117,231,206,245,197,217,229,249,113,206, 63,155,193, +226,250,148,129, 86,177,139,106, 33, 12, 24, 52,181,141,175,122,243,197,213,173,253, 7,171,197,100,145,244,213,241,209,197,197, + 5,169,221,190,181,255,242,213,193,108,181, 68,196,162, 56, 33, 3,192,160,223,223,223,222,189,189,123,103,123,115,235,222,222, +254,155,247,111,205,218,246, 87, 79,159, 79,151, 43,206, 56, 83,196,100,210,181,113, 80,213, 12,200, 76,162, 89,158,135,130, 26, + 33, 96, 8,204, 8, 96,109,151, 6,189,122,127,123,247,106, 62,143, 41, 14,250,189, 89, 19,137,169, 95,247, 7,117,237,188,123, +243,237, 47,124,231,119,127,111,255,254,163, 80, 85,102,208,182,139,139,179,179,147,163,163,143, 62,123,250,139, 79, 63, 59,188, +184, 92, 53,139,253, 97,255, 11,251,183,201,204,147,253,254,239,253,238,183,190,251,253,249,244,242,229, 39, 31, 8,225,213,108, +118,113,126,118,120,112,220, 53,237, 70,229,247, 54, 55,123,253,192,142,196,114, 79, 16, 39, 21,239, 28, 51, 87,189,218, 84,141, +172,242,204,134,185, 65, 35,123,116,147, 8,179, 99,228,104, 49,231,206,197, 64, 85,153,200, 57, 78,162, 25,118,167,150, 55, 56, + 40,170, 98,185, 84, 47, 24, 1, 1,128, 90, 8, 1,212,186,216,121,231,138,167,146, 73,237,230, 69, 3,102, 70,236, 66,240,102, +166,162,142, 89,213, 68,165,246, 1,144, 28,241, 77,222, 28, 12,156,163, 28, 94, 34,114,206, 59,116,236, 28,151,168,170, 35,211, +148,186,200,128,196, 46, 11,253,249,219,106, 37,141,143,150, 84, 36,101, 11,140,153,101,163,181,152,185,224,188,207, 90,130, 6, +207,107,194, 45, 33, 97,210,242, 27, 52,131, 76, 76,203, 24,250,156,255,178, 44,101, 2,100, 8,176, 38, 41, 75,121, 3, 99,244, +236,216,115, 29,252,112,128,149, 19, 3, 0,204,107, 16,172,136,118, 55,250,211, 85,247,252,240,104,123, 99,227,141,215, 31,237, +221,189,189, 92, 46,159, 62,125, 62,185,154, 14, 7,253, 47,125,233,139,231,151, 23,253,186, 26,142, 55,217, 52, 16,113,168, 68, +149,188, 51, 1,231,189, 39, 76,166, 6, 80, 85, 85,166, 94,102,129, 76, 85, 65,117,217,164,249,124,186,183,185,225,235, 58,111, + 41, 36, 99,191,184,116,143,132, 80,153,154, 20,253,147,208, 32, 73,182,129,186, 60,134,122, 2,224, 92,186,157,231,104,134,130, +106, 81,203, 7,102,249,143,130, 72,206,135,252, 81,139, 8, 19, 6,114, 64, 28,147, 16, 90, 86, 55,137, 76, 12,249, 95,252,147, + 31,221, 48,186,114,108, 30,204,242, 17, 88,224,234,229,100, 46,139,153,245, 6, 39, 51,187,176,152, 17,139,240,153, 45,225,185, +119, 15, 16,208, 74,223,213,141,143,114,205, 17, 91, 63,109,196,120, 61,155,239,237,237, 88, 20,200,145, 75,164, 18,208,192, 82, +149,151,127, 48,229,166,214,178,251, 70,181,124,115, 5, 67, 68, 45,205,126,184, 94,196,148, 69, 13,150,134,244,178,195,200, 95, +164,146,191, 42,122,112,217, 5,216, 77,165,120,118,180, 56, 68,203,193,238,124,217, 55, 48, 98,198,108, 97, 44, 27, 80, 82, 75, +217,217, 32,210, 57, 55,220,125,248, 54, 35,105,106, 65,213, 48,253,245,191,255,127,212,116,184,177,225, 92, 80,176,126,229,159, + 61,125, 78, 68,239,191,255,181, 20,187,222, 96,180, 90, 78, 1, 92,240, 30, 76,129, 29,160, 49,115,214,174,215,229,176,229, 99, +203,151, 20,118, 1,153, 51,159,207,214,159, 99,158,247, 12, 12,129,204,160, 55,222,235,109,140, 76, 5,209,105,219,144,119,232, + 40, 83,130, 75, 88,192,140,208, 82, 23,197,240,201, 71,159, 76,206, 94,109,109,223,122,253, 75, 95,121,241,242,224,228,248, 8, +201,213,129,187,249, 5,170,196,110,201,222,215, 53,152, 89,187, 88, 30,157,159,191, 60, 57,107, 99,247, 91, 95,255, 13,244, 21, + 80, 29, 6, 91, 85,191, 87,245,250,227,205,205,233,213, 36,198,214, 98,219, 92,157,248,254,118, 85,241,106, 58,211,148,130,247, +109,187, 20,177,254,160, 47,178, 26,141,247,147,201,103,159,254,234,114,177,250,234,151,191,222, 31, 12, 8,181,223,171,151, 93, +115,122,113, 97,136,129,243, 70, 88,115,113,193,108,181, 92, 46, 23,155,227, 90,165,253,232,249,193,229,108,158, 36, 3,101,233, +230,138, 40, 34, 41,197, 80,213,185, 95,190,104, 63,249, 86,171,226, 61, 43,114,112, 60, 30, 15,251,117,189, 49, 28,137,196,235, +233,188,223,171, 31,222,190,125,116,121,217,182,205,189,253, 91,223,249,222,119,191,250,205,223,234,143,199,192, 36, 93, 92, 92, + 95, 92,156, 30, 31, 28, 29,253,234,227, 79, 62,124,242,252,236,106,106,113,245,214,222,222, 27,123,183,146,200, 23,190,240,230, + 15,255,228,159,238,222,218, 57,124,246, 25,247,170,147,201,164,105, 87,189,141,209, 71,159, 61,117,141,222,218, 24, 85,149, 87, + 64, 4, 18, 67,199,172,102, 68,202,142,217,185,124,212, 2, 99,134,136,230,130,209,236,212, 2, 32,239,216, 74,160,130, 24, 81, + 77, 37, 37, 68, 82,179,182, 75, 55,115,189, 11, 14, 12, 36,138, 22,151, 0,170,165,252, 7, 51, 72, 41,154, 41, 59, 78,144,193, +147,152, 73, 71,217, 66,135,144, 31, 34,146, 46,102,183,177,130, 85, 85,189, 46,201, 10,236, 41, 15,194, 76,132,185, 64, 14,144, +156,175,170,128,136,196, 76, 88,252, 28, 0,156,213, 53,188,113, 4,168,154, 40,231,176,120,161,200, 2,123, 15,107, 39,111, 18, +113,149, 99, 36,208, 12,151, 2,199, 62,139,132,107,232, 2, 81, 70,238, 0,102, 30,132,137, 38, 85,186,169,111, 91,167,251,243, + 89, 73, 84, 98,152, 24,152,129,144,192,123,116, 30, 29, 53,204,154, 12,165, 83,116,222, 28,178,227, 10,177, 66,155,182, 29,162, +171, 43,239,157,235, 98, 92, 46, 27,231,120,103,111,107, 58, 91, 93,158,159,221,187,125,123,149,116,209, 53,163, 16, 92, 38,197, + 18,186,172,130,136, 57,207,140, 20, 69, 66, 8,154, 23,168, 10, 20,156,154, 93, 94, 94,247, 2,245,135, 67,100,151, 79,137,146, +250, 7,117, 76, 6,164, 73, 96,237, 58, 37,200,115, 41, 1, 90,148,164,106,206,177, 33,153,228,141,157,178, 15,185,186,199, 12, + 12,244,134,189,149,119, 40,204, 4,134, 73, 69, 77, 42, 31,114,175, 96, 30,219, 13, 32, 37, 97, 71,193,251, 46,138, 43,162, 79, +198, 32, 40, 32,170, 1,129, 74,126,241,139, 38, 64, 52, 19, 38,159, 67,244,249,204,213,108,156, 2, 44,165, 85, 57,182, 90,154, +158,208, 0, 52, 1,115,238,154, 65, 51, 43,117, 26, 5,217,152, 97, 55, 2,128,190,234,147,158, 45, 35, 5,135, 38, 37,163, 87, +102, 88, 69,163, 66,231, 45, 37,171,150,145,121,104,217, 72,161, 37, 13,149,225,106, 57, 44,244,249,221, 14,129, 24, 98,202, 33, +175, 2, 28, 37,128,148, 52,207,238,185, 35,204, 4,136, 28,129,101, 57,193, 76, 12, 0,185, 3, 3, 99, 71,166,107,112, 61, 65, + 41,241,138, 8,140,249,218, 12,140, 76,160,209, 87,227,237,187,111, 16, 65, 59,159, 57,246,203,118,254, 63,254,247,255,195,183, +126,251, 15, 63,250,229,223, 28,159, 28, 62,188,247,186,103, 30,110,108,189,245,214,227,127,251,215,127,251,205,247,127,109,114, +113,118,122,114,210, 52,203,221, 77, 8,193, 87, 85,207, 36,145, 15,152,109, 64,170, 55, 96, 28,145, 44,183, 18, 2,178,243,102, + 70, 76,196,168, 98,150,148, 42,135,136, 38, 9,179,133, 70,193,213, 85, 94, 85,170, 68,170,188,175,130, 36, 49, 81, 3, 50,139, +146,148, 60,202,170, 67,213,110,185, 92, 94, 29, 18, 18,135, 10,136,201,132, 92, 61,218,232, 49, 50,244,234,216,172, 92, 53,114, +212,144, 11,210,197,216,165,233, 98,217,180,237,176, 63, 28,247, 7, 64,182,115,107,239,250,244,116,122,113,112,247,193,107,177, +105, 1, 25,212, 37, 97, 85,110,151,179,171,147, 39,231,167,135,183,110,191,214, 45, 47,134, 27,251,206,135,213,252, 98, 53,187, +212,129,138,129,186, 65,183,188,250,201,207,255, 54, 4,119,112,112,184, 92,206,123, 92,189,245,240,209, 98,177,200,101,144,128, + 32, 42, 6,112,127,111,183,223,247,151,147,249,241,229, 68, 36,245,171,106, 80,133,139,233,180,211, 82,199,152,159,220,121,215, +202,213,100,119,123, 19, 17, 53,139,226,201, 12,161,174, 7,142,176, 75,169, 87, 85, 49, 37,231, 61,160, 13,251,195,126,221, 63, +191,190,138,233,120,123, 99,235,119,190,251,157, 31,254,254, 31,246,134, 67, 81, 1,208,213,244,122,122,117, 62,185,184,122,121, +112,240,233,179,103, 7,167,231, 87,211,249,237, 81,255,254,214, 46,139,214,189,250,143,126,244, 7,111,188,249,230,229,241,225, +139, 87, 7,110,107,227,232,228,232,240,240,104,181,138,139,217, 98, 84,247,182,247,198,204,148, 84, 52,165, 80, 85, 73, 58, 43, +231,100, 6,170,172, 3,122, 8, 41,137, 18,105, 82,116,152, 33, 76,154, 47, 31, 0,136, 20, 37,113,169, 52,241,201, 18,130,229, + 6,100, 85, 12,193, 73,210,152,132, 88, 61, 57, 84,136,102,142, 29, 25,164,168, 49, 69,246, 44,162, 46,167, 33,203, 85, 29,137, +157,153,130, 26, 7,111, 81,164,139, 84, 48,115,232,200,153, 73,191,223,235,186, 78, 76, 8, 60,168, 49,161,152, 24,144, 67,207, +206,161, 65,210,228,156, 71, 70, 84, 51,129, 36, 74,222,192,128,137, 85, 81, 44, 91,182, 45, 91, 78, 85, 18, 18, 59,207,146, 80, +215,252, 44, 32,242, 76, 32,160,166, 34,210,171,107,201, 14,123, 3, 34,210,117,172, 50,247,197, 58, 31, 76, 33,197, 14, 0, 50, +114,129,152,129, 12,196, 24, 44,198, 84,240,184, 25, 92,152, 49,226,142,209,186, 64,209, 59,232,162, 52, 77, 52,243, 0,129,200, + 48, 25, 33, 38, 67,100,255,218,107,143, 38,147,233,249,229, 21,145, 27,142,122,111,189,249,134, 72, 34,199, 63,249,201,207,150, +171, 85, 29,194,178,237,234, 80, 53,241,242,245,157,237,126,168, 82, 50, 37,201,102, 21,149, 14,209, 85,222,199, 24,115,190,132, + 3, 74,146,182, 73,166,105, 60,218, 6,192,148, 26, 34,118,174, 82, 5, 34, 37,116, 41,117,206,177, 82,134,185, 27, 57, 70, 81, +199,104,106,121,132, 71, 87,224, 94,121,131,103, 70, 41, 38,135, 64,204, 32,178, 74, 17, 68,123, 85, 63,111,134, 29, 81, 82, 81, +211,186, 10,146,160,137,157,169,120,231, 16, 33,154, 18, 66, 29,156, 0,116, 81, 84,147,195,155,105, 49,247,106,100,211,119, 54, +156,103, 99, 36, 0, 81,126, 3, 75, 54,164,128, 89,169,146,128, 12,155, 65, 48, 33, 38,149, 28, 57, 53, 84, 99, 15,153,167,187, +238,218,131,178,204, 95,183, 89, 32,187, 60,252, 14,106,119,122, 53,127,109,175, 78,154, 76, 81, 83, 71,174,206, 26, 59, 25, 16, + 26, 96, 6, 54, 2,230,179,111,141, 30, 54,211,114, 69, 64, 99,204,216, 72, 66,206, 14, 91, 3, 53, 49, 64, 69,164,226, 27, 42, +228,132, 82, 32, 96,172,104, 8,196,229, 70,137,165, 95,132, 0, 1, 36, 33, 25,104,126, 15,100, 14, 67,105, 74, 42,252,100, 53, + 3,197, 92,112,233,135,155,183,223, 32,164,184,156,131,129, 72,250, 95,254,167,255,249, 75, 95,251,205,111,255,167,191,187,152, +158,125,252,225,207,199,131,173,205,237,109, 31,252,195,135, 15, 62,123,246,226,127,255,191,254,239, 63,254,131,223, 62, 58,124, +177,104,250,183,239,221, 61, 63, 63, 53, 52, 71,156,137, 19,107,255,169,113,240, 41, 9,128,229, 88, 4, 34,169, 8, 59,199,236, + 0, 12,201,188,167,194,248,225, 96,160, 6, 74,236, 66, 8,228,189,153,211,182, 69,246,177,109, 16, 29, 18,128, 36,141, 29, 57, + 75, 81, 76, 20, 68,150,167,199,169,107,155,118, 73,161,135, 76, 70, 21, 0,196, 78, 18, 64,111, 56,108,103, 83,212,206,247, 34, + 65, 47,106, 90,181,205,245,124, 17, 83,220,191,117,123, 25, 19,205,231,179,233,108,113,121,184,185,255, 58,251,222,201,241,209, +233,233, 17,167,213,114, 58,217,186,253,184,153,207,183,239,188,189,177,251,168,139,173,165, 97,108,174, 16,250,237,226,170,234, +141,201,249,197,108,122, 57,159, 29,157,158, 84,190, 82,137,163,209,198, 98,181,218,217, 30,134, 58, 60, 95, 45,147, 73, 82, 85, +209,141,209,240,222,222,222,178,107, 63,124,126,232, 0, 8, 77, 16,187,212,121,230,241,112, 56,153,206,242,149, 43, 63, 95, 8, +184,138,237,116, 62,223, 30,143,172, 45,170,180,129, 73,138,139,174, 13,193, 15,251,155, 87,211,121,211, 52, 75,102, 1,168, 42, +119,103,119,119,111,111,231,191,251,111,254,219,119,223,253,210,233,100, 18,219, 85, 74,113, 62,185,188,154,156, 93, 93, 93, 63, +121,241,226,227,231, 47,207, 46,174, 84,226,227,221,141,135, 59,219,201,224,225,131,187,191,255,195, 31,122, 71, 79,126,245,211, + 38,197,179,139,179,233,179,167, 81,116,190,106,108,214, 60,218,221,206,166,149, 36,102, 8,222,135,148,132,145,213,140,217, 49, +113, 82, 81,128,202,251, 85,215, 48,112,118, 19, 43, 9,129, 47,161,105, 83, 64, 8, 62, 52,171,150, 24, 21, 57, 73,155,119,146, +132, 4,144,178,111, 98,213,116,206,177,247,142, 1,197, 84,192,152, 80, 37, 9, 0, 33, 85,149, 23,177,218,185,108,126, 43,212, +116, 36, 85,113, 33, 88,138, 42,209,202,127, 99,236, 8,173, 88,144, 99,234,156,119,165,233, 23, 73,147, 1, 97, 8,193, 59,238, +146,186, 92,150,160, 10,134,228, 72,146,178, 35, 80, 96,246, 98,130, 88, 44, 2,228,243,166, 94, 28,115,206,166, 18, 49,130,137, + 42,121, 66, 64, 17, 53, 80,231,208,161,139, 93, 66,196, 4,234,202, 62,129, 68, 75,169, 5, 38,212, 46,229, 27, 52, 50,229, 6, +100, 64, 32,114,169,107,147, 73,134, 52,176,247,197,251,231,156, 74, 2, 75,192,232, 67,165,113, 41, 17,155,200,189, 94, 8,190, +110,218, 68, 72, 34,178, 84, 9,183,246, 23, 71,167, 79, 95, 29,136,200,201,217,121,175,170,222,251,226, 23,134,155,227,167,159, + 61, 91,204, 23,201,244,233,203,163,126,191,218,123,109,251,244, 98, 18,245,242,222,214,214, 70,237, 29,113,211,117,193, 59, 71, + 85, 39,218,172, 26, 98, 46,175, 61, 49, 77,178, 92, 45,234,202,187,186, 86, 77, 72, 30,129,146, 36,199, 94, 84,146,180,236,156, + 65, 41,164, 3, 64,206, 99, 57, 64,178,232,216,105,174, 3, 71, 0,209,224,170,100,162, 41, 17,160, 33,161, 42,152, 57, 37,116, +156, 36,101, 68,101,215, 53, 36,234,152, 82,236, 16, 40, 56,175,192,170, 6,146,152, 28,104, 82, 64, 73,209, 33,154,170,203,114, +142,153,228,159,173,182,166, 44, 20,249,145,214,149, 46,101, 35,175, 80, 62,112, 0, 53, 40,247, 52,195,108,176, 45, 74,167, 21, + 95,100,201,193, 18,165,181, 57,102,109,219,194,117,103,148,234,246,206,238, 39, 47, 14,117,255,109,131, 14, 9,141,216,202,168, + 93,188,178,144, 41, 8,154,255, 93, 93, 47,170, 63, 79, 58,149,158,115, 43, 55,136,172, 44,107, 17, 39, 11,238, 88,138, 38, 2, + 37,222,151,143,135,108,176, 65,180, 92,197,183,182,118,194, 58,150, 10,107, 36, 66,126,150, 81, 13,145, 13, 20,114, 16, 66, 13, +125, 53,222,189, 71,177,105,151,173,137, 86,131,141,191,252, 63,254,215,189,253,123,223,253,193,183,210,197,217,251,191,254,237, +103, 79, 62, 57, 63, 59, 25, 12,122,193,247,234,190,188,247,238, 59,255,238, 63,252,245, 55,190,246,149,199,111,190,243,225, 47, +127,118,120,248, 28, 68,125, 21, 48, 12,146, 68, 2,133,146,108,178,216,197,188,150, 50,203, 4, 52,135,148, 93,112,100,166,142, +110,100, 57, 48,135, 40, 12,160, 92, 85,206, 59,137,157, 22,215,148,100, 74,120,198,138, 17, 15,173, 93,105,155,208,179,166,164, + 6,198, 1,184, 71,161, 39, 73,144, 16, 45,197,136,131, 81,189,184, 60, 73,171, 69,127,188,133,148, 12, 48,117,113,177,106,154, + 54,154,217,195,187, 15,183,111, 61, 60, 63, 63,233, 22, 87, 91,251, 15,170,186,106,150,203,197,116, 1,203,217,244,250,120,116, +235,141,110,213, 88, 90,213,117,117,126,122,192,213,192,135,186,107,168,105, 91, 36,116,161,234,247,251,199,167, 71, 81,245,241, +107,143,145,236,229,203, 87, 42,178, 61,222, 90, 54,139,174,107, 66, 85,205,175,174,198,195,254,131,237, 77,101, 58,189,184,188, + 88,204, 29, 56,231,168, 19, 69,100,207, 8, 8,158, 97, 99,208,187, 94, 44,213,214,144,103, 3, 36,152, 46, 22,128, 48,170,250, +217,207,100, 10, 28, 56,120,223,118,105, 50,189, 10,190, 74, 98,139,182, 37,128,157,173,205,127,246,163, 31,125,255,123, 63,216, +222,221,155, 47, 86,150, 98,187,152, 95, 79, 46, 38,147,139,211,179,179, 39, 47, 94, 62,125,117, 52,157, 47, 6,193, 61,216,189, +213,167, 56, 30, 13,190,247, 59,191,243,240,225,131,229,114,222, 54,221,193,233, 9, 59, 26,236,108, 30,158, 79, 46,142,206,118, + 55, 55,246,239,237,139,152, 90,142, 31,194, 13,225, 54, 3,193,179, 77, 46, 83, 92, 10,195, 22,128, 40,219,190,185,140, 62,106, + 46,176,154,182,177, 67, 7,132, 24, 37, 17,162, 15, 46,198,232,136,131,239,181,169,139, 34, 33, 91,105,205, 4, 12, 12,130,247, + 49,198,130,255, 50, 19, 69, 48,136,146,214,248,170,210,196,228,152, 32,165, 82,152,144,157,111,197,230, 6, 42, 34,152,152, 92, + 6,117,136, 25, 0,177, 39,135, 0, 4,146,249,163, 14, 77, 37,169, 17, 2, 36, 95,102, 66,204,142,142,252,157,163,117,151, 52, +249, 92,184,157,143,108,179,114,207,117,168, 73,192, 52,248, 74, 64,116, 93,129,237,184,216,139,205,140,153,137, 81,146,230, 81, + 14,205,229, 90, 80, 66, 4, 7,150, 52,197, 8, 32,158, 89, 76,193,204,196, 50,123, 54,198,232, 16,156, 35,199,144, 36,138,176, +168,177,115, 49, 17,162, 16,162,153, 46,187,206,111,110,137,243,139,233, 76, 85,163, 74, 59, 91, 50,211,213,116,250,225, 39,159, + 57,231,216,249,118,185, 48,132,249, 98,245,233,147,231,195, 94,223,143,194,243,243,243,253,241,120,191,223,243,181, 71,128,164, +134,107, 21, 1,212,128,144, 1,163,225,170, 89,237,110,142, 17,149,156, 83, 17, 5, 33,100, 81,129,114, 78, 24,153,228,197,122, +222, 74,229, 70,188, 16,156,198,148, 9, 91,249,168, 81, 19, 34, 2,231, 77,180, 19,241, 68, 62,120, 4, 18, 75,165,252,195,180, +246, 33, 65,178,210, 90, 65, 6, 16, 37, 58,224,117, 53, 42,196,212,145, 90, 50,139,109,231, 32,111, 79, 0, 32,195,173,242,250, +165, 24,192,243, 65,206, 8,150,169,211,156,249,184, 98,235, 68,106,238,228, 54, 80, 4,250, 60,113,153,203,230,208, 48,207,149, + 88,214,223,248,121, 35,133,166,178,168, 87, 13,131, 81,144,231, 49,162,247, 65, 98,100,230,108,182, 89,159,222,154, 51,114, 55, +164,119, 90,215,209,101,118, 11,103,172,174, 17,162,154,161,169, 41, 73,238, 19, 55, 21,203, 45, 45,165,126,210, 12,201, 50,254, + 32, 99,118, 0,200,145,129, 17,128,150,247, 85,161,174,175,107, 87, 11,111,216, 0,243,164, 0, 4, 68,190,164,106, 57, 12,199, +251,218, 53,203,197,220, 15,199,163,209,230,191,251,171,191,188,184,156,254,147,255,252, 15,218,174, 73, 77,220,216,217,249,193, +239,253,254,255,246,111,254,205,230,246,245,214,150,235,247, 6,119,239,221,125,237,222,157,191,248,171,191,122,227,241,127,177, +179,187,119,244,226,197,157, 7,247,167,215, 87,117, 61, 80, 85, 3,112,206,229, 16, 47,172, 59,230, 51,158, 41,151,100,153, 26, +176,230, 88, 72, 33, 56, 32,162, 50, 0, 8,168, 67,100,132, 36, 9,185, 50, 19, 75,121, 41,134,154, 26, 14, 61, 0,177,152,144, +193, 98, 34,102, 64,139,205,170, 10,190,223,171, 13,161,109, 22,236,168,215,239,199,216,116, 49, 58, 95,161,115,249,235,159, 98, +154, 47, 87,162, 9, 8,135,195,209,124, 62, 79,177,233,245,123,104,104,106,221,114, 46,105,213,219,216, 80,109,110,221,189,127, +121,116,188, 92,206, 42,231,130,235,117,205,140,137,171,193, 86,211, 44,118,246, 31,199, 24,153,194,209,229,213,197,100, 18,188, +155,205,103,215,211,235, 46, 73, 29,194,106,181, 88, 54,171,219, 59,187,111,220,185,181,106, 87,103,147,235,235,197, 34, 37, 35, +180,136, 38, 89,169,161,242, 92,169, 98, 21,220, 14,141,207,103, 51,209, 92,194, 11, 38, 8, 96,215,179,185,137, 13,122,125, 5, + 37,196,174,139,109,106, 7,189, 30, 34, 3,194,173,221,189,147,179,211,247,223,123,239, 95,255,171,127,253,250,155,111,130,217, +116, 54,107,154,213,245,249,201,249,197,217,244,106,242,226,240,213,199, 79, 94, 94, 92,207,230,203,213,237, 81,127,183,231,201, +210,111,253,230,119,191,250,205,223, 72,109,119,240,236,227,176,181,241,234,197,171,131,163, 99, 95,251,203,143,102,155, 85,239, +173,251,247,152, 89, 21, 68, 53,195,249,147, 40,103,252, 28,179, 99,140, 73, 1, 64,146,249,158, 79, 49,197, 36,158, 60, 33, 68, +137, 72,140,197, 64, 12, 64,216, 69, 49,211,138,157,130,117, 34,158, 56,130,137, 2, 19, 39, 83,235, 58, 1,237,133, 10, 84, 20, +243,105, 72,146, 84, 44,230, 47,128, 26, 4, 87, 42,203,186,152, 15, 92, 16,211,202,121, 32,180,220,111, 74,100, 6, 4,108,168, +196, 36, 49, 33, 3, 50, 57,240,206,177, 2, 38, 3,231,200, 85, 30, 20, 84, 13, 80, 77, 5, 57,215, 49,172, 17, 82, 4,166, 74, +182,214,165,160,180,167,154, 1,147, 7, 48, 0,201,237, 12, 41, 38, 23, 24, 12, 77,172,109,163, 35, 34,246,109, 23, 25,201, 7, +175, 32,146, 52, 64, 70,230,130,115,206, 68, 76, 0, 20,140,243,183, 15,114,231,160,154, 90, 42,189, 29,153,185, 68,200, 38,201, + 52, 37, 35, 2,172,189, 87, 77, 14, 99,229,114,127,189,151, 86, 75,213, 25, 34, 17,182,203,101, 12, 97,123,247,214,207,126,246, +139,151,135,135, 49, 37, 21, 65, 4,102,254,232,201,179,233,108,246,246,107, 15,171,224,192,250,157,180, 49, 73,219,182,170, 18, +106,159,146, 76,154,166,141,237,189,212, 15, 85, 48,246,128, 14, 8, 68, 5,193, 24,156,169, 94, 76,174,107,166, 94,175, 39, 98, +206, 33, 58,151,186,148, 39, 69, 98, 84, 37,102,140,106,185,209, 84, 84, 36,198, 16, 2, 51, 24, 58, 5, 69, 2,109,219, 8, 70, + 0,222,187, 76, 70, 69, 48, 66, 20, 19, 75,138,204, 38,108, 32, 4,192, 68,132,172,166,185,130, 77, 68, 1, 21,149, 12, 65, 85, + 29, 25, 48, 27, 96,219, 44,243,161,199,127,250, 39, 63,164,210, 97, 93,204, 78, 57, 48,157,221, 54,249,151,154,243, 11, 57,180, + 74, 72, 80,198, 98, 88,247, 73, 81,254,147,228,237, 48,220, 84,106,175, 43, 85, 97,125,192,150, 66, 84, 40, 29, 89, 8,204,232, +171,126,106, 22,147,166,219, 28,244,242,123, 5,168,116,159,174,169,145,101,183, 15, 5,181,179,254,161,107,209, 22,203,146, 95, + 76, 19, 2,231,102, 16,188,177,196,151,189, 83,185,103, 80, 38,209, 16,172,157,245,144,163,195, 0,104,106,170, 37,164,188,198, + 18,195, 77,106, 22,202,118, 92,242,164,164,200, 27,183, 30,121, 77,171,217, 53,249,170, 55,222,253,201,255,251,127,254,127,127, +251,203, 63,255,151,255,106,188,179, 25,187,148, 99,166,251,143, 31,159, 61,123, 62,185,186,232,247, 7,189,170,167,104,131, 94, +245,183, 63,249,197,206,198,104, 56,168, 94, 29, 28,236,221,187,191,152, 78,217, 57,239, 3, 59,159, 49,127,228,124,126,163, 18, +175,139,210,161, 20,129,100, 3, 46,220, 20, 40, 18,103, 66, 14, 2,114,168,123, 91,187,214, 70,118, 46,251,152,192,121, 48, 65, +118, 96, 96, 77, 75, 76,169,107, 32,138,235,213, 23,231, 23,207, 63,251,164, 63, 28, 63,120,227,189,173, 17,191,120,246,172, 83, +114,140,237,170, 35, 95, 3,122, 38,117,218, 58,246,211,217,245,179,131,195,139,203, 43, 81,248,238,183,190, 95,123,143,132, 41, +105,215,197, 59,247,223,188, 60,126, 10, 85,125,242,233,207,118,239,188,102,139,163,147,163,151,224, 42, 80, 81, 75,131,205,253, +166, 89, 17,121,102,215, 53,243,213,244,188,137,241,248,242, 98,185, 90, 94, 76,206,174,174,175, 13,144, 17, 23,171, 37,162,219, + 28,140,238,239,110,158, 76,174, 62,120,250, 98,217,118,193, 85,227,225, 40,132,138, 8, 85, 12, 10,150, 35, 99, 47, 80, 13,123, +253,126,143,221,172, 89,150,141,253, 58, 90,209,106, 36, 68,231,188,169,130,105, 8, 97, 80,247,154, 20, 3, 57,145,248, 47,126, +244,195,255,250,191,252,175,118,239,221, 1,128,166,109,103, 87,215,179,139,179,179,243,227,131,131,131,143,158, 61,253,224,147, +103,151,243,165,117,221,163, 33,239,143,199,227,205,241, 63,255,103,255,244,203,223,248,250,241,243,207,140,186,167, 79, 95,254, +205,127,252,137,105, 90,182, 93,119,189,218, 29,141,182,199, 67, 98, 84,179,140,177, 69, 4, 53,169,216, 27, 64,237,157,168,117, + 73, 17,136,179,105, 93, 37,143,109, 73,147, 38,115, 57,203, 77, 64,132, 14, 72,146, 34, 50, 33,181,154, 16,160,242, 14,153, 60, + 58, 51, 97,230, 20, 35, 19, 57,162, 54, 70, 65, 97,100, 34,146,164,209, 20, 1, 99, 74,222,185, 64, 20, 85,193,160,252,101,136, + 42,239,188,247,146, 84, 5,144, 64, 82,110,228, 32,212, 12, 81,209,236, 82, 70, 2, 98, 6, 34,239,188,243,204,196,177, 19, 42, +109,204,202,159,127,188, 64,200,236, 8, 16, 25,185,208, 78,144, 76,164,116,153,113,105,236,203,171,234, 20,163, 39, 6, 68, 83, +141, 41,121,231,139,139,142,137,153,204, 18, 24, 50,162, 34, 56,239,192, 76, 98, 4, 66,199,108,152,255,158,142, 28, 49,179, 98, +126,121, 3, 0, 56,226,204,163, 66, 77, 64, 36, 41, 33, 17, 57,236, 82, 71,132,206, 99,221,247,206,145, 34,169, 16,115, 64,118, +160, 22,219,102, 42, 54,190,251,112, 54,155,191,122,246, 98,190, 88,154, 8, 34,238,239,237,142,135,163,243,211,179,199,219, 27, +177, 93,184, 80, 63,184,127,187, 93,197, 36, 34,102, 41,165,249,124, 57, 26,244,183,183,183,142, 47, 39, 11,145, 10,201,179,137, +161,169, 32, 24,168,154,232,178,137,179,249,116,107, 60, 10, 33,212,189, 30, 50,117,177, 69, 67, 67, 65,228,124, 6,170, 10,136, + 73, 23, 59,137,181,115, 64,212,197, 46, 38,113, 4,222, 85, 49,137,170, 5,207,156, 91,225, 0,200, 49, 32, 39,233, 24, 9,217, +139, 38, 66, 12,228, 82, 18, 53, 13, 62, 83, 55, 65, 74,230, 3,145, 80,162, 48, 81, 39, 98,217,139, 99, 70,200, 49, 41,255,243, + 63,249, 35, 6, 34, 96, 68, 99,162,155,162,189,140,172,203, 8, 2,184, 97,138, 1, 98,190,114, 26,222,164,159,214,227,110,158, +254, 13, 11, 21, 11, 50,115, 55,165,117,231,224,154,136,152,235, 8,214, 69, 26,132,168, 85, 8,103,103,151,155,227,177, 22, 45, +209, 16,145,179,155,135,110, 58,208,243,170,198,110,216,144,249, 2, 65, 89, 17,208, 53,142, 6,141, 74, 60,137,224,134, 76,133, + 64,144,177,120, 25, 73, 10,217, 6,105, 6, 38,249, 34, 64,165, 46, 1, 48,255, 15,145, 28, 97, 64,116, 68,133,117, 69,235, 66, +141, 28,162, 31,142,247, 29,232,252,226,216, 87,131,193,198,246,243,207, 62,250,139,127,251, 31,255,179, 63,255,151,119,239,239, +205, 98, 88,172, 0, 0, 32, 0, 73, 68, 65, 84, 47,230, 11, 68,116,193,115, 8,136,180,123,239,193, 7, 63,253,251, 94, 47,120, + 31,170,208,243,190,154, 78, 39, 31,124,246,244,215,190,244,238,253, 7, 15, 22,179,105,221,235,173,102,243,170,170,205, 4,200, + 57,174, 10, 79,223, 82,174, 33, 52,203, 25, 96, 46,182,184,117, 25,113,185,126,163, 67,100,181,212, 31,111,135,170, 87,118,106, + 76, 42,136,150, 10,241,205,121,149, 36, 93,219, 77, 39, 92,247, 8,233,252,240,240,240,232,229,230,237,135,123,183,118, 7, 27, +163,103,207, 94,173,150, 75, 75,105, 57,187,178,212, 50,249, 16,168,242,166,170,231, 23, 23,175,142, 78, 38,179,153,115,252,250, +237, 59,210, 44,218,102, 41, 18,119,246,110,135, 42,204, 23, 43,135, 54,222,217,111,163,168, 68, 35,214,118,217, 31,110,134,254, +168,157, 95,184,224,130, 15,210, 78, 23,243,107, 32,247,234,228,248,197,233,241,189,253, 59, 49, 37,252,255,169,122,179, 95,207, +178,235,190,111, 77,123,159,243, 27,238, 88, 99,207,221,236, 73,164, 72, 74,156, 36,146,226, 40,106, 36, 69, 81,164,133,200, 38, + 69, 89,177,173, 40, 72,140, 12, 22,242, 18, 36,128, 31,243, 15,228, 37, 47, 9, 2, 35,128, 96,196,116,100, 11,176,104, 72,130, +172, 64,150,100,155, 18, 7,145,236,169,170,250,214,173,186,117,231,225, 55,157,179,247, 94,107,229, 97,159, 95,181,242,208,232, +135,174,170,174,170,251,187,231,236,189,214,247,251,249, 0,143, 71, 13, 56,148,220,237,110,110, 4,225,215,246,238,159, 94,206, + 54, 70,147,174,239,163, 52, 34,204,204,141, 52,227, 81, 59,157, 76,198,237,120, 58, 30, 3, 98, 74,217,204, 74, 78, 44, 64,196, + 41,149,255, 95, 17,195, 33,229,220, 84,130, 21, 96,133,164, 92,204,230,239,126,249,165,127,252,247,127,243, 11, 95,252,146,140, +167,174,186, 90, 46,206, 79,142,142, 31,238, 61, 60,120,112,240,232,224,141,123,111,191,181,247,176,235,243, 98, 49,127, 98, 36, +207,220,190,249,147, 31,251,248, 23,127,249, 11,227,201,232,228,248,225,157, 59,111,244,185, 80, 32, 96, 60,222, 63, 26, 17,223, +220,221,158,140, 90, 4,119, 32, 29,148, 44, 64, 66, 8, 82, 69, 60,125, 42, 82,117, 63, 8, 6,104,232, 21, 87, 57,140,254,134, +173, 87,253,104, 97, 42, 86,155,164,110,186, 78, 57,122, 12,226,230,165,104, 54,103,150,170, 2,110,131, 48,114,229, 7,120, 21, + 3, 3, 54, 77,163, 69,135,254,202, 99,119,177,176,102,117,175,231,130,225,177, 42, 33, 34, 34, 48,168, 22, 48,171,225, 97,102, + 65, 36,105, 4, 17, 89, 2,173,239,224,248, 88,164, 12,107,126,149,112,197, 82, 58, 32, 19,186, 85,221,241,112,254, 42, 53,167, + 11,100,106, 44, 28, 99,163,102, 41,103, 38, 22,145, 74,243, 27, 34, 48,110,176,222,184, 14,171, 87, 0, 14,209, 7, 4, 12, 35, + 50, 5,102, 34, 85,211,148,134,166, 19, 81,177, 12,224, 76,236, 80, 17,151, 68,132,102, 0, 70, 44, 82, 77,112,195, 2,187,102, +139,205,201, 52,169,198,235, 79, 36, 45,255,254,207,254,242,236,226,162, 62,224, 70,109,123,109,123,123, 62,159,189,231,230,206, +171, 79,221,158,182,237,124, 49, 59,159, 47, 1,105,123,115,179, 79,217,172,184,251,162,235,175,174,102,219, 27, 83, 9,225, 42, + 39,206,214, 54,244,216,117,137,196,103, 87,151,145,112,107,103, 27, 99, 44,197, 76, 11,147, 32,227, 64,122, 33, 66, 66, 85,175, +110,206, 97,107,232, 64, 72,177,137,106,158, 74,207, 67, 75, 0,234,181, 76, 72,220,220, 77, 9,217,220,221, 52, 72, 0,162, 98, + 90,185,158, 53,222, 10, 6, 84, 57, 23,238,110, 32, 66, 85,100, 10,195, 78, 17, 9, 49,231, 36, 67, 78, 30, 29,153,193, 42,106, +172,106, 66,209,134,175,159,213, 77,123,125,208,195,112,182,246,129,213,230,235,217,188, 15, 3, 24,243,250, 40,174,118, 2,164, + 58,106,124, 39, 0,227, 44,193, 74, 81,115, 80, 67,128,146,250,208, 52, 12,185, 20,175, 44, 22, 31,104,148, 0, 72,192, 84, 65, +151,235,201,248, 26, 3, 90,231, 61, 53,232, 60,212,184,134,177,188,175, 27,182,245, 20, 95, 7,239,180,190,240, 13, 47, 6,119, + 43,149,200,235,158,213,164, 86, 6,201,135, 0, 88,189, 46,212,209, 24, 65,197, 92,160, 0,152, 91,113,167,209,100,139,205, 86, +231, 51, 77,101,250,212,238,219,111,124,255, 95,253,254, 31,124,238,167,127,238,153,167,174,207, 47,206,157,163, 27, 74,219,186, +154,165,124,253,137, 91,207,191,244,202,163,253,187,109,211, 86, 56,246,187,223,253,234, 31,255,233,191,255,225, 91,119, 62,246, +145, 15,222,125,227,135, 28, 37,247,169,109,218,102,186, 37,238,230, 5,134,251, 18,107,202,142, 72, 40,110,197,144,201,171,194, +144,220,134, 78,150,123,189, 82, 84,246, 95, 52, 51,102,242,146,205, 24,209, 93, 21, 20, 93,168, 20,115, 0,203,125,152,108,131, +132,146,186,110, 49,219,185,245,220,104,114, 77, 75,118, 20,203, 89, 23,103,189, 5, 8,109, 16, 22,194, 16,140,136,186,213,106, +181, 90,229,146,213,124, 50,106,167,227,201,120,251,250,226,236, 97,206,105, 60,153, 94,158, 60,236,150,243,102,247,214, 98,118, + 24,227,102,215, 41, 97,140,163,105,211,198,229, 98, 49, 26, 79,143,246, 95,227,184,105,230, 39, 7,247, 54,118,111, 95, 45,150, + 87, 23,151,151, 87,151,211,209,196, 76, 17,253,198,134,176,141, 15, 79,207,132, 67, 46,118, 49,159,223,222,221,109, 66, 72,150, +117,149, 28, 64, 43,249,121,173,254,237,251, 52, 20, 18, 0, 75,182,150,163,183,126,181, 90,112, 93, 5,173,211,145,179,213,106, +107, 83,162,200,213, 98, 65,147,209,127,245,245, 95,255,210, 47,126,254,230,237, 39, 65,184,228,126, 49,155, 29,236,221, 57,120, +248,240,244,242,252,209,233,233,209,209,233,217,229,172,235,186, 92,244,222,254,193, 7, 63,245,209, 95,251,234,215, 54,183, 55, + 46,143, 15,112, 28, 15, 78, 30, 29, 28,159,110,117,249,209,201, 89, 89,118,215,183, 54, 70, 33, 84,241, 69, 37,212, 19,177, 91, + 70,224,218, 50,175, 59,163, 48, 64,179,171, 32,200,235, 73, 22,107,199,199, 21, 17, 8, 67,241,108,238,232, 16, 68,212, 10, 2, +155, 58, 50,176, 48, 58,228,172, 69, 75, 51, 10,214, 91, 49, 3, 98, 34, 82,128,100, 26,232,113, 53,207, 9, 61,229, 84, 11,227, +238,238, 8, 66, 66, 12,230,181,111,239,194,164,102, 76, 12,232,174,170, 86,132,184,250,179,193,234,123, 9, 88, 56,198,152,251, + 92, 45,119,196,132,230,170,142,132,181,139,224,213,235,188,254,158,170, 22, 53,192, 10, 6,198,154, 95, 20, 98, 43,198, 49,178, +144,169,247, 57, 17, 64, 8,204, 72, 54, 80, 2,217,235,239,155,200,193, 57, 68,183,108, 14,174, 42, 33,212, 56,204, 0,254, 54, + 40, 41, 91,213,235,212,233, 36, 99, 46,134,136, 34, 81,179, 18, 98, 77, 14,214, 56, 95,140,193, 17,204, 33,231,202, 45, 64, 4, + 3,119,114,239, 83,214,201,180,235,251,189,189,183, 23,203,101, 37,238, 78,154,230,125,239,121,207,183,190,247,253,103,166,252, +236, 19,183, 28,121,131,195,139, 28, 30, 28, 29, 95,186, 74,144, 40, 2, 30, 83,201,110,154, 82,153,205,151, 44,125, 19,227, 57, + 98,187,234, 67,136, 33,142, 0,113,177,234,180,207, 55,111,239, 18,135,250,148,174, 71, 79, 38, 10, 44,166,102, 86,123,139, 0, + 68,224,142, 84, 25, 60,188,234,123, 93, 46, 41,196,128,100, 94,135, 97, 22,145, 20,170, 77,139,214,154,101, 30,128, 97, 3, 39, + 22, 74, 46, 18,197,181, 84,146,137,187, 19, 56, 19,230, 58, 64,119, 39, 68, 85,245, 98,192, 96,174,252,213, 47,255,242, 32,242, + 92, 87,129,134,150, 81,253,209,180, 86,122, 12, 13,248, 53,255, 7, 0, 8,137, 42, 31,134, 9,201, 6,147,198,186,183,191, 6, +101, 84, 92,212, 48, 37,169,184, 12, 53,211, 58, 94, 7,170,217, 38,128,146, 58, 67,153,140, 6,107, 73,101,243, 12, 72,151, 33, + 75,255,120,234,179, 6,231,226, 59, 36,246,199,167,238,122,156,175, 16,204,250,113,169,131, 30,170, 0,189,202,134, 52,127,135, +113,178,254,165, 7,233, 88,117, 57, 97, 28, 4,129, 48,148,102, 1,129, 80, 16,205, 20,166, 27, 55, 24, 40,245, 43, 68, 30,111, + 95,187, 60, 63,249,103,191,251,141,159,248,216, 39, 63,244, 19, 63, 89,208,205,137, 36, 80, 16, 68,164, 70,170,219,122,107,123, +247,123,127,253,173, 70, 68, 98,195, 44, 77, 24,161,235,183,190,243, 55, 47, 63,247,244, 51, 47,190,116,126,118,250,234,143,254, +216,229,249, 9,197,136, 21, 12, 28, 27, 83,173, 23, 29,175, 87, 12, 17,215, 60, 72, 73,253, 29,219, 8, 12, 99,172, 0,128,161, +153, 52,227, 22,153,205,192,213,136, 5,212,172,100,168,141, 67, 71,237, 59,108, 26,239, 22,230, 14,163, 29,195,176,152, 93,222, +126,250,153,241, 56,220,121,243,110,202,154,138,177,132,102,178,129, 96,163,198, 0, 32,245,253,241,241,241,195,147,147,249,188, +187,182,181,253,204,205,155,227,182,237, 23, 87, 40,194,100, 94,250, 2,152, 87, 23, 44, 35,102, 58,121,120,247,246,115,175,140, + 39, 91,147,233, 54, 34, 93, 94,157, 8,142,227,120,210,140,118,118,111, 60,131, 49,236, 29, 29,134, 24,172, 88, 82,189,185,189, +177,184,186,124,251,240,248, 98,213,165,156, 75,201,211,209,228,240,244,100,217,247,163,209,200,244, 49,218, 31,235, 5,189,118, +171,115, 46, 67,209, 98,232, 92,123,211, 4, 84,232, 74,166,199, 54, 71, 34,112,116,211, 85,223,125,236,253,239,251, 31,255,219, +127,252,243, 63,255,139,163,141,205,130,182,154, 47,102,231, 71,123,119, 94,191,115,231,206,131,195, 71,119,246,238,239, 31, 28, + 93,204,102,169,148,251, 15, 15,217,225,127,250,173,175,255,231,191,254,181,210, 47,115, 90,190,241,250,107,111,190,241,214,201, +233,249,124,177,186, 60,189,156,176, 92,223,220,104,130,212,130, 89,109,182,153, 1, 2, 4, 18, 36,124,220, 55,102,228,172,190, +214,207,160,130, 34, 16,177, 56, 12, 90, 95, 43,197,135, 0, 24, 3, 14, 50,221, 97,148, 72, 84,121,169,160, 30, 99,112, 32, 29, +146,109, 94,141,154, 33, 72, 53, 25, 33,129,173,105,163,132, 84,143, 61, 49, 48, 85,152,181,163, 13, 91, 92, 24,224, 7,165, 16, + 9, 49,162,224, 99,143, 37, 97, 61,249,130,106,133, 83, 57,135, 88, 89,102,245,142,136,196, 52, 64, 65,180,178, 6, 96,221,172, +103, 98, 83, 87, 45,109, 8,200, 4, 72,109, 59,114,117, 55, 75, 37,183,109, 91,211,114, 89, 51,178, 4,150, 58,175,117, 85, 67, + 12, 44,170, 69,205,153,128, 88,144, 4,153, 56,202,160,127, 94,247, 18,131, 80,101,115, 87,254,196, 32,152, 68,174,231, 61, 7, + 36,146, 32,193,215,104, 20, 22,113,135, 46,171,171, 19,113, 94,117, 11, 76,211, 91,207,189,254,218,157,187,247,246,114,201,128, + 64, 72,227,201,228,240,236,124,108,171, 15,189,252,162,180, 99,174,127,113,204, 27,177, 97,164,179,213,106, 52, 26, 95,219,222, + 90,172, 58,213, 34,194,171,156,186, 85,218,217,156,160, 68, 72,186,187,179, 89,204, 1,125,149, 74, 32,223,190,118,173,126, 53, +107,182, 67,130, 32, 81, 81,203,185,135,161, 3, 92, 25, 6, 40, 66, 78,172, 93, 7,174,132, 94, 31,146, 73, 53,178, 0,135,100, + 89, 0,161, 2,150,171,110, 69,173, 88,169, 84,126, 98,118,119,225, 10, 54,112,172, 27, 11,115,119,232,115, 65, 0, 18, 68,164, +156, 50, 11,163,160,155,119,171,196, 95,253,202, 47, 33, 16, 62,214,150, 14,159, 50, 24,198,187,184,182,246,213,235, 72, 45, 25, + 80, 61, 54,250,208,181, 92, 87, 93, 97,157, 94, 30,118,153,176,198,152,250, 80,232,175,105, 21,120, 28,107, 91,139, 89,153, 80, + 68,174,150,253,246,100,188,206,177,172,191, 81,135,152,200, 99, 3, 83,125,250, 15,163, 42, 7, 95, 19, 66,135,148,207, 80,248, + 4, 95, 19, 5,106, 54,127,160,128,213, 23, 24, 13,107, 84, 90, 59, 99,235, 11,133, 43,215, 9,152, 5,227,154,170, 94, 79,141, +132, 72,128,138, 72, 77,179,217,112,236,230,179, 82, 74, 59,158,164,126,249,255,252,222,191,126,247,143,126,240, 83,159,250,169, +226, 70, 18,173,100, 22,137,177, 1,114,116, 50, 51,205,186,177,115,109, 53,155,221,187,119,103, 60,106, 70,147, 41, 19, 78,219, +184,183,255,112,182, 88,125,248,195, 31,154, 93,156,157, 93,156,175,150, 51, 65,146, 16, 88, 26,176, 74, 61, 32,215, 82, 52,161, + 87, 93,189, 59, 2, 75, 24, 30,238,235,202,216,250,143,137,227,237,157, 16,163,229,226,169,175, 19,124, 64,228,208,212,191,106, + 96,212,148,220,212,145, 39,215,175,165, 98, 15,246,246, 23, 93,255,228,211, 79,141,167,237,254,189,189,213,114, 46,177,105, 68, +132, 72, 70, 45, 67,114,203,169,239,247,246, 31,158, 92, 92,206,151,221,173,157,173, 23,158,124,242,242,226, 76,198, 27, 55,159, +122,151,132,105,234,242,120,115,231,209,222,107, 72, 4, 86,220,140,161, 28,239,191,198, 44,139,171, 83, 4,230, 16,151,171, 21, +120, 22, 9, 7,143, 30,254,224,238,155,165, 20, 4, 13, 80,250,148,226,104,251, 98,190,188,127,240, 48,245, 73,130,148,146, 82, + 46,171,174,103, 97, 33, 30,148, 47,131,181,203,137,107, 62, 4,194, 90,168, 91,207,234,102, 94,137,181, 69,181,126,209, 25, 81, + 85,183, 54, 54,127,235,239,253,103,255,243,239,252,147,119,253,200,123, 81,130, 89, 89, 94, 93,157, 60,218,191,251,214,235,175, +189,245,230,254,193,225,157, 7, 7, 71,167,231,102,142,200,155,211,205,207,124,248, 3,191,243, 15,190,246,145, 15,127,224,244, +228,224,193,222,189,195,227,163, 56, 29, 49,241,157,215,223,222,110,155, 39,119,119, 55,198, 35, 66,174,221,162,162,102,197,144, +134, 34,210,227, 79,117,213,200, 20, 53,124,140,187, 28,216, 25, 96, 94, 28,192, 75,241,162, 54,124,251,184,185,149,172, 8, 80, +215,199, 67,191, 20, 77,205,218, 81,163, 10,128, 16, 2, 13,191,130, 57, 11,187, 13,159,109, 53,231,138,185, 70,116,116,102, 68, +166,146,213,220,107, 89,191,254,176, 24,197,205,189,216,122,141, 4,228,228,106, 72, 36, 81,234,208,211,208, 16, 73, 98, 36, 71, + 45,250,248,236, 84,231,229,176, 46,108, 51,139,185,173, 7,166, 53, 78,140, 77,219, 20, 53, 98,174, 92, 63, 55,119,130, 38,180, +166,131,150, 7,106, 50,193,193,235,157,134,165,109, 26, 53,171,158,102, 22, 1,170,106, 42,172, 66,205, 97,172, 1, 96,174,106, +234,104, 65,196,205,112, 64, 51,129, 91, 65,198, 16,132, 68, 28,173, 6,189, 99, 96, 65,236, 75,113, 43,224,228,142, 90, 52,121, +226, 27, 79,158,159,207,246,246,246, 86,203,101,165,196, 63,255,204,147, 27, 27, 91,151,103,199, 63,245,242, 11,211,205, 45, 14, +177,150, 30, 57,132, 81,219,140, 66, 12,102,171,126,217,153,183, 77, 59, 26, 79, 22,139,149,106, 61,233,226,241,249, 69, 35,176, + 61,110, 36,136,179, 92, 94,206, 54, 55,198, 18, 35, 20, 67,162, 16,155,166,109, 81, 66,125, 10,161, 1, 2, 26, 58, 86,175,156, +176,170,163, 91,125,220,155,131,169,214,244, 68, 5,196, 10,135, 84, 50, 85,189, 44,113,189, 42, 17,179,149,130,213,101,205, 53, +165, 90, 31, 89,200, 64,106, 90,187, 14, 34, 84,241,241,196,100,128,150,173,126,255, 8, 62, 70, 36,226,160,133,115,180, 53,148, +119,200, 64, 85,212, 21,241, 90,178,240, 56,220, 50, 60, 97,235,188, 75, 0,173,244,206,193,104,168,153,193,223, 66,156, 59, 16, + 16,227,128,109, 31,182,172,232,104, 4,104,234,200,220,247,157, 34, 1,168, 91, 53,144,185,187, 85, 72,239, 0,151,135, 1, 11, + 92,205, 30,104,238,110, 3, 29,119, 29, 99,127, 44, 6, 25,134,254,248, 14, 59,198, 31, 31,245,215,128,204,225,210, 83,215, 8, +132, 14,164,142,100,238,172,180,206, 27, 13,252, 30,116, 53,156, 76,174,177,150,249,217,177, 34,143,167,155,162,171,255,251, 95, +254,139,205,157,103, 63,241,241, 15, 25, 11,228,190, 44,230,212, 78, 89,154,202,170, 55, 83, 77, 6, 72,121, 57,127,255,143,125, +232,173, 31,252,205, 98, 57,107,154,182, 29,111,180,155, 91,239,127,239,123,190,243,189,239,190,241,250, 27,239,250,145,247,252, +197,159,252,209,139,175,188,251,226,244,176,235, 3,135, 72, 52,169,209, 33, 32, 18,137,136, 84, 67,238,232,224,165, 32,177,150, + 12, 81, 88,194, 99, 47, 57, 2, 74,140, 86,119,203, 33, 32, 1, 40, 89,238, 60, 0, 9,155,106, 73,102,170,200, 50,190,190, 35, +147, 54,221, 63, 76,125, 65, 83,235, 23,200,215, 44,245, 78, 77, 32,147, 32,161,153, 94, 93, 29,181, 91,193, 12, 82, 74, 93,206, +102,166, 94,158,126,226, 73,230, 24,219,166, 29, 77, 66,104, 0,209,209, 78, 31,188,182,185,117, 19,226,244,234,226,112, 50,106, + 75, 49,119, 89,245, 93, 28,109,104,233, 79,246,222, 28,221,124, 22, 11,228,146,175,186,126, 99, 50,106,144,150,253,226,232,172, + 75, 57,191,248,236,238,243, 79, 63,125,121,117,121,103,127,127,149,243,246,116,115,115, 50, 45,170, 53,237, 81, 87, 12,230, 54, +112, 14,141,221, 13, 12,140,214,103,137, 53, 63,147, 16,182,101,178, 96, 89,229,164,165, 0,208,103, 63,246, 19,191,253,245,175, +127,240,131, 31, 65, 9,203,212,151, 46, 93,158, 29, 61,216,187,123,231,238,221, 7,199,199, 7,199, 39, 23, 87,243,148, 82, 42, +170,186,250,145,231,158,253,233,159,252,240, 39, 63,250,161,110, 62,123,248,112,111,101,229,181,253,253,221,205,233,236,242,252, +248,237,195,167,110,236, 78,218,198,220,192, 0,153, 7, 35, 11, 14,201, 23, 90, 31,128,234,216, 23, 0,114, 54, 3, 21, 98, 36, + 54,247,154, 56, 84, 85, 87,205,154,187,190,147, 16, 4,153,153,193, 16,136, 66, 16,115,115,115, 66, 44,166,136, 20, 67, 83,114, + 41,197,137,145,131,228,156,235,156,180,226,198, 66, 45,175,154,173,219,206,192,224,107, 86,158,185,154, 3, 82, 32,115, 21,137, + 68,172,170,128, 64,129,144,168, 58,108,128,128,155, 48, 96, 59, 24,153,217,235, 59, 82,139, 57, 18,145,155, 59,168,132, 0,102, +102, 3,168,207, 29,173,162,216,221,161, 86, 66, 8,177,128,155,135, 16,192, 93,221, 28, 48,198,160,238,165,104,125,249,161, 3, + 26, 20,215, 97, 29, 34,108, 6,165,228,122,144, 34, 51, 47, 86,125,126,224,195,131,165, 90,103,145,169, 54, 3,204,114,201, 42, + 36,101, 16, 60,212, 11, 60, 19,137,153,170,106, 12,132, 28,138,218,154, 74,199,106, 30,152, 86,221, 10,119,110, 34,143,126,240, +253,191, 58, 62, 57, 3, 84,102,154, 78, 39,161,137,103, 23,151, 63,241,226,243,219,215,174, 23, 71, 84,139,177, 81,118, 45,125, +178,130, 66, 79,222,184, 54,105,227,193,229,153, 55, 45,182,227,146,138,154, 78, 71,205, 43,175,190,252,253, 31,188,126,125,186, + 65,196,224,124,117,185,100,128,102, 52,114,117,103, 20,145,216, 54, 44, 65,221, 66,108,220,113, 57,191, 42,171, 21, 19, 18, 83, + 81,173, 10,110, 95,195, 96, 25,221,133,170,246,150, 3,149,140,110, 26, 66,228,122,151,130, 66, 65, 92, 13, 28, 80, 4,220,145, + 9,128,153, 84,179, 57, 86, 18,135,187, 59, 11,187, 91,238, 13,184, 26,191, 17,193,155, 40,142,132,185, 72,229,237,255, 45,207, +167, 85,234,244, 0,227, 27,234,191,104,245,177,190,206,198,215,201,204,227, 12, 31, 85,170, 58,160, 16,224,176,114,169,167,120, + 48, 85, 34, 2, 38, 7,112, 37,112,165,186, 42,170, 18,141,138,166, 67,136, 65, 2,148,229,114, 53,109,216,215,209,220, 1,235, + 72,130,128,192, 6, 74,102, 90, 61,140,195, 75,162,128,105, 25, 14, 27, 53,148, 54, 12, 33,125, 96,220,212, 9, 34, 83,157, 59, + 13,181, 91,170,236,174, 53, 22,109, 80,247,209,154,100,128, 80, 91,172,195, 59,108,232,146, 54,113,131, 85, 75,214,229,242,106, +186,125,115, 58,150,111,252,139,127,121,213,243, 87,126,246,179, 24, 56,119, 29, 5, 78, 93,215, 54, 6,104, 3, 27, 36,247, 86, +136, 2, 47, 46, 23,132,242,234,203,175,124,247,245,239, 52, 77,219,142, 38, 65,154,103,159,123,246,225,195,131,255,248,173,191, +186,182,187,225, 8,142, 20,219, 81, 55, 95, 76,198, 91,104,102,132, 76,193,209, 6,210,252,112, 10,136,166, 5, 76, 73, 2, 56, +186, 42, 18, 33,203,223,106, 39,187,101,163, 24,202,106,137,178, 86, 62, 6,174,185,104,100,105, 54, 38,161,141, 80,108,118,113, +110,104,197, 74,159,115, 96,170,165, 58,142,155, 64,174,101,181,188, 58,198,173, 91,134,158,179,246,169, 79, 69,221, 96,103, 60, + 97,193, 8,160, 90, 70,211,105, 8, 97, 49, 59,115,222,104, 55, 54,132,169,191,162,166,221,228, 24, 71, 27, 29, 35,148,180,236, + 23,139, 66,180, 53,217,188,186, 56,207,169, 39,239, 91, 76,251,199,151,177,105, 75, 49, 64,126,227,222,157,107,215,182,111,221, +186,177,247,224,193,124, 62,239, 82,154,182, 77, 16,169,196,149,154,175, 37,115,100,246, 90, 34,174, 83,104, 70,115, 0,179, 1, + 43, 97,102,136,196,184, 57, 26,245, 37,111,111,111,252,215, 95,251,141, 47,125,225,243,237,214,246, 42,103,235,186,126,181, 56, + 63, 62,216,123,251,238,157,189,135,123, 7, 7, 39,151, 23,245, 15, 4,230, 59,211,201,251, 95,124,246,107, 95,254,210,198,180, +189, 56, 63,125,253, 7,223,167,209,116,222, 47, 90,145,183,126,120,119, 20,227,179,215,119, 36,200,192,123, 33, 28, 8,183, 6, +204,140,110, 21, 56,103,232, 78, 40,136, 14,144,146, 18, 58,209,160,166, 51,213, 92,114, 5, 19,116,125, 90,165, 46,245,201,205, +146, 65,211,182,109, 24, 1, 40,162, 8,178,155,117, 90,154,216, 8,139,213,137, 12, 1,128,231,146, 75, 46,196, 2,224, 65, 16, +136,188,254,231,122,238,179, 97, 69, 85, 80,173, 74,242, 98, 61, 12,214,161, 7,173,147,246,106,197, 29,156, 43,226,128,165, 86, + 7, 88,168, 86, 90, 0,161, 20,117,243,208,114,213,125,148,129,201, 12, 0,200, 40,106,134, 3, 50,209,115,206, 18,132, 88, 16, + 32,196, 80, 65, 3,197, 84,136,153,165,170,125, 40,240,122,106,204,204,140,158, 57, 70, 4, 79,125, 34,102, 7,100, 22, 22, 46, + 10,128, 90,157, 16,182,190,139, 19, 98,173,132, 1, 20, 85, 69, 18,116, 42,110, 80,177,136, 49,212,239,243,162, 5,200,219,201, +200,114,201, 37, 49, 72,165,223, 32, 0, 35, 25, 88,118, 26, 53,227,171,139, 83, 36, 52, 87, 66, 26,143,218,247,190,242,242, 27, +247,238, 63,209,198, 39,110, 92,115, 17, 2,174, 29,162,218,132, 15,177,117,114, 43,190,181,179, 35, 28,206, 46, 47, 46, 82,122, +225,185,167,154,166, 77,169,191,255,240,112, 20,228,250,246, 38, 16,171,123,183, 92,238,236, 76,131,196,106,141, 6,247,146,146, +230, 82,227,236,220,182,204,132,109,212, 92,114, 86, 52, 53, 34, 2, 71, 22, 85, 35, 66, 3,118, 47, 66,148,139,101,243, 24, 69, + 45,104, 89, 57, 50, 49,184,163,103, 37, 30, 70,221, 69,139, 21,173, 97, 45,150,208,149, 2, 96,132,140,204,170,133, 0, 72,208, + 10, 40, 0, 49, 48,144,155,131,171, 8,136, 59,161, 2, 49, 33,113, 13,255, 57, 26, 13, 40,130,225, 25,237,234,143, 81,193,117, + 28, 99, 86, 97, 38,245, 31, 0,160,186,153,169, 8, 26, 92,247,135,234,110,215,209,234,161,160, 18,199,220, 84,144,212, 7,151, +164, 87,102,173,209,116, 50,154, 45, 87,155,227, 45, 85,179, 10,217,169,112,211,186,156,177,186,155, 1, 7,119, 43, 85,252,184, + 22, 40,213,209,167, 33,210,154, 68, 63,252, 91,213, 24,217,107, 73, 99,205, 45, 25,126,159,143, 35, 12, 85, 73,101, 62,212,119, + 7, 78,142, 15, 51, 74,174, 68,189,192,106,125, 74,221,106, 37,113, 60, 25,143,255,240,155,191,191,119,124,245,107, 95,252, 37, + 48, 77,243, 21, 8, 33,141, 43,231,171, 70,210,173, 87, 55,114, 77, 38, 77,201,189,165,171, 23, 95,124,229,181,183, 94, 95, 44, + 22,227,209,188, 29, 77, 67,104, 94,122,241,249,191,254,246,183,247,247,246, 62,252,209,207,222,187,251,218,205,219, 79, 28,237, +239,229,210, 17, 5,150, 88,107, 5,128, 58,100, 96,136,204,242,122, 19,129,192, 3, 79,217, 75, 6, 64,146, 0,170, 53, 16,236, +230, 90,172, 70,143,165,105,220, 13, 74, 1,179,176,185,209, 76,198,110, 94,186, 62,151,186,100,206, 23,167,103,169,175,211,110, + 18, 9, 18, 67,238,251,148, 11, 33,131,231,249,114,145,250, 84, 74, 14, 65, 38,227, 81,202,165,148,254,230,245,167,219,201,100, +121,121, 28,227,104, 50, 41, 77,172, 9, 64,118,192,249,217, 33, 69, 42, 89,103,151, 39,170, 62,221,184,121,121,188,215,229,252, +230,221,215,190,115,231,110, 46,152, 77,111,223,124,130, 89,206,175,174,174,174, 86,243,213, 66,152,183, 54,166, 41, 23, 34,208, +162, 86,245, 13, 18,107,159,179,184, 7, 51, 5, 21, 67, 71, 44,158, 45, 33,215,199,212,128,201,171,226, 58, 71,244, 95,249,220, +103,126,253, 87,127,237,213,151,127,164, 39, 47,238,125,183, 92, 94,156, 31, 30,236,191,117,247,238,219, 15, 15, 14, 78,207,102, +243,133,154,239,108,110, 45, 87,203, 27,155,155,191,250,243,159,249,192,123,222,125, 53,187,184,119,119,239,244,226, 10,218,136, +164,111,190,126,103,179,105,111,239,110,141,154, 88,177, 89,104,128,132,224,238,197,220,181,105,218, 92, 10, 19,187, 89,214, 82, + 93,195, 61, 25, 40, 80, 32, 51,171, 99, 76, 51, 16, 33,118, 66,242,148,148,168, 9, 82,140,108,185,236,199,109, 67,128, 69, 75, +140, 17, 1, 74, 81, 7, 13, 28,132, 67, 85, 46, 68, 10,238, 85,185,142, 18, 4,215,236,123,215,181,163, 30,208,204,106,244, 69, + 75, 38, 0,103, 10, 78,142, 48, 16,154,152, 48, 16, 20,231,234, 6,169,119,106,170, 3,210, 10,220, 24,246, 59, 89, 85,152, 1, +129,132,173,216,144,199, 29,146, 98,162, 94, 74,201,245, 36, 84, 91, 69, 77, 20, 67, 34, 38, 33, 84,179, 90,144, 10,196,245, 85, +235,136, 34,140,142, 6,250,184,122,198, 60, 42, 57,195, 16,110, 39, 34, 2,119,213,194,200, 5,106,116,194, 25, 49, 48,170, 87, +168, 25,230,148,221, 92,152, 76,209,209,136, 25, 12, 2, 49, 11,171,170,154, 13, 93, 63, 45,232, 32, 32,117,100,207, 8,195,240, +203,204, 68,250,212,191,253,246,253,179,243, 43, 66,220,218,216,140, 44,123, 7, 71,161,244,175,188,235,105, 71, 6,132, 24, 56, +247,150,114,102, 17, 36, 86,119, 48, 37, 36,142, 56,217,218, 22,230,166, 91, 30,157,156, 30,155, 19,248, 72,232,165,167,159,148, +166, 69,162,217,178, 39,178,182,109,153,217,138,186,170,162, 89, 6,119, 19, 38, 15,161, 17,105,218,201,226,234,162, 20, 69,116, +172,213, 4, 39, 43,134,132, 14,206,129, 3, 54, 93,215, 5, 97,137, 65,221, 64,141, 36,186, 25, 88, 1, 96, 98, 6,128, 82,195, +142, 32,224, 0,102,110,102,102, 1,121,176, 82,184, 9,177,154, 42, 32,178, 49,114,229, 61,168, 89, 27,101,101, 36,143,135,212, +181, 0,186,238,232, 15,238, 14,175,180,102, 38,175,158, 13, 36,175, 32, 98,172, 76, 33,171,108, 57,183, 92, 91, 72,235,222,235, +218,236,204, 72, 86, 43, 81, 53,240, 49,100, 10,234, 64,200, 20,136, 28, 1,212, 29, 77, 55, 38,211,139,195,115,189,190, 93, 47, +142,132,224, 90,136,155,245,148,220,135,130,175, 19, 24, 88, 93,185, 61, 14,168,243,250, 68, 94, 57,233,132,174,117,228,226,238, + 14,130,166, 3,224,125,160, 35,172,239,212,239, 44, 16,170, 2, 13, 13,108,192,117,213,189, 21, 48, 50,142,188, 75, 5,186, 92, +178,170,239,236,236,252,224,251,223,250,206,107,251,191,250,229,191,179,115,227,102,239, 22,132, 43,147,178,153,110, 9,163, 21, +173, 70, 25,226,224,170,168, 6, 78, 33,182,237,116,227, 39, 62,246,169,127,251, 7,223,152,140,167, 77, 51, 65,166, 91,183,159, +218,221,219,255,235,239,254,240,249,119,189,212, 45,103,247,223, 90,228, 82, 70,211,109,115, 35,181,122, 0,172,223,205, 36,164, + 90,189, 53,196,200,213,210, 98, 80, 96,141, 18,116, 10,196,162, 41, 33, 59, 6, 9,227,209,128,163, 69, 79,243,165,150, 66, 18, +218,233, 8,152,202, 34,153,186,170,166,110,133, 28,195,168, 45,221,146, 7,103, 8, 9,203, 74,123,213, 66,131,221,102,153,178, +246,185,180,136,172, 37,155,229,174,219,189,121,171,109, 71,139, 11,159,157, 63, 42, 38,171,217,101, 8,194, 84, 98,228, 44, 44, +196, 77,187,145, 82, 86, 45,103, 71,251,103,203,217,198,198,246,101, 15,219,187,183,231,243,249, 38,211,219, 15,238,103,179,105, + 51,122,230,246,237,139,197,188,194, 6, 83,201, 0,174, 90,183,106,145, 70, 52, 80,234, 80,235, 37,145, 8,234,100,184,168,153, + 2,178, 5,166, 32,193, 12, 76,211,211, 79, 61,249,235, 95,254,242,103, 62,253,105,105, 70, 9, 49,231, 62, 45, 23, 87,103,167, +175,191,245,198,219,247,247,247, 15, 31,157,207,230, 41,229, 85,215,109, 76,198,109,224,207,252,248, 79,254,220,167, 63, 38,140, + 23,243, 51, 31, 53,119, 14,143,199, 49,204, 22,139,123,119,247,119,154,209,141,157,141,122,253,119,116, 66,145,224, 94, 60,187, + 34,144, 41,230,162, 72, 4,228, 94, 12,136,128,217,220, 24,217,200,213, 44, 6,113,244, 90, 66, 2, 38, 47, 86,178, 1,120, 96, +182,208,244,220,197, 54,132,166, 97,146, 16, 34, 33, 22,247,241,184, 45,165,184,131,170, 18,184, 1,192,144,185,196,162, 22,185, +114, 4,177,118, 59, 29,188,198, 0, 0,200,221,192, 75, 93, 73, 50,210, 48,117,103,242,186,124, 52, 4,174,200,108, 18, 33, 83, + 3,100, 38, 89, 55, 7,135, 51, 12, 17, 12, 47, 74,162,122, 76, 91, 39,161,201,220,106,235, 69, 85,235, 5, 49,171, 3,152, 4, + 0, 85, 53,118,132, 32, 13, 98,118, 83,112,167,200,245,202, 93, 25, 81,128, 40, 33,184,230, 82, 50, 90,101,152,155, 19,128, 43, + 6,114,131, 90,126,212,162,210,196, 74, 91,146, 24, 75,214,110,153, 99, 32, 5, 55,171, 68, 20,148, 16,171, 15,175, 91,245, 33, + 10, 33,106, 81, 98, 67, 51, 36,130, 50, 12,103,171, 29,165,206, 34,114,215,117,243,197,116,178,241,210,139,163,135,251, 15,111, +223,184,118,181, 92, 92,158, 28,127,242,149, 23, 38, 27,211, 2,228,224,185, 79,238,208,180, 49, 23,173,154, 31,226,152, 75,238, + 83, 38,102, 25,181,215, 71,241,198,238,110, 46, 70, 0, 34,204, 49, 82,136, 57,229,229,124,177,179,181, 57,106, 70,197, 29,209, + 41, 70,183, 2,168, 68, 18,218, 81,108, 71,238,174,150, 42,174, 29,134,173,197, 48,119,168, 15, 44, 51, 3,200,213,142,146, 82, + 30, 2, 33,106,136,160, 78, 60,140,218,173,166,135, 74, 42, 80, 25,223,149, 42,106,230, 54,164, 74, 8, 17,178, 49, 97, 46,238, +217, 80,234, 18,168, 82,105, 77,192,135,142, 47, 12,156,220, 1, 75, 0, 96,213,191,142, 44,107, 98,251, 80,193,122,140, 8,131, +170,144,115, 28, 94, 9, 60,168,222,235,243,178,146, 29,157,192,179, 14,210,181,117,248,163,226, 23,144, 6,204,154, 32,130, 35, +183, 65,115, 63, 91,234, 70,227,107,188, 12, 13,152, 92,112,119, 67,174,143,107,131, 42, 21, 25, 80, 25, 21, 31,236, 68,232,117, + 74,234,149, 84, 49,208,174,169,142, 91,180,122, 98,214,211,163,129,128,135, 6,198, 64,190, 70, 27, 97,101,103, 98, 0, 55,167, + 2,142,168, 33,173,150, 28,152,136,115,191,216,218,222, 57, 59,124,251,223,254,201,159,127,230, 19,159,218,222,154,172,250, 62, +142, 39,200,193, 53,187, 16,212,149, 9, 58,106,189,114, 20, 71, 40, 93,146,192, 68, 32, 49, 60,122,116,255,141,187,251, 59, 59, +187, 49, 54,219, 91,215, 41,210, 11,239,122,225, 47,254,226, 47,127,248, 55,223,255,240, 71, 63,250,214, 27, 63,184,118,227,137, +110,185, 80, 45, 28,162,153, 3,162,153, 17,128, 91,109,150, 65, 29, 63,154,170,217, 0, 87, 48, 0, 64,148, 40, 68,128,227,145, +165,158,170,162, 70, 33,110,142,242,170, 7, 18, 9,194,236,253,229,220, 1,173, 36, 38,214,188,210, 82,186,110,145,251,194, 76, +237,120,178, 90,174,192, 59, 51, 57,123,180,103,150,133,185,244,101,177,234,178,230,101,223,191,240,244, 83, 49,240,108,118, 49, +221,190, 62,158,108,204, 79,246,207, 78, 46, 78, 30,237,143,183,111,140, 39,187,196,220,140, 54, 47, 79, 14,206, 47,142,110,220, +122, 78, 74, 6,157,117,243, 69, 15,240,244,205,231, 83,191,184,154,207, 67, 43,185, 36,132, 80,138,198, 16, 12,252,116,118,150, + 82,213, 8, 96, 81, 35, 38, 20, 4,243, 26,197,245,199, 7,133, 58,216, 54, 38,180,200,132,129,135,110, 62,194,178,239,167,227, +209, 47,124,242, 83,191,249,181,175,238,222,124,202, 8,220,105,181,184,184, 58, 59,121,112,127,239,173,189,123, 15, 15,143, 79, + 47,175,150,171,110,213,175,174,102,171,171,217,229,179,239,126,245,191,248,242, 47,189,252,202,139, 71,143, 30, 28, 29, 28,148, + 24, 94,123,243,205,205,233,248,219,127,243,198, 36,198,119, 93,219, 9,177,173,255,119, 66, 46,128,236, 14, 70, 6,202, 24,212, +148,132,204,138, 96,240,226,245, 80, 95, 5,246,202, 76,129, 34,214,132, 50, 32, 98, 32, 44, 14,170, 70,136, 10,104,166,168, 58, +105,154, 62,219, 56,140, 66, 19,205,205,179, 54, 81,106, 81, 5, 73,164,254,116, 24, 8,169,224, 36, 60, 40,235,170,118,192,220, + 29,161, 17, 46,234,174,185,250, 55,106,168,140,144,235, 15, 86,176,192,129, 0, 85, 21,137, 28, 61, 52,193,212, 88, 4, 76, 7, +243,193, 26, 11,197, 36, 92,255,134, 43,222, 0,176,142,160,212, 0, 77, 69,164,128,186,185,187, 34, 72, 41, 38, 96, 90, 74,223, +107, 8, 77,108,154, 24, 91, 51, 47,150, 9, 24,137, 77,171,101, 19, 12, 32, 50, 27,225,106, 53,199,250,132,113,213, 82,180, 88, +208, 34,177,209, 82,136,184, 20, 99, 36, 17, 94, 47,242,168, 66,105, 66,164,146, 11, 11,215, 68, 10, 2,150,212,171, 3, 33, 52, +161, 5,207,234, 74, 36,165,104,234,150,174,185,109, 70,128, 92,237,206, 44, 68, 8, 90,108,204,120, 49, 63, 47, 57,111,109,110, +149,155,215, 15,207, 46,230,179,171,143, 60,125,235,218,245,107,189,186,251, 96,238, 54,208,172,136, 68, 12,160, 86, 42,116,138, +152,221, 92,154, 16, 80,122,205, 65,144,135,192, 14, 90,238,115, 65, 66,107, 70,163,164,165, 34,241, 77, 11,184,199,208, 54,211, + 45, 67, 48, 85,203, 37,119,189,230, 28, 69,250,146,200, 29, 84, 49, 8, 50,187,154,185, 50,139, 57,184, 21, 0, 84, 53,130,117, +145,146, 17,204, 85, 75, 1, 23, 98, 94, 63,106,193,141,152,205,204, 74, 17, 17, 32, 50, 51, 45, 30, 3,135, 16,178,154,121, 34, +174,127,249,117,146, 81,247,171, 36, 0, 54, 48, 94,124,189, 17, 53, 87,116, 25,160,148,108,110, 72, 80, 11,244, 76, 88, 79,240, +195,124, 99,192, 20, 59,212, 83,239,176, 66,120, 28, 60,116,168,243,211,122,172, 6,115,130,250,108,214, 97,118, 92,167, 32,224, + 96,166,176,179, 57, 58,191,188,216,186,189, 85,116, 29,107, 89, 39,140, 96, 32, 78, 84, 67, 47,194, 26, 89, 89, 27,167,195,160, + 25,225,177, 70,160, 94, 54,222, 81, 84, 87,116,101,125,235,173,163, 97, 67,198,125,200, 83, 27, 0,131, 9, 84, 69, 12, 26, 50, + 51, 76,210,197, 37, 0, 32, 54, 73,211,120, 52, 57, 61,220,255,198, 55,191,249,190,247,127,228, 61,239,121,207,226,242,180,217, +190, 25,154,198,205, 92, 26, 52,101,110, 1, 81,213,172, 47, 68, 68,160,181, 31,200,194, 64,188,154,157,252,238,239,254,243,103, +158,124,151,230,254,236,226,108, 50,221,108, 66,123,237,198,141, 23,158,127,238,175,191,251,218,143,188,239,125, 55,111, 63,249, +246,189, 59,194, 50,153,110, 17,179,132,134,234,145,132, 35, 2, 33, 9,128,154,171,103,116,112, 80, 67, 66,172, 52, 18,128,166, + 29,213,125, 75,201,198,160,128, 4,104,121,149,172,152,230, 28,218,209,106,181,204,171, 20, 71, 17, 89, 16, 57,173,114, 46,190, + 90,174,136,177,153,140, 0, 60, 52, 13,184, 90,209,131,131,187,183,111,237,154, 89,214,210,247,189, 25,104,209,141,209,248,226, +242,188,235, 86, 79, 62,251, 74, 90,205,246,238,188, 49,155,151, 16,167, 86,188,150,193, 74,234, 32,196,182,221, 52, 45,103,167, +247, 79, 79, 31,149, 82,118,175, 61, 59, 26, 79,206,174, 78,219, 81, 60, 58, 62,153,205,230,203,110,233, 5, 10,104, 16,190,156, + 45,143, 79, 79,215,117,227,250,249, 1, 53,136, 1, 8, 80,135,237,200,240,181,145, 74,140,243, 58, 82, 3, 45,202,204,207, 61, +247,212,111,254,234,223,249,228,167, 62, 53,222,220, 77, 57, 89, 94,205, 78, 79, 15, 15,238,239,221,191,191,247,224,240,224,236, +236,114, 54, 75, 93,127,185, 92, 30, 62, 58,126,226,250,206, 63,250,242, 23,127,229, 23, 63,215, 16,252,240,175,254,242,178, 91, +197,173,173,126,181, 58, 61, 60, 23,245, 27,155,147,157,141, 49,137,172,235, 15, 72,132, 97, 24,163, 27, 19,153, 91, 20, 86, 55, + 83, 50,171,165, 16, 48, 55,102,170,178, 48, 2, 52,179,202, 10,210, 4,171,164, 64, 22, 66, 16,102,239, 58,175,160,177, 16,166, +173, 24, 66, 45, 22, 13, 40, 14,128, 38,180,106,252,146,225,176, 0, 0, 32, 0, 73, 68, 65, 84,158, 53, 51, 9,145, 56, 2, 40, + 72,144,156,251, 24, 98, 81, 69, 2,211,122,223, 38, 77,181,248, 74, 14, 4, 80, 87, 47, 52,200, 75,153, 2, 35, 49,129, 67, 77, + 39, 48, 73,197,168,187, 43, 50,231,108,178, 62,172,175,217,219,104,102,170,165, 54, 68,212, 1,220,152,196,177,168, 41,168,179, +176,170,151,100, 76, 80, 84,179,153, 91,113, 8,238, 94, 82,114, 0, 97, 1, 32, 97, 54, 83, 51, 39,177,200,146, 82,114,117, 38, + 82, 45,102, 3, 21,213,221, 84,213,146,139, 69, 25,161,163, 0,184, 48, 21, 4,205, 10,110, 20,184, 30, 47, 73,170, 39,212, 9, +161,100, 5, 52, 97,113,128,226, 61, 33, 85,203, 4,147,146,251, 42,173,144,164,105, 66, 19,131,106, 49, 85, 3, 8, 68,220, 8, + 26,197, 9, 30,158, 29,165,229,234,154,208, 7, 95,126,254,198,181,157, 12, 8, 14, 66,132, 0,185, 62,225,188, 30, 58,107, 98, + 30,188,202, 59, 92,221,160, 55, 69, 30,124,114, 69,157,220, 37,134,197,213,101, 19, 37,196, 86, 93,173, 30, 34,165,234,249, 68, + 75,114,162,220,117,253,106, 5,238, 6,198,136,129, 24,152, 28,138, 3,184,102, 36, 65,231, 10,193,198,202,120, 32, 31,100,156, + 76,238, 78,132,170, 24,132, 9,184,228, 92,165,160, 64,108,234,132, 24,154, 72, 76, 41, 43, 2, 4, 6, 0,212, 10,120,224,160, + 57,195, 80, 76,243, 46,169,101, 21,213, 36, 84, 87,221,160, 3, 36, 1, 28,235,123,184,254,177,203, 48,235,112, 39,226, 26, 76, + 30,228, 97,110,235, 96,228, 80, 76,114, 53,148,193,116, 55,148,146,234,113, 6,214,104, 96,171,117, 93,128, 74, 45,199,181, 75, + 3,192,212,118,182,119, 78,239, 61, 40, 55,166, 96, 14,196,143, 57,128, 96,117,204, 95, 5,215,235,192, 78,133, 92, 86, 93, 23, + 26, 60,238,216,214,219,134,173, 11,120, 84, 61, 43,213,208,138, 96, 21,163,129, 88,179,104,100, 69, 11, 99,160,250,138,144,136, +168,230, 25, 76, 17, 55,250, 69, 82,135,166,105,204, 60, 54,237,114,126,246,141,111,254,225,243, 79,191,244,209, 15,252,104,223, +247, 78, 33,142, 90,115,181,126, 37,147,109, 36,206, 89,145,168,116, 61,198, 8,168,158, 82, 78,169,221,218,206,125,183,125,243, +230,239,253,179,111,172,122,253,205,127,248, 15, 15, 30,188,249, 23,127,246,167, 27, 27, 27, 79,220,126,122,132,147,167,158,126, +250,252,242,226,175,255,211,183, 62,253,185,159,121,244, 96,111,178,177, 67, 68,125,183, 68, 36, 39,100, 36, 34, 20, 10,106,182, +166, 92, 22, 4, 2,169, 30, 53, 4, 55, 51,224,216, 34,139, 43, 16,162,107, 1, 66,119,243,236,142,104, 10,221, 98, 89, 82,223, + 76, 71, 66,156,115, 49,230, 46,173,144, 12,164,169,137,216,209,100, 67, 51,244,185, 47,253,226,244,232,225, 51, 79,220, 80,211, +197, 98, 57, 95, 46, 87, 57, 35,248,141,221,157,130, 49,182,178,123,243, 73,105,162, 67,136,145,101,218,230, 84,192,203,229,249, +213,120,178,201,165,191,188, 58, 62,159,157,108, 77,119,111,221,126, 87, 94, 45, 38,155,187,139,213,236,193,225,193,178, 91, 25, +192,230,198, 70, 53,220, 35,194,168,105,158,185,221,252,199,254, 59,167,231, 87, 34,188, 70, 4, 1,186,241, 90, 24, 96, 14, 12, + 94, 91, 68,117,176,199, 8, 24,100,185, 88,108, 79, 55,190,242,249,159,251,249,207,124,246,217, 23, 95,146,102,146, 53, 47,103, +231,103,199, 7,247,223,222,187,255,240,209,195,227,227,147,203,203,217,124,126,113, 57, 63, 59, 61,235,115,254,248,123, 95,253, +173, 95,251,149,151, 94,122,161,239,150, 39,179,203,189,171, 75, 75,221,237,221,205, 59,247,238,111,181,205, 4,145,167, 99, 98, + 25,180, 59, 72,130,104,234,131,102,167,138,161,173, 26, 10,208, 84,139, 21, 24, 42,150,213, 62, 10,197,114,160, 80,175,141,150, +221, 12, 66, 32,119, 70, 32, 3,227,138,231,173, 7,115, 0, 68, 18, 97, 2, 84,240,202,125, 50,119, 3,168,151, 54,215,130, 34, + 18, 2, 16,180,113, 82,180, 84, 51, 25, 35,170,209,208,160,182,193, 91, 54, 44,227,104,120, 23, 18,146, 27, 20, 51, 97, 10, 44, +245, 40, 77, 6, 34,141, 90,178, 82, 80,170,144, 6, 25,209,145,106, 12, 13, 1,137, 4,220,213, 21,141, 0, 64, 53,215,118,168, + 3, 3,225,120, 60,234,187, 85,234, 87,102, 30, 69, 48, 68, 48, 44, 37, 83, 64, 67,100,103, 34, 42,166,128, 86, 5, 79,125,159, +188,100,168,220, 75, 67,131,194, 72, 53, 5, 80,204, 25,205, 76, 83,223, 55,227,104,165,122,186, 60, 4,201, 89,135, 76,155,147, + 48,187, 23,213, 97, 46, 28,164,117,215, 84, 10,242, 58, 4, 1,128, 72, 97, 52, 6, 14, 77,219, 72, 8, 86, 20, 1, 73, 24,204, +235, 16,121, 50,218, 28,163,110,143, 11,154, 87,113,130, 26, 34, 20,230, 96, 96, 96, 70, 80,163,138,238, 57, 57, 50, 18, 49, 49, + 48,154,170, 33,171,101, 70, 6,228, 65,131, 71,200,129,251, 84,250,229,106,247,137, 27,192,102,201,173,228, 56, 26, 1, 99,206, +170,203, 21,199,236,230, 69,213,107,158,167, 88, 54, 88,219,176,234, 37,129, 29,177,218,138, 16,209,234, 87,113,120, 86,129, 59, +160, 35,115, 36, 42, 37,151,222, 58, 66, 66,175,113, 88,171, 15,203, 84, 74,196,166,105,154,190,207, 37, 39, 9,204,128,196, 97, +161, 74,140, 96,158,138,129,167,173,233,164,184, 72, 28, 95,203,185, 51, 45,197,138, 0, 56, 24, 18,219,192,211, 88,215,135,200, +234,126,214, 77, 7,207,115, 93,177, 86, 43,163, 15, 68, 97, 68, 66,169,111,130,193,133,138,160, 80,121, 4, 68, 21,100,134,131, + 94, 3, 89,234,149, 65,135,131,190, 1,128, 75, 19,219,136,203,101,158,182, 1,220, 1, 10, 32, 13,209,176, 26,214,161,199, 47, + 15,115, 68, 7, 5,171,149, 55, 34,192,186,200, 53,115,171, 63,143, 4, 65,181,164, 65, 9,100,128, 10, 6, 38,117, 16, 64, 85, + 56,238,238,184,254, 18, 24,120,239,128,110, 74, 97,203,150, 93, 94,204,154,141,169,196,145,151,100,253,252, 27,255,230,155, 55, +174, 61,241,185,207,124, 26, 16, 74,223,181, 27,155, 36,193, 1,156,196,212,172,155,243,104, 3, 12,220,156,106, 39,133,164,153, +142, 81,173,109,199,243,163, 7,255,250,247,191,249,115, 63,247,165, 39, 95,121, 17, 17,130,252,135,203,179,179,157,173,221,166, +153,236,236, 92,127,226,214,147,119,238,221,127,229,254, 61, 53,155, 93, 93,222,124,242,233,229,225,129, 48,135,102, 84, 19,175, +230,201, 17,221, 12, 17,205,180,162,254,134, 41, 87,157, 70, 17,154,154,155, 97, 32, 80,183,172,142, 72,181, 1, 1, 86,114,230, +216,162,185, 49, 2, 97,183, 92,246, 41,231,212, 7, 66,226, 16,218,134, 9, 83,191,100,145,211,195, 71, 87,203, 5, 71,118,183, + 62,245, 57,231,101,215,141, 2,111,143,154, 16,195,104,251,122,136, 45,179,180,211,173,229,201,241,168,221,237,211,101, 78, 75, + 2,184, 56,127,244, 96,255,174, 1,189,250,226,171,139,217, 5,115, 92,234,197,229,197,209,229, 98,126,116,117,121,117, 53, 27, +143,166,227, 24,164,105, 22,179,171,113,211, 44,251,148,250,238,230,245,221,203,217,252,111, 3,154,161, 30, 87,124, 88,148,215, + 24,100,237, 72, 48, 67, 54, 3, 43,239,125,233,197,255,242, 55,190,254,254, 31,251,128,180, 99, 35, 92, 92,157, 95,156, 30, 62, +124,176,127,244,232,224,238,131, 71,199,231,103,103,179,217,114,209, 29, 30,159,156, 92, 92,142, 99,248,239,191,250,229,191,251, +149, 47, 45,231, 23,119, 94,255, 33, 52,163,183, 31,238,175,102,151, 15, 30, 28,189,246,198,131, 27,211,201,181,141,105,211,214, +121, 11,129, 17, 81, 64, 50, 45, 85, 82, 71,200, 12, 96, 89,135,242,189, 4, 2, 48, 54, 41,238,197, 92,234, 67,208,140,128,177, +230, 38,209,139, 25, 19, 58, 99, 94,229,182,137, 21, 23, 40, 18,114,202,213,217,214, 4, 86, 39, 7, 68, 9,128,174,217,144,177, +194,133,113,176,209, 3, 7, 33, 34,213, 66, 68, 49, 72,202, 57,247, 67, 74, 10, 0,156,157, 64,176, 94,154,125,136, 30, 0,186, +106, 38,142, 68, 20, 56, 2,177,106, 38, 55, 32, 44,165, 39, 34, 98, 97,116, 25,176,142,193, 92, 21, 44,132,152, 83, 15,238, 64, +200, 30, 12,204,221, 41, 48, 34,105, 41,129, 89, 66,200,165, 16,113,136, 35, 7,179, 82,152, 9, 3,215, 33,175,212,163,132,149, + 16, 34, 18,151, 92,250, 62, 33, 16,178, 84, 91,102, 51, 10,232,113,213,119, 53,146,207, 90, 5, 62,128, 64,166,201,129,221, 13, +193,115,234,213,140,137,130,200, 48, 46,118, 16, 17, 17, 46, 57, 23, 77, 48, 72, 1, 43,210,222, 17,204, 0,154,166,149,192,228, +168, 73, 89, 4,192, 82, 94,185, 89,108,226,186,165, 73,227,113,235, 70,185,203, 14,206, 77,112,117,115, 99,102, 67,212,236, 37, + 23,171, 97, 87,207,228,129, 56,168,154, 23, 99, 34, 39, 6, 71, 80,165, 32,161,137, 41,165,190,207,151,179,101, 8, 40, 44, 86, + 76,152, 80, 70,197, 12,212,189,226,203,187,206, 28,115, 73,204,193, 75, 33, 38,172,234, 30, 98, 5, 80, 51, 68,104, 99,232,172, + 84, 69,109,237,173,145,144,166,140,204,245,102,165,131,194, 10, 35, 5,114, 79,166, 66, 28,162,228, 94, 11,104, 20,142, 49,164, + 84,152, 8,130, 56, 64,118, 37,208, 73,211,116, 61,231,180, 16, 52,146,102,217,155, 22,147,231, 95,124,113,213, 23, 45,101, 62, +187, 88, 46,103,218,175, 28, 75, 77,164, 0, 14,152, 69, 98,210,172, 53,164,239,174,117, 32, 52, 24,180,129,235, 50, 28,234,166, +181, 78,139,214,100,210,154,229, 55,132,186, 6,241,117,115,202, 43, 50,110,120,113, 25,214,203, 36,146,230,178, 53, 25,207,150, +221,246,102,155,212, 5,240, 29,204,247, 59,248,200,193,244,242, 88,250, 87,147, 52,107,132,116, 70, 39, 17, 80, 51,211,130,224, +174, 96, 76, 60, 52,131,148, 81,134,247,137,177, 62,246, 89, 15, 24, 32, 0, 52, 34,113,152,120,151, 87,203, 5, 7, 33, 14, 69, + 51,106,255, 7,127,252, 71, 18, 70,159,252,200, 7,139, 22,112, 36,142,205,100,170,197,136, 89, 29, 65,147, 47, 23, 32,173,165, +142,194, 8, 25,192, 12, 65, 17,212,220,199, 27,163,255,243,127,251, 63, 36,110,127,254, 23,126,102,254,232,209,120, 99,227,163, +159,249,236,191,251,195,127, 51, 95,204,154,241,120, 50,153,220,188,113,253,252,252,244,245,215, 95,251,201,143,253,212,241,233, +225,114, 49,107, 39,163,156, 87,136, 64, 34,110, 86,128, 68,216,113,253,184,171,232, 19, 68,174,244, 55,225, 32,177,228, 21, 34, + 51, 7, 69, 71, 0,116, 67,211,220,247,121,181,228,102, 20,219, 64, 96,234,234,102,134, 36,161, 49, 71,244, 34, 34, 24,184,148, + 12,224,171,211, 71,119, 95,255,214,213,106, 69,196,238,184, 92,172, 22,243, 69,234,250,157,201, 6,161,164,238,234,250,228,121, + 67, 58, 57,216,239,187, 69, 78,253,229,201,241,120, 50,238,187,171,249,229,241,170,215,219, 79, 60, 55, 34,186, 60, 61,238, 87, +151, 32,141, 57, 77, 39,211,243,171,217,124,177,100, 9,155,155, 91,253,106,126,122,124, 88,138, 7, 9, 76,120,112,114, 49, 91, + 46, 0,220, 75,241,181,246,220,220, 16, 98, 85, 83,212, 47, 43, 51, 86, 67, 99,113,187,177,187,243, 11,159,248,196,151,190,248, + 75,183,158,122,166,152,169,149,203, 71,135,103,167,135, 15, 30, 60,120,116,116,114,255,209,225,225,217,105,151,210,229,108,113, +112,112, 92, 74,249,236,135,222,247,143,190,252,133, 15,127,232,199, 30, 30, 62,220,187,243, 54,143, 71,221,233,241,253,183,239, + 7,230,136,116,125,103, 60,157, 76,107,236, 10, 3, 4, 17, 0, 50,215,146,157,185, 34, 34, 0,208,181, 40, 17,136, 80,234, 11, + 58, 8,198,130,133,208, 76, 43,117, 20, 17, 25, 9,138,107, 73, 26,155,216,196,198, 74, 54,199, 56,138,245, 59,161,137,148,178, +213, 55, 0,177,160, 48, 42, 16,139,230,172, 73,171,163, 25,208, 41, 10, 34,122,113, 34, 0,181,164,153, 49, 8,122, 81, 37, 68, + 9, 92, 39,230, 53, 92, 0, 72,214,103,115, 99, 25, 82, 3, 37, 43, 75,168,234, 66, 67, 7, 55, 14,195,169, 28, 76, 1, 88, 68, + 0, 93,181, 0,120,177,158, 88, 16,216,177, 98, 60,234,164,200, 16, 32,112,163, 86,192,189,105, 71, 57,103,207,217, 21, 88, 68, + 66,112, 51, 15,200, 92,185,193,131,217, 39, 21, 99,193,156,122,213, 34, 65,152, 8,144, 93, 43,219, 50,162,170,170,162,123,148, + 80,140, 21, 10, 66, 30,162,173,185, 32, 90,229,255,173, 85,112,100,168,160, 80,201,107,213, 63, 87,147, 35, 68,192, 66,224,104, +235,212, 93, 8, 77, 81, 5, 39, 3, 71,174, 71,132,194, 68, 20,215, 53,248, 32,232,144, 74,134, 82, 98,100, 67, 40, 57, 3, 48, + 56, 58,128, 38,128, 58, 87, 82, 83, 80, 68,113,128,156,147,136,112, 27,114,210, 58, 50,138,177,181, 84, 22,125,110,154,160,200, + 57,149,205,233, 24, 9,155,216,154,121, 78,197, 84,205,141, 43,170, 55,151,161, 78,236, 70, 18, 85, 11,104, 17,150, 82,114,173, +203,171,217,106,181, 34, 10, 86,117, 21,132,134,144,251,108,224, 1, 17, 29,180, 43, 6, 86, 37,167,154,147, 2, 10, 18, 32, 20, + 85,142, 28, 81, 82,209,249,124,222,180, 17, 89,172, 55, 43, 9,212, 73, 8,205, 2, 58, 52, 13,184,153,153, 16,178,144, 72, 19, +183,218,198,212, 38,147,166,239,182,186, 85, 74, 57,165,110, 89,114, 41,165,115, 75,174,133,220, 5,135,244, 60, 24, 32,131, 15, +151, 86, 3, 83, 24,240, 50,107,104,146, 33,184,129, 8, 18,185,155, 43, 12,253,183,245,116,129, 24,157, 6, 52, 76, 24, 18,175, + 12,204, 53, 15, 55,217,218, 56,217, 63, 1,218, 37, 45,128, 53, 77, 64, 96,117,148, 67,239, 68,115, 6,208, 8, 18, 13,115, 36, +112,215,172, 78, 96, 62,204,246,177,130,108, 4, 8, 12,148,129,173, 90, 84,215, 75, 2,245,170,137,164,161, 23,177,102,163, 9, +166, 82, 74, 14,161,149, 54, 0, 24,171,254,201,159,253,191,103, 75,248,229,159,249,220,168, 13,165,239,226,168,149,166,181,156, + 33,140, 16,204,186, 57, 52, 35,106,218,210,173, 76, 83, 19, 71,174, 78, 65,160,184,166,210,110,110,220,127,243,205, 63,254,163, + 63,253,234, 87,255,193,116, 68, 71, 39,179, 91,207, 63,245,190,167, 63,241,253,239,126,251,222,222,157,205,205, 45, 30, 79,119, +110,220,120, 98, 54,123,112,240,232,248,232,145,153, 94,156,156, 96,224,205,233,118, 69,228,168, 22,145,168,238,188,198, 96,186, + 27,186, 58, 80,113, 32, 66, 9,141, 99,109,110,114, 41, 25, 7,181, 57,150,164,150, 51,139, 72,224, 10,111,214,174, 51,181, 40, +178,185, 49, 61, 98, 2, 83, 4,240,156, 33,167,213,197,193,221, 55,223, 92, 44,231,197,107,156, 86,207, 46,206, 86, 41,247, 69, + 55, 2,247,221,108,177, 90, 60, 19,199,105, 57,219,127,243, 7, 38, 60,154,236,164,229,236,244,120,111,181,154, 79, 38,187, 79, +237,108, 16,203,233,241,253, 85,159, 56,180,139,171,147,233,116, 71, 0, 95,187,243, 58,145,108,111,108,174,186,197,197,229, 69, +219,140,219,157,241,229,249,185,131, 33,162,170,165,164, 64,142, 64,149,147,103,110,132, 85,173,172,170, 30, 2, 11,242,162,239, + 38,109,251,211,159,248,216, 23,126,246,103, 95,122,233, 85,105,219, 85,223, 45,175, 46,175, 46,206,142, 31, 29,220, 63,184,127, +111,255,232,248,236,116,217,247,139,229,234,225,241,233,225,225,201,143,191,244,236,111,255,218, 87, 62,254,161, 31, 5,243,195, +211,163, 71,151, 23, 15,207, 78, 95,216,125,225,193,189,115, 74,182,189, 53,106, 55,166,102,224, 64, 66,161, 42,140, 77,161, 62, +236,214,208,105,175,216, 0,145,250,104, 80, 38,246,186, 41, 2,240,226,196, 80,180, 16, 7,114,211, 92,140, 49, 80, 0,115, 67, +165, 90,169, 8,129, 8, 74, 86,115, 19, 17, 71,130,202,119,118, 68,169, 91,115,224, 38,120,113,226, 90,191, 24,108, 58,245, 84, +195, 64,117,238,175,165, 62,239, 24,137,132,177,232,112,164,193, 72, 88,181, 79,110,142, 40, 65, 72,106,186,188, 86, 32,171, 95, +222,200,201, 65,240, 49,147, 3,201,173, 84,186, 33,186, 89, 65,225,198, 64,235, 64,213,204,213, 50,146,184,165,220, 47,144,163, + 48, 43, 58, 5,172, 79,121, 48,116, 52, 70, 52,115,102, 38,172,164, 78, 67, 2,100, 54, 53, 12,145, 16,185,137,214,169,171, 86, +229,183,136,152, 85,217,147, 50, 5, 3,119,176, 24, 91, 45, 90,212,200,128, 67, 64,102, 53,181,172,132,140, 78,246,216, 52,164, +133,100,184,185, 32,177,153, 86,237,144,106,113,171,189, 94, 71, 71,179, 60, 80,164,181,150, 90, 48,167,140,134, 44, 68,109, 40, + 89, 93,149, 41,152, 91, 46, 69, 92, 6,106, 19,185,214,240, 66, 5,221, 19,185,131,169, 35, 65,219, 54, 41,245, 57,247, 34, 18, +131, 32, 81,191, 88,129,229,241,120,203,220, 82,223,129,163,169,215, 52,166,155,193, 58,164, 7, 68,142,164,170,107, 97,144,215, + 83,185,170,213, 39, 76, 93,136, 59, 64, 49,133, 42, 13, 71,169,153,171,122,231, 70, 68, 55,112, 99,243, 2,129,132,144,153,181, +184,154,213,113, 21, 56, 90,214, 16, 24, 60, 40,148,162,202, 66, 28, 24,157,180,148,234, 10, 83,115, 57, 58, 60,104, 66,100, 17, +145,208,142,198,163,241,168, 56,104,151, 82, 46, 41,245,170, 86, 82, 90,204, 47, 87,105, 5,152, 26, 33, 17,170,132,198,234,122, + 5,199, 90, 89,242,202,130,175,171, 23,118,172,251,226, 33, 71, 91,199, 57, 25, 24,134,190,182, 15,235, 12,167,225,197, 11,107, + 66,111, 12, 49,146,207,150,182,209, 82,221,178, 14, 45,164,119,192,195, 72, 14,250, 24, 31, 86,237,209,170,136,168, 96, 4, 52, +128,244, 28, 28,120,173,247,171, 76, 62, 99, 12, 64, 8, 86,188,168, 86,188,180,240, 16, 15, 37, 4, 87, 45, 13,245,139,162,160, +128,210,180, 44, 65, 74,247,231,255,225,207, 95,191,119,248,149, 47,124,126, 99,212, 40,176, 52,129,152, 72, 2,181,141,149, 82, + 82, 41,125, 47,106,208,180,106, 30,198, 91,200,161,238, 71,156, 5, 24, 68,211,239,255,171,223,123,249,213, 31,255,236,103, 63, +121,126,126,186,117,227, 26, 69, 1,132,159,254,252,151,255,175,255,253,127, 61, 57, 61,122,170, 25,141, 70,147, 27, 55,111, 92, + 94, 93,124,231,123,223,255,196, 39, 63,113,237,214,237,131,189,189,209,116,178, 92,204, 16,128,164,218,176,196,121, 80,109,153, +131,107, 97,146, 32,172, 96, 65, 34, 99,189, 78, 58, 16,121,201,174,166,165,168, 58, 97,160, 17, 51, 5, 96,204, 93, 15, 88, 59, + 83, 24, 3,107, 94,181,163, 73, 46,170, 10, 97, 52,221,191,191, 63,191, 56,198,208,228,172,174,144, 82,186,154,207, 85,213, 92, +183, 39, 45, 96,104,198, 59,196,113,185,152,115,179,113,113,252,118,145,229,229,249,201, 52,198,182, 29,141,198,211,227,163,251, + 55,110, 60, 61,157,108, 35, 44,155, 81, 83,186,132,166, 7, 7,123,251, 39,103,198,184, 13,147,212,247, 0, 18,132, 71,145,206, + 65, 83, 42, 91,155, 91,227,241,136,153, 79,207, 47,144,168,235,140, 8, 9, 89, 68,250,146,119,183,182,136,248,248,252,188,128, +189,251, 93,207,255,221, 47,125,241, 67, 31,252, 40, 55, 49,171,117, 87, 23,171,217,213,201,241,225,193,225,209,253, 71, 15,247, +246, 15, 46,151, 43, 45,229,228,226,226,222,254,195,174,235,127,227,103, 63,253, 59,191,253,117,102,126,112,239,173,249, 42,173, +162,180,232,199,143, 78, 78,142,207,130,195,141,233,198,120,220, 56, 0, 51, 17, 11, 49, 19,147,170, 57,174, 63,217,117,112,135, +200,196,117,171, 91, 95,255,131,235,124, 13, 45, 52, 32,112, 18,226, 98,134,140, 50,160,184,156, 25,129,152, 12,137,196,173,104, + 41, 33,182, 40,168,197, 8, 48, 8, 27,152,102,151, 6,205,152,145,156,234,228, 19, 37, 68, 64, 43,217, 2,147,185, 25,162, 16, + 50, 80, 68, 94,235,197, 40,149,204, 36, 14, 38, 34,185,174,218,209, 42,218, 17,144,214,201,245, 90, 63, 52,211, 66, 28, 76,173, +106,226, 17,171,142, 57,152,123,133,216,120, 8, 86,138,107,225,128, 94,220,192, 88,164,238,222, 58,119, 65, 33, 64, 64,113,235, +209,133,132,212,106, 49,149,107,239,208, 93,115, 41,230,200, 44, 14,238,168, 33, 52, 18,131,155,229,156,170, 97, 13,145, 28,140, +136,234, 82,215,212, 20,149, 0,138, 58,244,169, 38, 52, 80, 6, 7,180,153,214,219,131,170, 10, 17, 18,153,186,176, 96, 12,154, +178,154, 7, 54, 65, 82, 80, 55, 47,166,163,166, 45, 37,151, 98,109,228,162,230, 14,129,197,201, 52,151,213,170, 52, 77,144, 24, +115,206,154,147, 27, 32,146, 14,201,120,170,233, 15, 4,176, 65, 53, 66, 4, 88, 12,114, 82,192, 18, 2,187,147,106,182,226,230, +217, 1, 5, 65,213,151,139,229,214,198, 8,156, 52, 23, 36, 22, 38, 19, 72, 93, 66, 53, 96, 34, 14, 77, 12, 57, 23, 55, 21,116, +163, 10,135, 34, 85,243, 2, 44, 40,210,168, 23, 28,170,150, 53, 5, 11,128, 76, 12,106,106, 37,115, 16,181,108,138, 81, 0,132, +201, 76,176, 97, 2, 7,236, 86,125, 19, 67,237,189, 86, 64, 60, 18,170, 13,229, 36,150,144,115, 17, 17,225, 8,192,158, 83, 96, + 92, 37,146, 31,126,239,219, 49,198, 32,113, 50,158,182,227, 73,144,216,140,219,102, 60,106,163, 52,141,152,121,214, 50,154, 78, + 76, 75,223,117,243,217, 85,151, 87, 96,137, 4, 91,102, 0, 96,170,110,143, 1,244,226, 4, 40,176,214,157,214, 8, 98,125,126, + 35, 51,174,229, 54,107, 47, 45,130, 1,176,215,234,218, 99,128, 7,110, 78, 71, 39,231,231,155, 79, 93,131, 26,240,178, 65, 52, + 82,233,100, 0, 84,205,218,149, 83,225, 86,119,168,108,182, 78, 5, 1, 1,216,227,175,223, 99,124,241,192,115,247,170, 61, 32, +100,162, 65, 12,246, 78, 81,181,235, 51, 33, 59,104,104, 34,199, 16, 17,191,243,237,255,244,237,215,247,126,230,147,159,186,113, +227,218,106,213,177, 56, 57,177, 8, 9, 91, 41,174,238,134,210,180,220,140, 45, 37, 25,141, 66,140,174, 9,152,173, 95,166, 46, +109,238,108,188,249,189,239,126,251, 59, 63,252,239,254,155,127, 82,250, 5, 82, 24,109,142, 52, 21,239,250, 27,183,175,253,248, +135, 63,250,214,223,124,123,119,247,198,198,214,214,230,238,181,103,159, 46,135,143, 30, 28,236,221,123,249,189, 31, 32,134,187, +111,188,118,235,214, 45, 99, 23,144,129,200, 89,239,173,128, 90,138, 51, 86, 86, 26,168,135, 27, 83,131, 12, 94, 0, 25, 29,204, +177,164,100,200,192, 2,218,147,145, 68, 82, 83,237,123, 15,145,208,144, 27,105, 98,211, 52,163,102,210, 45, 19,197,112,126,124, + 48, 63, 63,221,104,219,211,211, 19,243, 18, 37,244,121,149,250, 84, 76, 65,125,123, 99,147,133,174,223,124,166,109,199,103,103, + 71,253,234, 98,190,156, 95,204,142, 95,121,233, 61,253,236,196,165,237, 86, 11, 82, 59,122,120,127,251,218, 45, 75,125,167, 61, + 88, 41,165, 28,157, 30,175, 82, 10,161, 57, 62, 57,157, 76, 39,227, 81, 59, 95, 45,247, 31, 30, 86,148, 91,183, 88, 92, 45,231, + 27,163, 81,234, 83, 42,165,132,128,160,132, 34, 8,207, 60,241,228,255,242, 79,255, 41, 34,253,187, 63,253, 19, 70,250,248,199, + 63,122,253,250,173,174,104,202,185, 95,206, 47, 46,206, 78,143,143, 14,142, 79,247,246, 31, 60, 60, 62, 94,172,186, 92,202,193, +163,227,135, 71, 71, 47, 60,121,227,127,248,234,175,254,252,103, 63,126,114,126,254,240,254,126,188,177,125,244,232,173,211,139, +171,201,100,154, 83,126,122,103,139,155, 80,233, 71, 36, 50, 60,116,144, 76,235,167,210,105,248,224,162,122, 33,148,172,213,148, + 86, 73, 91, 53, 66, 60, 84, 68, 36, 68,179,162,174, 37, 37, 10, 4,206,245, 8,171,238,208, 37,105, 71,196,156,115,207,204,237, +164, 85, 29, 38, 12, 65,130,106, 6, 64, 98, 72,201,130, 72,205, 41,115,144,122, 6,172,111, 29, 67, 70, 0, 65, 42,166,129, 5, +193,144, 72, 88,138, 41,112,112,115,100, 78,185, 84, 50, 30, 7, 25, 64,174, 0,129,217,145, 24, 73,213, 76, 21,137,221,172,138, +156, 53, 39,226, 32, 44,224, 84, 67,182, 8,232, 69,209, 9, 5, 29,144, 98,136,129, 61,151,148,179,187, 71,105,220, 61,151, 84, +212,154, 24,145,196,181,212, 17, 13, 0,177, 72, 46,201,212, 34,133,210, 84, 5,180, 35, 18, 5, 46,106,194, 92, 23, 41,255, 31, + 83,111,246,107, 89,118,223,247,253,166,181,246, 62,231,220,169,110, 77, 61,177,155,221,236,230,212, 77,113,104, 42,164, 38, 90, +180, 68, 74,138,230,200,178, 76,203, 3, 20, 36,182,131, 0,142,147,135,188,229,111, 9,144,135, 0, 14,144,135, 24,182, 3, 36, +134, 96, 41, 78,160, 64, 18, 41, 90,108,146,221,236,238,170,174,233,222,170, 59,223,123,134,189,215,250, 13,121, 88,251,182,242, +218,168, 70,221,170, 58,103,239,181,126,191,239,247,243, 1,110,144,203,230,138, 1, 85,133, 86,163,157, 2,215,200, 44, 77,168, + 93,116,100,144,220,117,102, 6,136,169, 25, 58, 17,219, 42,200,171, 18,147, 8,154,218, 52,133, 15,147,128, 82, 6, 34,234,115, + 54, 51, 34,110, 57, 18, 47,213,131,102, 93, 10, 34,211, 10,224,110,200, 73,220, 13, 98, 90, 63, 68,152, 8, 1, 66,232,100,123, +176, 86, 89, 64, 0, 98,117, 4,116, 32,102,134, 36, 19,243,121, 83,212, 67, 83,218,110,148, 56,181,106,206, 16,144, 36, 59, 70, +131, 0,184, 41,130, 7,130,186,183, 40,136, 90,101,100, 78,220, 34, 39, 76,220,166,209,230,138,128, 68,217,180, 52,202, 16, 96, + 14, 85,128, 72, 93, 50,167,208, 34,146, 34, 92,155,201, 64,114,120, 32, 57, 48, 1,132,186, 67, 0, 18,115, 22, 87,173, 86, 37, + 9,139, 68,160,186, 77,230,172, 0,249,227, 63,253,211,220,165,121,215,239,110,109,205,231,139,221,157,157,197,124,103,177,181, +181,187,183,151,250,174,235,251,148,186,220, 9, 68,154,207,231,187,123,123,170,182,217,172,202,184,185, 60, 63,119, 12, 65, 20, +114,225,137, 85,131, 8,200, 48, 73,236, 38, 98,134,181,192, 74,211,241, 97,180, 96,179, 95,199, 43, 39,194, 87,155,185, 32,130, +131,239,236,110, 31,221,123, 88,117, 95,174,213,221,173,165, 52, 61,160,145,221, 26, 68,144, 32, 16, 16,205,157,193,193, 1,101, +130, 40, 0, 52, 96,219, 4, 33,160, 22, 52,105,187, 96, 64, 68,129,246,241,155,124, 38,209, 36, 18,129,136,172, 17,115,238,178, + 71, 44,250,244,225,143,126,240,167,223,255,201, 47,126,227, 27,175,127,230,245,245,249, 41, 0, 2,231,112,167,180,232, 22,219, + 58, 86, 71, 87, 51, 76, 57,144,176,239, 72, 4,220, 16, 9,193,235,102,195,196, 57,117,255,246,143,255,228,173,183,190,242,250, +235,175,156, 28,157,236,188,112,215,172,145, 6, 56, 60,190,240,213,159,190,255,222, 15, 47,206, 79, 23,243,157,249,108,113,235, +185,231,182,118,247, 46,207, 15,206,142, 15,111,221,121,161,140,101,255,185, 23,158, 61,122,216,229, 57, 18,133, 25, 32,153, 22, + 69,100,186,134,104,182,111,117,202, 96, 14, 72,225, 30, 30,230,134, 41,147, 25,160, 3, 6, 49, 89, 45,238, 1,194, 72, 9, 37, +185, 57,215, 53,212, 97, 0,183,178, 44,195,248,189,255,231,143,143, 79, 14,111,239,236,212,112,115,168, 90, 54,155, 58,150,113, +185, 30,114,226, 78,242,106,179,254,196,238,237,203,203,163,251, 31,124,127,177,189,245,133,175,252,194,211, 39,143, 60,120,172, + 64, 56, 82,240,108,247,246,233,241,195,213,234,108,185, 60, 15,128, 50,172, 16,224,224,244, 36,229,156, 68,170,151,229,114,181, + 92,175,139, 87,173,182,189,232, 54, 1, 87,171, 43,139,168,102,179,174, 87, 95,247, 41,153, 51, 39, 6,226, 87, 94,124,254,181, +215, 94, 83, 74,191,247,220, 11, 16,174, 16,165,142, 90,199,113,181, 60, 59, 62,126,116,240,248,193,227, 71, 31, 61, 62,184, 92, +173,135, 50,158,158, 95, 62,122,122,220, 17,254,179,223,254,213,127,240, 59,191,182,191,179,120,122,126,118,178,186, 58, 60, 63, +255,196,173, 29,158,207, 55, 79,142,120,208,151,111,237, 49, 83, 56, 32, 79,208,217,196, 73,221,139, 25, 95,131,241,218, 6,169, + 69,109,189, 24,113,184,180,213,253,148,160,136,198, 31, 69, 12, 8, 98, 9, 7, 68,176, 50,157,230, 26, 38,189,169,227, 20, 92, + 36, 17,139,153,181, 10, 7, 6,170,105,195,168, 66,192, 44,243,212,150, 72, 20,246, 49,129, 15,194, 33, 80, 9, 9, 69,208, 52, +194, 9,201,213,135, 24, 51,165, 64,172, 97, 80,161, 49,178,167,188,183, 7, 80, 80, 96,173,230, 94, 83, 74,132, 52,161,193, 1, +217,193,205, 37,117,209,142,232,225,200, 28, 1, 85, 71,225, 52,209, 61,152, 89, 68,171, 66, 4,183, 13,167, 27, 34,166,148,219, +190,138, 16, 26,101,132,152, 60,160,106, 5, 15, 68,114, 68,230, 52, 89,152, 34,180, 26, 33, 57, 26, 11, 91,107,182, 52,154, 43, + 68,120,157,112, 82, 0, 0,193,146, 56, 9, 19,171,170,155, 39, 78,208,228,210,140,110,225,209,210, 55, 19,208,150,168, 29, 91, +167, 15, 57, 94, 79, 38,219,179, 65,195,152, 25, 0, 85, 43, 65, 8, 35, 18,123, 27, 60, 54, 18, 46, 88, 29,170,244, 25,128, 35, +130, 33, 12, 92,125, 2, 43,182,161, 47, 39,110, 89, 76,143,136, 0,134, 96, 33, 32,177,240,246, 67, 95, 93, 45,133, 33,245,194, + 34,166,129,129, 94, 3,165,249, 95,155, 61, 46, 16,136, 25,209, 1,194,204,130,136, 72, 50, 66,104, 53,145, 22,133, 3,135,118, + 74, 99, 8, 55, 31,153,165,169,172, 32, 90,148, 9,221,130,192,155,143,187,185,151, 27,173,195, 61, 4,145,157, 7, 51,140,198, + 59,112, 68,162,156,146, 66,120,152, 26,147,247, 93, 30,134, 49,204,153, 80,190,241,181,183, 15,158, 62,123,124,112,248,240,234, +106, 40, 37,194,183, 23, 91, 59, 91, 91,251, 55,246,119,118,182,183,183, 23,187,219,251,243,237,157,196,221,108, 49, 19, 17, 38, +217,222,218,229,221,253,155, 55,159, 87,171,155,245, 48, 12,235,112, 55, 27,173,110, 34,106, 22,206, 57,220,131, 88,108, 2,233, + 77, 63, 71, 59,134,160,249,100,226,152,248,235, 24, 17, 50,225,120,193, 44,114,146,197,188, 59, 95,110,110,109,119, 45, 42,211, +152,170,222, 34, 93,161, 19,174, 2, 0,194, 0,161,253,175, 40,132, 24,230, 6, 36, 13, 82, 54, 29, 17,136,166,142,171, 87,159, +136,193,136,212,204, 29,136,215, 28,133,198,155,103,162,178, 25,231,139, 57, 3, 60,249,240,189,127,253,239,255,195, 23,223,250, +242,155,111,188, 54, 14, 35,112, 6,173,156, 50,231, 25,162,131,187,106,177,198,233, 40,163,100, 67,112,100,118,171,121, 54,179, + 97, 8,194,157,189,189, 31,127,239, 47,223,123,255,209,127,255,223,252,238,197,233,113, 90,100, 97,118, 51, 64, 64, 22, 85,191, +177,183,247,234, 27,159,125,116,239, 39, 55,246,110,108,237,190, 34,204,171,229,197, 48,214, 39, 79, 30,237,111,223, 8,139, 82, +108,107,247,198, 48, 14, 61,205,166,198,237,100,248,248, 88, 91,229,193, 34,253, 44, 26,150, 69,192,134,145,136,221,172,253,249, + 41,119,220,229,178, 41,110,181,245,137, 67, 29,220,211,124,143,242,130, 37, 13,101, 20,162,207,126,225,205,245,213,217,241,249, +217,249,122, 68, 4,173,181,150,162,238, 85,117,167,203, 44,189,137,188,255,254, 15, 86,155, 53, 11,219,184,153,205,183,250,249, +206,197,197,249, 98,239,206,197,217,193,124,103,215, 93,239,220,121,249,226,236,116,123,107,103,121,117,190, 53,223, 94,174,175, +158, 93, 45,133,133, 17, 41,245,165,140, 59,123,187, 96,245,234,106,244,136,205,102, 77,132,243, 52,171,181, 50,182,203, 40, 49, +161,123,168, 90,223,117, 15, 63,250,112,239,185,151, 56, 37, 83,211, 97, 53,174, 87, 87,103,167,199,199,199, 15, 30, 62,124,239, +163,251, 71,199,231,155, 90, 86,171,213, 71, 7,135,231,231, 87,223,248,242,155,255,245,119,126,247, 75,159,251,244,179,227,167, +239,125,248,116,137,120,121,126,118,114,118,126,244, 23, 23, 87, 71,231,183,247,182,230,243, 57, 64, 32,178,136,144,144, 89, 8, +231, 70,160, 16, 33,119, 79,204,102,142, 2,104,100, 94,195,175,129,163,238,200, 60, 5,242, 90, 75,226,154, 90,205,130, 0, 92, +171,181, 70, 49, 32, 82, 22,112,212, 98, 8,145, 58, 2, 0, 83,205, 57,213, 90, 27,247,209,204,155, 97,192, 32,138,198, 52,107, +107, 55,220,198, 83,181,246, 48, 65, 34,113,173, 17, 17, 34,161,134,130, 9,154,164, 59,232,186, 23,208,178,145,224,222,222, 10, +230,110,102, 57,165,118,105,189,158,120,212, 0,228,196,225, 22, 24, 17, 46,204, 22,142, 36, 68, 30,136,166,165,203,125, 0, 14, +195, 64, 4, 93,215, 67, 64,173, 37,144, 72,200,205,163,181,226,117, 20, 22, 70,241,176, 90, 74, 98, 65, 22,191,118,204, 16,160, +185,171, 25, 34,160, 80,173,154,115, 70, 9,100,210,162,110, 74,200, 0,102,109,169,214, 94, 9,136,110, 97, 86, 91,241,202, 3, + 32,220,220, 91,104,169, 21,214,219,219,179, 77,204, 90,116,131, 82,246, 98,225,154, 19,155,135,155, 19, 51, 35, 27,184,155,183, +208, 85,139, 68, 91, 53, 17,140, 32, 15, 39,100,103,104, 14, 5, 73,169,140, 5,145,160, 65,180, 2,129,176,235, 58, 53,213,170, + 1, 24,104, 4, 20, 14, 97,209,132, 24, 64,176, 92,143,227, 48, 60,119,123,191,253, 35, 34, 9,154, 75, 38, 8, 68,230,128, 32, + 11,243,218, 42,176,147,110, 8, 67,195, 19, 10, 2, 19,215,214,155,111,114,105, 45,181, 29,103,113, 26,211, 7, 49, 17,182,196, +145,179, 96,173,209,152,145,140,172,174,211,214, 23, 16,131,138,141, 12, 0,196, 30,198,142,210,177, 70,123,109,182,137, 55, 89, + 85, 12, 37,102,168, 32,159,250,228,107,175,191,246,170, 59,184,235,249,201,201,195,167, 79,159, 62, 59, 58, 60, 61,125,114,120, + 16,128,179, 89,191,179,181,115,251,230,205,155,251,251, 55,118,183,187,110,214,247,243, 60, 91,116,253, 98, 54, 95,244,125,151, +115,183, 29,139, 90,107, 25,107, 45,117,216,172,199, 97,117,177, 92, 51, 70,223,185, 16, 16, 7, 34,135,217,180,180,106,201,198, +235, 23,111,131, 88,127,220,166, 67, 64, 2, 7,164, 27, 59,187, 7,103,151,183,182,238, 76, 15,247,233, 97,110, 72,220, 10, 77, + 31,123,138,193, 3,184, 97, 53,166,230, 18,134, 55, 93, 77,227,227, 35, 53, 58, 54,121, 24,182,226, 56, 33, 32, 24, 52,163,192, + 20,247, 81, 0,138, 32, 2,183, 1,189,223, 44, 47, 63,120,112,255,197, 23, 63,241,245,183,191, 52, 84,107,252, 27,234,250,234, +216,177, 72,202,170, 22,181,130,123,212, 66,136,161, 69,182,246, 8, 28,153, 77,199, 50,174,186,249,108,184,186,248, 31,255,229, +255,250,181,175,190,253,220,115,183, 86, 21,246,238,220,209, 82,154,211, 5, 8, 33, 40, 40,127,250,205, 47,126,248,222, 59,155, +113, 68,132, 15,222,251,209,159,255,249,159,125,238,115,111, 94,158, 94,222,217,191,253,242,235,175,255,228,135,239,188,240,242, +171,227,229, 89,238,187, 86, 82,192,107, 5, 78,219, 51,187, 27, 73, 74,204,238,225, 90,128,176,108,198,220,231, 90, 85,152, 48, + 76,114,111, 69, 91, 58, 35,188,134, 75,115, 53, 72, 2, 17,166,212,153, 7, 32,220,185,245,252,171, 47,125, 98,184,121,227,163, +255,248, 67,136, 40, 99, 57,191, 56, 91,173,134, 97, 24, 95,190,181,143, 48, 44, 55, 60, 95,236,222,153,221,126,237,115, 63,181, + 94, 45,215,171,165, 72, 42, 87,199, 35, 0, 5, 18,145,214,225,233,211,135, 1,120,121,118, 52,155,111, 11,225,241,229, 37, 80, +234,115,214, 90,189,214,113, 24, 74, 25,102, 89,152, 98, 51, 12,101, 24, 61, 2,197,144,168,134, 7,184, 71,168,250, 98,158,255, +224, 63,253,246, 47,253,252,127, 50,142,155,171,243,227,156, 23,230, 49, 46, 47, 46, 46,206, 30,220,255,240,199, 31,222,127,122, +124,116,118,121, 53, 12,227,229,114,117,239,225,193,238,188,255, 31,254,139, 63,252,253, 95,255, 22, 99,252,232,135,239,228,221, +157,243,205,234,236,244, 98,179, 25,234,106,179,221,245, 55, 95,184,131, 68,104,237, 9, 12,205,139,134, 52,149,239,153, 80,161, + 97,202, 32,194, 19, 74,227, 16, 4, 2, 72, 96,147,127,186,123, 32, 17, 16,139,155, 19,132,134, 19, 2, 26, 96, 96,151,164,213, +154,104,194,120, 80,238,179, 71,148,106, 57,101, 36,175, 85, 53, 66,152, 28,192,195,147,100, 10, 12,110,136, 61,143, 8,100,116, + 11, 4,111,167,228,246, 6,183, 80, 22, 46,155,226, 49, 18,161, 32,183,248, 5,241,244, 97, 71, 64, 34,244, 0,183, 0,108, 69, + 89,144, 36, 13, 62,211,190, 92, 17,192,194,224,224,225, 49,201,206, 80,221, 39, 53, 12, 34, 6,164,156,195,194,180,144, 16, 33, +170,150,169, 46,200, 72, 72,196,228,228,196,220, 10,178,181, 86, 68, 17,142,143, 59,130,215, 74, 5, 0, 64, 55, 99,230,176,224, + 22,151, 0, 52,117, 12, 32,150,240,112, 11,164,212,242,120,216,122, 3, 83,216,218,107, 0, 79,188,231,105, 30,141, 33, 30, 74, +237,204, 30,224, 14, 44, 2, 96, 90, 75, 83, 71,140,163,166,204, 73,216, 2,204, 44, 8,115,154, 97,128, 90, 49,115, 66,194, 28, + 17,110,213,145,201, 27,183, 22, 57,204,212,131,169,193,103, 3, 60, 82,151,155,171, 36, 34,104,241,204,182,221, 0, 0, 32, 0, + 73, 68, 65, 84, 50,202, 74, 0, 6, 53, 87, 39,180,142,230,122, 51,246,130,146,164,140, 85, 36, 1,121,146,172,166,222,184, 49, +196, 68,232, 70,101, 28, 89, 4,145,219, 76, 79,152, 48, 0,208,167,248, 3,128, 59,154, 41,114,107, 48,112,184, 1, 97, 18, 81, + 13, 36,144, 44,181,148, 90, 42, 2, 16, 11, 0,154, 43, 76, 91,229, 8,119, 12, 3, 10, 78,169,170, 11, 34, 50,213,162,237, 95, +146,129, 29,161, 12, 42, 12, 17,228, 90, 74, 45,178,218,172, 33,188,185,235,182,119,246,126,234,230, 62,253,212, 23,163,234,217, +217,233,211,211,211,199,135,135, 79, 14, 15,239, 63,184, 79,156,111,236,237,221,222,223,219,223,219,219,221,221, 89, 44,182,182, + 22,219,253,108,187, 95, 44,250,190,207,125,223,229,156, 89,230,243,153,199,141, 90,107, 29,198,106,101, 24,149, 3, 50,103, 7, +191, 90, 93,172, 86,103,183,110,110, 45,114, 2, 39,119,143, 9, 67,214,232,208, 0,225,237,236, 82,107,204,102, 51, 59, 60, 42, + 22, 66,134, 32, 83, 76, 61, 38,127, 35, 4,120,212,169,199,132,129,147,174, 30, 24,169,145,239,169,149,189,175,219, 85,237, 95, + 18, 38, 0, 65,160, 67, 27, 11, 54, 88,205,148,173, 12, 0,242,196,226, 29, 94,158, 60, 59, 89,157,127,237, 27, 63,127,121,124, +190, 90,173,250,173,109, 27,174, 80,122, 40,235,192, 12,179,222,172, 2,184,121, 73,121,134, 44, 40, 57,172,230,174,115, 47, 4, + 62,174, 75,191,216, 22,240,127,243,111,254,213,106, 83,127,253,151,126, 97, 53,140,219,119,158,107,177, 82, 1, 12, 96,176, 64, + 68, 29,134,231, 94,122,249,147,159,250,236,225,163,251,125,206,167, 39, 71,175,190,246,250, 11, 47,188,248,253,239,126, 23, 2, + 95,255,244,107,183,246,111, 61,254,232,253,221,189,155,195,114, 53,219,222,134,107,174,231,100,129, 96, 10,183,220,207,145,194, + 55, 3, 48,219,104,121,214,139, 80, 25, 43, 1,200,108,166, 99, 9, 0, 2, 48,102,208, 26,227, 50, 80, 48,247,110,224, 58, 98, + 90, 16, 98,189,186, 40,235, 43, 52, 93, 23,221,212,130,128, 87,155,205,217,197,229,114,189,254,196,173,173,189, 25, 31, 45, 55, + 47, 60,255,234,222,206,222,209,211, 7,227,234,234,226,248,201,106,244,126,107,111,121,113, 36,253,182, 90,192,169,162,235,234, +242,196, 41,111,198,138,172, 8,113,190, 41,243,126,190, 25, 87, 73,186,182, 46, 41,101,116,243,198,111,185,113, 99,239,252,242, + 50,179, 64, 66,211, 2, 41, 47,175, 46, 95,253,196,243,255,252,143,254,209,215,190,246,181, 82,198,213,114, 57,172,151,195,106, +163, 58,158,159,157,188,255,193,253,247,238,221, 59, 62, 61, 27,138,110, 54,155,103,199,103,151,203,171,191,253,149, 47,252,139, +255,252, 15, 95,125,249,133,163,195, 67, 89,116, 31, 28, 60,125,107,127,175,223,217, 58,254,224, 1,215,122,107,123,209,212, 53, + 0,172, 48,148,177, 70, 56, 51, 7, 36,145, 68, 64, 14, 17,141, 78,218, 54, 94,129, 86,219, 22,167,169,201, 24, 17,192,241,122, +181,195, 85,107, 76,189, 15,180, 8,110,162, 68, 70,210, 9, 32, 64,128, 66,220,102, 45,185,133, 28,213, 88,146, 32, 71,184, 8, + 19,144,123, 88,120, 67,156,183, 20,159,169,122, 68, 0, 36,225,118,215,100, 98, 10,115, 85,225, 22,107, 15, 11, 71, 34, 78,226, + 30,200, 83, 58,182, 61, 18, 27, 86,144,166,181, 39,180, 90,109,251, 54, 17, 50, 0,154, 42, 8,119,185,175,117, 8,136,102,193, + 70,194, 68,201,205, 90,126, 25, 25,132, 69, 75, 37,118,206,217,195, 39, 22, 43, 0, 51,139,176,121,140,181, 50,145,187, 18,147, + 90, 48, 33, 34, 52, 68, 76,132, 33,114,171,156, 71, 56,181, 26, 57, 54,207, 66,152, 59, 18, 74,202, 77, 87,216,208,179, 44,210, +218,172, 77,120, 20, 0, 64, 70,200, 83, 67, 31,140,144, 66, 13, 9, 2, 27, 60,189, 76,238, 53, 68, 64, 16, 33,102,174, 85, 3, +144,152,186,220, 69,120, 41, 21, 66, 33, 16,168,173, 25, 0,192, 32, 60,145, 20,213, 64,119,109,127,210,169, 28,139,220,142,207, + 94,171, 33, 50,146, 55, 34,200,212,165, 20,214,162, 44,162,170,195,102,216,153,117,222,238,207,141,254,125,173,163, 64,132,148, + 68,171,185,153, 52,248, 59, 70, 51,116,154,153,185, 77,135, 50, 38, 43, 26, 4,194,164, 13,232,105,149, 17, 17, 88,189,245, 34, + 98,162,237, 2,185,155,155, 18,101, 68,134, 48,132,168, 85,153,200, 60, 56, 0, 57,132,177, 97, 87, 26,236, 63,144,180, 26, 81, + 36, 97,117, 51,213,148, 36, 89, 11,171, 2, 6,132, 69,128,147, 85, 67,221, 32,242, 98,123,231,141,253,189,183,222,124, 75, 16, +206,175, 46,238,127,240,193, 59,247,238,221,123,248,224,199,239,127,152,178,108, 47,182,110,221,216,219,219,221,219,223,219, 91, + 44, 22, 59,187,123,243,249, 34,247,115,150,148,243,108,190,216,162,157,157, 6,134,209,234,204,108, 14,227,176,119,244,172, 59, + 95, 46,215, 52,166,140, 61,113,110, 34, 87, 8,100, 66,240,150, 64,167,134, 4,148,188,183,179,181, 30,203,222, 34,181, 71, 54, + 34,181,137,121,248,245,147, 61, 0, 88,176,145, 44,209,137,200, 52, 38,136, 24, 65, 99,239, 33,183,174, 76,155, 18, 5, 0,145, + 91, 75, 72, 48, 95, 19,222, 9, 49, 16,173,129, 14,160,212,205,179,203,243, 87, 63,251, 26, 83,108,223,222,218, 44, 99,181,220, +204,102, 11, 18, 65, 76, 20,144,183,119,221, 85, 40,113,154, 5, 9,184,135, 43,138,232,184, 34,196, 97,216, 80,238, 82,146,195, +251,239,255,249, 95,189,255,135,191,255,123, 73, 88,187,158,187,174, 53,159,213, 29, 96,104, 50,132, 70, 87,250,242, 79,255,252, +255,252,131,239, 59,124,184,152,205, 36,119,247,239,189,127,181,186,250,241,251, 87,175,125,234,213,215,222,124,171,190, 99,194, +178,186,186, 76,243,121,106,189,187,192,112,100, 22,112,143,136,212,205, 81, 18,118,238, 99, 69, 34,166, 40, 99, 97, 65,192,208, +128, 8, 64,150,192, 64,107,230, 68,129,136,136, 66,210,215,113, 73,146,162,223,215,113, 24,175, 78, 49,236,108,189,118, 11,143, + 56, 59, 59,119,179, 27, 91,189,107,253,127,127,252,224,230,206,246,247,222,253, 32,103,153,117,249,253,143, 14,175,134,243,187, +119, 95, 38, 76,243,188, 72, 44, 8,176, 41,117,119,177,131,116, 98,102,139,237,155,106,163, 41, 93,172,135,138,148,146,128,133, +106,233,103,179,186,172,151,203, 37, 0,119, 73,246,119,118,181,120, 68,237,115, 62, 60, 58,234,186,254,183,126,249,231,254,232, + 59,127,255,149,215,222,216, 12,197,124, 29, 4,195,122, 88,175, 86,231,151,103, 31,220,255,232,222,253, 71,151,235, 85, 25,245, +248,226,236,236,244,252,246,141,253,127,254,157,223,253,157,223,248,213,205,102,253,215,127,245,221,221, 87, 94, 56,121,252,232, +240,228,100,118,255,193,187,239,188,255,226,205,221,173,221, 45, 55,107, 46, 60, 34, 24, 6, 93,111, 54,128, 48,235,250,156, 8, + 81, 80, 40, 98,154,194, 38,193,234,138,212, 26,111,112,109, 31,117,107,192,151,107, 89, 82,120, 16, 49,139,104,169, 16, 54, 26, +176,200, 44, 39, 3, 43, 69, 73, 48, 0,204,157, 68, 72,216, 84, 93, 3, 39, 61,186,229,190,183,170, 45,254,208,224, 33, 72, 40, + 76,238, 14,146,217,194,194,105, 50,190,131,183,133, 47,147,106,101,226,246, 8, 69,154,202, 38, 31,179,191,219,248, 8,152, 24, +201, 49, 8, 39, 94,147, 89,109,154, 73,119, 13, 13,100,132,208, 82,134, 86,250,103, 34, 4,110,169,237,191,185, 14,186,215, 90, +136,145, 19,155, 90, 4, 52, 57, 52, 49,185,251,176, 41, 44, 41,137,120, 4, 3,163,112, 47,160, 90, 39, 21, 90, 4, 17, 88,173, +125,206, 85,107, 75,240, 34, 37,104, 69, 19,226, 0,224,102,113, 14, 84,215,198, 37, 38,136, 10,128,156, 90,153,133, 24,181, 90, + 43,153,146, 16, 19, 91, 13, 35,107,121, 49, 55, 37,102, 66,210,170,146,152, 57,212,124,220, 12, 73, 36, 18, 3,248,176,222, 64, +227,163, 7, 49, 77, 90,206, 8,146, 28, 30, 80,213, 68,196,194, 68,184, 93,130,167, 67,143,169, 85,101, 17,145,220,116, 19, 17, + 32, 44, 85,171,154, 99, 4, 17, 3,194,106, 61,100,225,189,253,189,166, 44,132,152, 10, 55,140,172,104, 17, 81, 74, 37,162, 60, +235, 74,209,128, 72,196, 1,160,166,100, 33, 89,134, 90, 5, 49,108, 2,252,154, 58,128,103, 17, 55,115, 87, 2,106, 23,148, 0, + 5,228,118,188,104,151, 69, 0,114, 85, 55, 35,196, 44, 98,225, 57, 33, 73, 87,107, 69, 55,238,103,161,218, 86, 70,156,176, 95, +204, 54,101,116, 45,140, 72,125,102, 78, 56, 20,153,134,207, 77,164, 29,147, 26,140,154,135,195,108,117,121,238, 68, 89,228,173, + 47,124,241,203,111,127,101,181, 92, 30, 28, 30, 62, 60, 60, 58, 60, 60, 56,120,246,244,254,163, 71, 0,188,187,181,189,191,191, +123,247,230,222,214,206,238,206,214, 78,215,207,231, 59, 59,219,243,109,201, 57,229, 60,155,205, 49, 9, 33,206,102, 93,151,187, + 97, 24, 46, 47, 46,134,178,190, 24,171,219, 72,110, 34,209, 51, 37, 1, 73,146,120,234,145,162,199,238,206,206,209,197,250,230, +206,204,220,176,125,108, 91,179,116,242,138,180,145,186, 57, 76,182, 23,188,118,180, 54,247, 0,182,185, 26,112,184, 33, 18,160, + 18,101, 0, 2, 97,208,128, 54, 55,107,159,109,181,233,178, 11, 16,225,121,158, 94,125,227,213, 46,241,184, 41,148,120,177,213, + 93,148,203,177, 32,149,113,247,198,110,120, 3, 84,160,150,209,170, 82,219,254,154, 5, 49, 98,251, 90, 66, 55,235,125,117,245, +151,223,253,222,167, 63,253,249,183, 62,243,201,139,243,203, 59, 47,188,236, 86,218,211, 2,136,133, 59,183, 64, 68, 33,172,181, +236,222,218,255,202,215,126,246, 79,254,221,255,190,181, 88,228,156,250,126,254,226, 11, 47, 60,125,250,236,254, 7, 31,204,102, +139,155,119, 95,248,241,247,255,226,185,187, 47,143,235, 43, 33,226, 44, 13,111,108,181, 54,235,227,100,122, 84,215,170,121, 62, + 99,166, 90,215,161,225,140, 48, 86, 98, 4,114,171, 26,213,180, 42,231,140,109,195, 28, 53,165, 29, 78,253,120,254, 76, 55, 27, + 34,114,247,195,211, 51,243,152,119,233,242,234,162,140,195,211,211,139,139,229,234,108, 57, 84, 15, 64, 94, 46, 47,199,113,204, +249,131, 62,119,221, 7,143, 5, 2, 48, 4,202,214,246,222,238,214,222,140,160, 79, 98, 97, 12, 39, 93, 39, 15,151,171, 71,207, + 78,247,111,221, 14,117, 6,154, 44,230,200,225,136, 8,203,245,230,206,205,189,157,237,217,217,121, 57, 57, 63,187,123,235,230, +111,127,251, 91,191,247,155,191, 57,223,217, 91, 13,155,208, 90,198, 90, 54,195,197,213,213,225,225,147,251,143, 14, 14,143, 79, +150,155,245,114,189,121,244,248,233,114,189,252,214,215,191,250, 79,254,224,119,222,120,253,211, 79, 30,126,180, 28, 47,159,156, + 28, 63,187,186, 24, 71, 37,247,227,123, 15, 95,123,110,191,235,187,112, 96, 78, 65,145, 36, 87,171,110,134, 64,136, 18, 64, 72, + 41, 0,107, 41,237,219,154,128, 75,177,182,196, 67,196,106,198,136,128,232, 62, 65,247, 2,177,152, 39, 64, 74,108, 26, 94, 11, + 11,187, 17, 35, 8,163,154, 33, 97,238, 82, 76,149,121,105,218,131, 8, 32,166,208, 42, 50, 11, 36,173, 10,238,128,236, 97, 77, + 11,134,209, 50,231,192, 14,197, 93, 36, 5, 24, 18, 69, 91, 80,121, 4, 4, 17, 86,171, 89, 50,226,199,122,163, 96, 36, 15,107, + 73, 52, 18, 1, 36, 66,200, 68, 49,153,206,130, 37, 69,184,107,109,174,204,128,104, 49, 33, 68, 76,194, 16,164,166, 97, 78,109, + 80,133,100,234,136,200,137,220,204,140,194,189,105,155,136,200,204,144,128, 83, 2,143, 0,247,176,156,102, 13,148,220,120, 31, +161,214,254,226, 28,172, 81, 39,195,220,209,136,164, 81, 41, 1,160,203, 57, 92, 77, 43, 0,112,227,106, 4,168,161,176, 4,161, + 59, 32, 57, 70,251,217, 0, 8,219, 16, 99,226, 25,168, 82, 91, 48,154, 65,162,156, 19, 49,169, 42, 34, 72, 74,128, 16, 85, 53, +130,137, 63,214,117, 70, 0,132, 83,151,201,195, 45,188, 22, 64, 48, 0, 17, 65,156,222,172, 16,232, 86, 16, 33, 9, 3, 35,128, +154,129,228,228,181,182,222, 90,179, 84, 71,168, 41, 12,235,205,206,206, 28,136,155,246,190,129,101,205,161,186, 97, 43,102,122, + 4, 56, 1, 9,139,187,186, 59, 18,117, 93,246,170, 85, 45,170, 66, 22,143, 64, 22, 36,119,119, 78,226,106,215, 22, 38,182, 82, + 72, 18, 64,154,196,209, 0, 72,216,198,170,109,154, 10,230,230, 83,255,174,150,129,137, 81, 18, 52,129,181,131,100, 6,193,106, + 74,216,186,244,198,141,232,145, 89, 32, 90,191,184, 97, 35, 39,149, 93, 0, 16, 55, 38, 41, 50,160,123, 12,155,245, 56, 34, 51, +191,244,194,139, 47,191,252,178,149, 58,214,122,185,188,122,252,228,240,222,131,199, 31,222,255,240,157,247,116,103,107,251,206, +237,155,183,247,110,108,109,111,221,216,219,221,221,221,159, 47,182, 23, 91,187,243,237,173,190,235,171,142, 14,150,102,249,134, +220, 80,157,107, 51, 23,140,101, 28,135, 85,173,161,234,235, 26,166,130,206, 76,139,153,206,146, 92, 93, 94,192, 75, 55,187,196, +222, 90,179,166,128,224,244,255,115,103, 67,203, 89, 57, 4, 5, 70,251, 72, 53, 97,103, 88, 0,122,152,145, 72, 75,212, 0, 50, +184,181, 69,111,139,243, 52,116, 42, 10,121,131,191, 19, 6, 64,206, 25, 49,180, 86,108,188, 10,211,221, 27, 59,231,103,231,203, +139,186,127,247, 57, 34, 78, 76,225, 96,166, 77, 65, 99,170,102, 99,238, 59, 70, 30,215,155, 60,159, 11,243,241,225,193,159,191, +243,254, 63,250,131,191,123,124,248,228,246,167,222,252,216, 87,235,227,128,130, 22, 53,204, 56, 11, 10,133,177,187,126,241,171, + 95,255,193,119,255,114,117,117,177,179,179,187,189,179,219,160,158,143,158, 60,189,115,243,254,141, 23, 63,201, 36,253,246,118, + 45,235,205,122,185,197, 55, 90,125,105,106, 2, 3,165,173,173,112,133, 90,242, 44,179,112, 45,163,135, 77,145, 85, 66, 36,114, + 51,175,213,106,109,178,152,230,220,212,170, 72,168,171, 11,168,107, 2,179,205,250,236, 98,121,190,222,188,180, 63,103,240,139, +171,101, 41,117, 40,234,238,235,205,122, 44,155,253,157,253,190,239,198, 90,170, 57,150,178, 30, 70, 11, 55, 83, 70,196,179, 21, +211,179, 81, 71,114,220,217,158,119,210,213,186, 73,156, 66,100,189, 90,237,236,237,113,224,184, 30, 55,101,221,229, 57,241,170, +140,163,131,175, 86,155,139,245, 82,178,124,243,203, 95,255,245, 95,253,246,167, 94,253, 84, 32,173,214,203,178, 89,175,150,203, +243,211,147,229,106,245,224,201,163, 15, 31, 60,185,184,186, 28, 85, 79,207,206, 31, 60, 57,248,220,203, 47,255,195,223,249,199, + 63,255,245,159, 6,175,167, 87,167, 31, 61,123,184,152,245,119, 95,121,233,199, 63,120,119, 60, 95,110,207,186,221, 69,215, 82, + 98, 41,229, 73, 64, 44,109,188, 77,205,232, 38,146,212,172,225, 94, 5, 81,205, 21,221,193, 1,200, 44, 48, 65,151, 72,181, 77, + 97,128, 36,143, 99, 33,114, 97,108, 53, 91, 33,242,128, 8,231, 46,145, 69, 45,222,205, 16, 35,128, 5, 29,136, 34,220, 34, 64, +114,106,246,177,212,119,166, 58,225,199,144,152, 24, 3, 61,204,219, 99, 17,128,136,172, 5, 35, 29, 16,209,109, 66, 86, 33,120, + 85, 35, 71, 17,153,212,193, 24,102, 14,132,238,134,136, 30, 17,224,140,210,192, 80,118,189,143,108,199,160, 54,196, 3, 68, 7, +100, 22, 64, 96, 78, 17,230,230, 30, 22, 1, 36,140, 17,136, 17, 4,196, 28, 22,174,214,224, 78,204,137,137, 17, 67,205, 89, 24, + 1, 61,188, 53,182,144,219,253, 47, 8, 17, 5,205, 60,245, 73,213, 16,177,239,250, 82,149,164,253,166,212,166, 31,196,130,142, + 90, 10,113, 16, 49, 64, 48,114, 49, 3, 0, 73,140, 66, 0,200,102, 22,232, 22,204,212,242, 69,209,214, 27,173, 69, 15,228, 17, + 44,220,254,230,171, 57,121,211,218,229,112,141,136, 36, 18,234,225,222, 72,136, 44, 66,136, 22, 14, 22,225,218, 36,165, 45,150, + 29, 17, 76, 4,130, 90, 21,192,152,164,173,208,107,177, 89,159,152,195,106,109,213,178, 78,196,205,212,205, 35,170, 6, 49,205, +231, 91,129,228, 90, 3, 81,136, 85, 77,213,136,200, 32, 56,204, 29, 4, 25,168,177,145, 49, 33, 50, 75, 85,115, 15,130,144, 46, + 71, 4,185,223,253,212, 11, 44,242,240,135,239, 34,112,238, 58,173, 58,234, 72,225,148, 90,118, 66,152,167, 32,141,183,215, 72, +147,208,133, 99, 98, 17,114,211, 8,109, 92, 68, 11, 71, 69,102, 82,139, 58, 22,172,200,125, 70, 72, 24, 5, 52,144, 73, 82, 39, +162, 2, 24, 0,196,137,221,212,194, 1, 26, 77,173, 13, 58, 40, 38,216, 98, 4, 33, 96, 20,173, 4, 8,166,132,152,152,111,238, +221,184,181,191,255,246,151,127,202, 34, 78, 14, 15,254,226,175,127,244,193,131, 71,239,254,228, 39,187,219,187,119,239,220,190, +125,243,230,173,253,253,155,251,183,182,182,182,155,116,116,179, 90,113,151,152, 18, 19,139,116,121, 54,227,109, 42,195,198, 27, + 10, 24, 92,213,203,184, 41,165,174, 52,134, 0,173,254,215,239, 61,125,233,185, 61,230,152,117, 73,136, 82, 78,213, 44,212,112, +194,151, 5,160,180, 91,103, 76,246, 85, 0,128,152,100,193, 48,177,114,218,246,164,148,134, 90, 68, 73,237,118,118,109,118, 37, + 98,135, 41, 47,143,109,141,127,253, 6,112, 8, 15,192,253,219,123,103,112, 57, 44, 87, 55,238, 62, 79, 93,167,181,216,122, 21, + 1,198, 2,225, 41,247, 2, 94, 86, 35, 64,128, 43,172, 87,255,199,127,248,179, 55, 94,251,244,110, 39,105,107, 39,207,231, 54, +142, 32, 30, 1,216, 24,123,213,165,203,212,117, 94,171,107, 9,151,188,216,250,185,111,254,242,191,253,223,254,101, 68, 44,102, + 51,130, 4, 30,199,199,103,207,142,207,186,174,191,115,231,238,102,121,190,127,247,197,243,103, 79,106, 29, 83,154, 11,161, 7, + 33, 88, 4,116, 41,187, 69,235, 5,149,205,224, 30, 1,132,196,174,163,164, 4, 16,182, 41,170,149,187,121, 68,227, 55,145, 87, + 29,139, 42, 0,155,233,234,170, 92,157, 46,175,174,142, 47, 47,239,238,228,203,205,112,112, 49, 46,178, 97,132,154, 69,200,214, +108,203, 93, 75,217,172,198, 13, 98,131,154, 49,162, 33,128,180, 96, 9,162,170, 9, 97,215, 45, 82,234, 0,184, 4,123, 4, 3, + 28, 28, 31,207, 22,243,234,113,113,177, 52,119, 89,208,238,214,214,145,214,176, 56,190,188,204, 2,255,229,223,251,206, 79,191, +253,211,105, 62, 27,198,106, 58,142,195,112,121,126,126,177,188,124,118,116,244,209,227,199,143, 15,159,142, 69, 55,227,240,228, +240,217,249,229,229,175,125,253,237,255,246,191,250, 39,139,197,236,248,209, 3,185,177,251,222, 79,126,116,254,244,216,144, 30, +221,127,188, 55,239,110,238, 47,192, 9,130, 57,152, 56, 85,179,148,216, 53,170,142, 0, 48,155,247,195,166, 8,167,174, 79,227, +168,140, 2,204, 69, 45, 34, 28, 12,129,137, 33, 12,192,124,163, 38,137, 19,209, 88,172,216, 64, 76,137,147,155, 87,173, 41,139, +185, 49,145, 16,153, 6, 32,228, 76, 86,148, 37, 97, 43,103,134, 91, 53,164,112,165, 6, 38, 27,139, 50,177,224,199,210, 75, 10, +159,218,249, 85, 61, 53,159, 42,130, 16,170,151,143,101,146,197,172, 99, 70, 48,206,220,112, 20,141, 61,197, 8, 78, 1, 6,238, + 70, 36, 30,212,102,192,230,129,196, 44,201,106,153,200, 99,209, 20,217, 72,211,225,130, 81, 48,106,212,170, 57,119, 36, 92, 75, +117,117,206,210, 4, 74,142, 68, 64, 0, 42,196, 22, 54,106, 21, 78, 57,101, 11,131,118,117, 8, 8, 64,213,202,228, 0,168,224, + 8,200, 34,106,174,170, 76, 12,204,185, 75,170, 10,140,140, 12,224,161,230, 17, 30,209,207,186, 82,107,132,181,242,203,117,180, + 55,216, 80,193,155,218, 2, 34,204,195,195, 24, 73, 48,134,106,194,212,245, 93, 84, 5, 64, 48,168,161, 0,192,220, 0,159, 56, +169,158, 60,180,170, 2, 8,177, 67, 16, 51, 18, 34,178, 87,115, 31, 1, 0,157, 89,196,205, 82,226, 82,109,226, 4, 64, 8, 73, +245, 54,167,165,156,121, 24, 43,181, 59, 60, 1, 64,168,121,123, 46, 64,232, 82,199, 44,132,194, 76, 20,220,149, 82, 55,227,144, + 82,146,196, 13,126, 40,189, 80,117, 11,143,106, 57,119,125,238,116,172,131, 22, 38,206, 89, 34,124,189, 30,137, 41, 16, 30,127, +120,191, 23,161,148,193,221, 33,136, 69,196,220, 3,129,131,130,165,249, 91, 2,194,152,196, 28,204,106, 74, 12,152,195, 21,193, +221, 13,153,194,216, 74, 77,137, 83,206, 36, 51,201,166,227, 8, 68, 86,181, 73,138, 56,103, 13,199, 90,221, 84,166,171, 74,139, +163, 52,101, 7, 6, 77,171, 18, 14,155, 52,122, 13, 77, 76, 56, 5,162,130, 28,173,249,226,193,139, 51,209,243,159,120,229,239, +127,254,243,155,171,213,193,193,225, 15,222,251,201,227, 39,135, 63,250,241,113, 55,155,221,190,181,127,235,198, 94,159,123, 17, + 6, 15,206,156, 57,167,156, 89, 40,167,190,239,186, 82, 6,102,201,179,190,203,189,164,110,214,237,152, 27, 6,167,174, 95, 36, +254,254, 59, 63,122,254,149,207, 93,156, 31,217,133, 74,194, 25,215, 89, 71,204,145, 48, 56, 17, 19, 35, 11,178,128,107, 27, 74, + 67, 56,254,141,147,121,170,191, 94, 11,229,155,153, 47, 32, 28, 12,131, 63, 94, 80,125, 44, 99,253, 88,219,212,224,150,141,125, +140, 8, 70,152,246,110,237,172, 46,175,250,113,191, 7, 53,117,236,102, 62, 86, 2,200,139, 45, 64, 40,171,149,169,230, 69, 15, +227,248,195, 15, 63,248,241, 71, 79,255,187,127,250, 71, 96,155,173,219,207, 1, 0,205, 22,161,170,227, 70,114,135,129,146,152, + 51,135, 86,175, 5,212, 33,131,151,241,179, 95,252,210, 79,126,252,131,251,239,191,187,183,187,183,115,163,159,197,226,230,173, +155, 63,250,240,209,243,207,221,186,251,210, 43, 63,121,247, 7, 22, 88,199, 77, 23, 36, 93,103,193, 77,208,202,185,199,196, 81, + 43,245,185, 86,211, 90, 19, 55,147, 67,112, 74,200,232, 6,152, 58, 2, 4,175, 36, 25,194,189,140,212, 39, 36, 28,151, 39,164, + 21,213,204,244,100,181, 58,175,155, 71, 39,203,117, 81, 2, 90,143,165, 29,211,170,171,134,118, 73, 54,227,102, 24,107,223,145, + 16, 71, 3,248, 55, 94, 76, 52, 37,189, 33, 73,128, 95, 46, 47,158,191,251,252,214,238,236,234,236, 18, 2,186, 46, 31, 62,125, +186,187,189,131,204, 89, 4, 0, 5, 35,137, 96,192, 87,223,252,220,239,255,246,111,126,250,211,159,221, 84,173, 69,135,245,229, +106,181,188,184,184,188,184,188,120,250,236,248,222,227,135, 71,167,103,165,214,179,243,203,131,163,227,151,239,220,250, 23,223, +249, 59,191,250,183,127,225,106,121,249,244,209,209,209,201,209,201, 7, 63, 57, 61, 57, 73, 57,157, 61, 61,251,228,237, 61, 78, + 2,208,160,193,164, 17, 96,202,196, 67,169, 18, 0, 44, 76, 36,192,214, 49, 33, 16,230,110,214,226, 28,181, 17,193,218,103,132, +130,140,176,186,139, 16, 35, 13,165,122, 88, 34, 1,162,106, 21, 9,165, 19, 51,203, 57,187,195,104,158, 83,134,104, 49, 92, 2, + 32, 68,114,112,195, 9, 54,233, 17,204, 20,128, 41,101, 68, 80,171, 44, 66,128,230,138,212,214,134, 72, 20,141, 92, 99,127, 19, + 18,107,107, 94, 0,119, 72,148,187,220,254, 3, 70, 0,147,155, 25,128, 0, 19, 33, 80,134,128, 68,162, 81, 16,185, 37,193,234, + 56,182, 23, 68, 76,104, 39, 4,112,102,102, 18, 96,172, 99, 37, 4, 97,246,176, 80, 64, 18, 20, 53, 83,240, 32, 97, 97, 70,162, + 48,240,112, 68, 74, 66,136,164,174,205,233, 12, 0,106,218, 46,132,225, 78, 44, 45,243,230, 54, 5, 46, 25, 73, 93,175, 19, 58, + 68,192, 36,162,234,222,132, 21,102, 56,121, 91,249,122,140,132, 0, 96, 97, 13, 14,234,224,129, 1, 26,125,238, 12,221,212,115, + 6, 8,172, 85,115, 74,165, 20, 85, 37,102, 17, 17, 34, 64,172,230,140, 1,196,109,219, 44, 14, 0,209, 94, 27,181, 84, 4,243, +176,246,107, 39, 12, 58, 73,173, 26,230,212, 40, 88,129,155,162, 2,152,103, 89,205,193,157, 24,193,129, 32, 2,168,170, 49,145, + 79,216, 1,216, 44, 55, 55,118, 23,204,172,234,102, 42, 36,193,141,108, 10,204, 40,194,141,230,201,211,211,194,181,186,154,138, + 16, 39, 52,117,119, 72, 45, 48, 30,193,129, 85,141, 19,154, 6,104, 32, 43,210,199,231,105,176, 97,240, 48, 96,102, 18,117, 35, +164,217,124, 94, 84, 33,148, 16, 16, 73,186,121,181,130,228,169,239, 70, 51, 93,111, 94,253,210, 27,251,207,223,253,238,255,249, + 39,104,158, 82,146,121, 86, 3,211, 74, 22,156,137,145,197,205,154, 34,163,197,173,166,181,245, 4, 48,177,214,161,104, 99, 65, + 64, 68, 20, 36,112, 85, 50,196, 32, 2, 35, 36, 70, 52,192,113, 24,199, 77, 33,194,231,158,127,241,165, 79,188, 88,198,114,114, +122,246,228,233,211,131,195,227, 15,239,223, 91, 94,173, 3,209,212,187, 62,101,233,182, 23,179,217,172,159,117,185,207,157,122, +205,185,155,117, 93,223,245, 41,231,197, 98,171,235,103, 41,165, 78,251,217,238,238,130,134,177,172,238, 62,119,171,150,106, 14, +238, 49, 88,213,162,168, 22,232, 68,214,201,152,197, 18, 55,236,160,119, 89, 8,208,153, 1, 40, 76,161, 21, 51,176,237, 92, 38, + 67,247, 20,218,105,101, 22, 71,196, 6,135,167,201, 57,213, 76,197,209,118, 85, 19, 92,222,221, 24,169,159,243,229,197,129,205, +110,246, 89,154, 13, 12,137, 16, 65,199, 82,135, 65, 50,187,169,149,242,239,255,236, 47,127,235, 91,191,216, 17,224,214, 45,206, +226,225, 28, 97, 22,156,178, 71, 32, 17,162, 51, 83,217, 12, 0,212,204, 39,110, 6,179,217, 55,190,249, 43, 7,143, 31,157,157, +156,230,174,239,230,243,253, 91,183,206, 79, 47,222,187,247,168,159,239, 60,247,194,107,227,250, 18,115,223, 37,169,195,166,159, +111,181,197, 95,238,103, 4,224,141,139, 82, 53,207,250,178, 92,153,123,202, 61, 37, 2,199,240,226,174,141, 35, 1, 86, 0,133, +187,158,136,234,234, 98,214,239,102, 44,207, 30,189,255, 31,255,234, 47, 78,158, 29,212,193,138,122, 22, 54,243, 82,170,105,117, +247,205,102, 19,225,170,176, 90,109,152, 37,161, 8,178,130, 93, 51,223, 8, 16, 24,201, 92,203, 88, 35,135, 87,187,188, 90,222, +220,221,229, 46,103,150,243,213, 57,114, 90,173,214, 59, 91, 11, 34, 4,132,243,139,139, 79,220,189,253,171,191,248,139, 63,247, + 51, 63,179,216,219, 91, 13,213,117, 28, 87,171,211,211,243,147,211,163,163,163,163, 71,135, 79, 15,158, 29, 45,203,102,121,181, + 57,124,118, 60, 79,244,143,127,227, 91,191,253,173,111, 62,119,247,206,106,220, 60, 62,124,188, 90,173,118,110,239,159,141,171, +139,139,203,253,173,173,231,111,237,153, 55,224, 31,179,164,218,194, 15, 76,132,204, 64, 44, 20, 4,110,128, 14, 73, 4, 9,153, +209,180, 9,104,168, 61,203, 8, 41,154,166,163,217,219, 61, 70,173, 0,144, 56,199, 52,183, 67, 83,167, 36, 76,185,157,236, 82, +146, 70,142, 35,230,182,229, 84, 53, 22,102,108,230, 58,108, 19,237,118,132, 6,130, 76,217,220, 45, 76,136, 13,128,147, 68, 56, + 5, 34,195, 68, 41, 17, 66,164, 90,148, 17,176,237, 75,173, 81,158, 16, 61,220,131,124,194, 44,169, 25, 3, 52,137,143,161, 17, + 9, 37, 10,245,136, 72,179,236, 30,109,211,192, 16, 0, 65,169, 39,183,106, 21, 42, 0,227,244, 46,158, 2,141, 14, 24, 66, 12, + 12, 48,181,187,201, 16,174,191, 21,220, 82, 12,204, 84,171,182, 71,124,219,115,181, 71,252,116, 36, 34, 36, 76,230, 90, 93, 17, +152, 5, 29,137, 17,181, 22,119,134,107,211,189, 55, 43, 20, 77,197,174,230, 75, 79, 36,214, 96,133, 62,153, 70,130,162,122,243, +170, 71,132, 55, 56,173,181,249,123,226,150, 43, 47,238,204,200, 44,225, 26, 30, 72,228, 30,204, 65,204,230,129,225, 34,132, 72, + 32, 93,216, 4, 67,199,160, 8, 35,188, 14, 81, 67, 16, 96, 43,231,171,218, 4,190, 13,115, 12, 11, 68,247,182,150, 99, 70, 0, + 58,187,220, 36,162,174,235,181,106,132, 39,102,107, 2,222, 52,213, 43,193, 45, 48, 35, 55,234, 57,185, 59, 51, 19,246,238, 21, + 12, 24, 9,201,205,129, 24,219, 93, 6, 17,189, 6, 17, 71,139,224,178, 56,152,150, 98,126,157,141, 5, 12,128, 78, 56, 64,204, +125, 98, 73,133, 99,132,129, 17,146, 19,142,170, 30,150, 83,122,246,225,253,147, 71, 7,204,137, 48,132,217,204,175,129,140, 81, +138, 85,171,210,106,205, 96,147, 37, 21,131, 3,204,189, 73,174, 48,194, 90, 83, 20,185,201,117, 35, 12,208,104,226, 97, 92,179, + 80, 16, 3, 40,181,183,229,122, 40,232, 6,164,219,187,219,111,238,111,127,254, 51,111, 12,155,245,147,195,103,239,221,187,255, +224,225,225, 48,212,141,175, 62,252,232, 98, 61,214, 89,215,245,179,217, 98,150,183,183,118,102, 93,154,167,196, 73,102, 57,179, +200,172,203,125,215,109,237,236, 16,203,131,119,255, 58, 94,126, 49, 73,215,205,103,125,206, 44, 11,230,228, 78, 85,199, 90,134, +106,174, 21,116,212, 50,174,136,160, 23, 22,162,190,163,204,152, 36,229, 89,110, 86, 39,243,104,167,120,192, 73,224,228,102,225, + 64,130, 72, 50, 65,239,133,145, 57, 84,167, 5, 45, 18,181,249, 76, 64, 0, 26, 4, 49, 39,176,229,234, 36, 98,191,159,205, 16, +212,172,184,226,230,236, 24,137,136, 18,154,191,247,193, 7, 55,111,221,253,220,171, 47, 14, 14, 55,118,118,128,201,203,104,170, +224,150,182,182,235,122,128, 0, 72,172,197, 0,197,235,200, 93, 10, 85,202, 89,199,113,190,187,255, 51,223,248,246,255,245,239, +254,245,238,122, 57,159,207,103,179,249,157, 59,183, 14,158, 28, 92, 92, 94,221,217,190,177,253,226, 75,239,191,243,215, 71, 79, + 55,251, 55,246,187,217, 28,145,180, 90,238,103,237, 66, 85,215, 99, 16, 67,128, 90,149,214, 19,170, 21,101, 22, 86,180, 42, 17, + 7,102, 4,197, 40, 72, 93, 0, 2,240,162,199,135,247,238, 95, 46, 55,159,124,229,141,123,239,126,240,222,211,243,170,214,119, +226,230,227,160, 0, 10,129,163, 21,115,219, 84,115,143,174, 99, 34,116,240, 54,144,253,216,110,232,104,238, 86, 74, 73,153, 34, +193,106,179,218,219,217,186,177,179,253,209,227,199,165,150, 27,219,249,114,189, 82,173, 93, 78, 26,240,183,190,250,149, 95,255, +149, 95,185,251,226,203,152,186, 81,171,151,241,242,226,228,217,211,195,139,243,139,123, 15, 31, 63, 60, 60,184, 92,175,199,205, +120,124,113,126,122,118,246, 51,111,126,230,159,254,189,191,243,250,235,159,124,250,248,241,179,243,227,167,199, 71, 79, 15,159, + 84,139, 15, 31, 63, 30,206, 47, 94,220,219, 19,193,106, 77,248,206, 0, 68,204,110,181,170, 39,136, 32,112,140,106, 53,129, 68, +132, 54,112,138, 75,245,170,225,137,184,250,164,225,109,219,251, 8, 48,247, 54,232, 22, 70,117, 84,183, 44,211, 5,128,169, 57, +150,188,201,225, 3,192, 28, 16,155,100,110,202,103, 77, 12, 3,139, 32, 38, 33, 55, 3, 8, 73,115,196,104,143, 72, 4,170,102, +109,215, 76, 68, 78, 17,134,102,202, 60, 53, 21, 25, 9, 66,193,129,137,107,107,101, 67,106,228, 27,245, 32,188, 14, 77,185, 59, + 64,187,219, 3, 66,115,206, 51,160,153,133,134, 36, 49, 15,102, 10,247,208, 82,219,232,156,201,195,195, 20, 49, 1, 98, 68, 37, +226,148,146,106,128,187,187, 19,146,187,182,200, 60,132, 53, 37,125, 68, 12,155,145,136,152,209, 17,213,131,176,229,183,128,112, +162,152,149, 82,163,245,210,133, 60, 90, 35,131,186,249,124,216, 12,224, 70, 41,133,163,187,195,228, 93,165,192,105,117,105,208, + 42,160, 22,166, 36, 82,170, 9, 11,145,149, 98, 45,224, 4, 68,165, 20,170, 53,119, 51, 51, 43,181, 50, 33, 96,104, 13, 78,216, + 18, 1, 34, 9,204, 93,139,214, 98, 0, 34, 12,225,192,142,206,204, 98, 94, 85, 75,151,122,132,164,132,101,181, 38, 7,234, 51, + 24, 88, 53,184,174, 9,198,181, 56, 98,146,133, 97, 3,253, 7, 37, 89,111, 54,115,145,246, 65, 87, 32,119,240,240,148,147,131, +123,141,128,202,146,137,160, 86, 15, 83,226,132,129, 97, 17,160,156,196,171,171,150,148, 83,206, 84,213,109,116, 64,151,148, 32, + 72, 18, 15, 67,105,153, 34, 51, 15, 3, 17,142,166, 42,236,147,105,140,234, 18, 35,176,180,224,110,235,233,168,106, 78, 2,196, + 18,225,142, 26,161,171, 85,167, 58,159,207,198, 90,212, 13,192, 17,217, 61, 26,124, 8, 34,164,189, 1, 39,215, 40,178,123,193, + 86,160,107,166,211, 9, 86,196,205,116, 2,222,198, 53, 96, 30, 19,103,191,185, 82,153, 3, 12,145, 29,140, 9,131, 32, 28,195, + 77, 29, 2, 48,119,253, 27,111,124,234,173,207,125, 54,220, 3, 57, 76,135, 58, 46, 47,175,142,143,143,190,247,195,247, 78,175, +150, 23, 39, 71, 79,170, 5, 98, 22,206, 41,111,117,253,108,158,179,164, 62,119, 66, 56,142,155,163,147,227,121,223,205,250,249, +246,246,214, 98, 62,159, 47,102,210,207,102,253, 98,222,207, 89,208,157,220,221,108,199,221,135, 97,181, 44,195,229,102, 84,117, +198, 16,194,157,237,217,172, 75,179,140,132, 70,200,222, 18,148,238, 83,234,217, 20, 1,130, 82, 32,176, 65, 52, 35,253,132, 44, +110, 41, 57, 71,247, 0, 22, 9, 67, 68,230, 14, 99,189, 60,170,101, 49,223,218,235,250,206, 76, 65,136,220, 49, 32,172,188,123, +239,241,219, 95,120,243,114,185,185,243,202, 93,226, 20,227,136,220,185, 22, 78,104,195, 8, 30,196,136, 68,225,238,101,131,146, + 17, 9, 4, 56,165,178, 94, 91,209,207,127,233,203,239,191,251,206,213,197,233,214,246,216,205,230,139,237, 45, 73,114,112,248, +108,190,152,229,249,203,187, 55,247, 22,139,237,237,221,221,243,147,227,189,253, 91, 64,212,205,183,136,185,140, 67, 25,171,100, +168,234,169,155, 33,167,105,156,105,106, 70, 34,105, 42, 10,184, 55,145, 91,148,186, 89,158,253,248,135,127,101, 21,119, 16, 25, +203,170,216, 70, 21, 32,220,161,186, 5, 86, 51, 47,174,153,114,241,113, 84,117, 12,166, 41,157,221,216, 62, 68,204,141,182, 31, + 24, 17,163,105, 42,214,247,157, 99,156,158,159,119, 41, 45,151,203,220,117, 0,112, 99,103, 71,181,222,220,223,255,173, 95,254, +230,207,253,220, 47,240,108,238, 0, 97,186, 57, 63, 59, 57, 61,122,250,228,201,211,227,147,135, 7, 7, 7,199, 39, 67, 45, 23, + 23,151,231,231,231, 59,139,197, 63,251,221,223,248,253,223,252,118, 32, 28, 30, 60, 57, 56, 61, 26, 30,172, 14,143, 78,210, 44, + 63,248,240,225,237,237,173,231,246,246,192,221,108,250, 54, 34, 16, 35, 19,165, 46, 49, 98,193,169,160,131, 0, 82, 91,253,199, +117, 44, 35, 56,244,253, 44,115,170,230,204, 18,211,194, 61, 40,144, 17, 71, 83,102, 38,160, 0, 76, 66,194,108, 26,216, 86, 67, + 13,161,139,220, 24, 16,173, 62,223,110, 0,146,164,117,112,154, 20, 87,178, 32,224, 88,106, 27, 37,184,106, 32,182,200,180, 70, + 13, 15, 72,132, 68,225,225,225, 16,134,132,192,152, 92, 12, 12, 99,106,194, 4, 64, 22,102,148, 82, 11,114,195,156, 1,130,121, + 40, 33, 7, 53,250, 6, 6,122,155,195,153,182, 80, 21,166, 44, 14,144,132,221,181, 29,140, 91,162,188,233, 67, 72, 90, 39,222, + 26,245, 37, 0, 73, 2, 49,225, 88,218,253,195, 60, 8, 0, 89, 88,146,169,181, 82, 28, 65,195,247, 33, 51,133, 53,247, 20, 96, +128, 7,148, 65, 69, 24,144, 17,130,136, 75, 25, 0,128, 40,141, 99, 1, 7, 32, 49,117, 66, 64, 32,202,130, 13,115, 73,140, 12, +161,225, 16, 2, 76,194, 14,174,102, 89,208, 35,188, 56, 2, 36,145,170,166,101,204, 57, 35,164,198, 16,224,166,232,113, 64, 66, +119, 13, 39, 73,201, 76,213,140, 34,152,137, 48,170, 27, 19, 51, 9, 18,152, 25, 6, 18,177,185,107, 85,194,232,186,206, 74, 13, +179, 6, 49, 33,132,182,137,109,150, 56, 15, 96, 12, 32, 8, 70, 14, 68,228,203,229,154,195,183,119, 23,215, 77,120, 16,102,180, +134,197, 53, 66, 68, 76,102,166,106, 72,148, 82, 86,179, 90, 53,119,137,185,115, 83, 34,234,251, 92,171,154, 83, 0,230, 46, 69, +132,171,135,107, 13, 77, 89,180,170,106, 77,157,184,116,227,102,157,147, 80, 78,110,193,196,104, 17, 68,156, 68,171,130,143,129, + 40,148, 33,193, 20,192,207,157, 14,163,160, 2, 50, 4, 14,227, 38, 39, 49,160, 82,107, 67,236,182,119,219, 84,234,111, 76,178, + 8,244, 80, 36,142,104, 81,241,143, 81,162,237, 78, 51,205,178,221,162, 21,219, 62, 38,179, 83,187,255, 56, 6, 6,181, 41, 7, +196,199, 35,240,118, 29, 44, 99, 25,198,145,129, 26, 79, 66,132,110,220,216,221,223,223,121,235,243,159, 65,176, 50,148,171, 97, +125,120,120,242,236,244,226,252,226,242,240,232,228,248,244, 92,181, 6,130,112,218,157,247,171,177,228,148, 37,165,124, 44,125, +150,148,187, 89,151,186,148,103, 93, 63,219, 90,204,230,219,253,172,203, 93,223,119,139,174,223,245,216, 13, 51, 85, 53, 11,143, + 40,238,151, 23, 25,107,255,230, 0, 0, 32, 0, 73, 68, 65, 84,235,112,152,207,122, 17, 12, 43,137,128, 25, 82,226, 94, 88,184, + 25,198, 61,130, 28,167, 22,212,181, 70, 22,154, 6,204,189, 48,160,218,132, 7, 0,198, 52,163,113,189, 33,148,212,221,112,213, +148, 82, 0,131,218,189,143,238, 45,230,253,173,189,197,246,173, 59,105, 62, 7, 17,164,100,165, 82, 74,144,210,184, 90,167,220, + 97, 74,156,164, 14, 35,114, 70, 98,136, 32,194,178, 25,188, 70,203, 77,127,237,231,255,214,191,250, 95,254,167,229,229,130, 18, +111,237,236,221,189,243,220,193,179,131, 23, 63,241,252,234,244,164,172,203,122,189,186,121,247, 5, 61, 57, 25, 55,107, 11, 42, + 67, 89,159,157,215,106, 34,220,184,193, 4, 16, 90, 36, 37,141,208,205,134, 82, 15, 94,194, 13,133, 49,205,114,215, 93,158, 28, + 63,185,255,254,179,167,143, 23,243,125,177,234,101, 73,220, 35,120, 81, 15, 12,136,112,179,240, 64,104, 14, 69,116,135, 22, 28, +238,114, 98,100, 96, 50,171,146,154, 65, 11,168,197,177, 1, 8,112, 24, 71,102, 22,128,171,186,188, 66,156,205,230, 0,241,236, +236,236,115,159,122,237,237, 47,124,245,151,190,241, 11,159,124,237,117,163,100, 54,134,198,197,217,179,131,199, 15, 31, 61, 58, + 56, 56, 58,122,122,124,114,122,121,185, 92,175,199, 81,109, 44,223,254,218,219,223,249,173, 95,121,241,249,187,195, 88, 87,117, +248,224,131,247,247,238,222,174,225,167,239,157, 47,150,242,202,205,125,105,232, 11,194, 86,192, 17, 74, 13, 60,224, 26, 10, 78, + 36, 64,228, 96, 24, 24,220, 18,216, 82,134,181, 22, 3, 68,143, 48, 8, 17, 70, 4, 15, 16,100, 70,182, 90,129,154,103,206,221, + 61,101, 97, 68, 53, 39, 33, 12,244,107,254, 9, 51, 58,128, 32,153,155, 27, 50,147, 19,170, 71,206,185, 33, 98,137,185,105, 13, +114,146,201, 72, 5,209, 52,210,214, 72,176,109, 72, 82,221, 39, 85,142,184,153, 86, 99, 97,112, 36,226,214,137, 71, 32,140, 48, +240,233, 75,216, 16, 49, 64,197,134, 32, 98,100, 87,179, 80, 73, 66, 76,165, 42, 5, 83, 66,132, 4,224,109,230, 12, 96, 8,196, + 76,238,142,209, 54,120,237,156,142,204, 18,209, 98, 21, 20, 17,166,138,137,200,128, 16,145,153,137,204,162, 12, 35, 49, 79, 46, +157, 22,222,185,110, 94,129, 59, 16, 14,181,164,212,181,153, 27, 33, 90,173, 67, 93,155, 42, 33, 72,158, 17, 51, 37,193, 70, 0, + 48, 11, 50,175, 13, 84,147, 34, 44,156, 60,188, 75, 98, 6, 97, 78, 72, 22,211,228,146,178,160,123, 41,198,137,115, 98, 0,244, +170, 8, 78,204,208,134, 57, 56, 89,223, 48,192, 26,141,139,217,145,106, 45,204,156, 57, 33,161,153,114, 16,139, 0,128, 14, 21, + 40, 48,156, 89,212,204, 28,220,140,153,132, 57,166, 5, 0, 2,146,144, 24,155,155,182,106, 59, 16, 68,120, 41, 99, 47,210,117, + 61, 64,152, 7, 58, 88, 11,110, 16, 10,139,187,181, 31, 0,129, 48,160, 1, 22, 82, 74, 17, 24,224,196,130, 68,117,179,113, 83, + 78, 89,114, 66,226,113, 24,204,172,205, 0,173, 40, 97,112,226,118,214,236,114,215,208, 81,215,198, 62, 2,198,112, 39, 2, 15, +209, 90,131, 11, 79,241, 43,116, 15, 97, 54,173,136,129,170,156, 68,181,213,196, 82,139, 78, 85,173, 29, 65, 97, 17,130,214, 22, +139,169,218,241,177, 30,152, 40,188,101,196,195,213,154, 86,187,221,194, 38,156,192, 4, 13, 8, 98,104,191,112, 98, 53, 18, 48, + 50, 4,123, 40, 2,187, 7,128, 35, 49, 3, 64, 40, 32, 66,123,128,128,121,216, 48, 20, 66, 19,162, 89,158,189,241,234, 43,159, +249,116, 91,236, 66, 25,235,249,249,229,197,102, 56, 60,124,246,224,241,225,227,167, 71,167,151,151,106,216, 47,250,237,126,107, +123, 62,159,207,114,159, 59,102,234,152,152,168, 95,244,125,223,117,121,182,189,216,158,109,109,207,231, 91,125,223,247,179,185, + 16,115, 18,139, 40,163,166, 46, 53,102,225,122, 53,152,149,171,227,115, 45,101, 62, 75, 59,139,188,191,183,221, 37, 16, 70,141, + 9,125,128, 72, 16,166, 78, 28, 17,132, 16, 35, 42, 32, 39,104, 58, 70, 70,236, 97,121,117, 76,132, 93,151,114,191, 85,174,206, + 93,228,207,190,247,238, 55,127,246,103,182,111,220,204, 59,123, 33, 25,128,192,194,202,166,223,222, 25, 55, 3, 69,147,220,170, + 22,119,175, 24,228, 85, 49,139, 90,104, 81, 18, 36,194,178, 90,191,240,234,167,190,240,246,207,254,224, 47,254,239,249,246, 86, + 63,203,251,183,111, 62, 59,125,118,255,222,163, 47,191,181,181,152,111,237,222,188,245,244,224,209,214,238,246,242,236,100,231, +206, 75, 59, 55,111,214,161, 48, 1, 37,177,162, 0, 10,200,224,170,197, 28,136, 68,194, 43, 54,208,156,136, 16,124,244,238, 59, +199,135,135,175,125,234, 21, 27,223, 56,125,252,120, 24,150, 17,136,117,125,181,190, 42,102,215, 61,130, 9, 22,225,230, 99, 25, +138, 86, 51,219,154,207, 61, 28, 16,178, 99,107,140, 35, 11, 16, 16,178,215, 86, 24, 68,119, 28,107,205,243, 89,146,100,102, 24, + 80,212,190,240,153, 55,254,225,127,246, 59,111,126,254,243,221, 98, 39,136,107, 29,202,106,117,118,116,120,255,193,131,135, 7, + 79, 30, 29, 62,187, 88,174, 86,195,176, 90, 46, 33,240,237,207,124,250,215,126,246, 75,111,190,249,198,250,106,121,116,114,178, + 1,248,240,189,247, 46, 78, 47,142, 87,171,147, 39, 79,159,219,223,235,152, 93,109, 26,255,122, 0, 50,139, 96, 80, 68, 20,173, + 8,211,135, 19, 3,204,156, 25, 93, 1, 16,205,180,207,125,207,169,132, 11, 50, 49,183, 19, 75, 47, 93,209,106,181, 0, 17, 19, +186,169, 19,145,135, 85,167, 68, 41,139,153, 55, 17,176,135, 17, 73, 0, 36, 73,110, 86,218, 7,153, 48,209,245, 97,188,121, 7, + 33, 2,167,232,222, 20, 24, 7,132,112, 36,208, 58,108,134, 53, 32, 39, 73,125,215,183,205,143,153, 49,161, 3, 20, 45, 13,249, +141, 68, 24,206, 68,197, 10,179, 16, 32,162, 48,179,106,117, 12,225,222,221, 61, 52,218,232,223,221, 16,174,141,135, 17, 97, 22, + 78, 72, 24, 40,210, 77, 88,120, 0, 11,119, 45,192,200,148, 60, 90, 73, 10, 32,162,150, 66,140,204,226,110,204,200, 13,172, 8, +160, 94,219,142,248,250,141,213,106, 84, 65,128,238,109, 0,129, 34, 76,224, 36, 18, 13, 53,156,187,132,208,204,124, 94,134,174, +155, 55,140,160,176, 20, 51,215,104,114,146, 54,249, 71,114, 68, 28,203,200,212,161, 48,168,165,196, 8, 8, 44,101,179,105,164, + 7,143, 64, 11,119, 5,224,214,164,101, 36,157, 90, 2,109,156,239, 22,152, 88, 0,145, 8, 82,223,115, 99, 58, 22, 3, 38, 7, +135, 90, 1, 98, 54,159,215, 98, 21,198, 90, 70, 32,102, 65,102,177,234,109,129, 57, 73,158, 49, 28, 44, 44, 16,154, 19, 20,192, + 99, 61,234,122,179,190,181,187, 75,132, 30, 33, 34,166, 30, 97,225, 33,196,197,172,154,181,183, 91,120, 56, 26,139, 16,203,132, + 52,116, 7, 2, 83,165,196,146,179,169,130,105, 4,166,255,143,170, 55,255,181, 44,187,238,251,214,180,247, 57,119,120, 99, 77, + 93,213, 3, 41, 81,205,110,146,205,169, 57,180,154,106,142,110,139,164, 24,138,162, 69, 89,142,100, 39,113,130, 68, 63, 40,113, +126,136, 99, 56,131,127,200, 96,196,128,129, 0,137,101,196, 64,128, 32,137, 17, 40, 30,228,196,146,160, 72,150,100, 18,154, 76, + 89, 18, 69, 50,221,108,246, 80, 93,115,215,171,122, 85,111,126,247,222,179,247, 94,107,229,135,117, 94,219,249, 3,216,120,172, +123,239, 57,123,175,245,253,126, 62,194,166, 90, 90, 21, 32, 32, 8, 96,142, 48, 35, 33, 16,120, 81,100,130,200,158,162, 67,188, +199, 87, 6, 6,113, 5,215,112,144, 19, 64, 60,150, 60,105,107,128, 6,225,195, 66,196,120, 20,163, 39, 34, 51, 0, 48, 9,147, + 55,180,184,118,225,191,226,169, 5, 15, 14, 12,254,127, 6, 37, 15,115,208,217,219,124,236,149, 2,134,249,136, 1,162,241,131, +225, 1,137,179, 63, 33, 1, 26, 56,146,147,163,185, 2, 8,128, 3, 1, 33, 25, 0,155, 59,184,214,230, 96,170,234, 17,113,218, +216,218,184,244,200,197,247,188,243,209, 82,219,213,155,119,207,111,175,239, 29,157, 92,191,126,251,218,221,221,197, 98,121,253, +214,253,162,154, 88,166,253,164,159,116, 91,107,107,147,190, 35,132,212, 73, 79,185,235,186,181,249,188,159, 77,166,147,217,124, +190,158, 39,179,174,159, 32, 1,186,117,179,217,124,115,189, 13,101, 62,155, 13,165, 28, 29, 31,237,236, 45,239,236, 28,228,204, +147, 73,119,110,107, 99, 54,235,251,190, 19, 38,173, 48,118,161,221, 49, 22, 78,166,136, 0,144,209, 61, 9,205, 55,242,242,100, +191,235,174,180, 97, 69, 76,223,250,246,119, 46,109,109, 94,185,116, 94,102,107, 36,226,117, 5,210,183, 82,211,108,189, 86,211, +170,156,132, 69, 76,155,131, 33,101, 45,141,177, 1, 37, 91, 54,102, 38, 73, 72,238,230,110,237, 3, 31,123,254,213,151,190,125, +124,112,192, 34,169,235, 47, 63,114,229,149,239,189,114,249,210,249, 71, 46, 93, 56,220,123,184,191,187,243,240, 1,111,109,172, + 49,118, 96, 70, 96,121,214, 53, 29, 69,149, 64,236, 14, 90, 10,166, 14,221,180, 22,230,212, 79,167,135,251,123,111,126,255,165, +245,245,205,143,188,240, 35, 66,244,230,119,191,107,117,104,234, 93,194,197,241,233,235,119,239,171, 54, 51,180, 81,164,110,102, +190, 26,202,106, 85,106, 83,119, 95,174,150,165, 12,224, 16,177, 16, 10,193, 11, 35, 1, 10,162, 32, 16,132, 75,202, 76, 93, 50, +129,195,164,151,175,190,240,103,126,226, 75, 63,118,238,226, 21, 96, 2,135, 97,181, 60, 57,220,187,115,251,198,205,155,183,111, +222,189,119,127,119,239,164,172, 22,167,203,217,100, 58,221,220,254,204, 7,158,254,228,199,159,153,230,124,255,206,109,158, 77, +111,188,126,253,218, 91,119,183,182,230,187, 15,247, 54, 82,126,116,251, 28,162,183,102, 77, 1,200, 73, 17,153, 3, 51,224,228, +166,134, 70,213, 53, 51,194, 88,224, 96,112,112,215, 56,130, 50, 18,100,153,130, 83, 52, 65,221, 25, 65,173, 33, 66,234,178,187, + 87, 53,225,204, 8,213,155, 16, 1, 82,107,134, 68, 68, 20, 47, 18, 32, 4,128,161,212,216, 70,154, 89,150,164,230, 68, 28, 33, +196,240, 81, 26,152,106, 5, 7, 2, 28,161, 88, 0,109, 53,236,237,239, 29, 30, 29,112,146,205,249,166,155, 75, 74,238,200,204, + 81, 49, 9,112, 63,140,232, 93, 90, 13,203,145,133,194, 9, 76,155, 85, 36, 38, 22,213,192,103, 9, 50,153, 26, 17,158,105, 26, + 33, 64, 84,102, 74,132,113, 33, 7,112,140,105, 48, 56,146, 72, 22,109,154, 82, 98, 34, 53, 53, 87,116,118, 3, 11,126, 16, 66, +124,236,142,144, 57,153,123,109,202,177, 31, 52, 83,176, 78,146, 54, 37, 4, 68, 49, 11,213,137,251, 24,144,119,107, 26, 42,183, +148, 72, 68,128,130,201,131,230,202, 73, 24,140,145,171,170, 42, 48,177,122, 3, 71,194,108, 86,145,144,152,221,176, 14,133, 1, +251,174, 3,162,214,170,171, 34, 51,163,212,166,224,141, 57,185, 67,206, 25,208,203,170, 33, 69, 78, 9,205, 12, 16,115,151,193, +160,150, 98,110,209, 34,142, 89, 58, 98, 10,165,198, 89,118,159,227, 90, 15,166,196, 34,136,198, 60, 70, 7, 35,242,139,160,106, +230,206,137,155,214,140,216,245,189, 3,130,147,170,154, 42, 0, 40,128,131, 17, 65,135,169,212,230,222,194,147,110,106,140, 28, + 19,149,214,138, 72, 74, 41,171,186,106,213,166, 0,110,205, 67, 86,193, 72,230, 78,214,186,190, 3, 76,102, 86,107, 99, 9,130, +177,131, 57, 36,108,101,160,209,103, 74, 73, 80, 1, 93, 91, 22, 9, 46, 38,168, 50,138, 90,137, 39,116, 91, 46,101,210,135, 7, +201, 20,136, 0,192,153,153, 83, 22, 34,242,160, 29,163, 35, 51,170,198,198,213, 35, 69,237,128,168, 64, 50, 22,227,206,200, 96, + 48, 30,230,199,123,227,216,199, 27, 69, 77,241, 21, 36, 11, 22,218,232,228, 8,225, 0, 2,208,216, 42, 32, 12, 98,234, 56,236, + 30,255,231, 32, 60,110,234,205,252,244,116, 1, 20,232,127,153,206,230,231,206,111,191,251, 93,239,100,112, 55, 59, 56, 58, 60, + 58, 89,220,187,247,112,103,239,224,214,237,123,111,222,190, 89,171,185,225,108,222,111,172,205,215, 38,147,245,181, 89,223, 77, +250, 36, 34,210,245, 93, 63,233,167,179,233,180, 95,155,172,173,117,169,115, 67, 73,210,175,245,243,217,180, 22, 29, 86,171,213, +106,177, 88,158,222,184,125,191,212,150,132,214,215,103,211, 73,222, 88,155,110,206,103, 41, 11,130,213,230,102,102,230, 64,198, +136,134, 32,156,104, 29,142,142, 31,144,118, 94, 15,110,223,123,248,165,207,127, 33, 77, 59, 36, 68, 98, 36, 86,179,148, 19, 90, + 27,142, 23,148, 24,220,218,234, 20,243,148,130, 23, 39, 6, 78,173,168,153, 75, 2, 4, 67, 36,100,172,165,204,187,244,220, 11, +159,251,253,175,255,250,108,125,141, 37,159, 59,127,241,209,199, 79, 94,122,229,141,173,205,121, 34,124,230,195,207,189,117,235, +218,124,115, 3,115, 79,148,112,194,206,226,195,106,100,102,129, 89, 27,212, 93, 28,181,150,190,235,140,233,245, 87, 94, 62,218, +219,127,231,147,239,121,228,137, 71,221,218,226,225, 94, 18, 89,173, 86, 34, 80,181,253,157, 95,252,165,251,199, 5, 24, 24,209, +212, 44,236,192,128,165,148,128,219, 33, 97, 83,115, 71,139,111, 80,236, 19, 7, 11, 67,227,116, 50, 69, 8, 34, 7, 10,225,106, + 88, 54,211,231,223,255,204,159,251,210, 23, 62,252,236, 71,165,159,173, 86, 75, 47,165, 12,139,253, 7,247,110,223,185,113,253, +246,221,183,238, 61,120,112,112,176, 26,202,173,157,123,173,212, 47,191,240,195,159,255,196, 71, 30,187,114,190,154,183,201,228, +245,151, 95,185,252,196, 99,179, 11, 27,245,214,237,195,221,195,139,235,243, 89,238, 74,107, 49, 17, 74,137, 2, 22,237, 16,182, +123,119, 51, 12,244, 16,158, 25,101, 8,131, 10, 22, 0, 81, 66, 34,134, 36,100, 65,170,162, 32,164, 55,119,103,230, 56,152,114, +148, 47,145, 50, 71, 55, 44,222, 16,104, 6,103,222,106, 55,211, 40, 41, 81, 98, 34, 42,181,129, 3,139,140,218, 68,192,128, 4, +128, 99,107, 5, 36,157,253, 88,188, 53,109,173,170,106, 51, 45,221,144,211, 36,119,152,114, 23, 55, 89, 36, 64, 34, 53, 71, 4, + 34,104,106,204,201, 77,193,173, 89, 37,116,226,140,136,161,229,100, 17,143,205,109,151, 64,221,205,115,151,205,204,220,137, 37, + 26,144,102, 22, 56,171,118,134, 71,117, 87, 80, 22, 22,119,211, 22,169,161,200, 70,251, 40,111, 8,150, 60, 24,130, 0, 26, 34, +178, 48, 33, 40, 24, 9, 38, 75,181, 42,143, 16, 63,103, 10,175,111,212, 10, 13,194,139,102,102, 78, 41,139,131,131, 91,107, 45, +229,140,132, 34,226,106,173,169,176,152,183,166, 70,148,204,154, 65,115,243, 72,101, 0, 96,158,116,209,237, 10, 63, 42, 34,134, + 67,131,152,227,126, 70, 72,181,148,136, 0, 57,248, 80,171, 16, 83,234, 29,188, 14, 21,162,247, 14,216,170,177, 0,230, 4, 77, +233,172,211, 18,182, 6,109, 26,215, 35, 96, 6,128, 80,119, 4, 6, 44,242,223,102, 45, 9, 17,145,154,150,229,114, 58,235, 89, +216,205, 67,102, 2, 64,102,158, 8, 99,202,135, 0, 41,177, 54, 52,109, 68, 76, 73,136,176,172, 6,247,248, 52,205,107, 9,240, +178,170, 15,181, 50, 0,247,217, 28, 93,149,153,209, 59,109, 0,164,238, 38,140,241, 64,100, 2, 39,215, 58, 52,181, 68,202,210, + 25,170,170,215, 82, 90, 27, 8,129,132,137, 83,120, 12,137,169, 54, 32,114, 76, 98, 77, 41, 17, 34,145, 68, 7,148,132, 19,172, + 6, 1,183, 49,180,228,132, 49, 71,165,248,152, 71,131, 42, 96,192,213,129,128, 69, 80,163, 26, 23,141, 58, 2, 3,103, 24,169, +151,204, 60,190, 4,198,166,112, 32,218,163,135, 19,208, 71, 87, 83, 30, 55,214, 35, 63, 3,204,162,198, 6, 35,191,205, 70, 85, + 19, 56, 75, 8,233,124, 62,225, 59,247, 15,223,245,248,185, 85, 89,130, 49, 48,228,190,123,100,182,126,249,145,199, 19, 27, 82, + 50, 45,187, 15, 31,222,124,235,254,205, 59,119,223,184,113,247,198,254,254, 98, 40, 93,206,235,243,217,246,250,198,108,210, 79, +102,211,105,151,251,148,167,147, 73,223,247,156,178, 48,179,164,174,235,165,207, 89,186,205,173,237,173,237,109, 53,179,214, 86, +101, 53, 44,151, 15,247,135,221,189, 5,217,253, 60, 73, 91, 27,179,141,121, 63,153,246, 73, 72, 18, 7, 30,193,195,216,144,109, +117,116,240,245,223,254,103, 63,240,228,135,250,217,156, 38, 76,169, 71,132,214,162,115, 66,203,163, 19, 96, 6, 20, 74,226,173, + 17,130,214,130,238, 40,201,204,135,163, 83, 74,220,229, 9,130, 91,173,209,221,104,194, 63,244,222,103,190,251,167,127,120,114, +116, 36,210,167,190,123,199, 19,239,120,233,240,232,206,221, 7,143, 92, 60, 95,155, 78, 55,214, 94,250,147,111,127,225,167,159, +235, 38,221,176, 60,181,161, 98, 96, 78, 28,117,168, 14,204,140,128,214,207,215,134,197,241,247,254,229,183, 46, 62,242,216, 15, + 60,251,108,158,207,189, 14,203,147, 99,109,214,154,102,134,181,249,250,175,252,139,127,249,242,141, 59, 79, 60,122, 89, 91, 3, + 0,181, 8, 70, 26, 48, 13,173, 2, 1, 58,145,141,233,236, 17,160, 31,253,183, 56, 39, 32,168,105,202, 68,131, 35, 81, 45,117, + 50,153,254, 59, 95,251,234, 79,126,249,203,179,205,115,138,120,186, 60,174,167, 39,171,213,234,225,253,157,171, 55,110,236,236, + 61,188,243,214,206,201,106,208,170,222,252,177,173,237,159,122,241,147,159,253,212,115,171,197,201,193,254,225,236,202,229,235, + 55,175, 31,157,156, 76,143, 14, 95,126,233,181, 9,248,185,205,181,102, 94, 77,205,128, 24, 66, 81,231,128,103,186,220,198,146, + 1,200, 13, 83,162,177,222, 22,235, 20, 36, 68, 87, 12, 38, 52,154,123, 51,199,128, 82, 56,153,171, 3, 72, 98, 51, 96, 70,247, +132,160, 1,135, 97, 4,143,116,202,232,228,117, 68,212, 90, 57, 37, 32, 70,138,125,103,114, 80, 73, 9, 41,214,240, 99,169,154, + 4,181,170, 27,164,156,206, 26, 73, 88,213,152,243,108,186, 86, 84, 9,160,235,166,253,164, 75,194,181, 54, 38, 4, 4, 27, 61, +192,228,136,110,192,212, 1,249,217,108,215,132, 59,117, 55, 87,162,248,255,174, 72, 12,232,222, 60,136, 43,109, 85, 93, 66, 64, + 78,237,108,176,222, 52,196, 68, 8,132, 96, 40,125, 87,106, 97, 66, 48,114,180,224, 48, 39, 17,208,166,102,168, 74, 73, 96, 68, + 52,128,121,192,238, 25,208, 5,160,105, 64,146,209,212, 9,129, 25, 91, 36,135,145, 1, 34, 2,223,226, 23, 79, 28, 21, 76, 69, +196, 52,153,184,155,185,106, 81,114, 68,161,229,106,133,128, 34,108,160, 72,152,132, 1,104, 88, 45,152, 57,247,189, 54, 39, 39, +109,197, 77, 71,183, 50, 17,162,171, 91,159,250,170,165,148, 34, 57,141,239, 17,181,148,123,116, 55,173, 35, 6, 89,155, 1,144, + 99, 74,210,180, 98, 11,192, 74, 33, 78, 76,217,124, 64, 71, 39,231, 68,140,210,180,180, 86,193,137,153,132,196, 92,107, 45,137, +163, 31,131, 72,128,218,178, 12,155,155,235,134, 74, 32,238,160, 77, 17,144, 16, 76, 21,144,165, 35, 4, 82,115,111, 5,187,100, + 13,134, 85, 99, 42,204, 44, 34, 26,210,190,166,196,236, 85,173, 85,102, 36, 98, 52,239, 36,169,228, 86, 86,197, 42,131, 51,118, +136,228,234, 44, 40, 93,183, 42, 67, 27, 6, 83, 39, 70, 3,196,214, 16,201,220,203,176, 88,158,158,128,123,238,187,126, 50, 99, + 17,119, 2,132,148,196,180, 81, 44, 74, 1, 8,153,153,221, 91,109, 37,122, 75, 18,113,215,120, 88, 7, 11,142, 24,157, 8, 27, +156,165,134, 16,220,115,162,110, 58, 61, 61, 62, 30,213,214,228, 4,136,128, 76,232,128, 4, 20,135,165,209,160,231, 99, 60, 37, +242, 98, 54,154,204,221,205, 9,206, 22,179, 14, 24, 49,106,198,127,109,158, 63, 2,199,162,158,230,142,110, 70, 8,155, 91,179, +221,235, 59, 85, 55,227,246,106,224,110, 28,109,221,214, 16,176, 34,224,133, 11,231, 31,191,114,233, 83,207,125,144,136, 15,246, +247,175,222,216,185,181,115,255,214,221,157,131,163,163,123,187, 59, 32,105, 58,157,110,205, 55,182,214,214,182,182, 54,250,201, + 36, 51, 45, 23, 75,107, 85,178,116,125,215,119,211,233,116,214,245, 83, 78,156,115,154,244, 19, 66, 17,161,170, 54, 44, 23,251, + 71,195,131,131, 67,240,189,233,164,223,218,152,245,157,244, 93,234,251, 9, 19,229,137, 16,251,185,199,158, 56,127,241,146,100, +161,156, 57,119,109,185,212,102,148,104,185, 90, 58, 11,153,106, 83,150, 44, 41,155,186, 53, 39, 84, 2,209,161, 17,115, 55,153, +131, 89, 43,195,120,136, 19, 6,135,212,201,135, 63,254,252,111,252,211,127, 50,157,205, 69, 68, 68, 30,123,236,202,245,155,183, + 47,157,219, 60,217,125, 43,109,108,108, 94,122, 7,164,201,106, 88,182, 97, 9,200, 86, 6,140,189, 89, 4,135, 17, 8,224,214, +235,175, 30, 28, 60,248,193,167,158,218,218,190, 80, 85, 17, 90,169,173,156, 46, 93,161,149,161,149,225,143,190,127,247,229, 27, +111, 85,109, 26,247, 82,112, 83, 7,104,194,180, 28, 90,173,138, 12, 35,241, 97,180, 69,140,176,114,240, 51,150,133, 25, 10,161, + 99, 83, 16,241,231, 63,252,193,127,239,103,254,205, 31,126,238,249, 69,177, 6, 90, 22, 39,101,113,124,184,191,127,227,230,141, +155,119,238, 60,216, 63,120,112,176,127,116,116,122,120,124,122,229,194,249,143,124,224,125, 95,252,145,143, 93,188,112,254,254, +238,189,226,237,254,254,254,193,173, 91,230,118,116,114,186,251,205,239,172,175, 77,214,103, 83,240, 72, 99, 97,202,236,110,136, +146, 56,133, 19, 46,114,134, 77,125,116,189,128, 35, 98, 45,205,208, 0, 52,113,199, 66,224,130, 8, 54,198,120,199,237,130,161, + 7,113, 62, 60, 68, 4,232,166,156,196, 32,236,146,156, 18,155,131, 16,132,241,199,205, 41,231,127,229,249, 34, 6, 48, 66, 6, + 36, 51, 5,116, 53, 27, 83, 47,230,132,100, 50,186,137, 0,212,192, 17,129,133,166,147,105,160, 50, 88, 18,145, 52,141,169,246, + 8, 3, 38,234, 28, 60, 16, 2,148, 81,171,145, 48,152, 58,177,122, 13,163, 42, 18, 86,213,152, 25, 18, 32,101, 70,247,216, 51, +115,188,246, 70,139,165, 3,130,224,232, 63, 96, 34, 39,175,173, 34,160,153,113,156,230,163,214,175,205,205,152, 81,129, 16, 41, +244, 56,102,122,102,179,119, 85,109,174, 0,136,200, 66, 9,208,173,182,130,158, 68,192, 76,132,195,244,132, 0, 1,253, 54,135, + 86, 12, 25,213, 20,136,180, 42,128,147,176,187,235, 80, 25, 17, 44, 38,233,200, 12, 67, 93, 17, 8,177, 36, 97, 53,179, 82, 29, + 60, 64,239,168,200, 34,197,170, 8,245,221, 68,181,161, 97,234,186, 56,153,146, 36,103,141,135, 76,211,202, 46,177,144,100, 71, + 36, 72, 28,167, 74, 5,100,146,108,170, 8,149,128, 60,147,171,106,209, 56,110, 50, 82,136,144,170, 85, 66,202,153, 32,232, 5, + 72,136,176, 88,156,204,122, 94,155,225,233,210,154,133, 81,138, 16,216,188,169, 91, 78,236, 81, 33,102,204,211,110,117,122,210, +212, 37,101,194,228,126,198,126,211, 6, 72, 10, 72, 4,146,164,169,106, 45, 40,153, 58, 92, 21,117,163, 36, 41,130, 95,110, 38, +157,132,220, 10, 29, 82,223,107,105,102, 13, 17,147, 36, 53, 91, 44, 78, 79, 79,143, 48,212, 33,204,181, 22, 67, 35, 52, 18, 97, +201, 8,140,104, 35,198,192, 21,128,154,186,171, 33, 39, 66,149,145,199,131, 4, 6, 68,236, 64,174, 10,122, 70,246, 4, 32,119, + 16,234, 38,211,217,218,108,185, 56, 1,139,214,231,120,157, 3, 0,115,156, 76,251, 97,185, 10, 31,222,153, 24, 47,102,246,113, +101, 54, 24, 51, 1,163,173, 35,104, 44,128, 9, 92, 71, 86,198,248,114,128,241,209, 63,142,236, 45,234, 16,169,159,111, 77,243, +253,189,211,203, 23,230,165,104,208,150,163,137,132, 36,129, 0, 93, 13,195, 48, 0,130, 35, 17,167,238,253,239,125,250,131,239, +127,175,185,105,171, 71, 39,139,195,147,211,123,119,119,111,236,220,187,255,224,222, 75,175,191,118,124,114,178,182,177,177,181, +182,190,181, 54,235,187,110, 34,137, 19, 11, 83, 18,158,118, 29,167,110,210, 79,242,116, 50,153,204,186,233,108,109,125,190,185, +185,133, 76,230, 84,219,176, 92,174, 78,150, 85,219,130,232, 48, 9,118, 89, 54, 55,214, 62,242,161,247,156, 44, 38,146,166,221, + 36, 55,179, 90,171,132, 67, 61,117,218,138,187,179,144,123,171, 13, 71,134,172, 72, 89,174, 90,211,220,119,148, 72,135, 37,134, +235,119,236,255,145,214,250,212,211,207,252,241,239,125,227,250,141, 27, 79, 63,245, 30,230,110, 99, 99,107,247,254,189,171,111, + 94,223,219,219,127,249,234,181,233,252,252,198,229,119,191,235,201, 31,172,165, 94, 56,183, 49,212,226,214,180,106,151,179,164, +124,243,205,239,223,191,119,255,210,229, 43,207, 60,251, 28, 17,181,214, 82,159,235,114,185, 90,172, 0, 9, 81, 91, 93,221,122, +112,248,205,215,222, 64,130,205,110, 46,204,203,214, 98,223, 18,239,152,197, 80, 34, 26, 17, 79, 13, 51, 80,119, 85,165,209, 49, + 18,134, 44, 32, 22,107,122, 90,135,119, 60,114,241, 47,126,237,167,126,236,243, 95,152,174,175, 45,154,169,105, 25, 78, 78, 15, +246,110,223,186,126,237,230,157,157,221,221,135, 7,135,167,203,101,109,109,247,224,248,221,151, 47,253,236, 87,190,240,190,167, +127, 8,193, 23,104,247, 15,247,115,162,249,249,205, 55,111,221, 57, 61, 60, 93,155,229,243,143,156, 3, 6,107,163,215,136, 48, + 33, 96,236,232,154,106,228,152, 28, 40,212,121,116,198,148,245,136,159, 58, 54, 67,179, 6,212,197,227, 23, 28, 29, 61,186, 44, + 57,115,216, 67, 1,199,113, 3,128, 81,162,184,159,119, 19, 50, 7, 68, 74, 76,200, 90, 87,104,234,200, 68, 16, 40, 65, 84, 51, +198,145,209, 4,103, 64,175,178, 90,229,156, 21, 32,179, 40, 24, 33, 19,131,169, 1, 2, 81, 76,120, 29, 56, 77, 83, 98, 97, 83, +139,127,180, 51,163, 48, 34,119, 72, 44,194,140,162,174,102, 78, 66, 64,232, 21, 17,209,106, 65,192,232,181,114, 16,201, 1,153, +121, 40,133,131,188, 37, 12,224, 77, 91,202,177, 72,139, 70, 36, 0, 17, 11,130, 81,179,134, 72,156,168, 22, 5, 30,237,196,218, + 26,159,161,208, 88, 36,244,131,163, 86, 97, 20, 39, 5, 96, 62, 62,101, 2, 48, 36,228, 46, 51,104, 48, 44, 75,169,110, 74, 34, +110,202, 34,238,192,128, 78, 65, 8,193, 82, 10,115, 96,188, 44,160,222,142, 8,236, 72,172,218,172, 25,167, 28, 66,241,166,138, +102, 40,224,134,173, 57, 19, 26, 3, 49,101, 76,110,214,106, 97, 22,236, 71,200,226,200, 29, 81,211,152,188,145, 68, 93, 17,153, +200, 16,153,212,148,136,172, 89, 51,117, 51, 48,131,204,200,130,110, 13, 20, 16,128,188, 35, 6,199,218,204,205,195,104, 25, 16, + 91,102,116,160,214,154, 53,159,172,245,173,177,123, 13,114,148,171, 58, 0,139, 16,197,120,149, 49,161,150,106,214, 36,103, 54, + 80, 53, 63,219,205,226,184, 6, 13,235,179,145,116,153, 8, 92, 90,243, 90, 91, 39,236,193, 77, 99,116,112, 73, 25, 8, 3,254, +195, 57,187,181,234,192, 68, 40, 98,160, 69,109, 40,203, 82, 74, 98,234, 58,145,156, 23,203, 33,105,157,206,230, 41, 37, 0,170, +222,220,160,105, 75,196, 46,238,102,140,132, 44, 97,165, 22, 68, 1, 82, 71,244, 24, 46, 71,138, 43, 9, 33,154, 86,228, 4,140, + 8,184, 88,148, 97,177, 7, 30,171, 84, 5,181,240,226,170, 3, 19,174,134,234, 58,102,191, 40, 82,107,163,125, 53,234,193, 52, +142,235,201,193, 29,205,220,160,129, 69,161, 23, 0,132,185, 53,115, 15, 40, 82,188, 17, 66, 75,229, 8,108,106, 85,253,194,133, +139,215,239, 62,192,243, 27, 4, 58,194,186, 29,152, 71,204, 5,134,188,119, 76,172,187,169, 46, 87, 3,132, 22, 23, 96, 54,159, +205,215,230,143, 95,126,228, 57,249, 0, 0, 29,236,237, 95,189,181,243,224,225,238,119,190,119,245, 79,111,221, 44,165,178,240, +246,198,230,214,218,124,218, 79,215,167, 57, 73, 98,166,148,100, 58,153,244,253,100,109, 99,109,109,190,206, 93, 55,159,173,167, +212,245,155,219,156,216,155,173, 86,131,106, 89,213,246,242,171, 55,239,237,220,234, 39,243,227, 97,241,216, 59,223,113,110,125, +163,159,174,201,180,211, 85,117,111,117,112, 64,178,218,188, 14, 60,153, 17, 50,161,182,218,106,107,125,159, 64,213,155, 2, 80, +216,107, 80, 4, 1, 93,141,146, 32,167, 47,253,244,191,245, 11,255,221,127,125,111, 99,231,145, 43,143,106,171,231,207, 95,250, +214,159,252,201, 75,111, 92,253,192,251,159,249,185,255,248, 63,185,112,249,202,239,255,243,223,253,129,119,189, 11,193, 2, 58, + 56,155,111,221,191,250,242,157,187,119, 78,134,250,161,231, 63, 51,159,166, 86,205,234, 42,247, 25,137,202,114,112, 85,153, 76, + 97,113,122,120,120,240,141,151, 94, 62, 90,149, 73,215,169,107,107, 45,238, 85, 90,171,170,166, 68,171, 97,137, 20, 40, 84, 55, +213,224, 2, 78, 82,118, 38, 45,213,220,208, 17, 8, 74, 27, 78, 22,237,171, 47,126,238,175,252, 7, 63,119,225,242,163,142, 84, +170,170,182,197,233,254,253,219,183, 95,187,250,250,206,253, 7, 15, 15,142,246,142,142,150,139,229,222,193,201, 99, 23,207,253, +165,207,127,250,199, 62,247,105, 68,223,127,176,211,111,159,123,235,230,237, 55,174, 94,155,206,103, 59, 59,187,182, 42,235,179, +126,109,218,185,186, 91,188,200, 89, 36,129,162,186,183, 22, 56,147,176,115,140,241, 85, 28, 7, 49, 35,202,159, 25,205, 49, 33, + 49,163, 42,184,215,156,187,166,214,134, 65,152, 35,159,138,170,204, 12,230,234,144,187, 68,228,165,150,174, 75, 76,194,136,181, + 52, 64, 87,111, 58,152, 48,169,121,202, 25,204,134,170,194,112,118,142,182,196,156,114, 82,179, 97, 49, 16,115, 68, 1,155, 91, +240, 99,181, 86, 31,139, 22,134, 0,146, 18,104, 19, 22, 0, 0, 50,116,103,230,162, 3,199,190,146,196, 16,137, 18,160,187, 26, + 18, 18, 50, 57, 22,112,116, 39,230, 90, 86, 41,247,241, 98,117, 6, 68,170,173,138,196,157,197,209, 28, 29, 82,226, 81,113, 31, +234,231,174,115, 48,173, 5,137, 25,129,132,155, 90, 74, 28,100, 74, 68, 7,240, 26, 33,200,152,187,135,210, 90, 88, 56,181, 86, +188, 2, 36, 32,100, 38,116,115,112,103, 78, 22,156, 94, 68, 51, 55, 53, 22, 1, 98, 74, 2,138, 72, 56, 22, 1, 1, 91,211, 46, +165,230,102,174,196,236,166, 90,149, 4,136,201,213, 77, 27, 50, 3, 50,186, 2,139, 53, 99, 66, 55, 53,117, 74,146, 18,155,123, + 78, 73, 91, 99,161, 86, 29,221,193, 9, 28,180,173, 56,245,110,170,171, 37, 10,251,184,126,137,153, 27,155,154, 26, 96,116, 47, + 99,118, 26, 57,109, 38, 64,114, 87, 0, 39, 36,224, 88, 19, 32, 17,147, 66,133,198, 64, 34,194, 66, 60,162,215,218,233,178,168, +185,203,124, 40,238, 32, 85,141, 28, 19,179,145,180, 97, 32, 38,146,100,181, 13,117, 72,146,136,201,195, 65, 1,166,173, 57,144, +129, 50, 37, 18, 30, 86, 3, 35,246, 93,178,248,231,118, 32,198,196,164, 0,166, 99,147, 78,139, 57, 52,182, 72,126, 65,171, 74, + 96,147, 46, 87,179, 90, 86,246,118, 69, 30, 97, 24,134, 44, 66,203, 1,117,112, 22, 85,245, 86,193,128, 73, 80,220, 11, 84,109, + 80,129,187, 30, 28,117, 85, 41,172,118,191,249,139,255,171, 35,170,106,102,118,115, 39, 39, 71, 71, 64, 16, 34,118,104,128, 24, + 66, 91, 15, 64,157,123,124,150,164, 70,153, 90, 5,146, 24, 90, 33,132,148,114, 76,215,140,190,108, 98, 4,247,192,208,131,133, +107,194, 29,209,212,152, 24,172,153,219,217,151, 35, 16,123, 62, 26, 10,198,136, 78,180, 11, 65, 82,186,241,230,205,203,143, 94, +202, 57,169, 57,162,132, 22, 18, 65, 21,128,125,164,211, 1, 80, 48,210, 16,137, 48,161,152,171,199, 43, 23, 98,178,136,152, 19, +231,220,117,169, 35,161,186, 90, 92,191,121,247,234,157,183,190,243,242,107, 55,118,238,149,161,138,228,105,238,230,243,217, 36, +119,211,105, 38,196, 73,215,173, 79,167,147, 73, 55,153,205, 38,179,181,249,108,109, 58, 91,239,215,215, 36, 37,109,102,205,172, + 44,142,142, 15, 79, 22,167,181,180,220,205,114,223, 9,138, 48,206,231, 27,231,206, 95,220,220,156,243,100,221,173,229, 44,152, +178, 59,154,105,107,134, 4, 9, 49,158, 44,196,130,204,174, 10,232, 78, 89, 24, 0, 73,151,203,254,226,185,223,254,199,255,232, +219,127,242,205,167,158,124,170,159, 76, 63,241, 99, 95,157,110,204, 22,135,139,189, 7,251, 77,235, 31,252,243,223,126,226,137, +199, 63,250,225,247, 45,150, 38, 93, 71,166,191,251,245, 95,255,198,215,127,235, 43, 63,249, 51, 31,251,228,103,107, 25,180, 22, + 64,146,156, 80,171,154,105, 49,201,108,165,157,236, 92,255,235,127,227,191,248,250,119, 95, 91,159,247,171, 85,185,176,189, 61, + 95, 95,107,181, 58,192,233,201,105, 25,134,156,242,155,119,110, 85,211,241, 74, 6,160,166,147,156,215,231,211, 81,111,120,118, +244,157,246,179,191,244,181,175,124,245,199,191,234,146,145, 64,213,150,203,197,225,222,238,141,171,175,191,121,253,198,221,189, +253,227,147,195,131,163,197,241,241,241,201,201,242,241, 11,231,127,254,167,127,226,233,103,158,122,240,224,126, 63,159, 93,191, +118,237,230,181,155,156,165,169, 29,220,223,223, 92,155,117, 57,169, 41, 34,100, 74,205,106,184,208,152, 50, 33, 17, 66, 51, 85, + 48, 4,113,104, 24, 75,124,164, 62,231,210, 42, 40,168, 67,206,201, 92, 1, 33, 97, 42,173, 56, 2, 35, 97,132,237, 28,136,168, +153,117,185, 35,166, 40, 44, 73,102, 20,114, 3,166, 60,142,160,162,204,161,102,106,221, 36,183,218, 28, 12,153, 92, 99, 9, 9, + 0,214,212, 18, 39, 34,140,158,140, 48,169,105, 45, 45,165,132,128, 44,212,212, 36, 10,177,222,152,115,220, 90, 57,119,110,134, +236, 54,168, 67,132, 59, 33,102, 50, 36, 60, 18,143,220, 89,216, 92,181, 90,144,100,204,180,149,128,185, 75, 84,140, 0, 92,205, +152,200,221,136, 81,213,187, 46,155,121,211, 26, 0, 22, 87,151,204, 86,199, 61,153,186, 11,179,153,137,100, 67, 43,171, 33, 98, + 45, 34,130, 76,160,142, 72,214, 10,178, 8,161,157,153,118,106, 81, 97,228, 8,137,107, 35, 0, 3,226, 36, 86, 20,120,172, 53, +138,144, 3,122, 53,236, 16,116,124, 78,128,162,129,169, 90,213, 38,241,147, 52,148,212,153,183,248, 7,180, 86,136, 82, 68, 30, +213, 52,231,220,106,139,217,138, 1, 36, 73,109, 40,193,181, 66, 78,241, 49,213, 86,115, 18, 97, 81, 83,213, 22, 57, 14,100, 82, + 53, 68,116, 51, 71,167, 32,156, 19, 35,176,121,209,214,132, 5, 83,182,166,110, 70,204, 66,169, 89,117,111, 48,178,197,209,221, + 76,109,212,113,184, 73, 74, 93,146,102,229,193,238, 81, 78,105,190, 62, 51, 53, 87,211,214, 80,178, 1, 32,112, 4,147, 84,213, + 21, 56, 37,247, 22,139, 68,173, 42,194,165,148, 96, 53, 51,147, 33,130, 97,196, 76,136, 16,153, 25, 83,105, 37,246, 67, 41, 39, +109, 86, 90,109, 85,153, 17, 25,153, 5, 1, 68,146, 1,212,161,104, 85, 39, 99,115,103, 57, 61, 62, 57, 56,220,213,106,228,202, +146,114,151, 56,117, 93,215,207,230, 51,160,212, 90,107,173,153,214,176,212,129, 53, 78, 9, 40,161,213,227,211, 83, 9,162,101, + 98,113, 4, 96,136,156, 0, 66,112, 87,206,166,232,128, 99, 67,214, 61, 86, 85,128,238,220,242,108,195, 79, 86,136, 98,104,241, + 56, 31, 47,189,222, 0, 4, 8,204,192, 85, 67, 68, 22,183,182,248, 56, 28,140, 16,205,234,219, 34, 81, 24, 3,244, 4,110,206, + 0, 78, 35, 33, 44,226,164, 14, 77,219,214,230,252,240,116,121, 33, 39,112, 5, 68, 69, 96, 15,222,182, 65, 88, 59, 28,145,129, +129,131,157,160,222,176,161,140,243, 36, 36, 24, 95, 29,181, 89,105,203, 19, 28, 64, 85, 36, 63,241,206, 31,120,242,201,167,254, +204, 11, 47, 44,151, 39,187, 15, 30,220,218,185,127,237,246,206,193,193,225,238,238,222, 91,247, 7, 0,156, 78,251,249,116,182, + 49,155,174,207,103, 93,218,237,167,253,164,155, 76, 38,211,201,124,190,182,177, 53,153,206,211,108,118,121,253, 28,103,138, 48, +130,170,214,218,134,178, 58, 62, 60,122,120,184,159,136, 82,238,103,107,179,237,243, 23,250,217,250,250,214, 22,115,102, 49, 34, +106, 67, 73,185, 39, 17, 52, 67, 22, 48, 51, 67,233, 19,130,107, 41,216,117,122,186,124,238, 83,159,125,229,165,151,174, 95,123, +243, 51, 95,252, 10, 49,237,223,123,240,173,111,126,235,209,199, 30, 61, 93, 13,247,118,238,105, 93,125,236,249,231,147, 14, 90, +234, 31,254,193,215,255,240, 15,255,197, 39, 63,251,197, 15, 61,251,177,197,209, 33, 16, 70,116, 15, 84, 77,213, 29, 73,196, 12, +185,156,252,223,255,215, 63,248,227, 55,110,204, 38,147,253,195,147,147,211,147, 39,174, 92,209, 86,205, 29,204, 91,107,128,206, +153, 89,164,174,148, 9,213,177,169,102,225,217,100, 50,212,154,122,139,241,191, 0, 0, 32, 0, 73, 68, 65, 84, 83,239,174,165, +212, 62,167, 23, 62,250,236,207,126,237,167, 62,240,161,103, 7,117,115, 31, 86,203,131,135,187, 15,238,223,185,115,231,206,141, +219,119,119,118,119,143, 78, 22,123,199, 7,123, 15,143, 47,110,172,125,237, 43, 95,252,209, 79, 62, 55,153, 79, 87,106, 39,195, +242,224,232,144,147,116,235,179,183,174,223,157,247,249,202,133, 13,150,168,105, 48, 1, 54, 48, 74, 29,104,224,193, 71,103, 21, +144,147, 7,221, 19,153, 9,153, 16,176,214, 10, 8,196,161, 53, 5, 70, 1,211, 10,141, 3, 38, 14,224, 14,147,148, 28, 80,205, +123,201,136, 8,142, 93,159, 91,107,106, 78,234, 68,161,232, 4, 68,114,213,234,134,230,200, 88,107, 67, 64, 55, 48,247,240, 64, +185,107,104,139,221, 13,124,124, 22,150,166,222,140,153,144, 66,130,234, 8, 10, 40,170, 42,210, 57, 56, 10, 49, 8,184, 7, 7, + 76, 35, 96,204,227,148, 50,100, 64, 0, 46, 40, 10,170,205, 17,145,162,137,175, 78, 44, 41,199,240,210, 70,167, 93,120,137,220, +193,192,208,145,176,214,130, 0,174, 6, 72,204, 68,146,212, 26, 50,185, 67, 12, 43, 34,174,101,214, 76, 35,242,200, 20, 56,162, +218, 40, 74,190, 36, 97, 98, 50,136,133, 0,231,142, 1,220, 85, 41,101, 12,151,133,153,213, 6,132,241,182, 32,137,176, 22, 96, + 66, 43, 54,154, 60, 34, 75,202, 4, 97,109,115, 71,116,238,216,180,142,139, 27,115, 34,118,247,160, 50, 0,146,154, 98,228,249, + 72, 0, 76, 91,117,215,113,101, 13, 0,236, 8, 36, 30,224,176, 2, 4, 68,201,221,192, 60,224, 97,170,230, 22,116,172,145,172, + 3,129,158, 39, 22, 98, 71, 4, 17,116, 2,104,234,133, 16, 29, 82,107, 85,173, 16, 1, 5, 12, 85, 13,201,153,199, 37,170,106, + 33, 29,214,182,102, 4,160, 35,202,132, 1, 33, 81, 38,164,170,101,252,212,100,236,241, 68, 73,141,216, 75,109,173, 20,201, 93, +160,104, 69,216,208,173, 69,160, 21, 24,201,208, 68, 24,212,171,155,170, 82,232, 41, 18, 18,160,187, 11,146,129,215,214, 70,216, + 25,114,171,166,238,160, 53,231,180,182,182, 57, 12, 75,109, 67,162,113,101,201,132,197, 12,181, 32,160,176, 24,146, 89, 3,183, + 88, 42, 16,141,221, 85, 65, 70,108, 22, 3,243,209, 76, 10, 13,244,108,171, 22, 86, 97, 26, 11,157, 68, 28, 50, 63,179,234,142, +203,227, 83, 68,110,222, 24, 16,200,131, 75,224, 4,132,226,224, 96,228,214,136,200,180, 97,236, 77,105, 12,235, 98,244,173,131, + 80,133, 48,210,175,144,220, 1, 41,131,215,179,225,126,244, 15,130,255,226,221,116,118,176,187, 15, 91,219, 68, 8,152,196,213, +225, 12,255,129,233, 44,208,102, 48, 82,159,244,140,221, 64,113, 77,139,215,210,153, 81,203, 1,128, 68,204,218,201,233,242, 20, + 86,196,104, 38, 23,206, 93,186,124,233,137,231,158, 69,132,225,244,116,117,120,124,178,179,187,247,242, 43,175,124,239,234,173, +171, 55,110, 0,203,133,115,155,143,158,191, 52,155,118,243,126, 34,249,158,112,238, 3,149,214, 79,214, 55,183, 38,179,141, 60, +233,147,116,146, 83,234, 36,119,201,212,221,188,169, 45, 78,151, 39,199,215,154, 42, 17, 11,243,185,139, 23, 47, 92,188,188,126, +110,179,239, 58, 16,104,139,193, 1,234, 80, 60, 36,246,165, 98,206, 36,162,110, 93,234, 62,253,226,231,167, 91,219, 23, 46, 63, +114,188,127,112,227,218,213,255,231,215,127,121,123,125,253,116,181,120,235,173,183,160, 13,159,248,212,103,182,103,253, 31,252, +238,239,189,227, 7,223,245, 31,254,149,255,172,155, 77, 26,146, 14, 39, 44, 9, 39, 93,215, 73, 43,197,128, 16,204,134,147,181, +245,173, 95,251,213,223,248,123,255,240,159, 54,231, 46,165,213,170, 72,151,193,124,181, 42,169, 75, 85,171,106, 99, 64, 70,122, +199,229,203,175,188,121,141, 0, 28, 44, 11,111,172, 77,205,218,149,243, 23,111,220,186,181,181,189,245,254, 39,159,250,241, 63, +251,153,103,159,253,232,198,246,249,211,229,178,169,158,158,156, 60,184,119,103,111,247,254,237,187,247,110,220,185,181,127,112, +124,188, 92,221,122,235,238,131,135,123,127,241,139, 47,254,133,159,248,242,230,230,218,209,225, 94,230,245,195,197,225, 27, 87, +223,156, 77, 38,119,238,237, 14,135, 39,231,214,231,157, 8,114,118,119, 98, 98, 65, 87, 7,115, 38, 4,150, 86, 74,100,106,137, +192, 26, 10,241, 96,141,129, 34,234,225,238, 72, 28,224,163, 40, 2, 53,109,128,156, 9, 85,181,180,138,196,147, 46, 7, 32, 32, + 84, 68,136, 40,157, 52,211,230, 70, 14,230, 77, 9, 18, 39,117, 48, 71,118,144, 16, 62, 32,161, 91,173, 3,177, 16, 51, 2,186, + 89,151, 83,171, 88,181,141,152, 25, 36,179,168,141, 40, 16, 15,181,246,210,145, 36,139, 9,162,161, 27,142,110, 85, 30,105,230, + 74,128, 18, 66,154, 56,243,184,129,163,121,150, 28, 56, 93, 70,100,196,218,204,201, 89, 82, 60, 79,155, 22, 83,175,171,146,166, +125, 0, 59,205,148, 19, 3,140,214, 58,107,149,115,206, 93,174,181,130,105,100,189,135,213,138, 89, 8, 64,221, 9, 0, 17, 73, +216, 76,205, 3, 88,233,238,161,230, 0,102,106, 85, 35,199,207,156,145,208,208,208,145,186,190,149, 26, 91,229, 32,218, 56,128, +153,194,219,245,245,216,174, 26, 32, 19,178,181,210, 2,157, 6, 68, 72,212,165, 60,156,174,154, 55, 8, 47,145, 96,173,134, 26, + 60, 63, 7,183, 62,167,218, 84, 56, 57, 90,213, 33,246, 14,105, 50, 37,240, 50, 20, 24, 7,176,128, 34,214,106, 60,245,180, 86, + 18, 38,193,214, 20,153, 18,147,162, 32, 48,160,141,232,140,179,185,176,154, 74, 55, 65, 34,107,197, 20,192,226,212,103, 41, 51, + 52, 0,176,170,154,133,153,129,144, 99,202,207,146,247, 15, 86,230, 46,140,156, 97, 48,215,218,186,190,119,133,230,170,214,136, +208,145,209, 81,181, 16, 64,238,115, 43,173,148,194,130, 72,232,200,129,149, 87, 83,108,196,146, 40,187,185,129,129,153,165,156, +213,131,165,140,225, 17, 7, 8, 40,144, 34, 83,169, 21,207,230, 32, 73,242, 74, 85, 75, 33,135,196,201,184,204,102,179,196,188, + 26, 18,185, 49, 11, 39, 81, 85,172, 13, 69,130,122, 31, 17,222,218, 74, 40,121,153,141,144,145, 18,254,214, 63,250,223, 81, 3, + 37,143,142, 72, 97,233, 36, 32, 16, 68, 84,173,196,130,196, 62,194,152, 76,213, 1,128,199,118,250,216,117,197,177,240,228,110, + 30,199, 40, 7,116, 71,183,134,163, 50,209,112,212, 33, 34, 88,177,177, 86, 30, 75,218, 51,167, 40,134,183, 80, 66,140, 0, 17, + 4, 8,138, 25, 56,162,129,195,157,187,187,143, 95,185,140,228, 72, 35,182, 31,198, 83,191, 3, 56, 50,187, 2,131, 7, 7, 33, +226, 94, 28,190,196,208, 13,135, 77,155,198, 20, 4, 17,131,185, 71,238,201, 57, 78,123,132,104,224, 50, 66, 78, 65,132,226, 70, +127,227,250,237,215,174,223,122,253,234,213,215,110,236,172,134,210,117,253,198,218,250,230,124, 50,157, 79,103,169, 67,132,220, +165,217,108,125,115,243,220,124, 99, 61,119, 29, 26, 32, 72,158,244,192,136, 33,218, 32, 81,109,106,208,180,173, 78,142,202, 48, + 8,229,205,139,231,182, 46, 93,186,116,241, 98,234, 58, 45, 53, 77, 38,222, 84, 85,223, 22, 66,155, 99,191,190,166,165,252,242, + 63,248, 63,167,235,219,151, 46, 93,248,111,255,230,127,243, 96,239, 97,173, 69,107,121,238, 67,207,188,227,209,119, 60,253,228, +147,239,251,224,199, 55,183, 55, 92,146,183,149,244, 19, 91, 13, 36, 93, 63,159,212, 58,232, 80,129, 56,165, 68, 90,255,248,119, +191,241,215,255,214,223,218,217, 63, 74,204, 71, 39, 71,203, 85, 57,183,185,121, 97,107,163,168,166,156,202,106,213,180, 17,139, +160,212, 90,110,188,181,147, 50, 45,150,101, 99,109,106,102, 63,255,239,255,220, 95,253, 79,255,203,255,233, 23,126,225,246,245, +239,127,233,197, 79, 95,184,116,217, 37, 32,124,245,112,111,239,240,240,225,209,225,209, 27,215,222,188,113,251,222,201,106,113, +178, 88, 93,187,125,103,150,250,191,246,151,255,252,103, 62,241,252,225,241, 97, 3, 95,213,114,237,213, 87,239,237,237,247,125, +191,251,214,206, 52,229,249,218,148,137, 8, 57,165,148, 88, 64,216, 93,107, 53,109,205,220, 0,136, 4,201,177, 13, 13,133,221, + 77, 18,187,122,164, 9,205, 28, 49, 34, 35,132,100, 90, 21,153,209, 44,119, 73,213, 90, 85,102, 96, 22, 98, 65, 36, 73,125,179, + 6, 54,158, 39, 28, 16, 5,234,170,177, 48, 51, 69, 82, 62, 5,108, 46, 78, 0, 6,200, 4,224, 72, 96,106, 6,200, 8,165, 21, + 10,218, 96,180,100, 71,220,134,155, 1, 48,103,166,166,205,220, 25, 36,229,206, 32,138,154, 73, 0, 86,101, 32,162,156, 39, 10, +141, 16,204,193,170, 49,147, 33,196, 57,212, 44, 74,211,232,224,230, 42,148, 56,145, 27, 48, 51,168, 22,109,163,212, 9,128,156, + 33, 33, 51,214,170, 76,140,230,128,209,139,134,166, 53,165,142, 56, 46, 57, 70,200, 66, 92,181,164,148, 84, 13, 97, 28,122,187, +197,129, 14,212, 42,115, 30,203, 64,200,136, 14,174, 36,217, 17, 25, 89,181, 34, 81,213,198, 64,196,236, 26,210,133, 56, 50, 33, +145,152, 85,119,167,196,164,212, 90, 5, 48,109, 78, 76,136, 40,146, 1,176,105, 49, 68, 10,142,184, 26,198,250, 97,116, 41,123, +109, 6, 4,125,215, 33, 51,152,155,150, 88, 43, 70,126,159, 49,155,215,106, 85,136, 3, 20, 21, 19, 39, 18,102,150,161, 12, 96, + 72, 76,136, 4,110,102,166,224,224,144,187,132,196,146,179,154, 81, 56, 78,227, 73, 16,128,179, 48,172, 3,149, 58,140,148, 45, + 0,199, 81,148,201,140,203,197,240,224,193,131, 43,151,182,103,235,179,166,238,148, 90,195, 54, 12, 77,149, 40, 26, 81,132,228, +173, 24, 49, 16,208,170, 12,113, 16, 80,211, 82,180,147,132,194,109, 85, 57, 49, 16, 73, 74,230, 22, 93, 13, 12,155, 28, 82, 45, +131,153,137, 72, 98, 49,194, 86,139,154,215,170, 1,110, 19, 18, 98, 82,117,176, 2,156, 90, 43, 76, 76,136, 0,212,172, 90,169, +218,154,121, 35, 76,224,158,102, 19, 68, 9, 46,152, 19, 15,171,149,151,210,101,246, 36,194,201, 12,142,142,143, 5,226,210,139, +238, 62,246, 32, 72, 40,104, 51, 14, 72,156, 67, 92, 26, 45, 56, 64,231, 24,158,140, 73,209, 8,207,135,227, 20,198, 12,175,171, +159, 81, 92, 98,220,130, 72, 96, 28, 75, 8, 31, 95,174, 52, 86, 63,224,236,151,130,255,154,150,247,140, 91,230,103, 76,122, 8, + 22, 41,225,172, 79,123, 39,203, 75,155,107,234, 68,140,102, 21,130,142, 29,215, 13,139,253, 84,132,123, 70, 72, 69,224,115,240, +172,124, 11, 35, 53, 14,192,195,166, 23,147,121, 25,239,119,174,227, 92,151,221,213,155,123,107,182, 92, 41, 34,156,191,116,241, +241,119, 60,254,133,207,125,250,116, 88,220,187,123,239,234,181, 91, 55,222,186,127,239,222,189,187,247,238,153, 67,215, 79, 55, +231,179,205,173,197,225,241,193,185,147,205,148, 38,136,140, 72, 57,167,110, 50,235, 39,211,148, 59,201, 89,152,145,121, 50,233, + 39,147,206, 1,218, 80, 86,171,229,245,239,125,239,205,239,189,220,165,126,227,252,185,141,237,237, 78,120,190,182, 62,217, 88, + 67,119,107, 14,224,175,253,191, 47,253,218, 47,255,147, 95,254,181, 95,249, 11,127,254,103,103,125,102, 65,119, 72,146,250,156, + 24,253,254,253,187,239,126,250,153,199, 30,127,108,255,224,225, 72,141, 82,227,110, 2,224,101,185, 52, 85,100, 33,145,148,228, +205,215, 94,249, 59,127,255,239, 31, 45,135, 89,151, 22,203,213,114, 53,116,185,203,185,171,181, 57,122, 83, 87,181,120,116,161, +224,241,201, 98,213,170, 2,159,219,220,120,228,194, 57, 97,126,228,210,133,110,123,246, 31,253,181,191,250, 43,255,219,255,178, +182,190,161, 78,229,224,240,224, 96,239,193,222,195,131,195,195,163,197,201,181, 27,119,238,237,239,181,170, 59,187, 15,143,142, + 15,191,252,194, 39,254,221,159,252,242,250,250,116,247,225,253,188, 54,191,246,242, 75,107,219,155, 23,223,249,248,155,119,238, + 30,237,238, 95,218,222,144, 94,220,162, 10,203,136,136, 66, 6,232,192, 22, 40,110,197, 68,216,212,205, 28, 37,152, 30, 52,246, +175,193, 28,199,149,125, 92,203,173, 58, 68, 75,159, 88,155, 3,250,116,218,199,210, 39,172,108,234, 45,101,118,247, 50, 52,140, +163,119,179,156, 5, 9,195, 59, 71,132,106,200,228, 76, 76, 76,224,168,214,162,162, 41,210, 51, 98, 45,171, 94,164,152, 67, 76, + 23, 61,146, 18,136, 72,146,208,155, 85,173, 8,200,146, 98,221,202, 68, 0, 1,186,178,148,251,248, 37,162, 97,244, 67, 40,129, +169, 18, 37, 53, 51, 51, 80,144, 94,226,105,149,164, 35, 64, 83, 67,162,214,154,170,137,176, 7,103,214, 77, 58, 50,115,109, 22, +220, 0, 36, 34, 2, 7, 55,107, 57,231, 51, 26, 16, 18, 49,130, 27, 40, 33,181,214,224,172,175,128, 8,192, 36,145, 86,198, 56, +183, 49,113,236,207,200,157,130,149,214,188, 49,139, 1,164, 80,184, 0, 32,135,234, 18,152,132, 24,181, 22,143, 31,111, 51, 27, + 75,235, 68,108, 72,152, 82, 87, 91, 9,224, 54, 19,187,153,199, 1,255,109,193,125,160,208, 18, 49,227,104,223,140,249,155,141, + 42, 54,201,161,100,242, 4, 20, 55, 6, 34, 66, 65, 65, 86,183, 86, 75, 76,219,209, 99, 83,129, 72,152, 69, 90,109,170, 74,128, +173, 41,186,183, 90, 85, 27,117,226, 26, 99, 94,119, 36, 85, 19,242, 46,245,170,205, 65,221,156,144,141,213,155,213, 65, 79,150, + 53, 75,146,212,155, 34, 16,187,130,171, 34,209, 36,137,154, 87, 53,134, 38, 44, 68,160,106,205, 90, 98, 30,170,170, 25,177,228, +204,181, 26, 65, 3, 33,117, 19, 96, 53,139, 52,151,187, 91, 45,200,137,132,130,238, 25,208, 8,112,137,225, 3, 19,130, 27, 35, + 59,154, 59, 50, 99, 3, 38,240, 46,247,173, 53, 0, 26,139,120, 29, 34,145, 14,232,136,210,119,128,196,132, 70,104, 13, 93,107, + 74,130, 76, 90,155, 15,197,217, 88, 36, 5,130,135,136,226,141, 58,206, 97,194,255,130, 4,166,129,164, 80, 3, 24,225,233, 49, + 93, 33,143, 85, 43,208,104, 45,141, 53,202,219, 61, 56, 64,115,115,112,142, 15,193, 60, 94, 0,177,186,137,174, 99, 72,209,213, +235,219, 61, 41,124,219, 75, 69,177, 7,141,247,205, 8, 42, 3, 2,100,154,207,231,119, 31,158, 92,220,218,208, 90, 73,198, 63, +199,209, 9,221,205, 1, 10, 1, 3,158,233,156, 70,240,231, 56,150,123, 59,129, 57, 70,191,208, 1, 89, 77, 3,135,141, 68,238, + 22, 29,244, 51, 3, 20,158, 93, 29, 16, 1,106, 25, 74, 51,192, 37,170,157, 59,119,225,145, 43,143,125,174,239,202,176, 60, 61, + 89,188,241,250, 27,111,222,185,247,198,155,215,175, 94,219,239,186,254,253, 79,231,205,237,201,209,193,126, 81,155, 72,234,102, +199,194,204,148,178, 72,215, 79,152,243,100,210,167,110, 42, 29,231, 44, 93, 39,179,201, 84,209,172,217,201,201,209,225,222,195, + 58, 44,221,177,235,251,233,124,109,251,220,165,217,108,242,218, 75,223,113,228, 23, 95,252,209,247,190,247,153,215, 95,253,254, +201, 98,245, 35, 31,250,224,131,135,247,111,221,191,247,218,141, 91, 63,250,252, 39, 94,254,206, 31,125,240,233, 31,218,122,228, + 49, 19, 70, 78,192,224, 90,221, 73,235,138, 40,113,198, 46,165,211,211,147,255,241,239,253,221, 27,111,221, 21,162,218, 60,247, + 19, 60, 62, 78, 57,137,160,162,215, 82,169,217,216,196, 3,108,170, 9,248, 61,239,124,226,226,214,230,250,250, 26, 16,150,213, + 10, 12,202,241,162, 52, 61,172,181, 93,191,122,241,252,197, 7,247,119, 30, 60,124,120,119,111,255,238,253,135,187, 7,135, 67, +109,139,197,170,149,242,228,163,151,126,230, 39,254,242,179,239,123,207,238,189,157,219,183, 30,174, 63,246,232,245,155,215,110, +237,220, 91, 27, 86,175,127,239,181,173,233,108,227,194, 6,145,100, 72, 21, 65,152, 57, 37, 4,112, 16,119, 37, 36,102,170,138, + 8,174,224,102, 77, 56,155, 55, 38,142, 37, 60, 50, 50, 73, 80, 28,123,145, 56, 75,164, 46, 17, 99,107,174, 45, 96, 15, 98,238, +146,115,120,236,204, 20, 9,107,105,204,148, 19,107, 43,205, 92,128,152, 72,221,204, 32,117,130,103,180,114, 55, 3, 26,205,157, + 66,132,152, 76, 27,142,188, 16, 68, 55, 34, 34, 34, 1, 84,142,122, 43, 17,130, 10,140,167, 19, 38, 34,114, 64, 38,142, 41, 1, + 49, 19,176,155, 26, 52,226, 12,140, 86, 11, 34,114,226, 82, 42, 40, 72, 39,230,170,181, 32,114,128, 7, 36,103, 48, 0, 0,117, + 23, 30,153,125, 72, 72, 32,173, 54, 64,140,189, 8,191,109, 27,117, 96, 78,110, 54, 50, 67, 16,163,106, 27,129,180,241, 16,213, + 20,136,136, 9,137, 77, 13,140,192, 13,192,145, 29, 99,126,196, 36,196,181, 44,199,157, 23,202, 8,140, 68,134,179,177,170,187, +186,183, 58, 40, 19, 35,177, 89,137,210, 53,170,155,121, 74,172, 6, 67, 89, 17, 51,185, 1, 35,186, 6,156, 42,254, 3,194, 88, + 20, 50, 11, 0,154,214,102, 65, 56, 32, 66,114, 4,100, 71, 38,107,110,213,144, 72, 56,215,225, 20,226, 21, 70,193,131,138, 83, +188, 3,185, 27, 34, 26, 1, 75,151,192,177, 12, 43, 17,110,238,225, 96, 28, 86,131,107, 67, 66,111,109,124,225,177,152,154, 91, +197, 52, 69, 97, 66,215, 85,165, 88,107,135,113, 17,125, 88,173,214, 38, 61,112, 82,195,214, 76, 85, 83,202, 68,104,102, 96,218, + 39,169,138, 10, 4,222,136,176, 26,186, 26,161,115,159,181, 85, 48, 99, 17, 36, 0,192, 24,130, 49, 32, 82,114, 85,111, 13, 56, +210, 60,142, 64,194,236,214, 98, 47, 11, 68,232,134,128,106, 13,200, 4, 18,133, 61,180, 66,112,161, 17, 49,246, 28,174, 81,163, + 21,228, 36,137,220,206,158,219,241,208, 66,138,105,134, 70,254,197, 93, 68, 0, 7, 25,171, 69,163,150, 41,200,145,163, 35, 42, + 82, 98, 8, 60,202, 60, 1,221,226,102, 38, 86,219, 40, 58,138,212, 83, 92, 30, 99,139, 13, 64,196, 58, 62,211,149, 70, 58, 54, +142,185,218,168,135,185,219, 72,230, 20,243, 10, 56, 78, 89, 96, 20, 37, 70,252,214,222,174, 5,198,159,232,230,253,116,218,238, +222, 63, 89, 14,179, 94,220, 13, 34,179,115,246, 30, 64,148,241,171,233,196,142, 16,234,153, 72, 42, 32,142, 23,195,120, 85, 32, +193,152,130, 38,160,248, 47, 84,164, 4, 1, 24,194, 0, 39, 16,140,151, 8, 15,168,207,217, 35, 0,154,153, 46,151, 67, 41,128, +222, 77,250,103, 63,254,209,231,152,172,233,238,253,123, 47,125,255,141,189,131,213,206,157,157, 63,125,229,123,203, 82, 38, 93, +119,126,107,123, 99,125,125, 99,125,115, 62,237, 19,103,206,196, 44, 73, 40,231, 46,231,174,239,167,169,159,244,253, 84, 82,154, +116, 61,174, 37, 71, 91,158, 46, 87,203,227,221,187,183,110,190,249,170,186, 79,187,201, 39, 62,254,195, 31,250,145, 79, 28,236, +239,253,238,215,127,243,167, 62,255,217,225,244,120,177, 56, 80,131,195,163,197, 75,175,191,254,161,103,158,249,214,119,190,253, +226, 99,239,244,178,114, 4,104, 8, 77, 49, 37, 51, 96,132, 76, 12,173,254, 15,127,251,111,254,206, 31,253,233,198,218, 70, 35, +211, 86,115,215,109,111,108,181,218, 8,200, 84,193,161,105,139,177, 44, 1,182, 90, 63,252,222,167,250,190, 83, 53, 51,155, 77, +103, 31,123,254,249,207,124,230,179, 77,109, 50,157,130,211, 43,175,190, 6, 79,182, 27,183,111, 95,187,181,115,231,193,131,213, + 48, 20,243,182, 24, 38, 57,255,248,103, 95,248,202, 23, 62,173,170,119,239,220, 74,235,235,215,191,255,242,195,239,125,127, 99, + 99,122,120,120,124,176,179,119,121, 99,115, 50,205,194,162,205, 21,130, 28, 50,126, 1,205,212,192, 28, 76, 56, 81,130, 85,171, +238,142,156, 16, 49,167, 14, 33, 58,132,241, 56, 69, 74, 57,139,171, 25,186, 75, 78, 35,146,158, 32,247,221,104, 24,163, 68,200, +241, 5,213, 82, 78,151, 67,206,194, 35,154, 70, 82,192,143,220, 83, 74, 62, 42,188,226,235,193,103,103, 43, 72,146,136,197, 74, + 68,205, 8, 37,155,233, 72,123,113,116, 4, 38, 2,228,177,177, 77, 33, 81, 26,241,134,169, 79,181, 52, 0, 15, 69,158,105, 35, +102, 2, 80, 43,194, 25, 88,172,213,161, 86, 2, 28,159,252,224,136,236,232,216,140, 18,213,178, 66,226,156, 82,220,141,221, 44, +158,251,241, 61,119,119, 55,100,145,104, 3, 17, 16, 75, 48, 97, 4,193,213, 12, 34,216, 35,210,180, 98,152,233, 41,150,194,224, +110,228, 20, 41,173,152,210,140,226, 87, 96, 80,111, 90,137, 50,184,134,129, 62,236, 36, 65, 7,118, 51, 66, 84,115,145, 17,194, +133,128, 68, 29, 34,168, 58, 75, 66,211,214, 20, 0,162, 95, 0,163,201,131,153, 32, 80,248, 6, 96,136,221, 36,153,186,171,130, + 27, 3, 26,161,187, 27, 24, 2, 83,226,128, 18, 59,162,105,149,212,163,164,148,194,158, 75, 96, 45,126,199, 36, 34,147,201,112, +114, 72, 44,128,160,173, 34, 80,234, 18, 18,101,183,178, 90,106, 27,136,197, 69, 76, 21, 49, 17,153,153, 86,213,142,147, 18,154, + 57,212,202, 34,158,114,171,133,200, 72,164, 1,158,158, 12, 76, 48,153,117,165, 53, 64,100,164,212,101, 83, 31, 81,107,224,222, + 84,107, 35,169,204, 29, 34,116,137,107,169,230,208,106, 37,128, 81,237, 11,160, 69,153, 9, 0, 76, 13,160,178, 8,117, 83,211, +218,154,163, 41,165,222, 90,117, 48,171,134, 4, 73,146,161,184, 14,102,114,198,103,140, 60, 36, 26,186, 48, 18,231,214, 66,179, +213,136, 48,117, 29, 1,105,112, 72,226,123,135,224,148,180,148,152, 67,165, 44,110,222, 90,105,165,184,187,140, 97,198, 49,142, +248,175,218, 73,129,138,119,120,155, 83,112, 54,163, 7,208,218, 16,129, 41,153, 85,243, 58, 22,220, 34,170, 96,128, 0,110,141, + 32, 74,171, 24, 61, 67, 3, 37, 20, 4,114,215, 8,179,140,201,106, 56,203,157,141,117,168,241, 1,122,134, 47, 59, 59,128, 0, +132,180,151, 0,207,109,174, 63, 60, 56, 90,127,244, 66,169,198, 36,128, 42, 68,218, 52,226, 51,145,135, 69,112, 36, 68, 54,107, +209,207, 54,116,114,114,194,241,234, 48,162, 17, 4,128,200,220, 9, 35,102, 27, 16,232,120,228,171,187,142,140,228,241,236, 31, +255, 38, 20,241,128,120, 93,185,171,170, 46, 22,139, 88,225,174,111,109,253,200, 15, 63,251, 91,223,248,227,223,251,163,111,189, +118,227,230,167,158,123,126,123,107,253,254,238,222,235, 87,223, 60, 58, 57,238,251,188,177,190,121,254,252,185, 11, 91,219,211, +105, 63,157,206, 24,129, 25, 9, 40,229,110, 54,157, 38,233,186,233, 44,165, 46,229,220, 79,182,231,235,235, 90, 74, 25,202,201, +233,241, 80,135, 86,245,245,111,127,235, 93,143, 93, 42,101,200,235,155,107,243,181,217,164, 59, 58, 89,188,114,237,198,149,139, +151, 76,245,232,224,112, 99,115, 99,121,184, 39,147, 57, 79,167,186, 28,242,100,138,222, 82, 74,127,247,191,255,219,255,248,215, +127,147, 57, 61,220,223, 27, 90, 69,132,182, 82, 97,110,173,196, 20, 34,170,192,113, 57, 51,183,196, 60,233,242,233, 98,129, 72, + 79,189,235, 7,127,248, 35, 31,221, 62,183,209,245, 51, 18,249,157,127,246, 27,111,188,246,202,213,107,111, 14,195,112,253,238, + 91, 15, 15, 78,139,181,229,170,144,234, 11, 31,124,207,159,251,210,231,207,111,111, 62,184,127,127,178,185,189,191, 58, 93, 60, +188,255,206,119,255,192,206, 31,125,231,251,223,125,109,123, 99,109,243,220,102,238,114,164, 44, 42,214,113, 81,147,200,154, 69, +199, 26,212, 73, 88,171, 41,120,230,228, 96, 34,226, 26,114, 92,200, 97, 66, 7,204, 57, 1,178,187,147, 41, 50, 35,146, 89, 35, +238, 56,200,130,238,204,145,192,179,156,186,161, 22,100,154, 79, 59,179,120, 36, 9,178,171,170, 57, 8,163,131, 51,137,189, 13, +209,139,128, 61, 64,238,123, 83, 4,109, 30,140, 64,119, 98, 38, 32, 0, 30,133,238,161, 37,116, 35, 97, 7, 32,162, 40,136, 34, + 65,128, 33,213, 92,152,192, 65, 56, 53, 80, 34, 86, 45,110,209,218, 35, 68,200,146, 3, 56, 5, 30,127, 10, 2,120,234,165, 21, +165,208, 73,171,143, 50, 2, 64, 48,123, 27, 44, 67, 8, 14,134, 30,146, 63,118, 3, 51,141,241,135,129,159,145,100, 80,181,153, +130,116, 56,158,240,131, 75,235,216,154, 33,115, 52, 91, 17,188, 25, 1,145, 89,163, 51,253,171, 42,196,110,211,154, 5, 1,198, + 65, 9,216, 84, 57,146,215,142,200,140,146, 64, 27, 33, 37,162,166,213,194, 75, 5, 96, 77,213,148,137,133,146, 6, 6,153,101, + 44, 17, 57, 88,173, 65,169, 66,201, 96,142,110,220,101,107, 10,224, 90, 27, 9,121,115, 4, 71,150,216,177,155,153,170,145, 90, +164,143, 42, 53, 34, 6,215, 60,157,107,173,174,141,137,157, 40,165, 84, 22, 75, 71,101,230, 48,235,157,229, 44, 44, 88, 20,140, +160,110, 99, 86,149,178, 5, 80,137, 25, 60, 91, 45,204,172,181,102, 97, 7,226,177,125,137, 94, 13,163, 66,135,224,109, 60,251, +198, 56, 0,137,173,233, 56,244, 33,140, 0,110,107, 21, 73,146, 72,109,213, 90,147, 62,129, 59,139,184, 91,171,154, 66, 45, 87, +203,216,245,100,112,211,102,205, 96, 28,214,199,215, 47, 32, 2,156,152, 99,101, 24,145, 93, 51, 34,102, 18,107, 96,228,241, 91, + 65, 96, 7,109,102,208,138,197, 44,197, 89,209,136, 29, 60, 1, 33, 34,242,191,253,181,159, 12,202, 3,112, 60,116,199,146, 66, + 60,112,221,194,199, 21,138, 38, 0, 87, 10, 90, 19,130,155,186,213,113, 55,233,103, 22,148,113,186, 98, 99,155, 96, 28,144,194, +216, 31,119, 3, 60, 83, 3, 4,154, 17, 99,154,159,130,124,233,160, 65,173, 4, 66,114, 15,108, 11,140, 41,158,200,194,251,124, + 62,219,221,125,176,182, 54,163,120,153, 32, 56,208, 56, 96, 57,219,242,198,145, 16,157, 16, 1,213,198,162, 35, 33,134,112, 19, +199, 85, 65, 24,122,199, 63, 35,238, 10, 20,175, 42,139, 42, 4, 24,160, 5,146,231,237, 59, 8,156,129, 19, 60, 36, 49,132, 62, +242, 23,180,153, 3, 18, 19,148, 87,223,120,227, 51, 47,252,232,127,254, 55,254,171, 23, 62,249,185, 63,251,226,143,126,225,203, + 95,254,212, 71, 63,241,200,246,214,106,177,188,117,251,238,203,175,190,122,245,250,245, 59, 59,247, 79, 78, 22,195, 80, 12,125, + 24,134,227,211,211,227,227,163,227,227,189,163,163,253,211,163,189,211,197,137,213, 1,220, 89, 48, 75,126,223,199,159,187,119, +251,214,111,255,234, 47,205,166,179,115,151, 46,182,213,106,103,119,247,244,116,209,106, 61, 93, 13,139, 97,121, 97,123,163,148, +242,222,119,191,211, 83,143,146,235,233, 41, 96, 75,179,201,172,159,252,234, 47,253,195,255,249, 23,255,143,190,235,114,234, 87, +101, 89,181,182, 86, 75, 45, 67, 41,196, 24, 54,203,197,106,209,106,115, 83, 97, 34,226,156,152,192, 54, 54,230, 47,126,234,133, +143,124,240, 3,243,245,245,214,170,145,124,243,247,127,175, 44,235,239,125,243, 27,183,238,188,117,188, 92,238, 29, 31, 13,181, + 45, 78, 86, 87,182, 55,126,254,103,190,242,111,124,241, 69, 93,157, 62,184,123,239,202,211, 79,237,157, 30,190,244,167,223,157, + 76, 38,191,243, 7,127,114,124,111,239,252,230,124,146, 66, 53,133, 89,114, 48,172, 19,243, 25,132, 20,171, 58,161,199, 32,158, +153,137, 8,193, 83, 74, 76, 76, 36, 99, 43,221, 29,156, 82, 78, 49,206,205, 93,242,209,134,225,153,196, 65, 91,177, 46,167,216, +159, 3, 33, 18,215, 86,137, 8, 25,181,153, 48,139,196,176,193, 51, 11, 50,185, 65,102,113,143,239,102, 20,203, 13,153, 88, 68, +139, 34,141,171,203,176,253,197,208, 63, 10,218, 24, 95, 83,138,167, 58,138,164,216,178, 1, 70,205,149,180, 68, 61, 53, 0, 30, +227,212,146, 3, 32, 99,234,238,146, 50, 34,169,106,146, 28,233,158,148,187, 56,244,113,150, 17, 74, 12,222,245,189,182,166,214, +130, 99,192, 34, 66,168,205, 20, 65, 88, 40,177,171, 35, 64, 55,157,184,121,188, 3,152, 8, 29,204,205,221, 83, 18,119,143,227, +164,187,143,186, 55, 14,221, 21, 68,103,133,162,145,136, 56,254, 34, 88,252,140, 15,197, 20,169, 83,178, 86,199,126,187, 53, 2, +140,236, 16,184,230,174,115,247,213,106,129, 8,146,187, 56, 57,185,134,109, 3,213, 44,162, 71,196,136,194,232, 97,171, 7, 36, + 20, 73,173, 52, 14,254,101,107,227, 8,118,108,244, 90,252, 81,163,118, 2, 17, 1,180,213,113,171, 64, 68, 28,232, 39, 10, 66, +125,202, 2,238,218, 70,110,149,170, 82,252, 44,129,154, 41, 49, 50, 73, 60,114, 66,112,239,102,110, 17,218, 33,215, 70, 12, 68, + 84,106, 57, 61, 62, 93,155, 79, 82,223,161,191, 77,160, 68, 36, 50, 13,138, 35,217,255,199,212,155, 61, 89,150, 93,231,125,107, +218,231,156,123,111,206, 53,245, 80, 61,119,163,187,209, 3,128, 6,209,104, 16, 36, 8, 82, 32,130,146, 41, 75, 14,218, 82, 40, +252, 96, 61,248,143,112, 56,194,255,134,159, 28,122,176, 21,114,132, 77,209,164, 77,147, 65,145, 4,105,138, 34, 1, 18,108, 0, + 13,160,231,161,170,107,204,204,202,225,102,230,189,247,156,189,247, 90,203, 15,235,220,130,186, 30, 43, 58, 43,171,242,158,125, +214,254,214,247,253,190,224,178, 37,102, 78, 53, 23, 51, 67,162, 36,172, 21,106,205,196,152, 36,245,171, 30,220, 89, 24, 9, 93, +161,148,162,165, 50, 17,113,114,112,171, 97, 47, 68,140, 43,193,154,204, 70,140,204, 73,221, 97,237,245, 76, 44,134, 8,160,109, + 59,225, 36, 86, 45, 32,116, 36,225, 48, 3, 4, 55, 51, 64, 71,119,162, 68, 0,234,134,104, 72, 99, 45,162, 16, 85, 51,252,222, +255,249,111, 1, 49,152,253, 1,162, 9, 14,117, 44, 64,109,156,162,105,173,225, 88,180,216,196, 74,218,193,198, 8, 3, 32, 49, + 89, 29,139,225, 71,160, 12, 50, 34, 1,152,122, 37,143, 94, 4, 48, 55, 26,141,145, 35, 99,220, 29,144, 18,184,131,107, 56,103, + 12,198,181, 21, 34,135,117,114, 13, 81, 64,119,107, 82,115,247,246,173,141,237,203, 91, 27,201, 20,194, 78, 59,158,255, 33,180, + 3,152, 41, 35,226,248,185, 13,225,137,227, 61,195,200,145,126, 69,230,177,138, 21,105,141,204, 10,132,224, 56,159, 43, 16,199, + 31, 29, 3, 60,254, 98, 59,235, 22,188, 52, 32,105, 16, 43, 99,128, 93,199,118,175,205,217,204,251,197,141,251,244,194, 43,175, +212,220,183, 91,155,186, 26, 56,165,217,238, 46, 52, 9,150,171, 91,183, 62,255,240,253,247, 62,248,232,163, 79, 62,253,240,246, +237,219,224,222, 54,205,165,157,221,189, 75, 59,179,217,180,109, 82,219,180,137, 8,208,146, 52,210, 52,147,182, 61,191, 56,191, +241,201,103,167,171,213,107,207, 63, 55,228,161,154,175,150,171,119, 63,249,228,222,193,241,209,124, 14,136,223,124,227,181,182, +105,191,241,214,183, 94,124,238,249, 73, 71, 27,123,215,218,173,237,201,100,243,253, 31,253,224,127,248,159,254,199,219,135, 71, + 40, 50, 63, 61,203,185, 18, 33, 49,108,207, 54,174,238,238, 73,195,203,126,149,139,158,206,207,230, 23,231,134,222,164, 22, 29, +159,120,236,234,175,189,241,149,111,190,249,181,237,189, 75,192, 92,242,234,236,232, 32,211,198, 66,235,151,223,248,230,127,252, +139, 63,255, 95,255,221,191, 65,116,230,212, 16,125,251,107, 95,250,231,223,253,213,141,173,233,221,155,183, 73,232,116,190, 88, +106,249,249,207,223,155, 77,167,159,221,184,181, 51,155,238,206, 54,153, 49,165,134,145,187,110,210,164,142, 19,150, 82, 28,188, +154, 51,162,170, 73,147, 8,160,105, 36,168, 7,102,206,137, 8, 24, 17, 70, 14,164, 1, 18, 16, 81, 45,202, 66, 34,226, 96,110, +104,106, 44, 88,114, 14,111, 28,137,160,163,129, 51,177, 19, 32, 48,163,143,174, 47,140,254, 32, 18,110, 29, 52, 60, 35, 90, 20, + 8,220, 20, 20, 88, 88, 71, 22,180, 19, 53, 99,126, 58,145, 27,160,171, 90, 69, 96, 68, 86,173,238, 74,110, 16,118, 78,150,241, + 17, 32, 54, 45,190,102,159, 68,221, 89,240,226,221, 67,174,244,245,199, 44, 60, 17, 8, 30,228, 22, 64, 20,183,234,224,137,147, + 89,209,234,156,216,215,151,137,174,155,212, 82,188, 86, 12,162,128, 21,183, 74,148,136, 89,132,107,169,205,214, 54,186, 14,103, + 23,193,228, 41,101, 96, 17, 87,143,129,154,133,109,253,249, 37, 4, 34, 30,134, 65, 56, 1, 83,160, 40,205,130, 47, 24,101, 63, +236,235,108, 48, 17, 97,144,126, 17, 84,139,155, 18, 11, 16,228, 97,144,212,144,133,126, 43,128, 12,164, 94,235, 8,159, 51,119, +192, 96,240, 86,211,182,155,184,186,150,138, 76,230,170, 90,132,133,136,163,140,162,148,236,166, 72, 9, 64, 49, 37, 52,167,166, + 1,175,174,166,170,241,228,197, 90, 46, 28, 44,194, 82, 93, 53, 40,205, 97,188, 49,139, 26, 96, 51,183,216,214, 34,197,199, 37, + 10, 99,181,228, 32, 10,152,187,170, 49, 50, 49,105,169, 36, 76,192,195,176, 52,245,139,229,194,221,174, 94,218,171, 78, 65, 76, + 33, 70,140,251, 25, 9, 18,235,176,138,210,225,178, 42,146,152,132,221,131,137,225, 14,100, 53,107,173, 0,198,146,192, 71,114, +117,238, 7,100,148,196,238,241,186, 18,243,242, 80,230, 96, 68, 68, 12, 69, 43,162, 89,238,230,166,238, 22, 6, 1,110, 90, 98, + 25,155,223,173,130, 26, 49,170,153, 8,197, 5,119,220,118,198,220,236, 70,148,156,192, 84,213,140, 25,173,232,106,185, 18, 64, +240,232, 4, 64, 26,231,228,117, 1,147, 59, 34,136, 91, 5, 86,115, 32,160,166,237, 74, 94,169, 22, 66,102, 18,243, 10, 16, 37, +234,102, 10, 4, 49, 58,192,154, 61,109,163, 99, 50, 46, 59,230,107,124,196,248,172,122,192,155, 28, 16, 52, 80,199,235,234, 26, + 28,235,162, 2,220, 49,222, 13,192, 61, 26, 6,108,119,123,231,248,226,226,210,206,149, 65, 53,228,150,113, 98,139,107, 60, 96, +224,237,226,107,174,153,177, 20, 78, 27,163,145,104,191,134,101, 5,119,202,192, 28,200,137, 19, 0, 24, 0,163,243,195,247,184, +195,104, 46,122,200,234, 1, 15,178,166,105, 70,198,117,189, 13,128, 27,154, 93, 44, 87, 58, 12,127,240,135,127,252,223, 63,246, +228,222,181, 61, 48, 42,106,216,201,249,233,169, 86, 21,198,199,159,120,242,137,231,191,240,143, 16,250,163,131,147,243,197,221, +123,183,110,220,188,253,217, 71,239,223,189,115,251,167, 63,127,183, 47, 58,219,152,238,110,110,237,237,108,238,110,237,182,140, +203,213,162,148,114,249,210,229,179,219,183,127,242,222, 7,207, 60,254,152, 17,167,166,217,219,222,154,159, 93,172,134,238,108, +177,250,248,198,237, 55, 95,127,233,207,254,226, 79,135,161,183, 58, 72,106, 39, 27,155, 27, 93,243,123,191,255,187,251,167,103, +147,201,180,154, 49,209,227,215,174,236,108,109, 94,218,217,217,154,117,128, 80,171, 86,173,102,182,234,247, 46,150,171,139,101, +127,177,236,175, 63,114,245, 55,127,245, 87,190,244,234,203,237,100, 54,172,150,249, 98,245,224,193,225,253,251,247, 30,123,230, +165,183,190,254,173,247,223,253,249,211, 79, 61,245,242, 75,175,254,228,221,159,255,218,151,190,252,221,183, 94,125,233, 11,207, +156,156,236,159, 28,174, 38, 91,155, 63,123,247,253,199,175, 63,118,122,112,126,235,246,225,181,221,205,199,119,247,218,134, 29, + 16, 81, 8,153,133, 13,220, 80, 5,132,147,160, 91, 29, 42, 48, 10,176,171, 73,219, 0, 34, 33,171,153,169, 17,184, 75, 48,204, + 24,192, 57,174,205, 12,200, 2,174, 0,100,238,200,200, 68, 40, 44,241,241,138,110, 53,112, 38, 66, 70,244,224,227, 57, 58,186, +106, 85,109, 82, 2, 68,181, 1,145,137, 4,221,152, 73, 53, 3, 16,114,160,131, 29,132,131, 29, 31,152, 92, 55, 69, 64,173, 38, + 77, 19, 89, 39, 97,174, 22,126, 43, 90, 55,140,115,192,243, 71,230, 33, 58,128, 51,177,105,193, 17,193,228, 90, 11, 34,115, 35, +102, 6,110, 44,141,187, 18, 11, 11, 23,205, 14, 21, 28,164,105, 3,104,204, 45, 6, 2,132, 0, 89, 34, 79,148,144, 37,182,138, + 72, 84,149,153,197, 93, 75, 85, 4,239, 79,142, 48, 46,153,132, 64,158, 82, 3, 0,158, 32, 86,196, 62, 14, 76,152, 82,210, 82, +106,173, 73,196, 1, 92, 43, 34, 19,187, 23,139,112,144, 3,148, 60,116,147,137,186,187,123,209,146,226,122, 75, 17, 29, 97,112, + 87,133,182,233, 76, 77,213,136, 83,188,165,116, 40, 36,140,163,241, 20, 3, 34, 29,134, 63, 55, 80,171, 36, 20,171, 2,228,134, +136, 28, 64,173,198,218, 54,110, 12, 14,196,142, 14,102,181,152,213,117, 28, 29,152, 57, 54,203, 4,164,238,213,106,173,133,136, + 92, 29, 34,193,134,228, 53,115, 34,100, 2, 68,175,185,150,156, 36,141, 7,101,172, 3,181,154, 25, 32,172,111,134,142,140,238, + 94, 44, 35, 51,184, 14,185,110,206,218, 96,187, 3,161,170,150,193, 83, 51, 58,154, 64, 1, 89, 24, 92, 75,149, 36, 8,144, 75, +145, 17, 22,133,170, 53,210, 21, 0, 68, 68,238, 24,141, 95,156, 72,213,180, 26, 11, 2,160,179, 65, 37,112,179,234,220, 16,178, +120, 85, 18,202, 67, 17,118, 70, 82, 71, 55, 80,173, 49, 55,128,187, 89, 89,167, 70, 41, 16,208,142,152,139, 65, 92,244,251,123, + 0, 0, 32, 0, 73, 68, 65, 84, 85, 16,144,212,154, 41,130, 3,178,170,142, 53,216, 44, 14,170,181,198, 41, 43,163, 80, 49, 54, +122, 96,208, 51, 16,137,193,117,116,143, 64, 44, 98, 20, 32,175, 6, 3,224,224,106,140,110, 6, 66,148,167, 94,122,246,232,254, +254,197,201, 41,196, 90, 6,217,189,128,213,248, 93, 0, 55,119, 33,212, 81, 94, 71, 8, 87,127,116, 66, 5,191,192, 28, 24, 71, +121,124, 92,118,233,200,234, 27, 15,254, 17,140,103,174,237,164,237,143,231,232,177, 45, 3,246, 16,243, 71, 33, 31,220, 57,234, +113, 41, 44,237,182,214,144,192, 29, 25,208, 70,192,177,197,197, 5,209, 84, 61,172, 67,230, 70, 76,100, 0, 64, 15, 21,195,181, +130, 19,103,189,141,104,181, 53,157,202,171, 59, 35,241,184, 64,246, 16,160,220,223,123,255,221, 15, 62,248,248,141,141, 87, 64, + 85,152,128,192, 74,129,106,142,188, 58, 59, 39,233,221,212,129,246,118,118,247,118,247, 94,127,245, 43,192,191, 93,170, 61,184, +127,255,206,135, 63,251,135,119,222,249,233,187, 31,124,252,233,141,201,228,206, 80,244,210,238,229,221,205,141,249,114,104,219, +110,255,232,206,116,214,238,109,108, 59,209,222,246,206,131,227,211,161,148,101, 94,221, 59, 56, 58, 57, 91, 92,218,217, 94,172, + 22, 47,126,225,229,227,163, 7,139,243,147,211,253,229,179,207, 62, 55,157,110,150, 92,150,253,106,119,123,231,185,103,158,220, +156,117, 94,243,233,217,249,173, 59,119,247,143, 78,246, 54,102,109, 55, 81,211,147,243,243,154,203,203, 47, 60,247,242, 23, 94, +218,187,186, 71, 32,231,167, 39,243,249,209,225,225,131,131,163,227,251,199,135,127,244,215,223,255,151, 67,189,122,237,250,209, +209,193,191,252,111,254,219,139,255,229,127,254,205, 55, 95,252,194, 11, 79,222,186,249,233,229,107, 87,101, 99,243, 79,254,195, +247,106,191, 80,240,183,127,242,222,222,214,198,172,155, 16, 0, 97, 34, 6, 96, 34, 1,150,134, 56, 26, 54, 80,107,149, 70, 90, + 67, 35,144,196, 41, 49, 16, 49, 38,247,202,204, 30, 81,205, 0,224,226,250, 66,235,166, 3,160,152, 35,152, 43, 11, 58,128, 43, +146, 25,139,152, 42, 33, 57, 33, 17,137,136,153,229, 82,201, 92,132, 75, 45,132, 40,156,108,252, 0, 56,161, 59, 84, 66, 10,103, + 5, 26, 35, 65,214,154, 72,128, 88,205,153, 48,181,169, 86,139, 38, 16, 23, 6, 68, 32, 79,148,220,130,132,238,174,154,218, 6, + 17,115, 45, 68, 6, 64,194, 2,204, 96, 26, 48, 39,225,196, 34,160,213,213, 48, 49, 35, 3, 49,228,146,218, 86, 77, 67,110, 41, + 81,204, 4,201, 37,248,169, 42,210,150, 97, 8,247, 61, 32,113,219,160,249,120,251, 0,142, 41, 39, 97,114, 51,171,138,204, 14, + 68,173,160, 65, 56,193,199, 34,107, 48,112,151,166,209, 82, 25, 81,154,206,181, 6,214,145, 16,221, 12, 71,132, 50,154,186,176, + 16,249, 80, 7,116,145,148,170, 90,112,229, 18, 39, 45,153,155, 54,170,249, 34, 13, 32,228, 80, 3,233, 21,223,175,187, 43,183, +201, 21,107,237, 83,219, 70,164, 68,154, 73,156,224,241,164,155, 59, 19, 99, 98, 0,179, 92,194,202, 15, 0,169,109,205,212, 29, + 74,173,106, 5,137,192,141,153, 85, 13, 32, 14, 40, 77,169, 1,130, 90, 98, 17, 33, 73,216,180, 26,154,235, 90,116,137,100,111, + 84,241, 50, 11,242, 80, 74,180, 5, 55, 77,155,115, 30,245,166,234, 36, 76, 78,106, 5, 3, 26, 42,220, 52,221,241,209, 73, 25, +122,217,232,214, 86, 35, 8, 51,103, 41,165,109,219, 64,218, 49, 49,184, 73,211,230,156,173, 90,155, 18, 32, 91, 20,234, 26, 0, + 99,234, 58,173,197,170, 73, 74, 76, 28, 41, 48,138,192,141,123, 53,147,113, 76, 5,138,227, 94,195, 87,128, 77,211,128,187,153, + 17, 1, 10, 43,132, 15, 42, 94, 21,129,221, 53, 34,230,182,201, 67, 14,219, 24, 51, 69,106, 86, 49, 58,204,200, 1, 24,209,136, +205, 28,129,148, 72,208, 7,173,252,175,255,197,239, 0,211,152, 22,197, 40,239,137,252,207, 72, 20, 48,112, 2,139,104, 49, 32, + 32,104,244,123, 69,163, 49,162, 1,225,116,107, 99,117,113, 81,134, 12,235, 54, 15, 0, 36, 74, 30, 39, 30, 18, 32, 71,149, 19, +141,253, 79,164,102,142, 30,209,159, 32, 34,132, 49,115,116,203,140, 49,211,135, 70,118, 71, 4, 70,138, 49, 90, 26, 94,204,207, +157,100,218,166, 88,164, 32, 71,205, 8, 34,193,120, 73, 12, 23,206,120, 48,115,136, 94,184, 6,144, 69,253, 50,132,137,127,116, +144, 5,136,201, 70,171,205,250, 18,243,139,133, 47, 2,128,193,184, 24,142,215,144, 1, 17,137, 32, 33,150,248,184, 3, 34,138, +180,101,181,252,189, 63,250,179,141,217,244,139, 47,190,156,102, 27,205,108,106,165,172,161, 56, 44,109, 75, 76, 62, 82,250, 44, +231,222, 74, 6,103, 93,173, 58,150,167, 95,122,245,173,239,124,231,159,126,247,183,158,188,122,233,133,167,159,190, 24,234,205, + 91,159,223,188,123,239,228,244,120, 85,202,208, 15,253,170,223,158, 78,221, 29, 72, 0,109,185, 88,170,249,114, 40,243,179,249, +107, 47,190,112,116,124,242,196,245, 39, 38,211,174,233,218, 82, 43,131, 62,245,196,227, 47,190,244,236, 87, 95,127,253,165,231, +158,106, 18, 31, 29, 29, 30, 62, 56, 62, 61, 59, 35,192, 47, 62,247,220, 83,215,175,129,219,124, 62,103,162,175,126,229,181,151, +158,123,113,115,119,135,128,143,246,239,220,189,115,235,214,157,123,183,246,247,239,236,239,127,242,249,221, 91,247,247,191,254, +213, 55, 31,125,252,241,239,125,239, 79,158,186,254,244,116,186, 49,191,255,241, 35,123, 27,171,161,220,188,125,247,251,255,240, +246,139, 79, 61,250,119,111,191,123,247,238,254,181,141,217,230,172, 19,100, 2, 70, 22,230,196, 66,179,110,218,182,173, 69,176, + 12,169,147,177, 45,152,137,153, 8,204,153, 24, 99,225,204,236, 16,185,209,148,162,132, 19,130,136, 36,230,227, 47, 33, 41,197, +220, 93,136,128,208, 17,144, 88, 1,136,198,107,187,131,119, 41,185,234,144, 7, 51, 72,146, 20, 52,165, 54, 4,127,117, 75,210, +134, 14,209, 36, 42,181,230, 90, 36,138,120,172,144, 8, 16,148, 90,226, 94, 63,106,211,110, 68,108,181,144, 52,137, 17, 0, 57, + 73,184, 38, 9, 49, 49,115, 26,255, 92,112, 48,171, 44,140,200,102,165,228,210,180, 83, 2,172,246,240,204, 53, 38, 97, 2, 53, +195,145,154,142, 14, 94,189,180, 77, 87,107, 86, 48,102, 1,196, 16,184,221,109,212,166,205, 1, 42, 50,147, 48, 49, 25,232,200, +104, 10, 65,149,200, 32, 56, 53,228,224, 6,128,106,156,146,176,184, 42, 16, 49,146,175, 87, 94,163, 64,132, 35,226,219,204, 24, +121, 4,175, 3,112, 18, 68,180, 81,119, 4, 55,101, 78, 68, 80,171,154,107,132,245,144, 27, 51, 11,153,165,150,130, 8, 41, 53, + 41,117,146, 18,177,172, 22, 23, 97,202, 48,173,210,180, 81,218,227,102,174,217,199, 2,136, 58,210, 52, 71,155,156, 69, 86, 9, +129, 0,101,141, 26, 4,198,228,136,170,217,209,171, 86, 26,229,221, 17, 68, 59,154,250,133,221, 0,193, 83,147,130,101,130,225, + 7, 49, 47,121, 32, 33,102,114,119, 73, 9,145,107, 41, 57, 23,119,107,186, 14,144,181,234,233,217,121, 39, 52,153,205, 0, 80, +154,198,212, 21,128, 16, 83, 74,102,166,213,208,163, 62,139, 99, 67,205,140, 85, 85,107,173,181,198,242, 88,146,184, 1, 2,113, + 98, 32, 28,135,205,248,201,169,154, 85, 22,138,221, 28, 18, 19,178,170, 66,236, 62,152, 3,223, 54,174, 15, 1,153, 41, 53,201, + 77, 9, 49, 10,168, 83, 34, 96, 41,125,209, 90, 25, 9,137,204,107,232,207,225, 37,115, 55,102,174,213,115,206,104,198, 18,199, + 23,149, 82,248,191,251, 23,191, 3,224, 28,105,145, 96,177, 1, 19,137,123,229,135,101, 77,177,175,199, 24, 10,204,215, 35,188, +187,134, 65,241,244,240, 65,201, 89, 34, 76, 28,213, 31, 78,227, 83, 17, 53,101,128,142,196,204,227,138,213,171,240, 90,133,143, +190, 65,138,159,127, 88,105,198, 31,224,216,143, 8, 54,250, 20, 31,222,183, 1, 4,225,108,209, 95,217,221,169,106,163,253, 43, + 8,108, 48,166, 83, 31,190, 26,214,225,218,113,147, 7, 4, 20, 29, 81,163,129,107,196,136, 83,112, 8,145,214,255,215, 72, 61, +255,207, 92,240,107, 95, 79,148, 50,192,136, 99, 30,205,185, 4,235,181,130,139, 72, 93,156,255,193,159,252,229,253,253,131,215, + 95,251,202, 19, 79, 61,237, 96, 22,128,198,112,164,153,186, 86,115, 3, 45, 72, 13, 11, 73,219,105, 84,163,205,102,139, 97,249, +217,207,127,254,217,167, 31,191,240,234, 27,175,126,237,173, 95,255,173,223,254,175,126,243,187,223,254,245,111, 63,251,200, 85, +103, 17,150,123, 7,247,139,215,205,217, 12,137,102,221,100, 53, 12,125, 95, 86,195,112, 60, 63,107, 89, 54,166,221,103, 55, 63, +237, 23,103,195,197,217,238,238,246,245, 39,174,111,110,110, 47, 23,139,155, 55,111,124,248,241, 71,247,247,247,135, 85,143,136, + 77, 74,179,233,228,246,225,254,223,189,243,238,135,159,221,188,186,119,233,245, 87,190,248,196,245,235, 41,137,214,122,239,246, +173, 27,183,110,222,188,117,247,206,225,131,123, 15, 14, 62,187,187, 63,191, 88,129,251,175,188,245,214,213,107, 79,124,255, 63, +253, 85,206,171, 87,191,242,198,189,195,147,147,253,123,105,107,230,102,247,238, 31,124,250,241,231,179,212, 92,221,222,110, 83, + 23,194, 2, 9,165, 70,218,182,221,232,102, 1,144,106,154,212, 38,137,102, 48, 98, 36,226,182,109, 25,133,133,185,145,168,149, + 8,248, 84,172,187,181, 42, 51, 55,209, 53,170, 21, 9,132,133,137, 12, 92, 18,197, 14,159,144,152, 4, 69, 90, 22, 38,138,162, + 75, 68,172,165, 6, 42, 81, 82, 66,162,166, 73,128, 81, 65,229, 76,132,232, 36,204, 72,170,138,177, 41, 5, 39, 20,150, 20,184, +193,200, 72,120,141, 1,130,146, 52,102, 70, 12,113,193, 67,230,184, 85,172,171, 10, 16,204,136, 4,192,137, 88,132,133, 57, 70, +230,201,100,106, 90,221, 97, 93,230, 14, 44, 4,128,185,150, 70,154,177,244, 44,168,208,128, 57,231,240, 92,147, 8,145,132, 43, + 49,214,161, 16, 31, 51, 7, 55, 51, 85, 55, 67, 98,112, 67, 87,100, 66, 22, 87,139,180,163, 19,130, 3, 49, 17,179,175, 39,167, + 68, 88,171,141,237,114, 50, 62, 21,196, 50,150,237, 18, 18,203,168,113, 17,141,117,215,200, 68,228,170, 68,205,136,254, 39, 16, +110,214,174,188,134, 37, 89,205, 16,166,238,166,113, 5,179, 98,102,110,150, 38, 77,252, 40,153,217,193, 89, 82,108,176, 97,109, +122,102,110, 12, 44, 42,125,106,169,200, 8,107,239, 54,104,101,102, 2, 66,162,106,149,137, 72, 18, 35, 73, 18,119, 71, 71,226, +168, 80,164,120, 32, 71, 88, 97,148,196, 1,160,224,168,241, 18, 17,179,176,152, 71,174, 62,220, 56,218, 78, 59, 34, 86, 53,215, + 90,134,220, 15,195,108, 54,225,148,220,141, 4,133,132, 89, 68,162,147,207, 89,136,132, 49, 0, 67, 0, 66, 92,205,173, 42,160, + 71,212,107, 4, 50, 3,144,112,148, 20, 33, 11,160,137,196, 59, 50, 20, 93,148,166,197,241,123,240,181, 93,195, 61, 42,109, 17, +128,176,105,146, 57,130,187,230, 16,171, 67,190,114,119,116,211, 36, 76, 76,170,102,181, 68, 69,109, 8,132, 44, 98,230,165,148, + 54,113,211, 74,108, 61, 29, 44, 9, 13,165, 8, 6,163, 25,108,124,169, 99, 12,235,128,196,160, 6, 8, 76, 2,192, 14, 15, 39, +111, 26,173,132,235,109, 99, 68, 4, 99,201, 73, 68,232,236,160,134, 99,137,135,233, 56, 60, 3,120,164,176,105, 77,181,199, 0, + 90,140,139,166, 88, 20,248,248, 66, 65,128,245, 86,127,124,103,196, 15,222, 60, 10,116,102, 27,155,251,135,183,251,154,133, 81, + 3,252,141,163, 84,191,198, 12,208,232,118, 7,196, 16, 15,215,189, 34, 96,190,166, 91,142,160, 40,136,124,214,232, 60, 26, 43, +104,215, 71, 60,172,109,249,136,107,105,117,157,132, 25, 75, 78,124,188,167,140,105,103,100, 26,242, 10, 17, 87, 67,255,127,252, +238,255,254,226,211, 79,209,214, 54, 0,212, 33, 55,179, 41,152,186,186,107,193,166, 3, 43, 78, 13, 24,214,190,119,173,221,246, +222,205, 79,222,255,252,195, 15,190,240,218, 87,158,126,241, 69,116, 60, 61, 62,182, 62, 83, 35, 59,179,173, 55,127,249, 55,126, +229, 55,126, 19, 17,255,175,127,247,191,253,219,223,255,253,173,141,173,157,205, 45, 98,222,219,218,186,183,127,240,200,165,157, + 55,191,243,173, 23,158,121,122,210,180,205,116,186,123,105,215,115,222, 63, 60,120,247,230,173,227,227, 7,234, 54,235,166, 59, + 59,219,128, 50, 44,207,151,125,127,112, 60,191,123,127,191,106,221,217,218,126,233,153,167, 95,126,225,197,203, 87, 47,245,125, +127,126,124,124,120,116,124,251,238,221,123,199, 71,243,139,213,209,233,233,217, 98, 85,213,182,187, 4,147,102,123,107,107,239, +242,229,183,190,250,181, 31,255,252, 71, 87, 62,127,228,249,151,223,184,243,249,199, 31,126,120,227,213,151,159,157,144,236,237, +236,204, 38,157,130,245,171, 85, 41, 58,237, 90,146,132,192,196,108,170,146, 18, 68, 87,167, 97,173, 53, 9,143,155,109,194, 64, +134,153,234, 72,175, 83, 23, 9,254, 4, 54,147,198,170,169, 26,194,216, 86,170, 69,137, 81,132,115,174,130,192,204,213, 10, 66, + 66,117,133,113, 71,110, 6,106,230,128,210,112,205, 40,140, 64,148, 36, 85, 85, 0,173, 96,140, 66, 72, 85, 11,115,211,182,147, + 82, 11,141, 97, 33,119, 71,179,232,175, 71,245, 98, 0,157,180, 86,205,216, 56,181,163,251,203, 11,179,152,213,232,138, 67, 67, +145,164,170,241,123,196,104, 85, 75, 45, 76, 34, 44,165, 84, 36,228,160,116, 9,187,123, 24, 31,133,197,204, 29,161,105, 83,213, + 98,102,132,136,196, 14,222, 54, 83, 5,245,106,225,144,171,170,137,153, 89,204,117, 93, 58, 8, 76, 80, 53, 74,143,185,214, 98, + 1,116, 84, 71, 22, 0, 35,145,144, 7, 80,216,181,186,131,134, 58, 73, 2, 60,162, 63,136,193, 67,183,197,136,156, 84, 22, 50, +163,192, 8, 6, 70,152,137,169,237,134,146, 17,136, 57, 17, 51, 32,155, 85, 66, 48,181,120,138,161,196, 10, 84, 13,204,171, 17, + 59, 37, 65, 96,228,240,150, 97,173, 89,109, 0,160,104, 67,197,113, 8, 53,116, 52,116,115,151, 70,220,204,214, 81,116,105,187, +104, 45,119,215,200,129,131,198, 83, 27, 78,188,216, 6, 39, 71, 55,205, 68, 72,192, 81,224,178,222,196,114,117,117, 0,173,181, +105, 4, 17,133, 69,173, 56, 96,211, 38, 34,210,170,174,202,194, 78,120,126,186, 74,132,179,217,180,239, 11,153,233, 80,129, 93, +205, 71,249,138,198, 47, 28, 49,125, 0, 46,185, 7, 87,162,113,126,134,112, 19, 6,222, 38, 10,179,194,192,231, 88,173, 34, 96, + 74, 77, 84,227,104,173, 34, 34,210, 84,172,161,143, 59, 82,180,117,135,244, 87, 77, 1,157, 24, 17, 36,212, 39,213, 74,148, 72, + 8, 70,235, 45, 69,105, 98, 72, 10, 34,160,230, 53, 23, 66, 76,146,140, 73,163, 48, 18,209, 69, 74, 41,170, 22,229, 24, 1,134, + 76,235,253,166,153, 23,178, 17,219, 11, 8, 96,133, 25,145,192,107,104, 30,177,213, 15, 82,123,144, 57, 35, 96,229,228,190,246, + 56, 58, 2, 34, 51, 26,185, 87,136,162, 26, 48,114, 5, 39, 13,108,204, 47,118,167, 30,228,130,241,237, 30,112,190, 17, 98, 9, + 99,187,196,104, 57,247,200,227,164,212, 52,173,156,158,247,151,183,167, 2, 99, 27,153,227,218,239,131, 0, 96, 40,145,190,131, +240,138,174, 51,169, 15,145, 8, 16,107, 85,164, 4, 96,241, 19, 2, 8,204,102, 3, 17,106, 29,101,122, 30, 59,139,226,151,195, +104,160,140,175,129,191, 40,175,124,152,140,202,195,162,207,101,103, 99,235,251,111,255,253,123,159,124,244,229,183,190, 89, 42, + 53,210,160, 87, 7, 3, 78,216,180,132, 6,188, 1,230,117,117, 65,210,154,241,219,127,245,103,117, 24,190,246,205, 95, 17, 73, +101,121, 65,169, 67, 53, 36,196, 90,250,229,162,217,220, 41,231,231,142,242,155,255,228,191,252,147,255,248,215,247,246, 15, 4, +169,107,186,231, 94,120,238,219,223,254,149,107,143, 60, 74, 8,121, 24,212,252,236,248,248,231, 63,253,241,225,254, 97,173,182, +183,189,117,105,119,103, 99, 99,179,152,158,156,158,156, 47, 78,115,191,186,127,116,188,127,124,122,101,119,251,217, 71, 30,191, +121,112,255,177, 71,175, 60,242,200,229,163,147,147,253, 59,119, 78,151,139,207,110,223,187,127,120,152,107, 57,154, 47,122, 85, + 66,220,217,152,136,240, 70, 55,121,252,250, 83,117,181,186, 40,250,246, 79,127, 74, 77,123,253,209,195,103,158,126,225, 15,254, +246,255,251,222,247,127,148,152,209,109, 99,218, 93,217,217,218,106, 91,132,170, 73,118,184,217,156, 78,185,109, 4, 73, 68,184, +149,146, 43, 34,153, 89,173, 53,110, 63,193,185,141,135, 83,205, 69, 82,120,183,137,201,181,142,159, 31,128,212, 80,233,189, 90, + 13,196, 41,160,165,134, 45, 91,223,231,168, 91,226, 16,102,208, 9,172, 47,165,225, 20,142,238,212,140, 98,111,173, 35,230,133, + 57, 5, 14,101,194,162,224, 21,148,132,208, 88,189, 70,147, 92, 34, 46, 57, 27, 0, 75,195,113, 50, 10, 43, 80, 39,104, 70,134, +149, 41,153, 23, 38, 49, 53,103,168,150,107, 44,105, 29,137,164, 12,153, 25,153, 83, 76, 0, 44,109, 41, 61, 16,136,176, 35, 10, +167,162, 67, 0,187,172, 26, 39,214, 90, 17, 80, 72,220,172,145, 6, 16, 86,195, 50, 81,130,128,224, 56, 17,170,106, 45,181, 0, +142, 0,250,170,165,102,107,187, 41,144,106,209,212, 54, 96, 0,234, 96,174,164, 12, 72,137,205, 42, 98,138,200,126, 44,129, 97, +244, 60, 56, 17, 22,211,177,155,211,220, 67,107, 2, 43,171, 33,132, 32,115,147,212, 2,146,106,169,165,162, 41, 50, 17,115, 55, +219,204,253,146,169, 85, 83,135,202,132,230,238, 9,192,200,172, 48,146,113, 48,138,141,132, 72, 82, 89,245, 0, 54,246, 72, 69, +114, 7, 89,132,242,144, 29, 92,213,164, 33, 6, 6, 83, 13,142, 46, 32, 33,230,220,143,167, 30,162, 36,177,234, 8,128, 99,250, +193, 57, 53,106, 21,192,220,106,100,233,205, 76,173, 74,106, 29,176,150,149,128, 51,146,130, 55, 77, 34, 4, 51,173,106, 77,106, + 88,176, 20, 11, 93,187, 2,152,218, 80, 74, 45,101, 99,214,154, 65,211,165, 50, 12, 57,175,144, 18, 39, 17, 33, 38, 30,138,145, + 16, 53,108, 10, 94, 43, 0, 66, 29,101, 20,205, 67, 74, 41,218, 80, 29, 42, 19, 7,235, 66,171, 34, 25,161, 32, 73, 4,223,250, + 85, 38, 66,100, 39, 0,115, 71, 97, 83, 5,168,132,194,141,128,197,248,111, 81, 33,195,210,228,190,215, 90,153,176,145, 68,212, +104,169,200, 24, 31,110, 48, 21, 38,117,119,245,229, 34,167,196, 28,101,232,165, 38, 35, 2, 52,192,162, 86, 75, 77,232, 73,146, +180,205, 76,107,209,162,160, 0,232,230, 69,181, 0,130,161, 71,210,223,213,144,216, 29, 92, 67,162, 9,127, 97,180,106, 27, 0, + 27, 56,184, 11, 35, 84, 11,223, 77,200, 44, 10, 42, 81,105, 98, 17,195,117, 7, 69, 55, 7, 35, 88,163, 16, 70,131, 74,176,175, + 33, 98,213,244,208, 98,233, 1, 70, 24,131,173,104,225, 34, 10,189,196,247,182, 55,206,151,231,182,211,185,133,219,199, 9, 5, +240, 23,150, 27, 87, 95, 59,103,128,208, 13,100,220,210, 91,133,177,100,210,136, 25, 80, 71,211,141, 43, 97,227,107,169,101, 77, + 56,160,241, 74,176,126,111,174,191, 97, 0, 89,127,107,241,174, 26,213, 38, 71, 18,173,168, 17,210, 51,253,163, 63,254,195, 47, +190,250, 58, 8,115, 74,142, 9,149,205, 12,189, 20,179,201,116,230,224, 66,219, 55, 62,122,111,255,254,189,235,207,191,240,196, + 83, 79,215,162,165, 95,185,129, 14, 25, 72, 40, 81,189,152,179, 32, 49,152, 82,233, 87,219, 59,151,126,231,159,254, 23,255,233, +239,127,248,230, 87,223,184,254,216,227,109,215,230,161,191, 56,155,207,207,230,251,119,247,143, 79,142, 8,113, 50,153, 92,127, +244, 49, 64, 27,114,206,197,110,124,126, 59,123,153, 54,147,249,252,226,228,124,126,122,122,118,105,107, 99, 99,210,126,124,251, +198,201,249,197,207,223,253,120,181,234,239,222,219, 31,114,190,125,120,120,112,124,154,115,237,179, 86,179,170,229,202,238,222, +238,172,123,229,197, 23, 95,121,225,249,159,188,253,125,106,102, 55,111,124,112,105,107,122,120,247,243,249,252,228,189, 15,222, +223,127,240,128, 29, 86, 67, 65,180, 69,174,183,142,206, 86,195, 80,114, 5,128, 54, 53, 41, 81, 43, 50,105, 91, 68,106, 19,109, +109,205,118,167,155,179, 73, 59,105,187,166,147,205,182,107, 82,211,181,210, 54,141, 8,139, 8, 57, 0,162,164, 89, 4,163,135, +146,133,152, 69, 76, 77, 26,106, 82, 91,135,106,102,170,149,141,137,169, 75,173,169, 18, 2,160, 27,120, 85, 11, 16,149, 51, 8, + 18, 33, 41, 56,141, 67,125, 33, 70, 6,209, 40, 58, 0, 85, 15, 34, 54, 33, 71, 10, 28,165,101, 85,173,230, 24,220,149, 32,243, + 73, 18, 22, 5,115, 71,119,101, 30, 45,131,238,192,169, 29,103, 5, 51,143,166, 62,115, 17, 98, 73,181,148, 53,203, 80, 83,211, + 50,113,213,194,130, 53, 15,210, 74,173,138, 65,136, 9,241,144, 9, 33, 26,227,208,204, 26, 78,238, 24,193, 22, 7,168, 53,243, +232, 88, 70, 52, 71,166, 20,211,171, 87,113, 6, 97,213, 12,174,224, 64, 34, 36,108,213,106, 9, 28, 13, 80,113, 7, 35, 73,234, +142, 86, 0,153, 72,192,189,145,209,255,102, 90,165,107, 77, 43, 0,178,164, 24,130, 9, 73, 75, 94,183,194,146, 51, 18,145,230, +218,251,185,170, 18, 37, 78, 9,133, 76,139, 52, 93, 85, 19, 80,173,108, 86, 37, 52, 88,136,147,174,144,144, 27,104,201,129, 90, + 0, 64, 7, 27, 86, 53, 30, 50, 18,212, 98, 72,142,136, 66, 9,192,204, 93,205, 24, 17, 16,152,211,184,154,116, 37, 98, 87, 19, + 22, 7, 41,185,231, 17,233, 28, 40,158, 74, 76, 76, 77,205, 3, 34, 54, 50, 81,203,177,215, 41,125,102,102, 7,107,186, 9,142, +107,210, 56, 40,136,193,156, 64,213, 17,112, 58,155,177, 72, 46, 37,151,234,234,142, 67, 2,103, 17, 16,105,153,209,173,214,177, + 85, 6, 28,168, 33, 51, 23, 7,132,198,180,162, 1, 73, 67,216, 1, 90, 52,127,177, 16, 2, 25, 56, 81, 2, 80, 51, 77,141,132, +158,150,173,146, 27, 99,147, 36,185,179,154, 98, 44, 37, 29,204, 99,147, 64, 53,103, 34,108,155, 38, 18, 12, 6, 70, 66,148, 4, + 12, 29,171,116,162, 69,189, 42, 50, 8,138,187,155, 43, 50,183, 56, 54,183,212, 92, 0, 52, 58,138, 77, 85,158,127,233,139, 49, +128,214, 90,115, 63,148, 92,106, 41,170,165,148, 92,251, 85,169,131, 87, 51, 0, 43,213, 64,209, 13,121,196, 82,155, 27, 97,194, +113,150,135, 90, 43,140,146,134,173, 93,227, 15,115,168,241, 87, 15,101,196,127, 65,240, 12, 49,159,201,109,148,155,198, 98,176, +181,168, 2,107, 18, 24, 34, 35, 4,218, 24,209, 13,192, 85,117, 58,157, 29,205, 23, 90,214,134,122, 28,215, 79, 65, 58,136,216, + 42, 33,129, 58, 80, 88,100,195, 92, 83,215,139,211, 49,180, 69,107,193, 63,136,106,176, 86,104,104, 4, 20,143, 71, 58, 50, 6, + 16, 58, 62, 31, 64, 15,143,246,177,136,112,252, 62,205, 67, 69, 13,119,125, 59,105,126,252,179,159,124,244,254,135, 47,190,246, +138,170,134,198,136, 68,166, 5,212,164,225,249,233,201, 79,254,230,111, 55,246,118,191,244,141, 95, 78,238,171,179,211,104, 72, +112, 85,119, 69,200,165,100, 17,105, 54,102,104,104,208,148,213,241,173,179,249, 19, 79, 61,253, 95, 95,191,174, 53, 95, 92, 28, +223,189,117,118,231,222,189,179,243, 83,102,222,217,220,122,226,250,163,181,148,210,231,213, 48,148, 82,220,225,236,236,220,172, +108,110,110, 30, 60, 56, 57,189, 56, 3,180,199,175, 93,117, 45,203,229,176, 88, 13,181,232,207, 62,249,236,211,187,247,192,245, +228,108,185, 26,250,234, 6,136, 67, 46, 69,117,119,115,250,252, 19,143,254,250, 91,223, 48,215, 63,252,139,191,184,115,255, 96, +107,218,117, 93,218,156, 77,143, 78, 47,206,238, 30, 77,218,201,238,246,206,238,214, 38,137,144, 27, 34, 95, 12,139,154,181, 77, +120,239,224,193,253,163,163,249,225,121, 45,198,204,204,152,171, 51,115,236, 81,188, 22, 18,153,117,147,157,205,141,182, 21,116, +108,147, 8, 11, 19,150,154,103, 93,218,152, 78,183, 55, 54, 68,210,172,107,187,166,153,164,102, 99, 99, 42, 73,186,212, 36,102, + 0,157,205,218, 36, 9,220, 9,176, 84, 37, 34, 5,155,177, 88,227, 53, 2, 65, 66, 90,149,147,196, 11, 33,168, 2, 85, 51,136, +112, 43,230, 30,233, 18,116,140, 18, 6, 83,215, 26,133, 54,192,136, 85, 29, 67,114, 36,140, 53,146,185, 17, 71,135, 42,131, 83, + 84,210,128,121,146, 86,107,213, 92, 35, 10,231,110,181, 14, 0, 20,254, 28, 73,162,213,134, 50, 8,203,136,210, 5,110, 90,169, +121,136,207,161,130, 53,212, 72, 74, 37, 15, 62, 82,180, 13, 64,145, 24, 29,212, 44, 49,219, 24, 32,119, 36,134, 17,231,181,214, + 34,221, 8,152,154,228,163,157, 6,184, 73, 16, 88, 47, 0,108, 88, 48, 57,130, 85,167,212,152, 6, 48,155, 76, 21, 12,144,145, + 83,170,181, 82,164,100, 34,135,133, 80, 45, 71,215,105,192,206,195,153, 67, 8,110,150,186, 41, 2,154, 22, 8, 72, 21,113,215, +205, 74, 94,152,214,168, 45,140, 76,144,155, 70, 39,137, 99,212,199,178, 59,152, 42, 10,135,247, 27,192,139, 2,163, 17, 38, 78, +141,105, 5,144,128, 77,114, 98,175,106, 86,163,157,139, 92, 66,251, 86, 85, 36,105, 83, 91,204, 92,115, 69, 68, 64,110,164,230, + 2,164, 35,194,193,170, 72, 51, 86, 86,116,100,230, 4, 0,106, 49, 74,131,141, 11, 19, 74, 92, 11, 46,135, 60,153,118,196, 98, +165,138, 72, 55,221,208, 90,180, 22, 34,138,178,173,209,191, 29, 71, 10,160,131, 49, 75,106,154, 90, 84, 61,139,180, 99,120,134, + 92, 13, 8,128, 36,153, 41,154,163, 33,196, 20, 12, 72,196,238,166,213,226, 92,114, 55,230,102,180,145,140,150,190,128,192,155, +123, 37, 4, 64,113, 48,208,104,126, 15, 58,122,136,251,168, 86, 36,177, 9, 91, 13,111,186,167,196,136, 46, 13,175,114, 65,128, +166,229, 92, 0,212,184,109, 72,146,148,190, 71,196, 48, 73,182,147, 73, 59,153,136, 8,186, 19, 55,234,213, 76,221, 76,115, 46, +165,104, 85,211, 90, 74, 63,244,189,230, 82, 85,193,172,106, 14,111,127,104,169,130, 52, 22, 56, 49, 97, 20, 41,185,174,151,147, + 99,248, 8, 8,176,174,167,222,120,105, 5, 78,224, 97, 95,107,124,144,199,227, 30, 44,124,174, 15,209,146,136, 8,100, 96, 41, + 53, 66, 56, 20,237,228,161,213,249, 63,171,133, 93, 83, 35, 1, 97,148,197,226,205, 97,190, 62,203, 97,205, 31, 91,131,142,185, + 13,214,252,152,243, 34, 10, 35,255, 24,173, 10,176, 2, 18,162, 3, 18, 38,198, 17,134,231,161,239, 7, 9,219,208, 1, 35,169, + 28, 11, 51,236,151, 23, 63,248,187,191,125,237, 43, 95,174, 96, 81, 95,141,224,169,109,155,201,244,198,123,239,220,185,183,255, +204, 43,175, 62,249,228,147,203,243, 51, 19,241, 90,195, 52, 93,115,145, 36, 0,134,102,204,105,113,252, 96,217, 15, 23,231, 23, +203,229, 69,173,195,176, 92,172, 46, 46,142, 78, 79, 30, 28, 28, 56,241,164,229, 39, 30,121, 12, 25,207,207, 47,110,124,246,249, + 80, 74,155,186, 73,219, 21, 47,171,161,175,185, 18,226,157,187,251,139, 97,213,164, 6,193, 46,150,139,156,243, 80,235,197,197, + 2, 9, 29,253,238,225,225,249,114, 5,170,210,180,136, 56,228,204,196,207, 62,118,237,219,191,244, 75,175,188,250,210, 79,223, +123,247, 47,190,255,195, 73,211, 60,249,216,181, 85,191, 90, 12,185,150,178, 24, 74,147,146,179,173,114,110,134,161, 3,106,155, + 36, 41, 61,190,189,253, 91,223,254,181,203,215,246, 78,230,243,227,227,147, 59,119,110,223,184,125,251,147, 79,111,222,222,223, + 63, 60, 57, 46,181, 32, 51, 17, 80,147,200, 33,215,210, 15,153, 9, 75,181,243,101, 31, 90,225,233,252,236, 98,121, 65,196,166, + 33,125,114, 4, 56, 5,145,164,233,186, 38,178,152, 91, 27,147,173,110, 54,219,156,109,180,237,183,222,120,237,240,228,116, 53, + 12, 91,211,105, 74,178, 57,105, 38,237,164,235, 82,155, 38,169, 17, 55,155, 78, 59, 84, 67, 4, 16, 70,100,105,147,153, 34,177, +154, 25,152,232, 88,122, 97,166,220, 72, 89, 21,115, 37, 6,240,128,162,147, 72,170, 70,224, 33,248,166,152,185, 41,184, 29, 14, + 35,178,152,215,225, 14, 32, 98,176,226, 76, 8, 72,209,155,220, 74, 11,104,106, 26,254, 50,205, 25, 29, 36,226,175, 41,129,213, + 90,162, 69, 36, 62,125,238, 30, 84,175, 96, 6,176,219,202, 45,198, 90, 95,251,236, 24, 76,181, 22, 98,193, 36,196,108, 81, 50, + 36, 12,234,128,100, 99,114, 10,129,162,167,201, 3,230, 26, 91, 59,100, 66, 38,247,234, 52,186,106,192, 45,165,182,170, 89, 45, +140, 98,236,235, 66,168, 74,146,192, 76,189, 48, 8, 19,154, 42, 33,214,192, 1,161,153, 85, 55, 48, 53,105, 88,107, 24, 5, 28, +169, 25, 99,234, 68, 96,110, 90,221,141, 72, 70,150, 36, 56, 56, 8, 51, 97, 32, 13,138,199,254, 24,169,154,215, 92, 17, 32,234, + 73, 35, 1, 91, 75, 25, 87,166,142, 70, 88,203,192,194, 66, 92,139,154, 58,142,250, 59, 68, 39, 53, 50,150, 33,147, 8, 73,242, + 90,215, 16,115,116, 87,100, 65,115, 39,247, 98, 86, 10,106,157,237,204,136,208,133,165,105, 4, 1,188,211, 82,113,108,161, 35, + 18, 2, 7,171, 21, 41, 90,168, 84,139, 58, 16,197,250, 20,220, 61,254, 53, 36,165,132,145,234, 36, 50,116,102, 96,230,192,166, + 68,201,248,195, 96,188,155, 81,114,141,109, 31, 32, 2,168, 43,250,152,119,171,181, 56, 20, 73, 18,160,133,152,122,205,193, 74, + 54, 55,102, 18,105, 74,205,106,228,101,144,148, 88,194,254,103,179, 46,229,234,165, 90,178,209, 48, 72,140, 98,174, 96, 0, 70, + 22,160, 32,183,154, 87,163,165, 36,162,161,238,224,214,116, 13, 1, 34, 75,212, 27, 50, 97, 28,253,165,170,213,226, 14,166,181, +207,189,230,161,230, 65,107,181, 90,220,172,154, 58,160,154,153, 42,129, 59, 26,154, 99,133, 49,164,236,192, 97, 52, 35, 10, 36, + 12, 90, 88, 38, 97,108,225, 70, 3, 70,176, 64,163, 25,140,180,248, 0, 1,163,153,111,204, 38,171,213,176,185,179, 89,204,226, + 37, 77, 35,170, 56, 16, 13,177,109, 29, 35,240,227,218,150,113,172,238,140, 86, 88,116, 64,142, 94, 41, 8, 94, 52, 19, 1,142, +246,208,181,220, 14, 64,163,159, 34,202,124,195,203,131,232, 14,107,224, 38,172,113,199, 0,232,203, 97,136,156,177, 0, 22,245, + 31,188,253,131,127,117,250,175,186,157, 77, 7, 35,110, 26,225,195,187,159,127,246,233, 71,147,141,205, 47,127,237,173,174,235, + 22,167, 39, 86,171, 13, 3, 0, 1,168, 3, 74,211, 89, 93, 20,133,249,217,124, 56,188, 55,172,250, 82,134,213, 98,113,118, 62, +191, 56, 61,157,207, 79,139,218,164,107,175, 92,190,140, 4,170,245,116, 62,159,159, 95, 32, 35,177, 96, 41,139,213,226,162, 95, +170,217,172, 73, 2, 56, 95, 46, 87,253,144,146,212, 50, 20,171,203,126,232, 75, 95, 7,173,166,125,214, 50,148, 86,100,144,116, + 81,181, 12,131,185, 38, 78,111,190,254,242, 63,250,198, 55,180,234,191,255,127,255,248,246,189,131,221,173, 13, 55, 59, 61,157, + 23, 13,131, 44, 18, 39, 10, 63,138, 21, 53, 85,203, 6,178,181,181,241,204, 19, 79, 60,251,202,203,195,106,117,117,178,121,229, +234,181, 47,126,241, 85,116, 88,173,250,197,114,113,116,112,112,227,246,173, 27,183,239,220,190,119,247,222,225,131,227,227,227, +197,106,121,120, 90,212,183,103,147, 86, 53,154, 33,237,234,222,222,238,214,118, 13,158,150,163,187,199, 3, 96,227,143, 3,181, +150,172,182,127,122,113,223,206, 1, 96, 40,195,123, 55,110, 62,249,232,181, 62,235,193,241, 17, 1, 21, 45, 79, 60,122,141,185, +121,252,209, 43,119,246, 15, 54,187, 9, 9,147,249,149, 75,123,187,155,155,171, 60,212, 90,246, 54, 55,173,234,149,189,157, 39, +159,121,250,238,189, 59,109,162, 68,169,235, 26, 95,228,174,105, 22,171, 94,132,164, 21, 55,151, 10,106, 14,204,140,206,220,196, +124,106,224, 34, 98,213,170, 22,146,212,181,157, 22,205,117, 72,146,226,129,228, 54, 60,214,182,174,196, 86,171,198,200, 0,110, + 90,152, 5,220,212, 61, 17,155,170,131, 16, 33,141,142, 3,141, 6, 98, 85,117,196,148, 82,201,217, 12,152,192,221,117, 24, 72, +146,164,228,128, 30,244, 62,137,233,216,153, 57, 80,195, 99, 80,145, 24,220,198,162,231,104,221, 28, 7, 82,160, 64,145,128, 3, + 10,131,122,196,109,137,107,201, 99,114, 11, 9,205,220,149,144, 29,220,180, 4, 98, 13,193,181,102, 4,182, 90,193, 85,173,178, +115,209,194,136,204,108,165,186, 25, 16, 42, 0,212, 66, 97, 75, 26, 71,166,136,161,208, 67,130, 43,115,227,154,145, 4,221,106, + 29, 88, 24, 3, 36,101, 22, 36, 18, 85,103, 38, 11,114,253,218, 52, 61,244, 67, 59,105,155,166, 45,181, 90, 29, 48, 76,248, 20, + 92, 9, 52,176,126, 88, 74, 98, 78, 9, 0,192,108,236,248, 54,141, 71, 83,107,198,232, 83, 74,124,124,118,214, 8, 3, 74,248, +205,227,125,207, 44, 96,182,206,145, 49, 16,187, 43,155, 59,130,105,245,209,240, 18, 48, 34, 55, 51,135, 32,214,248,136, 41,209, + 66,196,204, 73,107, 46, 85, 17,129, 80,204,148, 0,140,208, 29,129,200,212,106, 45,140, 41,145,152,214,154, 51,162,248, 26,132, +192, 34, 97, 86,196, 64,246, 2,153,106,213,129,152,192,149, 82, 42,185,119, 0, 17, 80,104,204,173, 12,125, 74, 18, 81, 43, 33, +160,182, 27, 44,175,134,218,138,145,131,132,192, 23,193,128,177,240, 59,150,157,232,230, 26,246, 18,119, 67, 27,170,141,101,181, + 52,182, 16, 90,224, 43,145,136, 88, 18, 54,221,198, 38, 5, 69,127,189,193,116, 55,118,175,102,181,214, 50, 12,185,228, 50,172, +180, 86,211,193,114, 45, 57,107,201, 10, 54,198,180, 1,192,156,156, 35, 21, 54, 38, 82, 21,199,177,127,125, 80,131,187,199,226, +215,124, 50,153, 28, 28,157,227,165, 45,171, 46, 65, 11, 28,181,115, 27, 15, 98, 68, 24,233,170, 33,237,216,232,197, 9,194,153, +173,149, 34, 20,240, 2, 80, 1, 24,220, 29, 12, 92,109,204,127, 68,138, 35, 60, 53,145,169,227, 17,182,233, 81, 49,192, 35,152, + 15,195, 70, 3,140, 82,150,197, 29, 86,171, 30, 85,133,233,163, 79, 63,253,228,147,143, 95,255,250, 55,200, 21, 9,223,255,233, +143, 15, 30, 60,248,202,155,111, 78,164, 1,180,254,124,142,141,128,154,235, 8, 58, 94, 44, 22, 67,238, 47,206, 78,135,146,107, +206,181,174,206,206,207,206,142,143, 79, 78,230,253,144,119,182, 54, 54, 54, 55, 16, 89, 77, 79,207,206,136,168,239,135,163,249, + 92,107, 37,132,170,134, 14,155, 27,179, 54,165,101,223,247, 67, 31, 35,149,153, 45, 86,139,146,107,174, 86, 53,247,185,150,161, + 42,128, 59,110, 76,166, 0, 70,140,102,245,108,217,239,110, 78,255,217,111,124,251,235, 95,254,210, 95,254,224,239,126,240,211, +119, 39, 73,182,167,141,106, 77,156,218,214,173, 55, 38, 94,213, 60, 63, 61,109, 83, 55,157, 77,166, 77,199,200,228,240,143,127, +245,155,175,188,246,218,135,239,191,255,231,127,250,231,223,250,198,215,185,105,157,218,176, 33,119, 93,211,108,109,237, 94,123, +244,133,215,190,164, 57,151,161, 88,233, 79, 78,142,246, 31, 28,125,114,243,198,167, 55,111,206,231,103,135, 39,199,165,106, 86, + 95, 13, 43,150, 70,213,194,182, 10, 0, 9,132, 29, 29,161, 2,160, 90, 67,105,146,204, 9, 29,148,144,114,209,171,151,246,174, +238,237,221, 62,124,112,105,103,235,124,209,159,247,203,243,139,197, 75,207, 62,178,127,114,250,224,248, 84,246,232,108,185,154, + 76, 59, 96,190,119,116,122,112,124,178,179, 53,219,111,231,199, 23,231, 47, 61,251,156,109,236,189,253,225,231,215,175, 93,185, + 88, 92, 44,251,188, 49,233,174, 92,185,122,251,238,157, 47,189,242,250, 79,127,248,246,119,191,243,143,101, 58,123,251,135,127, +251,232,149,171,139,197,249,233,233,241,230,198,108,182, 49,219,221,221, 61,190,125,111,210,166,134,155, 33, 95, 8, 49,129,182, +157, 44,115,105,186, 54, 53, 45, 58,154,105,215, 54,196,141,150,129,128,141,130, 75, 88,221,136,133,132, 91, 32, 46, 90, 9,219, +152, 13, 16, 1, 18,168, 35,170, 23, 29,218, 36,102,238, 86, 5, 81, 36,133,155,218, 16,192,212,140, 73, 18, 24,132,237, 7,209, + 72,196,171, 33,130,213, 10, 52,138,215,113,109, 37, 34,228, 78,203,224,106,241,104, 89,213,160,112,122, 85, 5,236,186,182,214, + 90,243, 64,192,163,149, 69,141,136, 84,107, 25, 6, 22, 9, 41, 57, 50,165, 90,134,181,113, 46,110, 9,134,132,165, 86, 66, 71, + 73,150,123, 11, 51, 62, 2, 32,153,214, 90,140,153, 82,219,105,173,170,133, 37,133,175, 84,107, 54,112,180,140, 44,210,164, 40, + 57,138,193, 43,166,254,224, 72,233,156,219, 26, 0, 0, 32, 0, 73, 68, 65, 84,133,233,152,152, 53,103, 32, 22, 17, 80, 11,215, +149, 34,169, 41, 33, 9,139,145,187, 86, 68, 76,169,197,113, 26,180,113,235, 7, 72, 17, 60, 52, 35,247,106, 74, 12,125,159,117, + 40,219,151, 55, 37, 73, 28,205, 64, 80,173, 2, 56, 38,178, 18,184,220, 42, 72,134, 28,187,220,162,133, 89, 26, 78,202,100,181, + 34, 11,161, 89, 53, 22, 10, 68, 0,115,131, 86,221, 1, 93,163, 58,216, 0, 9,141,153,204,153,161,230,108, 8, 22,145,218,120, + 81, 40, 56,113,170,185, 2, 21, 73, 45, 50,107, 41, 94, 12, 19,163, 48, 40, 14,195,146, 17, 36, 62, 9,192,195,144,187,148,152, + 83,113, 64, 44, 8,216, 54,109, 45, 57,181, 32, 44,125, 45,224, 74,140,109,203,236, 96,232,226,213, 65,226,216,212, 16,166,208, + 53,142,170, 48,144, 68, 49,182,141, 53, 29, 10,228,166, 10,117,237,128,113, 65,116,240, 98, 0, 64,181,198,225, 88, 66,238, 70, + 7,175,196, 72, 36,194, 34,211, 13,218,164, 20,133, 35, 20,149, 42,100, 86, 85,173,214, 33,247,117, 24, 74, 30,180,150, 90,122, +143,134,222, 18,192, 97, 13, 42,119, 20, 60,185, 58,198,112, 33,208,166,164, 94,212,108, 76,178,142, 70,228,112, 51,249,136, 18, + 24, 13,240, 52,118, 8, 96,152, 38,215,172,165,209, 15, 90, 28, 8,185,129,135,238, 71,100, 32, 71, 32,183, 53, 61,222, 0,216, + 31,238, 87,221, 28,201, 0,162,154, 61, 2,183,113, 71, 32, 97,186, 24, 6, 7, 44,166,137, 1, 28, 79,231,167,111,191,243,206, +215,190,245,107,251, 55, 63,122,239,103, 63,121,244,133,151,126,237,107,223, 40,139,179,160, 83,133, 15,167, 2, 13,253,217,176, + 90,158,206,231,125,127,166,181,230,210,247, 23,203,131,195,195,179,211, 19, 53, 19,226,217,180,219,221,222, 58, 95, 44,206, 46, + 46,134,156, 81,104,185,232, 1,177,148, 92,138, 10, 97, 85,101, 39, 39,152,159,159,153, 66, 95,135,212,200,106, 81,138, 14,136, +144,171,230, 82,251,126,229,238,132,220, 53,201,209, 64, 73,205, 23, 57,151, 82, 55,167,211,173,217,198,191,254,157,223, 22,145, +127,243,187,191,183,127,116,114,101,123,163,235, 58, 48,175, 0,125, 89,185, 66, 35, 92,171,158, 45, 87,125, 85,135, 85, 62, 43, + 85,203,206,214,214,211,207, 61,251,230, 91,223,152, 47, 46, 14, 31, 28,252,251,255,240,167,119, 63,255,232, 87,191,254, 38,138, + 76,102, 51,105, 38,210, 52,148, 90, 8, 12, 54, 49, 78, 0,133,119,155,102,107,119,247, 11,207, 63, 83,243,176,184, 88, 60, 56, + 58,186, 88,245, 7, 15,142, 62,187,125,251,104,126,122, 58, 95,158,157,157,247,154,221, 76, 1,138, 3,133, 24, 70, 96,104,163, + 71,203,161,168,182,109,218,221,218,120,231,163, 79, 78,206,231,215,175, 94,158,116,205,197, 82, 16,113,209,175, 46, 79, 55,210, + 53,155,159,175, 38, 73, 38, 41, 61, 56, 58, 25,106, 73, 68,179,182,237,186,118, 27,116, 54,153,246,203,197,222,230,198,238,206, +238,189,251, 7,243,179,211,188,177, 49,153,164, 95,122,227,141,157,237,157,179,229,208,204, 54, 72,228,124,185,252,202, 19,207, +124,246,249,173, 71, 54,175,252,232,157, 31, 62,255,220,243,203, 7,139,110,114,249,246,252,248,246,254,205,169,208,116, 50, 77, +132,119, 15,238,223,188,115,239,171,175,189,122,126,190,186,125,231, 86,206, 37,161, 23,173, 93,203,151,247,246, 74, 41,146,248, +137, 71, 30,235,251,126, 54,237,134,161, 76,154, 52,155,204,134,146,187, 36,192, 16, 81, 47,225, 8,204,114,211, 36,112, 3, 39, + 17, 17, 18, 73,104,209, 55,210, 38, 70, 79,146,204,171,153, 59, 37, 66, 5, 39, 7, 51, 36,110, 91,118, 51, 36, 80, 67,102, 78, +140, 62,154,193, 36, 37,117,117,115,226,240,173, 25,119,169, 33, 41,195, 10,137,154,212,198,131,230, 86,153,217,170,130, 89, 44, +188,221, 50, 74,243,208, 7, 1, 35, 84,145, 68,200,234,160,117, 64, 68,112,170,154,213,141,129,147,164,161,244,160, 78, 4,105, +210,128,106,173, 5, 64, 1,193, 44,131,114, 56,193, 67,135,119, 85, 0,112, 83, 64, 12,248, 68, 48, 69,220,157, 24, 64, 45,108, +207, 20, 12,100,166,156,115,211,180,210,180,154,135, 38, 37,119,182,170,142, 64, 36,128,145,119, 52, 7, 67, 48, 7, 25,137, 17, +174,137, 88, 17, 28, 7, 68, 5,240, 82,234,116,163,107,155, 4,232,169,105,114, 45, 86, 43, 34,170, 58,147,112, 44, 60, 66,197, +133,192,120, 1,147, 56,162,186,161,186, 52,173, 87,231,132,133,212,189,132,234,140,166, 65, 64, 7, 51, 74,226, 72,110,198, 76, +106,174, 86,132,160,105, 91, 0,176, 97, 53, 44,151,156, 82,106, 90,228, 52,228, 21,145, 19, 75, 81, 69, 45,194, 2,146,114,173, + 80,178,176, 76,103, 83,173,170, 86, 71, 95,164, 76, 12,160,239, 87, 73, 18, 98, 42,121,193, 84, 83,219, 58, 72, 41, 78,212,149, + 90,130,100,192, 68, 66, 36,200, 15,149,104, 7, 20, 48,245,135,206,145,135,181,123,107,178,155,155,129,198,114, 39, 78, 65, 6, + 87, 64, 6, 96, 7, 5, 29,157,145,224,230, 78,227,230,209, 52,122,146, 12,160,232,216, 66, 6, 24,245,128,107,166, 41, 96,215, +117, 56,153, 18,163, 5,178,193,157, 88,162,160,178,106,177, 92, 29,205, 21,204,180,150,236, 86, 75,201, 94, 85, 8, 55,218,249, +241,121,217,219,238,106,169,228, 21,104, 52, 81,141, 32, 95,164, 72, 28, 88, 40, 52, 68, 96,250,208,235,136, 40, 49, 27, 4,177, +198,227,242, 56, 90,240, 1, 45, 10,159,214,252,122,242, 81,246, 9, 54, 1, 18, 0,143,221,130,161,195, 57, 2, 18, 40, 16,194, +209,233, 28,136,162, 16,109, 40,213,193,255,225,199, 63,252,251,191,250, 51,173,250,210,215,126,249,234,163,143,246,231,103, 44, +130,166,117,232,235, 48, 28, 31, 31,156,205,207, 75,205, 94, 75, 95,250,211,163,163,253,253,251,167,243, 51, 50, 69,132, 89, 55, +157, 78, 59,119, 80,176,229, 98,177, 92,173, 28,124,181, 26,250, 82,170,106,132, 58,152, 40,145, 52,137, 27, 73,185,234,233,249, + 42,151, 90,107,248,103, 74,159, 7, 65, 86,179,170,138,128,128,164,235,218, 29, 71, 0,194, 54,165, 36, 2, 0,139,101,249,155, + 31,189,115,235,206, 61,105,248,169, 71,174, 58, 88, 46, 85,107,117,128,134, 19, 11,157, 94, 44, 78, 47,206,231,231, 23, 96, 70, + 52,233,218, 68,140,231,231, 23,203,126,117,124,114,231,120,255,248,163, 27,159,170,219,247,126,240, 67,215,161,107,218,182,155, +110, 78,186,217,230,230,108,182,217,116,109,211, 77,164,153, 36, 34, 71,168, 69, 83, 18, 74, 73,102,219,151,247,174, 94,185,254, +108,208,123, 23,139,211,211,227, 7,103,243,249,249,114,113,124,122,126, 50, 63,189,187,127,176,127,120,112, 50, 63,159,159, 47, + 86,195, 16,102, 6, 34, 20, 66, 5,216,217,154,245,125,255,242,147, 79,252,228,147,194,196,231, 23,203, 73,215, 2,194, 59, 31, +124,212,117,237, 99,215, 46,221, 63, 62,126,225,250, 35,243,179, 51, 34,158, 78,187, 71,118, 47,165,212, 32,210,225,131,249,108, +186,127,229,145,171,169, 73, 31,125,250,105,159,135, 87, 95,124,201,192,102,147,233, 59,239,188,179,234, 87, 87, 47, 93,249,155, +191,254, 75, 98,254,226, 23,190,120,112,248,224,193,225,237,239,126,231,159,252,232,167,255,112,229,210,229,131,195,125, 16,154, +159,156,234,226,124,235,209,171, 64,124,240,224,240,244,252,236,210,246,246,209,241,131,195,163,211, 7,231,231,102,250,224,248, +184, 31,250,229,170,223,221,222,204,213,186,196, 79, 61,118,124, 60, 63, 39,180,161,212,105,219, 46,250,229,233,217, 34,137,172, +134, 92, 75, 77, 77,218,154,108, 72, 43, 58,244, 33,199,115, 20, 68,129, 73,168,233, 8,200,220, 16,110,109,206,158,189,118,245, +213,231,158,220,218,220, 89,174,150,253,144,103,211, 9, 49, 19, 19,152,165,182, 51,240,166,105,165, 17, 87, 71, 70,105, 91,243, + 18, 45,128,113, 21,230,148,180,170,185,166,110, 50, 10, 20,166,110,192, 41,130, 78, 70,208,154,107, 60, 6, 90,138, 36,126, 24, +207,113, 0,114,183, 90,130,152,170, 54,250,226,184,157,120,201, 37,103, 2, 6,114, 2, 46,185, 18,134,126,144, 70,137, 72,107, +208,204,214, 6,186,245,226,205, 33, 12, 75, 99,159, 56,146,149, 28,185,197, 40,218, 69,196, 90,115,128,119,208,176, 97, 86, 83, + 51, 85,197,166,235,162, 64, 17, 64,199, 0, 58, 10,140,252, 9, 20,150, 50, 12,106,185,107, 18, 81,215,231,162,117,216,218,222, + 72,221,164,148,218,151, 30,145,221,113,196, 31, 86,149,166, 35,193,218,231,234, 61, 73,135,140,128,104,177, 50,101, 64, 76, 33, +212,104, 52,114,137,128, 27, 40,170, 6, 97,155,137, 90,119, 99, 2, 3, 82, 53,112, 79,169, 33,130, 90,116,252,139,128,187,123, +233, 51, 9, 53,205,196, 74,113,247,134,152, 82, 91, 75, 41,117, 96, 32, 73, 98,192,170, 22,251,156, 72,194, 34, 20, 68, 22, 97, +119, 71, 52,105, 90, 85,131, 92,145,157,133,107,173, 86, 20, 29, 19, 19, 33, 22, 53, 65,166,208,155, 28, 0,172, 64,100,223,194, +230, 24, 51,240, 72, 88, 4,119,133, 95,132,145,194,102, 98, 16, 39, 56,140, 22,195,241,181, 64, 12, 81,186, 24,160,188,192, 25, +152,173, 49,193, 26, 77, 14,107,244,163, 35, 83,173, 53,102, 14, 0, 50, 83, 48, 55,202,128,136,152,132,176, 50,184,147,116,226, +128, 72,179,177,140,201,141,185,109, 38,147,159,126,112,235,213,175,126,109,113,177, 48,112,203,189, 85, 85,203,154,135,210,247, +181,100, 0, 19, 50, 64, 51, 48, 25, 17, 9, 50,178,229,162,214, 32,232, 73, 97,109, 5,113,138, 98,170,245, 43, 15,126,241, 95, +252, 59,216,200,133,125,184, 50, 30, 29,247, 35,121,214,141,192, 79, 78,206,120,180,218, 35, 56, 60,255,212, 19,167, 15,238, 93, + 44,250, 95,254,245,239,128, 64, 93,245,228,214, 95,156, 31,239,223, 93, 44, 22,181,150, 0,233,205,231,199,251,119,239,223,190, +119,167,150,178,187, 57,187,180,189,113,126,177, 2,176,243,161, 63, 93, 92,212,172,171, 92,136,189,148,186, 28,134,139,190,103, +119, 97,158,181,237,246,198, 38,130, 45,242, 80,139,173,114, 1,192, 82,173,148, 50,228,108,102, 68, 44, 68,236,148,189, 14,165, +196, 85, 76,152, 8,193, 98,195,109, 30, 65, 26, 36,102,174,119,238,239, 95,222,221,102,225, 92,242, 48,244, 41,181, 10, 62,107, + 59,102, 62,156,159,206, 23, 11,114, 80,167,101, 30,178, 90, 63, 12,211,233, 36,165,230,232,108,254,246, 15,126,112,255, 96,255, +243,123,247,107,213,227,249,217,143, 63,252,120,115, 58,107,154,102,218, 72, 74, 77,155,154,174,105, 82,215,206,186,105, 59,233, +132,165, 77, 77,215,181,123,151,174, 76,183,119,152,144, 37,169,153,161, 78,118,118,155,205,221, 43,154,173,170,230, 98,150,135, +220,231,161,228, 90, 47,206,206, 30, 28, 61,120,255,131, 15, 63,188,241,217,253,227,147,249,233,217,157,163,211,221,205,238,210, +108,242,209,237,219,194,252,224,120,206, 66,132,124, 50,191,112,119, 54, 59,155, 47, 30,187,124, 25, 0, 87, 67,157, 77,105,185, +202,183,203,193,164,149,203,123, 87, 88,154,157,141,237, 27, 55,110,189,247,209,135, 72,244,230,235, 95,122,230,233, 39,127,246, +254,251,183,238,220, 33, 76,143, 62,114,117,107,107,123,218,117, 15,142,239, 63,114,237,218, 71,159,125,122,253,177,235,255,207, + 31,253,223,199, 71,199,111,255,248,199, 79, 94,127,236,230,231,183, 62,188,241,233,230,172,187,187,191, 63,100, 61,124,112,240, +204,147, 79, 31,159,156,214, 82, 14,143,142, 0,173,147,110,181, 88, 25,104, 67, 84,114,206,185,212,204, 31,124,250,153,153, 78, +186,201,252,226,172, 20,173,102,203,190,111,165,233,186,110,107, 58, 45,181, 63,187, 56,134,149,212,146,133,165, 58, 8, 64,106, +210, 48, 12, 85,161,152,149, 60,184, 99,174,165,109,154, 31,116,205,183,238, 61,247,221, 47,127,105,190, 92,204, 54, 54,171,121, +223, 47,206, 22, 11, 98,153,180,141,154,129,195,108,182,177,204,195,180,155,110,108, 76,151,171,213,162,239, 83, 74,109, 74, 53, +247,221,198,166, 48,159,207,143,118,246, 46, 15,181,182, 93,103,225, 15,145, 68,204, 73,152, 68,192,144, 4,145, 69, 80, 37, 53, + 0,206,206,132, 92, 74, 0, 59, 71,147, 18, 90, 5, 34,168, 0, 85,221, 1, 85,145,216,204, 44,176, 53,113,140, 36,118, 83, 48, +111,155,198, 0, 70,218,224, 72, 95, 96, 7, 2,140,122, 16,113, 48, 83, 29,245,237, 72,188, 85,101,137, 54,136, 20, 15,150,214, + 66,204,170, 70, 28, 9,217, 58,184, 11, 65,173,182, 46,229, 49,116, 16, 22,112,200,185, 34, 51, 83, 91,212, 5,188,212,218, 54, + 50,157,181, 81,141, 52, 26,170, 17, 0,176,149,100, 6,154, 51, 16,161, 16, 25,130, 87, 8,202,115, 84,129,153, 99, 82,143,118, + 44, 83, 38,113,163,172, 43, 92,211, 19,209, 65,181, 39, 17, 36, 70, 52, 64,115, 64,213,161, 86, 4, 64,105,146, 15,102,101,160, +196,200,168,102, 88,122,230,166,170,170,233,176, 28, 82,211, 72,106,188,230,154,141, 18, 72,211,169,107,201,185,230, 2,104, 66, +226,174,196, 52,198,175,156,204, 93, 29,200,209,139, 1, 82,234, 90, 53,143,157, 40, 50,202, 72, 63,136,130,150,136,178,121,112, + 41,200,205,224, 33,249,125,148, 71, 0,188, 6, 80, 96,173,148,217,216,176, 61, 46, 92,141, 56,208,125, 20,229, 50, 30, 12,224, +209,231,187,206,114, 59,186,186,167,117, 64,200,204,181,184, 81,192,139,163, 96,211, 52,194,202,189, 33,168,134,234,163, 36, 2, +186,134, 62, 58,152,214,233,230, 86, 62, 63, 92,156, 47, 82,195,230, 64,105, 19,132,113,108,216, 65,116,179,234, 53,247,181,244, +166, 89,139,106, 94, 2, 40,160,133, 99, 38, 72,162, 99,154,202,196,113,205, 42, 91, 55,241,132, 85,211,205,199, 18,171,168,131, + 51,115, 30, 91, 94, 99,250, 32, 32, 95,251,249, 9,113,208,138, 4, 85,157,219,230,169,203,151,207, 22,171, 79,238,220,126,231, +231,239,125,243, 55,190,187, 58, 62, 92,244,195,241,209,225, 48, 44,137, 5,220,206, 78,143,207,206, 78, 15,238,223, 63, 58,126, +144,136,175,238,237,116, 77,179, 28,134,251, 15, 14,207, 46,250,221,141,233,241,217,185, 35,182,152, 42, 20,234,177,175, 67,191, + 90, 78, 36,237,110,110,110,206,102,203,213,242,100,121, 94,171, 37, 22,215,186, 40,185,214,156, 75, 53,211,209, 99,140,100, 54, +148, 90,150,181, 38,145, 41, 19, 18,230, 92, 99, 29,109, 10,110, 54,105,154,148, 68, 16,183,102, 19,117, 85,179,154,181, 22,109, + 38,173,229,255,159,169, 55,137,213,237,202,242,188, 86,179,247, 62,231,124,221,237, 94, 99,251,249,217, 14,135, 35, 28,153, 17, +145, 81,217, 85,166,146, 84,137, 74,101, 22,133, 10, 21,205, 0, 81, 2,169, 70, 48, 5,166, 8, 49, 65, 2, 49, 99,134, 24, 33, + 33, 49,161,144,144, 16, 32, 64, 84, 86, 67,210,100, 86,146, 77,100, 56,108,135,237,112,243,186,251,222,237,191,238,156,179,247, + 94,107, 49, 88,231,123,193,200,122,178,116,223,125, 95,179,207, 94,107,253,215,239, 87,199, 49,155,194,205,118, 83, 74,110, 56, + 10,113, 74, 33, 75, 32, 83, 81,205,185,152,216,151,207, 94,252,233,143,127,186,222,111,247,125,189, 91,175,175,111,239,170, 72, + 19, 67,151,154,182, 75, 77,140, 41,134,196, 28, 98,219,117, 49, 16,119,169,157,207,219, 16,194,114, 62, 91, 45,143,186,182,107, +218,182,155,205,219,166,233,230,203,110,121,138, 12,200, 20,219, 96, 21, 83, 55, 43,227, 40, 82, 79,142,143,223,127,255,253,223, +254,173,223,178, 90,214,155,205,245,213,245,207,159,124,243,228,233,211,199,111, 60,248,159,255,233,255,217,153,174,183,251, 33, + 23, 68, 33, 14, 15, 78,142, 98, 72,132,118,188,152,221,237,134,152,210,213,205,221,124,214, 65,156, 29, 47,143,238, 54, 27, 12, +248,226,213,139,219, 77, 47,106, 15,142, 86,179,166,249,103, 63,254,139,113, 20, 17,184, 27,238, 30,234,217,106,222,189,251,222, +123,119,155,219,255,252,191,252, 47,126,248,253,239, 55, 33, 92,188, 58,255,224,157,119,126,254,244,201,243, 23,207,206,175, 47, +126,231, 71, 63,170, 21,126,252,217,199,215,119,235,191,254,203, 63, 56,154,119, 31,125,254,105,184,134,126,236, 31,221,191,255, +249,211,167, 71,171,197,237,102, 35,160, 49,240,110, 40, 38,163, 65,147,115, 30,171,250,224,169,230, 42,165, 12, 38, 90, 11,129, +152,106, 96,231, 12, 43, 25, 50,152, 77, 40,116,191, 30, 42, 51,155, 42, 35, 52,129,106,213,255,253,199,159, 44,186,217,119,223, + 56,189,188,236, 79,207,206, 56,196,161,148, 20, 56,196,174,101,188,189,219, 84,213,196,172,185,191,120,185,173,102, 72, 20, 48, +100, 25, 54,155, 53, 3,167,121,115,254,228,155, 89, 88,152,230,220,231,126, 63, 84,173, 20,163,230, 12, 28,251, 97,115,114,124, +116,183,222,206,151, 75,142, 17,192,218,166, 75,109,203,129,137,145,145,129, 57,132, 24,155, 16, 67,170, 57, 55, 33, 26,162, 26, + 85, 67, 66,170,248,154, 56, 66,126,209, 97, 68, 1,209,138, 10, 32,128, 60,249,123,194,148, 97, 59,100, 64, 85, 20, 32,168,228, + 24,210, 56,102, 83, 77, 93,227,132,119,142,193,106, 17, 51, 66, 0,228,212,132, 90, 51,130, 72,169,177,153,153, 8,135, 32, 34, + 6, 22, 8, 67,224, 81,114,192,160,102,100, 8,192, 76, 98, 0,185, 31,218, 38, 33, 69, 19,101,102,226, 48,214, 26, 16, 13,169, + 31,122, 63,168,136, 2,199,168, 42,110,228,133, 64, 80, 17,136, 76, 65,134, 66, 41, 17, 49, 77, 84, 89,233, 66, 91,106, 22,173, +136,172, 96, 33, 68,138, 92,107, 69,226,192,109,201,131,137,196,212, 1, 99, 41, 35, 33,197,121,151,115,149, 90, 66, 72,238,222, + 66, 4, 85, 9, 72, 12, 72, 49, 41, 70,169,123, 53, 45, 37,123, 96,187,141,177, 26, 90, 45,161, 11,164, 92,173,122,175,140,152, + 13, 48,247, 67, 72,129, 24, 69, 36,143,133, 65, 67,106, 17, 17,159,252,248,255, 5, 4,145,250,186, 51,193, 68,135,114,105, 58, +220, 14,250,107,157, 78,124, 32,183,151, 78, 83, 70, 15,190, 56,134,200,124,143, 60,170, 85, 83, 1, 37, 96,240, 61, 88, 52,183, + 53,121, 19, 28,172, 42, 76,118, 41,111,197, 79,201, 71, 64, 6, 21, 81,245, 25,233, 20, 84, 57,120,157, 94,107,157,124, 40,175, +166,109, 59,251,252,175,254,132,151,111,126,251,253,199,227,232,175,133,212,195, 67,139, 67, 64,199, 87,193,148, 69, 38, 68, 83, + 44, 50,106, 30,165, 22,224,170, 69,213, 4, 68, 65, 20, 65, 84,139,167,101,124,102,207, 78, 42,163, 95,128,201, 28,160,129, 4, + 68,140, 64, 83,230,147, 96,186, 10, 24,190,121,127,241, 31,252, 71,255,201, 79,190,122,217, 68,238, 66,184,219,110,247, 99,253, +246,123,143,127,253,215,126,243, 15,126,255,111,237, 54,107, 1, 83, 41,181,212,245,221,205,197,249,139,237,110, 19, 57,182, 93, +219, 52,169, 14,227,245,221,221,237,221,109, 41,133,153, 25,177,148, 98,228, 52, 77, 54,211, 42, 26, 67,104,153, 85,235, 62, 75, +174, 69,253, 97,168, 90,138, 84,168,121,204, 70, 16, 57, 25, 88, 25,114, 46,185,138, 0, 66,147, 26, 70, 44, 85,135, 60,228,146, +193, 1,116,196,109,140,196,164,162, 37,215,106, 5,145,205,172, 84, 65,196,227,197, 98,204,181, 72, 81,173,183,155, 29, 24,196, + 16, 16,112, 20, 49,128,154,139,212,178,203,162,160, 49, 48, 81, 88,118, 13, 35,115, 12,127,254,233, 23, 57,231, 16, 2, 51, 69, +166,192, 28, 67,104, 99,228,192, 77,138, 93, 74, 77,138,109,147,150,243,249,106,177,236,218,182,109, 66, 19,155,166,109, 23,179, +249,124,214,181, 93,219,181, 93,215,118, 49,165,216,166, 24,154,152, 82,140,201, 1,207, 8, 16,154, 8,138,227,216,223,222, 94, +223, 94,221,190,188,184,126,117,249,106, 24,199,235,155,155,187,221, 78,213, 74, 45,166,154,154,244,205,243,231,111,222,127,240, +198,189,123, 23, 87, 23,159,124,249,245,201,114,241,240,193,105, 21,168,185, 12, 57,207,230, 29, 35,173,102,139,147,227,227,179, +227,251, 77, 75, 47,175,174,246,251, 76, 33,129,230, 55, 30,156,109,119,251,156, 71, 64, 40,185, 34,218,106,121, 36,165,252,236, +235,175,218,216,116, 77,162, 64,171,217,226,207, 62,253,120,214,180, 93,215,253,240, 91, 31,124,252,205, 23,215, 55,155, 89,155, +154, 16,174,119, 91, 16,101,162,175, 94, 93,140,253, 24, 2,229,177,182, 93,215,165, 84,165, 26, 24,136, 14,165,246,227,208,151, + 28,137, 25,105,181,104, 61,239, 45,217,209,193, 65,204,136, 40,134,184,222,238, 60,149,159,107, 81,179, 49,151, 54, 53, 77,228, +126, 28, 1,232,239,252,230, 47,253,242, 91,111, 45, 87, 43,102, 54, 67, 1, 40, 99, 95, 75, 37,142,199, 71,171, 89,151,158, 62, +125,202,129,153,194,217,201, 89, 54,139, 4,165, 20, 53, 48,173, 93,211,138,228,188,223, 80,106, 41, 52,104, 56, 84,201, 99,143, +156,152, 12,181,238,118,187,249,124, 65, 33, 13,251,189, 17, 72,150,166,237,230,179,118,179,185,149, 90,123,129,213,233,189,231, +183,119,183,119,107, 69,236, 82, 92, 46, 22,179, 38,174,102,243,166,137,179, 89, 23, 2,181, 33,117, 93, 19, 2,199,148, 8,205, + 77,108,230,234, 31,243, 32,135, 51, 38, 85, 69,165, 22, 51,166,200, 42,197, 42, 16,153,160, 49, 50, 18, 58,140,222, 23,160, 56, +184, 78,137, 13,216,100,156, 6,158,196,106, 6,170,128,228,141,154, 3, 78,138, 21, 12, 65, 3, 65,191,219, 14,187,205,242,236, + 40, 53,115, 17,112,251,183, 20, 41,121, 28,246, 59, 41, 85, 69,154,121, 27,155, 46,198, 6,137,129,144,136,201, 80,252, 71,171, + 79,119,201,247,146,252, 74,106,254, 80,210,106,147,157,136, 39,239,149,169,168, 56,144,199,239,173,196,129,128,138, 84, 3,101, +194,170,211,104,211,111,146, 42, 74, 76, 28, 26, 3,169,185, 74,169, 8, 66, 77, 66,160, 50,142, 4,232,152,101, 20,128,128,222, +149, 21, 5, 19, 33, 52,115,251, 10, 34, 17, 87, 85, 52,219, 15, 99,208,131, 28,195, 39,163,191, 96,246, 78,115,108,243,113,176, + 29,142, 55, 63,114,221, 46, 53, 69, 78, 29,218, 65, 7, 34,182,170,104, 65, 3,112, 44,132, 33, 3, 41,138,137, 32,161, 67, 34, + 14, 60, 70, 71, 95,146,170, 97, 32, 56,108, 28, 81, 96,203,170,224, 30, 40,223,112,160, 3,189,102, 82,251, 25,248, 31,173,148, +250,230,219,143, 63,251,250, 21,242,119, 56, 57,206,127, 32, 71,154, 1,168, 8,170,202,212, 54,249,197,158, 5, 32, 32, 99,138, + 45, 33, 90,131, 72,104, 42,166,106,200, 96,162,166,150,179,169, 8,152,149, 98, 86, 76,213,204, 87, 54,136,192, 48, 6, 2, 66, + 8, 96, 50,217,130,204,220, 22, 66, 1, 2,179, 1,118,129, 83,155, 62,124,239,189,119,223,255,206,183,223,255,224,141,135,111, + 64,140,187,221,174, 31,247,187,245,250,233,147,111, 54,235,205,106,181, 72,109,243,248,241,187,170,186, 93,111,246,251,189,148, + 98,181,174,230,139, 38, 53, 67, 30,134,126,159, 71, 11, 33, 48,198, 20,194,110,232, 5,173,140, 99, 37,170, 90, 74,149, 42, 54, +150,106, 53, 35, 97,224, 24,137, 40,181, 69,106,173, 85, 68, 0,172,109, 18, 81, 80,179, 60,230, 94,242,190, 31,204, 52, 53,169, +109,186, 38,177,169,229, 82,251,126,168,162, 82, 85,173, 26, 72,228, 16, 67,108, 83, 24,107,222, 13,253, 56, 86, 99,104,218,132, +222,186, 18,101, 2, 81,139, 49,140,185, 32,129,228,122,187,222,230, 42, 72,148, 98, 20,145,177, 84,223, 27,172, 85, 75, 49, 83, + 51, 4, 2, 8, 68,129, 83,155, 98,219,117,179, 54, 33, 95, 51,199, 54,134,174,235,230,109, 51,239,102,243,174, 59, 57, 62, 62, + 90, 45,230,221,172,105, 99,203, 77,240,174, 63, 18, 69,127, 78,164,182,137, 67,206,159,124,254,245,215,207,158, 93,222,220,214, + 42,236, 30,138,192, 4,184,152,205,209, 64, 73,180,226, 88,243,241,106, 53,107,186, 92, 43,135,248,238,155,111,133,128,175, 46, +111, 31,156,158, 40,115,106,187, 6,163, 49,189,251,248,157, 49,231, 79,190,250,188, 31,247,227, 56, 70,142,111,220,127,104, 0, + 31,253,236,103, 41,132,123, 71,167, 79,206,159, 63,126,243, 65, 10,205, 71,159,126,122,113,125,133, 0,111, 62,188,255,234,252, +186, 77,241,203,252,204,170,188,253,248,254,126,200,127,242,209, 79,246, 99,255,232,254,131, 77,191,251,252,201,179,237,208,119, + 77,179,217,238,114,173,145, 35, 97, 56, 57,106, 17, 64,181, 42, 40, 26,184, 61, 92, 77, 77, 28,171, 4,234,149,182, 90, 6,104, +204,196,173,161,177, 81,176, 34,165,141, 13, 18, 84, 15, 11, 59, 70, 19, 99, 8,220,151,250, 63,253,179,143,238,126,105,252,181, +247,223,153,207,230, 41, 70,145, 34,128,219,113,232,154, 80, 75, 30,160, 80,108,114, 30, 54,235,203,245,221,205,155,143, 30,115, +196,171,205,122,177, 60,238,135,190, 10,236,182,155,121,151,108,200, 99,217, 45,143, 78,216,228,100,185,184,188,219, 96,138, 98, +204,237, 34,231,129,114,142, 33,164,110,209,221,159,109,119,187,175, 46,174,190,120,254,234,242,110,253,252,226,242,102,215,223, +245,123, 41,210,166,134, 35, 51, 81, 21,105, 99,138,145,103, 77, 34,226,163,249,188, 73, 33, 48,166,148,218, 20, 78,102,179,179, +227,213,106,181, 92, 46, 22,139, 54,158,204,187,217,124, 49,155,181, 1,184,105, 19, 98, 36, 66, 41, 90, 44,148, 82, 20, 16,234, + 72, 12,101,204,136, 53, 52, 77,136,141, 74, 85, 85, 4, 52, 20, 34,194,152,170,129,212, 74,137, 3, 51,197, 56,142, 61,136, 80, + 19,208,184, 90,117, 43, 44,135, 88,115,222,245,101,214,166,200,141,129,113, 12,154, 51, 65, 35,104,165, 20,157,240, 53, 48,246, + 61, 42, 32,114,211, 53,140, 36,234, 93, 39, 4, 3,230,201, 70, 61,241,221,192,151,249, 73, 0,107, 53,230,137, 87,107, 90, 85, +225,144,154, 86, 48, 67, 85,142, 36, 86,197,140, 67, 80,161, 82,138,137, 97,164, 24,131,128,106,150,201,242, 40,197, 76,152, 24, +152, 85, 4,213, 98, 98,226, 54,231, 98, 42, 72, 76,137,205,208,180, 26, 96,140, 33,171, 25,104,205,153, 17,140,131,168,250,104, + 29, 16, 2,120, 2,242,112,196,155,153,137, 18, 7,183, 96, 31,130,142,168,170,147, 64, 0,100,146, 99, 76,181,137,159,252,116, + 32,114,129, 33,160, 58,116,114,218, 15, 18,143,170, 76,253,238,195,230, 18, 33, 72, 53, 3, 51,228, 16,212, 65, 69, 96, 96, 34, + 21,128, 8, 21, 60, 77,165,102,116, 80, 6,250,171,239, 71,177, 35,107,106,201,237,242, 12,202, 87,251, 92, 23,179, 69, 25, 71, + 69,114, 34, 12,210, 1, 54,140,206, 80, 3, 20, 68, 86, 83,115,159,159,138,168, 26, 48,129,188,158, 52, 24, 18, 82, 72, 24, 18, + 33,152,121, 17, 70,170,181, 12, 25,160,168,212, 50,142, 62,111, 64, 21, 0, 13, 10,102, 10,254,106,134, 0,166,255,248,143,254, +184, 91,156,254, 27,255,250, 63,255,157,239,124,120,122,124, 90, 12,114, 25,111, 54, 55,121,183,187,120,254, 98, 55,110,135,253, + 56, 91, 46,127,229,215,126, 35,160,221,222, 92,230,113, 24,246,251,125,191, 15, 20, 16,113, 62,159, 25,209,213,229, 43, 85,104, +154, 56,111,155, 62,231,245,102,191, 86, 33, 68,102, 14, 77,218,247,253, 80,107,169, 42,181,168, 89,215, 52,128,144,139,130, 34, +162,137, 72,201,153, 35,167, 24,171,202,174,223,239,246, 61, 16,118, 49,158,157,156,196, 24, 84,117,204,121,187, 27,164,138,152, + 14,227, 40, 34, 69, 44, 6, 94,116, 77,211, 68, 64,220, 13,227,190,239, 85, 45,196,192, 76,125, 63, 86, 17, 17, 5,173, 2,168, + 98, 69,100, 55,236,171,210,190, 31,115,173, 64,136,106,195,144, 1,161,139,209,239, 56,200, 76,140,193,195,213,196, 41, 52, 28, +144,136, 21, 64,204,100,180,205,254,118, 24,118, 78, 43,232, 82,106,218,118,222,181,109, 74,203,197,188,107,219,163,197, 98,181, +156,117,169,155,205, 83,219,116, 90, 36, 16, 60,127,117,241,151,159,126,126,179,222,132, 64,132, 28,136, 66, 19, 81, 49, 48,251, +114, 80,136, 49, 48,153,218, 88,242, 56,244,215,140,179,210, 18,226,163, 7, 15,139,106, 76, 93,151,162,245, 61,168, 14,162, 17, +195,118,183,123,246,242, 98, 44,195,172,235,218,208,206,186,118,209, 53, 93,219, 17,232,213,205,205, 21, 92,205,187,217,139,139, + 43, 34,186,190,187,157, 55,237,195,123,103,127,249,217,103,185,212, 95,249,224,219, 33,132, 71, 39,103,219, 50,124,115,254,188, +239,135, 89,215,221,174,239, 62,251,250,233,118,232, 17,200, 4,231,221,226,216, 65,106,132, 34,146,139,248,103,146, 13,128, 25, + 0, 65,166,201,149,195, 77, 85,197, 14,206, 73,111, 6,138,105, 27, 40, 80,136, 49,168, 26,171, 9,104, 8, 78,102,155,188,170, + 98,246, 79,126,250, 51, 41,195,175,127,240,173,213,234,120,232,119, 93, 59,159,119,203,192,225,201,211,103,169, 13,167,171,179, +118,209, 52,105, 86, 74,169, 98,219, 60,156, 28,175,252,119,217,239,247, 20,210, 88, 49,198,208,239,135, 86,165,137,225,197,229, +171, 97, 44,177,105, 9,185,101,124,248,198,187,130,225,110,232, 63,123,121,253,241,159,125,242,245,179,167,219,221,102, 63,140, +158,218,218,230,140,104,196, 20, 34,197, 20, 73, 77, 69,212,164, 31,107,206, 69, 13,246, 57, 35, 98,191,223, 21,147,126, 95, 69, + 11, 83, 56,154,207, 56, 76,152,219,147,163,238,222,106, 89, 10,222, 91,118,203,197,252,193,217,241,195,179,211,123,171,249,195, +211,147,197,114,149,154, 36, 34,109,147, 40, 54, 98,128, 8,217,216, 60,114, 3, 70,200, 82, 20, 1,186, 89,151,199,106,102,192, + 16, 66,128, 72, 53, 23, 54,224, 64, 68,193, 16,173,106, 41, 37, 15,121, 62, 91,148,106,145,162,170, 43,162, 42, 17,206,186,110, + 0,147, 90,192, 64,212, 40, 50, 7, 52,211,172, 85,171,112, 76,132,196, 33, 72,205,181, 20, 10,193,183, 95, 8,163,234,168,136, + 76, 33, 4,241,203,164,100, 87,247,161,169,146, 33, 81,162, 8,181,142,109, 66, 64, 26, 11,214, 42,181, 8, 49, 27,154, 33,228, +156,209, 32,117,141, 84, 41,121, 52,209,118, 49,203,163,136,214, 24, 35,167, 84,197, 47, 79, 77,173,217,233,101, 76, 68,161, 21, +201, 98,226,224,213, 72, 60, 61,244, 17,137,153,153, 9, 33,184,166,195,113,254, 62, 50,128,195, 10,168,167, 2, 17, 92, 44,106, + 64,134,128, 24,216, 23,181, 15,196, 92, 4, 49,227, 41, 15,238,132, 70, 67, 0, 53,213, 10,134,138,138,232, 62, 29,114,132,133, + 31,183, 86, 20,105,218,214, 5, 68,100,223, 24,155, 16,196, 94, 92,197,224, 4, 81, 71, 2, 76,165, 66,205,197,144, 25,105, 2, + 35,128, 10,226,106,181,232,183,155,229,124,102, 86,164,136,119,197,171, 78, 64, 31, 79, 33,162, 1,160,104, 57, 52,205, 61, 65, + 67, 54,173,197, 78, 43, 10, 0,106,104, 89, 21, 92,143,168,238,163, 65,226,134,136,230,136, 56, 91, 50, 6,210,170, 37,143,142, +185, 81,201, 76,102, 90, 47,206, 95,125,245,228,252,225,163,247,255,237,127,231,183,149,160, 14,229,118,179,190,189,122,117,113, +254,108,179,190,235,135,108, 64,143, 30,189,253,246,219,199, 77,211, 93, 95, 95,212,146,219,182, 1,177,174,155, 49,147,154, 13, +187,126, 40,165,105,154, 7,247, 31,222,220,222,108,182,219,253,110, 44, 34, 77,227, 90, 3,237,135,190,106, 29,179,128, 65,138, +145, 65, 13,209,140,170,149,170,181,142,238, 72,179,144,194, 56,150,205,110,159,115, 21,213,229,108,118,180, 56,138,145,138,214, +190, 31,183,251,126, 24, 71, 66, 45, 21, 20,212, 53,208, 93,136, 77,219,166, 16, 74,213,126,216, 23,169, 78, 11,237,135,236, 43, +204, 34,213,135, 49, 85,172, 40,168, 34,242,172,101,106,211,204, 91,172,232, 11,108, 0,140,145,192, 16,137,137, 76, 13,232, 80, + 25,186,163, 67,132, 0, 74, 85, 64, 77,129,123,195,245,126,215,140,195,142,131,145, 5,164,197,108,121,239,244,200, 99,145, 77, +228,174,235,102, 41,205,102,221, 98,182, 80,145,167,175, 46, 74,205,169, 73, 82,242, 62, 15,140,100,189, 79,194, 17,153, 16,128, + 57, 57, 2,187,212, 98,166, 82,139,112,232,102, 75, 14,129, 12,112,142,166,186,156, 7, 32,172, 34, 4,120,117,123,219,143,125, +155,210,209, 98,181,237,247, 87,235,219,219,245,250,225,201, 81, 81,120,121,125,221,165, 48,235,186,187,205,221,110,191,191, 94, +239,154, 16,179,214, 89, 59,187,119, 28,175, 55,235,237, 56, 50,192,151, 47, 94,236,250, 65,196,206, 47,175,119, 99, 38,228,163, +249,252,193,217, 49,152,150, 90,251, 62, 3, 76,187,230,190,172,101, 4, 2,168,158, 55, 35, 48,122,109,246, 37,133,106, 6,100, + 80, 1, 81,205, 55,242, 65,141, 14, 42,131,130,166, 85,213, 55,255,196, 99,201, 6, 1,139,232, 31,126,244,115,197,240, 55,126, + 48,187,127,118,118,121,115,119,181, 94,191,255,232,109, 76, 77, 95,237,122,125, 43, 82,219,166,171,165, 15,180, 60, 90, 30, 23, +209,243,235,107, 82, 67,205,185, 82,155,186, 87, 87, 55, 15, 79, 79, 3,112,192,116,118,114, 86, 4,198, 97,255,217, 55, 95, 95, + 14,218,127,250,252,217,213,229,102,191, 30,134, 60,140, 57,165,152,152,152,208, 24, 39,121, 27, 34,128,214, 42, 76,117,234,204, + 26,153, 89, 85, 97,196, 90,106,100, 66, 36, 84, 9, 12,134,156, 2, 51, 1,147, 1,144,136,108, 54,253, 56,214,139,155, 93,209, +162, 6, 99,206, 12,198, 28,212,180, 9,225,108,185,122,252,240,244,193,233,201,106,222,206,231,179,183,206,142, 79,143,142, 79, +142, 87,145, 29, 90,167,179,229, 10,128,202, 48, 4, 50, 34, 52,177,196,161,212, 18, 57, 96, 8, 38, 46,207, 66, 49, 88,223,238, +153,177,105,102,238, 89, 68, 0, 15,122,115,140, 96,134,156,192,140,209, 18, 49, 80, 64, 12, 20, 40, 80, 99, 9,164,102, 81, 65, +135, 28, 68, 48, 19, 4, 82, 55, 2, 81, 52, 83,177,233,100, 1, 68,100, 86,169,165,140,136, 20, 98,148,146,213,147,166, 8,132, + 98, 6, 68,156,102, 73,213, 36,143,224, 54, 15, 36, 17, 49,213, 16,162,176, 12,195,216,134, 6, 83,147,165,212, 92, 38,175, 30, + 6, 70, 82, 43,129, 26, 5, 48,169, 76,228,127, 5, 2,231,146,217, 76, 81,220,228, 71, 70, 64, 28, 38,238,181,186, 26,233,181, + 38, 85,108,114,136, 35, 34, 49,138,122, 52,134, 94,211, 1, 94, 51,207,188, 51, 6,158, 46, 58, 48, 99, 28,179,138,254,141, 71, + 4, 53,104,154, 38, 52, 97,127,187,157,198,172,140, 6,122,200,160, 24, 34, 17,144, 65,245, 22, 92, 49, 37,100, 34, 84, 69,241, + 65,235, 20,216,121, 93, 98,120,184,207,204, 76,114, 57, 58, 58, 94,223, 92,158, 28, 45,107,206, 98,202, 46,111, 69, 68, 83, 60, + 44,149,226, 36, 95,192, 3,167,221, 0,209,127,229,233,128, 87,143,128,138,151, 54, 19, 88, 24, 12,196,166, 56,191, 85, 32, 16, +173,160, 8, 8,129, 1,136, 67,104,204, 22,151,175,206, 63,249,232,227,152,102,239,126,231, 87,218, 24, 47, 46, 94,148, 82, 46, +206,159,191,122,249,188,223,245, 72,225,173,183,223,253,224,222, 61,149, 2, 86,145,105,223,175,119,155,117,149,250,234,242, 85, +191, 31, 24, 48,166,112,114,118,186, 60, 89,149,203,203,139,139,139,126,200, 57, 15, 33,198,148, 2,138, 86,173,253, 40, 99,206, + 98,230, 44,134, 89,147,156,143, 80, 69, 75,201,181,230, 90, 51, 2, 41,192,126,200, 85,197, 4,218,212, 28,175,102, 77, 96, 49, +221, 13,155,113, 83,242, 88,199, 82, 74, 45,204, 33,134, 48,150,222,192, 0, 83,215,117,206,157, 42, 82, 76,140,155,152,112, 70, +104,132,176,219, 13, 96,176,181,253,186,212, 34, 82,157, 45,129,236, 42, 43, 67,243, 44, 44, 59,185,223,133, 11, 30,175,147,154, +205,212, 42, 19,250,198, 28,152,127,198,148,145, 49,160,170,198, 16, 23,243,238,118,179, 17, 0, 2, 5,195, 44,178,235,247, 39, +101,214, 54,237, 56,150,161, 14,227,144, 47,197,196, 4,192, 82,140, 6, 22, 67, 84, 48,239,191, 22,176, 8, 68, 76, 42,162,181, +130, 97,201, 91,175, 43, 85, 21, 9,168,232,200,149,134,253,232,215, 76,160, 24,130, 33, 68, 12, 77,140, 68, 72,204,111, 52, 15, + 13,196, 41,196, 93,104, 1,244,203,231,207, 75,173, 99,201,121,236,115,201, 99,169,155, 33, 63, 60, 57, 93, 45,102,231,215, 23, +199,139,163,148,226,147,243,203,237,176,219,238,134, 64, 68, 72,217,138, 55,233, 12, 97,172,217, 12,115,169,165, 10,162, 2,210, +235, 74, 82,201,211,199, 64, 0,162,158,230,125,189,188,225, 82, 31, 99, 38,247,186, 43, 40, 35, 24,130, 50, 18,133,156, 7,169, +197,124, 40, 69, 6,132, 38, 96, 12, 96, 70, 6, 49,134,255,235,211, 47,111, 54,235,127,237,119,126,123,214, 52,251,166,219,238, +119,203,174,235,139,169,148,221,238, 70, 49,214, 82,204,140, 98, 88,223, 93, 15, 67, 47, 34,109, 12,243, 89,119,180, 88,222, 59, + 89,237,134,124,181,219,127,250,245,167, 95,159,191,120,121,187,239,115, 30,139, 84, 19, 38, 92,204,103, 4, 60,107, 19, 25,136, +169,137, 78, 10, 11, 53, 69, 52, 53,246, 97,156, 47,143,219, 68, 15,156, 0,220,170, 22,244,150, 0, 0, 32, 0, 73, 68, 65, 84, +104,134, 88, 85,165, 90,145, 10, 2, 98,101, 32,138, 16, 8, 33,139, 0,193,176,173, 8, 18, 1,136, 48,166,104, 64,106, 82,178, +222,150, 97, 55,142, 79,175,111, 14,200, 29,139,196, 72, 56,159,205,151,109,211, 54,241,116, 49,187,119,118,122,182,156, 31, 47, + 22,199,171,197,209, 98,182,152,207,222, 56, 59,109,231, 29, 1, 6, 4,140,193,185,134,125,206, 90,243,217,217, 49, 82,200, 37, +179, 9, 5,156, 86,141,106,225, 24,151,171, 48, 14,161, 12, 99, 21,137,238,147,180,232, 78,104, 68, 34, 16, 53,247,131,177,170, +163,149,221,144, 77,234, 90,113, 68,162, 32,181,212,154, 67, 68, 7,232, 35, 18,197, 38, 16,214, 58,150,226, 75, 50, 8, 0, 82, +170,107,227,192,208, 84,129, 12,204,128,217,106, 97, 12, 49, 0, 18,169, 9, 1, 26,147,169,168,136, 79,169, 1,185, 74, 5, 19, +160, 0,198, 6, 86,198,130, 44, 33, 68, 1,208,126,175,181,112,228,169,186, 5, 85, 67,114, 61, 29, 77, 81,152,131, 30, 69,241, +181, 78,122, 82,231, 49,145,122, 65,233,116, 35, 87,251, 57,251,104, 90,213,153,174,224,132, 32,134,132,120,112,126,148,113, 44, +227, 8, 96, 80,205,124,137,106,250, 12,211,148, 44,157,104,118, 82,171,146,239, 37,185,148,152,204,137,163,224, 20, 89, 95, 3, + 86,197, 9, 55,138,166,146,230,139,171,155,103, 82,134, 92,202, 4,137,124, 29,173,157, 6, 4,234, 26, 97, 38, 4,155,136,100, +126,196,155,218, 68,113, 35,115,189,217, 47,214,230,192,125,223, 64, 46, 11,192,105,209,219, 87, 38,114,149, 50,148,126,188,253, +236,147,159, 14,195,240,238,183,190,179,156,207,175,175, 94,124,115,115,121,125,117,181,223,238,114,174,247, 30, 62,252,238,247, +126, 16, 83, 35, 37,223, 94,191,122,245,242, 85, 41,117, 55, 14,155,221, 78,139, 52, 77,138, 33,164, 20, 83,211,132,200, 47,207, +207,215,235, 53, 0,198, 16, 23,243,102,143,176, 27,246,227, 48, 22, 17,239,247, 17, 97, 36, 14, 28,156, 97, 93,160,140,217, 65, + 50, 90, 69, 74, 45, 34, 86, 1,186, 16, 87, 93,203, 76,129,121,187,223,109,182,217, 12, 66,136,181,202,182,239,157,195,188,235, +247,110, 38,105,155,102, 22, 19,209, 4,189, 83, 21, 19,147, 90,119,227,222,115,179,155,221,126,172, 32, 90,247, 67, 53, 82, 54, + 50, 0,197,226, 49, 90,246,131,123,210, 54,170, 34,130, 24,240, 68,110, 32, 81,241,167,178,203, 11, 13, 8, 76, 77,249,117, 10, + 15, 21, 45,164, 24,198, 82, 1, 98, 32, 68, 0,145, 90, 74, 77,169, 34, 26, 42,186,133,109, 28,234,245,230,238,209,253,147,239, + 62,126,115,189, 27,231,179,213,237,246,246,234,246, 14, 24, 71, 49, 70, 0,196, 38, 38,100,242,111,129, 42, 1, 22,154,238,149, +117, 43,142, 24,131, 73,109, 22,136, 41, 36, 14, 76, 28, 67, 10,145,188,158,157,181, 73, 83, 10,129,143,142, 79, 68,106,174, 53, +231,113, 24,199, 82, 43, 82, 8, 8, 95, 62, 59,191,222,172, 95, 93,222,169, 42,113,152,117,109,192,144,152, 51,100, 52, 55, 78, + 0,161,144, 37, 10, 68,149, 24,107, 5,159,239,131,190, 14,126, 77, 22,176, 73,201, 62, 29,238,238, 93, 82,241,156,177, 34,152, + 41, 16, 8, 64,173, 70, 64,232,203, 53, 54,129,237,212,204,196, 38,163,197, 4,214, 69, 6,248,233,147, 87,252, 39,127,246, 91, +223,121,119,222,206, 2,242, 80, 75, 30,135, 89, 55,159, 47, 79,119,195,158, 57, 94,173,183, 5,104,213,182,219,102,119,118,239, + 29, 12,233,118,179,249,163,143, 63,253,242,252,242,197,213,205,213,102,189,222,237,252,175,155,167, 24, 83,138, 64, 41, 68, 80, + 51,156,102,161, 7, 42,147,203,233,166,175,154,255,199,243,120,132,128,132, 38,147, 73, 14,167, 64, 51, 16,146,248,193,133, 20, + 0, 64,173, 98, 45,185,104, 5,166, 48,228, 28,189,199, 81, 68,188, 48, 80, 69, 83, 64, 14, 14,135, 64, 42,126,220,170,230,156, +215,160,151,235,205, 55, 47, 94,206,158,189, 26, 74,185, 92,223,161,200,188,233,150,243,110, 53,235, 22,139,217,114, 54,123,112, +180,124,120,122,116,118,188,122,243,222,201,106,185, 76,132,243, 38, 49, 83,199, 93,149, 12,132,234,171,142, 30,190,119,115, 72, + 16,198,192, 41,185,110,211,166, 64, 33, 33, 77, 6, 54, 53,156, 8, 29, 19, 13, 17, 1, 25,129, 8, 21,145, 25,188,159, 12,160, + 74, 33,128,145,105, 29, 74, 97, 2,164, 88, 84, 77,196,164,114, 12,129,217, 12,213,109, 30,106, 8, 26, 67,210, 24,196, 84,165, +128, 42, 48, 7,130,108, 19,103,212,227, 45, 90, 43, 0,144,243, 17, 12,131,115,135, 76,193, 60,140, 10,160, 90, 10, 18, 8,161, +134,137,129, 55, 61,119,205,219,218,211,138, 19, 26, 34,123,139, 2, 93,129,230, 11, 74,132,211,197,195, 76,127, 17, 20, 63, 20, +144,134,128, 76,175,117,126, 14,155, 48, 3,157,246,130,156,169,134,108, 83,199,199, 75, 84,157, 26,250, 6, 22, 2, 79,104, 1, + 48, 6, 18, 1, 67, 3,154,182,136, 13, 77, 69,205,128, 34, 97, 32, 19, 1, 4, 6,252,248,163,143,122, 9,191,250,131, 15,215, +155,157,155, 34, 16,217,192, 76, 42, 2, 2,138,151, 36,234,202, 78,244, 44,102, 69, 37, 15, 62,250,129,132,122, 48, 18,178, 47, + 18, 79, 82, 43, 39, 12,195, 4, 71,211,221, 38, 87,145,188, 31,158, 63,253,230,217,243,167, 15, 31, 60,124,240,232,237,245,245, +203, 47,127,118,113,125,117,173,104,139,197,252,209, 59,223, 58,187,247, 48,165,180,190,189,122,249,244,201,110,191,221,108,247, + 23, 87, 55,185,228, 90,165,155,181,173,119,244,136, 16, 96, 55, 12,249,110, 8,196,243,249, 66,164,170,202,205,221,118,179,219, + 35,122,239, 12, 9,137, 67,195,140, 62,219,204, 57, 15,101, 48,131, 90, 74, 41,101,204, 85,204, 66,224,196, 24, 66, 48, 67, 81, + 25,203,168,166,251,177,144, 71,142, 76,198, 90, 76,193, 80,199,162,136, 12, 8, 77, 72,145,120, 63,142,178, 23,100, 84,213, 90, +197,212, 74,173,187,190, 18, 83,151,218, 77,159,199, 82,220,210, 11, 2,130,138, 7,143,138,223, 61, 21, 20, 1,176,170, 25, 41, + 26,249,119, 28,136, 14, 66,117, 64, 35, 3, 51, 49,243,112, 18,142,165,150, 90, 42,134,212,198, 24, 66, 3,179,253,184, 38, 44, + 12, 17, 9, 69,180,104, 45, 69, 92,175, 92, 75, 53, 48, 14, 52,107,218, 7,199,199,187, 33, 95,111,118, 33,118, 39,171,147,183, +222,124, 20, 66,216,239,134,167,231, 95,207,218,249,144,199,245,110,211,132, 56,129,249, 28, 37,228, 66, 13,112,176, 10, 42,130, +168, 88, 17,130,218, 35, 56,101,156,153,152, 2, 5,110, 67, 19,153,253,244, 15, 76, 13,209,114,121, 10, 75, 0,134,183,223,120, +115, 24,198, 7, 15, 30,142, 99,217,236,119,227, 56,140,227, 88, 85, 12,160, 88,173,181,130, 89,173, 85,212, 11,246, 73,245, 32, +106, 2,198, 52,237,115, 59, 25,210,212,136,176,138,231,205, 14,110, 3,159,255,136,248, 94, 30,129, 1, 24, 3,154,136,212, 2, +104,132,216, 4,222, 7,178, 90, 96, 34, 19,250, 13, 11,171,170, 31, 17,204, 28, 99,252,248,217,121,174,229,111,253,181, 31, 22, +145,245,110,211,166,214, 52, 31, 47, 22, 93, 10,253, 48, 70,228,156,235, 75,158,255,249,243,155,243, 31,127,113,126,117,185,217, +141,213,252,173, 23,149, 26,152, 24, 88, 93, 65,105,230, 89, 53, 17,229, 80,192, 32, 87, 97,162, 10,224, 68,201,250,154, 30, 66, + 72, 0, 33,134, 82, 10, 24,130,218, 1,244,135, 10, 96,165,154, 86,240,214,147, 2,187, 82,208,227,228,128, 85,133,201, 84,161, +138, 11, 61, 44,139, 16,162,130, 89, 5, 37, 20, 21, 3, 16, 52,241, 5, 61, 70, 83,149, 82,208,148, 16,152, 49, 20,154,135, 4, +209, 0, 97,168,117,123,115, 93, 47,174, 94,187,171, 8, 48, 16,221, 63, 89, 17,211,201,124,118,122,180, 60, 91,204,142,142,143, + 30,221, 59,125,243,236,120,121,180, 88, 45, 86,243, 14, 99, 8,216,116, 50,155,249,141,170, 10,248,250, 8, 99,144,168, 86,213, +204,141, 44, 72,156, 0, 76,164, 34, 29,206, 59, 85,166, 8, 6, 22,146,212,130,140,128, 36,106, 10, 3, 35,135, 38,162, 66,173, + 2,170, 41,178,197, 56,228,140, 38,236, 70, 23,243,125,160, 88, 68,152, 29, 40, 25,212,143, 58,196,136, 36, 77, 35,101,212, 82, +152, 57,164, 36,230,251,252,132,211,238, 10,131, 1, 51,107, 46,222,101, 33, 53, 38, 50,197, 96, 96, 40,134,126, 22, 19,146,136, + 63,152, 21, 25,205,152, 13, 12, 14, 36, 69, 31, 5, 31, 96,144, 58,245,217, 15,184,223, 67, 86, 94,213, 64,144, 8, 29, 55,111, +254,224, 81, 64, 37, 63,255,213,128,212,121,234,254, 83,112,194, 15,161,169,130, 33, 5,191, 31, 79,255,155,252,202,103,122, 64, +210,160, 34, 2, 88,215,196,253,126,215,117,243, 16,200, 84,134,237,250,127,251,195,127,242,163, 95,250,246,180, 81,237,198,166, + 73,135, 41,160, 70, 97, 2, 9,121, 89, 73,166, 8, 12, 19, 71,195, 84,170, 83,128, 1,200,192, 64,166,252, 59, 34, 18,161, 17, +104,150, 93,159,199, 97,204, 99, 38, 10, 55,183,175,158,124,245, 85,205,195,106,177,220,220, 94,127,253,197, 23, 55,219,219, 89, + 59,187,119,118,111,177,152,137, 98, 32, 94,223,188,186,185,186,190,184,190,188,185,219,238,199, 65, 68, 18,115, 10, 60,159,117, +204, 88,198,108,208,152,122,152, 23, 25,217, 84,183,219,254,160, 35,136, 71,139,249, 48, 14, 99, 46, 76,196, 20,153,160,150, 50, +214, 90,164,170,129, 26,228,113, 44,181,136, 72,147,146,145,239,153,217,110, 24,134, 97, 68, 98, 98,146, 42,197,106,195,201, 64, +115, 81, 53, 11,145,170, 98, 76, 92, 75, 54,131,221,208,111, 7,155, 86,149,145,246,251,126, 63,148, 92,165, 40, 18,105,224,184, + 31,199, 42, 2,166, 85,108,114, 93,130, 7,213, 8, 0,164, 24,178,161,122,186,217, 37,247,102,100,193, 51, 88,138,135,159,140, +190, 51,206,190,237,226,168, 69, 68, 64, 29,242, 16, 57,117, 41,201,124,182,222,237, 0, 36, 33, 3, 64, 63,142, 8,180,104, 91, +241,244,172, 41,128,198,192, 47, 46,175, 63,120,252,230,119, 31,191,121,219,151,111, 61,126, 12,132,203, 89,151, 5,111, 54,155, + 71,247, 78, 63,127,242, 13, 66, 56, 61, 58,189, 89,223,237,250, 97, 49,107,134,154, 1,145, 17, 99,140, 8,174, 43, 37,239,141, + 28,214,169,124,155,198,178, 20, 27,109,143,123, 79,192, 50,113, 10,145,153, 99,216, 51, 83,160,200,137, 3,211,106,177,162, 21, +189,129,247, 16, 88, 84, 75,205,162, 58,142,227,102,187, 45, 67,185,237,183,231, 47, 95,249,208,195,247, 60, 68,100,130,158, 34, + 32, 98,209,105, 39, 92,193,180,122, 28, 9,145,144, 12,216,215, 85, 17, 16,125, 39,127,106,245,152, 2, 56,174, 88,213, 11, 38, + 67, 62,240,183,157,172,162,244,255, 83,192, 19, 2, 6,250,236,252,114,252,147, 63,255,253, 95,249,165,183,238,159,130,192,171, +205,245,197,205,237,249,122,251,213,203, 87, 69,232,118,191,239,115,201, 37,251,166,249,178,153,165, 24, 24, 33,103, 85, 0,243, + 29,124, 68,166,102,218,209, 3, 5,110,204,132,136,167,166, 3, 64, 38, 82, 21, 54, 80, 83,168,128,137,216, 47,112, 19,226,207, +215,216, 93, 91, 12, 14,244, 16, 80, 49, 35, 0, 49, 51,172, 85, 66, 17,241, 4,182, 1,154,137, 10, 0,105, 53, 69, 83, 70, 30, +167, 39, 11, 38,112, 21,140,185,165, 34, 66, 64, 67, 17, 20,213, 41, 80, 80, 75,169, 5, 9, 3, 19,138,129, 0, 19, 70, 6, 21, + 70, 66, 3, 45,162,219,126, 24,115,125,121,117, 91,164,238,115,110, 67, 88,204,230, 93,234, 24,117,214,198,163,197,236,222,209, +209,227, 55,238,157, 30,173,190,243,248,209,131, 71,111,213,177,134,182,227, 96, 76,134,196,140,172, 68,160,122,128,153, 35,135, +224, 27, 82,136,196, 33,152,161, 22,225, 38,197,212, 14,227,222,170, 34, 35, 35, 19, 6,201,130, 12, 72, 64,136,165,138,106,230, +233,161, 99, 49,112,169,140,117, 20,171, 4, 72, 24, 69, 65, 64,240,176, 82,175,102,181, 10,115,192, 48,205,112, 3,153,255, 38, +147, 34,219,212, 12,198, 97, 48, 80, 36, 36, 74, 50, 22, 51,157,216,102, 41, 68,117,108,174, 42, 78, 83,121,244, 1,166, 29,144, + 94, 96, 54,149,101, 30, 81,199,137,113, 10,204, 33,198,169,135,126,248,204, 57,231, 8,253, 92, 62, 4, 27, 65, 77,173,162,103, + 43,189, 28,128, 67,237,112, 16,209, 34,177,211,241, 15,170, 12,157, 40, 35,254,179,166,131, 8,136,136, 3,254, 31,255,232,127, +253, 7,255,227, 63,164,216,164, 38,157, 28, 31,175, 88, 16,219, 24, 83, 81, 45,185, 56,159, 18, 76, 8,193, 81, 97,160,134,128, + 42,117,194,227, 33,169,186,254,113,226,176,138,249,121,143, 90, 11, 34,113, 76,206,115, 26,199,186,223,247,227,126, 44,181, 74, + 25,251,126,251,242,249,147, 79,191,248,249,131,179,251,128,118,121,117,211, 38,142,177,121,120,118,186,104, 23, 22, 35, 26, 45, +150,179,126,191,125,242,228,249,211, 23,231,165, 84, 4,104,154, 38,133,224, 53, 81,205, 82,217,220, 37,109,104, 34,121, 55,142, +238, 53, 79, 41,181,177,203, 99,238,247,187, 77,191, 39,230,166, 73, 34,138,104,185,228,109, 63,228, 82, 60,166,201, 33,112, 8, + 41, 70, 67, 41, 85,107, 17, 19, 5,196, 90,197, 24, 85,101,216,143,132,148, 82, 18, 17, 67, 85, 85,173, 54,100,185,221,110,230, +237, 44,165,192,158,201, 67,205, 37,239,246,121,189, 29,198, 90, 29,254, 30,208,181, 12,154,221,239,131,147, 62,195,247, 13,139, +105,240,192,135,161, 42,208,235,239, 51, 26, 26,162, 55,190, 29,244,140,206,154, 83, 68, 12, 7, 13, 0, 29, 54, 45,188,177,144, + 75, 1,196,101,215, 17,242,110,191, 29,165, 6,160, 90, 4,147,229,154, 83, 19,177, 90, 21,245, 36,234, 80,228,231, 79, 95,156, + 30, 45,255,213,127,233,239,214,177,254,241, 95,254,197,217,209,114, 55, 14,167,199,171,227,227,227,250,229,215,199,179, 21, 34, +174,119,251,239,127,240,189,199, 15, 31,156, 30, 45,215,251,253,159,254,213, 79,246,227, 78, 69, 68, 37, 48, 85, 17,166, 72,165, + 32, 34, 5, 33, 3, 12,140,196,222, 54, 49, 68, 53, 45,162,163,100, 2, 2, 68, 66, 76, 20,128, 49,112,100, 34, 36,238, 82,106, + 98,226, 16, 3,117,204,164,243,197,189,147,123, 49,144, 33,230, 92,174,174,175, 46,110,174,155, 20, 8, 97, 44,165,168,152, 23, +216,106,132, 88, 85,137, 48, 48, 87, 44, 8,192, 4, 34,126, 11,115, 20, 48, 16, 0,241,161, 39,111,128, 76, 28, 8,171,131, 66, + 32, 48, 87, 21, 21, 67,159, 50, 33, 25,184, 31, 97, 82,197, 35, 96,176,160, 0, 95,156, 95, 17,252,244,131,183,238,127,254,226, +234,197,122,125,187,217, 87,129, 20,120,222, 80,140,141, 59, 44, 49,160,169, 41, 26,169,103, 46,167,212,243,129,134, 58,149,183, + 0, 8, 90,212,144, 9,226,164, 89,166,160, 42,168,197, 12,128,140,170, 33, 84,176, 96,213, 87, 79,212, 0, 80,139, 74, 34,244, +193, 34,121,131,222, 43, 2,240,130, 89, 20,148, 0,201,231, 56, 62,208,211,137, 99, 12,254, 88,159,228,157, 6,102,204, 76, 82, + 29,224, 94,173, 86, 53, 2,100,128, 97, 24,157, 83, 41,234,144,209, 82, 85, 0, 16,148, 16, 60,219,173,168, 98,218,136, 26, 49, +144, 80, 66,103,102,170, 89, 29,213,246,235,225,229,205,221, 79,190,252,166, 9,105, 24,243,127,248,247,255,133, 95,251,157, 31, +221,222,109, 75,209, 50,150, 49,143,232, 61,182,195,135,188,153,205, 99, 51,179, 42, 76,202,156,212, 76, 74,230,192, 6, 25, 12, +138,148, 16,131,144, 18, 64, 21, 53,172,212, 54, 40,181, 84,149, 98, 33, 48, 7,158,234, 0, 10,166,142, 86,111, 69, 51,146,119, + 16,176,141, 51, 1, 45,146,107, 29, 3,199, 24,147, 65,213, 42, 85, 32, 53,141, 42,154,136,103,223,253,194, 77,129, 16,217,140, +144, 76,171,114,215,120,136, 54, 16,134, 34, 3, 81,152,122,213,236, 4, 94, 7,225, 78,254, 61, 56,200,142, 15, 14,105, 31, 59, +123,222,157,224, 53,113,221, 38,143,210,129,248,168, 48, 5, 40,125,111, 85, 39, 45,134,175,227,185,228,101,242,126, 28,160,141, +168,134, 1,188,197,133, 19, 80,223,237,127,226,239, 19, 78, 19,134, 39, 95,124,250,223,252,119,255,195,203,157,158, 46,106,190, +189, 59,127,113, 94,213,126,251,215,126,253, 31,255,225, 31,190,241,248,189,119,223,125,171,150, 50,141,179, 14,146,245,137,227, + 75,236,191,254,107, 96,217,107,248, 0, 79,219, 22, 2, 20, 84,160, 31,181,228,220,239,198,113,232,107, 25, 17,116,236,119, 47, + 47, 94,125,252,201,199,219,125,158,207,103,151,183, 55,100,120,188,154, 47,230,139,118, 62,107,218,212,197, 48, 86,123,117,121, +241,252,167,231,235,245, 54,231, 28, 82,211,166,196, 68, 49,177, 40, 4, 98, 3, 81,177, 24, 89,198,220,247,195, 68,108, 98,236, + 82, 7, 8, 67, 25,174,111,111,199,113, 68,228,174,105,192,108, 55,246,251,190,119, 38,143,136, 49, 97,138, 13,115,100, 70, 0, + 27,242, 40,213,218,216,142, 50,172,183,219, 10, 74, 16,192, 80, 84,221,150,161,112,104, 22, 82,192,132, 9,108,185,176, 54,198, +162,101,172,197,128, 25,240,118, 51,108,251, 49,151,202, 19, 77,194, 12, 44,155, 5, 64,158,112,160,238, 46, 87,247,110,177,239, +171,137, 18,163,169,235,139, 12,192, 64, 20,144, 39, 49,139, 29, 2,170,160,135, 10,143,144, 21,225, 32,210, 68, 5, 35, 52, 96, +132, 90,242, 94,164,107, 82, 10,171,109,223,151, 82,134,113, 92, 52,211,250,120, 64,170,128,165, 22, 64, 20,213,171,117,255,224, +222, 89, 25,182,159, 63,121, 9, 24, 62,120,255,219, 79,207, 95,198,148,182,235,245,188,235,152,224,226,230,230, 91,111,189,245, + 43, 31,126,235,231,207, 94, 60,126,244,240,114,189,126,247,237, 71, 47, 94,190, 66,176,243,171, 11, 10, 60,140,153,188, 87, 34, + 74,132,134, 24, 34, 7,160,144, 2, 96, 32, 48, 38,118,186,180, 6,243,225, 66,150, 34, 21,136,138,155, 6,118, 59, 12,156, 56, +114, 36, 10, 41, 70, 98,134,144, 9, 21,113,214,181,111, 60,124,120,239,228, 76,172,168,193,174,239,135,126, 95, 75, 25,203,184, +239,199, 82,107, 24,177,152,223,202, 15,223, 28, 38,158, 32,214,200, 60,161, 51,166,164,177, 63, 32, 85,152, 2, 17,171,100, 0, + 99,114,229, 24,160, 65, 64, 84, 51, 69, 50,167,234, 57, 22, 30, 13,209,218, 72, 63,127,117,251,217,249,229,118, 44,140,216, 53, +177,137,254,117,101,191,127,218,164, 86,152, 24, 36, 72, 78, 37, 65,125, 45,173,113,178,176,139,107,204,124, 21,190,170,132, 24, + 84, 39, 38,171,248,147,200,195,121, 6,136, 36, 34, 41,113, 29, 43, 48, 51, 18, 0,166, 64, 67,241, 69, 70, 35, 66, 81, 16,177, +170, 83, 46,131, 24, 69, 64,192,212,109,217,224, 56, 0,212, 9,248, 14,136,152, 85, 3, 64,203,140,211,210,185,169,184, 26, 20, +128,120, 63,150, 41,185, 98,134,211,243,233,176, 22,233, 2, 20, 64, 81, 80, 21, 15, 95,123,159,197,135, 7,185,102, 85, 83, 21, + 52,232, 98,156,117, 77, 74, 60,239, 58, 20, 11, 68,221,162,129, 85, 82, 85,145, 98,170,165,148, 90, 93, 3,179, 23,201, 28, 26, + 17,180,113, 67, 28, 24, 88,242, 32,170,168, 18, 82,139, 6,160, 98, 86,153, 25, 12, 24,188,167,129, 20,131,199,200,252, 81, 94, + 85, 3, 98, 12, 49,107, 38,136, 0,232, 47, 81, 5, 81, 21, 4, 11,222,193, 69,168, 50, 41,221,171, 20,166, 38, 48,138, 59,196, +196,164, 86, 4, 35, 52,226, 0, 0,200,177, 74, 77,104, 4, 22, 0, 80, 13, 77,196,199,189, 32,250,250,189,245, 59,184,136, 76, + 77,138, 3, 23, 0,180,122,197, 25, 56, 58, 7,206,251,245,228,117, 37,251, 76,107,106,250, 76, 50,107, 4,164, 56,189,244, 6, +135, 65,187, 7, 86, 4,129, 16, 9,216, 38,135,146, 55,218, 39,162, 1,121,208,157, 48,170,137, 63,117, 76,245,241,251,223,253, +123,255,242, 31,252,215,255,253, 63,116, 73, 66, 12,109, 54,249,217,151, 95,125,244,201, 71,127,227,247,126,255,251, 31,126,235, + 58,103, 80, 33,226, 64, 92, 65,225,176,185,229,221, 68, 5,163,105, 22,236,104, 58, 36,160,172, 2,162, 34, 92,139,149, 82,182, +155,219,190,223, 90,173,196, 36, 82,159, 62,249,230,203,111,158,172,183,251,132,180,154,117, 90, 43,165,248,222, 59,111, 29,159, +158,206,186,217,122,189,126,242,226,197,205,245,245,122,187, 99, 3,111,132,206,187, 24, 99,104,218, 6,145, 68, 10,146,186,118, +217,207,229, 90,196, 64, 3, 48, 16,182, 41,110,242,122,183,223,101,209,200,161,105, 58,211, 58,228, 97,179,221, 86,169, 96, 24, +136, 99, 10,129, 25, 13, 69,171, 65, 21,245,207,143,246,253,120, 43, 27, 85, 43, 34,128, 40, 38, 0, 16, 41, 18,123,161,140, 38, + 86,138,204,187,121,219,117, 82,235,118, 8, 23,151,151, 64,156, 98, 36, 47,196,144, 76,209, 73, 31, 38, 0, 96,242, 11,242,130, + 78,195,118, 63,174, 81,236, 96, 46,124,221,181, 3,143,114, 79, 80,185, 73, 81,110,224, 31, 36,251,133, 96, 23,196,227,183,230, +192, 31, 23,100, 29,122, 23, 6,186, 27,251,200,113, 57,155,143, 57,239,199,190, 47, 37, 40, 35, 66,228,144,179, 0,216,209, 98, +121,124,180,124,235,254,131,211,227,249, 59,143, 30,125,253,244,229,241,106,126,117,115, 99, 64,243, 38,237,153,110, 55,155,253, +176, 59, 91,172,126,240,157, 15,190,124,246,124,183, 27,186,118, 86,164,158, 95,190,236,115, 63,140,101,170,228,204,198,154, 85, +100,179,223,139, 2, 49, 53, 49, 52, 49, 49, 97, 8,132,196,129, 25,145, 66,226, 36,193, 27,122,190, 66,229, 25, 98, 1, 33,196, + 92,118,144, 1, 21,140, 56, 16,197, 20, 2,167, 38, 4,171, 89,192, 76,141, 57, 18, 26, 50,117,109, 71,243,165,106, 21, 53, 5, +171, 89, 74,201,253,216,247,195,176,222,238,110,215,119,185, 31, 70, 51, 50,100, 14,106,224, 59,223,174,238, 33, 35, 12,228, 23, +231, 64, 72, 8,204, 60,214, 2, 64,132,168,206,237, 10,225,224,134,155,164,165,222,252, 36,164,121,162,106, 36, 10,106,224, 62, +107,158,250,147, 10,230, 56,247,105,238, 45, 86,153,153,144, 1, 21, 1,130,129, 78, 52, 51,159, 15,168, 26,138, 78,192,121,240, + 25,130,169,249,202,161, 40,120,202, 7, 16, 20,170,148, 32,147,177, 27, 8,153, 25,153,235, 96,168, 94,195, 24,120, 58, 14,192, + 39,177, 42, 38,166, 65, 39, 85,146, 18,128, 0, 51,153, 30,160,234, 62, 79, 86, 45, 85,109, 42, 11,209,192,162,151,245,160, 38, + 85,112,210, 63,192, 52,192, 38,191, 96,190,254,248, 33,162, 34, 0,161,122,108, 0, 13,205,249, 42,182,207, 25,181,154, 90,211, + 36, 81,169,185,214, 34,226, 21,111, 21,164, 98,106,104,170,102, 33, 4,102, 87,195, 1,152, 32,100, 65, 52, 18, 52, 21,149, 92, + 70, 83, 20, 0,217,141,218,151,217,124,142, 20,164,142,158,220,101,118, 81, 19,136,178,138,170,168,128,166, 24, 1,200, 16,152, +130,104, 65,162, 67,116,219,199, 6,164,104,102, 24, 41, 16, 83,197,172, 62,215, 1, 69, 34, 15,215, 35, 19, 6, 12,196, 24,130, + 22, 1, 80, 38,139,161, 1, 19,172, 37,248, 16, 5, 12, 0,217, 3,141, 70, 19, 3,192,251,240, 96, 64,254, 15,242,181, 86, 64, + 35, 50,127, 5, 19,193, 33,133,110, 98,194,132,248,250, 94, 76, 62,125, 3, 87,159, 78,189,243,169,103,228,231, 2, 78, 92,245, +224,162,130,234, 48,162,195, 93,219, 76,200, 67,144,164, 40, 83,215, 29,125,252,139, 0,156,126,227,183,126,247, 39,127,245,217, + 95,126,121, 62, 22, 5,172, 98,245,249,179,175,175,119, 35,254,223,127,252,175,252,139,191, 23, 17,170, 1, 0,138, 1, 35,187, +125,220,107, 34, 39,200,212, 90, 76, 32,117, 45, 49,155,218, 80,180,100, 21,195,177,223,110, 54, 55,195,230, 70,181, 16, 52, 24, +224,213,249,213, 23, 95,124,241,234,246,246,236,228,232,209,189,123,254,140,185,127,239,228,241, 59,239,150, 90, 63,254,228,147, + 39, 47,206,183,155, 45, 50, 53,169,233, 98,116,109, 83,219,134,200, 41,196, 84,107,221,247,123,169, 38, 32,104, 48,150, 44, 62, + 22, 16,193,192, 49,165,128,184,221,237,247,117,156, 55,179, 46,145, 66,237,251,221,221,110, 39, 53, 35,133, 16, 98, 74,145, 0, +106, 21,138,228,153, 76,100,220,237,251, 82,234, 56,142, 67,205, 67, 17, 52,240, 37,108, 71, 81,215, 92, 20,168,141, 12, 8,185, + 10, 80,192,192,221,172, 67, 83,142,169, 31,199,190, 31, 1,145,137,170, 74,155, 82, 79, 67, 21,144,170, 96, 54,249, 33, 0, 0, +176,250,136,115,218, 52,112,150,160, 47,240,201,107, 78, 4,161,153, 84, 18, 52, 70,240,110,236,228,142,240,176, 7,152,107,214, + 16, 84,125, 72,134, 7,110,219,107, 23, 35, 32, 98,128,168,162,131,230,211,213,252,141,120,180,222,236,171, 8, 87,170,117, 60, + 93,173,254,218, 15,126,248,203,223,253,246,217,209,241,213,245,205,205,230,174,235,230, 63,127,242,205, 63,247,215,127,253, 39, +159,126,129, 0,127,244,167, 95, 75, 41,187, 97,124,116,239,222,143,190,247,221, 24,194, 23,223, 60,249,240,219,239,253, 47,255, +232, 15,127,254,252, 89,140,225,187,239,188,255,217,147,175, 36,151,181,202,221,250, 46,139, 34,113,147,218, 89, 55,107, 34, 65, +213,106, 58,230,177,102, 25,139, 53,109,154,165,176, 94,103, 10,161,235, 98, 12, 33,134,164,166, 76,204, 20,220, 9,163,100,100, + 17, 3,130,214,177, 74,174, 57,114,206, 28,183, 62,116, 34, 8,192,109, 19,230,179,217,241,201,106, 53, 91, 44, 22,139,197,114, +217,164,132,224,208, 43, 37,166, 97,216,247,195,112,187,221,223,222,220, 92,222,220, 92, 92, 95, 95,223,221,109,118,187,113, 24, + 21, 16,136, 34,154,130, 53,137,171, 26,249, 22, 9, 10, 81, 64, 0,102, 14,200,194, 64,170, 8,134, 85, 9, 95,231, 18, 4, 12, + 98,224, 64, 80, 11, 18,128, 0, 84, 55, 60,160,209, 65, 81,227, 89, 55, 5, 83,180, 68, 36,102, 85, 20,193,200, 64,208,204,128, +201,199,132,140,204,117, 20, 96, 68,196, 20,130, 1, 72, 17,181,233,140, 7,223,122, 12, 0, 78, 87, 55,200,165, 4,242, 46,196, +116,133,102,132, 74,147,172,195, 0,101, 66,157, 24, 57,242, 89, 9, 95, 63,239, 41, 32, 84, 10, 80,242, 97, 68,230,119, 8, 52, +213, 26, 83, 16,255, 98,147, 41,128, 2, 4,131, 38,165, 34,117,132,202, 24,188, 28,170,135, 91,188, 63,142,166, 63,168, 30,118, + 56,209,196, 52,152, 41,138,104,201, 37, 48, 35,186,123,141,188, 9,129, 64,222,156, 48,169, 70,135, 46,238,228,150,245,184, 97, + 48, 83, 4, 99, 99, 65, 8,204, 33,206,167, 35, 18, 76, 22, 77, 63,150, 50,246,165,102, 4,202,219, 29,161,174,142,143, 65, 33, + 4, 78,169, 17,199, 67,233, 33,202, 2, 96,200,117,204, 68, 16,187, 14, 20, 84,132, 56,160, 66,213,202, 42, 20, 99, 84, 54,173, +197, 4, 77,128,162,203, 41, 1, 45,181, 51,160, 70, 84, 17, 70,173, 89,148, 74, 41, 0, 86,198, 26,204, 44, 16,187, 88,212, 7, +125,147, 74,148, 24,181,138,186,192,197, 5, 52,206,226,114,189,246,212,192, 57,204, 48, 13,167, 81,172,247,225,205, 49,188, 56, +133, 61,217, 84, 16, 25,220, 71,240,186,181,232, 44, 80, 55,225,137, 77,115, 39,169,126, 11,161,224,240,107,179, 98,134,130, 8, +200, 65, 93, 4, 8, 38, 90, 67,211,158,157, 29,133,111, 94, 50,113, 95,198,191,253,183,255,206,223,255,187,191,251, 31,255,167, +255,217, 71,207,111,239,110,215,247, 79, 87, 8, 40, 90, 35,199, 73,176,164, 21,129, 28, 32,105, 0,134, 65, 8,106, 1, 85,200, +185,236,247,125, 25,247,155,187, 43,169,125, 41,194,204, 99, 63,188,186,120,250,252,229,121,191, 31, 87,199,171, 31,125,248, 97, +215, 70, 49,107,186,166,107,103,219,253,238,159,254,241,255,243,244,233, 11, 84,156, 47,218,163,213, 74, 75,165, 72,136,200,132, + 41,165,192,156,115,222,247, 89,180, 26, 88,169,101, 59,246, 42,214,196,232,143,103, 64,146, 34,125,217,138, 89, 12,180,104, 90, +209,124,181,223,229, 33,103,169, 76,212,181, 11, 87, 56,214,146,199,113, 64,132, 93,191, 51,128,174, 73, 6,160, 34,187,253,190, +207, 85, 14,210, 6, 64, 8,136,200, 44,110,206, 50,219, 13,121,172, 18, 66, 56, 89,117, 0, 8, 68,203,249,113, 72,187,162,114, +125,123,155,135, 33, 5,130,138, 33,193,201,114, 46,106, 85,178, 20,237,171,136,135, 66,193, 0, 72,138,137, 21, 15, 85,161, 17, +128,232,180,220,172, 0,236,253,129,131,142,124, 10, 68,191, 70, 38,123,119, 21, 64, 13,244,160, 51, 68, 0,100, 36,100, 50,209, +170,114,160, 80,184, 5, 27, 8,112,187,207,139,123,179,227, 85,216,238,119,106,150, 82, 60, 61, 57,249,217,151, 95, 32,193,111, +252,234,175, 62,189,120,117,117,125,243,103, 31,125,244, 7,191,247, 55,193,240,234,230,246,110,183,101,179,211,147,179,251, 32, +247, 79,206,250,220,255,244,203, 47,193,234,221,245,237,237,110,247,224,232, 56,197, 16, 80, 77,236,102,191, 55, 85,160,112,178, + 88, 44,218,200, 33, 52,137,251,177, 8,212, 89,140, 2,154, 51, 0, 85,239, 39,109,246,251,237, 48, 6,226,227,197,114, 62,107, +124,170,204, 68,196, 76, 72,145,137, 89, 72,200,145,135,196, 20, 34, 51,211,178,107, 87,179,249,209,209,124,217, 45,142, 87,203, + 7,247, 78, 23, 71,171, 38,164,110,190,108,187, 6, 57,198,208, 32, 18, 51, 41, 96,238,119, 82,133, 2, 73,201, 67, 63,230, 50, + 12,251,225,250,246,238,249,203, 23,215, 55,215,175,174,110,206,175,174,251,113, 44,181,108,182, 61,249,188, 36,155,169, 16,147, + 78,155,241,147, 28,144, 2, 50, 51, 30,114, 16, 16,152,249,144,129, 64,245,224, 26,185, 43,141,208, 0, 2,130, 0, 25, 0,249, +206,253,100, 34, 7, 84, 31,237,249, 56, 16,170,154,162, 69, 85, 67,101, 32, 19, 19, 81,102, 34,162,215,177, 31, 31,183, 76,236, + 61, 3, 37,223,106, 3, 85, 13, 49, 32, 76, 19, 26,157, 0,124, 38, 82, 99, 8,136, 19,114,209,151,187,244,128,242,155,232, 49, + 66, 58,177, 24,136,129, 92,202, 3, 8,234, 78, 47, 55,165,120,129, 15, 20, 27,166,202,125, 41,191,160,221, 30, 98,205, 94,205, + 0, 26, 1, 16,177,128,248, 5, 72,204,129,184,160,134, 6, 26,136, 83, 72,204, 44,104,106, 26,152, 60, 48,231,135,149,233,193, +241, 0, 24,188,154,240,198,254,244, 8,241, 50, 2, 85, 11, 76, 37,170, 17, 83,215,112, 23, 16,176, 19,145, 82,115, 85,232,251, +141,130,201, 86,193,128, 56, 32,114, 12,129,145, 93, 21,146, 56,104, 67,138,106, 82, 69,192,197,132, 68,200,212,148,154,163,162, + 25, 34,179,235,225,189,155, 69, 76, 41,118, 20,163, 26,128,168, 48,131, 48,162,184,160, 43,166, 24,124, 70,195,164,106,138,222, +233,113,168,130,200,148,129,132, 26,220, 91,228, 23,187,105, 44, 64,240,122,156, 58,153,103,109,122, 49,224,208, 79, 7, 50,127, +202, 50, 3, 18, 30, 72,147, 94, 19, 76, 18, 73,143, 87, 22, 53,156,150,152, 60, 41,139, 83,236,210, 59, 62,135,241, 45, 26,146, + 11,124, 3,154,197,212,157,156,156,196, 16,108, 28, 9,237,195,247, 31, 47,239,191,253,239,255,187,255,222,215, 47, 46,222,184, +127,154,165, 18, 34,249,146,147,191,201, 22, 20, 76,180, 42, 54,128, 73,209,198,220,247,187,245,110,123, 11,160,253,110, 43,181, +214,113, 24,114,190,189,187, 27,246,187,167, 47, 94,222,237,199,119,223,124,248,230,123, 15, 30,156,158,238,199,129, 98,179,217, +220, 62, 57,127,181,221,238,250,126, 47, 34, 71,243,101,140, 68,132,166, 48,155,207,129,212,239,190, 82,202, 48,228,177, 12,106, +152,203,184, 31,134, 92, 74, 76, 77, 27, 83,206,185,170, 17,152, 47,103,167,148,128, 96,236,135,245,176, 21, 81, 69,136, 28,102, + 33,229,156,183,253, 46,231,108,104, 12,160,196, 94,250,116, 77, 82,131, 82, 11,152, 6,230, 38,162,177, 9, 64, 46, 89, 68, 81, + 77, 12,198,177, 20,145,249, 98, 53, 14,163, 24,204, 83,211,196,208,180, 29, 24, 50,208,106,182, 84, 49, 4,188,190,185,164, 16, +131, 9,171,142,165, 0, 81, 96,142, 28, 79,219,118, 40, 5, 0, 57, 4,169,117, 44,165, 31,185,106, 5,133,125, 46,224,187,109, +190,109,140, 24,152, 39,241, 49,144, 19,129, 8, 80,124,124, 98,102, 0,213,243,193, 2, 72,211, 12, 29,253,147, 86,157,169,239, +233, 16, 80, 3,144,226,242, 94,149,250,205,249,171, 20, 82,100, 34,198, 93, 63,252,252,155, 39,187,156,111,215,155,245,110,207, + 28,150, 77,184,184,188,250,209,135,223,251,175,254,219,127,240,245,243,167,219,221,240,214,131,179,229,172, 93,180,205,243,203, +139, 79,191,220,236,198,225,151,223,123,175,214, 50,239,154,161, 31,158, 93, 92,252,197,231,159,143, 99, 65, 14,247,143,142, 56, +134, 89, 10,226,254, 63, 32, 55,150,149, 34,175, 23,253,162,219, 19, 8, 3,179,175,153,148, 42,102,134, 25, 8, 81, 85, 82,106, + 76,149,153,145,177, 73, 13, 17,182, 93,119,180, 92, 52, 41, 53,145, 17,177,140,117,135,253, 88,203,237,122, 29, 83, 76, 49,165, +192,177,105, 98,224,182,105, 83,211,116, 93,155, 82,215,117, 93,136, 77, 4,167,225,116, 11, 64,169,245,222,155,143,190,243,225, +135, 53,143, 67,223,239,251, 97,191,219,221,238,119, 55, 55,183,125,223, 95, 92, 93,157, 95, 92,188,188,188,185, 94,223, 14,227, + 40,166, 82,235, 80,106,100, 98,167,222, 33, 50,162,168, 17, 25,161,138, 10, 57,196, 65, 13, 16,196, 27, 47, 6, 7,199,185,137, + 11,196,167,131,210,200,231, 2, 7, 97, 41, 32, 86, 81, 35,216,245, 3, 35, 66, 12,168,130, 94, 68,136, 77, 20, 28,175,225,192, + 16,216, 13, 11, 4,102, 98, 74, 58, 61,241, 1,212,192,204,170, 86,123, 61,112,115, 71,142, 79,231,241,181,146,243,144,214, 38, +239, 26, 79,171,135,135,101,115,111,113,160, 79,250, 15, 43, 57, 83,168,207,197,182, 94, 13, 42,168, 39,158,189,123, 48,197,165, + 16, 25,253,251,105,116, 88,119, 84,223, 66, 64,242, 49, 53,161, 63,180,176, 77,105,250,165,167,203, 40,153, 26,210, 65,215,137, +232,203, 76,126, 75,179,195,125, 6,192,165, 17, 14, 83,215,201,149, 34, 25, 57, 0, 96, 19, 40,197,160,106,210, 84, 4,168,213, +212,164,152, 20, 49, 43, 40,158,245, 80, 52,211,148, 26, 34, 66, 85,110,102,192,164, 42,140,236, 26, 91,153, 54, 71,145,136,137, +128, 66, 40, 90,104,172,128,172,181,162,169, 15,234, 25,217,204, 68, 53,120,109,124, 80,160,122,168, 82,209, 96, 28,247,138, 16, + 98, 98, 12,192,234,207,241, 73,154, 1, 7,162,129, 41, 26, 34,177,119, 27, 38,199,152,185,203,132,166,115,158,144, 1,100,154, +218,226,100, 3,156,108,123, 56,125,198,216,208, 87, 38,124,250,141,138, 46, 8, 6,243,119, 85, 77,161, 40, 78, 15, 34, 64, 53, + 32,131,144,222,126,231,209,172,249,201,205,126,247,111,253,189,127,243,111,254,238,111, 93,223,174,219,229,201,247,150, 39, 99, +206, 46, 64, 83, 21, 49, 9,196, 96,152, 85,139, 24, 88,163,162,187,237,171,187,219,203, 60, 12,181,230, 54, 54,155,237,238,110, +125,179,185, 91,143, 99,217,236,182, 23, 55, 55,187,113, 24,134,252,155, 63,252,254, 59, 15,239,109,250,225,235,103,207, 95, 92, + 94,170,170, 41, 68,102, 38,106,155, 70, 65, 83,136, 77,140,181, 20,136,147,246, 88,164, 74,150, 2,178, 27,122,149, 58,150,234, + 76,184, 38,182, 77,211,212, 90, 74,201, 49,133, 20, 98, 32,206, 85,214,187,253, 48, 12,128,126,231, 49, 16,237,181, 82,128,126, + 28,107, 22, 66, 42,160,168,150, 18,165,192, 33,132,148, 18,170,133,166, 51, 21, 77, 96,125,191, 29,199, 82, 10,136,229, 92, 55, +251,190, 22, 49,131, 16,194,138, 98,106,177,239,183,137,136,153, 82, 74,132, 40,181,132, 54,205,218, 57, 32,170,202,118,191, 13, +145,135,221,110,148, 74, 24,198, 33,171, 72,215, 53, 99, 29,115,214, 54,197, 89,155,174,238, 6,145, 82, 85, 23, 41, 22, 6, 85, +200, 94,177, 1, 86, 25,198,106,136,180,104, 23,164,162,170,128,254,205,135,195, 90,244,161,168, 3, 51, 65,142,129,137,204,196, + 79, 86, 1,129,131,150, 17,255, 63,166,222,228,201,146, 43, 75,239, 59,211,189,238,254, 94, 68,228,136, 4,178,208, 72,160, 10, +133, 2, 10,133,170,234,177,154,205,238,102, 75, 38,146, 34,165,141, 54,250, 87,100,166, 21, 55,210, 74, 75,153,100,148,204,180, +144, 22,148, 22,220,203,180,144, 68,177, 57,136,109,106, 90, 79, 53, 0,141, 49,231,200,136,200,136,120, 17,239, 61,119,191,247, +156,163,197,185, 30, 40, 24, 12, 11,100,100, 90, 70, 60,247,123,207,240,125,191,143,192,201,168,137,173, 29,220,231,105,174,232, +146, 51,128, 87,117, 97,222,238, 71, 51,115,155,254,242,201, 55,111,222,125,240, 63,255,243,127,158,200, 62,249,224,253, 63,255, +155, 95,117, 41, 37,198,199,175, 94, 61,125,121,140, 68,111,222,191,115,118,121,113,126,181, 59,223,108,166,121,158,107,217,205, +179, 16,175,114, 74, 89,192,148, 72, 98,148, 69, 68,132, 22,233,151,220, 68,191,212,183,144,140,152, 46,185,153, 9, 68, 48, 54, +127,164,218,126, 0, 0, 32, 0, 73, 68, 65, 84,104,200,254, 16, 38, 51, 44,133,136,204, 9,220, 78,207, 55,167,231,175, 69, 82, + 34,236,115,151,251, 62, 9, 15, 41,231, 62,175,251,190,239,186, 33,119,195,106,232, 82,215,101, 1,132,156, 83, 78,105,213,117, + 93,238, 83, 78,125,238, 68,114,215,103,233,114,226, 14, 68,250,131,131,225,240,214, 29,128, 50, 79,101,154, 34, 98,177,150,178, +223,237,171,233,118,187,221,238,118, 47, 94,157, 60, 63,126,254,234,228,244,229,217,235,205,213,245, 84, 74,169, 85, 17,170, 59, + 34,177, 80,226,206, 92, 17, 32, 49, 59, 2, 97, 0,129, 48, 10, 52, 71,211,166, 91, 39,107, 34, 93, 50,168,177,225,173,174,213, + 42,129,171, 59, 24, 42, 32, 49, 87,176, 82,106,183, 94,185,151, 22,228, 19,193,216, 11, 84, 53, 80,105, 46,208,178, 49, 29, 8, +145, 16, 84,219,218, 5, 93,145, 40, 94, 98,173, 21,146, 52,183,161, 81,156,231,222,246, 54,104, 8,160, 14,130, 75,163, 16,190, + 11,144, 69,211,225, 0, 2,208,166,234, 30, 33, 24,128,224,218,250,138, 88, 7,196,182,207,221,169,154,133,202, 40,164,249, 14, + 28,131,108,110,147,105, 20, 68, 6,174, 45,235, 77,209, 20, 68, 22,163, 71, 88,144, 26, 13, 55, 80, 89,176,252, 23, 91,125, 27, +161,111, 96, 22,231,123,196, 62, 65,117, 5, 3, 35, 50, 83, 4, 96, 32,141,234,219,157, 24, 73,200, 99,125,138,136, 0,101,198, +113,222,199, 29,171, 87,215,132,158, 83, 39, 34, 76,243,208,119, 57, 15,224,125,245, 26, 20,150, 54,140,211,234, 54,155, 53, 86, +164,154,154,107,151, 68, 82,150,134, 62,140, 40,120,136, 80,104, 2, 80,104, 42, 87, 34, 34, 45, 21,127, 45,225, 34,246, 62, 45, +178,176,197,163,198,245,127,131,160, 97, 12,123,196, 18,140,221,248,234,237,113,112, 12, 51, 95,236,199,205,219,154,179,209,127, +169, 9,103,189,137, 54,227,154,176,224, 32, 56, 48,130,130,129,131,170,126,239,251, 31,189,255,232, 47,206,175,174,254,252, 47, +254,242,247,126,243,147,135, 15,238,107,144, 3,157,193,201, 45,196,178,190, 29, 75,169, 62,215,121,127,189,223, 94, 95,108, 47, +207,129, 60,247, 67,166,238,250,250,252,228,234,197,102,179, 57,187,216, 92,239,198,205,126,111,238, 12,246, 27,247,238,173, 87, + 7,168,246,255,253,205,175,230, 82,166, 90,250,190, 59, 90,175, 81,141,146, 76,115,233,251, 62,160,201,165,148,170,202, 0,165, + 76, 83,213,237,126, 55,149, 74,136,224, 80,138,185, 27,177,116, 41, 51,147, 91, 69,244,245, 48,152,131, 22,221, 76,187,105,158, + 40, 48,159,104,213,124,156,138,187,151, 50,155,249,106,232,136,220,221, 87,146, 73, 66, 89, 33, 34, 4,224,187,121,174,181,152, +195, 84,202,126, 63, 22,179,243,203,125, 47,121,181,202,215,251, 73,152, 0,201,106,153,167,221,193,225,209, 52,143,213,189, 58, +148, 90, 19,167,209, 77,231,210,119,121, 42,124,235,240,246, 56,141, 69,173, 78, 51, 2, 36, 78, 38, 58, 47,241, 89,230,243,118, + 95, 9,161,216,156,114, 63,237,118,213,157,137, 51, 51, 85,221,169, 18,120, 45,109, 92, 86,185,152, 71,195, 36, 14, 46, 66, 72, +174,165, 21, 96, 81, 20, 75,162, 46,101, 55,175, 78,137,221, 92,201,227,212, 16, 10,207,106,173,106,176, 36,236, 26, 17, 24,242, + 28, 87, 53, 25, 40,108,107,249,252,155, 47,127,247,147,159,220,221, 77, 47, 78, 95,253,187,159,255,229,135,239,189, 43, 44,235, +126, 24,250,225,151, 95,126,115,118,185,233, 58, 41,251,114,126,113, 61,149, 82, 74, 81, 51, 4, 76,196, 8, 4, 72,130,220,165, + 52,206,234, 14,140, 76, 34,132,128,192,166,213, 29, 52,150,144, 64, 90, 29, 51, 58, 97, 76,120,205, 93,137, 96, 54,103,100,193, +162,160,110, 45, 39,129, 80,205,136, 96,154,167,205,246,122,158,231,169,234,186,235,238,221,185,219,103, 49,119, 38,200, 93,238, +114,223,119,169, 75,121,181, 26,214,125, 78,185,235,115, 78, 44,253,208, 13, 93,223, 17,165,156, 72,120, 72,137, 24,153,164,203, +221,106,189,202,125,223,247,125,204,115, 68, 56,165, 78, 97,181, 62, 58, 68, 71,115, 53,181,143,127,232,243,180, 87,211,237,213, +110,115,117,117,189,187,186,216, 92,157,158,111, 78,206, 78, 47,175, 55,187,237,190,104, 25,167, 66,233,234,122,187,171,101, 6, + 18, 96, 36,201, 8,144, 18, 67,117, 87, 7,196,204,162,110, 70, 97, 75,105,154, 66,104,193, 8,132,110,171,190,175,102,141,101, + 2,192,205,158, 98, 6, 75, 27,191,168,171,133,196,213, 84,227,165, 70, 53, 16,136, 50,182, 80, 51, 48, 18, 69,208, 34, 2, 16, + 9,199,200, 5, 0, 12,127, 61, 78,231,102, 30, 31, 69,222, 77, 34,115, 51, 81,218,183,206,169,246, 79, 59, 81, 0,144,131,107, + 2, 74,203, 95,207, 1,144,141,154,247,161,141, 16, 4,129,144,237,198, 95,230,145, 64, 17, 99,101, 52,171, 49,173, 90,124, 5, +184,240, 80, 22,157,246,242, 95,132, 95, 27, 76,123, 4, 52,147,186, 57,134, 70, 74,172,204, 76, 24, 55,209, 98,246,141, 11, 5, + 33, 8, 95, 6, 8,173,246, 37,162, 62,177, 69,226,220, 0,213, 76,171,206,102,101,156,232, 26, 25,185,239,187,156, 6,247,210, + 15,189, 71,114, 33,160,161, 51, 83,124,215,237, 90,131,228, 54, 10, 32, 0, 90,219,106,104, 88, 14, 21, 0, 82,234, 0,129,137, + 22,253, 98, 67, 18,184, 1,210, 34,130,108,202,241,166,182,113,215,144, 83,182,212,246, 80, 97, 16,220,124, 45, 52, 35,176,131, +183,213, 5, 32,120,132, 48,154,183,150,203, 26,186,166, 54,169, 76, 5, 39, 68,148,166,140,132,198,181, 49,208, 82,215,183,239, +255,228, 71, 31, 62,125,245,250,179,191,253,244,191,249,111,255,233, 31,254,236,183,223,125,231,237,119, 31, 61, 90, 31, 12,117, + 46,213,113,158,109,119,181,221,110,175, 46, 94, 31,107,157, 9, 41, 13,131,187,237,174,199,103, 79, 95,108, 54,151,211, 92,205, +180,212,249,122,172,199,167,231,175, 55,175, 75,133,223,250,248,251,204,252,226,244,149,187,119,146,115, 74, 67,223, 73, 98, 87, +115, 4, 68, 31,134, 46,145, 76,101, 95, 38,155,234, 92,107,157,180,106, 41,145, 44, 44,200,115,173,238, 22, 90,198,148, 36, 49, + 87, 4,161, 84,173,238,119,251,237,110,111, 90,195,228, 51, 77,234,164,153, 72,193,221, 93, 85, 29, 17,192,166,185, 6,112,115, +246,146, 85, 82,230,113,218,215, 42,136, 84,106, 13,207,250,241,201,235,235,237,148, 83,222,142, 99, 62,148,144,187, 54,145, 42, +248,245,118,123,116,120,120,184, 94,237,246,211,209,129,153, 26, 11,130,185,147, 39,228, 33,103,181,218,231,161,238,182,251,113, +138, 48,248,177, 86, 34,116, 80, 15, 74, 4,243,126,158, 19,114, 39,121, 15,123,115, 23,137, 72, 73, 22,115, 71, 3,100, 0, 71, + 2,181, 90,220, 28, 32, 71,151,167, 68, 78,156,144, 16, 17,104,154, 75,117,200, 44, 0, 80,172,148, 82, 99,220,198, 76,128,216, +161, 64,196, 60, 18,155,107,148,252,193,115, 37, 36,213, 90,107,201, 41, 27,249,126,156,190,248,234,201,203, 87,167,219,253, 4, +102,230,254,171,175, 30,223,191,125,171,152,255,237,227,199,227, 56,137, 72,172,131,198,105,102, 38, 38,170, 53,188,126,102,110, + 2,236,230,115,173, 4,160,142,166,245,160,235, 23, 43,174, 19, 35, 20, 23, 0, 5,216,105, 89, 85,129,182,149, 91, 8, 23,177, + 84,139,229,131,186,187, 51, 33, 17, 67, 68,187, 0, 48,177,176,212, 64, 98,187,169,251, 56,238,189, 88,215, 77, 35,237, 47,208, +138,129, 1,100, 73,195,208,245, 57,229,156,135,161,207, 41,173,251, 44,146,186,110, 24,152,115, 18, 96, 72, 40, 34, 32,146,251, +156,187,148,134,213,106, 24,250, 46,231,148,251, 97, 53,244,253, 64,146,220, 13,145,186,213,129,214,185,239,215,111,188,249, 80, +132,145, 12,129,208,169, 90,157,203,140, 0,169, 27,246,219,237,147, 23, 79,126,245,249,151,127,253,243, 95, 62,121,254,236,242, +234,202, 61,244, 43,136, 8,137,153, 18,121,141, 96,131,155, 96, 50,112,160,162,145, 94,205,196,132,106, 75, 22, 4,128, 91, 99, +125, 99,152,135, 12,152,140, 66,203, 67,106,132,102, 4,192,132, 20,101, 25, 33, 32,171,213,208,184,187,129, 53,144, 3,178, 83, +187,211, 9,168,233,112,113, 97, 65, 1,242,194, 75, 89,150, 59,196, 88,212, 36,126,251,114, 44,135,185,107, 73,230,137, 4,160, +182,217, 69,192,128,159, 80, 60,140, 0,205,124,199, 33,216, 64, 52, 6, 32, 98,138,243, 23,180, 13,232,169, 21,229,234, 78, 4, +173,172, 13,225, 56, 51, 53, 44, 4, 1,212,240,237, 59,146,131,125,123,200,251, 50, 0,115, 87,162, 22,115,100,176,232, 9,208, +163,147, 80,112, 4,108, 43,180, 38,219, 86, 55, 66, 3, 11,179,146, 16,101, 79,128, 29,118,224, 80,205,118,243, 56,150, 73,221, +253,106,139,104, 93,146,190, 27,170, 26,186,167, 68,194,153, 72,156,132,216,187,220,201, 50,180,106,183, 36, 24, 54,212, 10,179, + 47, 22, 82,162,229, 39,223,200,235, 97,162, 96,168, 22,243,211,118, 29, 53, 13, 98, 0, 14,110,166,111, 97,192,117,247, 26,169, +153,232,248,107, 67,123, 68,140, 68, 93, 96,140, 9, 69,148,123,113, 91, 48,198, 84,108, 33,130,197,157, 23,105, 26,224, 88, 1, + 63,250,248,195,255,227,255,254,215,128,248,217,151,159,159,188, 58,249,224,189,119,254,206,239,253,236,251, 31,252,160, 22,189, +188, 60, 63,125,245, 98, 30,183,135,135, 71, 40,208,247,171,147,151, 47, 79, 63,255,114,187,219, 95,239,119,211, 52,147,208,189, +163, 91,187,113,252,213, 87, 95,159, 95,111,175,183,227, 88,230,219,135,107, 43, 58, 82, 93,245,131, 59,136,144, 48, 17, 49,154, + 86, 55, 0, 34,164, 82,202,102,188,218,239, 71,119,136,158, 11, 8, 19,231,226,166,117,158,107, 65,132, 97,232,187,148,208, 41, + 39, 6, 71,171,229,106,119,189,159,198,121,156, 83,206,136, 20, 91, 92,117,173,181,170,137,147, 23,179, 56,211,157, 41,114, 26, + 1,168, 79,210,117,169,212,146, 37, 57,200,103,143,159,100, 74,138,176,189, 30, 83, 48, 50,213, 76,107,223,165,170,134,190,240, + 50, 1, 75, 45,151,155,205,237, 59,119,182,219,113, 55,238,115,215, 59,130,106, 33,166,169, 22, 22, 73,194,134, 86,180,198, 20, +181, 84,117,115, 68, 81,131, 82, 85,132,133,152,153, 70, 40,241,227,142,135, 33, 11,141,179, 13, 34,163, 22, 5, 19, 32, 64,112, + 2, 50, 92,180, 84,160,110, 8, 4,234, 6,241,173, 88,173,213,152, 10,145, 86,109,108,103,116, 84, 80,116, 6,116,247, 10,222, + 75,190,179, 62,236,114,183, 94,245, 69,171, 19,141,187, 73,189, 74,238, 90, 35,120,168,227, 56, 79,115, 57, 90,103,102,100, 98, +114,152,231, 73,205,201,177, 27,122,173, 5,213,220, 21,208, 59,145,105, 46,213, 20, 29,138, 25, 2,133, 11, 49,179,236,166,153, +185,246, 41,133,155,217, 90,245,233,193,215,107, 52, 95,106,228, 59, 48,103, 18, 8,225, 7,162, 1,144,144,155, 41, 56, 85, 55, + 52, 2, 53,171,174,218, 34,222, 13,209,117,210,194, 46, 4,168,132,106,142,228, 65,125, 40, 85,103, 24,231,121,190,112,221,238, + 39, 36,100,230, 62,167,190,235, 87, 67,215,229,212,229, 28, 35,155,156,164, 11, 74, 79,151, 51,113,151,101, 24,134, 46,119, 89, +184, 75,121, 88,175,114,215,175,134, 97,181, 62, 76, 73,186,156, 73,160, 91,175, 57, 15,145,120,156,220,123,176, 97,117,216,175, +214,170,245,209,247, 63,250,217,239, 79,187,203,215, 79,158,124,243,249, 23,127,251,217,151, 95,125,253,244,233,241,217,249,197, +245,118, 86,239, 34,149,135, 81, 8, 33, 49, 87, 82, 55,161, 64, 38, 4,222,210,204,141,145,163,173,119, 34, 87,183,104,244,137, + 91,132, 25,114,172,206,132, 83,169,161,101, 64, 34, 65, 98,243, 54,110, 1,192,101, 9, 27, 55, 34,148,150,140,214, 42,101, 15, + 63, 38, 80, 44,233,154,187,106, 17, 6, 17,128, 90, 76, 66, 8,177, 45, 57,173,169,244,112, 17, 95, 35,199,138,216, 33,192,230, +145,215,215,118, 70,141, 75, 8,232,196,136, 68,168,174,161,193,181,216, 38, 36, 6,152, 45, 66,181, 91, 43, 25,170,109,188, 1, +164, 44, 29, 6,184,234, 2,123,246, 6,165, 93,138, 89, 2, 86, 85,243,106,145,112, 68, 28, 50, 69,247,216,139, 7,139,194, 64, +154,151,196,129,219,212, 19,220,205,128,163,113,114,159, 43,176,196, 11,232, 0, 68,148, 0,145,128, 1,148,157, 80, 12,240,106, +220,155,170,155,233,149, 1,104,151,115,150,126,213,119,251,253, 94,218, 90, 58,124,101,109,221, 12,174, 21,111,150, 13, 20, 97, + 31,161, 44,178,136, 77, 71, 66,175,182,200,219,117,177, 9,133,206,141,220,181,157,247, 68, 96, 96, 94,225,219, 44,168,112,164, + 33, 0,129,153, 55, 45, 87,204,176, 24,201,220, 52,214, 41, 20,238,133, 40, 23,220,127,109,155,235,224, 26,119, 70, 45,229,254, + 91,239,254,230, 15, 30,157, 92,141,191,255,163,143,126,240,254,247,238,223,191,143, 36, 95,127,241,171,211,147, 83,240,122,184, + 62,236,115,119,113,113,121,189,217,156,156,191,222,237,167,125,153,146,200,170,235,190,243,224,222, 60,207,167,103,103,159, 63, +123,250,234,252,138,192,133,232,135,223,125,247, 96, 61,220,187,125, 72, 8, 85, 43,146, 88, 45, 85, 43,170, 33,186, 35,129,217, +230,250,122,183,189,174, 6, 57, 0, 50,136,213, 20,204,175,166,107, 38, 18,225,219,221,161,177,103,150,248,166,247,101,190,190, +222,109,167, 49, 17,179,112, 56,102,135,126,165,251,237, 56,205, 6, 46,196,192,100, 90, 9, 64, 77, 3,113, 42, 68,140,196, 12, +213,230,231,207, 94, 49,117,255,228,191,252, 39, 95, 61,121,246,171,127,250,223,207,243,252,250,242, 82,132,215,183, 14,246,179, + 13,125, 58,191,170,166, 86, 52,152, 29,109, 73,133,136, 87,215,215,171, 97,117,116,176,186,220, 92, 31,172, 15, 74, 17, 22,164, +153, 10, 75, 38,236,251,213,225,176, 58, 63, 59,207, 34, 14,190, 26,242,213,126,207, 89, 57, 9, 16,220,191,117,251,244, 98, 51, +116, 66, 44, 70, 20, 27,113, 74, 92,171, 58,225,144, 18, 78,188, 31, 39, 71, 71, 39,111,175, 80, 51,184, 41,128, 24, 26, 24, 18, + 81,160, 42,152,219, 20,212, 91, 63, 76,128, 8, 40, 8, 73,210, 84,139,213, 90,124, 6,234, 19,107,217,111,163, 33,239, 51,164, + 52, 16, 16,137, 60,184,123,239,106,191,125,189,185,250,250,249,177, 24,118,210, 79,101, 20,102,106,175,186,163,185, 85, 83, 34, +116, 72,200,213, 76,205,192,213,177, 97, 18, 8, 25,217, 12,116, 50,205, 22,127, 21, 5, 98,171,138,136,203, 57, 0, 44, 20,173, +190,197,159, 10,110,132, 14,144,152, 23,225,167,185, 19, 25,184, 43, 3,251, 77,131,218,214,128, 14, 68,104,228,161,161,142, 52, +155,104, 33,212,112,137,182, 49, 11,183,141,143,101, 7,110, 89,228, 96,189,202,196,142,222,117, 29, 33,231, 36,196,148,133,115, +206, 41,165,204,148, 82, 26,186,174,207, 34, 57,245,169, 99,132, 68, 57, 15,114,116,120,112,251,240,246,193,193,193,122,189, 62, +188,125,255,232,206,157,225,240,136,136, 9, 28, 69,144, 0,220, 25, 81, 65,214,183,239,125,120,251,238,135, 63,252,201, 63, 28, +183,175, 95,159, 28,159,188,250,250,155,111,158, 60, 63, 62, 61,191,120,117,118,122,121,189,119,132,121,182,169, 20, 97, 1,194, +156,123,119, 23, 38,164, 20, 51, 91, 92,104, 37, 45, 51, 16,177,173,206,144, 98, 79, 14,170, 72,158, 57,133,209,205, 76,213,156, + 88,124,185, 71, 9, 80, 81, 17,161,170,118, 76,229,166,114,132,155,204,180, 38,243,105, 46, 24,144,246,203, 17, 87, 20,127,144, + 56, 17, 35,160,161,241, 2, 59,107, 34,108, 4, 36, 86,117,108,190,249,229,224,109, 53, 66,192,194, 12,200,220,145,136,200,157, +136,213, 20, 35,198,129, 66, 56, 0, 75, 62, 51,194, 82,177, 66, 76, 26, 33, 14,254,133,189,212,154, 77, 82,117, 83, 67,161,160, +249, 91, 84,252, 30,182, 9,115,211, 24,204,195,194,112, 12,218,157,149, 95,243,185, 97, 24, 76, 5,208, 48,216,173, 37,242,173, + 85, 35,186, 58,150,188,216,134,103,180,148,219,132, 68,137, 1, 73,188,153, 9,182,101,183,215,233,122,183, 21,244,101, 76, 14, + 75,252, 70, 0,228,201,209, 17, 12,144, 1,151,134,169,153,230,220, 98,242,142,238, 22,123,232, 72,218,141,185, 64,155, 97, 44, +198, 49, 95,246,183, 55,124,207, 88,130,132,228,104, 73,224, 0,140,189,136, 47,152,119, 35, 22,104,161, 33, 13,152,215,158, 1, + 4, 4, 6, 7, 98,116,173,199, 39,215, 63,252,233,111, 15,119, 31,174,250, 92,139,190, 58,121, 89, 38, 69,132,163,195,161,148, +233,233,139, 23,187,235,253, 56, 77, 87,227,246,242,250,250,104,189,126,248,198,131, 59,135, 7,251,253,254,197,233,201,203,211, +243,147,215, 23, 93,206,127,247,167,159,220, 59, 56, 82,240,195,163,213,126,156,213,180,204, 90, 74, 65, 82, 85,141,184, 2,117, +173, 85,205,157, 8,187,220,101, 36, 15, 39,155,233, 60,207, 76,120,180, 94, 11,179,169,137, 36, 98,208,170, 83, 45,211, 56, 93, +239,247,132, 88,171, 42, 56, 91, 37,130,185,204,211, 52, 3, 26,144,247, 34,232, 56,107, 85,208,134,137,212,226,140, 64, 84,117, +222, 92,143,199, 39,151, 87,219,253,126,156,255,167,127,246,191,156,156,158, 61, 63,126,241,254,219, 15,227,227,119,112, 39, 74, + 57, 25, 68,150, 39,181,101, 82,232,206, 12,129,252,229,233,233,111, 60,124,147,136, 47, 47,175,242,189,148, 83,239,104,102,138, +169, 99,128,219, 71,183,159,203,241,245,126,191,234, 58,145,212, 49, 5,247, 53, 46,250,142,217, 28,132,128,209,185, 97, 84, 85, + 29,200, 93,132, 7, 64,187, 70,110,205, 46,248,194, 41,137, 94,186,120,101,194, 0,153, 0, 3,170,169, 59, 47,143,113, 20,250, +204, 84, 76,115,146,162, 10, 72, 67,215,177, 81,173, 58,214,232,153,221, 28,246, 69,117,154,137, 57, 37, 62, 61,219,140, 58,143, +227,254,225,189,219, 66,180,159, 13,152,195, 0,172,209,248, 25,104,244,194,140,170,234,139,121,123, 73, 6, 3, 70,182,162, 90, + 53,158,200,198,127,105, 51,220, 70,196, 6,196,176,147,154,153,186, 3,130, 32,128,129, 9,153, 91,117,133,152,131, 53,220, 0, +182,199, 31, 17,129,220, 26, 90,203,188, 90, 83,112,128, 69,166,129,187, 66,251,209, 54,130, 9,185,215,152,119, 48, 16,185,186, +147,215,170,100,147,187, 79,137,173,154, 1,133,140, 72, 8,114,151,221, 60,167,212,117, 57, 19,163, 96,206,194,200, 41,167,195, +174,123,231,237,183, 15,135,213,106,245,108,189,238,239,220,186,211, 13,107, 36,202, 34,135,119,110, 57, 80,151,123, 3, 12,232, + 30, 16,211, 48,188,241,240,221,187,111, 62,252,232,163, 31,150,185, 78,243,126,183,219, 95,188, 62,127,252,252,233,167, 95,124, +241,197, 55,223, 60,123,117,122,252,250,226,122,183, 19,102,160,148, 26,176, 16,152,154,191,136,136, 69, 88, 43,168, 41,132, 50, + 31,193,204,139, 27, 58,144, 16,133, 87, 42,138, 62, 91,236,176,161,172, 65, 49, 51,130,160, 11, 44,217,198,208,170,228,152,146, +235,175,165,218, 7,197,123,249, 3,194, 66, 36, 30,194, 73, 71, 53, 88,142,241,184,197,137,192, 25,160, 66, 59, 56, 98,216,203, +240,173,186, 15,193,209,226,172, 3, 70,202, 33,226, 36, 22,166, 90, 45, 94,115,116, 52, 11,247,246,141, 35,251,219,168, 59,140, + 69,180, 47, 81, 78, 26,195,105,240, 82,145, 25, 17,136,200,156,209,212, 92,137, 56,198, 45,237,225,143,105, 53, 81,153,103,180, + 16, 53,199, 62, 3,137, 28,153, 24,216,209, 66,197, 98,109, 33,172,104,228, 64, 81,131,136, 51, 88,109, 30,134,200, 23,138,114, + 36,224, 80,142,136,216, 37, 46, 53, 11,134,174, 31,221,111, 28, 76,136, 21,130, 91, 76,192, 11, 39,164, 93,175, 28,183,119,216, + 64, 23, 28,204,205,185, 30, 50, 35, 13,208,102,171,181, 23,175,240,194, 25,110,158, 24, 64,189,249,118, 1, 91,234,222,242, 47, + 32,242,183,146, 75,183,112,163, 33,144, 33,160,105,115, 83, 51,191,124,254,226,171,207, 63, 51, 83,113, 31,199,169,214,130,238, +146, 8,220,119,187,237,230,242,122, 28,231,203,237,213,102,123,141,140,247, 14, 15,205,233,233,241,241,151, 79, 30, 79,115,185, +216,110,215,185,251,248,253,247,238, 28, 30, 34,154,186, 58,227,197,197, 70,213, 92,157,146, 0, 82,128, 97,231, 90,204, 60,177, + 8,161, 16,119, 93,214, 82,118, 58,153,170,171,179,240,122, 88,117, 93,103,165, 24, 57, 33,151, 58,142,251, 58,205, 99,228,245, + 0, 54,117, 1, 17,120,141,139, 29, 36,177, 57,205,117,222,205, 5, 52, 52,224,144,144, 89, 72, 59,158, 13,204,212,198,250,242, +197,233,197,126,234,251,204, 5,254,175,127,241, 47,175,199, 93, 74, 93,164,159,131, 90,173, 22,225,181, 34, 2, 64, 85, 39,116, +183, 82, 49, 11, 16,105,173, 36,124,181,223,191,190,236,110, 31,221,121,125,177, 89, 13, 59, 97, 97,166, 66, 69,152,114,234,186, +110,120,248,224,193,215,143,159, 48,179,169, 18, 83,169,102,170,125,223,205,115, 37,193, 62,201,110,138, 97, 74, 19,163, 97,208, + 69, 84,153, 19, 34,104, 40,207, 72,204,107,128,244, 26, 31,196, 76,114,210,170,145,170, 28,114,250, 69, 21,219, 26,222,128, 6, + 19,139,227,184, 74,121,232,147,161,105,197,162,213,145,209,189, 79, 57,110,212,170,182,219,143,171, 85,198,153, 9,184, 79,137, +144, 83,132,201,123,244,232,224,230, 70,102, 78,212, 4,121, 81, 40,121,172,242,111, 50,208,181,106, 56,122, 72, 4, 0, 66,165, +218, 98,146,205, 4,145,137, 24,201,138, 45,128,105, 96, 68, 55, 37,103, 87,195, 86,228,199,105,109, 77, 70,141, 96,238, 73, 0, + 57,182, 87, 65, 28,160,136, 43, 8,242, 54, 32,161, 87,119, 87,211,100,169, 77, 62, 23, 85,134, 55,168,113,204,113, 99,243,228, + 72, 8,136, 93,146,170,170,128, 86,109, 59,142, 90,175,182,211,180, 26,186, 44, 41, 47, 96, 99, 78,242,234,242,242,232,224,160, + 75,233,160, 31,134,161, 95,119, 29, 11,221,191,125,235,224,214,109, 34,236,146, 0, 98,151,250,156,187, 24, 3,113,202,204, 29, + 37, 74,195, 32, 93,119,120,116,255,205,135,239,124,244,163, 31,255,131,127, 80,231,221,180,219,111,159, 62,123,250,245,227, 39, + 95,126,253,245, 55, 47,142,175,182,219,215,181,186,187, 97,198,132, 26,200, 26, 34,206,168,147, 17,199,218, 18,169,197,211, 57, +179,152, 85, 67,170,106, 66,196, 28, 2, 41, 93, 94,111, 16,162,212,102, 96,112, 83,190, 81, 4,145, 46, 9,246, 1,196, 37,118, +112, 35, 34, 97,177, 80, 97, 57,123,140,188, 52,150,122,214, 97,131, 25, 68,245,233,196,228,132, 81,189, 3, 32,160, 4,186, 22, + 1, 24,133, 89,139, 1, 57,146, 19,129, 26,131, 23,102, 49, 3, 16, 38,231, 68,216,231, 38,115, 55,143,181, 66, 99,116, 52, 46, + 51, 58, 88,117,215, 32,162, 99, 91,192, 44,203,102,115, 83, 5, 52, 68, 2, 74,160,170,170, 81,164, 54,105, 80,252, 5,221,146, +112,220, 32,182,120, 70, 90,202, 51, 56,218,162,200, 97, 49, 85,138, 28, 34,179, 24, 28,198, 93,225, 24, 33, 12,128,136, 5,148, + 67, 0,187, 92, 31,193,247,149,245,221,195, 58,215,113,179, 71,196,192, 36,128, 27,183,240,140,232, 84,154,200, 13, 22,201,123, +168,153, 2, 13,131,205,142,234, 45,124, 47,106,243, 26, 60,184,176, 73, 55,134,160,171,135,139, 49, 48, 95,120,131, 79, 10,210, +100,171,191,194, 7,143,208,128,200, 55,116, 24,104,179, 26, 11, 4, 10, 32,226,126,115,125,252,252,169, 86, 69,172,106,213,205, + 16,172,206, 94, 74, 45,102,251,121,188,218,237,199,105,116,176,213,208,151, 82,207, 55,155,171,253,184, 94, 13,101,174,143,143, +143, 39,131, 63,250,228, 67, 64, 58,190, 60, 39,167,148, 19, 35,245, 57,185,233, 88,103,155,125, 42,197,219, 42,136,134,156,135, +174, 43,106,106,117,183,221,207, 86, 72,128, 80,242, 32, 57,229, 68, 56,151,169,148, 50,141,213,138, 78, 58,107, 13, 14, 6,230, +212,105,173,165,204,204,196,204,197,171,112,118, 47,227, 56, 79,117,174, 85, 17, 97,189, 90, 29, 12,195, 92,234,108,238,230,197, +204, 84, 95,159,190,238,144,179,164, 78,212,213, 16, 80, 36,117, 41, 1, 81, 51, 3, 4,235,217,125,183, 31,133,168,150, 50,215, +106,110, 40,204,200,194, 50, 53,113, 11, 60, 61, 62, 59, 90, 31, 14,171,238,252,114,219,167,180, 94,173, 85,235, 92, 40, 73, 7, +238,247,238,222,125,247,209,219,199,167,175, 21,208, 1, 59, 78, 8,128,238,177, 91,131,182,238, 64, 66, 4, 97, 48, 51,183,196, +100,230,142,150,153,139,185,129, 86,171,241,248,234, 66,139,117, 38,115, 18, 65, 53,171, 75, 15, 26,126, 63, 88,102,220, 40,136, + 37, 18, 34,220,201, 16, 41, 17, 87,179,102, 72,161, 8, 99,194,166,215,174,154,186,110,154,119,234,174, 21, 10, 20,171,166, 4, + 64,177,105, 4, 38, 18,135, 8,211,136, 84,171,230, 20, 5,196, 82,227,204, 39,166, 46, 49, 23,186,145, 68, 56, 56, 11,235,108, + 11,213, 46,102,235,224, 8, 66, 56, 2, 16, 2, 35, 26, 18, 50,105, 8,100,137,106,113,117, 75,128,205, 42, 25, 96, 62,184,129, +158,106,116, 49, 22, 11, 60, 71,141,155, 61,218,114,103, 39, 4, 96, 36, 54, 87, 0,243, 86,176,162,186, 81, 72,246, 16,208,189, + 20,165,174, 11,195, 78, 41,181,207, 93, 20,122,227,126,175,106, 57,149,174,116,137, 60,172,173,175, 95, 95, 15, 67, 98,230,131, +213,208,231,110, 53,116, 73,228,214,225,193,157,195,195, 62,165,174, 19, 71,114,247,149,164,220, 15, 93, 39,125,215, 69,130,121, + 30,134,190,235,115, 55,164, 97, 69, 64, 34, 57,247,235,225,240,214,155,111,191,247,251,191,231,227,188,127,125,118,114,113,254, +250,155,103, 47, 94,188,124,249,242,228,244,248,236,236,106,179,121,125,225,165,236,212, 98,240,228,140, 40, 44,169,203,228,100, +160,204,226,213,129, 49,165, 16, 46, 97, 76, 61,200, 73,162,130, 69,208,160, 98, 85, 15,201,184, 35, 56,163, 16, 33,222,156,148, +216, 6,141,156,152, 82,204,236,147,128, 99,228,140,138, 27,128, 5,214,165,141,224,218, 49,100, 4, 80, 45, 66, 16,113, 65,235, +183, 84, 33, 14,212, 1, 34,147, 83, 36,168, 24,180, 48,160, 37, 0, 26,137, 57,154,146,248, 36,189, 17,211,252, 91, 94,222, 50, +123, 8, 15,135, 55,232, 70, 20,168,182,172,135, 45,194, 34,220,108,201,188, 1,143, 28, 35, 8, 26,200, 50,109,111, 14, 76, 7, + 7,157,205,204, 49, 81,168,113,163, 53, 69, 4,183, 74, 30,191,247, 6, 90,110, 14, 24,254, 5,154, 43, 32, 88,153, 17,193,140, + 41, 5, 79,193,101,119,177, 13, 3, 28, 34,130,105, 36,149,196,109,131, 16,131,255, 54, 92,251, 53, 86, 79,188,199,205, 1, 17, + 39,178,171, 7,149, 0, 0,129, 3, 29,137, 13, 44, 19, 63, 8,162,120,226, 33, 92,104,128, 8, 12,168,109,207, 0,238, 90,221, + 20, 89,190,253,180,252, 6, 93, 11,241,116,226,146,124, 51,237,230,147,147, 19, 32,201, 93, 6, 69,238,169,168,215,185, 34, 22, + 36, 52,199,162,142, 68,204,220,231,110,154,103, 96,239,251,225,244,226,242,114,187,219,108,182, 36,240,198,209,173,205,245,150, + 88, 68,196,217,124,154,170,218,118, 2, 68,210,218, 2,121,145, 96, 37, 29, 18, 26,216,245,254, 26,129,170,169,169,118, 41, 35, +115,151, 59, 70, 24,231,233,114,156,212, 52,162, 15,192,192,153,147,120, 85, 37,146, 70,183,117,212, 89, 41, 67, 45,122,113,253, +122,158, 11, 3,222, 58, 60,122,247,189,223,184,119,251,118, 41,245,108,115,241,234,252,188,130,206,181, 92,156, 95,222, 58, 88, +181,213, 94,236,117,150,129,134,154, 11, 57, 49,186, 85,226, 76, 14,102,170, 85, 99,194,166,102,213,171, 56, 71,162, 18,137, 36, + 78,140,229,114,123,253,252,228,248,157,183,223,190, 44,219,221, 60, 83, 78,107,238,180,206,227,180,207, 57, 37,150,239,191,247, +221,237,126,188,184,188,156,230,145,192,110,193, 42,167,116, 53,142,153, 57,196,146, 55,246,110,119,247,170, 55,220, 40, 68,200, +132, 45,100,162, 69,240, 53, 98, 9, 5,179, 36,202,177,168, 99,131,161,136,141,221,204, 44,130,236,168, 85,205,193, 16, 82, 34, + 32,161, 14, 89,204,133, 41,115, 82, 87, 68, 87,243,106,218,101,145, 44, 10, 78, 68,196, 80, 74,132,211, 57,120, 9,197,158, 33, + 16,177, 87,195, 20,155, 93, 32, 2,245,216,232,135, 20, 27,192,193,153, 19, 75,164,136, 48, 74, 76,127,171, 27, 19,153,155,131, + 23,179,158,217,188, 70,208,139, 24,168, 42, 19,183, 27,193, 20, 56,155, 87,211, 10, 36, 49,209,173,170,109,236,184,240,175,137, +176,128,130,131,106,149, 76,139,100,141, 28,136, 17, 5,161, 88,179, 33,162,121, 27,129,162, 87,135, 68,225,243, 35, 68,119, 6, + 5, 83,111, 95, 90,213, 74,100,153, 45, 19, 75, 6,140, 19, 86,171,169,151, 90, 38, 53,187,190,222,170, 25, 19,231, 36,125,223, +173,215,253,209,106,213,117, 89, 56, 9, 17, 51,136,228,117,215,229,156, 86, 17, 47,147,250,190,203,253,144, 15,214, 7,125,223, + 15,253,106,181, 94,165,174, 79,221,192,210, 3,226,157,123,111,220,127,240,157,247, 63,252,100, 26,199,113,119,181,185,188,184, +186,218, 28,159,156,158,156,158, 60, 59, 62,254,230,249,139, 39, 47, 79, 46,174, 54,165,214,237,110,159, 57, 49,147, 66,101, 14, + 57, 14, 7,124, 5,219,110, 15,189, 49, 46, 67,127, 78,138, 26,178,200, 24,149,196,145,178,144, 12,155, 24, 5,155,150, 37,188, + 58, 9,200,201,129,156,140,221,205, 57,164, 60,208, 2,153, 17,145,208,204,129, 17,190, 69,151, 91,203, 42,114,176,144,244, 45, + 27,203, 27, 90,106,219,236, 82, 98, 38, 2,243, 72,121, 38,150, 80,140,152, 41, 56, 90, 91,177, 70, 82, 4,224, 13,181, 35, 6, + 19, 55, 82,251,208,132, 47,248, 28, 34,178, 16,129, 34,186,214,182,169,109, 31,162,182,185, 76,252, 62,111,134, 4,111, 2, 83, + 95, 94,124, 69, 98,106,224,174, 5,248, 5, 16,185,122,181, 42,130,155, 46,162,166,136,214, 0, 7,112,209,106, 20,195, 37, 92, +176, 48,180, 28, 39,222,210,164, 2, 17,140, 68,225,118,134,101, 85,218, 70, 43, 17,176, 4,213, 33, 88,130,140, 55, 7,120,211, +201,196,120,201, 99,167, 26,147, 28, 6,212,134,255,245, 8,237, 8,141,119,131,145,184, 57, 96, 29,175, 92,146, 72,231, 55, 2, +169,182,241, 37,160, 52,239,183, 73,100,125,239,222, 52,207, 90,107,153,166,157, 93,237, 71, 69, 65,159, 21,180,170,214, 32, 13, + 37,102, 7, 66,171, 67,159,235,110,122,244,246,131, 62,115,151,251, 44, 60, 77,243, 56,151,106, 51,115, 78, 57,205,251,218,247, +195,208,247, 90,138,185, 35, 19, 49,109,182,219, 37, 48, 69, 87,121,224, 46,166,124,224,174,251, 82, 29, 12, 9,202, 84, 0,176, +239, 18, 75, 42,181,154, 25, 90,100,140,213,162, 69, 40,153,218,229,118,156,230,249,246,173,195,239,127,239,253, 55,111,221,149, +148, 46,247,211,171,227,227,203,237,102,179,189, 42,197,166, 82,246, 87, 87,155,203,203,187,183, 15,135,174,171,181, 76,181,180, +232,187,229,165, 96,226, 68,130,196,179,106,164,111, 2, 6,143, 73,220,247, 92, 17, 40, 98,179, 16, 42, 40,132,159, 13, 94,190, + 58,189,119,235,206,186,239,174,174,119, 93,150, 34,210,177,204,117, 70,132, 36,169, 75,221,131,123,247,254,147,127,248,159,253, +241,223,251,251,255,213,127,253, 95,188, 62, 63,145,212,215, 90,135,156,106, 64,161,193,213, 13, 44,208, 84, 64, 12,138,206,232, +213, 61, 17,177, 51, 1, 86,116,138,222,144, 22, 51,155, 80,228,205, 57,186,106,136,102, 49, 20,238, 65, 46, 55, 51, 32, 69, 4, + 13, 34,141,147,106, 93, 13,171,237,126,118,130, 33,165, 89,177,130, 18, 97, 66,226,196, 89,114, 45,102,106,166, 33,211,141,238, + 49,170, 61,114,112,171, 26,240,103, 97,174,181,170,129,214,146,115, 71,109,127,132,224, 80,212, 56,156,136, 6,206, 65, 89,112, + 6,172, 53,198,179, 70,200, 93,162,185, 54,227,191, 11, 23,111, 29,166, 5,147,133, 16,212,133, 25,162,111,136, 0, 5, 98,104, +142,141,118,159, 81, 37,245,133,115, 27,228,164,208, 23, 51, 54,215,163,153, 35, 84, 64, 84,232,144, 50, 10,103,154, 75, 13,131, + 96, 80,172,188, 56, 13, 24, 9, 59, 49, 40,176, 54,110, 38, 0,116, 50, 50, 42,174, 45, 39, 25, 32,188, 72,101, 46, 51,149,113, +242,203,171,171,241,185,178,208,173,131,245,122,181, 10,128, 1, 49,247,194, 93,151,135, 62, 53,205, 14, 19,139, 28, 30,172,135, + 46,175,186,238,112,189, 94,173, 86, 7,171,129,115,150,212, 31,172,215,253,234, 64,186, 62,165,238,240,246,189, 97,125,120,175, +206,143,222,253,174,187,215, 50,109,206, 47,174,182, 87,155,203,205,229,245,245,243,151,199, 79, 95,157, 94,109,183,175, 55,155, +253,118,187, 25,103, 33, 20,100, 71, 20,145,106, 32,238, 8,145,161, 6, 11,223,209, 17,113, 65,149, 52,195, 14, 52,209, 28, 2, + 27, 53,137, 54, 2,139,171, 18,135,123,147, 56, 33, 2,150, 18,148,164,118, 48,248, 34,225,128,165, 64,140,227, 71, 23,225, 75, +164,241,181,172,149,144, 12, 68, 59,217, 34,206, 61,142, 40,228, 8, 47, 77, 45, 74, 58, 86,191, 65,196, 70,110,171,226, 80,151, +184, 44,147,155,106,142,136,236,145, 19, 7,132,132, 70,214,224,187,224, 76,209,255,181,235,188, 33,144,141,220, 42, 17,180, 18, + 41,102,223,209,209,185, 52,201, 22, 18,169,133, 0, 5,102, 7, 50, 66,118,208,162, 6, 6, 70, 64,128,225,210, 32, 0, 34,116, +226,224, 57, 33,204,210,102, 42,209, 3,112, 3,202, 0, 49,122,203,217, 36,108,223, 26,180,242, 25,221,212, 1,208, 90,253,222, +174, 77,102, 15,148, 67, 12,214,153,150, 14,107,233,131,161,221, 78, 49,127, 9,132, 66,195,218, 52,166, 4, 53,228,100,236,164, +106, 81,171,182, 87, 62,200,141, 95,136, 8, 10, 36, 84,139,167,188, 62,184,125,247,155, 47, 62,123,246,236,233,249,249,185,187, +139,228,213,170,235,242,192, 34,110, 70, 76, 73,132, 66,187, 35, 12, 58,129,217,237, 91,183, 58,217, 85, 55, 53,155,166,113,158, +209, 0, 18,137,112, 7,110,106,154, 36,153,217,110, 63, 1, 57, 19,215,121,218,110,183, 14,216,229,220,137, 56,186,186, 78, 69, + 17,208, 85,171,107, 38,174, 90,186,212,203,225, 26,129,153,161,206, 37,206,146, 18, 28, 49, 7, 83, 43, 84, 14,111, 29,125,252, +206,163,223,252,209,143, 31,189,243,206,241,139,151,191,248,244,211, 95,126,241,249,102,179, 27,231,113, 46,179,153,109, 54,155, +121,156, 51,147, 57,198,220,198, 84,139, 90,202, 9,205,113, 66,106, 24,174,176, 9,144,185, 86,211, 64,187, 84, 43,128, 14,106, +200,136, 72,174, 86,230,226,234,156,155,166,202,205, 94,190, 58,121,247,157,239, 76,165, 94,110,182, 4,168,238,104,190,199,253, +225,193, 97,146,244, 71,127,248, 31,253,227,255,244, 63, 63, 56, 90,221,187,119,255,213,171, 19, 17,103,192,120, 98,114, 74,212, +200,245,128, 72,161,252,142,221,187,171, 11, 83,206,201, 17,231,121, 90,128, 29,206, 8, 4,192,142,138, 55,251,164,120, 39, 8, + 92,205, 65, 40, 64,129, 52, 87, 87,173, 96,110,100, 76, 4,238,243, 92, 0,161,134, 11, 24, 80,213, 8,208, 69,146,100,166,197, + 1,143, 46,140,251,192, 93, 47,189, 75,248,230,144,192,162,136, 48, 15,171,214, 92, 52,158, 76, 66, 68, 66, 85,117, 2, 20,172, + 65,113,137,238, 3,193, 99, 15, 10, 4, 26,188, 12,174, 22, 53, 50,128,213,196,157, 85,171,165, 32,226,220, 18, 21, 20, 41,153, +107,109,146,225,118, 6,223, 56,119,149, 21, 35, 50,199, 12, 13,147,224, 52, 53,246,121, 83,211, 44, 37, 61,160, 58,139,187, 33, +179, 56, 45, 0,118,114,196,128,110, 18, 71,120,100,155, 55,187,153,171,115,130,132,172,168,141,224, 73,139,193,144,212, 28, 48, + 16,160, 12, 54,234,118, 28,175,182,123, 52, 63, 90, 13,196, 36,140, 41,103, 2,226,196, 57,229,156,169,151,156,115,151, 19,119, +146,250, 85,238, 36, 31,172,250,245,122,117,216,245, 67,223,229,174,203, 93, 62, 24,250,156,187,220, 13,171,131,117,202,125,215, + 13,136, 60,172, 15,134,213,193, 3, 2,175, 90,107, 21,226,177, 76, 4, 54,207,243,171, 87,103, 63,255,236,211,111,158,189, 56, + 62, 61, 27,119, 99,213, 98,176,159,102,245, 27,106, 55, 0, 16, 8, 18,170,107,192,199, 57, 14, 28, 84,111,117,234,205,120,208, +192,123, 38, 5, 39,226,200,133, 54, 53, 53, 71, 0,117,207,204, 69,153,200, 35,212,138, 48,166, 46,173, 83, 36,112, 14, 5,162, + 6,134,207, 9,176, 58, 80, 67,236,128,187, 99,140, 98, 56, 56,225, 97,202, 52, 55, 11, 45, 15,186,183,143,213,205, 85,137, 72, +131,150,186,212,236, 0, 26,118,132, 0, 48, 48,177, 27,186, 43, 33, 3,130, 86, 69, 71, 5,131, 8, 11,114, 55,181, 70,111,113, + 3, 48, 87,138,216, 80, 47, 14,230, 16,224, 48, 48, 68,177, 8,222, 19, 6, 51, 48,192,132,209, 70,132, 82,220,212, 41, 42, 7, + 67, 17, 2, 51,115,136,177,146, 91,113, 5,105,125,135,108,161, 0, 0, 32, 0, 73, 68, 65, 84,184, 71, 67, 96, 8, 25,255,146, + 59,218,238,171,112,241,134,176,183, 5,151,198,172, 81,218, 20,101,193,124, 59, 16,134,101,180,141,234,205, 34, 79, 36,196,141, +109,187, 26, 94, 40,186, 49, 77, 53,197,170,135, 44, 30,150,180, 63, 0, 39,202,253,161, 3,164, 44,193,169, 3, 66, 20, 4,242, +105,103,132,155,191,253,229, 95,254,242,151,159,238,166,130,177,234,169,117, 26,199, 59,247,243, 81,215, 87, 45,243,172,251,237, +110, 44,101, 63,207,166,181,168, 10,194, 52, 77,115,173,196, 56,205,138, 14,194,140,132, 68, 70,146,136, 72, 68,194,184, 73,140, +106,186,185,190, 38,162,131, 97, 93,180,146, 67, 68,242,100,118, 9,178,146,164,158, 83, 74,121,158,107, 18,156,171, 86,181, 90, +235, 92,234, 60,205,234,150, 72, 50, 34, 39,118,164,247,222,251,240, 63,248,147,255,240,141, 7,111,237,246,151, 47, 30, 63,249, +197, 47,127,241,229,227,167,103, 23,175,167,185,160,112,153,117,183,219,158, 93,108,214,125, 71,196, 28, 82, 10,119,162, 48, 27, +169, 46, 20,190, 22,113, 8,110,106,204,132, 8, 66,194, 40,128, 40, 64, 34, 50,142, 83, 78, 20,241, 87,234,234,158, 92,221,221, + 88,120, 42,243,225,106, 93,212,198, 89,207,183, 87,105,191,251,147,191,247, 31,167,126,248,238,187,239,223,190,115,239,224,240, +246, 87, 95,253,226,127,252, 31,254,187,191,252,229, 95,221, 57, 60, 50,115, 53, 51,245, 26,167, 10, 84, 12,188,172,171, 8, 16, + 65, 80, 3,147,176, 35,152, 26,145, 44, 10, 89,119,192,112, 66, 19,179,215, 86, 65, 17, 71,178,161, 46,162, 18,104, 5,105,195, + 78,169, 27,238,231,210,231,100,142, 86, 21,208, 74, 53,228, 6, 13,159,107,217,108,118,111,220, 73, 57, 9, 32, 2,145,151, 26, +233,198,194,172,106,136, 48,171,129, 25, 33, 99, 91,251,248,130, 11, 53,128, 8, 64, 64, 55, 80, 13, 7, 99,243,210, 73, 34,100, +210,217, 57,228, 4,228,197,116, 81,241,135, 42,215, 17,145, 57, 19, 41,134, 92,164,217,158, 2, 71,130,112,147,156,237,100, 26, + 28, 45, 74,146, 56,161, 85,109,229,155, 89,181, 80,230, 52,203,247, 66,206,114,100,131,136, 79, 67,215,246, 69,241,235, 13, 40, +101,213, 90, 4,168, 25, 3, 84, 51,199,136, 60, 17, 39,180,234,140, 75, 10,230,141,158, 97, 9, 68, 13, 7, 37, 19, 17, 97,176, +131,133, 41,214,197,251, 50,219, 8,136, 59, 70, 22,225, 46, 39, 4, 39,150,190, 99,230,212,119, 41, 49,229,212,173,215,253,144, +211,208, 13,183, 15, 15,186, 46,247, 57, 31,172, 6, 78,105,189, 26,134,190,207,221,208,119, 93,183, 90,231,188,146,148,136,229, +104,125, 32, 41, 59,194,155, 15, 31,253,224,163, 31, 77,227,118,115,113,113,177,217,108,206, 47,158,159,157,188, 58, 62,249,230, +213,203,205,230,234,244,252,178,204,115, 53,219,205,197,171, 1, 97, 18, 70, 71, 98, 34, 66,172,230,130,168, 26,252, 74, 4,226, +112,158, 70,222,179,147,186,167, 80,112, 51, 21,179, 80, 50,129, 17, 48,154, 59, 82,236, 91,155,236,208,150, 31,203, 92, 35,163, + 77, 0, 1,136,110,226,197,224, 6,186,139,180,200, 79, 24, 29,141, 26, 60, 44,216,149, 55,250,118, 68, 68, 23, 64,116,171,238, + 64,204,170, 10,193,250, 1, 70, 2, 80, 5, 52, 3,250, 86,216, 77,168, 85, 9,128,152,151,104, 57, 0, 55,116, 39, 76, 49,221, + 5,141, 23,131,150,207,207,220, 75, 68, 52,186, 26, 2, 1, 51,184,130, 57, 49,152, 49, 58, 80,242, 27,109, 88, 51, 20,169, 26, +152, 1, 3,144, 99,149,166,114, 33, 92,200,201,112, 3, 10, 67,230,136,165, 14,161, 17, 18, 96, 83, 70, 54, 36, 27,186, 69,104, + 71,236, 71,130,157, 9,234, 36,172,177,206,130,197,217,122,131, 31,139,196,154, 24, 93, 49,199,206, 1, 35,199,104, 65, 7, 99, + 11,188,162,200, 21, 88,210, 55,226,166, 68, 47, 58,207,229,171, 95,254,249,167,159,125, 41, 57,247, 4,243,190,140,211,140,224, +132,124,241,228,235,187,135,183,193,253,197,233,235,253,180,119,135, 98,150, 8,205,125, 54, 80, 53, 20, 40, 69,193,189,235,134, +148, 18,177, 18, 50, 1, 22,213,105,156,162, 6,170,181, 24, 88,159, 7, 97,217,207,163,186, 77,134,185,203, 89,168, 86, 29, 58, +102, 22,117, 21, 17, 53, 45,117,222,237,170,130,154, 66, 45,165, 84,251,224,251,223,253,173,223,252,145,142,219,191,249,213,151, + 83,165,223,253,221, 63,248,232,147, 31, 51,210,217,201,139,175,190,250,252,233,211,231, 79,143, 95, 94,236,182,213,161, 2,142, + 87,215, 39,167,103,171, 46, 51,161,144,180, 36, 20, 55, 93,166,222,145,244,118, 99, 3, 23, 22, 68, 48,211, 36,105,201,189, 83, + 68,209,102,221,142,209, 37,249,162, 77,165, 56,238,156, 14, 86,221, 63,254,147, 63,250,223,255,159, 63,253,236,139,167,136, 7, + 63,251,187,127,244,201,143,127,231,254, 27,111,237,174,183,251,253,246,222,131, 55, 51,119,227,180, 19, 20, 71, 84,181,170, 21, +153,176, 26, 82,152,214,113,183,223,229, 36,224,216,155,185, 97, 16,157,204,129, 19, 89,243,139, 71,119,198, 0,198, 76, 6, 77, + 89, 28,247, 19,199,112, 48, 6,163,241, 73, 39,178,201,213, 52,150, 77, 99, 41,136,126,152, 86,202,232, 32,230, 74,206,153,211, + 52,239,107,181,106,181,162, 43,128,171,163, 66, 81,141,113,106,112, 75, 56,114, 95,155, 30, 43,244,137, 22, 98,118, 98, 1, 44, +129, 26, 39, 65, 7, 99, 36,116,143,180, 76,211,170,213,180,106, 16, 2, 29,221, 9,213, 53, 11, 49,146, 98, 5,160, 33, 9,163, + 42, 32, 58, 71, 73,238, 0,228, 6,238,156,196,172, 78, 83, 64,146,111,194,174, 9, 48, 60,158,205,243,101, 65,209,247,160, 50, +196, 10,177,233,230, 85,137,164,169,201,219,214,203,129,227, 35,112,207, 18,147, 69, 99,100,101, 4, 66, 7, 19,128,182,164,115, + 44,214, 64,205,140, 60,107,137, 31, 73,164, 25,183, 9,130,155,182,156,202, 54, 29, 70,226,182,225, 11,179, 32, 34, 49, 76,165, + 78,243,108, 1,196,210,154, 88,152,121,189, 90,173,251,174, 75,210,119, 41,231,156,187,180,202,185,207,121,200,121,181, 94, 15, + 93, 90,175, 86,235,190, 95, 29,172,130,179,192,156,239,220,189, 51, 12, 7, 8, 88,181, 2,178,164,116,247,141,251,119, 31, 60, +240,234, 63, 1, 55, 43,227,126,156,231,114,121,117,185,217, 92, 94, 93,110,142, 79, 79, 95,158,156, 62,125,249,242,228,236,226, +244,114, 51, 78, 83, 20,240, 36,108,224,130,132,140,113, 63, 45, 14, 98,136, 67, 52,130, 62, 74,109, 3, 29, 89, 64,130, 8, 40, + 68, 11,205,133, 28,156,188, 21,150, 49,101,139,185, 60,161, 67,176,135, 90, 43, 1,156, 36,166,243,137,152,163,173,138,201,116, + 28,236, 81,217, 18,163,105,169, 21, 91,134, 93,140,237, 20,195, 0,141,232, 54, 33,176, 1,121,128,245, 34, 33,137,200,220,153, +197,205,154, 27, 3,205, 85, 23,239,127,187,140, 45,104,201, 49, 14, 33,114, 85,112, 39,116,115, 52, 68,175, 74,216,164,144, 49, +211,162,144, 57,180, 23,191, 66,176, 13, 73,192,149, 24, 0, 73,171, 11, 64, 68,153,219, 18,153,181,160, 17, 2,220, 29,195,155, + 27,121, 0,222,180, 36,141,245,182,208,194, 41, 24,165, 49, 70, 15,107, 91, 67, 70,218,226, 0,163,230,132,128, 38, 41, 35,104, + 25, 77, 77,129,182, 32,103, 17,144, 33, 46, 70, 97,160,152,221,182, 89, 63,133, 30, 73,203,171, 23,143,193,234, 84, 76,213, 18, + 17,139,168, 57, 18,245,156, 75,153,111,223,186,245,144, 96, 42,117, 30,139, 67,115,138,207,165, 78,230,104,214,173, 58, 68,146, +224, 30, 97, 50,179,221,180,179, 98,200,236,142, 14,186, 26,214,171,110,152,117,154,230,169, 86, 69,194,148, 82, 98,206, 73, 8, +153,208, 13,161,148, 58, 78, 83, 81,173, 85,193,112, 53,228,183,190,115,247,131, 31,124,240,238,163,183,223,251,238,251,255,239, +191,249,183, 63,255,244,235, 55,222,250,222,207,126,246,135,247, 31,188,113,121,121,241,252,217,227, 47, 31,127,249,248,201,243, +211,203,215,103,103,151, 99,153,183,227,212, 19,226, 60,169,106, 74, 44,115, 60,161, 45,163,188,148,138,102,136, 80,204, 40,210, +175,154,199,143, 0, 81,193, 58, 64, 8,124,107,153, 24, 33, 39,170,166,238, 1, 92,137,150, 19,130, 42, 8, 64, 85,235,195,251, + 15, 62,254,232, 7, 10,248,195, 79,118,127,231,247,254,152,152,190,248,252,231,156,153,145,118, 87, 23,127,254,239,254,197,201, +171, 87,239,127,239,123,231,155,139,221,238,218, 81, 28, 17, 84,179,112,180,212,146, 18,206, 37,120,174,166, 86,162,250, 64, 7, +211,117,119, 48,169,109,199, 17, 16,144,165, 25,152,156, 66, 1, 69, 76, 84, 66, 1, 30,203, 72,160,229,160, 9, 98, 9, 26, 48, + 83,226,100,224, 99,209,161,106,192, 43, 8, 0,128,230, 50, 19, 81, 18,206, 57,117,156,138, 22, 7, 53, 52, 4,138, 3,190, 46, +185, 64,136, 24, 2,251, 88,143, 48,161, 11, 79, 85, 83,219,103, 66, 53, 37, 64, 65,172,213, 65,160,122, 21, 16, 7, 68,161, 37, +129,202,173, 24, 51, 90, 49, 23,100, 2,175,128,224, 67, 78,157,164,125,169,204, 8, 70,137, 96, 87,141,192,213,173,106,101,100, + 38,208,200, 45, 13,205, 7,133,166,195,170, 57, 1,168, 42, 0,166, 76, 96, 80,205, 58, 34, 17,132, 57,170,127,178, 72, 91, 10, +251, 58,144, 32,155,171, 45,216, 63, 48,104,174, 40, 68, 82, 47, 20,122,208, 48, 72, 32, 35, 36,225,170,238,160, 10,102, 0,140, +210, 18,145,155,149,188,129,158,111,184,221,130, 28,125,125, 5,167, 8,146, 79,204,222,236,154,128,230,224,213,180,104, 53, 3, + 7,155,198,145, 0,153,145, 56,245,125,238,146,112,112,238, 68,134,156, 82, 74,235,190, 63, 88, 13, 71, 71, 7, 7, 67,183, 94, + 31,158,158,190, 28,134, 33,119, 67,196,115,117, 93, 30,134, 30,156,115,215, 17, 11, 33,229,213,176, 90, 31,222,190,115, 55, 8, +248,213, 96,222,239,231,105,183,189,222, 94, 92,111,158, 62,123,241,242,244,228,217,139,227,215, 23,231,199,175, 47, 94,157, 95, + 68,184,146, 26, 9, 53, 76, 90, 40,241, 19, 67, 88, 53,132, 81,136,171, 86, 68, 32,194, 20, 73, 44, 17, 70, 68,120,147, 40,198, +141, 84, 24,228, 32, 52, 0, 14, 57,166,155, 35,170, 25, 49,113,131,226, 96, 78,172, 45, 78,202, 23,134,113,171,226,131,209, 27, + 80,129, 40, 8,128, 0,140,161, 97, 65,154,218,165,229,222,185, 18,182,176, 45, 22,114, 37, 85,109,235, 99,226,112,155, 55, 91, + 41, 81,208, 67, 90, 31, 28,154, 5,111,149, 81,112, 47,181, 70,187,128,213,144, 17, 53,242,170,204, 72, 24,128, 10, 40, 35, 7, + 67,200,221, 65,136,147, 8, 17, 54,185, 15, 97,211,171,132, 69,106,129,237,199, 94, 9, 2,251, 15, 30,233, 86, 77,210,190, 88, +162,226,235,113,129,249, 68,193,190,132,143,104,148,159, 45,180,199,173, 85, 66,110, 72, 76,148,227, 94, 92, 76,128, 49,225,191, +185, 58, 29,106,160,165,219,122, 25, 9, 41,229,243,227,159, 63,126,254, 82, 29,227, 5, 51, 32, 22,234,178,152,122,159,147,100, + 70, 55, 53,216,237,103,119, 55,175,234,110, 34,100,184, 62, 76, 17, 72, 49, 77, 19, 0, 86,175,117,170,101,156, 13, 16,208, 19, +146, 8, 13,253,138, 16,175,199,136,235,116, 97, 73, 89, 82,202,137,176,186,162,186, 90, 81,245, 88,192,190,253,157,183,222,122, +235,173,119, 31,125,231,209,163,119,190,243,240, 97, 55, 28,254,249,159,253,235,255,237,159,253,175, 87, 91,252,221,223,255,251, + 31,124,252,145,150,242,226,249, 55,199,207,158, 60,123,254,242,155,167, 79,159,159,156, 92, 94, 95,143,115,241, 50,157,159, 95, +222,187,125, 68,132,130, 72,190,180, 41,110,193, 23, 71, 70, 4, 98, 96,194, 57,145, 32,230, 96,239, 50, 3, 1, 8,210,108,154, +148, 16,157,132,201,205, 13,168,125, 52,128,142,230,192,200,184, 80,176,199,185,188,247,232,157,238,246,123, 31,252,228,173, 15, +192, 95, 60,123,252,111,255,236, 95, 50,165, 7,111,126,103,191,191,250, 87,255,230, 79, 9,169,147,180,234,134,239,190,247,221, + 95,252,226,231, 14,128,142,234,238,106,136, 52,149, 2,238,171, 46, 3, 17,152, 2,161, 56, 77, 53, 58, 80, 35,196, 94, 36, 26, + 97, 70,106, 88, 56, 52, 64,137,237, 37, 54,194,115, 32,106, 29, 1, 57, 84, 93,216, 44, 90,236,177,175,129,170,102,110,137,210, + 52,149, 74, 34,174,213,177,204,165,203, 29, 18,205, 90,201,191,165,203,198,120, 54, 56, 71,181,121,208,140,137, 67,221, 24,226, + 20,170,106, 28,118, 84, 10,148, 49, 39, 9, 9,252, 18, 44,217, 34,126,208,111,104,124,158, 4,157, 44, 92,154, 44,108,230, 99, +153, 29,169,153,196, 69,176,204, 72, 45, 36,220, 12, 12, 45,146,234, 8, 64, 29, 98,247, 83,106,141,111,187, 86, 75,137,193,201, +172,106, 85,167, 4,109,183,231, 17, 62,201, 20, 22, 9, 50,115, 64, 35, 36,213,182, 81, 32,102, 98, 14, 51,160, 3,146, 97,157, +103,179,138,144,131,222,179,204, 83, 33,117, 92,180, 68,218,178,162, 49, 50, 24,152, 35, 52, 91,174, 7, 64, 56,230, 73, 10, 30, +159,132, 81,117,227,130,232,176, 68, 77, 88,108, 29,201,201, 24, 89, 34,207, 32,165,177,214,185, 96, 53,215,221,190, 99, 41, 86, + 50, 51, 16, 49, 75,159,211,170,239, 87, 67,119,208, 15, 7, 7,195,106,232,134,110,232, 36,113,146,190,147,156,250,174,147, 62, +119, 73, 18, 11, 15,235,149,112,150,148,136,115,206,132,144, 88,100, 37,135,235,195, 59,111, 17,127,240,193, 71,228,182, 31,199, +221,118,187,217, 94,191, 62,191,184,188,220, 60,121,241,252,244,252,226,122,187, 59,191,186,222,239,167,253, 60, 86,211,162, 96, + 6,106,234, 0, 73, 8, 64,136, 82, 80, 43, 34, 30,189,160, 34,128,196,254,201, 1, 16,133,168, 90,108, 91, 64,150, 21, 46, 17, + 9,177,153,133,228, 12, 96, 33, 96, 97,155,237, 45, 27,164, 37,181,193, 35, 0,189,113,162,218,151, 3, 97,152,219,160, 5, 76, + 89,219,232,146, 59, 68, 30,113, 51,101, 0,152, 26,130, 3, 50,160, 11, 80,117,107,163, 9,102, 86,119,110,100, 98, 36,116, 69, +175,113, 90, 54,131,149,187,215, 82, 89,210,183,243,109, 10,254,170, 75, 12,175, 20,221,193,188,136, 18,152,137,199,227,205,228, +166,128, 76,139, 50,184,109,161, 27, 70,167,193,219,190, 37,138, 53,229,145, 7, 21, 18, 29,136,184,165, 43,181,214,102, 49,158, +181,196,113, 6,114, 88,240,128,113,113, 32,177,164, 28,122,136,184,139, 99,137, 71,230, 72,201,173,132, 15,243, 70,214,138, 14, +200,172,181,170, 78,183, 14, 15, 55,215,251,253,126,156,203, 92,107, 40,112,153, 5,175,167,110,232, 82, 41, 87,175,175,174,171, + 43, 90, 16, 1, 67,125,203, 72,153, 25,139,214,170, 74, 8,251,221, 56, 77, 83,117, 0,128,196,204,201, 51,115, 85, 43,101,106, + 3,100, 48, 17,202, 89,180,214,205,126, 86, 83, 65,236,251,244,230,253,187, 63,252,240,163,159,254,206,239,124,247, 7, 31,215, +105,203,156, 16,241,223,255,217,191,250,226, 87,191,122,118,124,241,157,119,222,255, 71,127,240,199,221,176,222, 92,158, 93,158, + 29, 63,127,252,228,155,103,207,190,122,250,236,197,201,217, 56,207, 86,244,122,187, 57, 90,245, 44, 40,194,166,206, 72, 36,100, +136,146, 90,190,149, 57,148, 90,197, 57, 72,167, 41,230,110,238,166,198,129, 97, 37, 12,196,146, 8,171, 66, 2,156,230,162, 86, + 1,169,170,102,136,137,135, 26,180, 66, 16, 9,126,248,209,199, 51,201,211,103, 95, 62,127,246,245, 95,252,213, 95,215,121,255, +206,219,143,142, 14,142, 62,251,244,175, 94,190,120,241,232,209,163, 97,232,137,249,173,251,111, 92, 60,120,243,236,242, 28,118, + 38,196, 69,103,145, 62,130, 39, 17,157,212,136,136,128,170,169, 16, 4,175,168,154, 38,201, 68,228,224,213,205,209,153, 57,144, + 46,141,213, 23,214,133, 24, 14,180, 16,238, 72,214,132,234,150, 76, 25,113, 50,205, 64, 76,116, 61,142,135,136, 97,106,139, 90, +136,144, 12, 92,205, 84, 45,167, 36,200, 68,162, 62,131,130,113,188, 75, 16,100,172,170, 45, 48, 20,151, 49, 35, 34,219,188,100, +196, 46,161, 81,113, 44, 38, 78, 22, 65,141,205, 53,233, 8,136,194, 30,130,238,155,228, 64, 4, 71,163,120, 81, 9,196,209,204, + 2, 69,128,134,140,130,137,104, 12,194, 53, 27,129, 25,144, 99,151,115,169, 5,192,154, 43, 31,121,154,103, 2, 72,188,100,158, + 16, 32, 48,121,147,146, 34, 2, 9,183,238,184, 41,131, 61, 2,183, 35,215, 20, 22,231, 61, 73, 66, 47,110, 74,145,167, 8,168, + 97,146, 69, 66,224, 86,183, 42, 50,123,133,136,148,111, 59,132, 26,224, 19,112, 95, 34,250,144, 48,200,230, 16, 97,120, 26,155, +191, 22, 95, 25, 90,146,224, 45,148,128, 59, 32, 18, 65, 85, 3,212,121, 42,202, 58,142,211,229,110,116,132,163, 97,117,112,216, +175,251, 85,151, 83,159,115, 78, 28,137,116,189, 36, 97,238,115, 94, 13,253,170,239,147,112,215,247,135,221,208,117,169, 27,114, + 78, 61, 49,231,174,235,187, 78, 56,115, 78, 11,225,157,214,195,122, 88,175,222,122,240,150,153,254, 12,126,199, 74,221,238,119, +187,235,237,213,118, 60, 61,127,117,118,113,249,234,236,252,213,217,217,171,215,175,167,221, 84,204,107,169, 85, 11, 0,115, 66, + 71, 23, 97, 50, 90,118,206,128,224,196,228, 8, 34, 82,107,141, 9,179,129, 5, 75,199,192,235, 52,249,162,244,178, 22, 10, 16, +138,117,108, 34,109,167,248,131, 16,151,255,211,104,198, 24, 3,108, 3,163,156, 96,137,154,102, 55,211,106, 80,193, 35, 54,189, +213,254, 68,161,186, 66, 39, 0, 36,171,222, 76,251,132,232,160, 80, 17, 82,132, 95, 70, 76,200,141,112, 62,182,236, 78, 56, 23, +195,106,204, 36, 76,106,102,166,129,110,247, 37, 8, 29,221,201, 17,205,160, 22, 89, 52,187,186,100, 34,195,146,157, 71,110,218, + 46,177, 16, 40, 45,109,202, 13, 40, 51, 56,246, 45,154,181,101,105, 69,245,111,191, 70, 60, 0, 71,242,198, 75,107,203,230, 32, +213, 97, 48, 32,144, 34,200,165, 41, 94, 91, 55, 96,203, 28,185,233, 70,155,182, 20,220,173,158,156,158,157, 92, 92, 9,128,176, +184,131,214, 49,240,126,196, 82,180,150, 93,157,199,253,229,213,182, 17, 57,213,153,129,129,164,203,128, 56,105, 85,173,227,126, + 52,247,237, 84, 45, 2, 16,136, 14, 14,214, 67,223,153,154,154,166,148, 23,153, 40,149, 82,166,105, 74, 73,134,220,191,247,238, +219, 63,253,201, 79, 62,250,232,163,219,119,239, 29,221,190,173, 36,175,158, 63,203,196,147,109,255,236, 79,255,207,207,126,241, +183,235, 91,111,254,193,223,251, 71,239,125,247,251, 69,203,217,139,167,175, 94, 61,121,241,226,213, 23, 95,125,243,245,179,103, +231,219,171,113, 63,127,231,222,157,205,197,197,181, 57,162, 4,200,218,106,204,193, 48,120,138, 45, 3, 60,254,234, 28, 98, 80, +118, 66, 9,116, 13, 68, 66,119, 24, 27, 80, 88, 70,157,106,213, 33,119, 10,174, 22, 68, 67, 68, 98,175,102,174,110,238,142,102, +112,184, 94,191,253,230, 27, 47, 30,127,250,213,151,191,124,249,252,249,135,143, 30, 12, 57,175,110, 61,156,116,126,250,252,133, +147,151,121,222, 19,247, 93, 62, 88, 29, 60,124,240,240,245,229,165,185,107,169,147,170,176, 1, 98,177,218, 33, 21,119,114, 27, +186,172,181,201,174,212, 65, 13, 4, 97,149,211,118, 42, 13,226,132, 64, 76,141,122,234, 81,190, 16, 51,151,144, 73,182, 90, 20, +153,136, 96,113, 96,151,234, 57, 57,250,126,154, 9,168, 75, 82,180, 38,226,224, 96,187,163, 32,207,141, 27,111, 49, 20,117,188, +209, 48,196, 99,103,173, 91,185, 41,120, 16, 45, 58, 60,187, 57,232,176,133, 73, 26,170, 22, 98, 81,117,171,170,234,138,142, 0, +218,158, 68,172,173, 14, 50, 0, 76,146,144,121, 30,107,173,154,136, 28, 41, 10,179,218,118,221,165,106,141,240, 38,152, 1, 29, +212,109,174,133, 0, 29, 8, 93, 37, 69,143,225,234, 96, 0, 41,164,244,230,180, 56,223,185, 49,171,188,225, 9,137, 98,132,175, + 8, 72,216,165,180,155, 39, 85, 21, 78, 96,115, 32, 6,110,118,134,170,150, 16, 42, 49, 33, 72, 64,126,192,155,218, 30,192,105, + 17,229, 47, 57,166,204,225,113, 15, 84, 26, 91,219,109, 9,136,217, 28,153,124,236,168,205,170,105,200, 24,152, 95, 37,230, 46, +231,185,106,172,171, 75, 85, 17,100, 34, 55, 45,170,103, 85,181,214,169,175,225,204,236,187,156, 18, 35, 80, 4,164, 8, 19, 17, +102, 73, 57,165, 46,167, 85,206, 41,165,126,200,235,126,232,186, 60,116,125,159, 19, 3, 96,238,250,148, 36,194, 78,186, 60,116, + 61,178, 32, 18, 75,252, 98,215,175,214,247,136,222,211, 71,115, 41,155,171,203,113,183,175, 90,231,185, 92, 94, 95,158,190, 62, +127,117,118,113,242,250,108,187,223,239,199,105,183,223, 79,181,132, 93,153,152, 32, 32,180,192, 76,136, 34,165, 22, 71,230,196, + 68, 24,254, 79,166,182,250,158, 77,209, 13,204, 9, 2, 0,185, 56, 66,233,134, 65,115, 35,233, 84,184, 33,209,199, 4,128,170, + 27,186, 57, 97,219,163, 64,139,138,197, 16, 57,199, 64,178,241, 72,109,113,252,181,165,177, 1, 16, 16, 35,178, 91,245, 27, 22, + 11,115,187,225, 27, 17,166, 69,224, 56,128, 43,104,211,222,131, 59, 88,213, 72,102, 55,231,170, 21, 93, 1, 65, 90, 77,141, 72, +204, 30,138,131, 5, 16,130,209,140, 99,172, 82, 99,120, 67,205,166,106,182,120, 86, 9, 99,185, 76,116, 67, 87, 88, 20,149, 75, + 11, 13, 10,106, 55, 94, 3,136,206, 28, 16, 9, 35,162,215,108, 94, 92,143,203,246,191, 49,229,155,133, 21, 29, 92, 45,118, 14, + 93, 63, 28, 30, 12,125,146, 59, 71, 71,166, 90, 77, 17, 96,156, 39, 36,210,106,238, 32, 41,111, 46, 55, 87, 83,205,136,197, 12, + 25, 17,180,154,237,118,251,185, 94,101, 97, 68,154,213,118,211,232, 14,125,215,221, 59,186,221,245, 9,137,208,161, 98,181, 82, +231, 82,193,161,154, 30, 12,253,155,111,220,255,248,195, 15,126,242,227, 31,223,191,127,255,240,246,209,176, 62,208,234, 70,248, +252,233,147, 97,117,132, 96,191,250,235,191,248,197, 47, 62, 61,187,216,253,224,147,223,255,248,147,159, 14,171,213,118,119,125, +117,250,242,248,213,179, 79, 63,251,252,139,199, 79,142,207, 47,199,253,126,183,219, 94,109,118,223,127,112,239,217,184, 85,112, + 32,207,194, 12, 88, 21,162, 76, 99,164, 68, 84, 98,113, 14,102,213,156,216,220, 56,110, 57,194,161,235,218, 80, 2, 80, 67,245, + 4, 22,214,205,128,189,138, 96,153, 27, 11,136,200, 67,164,133, 0,238,250,224,238,189,219,195,208,247,233,183,126,240,193,227, + 85,247,240,193,157,127,255, 55,191,120,248,189,183,182,219,205, 79, 63,249,237,111,190,249,162,212, 57,107, 46,165,100, 73,111, + 62,124,227,228,236,228,229,217,169,122,101,164, 82,212, 77, 9,160, 70, 94,135,182, 71, 55, 28,186,166, 26, 26, 62, 97,206, 82, +139, 3, 3, 48, 32,152, 35,146, 32, 2, 82, 85,107,110,212, 5,245, 7, 13, 68,228,145, 46,239,136,234,106, 36,232,110,128, 87, +227,136,216,103, 33, 67,220,207,133,137,170, 1, 16,218, 60, 71, 43, 92,172,130, 27, 19, 53,226, 69,108,116,154,154, 26, 8, 97, +154,231,185, 86, 9, 66,177,131, 87, 51, 7, 19,101, 70,195, 54,135,172, 85, 19,179,185,106, 85, 68, 39,247,190, 75,165,170,131, + 33, 80, 60,151, 72, 80,107, 29,107, 61,224,100,224,148,144, 72,204, 45,178, 40,173,214,102,161, 5,208,170,130, 75,105,239,110, +170, 10,102,166, 20,121,238,228,166, 80, 93,209,219,110,193, 91, 39,237, 13, 99, 69, 12,209, 53, 24, 58,122, 52,189, 81,231, 16, +160,112,138,156,100, 95,252, 34, 76, 64, 68,174, 26,191,221,192,137,168,106, 1, 67, 74,124,131, 89, 9,251,212, 66,124,197,152, +139, 70, 20, 30, 44,208,143,200,161,246,150,121,225,106, 10, 33,149, 10, 6, 32, 0, 53,168, 47, 55,109,191,121, 85,141, 19,206, +220, 8,254,127,166,222, 44,230,178,236,186,239, 91,195,222,251,156,115,239, 55,213,216, 53,117,117, 23,123, 96, 15,156,154,148, +154, 52, 69,137,140, 34, 89,163,165, 64,136,148,216,112, 98, 35, 1,132, 0, 1,140, 32,121,201, 75, 94, 2, 4,240,107,134,183, + 0, 2, 12,219, 72,140, 4,118, 98, 57,138, 68, 77,148, 41, 74, 28, 76,154,166, 66,182,122,238,170,238,174,233,171,250,230,239, +222,115,246,222,107,173, 60,172,125,190, 38,186,208, 15,141, 66,117,213,173,115,247, 89,251,191,254,255,223,159, 90, 51, 6, 51, + 51,139,138,136,156, 74,166, 64, 82, 36, 70, 78, 33, 16,227,106,181, 38, 98,255,252, 23, 49,245,139, 46, 16, 5, 14,125, 23, 83, +136, 41,165,141,161, 75, 41,165,232, 51, 60, 96,224, 33,117, 41,134,141,229, 50,246,105, 72,125, 23,135,152, 56,164,238,224,232, +104,127,127,255,202, 19, 79,220,188,121, 35,134,136, 76, 68, 65, 85,107, 41,165,150,211,213,122,119,247,209,201,201,225,193,209, +241,254,209,209,222,254,193,238,254,193,254,193,193,148,115, 22, 29,167,177, 40, 84,133, 72, 76, 72,204,236, 23, 52, 78, 6,136, + 49,114,206,138, 64, 70,172,136,213, 29, 49,136, 13, 17,215, 82,245,138,198,128,136, 20,218,231, 70,205, 20,104, 34, 45,145,161, +213, 99,183, 32, 70, 1,219,110,166, 21, 84,121, 59,145, 53, 71,189,103,140,212, 16,217,204,107,144,230,142,105,108,185, 78,112, +208, 77,123,117, 3,241,172, 63,178, 49,162,138,169,136, 35,108,172,250,123,165,165,141, 12, 33,152, 91, 74,125,226,249, 49,198, +165,155,239,157,254,224,125, 89,126,212, 58, 14,109,190, 71,250,128,222, 32, 60,103,152,183,230,128,179,102,126,108, 56,130, 6, + 26,155,171,187,189, 63, 93, 4, 64,230,247,137,139, 88, 98,170,128,179, 81,167,237,150, 13, 24,137, 73,106, 85,179,235, 55,158, +140,223,253,193,253, 71,143, 13,112, 49, 12, 23,206,109, 93,186,116,145, 1, 57,112,191, 92,162,232, 95,189,246,250,198, 73,175, + 96, 84,164,130,212, 92,171, 65,223,165,205,141,101,206, 50,150,113,149,167, 46,118,139,161,223, 88, 44, 76,245,232,244, 84,106, + 69, 4, 81,116,142,202,243,183,110, 62,247,212,205,151, 63,253,201, 23, 95,250,100, 55,244,211, 52,229,113, 13, 28,149,195,131, +247,223, 89,108,158,235,151,203,187,239,191,245,214,143, 94,187,115,231,222,114,251,234, 47,252,234, 47, 63,113,245,137,213, 42, + 31, 29,238,157,236, 63,122,239,189,119,127,248,250,235,183,239,222,203, 42,227,122,212, 50, 89, 21, 3,165, 16, 58, 78,135,211, + 81,201,213, 19,244,138,218,136, 69,160, 28, 56, 23, 4,179, 24, 34, 34,176, 25,130, 23,241,176, 78,121, 17, 35, 19,250,198, 92, + 77, 1, 73,149,192, 32,132, 0,168,204,228,199, 3, 1, 17,130,104, 69, 0, 10, 20, 98, 16,179, 39,175, 92,221,220, 90, 90, 76, +112, 98, 67,215, 49,210, 43,159,250,137,184,185,253,225,221, 59,183,158,121, 97, 88,108,148, 50,149, 16, 40, 12, 68,125, 71,195, +173,167,159,190,115,255,222,241,209, 49, 4,238, 35, 50,115,215,245, 37, 79,145, 8, 8,214, 83, 97,196, 34, 74,132,145,153, 57, + 0,145, 86,141,204,164, 86, 69, 33,160,154,145,170, 16, 53,187,140,105, 11,244, 32, 84,213,128,132,161,157,245, 6, 22, 3,229, + 9, 80, 12,169,229, 76,143,198,105, 49,116, 12, 72,136,235, 41,175,199,154,171, 94,218,222, 80, 81, 85, 43,185,213,194,121,161, + 18,158, 61,108, 4,205, 91,205,129, 85,192,196, 31, 82, 53, 0,194,169,148, 92,100, 72, 48,137,153,163, 12, 68,171,152,248, 68, + 33, 90,160, 86, 85, 36, 43, 82,171, 59,156,145,209,192,148,198,162,170,218,121,149,152,153,122, 34, 15,128,144,165, 86, 36, 52, +119,180,155, 1,162, 0, 24,178,104,102,128, 64, 84, 76, 74,177, 24, 81, 43,170, 25,113,112,190, 74,160,153, 20,110,224,181,233, +218,180, 19,144,217, 62, 89,205,198, 41, 11,181, 33,160,152,170, 40, 0,130, 43, 65,136, 6, 48,169,129, 72, 21, 85, 53, 66, 5, +195, 8,168, 51, 24,196,203,122,136,192,172,154,121,192, 8, 16, 28,157,137,228, 0, 0, 48, 49, 19, 81, 39,177, 41,128,187,213, +102,209,138, 60, 2, 38,128, 10,200, 76, 85,140, 16,177,130, 85,175,109,171, 0,177,154,138, 86,223, 13,146,215, 73, 58,116, 9, +160,150,154, 75, 17, 25,171,234,233, 84, 16,161, 99,222, 90, 46,140, 99, 32,244,100,114, 66,142, 28, 98, 10,125,234, 82,224, 20, +152,163, 95,138, 56,134,208,119, 93,159,210,176,236, 4,232,248,232,248,202,197,115,227,201,226, 94, 25, 67,232,250,190, 95, 46, + 54,251,161,163,148, 22,177, 59,183,115,254,234,213,107,181, 10, 24,148,156,205,106, 45, 50,230,188, 26, 79,243, 52,126,120,239, +225, 95,191,247,238, 59,239,221, 57, 56, 60,200, 69,213, 84,154,232, 66,128,136,200,169,163, 98,101,150, 68,196,196,144, 3, 27, + 74,123, 88, 9,145, 20,102, 59, 84, 11, 98,181,154, 17,103, 21, 89, 85,207,111,121,242,209,154,235,209,115,160, 86, 85, 26,150, +151,208, 7, 8,100,179, 98,226, 3, 10, 17, 3, 25,145, 83, 31,204, 8, 64,220,150,128,102, 14, 55, 84,164, 90, 36,240,217, 37, + 21, 60,245, 6,228,125,233,134,100,236,249, 88,113, 23,103,195,222,184, 27, 93,125,113,235,101,167,103,130, 9, 0, 2, 27,233, + 28, 4, 68,244,106, 7,247, 98, 99, 91,200,182,127, 33,179, 63,185,243,127, 52, 34,244,216,246,220, 44, 77, 90, 42, 68,155, 1, +113, 49, 32, 1,161, 57,229,192, 42, 84,197, 64, 31,189, 51, 8,193, 64, 68, 13,176,150,178,117,238,226,114,115,145,213,114,145, +147,213,234,228,244,164,139,253, 98,209, 41, 64, 8, 92,171,189,183,251,240,222,238,158, 39,252, 93,233, 76, 49, 84,178,253,189, +195, 85, 25, 3,113, 23, 83,138, 73, 85, 31,237,239,231, 82,212,172,235,210,197,157,157,231,110,221,124,250,214,205,207,124,242, + 51, 55,159,190,149,250, 84,204,166,213,180,127,184,175, 85,250,229,166, 2,222,127,255,131,205,243,151,215,235,211,111,254,197, +159, 61,188,119, 47,215,240,212, 75,159,251,212,167, 63, 27, 98, 56, 57, 57, 57, 61, 57,218,189,123,231,173,183,222,122,253,221, +247,246,143,143,166,154,115,206, 7,143,119,183, 54, 22,165, 86,100, 38,164,173,173,173, 71, 71, 39,204, 20, 42, 68,138,163,101, +255,150, 82,104, 32, 38, 81, 43,181,228,154, 99, 76,171,169, 46, 7, 70, 36, 5, 68, 14,203,190, 19, 83, 3,255,139, 48, 14, 64, + 66, 2,192, 10,203,110,113,202,167,185,120, 24, 3, 9, 67,151, 12,193,138, 8,152,221,188,121, 29,152, 85,229,228,248, 52,117, +195,198,246,230,202, 22,167,185,174,215, 99, 63, 12, 59, 91, 91,251,251,187,139,110,168,165,148, 88,134,110,216, 88,110,189,240, +236,179,223,252,238,247,242,148,193,176,239,250, 82, 4,137,200,154,213,137,252,193, 51, 16, 53, 21, 5, 53, 10, 36, 89,134, 62, +173, 86, 35, 2, 38,142, 99,201,137, 73,114,169,162,136, 32, 96,243,196,104,234,200, 61, 50,173, 78,191,182, 10, 0,222,160,134, +128,136, 99,201,227,148,185,239, 87,211,116,114, 58,114,224,245, 52,238,238,203, 88, 13, 9,157,188, 8, 58,155, 67, 90,187,131, +122,173, 50,154, 97, 84, 82,175, 19,109, 88,119,247,236,159,142,171, 69,159,136,217, 20, 48,180, 10, 38,240,148,134,146, 33,121, + 29, 19, 4, 91, 79,197,251,160, 19, 33,128,121, 95,121, 45,106, 96, 72,152,136, 68, 32, 4, 32,107,212,120, 85, 45, 34, 6,202, + 16, 26, 57,157,200,192,136,130,230,214,154,233, 53, 93,129, 73,196,102,216, 82,147, 49,219,103, 9,136,170, 30,133, 53, 49, 5, + 64, 54, 99,212,170,142,209, 7,195,153,166,173, 2,144,152, 65,132,192,140,200,181, 21, 83, 32, 68,101,242, 24, 21,184,177,218, +107,164,145,154,150,224, 34, 60, 0, 34, 8,104,128,128, 0, 12,192,212,108, 21,179, 73,186, 17, 97, 61, 70, 32, 96, 80,197,131, +233,166, 82, 85, 20, 72,153,102,227, 53,154, 25, 49,171,154, 48,165, 16,106, 45,129,189, 45, 4,137,130,155,117,221, 12, 2, 0, +162, 80, 68,160,148, 85, 21, 3,228,192, 17, 48,164, 20,188,237,135,200, 43,207,250, 46,116,177, 15,140,204,236, 21, 17, 69,181, + 15,241,116,181,186,247, 96,111,177,236, 23, 93, 55,120, 8, 43,165, 97,185, 12, 33,109,108, 44,186,110,209,197, 33,116, 97,216, +232,145, 34, 18, 16, 32, 6,234,210,240,138,232, 47,214,124,124,116,116,122,122,242,240,241,238,163,221,189,123, 15,239,223,127, +244,104,247,209,254,241,233,169,152,228,226,110, 37,194,166, 15, 55,108,187,203, 22, 31,201,215, 86, 93,136, 80, 69, 17, 1,246, +208, 15,162,143,227,234, 55, 47,183,160, 16,225,220, 12,228, 84,122, 64, 69,191, 48, 33, 32,105,109, 27, 22, 51, 69, 99,161, 74, +129, 33,207,240,225, 38,142, 32, 24,144,145, 89, 5,176,216,113,235,125, 50, 35, 95,242,138, 48,176,239,219,180,121, 33,205,204, + 2,121, 99,224,204,181, 62,163,152, 57,242,161, 89,101,230,173,250, 89,187, 30,186, 92,101,106, 10,200,216,168, 82,106, 64, 72, + 30,175,105, 56, 1,105, 13,136,142,249,157,243,200,166, 2,212,140,165,132,145,187,222, 97,111, 20,135, 58,174, 64,213,130,192, + 71,114,144,183,166,159, 97,152,173,223, 60,247,236,179, 79,255,209,159,125, 39, 34,230, 90,166, 41,175,242,158,152,118, 49, 2, +218,193,209,106,204,121,204,213, 7,127,246,223, 17,193, 88,115, 21, 93,244, 61, 3,137,234,225,201,169,104, 61,183,181,249,226, +205,235,207, 61,251,220,203, 47,189,248,212,199,158,222,217, 62,199, 49, 18,197, 92,166,211,131,131, 90, 42, 35,244,203,205,227, +195,189,213,209, 81,236,187,245,233,241,234,232,240, 47,190,254,181,135,123,167, 79,221,250,248,103, 63,249,202,229,171, 87,180, +148,195,189,199, 39, 71,123,247, 63,184,243,250,155,111,189,119,255,254,106,189,158,166, 92,214,171,142, 3, 24, 16, 49, 51, 67, + 41, 85,100,174,108, 86, 3, 8,228, 93, 87,160,214,118, 97,162, 21, 25,167, 49,151, 90, 77,211, 88,242,114, 57, 48,128,136,136, +106,100, 14, 20,192,128, 3,250, 34, 62,112, 12, 64,165,148,192,204, 33,154, 76,202,164, 38, 41, 80, 12, 72, 72,104,214,247,221, +173,155, 79, 2, 19, 25,158,174, 86,139,205,205,126,177, 44, 43,235, 88,175, 94,189,190,216,220, 89,110,110,191,127,247,253, 29, +201, 54, 66,225,152, 56, 4,230, 27, 87,174, 93,189,252,193, 59,239,191,111, 49, 33, 96,150,156,136, 38, 51,118,204,128,128,131, + 33, 43,129,138,230, 60,161,104,138, 41, 16,134, 64,109, 97, 9, 64,136,130, 24,252,203,210, 70, 73, 83, 5, 83, 80, 18, 51, 46, + 42, 0,182,104,133,234,218,130,181, 8, 36,118,178,158,138,143,123,140, 0, 32,170,199,211,218,249,138,126,248, 18, 35, 43,206, +194, 94,235,133, 86, 0, 67, 72,126,211,116,239, 45, 97, 96, 80, 63, 89, 16, 68, 13,205, 98, 64, 51, 8,236,105,219, 80,173,136, + 74,138, 44,134,213,193, 15,238, 57, 65, 82, 39, 60,169,115,228,155, 28,132, 76, 56,195,117,136, 2, 81,105,119, 98, 55,127, 25, +145,161,137, 50,162,170, 22,169, 49, 4,247,222,160,130,231,212,129, 19,149,181, 52,128, 95, 59, 79, 85,221,242,172,224,183,126, + 53,171,146, 33, 19,147,123,172, 26,179,219, 20, 48,186,129,116,222, 71,180,254,132,102, 77,214, 54, 93, 82, 96, 45, 5,196,113, + 33,228, 40, 24,117, 25,118,102,255, 21, 85,102,178,143, 82, 60,174, 46,195,220, 61, 11, 16,253,134,174, 28, 8,170, 49,218,186, + 26,184,133,217,183,228,170,110, 54,244,229,191, 19,170, 13, 64,212,237, 43, 13, 92,228, 88, 72, 1, 33,135, 72,160, 2, 82, 10, + 88,205,220,195, 87,179,151, 44,219,186, 86, 38,204, 85, 85, 37,134,144,186,212,197,216,197, 16, 83, 66,131,190,227,253,227,163, + 46,198, 52,116, 29,115,223,245,125,159, 82,136, 27,139, 97, 72,221,114,232,251,190,239, 98,183,216, 88,196,148,250,174,143,169, +139, 93,191,185,185, 81,115, 53,192, 16,195,114,251,220,230,185, 11,215,158,188,165,181,138,212,113, 28,143,142, 15,247,247,247, +247, 15, 14, 15,142,246,119,119, 31, 98,191,121,120,188, 70,176, 16,152,153, 28, 91,211, 28,101,141, 29, 22, 28,235,142, 40, 70, +174, 73, 43,216, 44,226, 32,152, 17,181,180, 65,235,101,163, 70,241,194,134, 19,243, 22, 60, 85, 66, 18, 84, 4, 67,140, 70,134, + 76,132, 84,161, 54, 3,142, 53, 60,229, 25,185,161, 57,246,253, 96, 3, 49, 48, 98,140, 20,164,170, 2, 48, 32, 18, 5, 34, 21, + 65,166,208, 98,194, 38, 54,163,115,220, 51,237,135,126,179, 43,254,120,223, 96, 91, 83, 17,124,180, 61,248,104, 42,104,177, 44, + 59,107,228,112,199,100, 64,146, 89,194, 98, 48,109, 65, 14, 64, 52,197,192,196, 4, 34, 24, 98,236, 7, 45, 89,107, 54, 32, 5, + 65,199,141,249,114,164, 58,223, 16, 9,169, 27,134, 11, 59, 23, 98,236,151,139,197,149, 33,109,116, 49, 79,101,148,188, 26,235, +123,119, 63, 16,145, 46,112,100,246, 82,217,192, 76, 33,212, 92,142,199,124,186,158, 96,140,145,124, 70,241, 9, 0, 0, 32, 0, + 73, 68, 65, 84,233,242,249,229, 75,207, 61,245,249,207,125,238,147,159,250,204,133, 11, 23,185, 11,136,193,204,114,201,164,128, +108,134,150, 87, 99, 72, 41, 12,221,193,238,131,216, 15, 93,138,239,191,247,222, 95,191,254, 67, 93,143,213,250, 87,255,198, 23, +158,125,254, 5,238,120,125,116,116,116,176,127,184,255,248,221,247,222,121,247,253, 59,251,199, 39,121, 42, 82,202, 56,174, 8, + 20, 9, 82,224,200,212, 7, 94,137,157, 73,165,162, 80,139,204,150,126, 64, 0, 98,116,195, 25, 33, 2,210, 60, 15, 58, 15, 67, +205,205,181, 0, 28, 8,157, 71,130, 4, 64,160,158,138,131, 16, 40,198,128,140, 0,204,142,117, 70, 52, 0, 5,221, 26,134, 39, +206, 95,208,170, 38,120,114,124, 60,108, 44, 98, 76,108,143,233,248,136, 48,254,201,239,253,239,180, 62, 90,244,189,170, 89,208, + 41,143,204, 33,133,180, 88, 44, 95,124,238,227,183,239,221,171,181, 34, 35, 1, 36, 14,185, 86, 21, 21,239,124, 0, 27, 82,152, + 86,133, 16, 2,113,198,194,104,129, 83,138, 82, 1,179,151,107,136, 3, 91,216, 7, 13,155,241,239,216, 38,111,119,229, 98,253, +136,147,126,230, 30,161,169, 86, 47, 73,240,149, 14, 51,129, 18, 5, 58, 89,175, 87,171,156,186, 48,191, 68,218,178,255,172, 84, +217, 76, 75, 21, 16, 83, 2,149, 51, 11, 24, 68, 78,203,110,225,219,165,172, 22,208, 16, 24, 68, 25,131, 89, 14,115, 0,157, 1, +181, 10, 6, 79,149, 66, 8,172,181, 34,179, 2,136, 25, 59, 81, 67,212,189, 38, 85,196,157,112,206,232,243,218, 11, 98,247,226, + 33,114,152, 74, 65, 0,102, 18,105,208,226,162,181, 84, 81, 45, 56,127, 67, 60,230,205, 8, 0, 22,128,156,186, 80, 84, 1, 13, +153,252, 68,175, 38,140,108,109,183,142,162,170, 89,176, 65,182, 1, 12, 74, 41, 4, 32,164,196,172,181, 17,230,231,130, 19,108, +133,232, 31, 85,228, 72,104,142,127, 72, 68, 76, 92,154,247,200,121,226, 51, 82, 4,144, 61,199,211,176, 11, 8, 45,123,196,117, +173, 72,140, 10,226,110, 40, 17, 39,185,231, 82,218,201,101,192, 12, 96, 86, 12, 52,215, 90, 4, 9,202,172,236,139,129, 9, 9, + 40, 53,110,163,187, 69, 5, 49, 17, 3,136,248,211,158,139, 20,209, 34, 58, 81, 94, 14,139, 40, 58,149,146,214, 33, 48,187, 50, + 17, 3,197, 20,186, 24, 83,136, 30,194,234, 82, 26,186,174,139,161,239,135,161, 31,250, 46,110, 44, 23,195,208,111, 46, 54, 66, +234, 66,228,161, 31, 82, 26, 66,138, 93,191, 96, 14,169,235, 54,134,197,198,185,243,151,175,220, 80,201,160, 54,214, 58,141,235, + 7,251, 43, 1, 69,212,104,171,229, 16, 83,196, 46, 68, 10, 24, 8, 84, 81,124, 53,217, 74, 95,125,250, 36,115,132,128, 79,190, + 0,170, 78,188,157,115, 76,224, 93,118,164, 34,126, 82, 34, 6,195, 98, 96, 76, 84, 69,144,140,128,180,152, 56, 80,167,122,207, +163,249,243,214,108,252, 30, 70, 53, 99,102,213,230, 58,246,153,155, 24, 77, 26,100,173,148, 66, 8, 38, 16, 0,205,164, 52, 30, +153,219,166, 4, 40,204, 85,184, 28, 64,218,209,143,179,231,221, 37, 54,215, 76,188,160,206,128, 77, 5,145,193,140,168,209,224, + 41, 18, 33,214,226, 10, 59,250, 29, 4, 65, 90,248,101, 54,227,104, 45, 0, 29, 14, 29, 99, 66,107,247, 93, 3,241,203, 17,250, + 13, 88,221,203,213, 58,166,191,243,245, 63,254, 39,255,219, 63,255, 96,239,120,209,199,190, 31,182, 55, 23,125,140,162,117,255, +240,120,181, 94,249, 37,177,133, 97, 5,114,173,117, 53, 78, 83, 57, 93,175,171, 64,223,197,223,254,207,254,246,151,191,244,133, +237,243, 23,185,235,215,167,167,211, 56,214,169, 96, 0, 98, 98, 12,128,160,117,170,181,164,229, 50,246,195,222,253,123, 91,231, + 46, 20,149,175,127,253, 79,198,211,147,211,211, 92,113,249,202, 23, 63,123,229,202, 53,131,122,116,112,124,116,240,248,195,247, +239,220,253,224,206,155,239,127, 0, 2, 67,162,213,241, 88,107, 61, 61,205, 27,125, 56, 29,215,185, 10, 24, 22, 67,138, 28, 99, +152,114,110, 17, 1, 39,216,182,173, 23,184, 0,114,182,153,142, 33,136,170,154, 33,177, 58,170,199, 4,209,136,208,225,203,196, +164, 0, 20,121,145,186,147,211,245, 56,142,193,209, 87, 6,238,181, 5, 69, 32, 20,160,107, 23, 47,158,223,217,230, 16,179,148, +113,156,128, 8, 57,112,234,227,144,167,147,227,144, 15,111, 92,222, 1,182,135, 7, 71,129, 67, 45,181,134, 41, 32, 83, 76, 87, +175, 92,254,212, 11, 47,188,249,238,187,196, 0,102, 49,242, 98, 24, 20,237,232,248,100, 42, 18, 41, 4, 74,219, 11, 50,196,170, + 26, 66, 36, 0, 53, 75, 33, 5, 67, 1, 67, 9,100,234,183, 46, 6, 40, 98,103, 81,106, 59,219,216, 56, 70, 64,181,182,193,160, +165, 36, 16, 77, 76,146, 49, 32,154, 87,189, 35,100,173,137,162,153, 26, 9, 26,131,170, 17,219,204,167, 6, 3,242, 53, 63,243, +114, 99,227,224,232,144, 17,144, 64,197,103,198,112, 86,243, 8, 8, 37,103, 69,234,135,174,102,169, 82,204,212, 20, 74,206,234, +121,116, 2, 84, 82,109,213,196,128, 64,106,171, 41, 99,128,200, 9,152,165, 72,223,241,148, 53,198, 88, 69,156,129, 32, 13, 38, +131,193, 25,168, 98,142,142,226, 64, 17, 81, 12, 85, 0, 64, 3,114, 5,173,106, 78,120, 85,171,168,209, 12, 74, 21,117,174,121, + 53, 0, 76, 72,147, 40,134, 16,124,208, 5, 86, 53, 86,169, 14,155,103, 53, 0, 32, 7,112, 10, 26,136,148,158,147, 81,176, 70, + 54, 52, 4,159, 38, 28,119,166,228,122,171,218,143,117,216,121,188,172,101,125,221,225,102,179, 81, 14, 26,174,167, 69,229, 67, + 72, 51,226, 79, 83, 12, 49,176, 95,233,189,196,195, 91, 79, 13, 64, 85, 9,168, 50,138, 65,154,239, 1, 78,143, 10, 76, 69, 20, +196,136,221, 99,225,130, 20, 40,130,170, 17,161, 26,154, 21,117,199, 54, 57, 3, 94, 17, 3, 0,138, 26,177, 17,154, 86, 85, 50, + 13, 52,173,166,169, 78,206,102, 88, 14,131, 2,214, 34, 67, 23, 98,140, 93, 74, 49,112,100,238, 83, 74, 41,246,125, 55, 12,253, +198, 98, 99,209,197,190,235,151,139, 97, 99,185, 57,244, 41,164, 52,244, 67, 23, 83,236,251,174,139, 28,250, 16, 34, 49, 15,203, + 97,177, 92,218, 5, 43,181, 74,214,211,233,244,184,200,116,184, 98,172,129,172, 75, 76,104, 41, 80, 0, 8,193, 2,161, 2,163, +136,187,104, 85, 42,152, 63,173,174,206,179,169,205,182, 25, 66, 82, 40,254,140, 59,207,178, 52,184, 37,160, 47,114,125, 91,219, +162,235,124, 86, 60,101, 20, 72,205, 64,218,246,141, 40, 52,114,157, 49,153, 99,201,218,137,215, 18,174,110,200, 7, 11,190,212, +117,137,199,107, 71,126, 44, 60,130, 42,245,172,213, 9,200, 95,249,190, 5,118, 77,161,189,146, 64, 60, 8,127,150,199, 5, 1, + 72,203,142, 82,210, 71,135, 31,197,161,156,207,143, 60,247,122,184,226, 35,150, 43, 45, 55, 67, 72, 82, 39,205,197,196,165,127, + 68, 48,213,218,186, 83,196,186,197,178,172, 79,254,213,239,254,222,159,252,249, 55,223,120,255, 94, 8,233,250,133,115, 67,207, +187,123,143,214, 83, 77, 41,113,160, 24, 34, 1,100,147, 44,181, 78, 53, 4,222, 30,250, 7, 7,107, 5, 74,221, 48,112,248,123, +255,241,111,254,230,111,254,135, 39, 99, 62,157, 38, 91,143,181,102, 4, 98,138,104, 8,130, 2, 21,212, 56,134,245,225, 94,183, +220, 62,125,120, 63,198,240,206,219,111,188,241,195, 31,140,171, 41,246, 91,151,175,223,122,230,185,231,187,110,200,227,250,244, +244,104,239,193,253, 59,183,223,189,125,247,222,238,227,199, 23, 46,236,252,242,151,191,120,184,247,240,159,253,203, 63,150, 22, +119,103,191,161, 3,129,204, 8,105, 63,238, 17,177,235,152,155,105,205, 98,160,234,121, 22,175,190, 33, 66,162, 34,210,224,213, +237, 44,244,240, 46, 48,130,170, 56,195,107, 42, 82, 72,151, 67, 7,132,165, 40, 52,246,121, 11,239, 40, 40,170, 94,127,226,210, +176, 88, 2,112,169, 39,235, 60,185,121,137, 57, 46,150, 27,235,245,234,217, 23,158,123,231,173,119,158,121,234,169,189,147,215, +196, 52, 49, 77, 37,135, 16, 82,133, 62,245,159,124,241,229,156,203,131,199,143, 17, 3, 34, 86,173, 93, 76, 23,182,183,198, 90, +199,245, 58, 75, 97, 36,119,242, 32, 98, 35, 5, 17,110,117,139,163,113,157,157,148, 81, 52, 48, 86, 5,102,211,218,158,152, 24, +147,255, 97, 34,243,164, 69,213,220, 10,233, 16, 68, 4,164, 64,226, 55,133, 51, 59,151,226, 56, 21,167,180,183, 64, 3,243, 92, + 12, 65,160,154,107,113,110,177, 84, 89,141,167, 45, 11, 46,149, 17, 77, 8, 16, 68,140, 25, 66,224,128,152, 11, 24, 88, 45,162, +106, 82,213, 11,175,252,227,102, 34,169, 16, 2,120,139,152,169,137, 89, 8,205, 1, 15,140, 86, 4, 25, 69, 32, 75,217, 14,132, + 8, 35,181,110, 73, 96,215,143,177,148, 98,104, 6,148, 2,213,138, 58,151, 32,128, 66,136,113, 90,157,142, 37,119,204, 51, 64, +219,175, 32,104, 85, 49,249, 9,172,196,104, 85,129,180, 84,224,192,102, 38, 82,115, 21, 55,211,177, 18, 2,155,170,129,154,106, + 98, 54,138,226, 62, 59,153, 41,232, 6,128, 26, 17,149,168, 74,235, 66, 6, 80,155,193,181,224,140,243, 86,155, 77, 74,134,115, + 6,199,124,231,235, 95,117,228, 64,168,222,249,192,205, 13, 29, 56,148, 90,141,176,168, 85,133, 24,217,239, 90,204,232, 94, 88, +149,106,192, 70,205,253,205, 72, 4, 20,129,178,170, 18,249, 75,148, 42,198,192, 42, 85,196,140, 80,196, 2,187,133,202, 39,128, +179,151,141, 33,128,138, 82,236, 1, 10,113, 3, 24, 6,102, 85, 53, 83,169,146, 69, 15,142,143, 3,211,162,239, 2,115,145,202, +196, 93, 8, 33,134, 24, 99,223,167,101,215,167, 46, 49,113,159, 82,223, 58, 78,226,214,114, 57, 12,253,114, 88, 14,139,190,239, +250,141,197,178,235,251,152,186, 20, 35,167, 62,198, 46, 48,239,108,108, 2,162,200, 54, 0, 86,209,146,203, 84,166,147,117, 70, + 19, 21,141,164,129, 17,161,166, 0, 12, 76,224, 55, 11,100, 12, 4, 34,160, 0,232, 73, 14, 5, 53,191,236, 1, 32, 96, 45,202, +158,160,101, 86,135,109, 32, 3,212,118, 19, 21,109,189,211, 1,139, 2,250,192, 79, 72,110,160,243, 73,170,153, 12,145, 61,199, +174,224,179,181,223, 42, 60, 31, 23,126,124,159,226,179, 82,243,235,195, 89,161,161,157,225,225,177,149,192,105,123, 28, 63,202, + 93, 0,249,123,218, 35,209, 98,132,152, 87, 25, 86, 69,177, 81,213,154,162, 32, 45,166,217,206,108, 83, 0,168, 83,134,184,158, +100,146,113,173,146,141, 0,129,193, 23,173,102, 0, 12,148, 22, 27,139, 58, 30,255,238,191,248,231,191,255,245,111,223,223,125, +244,228,149, 75, 87,207,157, 83,162,191,251,159,254, 39,122,248,224,247,254,240, 15,127,248,206,135, 53, 67, 45,202,140, 12,112, + 97,123,249,241,231,158,121,229,211,175,188,244,242,203, 95,251,131,127,245, 59,255,215,159, 46, 22,139,197,114,241,179, 95,249, +153,195,227,163,169, 40,130, 6,198,237,157, 29,173,178, 30,215, 90,107,173, 37,164,168, 98,199, 71,135,181, 76,125,205,143,247, + 31,223,187,115,103,117,114, 20, 49,225,246,185,143, 61,247,210,197,139, 23,145,104,117,122,116,184,247,232,238, 7,119,222,185, +243,222,189, 7,187, 99, 41, 95,248,220,167,127,246,167, 94,125,226,242,133,175,126,245,171,134,152,124, 86, 36,208, 42, 76,196, +110, 90, 7,231,245, 75,203,143,207,165, 98, 42,128, 64, 41, 80, 0,118,174, 3, 49, 70,226,117,173,244,145,169,180,137, 26,158, +130, 39, 98, 81, 3,130,192, 92, 74,166,212,153,128,168, 34,145,103, 36, 35,205, 17, 74,132,103,159,190,153,186,142, 67, 24,167, +105, 53,174,201,147, 21, 72, 16,121, 88, 12,100,112,237,169, 27,111,252,232,205,203, 91,155,247, 14,142,186, 5, 33, 96,174,165, +235,122,100,234,251,238,229,231, 95,122,248,237,111, 0, 97, 8,193, 12,198, 60,109, 44,150, 9, 33,103, 46, 42, 33,134, 64, 84, +196, 84, 37, 49, 3, 34, 41, 12,125,199,132,235,113,116,204,104,187,233,213,179, 10, 6, 21,169,134, 24, 76,153,153, 77,209, 95, +131, 70,232, 70, 99, 68, 2, 71,235,121, 57,152,170,138,197, 96, 42,243, 42, 10, 25, 60, 15, 98, 4, 8,106, 76,220, 69, 20, 17, +151,114, 24, 40,144, 91, 29, 0,136,141, 10, 54, 62, 27,149, 82, 67, 12,102, 86,155, 69,193, 16,160,138,197, 72, 14,253,225,200, +193,247,215,134,102, 80,197, 84, 84,201, 8, 64, 21,173, 42, 7, 42, 5,138, 84, 52, 44, 69,192, 32,113,168,156, 85, 17, 20, 24, + 13,145,156,201, 14, 6,162,202,204,173, 50, 4, 17,136,178, 72, 41, 5,206,112, 82, 51,105, 91, 93,181,182,182, 11, 3, 38, 3, + 9,196, 98,213,185,208,162,162,166, 82, 21, 0, 42, 88,136, 0,132, 80, 27, 80,176,197, 88, 68,146,251,246,154, 3,143, 16,200, + 64,208, 67,195,115,131,181, 41, 40,250,250,167,109, 0,213,144,180,253, 76,223, 82,179, 2, 2,198, 0, 62, 48, 82, 96, 6,204, + 42, 96, 38, 34,213, 0, 56,200, 56,249,197,159, 80, 3, 55,194, 41, 19, 86,169, 85,180, 75, 4, 6,206,143,137, 41,168, 1, 6, +244,152, 76,195,178, 83,131,254,180,158, 44, 70,102, 34, 51,113, 49,246, 44, 85, 67, 13,189, 76, 14,240,111,155, 29,159,135,149, +208, 87,130, 54,247,131,130, 34, 76, 99, 1,203,107, 64, 12,206,105,212,190,239,134,126,240,237,151,147,241, 67, 8, 93, 8, 41, +121,182, 54, 13, 67, 90,246,195,230,230,198, 48,116, 27,253,114,177,232, 67,136, 33, 82,138, 67,236, 98,215, 59,165, 34, 14, 67, +183, 92,110, 35, 50, 82,144, 50, 22, 17,171, 50,150,241,184,228,105, 26, 29, 19, 23, 73,186,200, 41, 2,145, 5,162, 64, 32, 82, +124,155,104, 6, 94, 4,198,132,160,100,100, 90,107, 51,197,107,171,243, 64, 67,116, 11,141, 35, 3, 20, 5,209,179, 90,214, 32, +148,142,105,129,121,187, 47,132,200, 1, 76,156, 63, 8, 38, 18, 40, 32, 67, 0, 51,138,140,181, 45, 93, 0, 20,136,144,192,155, + 43, 85,219, 11,216, 31,186,217,158,239,221,194,243,171,105, 94,188, 54,245,198,171,254,128, 65,180, 89, 34,129, 0,213, 13,181, +224, 94, 76,192,179,254, 64, 3, 83,168,117,125, 10,106,134, 98,173, 48,170,130, 54,242,188,106,237,135,205, 59,111,254,232,119, +126,231,159,124,239,245,183,158,122,242,234,111,255,194,111, 97, 89,255,213,155,183,127,229,215,126,253,197, 23, 62,206,225,147, + 31,127,229, 39,111,191,249,218,201,193,241,122, 28,179,212,237,157,115,183,158,123, 97,231,220,185,106,134, 72,191,242,171,191, +252,151,223,251,193,107,239,239,165,190,207, 57,199,116, 65,117, 84, 51,205,229, 95,252,254,255,253,236,115,207,191,244,194,173, +131,131,227,197,214, 14,167,248,240,246, 59, 59, 23,174, 96, 56,247,253,191,248,250,238,195,187,169,235, 67,218,216,216,185,126, +253,230,173,141,205, 69,158,198,253,189, 71,187,247,239,190,251,214,155, 31,220,191,187,127,188, 58,191,179,241,247,255,214,175, + 62,243,244,211, 83,206,121, 42,227, 52, 25,114, 76,168,160, 96, 54,141,217,123, 56, 75,206,129, 90, 70,128,145,152,112,156,154, +129, 34, 50,133,200, 72, 28, 18,139, 24, 34, 34, 82, 85,143, 76,183,207,160,249,144,192, 35, 47,115,150, 29,140,137,187, 20,213, + 12, 24,106,173,126,102, 4, 38, 17, 1, 11,165, 26, 1, 62,113,241, 98, 26, 6,128,224,165, 43,226, 68, 42, 4,164, 46,117,253, +201,225,254,229,243, 23,118, 47, 62,188,254,196,181,227,215,254,250,100, 61,110, 14,139,105,189, 74, 49,109,198, 24, 67,186,252, +196,249,171,151,158,120,244,120,223,196, 60,236,105,166, 33,196, 20,226,209,170,244, 1, 13,136, 35,104, 49,245, 71, 4, 96,170, + 83, 31, 82, 23, 35, 48, 69,211,140, 12, 80,207, 34,207,158,123,149,106,150,130, 35, 50,201,188,208,238,163,174,221,179, 55, 96, +155,108,137, 93, 14, 78,196,110,169, 60,235,107,112,155, 54,162, 49,160, 17, 33, 3,136,170,104, 43,253, 48, 83,169,168, 58,215, +232, 40, 0,213,246, 52, 27,128,198, 64, 38,140,156,189,111, 47,134, 96, 94,155,224, 55, 81, 49, 13,134,132,126,248, 34,129,170, + 41,180,208,122, 8,140, 8,185, 10, 16, 17,113,151,226,170, 28, 85, 64,209, 82,107,112,100, 68,235,174,119, 75,107, 81, 96,212, +154,205,128,153, 60,133,164,230,110, 71, 84, 19,255, 77, 53,154, 92, 51,174, 0,121, 81, 23, 65, 12, 92, 49, 16, 3,122,221,132, + 2,205,221, 56, 2, 72,158, 68, 71,223,145,178,153,128, 26, 50, 97,109, 20,147, 54, 43, 56,223, 48,251,118, 22, 65, 45, 6, 36, + 67, 85,209,217,191,224, 5,135, 24, 60,223,101,236, 59, 0, 53,138, 12, 80,137, 41, 79,197, 68,196, 45,170, 51,183,146,136, 9, +160,138, 68,142,168, 10,103,211, 31, 57, 77, 22, 69,107,201, 10,228, 46,192,150, 89,156, 11,189, 92,179, 64, 0,168,214,204,209, +158,128, 86, 51,171,198, 78,214, 69,240, 48, 67, 34,133, 0, 30, 3, 50, 49,140, 6, 77,239, 68, 81, 97,114,137,207,207, 25, 64, +130,170, 42, 85, 78, 78, 87, 68,148,107,206, 85, 35,113, 63,116,151,206,109, 33,176,128,197, 64,145, 99,140, 33,133,212,199, 24, +187,180,236,251,237,205,173,229, 70, 63,196,142, 3, 35, 66,228,216, 47,210,178, 95,246,139,126, 88,116, 41, 45, 23,139,205,148, +122, 94, 14, 75,221, 70,132,170, 57,231, 98, 85,199,156, 75,205, 39, 99,145, 50,197, 72, 68, 18, 48, 37,200,204,254, 7, 33, 13, +168, 89,208,154,175,169,129,230,164, 69,158, 68,149,144,188,207,171,149,224, 57, 54, 1,154,149,211,204,206, 18,166,109, 4,242, + 93, 41,182, 34, 17, 23,111, 81, 41,168, 87,125,160,255,186,194,254, 41,214,150, 29,197, 25, 91,216, 32,144,243,187,125,110,183, +108,149, 86,115, 60,206, 87,178,132,238,134, 52,108, 47, 19,152,205,252, 60,199,154,170,156,109,131, 1, 16, 60, 99,210,194,138, +132, 40, 14,200,157,123, 92, 8, 1,203,250, 56,245,241,191,254, 7,255,197,173,171,151,239,222,187,247,228,211,207,253,194,175, +157,239,134,110, 92,175,213, 86,204,233,233,151, 62, 27,157,173, 8,102,138,162,117, 53, 77, 82, 11, 17,109, 93,185,245, 15,254, +243,191,243,223,252,247,255,227,233,234,244,255,253,227, 63,253,236, 39, 95, 42,130,159,251,220,103, 36,223,251,199,255,244,159, +246, 59,151,255,167,255,225,191, 91,110,109,173, 87,167,135,239,221,223,190,244,196,219,111,191,254,163,127,251, 29,102,190,112, +254, 34,198,157,107, 79, 63,191,177,185,137, 96, 7,251,123, 7,251,143,239,222,121,239,237,247,222,185,247,112, 87, 84, 94,125, +229,147,127,243,103, 94,221,216,220, 90, 79,197,212, 44,161,168, 34, 64,136,140,128, 82,235,106, 53,213,118,238, 89, 8,196, 68, + 69, 20, 8, 57,132,144,170, 19, 5,129,177,148, 42,110, 51,197,214,199, 85,205,205, 3,142,140, 80, 5, 19, 80, 16, 52,160, 92, + 74,149,138,216, 57, 11,105, 72,105,204, 18, 56, 0,130,152, 36,138,236,145, 52,194, 44,229,252,246,206,205,235,215, 49, 68, 35, +242,121,149,137, 0, 8,144, 17, 45,164,190, 31,134,227,189,189, 39,175,221,184,127,255,193, 79,188,244,241, 63,249,246,247,106, + 21, 99, 90,175, 87,139,126, 48, 3, 19,252,204, 39, 62,241,198, 59,111, 3, 40, 65,244, 45,110, 36, 90, 19, 45,187,164, 42,235, +177, 50, 3, 83,224,192,101, 42, 28, 89,115,181, 62,244,125,183, 90, 77, 14,200,117, 82, 47,153,103,107,124,156, 0, 48, 99, 10, + 49, 4,127, 13,183, 64,135,129,154, 34, 82,138,129,145,138, 8, 32,170, 88,129, 26, 2,197, 46,194,169, 87,120,205, 17,144,185, +212, 91,125,152, 48, 36,192, 82,179, 9, 24, 65,160,160,104, 21, 49, 48, 57,102,151, 16, 34, 81, 49,245,174, 15, 19,169, 82,217, + 67, 32, 64, 98, 42, 34,179, 82,239,100,142,143,186, 99, 77, 13, 2, 4,223, 55, 68,102,230, 42,165,170,106, 85, 1, 68,173, 4, +172,162,162, 21, 12, 8, 65, 90,234, 16,173,168, 21, 53, 50, 96, 38, 14, 63, 6, 88,242, 36, 3,144, 59, 60, 17,193,196, 9, 31, +170,138,128,165,138,235,117,165,228, 90,164,148, 60,229, 9, 48, 32,182,214, 89,108,162,138,123,215, 12, 69, 20, 98, 35,135, 96, +115,196,129,153,137, 90,160,102, 90, 51,210,179,148, 13,145, 10, 84, 80, 81,117, 0,149, 57,181, 6,140,252, 31,157,213, 90, 48, +166,198,171, 51,132,192, 44, 50, 19,148, 1, 65,161,138,132, 24, 92,208, 71, 34, 7,110,183,242, 57,103, 99,182,208, 2, 55,254, + 56, 16,162,162, 42,152, 19,244, 76,171,112,138,238,181, 63,235,144,240,151, 56, 49, 19,133,162,170,106,165,136, 74,145, 86,188, +225,230, 90,109,233, 47,104, 8, 73,231, 46, 82,211, 32, 56,144,231,129, 49,197, 40,106, 1, 39, 36,132,170, 0, 84, 76,173,202, + 56,214, 72, 4,136, 83, 41,155, 41,254,250, 87, 62,151, 49,221,125,240,120,255,160, 76, 66,102,150,186, 20, 57,116, 33,118, 41, + 12, 67,223,245,221, 34,166,229,114, 99, 88, 14,142,200, 31,150,155,129, 83,215,247, 41,198,174,219,100, 14, 64, 40, 34, 42, 90, +107, 45,181, 20,201,171,156, 81, 4, 64, 8, 20, 13, 9,148,164, 32,149,198, 45,168,138, 72,100, 6, 4, 34,218,162,163,190,180, +213, 51,129,254,172,107,188, 77, 27,230,109,213, 32,179, 17, 1, 12,140,220,118,105, 18, 60,209,214,100, 76, 36,243, 48,147, 57, + 89,179,133, 85,189,182, 4,129,253,252,118,138, 72, 43, 74,161,134,158, 60, 75,132,159, 21,188, 54,195,101,107,150,247, 34, 10, + 3, 32, 19,223,156,180,222,173,185,175,182,109, 22,253, 91, 1, 30,216,111, 96, 32,155,214,171,103, 94,126,245,191,125,225,149, +191,126,237, 7,247,119,247, 95,254,244, 79,110, 44,135,170, 50,142,147,183, 18, 87, 44, 58,213, 2,100,166,200, 33,116, 61, 96, +226,224,206,127, 57, 62, 58,124,230,149, 47,253,214, 47,127,247, 31,253,238,159,255,254, 31,253,241, 31,126,245, 15,179,216,171, +159,127,245, 23,191,252,234,149, 39, 46,221,123,116,244,143,255,217,255,249, 91,191,254,139, 23,111, 60,253,232,254,251,223,253, +203, 63,189,255,225,189, 39, 46, 95,234,250,115,221,246,149, 75, 79, 92,235,250,174,150,114,240,248,193,189,123,239,223,190,253, +222,238,227,199,123,135, 39,215, 46, 95,248,229,159,251,210,179, 31,187, 89,170,230,162, 78,196, 68,179, 82,106, 10,148,115, 77, + 41, 36,194,172,245,172,101, 48, 48, 25, 88, 41,237,238,201,173, 65, 17,180,150, 24, 67, 3,255,155, 34, 82, 23, 66, 36, 86,212, + 62,244,129, 99,169, 83,104, 95, 16, 99, 4,171,194,205,160,107,102, 54,149, 82, 69,137, 33,133,120,108,107, 5, 19,149, 62, 6, + 38, 86,213,203, 23,207,159, 63,183, 35, 83, 33, 2,198, 48,229,105,115,103,203, 84, 65, 77, 16, 8,121,216,216,180, 90,203, 84, +164,212,229,230,198,243,183,110,190,115,251,195,197, 98, 89, 76, 79, 86,171, 24, 34, 18,239,108,109,253,244,171,159,255,198, 55, +255, 98,123, 43, 54,245,192, 32, 32, 64, 8,129, 40,151, 34,106, 8,213,170,155, 45, 96, 18,149,245,180,209,119, 57,231, 50, 9, +249,133,147,192, 61, 26,230,136, 20,176,113, 44, 33,250, 24, 73,128, 21, 20, 20,154,255, 29,205, 59,136,173, 93, 37,153, 0,141, +209, 57,122,168, 8, 10, 16,230,154, 75, 34,246,206, 25, 19, 80,118, 86, 95, 40, 50,169, 0, 70, 34, 79, 85,181,251, 99,123, 84, +221,196,227,140, 86,105, 59, 68, 48,192,192,172,136, 80,108,102,216,168, 8,169,153,170, 32,177,182,154,224,198,171,100,162, 92, + 85,179, 0, 66, 32, 46, 82,189,140,147, 57, 80, 64, 18, 82, 21,100, 16, 5, 37, 85,246, 29, 43, 16, 49,205,236, 67,111, 74,246, +111,107,169, 10, 34,149, 24,209,178, 42, 97, 8,204, 14, 58,103,162, 92,203,152,199, 92,171,168, 17,123, 2,201, 47,206,216,240, +147,165, 26,154, 40, 16,104, 83, 7,207,112,164, 45,173,138, 17, 24, 84,193, 85, 43, 5,211,202,177,243, 83,180, 81, 74,253, 92, +197, 89, 70, 69, 52,102,127,206, 98,100, 64, 44,165,118, 41, 65,107, 28,157,155,127, 8, 0,173,170, 52, 10, 35, 34,128,149, 70, +196, 68, 64,114, 88, 5, 51, 17, 18, 83, 69, 68, 82, 84, 95,181, 16, 11, 84, 81, 0,226, 6,253,113,190, 2, 34,136,186,127,158, +185, 25,233, 69,106, 27,100,165, 86, 17,108,165,135,164,222,129,171,166, 86,129,146, 17,241,172,107,185,132, 65, 45,253, 6, 48, + 43,165,208,168,194, 36, 85,171, 40, 24,184, 48, 82,115,205, 50,254,212,167,159,187,122,235,217,245, 52,174,199,114,122,188,126, +184,247,248,195,135,251,123,135,167,123,251, 7,187,143,243,186,136,153,197,212,117, 41,244, 93,183,217,247,195, 98, 88,246,125, +223,165, 97,177, 92,244, 93, 76,221,114,177,164,190,235,187,129, 41,246,125,223,117, 11,224, 77, 19, 99,131,177,142,106, 88, 74, +169,146,167, 34, 90, 39, 68,144, 58, 89, 89, 71, 54, 68, 75,232,208,117,243, 59, 93,179, 45,169,129, 10, 4,114, 52,142, 65,115, + 34, 25,176,104,109,101,115,158,178, 82, 80, 85, 36, 2,162,128,128, 69,132,137,153,169,170,128,130,170,178,211,149, 13,124, 89, + 67, 62, 96, 40,152,168, 57,132,221, 90,119, 54,158,189, 5, 26,150, 20, 26,239,114,174, 69,129,179,194, 66,151, 25,208,218,143, + 25, 23, 14, 14,178, 35,112,158,131,186, 6, 68,193,177,213,136,132, 70,156,210,241,241,254, 15,190,251,189,141,157,115,159,251, +201, 87, 13,235, 84,203,204,198,153,111,158, 94,206, 24, 6, 32,103,181,144,212,104,160,104,102, 90, 86, 99,249,165, 95,253,141, +239,252,240,141,187,143, 86, 28, 35,146,125,251, 91,223,250,254,191,249,158,129,113,160,127,251,253, 31,156,219,217,250,248,173, + 15,238,190,247,218,176,216,186,126,243, 41,142, 59, 91, 23,175,158,191,120,145, 0,215,167, 71, 15,238,222,126,231,157,183,111, +127,248,225,222,254, 33, 16,126,254,149, 79,252,252,151,127,114,115,115,123, 61,121,105, 17,181,148, 31, 65,158,166, 24,226,225, +201, 90, 85,226, 48,152, 41,187, 85, 0,204,251, 67,166, 60,133, 46, 34,162, 84, 11, 33, 40, 32, 83, 64,226,200, 65,181,130, 98, + 96,114, 87,104,136, 36,210,212,217,234, 14, 86,244,190, 48, 43, 85,212,140, 1, 35, 51, 50, 30, 29,158, 94, 46, 59,232,188, 67, +116, 53, 27, 66, 32, 51,187,184,115, 46,198, 80,242,180, 30, 79,246,246,119,223,191,123,119,235,194, 19, 59,151,119,238,221,185, +131,200, 64,132, 16,226,198,210,224,244,227, 47, 63,255,253,239,255,224,202,249,115,239,222,249,176,214, 26, 82, 55, 78, 99,138, + 9,204,166,105,122,230, 99, 79,223,127,240,225,238,238, 94, 86, 97, 33,226,192, 28,170, 76, 10,132,196, 82,115, 31, 98, 11,214, + 2, 35,192, 88,166,190,227,154,101,202, 25,200,133, 83,252,104,199,167,170, 38, 89,129, 25,125, 34, 97,102,255, 25,238, 65,100, + 66, 84, 50,240, 64,157, 87,240,144, 17, 73, 85, 69,136,115, 13,152, 63,128, 14,109, 2, 85, 10, 96, 98, 30,162,159,125, 71,222, + 75, 57,183, 53,207,221,237,162,115,108, 17,155, 3, 65,205,136,152, 17,115,123, 29,107, 35,234,177,247,142, 49,128, 16, 50,219, + 28,212, 2, 64,194, 68, 93,145,181,181, 22, 40,152, 59,229,209,249, 22, 64,126, 86,138,123,164, 4, 32,130,113, 83,164,244,163, +248, 31,162,106,157,239,187,138,192,206, 77, 65, 38, 70,100,166,106,170,138,235,105, 34,112,142,136, 1, 67, 8, 81,212,121,136, + 13,166, 70,212,250,212,200, 26, 49,202,212,245, 89, 52, 20,132,208,228, 44,112,203, 49,169,130,128,249, 16,222, 12,203,237, 80, +215,143,216, 53, 6,140,200,196, 34, 66,136,129, 57,134, 16, 57, 76, 86,218,155,190,217, 94, 3, 25, 76, 83, 81, 80,238,153, 12, +144, 40, 24,152, 33, 35, 4,100,116,148,184,153,127,193,209,213, 52, 80, 52,227,118,247,159, 75,239,230,238,103,159,242,108,126, +167, 58,245,147, 9,165,106, 76,177,193,149,206,196,131,234,114,131,153, 40,177, 54, 44,168,191,223,212, 0, 41,163,133,179, 44, + 60,249,219, 17,230, 93,189, 54,184, 21,232,208,119,160, 80,170, 76, 89,170, 90, 63, 12,203,141,141,235, 79, 94,121,197, 84,173, + 78,171,233,248,116, 58, 60, 57,121,180,119,252,225,195,199,199,199, 39,187,135,235,119,246, 30, 49, 16,135, 24, 99, 92,116,221, +194,219,202,151,139,148,226,144, 82,223,117,203,205,229, 98, 24,210,176, 72,161,139,169, 15, 93,159, 98,232,187, 4,184,129,128, + 34, 86,107, 45, 82,242, 84,171,140, 83,169, 71,199, 7, 90, 39, 64,136,100, 41, 98,112, 8, 49, 35, 4, 0, 52, 45, 2,166, 72, +212, 80, 4, 88,207, 42, 0,219,180,220, 4, 31, 3,128, 0,136,204, 76, 68,126,115,159, 9,115,220, 70, 35,156,231, 29,153, 93, + 59,218,218,151,124,213,238,113,190, 51,111,109,251, 63,209,252,138, 4, 35, 10,205, 86, 43, 98,118, 6, 28,155,127, 7,168, 72, +212, 26, 16, 68,103,205,198,213,212, 38,189,246,203,197,157,183,223,124,251,173,183,158,121,241, 19, 79, 62,121, 45,143, 43, 95, +214,158, 81,233,231, 87, 10, 35, 48,119, 29, 84,209, 42, 6,162,102, 4,164,136,104, 92,166,245,112,254,210,223,255,143,126,243, + 31,254,207,191,179, 22, 93,164,196,220,155,217, 84,242,141, 27, 79,126,229,179,207,125,255, 7, 63,250,179,127,253,173, 95,249, +247,254,198,206,133,235,214,111, 95,190,116, 61,245, 73, 74,126,252,104,247,253, 59,111,191,249,246,219,247,118,119,143, 78, 86, + 79, 95,187,250,115, 95,249,252,167, 95,122,174,212,114,186, 58, 37, 10,115,166,205,119,100,178, 94,143,200,188, 92, 14, 71, 39, + 71,181,202,233, 58, 15, 93,231,238,211, 20,152, 9, 77,133,160, 99,226,214, 96,228,141,110, 78, 89, 3, 82, 53, 36,244,122, 7, + 12, 4, 94,107,197, 8, 98,232, 41,149,192,222, 63,153,115, 65,194, 46, 69, 70,220, 24,122, 96,170,181,133,142, 20, 32, 48,130, + 97, 49, 91,110, 44,106,173,167,235,227, 71, 15, 31,188,245,238,237,199,135, 7, 8,244,196,141,155, 15, 62,188, 75, 76, 42, 80, +115, 9, 28,180, 11, 96,112,225,220,249, 71,187,123, 23,183, 54, 31, 31,175,153, 43, 48,143,101,138, 28, 0, 56, 97,248,244,203, +159,250,218,159,255,185,100,169, 38, 68,152,107, 33,196,113, 26,183, 55, 55,145, 81,234,156, 53, 2, 52,208, 24,120,154, 74,107, + 66, 96,140,214, 40,218, 8,173,141, 26, 12,171,213,226,216,237, 90,141,216,137, 67,220, 28, 6, 8,100,181,109, 35, 20, 16, 11, +152,214, 26, 66,192, 89,125, 64, 98, 83, 81, 51, 84, 65, 32, 81,233, 3, 23, 53, 38, 48,163, 42, 2, 86, 20,185,170,204,104, 87, +223, 58, 16, 50, 5, 98, 53, 13, 33,204,132, 16,106, 4,120, 66, 41,102,232,133,179,254,155,225,102,227, 84, 96,106, 21,172,126, +234,161,145,128,198,192,165, 0, 40,136,148, 38,103,122,115,182, 59, 14,169, 49, 19, 68, 53, 56,106,194,209, 54,102,222,227,201, +164, 76, 92,109, 38,250, 50,204,210,100,107,229, 16, 53, 98,246,202,181,128,220,113, 90, 75, 70, 3, 66,176,106,238,170, 79, 93, +170,181,186,202, 31,136, 82,164, 81,102,212, 19,179, 25, 4,162,224,172,121, 98, 36, 6, 19,103, 57,240, 76,140, 34, 0, 80, 84, +242,165, 50, 34, 24, 3,180,194, 59,166,152, 82,169,153,145,186, 46, 96,235, 33,108,118,108,114,167,188,170, 51,143, 3, 49, 26, + 98, 64, 82,183, 92,205,104,251,249, 64,245, 39, 95, 91, 89, 13,147,191, 97,173, 32, 50,130, 6,240, 96,143,182, 68,156, 19, 6, + 65,179,216,130, 76,138,136, 10, 51,199, 24,171,106, 85, 37, 52, 84,117,127, 18, 82, 19, 49, 28,179, 37,109,249, 55, 7, 42, 20, +204, 26, 86,104, 61, 77,139,190, 35,255,249,160,129,195, 36,226, 60,122, 68, 70,175,112,143,132, 2,102, 86, 74,157,114, 65,201, + 70, 68,200,155, 91, 27, 59, 59,155, 79,223,184,246,121,198, 42,186,154,244,240,248,120, 92,173, 30, 62, 58,216, 61, 56,124,184, +123,120,120,124,112,247,116, 92,151,194, 28,250,174, 95, 14,105,115,185,185, 92, 14,203, 97,232, 82, 26,186,126, 88, 44, 83, 23, +134,197,208,117,203,174, 31, 82,215, 19,112, 23, 40,198,222, 44, 33, 80,222,220,200,185,104,149, 42, 53,151,188, 42,197,106,182, + 73,188, 27, 9, 76, 99, 0,174, 26,216,156,253, 82, 77,212,239,106,106, 82, 13, 9,204,212,241,224,161,225,109,204, 92,196,161, + 48,135, 19,218,150,135,156,216,212, 40,187, 13, 97,102,115,183,121, 75, 91,180, 80,107, 35,103,122, 95, 65,107,197, 85, 85,106, + 0,119,100, 50,177,138,192,134,128, 76, 86,107, 3,190,123, 45, 57,147, 67,225,103,224, 59, 48, 49,199,244,198, 15,255,234,225, +131,135,175,254,212,207,116,137, 75,206,134, 4,218,172,198, 51,163,222,121,109, 94, 83, 9, 16, 9, 74,213, 42,166,128,236, 55, + 53, 5,179, 92,234,203,159,249,201,255,242,239, 62,252,135,255,235,255,177,151,243,206,114, 25,136, 33,132,251, 15, 31, 28, 30, + 94,255,249,159,121,245, 15,254,236, 59,255,207, 55,190,251,219,127,239,179, 55,159,186, 89,242,180, 62, 57,122,112,247,246, 91, +111,188,245,246,157,219,143, 14,247, 9,249,151,190,252,133,159,253,210, 79,132,190, 91,229, 2, 10,196, 13,209, 0, 72, 14,154, + 55,228,213,122,146, 42,121,202, 76, 52,230, 60,149,186,189,177, 65,132, 32, 16, 34, 35, 50,135,200,132, 69,106,140,158, 20,176, + 0,160,162,185, 22,239, 30, 34,140,162,121, 44,117,171, 27, 86,148, 25, 81,213,204,180,245,225, 26, 30, 28,175, 78,115,174,213, +140,180,170, 33,240,162, 15, 42, 98,104, 96, 45, 36, 76,140, 41, 5, 50,189,114,241, 2,160,173, 78, 78,239,222,223,253,224,225, +195, 90,100,125,186,218,220,222,222,220,218, 58, 58,216, 39, 38, 66, 82,163,148,250,147,253,131, 11,231,207, 1,234,133, 75,231, +190,246,157,191,202, 37, 39, 76,171,213,233, 98,177, 17, 13, 5,117,107, 99,235,250,213,171,111,220,126, 39,105, 96,228,162,182, + 96,142,172,155,195, 32, 85,214,182,134, 92, 2, 71, 23,185,167,169,174,171,228,154,137, 8,148,137, 25, 9,173,162,129, 21, 81, + 50,237, 82, 44,103, 45,155, 33, 0,179,167, 90,154,195,198,140, 0, 2,250, 35,230,101,155, 85, 13,163,202, 76, 59,106,253,212, + 4,216, 78, 46, 70,111,148,103, 38, 66, 96,130, 82,220, 52, 66,190, 51,114, 54,125, 96,170,185, 84,151, 4, 0,138, 86,107,239, + 79, 84, 21, 85, 96, 34,109, 88, 21,112,202,143,155,187,131,119,199, 49, 17,153, 20,147,128, 0, 86,165,189, 57, 12, 21,125, 49, +168,196, 13,154,128,109,131,170, 10, 4,132,104,170,226, 59,238,179,158, 3, 48, 3,106,141, 58, 0,200, 52, 3,245, 12,188,238, + 10,207,244, 42, 32, 96, 68, 4,168, 62, 14,152, 53, 24,167, 17,136,154, 25, 19,154,161,145, 67,113,153,200, 28,181,143,140, 64, +134, 14,161, 67,107,225, 82, 3,172, 32,145,189, 95,154,170,169,206,226,181, 91, 43, 9,185, 54,243,143, 74,173,104, 94, 82,224, +197, 18,138, 0, 8, 1,160,120, 12,157, 34, 17, 6, 3, 77, 49, 96, 35, 27,160,255, 10, 6,216,156, 22,136,134,216, 90, 62, 21, +152,201,204,136,141, 42,130,130, 48, 0,114,155,250,112,238, 97,199,134, 74,241,211,219,187,166,249,204, 60,237, 6, 28,192,170, + 34,136,192,192, 16, 8,218,237,133, 0, 1,188,174,143, 60,159,133,214, 66,255, 85,100, 44, 37,165,228,119, 93, 3, 80, 45,166, + 74,148, 20,129,108,182, 50, 33,129, 26, 81, 48, 80,228,132, 72, 98,130,166, 42,168,106, 80, 12, 12, 24,233,220,206, 14,157,219, +190,113,253, 18, 1, 17, 71, 83, 59, 58, 62,126,255,254,195,253,253,227,187,187,143,223,253,224,193,254,254,227, 10, 24, 57,165, + 24, 99,138,139,161, 31, 82,215,165,184, 92, 44, 22,253,176, 88, 14,169,239, 23,221,144,186, 94, 74, 9,137, 56,164,148,250,190, + 11, 68,189,225, 0,136, 62, 19,228,169,230, 60,213, 82, 4, 85, 40,173,203, 88,243, 24, 44, 7,208, 64,144, 98,240,155,165, 33, +149,170, 72,234,212, 85,212,234,163,114,245,236,164,206,205,226,205,107,131,118, 54,119,183,157,183,232, 71, 96, 27,175,121, 66, +242, 22, 56,199,251,157, 45,122,253,110,136,206,128,245,250, 52, 36,255,182, 89, 21, 0,116,220,121,195,204, 56,151,187, 29,219, + 22, 99, 87,167,252,163,255,239, 91, 99,145, 87,191,244,101,144, 92,114, 37,246, 10, 94, 7,164, 10, 48,183, 11, 41, 34, 18,113, + 8, 96,104,181,182,168,173, 3,173,213,187,132,166, 50, 78,218,117,175,124,241,103,255,171,146,255,151,127,244,187,170, 86, 16, + 82,215,125,226,169,107, 55,174, 93, 44,180,245, 83, 95,252,242,239,255,241, 87,223,124,239,157,167,110, 94,127,252,240,238,135, +119,222,251,209,235,175,127,248,240,193,106,189,190,250,196,165,223,248,165,175,124,250, 19, 47,172,214, 57,151, 2,134,134,228, + 34, 44, 48,207,105,114,116, 86,236, 48, 12,143, 15, 14, 61,107, 84,107,109,226, 77, 0, 19, 99, 34, 51,139,129, 79, 78, 87, 6, +200, 28, 74,169,216,166,249, 14, 0, 0, 32, 0, 73, 68, 65, 84, 0, 48, 78,147,136, 18,177,223,241,167,169, 78,181, 44,210,230, +209,201,236, 65,110, 62,101, 0,213,117,201, 0,166,100, 94, 86,141, 40, 7,167, 83, 21, 56,157,214,170,194, 5,121, 24, 8,105, + 53,213,141,197,242,201,107, 87, 84, 1,205, 98, 8,170, 16,152,137, 3, 32, 94,190,254,228,234,248, 88,193,136,130, 72,145, 90, + 56, 17,102,187,114,229,218,135, 31,124,120,237,252,246,237,251,123, 93,234, 8,105,202, 35,165,193, 4,250, 56, 60,251,177,103, +222,124,239,109,191,246, 91, 41,194,174,240, 88, 85, 25, 82, 55,230, 73,209,186, 20, 77,109, 28,143,195,153,255,206,107,177,154, +185,202, 26,246, 24,169, 39, 96, 14,140, 88,221, 84,219,142, 60,156, 67, 72,104, 77, 43, 55,143, 73, 80,112,182,109,243,201,105, + 59, 51,204,136,177,181, 88, 0,128, 4, 10, 85,177,212,234,187,110, 59, 11,182,146, 17, 16, 32,156, 78, 83,173,149, 40,148, 42, +162,160, 85,213,212,115, 73, 6, 90,179, 2, 96,241,230,179, 51, 72,151,106, 53, 75, 8, 0, 32,197, 28,245,104, 4,145,156, 56, + 8,129,200, 2,174, 38,149,230, 3,113, 79,112, 75,214,170, 88, 11, 95, 55, 49,209,192, 76, 92,122, 80,160,128, 8,214,165,132, +222, 44,104,138,166, 78, 71,160, 64, 10, 38,165, 26, 66,138,254,110,145,150, 65,197,136, 48,193,124,192, 25, 88, 0,102,100, 53, +160, 16,163, 89,169,238,255,116,132, 84,187, 63,185, 66,234, 83, 87,171, 53, 69, 48, 85,241,244, 92, 19,236, 17, 76, 57,250,202, + 25, 99, 74,136, 24,136, 67,160, 82, 73, 5, 20,194,153, 48,163,230, 44,115, 32, 2,164, 64,129, 61, 69,217,228, 47,194,224,134, + 74,153,243,239,238,109,132,134,229, 34,140, 38,213, 85, 51,178,118,136, 0, 96, 68, 42, 46,113, 49, 0, 2, 35,198, 20,171, 56, +218, 11,220,217,195, 78,152,117, 6,150,123,230,137,204, 76, 84,197,188,189, 22, 27,201,171, 26, 48,113, 32,132,136, 48,130,225, +184, 94, 7, 64, 41, 5, 0,106,117, 82, 10, 1,128,214, 90, 91,219,164,249,220,216,108, 38, 0, 96, 66,232,207,114,101, 10, 85, +231, 21, 40,130,138,130,175,121,167,108, 90,135,174,123,249,217,167,136,136, 3,155,192,233,106,117,255,225,222,251, 15,118,239, + 62,124,180,127,116,180, 58, 62,126, 92, 30,139, 40,133,200, 68, 49,134, 46,117, 67,223,111,110, 44,150,221,178,235,220,176,223, +245,156, 32, 82, 23, 83, 76,125,138,129, 99,136, 93, 23,227, 34, 50,149,170, 99, 30, 49, 46,214, 57,173, 78,215, 42, 50,141, 35, + 83,141,108, 93, 64, 4,101, 20,196, 8,170,193, 68, 76, 75,153, 50,167, 14, 66, 12, 68,160,234, 9, 44, 66,171,165, 58, 54,217, +119,252,168,115,105,136,175,216,231, 71,198,159, 29,155,137, 60,115, 23, 8, 50,162,168,163, 15, 0,189,165,207,188,227, 27,206, +194,132, 14, 62,155,105,242,134,104, 76, 33,245,253,189, 15,110,191,245,214, 91, 79, 92,125,242, 83,207,220,146, 90,196,129, 14, +170, 68,173,248,219, 95,203,205, 84,103,134,254,212,250, 0,230, 64, 31, 4,145,106, 90,165, 86, 51,236, 54, 54,215,171,211, 85, +169, 63,253,115,191,246,151,255,230,181,239,191,249,225,185,243,203, 47,125,230,197, 39,175,223,192,180,179,125,233,218,147, 79, +222,184,245,236,115,223,254,214, 55,191,243,205,111, 60,122,116,239,157,247,239,222,223,221, 77, 49,252,205,159,254,194, 87,190, +248,202,206,206,198,241,233,137, 9, 57, 55, 10,193,152,216, 89, 75, 51,107, 15,204, 32,231,130,102, 8, 18, 2, 29,159,172, 17, + 33, 5,114,173, 53,134,212, 26, 65, 9,203, 52, 30,156,172,159,189,114, 65,204,200,231,127, 0,118,118, 23, 82, 85, 72, 28,136, + 24, 72,207,116,198, 0, 8, 8,147, 72,171, 9,118, 78, 91,155, 78, 3, 34,104,181, 44, 85,170, 25,209, 82, 58, 2, 36,198,157, +115, 59, 0,104,104,165,214,245, 56, 10,104,169, 19, 24,108,110,109,159,191,120,241,209,131,251, 30, 37, 83, 0, 14,105, 26, 87, +177, 22,209,122,253,210,229, 49,215,199, 71,167,203,197,162,230, 98, 93, 87, 4,166, 90, 46,156,191,240,226,115, 47,253,245, 27, + 63, 52, 84,100, 38, 3,231, 65, 86, 21, 14,129,152, 83, 96, 21,157,242, 20, 83,164,166,146, 35, 18, 86, 49, 62, 51, 91, 48,197, + 64, 8,192, 68,103, 65,182,249,184,110,231, 49,205, 20,106, 36,240, 24, 53,120,220,135, 8,204,136, 49, 96,155, 70,125,211, 91, +192,203,118,168,157,100, 76, 14, 67, 7, 36, 21,209,246,242,100, 85, 37,164, 46, 6, 53,161,179,248, 44,136, 15, 46, 49, 34, 88, + 28,167,170,214,120,185,222, 17,232, 99, 10,131, 49, 48, 18,120, 86,209,237,227,103,125, 33,106, 6,140, 86, 61, 58, 2,106,202, + 4, 69, 45, 17, 89,169, 13,186, 99, 58, 0,136, 32, 35,213, 25,240,109,160,166, 22, 18,171, 97,159, 72,170, 77, 69,212, 32,250, + 90, 81,193,200, 98,136, 37,103, 49,175,254, 1,114,235,154, 9,130,183, 0, 97,196, 48, 89,241, 87,130, 33, 84,173, 0, 16,136, +196,148,137,138,202, 89, 3,179,155,233, 2, 17, 16,144,153,137,113,194, 58, 59, 74,103, 74, 9, 32,145, 26,136, 89,240,205, 37, + 81, 66,119,121, 85, 21,181, 90,205, 89,194,128,236,126,156,217, 92, 17, 40, 84, 45, 58, 85, 71,209,104,129,172, 82,212, 84, 5, +252, 4, 80,107,186, 79,187,227,152,162, 81, 96, 0, 20, 85,213, 25,170,131,138, 94, 72,171, 96,218,160,184, 72,100, 82, 35,181, + 46, 51, 19,136,145, 75, 21, 36, 12,136,168, 86,177, 38,140,110,236, 83, 80, 4, 34, 34, 0, 82,200,136, 17,220,138,225, 95, 52, +194,177,150, 15,118, 31, 46,151,155, 1, 64,212, 11,183, 81, 9,130, 97, 36,110,142, 44,152, 95, 68, 72,190,253, 50, 3,179, 36, +206,224,246,163, 76,196,237,153,173,203, 14, 99,214, 90,215,162, 0, 85,197,105,111,215,110, 92,186,113,227,178, 84, 83,173,185, +216,193,201,241,122, 53, 30,156,172,238, 62,120,252,232,224,120,255,240,228,224,240,224,246,251, 50,137,116, 33,244, 67,183, 53, + 12,155, 27,203,197,224,170, 78, 23, 99, 8, 49, 6,102, 14,188,232,135,126,177, 97,128, 76,212, 49,165,141, 1, 16, 77,151,185, +202,152,215,171, 82, 84,205,196, 8, 52,231, 26, 0,204, 36,151,105, 69, 20, 49,154, 0, 96, 96,207,163,148, 60,149, 34, 49,117, + 76,237, 64, 7,248,104, 63, 51,191,141,231,182,207,150, 92,197, 25, 85, 67, 42, 34,254, 84,139, 81, 74, 64, 51,116, 12,207,184, +144, 6,222, 60, 98,237,219,105, 10, 24,160, 27,134, 31,254,187,111, 63,184,183,251,153, 47,124,113,217, 15,165, 76, 96,103,163, +135, 11,212,216,182, 88, 8, 94, 54,227, 99,156,169,168, 6, 78,157, 81, 33, 51, 45,160, 90, 85,133, 25, 79,215,211, 56, 78,160, + 19,199,225, 79,255,244,143,150,139,254,223,127,245,147,215,111, 92,235,250,157,173,203, 31, 59,127,233, 98,223,167,163,195,195, +131,195,147, 90,243,215,190,241, 53,230,184,187,127,116,227,210,185,191,243, 27,191,120,243,230,149,170,245,100,157, 17,137, 24, +173,101, 14,128, 29,118,229,127,247, 34, 68,172,146, 93,135, 58, 30,215, 27,105, 80, 85,230,104, 64,162, 58, 78,217,192, 98, 72, + 1,153,129, 3, 7,154, 53, 6, 10,164, 34,165,100, 38, 10, 76, 10,186,158,214,196,140,136,162,232,143, 16,114,195, 52,151,156, +219,173, 8,201,180,168,168, 49, 37, 39, 22,130, 34, 32, 17,136,212,113, 66, 83,184,121,253,210,102, 63,148, 82,215, 39,171,227, +211,147,245,152,189, 7, 0,145, 21,244,226,181,235, 7, 7,251, 37,103,100,102,235,197, 86,253,162,159, 86,211,141,235, 87,111, +223,185,247,233, 23,159,255,131, 63,255,150, 72,103,160, 37,231, 16,186,117, 30,197,236, 83, 47,189,248,248,241,131, 41, 79,136, + 88,173, 34,176,136,169,104,129,106,102,145,217, 84,178, 40,163, 54,127,171, 95, 2, 29,201,224,166, 5,194,196, 92,196, 40,134, + 64, 44, 94,165,209, 50,214,200,140,115,109, 19, 8,248, 38,137, 56,132, 48, 44, 78,167,201, 27,238,213,123,190,124,186,167,217, + 97, 0,160, 34,174,126, 55, 41, 86,144, 17,144,130, 80, 83,126,128, 72, 84, 83, 74, 42, 90,165, 18, 98, 17, 53, 53,138, 92,114, + 54, 11,137, 48,144, 15,239,254, 3, 2, 59,252, 21, 77, 85,181,162,176,167,248,221,138, 43, 96,181, 86,215,137,107,153, 31, 83, +119,188,128,219, 54,212,117, 30, 60,235, 64, 37,157,131,135,136, 2, 64,168, 34,196, 84, 53,231, 76,137, 3, 98,141,142,166,116, + 29,218, 93, 83,173,198, 4, 77,149,137, 2, 4, 31,110, 24,168,168, 98,192,128, 9, 77, 92, 82,239, 98, 40, 86, 40,192,152, 91, +226,156,230,214,117,239,121,106,183,104,131, 92, 37,134, 96,106,162,106,136, 17,161,158,117,166,249,215, 85,102, 68, 55,104, 41, +234,127,156, 6,221, 57,155,230,204, 51,213,106,204,136, 74,204,158, 69, 34,100,192, 90, 74, 69,211,192, 84,154,212,210, 92,173, +170,130,236,169,224, 6,129, 48, 66,153,239,239, 98,134, 96,138, 58,167,123, 81, 77, 29,142, 26, 35, 35,133, 73,215,108,160,206, + 18,199, 96, 6,134,243,163,211,178, 83,140,128,193,160, 82, 67,219, 51, 5, 96,156,171,217, 34, 83,160, 90,167,245,233,176,181, +173,166,165, 22,241,156, 57, 0, 71,118, 51, 57, 82, 80,255, 4,125, 87,238,165, 87,218, 66,182,237, 38,137,243, 26, 66,149, 40, +168, 22, 54, 80, 3,246,175,176,137,154, 77, 83,117,170,164,243, 99,206,109, 46,207,109,111, 94, 53,125,241,249,155,166, 86,198, + 73, 21, 14, 78, 78,246, 14,143,247, 14, 79,223,252, 96,247,246, 7,119,199, 92,204, 96,209,117,219, 27,139,237,157,237,197, 98, +177,181,177, 72,169,219, 72,201, 66, 40, 89, 40,208,208, 45,150,253, 34,118,161, 11,137,200,182,151, 11,164, 64,115, 10,118,255, +232, 48, 32, 5,142,125,183, 96,138, 97,102, 63, 53, 16, 77,149, 10,103, 76,188,143, 4,148,121, 91,127, 38,208,123, 76,194, 20, +124, 17,102, 13, 18,133,102, 34,213,252,254,214, 74,100, 29,107,221,136,121, 56, 87,115,206,140, 28, 12, 93, 0,165,239,127,235, + 95, 31,174,203, 79,253,252, 47,177, 73, 41,121,246,217, 52, 20,178, 59, 56,189, 17,121,190, 36,182, 75, 48, 24,123, 66,219, 68, +181,106,169,163,138,212, 82,133,113,125,180,183,220,188,120,120,178,126,227,175,190,113,231,131, 7, 47,189,240, 50,119, 27,113, +227,252,141,167,158, 30,250,206,196, 14,246,246,238,188,251,250, 59,111,189,117,111,119,119,189,158,142,198,131, 47,253,196, 43, +127,251, 63,248,249,216,165,105,204,205,201,227,234,101,131,249, 52, 48,148, 7,186,144, 24,208, 20,132, 17, 3,194,233, 42,111, +246, 11, 51, 99, 48,102,174, 82,181, 74, 68,170, 82,198,113, 92, 46,187,144,194,208,119, 86,205, 89,176,216, 5,207,124, 84, 81, +164, 48,101,113, 67,120, 34, 12,204, 83,173,104,158,195,196,108,198,206, 92, 67,195,121,137, 7,145, 40,134,200,161,212, 98, 64, + 6, 80,205,106, 45,207, 60,117,107,216, 88,174, 78, 78,205, 96,156, 10, 18,153, 97,157, 38,151, 88,251,229,230,249,203,151,238, +221,185, 77, 72, 70,172,156,200,106,236, 4, 9, 17, 37,117,225,198,213, 75, 31, 60, 56,232, 2,155,141, 27,155,157,168,183, 63, +224, 11,207,127,252,181,215, 95,139, 68, 98, 38, 42,161,163, 72,104,170,181,212,156, 98,159, 82, 31,235,152,197,212, 85,133, 48, + 78,197, 16,196, 72,161, 32, 88,140,193,123,231,130,161,215,179, 27,217,220, 64, 11,166, 31,205,243,222, 22,108,110, 13, 33,234, + 83, 44, 34, 0, 16,217,187, 79, 3, 80, 97, 96, 53, 69, 52,247, 47, 65, 53, 0, 24, 58, 94,175, 29,100, 67,106,237,195, 52,243, + 18, 31,205,165, 50,146, 66,179, 89, 16, 97,205, 98, 10,181, 42, 16,214,102, 0, 53, 80,130, 0, 0,100,200, 77,179, 38,136, 28, + 38,169,102, 80,205, 49,123, 64, 96,196,148, 85,234,140,225, 64, 98, 85, 84, 5, 66,168, 30, 16, 65, 37,246,118, 63, 80,113,245, +160, 57, 60, 72, 9,137,220,202,222,199, 0,132, 81, 2, 40,120,236, 3,129,136,218, 77,137, 34, 69, 8, 43, 24, 21, 42, 0,145, + 53, 21, 28, 1,205,196, 29, 89,156, 8, 17,201, 24,217, 25,104,174,171, 27, 34, 51, 88, 67,187, 18,186, 94,228,146, 95,169, 10, +104,129, 88, 21, 16,244,172,202,193, 15,202,192,132, 68, 28, 88, 12,139,212,160, 54, 12,221,234,100,244,142,145,220,212,175,255, +159,170, 55,107,150, 44, 59,178,243,150,187,239,125, 34,226,198,205,155,121,115,170,156, 10, 53,163, 38, 84, 1, 40, 76,196,212, +104, 16, 96, 91, 55, 69,209, 68,170,173,141, 47, 52, 61,203,244, 38, 62,232, 63, 72,250, 29, 52,227,147, 30,245, 38,202,196, 70, + 19, 93, 93, 13,160,107,206,170,156,231,225,102,230, 29, 35,226,156,189,221, 93, 15,190, 79,100, 17,102, 48, 20,204,178,110,198, +141, 56,113,142,239,229,107,125,203, 17, 51,175, 48,156, 19,251,202, 33,153, 69, 18, 87, 77,204,139,208, 97,213,213,226,183, 98, + 18, 78,137,221, 57, 30, 73,102, 70,236, 98,158,178, 12, 85,153,201, 84, 99, 14,165,156,136, 89,221, 65,156, 19, 45,208, 59,165, +156,179,129,136, 93, 85, 89, 82, 34, 30,162,177, 72,214, 50,102,115,243,197,122, 94, 61,208,161,138, 85,163, 30,152,147, 0,243, +205, 77,181,214,176, 66,148,220, 85,184, 57, 30, 36, 73, 25, 26, 90, 7,129, 92,244, 54, 76, 58, 35,196, 81,150,216, 19, 68, 85, +153, 57,199,254,140,148, 51,145, 5,180,131,189, 1,163, 98, 24,214,224, 57, 3, 22,161, 52,115,168,147,164,196, 56,125,226,248, +185,147,219, 66,252,207, 63,128,179,220,125,178,119,231,222,131,219, 15,118,110,220,223,185,113,247,174, 87,103,145,141,141,233, +246,241,227,105, 50,233,152, 59,145,106,158, 82, 18,166,141,217,198, 36,231,141,217,100,115, 62,223,152,205, 38,147, 89, 55,155, +110,228,105, 34,114,146,220, 77, 83,179, 36,180, 41, 27, 4,116,121,234,196,156, 82, 96,180,163,127, 18, 68, 48,246,181, 65, 22, + 62, 14,245, 16,226, 81,239,244,117, 13,147, 90,205, 41,183, 14,171, 49, 19,101, 35, 3,169, 29, 5,136, 8,220,205,102,139,221, +221, 79, 62,253,211,214,201,179, 63,251,193,187,168, 67,181,214,125, 17,137, 37, 52,198, 41, 64, 9, 13,159,170,227,142,117, 60, + 35,215,106, 90,181, 68, 68, 80, 74, 45,253,176,218,220, 58, 33,179,141,175, 62,251,227,149,171, 87,230,243,205,119,222,126, 43, + 79,183,231,167, 47,158, 63,127,206,171,238, 31, 60,123,250,104,231,206,205,107,183,238,222,186,251,104,231,201,238,222, 75, 23, +206,253, 15,239,189,190, 49,223,128,164, 97, 24, 28, 78, 36, 24, 67,159,194, 29,188,140,231, 9, 30, 31, 48,213,193,101,176,162, + 74, 36, 14, 48, 83,206, 9,210, 46, 51, 38, 97,105,120, 22, 38,137, 30,175,104, 63, 51,247,148, 83,151, 82,100,207,160,230,102, +137, 64,132,148, 58,110,128,201, 96,116,234, 80, 43,195,105,140,247, 0,166,234, 41, 39, 33,105,203,166, 17,223, 5,247, 11,103, +207,104,117, 85, 61, 92, 45,158, 29, 30, 12, 90,170,150, 85,127, 4, 98, 3,216,234,169,211, 47, 60,123,252,164, 12, 71,102, 76, + 44, 44, 72,221,108,113,176,119,254,220, 11,143, 30, 63,251,206, 27,175, 93,191,253,183,132,105, 34,152, 86, 22, 81,211,156, 38, +167,183, 79, 30, 63,126,226,209,179, 93, 2, 18, 7,163, 46,248, 21,168, 85,145,189,184,119, 57, 39, 97,172,196,220,205,140, 37, + 53, 35, 91,196,134,132, 59,242,216,192, 52, 7,237,168,206, 68,233,110, 40,245,156,132,195,251, 96, 90,149,186,220,149,178,128, +251, 68, 18,179,120,172,107, 91, 21, 20,172, 42, 9,143,140, 54,129, 27, 75, 2,216, 81, 97,128, 4, 57,183,237, 0, 86, 90,226, +146,140, 28, 94, 40, 57, 81,187,193,238,165,193, 82,141, 92,140,108,132,117,113, 34,142,206,133,144, 17,132,161,230, 17,225,119, +115, 9,219,139, 69, 60,133, 93,107,243,116, 83,236, 42,139, 71, 88,219,249,185, 51,205,220,201, 0,170,102,211,148,224, 40, 67, +141, 26,135,248, 20, 19, 71, 95,139,155,170,144,120,107, 94, 72,212,218,214, 98,132,172, 49,182, 55,219, 59,143, 5,231,238,109, + 83,168, 81,231, 48,206, 82,141, 61, 76, 97,177, 45,117, 53,205,179,202,102,214, 24,159,107,168, 15, 11, 57, 59,220, 25,232,186, +108, 43,173,168, 34, 73, 93,213, 60,210, 91, 62, 26, 27, 21,222,177, 24,185, 52,230, 64, 40,187, 34,196,194,210, 91,105, 30, 22, + 52,246, 22, 83, 50,118, 2,165,196,170, 14,102,215,138,176,116,131, 0,228,204,203, 2, 87, 37, 17, 34,202,194,193, 33,111,160, +148,241, 57,148,137, 33, 32,165, 32,100,197,138,133,155, 6,177,126, 88, 89,155, 92, 71,195,118,226,148,132,167,147, 73,211,142, +198, 7, 26, 19,153, 66,136,225, 76, 41,181,208, 68,107,111,130,179,146, 91, 56, 68,188, 49, 93,157, 24, 6,141,126,191, 70,133, +129, 1, 21, 96,139,177,108,180, 26,130, 88,132, 81,188,101,140,214,116,134,118, 14,245, 10,148,170,181, 84, 16, 78,206,167,231, +190,243,198, 15,223,125,221,221, 87,125,217,121,118,240,224,201,211,199,123, 7,207,118, 15, 14, 14, 15,158, 14,195,208,247, 6, + 22, 18,136, 39,226,217,100,163,203,210, 77,186,141,217,116,115, 54,219,220,152, 59, 56,141,187,211,192,131, 71, 83, 20,218,127, + 37,246,245,110,173, 55, 30,110,193,188, 49,183,218,144, 40,129,129,104,252,188, 40,183, 39,107,118, 29,145, 4, 34,230,104, 27, +160,112, 97,173, 91, 63,220, 13,156, 4,112,184,118, 93,247,248,222,157, 47, 62,251,244,213,119,222,191,112,246,116, 93, 29, 58, +152, 36, 16,106,205,189,227,223, 64,182,160,189, 74,106, 85, 83,110, 30,152,251, 90, 93,213,180, 58,119,229,104,255,240,240,232, +248,246,201,203,159,127,252,217,167,159,178,227,149, 87, 94,218,154,111, 15,178,121,242,204,185,141,205,121,191, 90, 62,125,242, +248,209,189, 59, 15, 31,220,191,125,255,222,245,219,119, 87,253,240, 47,126,254,131, 95,255,242,135, 91, 39,142,221,186,126,227, +227, 63,126,241,193, 15,222, 42,131, 53, 90, 76,251,148,156, 99,141,220,106,137,124,108, 46,144, 58,172,170,122, 28, 46,166, 41, + 37,112, 32,108, 73, 68, 58, 73, 34,139, 97, 8,115, 65, 18, 78, 93,167,112,135, 11,183, 14,160,234, 74, 78,139, 50,144, 68,115, + 17, 70,238, 51,192,236,238,164,134,234, 30,186, 31, 27, 65, 18,103,227,160,120,154,249,248, 14, 17, 57, 44,119,249,226, 11,103, +172,106,191, 42,123, 7,135,139,197,202,106, 61, 56, 92,172,106, 69, 64, 38, 84, 39, 27, 27,167, 95, 56,127,235,250,101, 38,102, +107, 79,136,110, 54, 75, 41,159, 84,123,178,179,247,234,133, 23,110,222,223, 33, 80,191, 90,205, 55, 55,225,182, 26,150, 27,147, +217,171, 47,191,124,243,238,189,161, 95, 17,145,169,133, 63,156,152,212,145, 57,205, 39,211, 85, 63, 48,113,180,142,146,136,185, +115,123,250,143, 29,190, 20,150, 43, 86,173, 97,177, 72,180, 62, 31, 54,201,206,213,173,221,245,161,145, 16, 2, 28,232,181, 78, +168, 83, 83, 14,159,182,151,184, 2,189,154,147,153,219,114,217, 51, 39,181, 26, 55, 59, 7, 44, 88, 75, 70, 22,199,228,112,133, +135,175, 64, 13, 76,164, 16, 98,141,111,104,172,229, 3,190, 13, 30,141, 90,193, 45,176, 38,130, 51, 97,157, 26,116, 55, 11, 47, + 83,108,194, 25,236,129, 18,106,245, 61,207,149,122, 33,110,127, 47, 53, 92, 31,113,164, 9, 61, 4,237, 38,145,183,188, 97, 59, +208, 75, 78,210, 23,175, 90, 27,164,130,200, 35, 37, 5,103,225,112, 33, 55, 76,187, 97,240,106, 86,205, 61,137,176, 0,166, 6, +142, 97, 62, 35,253,183,147, 89,124, 79,133,106, 17, 35,167,102,134,135, 6,229,139,204, 2, 38,107,166,150,132,205, 34, 28,143, +234, 70,204, 26,223, 79,197, 36, 75, 39,137, 28,108, 24,180,138,208,180,235, 68,132,170,182,137,154,216,169, 17, 68,155,233,156, +131, 91, 2, 38,120,172,224,146, 4,151, 47,178,200,165, 26, 51,192,100, 80,161, 36,146, 3,213,162,238,165, 84, 17,182, 90,135, + 90, 39,153,196,186,168,129,131,147, 1,169, 81,245,137,133, 42,216,154, 1,132,114, 78,234, 70,165, 48, 75,102,153, 77, 82,150, +137,161,180,105,159,220, 65, 67,181,236,193, 45,246,117, 29,187,155, 5,172,125,172, 58,183,176, 70,121,187, 98,169,185,121,188, +117,107, 17,160,202, 36, 99,219,118,108,179, 1, 55, 37, 98,176,130, 57,162,159,209, 24, 23,184, 45, 85,196, 70, 75,178,168, 97, + 48, 95, 28, 28,181, 74, 85,248,201,173, 99, 39,143,111,182, 56,215,160,139,126, 24, 86,195,193,170, 28, 44,150,123, 71,139,103, +207, 14,158,245,253,163, 39,187, 67,237,157,132, 8,155,179,233,108, 58, 75, 80, 71, 44, 36, 90, 81,130,185,131, 56,121, 36, 9, +215,225,203,231, 12,248,248,215, 51,198,204,159,251, 55, 7,113, 49, 50,226, 64, 57,121,220,219, 91, 1, 76, 99, 40,124,131, 10, + 39, 65,165,148, 46, 79, 31,222,189,115,249,203,207,223,255,241,207,182,143,111, 14,203,165,187,147, 52,168, 60,173,253,149, 49, +253, 71, 51,141, 42,115, 6, 25, 89,112, 55, 28,174, 62, 84, 51,167,110,186, 90,173,142, 14,158,156, 62,119,238,240, 96,247,159, +254,254,111, 47, 95,191,122,102,235,212, 91,239,188, 86,117,206,243,147,103,231,155,148,120,239,217,211,197,222,222,206,206,253, +155,183,238, 92,191,117,235,206,227,135,167,142, 29,255,247,255,230,183,223,127,255,221,101,223, 31, 29, 29,157,187,120,254,225, +195, 79,191,188,114,231,237,111,191,210,175, 86, 68,225, 87,115,184,122,251,118,199,239, 69, 99, 70,197,205, 92,213,172, 22, 11, +120,136,128,136,186,196,230,106,234, 41, 65, 93, 87,125, 15,226,105,215, 5, 47, 16,166, 17,110,234, 82,231,234,149,106, 25, 52, +165, 20,143,116,115,205, 57,179,172,160, 32,167,232,175,171,106, 99,193,166,177,128,157,212, 84,128, 73,202,195,176,138,216,122, +206,221,198,100,114,226,228,246, 96, 86,108, 88,244,253,106,181,116,247,195,163,197, 48,244, 16,118,171, 76,100,240,147,103,207, +238, 60,122,176, 56,220,165, 36, 34, 89,109,200,110,253,225, 33,106, 29,250,254,187,239,124,251,112,185,122,252,244,144,133,167, +117, 34, 93, 71, 64,213,186,125,252,196,235, 47,191,252,249,151, 95,128,197, 70,108, 88,220,141,138, 41,220,212,244,112, 89, 72, +181,217, 95,198, 35, 8,183,103,116,104, 39, 68,194,174,202, 96, 87,131,140,214,234,241, 72,182,174,203, 14,221, 70, 1,114,103, +102,117, 31, 34,224,230, 22, 93, 35, 34,100, 5, 0,216, 34,196,167,146,169, 95, 90, 70, 72,131, 62, 38,126,224,160,226,102, 78, +234, 72, 85,205,181,170,138,136, 65,157, 73,139, 69, 19,155,193,205, 33,241,100,136, 9, 16,225,239, 70,137,192, 14,168,227, 4, + 70, 41,203,112,213, 43,197, 60, 26,105,108, 25,123,148, 67,211, 11,253,146,147, 72,220, 77,130,139,204,241, 92, 36, 99, 73,234, +214,187,103, 17, 50, 3,145,186, 39, 34,102,104, 4,130, 56,177, 88,116,243,176, 19, 17,117,146,122, 45,205, 97,144,147,215, 26, +241, 31, 48,151, 90,153, 60, 17, 57,161, 87, 21,146, 44, 66, 65,225, 2,216,226,221,143, 22,209,216,104,144, 19, 33, 5, 83,172, +117, 61,113,188, 5,164,148,114, 98,138,178,139, 8,160,169, 27, 44, 70, 14,143, 2,103, 18,102, 17, 2, 23,211, 97, 40,155, 27, +179,148, 68,213, 98, 81,101, 96,137,158,224, 56,114,162, 37, 39, 55,186, 92,212,122,162,106, 72,205,169,174,227, 25,148,225,128, +198,128,196, 65, 78,176,102,226, 52,133,103,150, 65, 28,165,134,103,193,171,115,107, 29, 85,162, 4, 39,119, 99, 39,103, 39,181, +212, 90, 87,184, 20, 35, 32,132, 33, 80,231,228,230,158,132,188,182,195,157, 48, 80,189,245,137,182, 38, 67,135, 86, 72,138,150, +212, 22,211, 51,119,138,169, 6, 48, 99, 38, 85, 3, 57,106,108,216, 41,156,114,241, 24,107,193, 82, 18,181, 26,184,166, 56,240, + 90,147,232, 98, 90, 11,126, 15,204, 27,220,197, 0,142, 98, 26, 2,131, 53,140, 65,145, 80,118,234, 38,211,233,198,198,166,234, +133, 49, 97, 90,107,173,125, 89,148,242,120,239,232,254,195,157, 7,187,123, 79,246, 14, 18, 90, 44,185,225,250,198, 65,163, 70, + 8,194,219,208,234,227,217,165,117, 51, 68,235, 59, 70,232,204, 88, 26,224, 30,141,151,129,255, 91, 23, 66,137, 68,241, 31,214, +124, 45,180, 19,139, 8,231, 60,185,241,213,103, 55,111,222,249,224, 39, 63,155,111, 76, 86,203, 37, 26,194,220,104,100,218,211, + 56,151,182,225,175, 77, 25,161,132, 59, 76,221,173,214, 58,217, 56, 70,101,216,127,246,116,107,251, 36, 76,111, 93,249,242,211, +207, 62, 86,245,239,191,253,206,201, 83, 47, 44, 52,231,227, 39,230,147,233, 80,250,163, 39,187, 15, 31,222,125,252,232,209,253, + 71,143,174,223,186,179,191, 60,250,209,119,222,252,183,127,249,155, 83,167, 79, 44,142, 86, 22,189,222,206, 63,248,225,247, 62, +250,240,143,215,110,164, 87, 95, 58,191, 90, 13,204, 45, 93, 23,247,153,150,176,140,254, 64, 78, 44,210,215,162,170,221,108, 66, + 12,117,101,161, 32,216,170,133, 61, 38,101, 22,144, 9, 97,112, 15,186, 24,152,156, 56,119,157, 12,131, 90,212, 68,147, 36, 17, + 65, 32,141, 96,166,129,196, 38, 88,235,210,108,121, 40, 7, 75, 74, 90, 45,229,142,133,195,136, 40, 20, 91, 14,156,222,222,222, +152,205,181,244,165, 95, 45,142,142,142, 86, 75,115,148, 90,135,213, 2, 90, 35,179, 0,213,212,229,139, 47,190,116,229,242, 17, + 97,112, 51,225,132,228, 52, 63,102,176,151, 95,123,105,239,217,238,107, 47, 93,120,182,127, 25,240,161,234, 76,162,202,206, 88, +186, 55, 94,125,237,241,206,163,123,143,118,178, 68,123,154,207,114,118,226,162,101, 53,212,131,163, 85, 22, 73, 89, 4, 88,149, +194, 96,107,250,136,183,222, 33,196,232, 54,214, 62,198,138, 74,130,138, 55,206,188,110, 14, 22, 38, 53, 23, 70, 34, 82,213, 64, +197, 48,139,185, 69, 81, 55, 19,171, 18,204,133, 72,217, 21,173,143, 62,137, 84,173, 99,225,111,220,109, 21, 70,226, 94,221, 93, +173, 84,101, 80, 78,169,170,198, 25, 76, 53,110, 95, 13,119, 74, 99,248, 62, 32, 10, 68, 49,192,106,172,187, 67, 36, 39,225, 82, +135,120, 32,169, 58,177, 50, 37,114,144,197, 18,120, 13,210,118,119, 87, 55, 6, 4, 82,195,122, 16,213, 46,224, 82,251, 36, 82, +213, 19, 73,107,188,102,192,189,148, 10,145,240, 40, 39, 22, 77, 6, 2, 75, 52, 50,133, 48,101, 76,168,253, 0,184, 68,226, 21, +136,244,150,129, 86,101,197, 96, 13, 16, 70, 2,147,184, 7,210, 43, 42,127,157, 2,180,201, 60,110, 53, 97,113,191,166,177,204, +219,201, 16, 79, 58,234, 68,224,232, 75,169, 35, 79, 57, 54,139,110,206, 78,125,173,194,100,102,102, 54,168,234,106, 53,155, 76, + 82, 72,203, 32,107,232,155,134,248,111,199, 10,245, 82,181, 20,131, 57,101,160, 18,152,146, 48, 19,151,161,119, 55, 99, 35, 48, + 19, 27, 97, 53, 12,113, 18, 72,146, 72,164, 10,160,224,196,196, 81, 83,134, 74,206,141,236, 19, 68,204,182,225, 53, 38, 6, 69, +122,182, 77,218,194, 36, 66,156,152, 27, 26,165,225, 89,162, 90,135, 24,170, 52,242,233,192,108, 30,245, 91, 12, 82,144, 4, 88, +185,193, 52, 98, 23, 89,157,226, 66,148,228,225, 17, 18,114,243, 48,132, 52, 9,203, 45, 17,177,112, 29, 44,250,198,204,205,205, +198,128, 35,185,179,250, 96,218,152, 21, 12,114, 36, 18, 37,136,185, 69, 17, 6,129, 59,150, 98,106,238, 90,148, 48, 54,205, 0, + 12,246,156, 55,114,247,234,124,243,141, 75,231,132,253,201,179,189, 20,157,168, 99,124,188,173, 73,131,205,177,230, 61,133, 35, +160,177,105,209, 56, 97,161,121,183,251,219,250,224, 29,118,199, 17,119, 57,186,107,108,221,187,205,107, 28, 20, 33, 73, 34,179, +127,250,240,239,212,233, 39,191,250,117,162, 90,106,109,211, 58,161,157, 95,125,124, 28,122, 52,139,175, 73,232,110, 94, 89,178, +153,219, 80, 28, 62,221, 60,126,184,183,211, 15,122,234,133,115, 55,190,250,236,235,203, 95, 62,219,221,191,112,254,244,171, 47, +191, 90,124,186,192,100,126,252,184, 36, 62, 58,216,219,125,182,243,240,254,221, 43,215,175,222,188,123,127,239,240,232,228,246, +177,191,254,243, 95,255,217,143,191, 71,204, 71,203,101, 91, 36,139,152, 89, 5,253,224, 7,223,253,232,163, 63,205, 38,211,115, + 47,156,234,135,158, 71, 31, 8, 92, 67,252,141, 10, 65,195, 64, 62, 29, 22,139, 82,106,158,162,203, 73, 72, 84,157, 68, 70, 28, +131, 11,177,170,169, 34,177,164,212,113,138, 28,129, 0,230,205,247, 6, 2, 51,249,217,227,199,159,196, 31,133, 17,132, 65,117, +100, 10, 70, 96,143, 65, 14,102, 84, 56,134, 50,100,233,158,115,178,195,143, 88,235,185,179,103,166,147,201, 98,113, 84,170, 22, +179,246, 68, 53, 12,171,190,133,136,220,195, 25,121,236,244,169, 99,143,182, 15,158, 62,138, 49,137, 89,104,130,220,119, 50,233, + 86,165,136,251,249, 83, 39,239, 62,221,155,104, 5, 77,213,148,132,203, 80, 54, 38, 27,239,189,243,246,163,157,191,235, 75, 73, + 36,238, 38,146,138,233,193,225,106,169,213, 96, 12, 38,184,132,232, 24,164,136,198, 87, 48, 70, 50,176,155, 11,163,196,109, 62, + 5,237,207,153, 90,247, 1, 8, 66,162,120, 94,229, 27,174, 24,237, 7,176,140, 17, 33, 50, 51,167,176,119, 53,147, 73,124, 38, + 14, 53, 51, 85,181, 64, 52,162,237,106,170,185,174,145,135, 68,106,110,230,213,145,216, 97, 13,172,235,102, 14, 13,198,141, 5, +140,123,188,238,205, 43,121,192,111,224,166, 69, 77,171,145, 51, 71,225, 28,122, 2,135,203, 79,185,121,134, 89,216,107,192,145, + 45,145,100,176,142,191, 39,145,169, 55, 48, 75,184, 66,181,233, 21,193, 16, 15,186, 55,141,211,100,107,121,106,137, 39,118,213, +232,122, 99, 45,131,228, 76, 36, 93,206,181,148,161, 12, 57, 9,185, 39, 66,216,248,172,145,255, 80,204,121, 76,166,131,160,176, +230,126, 80, 85,215, 20,100, 46, 15,115, 51,198, 81,198, 5, 82, 98,231, 64, 66,181,192, 77,152,216,159,211,221,130,199, 89,172, +116, 50,237,203,146,103, 83, 38, 74, 68, 6, 90,244,133,225, 76,168, 14,141,133, 0, 36, 46,197, 52,225,229, 96,230, 70,237,118, +166,238, 98,238, 67, 45,173, 38,142,152,137, 50,101, 99,147,200,166, 18,153,122,146, 54, 82, 85, 31,220,205,201, 56,156,184,141, +139,236, 10,152, 71,141,153,143, 87, 19,155, 25,133,150, 85, 7, 90, 91, 73, 44,192,213, 81,108, 14,102, 78, 45,196, 10,107,174, + 71, 18, 18,173,145,110, 78, 68, 84,213, 27, 0,145,156,199,126,218,246, 78,173,185, 7,102,161,103, 71, 31,123, 72,243,230,234, + 10, 14, 31,170, 61,223, 52,196, 73,218,161, 68, 9, 92, 27, 12,210, 52,128, 19, 68, 70,138, 96,246, 16,160,176,176,134,163, 90, + 29, 25,240, 50,206, 48,106,166, 17, 22, 17, 81,153,164,134,248, 12,118,188,175, 69,230, 17, 73,228,205,107,110, 8, 34,118,112, + 43,219,124,219, 10, 99,125,157, 45,105, 46,118,144,196, 32,234, 17, 57, 27,227,225,163,158,204,128,117, 93,167, 58,252,225, 15, +191,159,109,110,127,255,253,239,247,253,162,214, 16, 31, 99, 87, 18, 81,169, 56,202, 39,106,239,201,154,122, 68,112,168,169,105, + 53,195,108, 99,243,233,195,219, 7, 71,139,205,141, 73, 95,151,159,124,248, 95, 46, 95,254,154, 36,189,251,206,183,207,156,190, +176,223,115, 55,217, 60, 62,157, 86, 29,118,159, 62,125,120,251,198,245,235,183,174,220,189,249,120,231, 89,238,242, 47,126,244, +221,191,252,213,143,182, 79,110,247,189,161, 88, 11,129,132,222, 66,174, 94,193,249,237,183, 95,255,248,147,171,179,141,141,173, +121, 55, 74, 35,209,158,194,163, 77,138, 0,225,196,165, 84, 53,148,213, 80, 6, 83, 87, 87, 55, 7,167,132,161,118, 34,105, 84, + 31,132,169,237, 1,153,136, 90,101,139,170,171, 85,103,203,156,143,109, 30,219,121,250, 12,142, 90,171, 65,213, 21, 1, 59, 29, + 27,233,226, 28, 49,230,207, 40,113,138,111, 62,183,142,119,118,167,111, 93, 56,207, 44,110,182,234,251,163, 69,239,196,253,106, + 24,220, 86,203,195,248, 1,238, 10, 22, 84, 37,194,249,139, 47, 46, 15,246, 85,123,212, 10,144,112,202,211,217,226,232,232,149, + 87, 95,185,113,229,234, 59, 91, 91,119,126,247,225, 80,250,213,144,187,148,171,170, 8,145,235,241,173,147,175,189,252,210,245, +219,119, 74, 29,230,147,105,117, 95, 14,195, 80, 85,198, 61, 9, 49, 85,120,102,170,234,132,132, 38,134,135, 2,209,114,228, 13, +240, 64,220, 56,232, 60, 62,214, 73, 8,222,171,166,196, 24, 87,154, 22,193, 66, 55,109, 23,100, 12,230, 34,108,230,206,204, 2, + 6,131, 69,106, 52, 94, 82,171,131,140, 43, 84,213,186,204,110, 94, 75, 53,130,122, 13, 21, 40,160,121,181, 68,205,173,155,185, + 69,110,155,192, 0, 73, 34,211,200, 94, 0, 68,210,202,199, 84, 24,197,136,148,156, 76, 98, 8,150,181,235, 37,104,223, 22,192, +222,145, 7,194, 68,225, 6,141,144,103,141,142,107,120, 78, 50,146,249,140,192,230,198,180,214, 67,161, 14, 97,104,141,253, 59, +136, 41,139,196,205, 75, 36, 17,220,132,204, 61,115,156, 42, 60, 44,144, 1, 76, 83,212, 16,188, 77, 53,208,208, 2,169, 84, 91, +218, 16,194,240, 32,197,213,234, 4, 19,130,186, 27,140, 73, 64, 36,137, 59, 38,176,193,172,148, 26,102,167,152, 7,171,147,251, + 56,248, 67, 51, 52,242,226,156, 82, 24,158, 37,177,144,184, 85, 85,139, 35, 44, 12, 68,198,109,123, 97, 81,222, 29,226, 92, 20, + 90,196, 17,202, 34, 27, 54,202,116, 74, 38, 49,164,171, 3, 16,145, 86,119,193, 60,122,162,218, 79,140,188, 37,152,217, 80,199, +252, 85, 72,246, 76,166,174,100, 72,204, 12, 33, 98, 78, 49, 76,146,187, 83, 18, 42,198,194,173,255, 14,240,118,142,105,137, 75, + 78,100,181, 53,105, 50, 89, 76, 72,174,174,180, 22, 62, 34,140, 97, 49,143,140,124,150,177, 58,187,121,131, 25,238,141, 85,228, +186,110, 97, 85,115, 85, 99, 73,102,149, 25, 26,198, 95,132, 76,193, 22,165,243,110, 65,250,245, 54, 80, 58,152,204,226, 5, 73, +252,157, 17,132,132,187,162, 21,249, 38,127,238,119,180,150, 58,107,104,232,214,235,215, 84,102, 27, 33,146, 77,137, 39, 31, 27, + 26, 49, 62,195,137,216,201,128,248,188,226,201,164,227,105,217,215,244, 2,118,234,166,179,253,167,143,255,233,143,255,120,254, + 91,175,191,242,202, 75,171,126,209,176, 98,112, 55, 29,251,100, 70, 90,153,141,176,255,181, 32,102,102,165,212,170,211,205,173, +163,189, 39,117, 40,211, 99,219,168,245,225,189,219, 87,190,254,122,119,247,224,226,197,243, 47,191,244,178,210,124,169,211,205, +205, 41, 51, 47,143,246,158, 62,125,112,235,218,141,203,215,191,190,123,255,241,170,232,247,191,243,230,111,127,241,163, 23,207, +159, 53,194,114,217, 7, 21, 11,141, 99, 31,183, 63,115,114,213, 97,126,252,248, 91,111,190,248,233,103,159,253,240,131,247, 51, +139,194,104, 92,157,132,185, 37,144, 61, 14, 12, 67, 5,211,160, 37, 39, 97, 80,113, 99, 2,136,139,105,244,102,177, 41, 17, 39, + 73, 41, 65,146,136, 68,115,131, 84,143,181, 30,149,162,179, 99,115,134,169, 27, 9,139,123,146, 4,162, 9,139,155,246,165,228, +201, 52,164,141, 52,198, 99, 36, 73,215,229,170,181,154, 18, 92,162,217,130,232,220,185, 51, 65,134, 61, 58, 90, 30, 46,143,114, + 78, 7,187, 7, 76, 88, 46,163, 21,172, 62,175,150, 96,108,110, 29,223, 62,121,246,241,206,125,138,180,159,123,206,194, 68, 58, + 12,147,217,236,196,214,137, 55, 94,190,244,229,213,187, 93,234,166,147,169, 85,115, 82,131, 39,202,111,190,254,234,253, 71,143, +118, 15,246, 99,201, 11, 18, 98, 34,130, 40, 1,161,131,216, 56,224,180, 41,166, 93,236,238, 45,148,219,100,152, 22,136, 94,231, +153,219,246,101,141,192,104,176, 77, 12,117,152,118, 73, 40,244,153,112,243,170,153,243, 40,216,195, 33,113,125, 54, 48,158,134, +235, 82, 66, 91,168, 77,126, 38,152,154,119, 34, 86, 6,211,154, 82, 46, 90,171,195,220,149,204,149,140, 91,246,211, 84,153,136, +147,112, 78,172, 1,132, 33, 38,238,136, 43,179, 26,132, 57, 11, 86,225,165, 36, 38,167, 90,213,160,132,232,118,136,209,143, 71, +115, 71, 67,174,130, 71,119,121,124, 5, 83,142, 21, 91,169, 86,107, 73,221, 4, 68, 41,172,129, 49,225, 50,151, 90,162, 25, 53, + 8, 78, 18, 53, 45, 73, 58,164, 82,213, 17,157, 63, 60,201, 19, 35,243, 98, 70,205,235,102, 64, 23,216, 86, 97,144,193, 73,205, +132,192, 2,150, 68, 76,196,173,158, 45,108, 12,238,177, 9,142,151,202, 81,165, 91,181,192,188,122, 37,112, 78,212,151,202, 48, + 24, 3,158, 89,136, 56,167, 20, 29, 29, 32,207,194,196, 73, 77,153,196,220, 13,206,145, 79,181, 6, 33,104,212,108,120, 2, 27, + 67, 88,160,181, 17,205, 56,190, 17,163,106, 71,224,148,152,217, 66,144,200,162, 0, 0, 32, 0, 73, 68, 65, 84,220, 66,219,213, + 90,219, 46,179,221, 10, 69,214,102, 11,196,237, 3,236,144,240,249, 17,160,198, 93, 98,206, 76, 52,208,128,145, 29, 97,225, 12, + 52,203, 19, 68,213, 45, 0, 85,175,165,130,200,181, 58,165, 81, 23,126, 46, 20, 51,145,122,195,165, 53,237,162, 53, 34,182,142, +145,248,156, 99, 92,143, 49,199, 92, 91, 80,200,212, 13,141,108, 48,218,106,162,113,222,227,193, 26,141,120,136,186,143,224, 31, +143, 12,223,248,213, 26, 14,126,244,168, 51,135,113,121,189, 68, 13, 93, 74,136, 65,156,154,198, 98, 70,156,218,192,238, 80,117, +138,186,133,216,114,217,200,123, 88, 15, 21,227,242, 8, 13,188,214, 14,198, 81,113, 54,174, 72,194,218,104, 97, 41, 24, 53, 85, +155,204,102, 79, 30,220,255,167, 79, 62,126,239,251, 63, 57,181,125,124, 24, 22,214,248, 2,172,181,140,139, 84,105,223,236,113, +119, 9,111, 96,123, 51,213,170, 68,233,216,169, 19,207,158,236, 16,229, 19,103,207,220,185,246,213,221,107,215,190,186,122, 53, +117,147, 31,125,239,189,110, 99,123,229,211,233,100,115,150,187, 94,251,253,103, 59,143, 30,220,254,242,242,151,215,110,222,190, +255,116,111,123,235,248,255,244,223,255,226,187,239,190, 73,137, 87,165,114,108, 8,220,137, 18,154,111, 34,124, 28, 18,106, 97, + 25,202,246,233, 51,111,152,254,195, 71,159,254,252,167,223, 35,101,138,146, 2, 50,142,141, 84,235, 97, 96,131, 2, 88,245,131, + 8,107,144,234, 68, 82, 10,159, 8,139,112, 55,153, 76,114,166,204,172,110, 85,225,168, 69,187,220,185, 19, 49,171,250,238,193, +209,246,137, 83, 28,204, 25, 96, 50,155,166,184,114,217, 86,165,152,155,120,163, 23, 54, 15, 36, 19,152, 50,133,248, 30, 3, 12, +155,249,201,227, 91,231, 79,158, 81, 83,119, 63, 56, 58, 90,244,131, 27, 14, 86, 75, 48,245,203, 37, 12, 68,185,173,173,153, 96, +160,140,243, 47,189,180,191,187,211,219, 42,228, 0,115,158,206,231, 71,251,251,201,116,103,103,231,131,247,222,187,115,251,225, +106,181,146,148,167,211,169,170,133,235,115,235,216,246,155,175,191,254,240,233,211,190, 84, 16, 79, 18, 18, 72, 64,149,108, 13, +123, 53,179, 44, 92,204,215,163, 65,104,126,125, 89, 33,117,220, 12,118,235, 8,100,152,140, 65, 32,139,105,124,228, 79, 55,204, +161,195,129,106, 37,214,140,230, 38, 20,181,121,163,209,114,204,223,235, 24,166, 51, 64,200,195, 60,105,166,110, 97,140, 4,171, + 57, 27, 59,226,156,107, 17,160,244,120,205, 78, 77,164, 32, 73, 66,176, 44, 98, 85, 53, 12,141, 66, 76,158,133,147, 37, 97,150, + 68, 66,137,105, 96, 6, 9,231, 73,210,162,195,208, 14,183,173, 49,173,173,184,252, 57, 56,201,209,106,199, 29, 85, 33, 24, 8, + 28,173,234, 52, 62,223,168, 33,107,188,154, 54, 26,157,163, 26,152,168, 75,185,116, 98,213, 77,145, 37, 81, 99, 99, 54,107, 41, + 57,155,215,181, 61, 29,132,201,164, 19,192, 60, 6, 91,143, 67,147,185, 10,231,204,124,160, 22,132,203, 54,123, 58,152,201,212, + 57,232, 56, 6, 78, 4, 99,181, 18, 56,192,208,141,218,126, 66, 97,166, 48, 73, 99,139,116, 6,131,184,212, 2, 80,228, 75, 61, +120, 12, 54,178,245,195,237,107,174,230, 48,103, 97, 2, 21,160,107,119,232, 86,110,197,225,195,144,156,136, 1,138,247,223,160, + 93,234,180,138,214, 26,160, 31, 78, 13,112,155,226,135,127,131,229,201,205,201,200, 41,137,140,221,214,204, 68, 81, 5, 67, 92, +106,209, 90,146,204,145,152,220, 44,248, 42, 18,142,117,105, 4,195,102,116, 1, 73,220,141, 67,169,226,181,193, 70,213,192, 96, +136,121,187, 89,133,168, 72, 78,193,169,104, 95,207,102, 66, 71, 14,164, 68,251, 99, 6,114, 8,143,157,209,112,212,209,120,221, +250, 44,225,102, 22,221, 77,173,170,138,217, 93, 33, 13,224,193,230, 22,240,160,209,146, 18, 2, 44,165,216, 26, 56,137,143,172, +118,119,231,180, 86,185, 67, 80,178,245, 43,107,243,126,251,195,207, 99,172, 45, 55,248, 60,173,180,126, 0, 16,141,180,106, 6, +165,212,221,191,121,251,243, 47,191,252,224,167,191,220,158, 79, 87,253, 82, 13, 94,122, 18,166, 44, 45, 24,213,224,121,161,142, +197, 73,169,173,118,221, 76,205, 69,210, 98,209,175,250,199,171,195,195,249,214,214,199,191,255,255,174,126,125,229,233,254,193, +203,223,122,241,253,119,222, 90,233,188, 71, 55,155, 79, 97,182,191,255,100,247,233,206,221, 59,215,191,188,114,245,198,157,251, +230,254,163,239,189,249, 55,127,241,235,237,211,219,139,101,239, 69,163, 50, 13, 32, 55, 5, 85, 68,203, 15,113,140, 56,110, 97, + 48, 32, 45,229,133,115,231, 9,242,249, 23,215,223,123,255,173, 90,170,187, 58, 68, 85,193, 76, 77,187,243,190,239,235, 80, 15, + 23, 75, 22,202,194,102, 10, 34, 45,133,157, 5,156, 82, 78,194, 57, 39,113, 74, 44, 66,148, 51,167, 20,223, 89, 19,230,161, 14, +238, 56, 54,159,166, 46, 39,102,119, 63, 88, 28,205,143, 29, 15,243, 70,173,189, 89,116, 40,145, 8, 20,106,214,212,141,170,214, + 77,186, 56, 73, 5,239,246,133,211,219, 39,182,183, 8, 82,139, 29, 45, 86, 67,169, 6, 95,173,122,166,116,120,116,216,142, 68, +107,111, 44, 96,213, 38, 27,211,147,167,206, 63,120,112,139,132,181, 12, 32, 97,241,233,198,198,230,230,252,233,238,190, 91,125, +243,181, 75,159, 95,187, 51, 44, 23, 93, 11, 52,164,206, 25,134,151, 46,190,248,218,139,119,175,221,185, 39,240, 96, 77, 27,161, +130,162,208,122,146,243,192, 84,181,105, 11, 10,196,206,153, 65, 86,169,184,130,220,205, 25, 12, 4,144,160, 65,106,131,110,161, +230,235, 78, 9,139, 51, 45, 19, 83, 56,148,189,201, 27,140,214, 75,217,206,151, 86,125, 36,164, 58,188,169,147,128, 33, 73,231, +228,174,131, 11, 7,121, 81,107,105,102,201,214, 29,105,197,149, 41, 44,191,209,138,225,102,232, 70,171, 98,141,158, 12, 2,105, +184, 29, 52,119,157,153,182,226,235, 8,171, 54,128, 73,164,247,155,229,171,157,135,163, 37, 47,228,213,184,223,131,195,169, 96, +109, 82,176,168,180,139,120, 32,165, 96,201, 11,108,164, 63, 34, 46, 88,148,136, 73, 17, 6, 55,120, 13, 22, 86, 60,240, 70,108, + 27,106,173,213,109,189,114,175, 6,167,176, 45, 68,245, 29, 79, 37,171, 99,213, 87,243,234, 13,199,108,109,125,102, 46,210,170, +163, 8, 12,171,112,239, 18, 15,149,187,110, 18, 63,222,219,121, 30,236,236,160,170, 72,112,114,174,240, 68,158, 57,171,219,193, +209,162,150,154,208, 66, 6,222,150, 68,113,132, 52,134, 35, 5, 77, 22, 41,222, 32, 98,152,129, 91,181,185,183,112,172,106, 45, +213,163,136,213, 57, 65,213, 71,201,167,181, 94, 49,129,153,131,208, 0,131,248, 55,115, 90,237, 31, 26,233, 63, 58,128, 34,174, + 96,174, 90, 35,141,233, 24, 61,237,102,196, 45,109,187,142,242, 16,147,169, 66,162,242,176,185,163,199,167, 7,135,226,210,182, + 90,237, 62, 70,102,197,193,241,150,186, 19,181,155,248,168,104,147,123, 85,192, 73,164,193,114,227,173,113,113, 51,150, 56,236, +198, 53,194,113,222, 30,221,104,141,240,195, 4, 35,118, 53, 33, 82,131, 71,178,155,226,193, 12,134,166,245,106,191, 21,172,240, +216,104,187,190, 69,143,229, 43, 88,255, 60, 64,173,186, 26,113,147,227,215, 4,206,160,116,198,101,238,205,204, 24, 36, 60, 19, +226,148,228,202,231,159, 62,122,178,251,253,159,252,108,107,115,186, 90, 46,135, 97, 81,135,149,105, 24, 65,114,202,147,198, 49, +227, 96, 10, 27, 49,220,162,197,196,188, 42, 37, 89, 45,150,169,155, 88, 61, 98,153,192,235,199, 31,254,221,181,155,183,182,182, +182,126,241,147, 31,110,109,159,219, 43, 44,105,186, 49,155, 14,203,163,253,221,167,143, 30,221,185,122,253,198,181,155,183, 30, + 63,125,118,225,252, 11,127,245,203, 31,127,240,222,183, 13,124,112,180, 28,143, 39,207,211,179, 49,194,181, 80, 97,156,245, 70, +143,187,129, 74,209,179,231,206,238,238, 30,126,242,249, 87,223,125,231,205,161,244,238, 26,254,141,144, 94, 88,120,185,236, 35, +232,156,152,115, 98, 22,105,168, 16,241, 10, 77,137, 67,196, 42, 94,153,153, 37,149,210,154,127, 28,166, 90, 22, 61, 12,206, 44, +147,220, 77,186, 48,140, 81, 72, 61,213,188, 20,207, 41, 9, 51, 84,173,201,136,198, 68, 93,234, 34,112,191, 38, 55, 17,209,203, + 23, 47, 77, 38, 83,117, 43,170,135,139, 5, 59, 45,151,171, 82,134, 46,243,222,193, 2,238,100, 8,144,142, 55, 22, 39, 89,213, + 23, 94,250,214,193,222,147,197,226, 48, 26, 51, 64,153, 58,148, 50,204,230,211,251,183,238, 93, 56,123,246,201,238,225,253,103, + 7, 93,237, 39, 41, 87,213, 78,140, 56,119,221,228,221, 55,223,190,251,112,103, 40, 3, 17,169,150, 73,202,188,126,234, 7,242, + 59,132,181,150,237, 9, 93, 18,131, 14, 98, 41,103,161, 49,120, 17,192,145,214,217,218, 96, 6, 35,209,104, 36,153,167, 40,250, + 52,107, 62, 56, 49, 73, 19, 43, 53, 34, 57,110,110,110,209,105, 23, 31,159, 16, 25,195,157,106, 68,178, 9,139,126,213,113,106, +131, 45, 19, 41, 9, 9,192, 14, 13,240,111, 88, 33,201,220,216, 0, 38,115, 23, 98, 98, 17,162, 21, 72,136, 65,224, 88, 4,184, +169,173,189,110, 10,119,162, 58,170, 77,109, 14,231, 24, 11,131,198,211, 92,124,205, 45, 10,178, 17, 83, 46,237,148, 26,193,212, +160, 83,152, 23,159, 76, 51,193,132, 81,109,172, 77,107,253, 20,173, 27,137,195,121, 64,220, 44, 49, 4,107, 78, 62,140,220,106, + 90,255, 15, 63,135,139, 48, 19, 33, 17, 51,215, 82,131, 15, 43,142, 34,113, 63, 98,118, 67, 0,199, 28, 34,172,213, 23,171,126, + 99, 54, 85, 43, 13,203,109,174,104,133,160, 41,177, 17,170,214,233,116,163,243,240,250,197, 67,146,146,200,224, 0, 81,176, 4, +215,150,146,216,208,250, 24,197, 34, 14, 73,153,114, 74,165, 84, 68, 28, 56,114, 2,100, 34, 41,231, 92,181,143, 63,220,206, 65, + 26, 38,100,132,141,100, 29,104, 34, 48,216, 77, 61, 10, 4, 34,186,236,134, 4,238,189,152,107, 40,176, 33,111,231,148,221,170, +185,197, 34,186, 26,224, 22,193,197,198,129,107, 43,200, 8,236,144,187,169, 41,115, 30,207, 57, 20,246,145,144, 32,157, 91,235, + 81, 56,188, 93,163, 26,146, 91, 11, 74,228, 11,162, 50, 34, 30, 18, 18,182,137, 38, 12, 55,120, 0, 52,232,161,109, 62, 38,152, +197, 37, 76, 22,206,124,119,119, 47, 26,136,158, 49, 44,234,227,162, 59,102,121, 38,131,166,166,173, 48,193, 67,194,140,184,100, + 64, 32,215,149,127,104, 45,126,218, 96,115,117,117, 84,107, 73,147,205, 73,151,172,237,254, 90, 81, 96,123,188, 84,227, 44, 17, + 42, 37,152,136, 76,114,254,232,247,255, 85, 57,253,240,199, 63, 77,137,250,213, 82, 75, 89, 29,238,214,254,104, 50, 63,157, 82, +110, 56, 84, 97,178, 6,164,116, 50, 15, 86, 88, 45,206,105, 99,123,123,239,201, 14, 49, 29,219,222,126,112,251,201,222,157,219, + 95,124,249,213,238,209,226,251,239,191,117,246,204,185,222,183,142,106,238,102, 19, 34, 28, 60,219,121,244,240,238,237,219, 55, +174, 92,191,113,235,254, 99,131,255,197,159,253,248, 87, 63,253,224,216,230,230,170,154, 89,105, 27, 90, 56, 91,188,196,245,110, + 38,106, 4, 99,250,179,134, 30, 4, 17,188, 86, 51,247, 55,222,122,245,250,215, 87, 63,253,252,202, 91,111,190, 82,139, 82,203, +226, 69,111, 45, 86,203, 94, 85,139, 85,102,238,251,194,110,157,100,230, 68, 40,225,231, 93, 13,197,204,173,168, 51,139,184,154, +178,187,144, 48,177, 1,253,208, 3, 94, 77, 17,244,106,134, 72,134,193,137,234,160,197, 26, 18, 43,174,206, 68,164, 68,146,164, +170, 54, 49,211, 43, 81, 6, 83,150,244,250, 75,223,146,156,172, 47,165,214, 85,223, 19,211,209, 98,101,166,228, 60,212, 50, 30, +254, 4, 80, 18, 7, 73,192,188, 82,158,156,189,116,233,214,213,175,163,251, 71, 77,217, 89, 82, 18,213,243, 23, 47,238,239,237, +190,116,241,133, 39,187, 71, 71,171, 21,111,228,196, 86,172,102,201, 2,108,111, 29,127,251,213, 87, 62,250,236,179, 60,153, 4, +183,202, 28,112, 43,160, 82,135, 40,165, 26, 5,186,104,228, 33, 83,128, 88, 25, 18,136,200,231,119,189,134,155, 54,119,138,136, + 20,125,179, 73, 98,108,245, 36,146,152,229, 33,166, 40,102, 78,238, 74, 14,101, 23,129,172,134, 69, 18, 30,168, 70,192, 51,176, +167,253,208,147,250, 98, 40,202,150,115, 74, 34,238,108, 81,123, 30, 37,212,196, 97, 11,246,198,187, 32, 2,229,196,173, 10,219, +131,210, 31, 7, 12, 54,167, 90,139, 86,157,118,121,112, 8,177, 0, 66,148,153,205, 13,228,169,125,255,149, 27, 57,134, 64, 72, + 28, 25, 74,183, 86, 32, 27, 90, 17,180,221,202,220,201, 80, 73, 51, 17,188,172,250,217,100, 18,171,137,214,205,234,238, 9,228, + 72,204, 66,110,160, 44,121,237, 54,166, 22,182,143,172, 20, 26, 12,111, 12,165, 54,210,187,187,187, 7,103,185, 22,205,209, 34, +194,208,218, 12,207, 77,109, 77,217,155, 81, 89, 99, 19, 91,203,160, 93,166,148,180, 6,226,110, 84, 90,160,131,171, 24, 35,161, +235,210,225,178,159,136, 1,110,102,194, 50,159,229, 85, 79, 49,127,132,217,131, 5,132, 70, 0, 86,117,135, 53,131,160, 52,201, +159,154,109,180, 69,124,213,144, 19,131,201,204,210,136,154, 74, 68,195,248, 2, 98,173,161,238,236,110,177,202,178, 49,150,226, +205, 48, 82,205,122,213, 90,163,230,148,213, 91,133,232,100,146,217,106, 84,186, 27, 89, 45,218,121,172,116,226, 1,197, 24, 97, + 60,174,202,146, 97, 26, 27,104,138,123,121,244,144, 4,189,162,113, 20,220,163,125,214,156, 64, 34,205,224,222,148,106, 33,120, +128,109,219, 51, 54,174, 3,146,248,244,217,188,154, 21,133, 4,214, 32,136,239, 48, 43, 14, 9, 5,163, 29, 49, 48,130,247,163, +225, 2, 60,154,246, 29,206,241,227, 32,105, 77, 23,104,224, 59,247,200, 45, 52, 33,159, 28, 36,173,203, 38,150,159, 76, 80, 53, +181, 40,225,182,166,118,145,136, 88,248, 91,218, 36, 64, 62,166,154,152,115,102,250,221,127,254,207,105,115,235,199, 63,250, 97, + 63,244,106,240, 90,250,229,174,150, 5,113, 38,233,184,155, 16,181,238, 34,183, 18,155, 88, 16,187,171,105,173,213, 38, 91,243, + 7, 55,175, 87,245, 51, 47,190,248,249, 31,126,119,247,250,213,235,183, 31,156, 56,185,253,151,191,250,137,167,249,254, 48,207, +243,233, 68,216,116,216,121,116,239,225,131,123,183,110,223,190,122,243,214,227,221,253,243,231, 78,253,187,255,238, 55,223,126, +237,229,101, 95,130,193, 50,246, 60, 59,175, 67,133,177,151,118,139,194, 67,109, 78, 88, 48,179,143,128,111, 2, 65,109,232,235, +107,111,190,241,233, 39, 95,236, 29, 28, 30,155,111,184, 42, 9,197,156, 65,230,139,229, 33, 8, 86, 77,161,131,112,169,206, 73, +132,188,244, 90,173, 50, 39, 70, 9,166,152, 48, 1, 92,171,170,131, 51,187,161,148,224,146, 74,151, 82,213, 74,238,106, 8, 33, +136, 97,213, 42,220,171,217, 80,180,235, 24,112, 53, 35, 65, 78, 9, 85,179,164,222, 43, 57, 72,140,129,227,199, 54, 95,186,116, + 41,246, 42,139,195,189,197, 48,192,108,239, 96,143, 88,220,177, 88, 14,160, 14, 9, 30, 21,231, 77,243,115, 16,213,178,218, 60, +113, 98, 99, 99,243,240,112, 31, 34,108,238,156, 24, 32,170,155, 91, 91, 7, 71,135, 57,167, 87, 46,156,254,234,238, 35, 45,131, +204,166,181,104, 73, 53, 73, 55,155,230,183,223,124,235,254,206,227,219, 15, 30, 78, 38, 19,162,224,176, 81, 98, 44,139, 2, 16, + 24,211, 88,141,198, 14, 3, 51, 79,115, 14, 33,190, 37,233,121,156, 79,133,199, 73,140,157,108,252,192,226, 34,140, 72, 73, 43, + 22, 13,144, 57, 11, 85,175,177,111, 54,195, 36,139,171, 6, 73, 70,205, 90, 69, 6,195,129,126, 40, 76, 36,196,102,234,202,156, +137,128,149, 89, 8, 7,213,220,217, 85,225,130, 28,233, 6, 0,204, 10,119, 83,118, 38, 66, 39,180,126,236,131,224,196,148, 93, +114,202, 78, 43,210,177,176,184,133,189, 2, 20, 44,177, 74,117,128, 60,139,120,196,114, 49, 42, 31, 6,136,175,173,117,214,112, + 22,214,124,201, 12,146,212,154,218, 90, 76, 10, 2, 7, 83,202, 89, 74,182,170, 53, 8, 61,196, 1,236, 72, 36, 43,175, 41,165, +120, 57,163,211,141, 27,254,149,130,167,175,204,236,110,170, 4,212, 46, 77, 76,205,184, 61,185,194, 12, 97, 1,161,196,212,193, + 90,205, 65,211,233,180, 19, 49,162, 3, 56, 89,195,236, 41,131, 77, 34, 84,148, 36, 19, 19,187,229,212,181,145,143, 41,113, 71, + 52, 18, 77,198, 85, 74,108,144,100,236,172, 34,135, 16,213,102,117,109, 56, 52, 1, 87,183,184,146, 4, 20,181,115, 21, 54, 97, +210, 26,190,239,246,155, 71, 6,216,131,208, 75, 48, 55, 19, 88, 5, 3,130, 88,113,154, 87,175,181,144, 7,141,192,165,109, 85, + 76,131,132,204,201,161,153,120,160,208, 79, 34, 94,213, 30,118,204,112,109, 19,197,152,206, 51,208, 8,126,117,119, 24,145,216, +120,122,112,179,118, 98, 26,195,245, 28,125,185,163, 3, 48,100,121, 35,111, 95, 10,143,139,124,132,105,147, 80, 99, 59,199, 4, +246,156,140,235,163,250,164,186,238,201, 35,143,141, 82, 16,247,154,154,110, 66,137,208, 54, 34,214,172,118,205,222,216,188,250, + 99,118,201,218, 3, 93, 91, 92,213, 25,121,182, 33,146, 40,108, 33, 28,107,174,102, 28, 30, 53,154,150, 97,153, 76,102, 7,123, + 79, 63,249,248, 79, 91,167,206,188,255,221,239, 68,138, 50,190, 0, 41,117,150,231, 32, 73, 41,177, 16,140,215,141,128, 17, 65, +132, 69,171, 56, 87,235,119,175,125,113,236,204,139,180,255,248,147,191,251,127,190,186,114,109, 40,254,189,247,222,125,229,149, + 87, 15,250, 52,104,183,177, 53, 39,211,195,189,221, 39, 79, 30,220,190,113,227,250,173,219,215,239,221,239, 38,221,111,127,241, +163,191,250,205, 79,167,221,100,177, 28, 76, 45,178, 24,205, 73,222, 40,121,141,109,136,209,215, 17,192,221,200,201,197,182,181, + 61,254, 48,194,217,151,195,235,175,189,242,233, 23,215,222,124,243,181,173,249,180, 84,143,117,134,153, 61,219, 59, 82, 53,141, +103, 36,204,160, 48,130, 72, 74, 50,203,201,201,150,171, 62, 98,249, 69, 67,163,165, 80,159,106,173, 14,144, 55,119,163, 48, 49, +168, 14,195,203,175,191,114,225,204,153,123, 59, 59,218, 98,186,129,238,137,149,176, 20,173,165, 42,146, 44,251,158, 64,196, 18, +205,228,219,199,143,159, 58,115,178,104, 41,253,242,193,206,238,178, 31, 86, 90,150,171, 94,152,201,125,177, 92,197, 3,219, 65, +227,169, 50, 70,120,133, 91,202,147, 83,231, 46, 44,175, 31,154, 58,113, 2,123,242,204,146,150,139,195,173,227,199,151, 71, 71, + 47,190,120,254,198,131,199,253,208,119,147, 41, 11,151,126,152,204, 51,119, 50,247,249,111,126,246,203,203,215,174,223,186,123, +107,119,119,151, 36,150,114,221, 44,229,197,208,123,148, 74,199, 95,211, 84, 15, 98, 74,185,147, 78,228,112, 24, 74, 95,226,202, + 76,227, 42,222,224, 48,197,154,102, 48,170,166,223,204,187,133, 5,158,154, 4,202, 68,150, 72,106, 84,244, 41,165, 20,223,133, +209, 2,230, 94,181, 76,242,100,179, 75,197,140,199,210,236, 72, 88, 87,247,106,198,128, 49, 90,113, 1,164, 41,133, 54,214, 38, + 74, 50, 7,105,141,175, 94,116, 98, 11,137,195,138, 85,215, 34,129,109,129,151,208,238,130,178,215,168,197,238,142,170,106, 17, +141,115,111, 62, 10, 6,201,232,253, 24,253,105, 0, 58, 22, 39, 82, 81, 17,118, 71,151,186, 90,251, 90,123, 26,205,115,165, 70, + 99, 99, 56,230,162, 14,137, 72, 28, 74, 0, 43,185,185,151,120, 44,192, 51, 49, 55, 3,223,186,176,193,163,190,131,163,160,129, +153,106, 13, 58, 95, 72,202,230,148, 88, 44,114,118, 57, 13, 85, 55,231, 51, 34, 89, 14, 67,128, 72,218,137,170, 45,253,124,232, +109,146, 65,206, 4,154,118,147, 60,233, 82,107,199,139, 94,119,111,227, 56, 26,150, 0,136, 42,249, 17, 24, 9,111, 60, 20, 33, + 40, 68, 27,180,177,209, 31,216, 37, 37, 17, 73, 42, 44, 33,100,181,214,239,200, 84,232, 56, 83,214,170, 89, 18, 59, 69,248,200, +184,185,111, 99, 9, 18, 5, 45, 22, 12, 62, 13, 66, 17, 49, 5,195,193, 89, 72,146,104,105,235, 63, 15, 33,195,218, 65, 30, 0, + 76, 35,235, 75,113, 90, 4,199,221,131,149, 35,251, 31,103,127, 38,210,184,137,140,187,222,209,235,201, 90, 43, 37, 18, 38,239, +152,106,227, 42, 51,177, 91,117, 34, 80, 5, 55,163,123,187, 64, 42,153, 89,128, 88,213,220,201,131, 13,215,152, 0,193,117,136, +195,178, 89, 80,148,155, 43, 69, 0, 66,138,180,151,143,214, 64,111, 57,187,241,222,215, 14,108, 99,196, 43,150,176,146,218, 46, +140, 27,194, 35, 36, 32, 31, 1,147,163, 24, 79, 27,179,141, 39,247,238,125,246,229,229,111,191,253,206,217,179,167,135,126, 53, +170, 11, 78, 68,156,114,158,204,115,215, 9, 39, 83, 37,150,200,184, 18,147, 15, 78, 66,147,249,177,131,189, 71,171,197,242,196, +233,179,229,104,177,120,246,224, 79,127,252,232,246,157,135,223,122,241,252, 91,111,188, 42,211,227, 59,135,169,219,152,111, 77, +167,125,191,120,182,243,232,254,189,155,215,111,222,190,114,227,214,211,253,189,183, 95,127,245,223,252,197,175, 94,188,112,182, +168, 31, 44,250, 53, 67,100,141,245,161,245, 8, 22,246, 70,230, 81, 80,139, 93, 10, 99,204,212,143, 92,228,209, 9, 65,212, 73, +247,238,155,175,252,211,103, 95,190,245,206, 91, 39, 54, 55, 74,213, 64,204,173, 86,171,212,137, 65, 39, 20,220,108,140,112, 30, +103,138,140,167,167,196,129,157,227, 17, 24,157,178,168, 85, 83,203,156,231,211, 41,183, 86,113,212, 82,127,253,231,127,118,230, +244,246,239,126,255, 97, 24,253, 34,226, 19, 55, 2,201,212,155,155,150, 96,143,120, 52,234,186,178,211,185,179,103, 54,102,179, +229,114,181, 90, 44,135, 90, 96,182, 90,246,238, 6,146, 68, 28,109,102, 1, 14, 71,228,209, 24, 48,109, 43, 57,213,237, 83,103, +158, 61,122,180,183,255, 52, 73,142,167,108, 74,105,232,251,110, 34,211,141,141, 83, 39,182, 79, 31,191,242,224,201,209,114,185, +216, 58,118, 76, 75, 29,106,217,152,228,227,199,142,157, 60,113,234,197,243, 23, 62,249,106,251,255,253,219,223,117, 93,183, 24, +138, 57,152,185, 75, 57, 9,215,166,135,182,115, 34, 24,179,212,109,205,167,110,144, 36, 79,134, 50, 42,100,108,110, 50,134,233, + 27, 76,182,173, 39,209,246, 77, 30, 38,156,118,181,212, 90,218,221, 80,141, 8,194,168,197,200, 21,148,217,161, 20,128,220,248, +196,217,221,187,110,138, 90,133,152, 40,185, 13,212,126,115,169, 86, 18, 40, 17, 12, 20,230, 6, 38, 14, 67, 99,202, 2, 98,152, + 49,161, 18, 11, 71,104,186, 89,146, 97, 34,164, 41,103, 93, 44, 64,172, 32, 83, 99,225,177, 30,164,181, 82,140,214, 20, 39, 38, +213,231,221,215, 13, 84, 71, 32,162,170,202, 96,112,235,199, 20,238,178, 72,117,165, 26, 94, 69,119,184, 56,201,184,211,231,128, + 58,172, 47, 83, 13,223,157,138, 53, 39,190,195, 34, 70, 45, 76, 10,206,192, 0,111, 94, 67, 22, 34, 22, 78,102, 42, 32,109,143, + 14,143, 40, 99, 84,191,154,234, 48,148,156,164,214, 50,203, 27, 67, 41,165,104,219, 79,248, 90, 49,179, 86,245, 0,148, 82,213, +245,238,131,199, 27, 27,147,179,219,103, 54, 54,242,190, 47, 35, 79, 0,176, 43,208,138,251, 0,144, 85,195,250,177, 6, 40,144, +157,220, 24,104,121, 98, 31, 13,203,102, 49,249, 17, 11, 51, 9,185, 40, 9,115,204,163,177, 23,109, 11,196,182,118,253, 6,245, +135,129,170,149, 19, 39,226, 1, 74, 36,238, 30,186, 32, 28,174, 70,110,148, 58, 82,135, 49, 67, 19,133,173, 76,220,130, 45,216, +254, 47,130, 6, 78, 35,178,194, 50, 80,227, 61,115, 70,203,251,106,144, 36,107, 27,254,219, 32,213, 54,162,230,104, 99,136,187, + 89,165, 6, 71, 30,227, 62,173,132,197, 90, 60, 34,179,171,123, 20, 74, 89, 8, 12,161, 19, 81, 64,238,192, 8,201,207,160,100, +206, 20, 85,186, 13,240, 17, 22,228,212,104,110,230,193,251,129,141,166,173, 6, 32,138,167, 88, 20,164, 16, 51,219,248, 44,139, +161,213, 71,173,163, 89, 85,227,250, 85, 5,167,217,108,118,253,242, 23, 87,111,220,249,209,207,127,182, 57,155, 12,101, 8, 17, + 40,148,169,248,158, 74,238,184,155,186, 41,249, 56,188,152,186, 58, 72,186,249,214,131, 59, 87, 68,142,109,159,185,244,224,246, + 87, 15,238,220,252,252,139,175,213,240,139,159,254,240,212,201,211,251,125, 46,190,177,177, 61, 97,199,179,167,143, 31, 63,184, +115,245,234,213, 91,247,238,221,123,248,152, 19,253,205,191,252,205,207,126,248,221,174,203,203,190,180,214, 17, 38, 78,128, 6, + 58,175, 73,145, 78, 99,169,132,175, 67,182,190, 38,218,227, 57,123, 39, 22,205,213,145, 98, 33, 87,180, 76,231,155,239,189,245, +234, 87, 87,175,191,255,222,251,132,234,100, 14,175, 26, 5, 94,108, 98,109, 0, 24,225, 61, 78,212,229, 76,236, 93, 74,211,110, +178, 90, 44, 37,145,161, 53, 69, 86,117,115,218,152,229, 90,243,116,210,169, 25,129, 38,147,201,127,250,143,255,233,252,185,243, + 41, 73,173, 53, 62, 16,142, 1,137,200,213,132,152, 89,170,214,174, 75, 65,125, 17, 98, 23,188,124,233,188,136,184,211,209,114, +113,184,234,139,214,229,114, 89,213, 82,102,192, 87,203, 30,166, 68,236, 24,113,125, 46,142, 66, 44,113, 21,114,162,179, 23, 47, +237, 31,236, 82, 98,175, 85,114,118,162,201,108,174, 67, 15,243,253,221,253,247,191,243,214,225,223,127,220,187,174,250, 62,167, +180, 88,174,220,189, 38,238,171,246,195,106,168, 21, 12, 17, 33, 20,115,119, 66, 78, 41,137, 12,218, 55, 92, 29,140,152, 79,204, +166, 39,230,115, 35,235, 7,221,236, 38, 79,118, 3,206, 37,205, 33, 22, 18,188, 90,148,127, 9, 75,164, 57,155,189,202,161, 80, + 56,101, 91,187,208,188,147,100, 40,203,161, 82, 74,234,102, 77,139, 78, 2, 99,184,128,138,177, 36, 73,204,165, 86,115, 75,156, +108, 12,220,145, 25, 70,171,114, 35,205,196,176,199, 4,134, 83,220,232, 77, 40,133,224, 67,142, 20,157, 67, 74, 36, 36,137,135, +226, 86,149, 26, 10,201,212,171,133,231, 62,142,105, 80, 5,197,252, 78, 45,200, 99,177,224,215, 81, 42, 28, 93,103,252,141,174, +233,208,229,219, 75,227, 22, 44, 39, 15, 75, 63,188,152,101, 67,234,146, 90,137, 48, 21, 50,154, 31, 36,234,227,190,129, 10, 81, +115, 14,104, 49, 81,232, 86,173,123,149,168, 86, 15, 56, 96,171, 86,166, 88, 38,250, 8,244, 84, 87,103, 34,133,229,156, 82,169, +230,241, 60,224,208, 45,205, 61, 81,102, 1, 39,130,196,135, 56, 28, 29, 30,222, 92, 44, 95,186,120, 33, 9,197, 94,215,220,130, +134, 28, 55,237,148,147,194,188, 54, 21,119, 84,101, 72,200, 28, 28, 61,230,107,131,151,153,194, 61, 17, 42,147,169,167, 76,174, +196,196,112, 34, 78,237,222,137,152, 88, 35, 54, 7, 89,183,175, 18, 91,220,198,132, 5, 82, 85,169,148, 6, 20,115, 37, 6, 40, + 1, 86,189,186,133,113, 50,199, 30, 81,221, 34,114,229,181, 70,195,161,251, 58,206,212,214,212,113, 91, 71, 52, 69, 50,187,246, + 99, 1,153,135,251,206,131,144,174,218,124, 43,102,214,162, 91, 4, 33, 55,136,145,121, 37, 74,102,234, 22,224,231, 10, 25, 87, +178,230, 90,141,153,192,228,205,245,214,218,125, 67, 51, 81,215,240,241, 48,181,244, 95,112,186,216,141, 9,201,205, 91, 67,201, +248,130, 71, 63, 63, 71,250,118,221, 31, 20,179, 79,180,214,183, 29,113, 28, 6,252, 27,223,139,216, 34, 72,202, 57, 93,254,252, + 79,143,159, 30,252,242, 87,127,150,115, 46,117, 24,147,177, 54, 54,183,130,121,210, 42,152, 36,173,161,146, 90,202,116,126,236, +217,163,123, 7,123,251, 89, 38, 96,186,246,217, 71, 95,124,241,197,195,157,103, 47, 94, 56,247,254, 59,111, 87,222,216,215,110, +178, 57,207,147,188, 90, 30, 61,121,120,255,214,141,107, 95,223,188,118,243,238,131,195,197,234,181,151, 47,254,235,223,252,226, +141, 87, 47, 45,123, 93,245,117,236, 31,137,188,221, 55,234,118, 64,136, 86, 22,140, 77,178,113,129,141, 29, 36, 81, 72,219,146, +188,212, 38, 37,142,197, 16, 28,156,134,126,152,111,157,121,229, 91,248,195,199, 31,127,255,187,239,147,169,171,213,190, 14,195, + 0,166, 44,172,166,131,234,180,235,152,217, 13,147, 46, 37,102, 85,151,156, 33, 36,194, 58, 96, 40, 43, 68,111, 19,200, 77,103, +211,201,238,254,161,164,148,195,222,199, 84,213, 58,225,174,235, 86,171, 62,214, 1, 18, 93, 90, 64, 85, 87,171, 66, 84, 1, 33, +113,105,247,170, 68,242,173,139, 23,205,147,121, 41,181,148,126,168,234,139,229, 16,101,113, 12,233,195,135,209,142,215, 49, 5, +214,214,248, 6, 2,193, 74, 61,118,242,196,246,246,153,189,221, 29, 73, 83, 0,176, 33,167,206, 85,207,156, 57,251,248,209,195, +249,124,227,229, 75,231,110,220,123,178,234,151,137, 55,220,252, 96, 49,172, 68,150,203,229,193,225, 94, 95,170,154,175,106,137, +184, 30, 25,247, 90,200,145,136,156,216,173,178,240,201,249,198,137, 99,155, 44, 98,165,100, 73, 44,220,154, 30, 61, 60, 30,235, +114, 82, 5, 37,152,169, 87,107,157, 97, 24, 31,206,112,106, 61, 6,137,201, 13,213,234, 52,167,163,161,104,173, 0,114, 36, 72, + 83,195,164, 56,156,196, 19,135, 63, 69,200, 44,119,201,204,213, 40, 39,238,171, 6,111, 93, 93,199,147, 44,153, 85, 55, 73,173, + 21,181,165, 43, 3,137, 30,211,140, 59,204, 53, 81,210, 90,171,154,176, 68,161, 71, 49,139,239,174,153, 19, 17,200, 32, 57,140, +236,147,196,171,161,170,106, 99, 48, 1,108, 49,230,141,244, 79, 11,126,223, 8, 31, 6, 37,145, 94, 53,192,226,113,231, 66,252, +104, 51,171,106, 73, 88, 80,205,181, 90,215, 73,112,209, 2,204,107, 70,228, 69,205, 40, 49, 57,149, 96,170,132, 73,154,129,162, +144, 20,183,221,200, 10, 7,245,194, 45, 96, 11, 32,162, 68, 84, 99,124,118, 75, 41, 89,117, 8,169, 43,140,136,137,196, 81,130, +147,156,136, 17,186, 9, 28,100, 78,238, 93, 74, 85,245,202,141, 91,103,207,156,164, 86,129,235, 2,142,197, 26,224, 76, 52, 34, + 65,215, 76,241,150,173, 52,119, 29,171, 13,227,170, 20, 22,145,164, 78, 65,212,240,224, 22, 83,131,172,154, 42, 55,211,109,160, +180,198,101,114, 43,211, 50,134,132,112, 46, 34,205, 47,231,193, 47,104,232, 45, 87,116,156,140, 97,145,141, 80, 7, 88, 82, 26, +213,172,228,228,230, 37,182, 7, 26, 85, 30, 68,110,177,134,197, 90, 61, 37,106,220,230, 80, 89,208, 16,205,218,136,114,234,237, + 78,109, 78, 28,227,185, 57,220, 40,145, 7, 67,156,205, 92,149, 36,185, 26,133,160,159,192,230, 14,109,109,156,194,164, 10, 15, + 88,106,227, 59, 70,185,136, 51,130,231,225,196, 28,172, 75,110, 82,167, 60,239,170,142, 87, 20,248, 56, 29,247,208,177, 71,166, +177, 60, 18,107, 80,116, 56,236,198, 62, 91,119,228,220, 49,217,159, 62,252,112,185,194, 63,251,241,143,137,188, 31,122, 0,219, + 23, 95,222, 58,119, 49, 96,222,225,169,146, 46,158,245,220,205,230,231,223,249,129, 14, 37, 79, 55,134,126,177,251,236,217,100, +235,196,100,146,142,246,158,126,253,233, 63,254,238,247,191, 63, 90,149, 95,252,179, 31,188,255,254,247, 86,249,148,207, 78,109, +110,109,165,204,207, 30, 63,184,121,249,179, 63,254,233,163, 15,255,248,199,207,175, 92, 79, 57,253,235,223,254,252,127,249,247, +255,227,171,223,186,120,180,212, 17, 53, 62,122, 6,173,217, 97,124, 84,156,243,108,246,198, 47,254, 21,128,110, 62,127,237,231, +127,181, 86, 62,180,157, 80,168,217,214,252,121,248, 56, 44,167,235,145,190,150,229,214,137, 19, 23,206,110, 93,254,250, 43, 22, +118, 47,149, 52,120,153, 16,150,214, 12,202, 6, 83,237,137, 41,117,147,170, 6,162, 90,180,241,113,163,133, 12, 84,181, 38,145, + 46,231,161, 86, 85,203, 93, 14,139,236, 80,149,184,161,119, 61, 22, 58,210,214,141, 57, 75, 39, 41, 12,113, 69, 53,154,208,137, +112,226,216,252,252,217, 23, 74,233, 87,171,126,255, 96,121,112,120, 84, 77, 87,253, 17, 35,106, 50,160,117, 80, 83,138, 63,189, +214,123,131,129,212,146,252, 14,179, 23, 46, 93,224, 60,225, 8, 6,114,199,146, 37,231,201,108,118,238,210,165,103, 59, 79,207, +156, 58,113,233,204, 49,119,237,107,113,129,213, 97,185, 56, 26, 74,201,105,114,234,196,201,115,167, 79,195, 21,163,225,209,221, +117,244, 39, 25, 40,177, 76,114, 86, 83, 98,174, 70,204,148, 68, 56,110,210, 17,207, 24, 15,215, 76,210,112,240, 12,213,231,237, +190,109, 54,106,255,164,128,171,186,186, 2, 52, 17, 33, 10, 91, 3, 25,172, 69,100,199,181,103,180, 14,115, 56,211,137, 41,201, + 56, 30, 70, 34,209,205, 76,198, 10,210, 0,245, 70,155, 51,195, 25,164,113,160,160,150, 79,143, 31, 45,209,231,237, 80,242, 98, +208, 96, 25, 91,113, 88, 99,180, 68,121, 71,220, 20, 36, 63,135, 55,173,229, 3, 4,157,103, 68,179, 59, 66,223,228,248, 15,197, +133,201, 34, 18,124, 44, 1,155, 91,175, 74,193,158,108, 93, 74, 28,163,107, 83, 29,205,162,206, 42,224,195,144,232,160,104, 46, + 38, 97,105, 74, 1,143,102,253,128,187, 58, 0, 86,152, 1, 27,147,174,203, 29, 90, 14, 88, 56,120,190,176, 90,170,227,191, 41, + 90,226,204, 67, 85, 51,151, 0,198, 37,158, 76, 38,147,201,116,115,190,113,124,107, 30,119,176,176, 44,132, 55, 50,150, 95, 76, + 17,222, 90, 11,166, 35, 8, 58,134,211, 38,193, 81, 10,190,138,136,169,186,251, 80,170,213, 10,131,154, 85,171, 41, 26,100,153, +157, 36,178,174,209,194, 99, 17,210,140,253, 4,197, 38,165,121,117,227, 90,144,113,109, 99,218,142,107,213, 85, 32, 68,208,106, +189,150, 0,146,193,204,107, 29,185,192,173,222, 7, 6,168,187, 85,139, 1,222, 42, 53, 86,116,148, 78, 89,187,219,152,181, 52, +112,128, 87,152, 41,177,131,180,170, 85, 87, 85,115,133,170,197, 58, 59,220,164,102,134,192, 18,137,235,152,252, 10, 72, 78,177, +182,113, 10,254,119,216, 40,199,179,230,248, 40,180, 88,151, 70,223,173,194, 82,132,137,162, 37, 55, 96, 25,241, 80, 20,153,156, +123,251, 59,177, 47,173,253,106,247,222,205,126,121, 68,163, 50, 31,135,226, 88,250,183, 35,140, 86, 48,165,212,245,139,131,127, +252,199,127,216, 62,253,226,123,239,189, 61, 12,171,248, 55,230, 39, 95,112,211,253, 7,119,200, 26,217,200, 17,101, 71,168,174, +245,232,240,238,167,255, 48, 61,118,108,119,119, 71, 73, 78,157, 57,251,248,254,237,221,135,247,191,250,234,203, 27,183,239,125, +251,141, 55,222,127,247,237,130,217,138, 55,103,243,201,116,190,241,198,119,223,215, 90, 29,120,112,231,246, 71,255,231,255,126, +255,217,211,239,188,245,250,191,250,245, 63, 59,127,102,187,175, 94, 75, 1,132,156,192, 78, 26,103, 92, 91,211,135, 90,237,210, +250,139,229, 24,150,135, 87,255,235,255, 61, 78,178, 96,226,182,197, 27,181, 55, 40,136, 61, 4, 79,242,231,219, 61,119,175,170, +151, 46,188,124,248,197,103,151, 47,127,253,222, 91,175, 88, 33, 7, 55,234, 83, 91,125,128, 12, 44, 41,137,116,147,137, 48,123, +228,194,163,185,157, 37, 34,210, 79,247, 15,103,147,105, 24,187,147,200, 80,106, 75,135, 19, 51,203, 98,168,193, 70, 4, 1, 22, + 97, 30,114, 39, 53, 99,162,121, 55, 17, 73,195,208,199,126,100,251,196,137,227,199,183,134,161,212,190, 63, 60, 56, 60, 90, 45, +234, 48,148, 26,139, 44, 35, 78, 85,181,150, 2, 74, 64, 9,162,210, 55,225,185,225,192, 54,179,217,124,243,212,169, 51, 79,119, + 30,115,238, 80,171,147,138,176, 41, 15,171,225,216,252, 88,158,228, 90,202,163,167, 7,123,203, 62, 65, 82, 74, 67, 29,102, 27, +115,152, 77,114,254,246,171,175, 61,253,199,221, 40, 51, 19, 33,212,246, 21,230,240,110, 81, 12,186, 84,107,101, 33,102, 2, 99, + 42,178, 82, 75, 44,213, 61,154,172,219, 33, 52, 64,142, 99, 91,233, 55,163,217,194, 76,160,138, 32,212,234, 52,231, 90,107, 16, + 40,219, 8,174, 62,150,178, 96, 77,184, 78,204, 52,198, 67, 76,219, 91,202, 17, 48, 34,213, 8, 14, 54,105, 67, 0,147,148,136, + 25, 68, 58,218, 60, 56,220, 32,228,125,173,135,203, 37, 17,117,147,142, 24,181,212,230,103, 32,144,179, 52, 13, 52, 56, 57,149, + 64, 44,196, 36, 36, 66, 32, 69,227,124,193, 98,191, 26, 2,124, 11,202, 53, 72, 44, 81, 11, 80,176,176,183, 98,233,112,242,193, +188,214,210,165,228,174,102, 22, 78,102, 53,165,148, 90,133, 20, 49,162, 99, 58,110,249, 68,193,170, 27,145,223, 26,213,179,102, +148, 51,245,203, 18, 39, 9,206,194,165, 40, 64, 64, 81, 83, 93,177, 16,220,213,212,128, 36, 36,156,137,200, 92, 73, 46, 89, 25, + 0, 0, 32, 0, 73, 68, 65, 84, 9, 28, 55, 61,106, 59, 81, 74, 76,185,203,129, 31,142, 66, 43, 38, 62,182,185, 97, 62,222,113, +189,245, 20,178, 96,154,115, 74,172, 67,187,235, 18, 17, 24,108, 17,193,245,200, 15,248,168,174,132,106,212,150,149, 4,117,171, +170,165, 86,152,173,101,247,208,187,198, 10,186,160,181, 69,201, 7,226,215,149, 78,192,100,138,136,158, 56,147,164, 88,175,196, + 27, 38,100, 6,184,128, 11, 65,181,130,224,174,113,112, 11,125, 5,205,109,105,176,218, 52, 12, 34, 18, 66,141,218,119,179,106, +235, 40,149,187,181, 11, 45,118, 36,104, 43,246,166, 20,141,212,175, 86,244,225, 81,179, 28,233,163, 24,251, 53,248,164, 14,247, + 4,212,118,155, 6,199,134,154, 81, 42,115, 84,223,142,114, 34, 81, 43, 77, 80,149, 44, 65, 43, 79,145,133, 24, 87, 91,163, 92, +220,128, 8,126,247,243, 63,192,113,252,220,197, 19, 23, 95,122,240,213,199,104,188,219, 32, 88, 24,190,121, 94,102,234,166,179, +251,183,111, 94,189,118,253,141,183, 63,184,116,238,212,193,226,136,219, 61,209, 15, 31,223, 11,160, 86,235, 77,109, 58,141, 25, +156, 56, 77,187,252,244,201,206,242,104,209,175, 14,231,199,207, 94,249,228,195,235,215,174,223,186,123,127,107,107,235, 95,252, +246,215,219, 39,207, 23,108, 72,238,178, 80, 93, 45,119,151,135,238,254,127,252,111,255,225,202,237, 91,127,245,111,255,230,127, +254, 95,255,195,127,249,191,254,227,143, 63,120,151,153, 34,134, 71, 36,204,145,108, 72,224, 58,130, 2, 3,208, 95,141, 37, 32, + 92,107, 8,109,192, 96,209,166,152,166,222,196,191, 51, 38,159,104,180,250, 70, 33, 7, 71, 5,108,160,112,250, 82,190,253,238, +187, 87, 47,127,249,247,127,248, 88,205, 61,234,163,122,217,200,236, 14, 73, 4, 34, 53,159, 8,107, 41,238,200, 41,117,147,201, + 98, 56,138,163,155, 8,147, 80,173, 58,217,202, 65, 43, 77, 57,149,213,138, 17, 85, 94, 6,160, 31, 6, 35, 34, 39, 27,243, 7, +238, 86,181,150,170, 85,221,108,152, 77, 8, 73, 88,184, 86,123,241,194, 11,179,217,198,254,222,222,106, 88, 45,135,178,234,117, + 24,138,213, 18,112,230, 38,222,219,232, 24,138,187,209,216,232, 51,126, 58,177,202,163,211,231,206,238,238, 60,172,253, 82,164, + 35, 8,145,164, 52, 75,124,116,230,210,133,199, 15,238,207,143,205, 47,157, 57,185,188,251,104,213, 47, 39,211, 46,229, 44, 44, + 44,169,168,158, 56,113,252,194,133,139,215,110, 92, 39,233,140,184,109, 25, 92,225, 96,215, 76, 81, 20,156, 13,150,136, 18,145, + 59,205,186,174,168,217,216, 57, 24, 21,166,102,113, 14,243,128,101,184,181,175, 50,185, 11,145, 39,214, 58,110,254,225, 14,174, + 94, 34, 46, 38,196, 41, 81, 41,145,217,110,155, 58, 34,151,204,147,148,107, 45,137, 57,108, 6, 22,199,103, 33, 17,233, 52, 45, + 67,197,104, 68, 38,112, 98, 34, 79, 4, 53,229, 72,129,171, 81, 74, 99,232,197,164, 69,139, 27,252, 44,181,145,158, 73,185,205, + 76,113,110, 52, 39, 73,164, 14,114,133, 33,148,207, 86, 44, 20,180, 75, 48, 65, 18,149, 26,248, 18,133,187, 36,129, 59,179, 48, +155,215, 18,222,121, 98, 49,114,102,202, 76, 10,168, 34, 34,114,137, 33,194,137,189, 68,229, 72,131,215, 66,129, 12, 74, 14, 73, + 18, 17, 82, 9, 43, 1,155, 83, 99,162,129,134,168,234,214,234, 69,155,179,168,148, 58,203,156,115, 23, 95,167,106,154,187,137, +181,133,103,195,150,211,120,246, 75, 73,140, 48,148, 74, 84, 77,157,152,114,202,179,105,183,209, 77, 15, 86,125, 48, 48, 90, 11, + 94,155,103,189,148,152,166,215, 86, 59, 90, 27, 32, 44,208,141, 77, 28, 1, 11,229, 28,239,180, 19, 48, 12,149, 73, 76,149,153, +134, 82,145,121, 50, 50, 7,195, 89, 22, 80, 67, 34,215,231, 21, 29, 28,105,216,204, 84,141,220,218,139, 79,204,194,148, 9, 70, +112, 14, 47,146,145,129,236,249, 11,138, 35, 63,115,163,136, 70, 27, 50,185,134,163,218,107, 4,144, 42, 2,202,214,240, 10,149, + 72,108,100,139, 17,147,170,186,129,153,132,216, 41, 57, 59, 35, 46, 39,109, 68,213, 88, 56, 71, 86, 41, 9,204, 52,138,253, 76, +219,138, 48,210, 57,214,154,174, 73, 72, 32,198,132,245, 73,202, 91, 13, 37,137,169, 67, 72,200,145,218, 67,114, 68, 62,133,111, +228, 57,222,222,156,152, 23,251,123,243,147,103, 9, 41, 50, 20, 39, 46,190, 60, 61,118, 28,238,139,103, 59,207,238,223,114, 85, + 98,153, 76,167,180,185,253,238,159,191,253,206, 47,117,249,244,241,177,115, 23,143, 62,249,135, 16,124,182, 47,188, 52,219, 58, + 9,162,229,254,211,189,123, 55, 80,149,167,211,115,111,126,239,225,181,203,167, 94,124,101, 88, 46, 30, 94,187,252,230,207,127, +123,227,143, 31,174,150, 7, 15,110,126,117,230,219,223,253,193, 95,253, 59, 38, 60,123,112,231,193,173,135, 3,208,165,206,181, + 30, 62,219,219,121,116,247, 96,181,248,193,175,255,249, 71,159,126,178,232,235,131, 27, 87, 94,252,235,191,254,233, 7,111, 87, +247,211,175,127,127,235,236, 37, 16,246, 31,222,185,255,229, 31,220,120,186, 57,123,237,255,175,234, 76,158,236,186,146,243,254, +101,230, 57,247,189, 26, 80,133, 2, 10, 35, 1,162, 9, 14,104, 14,234, 73, 77,170,217,146, 90, 99,104,136,112,135, 23,178,108, + 45,188,241,159,224,173,255, 8,239,189, 81,132, 55,118,132, 35, 28,150, 29, 33,135, 34,100,205, 45, 91,146,155,100,143,106, 18, + 36, 65, 0,133,185,128, 66,141,239,189,123,207,201, 76, 47,242,220, 7,121, 73, 6, 3, 32, 10,239,221,123, 78,230,247,253,126, +223,250,245,135, 31,127,184,253,202,155,195,236,248,238, 71,127,147,186,116,233,237,111,173,158,222,174,253,124,255,254, 23,241, + 19,237,214, 79, 93,251,230,175,221,252,235,255, 65, 68, 47,127,227, 87,242,202,169,118,111, 22,222,187,115,243,217,157, 79, 34, + 33, 63,146, 61,218, 17,180,133,133, 64,238, 86,134,197, 27, 55,110,252,232,195,239, 63,222, 59,154, 76, 59, 34,206, 57, 87,171, +179, 82, 54, 90,104, 89, 19,200,128,197,208, 39, 73, 66, 82,212, 88,120,168,106,176,147,249,130,137, 69,146,185,170,182, 93, 88, + 22, 81,243,220,117, 81,154,112,130,144, 48,187,100,169,145,141,133, 17, 81,206,121,182, 88, 52, 0, 33, 67, 77, 47,159,191, 72, + 76, 64, 61, 60, 58,218,125,182, 55, 88,237,135, 94, 3, 54, 11, 39,120,233,251,161, 44, 36,117, 99,146,201,185, 25, 82,148, 60, +236, 99,113,255,179,201,202,234,217,243, 23, 31, 63,188, 7,130,107, 9,168, 95,238,214,230,243,227,110,210,237, 62,126,122,249, +210,185,131,249,226,238,163,103,168,188, 62, 89, 53,184,176, 0,164,181, 94,191,114,229,201,238,110, 95,139,120, 0, 87,193, 97, +211, 35,241, 64,222, 39,158, 45,106, 22, 94,244,101,115, 99, 45, 75, 94,153,218,124,177, 8, 27,156,155, 87,168, 54, 10, 58,150, +116,167,168,164,134,245, 52, 60,187,161, 99,117,135,214,216,210, 27,145, 40, 84,171, 19,185,105,188,195, 90, 16, 52,115, 38, 56, +177, 12,181,100,114,102,113,210, 26,115,127, 99,206,205,145,216,116, 30, 68, 80,114, 39,117, 54, 47,198, 98,106, 93, 74,177,239, +100, 16, 20,147,201,132,153,213,140, 33, 78,200, 41, 11, 17, 67,204,213,162, 32, 21,191, 24, 51,107, 85,211,208, 24,250,210, 97, + 73, 49, 61,113, 50, 82, 50,175, 70, 96,129, 23, 16,167, 78, 40, 30, 23,222,151, 69,169, 53, 0, 84, 48, 35, 22, 97,230,212,213, + 82,152,201,204,205, 93, 72,148,144, 29, 66,164,176, 65, 73, 56,194, 53, 77,230,173,134,212, 22,162, 36, 36, 18,197,164,106, 57, + 33,229, 92,106, 85,160,106, 25,211,150,164,166, 41, 5, 99, 2,213, 28,142,162,150, 71,142, 49, 64, 44, 20,188,169,230,138,101, +234,178, 52,249,140,227,212,234,218,100,154, 17,168,181,178, 20,109,182,109,157,249, 11, 15, 0,141,153,114, 16,229, 36, 67, 95, + 83,150,130,210, 96,130,106,117,168, 3, 23,114,154,247,189,169,229, 73, 50,210, 36,226,240,106,150, 9,145,159, 0,187, 27,195, + 52, 81,151, 64, 99,212,220, 45,208, 39,209, 65, 36,102, 97,104, 8, 53,187,152,141,168,171,228, 14, 90, 85,131, 43,236, 54, 22, + 20, 8, 47, 30,243,209,137, 49, 37,127,177, 93, 29, 69,129,212, 74, 77,193,214, 80, 72,203,192,153,133,244,216,181, 16, 51, 28, + 22,229, 7, 55, 29,211,235,237,149,217, 40, 65, 4,102,168, 15,234,196,130, 56,208, 9, 92,157, 65,102, 96,137,102, 68, 48,103, + 65,240, 48,228,180,151,166,197,254,138,221,192,102,230,158,104,233,230,104,253,144,216,208, 99, 57,101,118,208,234,198,102,153, +207,226,118,117,230,234,117, 51,123,240,179, 15, 25,178,125,253,198,198,249,203, 39,187,143,221,201, 86, 79,105,173,135, 59,159, + 15,195, 98,235,202,171,205,185, 13, 63,115,229, 53, 22,126,248,179,239,187,209,246,245, 27, 27,231,175, 60,191,255,133, 23, 5, +209,250,153,179, 15, 62,254,225,201,225,222,249,151, 95, 3,176,251,240,139, 59,159,127,250,149, 95,255,174,176,124,250, 55,127, + 44,147,141,107, 95,255,214, 69, 94,217,123,248,112, 62,155, 31, 62,223,125,116,255,238,205,207, 62, 59,174,229, 95, 1,156, 38, +127,240,155,191,242,221, 63,248,151,195,236,104,222, 15, 87,191,242,109,146,116,243,123,255,147,160, 47,189,243,254,133, 87,223, +121,244,217, 15,226, 48, 62,221, 56,123,235,239,254, 44,182,222,151,222,250, 5, 43,229,211,239,253, 73,202,114,249,237,247,218, +151,204, 70,150, 39,252,206, 7,127, 25,223,187,213,179,231, 47,189,249,222,241,211, 71,227,151, 48,222,232, 28, 78, 57,143,196, + 35,193, 40,126, 92, 92,170, 95,187,122,197, 76, 73, 4, 76,171, 57,247,131,101,146, 70, 91,165, 70,164,154,245, 67, 55,233,170, + 87, 33,234, 18,149,129,220,188, 22,151, 44,194,146, 88,192, 84,172, 56,121, 53, 35,131,144, 28,157, 44,212, 52, 75,226, 70,100, +166, 36, 34, 44, 89,166, 8,191,177, 91, 92, 85, 50, 39, 21,123,249,210,101,119, 41,131, 29, 31,205, 15,103, 39, 66, 88,244, 5, +230, 35,113,129,204, 81,230,243,110,115, 69, 81,157, 2, 68,101, 52,142,157,192, 78,224,214,249, 50, 59,127,229,202,241,225,254, +201,236,132, 89,152, 29,194, 83, 94, 25,234,112,250,236,217,253,253,253,211,219,103,206,236,237,157, 44,250, 39,251, 71, 73,100, + 34,157,186,129, 5,196,171,107,211,107, 87, 94,250,252,238,157,170,234, 22,214,236, 56,144, 41, 17, 27,224, 76, 57,201, 80,171, +185, 14,106, 14,155,138, 12, 41,107, 63, 4,247, 21, 12, 81,142,135, 75,202, 17, 26, 48, 51,152, 58,117,204, 28, 91, 71,130,107, +117,176,112, 85, 93,153,118,117,168, 32,102,113,152,113,180, 3,173,173, 77, 44, 37,115, 45,129,206, 3,113, 13,232,188, 59, 92, + 64, 6,133, 33,194,172, 1,217,115,117,176, 12,181,178,112,151,186, 44, 60,144, 78,166,211,161,148, 8,168,113, 78, 29, 16,186, +212,190, 46,198, 53, 13,129,148, 18,161,132, 31,137,221,140, 13, 75,127, 49,150,146,194,152, 23, 69, 50, 61,158,110,194, 53,114, +223, 70, 14, 19, 98, 48,169, 91,151,146,219,184, 79,107,124, 68, 33,119,225,152,167,162,204, 75, 78, 34,206,225, 87, 50,115,225, + 37, 91,168,197,249,164,249,166, 27,165, 48, 6,102,237,175,190,125,202,169,169, 62,218,163, 73, 15, 78,250,205,211,147, 46,103, +131, 77, 40, 11, 36, 40, 97,157,164,193,141,108,100,231,130,220,217,137, 68,152,128, 94, 32, 44, 78, 32,150, 90, 10,218,124, 57, + 44, 29, 77, 94, 10,130, 90,109,221,203,168,139, 68, 54, 16,198,121,249, 70,119,144, 91,160,155,181,102, 79,196, 4, 19,114, 74, +196, 3,185, 16, 75,203,134,138,123, 31, 23,208, 37,253, 55, 28, 29,109,106,206,173,113,108,198,173,208,234,205, 3,146, 82,178, + 98, 99, 43,205,150,168,154,113, 9, 39, 35,224,222,219, 13,146,108, 73,107,137,188,137,143,146, 57, 54, 55,134,140, 43, 21, 39, + 27,249, 60, 78, 41, 17, 56, 49, 85, 55, 35, 7, 9, 91, 44,250,140, 69, 76,221,180, 89, 3,200, 56,177, 0,228,197,226,255,167, + 29,182,199,144,123, 91,222, 54, 0, 59, 53,142, 38, 11,153, 9,155,186,179,147,185,105,248,104,252,133,218, 56,148,162,218, 32, +193,228, 32,186,252,214,215, 95,122,251,235,107,103,206,237,221,187, 77,196, 76, 60,221, 56,125,240,112, 7, 14,213,225,240,201, +189,181, 51,231,158,238, 62,250,241,143, 63,186,112,245,149,105,153,205,142,246,203,162, 63,124,124, 63,242,241, 48, 91,219, 58, +187,119,247,150, 22,211,170,251, 15,238, 78, 55,183, 2,116, 14,224,217,206,231,135,207,118,215, 54,183,119, 31,220,113,224,131, +127,248,254,195,221,189, 55,222,249, 90,121,118,127, 94,186,253,133,220,191,115,103,115,251,236,241,254,254,195, 59,159,254,248, + 71, 31,252,221,255,253,224, 7, 31,127,114, 50, 95, 48,243,127,250,163,255,254,175,255,237,191,155,156, 58,123,239,199,255, 71, + 36,111, 94,250,210,163, 79,126, 0,171,174,254,236,206,167, 27, 23, 94,102,228, 56,135, 60,189,245,177,169,186, 85,164,180,190, +125,241,201,173,127, 36, 87,237,135,189,187,159,182, 12, 26,191, 16,108,198,120,176, 91,219,184,244,229,119, 31,125,252, 97,127, +114,248,130, 84, 59,210, 48,226,220,232,177,105,247,216,156, 87, 70,173,170,211,220,177,176, 80, 60, 11, 41, 24,156, 64, 60, 80, + 98,220,111,153, 19, 32,230,148, 56, 41, 96,238,197, 44,214, 62,145,207,170,165, 16,197,141,146, 84,245,112,118,220,236,132,163, + 71, 28,106,129, 72, 92, 90, 45, 98, 7, 41, 73, 54, 55,214, 47, 94, 62,231,174, 67, 41,251,135,135, 39,199, 51, 55,235,135,222, +225,137, 8,228, 10,192,108, 49, 91,180,103,232, 72, 74, 26,139, 12, 99,235,139,209,120, 38, 66,103, 47, 94,130, 57, 17,152,133, +140,221, 49,157,174,184,250,198,198,198,243,189,253,139, 23,207, 93, 58,115,122,109, 58,237,251, 65, 81, 45,102, 74,100, 48,121, +249,210,229,205,141, 77,175, 85, 82, 64,131, 95, 44, 22,133,224, 26, 28, 67,164,148, 2,184, 10,162, 83,211,105,226, 22,224,173, + 69,227,158, 20, 95,224,232,254,249,168, 67, 12,159, 42, 19,178,164,168,161, 85,115,141, 93,171, 85,150, 20,174, 68, 10,248, 21, +144,152,146,163, 19, 14,213, 25, 51, 27,172, 86, 53, 67, 13,128,223, 11,222, 80,139,195,131,131,117, 27,136, 18, 59,153,247,137, + 89,171,166,196,153,216,220,171,234,184,133, 13, 6, 30,123,181, 81,196, 65, 13, 5, 60, 30,156, 28, 68, 2,115,173,117,112,179, +255,239, 35,135, 86, 65, 97,138,104, 14,178, 8,220, 23,253, 80, 84, 3,199,202, 66, 20,108, 3, 34, 23,164, 36, 36, 18,151, 72, +225, 88,241,210, 8, 62,104,216,113,107,110,216, 40,187, 24, 17,115,148,175,194,177, 97,206,204,146, 36, 39, 97,145, 49, 28, 68, +141, 21, 65, 16, 73,237,197,204,228,110,213,253,164, 95,112, 68,157, 2,137, 58, 70, 56,105, 92,202, 10, 39,133, 51, 81, 78, 57, +119,194,224,196,156,146, 56, 19,145, 51,216, 65, 70,196,112,102, 74, 52, 46, 61,199,177,168,171,151, 18,221, 94,211, 22,120,228, + 20,193,202,246,217,228,212, 12, 54, 73,225, 90,171, 80,106, 98, 57,225, 49, 63,206,254, 79,250,139,222,100, 9,141, 64,210,194, +217,214,162,163,211,156, 25,148, 4, 76, 78, 4,181,229, 52, 59,250,171,213, 81,199,230,163,171,153,143,167,120, 98,226,204, 32, + 50,173, 49,208, 20,230,148, 69, 82, 2, 19, 56, 80, 75, 20, 15, 88,130, 16,199,124,206,199,181,139,131, 9,228, 68, 78,209, 16, +101,176,128, 40, 17, 73,117, 99, 24,196,226, 21,160,222,126,211,230,153, 4,133, 86,208, 70,202, 0, 1,110, 21,174,213, 76,205, + 75,109,117, 86,114,164, 37,197, 61,142,219,227,101, 46,197,167,228,254, 79, 62,224, 60, 61,123,245,218,218,153,237,195,199,247, + 37,103, 0,181,244, 4,164,212,145, 17, 49,223,125,240,232,231,190,246,117, 0,243,147, 99,175, 14,129,246,125, 92,254, 72, 4, + 68,231, 94,123,139,150,156, 35, 80, 85, 8, 10,220, 9,137,200, 31,223,250,228,254,147,221, 27,239,253,218,230,153,211,111,191, +121, 3,192,238,243,133, 76,214,114,199,139,195,163,148,211,103, 55,127,242,217,173, 47,190,184,183,179,251,108,127,123,107,243, +159,253,218, 47,186,251,167,127,241, 71,165,214,240, 2, 77,214, 54,136,232,245,111,255,206, 50,173,222,160,129,238,112,175, 67, + 31,203,144, 73, 94, 1, 80, 23,179,248,111,202, 98,214,230,209,227, 2, 58, 94,243,156,243, 75,239,124,107,239,206, 39, 39,207, + 30,241,216,238, 86, 53,144, 37,138,213,230,200,192, 67, 52,173, 91,159,162, 47, 11,117,154, 76,186,201,180,227, 36, 90,171,135, + 8,170,177,140,204,220, 76,181,203,169,148,162, 86, 1, 38,112, 53,171,117,112, 55, 17,113,231, 68, 92,251,154,114,118, 51,144, +151, 90,231,125, 77,241, 33, 7,133,192,110, 17,245, 30,130,145, 27,116,154,115, 41,133,128,190,212, 47, 93,185,116,118,107,187, +106,237,251,147,195,217,201,224,170,106,195, 80, 9, 28,135, 16, 1,140,105,168, 53,218, 12, 35, 93,174, 85,147,209,254, 52, 99, + 33, 82,221, 29,155,219,219,167,158,238, 30,237, 63,231,148, 2, 10,158, 58,211,154, 87, 38, 19, 29,106,183, 50, 93,223, 56,188, + 90,206,220,188,255,104, 24,116,210,137,153,119,146, 6,171,224,233,181,203, 47,237,237,237,185,123,199, 60,184,122, 72, 48,137, + 4, 24,138, 50, 81,151,100, 81,123,118, 36,102, 0,211, 46,207,250, 92,181,186, 75, 63, 12, 75,173, 51,168, 83,107, 95, 95, 18, + 14,243, 73,230,228,110,210,117, 54,215, 1, 69, 32,174,112, 40, 67,200, 17, 99,147,120, 49,114,128, 3,201, 73, 50,218, 67,217, + 83, 78,165,212,106, 21,205, 14, 78,129, 16,169, 77, 69,225, 20, 52, 75,230, 90,171,154, 78,114, 22, 22, 7, 74,141, 49,133, 59, +160,110,211, 73,215, 15,131,176, 20, 84,180,129, 82, 0,246, 96, 24, 99, 91,161,100, 24,107,210, 54, 22, 79, 98, 94, 97, 14, 51, + 18, 97, 33,174,108, 45,109,215, 58,119,200,157,152,107,169,224,248, 86, 18,194,164,154,136, 42,145, 3,106, 22,184,158,150, 17, +106,169,204,182, 68, 26,161, 0,225,237,203, 21,128, 15,129,108,200, 12,145,156, 18, 23,109, 25, 35, 25, 25,179,225, 58,111, 24, +108, 55,134,228,196, 90, 2,114,201,177, 8,241, 6, 38,111,200,125,114, 90,233,186, 69, 25,130,186,150,145,226, 77,144,146, 68, +118,136, 96, 76,172,230, 36, 2, 72,219,108, 70, 92,128, 27,199,133,163,118,167,142, 22,168,141,179, 46,177, 72,163,181,164,248, + 71,154, 72, 42,186, 64, 83,211,166,246, 10, 24, 97, 43, 54, 34, 36,150,219,116,119,173,110,205,109, 17,161,169,234,135, 39,179, +227,197,124, 53,183,201,223, 48,148,220, 9,179,104, 53,109, 78,129, 54,131, 33, 3, 51,143, 77,165, 0,106, 58, 49, 3,185,153, +224, 3,202, 76,236, 16, 1, 85, 12, 4,114, 50,114,210, 90, 57,181, 67,162,153, 69,144,156,132,152,217, 6, 68,194,220,133, 73, +131, 51,238, 81, 17,104,155,249,144,115, 54, 83,233,242,110,217,202,164,161,142,161,198, 30,112,114, 35, 18, 33,246, 6,215,183, +212,238, 47,238,204, 65, 34,139,208,126,109,156, 15, 34,171,253,254,253,157, 11,111,188,117,252,244,145, 85, 5, 32,121,194,204, + 58,148, 91,159,223,124,235,220,197,119,127,254, 23,212,122, 0,144,228,117,161,197, 38,107,235, 0,218, 60,203,253,206, 71,255, +187, 12, 11, 56,109,110, 95, 44,253, 81,233,135,141,203, 87, 0,236,222,191,253, 96,231,206,103, 95,220,222,216, 58, 7,162,183, + 95,123,253,184, 39, 0,107, 91, 23,188, 14,243,217,145,215,197,209,225,193,223,127,248,209,163,167, 79, 79, 78,250,215, 94,185, +250,251,191,253,157, 11,151, 47, 3,168,218, 34,165, 0,106, 25,224,126,243,123,127,172,165,182,156, 0,165, 23, 9,180,248,158, +160,148,161, 7,144, 39,147, 97,177, 96, 80,234,166,109,163, 97, 99,234,223, 65,196, 47,189,243,222,236,249,238,254,189, 91,161, +119,108,188,206,182,210,139, 4,191, 69,171,209,212, 68, 8,222,114,108,101, 81,220,209,177,148,190,248, 6,136, 69, 0, 17, 82, +245,162, 53, 80, 32,206,241,208,112, 1, 15, 69,173, 86, 51, 79, 41,157, 59,189,149,136,221, 2, 6,106,178,188, 86,153,214,210, + 3,150, 40, 1, 12,102,226, 68, 52,196, 95, 42, 19, 76,221,204,170,105,246, 4,171,215,175, 92, 91, 89,157,206,231,253,209,209, +241,241,241, 12,230,243, 97, 40,165,178,192,205, 72,146, 3,166,182, 24, 6,145,132, 17,222, 63,226, 76, 51,226, 70, 16, 45, 6, + 82,206,228, 10,130,159,187,248,210,241,193,222, 40,224, 32,225,156, 58,237, 86,214,207,109,108, 60,188,187,179,125,102,211, 21, +167,159,175,238,159,156, 16, 81, 74,132,156,115, 78, 90,202,133,237,179, 47, 93,188,120,231,209, 67,201, 29,233,130, 19, 80, 16, +222, 62, 34, 54,119,181, 74,192,202,218, 52, 29,114, 45,234,132,245,201,116,239,224, 80, 58,142,136,251,164,235, 98,244, 44,173, + 11,222,108, 65,226,172,104,155,224,201, 36, 67,169,198, 55,207, 68,164, 99, 65, 29,220, 44, 40,226, 2,138, 95, 1,153,168, 48, +147, 6,142,184, 29,157,115,142,167,139, 19,143,181,120,139,195,155,103,183, 64,200,134, 26,144,133, 84,105, 49, 44,144,115,203, + 10,155, 69,238,175,241, 24, 91,149,129,156,205,161, 68, 18,139, 57, 30,207,240,214, 30,248,206,224, 26, 79, 33, 39, 38,151, 64, + 2, 19,139,112,169, 53, 9,135, 75,183,155,164, 36,105, 96, 99, 30, 60,161, 21, 23,221,171,150, 85, 73, 24, 89, 98, 24,143,168, +113, 76,163, 81,204, 19,139, 5, 10, 36, 51,211,160, 85, 3,108,239,225, 45,103, 35,171, 6,141, 13,173,136, 17, 89, 41, 32,178, +198, 76,112,152, 83,131,137,114,215,101, 98, 34,166,162, 53, 94, 93, 17,115, 84,243,145,107, 27, 63, 37, 6, 81,238,196, 65,165, +184,194, 89, 90, 21,223,153, 4,174,174,195,208, 87, 97, 48,197,214,186, 13,157, 90, 96,151, 52, 4,167, 74,110, 32,246,196,194, +160, 44, 41, 94, 15, 72, 96, 35,102, 6, 39,182, 33, 66,237, 49,187,206, 76,148, 98,249,171, 8, 84, 79, 4, 9, 35,232,231,100, +193,153, 12, 12,164,214, 97, 88, 12,253,124,163, 91,101,146, 30, 62,237, 50, 49,169,247,222,210, 55,117,244, 46, 17, 64,106, 53, +132,104,204, 75,118,104,124, 34,117, 68,121,198,101, 95, 99,244,207,146,221,138,185, 17, 59,129, 85, 67,116,211,100,163,109,108, +165, 74, 41, 53,157,173,131,136,212,148,153,221,188, 33,240,165,121, 4,227,120, 96, 53,222, 34,237,160, 16,204, 5, 31, 61,102, + 4, 97,103,173,149, 70, 27, 31,143, 15,126,127,193,245,105, 20, 63, 26,245, 82, 86,203,162,159, 29,175,159,189, 96,166,253,241, +193,233, 75, 87,119, 31, 61,248,232,163,127,120,243,221, 95,228,210,215, 97,110,165, 46,142,246, 79, 95,186, 26,139,221,141, 11, + 87, 66, 42, 93,171, 30,238, 62, 56,127,253, 70, 74,147,245,237,243,253, 48,211,180,182,185,189,125,116,240,220,129, 31,126,244, +225,143,127,246,201,217,179,219,239,191,251, 77, 0,123, 11,112,119,250, 96,111,239,218,235,215,247,159, 61,190,127,251,214,229, +215,191,252,151,255,235, 79,239, 60,124, 48,201,242,187,191,250,238,191,249, 23,191,189,177,113,106, 40,218,206,232, 45,237, 67, + 90, 22, 7,143,118, 46,190,254,181,212,117,196,158,167, 43,107, 91,219,203, 31,119, 8, 96, 88,196,181, 30, 63,125,180,253,234, +219, 68,196, 93, 58,123,237,141,104,208,140,215,104, 39,166,139, 95,254,186,171, 62,249,244, 7, 17,187, 88,158, 9, 34, 65, 63, +226,152, 91,108,156,154, 44,186,245, 9,107, 85, 73,126, 56, 63,158,116,121, 66, 32,161,201,100, 34,228,197,117,168,218, 9,215, + 65,217,201, 92, 99, 4,198, 17,155,114, 75, 41, 49,131, 19, 17, 92,132,205,106,169,218, 34, 76,194,106, 77,172, 21,252,251, 40, +146,120,176,162,140, 22, 67, 95, 77,227, 64, 55,201,221,155,175, 94, 7,177,171,206,142, 23,139, 50, 24,124, 62, 91, 88, 27, 16, +202,133,243,219,193, 84, 95,244, 3,200, 97,214,118, 58, 44, 36,105, 4,175,142, 40, 30,130,103, 10, 78,233,169, 51,167, 55,206, +156, 43, 67, 15, 87, 34,135,115,226,220,117, 43, 86,212,170,150,161,156, 62,189,250,234,165,115,234, 58, 91, 44,200, 77,107,117, +162, 73,206, 41,175,188,241,202,245,213,149,213,150, 97, 50, 48, 32,137, 43, 60, 39,201,147,172, 14, 32,245,125,141,189, 92, 25, + 10, 51, 72, 48,159, 47,218, 67, 83,152,163, 73,199, 33,123, 14,148,181,240,216,251, 87, 83, 99, 48,113, 34,166, 4,168, 41,148, + 52, 50,109,238, 78,146,220, 44,222, 90,108, 20,183,231,198,253,243,198,139,106, 97,168,120,191,178, 59, 4, 66, 16, 32, 18,118, + 41,115, 18,137, 99,128, 90,220, 26,137, 73, 82,202, 78, 16,150,145, 61, 16, 40,100,103, 33, 82, 66, 76,182, 93,226, 65,232, 35, + 95, 98,168, 53, 34, 34, 60, 22,196, 35, 88, 1,135,217, 16,211,232,182,121,115,196,201, 20,174,209,186, 33,146, 86,185, 67, 76, +114,199,112, 97,100,247,154, 16,187,197,203,189,185, 13, 90,192,200,172, 84,173, 49,123,143,164, 82, 18,201, 62,134, 90, 70,105, +160,155, 58, 32,110, 18, 71,234, 20, 15,134, 72, 67,186, 6,206, 49,142,176,194,228,109, 4, 31, 31,153,217,201, 28,106, 57, 37, + 38,170,238,170, 26,241, 44,173,234,225,105,113,103, 64, 72, 0, 4,162,163,101,184, 26, 93,141, 84, 45,206,164,210, 86, 98, 80, +184, 58, 17, 83, 98,129, 59, 11, 17,168,154, 82, 24, 13, 41, 33, 68,190, 41,182,151, 68, 16, 18, 34, 73,203, 25,122, 91, 58,153, +153, 5, 52,222, 77,117,252, 78,240,218,202,250,114,213,200, 44, 16,105,157,225,246,164,110,211, 58, 48, 0, 14, 97,114,236, 4, + 2, 80,229, 94, 27,207,135, 25, 96,183,208, 47, 42,136,204,106, 28,175,193,130, 22,196, 36, 0,166,241,111,155,110,144,224,100, +206, 65,183, 38,119,183, 90,171,169,141, 63, 25,112,102,118,137,209, 59, 75,171,116, 45, 81, 69, 17,224,112,180, 1,168,123,137, +143,178, 26, 96,158,124,105,247,110, 35, 94,110, 41, 85,140, 13,105, 18,184,159,236, 61,221,186,124,181, 63, 58,218,249,228,199, +107,219,151,223,252,246,175,191,253, 75,212, 31,238, 63,219,249,220,212,136,229,249,221,207,183,174,190,250,242,215,223,175,125, +191,255,112,167, 91, 63,101,170,238,122,239,103, 63,184,124,227,171,215,223,251,101,150,164,101,120,186,243,197, 23, 63,252,251, +167,135,199,215,191,246,254,108, 62,188,255,238, 55, 78,159, 90,159, 87, 3,176,178,113,174,155,116,159,255,240, 71,231,175, 93, +253,165,239,254,243, 90,203, 95,255,249,159,255,199, 63,252,195,175,188,241,165,223,120,255,155, 23,206,157,233,135, 82,172,202, +116,153, 99, 12,160,184, 19,232,254, 79,255,254,226,141,111,188,250,254,111,179, 72,237, 23,123, 59,159,158, 60,123,216, 38,182, +113, 33,162, 10,200,195,159,125,255,242, 91,223,124,227, 87,190, 91,251,217,222,206,231,211,141,173,198,116, 24,113,218,167, 46, + 92,113,179, 87,127,233,187,241,199,223,187,123,243,249,221,155,203, 50,113,244,139,162,147, 22,229,247, 8,177, 4,146,233,100, +190,200, 41,151, 1, 41,119, 16, 33,224,204,230, 86,215, 65, 21,196,220, 54,180,109,152,171,166,213, 56,170, 41,180, 50,233,102, + 39,135,174, 43, 21, 78, 32, 53, 23,115,176,168, 41, 49,177, 16, 12,212,113,240,179,101,220,212,115, 48,235, 61,202,138, 92,180, + 76, 39,147,203,151, 47,186,121,169,229,164,159, 47,250,222,204,231,139, 69, 12, 84, 25,126,176,127,192, 76,110, 24, 6,141, 15, +220, 72,161,104, 1,181,216, 22, 5,183,136,148,189,143,232, 57,193,236,194, 75, 87, 78,142, 15,181, 22,162,196, 73,136,121, 50, +157,214,186, 56,119,249,210,179,221,167,147, 73,222,216, 44,175, 95,190,120,243,238,227,126, 88,172,173,159, 34, 80, 39,137, 72, + 79,157,222,124,237,218,203,183,110,223,141,224, 17, 66,113, 76, 73, 29,193, 96,139,190, 99,252, 88, 34,157,184, 54,153,150, 50, +171,142, 97,168, 2,234,171,166,228, 68, 2, 11,204,122, 92,152, 68,136, 84, 0, 70,240,171, 34, 96, 80,220,146, 41,117, 73,135, + 32,163,183,229, 4,161,153,124,204,220,130, 19,239,144,148,100, 32, 8,215, 90,115, 74,110,181, 85,249,154,236, 38,181,248,104, + 12,149, 99,232,105,190, 58,233, 74, 81,117,133,138, 72, 42,181,154,153, 86, 13, 18, 1,153, 36, 22, 35, 31,223, 35, 45,114, 11, + 98, 51,235, 68, 82, 27,117, 71,189,205, 99, 31,199, 52, 66,250, 0,105,199,177,224, 62, 33,108, 67,196, 52,250,234, 9, 68, 41, + 37,117,184,154,112,200,206, 42,136, 2, 66, 91,212, 90, 57,158, 95,184, 65,199,139, 66,112,216,199, 1,131,153,176,180,211,138, +141, 54,244, 86, 49,133, 75,195, 25,117, 41,141,191, 34,185, 69, 9,147,189, 61,135,109, 73,104,138, 73,164,116,185,246,125,152, + 14,172, 33,234, 3, 20,132, 49, 79,205, 68, 96,225, 23,231,167, 38,130,107, 68,132,134, 56,105,227,166,120, 73, 26, 70, 76, 49, + 49, 9, 81,151,146,170, 18, 25, 16,164, 70,143,211, 82,116,123, 9,137, 66, 87, 31,207,189,182, 9,227,208, 37, 22, 84, 0,194, + 76,204, 33, 91,105, 75,139,160,117,186, 85,167, 48,173,199,224,220, 3,192,197, 60, 42,172,221, 28,166, 62,174,175, 91,126,166, +189, 32, 89,220,219,133, 36, 86,179, 60,126,195,136,201,213, 34,120, 4,114,115, 99, 97, 19,113, 32,212,136,161,118, 0,165,112, + 53, 5, 26,158, 60,164, 54, 77,132,222,248,148,176, 80,223, 26, 49, 92,163, 60,209, 46,227, 97,172, 80,103,118,119, 79,173,137, +211,184,219, 99,236,207,189, 14,253,189,159,124,127,196,133, 81,127,112,176, 55, 12,159,253,244,163, 59,183,111,189,243,205,239, +228,197,124, 24,230,230, 81,228,133,187,149,126,241,240,227, 31,170, 86,184,173,156, 62,163,125, 95,106, 61,125,118,251,193,206, +103,183,126,244,193,217,237,211, 71,123, 7,125,153,237, 61,126,252,143, 31,127,114, 50,171,248, 15,255,254,189,111,188, 89,157, +247,251,156,147,124,244, 87,223, 19,242,167,143,238,221,251,226,211,219,255,245,254,189, 71,143,159, 28, 28,108,174,173,254,193, +119,127,227,171,111,190,106,138,121, 25,224, 32,150, 50, 63,252,201,159,252,231,102,150,106, 18,100,114,215,135, 31,127,255,209, +205, 15,199,118,151,131,104, 56,126,254,147, 63,251, 47, 2, 33, 50,115, 6, 72,251,114,247,163,191, 29,229, 60,216,223,249,156, +128,225,248,232,230, 95,253, 81,128,252, 62,249,139,255, 6, 2,115,114, 55,152, 82, 88, 32, 90,188,110,188, 29,191, 0,121,182, +174, 81,116,109,250,126, 96, 78,211,149,116,170, 42, 85, 85,179,195,147,227,203,211, 51,193, 15,138, 43, 86,213, 42,108,139, 69, +169,181,210,164,235,251,162,196,235, 43,147,231, 7,213, 65,181, 70, 0, 32,209,120,127, 38,103,146,228, 4,129, 65, 36,116, 0, + 35, 59,200, 18,226, 68,236,211, 46, 31,157,204, 94,190,112,113,235,244, 86,169, 54, 59, 58,217,127,190,223,247, 37,178,101, 52, +186,232,135, 90, 87, 87,166, 46,172, 86,151,132,161, 38,161,110,252, 33,113, 15,174, 0,135,183, 56, 62, 16,234, 88, 89, 93, 59, +179,125,254,209,189, 59,121,146, 97, 68,156,172,106,206,147, 90,135,173,115, 91,183, 62,185,181,214,229,107,151,206, 63, 63,153, + 63, 63, 58,153, 84,235, 18, 83,146, 9, 39,131,191,254,202, 43,251,207, 15,119, 30, 60, 72, 57, 49,216, 25, 73,152,133,135,161, +182, 61,113, 85, 8,133,102,152,133,215, 86,167,197,181,239,135, 65,121,168,133,136,125, 84,101, 4,206,148, 5,194, 12, 98,152, + 6, 19,187,168, 59, 69,126, 48, 38,239,112,144,144,120, 99, 21, 54, 22, 58, 51,197, 89,146, 40, 94,104, 81,108, 33,115,165,160, +142,152, 6,241,207, 91,219, 68, 64,168,104,176, 72, 54,113, 87, 6,171,151,140,140,145,102,105,106, 6, 87,173, 76, 46,137, 60, +202,180,164,129,125,229,176,144,197,153, 58,204, 44, 3,121, 99, 27,143, 17, 46, 71,102, 25,172,142, 72, 50,128,194,170,161,220, + 56,166, 81, 71, 50,192,152, 5,134,156,185,103,247,232, 49, 49,147, 67, 93,217,157, 71,130, 91, 28, 64,150,243,133, 64,201,197, + 33,175,129,100,131, 66, 79,237, 32, 52,174,218,131, 19,140, 68, 92,200, 96,206, 32,173, 37, 75,138, 20, 35, 9,199,100, 88, 70, + 50, 24, 51,192,232,144, 72,196,107, 37,131, 51,132,152, 25,165, 22,170,141,142,101, 60, 70, 2,153,114, 74,110, 24, 34, 14, 28, + 1, 75,129,215,200,143,195,105,132, 32, 6, 72,134,217, 85,251, 90, 88,132,205, 19, 19,152, 77, 85, 56, 85, 12, 68, 20,245,197, +102,100,116,175, 26, 36,151,198, 34, 30, 19,112, 78,209,244,118, 11,204, 67,252,189, 16,145, 80,106,169,209,241,108, 93,130, 33, +175, 30, 49, 82,107,206,177, 38, 9, 51,107, 20, 29, 39,114, 48, 3,213,156, 65, 28,104, 48,150, 32,196,185, 27, 80,199,118,141, + 71,165,195,105,132,158, 8,195, 93,132,212, 28, 78, 70,177, 28,111,246,152,240,109,140, 18, 50,114,119, 23, 19,106,221,127,201, + 89,107, 13,133,160,186,152, 43,183,135,161,112,100,122, 89, 35, 92,155,162,130,218, 18,159, 34, 36,113,180,105, 89,145,230, 13, + 21, 57, 56, 56,248,236, 31,254,118,178,117,238, 87,127,231,247,178,247,243,254,164,197, 45,178, 16, 92,135, 66,221, 36, 73,210, +147, 99,202,221,217,171,175, 29,237,237,110,158,191,180,255,108,119,101,243,194,233,173, 51,143,119,110, 61,127,242,232,225,131, +251,159,221,190,119,230,204,217,239,188,255,250,116, 50,157,171, 88, 62, 61, 93, 93,101,161,195,103,143,158, 62,121,112,239,222, +189,187,247, 31,223,125,252,104,177, 40, 63,255,230,245,223,252,206, 47,156,221,218, 90, 28,247,222,206,154, 2, 88,160,142,208, + 20, 23,225,163, 98, 71, 6,212,181, 18,103,247,138, 86, 63,102,110,212,132,224,220,136,107,117, 66,124,156,199,201,165,183,108, + 90, 67,101, 7,206, 63, 10, 0,210, 46,240,141,237, 23, 71, 48,103,137,123, 55,198, 95,220,227,240,127,112,120,204, 73,146,105, + 74,105, 24, 6, 55,215, 82,224,158, 88, 82,115,248,197, 73, 44, 13,117, 14, 38,175,186,127, 56, 35,243,148, 36,115,102, 98,120, + 77,194, 91,155,167,142,143,103,214,156, 69,198,209,180,178,246,187,165,166, 42, 4, 88, 0, 75,145,240, 51,152,234,229,203, 23, + 87, 86, 86, 13, 86,181, 28,158,204, 13, 40, 67,169,110, 81, 98, 25, 67, 0,142, 90,251, 82,252,133, 75,156,150,233,156,118,138, +179,118,228,140,152,138,143,193,177, 51,103,183,159,239, 62,209, 58, 64, 38, 57,101,115,168,100,114, 76,186,233,230,214,230, 52, +167,167, 79,159,191,122,233,252, 79,251, 7,125, 63,155,166, 83, 0,166, 43,211,162, 53,165,252,229, 55,222,120,182,255,172, 31, + 10,187, 73, 27,173, 17, 51,101,206, 65,197,142,179,237,250,164, 59, 56, 89, 36,145, 51, 27, 27, 7,135,199, 60,232,104, 30,183, +209, 59, 17, 0, 36,214, 80, 15, 3, 9, 94,204,132,161,106, 32,114, 50,226, 36, 76,113, 88, 34,132,190,131, 36, 22,156,113,148, +174,198, 34, 78, 12,211,208,217, 4,164,181, 77, 27,150,214,178, 70,136, 33, 50,168,169,116, 68,201, 93,173,175, 37,166, 88,169, + 75,165,239, 23,195, 16, 10,100, 87,175, 14, 46, 90, 59, 13, 96, 31,141,177, 36, 22,104, 29, 5,196,106,129,123,137,103, 36, 76, +201,101, 50, 73, 66, 60,104,227, 14, 6,110,207,212, 74,210,118, 2,108, 58, 31, 3,132, 29, 39,139,121,150,245,204, 89,109,201, +161,164, 6,140,165,118, 60,133,153, 91, 20,244,219,143,174,253, 25,153,200,156,140, 40,145,144,164, 44, 96,141, 91, 74, 43,166, + 34,120, 62,198, 68, 41,117, 97,174, 10, 26, 98,230,128, 49, 40, 51, 13,145,183,246,134,253, 77, 83, 78,146, 74,173, 96, 23,201, +170, 10, 71,102, 57,172, 1, 67,179, 48, 2,198, 71,177, 47, 26, 78, 15, 52,213,219,178,139,132,198,117,111, 51, 39, 0, 16,145, + 36,169,203,169,168, 66,220,137,166, 41,153, 54, 44, 0,128,148, 40,107,106,140,123,119,175, 65,139,107,208,194,241,255, 81, 68, +168, 90,208,226,136,152, 29, 72, 57,149,170,213, 12,170, 64,141,207,201, 32, 60,159,205, 35, 10, 80,204, 18,231,150,217, 82, 39, +130,113,139, 75, 80,188, 66,194,221, 22,170,119,230,112, 49, 47,145, 24, 34,174,234,106, 42, 17,221,105,187,126,107,169, 74,144, +228,228,181,214,170, 13,211,219,128,100,205, 28,191, 20,242, 5, 60, 76, 3,101, 70, 74, 53, 80,239,205,221, 42,206,106, 42,204, + 62, 86,246,169,165,130,145, 26, 98, 45,238, 38,203,219,145, 53,205,101,151,167,243,197,252,167, 63,248,160, 31,252,250, 91, 95, +189,120,110,187,214,210, 43,218,202, 37,248, 12,222,238, 71, 23,222,120, 71,114,231,102,179,231,187,183,127,250,209,116,101,117, +232, 23,171, 43,107, 95,252,228, 43,248,243,154, 0, 0, 8,156, 73, 68, 65, 84,195, 71,143, 30,126,126,235,206,188,214,175,190, +125,227,242,249,237,234,124,100, 43, 41,175,117, 93,118,235,247,246,158, 62,188,127,231,222,189, 71,183,118,118,238,237, 62,189, +112,118,235,247,127,247, 59, 95,190,254,178, 57,205,102, 71, 96,176, 79, 70,170,148, 47,151,108,228, 62, 54,115, 26,157,147, 44, +156, 39, 13,187,227, 80,166, 73, 43,237,186,155, 13, 8,225, 88,179,132,155,105,184,191,157, 44, 57,233,152,160, 82, 11, 94, 68, +219, 68, 52, 74,112,220, 42,151,131,194,224, 50,196, 87, 49,250,109,243,249,176, 58, 93,113,232,238,243, 67,214,128, 16,176, 48, +159, 44,230,107,235,171,153,211,188, 95, 12,181, 6, 76, 99,194,220,247,243,121, 25,114, 74, 73,186, 73, 55, 97, 66, 53, 53,245, +149,233,202,124,182, 48, 51,211, 90, 77, 39, 35, 47, 9,238,137,216,200, 61,234,195, 14, 85, 45, 42, 29, 11, 17,117,147,201,181, +171, 87,136, 65,213,251,190, 63,156,157,152,217,188,159, 91,160, 6,199,101,133,177,131,169,246,125, 59,228, 97,201, 98, 90,110, + 43,146,179, 3,234, 49, 53,136,109, 28, 1,238,221,250,250,230,214,153,199, 15,239,117,156,107,109,176,214,201,116,117, 49, 63, +217, 62,127,238,217,147, 39,167,183, 54,119,251,221,139, 91, 27,119,118,159,205,250,197, 70,183, 66, 66, 19,238, 22,165, 92,185, +116,229,198,171,111,252,232, 31,127,234, 34, 0,245,165,108, 76, 38,166,150,196, 93, 48, 12,101,222,151,193,117,139,166, 73,104, +190,232, 39,171, 43, 27,235,171,245,240,100, 88, 12, 97, 12,119,247,190, 12,113, 10, 13, 34,183, 99,156,116,142, 56,120,143,221, +107, 41,121,210,113, 76, 26, 97,238, 45,176,204, 49,100,112,113, 40,212,147, 67, 99,130, 65,148, 57,113,252,156, 57, 6, 58, 75, + 96, 55,194,188, 56, 91,244, 96, 89,235,152, 76, 8,112, 87, 51,114,243, 82, 43,136, 84,181, 86,173, 33,231, 38,117, 64,173,146, + 1,169,201,231,196, 56, 42,114,177, 0, 0,180,233,225,188,101, 92,114, 74, 85,151,162,122, 52,225, 9, 32, 76,137, 18, 24, 49, +116,137,246,103, 52,245, 85,235, 8,140,142,216, 30, 73,130,169,215,106, 17,206,116, 2, 39,193, 64,158, 64, 64,158,228,113, 8, +221,214,127, 65,110,169,213,205,200,152,196, 25,170, 17, 0, 34,137,236, 24, 98, 12, 83, 53, 30,107, 17,174, 55, 13,224,170,107, +244, 42,221,145,136, 37,177,187,197,201,134,217, 20,110,234, 43,147, 28,238,202, 86, 89,111, 79,154,104,168, 81, 69,107, 99,142, +121,161,118,115, 49, 51,112,128,229, 65,236,166, 90,147, 8, 51,218, 97, 20,234,193,106, 79,210, 15,230,241, 66,106, 41,244,192, +229,147,139,193, 57, 46, 49,241,163, 96, 78, 34, 67,173,204,108, 49,134, 12, 6, 60,188, 22, 99, 43, 49, 69,119, 51, 55, 47,102, + 76,210,142,244,112,243, 81,126,180, 4, 85,142, 51,153,165,152,172, 25, 90,219,213,175,137,145, 53,140, 89,204,110,227,226,187, + 82,100,106, 99, 90, 91,180,152, 6,114,180,169, 83,213, 77,173,198, 60, 61,196,200,241, 98, 86, 0,213, 56, 17,131, 92,141,164, + 41, 5, 56,158, 77,202, 32,130,151,246, 27, 73,188, 45,144, 90, 74,159,154,230,111,185,195, 78, 57, 17,248,246,167, 63,187,179, +179,115,249,229, 87,190,113,227, 70,173,253,124, 49,151,148,184,155, 80, 69,117,135,215, 88, 86,104,173, 39, 79,238, 31, 63,219, +157,174, 76, 14, 14, 15, 57,229, 73,110,130,191,231,143,119, 62,254,228,230,206,131, 39,151, 46,156,251,246,235,215,114,226, 89, + 97,205,167,243,100, 53,179,159,156, 28, 28,238, 61,185,115,247,238,237,187,247,110,221,127, 52,235, 23,239,127,229,203,191,243, +171,239,173,175,175,149,197, 0,102,131, 91,165,148, 45,130,187,129,229,106,163,133, 23,214, 98, 29,189, 36, 68,174, 4, 5,139, +123, 2,200, 92,185,193,166,157, 96, 49, 91,140,178, 0, 17,113,146, 17,208,163, 24,201,181, 16,110,232, 16, 10,243,120, 3,238, +216, 40, 86, 48,179,145,136,194, 60, 30,241,224,126,178,152,119,147, 73,223, 47,200,209,137,232,164, 75, 89, 42,212,205,230,179, + 69, 62,179,237,238,205,201, 64,204,174, 7,243, 69,104,198,132,169, 47,139,117, 94, 67, 43,203, 72,206,146,153,247, 79, 74,169, + 53, 5,251,134, 9,238,149, 91, 85, 46,181,241, 51, 17,144, 37,131,124,117, 58,185,114,225,162, 86,168,149,253,131,253,217, 98, + 97,102,181,212, 49, 71,180, 12,137, 1,224,197, 48, 31, 85, 73,241, 21,214,229, 27,190,121,115,149,169,115, 36,248,162,173, 96, +227,173,120,238,165, 43,207,159, 62,113,114,102,192,157, 57,165,233,116,226,245,248, 96,191, 46, 22,167,206,157, 91, 61,181,182, +237,120,122,120,188,176, 90,181,244, 53,173, 79, 38, 43,220,169,251,141,215, 94,223,185,127,127,247,249, 62,179,176,136, 72,118, + 31, 74, 25, 68,114,202, 44, 32, 53,127, 54,155, 79,146,172, 77, 39,139,170, 29,115, 74,236, 68,149, 52,187, 56,172,147, 28,141, + 70,142, 26,104,212, 63,226,113,108,177, 38, 8, 56,159, 21, 53, 34, 98, 39, 35,114, 98,131, 10,195,137, 52, 16,154, 36,181, 86, + 16, 18,167, 34,201, 2,141, 47,156,146,212,226, 74, 22, 29,206, 16, 7,179,155,185, 50,185, 89, 45,166,102,117,101,186, 82,230, +138, 68,139,190, 23,150, 69, 25,138, 22, 39,147, 80,100,190, 96,113, 53,195, 96,116,148,212, 61, 59, 37, 22, 78,201, 23,101,132, +133,180, 13,160, 85,213, 90, 70,110,108,216, 72, 12,196, 57,119, 73,132, 8,169, 75, 14,157,247, 14, 18, 6,173,173,174, 74, 40, + 12,163,113,100, 10, 36, 15,255, 52, 25,185, 26, 68,192,161,181,139,164, 38, 49,179,147, 54,146, 92,144,223,168, 89, 97, 25, 28, +228, 91, 22, 88, 35,133,147, 90, 75, 4,130,226,165, 64, 28,128, 45,111, 71,202, 6, 34,111,124,139,192,198,153, 69,238,223,153, + 72, 58, 54,109, 22,241, 54,173,110,243, 28,206,146,152,201, 84,107, 59, 5,195,213, 41,108,222, 12,179,101,154, 52, 80,204, 34, + 1, 24, 16,113,173, 14,241,177, 4, 33, 68, 33, 64,135, 32,176,199,196,146, 88, 76,107,175,117,249,194, 28,189, 67,226,134, 76, + 73, 49,180, 4, 10, 67, 40,129, 76,173,186, 43, 83,106,197,150,120,135,150,202,156,156, 20,206,109,245, 30, 55,103,231, 24,175, +141,248,223,136,228, 51,189,192, 36,197,219, 57,218, 72,109, 19, 59,154, 54, 20, 68,170,206, 44,102,113,250, 10, 49,129, 49, 68, +181, 90,228, 92,204,226, 52,217,130,203,106, 66,176, 70,129, 52, 18, 6,132,199, 7,160,153,241, 72, 5,211, 26,146,239, 6,158, + 79,141,198, 28,140,177, 88, 42,229, 21, 66,189,127,111,231,254,206,206,116,245,212, 55,191,245,203,235,235, 43,139,249,113, 80, +154,172,154,152, 27, 12,163, 57, 79,235, 80,251, 69,154,174, 77,214,214,143,143, 14, 37, 79, 78,109,157, 57,122,246,120,152, 29, +124,241,249,167,159,223,222, 73,210,189,251,149, 27,219, 91,155,213,232,168,116, 60,221,156,164,206,189, 60,221,125,188,251,248, +225,157,251,247,111,221,189,255,232,217,254,217,211, 27,191,247, 91,191,252,213,183,174, 27,104, 24, 10, 73,203, 38, 38, 33,184, +142,113, 19, 90,174, 77, 98, 51, 76,206,227,138,216, 65, 9, 17,186,119,129,155,147,196,140,161, 33,224, 99,202, 99, 70, 75,251, + 76, 60,200,195, 91,235, 75, 70, 77,155,224, 7, 19, 19, 32,119,109, 15,244,246, 3,141,233,237,139,106, 50,204,157,188,239,139, +164,236,139,217,100,146, 89, 61,250,166, 9,196, 34,139,249,108,177,152, 29, 29,167, 50, 20,139,160,165,164,121, 95,219,153,209, + 12,134, 44, 73,137,163, 5, 24,229,133,162,197,153, 73,154,221, 32,102, 13,193, 17, 36,106,148,174,101,240,121,115, 99, 99,115, +115, 83, 50, 47,142,202,243,131,253,170, 86,172, 46,202, 64,198, 4, 93, 90,116,195, 10, 95,251, 1,169,245,236, 98, 14, 97, 80, +166, 68,144,101, 90,218,213, 97,113,244, 89,126, 67,104,186,190,113,233,234,181,123, 59,183,147,100, 14,176,179,214,174, 91,157, + 78,231, 87,190,244,165,157, 59,119, 55, 79,175, 39,248,171, 47, 93,248,201,237,251, 10, 63,181,182,234,206, 89,200,107,221,220, + 56,253,213,119,126,238, 79,255,230,175,212,172,203,185, 88, 13,225, 14,224, 66, 60,201,210,173,118,139,162,100,186,182, 58,173, +199,115,115, 90,201,147, 35,204,225,148, 83,170,170, 57, 11, 17,143, 39,161, 86, 19,143,153, 67, 69, 52,183, 74, 11, 73, 66,153, + 26, 56,222,213,152,205, 3,221, 8, 50, 80,230, 96, 6,135, 10,144,216,189,160,186,117, 66, 16,242,242,162,125, 14, 7,204,192, + 78, 93,158, 40,188, 31,234, 88,107, 68, 34,234,189, 82,244,107, 0,226, 84,225, 18,197, 83,143,112, 72,236, 9,149,219, 53,208, + 33, 44,146, 56,150,136, 22, 91,157,176, 20, 81,169, 53,190,152,141, 91,202,204, 36, 17, 30,141,109,190,155, 17, 88, 43, 66, 31, + 52,153, 76,180, 86,196, 66,216, 93, 88, 84,149, 69, 96, 36, 36, 5, 46, 30, 66,201, 23,241, 87, 4,196, 0, 2,243, 10, 11, 90, +161, 7,200,254,159, 36,199,199,250, 72,232,215,131,167, 70, 34,210, 15, 67, 29,124,210, 37, 2, 59,143,101,250,165,222, 0,122, +116, 50, 3,241, 16, 35, 56, 94,129,130,147,180,217, 56, 8, 76, 99,147,142, 34, 13, 19,201,194, 37,194,138, 67, 99, 62,246,239, +227,204, 25, 27, 12, 18, 8, 17,187, 83, 11,145, 0,230, 85, 3, 44,236, 89,196,220,234, 80, 16,120,140,120,195, 48,147,209, 56, +202,140, 99,186,186, 67, 85,227,189,200,227, 8,160,148,194,164, 90,157,137, 18,203, 96,166,214,140,126,188, 84, 65, 4, 7,137, +150,208,126,199, 11, 96,157,144,187, 70, 26, 42, 44, 35, 22,190, 60, 39,110,243, 0,110,111, 43,113, 87, 55,231, 68, 68, 84, 77, +205,156,184, 9, 4,221,169, 90,148,252,218,181,165, 97, 27,204, 1, 87, 55, 14,229,112, 59,227,194,221,139, 25,179,120, 88, 31, +218,205, 34,164, 97, 48, 67,102,114,248,255, 3,163,186,128,162, 44,159, 39,191, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, }; -- cgit v1.2.3 From d33b63c5d85db9a8632a3571048f2fcbf713740d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 17:00:34 +0000 Subject: update cmake checker to ignore file list and add some headers to the source list. --- source/blender/python/intern/bpy_rna.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index b9af75834e0..c1c7e0ea740 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1473,7 +1473,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb param= _PyUnicode_AsString(value); } #else // USE_STRING_COERCE - param= _PyUnicode_AsStringSize(value); + param= _PyUnicode_AsString(value); #endif // USE_STRING_COERCE if (param==NULL) { -- cgit v1.2.3 From eaae38551f19a06c903c8beadbcaad9453b81b49 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 21 Jun 2011 17:17:51 +0000 Subject: pep8 compliance --- source/blender/python/intern/bpy_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 8017720671e..0001c1c74b9 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -200,7 +200,7 @@ void BPY_python_start(int argc, const char **argv) /* allow to use our own included python */ PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL)); - /* Python 3.2 now looks for '2.57/python/include/python3.2d/pyconfig.h' to parse + /* Python 3.2 now looks for '2.58/python/include/python3.2d/pyconfig.h' to parse * from the 'sysconfig' module which is used by 'site', so for now disable site. * alternatively we could copy the file. */ Py_NoSiteFlag= 1; -- cgit v1.2.3 From 7ba4362c72c3ccd4763762414bd928682a51b7ce Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 21 Jun 2011 20:14:07 +0000 Subject: 3D Audio GSoC: Memory bug fix. --- source/blender/blenkernel/intern/sound.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index f42492ef713..9e9df24be32 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -315,6 +315,11 @@ void sound_free(struct bSound* sound) sound->handle = NULL; sound->playback_handle = NULL; } + + if(sound->cache) + { + AUD_unload(sound->cache); + } } static float sound_get_volume(Scene* scene, Sequence* sequence, float time) -- cgit v1.2.3 From 044887b5a4b1df57fce408f29f59bce1d7fa0085 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 21 Jun 2011 20:21:43 +0000 Subject: 3D Audio GSoC: - Created Handle classes - Changed Reference counting completely - Fixing some streaming bugs - Completely disabled OpenAL Buffered Factories (they were unused anyway) --- source/blender/blenkernel/intern/sound.c | 59 ++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 9e9df24be32..18eab716924 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -51,7 +51,8 @@ static void sound_sync_callback(void* data, int mode, float time) sound_play_scene(scene); else sound_stop_scene(scene); - AUD_seek(scene->sound_scene_handle, time); + if(scene->sound_scene_handle) + AUD_seek(scene->sound_scene_handle, time); } scene = scene->id.next; } @@ -345,7 +346,7 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, AUD_setDeviceVolume(mixdown, volume); - AUD_playDevice(mixdown, scene->sound_scene, start / FPS); + AUD_freeChannel(AUD_playDevice(mixdown, scene->sound_scene, start / FPS)); return mixdown; } @@ -353,12 +354,16 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, void sound_create_scene(struct Scene *scene) { scene->sound_scene = AUD_createSequencer(scene->audio.flag & AUDIO_MUTE, scene, (AUD_volumeFunction)&sound_get_volume); + scene->sound_scene_handle = NULL; + scene->sound_scrub_handle = NULL; } void sound_destroy_scene(struct Scene *scene) { if(scene->sound_scene_handle) AUD_stop(scene->sound_scene_handle); + if(scene->sound_scrub_handle) + AUD_stop(scene->sound_scrub_handle); if(scene->sound_scene) AUD_destroySequencer(scene->sound_scene); } @@ -398,8 +403,10 @@ void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, i static void sound_start_play_scene(struct Scene *scene) { - scene->sound_scene_handle = AUD_play(scene->sound_scene, 1); - AUD_setLoop(scene->sound_scene_handle, -1); + if(scene->sound_scene_handle) + AUD_stop(scene->sound_scene_handle); + if((scene->sound_scene_handle = AUD_play(scene->sound_scene, 1))) + AUD_setLoop(scene->sound_scene_handle, -1); } void sound_play_scene(struct Scene *scene) @@ -407,11 +414,17 @@ void sound_play_scene(struct Scene *scene) AUD_Status status; AUD_lock(); - status = AUD_getStatus(scene->sound_scene_handle); + status = scene->sound_scene_handle ? AUD_getStatus(scene->sound_scene_handle) : AUD_STATUS_INVALID; if(status == AUD_STATUS_INVALID) sound_start_play_scene(scene); + if(!scene->sound_scene_handle) + { + AUD_unlock(); + return; + } + if(status != AUD_STATUS_PLAYING) { AUD_seek(scene->sound_scene_handle, CFRA / FPS); @@ -426,10 +439,13 @@ void sound_play_scene(struct Scene *scene) void sound_stop_scene(struct Scene *scene) { - AUD_pause(scene->sound_scene_handle); + if(scene->sound_scene_handle) + { + AUD_pause(scene->sound_scene_handle); - if(scene->audio.flag & AUDIO_SYNC) - AUD_stopPlayback(); + if(scene->audio.flag & AUDIO_SYNC) + AUD_stopPlayback(); + } } void sound_seek_scene(struct bContext *C) @@ -439,11 +455,18 @@ void sound_seek_scene(struct bContext *C) AUD_lock(); - status = AUD_getStatus(scene->sound_scene_handle); + status = scene->sound_scene_handle ? AUD_getStatus(scene->sound_scene_handle) : AUD_STATUS_INVALID; if(status == AUD_STATUS_INVALID) { sound_start_play_scene(scene); + + if(!scene->sound_scene_handle) + { + AUD_unlock(); + return; + } + AUD_pause(scene->sound_scene_handle); } @@ -457,10 +480,14 @@ void sound_seek_scene(struct bContext *C) else AUD_seek(scene->sound_scene_handle, CFRA / FPS); AUD_resume(scene->sound_scene_handle); - if(AUD_getStatus(scene->sound_scrub_handle) != AUD_STATUS_INVALID) + if(scene->sound_scrub_handle && AUD_getStatus(scene->sound_scrub_handle) != AUD_STATUS_INVALID) AUD_seek(scene->sound_scrub_handle, 0); else + { + if(scene->sound_scrub_handle) + AUD_stop(scene->sound_scrub_handle); scene->sound_scrub_handle = AUD_pauseAfter(scene->sound_scene_handle, 1 / FPS); + } } else { @@ -478,10 +505,14 @@ void sound_seek_scene(struct bContext *C) float sound_sync_scene(struct Scene *scene) { - if(scene->audio.flag & AUDIO_SYNC) - return AUD_getSequencerPosition(scene->sound_scene_handle); - else - return AUD_getPosition(scene->sound_scene_handle); + if(scene->sound_scene_handle) + { + if(scene->audio.flag & AUDIO_SYNC) + return AUD_getSequencerPosition(scene->sound_scene_handle); + else + return AUD_getPosition(scene->sound_scene_handle); + } + return 0.0f; } int sound_scene_playing(struct Scene *scene) -- cgit v1.2.3 From c89b4e4b665757e0a164e98985d2f5d1c6843fa0 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 21 Jun 2011 20:24:40 +0000 Subject: 3D Audio GSoC: - Implemented a nice rechanneling solution with unofficial speaker arrangement standards similar to what OpenAL soft has - Renamend AUD_Channel in the C API to AUD_Handle - Removed the unlogical 7.2 speaker configuration, that's a hardware only config --- source/blender/blenkernel/intern/sound.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 18eab716924..60a24c2eace 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -346,7 +346,7 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, AUD_setDeviceVolume(mixdown, volume); - AUD_freeChannel(AUD_playDevice(mixdown, scene->sound_scene, start / FPS)); + AUD_freeHandle(AUD_playDevice(mixdown, scene->sound_scene, start / FPS)); return mixdown; } -- cgit v1.2.3 From 2d3d025e8cf8776361e6397502f4e240ae9a5ccc Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 21 Jun 2011 20:39:41 +0000 Subject: 3D Audio GSoC: - Sequencer dynamics: Now it's possible to change the output channels and the resampling quality also increased (previously maximum quality was 44,1 kHz) - Changed two buffers to use ffmpeg allocation, not sure if that helps somehow. --- source/blender/blenkernel/intern/scene.c | 1 + source/blender/blenkernel/intern/sound.c | 4 ++++ source/blender/blenkernel/intern/writeffmpeg.c | 17 ++++++++--------- source/blender/blenloader/intern/readfile.c | 6 ++++++ source/blender/makesdna/DNA_scene_types.h | 2 ++ source/blender/makesrna/intern/rna_scene.c | 12 ++++++++++++ 6 files changed, 33 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 51eaba3c05b..e045bd0fb82 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -469,6 +469,7 @@ Scene *add_scene(const char *name) sce->r.ffcodecdata.audio_mixrate = 44100; sce->r.ffcodecdata.audio_volume = 1.0f; sce->r.ffcodecdata.audio_bitrate = 192; + sce->r.ffcodecdata.audio_channels = 2; BLI_strncpy(sce->r.engine, "BLENDER_RENDER", sizeof(sce->r.engine)); diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 60a24c2eace..9b86b8752db 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -346,6 +346,7 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, AUD_setDeviceVolume(mixdown, volume); + AUD_setSequencerSpecs(scene->sound_scene, specs.specs); AUD_freeHandle(AUD_playDevice(mixdown, scene->sound_scene, start / FPS)); return mixdown; @@ -405,6 +406,9 @@ static void sound_start_play_scene(struct Scene *scene) { if(scene->sound_scene_handle) AUD_stop(scene->sound_scene_handle); + + AUD_setSequencerDeviceSpecs(scene->sound_scene); + if((scene->sound_scene_handle = AUD_play(scene->sound_scene, 1))) AUD_setLoop(scene->sound_scene_handle, -1); } diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index c729565533f..26de31b2b03 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -549,7 +549,7 @@ static AVStream* alloc_audio_stream(RenderData *rd, int codec_id, AVFormatContex c->sample_rate = rd->ffcodecdata.audio_mixrate; c->bit_rate = ffmpeg_audio_bitrate*1000; c->sample_fmt = SAMPLE_FMT_S16; - c->channels = 2; + c->channels = rd->ffcodecdata.audio_channels; codec = avcodec_find_encoder(c->codec_id); if (!codec) { //XXX error("Couldn't find a valid audio codec"); @@ -574,12 +574,11 @@ static AVStream* alloc_audio_stream(RenderData *rd, int codec_id, AVFormatContex audio_outbuf_size = c->frame_size * c->channels * sizeof(int16_t) * 4; } - audio_output_buffer = (uint8_t*)MEM_mallocN( - audio_outbuf_size, "FFMPEG audio encoder input buffer"); + audio_output_buffer = (uint8_t*)av_malloc( + audio_outbuf_size); - audio_input_buffer = (uint8_t*)MEM_mallocN( - audio_input_samples * c->channels * sizeof(int16_t), - "FFMPEG audio encoder output buffer"); + audio_input_buffer = (uint8_t*)av_malloc( + audio_input_samples * c->channels * sizeof(int16_t)); audio_time = 0.0f; @@ -701,7 +700,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report if (ffmpeg_type == FFMPEG_DV) { fmt->audio_codec = CODEC_ID_PCM_S16LE; - if (ffmpeg_audio_codec != CODEC_ID_NONE && rd->ffcodecdata.audio_mixrate != 48000) { + if (ffmpeg_audio_codec != CODEC_ID_NONE && rd->ffcodecdata.audio_mixrate != 48000 && rd->ffcodecdata.audio_channels != 2) { BKE_report(reports, RPT_ERROR, "FFMPEG only supports 48khz / stereo audio for DV!"); return 0; } @@ -971,11 +970,11 @@ void end_ffmpeg(void) video_buffer = 0; } if (audio_output_buffer) { - MEM_freeN(audio_output_buffer); + av_free(audio_output_buffer); audio_output_buffer = 0; } if (audio_input_buffer) { - MEM_freeN(audio_input_buffer); + av_free(audio_input_buffer); audio_input_buffer = 0; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index b8a72616593..50be7b83484 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11474,6 +11474,12 @@ static void do_versions(FileData *fd, Library *lib, Main *main) kb->slidermax = kb->slidermin + 1.0f; } } + + { + Scene *scene; + for (scene=main->scene.first; scene; scene=scene->id.next) + scene->r.ffcodecdata.audio_channels = 2; + } } if (main->versionfile < 256 || (main->versionfile == 256 && main->subversionfile < 1)) { diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 100a66d209f..2fc92aa12c4 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -126,6 +126,8 @@ typedef struct FFMpegCodecData { int video_bitrate; int audio_bitrate; int audio_mixrate; + int audio_channels; + int audio_pad; float audio_volume; int gop_size; int flags; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 1322a18421b..a8d8d875ec4 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -98,6 +98,14 @@ EnumPropertyItem snap_element_items[] = { {SCE_SNAP_MODE_VOLUME, "VOLUME", ICON_SNAP_VOLUME, "Volume", "Snap to volume"}, {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem audio_channel_items[] = { + {1, "MONO", 0, "Mono", "Set audio channels to mono"}, + {2, "STEREO", 0, "Stereo", "Set audio channels to stereo"}, + {4, "SURROUND4", 0, "4 Channels", "Set audio channels to 4 channels"}, + {6, "SURROUND51", 0, "5.1 Surround", "Set audio channels to 5.1 surround sound"}, + {8, "SURROUND71", 0, "7.1 Surround", "Set audio channels to 7.1 surround sound"}, + {0, NULL, 0, NULL, NULL}}; + EnumPropertyItem image_type_items[] = { {0, "", 0, "Image", NULL}, {R_BMP, "BMP", ICON_FILE_IMAGE, "BMP", "Output image in bitmap format"}, @@ -2468,6 +2476,10 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Volume", "Audio volume"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + prop= RNA_def_property(srna, "ffmpeg_audio_channels", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "ffcodecdata.audio_channels"); + RNA_def_property_enum_items(prop, audio_channel_items); + RNA_def_property_ui_text(prop, "Audio Channels", "Sets the audio channel count"); #endif prop= RNA_def_property(srna, "fps", PROP_INT, PROP_NONE); -- cgit v1.2.3 From ab2026bf4271ba316ffe621eb142091127ee1cf0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 22 Jun 2011 11:41:26 +0000 Subject: Animation Channel Filtering Refactor - Part 3 (Visibility Flag Split) * This (big) commit is aimed at cleaning up the filtering flags used by the animation channel filtering code. The list of filtering flags has been growing a bit "organically" since it's humble origins for use in the Action Editor some 3 years (IIRC) ago now during a weekend hackathon. Obviously, some things have ended up tacked on, while others have been the product of other flag options. Nevertheless, it was time for a bit of a spring clean! * Most notably, one area where the system outgrown its original design for the Action Editor was in terms of the "visibility" filtering flag it was using. While in the Action Editor the concept of what channels to include was strictly dictated by whether the channel hierarchy showed it, in the Graph Editor this is not always the case. In other words, there was a difference between the data the channels represented being visible and the channels for that data being visible in the hierarchy. Long story short: this lead to bug report [#27076] (and many like it), where if you selected an F-Curve, then collapsed the Group it was in, then even after selecting another F-Curve in another Group, the original F-Curve's properties would still be shown in the Properties Region. The good news is that this commit fixes this issue right away! * More good news will follow, as I start checking on the flag usage of other tools, but I'm committing this first so that we have a stable reference (of code similar to the old buggy stuff) on which we can fall back to later to find bugs (should they pop up). Anyways, back to the trenches! --- .../editors/animation/anim_channels_defines.c | 7 +- .../blender/editors/animation/anim_channels_edit.c | 60 +++++++---- source/blender/editors/animation/anim_deps.c | 2 +- source/blender/editors/animation/anim_filter.c | 117 ++++++++++----------- source/blender/editors/animation/keyframes_draw.c | 2 +- source/blender/editors/animation/keyframes_edit.c | 4 +- source/blender/editors/include/ED_anim_api.h | 58 +++++++--- source/blender/editors/space_action/action_draw.c | 4 +- source/blender/editors/space_action/action_edit.c | 38 +++---- .../blender/editors/space_action/action_select.c | 30 +++--- source/blender/editors/space_graph/graph_draw.c | 4 +- source/blender/editors/space_graph/graph_edit.c | 44 ++++---- source/blender/editors/space_graph/graph_select.c | 22 ++-- source/blender/editors/space_graph/graph_utils.c | 16 +-- source/blender/editors/space_graph/space_graph.c | 2 +- source/blender/editors/space_nla/nla_buttons.c | 3 +- source/blender/editors/space_nla/nla_channels.c | 8 +- source/blender/editors/space_nla/nla_draw.c | 4 +- source/blender/editors/space_nla/nla_edit.c | 44 ++++---- source/blender/editors/space_nla/nla_select.c | 9 +- .../editors/transform/transform_conversions.c | 18 ++-- .../blender/editors/transform/transform_generics.c | 4 +- 22 files changed, 275 insertions(+), 225 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index c71ffe9cd5e..c3e79d787e1 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -2735,11 +2735,8 @@ static void achannel_setting_flush_widget_cb(bContext *C, void *ale_npoin, void else return; - /* get all channels that can possibly be chosen - * - therefore, the filter is simply ANIMFILTER_CHANNELS, since if we took VISIBLE too, - * then the channels under closed expanders get ignored... - */ - filter= ANIMFILTER_CHANNELS; + /* get all channels that can possibly be chosen - but ignore hierarchy */ + filter= ANIMFILTER_DATA_VISIBLE|ANIMFILTER_LIST_CHANNELS; ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* call API method to flush the setting */ diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 9eb9e3ecd9a..fa52bdcb854 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -194,7 +194,8 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype, int filter; /* filter data */ - filter= ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS; + /* NOTE: no list visible, otherwise, we get dangling */ + filter= ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS; ANIM_animdata_filter(ac, &anim_data, filter, data, datatype); /* See if we should be selecting or deselecting */ @@ -1053,7 +1054,8 @@ static int animchannels_rearrange_exec(bContext *C, wmOperator *op) mode= RNA_enum_get(op->ptr, "direction"); /* get animdata blocks */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA); + // XXX: hierarchy visibility is provisional atm... might be wrong decision! + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_ANIMDATA); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale = anim_data.first; ale; ale = ale->next) { @@ -1133,7 +1135,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op)) /* do groups only first (unless in Drivers mode, where there are none) */ if (ac.datatype != ANIMCONT_DRIVERS) { /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CHANNELS | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* delete selected groups and their associated channels */ @@ -1172,7 +1174,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op)) /* now do F-Curves */ if (ac.datatype != ANIMCONT_GPENCIL) { /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* delete selected F-Curves */ @@ -1227,12 +1229,16 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op)) if (ANIM_animdata_get_context(C, &ac) == 0) return OPERATOR_CANCELLED; - /* get list of all channels that selection may need to be flushed to */ - filter= ANIMFILTER_CHANNELS; + /* get list of all channels that selection may need to be flushed to + * - hierarchy mustn't affect what we have access to here... + */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype); - - /* hide all channels not selected */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS); + + /* hide all channels not selected + * - restrict this to only applying on settings we can get to in the list + */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -1306,12 +1312,16 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *UNUSED(o if (ANIM_animdata_get_context(C, &ac) == 0) return OPERATOR_CANCELLED; - /* get list of all channels that selection may need to be flushed to */ - filter= (ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS); + /* get list of all channels that selection may need to be flushed to + * - hierarchy mustn't affect what we have access to here... + */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype); - /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); + /* filter data + * - restrict this to only applying on settings we can get to in the list + */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* See if we should be making showing all selected or hiding */ @@ -1403,14 +1413,24 @@ static void setflag_anim_channels (bAnimContext *ac, short setting, short mode, /* filter data that we need if flush is on */ if (flush) { - /* get list of all channels that selection may need to be flushed to */ - filter= ANIMFILTER_CHANNELS; + /* get list of all channels that selection may need to be flushed to + * - hierarchy visibility needs to be ignored so that settings can get flushed + * "down" inside closed containers + */ + filter= ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS; ANIM_animdata_filter(ac, &all_data, filter, ac->data, ac->datatype); } - /* filter data that we're working on */ + /* filter data that we're working on + * - hierarchy matters if we're doing this from the channels region + * since we only want to apply this to channels we can "see", + * and have these affect their relatives + * - but for Graph Editor, this gets used also from main region + * where hierarchy doesn't apply [#21276] + */ + // FIXME: graph editor case // XXX: noduplis enabled so that results don't cancel, but will be problematic for some channels where only type differs - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); if (onlysel) filter |= ANIMFILTER_SEL; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -1703,7 +1723,7 @@ static int animchannels_enable_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* loop through filtered data and clean curves */ @@ -1812,7 +1832,7 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele UI_view2d_region_to_view(v2d, rect->xmax, rect->ymax-2, &rectf.xmax, &rectf.ymax); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop over data, doing border select */ @@ -1926,7 +1946,7 @@ static int mouse_anim_channels (bAnimContext *ac, float UNUSED(x), int channel_i /* get the channel that was clicked on */ /* filter channels */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get channel from index */ diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c index b5a1781064c..13061113926 100644 --- a/source/blender/editors/animation/anim_deps.c +++ b/source/blender/editors/animation/anim_deps.c @@ -257,7 +257,7 @@ void ANIM_sync_animchannels_to_data (const bContext *C) /* filter data */ /* NOTE: we want all channels, since we want to be able to set selection status on some of them even when collapsed */ - filter= ANIMFILTER_CHANNELS; + filter= ANIMFILTER_DATA_VISIBLE|ANIMFILTER_LIST_CHANNELS; ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* flush settings as appropriate depending on the types of the channels */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 2343c73921c..04d8aa87e14 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -369,7 +369,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) #define ANIMDATA_FILTER_CASES(id, adtOk, nlaOk, driversOk, keysOk) \ {\ if ((id)->adt) {\ - if (!(filter_mode & ANIMFILTER_CURVEVISIBLE) || !((id)->adt->flag & ADT_CURVES_NOT_VISIBLE)) {\ + if (!(filter_mode & ANIMFILTER_CURVE_VISIBLE) || !((id)->adt->flag & ADT_CURVES_NOT_VISIBLE)) {\ if (filter_mode & ANIMFILTER_ANIMDATA) {\ adtOk\ }\ @@ -774,11 +774,12 @@ static size_t skip_fcurve_selected_data (bDopeSheet *ads, FCurve *fcu, ID *owner /* check whether to continue or skip */ if ((pchan) && (pchan->bone)) { /* if only visible channels, skip if bone not visible unless user wants channels from hidden data too */ - if ((filter_mode & ANIMFILTER_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) { + if ((filter_mode & ANIMFILTER_DATA_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) { bArmature *arm= (bArmature *)ob->data; if ((arm->layer & pchan->bone->layer) == 0) return 1; + // TODO: manually hidden using flags } /* can only add this F-Curve if it is selected */ @@ -881,7 +882,7 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct } /* only include if visible (Graph Editor check, not channels check) */ - if (!(filter_mode & ANIMFILTER_CURVEVISIBLE) || (fcu->flag & FCURVE_VISIBLE)) { + if (!(filter_mode & ANIMFILTER_CURVE_VISIBLE) || (fcu->flag & FCURVE_VISIBLE)) { /* only work with this channel and its subchannels if it is editable */ if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_FCU(fcu)) { /* only include this curve if selected in a way consistent with the filtering requirements */ @@ -1003,7 +1004,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo */ if (first_fcu) { /* add this group as a channel first */ - if ((filter_mode & ANIMFILTER_CHANNELS) || !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* filter selection of channel specially here again, since may be open and not subject to previous test */ if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { ale= make_new_animlistelem(agrp, ANIMTYPE_GROUP, owner_id); @@ -1021,17 +1022,16 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo * - groups can be collapsed (and those tools which are only interested in channels rely on knowing that group is closed) * * cases when we should include F-Curves inside group: - * - we don't care about visibility + * - we don't care about hierarchy visibility (i.e. we just need the F-Curves present) * - group is expanded - * - we just need the F-Curves present */ - if ( (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_AGRP(ac, agrp)) || (filter_mode & ANIMFILTER_CURVESONLY) ) + if ( (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_AGRP(ac, agrp)) ) { /* for the Graph Editor, curves may be set to not be visible in the view to lessen clutter, * but to do this, we need to check that the group doesn't have it's not-visible flag set preventing * all its sub-curves to be shown */ - if ( !(filter_mode & ANIMFILTER_CURVEVISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) + if ( !(filter_mode & ANIMFILTER_CURVE_VISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) { if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { /* NOTE: filter_gmode is used here, not standard filter_mode, since there may be some flags that shouldn't apply */ @@ -1054,7 +1054,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo } /* Include NLA-Data for NLA-Editor: - * - when ANIMFILTER_CHANNELS is used, that means we should be filtering the list for display + * - when ANIMFILTER_LIST_CHANNELS is used, that means we should be filtering the list for display * Although the evaluation order is from the first track to the last and then apply the Action on top, * we present this in the UI as the Active Action followed by the last track to the first so that we * get the evaluation order presented as per a stack. @@ -1069,7 +1069,7 @@ static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data size_t items = 0; /* if showing channels, include active action */ - if (filter_mode & ANIMFILTER_CHANNELS) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* there isn't really anything editable here, so skip if need editable */ // TODO: currently, selection isn't checked since it doesn't matter if ((filter_mode & ANIMFILTER_FOREDIT) == 0) { @@ -1097,7 +1097,7 @@ static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data /* loop over NLA Tracks - assume that the caller of this has already checked that these should be included */ for (nlt= first; nlt; nlt= next) { /* 'next' NLA-Track to use depends on whether we're filtering for drawing or not */ - if (filter_mode & ANIMFILTER_CHANNELS) + if (filter_mode & ANIMFILTER_LIST_CHANNELS) next= nlt->prev; else next= nlt->next; @@ -1137,7 +1137,7 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K size_t items = 0; /* check if channels or only F-Curves */ - if ((filter_mode & ANIMFILTER_CURVESONLY) == 0) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { KeyBlock *kb; /* loop through the channels adding ShapeKeys as appropriate */ @@ -1165,7 +1165,7 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K } else { /* just use the action associated with the shapekey */ - // FIXME: is owner-id and having no owner/dopesheet really fine? + // TODO: somehow manage to pass dopesheet info down here too? if (key->adt) { if (filter_mode & ANIMFILTER_ANIMDATA) ANIMDATA_ADD_ANIMDATA(key) @@ -1188,7 +1188,6 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), size_t items = 0; /* check if filtering types are appropriate */ - if (!(filter_mode & (ANIMFILTER_ACTGROUPED|ANIMFILTER_CURVESONLY))) { /* for now, grab grease pencil datablocks directly from main*/ for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { @@ -1197,7 +1196,7 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), continue; /* add gpd as channel too (if for drawing, and it has layers) */ - if ((filter_mode & ANIMFILTER_CHANNELS) && (gpd->layers.first)) { + if ((filter_mode & ANIMFILTER_LIST_CHANNELS) && (gpd->layers.first)) { /* add to list */ ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, NULL); if (ale) { @@ -1207,7 +1206,7 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), } /* only add layers if they will be visible (if drawing channels) */ - if ( !(filter_mode & ANIMFILTER_VISIBLE) || (EXPANDED_GPD(gpd)) ) { + if ( !(filter_mode & ANIMFILTER_LIST_VISIBLE) || (EXPANDED_GPD(gpd)) ) { /* loop over layers as the conditions are acceptable */ for (gpl= gpd->layers.first; gpl; gpl= gpl->next) { /* only if selected */ @@ -1292,7 +1291,7 @@ static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_d if (ok == 0) continue; /* include texture-expand widget? */ - if (filter_mode & ANIMFILTER_CHANNELS) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(tex) { ale= make_new_animlistelem(tex, ANIMTYPE_DSTEX, owner_id); @@ -1304,7 +1303,7 @@ static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_d } /* add texture's animation data */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_TEX_DATA(tex) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_TEX_DATA(tex)) { ANIMDATA_FILTER_CASES(tex, { /* AnimData blocks - do nothing... */ }, items += animdata_filter_nla(ac, anim_data, ads, tex->adt, filter_mode, (ID *)tex);, @@ -1362,7 +1361,7 @@ static size_t animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_d /* include material-expand widget? */ // hmm... do we need to store the index of this material in the array anywhere? - if (filter_mode & ANIMFILTER_CHANNELS) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(ma) { ale= make_new_animlistelem(ma, ANIMTYPE_DSMAT, (ID *)ma); @@ -1374,7 +1373,7 @@ static size_t animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_d } /* add material's animation data */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_MAT_OBJD(ma) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_MAT_OBJD(ma)) { /* material's animation data */ ANIMDATA_FILTER_CASES(ma, { /* AnimData blocks - do nothing... */ }, @@ -1412,7 +1411,7 @@ static size_t animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *a if (ok == 0) continue; /* add particle settings? */ - if ((filter_mode & ANIMFILTER_CHANNELS)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(psys->part) { ale = make_new_animlistelem(psys->part, ANIMTYPE_DSPART, (ID *)psys->part); @@ -1423,7 +1422,7 @@ static size_t animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *a } } - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_PART_OBJD(psys->part) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_PART_OBJD(psys->part)) { ANIMDATA_FILTER_CASES(psys->part, { /* AnimData blocks - do nothing... */ }, items += animdata_filter_nla(ac, anim_data, ads, psys->part->adt, filter_mode, (ID *)psys->part);, @@ -1507,7 +1506,7 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim } /* include data-expand widget? */ - if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(iat) { ale= make_new_animlistelem(iat, type, (ID *)iat); @@ -1516,7 +1515,7 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim } /* add object-data animation channels? */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || (expanded) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || (expanded)) { /* filtering for channels - nla, drivers, keyframes */ ANIMDATA_FILTER_CASES(iat, { /* AnimData blocks - do nothing... */ }, @@ -1550,7 +1549,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat size_t items = 0; /* add this object as a channel first */ - if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by selection */ if ANIMCHANNEL_SELOK((base->flag & SELECT)) { /* check if filtering by active status */ @@ -1565,8 +1564,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* if collapsed, don't go any further (unless adding keyframes only) */ - if ( ((filter_mode & ANIMFILTER_VISIBLE) && EXPANDED_OBJC(ob) == 0) && - !(filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) ) + if ((filter_mode & ANIMFILTER_LIST_VISIBLE) && EXPANDED_OBJC(ob) == 0) return items; /* Action, Drivers, or NLA */ @@ -1580,8 +1578,8 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat }, { /* drivers */ /* include drivers-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, (ID *)ob); + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + ale= make_new_animlistelem(adt, ANIMTYPE_FILLDRIVERS, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); items++; @@ -1589,13 +1587,13 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* add F-Curve channels (drivers are F-Curves) */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_DRVD(adt) || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_DRVD(adt)) { items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ob); } }, { /* action (keyframes) */ /* include action-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); @@ -1604,7 +1602,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* add F-Curve channels? */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_ACTC(adt->action) || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_ACTC(adt->action)) { items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ob); } } @@ -1619,7 +1617,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat { /* AnimData blocks - do nothing... */ }, { /* nla */ /* include shapekey-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(key) { ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); @@ -1631,12 +1629,12 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* add NLA tracks - only if expanded or so */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)key); }, { /* drivers */ /* include shapekey-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); if (ale) { BLI_addtail(anim_data, ale); @@ -1645,13 +1643,13 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* add channels */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) { items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)key); } }, { /* action (keyframes) */ /* include shapekey-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by active status */ if ANIMCHANNEL_ACTIVEOK(key) { ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); @@ -1663,7 +1661,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } /* add channels */ - if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) { items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)key); } } @@ -1790,7 +1788,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ size_t items = 0; /* add scene as a channel first (even if we aren't showing scenes we still need to show the scene's sub-data */ - if ((filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) == 0) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* check if filtering by selection */ if (ANIMCHANNEL_SELOK( (sce->flag & SCE_DS_SELECTED) )) { ale= make_new_animlistelem(sce, ANIMTYPE_SCENE, NULL); @@ -1802,7 +1800,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* if collapsed, don't go any further (unless adding keyframes only) */ - if ( (EXPANDED_SCEC(sce) == 0) && !(filter_mode & (ANIMFILTER_CURVESONLY|ANIMFILTER_NLATRACKS)) ) + if ((filter_mode & ANIMFILTER_LIST_VISIBLE) && (EXPANDED_SCEC(sce) == 0)) return items; /* Action, Drivers, or NLA for Scene */ @@ -1816,7 +1814,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ }, { /* drivers */ /* include drivers-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); @@ -1825,13 +1823,13 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add F-Curve channels (drivers are F-Curves) */ - if (EXPANDED_DRVD(adt) || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_DRVD(adt)) { items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)sce); } }, { /* action */ /* include action-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); @@ -1840,7 +1838,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add F-Curve channels? */ - if (EXPANDED_ACTC(adt->action) || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_ACTC(adt->action)) { items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)sce); } } @@ -1859,7 +1857,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ }, { /* drivers */ /* include world-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)wo); if (ale) { BLI_addtail(anim_data, ale); @@ -1868,14 +1866,14 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add F-Curve channels (drivers are F-Curves) */ - if (FILTER_WOR_SCED(wo)/*EXPANDED_DRVD(adt)*/ || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)/*EXPANDED_DRVD(adt)*/) { // XXX owner info is messed up now... items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)wo); } }, { /* action */ /* include world-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); @@ -1884,14 +1882,14 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add channels */ - if (FILTER_WOR_SCED(wo) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)) { items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)wo); } } ) /* if expanded, check world textures too */ - if (FILTER_WOR_SCED(wo) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)) { /* textures for world */ if (!(ads->filterflag & ADS_FILTER_NOTEX)) items += animdata_filter_dopesheet_texs(ac, anim_data, ads, (ID *)wo, filter_mode); @@ -1909,7 +1907,7 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ }, { /* drivers */ /* include nodetree-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)ntree); if (ale) { BLI_addtail(anim_data, ale); @@ -1918,14 +1916,14 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add F-Curve channels (drivers are F-Curves) */ - if (FILTER_NTREE_SCED(ntree)/*EXPANDED_DRVD(adt)*/ || !(filter_mode & ANIMFILTER_CHANNELS)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_NTREE_SCED(ntree)/*EXPANDED_DRVD(adt)*/) { // XXX owner info is messed up now... items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ntree); } }, { /* action */ /* include nodetree-expand widget? */ - if ((filter_mode & ANIMFILTER_CHANNELS) && !(filter_mode & ANIMFILTER_CURVESONLY)) { + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)sce); if (ale) { BLI_addtail(anim_data, ale); @@ -1934,15 +1932,12 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* add channels */ - if (FILTER_NTREE_SCED(ntree) || (filter_mode & ANIMFILTER_CURVESONLY)) { + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_NTREE_SCED(ntree)) { items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ntree); } } ) } - - - // TODO: scene compositing nodes (these aren't standard node-trees) /* return the number of items added to the list */ return items; @@ -2019,7 +2014,7 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, /* if only F-Curves with visible flags set can be shown, check that * datablocks haven't been set to invisible */ - if (filter_mode & ANIMFILTER_CURVEVISIBLE) { + if (filter_mode & ANIMFILTER_CURVE_VISIBLE) { if ((sce->adt) && (sce->adt->flag & ADT_CURVES_NOT_VISIBLE)) sceOk= worOk= nodeOk= 0; } @@ -2048,8 +2043,7 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, * - if only selected, must check if object is selected * - there must be animation data to edit */ - // TODO: if cache is implemented, just check name here, and then - if ((filter_mode & ANIMFILTER_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) { + if ((filter_mode & ANIMFILTER_DATA_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) { /* layer visibility - we check both object and base, since these may not be in sync yet */ if ((sce->lay & (ob->lay|base->lay))==0) continue; @@ -2060,7 +2054,7 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, /* if only F-Curves with visible flags set can be shown, check that * datablock hasn't been set to invisible */ - if (filter_mode & ANIMFILTER_CURVEVISIBLE) { + if (filter_mode & ANIMFILTER_CURVE_VISIBLE) { if ((ob->adt) && (ob->adt->flag & ADT_CURVES_NOT_VISIBLE)) continue; } @@ -2368,8 +2362,7 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim * - only for drawing and/or selecting keyframes in channels, but not for real editing * - only useful for DopeSheet/Action/etc. editors where it is actually useful */ - // TODO: we should really check if some other prohibited filters are also active, but that can be for later - if ((filter_mode & ANIMFILTER_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) { + if ((filter_mode & ANIMFILTER_LIST_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) { bAnimListElem *ale= make_new_animlistelem(ac, ANIMTYPE_SUMMARY, NULL); if (ale) { BLI_addtail(anim_data, ale); diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 00e11d8b1a4..453027632eb 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -773,7 +773,7 @@ void summary_to_keylist(bAnimContext *ac, DLRBT_Tree *keys, DLRBT_Tree *blocks) int filter; /* get F-Curves to take keyframes from */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY); + filter= ANIMFILTER_DATA_VISIBLE; // curves only ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through each F-Curve, grabbing the keyframes */ diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index e50203cbc28..ca8d1c232fa 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -397,7 +397,7 @@ static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, Key return 0; /* get F-Curves to take keyframes from */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY); + filter= ANIMFILTER_DATA_VISIBLE; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through each F-Curve, working on the keyframes until the first curve aborts */ @@ -491,7 +491,7 @@ void ANIM_editkeyframes_refresh(bAnimContext *ac) int filter; /* filter animation data */ - filter= ANIMFILTER_CURVESONLY; + filter= ANIMFILTER_DATA_VISIBLE; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop over F-Curves that are likely to have been edited, and check them */ diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index be46c237e80..36e52fa8b8f 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -183,26 +183,60 @@ typedef enum eAnim_KeyType { /* ----------------- Filtering -------------------- */ +#if 0 /// old /* filtering flags - under what circumstances should a channel be added */ typedef enum eAnimFilter_Flags { ANIMFILTER_VISIBLE = (1<<0), /* should channels be visible (in terms of hierarchy only) */ - ANIMFILTER_SEL = (1<<1), /* should channels be selected */ - ANIMFILTER_UNSEL = (1<<2), /* should channels be NOT selected */ - ANIMFILTER_FOREDIT = (1<<3), /* does editable status matter */ - ANIMFILTER_CURVESONLY = (1<<4), /* don't include summary-channels, etc. */ + //ANIMFILTER_SEL = (1<<1), /* should channels be selected */ + //ANIMFILTER_UNSEL = (1<<2), /* should channels be NOT selected */ + //ANIMFILTER_FOREDIT = (1<<3), /* does editable status matter */ + ANIMFILTER_CURVESONLY = (1<<4), /* don't include summary-channels, etc. */ // double-check on how this goes for actedit ANIMFILTER_CHANNELS = (1<<5), /* make list for interface drawing */ - ANIMFILTER_ACTGROUPED = (1<<6), /* belongs to the active actiongroup */ + //ANIMFILTER_ACTGROUPED = (1<<6), /* belongs to the active actiongroup */ ANIMFILTER_CURVEVISIBLE = (1<<7), /* F-Curve is visible for editing/viewing in Graph Editor */ - ANIMFILTER_ACTIVE = (1<<8), /* channel should be 'active' */ - ANIMFILTER_ANIMDATA = (1<<9), /* only return the underlying AnimData blocks (not the tracks, etc.) data comes from */ + //ANIMFILTER_ACTIVE = (1<<8), /* channel should be 'active' */ + //ANIMFILTER_ANIMDATA = (1<<9), /* only return the underlying AnimData blocks (not the tracks, etc.) data comes from */ ANIMFILTER_NLATRACKS = (1<<10), /* only include NLA-tracks */ - ANIMFILTER_SELEDIT = (1<<11), /* link editability with selected status */ - ANIMFILTER_NODUPLIS = (1<<12), /* duplicate entries for animation data attached to multi-user blocks must not occur */ - - /* all filters - the power inside the bracket must be the last power for left-shifts + 1 */ - ANIMFILTER_ALLFILTERS = ((1<<12) - 1) + //ANIMFILTER_SELEDIT = (1<<11), /* link editability with selected status */ + //ANIMFILTER_NODUPLIS = (1<<12), /* duplicate entries for animation data attached to multi-user blocks must not occur */ } eAnimFilter_Flags; +#endif +/* filtering flags - under what circumstances should a channel be returned */ +// TODO: flag to just test if there's any channel inside worthy of being added - return 1 as soon as this is encountered, but don't add +typedef enum eAnimFilter_Flags { + /* data which channel represents is fits the dopesheet filters (i.e. scene visibility criteria) */ + // XXX: it's hard to think of any examples where this *ISN'T* the case... perhaps becomes implicit? + ANIMFILTER_DATA_VISIBLE = (1<<0), + /* channel is visible within the channel-list hierarchy (i.e. F-Curves within Groups in ActEdit) */ + ANIMFILTER_LIST_VISIBLE = (1<<1), + /* channel has specifically been tagged as visible in Graph Editor (* Graph Editor Only) */ + ANIMFILTER_CURVE_VISIBLE = (1<<2), + + /* include summary channels and "expanders" (for drawing/mouse-selection in channel list) */ + ANIMFILTER_LIST_CHANNELS = (1<<3), + + /* for its type, channel should be "active" one */ + ANIMFILTER_ACTIVE = (1<<4), + /* channel is a child of the active group (* Actions speciality) */ + ANIMFILTER_ACTGROUPED = (1<<5), + + /* channel must be selected/not-selected, but both must not be set together */ + ANIMFILTER_SEL = (1<<6), + ANIMFILTER_UNSEL = (1<<7), + + /* editability status - must be editable to be included */ + ANIMFILTER_FOREDIT = (1<<8), + /* only selected animchannels should be considerable as editable - mainly for Graph Editor's option for keys on select curves only */ + ANIMFILTER_SELEDIT = (1<<9), + + /* flags used to enforce certain data types */ + // NOTE: the ones for curves and NLA tracks were redundant and have been removed for now... + ANIMFILTER_ANIMDATA = (1<<10), + + /* duplicate entries for animation data attached to multi-user blocks must not occur */ + ANIMFILTER_NODUPLIS = (1<<11) +} eAnimFilter_Flags; /* ---------- Flag Checking Macros ------------ */ // xxx check on all of these flags again... diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index 760db5dd133..9df6ceb9d75 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -81,7 +81,7 @@ void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) int height; /* build list of channels to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); items= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* Update max-extent of channels here (taking into account scrollers): @@ -196,7 +196,7 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar) } /* build list of channels to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); items= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* Update max-extent of channels here (taking into account scrollers): diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index b30db6680e5..07f448742bd 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -234,7 +234,7 @@ static void get_keyframe_extents (bAnimContext *ac, float *min, float *max, cons int filter; /* get data to filter, from Action or Dopesheet */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* set large values to try to override */ @@ -414,7 +414,7 @@ static short copy_action_keys (bAnimContext *ac) free_anim_copybuf(); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* copy keyframes */ @@ -434,7 +434,7 @@ static short paste_action_keys (bAnimContext *ac, int filter, ok=0; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* paste keyframes */ @@ -561,7 +561,7 @@ static void insert_action_keys(bAnimContext *ac, short mode) short flag = 0; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); if (mode == 2) filter |= ANIMFILTER_SEL; else if (mode == 3) filter |= ANIMFILTER_ACTGROUPED; @@ -649,9 +649,9 @@ static void duplicate_action_keys (bAnimContext *ac) /* filter data */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and delete selected keys */ @@ -724,9 +724,9 @@ static void delete_action_keys (bAnimContext *ac) /* filter data */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and delete selected keys */ @@ -797,7 +797,7 @@ static void clean_action_keys (bAnimContext *ac, float thresh) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and clean curves */ @@ -865,7 +865,7 @@ static void sample_action_keys (bAnimContext *ac) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and add keys between selected keyframes on every frame */ @@ -935,7 +935,7 @@ static void setexpo_action_keys(bAnimContext *ac, short mode) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting mode per F-Curve */ @@ -1006,7 +1006,7 @@ static void setipo_action_keys(bAnimContext *ac, short mode) KeyframeEditFunc set_cb= ANIM_editkeyframes_ipo(mode); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting BezTriple interpolation @@ -1090,7 +1090,7 @@ static void sethandles_action_keys(bAnimContext *ac, short mode) KeyframeEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting flags for handles @@ -1174,7 +1174,7 @@ static void setkeytype_action_keys(bAnimContext *ac, short mode) KeyframeEditFunc set_cb= ANIM_editkeyframes_keytype(mode); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting BezTriple interpolation @@ -1254,7 +1254,7 @@ static int actkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op)) /* init edit data */ /* loop over action data, averaging values */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY */ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -1321,9 +1321,9 @@ static void snap_action_keys(bAnimContext *ac, short mode) /* filter data */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get beztriple editing callbacks */ @@ -1440,9 +1440,9 @@ static void mirror_action_keys(bAnimContext *ac, short mode) /* filter data */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* mirror keyframes */ diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index 95f618ad360..0f84ae547ff 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -95,9 +95,9 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel) /* determine type-based settings */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); /* filter data */ ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -211,7 +211,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax-2, &rectf.xmax, &rectf.ymax); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get filtering flag for dopesheet data (if applicable) */ @@ -388,7 +388,7 @@ static void markers_selectkeys_between (bAnimContext *ac) ked.f2= max; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY */ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* select keys in-between */ @@ -431,14 +431,14 @@ static void columnselect_action_keys (bAnimContext *ac, short mode) switch (mode) { case ACTKEYS_COLUMNSEL_KEYS: /* list of selected keys */ if (ac->datatype == ANIMCONT_GPENCIL) { - filter= (ANIMFILTER_VISIBLE); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) gplayer_make_cfra_list(ale->data, &ked.list, 1); } else { - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) @@ -471,9 +471,9 @@ static void columnselect_action_keys (bAnimContext *ac, short mode) * based on the keys found to be selected above */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -563,7 +563,7 @@ static int actkeys_select_linked_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* loop through all of the keys and select additional keyframes based on these */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -617,7 +617,7 @@ static void select_moreless_action_keys (bAnimContext *ac, short mode) build_cb= ANIM_editkeyframes_buildselmap(mode); /* loop through all of the keys and select additional keyframes based on these */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -758,9 +758,9 @@ static void actkeys_select_leftright (bAnimContext *ac, short leftright, short s /* filter data */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* select keys */ @@ -941,9 +941,9 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se * based on the keys found to be selected above */ if (ac->datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE /*| ANIMFILTER_CURVESONLY */ | ANIMFILTER_NODUPLIS); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -997,7 +997,7 @@ static void mouse_action_keys (bAnimContext *ac, const int mval[2], short select UI_view2d_region_to_view(v2d, mval[0]+7, mval[1], &rectf.xmax, &rectf.ymax); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* try to get channel */ diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index 73ecea8e31e..b5c253fdbff 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -834,7 +834,7 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri int filter; /* build list of curves to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CURVESONLY|ANIMFILTER_CURVEVISIBLE); + filter= (ANIMFILTER_DATA_VISIBLE|ANIMFILTER_CURVE_VISIBLE); filter |= ((sel) ? (ANIMFILTER_SEL) : (ANIMFILTER_UNSEL)); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -968,7 +968,7 @@ void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) int i=0; /* build list of channels to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); items= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* Update max-extent of channels here (taking into account scrollers): diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 71c937b87cb..6ae6ecf88fc 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -88,7 +88,7 @@ void get_graph_keyframe_extents (bAnimContext *ac, float *xmin, float *xmax, flo int filter; /* get data to filter, from Dopesheet */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* set large values to try to override */ @@ -294,7 +294,7 @@ static void create_ghost_curves (bAnimContext *ac, int start, int end) } /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and add keys between selected keyframes on every frame */ @@ -453,7 +453,7 @@ static void insert_graph_keys(bAnimContext *ac, short mode) short flag = 0; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); if (mode == 2) filter |= ANIMFILTER_SEL; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -648,7 +648,7 @@ static short copy_graph_keys (bAnimContext *ac) free_anim_copybuf(); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* copy keyframes */ @@ -667,7 +667,7 @@ static short paste_graph_keys (bAnimContext *ac, int filter, ok=0; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* paste keyframes */ @@ -773,7 +773,7 @@ static void duplicate_graph_keys (bAnimContext *ac) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and delete selected keys */ @@ -842,7 +842,7 @@ static void delete_graph_keys (bAnimContext *ac) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and delete selected keys */ @@ -909,7 +909,7 @@ static void clean_graph_keys (bAnimContext *ac, float thresh) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and clean curves */ @@ -976,7 +976,7 @@ static void bake_graph_curves (bAnimContext *ac, int start, int end) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and add keys between selected keyframes on every frame */ @@ -1123,7 +1123,7 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op) end = CFRA + sbi.length - 1; /* filter anim channels */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* loop through all selected F-Curves, replacing its data with the sound samples */ @@ -1201,7 +1201,7 @@ static void sample_graph_keys (bAnimContext *ac) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through filtered data and add keys between selected keyframes on every frame */ @@ -1270,7 +1270,7 @@ static void setexpo_graph_keys(bAnimContext *ac, short mode) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting mode per F-Curve */ @@ -1339,7 +1339,7 @@ static void setipo_graph_keys(bAnimContext *ac, short mode) KeyframeEditFunc set_cb= ANIM_editkeyframes_ipo(mode); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting BezTriple interpolation @@ -1412,7 +1412,7 @@ static void sethandles_graph_keys(bAnimContext *ac, short mode) KeyframeEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* loop through setting flags for handles @@ -1534,7 +1534,7 @@ static int graphkeys_euler_filter_exec (bContext *C, wmOperator *op) */ /* step 1: extract only the rotation f-curves */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -1700,7 +1700,7 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op)) memset(&ked, 0, sizeof(KeyframeEditData)); /* loop over action data, averaging values */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -1779,7 +1779,7 @@ static void snap_graph_keys(bAnimContext *ac, short mode) KeyframeEditFunc edit_cb; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get beztriple editing callbacks */ @@ -1911,7 +1911,7 @@ static void mirror_graph_keys(bAnimContext *ac, short mode) } /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* mirror keyframes */ @@ -1995,7 +1995,7 @@ static int graphkeys_smooth_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* smooth keyframes */ @@ -2086,11 +2086,11 @@ static int graph_fmodifier_add_exec(bContext *C, wmOperator *op) type= RNA_enum_get(op->ptr, "type"); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); if (RNA_boolean_get(op->ptr, "only_active")) filter |= ANIMFILTER_ACTIVE; // FIXME: enforce in this case only a single channel to get handled? else - filter |= (ANIMFILTER_SEL|ANIMFILTER_CURVEVISIBLE); + filter |= (ANIMFILTER_SEL|ANIMFILTER_CURVE_VISIBLE); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* add f-modifier to each curve */ @@ -2209,7 +2209,7 @@ static int graph_fmodifier_paste_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* paste modifiers */ diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c index 507ee43c6aa..b8c5d79df18 100644 --- a/source/blender/editors/space_graph/graph_select.c +++ b/source/blender/editors/space_graph/graph_select.c @@ -95,7 +95,7 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel) KeyframeEditFunc test_cb, sel_cb; /* determine type-based settings */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); /* filter data */ ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -212,7 +212,7 @@ static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, sho UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get beztriple editing/validation funcs */ @@ -402,7 +402,7 @@ static void markers_selectkeys_between (bAnimContext *ac) ked.f2= max; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* select keys in-between */ @@ -442,7 +442,7 @@ static void columnselect_graph_keys (bAnimContext *ac, short mode) /* build list of columns */ switch (mode) { case GRAPHKEYS_COLUMNSEL_KEYS: /* list of selected keys */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) @@ -474,7 +474,7 @@ static void columnselect_graph_keys (bAnimContext *ac, short mode) /* loop through all of the keys and select additional keyframes * based on the keys found to be selected above */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -558,7 +558,7 @@ static int graphkeys_select_linked_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* loop through all of the keys and select additional keyframes based on these */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -613,7 +613,7 @@ static void select_moreless_graph_keys (bAnimContext *ac, short mode) memset(&ked, 0, sizeof(KeyframeEditData)); /* loop through all of the keys and select additional keyframes based on these */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { @@ -753,7 +753,7 @@ static void graphkeys_select_leftright (bAnimContext *ac, short leftright, short } /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* select keys */ @@ -965,7 +965,7 @@ static void get_nearest_fcurve_verts_list (bAnimContext *ac, const int mval[2], * - if the option to only show keyframes that belong to selected F-Curves is enabled, * include the 'only selected' flag... */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); if (sipo->flag & SIPO_SELCUVERTSONLY) // FIXME: this should really be check for by the filtering code... filter |= ANIMFILTER_SEL; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -1200,7 +1200,7 @@ static void mouse_graph_keys (bAnimContext *ac, const int mval[2], short select_ /* set active F-Curve (NOTE: sync the filter flags with findnearest_fcurve_vert) */ /* needs to be called with (sipo->flag & SIPO_SELCUVERTSONLY) otherwise the active flag won't be set [#26452] */ if (nvi->fcu->flag & FCURVE_SELECTED) { - int filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + int filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, nvi->fcu, ANIMTYPE_FCURVE); } @@ -1264,7 +1264,7 @@ static void graphkeys_mselect_column (bAnimContext *ac, const int mval[2], short /* loop through all of the keys and select additional keyframes * based on the keys found to be selected above */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); for (ale= anim_data.first; ale; ale= ale->next) { diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c index e20b4593fa9..3f2993fd793 100644 --- a/source/blender/editors/space_graph/graph_utils.c +++ b/source/blender/editors/space_graph/graph_utils.c @@ -65,11 +65,13 @@ /* Find 'active' F-Curve. It must be editable, since that's the purpose of these buttons (subject to change). * We return the 'wrapper' since it contains valuable context info (about hierarchy), which will need to be freed * when the caller is done with it. + * + * NOTE: curve-visible flag isn't included, otherwise selecting a curve via list to edit is too cumbersome */ bAnimListElem *get_active_fcurve_channel (bAnimContext *ac) { ListBase anim_data = {NULL, NULL}; - int filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_ACTIVE | ANIMFILTER_CURVESONLY); + int filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_ACTIVE); size_t items = ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* We take the first F-Curve only, since some other ones may have had 'active' flag set @@ -115,7 +117,7 @@ int graphop_visible_keyframes_poll (bContext *C) /* loop over the visible (selection doesn't matter) F-Curves, and see if they're suitable * stopping on the first successful match */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE); items = ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); if (items == 0) return 0; @@ -164,7 +166,7 @@ int graphop_editable_keyframes_poll (bContext *C) /* loop over the editable F-Curves, and see if they're suitable * stopping on the first successful match */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); items = ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); if (items == 0) return 0; @@ -215,7 +217,7 @@ int graphop_active_fcurve_poll (bContext *C) /* free temp data... */ has_fcurve= ((ale->data) && (ale->type == ANIMTYPE_FCURVE)); - if(has_fcurve) { + if (has_fcurve) { FCurve *fcu= (FCurve *)ale->data; has_fcurve= (fcu->flag & FCURVE_VISIBLE)!=0; } @@ -244,8 +246,10 @@ int graphop_selected_fcurve_poll (bContext *C) if (ANIM_animdata_get_context(C, &ac) == 0) return 0; - /* get the editable + selected F-Curves, and as long as we got some, we can return */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + /* get the editable + selected F-Curves, and as long as we got some, we can return + * NOTE: curve-visible flag isn't included, otherwise selecting a curve via list to edit is too cumbersome + */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT); items = ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); if (items == 0) return 0; diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 24e196749a8..f58963d1d98 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -521,7 +521,7 @@ static void graph_refresh(const bContext *C, ScrArea *sa) * - we don't include ANIMFILTER_CURVEVISIBLE filter, as that will result in a * mismatch between channel-colors and the drawn curves */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CURVESONLY|ANIMFILTER_NODUPLIS); + filter= (ANIMFILTER_DATA_VISIBLE|ANIMFILTER_NODUPLIS); items= ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* loop over F-Curves, assigning colors */ diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index 94232699c30..677e818351d 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -103,7 +103,8 @@ static int nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA /* extract list of active channel(s), of which we should only take the first one * - we need the channels flag to get the active AnimData block when there are no NLA Tracks */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_ACTIVE|ANIMFILTER_CHANNELS); + // XXX: double-check active! + filter= (ANIMFILTER_DATA_VISIBLE|ANIMFILTER_LIST_VISIBLE|ANIMFILTER_ACTIVE|ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index be050dded45..c724a7e0ea7 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -87,7 +87,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho /* get the channel that was clicked on */ /* filter channels */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get channel from index */ @@ -380,12 +380,12 @@ static int nlaedit_add_tracks_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the AnimData blocks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_SEL); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* add tracks... */ for (ale= anim_data.first; ale; ale= ale->next) { - if(ale->type == ANIMTYPE_NLATRACK) { + if (ale->type == ANIMTYPE_NLATRACK) { NlaTrack *nlt= (NlaTrack *)ale->data; AnimData *adt= ale->adt; @@ -448,7 +448,7 @@ static int nlaedit_delete_tracks_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the AnimData blocks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_SEL); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* delete tracks */ diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index c53eac78b19..dc9594c6e4c 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -474,7 +474,7 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) int height; /* build list of channels to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); items= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* Update max-extent of channels here (taking into account scrollers): @@ -833,7 +833,7 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) int height; /* build list of channels to draw */ - filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); items= ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* Update max-extent of channels here (taking into account scrollers): diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 08607e6183b..2d6ecbc4378 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -80,7 +80,7 @@ void ED_nla_postop_refresh (bAnimContext *ac) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - short filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA | ANIMFILTER_FOREDIT); + short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA | ANIMFILTER_FOREDIT); /* get blocks to work on */ ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -116,7 +116,7 @@ static int nlaedit_enable_tweakmode_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the AnimData blocks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* if no blocks, popup error? */ @@ -185,7 +185,7 @@ static int nlaedit_disable_tweakmode_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the AnimData blocks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* if no blocks, popup error? */ @@ -282,7 +282,7 @@ static int nlaedit_add_actionclip_exec (bContext *C, wmOperator *op) /* get a list of the editable tracks being shown in the NLA * - this is limited to active ones for now, but could be expanded to */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ACTIVE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ACTIVE | ANIMFILTER_FOREDIT); items= ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); if (items == 0) { @@ -380,7 +380,7 @@ static int nlaedit_add_transition_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each track, find pairs of strips to add transitions to */ @@ -494,7 +494,7 @@ static int nlaedit_add_meta_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each track, find pairs of strips to add transitions to */ @@ -555,7 +555,7 @@ static int nlaedit_remove_meta_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each track, find pairs of strips to add transitions to */ @@ -611,7 +611,7 @@ static int nlaedit_duplicate_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* duplicate strips in tracks starting from the last one so that we're @@ -714,7 +714,7 @@ static int nlaedit_delete_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, delete all selected strips */ @@ -855,7 +855,7 @@ static int nlaedit_split_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, split all selected strips into two strips */ @@ -931,7 +931,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_ANIMDATA | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each AnimData block, bake strips to animdata... */ @@ -986,7 +986,7 @@ static int nlaedit_toggle_mute_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* go over all selected strips */ @@ -1045,7 +1045,7 @@ static int nlaedit_swap_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* consider each track in turn */ @@ -1203,7 +1203,7 @@ static int nlaedit_move_up_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* since we're potentially moving strips from lower tracks to higher tracks, we should @@ -1277,7 +1277,7 @@ static int nlaedit_move_down_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* loop through the tracks in normal order, since we're pushing strips down, @@ -1352,7 +1352,7 @@ static int nlaedit_sync_actlen_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); if (active_only) filter |= ANIMFILTER_ACTIVE; ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); @@ -1447,7 +1447,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* init the editing data */ @@ -1527,7 +1527,7 @@ static int nlaedit_clear_scale_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, reset scale of all selected strips */ @@ -1603,7 +1603,7 @@ static int nlaedit_snap_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* get some necessary vars */ @@ -1771,7 +1771,7 @@ static int nla_fmodifier_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, add the specified modifier to all selected strips */ @@ -1852,7 +1852,7 @@ static int nla_fmodifier_copy_exec(bContext *C, wmOperator *op) free_fmodifiers_copybuf(); /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, add the specified modifier to all selected strips */ @@ -1911,7 +1911,7 @@ static int nla_fmodifier_paste_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* get a list of the editable tracks being shown in the NLA */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_SEL | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* for each NLA-Track, add the specified modifier to all selected strips */ diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c index 8ef63b9a83d..5efa3f34c98 100644 --- a/source/blender/editors/space_nla/nla_select.c +++ b/source/blender/editors/space_nla/nla_select.c @@ -114,7 +114,8 @@ static void deselect_nla_strips (bAnimContext *ac, short test, short sel) short smode; /* determine type-based settings */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS); + // FIXME: double check whether ANIMFILTER_LIST_VISIBLE is needed! + filter= (ANIMFILTER_DATA_VISIBLE); /* filter data */ ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); @@ -233,7 +234,7 @@ static void borderselect_nla_strips (bAnimContext *ac, rcti rect, short mode, sh UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax-2, &rectf.xmax, &rectf.ymax); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* convert selection modes to selection modes */ @@ -395,7 +396,7 @@ static void nlaedit_select_leftright (bContext *C, bAnimContext *ac, short leftr /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* select strips on the side where most data occurs */ @@ -523,7 +524,7 @@ static void mouse_nla_strips (bContext *C, bAnimContext *ac, const int mval[2], UI_view2d_region_to_view(v2d, mval[0]+7, mval[1], &xmax, &dummy); /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* try to get channel */ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 34d206f9d6b..3f6383bb855 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2494,7 +2494,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) return; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* which side of the current frame should be allowed */ @@ -2834,7 +2834,7 @@ static void posttrans_action_clean (bAnimContext *ac, bAction *act) int filter; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/); ANIM_animdata_filter(ac, &anim_data, filter, act, ANIMCONT_ACTION); /* loop through relevant data, removing keyframes as appropriate @@ -2842,7 +2842,7 @@ static void posttrans_action_clean (bAnimContext *ac, bAction *act) */ for (ale= anim_data.first; ale; ale= ale->next) { AnimData *adt= ANIM_nla_mapping_get(ac, ale); - + if (adt) { ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1); posttrans_fcurve_clean(ale->key_data); @@ -3036,9 +3036,9 @@ static void createTransActionData(bContext *C, TransInfo *t) /* filter data */ if (ac.datatype == ANIMCONT_GPENCIL) - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT); else - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* which side of the current frame should be allowed */ @@ -3263,7 +3263,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t) return; /* filter data */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* which side of the current frame should be allowed */ @@ -4777,7 +4777,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) if (ELEM(ac.datatype, ANIMCONT_DOPESHEET, ANIMCONT_SHAPEKEY)) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - short filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT /*| ANIMFILTER_CURVESONLY*/); /* get channels to work on */ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); @@ -4889,7 +4889,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - short filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE); + short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); /* get channels to work on */ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); @@ -4939,7 +4939,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - short filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NLATRACKS); + short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT); /* get channels to work on */ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 82f3ad87785..b62651da3d1 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -362,7 +362,7 @@ void recalcData(TransInfo *t) } else { /* get animdata blocks visible in editor, assuming that these will be the ones where things changed */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* just tag these animdata-blocks to recalc, assuming that some data there changed @@ -407,7 +407,7 @@ void recalcData(TransInfo *t) flushTransGraphData(t); /* get curves to check if a re-sort is needed */ - filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE); + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); /* now test if there is a need to re-sort */ -- cgit v1.2.3 From c48e1467384d6069b1a4f8c7bc4d7fa239c2b545 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 22 Jun 2011 12:54:26 +0000 Subject: Bugfix [#21276] The Tab key is not working in the Graph Editor when the list of animated curves is closed At long last, this old bludger can be put out to pasture. I figured it would involve some of the visibility-filtering stuff I added, but this required a bit extra effort than anticipated. --- source/blender/editors/animation/anim_channels_edit.c | 11 ++++++++--- source/blender/editors/animation/anim_filter.c | 9 ++++++--- source/blender/editors/include/ED_anim_api.h | 19 ------------------- 3 files changed, 14 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index fa52bdcb854..e7edafdddf5 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1428,9 +1428,14 @@ static void setflag_anim_channels (bAnimContext *ac, short setting, short mode, * - but for Graph Editor, this gets used also from main region * where hierarchy doesn't apply [#21276] */ - // FIXME: graph editor case - // XXX: noduplis enabled so that results don't cancel, but will be problematic for some channels where only type differs - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); + if ((ac->spacetype == SPACE_IPO) && (ac->regiontype != RGN_TYPE_CHANNELS)) { + /* graph editor (case 2) */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); + } + else { + /* standard case */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); + } if (onlysel) filter |= ANIMFILTER_SEL; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 04d8aa87e14..1f96778c36e 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -964,10 +964,13 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo filter_gmode= filter_mode; /* if we care about the selection status of the channels, - * but the group isn't expanded... + * but the group isn't expanded (1)... + * (1) this only matters if we actually care about the hierarchy though, + * so if we're not filtering for that, then we shouldn't care, otherwise + * cases like [#21276] won't work properly */ - if ( (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) && /* care about selection status */ - (EXPANDED_AGRP(ac, agrp)==0) ) /* group isn't expanded */ + if ( ((filter_mode & ANIMFILTER_LIST_VISIBLE) && EXPANDED_AGRP(ac, agrp)==0) && /* care about hierarchy but group isn't expanded */ + (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) ) /* care about selection status */ { /* if the group itself isn't selected appropriately, we shouldn't consider it's children either */ if (ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) == 0) diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 36e52fa8b8f..e8e179e8c84 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -183,25 +183,6 @@ typedef enum eAnim_KeyType { /* ----------------- Filtering -------------------- */ -#if 0 /// old -/* filtering flags - under what circumstances should a channel be added */ -typedef enum eAnimFilter_Flags { - ANIMFILTER_VISIBLE = (1<<0), /* should channels be visible (in terms of hierarchy only) */ - //ANIMFILTER_SEL = (1<<1), /* should channels be selected */ - //ANIMFILTER_UNSEL = (1<<2), /* should channels be NOT selected */ - //ANIMFILTER_FOREDIT = (1<<3), /* does editable status matter */ - ANIMFILTER_CURVESONLY = (1<<4), /* don't include summary-channels, etc. */ // double-check on how this goes for actedit - ANIMFILTER_CHANNELS = (1<<5), /* make list for interface drawing */ - //ANIMFILTER_ACTGROUPED = (1<<6), /* belongs to the active actiongroup */ - ANIMFILTER_CURVEVISIBLE = (1<<7), /* F-Curve is visible for editing/viewing in Graph Editor */ - //ANIMFILTER_ACTIVE = (1<<8), /* channel should be 'active' */ - //ANIMFILTER_ANIMDATA = (1<<9), /* only return the underlying AnimData blocks (not the tracks, etc.) data comes from */ - ANIMFILTER_NLATRACKS = (1<<10), /* only include NLA-tracks */ - //ANIMFILTER_SELEDIT = (1<<11), /* link editability with selected status */ - //ANIMFILTER_NODUPLIS = (1<<12), /* duplicate entries for animation data attached to multi-user blocks must not occur */ -} eAnimFilter_Flags; -#endif - /* filtering flags - under what circumstances should a channel be returned */ // TODO: flag to just test if there's any channel inside worthy of being added - return 1 as soon as this is encountered, but don't add typedef enum eAnimFilter_Flags { -- cgit v1.2.3 From 5021dd3476012b1c64a5ffaa7986537d1e263245 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 22 Jun 2011 13:30:59 +0000 Subject: Bugfixes for recent commits: * Insert Key on Selected Channels in Action Editor was broken * Transform/Select All tools in Action Editor were broken as result of filtering changes. * Set Visibility operator, when used from Graph Editor now does similar things to the TabKey lock/unlock operator with regards to the flags it uses for filtering --- source/blender/editors/animation/anim_channels_edit.c | 15 +++++++++++++-- source/blender/editors/animation/anim_filter.c | 15 +++++++++------ source/blender/editors/space_action/action_edit.c | 2 +- 3 files changed, 23 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index e7edafdddf5..5b37c8071cd 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1236,9 +1236,20 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op)) ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype); /* hide all channels not selected - * - restrict this to only applying on settings we can get to in the list + * - hierarchy matters if we're doing this from the channels region + * since we only want to apply this to channels we can "see", + * and have these affect their relatives + * - but for Graph Editor, this gets used also from main region + * where hierarchy doesn't apply, as for [#21276] */ - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS); + if ((ac.spacetype == SPACE_IPO) && (ac.regiontype != RGN_TYPE_CHANNELS)) { + /* graph editor (case 2) */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); + } + else { + /* standard case */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS); + } ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale= anim_data.first; ale; ale= ale->next) { diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 1f96778c36e..cf47c6ac096 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -984,7 +984,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo * - pasting keyframes * - creating ghost curves in Graph Editor */ - filter_gmode &= ~(ANIMFILTER_SEL|ANIMFILTER_UNSEL); + filter_gmode &= ~(ANIMFILTER_SEL|ANIMFILTER_UNSEL|ANIMFILTER_LIST_VISIBLE); } @@ -1007,7 +1007,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo */ if (first_fcu) { /* add this group as a channel first */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + if (filter_gmode & ANIMFILTER_LIST_CHANNELS) { /* filter selection of channel specially here again, since may be open and not subject to previous test */ if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { ale= make_new_animlistelem(agrp, ANIMTYPE_GROUP, owner_id); @@ -1019,7 +1019,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo } /* there are some situations, where only the channels of the action group should get considered */ - if (!(filter_mode & ANIMFILTER_ACTGROUPED) || (agrp->flag & AGRP_ACTIVE)) { + if (!(filter_gmode & ANIMFILTER_ACTGROUPED) || (agrp->flag & AGRP_ACTIVE)) { /* filters here are a bit convoulted... * - groups show a "summary" of keyframes beside their name which must accessable for tools which handle keyframes * - groups can be collapsed (and those tools which are only interested in channels rely on knowing that group is closed) @@ -1027,16 +1027,19 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo * cases when we should include F-Curves inside group: * - we don't care about hierarchy visibility (i.e. we just need the F-Curves present) * - group is expanded + * - we care about hierarchy visibility, but we also just need the F-Curves present + * within (i.e. transform/selectall). Fix relies on showing all channels option + * only ever getting used for drawing, when hierarchy shouldn't show these channels */ - if ( (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_AGRP(ac, agrp)) ) + if (!(filter_gmode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_AGRP(ac, agrp) || !(filter_gmode & ANIMFILTER_LIST_CHANNELS)) { /* for the Graph Editor, curves may be set to not be visible in the view to lessen clutter, * but to do this, we need to check that the group doesn't have it's not-visible flag set preventing * all its sub-curves to be shown */ - if ( !(filter_mode & ANIMFILTER_CURVE_VISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) + if ( !(filter_gmode & ANIMFILTER_CURVE_VISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) { - if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { + if (!(filter_gmode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { /* NOTE: filter_gmode is used here, not standard filter_mode, since there may be some flags that shouldn't apply */ items += animdata_filter_fcurves(anim_data, ads, first_fcu, agrp, filter_gmode, owner_id); } diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 07f448742bd..b0157befe23 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -575,7 +575,7 @@ static void insert_action_keys(bAnimContext *ac, short mode) AnimData *adt= ANIM_nla_mapping_get(ac, ale); FCurve *fcu= (FCurve *)ale->key_data; float cfra; - + /* adjust current frame for NLA-scaling */ if (adt) cfra= BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); -- cgit v1.2.3 From f51140969707a3aeea4c681b4548ae51df2f7593 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 05:58:44 +0000 Subject: fix [#27726] Driven properties not checked for legal UI bounds The rna set function clamps to the property range however properties with range functions were ignored when set by python or the animation system. Now call the range function for ints and floats when setting. --- source/blender/makesrna/intern/makesrna.c | 39 +++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index f3f539feb99..2c62316780d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -644,6 +644,25 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr return func; } +/* defined min/max variables to be used by rna_clamp_value() */ +static void rna_clamp_value_range(FILE *f, PropertyRNA *prop) +{ + if(prop->type == PROP_FLOAT) { + FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; + if(fprop->range) { + fprintf(f, " float prop_clamp_min, prop_clamp_max;\n"); + fprintf(f, " %s(ptr, &prop_clamp_min, &prop_clamp_max);\n", rna_function_string(fprop->range)); + } + } + else if(prop->type == PROP_INT) { + IntPropertyRNA *iprop= (IntPropertyRNA*)prop; + if(iprop->range) { + fprintf(f, " int prop_clamp_min, prop_clamp_max;\n"); + fprintf(f, " %s(ptr, &prop_clamp_min, &prop_clamp_max);\n", rna_function_string(iprop->range)); + } + } +} + static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array) { if(prop->type == PROP_INT) { @@ -652,8 +671,13 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array) if(iprop->hardmin != INT_MIN || iprop->hardmax != INT_MAX) { if(array) fprintf(f, "CLAMPIS(values[i], "); else fprintf(f, "CLAMPIS(value, "); - rna_int_print(f, iprop->hardmin); fprintf(f, ", "); - rna_int_print(f, iprop->hardmax); fprintf(f, ");\n"); + if(iprop->range) { + fprintf(f, "prop_clamp_min, prop_clamp_max);"); + } + else { + rna_int_print(f, iprop->hardmin); fprintf(f, ", "); + rna_int_print(f, iprop->hardmax); fprintf(f, ");\n"); + } return; } } @@ -663,8 +687,13 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array) if(fprop->hardmin != -FLT_MAX || fprop->hardmax != FLT_MAX) { if(array) fprintf(f, "CLAMPIS(values[i], "); else fprintf(f, "CLAMPIS(value, "); - rna_float_print(f, fprop->hardmin); fprintf(f, ", "); - rna_float_print(f, fprop->hardmax); fprintf(f, ");\n"); + if(fprop->range) { + fprintf(f, "prop_clamp_min, prop_clamp_max);"); + } + else { + rna_float_print(f, fprop->hardmin); fprintf(f, ", "); + rna_float_print(f, fprop->hardmax); fprintf(f, ");\n"); + } return; } } @@ -762,6 +791,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr } else { rna_print_data_get(f, dp); + rna_clamp_value_range(f, prop); if(prop->flag & PROP_DYNAMIC) { char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set_length"); @@ -833,6 +863,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr fprintf(f, " data->%s |= value;\n", dp->dnaname); } else { + rna_clamp_value_range(f, prop); fprintf(f, " data->%s= %s", dp->dnaname, (dp->booleannegative)? "!": ""); rna_clamp_value(f, prop, 0); } -- cgit v1.2.3 From 53bf66a579789ad32e2e7c4bd15dca9863ba7e2d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 06:13:21 +0000 Subject: checks in rna range functions that the max value cant be less than the min. also fix for invalid rage for FILE_OT_filenum. --- source/blender/editors/space_file/file_ops.c | 2 +- source/blender/makesrna/intern/rna_access.c | 4 ++++ source/blender/makesrna/intern/rna_curve.c | 2 ++ source/blender/makesrna/intern/rna_mesh.c | 1 + source/blender/makesrna/intern/rna_modifier.c | 3 ++- source/blender/makesrna/intern/rna_object.c | 9 +++++++-- source/blender/makesrna/intern/rna_space.c | 2 +- 7 files changed, 18 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 11e7040d4c9..77524c7e117 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -1279,7 +1279,7 @@ void FILE_OT_filenum(struct wmOperatorType *ot) ot->poll= ED_operator_file_active; /* <- important, handler is on window level */ /* props */ - RNA_def_int(ot->srna, "increment", 1, 0, 100, "Increment", "", 0,100); + RNA_def_int(ot->srna, "increment", 1, -100, 100, "Increment", "", -100,100); } static int file_rename_exec(bContext *C, wmOperator *UNUSED(op)) diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 8fbee8ea740..e83161b8c62 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1603,6 +1603,8 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + /* useful to check on bad values but set function should clamp */ + /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */ if((idprop=rna_idproperty_check(&prop, ptr))) IDP_Int(idprop)= value; @@ -1825,6 +1827,8 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + /* useful to check on bad values but set function should clamp */ + /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */ if((idprop=rna_idproperty_check(&prop, ptr))) { if(idprop->type == IDP_FLOAT) diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index df9071d7825..594295ba817 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -233,6 +233,7 @@ static void rna_Curve_material_index_range(PointerRNA *ptr, int *min, int *max) Curve *cu= (Curve*)ptr->id.data; *min= 0; *max= cu->totcol-1; + *max= MAX2(0, *max); } static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int *max) @@ -240,6 +241,7 @@ static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int Curve *cu= (Curve*)ptr->id.data; *min= 0; *max= cu->totbox-1; + *max= MAX2(0, *max); } diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 479e449958b..80c98e8c428 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -305,6 +305,7 @@ static void rna_MeshFace_material_index_range(PointerRNA *ptr, int *min, int *ma Mesh *me= (Mesh*)ptr->id.data; *min= 0; *max= me->totcol-1; + *max= MAX2(0, *max); } static CustomData *rna_mesh_fdata(Mesh *me) diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ff277b6d9b0..d2c1b862fee 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -404,7 +404,8 @@ static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max MultiresModifierData *mmd = (MultiresModifierData*)ptr->data; *min = 0; - *max = mmd->totlvl; + *max = mmd->totlvl; /* intentionally _not_ -1 */ + *max= MAX2(0, *max); } static int rna_MultiresModifier_external_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 8000427cb21..6b925b42e06 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1024,8 +1024,13 @@ static void rna_Object_active_shape_key_index_range(PointerRNA *ptr, int *min, i Key *key= ob_get_key(ob); *min= 0; - *max= (key)? BLI_countlist(&key->block)-1: 0; - *max= MAX2(0, *max); + if(key) { + *max= BLI_countlist(&key->block)-1; + if(*max < 0) *max= 0; + } + else { + *max= 0; + } } static int rna_Object_active_shape_key_index_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 8ab480df425..f4753e2efbe 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -700,7 +700,7 @@ static void rna_ConsoleLine_cursor_index_range(PointerRNA *ptr, int *min, int *m ConsoleLine *ci= (ConsoleLine*)ptr->data; *min= 0; - *max= ci->len; + *max= ci->len; /* intentionally _not_ -1 */ } /* Space Dopesheet */ -- cgit v1.2.3 From cc246eaca7bc385738658672e66a5bca8872d5a1 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Thu, 23 Jun 2011 07:16:06 +0000 Subject: 3D Audio GSoC: - Fixes for MSVC compiling. - Fix for ffmpeg audio export with timebase, which fixes vorbis encoding (the only codec using this). --- source/blender/blenkernel/intern/writeffmpeg.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 26de31b2b03..0ce57a57fe7 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -859,6 +859,10 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo specs.format = AUD_FORMAT_S16; specs.rate = rd->ffcodecdata.audio_mixrate; audio_mixdown_device = sound_mixdown(scene, specs, rd->sfra, rd->ffcodecdata.audio_volume); +#ifdef FFMPEG_CODEC_TIME_BASE + c->time_base.den = specs.rate; + c->time_base.num = 1; +#endif } return success; -- cgit v1.2.3 From 9c2aa3d0ffb93881bf1e2763ab28893533f02bd7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 07:50:28 +0000 Subject: fix for function before definition in own recent commit. --- source/blender/makesrna/intern/makesrna.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 2c62316780d..7da538e171b 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -791,17 +791,18 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr } else { rna_print_data_get(f, dp); - rna_clamp_value_range(f, prop); if(prop->flag & PROP_DYNAMIC) { char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set_length"); fprintf(f, " int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n"); fprintf(f, " int len= %s(ptr, arraylen);\n\n", lenfunc); + rna_clamp_value_range(f, prop); fprintf(f, " for(i=0; itotarraylength); } -- cgit v1.2.3 From 2023db70a88c9c5ae7b38eccfee54b6f35780b5f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 09:27:56 +0000 Subject: cmake option to build without an audio library. --- source/blender/blenkernel/CMakeLists.txt | 8 +- source/blender/blenkernel/intern/sequencer.c | 19 ++- source/blender/blenkernel/intern/sound.c | 141 +++++++++++++-------- source/blender/blenkernel/intern/writeffmpeg.c | 4 +- source/blender/editors/sound/CMakeLists.txt | 8 +- source/blender/editors/sound/sound_ops.c | 16 ++- source/blender/editors/space_graph/CMakeLists.txt | 8 +- source/blender/editors/space_graph/graph_edit.c | 16 ++- .../blender/editors/space_sequencer/CMakeLists.txt | 8 +- .../editors/space_sequencer/sequencer_add.c | 5 +- source/blender/makesrna/intern/CMakeLists.txt | 4 + source/blender/makesrna/intern/rna_scene.c | 4 +- source/blender/python/intern/CMakeLists.txt | 8 +- source/blender/python/intern/bpy.c | 2 - source/blender/python/intern/bpy_interface.c | 2 + source/blender/quicktime/CMakeLists.txt | 8 +- source/blender/quicktime/apple/qtkit_export.m | 4 +- 17 files changed, 199 insertions(+), 66 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 9c06e325ce2..e193bd0830f 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -43,7 +43,6 @@ set(INC ../nodes ../editors/include ../render/extern/include - ../../../intern/audaspace/intern ../../../intern/ffmpeg ../../../intern/bsp/extern ../blenfont ../../../intern/decimation/extern @@ -237,6 +236,13 @@ set(SRC add_definitions(-DGLEW_STATIC) +if(WITH_AUDASPACE) + list(APPEND INC + ../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + if(WITH_BULLET) list(APPEND INC ../../../extern/bullet2/src) add_definitions(-DUSE_BULLET) diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index b82ac69fc9e..265cc3eeb79 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -73,7 +73,10 @@ #include "BKE_context.h" #include "BKE_sound.h" -#include "AUD_C-API.h" + +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #ifdef WIN32 #define snprintf _snprintf @@ -697,6 +700,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) } seq->strip->len = seq->len; case SEQ_SOUND: +#ifdef WITH_AUDASPACE if(!seq->sound) return; seq->len = ceil(AUD_getInfo(seq->sound->playback_handle).length * FPS); @@ -706,6 +710,9 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) seq->len = 0; } seq->strip->len = seq->len; +#else + return; +#endif break; case SEQ_SCENE: { @@ -3493,6 +3500,7 @@ Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo return seq; } +#ifdef WITH_AUDASPACE Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) { Scene *scene= CTX_data_scene(C); /* only for sound */ @@ -3550,6 +3558,15 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo return seq; } +#else // WITH_AUDASPACE +Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) +{ + (void)C; + (void)seqbasep; + (void)seq_load; + return NULL; +} +#endif // WITH_AUDASPACE Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) { diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index e0e456a371e..0eb2392b012 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -21,7 +21,9 @@ #include "DNA_screen_types.h" #include "DNA_sound_types.h" -#include "AUD_C-API.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "BKE_utildefines.h" #include "BKE_global.h" @@ -36,6 +38,62 @@ static int force_device = -1; + +struct bSound* sound_new_file(struct Main *bmain, const char *filename) +{ + bSound* sound = NULL; + + char str[FILE_MAX]; + char *path; + + int len; + + strcpy(str, filename); + + path = /*bmain ? bmain->name :*/ G.main->name; + + BLI_path_abs(str, path); + + len = strlen(filename); + while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\') + len--; + + sound = alloc_libblock(&bmain->sound, ID_SO, filename+len); + BLI_strncpy(sound->name, filename, FILE_MAX); +// XXX unused currently sound->type = SOUND_TYPE_FILE; + + sound_load(bmain, sound); + + if(!sound->playback_handle) + { + free_libblock(&bmain->sound, sound); + sound = NULL; + } + + return sound; +} + +void sound_free(struct bSound* sound) +{ + if (sound->packedfile) + { + freePackedFile(sound->packedfile); + sound->packedfile = NULL; + } + +#ifdef WITH_AUDASPACE + if(sound->handle) + { + AUD_unload(sound->handle); + sound->handle = NULL; + sound->playback_handle = NULL; + } +#endif // WITH_AUDASPACE +} + + +#ifdef WITH_AUDASPACE + #ifdef WITH_JACK static void sound_sync_callback(void* data, int mode, float time) { @@ -123,40 +181,6 @@ void sound_exit(void) AUD_exit(); } -struct bSound* sound_new_file(struct Main *bmain, const char *filename) -{ - bSound* sound = NULL; - - char str[FILE_MAX]; - char *path; - - int len; - - strcpy(str, filename); - - path = /*bmain ? bmain->name :*/ G.main->name; - - BLI_path_abs(str, path); - - len = strlen(filename); - while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\') - len--; - - sound = alloc_libblock(&bmain->sound, ID_SO, filename+len); - BLI_strncpy(sound->name, filename, FILE_MAX); -// XXX unused currently sound->type = SOUND_TYPE_FILE; - - sound_load(bmain, sound); - - if(!sound->playback_handle) - { - free_libblock(&bmain->sound, sound); - sound = NULL; - } - - return sound; -} - // XXX unused currently #if 0 struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source) @@ -301,22 +325,6 @@ void sound_load(struct Main *bmain, struct bSound* sound) } } -void sound_free(struct bSound* sound) -{ - if (sound->packedfile) - { - freePackedFile(sound->packedfile); - sound->packedfile = NULL; - } - - if(sound->handle) - { - AUD_unload(sound->handle); - sound->handle = NULL; - sound->playback_handle = NULL; - } -} - static float sound_get_volume(Scene* scene, Sequence* sequence, float time) { AnimData *adt= BKE_animdata_from_id(&scene->id); @@ -502,3 +510,34 @@ int sound_get_channels(struct bSound* sound) return info.specs.channels; } + +#else // WITH_AUDASPACE + +#include "BLI_utildefines.h" + +int sound_define_from_str(const char *UNUSED(str)) { return -1;} +void sound_force_device(int UNUSED(device)) {} +void sound_init_once(void) {} +void sound_init(struct Main *UNUSED(bmain)) {} +void sound_exit(void) {} +void sound_cache(struct bSound* UNUSED(sound), int UNUSED(ignore)) { } +void sound_delete_cache(struct bSound* UNUSED(sound)) {} +void sound_load(struct Main *UNUSED(bmain), struct bSound* UNUSED(sound)) {} +void sound_create_scene(struct Scene *UNUSED(scene)) {} +void sound_destroy_scene(struct Scene *UNUSED(scene)) {} +void sound_mute_scene(struct Scene *UNUSED(scene), int UNUSED(muted)) {} +void* sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; } +void* sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; } +void sound_remove_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle)) {} +void sound_mute_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), char UNUSED(mute)) {} +void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {} +static void sound_start_play_scene(struct Scene *UNUSED(scene)) {} +void sound_play_scene(struct Scene *UNUSED(scene)) {} +void sound_stop_scene(struct Scene *UNUSED(scene)) {} +void sound_seek_scene(struct bContext *UNUSED(C)) {} +float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } +int sound_scene_playing(struct Scene *UNUSED(scene)) { return 0; } +int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } +int sound_get_channels(struct bSound* UNUSED(sound)) { return 1; } + +#endif // WITH_AUDASPACE diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index c729565533f..4c75201a7ad 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -49,7 +49,9 @@ #include "BLI_blenlib.h" -#include "AUD_C-API.h" /* must be before BKE_sound.h for define */ +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "BKE_global.h" #include "BKE_idprop.h" diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt index 6a99971a5af..55af283b5de 100644 --- a/source/blender/editors/sound/CMakeLists.txt +++ b/source/blender/editors/sound/CMakeLists.txt @@ -28,7 +28,6 @@ set(INC ../../makesrna ../../windowmanager ../../../../intern/guardedalloc - ../../../../intern/audaspace/intern ) set(INC_SYS @@ -41,4 +40,11 @@ set(SRC sound_intern.h ) +if(WITH_AUDASPACE) + list(APPEND INC + ../../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib(bf_editor_sound "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 3716baad474..b7e8fee922b 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -64,7 +64,9 @@ #include "WM_api.h" #include "WM_types.h" -#include "AUD_C-API.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "ED_sound.h" #include "ED_util.h" @@ -81,6 +83,7 @@ static void open_init(bContext *C, wmOperator *op) uiIDContextProperty(C, &pprop->ptr, &pprop->prop); } +#ifdef WITH_AUDASPACE static int open_exec(bContext *C, wmOperator *op) { char path[FILE_MAX]; @@ -131,6 +134,17 @@ static int open_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } +#else //WITH_AUDASPACE + +static int open_exec(bContext *UNUSED(C), wmOperator *op) +{ + BKE_report(op->reports, RPT_ERROR, "Compiled without sound support"); + + return OPERATOR_CANCELLED; +} + +#endif + static int open_invoke(bContext *C, wmOperator *op, wmEvent *event) { if(!RNA_property_is_set(op->ptr, "relative_path")) diff --git a/source/blender/editors/space_graph/CMakeLists.txt b/source/blender/editors/space_graph/CMakeLists.txt index f5548097db2..b7cde90546c 100644 --- a/source/blender/editors/space_graph/CMakeLists.txt +++ b/source/blender/editors/space_graph/CMakeLists.txt @@ -28,7 +28,6 @@ set(INC ../../makesrna ../../windowmanager ../../../../intern/guardedalloc - ../../../../intern/audaspace/intern ) set(INC_SYS @@ -47,4 +46,11 @@ set(SRC graph_intern.h ) +if(WITH_AUDASPACE) + list(APPEND INC + ../../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib(bf_editor_space_graph "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 962cadba1f3..fe9b3187a65 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -37,7 +37,9 @@ #include #include -#include "AUD_C-API.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "MEM_guardedalloc.h" @@ -1079,6 +1081,7 @@ static float fcurve_samplingcb_sound (FCurve *UNUSED(fcu), void *data, float eva /* ------------------- */ +#ifdef WITH_AUDASPACE static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op) { bAnimContext ac; @@ -1149,6 +1152,17 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } +#else //WITH_AUDASPACE + +static int graphkeys_sound_bake_exec(bContext *UNUSED(C), wmOperator *op) +{ + BKE_report(op->reports, RPT_ERROR, "Compiled without sound support"); + + return OPERATOR_CANCELLED; +} + +#endif //WITH_AUDASPACE + static int graphkeys_sound_bake_invoke (bContext *C, wmOperator *op, wmEvent *event) { bAnimContext ac; diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt index d5f36719471..71a4cfca868 100644 --- a/source/blender/editors/space_sequencer/CMakeLists.txt +++ b/source/blender/editors/space_sequencer/CMakeLists.txt @@ -29,7 +29,6 @@ set(INC ../../makesrna ../../windowmanager ../../../../intern/guardedalloc - ../../../../intern/audaspace/intern ) set(INC_SYS @@ -49,4 +48,11 @@ set(SRC sequencer_intern.h ) +if(WITH_AUDASPACE) + list(APPEND INC + ../../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib(bf_editor_space_sequencer "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 067d63b3b6c..f6e3dc3dd0a 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -70,7 +70,10 @@ #include "UI_view2d.h" #include "BKE_sound.h" -#include "AUD_C-API.h" + +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif /* own include */ #include "sequencer_intern.h" diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index ed5a1566cdc..1db29855c18 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -171,6 +171,10 @@ if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() +if(WITH_AUDASPACE) + add_definitions(-DWITH_AUDASPACE) +endif() + if(WITH_CODEC_QUICKTIME) list(APPEND INC ../../quicktime) add_definitions(-DWITH_QUICKTIME) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index f24c83efe05..0c136fc429b 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -45,7 +45,9 @@ #ifdef WITH_QUICKTIME #include "quicktime_export.h" -#include "AUD_C-API.h" +# ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +# endif #endif #ifdef WITH_FFMPEG diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 03df9f9cb6c..4e2d9642bc3 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -33,7 +33,6 @@ set(INC ../../windowmanager ../../editors/include ../../../../intern/guardedalloc - ../../../../intern/audaspace/intern ) set(INC_SYS @@ -86,4 +85,11 @@ if(WITH_PYTHON_SAFETY) add_definitions(-DWITH_PYTHON_SAFETY) endif() +if(WITH_AUDASPACE) + list(APPEND INC + ../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c index cb11b53c83c..fb4c285a458 100644 --- a/source/blender/python/intern/bpy.c +++ b/source/blender/python/intern/bpy.c @@ -60,8 +60,6 @@ #include "../generic/blf_py_api.h" #include "../generic/IDProp.h" -#include "AUD_PyInit.h" - PyObject *bpy_package_py= NULL; PyDoc_STRVAR(bpy_script_paths_doc, diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 0001c1c74b9..51bf02ad37f 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -179,7 +179,9 @@ static struct _inittab bpy_internal_modules[]= { // {(char *)"mathutils.geometry", BPyInit_mathutils_geometry}, {(char *)"bgl", BPyInit_bgl}, {(char *)"blf", BPyInit_blf}, +#ifdef WITH_AUDASPACE {(char *)"aud", AUD_initPython}, +#endif {NULL, NULL} }; diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt index 0ed773ddd93..6ce4954f053 100644 --- a/source/blender/quicktime/CMakeLists.txt +++ b/source/blender/quicktime/CMakeLists.txt @@ -38,7 +38,6 @@ set(INC ../render/extern/include ../include ../windowmanager - ../../../intern/audaspace/intern ../../../intern/guardedalloc ) @@ -66,4 +65,11 @@ endif() add_definitions(-DWITH_QUICKTIME) +if(WITH_AUDASPACE) + list(APPEND INC + ../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib(bf_quicktime "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m index add280c6b64..c1b8688e1d7 100644 --- a/source/blender/quicktime/apple/qtkit_export.m +++ b/source/blender/quicktime/apple/qtkit_export.m @@ -38,7 +38,9 @@ #include "DNA_scene_types.h" #include "DNA_userdef_types.h" -#include "AUD_C-API.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "BKE_global.h" #include "BKE_main.h" -- cgit v1.2.3 From bb3742fe91367196c14c4a5cb71245352e9f4fdf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 15:58:41 +0000 Subject: correction to recent commit & made ffmpeg includes only add when enabled. --- source/blender/blenkernel/CMakeLists.txt | 2 +- source/blender/imbuf/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index e193bd0830f..a19d48daa75 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -43,7 +43,6 @@ set(INC ../nodes ../editors/include ../render/extern/include - ../../../intern/ffmpeg ../../../intern/bsp/extern ../blenfont ../../../intern/decimation/extern ../../../intern/elbeem/extern @@ -284,6 +283,7 @@ if(WITH_CODEC_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) + list(APPEND INC ../../../intern/ffmpeg) list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 14679b37d1e..c9a8f62a197 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -38,7 +38,6 @@ set(INC ../makesdna ../../../intern/memutil ../../../intern/guardedalloc - ../../../intern/ffmpeg ) set(INC_SYS @@ -135,6 +134,7 @@ if(WITH_CODEC_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) + list(APPEND INC ../../../intern/ffmpeg) list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) add_definitions(-DWITH_FFMPEG) endif() -- cgit v1.2.3 From 99253abef835fb770e6b0e290efe7b0447993b15 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 23 Jun 2011 16:10:48 +0000 Subject: allow building with ffmpeg but not aud --- source/blender/blenkernel/intern/writeffmpeg.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 4c75201a7ad..4db53999f10 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -91,7 +91,9 @@ static uint8_t* audio_output_buffer = 0; static int audio_outbuf_size = 0; static double audio_time = 0.0f; +#ifdef WITH_AUDASPACE static AUD_Device* audio_mixdown_device = 0; +#endif #define FFMPEG_AUTOSPLIT_SIZE 2000000000 @@ -105,6 +107,7 @@ static void delete_picture(AVFrame* f) } } +#ifdef WITH_AUDASPACE static int write_audio_frame(void) { AVCodecContext* c = NULL; @@ -147,6 +150,7 @@ static int write_audio_frame(void) } return 0; } +#endif // #ifdef WITH_AUDASPACE /* Allocate a temporary frame */ static AVFrame* alloc_picture(int pix_fmt, int width, int height) @@ -853,7 +857,7 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo ffmpeg_autosplit_count = 0; success = start_ffmpeg_impl(rd, rectx, recty, reports); - +#ifdef WITH_AUDASPACE if(audio_stream) { AVCodecContext* c = audio_stream->codec; @@ -863,12 +867,13 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo specs.rate = rd->ffcodecdata.audio_mixrate; audio_mixdown_device = sound_mixdown(scene, specs, rd->sfra, rd->ffcodecdata.audio_volume); } - +#endif return success; } void end_ffmpeg(void); +#ifdef WITH_AUDASPACE static void write_audio_frames(double to_pts) { int finished = 0; @@ -880,6 +885,7 @@ static void write_audio_frames(double to_pts) } } } +#endif int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { @@ -907,8 +913,9 @@ int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty, } } +#ifdef WITH_AUDASPACE write_audio_frames((frame - rd->sfra) / (((double)rd->frs_sec) / rd->frs_sec_base)); - +#endif return success; } @@ -922,12 +929,14 @@ void end_ffmpeg(void) write_audio_frames(); }*/ +#ifdef WITH_AUDASPACE if(audio_mixdown_device) { AUD_closeReadDevice(audio_mixdown_device); audio_mixdown_device = 0; } - +#endif + if (video_stream && video_stream->codec) { fprintf(stderr, "Flushing delayed frames...\n"); flush_ffmpeg (); -- cgit v1.2.3 From 587b51831d7c7b40ba94eef941fbe4fe91ad8230 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Thu, 23 Jun 2011 18:59:47 +0000 Subject: More flexible size options for particle billboards. This adds scale factors for width and height of billboards, relative to the particle size. It's useful when the particle size is primarily used for collision and the like, so the billboard appearance can be adjusted independently. Also allows non-square billboards. In addition the billboards can be scaled by the particle velocity with optional head and tail factors (similar to line drawing options). This allows for pseudo-motionblur effects. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_particle.h | 3 +- source/blender/blenkernel/intern/particle.c | 6 ++-- source/blender/blenloader/intern/readfile.c | 18 ++++++++++-- source/blender/editors/space_view3d/drawobject.c | 32 +++++++++++++++++++--- source/blender/makesdna/DNA_particle_types.h | 2 +- source/blender/makesrna/intern/rna_particle.c | 29 ++++++++++++++++---- .../blender/render/intern/source/convertblender.c | 32 +++++++++++++++++++--- 8 files changed, 103 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 4ea5db93350..7c11f9e964e 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,7 +44,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 258 -#define BLENDER_SUBVERSION 0 +#define BLENDER_SUBVERSION 1 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index feeab98ad78..5b565223ece 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -147,7 +147,8 @@ typedef struct ParticleBillboardData struct Object *ob; float vec[3], vel[3]; float offset[2]; - float size, tilt, random, time; + float size[2]; + float tilt, random, time; int uv[3]; int lock, num; int totnum; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index f71e2e9a6e9..72c92eed312 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3534,6 +3534,8 @@ static void default_particle_settings(ParticleSettings *part) part->path_start = 0.0f; part->path_end = 1.0f; + part->bb_size[0] = part->bb_size[1] = 1.0f; + part->keyed_loops = 1; part->color_vec_max = 1.f; @@ -4505,8 +4507,8 @@ void psys_make_billboard(ParticleBillboardData *bb, float xvec[3], float yvec[3] mul_v3_fl(tvec, -sin(bb->tilt * (float)M_PI)); VECADD(yvec, yvec, tvec); - mul_v3_fl(xvec, bb->size); - mul_v3_fl(yvec, bb->size); + mul_v3_fl(xvec, bb->size[0]); + mul_v3_fl(yvec, bb->size[1]); VECADDFAC(center, bb->vec, xvec, bb->offset[0]); VECADDFAC(center, center, yvec, bb->offset[1]); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 222c4bcf6fc..462124bb65d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11594,9 +11594,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - /* put compatibility code here until next subversion bump */ - - { + if (main->versionfile < 258 || (main->versionfile == 258 && main->subversionfile < 1)){ /* screen view2d settings were not properly initialized [#27164] * v2d->scroll caused the bug but best reset other values too which are in old blend files only. * need to make less ugly - possibly an iterator? */ @@ -11663,6 +11661,20 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + + { + ParticleSettings *part; + for(part = main->particle.first; part; part = part->id.next) { + /* Initialize particle billboard scale */ + part->bb_size[0] = part->bb_size[1] = 1.0f; + } + } + } + + /* put compatibility code here until next subversion bump */ + + { + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 5fcfe404d82..e314d249e6d 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3613,8 +3613,6 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv bb.align = part->bb_align; bb.anim = part->bb_anim; bb.lock = part->draw & PART_DRAW_BB_LOCK; - bb.offset[0] = part->bb_offset[0]; - bb.offset[1] = part->bb_offset[1]; break; case PART_DRAW_PATH: break; @@ -3784,7 +3782,20 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv /* create actiual particle data */ if(draw_as == PART_DRAW_BB) { - bb.size = pa_size; + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; + bb.size[0] = part->bb_size[0] * pa_size; + if (part->bb_align==PART_BB_VEL) { + float pa_vel = len_v3(state.vel); + float head = part->bb_vel_head*pa_vel; + float tail = part->bb_vel_tail*pa_vel; + bb.size[1] = part->bb_size[1]*pa_size + head + tail; + /* use offset to adjust the particle center. this is relative to size, so need to divide! */ + if (bb.size[1] > 0.0f) + bb.offset[1] += (head-tail) / bb.size[1]; + } + else + bb.size[1] = part->bb_size[1] * pa_size; bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); bb.time = ct; } @@ -3804,7 +3815,20 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv /* create actiual particle data */ if(draw_as == PART_DRAW_BB) { - bb.size = pa_size; + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; + bb.size[0] = part->bb_size[0] * pa_size; + if (part->bb_align==PART_BB_VEL) { + float pa_vel = len_v3(state.vel); + float head = part->bb_vel_head*pa_vel; + float tail = part->bb_vel_tail*pa_vel; + bb.size[1] = part->bb_size[1]*pa_size + head + tail; + /* use offset to adjust the particle center. this is relative to size, so need to divide! */ + if (bb.size[1] > 0.0f) + bb.offset[1] += (head-tail) / bb.size[1]; + } + else + bb.size[1] = part->bb_size[1] * pa_size; bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); bb.time = pa_time; } diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 09053848b28..aace8156e9d 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -168,7 +168,7 @@ typedef struct ParticleSettings { /* billboards */ short bb_align, bb_uv_split, bb_anim, bb_split_offset; - float bb_tilt, bb_rand_tilt, bb_offset[2]; + float bb_tilt, bb_rand_tilt, bb_offset[2], bb_size[2], bb_vel_head, bb_vel_tail; /* draw color */ float color_vec_max; diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index 4913e98a0af..30fce5716a9 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -1757,11 +1757,6 @@ static void rna_def_particle_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Absolute Path Time", "Path timing is in absolute frames"); RNA_def_property_update(prop, 0, "rna_Particle_abspathtime_update"); - prop= RNA_def_property(srna, "lock_billboard", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_BB_LOCK); - RNA_def_property_ui_text(prop, "Lock Billboard", "Lock the billboards align axis"); - RNA_def_property_update(prop, 0, "rna_Particle_redo"); - prop= RNA_def_property(srna, "use_parent_particles", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_PARENT); RNA_def_property_ui_text(prop, "Parents", "Render parent particles"); @@ -1910,6 +1905,11 @@ static void rna_def_particle_settings(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Particle_redo_child"); /* billboards */ + prop= RNA_def_property(srna, "lock_billboard", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_BB_LOCK); + RNA_def_property_ui_text(prop, "Lock Billboard", "Lock the billboards align axis"); + RNA_def_property_update(prop, 0, "rna_Particle_redo"); + prop= RNA_def_property(srna, "billboard_align", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "bb_align"); RNA_def_property_enum_items(prop, bb_align_items); @@ -1958,6 +1958,25 @@ static void rna_def_particle_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Billboard Offset", ""); RNA_def_property_update(prop, 0, "rna_Particle_redo"); + prop= RNA_def_property(srna, "billboard_size", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "bb_size"); + RNA_def_property_array(prop, 2); + RNA_def_property_range(prop, 0.001f, 10.0f); + RNA_def_property_ui_text(prop, "Billboard Scale", "Scale billboards relative to particle size"); + RNA_def_property_update(prop, 0, "rna_Particle_redo"); + + prop= RNA_def_property(srna, "billboard_velocity_head", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "bb_vel_head"); + RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_text(prop, "Billboard Velocity Head", "Scale billboards by velocity"); + RNA_def_property_update(prop, 0, "rna_Particle_redo"); + + prop= RNA_def_property(srna, "billboard_velocity_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "bb_vel_tail"); + RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_text(prop, "Billboard Velocity Tail", "Scale billboards by velocity"); + RNA_def_property_update(prop, 0, "rna_Particle_redo"); + /* simplification */ prop= RNA_def_property(srna, "use_simplify", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "simplify_flag", PART_SIMPLIFY_ENABLE); diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 87a1c118897..a4ac92d394c 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1680,8 +1680,6 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem bb.anim = part->bb_anim; bb.lock = part->draw & PART_DRAW_BB_LOCK; bb.ob = (part->bb_ob ? part->bb_ob : RE_GetCamera(re)); - bb.offset[0] = part->bb_offset[0]; - bb.offset[1] = part->bb_offset[1]; bb.split_offset = part->bb_split_offset; bb.totnum = totpart+totchild; bb.uv_split = part->bb_uv_split; @@ -2015,7 +2013,20 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if(part->ren_as == PART_DRAW_BB) { bb.random = random; - bb.size = pa_size; + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; + bb.size[0] = part->bb_size[0] * pa_size; + if (part->bb_align==PART_BB_VEL) { + float pa_vel = len_v3(state.vel); + float head = part->bb_vel_head*pa_vel; + float tail = part->bb_vel_tail*pa_vel; + bb.size[1] = part->bb_size[1]*pa_size + head + tail; + /* use offset to adjust the particle center. this is relative to size, so need to divide! */ + if (bb.size[1] > 0.0f) + bb.offset[1] += (head-tail) / bb.size[1]; + } + else + bb.size[1] = part->bb_size[1] * pa_size; bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); bb.time = ct; bb.num = a; @@ -2040,7 +2051,20 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if(part->ren_as == PART_DRAW_BB) { bb.random = random; - bb.size = pa_size; + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; + bb.size[0] = part->bb_size[0] * pa_size; + if (part->bb_align==PART_BB_VEL) { + float pa_vel = len_v3(state.vel); + float head = part->bb_vel_head*pa_vel; + float tail = part->bb_vel_tail*pa_vel; + bb.size[1] = part->bb_size[1]*pa_size + head + tail; + /* use offset to adjust the particle center. this is relative to size, so need to divide! */ + if (bb.size[1] > 0.0f) + bb.offset[1] += (head-tail) / bb.size[1]; + } + else + bb.size[1] = part->bb_size[1] * pa_size; bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); bb.time = pa_time; bb.num = a; -- cgit v1.2.3 From c518aa13838d43e7311d65aeb9e3745e5057b806 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 23 Jun 2011 19:55:47 +0000 Subject: GHOST Cocoa: move y origin top/bottom conversions out of windowmanager module and into GHOST. Also fixes a problem where e.g. the user preferences window would not open under the mouse cursor correctly. --- .../blender/windowmanager/intern/wm_event_system.c | 25 ++++++---------------- source/blender/windowmanager/intern/wm_window.c | 21 +----------------- 2 files changed, 8 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 2613cb8f14f..83ef46d109c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2365,18 +2365,11 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U if(win->active) { GHOST_TEventCursorData *cd= customdata; wmEvent *lastevent= win->queue.last; - -#if defined(__APPLE__) && defined(GHOST_COCOA) - //Cocoa already uses coordinates with y=0 at bottom, and returns inwindow coordinates on mouse moved event - evt->x= cd->x; - evt->y= cd->y; -#else int cx, cy; GHOST_ScreenToClient(win->ghostwin, cd->x, cd->y, &cx, &cy); evt->x= cx; evt->y= (win->sizey-1) - cy; -#endif event.x= evt->x; event.y= evt->y; @@ -2423,21 +2416,17 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U event.type= MOUSEPAN; break; } -#if defined(__APPLE__) && defined(GHOST_COCOA) - //Cocoa already uses coordinates with y=0 at bottom, and returns inwindow coordinates on mouse moved event - event.x= evt->x = pd->x; - event.y = evt->y = pd->y; -#else + { - int cx, cy; - GHOST_ScreenToClient(win->ghostwin, pd->x, pd->y, &cx, &cy); - event.x= evt->x= cx; - event.y= evt->y= (win->sizey-1) - cy; + int cx, cy; + GHOST_ScreenToClient(win->ghostwin, pd->x, pd->y, &cx, &cy); + event.x= evt->x= cx; + event.y= evt->y= (win->sizey-1) - cy; } -#endif + // Use prevx/prevy so we can calculate the delta later event.prevx= event.x - pd->deltaX; - event.prevy= event.y - pd->deltaY; + event.prevy= event.y - (-pd->deltaY); update_tablet_data(win, &event); wm_event_add(win, &event); diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 9ee39132521..9b1695be67a 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -673,13 +673,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) GHOST_ScreenToClient(win->ghostwin, wx, wy, &cx, &cy); win->eventstate->x= cx; - -#if defined(__APPLE__) && defined(GHOST_COCOA) - //Cocoa already uses coordinates with y=0 at bottom - win->eventstate->y= cy; -#else win->eventstate->y= (win->sizey-1) - cy; -#endif win->addmousemove= 1; /* enables highlighted buttons */ @@ -796,20 +790,13 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) wmEvent event; GHOST_TEventDragnDropData *ddd= GHOST_GetEventData(evt); int cx, cy, wx, wy; - /* entering window, update mouse pos */ GHOST_GetCursorPosition(g_system, &wx, &wy); GHOST_ScreenToClient(win->ghostwin, wx, wy, &cx, &cy); win->eventstate->x= cx; - -#if defined(__APPLE__) && defined(GHOST_COCOA) - //Cocoa already uses coordinates with y=0 at bottom - win->eventstate->y= cy; -#else win->eventstate->y= (win->sizey-1) - cy; -#endif event= *(win->eventstate); /* copy last state, like mouse coords */ @@ -1149,12 +1136,7 @@ void wm_get_cursor_position(wmWindow *win, int *x, int *y) { GHOST_GetCursorPosition(g_system, x, y); GHOST_ScreenToClient(win->ghostwin, *x, *y, x, y); -#if defined(__APPLE__) && defined(GHOST_COCOA) - //Cocoa has silly exception that should be fixed at the ghost level - //(ghost is an allegory for an invisible system specific code) -#else *y = (win->sizey-1) - *y; -#endif } /* ******************* exported api ***************** */ @@ -1187,9 +1169,8 @@ void WM_cursor_warp(wmWindow *win, int x, int y) if (win && win->ghostwin) { int oldx=x, oldy=y; -#if !defined(__APPLE__) || !defined(GHOST_COCOA) y= win->sizey -y - 1; -#endif + GHOST_ClientToScreen(win->ghostwin, x, y, &x, &y); GHOST_SetCursorPosition(g_system, x, y); -- cgit v1.2.3 From 7996d0447445daaeca1a9e08e3a1e1d901cd7fc9 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 23 Jun 2011 22:23:46 +0000 Subject: BGE Animations: Shape Action Actuators are now converted to Action Actuators and new Shape Action Actuators cannot be created. --- source/blender/blenloader/intern/readfile.c | 5 ++++- source/blender/makesrna/intern/rna_actuator.c | 9 --------- 2 files changed, 4 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 50be7b83484..e38d08f9f50 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11671,7 +11671,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } { - /* convert fcurve actuator to action actuator */ + /* convert fcurve and shape action actuators to action actuators */ Object *ob; bActuator *act; bIpoActuator *ia; @@ -11701,6 +11701,9 @@ static void do_versions(FileData *fd, Library *lib, Main *main) act->type= act->otype= ACT_ACTION; } + else if (act->type == ACT_SHAPEACTION) { + act->type = act->otype = ACT_ACTION; + } } } } diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 5f532d7bb31..ebda1b82e8a 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -57,7 +57,6 @@ EnumPropertyItem actuator_type_items[] ={ {ACT_PROPERTY, "PROPERTY", 0, "Property", ""}, {ACT_RANDOM, "RANDOM", 0, "Random", ""}, {ACT_SCENE, "SCENE", 0, "Scene", ""}, - {ACT_SHAPEACTION, "SHAPE_ACTION", 0, "Shape Action", ""}, {ACT_SOUND, "SOUND", 0, "Sound", ""}, {ACT_STATE, "STATE", 0, "State", ""}, {ACT_VISIBILITY, "VISIBILITY", 0, "Visibility", ""}, @@ -100,8 +99,6 @@ static StructRNA* rna_Actuator_refine(struct PointerRNA *ptr) return &RNA_Filter2DActuator; case ACT_PARENT: return &RNA_ParentActuator; - case ACT_SHAPEACTION: - return &RNA_ShapeActionActuator; case ACT_STATE: return &RNA_StateActuator; case ACT_ARMATURE: @@ -463,12 +460,6 @@ EnumPropertyItem *rna_Actuator_type_itemf(bContext *C, PointerRNA *ptr, Property RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_RANDOM); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_SCENE); - if (ob != NULL) { - if (ob->type==OB_MESH){ - RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_SHAPEACTION); - } - } - RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_SOUND); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_STATE); RNA_enum_items_add_value(&item, &totitem, actuator_type_items, ACT_VISIBILITY); -- cgit v1.2.3 From 734a4aa428da5c4a3e05eddbb643c0d26df3e69d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 24 Jun 2011 03:49:56 +0000 Subject: fix [#27746] Black and White Render doesn't work and/or Saves as a Blank screen convert to grayscale when saving renders rather then only writing the red channel. --- source/blender/blenlib/BLI_math_color.h | 1 + source/blender/blenlib/intern/math_color.c | 5 +++++ source/blender/editors/render/render_opengl.c | 22 ++++++++++++++++++++++ source/blender/imbuf/IMB_imbuf.h | 1 + source/blender/imbuf/intern/divers.c | 20 ++++++++++++++++++++ source/blender/render/intern/source/pipeline.c | 9 +++++++++ 6 files changed, 58 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_color.h b/source/blender/blenlib/BLI_math_color.h index fe09706cb3d..a6a1238a064 100644 --- a/source/blender/blenlib/BLI_math_color.h +++ b/source/blender/blenlib/BLI_math_color.h @@ -70,6 +70,7 @@ unsigned int rgb_to_cpack(float r, float g, float b); unsigned int hsv_to_cpack(float h, float s, float v); float rgb_to_grayscale(float rgb[3]); +unsigned char rgb_to_grayscale_byte(unsigned char rgb[3]); /***************** Profile Transformations ********************/ diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c index ef1d5da56d8..93143eb7db3 100644 --- a/source/blender/blenlib/intern/math_color.c +++ b/source/blender/blenlib/intern/math_color.c @@ -488,6 +488,11 @@ float rgb_to_grayscale(float rgb[3]) return 0.3f*rgb[0] + 0.58f*rgb[1] + 0.12f*rgb[2]; } +unsigned char rgb_to_grayscale_byte(unsigned char rgb[3]) +{ + return (76*(unsigned short)rgb[0] + 148*(unsigned short)rgb[1] + 31*(unsigned short)rgb[2]) / 255; +} + /* ********************************* lift/gamma/gain / ASC-CDL conversion ********************************* */ void lift_gamma_gain_to_asc_cdl(float *lift, float *gamma, float *gain, float *offset, float *slope, float *power) diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 98463ce955f..a55f9101a0f 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -220,6 +220,11 @@ static void screen_opengl_render_apply(OGLRender *oglrender) if(oglrender->write_still) { char name[FILE_MAX]; int ok; + + if(scene->r.planes == 8) { + IMB_color_to_bw(ibuf); + } + BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, FALSE); ok= BKE_write_ibuf(ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality); /* no need to stamp here */ if(ok) printf("OpenGL Render written to '%s'\n", name); @@ -433,6 +438,19 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock); if(ibuf) { + short ibuf_free= FALSE; + + /* color -> greyscale */ + /* editing directly would alter the render view */ + if(scene->r.planes == 8) { + ImBuf *ibuf_bw= IMB_dupImBuf(ibuf); + IMB_color_to_bw(ibuf_bw); + // IMB_freeImBuf(ibuf); /* owned by the image */ + ibuf= ibuf_bw; + + ibuf_free= TRUE; + } + if(BKE_imtype_is_movie(scene->r.imtype)) { ok= oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey, oglrender->reports); if(ok) { @@ -453,6 +471,10 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) BKE_reportf(op->reports, RPT_INFO, "Saved file: %s", name); } } + + if(ibuf_free) { + IMB_freeImBuf(ibuf); + } } BKE_image_release_ibuf(oglrender->ima, lock); diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index e9592fdc164..ff01e3a8a1e 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -338,6 +338,7 @@ void IMB_float_from_rect_simple(struct ImBuf *ibuf); /* no profile conversion */ /* note, check that the conversion exists, only some are supported */ void IMB_convert_profile(struct ImBuf *ibuf, int profile); float *IMB_float_profile_ensure(struct ImBuf *ibuf, int profile, int *alloc); +void IMB_color_to_bw(struct ImBuf *ibuf); /** * Change the ordering of the color bytes pointed to by rect from diff --git a/source/blender/imbuf/intern/divers.c b/source/blender/imbuf/intern/divers.c index 90ee2692cf0..7fc7669601d 100644 --- a/source/blender/imbuf/intern/divers.c +++ b/source/blender/imbuf/intern/divers.c @@ -490,3 +490,23 @@ float *IMB_float_profile_ensure(struct ImBuf *ibuf, int profile, int *alloc) return fbuf; } } + + +/* no profile conversion */ +void IMB_color_to_bw(struct ImBuf *ibuf) +{ + float *rctf= ibuf->rect_float; + unsigned char *rct= (unsigned char *)ibuf->rect; + int i; + if(rctf) { + for (i = ibuf->x * ibuf->y; i > 0; i--, rctf+=4) { + rctf[0]= rctf[1]= rctf[2]= rgb_to_grayscale(rctf); + } + } + + if(rct) { + for (i = ibuf->x * ibuf->y; i > 0; i--, rct+=4) { + rct[0]= rct[1]= rct[2]= rgb_to_grayscale_byte(rct); + } + } +} diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 2a47a2db0ff..1d112341218 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2995,6 +2995,15 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, R } } + /* color -> greyscale */ + /* editing directly would alter the render view */ + if(scene->r.planes == 8) { + ImBuf *ibuf_bw= IMB_dupImBuf(ibuf); + IMB_color_to_bw(ibuf_bw); + IMB_freeImBuf(ibuf); + ibuf= ibuf_bw; + } + ok= BKE_write_ibuf_stamp(scene, camera, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality); if(ok==0) { -- cgit v1.2.3 From ebff5d5fb2335ff3ae76676c701435293fe19b42 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 24 Jun 2011 05:34:03 +0000 Subject: free_bvhtree_from_mesh was incorrectly useing sizeof() when clearing memory. --- source/blender/blenkernel/intern/bvhutils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index cc45abb5998..c3aeb440938 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -719,7 +719,7 @@ void free_bvhtree_from_mesh(struct BVHTreeFromMesh *data) if(!data->cached) BLI_bvhtree_free(data->tree); - memset( data, 0, sizeof(data) ); + memset( data, 0, sizeof(*data) ); } } -- cgit v1.2.3 From 05fb0e2d61f49b138e4f1c0abd8465cf77f95eca Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 24 Jun 2011 14:00:15 +0000 Subject: First commit to make "Style" settings saved in startup.blend Usage currently is limited to: - Panel text, widget text and label text style: point size, shadow effects Setting individual fonts to these is not possible yet, it uses the default for it. Access goes via outliner now; check "User Preferences". UI team could add this in userpref scripts :) --- source/blender/blenloader/intern/readfile.c | 3 ++- source/blender/blenloader/intern/writefile.c | 7 ++++++- source/blender/editors/interface/interface_style.c | 2 +- source/blender/makesrna/intern/rna_userdef.c | 13 +++++++------ 4 files changed, 16 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 462124bb65d..bd1764b2dc9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11757,7 +11757,8 @@ static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead) // XXX user->uifonts.first= user->uifonts.last= NULL; - user->uistyles.first= user->uistyles.last= NULL; + + link_list(fd, &user->uistyles); /* free fd->datamap again */ oldnewmap_free_unused(fd->datamap); diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 240e8d00ab8..d5192eaf09c 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -723,7 +723,8 @@ static void write_userdef(WriteData *wd) wmKeyMap *keymap; wmKeyMapItem *kmi; bAddon *bext; - + uiStyle *style; + writestruct(wd, USER, "UserDef", 1, &U); for(btheme= U.themes.first; btheme; btheme=btheme->next) @@ -742,6 +743,10 @@ static void write_userdef(WriteData *wd) for(bext= U.addons.first; bext; bext=bext->next) writestruct(wd, DATA, "bAddon", 1, bext); + + for(style= U.uistyles.first; style; style= style->next) { + writestruct(wd, DATA, "uiStyle", 1, style); + } } static void write_boid_state(WriteData *wd, BoidState *state) diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 2e4106b3c04..5f2a757d2e3 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -83,7 +83,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name) BLI_addtail(styles, style); BLI_strncpy(style->name, name, MAX_STYLE_NAME); - style->panelzoom= 1.0; + style->panelzoom= 1.0; /* unused */ style->paneltitle.uifont_id= UIFONT_DEFAULT; style->paneltitle.points= 12; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 1bdb21d2d00..4d1e1f175f2 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -361,36 +361,37 @@ static void rna_def_userdef_theme_ui_style(BlenderRNA *brna) RNA_def_struct_sdna(srna, "uiStyle"); RNA_def_struct_ui_text(srna, "Style", "Theme settings for style sets"); + /* (not used yet) prop= RNA_def_property(srna, "panelzoom", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.5, 2.0); RNA_def_property_ui_text(prop, "Panel Zoom", "Default zoom level for panel areas"); - + */ prop= RNA_def_property(srna, "panel_title", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "paneltitle"); RNA_def_property_struct_type(prop, "ThemeFontStyle"); - RNA_def_property_ui_text(prop, "Panel Font", ""); + RNA_def_property_ui_text(prop, "Panel Style", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); - +/* (not used yet) prop= RNA_def_property(srna, "group_label", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "grouplabel"); RNA_def_property_struct_type(prop, "ThemeFontStyle"); RNA_def_property_ui_text(prop, "Group Label Font", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); - +*/ prop= RNA_def_property(srna, "widget_label", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "widgetlabel"); RNA_def_property_struct_type(prop, "ThemeFontStyle"); - RNA_def_property_ui_text(prop, "Widget Label Font", ""); + RNA_def_property_ui_text(prop, "Widget Label Style", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop= RNA_def_property(srna, "widget", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "widget"); RNA_def_property_struct_type(prop, "ThemeFontStyle"); - RNA_def_property_ui_text(prop, "Widget Font", ""); + RNA_def_property_ui_text(prop, "Widget Style", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); } -- cgit v1.2.3 From 74520bd1ef6ab4264f5e6a24269f7ac3b85b4e23 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 24 Jun 2011 15:10:34 +0000 Subject: move callbacks file out of intern (only contains 1 function but re-using it for new callback api) --- source/blender/blenlib/BLI_callbacks.h | 44 +++++++++++++++++++++++++ source/blender/blenlib/CMakeLists.txt | 2 +- source/blender/blenlib/intern/BLI_callbacks.h | 46 --------------------------- 3 files changed, 45 insertions(+), 47 deletions(-) create mode 100644 source/blender/blenlib/BLI_callbacks.h delete mode 100644 source/blender/blenlib/intern/BLI_callbacks.h (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h new file mode 100644 index 00000000000..9f6ac0c391f --- /dev/null +++ b/source/blender/blenlib/BLI_callbacks.h @@ -0,0 +1,44 @@ +/* + * $Id: + * + * These callbacks are needed in the lib + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * 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): mar 2001 Nzc + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/blenlib/intern/BLI_callbacks.h + * \ingroup bli + */ + + +#ifndef BLI_CALLBACKS_H +#define BLI_CALLBACKS_H + +// This is blenlib internal only +void callLocalErrorCallBack(const char* msg); + +#endif + diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index c6848346220..8964d02199f 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -89,6 +89,7 @@ set(SRC BLI_blenlib.h BLI_boxpack2d.h BLI_bpath.h + BLI_callbacks.h BLI_cpu.h BLI_dlrbTree.h BLI_dynlib.h @@ -132,7 +133,6 @@ set(SRC BLI_voxel.h BLI_winstuff.h PIL_time.h - intern/BLI_callbacks.h intern/dynamiclist.h ) diff --git a/source/blender/blenlib/intern/BLI_callbacks.h b/source/blender/blenlib/intern/BLI_callbacks.h deleted file mode 100644 index ad09339e61a..00000000000 --- a/source/blender/blenlib/intern/BLI_callbacks.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * blenlib/BLI_editVert.h mar 2001 Nzc - * - * These callbacks are needed in the lib - * - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 ***** - */ - -/** \file blender/blenlib/intern/BLI_callbacks.h - * \ingroup bli - */ - - -#ifndef BLI_CALLBACKS_H -#define BLI_CALLBACKS_H - -// This is blenlib internal only -void callLocalErrorCallBack(const char* msg); - -#endif - -- cgit v1.2.3 From 12e02fd4746308746e2f9e316a3b5e8bcd5f2896 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 24 Jun 2011 16:54:30 +0000 Subject: own patch [#27752] Python Callback (Scriptlink functionality) Python: * adds bpy.app.handlers which contains lists, each for an event type: render_pre, render_post, load_pre, load_post, save_pre, save_post * each list item needs to be a callable object which takes 1 argument (the ID). * callbacks are cleared on file load. Example: def MyFunc(scene): print("Callback:", data) bpy.app.handlers.render_post.append(MyFunc) C: * This patch adds a generic C callback api which is currently only used by python. * Unlike python callbacks these are not cleared on file load. --- source/blender/blenkernel/intern/blender.c | 4 + source/blender/blenlib/BLI_callbacks.h | 38 ++++- source/blender/blenlib/CMakeLists.txt | 1 + source/blender/blenlib/intern/callbacks.c | 70 +++++++++ source/blender/python/BPY_extern.h | 2 + source/blender/python/intern/CMakeLists.txt | 2 + source/blender/python/intern/bpy_app.c | 6 + source/blender/python/intern/bpy_app_handlers.c | 170 +++++++++++++++++++++ source/blender/python/intern/bpy_app_handlers.h | 35 +++++ source/blender/render/intern/source/pipeline.c | 25 ++- source/blender/windowmanager/intern/wm_files.c | 12 +- source/blender/windowmanager/intern/wm_init_exit.c | 1 + 12 files changed, 358 insertions(+), 8 deletions(-) create mode 100644 source/blender/blenlib/intern/callbacks.c create mode 100644 source/blender/python/intern/bpy_app_handlers.c create mode 100644 source/blender/python/intern/bpy_app_handlers.h (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 0f545ad3ff9..633a05589cd 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -64,6 +64,7 @@ #include "BLI_dynstr.h" #include "BLI_path_util.h" #include "BLI_utildefines.h" +#include "BLI_callbacks.h" #include "IMB_imbuf.h" @@ -110,6 +111,9 @@ void free_blender(void) BKE_spacetypes_free(); /* after free main, it uses space callbacks */ IMB_exit(); + + BLI_cb_finalize(); + seq_stripelem_cache_destruct(); free_nodesystem(); diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h index 9f6ac0c391f..89e4230825d 100644 --- a/source/blender/blenlib/BLI_callbacks.h +++ b/source/blender/blenlib/BLI_callbacks.h @@ -1,8 +1,6 @@ /* * $Id: * - * These callbacks are needed in the lib - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -29,7 +27,7 @@ * ***** END GPL LICENSE BLOCK ***** */ -/** \file blender/blenlib/intern/BLI_callbacks.h +/** \file blender/blenlib/BLI_callbacks.h * \ingroup bli */ @@ -37,8 +35,38 @@ #ifndef BLI_CALLBACKS_H #define BLI_CALLBACKS_H -// This is blenlib internal only -void callLocalErrorCallBack(const char* msg); +struct bContext; +struct Main; +struct ID; + +typedef enum { + BLI_CB_EVT_RENDER_PRE, + BLI_CB_EVT_RENDER_POST, + BLI_CB_EVT_LOAD_PRE, + BLI_CB_EVT_LOAD_POST, + BLI_CB_EVT_SAVE_PRE, + BLI_CB_EVT_SAVE_POST, + BLI_CB_EVT_TOT +} eCbEvent; + + +typedef struct { + struct bCallbackFuncStore *next, *prev; + void (* func)(struct Main *, struct ID *, void *arg); + void *arg; + short alloc; +} bCallbackFuncStore; + + +void BLI_exec_cb(struct Main *main, struct ID *self, eCbEvent evt); +void BLI_add_cb(bCallbackFuncStore *funcstore, eCbEvent evt); #endif + +void BLI_cb_init(void); +void BLI_cb_finalize(void); + + +/* This is blenlib internal only, unrelated to above */ +void callLocalErrorCallBack(const char* msg); diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index 8964d02199f..2e05ac7892b 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -52,6 +52,7 @@ set(SRC intern/DLRB_tree.c intern/boxpack2d.c intern/bpath.c + intern/callbacks.c intern/cpu.c intern/dynlib.c intern/edgehash.c diff --git a/source/blender/blenlib/intern/callbacks.c b/source/blender/blenlib/intern/callbacks.c new file mode 100644 index 00000000000..0c778dcd3fa --- /dev/null +++ b/source/blender/blenlib/intern/callbacks.c @@ -0,0 +1,70 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Blender Foundation (2011) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include "BLI_utildefines.h" +#include "BLI_listbase.h" +#include "BLI_callbacks.h" + +#include "MEM_guardedalloc.h" + +static ListBase callback_slots[BLI_CB_EVT_TOT]= {{0}}; + +void BLI_exec_cb(struct Main *main, struct ID *self, eCbEvent evt) +{ + ListBase *lb= &callback_slots[evt]; + bCallbackFuncStore *funcstore; + + for(funcstore= (bCallbackFuncStore *)lb->first; funcstore; funcstore= (bCallbackFuncStore *)funcstore->next) { + funcstore->func(main, self, funcstore->arg); + } +} + +void BLI_add_cb(bCallbackFuncStore *funcstore, eCbEvent evt) +{ + ListBase *lb= &callback_slots[evt]; + BLI_addtail(lb, funcstore); +} + +void BLI_cb_init(void) +{ + /* do nothing */ +} + +/* call on application exit */ +void BLI_cb_finalize(void) +{ + eCbEvent evt; + for(evt= 0; evt < BLI_CB_EVT_TOT; evt++) { + ListBase *lb= &callback_slots[evt]; + bCallbackFuncStore *funcstore; + bCallbackFuncStore *funcstore_next; + for(funcstore= (bCallbackFuncStore *)lb->first; funcstore; funcstore= funcstore_next) { + funcstore_next= (bCallbackFuncStore *)funcstore->next; + BLI_remlink(lb, funcstore); + if(funcstore->alloc) { + MEM_freeN(funcstore); + } + } + } +} diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h index ae5253d07a0..cd5c8e53ef7 100644 --- a/source/blender/python/BPY_extern.h +++ b/source/blender/python/BPY_extern.h @@ -83,6 +83,8 @@ void BPY_text_free_code(struct Text *text); void BPY_modules_update(struct bContext *C); // XXX - annoying, need this for pointers that get out of date void BPY_modules_load_user(struct bContext *C); +void BPY_app_handlers_reset(void); + void BPY_driver_reset(void); float BPY_driver_exec(struct ChannelDriver *driver); diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 4e2d9642bc3..287ba45a1cf 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -42,6 +42,7 @@ set(INC_SYS set(SRC bpy.c bpy_app.c + bpy_app_handlers.c bpy_driver.c bpy_interface.c bpy_intern_string.c @@ -59,6 +60,7 @@ set(SRC bpy.h bpy_app.h + bpy_app_handlers.h bpy_driver.h bpy_intern_string.h bpy_operator.h diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c index 41de1171aaa..079d5223f58 100644 --- a/source/blender/python/intern/bpy_app.c +++ b/source/blender/python/intern/bpy_app.c @@ -30,6 +30,7 @@ #include #include "bpy_app.h" +#include "bpy_app_handlers.h" #include "bpy_driver.h" #include "BLI_path_util.h" @@ -74,6 +75,9 @@ static PyStructSequence_Field app_info_fields[]= { {(char *)"build_cxxflags", (char *)"C++ compiler flags"}, {(char *)"build_linkflags", (char *)"Binary linking flags"}, {(char *)"build_system", (char *)"Build system used"}, + + /* submodules */ + {(char *)"handlers", (char *)"Application handler callbacks"}, {NULL} }; @@ -140,6 +144,8 @@ static PyObject *make_app_info(void) SetStrItem("Unknown"); #endif + SetObjItem(BPY_app_handlers_struct()); + #undef SetIntItem #undef SetStrItem #undef SetObjItem diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c new file mode 100644 index 00000000000..a944e88ad2f --- /dev/null +++ b/source/blender/python/intern/bpy_app_handlers.c @@ -0,0 +1,170 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/intern/bpy_app_handlers.c + * \ingroup pythonintern + */ + +#include +#include "BLI_utildefines.h" +#include "BLI_callbacks.h" + +#include "RNA_types.h" +#include "RNA_access.h" +#include "bpy_rna.h" +#include "bpy_app_handlers.h" + +void bpy_app_generic_callback(struct Main *main, struct ID *id, void *arg); + +static PyTypeObject BlenderAppCbType; + +static PyStructSequence_Field app_cb_info_fields[]= { + {(char *)"render_pre", NULL}, + {(char *)"render_post", NULL}, + {(char *)"load_pre", NULL}, + {(char *)"load_post", NULL}, + {(char *)"save_pre", NULL}, + {(char *)"save_post", NULL}, + {NULL} +}; + +static PyStructSequence_Desc app_cb_info_desc= { + (char *)"bpy.app.handlers", /* name */ + (char *)"This module contains callbacks", /* doc */ + app_cb_info_fields, /* fields */ + (sizeof(app_cb_info_fields)/sizeof(PyStructSequence_Field)) - 1 +}; + +/* +#if (BLI_CB_EVT_TOT != ((sizeof(app_cb_info_fields)/sizeof(PyStructSequence_Field)))) +# error "Callbacks are out of sync" +#endif +*/ + +static PyObject *py_cb_array[BLI_CB_EVT_TOT]= {0}; + +static PyObject *make_app_cb_info(void) +{ + PyObject *app_cb_info; + int pos= 0; + + app_cb_info= PyStructSequence_New(&BlenderAppCbType); + if (app_cb_info == NULL) { + return NULL; + } + + for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + if(app_cb_info_fields[pos].name == NULL) { + Py_FatalError("invalid callback slots 1"); + } + PyStructSequence_SET_ITEM(app_cb_info, pos, (py_cb_array[pos]= PyList_New(0))); + } + if(app_cb_info_fields[pos].name != NULL) { + Py_FatalError("invalid callback slots 2"); + } + + return app_cb_info; +} + +PyObject *BPY_app_handlers_struct(void) +{ + PyObject *ret; + + PyStructSequence_InitType(&BlenderAppCbType, &app_cb_info_desc); + + ret= make_app_cb_info(); + + /* prevent user from creating new instances */ + BlenderAppCbType.tp_init= NULL; + BlenderAppCbType.tp_new= NULL; + + /* assign the C callbacks */ + if(ret) { + static bCallbackFuncStore funcstore_array[BLI_CB_EVT_TOT]= {{0}}; + bCallbackFuncStore *funcstore; + int pos= 0; + + for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + funcstore= &funcstore_array[pos]; + funcstore->func= bpy_app_generic_callback; + funcstore->alloc= 0; + funcstore->arg= SET_INT_IN_POINTER(pos); + BLI_add_cb(funcstore, pos); + } + } + + return ret; +} + +void BPY_app_handlers_reset(void) +{ + int pos= 0; + + for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + PyList_SetSlice(py_cb_array[pos], 0, PY_SSIZE_T_MAX, NULL); + } +} + +/* the actual callback - not necessarily called from py */ +void bpy_app_generic_callback(struct Main *UNUSED(main), struct ID *id, void *arg) +{ + PyObject *cb_list= py_cb_array[GET_INT_FROM_POINTER(arg)]; + Py_ssize_t cb_list_len; + if((cb_list_len= PyList_GET_SIZE(cb_list)) > 0) { + PyGILState_STATE gilstate= PyGILState_Ensure(); + + PyObject* args= PyTuple_New(1); // save python creating each call + PyObject* func; + PyObject* ret; + Py_ssize_t pos; + + /* setup arguments */ + if(id) { + PointerRNA id_ptr; + RNA_id_pointer_create(id, &id_ptr); + PyTuple_SET_ITEM(args, 0, pyrna_struct_CreatePyObject(&id_ptr)); + } + else { + PyTuple_SET_ITEM(args, 0, Py_None); + Py_INCREF(Py_None); + } + + // Iterate the list and run the callbacks + for (pos=0; pos < cb_list_len; pos++) { + func= PyList_GET_ITEM(cb_list, pos); + ret= PyObject_Call(func, args, NULL); + if (ret==NULL) { + PyErr_Print(); + PyErr_Clear(); + } + else { + Py_DECREF(ret); + } + } + + Py_DECREF(args); + + PyGILState_Release(gilstate); + } +} diff --git a/source/blender/python/intern/bpy_app_handlers.h b/source/blender/python/intern/bpy_app_handlers.h new file mode 100644 index 00000000000..5fdca826c3f --- /dev/null +++ b/source/blender/python/intern/bpy_app_handlers.h @@ -0,0 +1,35 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/intern/bpy_app_handlers.h + * \ingroup pythonintern + */ + +#ifndef BPY_APP_HANDLERS_H +#define BPY_APP_HANDLERS_H + +PyObject *BPY_app_handlers_struct(void); +void BPY_app_handlers_clear(void); + +#endif // BPY_APP_HANDLERS_H diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 1d112341218..b1c9820337c 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -64,6 +64,7 @@ #include "BLI_blenlib.h" #include "BLI_rand.h" #include "BLI_threads.h" +#include "BLI_callbacks.h" #include "BLI_utildefines.h" #include "PIL_time.h" @@ -2915,6 +2916,9 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr if(render_initialize_from_main(re, bmain, scene, srl, camera_override, lay, 0, 0)) { MEM_reset_peak_memory(); + + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_PRE); + do_render_all_options(re); if(write_still && !G.afbreek) { @@ -2930,6 +2934,8 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr do_write_image_or_movie(re, scene, NULL, NULL, name); } } + + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */ } /* UGLY WARNING */ @@ -3059,14 +3065,21 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri int nf = mh->get_next_frame(&re->r, reports); if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) { scene->r.cfra = re->r.cfra = nf; - + + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_PRE); + do_render_all_options(re); if(re->test_break(re->tbh) == 0) { if(!do_write_image_or_movie(re, scene, mh, reports, NULL)) G.afbreek= 1; } - } else { + + if(G.afbreek == 0) { + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */ + } + } + else { if(re->test_break(re->tbh)) G.afbreek= 1; } @@ -3113,6 +3126,10 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri } re->r.cfra= scene->r.cfra; /* weak.... */ + + /* run callbacs before rendering, before the scene is updated */ + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_PRE); + do_render_all_options(re); @@ -3134,6 +3151,10 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri break; } + + if(G.afbreek==0) { + BLI_exec_cb(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */ + } } } diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index c088d0d2d43..4693c8079d2 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -57,6 +57,7 @@ #include "BLI_blenlib.h" #include "BLI_linklist.h" #include "BLI_utildefines.h" +#include "BLI_callbacks.h" #include "DNA_anim_types.h" #include "DNA_ipo_types.h" // XXX old animation system @@ -342,6 +343,8 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) WM_cursor_wait(1); + BLI_exec_cb(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_PRE); + /* first try to append data from exotic file formats... */ /* it throws error box when file doesnt exist and returns -1 */ /* note; it should set some error message somewhere... (ton) */ @@ -392,6 +395,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) #ifdef WITH_PYTHON /* run any texts that were loaded in and flagged as modules */ BPY_driver_reset(); + BPY_app_handlers_reset(); BPY_modules_load_user(C); #endif CTX_wm_window_set(C, NULL); /* exits queues */ @@ -411,7 +415,8 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) // XXX undo_editmode_clear(); BKE_reset_undo(); BKE_write_undo(C, "original"); /* save current state */ - + + BLI_exec_cb(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST); } else if(retval == BKE_READ_EXOTIC_OK_OTHER) BKE_write_undo(C, "Import file"); @@ -518,6 +523,7 @@ int WM_read_homefile(bContext *C, ReportList *reports, short from_memory) BPY_string_exec(C, "__import__('addon_utils').reset_all()"); BPY_driver_reset(); + BPY_app_handlers_reset(); BPY_modules_load_user(C); } #endif @@ -716,6 +722,8 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re } } + BLI_exec_cb(G.main, NULL, BLI_CB_EVT_SAVE_PRE); + /* operator now handles overwrite checks */ if (G.fileflags & G_AUTOPACK) { @@ -752,6 +760,8 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re write_history(); } + BLI_exec_cb(G.main, NULL, BLI_CB_EVT_SAVE_POST); + /* run this function after because the file cant be written before the blend is */ if (ibuf_thumb) { ibuf_thumb= IMB_thumb_create(filepath, THB_NORMAL, THB_SOURCE_BLEND, ibuf_thumb); diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index c61db1d653e..0bc2e5da1c5 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -155,6 +155,7 @@ void WM_init(bContext *C, int argc, const char **argv) BPY_python_start(argc, argv); BPY_driver_reset(); + BPY_app_handlers_reset(); BPY_modules_load_user(C); #else (void)argc; /* unused */ -- cgit v1.2.3 From a03707d408b9e37cd11124c93b1516eae9522139 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Fri, 24 Jun 2011 23:14:26 +0000 Subject: SVN maintenance. --- source/blender/blenlib/BLI_callbacks.h | 2 +- source/blender/blenlib/intern/callbacks.c | 2 +- source/blender/python/intern/bpy_app_handlers.c | 2 +- source/blender/python/intern/bpy_app_handlers.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h index 89e4230825d..1735848e774 100644 --- a/source/blender/blenlib/BLI_callbacks.h +++ b/source/blender/blenlib/BLI_callbacks.h @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenlib/intern/callbacks.c b/source/blender/blenlib/intern/callbacks.c index 0c778dcd3fa..a033e01696d 100644 --- a/source/blender/blenlib/intern/callbacks.c +++ b/source/blender/blenlib/intern/callbacks.c @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c index a944e88ad2f..26d9ca76e3f 100644 --- a/source/blender/python/intern/bpy_app_handlers.c +++ b/source/blender/python/intern/bpy_app_handlers.c @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/python/intern/bpy_app_handlers.h b/source/blender/python/intern/bpy_app_handlers.h index 5fdca826c3f..bfa413438b1 100644 --- a/source/blender/python/intern/bpy_app_handlers.h +++ b/source/blender/python/intern/bpy_app_handlers.h @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From 826ed5ed1de68b556a8ea96c27cae0580af956ed Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sat, 25 Jun 2011 00:33:36 +0000 Subject: Fix [#27748] undeterministic behaviour of volumetric renderer * Made clearer in the UI that the approximate multiple scattering always enables light cache * Fixed a potential problem in anisotropic scattering --- source/blender/render/intern/source/volume_precache.c | 1 - source/blender/render/intern/source/volumetric.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c index 8293143a2a6..faa915b7f6c 100644 --- a/source/blender/render/intern/source/volume_precache.c +++ b/source/blender/render/intern/source/volume_precache.c @@ -523,7 +523,6 @@ static void *vol_precache_part(void *data) continue; } - /* this view coordinate is very wrong! */ copy_v3_v3(shi->view, cco); normalize_v3(shi->view); vol_get_scattering(shi, scatter_col, cco); diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c index c4e741b6c61..359002d05ae 100644 --- a/source/blender/render/intern/source/volumetric.c +++ b/source/blender/render/intern/source/volumetric.c @@ -534,6 +534,7 @@ static void vol_shade_one_lamp(struct ShadeInput *shi, float *co, LampRen *lar, if (luminance(lacol) < 0.001f) return; + normalize_v3(lv); p = vol_get_phasefunc(shi, shi->mat->vol.asymmetry, shi->view, lv); /* physically based scattering with non-physically based RGB gain */ -- cgit v1.2.3 From d888b4d11de54e2f4cb2ebcc7b8b0c54f07f4b74 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 25 Jun 2011 06:54:11 +0000 Subject: wrong rna func type used --- source/blender/editors/mesh/editmesh_mods.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 741cfd7078c..9497370a4fa 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -867,7 +867,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op) Mesh *me= obedit->data; EditMesh *em= BKE_mesh_get_editmesh(me); - int selcount = similar_face_select__internal(em, RNA_int_get(op->ptr, "type"), RNA_float_get(op->ptr, "threshold")); + int selcount = similar_face_select__internal(em, RNA_enum_get(op->ptr, "type"), RNA_float_get(op->ptr, "threshold")); if (selcount) { /* here was an edge-mode only select flush case, has to be generalized */ -- cgit v1.2.3 From c863cdcaf3b3f42cc8c251ffb6701b9879c90a5c Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 25 Jun 2011 07:23:23 +0000 Subject: Fixed issues with unit conversion and animation channels. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/TransformReader.cpp | 36 ++++++++++++++-------------- source/blender/collada/TransformWriter.cpp | 8 +++++-- 3 files changed, 25 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index f0491af3a49..ade1475c871 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -132,7 +132,7 @@ void AnimationExporter::exportAnimations(Scene *sce) boneName = strtok(NULL,"\""); if( boneName != NULL ) - return id_name(ob) + "_" + std::string(boneName); + return /*id_name(ob) + "_" +*/ std::string(boneName); else return id_name(ob); } diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp index 3d624520e53..625a0220830 100644 --- a/source/blender/collada/TransformReader.cpp +++ b/source/blender/collada/TransformReader.cpp @@ -45,24 +45,24 @@ void TransformReader::get_node_mat(float mat[][4], COLLADAFW::Node *node, std::m COLLADAFW::Transformation *tm = node->getTransformations()[i]; COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); - switch(type) { - case COLLADAFW::Transformation::TRANSLATE: - dae_translate_to_mat4(tm, cur); - break; - case COLLADAFW::Transformation::ROTATE: - dae_rotate_to_mat4(tm, cur); - break; - case COLLADAFW::Transformation::SCALE: - dae_scale_to_mat4(tm, cur); - break; - case COLLADAFW::Transformation::MATRIX: - dae_matrix_to_mat4(tm, cur); - break; - case COLLADAFW::Transformation::LOOKAT: - case COLLADAFW::Transformation::SKEW: - fprintf(stderr, "LOOKAT and SKEW transformations are not supported yet.\n"); - break; - } + switch(type) { + case COLLADAFW::Transformation::TRANSLATE: + dae_translate_to_mat4(tm, cur); + break; + case COLLADAFW::Transformation::ROTATE: + dae_rotate_to_mat4(tm, cur); + break; + case COLLADAFW::Transformation::SCALE: + dae_scale_to_mat4(tm, cur); + break; + case COLLADAFW::Transformation::MATRIX: + dae_matrix_to_mat4(tm, cur); + break; + case COLLADAFW::Transformation::LOOKAT: + case COLLADAFW::Transformation::SKEW: + fprintf(stderr, "LOOKAT and SKEW transformations are not supported yet.\n"); + break; + } copy_m4_m4(copy, mat); mul_m4_m4m4(mat, cur, copy); diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp index 8638e16e1c2..546ca3e3019 100644 --- a/source/blender/collada/TransformWriter.cpp +++ b/source/blender/collada/TransformWriter.cpp @@ -98,8 +98,12 @@ void TransformWriter::add_node_transform_identity(COLLADASW::Node& node) void TransformWriter::add_transform(COLLADASW::Node& node, float loc[3], float rot[3], float scale[3]) { node.addTranslate("location", loc[0], loc[1], loc[2]); - node.addRotateZ("rotationZ", COLLADABU::Math::Utils::radToDegF(rot[2])); + /*node.addRotateZ("rotationZ", COLLADABU::Math::Utils::radToDegF(rot[2])); node.addRotateY("rotationY", COLLADABU::Math::Utils::radToDegF(rot[1])); - node.addRotateX("rotationX", COLLADABU::Math::Utils::radToDegF(rot[0])); + node.addRotateX("rotationX", COLLADABU::Math::Utils::radToDegF(rot[0]));*/ + node.addRotateZ("rotationZ", rot[2] * 180.0f/M_PI); + node.addRotateY("rotationY", (rot[1]* 180.0f/M_PI)); + node.addRotateX("rotationX", (rot[0]* 180.0f/M_PI)); + node.addScale("scale", scale[0], scale[1], scale[2]); } -- cgit v1.2.3 From 75f572ebb8fa251e7ef1f131cf1e54880b36bcf2 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 25 Jun 2011 13:23:14 +0000 Subject: Bugfix #27761 Default startup theme used same node header color for "in/out" nodes as for "inactive or undefined" nodes. This made it impossible to see which of the output nodes in node setup was 'active'. Made the active in/out color a slight blueish shade of grey now. --- source/blender/editors/datafiles/startup.blend.c | 14568 ++++++++++----------- 1 file changed, 6753 insertions(+), 7815 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index dce7ee25e8d..2d59e59644d 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -1,12 +1,12 @@ /* DataToC output of file */ -int datatoc_startup_blend_size= 375912; +int datatoc_startup_blend_size= 341924; char datatoc_startup_blend[]= { - 66, 76, 69, 78, 68, 69, 82, 45, -118, 50, 53, 55, 82, 69, 78, 68, 32, 0, 0, 0, 0,112,125, 82,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, - 32, 1, 0, 0, 16,111,125, 82,255,127, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, - 1, 0, 0, 1, 72, 17, 30, 2, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 0, 0, 0, 0, + 66, 76, 69, 78, + 68, 69, 82, 95, 86, 50, 53, 56, 82, 69, 78, 68, 0, 0, 0, 32,191,255,232, 80, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0,250, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, + 0, 0, 1, 24,191,255,231, 72, 0, 0, 0,199, 0, 0, 0, 1, 32, 32, 32, 49, 0, 1, 0, 0, 0,250, 0, 0, 0, 1, 1, 0, + 11, 29,167, 48, 2,154,244, 32, 0, 0, 16, 0, 0, 4, 32,128, 0, 0,147,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -14,1138 +14,942 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 24, 1, 0, 0,152,101, 29, 2, - 0, 0, 0, 0,106, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 0,168, 9,244,203, 64, 0, 0, 1,106, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,248,102, 29, 2, - 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,134, 61, 3, - 0, 0, 0, 0,248, 14,187, 3, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 72,126,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 79, 20, 2, 0, 0, 0, 0, 88, 79, 20, 2, - 0, 0, 0, 0, 88, 79, 20, 2, 0, 0, 0, 0, 72, 80, 20, 2, 0, 0, 0, 0, 72,126,181, 3, 0, 0, 0, 0, 72, 80, 20, 2, - 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,248,102, 29, 2, 0, 0, 0, 0,107, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 80, 20, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72, 17, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 29, 0,126, 7, 5, 4, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, - 1, 0, 0, 0,104, 46, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 72, 70, 2, 2, 0, 0, 0, 0, 8, 52,119, 3, 0, 0, 0, 0, 8, 52,119, 3, 0, 0, 0, 0, 40, 47, 68, 2, - 0, 0, 0, 0,168, 2, 68, 2, 0, 0, 0, 0, 56, 4, 68, 2, 0, 0, 0, 0, 56, 4, 68, 2, 0, 0, 0, 0,216,254,190, 3, - 0, 0, 0, 0,152,255, 77, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, - 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,105, 29, 2, - 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 40,113, 29, 2, 0, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,216,125, 29, 2, - 0, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,106, 29, 2, - 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0,184,105, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,106, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,107, 29, 2, - 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,120,107, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,108, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6,184, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,109, 29, 2, - 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,110, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 6,124, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2,124, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104,111, 29, 2, - 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0,248,110, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,111, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,164, 2,108, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 32, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 32, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40,113, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,113, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152,113, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,114, 29, 2, 0, 0, 0, 0, 40,113, 29, 2, - 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,114, 29, 2, 0, 0, 0, 0,152,113, 29, 2, - 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,114, 29, 2, 0, 0, 0, 0, 8,114, 29, 2, - 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232,114, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,115, 29, 2, 0, 0, 0, 0,120,114, 29, 2, - 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88,115, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,115, 29, 2, 0, 0, 0, 0,232,114, 29, 2, - 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200,115, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,116, 29, 2, 0, 0, 0, 0, 88,115, 29, 2, - 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56,116, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,116, 29, 2, 0, 0, 0, 0,200,115, 29, 2, - 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168,116, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,117, 29, 2, 0, 0, 0, 0, 56,116, 29, 2, - 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,117, 29, 2, 0, 0, 0, 0,168,116, 29, 2, - 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,117, 29, 2, 0, 0, 0, 0, 24,117, 29, 2, - 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248,117, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,118, 29, 2, 0, 0, 0, 0,136,117, 29, 2, - 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104,118, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,118, 29, 2, 0, 0, 0, 0,248,117, 29, 2, - 0, 0, 0, 0,232,107, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216,118, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,119, 29, 2, 0, 0, 0, 0,104,118, 29, 2, - 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72,119, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,119, 29, 2, 0, 0, 0, 0,216,118, 29, 2, - 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184,119, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,120, 29, 2, 0, 0, 0, 0, 72,119, 29, 2, - 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40,120, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,120, 29, 2, 0, 0, 0, 0,184,119, 29, 2, - 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152,120, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,121, 29, 2, 0, 0, 0, 0, 40,120, 29, 2, - 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,121, 29, 2, 0, 0, 0, 0,152,120, 29, 2, - 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,121, 29, 2, 0, 0, 0, 0, 8,121, 29, 2, - 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232,121, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,122, 29, 2, 0, 0, 0, 0,120,121, 29, 2, - 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88,122, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,122, 29, 2, 0, 0, 0, 0,232,121, 29, 2, - 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200,122, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,123, 29, 2, 0, 0, 0, 0, 88,122, 29, 2, - 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56,123, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,123, 29, 2, 0, 0, 0, 0,200,122, 29, 2, - 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168,123, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,124, 29, 2, 0, 0, 0, 0, 56,123, 29, 2, - 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,124, 29, 2, 0, 0, 0, 0,168,123, 29, 2, - 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,124, 29, 2, 0, 0, 0, 0, 24,124, 29, 2, - 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,184,112, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248,124, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,136,124, 29, 2, - 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104,125, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,124, 29, 2, - 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,216,125, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,129, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8,107, 29, 2, 0, 0, 0, 0,184,105, 29, 2, 0, 0, 0, 0, 40,106, 29, 2, 0, 0, 0, 0,120,107, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, - 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, 40,184, 29, 2, 0, 0, 0, 0, 40,184, 29, 2, - 0, 0, 0, 0,200,126, 29, 2, 0, 0, 0, 0, 56,128, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,163,166, 3, 0, 0, 0, 0,184,135, 61, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,126, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,128, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,128, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,126, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, -129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,129, 29, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,216,125, 29, 2, 0, 0, 0, 0,232,107, 29, 2, - 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0,152,106, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 4, 4, 74, 1,184, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,152,130, 29, 2, - 0, 0, 0, 0, 8,132, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 7,180, 3, - 0, 0, 0, 0,120, 62,166, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,130, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 8,132, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 26, 0, 74, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,158, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 74, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,132, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,130, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 61,196, - 0, 0, 0, 0, 0, 0, 0, 0, 1,128,156, 67, 1, 0,207,195, 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, -157, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, -157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 74, 1,158, 1, 57, 1,158, 1, 0, 0, 56, 93,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 74, 1,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 23, 75, 3, - 0, 0, 0, 0,104,151, 78, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 23, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104, 50,185, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255, 57, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104, 50,185, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 60, 89, 3, 0, 0, 0, 0, 24, 23, 75, 3, - 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 57, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 60, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,136, 67,191, 3, 0, 0, 0, 0,104, 50,185, 3, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,204, 16, 9,244,204, 16, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 21,221, 16, 11, 21,221, 16, 11, 21,221, 16, 9,244, 44,224, 9,244, 44,224, + 9,244, 44,224, 68, 65, 84, 65, 0, 0, 0,148, 9,244,204, 16, 0, 0, 1,107, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 4,209, 70, 96, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,167, 48, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 96, 7,128, 4,128, 0, 0, 0, 0, + 0, 0, 3,238, 0, 0, 0, 0, 0, 0, 0, 0, 4,209,201,176, 9,244, 47,144, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 9,253,196,128, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 46,160, 9,244, 45,192, 9,244, 46, 48, 9,244, 46, 48, 9,244, 47,144, + 9,244, 76,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,244,204,208, 0, 0, 0,193, 0, 0, 0, 1, + 9,245, 11, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,242,109,144, 4,211,174, 48, 11, 31,150, 32, + 9,244,210,208, 9,244,211, 16, 9,245, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242,109,144, + 0, 0, 0,194, 0, 0, 0, 1, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 30, 31,240, 0, 0, 0,194, 0, 0, 0, 1, 11, 22,202, 48, 9,242,109,144, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 22,202, 48, 0, 0, 0,194, 0, 0, 0, 1, 11, 23, 73,224, 11, 30, 31,240, + 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 23, 73,224, 0, 0, 0,194, 0, 0, 0, 1, + 9,253,198, 16, 11, 22,202, 48, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,198, 16, + 0, 0, 0,194, 0, 0, 0, 1, 9,249, 51, 0, 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 9,249, 51, 0, 0, 0, 0,194, 0, 0, 0, 1, 4,211,186, 80, 9,253,198, 16, 0, 0, 0, 0, 7,126, 3,234, + 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,186, 80, 0, 0, 0,194, 0, 0, 0, 1, 12, 96, 12, 32, 9,249, 51, 0, + 0, 0, 0, 0, 6, 52, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 12, 96, 12, 32, 0, 0, 0,194, 0, 0, 0, 1, + 9,202,233,240, 4,211,186, 80, 0, 0, 0, 0, 6, 52, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,202,233,240, + 0, 0, 0,194, 0, 0, 0, 1, 11, 29,185,144, 12, 96, 12, 32, 0, 0, 0, 0, 6, 52, 1,184, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 29,185,144, 0, 0, 0,194, 0, 0, 0, 1, 9,254, 80, 80, 9,202,233,240, 0, 0, 0, 0, 7,126, 1,184, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,254, 80, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,203, 26,208, 11, 29,185,144, + 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,203, 26,208, 0, 0, 0,194, 0, 0, 0, 1, + 11, 21,219,240, 9,254, 80, 80, 0, 0, 0, 0, 6, 52, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 21,219,240, + 0, 0, 0,194, 0, 0, 0, 1, 11, 29,143, 96, 9,203, 26,208, 0, 0, 0, 0, 2,164, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 29,143, 96, 0, 0, 0,194, 0, 0, 0, 1, 9,251,242,176, 11, 21,219,240, 0, 0, 0, 0, 2,164, 3,234, + 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,251,242,176, 0, 0, 0,194, 0, 0, 0, 1, 9,253,135, 0, 11, 29,143, 96, + 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,135, 0, 0, 0, 0,194, 0, 0, 0, 1, + 11, 21,225, 32, 9,251,242,176, 0, 0, 0, 0, 2,164, 1,108, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 21,225, 32, + 0, 0, 0,194, 0, 0, 0, 1, 4,211,174, 48, 9,253,135, 0, 0, 0, 0, 0, 6, 52, 3, 32, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 4,211,174, 48, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 21,225, 32, 0, 0, 0, 0, 7,126, 3, 32, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 31,150, 32, 0, 0, 0,195, 0, 0, 0, 1, 11, 21,228, 64, 0, 0, 0, 0, + 11, 22,202, 48, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,228, 64, 0, 0, 0,195, + 0, 0, 0, 1, 11, 31,155,192, 11, 31,150, 32, 9,253,198, 16, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 31,155,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 21,220,128, 11, 21,228, 64, 9,249, 51, 0, 11, 22,202, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,220,128, 0, 0, 0,195, 0, 0, 0, 1, 9,254, 98,224, + 11, 31,155,192, 9,249, 51, 0, 9,253,198, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,254, 98,224, + 0, 0, 0,195, 0, 0, 0, 1, 11, 21,221,208, 11, 21,220,128, 4,211,186, 80, 9,242,109,144, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,221,208, 0, 0, 0,195, 0, 0, 0, 1, 9,254, 86,192, 9,254, 98,224, 4,211,186, 80, + 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,254, 86,192, 0, 0, 0,195, 0, 0, 0, 1, + 9,244,205,144, 11, 21,221,208, 9,249, 51, 0, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,244,205,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,205,208, 9,254, 86,192, 4,211,186, 80, 9,202,233,240, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,205,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206, 16, 9,244,205,144, + 11, 23, 73,224, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206, 16, 0, 0, 0,195, + 0, 0, 0, 1, 9,244,206, 80, 9,244,205,208, 9,202,233,240, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,244,206, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206,144, 9,244,206, 16, 9,242,109,144, 9,254, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206,208, + 9,244,206, 80, 9,203, 26,208, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206,208, + 0, 0, 0,195, 0, 0, 0, 1, 9,244,207, 16, 9,244,206,144, 4,211,186, 80, 9,203, 26,208, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,244,207, 80, 9,244,206,208, 9,203, 26,208, + 9,254, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207, 80, 0, 0, 0,195, 0, 0, 0, 1, + 9,244,207,144, 9,244,207, 16, 9,254, 80, 80, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,244,207,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,207,208, 9,244,207, 80, 9,203, 26,208, 11, 21,219,240, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208, 16, 9,244,207,144, + 9,253,198, 16, 11, 29,143, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208, 16, 0, 0, 0,195, + 0, 0, 0, 1, 9,244,208, 80, 9,244,207,208, 11, 29,143, 96, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,244,208, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208,144, 9,244,208, 16, 11, 21,219,240, 11, 29,143, 96, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208,208, + 9,244,208, 80, 9,251,242,176, 9,254, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208,208, + 0, 0, 0,195, 0, 0, 0, 1, 9,244,209, 16, 9,244,208,144, 9,253,135, 0, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,244,209, 80, 9,244,208,208, 9,251,242,176, + 9,253,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209, 80, 0, 0, 0,195, 0, 0, 0, 1, + 9,244,209,144, 9,244,209, 16, 9,202,233,240, 11, 21,225, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,244,209,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,209,208, 9,244,209, 80, 11, 21,225, 32, 12, 96, 12, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210, 16, 9,244,209,144, + 4,211,174, 48, 9,249, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210, 16, 0, 0, 0,195, + 0, 0, 0, 1, 9,244,210, 80, 9,244,209,208, 4,211,174, 48, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,244,210, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210,144, 9,244,210, 16, 4,211,174, 48, 11, 21,225, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210,208, + 9,244,210, 80, 9,251,242,176, 9,253,198, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210,208, + 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,210,144, 9,253,135, 0, 11, 29,143, 96, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 96, 9,244,211, 16, 0, 0, 0,197, 0, 0, 0, 1, 9,244,213,224, 0, 0, 0, 0, 9,253,198, 16, + 11, 30, 31,240, 11, 22,202, 48, 9,249, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, + 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 9,245, 10,176, 9,245, 10,176, 9,244,211,160, + 9,244,212,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,211,160, + 0, 0, 0,198, 0, 0, 0, 1, 9,244,212,192, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, + 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, + 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, + 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,244,212,192, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,211,160, 0, 0, 0, 0, + 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, + 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,213,224, 0, 0, 0,197, 0, 0, 0, 1, + 9,244,234,240, 9,244,211, 16, 4,211,186, 80, 9,202,233,240, 11, 29,185,144, 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 6, 53, + 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 1,183, 4, 4, 1, 74, 1,184, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244,233,240, 9,244,233,240, 9,244,214,112, 9,244,215,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,244,214,112, 0, 0, 0,198, 0, 0, 0, 1, 9,244,215,144, 0, 0, 0, 0, 0, 0, 0, 0, + 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 25, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 26, 1, 74, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 1,158, 0, 0, 1,183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,215,144, 0, 0, 0,198, 0, 0, 0, 1, + 0, 0, 0, 0, 9,244,214,112, 0, 0, 0, 0, 67,165, 0, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,156,128, 1, +195,207, 0, 1, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 1, 62, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 74, + 1,158, 1, 57, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 0, 0, + 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244,216,176, 9,244,232,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 9,244,216,176, 0, 0, 0,196, 0, 0, 0, 1, 9,244,218, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, + 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, + 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116, +101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,220, + 1, 57, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,218, 32, 0, 0, 0,196, 0, 0, 0, 1, + 9,244,219,144, 9,244,216,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 57, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,244,219,144, 0, 0, 0,196, 0, 0, 0, 1, 9,244,221, 0, 9,244,218, 32, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,255,111, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,136, 67,191, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24, 67, 62, 3, 0, 0, 0, 0,248, 60, 89, 3, - 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 57, 1,203, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,221, 0, + 0, 0, 0,196, 0, 0, 0, 1, 9,244,222,112, 9,244,219,144, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, 1, 57, 0,203, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 67, 62, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,136, 67,191, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,222,112, 0, 0, 0,196, 0, 0, 0, 1, 9,244,223,224, + 9,244,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 57, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 58,254, 57, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 9,244,223,224, 0, 0, 0,196, 0, 0, 0, 1, 9,244,225, 80, 9,244,222,112, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,104, 62, 68, 2, 0, 0, 0, 0, 24, 67, 62, 3, - 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, -111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 57, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,254, 34, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 62, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,200, 60, 68, 2, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,225, 80, 0, 0, 0,196, + 0, 0, 0, 1, 9,244,226,192, 9,244,223,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1, 57, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10,254, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,226,192, 0, 0, 0,196, 0, 0, 0, 1, 9,244,228, 48, 9,244,225, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,104, 68, 2, 0, 0, 0, 0,104, 62, 68, 2, - 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 57, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,104, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104,117, 1, 2, 0, 0, 0, 0, 24,103, 68, 2, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 9,244,228, 48, 0, 0, 0,196, 0, 0, 0, 1, 9,244,229,160, 9,244,226,192, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, + 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,218, + 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,218,253, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,229,160, 0, 0, 0,196, 0, 0, 0, 1, + 9,244,231, 16, 9,244,228, 48, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104,117, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,119, 1, 2, 0, 0, 0, 0,184,104, 68, 2, - 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 57, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,119, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104,151, 78, 3, 0, 0, 0, 0,104,117, 1, 2, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,244,231, 16, 0, 0, 0,196, 0, 0, 0, 1, 9,244,232,128, 9,244,229,160, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,253, 57, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,253, 40, 1, 57, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104,151, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,119, 1, 2, - 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 57, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 72,128, 81, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,168,129, 29, 2, - 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0,232,107, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 15, 15, 52, 6, -124, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,136,138, 29, 2, 0, 0, 0, 0,136,138, 29, 2, - 0, 0, 0, 0,168,135, 29, 2, 0, 0, 0, 0, 24,137, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,222,176, 3, 0, 0, 0, 0, 72,166,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,135, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,137, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,198, 68, 0, 0,200, 65, 0, 96,198, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 52, 6, 26, 0, 52, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,137, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,135, 29, 2, 0, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 51, 6, 0, 0, 18, 0, 0, 0, 97, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 52, 6, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,138, 29, 2, - 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,146, 29, 2, - 0, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,200,108, 29, 2, 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0,184,112, 29, 2, - 0, 0, 0, 0, 56,109, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,185, 1, 0, 0, - 31, 3, 0, 0, 3, 3, 74, 1,103, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,209, 2, 2, 0, 0, 0, 0,120,143, 29, 2, - 0, 0, 0, 0,120,143, 29, 2, 0, 0, 0, 0,152,140, 29, 2, 0, 0, 0, 0, 8,142, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 68, 2, 0, 0, 0, 0, 56,177, 79, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,140, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 8,142, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 26, 0, 74, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 6, 3, 0, 0, - 31, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,232,128, + 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,231, 16, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,142, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,140, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, 0,128,157,195, - 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 18, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 74, 1, 77, 1, 57, 1, - 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,185, 1, 0, 0, - 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, 1, 57, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 24, 1, 0, 0,120,143, 29, 2, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 9,244,233,240, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 69, 62, 3, - 0, 0, 0, 0,136, 69, 62, 3, 0, 0, 0, 0,216,144, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216,144, 29, 2, 0, 0, 0, 0,220, 0, 0, 0, - 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56,145, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 56,145, 29, 2, - 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,248,110, 29, 2, - 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,125, 0, 0, 0,233, 3, 0, 0, 1, 1,143, 3,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, - 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 88,147, 29, 2, 0, 0, 0, 0, 24,153, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,120, 76, 3, 0, 0, 0, 0,104,176,176, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,147, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,148, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,192, 99, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 99, 68, - 0, 0,200, 65, 0,128, 99, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,143, 3, 26, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,148, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,150, 29, 2, - 0, 0, 0, 0, 88,147, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, -165, 2, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 83, 3, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,150, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,151, 29, 2, - 0, 0, 0, 0,200,148, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,151, 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,151, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,153, 29, 2, - 0, 0, 0, 0, 56,150, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, - 51, 6, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,153, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,151, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,151, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 3, 83, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,154, 29, 2, - 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,136,154, 29, 2, 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,222,149, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, -123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188, - 25, 36,134, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 8,240,191, 62, -130,116, 85, 63,112,191, 70,188, 0, 0,224,180,179,172,175,190,143, 90, 41, 62,193,177, 67, 63, 0, 0, 8, 52,207,107,117,194, - 80,204,216, 65, 41,156, 5,194,136,247,159,192,121, 62,114, 66,213,253,213,193, 95,225, 3, 66,236, 7,160, 64, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, -123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188, - 25, 36,134, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 93,106, 16, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,106, 16, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93,106, 16, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,116,139, 3, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0, 56,158, 29, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,104,111, 29, 2, - 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,125, 0, 0, 0,107, 1, 0, 0, 2, 2,164, 2,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226, 2, 2, - 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,168,160, 29, 2, 0, 0, 0, 0,248,164, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,165,176, 3, 0, 0, 0, 0, 8,223, 78, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,160, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,162, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, - 0, 0,200, 65, 0,192, 40, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,164, 2, 26, 0,164, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,229, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,162, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,163, 29, 2, - 0, 0, 0, 0,168,160, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0, 0, 67,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, - 6, 0,217, 0,213, 0,200, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 0, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,213, 0, - 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,234,240, + 0, 0, 0,197, 0, 0, 0, 1, 9,244,238,176, 9,244,213,224, 9,242,109,144, 9,254, 80, 80, 9,203, 26,208, 4,211,186, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0,123, 15, 15, 6, 52, 0,124, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9,244,237,192, 9,244,237,192, 9,244,235,128, 9,244,236,160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,235,128, 0, 0, 0,198, 0, 0, 0, 1, 9,244,236,160, + 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,198,128, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 25, 68,198, 96, 0, 65,200, 0, 0, 68,198, 96, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 52, 0, 26, 6, 52, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,163, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,164, 29, 2, - 0, 0, 0, 0, 24,162, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,236,160, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,235,128,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, +192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 18, 0, 0, 0, 97, + 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, + 0, 4, 4, 0, 0, 8, 6, 52, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 51, 0, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,188, 9,244,237,192, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, -163, 2, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,230, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,164, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,163, 29, 2, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 0, -202, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,202, 1, 0, 0, 18, 0, 0, 0,212, 0, 0, 0,111, 18,131, 58, -111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,203, 1,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, -163, 2, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 1,213, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,228, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,238,176, 0, 0, 0,197, + 0, 0, 0, 1, 9,244,243,176, 9,244,234,240, 9,202,233,240, 11, 21,225, 32, 4,211,174, 48, 11, 29,185,144, 0, 0, 0, 0, + 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 1,185, 0, 0, 3, 31, 3, 3, 1, 74, 1,103, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9,244,241,128, 9,244,241,128, 9,244,239, 64, 9,244,240, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,239, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,244,240, 96, 0, 0, 0, 0, + 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 25, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 26, 1, 74, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 6, 0, 0, 3, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,240, 96, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 9,244,239, 64, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,156,128, 0,195,157,128, 0, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 18, 0, 0, 1, 76, 0, 0, 0, 0, + 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 18, 0, 0, 1, 76, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, + 0, 6, 1, 74, 1, 77, 1, 57, 1, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, + 0, 0, 1,185, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,244, 9,244,241,128, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,242,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 9,244,242,160, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, + 9,244,242,224, 68, 65, 84, 65, 0, 0, 0,168, 9,244,242,224, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 1, + 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 21, 0, 1, + 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, 2,174, 10, 32, + 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, 0, 1, 0, 1, + 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, 0, 0, 0, 0, + 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, 2,154,244, 32, + 68, 65, 84, 65, 0, 0, 0, 96, 9,244,243,176, 0, 0, 0,197, 0, 0, 0, 1, 9,244,251, 0, 9,244,238,176, 11, 21,219,240, + 11, 29,143, 96, 12, 96, 12, 32, 9,203, 26,208, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,125, 0, 0, 3,233, + 1, 1, 3,143, 3,109, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,249,224, 9,244,249,224, 9,244,244, 64, + 9,244,248,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,244, 64, + 0, 0, 0,198, 0, 0, 0, 1, 9,244,245, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 68, 99,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 0, 0, 0, 0, 0, 0, 0, 25, + 68, 99,128, 0, 65,200, 0, 0, 68, 99,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, + 0, 4, 0, 12, 0, 10, 3,143, 0, 26, 3,143, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, + 0, 0, 6, 51, 0, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 0, 26, + 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,244,245, 96, 0, 0, 0,198, 0, 0, 0, 1, 9,244,246,128, 9,244,244, 64, 0, 0, 0, 0, + 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, + 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 2,165, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 83, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,246,128, 0, 0, 0,198, 0, 0, 0, 1, + 9,244,247,160, 9,244,245, 96, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231, +194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, + 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,151, + 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 9,244,247,160, 0, 0, 0,198, 0, 0, 0, 1, 9,244,248,192, 9,244,246,128, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, + 0, 0, 3,147, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, + 0, 0, 3,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, + 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 3,148, 0,163, 3,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 51, 0, 0, 6, 51, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,248,192, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,247,160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 3, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,199,250, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,199,250, 32, 0, 0, 0,156, + 0, 0, 0, 1, 63,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,149,222,233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 76,215, 74, + 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, + 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, + 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, + 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, + 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, + 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, + 65,111,211,214, 62,191,240, 8, 63, 85,116,130,188, 70,191,112,180,224, 0, 0,190,175,172,179, 62, 41, 90,143, 63, 67,177,193, + 52, 8, 0, 0,194,117,107,207, 65,216,204, 80,194, 5,156, 41,192,159,247,136, 66,114, 62,121,193,213,253,213, 66, 3,225, 95, + 64,160, 7,236, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, + 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, + 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, + 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, + 65,111,211,214, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 3,139,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, 66,137,152, 86, + 66,126, 27,116, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,244,249,224, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,250, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,251, 0, 0, 0, 0,197, 0, 0, 0, 1, + 9,245, 1,144, 9,244,243,176, 9,254, 80, 80, 9,251,242,176, 9,253,135, 0, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2,163, 0, 0, 0,125, 0, 0, 1,107, 2, 2, 2,164, 0,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9,245, 0, 16, 9,245, 0, 16, 9,244,251,144, 9,244,254,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,244,251,144, 0, 0, 0,198, 0, 0, 0, 1, 9,244,252,176, 0, 0, 0, 0, 0, 0, 0, 0, + 68,119, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2,163, 0, 0, 0, 0, 0, 0, 0, 25, 68, 40,192, 0, 65,200, 0, 0, 68, 40,192, 0, 65,200, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,164, 0, 26, 2,164, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2,164, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,252,176, 0, 0, 0,198, 0, 0, 0, 1, + 9,244,253,208, 9,244,251,144, 0, 0, 0, 0, 67, 72, 0, 0,193,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0, +195, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0,199, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 10, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, + 0,213, 0,200, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,151, + 0, 0, 1,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,213, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,167, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,168,167, 29, 2, 0, 0, 0, 0, 19, 1, 0, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 9,244,253,208, 0, 0, 0,198, 0, 0, 0, 1, 9,244,254,240, 9,244,252,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 8,107, 29, 2, - 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,109, 1, 0, 0,233, 3, 0, 0, 12, 12,164, 2,125, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 22, 3, 2, - 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0, 72,169, 29, 2, 0, 0, 0, 0, 40,172, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 86, 78, 3, 0, 0, 0, 0, 24,153, 74, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,169, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,170, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,124, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, - 0, 0,200, 65, 0,192, 40, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,164, 2, 26, 0,164, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,109, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 24, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,170, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,172, 29, 2, - 0, 0, 0, 0, 72,169, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0, 64, 20,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, - 6, 0,200, 0, 99, 2,200, 0, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0,135, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 99, 2, - 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 25, 3, 2, + 0, 0, 2,163, 0, 0, 2,163, 0, 0, 0,151, 0, 0, 1,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,254,240, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,253,208, +193, 16, 0, 0, 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, 0, 0, 0, 0, 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 1,202, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 18, 0, 0, 1,202, 0, 0, 0, 18, 0, 0, 0,212, 58,131, 18,111, 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1,203, 0,213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 2,163, 0, 0, 0,151, 0, 0, 1,107, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,203, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,208, 9,245, 0, 16, 0, 0, 0,161, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,172, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,170, 29, 2, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,104, 68, 0, 64, 20,196, 0, 0, 0, 0,203, 1, 0, 0,220, 1, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, -202, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 1, 0, 0, 18, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, - 4, 0,220, 1, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, -163, 2, 0, 0,135, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1, 99, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 23, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 1, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 9,245, 1, 16, + 0, 0, 1, 19, 0, 0, 0, 1, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,173, 29, 2, 0, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 1,144, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 6,192, 9,244,251, 0, 9,251,242,176, + 9,253,198, 16, 11, 29,143, 96, 9,253,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 1,109, 0, 0, 3,233, + 12, 12, 2,164, 2,125, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 5,128, 9,245, 5,128, 9,245, 2, 32, + 9,245, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 2, 32, + 0, 0, 0,198, 0, 0, 0, 1, 9,245, 3, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68,124,192, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 0, 0, 0, 0, 0, 25, + 68, 40,192, 0, 65,200, 0, 0, 68, 40,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, + 0, 4, 0, 12, 0, 10, 2,164, 0, 26, 2,164, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2,163, 0, 0, 1,109, 0, 0, 1,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,164, 0, 26, + 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,245, 3, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 4, 96, 9,245, 2, 32, 0, 0, 0, 0, + 67, 55, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,196, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 4, 8, 0, 0, 0, 2, 3, 3, 0, 0, 4, 2, 0, 6, 0,200, 2, 99, 0,200, 2, 81, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 1,135, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 2, 99, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 4, 96, 0, 0, 0,198, 0, 0, 0, 1, + 0, 0, 0, 0, 9,245, 3, 64,193, 32, 0, 0, 68,104, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,193, 32, 0, 0, 68,104, 0, 0, +196, 20, 64, 0, 0, 0, 0, 0, 0, 0, 1,203, 0, 0, 1,220, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 1,202, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,202, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 0, 0, + 72,146,124, 0, 70, 28, 64, 0, 60, 35,215, 10, 66, 72, 0, 0, 0, 74, 0, 0, 0, 0, 2, 0, 0, 0, 4, 2, 0, 4, 1,220, + 2, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 2,163, 0, 0, 1,135, + 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,220, 2, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 24, + 9,245, 5,128, 0, 0, 1, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,168, 29, 2, - 0, 0, 0, 0, 72,112, 29, 2, 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0,120,107, 29, 2, 0, 0, 0, 0,184,112, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0,233, 3, 0, 0, 1, 1, 74, 1, -201, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,168,182, 29, 2, 0, 0, 0, 0,168,182, 29, 2, - 0, 0, 0, 0, 24,176, 29, 2, 0, 0, 0, 0,136,177, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 44,186, 3, 0, 0, 0, 0,120,243,187, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,176, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,177, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0, 33, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,177, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,178, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,248,178, 29, 2, - 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 57,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 33,105, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, -228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, -151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, -241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, -255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,194, 70,158, 62,240,233,167, 62, 32,206,159,187, 0, 0,168,180, 34,111,178,189, -170,173,175, 61,170,177,123, 62, 0, 0, 8, 51,211,120, 21,194,144, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66, -196,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, -241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, -255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, -100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,168,182, 29, 2, 0, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 40,104, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110, -103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,185, 29, 2, - 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,248,191, 29, 2, 0, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0,152,201, 29, 2, - 0, 0, 0, 0, 8,234, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,186, 29, 2, - 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 72,186, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,187, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,188, 29, 2, - 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,188, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,190, 29, 2, - 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0,200,189, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,190, 29, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248,191, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,192, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104,192, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,192, 29, 2, 0, 0, 0, 0,248,191, 29, 2, - 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216,192, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,193, 29, 2, 0, 0, 0, 0,104,192, 29, 2, - 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72,193, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,193, 29, 2, 0, 0, 0, 0,216,192, 29, 2, - 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184,193, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,194, 29, 2, 0, 0, 0, 0, 72,193, 29, 2, - 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40,194, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,194, 29, 2, 0, 0, 0, 0,184,193, 29, 2, - 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152,194, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,195, 29, 2, 0, 0, 0, 0, 40,194, 29, 2, - 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,195, 29, 2, 0, 0, 0, 0,152,194, 29, 2, - 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,195, 29, 2, 0, 0, 0, 0, 8,195, 29, 2, - 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232,195, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,196, 29, 2, 0, 0, 0, 0,120,195, 29, 2, - 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88,196, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,196, 29, 2, 0, 0, 0, 0,232,195, 29, 2, - 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200,196, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,197, 29, 2, 0, 0, 0, 0, 88,196, 29, 2, - 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56,197, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,197, 29, 2, 0, 0, 0, 0,200,196, 29, 2, - 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168,197, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,198, 29, 2, 0, 0, 0, 0, 56,197, 29, 2, - 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,198, 29, 2, 0, 0, 0, 0,168,197, 29, 2, - 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,198, 29, 2, 0, 0, 0, 0, 24,198, 29, 2, - 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248,198, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,199, 29, 2, 0, 0, 0, 0,136,198, 29, 2, - 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104,199, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,199, 29, 2, 0, 0, 0, 0,248,198, 29, 2, - 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216,199, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,200, 29, 2, 0, 0, 0, 0,104,199, 29, 2, - 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72,200, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,200, 29, 2, 0, 0, 0, 0,216,199, 29, 2, - 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184,200, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0, 72,200, 29, 2, - 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40,201, 29, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,200, 29, 2, - 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,152,201, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,205, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 72,186, 29, 2, 0, 0, 0, 0,184,186, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, - 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,184, 16, 30, 2, 0, 0, 0, 0,184, 16, 30, 2, - 0, 0, 0, 0,136,202, 29, 2, 0, 0, 0, 0,248,203, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248, 45,166, 3, 0, 0, 0, 0, 88,108,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,202, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,203, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,203, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,202, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, -129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,205, 29, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0,152,201, 29, 2, 0, 0, 0, 0,136,191, 29, 2, - 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, 0, 0, 0, 0, 40,187, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0,168,212, 2, 2, 0, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0, 88,206, 29, 2, - 0, 0, 0, 0,200,207, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 26, 89, 3, - 0, 0, 0, 0, 56,243, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,206, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,200,207, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,207, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,206, 29, 2, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, - 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56,209, 29, 2, 0, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,104,205, 29, 2, - 0, 0, 0, 0,120,188, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, 0, 0, 0, 0, 8,188, 29, 2, 0, 0, 0, 0,232,188, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1, -141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0, 40,214, 29, 2, 0, 0, 0, 0, 40,214, 29, 2, - 0, 0, 0, 0, 72,211, 29, 2, 0, 0, 0, 0,184,212, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 64, 89, 3, 0, 0, 0, 0, 88, 74, 78, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,211, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,212, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,212, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,211, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, - 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0,248,189,176, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 88, 75, 3, 0, 0, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 88, 75, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,205,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,205,182, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 84, 75, 3, - 0, 0, 0, 0, 88, 88, 75, 3, 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, - 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 84, 75, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 71, 1, 2, 0, 0, 0, 0, 8,205,182, 3, 0, 0, 0, 0,152, 56,190, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 71, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 94, 68, 2, - 0, 0, 0, 0, 88, 84, 75, 3, 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, - 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 6,192, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 1,144, + 11, 21,225, 32, 12, 96, 12, 32, 9,249, 51, 0, 4,211,174, 48, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, + 0, 0, 3,233, 1, 1, 1, 74, 0,201, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 9,144, 9,245, 9,144, + 9,245, 7, 80, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 9,245, 7, 80, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 64, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, + 0, 0, 0, 23, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 24, 1, 74, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 94, 68, 2, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,132, 68, 2, 0, 0, 0, 0,248, 71, 1, 2, 0, 0, 0, 0,136, 62,190, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 8,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 7, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,132, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72, 55, 82, 3, - 0, 0, 0, 0,248, 94, 68, 2, 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, -108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, - 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3,233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 55, 82, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56,210,184, 3, 0, 0, 0, 0,136,132, 68, 2, 0, 0, 0, 0,200, 74,190, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,199,254, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,199,254, 32, 0, 0, 0,156, + 0, 0, 0, 1, 64, 13,255, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,105, 33, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, + 0, 0, 0, 0, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, + 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, + 63,128, 0, 0, 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, + 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, + 63,128, 0, 0, 63,194,201, 48,191,147,250, 0,191, 39,250,244,191, 39,165, 8, 63,206,164,191, 63,145,176,241, 63, 28,164,180, + 63, 28, 84,149,188,196,153,224, 64, 80,187, 20,190,228,108, 8,190,227,247, 50,191, 64, 21,127,191,175,162,255, 65, 49, 49,216, + 65, 52, 9,152, 62,158, 70,194, 62,167,233,240,187,159,206, 32,180,168, 0, 0,189,178,111, 34, 61,175,173,170, 62,123,177,170, + 51, 8, 0, 0,194, 21,120,211, 66, 2, 5,144,193,213,136, 9,192,159,214,193, 66, 19, 38,219,193,255,173,196, 65,210,101,157, + 64,160, 40,173, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, + 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, + 63,128, 0, 0, 63,194,201, 48,191,147,250, 0,191, 39,250,244,191, 39,165, 8, 63,206,164,191, 63,145,176,241, 63, 28,164,180, + 63, 28, 84,149,188,196,153,224, 64, 80,187, 20,190,228,108, 8,190,227,247, 50,191, 64, 21,127,191,175,162,255, 65, 49, 49,216, + 65, 52, 9,152, 64, 19,137,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,137,126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,137,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63, 72, 22,241,190,246,162, 78,190, 90, 8, 44,190,171, 35, 3, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 51, 4,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,255,255, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,210,184, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,178, 61, 3, - 0, 0, 0, 0, 72, 55, 82, 3, 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, -111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, - 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 63,128, 0, 0, 66, 65,133,190, 66, 90,212,100, + 66,118,183, 31, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,245, 9,144, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,250, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,245, 11, 16, 0, 0, 0,193, 0, 0, 0, 1, + 11, 29,167, 48, 9,244,204,208, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, + 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 11,208, 9,245, 15, 16, 9,245, 15, 80, + 9,245, 20,144, 9,245, 20,208, 11, 30, 87,176, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 11,208, + 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 9,245, 12, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 80, 9,245, 11,208, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12,144, 9,245, 12, 16, + 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,144, 0, 0, 0,194, 0, 0, 0, 1, + 9,245, 12,208, 9,245, 12, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,208, + 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 16, 9,245, 12,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 9,245, 13, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 80, 9,245, 12,208, 0, 0, 0, 0, 7,126, 3,234, + 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13,144, 9,245, 13, 16, + 0, 0, 0, 0, 6, 32, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,144, 0, 0, 0,194, 0, 0, 0, 1, + 9,245, 13,208, 9,245, 13, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,208, + 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 16, 9,245, 13,144, 0, 0, 0, 0, 6, 32, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 9,245, 14, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 1,140, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14,144, 9,245, 14, 16, + 0, 0, 0, 0, 6, 32, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,144, 0, 0, 0,194, 0, 0, 0, 1, + 9,245, 14,208, 9,245, 14, 80, 0, 0, 0, 0, 3, 4, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,208, + 0, 0, 0,194, 0, 0, 0, 1, 9,245, 15, 16, 9,245, 14,144, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 9,245, 15, 16, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 14,208, 0, 0, 0, 0, 6, 32, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 15,144, 0, 0, 0, 0, + 9,245, 12, 16, 9,245, 12, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15,144, 0, 0, 0,195, + 0, 0, 0, 1, 9,245, 15,208, 9,245, 15, 80, 9,245, 12, 16, 9,245, 12,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,245, 15,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 16, 9,245, 15,144, 9,245, 12, 80, 9,245, 13, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 80, + 9,245, 15,208, 9,245, 12,208, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 80, + 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,144, 9,245, 16, 16, 9,245, 12,144, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,208, 9,245, 16, 80, 9,245, 13, 80, + 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,208, 0, 0, 0,195, 0, 0, 0, 1, + 9,245, 17, 16, 9,245, 16,144, 9,245, 13, 16, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,245, 17, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17, 80, 9,245, 16,208, 9,245, 12,208, 9,245, 13,208, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17,144, 9,245, 17, 16, + 9,245, 13, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17,144, 0, 0, 0,195, + 0, 0, 0, 1, 9,245, 17,208, 9,245, 17, 80, 9,245, 13, 16, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,245, 17,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 16, 9,245, 17,144, 9,245, 12,208, 9,245, 14, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 80, + 9,245, 17,208, 9,245, 13,208, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 80, + 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,144, 9,245, 18, 16, 9,245, 14, 16, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,208, 9,245, 18, 80, 9,245, 14, 16, + 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,208, 0, 0, 0,195, 0, 0, 0, 1, + 9,245, 19, 16, 9,245, 18,144, 9,245, 14, 80, 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,245, 19, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19, 80, 9,245, 18,208, 9,245, 11,208, 9,245, 14,208, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19,144, 9,245, 19, 16, + 9,245, 14,208, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19,144, 0, 0, 0,195, + 0, 0, 0, 1, 9,245, 19,208, 9,245, 19, 80, 9,245, 12,144, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,245, 19,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 16, 9,245, 19,144, 9,245, 13, 80, 9,245, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 80, + 9,245, 19,208, 9,245, 14,144, 9,245, 14,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 80, + 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20,144, 9,245, 20, 16, 9,245, 14, 80, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20,144, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 20, 80, 9,245, 11,208, + 9,245, 14, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 20,208, 0, 0, 0,197, 0, 0, 0, 1, + 9,245, 23,160, 0, 0, 0, 0, 9,245, 12,208, 9,245, 12, 16, 9,245, 12, 80, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 9,245, 55,192, 9,245, 55,192, 9,245, 21, 96, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,245, 21, 96, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, + 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 22,128, 0, 0, 0,198, 0, 0, 0, 1, + 0, 0, 0, 0, 9,245, 21, 96, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255, +192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, + 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, + 9,245, 23,160, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 27, 96, 9,245, 20,208, 9,245, 15, 16, 9,245, 13, 80, 9,245, 13,144, + 9,245, 12,144, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 1, 94, 0, 92, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 26,112, 9,245, 26,112, 9,245, 24, 48, 9,245, 25, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 24, 48, 0, 0, 0,198, 0, 0, 0, 1, + 9,245, 25, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68,115,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, + 67,174,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, + 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 9,245, 25, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 24, 48,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, + 66, 72, 0, 0,193, 74, 51, 50, 67,131,209,154, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 18, + 0, 0, 0, 65, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, + 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 1, 94, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 94, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,188, 9,245, 26,112, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 27, 96, + 0, 0, 0,197, 0, 0, 0, 1, 9,245, 48,112, 9,245, 23,160, 9,245, 13, 80, 9,245, 13,208, 9,245, 13, 16, 9,245, 13,144, + 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 3,233, 4, 4, 1, 94, 3,141, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 47,112, 9,245, 47,112, 9,245, 27,240, 9,245, 29, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 27,240, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 29, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, 67,174,128, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, 0, 26, 1, 94, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 3,208, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 29, 16, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 27,240, 0, 0, 0, 0, 67,174,128, 0,196, 92,128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,166,127,255,196, 92,191,255, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 1, 94, 0, 0, 0, 0, 0, 0, 3,114, + 0, 0, 0, 0, 0, 0, 1, 82, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, 0, 0, 0, 3,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, + 0, 18, 4, 0, 0, 6, 1, 94, 3,115, 1, 77, 3,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, + 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 3,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 30, 48, 9,245, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 30, 48, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 31,160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,178, 61, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168,107, 82, 3, 0, 0, 0, 0, 56,210,184, 3, 0, 0, 0, 0,152, 79,190, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,255,220, 1, 76, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,107, 82, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,104, 10,180, 3, - 0, 0, 0, 0,200,178, 61, 3, 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, - 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 31,160, + 0, 0, 0,196, 0, 0, 0, 1, 9,245, 33, 16, 9,245, 30, 48, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 10,180, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0,168,107, 82, 3, 0, 0, 0, 0,200, 85,190, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 76, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 33, 16, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 34,128, + 9,245, 31,160, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 71, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 10,180, 3, 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, - 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 9,245, 34,128, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 35,240, 9,245, 33, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,214, 29, 2, - 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,254,140, 1, 76, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 35,240, 0, 0, 0,196, + 0, 0, 0, 1, 9,245, 37, 96, 9,245, 34,128, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 76, 0, 58, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,152,181, 78, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,228, 29, 2, - 0, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, - 0, 0, 0, 0,136,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, -139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0, 56,227, 29, 2, - 0, 0, 0, 0, 56,227, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, 0, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,137, 82, 3, 0, 0, 0, 0,152, 19,181, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 88,216, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,217, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 37, 96, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 38,208, 9,245, 35,240, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,200,217, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,219, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 56,219, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,220, 29, 2, 0, 0, 0, 0,200,217, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,220, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 56,219, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0, -112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 24,222, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,220, 29, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 9,245, 38,208, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 40, 64, 9,245, 37, 96, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, + 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 40, 64, 0, 0, 0,196, 0, 0, 0, 1, + 9,245, 41,176, 9,245, 38,208, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,223, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 3, 0, 0,136,223, 29, 2, 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, - 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, - 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, - 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, - 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, - 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193, -193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, - 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, - 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, - 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 41,176, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 43, 32, 9,245, 40, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,253,218, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 43, 32, + 0, 0, 0,196, 0, 0, 0, 1, 9,245, 44,144, 9,245, 41,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 76, 0, 0, + 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, - 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 56,227, 29, 2, - 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 44,144, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 46, 0, + 9,245, 43, 32, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,228, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,234, 29, 2, - 0, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, - 0, 0, 0, 0, 56,190, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0, -233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,247, 2, 2, 0, 0, 0, 0,136,232, 29, 2, - 0, 0, 0, 0,136,232, 29, 2, 0, 0, 0, 0,168,229, 29, 2, 0, 0, 0, 0, 24,231, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,128,181, 3, 0, 0, 0, 0, 40,155,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,229, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,231, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0, -166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,249, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 24,231, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,229, 29, 2, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68, 96,240,187, 64, - 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, - 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0, -233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,248, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1, 76, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 1, 0, 0,136,232, 29, 2, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,234, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,228, 29, 2, 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,168,190, 29, 2, - 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, -139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,238, 2, 2, 0, 0, 0, 0, 72,239, 29, 2, - 0, 0, 0, 0, 72,239, 29, 2, 0, 0, 0, 0,248,234, 29, 2, 0, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176,178, 3, 0, 0, 0, 0,216,134,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,248,234, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104,236, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65, 0,192, 64, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3, 26, 0, 4, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,246, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 64, 9,245, 46, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 44,144, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,104,236, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0,248,234, 29, 2, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,253, 16, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,240, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 9,245, 47,112, 0, 0, 0,162, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,216,237, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,236, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, - 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 96, 9,245, 48,112, 0, 0, 0,197, 0, 0, 0, 1, 11, 30, 86, 0, 9,245, 27, 96, 9,245, 14,208, 9,245, 14,144, + 9,245, 14, 80, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 1,139, 1, 1, 3, 27, + 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 54,160, 9,245, 54,160, 9,245, 49, 0, 9,245, 53,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 49, 0, 0, 0, 0,198, + 0, 0, 0, 1, 9,245, 50, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 68, 70,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 25, 68, 70,128, 0, + 65,200, 0, 0, 68, 70,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, + 0, 10, 3, 27, 0, 26, 3, 27, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 0, 26, 0, 0, 0, 1, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 33, 0, 0, 72,239, 29, 2, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0,248, 9,245, 50, 32, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 51, 64, 9,245, 49, 0, 0, 0, 0, 0, 67, 15, 0, 0, +196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, + 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, + 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, + 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 3, 5, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1,114, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 51, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 52, 96, + 9,245, 50, 32, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, + 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, + 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 0, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 52, 96, + 0, 0, 0,198, 0, 0, 0, 1, 9,245, 53,128, 9,245, 51, 64, 0, 0, 0, 0, 67, 35, 0, 0,196,108,192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 35, 0, 0,195,184, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 1,129, + 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 1,129, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, + 0, 18, 0, 0, 0, 6, 0,180, 1,130, 0,163, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, + 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 9,245, 53,128, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 52, 96, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2,205,220, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,205,220, 32, 0, 0, 0,156, 0, 0, 0, 1, + 63,230,101, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119,133, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, 0, 0, 0, 0, + 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, +188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, + 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, 0, 0, 0, 0, + 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, 63,128, 0, 0, + 63,158, 6, 42,191,157, 28, 99,191, 39,250,244,191, 39,165, 8, 63,167,164,211, 63,154,175, 55, 63, 28,164,180, 63, 28, 84,149, +188,159,127, 39, 64, 93,157,135,190,228,108, 8,190,227,247, 50,191, 27,213, 4,191,186,122,122, 65, 49, 49,216, 65, 52, 9,152, + 62,195, 25, 25, 62,206,249,176,187,196,238,128,179,192, 0, 0,189,168, 15, 55, 61,165,118,201, 62,109, 15,152, 51,152, 0, 0, +194, 21,120,211, 66, 2, 5,144,193,213,136, 6,192,159,214,193, 66, 19, 38,219,193,255,173,196, 65,210,101,154, 64,160, 40,173, + 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, +188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, + 63,158, 6, 42,191,157, 28, 99,191, 39,250,244,191, 39,165, 8, 63,167,164,211, 63,154,175, 55, 63, 28,164,180, 63, 28, 84,149, +188,159,127, 39, 64, 93,157,135,190,228,108, 8,190,227,247, 50,191, 27,213, 4,191,186,122,122, 65, 49, 49,216, 65, 52, 9,152, + 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63, 72, 22,241,190,246,162, 78,190, 90, 8, 44,190,171, 35, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, + 58,183, 49, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 55, 62, 92, +190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, 66, 65,133,190, 66, 90,212,100, 66,118,183, 31, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,245, 54,160, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, + 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,250, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 30, 86, 0, 0, 0, 0,197, 0, 0, 0, 1, 11, 30, 87,176, + 9,245, 48,112, 9,245, 14, 16, 9,245, 12,208, 9,245, 13,208, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, + 0, 0, 1,141, 0, 0, 3,233, 16, 16, 6, 32, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,189, 64, + 11, 29,189, 64, 11, 30, 86,144, 11, 29,188, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 30, 86,144, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,188, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 66,128, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,196, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, + 0, 0, 0, 0, 0, 0, 0, 25, 68,195,224, 0, 65,200, 0, 0, 68,195,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 32, 0, 26, 6, 32, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 32, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,188, 32, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, + 11, 30, 86,144,193, 32, 0, 0, 68, 0, 0, 0,193, 32, 0, 0, 68, 0, 0, 0,195,217,195,128, 68,108,225,192, 64,187,240, 96, + 67,253, 16, 62, 0, 0, 6, 15, 0, 0, 6, 32, 0, 0, 0, 18, 0, 0, 2, 66, 0, 0, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 14, 0, 0, 0, 18, 0, 0, 2, 66, 63,128, 0, 0, 63,128, 0, 0, 70,250, 0, 0, + 70,250, 0, 0, 61,184, 81,236, 64, 19,215, 10, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 6, 32, 2, 67, 6, 15, + 2, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 1,167, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,252, 11, 29,189, 64, + 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 97,206, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 30, 87,176, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 30, 86, 0, + 9,245, 11,208, 9,245, 14, 16, 9,245, 14,144, 9,245, 14,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, + 0, 0, 1,139, 6, 6, 3, 4, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,154, 32, 2,217,154, 32, + 11, 29,190,112, 11, 29,166, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 29,190,112, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,164,240, 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 68, 65, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 25, 68, 64,192, 0, 65,200, 0, 0, 68, 64,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3, 4, 0, 26, 3, 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,164,240, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,166, 16, 11, 29,190,112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,166, 16, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,164,240, 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191,129, 0, 0, + 64, 0,128, 0,190,100, 0, 0, 63,156,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, + 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 32,248, 2,217,154, 32, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1274,8 +1078,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1404,3093 +1208,2353 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0,184,184, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 18, 30, 2, - 0, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0,136, 31, 30, 2, - 0, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72, 19, 30, 2, - 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 19, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8, 21, 30, 2, - 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 21, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 64, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200, 22, 30, 2, - 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 23, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 6,116, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0,168, 23, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0, 24, 24, 30, 2, 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,136, 24, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0,248, 24, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,104, 25, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0,216, 25, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0, 72, 26, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,184, 26, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0, 40, 27, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,152, 27, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0, 8, 28, 30, 2, 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0,120, 28, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,232, 28, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0, 88, 29, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,200, 29, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0, 56, 30, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 31, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 30, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136, 31, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,216, 18, 30, 2, - 0, 0, 0, 0, 72, 19, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,216, 3, 3, 2, - 0, 0, 0, 0, 40,243, 30, 2, 0, 0, 0, 0, 40,243, 30, 2, 0, 0, 0, 0,120, 32, 30, 2, 0, 0, 0, 0,232, 33, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 17,185, 3, 0, 0, 0, 0, 24, 2,190, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 32, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232, 33, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, - 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, - 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, - 0, 0, 0, 0,248,168,180, 3, 0, 0, 0, 0,248,168,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,225,176, 3, 0, 0, 0, 0,200,180, 78, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 33, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 32, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,111, 69, 0, 0, 0, 0, 0, 0, 0, 64,240, 14, 0, 0, 1, 15, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,239, 14, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, - 10, 0, 1, 15, 2, 0,240, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104, 40, 30, 2, - 0, 0, 0, 0,136, 31, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, - 0, 0, 0, 0,184, 19, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, - 63, 3, 0, 0, 4, 4, 58, 1, 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,120,255, 2, 2, 0, 0, 0, 0, 40, 39, 30, 2, - 0, 0, 0, 0, 40, 39, 30, 2, 0, 0, 0, 0, 72, 36, 30, 2, 0, 0, 0, 0,184, 37, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,146, 79, 3, 0, 0, 0, 0,136,139, 68, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 72, 36, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184, 37, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,156, 67, 0, 0,200, 65, 0,128,156, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 58, 1, 26, 0, 58, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 38, 3, 0, 0, - 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 1, 26, 0, 3, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 24,111,119, 3, - 0, 0, 0, 0, 24,111,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 43,186, 3, - 0, 0, 0, 0, 72,109, 82, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,184, 37, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 36, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 67, 0,128, 73,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 67, 0,128, 73,196, - 0, 0, 0, 0, 41, 1, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 58, 1, 38, 3, 41, 1, - 38, 3, 0, 0,168,217, 62, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, - 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 1, 38, 3, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 88,225,188, 3, - 0, 0, 0, 0,136, 2, 64, 3, 0, 0, 0, 0,152,108, 74, 3, 0, 0, 0, 0,200, 54, 89, 3, 0, 0, 0, 0,168,126,184, 3, - 0, 0, 0, 0,216, 66, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,152,108, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,126, 74, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 29,167, 48, 0, 0, 0,193, 0, 0, 0, 1, 9,253,180,224, + 9,245, 11, 16, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,191,144, 9,242, 80,144, 9,242, 80,208, 9,242, 85, 16, + 9,242, 85, 80, 10,122, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 54,192,152, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,191,144, 0, 0, 0,194, + 0, 0, 0, 1, 9,242, 78, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, + 9,242, 78, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,144, 9,242, 78, 16, 0, 0, 0, 0, + 7,128, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,208, + 9,242, 78, 80, 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,208, 0, 0, 0,194, + 0, 0, 0, 1, 9,242, 79, 16, 9,242, 78,144, 0, 0, 0, 0, 0, 0, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, + 9,242, 79, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79, 80, 9,242, 78,208, 0, 0, 0, 0, 7,128, 4,100, 0, 0, 0, 1, + 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,144, 9,242, 79, 16, 0, 0, 0, 0, + 6, 72, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,208, + 9,242, 79, 80, 0, 0, 0, 0, 6, 72, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,208, 0, 0, 0,194, + 0, 0, 0, 1, 9,242, 80, 16, 9,242, 79,144, 0, 0, 0, 0, 6, 72, 3,164, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, + 9,242, 80, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80, 80, 9,242, 79,208, 0, 0, 0, 0, 7,128, 3,164, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80,144, 9,242, 80, 16, 0, 0, 0, 0, + 0, 0, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80,144, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, + 9,242, 80, 80, 0, 0, 0, 0, 6, 72, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 80,208, 0, 0, 0,195, + 0, 0, 0, 1, 9,242, 81, 16, 0, 0, 0, 0, 9,242, 78, 16, 9,242, 78, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,242, 81, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81, 80, 9,242, 80,208, 9,242, 78, 16, 9,242, 78,208, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,144, + 9,242, 81, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,144, + 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,208, 9,242, 81, 80, 9,242, 78,208, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82, 16, 9,242, 81,144, 9,242, 79, 80, + 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82, 16, 0, 0, 0,195, 0, 0, 0, 1, + 9,242, 82, 80, 9,242, 81,208, 9,242, 78,144, 9,242, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,242, 82, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,144, 9,242, 82, 16, 9,242, 78,208, 9,242, 79,144, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,208, 9,242, 82, 80, + 9,242, 79, 16, 9,242, 79,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,208, 0, 0, 0,195, + 0, 0, 0, 1, 9,242, 83, 16, 9,242, 82,144, 9,242, 79, 80, 9,242, 79,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,242, 83, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83, 80, 9,242, 82,208, 9,242, 79,144, 9,242, 79,208, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,144, + 9,242, 83, 16, 9,242, 79, 16, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,144, + 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,208, 9,242, 83, 80, 9,242, 78,144, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84, 16, 9,242, 83,144, 9,242, 79,208, + 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84, 16, 0, 0, 0,195, 0, 0, 0, 1, + 9,242, 84, 80, 9,242, 83,208, 9,242, 80, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 9,242, 84, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,144, 9,242, 84, 16, 9,242, 78,208, 9,242, 80, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,208, 9,242, 84, 80, + 9,242, 79,144, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,208, 0, 0, 0,195, + 0, 0, 0, 1, 9,242, 85, 16, 9,242, 84,144, 9,242, 79, 80, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 9,242, 85, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 84,208, 9,242, 80, 80, 9,242, 80,144, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 85, 80, 0, 0, 0,197, 0, 0, 0, 1, 9,242, 88, 32, + 0, 0, 0, 0, 9,242, 78,208, 9,242, 78, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, + 0, 0, 4,101, 0, 0, 4,128, 7, 7, 7,129, 0, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 2, 23,166,224, 10,122, 9,112, + 10,122, 9,112, 9,242, 85,224, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 47,224, 9,244, 48, 64, 68, 65, 84, 65, + 0, 0, 0,248, 9,242, 85,224, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,134,128, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,240, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, + 0, 0, 0, 0, 0, 0, 0, 25, 68,240, 0, 0, 65,200, 0, 0, 68,240, 0, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,129, 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,101, 0, 0, 4,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7,129, 0, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 23,168, 48, 11, 30, 71, 96, 11, 30, 71, 96, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 48,240, 9,244, 50, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 87, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, + 9,242, 85,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,237,255,255, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,127, 0, 0, 4,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,167,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9,244, 51, 0, 9,244, 51,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 88, 32, + 0, 0, 0,197, 0, 0, 0, 1, 9,242,106,192, 9,242, 85, 80, 9,242, 79, 80, 9,242, 79,208, 9,242, 80, 16, 9,242, 78,144, + 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,163, 4, 4, 1, 56, 3,164, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 8, 2, 23,163,224, 11, 29, 3,128, 11, 29, 3,128, 9,242, 88,176, 9,242, 89,208, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244, 94, 64, 9,244, 53, 16, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 88,176, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 89,208, + 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,156, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 0, 0, 0, 0, 0, 0, 0, 25, 67,155,128, 0, 65,200, 0, 0, 67,155,128, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 56, 0, 26, 1, 56, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 3,138, 0, 0, 3,163, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 26, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,166, 80, 11, 31,157,208, 11, 31,157,208, 0, 0, 0, 0, + 0, 0, 0, 0, 9,244, 53,192, 9,244, 55, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 89,208, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 88,176, 0, 0, 0, 0, 67,156, 0, 0,196, 98,128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,147,128, 0,196, 98,128, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 3,137, + 0, 0, 0, 0, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 3,137, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, + 0, 18, 4, 0, 0, 6, 1, 56, 3,138, 1, 39, 3,138, 0, 0, 11, 29,248, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 6, 73, + 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 3,138, + 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,164,160, + 9,254, 77,160, 10,117,132,112, 9,242, 90,240, 11, 29, 2, 16, 9,244, 55,208, 9,244, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 90,240, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 92, 96, 0, 0, 0, 0, 2, 23,165, 48, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 41, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,126, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,152,108, 74, 3, 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,255,220, 1, 39, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 92, 96, + 0, 0, 0,196, 0, 0, 0, 1, 9,242, 93,208, 9,242, 90,240, 9,152,130,240, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 39, 0, 61, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184,157, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,162, 74, 3, 0, 0, 0, 0, 8,126, 74, 3, - 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 93,208, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 95, 64, + 9,242, 92, 96, 9,152,132,160, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 41, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,162, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 9,242, 95, 64, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 96,176, 9,242, 93,208, 9,152,134, 80, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140,254, 41, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,254,140, 1, 39, 0,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 66, 75, 3, 0, 0, 0, 0, 24,162, 74, 3, - 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 96,176, 0, 0, 0,196, + 0, 0, 0, 1, 9,242, 98, 32, 9,242, 95, 64, 9,152,136, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, 116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, 116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 41, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 39, 0, 58, 0, 20, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 66, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 98, 32, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 99,144, 9,242, 96,176, + 9,152,137,176, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34,254, 41, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 39, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 82, 75, 3, 0, 0, 0, 0,168, 66, 75, 3, - 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 41, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 9,242, 99,144, 0, 0, 0,196, 0, 0, 0, 1, 9,242,101, 0, 9,242, 98, 32, 9,152,139, 96, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, + 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 82, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184, 86, 75, 3, 0, 0, 0, 0, 88, 78, 75, 3, 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,101, 0, 0, 0, 0,196, 0, 0, 0, 1, + 9,242,102,112, 9,242, 99,144, 9,152,140,128, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,242,253, 41, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 9,242,102,112, 0, 0, 0,196, 0, 0, 0, 1, 9,242,103,224, 9,242,101, 0, 9,152,142, 48, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 86, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 90, 75, 3, 0, 0, 0, 0,184, 82, 75, 3, - 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 41, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,253,218, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 90, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,216,101, 75, 3, 0, 0, 0, 0,184, 86, 75, 3, 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,103,224, + 0, 0, 0,196, 0, 0, 0, 1, 9,242,105, 80, 9,242,102,112, 9,152,143,224, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 39, 0, 0, + 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,194,253, 41, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,105, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,249,112, + 9,242,103,224, 9,152,145,144, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,216,101, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,155, 75, 3, 0, 0, 0, 0,184, 90, 75, 3, - 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 41, 1,130, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1, 39, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,155, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,216,101, 75, 3, 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 11, 28,249,112, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,250,224, 9,242,105, 80, 9,152,148,240, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16,253, 41, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0,253, 16, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216, 75, 3, 0, 0, 0, 0,184,155, 75, 3, - 0, 0, 0, 0, 56, 96,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,250,224, 0, 0, 0,196, + 0, 0, 0, 1, 11, 28,252, 80, 11, 28,249,112, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, 110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, 110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 41, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,216, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,104, 99,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,252, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,253,192, 11, 28,250,224, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 28, 1, 41, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,200,158, 61, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,146, 74, 3, 0, 0, 0, 0,216,216, 75, 3, - 0, 0, 0, 0,216,101,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, -105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, -105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,146, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0, 72,108,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 28,253,192, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,255, 48, 11, 28,252, 80, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105, +110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,191, + 1, 41, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,255, 48, 0, 0, 0,196, 0, 0, 0, 1, + 11, 29, 0,160, 11, 28,253,192, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,131, 1, 41, 0, 36, 0, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200, 54, 89, 3, 0, 0, 0, 0, 72,146, 74, 3, - 0, 0, 0, 0,136,111,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, -112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, -112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 11, 29, 0,160, 0, 0, 0,196, 0, 0, 0, 1, 11, 29, 2, 16, 11, 28,255, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 54, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,120,114,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,254, 27, 1, 41, 0, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 29, 2, 16, + 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, + 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, + 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80, +114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,223, 1, 41, 0, 36, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 11, 29, 3,128, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 9,254, 87, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242,106,192, + 0, 0, 0,197, 0, 0, 0, 1, 11, 29, 7,176, 9,242, 88, 32, 11, 29,191,144, 9,242, 80, 80, 9,242, 80,144, 9,242, 79, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0,131, 15, 15, 6, 72, 0,132, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 23,133,112, 11, 29, 6,192, 11, 29, 6,192, 11, 29, 4,128, 11, 29, 5,160, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244,136,240, 9,244, 58, 80, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 4,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 29, 5,160, + 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,201, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, 68,200,224, 0, 65,200, 0, 0, 68,200,224, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 72, 0, 26, 6, 72, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,134,192, 9,254, 82,208, 9,254, 82,208, 0, 0, 0, 0, + 0, 0, 0, 0, 9,244, 59, 0, 9,244, 60, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 5,160, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 4,128,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, +194,103,218, 88, 67,141,147, 40, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 18, 0, 0, 0,105, + 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, + 0, 4, 4, 0, 0, 8, 6, 72, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 71, 0, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0,106, + 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,134, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 61, 16, 9,244, 62,208, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,188, 11, 29, 6,192, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 11, 29, 7,176, 0, 0, 0,197, + 0, 0, 0, 1, 10,122, 0, 96, 9,242,106,192, 9,242, 79,208, 9,242, 79,144, 9,242, 79, 16, 9,242, 80, 16, 0, 0, 0, 0, + 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 3,165, 0, 0, 4, 99, 3, 3, 1, 56, 0,191, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, + 2, 23,131,144, 10,121,255, 64, 10,121,255, 64, 9,242,145, 80, 9,242,146,112, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 63,160, + 9,244, 64, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242,145, 80, 0, 0, 0,198, 0, 0, 0, 1, 9,242,146,112, 0, 0, 0, 0, + 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,156, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 55, 0, 0, 0, 0, 0, 0, 0, 25, 67,155,128, 0, 65,200, 0, 0, 67,155,128, 0, 65,200, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 56, 0, 26, 1, 56, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 4, 74, 0, 0, 4, 99, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,132,224, 9,202,234, 48, 9,202,234, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244, 64,176, 9,244, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242,146,112, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 9,242,145, 80, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,147,128, 0,195, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 1, 56, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, + 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, + 0, 6, 1, 56, 0,165, 1, 39, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, + 0, 0, 3,165, 0, 0, 4, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0,165, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,132, 80, 9,203, 36, 80, + 9,203, 36, 80, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 66,192, 9,244, 67,160, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,244, 10,121,255, 64, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 31, 70, 96, 11, 31, 70, 96, 11, 29, 8, 64, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 29, 8, 64, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 11, 42, 0, 0, 11, 42, + 8,212, 32, 32, 68, 65, 84, 65, 0, 0,133,248, 8,212, 32, 32, 0, 0, 0,219, 0, 0, 11, 42, 0, 0, 0, 0, 0, 2, 0, 1, + 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 21, 0, 1, + 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, 2,174, 10, 32, + 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, 0, 1, 0, 1, + 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, 0, 0, 0, 0, + 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, 2,154,244, 32, + 0, 30,255,255, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,154,244, 32, 0, 30,255,255, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,154,244, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,154,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,154,244, 32, 0, 30,255,255, 0, 1, 0, 0, 2,216,154, 32, 0, 30,255,255, + 0, 1, 0, 0, 2,216,158, 32, 0, 30,255,255, 0, 1, 0, 0, 2,195, 38, 32, 0, 30,255,255, 0, 1, 0, 0, 2,195, 42, 32, + 0, 30,255,255, 0, 1, 0, 0, 2,153, 66, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 70, 32, 0, 30,255,255, 0, 1, 0, 0, + 2,197,122, 32, 0, 30,255,255, 0, 1, 0, 0, 2,197,126, 32, 0, 30,255,255, 0, 1, 0, 0, 2,199, 36, 32, 0, 30,255,255, + 0, 1, 0, 0, 2,199, 40, 32, 0, 30,255,255, 0, 1, 0, 0, 2,211,232, 32, 0, 30,255,255, 0, 1, 0, 0, 2,211,236, 32, + 0, 30,255,255, 0, 1, 0, 0, 2,196,250, 32, 0, 30,255,255, 0, 1, 0, 0, 2,196,254, 32, 0, 30,255,255, 0, 1, 0, 0, + 2,158, 64, 32, 0, 30,255,255, 0, 1, 0, 0, 2,158, 68, 32, 0, 30,255,255, 0, 1, 0, 0, 2,207, 10, 32, 0, 30,255,255, + 0, 1, 0, 0, 2,207, 14, 32, 0, 30,255,255, 0, 1, 0, 0, 2,205,210, 32, 0, 30,255,255, 0, 1, 0, 0, 2,205,214, 32, + 0, 30,255,255, 0, 1, 0, 0, 2,209, 44, 32, 0, 30,255,255, 0, 1, 0, 0, 2,209, 48, 32, 0, 30,255,255, 0, 1, 0, 0, + 2,199,162, 32, 0, 30,255,255, 0, 1, 0, 0, 2,199,166, 32, 0, 30,255,255, 0, 1, 0, 0, 2,198,174, 32, 0, 30,255,255, + 0, 1, 0, 0, 2,198,178, 32, 0, 30,255,255, 0, 1, 0, 0, 2,212, 20, 32, 0, 30,255,255, 0, 1, 0, 0, 2,212, 24, 32, + 0, 30,255,255, 0, 1, 0, 0, 2,215,240, 32, 0, 30,255,255, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 3, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 6, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 8, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 11, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 14, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 16, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 19, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 22, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 24, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 27, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 30, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 32, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 35, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 38, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 40, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 43, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 46, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 48, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 51, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 54, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 56, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 59, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,216,154, 32, + 0, 31, 0, 62, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 64, 0, 1, 0, 0, + 2,216,154, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 67, + 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,216,154, 32, + 0, 30,255,255, 0, 1, 0, 0, 11, 28, 27,176, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 28, 64, 0, 30,255,255, 0, 1, 0, 0, + 2,187,108, 32, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 39, 32, 0, 30,255,255, 0, 3, 0, 0, 2,212,100, 32, 0, 30,255,255, + 0, 1, 0, 0, 2,174, 10, 32, 0, 30,255,255, 0, 1, 0, 0, 2,206,150, 32, 0, 30,255,255, 0, 1, 0, 0, 9,244,204,208, + 0, 30,255,255, 0, 1, 0, 0, 9,245, 11, 16, 0, 30,255,255, 0, 1, 0, 0, 11, 29,167, 48, 0, 30,255,255, 0, 1, 0, 0, + 9,253,180,224, 0, 30,255,255, 0, 1, 0, 0, 11, 27,167, 64, 0, 30,255,255, 0, 1, 0, 0, 11, 27,220,208, 0, 30,255,255, + 0, 1, 0, 0, 11, 27,245, 16, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 37,112, 0, 30,255,255, 0, 1, 0, 0, 9,244,203, 64, + 0, 30,255,255, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 0, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,216,158, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,216,158, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,195, 38, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,195, 38, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,195, 42, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,195, 42, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,153, 66, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 66, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 70, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,153, 70, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,197,122, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,197,122, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,197,126, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,197,126, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,199, 36, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199, 36, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199, 40, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,199, 40, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,211,232, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,211,232, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,211,236, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,211,236, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,196,250, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,196,250, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,196,254, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,196,254, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,158, 64, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,158, 64, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,158, 68, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,158, 68, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,207, 10, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,207, 10, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,207, 14, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,207, 14, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,205,210, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,205,210, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,205,214, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,205,214, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,209, 44, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,209, 44, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,209, 48, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,209, 48, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199,162, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,199,162, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199,166, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,199,166, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,198,174, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,198,174, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,198,178, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,198,178, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 1, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 3, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 6, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 9, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 11, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 14, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 17, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 19, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 22, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 25, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 27, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 30, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 33, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 35, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 38, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 41, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 43, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 46, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 49, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 51, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 54, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 57, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 59, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 62, + 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,212, 20, 32, + 0, 31, 0, 65, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 67, 0, 1, 0, 0, + 2,212, 20, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 0, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 3, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 5, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 8, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 11, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 13, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 16, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 19, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 21, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 24, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 27, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 29, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 32, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 35, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 37, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 40, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 43, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 45, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 48, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 51, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 53, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 56, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 59, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 61, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 64, + 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,212, 24, 32, + 0, 31, 0, 67, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 69, 0, 1, 0, 0, + 2,212, 24, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 2, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 5, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 7, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 10, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 13, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 15, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 18, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 21, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 23, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 26, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 29, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 31, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 34, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 37, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 39, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 42, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 45, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 47, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 50, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 53, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 55, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 58, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 61, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 63, 0, 1, 0, 0, + 2,215,240, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 66, + 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,215,240, 32, + 0, 31, 0, 69, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,215,244, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,215,244, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 27,176, + 0, 31, 0, 1, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 3, 0, 1, 0, 0, + 11, 28, 27,176, 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 6, + 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 27,176, + 0, 31, 0, 9, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 11, 0, 1, 0, 0, + 11, 28, 27,176, 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 14, + 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 27,176, + 0, 31, 0, 17, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 19, 0, 1, 0, 0, + 11, 28, 27,176, 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 22, + 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 27,176, + 0, 31, 0, 25, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 1, 0, 1, 0, 0, + 11, 28, 28, 64, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 4, + 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 6, 0, 1, 0, 0, 11, 28, 28, 64, + 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 9, 0, 1, 0, 0, + 11, 28, 28, 64, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 12, + 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 14, 0, 1, 0, 0, 11, 28, 28, 64, + 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 17, 0, 1, 0, 0, + 11, 28, 28, 64, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 19, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 20, + 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 22, 0, 1, 0, 0, 11, 28, 28, 64, + 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 25, 0, 1, 0, 0, + 11, 28, 28, 64, 0, 31, 0, 26, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 27, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 28, + 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 29, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 30, 0, 1, 0, 0, 11, 28, 28, 64, + 0, 31, 0, 0, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 2, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 5, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 8, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 10, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 13, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 16, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 18, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 21, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 24, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 26, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 29, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 32, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 34, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 37, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 40, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 42, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 45, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 48, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 50, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 53, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 56, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 58, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 61, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 64, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 66, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 69, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 72, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 74, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 77, + 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,187,108, 32, + 0, 31, 0, 80, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 82, 0, 1, 0, 0, + 2,187,108, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 1, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 6, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 9, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 14, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 17, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 19, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 22, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 25, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 26, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 27, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 28, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 29, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 30, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 31, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 32, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 33, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 34, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 35, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 36, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 37, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 38, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 39, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 40, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 41, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 42, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 43, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 44, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 45, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 46, 0, 1, 0, 0, + 11, 28, 39, 32, 0, 31, 0, 47, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 48, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 49, + 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 50, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 51, 0, 1, 0, 0, 11, 28, 39, 32, + 0, 31, 0, 0, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 2, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 5, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 8, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 10, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 13, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 16, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 18, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 21, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 24, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 26, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 29, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 32, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 34, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 37, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 40, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 42, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 45, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 48, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 50, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 53, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 56, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 58, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 61, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 64, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 66, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 69, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 72, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 74, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 77, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 80, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 82, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 85, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 88, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 90, 0, 1, 0, 0, + 2,212,100, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 93, + 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,212,100, 32, + 0, 31, 0, 96, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 1, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 4, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 7, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 9, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 12, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 15, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 17, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 20, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 23, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 25, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 28, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 31, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 33, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 36, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 39, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 41, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 44, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 47, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 49, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 52, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 55, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 57, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 60, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 63, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 65, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 68, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 71, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 72, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 73, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 76, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 79, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 80, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 81, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 84, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 87, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 88, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 89, 0, 1, 0, 0, + 2,174, 10, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 92, + 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,174, 10, 32, + 0, 31, 0, 95, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 96, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 0, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 3, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 6, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 8, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 11, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 14, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 16, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 19, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 22, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 24, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 27, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 30, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 32, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 35, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 38, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 40, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 43, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 46, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 48, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 51, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 54, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 56, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 59, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 62, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 64, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 67, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 70, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 72, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 75, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 78, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 80, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 83, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 86, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 88, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 91, + 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,206,150, 32, + 0, 31, 0, 94, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 96, 0, 1, 0, 0, + 2,206,150, 32, 0, 31, 0, 0, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 1, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 2, + 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 3, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 4, 0, 1, 0, 0, 9,244,204,208, + 0, 31, 0, 5, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 6, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 7, 0, 1, 0, 0, + 9,244,204,208, 0, 31, 0, 8, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 9, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 0, + 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 1, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 2, 0, 1, 0, 0, 9,245, 11, 16, + 0, 31, 0, 3, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 4, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 5, 0, 1, 0, 0, + 9,245, 11, 16, 0, 31, 0, 6, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 7, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 8, + 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 9, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 0, 0, 1, 0, 0, 11, 29,167, 48, + 0, 31, 0, 1, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 2, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 3, 0, 1, 0, 0, + 11, 29,167, 48, 0, 31, 0, 4, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 5, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 6, + 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 7, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 8, 0, 1, 0, 0, 11, 29,167, 48, + 0, 31, 0, 9, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 0, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 1, 0, 1, 0, 0, + 9,253,180,224, 0, 31, 0, 2, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 3, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 4, + 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 5, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 6, 0, 1, 0, 0, 9,253,180,224, + 0, 31, 0, 7, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 8, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 9, 0, 1, 0, 0, + 9,253,180,224, 0, 31, 0, 0, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 2, + 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 3, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,167, 64, + 0, 31, 0, 5, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 6, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 7, 0, 1, 0, 0, + 11, 27,167, 64, 0, 31, 0, 8, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 0, + 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 2, 0, 1, 0, 0, 11, 27,220,208, + 0, 31, 0, 3, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 5, 0, 1, 0, 0, + 11, 27,220,208, 0, 31, 0, 6, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 7, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 8, + 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 0, 0, 1, 0, 0, 11, 27,245, 16, + 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 2, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 3, 0, 1, 0, 0, + 11, 27,245, 16, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 5, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 6, + 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 7, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 8, 0, 1, 0, 0, 11, 27,245, 16, + 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 1, 0, 1, 0, 0, + 11, 28, 37,112, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 4, + 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 6, 0, 1, 0, 0, 11, 28, 37,112, + 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 9, 0, 1, 0, 0, + 11, 28, 37,112, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 12, + 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 14, 0, 1, 0, 0, 11, 28, 37,112, + 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 17, 0, 1, 0, 0, + 11, 28, 37,112, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 0, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 1, + 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 2, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 3, 0, 1, 0, 0, 9,244,203, 64, + 0, 31, 0, 4, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 5, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 6, 0, 1, 0, 0, + 9,244,203, 64, 0, 31, 0, 7, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 8, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 9, + 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 10, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 31,176, + 0, 31, 0, 1, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 3, 0, 1, 0, 0, + 11, 28, 31,176, 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 6, + 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 31,176, + 0, 31, 0, 9, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 11, 0, 1, 0, 0, + 11, 28, 31,176, 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 14, + 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 31,176, + 0, 31, 0, 17, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 19, 0, 1, 0, 0, + 11, 28, 31,176, 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 31,176, 68, 65, 84, 65, 0, 0, 0, 96, 10,122, 0, 96, 0, 0, 0,197, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 7,176, 9,242, 80, 80, 9,242, 78,208, 9,242, 79,144, 9,242, 80,144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0,133, 0, 0, 4, 99, 1, 1, 6, 72, 3,223, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, + 2, 23,135, 80, 9,253,179,192, 9,253,179,192, 10,122, 0,240, 10,122, 8, 80, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31,173, 80, + 9,244, 69,224, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 0,240, 0, 0, 0,198, 0, 0, 0, 1, 10,122, 2, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,201, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, 68,200,224, 0, 65,200, 0, 0, 68,200,224, 0, 65,200, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 72, 0, 26, 6, 72, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,142,208, 11, 30, 10,128, 11, 30, 10,128, 0, 0, 0, 0, 0, 0, 0, 0, + 9,244, 70,160, 9,244, 72, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 2, 16, 0, 0, 0,198, + 0, 0, 0, 1, 10,122, 4,160, 10,122, 0,240, 0, 0, 0, 0, 67, 32, 0, 0,196, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 15, 0, 0,196, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, + 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, + 0, 6, 0,160, 2,237, 0,143, 2,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, + 0, 0, 1,119, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2,237, 0, 11, 0, 5, + 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,140,144, 11, 31, 75,208, + 11, 31, 75,208, 10,122, 3, 48, 10,122, 3, 48, 9,244, 73, 32, 9,244, 74,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 10,122, 3, 48, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9,154, 95, 32, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,253,233, 0,143, 1,255, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 4,160, 0, 0, 0,198, + 0, 0, 0, 1, 10,122, 7, 48, 10,122, 2, 16, 0, 0, 0, 0, 67, 33, 0, 0,195, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 16,102,227,195, 90, 30, 24, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, + 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, + 0, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, + 0, 0, 0,159, 0, 0, 1,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,141, 32, 9,244, 94,160, + 9,244, 94,160, 10,122, 5,192, 10,122, 5,192, 9,244, 75, 48, 9,244, 76,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 10,122, 5,192, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,141,176, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255,216, 0,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 7, 48, 0, 0, 0,198, + 0, 0, 0, 1, 10,122, 8, 80, 10,122, 4,160, 0, 0, 0, 0, 67, 52, 0, 0,196,158, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 35, 0, 0,196,158, 96, 0,195,142,128, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 0, + 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, + 0, 6, 0,180, 3,214, 0,163, 3,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 6, 71, + 0, 0, 0,159, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, + 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,136,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0, 40, 39, 30, 2, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,216,238, 63, 3, 0, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104, 40, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 88, 45, 30, 2, 0, 0, 0, 0, 88, 35, 30, 2, 0, 0, 0, 0,104, 18, 30, 2, 0, 0, 0, 0,200, 22, 30, 2, - 0, 0, 0, 0, 56, 23, 30, 2, 0, 0, 0, 0, 8, 21, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 6, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, 15, 15, 68, 6,116, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, - 0, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0,200, 42, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 58, 68, 2, 0, 0, 0, 0,168, 84,119, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200, 42, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,128,200, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,200, 68, - 0, 0,200, 65, 0, 96,200, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 68, 6, 26, 0, 68, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 26, 0, - 5, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, - 0, 0, 0, 0, 56, 13,122, 3, 0, 0, 0, 0, 56, 13,122, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 68, 68, 2, 0, 0, 0, 0,152, 76, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 42, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 41, 30, 2, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, - 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 18, 0, 0, 0, 89, 0, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0, 68, 6, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 6, 0, 0, 26, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 90, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 89, 68, 2, 0, 0, 0, 0,168,176,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56, 44, 30, 2, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 45, 30, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0,104, 40, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, - 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,233, 3, 0, 0, 3, 3, 58, 1,169, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 8, 0,168,209, 2, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 72, 46, 30, 2, - 0, 0, 0, 0,184, 47, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 69, 68, 2, - 0, 0, 0, 0,232,252, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 46, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,184, 47, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,156, 67, 0, 0,200, 65, 0,128,156, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 58, 1, 26, 0, 58, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 58, 1, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,185,188, 3, 0, 0, 0, 0,120,118, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 47, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 46, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 67, 0, 0,250,194, 0, 0, 0, 0, 41, 1, 0, 0, 58, 1, 0, 0, 18, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 18, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, - 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 58, 1,143, 0, 41, 1,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 58, 1,143, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,107, 68, 2, 0, 0, 0, 0, 24,109, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0,166, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 66,180, 3, 0, 0, 0, 0, 56, 66,180, 3, 0, 0, 0, 0,136, 50, 30, 2, - 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0,136, 50, 30, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,232, 50, 30, 2, - 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0,232, 50, 30, 2, 0, 0, 0, 0,219, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, - 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 30, 0,255,255, - 3, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 30, 0,255,255, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 12, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 14, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 16, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 18, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 20, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 22, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 24, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 26, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 28, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 30, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 32, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 34, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 36, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 38, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 40, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 42, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 44, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 46, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 48, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 50, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 52, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 54, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 56, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 58, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 60, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 62, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 64, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 66, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 68, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 70, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 72, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 74, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 76, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 78, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 80, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 82, 0, - 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 12, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 14, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 16, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 18, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 20, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 22, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 24, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 26, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 28, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 30, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 32, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 34, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 36, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 38, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 40, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 42, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 44, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 46, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 48, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 50, 0, - 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, - 1, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, - 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 22, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 24, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 26, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 28, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 30, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 32, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 34, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 36, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 38, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 40, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 42, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 44, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 46, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 48, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 50, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 52, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 54, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 56, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 58, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 60, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 62, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 64, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 66, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 68, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 70, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 72, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 74, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 76, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 78, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 80, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 82, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 84, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 86, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 88, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 90, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 92, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 94, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 96, 0, - 1, 0, 0, 0,232,255, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 40,104, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,184, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 72, 17, 30, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0,136,171, 31, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 2, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 4, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 6, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 8, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 10, 0, - 1, 0, 0, 0,152,101, 29, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 1, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 3, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 5, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 7, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 9, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 11, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 13, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 15, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 17, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 19, 0, - 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 45, 30, 2, - 0, 0, 0, 0,200, 22, 30, 2, 0, 0, 0, 0, 40, 20, 30, 2, 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0, 56, 23, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0,117, 0, 0, 0,233, 3, 0, 0, 1, 1, 68, 6, -117, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,168,215, 2, 2, 0, 0, 0, 0,168,241, 30, 2, 0, 0, 0, 0,168,241, 30, 2, - 0, 0, 0, 0,200,230, 30, 2, 0, 0, 0, 0,136,236, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 69, 2, 2, 0, 0, 0, 0, 56,183, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,230, 30, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,232, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,200, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,200, 68, 0, 0,200, 65, 0, 96,200, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 6, 26, 0, 68, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0,117, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 6, 26, 0, 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0,184,116,119, 3, 0, 0, 0, 0,184,116,119, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 64, 76, 3, 0, 0, 0, 0,168,110, 68, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,232, 30, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,233, 30, 2, 0, 0, 0, 0,200,230, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 67, 0,192, 32,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,192, 32,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0,130, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0,130, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,131, 2,143, 0,131, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,103, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,131, 2, 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 56,130, 79, 3, 0, 0, 0, 0, 56,130, 79, 3, - 0, 0, 0, 0, 56, 34, 79, 3, 0, 0, 0, 0, 56, 34, 79, 3, 0, 0, 0, 0, 56,112, 68, 2, 0, 0, 0, 0,216, 33, 90, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 34, 79, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55,194, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, - 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, - 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,233, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,235, 30, 2, - 0, 0, 0, 0, 56,232, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0, -227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0,143, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, - 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, - 0, 0, 0, 0,120,170,186, 3, 0, 0, 0, 0,120,170,186, 3, 0, 0, 0, 0,104,220, 79, 3, 0, 0, 0, 0,104,220, 79, 3, - 0, 0, 0, 0,152, 96, 68, 2, 0, 0, 0, 0,152,121, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,220, 79, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,224, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, - 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255, -144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,235, 30, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,236, 30, 2, 0, 0, 0, 0,168,233, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0, -180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 6, 0, 0, 67, 6, 0, 0,143, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,236, 30, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,235, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 67, 6, 0, 0,143, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 5, 91, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4,180, 3, 0, 0, 0, 0,136, 69,191, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,237, 30, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,248,237, 30, 2, - 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -234, 87,235, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, - 51,120,173,192,115,208,213, 64, 0, 0,128, 63,177,157,229, 62, 77, 24, 61,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, -138, 74,182, 62,158, 53,185, 62, 35, 44,185, 62,143,180,109,188,147,164,210, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 39,240,191, 62,126,116, 85, 63,112,189, 70,188, 0, 0,186,180,244,190, 95,190, - 4,178,215, 61, 46, 62,249, 62, 0, 0,240, 50,197,112,117,194,178,208,216, 65,220,158, 5,194,231,251,159,192,221, 54,114, 66, - 29,247,213,193, 58,221, 3, 66, 25, 4,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,177,157,229, 62, 77, 24, 61,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, -138, 74,182, 62,158, 53,185, 62, 35, 44,185, 62,143,180,109,188,147,164,210, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 54,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65, - 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,199,250,165, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, - 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,168,241, 30, 2, 0, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0,184,243, 30, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 72, 17, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, - 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,244, 30, 2, - 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,248,250, 30, 2, 0, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0, 40, 4, 31, 2, - 0, 0, 0, 0,232, 38, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,245, 30, 2, - 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 72,245, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,246, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,247, 30, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,247, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56,249, 30, 2, - 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0,200,248, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,249, 30, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248,250, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,251, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104,251, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,251, 30, 2, 0, 0, 0, 0,248,250, 30, 2, - 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216,251, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,252, 30, 2, 0, 0, 0, 0,104,251, 30, 2, - 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72,252, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,252, 30, 2, 0, 0, 0, 0,216,251, 30, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184,252, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,253, 30, 2, 0, 0, 0, 0, 72,252, 30, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40,253, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,253, 30, 2, 0, 0, 0, 0,184,252, 30, 2, - 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152,253, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,254, 30, 2, 0, 0, 0, 0, 40,253, 30, 2, - 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,254, 30, 2, 0, 0, 0, 0,152,253, 30, 2, - 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,254, 30, 2, 0, 0, 0, 0, 8,254, 30, 2, - 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232,254, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,255, 30, 2, 0, 0, 0, 0,120,254, 30, 2, - 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88,255, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,255, 30, 2, 0, 0, 0, 0,232,254, 30, 2, - 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200,255, 30, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 0, 31, 2, 0, 0, 0, 0, 88,255, 30, 2, - 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 0, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 0, 31, 2, 0, 0, 0, 0,200,255, 30, 2, - 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 0, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 1, 31, 2, 0, 0, 0, 0, 56, 0, 31, 2, - 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 1, 31, 2, 0, 0, 0, 0,168, 0, 31, 2, - 0, 0, 0, 0, 8,247, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 1, 31, 2, 0, 0, 0, 0, 24, 1, 31, 2, - 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248, 1, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104, 2, 31, 2, 0, 0, 0, 0,136, 1, 31, 2, - 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104, 2, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 2, 31, 2, 0, 0, 0, 0,248, 1, 31, 2, - 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216, 2, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 3, 31, 2, 0, 0, 0, 0,104, 2, 31, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72, 3, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0,216, 2, 31, 2, - 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184, 3, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 3, 31, 2, - 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 40, 4, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 7, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0, 72,245, 30, 2, 0, 0, 0, 0,184,245, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, - 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,168, 45, 31, 2, 0, 0, 0, 0,168, 45, 31, 2, - 0, 0, 0, 0, 24, 5, 31, 2, 0, 0, 0, 0,136, 6, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,223, 78, 3, 0, 0, 0, 0, 72, 85,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 5, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136, 6, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 6, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 5, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0, -129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 7, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0, 40, 4, 31, 2, 0, 0, 0, 0, 88,248, 30, 2, - 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 40,246, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,232, 8, 31, 2, - 0, 0, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,153,179, 3, - 0, 0, 0, 0, 24,112,183, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 8, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 8, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, - 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, -113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, -113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 24, 11, 89, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 87, 89, 3, - 0, 0, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 87, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184,135, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,248, 10,122, 8, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 10,122, 7, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 6, 71, 0, 0, 0,159, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5,168, 3,197, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 23,136, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 86,144, 9,244, 86, 32, + 0, 0, 0, 0, 2,205,224, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,205,224, 32, 0, 0, 0,156, 0, 0, 0, 1, 63,140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,210, 18,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,191,128, 6,141,191,128, 0, 0,128, 0, 0, 0,128, 0, 0, 0,190, 76,210, 10,128, 0, 0, 0, 62,209,239, 68, +190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, + 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,209,239, 68, + 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 52, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185, +190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 95, 62,192,173,120, 51, 64,213,208,115, 63,128, 0, 0, 62,229,157,178, +191, 40,202, 72,191, 81,169,114,191, 81,158,184, 63,127, 90,117, 62,162,183,140, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, + 63,188, 6, 57,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 62,191,241, 25, + 63, 85,116, 70,188, 70,172,224, 52,133, 0, 0,190,122,169,195, 61,241,164,220, 63, 11,156,217,179,200, 0, 0,194,117,112,201, + 65,216,208,182,194, 5,158,222,192,159,251,235, 66,114, 54,221,193,213,247, 29, 66, 3,221, 58, 64,160, 4, 26, 62,209,239, 68, +190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, + 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,229,157,178, +191, 40,202, 72,191, 81,169,114,191, 81,158,184, 63,127, 90,117, 62,162,183,140, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, + 63,188, 6, 57,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 63,181,182, 12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,181,182, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,181,182, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92, +190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,210, 33, 65,111,210, 33, 0, 0, 0, 0, 0, 0, 0, 0, 58,165,133,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 32, 66,137,152, 85, 66,126, 27,113, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,240, 9,253,179,192, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, + 0, 1, 0, 3, 24, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 68,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,253,180,224, 0, 0, 0,193, 0, 0, 0, 1, 11, 27,167, 64, 11, 29,167, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,253,181,160, 11, 29,252, 48, 11, 29,177, 48, 11, 31,174, 80, 11, 31,174,144, + 11, 27,162, 32, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,181,160, 0, 0, 0,194, 0, 0, 0, 1, + 9,253,181,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,181,224, + 0, 0, 0,194, 0, 0, 0, 1, 10,122, 9,208, 9,253,181,160, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 10,122, 9,208, 0, 0, 0,194, 0, 0, 0, 1, 10,122, 10, 16, 9,253,181,224, 0, 0, 0, 0, 7,126, 4, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 10,122, 10, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,249,240, 10,122, 9,208, + 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,249,240, 0, 0, 0,194, 0, 0, 0, 1, + 11, 29,250, 48, 10,122, 10, 16, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250, 48, + 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,112, 11, 29,249,240, 0, 0, 0, 0, 7,126, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 29,250,112, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,176, 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 1,140, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250,176, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,240, 11, 29,250,112, + 0, 0, 0, 0, 6, 32, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250,240, 0, 0, 0,194, 0, 0, 0, 1, + 11, 29,251, 48, 11, 29,250,176, 0, 0, 0, 0, 6, 32, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251, 48, + 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,112, 11, 29,250,240, 0, 0, 0, 0, 7,126, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 29,251,112, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,176, 11, 29,251, 48, 0, 0, 0, 0, 5, 64, 1,140, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251,176, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,240, 11, 29,251,112, + 0, 0, 0, 0, 5, 64, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251,240, 0, 0, 0,194, 0, 0, 0, 1, + 11, 29,252, 48, 11, 29,251,176, 0, 0, 0, 0, 1, 68, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,252, 48, + 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,251,240, 0, 0, 0, 0, 1, 68, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 29,177, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,112, 0, 0, 0, 0, 9,253,181,224, 10,122, 9,208, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,176, + 11, 29,177, 48, 9,253,181,224, 11, 29,249,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,176, + 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,240, 11, 29,177,112, 10,122, 9,208, 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178, 48, 11, 29,177,176, 11, 29,249,240, + 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178, 48, 0, 0, 0,195, 0, 0, 0, 1, + 11, 29,178,112, 11, 29,177,240, 11, 29,249,240, 11, 29,250,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 29,178,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178,176, 11, 29,178, 48, 11, 29,250,112, 11, 29,250,176, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178,176, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178,240, 11, 29,178,112, + 10,122, 10, 16, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178,240, 0, 0, 0,195, + 0, 0, 0, 1, 11, 29,179, 48, 11, 29,178,176, 11, 29,250,176, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 29,179, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,112, 11, 29,178,240, 9,253,181,160, 11, 29,250,112, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,176, + 11, 29,179, 48, 9,253,181,160, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,176, + 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,240, 11, 29,179,112, 11, 29,250, 48, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180, 48, 11, 29,179,176, 10,122, 10, 16, + 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180, 48, 0, 0, 0,195, 0, 0, 0, 1, + 11, 29,180,112, 11, 29,179,240, 11, 29,250,176, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 29,180,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180,176, 11, 29,180, 48, 11, 29,251,112, 11, 29,251,176, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180,176, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180,240, 11, 29,180,112, + 11, 29,250, 48, 11, 29,251,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180,240, 0, 0, 0,195, + 0, 0, 0, 1, 11, 29,181, 48, 11, 29,180,176, 11, 29,251, 48, 11, 29,251,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 29,181, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,112, 11, 29,180,240, 11, 29,250,112, 11, 29,251,240, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,176, + 11, 29,181, 48, 11, 29,251,112, 11, 29,251,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,176, + 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,240, 11, 29,181,112, 11, 29,249,240, 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 31,174, 80, 11, 29,181,176, 11, 29,251,176, + 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 31,174, 80, 0, 0, 0,195, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 29,181,240, 11, 29,251,240, 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, + 11, 31,174,144, 0, 0, 0,197, 0, 0, 0, 1, 11, 29,202, 96, 0, 0, 0, 0, 11, 29,249,240, 9,253,181,224, 10,122, 9,208, + 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,166,224, 11, 27,166,224, 11, 31,175, 32, 11, 31,176, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 31,175, 32, 0, 0, 0,198, 0, 0, 0, 1, + 11, 31,176, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, + 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, + 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, + 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 31,176, 64, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 31,175, 32, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,238, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, + 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 29,202, 96, 0, 0, 0,197, 0, 0, 0, 1, 11, 23, 81, 96, 11, 31,174,144, + 11, 29,250,240, 11, 29,250,176, 11, 29,251, 48, 10,122, 10, 16, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, + 0, 0, 1,139, 4, 4, 1, 94, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,146, 48, 11, 27,146, 48, + 11, 29,202,240, 11, 29,204, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 29,202,240, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,204, 16, 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, + 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, 67,174,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 1,114, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 94, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,204, 16, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,202,240, + 0, 0, 0, 0, 67,174,128, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,166,127,255,195,184,255,255, 0, 0, 0, 0, + 0, 0, 1, 77, 0, 0, 1, 94, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 1, 78, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 94, 1,114, 1, 77, 1,114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 23, 78,128, 11, 27,144,192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 23, 78,128, 0, 0, 0,196, + 0, 0, 0, 1, 11, 23, 79,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,220, 1, 76, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 23, 79,240, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,131,208, 11, 23, 78,128, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184,135, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 40,116,184, 3, 0, 0, 0, 0, 56, 87, 89, 3, - 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 76, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,116,184, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,184,135, 68, 2, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 27,131,208, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,133, 64, 11, 23, 79,240, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, +114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, + 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 67,119, 3, 0, 0, 0, 0, 40,116,184, 3, - 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,133, 64, 0, 0, 0,196, 0, 0, 0, 1, + 11, 27,134,176, 11, 27,131,208, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, 1, 76, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 67,119, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,152,177,187, 3, 0, 0, 0, 0,200, 21, 78, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,134,176, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,136, 32, 11, 27,133, 64, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,254, 58, 1, 76, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,152,177,187, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56,180,179, 3, 0, 0, 0, 0,168, 67,119, 3, - 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, -111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,136, 32, + 0, 0, 0,196, 0, 0, 0, 1, 11, 27,137,144, 11, 27,134,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, + 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 76, 0, 0, + 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,180,179, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,120,149, 78, 3, 0, 0, 0, 0,152,177,187, 3, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,137,144, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,139, 0, + 11, 27,136, 32, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,120,149, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8, 22,184, 3, 0, 0, 0, 0, 56,180,179, 3, - 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, + 0, 0, 1, 64, 11, 27,139, 0, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,140,112, 11, 27,137,144, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 22,184, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,120,149, 78, 3, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0,253,242, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,140,112, 0, 0, 0,196, + 0, 0, 0, 1, 11, 27,141,224, 11, 27,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,218, 1, 76, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,141,224, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,143, 80, 11, 27,140,112, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152, 6, 75, 3, 0, 0, 0, 0, 8, 22,184, 3, - 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 6, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0, 88, 69,180, 3, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 27,143, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,144,192, 11, 27,141,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112, +117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, + 1, 76, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,144,192, 0, 0, 0,196, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 27,143, 80, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 56, 8, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 6, 75, 3, - 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200, 11, 31, 2, 0, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0,248,174,178, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0,248, 7, 31, 2, - 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6, -140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 51, 3, 2, 0, 0, 0, 0, 72, 18, 31, 2, 0, 0, 0, 0, 72, 18, 31, 2, - 0, 0, 0, 0,248, 13, 31, 2, 0, 0, 0, 0,216, 16, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 86, 68, 2, 0, 0, 0, 0,232,187,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 13, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104, 15, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 54, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 15, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216, 16, 31, 2, 0, 0, 0, 0,248, 13, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 53, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 4, 64, 3, 0, 0, 0, 0,232, 4, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 4, 64, 3, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,189,191, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 16, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 15, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, - 0,234,179, 68,224,198,182,194,184,177,165, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, - 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, - 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, - 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 52, 3, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 72, 18, 31, 2, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152, 25, 31, 2, - 0, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 8,247, 30, 2, - 0, 0, 0, 0,200,248, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0, -233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 42, 3, 2, 0, 0, 0, 0,168, 22, 31, 2, - 0, 0, 0, 0,168, 22, 31, 2, 0, 0, 0, 0,200, 19, 31, 2, 0, 0, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3,190, 3, 0, 0, 0, 0, 56, 18,185, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,200, 19, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0, -166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 45, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 19, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, - 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, - 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0, -233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 43, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 2, 0, 0,168, 22, 31, 2, 0, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,216, 11, 27,146, 48, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 23, 81, 96, 0, 0, 0,197, 0, 0, 0, 1, + 11, 27,152, 0, 11, 29,202, 96, 9,253,181,160, 11, 29,250,112, 11, 29,250,176, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 1,139, 17, 17, 6, 32, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 29,205, 48, 11, 29,205, 48, 11, 27,147, 48, 11, 27,150,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 11, 27,147, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,148, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 74, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,196, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 0, 25, 68,195,224, 0, 65,200, 0, 0, 68,195,224, 0, 65,200, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 32, 0, 26, 6, 32, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 32, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,148, 80, 0, 0, 0,198, 0, 0, 0, 1, + 11, 27,150,224, 11, 27,147, 48, 0, 0, 0, 0, 67, 92, 0, 0,195,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 75, 0, 0, +195,185, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0,202, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, + 1,114, 0,203, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, + 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1,114, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 27,149,112, 11, 27,149,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 27,149,112, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, + 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, + 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112, +101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,196, + 0,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,150,224, 0, 0, 0,198, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 27,148, 80, 0, 0, 0, 0, 68,160, 0, 0, 0, 0, 0, 0, 67,112, 0, 0,195, 31, 80, 0, 68,179,234, 0, +194,182,198,224, 67,165,177,184, 0, 0, 5, 51, 0, 0, 5, 68, 0, 0, 0, 18, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 5, 50, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 5, 50, 0, 0, 0, 18, 0, 0, 1,113, 63,128, 0, 0, 63,128, 0, 0, + 70,250, 0, 0, 70,250, 0, 0, 63, 0, 0, 0, 63,154,225, 72, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 5, 68, + 1,114, 5, 51, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 6, 31, 0, 0, 0, 26, + 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 68, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 52, + 11, 29,205, 48, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,255, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,152, 0, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,154,208, 11, 23, 81, 96, 11, 29,251,112, + 11, 29,251,176, 11, 29,250, 48, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,126, 0, 0, 1,141, 0, 0, 3,233, + 9, 9, 2, 62, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,188, 32, 2,217,188, 32, 11, 27,152,144, + 11, 27,153,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,152,144, + 0, 0, 0,198, 0, 0, 0, 1, 11, 27,153,176, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 68, 15,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 61, 0, 0, 0, 0, 0, 0, 0, 25, + 68, 15, 64, 0, 65,200, 0, 0, 68, 15, 64, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, + 0, 4, 0, 12, 0, 10, 2, 62, 0, 26, 2, 62, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, + 0, 0, 7,126, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 62, 0, 26, + 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 11, 27,153,176, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,152,144, 0, 0, 0, 0, + 67,181,128, 0, 0, 0, 0, 0, 67,218,128, 0, 0, 0, 0, 0, 68, 1,248,131, 0, 0, 0, 0, 68, 3, 26, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 61, 0, 0, 0, 0, 0, 0, 2, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 35,215, 10, + 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2, 62, 2, 67, 2, 62, 2, 67, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,126, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 62, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 2,136, 2,217,188, 32, 0, 0, 0,169, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 25, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 38, 31, 2, 0, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0, 24,250, 30, 2, - 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, - 0, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 73, 1, 2, - 0, 0, 0, 0,120,141,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 26, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,248, 27, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,126, 68, 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 27, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,248, 27, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,104, 29, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, -144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, -144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 30, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 33, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,184, 33, 31, 2, 0, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,251,251, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, -205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 38, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 25, 31, 2, 0, 0, 0, 0,120,247, 30, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,209, 2, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,216, 39, 31, 2, - 0, 0, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,162,166, 3, - 0, 0, 0, 0,248, 39, 76, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 39, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 39, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, - 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, - 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, - 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,166, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,173,175, 3, 0, 0, 0, 0,136,173,175, 3, 0, 0, 0, 0, 24, 44, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0, 24, 44, 31, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120, 44, 31, 2, - 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,120, 44, 31, 2, 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,184,243, 30, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0, -103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 31, 2, - 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, 0, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, - 0, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56, 48, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 48, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 49, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 50, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184, 51, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 52, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,236, 2, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, - 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,232, 53, 31, 2, - 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0, 88, 54, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,200, 54, 31, 2, - 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0, 56, 55, 31, 2, - 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,168, 55, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0, 24, 56, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,136, 56, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,248, 56, 31, 2, - 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,104, 57, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,216, 57, 31, 2, - 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0, 72, 58, 31, 2, - 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,184, 58, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0, 40, 59, 31, 2, - 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,152, 59, 31, 2, - 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0, 8, 60, 31, 2, - 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,120, 60, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,232, 60, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0, 88, 61, 31, 2, - 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,200, 61, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 62, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 66, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, - 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, 40,105, 31, 2, 0, 0, 0, 0, 40,105, 31, 2, - 0, 0, 0, 0, 8, 64, 31, 2, 0, 0, 0, 0,120, 65, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248, 20,181, 3, 0, 0, 0, 0,152,190,176, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 64, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120, 65, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 65, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,192,239, 68, 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0, -127, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -109, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 66, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 71, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, - 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,255, 2, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,216, 67, 31, 2, - 0, 0, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,181, 3, - 0, 0, 0, 0,120, 55, 68, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 67, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 67, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196, - 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, -209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, -209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0,232, 95,177, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,113, 78, 3, - 0, 0, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,113, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 24, 76, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168, 53,119, 3, 0, 0, 0, 0,248,113, 78, 3, - 0, 0, 0, 0,168, 53,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,154,208, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,162, 32, + 11, 27,152, 0, 11, 29,251,240, 11, 29,252, 48, 11, 29,251,176, 11, 29,251,112, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, + 0, 0, 1,141, 0, 0, 3,233, 1, 1, 3,251, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,161, 0, + 11, 27,161, 0, 11, 27,155, 96, 11, 27,159,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 27,155, 96, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,156,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,126,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, + 0, 0, 0, 0, 0, 0, 0, 25, 68,126,128, 0, 65,200, 0, 0, 68,126,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,251, 0, 26, 3,251, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3,251, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,156,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,157,160, + 11, 27,155, 96, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, + 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, + 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 1, 69, 0, 0, 1,167, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 67, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,157,160, + 0, 0, 0,198, 0, 0, 0, 1, 11, 27,158,192, 11, 27,156,128, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, + 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, + 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, + 0, 0, 5, 63, 0, 0, 1,167, 0, 0, 1,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 11, 27,158,192, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,159,224, 11, 27,157,160, 0, 0, 0, 0, + 67, 52, 0, 0,196,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,109, 0, 0,195,145,128, 0, 0, 0, 0,163, + 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 2,144, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 2,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,180, 2,145, 0,163, 2,145, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 63, 0, 0, 5, 63, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,159,224, 0, 0, 0,198, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 27,158,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,167, + 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,192, 32, 68, 65, 84, 65, 0, 0, 3, 68, + 2,217,192, 32, 0, 0, 0,156, 0, 0, 0, 1, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0,128, 0, 0, 0, +128, 0, 0, 0,128, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,207, 53,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65,107,121,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,249,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,207, 53,149, + 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 57,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,251,251, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, + 66,180, 0, 0, 66,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 11, 27,161, 0, 0, 0, 0,157, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, + 61,204,204,205, 68,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,162, 32, + 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,154,208, 11, 29,250,112, 11, 29,249,240, 11, 29,252, 48, 11, 29,251,240, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,141, 0, 0, 3,233, 3, 3, 1, 68, 2, 93, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,164,240, 11, 27,164,240, 11, 27,162,176, 11, 27,163,208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,162,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,163,208, + 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,162, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 0, 0, 0, 0, 0, 25, 67,161,128, 0, 65,200, 0, 0, 67,161,128, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 68, 0, 26, 1, 68, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,141, 0, 0, 1,166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,163,208, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,162,176, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,153,128, 0,196, 12, 64, 0, 0, 0, 0, 0, 0, 0, 1, 51, 0, 0, 1, 68, 0, 0, 0, 18, 0, 0, 2, 66, + 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 18, 0, 0, 2, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, + 0, 0, 4, 12, 0, 6, 1, 68, 2, 67, 1, 51, 2, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 67, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 2, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,244, 11, 27,164,240, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,205,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 29,205,144, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, + 0, 0, 0, 14, 11, 27,166, 16, 68, 65, 84, 65, 0, 0, 0,168, 11, 27,166, 16, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 1, 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, + 0, 21, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, + 2,174, 10, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, + 0, 1, 0, 1, 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, + 0, 0, 0, 0, 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, + 2,154,244, 32, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,167, 64, 0, 0, 0,193, 0, 0, 0, 1, 11, 27,220,208, 9,253,180,224, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31,177, 96, 11, 27,171, 0, 11, 27,171, 64, 11, 27,176,128, 11, 27,176,192, + 11, 27,217,160, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 31,177, 96, 0, 0, 0,194, 0, 0, 0, 1, + 11, 27,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168, 0, + 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168, 64, 11, 31,177, 96, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 27,168, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168,128, 11, 27,168, 0, 0, 0, 0, 0, 7,126, 4, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168,192, 11, 27,168, 64, + 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168,192, 0, 0, 0,194, 0, 0, 0, 1, + 11, 27,169, 0, 11, 27,168,128, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169, 0, + 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169, 64, 11, 27,168,192, 0, 0, 0, 0, 7,126, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 27,169, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169,128, 11, 27,169, 0, 0, 0, 0, 0, 5,240, 3,168, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169,192, 11, 27,169, 64, + 0, 0, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169,192, 0, 0, 0,194, 0, 0, 0, 1, + 11, 27,170, 0, 11, 27,169,128, 0, 0, 0, 0, 0, 0, 1,104, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170, 0, + 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170, 64, 11, 27,169,192, 0, 0, 0, 0, 5,240, 1,104, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 27,170, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170,128, 11, 27,170, 0, 0, 0, 0, 0, 2,248, 1,104, + 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170,192, 11, 27,170, 64, + 0, 0, 0, 0, 5,240, 2,236, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170,192, 0, 0, 0,194, 0, 0, 0, 1, + 11, 27,171, 0, 11, 27,170,128, 0, 0, 0, 0, 7,126, 2,236, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,171, 0, + 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,170,192, 0, 0, 0, 0, 2,248, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,171, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,171,128, 0, 0, 0, 0, 11, 27,168, 0, 11, 27,168, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,171,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,171,192, + 11, 27,171, 64, 11, 27,168, 0, 11, 27,168,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,171,192, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172, 0, 11, 27,171,128, 11, 27,168, 64, 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172, 64, 11, 27,171,192, 11, 27,168,192, + 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172, 64, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,172,128, 11, 27,172, 0, 11, 27,169, 0, 11, 27,169, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,172,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172,192, 11, 27,172, 64, 11, 27,168,128, 11, 27,169,128, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173, 0, 11, 27,172,128, + 11, 27,169,192, 11, 31,177, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173, 0, 0, 0, 0,195, + 0, 0, 0, 1, 11, 27,173, 64, 11, 27,172,192, 11, 27,168,192, 11, 27,169,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,173, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173,128, 11, 27,173, 0, 11, 27,169, 64, 11, 27,170, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173,192, + 11, 27,173, 64, 11, 27,169,128, 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173,192, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174, 0, 11, 27,173,128, 11, 27,169,192, 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174, 64, 11, 27,173,192, 11, 27,170, 0, + 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174, 64, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,174,128, 11, 27,174, 0, 11, 27,169,128, 11, 27,170,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,174,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174,192, 11, 27,174, 64, 11, 27,169, 64, 11, 27,170,128, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175, 0, 11, 27,174,128, + 11, 27,169, 0, 11, 27,170,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175, 0, 0, 0, 0,195, + 0, 0, 0, 1, 11, 27,175, 64, 11, 27,174,192, 11, 27,168,128, 11, 27,170,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,175, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175,128, 11, 27,175, 0, 11, 27,170,128, 11, 27,170,192, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175,192, + 11, 27,175, 64, 11, 27,168,192, 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175,192, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,176, 0, 11, 27,175,128, 11, 27,169, 64, 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,176, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,176, 64, 11, 27,175,192, 11, 27,170, 64, + 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,176, 64, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,176,128, 11, 27,176, 0, 11, 27,169,192, 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,176,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,176, 64, 11, 27,169,128, 11, 31,177, 96, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,176,192, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,179,144, 0, 0, 0, 0, + 11, 27,168,192, 11, 27,168, 0, 11, 27,168, 64, 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,169, + 0, 0, 4, 5, 7, 7, 7,127, 0, 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,220,112, 11, 27,220,112, + 11, 27,177, 80, 11, 27,178,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,177, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,178,112, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, + 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,236, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,127, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,178,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,177, 80, + 0, 0, 0, 0, 68,239,192, 0, 0, 0, 0, 0, 66, 28, 0, 0, 0, 0, 0, 0, 68,237,192, 0, 0, 0, 0, 0, 66,134, 0, 0, + 0, 0, 7,110, 0, 0, 7,127, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 7,109, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,127, 0, 67, 7,110, 0, 67, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,169, 0, 0, 3,235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,179,144, 0, 0, 0,197, + 0, 0, 0, 1, 11, 27,200,160, 11, 27,176,192, 11, 27,169,128, 11, 27,170,128, 11, 27,170,192, 11, 27,168,128, 0, 0, 0, 0, + 0, 0, 5,241, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 2,235, 4, 4, 1,142, 2,236, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 27,199,160, 11, 27,199,160, 11, 27,180, 32, 11, 27,181, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,180, 32, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,181, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,199, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, 0, 0, 0, 0, 25, 67,198,128, 0, 65,200, 0, 0, 67,198,128, 0, 65,200, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1,142, 0, 26, 1,142, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,210, 0, 0, 2,235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,181, 64, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,180, 32, 0, 0, 0, 0, 67,198,128, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,190,127,254,196, 52,127,254, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 1,142, 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, + 0, 0, 1,126, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, + 0, 6, 1,142, 2,210, 1,125, 2,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, + 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 2,210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 27,182, 96, 11, 27,198, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 64, 11, 27,182, 96, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,183,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255,220, 1,124, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,183,208, 0, 0, 0,196, + 0, 0, 0, 1, 11, 27,185, 64, 11, 27,182, 96, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, 110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, 110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1,124, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 53,119, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0,152, 56,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,185, 64, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,186,176, 11, 27,183,208, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,120,113,119, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216,176, 3, 0, 0, 0, 0,168, 53,119, 3, - 0, 0, 0, 0,200, 59,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 27,186,176, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,188, 32, 11, 27,185, 64, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, + 1,124, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,188, 32, 0, 0, 0,196, 0, 0, 0, 1, + 11, 27,189,144, 11, 27,186,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, +105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, +105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,216,176, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104,179,187, 3, 0, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,136, 62,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1,124, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,189,144, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,191, 0, 11, 27,188, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104,179,187, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,182,179, 3, 0, 0, 0, 0,216,216,176, 3, - 0, 0, 0, 0,200, 65,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, -116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, -111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,254, 34, 1,124, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,182,179, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,104,179,187, 3, 0, 0, 0, 0,200, 74,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,191, 0, + 0, 0, 0,196, 0, 0, 0, 1, 11, 27,192,112, 11, 27,189,144, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1,124, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,192,112, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,193,224, + 11, 27,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,232, 78,167, 3, 0, 0, 0, 0, 8,182,179, 3, - 0, 0, 0, 0,168, 76,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, + 0, 0, 1, 64, 11, 27,193,224, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,195, 80, 11, 27,192,112, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 78,167, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104,186,182, 3, 0, 0, 0, 0,168, 59, 76, 3, 0, 0, 0, 0,152, 79,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0,253,218, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104,186,182, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72, 83, 78, 3, 0, 0, 0, 0,232, 78,167, 3, - 0, 0, 0, 0, 88, 83,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,195, 80, 0, 0, 0,196, + 0, 0, 0, 1, 11, 27,196,192, 11, 27,193,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 83, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0,104,186,182, 3, 0, 0, 0, 0,200, 85,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1,124, 0, 0, 0, 20, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,196,192, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,198, 48, 11, 27,195, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 56, 75, 62, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 83, 78, 3, - 0, 0, 0, 0, 8, 93,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, -107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0,200, 23, 89, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,248, 71, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0,232, 66, 31, 2, - 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2, - 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,200, 83, 31, 2, 0, 0, 0, 0,200, 83, 31, 2, - 0, 0, 0, 0,232, 72, 31, 2, 0, 0, 0, 0,168, 78, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 16, 79, 3, 0, 0, 0, 0, 40,125,184, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 72, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88, 74, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 74, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200, 75, 31, 2, 0, 0, 0, 0,232, 72, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 75, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56, 77, 31, 2, 0, 0, 0, 0, 88, 74, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 77, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 78, 31, 2, 0, 0, 0, 0,200, 75, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 78, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 77, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 80, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, 24, 80, 31, 2, - 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, -166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,252, 5,136,190, - 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, -158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, -166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, - 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200, 83, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1,124, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, + 11, 27,198, 48, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,196,192, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, + 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 11, 27,199,160, 0, 0, 0,162, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, + 11, 27,200,160, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,207,240, 11, 27,179,144, 11, 27,170, 64, 11, 27,171, 0, 11, 27,169, 64, + 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,105, 0, 0, 3,167, 1, 1, 2,247, 2, 63, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,206,208, 11, 27,206,208, 11, 27,201, 48, 11, 27,205,176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,201, 48, 0, 0, 0,198, 0, 0, 0, 1, + 11, 27,202, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 61,192, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,246, 0, 0, 0, 0, 0, 0, 0, 25, 68, 61,128, 0, 65,200, 0, 0, + 68, 61,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,247, + 0, 26, 2,247, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,105, + 0, 0, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,202, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,203,112, 11, 27,201, 48, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, + 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, + 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, + 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2,249, 0, 0, 2,249, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 37, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,203,112, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,204,144, 11, 27,202, 80, + 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 0, + 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,131, 0, 0, 1,131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,204,144, 0, 0, 0,198, + 0, 0, 0, 1, 11, 27,205,176, 11, 27,203,112, 0, 0, 0, 0, 67, 35, 0, 0,196,142,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 35, 0, 0,196, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 2,121, 0, 0, 0, 0, + 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 2,121, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, + 0, 6, 0,180, 2,122, 0,163, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 5,239, + 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, + 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0,248, 71, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5, -104, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 55, 3, 2, 0, 0, 0, 0,216, 89, 31, 2, 0, 0, 0, 0,216, 89, 31, 2, - 0, 0, 0, 0, 56, 86, 31, 2, 0, 0, 0, 0,168, 87, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 30,178, 3, 0, 0, 0, 0,200, 57,178, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 86, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 87, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 57, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 87, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 86, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0,224,189, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0, -240, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 56, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 89, 31, 2, - 0, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,136, 89, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136, 89, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,216, 89, 31, 2, 0, 0, 0, 0, -178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0,120,113,184, 3, 0, 0, 0, 0,168, 10, 89, 3, 0, 0, 0, 0, 24, 89, 31, 2, 0, 0, 0, 0, - 24, 89, 31, 2, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, -248, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168,209, 2, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,152, 92, 31, 2, 0, 0, 0, 0, - 8, 94, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,184,176, 3, 0, 0, 0, 0, - 40, 86, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 92, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 8, 94, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,211, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 94, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 92, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, - 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,210, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104,220,182, 3, 0, 0, 0, 0,104,220,182, 3, 0, 0, 0, 0,216, 96, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, -216, 96, 31, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56, 97, 31, 2, 0, 0, 0, 0, - 68, 65, 84, 65,224, 0, 0, 0, 56, 97, 31, 2, 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, -152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -104, 98, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0, -216, 50, 31, 2, 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 42, 3, 2, 0, 0, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, - 88, 99, 31, 2, 0, 0, 0, 0,200,100, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,190, 74, 3, 0, 0, 0, 0,232, 19,184, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 99, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,200,100, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 45, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,100, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 99, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, - 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, - 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104, 43, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0, 56,102, 31, 2, 0, 0, 0, 0, -169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0, -231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, -136,171, 31, 2, 0, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, -184,114, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -216,106, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, -184,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -232,109, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 88,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, - 72,107, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, -184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, -216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0, -216,106, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, -120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -216,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0, - 8,109, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,114, 31, 2, 0, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 40,115, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0, - 24,116, 31, 2, 0, 0, 0, 0,136,117, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,171,181, 3, 0, 0, 0, 0,200, 91, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,116, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,136,117, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,117, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,116, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,248, 11, 27,205,176, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,204,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,238, 2, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 0, 0, 0, 0, -200,122, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 20,184, 3, 0, 0, 0, 0, - 24, 63,183, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,119, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 88,121, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,246, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,121, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, -200,122, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196, 0, 0, 0, 0, - 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, - 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,240, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 23, 79, 3, 0, 0, 0, 0, -120, 23, 79, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 23, 79, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,243, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2,247, 2, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2,196,226, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,196,226, 32, 0, 0, 0,156, 0, 0, 0, 1, 63,140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,193,141, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,191,128, 1, 80,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,163,215,225, 0, 0, 0, 0, 62,209,239, 68, +190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, + 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,209,239, 69, + 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185, +190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, 63,128, 0, 0, 62,229,157,178, +191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, + 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 62,191,236,217, + 63, 85,117, 54,188, 70,246,224,182, 32,160, 0,190,136, 5,252, 62, 3, 33, 43, 63, 23,135,235, 53, 96, 0, 0,196, 25,104,215, + 67,135,132,133,195,167, 9, 37,194, 71,252,136, 68, 25, 54, 3,195,135, 87,158, 67,166,209,205, 66, 71,254,151, 62,209,239, 68, +190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, + 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,229,157,178, +191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, + 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 64, 45, 86, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92, +190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 59, 29,227,107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -200,122, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,121, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, - 56,124, 31, 2, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, - 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, 66,137,152, 86, 66,126, 27,116, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,240, 11, 27,206,208, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, + 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,207,240, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,212,160, 11, 27,200,160, + 11, 31,177, 96, 11, 27,169,192, 11, 27,170, 0, 11, 27,169,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, + 0, 0, 1,103, 18, 18, 5,240, 1,104, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,211, 16, 11, 27,211, 16, + 11, 27,208,128, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,208,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 67,160,128, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 68,190, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, + 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, 68,189,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 5,240, 0, 26, 5,240, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5,240, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,209,160, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,208,128, + 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 67, 51, 0, 0, 0, 0, 0, 0, 68,187,224, 0, 0, 0, 0, 0, 67,167, 0, 0, + 0, 0, 5,223, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5,222, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 5,240, 1, 78, 5,223, 1, 78, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 26, 0, 0, 1,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,240, 1, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 28, 11, 27,210,192, 0, 0, 0,177, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 4, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1,104, + 11, 27,211, 16, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 27,210,192, 11, 27,210,192, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 0, 4, 8, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,212,160, + 0, 0, 0,197, 0, 0, 0, 1, 11, 27,217,160, 11, 27,207,240, 11, 27,170,128, 11, 27,169, 64, 11, 27,169, 0, 11, 27,170,192, + 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3,167, 3, 3, 1,142, 0,187, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,215,112, 11, 27,215,112, 11, 27,213, 48, 11, 27,214, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,213, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,214, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,199, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, 0, 0, 0, 0, 25, 67,198,128, 0, 65,200, 0, 0, 67,198,128, 0, + 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1,142, 0, 26, 1,142, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,214, 80, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,213, 48, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,190,128, 0,195, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 1,142, 0, 0, 0, 18, 0, 0, 0,160, + 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 18, 0, 0, 0,160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, + 0, 0, 4, 12, 0, 6, 1,142, 0,161, 1,125, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, + 0, 0, 7,126, 0, 0, 3, 7, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0,161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,244, 11, 27,215,112, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,216,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 27,216,144, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, + 0, 0, 0, 14, 11, 27,216,208, 68, 65, 84, 65, 0, 0, 0,168, 11, 27,216,208, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 1, 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, + 0, 21, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, + 2,174, 10, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, + 0, 1, 0, 1, 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, + 0, 0, 0, 0, 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, + 2,154,244, 32, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,217,160, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,212,160, + 11, 27,169,192, 11, 27,168,192, 11, 27,171, 0, 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, + 0, 0, 3,167, 9, 9, 2,248, 2, 63, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,196,230, 32, 2,196,230, 32, + 11, 27,218, 48, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,218, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 68, 62, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 0, 0, + 0, 0, 0, 25, 68, 61,192, 0, 65,200, 0, 0, 68, 61,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,248, 0, 26, 2,248, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, 0, 0, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2,248, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,219, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,218, 48, + 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 68, 22,192, 0, 68, 23,150,248, 68,100, 41, 8, 67, 62,224, 46, 67,206, 15,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 0, 0, 0, 0, 2, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 35,215, 10, 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2,248, 2, 37, 2,248, 2, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,248, 2, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 2,136, 2,196,230, 32, 0, 0, 0,169, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 12, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 61,204,204,205, 0, 0, 1,231, 0, 0, 1,243, + 0, 0, 1,122, 0, 0, 1,124, 0, 0, 1,231, 0, 0, 1,243, 0, 0, 0, 4, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4507,16 +3571,101 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,220,208, 0, 0, 0,193, 0, 0, 0, 1, + 11, 27,245, 16, 11, 27,167, 64, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,221,144, 11, 27,223, 80, 11, 27,223,144, + 11, 27,226, 16, 11, 27,226, 80, 11, 27,234,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,221,144, + 0, 0, 0,194, 0, 0, 0, 1, 11, 27,221,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 27,221,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 16, 11, 27,221,144, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 80, 11, 27,221,208, + 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 80, 0, 0, 0,194, 0, 0, 0, 1, + 11, 27,222,144, 11, 27,222, 16, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222,144, + 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222,208, 11, 27,222, 80, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, + 0, 0, 0, 20, 11, 27,222,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 16, 11, 27,222,144, 0, 0, 0, 0, 7,126, 3,234, + 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 80, 11, 27,222,208, + 0, 0, 0, 0, 3,200, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 80, 0, 0, 0,194, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 27,223, 16, 0, 0, 0, 0, 3,200, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,144, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,223,208, 0, 0, 0, 0, 11, 27,221,208, 11, 27,222, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224, 16, 11, 27,223,144, 11, 27,221,208, + 11, 27,222,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224, 16, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,224, 80, 11, 27,223,208, 11, 27,222, 16, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,224, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,144, 11, 27,224, 16, 11, 27,222,144, 11, 27,222,208, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,208, 11, 27,224, 80, + 11, 27,222,144, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,208, 0, 0, 0,195, + 0, 0, 0, 1, 11, 27,225, 16, 11, 27,224,144, 11, 27,221,144, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,225, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225, 80, 11, 27,224,208, 11, 27,221,144, 11, 27,222,144, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,144, + 11, 27,225, 16, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,144, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,208, 11, 27,225, 80, 11, 27,222,208, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,226, 16, 11, 27,225,144, 11, 27,222, 80, + 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,226, 16, 0, 0, 0,195, 0, 0, 0, 1, + 0, 0, 0, 0, 11, 27,225,208, 11, 27,222, 80, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, + 11, 27,226, 80, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,229, 32, 0, 0, 0, 0, 11, 27,222,144, 11, 27,221,208, 11, 27,222, 16, + 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,244,176, 11, 27,244,176, 11, 27,226,224, 11, 27,228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,226,224, 0, 0, 0,198, 0, 0, 0, 1, + 11, 27,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, + 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, + 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, + 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,228, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,226,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, + 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,229, 32, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,234,128, 11, 27,226, 80, + 11, 27,221,144, 11, 27,222,144, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, + 0, 0, 3,233, 6, 6, 3,200, 3,234, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,234,114, 32, 2,234,114, 32, + 11, 27,229,176, 11, 27,233, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 27,229,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,230,208, 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, + 65,208, 0, 0, 0, 0, 0, 0, 68,114, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, + 0, 0, 0, 25, 68,113,192, 0, 65,200, 0, 0, 68,113,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,200, 0, 26, 3,200, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3,200, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,230,208, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,233, 96, 11, 27,229,176, + 0, 0, 0, 0, 67, 91, 0, 0,196,115,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 74,255,254,196,115,255,254, 0, 0, 0, 0, + 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, 3,208, 0,203, 3,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 3,208, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,231,240, 11, 27,231,240, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,231,240, 0, 0, 0,196, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, +110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, +110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,152, 0,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,233, 96, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,230,208, + 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191, 43, 51, 51, 63,213,153,154,191,131, 51, 51, 64, 1,153,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 3,199, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,236, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 32,248, 2,234,114, 32, 0, 0, 0,167, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, + 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4614,7 +3763,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4646,6 +3794,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4744,875 +3893,765 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -168,157, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, -232,109, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 40,108, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, 0, 0, 0, 0,120,169, 31, 2, 0, 0, 0, 0,120,169, 31, 2, 0, 0, 0, 0, -152,158, 31, 2, 0, 0, 0, 0, 88,164, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 32, 90, 3, 0, 0, 0, 0,136,218,187, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,158, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 8,160, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 3, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8,226, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,160, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,120,161, 31, 2, 0, 0, 0, 0,152,158, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, - 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 78, 68, 2, 0, 0, 0, 0, 40, 78, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 78, 68, 2, 0, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55,194, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, -100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, -100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,120,161, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,162, 31, 2, 0, 0, 0, 0, - 8,160, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, - 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,239,178, 3, 0, 0, 0, 0, 72,239,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 72,239,178, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,168,224, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,162, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 88,164, 31, 2, 0, 0, 0, 0,120,161, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, - 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,164, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,162, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,216, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,165, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,200,165, 31, 2, 0, 0, 0, 0, -156, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, - 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191, -147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, - 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, -100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62, -216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,247, 46,190,192, - 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, - 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, -100, 98, 82, 64, 0, 25, 95, 64,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, - 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66, -116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,120,169, 31, 2, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, -136,171, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0, -120,177, 31, 2, 0, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0, 88,185, 31, 2, 0, 0, 0, 0,200,185, 31, 2, 0, 0, 0, 0, - 24,211, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 24,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, -168,172, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -136,173, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -216,174, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, -104,174, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 72,175, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -152,176, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,234, 3, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, - 40,176, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 8,177, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,232, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 88,178, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,178, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -200,178, 31, 2, 0, 0, 0, 0,232,177, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,178, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 56,179, 31, 2, 0, 0, 0, 0, 88,178, 31, 2, 0, 0, 0, 0,136,173, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,179, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -168,179, 31, 2, 0, 0, 0, 0,200,178, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,179, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 24,180, 31, 2, 0, 0, 0, 0, 56,179, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -136,180, 31, 2, 0, 0, 0, 0,168,179, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -248,180, 31, 2, 0, 0, 0, 0, 24,180, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,180, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -104,181, 31, 2, 0, 0, 0, 0,136,180, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,181, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -216,181, 31, 2, 0, 0, 0, 0,248,180, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,181, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 72,182, 31, 2, 0, 0, 0, 0,104,181, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,182, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -184,182, 31, 2, 0, 0, 0, 0,216,181, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,182, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 40,183, 31, 2, 0, 0, 0, 0, 72,182, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,183, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -152,183, 31, 2, 0, 0, 0, 0,184,182, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,183, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 8,184, 31, 2, 0, 0, 0, 0, 40,183, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,248,173, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -120,184, 31, 2, 0, 0, 0, 0,152,183, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -232,184, 31, 2, 0, 0, 0, 0, 8,184, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,184, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 88,185, 31, 2, 0, 0, 0, 0,120,184, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,185, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232,184, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,185, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -152,189, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, 24,173, 31, 2, 0, 0, 0, 0, -136,173, 31, 2, 0, 0, 0, 0,216,174, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, -235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 3, 3, 2, 0, 0, 0, 0, - 8,219, 31, 2, 0, 0, 0, 0, 8,219, 31, 2, 0, 0, 0, 0,184,186, 31, 2, 0, 0, 0, 0, 40,188, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 88,181, 3, 0, 0, 0, 0,136,172,175, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,184,186, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,188, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, - 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, - 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, -235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 40,188, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,186, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, - 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, - 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,152,189, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0, -200,185, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, -248,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, - 15, 15,127, 7, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,104,193, 31, 2, 0, 0, 0, 0, -104,193, 31, 2, 0, 0, 0, 0,136,190, 31, 2, 0, 0, 0, 0,248,191, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,243, 74, 3, 0, 0, 0, 0,120,145,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -136,190, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,191, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,214, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -248,191, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,190, 31, 2, 0, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,127, 7, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,213, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -104,193, 31, 2, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, -120,202, 31, 2, 0, 0, 0, 0,152,189, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0, - 72,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, - 93, 0, 0, 0,231, 1, 0, 0, 8, 8,127, 7,139, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46, 3, 2, 0, 0, 0, 0, - 56,201, 31, 2, 0, 0, 0, 0, 56,201, 31, 2, 0, 0, 0, 0,120,195, 31, 2, 0, 0, 0, 0,200,199, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 31,166, 3, 0, 0, 0, 0,168, 83,188, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,120,195, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,196, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, - 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, - 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, - 93, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,232,196, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88,198, 31, 2, 0, 0, 0, 0, -120,195, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0,128,184,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, - 0,128,184,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, -113, 1,203, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 6, 0, 0,126, 7, 0, 0, -119, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,113, 1, 0, 0, 4, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 49, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 88,198, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,199, 31, 2, 0, 0, 0, 0, -232,196, 31, 2, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, - 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 6, 0, 0, -231, 1, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 48, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,200,199, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88,198, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,112, 1, 0, 0, 18, 0, 0, 0,162, 6, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 6, 0, 0, 18, 0, 0, 0,112, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, - 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,163, 6, -113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 6, 0, 0, -119, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 6,113, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0, 56,201, 31, 2, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,202, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, - 24,211, 31, 2, 0, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0,152,176, 31, 2, 0, 0, 0, 0,104,174, 31, 2, 0, 0, 0, 0, - 40,176, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, -233, 1, 0, 0,233, 3, 0, 0, 2, 2, 80, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226, 2, 2, 0, 0, 0, 0, - 40,209, 31, 2, 0, 0, 0, 0, 40,209, 31, 2, 0, 0, 0, 0,104,203, 31, 2, 0, 0, 0, 0,184,207, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,147,178, 3, 0, 0, 0, 0,200, 60,183, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,104,203, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,204, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 83, 68, 0, 0,200, 65, - 0,192, 83, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 80, 3, - 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, -233, 1, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,216,204, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 72,206, 31, 2, 0, 0, 0, 0, -104,203, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0,128,234,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, -231, 1,200, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, - 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,231, 1, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,229, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 72,206, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,207, 31, 2, 0, 0, 0, 0, -216,204, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, - 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,230, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,184,207, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,206, 31, 2, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 1, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0,230, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, - 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,119, 2, -231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, - 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 2,231, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,228, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0, 40,209, 31, 2, 0, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,210, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,104,210, 31, 2, 0, 0, 0, 0, 19, 1, 0, 0, 1, 0, 0, 0, -152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24,211, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120,202, 31, 2, 0, 0, 0, 0, 8,177, 31, 2, 0, 0, 0, 0, 40,176, 31, 2, 0, 0, 0, 0, -216,174, 31, 2, 0, 0, 0, 0, 72,175, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, -233, 1, 0, 0,233, 3, 0, 0, 8, 8, 46, 4, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46, 3, 2, 0, 0, 0, 0, -200,217, 31, 2, 0, 0, 0, 0,200,217, 31, 2, 0, 0, 0, 0, 8,212, 31, 2, 0, 0, 0, 0, 88,216, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,162,182, 3, 0, 0, 0, 0,120,102, 68, 2, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 8,212, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120,213, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,133, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,160,133, 68, 0, 0,200, 65, - 0,160,133, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 46, 4, - 26, 0, 46, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, -233, 1, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,120,213, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,232,214, 31, 2, 0, 0, 0, 0, - 8,212, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, - 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 49, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,232,214, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 88,216, 31, 2, 0, 0, 0, 0, -120,213, 31, 2, 0, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67,145,139,217,196,145,139,217, 68, -240, 6, 70,196,240, 6, 70, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 4, 0, 0, 0, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0, 46, 4, -231, 1, 46, 4,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,126, 7, 0, 0, - 3, 2, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 4,231, 1, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 48, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 88,216, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232,214, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, - 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, - 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0,200,217, 31, 2, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,184, 5, 0, 0,152,219, 31, 2, 0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -152,225, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 8,240, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,230, 31, 2, 0, 0, 0, 0,152,189, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, - 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, - 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, - 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, -205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, - 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, -102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,234, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,183, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, - 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 5, 0,128, 7, 56, 4,205,204,204, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, -152,225, 31, 2, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0,210, 2,173, 1,248,248, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0,184,228, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 0, 4, 0, 0,165, 3,239, 2,232,255, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,229, 31, 2, 0, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,229, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 0, 4, 0, 0,159, 0, 15, 2,168,242, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0, 8,230, 31, 2, 0, 0, 0, 0, -150, 0, 0, 0, 1, 0, 0, 0, 24,232, 31, 2, 0, 0, 0, 0,152,232, 31, 2, 0, 0, 0, 0, 24,233, 31, 2, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, - 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61, -102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0, -204,197,121, 63, 0, 0, 0, 63, 68, 65, 84, 65, 56, 0, 0, 0, 24,232, 31, 2, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, -152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0, -152,232, 31, 2, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,200,255,128, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 24,233, 31, 2, 0, 0, 0, 0,148, 0, 0, 0, 1, 0, 0, 0, -168,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,124, 7,231, 65,255, 74, 20, 65, 54, 86,123, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 0, 0, 0,200,233, 31, 2, 0, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, -255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, - 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63, -205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0,136,235, 31, 2, 0, 0, 0, 0, - 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, -168,237, 31, 2, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, -205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,239, 31, 2, 0, 0, 0, 0, - 68, 65, 84, 65, 64, 1, 0, 0,168,237, 31, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63, -242, 4, 53,191,243, 4, 53, 63, 56,239, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, - 56,239, 31, 2, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,239, 31, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0, 8,240, 31, 2, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61, -114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, - 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, - 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,242, 31, 2, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 56,242, 31, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 32, 5, 0, 0,168,242, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, - 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,234, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, - 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, - 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, - 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, - 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, - 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, - 24,248, 31, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,248,248, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, -232,255, 31, 2, 0, 0, 0, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 96, 11, 27,234,128, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,229, 32, 11, 27,223, 80, 11, 27,223, 16, + 11, 27,222,208, 11, 27,222, 80, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 3,233, 1, 1, 3,182, + 3,234, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,243,144, 11, 27,243,144, 11, 27,235, 16, 11, 27,242,112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,235, 16, 0, 0, 0,198, + 0, 0, 0, 1, 11, 27,236, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 68,109,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 0, 0, 0, 0, 0, 0, 0, 25, 68,109, 64, 0, + 65,200, 0, 0, 68,109, 64, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, + 0, 10, 3,182, 0, 26, 3,182, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 7,126, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 26, 0, 0, 0, 1, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 27,236, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,238,192, 11, 27,235, 16, 0, 0, 0, 0, 67, 32, 0, 0, +196, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, + 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, + 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, + 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 3, 88, 0,143, 3, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 4,104, 0, 0, 0,146, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,160, 3, 88, 0, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,237, 80, 11, 27,237, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,237, 80, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, + 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, + 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 48, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,233, 0,143, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 27,238,192, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,241, 80, 11, 27,236, 48, 0, 0, 0, 0, 67, 33, 0, 0, +194,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,242, 90, 91, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, + 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, + 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, + 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 4,104, 0, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,239,224, 11, 27,239,224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,239,224, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97, +116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97, +116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,216, 0,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,254, 31, 2, 0, 0, 0, 0,184,254, 31, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, - 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, - 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 27,241, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,242,112, 11, 27,238,192, 0, 0, 0, 0, 67, 35, 0, 0, +196,126,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,126,191,255, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, + 0, 0, 0, 18, 0, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, + 0, 0, 0, 18, 0, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, + 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 4, 13, 0,163, 3,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,242,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, + 11, 27,241, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,105, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,187,104, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,187,104, 32, + 0, 0, 0,156, 0, 0, 0, 1, 63,172,246, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +190, 76,215, 74, 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143, +190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 95, 25, 0, 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,160, 0, 0, 0, 0,190,205,177, 52, 62, 70, 74,142, + 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 64, 54,173,188,191,161, 95,136, + 63,198,231,147, 63,128, 0, 0, 63, 13,214,185,190,224,249,208,191, 81,180, 48,191, 81,158,184, 63,157,188,189, 62, 88,225,140, + 62,185, 63, 26, 62,185, 44, 35,188,146,213,241, 63,122,156,206,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 82, 98,100, 64, 95, 25, 0, 62,155, 92,121, 63, 44,198,151,188, 32,214,192,180, 40, 0, 0,190,188, 15,195, 62, 53, 75,132, + 63, 81,125,216,179,192, 0, 0,193,100, 77,115, 64,201,173, 17,192,248,148,181,192,159,247,203, 65, 87, 74,233,192,190, 46,247, + 64,234,106, 88, 64,160, 8, 45, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143, +190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 95, 25, 0, 63,128, 0, 0, 63, 13,214,185,190,224,249,208,191, 81,180, 48,191, 81,158,184, 63,157,188,189, 62, 88,225,140, + 62,185, 63, 26, 62,185, 44, 35,188,146,213,241, 63,122,156,206,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 82, 98,100, 64, 95, 25, 0, 62,250,201,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,201,248, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,201,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 64, 95, 25, 0, 64, 95, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 58,245,145,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, + 66,137,152, 85, 66,126, 27,116, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 11, 27,243,144, 0, 0, 0,157, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, + 67,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,245, 16, 0, 0, 0,193, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,220,208, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,245,208, 11, 27,248,144, + 11, 27,248,208, 11, 27,253, 16, 11, 27,253, 80, 11, 28, 16,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, + 11, 27,245,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 80, 11, 27,245,208, 0, 0, 0, 0, + 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246,144, + 11, 27,246, 16, 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246,144, 0, 0, 0,194, + 0, 0, 0, 1, 11, 27,246,208, 11, 27,246, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, + 11, 27,246,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 16, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, + 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 80, 11, 27,246,208, 0, 0, 0, 0, + 7,126, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247,144, + 11, 27,247, 16, 0, 0, 0, 0, 7,126, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247,144, 0, 0, 0,194, + 0, 0, 0, 1, 11, 27,247,208, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, + 11, 27,247,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 16, 11, 27,247,144, 0, 0, 0, 0, 3, 80, 3,234, 0, 0, 0, 1, + 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 80, 11, 27,247,208, 0, 0, 0, 0, + 0, 0, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248,144, + 11, 27,248, 16, 0, 0, 0, 0, 3, 80, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248,144, 0, 0, 0,194, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,248, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,248,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 16, 0, 0, 0, 0, 11, 27,246, 16, 11, 27,246, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 80, 11, 27,248,208, + 11, 27,246, 16, 11, 27,246,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 80, 0, 0, 0,195, + 0, 0, 0, 1, 11, 27,249,144, 11, 27,249, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,249,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249,208, 11, 27,249, 80, 11, 27,246,208, 11, 27,247, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 16, + 11, 27,249,144, 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 16, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 80, 11, 27,249,208, 11, 27,245,208, 11, 27,247,144, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250,144, 11, 27,250, 16, 11, 27,246,208, + 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250,144, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,250,208, 11, 27,250, 80, 11, 27,247,144, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,250,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 16, 11, 27,250,144, 11, 27,248, 16, 11, 27,248, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 80, 11, 27,250,208, + 11, 27,247,208, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 80, 0, 0, 0,195, + 0, 0, 0, 1, 11, 27,251,144, 11, 27,251, 16, 11, 27,247, 80, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 27,251,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251,208, 11, 27,251, 80, 11, 27,246,144, 11, 27,248,144, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 16, + 11, 27,251,144, 11, 27,247,144, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 16, + 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 80, 11, 27,251,208, 11, 27,245,208, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252,144, 11, 27,252, 16, 11, 27,247, 16, + 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252,144, 0, 0, 0,195, 0, 0, 0, 1, + 11, 27,252,208, 11, 27,252, 80, 11, 27,247, 80, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, + 11, 27,252,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,253, 16, 11, 27,252,144, 11, 27,246,208, 11, 27,248, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,253, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,252,208, + 11, 27,247, 80, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,253, 80, 0, 0, 0,197, + 0, 0, 0, 1, 11, 28, 0, 32, 0, 0, 0, 0, 11, 27,246,208, 11, 27,246, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 11, 28, 22,144, 11, 28, 22,144, 11, 27,253,224, 11, 27,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,253,224, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,255, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,255, 0, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,253,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, + 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 96, 11, 28, 0, 32, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 3,224, 11, 27,253, 80, 11, 27,245,208, 11, 27,247,144, + 11, 27,248,144, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 7,127, + 0, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 2,240, 11, 28, 2,240, 11, 28, 0,176, 11, 28, 1,208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 0,176, 0, 0, 0,198, + 0, 0, 0, 1, 11, 28, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, + 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, + 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 28, 1,208, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 0,176,192, 64, 0, 0, 67,126, 0, 0, + 0, 0, 0, 0, 66, 72, 0, 0,192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,126, + 0, 0, 0, 18, 0, 0, 0, 65, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, + 0, 72, 0, 0, 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 7,127, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7,127, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,188, 11, 28, 2,240, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, + 11, 28, 3,224, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 9,240, 11, 28, 0, 32, 11, 27,247,144, 11, 27,248, 16, 11, 27,247, 80, + 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 1,231, 8, 8, 7,127, 1,139, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 8,240, 11, 28, 8,240, 11, 28, 4,112, 11, 28, 7,208, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 4,112, 0, 0, 0,198, 0, 0, 0, 1, + 11, 28, 5,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 26,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, + 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, + 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 93, + 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, + 11, 28, 5,144, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 6,176, 11, 28, 4,112, 0, 0, 0, 0, 67, 92, 0, 0,195,184,128, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 75, 0, 0,195,184,128, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, + 0, 0, 1,112, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, + 0, 0, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, + 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, 1,113, 0,203, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6,163, 0, 0, 7,126, 0, 0, 0,119, 0, 0, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220, 1,113, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 6,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 7,208, 11, 28, 5,144, +196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0,196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 59,128, 0, 70, 59,128, 0, + 55, 39,197,172, 71,195, 80, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,162, 0, 0, 1,231, 0, 0, 1,231, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 7,208, 0, 0, 0,198, + 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 6,176, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,112, 0, 0, 0, 18, + 0, 0, 6,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 6,162, 0, 0, 0, 18, 0, 0, 1,112, 65, 32, 0, 0, + 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, 60, 35,215, 10, 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 8, 6,163, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,162, + 0, 0, 0,119, 0, 0, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,163, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,216, 11, 28, 8,240, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,255, 31, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 33, 62, 3, 0, 0, 0, 0, 8, 41, 62, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 8, 0, 0, 0,104,254, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,184,254, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -152, 0, 0, 0, 8,255, 31, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 28, 9,240, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 16,128, + 11, 28, 3,224, 11, 27,248, 16, 11, 27,246,208, 11, 27,247,208, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, + 0, 0, 1,233, 0, 0, 3,233, 2, 2, 3, 80, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 15, 0, + 11, 28, 15, 0, 11, 28, 10,128, 11, 28, 13,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 28, 10,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 11,160, 0, 0, 0, 0, 0, 0, 0, 0, 68,119, 64, 0, + 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 84, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, + 0, 0, 0, 0, 0, 0, 0, 25, 68, 83,192, 0, 65,200, 0, 0, 68, 83,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3, 80, 0, 26, 3, 80, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 0, 0, 1,233, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 80, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,232,255, 31, 2, 0, 0, 0, 0,116, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 11,160, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 12,192, + 11, 28, 10,128, 0, 0, 0, 0, 67, 72, 0, 0,193,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,195,234,128, 0, + 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 10, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, 1,231, 0,200, + 1,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 2, 3, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 1,231, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 12,192, + 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 13,224, 11, 28, 11,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, + 0, 0, 3, 79, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 13,224, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 12,192,193, 16, 0, 0, + 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, 0, 0, 0, 0, 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 18, 0, 0, 2,118, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, + 0, 0, 2,118, 0, 0, 0, 18, 0, 0, 1,230, 58,131, 18,111, 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2,119, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 3, 79, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2,119, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64, -183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61, -229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0, -221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0, -154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, - 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0, - 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0, -209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,208, 11, 28, 15, 0, 0, 0, 0,161, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, - 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 32, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 16, 0, 0, 0, 1, 19, + 0, 0, 0, 1, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 96, 11, 28, 16,128, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 9,240, 11, 27,248, 80, 11, 27,247,208, + 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, 0, 0, 1,233, 0, 0, 3,233, 8, 8, 4, 46, + 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 21,144, 11, 28, 21,144, 11, 28, 17, 16, 11, 28, 20,112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 17, 16, 0, 0, 0,198, + 0, 0, 0, 1, 11, 28, 18, 48, 0, 0, 0, 0, 0, 0, 0, 0, 67,245, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, + 68,133,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 0, 0, 0, 0, 0, 0, 0, 25, 68,133,160, 0, + 65,200, 0, 0, 68,133,160, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, + 0, 10, 4, 46, 0, 26, 4, 46, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, + 0, 0, 1,233, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 46, 0, 26, 0, 0, 0, 1, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0,248, 11, 28, 18, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 19, 80, 11, 28, 17, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 88, 5, 32, 2, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 56, 6, 32, 2, - 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,208, 66, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, - 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, - 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3, 67, 0, 64, 3, - 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, - 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,168, 9, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 7,126, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 32, 2, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,168, 9, 32, 2, 0, 0, 0, 0, 24, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 40, 0, 0, 0, 8, 11, 32, 2, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 1, 0, 52, 0, 52, 0,120, 11, 32, 2, 0, 0, 0, 0,200, 27, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 16, 0, 0,120, 11, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, - 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, - 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, - 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, - 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, - 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, - 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, - 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, - 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, - 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, - 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, - 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, - 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, - 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, - 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, - 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, - 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, - 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, - 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, - 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, - 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, - 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, - 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, - 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, - 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, - 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, - 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, - 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, - 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, - 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, - 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, - 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, - 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, - 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, - 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, - 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, - 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, - 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, - 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255, -100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255, -106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, - 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, - 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255, -107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255, -112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, - 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, - 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255, -114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255, -120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, - 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, - 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255, -120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255, -131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, - 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, - 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255, -126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255, -149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, - 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, - 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255, -131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255, -176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255, -101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, - 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255, -136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255, -212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255, -106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, - 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255, -140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255, -246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255, -110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, - 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255, -142,142,142,255,149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255, -255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255, -113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, - 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255, -143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255, -253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255, -117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, - 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204, -141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255, -228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255, -119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, - 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51, -134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255, -200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255, -121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, - 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255, -180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255, -122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, - 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255, -169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255, -123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, - 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255, -166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255, -121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, - 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255, -162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255, -119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 19, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 20,112, + 11, 28, 18, 48,195,240, 0, 0, 67,240, 0, 0,195,135, 0, 0, 67,135, 0, 0,196,217,139,145, 68,217,139,145,196, 70, 6,240, + 68, 70, 6,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 0, 0, 0, 0, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0, 0, 70, 59,128, 0, + 70, 59,128, 0, 55, 39,197,172, 71,195, 80, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 4, 46, 1,231, 4, 46, + 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, 0, 0, 2, 3, 0, 0, 3,233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 46, 1,231, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 20,112, + 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 19, 80, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1, 75, + 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 18, 0, 0, 1, 75, + 65, 32, 0, 0, 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, 60, 35,215, 10, 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 2,202, 1, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255, -155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255, -114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0,216, 11, 28, 21,144, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204, -137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255, -102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, - 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0,200, 27, 32, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0, 5, 40, 2,154,244, 32, 0, 0, 0,154, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 11, 28, 22,240, 0, 0, 0, 0, 2,212,100, 32, 11, 28, 31,176, + 0, 0, 0, 0, 11, 28, 23,112, 11, 28, 24, 16, 11, 28, 23,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 24, 96, 2,207, 94, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,192, 0, 0,172, 68, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 1, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 1,224, 0, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 50, + 0,141, 7,128, 4, 56, 0, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 0, 0, 81, 0, 33, 0, 23, 0, 0, 0, 2, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 27, 64, 11, 28, 27, 64, 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 1, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 63,128, 0, 0, 63,128, 0, 0, 2,173, 0, 95, 63,217,153,154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, + 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 68, + 63,128, 0, 0, 67,171,166,102, 63,128, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 17, 98, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31, 35,112, 0, 1, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 28,204,205, 0, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 1,224, 0, 60, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 7,128, 4, 56, 61,204,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 28,245,195, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 11, 28, 22,240, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 23,112, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 23,192, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 2,212, 1,226, 2,174, 10, 32, 68, 65, 84, 65, 0, 0, 0, 28, + 11, 28, 23,192, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 24, 16, 11, 28, 23,112, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 4, 0, + 3,167, 3, 37, 2,206,150, 32, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 24, 16, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, + 11, 28, 23,192, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 4, 0, 0,160, 2, 69, 2,212,100, 32, 68, 65, 84, 65, 0, 0, 1,152, + 11, 28, 24, 96, 0, 0, 0,150, 0, 0, 0, 1, 11, 28, 26, 32, 11, 28, 26,112, 11, 28, 26,192, 63,128, 0, 0, 0, 1, 0, 1, + 63, 76,204,205, 66,180, 0, 0, 0, 9, 0, 1, 63,128, 0, 0, 58,131, 18,111, 61,204,204,205, 0, 0, 0, 1, 0, 32, 0, 32, + 0, 32, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 2,212, 24, 32, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 80, 2, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 5, 0, 5,255,255, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 66,200, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, + 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 60, 35,215, 10, 61,204,204,205, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 61,204,204,205, 61,204,204,205, + 63,166,102,102, 63,192, 0, 0, 65,240, 0, 0, 63,122,225, 72, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 2, 67, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 63,121,197,204, + 63, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 36, 11, 28, 26, 32, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0, +255,255,255,128, 0, 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 36, 11, 28, 26,112, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0,200,200,255,128, 0, 0, 0, 1, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 26,192, + 0, 0, 0,148, 0, 0, 0, 1, 2,209, 48, 32, 0, 0, 0, 0,255,100,100,128, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 65,231, 7,124, 65, 20, 74,255, 63,123, 86, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 27, 64, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 15,255,255, 0, 0, 0, 0, 0, 0,127,255, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 67, 65, + 0, 0, 0,104, 11, 28, 27,176, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 63, 0, 0, 0, 61,204,204,205, 66,200, 0, 0, 66, 12, 0, 0, 64,234, 14,161, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 1,108, + 11, 28, 28, 64, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97, +109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,239,255,247, 66,150, 0, 0, 62, 25,153,154, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 11, 28, 29,224, 0, 2, 0, 0, 63,128, 26, 46, 65,240, 4, 25, 66, 52, 0, 0, + 63,128, 0, 0, 64, 64, 0, 0, 61, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64, 0, 3, 0, 1, 0, 0, + 0, 2, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 58,131, 18,111, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 31, 96, 68, 65, 84, 65, 0, 0, 1, 16, + 11, 28, 29,224, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 2, 0, 1, + 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191, 53, 4,243, 63, 53, 4,242,191, 53, 4,242, 63, 53, 4,243, 11, 28, 31, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 24, 11, 28, 31, 32, 0, 0, 1, 77, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 31, 96, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, + 0, 0, 1,112, 11, 28, 31,176, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 99,114, 61, 80, 99,114, 61, 80, 99,114, 60, 36, 54,199, + 60, 36, 54,199, 60, 36, 54,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 28,204,205, 0, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 0, 0, 65,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 65,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 32, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 76,204,205, 0, 0, 0, 5, 0, 0, 0, 0, 59,163,215, 10, 0, 0, 0, 0, + 62,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 33, 80, + 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 33, 80, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 4, 44, 2,212,100, 32, + 0, 0, 0,116, 0, 0, 0, 1, 2,174, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, + 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 27,176, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,239,101,110, +192,208, 62,150, 64,170,255, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,141,254, 42, 60, 49, 57,192, + 63, 80,159, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 47,149,222, 63, 58, 70, 53,188, 49, 56,222, 0, 0, 0, 0, +190,162,126, 86, 62,159,251,227, 63,101, 53, 55, 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,149, 62,227,247, 51, 0, 0, 0, 0, + 64,239,101,110,192,208, 62,150, 64,170,255, 78, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 1, 51,128, 0, 1,179, 0, 0, 1, 0, 0, 0, 0, + 51, 0, 0, 0, 63,128, 0, 0, 51,128, 0, 1, 0, 0, 0, 0,179, 0, 0, 2,167, 0, 0, 2, 63,128, 0, 1, 0, 0, 0, 0, + 53, 0, 0, 1, 41, 0, 0, 1,168,128, 0, 1, 63,128, 0, 0, 63, 47,149,221,190,162,126, 86, 63, 39,165, 8, 0, 0, 0, 0, + 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,192, 63,101, 53, 55, 62,227,247, 52, 0, 0, 0, 0, +190,173, 38, 90,190,192,222, 0,193, 52, 9,152, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, + 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, +201,150,180, 56, 63,128, 0, 0, 63, 16,225,187, 63,128, 0, 0, 62,204,204,205, 63, 32, 54,237, 0, 0, 0, 0, 61,117,194,143, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 33,160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 33,160, + 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61,204,204,205, 62, 76,204,205, 60,163,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 79, 66, 0, 0, 4, 44, + 2,174, 10, 32, 0, 0, 0,116, 0, 0, 0, 1, 2,206,150, 32, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, + 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,203, 71,224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 39, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,255, 60,240, 9,253,121, 96, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 2, 0, 0, 0, 68, 79, 66, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, + 0, 0, 0, 0,201,150,180, 56, 63,128, 0, 0, 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, + 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 34, 96, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10,124,118,224, + 10,120, 52, 80, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, + 9,255, 60,240, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,121, 96, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 34, 96, 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,204,204,205, 62, 76,204,205, 60,163,215, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 79, 66, 0, 0, 4, 44, 2,206,150, 32, 0, 0, 0,116, 0, 0, 0, 1, + 0, 0, 0, 0, 2,174, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 28, 64, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, + 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,130,112,154, 63,128,178,183, 64,188,236,112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 38,123,229, 61, 98, 43, 87, 63,238,229,229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,190,148,236, 54, 63,116,134, 25,189, 98, 13,236, 0, 0, 0, 0,191, 69,102,221,190, 76,174, 57, + 63, 26,194, 34, 0, 0, 0, 0, 63, 16,255, 37, 62, 95,161,241, 63, 75,111,164, 0, 0, 0, 0, 64,130,112,154, 63,128,178,183, + 64,188,236,112, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 50,128, 0, 1,179, 0, 0, 0, 0, 0, 0, 0, 50,128, 0, 1, 63,128, 0, 1, + 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 39, 0, 0, 1, 52, 0, 0, 1, + 39,128, 0, 1, 63,128, 0, 0,190,148,236, 54,191, 69,102,221, 63, 16,255, 38, 0, 0, 0, 0, 63,116,134, 24,190, 76,174, 57, + 62, 95,161,239, 0, 0, 0, 0,189, 98, 13,237, 63, 26,194, 35, 63, 75,111,166, 0, 0, 0, 0, 63, 13, 19,209,190,102, 65,241, +192,231, 10, 10, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 79, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0,201,150,180, 56, 63,128, 0, 0, + 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 35, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 35, 32, 0, 0, 0,119, 0, 0, 0, 1, + 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,204,204,205, 62, 76,204,205, + 60,163,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 77, 65, 0, 0, 2,160, 2,187,108, 32, 0, 0, 0, 35, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63, 76,204,205, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 0, 0, 0, 0, 0, 0, 0, 8, + 0, 1, 0, 50, 62, 76,204,205, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, + 63,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 2, 0, 2, 0, 50, 0, 6, 63,128, 0, 0, 63,128, 0, 0, + 0, 18, 0, 18, 59,163,215, 10, 59,163,215, 10, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 64, 0, 67, 3, 64, 0, 67, + 0, 1, 0, 4, 0, 12, 0, 4, 63, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,128, 0, 0, 63, 0, 0, 0, 61,204,204,205, + 63, 0, 0, 0, 61,204,204,205, 61,204,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 11, 28, 35,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 37, 32, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63, 26,148,111, 63, 26,148,111, 63, 26,148,111, 61, 76,204,205, 61,204,204,205, 63,166,102,102, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 35,224, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 37,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 37, 32, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, + 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 52, 0, 52, 2,213, 70, 32, 9,237,224, 32, 68, 65, 84, 65, + 0, 0, 16, 0, 2,213, 70, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, + 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, + 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, + 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, + 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, + 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, + 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, + 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, + 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, + 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, + 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, + 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, + 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, + 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, + 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, + 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, + 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, + 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, + 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, + 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, + 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, + 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, + 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, + 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, + 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, + 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, + 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, + 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, + 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, + 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, + 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, + 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, + 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, + 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, + 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, + 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, + 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255, +104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255, +103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, + 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, + 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255, +112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255, +110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, + 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, + 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255, +118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255, +118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, + 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, + 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255, +125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255, +129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, + 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, + 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255, +131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255, +148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, + 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, + 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255, +136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255, +177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, + 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, + 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255, +142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255, +216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, + 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, + 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255, +146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255, +254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255, +103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, + 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255, +149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255, +255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255, +106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, + 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255, +152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255, +255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255, +110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, + 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255, +153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255, +234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255, +112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, + 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255, +151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255, +202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255, +114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, + 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102, +145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255, +179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255, +115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, + 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255, +167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255, +115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, + 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255, +163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255, +113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255, +160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255, +110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255, +154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255, +104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255, +140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, + 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, + 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0,144, 0, 9,237,224, 32, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6750,22 +5789,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,112, 1, 0, 0, 24,172, 32, 2, 0, 0, 0, 0, 31, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,173, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,173, 32, 2, - 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, - 16, 0, 15, 0, 72,174, 32, 2, 0, 0, 0, 0,152,190, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 72,174, 32, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6779,6 +5803,19 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 69, 0, 0, 1, 48, 11, 28, 37,112, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 64,160, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64, 0, 0, 0, + 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 32, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 60,204,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 38,208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 38,208, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, + 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 16, 0, 15, 2,215,150, 32, 9,238,128, 32, 68, 65, 84, 65, + 0, 0, 16, 0, 2,215,150, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6893,8 +5930,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0,152,190, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6908,6 +5943,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0,144, 0, 9,238,128, 32, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8046,24 +7083,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 69, 0, 0,152, 1, 0, 0,232, 78, 33, 2, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, - 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 80, 33, 2, 0, 0, 0, 0,248, 87, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 82, 33, 2, 0, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 81, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 83, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 86, 33, 2, 0, 0, 0, 0, 1, 0, 0, 0, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, - 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,200, 80, 33, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 56, 6, 32, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 24, 81, 33, 2, - 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 82, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8072,59 +7094,39 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200, 82, 33, 2, - 0, 0, 0, 0, 52, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, - 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, - 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0, 4, 0,128, 63, -247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182, -230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191, 0, 0,128, 63, - 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,184, 83, 33, 2, 0, 0, 0, 0, 84, 1, 0, 0, - 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 1, 24, 11, 28, 39, 32, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,253,172, 32, + 11, 28, 46,112, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 41,224, 11, 28, 44, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 40, 96, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 42,176, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 44,240, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 51,128, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 4, 63,128, 0, 4, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, + 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,172, 32, 0, 0, 0, 0, + 0, 0, 0, 1, 2,187,108, 32, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 40, 96, 0, 0, 1, 84, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 41,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,104, 85, 33, 2, 0, 0, 0, 0, 49, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, - 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 72, 86, 33, 2, - 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 87, 33, 2, 0, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 75,138,139,255,255,255,255, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 75,138,139, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,160, 11, 28, 41,224, 0, 0, 0, 52, + 0, 0, 0, 8, 63,128, 0, 0, 63,127,255,255,191,128, 0, 0, 73,230, 73,230,182, 26, 1, 0, 63,128, 0, 0,191,128, 0, 0, +191,128, 0, 0, 73,230,182, 26,182, 26, 1, 0,191,128, 0, 1,191,127,255,253,191,128, 0, 0,182, 26,182, 26,182, 26, 1, 0, +191,127,255,250, 63,128, 0, 3,191,128, 0, 0,182, 26, 73,230,182, 26, 1, 0, 63,128, 0, 4, 63,127,255,247, 63,128, 0, 0, + 73,230, 73,230, 73,230, 1, 0, 63,127,255,245,191,128, 0, 5, 63,128, 0, 0, 73,230,182, 26, 73,230, 1, 0,191,128, 0, 3, +191,127,255,250, 63,128, 0, 0,182, 26,182, 26, 73,230, 1, 0,191,127,255,255, 63,128, 0, 0, 63,128, 0, 0,182, 26, 73,230, + 73,230, 1, 0, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 42,176, 0, 0, 1, 84, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 44, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,248, 87, 33, 2, - 0, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 2, 66, 82, 0, 0,248, 2, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104, 95, 33, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100, -100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 93, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8132,469 +7134,473 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 44, 48, 0, 0, 0, 49, 0, 0, 0, 12, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 2, + 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 35, + 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 5, 0, 0, 0, 6, + 0, 0, 0, 35, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 35, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 44,240, 0, 0, 1, 84, + 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 32, 89, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 46,112, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241,113, 73, 96, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241,113, 73, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 93, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232, 94, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,120, + 11, 28, 46,112, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, + 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, + 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, + 0, 0, 0, 2, 0, 0, 66, 82, 0, 0, 2,204, 2,216,154, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,216,158, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 48, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,232, 94, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,184,100, 33, 2, - 0, 0, 0, 0,184, 88, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, -111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 98, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, + 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,154,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 48, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, + 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 49,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,208, 95, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 98, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,100, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 49,144, 0, 0, 1, 77, 0, 0, 0, 4, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,216,158, 32, 0, 0, 1, 83, + 0, 0, 0, 1, 2,195, 38, 32, 2,216,154, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 49,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 56,100, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8,106, 33, 2, - 0, 0, 0, 0,104, 95, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, -117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248,103, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, + 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,158,108, 0, 0, 0, 24, + 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 49,240, + 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, + 11, 28, 51, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, + 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, + 0, 0, 2,204, 2,195, 38, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,195, 42, 32, 2,216,158, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 51,144, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 32,101, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248,103, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,136,105, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,136,105, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 88,111, 33, 2, - 0, 0, 0, 0,184,100, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114, -117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72,109, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, + 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, + 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 2,195, 38,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 51,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, + 61,194,189, 46, 11, 28, 52,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 52,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,195, 42, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 66, 32, + 2,195, 38, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 53, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,112,106, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72,109, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,216,110, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 35, 0, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, + 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,195, 42,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,216,110, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168,116, 33, 2, - 0, 0, 0, 0, 8,106, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, - 97,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,114, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 53, 48, 0, 0, 1, 79, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, +191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 54,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 54,112, 0, 0, 1, 77, + 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, + 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 66, 32, + 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 70, 32, 2,195, 42, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48, + 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 54,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,192,111, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,114, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,116, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 35, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, + 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 66,108, + 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 11, 28, 54,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, + 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 40,116, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248,121, 33, 2, - 0, 0, 0, 0, 88,111, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, -111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,119, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 48, 11, 28, 56, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, + 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 82, 0, 0, 2,204, 2,153, 70, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,197,122, 32, 2,153, 66, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 56,112, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 16,117, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,119, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120,121, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, + 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 70,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 56,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54, +191,126,215, 14, 61,194,189, 46, 11, 28, 57,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,120,121, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72,127, 33, 2, - 0, 0, 0, 0,168,116, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114, -101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,125, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 57,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,197,122, 32, 0, 0, 1, 83, 0, 0, 0, 1, + 2,197,126, 32, 2,153, 70, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 58, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 96,122, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56,125, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,228, 97,175,190, - 50,131,112, 63,218,243,127,191, 10,183,157,188,200,126, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, + 0, 4, 6, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, + 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,197,122,108, 0, 0, 0, 24, 0, 0, 0, 1, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 58, 16, 0, 0, 1, 79, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0,190,175, 97,228, 63,112,131, 50,191,127,243,218,188,157,183, 10, 11, 28, 59, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,200,126, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152,132, 33, 2, - 0, 0, 0, 0,248,121, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97, -114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,130, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 59, 80, + 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 64, 0, 0, 61, 35,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, + 2,197,126, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 36, 32, 2,197,122, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97, +114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 59,176, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,176,127, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,130, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 24,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 24,132, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232,137, 33, 2, - 0, 0, 0, 0, 72,127, 33, 2, 0, 0, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, - 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216,135, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, + 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 2,197,126,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 11, 28, 59,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, + 11, 28, 60,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 60,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 36, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 40, 32, 2,197,126, 32, + 0, 20, 1,160, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 61, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 0, 35, 0, 0, 0, 0, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 0,133, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,135, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,104,137, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 35, 8, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, + 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, + 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199, 36,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 61, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, +186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 62,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,104,137, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56,143, 33, 2, - 0, 0, 0, 0,152,132, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105, -108,108, 47, 68,101,101,112,101,110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40,141, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 62,144, 0, 0, 1, 77, 0, 0, 0, 4, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 40, 32, 0, 0, 1, 83, + 0, 0, 0, 1, 2,211,232, 32, 2,199, 36, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101, +110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 62,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 80,138, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40,141, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,184,142, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199, 40,108, 0, 0, 0, 24, + 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 62,240, + 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 64, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, + 11, 28, 64, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, + 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, + 0, 0, 2,204, 2,211,232, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,211,236, 32, 2,199, 40, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 70,108, 97,116,116,101,110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 64,144, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,184,142, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,136,148, 33, 2, - 0, 0, 0, 0,232,137, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, - 97,116,116,101,110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,146, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8602,141 +7608,129 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, + 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, + 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 2,211,232,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,160,143, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 64,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, +186,255, 97,114, 11, 28, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120,146, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 8,148, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 65,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,211,236, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,196,250, 32, + 2,211,232, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 66, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 8,148, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216,153, 33, 2, - 0, 0, 0, 0, 56,143, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, - 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,151, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,211,236,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 66, 48, 0, 0, 1, 79, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, +191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 67,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,240,148, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,200,151, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 88,153, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 67,112, 0, 0, 1, 77, + 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, + 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,196,250, 32, + 0, 0, 1, 83, 0, 0, 0, 1, 2,196,254, 32, 2,211,236, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116, +101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 67,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 88,153, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40,159, 33, 2, - 0, 0, 0, 0,136,148, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110, -102,108, 97,116,101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,157, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, + 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,196,250,108, + 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 11, 28, 67,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, + 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 69, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0, 64,154, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24,157, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,168,158, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,168,158, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,120,164, 33, 2, - 0, 0, 0, 0,216,153, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97, -121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,162, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 48, 11, 28, 69, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, + 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 82, 0, 0, 2,204, 2,196,254, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,158, 64, 32, 2,196,250, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 69,112, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8744,609 +7738,563 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144,159, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, + 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 2,196,254,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104,162, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,248,163, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 69,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, +191,127,255,224,186,255, 97,114, 11, 28, 70,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,248,163, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,200,169, 33, 2, - 0, 0, 0, 0, 40,159, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105, -103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,184,167, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 70,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,158, 64, 32, 0, 0, 1, 83, 0, 0, 0, 1, + 2,158, 68, 32, 2,196,254, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 71, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,224,164, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,184,167, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 72,169, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 72,169, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 24,175, 33, 2, - 0, 0, 0, 0,120,164, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105, -120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,173, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, + 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,158, 64,108, 0, 0, 0, 24, 0, 0, 0, 1, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 71, 16, 0, 0, 1, 79, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 72, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 72, 80, + 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, + 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, + 2,158, 68, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 10, 32, 2,158, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105, +120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 72,176, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 48,170, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8,173, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,152,174, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,152,174, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,104,180, 33, 2, - 0, 0, 0, 0,200,169, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117, -108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,178, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, + 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 2,158, 68,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 11, 28, 72,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, + 11, 28, 73,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 73,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 10, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 14, 32, 2,158, 68, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 74, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,128,175, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,178, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,179, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, + 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,207, 10,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 74, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, + 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 75,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,232,179, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,184,185, 33, 2, - 0, 0, 0, 0, 24,175, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117, -100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,183, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 75,144, 0, 0, 1, 77, 0, 0, 0, 4, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 14, 32, 0, 0, 1, 83, + 0, 0, 0, 1, 2,205,210, 32, 2,207, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 75,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,208,180, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,183, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,185, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, + 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,207, 14,108, 0, 0, 0, 24, + 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 75,240, + 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 77, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 56,185, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 8,191, 33, 2, - 0, 0, 0, 0,104,180, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105, -110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248,188, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, + 11, 28, 77, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, + 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, + 0, 0, 2,204, 2,205,210, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,205,214, 32, 2,207, 14, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 77,144, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 24, 1, 0, 0, 32,186, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,248,188, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,136,190, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,136,190, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 88,196, 33, 2, - 0, 0, 0, 0,184,185, 33, 2, 0, 0, 0, 0, 0, 1,174,232,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111, -108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 72,194, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, + 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, + 62, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 2,205,210,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 77,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, +186,255, 97,114, 11, 28, 78,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 78,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,205,214, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 44, 32, + 2,205,210, 32,253, 21,192, 32, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 79, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,112,191, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 72,194, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,216,195, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 1, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,205,214,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,216,195, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,168,201, 33, 2, - 0, 0, 0, 0, 8,191, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, -114, 97,112,101, 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,199, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 79, 48, 0, 0, 1, 79, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, +191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 80,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 80,112, 0, 0, 1, 77, + 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, + 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,209, 44, 32, + 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 48, 32, 2,205,214, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, + 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 80,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,192,196, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,199, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 44,108, + 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 11, 28, 80,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, + 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 82, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 40,201, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,248,206, 33, 2, - 0, 0, 0, 0, 88,196, 33, 2, 0, 0, 0, 0, 0, 1,184,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99, -117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,204, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 48, 11, 28, 82, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, + 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 82, 0, 0, 2,204, 2,209, 48, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199,162, 32, 2,209, 44, 32, 12,215, 0, 32, + 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 82,112, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0, 16,202, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,204, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,120,206, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, + 0, 0, 0, 33, 63, 78,119,160, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 48,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 82,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, +191,127,255,224,186,255, 97,114, 11, 28, 83,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,120,206, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 72,212, 33, 2, - 0, 0, 0, 0,168,201, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, -101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,210, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 83,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199,162, 32, 0, 0, 1, 83, 0, 0, 0, 1, + 2,199,166, 32, 2,209, 48, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 84, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 96,207, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 56,210, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,200,211, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,200,211, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,152,217, 33, 2, - 0, 0, 0, 0,248,206, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, -111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,215, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, + 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199,162,108, 0, 0, 0, 24, 0, 0, 0, 1, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 84, 16, 0, 0, 1, 79, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 85, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 85, 80, + 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, + 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, + 2,199,166, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,174, 32, 2,199,162, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, +111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 85,176, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, - 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,176,212, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,215, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 24,217, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 24,217, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,232,222, 33, 2, - 0, 0, 0, 0, 72,212, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, - 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,216,220, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 63,102,102,102, + 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, + 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 2,199,166,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 11, 28, 85,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, + 11, 28, 86,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 86,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,174, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,178, 32, 2,199,166, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 87, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 0,218, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,220, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,104,222, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, + 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,198,174,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 87, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, +186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 88,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,104,222, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 56,228, 33, 2, - 0, 0, 0, 0,152,217, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111, -102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40,226, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 88,144, 0, 0, 1, 77, 0, 0, 0, 4, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,178, 32, 0, 0, 1, 83, + 0, 0, 0, 1, 2,212, 20, 32, 2,198,174, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 88,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 80,223, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40,226, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184,227, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,198,178,108, 0, 0, 0, 24, + 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 88,240, + 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 90, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, + 11, 28, 90, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, + 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, + 0, 0, 2,204, 2,212, 20, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,212, 24, 32, 2,198,178, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 90,144, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,184,227, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,136,233, 33, 2, - 0, 0, 0, 0,232,222, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, - 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,231, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9354,141 +8302,129 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, + 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, + 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 1, 16, 2,212, 20,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,160,228, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 90,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, + 61,194,189, 46, 11, 28, 91,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,120,231, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, - 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 8,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 91,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,212, 24, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,215,240, 32, + 2,212, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 11, 28, 92, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 8,233, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,216,238, 33, 2, - 0, 0, 0, 0, 56,228, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101, -120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,236, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, 8, 0, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, + 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,212, 24,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 92, 48, 0, 0, 1, 79, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, +191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 93,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 24, 1, 0, 0,240,233, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,200,236, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186, 88,238, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 93,112, 0, 0, 1, 77, + 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, + 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,215,240, 32, + 0, 0, 1, 83, 0, 0, 0, 1, 2,215,244, 32, 2,212, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, + 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 93,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 88,238, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 40,244, 33, 2, - 0, 0, 0, 0,136,233, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104, -117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,242, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, + 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,215,240,108, + 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, + 11, 28, 93,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, + 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 95, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 64,239, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24,242, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,168,243, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,168,243, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 40,244, 33, 2, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,238, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119, -105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,247, 33, 2, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 0, 0, 48, 11, 28, 95, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, + 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 82, 0, 0, 2,204, 2,215,244, 32, 0, 0, 1, 83, 0, 0, 0, 1, 0, 0, 0, 0, 2,215,240, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 95,112, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9496,51 +8432,50 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, - 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,144,244, 33, 2, - 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, + 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 1, 16, 2,215,244,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,104,247, 33, 2, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, - 46, 95,255,186,224,255,127,191,114, 97,255,186,248,248, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 95,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, +191,127,255,224,186,255, 97,114, 11, 28, 96,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 96,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, + 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82, 0, 0, 13,144, 1, 89, 96, 32, 0, 0, 0,192, 0, 0, 0, 1, + 1, 17, 8, 33, 0, 0, 6, 63, 0, 0, 0, 5, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,248,248, 33, 2, 0, 0, 0, 0, 77, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 83, 69, 82,184, 13, 0, 0,224,237,167, 1, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 33, 8, 17, 1, - 63, 6, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, + 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101, +110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112, -111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, - 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9559,8 +8494,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9579,22 +8514,21 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 35, 0, 0, 0, 2, 1, 94, 0, 0, 0, 8, 0, 0, 0, 3, 0, 39, 52, 56, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 8, 0, + 0, 0, 0, 2, 0, 0,172, 68, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 72, 0, 0, 0, 64, 0, 5, 0, 2, + 2,234,148, 32, 2,234,148, 32, 4,209, 42,128, 4,209, 42,128, 11, 23, 91,192, 11, 23, 91,192, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 28, 47, 16, 11, 28, 99,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, - 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, - 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0,120, 7, 34, 2, - 0, 0, 0, 0,120, 7, 34, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8,185, 19, 2, - 0, 0, 0, 0, 8,185, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 91, 33, 2, - 0, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, + 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, +191,100, 90, 30, 62,153,153,154, 63,102,102,102, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 62,254,250, 31, 63, 0, 0, 9, + 63, 25,153,156, 0, 0, 0, 0, 62, 76,204,205, 62, 76,204,205, 62, 76,204,205, 63,128, 0, 0, 63, 22,135, 44, 62,235,133, 32, + 62,125,243,184, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 63, 76, 73,195, 63, 86,135, 42, 63,128, 0, 0, 0, 0, 0, 0, + 61,135, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 62, 93, 47, 16,190,200,180, 58,190, 93, 47, 24, 0, 0, 0, 0, + 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0, 0, 0,128, 0, 0, 0, 0, 31,144, 0, 15, 0, 6, 0, 25, + 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 1, 0, 0, 0, - 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, - 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, - 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, - 0, 0, 0, 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, - 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9603,179 +8537,201 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, + 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, + 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 30, 80, 2,234,148, 32, 0, 0, 0,189, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 1, 0, 15,255,241, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, +255,255,255,255, 0, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, + 0, 0, 0,255, 0, 1, 0, 15,255,241, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255, +255,255,255,255, 0, 1, 0, 15,255,241, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, +255,255,255,255, 0, 1,255,236, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255, +255,255,255,255, 0, 1,255,236, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255, +204,204,204,255, 0, 1, 0, 15,255,241, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, + 0, 0, 0,255, 0, 0, 0, 25,255,236, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255, +255,255,255,255, 0, 0, 0, 25,255,236, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, + 0, 0, 0,255, 0, 1, 0, 38, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255, +255,255,255,255, 0, 1, 0, 5,255,251, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 5,255,251, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255, +153, 0,230,255, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 30, 0, 0,120, 7, 34, 2, - 0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97, -117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, -153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255, -128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, - 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, -190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, - 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, + 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, + 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255, +255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, +219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, + 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, + 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, + 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, + 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, + 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, + 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, - 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255, -250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, +255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, +112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, +135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, + 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, - 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, + 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, + 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, 219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, + 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, + 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, +109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128, -255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, +255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, +219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255, +172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, -126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, +255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, -255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, 219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, + 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, @@ -9783,34 +8739,34 @@ char datatoc_startup_blend[]= { 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, -100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, 127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,155,155,155,160,100,104,111,255, +111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, - 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, +255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, + 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, @@ -9818,19 +8774,19 @@ char datatoc_startup_blend[]= { 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, 241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, 255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, 240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0,155,155,155,160,100,100,100,255,111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, 255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, @@ -9839,1915 +8795,1897 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, -144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255, +246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, + 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, + 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255, +106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, + 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255, +127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255, +139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, - 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255, -189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, - 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255, -193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, - 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255, -238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255, -152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255, -176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, - 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 47, 16, + 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 47,128, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 47,128, 0, 0, 0,190, + 0, 0, 0, 1, 11, 28, 97, 16, 11, 28, 47, 16,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,248, 91, 33, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,152, 92, 33, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 92, 33, 2, 0, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 24, 38, 34, 2, 0, 0, 0, 0,248, 91, 33, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 24, 38, 34, 2, - 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,152, 92, 33, 2, 0, 0, 0, 0,105,111, 95, 97, -110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0, 24, 38, 34, 2, - 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97, 16, 0, 0, 0,190, 0, 0, 0, 1, + 11, 28, 97,128, 11, 28, 47,128,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,248, 39, 34, 2, - 0, 0, 0, 0,184, 38, 34, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97,128, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 97,240, + 11, 28, 97, 16,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,248, 39, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0,152, 40, 34, 2, 0, 0, 0, 0, 88, 39, 34, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97,240, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 98, 96, 11, 28, 97,128, +105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 40, 34, 2, - 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,248, 39, 34, 2, 0, 0, 0, 0,105,111, 95,109, -101,115,104, 95,115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 98, 96, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 98,208, 11, 28, 97,240,105,111, 95,115, + 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0,152, 40, 34, 2, - 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,216, 41, 34, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 41, 34, 2, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,100,230, 0, 0, 88, 29,204, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 7, 12, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, - 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105, -110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116, -121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0, -100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97, -109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, - 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105, -108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, - 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97, -109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, - 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0, -116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97, -112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, - 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101, -121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, - 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105, -110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, - 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116, -111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0, -108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111, -114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, - 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110, -100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108, -101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, - 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, - 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, - 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0, -102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0, -111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, - 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, - 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115, -111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110, -100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, - 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, - 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, - 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99, -111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, - 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112, -114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0, -116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111, -110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117, -115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, - 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0, -119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97, -102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100, -102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, - 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, - 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109, -101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0, -107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105, -116,121,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105, -101,108,100,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119, -110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, - 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114, -115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105, -116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, - 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, - 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116, -121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112, -116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0, -102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111, -117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, - 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, - 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105, -115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, - 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, - 99, 97,108,101, 0,102, 97,108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, - 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110, -116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111, -107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, - 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, - 99,104,101,100,102,114, 97,109,101, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104, -116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, - 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105, -116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0, -100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, - 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, - 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, - 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, - 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121, -109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112, -101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100, -101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110, -111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, - 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119, -103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116, -115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, - 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102, -116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, - 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, - 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95, -115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97, -114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97, -100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, - 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0, -115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0, -115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, - 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, - 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95, -102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, - 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, - 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, - 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101, -110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99, -116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111, -110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105, -116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0, -115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121, -112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0, -109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, - 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109, -105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, - 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112, -104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, - 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, - 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101, -114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0, -114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108, -111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, - 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, - 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105, -114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, - 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, - 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98, -111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110, -100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, - 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, - 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101, -120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, - 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, - 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, - 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109, -112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111, -108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0, -114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0, -102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, - 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111, -108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, - 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, - 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97, -112,116,111, 95,116,101,120,116,117,114,101,100, 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,103,112,117, -109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0, -105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, - 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97, -116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42, -109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114, -115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, - 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0, -118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, - 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103, -118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97, -100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, - 98,115, 0, 42,107,101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110, -117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114, -118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, - 95,109,111,100,101, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97, -108,101, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101, -120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, - 42,108, 97,115,116,115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100, -105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0, -117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, - 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42, -118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115, -101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115, -101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, - 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101, -100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111, -109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101, -100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101, -108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0, -115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, - 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110, -115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100, -101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119, -101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110, -100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, - 41, 0,118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99, -111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118, -101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0, -112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102, -108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100, -103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, - 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, - 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118, -108, 97,121,101,114, 95,116,109,112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0, -114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101, -102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101, -101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, - 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, - 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101, -116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114, -114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, - 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97, -110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108, -111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114, -101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, - 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115, -112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, - 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115, -116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, - 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0, -100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114, -103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, - 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98, -106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105, -110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, - 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101, -110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116, -105,109,101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, - 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, - 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110, -100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114, -116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101, -114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, - 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, - 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, - 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116, -100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, - 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112, -116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, - 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68, -105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120, -105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0, -108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99, -114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95, -114,105,109, 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, - 0,115,116,101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111, -102,115, 0, 97,110,103,108,101, 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, - 0,102, 97,108,108,111,102,102, 95,114, 97,100,105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116, -115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112, -101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, - 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, - 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, - 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111, -120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116, -105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97, -116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, - 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, - 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122, -101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, - 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0, -111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95, -114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0, -112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97, -102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118, -105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117, -112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114, -116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, - 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105, -110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97, -119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112, -102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, - 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101, -102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97, -110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116, -115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, - 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114, -101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111, -100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118, -101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, - 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115, -116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105, -109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97,100, 51, 91, 56, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118, -101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, - 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, - 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122, -100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115, -105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111, -119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100, -101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100, -101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116, -105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95, -115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102, -114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, - 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, - 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0, -102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, - 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97, -109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, - 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, - 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, - 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, - 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102, -102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, - 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, - 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0, -107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, - 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, - 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99, -108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105, -110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, - 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, - 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, - 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103, -111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97, -109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115, -112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, - 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97, -103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105, -110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, - 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112, -115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103, -112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117, -115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, - 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, - 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99, -101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114, -101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101, -110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118, -105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103, -114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97, -114,116, 0, 98, 97,107,101, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101, -108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115, -104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, - 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99, -103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, - 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108, -101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105, -118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108, -112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, - 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108, -105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116, -102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116, -104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, - 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0, -122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, - 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118, -105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101, -115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99, -115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0, -109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, - 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110, -100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, - 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111, -100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97, -111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114, -101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, - 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105, -110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95, -112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, - 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, - 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, - 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, - 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, - 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0, -100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97, -103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109, -101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111, -100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116, -105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111, -114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83, -112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, - 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, - 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112, -116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, - 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, - 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, - 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, - 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, - 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116, -101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, - 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100, -101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102, -108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, - 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, - 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, - 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108, -101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108, -108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116, -114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115, -105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120, -112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109, -116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, - 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99, -116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111, -100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111, -114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117, -114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, - 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0, -112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, - 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, - 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, - 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, - 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115, -116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, - 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116, -121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, - 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114, -102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102, -121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111, -110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106, -112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101, -115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111, -109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97, -114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, - 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42, -119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0, -114,116, 49, 0,114,116, 50, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, - 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115, -111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97, -109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, - 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116, -114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, - 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121, -112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, - 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95, -120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101, -100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111, -110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100, -114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99, -105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110, -116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101, -105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110, -116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, - 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109, -101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, - 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97, -108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, - 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115, -101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97, -117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, - 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, - 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107, -101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, - 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112, -111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115, -107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95, -105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97, -108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116, -104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, - 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, - 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103, -104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0, -115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115, -107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, - 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111, -110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116, -101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, - 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95, -110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107, -103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114, -105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95, -109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95, -109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111, -114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, - 98,106,101, 99,116,115, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105, -110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, - 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111, -106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105, -101,100, 95, 97,108,112,104, 97, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101, -108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, - 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105, -111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42, -119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, - 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, - 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, - 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, - 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42, -115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, - 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116, -104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, - 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0, -103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118, -105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118, -105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105, -110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, -111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, - 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111, -109, 0,116,119,100,114, 97,119,102,108, 97,103, 0,105,115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119, -108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, - 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112, -116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, - 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108, -101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98, -108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115, -101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, - 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101, -110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105, -100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0, -103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100, -101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115, -112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116, -114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108, -116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, - 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122, -111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101, -112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108, -100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117, -109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115, -116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, - 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105, -101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97, -105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119, -110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0, -102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100, -105,116, 91, 56, 48, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105, -108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, - 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, - 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111, -108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109, -101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115, -121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115, -116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0, -115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99, -111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, - 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99, -107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, - 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103, -104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108, -105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, - 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95, -112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, - 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99, -101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99, -104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, - 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100, -105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99, -114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, - 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97, -119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100, -105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, - 0,116,105,116,108,101, 91, 50, 52, 93, 0,109,101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108, -101,115,121, 0,115,101,108,115,116, 97,116,101, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, - 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, - 97,114,101, 97, 0,114,101,116,118, 97,108, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95, -119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110, -102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, - 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42, -105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0, -104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, - 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97, -114,101, 97, 0, 42,115,111,117,110,100, 0,115,110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98, -108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101, -114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115, -104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110, -101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119, -105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105, -110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116, -101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116, -116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0, -112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, - 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, - 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108, -112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110, -105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, - 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114, -105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111, -111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116, -105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117, -109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0, -119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99, -111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, - 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102, -105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, - 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, - 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98, -117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95, -116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, - 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115, -116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108, -101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, - 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, - 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, - 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116, -105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101, -114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, - 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, - 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0, -102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, - 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, - 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, - 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98, -111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, - 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, - 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108, -105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101, -108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100, -108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, - 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, -115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, - 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105, -103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101, -108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105, -110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, -101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101, -120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122, -101, 0, 98,112, 97,100, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110, -116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111, -118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, - 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, - 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, - 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101, -108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, - 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0, -116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, - 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120, -116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114, -112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104, -101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102, -108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105, -114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, - 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, - 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, - 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, - 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103, -114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0, -100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105, -110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101, -102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99, -101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97, -110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110, -117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101, -115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110, -115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100, -111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108, -105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0, -116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, - 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101, -115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, - 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108, -100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102, -114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99, -101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101, -110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105, -116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, - 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110, -100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0, -119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118, -101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103, -108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, - 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, - 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, - 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, - 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114, -101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110, -116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105, -110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101, -120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, - 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0, -100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122, -101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, - 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118, -101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, - 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, - 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116, -121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114, -115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105, -110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, - 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114, -115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101, -114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115, -105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0, -102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, - 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105, -103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0, -108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, - 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105, -112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97, -108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99, -117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102, -115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105, -115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, - 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100, -101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, - 0,115,101,113, 98, 97,115,101, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0, -115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42, -101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110, -100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111, -108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, - 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, - 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99, -102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105, -100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109, -112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, - 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, - 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73, -110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95, -115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, - 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116, -111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120, -102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, - 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, - 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115, -116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0, -102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, - 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, - 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105, -115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97, -114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117, -101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111, -110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111, -112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112, -111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102, -114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111, -116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, - 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, - 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, - 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105, -110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114, -111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101, -116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, 97, -105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, - 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95, -105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110, -101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, - 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110, -103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97, -116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110, -101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, - 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110, -108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111, -116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100, -105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0, -102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97, -109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97, -109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102, -108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101, -100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104, -101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106, -101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, - 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, - 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, - 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116, -104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, - 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111, -110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115,101, -100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115, -105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103, -104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, - 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, - 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115, -116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, - 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118, -105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97, -116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0, -105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111, -110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, - 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, - 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, - 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102, -110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107, -108,105,110,119,101,105,103,104,116, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111, -120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, - 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0, -105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, - 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110, -115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120, -118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115, -116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, - 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, - 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105, -109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, - 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114, -111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115, -112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101, -114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112, -111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103, -108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117, -109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115, -101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99, -107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118, -111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, - 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, - 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, - 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105, -110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97, -120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, - 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105, -115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, - 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, - 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112, -117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, - 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42, -115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0, -111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108, -105,110,107, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0, -108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, - 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111, -109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97, -100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112, -101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99, -107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104, -114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100, -101,120, 0, 97,108,108,116,121,112,101,115, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116, -115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42, -112,114,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97, -120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0, -112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105, -100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110, -116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, - 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, - 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, - 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0, -102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105, -111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98, -116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108, -109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112, -114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108, -103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105, -108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105, -108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, - 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, - 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101, -115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0, -119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101, -115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, - 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112, -108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97, -118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, - 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108, -112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, - 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, - 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, - 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117, -102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103, -104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95, -114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, - 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101, -116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105, -109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116, -104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97, -110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116, -117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97, -100,105,117,115, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118, -101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42, -108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, - 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42, -103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114, -116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, - 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0, -114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101, -116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118, -101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121, -105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105, -101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99, -111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, - 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114, -105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112, -104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0, -100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, - 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, - 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97, -100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97, -108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105, -116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, - 95,111,102,102,115,101,116, 91, 50, 93, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102, -121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, - 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105, -109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110, -100, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116,102, - 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118, -101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, - 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, - 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95, -110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115, -105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100, -102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, - 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, - 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95, -101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110, -103,116,104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105, -110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95, -108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105, -108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, - 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, - 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99, -104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99, -104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111, -117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102, -114, 97,109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111, -116,117,110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99, -104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, - 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, - 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102, -101, 99,116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115, -112,114,105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, - 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, - 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95, -115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101, -102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105, -109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105, -100,101,114, 95,102,114,105, 99,116,105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111, -108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111, -117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99, -116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99, -111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116, -105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, - 97,110, 99,101, 95,114,101,112,101,108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, - 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, - 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, - 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42, -115, 98,117,102,102,101,114, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118, -101,108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105, -110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, - 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113, -117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100, -114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109, -101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, - 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101, -110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0, -109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97, -100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, - 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97, -119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103, -101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102, -116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112, -116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, - 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, - 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, - 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111, -112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116, -115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, - 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, - 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97, -102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, - 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101, -112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0, -116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95, -116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, - 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105, -110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, - 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97, -112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101, -120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101, -121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105, -118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115, -116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100, -109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99, -101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97, -108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105, -122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115, -116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, - 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115, -116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97, -110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97, -105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, - 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109, -112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, - 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115, -112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109, -100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42, -116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, - 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, - 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0, -110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101, -115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, - 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0, -112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105, -109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118, -101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111, -117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, - 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, - 93, 0, 0, 0, 84, 89, 80, 69,205, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104, -111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0, -118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50, -115, 0,118,101, 99, 50,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, - 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, - 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112, -111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66, -108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, - 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97, -103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110, -105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84, -101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, - 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, - 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86, -111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111, -110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77, -101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100, -105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69, -100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, - 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116, -105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, - 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102, -111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, - 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, - 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68, -105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, - 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105, -114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102, -111, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111, -100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114, -114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100, -105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107, -101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103, -115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105, -102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68, -101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105, -102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111, -111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, - 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116, -104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80, -111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105, -118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101, -108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99, -108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115, -116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100, -105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70, -108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100, -105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,114,112, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68, -101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, - 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, - 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68, -101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, - 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120, -116,114, 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114, -116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, - 99,104, 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115, -101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, - 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67, -111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97, -121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109, -101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, - 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116, -105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69, -100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, - 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97, -116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, - 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112, -105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 86,105,101,119, 68, -101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105, -101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, - 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, - 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108, -101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, - 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108, -101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83, -112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99, -114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, - 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67, -111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101, -114, 80,114,101,102, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 0, -117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100, -103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104, -101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, - 98, 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, - 0, 98, 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, - 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103, -105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, - 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116, -114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, - 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105, -112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111, -108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102, -102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, - 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111, -117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, - 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, - 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101, -110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, - 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, - 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74, -111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80, -121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99, -116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, - 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111, -114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116, -111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, - 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97, -116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116, -111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111, -114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101, -114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, - 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, - 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116, -104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97, -115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116, -105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67, -111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116, -104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105, -110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67, -111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67, -111,110,115,116,114, 97,105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 84,114, 97,110,115, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, - 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105, -110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99, -104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110, -115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108, -100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105, -110,116, 0, 98, 80,105,118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110, -115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122, -101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116, -105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, - 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80, -114,101,118,105,101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78, -111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66, -108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111, -100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, - 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71, -101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117, -115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84, -111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, - 97,110, 99,101, 0, 78,111,100,101, 67,111,108,111,114,115,112,105,108,108, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117, -116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108, -111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120, -116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, - 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, - 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114, -116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, - 72, 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, - 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, - 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, - 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, - 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97, -103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, - 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73, -116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116, -111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, - 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108, -111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101, -115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78, -111,105,115,101, 0, 70, 77,111,100, 95, 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68, -114,105,118,101,114, 86, 97,114, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67, -117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83, -116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, - 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82, -117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118, -111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101, -114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70, -105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, - 78, 67, 69, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, - 16, 0, 4, 0, 8, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0, 32, 5,112, 0, 36, 0, 56, 0, -112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0,184, 5,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, -112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0,104, 0, 64, 1, 40, 1, 8, 1,136, 0,216, 1, 88, 0, 32, 3,104, 0, 88, 1, - 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0,152, 1, 20, 0, 48, 0, - 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, - 4, 0, 0, 1, 32, 0, 16, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 80, 0,136, 0,104, 0,120, 0,128, 0, 96, 0,128, 0, -160, 0, 96, 0, 88, 0,136, 0, 88, 0,112, 0, 16, 1, 56, 0,192, 0,184, 0,232, 0, 88, 0,120, 0,136, 0,224, 0,136, 0, -248, 0, 80, 0,136, 0, 0, 0,152, 0, 48, 0, 16, 2,160, 0, 0, 0,120, 0, 0, 0, 0, 0, 96, 0, 8, 0, 8, 0, 48, 1, -112, 0, 16, 2,104, 0,128, 0, 88, 0, 96, 0,200, 1,144, 0,136, 0, 80, 0,144, 0,112, 0,208, 0, 16, 0, 16, 1, 48, 0, - 0, 0,152, 0,184, 0,104, 0, 48, 0, 24, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 12, 0,224, 1, 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0,168, 3, 64, 0, 24, 0, - 16, 0,104, 0, 96, 0, 24, 0,248, 2, 48, 0, 16, 0,168, 0, 88, 0, 96, 0, 56, 0,192, 1, 32, 0, 8, 0, 24, 0, 80, 2, - 0, 0, 0, 0, 88, 0, 96, 3, 0, 0, 0, 0, 0, 0, 0, 0, 56, 1, 56, 0,144, 0, 64, 0,240, 0,104, 0,248, 0,240, 0, - 96, 2,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,120, 2, 64, 0, 24, 0, -216, 0, 48, 1, 72, 0,200, 2, 40, 0,136, 1,104, 0,216, 0,160, 0,136, 1, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2, -120, 1, 16, 0, 88, 30, 80, 0, 56, 0,184, 13,216, 0, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 32, 1, - 88, 0, 16, 0, 8, 0, 44, 0, 0, 1,240, 0,200, 1, 32, 1, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, - 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, - 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 32, 0, 72, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, - 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0, 40, 1,200, 0, 16, 0,248, 1, - 4, 0, 40, 0,120, 0, 64, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 48, 0, 8, 0, - 40, 0, 72, 0, 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 56, 0, 28, 0, 28, 0, 28, 0, 56, 0, - 24, 0, 72, 0,168, 0, 40, 0,152, 0, 56, 0, 16, 0, 8, 1, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, - 44, 0, 24, 0, 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 32, 0, 12, 0, 56, 0, 24, 0, - 72, 0,240, 0, 24, 0, 56, 0, 56, 0, 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0,192, 2,104, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 24, 1,224, 0,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, - 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0, - 0, 1, 40, 0,200, 0,104, 0,112, 0,168, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, - 0, 0, 0, 0, 83, 84, 82, 67,148, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, - 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, - 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, - 16, 0, 4, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, - 4, 0, 13, 0, 4, 0, 14, 0, 18, 0, 10, 0, 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, - 0, 0, 18, 0, 4, 0, 19, 0, 17, 0, 20, 0, 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, - 19, 0, 23, 0, 20, 0, 24, 0, 0, 0, 25, 0, 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, - 19, 0, 29, 0, 19, 0, 30, 0, 21, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, - 22, 0, 5, 0, 4, 0, 37, 0, 4, 0, 38, 0, 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, - 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, - 26, 0, 46, 0, 27, 0, 47, 0, 16, 0, 48, 0, 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, - 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 17, 0, 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, - 7, 0, 57, 0, 7, 0, 58, 0, 23, 0, 59, 0, 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, - 2, 0, 62, 0, 2, 0, 63, 0, 2, 0, 35, 0, 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, - 2, 0, 15, 0, 2, 0, 44, 0, 2, 0, 65, 0, 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, - 0, 0, 18, 0, 0, 0, 69, 0, 7, 0, 70, 0, 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, - 0, 0, 74, 0, 4, 0, 75, 0, 7, 0, 58, 0, 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, - 2, 0, 80, 0, 2, 0, 17, 0, 32, 0, 6, 0, 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, - 4, 0, 83, 0, 33, 0, 10, 0, 33, 0, 0, 0, 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, - 4, 0, 12, 0, 4, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, - 4, 0, 92, 0, 12, 0, 93, 0, 32, 0, 94, 0, 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, - 4, 0,100, 0, 4, 0,101, 0, 9, 0,102, 0, 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, - 36, 0, 16, 0, 19, 0, 29, 0, 31, 0, 72, 0, 0, 0, 15, 0, 0, 0,106, 0, 2, 0, 17, 0, 7, 0,107, 0, 7, 0,108, 0, - 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 28, 0, 77, 0, - 24, 0,116, 0, 37, 0, 14, 0, 38, 0,117, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 0, 0,122, 0, - 0, 0,123, 0, 0, 0,124, 0, 0, 0, 35, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0, 17, 0, 4, 0, 67, 0, - 39, 0, 32, 0, 19, 0, 29, 0, 0, 0, 32, 0, 12, 0,128, 0, 40, 0,129, 0, 41, 0,130, 0, 42, 0,131, 0, 42, 0,132, 0, - 2, 0,133, 0, 2, 0,134, 0, 2, 0,124, 0, 2, 0, 17, 0, 2, 0,135, 0, 2, 0, 15, 0, 4, 0,136, 0, 2, 0,137, 0, - 2, 0,138, 0, 2, 0,139, 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 4, 0,143, 0, 4, 0,144, 0, 35, 0,145, 0, - 22, 0,146, 0, 7, 0,147, 0, 4, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 7, 0,153, 0, - 7, 0,154, 0, 43, 0, 65, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 24, 0,159, 0, 44, 0,160, 0, - 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 7, 0,166, 0, 7, 0,167, 0, 7, 0,168, 0, - 2, 0,169, 0, 2, 0,170, 0, 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, - 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0, 54, 0, 7, 0,182, 0, 7, 0,183, 0, - 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, - 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, - 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, - 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, - 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 45, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, - 4, 0,223, 0, 4, 0,224, 0, 9, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, - 9, 0,231, 0, 4, 0,232, 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,233, 0, - 7, 0, 64, 0, 4, 0, 61, 0, 47, 0, 5, 0, 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,234, 0, 46, 0,228, 0, - 48, 0, 17, 0, 24, 0,159, 0, 39, 0,235, 0, 49, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 15, 0, 2, 0,239, 0, - 7, 0,108, 0, 7, 0,109, 0, 7, 0,240, 0, 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,136, 0, - 2, 0,244, 0, 2, 0,245, 0, 50, 0, 25, 0, 2, 0, 17, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,135, 0, - 2, 0,249, 0, 4, 0,250, 0, 4, 0,251, 0, 24, 0,159, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, - 7, 0, 0, 1, 7, 0, 1, 1, 2, 0, 2, 1, 2, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 7, 0, 6, 1, 7, 0, 7, 1, - 7, 0, 8, 1, 7, 0, 9, 1, 47, 0, 10, 1, 51, 0, 11, 1, 52, 0, 13, 0, 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, - 2, 0, 17, 0, 2, 0, 15, 1, 2, 0, 16, 1, 24, 0,159, 0, 7, 0, 17, 1, 4, 0, 18, 1, 0, 0, 19, 1, 7, 0, 20, 1, - 4, 0, 21, 1, 4, 0,124, 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, - 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 67, 0, 7, 0, 31, 1, - 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, - 7, 0, 40, 1, 7, 0, 41, 1, 7, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 47, 1, - 2, 0, 48, 1, 2, 0, 49, 1, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 0, 50, 1, 7, 0, 51, 1, 7, 0, 52, 1, - 7, 0, 53, 1, 4, 0, 54, 1, 4, 0, 55, 1, 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 15, 1, 2, 0,122, 0, 4, 0, 21, 0, - 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 7, 0, 58, 1, 7, 0, 59, 1, 7, 0, 87, 0, 37, 0, 60, 1, 53, 0, 61, 1, - 28, 0, 77, 0, 39, 0,235, 0, 45, 0, 62, 1, 47, 0, 10, 1, 48, 0, 63, 1, 22, 0,146, 0, 50, 0, 64, 1, 52, 0, 65, 1, - 0, 0, 66, 1, 0, 0,176, 0, 54, 0, 8, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0,167, 0, 4, 0, 17, 0, 7, 0, 69, 1, - 7, 0, 70, 1, 7, 0, 71, 1, 24, 0, 42, 0, 55, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, - 4, 0, 72, 1, 2, 0,170, 0, 2, 0, 73, 1, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0, 74, 1, - 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1, - 7, 0, 83, 1, 7, 0, 84, 1, 51, 0, 85, 1, 2, 0,246, 0, 2, 0, 67, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0, 86, 1, - 7, 0, 87, 1, 7, 0, 88, 1, 7, 0, 89, 1, 7, 0, 90, 1, 2, 0, 91, 1, 2, 0, 92, 1, 2, 0, 93, 1, 2, 0, 94, 1, - 0, 0, 95, 1, 0, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 2, 0, 99, 1, 2, 0,100, 1, 2, 0,101, 1, 7, 0,102, 1, - 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, 2, 0,106, 1, 2, 0, 87, 0, 2, 0,107, 1, 2, 0,108, 1, 2, 0,109, 1, - 2, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, - 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 7, 0,121, 1, 7, 0,122, 1, 2, 0,123, 1, 0, 0,124, 1, 28, 0, 77, 0, - 43, 0,125, 1, 2, 0,126, 1, 0, 0,127, 1, 22, 0,146, 0, 56, 0, 18, 0, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, - 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 2, 0,138, 1, - 2, 0,139, 1, 2, 0,140, 1, 2, 0,141, 1, 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 57, 0,125, 0, - 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,146, 1, 2, 0, 17, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,147, 1, - 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, - 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, - 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 56, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, - 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 2, 0,175, 1, 2, 0,176, 1, 2, 0,177, 1, 0, 0,178, 1, 0, 0,179, 1, - 7, 0,180, 1, 7, 0,181, 1, 2, 0,182, 1, 2, 0,183, 1, 7, 0,184, 1, 7, 0,185, 1, 7, 0,186, 1, 7, 0,187, 1, - 2, 0,188, 1, 2, 0,189, 1, 4, 0, 72, 1, 4, 0,190, 1, 2, 0,191, 1, 2, 0,192, 1, 2, 0,193, 1, 2, 0,194, 1, - 7, 0,195, 1, 7, 0,196, 1, 7, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1, 7, 0,202, 1, - 7, 0,203, 1, 7, 0,204, 1, 0, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 4, 0,209, 1, 0, 0,210, 1, - 0, 0,107, 1, 0, 0,211, 1, 0, 0, 66, 1, 2, 0,212, 1, 2, 0,213, 1, 2, 0,126, 1, 2, 0,214, 1, 2, 0,215, 1, - 2, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 2, 0,155, 0, 2, 0,156, 0, - 47, 0,222, 1, 47, 0,223, 1, 0, 0,224, 1, 0, 0,225, 1, 0, 0,226, 1, 0, 0,227, 1, 2, 0,228, 1, 2, 0,229, 1, - 7, 0,230, 1, 7, 0,231, 1, 43, 0,125, 1, 53, 0, 61, 1, 28, 0, 77, 0, 58, 0,232, 1, 22, 0,146, 0, 7, 0,233, 1, - 7, 0,234, 1, 7, 0,235, 1, 7, 0,236, 1, 7, 0,237, 1, 2, 0,238, 1, 2, 0, 67, 0, 7, 0,239, 1, 7, 0,240, 1, - 7, 0,241, 1, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 7, 0,247, 1, 2, 0,248, 1, - 2, 0,249, 1, 4, 0,250, 1, 2, 0,251, 1, 2, 0, 35, 0, 12, 0,252, 1, 59, 0, 4, 0, 19, 0, 29, 0, 0, 0,253, 1, - 60, 0, 2, 0, 35, 0,145, 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, 62, 0,254, 1, 4, 0,255, 1, 4, 0, 0, 2, - 4, 0, 1, 2, 4, 0, 2, 2, 4, 0, 3, 2, 4, 0, 4, 2, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 5, 2, 2, 0, 6, 2, - 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 11, 2, 7, 0, 12, 2, - 7, 0, 13, 2, 7, 0, 14, 2, 7, 0, 21, 0, 7, 0, 15, 2, 7, 0, 16, 2, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, - 62, 0,254, 1, 12, 0, 17, 2, 12, 0, 18, 2, 12, 0, 19, 2, 28, 0, 77, 0, 57, 0, 20, 2, 0, 0, 17, 0, 0, 0, 21, 2, - 2, 0, 22, 2, 2, 0,169, 0, 2, 0, 35, 0, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 7, 0, 23, 2, 7, 0, 24, 2, - 7, 0, 25, 2, 61, 0, 26, 2, 27, 0, 11, 0, 7, 0, 27, 2, 7, 0, 28, 2, 7, 0, 29, 2, 7, 0,248, 0, 2, 0, 52, 0, - 0, 0, 30, 2, 0, 0, 31, 2, 0, 0, 32, 2, 0, 0, 33, 2, 0, 0, 34, 2, 0, 0, 35, 2, 26, 0, 7, 0, 7, 0, 36, 2, - 7, 0, 28, 2, 7, 0, 29, 2, 2, 0, 32, 2, 2, 0, 35, 2, 7, 0,248, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, - 64, 0, 1, 0, 2, 0, 15, 0, 2, 0, 37, 2, 2, 0, 35, 2, 2, 0, 17, 0, 2, 0, 38, 2, 2, 0, 39, 2, 2, 0, 40, 2, - 2, 0, 41, 2, 2, 0, 42, 2, 2, 0, 43, 2, 2, 0, 44, 2, 2, 0, 45, 2, 7, 0, 46, 2, 7, 0, 47, 2, 26, 0, 46, 0, - 27, 0, 47, 0, 2, 0, 48, 2, 2, 0, 49, 2, 4, 0, 50, 2, 65, 0, 5, 0, 2, 0, 51, 2, 2, 0, 37, 2, 0, 0, 17, 0, - 0, 0, 35, 0, 2, 0, 67, 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 52, 2, 7, 0, 53, 2, 67, 0, 4, 0, - 12, 0, 54, 2, 68, 0, 55, 2, 4, 0, 56, 2, 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,254, 1, - 12, 0, 57, 2, 12, 0, 18, 2, 67, 0, 58, 2, 24, 0, 59, 2, 24, 0, 60, 2, 24, 0, 61, 2, 28, 0, 77, 0, 70, 0, 62, 2, - 30, 0, 63, 2, 57, 0, 20, 2, 12, 0, 64, 2, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 2, 0,169, 0, 2, 0, 87, 0, - 2, 0, 65, 2, 2, 0, 66, 2, 7, 0, 67, 2, 7, 0, 68, 2, 4, 0, 69, 2, 2, 0, 35, 0, 2, 0, 22, 2, 2, 0, 17, 0, - 2, 0, 70, 2, 7, 0, 71, 2, 7, 0, 72, 2, 7, 0, 73, 2, 2, 0, 40, 2, 2, 0, 41, 2, 2, 0, 74, 2, 2, 0, 75, 2, - 4, 0, 76, 2, 9, 0, 77, 2, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, 2, 0, 78, 2, 7, 0, 79, 2, 7, 0, 80, 2, - 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, - 0, 0, 89, 2, 71, 0, 90, 2, 72, 0, 91, 2, 0, 0, 92, 2, 59, 0, 93, 2, 59, 0, 94, 2, 59, 0, 95, 2, 59, 0, 96, 2, - 4, 0, 97, 2, 7, 0, 98, 2, 4, 0, 99, 2, 4, 0,100, 2, 66, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, 65, 0,104, 2, - 65, 0,105, 2, 73, 0, 39, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,254, 1, 28, 0, 77, 0, 30, 0, 63, 2, 57, 0, 20, 2, - 74, 0,106, 2, 75, 0,107, 2, 76, 0,108, 2, 77, 0,109, 2, 78, 0,110, 2, 79, 0,111, 2, 80, 0,112, 2, 81, 0,113, 2, - 73, 0,114, 2, 82, 0,115, 2, 83, 0,116, 2, 84, 0,117, 2, 84, 0,118, 2, 84, 0,119, 2, 4, 0, 51, 0, 4, 0,120, 2, - 4, 0,121, 2, 4, 0,122, 2, 4, 0,123, 2, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 2, 0,169, 0, 2, 0, 65, 2, - 2, 0,124, 2, 2, 0, 17, 0, 2, 0,125, 2, 2, 0,126, 2, 0, 0,127, 2, 0, 0,128, 2, 2, 0, 22, 2, 85, 0,129, 2, - 86, 0,130, 2, 76, 0, 8, 0, 9, 0,131, 2, 7, 0,132, 2, 4, 0,133, 2, 0, 0, 17, 0, 0, 0,134, 2, 2, 0, 72, 1, - 2, 0,135, 2, 2, 0,136, 2, 74, 0, 7, 0, 4, 0,137, 2, 4, 0,138, 2, 4, 0,139, 2, 4, 0,140, 2, 2, 0, 37, 2, - 0, 0,141, 2, 0, 0, 17, 0, 78, 0, 5, 0, 4, 0,137, 2, 4, 0,138, 2, 0, 0,142, 2, 0, 0,143, 2, 2, 0, 17, 0, - 87, 0, 2, 0, 4, 0,144, 2, 7, 0, 29, 2, 79, 0, 3, 0, 87, 0,145, 2, 4, 0,146, 2, 4, 0, 17, 0, 77, 0, 4, 0, - 7, 0,147, 2, 2, 0,148, 2, 0, 0, 17, 0, 0, 0,143, 2, 80, 0, 4, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, - 0, 0,179, 0, 88, 0, 6, 0, 39, 0,131, 2, 0, 0, 17, 0, 0, 0,134, 2, 2, 0, 72, 1, 2, 0,135, 2, 2, 0,136, 2, - 89, 0, 1, 0, 7, 0,149, 2, 90, 0, 5, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 4, 0, 35, 0, - 81, 0, 1, 0, 7, 0,150, 2, 82, 0, 2, 0, 4, 0,151, 2, 4, 0, 15, 0, 75, 0, 7, 0, 7, 0,132, 2, 39, 0,131, 2, - 0, 0, 17, 0, 0, 0,134, 2, 2, 0, 72, 1, 2, 0,135, 2, 2, 0,136, 2, 91, 0, 1, 0, 7, 0,152, 2, 92, 0, 1, 0, - 4, 0,153, 2, 93, 0, 1, 0, 0, 0,154, 2, 94, 0, 1, 0, 7, 0,132, 2, 95, 0, 3, 0, 4, 0,155, 2, 0, 0, 90, 0, - 7, 0,156, 2, 96, 0, 4, 0, 7, 0,233, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 97, 0, 1, 0, 96, 0,133, 2, - 98, 0, 5, 0, 4, 0,157, 2, 4, 0,158, 2, 0, 0, 17, 0, 0, 0, 37, 2, 0, 0,159, 2, 99, 0, 2, 0, 4, 0,160, 2, - 4, 0,158, 2,100, 0, 10, 0,100, 0, 0, 0,100, 0, 1, 0, 98, 0,161, 2, 97, 0,162, 2, 99, 0,163, 2, 4, 0, 51, 0, - 4, 0,121, 2, 4, 0,120, 2, 4, 0, 35, 0, 77, 0,164, 2, 85, 0, 14, 0, 12, 0,165, 2, 77, 0,164, 2, 0, 0,166, 2, - 0, 0,167, 2, 0, 0,168, 2, 0, 0,169, 2, 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0, 17, 0, 84, 0,117, 2, - 84, 0,119, 2, 2, 0,173, 2, 0, 0,174, 2, 86, 0, 8, 0, 4, 0,175, 2, 4, 0,176, 2, 74, 0,177, 2, 78, 0,178, 2, - 4, 0,121, 2, 4, 0,120, 2, 4, 0, 51, 0, 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, - 4, 0, 72, 1, 4, 0,179, 2, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,117, 0, 0, 0,180, 2,102, 0, 6, 0,101, 0,181, 2, - 44, 0,182, 2, 24, 0,183, 2, 0, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2,103, 0, 7, 0,101, 0,181, 2, 2, 0,187, 2, - 2, 0,165, 2, 2, 0,188, 2, 2, 0, 88, 0, 9, 0,189, 2, 9, 0,190, 2,104, 0, 3, 0,101, 0,181, 2, 24, 0,159, 0, - 0, 0, 18, 0,105, 0, 5, 0,101, 0,181, 2, 24, 0,159, 0, 0, 0, 18, 0, 2, 0,191, 2, 0, 0,192, 2,106, 0, 5, 0, -101, 0,181, 2, 7, 0, 85, 0, 7, 0,193, 2, 4, 0,194, 2, 4, 0,195, 2,107, 0, 5, 0,101, 0,181, 2, 24, 0,196, 2, - 0, 0, 69, 0, 4, 0, 72, 1, 4, 0, 17, 0,108, 0, 13, 0,101, 0,181, 2, 24, 0,197, 2, 24, 0,198, 2, 24, 0,199, 2, - 24, 0,200, 2, 7, 0,201, 2, 7, 0,202, 2, 7, 0,193, 2, 7, 0,203, 2, 4, 0,204, 2, 4, 0,205, 2, 4, 0, 88, 0, - 4, 0,206, 2,109, 0, 5, 0,101, 0,181, 2, 2, 0,207, 2, 2, 0, 17, 0, 7, 0,208, 2, 24, 0,209, 2,110, 0, 3, 0, -101, 0,181, 2, 7, 0,210, 2, 4, 0, 88, 0,111, 0, 10, 0,101, 0,181, 2, 7, 0,211, 2, 4, 0,212, 2, 4, 0, 35, 0, - 2, 0, 88, 0, 2, 0,213, 2, 2, 0,214, 2, 2, 0,215, 2, 7, 0,216, 2, 0, 0,217, 2,112, 0, 3, 0,101, 0,181, 2, - 7, 0, 35, 0, 4, 0, 15, 0,113, 0, 6, 0,101, 0,181, 2,114, 0,218, 2,115, 0,219, 2,116, 0,220, 2, 7, 0,221, 2, - 4, 0, 15, 0,117, 0, 11, 0,101, 0,181, 2, 44, 0,182, 2, 24, 0,183, 2, 0, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2, - 4, 0,222, 2, 7, 0,223, 2, 4, 0,224, 2, 0, 0,217, 2, 7, 0,225, 2,118, 0, 12, 0,101, 0,181, 2, 24, 0,226, 2, - 39, 0,227, 2, 4, 0, 88, 0, 4, 0,228, 2, 7, 0,229, 2, 7, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,184, 2, - 4, 0,185, 2, 4, 0, 35, 0,119, 0, 3, 0,101, 0,181, 2, 7, 0,233, 2, 4, 0,234, 2,120, 0, 5, 0,101, 0,181, 2, - 7, 0,235, 2, 0, 0,217, 2, 2, 0, 17, 0, 2, 0,236, 2,121, 0, 8, 0,101, 0,181, 2, 24, 0,159, 0, 7, 0,235, 2, - 7, 0,248, 0, 7, 0,104, 0, 0, 0,217, 2, 2, 0, 17, 0, 2, 0, 15, 0,122, 0, 21, 0,101, 0,181, 2, 24, 0,237, 2, - 0, 0,217, 2, 44, 0,182, 2, 24, 0,183, 2, 2, 0, 17, 0, 2, 0, 35, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, - 7, 0, 71, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 4, 0,186, 2, 4, 0,185, 2, 0, 0,184, 2, - 7, 0,245, 2, 7, 0,246, 2, 7, 0, 87, 0,123, 0, 7, 0,101, 0,181, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 67, 0, - 24, 0,159, 0, 7, 0,249, 2, 0, 0,217, 2,124, 0, 10, 0,101, 0,181, 2, 24, 0,159, 0, 0, 0,250, 2, 7, 0,251, 2, - 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, 7, 0,255, 2, 0, 0, 18, 0,125, 0, 1, 0,101, 0,181, 2, -126, 0, 7, 0,101, 0,181, 2, 38, 0,117, 0,127, 0, 0, 3,128, 0, 1, 3,129, 0, 2, 3,130, 0, 3, 3, 12, 0, 4, 3, -131, 0, 13, 0,101, 0,181, 2, 77, 0, 5, 3, 77, 0, 6, 3, 77, 0, 7, 3, 77, 0, 8, 3, 77, 0, 9, 3, 77, 0, 10, 3, - 74, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0, 14, 3, 7, 0, 15, 3,132, 0, 16, 3,133, 0, 7, 0,101, 0,181, 2, - 77, 0, 5, 3, 77, 0, 17, 3,134, 0, 18, 3,135, 0, 16, 3, 4, 0, 19, 3, 4, 0, 12, 3,136, 0, 4, 0,101, 0,181, 2, - 24, 0,159, 0, 4, 0, 20, 3, 4, 0, 35, 0,137, 0, 2, 0, 4, 0, 21, 3, 7, 0, 29, 2,138, 0, 2, 0, 4, 0,120, 0, - 4, 0, 22, 3,139, 0, 24, 0,101, 0,181, 2, 24, 0,159, 0, 0, 0,217, 2, 2, 0, 23, 3, 2, 0, 17, 0, 2, 0, 72, 1, - 2, 0, 35, 0,137, 0, 24, 3, 4, 0, 25, 3, 7, 0, 26, 3, 4, 0, 51, 0, 4, 0, 27, 3,138, 0, 28, 3,137, 0, 29, 3, - 4, 0, 30, 3, 4, 0, 31, 3, 4, 0, 32, 3, 4, 0, 22, 3, 7, 0, 33, 3, 7, 0, 34, 3, 7, 0, 35, 3, 7, 0, 36, 3, - 7, 0, 37, 3, 9, 0, 38, 3,140, 0, 8, 0,101, 0,181, 2,141, 0, 39, 3,134, 0, 18, 3, 4, 0, 40, 3, 4, 0, 41, 3, - 4, 0, 42, 3, 2, 0, 17, 0, 2, 0, 54, 0,142, 0, 8, 0,101, 0,181, 2, 24, 0, 42, 0, 2, 0,252, 0, 2, 0, 17, 0, - 2, 0,207, 2, 2, 0, 54, 0, 7, 0, 43, 3, 7, 0, 44, 3,143, 0, 6, 0,101, 0,181, 2, 4, 0, 45, 3, 2, 0, 17, 0, - 2, 0, 46, 3, 7, 0, 47, 3, 0, 0,161, 0,144, 0, 8, 0,101, 0,181, 2, 0, 0, 48, 3, 0, 0, 49, 3, 0, 0,171, 2, - 0, 0, 50, 3, 0, 0, 51, 3, 0, 0, 88, 0, 0, 0,159, 2,145, 0, 3, 0,101, 0,181, 2,146, 0, 52, 3,130, 0, 3, 3, -147, 0, 10, 0,101, 0,181, 2, 24, 0, 53, 3, 24, 0, 54, 3, 0, 0, 55, 3, 7, 0, 56, 3, 2, 0, 57, 3, 2, 0, 58, 3, - 0, 0, 59, 3, 0, 0, 60, 3, 0, 0,192, 2,148, 0, 9, 0,101, 0,181, 2, 24, 0, 61, 3, 0, 0, 55, 3, 7, 0, 62, 3, - 7, 0, 63, 3, 0, 0, 72, 1, 0, 0,207, 2, 0, 0, 64, 3, 0, 0, 35, 0,149, 0, 1, 0,101, 0,181, 2,150, 0, 11, 0, -101, 0,181, 2, 0, 0,217, 2, 7, 0,120, 0, 7, 0, 65, 3, 7, 0, 66, 3, 7, 0, 67, 3, 7, 0, 68, 3, 4, 0, 17, 0, - 2, 0, 69, 3, 2, 0, 70, 3, 4, 0, 35, 0,151, 0, 9, 0,101, 0,181, 2, 24, 0, 71, 3, 4, 0, 72, 3, 4, 0, 73, 3, - 4, 0, 74, 3, 7, 0, 75, 3, 7, 0, 76, 3, 2, 0,207, 2, 2, 0, 17, 0,152, 0, 16, 0,101, 0,181, 2, 44, 0,182, 2, - 24, 0,183, 2, 0, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2, 4, 0,222, 2, 7, 0,223, 2, 24, 0, 77, 3, 24, 0, 78, 3, - 51, 0, 85, 1, 0, 0,217, 2, 7, 0, 79, 3, 0, 0, 17, 0, 0, 0,246, 0, 0, 0,159, 2,153, 0, 3, 0,154, 0, 80, 3, - 4, 0, 56, 2, 0, 0, 90, 0,154, 0, 29, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 38, 2, 2, 0, 39, 2, 2, 0, 81, 3, - 2, 0, 17, 0, 2, 0, 82, 3, 2, 0, 83, 3, 2, 0, 84, 3, 2, 0, 67, 0, 0, 0, 85, 3, 0, 0, 86, 3, 0, 0, 87, 3, - 0, 0,229, 1, 4, 0, 35, 0, 7, 0, 88, 3, 7, 0, 89, 3, 7, 0, 90, 3, 7, 0, 91, 3, 7, 0, 92, 3, 7, 0, 93, 3, - 26, 0, 94, 3, 28, 0, 77, 0, 30, 0, 63, 2, 79, 0,111, 2, 0, 0, 69, 0, 7, 0, 95, 3, 7, 0, 96, 3,153, 0, 97, 3, -155, 0, 3, 0,155, 0, 0, 0,155, 0, 1, 0, 0, 0, 18, 0, 62, 0, 3, 0, 7, 0, 98, 3, 4, 0, 17, 0, 4, 0, 35, 0, - 24, 0,129, 0, 19, 0, 29, 0, 31, 0, 72, 0,156, 0, 99, 3, 2, 0, 15, 0, 2, 0,100, 3, 4, 0,101, 3, 4, 0,102, 3, - 4, 0,103, 3, 0, 0,104, 3, 24, 0, 36, 0, 24, 0,105, 3, 24, 0,106, 3, 24, 0,107, 3, 24, 0,108, 3, 28, 0, 77, 0, - 70, 0, 62, 2, 62, 0,254, 1,157, 0,109, 3,157, 0,110, 3,158, 0,111, 3, 9, 0, 2, 0,159, 0,112, 3,160, 0,113, 3, -161, 0,114, 3, 12, 0,115, 3, 12, 0,116, 3, 12, 0, 18, 2, 12, 0,117, 3, 12, 0,118, 3, 4, 0, 72, 1, 4, 0,119, 3, - 57, 0, 20, 2, 0, 0,120, 3, 4, 0, 22, 2, 4, 0,121, 3, 7, 0, 67, 1, 7, 0,122, 3, 7, 0,123, 3, 7, 0,167, 0, - 7, 0,124, 3, 7, 0, 68, 1, 7, 0,125, 3, 7, 0, 8, 2, 7, 0,126, 3, 7, 0,127, 3, 7, 0,128, 3, 7, 0,129, 3, - 7, 0,130, 3, 7, 0,131, 3, 7, 0,251, 2, 7, 0,132, 3, 7, 0,237, 0, 7, 0,133, 3, 4, 0,134, 3, 2, 0, 17, 0, - 2, 0,135, 3, 2, 0,136, 3, 2, 0,137, 3, 2, 0,138, 3, 2, 0,139, 3, 2, 0,140, 3, 2, 0,141, 3, 2, 0,142, 3, - 2, 0,143, 3, 2, 0,144, 3, 2, 0,145, 3, 4, 0,146, 3, 4, 0,147, 3, 4, 0,148, 3, 4, 0,149, 3, 7, 0,150, 3, - 7, 0, 98, 2, 7, 0,151, 3, 7, 0,152, 3, 7, 0,153, 3, 7, 0,154, 3, 7, 0,155, 3, 7, 0,212, 0, 7, 0,156, 3, - 7, 0,157, 3, 7, 0,158, 3, 7, 0,159, 3, 2, 0,160, 3, 0, 0,161, 3, 0, 0,106, 0, 0, 0,162, 3, 0, 0,163, 3, - 7, 0,164, 3, 7, 0,165, 3, 12, 0,166, 3, 12, 0,167, 3, 12, 0,168, 3, 12, 0,169, 3, 7, 0,170, 3, 2, 0,151, 2, - 2, 0,171, 3, 7, 0,133, 2, 4, 0,172, 3, 4, 0,173, 3,162, 0,174, 3, 2, 0,175, 3, 2, 0,244, 0, 7, 0,176, 3, - 12, 0,177, 3, 12, 0,178, 3, 12, 0,179, 3, 12, 0,180, 3,163, 0, 64, 1,164, 0,181, 3, 58, 0,182, 3, 2, 0,183, 3, - 2, 0,184, 3, 2, 0, 56, 2, 2, 0,185, 3, 7, 0,124, 2, 2, 0,186, 3, 2, 0,187, 3,146, 0,188, 3,134, 0,189, 3, -134, 0,190, 3, 4, 0,191, 3, 4, 0,192, 3, 4, 0,193, 3, 4, 0,194, 3, 12, 0,195, 3, 12, 0,196, 3, 12, 0,197, 3, - 7, 0,198, 3, 0, 0,199, 3,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 0,251, 2, 7, 0, 69, 1, - 7, 0,252, 2, 7, 0,244, 2, 0, 0, 18, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,200, 3, 2, 0, 15, 0, 2, 0,201, 3, - 7, 0,255, 2,166, 0, 12, 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 0,202, 3, 4, 0,151, 2, 4, 0,203, 3, - 4, 0, 15, 0, 4, 0,204, 3, 7, 0, 69, 1, 7, 0,205, 3, 7, 0,206, 3, 7, 0,149, 2,163, 0, 40, 0, 4, 0, 17, 0, - 2, 0,207, 3, 2, 0,208, 3, 2, 0,244, 2, 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, - 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, - 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, - 7, 0,230, 3, 7, 0,231, 3, 7, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 7, 0,237, 3, - 7, 0,238, 3, 7, 0,239, 3, 7, 0,240, 3, 44, 0,160, 0,167, 0,241, 3, 7, 0,242, 3, 4, 0,195, 2,168, 0, 5, 0, - 58, 0,232, 1, 7, 0,243, 3, 7, 0,244, 3, 2, 0, 17, 0, 2, 0,245, 3,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, - 4, 0, 15, 0, 4, 0,246, 3, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,247, 3, 4, 0,248, 3, - 4, 0,249, 3, 4, 0, 17, 0, 9, 0,250, 3, 9, 0,251, 3, 12, 0,252, 3,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, - 4, 0, 17, 0, 4, 0,253, 3, 4, 0,254, 3, 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0, 2, 4, 4, 0,248, 3, - 4, 0,151, 2, 2, 0, 3, 4, 2, 0, 54, 0, 0, 0, 4, 4, 0, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 0, 0, 8, 4, - 12, 0, 9, 4,171, 0, 10, 4, 9, 0, 11, 4,172, 0, 1, 0, 7, 0, 36, 2,162, 0, 30, 0, 4, 0, 17, 0, 7, 0, 12, 4, - 7, 0, 13, 4, 7, 0, 14, 4, 4, 0, 15, 4, 4, 0, 16, 4, 4, 0, 17, 4, 4, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, - 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, - 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, - 4, 0, 37, 4, 4, 0, 38, 4, 7, 0, 39, 4, 7, 0,156, 3,164, 0, 54, 0, 4, 0,248, 3, 4, 0, 40, 4,173, 0, 41, 4, -174, 0, 42, 4, 0, 0, 35, 0, 0, 0, 43, 4, 2, 0, 44, 4, 7, 0, 45, 4, 0, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, - 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 2, 0, 56, 4, - 0, 0, 57, 4, 2, 0, 58, 4, 7, 0, 59, 4, 7, 0, 60, 4, 0, 0, 61, 4, 4, 0,121, 0, 4, 0, 62, 4, 4, 0, 63, 4, - 2, 0, 64, 4, 2, 0, 65, 4,172, 0, 66, 4, 4, 0, 67, 4, 4, 0, 79, 0, 7, 0, 68, 4, 7, 0, 69, 4, 7, 0, 70, 4, - 7, 0, 71, 4, 2, 0, 72, 4, 2, 0, 73, 4, 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 2, 0, 77, 4, 2, 0, 78, 4, - 2, 0, 79, 4,175, 0, 80, 4, 7, 0, 81, 4, 7, 0, 82, 4,130, 0, 83, 4, 12, 0, 4, 3,168, 0, 84, 4, 7, 0, 85, 4, - 7, 0, 86, 4, 7, 0, 87, 4, 0, 0, 88, 4,176, 0, 1, 0, 7, 0, 89, 4,146, 0, 50, 0,145, 0, 90, 4, 2, 0, 15, 0, - 2, 0, 91, 4, 2, 0, 92, 4, 2, 0, 93, 4, 7, 0, 94, 4, 2, 0, 95, 4, 2, 0, 96, 4, 7, 0, 97, 4, 2, 0, 98, 4, - 2, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 4, 0,103, 4, 4, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4, - 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 73, 0,110, 4, 73, 0,111, 4, 0, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, - 28, 0, 77, 0, 2, 0,115, 4, 0, 0,116, 4, 0, 0,117, 4, 7, 0,118, 4, 4, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, - 4, 0,122, 4, 4, 0, 17, 0, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4,176, 0,126, 4, 4, 0, 51, 0, 7, 0,127, 4, - 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 4, 0,134, 4, 4, 0, 35, 0, -177, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,170, 0, 2, 0, 73, 1, 2, 0,107, 1, 2, 0,135, 4, 7, 0,136, 4, - 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,153, 1, 7, 0,155, 1, 7, 0,154, 1, - 7, 0, 67, 0, 4, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4, - 7, 0,149, 4, 2, 0,150, 4, 2, 0, 72, 1, 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, - 2, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 7, 0,163, 4, - 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 2, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4, - 2, 0,172, 4, 7, 0,173, 4, 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 2, 0,177, 4, 2, 0,178, 4, 2, 0,179, 4, - 2, 0,180, 4, 7, 0,181, 4, 7, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 7, 0,186, 4, 7, 0,187, 4, - 2, 0,188, 4, 2, 0,189, 4, 2, 0,190, 4, 2, 0,191, 4, 2, 0,192, 4, 2, 0, 17, 0, 7, 0,193, 4, 7, 0,194, 4, - 28, 0, 77, 0, 43, 0,125, 1, 2, 0,126, 1, 2, 0,195, 4, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, - 4, 0,134, 3, 4, 0,196, 4, 4, 0, 17, 0, 2, 0,197, 4, 2, 0,198, 4, 24, 0,159, 0,179, 0, 13, 0, 9, 0,199, 4, - 9, 0,200, 4, 4, 0,201, 4, 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, - 4, 0,208, 4, 4, 0,209, 4, 4, 0, 35, 0, 0, 0,210, 4,180, 0, 5, 0, 9, 0,211, 4, 9, 0,212, 4, 4, 0,213, 4, - 4, 0, 67, 0, 0, 0,214, 4,181, 0, 17, 0, 4, 0,215, 4, 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, 4, 0,219, 4, - 4, 0,220, 4, 4, 0,221, 4, 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0,227, 4, - 2, 0,228, 4, 4, 0,229, 4, 4, 0,230, 4, 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, 4, 0,217, 4, 4, 0,231, 4, - 4, 0,232, 4, 4, 0,233, 4, 4, 0,234, 4, 7, 0,235, 4, 4, 0,236, 4, 4, 0, 88, 0, 4, 0,237, 4, 4, 0,238, 4, - 4, 0,239, 4, 4, 0,240, 4, 4, 0,241, 4, 18, 0, 28, 0,183, 0, 7, 0, 4, 0,242, 4, 7, 0,243, 4, 7, 0,244, 4, - 7, 0,245, 4, 4, 0,246, 4, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 18, 0, - 57, 0,247, 4, 58, 0,248, 4, 4, 0,134, 3, 4, 0,249, 4, 4, 0,250, 4, 4, 0, 35, 0, 4, 0,251, 4, 4, 0,252, 4, -185, 0,105, 0,179, 0,253, 4,180, 0,254, 4,181, 0,255, 4,182, 0, 0, 5, 4, 0, 19, 3, 4, 0,121, 0, 4, 0, 62, 4, - 7, 0, 1, 5, 4, 0, 2, 5, 4, 0, 3, 5, 4, 0, 4, 5, 4, 0, 5, 5, 2, 0, 17, 0, 2, 0, 6, 5, 7, 0, 7, 5, - 7, 0, 8, 5, 7, 0, 9, 5, 7, 0, 10, 5, 7, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, - 2, 0,243, 0, 2, 0, 16, 5, 4, 0, 17, 5, 2, 0, 18, 5, 2, 0, 19, 5, 2, 0, 94, 1, 2, 0,104, 0, 2, 0, 20, 5, - 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, - 2, 0, 29, 5, 4, 0, 30, 5, 4, 0, 72, 1, 4, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, - 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 16, 0, 40, 5, 16, 0, 41, 5, 15, 0, 42, 5, 12, 0, 43, 5, - 2, 0, 44, 5, 2, 0, 45, 5, 7, 0, 46, 5, 7, 0, 47, 5, 7, 0, 48, 5, 7, 0, 49, 5, 4, 0, 50, 5, 7, 0, 51, 5, - 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, 2, 0, 55, 5, 2, 0, 56, 5, 2, 0, 57, 5, 2, 0, 58, 5, 2, 0, 59, 5, - 2, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 7, 0, 63, 5, 0, 0, 64, 5, 4, 0, 65, 5, 2, 0, 66, 5, 2, 0,229, 1, - 0, 0, 67, 5, 7, 0, 68, 5, 7, 0, 69, 5, 0, 0, 70, 5, 0, 0, 71, 5, 0, 0, 72, 5, 0, 0, 73, 5, 4, 0, 74, 5, - 2, 0, 75, 5, 2, 0, 76, 5, 7, 0, 77, 5, 7, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, 2, 0, 82, 5, - 2, 0, 83, 5, 4, 0, 84, 5, 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 87, 5, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 67, 0, - 34, 0, 90, 5, 0, 0, 91, 5,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 0, 92, 5, 2, 0, 93, 5, - 2, 0, 94, 5, 2, 0, 87, 0, 7, 0, 95, 5, 7, 0, 67, 0,187, 0, 7, 0, 2, 0,212, 2, 2, 0, 72, 1, 2, 0, 76, 3, - 2, 0, 96, 5, 7, 0, 97, 5, 7, 0, 67, 0, 34, 0, 98, 5,188, 0, 5, 0, 7, 0, 99, 5, 0, 0, 15, 0, 0, 0, 87, 0, - 0, 0, 67, 0, 0, 0,229, 1,189, 0, 28, 0, 7, 0,148, 4, 7, 0,149, 4, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,100, 5, - 2, 0,195, 4, 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4,188, 0,101, 5, - 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0,243, 0, 2, 0, 16, 5, 2, 0,102, 5, 2, 0,103, 5, -187, 0,104, 5, 2, 0,105, 5, 2, 0, 18, 5, 2, 0, 21, 5, 2, 0, 22, 5, 7, 0,106, 5, 7, 0, 87, 0,190, 0, 6, 0, -190, 0, 0, 0,190, 0, 1, 0, 4, 0,247, 3, 0, 0, 4, 4, 4, 0, 17, 0, 24, 0,107, 5,191, 0, 4, 0,192, 0,108, 5, - 9, 0,109, 5, 0, 0,110, 5, 4, 0, 88, 0,193, 0, 8, 0,191, 0,111, 5, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0,112, 5, - 2, 0,113, 5, 2, 0,114, 5, 4, 0, 87, 0, 9, 0,115, 5,194, 0, 6, 0, 2, 0,104, 0, 2, 0,253, 3, 2, 0,116, 5, - 2, 0,206, 2, 4, 0, 17, 0, 7, 0,223, 2,195, 0, 14, 0, 2, 0, 17, 0, 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5, -194, 0,120, 5, 9, 0,115, 5, 7, 0,121, 5, 7, 0, 54, 0, 4, 0,122, 5, 4, 0,123, 5, 4, 0,124, 5, 4, 0,125, 5, - 38, 0,117, 0, 24, 0,159, 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 0,126, 5, 7, 0,127, 5,197, 0, 14, 0, -191, 0,111, 5, 4, 0, 88, 0, 4, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 7, 0,131, 5, 4, 0,132, 5, 4, 0,133, 5, - 7, 0,134, 5, 7, 0,135, 5, 4, 0,136, 5, 7, 0,137, 5, 7, 0,138, 5, 4, 0, 35, 0,198, 0, 7, 0,191, 0,111, 5, - 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, 4, 0,139, 5, 79, 0,140, 5, 9, 0,115, 5,199, 0, 82, 0,198, 0,141, 5, -198, 0,142, 5,197, 0, 99, 3, 7, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 7, 0,146, 5, 7, 0,147, 5, 2, 0,253, 3, - 2, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, 7, 0,151, 5, 2, 0,152, 5, 2, 0,122, 5, 2, 0,153, 5, 2, 0,154, 5, - 2, 0,155, 5, 2, 0,156, 5, 7, 0,157, 5, 7, 0,158, 5, 7, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 2, 0,162, 5, - 2, 0,163, 5, 2, 0,164, 5, 2, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5,193, 0,168, 5,195, 0,169, 5, 7, 0,170, 5, - 7, 0,171, 5, 7, 0,172, 5, 2, 0,173, 5, 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, - 0, 0,179, 5, 0, 0,180, 5, 2, 0,181, 5, 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, - 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 2, 0,192, 5, 0, 0,193, 5, 0, 0,194, 5, - 0, 0,195, 5, 0, 0,196, 5, 24, 0,197, 5, 0, 0,198, 5, 0, 0,199, 5, 0, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5, - 0, 0,203, 5, 0, 0,204, 5, 0, 0,205, 5, 0, 0,206, 5, 0, 0,207, 5, 2, 0,208, 5, 2, 0,209, 5, 2, 0,210, 5, - 2, 0,211, 5, 0, 0,212, 5, 0, 0,195, 4, 4, 0,213, 5, 2, 0,214, 5, 2, 0, 87, 0, 4, 0,215, 5, 7, 0,216, 5, - 7, 0,217, 5,200, 0, 8, 0, 4, 0,218, 5, 4, 0,219, 5, 4, 0,220, 5, 4, 0,221, 5, 4, 0,222, 5, 4, 0,223, 5, - 4, 0, 51, 0, 4, 0,121, 2,201, 0, 4, 0, 7, 0,224, 5, 0, 0,225, 5, 0, 0,226, 5, 2, 0, 17, 0,202, 0, 4, 0, - 7, 0,227, 5, 4, 0, 17, 0, 4, 0,228, 5, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 0,107, 5, -177, 0,229, 5, 38, 0,230, 5, 12, 0,231, 5,178, 0,232, 5, 24, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, - 7, 0,237, 5, 4, 0,134, 3, 4, 0,238, 5, 4, 0,239, 5, 4, 0,192, 3, 4, 0,240, 5, 2, 0, 17, 0, 2, 0, 66, 1, - 53, 0, 61, 1,203, 0,241, 5,199, 0,242, 5,204, 0,243, 5,185, 0,177, 0,183, 0,244, 5, 12, 0, 98, 0, 12, 0,245, 5, - 9, 0,246, 5, 9, 0,247, 5, 9, 0,248, 5, 9, 0,249, 5,205, 0,250, 5, 2, 0,251, 5, 2, 0,252, 5, 2, 0,244, 0, - 2, 0,253, 5, 4, 0,254, 5, 4, 0,255, 5, 12, 0, 0, 6,188, 0,101, 5,189, 0, 1, 6,201, 0, 2, 6,159, 0,112, 3, -202, 0, 3, 6,206, 0, 11, 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,235, 0, 37, 0, 60, 1, 7, 0, 86, 2, 7, 0, 87, 2, - 7, 0,104, 0, 7, 0, 4, 6, 2, 0, 5, 6, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 0, 6, 6, 7, 0, 7, 6, - 7, 0, 8, 6, 7, 0, 9, 6, 7, 0, 10, 6, 7, 0, 11, 6, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, 7, 0, 79, 1, - 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, 7, 0, 18, 6, 7, 0,166, 0, 2, 0, 19, 6, 2, 0, 20, 6, 0, 0, 21, 6, - 0, 0,195, 4, 2, 0, 22, 6, 2, 0, 23, 6, 2, 0, 24, 6, 2, 0, 5, 6, 7, 0, 25, 6, 7, 0, 26, 6, 62, 0, 27, 6, -159, 0,112, 3,207, 0, 28, 6,208, 0, 29, 6,209, 0, 30, 6,210, 0, 31, 6,211, 0, 32, 6, 7, 0, 33, 6, 2, 0, 34, 6, - 2, 0, 35, 6, 7, 0, 36, 6, 7, 0, 37, 6, 7, 0, 38, 6,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, - 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 7, 0, 14, 6, 7, 0, 79, 1, 7, 0, 87, 0, 4, 0, 43, 6, 2, 0, 24, 6, - 2, 0, 5, 6, 24, 0,107, 5, 24, 0, 44, 6, 12, 0, 45, 6,206, 0, 46, 6,212, 0, 28, 6, 0, 0, 47, 6, 4, 0,134, 3, - 4, 0,238, 5, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 17, 0, 2, 0, 21, 2, 7, 0,110, 0, - 7, 0, 52, 6, 7, 0, 53, 6, 7, 0, 54, 6, 7, 0,166, 0, 7, 0,234, 5, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, - 0, 0, 58, 6, 0, 0, 59, 6, 0, 0, 60, 6, 0, 0, 61, 6, 0, 0, 62, 6, 12, 0, 63, 6, 12, 0, 64, 6, 12, 0, 65, 6, - 2, 0, 66, 6, 2, 0,134, 2, 2, 0, 67, 6, 0, 0, 68, 6, 0, 0, 69, 6, 9, 0, 70, 6,159, 0,112, 3,214, 0, 24, 0, - 16, 0, 34, 0, 16, 0, 61, 0, 15, 0, 71, 6, 15, 0, 72, 6, 15, 0, 73, 6, 7, 0, 74, 6, 7, 0, 75, 6, 7, 0, 76, 6, - 7, 0, 77, 6, 2, 0, 78, 6, 2, 0, 79, 6, 2, 0, 80, 6, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 17, 0, 2, 0, 83, 6, - 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 86, 6, 2, 0, 87, 6, 2, 0, 51, 6, 7, 0, 88, 6, 4, 0, 89, 6, 4, 0, 90, 6, -213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,215, 0, 8, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 0, 0, 91, 6, 0, 0,176, 0, -216, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, -217, 0, 93, 6, 12, 0, 94, 6, 2, 0, 72, 1, 2, 0, 95, 6, 4, 0, 17, 0, 7, 0, 96, 6, 4, 0, 51, 6,218, 0, 21, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,208, 0, 29, 6,214, 0, 92, 6, - 2, 0, 97, 6, 2, 0, 98, 6, 2, 0, 99, 6, 2, 0,100, 6, 2, 0, 83, 6, 2, 0,101, 6, 2, 0,102, 6, 0, 0, 17, 0, - 0, 0, 35, 0, 9, 0, 62, 2, 4, 0,103, 6, 4, 0,104, 6, 19, 0,105, 6,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 7, 0, 86, 2, 7, 0, 87, 2, 2, 0, 97, 6, - 2, 0,106, 6, 2, 0,107, 6, 2, 0,108, 6, 4, 0, 17, 0, 7, 0,109, 6, 4, 0, 5, 6, 4, 0, 35, 0,159, 0,112, 3, -220, 0, 16, 0, 0, 0,110, 6, 0, 0,111, 6, 0, 0,112, 6, 0, 0,113, 6, 0, 0,114, 6, 0, 0,115, 6, 4, 0,116, 6, - 4, 0,117, 6, 4, 0,118, 6, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,119, 6, 2, 0,120, 6, 2, 0,172, 1, 2, 0,121, 6, - 0, 0,122, 6,221, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0,123, 6,220, 0,124, 6, -222, 0,125, 6, 12, 0,126, 6, 12, 0,127, 6,223, 0,128, 6,211, 0,129, 6,224, 0,130, 6, 2, 0,131, 6, 2, 0,132, 6, - 2, 0,133, 6, 2, 0, 67, 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, - 2, 0, 42, 6,214, 0, 92, 6, 12, 0,134, 6,226, 0,135, 6, 0, 0,136, 6,227, 0,137, 6, 2, 0, 17, 0, 2, 0,138, 6, - 2, 0,139, 6, 2, 0,140, 6,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0, 17, 0, - 39, 0,227, 2, 37, 0, 60, 1, 51, 0,141, 6,229, 0,142, 6,230, 0,143, 6,159, 0,112, 3, 7, 0,144, 6, 7, 0, 86, 2, - 7, 0, 87, 2, 7, 0,109, 6, 7, 0,145, 6, 7, 0,146, 6, 2, 0,147, 6, 2, 0,148, 6, 2, 0,149, 6, 2, 0,150, 6, - 0, 0,151, 6, 0, 0,152, 6, 0, 0,153, 6, 0, 0, 51, 6,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, - 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 2, 0, 95, 6, 2, 0, 17, 0, 4, 0, 35, 0,217, 0, 93, 6,214, 0, 92, 6, -232, 0, 31, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 34, 0,154, 6, - 4, 0,155, 6, 4, 0,156, 6, 2, 0, 88, 0, 2, 0,157, 6, 2, 0,158, 6, 0, 0,159, 6, 0, 0,160, 6, 4, 0,161, 6, - 4, 0,162, 6, 4, 0,163, 6, 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6, 2, 0,167, 6, 7, 0,168, 6, 15, 0,169, 6, - 15, 0,170, 6, 4, 0,171, 6, 4, 0,172, 6, 0, 0,173, 6, 0, 0,174, 6, 2, 0,175, 6, 0, 0,192, 2, 9, 0,176, 6, -233, 0, 10, 0, 19, 0, 29, 0, 9, 0,177, 6, 9, 0,178, 6, 9, 0,179, 6, 9, 0,180, 6, 9, 0,181, 6, 4, 0, 88, 0, - 4, 0,182, 6, 0, 0,183, 6, 0, 0,184, 6,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, - 7, 0, 41, 6,233, 0,185, 6, 2, 0, 88, 0, 2, 0,157, 6, 4, 0, 87, 0, 9, 0,186, 6,235, 0, 3, 0,235, 0, 0, 0, -235, 0, 1, 0, 7, 0,187, 6,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, -214, 0, 92, 6, 12, 0,188, 6, 4, 0,189, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,190, 6,237, 0, 26, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 19, 0,191, 6, 19, 0, 78, 0, - 2, 0, 17, 0, 2, 0,157, 6, 7, 0,192, 6, 9, 0,193, 6, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0,109, 6, 7, 0, 38, 6, - 7, 0,194, 6, 7, 0,195, 6, 53, 0, 61, 1, 53, 0,196, 6, 4, 0,197, 6, 2, 0,198, 6, 2, 0,244, 0, 12, 0,199, 6, -159, 0,112, 3,238, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, - 2, 0, 17, 0, 2, 0,143, 3, 4, 0, 35, 0,159, 0,112, 3,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, - 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6,222, 0,125, 6, 0, 0,200, 6, 0, 0,111, 6, 0, 0,112, 6, - 2, 0, 15, 0, 2, 0,201, 6, 2, 0, 17, 0, 2, 0,119, 6, 9, 0,193, 6, 4, 0,116, 6, 4, 0,202, 6, 4, 0,203, 6, - 4, 0,204, 6, 15, 0,205, 6, 15, 0,206, 6, 7, 0,207, 6, 7, 0,208, 6, 7, 0,209, 6, 7, 0,192, 6, 2, 0,210, 6, - 2, 0,234, 0, 2, 0,172, 1, 2, 0,211, 6, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,212, 6, 2, 0,213, 6, 9, 0,214, 6, - 9, 0,215, 6, 9, 0,216, 6, 9, 0,217, 6, 9, 0,218, 6, 2, 0,219, 6, 0, 0,220, 6, 49, 0,221, 6,240, 0, 7, 0, -240, 0, 0, 0,240, 0, 1, 0, 4, 0,222, 6, 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,223, 6, 4, 0, 15, 0,241, 0, 14, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 4, 0,158, 6, 4, 0, 35, 0, - 12, 0,224, 6, 12, 0,225, 6, 0, 0,226, 6, 0, 0,227, 6, 4, 0,228, 6, 4, 0,229, 6,242, 0, 6, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0, 35, 0, 0, 0,230, 6,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6,244, 0,231, 6,214, 0, 92, 6,245, 0,232, 6, 2, 0, 72, 1, 2, 0,233, 6, - 2, 0, 86, 2, 2, 0, 87, 2, 2, 0, 17, 0, 2, 0,149, 6, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, - 0, 0,234, 6, 2, 0,235, 6, 2, 0,236, 6, 2, 0,237, 6, 2, 0, 35, 0,247, 0, 12, 0, 2, 0,236, 6, 2, 0,238, 6, - 2, 0,239, 6, 0, 0,192, 2, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6, 2, 0,243, 6, 2, 0,244, 6, 2, 0, 83, 6, - 7, 0,245, 6, 7, 0,246, 6,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 0, 4, 4,247, 0,247, 6,247, 0,248, 6, -247, 0,249, 6,247, 0,250, 6, 7, 0,251, 6, 2, 0,252, 6, 2, 0,253, 6, 2, 0,254, 6, 2, 0,255, 6, 2, 0, 0, 7, - 2, 0, 1, 7, 2, 0, 2, 7, 2, 0, 3, 7, 2, 0, 4, 7, 2, 0, 5, 7,249, 0, 10, 0, 0, 0, 6, 7, 0, 0, 7, 7, - 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 2, 0, 12, 7, 2, 0, 13, 7, 2, 0, 14, 7, 2, 0, 15, 7, -250, 0, 8, 0, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 7, 0, 4, 6, - 7, 0, 35, 0,251, 0, 18, 0,249, 0, 22, 7,249, 0, 23, 7,249, 0, 24, 7,249, 0, 25, 7,249, 0, 26, 7,249, 0, 27, 7, -249, 0, 28, 7,249, 0, 29, 7,249, 0, 30, 7,249, 0, 31, 7,249, 0, 32, 7,249, 0, 33, 7,249, 0, 34, 7,249, 0, 35, 7, -249, 0, 36, 7,249, 0, 37, 7,250, 0, 38, 7, 0, 0, 39, 7,252, 0, 97, 0, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 10, 7, - 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, - 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, - 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 0, 0, 65, 7, - 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, - 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, - 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7, - 0, 0, 90, 7, 0, 0, 91, 7, 0, 0, 92, 7, 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, 0, 0, 97, 7, - 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, 0, 0,105, 7, - 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, - 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, - 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, 0, 0,129, 7, - 0, 0,130, 7, 0, 0,131, 7, 0, 0,132, 7, 0, 0,133, 7, 0, 0,134, 7, 0, 0,135, 7,253, 0, 5, 0, 0, 0,136, 7, - 0, 0, 64, 7, 0, 0, 66, 7, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0, -251, 0,137, 7,252, 0,138, 7,252, 0,139, 7,252, 0,140, 7,252, 0,141, 7,252, 0,142, 7,252, 0,143, 7,252, 0,144, 7, -252, 0,145, 7,252, 0,146, 7,252, 0,147, 7,252, 0,148, 7,252, 0,149, 7,252, 0,150, 7,252, 0,151, 7,252, 0,152, 7, -252, 0,153, 7,252, 0,154, 7,252, 0,155, 7,253, 0,156, 7, 4, 0,157, 7, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0, -255, 0, 1, 0, 0, 0,158, 7, 0, 1, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,133, 2, 7, 0,159, 7, 7, 0, 36, 2, - 1, 1, 89, 0, 4, 0, 17, 0, 4, 0,160, 7, 4, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, - 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 4, 0,172, 7, 2, 0,173, 7, - 2, 0,174, 7, 2, 0,175, 7, 2, 0,176, 7, 4, 0,177, 7, 4, 0,178, 7, 4, 0,179, 7, 4, 0,180, 7, 2, 0,181, 7, - 2, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, 4, 0,186, 7, 4, 0,187, 7, 4, 0,224, 6, 4, 0,188, 7, - 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, 2, 0,192, 7, 12, 0,193, 7, 12, 0,194, 7, 12, 0,195, 7, 12, 0,196, 7, - 12, 0,197, 7, 0, 0,198, 7, 2, 0,199, 7, 2, 0,200, 7, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, 2, 0,204, 7, - 2, 0,205, 7, 2, 0,206, 7, 0, 1,207, 7, 2, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, 2, 0,212, 7, - 2, 0,213, 7, 2, 0,214, 7, 2, 0,215, 7, 4, 0,216, 7, 4, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, 2, 0,220, 7, - 2, 0,221, 7, 2, 0,222, 7, 2, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, 2, 0,228, 7, - 2, 0,229, 7, 2, 0,230, 7, 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 0, 0,236, 7, - 0, 0,237, 7, 7, 0,238, 7, 2, 0,173, 5, 2, 0,174, 5, 2, 0,239, 7, 2, 0,240, 7, 47, 0,241, 7, 7, 0,242, 7, - 4, 0,229, 1, 0, 0,243, 7, 2, 1, 24, 0, 19, 0, 29, 0, 12, 0,244, 7, 12, 0,245, 7, 12, 0,246, 7, 12, 0, 39, 6, - 38, 0,117, 0, 38, 0,247, 7, 4, 0,248, 7, 4, 0, 87, 0, 2, 0,249, 7, 2, 0,250, 7, 2, 0,251, 7, 2, 0,252, 7, - 2, 0,253, 7, 2, 0,254, 7, 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 35, 0, -211, 0, 4, 8, 9, 0, 5, 8, 2, 0, 6, 8, 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1, 7, 8, 13, 0, 8, 8, - 4, 0, 17, 0, 4, 1, 7, 0, 4, 1, 0, 0, 4, 1, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, 2, 0, 41, 5, 2, 0, 17, 0, - 4, 0, 35, 0, 5, 1, 25, 0, 5, 1, 0, 0, 5, 1, 1, 0, 6, 1, 11, 8, 7, 1,130, 6, 0, 0, 12, 8, 0, 0, 13, 8, - 0, 0, 14, 8, 2, 0, 15, 8, 2, 0, 16, 8, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0, 19, 8, 2, 0, 35, 0, 2, 0, 17, 0, - 2, 0, 20, 8, 2, 0, 21, 8, 2, 0, 22, 8, 4, 0, 23, 8, 5, 1, 24, 8, 9, 0, 25, 8, 4, 0, 26, 8, 4, 0, 27, 8, - 4, 0, 28, 8, 4, 0, 29, 8, 0, 0, 30, 8,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, - 3, 1, 31, 8, 3, 1, 32, 8, 2, 1, 33, 8, 15, 0, 49, 0, 0, 0, 40, 6, 0, 0, 34, 8, 2, 0, 84, 6, 2, 0, 85, 6, - 2, 0, 35, 8, 2, 0, 35, 0, 2, 0,253, 7, 2, 0,223, 6, 2, 0, 17, 0, 8, 1, 11, 8, 12, 0, 36, 8, 12, 0, 39, 6, - 12, 0, 37, 8, 12, 0, 38, 8, 9, 1, 24, 0, 9, 1, 0, 0, 9, 1, 1, 0,214, 0, 92, 6, 15, 0, 39, 8, 15, 0, 40, 8, - 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 41, 8, 2, 0, 42, 8, 2, 0, 43, 8, 2, 0, 17, 0, 7, 0, 82, 2, 2, 0, 17, 8, - 2, 0, 18, 8, 2, 0,252, 7, 2, 0, 44, 8, 2, 0, 1, 8, 2, 0,195, 4, 10, 1, 11, 8, 12, 0, 45, 8, 12, 0, 46, 8, - 12, 0, 37, 8, 0, 0, 47, 8, 9, 0, 48, 8, 11, 1, 14, 0, 0, 0, 49, 8, 2, 0, 50, 8, 2, 0, 51, 8, 2, 0, 52, 8, - 2, 0, 53, 8, 2, 0, 29, 5, 2, 0, 54, 8, 2, 1, 55, 8, 38, 0, 56, 8, 4, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, - 4, 0, 35, 0, 0, 0, 60, 8, 12, 1, 3, 0, 0, 0, 61, 8, 4, 0, 62, 8, 4, 0, 63, 8, 13, 1, 4, 0, 4, 0,155, 6, - 4, 0, 64, 8, 4, 0,161, 6, 4, 0, 65, 8, 14, 1, 2, 0, 4, 0, 66, 8, 4, 0, 67, 8, 15, 1, 5, 0, 7, 0, 68, 8, - 7, 0, 69, 8, 7, 0, 70, 8, 4, 0, 17, 0, 4, 0, 35, 0, 16, 1, 6, 0, 0, 0, 71, 8, 0, 0,112, 6, 41, 0,130, 0, - 2, 0,104, 0, 2, 0, 28, 5, 4, 0, 35, 0, 17, 1, 14, 0, 17, 1, 0, 0, 17, 1, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, - 4, 0, 26, 0, 4, 0, 72, 8, 4, 0, 73, 8, 4, 0, 74, 8, 12, 1, 75, 8, 0, 0, 71, 8, 16, 1,106, 3, 13, 1, 76, 8, - 14, 1, 77, 8, 15, 1, 78, 8, 18, 1, 12, 0, 0, 0,253, 1, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, - 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0, 9, 0, 79, 8, 9, 0, 80, 8, 9, 0,229, 0, 9, 0,231, 0, 19, 1, 48, 0, - 19, 1, 0, 0, 19, 1, 1, 0, 9, 0, 81, 8, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, - 4, 0, 85, 0, 4, 0, 82, 8, 4, 0, 83, 8, 4, 0, 73, 8, 4, 0, 74, 8, 4, 0, 84, 8, 4, 0,243, 0, 4, 0, 85, 8, - 4, 0, 86, 8, 7, 0, 87, 8, 7, 0, 35, 0, 7, 0, 88, 8, 7, 0, 89, 8, 4, 0,121, 0, 4, 0, 90, 8, 17, 1, 91, 8, - 28, 0, 77, 0, 38, 0,117, 0, 24, 0, 92, 8, 41, 0,130, 0, 7, 0, 93, 8, 7, 0, 94, 8, 18, 1, 62, 1, 19, 1, 95, 8, - 19, 1, 96, 8, 19, 1, 97, 8, 12, 0, 98, 8,245, 0,232, 6, 9, 0, 99, 8, 7, 0, 14, 4, 7, 0,100, 8, 7, 0,101, 8, - 4, 0,102, 8, 4, 0,103, 8, 7, 0,104, 8, 9, 0,105, 8, 4, 0,106, 8, 4, 0,107, 8, 4, 0,108, 8, 7, 0,109, 8, - 20, 1, 4, 0, 20, 1, 0, 0, 20, 1, 1, 0, 12, 0,110, 8, 19, 1,111, 8,203, 0, 11, 0, 12, 0,112, 8, 12, 0, 98, 8, - 12, 0,113, 8, 19, 1,114, 8, 0, 0,115, 8, 0, 0,116, 8, 4, 0,117, 8, 4, 0,118, 8, 4, 0,119, 8, 4, 0, 35, 0, - 16, 0,120, 8, 21, 1, 4, 0, 7, 0,121, 8, 7, 0, 76, 3, 2, 0,122, 8, 2, 0,123, 8, 22, 1, 6, 0, 7, 0,124, 8, - 7, 0,125, 8, 7, 0,126, 8, 7, 0,127, 8, 4, 0,128, 8, 4, 0,129, 8, 23, 1, 13, 0, 7, 0,130, 8, 7, 0,131, 8, - 7, 0,132, 8, 7, 0,133, 8, 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, - 4, 0,233, 2, 4, 0,140, 8, 4, 0,141, 8, 24, 1, 2, 0, 7, 0, 99, 5, 7, 0, 35, 0, 25, 1, 5, 0, 7, 0,142, 8, - 7, 0,143, 8, 4, 0, 88, 0, 4, 0,193, 2, 4, 0,144, 8, 26, 1, 6, 0, 26, 1, 0, 0, 26, 1, 1, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,145, 8, 2, 0, 54, 0, 27, 1, 8, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, - 2, 0,145, 8, 2, 0, 54, 0, 7, 0, 21, 0, 7, 0,121, 0, 28, 1, 45, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,145, 8, 2, 0,239, 0, 2, 0, 56, 4, 2, 0,146, 8, 7, 0,147, 8, 7, 0, 86, 0, 7, 0,246, 2, - 4, 0,148, 8, 4, 0, 79, 0, 4, 0,195, 2, 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,152, 8, 7, 0,153, 8, - 7, 0,154, 8, 7, 0,243, 2, 7, 0, 59, 1, 7, 0,155, 8, 7, 0,156, 8, 7, 0, 35, 0, 7, 0,157, 8, 7, 0,158, 8, - 7, 0,159, 8, 2, 0,160, 8, 2, 0,161, 8, 2, 0,162, 8, 2, 0,163, 8, 2, 0,164, 8, 2, 0,165, 8, 2, 0,166, 8, - 2, 0,167, 8, 2, 0, 21, 2, 2, 0,168, 8, 2, 0, 18, 2, 2, 0,169, 8, 0, 0,170, 8, 0, 0,171, 8, 7, 0,237, 0, - 29, 1,172, 8, 58, 0,232, 1, 30, 1, 16, 0, 30, 1, 0, 0, 30, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, - 2, 0,239, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 71, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,173, 8, - 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,227, 0, 5, 0, 2, 0, 15, 0, 2, 0,174, 8, 2, 0, 17, 0, 2, 0,175, 8, - 19, 0,191, 6,226, 0, 3, 0, 4, 0, 66, 0, 4, 0,176, 8,227, 0, 2, 0, 31, 1, 7, 0, 31, 1, 0, 0, 31, 1, 1, 0, - 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 0,177, 8, 32, 1, 5, 0, 0, 0, 18, 0, 7, 0, 79, 1, - 7, 0,178, 8, 4, 0,179, 8, 4, 0, 35, 0, 33, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 0, - 34, 1, 4, 0, 0, 0, 18, 0, 57, 0,180, 8, 7, 0, 79, 1, 7, 0, 35, 0, 35, 1, 6, 0, 2, 0,181, 8, 2, 0,182, 8, - 2, 0, 15, 0, 2, 0,183, 8, 0, 0,184, 8, 0, 0,185, 8, 36, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, - 0, 0,186, 8, 0, 0,187, 8, 37, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 1, 4, 0, 2, 0,188, 8, - 2, 0,189, 8, 2, 0, 17, 0, 2, 0, 35, 0, 39, 1, 6, 0, 0, 0, 18, 0, 0, 0,190, 8, 2, 0,191, 8, 2, 0,243, 2, - 2, 0, 72, 1, 2, 0, 67, 0, 40, 1, 5, 0, 0, 0, 18, 0, 7, 0, 76, 3, 7, 0,145, 4, 2, 0, 17, 0, 2, 0,207, 2, - 41, 1, 3, 0, 0, 0, 18, 0, 4, 0,195, 2, 4, 0,188, 8, 42, 1, 7, 0, 0, 0, 18, 0, 7, 0,145, 4, 0, 0,192, 8, - 0, 0,193, 8, 2, 0, 72, 1, 2, 0, 87, 0, 4, 0,194, 8, 43, 1, 4, 0, 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, - 7, 0,211, 2, 44, 1, 3, 0, 24, 0,197, 8, 0, 0,198, 8, 0, 0,199, 8, 45, 1, 18, 0, 45, 1, 0, 0, 45, 1, 1, 0, - 2, 0, 15, 0, 2, 0,200, 8, 2, 0, 17, 0, 2, 0,201, 8, 2, 0,202, 8, 2, 0,203, 8, 2, 0, 87, 0, 2, 0, 67, 0, - 0, 0, 18, 0, 9, 0, 2, 0, 46, 1,204, 8, 24, 0, 42, 0, 2, 0,116, 5, 2, 0,100, 8, 2, 0,205, 8, 2, 0, 35, 0, - 47, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0,206, 8, 2, 0, 17, 0, 2, 0,207, 2, 2, 0,207, 8, 4, 0,208, 8, - 4, 0,209, 8, 4, 0,210, 8, 4, 0,211, 8, 4, 0,212, 8, 48, 1, 1, 0, 0, 0,213, 8, 49, 1, 4, 0, 34, 0,154, 6, - 0, 0,158, 7, 4, 0, 72, 1, 4, 0, 17, 0, 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1,214, 8, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,215, 8, 2, 0,203, 8, 2, 0,200, 8, 2, 0,216, 8, 2, 0, 67, 0, 2, 0,229, 1, 0, 0, 18, 0, - 9, 0, 2, 0, 50, 1,204, 8, 45, 1,217, 8, 2, 0, 13, 0, 2, 0,218, 8, 4, 0,219, 8, 51, 1, 3, 0, 4, 0,221, 2, - 4, 0, 35, 0, 24, 0, 42, 0, 52, 1, 12, 0,157, 0,220, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,147, 8, 7, 0, 86, 0, - 0, 0, 18, 0, 0, 0,221, 8, 2, 0,222, 8, 2, 0,223, 8, 2, 0,224, 8, 2, 0,225, 8, 7, 0,226, 8, 53, 1, 8, 0, - 7, 0,227, 8, 7, 0,228, 8, 7, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, - 54, 1, 13, 0, 2, 0, 17, 0, 2, 0,233, 6, 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,235, 8, 7, 0, 14, 4, 7, 0,236, 8, -245, 0,232, 6, 53, 1,237, 8, 2, 0, 15, 0, 2, 0, 35, 5, 2, 0,254, 5, 2, 0,238, 8, 55, 1, 11, 0, 4, 0,221, 2, - 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,239, 8, 0, 0, 18, 0, 7, 0,240, 8, 7, 0,241, 8, 7, 0,151, 3, - 2, 0,242, 8, 2, 0,243, 8, 56, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 0,107, 5, - 57, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,186, 8, 24, 0, 42, 0, 58, 1, 13, 0, 2, 0, 17, 0, - 2, 0, 15, 0, 2, 0,200, 8, 2, 0,152, 3, 7, 0,244, 8, 7, 0,245, 8, 7, 0,195, 4, 7, 0,163, 3, 7, 0,122, 3, - 7, 0,125, 3, 7, 0,246, 8, 7, 0,247, 8, 24, 0,248, 8, 59, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 0,147, 8, - 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,221, 8, 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,229, 1, 2, 0, 35, 5, 60, 1, 8, 0, - 24, 0, 42, 0, 7, 0,240, 2, 7, 0,249, 8, 7, 0,250, 8, 7, 0,152, 3, 2, 0, 87, 0, 2, 0,207, 2, 7, 0, 67, 0, - 61, 1, 12, 0, 2, 0, 15, 0, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,243, 2, 2, 0,221, 2, 2, 0,251, 8, 4, 0, 35, 0, - 7, 0,252, 8, 7, 0,253, 8, 7, 0,254, 8, 7, 0,255, 8, 0, 0, 0, 9, 62, 1, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, - 4, 0,147, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0,195, 4, 2, 0, 61, 0, 2, 0, 1, 9, 2, 0, 2, 9, 63, 1, 7, 0, - 4, 0,195, 2, 4, 0, 3, 9, 4, 0, 4, 9, 4, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9, 0, 0,192, 8, 64, 1, 7, 0, - 0, 0, 8, 9, 24, 0, 9, 9, 0, 0,198, 8, 2, 0, 10, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,199, 8, 65, 1, 6, 0, - 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,147, 8, 4, 0, 86, 0, 0, 0, 11, 9, 0, 0, 12, 9, 66, 1, 1, 0, 4, 0, 17, 0, - 67, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 13, 9, 7, 0, 14, 9, 34, 0,154, 6, 68, 1, 4, 0, - 0, 0,159, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 69, 1, 2, 0, 4, 0, 15, 0, 4, 0, 73, 6, 70, 1, 6, 0, - 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, 7, 0, 29, 2, 24, 0, 53, 3, 24, 0, 15, 9, 50, 1, 10, 0, 50, 1, 0, 0, - 50, 1, 1, 0, 50, 1,214, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,200, 8, 2, 0, 16, 9, 0, 0, 18, 0, 9, 0, 2, 0, - 24, 0, 42, 0,245, 0, 16, 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 0, 17, 9, 28, 0, 77, 0, - 7, 0, 14, 4, 7, 0, 18, 9, 7, 0,236, 8, 7, 0,227, 8, 7, 0,228, 8, 7, 0, 19, 9, 4, 0, 88, 0, 4, 0, 35, 0, - 9, 0, 20, 9, 9, 0, 21, 9, 71, 1, 6, 0, 71, 1, 0, 0, 71, 1, 1, 0, 24, 0, 42, 0, 9, 0, 22, 9, 2, 0,244, 0, - 0, 0,192, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 23, 9, 4, 0,126, 0, 7, 0, 24, 9, 72, 1, 28, 0, 72, 1, 0, 0, - 72, 1, 1, 0, 18, 0, 25, 9, 72, 1, 36, 0, 12, 0, 26, 9, 0, 0, 18, 0, 7, 0, 27, 9, 7, 0, 28, 9, 7, 0, 29, 9, - 7, 0, 30, 9, 4, 0, 17, 0, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 33, 9, 7, 0, 34, 9, 7, 0, 79, 1, 7, 0, 29, 2, - 7, 0, 35, 9, 7, 0,193, 2, 7, 0, 36, 9, 7, 0, 37, 9, 7, 0, 38, 9, 7, 0, 39, 9, 7, 0, 40, 9, 7, 0,167, 0, - 4, 0,126, 0, 2, 0,153, 5, 2, 0, 5, 7, 73, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 41, 9, 12, 0, 42, 9, - 12, 0, 43, 9, 72, 1, 44, 9, 9, 0, 45, 9, 9, 0, 46, 9, 4, 0, 17, 0, 4, 0, 48, 6, 2, 0,247, 2, 2, 0,103, 6, - 4, 0, 47, 9, 4, 0,126, 0, 4, 0, 48, 9, 2, 0, 49, 9, 2, 0, 50, 9, 2, 0, 51, 9, 2, 0, 52, 9, 4, 0, 53, 9, - 4, 0, 54, 9, 4, 0, 55, 9, 4, 0, 56, 9, 4, 0, 57, 9, 4, 0, 58, 9, 74, 1, 2, 0, 7, 0,147, 2, 4, 0, 17, 0, -161, 0, 5, 0, 74, 1, 59, 9, 4, 0,193, 2, 4, 0, 60, 9, 4, 0, 61, 9, 4, 0, 17, 0,160, 0, 16, 0, 4, 0, 62, 9, - 4, 0, 63, 9, 4, 0, 64, 9, 4, 0, 65, 9, 2, 0, 66, 9, 2, 0, 67, 9, 2, 0, 68, 9, 2, 0,244, 0, 2, 0, 69, 9, - 2, 0, 70, 9, 2, 0, 71, 9, 2, 0, 72, 9, 4, 0, 73, 9, 4, 0, 74, 9, 4, 0, 75, 9, 4, 0, 76, 9, 75, 1, 41, 0, - 75, 1, 0, 0, 75, 1, 1, 0, 18, 0, 25, 9, 12, 0,177, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 77, 9, 2, 0, 78, 9, - 2, 0, 79, 9, 2, 0,137, 3, 2, 0, 80, 9, 4, 0, 69, 2, 4, 0, 55, 9, 4, 0, 56, 9, 72, 1, 81, 9, 75, 1, 36, 0, - 75, 1, 82, 9, 12, 0, 83, 9,161, 0,114, 3, 24, 0, 84, 9, 75, 1, 85, 9, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 86, 9, - 7, 0, 8, 2, 7, 0,127, 3, 7, 0,129, 3, 2, 0,160, 3, 2, 0, 35, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0,132, 3, - 7, 0, 89, 9, 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0, 93, 9, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, - 7, 0, 62, 2,158, 0, 16, 0, 12, 0, 97, 9, 68, 0, 98, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 99, 9, 4, 0, 87, 0, - 7, 0, 98, 2, 7, 0,100, 9, 7, 0,101, 9, 12, 0,102, 9, 4, 0,103, 9, 4, 0,104, 9, 9, 0,105, 9, 9, 0,106, 9, -160, 0,113, 3, 0, 0,107, 9, 76, 1, 1, 0, 4, 0,104, 9, 77, 1, 12, 0, 4, 0,104, 9, 7, 0,212, 8, 2, 0,108, 9, - 2, 0,109, 9, 7, 0,110, 9, 7, 0,111, 9, 2, 0,112, 9, 2, 0, 17, 0, 7, 0,113, 9, 7, 0,114, 9, 7, 0,115, 9, - 7, 0,116, 9, 78, 1, 7, 0, 78, 1, 0, 0, 78, 1, 1, 0, 12, 0,117, 9, 4, 0, 17, 0, 4, 0,118, 9, 0, 0, 4, 4, -253, 0,119, 9,157, 0, 9, 0, 19, 0, 29, 0, 12, 0,120, 9, 12, 0, 97, 9, 12, 0,121, 9, 12, 0, 98, 0, 4, 0, 17, 0, - 4, 0,122, 9, 4, 0,123, 9, 4, 0, 35, 0,217, 0, 6, 0, 19, 0,124, 9, 12, 0, 97, 9, 58, 0,125, 9, 0, 0,126, 9, - 4, 0,127, 9, 4, 0, 17, 0, 79, 1, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, - 2, 0, 42, 6,214, 0, 92, 6,157, 0,109, 3,217, 0,128, 9, 0, 0, 72, 1, 0, 0, 95, 6, 2, 0, 17, 0, 7, 0,129, 9, - 80, 1, 8, 0, 80, 1, 0, 0, 80, 1, 1, 0, 78, 1,130, 9, 28, 0, 77, 0, 12, 0,115, 3, 4, 0, 17, 0, 0, 0, 18, 0, - 4, 0,250, 7, 81, 1, 5, 0, 81, 1, 0, 0, 81, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,131, 9, 82, 1, 14, 0, - 82, 1, 0, 0, 82, 1, 1, 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,132, 9, 0, 0,133, 9, 0, 0,131, 9, - 7, 0,134, 9, 7, 0,135, 9, 4, 0, 35, 0, 28, 0, 77, 0, 7, 0,136, 9, 7, 0,137, 9, 83, 1, 9, 0, 83, 1, 0, 0, - 83, 1, 1, 0, 24, 0,138, 9, 0, 0,250, 2, 7, 0,139, 9, 2, 0,140, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,141, 9, - 84, 1, 7, 0, 34, 0,154, 6, 18, 0, 25, 9, 4, 0, 17, 0, 4, 0,142, 9, 12, 0,143, 9, 24, 0,138, 9, 0, 0,250, 2, - 85, 1, 15, 0, 24, 0,138, 9, 2, 0,144, 9, 2, 0, 17, 0, 2, 0,145, 9, 2, 0,146, 9, 0, 0,250, 2, 24, 0,147, 9, - 0, 0,148, 9, 7, 0,149, 9, 7, 0, 29, 2, 7, 0,150, 9, 7, 0,151, 9, 2, 0, 15, 0, 2, 0, 72, 1, 7, 0, 79, 1, - 86, 1, 6, 0, 24, 0,138, 9, 7, 0, 59, 9, 2, 0,152, 9, 2, 0,153, 9, 2, 0, 17, 0, 2, 0,154, 9, 87, 1, 6, 0, - 24, 0,138, 9, 4, 0,155, 9, 4, 0,156, 9, 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,250, 2, 88, 1, 4, 0, 24, 0,138, 9, - 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, 89, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, - 90, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, 91, 1, 2, 0, 4, 0, 17, 0, 7, 0, 14, 4, - 92, 1, 2, 0, 24, 0,138, 9, 0, 0,250, 2, 93, 1, 10, 0, 24, 0,138, 9, 4, 0,157, 9, 7, 0,120, 0, 4, 0, 17, 0, - 2, 0,152, 6, 2, 0,158, 9, 2, 0, 87, 0, 2, 0, 67, 0, 7, 0,159, 9, 0, 0,250, 2, 94, 1, 10, 0, 24, 0,138, 9, - 2, 0, 15, 0, 2, 0, 64, 4, 4, 0, 85, 0, 4, 0, 86, 0, 7, 0,249, 8, 7, 0,250, 8, 4, 0, 35, 0,157, 0,220, 8, - 0, 0,250, 2, 95, 1, 4, 0, 24, 0,138, 9, 4, 0,138, 3, 4, 0,160, 9, 0, 0,250, 2, 96, 1, 4, 0, 24, 0,138, 9, - 4, 0,138, 3, 4, 0, 35, 0, 0, 0,250, 2, 97, 1, 6, 0, 24, 0,138, 9, 7, 0,120, 0, 7, 0, 65, 3, 4, 0,161, 9, - 2, 0,138, 3, 2, 0,139, 3, 98, 1, 6, 0, 24, 0,138, 9, 4, 0,162, 9, 4, 0,163, 9, 7, 0,164, 9, 7, 0,165, 9, - 0, 0,250, 2, 99, 1, 16, 0, 24, 0,138, 9, 24, 0, 82, 9, 4, 0, 15, 0, 7, 0,166, 9, 7, 0,167, 9, 7, 0,168, 9, - 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, 7, 0,173, 9, 7, 0,174, 9, 2, 0, 17, 0, 2, 0, 35, 0, - 2, 0, 87, 0, 2, 0, 67, 0,100, 1, 3, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0, 21, 2,101, 1, 5, 0, 24, 0,138, 9, - 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,175, 9, 0, 0,250, 2,102, 1, 10, 0, 24, 0,138, 9, 0, 0,250, 2, 2, 0,176, 9, - 2, 0,177, 9, 0, 0,178, 9, 0, 0,179, 9, 7, 0,180, 9, 7, 0,181, 9, 7, 0,182, 9, 7, 0,183, 9,103, 1, 5, 0, - 24, 0,138, 9, 0, 0,250, 2, 7, 0,201, 2, 2, 0,184, 9, 2, 0, 17, 0,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, - 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2,105, 1, 8, 0, 7, 0, 7, 0, - 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2,106, 1, 8, 0, - 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 21, 2, -107, 1, 7, 0, 24, 0,138, 9, 0, 0,250, 2, 7, 0, 79, 1, 7, 0, 88, 1, 2, 0, 17, 0, 2, 0, 72, 1, 4, 0, 35, 0, -108, 1, 5, 0, 24, 0, 53, 3, 7, 0, 79, 1, 2, 0, 57, 3, 0, 0, 59, 3, 0, 0,187, 9,109, 1, 10, 0,109, 1, 0, 0, -109, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,188, 9, 7, 0, 22, 1, 7, 0, 23, 1, 2, 0,117, 9, 2, 0,189, 9, - 24, 0, 42, 0,110, 1, 22, 0,110, 1, 0, 0,110, 1, 1, 0, 2, 0, 17, 0, 2, 0, 72, 1, 2, 0,190, 9, 2, 0,191, 9, - 28, 0, 77, 0,157, 0,220, 8, 24, 0,159, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9, - 7, 0,195, 9, 7, 0,236, 2, 7, 0,196, 9, 7, 0,222, 8, 7, 0,197, 9, 0, 0,198, 9, 0, 0,199, 9, 12, 0,118, 3, -111, 1, 8, 0, 7, 0, 36, 2, 7, 0,249, 8, 7, 0,250, 8, 9, 0, 2, 0, 2, 0,200, 9, 2, 0,201, 9, 2, 0,202, 9, - 2, 0,203, 9,112, 1, 19, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,204, 9, 0, 0, 18, 0,111, 1,205, 9, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0,206, 9, 2, 0,207, 9,111, 1,208, 9, 2, 0,209, 9, 2, 0, 87, 0, 7, 0,210, 9, 7, 0,211, 9, - 4, 0,212, 9,112, 1,213, 9, 4, 0,214, 9, 4, 0, 67, 0,113, 1,215, 9,114, 1, 4, 0, 0, 0,216, 9, 2, 0,217, 9, - 2, 0,218, 9, 4, 0, 35, 0,115, 1, 34, 0,115, 1, 0, 0,115, 1, 1, 0,115, 1,219, 9, 0, 0, 18, 0, 2, 0, 15, 0, - 2, 0, 17, 0, 2, 0, 72, 8, 2, 0,100, 8, 2, 0,220, 9, 2, 0,157, 6, 2, 0,209, 9, 2, 0,174, 8, 12, 0,215, 8, - 12, 0,221, 9, 19, 0,191, 6, 9, 0,222, 9, 7, 0,210, 9, 7, 0,211, 9, 7, 0, 71, 2, 7, 0,223, 9, 0, 0,224, 9, - 2, 0,225, 9, 2, 0,226, 9, 7, 0,227, 9, 7, 0,228, 9, 2, 0,229, 9, 2, 0,230, 9, 9, 0,231, 9, 16, 0,232, 9, - 16, 0,233, 9, 16, 0,234, 9,114, 1,146, 0,116, 1,235, 9,117, 1,236, 9,113, 1, 8, 0,113, 1, 0, 0,113, 1, 1, 0, -115, 1,237, 9,115, 1,238, 9,112, 1,239, 9,112, 1,240, 9, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, - 31, 0, 72, 0,159, 0,112, 3, 12, 0,241, 9, 12, 0,242, 9,111, 1,243, 9, 12, 0,244, 9, 4, 0, 15, 0, 4, 0,245, 9, - 4, 0,246, 9, 4, 0,247, 9, 4, 0, 17, 0, 4, 0, 35, 0, 12, 0,248, 9, 12, 0,215, 8, 12, 0,221, 9, 4, 0, 62, 6, - 9, 0,249, 9, 9, 0,250, 9, 4, 0,251, 9, 9, 0,252, 9, 9, 0,253, 9, 9, 0,254, 9,118, 1, 6, 0, 4, 0,119, 0, - 4, 0,121, 0, 4, 0,174, 8, 0, 0,255, 9, 0, 0, 0, 10, 2, 0, 35, 0,119, 1, 16, 0, 2, 0, 17, 8, 2, 0, 18, 8, - 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, 2, 0, 65, 0, 2, 0,192, 6, 2, 0, 4, 10, 7, 0,235, 2, 7, 0, 5, 10, - 7, 0, 6, 10, 2, 0, 94, 1, 0, 0, 7, 10, 0, 0, 8, 10, 4, 0, 9, 10, 4, 0, 10, 10,120, 1, 9, 0, 7, 0, 11, 10, - 7, 0, 12, 10, 7, 0, 19, 9, 7, 0, 76, 3, 7, 0, 13, 10, 7, 0,109, 6, 2, 0, 74, 3, 0, 0, 14, 10, 0, 0, 35, 0, -121, 1, 4, 0, 7, 0, 15, 10, 7, 0, 16, 10, 2, 0, 74, 3, 2, 0, 35, 0,122, 1, 3, 0, 7, 0, 17, 10, 7, 0, 87, 8, - 7, 0, 13, 0,123, 1, 7, 0, 0, 0,253, 1, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0,217, 4, 4, 0,121, 0, - 4, 0, 62, 4,124, 1, 9, 0, 7, 0, 18, 10, 7, 0, 19, 10, 7, 0, 20, 10, 7, 0, 82, 2, 7, 0, 21, 10, 7, 0, 22, 10, - 7, 0, 23, 10, 2, 0, 24, 10, 2, 0, 25, 10,125, 1, 8, 0, 2, 0, 26, 10, 2, 0, 27, 10, 2, 0, 28, 10, 2, 0, 29, 10, - 7, 0, 30, 10, 7, 0, 31, 10, 7, 0, 32, 10, 7, 0, 33, 10,126, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,127, 1, 2, 0, - 0, 0,161, 0, 0, 0, 34, 10,128, 1, 1, 0, 0, 0, 18, 0,129, 1, 10, 0, 0, 0, 35, 10, 0, 0, 36, 10, 0, 0,101, 6, - 0, 0, 37, 10, 2, 0, 1, 10, 2, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0,196, 9,130, 1, 2, 0, - 9, 0, 42, 10, 9, 0, 43, 10,131, 1, 11, 0, 0, 0, 28, 5, 0, 0, 15, 0, 0, 0, 74, 3, 0, 0, 76, 3, 0, 0, 44, 10, - 0, 0,104, 0, 0, 0,159, 2, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10,132, 1, 8, 0, 7, 0,181, 8, - 7, 0,120, 0, 7, 0, 8, 10, 7, 0,152, 2, 7, 0, 49, 10, 7, 0,233, 0, 7, 0, 50, 10, 4, 0, 15, 0,133, 1, 4, 0, - 2, 0, 51, 10, 2, 0, 52, 10, 2, 0, 53, 10, 2, 0, 35, 0,134, 1, 8, 0, 7, 0, 54, 10, 7, 0,201, 2, 7, 0, 55, 10, - 7, 0, 68, 8, 7, 0, 69, 8, 7, 0, 70, 8, 7, 0, 56, 10, 7, 0, 57, 10,135, 1, 6, 0, 2, 0, 58, 10, 2, 0, 59, 10, - 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10,136, 1, 1, 0, 0, 0, 18, 0,137, 1, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 64, 10,138, 1, 10, 0, 2, 0,248, 3, 2, 0, 17, 0, 7, 0,145, 4, 7, 0, 65, 10, - 7, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10,137, 1, 69, 10,137, 1, 70, 10,137, 1, 71, 10, 51, 0, 11, 0, 4, 0, 17, 0, - 4, 0, 61, 0, 4, 0, 72, 10, 4, 0, 73, 10, 16, 0, 74, 10, 16, 0, 75, 10,138, 1, 76, 10, 7, 0, 77, 10, 7, 0, 78, 10, - 7, 0, 79, 10, 7, 0, 80, 10,230, 0, 10, 0, 4, 0,117, 9, 4, 0, 81, 10, 7, 0, 82, 10, 7, 0, 83, 10, 7, 0, 84, 10, - 7, 0, 85, 10, 7, 0, 8, 0, 7, 0, 10, 0, 4, 0, 72, 1, 4, 0,240, 2,229, 0, 18, 0, 4, 0,124, 0, 4, 0, 86, 10, - 4, 0, 87, 10, 7, 0, 88, 10, 4, 0, 89, 10, 7, 0, 90, 10, 7, 0, 91, 10, 4, 0, 92, 10, 7, 0, 93, 10, 4, 0, 94, 10, - 7, 0, 95, 10,230, 0, 96, 10, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 4, 0,101, 10, 4, 0, 35, 0, -139, 1, 4, 0, 39, 0,227, 2, 7, 0,102, 10, 7, 0,161, 1, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 0,139, 1,103, 10, - 51, 0, 69, 10, 43, 0,104, 10, 49, 0,105, 10, 22, 0,146, 0, 0, 0,106, 10, 7, 0,107, 10, 2, 0, 4, 6, 2, 0,108, 10, - 4, 0,104, 0, 4, 0, 17, 0, 7, 0,109, 10, 4, 0, 79, 2, 4, 0,110, 10, 7, 0,111, 10, 7, 0,112, 10, 7, 0,113, 10, - 7, 0,161, 1, 4, 0,114, 10, 7, 0,115, 10, 0, 0,116, 10, 0, 0,117, 10, 0, 0,118, 10, 0, 0,119, 10, 7, 0,120, 10, - 7, 0,121, 10, 7, 0,122, 10, 7, 0,240, 2, 7, 0,123, 10, 4, 0,124, 10, 7, 0,125, 10, 7, 0,126, 10, 7, 0,127, 10, -140, 1, 10, 0, 4, 0, 15, 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 0,201, 3, 4, 0,128, 10, 4, 0,129, 10, 4, 0,130, 10, - 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0,141, 1, 1, 0, 0, 0, 60, 8, 84, 0, 7, 0,140, 1,131, 10, 4, 0,132, 10, - 4, 0,133, 10, 4, 0,134, 10, 4, 0, 35, 0, 9, 0,135, 10,141, 1,136, 10,142, 1, 5, 0, 7, 0,147, 2, 7, 0,221, 2, - 7, 0, 29, 2, 2, 0,128, 2, 2, 0, 35, 0,143, 1, 5, 0, 7, 0,147, 2, 7, 0, 89, 4, 7, 0,137, 10, 7, 0,138, 10, - 7, 0,221, 2,144, 1, 5, 0, 24, 0,139, 10,145, 1, 20, 0, 7, 0,227, 5, 7, 0,140, 10, 7, 0, 54, 0,146, 1, 3, 0, - 7, 0,141, 10, 4, 0,142, 10, 4, 0,143, 10,147, 1, 7, 0, 4, 0,144, 10, 4, 0,145, 10, 4, 0,146, 10, 7, 0,147, 10, - 7, 0,148, 10, 7, 0,149, 10, 7, 0, 54, 0,148, 1, 8, 0,148, 1, 0, 0,148, 1, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, - 2, 0, 17, 0, 2, 0, 72, 1, 7, 0,221, 2, 7, 0,189, 8,149, 1, 6, 0,149, 1, 0, 0,149, 1, 1, 0, 24, 0, 42, 0, - 2, 0,206, 2, 2, 0, 17, 0, 2, 0,150, 10,150, 1, 17, 0,143, 1,193, 3,143, 1,151, 10,142, 1,152, 10,143, 1,172, 8, -144, 1,153, 10, 4, 0, 79, 0, 7, 0,221, 2, 7, 0,246, 2, 7, 0,154, 10, 4, 0,144, 10, 4, 0,155, 10, 7, 0,148, 10, - 7, 0,149, 10, 7, 0,104, 0, 4, 0,156, 10, 2, 0, 17, 0, 2, 0,157, 10,151, 1, 15, 0, 7, 0,248, 0, 7, 0,158, 10, - 7, 0,141, 10, 7, 0,159, 10, 7, 0,160, 10, 7, 0,161, 10, 7, 0,162, 10, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10, - 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, 4, 0, 17, 0, 4, 0,169, 10,152, 1,121, 0, 19, 0, 29, 0, 31, 0, 72, 0, -153, 1,170, 10,151, 1,171, 10,168, 0, 84, 4, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 0,176, 9, 2, 0,172, 10, - 2, 0,107, 1, 2, 0,173, 10, 2, 0,160, 3, 2, 0,174, 10, 2, 0,175, 10, 2, 0,176, 10, 2, 0,177, 10, 2, 0,178, 10, - 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, 2, 0,124, 5, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, - 2, 0,186, 10, 2, 0,187, 10, 2, 0, 18, 2, 2, 0,165, 8, 2, 0,140, 8, 2, 0,188, 10, 2, 0,189, 10, 2, 0,211, 3, - 2, 0,212, 3, 2, 0,190, 10, 2, 0,191, 10, 2, 0,192, 10, 2, 0,193, 10, 7, 0,194, 10, 7, 0,195, 10, 7, 0,196, 10, - 7, 0,197, 10, 2, 0, 74, 5, 2, 0,198, 10, 7, 0,199, 10, 7, 0,200, 10, 7, 0,201, 10, 7, 0,147, 8, 7, 0, 86, 0, - 7, 0,246, 2, 7, 0,153, 8, 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,205, 10, 4, 0,148, 8, 4, 0,146, 8, - 4, 0,206, 10, 4, 0,207, 10, 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,208, 10, 7, 0,209, 10, 7, 0,210, 10, - 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 7, 0,151, 3, 7, 0,104, 0, - 7, 0,217, 10, 7, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,206, 0, 7, 0,221, 10, 4, 0,222, 10, 4, 0,223, 10, - 7, 0,224, 10, 7, 0,225, 10, 7, 0,226, 10, 7, 0,227, 10, 7, 0,228, 10, 7, 0,205, 0, 7, 0,229, 10, 7, 0,238, 3, - 7, 0,236, 3, 7, 0,237, 3, 7, 0,230, 10, 7, 0,231, 10, 7, 0,232, 10, 7, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10, - 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10, 7, 0,239, 10, 7, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, - 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, 7, 0,247, 10, 4, 0,248, 10, 4, 0,249, 10, 43, 0,125, 1, 58, 0,182, 3, - 12, 0,250, 10, 58, 0,251, 10, 24, 0,252, 10, 24, 0,253, 10, 28, 0, 77, 0,163, 0, 64, 1,163, 0,254, 10,141, 0, 50, 0, -141, 0, 0, 0,141, 0, 1, 0,152, 1,255, 10,150, 1, 0, 11,147, 1, 82, 9,171, 0, 10, 4, 9, 0, 11, 4,154, 1, 1, 11, -154, 1, 2, 11, 12, 0, 3, 11, 12, 0, 4, 11,126, 0, 5, 11,134, 0, 6, 11,134, 0, 7, 11, 24, 0, 8, 11, 24, 0, 9, 11, - 24, 0, 36, 0, 12, 0,143, 9, 0, 0, 18, 0, 7, 0,237, 0, 7, 0, 19, 3, 7, 0, 10, 11, 7, 0, 11, 11, 4, 0,195, 2, - 4, 0, 12, 11, 4, 0, 17, 0, 4, 0,148, 8, 4, 0, 13, 11, 4, 0, 14, 11, 4, 0, 15, 11, 4, 0, 16, 11, 2, 0,244, 0, - 2, 0, 17, 11, 2, 0, 18, 11, 2, 0, 19, 11, 0, 0, 20, 11, 2, 0, 21, 11, 2, 0, 22, 11, 2, 0, 23, 11, 9, 0, 24, 11, -130, 0, 83, 4, 12, 0, 4, 3, 12, 0, 25, 11,146, 1, 26, 11, 4, 0, 27, 11, 4, 0, 28, 11,155, 1, 29, 11,132, 0, 16, 3, -156, 1, 30, 11, 7, 0, 31, 11,128, 0, 37, 0,157, 1, 20, 9, 7, 0, 53, 4, 7, 0, 32, 11, 7, 0, 33, 11, 7, 0,227, 5, - 7, 0,161, 3, 7, 0,151, 3, 7, 0, 34, 11, 7, 0, 81, 2, 7, 0, 35, 11, 7, 0, 36, 11, 7, 0, 37, 11, 7, 0, 38, 11, - 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 54, 4, 7, 0, 41, 11, 7, 0, 42, 11, 7, 0, 43, 11, 7, 0, 55, 4, 7, 0, 51, 4, - 7, 0, 52, 4, 7, 0, 44, 11, 7, 0, 45, 11, 4, 0, 46, 11, 4, 0, 88, 0, 4, 0, 47, 11, 4, 0, 48, 11, 2, 0, 49, 11, - 2, 0, 50, 11, 2, 0, 51, 11, 2, 0, 52, 11, 2, 0, 53, 11, 2, 0, 54, 11, 2, 0, 55, 11, 2, 0,195, 4,168, 0, 84, 4, -129, 0, 11, 0,157, 1, 56, 11, 7, 0, 57, 11, 7, 0, 58, 11, 7, 0,233, 1, 7, 0, 59, 11, 7, 0, 60, 11, 7, 0, 61, 11, - 4, 0, 88, 0, 2, 0, 62, 11, 2, 0, 63, 11, 58, 0,232, 1,158, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 2, - 7, 0, 64, 11,159, 1, 6, 0,159, 1, 0, 0,159, 1, 1, 0,158, 1, 59, 9, 4, 0,250, 0, 2, 0, 65, 11, 2, 0, 17, 0, -160, 1, 5, 0,160, 1, 0, 0,160, 1, 1, 0, 12, 0, 66, 11, 4, 0, 67, 11, 4, 0, 17, 0,161, 1, 9, 0,161, 1, 0, 0, -161, 1, 1, 0, 12, 0,119, 0,160, 1, 68, 11, 4, 0, 17, 0, 2, 0, 65, 11, 2, 0, 69, 11, 7, 0, 89, 0, 0, 0, 70, 11, -159, 0, 6, 0, 19, 0, 29, 0, 12, 0, 43, 5, 4, 0, 17, 0, 2, 0, 71, 11, 2, 0, 72, 11, 9, 0, 73, 11,162, 1, 6, 0, - 12, 0, 74, 11, 4, 0, 75, 11, 4, 0, 76, 11, 4, 0, 17, 0, 4, 0, 35, 0,211, 0, 77, 11,163, 1, 17, 0, 19, 0, 29, 0, -164, 1, 78, 11,164, 1, 79, 11, 12, 0, 80, 11, 4, 0, 81, 11, 2, 0, 82, 11, 2, 0, 83, 11, 12, 0, 84, 11, 12, 0, 85, 11, -162, 1, 86, 11, 12, 0, 87, 11, 12, 0, 88, 11, 12, 0, 89, 11, 12, 0, 90, 11,165, 1, 91, 11, 12, 0, 92, 11,211, 0, 93, 11, -164, 1, 32, 0,164, 1, 0, 0,164, 1, 1, 0, 9, 0, 94, 11, 4, 0,251, 7, 2, 0, 95, 11, 2, 0, 35, 0, 2, 1, 96, 11, - 2, 1, 97, 11, 0, 0, 98, 11, 2, 0, 99, 11, 2, 0,100, 11, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0,101, 11, 2, 0,102, 11, - 2, 0,201, 3, 2, 0,223, 6, 2, 0,103, 11, 2, 0,104, 11, 2, 0,105, 11, 2, 0, 67, 0,166, 1,106, 11,167, 1,107, 11, -168, 1,108, 11, 4, 0,109, 11, 4, 0,110, 11, 9, 0,111, 11, 12, 0, 85, 11, 12, 0, 37, 8, 12, 0,112, 11, 12, 0,113, 11, - 12, 0,114, 11,169, 1, 17, 0,169, 1, 0, 0,169, 1, 1, 0, 0, 0,115, 11, 18, 0, 28, 0, 2, 0,116, 11, 2, 0, 15, 0, - 2, 0, 13, 0, 2, 0,117, 11, 2, 0,118, 11, 2, 0,119, 11, 2, 0,120, 11, 2, 0,121, 11, 2, 0, 17, 0, 2, 0,122, 11, - 2, 0, 29, 0, 2, 0, 35, 0,170, 1,123, 11,171, 1, 10, 0,171, 1, 0, 0,171, 1, 1, 0, 12, 0,124, 11, 0, 0,115, 11, - 2, 0,125, 11, 2, 0,126, 11, 2, 0, 17, 0, 2, 0,127, 11, 4, 0,128, 11, 9, 0,129, 11,165, 1, 7, 0,165, 1, 0, 0, -165, 1, 1, 0, 0, 0,115, 11, 0, 0,130, 11, 12, 0,196, 7, 4, 0,131, 11, 4, 0, 17, 0,223, 0, 14, 0,223, 0, 0, 0, -223, 0, 1, 0, 0, 0,115, 11, 18, 0, 28, 0,172, 1, 11, 8, 9, 0,132, 11, 9, 0,133, 11,170, 1,123, 11,162, 1,134, 11, - 12, 0,135, 11,223, 0,136, 11, 7, 1,130, 6, 2, 0, 17, 0, 2, 0,195, 4,173, 1, 8, 0,173, 1, 0, 0,173, 1, 1, 0, - 9, 0, 2, 0, 9, 0,137, 11, 0, 0, 4, 4, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,138, 11,174, 1, 5, 0, 7, 0,139, 11, - 4, 0,140, 11, 4, 0,141, 11, 4, 0, 72, 1, 4, 0, 17, 0,175, 1, 6, 0, 7, 0,142, 11, 7, 0,143, 11, 7, 0,144, 11, - 7, 0,145, 11, 4, 0, 15, 0, 4, 0, 17, 0,176, 1, 5, 0, 7, 0,249, 8, 7, 0,250, 8, 7, 0,221, 2, 2, 0, 32, 2, - 2, 0, 33, 2,177, 1, 5, 0,176, 1, 2, 0, 4, 0, 51, 0, 7, 0,146, 11, 7, 0,249, 8, 7, 0,250, 8,178, 1, 4, 0, - 2, 0,147, 11, 2, 0,148, 11, 2, 0,149, 11, 2, 0,150, 11,179, 1, 2, 0, 34, 0,185, 6, 18, 0, 25, 9,180, 1, 3, 0, - 16, 0,151, 11, 4, 0, 17, 0, 4, 0, 35, 0,181, 1, 6, 0, 7, 0,104, 0, 7, 0,223, 2, 7, 0,152, 11, 7, 0, 35, 0, - 2, 0,243, 0, 2, 0,153, 11,182, 1, 5, 0, 7, 0,154, 11, 7, 0,120, 0, 7, 0, 60, 9, 7, 0, 61, 9, 4, 0, 17, 0, -183, 1, 6, 0, 19, 0,191, 6, 0, 0,155, 11, 0, 0,156, 11, 2, 0,157, 11, 2, 0, 17, 0, 4, 0,158, 11,184, 1, 7, 0, -184, 1, 0, 0,184, 1, 1, 0, 0, 0, 4, 4,183, 1,159, 11, 2, 0,160, 11, 2, 0, 15, 0, 7, 0, 58, 0,185, 1, 7, 0, - 12, 0,161, 11, 0, 0,162, 11, 9, 0,163, 11, 7, 0, 58, 0, 7, 0,138, 11, 4, 0, 15, 0, 4, 0, 17, 0,186, 1, 3, 0, - 7, 0,164, 11, 4, 0, 17, 0, 4, 0, 35, 0,187, 1, 15, 0,187, 1, 0, 0,187, 1, 1, 0, 78, 1,130, 9,185, 1, 59, 0, - 12, 0,118, 3, 27, 0, 47, 0,186, 1,165, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 15, 1, 4, 0,166, 11, - 0, 0,155, 11, 4, 0,167, 11, 7, 0,168, 11,188, 1, 2, 0, 0, 0,169, 11, 0, 0,170, 11,189, 1, 4, 0,189, 1, 0, 0, -189, 1, 1, 0,157, 0, 53, 3, 12, 0,171, 11,190, 1, 24, 0,190, 1, 0, 0,190, 1, 1, 0, 12, 0,172, 11,157, 0,220, 8, -189, 1,173, 11, 12, 0,174, 11, 12, 0,118, 3, 0, 0, 4, 4, 7, 0,138, 11, 7, 0,175, 11, 7, 0, 85, 0, 7, 0, 86, 0, - 7, 0,192, 9, 7, 0,193, 9, 7, 0,236, 2, 7, 0,196, 9, 7, 0,222, 8, 7, 0,197, 9, 2, 0,176, 11, 2, 0,177, 11, - 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,191, 1, 6, 0,191, 1, 0, 0,191, 1, 1, 0, 12, 0,172, 11, - 4, 0, 17, 0, 4, 0,151, 2, 0, 0, 4, 4,192, 1, 11, 0,192, 1, 0, 0,192, 1, 1, 0, 19, 0,191, 6, 0, 0,178, 11, - 4, 0,158, 11, 2, 0,179, 11, 2, 0, 35, 0, 0, 0,155, 11, 4, 0,166, 11, 2, 0, 17, 0, 2, 0,180, 11,193, 1, 8, 0, -193, 1, 0, 0,193, 1, 1, 0, 12, 0,181, 11, 0, 0, 4, 4, 0, 0,182, 11, 2, 0, 17, 0, 2, 0,180, 11, 4, 0,183, 11, -194, 1, 5, 0,194, 1, 0, 0,194, 1, 1, 0, 0, 0,155, 11, 4, 0,166, 11, 7, 0,211, 2, 31, 0, 12, 0,157, 0,109, 3, -157, 0,184, 11,189, 1,173, 11, 12, 0,185, 11,190, 1,186, 11, 12, 0,187, 11, 12, 0,188, 11, 4, 0, 17, 0, 4, 0,244, 0, - 2, 0,189, 11, 2, 0,190, 11, 7, 0,191, 11,195, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,196, 1, 5, 0,196, 1, 0, 0, -196, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,197, 1, 6, 0,196, 1,192, 11, 24, 0, 42, 0, 4, 0,193, 11, - 7, 0,194, 11, 4, 0,195, 11, 4, 0,117, 9,198, 1, 3, 0,196, 1,192, 11, 4, 0,193, 11, 7, 0,196, 11,199, 1, 8, 0, -196, 1,192, 11, 24, 0, 42, 0, 7, 0, 67, 1, 7, 0,197, 11, 7, 0, 19, 3, 7, 0, 19, 9, 4, 0,193, 11, 4, 0,198, 11, -200, 1, 5, 0,196, 1,192, 11, 7, 0,199, 11, 7, 0,100, 8, 7, 0,242, 2, 7, 0, 54, 0,201, 1, 3, 0,196, 1,192, 11, - 7, 0, 19, 9, 7, 0,200, 11,145, 1, 4, 0, 7, 0,201, 11, 7, 0,218, 10, 2, 0,202, 11, 2, 0, 72, 1,202, 1, 14, 0, -202, 1, 0, 0,202, 1, 1, 0, 12, 0,203, 11, 12, 0,204, 11, 12, 0,205, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0, - 4, 0,206, 11, 7, 0,207, 11, 4, 0,195, 11, 4, 0,117, 9, 7, 0, 14, 4, 7, 0,244, 2,153, 1, 23, 0, 4, 0,193, 11, - 4, 0,208, 11, 7, 0,209, 11, 7, 0,240, 2, 7, 0,210, 11, 7, 0,236, 8, 7, 0,201, 11, 7, 0,211, 11, 7, 0,223, 2, - 7, 0, 88, 10, 7, 0,145, 4, 7, 0,212, 11, 7, 0,213, 11, 7, 0,214, 11, 7, 0,215, 11, 7, 0,216, 11, 7, 0,217, 11, - 7, 0,218, 11, 7, 0,219, 11, 7, 0,220, 11, 7, 0,221, 11, 7, 0,222, 11, 12, 0,223, 11,114, 0, 40, 0,113, 0,224, 11, -203, 1,171, 10, 58, 0,225, 11, 58, 0,251, 10, 58, 0,226, 11,204, 1,227, 11, 40, 0,160, 0, 40, 0,228, 11, 40, 0,229, 11, - 7, 0,230, 11, 7, 0,231, 11, 7, 0,232, 11, 7, 0,233, 11, 7, 0,234, 11, 7, 0,250, 7, 7, 0,235, 11, 7, 0,161, 1, - 7, 0,236, 11, 4, 0,237, 11, 4, 0,238, 11, 4, 0,239, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,240, 11, 2, 0,241, 11, - 2, 0,242, 11, 4, 0,243, 11, 7, 0,223, 2, 4, 0,244, 11, 7, 0,245, 11, 4, 0,246, 11, 4, 0,247, 11, 4, 0,248, 11, -130, 0,249, 11, 12, 0,250, 11,168, 0, 84, 4, 4, 0,251, 11, 7, 0,252, 11, 7, 0,253, 11, 4, 0, 67, 0,115, 0, 12, 0, -113, 0,224, 11,141, 0, 39, 3, 7, 0,128, 1, 7, 0,250, 7, 7, 0,254, 11, 7, 0,255, 11, 7, 0, 0, 12, 2, 0, 1, 12, - 2, 0, 2, 12, 2, 0, 3, 12, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 0,224, 11,132, 0, 16, 3,134, 0, 18, 3, - 7, 0, 59, 9, 7, 0, 4, 12, 7, 0, 5, 12, 7, 0, 69, 1, 7, 0, 6, 12, 4, 0,152, 9, 4, 0, 12, 3, 2, 0, 15, 0, - 2, 0, 35, 0, 4, 0, 67, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0}; + 0, 0, 0, 72, 11, 28, 98,208, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 99, 64, 11, 28, 98, 96,105,111, 95,109,101,115,104, 95, +115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, + 11, 28, 99, 64, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 99,176, 11, 28, 98,208,105,111, 95,109,101,115,104, 95,117,118, 95,108, + 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 99,176, + 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 99, 64,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,224, 11, 23, 91,192, 0, 0, 0,183, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 32, 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, +255,255, 0, 0, 62, 25,153,154, 63,128, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, +255,255, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, +255,255, 0, 0, 62, 25,153,154, 63,128, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, + 0, 4, 0, 0, 68, 78, 65, 49, 0, 0,230,148, 8, 56, 80, 32, 0, 0, 0, 0, 0, 0, 0, 1, 83, 68, 78, 65, 78, 65, 77, 69, + 0, 0, 12, 10, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97, +115,116, 0,120, 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110, +116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0, +102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, + 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99, +111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102, +105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0, +116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101, +100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, + 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, + 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121, +112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, + 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105, +118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111, +115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, + 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, + 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122, +101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, + 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, + 0,101,110,100, 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, + 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99, +117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95, +112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122, +101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, + 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115, +105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111, +102, 95,111, 98, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101, +116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100, +101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, + 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111, +116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, + 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0, +116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, + 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97, +115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, + 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116, +111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97, +109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, + 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111, +114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, + 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0, +112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97, +114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115, +112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0, +115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, + 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99, +111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, + 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, + 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103, +104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105,102,101,102, 97, + 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115,104, 97,100,111, +119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, + 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97, +109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, + 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97, +110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111, +110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108, +101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97, +115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116, +110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110, +116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, + 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, + 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105, +115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, + 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108,108,111,102,102, + 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111, +102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105, +108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, + 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, + 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,110,111, +105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, + 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115, +105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101, +115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0, +110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, + 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0, +110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0, +110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111, +112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101, +114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100, +105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105, +110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0, +114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109, +111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119, +112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101, +110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115, +104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104, +114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114, +115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, + 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97, +109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, + 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, +114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115, +116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, + 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98, +114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, + 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105, +116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101, +120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, + 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107, +121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112, +114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105, +111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111, +110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102, +108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112, +116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112, +101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95, +114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105, +110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, + 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, + 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112, +101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0, +122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110, +101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, + 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116, +120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, + 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115, +115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95, +116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115, +104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, + 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114, +101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114, +101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95, +115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110, +100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116, +104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98, +105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95, +116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102, +102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114, +101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109, +112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112, +105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95, +115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0, +114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0, +114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0, +115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114, +111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0, +115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115, +115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, + 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109, +101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, + 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, + 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109, +115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111, +116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, + 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0, +104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110, +114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101, +114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107, +110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, + 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,101,121,105,110,100,101,120, + 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, + 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101, +121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,116,119,105,115,116, 95, +115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,116,104,108,101,110, 0, 98, +101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114, +101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 0,115,112, 97, + 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115, +105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, + 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101, +100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, + 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, + 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101, +110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, + 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42, +109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99, +116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116, +111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99, +101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115, +117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0, +117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, + 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101, +105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0, +110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, + 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,112, + 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103, +101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114, +114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101, +114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99, +114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95, +102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114, +111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, + 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,101, +120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, + 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, + 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42, +115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102, +102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, + 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, + 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, + 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102, +108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95, +110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109, +101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101, +118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112, +114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, + 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101, +112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, + 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102, +102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109, +117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101, +110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116, +105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97, +114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, + 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110, +101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, + 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,109,101, 95,120, +110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105, +111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, + 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105, +110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42, +100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121, +110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119, +105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, + 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116, +100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116, +105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111, +117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0, +115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118, +103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121, +112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101, +118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105, +103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, + 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95,111,102,115, 0, +109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114,101,110,100,101, +114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, 0, 42,111, 98, +106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100, +105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112, +110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0, +100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97, +116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117, +108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, + 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114, +111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, + 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,110, +116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101, +114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0, +100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, + 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, + 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, + 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97, +121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0, +116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, + 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100, +116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0, +115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116, +111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118, +101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0, +114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, + 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, + 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, + 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97, +103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114, +105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0, +104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95, +103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0, +115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117, +105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101, +114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,111,109,100, 97, +116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, + 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97, +100, 51, 91, 56, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, + 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, + 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109, +111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103, +116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0, +109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, + 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101, +102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100, +101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, + 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95, +102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97, +112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42, +114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, + 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105, +110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101, +120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109, +101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, + 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, + 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, + 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, + 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116, +101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, + 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, + 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0, +107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, + 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, + 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116, +105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, + 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, + 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102, +114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115, +112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0, +100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, + 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99, +116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101, +114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111, +116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, + 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101, +100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118, +101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, + 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99, +104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111, +116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, + 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101, +115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105, +122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77, +111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, + 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83, +116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,103, +115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105, +110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, + 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116, +121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110, +105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, + 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109, +111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73, +110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, + 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114, +116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102, +111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0, +118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111, +114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0, +104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97, +115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0, +108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, + 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103, +105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115, +116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116, +100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, + 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115, +116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102, +109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110, +101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, + 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, + 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112, +112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114, +103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105, +114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104, +111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97, +115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0, +115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, + 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100, +108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, + 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, + 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97, +114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, + 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99, +111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, + 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116, +121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116, +101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97, +109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110, +110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116, +101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105, +111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111, +108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, + 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95, +115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, + 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99, +101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101, +114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, + 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99, +100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, + 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97, +109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101, +100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97, +121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116, +101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, + 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, + 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, + 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112, +116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101, +114, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115, +101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99, +116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97, +115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, + 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116, +115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97, +107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97, +107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, + 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95, +112, 97,100, 0,112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, + 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, + 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, + 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95, +102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115, +104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0, +115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111, +110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, + 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100, +111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111, +109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0, +115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, + 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, + 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 0,100,111,109,101, + 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, + 97, 0, 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114, +115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, + 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97, +105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100, +107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105, +115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, + 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0, +114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115, +116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115, +105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101, +100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, + 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, + 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105, +110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116, +121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103, +114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97, +108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118, +101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0, +117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, + 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97, +108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, + 95,112, 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108, +101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97, +108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115, +104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111, +112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100, +105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117, +108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116, +105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103, +101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103, +116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101, +110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95, +108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, + 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, + 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103, +101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, + 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115, +115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95, +109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, + 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114, +116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, + 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, + 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, + 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111, +100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, + 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, + 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0, 97,117,116,111, 95, +110,111,114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0, +115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, + 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117, +115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,116,111,116, +111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116, +111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0, +115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, + 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, + 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, + 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, + 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, + 97,108, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105, +111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, + 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, + 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, + 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107, +101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115, +105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, + 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101, +119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, + 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, + 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,116,119,100,114, 97,119,102,108, 97,103, + 0,105,115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0, 99, +108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, + 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109, +111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108, +118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101, +103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108, +111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114, +101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110, +101, 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0, +115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109, +111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103, +114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, + 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95, +120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120, +114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116, +105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, + 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, + 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102, +115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110, +121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112, +116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111, +115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, + 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99, +111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0, +114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, + 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, + 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 93, 0,102,105,108,116,101, +114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, + 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115, +116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108, +101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42, +111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114, +101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, + 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, + 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, + 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95, +108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, + 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0, +115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105, +101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105, +110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117, +109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114, +119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116, +115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, + 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97, +114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, + 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, + 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99, +101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, + 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, + 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99, +116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116, +121,112,101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,116,105,116,108,101, 91, 50, 52, 93, 0,109, +101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,115,101,108,115,116, 97,116,101, + 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, + 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, + 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101, +116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, + 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114, +103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, + 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109, +112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115, +101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97,114,101, 97, 0, 42,115,111,117,110,100, 0,115, +110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, + 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, + 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97, +108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117, +112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122, +111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, + 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, + 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97, +110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105, +110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, + 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115, +104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110, +110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110, +110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101, +114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0, +119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, + 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103, +103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, + 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, + 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95, +115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105, +116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, + 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, + 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, + 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116, +116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116, +111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, + 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, + 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116, +101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, + 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105, +114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, + 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115, +102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, + 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115, +101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101, +108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, + 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103, +101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116, +114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, + 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, + 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108, +101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110, +117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95, +115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, + 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, + 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110, +100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0, +104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, + 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97, +110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, + 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115, +111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110, +115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105, +110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 0,115,121,110,116, 97, +120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, + 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, + 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0, +112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0, +101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, + 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100, +108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, + 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116, +102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116, +115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109, +101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108, +101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100, +117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, + 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101, +114,100,105,114, 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100, +105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105, +114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111, +114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97, +121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, + 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105, +109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102, +108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109, +105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, + 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, + 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0, +109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105, +115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115, +116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, + 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, + 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, + 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112, +111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, + 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97, +119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105, +109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111, +114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118, +105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111, +111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110, +100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, + 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, + 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, + 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, + 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116, +101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108, +112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, + 48, 93, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110, +101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119, +105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95, +103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100, +114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105, +118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, + 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, + 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, + 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0, +114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114, +100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, + 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105, +115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, + 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121, +112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101, +115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121, +112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98, +108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, + 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109, +105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, + 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108, +111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109, +101, 91, 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116, +116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, + 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116, +115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, + 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97, +110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97, +116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99, +104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, + 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, 42,115, 99,101, +110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100, +101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115, 99, +101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,109,117,108,116, +105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97, +110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109, +111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114, +115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, + 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, + 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97, +103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0, +119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105, +115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, + 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, + 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110, +116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, + 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98, +117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, + 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, + 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, + 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, + 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, + 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114, +116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97, +109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115, +101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42, +109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, + 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108, +117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97, +109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97, +116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, + 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, + 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102, +114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101, +120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, + 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110, +112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97, +116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100, +105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, + 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0, +114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0, +114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, + 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, + 0,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42, +109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, + 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, + 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, + 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, + 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, + 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, + 91, 51, 50, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0, +105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0, +102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98, +106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97, +110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, + 98,116, 97,114,103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, + 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95, +104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102, +115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, + 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97, +100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97, +114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, + 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97, +105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111, +110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116, +101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112, +101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115, +102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115, +116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104, +111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116, +121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116, +121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, + 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, + 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99, +116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107, +116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99, +104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115, +101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, + 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116, +114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 99,104, + 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114, +105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97, +103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107, +100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, + 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, + 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0, +100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117, +114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, + 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, + 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, + 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111, +114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, + 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101, +114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, + 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115, +117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105, +103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105, +110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114, +118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108, +111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, + 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, + 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, + 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, + 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97, +120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, + 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, + 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116, +115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, + 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, +111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, + 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110, +115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, + 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, 42,103, +114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 0, 42,114,101, 99,116, 0,120,115, +105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116, +115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99, +117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110, +101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98, +117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110, +111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111, +100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110, +105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, + 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42, +116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0, 99,121, 99, +108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112, +101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107, +101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, + 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119, +114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0, +116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, + 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, + 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97, +109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95, +122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, + 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101, +115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112, +101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95, +105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0, +117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,115,104,111,114,116,121, 0,109, +105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111, +117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, + 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99, +108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109, +117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, + 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, + 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112, +108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, + 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114, +109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, + 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102, +111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118, +101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99, +108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, + 97,116,104, 91, 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106, +105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116, +104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108, +112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111, +108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111, +111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101, + 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116, +117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95, + 97,108,112,104, 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 97,100,100, 95, 99,111,108, + 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, + 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97, +121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101, +114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101, +114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, + 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0, +119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115, +116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, + 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112, +108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112, +108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0, +118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115, +116,105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95, +100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, + 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109, +111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, + 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, + 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121, +115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116, +102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115, +112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95, +116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, + 98, 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105, +108, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, + 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105, +111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106, +105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,103,114,105,100, 95,114,101, +115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, + 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101, +102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115, +101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111, +119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99, +104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100, +114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109, +112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,109,112, 0,114,111, +117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115, +105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, + 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, + 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,114,116,105,110,103, + 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, + 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107, +101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111, +117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97, +114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, + 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99, +108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97, +114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0, 98,118,104,116, +114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,110,101,120,105,115,116, 0, +116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, + 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, + 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110, +101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,102, +108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 97,108, +108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97, +110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, + 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, + 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95, +115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108, +100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116, +105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114, +105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118, +103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101, +121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95, +108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101, +112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101, +108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101, +115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, + 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102, +101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108, +105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114, +116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119, +105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, + 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111, +114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99, +111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111, +115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42, +115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, + 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, + 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111, +118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100, +114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, + 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100, +110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108, +116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, + 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, + 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, + 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115, +116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, + 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105, +122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117, +108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115, +101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, + 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, + 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114, +110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, + 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, + 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99, +111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111, +114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, + 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, + 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, + 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0, +112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42, +116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118, +101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95, +101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112, +116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, + 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, + 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114, +117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95, +116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105, +100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103, +114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112, +101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95, +112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, + 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95, +109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, + 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95, +103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116, +101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, + 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105, +102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115, +115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100, +120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103, +104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, + 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0, +118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0, +118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118, +103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116, +115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 0, 84, 89, 80, 69, + 0, 0, 1,205, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0, +108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110, +107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0, +114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101, +114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73, +109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, + 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, + 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101, +120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, + 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101, +114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, + 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101, +110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111, +100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116, +116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, + 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, + 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, + 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, + 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69, +100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101, +108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101, +115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104, +116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, + 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80, +114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 77,117,108, +116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101, +115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, + 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99, +101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101, +118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83, +101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67, +111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, + 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116, +104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116, +105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104, +101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, + 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, + 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68, +101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116, +105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83, +101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, +105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, + 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111, +117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, + 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, + 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83, +111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69, +102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, + 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, + 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, + 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100, +101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, +105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, + 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100, +101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97, +109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97, +105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114, +116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105, +110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, + 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83, +101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, + 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111, +110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109, +111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, + 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, + 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70, +105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105, +115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111, +112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, + 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, + 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, + 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, + 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105, +110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, + 97, 99,101, 83,111,117,110,100, 0, 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 0,117,105, 70,111,110,116, 0,117, +105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114, +115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104, +101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, + 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, + 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, + 0,117,105, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103, +105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114, +105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, + 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83, +101,113, 0, 83,101,113,117,101,110, 99,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71, +108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, + 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105, +108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, + 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111, +114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, + 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, + 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97, +100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115, +111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111, +114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83, +101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110, +116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, + 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116, +117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, + 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, + 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, + 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111, +117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, + 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98, +105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111, +114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, + 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66, +111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80, +111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105, +111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110, +101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105, +110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76, +105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105, +107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, + 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108, +111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111, +116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, +104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102, +105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100, +101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, + 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, + 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, + 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, + 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119, +111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, + 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99, +114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78, +111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100, +101, 67,111,108,111,114,115,112,105,108,108, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, + 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116, +111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, + 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, + 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114, +116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112, +108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101, +116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116, +105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114, +116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110, +116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, + 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105, +110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105, +110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110, +116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, + 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, + 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, + 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80, +121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111, +100, 95, 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, + 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105, +109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, + 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114, +114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, + 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105, +115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117, +108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105, +100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 84, 76, 69, 78, + 0, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, 8, 0, 4, 0, 8, 0, 16, + 0, 16, 0, 20, 0, 76, 0, 52, 2, 40, 0, 0, 0, 32, 0,140, 4, 44, 0, 92, 0, 36, 0, 56, 0, 84, 0,112, 0,124, 0, 56, + 0, 24, 0, 40, 0,120, 0, 12, 0,104, 0, 36, 5, 40, 1,156, 0, 0, 0, 0, 0, 0, 1, 16, 1, 48, 1, 84, 0, 24, 3, 8, + 0,168, 0, 0, 0, 84, 1, 16, 1, 32, 0,164, 0,132, 1,108, 0, 88, 2,160, 0, 76, 1, 60, 0, 0, 0,108, 0,104, 0,148, + 0, 56, 0, 8, 0, 16, 0, 20, 0, 0, 1, 92, 0, 0, 0, 0, 0, 0, 1, 24, 0, 20, 0, 44, 0, 60, 0, 20, 0, 12, 0, 12, + 0, 4, 0, 8, 0, 8, 0, 0, 0, 28, 0, 84, 0, 32, 0, 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 1, 0, 0, 32, 0, 12, + 0, 16, 0, 64, 0, 24, 0, 12, 0, 40, 0, 64, 0,112, 0, 80, 0,100, 0,108, 0, 80, 0,108, 0,128, 0, 76, 0, 72, 0,120, + 0, 72, 0, 84, 0,204, 0, 48, 0,168, 0,160, 0,172, 0, 72, 0,104, 0,116, 0,196, 0,112, 0,224, 0, 64, 0, 92, 0, 0, + 0,144, 0, 40, 1,244, 0,112, 0, 0, 0, 88, 0, 0, 0, 0, 0, 76, 0, 8, 0, 8, 0,244, 0, 88, 1,148, 0, 84, 0,108, + 0, 72, 0, 72, 1,180, 0,120, 0,116, 0, 64, 0,128, 0, 92, 0,172, 0, 12, 0,224, 0, 40, 0, 0, 0,100, 0,156, 0, 72, + 0, 48, 0, 20, 0,120, 0,144, 1, 88, 0,208, 0,180, 0, 0, 0, 68, 0, 20, 0, 96, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 0, 12, 1,112, 0, 28, 0,176, 0,144, 0, 64, 0, 60, 0, 24, 0, 72, 3,144, 0, 56, 0, 20, 0, 16, 0,100, 0, 84, 0, 16, + 2,204, 0, 36, 0, 16, 0,156, 0, 80, 0, 88, 0, 36, 1,152, 0, 32, 0, 8, 0, 24, 2, 56, 0, 0, 0, 0, 0, 72, 3, 68, + 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 40, 0,140, 0, 48, 0,208, 0, 88, 0,216, 0,216, 2, 96, 0, 60, 0, 0, 0,120, + 0, 0, 0,244, 0, 12, 0, 12, 32,248, 16,112, 16, 24, 0,192, 2,136, 2, 80, 0, 40, 0, 12, 0,188, 0,252, 0, 52, 2,140, + 0, 28, 1,104, 0, 88, 0,188, 0, 96, 1, 92, 1, 16, 0, 32, 0,224, 0, 32, 0, 32, 2,112, 1,120, 0, 16, 30, 80, 0, 72, + 0, 56, 13,144, 0,148, 0, 20, 0, 24, 1, 64, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 1, 24, 0, 88, 0, 16, 0, 8, 0, 44, + 0,252, 0,212, 1,168, 0,216, 0, 16, 0, 12, 0, 24, 0, 52, 0, 16, 0, 20, 0, 16, 0, 24, 1, 56, 0, 0, 0, 56, 0, 52, + 0, 48, 0, 8, 0, 44, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 68, 0, 76, 0, 80, 0, 60, + 0,128, 0, 76, 0, 60, 0, 12, 0, 92, 0, 32, 0, 68, 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, 96, 0, 56, 0, 56, + 0,108, 0,140, 0, 4, 0, 20, 0, 12, 0, 8, 0, 80, 0, 24, 1, 16, 0,144, 0, 16, 1,192, 0, 4, 0, 40, 0,104, 1, 24, + 0, 64, 0, 44, 0, 72, 0,116, 0, 60, 0,112, 0, 16, 0, 52, 0, 44, 0, 44, 0, 44, 0, 8, 0, 36, 0, 68, 0, 64, 0, 44, + 0, 44, 0, 20, 0, 52, 0, 96, 0, 12, 0,108, 0, 92, 0, 52, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, 36, + 0,124, 0, 32, 0, 12, 0,212, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 1, 16, 0, 44, 0, 24, 0, 8, 0, 64, + 0, 32, 0, 24, 0, 8, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0,240, 0, 24, 0, 56, + 0, 52, 0, 20, 0, 16, 0, 64, 0, 28, 0, 20, 0,180, 0, 60, 2, 64, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 20, + 0, 24, 0,172, 0, 28, 0,168, 0,148, 0,152, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 96, 0, 0, 0, 88, 0, 20, 0, 24, + 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0, 20, 0, 48, 1,208, 1, 28, 0, 16, 0, 68, 1, 0, 0, 20, 0,160, 0, 88, + 0, 96, 0,152, 0, 20, 0, 56, 0, 48, 0, 68, 0, 56, 0, 92, 0, 64, 0, 56, 0, 96, 0, 0, 0, 0, 0, 0, 83, 84, 82, 67, + 0, 0, 1,148, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, + 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, + 0, 7, 0, 6, 0, 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, + 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, + 0, 18, 0, 10, 0, 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, + 0, 17, 0, 20, 0, 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, + 0, 0, 0, 25, 0, 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, + 0, 21, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, + 0, 4, 0, 38, 0, 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, + 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, + 0, 16, 0, 48, 0, 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, + 0, 2, 0, 17, 0, 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, + 0, 23, 0, 59, 0, 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, + 0, 2, 0, 35, 0, 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, + 0, 2, 0, 65, 0, 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, + 0, 7, 0, 70, 0, 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, + 0, 7, 0, 58, 0, 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, + 0, 32, 0, 6, 0, 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, + 0, 33, 0, 0, 0, 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, + 0, 0, 0, 89, 0, 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, + 0, 32, 0, 94, 0, 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, + 0, 9, 0,102, 0, 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 16, 0, 19, 0, 29, + 0, 31, 0, 72, 0, 0, 0, 15, 0, 0, 0,106, 0, 2, 0, 17, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, + 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 28, 0, 77, 0, 24, 0,116, 0, 37, 0, 14, + 0, 38, 0,117, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, + 0, 0, 0, 35, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0, 17, 0, 4, 0, 67, 0, 39, 0, 32, 0, 19, 0, 29, + 0, 0, 0, 32, 0, 12, 0,128, 0, 40, 0,129, 0, 41, 0,130, 0, 42, 0,131, 0, 42, 0,132, 0, 2, 0,133, 0, 2, 0,134, + 0, 2, 0,124, 0, 2, 0, 17, 0, 2, 0,135, 0, 2, 0, 15, 0, 4, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, + 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 4, 0,143, 0, 4, 0,144, 0, 35, 0,145, 0, 22, 0,146, 0, 7, 0,147, + 0, 4, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 7, 0,153, 0, 7, 0,154, 0, 43, 0, 65, + 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 24, 0,159, 0, 44, 0,160, 0, 0, 0,161, 0, 0, 0,162, + 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 7, 0,166, 0, 7, 0,167, 0, 7, 0,168, 0, 2, 0,169, 0, 2, 0,170, + 0, 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, 7, 0,177, 0, 7, 0,178, + 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0, 54, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, + 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, + 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, + 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, + 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, + 0, 7, 0,218, 0, 45, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, 4, 0,223, 0, 4, 0,224, + 0, 9, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, 9, 0,231, 0, 4, 0,232, + 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,233, 0, 7, 0, 64, 0, 4, 0, 61, + 0, 47, 0, 5, 0, 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,234, 0, 46, 0,228, 0, 48, 0, 17, 0, 24, 0,159, + 0, 39, 0,235, 0, 49, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 0,108, 0, 7, 0,109, + 0, 7, 0,240, 0, 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,136, 0, 2, 0,244, 0, 2, 0,245, + 0, 50, 0, 25, 0, 2, 0, 17, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,135, 0, 2, 0,249, 0, 4, 0,250, + 0, 4, 0,251, 0, 24, 0,159, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, 7, 1, 0, 0, 7, 1, 1, + 0, 2, 1, 2, 0, 2, 1, 3, 0, 2, 1, 4, 0, 2, 1, 5, 0, 7, 1, 6, 0, 7, 1, 7, 0, 7, 1, 8, 0, 7, 1, 9, + 0, 47, 1, 10, 0, 51, 1, 11, 0, 52, 0, 13, 0, 4, 1, 12, 0, 4, 1, 13, 0, 2, 1, 14, 0, 2, 0, 17, 0, 2, 1, 15, + 0, 2, 1, 16, 0, 24, 0,159, 0, 7, 1, 17, 0, 4, 1, 18, 0, 0, 1, 19, 0, 7, 1, 20, 0, 4, 1, 21, 0, 4, 0,124, + 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 1, 22, 0, 7, 1, 23, 0, 7, 1, 24, 0, 7, 1, 25, 0, 7, 1, 26, + 0, 7, 1, 27, 0, 7, 1, 28, 0, 7, 1, 29, 0, 7, 1, 30, 0, 7, 0, 67, 0, 7, 1, 31, 0, 7, 1, 32, 0, 7, 1, 33, + 0, 7, 1, 34, 0, 7, 1, 35, 0, 7, 1, 36, 0, 7, 1, 37, 0, 7, 1, 38, 0, 7, 1, 39, 0, 7, 1, 40, 0, 7, 1, 41, + 0, 7, 1, 42, 0, 2, 1, 43, 0, 2, 1, 44, 0, 2, 1, 45, 0, 2, 1, 46, 0, 2, 1, 47, 0, 2, 1, 48, 0, 2, 1, 49, + 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 1, 50, 0, 7, 1, 51, 0, 7, 1, 52, 0, 7, 1, 53, 0, 4, 1, 54, + 0, 4, 1, 55, 0, 2, 1, 56, 0, 2, 1, 57, 0, 2, 1, 15, 0, 2, 0,122, 0, 4, 0, 21, 0, 4, 0,119, 0, 4, 0,120, + 0, 4, 0,121, 0, 7, 1, 58, 0, 7, 1, 59, 0, 7, 0, 87, 0, 37, 1, 60, 0, 53, 1, 61, 0, 28, 0, 77, 0, 39, 0,235, + 0, 45, 1, 62, 0, 47, 1, 10, 0, 48, 1, 63, 0, 22, 0,146, 0, 50, 1, 64, 0, 52, 1, 65, 0, 0, 1, 66, 0, 0, 0,176, + 0, 54, 0, 8, 0, 7, 1, 67, 0, 7, 1, 68, 0, 7, 0,167, 0, 4, 0, 17, 0, 7, 1, 69, 0, 7, 1, 70, 0, 7, 1, 71, + 0, 24, 0, 42, 0, 55, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 1, 72, 0, 2, 0,170, + 0, 2, 1, 73, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 1, 74, 0, 7, 1, 75, 0, 7, 1, 76, + 0, 7, 1, 77, 0, 7, 1, 78, 0, 7, 1, 79, 0, 7, 1, 80, 0, 7, 1, 81, 0, 7, 1, 82, 0, 7, 1, 83, 0, 7, 1, 84, + 0, 51, 1, 85, 0, 2, 0,246, 0, 2, 0, 67, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 1, 86, 0, 7, 1, 87, 0, 7, 1, 88, + 0, 7, 1, 89, 0, 7, 1, 90, 0, 2, 1, 91, 0, 2, 1, 92, 0, 2, 1, 93, 0, 2, 1, 94, 0, 0, 1, 95, 0, 0, 1, 96, + 0, 2, 1, 97, 0, 2, 1, 98, 0, 2, 1, 99, 0, 2, 1,100, 0, 2, 1,101, 0, 7, 1,102, 0, 7, 1,103, 0, 7, 1,104, + 0, 7, 1,105, 0, 2, 1,106, 0, 2, 0, 87, 0, 2, 1,107, 0, 2, 1,108, 0, 2, 1,109, 0, 2, 1,110, 0, 7, 1,111, + 0, 7, 1,112, 0, 7, 1,113, 0, 7, 1,114, 0, 7, 1,115, 0, 7, 1,116, 0, 7, 1,117, 0, 7, 1,118, 0, 7, 1,119, + 0, 7, 1,120, 0, 7, 1,121, 0, 7, 1,122, 0, 2, 1,123, 0, 0, 1,124, 0, 28, 0, 77, 0, 43, 1,125, 0, 2, 1,126, + 0, 0, 1,127, 0, 22, 0,146, 0, 56, 0, 18, 0, 7, 1,128, 0, 7, 1,129, 0, 7, 1,130, 0, 7, 1,131, 0, 7, 1,132, + 0, 7, 1,133, 0, 7, 1,134, 0, 7, 1,135, 0, 7, 1,136, 0, 7, 1,137, 0, 2, 1,138, 0, 2, 1,139, 0, 2, 1,140, + 0, 2, 1,141, 0, 7, 1,142, 0, 7, 1,143, 0, 7, 1,144, 0, 7, 1,145, 0, 57, 0,125, 0, 19, 0, 29, 0, 31, 0, 72, + 0, 2, 1,146, 0, 2, 0, 17, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 1,147, 0, 7, 1,148, 0, 7, 1,149, + 0, 7, 1,150, 0, 7, 1,151, 0, 7, 1,152, 0, 7, 1,153, 0, 7, 1,154, 0, 7, 1,155, 0, 7, 1,156, 0, 7, 1,157, + 0, 7, 1,158, 0, 7, 1,159, 0, 7, 1,160, 0, 7, 1,161, 0, 7, 1,162, 0, 7, 1,163, 0, 7, 1,164, 0, 7, 1,165, + 0, 7, 1,166, 0, 56, 1,167, 0, 7, 1,168, 0, 7, 1,169, 0, 7, 1,170, 0, 7, 1,171, 0, 7, 1,172, 0, 7, 1,173, + 0, 7, 1,174, 0, 2, 1,175, 0, 2, 1,176, 0, 2, 1,177, 0, 0, 1,178, 0, 0, 1,179, 0, 7, 1,180, 0, 7, 1,181, + 0, 2, 1,182, 0, 2, 1,183, 0, 7, 1,184, 0, 7, 1,185, 0, 7, 1,186, 0, 7, 1,187, 0, 2, 1,188, 0, 2, 1,189, + 0, 4, 1, 72, 0, 4, 1,190, 0, 2, 1,191, 0, 2, 1,192, 0, 2, 1,193, 0, 2, 1,194, 0, 7, 1,195, 0, 7, 1,196, + 0, 7, 1,197, 0, 7, 1,198, 0, 7, 1,199, 0, 7, 1,200, 0, 7, 1,201, 0, 7, 1,202, 0, 7, 1,203, 0, 7, 1,204, + 0, 0, 1,205, 0, 7, 1,206, 0, 7, 1,207, 0, 7, 1,208, 0, 4, 1,209, 0, 0, 1,210, 0, 0, 1,107, 0, 0, 1,211, + 0, 0, 1, 66, 0, 2, 1,212, 0, 2, 1,213, 0, 2, 1,126, 0, 2, 1,214, 0, 2, 1,215, 0, 2, 1,216, 0, 7, 1,217, + 0, 7, 1,218, 0, 7, 1,219, 0, 7, 1,220, 0, 7, 1,221, 0, 2, 0,155, 0, 2, 0,156, 0, 47, 1,222, 0, 47, 1,223, + 0, 0, 1,224, 0, 0, 1,225, 0, 0, 1,226, 0, 0, 1,227, 0, 2, 1,228, 0, 2, 1,229, 0, 7, 1,230, 0, 7, 1,231, + 0, 43, 1,125, 0, 53, 1, 61, 0, 28, 0, 77, 0, 58, 1,232, 0, 22, 0,146, 0, 7, 1,233, 0, 7, 1,234, 0, 7, 1,235, + 0, 7, 1,236, 0, 7, 1,237, 0, 2, 1,238, 0, 2, 0, 67, 0, 7, 1,239, 0, 7, 1,240, 0, 7, 1,241, 0, 7, 1,242, + 0, 7, 1,243, 0, 7, 1,244, 0, 7, 1,245, 0, 7, 1,246, 0, 7, 1,247, 0, 2, 1,248, 0, 2, 1,249, 0, 4, 1,250, + 0, 2, 1,251, 0, 2, 0, 35, 0, 12, 1,252, 0, 59, 0, 4, 0, 19, 0, 29, 0, 0, 1,253, 0, 60, 0, 2, 0, 35, 0,145, + 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, 62, 1,254, 0, 4, 1,255, 0, 4, 2, 0, 0, 4, 2, 1, 0, 4, 2, 2, + 0, 4, 2, 3, 0, 4, 2, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 2, 5, 0, 2, 2, 6, 0, 7, 0, 5, 0, 7, 0, 6, + 0, 7, 2, 7, 0, 7, 2, 8, 0, 7, 2, 9, 0, 7, 2, 10, 0, 7, 2, 11, 0, 7, 2, 12, 0, 7, 2, 13, 0, 7, 2, 14, + 0, 7, 0, 21, 0, 7, 2, 15, 0, 7, 2, 16, 0, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 12, 2, 17, + 0, 12, 2, 18, 0, 12, 2, 19, 0, 28, 0, 77, 0, 57, 2, 20, 0, 0, 0, 17, 0, 0, 2, 21, 0, 2, 2, 22, 0, 2, 0,169, + 0, 2, 0, 35, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 7, 2, 23, 0, 7, 2, 24, 0, 7, 2, 25, 0, 61, 2, 26, + 0, 27, 0, 11, 0, 7, 2, 27, 0, 7, 2, 28, 0, 7, 2, 29, 0, 7, 0,248, 0, 2, 0, 52, 0, 0, 2, 30, 0, 0, 2, 31, + 0, 0, 2, 32, 0, 0, 2, 33, 0, 0, 2, 34, 0, 0, 2, 35, 0, 26, 0, 7, 0, 7, 2, 36, 0, 7, 2, 28, 0, 7, 2, 29, + 0, 2, 2, 32, 0, 2, 2, 35, 0, 7, 0,248, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, + 0, 2, 2, 37, 0, 2, 2, 35, 0, 2, 0, 17, 0, 2, 2, 38, 0, 2, 2, 39, 0, 2, 2, 40, 0, 2, 2, 41, 0, 2, 2, 42, + 0, 2, 2, 43, 0, 2, 2, 44, 0, 2, 2, 45, 0, 7, 2, 46, 0, 7, 2, 47, 0, 26, 0, 46, 0, 27, 0, 47, 0, 2, 2, 48, + 0, 2, 2, 49, 0, 4, 2, 50, 0, 65, 0, 5, 0, 2, 2, 51, 0, 2, 2, 37, 0, 0, 0, 17, 0, 0, 0, 35, 0, 2, 0, 67, + 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 2, 52, 0, 7, 2, 53, 0, 67, 0, 4, 0, 12, 2, 54, 0, 68, 2, 55, + 0, 4, 2, 56, 0, 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 12, 2, 57, 0, 12, 2, 18, + 0, 67, 2, 58, 0, 24, 2, 59, 0, 24, 2, 60, 0, 24, 2, 61, 0, 28, 0, 77, 0, 70, 2, 62, 0, 30, 2, 63, 0, 57, 2, 20, + 0, 12, 2, 64, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 2, 0,169, 0, 2, 0, 87, 0, 2, 2, 65, 0, 2, 2, 66, + 0, 7, 2, 67, 0, 7, 2, 68, 0, 4, 2, 69, 0, 2, 0, 35, 0, 2, 2, 22, 0, 2, 0, 17, 0, 2, 2, 70, 0, 7, 2, 71, + 0, 7, 2, 72, 0, 7, 2, 73, 0, 2, 2, 40, 0, 2, 2, 41, 0, 2, 2, 74, 0, 2, 2, 75, 0, 4, 2, 76, 0, 9, 2, 77, + 0, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, 2, 2, 78, 0, 7, 2, 79, 0, 7, 2, 80, 0, 7, 2, 81, 0, 7, 2, 82, + 0, 7, 2, 83, 0, 7, 2, 84, 0, 7, 2, 85, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 2, 88, 0, 0, 2, 89, 0, 71, 2, 90, + 0, 72, 2, 91, 0, 0, 2, 92, 0, 59, 2, 93, 0, 59, 2, 94, 0, 59, 2, 95, 0, 59, 2, 96, 0, 4, 2, 97, 0, 7, 2, 98, + 0, 4, 2, 99, 0, 4, 2,100, 0, 66, 2,101, 0, 4, 2,102, 0, 4, 2,103, 0, 65, 2,104, 0, 65, 2,105, 0, 73, 0, 39, + 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 28, 0, 77, 0, 30, 2, 63, 0, 57, 2, 20, 0, 74, 2,106, 0, 75, 2,107, + 0, 76, 2,108, 0, 77, 2,109, 0, 78, 2,110, 0, 79, 2,111, 0, 80, 2,112, 0, 81, 2,113, 0, 73, 2,114, 0, 82, 2,115, + 0, 83, 2,116, 0, 84, 2,117, 0, 84, 2,118, 0, 84, 2,119, 0, 4, 0, 51, 0, 4, 2,120, 0, 4, 2,121, 0, 4, 2,122, + 0, 4, 2,123, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 2, 0,169, 0, 2, 2, 65, 0, 2, 2,124, 0, 2, 0, 17, + 0, 2, 2,125, 0, 2, 2,126, 0, 0, 2,127, 0, 0, 2,128, 0, 2, 2, 22, 0, 85, 2,129, 0, 86, 2,130, 0, 76, 0, 8, + 0, 9, 2,131, 0, 7, 2,132, 0, 4, 2,133, 0, 0, 0, 17, 0, 0, 2,134, 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, + 0, 74, 0, 7, 0, 4, 2,137, 0, 4, 2,138, 0, 4, 2,139, 0, 4, 2,140, 0, 2, 2, 37, 0, 0, 2,141, 0, 0, 0, 17, + 0, 78, 0, 5, 0, 4, 2,137, 0, 4, 2,138, 0, 0, 2,142, 0, 0, 2,143, 0, 2, 0, 17, 0, 87, 0, 2, 0, 4, 2,144, + 0, 7, 2, 29, 0, 79, 0, 3, 0, 87, 2,145, 0, 4, 2,146, 0, 4, 0, 17, 0, 77, 0, 4, 0, 7, 2,147, 0, 2, 2,148, + 0, 0, 0, 17, 0, 0, 2,143, 0, 80, 0, 4, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 88, 0, 6, + 0, 39, 2,131, 0, 0, 0, 17, 0, 0, 2,134, 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, 0, 89, 0, 1, 0, 7, 2,149, + 0, 90, 0, 5, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 4, 0, 35, 0, 81, 0, 1, 0, 7, 2,150, + 0, 82, 0, 2, 0, 4, 2,151, 0, 4, 0, 15, 0, 75, 0, 7, 0, 7, 2,132, 0, 39, 2,131, 0, 0, 0, 17, 0, 0, 2,134, + 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, 0, 91, 0, 1, 0, 7, 2,152, 0, 92, 0, 1, 0, 4, 2,153, 0, 93, 0, 1, + 0, 0, 2,154, 0, 94, 0, 1, 0, 7, 2,132, 0, 95, 0, 3, 0, 4, 2,155, 0, 0, 0, 90, 0, 7, 2,156, 0, 96, 0, 4, + 0, 7, 0,233, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 97, 0, 1, 0, 96, 2,133, 0, 98, 0, 5, 0, 4, 2,157, + 0, 4, 2,158, 0, 0, 0, 17, 0, 0, 2, 37, 0, 0, 2,159, 0, 99, 0, 2, 0, 4, 2,160, 0, 4, 2,158, 0,100, 0, 10, + 0,100, 0, 0, 0,100, 0, 1, 0, 98, 2,161, 0, 97, 2,162, 0, 99, 2,163, 0, 4, 0, 51, 0, 4, 2,121, 0, 4, 2,120, + 0, 4, 0, 35, 0, 77, 2,164, 0, 85, 0, 14, 0, 12, 2,165, 0, 77, 2,164, 0, 0, 2,166, 0, 0, 2,167, 0, 0, 2,168, + 0, 0, 2,169, 0, 0, 2,170, 0, 0, 2,171, 0, 0, 2,172, 0, 0, 0, 17, 0, 84, 2,117, 0, 84, 2,119, 0, 2, 2,173, + 0, 0, 2,174, 0, 86, 0, 8, 0, 4, 2,175, 0, 4, 2,176, 0, 74, 2,177, 0, 78, 2,178, 0, 4, 2,121, 0, 4, 2,120, + 0, 4, 0, 51, 0, 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 1, 72, 0, 4, 2,179, + 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,117, 0, 0, 2,180, 0,102, 0, 6, 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, + 0, 0, 2,184, 0, 4, 2,185, 0, 4, 2,186, 0,103, 0, 7, 0,101, 2,181, 0, 2, 2,187, 0, 2, 2,165, 0, 2, 2,188, + 0, 2, 0, 88, 0, 9, 2,189, 0, 9, 2,190, 0,104, 0, 3, 0,101, 2,181, 0, 24, 0,159, 0, 0, 0, 18, 0,105, 0, 5, + 0,101, 2,181, 0, 24, 0,159, 0, 0, 0, 18, 0, 2, 2,191, 0, 0, 2,192, 0,106, 0, 5, 0,101, 2,181, 0, 7, 0, 85, + 0, 7, 2,193, 0, 4, 2,194, 0, 4, 2,195, 0,107, 0, 5, 0,101, 2,181, 0, 24, 2,196, 0, 0, 0, 69, 0, 4, 1, 72, + 0, 4, 0, 17, 0,108, 0, 13, 0,101, 2,181, 0, 24, 2,197, 0, 24, 2,198, 0, 24, 2,199, 0, 24, 2,200, 0, 7, 2,201, + 0, 7, 2,202, 0, 7, 2,193, 0, 7, 2,203, 0, 4, 2,204, 0, 4, 2,205, 0, 4, 0, 88, 0, 4, 2,206, 0,109, 0, 5, + 0,101, 2,181, 0, 2, 2,207, 0, 2, 0, 17, 0, 7, 2,208, 0, 24, 2,209, 0,110, 0, 3, 0,101, 2,181, 0, 7, 2,210, + 0, 4, 0, 88, 0,111, 0, 10, 0,101, 2,181, 0, 7, 2,211, 0, 4, 2,212, 0, 4, 0, 35, 0, 2, 0, 88, 0, 2, 2,213, + 0, 2, 2,214, 0, 2, 2,215, 0, 7, 2,216, 0, 0, 2,217, 0,112, 0, 3, 0,101, 2,181, 0, 7, 0, 35, 0, 4, 0, 15, + 0,113, 0, 6, 0,101, 2,181, 0,114, 2,218, 0,115, 2,219, 0,116, 2,220, 0, 7, 2,221, 0, 4, 0, 15, 0,117, 0, 11, + 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, 0, 0, 2,184, 0, 4, 2,185, 0, 4, 2,186, 0, 4, 2,222, 0, 7, 2,223, + 0, 4, 2,224, 0, 0, 2,217, 0, 7, 2,225, 0,118, 0, 12, 0,101, 2,181, 0, 24, 2,226, 0, 39, 2,227, 0, 4, 0, 88, + 0, 4, 2,228, 0, 7, 2,229, 0, 7, 2,230, 0, 7, 2,231, 0, 7, 2,232, 0, 0, 2,184, 0, 4, 2,185, 0, 4, 0, 35, + 0,119, 0, 3, 0,101, 2,181, 0, 7, 2,233, 0, 4, 2,234, 0,120, 0, 5, 0,101, 2,181, 0, 7, 2,235, 0, 0, 2,217, + 0, 2, 0, 17, 0, 2, 2,236, 0,121, 0, 8, 0,101, 2,181, 0, 24, 0,159, 0, 7, 2,235, 0, 7, 0,248, 0, 7, 0,104, + 0, 0, 2,217, 0, 2, 0, 17, 0, 2, 0, 15, 0,122, 0, 21, 0,101, 2,181, 0, 24, 2,237, 0, 0, 2,217, 0, 44, 2,182, + 0, 24, 2,183, 0, 2, 0, 17, 0, 2, 0, 35, 0, 7, 2,238, 0, 7, 2,239, 0, 7, 2,240, 0, 7, 2, 71, 0, 7, 2,241, + 0, 7, 2,242, 0, 7, 2,243, 0, 7, 2,244, 0, 4, 2,186, 0, 4, 2,185, 0, 0, 2,184, 0, 7, 2,245, 0, 7, 2,246, + 0, 7, 0, 87, 0,123, 0, 7, 0,101, 2,181, 0, 2, 2,247, 0, 2, 2,248, 0, 4, 0, 67, 0, 24, 0,159, 0, 7, 2,249, + 0, 0, 2,217, 0,124, 0, 10, 0,101, 2,181, 0, 24, 0,159, 0, 0, 2,250, 0, 7, 2,251, 0, 7, 2,252, 0, 7, 2,244, + 0, 4, 2,253, 0, 4, 2,254, 0, 7, 2,255, 0, 0, 0, 18, 0,125, 0, 1, 0,101, 2,181, 0,126, 0, 7, 0,101, 2,181, + 0, 38, 0,117, 0,127, 3, 0, 0,128, 3, 1, 0,129, 3, 2, 0,130, 3, 3, 0, 12, 3, 4, 0,131, 0, 13, 0,101, 2,181, + 0, 77, 3, 5, 0, 77, 3, 6, 0, 77, 3, 7, 0, 77, 3, 8, 0, 77, 3, 9, 0, 77, 3, 10, 0, 74, 3, 11, 0, 4, 3, 12, + 0, 4, 3, 13, 0, 7, 3, 14, 0, 7, 3, 15, 0,132, 3, 16, 0,133, 0, 7, 0,101, 2,181, 0, 77, 3, 5, 0, 77, 3, 17, + 0,134, 3, 18, 0,135, 3, 16, 0, 4, 3, 19, 0, 4, 3, 12, 0,136, 0, 4, 0,101, 2,181, 0, 24, 0,159, 0, 4, 3, 20, + 0, 4, 0, 35, 0,137, 0, 2, 0, 4, 3, 21, 0, 7, 2, 29, 0,138, 0, 2, 0, 4, 0,120, 0, 4, 3, 22, 0,139, 0, 24, + 0,101, 2,181, 0, 24, 0,159, 0, 0, 2,217, 0, 2, 3, 23, 0, 2, 0, 17, 0, 2, 1, 72, 0, 2, 0, 35, 0,137, 3, 24, + 0, 4, 3, 25, 0, 7, 3, 26, 0, 4, 0, 51, 0, 4, 3, 27, 0,138, 3, 28, 0,137, 3, 29, 0, 4, 3, 30, 0, 4, 3, 31, + 0, 4, 3, 32, 0, 4, 3, 22, 0, 7, 3, 33, 0, 7, 3, 34, 0, 7, 3, 35, 0, 7, 3, 36, 0, 7, 3, 37, 0, 9, 3, 38, + 0,140, 0, 8, 0,101, 2,181, 0,141, 3, 39, 0,134, 3, 18, 0, 4, 3, 40, 0, 4, 3, 41, 0, 4, 3, 42, 0, 2, 0, 17, + 0, 2, 0, 54, 0,142, 0, 8, 0,101, 2,181, 0, 24, 0, 42, 0, 2, 0,252, 0, 2, 0, 17, 0, 2, 2,207, 0, 2, 0, 54, + 0, 7, 3, 43, 0, 7, 3, 44, 0,143, 0, 6, 0,101, 2,181, 0, 4, 3, 45, 0, 2, 0, 17, 0, 2, 3, 46, 0, 7, 3, 47, + 0, 0, 0,161, 0,144, 0, 8, 0,101, 2,181, 0, 0, 3, 48, 0, 0, 3, 49, 0, 0, 2,171, 0, 0, 3, 50, 0, 0, 3, 51, + 0, 0, 0, 88, 0, 0, 2,159, 0,145, 0, 3, 0,101, 2,181, 0,146, 3, 52, 0,130, 3, 3, 0,147, 0, 10, 0,101, 2,181, + 0, 24, 3, 53, 0, 24, 3, 54, 0, 0, 3, 55, 0, 7, 3, 56, 0, 2, 3, 57, 0, 2, 3, 58, 0, 0, 3, 59, 0, 0, 3, 60, + 0, 0, 2,192, 0,148, 0, 9, 0,101, 2,181, 0, 24, 3, 61, 0, 0, 3, 55, 0, 7, 3, 62, 0, 7, 3, 63, 0, 0, 1, 72, + 0, 0, 2,207, 0, 0, 3, 64, 0, 0, 0, 35, 0,149, 0, 1, 0,101, 2,181, 0,150, 0, 11, 0,101, 2,181, 0, 0, 2,217, + 0, 7, 0,120, 0, 7, 3, 65, 0, 7, 3, 66, 0, 7, 3, 67, 0, 7, 3, 68, 0, 4, 0, 17, 0, 2, 3, 69, 0, 2, 3, 70, + 0, 4, 0, 35, 0,151, 0, 9, 0,101, 2,181, 0, 24, 3, 71, 0, 4, 3, 72, 0, 4, 3, 73, 0, 4, 3, 74, 0, 7, 3, 75, + 0, 7, 3, 76, 0, 2, 2,207, 0, 2, 0, 17, 0,152, 0, 16, 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, 0, 0, 2,184, + 0, 4, 2,185, 0, 4, 2,186, 0, 4, 2,222, 0, 7, 2,223, 0, 24, 3, 77, 0, 24, 3, 78, 0, 51, 1, 85, 0, 0, 2,217, + 0, 7, 3, 79, 0, 0, 0, 17, 0, 0, 0,246, 0, 0, 2,159, 0,153, 0, 3, 0,154, 3, 80, 0, 4, 2, 56, 0, 0, 0, 90, + 0,154, 0, 29, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 2, 38, 0, 2, 2, 39, 0, 2, 3, 81, 0, 2, 0, 17, 0, 2, 3, 82, + 0, 2, 3, 83, 0, 2, 3, 84, 0, 2, 0, 67, 0, 0, 3, 85, 0, 0, 3, 86, 0, 0, 3, 87, 0, 0, 1,229, 0, 4, 0, 35, + 0, 7, 3, 88, 0, 7, 3, 89, 0, 7, 3, 90, 0, 7, 3, 91, 0, 7, 3, 92, 0, 7, 3, 93, 0, 26, 3, 94, 0, 28, 0, 77, + 0, 30, 2, 63, 0, 79, 2,111, 0, 0, 0, 69, 0, 7, 3, 95, 0, 7, 3, 96, 0,153, 3, 97, 0,155, 0, 3, 0,155, 0, 0, + 0,155, 0, 1, 0, 0, 0, 18, 0, 62, 0, 3, 0, 7, 3, 98, 0, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,129, 0, 19, 0, 29, + 0, 31, 0, 72, 0,156, 3, 99, 0, 2, 0, 15, 0, 2, 3,100, 0, 4, 3,101, 0, 4, 3,102, 0, 4, 3,103, 0, 0, 3,104, + 0, 24, 0, 36, 0, 24, 3,105, 0, 24, 3,106, 0, 24, 3,107, 0, 24, 3,108, 0, 28, 0, 77, 0, 70, 2, 62, 0, 62, 1,254, + 0,157, 3,109, 0,157, 3,110, 0,158, 3,111, 0, 9, 0, 2, 0,159, 3,112, 0,160, 3,113, 0,161, 3,114, 0, 12, 3,115, + 0, 12, 3,116, 0, 12, 2, 18, 0, 12, 3,117, 0, 12, 3,118, 0, 4, 1, 72, 0, 4, 3,119, 0, 57, 2, 20, 0, 0, 3,120, + 0, 4, 2, 22, 0, 4, 3,121, 0, 7, 1, 67, 0, 7, 3,122, 0, 7, 3,123, 0, 7, 0,167, 0, 7, 3,124, 0, 7, 1, 68, + 0, 7, 3,125, 0, 7, 2, 8, 0, 7, 3,126, 0, 7, 3,127, 0, 7, 3,128, 0, 7, 3,129, 0, 7, 3,130, 0, 7, 3,131, + 0, 7, 2,251, 0, 7, 3,132, 0, 7, 0,237, 0, 7, 3,133, 0, 4, 3,134, 0, 2, 0, 17, 0, 2, 3,135, 0, 2, 3,136, + 0, 2, 3,137, 0, 2, 3,138, 0, 2, 3,139, 0, 2, 3,140, 0, 2, 3,141, 0, 2, 3,142, 0, 2, 3,143, 0, 2, 3,144, + 0, 2, 3,145, 0, 4, 3,146, 0, 4, 3,147, 0, 4, 3,148, 0, 4, 3,149, 0, 7, 3,150, 0, 7, 2, 98, 0, 7, 3,151, + 0, 7, 3,152, 0, 7, 3,153, 0, 7, 3,154, 0, 7, 3,155, 0, 7, 0,212, 0, 7, 3,156, 0, 7, 3,157, 0, 7, 3,158, + 0, 7, 3,159, 0, 2, 3,160, 0, 0, 3,161, 0, 0, 0,106, 0, 0, 3,162, 0, 0, 3,163, 0, 7, 3,164, 0, 7, 3,165, + 0, 12, 3,166, 0, 12, 3,167, 0, 12, 3,168, 0, 12, 3,169, 0, 7, 3,170, 0, 2, 2,151, 0, 2, 3,171, 0, 7, 2,133, + 0, 4, 3,172, 0, 4, 3,173, 0,162, 3,174, 0, 2, 3,175, 0, 2, 0,244, 0, 7, 3,176, 0, 12, 3,177, 0, 12, 3,178, + 0, 12, 3,179, 0, 12, 3,180, 0,163, 1, 64, 0,164, 3,181, 0, 58, 3,182, 0, 2, 3,183, 0, 2, 3,184, 0, 2, 2, 56, + 0, 2, 3,185, 0, 7, 2,124, 0, 2, 3,186, 0, 2, 3,187, 0,146, 3,188, 0,134, 3,189, 0,134, 3,190, 0, 4, 3,191, + 0, 4, 3,192, 0, 4, 3,193, 0, 4, 3,194, 0, 12, 3,195, 0, 12, 3,196, 0, 12, 3,197, 0, 7, 3,198, 0, 0, 3,199, + 0,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 2,251, 0, 7, 1, 69, 0, 7, 2,252, 0, 7, 2,244, + 0, 0, 0, 18, 0, 4, 2,253, 0, 4, 2,254, 0, 4, 3,200, 0, 2, 0, 15, 0, 2, 3,201, 0, 7, 2,255, 0,166, 0, 12, + 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 3,202, 0, 4, 2,151, 0, 4, 3,203, 0, 4, 0, 15, 0, 4, 3,204, + 0, 7, 1, 69, 0, 7, 3,205, 0, 7, 3,206, 0, 7, 2,149, 0,163, 0, 40, 0, 4, 0, 17, 0, 2, 3,207, 0, 2, 3,208, + 0, 2, 2,244, 0, 2, 3,209, 0, 2, 3,210, 0, 2, 3,211, 0, 2, 3,212, 0, 2, 3,213, 0, 7, 3,214, 0, 7, 3,215, + 0, 7, 3,216, 0, 7, 3,217, 0, 7, 3,218, 0, 7, 3,219, 0, 7, 3,220, 0, 7, 3,221, 0, 7, 3,222, 0, 7, 3,223, + 0, 7, 3,224, 0, 7, 3,225, 0, 7, 3,226, 0, 7, 3,227, 0, 7, 3,228, 0, 7, 3,229, 0, 7, 3,230, 0, 7, 3,231, + 0, 7, 3,232, 0, 7, 3,233, 0, 7, 3,234, 0, 7, 3,235, 0, 7, 3,236, 0, 7, 3,237, 0, 7, 3,238, 0, 7, 3,239, + 0, 7, 3,240, 0, 44, 0,160, 0,167, 3,241, 0, 7, 3,242, 0, 4, 2,195, 0,168, 0, 5, 0, 58, 1,232, 0, 7, 3,243, + 0, 7, 3,244, 0, 2, 0, 17, 0, 2, 3,245, 0,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, 4, 0, 15, 0, 4, 3,246, + 0, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 3,247, 0, 4, 3,248, 0, 4, 3,249, 0, 4, 0, 17, + 0, 9, 3,250, 0, 9, 3,251, 0, 12, 3,252, 0,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, 4, 0, 17, 0, 4, 3,253, + 0, 4, 3,254, 0, 4, 3,255, 0, 4, 4, 0, 0, 4, 4, 1, 0, 4, 4, 2, 0, 4, 3,248, 0, 4, 2,151, 0, 2, 4, 3, + 0, 2, 0, 54, 0, 0, 4, 4, 0, 0, 4, 5, 0, 0, 4, 6, 0, 0, 4, 7, 0, 0, 4, 8, 0, 12, 4, 9, 0,171, 4, 10, + 0, 9, 4, 11, 0,172, 0, 1, 0, 7, 2, 36, 0,162, 0, 30, 0, 4, 0, 17, 0, 7, 4, 12, 0, 7, 4, 13, 0, 7, 4, 14, + 0, 4, 4, 15, 0, 4, 4, 16, 0, 4, 4, 17, 0, 4, 4, 18, 0, 7, 4, 19, 0, 7, 4, 20, 0, 7, 4, 21, 0, 7, 4, 22, + 0, 7, 4, 23, 0, 7, 4, 24, 0, 7, 4, 25, 0, 7, 4, 26, 0, 7, 4, 27, 0, 7, 4, 28, 0, 7, 4, 29, 0, 7, 4, 30, + 0, 7, 4, 31, 0, 7, 4, 32, 0, 7, 4, 33, 0, 7, 4, 34, 0, 7, 4, 35, 0, 7, 4, 36, 0, 4, 4, 37, 0, 4, 4, 38, + 0, 7, 4, 39, 0, 7, 3,156, 0,164, 0, 54, 0, 4, 3,248, 0, 4, 4, 40, 0,173, 4, 41, 0,174, 4, 42, 0, 0, 0, 35, + 0, 0, 4, 43, 0, 2, 4, 44, 0, 7, 4, 45, 0, 0, 4, 46, 0, 7, 4, 47, 0, 7, 4, 48, 0, 7, 4, 49, 0, 7, 4, 50, + 0, 7, 4, 51, 0, 7, 4, 52, 0, 7, 4, 53, 0, 7, 4, 54, 0, 7, 4, 55, 0, 2, 4, 56, 0, 0, 4, 57, 0, 2, 4, 58, + 0, 7, 4, 59, 0, 7, 4, 60, 0, 0, 4, 61, 0, 4, 0,121, 0, 4, 4, 62, 0, 4, 4, 63, 0, 2, 4, 64, 0, 2, 4, 65, + 0,172, 4, 66, 0, 4, 4, 67, 0, 4, 0, 79, 0, 7, 4, 68, 0, 7, 4, 69, 0, 7, 4, 70, 0, 7, 4, 71, 0, 2, 4, 72, + 0, 2, 4, 73, 0, 2, 4, 74, 0, 2, 4, 75, 0, 2, 4, 76, 0, 2, 4, 77, 0, 2, 4, 78, 0, 2, 4, 79, 0,175, 4, 80, + 0, 7, 4, 81, 0, 7, 4, 82, 0,130, 4, 83, 0, 12, 3, 4, 0,168, 4, 84, 0, 7, 4, 85, 0, 7, 4, 86, 0, 7, 4, 87, + 0, 0, 4, 88, 0,176, 0, 1, 0, 7, 4, 89, 0,146, 0, 50, 0,145, 4, 90, 0, 2, 0, 15, 0, 2, 4, 91, 0, 2, 4, 92, + 0, 2, 4, 93, 0, 7, 4, 94, 0, 2, 4, 95, 0, 2, 4, 96, 0, 7, 4, 97, 0, 2, 4, 98, 0, 2, 4, 99, 0, 7, 4,100, + 0, 7, 4,101, 0, 7, 4,102, 0, 4, 4,103, 0, 4, 4,104, 0, 7, 4,105, 0, 4, 4,106, 0, 7, 4,107, 0, 7, 4,108, + 0, 7, 4,109, 0, 73, 4,110, 0, 73, 4,111, 0, 0, 4,112, 0, 7, 4,113, 0, 7, 4,114, 0, 28, 0, 77, 0, 2, 4,115, + 0, 0, 4,116, 0, 0, 4,117, 0, 7, 4,118, 0, 4, 4,119, 0, 7, 4,120, 0, 7, 4,121, 0, 4, 4,122, 0, 4, 0, 17, + 0, 7, 4,123, 0, 7, 4,124, 0, 7, 4,125, 0,176, 4,126, 0, 4, 0, 51, 0, 7, 4,127, 0, 7, 4,128, 0, 7, 4,129, + 0, 7, 4,130, 0, 7, 4,131, 0, 7, 4,132, 0, 7, 4,133, 0, 4, 4,134, 0, 4, 0, 35, 0,177, 0, 76, 0, 19, 0, 29, + 0, 31, 0, 72, 0, 2, 0,170, 0, 2, 1, 73, 0, 2, 1,107, 0, 2, 4,135, 0, 7, 4,136, 0, 7, 4,137, 0, 7, 4,138, + 0, 7, 4,139, 0, 7, 4,140, 0, 7, 4,141, 0, 7, 1,153, 0, 7, 1,155, 0, 7, 1,154, 0, 7, 0, 67, 0, 4, 4,142, + 0, 7, 4,143, 0, 7, 4,144, 0, 7, 4,145, 0, 7, 4,146, 0, 7, 4,147, 0, 7, 4,148, 0, 7, 4,149, 0, 2, 4,150, + 0, 2, 1, 72, 0, 2, 4,151, 0, 2, 4,152, 0, 2, 4,153, 0, 2, 4,154, 0, 2, 4,155, 0, 2, 4,156, 0, 7, 4,157, + 0, 7, 4,158, 0, 7, 4,159, 0, 7, 4,160, 0, 7, 4,161, 0, 7, 4,162, 0, 7, 4,163, 0, 7, 4,164, 0, 7, 4,165, + 0, 7, 4,166, 0, 7, 4,167, 0, 7, 4,168, 0, 2, 4,169, 0, 2, 4,170, 0, 2, 4,171, 0, 2, 4,172, 0, 7, 4,173, + 0, 7, 4,174, 0, 7, 4,175, 0, 7, 4,176, 0, 2, 4,177, 0, 2, 4,178, 0, 2, 4,179, 0, 2, 4,180, 0, 7, 4,181, + 0, 7, 4,182, 0, 7, 4,183, 0, 7, 4,184, 0, 7, 4,185, 0, 7, 4,186, 0, 7, 4,187, 0, 2, 4,188, 0, 2, 4,189, + 0, 2, 4,190, 0, 2, 4,191, 0, 2, 4,192, 0, 2, 0, 17, 0, 7, 4,193, 0, 7, 4,194, 0, 28, 0, 77, 0, 43, 1,125, + 0, 2, 1,126, 0, 2, 4,195, 0, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, 4, 3,134, 0, 4, 4,196, + 0, 4, 0, 17, 0, 2, 4,197, 0, 2, 4,198, 0, 24, 0,159, 0,179, 0, 13, 0, 9, 4,199, 0, 9, 4,200, 0, 4, 4,201, + 0, 4, 4,202, 0, 4, 4,203, 0, 4, 4,204, 0, 4, 4,205, 0, 4, 4,206, 0, 4, 4,207, 0, 4, 4,208, 0, 4, 4,209, + 0, 4, 0, 35, 0, 0, 4,210, 0,180, 0, 5, 0, 9, 4,211, 0, 9, 4,212, 0, 4, 4,213, 0, 4, 0, 67, 0, 0, 4,214, + 0,181, 0, 17, 0, 4, 4,215, 0, 4, 4,216, 0, 4, 4,217, 0, 4, 4,218, 0, 4, 4,219, 0, 4, 4,220, 0, 4, 4,221, + 0, 4, 4,222, 0, 4, 4,223, 0, 4, 4,224, 0, 4, 4,225, 0, 4, 4,226, 0, 2, 4,227, 0, 2, 4,228, 0, 4, 4,229, + 0, 4, 4,230, 0, 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, 4, 4,217, 0, 4, 4,231, 0, 4, 4,232, 0, 4, 4,233, + 0, 4, 4,234, 0, 7, 4,235, 0, 4, 4,236, 0, 4, 0, 88, 0, 4, 4,237, 0, 4, 4,238, 0, 4, 4,239, 0, 4, 4,240, + 0, 4, 4,241, 0, 18, 0, 28, 0,183, 0, 7, 0, 4, 4,242, 0, 7, 4,243, 0, 7, 4,244, 0, 7, 4,245, 0, 4, 4,246, + 0, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 18, 0, 57, 4,247, 0, 58, 4,248, + 0, 4, 3,134, 0, 4, 4,249, 0, 4, 4,250, 0, 4, 0, 35, 0, 4, 4,251, 0, 4, 4,252, 0,185, 0,105, 0,179, 4,253, + 0,180, 4,254, 0,181, 4,255, 0,182, 5, 0, 0, 4, 3, 19, 0, 4, 0,121, 0, 4, 4, 62, 0, 7, 5, 1, 0, 4, 5, 2, + 0, 4, 5, 3, 0, 4, 5, 4, 0, 4, 5, 5, 0, 2, 0, 17, 0, 2, 5, 6, 0, 7, 5, 7, 0, 7, 5, 8, 0, 7, 5, 9, + 0, 7, 5, 10, 0, 7, 5, 11, 0, 2, 5, 12, 0, 2, 5, 13, 0, 2, 5, 14, 0, 2, 5, 15, 0, 2, 0,243, 0, 2, 5, 16, + 0, 4, 5, 17, 0, 2, 5, 18, 0, 2, 5, 19, 0, 2, 1, 94, 0, 2, 0,104, 0, 2, 5, 20, 0, 2, 5, 21, 0, 2, 5, 22, + 0, 2, 5, 23, 0, 2, 5, 24, 0, 2, 5, 25, 0, 2, 5, 26, 0, 2, 5, 27, 0, 2, 5, 28, 0, 2, 5, 29, 0, 4, 5, 30, + 0, 4, 1, 72, 0, 4, 5, 31, 0, 2, 5, 32, 0, 2, 5, 33, 0, 2, 5, 34, 0, 2, 5, 35, 0, 2, 5, 36, 0, 2, 5, 37, + 0, 2, 5, 38, 0, 2, 5, 39, 0, 16, 5, 40, 0, 16, 5, 41, 0, 15, 5, 42, 0, 12, 5, 43, 0, 2, 5, 44, 0, 2, 5, 45, + 0, 7, 5, 46, 0, 7, 5, 47, 0, 7, 5, 48, 0, 7, 5, 49, 0, 4, 5, 50, 0, 7, 5, 51, 0, 7, 5, 52, 0, 7, 5, 53, + 0, 7, 5, 54, 0, 2, 5, 55, 0, 2, 5, 56, 0, 2, 5, 57, 0, 2, 5, 58, 0, 2, 5, 59, 0, 2, 5, 60, 0, 7, 5, 61, + 0, 7, 5, 62, 0, 7, 5, 63, 0, 0, 5, 64, 0, 4, 5, 65, 0, 2, 5, 66, 0, 2, 1,229, 0, 0, 5, 67, 0, 7, 5, 68, + 0, 7, 5, 69, 0, 0, 5, 70, 0, 0, 5, 71, 0, 0, 5, 72, 0, 0, 5, 73, 0, 4, 5, 74, 0, 2, 5, 75, 0, 2, 5, 76, + 0, 7, 5, 77, 0, 7, 5, 78, 0, 2, 5, 79, 0, 2, 5, 80, 0, 7, 5, 81, 0, 2, 5, 82, 0, 2, 5, 83, 0, 4, 5, 84, + 0, 2, 5, 85, 0, 2, 5, 86, 0, 2, 5, 87, 0, 2, 5, 88, 0, 7, 5, 89, 0, 7, 0, 67, 0, 34, 5, 90, 0, 0, 5, 91, + 0,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 5, 92, 0, 2, 5, 93, 0, 2, 5, 94, 0, 2, 0, 87, + 0, 7, 5, 95, 0, 7, 0, 67, 0,187, 0, 7, 0, 2, 2,212, 0, 2, 1, 72, 0, 2, 3, 76, 0, 2, 5, 96, 0, 7, 5, 97, + 0, 7, 0, 67, 0, 34, 5, 98, 0,188, 0, 5, 0, 7, 5, 99, 0, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 67, 0, 0, 1,229, + 0,189, 0, 28, 0, 7, 4,148, 0, 7, 4,149, 0, 2, 1, 72, 0, 2, 0, 17, 0, 2, 5,100, 0, 2, 4,195, 0, 2, 4,151, + 0, 2, 4,152, 0, 2, 4,153, 0, 2, 4,154, 0, 2, 4,155, 0, 2, 4,156, 0,188, 5,101, 0, 2, 5, 12, 0, 2, 5, 13, + 0, 2, 5, 14, 0, 2, 5, 15, 0, 2, 0,243, 0, 2, 5, 16, 0, 2, 5,102, 0, 2, 5,103, 0,187, 5,104, 0, 2, 5,105, + 0, 2, 5, 18, 0, 2, 5, 21, 0, 2, 5, 22, 0, 7, 5,106, 0, 7, 0, 87, 0,190, 0, 6, 0,190, 0, 0, 0,190, 0, 1, + 0, 4, 3,247, 0, 0, 4, 4, 0, 4, 0, 17, 0, 24, 5,107, 0,191, 0, 4, 0,192, 5,108, 0, 9, 5,109, 0, 0, 5,110, + 0, 4, 0, 88, 0,193, 0, 8, 0,191, 5,111, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 5,112, 0, 2, 5,113, 0, 2, 5,114, + 0, 4, 0, 87, 0, 9, 5,115, 0,194, 0, 6, 0, 2, 0,104, 0, 2, 3,253, 0, 2, 5,116, 0, 2, 2,206, 0, 4, 0, 17, + 0, 7, 2,223, 0,195, 0, 14, 0, 2, 0, 17, 0, 2, 5,117, 0, 2, 5,118, 0, 2, 5,119, 0,194, 5,120, 0, 9, 5,115, + 0, 7, 5,121, 0, 7, 0, 54, 0, 4, 5,122, 0, 4, 5,123, 0, 4, 5,124, 0, 4, 5,125, 0, 38, 0,117, 0, 24, 0,159, + 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 5,126, 0, 7, 5,127, 0,197, 0, 14, 0,191, 5,111, 0, 4, 0, 88, + 0, 4, 5,128, 0, 7, 5,129, 0, 7, 5,130, 0, 7, 5,131, 0, 4, 5,132, 0, 4, 5,133, 0, 7, 5,134, 0, 7, 5,135, + 0, 4, 5,136, 0, 7, 5,137, 0, 7, 5,138, 0, 4, 0, 35, 0,198, 0, 7, 0,191, 5,111, 0, 2, 0, 17, 0, 2, 0, 35, + 0, 4, 0, 34, 0, 4, 5,139, 0, 79, 5,140, 0, 9, 5,115, 0,199, 0, 82, 0,198, 5,141, 0,198, 5,142, 0,197, 3, 99, + 0, 7, 5,143, 0, 2, 5,144, 0, 2, 5,145, 0, 7, 5,146, 0, 7, 5,147, 0, 2, 3,253, 0, 2, 5,148, 0, 7, 5,149, + 0, 7, 5,150, 0, 7, 5,151, 0, 2, 5,152, 0, 2, 5,122, 0, 2, 5,153, 0, 2, 5,154, 0, 2, 5,155, 0, 2, 5,156, + 0, 7, 5,157, 0, 7, 5,158, 0, 7, 5,159, 0, 2, 5,160, 0, 2, 5,161, 0, 2, 5,162, 0, 2, 5,163, 0, 2, 5,164, + 0, 2, 5,165, 0, 2, 5,166, 0, 2, 5,167, 0,193, 5,168, 0,195, 5,169, 0, 7, 5,170, 0, 7, 5,171, 0, 7, 5,172, + 0, 2, 5,173, 0, 2, 5,174, 0, 0, 5,175, 0, 0, 5,176, 0, 0, 5,177, 0, 0, 5,178, 0, 0, 5,179, 0, 0, 5,180, + 0, 2, 5,181, 0, 7, 5,182, 0, 7, 5,183, 0, 7, 5,184, 0, 7, 5,185, 0, 7, 5,186, 0, 7, 5,187, 0, 7, 5,188, + 0, 7, 5,189, 0, 7, 5,190, 0, 7, 5,191, 0, 2, 5,192, 0, 0, 5,193, 0, 0, 5,194, 0, 0, 5,195, 0, 0, 5,196, + 0, 24, 5,197, 0, 0, 5,198, 0, 0, 5,199, 0, 0, 5,200, 0, 0, 5,201, 0, 0, 5,202, 0, 0, 5,203, 0, 0, 5,204, + 0, 0, 5,205, 0, 0, 5,206, 0, 0, 5,207, 0, 2, 5,208, 0, 2, 5,209, 0, 2, 5,210, 0, 2, 5,211, 0, 0, 5,212, + 0, 0, 4,195, 0, 4, 5,213, 0, 2, 5,214, 0, 2, 0, 87, 0, 4, 5,215, 0, 7, 5,216, 0, 7, 5,217, 0,200, 0, 8, + 0, 4, 5,218, 0, 4, 5,219, 0, 4, 5,220, 0, 4, 5,221, 0, 4, 5,222, 0, 4, 5,223, 0, 4, 0, 51, 0, 4, 2,121, + 0,201, 0, 4, 0, 7, 5,224, 0, 0, 5,225, 0, 0, 5,226, 0, 2, 0, 17, 0,202, 0, 4, 0, 7, 5,227, 0, 4, 0, 17, + 0, 4, 5,228, 0, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 5,107, 0,177, 5,229, 0, 38, 5,230, + 0, 12, 5,231, 0,178, 5,232, 0, 24, 5,233, 0, 7, 5,234, 0, 7, 5,235, 0, 7, 5,236, 0, 7, 5,237, 0, 4, 3,134, + 0, 4, 5,238, 0, 4, 5,239, 0, 4, 3,192, 0, 4, 5,240, 0, 2, 0, 17, 0, 2, 1, 66, 0, 53, 1, 61, 0,203, 5,241, + 0,199, 5,242, 0,204, 5,243, 0,185, 0,177, 0,183, 5,244, 0, 12, 0, 98, 0, 12, 5,245, 0, 9, 5,246, 0, 9, 5,247, + 0, 9, 5,248, 0, 9, 5,249, 0,205, 5,250, 0, 2, 5,251, 0, 2, 5,252, 0, 2, 0,244, 0, 2, 5,253, 0, 4, 5,254, + 0, 4, 5,255, 0, 12, 6, 0, 0,188, 5,101, 0,189, 6, 1, 0,201, 6, 2, 0,159, 3,112, 0,202, 6, 3, 0,206, 0, 11, + 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,235, 0, 37, 1, 60, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 0,104, 0, 7, 6, 4, + 0, 2, 6, 5, 0, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 6, 6, 0, 7, 6, 7, 0, 7, 6, 8, 0, 7, 6, 9, + 0, 7, 6, 10, 0, 7, 6, 11, 0, 7, 6, 12, 0, 7, 6, 13, 0, 7, 6, 14, 0, 7, 1, 79, 0, 7, 6, 15, 0, 7, 6, 16, + 0, 7, 6, 17, 0, 7, 6, 18, 0, 7, 0,166, 0, 2, 6, 19, 0, 2, 6, 20, 0, 0, 6, 21, 0, 0, 4,195, 0, 2, 6, 22, + 0, 2, 6, 23, 0, 2, 6, 24, 0, 2, 6, 5, 0, 7, 6, 25, 0, 7, 6, 26, 0, 62, 6, 27, 0,159, 3,112, 0,207, 6, 28, + 0,208, 6, 29, 0,209, 6, 30, 0,210, 6, 31, 0,211, 6, 32, 0, 7, 6, 33, 0, 2, 6, 34, 0, 2, 6, 35, 0, 7, 6, 36, + 0, 7, 6, 37, 0, 7, 6, 38, 0,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, + 0, 2, 6, 42, 0, 7, 6, 14, 0, 7, 1, 79, 0, 7, 0, 87, 0, 4, 6, 43, 0, 2, 6, 24, 0, 2, 6, 5, 0, 24, 5,107, + 0, 24, 6, 44, 0, 12, 6, 45, 0,206, 6, 46, 0,212, 6, 28, 0, 0, 6, 47, 0, 4, 3,134, 0, 4, 5,238, 0, 2, 6, 48, + 0, 2, 6, 49, 0, 2, 6, 50, 0, 2, 6, 51, 0, 2, 0, 17, 0, 2, 2, 21, 0, 7, 0,110, 0, 7, 6, 52, 0, 7, 6, 53, + 0, 7, 6, 54, 0, 7, 0,166, 0, 7, 5,234, 0, 2, 6, 55, 0, 2, 6, 56, 0, 2, 6, 57, 0, 0, 6, 58, 0, 0, 6, 59, + 0, 0, 6, 60, 0, 0, 6, 61, 0, 0, 6, 62, 0, 12, 6, 63, 0, 12, 6, 64, 0, 12, 6, 65, 0, 2, 6, 66, 0, 2, 2,134, + 0, 2, 6, 67, 0, 0, 6, 68, 0, 0, 6, 69, 0, 9, 6, 70, 0,159, 3,112, 0,214, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, + 0, 15, 6, 71, 0, 15, 6, 72, 0, 15, 6, 73, 0, 7, 6, 74, 0, 7, 6, 75, 0, 7, 6, 76, 0, 7, 6, 77, 0, 2, 6, 78, + 0, 2, 6, 79, 0, 2, 6, 80, 0, 2, 6, 81, 0, 2, 6, 82, 0, 2, 0, 17, 0, 2, 6, 83, 0, 2, 6, 84, 0, 2, 6, 85, + 0, 2, 6, 86, 0, 2, 6, 87, 0, 2, 6, 51, 0, 7, 6, 88, 0, 4, 6, 89, 0, 4, 6, 90, 0,213, 0, 6, 0,213, 0, 0, + 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, + 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 0, 6, 91, 0, 0, 0,176, 0,216, 0, 14, 0,213, 0, 0, + 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0,217, 6, 93, 0, 12, 6, 94, + 0, 2, 1, 72, 0, 2, 6, 95, 0, 4, 0, 17, 0, 7, 6, 96, 0, 4, 6, 51, 0,218, 0, 21, 0,213, 0, 0, 0,213, 0, 1, + 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,208, 6, 29, 0,214, 6, 92, 0, 2, 6, 97, 0, 2, 6, 98, + 0, 2, 6, 99, 0, 2, 6,100, 0, 2, 6, 83, 0, 2, 6,101, 0, 2, 6,102, 0, 0, 0, 17, 0, 0, 0, 35, 0, 9, 2, 62, + 0, 4, 6,103, 0, 4, 6,104, 0, 19, 6,105, 0,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, + 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0, 7, 2, 86, 0, 7, 2, 87, 0, 2, 6, 97, 0, 2, 6,106, 0, 2, 6,107, + 0, 2, 6,108, 0, 4, 0, 17, 0, 7, 6,109, 0, 4, 6, 5, 0, 4, 0, 35, 0,159, 3,112, 0,220, 0, 16, 0, 0, 6,110, + 0, 0, 6,111, 0, 0, 6,112, 0, 0, 6,113, 0, 0, 6,114, 0, 0, 6,115, 0, 4, 6,116, 0, 4, 6,117, 0, 4, 6,118, + 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 6,119, 0, 2, 6,120, 0, 2, 1,172, 0, 2, 6,121, 0, 0, 6,122, 0,221, 0, 16, + 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 4, 6,123, 0,220, 6,124, 0,222, 6,125, 0, 12, 6,126, + 0, 12, 6,127, 0,223, 6,128, 0,211, 6,129, 0,224, 6,130, 0, 2, 6,131, 0, 2, 6,132, 0, 2, 6,133, 0, 2, 0, 67, + 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, + 0, 12, 6,134, 0,226, 6,135, 0, 0, 6,136, 0,227, 6,137, 0, 2, 0, 17, 0, 2, 6,138, 0, 2, 6,139, 0, 2, 6,140, + 0,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 4, 0, 17, 0, 39, 2,227, 0, 37, 1, 60, + 0, 51, 6,141, 0,229, 6,142, 0,230, 6,143, 0,159, 3,112, 0, 7, 6,144, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 6,109, + 0, 7, 6,145, 0, 7, 6,146, 0, 2, 6,147, 0, 2, 6,148, 0, 2, 6,149, 0, 2, 6,150, 0, 0, 6,151, 0, 0, 6,152, + 0, 0, 6,153, 0, 0, 6, 51, 0,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, + 0, 2, 6, 42, 0, 2, 6, 95, 0, 2, 0, 17, 0, 4, 0, 35, 0,217, 6, 93, 0,214, 6, 92, 0,232, 0, 31, 0,213, 0, 0, + 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 34, 6,154, 0, 4, 6,155, 0, 4, 6,156, + 0, 2, 0, 88, 0, 2, 6,157, 0, 2, 6,158, 0, 0, 6,159, 0, 0, 6,160, 0, 4, 6,161, 0, 4, 6,162, 0, 4, 6,163, + 0, 2, 6,164, 0, 2, 6,165, 0, 2, 6,166, 0, 2, 6,167, 0, 7, 6,168, 0, 15, 6,169, 0, 15, 6,170, 0, 4, 6,171, + 0, 4, 6,172, 0, 0, 6,173, 0, 0, 6,174, 0, 2, 6,175, 0, 0, 2,192, 0, 9, 6,176, 0,233, 0, 10, 0, 19, 0, 29, + 0, 9, 6,177, 0, 9, 6,178, 0, 9, 6,179, 0, 9, 6,180, 0, 9, 6,181, 0, 4, 0, 88, 0, 4, 6,182, 0, 0, 6,183, + 0, 0, 6,184, 0,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0,233, 6,185, + 0, 2, 0, 88, 0, 2, 6,157, 0, 4, 0, 87, 0, 9, 6,186, 0,235, 0, 3, 0,235, 0, 0, 0,235, 0, 1, 0, 7, 6,187, + 0,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0,214, 6, 92, 0, 12, 6,188, + 0, 4, 6,189, 0, 4, 0, 35, 0, 4, 0, 17, 0, 4, 6,190, 0,237, 0, 26, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, + 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0, 19, 6,191, 0, 19, 0, 78, 0, 2, 0, 17, 0, 2, 6,157, + 0, 7, 6,192, 0, 9, 6,193, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 6,109, 0, 7, 6, 38, 0, 7, 6,194, 0, 7, 6,195, + 0, 53, 1, 61, 0, 53, 6,196, 0, 4, 6,197, 0, 2, 6,198, 0, 2, 0,244, 0, 12, 6,199, 0,159, 3,112, 0,238, 0, 10, + 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 2, 0, 17, 0, 2, 3,143, + 0, 4, 0, 35, 0,159, 3,112, 0,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, + 0, 2, 6, 42, 0,214, 6, 92, 0,222, 6,125, 0, 0, 6,200, 0, 0, 6,111, 0, 0, 6,112, 0, 2, 0, 15, 0, 2, 6,201, + 0, 2, 0, 17, 0, 2, 6,119, 0, 9, 6,193, 0, 4, 6,116, 0, 4, 6,202, 0, 4, 6,203, 0, 4, 6,204, 0, 15, 6,205, + 0, 15, 6,206, 0, 7, 6,207, 0, 7, 6,208, 0, 7, 6,209, 0, 7, 6,192, 0, 2, 6,210, 0, 2, 0,234, 0, 2, 1,172, + 0, 2, 6,211, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 6,212, 0, 2, 6,213, 0, 9, 6,214, 0, 9, 6,215, 0, 9, 6,216, + 0, 9, 6,217, 0, 9, 6,218, 0, 2, 6,219, 0, 0, 6,220, 0, 49, 6,221, 0,240, 0, 7, 0,240, 0, 0, 0,240, 0, 1, + 0, 4, 6,222, 0, 4, 0, 21, 0, 0, 0, 81, 0, 4, 6,223, 0, 4, 0, 15, 0,241, 0, 14, 0,213, 0, 0, 0,213, 0, 1, + 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 4, 6,158, 0, 4, 0, 35, 0, 12, 6,224, 0, 12, 6,225, + 0, 0, 6,226, 0, 0, 6,227, 0, 4, 6,228, 0, 4, 6,229, 0,242, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, + 0, 4, 6, 40, 0, 4, 0, 35, 0, 0, 6,230, 0,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, + 0, 7, 6, 41, 0,244, 6,231, 0,214, 6, 92, 0,245, 6,232, 0, 2, 1, 72, 0, 2, 6,233, 0, 2, 2, 86, 0, 2, 2, 87, + 0, 2, 0, 17, 0, 2, 6,149, 0, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, 0, 6,234, 0, 2, 6,235, + 0, 2, 6,236, 0, 2, 6,237, 0, 2, 0, 35, 0,247, 0, 12, 0, 2, 6,236, 0, 2, 6,238, 0, 2, 6,239, 0, 0, 2,192, + 0, 2, 6,240, 0, 2, 6,241, 0, 2, 6,242, 0, 2, 6,243, 0, 2, 6,244, 0, 2, 6, 83, 0, 7, 6,245, 0, 7, 6,246, + 0,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 4, 4, 0,247, 6,247, 0,247, 6,248, 0,247, 6,249, 0,247, 6,250, + 0, 7, 6,251, 0, 2, 6,252, 0, 2, 6,253, 0, 2, 6,254, 0, 2, 6,255, 0, 2, 7, 0, 0, 2, 7, 1, 0, 2, 7, 2, + 0, 2, 7, 3, 0, 2, 7, 4, 0, 2, 7, 5, 0,249, 0, 10, 0, 0, 7, 6, 0, 0, 7, 7, 0, 0, 7, 8, 0, 0, 7, 9, + 0, 0, 7, 10, 0, 0, 7, 11, 0, 2, 7, 12, 0, 2, 7, 13, 0, 2, 7, 14, 0, 2, 7, 15, 0,250, 0, 8, 0, 0, 7, 16, + 0, 0, 7, 17, 0, 0, 7, 18, 0, 0, 7, 19, 0, 0, 7, 20, 0, 0, 7, 21, 0, 7, 6, 4, 0, 7, 0, 35, 0,251, 0, 18, + 0,249, 7, 22, 0,249, 7, 23, 0,249, 7, 24, 0,249, 7, 25, 0,249, 7, 26, 0,249, 7, 27, 0,249, 7, 28, 0,249, 7, 29, + 0,249, 7, 30, 0,249, 7, 31, 0,249, 7, 32, 0,249, 7, 33, 0,249, 7, 34, 0,249, 7, 35, 0,249, 7, 36, 0,249, 7, 37, + 0,250, 7, 38, 0, 0, 7, 39, 0,252, 0, 97, 0, 0, 7, 40, 0, 0, 7, 41, 0, 0, 7, 10, 0, 0, 7, 42, 0, 0, 7, 43, + 0, 0, 7, 44, 0, 0, 7, 45, 0, 0, 7, 46, 0, 0, 7, 47, 0, 0, 7, 48, 0, 0, 7, 49, 0, 0, 7, 50, 0, 0, 7, 51, + 0, 0, 7, 52, 0, 0, 7, 53, 0, 0, 7, 54, 0, 0, 7, 55, 0, 0, 7, 56, 0, 0, 7, 57, 0, 0, 7, 58, 0, 0, 7, 59, + 0, 0, 7, 60, 0, 0, 7, 61, 0, 0, 7, 62, 0, 0, 7, 63, 0, 0, 7, 64, 0, 0, 7, 65, 0, 0, 7, 66, 0, 0, 7, 67, + 0, 0, 7, 68, 0, 0, 7, 69, 0, 0, 7, 70, 0, 0, 7, 71, 0, 0, 7, 72, 0, 0, 7, 73, 0, 0, 7, 74, 0, 0, 7, 75, + 0, 0, 7, 76, 0, 0, 7, 77, 0, 0, 7, 78, 0, 0, 7, 79, 0, 0, 7, 80, 0, 0, 7, 81, 0, 0, 7, 82, 0, 0, 7, 83, + 0, 0, 7, 84, 0, 0, 7, 85, 0, 0, 7, 86, 0, 0, 7, 87, 0, 0, 7, 88, 0, 0, 7, 89, 0, 0, 7, 90, 0, 0, 7, 91, + 0, 0, 7, 92, 0, 0, 7, 93, 0, 0, 7, 94, 0, 0, 7, 95, 0, 0, 7, 96, 0, 0, 7, 97, 0, 0, 7, 98, 0, 0, 7, 99, + 0, 0, 7,100, 0, 0, 7,101, 0, 0, 7,102, 0, 0, 7,103, 0, 0, 7,104, 0, 0, 7,105, 0, 0, 7,106, 0, 0, 7,107, + 0, 0, 7,108, 0, 0, 7,109, 0, 0, 7,110, 0, 0, 7,111, 0, 0, 7,112, 0, 0, 7,113, 0, 0, 7,114, 0, 0, 7,115, + 0, 0, 7,116, 0, 0, 7,117, 0, 0, 7,118, 0, 0, 7,119, 0, 0, 7,120, 0, 0, 7,121, 0, 0, 7,122, 0, 0, 7,123, + 0, 0, 7,124, 0, 0, 7,125, 0, 0, 7,126, 0, 0, 7,127, 0, 0, 7,128, 0, 0, 7,129, 0, 0, 7,130, 0, 0, 7,131, + 0, 0, 7,132, 0, 0, 7,133, 0, 0, 7,134, 0, 0, 7,135, 0,253, 0, 5, 0, 0, 7,136, 0, 0, 7, 64, 0, 0, 7, 66, + 0, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0,251, 7,137, 0,252, 7,138, + 0,252, 7,139, 0,252, 7,140, 0,252, 7,141, 0,252, 7,142, 0,252, 7,143, 0,252, 7,144, 0,252, 7,145, 0,252, 7,146, + 0,252, 7,147, 0,252, 7,148, 0,252, 7,149, 0,252, 7,150, 0,252, 7,151, 0,252, 7,152, 0,252, 7,153, 0,252, 7,154, + 0,252, 7,155, 0,253, 7,156, 0, 4, 7,157, 0, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0,255, 0, 1, 0, 0, 7,158, + 1, 0, 0, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 2,133, 0, 7, 7,159, 0, 7, 2, 36, 1, 1, 0, 89, 0, 4, 0, 17, + 0, 4, 7,160, 0, 4, 7,161, 0, 0, 7,162, 0, 0, 7,163, 0, 0, 7,164, 0, 0, 7,165, 0, 0, 7,166, 0, 0, 7,167, + 0, 0, 7,168, 0, 0, 7,169, 0, 0, 7,170, 0, 0, 7,171, 0, 4, 7,172, 0, 2, 7,173, 0, 2, 7,174, 0, 2, 7,175, + 0, 2, 7,176, 0, 4, 7,177, 0, 4, 7,178, 0, 4, 7,179, 0, 4, 7,180, 0, 2, 7,181, 0, 2, 7,182, 0, 4, 7,183, + 0, 4, 7,184, 0, 4, 7,185, 0, 4, 7,186, 0, 4, 7,187, 0, 4, 6,224, 0, 4, 7,188, 0, 2, 7,189, 0, 2, 7,190, + 0, 2, 7,191, 0, 2, 7,192, 0, 12, 7,193, 0, 12, 7,194, 0, 12, 7,195, 0, 12, 7,196, 0, 12, 7,197, 0, 0, 7,198, + 0, 2, 7,199, 0, 2, 7,200, 0, 2, 7,201, 0, 2, 7,202, 0, 2, 7,203, 0, 2, 7,204, 0, 2, 7,205, 0, 2, 7,206, + 1, 0, 7,207, 0, 2, 7,208, 0, 2, 7,209, 0, 2, 7,210, 0, 2, 7,211, 0, 2, 7,212, 0, 2, 7,213, 0, 2, 7,214, + 0, 2, 7,215, 0, 4, 7,216, 0, 4, 7,217, 0, 2, 7,218, 0, 2, 7,219, 0, 2, 7,220, 0, 2, 7,221, 0, 2, 7,222, + 0, 2, 7,223, 0, 2, 7,224, 0, 2, 7,225, 0, 2, 7,226, 0, 2, 7,227, 0, 2, 7,228, 0, 2, 7,229, 0, 2, 7,230, + 0, 2, 7,231, 0, 2, 7,232, 0, 2, 7,233, 0, 2, 7,234, 0, 2, 7,235, 0, 0, 7,236, 0, 0, 7,237, 0, 7, 7,238, + 0, 2, 5,173, 0, 2, 5,174, 0, 2, 7,239, 0, 2, 7,240, 0, 47, 7,241, 0, 7, 7,242, 0, 4, 1,229, 0, 0, 7,243, + 1, 2, 0, 24, 0, 19, 0, 29, 0, 12, 7,244, 0, 12, 7,245, 0, 12, 7,246, 0, 12, 6, 39, 0, 38, 0,117, 0, 38, 7,247, + 0, 4, 7,248, 0, 4, 0, 87, 0, 2, 7,249, 0, 2, 7,250, 0, 2, 7,251, 0, 2, 7,252, 0, 2, 7,253, 0, 2, 7,254, + 0, 2, 7,255, 0, 2, 8, 0, 0, 2, 8, 1, 0, 2, 8, 2, 0, 2, 8, 3, 0, 2, 0, 35, 0,211, 8, 4, 0, 9, 8, 5, + 0, 2, 8, 6, 1, 3, 0, 5, 1, 3, 0, 0, 1, 3, 0, 1, 1, 3, 8, 7, 0, 13, 8, 8, 0, 4, 0, 17, 1, 4, 0, 7, + 1, 4, 0, 0, 1, 4, 0, 1, 1, 3, 8, 9, 1, 3, 8, 10, 0, 2, 5, 41, 0, 2, 0, 17, 0, 4, 0, 35, 1, 5, 0, 25, + 1, 5, 0, 0, 1, 5, 0, 1, 1, 6, 8, 11, 1, 7, 6,130, 0, 0, 8, 12, 0, 0, 8, 13, 0, 0, 8, 14, 0, 2, 8, 15, + 0, 2, 8, 16, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 8, 19, 0, 2, 0, 35, 0, 2, 0, 17, 0, 2, 8, 20, 0, 2, 8, 21, + 0, 2, 8, 22, 0, 4, 8, 23, 1, 5, 8, 24, 0, 9, 8, 25, 0, 4, 8, 26, 0, 4, 8, 27, 0, 4, 8, 28, 0, 4, 8, 29, + 0, 0, 8, 30, 0,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 1, 3, 8, 9, 1, 3, 8, 10, 1, 3, 8, 31, 1, 3, 8, 32, + 1, 2, 8, 33, 0, 15, 0, 49, 0, 0, 6, 40, 0, 0, 8, 34, 0, 2, 6, 84, 0, 2, 6, 85, 0, 2, 8, 35, 0, 2, 0, 35, + 0, 2, 7,253, 0, 2, 6,223, 0, 2, 0, 17, 1, 8, 8, 11, 0, 12, 8, 36, 0, 12, 6, 39, 0, 12, 8, 37, 0, 12, 8, 38, + 1, 9, 0, 24, 1, 9, 0, 0, 1, 9, 0, 1, 0,214, 6, 92, 0, 15, 8, 39, 0, 15, 8, 40, 0, 2, 6, 84, 0, 2, 6, 85, + 0, 2, 8, 41, 0, 2, 8, 42, 0, 2, 8, 43, 0, 2, 0, 17, 0, 7, 2, 82, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 7,252, + 0, 2, 8, 44, 0, 2, 8, 1, 0, 2, 4,195, 1, 10, 8, 11, 0, 12, 8, 45, 0, 12, 8, 46, 0, 12, 8, 37, 0, 0, 8, 47, + 0, 9, 8, 48, 1, 11, 0, 14, 0, 0, 8, 49, 0, 2, 8, 50, 0, 2, 8, 51, 0, 2, 8, 52, 0, 2, 8, 53, 0, 2, 5, 29, + 0, 2, 8, 54, 1, 2, 8, 55, 0, 38, 8, 56, 0, 4, 8, 57, 0, 4, 8, 58, 0, 4, 8, 59, 0, 4, 0, 35, 0, 0, 8, 60, + 1, 12, 0, 3, 0, 0, 8, 61, 0, 4, 8, 62, 0, 4, 8, 63, 1, 13, 0, 4, 0, 4, 6,155, 0, 4, 8, 64, 0, 4, 6,161, + 0, 4, 8, 65, 1, 14, 0, 2, 0, 4, 8, 66, 0, 4, 8, 67, 1, 15, 0, 5, 0, 7, 8, 68, 0, 7, 8, 69, 0, 7, 8, 70, + 0, 4, 0, 17, 0, 4, 0, 35, 1, 16, 0, 6, 0, 0, 8, 71, 0, 0, 6,112, 0, 41, 0,130, 0, 2, 0,104, 0, 2, 5, 28, + 0, 4, 0, 35, 1, 17, 0, 14, 1, 17, 0, 0, 1, 17, 0, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, 4, 0, 26, 0, 4, 8, 72, + 0, 4, 8, 73, 0, 4, 8, 74, 1, 12, 8, 75, 0, 0, 8, 71, 1, 16, 3,106, 1, 13, 8, 76, 1, 14, 8, 77, 1, 15, 8, 78, + 1, 18, 0, 12, 0, 0, 1,253, 0, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, 9, 0,225, 0, 7, 0,227, + 0, 7, 0,228, 0, 9, 8, 79, 0, 9, 8, 80, 0, 9, 0,229, 0, 9, 0,231, 1, 19, 0, 48, 1, 19, 0, 0, 1, 19, 0, 1, + 0, 9, 8, 81, 0, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, 4, 0, 85, 0, 4, 8, 82, + 0, 4, 8, 83, 0, 4, 8, 73, 0, 4, 8, 74, 0, 4, 8, 84, 0, 4, 0,243, 0, 4, 8, 85, 0, 4, 8, 86, 0, 7, 8, 87, + 0, 7, 0, 35, 0, 7, 8, 88, 0, 7, 8, 89, 0, 4, 0,121, 0, 4, 8, 90, 1, 17, 8, 91, 0, 28, 0, 77, 0, 38, 0,117, + 0, 24, 8, 92, 0, 41, 0,130, 0, 7, 8, 93, 0, 7, 8, 94, 1, 18, 1, 62, 1, 19, 8, 95, 1, 19, 8, 96, 1, 19, 8, 97, + 0, 12, 8, 98, 0,245, 6,232, 0, 9, 8, 99, 0, 7, 4, 14, 0, 7, 8,100, 0, 7, 8,101, 0, 4, 8,102, 0, 4, 8,103, + 0, 7, 8,104, 0, 9, 8,105, 0, 4, 8,106, 0, 4, 8,107, 0, 4, 8,108, 0, 7, 8,109, 1, 20, 0, 4, 1, 20, 0, 0, + 1, 20, 0, 1, 0, 12, 8,110, 1, 19, 8,111, 0,203, 0, 11, 0, 12, 8,112, 0, 12, 8, 98, 0, 12, 8,113, 1, 19, 8,114, + 0, 0, 8,115, 0, 0, 8,116, 0, 4, 8,117, 0, 4, 8,118, 0, 4, 8,119, 0, 4, 0, 35, 0, 16, 8,120, 1, 21, 0, 4, + 0, 7, 8,121, 0, 7, 3, 76, 0, 2, 8,122, 0, 2, 8,123, 1, 22, 0, 6, 0, 7, 8,124, 0, 7, 8,125, 0, 7, 8,126, + 0, 7, 8,127, 0, 4, 8,128, 0, 4, 8,129, 1, 23, 0, 13, 0, 7, 8,130, 0, 7, 8,131, 0, 7, 8,132, 0, 7, 8,133, + 0, 7, 8,134, 0, 7, 8,135, 0, 7, 8,136, 0, 7, 8,137, 0, 7, 8,138, 0, 7, 8,139, 0, 4, 2,233, 0, 4, 8,140, + 0, 4, 8,141, 1, 24, 0, 2, 0, 7, 5, 99, 0, 7, 0, 35, 1, 25, 0, 5, 0, 7, 8,142, 0, 7, 8,143, 0, 4, 0, 88, + 0, 4, 2,193, 0, 4, 8,144, 1, 26, 0, 6, 1, 26, 0, 0, 1, 26, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, + 0, 2, 0, 54, 1, 27, 0, 8, 1, 27, 0, 0, 1, 27, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, 0, 2, 0, 54, + 0, 7, 0, 21, 0, 7, 0,121, 1, 28, 0, 45, 1, 28, 0, 0, 1, 28, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, + 0, 2, 0,239, 0, 2, 4, 56, 0, 2, 8,146, 0, 7, 8,147, 0, 7, 0, 86, 0, 7, 2,246, 0, 4, 8,148, 0, 4, 0, 79, + 0, 4, 2,195, 0, 7, 8,149, 0, 7, 8,150, 0, 7, 8,151, 0, 7, 8,152, 0, 7, 8,153, 0, 7, 8,154, 0, 7, 2,243, + 0, 7, 1, 59, 0, 7, 8,155, 0, 7, 8,156, 0, 7, 0, 35, 0, 7, 8,157, 0, 7, 8,158, 0, 7, 8,159, 0, 2, 8,160, + 0, 2, 8,161, 0, 2, 8,162, 0, 2, 8,163, 0, 2, 8,164, 0, 2, 8,165, 0, 2, 8,166, 0, 2, 8,167, 0, 2, 2, 21, + 0, 2, 8,168, 0, 2, 2, 18, 0, 2, 8,169, 0, 0, 8,170, 0, 0, 8,171, 0, 7, 0,237, 1, 29, 8,172, 0, 58, 1,232, + 1, 30, 0, 16, 1, 30, 0, 0, 1, 30, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, 0, 2, 0,239, 0, 7, 2,238, + 0, 7, 2,239, 0, 7, 2,240, 0, 7, 2, 71, 0, 7, 2,241, 0, 7, 2,242, 0, 7, 8,173, 0, 7, 2,243, 0, 7, 2,245, + 0, 7, 2,246, 0,227, 0, 5, 0, 2, 0, 15, 0, 2, 8,174, 0, 2, 0, 17, 0, 2, 8,175, 0, 19, 6,191, 0,226, 0, 3, + 0, 4, 0, 66, 0, 4, 8,176, 0,227, 0, 2, 1, 31, 0, 7, 1, 31, 0, 0, 1, 31, 0, 1, 0, 0, 0, 18, 0, 2, 0, 15, + 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 8,177, 1, 32, 0, 5, 0, 0, 0, 18, 0, 7, 1, 79, 0, 7, 8,178, 0, 4, 8,179, + 0, 4, 0, 35, 1, 33, 0, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 1, 34, 0, 4, 0, 0, 0, 18, + 0, 57, 8,180, 0, 7, 1, 79, 0, 7, 0, 35, 1, 35, 0, 6, 0, 2, 8,181, 0, 2, 8,182, 0, 2, 0, 15, 0, 2, 8,183, + 0, 0, 8,184, 0, 0, 8,185, 1, 36, 0, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 8,186, 0, 0, 8,187, + 1, 37, 0, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 1, 38, 0, 4, 0, 2, 8,188, 0, 2, 8,189, 0, 2, 0, 17, + 0, 2, 0, 35, 1, 39, 0, 6, 0, 0, 0, 18, 0, 0, 8,190, 0, 2, 8,191, 0, 2, 2,243, 0, 2, 1, 72, 0, 2, 0, 67, + 1, 40, 0, 5, 0, 0, 0, 18, 0, 7, 3, 76, 0, 7, 4,145, 0, 2, 0, 17, 0, 2, 2,207, 1, 41, 0, 3, 0, 0, 0, 18, + 0, 4, 2,195, 0, 4, 8,188, 1, 42, 0, 7, 0, 0, 0, 18, 0, 7, 4,145, 0, 0, 8,192, 0, 0, 8,193, 0, 2, 1, 72, + 0, 2, 0, 87, 0, 4, 8,194, 1, 43, 0, 4, 0, 0, 8,195, 0, 0, 8,196, 0, 4, 0, 15, 0, 7, 2,211, 1, 44, 0, 3, + 0, 24, 8,197, 0, 0, 8,198, 0, 0, 8,199, 1, 45, 0, 18, 1, 45, 0, 0, 1, 45, 0, 1, 0, 2, 0, 15, 0, 2, 8,200, + 0, 2, 0, 17, 0, 2, 8,201, 0, 2, 8,202, 0, 2, 8,203, 0, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, + 1, 46, 8,204, 0, 24, 0, 42, 0, 2, 5,116, 0, 2, 8,100, 0, 2, 8,205, 0, 2, 0, 35, 1, 47, 0, 11, 0, 0, 0, 18, + 0, 0, 0, 15, 0, 0, 8,206, 0, 2, 0, 17, 0, 2, 2,207, 0, 2, 8,207, 0, 4, 8,208, 0, 4, 8,209, 0, 4, 8,210, + 0, 4, 8,211, 0, 4, 8,212, 1, 48, 0, 1, 0, 0, 8,213, 1, 49, 0, 4, 0, 34, 6,154, 0, 0, 7,158, 0, 4, 1, 72, + 0, 4, 0, 17, 1, 46, 0, 18, 1, 46, 0, 0, 1, 46, 0, 1, 1, 46, 8,214, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,215, + 0, 2, 8,203, 0, 2, 8,200, 0, 2, 8,216, 0, 2, 0, 67, 0, 2, 1,229, 0, 0, 0, 18, 0, 9, 0, 2, 1, 50, 8,204, + 1, 45, 8,217, 0, 2, 0, 13, 0, 2, 8,218, 0, 4, 8,219, 1, 51, 0, 3, 0, 4, 2,221, 0, 4, 0, 35, 0, 24, 0, 42, + 1, 52, 0, 12, 0,157, 8,220, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 8,147, 0, 7, 0, 86, 0, 0, 0, 18, 0, 0, 8,221, + 0, 2, 8,222, 0, 2, 8,223, 0, 2, 8,224, 0, 2, 8,225, 0, 7, 8,226, 1, 53, 0, 8, 0, 7, 8,227, 0, 7, 8,228, + 0, 7, 8,229, 0, 7, 8,230, 0, 7, 8,231, 0, 7, 8,232, 0, 7, 8,233, 0, 7, 8,234, 1, 54, 0, 13, 0, 2, 0, 17, + 0, 2, 6,233, 0, 4, 0, 87, 0, 4, 0, 67, 0, 2, 8,235, 0, 7, 4, 14, 0, 7, 8,236, 0,245, 6,232, 1, 53, 8,237, + 0, 2, 0, 15, 0, 2, 5, 35, 0, 2, 5,254, 0, 2, 8,238, 1, 55, 0, 11, 0, 4, 2,221, 0, 2, 0, 15, 0, 2, 0, 17, + 0, 24, 0, 42, 0, 73, 8,239, 0, 0, 0, 18, 0, 7, 8,240, 0, 7, 8,241, 0, 7, 3,151, 0, 2, 8,242, 0, 2, 8,243, + 1, 56, 0, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 5,107, 1, 57, 0, 5, 0, 4, 0, 35, + 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 8,186, 0, 24, 0, 42, 1, 58, 0, 13, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 8,200, + 0, 2, 3,152, 0, 7, 8,244, 0, 7, 8,245, 0, 7, 4,195, 0, 7, 3,163, 0, 7, 3,122, 0, 7, 3,125, 0, 7, 8,246, + 0, 7, 8,247, 0, 24, 8,248, 1, 59, 0, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 8,147, 0, 7, 0, 86, 0, 0, 0, 18, + 0, 0, 8,221, 0, 2, 0, 87, 0, 2, 0, 67, 0, 2, 1,229, 0, 2, 5, 35, 1, 60, 0, 8, 0, 24, 0, 42, 0, 7, 2,240, + 0, 7, 8,249, 0, 7, 8,250, 0, 7, 3,152, 0, 2, 0, 87, 0, 2, 2,207, 0, 7, 0, 67, 1, 61, 0, 12, 0, 2, 0, 15, + 0, 2, 1, 72, 0, 2, 0, 17, 0, 2, 2,243, 0, 2, 2,221, 0, 2, 8,251, 0, 4, 0, 35, 0, 7, 8,252, 0, 7, 8,253, + 0, 7, 8,254, 0, 7, 8,255, 0, 0, 9, 0, 1, 62, 0, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 8,147, 0, 4, 0, 86, + 0, 0, 0, 18, 0, 2, 4,195, 0, 2, 0, 61, 0, 2, 9, 1, 0, 2, 9, 2, 1, 63, 0, 7, 0, 4, 2,195, 0, 4, 9, 3, + 0, 4, 9, 4, 0, 4, 9, 5, 0, 7, 9, 6, 0, 7, 9, 7, 0, 0, 8,192, 1, 64, 0, 7, 0, 0, 9, 8, 0, 24, 9, 9, + 0, 0, 8,198, 0, 2, 9, 10, 0, 2, 0, 87, 0, 4, 0, 67, 0, 0, 8,199, 1, 65, 0, 6, 0, 2, 0, 17, 0, 2, 0, 15, + 0, 4, 8,147, 0, 4, 0, 86, 0, 0, 9, 11, 0, 0, 9, 12, 1, 66, 0, 1, 0, 4, 0, 17, 1, 67, 0, 6, 0, 0, 0, 90, + 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 9, 13, 0, 7, 9, 14, 0, 34, 6,154, 1, 68, 0, 4, 0, 0, 2,159, 0, 2, 0, 17, + 0, 4, 0, 15, 0, 24, 0, 42, 1, 69, 0, 2, 0, 4, 0, 15, 0, 4, 6, 73, 1, 70, 0, 6, 0, 0, 8,195, 0, 0, 8,196, + 0, 4, 0, 15, 0, 7, 2, 29, 0, 24, 3, 53, 0, 24, 9, 15, 1, 50, 0, 10, 1, 50, 0, 0, 1, 50, 0, 1, 1, 50, 8,214, + 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,200, 0, 2, 9, 16, 0, 0, 0, 18, 0, 9, 0, 2, 0, 24, 0, 42, 0,245, 0, 16, + 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 9, 17, 0, 28, 0, 77, 0, 7, 4, 14, 0, 7, 9, 18, + 0, 7, 8,236, 0, 7, 8,227, 0, 7, 8,228, 0, 7, 9, 19, 0, 4, 0, 88, 0, 4, 0, 35, 0, 9, 9, 20, 0, 9, 9, 21, + 1, 71, 0, 6, 1, 71, 0, 0, 1, 71, 0, 1, 0, 24, 0, 42, 0, 9, 9, 22, 0, 2, 0,244, 0, 0, 2,192, 0, 58, 0, 4, + 0, 19, 0, 29, 0, 12, 9, 23, 0, 4, 0,126, 0, 7, 9, 24, 1, 72, 0, 28, 1, 72, 0, 0, 1, 72, 0, 1, 0, 18, 9, 25, + 1, 72, 0, 36, 0, 12, 9, 26, 0, 0, 0, 18, 0, 7, 9, 27, 0, 7, 9, 28, 0, 7, 9, 29, 0, 7, 9, 30, 0, 4, 0, 17, + 0, 7, 9, 31, 0, 7, 9, 32, 0, 7, 9, 33, 0, 7, 9, 34, 0, 7, 1, 79, 0, 7, 2, 29, 0, 7, 9, 35, 0, 7, 2,193, + 0, 7, 9, 36, 0, 7, 9, 37, 0, 7, 9, 38, 0, 7, 9, 39, 0, 7, 9, 40, 0, 7, 0,167, 0, 4, 0,126, 0, 2, 5,153, + 0, 2, 7, 5, 1, 73, 0, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 9, 41, 0, 12, 9, 42, 0, 12, 9, 43, 1, 72, 9, 44, + 0, 9, 9, 45, 0, 9, 9, 46, 0, 4, 0, 17, 0, 4, 6, 48, 0, 2, 2,247, 0, 2, 6,103, 0, 4, 9, 47, 0, 4, 0,126, + 0, 4, 9, 48, 0, 2, 9, 49, 0, 2, 9, 50, 0, 2, 9, 51, 0, 2, 9, 52, 0, 4, 9, 53, 0, 4, 9, 54, 0, 4, 9, 55, + 0, 4, 9, 56, 0, 4, 9, 57, 0, 4, 9, 58, 1, 74, 0, 2, 0, 7, 2,147, 0, 4, 0, 17, 0,161, 0, 5, 1, 74, 9, 59, + 0, 4, 2,193, 0, 4, 9, 60, 0, 4, 9, 61, 0, 4, 0, 17, 0,160, 0, 16, 0, 4, 9, 62, 0, 4, 9, 63, 0, 4, 9, 64, + 0, 4, 9, 65, 0, 2, 9, 66, 0, 2, 9, 67, 0, 2, 9, 68, 0, 2, 0,244, 0, 2, 9, 69, 0, 2, 9, 70, 0, 2, 9, 71, + 0, 2, 9, 72, 0, 4, 9, 73, 0, 4, 9, 74, 0, 4, 9, 75, 0, 4, 9, 76, 1, 75, 0, 41, 1, 75, 0, 0, 1, 75, 0, 1, + 0, 18, 9, 25, 0, 12, 3,177, 0, 0, 0, 18, 0, 2, 0, 17, 0, 2, 9, 77, 0, 2, 9, 78, 0, 2, 9, 79, 0, 2, 3,137, + 0, 2, 9, 80, 0, 4, 2, 69, 0, 4, 9, 55, 0, 4, 9, 56, 1, 72, 9, 81, 1, 75, 0, 36, 1, 75, 9, 82, 0, 12, 9, 83, + 0,161, 3,114, 0, 24, 9, 84, 1, 75, 9, 85, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 9, 86, 0, 7, 2, 8, 0, 7, 3,127, + 0, 7, 3,129, 0, 2, 3,160, 0, 2, 0, 35, 0, 7, 9, 87, 0, 7, 9, 88, 0, 7, 3,132, 0, 7, 9, 89, 0, 7, 9, 90, + 0, 7, 9, 91, 0, 7, 9, 92, 0, 7, 9, 93, 0, 7, 9, 94, 0, 7, 9, 95, 0, 7, 9, 96, 0, 7, 2, 62, 0,158, 0, 16, + 0, 12, 9, 97, 0, 68, 9, 98, 0, 2, 0, 17, 0, 2, 0, 35, 0, 4, 9, 99, 0, 4, 0, 87, 0, 7, 2, 98, 0, 7, 9,100, + 0, 7, 9,101, 0, 12, 9,102, 0, 4, 9,103, 0, 4, 9,104, 0, 9, 9,105, 0, 9, 9,106, 0,160, 3,113, 0, 0, 9,107, + 1, 76, 0, 1, 0, 4, 9,104, 1, 77, 0, 12, 0, 4, 9,104, 0, 7, 8,212, 0, 2, 9,108, 0, 2, 9,109, 0, 7, 9,110, + 0, 7, 9,111, 0, 2, 9,112, 0, 2, 0, 17, 0, 7, 9,113, 0, 7, 9,114, 0, 7, 9,115, 0, 7, 9,116, 1, 78, 0, 7, + 1, 78, 0, 0, 1, 78, 0, 1, 0, 12, 9,117, 0, 4, 0, 17, 0, 4, 9,118, 0, 0, 4, 4, 0,253, 9,119, 0,157, 0, 9, + 0, 19, 0, 29, 0, 12, 9,120, 0, 12, 9, 97, 0, 12, 9,121, 0, 12, 0, 98, 0, 4, 0, 17, 0, 4, 9,122, 0, 4, 9,123, + 0, 4, 0, 35, 0,217, 0, 6, 0, 19, 9,124, 0, 12, 9, 97, 0, 58, 9,125, 0, 0, 9,126, 0, 4, 9,127, 0, 4, 0, 17, + 1, 79, 0, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, + 0,157, 3,109, 0,217, 9,128, 0, 0, 1, 72, 0, 0, 6, 95, 0, 2, 0, 17, 0, 7, 9,129, 1, 80, 0, 8, 1, 80, 0, 0, + 1, 80, 0, 1, 1, 78, 9,130, 0, 28, 0, 77, 0, 12, 3,115, 0, 4, 0, 17, 0, 0, 0, 18, 0, 4, 7,250, 1, 81, 0, 5, + 1, 81, 0, 0, 1, 81, 0, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 9,131, 1, 82, 0, 14, 1, 82, 0, 0, 1, 82, 0, 1, + 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 9,132, 0, 0, 9,133, 0, 0, 9,131, 0, 7, 9,134, 0, 7, 9,135, + 0, 4, 0, 35, 0, 28, 0, 77, 0, 7, 9,136, 0, 7, 9,137, 1, 83, 0, 9, 1, 83, 0, 0, 1, 83, 0, 1, 0, 24, 9,138, + 0, 0, 2,250, 0, 7, 9,139, 0, 2, 9,140, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 9,141, 1, 84, 0, 7, 0, 34, 6,154, + 0, 18, 9, 25, 0, 4, 0, 17, 0, 4, 9,142, 0, 12, 9,143, 0, 24, 9,138, 0, 0, 2,250, 1, 85, 0, 15, 0, 24, 9,138, + 0, 2, 9,144, 0, 2, 0, 17, 0, 2, 9,145, 0, 2, 9,146, 0, 0, 2,250, 0, 24, 9,147, 0, 0, 9,148, 0, 7, 9,149, + 0, 7, 2, 29, 0, 7, 9,150, 0, 7, 9,151, 0, 2, 0, 15, 0, 2, 1, 72, 0, 7, 1, 79, 1, 86, 0, 6, 0, 24, 9,138, + 0, 7, 9, 59, 0, 2, 9,152, 0, 2, 9,153, 0, 2, 0, 17, 0, 2, 9,154, 1, 87, 0, 6, 0, 24, 9,138, 0, 4, 9,155, + 0, 4, 9,156, 0, 4, 0, 88, 0, 4, 0, 35, 0, 0, 2,250, 1, 88, 0, 4, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 9,155, + 0, 0, 2,250, 1, 89, 0, 4, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 9,155, 0, 0, 2,250, 1, 90, 0, 4, 0, 24, 9,138, + 0, 4, 0, 17, 0, 4, 9,155, 0, 0, 2,250, 1, 91, 0, 2, 0, 4, 0, 17, 0, 7, 4, 14, 1, 92, 0, 2, 0, 24, 9,138, + 0, 0, 2,250, 1, 93, 0, 10, 0, 24, 9,138, 0, 4, 9,157, 0, 7, 0,120, 0, 4, 0, 17, 0, 2, 6,152, 0, 2, 9,158, + 0, 2, 0, 87, 0, 2, 0, 67, 0, 7, 9,159, 0, 0, 2,250, 1, 94, 0, 10, 0, 24, 9,138, 0, 2, 0, 15, 0, 2, 4, 64, + 0, 4, 0, 85, 0, 4, 0, 86, 0, 7, 8,249, 0, 7, 8,250, 0, 4, 0, 35, 0,157, 8,220, 0, 0, 2,250, 1, 95, 0, 4, + 0, 24, 9,138, 0, 4, 3,138, 0, 4, 9,160, 0, 0, 2,250, 1, 96, 0, 4, 0, 24, 9,138, 0, 4, 3,138, 0, 4, 0, 35, + 0, 0, 2,250, 1, 97, 0, 6, 0, 24, 9,138, 0, 7, 0,120, 0, 7, 3, 65, 0, 4, 9,161, 0, 2, 3,138, 0, 2, 3,139, + 1, 98, 0, 6, 0, 24, 9,138, 0, 4, 9,162, 0, 4, 9,163, 0, 7, 9,164, 0, 7, 9,165, 0, 0, 2,250, 1, 99, 0, 16, + 0, 24, 9,138, 0, 24, 9, 82, 0, 4, 0, 15, 0, 7, 9,166, 0, 7, 9,167, 0, 7, 9,168, 0, 7, 9,169, 0, 7, 9,170, + 0, 7, 9,171, 0, 7, 9,172, 0, 7, 9,173, 0, 7, 9,174, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, + 1,100, 0, 3, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 2, 21, 1,101, 0, 5, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 0, 35, + 0, 7, 9,175, 0, 0, 2,250, 1,102, 0, 10, 0, 24, 9,138, 0, 0, 2,250, 0, 2, 9,176, 0, 2, 9,177, 0, 0, 9,178, + 0, 0, 9,179, 0, 7, 9,180, 0, 7, 9,181, 0, 7, 9,182, 0, 7, 9,183, 1,103, 0, 5, 0, 24, 9,138, 0, 0, 2,250, + 0, 7, 2,201, 0, 2, 9,184, 0, 2, 0, 17, 1,104, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, + 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,105, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, + 0, 7, 0, 10, 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,106, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, + 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,107, 0, 7, 0, 24, 9,138, + 0, 0, 2,250, 0, 7, 1, 79, 0, 7, 1, 88, 0, 2, 0, 17, 0, 2, 1, 72, 0, 4, 0, 35, 1,108, 0, 5, 0, 24, 3, 53, + 0, 7, 1, 79, 0, 2, 3, 57, 0, 0, 3, 59, 0, 0, 9,187, 1,109, 0, 10, 1,109, 0, 0, 1,109, 0, 1, 0, 2, 0, 15, + 0, 2, 0, 17, 0, 0, 9,188, 0, 7, 1, 22, 0, 7, 1, 23, 0, 2, 9,117, 0, 2, 9,189, 0, 24, 0, 42, 1,110, 0, 22, + 1,110, 0, 0, 1,110, 0, 1, 0, 2, 0, 17, 0, 2, 1, 72, 0, 2, 9,190, 0, 2, 9,191, 0, 28, 0, 77, 0,157, 8,220, + 0, 24, 0,159, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 9,192, 0, 7, 9,193, 0, 7, 9,194, 0, 7, 9,195, 0, 7, 2,236, + 0, 7, 9,196, 0, 7, 8,222, 0, 7, 9,197, 0, 0, 9,198, 0, 0, 9,199, 0, 12, 3,118, 1,111, 0, 8, 0, 7, 2, 36, + 0, 7, 8,249, 0, 7, 8,250, 0, 9, 0, 2, 0, 2, 9,200, 0, 2, 9,201, 0, 2, 9,202, 0, 2, 9,203, 1,112, 0, 19, + 1,112, 0, 0, 1,112, 0, 1, 1,112, 9,204, 0, 0, 0, 18, 1,111, 9,205, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 9,206, + 0, 2, 9,207, 1,111, 9,208, 0, 2, 9,209, 0, 2, 0, 87, 0, 7, 9,210, 0, 7, 9,211, 0, 4, 9,212, 1,112, 9,213, + 0, 4, 9,214, 0, 4, 0, 67, 1,113, 9,215, 1,114, 0, 4, 0, 0, 9,216, 0, 2, 9,217, 0, 2, 9,218, 0, 4, 0, 35, + 1,115, 0, 34, 1,115, 0, 0, 1,115, 0, 1, 1,115, 9,219, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8, 72, + 0, 2, 8,100, 0, 2, 9,220, 0, 2, 6,157, 0, 2, 9,209, 0, 2, 8,174, 0, 12, 8,215, 0, 12, 9,221, 0, 19, 6,191, + 0, 9, 9,222, 0, 7, 9,210, 0, 7, 9,211, 0, 7, 2, 71, 0, 7, 9,223, 0, 0, 9,224, 0, 2, 9,225, 0, 2, 9,226, + 0, 7, 9,227, 0, 7, 9,228, 0, 2, 9,229, 0, 2, 9,230, 0, 9, 9,231, 0, 16, 9,232, 0, 16, 9,233, 0, 16, 9,234, + 1,114, 0,146, 1,116, 9,235, 1,117, 9,236, 1,113, 0, 8, 1,113, 0, 0, 1,113, 0, 1, 1,115, 9,237, 1,115, 9,238, + 1,112, 9,239, 1,112, 9,240, 0, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, 31, 0, 72, 0,159, 3,112, + 0, 12, 9,241, 0, 12, 9,242, 1,111, 9,243, 0, 12, 9,244, 0, 4, 0, 15, 0, 4, 9,245, 0, 4, 9,246, 0, 4, 9,247, + 0, 4, 0, 17, 0, 4, 0, 35, 0, 12, 9,248, 0, 12, 8,215, 0, 12, 9,221, 0, 4, 6, 62, 0, 9, 9,249, 0, 9, 9,250, + 0, 4, 9,251, 0, 9, 9,252, 0, 9, 9,253, 0, 9, 9,254, 1,118, 0, 6, 0, 4, 0,119, 0, 4, 0,121, 0, 4, 8,174, + 0, 0, 9,255, 0, 0, 10, 0, 0, 2, 0, 35, 1,119, 0, 16, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 10, 1, 0, 2, 10, 2, + 0, 2, 10, 3, 0, 2, 0, 65, 0, 2, 6,192, 0, 2, 10, 4, 0, 7, 2,235, 0, 7, 10, 5, 0, 7, 10, 6, 0, 2, 1, 94, + 0, 0, 10, 7, 0, 0, 10, 8, 0, 4, 10, 9, 0, 4, 10, 10, 1,120, 0, 9, 0, 7, 10, 11, 0, 7, 10, 12, 0, 7, 9, 19, + 0, 7, 3, 76, 0, 7, 10, 13, 0, 7, 6,109, 0, 2, 3, 74, 0, 0, 10, 14, 0, 0, 0, 35, 1,121, 0, 4, 0, 7, 10, 15, + 0, 7, 10, 16, 0, 2, 3, 74, 0, 2, 0, 35, 1,122, 0, 3, 0, 7, 10, 17, 0, 7, 8, 87, 0, 7, 0, 13, 1,123, 0, 7, + 0, 0, 1,253, 0, 2, 5, 26, 0, 2, 5, 27, 0, 2, 5, 28, 0, 2, 4,217, 0, 4, 0,121, 0, 4, 4, 62, 1,124, 0, 9, + 0, 7, 10, 18, 0, 7, 10, 19, 0, 7, 10, 20, 0, 7, 2, 82, 0, 7, 10, 21, 0, 7, 10, 22, 0, 7, 10, 23, 0, 2, 10, 24, + 0, 2, 10, 25, 1,125, 0, 8, 0, 2, 10, 26, 0, 2, 10, 27, 0, 2, 10, 28, 0, 2, 10, 29, 0, 7, 10, 30, 0, 7, 10, 31, + 0, 7, 10, 32, 0, 7, 10, 33, 1,126, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 1,127, 0, 2, 0, 0, 0,161, 0, 0, 10, 34, + 1,128, 0, 1, 0, 0, 0, 18, 1,129, 0, 10, 0, 0, 10, 35, 0, 0, 10, 36, 0, 0, 6,101, 0, 0, 10, 37, 0, 2, 10, 1, + 0, 2, 10, 38, 0, 7, 10, 39, 0, 7, 10, 40, 0, 7, 10, 41, 0, 7, 9,196, 1,130, 0, 2, 0, 9, 10, 42, 0, 9, 10, 43, + 1,131, 0, 11, 0, 0, 5, 28, 0, 0, 0, 15, 0, 0, 3, 74, 0, 0, 3, 76, 0, 0, 10, 44, 0, 0, 0,104, 0, 0, 2,159, + 0, 7, 10, 45, 0, 7, 10, 46, 0, 7, 10, 47, 0, 7, 10, 48, 1,132, 0, 8, 0, 7, 8,181, 0, 7, 0,120, 0, 7, 10, 8, + 0, 7, 2,152, 0, 7, 10, 49, 0, 7, 0,233, 0, 7, 10, 50, 0, 4, 0, 15, 1,133, 0, 4, 0, 2, 10, 51, 0, 2, 10, 52, + 0, 2, 10, 53, 0, 2, 0, 35, 1,134, 0, 8, 0, 7, 10, 54, 0, 7, 2,201, 0, 7, 10, 55, 0, 7, 8, 68, 0, 7, 8, 69, + 0, 7, 8, 70, 0, 7, 10, 56, 0, 7, 10, 57, 1,135, 0, 6, 0, 2, 10, 58, 0, 2, 10, 59, 0, 7, 10, 60, 0, 7, 10, 61, + 0, 7, 10, 62, 0, 7, 10, 63, 1,136, 0, 1, 0, 0, 0, 18, 1,137, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, + 0, 2, 10, 64, 1,138, 0, 10, 0, 2, 3,248, 0, 2, 0, 17, 0, 7, 4,145, 0, 7, 10, 65, 0, 7, 10, 66, 0, 7, 10, 67, + 0, 7, 10, 68, 1,137, 10, 69, 1,137, 10, 70, 1,137, 10, 71, 0, 51, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 10, 72, + 0, 4, 10, 73, 0, 16, 10, 74, 0, 16, 10, 75, 1,138, 10, 76, 0, 7, 10, 77, 0, 7, 10, 78, 0, 7, 10, 79, 0, 7, 10, 80, + 0,230, 0, 10, 0, 4, 9,117, 0, 4, 10, 81, 0, 7, 10, 82, 0, 7, 10, 83, 0, 7, 10, 84, 0, 7, 10, 85, 0, 7, 0, 8, + 0, 7, 0, 10, 0, 4, 1, 72, 0, 4, 2,240, 0,229, 0, 18, 0, 4, 0,124, 0, 4, 10, 86, 0, 4, 10, 87, 0, 7, 10, 88, + 0, 4, 10, 89, 0, 7, 10, 90, 0, 7, 10, 91, 0, 4, 10, 92, 0, 7, 10, 93, 0, 4, 10, 94, 0, 7, 10, 95, 0,230, 10, 96, + 0, 7, 10, 97, 0, 7, 10, 98, 0, 7, 10, 99, 0, 7, 10,100, 0, 4, 10,101, 0, 4, 0, 35, 1,139, 0, 4, 0, 39, 2,227, + 0, 7, 10,102, 0, 7, 1,161, 0, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 1,139, 10,103, 0, 51, 10, 69, 0, 43, 10,104, + 0, 49, 10,105, 0, 22, 0,146, 0, 0, 10,106, 0, 7, 10,107, 0, 2, 6, 4, 0, 2, 10,108, 0, 4, 0,104, 0, 4, 0, 17, + 0, 7, 10,109, 0, 4, 2, 79, 0, 4, 10,110, 0, 7, 10,111, 0, 7, 10,112, 0, 7, 10,113, 0, 7, 1,161, 0, 4, 10,114, + 0, 7, 10,115, 0, 0, 10,116, 0, 0, 10,117, 0, 0, 10,118, 0, 0, 10,119, 0, 7, 10,120, 0, 7, 10,121, 0, 7, 10,122, + 0, 7, 2,240, 0, 7, 10,123, 0, 4, 10,124, 0, 7, 10,125, 0, 7, 10,126, 0, 7, 10,127, 1,140, 0, 10, 0, 4, 0, 15, + 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 3,201, 0, 4, 10,128, 0, 4, 10,129, 0, 4, 10,130, 0, 0, 0, 90, 0, 0, 0, 18, + 0, 9, 0, 2, 1,141, 0, 1, 0, 0, 8, 60, 0, 84, 0, 7, 1,140, 10,131, 0, 4, 10,132, 0, 4, 10,133, 0, 4, 10,134, + 0, 4, 0, 35, 0, 9, 10,135, 1,141, 10,136, 1,142, 0, 5, 0, 7, 2,147, 0, 7, 2,221, 0, 7, 2, 29, 0, 2, 2,128, + 0, 2, 0, 35, 1,143, 0, 5, 0, 7, 2,147, 0, 7, 4, 89, 0, 7, 10,137, 0, 7, 10,138, 0, 7, 2,221, 1,144, 0, 5, + 0, 24, 10,139, 1,145, 0, 20, 0, 7, 5,227, 0, 7, 10,140, 0, 7, 0, 54, 1,146, 0, 3, 0, 7, 10,141, 0, 4, 10,142, + 0, 4, 10,143, 1,147, 0, 7, 0, 4, 10,144, 0, 4, 10,145, 0, 4, 10,146, 0, 7, 10,147, 0, 7, 10,148, 0, 7, 10,149, + 0, 7, 0, 54, 1,148, 0, 8, 1,148, 0, 0, 1,148, 0, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, 2, 0, 17, 0, 2, 1, 72, + 0, 7, 2,221, 0, 7, 8,189, 1,149, 0, 6, 1,149, 0, 0, 1,149, 0, 1, 0, 24, 0, 42, 0, 2, 2,206, 0, 2, 0, 17, + 0, 2, 10,150, 1,150, 0, 17, 1,143, 3,193, 1,143, 10,151, 1,142, 10,152, 1,143, 8,172, 1,144, 10,153, 0, 4, 0, 79, + 0, 7, 2,221, 0, 7, 2,246, 0, 7, 10,154, 0, 4, 10,144, 0, 4, 10,155, 0, 7, 10,148, 0, 7, 10,149, 0, 7, 0,104, + 0, 4, 10,156, 0, 2, 0, 17, 0, 2, 10,157, 1,151, 0, 15, 0, 7, 0,248, 0, 7, 10,158, 0, 7, 10,141, 0, 7, 10,159, + 0, 7, 10,160, 0, 7, 10,161, 0, 7, 10,162, 0, 7, 10,163, 0, 7, 10,164, 0, 7, 10,165, 0, 7, 10,166, 0, 7, 10,167, + 0, 7, 10,168, 0, 4, 0, 17, 0, 4, 10,169, 1,152, 0,124, 0, 19, 0, 29, 0, 31, 0, 72, 1,153, 10,170, 1,151, 10,171, + 0,168, 4, 84, 0, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 9,176, 0, 2, 10,172, 0, 2, 1,107, 0, 2, 10,173, + 0, 2, 3,160, 0, 2, 10,174, 0, 2, 10,175, 0, 2, 10,176, 0, 2, 10,177, 0, 2, 10,178, 0, 2, 10,179, 0, 2, 10,180, + 0, 2, 10,181, 0, 2, 10,182, 0, 2, 5,124, 0, 2, 10,183, 0, 2, 10,184, 0, 2, 10,185, 0, 2, 10,186, 0, 2, 10,187, + 0, 2, 2, 18, 0, 2, 8,165, 0, 2, 8,140, 0, 2, 10,188, 0, 2, 10,189, 0, 2, 3,211, 0, 2, 3,212, 0, 2, 10,190, + 0, 2, 10,191, 0, 2, 10,192, 0, 2, 10,193, 0, 7, 10,194, 0, 7, 10,195, 0, 7, 10,196, 0, 7, 10,197, 0, 7, 10,198, + 0, 7, 10,199, 0, 7, 10,200, 0, 2, 5, 74, 0, 2, 10,201, 0, 7, 10,202, 0, 7, 10,203, 0, 7, 10,204, 0, 7, 8,147, + 0, 7, 0, 86, 0, 7, 2,246, 0, 7, 8,153, 0, 7, 10,205, 0, 7, 10,206, 0, 7, 10,207, 0, 7, 10,208, 0, 4, 8,148, + 0, 4, 8,146, 0, 4, 10,209, 0, 4, 10,210, 0, 7, 8,149, 0, 7, 8,150, 0, 7, 8,151, 0, 7, 10,211, 0, 7, 10,212, + 0, 7, 10,213, 0, 7, 10,214, 0, 7, 10,215, 0, 7, 10,216, 0, 7, 10,217, 0, 7, 10,218, 0, 7, 10,219, 0, 7, 3,151, + 0, 7, 0,104, 0, 7, 10,220, 0, 7, 10,221, 0, 7, 10,222, 0, 7, 10,223, 0, 7, 0,206, 0, 7, 10,224, 0, 4, 10,225, + 0, 4, 10,226, 0, 7, 10,227, 0, 7, 10,228, 0, 7, 10,229, 0, 7, 10,230, 0, 7, 10,231, 0, 7, 0,205, 0, 7, 10,232, + 0, 7, 3,238, 0, 7, 3,236, 0, 7, 3,237, 0, 7, 10,233, 0, 7, 10,234, 0, 7, 10,235, 0, 7, 10,236, 0, 7, 10,237, + 0, 7, 10,238, 0, 7, 10,239, 0, 7, 10,240, 0, 7, 10,241, 0, 7, 10,242, 0, 7, 10,243, 0, 7, 10,244, 0, 7, 10,245, + 0, 7, 10,246, 0, 7, 10,247, 0, 7, 10,248, 0, 7, 10,249, 0, 7, 10,250, 0, 4, 10,251, 0, 4, 10,252, 0, 43, 1,125, + 0, 58, 3,182, 0, 12, 10,253, 0, 58, 10,254, 0, 24, 10,255, 0, 24, 11, 0, 0, 28, 0, 77, 0,163, 1, 64, 0,163, 11, 1, + 0,141, 0, 50, 0,141, 0, 0, 0,141, 0, 1, 1,152, 11, 2, 1,150, 11, 3, 1,147, 9, 82, 0,171, 4, 10, 0, 9, 4, 11, + 1,154, 11, 4, 1,154, 11, 5, 0, 12, 11, 6, 0, 12, 11, 7, 0,126, 11, 8, 0,134, 11, 9, 0,134, 11, 10, 0, 24, 11, 11, + 0, 24, 11, 12, 0, 24, 0, 36, 0, 12, 9,143, 0, 0, 0, 18, 0, 7, 0,237, 0, 7, 3, 19, 0, 7, 11, 13, 0, 7, 11, 14, + 0, 4, 2,195, 0, 4, 11, 15, 0, 4, 0, 17, 0, 4, 8,148, 0, 4, 11, 16, 0, 4, 11, 17, 0, 4, 11, 18, 0, 4, 11, 19, + 0, 2, 0,244, 0, 2, 11, 20, 0, 2, 11, 21, 0, 2, 11, 22, 0, 0, 11, 23, 0, 2, 11, 24, 0, 2, 11, 25, 0, 2, 11, 26, + 0, 9, 11, 27, 0,130, 4, 83, 0, 12, 3, 4, 0, 12, 11, 28, 1,146, 11, 29, 0, 4, 11, 30, 0, 4, 11, 31, 1,155, 11, 32, + 0,132, 3, 16, 1,156, 11, 33, 0, 7, 11, 34, 0,128, 0, 37, 1,157, 9, 20, 0, 7, 4, 53, 0, 7, 11, 35, 0, 7, 11, 36, + 0, 7, 5,227, 0, 7, 3,161, 0, 7, 3,151, 0, 7, 11, 37, 0, 7, 2, 81, 0, 7, 11, 38, 0, 7, 11, 39, 0, 7, 11, 40, + 0, 7, 11, 41, 0, 7, 11, 42, 0, 7, 11, 43, 0, 7, 4, 54, 0, 7, 11, 44, 0, 7, 11, 45, 0, 7, 11, 46, 0, 7, 4, 55, + 0, 7, 4, 51, 0, 7, 4, 52, 0, 7, 11, 47, 0, 7, 11, 48, 0, 4, 11, 49, 0, 4, 0, 88, 0, 4, 11, 50, 0, 4, 11, 51, + 0, 2, 11, 52, 0, 2, 11, 53, 0, 2, 11, 54, 0, 2, 11, 55, 0, 2, 11, 56, 0, 2, 11, 57, 0, 2, 11, 58, 0, 2, 4,195, + 0,168, 4, 84, 0,129, 0, 11, 1,157, 11, 59, 0, 7, 11, 60, 0, 7, 11, 61, 0, 7, 1,233, 0, 7, 11, 62, 0, 7, 11, 63, + 0, 7, 11, 64, 0, 4, 0, 88, 0, 2, 11, 65, 0, 2, 11, 66, 0, 58, 1,232, 1,158, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, + 0, 7, 2, 7, 0, 7, 11, 67, 1,159, 0, 6, 1,159, 0, 0, 1,159, 0, 1, 1,158, 9, 59, 0, 4, 0,250, 0, 2, 11, 68, + 0, 2, 0, 17, 1,160, 0, 5, 1,160, 0, 0, 1,160, 0, 1, 0, 12, 11, 69, 0, 4, 11, 70, 0, 4, 0, 17, 1,161, 0, 9, + 1,161, 0, 0, 1,161, 0, 1, 0, 12, 0,119, 1,160, 11, 71, 0, 4, 0, 17, 0, 2, 11, 68, 0, 2, 11, 72, 0, 7, 0, 89, + 0, 0, 11, 73, 0,159, 0, 6, 0, 19, 0, 29, 0, 12, 5, 43, 0, 4, 0, 17, 0, 2, 11, 74, 0, 2, 11, 75, 0, 9, 11, 76, + 1,162, 0, 6, 0, 12, 11, 77, 0, 4, 11, 78, 0, 4, 11, 79, 0, 4, 0, 17, 0, 4, 0, 35, 0,211, 11, 80, 1,163, 0, 17, + 0, 19, 0, 29, 1,164, 11, 81, 1,164, 11, 82, 0, 12, 11, 83, 0, 4, 11, 84, 0, 2, 11, 85, 0, 2, 11, 86, 0, 12, 11, 87, + 0, 12, 11, 88, 1,162, 11, 89, 0, 12, 11, 90, 0, 12, 11, 91, 0, 12, 11, 92, 0, 12, 11, 93, 1,165, 11, 94, 0, 12, 11, 95, + 0,211, 11, 96, 1,164, 0, 32, 1,164, 0, 0, 1,164, 0, 1, 0, 9, 11, 97, 0, 4, 7,251, 0, 2, 11, 98, 0, 2, 0, 35, + 1, 2, 11, 99, 1, 2, 11,100, 0, 0, 11,101, 0, 2, 11,102, 0, 2, 11,103, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 11,104, + 0, 2, 11,105, 0, 2, 3,201, 0, 2, 6,223, 0, 2, 11,106, 0, 2, 11,107, 0, 2, 11,108, 0, 2, 0, 67, 1,166, 11,109, + 1,167, 11,110, 1,168, 11,111, 0, 4, 11,112, 0, 4, 11,113, 0, 9, 11,114, 0, 12, 11, 88, 0, 12, 8, 37, 0, 12, 11,115, + 0, 12, 11,116, 0, 12, 11,117, 1,169, 0, 17, 1,169, 0, 0, 1,169, 0, 1, 0, 0, 11,118, 0, 18, 0, 28, 0, 2, 11,119, + 0, 2, 0, 15, 0, 2, 0, 13, 0, 2, 11,120, 0, 2, 11,121, 0, 2, 11,122, 0, 2, 11,123, 0, 2, 11,124, 0, 2, 0, 17, + 0, 2, 11,125, 0, 2, 0, 29, 0, 2, 0, 35, 1,170, 11,126, 1,171, 0, 10, 1,171, 0, 0, 1,171, 0, 1, 0, 12, 11,127, + 0, 0, 11,118, 0, 2, 11,128, 0, 2, 11,129, 0, 2, 0, 17, 0, 2, 11,130, 0, 4, 11,131, 0, 9, 11,132, 1,165, 0, 7, + 1,165, 0, 0, 1,165, 0, 1, 0, 0, 11,118, 0, 0, 11,133, 0, 12, 7,196, 0, 4, 11,134, 0, 4, 0, 17, 0,223, 0, 14, + 0,223, 0, 0, 0,223, 0, 1, 0, 0, 11,118, 0, 18, 0, 28, 1,172, 8, 11, 0, 9, 11,135, 0, 9, 11,136, 1,170, 11,126, + 1,162, 11,137, 0, 12, 11,138, 0,223, 11,139, 1, 7, 6,130, 0, 2, 0, 17, 0, 2, 4,195, 1,173, 0, 8, 1,173, 0, 0, + 1,173, 0, 1, 0, 9, 0, 2, 0, 9, 11,140, 0, 0, 4, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 11,141, 1,174, 0, 5, + 0, 7, 11,142, 0, 4, 11,143, 0, 4, 11,144, 0, 4, 1, 72, 0, 4, 0, 17, 1,175, 0, 6, 0, 7, 11,145, 0, 7, 11,146, + 0, 7, 11,147, 0, 7, 11,148, 0, 4, 0, 15, 0, 4, 0, 17, 1,176, 0, 5, 0, 7, 8,249, 0, 7, 8,250, 0, 7, 2,221, + 0, 2, 2, 32, 0, 2, 2, 33, 1,177, 0, 5, 1,176, 0, 2, 0, 4, 0, 51, 0, 7, 11,149, 0, 7, 8,249, 0, 7, 8,250, + 1,178, 0, 4, 0, 2, 11,150, 0, 2, 11,151, 0, 2, 11,152, 0, 2, 11,153, 1,179, 0, 2, 0, 34, 6,185, 0, 18, 9, 25, + 1,180, 0, 3, 0, 16, 11,154, 0, 4, 0, 17, 0, 4, 0, 35, 1,181, 0, 6, 0, 7, 0,104, 0, 7, 2,223, 0, 7, 11,155, + 0, 7, 0, 35, 0, 2, 0,243, 0, 2, 11,156, 1,182, 0, 5, 0, 7, 11,157, 0, 7, 0,120, 0, 7, 9, 60, 0, 7, 9, 61, + 0, 4, 0, 17, 1,183, 0, 6, 0, 19, 6,191, 0, 0, 11,158, 0, 0, 11,159, 0, 2, 11,160, 0, 2, 0, 17, 0, 4, 11,161, + 1,184, 0, 7, 1,184, 0, 0, 1,184, 0, 1, 0, 0, 4, 4, 1,183, 11,162, 0, 2, 11,163, 0, 2, 0, 15, 0, 7, 0, 58, + 1,185, 0, 7, 0, 12, 11,164, 0, 0, 11,165, 0, 9, 11,166, 0, 7, 0, 58, 0, 7, 11,141, 0, 4, 0, 15, 0, 4, 0, 17, + 1,186, 0, 3, 0, 7, 11,167, 0, 4, 0, 17, 0, 4, 0, 35, 1,187, 0, 15, 1,187, 0, 0, 1,187, 0, 1, 1, 78, 9,130, + 1,185, 0, 59, 0, 12, 3,118, 0, 27, 0, 47, 1,186, 11,168, 0, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 1, 15, + 0, 4, 11,169, 0, 0, 11,158, 0, 4, 11,170, 0, 7, 11,171, 1,188, 0, 2, 0, 0, 11,172, 0, 0, 11,173, 1,189, 0, 4, + 1,189, 0, 0, 1,189, 0, 1, 0,157, 3, 53, 0, 12, 11,174, 1,190, 0, 24, 1,190, 0, 0, 1,190, 0, 1, 0, 12, 11,175, + 0,157, 8,220, 1,189, 11,176, 0, 12, 11,177, 0, 12, 3,118, 0, 0, 4, 4, 0, 7, 11,141, 0, 7, 11,178, 0, 7, 0, 85, + 0, 7, 0, 86, 0, 7, 9,192, 0, 7, 9,193, 0, 7, 2,236, 0, 7, 9,196, 0, 7, 8,222, 0, 7, 9,197, 0, 2, 11,179, + 0, 2, 11,180, 0, 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 1,191, 0, 6, 1,191, 0, 0, 1,191, 0, 1, + 0, 12, 11,175, 0, 4, 0, 17, 0, 4, 2,151, 0, 0, 4, 4, 1,192, 0, 11, 1,192, 0, 0, 1,192, 0, 1, 0, 19, 6,191, + 0, 0, 11,181, 0, 4, 11,161, 0, 2, 11,182, 0, 2, 0, 35, 0, 0, 11,158, 0, 4, 11,169, 0, 2, 0, 17, 0, 2, 11,183, + 1,193, 0, 8, 1,193, 0, 0, 1,193, 0, 1, 0, 12, 11,184, 0, 0, 4, 4, 0, 0, 11,185, 0, 2, 0, 17, 0, 2, 11,183, + 0, 4, 11,186, 1,194, 0, 5, 1,194, 0, 0, 1,194, 0, 1, 0, 0, 11,158, 0, 4, 11,169, 0, 7, 2,211, 0, 31, 0, 12, + 0,157, 3,109, 0,157, 11,187, 1,189, 11,176, 0, 12, 11,188, 1,190, 11,189, 0, 12, 11,190, 0, 12, 11,191, 0, 4, 0, 17, + 0, 4, 0,244, 0, 2, 11,192, 0, 2, 11,193, 0, 7, 11,194, 1,195, 0, 2, 0, 19, 0, 29, 0, 31, 0, 72, 1,196, 0, 5, + 1,196, 0, 0, 1,196, 0, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 1,197, 0, 6, 1,196, 11,195, 0, 24, 0, 42, + 0, 4, 11,196, 0, 7, 11,197, 0, 4, 11,198, 0, 4, 9,117, 1,198, 0, 3, 1,196, 11,195, 0, 4, 11,196, 0, 7, 11,199, + 1,199, 0, 8, 1,196, 11,195, 0, 24, 0, 42, 0, 7, 1, 67, 0, 7, 11,200, 0, 7, 3, 19, 0, 7, 9, 19, 0, 4, 11,196, + 0, 4, 11,201, 1,200, 0, 5, 1,196, 11,195, 0, 7, 11,202, 0, 7, 8,100, 0, 7, 2,242, 0, 7, 0, 54, 1,201, 0, 3, + 1,196, 11,195, 0, 7, 9, 19, 0, 7, 11,203, 1,145, 0, 4, 0, 7, 11,204, 0, 7, 10,221, 0, 2, 11,205, 0, 2, 1, 72, + 1,202, 0, 14, 1,202, 0, 0, 1,202, 0, 1, 0, 12, 11,206, 0, 12, 11,207, 0, 12, 11,208, 0, 0, 0, 18, 0, 4, 0, 29, + 0, 4, 0, 17, 0, 4, 11,209, 0, 7, 11,210, 0, 4, 11,198, 0, 4, 9,117, 0, 7, 4, 14, 0, 7, 2,244, 1,153, 0, 23, + 0, 4, 11,196, 0, 4, 11,211, 0, 7, 11,212, 0, 7, 2,240, 0, 7, 11,213, 0, 7, 8,236, 0, 7, 11,204, 0, 7, 11,214, + 0, 7, 2,223, 0, 7, 10, 88, 0, 7, 4,145, 0, 7, 11,215, 0, 7, 11,216, 0, 7, 11,217, 0, 7, 11,218, 0, 7, 11,219, + 0, 7, 11,220, 0, 7, 11,221, 0, 7, 11,222, 0, 7, 11,223, 0, 7, 11,224, 0, 7, 11,225, 0, 12, 11,226, 0,114, 0, 40, + 0,113, 11,227, 1,203, 10,171, 0, 58, 11,228, 0, 58, 10,254, 0, 58, 11,229, 1,204, 11,230, 0, 40, 0,160, 0, 40, 11,231, + 0, 40, 11,232, 0, 7, 11,233, 0, 7, 11,234, 0, 7, 11,235, 0, 7, 11,236, 0, 7, 11,237, 0, 7, 7,250, 0, 7, 11,238, + 0, 7, 1,161, 0, 7, 11,239, 0, 4, 11,240, 0, 4, 11,241, 0, 4, 11,242, 0, 4, 0, 88, 0, 4, 0, 35, 0, 4, 11,243, + 0, 2, 11,244, 0, 2, 11,245, 0, 4, 11,246, 0, 7, 2,223, 0, 4, 11,247, 0, 7, 11,248, 0, 4, 11,249, 0, 4, 11,250, + 0, 4, 11,251, 0,130, 11,252, 0, 12, 11,253, 0,168, 4, 84, 0, 4, 11,254, 0, 7, 11,255, 0, 7, 12, 0, 0, 4, 0, 67, + 0,115, 0, 12, 0,113, 11,227, 0,141, 3, 39, 0, 7, 1,128, 0, 7, 7,250, 0, 7, 12, 1, 0, 7, 12, 2, 0, 7, 12, 3, + 0, 2, 12, 4, 0, 2, 12, 5, 0, 2, 12, 6, 0, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 11,227, 0,132, 3, 16, + 0,134, 3, 18, 0, 7, 9, 59, 0, 7, 12, 7, 0, 7, 12, 8, 0, 7, 1, 69, 0, 7, 12, 9, 0, 4, 9,152, 0, 4, 3, 12, + 0, 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; -- cgit v1.2.3 From 08cf05d8d593db9862b3b57a8c89464044730b26 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 25 Jun 2011 15:54:20 +0000 Subject: Bugfix #27765 Thumbnail save for .blend crashed, when being in editmode for a mesh that has other object users as well. Derivedmesh confusement... Thanks to Sergey for finding the cause! --- source/blender/windowmanager/intern/wm_files.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 4693c8079d2..e0cfb86ce05 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -722,6 +722,10 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re } } + /* blend file thumbnail */ + /* save before exit_editmode, otherwise derivedmeshes for shared data corrupt #27765) */ + ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); + BLI_exec_cb(G.main, NULL, BLI_CB_EVT_SAVE_PRE); /* operator now handles overwrite checks */ @@ -736,9 +740,6 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re /* don't forget not to return without! */ WM_cursor_wait(1); - /* blend file thumbnail */ - ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); - fileflags |= G_FILE_HISTORY; /* write file history */ if (BLO_write_file(CTX_data_main(C), filepath, fileflags, reports, thumb)) { -- cgit v1.2.3 From c414d3e460246c892d18da7edb52eed6321f32eb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 25 Jun 2011 17:36:33 +0000 Subject: fix incorrect ui text for is_runtime --- source/blender/makesrna/intern/rna_rna.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index b4da3a02442..e063f8ec85a 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -1067,7 +1067,7 @@ static void rna_def_property(BlenderRNA *brna) prop= RNA_def_property(srna, "is_runtime", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_boolean_funcs(prop, "rna_Property_runtime_get", NULL); - RNA_def_property_ui_text(prop, "Read Only", "Property is editable through RNA"); + RNA_def_property_ui_text(prop, "Runtime", "Property has been dynamically created at runtime"); prop= RNA_def_property(srna, "is_enum_flag", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); -- cgit v1.2.3 From 651df035f790b6e82dec074972aad52d616b2d47 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 25 Jun 2011 18:50:03 +0000 Subject: baby steps toward an NDOF popup menu --- source/blender/windowmanager/intern/wm_operators.c | 47 +++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1b7333024e7..e36849e103c 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1374,6 +1374,48 @@ static void WM_OT_search_menu(wmOperatorType *ot) ot->poll= wm_search_menu_poll; } +// BEGIN ndof menu -- experimental! + +static int wm_ndof_menu_poll(bContext *C) +{ + if(CTX_wm_window(C)==NULL) + return 0; + + // if menu is already pulled up, another button press should dismiss it + // not sure if that behavior should go here or elsewhere... + + puts("ndof: menu poll"); + return 1; +} + +static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) +{ + puts("ndof: menu exec"); + return OPERATOR_FINISHED; +} + +static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) +{ + puts("ndof: menu invoke"); + + uiPupMenuNotice(C, "Hello!"); + + return OPERATOR_CANCELLED; +} + +static void WM_OT_ndof_menu(wmOperatorType *ot) +{ + puts("ndof: registering menu operator"); + ot->name= "NDOF Menu"; + ot->idname= "WM_OT_ndof_menu"; + + ot->invoke= wm_ndof_menu_invoke; + ot->exec= wm_ndof_menu_exec; + ot->poll= wm_ndof_menu_poll; +} + +// END ndof menu + static int wm_call_menu_exec(bContext *C, wmOperator *op) { char idname[BKE_ST_MAXNAME]; @@ -3403,6 +3445,7 @@ void wm_operatortype_init(void) WM_operatortype_append(WM_OT_debug_menu); WM_operatortype_append(WM_OT_splash); WM_operatortype_append(WM_OT_search_menu); + WM_operatortype_append(WM_OT_ndof_menu); WM_operatortype_append(WM_OT_call_menu); WM_operatortype_append(WM_OT_radial_control); #if defined(WIN32) @@ -3623,7 +3666,9 @@ void wm_window_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "WM_OT_redraw_timer", TKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); - + + WM_keymap_add_item(keymap, "WM_OT_ndof_menu", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); + /* Space switching */ -- cgit v1.2.3 From e61063f04296d4af023718485ba0ac52b7a42a5a Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 25 Jun 2011 18:51:29 +0000 Subject: NDOF pan/zoom/fit working in image/uv editor --- source/blender/editors/space_image/image_intern.h | 1 + source/blender/editors/space_image/image_ops.c | 54 +++++++++++++++++++++++ source/blender/editors/space_image/space_image.c | 4 ++ 3 files changed, 59 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h index e9e77ddf430..399157da85c 100644 --- a/source/blender/editors/space_image/image_intern.h +++ b/source/blender/editors/space_image/image_intern.h @@ -73,6 +73,7 @@ void IMAGE_OT_view_zoom(struct wmOperatorType *ot); void IMAGE_OT_view_zoom_in(struct wmOperatorType *ot); void IMAGE_OT_view_zoom_out(struct wmOperatorType *ot); void IMAGE_OT_view_zoom_ratio(struct wmOperatorType *ot); +void IMAGE_OT_view_ndof(struct wmOperatorType *ot); void IMAGE_OT_new(struct wmOperatorType *ot); void IMAGE_OT_open(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 10b8cb238aa..fc7b84e21ae 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -437,6 +437,60 @@ void IMAGE_OT_view_zoom(wmOperatorType *ot) "Factor", "Zoom factor, values higher than 1.0 zoom in, lower values zoom out.", -FLT_MAX, FLT_MAX); } +/********************** NDOF operator *********************/ + +/* Combined pan/zoom from a 3D mouse device. + * Y zooms, XZ pans + * "view" (not "paper") control -- user moves the viewpoint, not the image being viewed + * that explains the negative signs in the code below + */ + +static int view_ndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + SpaceImage *sima= CTX_wm_space_image(C); + ARegion *ar= CTX_wm_region(C); + + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float dt = ndof->dt > 0.25f ? 0.0125f : ndof->dt; + /* this is probably the first event for this motion, so set dt to something reasonable + * TODO: replace such guesswork with a flag or field from the NDOF manager + */ + + /* tune these until it feels right */ + const float zoom_sensitivity = 0.5f; + const float pan_sensitivity = 300.f; + + float pan_x = pan_sensitivity * dt * -ndof->tx / sima->zoom; + float pan_y = pan_sensitivity * dt * -ndof->tz / sima->zoom; + + /* "mouse zoom" factor = 1 + (dx + dy) / 300 + * what about "ndof zoom" factor? should behave like this: + * at rest -> factor = 1 + * move forward -> factor > 1 + * move backward -> factor < 1 + */ + float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->ty; + + sima_zoom_set_factor(sima, ar, zoom_factor); + sima->xof += pan_x; + sima->yof += pan_y; + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void IMAGE_OT_view_ndof(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "NDOF Pan/Zoom"; + ot->idname= "IMAGE_OT_view_ndof"; + + /* api callbacks */ + ot->invoke= view_ndof_invoke; +} + /********************** view all operator *********************/ /* Updates the fields of the View2D member of the SpaceImage struct. diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 2e9544f5d20..afab4ede229 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -469,6 +469,7 @@ static void image_operatortypes(void) WM_operatortype_append(IMAGE_OT_view_zoom_in); WM_operatortype_append(IMAGE_OT_view_zoom_out); WM_operatortype_append(IMAGE_OT_view_zoom_ratio); + WM_operatortype_append(IMAGE_OT_view_ndof); WM_operatortype_append(IMAGE_OT_new); WM_operatortype_append(IMAGE_OT_open); @@ -518,6 +519,9 @@ static void image_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MOUSEPAN, 0, 0, 0); + WM_keymap_add_item(keymap, "IMAGE_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0); // or view selected? + WM_keymap_add_item(keymap, "IMAGE_OT_view_ndof", NDOF_MOTION, 0, 0, 0); + WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From b8e8f8064dd14a0031cbef50d89c13c868c910cd Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 25 Jun 2011 18:53:06 +0000 Subject: NDOF zoom for orbit modes (trackball/turntable) in 3D view --- source/blender/editors/space_view3d/view3d_edit.c | 100 +++++++--------------- 1 file changed, 32 insertions(+), 68 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 048742fa392..bd44378c9aa 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -949,6 +949,15 @@ float ndof_to_angle_axis(const float ndof[3], float axis[3]) return angular_velocity; } +float ndof_to_angular_velocity(wmNDOFMotionData* ndof, float axis[3]) + { + const float x = ndof->rx; + const float y = ndof->ry; + const float z = ndof->rz; + + return sqrtf(x*x + y*y + z*z); + } + void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) { const float x = ndof->rx; @@ -974,10 +983,12 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - float sensitivity = 1.f; /* ooh, magic number! - const float sensitivity = 0.035; /* ooh, magic number! - there will be several of these as interactions get tuned */ - int /* bool */ has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); + // tune these until everything feels right + float rot_sensitivity = 1.f; + float zoom_sensitivity = 1.f; + + // rather have bool, but... + int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); float dt = ndof->dt; if (dt > 0.25f) @@ -986,16 +997,29 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) ndof->dt = dt = 0.0125f; - if (has_rotation) - rv3d->view = RV3D_VIEW_USER; + if (ndof->ty) { + // Zoom! + // velocity should be proportional to the linear velocity attained by rotational motion of same strength + // [got that?] + // proportional to s = r * theta + + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->ty; + rv3d->dist += zoom_distance; + + ED_region_tag_redraw(CTX_wm_region(C)); + } if (has_rotation) { + + rv3d->view = RV3D_VIEW_USER; + if (U.flag & USER_TRACKBALL) { float rot[4]; float view_inv[4], view_inv_conj[4]; ndof_to_quat(ndof, rot); + // scale by rot_sensitivity? // swap y and z -- not sure why, but it works { @@ -1033,13 +1057,13 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) mul_m3_v3(m_inv,xvec); /* Perform the up/down rotation */ - phi = sensitivity * dt * ndof->rx; + phi = rot_sensitivity * dt * ndof->rx; q1[0] = cos(phi); mul_v3_v3fl(q1+1, xvec, sin(phi)); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); /* Perform the orbital rotation */ - phi = sensitivity * dt * ndof->rz; + phi = rot_sensitivity * dt * ndof->rz; q1[0] = cos(phi); q1[1] = q1[2] = 0.0; q1[3] = sin(phi); @@ -1160,66 +1184,6 @@ static int viewndof_invoke_1st_try(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } - -static int viewndof_invoke_2nd_try(bContext *C, wmOperator *op, wmEvent *event) -{ - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - - float dt = ndof->dt; - - RegionView3D* rv3d = CTX_wm_region_view3d(C); - - if (dt > 0.25f) - /* this is probably the first event for this motion, so set dt to something reasonable */ - dt = 0.0125f; - - float axis[3]; - float angle = ndof_to_angle_axis(&(ndof->rx), axis); - - float eyeball_q[4];// = {0.f}; - -// float* eyeball_v = eyeball_q + 1; - - axis_angle_to_quat(eyeball_q, axis, angle); - - float eye_conj[4]; - copy_qt_qt(eye_conj, eyeball_q); - conjugate_qt(eye_conj); - -// float mat[3][3]; -// quat_to_mat3(mat, rv3d->viewquat); -/* - eyeball_v[0] = dt * ndof->tx; - eyeball_v[1] = dt * ndof->ty; - eyeball_v[2] = dt * ndof->tz; -*/ -// mul_m3_v3(mat, eyeball_vector); -// mul_qt_v3(rv3d->viewquat, eyeball_vector); - - // doesn't this transform v? - // v' = (q)(v)(~q) - - float view_q[4]; - copy_qt_qt(view_q, rv3d->viewquat); - -// float q_conj[4]; -// copy_qt_qt(q_conj, q); -// conjugate_qt(q_conj); - - mul_qt_qtqt(view_q, eyeball_q, view_q); - mul_qt_qtqt(view_q, view_q, eye_conj); - -// mul_qt_qtqt(eyeball_q, q, eyeball_q); -// mul_qt_qtqt(eyeball_q, eyeball_q, q_conj); - -// add_v3_v3(rv3d->ofs, eyeball_v); - - copy_qt_qt(rv3d->viewquat, view_q); - - ED_region_tag_redraw(CTX_wm_region(C)); - - return OPERATOR_FINISHED; -} #endif void VIEW3D_OT_ndof(struct wmOperatorType *ot) -- cgit v1.2.3 From 540c2eee566318a40fef26cd60f182020d2cb7ff Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 26 Jun 2011 07:21:19 +0000 Subject: math func to find the intersection(s) between a segment and a sphere for C/python. from python: i1, i2 = mathutils.geometry.intersect_line_sphere(l1, l2, sphere, radius) --- source/blender/blenlib/BLI_math_geom.h | 1 + source/blender/blenlib/intern/math_geom.c | 73 ++++++++++++++++++++++ source/blender/python/generic/mathutils_geometry.c | 68 ++++++++++++++++++++ 3 files changed, 142 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index b34b9c4b70f..26cf315fc36 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -79,6 +79,7 @@ void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3], int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]); int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]); int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]); +int isect_seg_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]); /* Returns the number of point of interests * 0 - lines are colinear diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 96ed788a49f..ce03143dcaf 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -349,6 +349,79 @@ int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[ return -1; } +int isect_seg_sphere_v3(const float l1[3], const float l2[3], + const float sp[3], const float r, + float r_p1[3], float r_p2[3]) +{ + /* l1: coordinates (point of line) + * l2: coordinates (point of line) + * sp, r: coordinates and radius (sphere) + * r_p1, r_p2: return intersection coordinates + */ + + + /* adapted for use in blender by Campbell Barton - 2011 + * + * atelier iebele abel - 2001 + * atelier@iebele.nl + * http://www.iebele.nl + * + * sphere_line_intersection function adapted from: + * http://astronomy.swin.edu.au/pbourke/geometry/sphereline + * Paul Bourke pbourke@swin.edu.au + */ + + const float ldir[3]= { + l2[0] - l1[0], + l2[1] - l1[1], + l2[2] - l1[2] + }; + + const float a= dot_v3v3(ldir, ldir); + + const float b= 2.0f * + (ldir[0] * (l1[0] - sp[0]) + + ldir[1] * (l1[1] - sp[1]) + + ldir[2] * (l1[2] - sp[2])); + + const float c= + dot_v3v3(sp, sp) + + dot_v3v3(l1, l1) - + (2.0f * dot_v3v3(sp, l1)) - + (r * r); + + const float i = b * b - 4.0f * a * c; + + float mu; + + if (i < 0.0f) { + /* no intersections */ + return 0; + } + else if (i == 0.0f) { + /* one intersection */ + mu = -b / (2.0f * a); + madd_v3_v3v3fl(r_p1, l1, ldir, mu); + return 1; + } + else if (i > 0.0) { + const float i_sqrt= sqrt(i); /* avoid calc twice */ + + /* first intersection */ + mu = (-b + i_sqrt) / (2.0f * a); + madd_v3_v3v3fl(r_p1, l1, ldir, mu); + + /* second intersection */ + mu = (-b - i_sqrt) / (2.0f * a); + madd_v3_v3v3fl(r_p2, l1, ldir, mu); + return 2; + } + else { + /* math domain error - nan */ + return -1; + } +} + /* -1: colliniar 1: intersection diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 53c066d1a85..0b98867dcee 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -553,6 +553,73 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec } } + +PyDoc_STRVAR(M_Geometry_intersect_line_sphere_doc, +".. function:: intersect_line_sphere(line_a, line_b, sphere_co, sphere_radius)\n" +"\n" +" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" +" returns the intersection\n" +"\n" +" :arg line_a: First point of the first line\n" +" :type line_a: :class:`mathutils.Vector`\n" +" :arg line_b: Second point of the first line\n" +" :type line_b: :class:`mathutils.Vector`\n" +" :arg sphere_co: The center of the sphere\n" +" :type sphere_co: :class:`mathutils.Vector`\n" +" :arg sphere_radius: Radius of the sphere\n" +" :type sphere_radius: sphere_radius\n" +" :return: The intersection points as a pair of vectors or None when there is no intersection\n" +" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObject* args) +{ + PyObject *ret; + VectorObject *line_a, *line_b, *sphere_co; + float sphere_radius; + + float isect_a[3]; + float isect_b[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!f:intersect_line_sphere", + &vector_Type, &line_a, + &vector_Type, &line_b, + &vector_Type, &sphere_co, + &sphere_radius) + ) { + return NULL; + } + + if( BaseMath_ReadCallback(line_a) == -1 || + BaseMath_ReadCallback(line_b) == -1 || + BaseMath_ReadCallback(sphere_co) == -1 + ) { + return NULL; + } + + if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { + PyErr_SetString(PyExc_RuntimeError, "geometry.intersect_line_sphere(...) can't use 2D Vectors"); + return NULL; + } + + ret= PyTuple_New(2); + + switch(isect_seg_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + break; + case 2: + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); + break; + default: + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + } + + return ret; +} + PyDoc_STRVAR(M_Geometry_intersect_point_line_doc, ".. function:: intersect_point_line(pt, line_p1, line_p2)\n" "\n" @@ -917,6 +984,7 @@ static PyMethodDef M_Geometry_methods[]= { {"intersect_line_line", (PyCFunction) M_Geometry_intersect_line_line, METH_VARARGS, M_Geometry_intersect_line_line_doc}, {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, {"intersect_line_plane", (PyCFunction) M_Geometry_intersect_line_plane, METH_VARARGS, M_Geometry_intersect_line_plane_doc}, + {"intersect_line_sphere", (PyCFunction) M_Geometry_intersect_line_sphere, METH_VARARGS, M_Geometry_intersect_line_sphere_doc}, {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, -- cgit v1.2.3 From 8eb119a5cd05dc39fd6afec2aa40e4c425622462 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 26 Jun 2011 08:07:09 +0000 Subject: renamed math functions and made public lambda_cp_line --> line_point_factor_v3 lambda_cp_line2 --> line_point_factor_v2 correction to previous commit function name isect_seg_sphere_v3 --> isect_line_sphere_v3 ... since its not clipped. added a clip argument to the python version of the function. --- source/blender/blenlib/BLI_math_geom.h | 5 ++- source/blender/blenlib/intern/math_geom.c | 20 ++++++++---- source/blender/editors/sculpt_paint/paint_image.c | 23 ++------------ source/blender/python/generic/mathutils_geometry.c | 37 +++++++++++++++++----- 4 files changed, 48 insertions(+), 37 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index 26cf315fc36..c905ada184d 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -66,6 +66,9 @@ float closest_to_line_v3(float r[3], const float p[3], const float l1[3], const float closest_to_line_v2(float r[2], const float p[2], const float l1[2], const float l2[2]); void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3], const float l2[3]); +float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3]); +float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2]); + /******************************* Intersection ********************************/ /* TODO int return value consistency */ @@ -78,8 +81,8 @@ void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3], int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]); int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]); +int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]); int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]); -int isect_seg_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]); /* Returns the number of point of interests * 0 - lines are colinear diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index ce03143dcaf..a71b60896fc 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -37,8 +37,6 @@ #include "BLI_memarena.h" #include "BLI_utildefines.h" -static float lambda_cp_line(const float p[3], const float l1[3], const float l2[3]); - /********************************** Polygons *********************************/ void cent_tri_v3(float cent[3], const float v1[3], const float v2[3], const float v3[3]) @@ -349,9 +347,9 @@ int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[ return -1; } -int isect_seg_sphere_v3(const float l1[3], const float l2[3], - const float sp[3], const float r, - float r_p1[3], float r_p2[3]) +int isect_line_sphere_v3(const float l1[3], const float l2[3], + const float sp[3], const float r, + float r_p1[3], float r_p2[3]) { /* l1: coordinates (point of line) * l2: coordinates (point of line) @@ -741,7 +739,7 @@ int isect_line_plane_v3(float out[3], const float l1[3], const float l2[3], cons add_v3_v3v3(l1_plane, l1, p_no); - dist = lambda_cp_line(plane_co, l1, l1_plane); + dist = line_point_factor_v3(plane_co, l1, l1_plane); /* treat line like a ray, when 'no_flip' is set */ if(no_flip && dist < 0.0f) { @@ -1191,7 +1189,7 @@ float closest_to_line_v2(float cp[2],const float p[2], const float l1[2], const } /* little sister we only need to know lambda */ -static float lambda_cp_line(const float p[3], const float l1[3], const float l2[3]) +float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3]) { float h[3],u[3]; sub_v3_v3v3(u, l2, l1); @@ -1199,6 +1197,14 @@ static float lambda_cp_line(const float p[3], const float l1[3], const float l2[ return(dot_v3v3(u,h)/dot_v3v3(u,u)); } +float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2]) +{ + float h[2], u[2]; + sub_v2_v2v2(u, l2, l1); + sub_v2_v2v2(h, p, l1); + return(dot_v2v2(u, h)/dot_v2v2(u, u)); +} + /* Similar to LineIntersectsTriangleUV, except it operates on a quad and in 2d, assumes point is in quad */ void isect_point_quad_uv_v2(const float v0[2], const float v1[2], const float v2[2], const float v3[2], const float pt[2], float *uv) { diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index cae5c14aa97..c9a6aa87cd0 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -1174,25 +1174,6 @@ static void project_face_seams_init(const ProjPaintState *ps, const int face_ind #endif // PROJ_DEBUG_NOSEAMBLEED -/* TODO - move to math_geom.c */ - -/* little sister we only need to know lambda */ -#ifndef PROJ_DEBUG_NOSEAMBLEED -static float lambda_cp_line2(const float p[2], const float l1[2], const float l2[2]) -{ - float h[2], u[2]; - - u[0] = l2[0] - l1[0]; - u[1] = l2[1] - l1[1]; - - h[0] = p[0] - l1[0]; - h[1] = p[1] - l1[1]; - - return(dot_v2v2(u, h)/dot_v2v2(u, u)); -} -#endif // PROJ_DEBUG_NOSEAMBLEED - - /* Converts a UV location to a 3D screenspace location * Takes a 'uv' and 3 UV coords, and sets the values of pixelScreenCo * @@ -2518,9 +2499,9 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i */ /* Since this is a seam we need to work out where on the line this pixel is */ - //fac = lambda_cp_line2(uv, uv_seam_quad[0], uv_seam_quad[1]); + //fac = line_point_factor_v2(uv, uv_seam_quad[0], uv_seam_quad[1]); - fac = lambda_cp_line2(uv, seam_subsection[0], seam_subsection[1]); + fac = line_point_factor_v2(uv, seam_subsection[0], seam_subsection[1]); if (fac < 0.0f) { VECCOPY(pixelScreenCo, edge_verts_inset_clip[0]); } else if (fac > 1.0f) { VECCOPY(pixelScreenCo, edge_verts_inset_clip[1]); } else { interp_v3_v3v3(pixelScreenCo, edge_verts_inset_clip[0], edge_verts_inset_clip[1], fac); } diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 0b98867dcee..f3fe05cd846 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -522,7 +522,7 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec VectorObject *line_a, *line_b, *plane_co, *plane_no; int no_flip= 0; float isect[3]; - if(!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_line_2d", + if(!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_plane", &vector_Type, &line_a, &vector_Type, &line_b, &vector_Type, &plane_co, @@ -555,7 +555,7 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec PyDoc_STRVAR(M_Geometry_intersect_line_sphere_doc, -".. function:: intersect_line_sphere(line_a, line_b, sphere_co, sphere_radius)\n" +".. function:: intersect_line_sphere(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" "\n" " Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" " returns the intersection\n" @@ -576,15 +576,17 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje PyObject *ret; VectorObject *line_a, *line_b, *sphere_co; float sphere_radius; + int clip= TRUE; + float lambda; float isect_a[3]; float isect_b[3]; - if(!PyArg_ParseTuple(args, "O!O!O!f:intersect_line_sphere", + if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere", &vector_Type, &line_a, &vector_Type, &line_b, &vector_Type, &sphere_co, - &sphere_radius) + &sphere_radius, &clip) ) { return NULL; } @@ -603,14 +605,33 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje ret= PyTuple_New(2); - switch(isect_seg_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { case 1: - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); + /* ret 1 */ + if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + } + /* ret 2 */ PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); break; case 2: - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); - PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); + /* ret 1 */ + if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + } + /* ret 2 */ + if(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + } break; default: PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); -- cgit v1.2.3 From 913738a0429b2a11329260ee1f4e479b4a5af2cb Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 26 Jun 2011 09:10:54 +0000 Subject: Fix in texts for Mesh.materials.pop() found by accident while studying how to append materials from python ;) --- source/blender/makesrna/intern/rna_ID.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 174cf95e755..3877e1f9555 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -415,10 +415,10 @@ static void rna_def_ID_materials(BlenderRNA *brna) RNA_def_property_flag(parm, PROP_REQUIRED); func= RNA_def_function(srna, "pop", "material_pop_id"); - RNA_def_function_ui_description(func, "Add a new material to Mesh."); - parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Frame number to set.", 0, INT_MAX); + RNA_def_function_ui_description(func, "Remove a material from Mesh."); + parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Index of material to remove.", 0, INT_MAX); RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_pointer(func, "material", "Material", "", "Material to add."); + parm= RNA_def_pointer(func, "material", "Material", "", "Material to remove."); RNA_def_function_return(func, parm); } -- cgit v1.2.3 From 933a65a76fff8ba7e15de9d8a552f10b9d02e7ec Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 26 Jun 2011 11:08:12 +0000 Subject: 2d version of line/circle intersec function. --- source/blender/blenlib/BLI_math_geom.h | 1 + source/blender/blenlib/intern/math_geom.c | 54 ++++++++++++++ source/blender/makesrna/intern/rna_ID.c | 4 +- source/blender/python/generic/mathutils_geometry.c | 83 ++++++++++++++++++++++ 4 files changed, 140 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index c905ada184d..506e271071c 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -82,6 +82,7 @@ float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2 int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]); int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]); int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]); +int isect_line_sphere_v2(const float l1[2], const float l2[2], const float sp[2], const float r, float r_p1[2], float r_p2[2]); int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]); /* Returns the number of point of interests diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index a71b60896fc..9d945e9baa3 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -420,6 +420,60 @@ int isect_line_sphere_v3(const float l1[3], const float l2[3], } } +/* keep in sync with isect_line_sphere_v3 */ +int isect_line_sphere_v2(const float l1[2], const float l2[2], + const float sp[2], const float r, + float r_p1[2], float r_p2[2]) +{ + const float ldir[2]= { + l2[0] - l1[0], + l2[1] - l1[1] + }; + + const float a= dot_v3v3(ldir, ldir); + + const float b= 2.0f * + (ldir[0] * (l1[0] - sp[0]) + + ldir[1] * (l1[1] - sp[1])); + + const float c= + dot_v2v2(sp, sp) + + dot_v2v2(l1, l1) - + (2.0f * dot_v2v2(sp, l1)) - + (r * r); + + const float i = b * b - 4.0f * a * c; + + float mu; + + if (i < 0.0f) { + /* no intersections */ + return 0; + } + else if (i == 0.0f) { + /* one intersection */ + mu = -b / (2.0f * a); + madd_v2_v2v2fl(r_p1, l1, ldir, mu); + return 1; + } + else if (i > 0.0) { + const float i_sqrt= sqrt(i); /* avoid calc twice */ + + /* first intersection */ + mu = (-b + i_sqrt) / (2.0f * a); + madd_v2_v2v2fl(r_p1, l1, ldir, mu); + + /* second intersection */ + mu = (-b - i_sqrt) / (2.0f * a); + madd_v2_v2v2fl(r_p2, l1, ldir, mu); + return 2; + } + else { + /* math domain error - nan */ + return -1; + } +} + /* -1: colliniar 1: intersection diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 3877e1f9555..3ce84e3a19f 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -410,12 +410,12 @@ static void rna_def_ID_materials(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "ID Materials", "Collection of materials"); func= RNA_def_function(srna, "append", "material_append_id"); - RNA_def_function_ui_description(func, "Add a new material to Mesh."); + RNA_def_function_ui_description(func, "Add a new material to the data block."); parm= RNA_def_pointer(func, "material", "Material", "", "Material to add."); RNA_def_property_flag(parm, PROP_REQUIRED); func= RNA_def_function(srna, "pop", "material_pop_id"); - RNA_def_function_ui_description(func, "Remove a material from Mesh."); + RNA_def_function_ui_description(func, "Remove a material from the data block."); parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Index of material to remove.", 0, INT_MAX); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "material", "Material", "", "Material to remove."); diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index f3fe05cd846..df7d3c66c47 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -641,6 +641,88 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje return ret; } +PyDoc_STRVAR(M_Geometry_intersect_line_sphere_2d_doc, +".. function:: intersect_line_sphere_2d(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" +"\n" +" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" +" returns the intersection\n" +"\n" +" :arg line_a: First point of the first line\n" +" :type line_a: :class:`mathutils.Vector`\n" +" :arg line_b: Second point of the first line\n" +" :type line_b: :class:`mathutils.Vector`\n" +" :arg sphere_co: The center of the sphere\n" +" :type sphere_co: :class:`mathutils.Vector`\n" +" :arg sphere_radius: Radius of the sphere\n" +" :type sphere_radius: sphere_radius\n" +" :return: The intersection points as a pair of vectors or None when there is no intersection\n" +" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyObject* args) +{ + PyObject *ret; + VectorObject *line_a, *line_b, *sphere_co; + float sphere_radius; + int clip= TRUE; + float lambda; + + float isect_a[3]; + float isect_b[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere_2d", + &vector_Type, &line_a, + &vector_Type, &line_b, + &vector_Type, &sphere_co, + &sphere_radius, &clip) + ) { + return NULL; + } + + if( BaseMath_ReadCallback(line_a) == -1 || + BaseMath_ReadCallback(line_b) == -1 || + BaseMath_ReadCallback(sphere_co) == -1 + ) { + return NULL; + } + + ret= PyTuple_New(2); + + switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + /* ret 1 */ + if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + } + /* ret 2 */ + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + break; + case 2: + /* ret 1 */ + if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + } + /* ret 2 */ + if(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { + PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); + } + else { + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + } + break; + default: + PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); + PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); + } + + return ret; +} + PyDoc_STRVAR(M_Geometry_intersect_point_line_doc, ".. function:: intersect_point_line(pt, line_p1, line_p2)\n" "\n" @@ -1006,6 +1088,7 @@ static PyMethodDef M_Geometry_methods[]= { {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, {"intersect_line_plane", (PyCFunction) M_Geometry_intersect_line_plane, METH_VARARGS, M_Geometry_intersect_line_plane_doc}, {"intersect_line_sphere", (PyCFunction) M_Geometry_intersect_line_sphere, METH_VARARGS, M_Geometry_intersect_line_sphere_doc}, + {"intersect_line_sphere_2d", (PyCFunction) M_Geometry_intersect_line_sphere_2d, METH_VARARGS, M_Geometry_intersect_line_sphere_2d_doc}, {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, -- cgit v1.2.3 From 10d775df3d31ce7622ebb74ed7276cff5f1ffe90 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 26 Jun 2011 14:50:19 +0000 Subject: AnimChannels Filtering Refactor - Part 4 This commit is aimed at cleaning up the filtering code by changing the filtering idiom/pattern used. While the old code used a "check then do" approach, the new code does a "grab then assimilate". The main benefits are that: * the code duplication that used to exist has now been removed, making it easier to add new channel types for data * a recursive "peeking" ability now means that the old problems with data existing deep in the tree (i.e. figuring out whether a channel should be shown based on whether it will have any descendents) should now work much better than before. In the process, I've found and fixed a few previously unnoticed bugs with how some channels were constructed, so hopefully things work a bit better now. TODO's: * Action-Group filtering stuff hasn't been refactored yet. This was causing some grief in the past, so I still need to check this carefully. * Material Nodes support (missing in trunk) should be easy to slot in now :) --- source/blender/editors/animation/anim_filter.c | 1438 +++++++++--------------- source/blender/editors/include/ED_anim_api.h | 6 +- 2 files changed, 553 insertions(+), 891 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index cf47c6ac096..ca300892636 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -329,6 +329,35 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) /* ************************************************************ */ /* Blender Data <-- Filter --> Channels to be operated on */ +/* macros to use before/after getting the sub-channels of some channel, + * to abstract away some of the tricky logic involved + * + * cases: + * 1) Graph Edit main area (just data) OR channels visible in Channel List + * 2) If not showing channels, we're only interested in the data (Action Editor's editing) + * 3) We don't care what data, we just care there is some (so that a collapsed + * channel can be kept around). No need to clear channels-flag in order to + * keep expander channels with no sub-data out, as those cases should get + * dealt with by the recursive detection idiom in place. + */ +#define BEGIN_ANIMFILTER_SUBCHANNELS(expanded_check) \ + { \ + int _filter = filter_mode; \ + short _doSubChannels = 0; \ + if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || (expanded_check)) \ + _doSubChannels=1; \ + else if (!(filter_mode & ANIMFILTER_LIST_CHANNELS)) \ + _doSubChannels=2; \ + else {\ + filter_mode |= ANIMFILTER_TMP_PEEK; \ + } + /* ... standard sub-channel filtering can go on here now ... */ +#define END_ANIMFILTER_SUBCHANNELS \ + filter_mode = _filter; \ + } + +/* ............................... */ + /* quick macro to test if AnimData is usable */ #define ANIMDATA_HAS_KEYS(id) ((id)->adt && (id)->adt->action) @@ -338,8 +367,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) /* quick macro to test if AnimData is usable for NLA */ #define ANIMDATA_HAS_NLA(id) ((id)->adt && (id)->adt->nla_tracks.first) - -/* Quick macro to test for all three avove usability tests, performing the appropriate provided +/* Quick macro to test for all three above usability tests, performing the appropriate provided * action for each when the AnimData context is appropriate. * * Priority order for this goes (most important, to least): AnimData blocks, NLA, Drivers, Keyframes. @@ -395,17 +423,31 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) }\ } +/* ............................... */ -/* quick macro to add a pointer to an AnimData block as a channel */ -#define ANIMDATA_ADD_ANIMDATA(id) \ - {\ - ale= make_new_animlistelem((id)->adt, ANIMTYPE_ANIMDATA, (ID *)id);\ +/* Add a new animation channel, taking into account the "peek" flag, which is used to just check + * whether any channels will be added (but without needing them to actually get created). + * + * ! This causes the calling function to return early if we're only "peeking" for channels + */ +// XXX: ale_statement stuff is really a hack for one special case. It shouldn't really be needed... +#define ANIMCHANNEL_NEW_CHANNEL_FULL(channel_data, channel_type, owner_id, ale_statement) \ + if (filter_mode & ANIMFILTER_TMP_PEEK) \ + return 1; \ + else { \ + bAnimListElem *ale= make_new_animlistelem(channel_data, channel_type, (ID *)owner_id); \ if (ale) {\ - BLI_addtail(anim_data, ale);\ - items++;\ - }\ + BLI_addtail(anim_data, ale); \ + items++; \ + ale_statement \ + } \ } +#define ANIMCHANNEL_NEW_CHANNEL(channel_data, channel_type, owner_id) \ + ANIMCHANNEL_NEW_CHANNEL_FULL(channel_data, channel_type, owner_id, {}) + +/* ............................... */ + /* quick macro to test if an anim-channel representing an AnimData block is suitably active */ #define ANIMCHANNEL_ACTIVEOK(ale) \ ( !(filter_mode & ANIMFILTER_ACTIVE) || !(ale->adt) || (ale->adt->flag & ADT_UI_ACTIVE) ) @@ -860,7 +902,7 @@ static short skip_fcurve_with_name (bDopeSheet *ads, FCurve *fcu, ID *owner_id) } /* find the next F-Curve that is usable for inclusion */ -static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) +static FCurve *animfilter_fcurve_next (bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) { FCurve *fcu = NULL; @@ -907,7 +949,7 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct return NULL; } -static size_t animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) +static size_t animfilter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) { FCurve *fcu; size_t items = 0; @@ -921,23 +963,18 @@ static size_t animdata_filter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCu * 4) the fcu pointer is set to the F-Curve after the one we just added, so that we can keep going through * the rest of the F-Curve list without an eternal loop. Back to step 2 :) */ - for (fcu=first; ( (fcu = animdata_filter_fcurve_next(ads, fcu, grp, filter_mode, owner_id)) ); fcu=fcu->next) + for (fcu=first; ( (fcu = animfilter_fcurve_next(ads, fcu, grp, filter_mode, owner_id)) ); fcu=fcu->next) { - bAnimListElem *ale = make_new_animlistelem(fcu, ANIMTYPE_FCURVE, owner_id); - - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(fcu, ANIMTYPE_FCURVE, owner_id); } /* return the number of items added to the list */ return items; } +// TODO: group-filtering stuff still needs cleanup static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) { - bAnimListElem *ale=NULL; bActionGroup *agrp; FCurve *lastchan=NULL; size_t items = 0; @@ -993,7 +1030,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo * * NOTE: use filter_gmode here not filter_mode, since there may be some flags we shouldn't consider under certain circumstances */ - first_fcu = animdata_filter_fcurve_next(ads, agrp->channels.first, agrp, filter_gmode, owner_id); + first_fcu = animfilter_fcurve_next(ads, agrp->channels.first, agrp, filter_gmode, owner_id); /* Bug note: * Selecting open group to toggle visbility of the group, where the F-Curves of the group are not suitable @@ -1010,11 +1047,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo if (filter_gmode & ANIMFILTER_LIST_CHANNELS) { /* filter selection of channel specially here again, since may be open and not subject to previous test */ if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { - ale= make_new_animlistelem(agrp, ANIMTYPE_GROUP, owner_id); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(agrp, ANIMTYPE_GROUP, owner_id); } } @@ -1041,7 +1074,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo { if (!(filter_gmode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { /* NOTE: filter_gmode is used here, not standard filter_mode, since there may be some flags that shouldn't apply */ - items += animdata_filter_fcurves(anim_data, ads, first_fcu, agrp, filter_gmode, owner_id); + items += animfilter_fcurves(anim_data, ads, first_fcu, agrp, filter_gmode, owner_id); } } } @@ -1052,7 +1085,7 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo /* loop over un-grouped F-Curves (only if we're not only considering those channels in the animive group) */ if (!(filter_mode & ANIMFILTER_ACTGROUPED)) { // XXX the 'owner' info here needs review... - items += animdata_filter_fcurves(anim_data, ads, (lastchan)?(lastchan->next):(act->curves.first), NULL, filter_mode, owner_id); + items += animfilter_fcurves(anim_data, ads, (lastchan)?(lastchan->next):(act->curves.first), NULL, filter_mode, owner_id); } /* return the number of items added to the list */ @@ -1067,9 +1100,8 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo * - for normal filtering (i.e. for editing), we only need the NLA-tracks but they can be in 'normal' evaluation * order, i.e. first to last. Otherwise, some tools may get screwed up. */ -static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) +static size_t animfilter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) { - bAnimListElem *ale; NlaTrack *nlt; NlaTrack *first=NULL, *next=NULL; size_t items = 0; @@ -1077,19 +1109,15 @@ static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data /* if showing channels, include active action */ if (filter_mode & ANIMFILTER_LIST_CHANNELS) { /* there isn't really anything editable here, so skip if need editable */ - // TODO: currently, selection isn't checked since it doesn't matter if ((filter_mode & ANIMFILTER_FOREDIT) == 0) { /* just add the action track now (this MUST appear for drawing) * - as AnimData may not have an action, we pass a dummy pointer just to get the list elem created, then * overwrite this with the real value - REVIEW THIS... */ - ale= make_new_animlistelem((void *)(&adt->action), ANIMTYPE_NLAACTION, owner_id); - ale->data= (adt->action) ? adt->action : NULL; - - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL_FULL((void *)(&adt->action), ANIMTYPE_NLAACTION, owner_id, + { + ale->data= adt->action ? adt->action : NULL; + }); } /* first track to include will be the last one if we're filtering by channels */ @@ -1121,12 +1149,7 @@ static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data if ( ANIMCHANNEL_SELOK(SEL_NLT(nlt)) ) { /* only include if this track is active */ if (!(filter_mode & ANIMFILTER_ACTIVE) || (nlt->flag & NLATRACK_ACTIVE)) { - ale= make_new_animlistelem(nlt, ANIMTYPE_NLATRACK, owner_id); - - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(nlt, ANIMTYPE_NLATRACK, owner_id); } } } @@ -1136,10 +1159,40 @@ static size_t animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data return items; } +/* determine what animation data from AnimData block should get displayed */ +static size_t animfilter_block_data (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *id, int filter_mode) +{ + IdAdtTemplate *iat = (IdAdtTemplate*)id; + AnimData *adt = BKE_animdata_from_id(id); + size_t items = 0; + + /* NOTE: this macro is used instead of inlining the logic here, since this sort of filtering is still needed + * in a few places in he rest of the code still - notably for the few cases where special mode-based + * different types of data expanders are required. + */ + ANIMDATA_FILTER_CASES(iat, + { /* AnimData */ + /* specifically filter animdata block */ + ANIMCHANNEL_NEW_CHANNEL(adt, ANIMTYPE_ANIMDATA, id); + }, + { /* NLA */ + items += animfilter_nla(ac, anim_data, ads, adt, filter_mode, id); + }, + { /* Drivers */ + items += animfilter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, id); + }, + { /* Keyframes */ + items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, id); + }); + + return items; +} + + + /* Include ShapeKey Data for ShapeKey Editor */ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key *key, int filter_mode) { - bAnimListElem *ale; size_t items = 0; /* check if channels or only F-Curves */ @@ -1159,12 +1212,7 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K // TODO: consider 'active' too? /* owner-id here must be key so that the F-Curve can be resolved... */ - ale= make_new_animlistelem(kb, ANIMTYPE_SHAPEKEY, (ID *)key); - - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(kb, ANIMTYPE_SHAPEKEY, key); } } } @@ -1173,10 +1221,12 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K /* just use the action associated with the shapekey */ // TODO: somehow manage to pass dopesheet info down here too? if (key->adt) { - if (filter_mode & ANIMFILTER_ANIMDATA) - ANIMDATA_ADD_ANIMDATA(key) - else if (key->adt->action) + if (filter_mode & ANIMFILTER_ANIMDATA) { + ANIMCHANNEL_NEW_CHANNEL(key->adt, ANIMTYPE_ANIMDATA, key); + } + else if (key->adt->action) { items= animdata_filter_action(ac, anim_data, NULL, key->adt->action, filter_mode, (ID *)key); + } } } @@ -1188,7 +1238,6 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K // TODO: should this be amalgamated with the dopesheet filtering code? static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int filter_mode) { - bAnimListElem *ale; bGPdata *gpd; bGPDlayer *gpl; size_t items = 0; @@ -1204,11 +1253,7 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), /* add gpd as channel too (if for drawing, and it has layers) */ if ((filter_mode & ANIMFILTER_LIST_CHANNELS) && (gpd->layers.first)) { /* add to list */ - ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, NULL); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(gpd, ANIMTYPE_GPDATABLOCK, NULL); } /* only add layers if they will be visible (if drawing channels) */ @@ -1220,11 +1265,7 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), /* only if editable */ if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) { /* add to list */ - ale= make_new_animlistelem(gpl, ANIMTYPE_GPLAYER, (ID*)gpd); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } + ANIMCHANNEL_NEW_CHANNEL(gpl, ANIMTYPE_GPLAYER, gpd); } } } @@ -1236,10 +1277,59 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), return items; } +/* NOTE: owner_id is scene, material, or texture block, which is the direct owner of the node tree in question */ +// TODO: how to handle group nodes is still unclear... +static size_t animdata_filter_ds_nodetree (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, bNodeTree *ntree, int filter_mode) +{ + ListBase tmp_data = {NULL, NULL}; + short expanded = 0; + size_t tmp_items = 0; + size_t items = 0; + + /* get datatype specific data first */ + if (owner_id == NULL) + return 0; + + switch (GS(owner_id->name)) { + case ID_SCE: /* compositing nodes */ + { + //Scene *scene = (Scene *)owner_id; + expanded = FILTER_NTREE_SCED(ntree); // XXX: this macro needs renaming... doesn't only do this for scene ones! + } + break; + } + + /* add nodetree animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(expanded) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)ntree, filter_mode); + } + END_ANIMFILTER_SUBCHANNELS; + + /* did we find anything? */ + if (tmp_items) { + /* include data-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(ntree) { + ANIMCHANNEL_NEW_CHANNEL(ntree, ANIMTYPE_DSNTREE, owner_id); + } + } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; + } + + /* return the number of items added to the list */ + return items; +} + /* NOTE: owner_id is either material, lamp, or world block, which is the direct owner of the texture stack in question */ -static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode) +static size_t animdata_filter_ds_textures (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode) { - bAnimListElem *ale=NULL; MTex **mtex = NULL; size_t items=0; int a=0; @@ -1252,21 +1342,18 @@ static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_d case ID_MA: { Material *ma= (Material *)owner_id; - mtex= (MTex**)(&ma->mtex); } break; case ID_LA: { Lamp *la= (Lamp *)owner_id; - mtex= (MTex**)(&la->mtex); } break; case ID_WO: { World *wo= (World *)owner_id; - mtex= (MTex**)(&wo->mtex); } break; @@ -1282,39 +1369,34 @@ static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_d /* firstly check that we actuallly have some textures, by gathering all textures in a temp list */ for (a=0; a < MAX_MTEX; a++) { Tex *tex= (mtex[a]) ? mtex[a]->tex : NULL; - short ok = 0; + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; /* for now, if no texture returned, skip (this shouldn't confuse the user I hope) */ if (ELEM(NULL, tex, tex->adt)) continue; - /* check if ok */ - ANIMDATA_FILTER_CASES(tex, - { /* AnimData blocks - do nothing... */ }, - ok=1;, - ok=1;, - ok=1;) - if (ok == 0) continue; + /* add texture's animation data to temp collection */ + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_TEX_DATA(tex)) + { + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)tex, filter_mode); + } + END_ANIMFILTER_SUBCHANNELS; - /* include texture-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(tex) { - ale= make_new_animlistelem(tex, ANIMTYPE_DSTEX, owner_id); - if (ale) { - BLI_addtail(anim_data, ale); - items++; + /* did we find anything? */ + if (tmp_items) { + /* include texture-expand widget? */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(tex) { + ANIMCHANNEL_NEW_CHANNEL(tex, ANIMTYPE_DSTEX, owner_id); } } - } - - /* add texture's animation data */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_TEX_DATA(tex)) { - ANIMDATA_FILTER_CASES(tex, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, tex->adt, filter_mode, (ID *)tex);, - items += animdata_filter_fcurves(anim_data, ads, tex->adt->drivers.first, NULL, filter_mode, (ID *)tex);, - items += animdata_filter_action(ac, anim_data, ads, tex->adt->action, filter_mode, (ID *)tex);) + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } } @@ -1322,74 +1404,47 @@ static size_t animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_d return items; } -static size_t animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) +static size_t animdata_filter_ds_materials (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { - bAnimListElem *ale=NULL; size_t items=0; int a=0; /* firstly check that we actuallly have some materials, by gathering all materials in a temp list */ for (a=1; a <= ob->totcol; a++) { Material *ma= give_current_material(ob, a); - short ok = 0; + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; - /* for now, if no material returned, skip (this shouldn't confuse the user I hope) */ + /* if no material returned, skip - so that we don't get weird blank entries... */ if (ma == NULL) continue; - /* check if ok */ - ANIMDATA_FILTER_CASES(ma, - { /* AnimData blocks - do nothing... */ }, - ok=1;, - ok=1;, - ok=1;) - - /* need to check textures */ - if (ok == 0 && !(ads->filterflag & ADS_FILTER_NOTEX)) { - int mtInd; - - for (mtInd=0; mtInd < MAX_MTEX; mtInd++) { - MTex *mtex = ma->mtex[mtInd]; - - if (mtex && mtex->tex) { - ANIMDATA_FILTER_CASES(mtex->tex, - { /* AnimData blocks - do nothing... */ }, - ok=1;, - ok=1;, - ok=1;) - } + /* add material's animation data to temp collection */ + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_MAT_OBJD(ma)) + { + /* material's animation data */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)ma, filter_mode); - if (ok) - break; - } + /* textures */ + if (!(ads->filterflag & ADS_FILTER_NOTEX)) + tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, (ID *)ma, filter_mode); } + END_ANIMFILTER_SUBCHANNELS; - if (ok == 0) continue; - - /* include material-expand widget? */ - // hmm... do we need to store the index of this material in the array anywhere? - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(ma) { - ale= make_new_animlistelem(ma, ANIMTYPE_DSMAT, (ID *)ma); - if (ale) { - BLI_addtail(anim_data, ale); - items++; + /* did we find anything? */ + if (tmp_items) { + /* include material-expand widget first */ + // hmm... do we need to store the index of this material in the array anywhere? + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(ma) { + ANIMCHANNEL_NEW_CHANNEL(ma, ANIMTYPE_DSMAT, ma); } } - } - - /* add material's animation data */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_MAT_OBJD(ma)) { - /* material's animation data */ - ANIMDATA_FILTER_CASES(ma, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, ma->adt, filter_mode, (ID *)ma);, - items += animdata_filter_fcurves(anim_data, ads, ma->adt->drivers.first, NULL, filter_mode, (ID *)ma);, - items += animdata_filter_action(ac, anim_data, ads, ma->adt->action, filter_mode, (ID *)ma);) - - /* textures */ - if (!(ads->filterflag & ADS_FILTER_NOTEX)) - items += animdata_filter_dopesheet_texs(ac, anim_data, ads, (ID *)ma, filter_mode); + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } } @@ -1397,43 +1452,41 @@ static size_t animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_d return items; } -static size_t animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) +static size_t animdata_filter_ds_particles (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { - bAnimListElem *ale=NULL; - ParticleSystem *psys = ob->particlesystem.first; + ParticleSystem *psys; size_t items= 0; - for(; psys; psys=psys->next) { - short ok = 0; + for (psys = ob->particlesystem.first; psys; psys=psys->next) { + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; - if(ELEM(NULL, psys->part, psys->part->adt)) + /* if no material returned, skip - so that we don't get weird blank entries... */ + if (ELEM(NULL, psys->part, psys->part->adt)) continue; - ANIMDATA_FILTER_CASES(psys->part, - { /* AnimData blocks - do nothing... */ }, - ok=1;, - ok=1;, - ok=1;) - if (ok == 0) continue; + /* add particle-system's animation data to temp collection */ + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_PART_OBJD(psys->part)) + { + /* material's animation data */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)psys->part, filter_mode); + } + END_ANIMFILTER_SUBCHANNELS; - /* add particle settings? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(psys->part) { - ale = make_new_animlistelem(psys->part, ANIMTYPE_DSPART, (ID *)psys->part); - if (ale) { - BLI_addtail(anim_data, ale); - items++; + /* did we find anything? */ + if (tmp_items) { + /* include particle-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(psys->part) { + ANIMCHANNEL_NEW_CHANNEL(psys->part, ANIMTYPE_DSPART, psys->part); } } - } - - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_PART_OBJD(psys->part)) { - ANIMDATA_FILTER_CASES(psys->part, - { /* AnimData blocks - do nothing... */ }, - items += animdata_filter_nla(ac, anim_data, ads, psys->part->adt, filter_mode, (ID *)psys->part);, - items += animdata_filter_fcurves(anim_data, ads, psys->part->adt->drivers.first, NULL, filter_mode, (ID *)psys->part);, - items += animdata_filter_action(ac, anim_data, ads, psys->part->adt->action, filter_mode, (ID *)psys->part);) + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } } @@ -1441,13 +1494,14 @@ static size_t animdata_filter_dopesheet_particles (bAnimContext *ac, ListBase *a return items; } -static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) +static size_t animdata_filter_ds_obdata (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) { - bAnimListElem *ale=NULL; + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + size_t items= 0; + IdAdtTemplate *iat= ob->data; - AnimData *adt= iat->adt; short type=0, expanded=0; - size_t items= 0; /* get settings based on data type */ switch (ob->type) { @@ -1455,6 +1509,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { Camera *ca= (Camera *)ob->data; + if (ads->filterflag & ADS_FILTER_NOCAM) + return 0; + type= ANIMTYPE_DSCAM; expanded= FILTER_CAM_OBJD(ca); } @@ -1463,6 +1520,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { Lamp *la= (Lamp *)ob->data; + if (ads->filterflag & ADS_FILTER_NOLAM) + return 0; + type= ANIMTYPE_DSLAM; expanded= FILTER_LAM_OBJD(la); } @@ -1473,6 +1533,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { Curve *cu= (Curve *)ob->data; + if (ads->filterflag & ADS_FILTER_NOCUR) + return 0; + type= ANIMTYPE_DSCUR; expanded= FILTER_CUR_OBJD(cu); } @@ -1481,6 +1544,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { MetaBall *mb= (MetaBall *)ob->data; + if (ads->filterflag & ADS_FILTER_NOMBA) + return 0; + type= ANIMTYPE_DSMBALL; expanded= FILTER_MBALL_OBJD(mb); } @@ -1489,6 +1555,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { bArmature *arm= (bArmature *)ob->data; + if (ads->filterflag & ADS_FILTER_NOARM) + return 0; + type= ANIMTYPE_DSARM; expanded= FILTER_ARM_OBJD(arm); } @@ -1497,6 +1566,9 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { Mesh *me= (Mesh *)ob->data; + if (ads->filterflag & ADS_FILTER_NOMESH) + return 0; + type= ANIMTYPE_DSMESH; expanded= FILTER_MESH_OBJD(me); } @@ -1505,447 +1577,348 @@ static size_t animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim { Lattice *lt = (Lattice *)ob->data; + if (ads->filterflag & ADS_FILTER_NOLAT) + return 0; + type= ANIMTYPE_DSLAT; expanded= FILTER_LATTICE_OBJD(lt); } break; } - /* include data-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(iat) { - ale= make_new_animlistelem(iat, type, (ID *)iat); - if (ale) BLI_addtail(anim_data, ale); - } - } - - /* add object-data animation channels? */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || (expanded)) { - /* filtering for channels - nla, drivers, keyframes */ - ANIMDATA_FILTER_CASES(iat, - { /* AnimData blocks - do nothing... */ }, - items+= animdata_filter_nla(ac, anim_data, ads, iat->adt, filter_mode, (ID *)iat);, - items+= animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)iat);, - items+= animdata_filter_action(ac, anim_data, ads, iat->adt->action, filter_mode, (ID *)iat);) - + /* add object data animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(expanded) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)iat, filter_mode); + /* sub-data filtering... */ switch (ob->type) { case OB_LAMP: /* lamp - textures */ { /* textures */ if (!(ads->filterflag & ADS_FILTER_NOTEX)) - items += animdata_filter_dopesheet_texs(ac, anim_data, ads, ob->data, filter_mode); + tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, ob->data, filter_mode); } break; } } + END_ANIMFILTER_SUBCHANNELS; + + /* did we find anything? */ + if (tmp_items) { + /* include data-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(iat) { + ANIMCHANNEL_NEW_CHANNEL(iat, type, iat); + } + } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; + } /* return the number of items added to the list */ return items; } -static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +/* shapekey-level animation */ +static size_t animdata_filter_ds_keyanim (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, Key *key, int filter_mode) { - bAnimListElem *ale=NULL; - AnimData *adt = NULL; - Object *ob= base->object; - Key *key= ob_get_key(ob); - short obdata_ok = 0; + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; size_t items = 0; - /* add this object as a channel first */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by selection */ - if ANIMCHANNEL_SELOK((base->flag & SELECT)) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(ob) { - ale= make_new_animlistelem(base, ANIMTYPE_OBJECT, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - } + /* add shapekey-level animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_SKE_OBJD(key)) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)key, filter_mode); } + END_ANIMFILTER_SUBCHANNELS; - /* if collapsed, don't go any further (unless adding keyframes only) */ - if ((filter_mode & ANIMFILTER_LIST_VISIBLE) && EXPANDED_OBJC(ob) == 0) - return items; - - /* Action, Drivers, or NLA */ - if (ob->adt && !(ads->filterflag & ADS_FILTER_NOOBJ)) { - adt= ob->adt; - ANIMDATA_FILTER_CASES(ob, - { /* AnimData blocks - do nothing... */ }, - { /* nla */ - /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)ob); - }, - { /* drivers */ - /* include drivers-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(adt, ANIMTYPE_FILLDRIVERS, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels (drivers are F-Curves) */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_DRVD(adt)) { - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ob); - } - }, - { /* action (keyframes) */ - /* include action-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels? */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_ACTC(adt->action)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ob); - } + /* did we find anything? */ + if (tmp_items) { + /* include key-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + if ANIMCHANNEL_ACTIVEOK(key) { + ANIMCHANNEL_NEW_CHANNEL(key, ANIMTYPE_DSSKEY, ob); } - ); + } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } + /* return the number of items added to the list */ + return items; +} + +/* object-level animation */ +static size_t animdata_filter_ds_obanim (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int filter_mode) +{ + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + size_t items = 0; - /* ShapeKeys? */ - if ((key) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS)) { - adt= key->adt; - ANIMDATA_FILTER_CASES(key, - { /* AnimData blocks - do nothing... */ }, - { /* nla */ - /* include shapekey-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(key) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - } - - /* add NLA tracks - only if expanded or so */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)key); - }, - { /* drivers */ - /* include shapekey-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add channels */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) { - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)key); - } - }, - { /* action (keyframes) */ - /* include shapekey-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by active status */ - if ANIMCHANNEL_ACTIVEOK(key) { - ale= make_new_animlistelem(key, ANIMTYPE_DSSKEY, (ID *)ob); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - } - - /* add channels */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_SKE_OBJD(key)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)key); - } - } - ); + AnimData *adt = ob->adt; + short type=0, expanded=1; + void *cdata = NULL; + + /* determine the type of expander channels to use */ + // this is the best way to do this for now... + ANIMDATA_FILTER_CASES(ob, + {/* AnimData - no channel, but consider data */}, + {/* NLA - no channel, but consider data */}, + {/* Drivers */ + type = ANIMTYPE_FILLDRIVERS; + cdata = adt; + expanded = EXPANDED_DRVD(adt); + }, + {/* Keyframes */ + type = ANIMTYPE_FILLACTD; + cdata = adt->action; + expanded = EXPANDED_ACTC(adt->action); + }); + + /* add object-level animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(expanded) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)ob, filter_mode); } - - /* Materials? */ - if ((ob->totcol) && !(ads->filterflag & ADS_FILTER_NOMAT)) - items += animdata_filter_dopesheet_mats(ac, anim_data, ads, ob, filter_mode); + END_ANIMFILTER_SUBCHANNELS; - /* Object Data */ - switch (ob->type) { - case OB_CAMERA: /* ------- Camera ------------ */ - { - Camera *ca= (Camera *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOCAM) == 0) { - ANIMDATA_FILTER_CASES(ca, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) + /* did we find anything? */ + if (tmp_items) { + /* include anim-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + if (type != ANIMTYPE_NONE) { + /* NOTE: active-status (and the associated checks) don't apply here... */ + ANIMCHANNEL_NEW_CHANNEL(cdata, type, ob); } } - break; - case OB_LAMP: /* ---------- Lamp ----------- */ - { - Lamp *la= (Lamp *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOLAM) == 0) { - ANIMDATA_FILTER_CASES(la, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) - } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; + } + + /* return the number of items added to the list */ + return items; +} + +/* get animation channels from object2 */ +static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Base *base, int filter_mode) +{ + ListBase tmp_data = {NULL, NULL}; + Object *ob= base->object; + size_t tmp_items = 0; + size_t items = 0; + + /* filter data contained under object first */ + BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_OBJC(ob)) + { + Key *key= ob_get_key(ob); + + /* object-level animation */ + if ((ob->adt) && !(ads->filterflag & ADS_FILTER_NOOBJ)) { + tmp_items += animdata_filter_ds_obanim(ac, &tmp_data, ads, ob, filter_mode); } - break; - case OB_CURVE: /* ------- Curve ---------- */ - case OB_SURF: /* ------- Nurbs Surface ---------- */ - case OB_FONT: /* ------- Text Curve ---------- */ - { - Curve *cu= (Curve *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOCUR) == 0) { - ANIMDATA_FILTER_CASES(cu, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) - } + + /* shape-key */ + if ((key && key->adt) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS)) { + tmp_items += animdata_filter_ds_keyanim(ac, &tmp_data, ads, ob, key, filter_mode); } - break; - case OB_MBALL: /* ------- MetaBall ---------- */ - { - MetaBall *mb= (MetaBall *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOMBA) == 0) { - ANIMDATA_FILTER_CASES(mb, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) - } + + /* materials */ + if ((ob->totcol) && !(ads->filterflag & ADS_FILTER_NOMAT)) { + tmp_items += animdata_filter_ds_materials(ac, &tmp_data, ads, ob, filter_mode); } - break; - case OB_ARMATURE: /* ------- Armature ---------- */ - { - bArmature *arm= (bArmature *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOARM) == 0) { - ANIMDATA_FILTER_CASES(arm, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) - } + + /* object data */ + if (ob->data) { + tmp_items += animdata_filter_ds_obdata(ac, &tmp_data, ads, ob, filter_mode); } - break; - case OB_MESH: /* ------- Mesh ---------- */ - { - Mesh *me= (Mesh *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOMESH) == 0) { - ANIMDATA_FILTER_CASES(me, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) - } + + /* particles */ + if ((ob->particlesystem.first) && !(ads->filterflag & ADS_FILTER_NOPART)) { + tmp_items += animdata_filter_ds_particles(ac, &tmp_data, ads, ob, filter_mode); } - break; - case OB_LATTICE: /* ------- Lattice ---------- */ - { - Lattice *lt= (Lattice *)ob->data; - - if ((ads->filterflag & ADS_FILTER_NOLAT) == 0) { - ANIMDATA_FILTER_CASES(lt, - { /* AnimData blocks - do nothing... */ }, - obdata_ok= 1;, - obdata_ok= 1;, - obdata_ok= 1;) + } + END_ANIMFILTER_SUBCHANNELS; + + /* if we collected some channels, add these to the new list... */ + if (tmp_items) { + /* firstly add object expander if required */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by selection */ + // XXX: double-check on this - most of the time, a lot of tools need to filter out these channels! + if ANIMCHANNEL_SELOK((base->flag & SELECT)) { + /* check if filtering by active status */ + if (ANIMCHANNEL_ACTIVEOK(ob)) { + ANIMCHANNEL_NEW_CHANNEL(base, ANIMTYPE_OBJECT, ob); + } } } - break; + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } - if (obdata_ok) - items += animdata_filter_dopesheet_obdata(ac, anim_data, ads, ob, filter_mode); - - /* particles */ - if (ob->particlesystem.first && !(ads->filterflag & ADS_FILTER_NOPART)) - items += animdata_filter_dopesheet_particles(ac, anim_data, ads, ob, filter_mode); - /* return the number of items added to the list */ + /* return the number of items added */ return items; -} +} -static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, int filter_mode) +static size_t animdata_filter_ds_world (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, World *wo, int filter_mode) { - World *wo= sce->world; - bNodeTree *ntree= sce->nodetree; - AnimData *adt= NULL; - bAnimListElem *ale; + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; size_t items = 0; - /* add scene as a channel first (even if we aren't showing scenes we still need to show the scene's sub-data */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* check if filtering by selection */ - if (ANIMCHANNEL_SELOK( (sce->flag & SCE_DS_SELECTED) )) { - ale= make_new_animlistelem(sce, ANIMTYPE_SCENE, NULL); - if (ale) { - BLI_addtail(anim_data, ale); - items++; + /* add world animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_WOR_SCED(wo)) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)wo, filter_mode); + + /* textures for world */ + if (!(ads->filterflag & ADS_FILTER_NOTEX)) + items += animdata_filter_ds_textures(ac, &tmp_data, ads, (ID *)wo, filter_mode); + } + END_ANIMFILTER_SUBCHANNELS; + + /* did we find anything? */ + if (tmp_items) { + /* include data-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by active status */ + if ANIMCHANNEL_ACTIVEOK(wo) { + ANIMCHANNEL_NEW_CHANNEL(wo, ANIMTYPE_DSWOR, sce); } } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } - /* if collapsed, don't go any further (unless adding keyframes only) */ - if ((filter_mode & ANIMFILTER_LIST_VISIBLE) && (EXPANDED_SCEC(sce) == 0)) - return items; + /* return the number of items added to the list */ + return items; +} + +static size_t animdata_filter_ds_scene (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, int filter_mode) +{ + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + size_t items = 0; + + AnimData *adt = sce->adt; + short type=0, expanded=1; + void *cdata = NULL; + + /* determine the type of expander channels to use */ + // this is the best way to do this for now... + ANIMDATA_FILTER_CASES(sce, + {/* AnimData - no channel, but consider data */}, + {/* NLA - no channel, but consider data */}, + {/* Drivers */ + type = ANIMTYPE_FILLDRIVERS; + cdata = adt; + expanded = EXPANDED_DRVD(adt); + }, + {/* Keyframes */ + type = ANIMTYPE_FILLACTD; + cdata = adt->action; + expanded = EXPANDED_ACTC(adt->action); + }); - /* Action, Drivers, or NLA for Scene */ - if ((ads->filterflag & ADS_FILTER_NOSCE) == 0) { - adt= sce->adt; - ANIMDATA_FILTER_CASES(sce, - { /* AnimData blocks - do nothing... */ }, - { /* nla */ - /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)sce); - }, - { /* drivers */ - /* include drivers-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLDRIVERS, (ID *)sce); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels (drivers are F-Curves) */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_DRVD(adt)) { - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)sce); - } - }, - { /* action */ - /* include action-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(adt->action, ANIMTYPE_FILLACTD, (ID *)sce); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels? */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_ACTC(adt->action)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)sce); - } - } - ) + /* add scene-level animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(expanded) + { + /* animation data filtering */ + tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)sce, filter_mode); } + END_ANIMFILTER_SUBCHANNELS; - /* world */ - if ((wo && wo->adt) && !(ads->filterflag & ADS_FILTER_NOWOR)) { - /* Action, Drivers, or NLA for World */ - adt= wo->adt; - ANIMDATA_FILTER_CASES(wo, - { /* AnimData blocks - do nothing... */ }, - { /* nla */ - /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)wo); - }, - { /* drivers */ - /* include world-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)wo); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels (drivers are F-Curves) */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)/*EXPANDED_DRVD(adt)*/) { - // XXX owner info is messed up now... - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)wo); - } - }, - { /* action */ - /* include world-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(wo, ANIMTYPE_DSWOR, (ID *)sce); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add channels */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)wo); - } + /* did we find anything? */ + if (tmp_items) { + /* include anim-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + if (type != ANIMTYPE_NONE) { + /* NOTE: active-status (and the associated checks) don't apply here... */ + ANIMCHANNEL_NEW_CHANNEL(cdata, type, sce); } - ) + } - /* if expanded, check world textures too */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_WOR_SCED(wo)) { - /* textures for world */ - if (!(ads->filterflag & ADS_FILTER_NOTEX)) - items += animdata_filter_dopesheet_texs(ac, anim_data, ads, (ID *)wo, filter_mode); + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; + } + + /* return the number of items added to the list */ + return items; +} + +static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Scene *sce, int filter_mode) +{ + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + size_t items = 0; + + /* filter data contained under object first */ + BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_SCEC(sce)) + { + bNodeTree *ntree= sce->nodetree; + World *wo= sce->world; + + /* Action, Drivers, or NLA for Scene */ + if ((ads->filterflag & ADS_FILTER_NOSCE) == 0) { + tmp_items += animdata_filter_ds_scene(ac, &tmp_data, ads, sce, filter_mode); } + + /* world */ + if ((wo && wo->adt) && !(ads->filterflag & ADS_FILTER_NOWOR)) { + tmp_items += animdata_filter_ds_world(ac, &tmp_data, ads, sce, wo, filter_mode); + } + + /* nodetree */ + if ((ntree && ntree->adt) && !(ads->filterflag & ADS_FILTER_NONTREE)) { + tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)sce, ntree, filter_mode); + } + + // TODO: one day, when sequencer becomes its own datatype, perhaps it should be included here } - /* nodetree */ - if ((ntree && ntree->adt) && !(ads->filterflag & ADS_FILTER_NONTREE)) { - /* Action, Drivers, or NLA for Nodetree */ - adt= ntree->adt; - ANIMDATA_FILTER_CASES(ntree, - { /* AnimData blocks - do nothing... */ }, - { /* nla */ - /* add NLA tracks */ - items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, (ID *)ntree); - }, - { /* drivers */ - /* include nodetree-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)ntree); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add F-Curve channels (drivers are F-Curves) */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_NTREE_SCED(ntree)/*EXPANDED_DRVD(adt)*/) { - // XXX owner info is messed up now... - items += animdata_filter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, (ID *)ntree); - } - }, - { /* action */ - /* include nodetree-expand widget? */ - if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - ale= make_new_animlistelem(ntree, ANIMTYPE_DSNTREE, (ID *)sce); - if (ale) { - BLI_addtail(anim_data, ale); - items++; - } - } - - /* add channels */ - if (!(filter_mode & ANIMFILTER_LIST_VISIBLE) || FILTER_NTREE_SCED(ntree)) { - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, (ID *)ntree); - } + END_ANIMFILTER_SUBCHANNELS; + + /* if we collected some channels, add these to the new list... */ + if (tmp_items) { + /* firstly add object expander if required */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* check if filtering by selection */ + if ANIMCHANNEL_SELOK((sce->flag & SCE_DS_SELECTED)) { + /* NOTE: active-status doesn't matter for this! */ + ANIMCHANNEL_NEW_CHANNEL(sce, ANIMTYPE_SCENE, sce); } - ) + } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } - /* return the number of items added to the list */ + /* return the number of items added */ return items; } @@ -1954,7 +1927,6 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, { Scene *sce= (Scene *)ads->source; Base *base; - bAnimListElem *ale; size_t items = 0; /* check that we do indeed have a scene */ @@ -1973,73 +1945,14 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, filter_mode |= ANIMFILTER_SELEDIT; } - /* scene-linked animation */ - // TODO: sequencer, composite nodes - are we to include those here too? - { - short sceOk= 0, worOk= 0, nodeOk=0; - - /* check filtering-flags if ok */ - ANIMDATA_FILTER_CASES(sce, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(sce); - sceOk=0; - }, - sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);, - sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);, - sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);) - if (sce->world) { - ANIMDATA_FILTER_CASES(sce->world, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(sce->world); - worOk=0; - }, - worOk= !(ads->filterflag & ADS_FILTER_NOWOR);, - worOk= !(ads->filterflag & ADS_FILTER_NOWOR);, - worOk= !(ads->filterflag & ADS_FILTER_NOWOR);) - } - if (sce->nodetree) { - ANIMDATA_FILTER_CASES(sce->nodetree, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(sce->nodetree); - nodeOk=0; - }, - nodeOk= !(ads->filterflag & ADS_FILTER_NONTREE);, - nodeOk= !(ads->filterflag & ADS_FILTER_NONTREE);, - nodeOk= !(ads->filterflag & ADS_FILTER_NONTREE);) - } - - /* if only F-Curves with visible flags set can be shown, check that - * datablocks haven't been set to invisible - */ - if (filter_mode & ANIMFILTER_CURVE_VISIBLE) { - if ((sce->adt) && (sce->adt->flag & ADT_CURVES_NOT_VISIBLE)) - sceOk= worOk= nodeOk= 0; - } - - /* check if not all bad (i.e. so there is something to show) */ - if ( !(!sceOk && !worOk && !nodeOk) ) { - /* add scene data to the list of filtered channels */ - items += animdata_filter_dopesheet_scene(ac, anim_data, ads, sce, filter_mode); - } - } - + /* scene-linked animation - e.g. world, compositing nodes, scene anim (including sequencer currently) */ + items += animdata_filter_dopesheet_scene(ac, anim_data, ads, sce, filter_mode); - /* loop over all bases in the scene */ + /* loop over all bases (i.e.objects) in the scene */ for (base= sce->base.first; base; base= base->next) { /* check if there's an object (all the relevant checks are done in the ob-function) */ if (base->object) { Object *ob= base->object; - Key *key= ob_get_key(ob); - short actOk=1, keyOk=1, dataOk=1, matOk=1, partOk=1; /* firstly, check if object can be included, by the following factors: * - if only visible, must check for layer and also viewport visibility @@ -2047,7 +1960,8 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, * as user option controls whether sets of channels get included while * tool-flag takes into account collapsed/open channels too * - if only selected, must check if object is selected - * - there must be animation data to edit + * - there must be animation data to edit (this is done recursively as we + * try to add the channels) */ if ((filter_mode & ANIMFILTER_DATA_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) { /* layer visibility - we check both object and base, since these may not be in sync yet */ @@ -2065,275 +1979,21 @@ static size_t animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, continue; } - /* additionally, dopesheet filtering also affects what objects to consider */ - { - /* check selection and object type filters */ - if ( (ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) /*|| (base == sce->basact)*/) ) { - /* only selected should be shown */ - continue; - } - - /* check if object belongs to the filtering group if option to filter - * objects by the grouped status is on - * - used to ease the process of doing multiple-character choreographies - */ - if (ads->filterflag & ADS_FILTER_ONLYOBGROUP) { - if (object_in_group(ob, ads->filter_grp) == 0) - continue; - } - - /* check filters for datatypes */ - /* object */ - actOk= 0; - if (!(ads->filterflag & ADS_FILTER_NOOBJ)) { - ANIMDATA_FILTER_CASES(ob, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(ob); - actOk=0; - }, - actOk= 1;, - actOk= 1;, - actOk= 1;) - } - - keyOk= 0; - if ((key) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS)) { - /* shapekeys */ - ANIMDATA_FILTER_CASES(key, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(key); - keyOk=0; - }, - keyOk= 1;, - keyOk= 1;, - keyOk= 1;) - } - - /* materials - only for geometric types */ - matOk= 0; /* by default, not ok... */ - if ( !(ads->filterflag & ADS_FILTER_NOMAT) && (ob->totcol) && - ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL) ) - { - int a; - - /* firstly check that we actuallly have some materials */ - for (a=1; a <= ob->totcol; a++) { - Material *ma= give_current_material(ob, a); - - if (ma) { - /* if material has relevant animation data, break */ - ANIMDATA_FILTER_CASES(ma, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(ma); - matOk=0; - }, - matOk= 1;, - matOk= 1;, - matOk= 1;) - - if (matOk) - break; - - /* textures? */ - // TODO: make this a macro that is used in the other checks too - // NOTE: this has little use on its own, since the actual filtering still ignores if no anim on the data - if (!(ads->filterflag & ADS_FILTER_NOTEX)) { - int mtInd; - - for (mtInd= 0; mtInd < MAX_MTEX; mtInd++) { - MTex *mtex= ma->mtex[mtInd]; - - if (mtex && mtex->tex) { - /* if texture has relevant animation data, break */ - ANIMDATA_FILTER_CASES(mtex->tex, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(mtex->tex); - matOk=0; - }, - matOk= 1;, - matOk= 1;, - matOk= 1;) - - if (matOk) - break; - } - } - } - - } - } - } - - /* data */ - switch (ob->type) { - case OB_CAMERA: /* ------- Camera ------------ */ - { - Camera *ca= (Camera *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(ca, - if ((ads->filterflag & ADS_FILTER_NOCAM)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(ca); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOCAM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOCAM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOCAM);) - } - break; - case OB_LAMP: /* ---------- Lamp ----------- */ - { - Lamp *la= (Lamp *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(la, - if ((ads->filterflag & ADS_FILTER_NOLAM)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(la); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAM);) - } - break; - case OB_CURVE: /* ------- Curve ---------- */ - case OB_SURF: /* ------- Nurbs Surface ---------- */ - case OB_FONT: /* ------- Text Curve ---------- */ - { - Curve *cu= (Curve *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(cu, - if ((ads->filterflag & ADS_FILTER_NOCUR)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(cu); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOCUR);, - dataOk= !(ads->filterflag & ADS_FILTER_NOCUR);, - dataOk= !(ads->filterflag & ADS_FILTER_NOCUR);) - } - break; - case OB_MBALL: /* ------- MetaBall ---------- */ - { - MetaBall *mb= (MetaBall *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(mb, - if ((ads->filterflag & ADS_FILTER_NOMBA)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(mb); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOMBA);, - dataOk= !(ads->filterflag & ADS_FILTER_NOMBA);, - dataOk= !(ads->filterflag & ADS_FILTER_NOMBA);) - } - break; - case OB_ARMATURE: /* ------- Armature ---------- */ - { - bArmature *arm= (bArmature *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(arm, - if ((ads->filterflag & ADS_FILTER_NOARM)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(arm); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOARM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOARM);, - dataOk= !(ads->filterflag & ADS_FILTER_NOARM);) - } - break; - case OB_MESH: /* ------- Mesh ---------- */ - { - Mesh *me= (Mesh *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(me, - if ((ads->filterflag & ADS_FILTER_NOMESH)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(me); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);, - dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);, - dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);) - } - break; - case OB_LATTICE: /* ------- Lattice ---------- */ - { - Lattice *lt= (Lattice *)ob->data; - dataOk= 0; - ANIMDATA_FILTER_CASES(lt, - if ((ads->filterflag & ADS_FILTER_NOLAT)==0) { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(lt); - dataOk=0; - }, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);, - dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);) - } - break; - default: /* --- other --- */ - dataOk= 0; - break; - } - - /* particles */ - partOk = 0; - if (!(ads->filterflag & ADS_FILTER_NOPART) && ob->particlesystem.first) { - ParticleSystem *psys = ob->particlesystem.first; - for(; psys; psys=psys->next) { - if (psys->part) { - /* if particlesettings has relevant animation data, break */ - ANIMDATA_FILTER_CASES(psys->part, - { - /* for the special AnimData blocks only case, we only need to add - * the block if it is valid... then other cases just get skipped (hence ok=0) - */ - ANIMDATA_ADD_ANIMDATA(psys->part); - partOk=0; - }, - partOk= 1;, - partOk= 1;, - partOk= 1;) - } - - if (partOk) - break; - } - } - - /* check if all bad (i.e. nothing to show) */ - if (!actOk && !keyOk && !dataOk && !matOk && !partOk) - continue; + /* check selection and object type filters */ + if ( (ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) /*|| (base == sce->basact)*/) ) { + /* only selected should be shown */ + continue; } + /* check if object belongs to the filtering group if option to filter + * objects by the grouped status is on + * - used to ease the process of doing multiple-character choreographies + */ + if (ads->filterflag & ADS_FILTER_ONLYOBGROUP) { + if (object_in_group(ob, ads->filter_grp) == 0) + continue; + } + /* since we're still here, this object should be usable */ items += animdata_filter_dopesheet_ob(ac, anim_data, ads, base, filter_mode); } diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index e8e179e8c84..7853bd0b5c2 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -184,7 +184,6 @@ typedef enum eAnim_KeyType { /* ----------------- Filtering -------------------- */ /* filtering flags - under what circumstances should a channel be returned */ -// TODO: flag to just test if there's any channel inside worthy of being added - return 1 as soon as this is encountered, but don't add typedef enum eAnimFilter_Flags { /* data which channel represents is fits the dopesheet filters (i.e. scene visibility criteria) */ // XXX: it's hard to think of any examples where this *ISN'T* the case... perhaps becomes implicit? @@ -216,7 +215,10 @@ typedef enum eAnimFilter_Flags { ANIMFILTER_ANIMDATA = (1<<10), /* duplicate entries for animation data attached to multi-user blocks must not occur */ - ANIMFILTER_NODUPLIS = (1<<11) + ANIMFILTER_NODUPLIS = (1<<11), + + /* for checking if we should keep some collapsed channel around (internal use only!) */ + ANIMFILTER_TMP_PEEK = (1<<30) } eAnimFilter_Flags; /* ---------- Flag Checking Macros ------------ */ -- cgit v1.2.3 From 12e5d69af0cbb7c42601ea2541a9bdd536147d42 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 26 Jun 2011 15:35:02 +0000 Subject: pose channel -> pose matrix import ( in progress ) --- source/blender/collada/AnimationImporter.cpp | 34 ++++++++++- source/blender/collada/ArmatureImporter.cpp | 85 ++++++++++++++++++++++++---- source/blender/collada/ArmatureImporter.h | 9 ++- 3 files changed, 112 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 69beac653d2..3b33ad0dee6 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -705,8 +705,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , return; } - - /*float irest_dae[4][4]; + /* + float irest_dae[4][4]; float rest[4][4], irest[4][4]; if (is_joint) { @@ -776,6 +776,36 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , ob->rotmode = ROT_MODE_EUL; } } + // if (is_joint) + //{ + // float mat[4][4]; + // float obmat[4][4]; + + // // object-space + // get_node_mat(obmat, node, NULL, NULL); + // bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + // + // bArmature * arm = (bArmature *) ob->data; + // + // Bone *cur = get_named_bone( arm , bone_name ); + + // if (cur->parent){ + // COLLADAFW::Node * parent = armature_importer->joint_parent_map.find(node->getUniqueId()); + // float[4][4] parent_mat; + // get_node_mat ( parent_mat, parent, NULL, NULL ); + // mul_m4_m4m4(mat, obmat, parent_mat); + // bPoseChannel *parchan = get_pose_channel(ob->pose, cur->parent->name); + // if ( parchan && chan) + // mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + // } + // else { + // copy_m4_m4(mat, obmat); + // float invObmat[4][4]; + // invert_m4_m4(invObmat, ob->obmat); + // if(pchan) + // mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + // } + //} } } diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 48e0d99535b..df35e0ad986 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -79,7 +79,7 @@ JointData *ArmatureImporter::get_joint_data(COLLADAFW::Node *node); } #endif void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *parent, int totchild, - float parent_mat[][4], bArmature *arm) + float parent_mat[][4], Object * ob_arm) { float mat[4][4]; float obmat[4][4]; @@ -88,19 +88,35 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p get_node_mat(obmat, node, NULL, NULL); // get world-space - if (parent) - mul_m4_m4m4(mat, obmat, parent_mat); - else - copy_m4_m4(mat, obmat); + - EditBone *bone = ED_armature_edit_bone_add(arm, (char*)bc_get_joint_name(node)); + EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node)); totbone++; + + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, (char*)bc_get_joint_name(node)); if (parent) bone->parent = parent; + + // get world-space + if (parent){ + mul_m4_m4m4(mat, obmat, parent_mat); + bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parent->name); + if ( parchan && pchan) + mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + } + else { + copy_m4_m4(mat, obmat); + float invObmat[4][4]; + invert_m4_m4(invObmat, ob_arm->obmat); + if(pchan) + mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + } + // set head copy_v3_v3(bone->head, mat[3]); - + + // set tail, don't set it to head because 0-length bones are not allowed float vec[3] = {0.0f, 0.5f, 0.0f}; add_v3_v3v3(bone->tail, bone->head, vec); @@ -130,7 +146,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p COLLADAFW::NodePointerArray& children = node->getChildNodes(); for (unsigned int i = 0; i < children.getCount(); i++) { - create_unskinned_bone( children[i], bone, children.getCount(), mat, arm); + create_unskinned_bone( children[i], bone, children.getCount(), mat, ob_arm); } // in second case it's not a leaf bone, but we handle it the same way @@ -383,16 +399,14 @@ void ArmatureImporter::create_armature_bones( ) check if bones have already been created for a given joint */ leaf_bone_length = FLT_MAX; - create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, (bArmature*)ob_arm->data); + create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); fix_leaf_bones(); // exit armature edit mode + // set_pose(ob_arm , *ri, NULL, NULL ); - //if (joint_parent_map.find((*ri)->getUniqueId()) != joint_parent_map.end() && ob_arm->parent!=NULL) - // ob_arm->parent = joint_parent_map[(*ri)->getUniqueId()]; - unskinned_armature_map[(*ri)->getUniqueId()] = ob_arm; ED_armature_from_edit(ob_arm); @@ -523,6 +537,51 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) // is a child of a node (not joint), root should be true since // this is where we build armature bones from +//void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node , EditBone *parent, float parent_mat[][4]) +//{ +// char * bone_name = (char *) bc_get_joint_name ( root_node); +// float mat[4][4]; +// float obmat[4][4]; +// +// bArmature * arm = (bArmature * ) ob_arm-> data ; +// EditBone *edbone = NULL ; +// for (edBone=arm->edbo->first; edBone; edBone=edBone->next){ +// bone = get_named_bone_bonechildren (curBone, name); +// if (bone) +// return bone; +// } +// +// // object-space +// get_node_mat(obmat, root_node, NULL, NULL); +// +// //if(*edbone) +// bPoseChannel * pchan = get_pose_channel(ob_arm -> pose , bone_name); +// //else fprintf ( "", +// +// // get world-space +// if (parent){ +// mul_m4_m4m4(mat, obmat, parent_mat); +// bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parent->name); +// +// mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); +// } +// else { +// copy_m4_m4(mat, obmat); +// float invObmat[4][4]; +// invert_m4_m4(invObmat, ob_arm->obmat); +// mul_m4_m4m4(pchan->pose_mat, mat, invObmat); +// } +// +// +// +// +// COLLADAFW::NodePointerArray& children = root_node->getChildNodes(); +// for (unsigned int i = 0; i < children.getCount(); i++) { +// set_pose(ob_arm, children[i], edbone, mat); +// } +// +//} + void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *parent, Scene *sce) { joint_by_uid[node->getUniqueId()] = node; @@ -657,6 +716,7 @@ bool ArmatureImporter::write_controller(const COLLADAFW::Controller* controller) return true; } + COLLADAFW::UniqueId *ArmatureImporter::get_geometry_uid(const COLLADAFW::UniqueId& controller_uid) { if (geom_uid_by_controller_uid.find(controller_uid) == geom_uid_by_controller_uid.end()) @@ -703,3 +763,4 @@ bool ArmatureImporter::get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint) return found; } + diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index f9cb09dca19..d78a41af803 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -107,11 +107,14 @@ private: float parent_mat[][4], bArmature *arm); void create_unskinned_bone(COLLADAFW::Node *node, EditBone *parent, int totchild, - float parent_mat[][4], bArmature *arm); + float parent_mat[][4], Object * ob_arm); void add_leaf_bone(float mat[][4], EditBone *bone); void fix_leaf_bones(); + +// void set_pose ( Object * ob_arm , COLLADAFW::Node * root_node , EditBone *parent, float parent_mat[][4]); + #if 0 void set_leaf_bone_shapes(Object *ob_arm); @@ -156,13 +159,15 @@ public: bool write_controller(const COLLADAFW::Controller* controller); COLLADAFW::UniqueId *get_geometry_uid(const COLLADAFW::UniqueId& controller_uid); - + Object *get_armature_for_joint(COLLADAFW::Node *node); void get_rna_path_for_joint(COLLADAFW::Node *node, char *joint_path, size_t count); // gives a world-space mat bool get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint); + + }; #endif -- cgit v1.2.3 From 1186bdfc0864475be2395591b3b15c7a9d515a84 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 26 Jun 2011 17:01:10 +0000 Subject: Putting back blender.org and release number in info header. Worked always great for tutorials in past, to check what's been used. --- source/blender/blenkernel/intern/blender.c | 6 +++--- source/blender/editors/space_info/info_stats.c | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 633a05589cd..8b4bbbd3c83 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -97,7 +97,7 @@ UserDef U; /* ListBase = {NULL, NULL}; */ short ENDIAN_ORDER; -static char versionstr[48]= ""; +char versionstr[48]= ""; /* ********** free ********** */ @@ -133,9 +133,9 @@ void initglobals(void) ENDIAN_ORDER= (((char*)&ENDIAN_ORDER)[0])? L_ENDIAN: B_ENDIAN; if(BLENDER_SUBVERSION) - BLI_snprintf(versionstr, sizeof(versionstr), "www.blender.org %d.%d", BLENDER_VERSION, BLENDER_SUBVERSION); + BLI_snprintf(versionstr, sizeof(versionstr), "blender.org %d.%d", BLENDER_VERSION, BLENDER_SUBVERSION); else - BLI_snprintf(versionstr, sizeof(versionstr), "www.blender.org %d", BLENDER_VERSION); + BLI_snprintf(versionstr, sizeof(versionstr), "blender.org %d", BLENDER_VERSION); #ifdef _WIN32 // FULLSCREEN G.windowstate = G_WINDOWSTATE_USERDEF; diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c index 42ee2112fe8..0abfd4b71a1 100644 --- a/source/blender/editors/space_info/info_stats.c +++ b/source/blender/editors/space_info/info_stats.c @@ -357,13 +357,14 @@ static void stats_update(Scene *scene) } if(!scene->stats) - scene->stats= MEM_mallocN(sizeof(SceneStats), "SceneStats"); + scene->stats= MEM_callocN(sizeof(SceneStats), "SceneStats"); *(scene->stats)= stats; } static void stats_string(Scene *scene) { + extern char versionstr[]; /* from blender.c */ SceneStats *stats= scene->stats; Object *ob= (scene->basact)? scene->basact->object: NULL; uintptr_t mem_in_use, mmap_in_use; @@ -379,6 +380,8 @@ static void stats_string(Scene *scene) sprintf(s, " (%.2fM)", (double)((mmap_in_use)>>10)/1024.0); s= stats->infostr; + + s+= sprintf(s, "%s | ", versionstr); if(scene->obedit) { if(ob_get_keyblock(scene->obedit)) -- cgit v1.2.3 From 31f0b6639ac4f7f9748baea1844abefeeec64d7c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 26 Jun 2011 17:16:06 +0000 Subject: more compact code for recent sphere/line intersection functions. --- source/blender/python/generic/mathutils_geometry.c | 127 +++++++++------------ 1 file changed, 54 insertions(+), 73 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index df7d3c66c47..55c1e69d558 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -1,4 +1,4 @@ -/* +/* * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** @@ -573,11 +573,9 @@ PyDoc_STRVAR(M_Geometry_intersect_line_sphere_doc, ); static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObject* args) { - PyObject *ret; VectorObject *line_a, *line_b, *sphere_co; float sphere_radius; int clip= TRUE; - float lambda; float isect_a[3]; float isect_b[3]; @@ -602,45 +600,38 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje PyErr_SetString(PyExc_RuntimeError, "geometry.intersect_line_sphere(...) can't use 2D Vectors"); return NULL; } + else { + short use_a= TRUE; + short use_b= TRUE; + float lambda; + + PyObject *ret= PyTuple_New(2); + + switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + use_b= FALSE; + break; + case 2: + if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if(!(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + break; + default: + use_a= FALSE; + use_b= FALSE; + } - ret= PyTuple_New(2); + if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { - case 1: - /* ret 1 */ - if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - } - /* ret 2 */ - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - break; - case 2: - /* ret 1 */ - if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - } - /* ret 2 */ - if(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - } - break; - default: - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - } + if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } - return ret; + return ret; + } } +/* keep in sync with M_Geometry_intersect_line_sphere */ PyDoc_STRVAR(M_Geometry_intersect_line_sphere_2d_doc, ".. function:: intersect_line_sphere_2d(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" "\n" @@ -660,11 +651,9 @@ PyDoc_STRVAR(M_Geometry_intersect_line_sphere_2d_doc, ); static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyObject* args) { - PyObject *ret; VectorObject *line_a, *line_b, *sphere_co; float sphere_radius; int clip= TRUE; - float lambda; float isect_a[3]; float isect_b[3]; @@ -684,43 +673,35 @@ static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyO ) { return NULL; } + else { + short use_a= TRUE; + short use_b= TRUE; + float lambda; + + PyObject *ret= PyTuple_New(2); + + switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + use_b= FALSE; + break; + case 2: + if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if(!(!clip || (((lambda= line_point_factor_v2(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + break; + default: + use_a= FALSE; + use_b= FALSE; + } - ret= PyTuple_New(2); + if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { - case 1: - /* ret 1 */ - if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - } - /* ret 2 */ - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - break; - case 2: - /* ret 1 */ - if(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - } - /* ret 2 */ - if(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f))) { - PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); - } - else { - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - } - break; - default: - PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); - PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); - } + if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } - return ret; + return ret; + } } PyDoc_STRVAR(M_Geometry_intersect_point_line_doc, -- cgit v1.2.3 From 87f242fab09bcdd1eebaa898d2b4ce7caa6a31e4 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 26 Jun 2011 18:56:06 +0000 Subject: set_pose function completed. Algorithms to be checked. (Still not the desired results ) --- source/blender/collada/ArmatureImporter.cpp | 88 ++++++++++++++--------------- source/blender/collada/ArmatureImporter.h | 2 +- 2 files changed, 43 insertions(+), 47 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index df35e0ad986..ad8ad690ef5 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -405,11 +405,12 @@ void ArmatureImporter::create_armature_bones( ) // exit armature edit mode - // set_pose(ob_arm , *ri, NULL, NULL ); - unskinned_armature_map[(*ri)->getUniqueId()] = ob_arm; ED_armature_from_edit(ob_arm); + + set_pose(ob_arm , *ri, NULL, NULL ); + ED_armature_edit_free(ob_arm); DAG_id_tag_update(&ob_arm->id, OB_RECALC_OB|OB_RECALC_DATA); } @@ -537,50 +538,45 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) // is a child of a node (not joint), root should be true since // this is where we build armature bones from -//void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node , EditBone *parent, float parent_mat[][4]) -//{ -// char * bone_name = (char *) bc_get_joint_name ( root_node); -// float mat[4][4]; -// float obmat[4][4]; -// -// bArmature * arm = (bArmature * ) ob_arm-> data ; -// EditBone *edbone = NULL ; -// for (edBone=arm->edbo->first; edBone; edBone=edBone->next){ -// bone = get_named_bone_bonechildren (curBone, name); -// if (bone) -// return bone; -// } -// -// // object-space -// get_node_mat(obmat, root_node, NULL, NULL); -// -// //if(*edbone) -// bPoseChannel * pchan = get_pose_channel(ob_arm -> pose , bone_name); -// //else fprintf ( "", -// -// // get world-space -// if (parent){ -// mul_m4_m4m4(mat, obmat, parent_mat); -// bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parent->name); -// -// mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); -// } -// else { -// copy_m4_m4(mat, obmat); -// float invObmat[4][4]; -// invert_m4_m4(invObmat, ob_arm->obmat); -// mul_m4_m4m4(pchan->pose_mat, mat, invObmat); -// } -// -// -// -// -// COLLADAFW::NodePointerArray& children = root_node->getChildNodes(); -// for (unsigned int i = 0; i < children.getCount(); i++) { -// set_pose(ob_arm, children[i], edbone, mat); -// } -// -//} +void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node , char *parentname, float parent_mat[][4]) +{ + char * bone_name = (char *) bc_get_joint_name ( root_node); + float mat[4][4]; + float obmat[4][4]; + + bArmature * arm = (bArmature * ) ob_arm-> data ; + EditBone *edbone = NULL ; + + // object-space + get_node_mat(obmat, root_node, NULL, NULL); + + //if(*edbone) + bPoseChannel * pchan = get_pose_channel(ob_arm -> pose , bone_name); + //else fprintf ( "", + + // get world-space + if (parentname){ + mul_m4_m4m4(mat, obmat, parent_mat); + bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parentname); + + mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + } + else { + copy_m4_m4(mat, obmat); + float invObmat[4][4]; + invert_m4_m4(invObmat, ob_arm->obmat); + mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + } + + + + + COLLADAFW::NodePointerArray& children = root_node->getChildNodes(); + for (unsigned int i = 0; i < children.getCount(); i++) { + set_pose(ob_arm, children[i], bone_name, mat); + } + +} void ArmatureImporter::add_joint(COLLADAFW::Node *node, bool root, Object *parent, Scene *sce) { diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index d78a41af803..2471e97007c 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -113,7 +113,7 @@ private: void fix_leaf_bones(); -// void set_pose ( Object * ob_arm , COLLADAFW::Node * root_node , EditBone *parent, float parent_mat[][4]); + void set_pose ( Object * ob_arm , COLLADAFW::Node * root_node ,char * parentname, float parent_mat[][4]); #if 0 -- cgit v1.2.3 From 33e554799bd69e888b5114ba92871f8de94a8597 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 27 Jun 2011 03:36:14 +0000 Subject: Minor warning cleanup & fix - comment/remove assignments from values to themselves. - add case break statements (no functional change but some source code checkers notice). - fix python errors when the sculpt brush is None. --- source/blender/editors/object/object_bake.c | 1 - source/blender/editors/transform/transform_constraints.c | 8 ++++---- source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c | 1 + source/blender/nodes/intern/CMP_nodes/CMP_glare.c | 1 + source/blender/nodes/intern/CMP_nodes/CMP_rotate.c | 1 + source/blender/python/generic/mathutils_Matrix.c | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index cc9a6f7f5f0..57f6c9de88e 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -852,7 +852,6 @@ static void finish_images(MultiresBakeRender *bkr) for(link= bkr->image.first; link; link= link->next) { Image *ima= (Image*)link->data; - int i; ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); if(ibuf->x<=0 || ibuf->y<=0) diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 0ca0812f050..be5f539431f 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -105,8 +105,8 @@ void constraintNumInput(TransInfo *t, float vec[3]) if (getConstraintSpaceDimension(t) == 2) { int axis = mode & (CON_AXIS0|CON_AXIS1|CON_AXIS2); if (axis == (CON_AXIS0|CON_AXIS1)) { - vec[0] = vec[0]; - vec[1] = vec[1]; + /* vec[0] = vec[0]; */ /* same */ + /* vec[1] = vec[1]; */ /* same */ vec[2] = nval; } else if (axis == (CON_AXIS1|CON_AXIS2)) { @@ -115,14 +115,14 @@ void constraintNumInput(TransInfo *t, float vec[3]) vec[0] = nval; } else if (axis == (CON_AXIS0|CON_AXIS2)) { - vec[0] = vec[0]; + /* vec[0] = vec[0]; */ /* same */ vec[2] = vec[1]; vec[1] = nval; } } else if (getConstraintSpaceDimension(t) == 1) { if (mode & CON_AXIS0) { - vec[0] = vec[0]; + /* vec[0] = vec[0]; */ /* same */ vec[1] = nval; vec[2] = nval; } diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c index b32c531d8f9..e395716f36d 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c @@ -97,6 +97,7 @@ static void do_channel_matte(bNode *node, float *out, float *in) default: break; } + break; } default: break; diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c b/source/blender/nodes/intern/CMP_nodes/CMP_glare.c index 1a339b45a05..2e0822a4511 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_glare.c @@ -467,6 +467,7 @@ static void node_composit_exec_glare(void *UNUSED(data), bNode *node, bNodeStack case 2: default: streaks(ndg, new, src); + break; } free_compbuf(src); diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c index b6b1764ff0f..eccac4f0e6d 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c @@ -97,6 +97,7 @@ static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStac break; case 2: bicubic_interpolation(ibuf, obuf, u, v, xo, yo); + break; } } diff --git a/source/blender/python/generic/mathutils_Matrix.c b/source/blender/python/generic/mathutils_Matrix.c index 4b7f9dc0d97..bed7dd12f08 100644 --- a/source/blender/python/generic/mathutils_Matrix.c +++ b/source/blender/python/generic/mathutils_Matrix.c @@ -779,7 +779,7 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self) for(blank_columns = (4 - self->col_size); blank_columns > 0; blank_columns--){ self->contigPtr[new_pos + blank_columns] = 0.0f; } - for(curr_pos = curr_pos; curr_pos >= first_row_elem; curr_pos--){ + for( ; curr_pos >= first_row_elem; curr_pos--){ self->contigPtr[new_pos] = self->contigPtr[curr_pos]; new_pos--; } -- cgit v1.2.3 From d7cea716c57a7195312fb327d3294bc8b9981a68 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Mon, 27 Jun 2011 03:54:22 +0000 Subject: == Multires == Fix for bug #27710, 'Multires lost from 2.49 file in 2.5x' Reported by Gaia Clary. Problem was that the old multires data didn't flush changes to vertices out to the Multires structure on filesave. So, recent bits of sculpting could be lost if the multires level wasn't changed before filesave. We already had code to deal with missing multires vertex data, which simply copies the Mesh vertex data into the multires vertex data if it matches the number of vertices in the highest level. Moved this code up a bit so that we always make this copy if the numbers match up. Was able to reproduce the bug fresh in 2.49b, and confirmed that the fix works. However, this does not help if changes were sculpted on a multires level other than the highest level and saved without a subsequent level change. --- source/blender/blenloader/intern/readfile.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index bd1764b2dc9..2637e114fbc 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3538,6 +3538,18 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh) mesh->mr->edge_creases= newdataadr(fd, mesh->mr->edge_creases); mesh->mr->verts = newdataadr(fd, mesh->mr->verts); + + /* If mesh has the same number of vertices as the + highest multires level, load the current mesh verts + into multires and discard the old data. Needed + because some saved files either do not have a verts + array, or the verts array contains out-of-date + data. */ + if(mesh->totvert == ((MultiresLevel*)mesh->mr->levels.last)->totvert) { + if(mesh->mr->verts) + MEM_freeN(mesh->mr->verts); + mesh->mr->verts = MEM_dupallocN(mesh->mvert); + } for(; lvl; lvl= lvl->next) { lvl->verts= newdataadr(fd, lvl->verts); @@ -3547,16 +3559,11 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh) } } - /* Gracefully handle corrupted mesh */ + /* if multires is present but has no valid vertex data, + there's no way to recover it; silently remove multires */ if(mesh->mr && !mesh->mr->verts) { - /* If totals match, simply load the current mesh verts into multires */ - if(mesh->totvert == ((MultiresLevel*)mesh->mr->levels.last)->totvert) - mesh->mr->verts = MEM_dupallocN(mesh->mvert); - else { - /* Otherwise, we can't recover the data, silently remove multires */ - multires_free(mesh->mr); - mesh->mr = NULL; - } + multires_free(mesh->mr); + mesh->mr = NULL; } if((fd->flags & FD_FLAGS_SWITCH_ENDIAN) && mesh->tface) { -- cgit v1.2.3 From b6bc47eb098261189c63b3aecb806960db6235e1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 27 Jun 2011 03:54:33 +0000 Subject: AnimChannelFiltering - Material Nodes support Animation for Material nodes is now shown in Animation Editors :) --- .../editors/animation/anim_channels_defines.c | 51 +++++++++++++++++++--- source/blender/editors/animation/anim_filter.c | 23 +++------- source/blender/editors/include/ED_anim_api.h | 7 +-- source/blender/editors/space_nla/nla_draw.c | 43 +++++++++++++++++- 4 files changed, 98 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index c3e79d787e1..c4246ab534c 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -259,23 +259,53 @@ static short acf_generic_basic_offset(bAnimContext *ac, bAnimListElem *ale) return 0; } +/* offset based on nodetree type */ +static short acf_nodetree_rootType_offset(bNodeTree *ntree) +{ + if (ntree) { + switch (ntree->type) { + case NTREE_SHADER: + /* 1 additional level (i.e. is indented one level in from material, + * so shift all right by one step) + */ + return INDENT_STEP_SIZE; + + case NTREE_COMPOSIT: + /* no additional levels needed */ + return 0; + + case NTREE_TEXTURE: + /* 2 additional levels */ + return INDENT_STEP_SIZE*2; + } + } + + // unknown + return 0; +} + /* offset for groups + grouped entities */ static short acf_generic_group_offset(bAnimContext *ac, bAnimListElem *ale) { short offset= acf_generic_basic_offset(ac, ale); if (ale->id) { - /* special exception for textures */ + /* texture animdata */ if (GS(ale->id->name) == ID_TE) { offset += 21; } - /* special exception for materials and particles */ + /* materials and particles animdata */ else if (ELEM(GS(ale->id->name),ID_MA,ID_PA)) offset += 14; - /* if not in Action Editor mode, groupings must carry some offset too... */ + /* if not in Action Editor mode, action-groups (and their children) must carry some offset too... */ else if (ac->datatype != ANIMCONT_ACTION) offset += 14; + + /* nodetree animdata */ + if (GS(ale->id->name) == ID_NT) { + offset += acf_nodetree_rootType_offset((bNodeTree*)ale->id); + } } /* offset is just the normal type - i.e. based on indention */ @@ -1827,6 +1857,17 @@ static int acf_dsntree_icon(bAnimListElem *UNUSED(ale)) return ICON_NODETREE; } +/* offset for nodetree expanders */ +static short acf_dsntree_offset(bAnimContext *ac, bAnimListElem *ale) +{ + bNodeTree *ntree = (bNodeTree *)ale->data; + short offset= acf_generic_basic_offset(ac, ale); + + offset += acf_nodetree_rootType_offset(ntree); + + return offset; +} + /* get the appropriate flag(s) for the setting when it is valid */ static int acf_dsntree_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) { @@ -1884,8 +1925,8 @@ static bAnimChannelType ACF_DSNTREE= acf_generic_dataexpand_color, /* backdrop color */ acf_generic_dataexpand_backdrop,/* backdrop */ - acf_generic_indention_1, /* indent level */ // XXX this only works for compositing - acf_generic_basic_offset, /* offset */ + acf_generic_indention_1, /* indent level */ + acf_dsntree_offset, /* offset */ acf_generic_idblock_name, /* name */ acf_dsntree_icon, /* icon */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index ca300892636..e2c902d6131 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -672,7 +672,7 @@ static bAnimListElem *make_new_animlistelem (void *data, short datatype, ID *own bNodeTree *ntree= (bNodeTree *)data; AnimData *adt= ntree->adt; - ale->flag= FILTER_NTREE_SCED(ntree); + ale->flag= FILTER_NTREE_DATA(ntree); ale->key_data= (adt) ? adt->action : NULL; ale->datatype= ALE_ACT; @@ -1282,25 +1282,11 @@ static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), static size_t animdata_filter_ds_nodetree (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, bNodeTree *ntree, int filter_mode) { ListBase tmp_data = {NULL, NULL}; - short expanded = 0; size_t tmp_items = 0; size_t items = 0; - /* get datatype specific data first */ - if (owner_id == NULL) - return 0; - - switch (GS(owner_id->name)) { - case ID_SCE: /* compositing nodes */ - { - //Scene *scene = (Scene *)owner_id; - expanded = FILTER_NTREE_SCED(ntree); // XXX: this macro needs renaming... doesn't only do this for scene ones! - } - break; - } - /* add nodetree animation channels */ - BEGIN_ANIMFILTER_SUBCHANNELS(expanded) + BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_NTREE_DATA(ntree)) { /* animation data filtering */ tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)ntree, filter_mode); @@ -1427,6 +1413,11 @@ static size_t animdata_filter_ds_materials (bAnimContext *ac, ListBase *anim_dat /* textures */ if (!(ads->filterflag & ADS_FILTER_NOTEX)) tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, (ID *)ma, filter_mode); + + /* nodes */ + if ((ma->nodetree) && !(ads->filterflag & ADS_FILTER_NONTREE)) { + tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)ma, ma->nodetree, filter_mode); + } } END_ANIMFILTER_SUBCHANNELS; diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 7853bd0b5c2..7c23389ed6f 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -230,7 +230,6 @@ typedef enum eAnimFilter_Flags { #define EXPANDED_SCEC(sce) ((sce->flag & SCE_DS_COLLAPSED)==0) /* 'Sub-Scene' channels (flags stored in Data block) */ #define FILTER_WOR_SCED(wo) ((wo->flag & WO_DS_EXPAND)) -#define FILTER_NTREE_SCED(ntree) ((ntree->flag & NTREE_DS_EXPAND)) /* 'Object' channels */ #define SEL_OBJC(base) ((base->flag & SELECT)) #define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED)==0) @@ -245,14 +244,16 @@ typedef enum eAnimFilter_Flags { #define FILTER_ARM_OBJD(arm) ((arm->flag & ARM_DS_EXPAND)) #define FILTER_MESH_OBJD(me) ((me->flag & ME_DS_EXPAND)) #define FILTER_LATTICE_OBJD(lt) ((lt->flag & LT_DS_EXPAND)) + /* Variable use expanders */ +#define FILTER_NTREE_DATA(ntree) ((ntree->flag & NTREE_DS_EXPAND)) +#define FILTER_TEX_DATA(tex) ((tex->flag & TEX_DS_EXPAND)) /* 'Sub-object/Action' channels (flags stored in Action) */ #define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED)) #define EXPANDED_ACTC(actc) ((actc->flag & ACT_COLLAPSED)==0) /* 'Sub-AnimData' channels */ #define EXPANDED_DRVD(adt) ((adt->flag & ADT_DRIVERS_COLLAPSED)==0) - /* Texture expanders */ -#define FILTER_TEX_DATA(tex) ((tex->flag & TEX_DS_EXPAND)) + /* Actions (also used for Dopesheet) */ /* Action Channel Group */ diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index dc9594c6e4c..5138569539e 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -38,6 +38,7 @@ #include #include "DNA_anim_types.h" +#include "DNA_node_types.h" #include "DNA_screen_types.h" #include "DNA_space_types.h" #include "DNA_windowmanager_types.h" @@ -608,9 +609,28 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie if (ale->id) { /* special exception for textures */ if (GS(ale->id->name) == ID_TE) { - offset= 21; + offset= 14; indent= 1; } + /* special exception for nodetrees */ + else if (GS(ale->id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)ale->id; + + switch (ntree->type) { + case NTREE_SHADER: + { + /* same as for textures */ + offset= 14; + indent= 1; + } + break; + + default: + /* normal will do */ + offset= 14; + break; + } + } else offset= 14; } @@ -656,9 +676,28 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie if (ale->id) { /* special exception for textures */ if (GS(ale->id->name) == ID_TE) { - offset= 21; + offset= 14; indent= 1; } + /* special exception for nodetrees */ + else if (GS(ale->id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)ale->id; + + switch (ntree->type) { + case NTREE_SHADER: + { + /* same as for textures */ + offset= 14; + indent= 1; + } + break; + + default: + /* normal will do */ + offset= 14; + break; + } + } else offset= 14; } -- cgit v1.2.3 From 308cd73d8b44f0272daf43a425f489f101f55ed6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 27 Jun 2011 04:05:19 +0000 Subject: scenes now adjust brush usercounts on copying and freeing, pointed out by Jason Wilkins --- source/blender/blenkernel/intern/brush.c | 2 -- source/blender/blenkernel/intern/paint.c | 14 +++++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index a4ceb62ab55..c497cd2813a 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -235,8 +235,6 @@ void make_local_brush(Brush *brush) if(paint_brush(&scene->toolsettings->imapaint.paint)==brush) { if(scene->id.lib==NULL) { paint_brush_set(&scene->toolsettings->imapaint.paint, brushn); - brushn->id.us++; - brush->id.us--; } } } diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 5be492d1108..d00eb6192da 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -85,8 +85,11 @@ Brush *paint_brush(Paint *p) void paint_brush_set(Paint *p, Brush *br) { - if(p) + if(p) { + id_us_min((ID *)p->brush); + id_us_plus((ID *)br); p->brush= br; + } } int paint_facesel_test(Object *ob) @@ -110,12 +113,17 @@ void paint_init(Paint *p, const char col[3]) p->flags |= PAINT_SHOW_BRUSH; } -void free_paint(Paint *UNUSED(paint)) +void free_paint(Paint *paint) { - /* nothing */ + id_us_min((ID *)paint->brush); } +/* called when copying scene settings, so even if 'src' and 'tar' are the same + * still do a id_us_plus(), rather then if we were copying betweem 2 existing + * scenes where a matching value should decrease the existing user count as + * with paint_brush_set() */ void copy_paint(Paint *src, Paint *tar) { tar->brush= src->brush; + id_us_plus((ID *)tar->brush); } -- cgit v1.2.3 From fd3c5bef7e55ca22a96a74ca011e4ffe425e5321 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 27 Jun 2011 04:24:59 +0000 Subject: Bugfix: Selecting nodes now updates animation editors Noticed while testing the material nodes commit --- source/blender/editors/space_action/space_action.c | 7 +++++++ source/blender/editors/space_graph/space_graph.c | 7 +++++++ 2 files changed, 14 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 7a824e6bf9d..a05d1d3df93 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -405,6 +405,13 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn) break; } break; + case NC_NODE: + if (wmn->action == NA_SELECTED) { + /* selection changed, so force refresh to flush (needs flag set to do syncing) */ + saction->flag |= SACTION_TEMP_NEEDCHANSYNC; + ED_area_tag_refresh(sa); + } + break; case NC_SPACE: switch (wmn->data) { case ND_SPACE_DOPESHEET: diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index f58963d1d98..6a548a58507 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -464,6 +464,13 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn) break; } break; + case NC_NODE: + if (wmn->action == NA_SELECTED) { + /* selection changed, so force refresh to flush (needs flag set to do syncing) */ + sipo->flag |= SIPO_TEMP_NEEDCHANSYNC; + ED_area_tag_refresh(sa); + } + break; case NC_SPACE: if(wmn->data == ND_SPACE_GRAPH) ED_area_tag_redraw(sa); -- cgit v1.2.3 From 489ca86b59c41f67a0590275b146133fff252404 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 27 Jun 2011 04:46:03 +0000 Subject: Texture Nodes AnimEdit support --- source/blender/editors/animation/anim_filter.c | 12 ++++++++++-- source/blender/editors/space_nla/nla_draw.c | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index e2c902d6131..c82615eded4 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1365,7 +1365,16 @@ static size_t animdata_filter_ds_textures (bAnimContext *ac, ListBase *anim_data /* add texture's animation data to temp collection */ BEGIN_ANIMFILTER_SUBCHANNELS(FILTER_TEX_DATA(tex)) { + /* texture animdata */ tmp_items += animfilter_block_data(ac, &tmp_data, ads, (ID *)tex, filter_mode); + + /* nodes */ + if ((tex->nodetree) && !(ads->filterflag & ADS_FILTER_NONTREE)) { + /* owner_id as id instead of texture, since it'll otherwise be impossible to track the depth */ + // FIXME: perhaps as a result, textures should NOT be included under materials, but under their own section instead + // so that free-floating textures can also be animated + tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)tex, tex->nodetree, filter_mode); + } } END_ANIMFILTER_SUBCHANNELS; @@ -1415,9 +1424,8 @@ static size_t animdata_filter_ds_materials (bAnimContext *ac, ListBase *anim_dat tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, (ID *)ma, filter_mode); /* nodes */ - if ((ma->nodetree) && !(ads->filterflag & ADS_FILTER_NONTREE)) { + if ((ma->nodetree) && !(ads->filterflag & ADS_FILTER_NONTREE)) tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)ma, ma->nodetree, filter_mode); - } } END_ANIMFILTER_SUBCHANNELS; diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 5138569539e..e61b348716b 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -625,6 +625,14 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie } break; + case NTREE_TEXTURE: + { + /* even more */ + offset= 21; + indent= 1; + } + break; + default: /* normal will do */ offset= 14; @@ -692,6 +700,14 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie } break; + case NTREE_TEXTURE: + { + /* even more */ + offset= 21; + indent= 1; + } + break; + default: /* normal will do */ offset= 14; -- cgit v1.2.3 From ae49f6deb0e4a41ea0b50603472a7b2ee7b870e3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 27 Jun 2011 05:03:58 +0000 Subject: fix for a leak in sound_read_sound_buffer(), used when drawing the sequencer waveform. --- source/blender/blenkernel/intern/sound.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 0eb2392b012..f2e3537762f 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -498,8 +498,9 @@ int sound_scene_playing(struct Scene *scene) int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, float start, float end) { AUD_Sound* limiter = AUD_limitSound(sound->cache, start, end); - return AUD_readSound(limiter, buffer, length); + int ret= AUD_readSound(limiter, buffer, length); AUD_unload(limiter); + return ret; } int sound_get_channels(struct bSound* sound) -- cgit v1.2.3 From a1abdf1c1c59f908684001d1d9b0b4bbc392cca7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 27 Jun 2011 07:51:52 +0000 Subject: fix [#27778] Set Bone Flags - No Scale - Toggle seems not to work. Toggling options on the selection is better done as a generic operator. Replace ARMATURE_OT_flags_set and POSE_OT_flags_set with WM_OT_context_collection_boolean_set and use menus to access it with specific settings. This way its easy make a key shortcut which toggles any boolean on any collection - sequences, metaballs, objects, bones etc. --- source/blender/editors/armature/armature_intern.h | 4 - source/blender/editors/armature/armature_ops.c | 24 ++--- source/blender/editors/armature/editarmature.c | 123 ---------------------- 3 files changed, 7 insertions(+), 144 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index 82decf8d1cf..85da7a212c9 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -79,8 +79,6 @@ void ARMATURE_OT_separate(struct wmOperatorType *ot); void ARMATURE_OT_autoside_names(struct wmOperatorType *ot); void ARMATURE_OT_flip_names(struct wmOperatorType *ot); -void ARMATURE_OT_flags_set(struct wmOperatorType *ot); - void ARMATURE_OT_layers_show_all(struct wmOperatorType *ot); void ARMATURE_OT_armature_layers(struct wmOperatorType *ot); void ARMATURE_OT_bone_layers(struct wmOperatorType *ot); @@ -125,8 +123,6 @@ void POSE_OT_flip_names(struct wmOperatorType *ot); void POSE_OT_quaternions_flip(struct wmOperatorType *ot); -void POSE_OT_flags_set(struct wmOperatorType *ot); - void POSE_OT_armature_layers(struct wmOperatorType *ot); void POSE_OT_bone_layers(struct wmOperatorType *ot); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 545cff82483..7bc9bb48a4c 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -85,8 +85,6 @@ void ED_operatortypes_armature(void) WM_operatortype_append(ARMATURE_OT_autoside_names); WM_operatortype_append(ARMATURE_OT_flip_names); - WM_operatortype_append(ARMATURE_OT_flags_set); - WM_operatortype_append(ARMATURE_OT_layers_show_all); WM_operatortype_append(ARMATURE_OT_armature_layers); WM_operatortype_append(ARMATURE_OT_bone_layers); @@ -141,8 +139,6 @@ void ED_operatortypes_armature(void) WM_operatortype_append(POSE_OT_quaternions_flip); - WM_operatortype_append(POSE_OT_flags_set); - WM_operatortype_append(POSE_OT_armature_layers); WM_operatortype_append(POSE_OT_bone_layers); @@ -268,12 +264,9 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "ARMATURE_OT_separate", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); /* set flags */ - kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set(kmi->ptr, "mode", 2); // toggle - kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - RNA_enum_set(kmi->ptr, "mode", 1); // enable - kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_ALT, 0); - RNA_enum_set(kmi->ptr, "mode", 0); // clear + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0); /* armature/bone layers */ WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0); @@ -349,13 +342,10 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_group", GKEY, KM_PRESS, KM_CTRL, 0); /* set flags */ - kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set(kmi->ptr, "mode", 2); // toggle - kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - RNA_enum_set(kmi->ptr, "mode", 1); // enable - kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_ALT, 0); - RNA_enum_set(kmi->ptr, "mode", 0); // clear - + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0); + /* armature/bone layers */ WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "POSE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index abf08393544..20352206121 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -1352,30 +1352,6 @@ static void *get_nearest_bone (bContext *C, short findunsel, int x, int y) return NULL; } -/* helper for setflag_sel_bone() */ -static void bone_setflag (int *bone, int flag, short mode) -{ - if (bone && flag) { - /* exception for inverse flags */ - if (flag == BONE_NO_DEFORM) { - if (mode == 2) - *bone |= flag; - else if (mode == 1) - *bone &= ~flag; - else - *bone ^= flag; - } - else { - if (mode == 2) - *bone &= ~flag; - else if (mode == 1) - *bone |= flag; - else - *bone ^= flag; - } - } -} - /* Get the first available child of an editbone */ static EditBone *editbone_get_child(bArmature *arm, EditBone *pabone, short use_visibility) { @@ -1396,105 +1372,6 @@ static EditBone *editbone_get_child(bArmature *arm, EditBone *pabone, short use_ return chbone; } -/* callback for posemode setflag */ -static int pose_setflag_exec (bContext *C, wmOperator *op) -{ - int flag= RNA_enum_get(op->ptr, "type"); - int mode= RNA_enum_get(op->ptr, "mode"); - - /* loop over all selected pchans */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) - { - bone_setflag(&pchan->bone->flag, flag, mode); - } - CTX_DATA_END; - - /* note, notifier might evolve */ - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ED_object_pose_armature(CTX_data_active_object(C))); - - return OPERATOR_FINISHED; -} - -/* callback for editbones setflag */ -static int armature_bones_setflag_exec (bContext *C, wmOperator *op) -{ - int flag= RNA_enum_get(op->ptr, "type"); - int mode= RNA_enum_get(op->ptr, "mode"); - - /* loop over all selected pchans */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_bones) - { - bone_setflag(&ebone->flag, flag, mode); - } - CTX_DATA_END; - - /* note, notifier might evolve */ - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, CTX_data_edit_object(C)); - - return OPERATOR_FINISHED; -} - -/* settings that can be changed */ -static EnumPropertyItem prop_bone_setting_types[] = { - {BONE_DRAWWIRE, "DRAWWIRE", 0, "Draw Wire", ""}, - {BONE_NO_DEFORM, "DEFORM", 0, "Deform", ""}, - {BONE_MULT_VG_ENV, "MULT_VG", 0, "Multiply Vertex Groups", ""}, - {BONE_HINGE, "HINGE", 0, "Hinge", ""}, - {BONE_NO_SCALE, "NO_SCALE", 0, "No Scale", ""}, - {BONE_EDITMODE_LOCKED, "LOCKED", 0, "Locked", "(For EditMode only)"}, - {0, NULL, 0, NULL, NULL} -}; - -/* ways that settings can be changed */ -static EnumPropertyItem prop_bone_setting_modes[] = { - {0, "CLEAR", 0, "Clear", ""}, - {1, "ENABLE", 0, "Enable", ""}, - {2, "TOGGLE", 0, "Toggle", ""}, - {0, NULL, 0, NULL, NULL} -}; - - -void ARMATURE_OT_flags_set (wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Set Bone Flags"; - ot->idname= "ARMATURE_OT_flags_set"; - ot->description= "Set flags for armature bones"; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= armature_bones_setflag_exec; - ot->poll= ED_operator_editarmature; - - /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - - /* properties */ - ot->prop= RNA_def_enum(ot->srna, "type", prop_bone_setting_types, 0, "Type", ""); - RNA_def_enum(ot->srna, "mode", prop_bone_setting_modes, 0, "Mode", ""); -} - -void POSE_OT_flags_set (wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Set Bone Flags"; - ot->idname= "POSE_OT_flags_set"; - ot->description= "Set flags for armature bones"; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= pose_setflag_exec; - ot->poll= ED_operator_posemode; - - /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - - /* properties */ - ot->prop= RNA_def_enum(ot->srna, "type", prop_bone_setting_types, 0, "Type", ""); - RNA_def_enum(ot->srna, "mode", prop_bone_setting_modes, 0, "Mode", ""); -} - - /* **************** END PoseMode & EditMode *************************** */ /* **************** Posemode stuff ********************** */ -- cgit v1.2.3 From f10f3d3651a498b53e191df3bea7909462ca4ac0 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Jun 2011 11:21:25 +0000 Subject: Bugfix #27768 On clicking in a non-active Blender window (when you activated others), the mouse position of the first click was still the old position. Problem is in GHOST; it sends out the 'activate window' event after the mouseclick event itself. Code now checks for this case and reads the correct mouse position. --- source/blender/windowmanager/intern/wm_event_system.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 83ef46d109c..ce3830b059c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2449,6 +2449,16 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U else event.type= MIDDLEMOUSE; + if(win->active==0) { + int cx, cy; + + /* entering window, update mouse pos. (ghost sends win-activate *after* the mouseclick in window!) */ + wm_get_cursor_position(win, &cx, &cy); + + event.x= evt->x= cx; + event.y= evt->y= cy; + } + /* add to other window if event is there (not to both!) */ owin= wm_event_cursor_other_windows(wm, win, &event); if(owin) { -- cgit v1.2.3 From 26b7d513f17b79797d5d30dd93a06590c91b2b4d Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 27 Jun 2011 13:04:21 +0000 Subject: Small bug fixes: * Removing the last of the owner/ownertype stuff. The bulk of this stuff was removed in Part3 of the refactor, but it seems I forgot to actually remove these struct members at the end of that. * Texture datablocks without animdata aren't skipped immediately anymore. This could lead to texture nodetrees on animdata-less textures getting skipped. --- source/blender/editors/animation/anim_filter.c | 3 ++- source/blender/editors/include/ED_anim_api.h | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index c82615eded4..da2a779f3a8 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1359,7 +1359,7 @@ static size_t animdata_filter_ds_textures (bAnimContext *ac, ListBase *anim_data size_t tmp_items = 0; /* for now, if no texture returned, skip (this shouldn't confuse the user I hope) */ - if (ELEM(NULL, tex, tex->adt)) + if (tex == NULL) continue; /* add texture's animation data to temp collection */ @@ -1753,6 +1753,7 @@ static size_t animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_dat } END_ANIMFILTER_SUBCHANNELS; + /* if we collected some channels, add these to the new list... */ if (tmp_items) { /* firstly add object expander if required */ diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 7c23389ed6f..c149102a6a7 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -116,9 +116,6 @@ typedef struct bAnimListElem { struct ID *id; /* ID block that channel is attached to */ struct AnimData *adt; /* source of the animation data attached to ID block (for convenience) */ - - void *owner; /* group or channel which acts as this channel's owner */ - short ownertype; /* type of owner */ } bAnimListElem; -- cgit v1.2.3 From edd5980436cdfe9ca7a7a2a75b6dff2129b72275 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 27 Jun 2011 20:12:10 +0000 Subject: now using blender view coordinates for ndof input -- core and Linux in place --- source/blender/editors/space_image/image_ops.c | 8 +-- source/blender/editors/space_view3d/view3d_edit.c | 68 ++++++----------------- 2 files changed, 20 insertions(+), 56 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index fc7b84e21ae..77fb129e278 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -440,7 +440,7 @@ void IMAGE_OT_view_zoom(wmOperatorType *ot) /********************** NDOF operator *********************/ /* Combined pan/zoom from a 3D mouse device. - * Y zooms, XZ pans + * Z zooms, XY pans * "view" (not "paper") control -- user moves the viewpoint, not the image being viewed * that explains the negative signs in the code below */ @@ -461,8 +461,8 @@ static int view_ndof_invoke(bContext *C, wmOperator *op, wmEvent *event) const float zoom_sensitivity = 0.5f; const float pan_sensitivity = 300.f; - float pan_x = pan_sensitivity * dt * -ndof->tx / sima->zoom; - float pan_y = pan_sensitivity * dt * -ndof->tz / sima->zoom; + float pan_x = pan_sensitivity * dt * ndof->tx / sima->zoom; + float pan_y = pan_sensitivity * dt * ndof->ty / sima->zoom; /* "mouse zoom" factor = 1 + (dx + dy) / 300 * what about "ndof zoom" factor? should behave like this: @@ -470,7 +470,7 @@ static int view_ndof_invoke(bContext *C, wmOperator *op, wmEvent *event) * move forward -> factor > 1 * move backward -> factor < 1 */ - float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->ty; + float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->tz; sima_zoom_set_factor(sima, ar, zoom_factor); sima->xof += pan_x; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index bd44378c9aa..0e82581e411 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1003,10 +1003,10 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) // [got that?] // proportional to s = r * theta - float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->ty; + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; rv3d->dist += zoom_distance; - ED_region_tag_redraw(CTX_wm_region(C)); + ED_region_tag_redraw(CTX_wm_region(C)); } if (has_rotation) { @@ -1020,13 +1020,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) ndof_to_quat(ndof, rot); // scale by rot_sensitivity? - - // swap y and z -- not sure why, but it works - { - float temp = -rot[2]; // also invert device y - rot[2] = rot[3]; - rot[3] = temp; - } + // mul_qt_fl(rot, rot_sensitivity); invert_qt_qt(view_inv, rv3d->viewquat); copy_qt_qt(view_inv_conj, view_inv); @@ -1043,31 +1037,26 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) } else { /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ - float phi, q1[4]; - float m[3][3]; - float m_inv[3][3]; + float angle, rot[4]; float xvec[3] = {1,0,0}; - /* Get the 3x3 matrix and its inverse from the quaternion */ - quat_to_mat3(m,rv3d->viewquat); - invert_m3_m3(m_inv,m); - /* Determine the direction of the x vector (for rotating up and down) */ - /* This can likely be computed directly from the quaternion. */ - mul_m3_v3(m_inv,xvec); + float view_inv[4]/*, view_inv_conj[4]*/; + invert_qt_qt(view_inv, rv3d->viewquat); + mul_qt_v3(view_inv, xvec); /* Perform the up/down rotation */ - phi = rot_sensitivity * dt * ndof->rx; - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, xvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + angle = rot_sensitivity * dt * ndof->rx; + rot[0] = cos(angle); + mul_v3_v3fl(rot+1, xvec, sin(angle)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); /* Perform the orbital rotation */ - phi = rot_sensitivity * dt * ndof->rz; - q1[0] = cos(phi); - q1[1] = q1[2] = 0.0; - q1[3] = sin(phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + angle = rot_sensitivity * dt * ndof->ry; + rot[0] = cos(angle); + rot[1] = rot[2] = 0.0; + rot[3] = sin(angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); ED_region_tag_redraw(CTX_wm_region(C)); } @@ -1161,31 +1150,6 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) } #endif -#if 0 -static int viewndof_invoke_1st_try(bContext *C, wmOperator *op, wmEvent *event) -{ - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - - float dt = ndof->dt; - - RegionView3D *rv3d= CTX_wm_region_view3d(C); - - if (dt > 0.25f) - /* this is probably the first event for this motion, so set dt to something reasonable */ - dt = 0.0125f; - - /* very simple for now, move viewpoint along world axes */ - rv3d->ofs[0] += dt * ndof->tx; - rv3d->ofs[1] += dt * ndof->ty; - rv3d->ofs[2] += dt * ndof->tz; - -// request_depth_update(CTX_wm_region_view3d(C)); /* need this? */ - ED_region_tag_redraw(CTX_wm_region(C)); - - return OPERATOR_FINISHED; -} -#endif - void VIEW3D_OT_ndof(struct wmOperatorType *ot) { /* identifiers */ -- cgit v1.2.3 From 798f59fe6810a77ce0903f3dd5650d5777a5e5ba Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 27 Jun 2011 20:44:23 +0000 Subject: Mac ndof using blender view coordinates + small but important typo fixed --- source/blender/editors/space_view3d/view3d_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0e82581e411..15c3d9da84f 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -997,11 +997,11 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) ndof->dt = dt = 0.0125f; - if (ndof->ty) { + if (ndof->tz) { // Zoom! // velocity should be proportional to the linear velocity attained by rotational motion of same strength // [got that?] - // proportional to s = r * theta + // proportional to arclength = radius * angle float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; rv3d->dist += zoom_distance; -- cgit v1.2.3 From cf90b9497fd47f9b2310ddbdae9c2488adc35b72 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Tue, 28 Jun 2011 00:40:39 +0000 Subject: VBO: Fix for bug found by psy-fi. * gpu_buffers.c was using GL_ARB_vertex_buffer_object to check for VBO support, should be using GLEW_ARB_vertex_buffer_object. --- source/blender/gpu/intern/gpu_buffers.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 0d843dedbaa..3715dbe192c 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -80,7 +80,7 @@ GPUBufferPool *GPU_buffer_pool_new(void) DEBUG_VBO("GPU_buffer_pool_new\n"); if( useVBOs < 0 ) { - if( GL_ARB_vertex_buffer_object ) { + if( GLEW_ARB_vertex_buffer_object ) { DEBUG_VBO( "Vertex Buffer Objects supported.\n" ); useVBOs = 1; } @@ -484,7 +484,7 @@ void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, for(i = 0, tottri = 0; i < totface; ++i) tottri += mface[face_indices[i]].v4 ? 2 : 1; - if(GL_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) + if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) glGenBuffersARB(1, &buffers->index_buf); if(buffers->index_buf) { @@ -615,7 +615,7 @@ void *GPU_build_grid_buffers(DMGridData **UNUSED(grids), int *UNUSED(grid_indice totquad= (gridsize-1)*(gridsize-1)*totgrid; /* Generate index buffer object */ - if(GL_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) + if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) glGenBuffersARB(1, &buffers->index_buf); if(buffers->index_buf) { -- cgit v1.2.3 From 661c55b78aa3ff0b4c3ea28c9b907378f5199857 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Jun 2011 05:02:00 +0000 Subject: Refactoring code for filtering actions - This is still quite convoluted unfortunately... - I can't quite figure out what a bug note I left in the code was about anymore. Removed. --- source/blender/editors/animation/anim_filter.c | 190 ++++++++++++------------- 1 file changed, 91 insertions(+), 99 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index da2a779f3a8..a7117af2151 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -972,11 +972,88 @@ static size_t animfilter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve * return items; } -// TODO: group-filtering stuff still needs cleanup -static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) +static size_t animfilter_act_group (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, bActionGroup *agrp, int filter_mode, ID *owner_id) +{ + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + size_t items = 0; + //int ofilter = filter_mode; + + /* if we care about the selection status of the channels, + * but the group isn't expanded (1)... + * (1) this only matters if we actually care about the hierarchy though. + * - Hierarchy matters: this hack should be applied + * - Hierarchy ignored: cases like [#21276] won't work properly, unless we skip this hack + */ + if ( ((filter_mode & ANIMFILTER_LIST_VISIBLE) && EXPANDED_AGRP(ac, agrp)==0) && /* care about hierarchy but group isn't expanded */ + (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) ) /* care about selection status */ + { + /* if the group itself isn't selected appropriately, we shouldn't consider it's children either */ + if (ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) == 0) + return 0; + + /* if we're still here, then the selection status of the curves within this group should not matter, + * since this creates too much overhead for animators (i.e. making a slow workflow) + * + * Tools affected by this at time of coding (2010 Feb 09): + * - inserting keyframes on selected channels only + * - pasting keyframes + * - creating ghost curves in Graph Editor + */ + filter_mode &= ~(ANIMFILTER_SEL|ANIMFILTER_UNSEL|ANIMFILTER_LIST_VISIBLE); + } + + /* add grouped F-Curves */ + BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_AGRP(ac, agrp)) + { + /* special filter so that we can get just the F-Curves within the active group */ + if (!(filter_mode & ANIMFILTER_ACTGROUPED) || (agrp->flag & AGRP_ACTIVE)) { + /* for the Graph Editor, curves may be set to not be visible in the view to lessen clutter, + * but to do this, we need to check that the group doesn't have it's not-visible flag set preventing + * all its sub-curves to be shown + */ + if ( !(filter_mode & ANIMFILTER_CURVE_VISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) + { + /* group must be editable for its children to be editable (if we care about this) */ + if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { + /* get first F-Curve which can be used here */ + FCurve *first_fcu = animfilter_fcurve_next(ads, agrp->channels.first, agrp, filter_mode, owner_id); + + /* filter list, starting from this F-Curve */ + tmp_items += animfilter_fcurves(&tmp_data, ads, first_fcu, agrp, filter_mode, owner_id); + } + } + } + } + END_ANIMFILTER_SUBCHANNELS; + + /* did we find anything? */ + if (tmp_items) { + /* add this group as a channel first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* restore original filter mode so that this next step works ok... */ + //filter_mode = ofilter; + + /* filter selection of channel specially here again, since may be open and not subject to previous test */ + if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { + ANIMCHANNEL_NEW_CHANNEL(agrp, ANIMTYPE_GROUP, owner_id); + } + } + + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; + } + + /* return the number of items added to the list */ + return items; +} + +static size_t animfilter_action (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, int filter_mode, ID *owner_id) { bActionGroup *agrp; - FCurve *lastchan=NULL; + FCurve *lastchan = NULL; size_t items = 0; /* don't include anything from this action if it is linked in from another file, @@ -985,107 +1062,22 @@ static size_t animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDo // TODO: need a way of tagging other channels that may also be affected... if ((filter_mode & ANIMFILTER_FOREDIT) && (act->id.lib)) return 0; - - /* loop over groups */ - // TODO: in future, should we expect to need nested groups? - for (agrp= act->groups.first; agrp; agrp= agrp->next) { - FCurve *first_fcu; - int filter_gmode; + /* do groups */ + // TODO: do nested groups? + for (agrp = act->groups.first; agrp; agrp = agrp->next) { /* store reference to last channel of group */ if (agrp->channels.last) lastchan= agrp->channels.last; - - - /* make a copy of filtering flags for use by the sub-channels of this group */ - filter_gmode= filter_mode; - - /* if we care about the selection status of the channels, - * but the group isn't expanded (1)... - * (1) this only matters if we actually care about the hierarchy though, - * so if we're not filtering for that, then we shouldn't care, otherwise - * cases like [#21276] won't work properly - */ - if ( ((filter_mode & ANIMFILTER_LIST_VISIBLE) && EXPANDED_AGRP(ac, agrp)==0) && /* care about hierarchy but group isn't expanded */ - (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) ) /* care about selection status */ - { - /* if the group itself isn't selected appropriately, we shouldn't consider it's children either */ - if (ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) == 0) - continue; - /* if we're still here, then the selection status of the curves within this group should not matter, - * since this creates too much overhead for animators (i.e. making a slow workflow) - * - * Tools affected by this at time of coding (2010 Feb 09): - * - inserting keyframes on selected channels only - * - pasting keyframes - * - creating ghost curves in Graph Editor - */ - filter_gmode &= ~(ANIMFILTER_SEL|ANIMFILTER_UNSEL|ANIMFILTER_LIST_VISIBLE); - } - - - /* get the first F-Curve in this group we can start to use, and if there isn't any F-Curve to start from, - * then don't use this group at all... - * - * NOTE: use filter_gmode here not filter_mode, since there may be some flags we shouldn't consider under certain circumstances - */ - first_fcu = animfilter_fcurve_next(ads, agrp->channels.first, agrp, filter_gmode, owner_id); - - /* Bug note: - * Selecting open group to toggle visbility of the group, where the F-Curves of the group are not suitable - * for inclusion due to their selection status (vs visibility status of bones/etc., as is usually the case), - * will not work, since the group gets skipped. However, fixing this can easily reintroduce the bugs whereby - * hidden groups (due to visibility status of bones/etc.) that were selected before becoming invisible, can - * easily get deleted accidentally as they'd be included in the list filtered for that purpose. - * - * So, for now, best solution is to just leave this note here, and hope to find a solution at a later date. - * -- Joshua Leung, 2010 Feb 10 - */ - if (first_fcu) { - /* add this group as a channel first */ - if (filter_gmode & ANIMFILTER_LIST_CHANNELS) { - /* filter selection of channel specially here again, since may be open and not subject to previous test */ - if ( ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) ) { - ANIMCHANNEL_NEW_CHANNEL(agrp, ANIMTYPE_GROUP, owner_id); - } - } - - /* there are some situations, where only the channels of the action group should get considered */ - if (!(filter_gmode & ANIMFILTER_ACTGROUPED) || (agrp->flag & AGRP_ACTIVE)) { - /* filters here are a bit convoulted... - * - groups show a "summary" of keyframes beside their name which must accessable for tools which handle keyframes - * - groups can be collapsed (and those tools which are only interested in channels rely on knowing that group is closed) - * - * cases when we should include F-Curves inside group: - * - we don't care about hierarchy visibility (i.e. we just need the F-Curves present) - * - group is expanded - * - we care about hierarchy visibility, but we also just need the F-Curves present - * within (i.e. transform/selectall). Fix relies on showing all channels option - * only ever getting used for drawing, when hierarchy shouldn't show these channels - */ - if (!(filter_gmode & ANIMFILTER_LIST_VISIBLE) || EXPANDED_AGRP(ac, agrp) || !(filter_gmode & ANIMFILTER_LIST_CHANNELS)) - { - /* for the Graph Editor, curves may be set to not be visible in the view to lessen clutter, - * but to do this, we need to check that the group doesn't have it's not-visible flag set preventing - * all its sub-curves to be shown - */ - if ( !(filter_gmode & ANIMFILTER_CURVE_VISIBLE) || !(agrp->flag & AGRP_NOTVISIBLE) ) - { - if (!(filter_gmode & ANIMFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { - /* NOTE: filter_gmode is used here, not standard filter_mode, since there may be some flags that shouldn't apply */ - items += animfilter_fcurves(anim_data, ads, first_fcu, agrp, filter_gmode, owner_id); - } - } - } - } - } + /* action group's channels */ + items += animfilter_act_group(ac, anim_data, ads, act, agrp, filter_mode, owner_id); } - /* loop over un-grouped F-Curves (only if we're not only considering those channels in the animive group) */ + /* un-grouped F-Curves (only if we're not only considering those channels in the active group) */ if (!(filter_mode & ANIMFILTER_ACTGROUPED)) { - // XXX the 'owner' info here needs review... - items += animfilter_fcurves(anim_data, ads, (lastchan)?(lastchan->next):(act->curves.first), NULL, filter_mode, owner_id); + FCurve *firstfcu = (lastchan)? (lastchan->next) : (act->curves.first); + items += animfilter_fcurves(anim_data, ads, firstfcu, NULL, filter_mode, owner_id); } /* return the number of items added to the list */ @@ -1182,7 +1174,7 @@ static size_t animfilter_block_data (bAnimContext *ac, ListBase *anim_data, bDop items += animfilter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, id); }, { /* Keyframes */ - items += animdata_filter_action(ac, anim_data, ads, adt->action, filter_mode, id); + items += animfilter_action(ac, anim_data, ads, adt->action, filter_mode, id); }); return items; @@ -1225,7 +1217,7 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K ANIMCHANNEL_NEW_CHANNEL(key->adt, ANIMTYPE_ANIMDATA, key); } else if (key->adt->action) { - items= animdata_filter_action(ac, anim_data, NULL, key->adt->action, filter_mode, (ID *)key); + items= animfilter_action(ac, anim_data, NULL, key->adt->action, filter_mode, (ID *)key); } } } @@ -2131,7 +2123,7 @@ size_t ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_m /* the check for the DopeSheet summary is included here since the summary works here too */ if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items)) - items += animdata_filter_action(ac, anim_data, ads, data, filter_mode, (ID *)obact); + items += animfilter_action(ac, anim_data, ads, data, filter_mode, (ID *)obact); } break; -- cgit v1.2.3 From c4e28f999b48a5e110a57522c56e26b3d42f6b92 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Jun 2011 05:17:17 +0000 Subject: Outliner Bugfixes: * Mesh Animation-Data was not shown. Other data types would get this shown. * Added attempted fix for the problem where when you try to expand the last item in a RNA list or so, you often end up expanding the first item (and then have to close and try again, at which point the expand works as you expected the first time round). More testing needed, but seems to work better already --- source/blender/editors/space_outliner/outliner.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 0ce6b5d2ce2..63dd34c60bf 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -775,7 +775,7 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Mesh *me= (Mesh *)id; - //outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0); + outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0); outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); for(a=0; atotcol; a++) @@ -1088,7 +1088,7 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i if(!(tselem->flag & TSE_CLOSED)) { for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); + outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, a); } } else if(tot) -- cgit v1.2.3 From 57f4844c43c097356c321f6b7efd00646ecd50fc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 28 Jun 2011 09:42:17 +0000 Subject: make drawing faces in the UV editor an image space option, re-using the mesh option was lazy and doesn't make much sense. --- source/blender/editors/uvedit/uvedit_draw.c | 2 +- source/blender/makesdna/DNA_space_types.h | 2 +- source/blender/makesrna/intern/rna_space.c | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c index 8d73da0063c..453bea0969b 100644 --- a/source/blender/editors/uvedit/uvedit_draw.c +++ b/source/blender/editors/uvedit/uvedit_draw.c @@ -474,7 +474,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) if(sima->flag & SI_DRAW_STRETCH) { draw_uvs_stretch(sima, scene, em, activetf); } - else if(me->drawflag & ME_DRAWFACES) { + else if(!(sima->flag & SI_NO_DRAWFACES)) { /* draw transparent faces */ UI_GetThemeColor4ubv(TH_FACE, col1); UI_GetThemeColor4ubv(TH_FACE_SELECT, col2); diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 2b039060e47..ff9f2269f53 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -754,7 +754,7 @@ enum FileSortTypeE { #define SI_EDITTILE (1<<1) #define SI_CLIP_UV (1<<2) #define SI_DRAWTOOL (1<<3) -#define SI_DEPRECATED1 (1<<4) /* stick UVs to others in the same location */ +#define SI_NO_DRAWFACES (1<<4) #define SI_DRAWSHADOW (1<<5) #define SI_SELACTFACE (1<<6) /* deprecated */ #define SI_DEPRECATED2 (1<<7) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index f4753e2efbe..b79d5395eec 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -990,7 +990,12 @@ static void rna_def_space_image_uv(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_COORDFLOATS); RNA_def_property_ui_text(prop, "Normalized Coordinates", "Display UV coordinates from 0.0 to 1.0 rather than in pixels"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); - + + prop= RNA_def_property(srna, "show_faces", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SI_NO_DRAWFACES); + RNA_def_property_ui_text(prop, "Draw Faces", "Draw faces over the image"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); + prop= RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ); RNA_def_property_array(prop, 2); RNA_def_property_float_funcs(prop, "rna_SpaceImageEditor_cursor_location_get", "rna_SpaceImageEditor_cursor_location_set", NULL); -- cgit v1.2.3 From 0b41c479e46399a63d2cae5506325950842dc787 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Jun 2011 11:21:12 +0000 Subject: Action-Management from Outliner - Unlinking Actions It is now possible to use the Outliner for managing the active action of an ID-block (provided that it appears in the Outliner), which should be a bit better than having to go through the NLA Editor. So far, this only allowing unlinking actions, using some existing operators. To use: 1) Navigate through the Outliner tree to find the Object/Material/Lamp/etc. that the animation belongs to. (NOTE: this doesn't work in Datablocks mode, but should in the normal "All Scenes" and related modes) 2) Expand the "Animation" entry below this 3) Right-click on the Action entry below this, and select "Unlink" from the RMB menu In the process, I've fixed problems with some data-blocks not showing their animation data in Outliner. --- source/blender/editors/space_outliner/outliner.c | 84 ++++++++++++++++++++---- 1 file changed, 73 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 63dd34c60bf..20be507f5a0 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -558,6 +558,10 @@ static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *s outliner_add_passes(soops, tenlay, &sce->id, srl); } + // TODO: move this to the front? + if (sce->adt) + outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0); + outliner_add_element(soops, lb, sce->world, te, 0, 0); } @@ -610,7 +614,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Object *ob= (Object *)id; - outliner_add_element(soops, &te->subtree, ob->adt, te, TSE_ANIM_DATA, 0); + if (ob->adt) + outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this if(ob->proxy && ob->id.lib==NULL) @@ -775,7 +780,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Mesh *me= (Mesh *)id; - outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0); + if (me->adt) + outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); for(a=0; atotcol; a++) @@ -788,7 +794,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Curve *cu= (Curve *)id; - outliner_add_element(soops, &te->subtree, cu->adt, te, TSE_ANIM_DATA, 0); + if (cu->adt) + outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); for(a=0; atotcol; a++) outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); @@ -797,6 +804,10 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i case ID_MB: { MetaBall *mb= (MetaBall *)id; + + if (mb->adt) + outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); + for(a=0; atotcol; a++) outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); } @@ -805,7 +816,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Material *ma= (Material *)id; - outliner_add_element(soops, &te->subtree, ma->adt, te, TSE_ANIM_DATA, 0); + if (ma->adt) + outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); @@ -816,21 +828,26 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Tex *tex= (Tex *)id; - outliner_add_element(soops, &te->subtree, tex->adt, te, TSE_ANIM_DATA, 0); + if (tex->adt) + outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); + outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); } break; case ID_CA: { Camera *ca= (Camera *)id; - outliner_add_element(soops, &te->subtree, ca->adt, te, TSE_ANIM_DATA, 0); + + if (ca->adt) + outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); } break; case ID_LA: { Lamp *la= (Lamp *)id; - outliner_add_element(soops, &te->subtree, la->adt, te, TSE_ANIM_DATA, 0); + if (la->adt) + outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); @@ -841,7 +858,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { World *wrld= (World *)id; - outliner_add_element(soops, &te->subtree, wrld->adt, te, TSE_ANIM_DATA, 0); + if (wrld->adt) + outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); @@ -852,7 +870,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i { Key *key= (Key *)id; - outliner_add_element(soops, &te->subtree, key->adt, te, TSE_ANIM_DATA, 0); + if (key->adt) + outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); } break; case ID_AC: @@ -866,6 +885,9 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i bArmature *arm= (bArmature *)id; int a= 0; + if (arm->adt) + outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); + if(arm->edbo) { EditBone *ebone; TreeElement *ten; @@ -906,7 +928,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i } } else if(type==TSE_ANIM_DATA) { - AnimData *adt= (AnimData *)idv; + IdAdtTemplate *iat = (IdAdtTemplate *)idv; + AnimData *adt= (AnimData *)iat->adt; /* this element's info */ te->name= "Animation"; @@ -3143,6 +3166,31 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, } } +static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; + AnimData *adt = iat->adt; + + //printf("iat = '%s' | act = '%s'\n", iat->id.name, tselem->id->name); + + /* active action is only editable when it is not a tweaking strip + * see rna_AnimData_action_editable() in rna_animation.c + */ + if ((adt->flag & ADT_NLA_EDIT_ON) || (adt->actstrip) || (adt->tmpact)) { + /* cannot remove, otherwise things turn to custard */ + ReportList *reports = CTX_wm_reports(C); + + // FIXME: this only gets shown in info-window, since this is global not operator report + BKE_report(reports, RPT_ERROR, "Cannot unlink action, as it is still being edited in NLA"); + + return; + } + + /* remove action... */ + id_us_min((ID*)adt->action); + adt->action = NULL; +} + static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) { Material **matar=NULL; @@ -3586,6 +3634,7 @@ void OUTLINER_OT_group_operation(wmOperatorType *ot) /* **************************************** */ +// TODO: implement support for changing the ID-block used static EnumPropertyItem prop_id_op_types[] = { {1, "UNLINK", 0, "Unlink", ""}, {2, "LOCAL", 0, "Make Local", ""}, @@ -3609,12 +3658,22 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) if(event==1) { switch(idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; case ID_MA: outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); ED_undo_push(C, "Unlink material"); break; case ID_TE: outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); ED_undo_push(C, "Unlink texture"); break; default: @@ -3627,7 +3686,10 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) } /* wrong notifier still... */ - WM_event_add_notifier(C, NC_OBJECT, NULL); + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + + // XXX: this is just so that outliner is always up to date + WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); return OPERATOR_FINISHED; } -- cgit v1.2.3 From 3c43e8e50ac991b082c143c634e4776aaca02db1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 28 Jun 2011 12:48:39 +0000 Subject: fix [#27782] Tileable displacement map issue in Blender 2.58 this bug was introduced in 2.58 (r37342), when adding filtering support to imagewrap(), the problem is boxsample was getting float values which were not wrapped as int values are. --- source/blender/render/intern/source/imagetexture.c | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c index cb08ae96bf7..6d264951204 100644 --- a/source/blender/render/intern/source/imagetexture.c +++ b/source/blender/render/intern/source/imagetexture.c @@ -76,7 +76,7 @@ extern struct Render R; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, int imaprepeat, int imapextend); +static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, const short imaprepeat, const short imapextend); /* *********** IMAGEWRAPPING ****************** */ @@ -115,6 +115,7 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre { float fx, fy, val1, val2, val3; int x, y, retval; + int xi, yi; /* original values */ texres->tin= texres->ta= texres->tr= texres->tg= texres->tb= 0.0f; @@ -166,8 +167,8 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre } } - x = (int)floorf(fx*ibuf->x); - y = (int)floorf(fy*ibuf->y); + x= xi= (int)floorf(fx*ibuf->x); + y= yi= (int)floorf(fy*ibuf->y); if(tex->extend == TEX_CLIPCUBE) { if(x<0 || y<0 || x>=ibuf->x || y>=ibuf->y || texvec[2]<-1.0f || texvec[2]>1.0f) { @@ -209,10 +210,17 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre filterx = (0.5f * tex->filtersize) / ibuf->x; filtery = (0.5f * tex->filtersize) / ibuf->y; + /* important that this value is wrapped [#27782] + * this applies the modifications made by the checks above, + * back to the floating point values */ + fx -= (float)(xi - x) / (float)ibuf->x; + fy -= (float)(yi - y) / (float)ibuf->y; + boxsample(ibuf, fx-filterx, fy-filtery, fx+filterx, fy+filtery, texres, (tex->extend==TEX_REPEAT), (tex->extend==TEX_EXTEND)); } - else /* no filtering */ + else { /* no filtering */ ibuf_get_color(&texres->tr, ibuf, x, y); + } if( (R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields) ) { ibuf->rect-= (ibuf->x*ibuf->y); @@ -524,15 +532,17 @@ static void boxsampleclip(struct ImBuf *ibuf, rctf *rf, TexResult *texres) } } -static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, int imaprepeat, int imapextend) +static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, const short imaprepeat, const short imapextend) { /* Sample box, performs clip. minx etc are in range 0.0 - 1.0 . - * Enlarge with antialiased edges of pixels. - * If variable 'imaprepeat' has been set, the - * clipped-away parts are sampled as well. - */ + * Enlarge with antialiased edges of pixels. + * If variable 'imaprepeat' has been set, the + * clipped-away parts are sampled as well. + */ /* note: actually minx etc isnt in the proper range... this due to filter size and offset vectors for bump */ /* note: talpha must be initialized */ + /* note: even when 'imaprepeat' is set, this can only repeate once in any direction. + * the point which min/max is derived from is assumed to be wrapped */ TexResult texr; rctf *rf, stack[8]; float opp, tot, alphaclip= 1.0; -- cgit v1.2.3 From 4178b662ccb99240ad8528577f040dc00c3c78dd Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 28 Jun 2011 15:59:46 +0000 Subject: enabled pan/zoom in rotation-locked 3D views + small cleanup --- source/blender/editors/space_view3d/view3d_edit.c | 31 +++++++++++++++-------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 15c3d9da84f..b334ed91df6 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -931,7 +931,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) // returns angular velocity (0..1), fills axis of rotation // (shouldn't live in this file!) -float ndof_to_angle_axis(const float ndof[3], float axis[3]) +static float ndof_to_angle_axis(const float ndof[3], float axis[3]) { const float x = ndof[0]; const float y = ndof[1]; @@ -949,7 +949,7 @@ float ndof_to_angle_axis(const float ndof[3], float axis[3]) return angular_velocity; } -float ndof_to_angular_velocity(wmNDOFMotionData* ndof, float axis[3]) +static float ndof_to_angular_velocity(wmNDOFMotionData* ndof) { const float x = ndof->rx; const float y = ndof->ry; @@ -958,7 +958,7 @@ float ndof_to_angular_velocity(wmNDOFMotionData* ndof, float axis[3]) return sqrtf(x*x + y*y + z*z); } -void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) +static void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) { const float x = ndof->rx; const float y = ndof->ry; @@ -984,8 +984,9 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; // tune these until everything feels right - float rot_sensitivity = 1.f; - float zoom_sensitivity = 1.f; + const float rot_sensitivity = 1.f; + const float zoom_sensitivity = 1.f; + const float pan_sensitivity = 1.f; // rather have bool, but... int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); @@ -1005,8 +1006,20 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; rv3d->dist += zoom_distance; + } + + if (rv3d->viewlock == RV3D_LOCKED) { + /* rotation not allowed -- explore panning options instead */ + float view_inv[4]; + float pan_vec[3] = {ndof->tx, ndof->ty, 0}; + mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); + + /* transform motion from view to world coordinates */ + invert_qt_qt(view_inv, rv3d->viewquat); + mul_qt_v3(view_inv, pan_vec); - ED_region_tag_redraw(CTX_wm_region(C)); + /* move center of view opposite of hand motion (camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, pan_vec); } if (has_rotation) { @@ -1033,8 +1046,6 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) // apply rotation mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - ED_region_tag_redraw(CTX_wm_region(C)); - } else { /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ float angle, rot[4]; @@ -1057,11 +1068,11 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) rot[1] = rot[2] = 0.0; rot[3] = sin(angle); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - - ED_region_tag_redraw(CTX_wm_region(C)); } } + ED_region_tag_redraw(CTX_wm_region(C)); + return OPERATOR_FINISHED; } -- cgit v1.2.3 From 8ddd2db6482da66ded4c585bf67e6a670598a402 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 16:25:07 +0000 Subject: RenderEngine API: add self.report() error reporting function for render engines, works the same as for operators. Also includes some refactoring of render error reporting code to use ReportList. --- source/blender/editors/render/render_internal.c | 23 ++++---- source/blender/makesrna/intern/rna_render.c | 7 +++ source/blender/render/extern/include/RE_pipeline.h | 9 ++-- .../blender/render/intern/include/render_types.h | 6 +-- source/blender/render/intern/source/pipeline.c | 63 +++++++++++----------- 5 files changed, 60 insertions(+), 48 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index d4de1386871..42a163d3da5 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -189,11 +189,6 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat /* set callbacks, exported to sequence render too. Only call in foreground (UI) renders. */ -static void render_error_reports(void *reports, const char *str) -{ - BKE_report(reports, RPT_ERROR, str); -} - /* executes blocking render */ static int screen_render_exec(bContext *C, wmOperator *op) { @@ -214,7 +209,6 @@ static int screen_render_exec(bContext *C, wmOperator *op) G.afbreek= 0; RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break); - RE_error_cb(re, op->reports, render_error_reports); ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); @@ -226,11 +220,15 @@ static int screen_render_exec(bContext *C, wmOperator *op) since sequence rendering can call that recursively... (peter) */ seq_stripelem_cache_cleanup(); + RE_SetReports(re, op->reports); + if(is_animation) - RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports); + RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step); else RE_BlenderFrame(re, mainp, scene, NULL, camera_override, lay, scene->r.cfra, is_write_still); + RE_SetReports(re, NULL); + // no redraw needed, we leave state as we entered it ED_update_for_newframe(mainp, scene, CTX_wm_screen(C), 1); @@ -374,10 +372,14 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro rj->do_update= do_update; rj->progress= progress; + RE_SetReports(rj->re, rj->reports); + if(rj->anim) - RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports); + RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step); else RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->srl, rj->camera_override, rj->lay, rj->scene->r.cfra, rj->write_still); + + RE_SetReports(rj->re, NULL); } static void render_endjob(void *rjv) @@ -470,7 +472,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) if(WM_jobs_test(CTX_wm_manager(C), scene)) return OPERATOR_CANCELLED; - if(!RE_is_rendering_allowed(scene, camera_override, op->reports, render_error_reports)) { + if(!RE_is_rendering_allowed(scene, camera_override, op->reports)) { return OPERATOR_CANCELLED; } @@ -578,8 +580,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) rj->re= re; G.afbreek= 0; - RE_error_cb(re, op->reports, render_error_reports); - WM_jobs_start(CTX_wm_manager(C), steve); WM_cursor_wait(0); @@ -596,7 +596,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_RUNNING_MODAL; } - /* contextual render, using current scene, view3d? */ void RENDER_OT_render(wmOperatorType *ot) { diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 6638a9d76d3..3a6cebef178 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -32,6 +32,7 @@ #include "DNA_scene_types.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" @@ -271,6 +272,12 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "info", "", 0, "Info", ""); RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "report", "RE_engine_report"); + prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + prop= RNA_def_string(func, "message", "", 0, "Report Message", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + /* registration */ RNA_define_verify_sdna(0); diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 23f301249ba..6debe8c9bc3 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -218,7 +218,10 @@ void RE_TileProcessor(struct Render *re); /* only RE_NewRender() needed, main Blender render calls */ void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene, struct SceneRenderLayer *srl, struct Object *camera_override, unsigned int lay, int frame, const short write_still); -void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, struct ReportList *reports); +void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra); + +/* error reporting */ +void RE_SetReports(struct Render *re, struct ReportList *reports); /* main preview render call */ void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene); @@ -242,7 +245,6 @@ void RE_stats_draw_cb (struct Render *re, void *handle, void (*f)(void *handle, void RE_progress_cb (struct Render *re, void *handle, void (*f)(void *handle, float)); void RE_draw_lock_cb (struct Render *re, void *handle, void (*f)(void *handle, int)); void RE_test_break_cb (struct Render *re, void *handle, int (*f)(void *handle)); -void RE_error_cb (struct Render *re, void *handle, void (*f)(void *handle, const char *str)); /* should move to kernel once... still unsure on how/where */ float RE_filter_value(int type, float x); @@ -308,11 +310,12 @@ void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); int RE_engine_test_break(RenderEngine *engine); void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +void RE_engine_report(RenderEngine *engine, int type, const char *msg); void RE_engines_init(void); void RE_engines_exit(void); -int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, void *erh, void (*error)(void *handle, const char *str)); +int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports); #endif /* RE_PIPELINE_H */ diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index b2535ebc9ea..13ca40bfd20 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -60,6 +60,7 @@ struct RenderBuckets; struct ObjectInstanceRen; struct RayObject; struct RayFace; +struct ReportList; struct Main; #define TABLEINITSIZE 1024 @@ -252,10 +253,9 @@ struct Render int (*test_break)(void *handle); void *tbh; - void (*error)(void *handle, const char *str); - void *erh; - RenderStats i; + + struct ReportList *reports; }; /* ------------------------------------------------------------------------- */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index b1c9820337c..1d4014aac3e 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -128,7 +128,7 @@ Render R; /* ********* alloc and free ******** */ -static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override); +static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override); static volatile int g_break= 0; static int thread_break(void *UNUSED(arg)) @@ -141,7 +141,6 @@ static void result_nothing(void *UNUSED(arg), RenderResult *UNUSED(rr)) {} static void result_rcti_nothing(void *UNUSED(arg), RenderResult *UNUSED(rr), volatile struct rcti *UNUSED(rect)) {} static void stats_nothing(void *UNUSED(arg), RenderStats *UNUSED(rs)) {} static void float_nothing(void *UNUSED(arg), float UNUSED(val)) {} -static void print_error(void *UNUSED(arg), const char *str) {printf("ERROR: %s\n", str);} static int default_break(void *UNUSED(arg)) {return G.afbreek == 1;} static void stats_background(void *UNUSED(arg), RenderStats *rs) @@ -1190,13 +1189,12 @@ void RE_InitRenderCB(Render *re) re->display_draw= result_rcti_nothing; re->progress= float_nothing; re->test_break= default_break; - re->error= print_error; if(G.background) re->stats_draw= stats_background; else re->stats_draw= stats_nothing; /* clear callback handles */ - re->dih= re->dch= re->ddh= re->sdh= re->prh= re->tbh= re->erh= NULL; + re->dih= re->dch= re->ddh= re->sdh= re->prh= re->tbh= NULL; } /* only call this while you know it will remove the link too */ @@ -1251,7 +1249,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer * if(re->rectx < 2 || re->recty < 2 || (BKE_imtype_is_movie(rd->imtype) && (re->rectx < 16 || re->recty < 16) )) { - re->error(re->erh, "Image too small"); + BKE_report(re->reports, RPT_ERROR, "Image too small"); re->ok= 0; return; } @@ -1417,11 +1415,6 @@ void RE_test_break_cb(Render *re, void *handle, int (*f)(void *handle)) re->test_break= f; re->tbh= handle; } -void RE_error_cb(Render *re, void *handle, void (*f)(void *handle, const char *str)) -{ - re->error= f; - re->erh= handle; -} /* ********* add object data (later) ******** */ @@ -2710,14 +2703,14 @@ static int check_valid_camera(Scene *scene, Object *camera_override) return 1; } -int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, void (*error)(void *handle, const char *str)) +int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *reports) { SceneRenderLayer *srl; if(scene->r.mode & R_BORDER) { if(scene->r.border.xmax <= scene->r.border.xmin || scene->r.border.ymax <= scene->r.border.ymin) { - error(erh, "No border area selected."); + BKE_report(reports, RPT_ERROR, "No border area selected."); return 0; } } @@ -2728,13 +2721,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo scene_unique_exr_name(scene, str, 0); if (BLI_is_writable(str)==0) { - error(erh, "Can not save render buffers, check the temp default path"); + BKE_report(reports, RPT_ERROR, "Can not save render buffers, check the temp default path"); return 0; } /* no fullsample and edge */ if((scene->r.scemode & R_FULL_SAMPLE) && (scene->r.mode & R_EDGE)) { - error(erh, "Full Sample doesn't support Edge Enhance"); + BKE_report(reports, RPT_ERROR, "Full Sample doesn't support Edge Enhance"); return 0; } @@ -2748,7 +2741,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo bNode *node; if(ntree==NULL) { - error(erh, "No Nodetree in Scene"); + BKE_report(reports, RPT_ERROR, "No Nodetree in Scene"); return 0; } @@ -2757,13 +2750,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo break; if(node==NULL) { - error(erh, "No Render Output Node in Scene"); + BKE_report(reports, RPT_ERROR, "No Render Output Node in Scene"); return 0; } if(scene->r.scemode & R_FULL_SAMPLE) { if(composite_needs_render(scene, 0)==0) { - error(erh, "Full Sample AA not supported without 3d rendering"); + BKE_report(reports, RPT_ERROR, "Full Sample AA not supported without 3d rendering"); return 0; } } @@ -2772,7 +2765,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo /* check valid camera, without camera render is OK (compo, seq) */ if(!check_valid_camera(scene, camera_override)) { - error(erh, "No camera"); + BKE_report(reports, RPT_ERROR, "No camera"); return 0; } @@ -2782,7 +2775,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo /* forbidden combinations */ if(scene->r.mode & R_PANORAMA) { if(scene->r.mode & R_ORTHO) { - error(erh, "No Ortho render possible for Panorama"); + BKE_report(reports, RPT_ERROR, "No Ortho render possible for Panorama"); return 0; } } @@ -2798,13 +2791,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo if(!(srl->layflag & SCE_LAY_DISABLE)) break; if(srl==NULL) { - error(erh, "All RenderLayers are disabled"); + BKE_report(reports, RPT_ERROR, "All RenderLayers are disabled"); return 0; } /* renderer */ if(!ELEM(scene->r.renderer, R_INTERN, R_YAFRAY)) { - error(erh, "Unknown render engine set"); + BKE_report(reports, RPT_ERROR, "Unknown render engine set"); return 0; } @@ -2906,6 +2899,11 @@ static int render_initialize_from_main(Render *re, Main *bmain, Scene *scene, Sc return 1; } +void RE_SetReports(Render *re, ReportList *reports) +{ + re->reports= reports; +} + /* general Blender frame render call */ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *srl, Object *camera_override, unsigned int lay, int frame, const short write_still) { @@ -2931,7 +2929,7 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, FALSE); /* reports only used for Movie */ - do_write_image_or_movie(re, scene, NULL, NULL, name); + do_write_image_or_movie(re, scene, NULL, name); } } @@ -2942,7 +2940,7 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr G.rendering= 0; } -static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override) +static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override) { char name[FILE_MAX]; RenderResult rres; @@ -2960,7 +2958,7 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, R dofree = 1; } RE_ResultGet32(re, (unsigned int *)rres.rect32); - ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, reports); + ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, re->reports); if(dofree) { MEM_freeN(rres.rect32); } @@ -3042,7 +3040,7 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, R } /* saves images to disk */ -void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, ReportList *reports) +void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra) { bMovieHandle *mh= BKE_get_movie_handle(scene->r.imtype); int cfrao= scene->r.cfra; @@ -3055,14 +3053,14 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri /* ugly global still... is to prevent renderwin events and signal subsurfs etc to make full resol */ /* is also set by caller renderwin.c */ G.rendering= 1; - + if(BKE_imtype_is_movie(scene->r.imtype)) - if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, reports)) + if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports)) G.afbreek= 1; if (mh->get_next_frame) { while (!(G.afbreek == 1)) { - int nf = mh->get_next_frame(&re->r, reports); + int nf = mh->get_next_frame(&re->r, re->reports); if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) { scene->r.cfra = re->r.cfra = nf; @@ -3071,7 +3069,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri do_render_all_options(re); if(re->test_break(re->tbh) == 0) { - if(!do_write_image_or_movie(re, scene, mh, reports, NULL)) + if(!do_write_image_or_movie(re, scene, mh, NULL)) G.afbreek= 1; } @@ -3135,7 +3133,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri if(re->test_break(re->tbh) == 0) { if(!G.afbreek) - if(!do_write_image_or_movie(re, scene, mh, reports, NULL)) + if(!do_write_image_or_movie(re, scene, mh, NULL)) G.afbreek= 1; } else @@ -3343,6 +3341,11 @@ void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char re->i.statstr= NULL; } +void RE_engine_report(RenderEngine *engine, int type, const char *msg) +{ + BKE_report(engine->re->reports, type, msg); +} + /* loads in image into a result, size must match * x/y offsets are only used on a partial copy when dimensions dont match */ void RE_layer_load_from_file(RenderLayer *layer, ReportList *reports, const char *filename, int x, int y) -- cgit v1.2.3 From caef67eb923e37accdbb0664f90c99fe928406c2 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 28 Jun 2011 19:30:00 +0000 Subject: Set Edit bone roll on Armature Import. + Light->Color Sid for testing. --- source/blender/collada/AnimationImporter.cpp | 31 +--------------------------- source/blender/collada/ArmatureExporter.cpp | 7 ++++++- source/blender/collada/ArmatureImporter.cpp | 19 +++++++++++++---- source/blender/collada/CameraExporter.cpp | 2 +- source/blender/collada/LightExporter.cpp | 2 +- 5 files changed, 24 insertions(+), 37 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 3b33ad0dee6..bb11f815b40 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -776,36 +776,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , ob->rotmode = ROT_MODE_EUL; } } - // if (is_joint) - //{ - // float mat[4][4]; - // float obmat[4][4]; - - // // object-space - // get_node_mat(obmat, node, NULL, NULL); - // bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - // - // bArmature * arm = (bArmature *) ob->data; - // - // Bone *cur = get_named_bone( arm , bone_name ); - - // if (cur->parent){ - // COLLADAFW::Node * parent = armature_importer->joint_parent_map.find(node->getUniqueId()); - // float[4][4] parent_mat; - // get_node_mat ( parent_mat, parent, NULL, NULL ); - // mul_m4_m4m4(mat, obmat, parent_mat); - // bPoseChannel *parchan = get_pose_channel(ob->pose, cur->parent->name); - // if ( parchan && chan) - // mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); - // } - // else { - // copy_m4_m4(mat, obmat); - // float invObmat[4][4]; - // invert_m4_m4(invObmat, ob->obmat); - // if(pchan) - // mul_m4_m4m4(pchan->pose_mat, mat, invObmat); - // } - //} + } } diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 90c3cfbb001..b98e750aa86 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -351,12 +351,17 @@ std::string ArmatureExporter::add_inv_bind_mats_source(Object *ob_arm, ListBase bPoseChannel *pchan = get_pose_channel(pose, def->name); + float pose_mat[4][4]; float mat[4][4]; float world[4][4]; float inv_bind_mat[4][4]; + // pose_mat is the same as pchan->pose_mat, but without the rotation + unit_m4(pose_mat); + translate_m4(pose_mat, pchan->pose_head[0], pchan->pose_head[1], pchan->pose_head[2]); + // make world-space matrix, pose_mat is armature-space - mul_m4_m4m4(world, pchan->pose_mat, ob_arm->obmat); + mul_m4_m4m4(world, pose_mat, ob_arm->obmat); invert_m4_m4(mat, world); converter.mat4_to_dae(inv_bind_mat, mat); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index ad8ad690ef5..4e330738026 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -96,13 +96,17 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p bPoseChannel *pchan = get_pose_channel(ob_arm->pose, (char*)bc_get_joint_name(node)); if (parent) bone->parent = parent; - + float ax[3]; + float angle = NULL; + // get world-space if (parent){ mul_m4_m4m4(mat, obmat, parent_mat); bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parent->name); if ( parchan && pchan) mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + mat4_to_axis_angle(ax,&angle,mat); + bone->roll = angle; } else { copy_m4_m4(mat, obmat); @@ -110,6 +114,8 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p invert_m4_m4(invObmat, ob_arm->obmat); if(pchan) mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + mat4_to_axis_angle(ax,&angle,mat); + bone->roll = angle; } @@ -545,7 +551,8 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node float obmat[4][4]; bArmature * arm = (bArmature * ) ob_arm-> data ; - EditBone *edbone = NULL ; + float ax[3]; + float angle = NULL; // object-space get_node_mat(obmat, root_node, NULL, NULL); @@ -560,15 +567,18 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parentname); mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + } else { copy_m4_m4(mat, obmat); float invObmat[4][4]; invert_m4_m4(invObmat, ob_arm->obmat); mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + } - + mat4_to_axis_angle(ax,&angle,mat); + pchan->bone->roll = angle; COLLADAFW::NodePointerArray& children = root_node->getChildNodes(); @@ -632,7 +642,8 @@ void ArmatureImporter::make_armatures(bContext *C) // free memory stolen from SkinControllerData skin.free(); } - + + //for bones without skins create_armature_bones(); } diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index f8fa0fd55c0..9d09f170776 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -73,7 +73,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) if (cam->type == CAM_PERSP) { COLLADASW::PerspectiveOptic persp(mSW); persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI)); - persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch)); + persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,cam_name); persp.setZFar(cam->clipend); persp.setZNear(cam->clipsta); COLLADASW::Camera ccam(mSW, &persp, cam_id, cam_name); diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 13eb62ca969..ebcc70013b4 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -101,7 +101,7 @@ void LightsExporter::operator()(Object *ob) // spot else if (la->type == LA_SPOT) { COLLADASW::SpotLight cla(mSW, la_id, la_name); - cla.setColor(col); + cla.setColor(col,false,"Color"); cla.setFallOffAngle(la->spotsize); cla.setFallOffExponent(la->spotblend); cla.setConstantAttenuation(constatt); -- cgit v1.2.3 From 40a15a04be4895f0ec2b7f3be7932963907df67d Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 28 Jun 2011 20:05:18 +0000 Subject: 2.5 Image Buttons Template: * Added missing greying out for "fields_per_frame" Property, reported by lmg on IRC. Thanks! --- source/blender/editors/space_image/image_buttons.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index 0210b0dd78d..e9ebe78da29 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -792,7 +792,9 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char uiItemR(col, userptr, "frame_offset", 0, NULL, ICON_NONE); col= uiLayoutColumn(split, 0); - uiItemR(col, userptr, "fields_per_frame", 0, "Fields", ICON_NONE); + row= uiLayoutRow(col, 0); + uiLayoutSetActive(row, RNA_boolean_get(&imaptr, "use_fields")); + uiItemR(row, userptr, "fields_per_frame", 0, "Fields", ICON_NONE); uiItemR(col, userptr, "use_auto_refresh", 0, NULL, ICON_NONE); uiItemR(col, userptr, "use_cyclic", 0, NULL, ICON_NONE); } -- cgit v1.2.3 From 2f60a5030f6c90c2278d3938460809de43012f85 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Jun 2011 04:34:20 +0000 Subject: Actions can now be made single-user from the Outliner * Use the same method as from unlinking actions to do this. * Split off the make single-user code used for the ID-browser into a function in blenkernel which can be used elsewhere. Getting materials to also work using this method proved to be a bit too tricky (due to the whole messy ob vs obdata situation), so I haven't done that. --- source/blender/blenkernel/BKE_library.h | 3 + source/blender/blenkernel/intern/action.c | 88 ++++++++++------ source/blender/blenkernel/intern/library.c | 28 +++++ .../editors/interface/interface_templates.c | 19 +--- source/blender/editors/space_outliner/outliner.c | 115 +++++++++++++++------ 5 files changed, 175 insertions(+), 78 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h index 871a78bbab3..0d6d41109b4 100644 --- a/source/blender/blenkernel/BKE_library.h +++ b/source/blender/blenkernel/BKE_library.h @@ -44,6 +44,8 @@ struct Main; struct Library; struct wmWindowManager; struct bContext; +struct PointerRNA; +struct PropertyRNA; void *alloc_libblock(struct ListBase *lb, short type, const char *name); void *copy_libblock(void *rt); @@ -53,6 +55,7 @@ void id_lib_extern(struct ID *id); void id_us_plus(struct ID *id); void id_us_min(struct ID *id); int id_make_local(struct ID *id, int test); +int id_single_user(struct bContext *C, struct ID *id, struct PointerRNA *ptr, struct PropertyRNA *prop); int id_copy(struct ID *id, struct ID **newid, int test); int id_unlink(struct ID *id, int test); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 08eed6d61ba..e69ff5df913 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -89,60 +89,80 @@ bAction *add_empty_action(const char name[]) return act; } +/* .................................. */ + +/* temp data for make_local_action */ +typedef struct tMakeLocalActionContext { + bAction *act; /* original action */ + bAction *actn; /* new action */ + + int lib; /* some action users were libraries */ + int local; /* some action users were not libraries */ +} tMakeLocalActionContext; + +/* helper function for make_local_action() - local/lib init step */ +static void make_localact_init_cb(ID *id, AnimData *adt, void *mlac_ptr) +{ + tMakeLocalActionContext *mlac = (tMakeLocalActionContext *)mlac_ptr; + + if (adt->action == mlac->act) { + if (id->lib) + mlac->lib = 1; + else + mlac->local = 1; + } +} + +/* helper function for make_local_action() - change references */ +static void make_localact_apply_cb(ID *id, AnimData *adt, void *mlac_ptr) +{ + tMakeLocalActionContext *mlac = (tMakeLocalActionContext *)mlac_ptr; + + if (adt->action == mlac->act) { + if (id->lib==0) { + adt->action = mlac->actn; + + id_us_plus(&mlac->actn->id); + id_us_min(&mlac->act->id); + } + } +} + // does copy_fcurve... void make_local_action(bAction *act) { - // Object *ob; + tMakeLocalActionContext mlac = {act, NULL, 0, 0}; Main *bmain= G.main; - bAction *actn; - int local=0, lib=0; - if (act->id.lib==NULL) return; - if (act->id.us==1) { + if (act->id.lib==NULL) + return; + + // XXX: double-check this; it used to be just single-user check, but that was when fake-users were still default + if ((act->id.flag & LIB_FAKEUSER) && (act->id.us<=1)) { act->id.lib= NULL; act->id.flag= LIB_LOCAL; new_id(&bmain->action, (ID *)act, NULL); return; } -#if 0 // XXX old animation system - ob= G.main->object.first; - while(ob) { - if(ob->action==act) { - if(ob->id.lib) lib= 1; - else local= 1; - } - ob= ob->id.next; - } -#endif + BKE_animdata_main_cb(bmain, make_localact_init_cb, &mlac); - if(local && lib==0) { + if (mlac.local && mlac.lib==0) { act->id.lib= NULL; act->id.flag= LIB_LOCAL; //make_local_action_channels(act); new_id(&bmain->action, (ID *)act, NULL); } - else if(local && lib) { - actn= copy_action(act); - actn->id.us= 0; + else if (mlac.local && mlac.lib) { + mlac.actn= copy_action(act); + mlac.actn->id.us= 0; -#if 0 // XXX old animation system - ob= G.main->object.first; - while(ob) { - if(ob->action==act) { - - if(ob->id.lib==0) { - ob->action = actn; - actn->id.us++; - act->id.us--; - } - } - ob= ob->id.next; - } -#endif // XXX old animation system + BKE_animdata_main_cb(bmain, make_localact_apply_cb, &mlac); } } +/* .................................. */ + void free_action (bAction *act) { /* sanity check */ @@ -161,6 +181,8 @@ void free_action (bAction *act) BLI_freelistN(&act->markers); } +/* .................................. */ + bAction *copy_action (bAction *src) { bAction *dst = NULL; diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 0b07f40cad6..5dbe35b2f7d 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -368,6 +368,34 @@ int id_unlink(ID *id, int test) return 0; } +int id_single_user(bContext *C, ID *id, PointerRNA *ptr, PropertyRNA *prop) +{ + ID *newid = NULL; + PointerRNA idptr; + + if (id) { + /* if property isn't editable, we're going to have an extra block hanging around until we save */ + if (RNA_property_editable(ptr, prop)) { + if (id_copy(id, &newid, 0) && newid) { + /* copy animation actions too */ + BKE_copy_animdata_id_action(id); + /* us is 1 by convention, but RNA_property_pointer_set + will also incremement it, so set it to zero */ + newid->us= 0; + + /* assign copy */ + RNA_id_pointer_create(newid, &idptr); + RNA_property_pointer_set(ptr, prop, idptr); + RNA_property_update(C, ptr, prop); + + return 1; + } + } + } + + return 0; +} + ListBase *which_libbase(Main *mainlib, short type) { switch( type ) { diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 32a20e82d2f..39abcecbb6b 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -234,7 +234,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) { TemplateID *template= (TemplateID*)arg_litem; PointerRNA idptr= RNA_property_pointer_get(&template->ptr, template->prop); - ID *id= idptr.data, *newid; + ID *id= idptr.data; int event= GET_INT_FROM_POINTER(arg_event); switch(event) { @@ -273,21 +273,8 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) } break; case UI_ID_ALONE: - if(id) { - /* make copy */ - if(id_copy(id, &newid, 0) && newid) { - /* copy animation actions too */ - BKE_copy_animdata_id_action(id); - /* us is 1 by convention, but RNA_property_pointer_set - will also incremement it, so set it to zero */ - newid->us= 0; - - /* assign copy */ - RNA_id_pointer_create(newid, &idptr); - RNA_property_pointer_set(&template->ptr, template->prop, idptr); - RNA_property_update(C, &template->ptr, template->prop); - } - } + if(id) + id_single_user(C, id, &template->ptr, template->prop); break; #if 0 case UI_ID_AUTO_NAME: diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 20be507f5a0..3e4641bc0b9 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -3340,6 +3340,23 @@ static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement * } } + +static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if (id) { + IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; + PointerRNA ptr = {{0}}; + PropertyRNA *prop; + + RNA_pointer_create(&iat->id, &RNA_AnimData, iat->adt, &ptr); + prop = RNA_struct_find_property(&ptr, "action"); + + id_single_user(C, id, &ptr, prop); + } +} + static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) { Group *group= (Group *)tselem->id; @@ -3634,10 +3651,18 @@ void OUTLINER_OT_group_operation(wmOperatorType *ot) /* **************************************** */ +typedef enum eOutlinerIdOpTypes { + OUTLINER_IDOP_INVALID = 0, + OUTLINER_IDOP_UNLINK, + OUTLINER_IDOP_LOCAL, + OUTLINER_IDOP_SINGLE +} eOutlinerIdOpTypes; + // TODO: implement support for changing the ID-block used static EnumPropertyItem prop_id_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, + {OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""}, + {OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""}, + {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, {0, NULL, 0, NULL, NULL} }; @@ -3646,7 +3671,7 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); SpaceOops *soops= CTX_wm_space_outliner(C); int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; + eOutlinerIdOpTypes event; /* check for invalid states */ if (soops == NULL) @@ -3656,33 +3681,65 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) event= RNA_enum_get(op->ptr, "type"); - if(event==1) { - switch(idlevel) { - case ID_AC: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); - ED_undo_push(C, "Unlink action"); - break; - case ID_MA: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); - - WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); - ED_undo_push(C, "Unlink material"); - break; - case ID_TE: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); - - WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); - ED_undo_push(C, "Unlink texture"); - break; - default: - BKE_report(op->reports, RPT_WARNING, "Not Yet"); + switch (event) { + case OUTLINER_IDOP_UNLINK: + { + /* unlink datablock from its parent */ + switch (idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + case ID_MA: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink material"); + break; + case ID_TE: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink texture"); + break; + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } } - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); + break; + + case OUTLINER_IDOP_LOCAL: + { + /* make local */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); + ED_undo_push(C, "Localized Data"); + } + break; + + case OUTLINER_IDOP_SINGLE: + { + /* make single user */ + switch (idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, singleuser_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Single-User Action"); + break; + + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } + } + break; + + default: + // invalid - unhandled + break; } /* wrong notifier still... */ -- cgit v1.2.3 From 2f10ded896a7e70b2e5ee9936674353a8b0dd203 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Jun 2011 05:07:12 +0000 Subject: Compiler warning fixes --- source/blender/blenkernel/intern/library.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 5dbe35b2f7d..a5da248a0eb 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -109,6 +109,8 @@ #include "BKE_gpencil.h" #include "BKE_fcurve.h" +#include "RNA_access.h" + #ifdef WITH_PYTHON #include "BPY_extern.h" #endif -- cgit v1.2.3 From e0e9c81c94264898e2c5f22f1b2300524271b605 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 29 Jun 2011 06:14:15 +0000 Subject: fix [#27800] Tooltips for shading mode options the wrong way round. --- source/blender/editors/object/object_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 527b97a6082..2dfb799f1ad 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1689,7 +1689,7 @@ void OBJECT_OT_shade_flat(wmOperatorType *ot) { /* identifiers */ ot->name= "Shade Flat"; - ot->description= "Display faces 'smooth' (using vertext normals)"; + ot->description= "Display faces 'flat'"; ot->idname= "OBJECT_OT_shade_flat"; /* api callbacks */ @@ -1704,7 +1704,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) { /* identifiers */ ot->name= "Shade Smooth"; - ot->description= "Display faces 'flat'"; + ot->description= "Display faces 'smooth' (using vertext normals)"; ot->idname= "OBJECT_OT_shade_smooth"; /* api callbacks */ -- cgit v1.2.3 From 2710c567b9deaba51f7d3bc2572a14872cb12641 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Jun 2011 13:00:19 +0000 Subject: Animation Editors - Small Visual Tweaks for Usability == Datablock filters in the headers are now hidden by default == This has been done because users were generally not frequently toggling these, so quick access vs screen-estate cost wasn't really worth it to have these always showing and taking up space on the header. Usage notes: - To show these again, click on the "Filter more..." toggle. - The "Filter more..." button DOES NOT affect whether those filters apply. Design notes: - I tried many other button/icon combinations, but those were either too space-hogging, vague, or had wrong button order. - I also tried putting a box around these, but there was too much padding. - The ordering of the filters has also been modified a bit so that the group/fcurve-name filters occur earlier in the list, given that they're used more frequently == Graph Editor - Use Fancy Drawing == Renamed this option to "Use High Quality Drawing" as suggested by Matt. "Fancy" isn't really descriptive enough. == Icons for Mode Dropdowns == The mode dropdowns in the DopeSheet and Graph Editors now have icons. - These were important enough (compared to the auto-snap mode) that some visual decoration was perhaps warranted. - It makes it easier to see at a glance what mode the view is in Icon choices: - In some cases, the icons seem like quite a natural fit IMO (i.e. outliner<->dopesheet, key<->shapekey editor, grease pencil, fcurve editor) - Action Editor uses an "object" icon to indicate that this is object- level only for now (though I hope to find a way to address this soon/later). This will be kept like this until then. - There isn't any icon for drivers, so after trying a few alternatives, I settled on area-link icon, since it ties together two entities using some link. --- source/blender/makesdna/DNA_action_types.h | 3 ++- source/blender/makesrna/intern/rna_action.c | 7 +++++++ source/blender/makesrna/intern/rna_space.c | 17 +++++++++-------- 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 0716d1ddbf2..3ead485e10a 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -566,7 +566,8 @@ typedef enum eDopeSheet_FilterFlag { /* DopeSheet general flags */ typedef enum eDopeSheet_Flag { - ADS_FLAG_SUMMARY_COLLAPSED = (1<<0) /* when summary is shown, it is collapsed, so all other channels get hidden */ + ADS_FLAG_SUMMARY_COLLAPSED = (1<<0), /* when summary is shown, it is collapsed, so all other channels get hidden */ + ADS_FLAG_SHOW_DBFILTERS = (1<<1) /* show filters for datablocks */ } eDopeSheet_Flag; diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 7fdb96fda6e..525868259a5 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -257,10 +257,17 @@ static void rna_def_dopesheet(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "DopeSheet", "Settings for filtering the channels shown in Animation Editors"); /* Source of DopeSheet data */ + // XXX: make this obsolete? prop= RNA_def_property(srna, "source", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "ID"); RNA_def_property_ui_text(prop, "Source", "ID-Block representing source data, currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil)"); + /* Show datablock filters */ + prop= RNA_def_property(srna, "show_datablock_filters", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SHOW_DBFILTERS); + RNA_def_property_ui_text(prop, "Show Datablock Filters", "Show options for whether channels related to certain types of data are included"); + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN, NULL); + /* General Filtering Settings */ prop= RNA_def_property(srna, "show_only_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index f4753e2efbe..79884ebf3e0 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1872,11 +1872,12 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + // XXX: action-editor is currently for object-level only actions, so show that using object-icon hint static EnumPropertyItem mode_items[] = { - {SACTCONT_DOPESHEET, "DOPESHEET", 0, "DopeSheet", "DopeSheet Editor"}, - {SACTCONT_ACTION, "ACTION", 0, "Action Editor", "Action Editor"}, - {SACTCONT_SHAPEKEY, "SHAPEKEY", 0, "ShapeKey Editor", "ShapeKey Editor"}, - {SACTCONT_GPENCIL, "GPENCIL", 0, "Grease Pencil", "Grease Pencil"}, + {SACTCONT_DOPESHEET, "DOPESHEET", ICON_OOPS, "DopeSheet", "DopeSheet Editor"}, + {SACTCONT_ACTION, "ACTION", ICON_OBJECT_DATA, "Action Editor", "Action Editor"}, + {SACTCONT_SHAPEKEY, "SHAPEKEY", ICON_SHAPEKEY_DATA, "ShapeKey Editor", "ShapeKey Editor"}, + {SACTCONT_GPENCIL, "GPENCIL", ICON_GREASEPENCIL, "Grease Pencil", "Grease Pencil"}, {0, NULL, 0, NULL, NULL}}; @@ -1955,8 +1956,8 @@ static void rna_def_space_graph(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem mode_items[] = { - {SIPO_MODE_ANIMATION, "FCURVES", 0, "F-Curve Editor", "Edit f-curves"}, - {SIPO_MODE_DRIVERS, "DRIVERS", 0, "Drivers", "Edit drivers"}, + {SIPO_MODE_ANIMATION, "FCURVES", ICON_IPO, "F-Curve Editor", "Edit animation/keyframes displayed as 2D curves"}, + {SIPO_MODE_DRIVERS, "DRIVERS", ICON_LINK_AREA, "Drivers", "Edit drivers"}, {0, NULL, 0, NULL, NULL}}; /* this is basically the same as the one for the 3D-View, but with some entries ommitted */ @@ -2013,9 +2014,9 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Only Selected Keyframes Handles", "Only show and edit handles of selected keyframes"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); - prop= RNA_def_property(srna, "use_fancy_drawing", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "use_beauty_drawing", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_BEAUTYDRAW_OFF); - RNA_def_property_ui_text(prop, "Use Fancy Drawing", "Draw F-Curves using Anti-Aliasing and other fancy effects. Disable for better performance"); + RNA_def_property_ui_text(prop, "Use High Quality Drawing", "Draw F-Curves using Anti-Aliasing and other fancy effects. Disable for better performance"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); /* editing */ -- cgit v1.2.3 From 8f89e7a309fa88bba05d65d8828d20322f0a25ab Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 29 Jun 2011 13:16:11 +0000 Subject: incorrectly had CMake storing directory names as filepaths also correct compiler warning for collada and remove print from own last commit. --- source/blender/collada/EffectExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp index 0bbf714137e..74756859d3b 100644 --- a/source/blender/collada/EffectExporter.cpp +++ b/source/blender/collada/EffectExporter.cpp @@ -273,7 +273,7 @@ void EffectsExporter::operator()(Material *ma, Object *ob) std::string uvname = strlen(t->uvname) ? t->uvname : active_uv; // color - if (t->mapto & MAP_COL | MAP_COLSPEC) { + if (t->mapto & (MAP_COL | MAP_COLSPEC)) { ep.setDiffuse(createTexture(ima, uvname, sampler)); } // ambient -- cgit v1.2.3 From 97e4681217e896ed85331d627f94f81c4bd8d9c1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 30 Jun 2011 01:07:03 +0000 Subject: Some tweaks to naming of channels in animation editors - thanks Matt * F-Curves no longer show the name of the datablock of the property they affect if this is an ID-block. For example, transform curves for a cube won't get the "... (Cube)" suffix anymore. In these cases, it's relatively clear that these belong to the parent datablock, so doing this should be fine (and reduces clutter). However, for non-id data (i.e. subsurf modifier settings) or bones, this info still gets shown. In these cases, there is some ambiguity. * "ActiveAct: <...>" is no longer shown for NLA action channels (i.e. just the name of the action gets shown). This should make it easier to see at a glance what action is being used. --- source/blender/editors/animation/anim_ipo_utils.c | 10 ++++++++-- source/blender/editors/space_nla/nla_draw.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index 209210435e6..fc05f46929b 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -100,6 +100,8 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) * - as base, we use a custom name from the structs if one is available * - however, if we're showing subdata of bones (probably there will be other exceptions later) * need to include that info too since it gets confusing otherwise + * - if a pointer just refers to the ID-block, then don't repeat this info + * since this just introduces clutter */ if (strstr(fcu->rna_path, "bones") && strstr(fcu->rna_path, "constraints")) { /* perform string 'chopping' to get "Bone Name : Constraint Name" */ @@ -114,7 +116,7 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) if (pchanName) MEM_freeN(pchanName); if (constName) MEM_freeN(constName); } - else { + else if (ptr.data != ptr.id.data) { PropertyRNA *nameprop= RNA_struct_name_property(ptr.type); if (nameprop) { /* this gets a string which will need to be freed */ @@ -145,7 +147,11 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) /* putting this all together into the buffer */ // XXX we need to check for invalid names... - BLI_snprintf(name, 256, "%s%s (%s)", arrayname, propname, structname); + // XXX the name length limit needs to be passed in or as some define + if (structname) + BLI_snprintf(name, 256, "%s%s (%s)", arrayname, propname, structname); + else + BLI_snprintf(name, 256, "%s%s", arrayname, propname); /* free temp name if nameprop is set */ if (free_structname) diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index e61b348716b..4c6740818dc 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -723,7 +723,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie special = ICON_ACTION; if (act) - sprintf(name, "ActAction: <%s>", act->id.name+2); + sprintf(name, "%s", act->id.name+2); else sprintf(name, ""); -- cgit v1.2.3 From bad785cce4c62d1f84c56a7417678a9dce47d4b7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 01:40:20 +0000 Subject: minor edits, no functional change. --- source/blender/modifiers/intern/MOD_displace.c | 14 ++++---------- source/blender/render/extern/include/RE_pipeline.h | 2 +- source/blender/render/intern/source/convertblender.c | 10 ++++------ 3 files changed, 9 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index 02845ecaab7..01f1b6fb2a7 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -172,6 +172,7 @@ static void displaceModifier_do( MDeformVert *dvert = NULL; int defgrp_index; float (*tex_co)[3]; + float weight= 1.0f; /* init value unused but some compilers may complain */ if(!dmd->texture) return; if(dmd->strength == 0.0f) return; @@ -189,17 +190,10 @@ static void displaceModifier_do( for(i = 0; i < numVerts; ++i) { TexResult texres; float delta = 0, strength = dmd->strength; - MDeformWeight *def_weight = NULL; if(dvert) { - int j; - for(j = 0; j < dvert[i].totweight; ++j) { - if(dvert[i].dw[j].def_nr == defgrp_index) { - def_weight = &dvert[i].dw[j]; - break; - } - } - if(!def_weight || def_weight->weight==0.0f) continue; + weight= defvert_find_weight(dvert + i, defgrp_index); + if(weight == 0.0f) continue; } texres.nor = NULL; @@ -207,7 +201,7 @@ static void displaceModifier_do( delta = texres.tin - dmd->midlevel; - if(def_weight) strength *= def_weight->weight; + if(dvert) strength *= weight; delta *= strength; CLAMP(delta, -10000, 10000); diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 6debe8c9bc3..d9ed83a00b2 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -266,7 +266,7 @@ void RE_zbuf_accumulate_vecblur(struct NodeBlurData *nbd, int xsize, int ysize, #define RE_BAKE_ALPHA 11 #define RE_BAKE_EMIT 12 -void RE_Database_Baking(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, int type, struct Object *actob); +void RE_Database_Baking(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, const int type, struct Object *actob); void RE_DataBase_GetView(struct Render *re, float mat[][4]); void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]); diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index a4ac92d394c..da7cdc307c6 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5680,13 +5680,14 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned RE_BAKE_DISPLACEMENT:for baking, no lamps, only selected objects RE_BAKE_SHADOW: for baking, only shadows, but all objects */ -void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, int type, Object *actob) +void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, const int type, Object *actob) { Object *camera; float mat[4][4]; float amb[3]; - int onlyselected, nolamps; - + const short onlyselected= !ELEM3(type, RE_BAKE_LIGHT, RE_BAKE_ALL, RE_BAKE_SHADOW); + const short nolamps= ELEM3(type, RE_BAKE_NORMALS, RE_BAKE_TEXTURE, RE_BAKE_DISPLACEMENT); + re->main= bmain; re->scene= scene; re->lay= lay; @@ -5755,9 +5756,6 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, set_node_shader_lamp_loop(shade_material_loop); /* MAKE RENDER DATA */ - nolamps= !ELEM3(type, RE_BAKE_LIGHT, RE_BAKE_ALL, RE_BAKE_SHADOW); - onlyselected= ELEM3(type, RE_BAKE_NORMALS, RE_BAKE_TEXTURE, RE_BAKE_DISPLACEMENT); - database_init_objects(re, lay, nolamps, onlyselected, actob, 0); set_material_lightgroups(re); -- cgit v1.2.3 From acc69b87d72ecd219185b98731ab351e7b9130d1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 02:02:16 +0000 Subject: fix/workaround [#27807] bake malloc loop if Deep Shadow && strand && children render strands use the window matrix and window size which were both zero while baking, this caused divides by 0 and eternal malloc loop. So set unit window matrix and dummy view size. This is more a workaround then a fix but avoids crashing. --- source/blender/render/intern/source/convertblender.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index da7cdc307c6..2c9aa4dece5 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5737,7 +5737,15 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, unit_m4(mat); RE_SetView(re, mat); } - + copy_m3_m4(re->imat, re->viewinv); + + /* TODO: deep shadow maps + baking + strands */ + /* strands use the window matrix and view size, there is to correct + * window matrix but at least avoids malloc and crash loop [#27807] */ + unit_m4(re->winmat); + re->winx= re->winy= 256; + /* done setting dummy values */ + init_render_world(re); /* do first, because of ambient. also requires re->osa set correct */ if(re->r.mode & R_RAYTRACE) { init_render_qmcsampler(re); -- cgit v1.2.3 From c490baceedec99fdd3b6f5233be721b56185d1e3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 02:52:13 +0000 Subject: minor change in logic for adding a new hook, ignore zero weight verts in a vgroup. --- source/blender/editors/object/object_hook.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 2d547da41f6..460b287724e 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -85,7 +85,7 @@ static int return_editmesh_indexar(EditMesh *em, int *tot, int **indexar, float *indexar= index= MEM_mallocN(4*totvert, "hook indexar"); *tot= totvert; nr= 0; - cent[0]= cent[1]= cent[2]= 0.0; + zero_v3(cent); for(eve= em->verts.first; eve; eve= eve->next) { if(eve->f & SELECT) { @@ -102,30 +102,29 @@ static int return_editmesh_indexar(EditMesh *em, int *tot, int **indexar, float static int return_editmesh_vgroup(Object *obedit, EditMesh *em, char *name, float *cent) { - MDeformVert *dvert; - EditVert *eve; - int i, totvert=0; - - cent[0]= cent[1]= cent[2]= 0.0; - + zero_v3(cent); + if(obedit->actdef) { - + const int defgrp_index= obedit->actdef-1; + int i, totvert=0; + + MDeformVert *dvert; + EditVert *eve; + /* find the vertices */ for(eve= em->verts.first; eve; eve= eve->next) { dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); if(dvert) { - for(i=0; itotweight; i++){ - if(dvert->dw[i].def_nr == (obedit->actdef-1)) { - totvert++; - add_v3_v3(cent, eve->co); - } + if(defvert_find_weight(dvert, defgrp_index) > 0.0f) { + add_v3_v3(cent, eve->co); + totvert++; } } } if(totvert) { - bDeformGroup *defGroup = BLI_findlink(&obedit->defbase, obedit->actdef-1); - strcpy(name, defGroup->name); + bDeformGroup *dg = BLI_findlink(&obedit->defbase, defgrp_index); + BLI_strncpy(name, dg->name, sizeof(dg->name)); mul_v3_fl(cent, 1.0f/(float)totvert); return 1; } -- cgit v1.2.3 From 5c3e73fd569604d19d579ce74eb5fa8ed3fb0a06 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 03:04:39 +0000 Subject: replace inline loops for get_weights_array with calls to defvert_find_weight() --- source/blender/blenkernel/intern/key.c | 19 +++++-------------- source/blender/editors/object/object_hook.c | 1 + 2 files changed, 6 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 4b532362cd8..78bfe79bf9b 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -63,6 +63,7 @@ #include "BKE_library.h" #include "BKE_main.h" #include "BKE_object.h" +#include "BKE_deform.h" #include "RNA_access.h" @@ -1005,7 +1006,7 @@ static float *get_weights_array(Object *ob, char *vgroup) MDeformVert *dvert= NULL; EditMesh *em= NULL; EditVert *eve; - int totvert= 0, index= 0; + int totvert= 0, defgrp_index= 0; /* no vgroup string set? */ if(vgroup[0]==0) return NULL; @@ -1028,7 +1029,7 @@ static float *get_weights_array(Object *ob, char *vgroup) if(dvert==NULL) return NULL; /* find the group (weak loop-in-loop) */ - index= defgroup_name_index(ob, vgroup); + defgrp_index= defgroup_name_index(ob, vgroup); if(index >= 0) { float *weights; int i, j; @@ -1040,23 +1041,13 @@ static float *get_weights_array(Object *ob, char *vgroup) dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); if(dvert) { - for(j=0; jtotweight; j++) { - if(dvert->dw[j].def_nr == index) { - weights[i]= dvert->dw[j].weight; - break; - } - } + weights[i]= defvert_find_weight(dvert, defgrp_index); } } } else { for(i=0; i < totvert; i++, dvert++) { - for(j=0; jtotweight; j++) { - if(dvert->dw[j].def_nr == index) { - weights[i]= dvert->dw[j].weight; - break; - } - } + weights[i]= defvert_find_weight(dvert, defgrp_index); } } diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 460b287724e..4dc944db28c 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -56,6 +56,7 @@ #include "BKE_object.h" #include "BKE_report.h" #include "BKE_scene.h" +#include "BKE_deform.h" #include "RNA_define.h" #include "RNA_access.h" -- cgit v1.2.3 From 66b565a376c1fea6117f4432a1f7ba77adcdec49 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 04:32:59 +0000 Subject: improve error report [#27775] External Image Editor Preference does not work also correct tooltip typo. --- source/blender/editors/object/object_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 2dfb799f1ad..29a740affc5 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1704,7 +1704,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) { /* identifiers */ ot->name= "Shade Smooth"; - ot->description= "Display faces 'smooth' (using vertext normals)"; + ot->description= "Display faces 'smooth' (using vertex normals)"; ot->idname= "OBJECT_OT_shade_smooth"; /* api callbacks */ -- cgit v1.2.3 From 2a85eff40cba602cb07aeb43c1af672ce2945bbb Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 30 Jun 2011 04:38:27 +0000 Subject: Bugfixes: * After changing driver target settings, the driver F-Curves now have their "disabled" flags cleared, so that they will be updated immediately instead of needing a manual "Update Dependencies" flush * Little comment tweak to appease my text editor --- source/blender/editors/interface/interface_handlers.c | 9 ++++++++- source/blender/makesrna/intern/rna_fcurve.c | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 99a31e039c8..c318b9ae6a9 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1236,7 +1236,7 @@ static short test_special_char(char ch) case ':': case ';': case '\'': - case '\"': + case '\"': // " - an extra closing one for Aligorith's text editor case '<': case '>': case ',': @@ -4220,6 +4220,7 @@ static int ui_but_menu(bContext *C, uiBut *but) /* Keyframes */ if(but->flag & UI_BUT_ANIMATED_KEY) { + /* replace/delete keyfraemes */ if(length) { uiItemBooleanO(layout, "Replace Keyframes", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 1); uiItemBooleanO(layout, "Replace Single Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0); @@ -4230,6 +4231,11 @@ static int ui_but_menu(bContext *C, uiBut *but) uiItemBooleanO(layout, "Replace Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0); uiItemBooleanO(layout, "Delete Keyframe", ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 0); } + + /* keyframe settings */ + uiItemS(layout); + + } else if(but->flag & UI_BUT_DRIVEN); else if(is_anim) { @@ -4272,6 +4278,7 @@ static int ui_but_menu(bContext *C, uiBut *but) } /* Keying Sets */ + // TODO: check on modifyability of Keying Set when doing this if(is_anim) { uiItemS(layout); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index ab3665fb8ff..5b3b4921727 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -139,6 +139,7 @@ static void rna_DriverTarget_update_data(Main *bmain, Scene *scene, PointerRNA * /* find the driver this belongs to and update it */ for (fcu=adt->drivers.first; fcu; fcu=fcu->next) { driver= fcu->driver; + fcu->flag &= ~FCURVE_DISABLED; if (driver) { // FIXME: need to be able to search targets for required one... -- cgit v1.2.3 From 85dc00e2543526e39112812d66dd251fb9592c62 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 30 Jun 2011 07:35:41 +0000 Subject: Fix for undefined "index" in key.c. Probably forgotten to be remaned to defgrp_index after recent commit here. --- source/blender/blenkernel/intern/key.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 78bfe79bf9b..cf5fe1c3740 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1030,7 +1030,7 @@ static float *get_weights_array(Object *ob, char *vgroup) /* find the group (weak loop-in-loop) */ defgrp_index= defgroup_name_index(ob, vgroup); - if(index >= 0) { + if(defgrp_index >= 0) { float *weights; int i, j; -- cgit v1.2.3 From f2c7cb0912faada4a38791afa7c801b92586c4ca Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Thu, 30 Jun 2011 12:37:59 +0000 Subject: When duplicating nodes in a tree, also copy the links between selected nodes, as well as input links from non-selected to selected nodes. --- source/blender/editors/space_node/node_edit.c | 57 +++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 71dd7b02e1c..a6a60035aa7 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2004,19 +2004,16 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceNode *snode= CTX_wm_space_node(C); bNodeTree *ntree= snode->edittree; - bNode *node, *newnode, *last; + bNode *node, *newnode, *lastnode; + bNodeLink *link, *newlink, *lastlink; ED_preview_kill_jobs(C); - last = ntree->nodes.last; + lastnode = ntree->nodes.last; for(node= ntree->nodes.first; node; node= node->next) { if(node->flag & SELECT) { newnode = nodeCopyNode(ntree, node); - /* deselect old node, select the copy instead */ - node->flag &= ~(NODE_SELECT|NODE_ACTIVE); - newnode->flag |= NODE_SELECT; - if(newnode->id) { /* simple id user adjustment, node internal functions dont touch this * but operators and readfile.c do. */ @@ -2027,7 +2024,53 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) } /* make sure we don't copy new nodes again! */ - if (node==last) + if (node==lastnode) + break; + } + + /* copy links between selected nodes + * NB: this depends on correct node->new_node and sock->new_sock pointers from above copy! + */ + lastlink = ntree->links.last; + for (link=ntree->links.first; link; link=link->next) { + /* this creates new links between copied nodes, + * as well as input links from unselected (when fromnode==NULL) ! + */ + if (link->tonode && (link->tonode->flag & NODE_SELECT)) { + newlink = MEM_callocN(sizeof(bNodeLink), "bNodeLink"); + newlink->flag = link->flag; + newlink->tonode = link->tonode->new_node; + newlink->tosock = link->tosock->new_sock; + if (link->fromnode && (link->fromnode->flag & NODE_SELECT)) { + newlink->fromnode = link->fromnode->new_node; + newlink->fromsock = link->fromsock->new_sock; + } + else { + /* input node not copied, this keeps the original input linked */ + newlink->fromnode = link->fromnode; + newlink->fromsock = link->fromsock; + } + + BLI_addtail(&ntree->links, newlink); + } + + /* make sure we don't copy new links again! */ + if (link==lastlink) + break; + } + + /* deselect old nodes, select the copies instead */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->flag & SELECT) { + /* has been set during copy above */ + newnode = node->new_node; + + node->flag &= ~(NODE_SELECT|NODE_ACTIVE); + newnode->flag |= NODE_SELECT; + } + + /* make sure we don't copy new nodes again! */ + if (node==lastnode) break; } -- cgit v1.2.3 From a6270b0204b2a9424eaa51d475aa761d77f43a69 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 30 Jun 2011 13:56:47 +0000 Subject: Animation Channels Filtering Refactor - Part 5 Channels can now be used as "animation containers" to be filtered further to obtain a set of subsidiary channels (i.e. F-Curves associated with some summary channel). The main use of this is that object and scene summary channels can now be defined without defining the filtering logic in three different places - once for channel filtering, once for drawing keyframes in action editor, and once for editing these keyframes. An indirect consequence of this, is that the "Only selected channels" option in Timeline will now result in only the keyframes for a selected bones getting shown (when enabled), instead of all keyframes for the active object. This was requested by Lee during Durian, and is something which has only become possible as a result of this commit. --- .../blender/editors/animation/anim_channels_edit.c | 4 - source/blender/editors/animation/anim_filter.c | 40 ++++ source/blender/editors/animation/keyframes_draw.c | 189 ++++++------------ source/blender/editors/animation/keyframes_edit.c | 211 +++++++-------------- source/blender/editors/armature/poselib.c | 2 +- source/blender/editors/include/ED_anim_api.h | 10 +- source/blender/editors/include/ED_keyframes_edit.h | 5 +- .../blender/editors/space_action/action_select.c | 17 +- source/blender/editors/space_nla/nla_edit.c | 2 +- source/blender/editors/space_time/space_time.c | 1 - 10 files changed, 177 insertions(+), 304 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 5b37c8071cd..f66e3a23bbf 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1405,10 +1405,6 @@ static EnumPropertyItem prop_animchannel_settings_types[] = { /* ------------------- */ -/* macro to be used in setflag_anim_channels */ -#define ASUBCHANNEL_SEL_OK(ale) ( (onlysel == 0) || \ - ((ale->id) && (GS(ale->id->name)==ID_OB) && (((Object *)ale->id)->flag & SELECT)) ) - /* Set/clear a particular flag (setting) for all selected + visible channels * setting: the setting to modify * mode: eAnimChannels_SetFlag diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index a7117af2151..b7264ae9a3e 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -127,6 +127,9 @@ static Key *actedit_get_shapekeys (bAnimContext *ac) /* Get data being edited in Action Editor (depending on current 'mode') */ static short actedit_get_context (bAnimContext *ac, SpaceAction *saction) { + /* get dopesheet */ + ac->ads = &saction->ads; + /* sync settings with current view status, then return appropriate data */ switch (saction->mode) { case SACTCONT_ACTION: /* 'Action Editor' */ @@ -190,6 +193,7 @@ static short graphedit_get_context (bAnimContext *ac, SpaceIpo *sipo) sipo->ads= MEM_callocN(sizeof(bDopeSheet), "GraphEdit DopeSheet"); sipo->ads->source= (ID *)ac->scene; } + ac->ads = sipo->ads; /* set settings for Graph Editor - "Selected = Editable" */ if (sipo->flag & SIPO_SELCUVERTSONLY) @@ -238,6 +242,7 @@ static short nlaedit_get_context (bAnimContext *ac, SpaceNla *snla) /* init dopesheet data if non-existant (i.e. for old files) */ if (snla->ads == NULL) snla->ads= MEM_callocN(sizeof(bDopeSheet), "NlaEdit DopeSheet"); + ac->ads = snla->ads; /* sync settings with current view status, then return appropriate data */ /* update scene-pointer (no need to check for pinning yet, as not implemented) */ @@ -2038,6 +2043,32 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim return 1; } +/* ......................... */ + +/* filter data associated with a channel - usually for handling summary-channels in DopeSheet */ +static size_t animdata_filter_animchan (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAnimListElem *channel, int filter_mode) +{ + size_t items = 0; + + /* data to filter depends on channel type */ + // XXX: only common channel-types have been handled for now + switch (channel->type) { + case ANIMTYPE_SUMMARY: + items += animdata_filter_dopesheet(ac, anim_data, ads, filter_mode); + break; + + case ANIMTYPE_SCENE: + items += animdata_filter_dopesheet_scene(ac, anim_data, ads, channel->data, filter_mode); + break; + + case ANIMTYPE_OBJECT: + items += animdata_filter_dopesheet_ob(ac, anim_data, ads, channel->data, filter_mode); + break; + } + + return items; +} + /* ----------- Cleanup API --------------- */ /* Remove entries with invalid types in animation channel list */ @@ -2157,6 +2188,15 @@ size_t ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_m items = animdata_filter_dopesheet(ac, anim_data, data, filter_mode); } break; + + case ANIMCONT_CHANNEL: /* animation channel */ + { + bDopeSheet *ads = ac->ads; + + /* based on the channel type, filter relevant data for this */ + items = animdata_filter_animchan(ac, anim_data, ads, data, filter_mode); + } + break; } /* remove any 'weedy' entries */ diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 453027632eb..b774bc947e4 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -786,150 +786,71 @@ void summary_to_keylist(bAnimContext *ac, DLRBT_Tree *keys, DLRBT_Tree *blocks) void scene_to_keylist(bDopeSheet *ads, Scene *sce, DLRBT_Tree *keys, DLRBT_Tree *blocks) { - if (sce) { - AnimData *adt; - int filterflag; - - /* get filterflag */ - if (ads) - filterflag= ads->filterflag; - else - filterflag= 0; - - /* scene animdata */ - if ((sce->adt) && !(filterflag & ADS_FILTER_NOSCE)) { - adt= sce->adt; - - if (adt->action) - action_to_keylist(adt, adt->action, keys, blocks); - } - - /* world animdata */ - if ((sce->world) && (sce->world->adt) && !(filterflag & ADS_FILTER_NOWOR)) { - adt= sce->world->adt; - - if (adt->action) - action_to_keylist(adt, adt->action, keys, blocks); - } - - /* nodetree animdata */ - if ((sce->nodetree) && (sce->nodetree->adt) && !(filterflag & ADS_FILTER_NONTREE)) { - adt= sce->nodetree->adt; - - if (adt->action) - action_to_keylist(adt, adt->action, keys, blocks); - } - } + bAnimContext ac = {NULL}; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + bAnimListElem dummychan = {0}; + + if (sce == NULL) + return; + + /* create a dummy wrapper data to work with */ + dummychan.type = ANIMTYPE_SCENE; + dummychan.data = sce; + dummychan.id = &sce->id; + dummychan.adt = sce->adt; + + ac.ads = ads; + ac.data = &dummychan; + ac.datatype = ANIMCONT_CHANNEL; + + /* get F-Curves to take keyframes from */ + filter= ANIMFILTER_DATA_VISIBLE; // curves only + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* loop through each F-Curve, grabbing the keyframes */ + for (ale= anim_data.first; ale; ale= ale->next) + fcurve_to_keylist(ale->adt, ale->data, keys, blocks); + + BLI_freelistN(&anim_data); } void ob_to_keylist(bDopeSheet *ads, Object *ob, DLRBT_Tree *keys, DLRBT_Tree *blocks) -{ - Key *key= ob_get_key(ob); - int filterflag= (ads)? ads->filterflag : 0; +{ + bAnimContext ac = {NULL}; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + bAnimListElem dummychan = {0}; + Base dummybase = {0}; - /* sanity check */ if (ob == NULL) return; - - /* Add action keyframes */ - if (ob->adt && ob->adt->action) - action_to_keylist(ob->adt, ob->adt->action, keys, blocks); - /* Add shapekey keyframes (only if dopesheet allows, if it is available) */ - if ((key && key->adt && key->adt->action) && !(filterflag & ADS_FILTER_NOSHAPEKEYS)) - action_to_keylist(key->adt, key->adt->action, keys, blocks); + /* create a dummy wrapper data to work with */ + dummybase.object = ob; - /* Add material keyframes */ - if ((ob->totcol) && !(filterflag & ADS_FILTER_NOMAT)) { - int a; - - for (a=1; a <= ob->totcol; a++) { - Material *ma= give_current_material(ob, a); - - /* there might not be a material */ - if (ELEM(NULL, ma, ma->adt)) - continue; - - /* add material's data */ - action_to_keylist(ma->adt, ma->adt->action, keys, blocks); - - // TODO: textures... - } - } + dummychan.type = ANIMTYPE_OBJECT; + dummychan.data = &dummybase; + dummychan.id = &ob->id; + dummychan.adt = ob->adt; - /* Add object data keyframes */ - switch (ob->type) { - case OB_CAMERA: /* ------- Camera ------------ */ - { - Camera *ca= (Camera *)ob->data; - - if ((ca->adt) && !(filterflag & ADS_FILTER_NOCAM)) - action_to_keylist(ca->adt, ca->adt->action, keys, blocks); - } - break; - case OB_LAMP: /* ---------- Lamp ----------- */ - { - Lamp *la= (Lamp *)ob->data; - - if ((la->adt) && !(filterflag & ADS_FILTER_NOLAM)) - action_to_keylist(la->adt, la->adt->action, keys, blocks); - } - break; - case OB_CURVE: /* ------- Curve ---------- */ - case OB_SURF: /* ------- Nurbs Surface ---------- */ - case OB_FONT: /* ------- Text Curve ---------- */ - { - Curve *cu= (Curve *)ob->data; - - if ((cu->adt) && !(filterflag & ADS_FILTER_NOCUR)) - action_to_keylist(cu->adt, cu->adt->action, keys, blocks); - } - break; - case OB_MBALL: /* ------- MetaBall ---------- */ - { - MetaBall *mb= (MetaBall *)ob->data; - - if ((mb->adt) && !(filterflag & ADS_FILTER_NOMBA)) - action_to_keylist(mb->adt, mb->adt->action, keys, blocks); - } - break; - case OB_ARMATURE: /* ------- Armature ---------- */ - { - bArmature *arm= (bArmature *)ob->data; - - if ((arm->adt) && !(filterflag & ADS_FILTER_NOARM)) - action_to_keylist(arm->adt, arm->adt->action, keys, blocks); - } - break; - case OB_MESH: /* ------- Mesh ---------- */ - { - Mesh *me= (Mesh *)ob->data; - - if ((me->adt) && !(filterflag & ADS_FILTER_NOMESH)) - action_to_keylist(me->adt, me->adt->action, keys, blocks); - } - break; - case OB_LATTICE: /* ------- Lattice ---------- */ - { - Lattice *lt= (Lattice *)ob->data; - - if ((lt->adt) && !(filterflag & ADS_FILTER_NOLAT)) - action_to_keylist(lt->adt, lt->adt->action, keys, blocks); - } - break; - } + ac.ads = ads; + ac.data = &dummychan; + ac.datatype = ANIMCONT_CHANNEL; - /* Add Particle System Keyframes */ - if ((ob->particlesystem.first) && !(filterflag & ADS_FILTER_NOPART)) { - ParticleSystem *psys = ob->particlesystem.first; - - for(; psys; psys=psys->next) { - if (ELEM(NULL, psys->part, psys->part->adt)) - continue; - else - action_to_keylist(psys->part->adt, psys->part->adt->action, keys, blocks); - } - } + /* get F-Curves to take keyframes from */ + filter= ANIMFILTER_DATA_VISIBLE; // curves only + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* loop through each F-Curve, grabbing the keyframes */ + for (ale= anim_data.first; ale; ale= ale->next) + fcurve_to_keylist(ale->adt, ale->data, keys, blocks); + + BLI_freelistN(&anim_data); } void fcurve_to_keylist(AnimData *adt, FCurve *fcu, DLRBT_Tree *keys, DLRBT_Tree *blocks) diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index ca8d1c232fa..a0b1b4a6ede 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -224,169 +224,94 @@ static short adt_keyframes_loop(KeyframeEditData *ked, AnimData *adt, KeyframeEd } /* This function is used to loop over the keyframe data in an Object */ -static short ob_keyframes_loop(KeyframeEditData *ked, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag) +static short ob_keyframes_loop(KeyframeEditData *ked, bDopeSheet *ads, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { - Key *key= ob_get_key(ob); + bAnimContext ac = {NULL}; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + int ret=0; + + bAnimListElem dummychan = {0}; + Base dummybase = {0}; - /* sanity check */ if (ob == NULL) return 0; - /* firstly, Object's own AnimData */ - if (ob->adt) { - if (adt_keyframes_loop(ked, ob->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } + /* create a dummy wrapper data to work with */ + dummybase.object = ob; - /* shapekeys */ - if ((key && key->adt) && !(filterflag & ADS_FILTER_NOSHAPEKEYS)) { - if (adt_keyframes_loop(ked, key->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - - /* Add material keyframes */ - if ((ob->totcol) && !(filterflag & ADS_FILTER_NOMAT)) { - int a; - - for (a=1; a <= ob->totcol; a++) { - Material *ma= give_current_material(ob, a); - - /* there might not be a material */ - if (ELEM(NULL, ma, ma->adt)) - continue; - - /* add material's data */ - if (adt_keyframes_loop(ked, ma->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } + dummychan.type = ANIMTYPE_OBJECT; + dummychan.data = &dummybase; + dummychan.id = &ob->id; + dummychan.adt = ob->adt; - /* Add object data keyframes */ - switch (ob->type) { - case OB_CAMERA: /* ------- Camera ------------ */ - { - Camera *ca= (Camera *)ob->data; - - if ((ca->adt) && !(filterflag & ADS_FILTER_NOCAM)) { - if (adt_keyframes_loop(ked, ca->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } - break; - case OB_LAMP: /* ---------- Lamp ----------- */ - { - Lamp *la= (Lamp *)ob->data; - - if ((la->adt) && !(filterflag & ADS_FILTER_NOLAM)) { - if (adt_keyframes_loop(ked, la->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } - break; - case OB_CURVE: /* ------- Curve ---------- */ - case OB_SURF: /* ------- Nurbs Surface ---------- */ - case OB_FONT: /* ------- Text Curve ---------- */ - { - Curve *cu= (Curve *)ob->data; - - if ((cu->adt) && !(filterflag & ADS_FILTER_NOCUR)) { - if (adt_keyframes_loop(ked, cu->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } - break; - case OB_MBALL: /* ------- MetaBall ---------- */ - { - MetaBall *mb= (MetaBall *)ob->data; - - if ((mb->adt) && !(filterflag & ADS_FILTER_NOMBA)) { - if (adt_keyframes_loop(ked, mb->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } - break; - case OB_ARMATURE: /* ------- Armature ---------- */ - { - bArmature *arm= (bArmature *)ob->data; - - if ((arm->adt) && !(filterflag & ADS_FILTER_NOARM)) { - if (adt_keyframes_loop(ked, arm->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } - break; - case OB_MESH: /* ------- Mesh ---------- */ - { - Mesh *me= (Mesh *)ob->data; - - if ((me->adt) && !(filterflag & ADS_FILTER_NOMESH)) { - if (adt_keyframes_loop(ked, me->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } + ac.ads = ads; + ac.data = &dummychan; + ac.datatype = ANIMCONT_CHANNEL; + + /* get F-Curves to take keyframes from */ + filter= ANIMFILTER_DATA_VISIBLE; // curves only + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* loop through each F-Curve, applying the operation as required, but stopping on the first one */ + for (ale= anim_data.first; ale; ale= ale->next) { + if (ANIM_fcurve_keyframes_loop(ked, (FCurve*)ale->data, key_ok, key_cb, fcu_cb)) { + ret = 1; break; - case OB_LATTICE: /* ---- Lattice ------ */ - { - Lattice *lt= (Lattice *)ob->data; - - if ((lt->adt) && !(filterflag & ADS_FILTER_NOLAT)) { - if (adt_keyframes_loop(ked, lt->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } } - break; } - /* Add Particle System Keyframes */ - if ((ob->particlesystem.first) && !(filterflag & ADS_FILTER_NOPART)) { - ParticleSystem *psys = ob->particlesystem.first; - - for(; psys; psys=psys->next) { - if (ELEM(NULL, psys->part, psys->part->adt)) - continue; - - if (adt_keyframes_loop(ked, psys->part->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } - } + BLI_freelistN(&anim_data); - return 0; + /* return return code - defaults to zero if nothing happened */ + return ret; } /* This function is used to loop over the keyframe data in a Scene */ -static short scene_keyframes_loop(KeyframeEditData *ked, Scene *sce, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag) +static short scene_keyframes_loop(KeyframeEditData *ked, bDopeSheet *ads, Scene *sce, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { - World *wo= (sce) ? sce->world : NULL; - bNodeTree *ntree= (sce) ? sce->nodetree : NULL; + bAnimContext ac = {NULL}; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + int ret=0; + + bAnimListElem dummychan = {0}; - /* sanity check */ if (sce == NULL) return 0; - /* Scene's own animation */ - if (sce->adt) { - if (adt_keyframes_loop(ked, sce->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } + /* create a dummy wrapper data to work with */ + dummychan.type = ANIMTYPE_SCENE; + dummychan.data = sce; + dummychan.id = &sce->id; + dummychan.adt = sce->adt; - /* World */ - if (wo && wo->adt) { - if (adt_keyframes_loop(ked, wo->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; - } + ac.ads = ads; + ac.data = &dummychan; + ac.datatype = ANIMCONT_CHANNEL; - /* NodeTree */ - if (ntree && ntree->adt) { - if (adt_keyframes_loop(ked, ntree->adt, key_ok, key_cb, fcu_cb, filterflag)) - return 1; + /* get F-Curves to take keyframes from */ + filter= ANIMFILTER_DATA_VISIBLE; // curves only + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* loop through each F-Curve, applying the operation as required, but stopping on the first one */ + for (ale= anim_data.first; ale; ale= ale->next) { + if (ANIM_fcurve_keyframes_loop(ked, (FCurve*)ale->data, key_ok, key_cb, fcu_cb)) { + ret = 1; + break; + } } + BLI_freelistN(&anim_data); - return 0; + /* return return code - defaults to zero if nothing happened */ + return ret; } /* This function is used to loop over the keyframe data in a DopeSheet summary */ -static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int UNUSED(filterflag)) +static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; @@ -416,7 +341,7 @@ static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, Key /* --- */ /* This function is used to apply operation to all keyframes, regardless of the type */ -short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag) +short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, bDopeSheet *ads, bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { /* sanity checks */ if (ale == NULL) @@ -437,18 +362,18 @@ short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, bAnimListElem *ale, return act_keyframes_loop(ked, (bAction *)ale->key_data, key_ok, key_cb, fcu_cb); case ALE_OB: /* object */ - return ob_keyframes_loop(ked, (Object *)ale->key_data, key_ok, key_cb, fcu_cb, filterflag); + return ob_keyframes_loop(ked, ads, (Object *)ale->key_data, key_ok, key_cb, fcu_cb); case ALE_SCE: /* scene */ - return scene_keyframes_loop(ked, (Scene *)ale->data, key_ok, key_cb, fcu_cb, filterflag); + return scene_keyframes_loop(ked, ads, (Scene *)ale->data, key_ok, key_cb, fcu_cb); case ALE_ALL: /* 'all' (DopeSheet summary) */ - return summary_keyframes_loop(ked, (bAnimContext *)ale->data, key_ok, key_cb, fcu_cb, filterflag); + return summary_keyframes_loop(ked, (bAnimContext *)ale->data, key_ok, key_cb, fcu_cb); } return 0; } /* This function is used to apply operation to all keyframes, regardless of the type without needed an AnimListElem wrapper */ -short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag) +short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, bDopeSheet *ads, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { /* sanity checks */ if (data == NULL) @@ -469,11 +394,11 @@ short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, void *data, int return act_keyframes_loop(ked, (bAction *)data, key_ok, key_cb, fcu_cb); case ALE_OB: /* object */ - return ob_keyframes_loop(ked, (Object *)data, key_ok, key_cb, fcu_cb, filterflag); + return ob_keyframes_loop(ked, ads, (Object *)data, key_ok, key_cb, fcu_cb); case ALE_SCE: /* scene */ - return scene_keyframes_loop(ked, (Scene *)data, key_ok, key_cb, fcu_cb, filterflag); + return scene_keyframes_loop(ked, ads, (Scene *)data, key_ok, key_cb, fcu_cb); case ALE_ALL: /* 'all' (DopeSheet summary) */ - return summary_keyframes_loop(ked, (bAnimContext *)data, key_ok, key_cb, fcu_cb, filterflag); + return summary_keyframes_loop(ked, (bAnimContext *)data, key_ok, key_cb, fcu_cb); } return 0; diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c index 5b4da1a38df..57da7733223 100644 --- a/source/blender/editors/armature/poselib.c +++ b/source/blender/editors/armature/poselib.c @@ -840,7 +840,7 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld) /* start applying - only those channels which have a key at this point in time! */ for (agrp= act->groups.first; agrp; agrp= agrp->next) { /* check if group has any keyframes */ - if (ANIM_animchanneldata_keyframes_loop(&ked, agrp, ALE_GROUP, NULL, group_ok_cb, NULL, 0)) { + if (ANIM_animchanneldata_keyframes_loop(&ked, NULL, agrp, ALE_GROUP, NULL, group_ok_cb, NULL)) { /* has keyframe on this frame, so try to get a PoseChannel with this name */ pchan= get_pose_channel(pose, agrp->name); diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index c149102a6a7..8454f058238 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -77,6 +77,8 @@ typedef struct bAnimContext { struct SpaceLink *sl; /* editor data */ struct ARegion *ar; /* region within editor */ + struct bDopeSheet *ads; /* dopesheet data for editor (or which is being used) */ + struct Scene *scene; /* active scene */ struct Object *obact; /* active object */ ListBase *markers; /* active set of markers */ @@ -85,7 +87,6 @@ typedef struct bAnimContext { } bAnimContext; /* Main Data container types */ -// XXX was ACTCONT_* typedef enum eAnimCont_Types { ANIMCONT_NONE = 0, /* invalid or no data */ ANIMCONT_ACTION, /* action (bAction) */ @@ -94,7 +95,8 @@ typedef enum eAnimCont_Types { ANIMCONT_DOPESHEET, /* dopesheet (bDopesheet) */ ANIMCONT_FCURVES, /* animation F-Curves (bDopesheet) */ ANIMCONT_DRIVERS, /* drivers (bDopesheet) */ - ANIMCONT_NLA /* nla (bDopesheet) */ + ANIMCONT_NLA, /* nla (bDopesheet) */ + ANIMCONT_CHANNEL /* animation channel (bAnimListElem) */ } eAnimCont_Types; /* --------------- Channels -------------------- */ @@ -256,8 +258,8 @@ typedef enum eAnimFilter_Flags { /* Action Channel Group */ #define EDITABLE_AGRP(agrp) ((agrp->flag & AGRP_PROTECTED)==0) #define EXPANDED_AGRP(ac, agrp) \ - ( ( ((ac)->spacetype == SPACE_IPO) && (agrp->flag & AGRP_EXPANDED_G) ) || \ - ( ((ac)->spacetype != SPACE_IPO) && (agrp->flag & AGRP_EXPANDED) ) ) + ( ((!(ac) || ((ac)->spacetype != SPACE_IPO)) && (agrp->flag & AGRP_EXPANDED)) || \ + (( (ac) && ((ac)->spacetype == SPACE_IPO)) && (agrp->flag & AGRP_EXPANDED_G)) ) #define SEL_AGRP(agrp) ((agrp->flag & AGRP_SELECTED) || (agrp->flag & AGRP_ACTIVE)) /* F-Curve Channels */ #define EDITABLE_FCU(fcu) ((fcu->flag & FCURVE_PROTECTED)==0) diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h index e6fe7efbaba..d9e7317fc66 100644 --- a/source/blender/editors/include/ED_keyframes_edit.h +++ b/source/blender/editors/include/ED_keyframes_edit.h @@ -35,6 +35,7 @@ struct bAnimContext; struct bAnimListElem; +struct bDopeSheet; struct FCurve; struct BezTriple; struct Scene; @@ -187,11 +188,11 @@ short ANIM_fcurve_keyframes_loop(KeyframeEditData *ked, struct FCurve *fcu, Keyf /* function for working with any type (i.e. one of the known types) of animation channel * - filterflag is bDopeSheet->flag (DOPESHEET_FILTERFLAG) */ -short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, struct bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag); +short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, struct bDopeSheet *ads, struct bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb); /* same as above, except bAnimListElem wrapper is not needed... * - keytype is eAnim_KeyType */ -short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag); +short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, struct bDopeSheet *ads, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb); /* functions for making sure all keyframes are in good order */ void ANIM_editkeyframes_refresh(struct bAnimContext *ac); diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index 0f84ae547ff..68dd0a8c256 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -198,7 +198,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; - int filter, filterflag; + int filter; KeyframeEditData ked; KeyframeEditFunc ok_cb, select_cb; @@ -214,14 +214,6 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); - /* get filtering flag for dopesheet data (if applicable) */ - if (ac->datatype == ANIMCONT_DOPESHEET) { - bDopeSheet *ads= (bDopeSheet *)ac->data; - filterflag= ads->filterflag; - } - else - filterflag= 0; - /* get beztriple editing/validation funcs */ select_cb= ANIM_editkeyframes_select(selectmode); @@ -261,7 +253,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short if (ale->type == ANIMTYPE_GPLAYER) borderselect_gplayer_frames(ale->data, rectf.xmin, rectf.xmax, selectmode); else - ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, filterflag); + ANIM_animchannel_keyframes_loop(&ked, ac->ads, ale, ok_cb, select_cb, NULL); } /* set minimum extent to be the maximum of the next channel */ @@ -900,9 +892,6 @@ void ACTION_OT_select_leftright (wmOperatorType *ot) /* option 1) select keyframe directly under mouse */ static void actkeys_mselect_single (bAnimContext *ac, bAnimListElem *ale, short select_mode, float selx) { - bDopeSheet *ads= (ac->datatype == ANIMCONT_DOPESHEET) ? ac->data : NULL; - int ds_filter = ((ads) ? (ads->filterflag) : (0)); - KeyframeEditData ked= {{NULL}}; KeyframeEditFunc select_cb, ok_cb; @@ -915,7 +904,7 @@ static void actkeys_mselect_single (bAnimContext *ac, bAnimListElem *ale, short if (ale->type == ANIMTYPE_GPLAYER) select_gpencil_frame(ale->data, selx, select_mode); else - ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, ds_filter); + ANIM_animchannel_keyframes_loop(&ked, ac->ads, ale, ok_cb, select_cb, NULL); } /* Option 2) Selects all the keyframes on either side of the current frame (depends on which side the mouse is on) */ diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 2d6ecbc4378..988ff49f20e 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -1474,7 +1474,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *UNUSED(op)) /* setup iterator, and iterate over all the keyframes in the action, applying this scaling */ ked.data= strip; - ANIM_animchanneldata_keyframes_loop(&ked, strip->act, ALE_ACT, NULL, bezt_apply_nlamapping, calchandles_fcurve, 0); + ANIM_animchanneldata_keyframes_loop(&ked, ac.ads, strip->act, ALE_ACT, NULL, bezt_apply_nlamapping, calchandles_fcurve); /* clear scale of strip now that it has been applied, * and recalculate the extents of the action now that it has been scaled diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index e55fbe11e52..b4cd4a5abdd 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -277,7 +277,6 @@ static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel) BLI_dlrbTree_init(&keys); /* init dopesheet settings */ - // FIXME: the ob_to_keylist function currently doesn't take this into account... if (onlysel) ads.filterflag |= ADS_FILTER_ONLYSEL; -- cgit v1.2.3 From 06fcf2e6ef7a1483021a43dab3a5c1920a2ef9b4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 30 Jun 2011 15:02:03 +0000 Subject: Todo item: Closed regions didn't always draw the (+) icon right place, confusing for users. Next to that, I think this icon is using a bad metaphor or visual language, Illustrated best if you close a header in outliner or buttons. Icons are UI widgets, for screen/editor layouts different controls can be stylized. My preference is something that aligns visually to the seperators between regions; for testing and hacking pleasure I've added two quick versions, a small tabbish thing and a triangle. Enable these with debug menu, ALT+CTRL+D, values 1 or 2. This is simply drawn with opengl now. An image for it can be made as well. Previews: http://www.blender.org/bf/closed_regions1.png http://www.blender.org/bf/closed_regions2.png http://www.blender.org/bf/closed_regions3.png There's other design ideas to explore as well, like making region deviders 8-10 pixels wide, with a 'drag me' dot on it or so. That takes some screen estate though, and will require to add big editor-dividers too... Fun stuff for the mockup-mafia to check on, we have time :) --- source/blender/editors/interface/interface_draw.c | 10 +- .../blender/editors/interface/interface_widgets.c | 2 +- source/blender/editors/screen/area.c | 218 +++++++++++++++++++-- source/blender/editors/screen/screen_edit.c | 2 +- 4 files changed, 205 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index c7f11116834..97299a6a766 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -142,13 +142,13 @@ void uiDrawBox(int mode, float minx, float miny, float maxx, float maxy, float r static void round_box_shade_col(float *col1, float *col2, float fac) { - float col[3]; + float col[4]; col[0]= (fac*col1[0] + (1.0f-fac)*col2[0]); col[1]= (fac*col1[1] + (1.0f-fac)*col2[1]); col[2]= (fac*col1[2] + (1.0f-fac)*col2[2]); - - glColor3fv(col); + col[3]= (fac*col1[3] + (1.0f-fac)*col2[3]); + glColor4fv(col); } @@ -159,7 +159,7 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293}, {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}}; float div= maxy-miny; - float coltop[3], coldown[3], color[4]; + float coltop[4], coldown[4], color[4]; int a; /* mult */ @@ -173,9 +173,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl coltop[0]= color[0]+shadetop; if(coltop[0]>1.0f) coltop[0]= 1.0f; coltop[1]= color[1]+shadetop; if(coltop[1]>1.0f) coltop[1]= 1.0f; coltop[2]= color[2]+shadetop; if(coltop[2]>1.0f) coltop[2]= 1.0f; + coltop[3]= color[3]; coldown[0]= color[0]+shadedown; if(coldown[0]<0.0f) coldown[0]= 0.0f; coldown[1]= color[1]+shadedown; if(coldown[1]<0.0f) coldown[1]= 0.0f; coldown[2]= color[2]+shadedown; if(coldown[2]<0.0f) coldown[2]= 0.0f; + coldown[3]= color[3]; glShadeModel(GL_SMOOTH); glBegin(mode); diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index b6e255b6758..25a64994f5c 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -180,7 +180,7 @@ void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y glEnable(GL_BLEND); glGetFloatv(GL_CURRENT_COLOR, color); - color[3]= 0.125; + color[3]*= 0.125; glColor4fv(color); /* for each AA step */ diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 4d531e78ec0..82986dfbcc4 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -188,17 +188,12 @@ static void area_draw_azone(short x1, short y1, short x2, short y2) } -static void region_draw_azone(AZone *az) +static void region_draw_azone_icon(AZone *az) { GLUquadricObj *qobj = NULL; short midx = az->x1 + (az->x2 - az->x1)/2; short midy = az->y1 + (az->y2 - az->y1)/2; - - if(az->ar==NULL) return; - - /* only display action zone icons when the region is hidden */ - if (!(az->ar->flag & RGN_FLAG_HIDDEN)) return; - + qobj = gluNewQuadric(); glPushMatrix(); @@ -227,6 +222,79 @@ static void region_draw_azone(AZone *az) sdrawline(midx-2, midy, midx+3, midy); } +static void region_draw_azone_tab(AZone *az) +{ + float col[3]; + + glEnable(GL_BLEND); + UI_GetThemeColor3fv(TH_HEADER, col); + glColor4f(col[0], col[1], col[2], 0.5f); + + /* add code to draw region hidden as 'too small' */ + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + uiSetRoundBox(3 + 16); + + uiDrawBoxShade(GL_POLYGON, (float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f, -0.3f, 0.05f); + glColor4ub(0, 0, 0, 255); + uiRoundRect((float)az->x1, 0.3f+(float)az->y1, (float)az->x2, 0.3f+(float)az->y2, 4.0f); + break; + case AE_BOTTOM_TO_TOPLEFT: + uiSetRoundBox(12 + 16); + + uiDrawBoxShade(GL_POLYGON, (float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f, -0.3f, 0.05f); + glColor4ub(0, 0, 0, 255); + uiRoundRect((float)az->x1, 0.3f+(float)az->y1, (float)az->x2, 0.3f+(float)az->y2, 4.0f); + break; + case AE_LEFT_TO_TOPRIGHT: + uiSetRoundBox(9 + 16); + + uiDrawBoxShade(GL_POLYGON, (float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f, -0.3f, 0.05f); + glColor4ub(0, 0, 0, 255); + uiRoundRect((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f); + break; + case AE_RIGHT_TO_TOPLEFT: + uiSetRoundBox(6 + 16); + + uiDrawBoxShade(GL_POLYGON, (float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f, -0.3f, 0.05f); + glColor4ub(0, 0, 0, 255); + uiRoundRect((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f); + break; + } + + glDisable(GL_BLEND); +} + +static void region_draw_azone_tria(AZone *az) +{ + extern void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3); /* xxx temp */ + + glEnable(GL_BLEND); + //UI_GetThemeColor3fv(TH_HEADER, col); + glColor4f(0.0f, 0.0f, 0.0f, 0.35f); + + /* add code to draw region hidden as 'too small' */ + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + ui_draw_anti_tria((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y1, (float)(az->x1+az->x2)/2, (float)az->y2); + break; + + case AE_BOTTOM_TO_TOPLEFT: + ui_draw_anti_tria((float)az->x1, (float)az->y2, (float)az->x2, (float)az->y2, (float)(az->x1+az->x2)/2, (float)az->y1); + break; + + case AE_LEFT_TO_TOPRIGHT: + ui_draw_anti_tria((float)az->x2, (float)az->y1, (float)az->x2, (float)az->y2, (float)az->x1, (float)(az->y1+az->y2)/2); + break; + + case AE_RIGHT_TO_TOPLEFT: + ui_draw_anti_tria((float)az->x1, (float)az->y1, (float)az->x1, (float)az->y2, (float)az->x2, (float)(az->y1+az->y2)/2); + break; + + } + + glDisable(GL_BLEND); +} /* only exported for WM */ void ED_area_overdraw(bContext *C) @@ -248,7 +316,19 @@ void ED_area_overdraw(bContext *C) if(az->type==AZONE_AREA) { area_draw_azone(az->x1, az->y1, az->x2, az->y2); } else if(az->type==AZONE_REGION) { - region_draw_azone(az); + + if(az->ar) { + /* only display tab or icons when the region is hidden */ + if (az->ar->flag & (RGN_FLAG_HIDDEN|RGN_FLAG_TOO_SMALL)) { + + if(G.rt==2) + region_draw_azone_tria(az); + else if(G.rt==1) + region_draw_azone_tab(az); + else + region_draw_azone_icon(az); + } + } } az->do_draw= 0; @@ -579,6 +659,96 @@ static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar) } } +#define AZONEPAD_TABW 18 +#define AZONEPAD_TABH 7 + +/* region already made zero sized, in shape of edge */ +static void region_azone_tab(ScrArea *sa, AZone *az, ARegion *ar) +{ + AZone *azt; + int tot= 0, add; + + for(azt= sa->actionzones.first; azt; azt= azt->next) { + if(azt->edge == az->edge) tot++; + } + + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + if(ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; + az->x1= ar->winrct.xmax - 2*AZONEPAD_TABW; + az->y1= ar->winrct.ymax - add; + az->x2= ar->winrct.xmax - AZONEPAD_TABW; + az->y2= ar->winrct.ymax - add + AZONEPAD_TABH; + break; + case AE_BOTTOM_TO_TOPLEFT: + az->x1= ar->winrct.xmin + AZONEPAD_TABW; + az->y1= ar->winrct.ymin - AZONEPAD_TABH; + az->x2= ar->winrct.xmin + 2*AZONEPAD_TABW; + az->y2= ar->winrct.ymin; + break; + case AE_LEFT_TO_TOPRIGHT: + az->x1= ar->winrct.xmin + 1 - AZONEPAD_TABH; + az->y1= ar->winrct.ymax - 2*AZONEPAD_TABW; + az->x2= ar->winrct.xmin + 1; + az->y2= ar->winrct.ymax - AZONEPAD_TABW; + break; + case AE_RIGHT_TO_TOPLEFT: + az->x1= ar->winrct.xmax - 1; + az->y1= ar->winrct.ymax - 2*AZONEPAD_TABW; + az->x2= ar->winrct.xmax - 1 + AZONEPAD_TABH; + az->y2= ar->winrct.ymax - AZONEPAD_TABW; + break; + } + /* rect needed for mouse pointer test */ + BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); +} + +#define AZONEPAD_TRIAW 16 +#define AZONEPAD_TRIAH 9 + + +/* region already made zero sized, in shape of edge */ +static void region_azone_tria(ScrArea *sa, AZone *az, ARegion *ar) +{ + AZone *azt; + int tot= 0, add; + + for(azt= sa->actionzones.first; azt; azt= azt->next) { + if(azt->edge == az->edge) tot++; + } + + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + if(ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; + az->x1= ar->winrct.xmax - 2*AZONEPAD_TRIAW; + az->y1= ar->winrct.ymax - add; + az->x2= ar->winrct.xmax - AZONEPAD_TRIAW; + az->y2= ar->winrct.ymax - add + AZONEPAD_TRIAH; + break; + case AE_BOTTOM_TO_TOPLEFT: + az->x1= ar->winrct.xmin + AZONEPAD_TRIAW; + az->y1= ar->winrct.ymin - AZONEPAD_TRIAH; + az->x2= ar->winrct.xmin + 2*AZONEPAD_TRIAW; + az->y2= ar->winrct.ymin; + break; + case AE_LEFT_TO_TOPRIGHT: + az->x1= ar->winrct.xmin + 1 - AZONEPAD_TRIAH; + az->y1= ar->winrct.ymax - 2*AZONEPAD_TRIAW; + az->x2= ar->winrct.xmin + 1; + az->y2= ar->winrct.ymax - AZONEPAD_TRIAW; + break; + case AE_RIGHT_TO_TOPLEFT: + az->x1= ar->winrct.xmax - 1; + az->y1= ar->winrct.ymax - 2*AZONEPAD_TRIAW; + az->x2= ar->winrct.xmax - 1 + AZONEPAD_TRIAH; + az->y2= ar->winrct.ymax - AZONEPAD_TRIAW; + break; + } + /* rect needed for mouse pointer test */ + BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); +} + + static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge) { AZone *az; @@ -589,8 +759,13 @@ static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge) az->ar= ar; az->edge= edge; - if (ar->flag & RGN_FLAG_HIDDEN) { - region_azone_icon(sa, az, ar); + if (ar->flag & (RGN_FLAG_HIDDEN|RGN_FLAG_TOO_SMALL)) { + if(G.rt==2) + region_azone_tria(sa, az, ar); + else if(G.rt==1) + region_azone_tab(sa, az, ar); + else + region_azone_icon(sa, az, ar); } else { region_azone_edge(az, ar); } @@ -790,15 +965,6 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int ar->winx= ar->winrct.xmax - ar->winrct.xmin + 1; ar->winy= ar->winrct.ymax - ar->winrct.ymin + 1; - /* restore test exception */ - if(ar->alignment & RGN_SPLIT_PREV) { - if(ar->prev) { - remainder= remainder_prev; - ar->prev->winx= ar->prev->winrct.xmax - ar->prev->winrct.xmin + 1; - ar->prev->winy= ar->prev->winrct.ymax - ar->prev->winrct.ymin + 1; - } - } - /* set winrect for azones */ if(ar->flag & (RGN_FLAG_HIDDEN|RGN_FLAG_TOO_SMALL)) { ar->winrct= *remainder; @@ -814,12 +980,22 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int else /* prevent winrct to be valid */ ar->winrct.xmax= ar->winrct.xmin; } + + /* restore prev-split exception */ + if(ar->alignment & RGN_SPLIT_PREV) { + if(ar->prev) { + remainder= remainder_prev; + ar->prev->winx= ar->prev->winrct.xmax - ar->prev->winrct.xmin + 1; + ar->prev->winy= ar->prev->winrct.ymax - ar->prev->winrct.ymin + 1; + } + } + /* in end, add azones, where appropriate */ if(ar->regiontype == RGN_TYPE_HEADER && ar->winy + 6 > sa->winy) { /* The logic for this is: when the header takes up the full area, * disallow hiding it to view the main window. * - * Without this, uou can drag down the file selectors header and hide it + * Without this, you can drag down the file selectors header and hide it * by accident very easily (highly annoying!), the value 6 is arbitrary * but accounts for small common rounding problems when scaling the UI, * must be minimum '4' */ @@ -833,7 +1009,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int static void area_calc_totrct(ScrArea *sa, int sizex, int sizey) { - short rt= CLAMPIS(G.rt, 0, 16); + short rt= 0; // CLAMPIS(G.rt, 0, 16); if(sa->v1->vec.x>0) sa->totrct.xmin= sa->v1->vec.x+1+rt; else sa->totrct.xmin= sa->v1->vec.x; diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 721ce823351..80a65d3224e 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -910,7 +910,7 @@ static void drawscredge_area(ScrArea *sa, int sizex, int sizey, int center) short y2= sa->v3->vec.y; short a, rt; - rt= CLAMPIS(G.rt, 0, 16); + rt= 0; // CLAMPIS(G.rt, 0, 16); if(center==0) { cpack(0x505050); -- cgit v1.2.3 From 7f1fe0fdc23cbd0aaf2d285643dd718531eeb32c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Jun 2011 15:43:38 +0000 Subject: fix for own mistake with key shortcuts r37850 --- source/blender/blenkernel/intern/key.c | 2 +- source/blender/editors/armature/armature_ops.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index cf5fe1c3740..8b0cfb1d156 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1032,7 +1032,7 @@ static float *get_weights_array(Object *ob, char *vgroup) defgrp_index= defgroup_name_index(ob, vgroup); if(defgrp_index >= 0) { float *weights; - int i, j; + int i; weights= MEM_callocN(totvert*sizeof(float), "weights"); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 7bc9bb48a4c..16b748737ca 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -265,7 +265,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf) /* set flags */ WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0); /* armature/bone layers */ @@ -343,7 +343,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf) /* set flags */ WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0); /* armature/bone layers */ -- cgit v1.2.3 From 038feabedda82eb04b7b081c53a6b06d120f54e3 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 30 Jun 2011 18:24:45 +0000 Subject: Light color parameter animation export support. --- source/blender/collada/AnimationExporter.cpp | 32 ++++++++++++++++++++++------ source/blender/collada/AnimationExporter.h | 1 + source/blender/collada/TransformReader.cpp | 1 + 3 files changed, 27 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index ade1475c871..50f96926fab 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -29,6 +29,7 @@ template void forEachObjectInScene(Scene *sce, Functor &f) { Base *base= (Base*) sce->base.first; + while(base) { Object *ob = base->object; @@ -54,8 +55,16 @@ void AnimationExporter::exportAnimations(Scene *sce) // called for each exported object void AnimationExporter::operator() (Object *ob) { - if (!ob->adt || !ob->adt->action) return; //this is already checked in hasAnimations() - FCurve *fcu = (FCurve*)ob->adt->action->curves.first; + FCurve *fcu; + if(ob->adt && ob->adt->action) + fcu = (FCurve*)ob->adt->action->curves.first; + else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) + fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + else return; + //if (!ob->adt || !ob->adt->action) + // fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() + //else + // fcu = (FCurve*)ob->adt->action->curves.first; char * transformName = extract_transform_name( fcu->rna_path ); @@ -78,8 +87,10 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| - (!strcmp(transformName, "rotation_quaternion"))) + (!strcmp(transformName, "rotation_quaternion")) || + (!strcmp(transformName, "color"))) dae_animation(ob ,fcu, transformName ); + fcu = fcu->next; } @@ -153,7 +164,12 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ } - + else if ( !strcmp(transformName, "color") ) + { + const char *axis_names[] = {"R", "G", "B"}; + if (fcu->array_index < 3) + axis_name = axis_names[fcu->array_index]; + } else { const char *axis_names[] = {"X", "Y", "Z"}; @@ -837,17 +853,19 @@ void AnimationExporter::exportAnimations(Scene *sce) bool AnimationExporter::hasAnimations(Scene *sce) { Base *base= (Base*) sce->base.first; + while(base) { Object *ob = base->object; FCurve *fcu = 0; if(ob->adt && ob->adt->action) fcu = (FCurve*)ob->adt->action->curves.first; - - //The Scene has animations if object type is armature or object has f-curve + else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) + fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + //The Scene has animations if object type is armature or object has f-curve or object is a Lamp which has f-curves if ((ob->type == OB_ARMATURE && ob->data) || fcu) { return true; - } + } base= base->next; } return false; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index e05fac4eed7..85e5e23d0f0 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -32,6 +32,7 @@ extern "C" #include "DNA_anim_types.h" #include "DNA_action_types.h" #include "DNA_curve_types.h" +#include "DNA_lamp_types.h" #include "DNA_armature_types.h" #include "BKE_DerivedMesh.h" diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp index 625a0220830..0fd0c85aa09 100644 --- a/source/blender/collada/TransformReader.cpp +++ b/source/blender/collada/TransformReader.cpp @@ -37,6 +37,7 @@ void TransformReader::get_node_mat(float mat[][4], COLLADAFW::Node *node, std::m { float cur[4][4]; float copy[4][4]; + float eul[3]; unit_m4(mat); -- cgit v1.2.3 From 20de4f27b6be5b4494e1338fe737cf2df42a283e Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Fri, 1 Jul 2011 01:00:20 +0000 Subject: ndof popup menu (experimental (mostly harmless)) --- source/blender/windowmanager/intern/wm_operators.c | 99 ++++++++++++++++++++-- 1 file changed, 94 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index e36849e103c..7d6a50043b5 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1376,6 +1376,61 @@ static void WM_OT_search_menu(wmOperatorType *ot) // BEGIN ndof menu -- experimental! +static uiBlock* wm_block_ndof_menu_1st(bContext* C, ARegion* ar, void* UNUSED(arg_op)) +{ + uiBlock* block; + uiBut* but; + + block = uiBeginBlock(C, ar, "ndof_popup_menu", UI_EMBOSS); + uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); +// uiBlockSetDirection(block, UI_DOWN); +// uiBlockBeginAlign(block); + + // uiItemBooleanO(block->curlayout, "enable pan/zoom", ICON_NDOF_TRANS, "toggle_ndof_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); + // uiBlock is used as an opaque type in this file, so can't use members... + + int foo = 333; + uiDefButI(block, TOG, 0, "foo", 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, &foo, 0.f, 1.f, 0.1f, 0.9f, "15%"); + // uiDefBut(block, TOG, 0, "enable pan/zoom", 0, 0, 10, 10, NULL, 0.f, 1.f, 0.f, 1.f, "don't talk to strangers"); + +// uiBlockEndAlign(block); +// uiBoundsBlock(block, 6); + uiEndBlock(C, block); + + return block; +} + +static uiBlock *wm_block_ndof_menu(bContext *C, ARegion *ar, void *UNUSED(arg_op)) +{ + static char search[256]= ""; + wmEvent event; + wmWindow *win= CTX_wm_window(C); + uiBlock *block; + uiBut *but; + + block= uiBeginBlock(C, ar, "ndof_popup", UI_EMBOSS); +// uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); + uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_POPUP|UI_BLOCK_MOVEMOUSE_QUIT); + + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, 0, 0, ""); + uiButSetSearchFunc(but, operator_search_cb, NULL, operator_call_cb, NULL); + + /* fake button, it holds space for search items */ + uiDefBut(block, LABEL, 0, "", 10, 10 - uiSearchBoxhHeight(), 9*UI_UNIT_X, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); + + uiPopupBoundsBlock(block, 6, 0, -UI_UNIT_Y); /* move it downwards, mouse over button */ + uiEndBlock(C, block); + + event= *(win->eventstate); /* XXX huh huh? make api call */ + event.type= EVT_BUT_OPEN; + event.val= KM_PRESS; + event.customdata= but; + event.customdatafree= FALSE; + wm_event_add(win, &event); + + return block; +} + static int wm_ndof_menu_poll(bContext *C) { if(CTX_wm_window(C)==NULL) @@ -1396,11 +1451,45 @@ static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - puts("ndof: menu invoke"); + printf("ndof: menu invoked in "); - uiPupMenuNotice(C, "Hello!"); + switch (CTX_wm_area(C)->spacetype) // diff spaces can have diff 3d mouse options + { + case SPACE_VIEW3D: + puts("3D area"); + break; + case SPACE_IMAGE: + puts("image area"); + break; + default: + puts("some iNDOFferent area"); + } + +// uiPupMenuNotice(C, "Hello!"); // <-- this works +// uiPupBlock(C, wm_block_ndof_menu, op); // <-- no luck! +// ui_popup_menu_create(C, NULL, NULL, NULL, NULL, "Hello!"); // <-- this works + + uiPopupMenu* pup = uiPupMenuBegin(C,"3D mouse settings",ICON_NDOF_TURN); + uiLayout* layout = uiPupMenuLayout(pup); + + //uiBlock* block = uiLayoutGetBlock(layout); + //int foo = 1; + //uiDefButI(block, TOG, 0, "foo", 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, &foo, 0.f, 1.f, 0.1f, 0.9f, "15%"); - return OPERATOR_CANCELLED; + uiItemS(layout); // separator + + uiItemBooleanO(layout, "enable pan/zoom", ICON_NDOF_TRANS, "ndof_toggle_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); + uiItemBooleanO(layout, "enable rotation", ICON_NDOF_TURN, "ndof_toggle_rotation_enabled", "ndof_rotation_enabled", 1); + uiItemFloatO(layout, "sensitivity", 0, "ndof_adjust_sensitivity", "ndof_sensitivity", 1.f); + uiItemV(layout,"sensitivity",ICON_NDOF_TRANS, 1); + + uiItemS(layout); + uiItemL(layout, "3D navigation mode", ICON_NDOF_FLY); + uiItemL(layout, "...", 0); + + uiPupMenuEnd(C,pup); + + return OPERATOR_CANCELLED; // <-- correct? } static void WM_OT_ndof_menu(wmOperatorType *ot) @@ -1410,8 +1499,8 @@ static void WM_OT_ndof_menu(wmOperatorType *ot) ot->idname= "WM_OT_ndof_menu"; ot->invoke= wm_ndof_menu_invoke; - ot->exec= wm_ndof_menu_exec; - ot->poll= wm_ndof_menu_poll; +// ot->exec= wm_ndof_menu_exec; +// ot->poll= wm_ndof_menu_poll; } // END ndof menu -- cgit v1.2.3 From 77dbc5c9141558ec2cfb08772857cf2048f9c58c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jul 2011 02:37:44 +0000 Subject: Icons! Animation Editor toggle tweaks: * By popular request, curve visibility toggles in the Graph Editor are now represented using the eyeball icons * Muting is now represented by a speaker icon (a speaker for this purpose seems fairly common?) New icons: * Keying Sets now have their own icons (as found in a proposal on jendrzych's "Pixel Sized" blog) * Drivers also have their own icon now. This is just a hacky one I've devised which doesn't look that great. Suggestions on this are very welcome. --- .../editors/animation/anim_channels_defines.c | 10 +- source/blender/editors/datafiles/blenderbuttons.c | 13190 ++++++++++--------- source/blender/editors/include/UI_icons.h | 12 +- source/blender/editors/space_outliner/outliner.c | 2 + source/blender/makesrna/intern/rna_animation.c | 2 +- source/blender/makesrna/intern/rna_fcurve.c | 1 + source/blender/makesrna/intern/rna_space.c | 2 +- 7 files changed, 6631 insertions(+), 6588 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index c4246ab534c..e97712a9af0 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -998,7 +998,7 @@ static bAnimChannelType ACF_FILLACTD = // TODO: just get this from RNA? static int acf_filldrivers_icon(bAnimListElem *UNUSED(ale)) { - return ICON_ANIM_DATA; + return ICON_DRIVER; } static void acf_filldrivers_name(bAnimListElem *UNUSED(ale), char *name) @@ -2887,9 +2887,9 @@ static void draw_setting_widget (bAnimContext *ac, bAnimListElem *ale, bAnimChan /* get the base icon for the setting */ switch (setting) { - case ACHANNEL_SETTING_VISIBLE: /* visibility checkboxes */ - //icon= ((enabled)? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT); - icon= ICON_CHECKBOX_DEHLT; + case ACHANNEL_SETTING_VISIBLE: /* visibility eyes */ + //icon= ((enabled)? ICON_VISIBLE_IPO_ON : ICON_VISIBLE_IPO_OFF); + icon= ICON_VISIBLE_IPO_OFF; if (ale->type == ANIMTYPE_FCURVE) tooltip= "Channel is visible in Graph Editor for editing."; @@ -2918,7 +2918,7 @@ static void draw_setting_widget (bAnimContext *ac, bAnimListElem *ale, bAnimChan tooltip= "Editability of keyframes for this channel."; break; - case ACHANNEL_SETTING_MUTE: /* muted eye */ + case ACHANNEL_SETTING_MUTE: /* muted speaker */ //icon= ((enabled)? ICON_MUTE_IPO_ON : ICON_MUTE_IPO_OFF); icon= ICON_MUTE_IPO_OFF; diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c index 7525015bca9..0a8e974c919 100644 --- a/source/blender/editors/datafiles/blenderbuttons.c +++ b/source/blender/editors/datafiles/blenderbuttons.c @@ -3,6580 +3,6622 @@ */ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 210335; +int datatoc_blenderbuttons_size= 211658; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254, -214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, - 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, - 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, - 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, - 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33, -115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66, -153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, - 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, - 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0, -176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70, -242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, - 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120, -206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, - 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243, -112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249, -126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71, -252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, - 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226, -247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, - 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, - 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52, -192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218, -136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, - 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12, -181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15, -218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26, -176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72, -168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, - 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, - 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27, -228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, - 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149, -211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, - 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, - 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85, -203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170, -103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, - 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87, -179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76, -185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65, -199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, - 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, - 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151, -225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, - 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215, -155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93, -179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229, -216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14, -171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227, -182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221, -200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, - 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, - 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192, -183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, - 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104, -200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87, -134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, - 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108, -190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, - 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, - 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221, -155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172, -101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178, -103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182, -165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109, -213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215, -237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111, -202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218, -180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, - 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201, -190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3, -210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, - 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, - 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89, -121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223, -106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, - 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206, -221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217, -119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, - 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252, -167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109, -124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, - 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, - 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, - 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,219, 2, 27, 16, 38, 47, 61,220,216,191, 0, 0, 32, 0, 73, 68, 65, 84,120, -218,236, 93,119,120, 20,213,226, 61, 51, 59,179,187,217,146, 77, 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, - 86,132,167,207,103,197,134, 5, 84, 68, 68, 32, 54, 64,240, 39,242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, - 4, 18, 66, 58,201, 38,219,203,220,223, 31,217, 89, 55,203,182, 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239, -156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, - 64, 57, 29,219,128,191, 59,103, 11,198,157, 52, 35,231, 0, 7,231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166, -228,163,230, 74, 79,151,112,146,230, 14,103, 75,113, 54, 87, 57,242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221, -243, 79,128,188, 77,226, 12, 48, 79, 53, 53,156,164,185,195,217, 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197, -117, 4,174, 5, 69, 86,192,200,204,204,100, 92,248,153,191, 43,167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207, -230,194,187,153,153,153,204,234,213,171,183, 2, 24,208,156,113,111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202, -247, 45,205,217, 92,101,201,157,179, 57,242,189,167,251,222,130,247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188, -238,156,205, 81,150,220, 57,155, 35,223,255, 25,156,205, 81,150, 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129, -123, 1, 31,248,119, 22, 68, 45, 37, 54,155,224,192,252,229,156,205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145, -223, 93, 57,155,139,223,157,167, 57,238,147, 39,206,171, 13,175,151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, - 44,185,113, 14,108,230,151,129,129, 46,191,223,109, 78,206,230, 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, - 61,238,205,241, 12,105, 41,222,107, 26, 45,213,124,214,220,156, 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206, -230,228,116, 15, 99,115, 54,247,180,100, 56,155,147,179, 9, 97,189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202, -155, 59,218, 18,225,108, 78,206, 0,185,175, 9,206,171,184,247,215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211, -146,194,181, 57,195, 57,176, 37, 28,194, 22, 64,179,135,211,241,166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, - 37,183, 60, 57,176, 25,157,162,102,117,158,221, 57,155,227, 26,174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92, -133, 11, 65, 57, 41, 39,229,164,156,148,147,114, 82,206,235,150,243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130, -130,130,130,130,130,130,226, 31, 5,175,237,187,113,113,113,171,149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147, -240,175, 3,189, 71, 20,255, 32,176,248,195, 65, 23, 0, 16,199, 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228, -201, 14,130, 32,192,110,183,195,102,179, 57, 63,205,102, 51,250,247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231, -216,237,246,243,101,101,101,125,125, 28,178, 19, 64, 10,195,252,161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, - 73,113,231,243,194, 37,126,247,201, 25, 18, 18,178,159,227,184, 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71, -215, 51,162,163,163,115, 56,142,107,114,254, 44, 45, 45,245,154, 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, - 47, 94,236,235, 67,136,236, 4,144,226,243, 13,202, 45, 63, 49, 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, - 78,145,197,113, 92, 86, 84, 84,212, 51,122,189,222, 8,128, 72, 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, - 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, 38, 19,242,242,242, 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81, -209,176, 89, 44, 80,181,138,116,114,151,157, 56, 6,155,213, 2,155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, - 62,248,224,131,168,224,224, 96, 24,141, 70, 24,141, 70,152, 76, 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22, -216,108, 54,152, 76, 38,100,103,103,219,173, 86,171, 79,206,105,211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133, -209,104,196,166, 77,155,124,114,114, 28,151, 80, 82, 82, 18, 37,149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91, -139,175, 64,182,208, 61,186,158,209, 97,218,210, 53, 81, 33, 10, 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, - 96,179,161,253,243,163,157,251, 59,117,234,228, 51,127, 18, 66, 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37, -104,112,155,189, 9,173, 4,131,193, 16,229,224,191, 76, 16,177, 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, - 95,142,178, 90,173, 48,155,205, 48,153, 76,176, 90,173,176,217,108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100, -125,112,219,109,183, 61,190,102,205, 26,213,207, 63,255,172, 74, 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, - 14, 55,223,124, 51, 67,179, 32, 5, 5,197,117, 35,180, 76, 38, 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184, -246,237,219,231,186,159,231,175,185, 42, 56, 42, 26, 19, 91,135, 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93, -168, 5, 0, 40, 20, 10, 48,174,175,209, 94,160, 82,169,112,219,109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74, -193,243,188,223, 68, 97, 24, 6,106,181, 26, 83,166, 76, 17, 69, 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, - 4, 28,199, 57,183, 64, 56,165, 82, 41,142, 30, 61, 10,142,227, 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, - 14, 10,133, 2,240, 51,115,176,235, 61, 50,155,205,177, 50,153,204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81, -200, 49,102,222, 79, 0,128,162, 89,207, 59,239,221,158,103,223,113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, - 89, 93, 93,109,120,232,161,135,182, 7, 7, 7,175,215,106,181,240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115, -230, 76,156, 57,115, 38,160,184, 27,141, 70, 44, 88,176, 0,118,187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, - 94,179,102, 77, 24,195, 48,248,236,179,207, 32,149, 74, 49,124,248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215, -105,230,163,160,160,240, 85,231,241, 0,110, 4, 16,233, 48, 17,234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, - 79, 47,199, 49, 21, 12,195,236,115,249,109, 6, 32,243,176,191, 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174, -203, 1, 13,235, 15, 1,216, 2, 96, 96,102,102,230, 86, 0, 40, 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183, -163,168,121, 28,205, 83, 82,155,205,214, 65,108,170, 18,221,162, 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83, -115,133, 55, 1, 99,177, 88,240,192, 3, 15, 0,128,215,135,142,235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195, -210,113, 19,177, 66, 87,207,192, 86,171,195, 61,106, 43, 78,118,238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193, -171,200,146, 72, 36,152, 55,111, 30, 30,122,232, 33, 72, 36,146,128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76, -142,123, 36,183,217,108, 26,155,205, 22, 97,183,219, 35,154,114,143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, - 86, 87, 87, 27, 50, 51, 51,119,203,229,242,133,209,209,209, 37,197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48, -103,206, 28, 12, 26, 52, 40,160,112,154, 76, 38, 48, 12,131,249,243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, - 23, 23,247,236,186,117,235, 52,226,177,173, 90,181, 2,207,243,232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, - 37, 5, 5,197,181, 11, 79, 90,196, 5,253, 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, -151, 58, 49,211, 81,191,174, 22,127, 19, 66,122,185,138, 30,135, 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, - 76,252, 61,113,226,196,180,172,172,172,233, 19, 38, 76,120,115,198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, - 56, 60, 57, 90, 62,215,158, 18,155,168, 78,157, 58,229,173,137,202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56, -247, 79, 41,174,113, 62,192,230,246,104, 7,149, 74,133, 97,239,125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129, -114, 42, 21, 65,200,126,185, 11,138,170,100,120,119, 87, 53,214, 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101, -120,249,116, 33,172, 36,176, 62,189,132, 16,143, 2, 75,252, 46, 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, - 8, 13, 15,118, 5, 33, 36,140, 97,152, 58,135,203, 21, 27,232, 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164, -238,168,243,158,140,159,247, 33, 0, 96, 80,247,155,253,150,135, 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61, -122,116,193,230,205,155, 21,129,132,213,147,208, 18, 93, 91, 81,100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, - 74,175,196,209,130, 78,167, 51,175, 92,185, 18,115,231,206, 69, 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, - 60,255,252,243, 80, 40, 20,162,123, 77, 51, 32, 5,197,245, 13, 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, - 98,202, 85,172,165,249,121,254,175,118, 23, 79,226,117, 25,134, 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, - 50,153, 10,186,117,235, 22,144,154,208,235,245,165,254,196,134,167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, - 90,173, 78,161,178,113,227, 70, 40, 20, 10, 12, 31, 62,252,170, 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85, -157,193,249,128,217,146, 95,128,131,101,229,120, 57, 99, 48, 84,138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, - 3, 15, 60,224,116, 19, 92,251,173,192, 71,211, 97, 68, 68,196,126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, - 16,132,250,208,208,208, 31, 1,196, 17, 66, 18, 0, 4, 7,114,143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85, -134,204,204,204,221,118,131,249,155, 11, 23, 46,236, 6, 16,116,211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115, -230,204,113,254, 31,168,208,178,217,108,141, 4,212,233,211,167, 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, - 56,207,137,137,137, 65,104,104, 40, 4, 65,128, 32, 8, 8, 10, 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, - 76,152, 48,225, 77,134, 97, 86, 59,156,165, 99, 62, 4,149, 39,237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98, -226,196,137,105,238,225,240,212, 92,233,172, 85,221,166,221,111, 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84, -144, 72, 88, 48, 12, 67,252,113, 89, 44, 22,103,197,255,204, 51,207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, - 50,236,236, 54,231,185,226,198,114, 60,206,197,116,132,228,212, 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0, -203,178,206, 52,225, 56, 14,237,219,183, 71, 65, 65,129, 79, 46,142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110, -183,163,109,219,182,198,188,188,188, 23,105,209,189, 58,145,229,109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212, -168,173,181,181,181,223,220,112,195, 13,167,209,120, 10, 4,191,124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171, -213, 26,208,139,128,213,106,189, 76,240,124,252,241,199,141, 62, 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226, -182,219,110, 67,215,174, 93,241,243,207, 63, 67, 16, 4, 60,247,220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3, -234,104, 81, 80, 80,248,210, 34,166, 25, 51,102, 28,155, 49, 99,134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, - 1, 48,121, 18, 68,158, 92, 50,119, 1,230,186, 47, 43, 43,107,186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, - 91,210, 1, 52,110, 46,156,119,115, 71,168,212, 42,168,130,213, 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170, -170,242, 41,178,154,226,104,177, 50, 14, 43, 18, 46,129,200,120,112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236, -182,128, 56, 9, 33,151, 53, 21,142, 29, 59, 22, 12,195, 56, 71,136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158, -123,115,236, 7,149, 70, 90, 98,175, 36,127,238,255, 18, 39,127,120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235, -232, 86,167,251,248, 30, 94,189, 34,206,170,170, 42,195, 77,157,210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, - 24,218,173, 91,183,128,202,164, 56,184,194, 93,100,185, 58, 89,226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200, -243, 68,204,219, 26,141, 6,106,181,218, 57,226, 54, 40, 40, 8, 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, - 58, 14,177,212,200,105,114,244,173,202,116,253,237,201,241,114, 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206, -106,111, 34,141, 19, 21,164,235,103, 76, 76,204,175,106,181, 58, 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, - 96, 53, 20,106, 21, 20,193,106,175,174,151, 47,161, 37, 58, 69,226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, - 90, 78,161, 37,101,177, 65,190, 9, 18, 25,215, 72,100,113, 28, 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107, -107,193,113, 28, 38, 77,154,228,124,131,119, 21, 89, 77,137,179, 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, - 36,157, 78, 39,191,120,241,226,173,180,188,250, 80, 6,118,235,101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199, -142, 29,157, 78,150, 82,169, 20, 71,155,250,191,199, 44,235, 81,100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205, -152, 49,195,201,235,234,100,137,104, 74, 57, 18,195,186,117,235, 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3, -155,205,134,169, 83,167, 66,161, 80, 64, 38,147,209,204, 71, 65, 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, - 73, 96,185, 54, 19,138,223, 25,134,177,122,224, 53,187, 53, 41,186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10, -135, 95, 71, 75, 46,151, 39,231,229,229, 57, 39,194,244,245,105, 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, - 11,101,176, 26, 74, 77, 48, 20,106,181,187,224, 96,252, 85,226,226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, - 0,175,190,250,106,192,125,180, 68, 78,216, 25, 20,147,179, 72,159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, - 32,220, 52, 18,122,133, 26,156,221, 22,240,168,195,234,234,106, 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72, -182,141, 27, 55,250,141,187, 39, 39,107,242,249,106, 39,143, 66,161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125, -250, 8,180, 40,251, 17, 69,130, 45, 32, 81, 21,104,254,116,231, 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, - 71,135, 42,149, 74,124,245,213, 87,122, 0,178,229,203,151, 43,252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, - 26, 79, 89,226,175, 99,124, 32,121, 94, 12, 43,195, 48,176,219,237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, - 40, 40,252,213, 37,251, 2,174,199, 9,233,229, 34,170,246, 93, 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, - 64,121, 2,158, 24,179,117,207,155,241,222,133, 90, 48, 12,131,255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, - 31,157,254, 42,228, 42, 53,226,250, 13, 13,168, 34, 23,155, 14, 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241, -193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196,242,229,203, 3,114,180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176, -219, 38,227,130,153,195, 78,163, 18,253,141,199, 33,219,240, 41,204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238, -236, 83,101,179,217, 96,181, 90, 97,177, 88,240,193, 7, 31, 4, 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, - 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35,182,247,243,136,236,249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252, -182, 97, 1,128,142, 73, 67,155,196, 89, 85, 85,101,184,125, 80,159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227, -248, 29,144, 93,198,178, 44, 36, 18,201,101,205,133,222,196, 86, 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122, -226,137, 39, 16, 27, 27,235,116,178,222,123,239, 61, 40, 20, 10, 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20, -127,186, 40,251, 51,224,177, 38, 53, 26,141,133, 93,187,118,133,151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, - 19,226, 16, 0,217,158, 42,117,134, 97, 16,172, 9, 70,144, 90, 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95, -198, 41,246, 45,113, 21, 90,226, 86, 91, 91, 11,158,231, 49,119,238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, - 95, 84,135,147,211,179, 33, 11,218,137,118, 67, 31, 66, 44,175,128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14, -120,231,157,119, 46,155,214,193, 27,226,227,227,253,198,221,221,201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60, -244,208, 67, 2, 0, 3,128, 10,131,193,112, 62,144,244,108, 6,252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116, -178,140, 2,255,117, 65, 65,129,232,100,133, 40,149, 74,124,241,197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, - 68, 34,193,172, 89,179, 60,246,201,242, 36,186,154, 82,142, 92,207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, - 68, 68, 56,157, 44,187,221,238, 28,109, 40,206, 62,239,227,165,130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, - 47,222,238,237,132,182,109,219,230,229,229,229,181, 23,151,226,112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, - 32,151,203, 65, 8,193,173,239,100,129, 97, 1, 22,141, 31, 98, 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193, -208,232,225,224,105,171,175,175,135,201,100, 10,120, 54,111,163,209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91, -160,253,118,130,130,130, 26, 53,253,248,113,172,152, 64, 28, 45,215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71, -209,108, 30, 56,196, 1, 11, 0,144,218,103, 56, 4,193, 14, 98,183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147, -201,223,180, 39, 76,101,101,165, 97,212,168, 81, 91, 1,252,239,158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, - 84, 3, 32,151, 46, 93, 10,185,112,225,130, 96, 52, 26,219,248, 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80, -162, 43,234, 58,187,123, 32,249, 83,108, 46,247, 52, 35,188, 55, 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, - 67, 42,149, 66,169, 84, 2, 0, 62,253,244, 83,231,228,171, 20, 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104, -179,217,138, 19, 19, 19,155,116, 49,187,221, 94,230, 71,184, 21, 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22, -175, 90,181, 74,234,201,221,240,182,192,180, 63, 78,187,221, 94,156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, - 48, 52, 18, 9,227,143, 23,121, 93, 59,145,194,111, 94,243,145, 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232, -232,232,170, 29, 59,118, 68,244,234,213, 43,194,245,152, 94,189,122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220, -227, 49,207,139,162,201, 67,254, 44,246,151,231,247,238,221, 43,117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, - 93,121,188,229,125,171,213, 90, 65,115, 33, 5, 5,197,117, 47,180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170, -170,170,158,205, 29, 1,171,213,218,231,159,192, 89, 89, 89,217,172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119, -143, 0,160,188,188,252, 38, 0,208,233,116,240,183,172, 78, 19, 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131, -230, 44, 10, 10, 10, 42,180,154, 0,186, 24,241,223, 3, 45, 33, 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, - 10, 10, 10, 10,138,150, 1,131,134,145, 3,158,208,148,209, 4, 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229, -188,238, 56,253,113,211,209,140, 45, 44,192, 40, 39,229,164,156,148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, - 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, 95, 6, 9,154, 48,163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43, -224,100, 0, 72, 29,155, 56,209,145, 21,128, 5,128,133, 97, 24,226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65, -192,225, 54,109, 90, 31, 98,152, 59,204, 0,160,138,238,212, 89,173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84, -158, 87, 72,179, 7, 5,197, 95,130,187, 0, 76, 65, 67,183,146, 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44, -155,224,111,126, 30, 17,142,181,204,138, 47, 93,186,212,179, 9,215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245, -245,245,155, 1, 44, 7, 96,187,194, 56,105, 0, 60, 0,224, 17,199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121, -158, 84, 86, 86,246, 6,128,136,136,136,221, 86,171,149,209,106,181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191, -109,219,182,255, 1,152,219, 76,247, 82,206,178,172, 71,129, 34, 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, - 56,189,184,184,184, 11, 0, 36, 36, 36, 28, 29, 61,122,244,161,113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, - 43, 47,205,127,166,172,252,196, 3, 0, 16, 19,219,101,153, 68,194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, - 87,115,165, 73,201,173,177,105,231,193, 27,199,189,248,102,218, 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, - 25,247, 84,230,237,118,123,113,117,117,117, 79,111,156, 28,199, 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, - 26,141,102, 23,199,113,201,129,114,137,159, 54,155,173,216,219, 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65, -200,175,168,168,240, 22,206,203,226,222, 28,225,188, 18, 78, 95,225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, - 55,181, 90,109, 55,137, 68,130,240,240,240, 55,205,102,243,153,144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130, -162,185,160,209,104,202,234,235,235,137, 8, 65, 16,136,213,106, 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106, -181,164,182,182,150, 84, 85, 85,145,200,200, 72,247,201, 27,189,181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, - 88,136,197, 98, 33,133,133,133,228,163,143, 62, 50,105, 52,154, 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233, -230, 53,107,214, 16,163,209, 72,116, 58, 29, 89,182,108, 25,185,225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, - 49,197,103,207,158,181,111,220,184,209, 18, 18, 18,146, 29, 18, 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0, -125,155, 16, 78, 0, 24, 57,126,252,248,178,194,194, 66, 50, 96,192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, - 67, 8,137, 69,195, 36,151,151,109,132,144, 88,199, 49, 97, 1,114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, - 24,198, 28, 29, 29,157,149,159,159,223,154, 16,162,242,197, 89,124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145, -255,125, 61, 80,251,212,184, 71,151,198,182,237,190, 32, 52, 33,109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231, -191,206,191,119,220,236, 47, 34, 18,211,159,106, 66,122, 94, 13, 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19, -139,197, 66, 76, 38, 19,209,235,245,164,190,190,158,212,213,213, 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, - 86,102, 48, 24, 26,213, 29,102,179,217, 89,127,232,245,122,162,215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, - 56, 47,138,225, 20, 4,129,216,108, 54, 98,177, 88,156,188, 70,163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, - 16, 78,163,209, 72, 18, 18, 18, 74,188,113,134,135,135,151, 25,141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, - 51,144,112,250, 74, 79, 7,230,230,230,230, 18,131,193, 64,226,227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233, -233,233,194,192,129, 3, 45,149,149,149,228, 95,255,250, 23,241,241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42, -124,255,253,247, 94,151,227,112,253,222,166, 77,155, 64,175,217, 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54, -155, 17, 22, 22,134,231,158,123, 78,118,215, 93,119,181, 31, 58,116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145, -159, 77,154, 52, 41,250,193, 7, 31, 68, 68, 68,163, 73,183, 49,106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248, -208,188,121,243, 74,235,235,235,199, 1,248,209, 23,169, 66,161,184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37, -133,125,253,245,215,219,119,232,208, 65,145,144,144,192, 94,188,120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105, -139,197,178, 50,128,184,203, 34, 34, 34,222,124,250,233,167, 91,105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, - 70,175, 45, 91,182,124, 11,224,203, 43,113,178, 8, 33, 90,252,209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, - 60, 35, 35,227, 71,147,201,212,253,153,103,158, 57, 63,125,250,116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103, -207,158,253, 70,231,206,157, 7,239,218,181,235, 62, 66,136,213, 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246, -206,196, 87, 19, 62,156,150,124,110,223,241, 34,129, 83,104,240, 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229, -124, 90, 72,252, 13, 3,106, 47, 28,207,129,143, 25,210, 41,154, 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, - 90,113, 28,135,208,208, 80,191,171, 27, 4, 5, 5, 97,227,198,141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12, -131,160,160, 32,236,216,177, 3, 44,203,122, 92, 26,200,125,159, 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, - 86,171,129,134,166,127,239,133, 82, 46,199,246,237,219,189,198,217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203, -125, 73, 48,215,223, 42,149, 10,140, 31,210,176,176,176,222, 9, 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, - 79,131, 97, 24, 76,159, 62,157,185,225,134, 27,248,210,210, 82,244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, - 2, 66, 8, 15,224, 70, 0,145,104,232,118, 83, 7, 32, 20, 13, 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, - 87, 58,234, 22, 87,129, 80,225,186,248, 52, 33,164,151,131, 91, 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0, -176,122,245,106,241, 97, 54, 48, 51, 51,115,171,107,228, 2, 17, 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247, -238,221,138,200,200, 63,226, 96, 50,153, 80, 87, 87,135,250,250,122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248, -135,186,186,186, 14,142, 68,243,198, 57,235,226,197,139,209, 54,155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, - 55, 49,108,216,176,152, 65,131, 6,205,114, 19, 90,151, 13, 37, 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197, -197,197, 24, 63,126,124,107, 65, 16, 80, 84, 84,132,211,167, 79,227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, - 60, 13, 79,125,230,229,151, 95,238, 24, 22, 22,198,126,244,209, 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251, -247,143,250,247,191,255, 77,118,236,216,177,216,113,227,188,166,167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, - 7, 33, 36, 6,128,137, 97,152, 26, 15,156, 12,128,144,161, 67,135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8, -224,162,152,249, 66, 66, 66, 84,179,102,205,138,206,204,204,204,189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, - 10,151, 62, 91, 78, 78, 65,192,225,152,216, 46,203,114,118,141,123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, - 94,181,253,120,126, 5,234, 12, 54,220,123,107,195, 2,230,189,187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253, -103, 8, 84,245, 37,199,215,248, 72,207,171, 5,229,132,179,137, 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60, -118,237,218,133, 91,111,189, 21, 60,207,227,137, 39,158, 8,136,147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, - 9,178,221, 42, 91,112, 28, 7,150,101,189, 46,164,237,206,233,175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176, -200, 10,148, 83, 12, 39,199,113,232,211,167, 15, 14, 29, 58,228, 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200, -153, 59,119,110, 56, 0, 84, 85, 85, 57, 23,188,151, 72, 36, 56,117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, - 71,148,179, 37, 57,125,105, 17, 0,253, 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, - 72,166,248, 57,113,226,196,180,172,172,172,233, 19, 38, 76,120,115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166, -155,136,139, 20,121, 28,101,174,209,177,158,126,187,127,122,226,110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43, -144,181,251, 56,142,123,126,250,244,233,209,190, 68, 86,125,125, 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185, -207,219,108,182,143,125,208, 74, 37, 18, 9,246,238,221,139,242,242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214, -174, 93,139,154,154, 26,244,232,209, 3,104,232,220,237, 17,221,186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62, -124, 24,221,187,119,199,247,223,127,143, 54,109,218, 64,169, 84, 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244, -244,116,155, 86,171,221, 86, 93, 93,189,249,220,185,115,239,122, 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243, -205, 55,219, 1,108, 7,240,252, 91,111,189,245,248,176, 97,195,162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150, -205,253,161,100,183,219, 77, 6,131,193,108, 50,153,172, 44,203, 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, - 89, 89,249,220, 75, 47,189, 84,224, 16, 89,167,208,208, 1, 30, 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126, -248,204,210,165, 75,159, 27, 59,118,236,242,111,190,249,166, 30,128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95, -177,252,203,151,215,174,122,190,117, 81,209,133,246, 17,173, 34,117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200, -217, 82,240,188, 4, 39,138,106,209,255,246, 81,252,153,188,105,125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22, -159,142,214,174, 93,187,192,243, 60, 20, 10, 5,102,207,158,237,147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, - 65,112, 46,244,238,190,253,223,255,253, 31, 94,122,233,165, 70,215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172, -209,190, 64, 22,165,183,219,237,224,121, 30, 11, 22, 44, 64,102,102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144, -244,236,211,167, 15, 44, 22,139, 51,204,167, 78,157,242,200, 59,111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26, -132,156,156, 28,220,127,255,253, 38,139,197,146, 7, 0,119,222,121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254, -252,249,255,129,118,144,167,104, 97,120,210, 34,226, 51, 47, 43, 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145, -233, 42,138, 92,127,139,174,147,155,136, 75,115,117,164, 92, 69,148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160, -171, 11, 36, 86,190,254, 68,150,143, 55,199, 70, 8, 9, 9, 25,126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191, -115,115,115,209,179,103, 79,105, 72, 72,200,240,170,170,170,143, 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, - 68, 88,173, 86,172, 95,191, 30,181,181,181,224,121, 30, 82,169, 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185, -104,209,162, 75,226, 27,221,146, 37, 75, 64, 8, 65,100,100, 36,244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106, -164,164,164,200,238,185,231,158,190, 83,166, 76,225,125, 8,173, 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, - 12,199,190,201,227,198,141,139, 40, 44, 44, 52, 63,249,228,147,123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150, -213,106, 21,211,180,160,190,190, 30,173, 90,181, 74,116,117,182,188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50, -215, 48,152,205,102,212,215,215, 67,167,211, 89,107,107,107,203, 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12, -115,135, 89,163, 81,202, 8,145,188, 53,127,254,124,245,176, 97,195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234, -155, 50, 61,235,195, 13,154,132,174,101, 59, 14,231,227, 66,105, 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139, -211,209,114, 21, 21, 57, 57, 57,184,253,246,219,157,101, 93, 42,149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103, -203,150, 45, 30,221, 39,127,112, 21, 69,238,226,200,147, 0, 99, 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, - 95, 51, 7, 56,142,195,184,113,227,192,243, 60, 94,127,253,117,112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91, -111,189,181,201,113,223,189,123, 55,186,119,239,238, 12, 83,122,122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, - 67,135, 6,194,249,102, 93, 93, 93, 55,181, 90,141,220,220, 92, 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6, -111,130,189, 0, 0, 32, 0, 73, 68, 65, 84,215,235,219, 26,141, 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, - 26,169,208,162,104, 49,184,107, 17, 23, 24, 38, 76,152,240, 38,195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80, -251, 28,101,181,151,155,136,171, 96, 24,102, 31, 33,228, 78,111,231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177, -242, 13, 84,104,249,131,209,104,188, 49, 42, 42,202,171,200,114,253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216, -216, 88, 88, 44, 22,124,249,229,151,144, 74,165,144, 74,255,208, 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, - 71,143,176,159,126,250,169, 98,192,128, 1,145,195,134, 13,131, 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, - 20, 23, 23,227,215, 95,127,173,236,208,161, 67,171, 61,123,246, 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117, -235,214, 85, 2,216, 39,151,203,215, 78,155, 54, 45,204,108, 54, 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, - 96,192,128,140,236,236,236,111, 5, 65,152,221,212,140,234,158,182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, - 0,149, 74, 21, 14,224,140, 51,135, 27, 12,141,196,176,217,108, 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138, -115,231,242,131, 93,251,207,133,134,134,226,145,135, 31,102,111,233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52, -230,148,184, 8, 88,237, 86,100,111, 88, 47, 16,193,186,129, 86, 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122, -217, 62,169, 84,138,255,254,247,191, 1, 9, 3, 81, 84,121,107, 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, - 2, 8,130,128,151, 95,126,185, 81,115,162, 43,127, 64,118,158,139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58, -206, 9,200, 37,155, 59,119,110, 64,142,214,157,119,222,233, 87,184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, - 55, 61,237,118, 59,214,172, 89,227, 20,169, 34,222,126,251,237,167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250, -250,122,244,238,221, 59,133,101,217,195,165,165,165,133, 39, 78,156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, - 25, 51, 60, 58, 86,238,206,146, 47,231, 73, 20, 88, 14, 65, 20, 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, - 70,144,155,138,156,226,169,242, 13,164,249, 48, 64, 59,157, 99, 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213, -176,219,237, 87, 60,215,151,167, 55, 89,127, 66,235,232,209,163,255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130, -112,235,174, 93,187, 34, 57,142,131, 70,163,129, 70,163,193,218,181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, - 28, 97, 48, 24,126, 47, 45, 45,125,219,171,130,225,249,161,253,250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244, -209,219, 91,183,110,205, 76,155, 54,205,120,246,236,217,217, 0,202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209, -163,177,117,235,214,249, 0,140,129,198, 89,167,211, 53, 18, 88, 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, - 12, 65, 8,113,222, 27,135,155, 37,222, 31,194,113,156, 56,170,209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187, -221,142,178,178, 50,104, 52, 26, 76,122,251,109,233,123,227,255,221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93, -217,131,219,128,119,105,205,243, 39, 64, 20, 6,119,223,125,247,101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, - 61,122,244,240,251,114, 37, 10,131,187,238,186,203,233, 12,173, 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, - 5,112, 28,135,207, 62,251, 12,175,188,242, 10, 88,150,197,204,153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252, -176,225, 51,225, 21, 45,170,230, 69, 3, 0,130, 53, 26, 49, 66, 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, - 70, 6, 56,142,115, 58, 89,195,135, 15,119, 77, 71, 18, 8, 39,199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28, -238,188,243,206, 64,130, 57, 61, 52, 52,116, 74,167, 78,157, 58,207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57, -155,205, 22, 49,117,234, 84,165,135,115, 20, 0,186,117,238,220, 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, - 9, 47,146,171, 93,143, 23, 57,220,197,145,195, 33,203,241,199,229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103, -159, 23, 83, 42,149, 71,202,203,203, 51, 20, 10, 69, 35,145,229, 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205, -118, 19,253, 53, 29, 2, 48,158, 62,125,122,188,203,239, 33,195,135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, - 35, 35, 49,119,238,220,139,101,101,101,255, 2,176,177,178,178,210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, - 21,192,191,159,123,238, 57,198,106,181, 98,222,188,121, 58, 0,235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217, -217,218, 61,123,246,252, 22,160,200,178, 11,130,112,153,192,114, 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59, -202, 96, 48,104,229,114,121,176, 86,171, 53,185, 10, 44,145,159,227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230, -228, 56,110,240,224,193,131, 57,247,123, 80, 86, 86,134,210,210, 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110, -211, 58, 80,145,245, 39, 57, 90, 68, 44,235,226, 40, 65, 79, 35, 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209, -198,141, 27,125,118, 88,119,107, 58,244,107,141,139,199,127,254,249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, - 76,155, 54, 13, 19, 38, 76, 0,199,113,126,155, 14, 93, 5, 76,210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, - 98, 2, 21,111,190,220,188, 64, 90, 2, 92, 57,197,243,130,130,130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238, -200,200,200, 8,217,191,127, 63,102,206,156, 41, 53,153, 76,109,178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75, -184, 89, 62,254,174,112,235, 95,197,184, 54,227,249,248,116, 63, 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229, -126, 13,215, 99, 42,188, 58, 90,254, 42, 11,127,130, 43, 16, 71, 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, - 80,167,211, 33, 58, 58, 26,199,142, 29,179,233,245,250,223, 2,112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190, -125,123,196,199,199,195,104, 52,162,166,166, 70, 2, 96, 99,128, 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, - 14, 29,112,224,192, 1, 84, 87, 87,255, 8, 96,216,148, 41, 83,122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, - 86,107, 64, 74, 67, 16, 4,179,205,102, 75,102, 89,214, 82, 83, 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, - 13, 68,104,117,235,214,109,239,249,243,231, 49,117,234,212,138,233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70, -163,145,109,213,170,149,124,222,188,121, 10, 0,232,214,173,219, 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, - 45, 45, 69,105,105, 41,202,202,202, 80, 87, 87,135,148,148, 20,232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118, -125,144, 55,165,172,187, 10,152,187,239,190,219,217,183, 75,116,200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, - 94,120,225, 5, 4, 5, 5, 97,214,172, 89,141,154, 14,221,197,129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, - 17,207,148, 53,106,162,243, 32, 56, 2, 10,231,244,233,211,155,165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141, -194,182,109,219,174,184,233, 48, 45, 45,109,201,234,213,171, 67,142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23, -123,109, 21,112,212,229, 65,180,228, 80,252,201,245,212,190, 63,147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38, -211,172, 23, 95,124,241,185, 33, 67,134,132, 7, 7, 7,163,164,164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, - 86,105, 77, 38,211, 44,127,226,192,106,181, 34, 42, 42, 10,149,149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128, -159, 78,230,158, 30, 24, 22,139, 5, 86,171, 21, 86,171, 21, 22,139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184, -184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, 70,246, 13,185,253,246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223, -179,227,155,115,114,114,146, 1, 64,161, 80,228, 2, 64,113,113,177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, - 33,200,201,201, 73,150, 74,165, 4,222, 71, 53, 26, 87,174, 92,121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116, -233,146,172,211,233,202, 13, 6,131,193,104, 52, 18,137, 68, 34, 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, - 75, 87,174, 92,121,220,155,243,166, 82,169,138,245,122,125,146,120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, - 60,239,175, 89,151,162,229, 32,190, 84,185, 59, 47,238,251, 2, 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20, -189,242,202, 43,152, 51,103,206,101,142,214,180,105,211, 0, 0,111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168, -110, 20,118, 0, 96,196,240, 53,173,204,131,227, 56, 76,157, 58,245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, - 56,142, 67,120,120, 56, 30,121,228, 17, 12, 29, 58,212,217, 4,217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225, -253,247,223,175, 14, 13, 13, 13,254,207,127,254,195,213,212,212, 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81, -135, 94, 42,203, 33,104, 60,215, 70,173, 94,175,127,228,182,219,110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174, -174,134,217,108,134, 84, 42, 69,108,108, 44,106,106,106,240,245,215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, - 47, 62,254,248,227,160,244,244,116, 84, 87, 87,163,190,190,222, 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126, -253,122, 3,128,183,252,112,122, 82,115,176, 88, 44, 78,193, 21,128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, - 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82,166,180,109,219,150, 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, - 66, 46, 1,136, 49,155,205, 82, 0,168,173,173,181,180,106,213, 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, - 54,155, 77, 10, 0,253,250,245, 51, 3, 40,117, 91,163,208,149, 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, - 73,123,246,217,103,143, 62,249,228,147,108,124,124,124, 88, 93, 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15, -225,121,254,220,252,249,243,167, 0,208, 50, 12, 35,120,226,180,217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202, -202,202,156, 34,171,172,172, 12,157, 58,117,194,174, 93,187,236, 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235, -222, 4,150,248, 50, 21, 40,167,171, 40, 26, 53,106, 84, 35, 23, 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, - 58,199,215, 27,111,188,209, 72,180, 77,154, 52,201,107,117,230, 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41, -214,157, 60,207, 99,210,164, 73, 1, 59, 90,184,188,143,214,101,156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127, -233,105,183,219, 95,152, 51,103, 14,209,104, 52, 55,107,181,218, 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50, -153, 76,114, 90,142, 40, 39, 90,102,126,174,235, 71,104, 57, 30,146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, - 3, 27,242,242,242,238,187,229,150, 91,190,125,225,133, 23,130,211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, - 99,182,149, 43, 87,106,245,122,253,163, 0, 2, 25,117,182,232,248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121, -178, 36, 53, 53, 21,181,181,181, 8, 11, 11, 67, 84, 84, 20, 78,157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180, -161,250,123,225,183, 88, 44,120,232,161,135, 32, 8, 2,102,207,158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151, -222, 49,187, 52, 78,159, 62, 13, 0,231,146,147,147,131, 1, 32, 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234, -212,169, 83,129,123,229, 40, 58, 89,162, 11,230, 47,220, 12,195, 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127, -254,240,231,159,127,126,217,113, 26,141,102,233,204,153, 51,223,123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102, -204,152, 7,142, 28, 57, 18, 28, 20, 20, 4,157, 78,135,170,170, 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, - 24, 12,239,210,226,248,215,192, 85, 24,120,115,181, 2, 16, 89, 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129, -206,109,229,235,165, 72,156,150,198,211,148, 17, 77,172,215, 46,227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, - 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, 8, 2,238,188,243,206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, - 83,167, 78,169, 0,228,174,105,208, 68, 23,159,130,130,194,159,208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106, -181, 22, 7,120,221,245, 58,157, 46,101,230,204,153, 47,170, 84,170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211, -167,104,218, 34,208, 21, 0,158,223,189,123,247,236, 97,195,134, 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121, -228,236,217,179, 43, 28, 46,214,217, 43, 73,164,240,240,240,227, 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20, -193,193,193,199,171,171,171, 3,165, 40,223,180,105,211, 55,125,250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125, -251,246, 29,179,107,215,174, 37, 0,142,109,222,188,121, 97,239,222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150, -205,230,185,165,209,139,147,229,139, 83, 75, 8,177, 60,254,248,227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, - 0, 8, 13, 13, 61,210,171, 87,175,189,203,150, 45, 59,229,112,178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239, -191,175, 74, 75, 75,227,218,183,111,143,194,194, 66, 28, 61,122,212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127, -157,208, 34,132, 32, 52, 52,180,209, 75,148, 56,228,191,169,205,133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, - 86,171,157,147,155, 6,210,101, 65, 16,124,207,199, 70, 8,113,114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50, -189,131, 74,165,130,213,106,117,242, 6, 48,242,179,169,106,241, 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66, -235,210,165, 75, 61, 91,248,218, 90,147,201,244,158,201,100,122, 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241, -166, 77,155,196,118,132,169,240,191, 94,162, 79,156, 60,121, 50,147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, - 11, 11,255,211, 20, 14,187,221,254,248,174, 93,187,158,131,163, 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237, -246,199,247,236,217,227,252,221,196, 7, 37, 33,132,152, 8, 33,113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, - 28,198, 31,243,100, 89, 29,155,209,173,185,208, 23, 54,235,116,186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, - 85,100,179,217,126,211,235,245,111,161, 97,141, 42,138,191, 8,102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94, -172,236,118,123,113,135, 14, 29,252,190,156,121,224,188,224, 67, 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, - 37, 37, 5, 77,229,244, 23,247,228,228,100,143,113,247, 35, 8,189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, - 50, 50,178,222,104, 52,242, 38,147,137,183,217,108,141,236, 71,133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199, -126, 52, 44, 47,209, 92, 48, 29, 57,114,228, 49,167, 61, 85, 94,126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, - 66, 74,223, 76,116,149,245,245,245, 79,138, 63,196, 62, 32, 20,127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171, -172,172,204,104,129,184,247,188, 94, 57,125,161,164,164,228,102, 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160, -160,160,160,104, 25, 48,104, 24, 57,224, 9, 77, 25, 77, 48,228, 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235, -142,211, 31, 55, 29,205,216,194, 2,140,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, - 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, - 0,198,182,240,181, 30,233,221,187,119,149, 92, 46,223, 0, 32,149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218, -181,235,246,147, 39, 79,118,202,206,206,142,139,143,143,255,176, 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, - 98, 98, 98,114,174, 80,108,165,182,105,211,230, 68,106,106,106, 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, - 4, 41,174, 3,116, 1,208,149, 10, 45, 10, 10, 10,138, 22, 20, 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14, -181,228, 5,115,115,115, 47,237,220,185, 19, 9, 9, 9, 88,178,100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63, -113,226, 68,167,236,236,236,248,168,168,168, 79,154, 51,124, 55,221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228, -149, 10, 65, 10,138,191, 51,228, 0, 30, 99, 24,102,111,151, 46, 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, - 25, 24, 86,175, 94,189,117,245,234,213, 91,105, 30,161,160,160,104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125, -246, 25, 9, 15, 15,183, 0,248, 13,192, 74, 15,219,155, 0, 52, 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159, -145,252,252,124,114,252,248,113,146,154,154,106, 8, 80,208,164,118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, - 81, 52, 26,205,177,156,156, 28,114,246,236, 89,178, 97,195, 6, 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234, -234,187,238,186,139,124,245,213, 87,100,213,170, 85,228,199, 31,127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, - 1,132, 94, 79, 90,132,113, 68,140, 0, 24, 8, 0,153,153,153, 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186, -186, 58,180,110,221, 26, 60,207,123, 60,176,188,188, 28, 59,118,236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186, -119,239,190,115,243,230,205,169,193,193,193,206,157,130, 32,192, 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38, -147, 65,161, 80, 32, 60, 60,252, 40,124, 55, 97, 56,221, 55,131,193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, - 54, 99,186,164, 70, 69, 69,229, 44, 90,180, 40, 50, 37, 37, 5,231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, - 10,138, 63, 19, 19,238,187,239,190,105,209,209,209,108,151, 46, 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, - 33, 4,181,181,181,200,201,201,193,230,205,155, 77,151, 46, 93,250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, - 51,147,161,121,133,130,130,162,153,112,164,182,182,182,139,201,100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105, -105,233, 45,240,188,168,188,166,123,247,238,123,114,114,114, 82,141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, - 34, 98, 23,128, 62,222,222,196,187,116,233,178,127,215,174, 93,225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, - 14,192, 91,224,171,209,176,142,234, 57, 15,255, 37, 2,120,209,241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, - 22,122,189, 30,163, 70,141,170,206,205,205,237, 5,160,128,102, 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, - 38,147, 9,122,189,222, 41,180, 36, 18, 9, 8, 33,176,217,108,206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148, -165,107, 86,139, 80,161, 69, 65, 65,209, 18, 72,237,208,161,195,161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178, -181,186,186,122,155,187,120,137,142,142, 78, 91,184,112, 97,114, 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129, -243, 77,173, 86, 59,205, 98,177,224,208,161, 67, 24, 51,102, 76, 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225, -123,244,232, 1,173, 86,139,145, 35, 71,234, 79,157, 58,213, 27,192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, - 36, 36, 36, 64, 42,149,250,140,156,193, 96, 64, 82, 82,210,174,138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, - 20, 62, 57, 44, 22, 11,138,139,139, 33,147,201, 96, 50,153,208,174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124, -184,195,119,223,125,135,238,221,187,163,115,231,206,168,175,175,119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191, -252,114, 30, 28,205,231,215,170, 22, 17, 59,166, 77, 17,219, 68, 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94, -250,144, 33, 67,182,173, 88,177,162,213,240,225,195,209,174, 93, 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, - 27, 51,102,204,254,162,162,162,100,199,174, 94, 94, 56,123, 5, 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, - 31, 62,124,152,151,201,100,216,183,111, 31,198,142, 29, 91, 89, 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139, -139,253, 70,238,252,249,243, 16, 4,193,228,233, 63,150,101,229, 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, - 54, 20,255, 80, 88,205,102, 51,122,246,236,137,130,130, 2, 28, 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123, -247,226,224,193,131,232,223,191,191, 59,207, 53,169, 69,156,202,113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, - 53, 46, 46, 46,103,209,162, 69,145,177,177,177, 24, 52,104, 80, 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182, -109,219,174, 2,112,207,149, 28,147,152,152, 88,177,111,223,190, 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83, -114,167, 78,157,246,109,216,176, 33,156,101, 89, 28, 59,118, 44,144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132, -123, 57, 87,213,161, 67,135,190,251,247,239,151, 50, 12,131,194,194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113, -255,123,238,185,231, 66,122,247,238,141,226,226, 98, 92,184,112, 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, - 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, 66, 2,212, 75,191,195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45, -169, 84,186, 62, 62, 62,190, 28,158,231,165, 10, 27, 57,114,100,137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, - 61,123,150, 68, 71, 71,231, 3, 8,243,112,204,216,152,152,152, 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, - 34, 69, 69, 69,100,221,186,117, 36, 34, 34,162, 37, 70, 4,166,118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, - 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, 96,106, 74, 74,138,241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, - 35,227,199,143, 39, 25, 25, 25, 36, 35, 35,131,140, 26, 53,138,188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52, -233, 40, 40, 40, 40,154, 23,137, 0,102, 57, 4,213,202,145, 35, 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76, -221,224, 9,111,150,150,150,146,210,210, 82,113,106,132,124,252, 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, - 39,133,133,133,100,237,218,181,196, 33,216,154, 13, 10,133, 98,131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, - 34, 10,192,220, 27,110,184,193, 58,123,246,108,178,114,229, 74,242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224, -131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77,174,171, 7, 93,217,156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59, -185,112,225, 2,217,176, 97, 3,137,137,137, 57,134,198,243,105,185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, - 98,177, 56, 57, 78,158, 60, 73, 0,108,109,134,112,166,198,199,199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103, -220,147,146,146,202, 43, 42, 42,200,166, 77,155, 72,100,100,164, 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15, -251,156, 57,115,200,211, 79, 63, 77, 18, 19, 19,237,142,151,162,248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222, -189, 27,114,185,220,185,227,247,223,127,119,157, 71,203,219,188, 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, - 58,138,105,203,150, 45, 0, 96,106,134,176,229, 94,184,112,161,255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140, -120, 97, 97,225, 43, 93,187,118,157, 94, 87, 87,167,213,235,245,163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60, -112,224,192, 91, 0, 8,128,247, 1,156,184,222, 18,130, 10, 45, 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252, -159, 15,145, 37,226, 82, 65, 65, 65,159, 59,239,188,243, 57, 52, 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, - 9, 75, 74, 75, 75,151,208, 44, 64,113, 29,225, 24,128, 7,175,231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, - 90,120,158,103,139,130,130,130,226,111, 7,186,168, 52, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20, -255, 44, 48,240, 62,114, 32,187, 9, 60, 87, 50,162, 33,155,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, - 80,180,168, 0,163,156,148,147,114, 82, 78,202,249,207,230,100, 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156, -215, 36,254,170,206,240,226,141, 16,208, 48,228,147,226,239, 7,215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, - 29, 27,254,134,117,137,171, 40, 16,174,242,185,212, 18,113,191,158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134, -177,235,116,186, 35, 38,147,105, 62,128, 93, 87,121,205,175,162,163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150, -101,193,243,188,161,182,182, 86,115, 37,164,145, 93, 70,188,202, 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, - 24,169, 84,122, 95,120,120,120,104, 69, 69, 5, 97,217,134,174,124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, - 97,123,195,195,195, 67,197,243, 25,134, 65, 85, 85, 85, 77,121,121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, - 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85,117, 11,189, 21,255, 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, - 34, 8, 76,173,141, 81,252,190,254,194, 87,103, 2, 57,127,212,168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215, -215,215,235, 25,134, 33, 12,195,128, 97, 26,222,179,220, 63,237,118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137, -137, 25,163,215,235,245, 14, 62,143,188, 0, 96,181, 90,139, 43, 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, - 29,195, 48,130,235,127,132, 16,215,135,249,217,202,202,202,126,254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121, -181,113,143,142,142, 30,163,211,233, 2,226,244, 17,247,203, 56, 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207, -158, 14, 60,207, 3, 0,140, 70, 99,215,185,115,231, 62,246,198, 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114, -114,216,149, 43, 87,178,189,122,245, 2,195, 48,176,219,237,176,219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241, -191, 65, 55, 14,121,242,133,114, 96,154,191,253,190, 4, 38,128,183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89, -182, 73,156,130, 32,228, 95,186,116,169,143, 15, 1,211,236,156, 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70, -161, 80, 64, 16, 4,216,237,118, 88,173, 86,220,112,195, 13, 77,114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, - 31,126,192, 99,143, 61,134,190,125,251,230,149,151,151, 3, 0, 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182, -182, 22,183,221,118, 27,170,170,170,254,209,133,235,230,244,132,247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181, -188,225,225,225, 7,229,114,121,180, 95,181,236,242, 32, 51, 26,141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158, -227,184,142, 0,146,108, 54, 91, 52, 0, 72,165,210, 50,137, 68, 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135, -197, 63,209,142,177,233, 71,214,153,132,225,202,182, 89,169,250,179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, - 72, 5,176, 12, 13, 11, 74, 63,141,134,121,128,174, 6,241, 0,238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, - 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, 85,213, 19,240,176, 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, - 62, 80,220, 44, 15, 40,150,101, 63,205,204,204,252,215,138, 21, 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26, -107, 23, 32, 57, 57,217,159,171,193,177, 44, 59,123,228,200,145, 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85, -108,137,136,139,139, 11, 52,239,127, 53,116,232,208,209,139, 22, 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, - 47, 59,246,150, 91,110, 17,252, 71,157,253,244,158,123,238, 25,253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, - 85,199,125,196,136, 17, 15,127,247,221,119,202, 35, 71,142, 40,219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136, -243,238,187,239,126,120,217,178,101,202,131, 7, 15, 42, 59,118,236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50, -139,197,130,173, 91,183,130,101, 89,132,135,135, 99,236,216,177,216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200, -226, 1,224,199, 71, 71, 32,159, 7,198,149,155, 33,149, 74,113,246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146, -254,194, 62,185,193, 96,133,177,100,191, 82,161, 80, 56, 31, 0,250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, - 95,191,208, 27, 95,251,246,237,191, 61,118,236, 88, 39, 79, 5,215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, - 60,207, 39,156, 59,119, 46, 74, 38,147,129, 16,226, 44,196,238,159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, - 54, 27,130,130,130, 32,186, 81,102,179, 25,245,245,245,254, 56, 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, - 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, 80, 72, 36, 18, 12, 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170, -104,121,158, 71,120,120, 56,214,173, 91, 7,141, 70,131,196,196, 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237, -237,183,118,226,110,238,206,125,238,120, 84,130,101, 1, 65,104,120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51, -174,176,176, 48, 42,208, 52,178,217,108,136,139,139,147,248, 57,108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, - 42, 5,199,113,224, 56, 78, 20,232,137,132,144, 68, 65, 16, 6,150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, - 88,177, 16, 67,183, 58,147, 48,124,219, 33,220, 52,114,200, 27, 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, - 86,106, 90, 90,218,161, 61,123,246, 4, 89, 44, 22,244,238,221,123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113, -226,232,103,159,125, 86, 18, 26, 26, 10,153, 76,134,186,186, 58,156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, - 92, 88, 88,152,177,119,239, 94, 12, 26, 52,232, 69, 0, 47, 95,174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209, -147, 45,107,112,113,220,143, 38, 16,236, 66,241,222,195, 23, 2, 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188, -121,184,239,190,251, 16, 30, 30, 14,165, 82, 9,169, 84, 10,158,231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188, -120,113, 48, 0, 44, 94,188, 24, 35, 70,140, 64, 68, 68, 4,130,131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245, -189,233,166,199, 23, 45, 90, 4, 0,120,235,165,151,112,199,205, 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94, -240,171, 47, 1,124,124,223,125,247, 61,240,253,247,223, 7, 3,192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, - 50,103,156, 25,134,129, 66,161, 8, 40,238,247,221,119,223,200,239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46, -151,203, 33,149, 74, 27,109,238,162,211, 19,231,189,247,222, 59,114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, - 11,115,166,167,200,213,148,123,244, 55,231,188, 62,132,214,161, 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126, -184,245,227,143, 63,142, 7, 31,124, 16,155, 54,109,122,170,137, 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130, -169,201, 15,112, 7, 38,237,127,234,169,152,172, 51,245,216,189,247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51, -222, 59, 91,215,176,223, 70,152,173,175,140,139,185,113,246,255, 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32, -138,138,138, 32, 8,130,201,151,187, 32,149, 74,113,244,232,209,203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143, -241,227,199,227,212,169, 83, 16,151, 42, 9,128,147, 9, 15, 15, 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196, -166, 61, 71,225, 10, 72, 24,179, 44,139,111,191,253, 22, 31,124,240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19, -114, 28,180, 90, 45,194,194,194, 16, 22, 22,214, 72, 32,254,147,225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, - 2, 2,129, 8, 40,187,112, 6,147,223,253, 40,224,167, 15,207,243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164, -164, 36,191,121, 73, 42,149, 78,249,249,231,159,101,223,126,251, 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, - 80, 68, 68, 68, 56,183,132,132, 4,230,127, 61,184,254,121, 0, 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, - 90,237, 90,207,247,156,132, 40,219,102,165,142, 28,242, 6, 0, 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54, -181,107,215,174,219,119,238,220, 25,164,215,235, 33, 8, 2,214,174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, - 73, 73,171,118,238,220,121, 75,100,100, 36,106,107,107,161,213,106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185, -231,158,123,158, 31, 51,102,140, 81,161, 80,136,206, 70,146,231,188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163, -207,234,242, 66,188,244,202,228,128,194,216,186,117,235,167,127,248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6, -108,155, 54,109, 30, 95,178,100,137,147,179, 85,171, 86,224, 56, 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, - 8,139,140,195,156,207,230,249, 13,103,100,100,228,252, 97,195,134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35, -170,149, 6,173,194,130, 27,210, 73, 96,240,251,169, 2,191,207, 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140, -171,248,242, 44,186,248,102,179, 25, 61,123,246, 12, 40,238,174,156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, - 23,133,176, 67,112, 54,226,224,121, 30,203,215, 45,242,234,102, 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241, -165,205,181,171, 80,124,124, 60,230,204,153,227,183, 94,114, 43, 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207, -195,113,226,126,222,209, 98, 21,137,134,126, 99,117, 0, 66, 61,240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107, -245,234,213, 98, 41, 30,152,153,153,185,213,241,189, 70, 46,151, 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56, -172,213,187, 67, 66, 66,142,121,112,117, 14,153, 76,166, 55, 0,148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226, -123,135,194, 76,128,244, 73, 51, 48, 44, 51, 19,235,227,101,144, 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60, -244,221,202,118,203, 80,146, 32,142, 67,239,237,107, 48,126,251, 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175, -106,133,215, 30,217,136, 62, 26, 57,100, 38, 29, 88,150,245,148,179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249, -104, 88,199, 9, 94,194, 9, 66, 8,186,117,235, 6,134, 97,156,110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, - 4, 7,149, 74,133,223,126,251,205,121,204,224,193,131, 97, 52, 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, - 94, 12,158,231, 17, 17, 17, 1,165, 82,201, 44, 90,180,104,162, 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31, -142,227,116, 90,173, 54,194, 27,167, 68, 34,193,179,207, 62,139, 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, - 26,209,170, 85, 43,167,216,242, 80, 0, 91, 98,184,111,203,114, 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33, -118, 8, 54,224,192,198,221, 29, 46,230,151,196, 19,144,134,174,183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207, -246, 23, 78,142,227, 96, 52, 26,241,243,207, 63,227,228,201,147, 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124, -243,205, 24, 51,102, 12,146,146,146,252,198,157, 16,178,176,168,168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, - 96,183,219, 97,179,217,192,113, 28,130,130,130,160, 80, 40, 16, 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234, -207, 78,200, 93,183,124,194, 77, 35,223, 32, 88,241, 1,131,118,109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, - 90, 11,196,106, 23, 42, 95,157,248,201,243,127,250, 61,186, 92,100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88, -209,234,174,187,238,202, 41, 41, 41,233,239, 67,108, 93,198, 25, 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237, -183,223, 80, 86, 86,118, 41, 46, 46, 46,100,224,192,129,236, 75, 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40, -204,219,134,194,211,219, 33, 8, 13,174,117,195,230,249, 59, 9, 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, - 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168,209, 67,214,245,193,235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, - 68, 4,146,146,146,160, 84, 42, 33,147,201,192,113, 28, 24,134,193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155, -223,112, 42,149,202, 71, 23, 46, 92,216,200, 2,137, 14, 11, 3,199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, - 67,186,114, 50,117,117,117,198, 61,123,246,168,247,239,223, 15, 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, - 27,113,207, 61,247,224,219,111,191, 69, 70, 70,134,223,184,215,215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186, -117,107,103,220,197,141,231,121, 72, 36, 18,164,164,164,160,182,182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, - 11, 11, 67, 66, 66,130,211,113, 19,197,209, 7,159,191,219,136, 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93, -187,118,208,104, 52, 80,169, 84, 78,110, 95,156, 94,180,136, 83,111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113, -142,175,253, 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178, -166,187, 30,239,225, 58,222, 29,173,204,204, 76,198, 17, 73, 6, 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240, -249,243,231, 81, 83, 83,131,224,224, 96,205,204,153, 51, 53, 3, 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, - 45, 0,119,223, 86, 96, 89, 22,125,250,244,193, 49, 71,107,199,176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159, -103,198,143, 31,207,137,110, 6, 33, 4, 6,131, 1,177,177,177, 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127, -112, 47,164, 50, 6,172,132, 65,119, 82,133, 95, 7,245, 7, 3,192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51, -103,206, 4,228,104, 57,226,197, 92, 41,167,232,104,236,220,185, 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, - 80, 40,160, 84, 42,153,239,190,251,238,237,228,228,228,216,241,227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108, -226, 76, 75, 75,243, 27,151,173, 91,183,226,139, 47,190,192, 83, 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, - 32, 0,176,216,172,208,215, 27,156, 77,186,118,187, 29, 71,182, 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147, -235,105,177,247,125,190, 44,117, 64, 24,191,103,235, 37,235, 30, 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71, -177,118,237, 90,188,243,206, 59,248,247,191,255,125,153,171,229,239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29, -223,120,227, 13, 86,116,180,148, 74, 37, 24,134,129,209,104,132,201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, - 54,255,215,107,115, 37,163,248, 93, 41,215,175,109,155,192,182,211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, - 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, 38,147, 14,207, 63,255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, - 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58,116,232,128, 69,139, 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, - 57, 50,241,198, 27,111,252,180,190,190,190,186,190,190,254, 83, 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191, -190,223,228,201,147, 37,110,125,116, 36,222,236, 81,171,213, 6,131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99, -199,142,184,235,174,187,192,243, 60,148, 74, 37,212,106,117,163,102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, - 31, 62, 28, 82,169,180, 17,167,152, 15,135, 15, 31,142, 23,222,155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156, -122,189,190,126,243,230,205,138, 87,159,122, 10, 55,182,111,143, 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147, -157, 0, 16, 36, 18, 9,186,116,233,130,178,178, 50, 20, 20, 20,160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211, -120,239,189,247, 96, 50,153, 2,142,123,251,246,237,113,235,173,183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14, -237,218,181,195,202,149, 43,145,154,154,234,151,179, 83,167, 78, 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234, -157,215,136,143,143,111, 18,231,134,189,231,241,229,198,205, 48,153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138, -187,200,185, 96,193, 2,212,212,212, 56,141, 3,241,165, 92, 52, 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, - 51,192,231,173,120,156,152,185,228, 89, 89, 89,211,221,207,247,199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92, -254,230,230,205,155,195,107,107,107,113,250,244,105,176, 44,235,108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202, -203,203, 33,151,203, 33,145, 72, 96, 54,155, 1,160,187,183, 7, 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, - 26, 10,134,216, 33,254,135, 31,126,128, 90,173, 70,112,112,176,243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, - 1,150, 1, 24, 9,192,178, 4, 44,195,128,221,149, 3,134, 1, 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228, -201,197,114,255,190,101,203, 22, 4,202,217,174, 93, 59,168,213,106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32, -156,164,193,141, 16, 16, 21, 21, 5,158,231,153, 69,139, 22, 77, 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, - 54, 61, 33, 33,148, 0, 82, 34, 77,225,194,165,151, 0, 66,104, 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73, -147, 42,200, 37, 32, 72,151, 46, 69,164,131, 5, 20, 36,129, 64, 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, - 33,194, 5,231,125,158,121,118,167,189,115,206,156, 51,103,222,243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235, -215,175, 35, 33, 33, 1,245,235,215,119,219,103,171,168,168, 40,235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138, -138,114,237,251, 53, 26, 77,126,159, 62,125,202,248,109,228,229,229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, - 82,235, 80,110,102,142,234,227, 15, 63, 16, 45,155,250, 6, 0,224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191, -220, 53, 19,192,224,202,248,117, 58, 29, 76, 38, 19, 34, 34, 34,112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16, -173, 6, 44, 25, 25, 25,157,162,163,163,127, 93,177, 98, 69, 68,243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, - 59,119,238, 76, 49, 24, 12,255,182,153,206, 93,226, 68,198, 55,201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, - 4,157,159, 33,213,107,140,119, 76, 12,151, 0,142, 1, 24,176,224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, - 63,147,201,132,107,215,174, 97,204,152, 49,150,188,188, 60, 9, 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219, -182, 45,224,213, 87, 95,221,163,215,235, 95,116,147,250,219,172,172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, - 31,154,166, 75,147,227,242,193,100, 1,138,162, 96, 52,154, 81, 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182, -118, 84, 34, 22,122,181,125, 49, 88,199,113, 28, 72,130, 40,186,246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236, -179,204,252,252,252, 32, 18,137,240,237,183,223,226,198,165, 19,144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241, -250, 3, 68, 53,243,114, 75, 16,250,251,251, 99, 64,199,142,136,238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, - 5,128, 99, 72,119,131, 8,176,246,116, 6, 5, 5,225,183,223,126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183, -111,223,198,238,221,187, 17, 21, 21, 85,237,188,219, 45,120, 51,103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, - 8, 69, 69, 69,248,247,191,255,141,156,156, 28,183, 56, 29,135,247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, - 18,130, 67,151,118,130, 0,129,171, 59, 62, 40, 35, 10,215,239,186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100, -117,170,242, 56,130, 32,174,217,141,173, 51,103,206,156, 69, 16,196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, - 65, 28,181,137,176, 1, 14,219,174, 85, 75,104, 41, 20,138,246,158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18, -137, 68, 77,242,242,242,164,185,185,185, 48, 24, 12,186,249,243,231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61, -194,246,237,219, 1,224,128,107,159, 13, 18, 44,203,150, 86, 10,231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205, -155, 55, 87,249,194,120,245,251,195,184,126,253, 58, 28,195, 3,216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248, -170, 28,224, 93,193, 93,223, 47, 87, 51,115, 42, 66, 70, 70, 70,133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, - 32,151,203, 9,177, 88, 76,136,197,226, 48,187,200, 18, 8, 4,165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, - 61, 50, 51, 51, 43,220,175, 86,171, 59,169,213,106, 60,143,176, 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, - 51,128,159, 59,189, 51, 13,147,251, 70,245,172,238, 48,181,253,126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183, -183, 55,250,246,237, 11,165, 82,137,153, 51,103, 98,248,240,225,213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, - 52,188,110,221,186,176, 88, 44,176, 90,173,176, 88, 44, 72, 78, 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145, -241, 77,242,254,243, 31,102,246, 30,249,170,241,118,206, 15,200,206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160, -105, 6, 98,177, 64,185,244,139, 15, 78,177,224, 64,146,132, 5,192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, - 19, 19,147,157,159,159,159, 8,160, 23, 0,228,231,231, 95, 28, 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169, -215,235,171,162,244, 4, 48, 25, 64, 31,148,248,129,216, 81, 0, 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0, -248,217,117, 15,200,102,209, 50,153,160,206, 47,196,132,119,230,252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, - 39, 25,111, 76,152, 38,173,170, 67,224,234, 69, 88, 13, 31,157, 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191, -124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, 29, 88,139, 1,132, 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84, -224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, 16, 12, 81, 42, 72, 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242, -100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, 38,147, 9, 70,163, 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, - 98,177, 24, 31,124,240, 1, 94,126,249,101,204,155, 55, 15,177,177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50, -178, 42, 94,206,177,140,236,247,211, 46,182, 28,135,248, 0, 84,187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155, -115,209,162, 69, 80,171,213,229, 44, 89,246,255,161,161,161, 88,183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, - 56,142,107,103,243,157, 50,199,197,197,221,138,139,139,139, 38, 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253, -210, 18, 58,141,141,118,119,220,105,191,209,190,190,190,130,240,240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30, -169, 80, 40, 62,251,238,187,239, 26,233,116, 58,220,190,125, 27,171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102, -201,114, 92, 31, 56,112, 32, 26, 52,104, 80,198,154, 37,151,203, 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, - 73, 73, 49,138,197, 98,132,133,133,201,179,179,179,141, 98,177,184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, - 93, 25, 11,150,227,175,227,255, 67,135, 14, 85, 57,116,104,231,108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, - 31, 88,150,133,191,191,191, 91,156,118, 81,107,115,128,135,201,100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149, -250,234,200,100,178, 82,107, 38, 15, 87, 13, 2, 11, 11, 69,193,104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53, -230,183, 55,176, 5, 5, 5, 56,113,226, 4,126,248,225, 7,188,252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, - 51,174, 46, 88,176,160,142,175,175, 47,172, 86, 43, 30, 62,124,136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69, -195,100, 48,163, 88,163,197,103, 95,108,173,176,234, 1, 64, 65,238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206, -157,191,208,106,181, 69, 6,131, 97, 56,128,101,142,253,169,252,252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, - 55, 40,103,166,166,166,206,170, 87,175, 94,153,141,102,179, 25,245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175, -195,110, 47, 0, 39, 1,172,171,168, 46,217,135, 14,117, 58, 35,148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, - 13,177,119,128, 43, 90,170,152, 25, 87, 46,169,246, 99,237, 47,236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, - 85, 0,228,190, 16,119,253, 24,132,202,118,143, 38, 31,118,139, 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, - 10,184,156,144,128, 93, 63,253,132,145, 61,122, 64, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, - 53,107,134,123,247,238,149, 9, 67,193,113,156,187,249, 47,205,187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139, -177,117,235, 86,156, 59,119, 14, 51,102,204,192,248,241,227,209,189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195, -185,213, 45, 35,103, 78,231,247,126, 77,202,221,206,185, 96,193, 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100, -183, 60, 57, 10, 35,231,117, 0, 62,246,109, 51,103,206,156,229,238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116, -153,156, 23, 20, 20, 92,189,122,245,106, 11, 15, 15, 15,220,185,115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175, -254,253,251,159, 90,182,108, 89, 24,203,178,200,201,201,193, 71, 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195, -135,203, 63,108, 7, 15, 30,116,107, 8,196, 46,164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, - 0, 15, 15, 15,251, 88, 49,137,191,102, 42, 84,101,125,170,202, 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, - 90,158,154,154, 90, 97, 67,114,238,220, 57,176,182,134,214, 93, 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82, -200,229,242, 50, 34, 75, 42,149, 86,249,224, 84, 21,144, 84, 38,147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, - 5, 5,237,159,233,161, 67,112,160,173, 52,140, 70, 19,116, 90, 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, - 66,135, 14, 29,202,137,172, 26,154,231,211, 11, 10, 10,186,175, 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45, -214,233,116,221, 1,164, 87, 75,108,178, 28, 40,171, 21, 6,147, 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206, -222, 89,201,254,251, 52, 77, 71,219,227,190,185,129,127,213,171, 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226, -100,189,233,104, 72,198, 95,209,179, 43,234,197,151, 88, 71,141,102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228, -147, 85,147, 58, 68, 16, 68,169,211,247,212,169, 83,113,243,198, 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63, -212,114, 44, 91,113,172,218,220,187, 29, 92, 32,150,237,222,237,114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, - 83,238,125, 83,221,252, 59, 10,152, 21, 43, 86, 96,198,140, 25,216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200, -205,205,197,141, 27, 55, 96, 54,155,221, 78,167,163,223, 92, 82, 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119, -228,116, 22, 90,251, 79,255,142, 97, 81,109,107,196,249,217,103,159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69, -156,144,231,228, 11,101, 95,183, 56,137, 30,231,117,231,227, 1, 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, - 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, 52,120,240,224, 65,171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51, -102, 32, 34, 34, 2,254,254,254,161, 42,149, 10,249,249,249, 88,188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, - 11,137,228,175, 14,171,221,178, 5, 0,227,199,143, 47,103,209,178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, - 24, 50,100,136,224,207, 63,255,100,250,246,237,139,161, 67,135, 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212, -236,223,191,255, 67, 0, 95,186, 33,182,106,205, 49,222, 94,201,220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133, -194, 82, 71,121,119, 56,237, 67,135,142, 15, 32, 73,146, 80,169, 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, - 80, 40,239,220,185,211,200, 62,241, 34, 47, 47, 15, 61,123,246,188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, - 25, 13,181, 70,107,127, 30, 54,110,220,136,196,196, 68,152, 76, 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, - 92,206,246,235,215, 15, 87,175, 94,133, 84, 42,165, 80,131,248, 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, - 84, 85, 39, 38, 38,194, 98,177, 96,222,188,121,204,175,191,254,122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225, -161, 58,122,244,232,123, 0,182, 86,246,242,166,104,155,104,175,197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44, -203, 98,226, 91,111,161,119, 29, 13,134,190, 20, 0,125,214, 93, 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, - 7, 0,253,186, 13, 70,171,102,229,195,131,117,238, 85,210, 39,187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171, -106, 88,180, 74,159, 57,251,253,107,211,166, 13,154, 52,105,130,179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212, -212, 84,220,188,121, 19,133,133,133,213, 46,163,239, 79,238, 66,161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224, -199, 46,119, 59,154, 14,248, 12, 0, 80, 39,192,187, 90, 66,203,145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202, -214,171,123,254,147, 68, 69, 66,235,129, 90,173,238, 48,114,228,200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129, -129, 61, 58,118,236, 40,148, 72, 36,184,124,249, 50,246,239,223,191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43, -162,253, 65, 84, 42,149,130,197,139, 23, 19,155, 55,111,174,208,202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, - 21,253,250,245, 99, 18, 19, 19, 33, 22,139, 49,104,208, 32, 38, 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, - 63,244, 1,208,181, 26,247,202,238, 24,239, 9, 55, 29,224, 43,234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, - 98, 49,109,143,252, 78,146, 36,172, 86, 43,218,182,109,139,220,220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, - 42, 20, 10, 97,177, 88,208,181,107, 87, 16, 4,129, 53,107,214, 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, - 2,203,214,238, 87,101, 98, 99, 99,203,136, 41, 87,145,151,237,247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, - 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55,247,160,211,230, 2, 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, - 63,126, 92,112,224,192,129, 94,135, 14, 29, 74,184,123,247,238,163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, - 30, 94,122,233,165,207, 51, 50, 50, 42, 17, 90,182,251,104, 50, 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238, -220,255, 67,239,144, 34, 12,105,237,141,248, 35,151, 48,186,141, 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220, -126,169,178, 36,150,107,253,200, 14, 32, 31,221,171,118,222, 29,211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31, -127,140, 62,125,250,224,222,189,123, 56,127,254, 60,238,221,187,135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211, -123,161,209, 21,131, 36, 72, 20, 20,231,195,100, 54, 34,118,210,220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, - 57,123,246,108,100,103,103,151,177,100, 61,142, 95,214,179,142,202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94, -148,191,191, 63, 8,130,192,138, 21, 43,224,235,235,219, 9,192, 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200, -201,201,113, 57,111, 95,175,215, 91,163,162,162, 68, 33, 33, 33,101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26, -177,177,177, 88,184,112, 33,194,195,195, 49, 96,192, 0, 68, 71, 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169, -196,199,143, 31,239, 70,146,100,130,195, 11,164, 12,167, 43,216, 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, - 11, 23, 46,196,172, 89,149,187,122,108,216,176, 1, 40,239, 79,245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, - 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26,162, 50,156, 85, 5, 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224, -224, 96, 87,129,252,170, 44,163, 26,224,111,229,100, 56,246,218,210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, - 20,150, 29, 78, 50, 91,255,154, 74, 45,105,219, 11,150,235, 63,186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, - 54,110,220,248,216,121,119, 83,108,149,231,100, 57, 66,225,225, 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126, -253,229,151, 95, 6,249,249,249, 33, 61, 61, 61, 64, 36, 18, 13, 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226, -156, 54,109,154,121,206,156, 57,210, 81,163, 70, 97,232,208,161, 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233, -233,248,241,199, 31,161, 86,171,111, 87,150, 78,150,227, 8,185, 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171, -184,163, 53,171,154, 34,203,101,253, 4,128, 95,127, 60,136,185, 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80, -131, 85,223,198, 71,163, 95,198,178, 29,191, 1, 0,206,159,171,178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175, -227,134,143, 86, 57, 78,123, 39, 81,171,213,162,168,168, 8,241,241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, - 23,223,125,247, 29, 20, 10, 69,141,202,232,195,183,102, 99,206,178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241, -177,203,221, 25,110, 88,179, 42,228, 92,185,114,101, 77,235,210, 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, - 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, 25,194, 11, 13, 13,221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199, -190, 0,192,192,129, 3,113,248,240,225, 42,123, 20,193,193,193,168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229, -114, 28, 61,122, 52,187,160,160,160,128,227,184,106, 77,115,179, 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239, -222, 13,217,184,113,163,160,146,151, 95, 41,206,159, 63, 79,163,138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, - 4,170, 10, 72, 42, 20, 10,145,148,148,132,185,115,231,130, 32, 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159, -129,175,116,110, 9,130,128,213, 82,126,164,218,179, 80, 87, 42,178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130, -239,198,141, 27,133,238,148,251,133, 11, 23,104,142,227,170, 61,236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57, -238,139, 57, 81,219,190, 61, 38, 34, 8, 11,174,156,219,135,226, 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, - 46,186,181, 67,134, 12, 25,245,213, 87, 95,181,112,181,211,141, 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, - 19,235,177, 99,199,222,124,245,213, 87,209,186,117,107,132,132,132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, - 23,192,148, 42,238,227,193, 69, 95,204,137,137,223,113, 76, 66, 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182, -238,183,138,197,162, 59, 85, 89,139, 28,173, 89,181,249, 98, 28, 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243, -197,112, 44,239, 39,134,117,207,104,180,122,109, 27,118,206,235, 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138, -101, 54,113, 83, 61,171,169, 61,239,149, 89,174,170,107,209, 34, 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219, -162, 71,143, 30,184,113,227, 6,110,220,184,129,105,211,166, 85, 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56, -151,123,109,192,157,186, 52,121,242,100, 0,248, 71, 89,183,170, 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165, -251,210,210,210,192,178,172,161,186, 5, 99,177, 88,236,193, 49,203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, - 91,183,110,232,210,165, 75,233,240,137,227,226, 32, 76,112,224,192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, - 0,185,185,185,125,187,118,237,122, 74, 40, 20,186,245, 21, 77,150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, - 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, 60, 60, 60,240,253,247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191, -155,159,228, 28,128,128,161, 95,238,122,120, 46,223, 90,111,232,151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, - 57,242,184,187,229, 78,211,244,131,236,236,236,106,135, 75,224, 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36, -255, 51,231,174, 94,190,240,243,169,126,253,162, 58,180, 3, 9, 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214, -240,225,195,159,102,177,105,178,179,179, 59, 13, 27, 54,108, 10,254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, - 69,129, 64, 32, 5, 48, 23, 64,218,165, 75,151,214, 94,186,116,169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0, -254,168,186, 30,229,190, 13,142, 13,235,215,251, 95,125, 65, 16,156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222, -200,106, 85, 89, 71,202,225, 11, 28,181, 62,100, 63,101,202, 20, 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90, -165,195,252,117,103, 16,202,112,183, 59,124, 0, 48,251,255, 38,212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, - 16, 32, 47, 47, 15, 73, 73, 73,200,201,201,129,193, 96, 64, 98, 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, - 85, 70, 79,147,243,159, 56,124, 88,109,161,101,181, 90, 63,109,208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, - 38,106,170, 61, 11, 79, 36, 18,153,154, 52,105, 66,184,154,157, 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8, -130, 16, 84,212, 11,177,255,103, 89,150, 17, 10,133,113, 53,188, 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231, -242,209, 55,107,214,172,244,139,246,206, 49, 81,108, 31, 91,213, 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238, -119, 12,104,250, 92,131,224,210,250,143,122,179,222,185,124,107, 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253, -221, 73, 75, 73, 73,177,252,235, 95,255,250, 86,171,213, 78, 6, 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26, -158,155,150,159,159,223,211,105,219, 31,118, 65,101,143,107, 87,109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45, -203, 13, 69, 81,233, 85,237,119,142, 17,230,136, 91,240,198,172,171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69, -213,204, 91,174,187,121, 15, 9, 9, 65,157, 58,117, 74,127,237,112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, - 17,223,157,125,178,220,225,172,237, 50,170,140,179, 78,157,109,181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, - 57, 5,252,253,228, 57,121, 78,158,243, 9,114, 62,151,224,189,212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129, -168, 68,149, 86,103,166, 79, 77,148,237,105,158,147,231,228, 57,121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227, -231, 26,188, 89,149,231,228, 57,121, 78,158,147,231,228, 57,121,206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94, -104,241,224,193,131, 7, 15, 30, 60,120,240, 66,139, 7, 15, 30, 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, - 30, 60,120,161,197,131, 7, 15, 30, 60,120,240,224,193,131, 7, 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72, -233, 7, 1,163,163,163, 9,254,182,240,224,193,131, 7, 15, 30, 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, - 7, 15, 94,139,212, 14, 72, 94,108,241,224,193,131, 7, 15, 30, 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172, -103, 10,101, 44, 90,188,224,226,193,131, 7, 15, 30, 60,120, 60, 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, - 30, 60,120,240,120, 76,129, 85,217, 47, 15, 30, 60,120,240,224,193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, - 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31, 11, 33,127, 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, - 23, 90, 60,120,240,224,193,131, 7, 15, 30,181, 39,178, 8, 87,235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, - 22, 45, 30, 60,120,240,224,193,131, 7,143,199, 3, 1,126,232,144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, - 52,115,224,116, 53,200,107, 50,251,224, 52,207,201,115,242,156, 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, - 55, 0,103, 1,116,183,253, 86, 40,188,106, 27,252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168, -148,119,134,231, 81, 21,132,168,124,136,185,170,253, 60,120,240,224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, - 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, 22, 0,111,135,109,191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247, -170, 76, 13,199,137,109,252, 82,219,194, 2, 48, 1, 48, 3,208, 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87, -170,185,255,185, 66, 72, 72,136,220,199,199,167,207,245,235,215, 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225, -201,172,172, 44, 35, 95, 93,158, 11,244, 5, 48,211,246,127, 17,128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, - 29,154,166, 9,131,193,144,169,215,235, 79,209, 52,253,165,173,221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, - 25,153,153,153, 59, 0,236, 1, 48,188, 78,157, 58,163,235,215,175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211, -201,131,199, 63, 9, 68,101,214, 8, 87,152,203,113,220,232, 50, 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, - 23,185, 92, 78, 3, 24, 87,133,200,242,187,124,249,114,189,201,147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241, -115, 96, 96,224,175,171, 86,173,250,142,227,184,116,130, 32,180,213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28, -199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81,212, 55, 0,106, 34,222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10, -133, 55,205,102,243, 9,154,166,215, 2,176,212,128, 83, 38,145, 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, - 70,115,202, 98,177,172,181, 9,206,167, 13, 33,128,104,142,227, 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, - 28,199,113,196,207, 63,255,220,134, 97, 24,210, 86, 63,162, 1,252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180, -208,100,178,151,175, 95,191,222,116,247,238,221,204,215, 95,127, 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, - 43,235, 61,231,227,253,252,252,150,147, 36,233,239,206,245, 89,150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142, -143,151, 53, 2,144, 94,195,250,253,247,113,154, 98, 56, 0,136,151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59, -173,237,202,113,192,148, 40, 47,242,113,133, 86,104,104,104,124, 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, - 77,175, 92,185,210,125,223,190,125, 47,107,181,218,225,213,164,124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20, -213,104,247,238,221,109,223,126,251,237,247, 55,110,220, 88,119,196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0, -190,124, 10,233,228,193,227,159,134,110, 40,235,163,245, 57,128,207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, - 57,115,230,144, 80, 40,180, 91,180,218,235,245,250, 32, 39, 43,152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, - 17,217, 10,133,162,201,171,175,190,170, 37, 8, 66,176,123,247,238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28, -199, 93, 32, 8, 66,237,102, 38, 91,248,250,250,238, 95,178,100, 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67, -143, 30, 61,218,239,243,207, 63,255,176,160,160, 96, 8,128,132,106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, - 97,112,112, 48, 76, 38, 19, 18, 19, 19,123,159, 56,113,162,235,198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237, -189,239,191, 31,127, 28,212,225,141, 55,132,190,190,190,224, 56, 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226, -226, 97,174,238,247,211,132, 68, 34, 33,183,111,223,222, 90, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, - 44, 51, 51,211, 91, 44, 22,187,220,207, 48, 12,186,118,237,218, 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87, -215,119,238,220,233,191,118,237,218,215, 0,148, 19, 90, 36, 73,250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98, -177,160,121,243,230, 79, 53,255,241,241,178, 48, 0,211, 99, 98, 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, - 78,199,250,182,220,225,255, 99,167,213, 1,245, 0,224,216, 13, 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213, -106, 53, 68, 34, 17,172, 86, 43,178,179,179, 17, 25, 25, 41,248,246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224, -216,177, 99,214,237,219,183, 91,162,162,162, 68,227,199,143, 87,118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167, -168, 49, 99,198, 72,226,226,226, 2,142, 30, 61, 58, 48, 33, 33,225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, - 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18,181, 9, 10, 10,138,167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109, -199, 30,100, 89,118, 80, 85,150,172, 49, 99,198,116, 60,126,252,248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225, -135, 31,166, 2, 64, 74, 74, 74,195,129, 3, 7,134, 78,157, 58, 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130, -208, 87, 37,178, 34, 35, 35, 47,159, 63,127,222, 75,165, 82,149,217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234, -213,235, 82,114,114,114, 23, 0,127,186, 35,136, 26, 55,110,124,250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, - 6, 3,148, 74, 37, 70,140, 24, 33,238,214,185, 83,221,169,211,222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119, -198,197,121, 82, 15, 31, 66, 46,151, 67,167,211, 1, 0,188,188,188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215, -164,164,222, 79, 73,108, 73,109,191,102, 0, 71, 4, 2,193, 96,137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102, -221,161, 7, 15, 30, 12,185, 92, 14,139,197,194,162,100,232,144,126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212, -106, 53,242,243,243, 97, 54,155, 81, 84, 84, 4,150,101, 9,185, 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, - 74, 42,179,141,166,105,232,245,122,152,205,102, 88,173, 86,104,181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10, -190,204,201,201, 73,123,194,217,207,179, 11,162,248,120,217,125, 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, - 15,143,252,110, 10,183, 89,199, 30,212, 2, 31, 11, 0, 23, 46, 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142, -227,170, 61, 28,151,156,156,188,238,197, 23, 95, 36,110,221,186,117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12, -223,165, 75,151, 22,196,198,198, 46, 2,176,117,247,238,221,239, 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219, -224, 56,174, 29,128, 0,123,219, 98,107,119,253, 28,214,111, 16, 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130, -248,213,225, 60, 53, 65, 16,191,214, 52,153, 78,191, 37,157,110, 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207, -158,203,174, 93,187,214, 60, 43, 43,203, 39, 43, 43,203,231,218,181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62, -245,180,195, 62,241,229,203,151,235,237,223,191,127,209,233,211,167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, - 11,154,238,211,167, 79,238, 79, 63,253,196,116,232,208, 65,126,252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4, -174, 56,109, 16,169, 84,170,239,207,157, 59, 87, 78,100, 57,162,110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, - 54,200,100, 50,217,190,159,126,250,201,211,203,203, 11,185,185,185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118, -247, 46, 72,139, 5, 43,190,152,239, 37,151,203,247,186,104,236,203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99, -193, 2, 88,173,214,210, 33, 87,171,213,138, 75,147, 39, 67,253,227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, - 3,142,156,147, 1, 20,216,150,201, 0,174, 68, 70, 70, 94, 75, 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, - 99,198,140,201,123,246,236,105,213,165, 75, 23, 36, 38, 38, 34, 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41, -179,176,236, 95,239,152, 58,117,234,228,238,223,191, 31, 35, 70,140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34, -211,237,116,154, 76, 38, 24,141, 70,232,245,122,164,164,164,200,151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179, -102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, 9,231,221,234,244,127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49, -173, 29, 26,216,234,242, 86,118, 63,179,109,105,213, 3, 72,123,156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10, -197, 77,193,138, 85, 96,197, 42, 48,126,237,144, 44,121, 5,225,225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151, -173,167,156, 15, 96, 89,108,108,236,231, 4, 65, 92,136,141,141,157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165, -243,153,120,222,121,206,255, 45,206, 42,180, 72, 0, 65, 16, 71, 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, - 0, 72, 92,253,218, 23,135,237, 1, 28,199, 13,112, 56, 47,160,134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163, -237, 59,126, 33, 8,226, 16,128, 95, 68, 34, 81,155,214,173, 91, 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238, -221,235,213,162, 69,139,193, 34,145,168, 13,128, 95,148, 74,229,161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, - 54, 0, 80,148,144,144,160,232,208,161,131,158,166,105,130,166,105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218, -121,244,234,213, 43,117,250,244,233, 99, 92, 8, 14, 71,188,190,120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, - 48,121,242,228, 96,145, 72,244,102,101,119, 75, 40, 20, 78, 89,188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88, -144,148,148, 4,147, 94, 7, 74,171, 1,165, 41,130,250,254, 61,168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, - 77,108,108,144, 37, 53, 21, 41,123,246,128,161,203, 27,127,104,171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, - 83,158,176, 37,107, 41,199,113,114,142,227,228, 4, 65,172,234,216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, - 59,127,254,124,119,154,166, 69, 52, 77,139, 46, 92,184,208,197,100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98, -177, 24,114,185, 28,157, 59,119,190,191,121,243,102, 42, 44, 44, 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171, -213, 46,118,151,207,106,181,194,108, 54,195,104, 52,194,100, 50,225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, - 11, 40,138, 50,199,198,198, 42,125,125,125, 63,124,146,249,140,137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, - 56, 1, 88,108, 62, 89,118,248,219,184, 45,181,116, 43,104, 0, 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104, -227, 55,223,124, 19, 70, 74, 85,184,104,233,143,239,216,207,113,210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199, -113,107,106, 33,205, 95, 1,232, 10, 96, 85, 77, 78,126, 2,233,172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134, -103, 31, 7, 81,141,208,123, 80, 51, 50, 61, 42, 2,220,160,102,100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113, -209, 28,199, 69, 47, 90,180,104,161,195,251,221,190, 46,119,211, 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, - 41,209, 20,142, 74,210, 33,115,165,179, 11,131,130,130,226,227,227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175, -177, 99,199,190,151,158,158, 30, 83, 69, 34, 36,217,217,217,109, 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237, -237,205,216, 15,240,246,246,102,138,139,139, 69,122,189, 94,192, 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, - 64, 64, 64, 84,255,254,253, 43, 28, 58,160, 40, 10,122,189, 30,122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110, -110,238,250, 10, 21,135, 84, 26, 21, 21, 21, 37, 42, 40, 40,128,183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, - 88,117, 90,208, 90, 13, 56, 77, 49,242,239,221, 65,135,102, 77,197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195, -184,113, 66, 15, 15, 15,116, 31, 93, 50,207,224,120,179,102,224, 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18, -237, 10, 10,132,202,109,219,162,212,106,245,178,167, 81,217,165, 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22, -156, 60,121,242, 31,247,208, 75, 36, 18,200,100, 50, 88,173, 86,212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, - 30, 98,177,248,135,252,252,252,133, 89, 89, 89, 41,238,242, 81, 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55, -104,208,128,152, 60,121, 50, 99, 48, 24, 26,174, 94,189, 58,249,228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, - 83, 51, 0,205,226,227,101, 98,155,229,215,242, 63,198,201,161,196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225, -126, 66,189, 72, 0, 29, 0, 47,155, 40,120,149, 32,136, 14,205,155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, - 70,198,178, 44,193,178, 44,222,110, 95,132,201, 29, 5,160,168, 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, - 62,155,111,122,122,122,246,145,201,100,245,105,154, 38,117, 58, 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, - 29, 30, 30, 30, 75,102,205,154,213,201,219,219, 27,191,255,254,123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91, -150,175, 92, 19, 26, 26,168,194,141,243,135, 67, 23,110,216,189, 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, - 27, 64, 16,196, 17,103,161, 84, 45,179,211, 99,158, 95,133, 69,203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, - 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86,171,225,227,227, 3,171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34, -145,217,104, 52, 66,161, 80,176, 34,145,136,179, 93,135,176,205, 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, - 20,149,248,146,113, 28,215,222,207,207,207,229, 62,179,217, 12,157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, - 52,221,182,210, 46, 45, 77,183, 12, 8, 8, 64,102,102, 38,228,114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138, -139,193,106, 52, 96,245, 26, 80, 22, 3, 66,155, 52,131,125, 70, 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56, -155,192,162,105, 26,180,205, 57,218, 62,156,232,239,239, 15,251,140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, - 38, 33, 43, 43,171, 76,157,152, 52,105, 82,169, 79, 86,215,174, 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, - 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127,127,125, 94, 94,222,207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70, -112, 28,135,223,127,255, 29, 50,153, 76,196, 48,204, 45,154,166, 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, - 54, 11,209,155, 40,113, 56,207,112,209,144,184,117,235,220,228,172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111, -170,146, 44,143,235, 16,168,106, 61,208, 67,175,144, 8,244,108, 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87, -207,223,223, 95,150,156,156,108,154, 63,127,126,131,237,219,183, 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254, -253,251, 55,148, 74,165, 68,113,113, 49,212,106, 53,114,114,114,240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, - 36, 36,100,243,235,175,191, 62,246,165,151, 94, 18,217, 45,164,122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175, -118,189,124,244,232,209,158,217,179,103,123,188,242,202, 43, 77,165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125, -250, 52, 84, 42, 21, 72,146, 12,122,220,250,106,178,178,161,117,130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242, -252, 88,180, 42,120,215,183,179, 91,164,170, 16, 75,198,153, 51,103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50, -142,199, 57, 28,111,174,109,177, 85,173, 64,147, 44,203, 34, 35, 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199, -113,238,204, 62,227, 8,130, 96, 79,157, 58,229,115,249,242,101,125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, - 24, 34, 45, 45, 77,124,241,226, 69,213,237,219,183,131,108,189, 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, - 50,247, 84,135,237, 69,248,251,181,107, 37, 34, 75,167,181, 13, 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25, -220,190,127,142,176,139, 44,171, 77,104, 89, 44, 22, 80, 20, 5,150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, - 96,124, 70, 70,249,119,225,144, 33, 67,240,238,187,239, 98,234,212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88, -150,109, 13,160, 24,192,241,231,237,161, 55,155,205,165, 22, 40,147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, - 77,219,185,137, 3, 7,246,227,194,133, 11,100, 66,194,173,176, 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, - 40, 44, 40,241,127,170, 40,164, 66, 4, 42, 31,178,227, 42,227,124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41, -143,105,209,122, 69, 66, 18, 95, 79,107,233, 43,251,176,149,159, 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, - 97, 13, 84,117, 22, 46,252, 34,228,246,237, 59,230, 57,115,230, 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38, -147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26,116, 53, 48, 48,176,193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101, -245,122,253, 3,163,209,120,218,106,181,158, 6,112,173, 58,137,245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, - 86, 43,114,115,115,209,169, 83, 39,193,161, 67,135, 90,212,228, 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82, -169,124, 73, 42,149, 6, 3, 96,180, 90,109,142, 94,175,255,163, 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, - 62,124, 8,134, 97,114, 30,183, 14,200,196,228,163,155,231, 15,213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61, -247,176,251, 80,193, 81, 64,185, 16, 72,151,227,226,226,228,139, 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187, -101, 63,206,225,248,243,143,145,198,138, 45, 90, 21, 41, 72,160,100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153, -153,153,144, 72, 36, 72, 75, 75,131, 68, 34,201,114,167, 19, 34,151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215, -189,118,237,154,178, 83,167, 78, 47,202,229,114,134,227, 56,152, 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180, -111,223,254,250,238,221,187,141,168, 36,254, 21, 65, 16,191,100,101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, - 25,242, 20, 10,133,215, 43, 75,168, 80, 40,188,153,148,148,212, 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, - 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, 46,147, 33, 35, 61, 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, - 74, 85,250, 18,165,104,186,100, 97, 24, 88,104,186,212,162, 37, 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201, -216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, 58,116,192,148, 41, 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, - 43,113,107,119, 90, 55, 26,141,208,233,116, 40, 44, 44, 20,202,229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240, -224,129,166, 34, 78,155, 48, 43, 21, 93, 44,203,130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136, -223,178,157, 27, 52,104, 16,113,232,208, 33,176, 44,155,254,132,179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, - 21,113, 58,246,254, 28,183, 17, 46,142, 41,135, 15, 62,248,224, 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25, -104, 70,111, 62,183, 83,247,237, 93,141,126,222,183, 43,127,179, 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174, -223,184, 42,127,199,246,189,201, 15, 31, 62,212,172, 93,187,182,227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69, -227, 55,223,124,115, 92, 97, 97,161, 56, 62, 62,126,119, 86, 86,214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100, -107,231, 46, 2,152, 95, 89,127,141, 32, 8,252,244,211, 79,229,102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, - 39, 39,103,152,243, 78,177, 88, 60,175, 73,147, 38,125,111,221,186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, - 16, 8,234, 48, 12,147,105, 52, 26, 99, 31,219,162, 69,177, 19,226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226, -117,200,243,107,205,178, 65,237, 96,141, 82, 3, 32,156,214,255,176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, - 87,251,212,143, 17, 44,157,171,168,141,171,200,162,245, 9,128,246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240, -210,104, 52,200,201,201, 65,110,110, 46,132, 66, 33,148, 74, 37,214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0, -147,191,191,255,111,219,183,111, 15,254,250,235,175,133, 49, 49, 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, - 67,152,205,102,226,237,183,223,142, 88,177, 98, 69,170, 64, 32, 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213, -167,190,255,254,251,161,211,167, 79,151, 90, 44, 22,151,150, 44,251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, - 56,245,195,177,163, 93,255, 51,114,164,152,210,106, 64,105, 53,160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112, -152, 12,180,209, 19, 71,127,253,131, 50,155,205,149, 6, 54,212,104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, - 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, 7, 91,182, 4, 67, 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, - 55,110,220,200, 29, 61,122,244, 53,150,101,219,226, 9,125, 52,243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3, -201,209,163, 71,187, 38, 38, 38,138,255,252,243, 79, 92,184,112,161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170, -196,155,171,160,191,176,249, 31,238,222,185, 7,239,188,243, 14,145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, - 98,227,227,101,117,225,228,247,228, 34,164,194,239,112, 51,164, 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, - 56, 80, 22, 95,165,165, 12, 49,166, 24,141,205, 33, 62,171, 22, 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140, -243, 1,156,128,137,225,238, 93,231,110,188,244,146,143, 63, 0,152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122, -190,228,231,231,183, 46, 63, 63,191,179,171, 50,141,142,142,238, 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179, -243, 65, 17, 17, 17,115,110,223,190,221, 78, 36, 18, 17, 85,212, 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35, -110, 4, 78, 80, 12, 8,101, 96, 84,173,144, 38,110,142,176,176,171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58, -116,232,150,248,248,248,176,110,221,186,113,215,175, 95, 39,157, 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97, -215,174, 93,147, 81,118,166,109, 85, 72,179,197, 27,172, 53,156, 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92, -120,140,240, 12,143,149,196, 10, 13, 24, 21,108,111,111,139,137,213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252, -124,248,249,249,161,126,253,250, 32, 8, 2,235,214,173, 51, 62,120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10, -218,213,171, 87,239,218,182,109,155,234,218,181,107, 2,154,166,149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152, -189,118,237,154, 34, 34, 34,194, 68, 16,132,244,199, 31,127,204,191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, - 96,193,130,140,148,148, 20,152,205,102,104, 52, 26, 20, 23, 23,151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246, -239,223,159,101,139, 18, 95,153,101, 99,237,154,117,235,213, 89, 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, - 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, 71,163, 67,252,229, 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, - 22,139, 81,111,248,112, 88,109, 67,133,142, 66,139, 33, 8,132,247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, - 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, 79, 76, 76,220, 5,224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153, -162, 40,204,157, 59, 23, 98,177, 24,115,231,206,197,167,159,126,138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, - 6, 23, 47, 94, 20,159, 63,127,158,139,139,139,203,139,136,136, 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, - 94, 94,136,141,141,197,146, 37, 75,176,121,243,102, 28, 60,120, 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, - 87,175,206, 56,120,240,160,113,213,170, 85, 16, 10,133,196, 83,106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81, -181,111, 84, 69,156,144,197,199,215,181,137,163,100, 7, 65,116, 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150, -143,254,191, 68,213,166, 59,247,175,100, 25,103, 3,248,193,158, 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148, -148,228,253,253,247,223,203, 2, 3, 3,241,237,183,223,202,228,114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, - 9,253,218,181,107,247,190,173, 35,218, 11, 64, 11,148,204, 94,140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, - 32,173, 86,251,205,214,173, 91,235, 23, 48,190, 56,166, 31,138,120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191, -254,122, 29,134, 97, 54, 85,179,220, 95, 31, 50,100,200,214,248,248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237, -142,203,237,219,183,243,198,142, 29,155,181,105,211,166,144, 17, 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, - 29,186,120,225,150,254,207,205,205, 93, 93, 88, 88,120,233,222,189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147, -179,202, 33, 96,169, 43,191,146,222,176,197,218, 32, 8,130,226, 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152, -186,119,239,142,189,123,247,250,247,232,209,195,192,178, 44,119,236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183, -155, 54,105,210,100, 98,108,108,172,154, 32, 8,214, 21,167,253, 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, - 84,160,105, 26, 6,131, 1, 6,131, 1, 28,199,193,219,219, 27,106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, - 77, 38,147,105,216,228,247,167,159, 90,245,249, 92,175,240, 6, 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37, -114,220, 75,210,226,163, 93, 7,180, 70,147,233, 53, 23,189,229,114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, - 4, 5, 65, 32, 16,192,108, 54,131, 97, 24,136, 68, 34, 68,198,196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20, -143, 51,103,109,192,145,115,242,141, 27, 55,198, 54,107,214, 12,147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250, -245, 48,155,205, 99, 1, 92, 7,176, 14, 37, 67, 29,112, 18, 89,127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, - 9,171,213,138,207, 63,255, 28,118,193,105,175,215, 83,166, 76,169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, - 37,103,182,111,223,238,255,205, 55,223,188, 14, 32,214,153,147,101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, - 47, 47, 55, 60, 57,126,252,120, 88,173, 20, 4, 2,161,197,100, 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188, -159,161, 40, 9, 97,224,232,248,110,113,244,207, 66,197, 33, 21,170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, - 49,123,237, 38,253,106,112,218, 5, 97, 77, 56, 79,217,150, 42, 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, - 84,148, 78,179,217,252,231, 71, 31,125,116, 99,211,166, 77,189,175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75, -163, 41,138,226, 66, 66, 66,132,157, 59,119,150,245,239,223,223, 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135, -205, 57,239, 2,130, 32,240, 97, 87, 45, 98,123, 8, 96,177, 88, 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56, -142,172, 70,185,251, 1,152,253,221,119,223,133, 74, 36, 18, 98,215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118, -239,222, 61,207, 54,122,145,254, 44, 62,239, 60,231,255, 44,231,179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148, -162,168, 95, 92,132,112,248, 4,192, 92, 7, 43, 88, 85,230, 60, 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233, -147,149,149,149,213,112,249,242,229, 97, 52, 77, 91, 19, 18, 18,200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190, -125,251, 28, 65, 16, 86, 55, 50,152,144,156,156,220,169, 71,143, 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, - 68, 74, 74, 10,254,248,227, 15,203,238,221,187,211,139,138,138,170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, - 3,253,255,213,244, 5, 73, 72, 72, 8, 96, 52,226,206,195,108, 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130, -231,151,223,238,221,235,221,115,198,140,125,243,254,243,159, 32,100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44, -189,120,227,198, 28,155,200,122,210, 81,225,165, 0,150,178, 44, 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, - 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96,203,179,110,197,178,163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235, -227,227, 3,173, 86, 11,154,166,153,140,140,140, 59, 62, 62, 62, 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, - 11, 72,146,172,200,242, 1,165, 82,153,118,230,204,153,198,111,189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, - 48, 28,199,237,127,210,247,160, 75,151,157,192,134,152,215, 0,188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, - 3,254,226,116, 28,198,179, 11, 34,155, 21,170,185, 44, 62,126, 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221, -129,163,246,213,235,245, 96, 24,166, 50,107,222,239,123,247,238, 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101, -143, 30, 61, 60, 29, 15, 48, 26,141,236,225,195,135,245,235,215,175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, - 31, 30, 93,184,112,161,119,255,254,253,155, 0, 40,245,207, 82,171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, - 75,249, 0,230,141, 26, 53,106,233,182,109,219,234, 76,152, 48, 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105, -185,109,219,182,144, 9, 19, 38,100,163,196,143, 44, 29, 60,120,240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38, -147,137, 51, 24, 12,156, 78,167,227,224,250, 43,240, 7, 51, 51, 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, - 39,197,235,170,193,242,216,177, 99, 71,163,208,208,208,207, 21, 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159, -223,167,139, 23, 47, 14,229, 56, 78, 92,137,138,174, 8, 66,145, 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192, -192,192,131, 34,145,232, 29, 0,162, 42,148,121, 69,144, 9,133,194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225, -113, 74, 40, 20,126,132,202, 3,169, 86,202, 41,145, 72, 62, 10, 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, - 68,242, 56,156,143,211, 43,177, 11, 45, 3,103, 3, 65, 16, 84,235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213, -234,107,155, 85,146,179, 89, 91, 12,168, 56,120,227,223,153,206,167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77, -154, 52, 41,152, 51,103,142,102,219,182,109,108,100,100,228,246,154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148, -148,196,109,218,180,137,142,140,140, 44,112,138, 12,255, 36,242, 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68, -140, 41,134,179,205, 62, 60, 1,160, 79, 5,101,239, 46,103,152, 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191, -158, 4,167, 75,180,104,209,226, 30,231, 0,139,197,194,169,213,106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, - 63, 0,111, 3, 56, 28, 28, 28,124,187, 99,199,142, 15, 59,117,234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218, -150,165, 0,154, 84,193,217, 81,165, 82, 45, 12, 11, 11, 59,212,184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45, -194, 95,145,177,171, 91,231,123, 12, 29, 58, 52, 77,167,211, 49, 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70, -142, 28,153, 14, 32,250,159,240,188,243,156, 79,133,243, 31,133,198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118, -110,149, 5,193,113,156,128,227, 56, 15,142,227,188, 57,142,243,229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254, -251, 56, 39,219, 4,148,193,246,223, 25, 85,237,127,174,239,103,104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239, -127,116,224,192,129,143,218,181,107, 55, 53, 52, 52,212,231,113,210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121, -243,230, 95, 57,137,172, 39,153,119,137, 77,196, 52,179, 45, 13,109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195, -105,231, 59, 4,160,175,109, 57,100,219, 22,246, 20, 56,203,161, 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181, -186,215,162, 69,139,123, 77,155, 54,189, 23, 17, 17,113,175,110,221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103, -192,158,118,157,239, 30, 25, 25,121, 85, 38,147,185,140, 13, 38, 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, - 11,173,255, 33,240,149,240,217,227,148,162,242,207,140, 84,181,159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145, -212, 2,167, 35,159,189, 78, 69, 56,136,166,167,193,201,215, 37,158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230, -126, 30,207,197,104, 60,126, 0, 0, 32, 0, 73, 68, 65, 84, 54,170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, - 81, 91,109,103,119, 0,231,236,189,194,138, 84,105,117,102, 19,212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158, -243, 31,199,105,199,138, 10,182,223,113, 90,255,250, 25, 21, 94, 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, - 78,158,179,166,152,248,140,138,172,110,246, 21,126,232,144, 7, 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, - 8,236,255, 71,141, 26, 53,158, 97,152,169,246,117,129, 64,176,230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, - 85, 93,199, 21,103,139, 38,202, 73,126,222,138,247,138,138, 13, 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178, -101,203,221,218, 78,231,248,241,227,155, 56, 95,167,126,152,168,187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236, -169,192, 31, 64,180,151, 76, 60,168,133, 74,220,241,207,124,211,101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, - 42,149,202, 49, 0, 90, 24, 12,134, 64,133, 66,145, 11, 32, 65,163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, - 91,125,120, 46, 21,245,220,217, 87, 21,250, 68,192,196, 1, 82,130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247, -105, 4, 11,199, 65, 76, 0,230,147,247, 33,123,142,138, 74, 9, 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120, -174,224, 60, 84, 88,186, 46,172, 64, 76,116, 21, 11,137,175, 56,112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66, -190,246,237, 9,227, 63, 7,137, 34,138,198,187, 91,182,108,169,241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123, -248, 99,159,174, 3, 22, 47,178, 60,200,139,213,106,181,164, 84, 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56, -139, 88,236,113,121,197,138, 21,217, 53, 77,231, 7, 31,124, 16,108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, - 88,124,246,240,199,138,110,209,139, 62, 7,120,161,245, 20, 32,169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, - 76, 22,235,160,179,233,186, 65,159, 94,201,156,158,174,179,182, 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70, -110,220,184, 81,220,176, 97, 67,200,100, 50, 24,141,198,144,251,247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22, -238,125, 8, 46,252,236,214,255, 3, 0,116, 26, 51, 63, 28, 37, 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, - 44,148,132, 80,112,213,234, 72,142,108, 91,134, 65, 99, 63, 18, 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, - 9, 14,194,195,219,150, 33,122,236, 71, 21,126, 71,177,111, 99,130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12, -231,160, 36, 6, 88, 57, 74,148,124,208,217,229,241, 3,154, 10,114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, - 76, 27, 80, 20, 83,210,182,138,133, 96, 14,166,120,159,157, 61,123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212, -106,181, 63,218,238, 91, 50,255,248,242,224,241, 92, 11, 46,215, 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, - 98,231,206,157, 40, 44, 44,132,143,143, 15, 36, 98,177,104,229,210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169, -169,230,117, 26, 59,159, 79,216, 62,165, 35, 20,144, 34,137, 68, 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, - 69,159,200,149, 74, 79,249,155,147,103,118, 70, 73,252,159, 26,193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112, -190,142, 88, 44,102,236, 47, 22,190,142, 61, 21,204,222,248,238,216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, - 80, 0, 1,129,230, 49, 39, 82,103, 1,248,244,121,201,108,195,134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, - 78,175,215,195,104, 52, 34, 52, 52, 20,103,207,158, 21,207,153, 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, - 86,253,240,240,112, 19, 0, 12,108,233,229,188,175,158,125, 31, 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253, -188, 41,189, 66,153, 10,182,155, 0, 40, 42,227, 98, 89, 78,120,242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54, -108,104,116,220,238,233,233, 89,209, 41, 65, 58,157, 46,220,121,163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, - 6,194, 29, 59,118, 0, 0,190,252,104,180, 96,211,207,121, 66,161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68, -255,109,219,182,245, 63,120,240,224,202,138,132, 42, 15, 30, 60,158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, - 94,127, 27,199,143,255,128,174, 93,187,150,238,107,208,160, 1,134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167, -176, 88,255,105,191,145, 95,205,127,152,173,187,114,228,200, 17,116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68, -153,119, 11, 4, 71,138,189,148, 30, 24, 21,243, 14, 92, 93,103,226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, - 30,141,130,253,250,180,108,214, 20,133,251,215,226,143, 34, 19,142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135, -168,103,182,158,122, 46,132, 86,112,112,112,211,128,128,128, 50, 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73, -196,198,198,138,207,157, 59, 55, 50, 56, 56,248,180, 27,195,136, 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, - 40, 20,156, 80, 44,213,118, 31, 55,223, 11, 0, 72,161, 88,187,114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210, -157, 52,155,205,102,206,145,211, 98, 49,151,110, 95,188,120,177, 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5, -144,138, 5,144,138, 5,144, 73, 68,240,170,223, 14,210,194, 63, 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34, -145,136,167, 77,155, 86,101, 58,199,143, 31,207,169, 84, 42,171, 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136, -160,144, 10,209,184, 65, 24,164,156,209,237,180, 10, 4,101,189, 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221, -121,161,197,131,199,115,129, 10,103, 24, 10, 1,224,200,145, 35,221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24, -222, 28, 55, 10, 12,195,150,126,231,139, 32, 9, 76,126,163, 63, 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, - 0,160, 81,189, 16,110,226,155,255, 1,195,178,127, 13,148, 8,128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133, -171,235, 52,109, 84,135,164,173, 38, 16,101, 63,246,248,119,124,108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, - 59, 5,198, 83, 25,250, 64, 82,149,170, 94,245, 90, 7,153, 64,157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179, -113,227,198,114, 34, 43, 39, 39,135,212,233,116,176, 90,173,172, 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179, -179,231,217, 53,143, 43, 78,155,223,213,140, 91,183,110,213,155, 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, - 9, 9, 89, 21, 21, 21,229,187, 96,193, 2,107,255,254,253, 83, 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155, -119, 71,206, 45,103,214,112, 0, 64, 16, 4,162,162,162,210, 26, 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, - 52, 9,245,182, 53, 34, 4, 32,247, 44,245,196,139,138,138, 74,111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85, -142, 83, 46,151, 83,175,191,254,250,195, 59,119,238,184, 58, 30, 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, - 18,128,158, 51,101,180, 80, 37, 3,164, 94,254,102,141, 70, 3,165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221, -246,236,217,115,142,127,222,121, 78,158,243, 47,184,210, 34,207,160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, - 8, 15,194,226,255, 27, 15,134, 97,193, 48, 12,104,219, 47,195, 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174, -119,125,122, 14, 89,218, 43,110,246,184, 83, 12, 3,176, 44, 5,138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245, -194,130, 17, 55,123, 28,156,175,179,253,187, 61, 3,207, 28,138, 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, - 82, 33, 39,148,193, 98,161,161,181,176, 22, 0,122, 19,197, 90, 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134, -101, 68,214,178,101,203,252,215,173, 91, 23, 10, 0,195,134, 13,203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, - 1, 0,222,179,157, 59, 3,192,186, 10,120,245,225,225,225,166,128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, - 96, 96,160,185,113,227,198,122,177, 88, 12,146, 36, 97, 23,122,110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, - 16, 9,201,242,205,155, 3, 39, 73,146, 46,175, 87, 97, 29,146,201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, - 67, 4,224, 44,199,113,184,126,253, 58, 82, 82, 82, 32, 22,139, 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, - 6,224, 38,255, 4,243,224, 81,138,179,207,160,192,114,182,106, 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68, -236,184, 16, 63, 20, 13,138,178, 2, 28, 87, 43, 66,171,162,235, 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, - 77, 81,181,114,247, 88,134, 2,203, 82,112,117, 29,130, 32, 25, 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23, -104, 19, 66,253,164, 18,228, 25,209,240,133,102,130,223, 13, 20, 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201, -160,215,235, 75, 45, 89,235,214,173, 11,181, 88, 44, 36, 0, 8,133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63, -142,227, 8,155,224, 89, 10, 96, 11, 42,137,238, 47, 22,139, 75, 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44, -118,185,221,121,120,173, 42,136, 29,133, 22,184, 18,171,150,147,216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, - 10, 28,174, 39,168,190, 43,166,213,106,133, 78,167, 67, 81, 81, 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, - 49, 15, 30,174,181,200, 51, 44,182, 92, 11, 45,148,152,236, 8, 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, - 23,112,213,140,122, 58,114,228,200,173, 33, 33, 33, 29,236,235, 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152, -126,101, 68, 86,137, 69,203, 82,225, 55, 65, 10,139,245,159,246, 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161, -198, 28, 70,146,191,162,144, 8, 97,134,191,253,217,120,135,198,253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77, -228,132,158,205, 21,164,246,252,199,227,254,117,192, 81,204,249,250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151, -183,138, 12,123,185, 59, 94,126,239, 43,156,249,228, 99, 14, 40,132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, - 5, 10,158,139,188, 42, 20,138, 92,131,193, 16, 98, 52, 26,161,209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, - 88, 2,202,106,193,241,237, 95, 84,201,105, 15,225, 48,176,165, 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240, -218,143,223,219,191,252, 93, 47, 0,184,113,100,173,102, 84,236,154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153, -205,102,147, 77,160,217,133, 31, 30, 60,120, 80,215,108, 54, 27, 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169, -169,169,117, 40,138, 50, 8,133, 66, 88, 44, 22,183, 84, 17, 73,146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224, -150,128,196,219,237, 60,115,110,116, 68,109, 98,235,137, 69,144,230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213, -253,200,145, 35,156, 99, 15,145,166, 40,155,200,250, 75,244, 48, 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145, -247,130, 5, 11,164,115,230,204, 49,143, 28, 57,114, 57,203,178,173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107, -215, 26,218,215, 41,138,130,151,151, 23,188,188,188,208,180,113, 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, - 40,138, 1,195,178,165,226,167, 80, 99, 14, 59,116,250,122, 35,135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124, -236, 90, 63,119,250,130,205,155,165,133, 76,192,180, 81,175,189, 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201, -177, 84,233,245, 64,130,131,179,143, 22,143, 39,132,228, 34, 61, 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191, -200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77,212,115,148,221,132,228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, - 97, 25, 66,161, 40, 76, 40, 18, 17,209,163,166,178,217,217,153, 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, - 66,163,100,232,208,149, 53,203, 49,132,131, 87, 84, 84,148,175,125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142, -179, 14,221,180, 22, 17, 35, 71,142,148,135,135,135, 19, 0,240,235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254, -143,107,223,117,155,211, 95,193, 1,197, 15,128,226,212,114,150,172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97, -236, 46, 15, 33, 13,100, 95,119,139, 43,166, 13,168, 80, 79, 8,151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131, -135, 91,112,210, 34,207, 20,186,217, 4, 98,119,219,111,169,224, 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, - 6, 34,194,140,149, 43, 87,226,253,247,223, 7, 0,241,244,233,211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68, -101,189,198,179, 33, 33, 33, 57, 28,199,137, 72,146,236,178,118,237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12, -195,194,106,181, 84,248,153, 91, 31,165,124,193, 15,123,166,249,244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, - 41, 63, 55, 3, 39,143, 31,196,134,245, 27, 10, 65,112,183,193,129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205, -177, 96,243,102,233,173,107, 89, 7,166,126, 48, 43,114,248,168, 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11, -243, 6,254,196,251,104, 61, 45,248,158, 60,117,138, 24, 51,102, 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153, -247,223,127,159,204,206,206,134, 70,171, 19, 2,240,197,115, 96,214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36, -161,209,104,208,163, 71,143, 60, 53, 27, 42,155,248,206, 84,255,204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, - 71, 27, 71,141,127,191,206,251,179,227, 54,102, 93, 94,191,206,157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, - 42,149, 74,198,141, 27,231,214,248,161,197, 98,225, 22, 47, 94,108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204, -114,185,156,163,168,170,253, 62, 73,146,160,223, 90,176,131,166,105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176, -176, 48,139, 66,161,224,164, 82,169,216,157,116, 78,157, 58,149,243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, - 64,184, 96,109,105,120, 7,169,151,151, 23,180, 90,109,105, 90, 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206, -189, 56, 90, 44,160,203,201,205, 11,244, 15,170, 15,154,166,109, 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173, -168,233,211,167, 31, 0, 80,101, 99,182,107,215,174,249,211,167, 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99, -198, 12, 44, 93,186, 20, 34,137, 12,190, 1,117, 75,175, 99,191,110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, - 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, 65, 73,214, 78, 30, 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229, -144,161,115, 38, 76, 48,187, 97, 4, 36,111, 93,203, 58, 48,245,253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, - 8, 75,175, 67,177, 44, 72, 82,192,251,104, 61, 37,145, 37,149, 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162, -144,151,151,135, 3, 7, 14, 36,112, 28, 7, 31, 31, 31, 28, 59,118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179, -179,239,200,229,242, 93,179,102,205, 26, 53,115,230, 76, 17,203,178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16, -197,197, 26, 86,225,169,202,178,114, 2,133, 72, 44, 1, 41, 16, 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22, -139,113,117,207, 50, 77,247,113,243,149, 0, 32,150,202, 11,251,244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, - 58, 63,159,244,144,113,177, 2,133, 92,166,143,138,138,122,104,231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209, -105,145,145,145,122,129, 64,128,196,131, 75, 52, 67,198,197,202,136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, - 5,213,191,127,255, 71,118,127,177,212,212,212, 58, 3, 6, 12,144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, - 53,113,254,225,231, 46,155,189, 71, 16, 68, 69, 81, 20,112,139, 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74, -221,168,117,214, 90,220, 84,171,162,214, 81, 23, 42, 46, 16, 7, 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, - 65, 91,107,127,121, 62,159,124,146,220,189,247,220,123,251,185,239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, - 6, 70, 70, 70,138, 9, 19, 38,188,123,254,252,121,109,163, 14,171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, - 45, 3, 12,248,111,162, 98, 30,173,170, 51,195, 43,148,138,111,167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223, -127,255,157, 9, 0, 35,141,216,154, 59,119,110,141,101, 78,180, 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248, -227,143,140,248, 87,137,242,177,211, 87, 20, 84, 88, 15,104,208,197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166, -101,150,220, 25, 59,109,105,217,221, 75, 5,160,144,224,171, 0, 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157, -219,130,206,172,193,129,154,197, 22, 77,120,124, 59,119,129,149, 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246, -122, 0,192,218, 12,103,124,191,218,208, 59, 43, 79,180,221,112,158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228, -230,230, 66,165, 42, 61, 34,114,185, 28, 66,161, 16, 69, 69, 69,144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174, -150,201,100,211, 63,247,237,126,251,246,237,174,115,231,206,225,214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9, -133, 92, 6,128,166,179,179,179, 41, 99, 83, 75,129,173,131,243,187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222, -225,251, 23, 47, 94,212,219,180,105,147, 76, 59, 18,112,248,130,157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198, -121, 93, 23,103,248, 43,111, 48,251,197,139,103,205, 42,114,250, 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106, -100,237,233,233,153, 92, 29,111,131, 6, 13,196,124, 62, 95,214,164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, - 57, 56, 56,200,154, 54,109, 90,172,175,211,190,145,145, 17,173,177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195, -127,223,168,145, 96,212,168, 81,252,121,243,230,225,224,193,131,184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252, -135, 18,235, 26, 96,192,255, 25,170,207,163, 85, 17,135, 14,133,252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206, -156, 57, 16,139,197, 86,149, 52,235, 1,117,174,141,202, 68, 86, 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28, -234, 86,213,250,134, 12, 25,242, 30, 39, 77,144, 12,146, 36,138, 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, - 60,221,185, 45, 72, 12,160,103, 69,177,133,191,202,140,148,113,106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, - 89, 58,113,117,165,226,108,245,138, 41, 38, 36, 73,116,172,224,163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227, -227, 67,106,139, 44,153, 76, 86,150,184, 83,227, 44,158,150,150,134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85, -206,233,115,221,118,213,219,183,111,119, 56, 58, 58, 94, 91,190,124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, - 33,211,136,174,125, 71,136,100, 52,147,151, 42,200,108,114,243,226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, - 84,228, 44,209,164,113,104,210,164,137, 72, 91,168,212,173, 91, 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219, -174, 47,167,218,255, 75, 84,211,254,212,136,182,138,105, 35,140,141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81, -135,101,156,234,244, 14,229,116, 90, 72, 72, 72,143,144,144,144, 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84, -127, 12,215,187,129,243,255,149,243,115, 70, 87,252,229,155, 5,148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220, -185,249, 98,177,216,106,212,168, 81,213, 46,147,145,145,113,240,240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202, -202,170,213, 86, 89,153, 27,173,185,117,126,161, 85,215,126, 27,230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, - 42,136,173, 95, 1, 12,170, 74,149,246,250,114, 32,142, 30,218,169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90, -154,114, 87,169,251, 49,207,224,163,245,207,128,205,102,251, 45, 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, - 62,125,138,177, 99,199,114,163,163,163,253,228,114,249,141,255,194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25, -177, 71,140,159,227, 92, 22,117,120, 98, 23,164, 18, 49, 0, 48,117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46, -231,106,166, 63,126,252,216, 85,147, 91, 75, 34,145,232, 28,117,248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153, -236,200,200, 72,103, 13,167, 84, 42,213, 41,234,144,195,225,176,163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, - 88,174,214,162,218,183,140, 32, 8,130, 54, 12, 27, 26, 96,192,103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97, -186,184,184,244, 26, 62,124,120, 57,145,229,239,239,175, 58,125,250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194, -123,111,144, 32, 73,242,105,231,182, 77, 65,146,228,211,165, 19, 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, - 75, 51, 0, 54,246,117, 16, 48,238, 91, 4,140,251,214, 10, 64, 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, - 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, 19, 88, 69, 69, 69, 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, - 4,241,159,246,163,147,203,229,202, 69, 43, 55, 29,102, 48,217, 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84, -226,123, 53,115,230,204, 74,167,127, 42,206, 37, 75,150, 84, 26, 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, - 14,117,191,125, 25, 96,128, 1,255, 49, 84, 26,186, 87, 43,161, 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114, -160,124,247,238,221, 74, 75, 75,203, 41, 34,145,232,143, 65,131, 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104, -133, 95,255,141,243, 10,138,165,193, 21,231, 85,180, 60,105,196,214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, - 85, 37,168,170,138, 86, 20, 22,138, 87,250,245,223, 56, 39,191, 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98, -202,218,214,171,194,194, 66,148,148,148, 64, 93,146, 6, 0, 80, 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230, -171,173, 85, 0, 48, 63,241,230, 14,237,115,251,153,246,188,106,172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, - 10, 68, 87,135, 76, 61,249, 50, 1,128,205, 98,100, 85, 85, 60,154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184, -178, 13, 48,224,243,125,255,255, 84, 43,238, 97,224, 52,112, 26, 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13, -156,255, 54,206,202, 48,249, 51, 17, 90,116, 37, 31, 0,181,180,104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192, -128, 15,199,123,197,164,181,103, 84,165, 74,245,137, 38,168,141,178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243, -255,142,179, 38,110,237,229, 39, 3,216,247,153,136,173, 79, 18,208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105, -224,172, 45, 12, 67,135, 6, 24, 96,128, 1, 6, 24, 96,128, 1,255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, - 59,131,144,114, 54,240,191,182,137,254,254,254, 12,125,218, 39, 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, - 43,130,107, 58, 17,109, 27,180, 26,109,204, 51,158, 46,147,201,234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27, -243, 7, 15, 30,240,125,124,124,210, 1, 20,105,189, 41, 24, 96,128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138, -142,129, 48,238, 80,185,118, 22, 30,227, 64, 18,205,180,166,136, 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108, -216, 48, 25, 64, 65,197,181, 87, 50,207,112,157, 27,240, 57,163, 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, - 12,104,140, 4,129,104, 36,134, 14,174, 21,143,219, 55,117, 64, 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69, -211,163,241,230,228, 19,189,249,234,251, 79, 67,213,229, 44, 86, 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, - 52,108, 61,104, 1,202,103,112,174, 45, 56, 0,124, 73,146,108,102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249, -181,228, 36, 1, 76, 48, 53, 49,233,227,106,198,105,245, 46, 71,152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150, -227,190, 57, 35,124,198, 6,205,234, 1, 75,191,141, 11, 74,128,234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214, -180,142,157, 41, 4, 57, 34,155,159, 14,134,108, 10, 9, 57,218,111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, - 48, 24,137,203,150, 45,251,117,197,138, 21, 52, 81,117,165,114,190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, - 40,159,101,188, 54,248, 44, 56,235,212,169,227, 68, 81,212, 68, 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, - 83,222,117,104,154,222, 75, 16,196,100,154,166,247,233,241, 61, 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, - 28,254,174,237,249, 39,215,245, 15,189,127, 79,186,114,231, 69, 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75, -249,118,158,170, 42,238,129, 4, 77,211, 88,185,114, 37,177,106,213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169, -111, 42,206,211,186,206, 13, 98,203,128,207, 21,250, 21,149,174, 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25, -221,159,160, 25, 60,140,152,180, 80,169, 55,151,235, 88, 46, 24,226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, - 22, 0,201,194,222,139, 73, 54,193, 65,203,118, 3,240,169, 69, 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, - 40,150, 80,232,245,245,152, 21, 0,126,210,243,174, 68, 90, 26, 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, - 61,123,182,137,167,167,167, 37,143,199,227, 72, 36, 18,135,132,132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89, -183,161,179,211,201,224,185, 19,218, 53,111,224, 10,150,172, 24,148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, - 71, 45, 74, 38,228,228,228, 16, 0, 96,107,107, 75,151, 23, 89,237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14, -235,122, 45, 70,125,243,205, 64,191,181, 63,204, 52, 77,203,149, 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118, -255, 26, 50,121,231,134,133,251, 85, 42,213, 23, 0,218,168, 84,170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79, -232,163, 12, 6,227,106,183,110,221,234, 79,156, 56,145,104,221,186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, - 42,213, 51, 0, 47,161, 46,123,162, 3, 88, 0, 26, 51, 24, 12,239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119, -236,216,209,187,127,255,254, 68,227,198,141, 17, 31, 31,223,250,210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, - 5, 2,129,248, 31,127,142, 19,196,100, 0, 78,106,157,188, 82,135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, - 67, 16,132,253,223,185, 61,122,174, 43,150, 32, 8,107,117, 91, 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88, -253, 34,165,179,214, 5, 80, 93, 34,104, 35, 0,232,213,169, 89, 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93, -185, 27, 99, 93,206, 10, 86,241, 45,118,229, 74, 98,197,138, 21, 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, - 41,170,108,222,138, 21, 43,182, 87,115,157, 27, 96,192,231, 2, 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27, -123,255, 89, 19,135, 26,121,122, 52,132, 4,166, 72,202, 81,225, 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40, -112,126, 19,223,118,158,120,158,166,192,227, 52, 21, 74, 18, 21, 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231, -165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, 90,146, 81,178, 87,171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187, -187,251,168, 85,171, 86, 89,102,100,100,152, 68, 70, 70,130,203,229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107, -214, 87,114,185, 60, 9, 64,142,142,156, 30,125,219,120,223,219, 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98, -138,250, 70, 70,184,244, 77, 67,107,255,176,196,211, 15, 51, 69, 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230, -237, 89, 44,150, 3,207,170, 30,149,206,108,147,155, 77, 52,120,155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87, -176,237,216,253, 95, 90, 33, 99,121,117,121,179,141,141, 77,167,204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198, -248,154, 97,238,151, 22, 8, 24, 49,204,228,212,111,161, 83, 0,236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, - 96,161, 76, 38, 35,217,108, 54,193,227,241, 70,173, 93,187, 86, 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, - 69, 13,110,220,184,209, 32, 36, 36, 68, 25, 17, 17, 17, 11,224,108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238, -221,155,187,116,233, 66,113,185,127,165,159,170, 13, 39, 0, 88, 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213, -171,119,165, 93,187,118,221,122,245,234,197,236,212,169, 19,156,156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, - 30, 30,190,251,202,149, 43, 59,158, 60,121,114, 35, 41, 41,169,215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194, -116,239,222,189,246,154,154,140, 10,133, 2, 42,149,170,236, 91,243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246, -145, 72,235,173, 89,243,161, 42,251,230,112, 56,182,154,132,189, 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174, -209,194,242, 13, 74,223,159, 69, 34, 81,178, 64,106, 25, 3,160, 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, - 61,100,200,144,138,101,175,188,213,223, 34,130, 32,110,146, 36,121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128, -157,214, 36, 25, 74, 71,133,160,126, 78, 18, 0,108, 42, 76,215,110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241, -168,150, 93,188,133, 42,252,180,152, 0, 16, 22, 22, 70,247,235,215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, - 59,130,228, 89,225, 85, 22, 16,241,142, 6,147, 84,128, 4,141, 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239, -188, 61, 61, 54, 30, 8,154,205,136,205, 98,226, 80,120, 9,228,146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, - 51,128, 88,161, 51,231,123, 7, 6, 80, 81,234,119, 64, 10,168, 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144, -139,226,116, 88,125, 85,156, 94,141, 26, 53, 26,241,195, 15, 63, 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, - 36,115, 62,159,159, 55,109,218,180, 70, 78, 78, 78,230,131, 6, 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251, -150, 17, 7,119,108, 53,201, 61, 21, 12, 89,194, 83, 92, 20,136,112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, - 59, 57,153,246, 61,147,176, 81, 65, 81, 1,213,113,222,187,119,143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, - 75,102,104, 68,174,197,194,221, 17, 78, 37, 82, 57, 99, 68,183,122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, - 81, 81, 85,115, 42,228,242,250,206,246,230,136, 78, 18,227,208,237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53, -133, 82,174,104, 60,100,200,144,195,234,183,246, 71, 0,190, 30, 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242, -234, 41, 86, 86, 86,232,218,181, 43, 60, 60, 60,152, 93,186,116,241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51, -178,177,177,177, 50, 51, 51,203,173,236, 65,165, 15, 39, 0, 88, 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, - 70,140, 24,241,214,220,220,188,156,245,215,196,196, 4,141, 26, 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, - 72, 72, 8, 8,130, 40,123,104,191,103, 44,118,117,133,163,163, 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71, -122,224, 90, 37, 22,173,149, 21,142, 83,149,195,111,149,181,215,225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143, -199, 43,179, 66, 85,178,174,247, 56, 73,146,196,210,165, 75, 65, 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51, -133, 32, 8,146,205,102, 47,100, 50,153, 19,165, 82,169, 51,143,199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, - 33,178, 42,229, 52, 49, 49,113,125,245,234,149,123, 85, 29,145, 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205, -205,173, 49, 0, 77,137,182,219, 52, 77,119,209,250,175,141,219, 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255, -167,206, 79, 3,231,191,143,179, 6, 45, 98, 71, 16, 68,152,113, 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243, -127,209,162, 69, 75,214,175, 95,255,130, 32,136, 48,237,233,218,237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195, -134, 13,235, 52,109,255, 14,145,168,143, 69,203, 60, 91, 98,130,240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, - 4, 20, 21, 22,220, 65,226,233, 68,221, 44, 89,254,157, 90,180,240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185, -137, 71, 55,127,207, 80, 41, 85,191,131,160, 31, 3,100, 36,222, 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57, -177,245,201,208,188, 73,147, 38,195,150, 45, 91,102, 27, 21, 21,197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, - 39, 39, 55,217,190,125, 59, 39, 40, 40,200,203,203,203,139,127,242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, - 57,188,216,147,187,192,137,141,196,210,167, 57,170, 63, 5, 37, 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122, -102,108, 52,180,228,248,197,229, 73,170,181,100, 25, 27, 27,111, 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, - 35,156, 46,175,239, 68,116,106,102,131,172, 2, 41,102,239,138,198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, - 21, 58,216,152,242, 48,186,179, 41,186,175, 77,135,127, 27, 46,184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90, -100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, 74, 10,223,199,199, 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109, -219,104, 47, 47,175, 98, 43, 43, 43,136,197, 98, 72,165, 82,176,217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210, -235, 64, 21, 23, 23,195,204,204, 12, 20, 69,125, 48,167, 74,165, 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115, -231,230, 54,109,218,244,241,176, 97,195, 94,219,219,219, 75,159, 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, - 38,147,129,201,100, 66, 44, 22,131,203,229,130,201,100, 66,169, 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108, -200,100,178, 79,241, 6,250,158,133,170,186,225,183,218, 88,180,180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70, -150,150,150, 11, 1, 8,106, 90, 23, 65, 16, 96, 48, 24, 96,179,217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, - 36, 36,224,248,241,227,120,244,232, 17, 88, 44, 86, 89,123,157,199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, - 7, 94,189,122,245, 16, 27, 27, 91,119,195,134, 13, 11,175, 93,187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75, -135, 11,251, 74,165, 82,196,198,198,234,179,204,123,104,216,176, 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, - 46,161,212, 47, 81, 27, 34,154,166,191, 36, 8,162, 16,192, 51,146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197, -255, 4, 65,132,173, 95,191,190, 95,101,226,170,146,107,179,220,244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239, -167,182,114,253, 37,180,194,194,194,170, 87, 32, 20, 6,133,157, 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, - 3, 64,255,162, 83, 87,248,253,140, 72, 6,243,151, 61,235,102,146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33, -128,158,139,196,208,194, 15, 62, 18,245, 6,121,217,219,216, 90, 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, - 71, 68, 68,216, 74, 36, 18,222,157, 59,119, 74, 66, 66, 66, 50,228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9, -131,201,100,114,228,114,121,117,190, 11,173,230, 79, 28,115,103,227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55, -179,196, 95, 3,208, 40,250,235, 81, 57,226, 52, 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116, -196,200,145, 35,249, 26,145, 5, 0, 57, 69, 10,102,137, 84,193,232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110, -118,198,183,235,155, 20,232,180, 71,179,179, 4,123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192, -220,152,133,181, 59,246, 43,162, 30,220,126,202,231,243,195, 0,124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149, -170, 50,167,238,229, 0, 28, 14, 31, 62, 76, 42, 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195, -159,127,254,137,248,248,120, 80, 20,133, 22, 45, 90,232,117,176,114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, - 43,107, 27,209,157,240,219,155,106,195, 73, 81, 20, 1, 0,158,158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89, -179,230,157,171,171,235, 81,177, 88, 92,206,114,160,171,208,210,136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, - 38,138,138, 74,131, 54, 45, 45, 45, 63,137,208,170,194, 66,245,209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234, -184, 45, 80, 42,149, 96,179,217,240,241,241, 65,112,112, 48, 30, 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, - 36, 94,188,120,161,111, 23,169,136,136,136,133, 95,127,253,181,231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130, -131,131,185,147, 39, 79,110,120,227,198,141,229, 40, 13,126,169, 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, - 90, 92,190,124,217,190, 76,128, 85,140, 72,124, 31, 5,203,151, 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191, -208,208, 80, 2, 0,252,253,253,105,130, 32, 52, 15,164,103,167, 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74, -139, 76,214, 92,147, 85, 9, 40,125,132,154,182,197, 75,131,197,139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35, -182,202, 30,166, 85, 14, 25,150,217,190, 72,190,163,189,141,245,162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62, -127, 84, 2, 30, 17,170, 83,119,184,156,160, 53, 63,204,105, 16,157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, - 53,254,227,136,172,161,222,142, 14,246,183,142,237, 93, 77, 62,122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179, -179, 11,184,127,255,190, 29,151,203,229,189,122,245,138, 58,117,234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148, -166,166,166, 16,137, 68,114,185, 92, 46,169, 70,100, 57,251,181,106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, - 69,145, 5, 0, 29,187,185,215,169, 67,240,204, 64, 3, 72, 42,148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186, -120,182,102, 44,165, 49,151,165,186, 27,147, 67, 69,222, 56,133,240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, - 99,246,252,126, 46,236,234,119,203,130,138, 75, 68, 69,112,115, 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119, -106,135, 83,167, 78,109, 64,169, 51, 56, 0,188, 60,117,234,212,152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106, -179,102,205,132, 30, 30, 30,194,220,220, 92,196,196,196, 32, 63, 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, - 23, 72,200,207,207, 51,165,105, 26,249,121,185, 38, 63,252,240,131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, - 26,187,164,164,196,242,221,187,119,230,218,243,116,229,148,201,100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195, -235,215,175,203, 68,150,122,253,159,204,162,165,249,205,227,241, 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, - 46, 90,253, 91, 95,113, 88,227,246,232,120,220,193,102,179, 49, 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, - 40, 41, 41, 65,207,158, 61,193,225,112,244,181,104,209,108, 54,123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67, -165, 82, 97,238,220,185, 70, 92, 46,119,164,190,166,123,129, 64,208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, - 69,104,104, 40,225,239,239, 79,251,251,251,211, 26,193,101,128, 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, - 80, 7,136,212, 2, 26,145,213, 85, 75,120, 17, 26, 11,151,110, 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, - 2,169, 41, 73,200, 22, 36,163, 77, 7, 63,196, 62,143, 6,165, 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222, -181,131, 23,130,194,138,241, 42,242, 50, 10,178, 5, 59,145,116,234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149, -229,165, 24, 18, 41, 41, 73, 56,251,235, 86, 90, 33,151, 22,160,124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, - 60,178,132,167,231, 32, 69, 6,128,240,173, 91,183,118,111,223,190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154, -185,187,187,247, 13, 14, 14,118, 72, 73, 73,193,181,107,215, 50, 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, - 53,104,130,237, 75,190, 83,134, 62,138, 25, 0,224,146, 86, 27,143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38, -222, 10,165,127, 86, 69,152,147,147, 67,148,148,148,184, 90, 90, 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, - 73, 34, 87,129,203, 34,233,217, 3, 93,211, 31,158, 13,181,201,145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, - 14, 11,187, 48, 93, 46,149,120, 53,105,210,152,126, 28,113,227,233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24, -229, 4,186,182,133, 72, 95, 75,145, 62,208,149,179,162,208,210, 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50, -193,248,119,108,191, 62, 22, 42,237, 33, 67,141, 63,157, 68, 34,177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, - 79,255, 72,146, 4, 69, 81, 96,179,217,104,209,162, 5,194,194,194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, - 54, 54,101, 66,139, 36,117,142,210,161,165, 82,105,221,186,117,235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79, -136, 68,162, 58,248,148,182,123, 3, 12,248,123,239, 43, 97,218, 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, - 84,102,225,250, 64,193, 85,206,186,197,212, 86,144,149, 42, 73,181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, - 81,164,144,203,242, 41, 74,225,250, 54, 62, 26, 32,241,139, 78, 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, - 31, 95, 78,130,152,179,248,163,137, 44, 7,219, 27,135,119,173,180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, - 32, 49,244,241,135, 80,143,100,179, 7,178, 93,222,245,155,232,155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250, -200, 48,109,100,103,103,159,221,186,117, 43,241,227,143, 63,118,149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111, -159,117, 74, 74, 10,235,206,157, 59,162, 27, 55,110,208, 0,206,215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, - 13, 0,240,135,214,108,207,126,173,155,221, 61,184,126,185,153,226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, - 80, 64, 40, 20, 66, 81,156,171,108,195, 23, 9, 3,135,216, 75, 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, - 54, 54,214,107, 95,238, 90, 63, 63, 4, 64,200,144, 33, 67, 14, 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8, -195,170,176, 10,192,220,142, 29, 59, 18, 62, 62, 62, 15,182,109,219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178, -138,253, 75,212,150, 83,219,162, 85,147,208,250,148, 22,173,202, 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253, -211,248,201,177,217,108, 68, 71, 71,195,197,197, 5,114,185, 28,102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177, -160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, 99, 59, 59, 59,168, 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197, -231,243, 47,171,163, 14,203,193,209,209,209,226, 99,236, 87,109, 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, - 43, 88,162,100, 90,255,179, 81,154,195,173,159,250, 55, 42,249, 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38, -104, 82, 60,148,139,112, 97,214,100,201,178,183,182,186,113, 96,123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, - 23,160,104, 65,196,181,211,161, 32, 80,130,183,161,183,116,187, 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, - 33,100,133,148,124,240,209,113, 27,212,194,222,218,246,198,161,224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81, -210, 29,137,167, 35,107, 75, 59, 1,176, 98,152,240,118, 15,246,107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243, -101, 84,201,239,225, 60,225, 73,170,152,154,158,118, 95, 55, 7,186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52, -116,247,238,221,118,169,169,169,188,168,168, 40,241,222,189,123,179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124, -190,156,230,243,199, 7, 68, 4,140,155,200, 75,188, 22, 2,171,196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182, -182,182,116, 78, 78, 78,114, 65, 65, 65, 99, 19, 19, 19,228,230,230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, - 40,243,192, 98,177,144,149,162,128, 74,165,202,208,213,154, 5,192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, - 78,115, 62, 52, 30, 50,100,200, 97,173,168, 67,109,103,120, 77,122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212, -202,196, 10,151,203,213,219, 81,186,170, 40,198,218,112, 86,101,209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, - 12, 6, 40,138,130, 14, 65, 21,127,171,104,209,142, 14,172,141,200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, - 11, 54,155,141,115,231,206, 97,220,184,113, 80,169, 84, 48, 54, 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232, -163, 95, 21, 10,197,145,245,235,215, 47,217,179,103,143, 17, 77,211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36, -180, 52, 25,223, 41, 58,198,196, 68, 89,109,212, 97,101,203, 84,225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21, -218,149, 75,253, 96, 72,239, 96,128, 14,247,147, 71,255,226,238,105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242, -198,254,237,129,230, 71, 31, 17, 72,124,251, 22, 55,127,219, 81, 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, - 58,191, 61, 17, 68, 43, 39,123, 75,228,137, 40, 20,230,188, 3,104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, - 72, 36, 38, 38,226,234,201, 29, 66,165, 82,242,197,135,136,172,145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, - 54,239,226,112,126,236, 80,172, 62,254, 13,204,236, 24,104,215,215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212, -218, 34,171, 85,253,250,245,135,222,191,127,223,214,219,219,155, 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, - 78,109,145,213,106,209,228,177, 17, 27,247, 31,230,145,108, 14,130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, - 82, 72,165,210,107,193,193,193, 82,146, 36,145,151,151,135,156,156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245, -235,178,194,194,194,251,186,118,240,222,189,123,245,211,210,210, 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, - 4,130,174, 0, 30,105,166,167,166,166,214,123,240,224, 1,191, 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, - 7, 40,149, 74,156, 56,113, 2, 0,242,170,227, 96,179, 57, 2,146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15, -167, 26,169, 95,126,249,165, 36, 50, 50,178, 82,139, 86,109, 56,105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, - 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, 48,101,202, 20,208, 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133, -208,123,126, 90,186,250, 64,105,134, 6,105,154,134, 70,112, 85,152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177, -180, 59,244,222, 10,223,251,244,120, 40,148, 9,173,216,216, 88, 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, - 7, 17, 19, 19, 3, 14,135, 3,205,190,208, 85,191,249,248,248,108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24, -209,209,209,232,221,187,183,228,238,221,187, 9, 98,177,120, 21,116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170, -244, 83,213, 50, 21,145,144,144,224,170, 82,169, 26,211, 52,237, 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, - 52,237,171, 82,169, 26, 37, 36, 36,184, 26,228,132, 1,159, 41,110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118, -172, 52, 63,242,144, 68, 74,114, 2, 30, 95,220, 45, 84, 81,138, 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26, -206, 92,152,147, 2,208,140,218, 8,173,114,156,160,200,224,131, 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149, -210,238,120, 27, 26, 85, 27,206,145,108,246, 50, 22,131, 88,218,171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196, -102,231, 37,228, 75, 39,222, 37,228, 72,126, 35, 61,208,119,146,181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18, -201,105, 57,189, 94,112,183,172, 44, 69,249,126,190, 15, 71, 51, 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246, -238,221,155, 43, 22,139, 47, 2,136,208,105,219,223,135,115, 91,119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224, -171,206, 68, 60, 31,140,170, 19, 96,150,227,228,114,185,199,142, 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138, -139,139,203,156,171,237,236,236, 16, 27, 27, 75, 37, 38, 38,166,115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135, -209,226, 81, 33,186, 80,171,105, 99,129, 64,208,150,207,231,223, 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196, -163,232,232,232,226, 62,125,250,192,200,200, 8, 34,145, 8,117,235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, - 86, 37,226,181, 92, 63, 37, 18,113, 93, 0,164,184,164,164,197,152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173, -173,245,226, 4,128,188,188,188,166,127,252,241,199,156,232,232,232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82, -169,200,218,114,230,231,231, 91, 68, 69, 69,109,234,220,185,243,140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, - 25, 25,161,176,176, 16,171, 86,173,194,157, 59,119,148, 52, 77,239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85, -165,100,168,162,253,223,222,207, 10, 62, 93, 80,167,112, 88, 88, 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246, -238,221,251, 94, 30, 45, 77,250,135, 42,184, 43,219,118,250,230,205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, - 68, 34,103, 19, 19,147,116,133, 66,241,139, 88, 44, 94,139, 82,127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128, -101,181,156, 21,210, 59,148, 75,225, 80, 97,153,114,169, 31, 42, 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, - 44,125, 15,173, 38,179, 88, 98,133,119,120, 2,241, 33, 34,235,125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204, -151, 72, 58,145,245, 65,155,165,238,231,237, 4, 2, 73,137,111,240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75, -161,108,194,194, 26, 79,231,140, 67,122,129, 8,151,222,230,159,164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50, -118,251, 14,178, 24,106, 91,135,133, 45,243,127, 1,111,145, 13,187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239, -225,235,235,203, 29, 50,100, 72,101, 14,242,250, 34,245,209,171, 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44, -226,121,197, 40,196,106,225,225,225,161,186,119,239,222,188, 41, 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5, -151,203,197,155, 55,111, 16, 30, 30, 46,123,251,246,109,122, 73, 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213, -235, 32,212,195,133,109,160,142, 46,212, 52, 82, 39, 45,109, 3,192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76, -154,166, 51, 66, 66, 66, 58,156, 61,123,182,195,220,185,115,217,125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, - 11, 87, 93, 75,229, 80, 0,162,148, 74,229,243,160,160,160, 14, 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37, -128, 77,153,153,153, 63,133,132,132, 44,191,118,237,218,248, 49, 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, - 80, 40,156, 99,107,107,187,244,226,197,139,191, 92,185,114,229,235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, - 74,165, 82,157,101,177, 88, 99,114,114,114, 68,159,226,174,163, 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, - 74,160,217, 14, 63, 63,191, 50, 43,163,198, 10,167,221,134, 32, 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, - 89,225, 25,248, 43,115,188,174,140,205, 4, 82,203, 24, 72, 17, 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117, -197,138, 21, 91, 43,166,112,208,110, 84, 49,245,195,202,149, 43, 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, - 75,182,175, 91,176, 66,169,144, 9,105,200,253,241,230,116,244,135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46, -252,224,222,255, 77,253, 36, 44,172, 81,180,106, 26,126,123,145, 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, - 55, 36,249, 39,172,156, 88,103,230,124, 97, 67, 92,200, 27,173,247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146, -146,146,138, 14,242,181,197,130,254, 51, 23, 49,218, 53,114,157,249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197, -197, 5, 92,185,114,101,196,237,219,183,123,136, 68, 34, 87,130, 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, - 0,192,138, 21, 43,232,149, 43, 87, 18,113,113,113, 52,131,193,248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, - 48, 80,151, 7,226,237,226,226,226,200, 85,171, 86,117, 89,181,106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217, -108, 78, 58, 65, 16,206,108, 14, 87,116,239,222,189,107, 31,200, 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19, -147,182, 49, 49, 49,127,126, 8,167, 90, 68, 13,182,182,182,118, 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, - 34, 20, 10, 63,105, 81,105,117,129,232,149,122,212, 58,212,137,247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, - 69,225, 85,209,122,165,249,175, 78,229,162,203, 62,213, 39,138,178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, - 6, 32,174,233, 58, 39, 73,242, 44,128,151, 36, 73,190,174, 24,232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, - 59, 91, 32, 9, 4,214,214,147,246, 31, 52, 87,126,156,126, 6,176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, - 65,199,142, 88, 75, 19,152,171,222,153,235, 50,238, 98, 77, 45,182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78, -127,127,127, 70, 21, 15,243,114, 69,165,171, 66,104,104, 89, 22,255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128, -242, 78,255,149, 77,167,245,220,118, 6, 0,213, 71,222,159,159, 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, - 87,114, 90, 54,117, 1,129, 73,208,206, 29, 84,173, 69, 75, 75,160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33, -193,181, 97,195,134,201, 0, 10, 42,244,163,178,121,180,225, 24,253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211, -192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,103,109,133,214,103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, - 32,170, 81,165,250,152, 4,107,163,108,175, 25, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249, -207,117,232,240, 31,235,183,193,172,106,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, - 0, 3, 12, 48,192,128,207, 6, 61,220,193,103,170, 64,254,241, 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, - 15,224, 43,173,255, 23,160,142,140, 55, 8,173,207, 23,141, 0, 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, - 80,132,210, 58,129,175,245, 89, 25, 73,146,235,187,116,233, 50,253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, - 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, 51,215, 43,149,202, 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, - 36,100,102,102,174, 81, 42,149, 55, 63,128,211,204,193,193,161, 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, - 91,201, 63, 48,150, 93, 40, 82,178, 0,192,220,132,169, 8, 13,108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201, -229,208,219, 13,107,105, 37,190, 87, 1, 68,175,250,216,113, 57, 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, - 75, 57,122,185, 97,211,229, 55,168, 54,210, 94, 23, 78, 13,246, 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, - 21,150, 13, 29, 86, 43,180,134,185,131,175, 98,130, 25, 26, 11, 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192, -206,125, 46,156,255, 54, 44,167,105, 58,160,220,201, 90, 73, 30,162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130, -145,145,145, 18,192, 88, 61,214,101, 63,108,216,176, 69, 7, 14, 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, - 86, 86,254,150,150,150,193,251,247,239,183,107,223,190, 3,193,225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102, -101,101, 77,212,119,227,173,173,173, 71, 90, 90, 90,110,217,187,119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153, -211,226,221,187,119,199, 51, 51, 51,103,232,203,105, 99, 99,227,110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67, -116,116,180,233,212,169, 83, 29,211,210,210, 98, 51, 51, 51,111,233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93, -208,126, 75,196,249,103, 55,206,247,175,105,154,127, 96,236,239, 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252, -188,140, 4,128, 94,227, 87,207, 26,233,132,205, 71,210,171,174, 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, - 0,114, 14,147, 57,171,157,143,143,237,183,119,239, 38,200,129, 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89, -106, 49, 33,250, 52,196,241,171,137,140,240, 47,190,248,162,225,132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, - 93,184,112, 33, 65,165, 82, 69, 2,120, 1,221,179, 90,179, 0,120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, - 37, 58,125, 47,225,233,245,235,215,207, 49,153, 76,141, 69,171,157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, - 65,146, 36, 11, 64,125,188, 95, 82,163, 42, 56, 27, 27, 27,239,142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, - 3,135, 66,172,231,205,158, 49,248,230,205,155,225, 69, 69, 69,191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, - 12,138,162, 80, 84, 84, 4, 71, 71, 71,236,223,191,223,114,222,188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11, -139,110,207,159, 63, 55,210, 20,148,150,201,100,112,118,118,198,209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222, -234, 74, 88, 40, 82,178,148,114,105,208,225, 93,129, 46, 0, 48,102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, - 66,203,128,127, 26,173,109,109,109, 67,115,114,114,110, 1,152,136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, - 6, 35, 67, 36, 18, 61, 5,240,170,182,132, 54,110,126,253,193, 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251, -234,230,249, 15,226,228, 24,141, 7,232, 22, 36, 64, 17, 36,249,148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216, -205, 81,247,194,152, 31,131,111,120, 3,240, 73, 10,228,209, 36,221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220, -216,177,141,110,221,185, 67,116,213,167, 90,193,231,137, 42, 29,223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, - 6, 49, 98,246,250,128,131,187, 54,145, 61,251, 15, 41, 27, 62,241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108, -116,244,232, 81,101, 68, 68,196, 83, 0, 39,170, 90, 89,111, 55,136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, - 46, 23, 31,194, 9, 0, 61, 27,146,111, 89,214, 13,158,142,152,185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106, -109,229,226,226,210, 73,169, 84,242, 0,128,201,100, 74, 82, 82, 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, - 21, 3, 6, 12, 88,250,237,183,223,162,110,221,186,152, 53,107, 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123, -123,251,229,187,119,239,182,102,114, 76,208,106, 97, 34, 4, 5, 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126, -188, 70, 31,161,101,111,111,191,106,255,254,253,214,198,198,198,160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12, -243,216,216,216,141,250, 8, 45, 7, 7,135, 78, 59,119,238, 52,226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, - 37,180, 76, 38,147,207,156, 57,147,251,226,197, 11, 63,129, 64,240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, - 54,175, 95,191,126,162, 84, 42, 79, 3, 56,253, 17, 94,166,186, 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, - 56,156,190,119,239,158,203,238,221,187,199,110,222,188,249, 34,128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, - 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38,154,159, 60,121,210, 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96, -154, 31,239,208,177, 83,231,161,131,191, 49,115,176,177,128, 88,166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, - 11,135,231,190,186, 87,172, 47,103,183,110,221, 59,247,232,222,221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239, -203,100, 26,221,166, 8,197,168,172,231, 87, 75, 62,229,177,153, 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, - 77,131,164,177,163,162, 53,107, 22,192,220, 81, 90,246, 75, 47, 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, - 65,130,232, 93,195, 48,165, 6,189, 0,174,165,181,181,207,212,201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128, -125,155, 68,189,179, 41,181, 23,219,255, 82,107, 86,165, 67,135, 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134, -245,235,215, 51, 1,180,174, 48,187,124,145, 85,128, 27,182,103, 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, - 64, 83,245, 59,214,165,191,124,244,235,146,177,215,142,110,241, 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, - 82,221, 56, 63, 28,255, 40,167,163,163, 99, 19, 95, 95,223,214,215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110, -217,161, 67,135,214,142,142,142, 77,202,118, 21, 77,235,211,207,213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86, -232,214,173, 27, 46, 94,188,200,220,188,121,243, 58, 0, 75,107,234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88, -223, 4,209,155, 60, 80, 36,161,145, 39, 44,132, 88, 44,129,177,177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202, -196, 85, 81, 81,233,167,184, 88, 4,153, 76, 14, 46,151,107, 6,128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, - 55,188,130,130, 2, 66, 40, 20, 66, 38,147,129,197, 98,177, 81,179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, - 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, 84,233, 50,205,220,132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36, -121, 24,128,227, 7,114,182, 5,176,206,200,200,232,154,135,135, 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241, -245,117,235,214,157,122,242,228,201,208, 63,255,252,179,254,179,103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189, -175,205,250,245,235, 31,124,240,224, 65,219,142, 29, 59, 30, 0,192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, - 86,173, 90,185,240,120, 60,244,232,209, 3, 0,252, 62,132,147,205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215, -175, 95,199,195,135, 15,161, 84, 42, 49,109,218, 52,238,152, 49, 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, - 51,127,214, 36,179,167,239,228, 56,116,237, 29,126,143, 16, 32,171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, - 95,206, 69, 11, 23,246,153, 60, 62,192, 44, 70, 64,225,220,253, 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, - 21, 19,172, 95, 62,245, 49,218, 15,180,159, 61,123,182,221,130, 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96, -105,109, 98,242, 77,124,215,174,147,140, 74,235,197, 86,203, 89,142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, - 97, 69,198,149,159,151,145, 52,129, 89, 35,157,202,221, 7, 42,237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23, -164, 34, 81, 57,159,217,238, 46,232,115,205,152,153,218,192,195, 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44, -140,238,215,175, 31, 1, 0,161,177,200, 31,220, 20, 27,135,125,187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108, -108, 80, 82, 82, 2,169, 84, 10, 54,155, 13,137, 68,130,119,239,222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, - 53,133,169,169,233, 71,225, 92, 60,182, 7,247, 77, 74, 54,247,242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205, -122,110,110,231, 36,121,246,236, 25,238,221,187,135,252,252,124,248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, - 54,116,190,124,237,182, 85,177,132, 50, 79,202, 84,176, 40,138,130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, - 22,128,135,106,113, 91, 83, 77, 69, 30,128, 38,254,254,254,139,166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220, -142, 29, 59,218,236,223,191,223,104,222,188,121,184,117,235,214,138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155, -205,134, 82, 45, 27,228, 42,170, 76,223, 23, 22, 22,130, 22,231,131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, - 76,100,189,203, 44,196,187,172, 18, 20, 22,203, 32, 22, 43, 33, 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, - 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, 60, 30,148, 74, 37,138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, - 83, 0,230, 0,242,116, 33, 84, 59,185,255,174, 30, 6,196,163, 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41, -195,198,185,197,157,150, 67,127,241, 40,155,246,105,253,179,184,118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, - 24, 50,100,136,143, 64, 32,104, 9,253,107, 50, 26,147, 36,185,113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66, -169, 84, 58, 39, 36, 36,116, 59,121,242,228,194,131, 7, 15,238, 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, - 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62,164,218,182,109, 75,142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246, -173,165,101,203,181, 67,135, 14, 46, 12, 6, 3, 29, 59,118,100,223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249, -249,249,181,188,118,237, 90, 84, 70, 70,134,159, 30,219, 11, 0, 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165, -125, 15, 32, 84,199, 69,218,183,110,221, 26,201,201,201,104,210,164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136, -213,163,191,238,221,187,119,119,241,243,243, 35, 66, 67, 67,203,252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200, -200,200, 58,143, 30, 61,114,135, 14,195,136, 54,110,126,253, 59,118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, - 18, 76,130, 2,165,224,130,203,102,192,221,179, 13, 35,254,197, 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211, -183,105, 19,119,114,251,239,111, 80,144, 22,171, 74,139,187,157, 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172, -244,196, 23,221, 36,146, 46, 61,242, 19,110, 95,251, 20, 23,228, 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201, -208,243,207, 75, 20,184, 15, 0,183, 0,162, 47,208,220,187, 93,187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, - 69, 69,161,138,161,223,149, 0,195,214,209,177,199,212,169, 83, 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110, -238,236,209, 15,162,120,189,134, 41,251, 3, 28, 7, 71,199,166, 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21, -235, 28, 3, 59,155,185, 57,142, 91, 48,113, 0,225,194,183,197,212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159, -177,200,154, 92,169,208,170,136,223, 98,177,220,140,141,250, 39, 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231, -195,194,194, 2, 49, 49, 49,184,126,253, 58, 94,190,124, 9,138,162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202, -202,234,163,113,186,185,216,225, 91, 23, 59,118,102,110, 33,251,218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, - 38,147,225, 63,130,178,232, 66, 23, 23,151, 78,135, 14, 29, 98, 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, - 20, 25,212,248,187,213,171, 87,139,198,143, 31,239,145,146,146,178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246, -108, 0,192,152, 49, 99, 10,239,223,191,239, 14, 32,235,250,245,235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, - 74,101, 12,147,201,164,195,194,194, 86, 1, 8,124,239,137, 72,146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, - 75,111,112,198, 20, 82,147,222, 32,238,217, 67, 56, 58, 58, 90,240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187, -134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, 92, 92,140,212,236, 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, - 51, 34,101, 15,179,178,178,228, 50,153,108,153, 80, 40, 60, 84, 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72, -232,188,188, 60, 66, 36, 18,161,168,168,136,184,112,225,194,215, 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156, -150,150, 54, 73,151,161, 73,181, 96, 82, 49,153,204,205,147, 39, 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120, -122,122, 94,110,222,188,153, 83,200, 38,239, 29, 0,126,252, 23,156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202, -149, 43,177,124,249,242, 70, 83,167, 78,157, 12, 96,171, 30, 60, 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, - 17,199,142, 29,195,219,183,111,149,245,235,215,103,250,248,248, 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79, -111,165,163,248, 24,191, 98,197,138,129,157, 59,119,198,216,177, 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, - 86,232,145, 35, 71,140,214,173, 91,215, 99,222,188,121, 83, 1, 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, - 20,212,251, 3,133, 22,199,198,198,230,194,225,195,135, 91, 54,110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, - 1,232,116, 67,170, 83,167,206,198,179,103,207, 54,172,106,100,161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66, -235,232,209,163,248,254,251,239,209,162, 69,139,230,237,219,183,223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212, -114,141,224,241,120,205,135, 15, 31,206,121,240,224, 1, 0,192,211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, - 10, 7, 7, 7, 12, 26, 52,136,151,148,148,212, 60, 39, 39,167, 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, - 18,109, 26,154,195,199,195, 30,241,169,133,136,140, 77,133, 74,198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80, -179,191, 22,215,120,220,160,129, 95,153,158,139, 72, 71, 65,122, 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, - 71, 27,163,158,238,173,219, 48,252,122, 14,176, 58,125, 44, 99, 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, - 1,190, 52,203,202,249,161,153, 66,177, 83, 51,175, 55,208,107,225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240, -105, 84, 84,252,100,128,154, 82, 5,223, 78,192,117,232,192,129, 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116, -159, 51,127,126,167, 25, 51,102, 24,237, 89, 53,253,113,239, 9,107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, - 64,152,153,155, 99,246,236,217, 32,228,242,203,101, 2,138,137, 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215, -201,217,207,110, 8,240,230,115, 85, 85, 21, 80,165,143, 86,181, 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, - 70, 69,185,185,185,120,254,252, 57,242,243,243, 17, 28, 28,140,184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56, -216,152, 99, 84,223,118, 76,169, 68,196,203,206,206, 46, 55,124,244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97, -137,194, 52,227,104, 23, 34,227,104, 23, 66, 88,162, 48,149,201,100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57, -255,204,153, 51,172,181,107,215,194,203,203, 11,114,185, 28,247,239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94, -191,126, 61, 78,159, 62, 77,244,232,209, 99, 97,101,231,147, 64, 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168, -108,252, 60,240, 45, 70,216,156, 66, 94,230, 59,236,219,183, 15, 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125, -181,163, 78,157, 58, 97,213,117, 50, 61, 61,125,237,140, 25, 51, 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, - 83, 60,219,210, 20, 18,202, 8,187,118,238, 38,159, 61,123,102,251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, - 75, 75,123,240,237,183,223, 74, 10, 11, 11, 33,147,201,228, 42,149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226, -197,139,172,171, 87,175, 49,111,222,188,197,190,126,253,186, 69,183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, - 9, 9, 25,183,107,215, 46, 7, 31, 31,159,102, 21,134,162,248, 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0, -148, 79, 10, 91, 91,219,153, 3, 7, 14,196,174, 93,187,112,254,252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161, -251,176, 23, 0,252,184,117,235, 86, 15, 15, 15, 15,140, 25, 51, 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, - 47,191,212,155, 58,117,234,236,128,128, 0, 73,131, 6, 13, 16, 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24, -129, 77,155, 54,225,230,205,155,131, 81,250, 64,149, 1,184,116,247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, - 54,150,167,166, 77,155, 46,235,211,167, 15,194,195,195,209,170, 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244, -196,161, 67,135,124,235,213,171,135, 53,107,214,192,205,205, 13, 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76, -141,141,141,177,112,225, 66,122,240,224,193,121, 53,125,230,205,155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58, -122,121,121,225,254,253,251,184,122,245, 42,150, 46, 93,138,185,115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219, -219,217,217,161,176,176,180, 46,188,151,151, 23,158, 60,121,130,236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, - 49, 40,138,178,215,141,146,246,178,181,182, 64, 86,190, 20, 76, 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200, -200,202, 70, 29, 27, 30, 92, 92,234,130,166, 41, 47,157, 20, 48,131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, - 74, 65,226,221,148,130,196,187, 41,114,169,100,202,227, 59, 87,115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144, -186,112, 49, 49, 98,142,185,250,243, 50, 34,108,255, 98, 66,154,251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191, -251,238, 59, 94,102,102, 38, 21, 48,108, 88,222,218,192,192,107,127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, - 34,202, 0, 82, 1,192, 1,112, 25,240,205, 55, 93,150, 44, 90,100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161, -190, 46,254, 89, 42,192, 91,195,123,249,242,101, 90, 12, 60, 6, 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199, -236,181, 63, 99,207,201, 91,151, 45, 20,244, 23,255,161, 71,241,228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, - 1,243,119,112, 86,134,255,162,208,210, 64,161, 40, 29, 37,145, 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, - 31,158, 53,107, 22,182,108,217,130, 87,175, 94,129,205,102,195,203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136, -143,143,199,230,205,155, 49,126,252,120,250,222,189,123, 7, 81,121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, - 10,113, 62,178,210,222, 64, 42, 42,192,154,245, 27, 81,162, 96, 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54, -109,218,135,193, 96,244,171,166,159,247, 51, 51, 51,247, 79,155, 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213, -216,216, 24,219,182,109,179,112,119,119, 31,200,100, 50,187, 85,195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, - 16,231,206,157,235, 95,175, 94, 61,171, 13, 63,110, 33, 68,114, 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, - 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71,142, 28, 25, 61,108,216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144, -248,109,219,182,157, 60,113,226, 68,209,252,249,243,173,131,130,130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83, -167,158, 1,216,122,230,204,153, 71, 82,169, 20,195,135, 15,175,175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, - 57,242,107,215,174,181, 6,176, 5,165, 67,185, 52,128,100, 0, 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216, -177,227, 1,248,214,192,219,113,196,136, 17, 30, 20, 69,225,248,241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134, -145, 35, 71, 54, 0,160,207,141,156,205,229,114, 79,173, 94,189,218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208, -200,194,194,226,162,214, 53,160, 51,184, 92,238,190,159,126,250,105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211, -167,203, 90,183,110,141, 93,187,118, 13,228,112, 56,122,149,232, 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120, -190,177,169,169,105,132,167,167,103,161,151,151, 87, 27,165, 82,137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, - 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, 11, 45, 6,131, 1,185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6, -108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35,144, 36,169, 83, 52, 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, - 87, 80,224,177, 25, 96, 49, 9,128,166, 96,105,194, 2,143,195, 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, - 84,170,140,202, 30,142, 76,149,145,145, 17,135,176, 53,231,130,199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135, -110,218,188,153, 83, 88, 92,140,193,131, 7,231, 37, 61,122, 20, 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, - 84, 20,138,242,243, 95, 3,165,206,241, 28, 39,167, 97,219,182,109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, - 17,118, 60,185, 84,136,213,120,220,217,108, 71, 13,175, 48, 63, 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72, -176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, 95,157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, - 69, 42,149,126,116, 1,244,161,156,149,137,196, 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249, -245,198,223,177, 0, 0,107, 83,166, 80,174, 82, 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, - 38, 51,236,208,161, 67, 68, 72, 72,136,213,136, 17, 35, 18, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236, -160, 79,156, 56,209, 27,165, 41, 51,170,204,227,146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, - 38, 60, 60,156,144,200,105,180, 93,146, 92, 22,137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45, -172, 26,206,133, 5, 5, 5,225,175, 94,189,218, 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, - 88, 80, 80,128,236,236,108, 76,159, 62,221, 42, 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225, -199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, 8,137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111, -191,101,190,126,253,122,163, 64, 32,232, 92,233,205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, - 17, 35, 71,142,124, 14,192,107,254,252,249,214, 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, - 41, 56,113,226, 4,242,243,243,183, 1, 64, 97, 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127, -160,230, 80,237, 47,135, 15, 31,142, 75,151, 46,225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251, -136, 17, 35,240,243,207, 63,247, 1, 80,157,131,108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221, -231,206,157,107,223,187,119,111,172, 95,191,190, 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, - 64,128, 68, 46,151,247,153, 63,127,254,249, 99,199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69, -146,235, 54,111,222, 60,193,207,207, 15,243,230,205, 83, 94,190,124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222, -188,153,177,105,211,166, 9,179,103,207,206,166, 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239, -223,135, 92, 46,255, 53, 34, 34,226,118,163, 70,141, 86,203,100,178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227, -199,143,141,161,155,159, 94,102, 98, 98,162,165,133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183, -240,246,246, 6,155,205, 70,102,102, 38,180,172,229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216, -217, 90, 65, 69,144,200,200, 16,160,101, 19,103, 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, - 99,198,133,119,251, 94, 54, 17,127,100,135,152, 55,232, 52,153,201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, - 76, 48, 73,242,225,167, 56, 64,167,222, 33,165,171, 27,239, 73,175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208, -114,199, 15, 63, 88,218,216,218, 34, 32, 32,128,202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, - 96,148,250,216,226, 32,224, 17,180, 96,129,141,189,163, 35,198, 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, - 44, 13, 47,169,230, 21, 48, 48,107,254, 0, 95,174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125, -213, 90,180,170,114, 62, 43,117,170, 54,174, 86,172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, - 1,156, 5,176, 56, 37, 37, 37,110,194,132, 9,114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150, -197,162, 18, 97, 94,209,142, 29, 59, 20, 41, 41, 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229, -229,133,152,152, 24,123,145, 72,212,234,249,243,231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64, -169, 84, 94,203,200,200,104,156,156,156,220,208,210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192, -220,220,188,190, 14,226,252, 98, 70, 70,134, 59,101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91, -114,144,159,159,143,236,236,108,100,103,103,131, 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, - 1,102,102,102,160, 1,100, 20, 40, 16,189,201, 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, - 40,200, 58,117,234,244, 29, 54,108,152, 25, 0,168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247, -214, 0,122,255,195,231, 19, 3,192,140, 73,147, 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3, -192,172, 89,179, 60, 1,204, 67, 21,153,160,203, 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247, -238,161, 81,163, 70,224,241,120,109,107,104, 91,223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8, -162,190, 14,219, 62,176, 87,175, 94,207,110,220,184,209,182, 99,199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, - 73,183,145, 35, 71,138,220,221,221,113,235,214, 45,143,145, 35, 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175, -191,198,170, 85,171,232,147, 39, 79, 6, 0,184,162,158,119,249,248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, - 12, 96, 90,117,100, 34,145, 72,168, 82,169, 32, 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, - 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, 46,147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98, -164,186,245, 63, 59,122,244,168,212,194,194, 2,174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, - 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21,233,148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99, -141,226,130, 28,100,103,164,163,117,211,186,232,218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228, -208,181, 63,206, 11,173,204,216,104,220,196, 19, 35, 39,204,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, - 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, 88,120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, - 64, 92, 42,182, 1,128,130,193,240,232,251,229,151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, - 10,133,224,170,253,238,148, 64,147,175,190,250, 10,217, 57, 57, 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, - 6, 65,161, 80, 8, 2, 40, 4, 0,130,137,190,237,188, 26, 33, 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35, -124,237,124,180, 0,228,204,155, 55, 15, 92, 46, 23,124, 62,191, 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227, -199, 1, 32,167,218, 55, 60, 64, 58, 96,218,122, 74,170,160, 75, 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94, -229, 65, 49,181,225,252, 12,208, 78,157, 19,171, 29,128,252,164,164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133, -185, 41,130,148,183,207, 51,150, 44,156, 39, 76, 77, 77, 77, 65,105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, - 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, 25,137,177, 99,199,210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, - 33,114, 21, 85, 54,228, 87, 88, 88,136,244,244,116,200,100, 50,157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211, -213, 4, 30, 46,198, 32,148,197,101, 34, 43, 59, 59, 91,243,230, 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11, -145,145,145, 1,149, 74, 85,213,131,140, 74, 75, 75,187,124,226,196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, - 42,249,236, 97, 50,153,119, 53,109, 55,109,218,148,135,247,135,196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207, -198,158, 61,123, 32, 16, 8, 22,225,175, 92, 60, 84, 78, 78,206,130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, - 21, 2, 24, 89, 21,161,157,157,157, 51,147,201, 68, 84, 84, 84, 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124, -183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, 90, 90, 26,160,126, 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, - 54,222,202,202,106,193,129, 3, 7,152, 47, 94,188, 64,247,238,221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, - 91,183,110, 47,175, 94,189,138,141, 27, 55, 18, 45, 90,180,152, 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247, -238,157, 6,224, 84,133, 38,199,118,237,218, 53,107,239,222,189,152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126, -126,126,145,175, 94,189,210,169,226,129,142,237,187,249,248,248, 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234, -212, 60,188,255,192,254,253,244,233,211, 24, 53,106, 20, 90,180,104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83, -108, 54, 27,174,174,174,232,215,175, 31, 2, 2, 2,208,188,121,115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, - 41,151, 82,238,171,155,231, 19, 19,255,199,222,121,135, 71, 81,181, 81,252,204,246,190,155,186, 73, 72, 72, 8, 45,149,142, 84, -233,161, 72, 23, 81, 68, 16, 43,162,130, 72,177,125, 34, 86, 4,105, 34,136, 20, 69, 65, 4, 20, 69, 90,164,136, 40,145, 78, 2, -132, 0, 33,129,244,186,233,101,179,125,103,238,247, 71,138, 33,164,236, 38, 40,150,251,123,158,121, 38,185,179,115,246,206,157, -118,246,189, 45,225,212,197,115, 81, 54, 1,159, 7,127, 31, 55, 60, 24,209, 13,207, 76,238,143, 30, 33,190, 72,203, 51,226,248, -241,159,109, 41, 41, 73,103, 28,233,113, 88,173, 25,127, 45,246,244,213,139, 39,237, 66, 1,131,144,224,142, 88,244,191, 87, 93, -151,188,253,154, 75,199,118,254,136, 77, 46,197,207, 71, 15,217,178, 51, 51,126,189, 87, 61, 14, 79, 0, 34,165,132, 81,240,121, - 60,176, 60, 73, 5,191,170, 35, 77,167,176,176, 32, 47,111,111, 68, 70, 70,130,231, 68,143,208, 19,128, 72,169,172,172, 5,215, -235,245,168,214,107, 31, 28, 28,236, 31, 16,128,159, 34, 35,193,231,184,235,131,156, 28, 96,244, 70,101, 53,116,141, 46, 3,152, - 94,104, 13, 85,251,214,218, 96, 87,141, 2,231, 98,111,194,108, 35,231,191, 41,198, 61, 29,143,236, 79,100, 38,154, 89,117,184, - 98,227,198,141,189,190,248,226,139,225,243,231,207, 87,206,152, 49, 3, 82,169, 20, 6,131, 1,126,126,126, 96, 89, 22,135, 15, - 31, 70,116,116,180,158,227,184,159,113,231,176, 1, 17,168,213, 75,227, 72, 18,100,149,126,203,208,107,223,195, 15,223, 21, 77, - 0, 80,222,228,212,133,109, 44,219,215,238, 62, 57,105,199,145,139,204,203, 83, 7,241,122, 4,183, 6, 0,120,121,121, 65,173, - 86, 59,173,121, 23,248,211, 53,107, 87,235,230,230,230,222,200,205,205,205,123,246,217,103, 67,170, 27,190, 75, 36, 18, 83, 85, - 36,171,184,190,125, 28,200,167, 21,192, 11, 95,124,241,197,254,210,210,210, 35,175,188,242, 10,150, 44, 89,130, 3, 7, 14, 12, - 0,112,170,153,199,206, 22, 23, 23,151,156, 63,127,222,171, 67,104,119,180,213, 10, 49,240,173, 68, 16, 66,224, 46, 39, 40, 47, - 41,194,165, 75, 23, 81, 94, 94,126,206,153,124, 90,173,214,146,188,188, 60, 15,173, 86,139,162,162, 34, 20, 20, 20,212,152,172, -226,226, 98, 20, 21, 21, 17,134,185, 99,204,150,198, 52, 43,242,242,242, 12,241,241,241, 98,175,214, 29,208, 78, 43, 66,239,255, -221, 0, 8,129,191, 27, 15,229,101, 37, 56,115,230, 12, 74, 75, 75,127,107, 72,147,227,184, 5,211,166, 77,227, 3,120,252,149, - 87, 94,113, 3,208,245,213, 87, 95,253, 25,117,122, 22, 10, 4,130,143,183,111,223,222,169,186,138,241,181,215, 94, 91, 13,224, -139,191,234, 90,114,119,119, 95, 16, 25, 25,169,178, 90,173, 88,187,118, 45, 86,175, 94,189, 5,119, 14, 84, 25,249,233,167,159, -174,231,241,120, 47,206,158, 61, 27,207, 61,247,156,188,103,207,158,243,115,114,114,190,169, 79, 51, 43, 43,107, 81,143, 30, 61, - 22,231,229,229,125,232,144, 89, 78, 76,156,217,163, 71,143, 69,121,121,121,203, 27, 59, 71, 10,133, 66,193,178, 44, 82, 82, 82, -138,129, 6,219,119,152, 82, 82, 82,178, 88,150,245,147,203,229,110, 77, 93,159,197,197,197, 31,246,236,217,243, 29,157, 78,119, - 20,192, 7,245, 24,242,203, 57, 57, 57,225,115,231,206,157,179,108,217,178, 73,185,185,185,187,154,210, 76, 75, 75,251,112,200, -144, 33,111, 37, 36, 36,108, 69,195, 85,192,159,190,251,238,187,214,237,219,183, 63,159,146,146,178,180, 9,205,131, 5, 5, 5, - 7,157, 56,191, 13,125,190, 70,147,207,231,191,186,108,217, 50,222,198,141, 27, 65, 8, 89,201,178,108, 67,249,140,221,187,119, -239,182,254,253,251,207,216,189,123,183, 52, 60, 60,252, 57,179,217,188,179,169,235,211, 96, 48,236,217,189,123,247,164,216,216, - 88,191, 25, 51,102, 72,131,130,130, 96,181, 90,145,147,147,131,141, 27, 55,154,226,226,226, 50, 75, 74, 74,246, 56,243, 12,177, - 91,202,166,158, 62,190,111,103,106, 98, 92,223,193,163, 38,184, 90,172,126,144, 20,242, 81, 82,152,139,195, 7,247, 20,167,164, - 36,157, 49, 24, 74,166, 58,163,105, 53,151, 62,122,230,215,253,187, 50, 83,226,251, 12, 28, 50,218,213,100, 9,128, 68,196, 67, -161, 46, 11,135, 35,247, 21,165,164, 36,255,110,178,153,159,184, 87,207,121,126, 32, 62,224,231, 70, 63, 59,107, 92, 55,200, 92, -253, 46, 9,129,181,253, 1,153,135,151,151,168,234,222,129,178,178,205,163, 67,154, 58, 64,220,161,170,150,202, 96, 48, 64, 8, - 88,158, 4,132,158,158,158, 50, 0, 72, 72, 72,128,188,178, 86,195,169,124,234, 1,133,188,150, 46, 15, 48, 20, 10,224,219, 94, -173, 96, 0, 32, 51,183, 16, 22, 91,163,239,141,127, 58,155,107, 25,174,205,205, 17, 16, 1,136, 80, 42,149, 75, 22, 47, 94,188, -242,220,185,115, 43,199,142, 29,187, 82, 34,145, 44,169, 42,108, 81, 35, 39,226, 47,211,188,175, 21,220,134,180, 99,162, 70,180, -103,184, 89, 3, 92,217, 39,122, 43, 44, 67,135, 14, 93,223,194,124,182,228,102,249, 51, 53,247,217,108, 54,130,202,106,187,125, -104,184, 74,240,141, 90,219,115,211,211,211, 73,213,223,206,228,211, 99,202,148, 41, 92,121,121, 57,121,228,145, 71, 8,154,158, -194,167, 81, 77,137, 68, 50,100,224,192,129, 54, 93,126, 17,185,145,156, 69,206,198, 92, 35, 71,142,159, 38,187,246, 68,146,117, -235, 55,145, 46, 93,186, 88, 0, 4, 56,163, 41, 16, 8,134, 14, 25, 50,164, 80,167,211,145,248,248,120, 18, 21, 21, 69,190,255, -254,123,178,105,211, 38,178, 97,195, 6,210,186,117,107, 29, 0, 47,103, 52,101, 50,217,132, 7, 30,120,192, 86, 82,102, 32, 41, - 89,133,228, 74,124, 10, 57,117,254, 10, 57,124,252, 20,249,102,231,110, 18, 22, 22,102,114, 64,147,207,231,243,215,237,218,181, -171,140, 16, 66, 38, 76,152,144,137,219, 7, 82,109,187, 96,193,130, 60, 66, 8, 89,190,124,121, 33,234,111, 8,255,103, 95, 75, -163,124,125,125,111,136, 68,162, 72, 0,143, 55,177,223,163, 2,129,224,128,183,183,247, 5, 0, 15,222,131,251,104,172, 86,171, - 61, 11,160,169, 25, 14,170, 63, 55,241, 95,114,191,255, 25,154, 67, 5, 2, 65, 20,208,248, 36,194,181,158,215,239,243,249,252, -159, 0, 12,115, 50,159, 29, 61, 60, 60, 30,113,117,117,125,217,213,213,245,101,173, 86,251,136, 88, 44,238,216,146, 99,119,239, - 24, 49,206,191,251,248,189,173,187,142, 73,243,239, 54, 54, 45,176,199,132,189,238, 29, 35,198,181, 84, 51,160,199,132,125,254, -221,198,166,251,119, 27,151,218,246,190, 9,123, 61,130, 35, 30,184,151,231,232,113, 95,180, 26,222, 22,118, 18,245, 22, 33, 81, -111,145,136,182,224,250,186, 32,172, 23,160, 26, 25, 17,177,138,176,236,170, 73, 19, 39,174,234, 0,184, 19,128, 95,119,169, 79, -179, 59,160,174,217,119,194,132, 85,237, 0,143,225,128,124,208,128, 1, 43, 9,203,174,154,246,232,163,171,252, 1,239,250,244, - 26,210, 36, 0,223, 23,104, 85, 91,215, 3,104, 63, 57, 16,225,111,140, 11, 36, 36,234, 45,242,238,195, 65,164,135, 23, 30,111, - 66,179,161, 72,209, 63, 58,162,229, 44,138,170,135,235,210,170,181,226, 46, 92,132,119, 93,179,143, 15,130, 34,218, 51,241,163, -131, 5, 69,168,236,146,172,248, 23, 62, 36,183, 90, 44, 22, 98, 50,153,136,193, 96, 32,122,189,190,174,129,170, 49,100,217,217, -217, 36, 51, 51,147,164,167,167,147,212,212, 84,130, 63,218,222, 56,156, 79,181, 90,253,197,195, 15, 63,204, 10,133,194,117,119, -227,216,221,220,220,150,246,238,221,219,250,201, 39,159,144,189,123,247,146,207, 63,255,156,204,158, 61,155,116,234,212,201,236, -226,226, 50,181, 57,154,222,222,222,139,130,131,131, 11,183,108,217, 66,190,249,230, 27,178,102,205, 26,242,230,155,111,178,126, -126,126,185, 42,149,106,100,115, 52,181, 90,237,230,251,239,191,223,186,121,243,102,242,243,207, 63,147, 29, 59,118,144, 5, 11, - 22,144,144,144, 16,179, 66,161,120,200, 65, 77,190, 64, 32, 88, 53,107,214,172,220, 86,173, 90, 69,214,217, 38, 15, 11, 11,187, - 48,109,218,180,108, 0,175,253,139,174, 79,170, 73, 53,169,230,159, 96,180, 30,107, 5, 95, 2,240,229, 34,209,163,131, 6, 12, - 88, 41, 2, 30,117,214, 20, 73,249,252,201,253,123,247, 94, 41, 2,166, 86,127, 86,202,231, 79, 30, 52, 96,192, 74, 33,159, 63, -189, 33,189,198, 52, 9,192, 23, 9, 4,175,245,239,219,119,149, 0,248, 95,117,218,208,182,204,245, 5,163, 90,147, 1, 1,204, -205,233, 90,200,255,197, 70,235,174, 35,248, 19, 46,194,127,138,230,223,229,166,238, 80,101,152,246, 57, 17,209,218,135,202, 89, -212, 59, 52, 51,159,178,187,124,236,157, 61, 60, 60, 14,117,232,208, 33,191, 77,155, 54,217,174,174,174, 59, 1,248,181, 80, 51, -220,219,219,251,107, 47, 47,175, 68, 31, 31,159, 88, 15, 15,143,143, 81, 57,234,124,179, 53,133, 66, 97,111, 47, 47,175,223, 2, - 3, 3, 75, 2, 2, 2,116, 30, 30, 30,187,234,137,100, 57,162,233,131,250, 31, 42,162,170,109,244,165, 67, 53,169, 38,213,188, -205,192,140,104,135,101,195,219,194, 62,188, 45,216, 17,129,248,184,182, 65, 25, 11,200,154,107,138,158, 0, 36,117, 63,223,148, - 94, 83,154, 4,224,247, 3,148,117,247, 25,237,135, 48, 7, 53,255,233, 17,173,234,231,188,115,195, 59, 52,128,253, 79,200,228, - 63, 69,243,239,194, 77, 52,210, 24,185, 22, 75,239,226,119, 26,239,242, 49, 92, 41, 40, 40,120,160,160,224,174,246, 77,184,154, -155,155,251,248,221, 20,180,217,108,231,116, 58,221,224,187, 32,213, 80,215,107, 43, 28,236,150, 77,161, 80,254, 59, 48, 0,139, - 36,188, 30,209, 17,107, 5, 44,120,135,147,145, 85,167, 75,158,145,105,142,102, 37,236,214,122,158,241, 76,115,243,249, 7,250, - 59, 52, 50,113,141,249,239,156,182, 28, 84,182,209,106,177,209,162, 80, 40, 20, 10,133,242, 23,112, 44,145,254, 16,251, 7, 16, -137,219,163,111,145,181,140,104,131,161, 79,103,122, 82, 52, 39,124,122,140,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57, -205,106, 26,154, 59,245, 70,157,255,155,213,139,239,191, 2,173,103,167,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,102, -143,163, 69,161, 80, 40, 20, 10,133, 66,105,156, 6,163,110,212,104, 81, 40, 20, 10,133, 66,161,180, 12, 31, 84, 78, 81, 21,137, - 63,166,170,218, 76,141, 22,133, 66,161, 80, 40, 20, 74,203, 25,131, 63,122, 27,222, 22,221,226,209,178,161, 80, 40, 20, 10,133, - 66,105, 49, 51,107,173,105, 27, 45, 10,133, 66,161, 80, 40,148,187,132, 99, 61, 35, 15, 30, 60, 72,104, 89, 81, 40, 20, 10,133, - 66,185, 87,252, 67,189, 72,117, 20,235,142, 89, 62,104, 68,139, 66,161, 80, 40, 20, 10,165,101,108,174,101,184,110, 75,163, 70, -139, 66,161, 80, 40, 20, 10,165,101, 84, 27,172, 72,212,153, 82,141, 7,208, 42, 67, 10,133, 66,161, 80, 40,247,150,127,184, 23, -217, 92,181,220, 49, 93, 82,117,175,195,193, 85, 7, 56,152,158,106, 10,133, 66,161, 80, 40,247,128,127,178, 23,241, 65, 3,109, -180, 40, 20, 10,133, 66,161, 80, 40, 45, 99,102,157,117, 13, 12, 45, 27, 10,133, 66,161, 80, 40,148,187, 98,180,106, 67, 39,195, -166, 80, 40, 20, 10,133, 66,249, 39, 67,103, 54,167,154, 84,147,106, 82, 77,170, 73, 53,169,230,127,129,153,168, 51, 42, 60, 64, -135,119,160, 80, 40, 20, 10,133, 66,185, 27, 38,107,115,125,255,211,185, 14, 41, 20, 10,133, 66,161, 80,254, 36,104, 68,139, 66, -161, 80, 40, 20, 10,165,101,108, 70, 61,163,194, 83,163, 69,161, 80, 40, 20, 10,133,114,247,204,214, 29,208,170, 67, 10,133, 66, -161, 80, 40,148,150, 49,179,161,255, 25, 52,220,115,224,152, 19, 95,208,156,222, 7,199,168, 38,213,164,154, 84,147,106, 82, 77, -170,249,159,211,108, 74,251, 24,254,121, 52,216, 24,254,207,134,118,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157, -234, 41,120,170,151,154,169,120,104, 27, 45, 10,229, 31, 14,217, 13, 62,138,131, 3, 65, 72, 43,240,197, 57,200,185,146,196,188, - 3,174,197,154,186,176, 0,200,108, 94,176, 75,243,161,139, 77,110,169, 38,133, 66,161,252,139,201, 65, 3, 17, 44,106,180, 40, -148,127, 58,249, 33, 65, 16, 96, 41,120,240, 1,177,222,130,103,216, 82,224, 90, 92,139, 53, 69,220, 7, 96,121,126, 32,214, 4, -104,131,151, 1, 55,174,209,112,241,142,135, 0, 0, 32, 0, 73, 68, 65, 84,194,166, 80, 40, 20,231,248,203, 27,195, 11,133, 66, - 29, 0, 78, 42,149,238, 1,157,229,154,242,231,226, 83,117,157,113, 85,215,157, 51, 40, 5, 2,193, 98,185, 92,254,171, 68, 34, -201,147, 72, 36,121, 10,133,226, 87,129, 64,176, 24,128,242,239,114,128,228,235, 78,114,240,216, 7, 44, 54,206,247,240,149, 18, -173,193,204, 6,129,103, 31, 77,182,116, 84,182, 72, 83,192,140, 48, 89, 57,255,111,206, 27,188, 42, 44,246, 80, 16,180, 72,179, - 22, 46, 34,145,232, 48, 0, 15,122,121,254, 59, 9, 5,122,246, 20, 8, 22,134, 0, 67, 65,231,211,165, 80,254,122,163,101,179, -217,180, 5, 5, 5,204,182,109,219,198,107, 52,154, 91, 2,129,224, 13, 0,162,255, 74,129, 43,149,202,211,106,181, 90,167,209, -104,116,106,181,250, 98, 83,233,255, 82,130, 60, 61, 61,211,220,220,220, 18,106, 39,122,118,121,176, 95,135,254,143,191,237, 30, - 54, 97, 80, 11,245, 69, 2,129,224, 13,141, 70,115,107,219,182,109,227,179,178,178, 24,155,205,166,117, 98,255,129,174,174,174, -215,207,157, 59,247, 86, 65, 65,193,160,140,179, 91, 60,115,207,109,242, 76,251,109,213,224,232,159,214,189,229,226,162,185, 6, - 96,224,223,162, 36, 77,156, 23,120,252, 33, 87,115, 12,242,156, 50,155, 87, 76,170, 65, 5,240, 7,195,210,130, 31, 49,165,156, - 23, 64,134, 94,206, 52, 42, 78, 23,121,122,253,158,100, 86,131,199, 27, 2, 19,227,221,226, 7, 14,143,247, 60,199,113,195, 69, - 34,209,203,244,241,251,239, 68,204,227,245, 63, 61,126,252, 7,175,117,233, 50, 39, 4, 24,215,128,217, 98, 0,188, 20, 18, 18, -114, 8,192,163,119,241,235, 63, 10, 14, 14,206, 2, 48,151,158, 9,202, 95, 76,247,234, 31,248,168,211, 70,203, 97,163, 53, 57, - 16,253,167,182,197,137, 71, 2, 81, 62,165, 45,244,211,219,226,228, 67,129, 24,218,156,220,184,187,187, 99,224,192,129,252,172, -172, 44,217,130, 5, 11,222,150, 74,165, 41, 0, 70, 54, 71, 75, 38,147, 69,203,229,242, 12,129, 64,112, 91, 94,228,114,121,180, - 66,161,200, 16, 8, 4,195,106,167,171, 84,170,211,106,181, 90,167, 82,169, 46, 54, 96,132,162,213,106,181, 78,169, 84, 70,215, - 78, 23, 8, 4,195,148, 74,101,166, 74,165,170,155, 62, 84,165, 82,101,212, 77,111, 8,161, 80,232,151,145,145,161,205,204,204, -212,138,197, 98,175,218,233,233,233,233,218,140,140,140,219,210,157, 65, 32, 16, 12, 85, 40, 20, 25,114,185, 60,186,190,244,186, -199,212, 16,181,202,110,168, 35,233,206,154,172, 17, 35, 70,156,204,201,201,241,119,113,113,113,169,189,193, 77,227, 50,242,235, - 45,235,231, 79, 24, 61,226,121,207,208,137,157,155,169, 63, 82, 42,149,166, 44, 88,176,224,237,172,172, 44, 89,223,190,125,249, - 60,158, 83,191, 39, 34, 38, 76,152,176, 79,167,211,249,118,237,218,149,111,183,219,113,117,255, 98,200, 99, 95,134, 52,101, 35, - 90,203,242, 5,183,126, 94,230, 55, 98,112,207,125,184,199,141, 65,201,238, 80, 17, 24,110, 32, 71,136,231,245, 44,147,231,152, -241, 15, 11, 46,101, 24, 61,109, 44,235, 6,240, 7,147,175, 2, 36,205,210, 20,216, 6,112,132,120,253,146, 42,244, 28,242,200, - 28,254,241, 84,129,167,141,101,221,193,195,160,230,104,214,190,252,249,124,254,252, 85,171, 86,241, 0,204, 6, 32,254, 47, 61, -133,123,181,130,239,208,246,252,243,221,125,208,255, 46,202,134, 87,221,239, 65,127,151,227,180,112,220,141, 93,201,201, 71,166, -183,111, 63,246,181, 46, 93,158,172,199,108, 49, 0, 94, 91,182,108,217,227, 87,175, 94,245,108,219,182,237,115,119,233, 71,255, -154,101,203,150,189,122,245,234,213, 86,129,129,129,239,130, 14, 95,244,175,130, 16, 34, 38,132, 12, 33,132,140, 33,132, 12, 35, -132,244,170,250,251,190,170,101, 12, 33, 36,162,206,250,190,170,125,171,183,247,110, 64, 99, 76,221,253,106,237, 83,247,255,219, -254,174,199,104,141, 65,101, 91,173, 49,183, 29,192,193,131, 7, 73,237,117, 93,166, 4,226,157, 57,253,124, 13,215, 15,236, 32, -250,140,100, 82, 28,127,137, 92,218,252, 33,153,115,159,167,225,177,182,248,200,249,242, 34,228,212,169, 83,228,234,213,171, 68, -175,215,147,196,196, 68,210,187,119,111,163, 92, 46,255, 5, 64,160, 51, 98, 42,149, 74,247,203, 47,191,144, 17, 35, 70,148, 42, -149,202,149,213, 55,151, 90,173,214,157, 58,117,138,140, 24, 49,162, 84,165, 82,173, 1,192, 7,128,135, 30,122, 40,143, 16, 66, - 60, 61, 61,179,235,211,155, 48, 97, 66, 49, 33,132,104, 52,154,234,170, 38,190, 74,165, 90,243,226,139, 47,234, 47, 92,184, 64, - 92, 93, 93,171,211,121,106,181,122,229,236,217,179,245, 49, 49, 49,181,211, 27,197,205,205, 45,131,101, 89,114,224,192, 1,162, -213,106,107,242,224,234,234,154,193,178, 44,217,183,111, 95,131,121,107, 44, 80,160, 84, 42, 87, 76,159, 62,189, 60, 53, 53,149, -184,187,187,235,106,165,175,156, 49, 99, 70,121,122,122, 58,241,240,240,112, 40,143,238,238,238,186,211,167, 79,147, 73,147, 38, -149,213, 46, 83,119,119,119,221,153, 51,103,170,211, 87, 56,242, 32,107,213,170,213,115, 90,173, 54, 91,171,213,102,187,184,184, - 44,241,241,241,201,205,207,207, 39,132, 16,210,174, 93,187,188,218,145, 44,109,248,248,121, 27,119,159, 57, 23, 21, 87,152,223, -101,248,243, 43, 52, 93, 38,104,156, 40,131, 64,185, 92,254,203,160, 65,131,140, 25, 25, 25,164,162,162,130,196,198,198,146, 83, -167, 78,145,155, 55,111, 18, 0,196,145,203, 73,169, 84,102,153,205,102,206,108, 54,115,249,249,249,108, 94, 94, 30, 27,191,210, -135,144, 47,133, 53, 75,201,190,113, 36, 55,106, 41,167, 86,202, 51, 1,168,238,217,131,103,125,152, 31,217, 20,188,235,218, 98, -255,248,168,101,163,108, 36,245, 56,217,241,164,167,237,196, 60,223, 91,100, 67,200, 15,100, 83,104,235,102,105,110, 8,221, 17, -251,166,255,141,117,239,190,100, 75, 75, 75, 35, 11,103,140,178, 31,157,227,155, 68, 54,134,236,110,142,102, 45,166, 62,248,224, -131,250,244,244,116, 18, 22, 22, 86,193,231,243,159,254, 47,153,172,136, 32,113, 86,236, 55, 11,185,113,225,242,194,187,100,182, -194,181, 90,109,193,214,173, 91,137, 74,165,202,251, 27,153, 45, 38, 4, 24,191,173, 75,151,125,220,228,201,236,182, 46, 93,246, -133, 0,227,171, 12, 22, 3,224,245,229,203,151,199,216,108,182,152,175,190,250, 42,102,252,248,241, 49, 0, 22,182,240, 59, 63, -249,232,163,143,136,205,102, 35, 95,125,245, 21, 25, 63,126, 60, 1,176,214,209,157,149, 74,101,135,206,157, 59,111, 15, 11, 11, - 75,239,218,181,171, 37, 52, 52,212, 20, 20, 20,148, 26, 30, 30,190, 85, 34,145, 4,130,242,151,208,152, 23, 33,132,244,122,253, -245,215,223, 0, 64, 94,127,253,245, 55, 8, 33, 99,170,252,196,152,218,127,215, 93, 87,155,167,234,255,235,211,168, 94,234,211, -172,239, 59,234,124, 15, 26,136,100,205,188,227,224, 14, 30, 60, 56,232,224,193,131, 39,234, 30,220,195,109,209,111, 78, 63, 95, -163, 49, 63,135,196,125,248, 50,249,117,136, 31, 57, 53,216,155, 36,204,127,144,228,124,179,134,188,208,205,213, 48,185, 45,134, - 56,107,180, 98, 98, 98, 72, 76, 76, 12,185,120,241, 34, 73, 73, 73, 33,165,165,165,228,219,111,191,101,221,221,221,141, 18,137, -100, 25, 0,153, 35, 98,106,181, 90, 71, 8, 33,102,179,153, 44, 89,178,196, 84, 21,169,242,210,104, 52, 58, 66, 8, 41, 41, 41, - 33,203,150, 45, 51,105, 52,154, 88, 0,173, 60, 60, 60, 50,146,147,147,137,151,151, 87,189,102,198,213,213, 85,119,227,198,141, -106,227,228,235,234,234, 26,183,127,255,126, 43, 33,132,100,102,102, 18, 55, 55, 55, 29, 0, 47,119,119,247, 75, 7, 15, 30,180, - 18, 66, 72,118,118,118,117,186, 67, 70,203,104, 52,146,163, 71,143,222,150,135,234,244, 67,135, 14,221,102,192, 28,192, 75,163, -209,196,124,251,237,183, 22,150,101, 73, 92, 92, 92,181, 73,244,114,113,113,185,184,123,247,110, 11,203,178, 36, 62, 62,222, 97, - 51,216,166, 77,155, 60, 66, 8,177,219,237,100,227,198,141,230,234, 50,173, 78,183, 88, 44,228,179,207, 62, 51,171,213,234, 24, - 0,141, 70,223, 60, 60, 60,178, 45, 22, 11, 41, 41, 41, 33,189,123,247,214,159, 58,117,138,148,149,149, 17, 66, 8,105,211,166, - 77, 30, 0, 4, 15,122,250,253,115,137,250,178,167, 94, 93,255, 93, 96,175,199, 62, 60,114, 62, 43,243,139,189,209, 49, 30,225, - 19, 70, 57, 18,212,148, 72, 36,203,124,124,124, 76,191,255,254, 59,107,181, 90, 73,122,122, 58,185,120,241, 98,205, 53,118,229, -202, 21,135,140,150, 64, 32, 88,124,238,220, 57, 43,203,178, 92, 65, 65, 1,155,151,151,199,230,229,229,217,235, 26, 45,242,165, -144, 20, 28,122,150, 68,110,158,107, 17,137, 68,139,239, 77, 52, 11,124,178, 41,120, 2,217, 20, 28,179,117,186, 71, 65,249,197, -157,132,252, 60,151, 36,189,223,150, 44, 30,165, 42,231, 54, 5,199,144, 77, 33,147,201, 59,131, 4, 78,105,110, 14, 29, 71, 54, - 5,199,124,244,112, 64,225,165,152, 11,228,196,137, 19,228,179, 53,203,201,156, 8,223, 10,110, 83,112, 12,217, 16, 58,201, 25, -205,218, 72, 36,146,196,147, 39, 79,146,168,168, 40,242,238,187,239, 18,185, 92,158,126, 55,162,122,100, 67, 80, 0,249, 60,104, - 16,217,210,209,135,252, 54,232,111,215,193,167, 87, 43,248, 14, 15, 18,103, 22, 92,218, 75, 72,209, 77,146,187, 50,140,140, 10, - 22,182,212,108,133,107,181,218,252,212,212, 84,146,155,155, 75, 86,175, 94, 77,212,106,245,223,218,108, 5, 3, 19, 0,188,177, - 98,197,138, 26,147,181,126,253,250,152, 43, 87,174,196,248,251,251,255,212,130,239, 90,187, 98,197,138, 26,147,181,126,253,122, -114,229,202, 21, 18, 16, 16,144,209,212,142,211,167, 79,151,247,235,215, 47,102,218,180,105,134,173, 91,183,146,212,212, 84, 18, - 27, 27, 75, 86,172, 88, 65,222,126,251,109,242,229,151, 95,146, 73,147, 38, 85,244,238,221,251,220,228,201,147,165, 78, 70, 20, - 4, 85, 81, 24, 49, 33, 68, 72, 8,169, 54,154, 2, 0,194,234, 31,255, 20,199,188, 72, 67,102,170, 33,131, 85,119, 91, 35, 70, -172, 81,195,230,192,247,221,105,170,234, 70, 66,106,253,253,219,216,177, 99, 7,221,241,242, 33,120,111,230,130,247,165, 41, 91, - 87, 67,247,237,167,224,151,232, 32, 44, 47,132,249,100, 36,108, 39,247,227,241,190,125,101, 50,134,249,192,217, 2, 21,139,197, - 16,139,197, 16,137, 68, 48, 24, 12,200,206,206,198,253,247,223,207,187,120,241,162,244,185,231,158,155, 43,147,201,210, 1, 76, -108,242,110,102, 42, 35,210,167, 79,159,198,179,207, 62, 43,217,190,125,123, 87, 79, 79,207,203, 44,203,138, 1, 32, 62, 62, 30, - 83,166, 76,145,236,220,185,179, 83,171, 86,173, 46, 90,173, 86,185, 68, 34, 1,159,207,111, 80, 79, 44, 22,195,102,179, 73, 58, -118,236, 24,123,249,242,229,240,177, 99,199, 10,211,210,210,144,156,156, 12,155,205, 38, 14, 10, 10,186,114,241,226,197,174, 99, -198,140, 17,102,100,100, 32, 45, 45,173, 38, 31,142,228,215, 98,177, 64, 34,145,160,118,149, 22,195, 48, 48,155,205, 16,139,197, - 14,107, 9, 4,130,161, 33, 33, 33, 87, 46, 95,190,220,125,194,132, 9,162, 11, 23, 46, 32, 51, 51, 19, 44,203,138, 67, 67, 67, -175, 92,190,124,185,219,248,241,227, 69,177,177,177,208,233,116,112,180, 10,173,250,115,151, 47, 95,198,180,105,211,196,135, 15, - 31,238,230,227,227, 19,107,183,219,197, 0,112,229,202, 21, 76,153, 50, 69,124,228,200,145,238,173, 91,183,142,109,162, 42,145, - 15, 0, 54,155, 13,207, 61,247,156, 66,173, 86, 35, 35, 35, 3, 28,199,129,101, 89, 0, 64, 97,113,225,149,203, 87,226,226, 31, -159,250,240, 32,163,213,108, 62,115, 62,250,122,187, 54, 1,126, 12, 67,218, 52,145,213,137, 10,133, 34,125,229,202,149,243, 82, - 83, 83, 37, 33, 33, 33,188,164,164, 36,148,151,151, 67, 36, 18,213, 92, 99,142, 30,183, 88, 44, 30, 28, 22, 22, 38, 48,153, 76, -224, 56, 14, 0, 8,143,199,171,247,100, 72, 75, 78, 34,212,203, 46,148,201,100,131,239,201, 19,169, 44,204, 29, 28,134,167,229, - 91, 36, 18, 23, 63,149,210, 39, 8, 72,143, 66, 91, 79, 9,248, 60,190,244, 66,178, 65, 1,144,225,240, 47,112,119, 78,147, 27, -158,156,103,145,216,220, 58, 41, 91,249,249,163,176,176, 16,173,219,133,192, 36,246, 20,159,190, 89,161, 4,227,164,230, 31, 12, -232,216,177,163,119,135, 14, 29, 80, 80, 80,128,238,221,187,195,213,213,213, 21,192,240,102,155,172,175, 2, 36, 40, 67,127,128, -183, 18, 44,243, 46,108,130,165,184,153,223,157,108,234, 46,252, 59,153, 44,181, 82,124,118,231,174,111,125,221,253, 67,129,200, -167,224,229, 34,193,150,231,187,187,121,106, 36,251,154,105,182,194,189,188,188,142,159, 59,119,206, 67, 42,149,226,226,197,139, - 8, 11, 11,195,234,213,171, 61, 93, 93, 93,163,254, 38,102,139,196, 3, 7, 62,138,141,253,106,251,173, 91, 7,167,183,111, 63, -118, 90, 80,208,146, 89,143, 62,250,244, 75, 47,189,132,229,203,151, 99,223,190,125,232,223,191, 63,102,206,156,105, 75, 79, 79, -223,214,204,239,249,116,229,202,149,115,230,206,157, 91, 87,211,154,150,150,214,104,109, 75, 88, 88,152, 95, 98, 98, 98,214,252, -249,243,187,111,223,190, 93, 38,151,203, 81, 82, 82,130,207, 63,255, 28,111,188,241, 6, 24,134, 1, 33, 4, 95,126,249,165,252, -201, 39,159,236,117,235,214,173,172,128,128,128, 38,155,117, 16, 66, 24, 66,136, 20,128,188,106, 81, 0,144,239,220,185, 83, 51, - 97,194, 4,117, 85,154,172,106,145,128, 82,151,122,189, 72,173,119,229,193, 58,229, 61,182,110, 90,221,109,132,144,177,141,105, - 56,105,160,235,251,190,200,198,204, 86,237, 55,208,224,122, 93, 36,208,197, 59, 48, 24,165, 63,239,134, 76,192, 64,198,175, 90, - 4, 12,120, 73, 87,208, 90, 42,132,141,144,240,230, 26,173,234, 69, 40, 20,194, 96, 48,128,101, 89,188,241,198, 27,146,163, 71, -143,186,243,120,188, 31,154,210,169,109,152, 18, 18, 18, 16, 26, 26,202, 28, 56,112,192,107,246,236,217,178,234,239, 41, 45, 45, - 69,135, 14, 29,152, 67,135, 14,105,223,124,243, 77,101, 99,102,134, 97, 24,136, 68, 34,204,157, 59, 87,118,254,252,121,183, 86, -173, 90, 33, 41, 41, 9, 69, 69, 69, 80, 42,149,152, 59,119,174,236,220,185,115,158,173, 90,181, 66,106,106, 42, 74, 75, 75,161, - 84, 42,157, 54, 90, 34,145,232,182,125, 24,134,129,213,106,117,202, 24,104, 52,154, 29, 49, 49, 49,158, 26,141, 6,177,177,177, -176,219,237,208,104, 52,152, 51,103,142, 44, 38, 38,198,211,197,197, 5,241,241,241, 32,132, 64,173, 86, 59,149, 71, 0,224, 56, - 14,241,241,241,104,211,166, 13,162,162,162,180,179,102,205,146, 86,167,223,188,121, 19,126,126,126,136,138,138,210, 42, 20,138, - 29, 13,105,113, 28,135,156,156, 28, 92,189,122, 21, 73, 73, 73,200,207,207, 71, 65, 65, 1,202,203,203, 97,183,219, 1, 0,242, -242,178,200,157,223, 29,184, 44,147,201,228, 97, 65, 29,253,175,196, 93,203,147,201,100,242, 0,127,255, 32,224, 29, 94, 35,134, -240,135,180,180, 52,247, 39,159,124, 82,148,155,155,139,226,226, 98, 8, 4,130, 59,174, 45,177,216,177,166, 64,118,187, 61, 84, - 42,149, 50, 86,171,181, 38, 2, 38, 22,139, 49,111,135, 1, 97,139,113,219,242,232,154, 60, 16,214, 6,139,197, 18,250,151,191, -193, 0, 6,140,165, 35, 24,166,251,217,164, 10,183, 1, 99,167,138,144,124, 24,224,108, 0, 79,128,193, 93,252, 4,251,174, 84, -120,129,160, 11,204, 8, 33,164,233,158, 95, 4, 96, 0,107, 7,128,233,121, 52,209,238,222,255,193,231, 69, 89, 89, 89, 16,137, - 68,144, 72, 36,232, 62,244, 33,193,206,203, 54,111, 48,232, 10, 43,130, 29,209,188, 45,236, 40,147,189,245,246,219,111, 43,106, -107, 62,253,244,211, 10,141, 70,243,118,179, 77, 86,133,188, 47,236,100,238,213, 44, 67,155, 37,145,185,161,183,242,140,193, 32, -100, 62, 96,235,118, 23,204,214, 96,137, 68,146, 12,224,254, 22,153, 44,149,248,204,174, 93,223,250,186,181,174, 52, 89,176,155, - 0,161, 12,222,158, 46,216, 50,111,136,155,167,139,204, 89,179, 21,238,229,229,245,203,217,179,103, 61,164, 82, 41, 98, 98, 98, - 32, 18,137, 32,149, 74,209,185,115,103,108,218,180,201,211,205,205,237,111,101,182,150,197,198,110, 93,122,245,106,194,235,225, -225, 33, 19, 21, 10,183, 23,167, 77,211,188,249,230,155, 7,247,239,223,255,213,152, 49, 99, 10,206,159, 63,255, 49,128,221,206, - 70,204, 0,172, 95,181,106,213,139,213,198,237,205, 55,223,252,114,255,254,253, 75,199,140, 25,147,115,254,252,249,249, 0,214, - 55, 38,160,215,235,247, 47, 90,180, 72,243,224,131, 15, 86,255,143,147, 39, 79, 98,219,182,109, 80, 40, 20,183,125,118,252,248, -241,120,246,217,103, 93, 45, 22, 75,163,239, 36,173, 86, 59,236,236,217,179, 97,168,236,224, 37,169, 54, 90,113,113,113, 46,101, -101,101, 46, 74,165,210,197,199,199, 71, 85,109,182, 30,124,240, 65, 23,129, 64,112, 63, 40,104,202,139,212, 54, 58,142,164, 53, -247,243,142,154,173, 58, 73, 13,142,161,117,155,209, 26, 59,118,236, 9, 52,208,147,202, 90,164,131, 4, 44,100,124, 6,114,126, - 45,179, 5, 14,130,210, 60, 48,205,232,192, 91,223,203, 80, 44, 22,131,207,231,195, 98,177,160,176,176,208, 41, 83,160, 86,171, -161, 84, 42, 97, 52, 26, 97,183,219, 33,149, 74,171,205, 8,212,106, 53,132, 66, 33,132, 66, 33,164, 82,233, 29,209,164,186,209, - 28,145, 72, 4,133, 66,129,156,156, 28,164,165,165,129,227, 56, 40,149, 74, 40, 20, 10,136,197, 98,100,103,103, 35, 59, 59, 27, -132, 16, 40, 20, 10, 40, 20, 10, 56,211,224,154,101,217,122, 95,254, 54,155,205,169,136,150,221,110,199,245,235,215,145,158,158, - 14,169, 84, 90,115,172, 18,137, 4, 55,111,222, 68,110,110, 46,228,114, 57,212,106, 53, 52, 26,141,195,186,213,199,162, 82,169, - 32,147,201, 80, 92, 92, 12,131,193, 80, 83,166,106,181, 26, 10,133, 2,165,165,165,200,203,203,107,244,216, 89,150, 69,118,118, - 54,242,243,243,145,145,145,129,130,130,130, 26,179, 85, 21, 53,106, 89, 96,167,172, 12,133,133,133, 53,145,200,134, 22, 71,224, - 56, 14,229,229,229, 56,123,246, 44,195,113, 28, 74, 74, 74,184,252,220, 92,246,133,108, 49,246,189,179,129,124,123,248,146,105, -231, 79, 49,198, 61,191, 92, 53,174,223,115,197, 40,237,253,174,253,158, 60,134, 62, 11,215,192, 38, 28, 81,160,183, 73,242,173, - 34,141, 87,120, 4,144,124, 8,224, 9, 0,169, 43,250,116,106,139,180, 98, 86,113, 67,103,145,130,193, 72,172, 15,114,117, 72, -147, 21, 14,207, 47,183, 73, 82,173,158,234,208, 46, 61,160,211,233, 32,145, 72, 32,145, 72,208,179,127, 4,146, 11, 89,249,181, - 44,163, 28, 4, 35, 28,210,252,131,118, 74,165,178,239,253,247,223,207,212,214, 28, 61,122, 52, 24,134,233, 12, 32,196,169,135, -220,218,118, 98, 88,229,125, 32, 32,115,175,229, 24, 90,237,139, 51, 5,141,155,248,144,219, 39,199,242, 66,175,231,154, 3, 65, -108, 11, 64,172, 61, 90, 96,182, 6,169, 84,170,131,235,214,173, 11,148, 74,165,135, 0, 12,104,142,136, 82,198,223,248,214,139, - 83,125, 93,171, 77,150,205, 0, 8,100,128, 80, 6, 8,100,240,214,122,224,131,103,135,187,201,165,194, 61, 78, 24,214,157,235, -215,175,247,172,107,178,170,151,238,221,187, 99,241,226,197,158,110,110,110, 59,238,241,203,114,132, 70,163,217, 30, 17, 17,113, - 54, 91,165,122, 54,167, 71, 15,241, 47, 26, 77,233,176,210, 82, 77, 64, 92,156, 53, 24,184, 2,224,179,204,204,204, 81, 78,152, -172, 71,213,106,117,204,176, 97,195,172, 42,149, 42,125,245,234,213, 47,204,158, 61, 27,203,151, 47,199,162, 69,139, 62, 7,240, - 12,128,255,101,102,102,182,106,202,100, 1, 64,110,110,238, 99,175,189,246, 90, 65, 65, 65, 1, 0,160,115,231,206, 40, 41, 41, -193,194,133, 11,241,242,203,149,157, 98,187,117,235, 6, 66, 8,116, 58, 29, 86,174, 92,169,203,205,205,125,162,137,103,123,198, -238,221,187,123, 89,173, 86, 63, 84, 86, 15, 74, 74, 74, 74,212, 69, 69, 69, 42,171,213,170,224, 56, 78,225,226,226,162, 4, 32, -127,252,241,199, 5,215,174, 93, 11,181,219,237, 89,212, 91,253, 65, 99, 94,164, 57, 48, 12, 19,217,146,200, 85,125, 17,177, 6, -104, 60,162, 53,118,236, 88,166,246,250,182,136, 17,131,216,244,232, 40,184,133,247,184, 45,154, 37,231, 51,144,169, 53, 72,206, - 72,131, 8,204,213,187,101,180,138,139,139,241,194, 11, 47, 24, 31,123,236,177, 66,142,227, 30,114,212, 20,104, 52, 26,104, 52, - 26, 92,187,118,141, 76,154, 52, 73,183,122,245,106, 99,109,163,149,144,144, 64, 70,140, 24,145,247,246,219,111,235, 27, 51, 90, -213, 17,173,101,203,150, 25, 7, 15, 30,156,127,245,234, 85, 82,109,166,148, 74, 37, 86,174, 92,105, 28, 50,100,136,238,194,133, - 11,164, 58,205,153,136, 22,143,199,171, 49, 90,181,247,225,241,120,224, 56,206, 41,163, 85, 81, 81,241,216,152, 49, 99,116,241, -241,241,164,250, 56, 53, 26, 13, 86,175, 94,109, 28, 62,124,184,238,234,213,171,164, 58, 77,173, 86, 59,108, 6,171,191, 95,165, - 82, 65,173, 86,227,218,181,107,100,196,136, 17,186,181,107,215,154,106,167, 95,191,126,157,140, 31, 63, 94, 87, 94, 94,254, 88, - 99,230,165,186, 58,207,110,183,195,100, 50,161,160,160, 0, 25, 25, 25, 53, 85,135, 70,133,122,212,212, 71,198,117, 53, 26,141, -134,107, 9,137,233,157, 59,133,105,141, 70,163, 33, 45, 61, 61, 1,120,135,107, 68,251,161,240,240,240,194, 23, 94,120,193, 88, - 92, 92,220, 98,163, 37, 22,139,227, 5, 2, 1, 25, 48, 96, 0,177, 88, 44, 36, 35, 35,195, 86, 80, 92,108, 15,249,240, 67,114, -117,222, 60, 70, 22, 29, 45, 81, 42,149, 76,149, 38, 47, 41, 41,137,147,201,100,241,127,249,147,136,199,121,131, 33,247,255,158, -168,119, 25, 62,110,138,152,201, 61, 15, 88,245,128,196, 21,144,184, 66,160,112,199, 3, 3,186,241,183,158, 45,243, 6,225,250, - 65, 36,241,107, 82, 83, 72,188, 0,110,192,207, 9, 38,215,251, 39,207, 17, 23, 21, 21,129,207,231,215,152, 34,185, 66,129, 97, - 19, 31,231,125,121,222,236, 13,144,254, 96,248,126, 78,220,235,175,190,245,214, 91,162,226,226, 98,240,120,188, 63, 52,229,114, -204,154, 53, 75,162, 86,171, 23, 57,252,240,219, 29, 42,130, 80,210, 7, 32, 47,223,200, 53,181,218,127,197, 24,188, 96,217, 22, - 89,120,183, 94,120,110,176, 86,182, 44, 50, 47,252,114,134,177, 45,192,206,131,221,210,179, 25,102,107,128, 74,165,138,140,142, -142,150,143, 30, 61, 26, 43, 87,174, 84,200,100,178, 67,205,121,240, 87,232,217,217,239,173,253, 90, 23,251,241, 72,192, 90, 81, -105,176,106, 45,121,122, 14,139,183, 28, 47,181,217,200, 84, 71, 53,141, 70,227,140,103,158,121,166,112,207,158, 61,119,152, 44, -169, 84,138,148,148, 20, 44, 89,178,164,168,168,168,232,137,123,105,178,102,207,158,189, 36, 51, 51, 51,248,231,159,127, 22,228, -231,231,107, 87,125,241, 69,233,247,165,165, 69, 75,227,226,110,252,175, 83,167,142,175,119,233,242, 68, 35, 67, 63,212,107,178, - 94,124,241,197,157,153,153,153,221,143, 29, 59, 38,204,207,207,247,123,241,197, 23,177, 98,197, 10, 44, 90,180,104, 19,128,231, -224, 88,135,151, 63, 2, 8, 86,235,141,226,226,226,177, 35, 71,142, 44, 41, 46, 46, 70,151, 46, 93, 48,110,220, 56,120,123,123, -163, 85,171, 86,152, 48, 97, 2,130,130,130, 80, 88, 88,136,169, 83,167, 22,229,231,231,143, 4,144,212,152,102, 97, 97,225,173, - 29, 59,118, 36,204,153, 51,167,123,102,102,102, 40, 0,247,242,242,114, 69,121,121,185,196, 98,177,200, 92, 93, 93, 93,187,117, -235,230, 49,115,230, 76,229,165, 75,151, 66, 51, 51, 51,245, 0,210,168,189,170, 49, 89, 13,122, 17, 0,249, 85,134,199, 82,103, -157,223,196, 54, 71,247,173,247,111, 7, 62, 87,215,108,213, 94,238,168, 58,172,255, 98, 4, 22,111,219,189,213, 36,246,239, 0, - 77,112, 87,200,165, 82,200,196, 98,200, 92,221, 97,230, 56,124,145,146,107,168, 32,100,145,179, 5, 90,247, 69,200, 48, 12, 62, -253,244, 83,123,223,190,125, 77,199,143, 31, 95,103, 52, 26,253, 1,236,117,198, 20,172, 93,187,214, 48,119,238,220,203,121,121, -121, 93,165, 82,169,165, 58,125,221,186,117,134,199, 31,127, 60, 46, 51, 51,179,187, 92, 46, 55, 52,212, 62,171,182,209,146, 72, - 36,230,188,188,188, 94, 79, 63,253,116,252,103,159,125, 86, 33,151,203,161, 80, 40, 32,145, 72, 44,121,121,121, 93, 95,120,225, -133,203, 43, 86,172, 48,200,100, 50, 40, 20, 10,167,170,229, 8, 33,119, 24,170,218,233,142, 98,183,219,143,231,229,229,117,157, - 59,119,238,165, 79, 62,249,164,162,218, 0,213,206,227,170, 85,171, 12, 74,165,210,169,136, 86,245,231, 20, 10, 5,214,172, 89, - 99,152, 51,103,206,229,188,188,188,174, 18,137,196, 82, 43,189, 98,246,236,217,151,242,242,242,186,218,237,246,227,141,252,194, - 99,203,202,202, 32, 16, 8, 16, 23, 23,103, 22,137, 68,224,241,120,184,121,243,102,141,209,114,115,115, 11,235,218,185, 83,200, -215, 59,119,159,144,137, 36,146,190,189,122,134, 38,165,166,101, 18,194,164, 54,145,213,189, 70,163,209,255,248,241,227,235,250, -246,237,107,250,244,211, 79,237, 13, 69,182, 28,193,108, 54,159,184,120,241,162, 77, 42,149, 50, 57, 57, 57,118, 62,159, 15,150, -101,137,185, 87, 47,115,231, 79, 62, 33,215, 94,127,157, 81, 43, 20, 2,145, 72, 4,185, 92,206, 28, 62,124,216, 98, 48, 24, 78, -252,245, 70, 11,114, 48,144, 37,230,153, 85, 82,158,157, 65,194,222, 74,147, 37,117, 1,164,174,128,212, 21,190,190,126, 56,159, - 98, 80,129, 7, 49, 88, 7,198, 16, 35, 68, 1, 6,242, 56, 29, 84, 66,177,140,201,205,205,173, 49, 68,213, 75, 96,135, 80, 92, - 76,211, 43,193, 16, 9,248,112,102, 8,146,177,238,238,238,130,156,156,156, 59, 52,195,194,194,248, 54,155,205,241,161, 93,178, - 89, 31,128,123, 49, 33,215,228,243,227,229,138,224,121, 75,191,148,201,216, 18, 32,122, 45,194,219,181,194,188,201,221,196,111, -238,207, 15,191,144,106,104, 7, 62,121, 14,156,222,211,137,124,222,175, 82,169, 14, 93,184,112, 65,174, 82,169,144,148,148,132, - 94,189,122, 97,243,230,205,114,185, 92,254, 19, 0,167,218,227,157,211, 33, 77, 95,206,246,125,117,119,122,110,108,142,253, 54, -147,149, 95, 65,240,204, 71,251, 75,138,203, 76, 15,157,205,104,248,254,169,135, 75, 37, 37, 37, 35, 22, 45, 90, 84,152,159,159, -127,155,201, 74, 75, 75,171, 54, 4,131, 1, 92,189, 87, 47, 75,141, 70, 51,109,233,210,165,184,112,225, 2, 70,143, 30,141,168, -168, 40, 20, 21, 21, 97,215,161, 67,137, 59, 18, 19,255, 87,221,102,171,129,161, 31,234, 69,173, 86, 47, 88,186,116, 41,162,163, -163,107, 52, 11, 11, 11,177,116,233,210, 76, 0,207, 59,107,178,170,201,203,203, 59,127,227,198,141,145, 93,186,116,185,190,110, -221,186, 76, 31, 31, 31,110,230,204,153,120,230,153,103,224,233,233,201,174, 89,179, 38,125,192,128, 1,113,183,110,221,138, 48, - 24, 12, 87, 28,249, 45, 80, 80, 80,112,122,243,230,205,103,135, 14, 29, 42,159, 49, 99,134,231,190,125,251,220, 13, 6, 67, 43, -137, 68,162,181, 88, 44,226,235,215,175,243,191,255,254,123,239,107,215,174,165,152, 76,166,243,205,205,251,127, 13,134, 97, 46, - 48, 12, 19,201, 48,204,177, 58,235, 11,141,109,115, 98,223,134,254,110,244,115,117,178,185,185,206,226, 56,211,218,225,157, 89, -157, 84,134,211,211,251,144,220,153,247, 19,221,148, 80,114,114,144, 27,121,186, 61, 83, 49,163,153,195, 59, 24,141,198,154,101, -207,158, 61,196,219,219,187, 66,165, 82, 57, 61,188,131,183,183,183,174,172,172,140,220,119,223,125, 69,158,158,158, 53, 67, 17, -248,248,248,232, 42, 42, 42, 72,159, 62,125,138,180, 90,109,205,240, 14,126,126,126, 25,132, 16, 18, 16, 16,144,221,144,158,221, -110, 39,222,222,222,213, 61,244,132,110,110,110, 27,122,247,238, 93,164,211,233,136,143,143, 79,205,208, 9,158,158,158, 43,123, -245,234, 85, 55,189,169,252,102,100,102,102,146,204,204, 76,210,186,117,235,236,218,233,105,105,105, 36, 45, 45,141,248,249,249, - 57, 61,188,131,167,167,231,138,122,242,210,172, 60,250,251,251,235,140, 70, 35,233,215,175,223,109,101,234,239,239,175, 51,153, - 76,213,233, 14, 13,239, 32,147,201,158,147, 74,165,217, 82,169, 52, 91, 34,145, 44,105,211,166, 77,222,119,223,125, 71,214,172, - 89, 83,221, 37, 29,158, 97,227,251,118,232,247,196,255, 60,195, 38, 44,104,201,240, 14, 42,149,234, 23,111,111,239,138, 61,123, -246,220,118,125, 25,141, 70,135,135,119,144,201,100,153,122,189,158,211,233,116,182, 83,167, 78, 25,162,163,163, 13,113,113,113, -134,148,148, 20, 99, 97, 94,158, 85,167,211, 25, 75, 75, 75,205,151, 47, 95, 54,203,229,247,102,120, 7,178, 57,168, 3,217, 16, -178,255,214,123,129,215,230, 14,148,155,174,124,208,149,144, 31, 30, 36,228,167,103, 8, 57,254, 42, 57,191,105, 38,233, 23, 40, - 97, 79, 45,108,157, 64, 54, 6,255,232,200,144, 12,100,115,231, 14,100, 67,200, 79,137,239, 6, 94,155, 49,160,149,233,139,207, -214,144,115,231,206,145,184,184, 56,146,148,148, 68,126,218,251, 29,233,215, 78, 94,169,185, 33,100,191,147,195, 60,244,151, 72, - 36,250,213,171, 87,147,179,103,207,214,104,238,223,191,159,200,229,114, 3,224, 88,175,101, 2, 48,100, 67,216, 68,251,103,193, -191,191, 57, 92, 89, 94,120,240, 85, 66,174,108, 37,100,115, 56, 33, 95,245, 38,228,187, 49,132, 28,120,130,156, 93, 51,153,244, - 15, 20,217,200,198,224, 40,178, 41,204,225,198,246, 66,161,176,108,207,158, 61, 36, 59, 59,155, 68, 69, 69,145,232,232,104, 18, - 31, 31, 79,210,211,211, 73,100,100, 36, 17, 10,133, 38, 52, 99,218,178,222, 94, 8,136,232, 40,202,185,188,172, 63, 33,251,166, -146,252, 29,211,200,216, 78,170,162, 62,173, 91, 52, 30, 93, 55,119,119,247,130,200,200, 72,146,146,146, 66, 78,156, 56, 65,180, - 90,109, 1,128,240,123,253, 66,140,136,136, 56, 71, 8,137, 25, 61,122,116, 12,128,195, 17, 17, 17, 49,201,201,201, 49,189,122, -245, 58,139,198,135,126,104,144, 97,195,134, 89, 9, 33,100,244,232,209, 4, 64,118, 68, 68, 4, 73, 78, 78, 38,189,122,245,178, -220,165,108,243, 1, 60, 33, 20, 10,191,112,115,115,251,213,213,213,245, 56,159,207,223, 12, 96, 58,154, 63, 30, 23, 31, 64, 43, - 0, 97, 0,122, 86, 45,161, 85,105,180,199, 33,229, 78, 38, 7,162,255,147,237,152, 19,143,181, 69,249,212,182,208, 63,213,158, -113,100,192,210,136,134,140, 22,199,113, 36, 33, 33,129, 12, 25, 50,164, 66,161, 80,100,193,241, 1, 75,111,211,244,240,240,136, -214,106,181,119, 12,162, 89, 43,253,182, 1, 75,181, 90,237,105, 31, 31, 31,157,167,167,231,197,250, 52, 61, 60, 60,162,125,124, -124,116, 30, 30, 30,183, 13,238,201,231,243, 71,123,120,120,100,213, 77, 23, 8, 4, 67,181, 90,109, 70,221,244, 6,142, 29,222, -222,222, 25,217,217,217, 36, 63, 63,159,248,251,251,103,215, 53, 96,185,185,185,183, 25, 48, 71, 52,155,202, 75, 35,121,172, 87, -211,129, 50,109,206,121,175, 38,200,215,215, 55,111,213,170, 85, 68,169, 84,230,213,222, 16, 60,240,169,183,206, 37,234,203,158, -121,109,195,119,245, 12, 88,234,232,224,160, 35, 21, 10, 69,214,144, 33, 67, 42, 18, 18, 18, 8,199,113,132,227,184,134,140, 86, -125,154,163,122,246,236, 89, 88, 80, 80,192,150,151,151,219, 51, 50, 50,204,201,201,201,198, 15, 62,248,192,154,159,159,111,210, -235,245,150,216,216, 88,179,143,143, 79, 62,128, 81,206,158,163,230,190,187,234, 86,159,145, 77,161,253,201,198,208,200,248,183, - 3,174, 63,209, 91, 97,142, 89, 53,154,144,227,175,146,179, 27,158, 33,125, 3,197,149,134,104, 83,200, 33,242,101,208, 64,178, -182,157,216, 33,205, 47,218, 15, 32,155, 66, 14, 93, 91, 28,112,253,193, 30,158,150,157, 91, 55,145,155, 55,111,146,253,223,239, - 32,125,218, 86,153,172,141,161, 71,201,134,208, 33,142,104,214,103,182,182,108,217, 66,110,222,188, 73,126,252,241, 71, 71, 77, - 86, 68,125, 70,235,141, 8,101,201, 51,189,165,230,169,221,196,150, 9,225, 34,235,136, 14, 34,123,191, 0, 1,219,213,135,199, -133,122,130,140, 8,150,153,201,198,224, 40,178, 49,116,164,163,249, 20,139,197,233,168, 53,166, 78,221, 69, 34,145,228, 55, 98, -180, 34,154, 52, 91, 65,146,156, 95,222, 27, 74,198,117, 81, 21, 58,104,178,154,186,150,186,121,120,120, 20,124,245,213, 87,196, -203,203, 43,223, 65,147,245,167, 95,159, 26,141,102,187, 94,175,143, 57,114,228, 72, 76, 68, 68, 68,204,246,237,219, 99, 78,158, - 60, 25, 35,151,203,183, 87, 7, 39,234,154,173,208, 59,159,255, 17,117, 34, 90, 49,229,229,229,228,200,145, 35, 36, 34, 34,130, -108,223,190,157,156, 60,121,146,200,229,242,152,230,230,243,207, 56,118,170,249,159,102, 38, 26,168, 58,252,211,127,220,212,103, -180, 76, 38, 19, 89,184,112,161, 69, 42,149, 26, 68, 34,145,179, 83,240,252,163, 47, 66, 15, 15,143,211, 94, 94, 94, 58, 47, 47, -175,219,204, 94,237,116, 15, 15,143,139,255,242, 27, 48, 72, 36, 18,165, 9,133,194,219,167,224, 9, 27,223,183,125,255, 25,139, -188,194,199, 63,208,194,124,138, 68, 34,209, 27, 82,169,212,176,112,225, 66,139, 94,175,119,198,104, 1,192,112,185, 92,158,181, -109,219, 54, 99, 98, 98,162,173,168,168,200,126,238,220, 57, 91,116,116,180,229,157,119,222, 41,151,203,229, 89,104,120, 88,130, -191,164, 60,201,218,118,226,106,179,117,101, 81, 64,252,184, 78,114,235,230,249, 35, 72,223, 54,117, 76, 86,195, 35,185,215,175, - 89,101,182, 46,189,233, 31, 63, 36, 72,105, 95,186,104, 30,233,211, 86,118,187,201,114, 66,179,174,217,146,203,229,229,111,191, -253,182, 51,145,172,219, 13,225, 23,193,254,100, 83,200,246, 74, 19,213,196,178, 33,248,115,242,105,176,255,223,229, 62,234,237, -133,128, 97, 65,146,171, 78, 68,178, 28,201,103, 55, 87, 87,215,235, 78, 68,178,254,138, 99, 31, 49,107,214,172,152,228,228,228, -152,164,164,164,152,147, 39, 79,198, 76,156, 56, 49, 6,192,136, 90,159,169, 49, 91,214, 73,147,204,221,120,188,121, 77,104, 62, - 58,107,214, 44,146,156,156, 76,146,146,146,200,201,147, 39,201,196,137, 19, 9,156,155,190,135,154, 34,106,180,238, 9,127,246, -132,159, 17, 0,142,213, 78,144, 74,165, 58,147,201,228,169, 84, 42,247,234,245,250, 57,168,236, 22,217, 34,205, 63, 35,159, 84, -243, 95,161,233,163, 84, 42,215,233,245,250,137, 82,169, 52,223,100, 50,121, 57,161,233, 34,145, 72,230, 73,165,210, 33, 6,131, - 33, 8, 0, 20, 10, 69,130,217,108,254,213,104, 52,126, 12,160,228, 94, 31, 59, 89,219, 78, 12,177,184, 39, 8, 94,143, 73,175, -104,187,244, 72, 81,192,252,161,174,233,253,218, 43, 82, 32,228, 62, 2, 99, 62,207, 60,153,102,118, 90, 83,198,244, 2, 43,124, -253,124,170,161,205, 71, 63,151, 7, 44, 24,162, 76,239,215, 78,153, 14,130,143, 32, 49,156,113, 86,179,174,217, 82, 40, 20,219, - 42, 42, 42,158, 5,240,171,179,199, 78,118,135,138, 80, 97,243,133,141,223, 9,164,145, 41,124, 8, 49,128,199,143, 67, 46,116, -204, 59,215,173,244, 62,250,203, 53, 71, 40,149,202,105, 33, 33, 33,237,174, 93,187,150,100, 48, 24,190, 1,112,180,238,251, 39, - 4, 24, 34, 23, 8,186, 26,237,246,168,235, 64,116, 19,154,143, 42,149,202, 5, 33, 33, 33,225,215,174, 93,187,106, 48, 24, 86, - 1,216, 69,207,209,191, 74,243, 95,201, 95, 62,138,114,245,203, 78,175,215,211,210,167,252,217,228,232,245,250, 73, 85,215,157, -179,251,150,152,205,230,197,102,179,121,113,245, 15,146,226,226,226,191, 85,163, 85,230,165, 36, 11, 89,219, 46, 26, 98,241,178, - 30,254,178, 57,123,102,201, 12, 32, 76, 38,132,220,154, 38, 76, 86, 83,154,231, 33,179, 45,235, 21, 32,123,249,199,231,100, 6, - 16,228,130,224,227, 38, 76,150,163,156,170,168,168,104,219,236, 99,126,248,186, 21, 64, 10, 1, 82,241, 78, 35, 63, 20,223, 1, - 97,104, 35,227,123,201, 81,189, 94,127,244,252,249,243,141,125,134,196, 3, 4,249, 91,179, 0, 0, 32, 0, 73, 68, 65, 84,199, - 97,119,184, 51,192, 46,189, 94,191,171, 9, 77, 10,133, 26, 45, 10,229, 31,200,223,246,133,205,188,148,100, 33,187, 67, 47,160, -128,191, 16, 60,180, 5,236,105,168,176,231, 50, 47,165, 89, 90,168,121, 14, 5,204, 92,240, 17, 4,177,253, 22,244,150, 92,230, -249, 52,203,223,230,184, 1,130,119,168,145,162, 80, 40,127, 27,102,226,246,158,134, 53,255, 83,163, 69,161,252,195,169,138,242, -100, 86, 45,127, 91, 77, 10,133, 66,249, 15, 26, 46, 48,104,184, 65,155, 51,117,175,205,105, 20,119,140,106, 54, 75,147, 15, 64, - 3,192, 5,149,211, 56, 84,119, 19,110,106,152,141, 7, 0,216,104,121, 82, 77,170, 73, 53,169, 38,213,188,199,154, 77,105,255, - 19,219,126,213,215,203,112,243, 95,241,197,180, 71,198,221,101, 36, 45, 79,170, 73, 53,169, 38,213,164,154,255, 82,205,127, 37, - 60, 90, 4,255, 40,164,180, 8, 40, 20, 10,133, 66,249,219,209,189,106,237,131,202,232,150, 79,245,134,123,218, 70, 75,230,222, -209, 7, 2, 94, 23,134, 35, 33, 0, 64,120, 76, 60,236, 92,172,177, 48, 49,167,165,218,202, 86, 65,110, 4,226,221, 12, 44, 15, -235,179, 19,138, 90,170,215, 41, 72, 61,201,203, 67, 53, 45,183,176,116,219,213, 27,250,125,206,236,171,209, 4,104,164,110,174, -147,205, 86, 91, 39,177, 72,148,110, 45, 41,219, 92, 92,156, 84,222,140,108,184, 53,182,241,157,119, 8,115, 48,231, 34, 35,146, - 91,121,238,106, 17,163,135,158,232,115,148, 92, 96, 73, 10,249,254,251,135,137,179,231,134,225, 97,176, 66,165,234, 33,145,202, -123,201, 85,174, 29, 57, 2, 20,233,178, 82, 45, 54,251, 73,214, 98,136, 33, 28,126,187, 27,231,138, 66,161, 80, 40,148,127,129, -209,186, 8, 96, 12, 42,171, 12,155,110, 12, 31, 16,118,255, 5,169, 84, 22, 8, 0, 28, 33,224, 8, 80, 81, 86, 18,147,155, 20, - 61, 18, 0, 60,218,116, 63, 34,148,170,123,112,164,114, 59,203, 1,118,171, 41,165, 44,237,220,125,142,228, 72,225, 25,244,224, -208,136, 97,147,198,142, 29, 19,220,185, 83,231,246, 0,112, 37,238,202,173,131, 7, 35,111, 28, 63,198,236,169,200, 79,248,177, - 37, 71, 76, 32,125,191,103,207,110,247, 71, 71, 95,124, 15,192,139, 45, 45, 65,119,119,229,156,163, 63, 44, 28, 56,108,210, 74, - 5,224,156,209,146,186,185, 78,158, 48,110, 84,183, 87, 94,154,197,123,102,225,135,129, 23, 78,253,182, 92,233, 19, 94, 66, 56, -219,209, 10,221,148,223, 27,155, 56,185,174,127,108,200, 96,125, 83,116,152,183,230,171,190,174,198,162, 91, 83, 8,199, 78, 97, - 24, 6,124,177,252,123,207,118,247,127,231, 50,120,126, 49, 0,135,123,140,169,125,194, 34,180, 62,126,123,166, 60, 53, 79, 42, -215,120, 9,192, 23, 1, 96,144,157,122, 29,199,119, 45,117,125,249,221, 45,221, 79,197,166,217,127,249, 97,189,137, 17, 9, 39, - 25,114,174,209,177, 84, 40, 20, 10,133,242, 95, 38,178,202, 92, 69,214,221,208,160,209,146, 74,101,129,103,127, 59,232,246,227, -201, 12, 0, 64, 68,119,111,252,239,131,117, 35,182,175,141,190, 1, 0,125,135,142, 13,122,239,141,151,112,250,106, 30, 8, 33, -232,214,193, 29, 15, 76,120,216, 49,227,225, 21,122,223,228,201, 15, 61,182,112,225,130,241, 55,111,222, 76,221,185,115,231,239, - 0, 48, 96,224,192, 14, 31,126,248,225, 35, 43, 93,221, 36,223,126,255, 67,150, 73,119,253, 66,115,142, 86,218,170,157,111,112, -199,182,211,190,253,114, 29,111,240,200,135,166,166,162, 98,169, 41, 59, 41,203,145,125, 61, 60, 60,230, 10,133, 66, 13, 0,112, -220, 31,254,199,106, 37,222, 0, 96,103, 57,149,107,171,224,114,190, 72,202, 74, 36,162,107,229,122,253,182,178,172,235, 95, 52, -166,105,182,217,194, 95,126,254, 73,222,165,164, 66, 4,134, 15,224,175, 89,250, 38, 56,214,230, 58,239,141, 15, 38, 71,159,251, - 22, 21, 58,156,112,240,208,132,117, 19,124,125,251,240,223, 95,170, 28,206, 48,120, 34,160,239, 83, 19,223,219,250,189,176,103, - 7, 53,204, 54, 14,135, 98, 10,251,110,248,248,253, 21,167, 54,140, 57, 0, 96, 19,128, 95, 0, 52,105,234,220,220,221,190,153, -187,232, 99,101,133,229,143, 97,138,170, 76, 22, 62,223,182, 27,151, 51, 56,132, 4,135, 8,188,231, 46, 87,110,250, 96,230, 86, - 67,229,220, 93, 20, 10,133, 66,161,252, 87,201,193,237,141,223, 55, 55,105,180, 0, 64, 41, 19,224, 70,114, 46, 0,192, 69, 6, -204,121,110, 6, 10, 11,242,131, 44,118, 14, 79,205,152,142,139,241, 57,184,145,146, 15, 66, 8,130,252,228, 14,231,134, 15,174, -231, 83, 79, 63, 53,232,200,209,163,231,223, 90,244,214,215, 12,131, 51, 0,176,105,243,231,125, 23,191,189,248,217,233, 51,166, - 15,255,254,251,239,175, 2,104,150,209, 18, 48,170,117, 43,150, 45, 17,103, 22,152, 76,115, 23,190,206, 45,152, 63,119, 13,128, -135, 28,114, 50, 66,161, 38, 51, 51, 83,201,227,221,222,124,237,163, 37,175, 71, 13,159,180, 50, 49, 53,189,228,210,145,253,251, -239, 11, 11, 11, 67,102, 86,110,255,229,159,108,236,122,232,136,236,201,242, 50,227, 36, 67,193,245,122, 39,109,150, 8,133, 87, -223, 93,190,161, 27,231,210,129,247,191,103, 71, 35,188,125, 43,100,229,149, 96,224,200,241,130,152, 11, 23, 70, 0, 14, 27,173, -186, 3, 52, 78,182,112,121, 93, 63,220,118,110,216,196,126,173,122,242,120,124,232,141, 54,228,151,154,193,114,192,128, 80, 13, - 70,109,255, 68, 80, 84, 97,123,240,131, 31, 50, 30, 60,179,118,172,206, 84,154, 61, 27,192,158,198,191,134,184,249,105,213,184, -145, 81, 94,175,201,170, 48,217, 1, 0, 34, 62, 11, 6,196,157,222, 95, 20, 10,133, 66,249,143,211, 96,175, 67, 30, 0, 28, 60, -120,176,222,246, 59, 44, 75,112, 35, 37, 7, 55, 82,114,112, 62, 62, 31, 86, 34,196,154,229,239, 98,213,210,183, 81,100,228,225, -199,211, 25, 72, 72,201, 69, 66, 74, 46, 10,138,235, 29,233,253,182, 42,165,149, 75,101,221, 63,254, 88,189, 98,196, 64,197, 96, - 55, 87, 87,215,196,171, 95, 87, 44,158,175, 11,125,247,229, 12,145,208, 34,201, 84, 40, 21,253,118,239,254, 46,204,203, 83,171, - 80, 42, 85,175,202,125,187,110,209,104,186,104, 26,211,172,139, 76, 27, 50,126,252,152, 81, 67,189,189,189,184, 89,107, 98,226, - 59,133,134,216, 58,118,232,216, 95,166,237, 56,190,145,221,106, 52, 57,142, 3,143,199,131, 78,167, 67,118,118, 54,146,147,147, -145,144,144,128,140,140, 84, 29, 71,136,144, 5,199,243,241,241,131, 64, 32, 70, 96,155, 0,108, 88,179, 84,254,193, 59,255,235, - 37, 85,136,247,213, 49, 66, 53,154,166,162,226,239,127, 58,124, 52,235,208,206, 13, 44, 0,228, 21,235,113,252,194, 77, 92,188, -150,225,236,137,172, 59,132, 67,155,172,180,155,101,246,148, 72,254,123,111, 46,200, 56,121,242, 84,106,105,185, 5,229, 6, 43, - 12, 38, 27,204, 22, 22, 54,150, 67,128,167, 20,123, 95,239,132,253,191,198,122, 49, 12,243,113, 83,229,105, 54,219,216,251, 67, - 20,152, 58,164, 53, 66,252, 20,200,186,113, 6,115, 23,125,140,232,100, 51,138,139, 75, 96,171, 40, 0,167,207, 68, 65,202, 69, -216, 89,150, 52,117,222,239, 18, 84,147,106, 82, 77,170, 73, 53,255,197,154, 13,121,145,127, 8,155,235, 89, 80, 99,180, 26,226, - 86, 70, 17,110, 36,231,162, 71,136, 47,218,183,241,193,249,132, 98,124,115, 60, 3, 91,142,164,225,248,229,124,112, 2, 21,114, -203,128,196, 84, 29, 18,211, 10,154, 28, 63,155, 47, 17, 78,121,249,229,210,133,157,195,202,250,252,118,104, 14,124, 61, 19,195, - 94,123,173,100, 14, 95, 34,156,226,218, 90,181,243,245,133,243,166,169,228,114,177,197,108, 65,187,182, 1,210,151,102,207,121, -146,113,149,236,116,244, 40, 85,190,161,174, 18,153,236,139, 15,222,121, 85,242,241,143,137,233, 21, 22, 84,236, 57,163, 75, 90, -240,250,226, 34,129, 80,186, 65,229, 27,234,234,168,150,205,102,131,217,108,134,197, 98,129,213,106, 69, 86,198,245,241,191,252, -248,202,200,182,173,221, 70, 74,164, 82, 16, 0,101, 70, 59,146,115, 12, 24, 50,108, 56,191, 71,247,238,225, 74,159,208,167,235, -211, 42, 45, 77, 43,229, 8, 95,117,112,239, 14,254,119, 63, 95,194,215, 7, 47, 96,223,175,151,112,254,196, 33, 59,225,108, 53, -243,127, 41,125, 58, 4, 41,125, 58,167, 41, 91,117,209,213, 44,190,157,162, 27, 45, 83, 62,143, 12, 25, 22,113,236,185, 23, 95, -250,205, 80, 94,152,247,197,186,119,179,242,179, 83,175, 75, 68,140, 93, 46,225, 67,111,178, 99,235, 47,217,152,188,244, 50,174, -165,235, 65, 8,105,114, 2,111, 14,152, 63,229,233, 87, 88,155,213,138, 96,127, 37,118,108, 94,134,241, 67,186, 98,104,103, 87, -220,215, 94, 1,185,192,140,171,241, 55,176,107,199, 86, 59,199,241, 22,208, 31, 50, 20, 10,133, 66,161, 17,173,154,197,167,246, -134, 6,171, 14, 77, 38, 99,202, 67, 83,166,195, 71,235,173,156, 48,248, 9, 81,204,173, 18,228,231,164,225,102, 66, 28, 12, 38, - 27, 68,174,109, 1,169, 55,218, 4, 6, 32,246,198, 62,235,218, 21,145,122,206,110, 78,105, 72,111,252,120, 31,191,155,241, 12, -111,197,114,255,179, 9, 55,138,123,236, 88,244, 21, 30,123, 76,233,177, 98,185,255,217,212, 36, 5, 79, 46, 37,253,158,156, 49, -149,225, 49, 4,175,189,182, 16, 19,198,142,194, 83, 79, 62,206,108,219,182,181, 79,137,131, 71,201, 65,248,233, 27,111,190, 43, -214,149,216, 45,231, 19,244,102,185, 66, 38, 59,149,168,175, 8, 15,244,151,141,158,244, 68,118,228,238, 47, 62, 6, 48,195, 17, -173,106,131,101,179,217, 96,181, 90, 1,128, 5, 0, 30,175,114, 93, 88,110, 65, 94,137, 25,186, 18, 51,236, 44,135, 73, 83,102, -200, 46, 68, 95,158, 1,160,129,246, 90, 28,103,179,219,176,231,231,139,200,186,240, 61,199,240,248,165,181, 26,195, 67,233,211, - 33,200,219,219, 63,106,236,164,199, 61,197,210,202,106,216,242, 10, 51,182,109, 92,222,104, 62,121, 12, 67, 56,214, 94, 98,183, -217, 42,218,181,109,151, 21, 18,214, 85,122,242,183, 35,227, 79, 29,219,163,183,183,123,220,229, 86,106, 14,248, 66, 9,248, 34, - 41,204, 86,199,126, 44,232,110,158, 93, 15,128,121,250,133,133,107,230,189,242, 63,254,252,181,191,195, 98, 50,192,108,172, 64, - 89,105, 49,100, 2, 27,174,158,222,111, 39,172,109, 94, 69,206,165,245,244,254,162, 80, 40, 20,202,127,156,186,211,239,212,164, - 53,104,180,210,174,157,188, 15, 0,130,122,142, 40, 84, 74, 5,110, 2, 30, 3, 93,230, 45,108, 91, 57, 23, 28, 71, 48,250,217, - 21, 80, 5,122, 67, 38,226,195,172, 47,212, 23,221, 58,209,104, 91, 29,134,177, 13, 95,191, 41, 43,240,133,231,219,169,119,236, -208, 11, 1, 96,199, 14,189,240,249, 89,173,213,159,109, 74, 9,236,125,127, 15, 16,150,197,216, 9, 15, 97,202,163, 83,144,154, -107,192, 15, 81,233,168, 48, 90, 28,234, 45, 39,243, 8,233,234,225,238, 57,234,229, 39, 70, 41, 4,124,134,233, 24,160,225,103, -228,219,236,124,190,144, 61,112,161, 52,123,210,164, 71, 61,142,255,244,221, 80,214, 35,164,171,177, 32,254,114, 83,122,102,179, - 25, 44,203,194,108, 54,195,102,179,193,205,163,237, 79,195, 31, 90,153,153,147, 91, 30,153, 91,108,234, 93, 97,179, 67, 87, 98, - 70, 94,137, 25, 37, 21, 86,120,171, 92, 97,183, 89, 58, 55,164, 71, 8,249,122,226, 67,211, 31, 7,192, 99,120,246,175,244, 57, -241, 9,149, 91,254, 48, 89,163, 38, 60,230, 25, 21,115, 11, 55,163, 15, 21, 19,206, 94, 57,138, 59,195,101, 54, 94,174, 32,124, - 6,156, 72,192,216,248, 60, 30,103,181,234,109, 90,173,231,241, 19,199, 15,143, 51,217,147,192, 23, 73,106, 62,107,180,176, 14, - 95, 49,186,155,103, 63, 5,128, 79,214,174, 89,213,111,248, 99,162, 19, 23, 83, 96,180, 1,125,187, 7, 97,239,183,159,155, 9, -177,189, 82,145,115,233, 83,122,111, 81, 40, 20, 10,133,114,155,193,138, 68,101,227,248,219, 35, 90,213,117,163, 99,199,142,173, -219,224, 26, 89,186, 34,184, 43, 5,240,108, 21,136,105,115, 87,225,235,143,231,131,101,109, 32, 4,176,179,142,141, 76, 64,136, -240,231, 23,159, 15, 12,105, 19,200,247,156,246,152,220,248,205, 14,131,108,218, 99,114, 99,167,206,238,165, 47, 62, 31,152, 82, -110,242,239,111,103, 89,156,186,154,135,184,148, 82,196,165,150, 65, 41,115,124,152, 47,190, 88,244,252,242,101, 75, 69, 2, 62, -195, 92, 77,211,235, 51, 11,237,122,190, 80,104,149,203,196,196, 66, 4,230,212, 2, 82, 56,108,226,147,198, 3,219, 63,121, 26, -192,236,134,116,170,123, 26, 86, 71,178,170,215,132, 16,194, 0, 28,199,176,108,102,129, 9,122,171, 13,186,226, 63,140, 22, 99, -111,184,230, 84,233,211, 33, 72,173, 82, 30,230,243,249, 18, 66, 0,155,213,254, 8,124, 58,140,212,231,220, 76,168,109,178,206, - 94,205,198,173, 75,199,116,172,213, 48,221,144,119,227, 23, 71,143,157, 97, 64,248,124,112,124, 30,195, 49, 12, 56, 33,143, 88, - 64, 8, 87, 55, 71, 6, 39,140, 86,181,217, 18, 11,249,139,142,238,250, 88,251,212,152, 80,124, 27, 85,233,249, 76,229,249,101, - 21, 89,212,100, 81, 40, 20, 10,229,238,210,152, 23,249, 7, 69,181,238,140,104, 53,118, 64,132, 0,137,105, 5,104,227,231, 9, -191, 54,237,145,112, 61,246,143,109, 0,236,172, 99,213, 81,251,247,231,100,174, 90,165,230,230,207, 47,237,187,124,185,255,153, -231,103,181,214,116,234,236, 94,250,234,171,233,125, 87,175,214,156,249,249,172,144, 37, 85,227,117, 85,143,205, 69,136, 51,237, -226,120,189,186,134,181,229,191,187, 35, 49,253,151, 43,229,121, 34,145,200,230,237, 42,101, 84, 74, 49,159,207, 19,138,205, 54, -158, 57, 40,188, 59,255, 0,143,233,222,152, 74,181,209,170, 91,117, 88,152,127,107,252,209, 31, 22,118, 26, 60,113,133, 91, 86, -190, 17,165, 22,126, 77,213, 33,159,199,224,202,245, 52,128, 47,138,171, 79, 83,173,114, 59,178,243,155,175,253, 87, 47, 95, 2, -171,157,197,139,243,223,194,147, 51,166, 31,129, 79,135,145,254,129,193, 49,191, 31,248, 74, 62,114,214, 6,164,221,136,206,181, -155,203,118, 57, 99,178,106,204, 22, 64, 88,194,241,138,138,203,148,102, 59,164,168,199,247,153,173, 92,179,174, 28,189,209,142, - 3,231,114,113,240,199, 93,208,168, 20,244, 73, 64,161, 80, 40,148,187,206, 63,212, 92,161,142,185, 2, 26,138,104, 53, 70,128, -159, 23,206,197,165,160,115, 72, 91,104,212, 42,196,223,202, 4,159, 39, 4,143, 1,108,118,199,205, 16,177,218,190, 93,189, 90, -131,180, 20, 5,239,179, 13, 41,129, 47, 62, 31,152,178,122,181,230, 12,177,218,190, 5, 48,157, 16,160,210,108, 85, 26, 46,214, - 9, 95, 64, 56, 91,107, 47, 55, 57, 63, 58,169,162,144,199,227,155,221, 53, 82,206, 93, 35,225,185,171,196, 66,145,144,207,217, - 9,207,234,167, 13, 52, 17,142,235,234,136, 94,237,170, 67,150,101,193, 48, 60,182,202,136, 41, 50, 10,141, 40, 53,241,161, 43, - 49,163,184,220,138,142,190, 10, 28, 59,254,189,129,181, 25,119,212,167,197, 23,138, 52,237, 3,253,240,191,247, 87,195,104,102, -145,152,165,135, 72, 34,241,246,242, 14,191, 60,253,133,215, 37, 47,109,190,133,167,135,186, 99,254,239,183,178, 12, 58,233,235, -206,156, 89,150,101, 97, 52, 89, 68,186,130, 98,215,178,242, 10,181, 76, 42, 49,122,186,105, 10,234,251,172,201,201,136, 86, 53, -114,169, 0,227,250,120,195,100,157, 10,163,217,142,211,191,236,161, 79, 4, 10,133, 66,161, 80,254,160,193, 9,164, 29, 50, 90, - 74,185, 20,132, 47,197,239, 49,183, 16, 28,214, 5, 91,247,159, 71,135,206,125,144, 83,110, 7, 1,175,201,222,134,213, 44,124, -195,120, 17,192,197,241,227,229,126, 15, 62,232, 59,156, 16,225,207, 27, 54,149,101, 2, 64,219, 78,149, 50, 28, 71, 64, 8, 64, -184, 74,195,229, 48,140, 32, 45, 37,167,172, 77,160,183, 2,215, 50,173,102,133, 68,196,115, 85,136,249,158, 26,177, 72, 36, 16, -128, 37,140, 57, 39,231,150,153, 1, 82, 29,145,171, 91,117, 40, 87,250,252, 52,108,226,138,252,212,244,210,232,142, 69,134,174, -165, 86, 49, 8, 1, 58,250, 42, 16,119, 54,146,213,101,221, 76, 52,234,110,108,172, 79,139,227,192,183,218, 57, 92, 78, 42, 69, - 73,133, 13, 37,122, 43,250, 15, 25, 39,234, 31, 49, 30,191,199, 21,128,179,219,176,252,243,200,114,150,216,166, 0,215,109, 78, - 28, 52,239,220,197,171,126,249,197, 21, 18,161, 64, 80, 18,210, 33, 32, 89, 44, 18,218,203,202,202,196,183,127,138, 15,133, 76, -140, 34,189, 13, 0,108,206, 94, 61,165, 21, 54,236, 63,155,139, 3,123,118, 66, 38,147,129,208, 27,138, 66,161, 80, 40,148,218, -248,160,114,250,157,200,170,117,141,249,114,104, 82,105,150, 35,240,112,119,131, 84,161, 70,138,206,138,114, 70,139, 98, 3, 1, -203, 86, 70,180, 26, 9, 60,213, 59,187,247,254,253, 57,153,251,246, 21,108,217,191, 63,167, 86, 67,239, 63, 34, 89, 53,107,142, - 56,172,201, 16,246,216,254, 67,191,149,142,239,237,233,202,227,243,141, 34, 33,207, 44, 16,241,173, 34, 1,207, 38, 18,240, 44, - 94,106, 33,255,183, 3,187,196,132,193,111, 77,105,154, 76, 38, 68, 68, 68, 96,244,232,209,152, 48, 97, 2, 30,126,248, 97, 4, - 5,133,106,121,124,198, 66, 24,142,243, 20,151,163,189, 39, 3,129, 41, 3,191,236,250,200, 16,119,106,239,101,214,108, 26,135, -219, 45,231, 31,154,132,112, 69,165,102,152,172, 44,138,245, 86, 20, 87, 88, 97,247,236,139,189,167,179, 97,180,176, 72,139,249, -222,152,159,155, 57,215,156,119, 51,165,137, 83,241,218,237,255,146,204,103,158,154,145,175,146,242,110, 14,232,119, 95,190,135, -187,155,157, 97,254,136,188, 50, 12, 3,169, 90, 11, 87, 23, 21, 82, 46, 30,194,209,229,195,140, 0,222,116,164, 60,107,163,150, - 11, 48,190,183, 55,198, 77,154,138,206,125, 70, 58, 98,172,233,140,246, 84,147,106, 82, 77,170, 73, 53,255, 75, 84,207,113, 88, -189,118,108,100,248,106, 3,212,206, 71,129, 14,190, 10,152,172, 90,152, 44, 44, 42, 76, 44,202, 12, 86,148, 25,108, 72,201, 53, - 32,110,127,203,115, 88, 25,197,170, 28,241,147, 16, 0, 76,165,193,115, 52,122, 34,182, 90,222, 95,181,252,195, 71,118,117,239, -102,121,105,140, 79,235,216, 20, 75, 54,195,240,140, 60,190,192,230,166, 18, 8,227,227, 99,243,207, 68,253, 52, 80,106,103, 31, - 55, 52,162, 99,183,219, 75,125,125,125, 1,220, 62, 5, 79,104,123,217,132, 83,145,175,181, 29, 52,126,185,231,199, 75, 22, 26, -120,124, 17,199, 8, 68,113,172,205,184,211,168,187,177, 1,141,216, 15,158, 72,122,253,220,165,107,125, 92,220, 90,227,102, 86, - 5, 42, 76,118, 88,237, 28, 92,149, 34,100, 94, 57, 98, 77,137,143,254, 78,159, 29,187,181, 25,197,182, 35,225,122,156,223,168, - 81, 35, 31,234,211,167, 47,127,241,226,183, 16, 28, 28, 12,163,209, 8, 30,143,135,214,109,218, 35, 37,225, 18,206, 70,190,207, - 26, 10, 83, 55, 2,120, 15, 64,190,179, 95, 82, 80,102,193,161,232, 60, 68,254,248, 45,248, 66, 49,189,157, 40, 20, 10,133, 66, -185,147,153,117,214,155, 29, 50, 90, 38,147, 41,229,254,136,113,224, 56, 2,150, 0, 28, 91, 21,121,226,254,136, 62,177, 54, 83, - 74, 75,115,199,113,236,249, 79, 55,111, 25,221,189,215, 32,126,152,191, 18,101,133,185, 56,123,234, 87, 59, 56,114,198,145,253, - 11, 11, 19,245, 50,175, 14, 15, 61, 50,249,193,221, 51,158,154, 85, 50,112,200, 16,133, 86,235,109,206,204,202, 52,124,185,253, - 27,219,145,159,246, 13,228, 96,127,180,176,240,166,190, 49,157,210,210,210, 79,234, 75,151,136,149,253, 1,180,229, 11, 24,139, - 49, 63,209,169, 22,225, 5, 89, 25,147, 62,124,255,157,212,199,158,157, 39,110,231,219, 30,121,165,124,164,100,230, 34, 62,106, -159, 57, 43,225,194,143,101,153, 23,159,118, 80, 42,167,158,180, 76, 0, 31,159, 61,123, 38,124,212,168, 81, 35,135, 14, 29, 74, -102,206,156, 9, 66,128, 95, 54, 63, 79,138, 82,206,126,143,202, 40, 86, 82, 51,207, 75, 90,212,153, 75,110, 15, 15,236, 41,112, - 87, 61,141, 45,223,254,100, 3,225,210,232,253, 68,161, 80, 40, 20, 74, 13,205,111,163,149,113,189,114, 60,173, 63,155,242,220, -188,233, 91,183,126,253,193,215,219,119,245, 55, 89, 44,190, 4,162, 12,214,110, 57,161,103,177,216, 81, 13,163,238,102,180,187, -123,199, 78, 95,126,254,233,155, 95,110,249,108, 16, 56, 54,132, 1, 82, 9,131,223,164, 54,118, 70, 83, 38,171, 81,179, 84, 80, -190,105,248, 67, 43,141,133,133,250,175,157,221,215, 88,120, 35,151,199,183,182,222,180,230,253, 21, 60, 30,127, 4,203,114, 66, -142,181,221,100,173,166,143,140,249, 55,246,195,225, 86,110, 40,106,100,219, 85, 0, 87,143, 31, 63, 62,224,248,241,227,189, 0, -124,130,202, 57, 20,163, 91,114, 94,204,133,229,195, 94, 89,248,202, 47, 11,192, 4,112, 28,129,157,229,210, 68, 70,195, 48,122, - 79, 81, 40, 20, 10,133, 82,195, 76,220, 57,104,169, 99, 17,173,191,138,226,226,164,114, 20,227,165,150,234, 20, 22, 38,234, 1, -220,209,115,207,208, 66,221,184,196,178, 31,144, 88,246, 67,115,247,175,200, 75,206, 7,146,103,180, 48, 27,142, 52,100,255,189, -106,185, 43, 20, 20, 92,175, 64, 1,122,211,123,136, 66,161, 80, 40, 20,167, 13,151, 99,141,225, 41, 20, 10,133, 66,161, 80, 40, - 77,154,172,218,107, 0,149,109,207, 27,234, 57,224,204,204,220,205,233,125,112,140,106,182, 88, 83, 8, 64, 12, 64, 9,160,169, - 42,205,145,168,154,175,145,150, 39,213,164,154, 84,147,106, 82,205,123,168,217,148,246, 49, 80,254, 84, 3, 70, 53,169, 38,213, -164,154, 84,147,106, 82,205,255,158,230, 63,153,153,245, 44, 0,254, 70,109,180, 40, 20, 10,133, 66,249,171,112,119,239,168, 4, -106,218,245, 54,137,220, 35,212, 11, 0, 12, 5,215,117,180,244, 40,245, 80,123,158,195,187,210, 70, 75,200, 19,136, 95,145,171, -220,175, 43, 52,238, 89,255,241,194,101,130,218, 40,230, 12, 31, 24,184, 55,184,173,108,130, 51, 59,202, 61,131,190,242,110,223, - 59, 93,161, 13,154, 3,159,238,178,150,100, 66,161,109,235,169,108,221,243,148,202, 55,252,129, 63,225, 24, 37, 97, 97, 97,125, -195,194,194,250, 2,144,220, 13, 65,185, 54,104,170, 95,135, 62, 81,218,118,221,126, 85,120,117,156,124,183, 51,172,244,233,224, -174,108,221,227, 7,101,171, 46,197, 74,159, 46,101, 74,191, 30, 39, 84, 30,161,237,154,218,175,245,248, 15, 67,222,221, 25,183, -179,245,248, 15, 67,234,219,238, 58,106,173,234,237, 93,137, 75,220,199,125,164,164,207,149,230,209,186,255, 84, 23,159, 65, 11, -220,157,221,207, 55,168,207,213, 54,225, 3,242, 90,117,236, 29,231,232, 62,126,193,125, 47, 6,132,245,215,249, 5,245,141,166, - 37,239, 24, 82,207,182,125,165,174,254,145, 18, 87,255,159, 36,110,109,135,180, 84,207,199,199, 71, 22, 18, 18, 50,170, 79,159, - 62,207, 13, 27, 54,236,229,110,221,186,205, 12, 8, 8, 24,113, 47,127,232,203,181, 65,111,152,133, 76,129, 89,200, 20,200,181, - 65,111, 52,253,124, 13,254,128,225,177,217, 12,143,205, 86,104,131, 63,248,187,156, 43,137, 87, 80,128, 92, 27,180, 90,229, 29, -118, 94,166,237, 56,206,217,253, 93, 93, 93, 71,120,122,122, 78,172, 94, 92, 93, 93, 71,208, 59,160,217,212,142, 98,181, 56,162, -197, 23, 74,228, 39, 31,123,234,197, 78,203,222,121, 93,186,102,203, 94,172, 89,178,240,154,185,162, 36,236,239,120,228, 30,109, -123, 69,243,121,124,191,218,105, 44,199,102, 22, 36,159,239,121, 55,244,131,219,200,158,126,243,213,233,243,167, 62, 18, 17, 16, - 49,118, 46,115, 35,217,184,207,113,139,134,174,223,253,240, 99,235,168,223,126, 93,187,101,203,230,247,242,237,193,171,133, 18, -193,167,101, 25, 87, 75,156,201,131,218,179, 93, 91,129,194, 35,234,254, 9, 47,122,199, 28,251,102, 43,107,225,134, 27, 10,106, -205,254,221,124, 60,219,183,111,127, 31,159,207,119,159, 51,103,142, 8, 0, 62,254,248,227, 14, 44,203, 22,222,186,117,235, 2, -154, 49,248,105,165,193, 12,158,254,201,138,119,191,126,224,129,209,200, 46,168,192,242,213,235, 7, 31, 62,248,221,195, 21,186, -196,239,239,198, 57,113,113, 9, 84, 67,164,186, 50,247,213,247,180,163, 6,223,199,215,155,236, 56, 28,117,105,192, 55,235,223, - 59, 15,132,246, 42, 47,184,222,224,152, 98,156,161,116,145,151,146,140,226, 12,165, 0, 48,245,142,151,189,210, 22,225, 41, 99, - 71,249, 72, 4,151, 10,129, 38, 39,125,116,105,211,255,136, 80, 34, 9,224,241,120,224, 49, 0,143,199,128,207, 48,149,243,132, - 90,141,105, 89,241,191,143,252, 59,220, 39, 42,255, 94,185,224, 11,220,121,204, 31,249, 99,120, 85,107, 66,202,114, 19, 79,186, -223,133,175,209,116,234,224, 18,222,191, 67,197,151, 39,146,139, 20,130,129, 47, 71, 50,132,247, 89,250,239,171, 47, 59,100, 0, -164, 82,215, 3, 7, 14,120,142, 26, 53, 74,163, 13,159,112,194,145,125,196,124,125,216,193,131,251, 69,163, 70,141,116,226,250, - 12, 26, 14, 30,111, 59, 3, 8, 57,142,124,204,231,200,119,250,194,132, 91,128,115,179, 79,201,180,193, 79,243, 64, 28,126,206, -112, 96,162,141,121, 55,182, 52,183,112, 5, 18,245, 48,161, 72,244,114,219,160,206,221,179, 82,111, 70, 87,232,203, 87,219,205, -165, 39,156, 22,178,217, 95, 57,246,123,204, 3, 2,161,144, 25, 53,172, 55,223, 12,252,218,146,147,238,229,229, 53,113,221,186, -117,237,250,246,237, 11, 0,176,219,237,234,221,187,119,123,191,255,254,251,138,132,132,132,230, 78,156,234,235,233,233,233, 47, - 22,139,125, 1,192, 98,177,100,229,231,231,167, 3,104,242,135,191,194,171,157, 7, 8,222,251, 61, 42, 74, 0, 0, 3, 6, 12, -252,192,255,254,217,174,124,145,210, 88,111,113, 88,202, 21, 37,183,126,157,119,246,220, 25, 6, 0,250,244,238,251,186,220, 35, -244,211,123, 25,217,146,106,131,123,243,128,249,125, 6, 68, 76,154,242,232,116, 94,120, 71,127,140, 24, 62,244, 53, 35,112,192, -169,107, 70, 32,144,157, 63,127,190, 61,143,199,227,219,237,118, 83,159, 62,125,210, 91,146,175, 86, 65,125, 79, 51,224,181,182, -218, 45,159,231, 39, 69,127, 0,220, 49,113, 12, 95,211,186,251,155,224, 11,158,229, 56, 46,163, 60, 61,186,223,191, 48,162,117, -103, 57, 59,171,196, 19,136, 95,158,250,228, 11,157,230, 45,248,159,116,238,154,227,136, 92,255,122,193,223,213,100, 1, 0,159, -199,247, 59,114,244,136, 86, 46,230, 3, 0,244, 38, 59, 30, 24, 53,170,233, 55, 66,155, 94,191,241, 24, 38,184,122, 66, 27,214, -110,149, 10,132, 98, 19, 83,105,144,192, 0,240,104,213,230,184,151,253,164,124,234, 35, 17, 1,219,119,253,156,153,158, 89,232, -244, 67,141,225,139,208,103,224, 8, 68, 12, 31,169, 57,127,238,244,123,155, 55,110,120,195,110,181,109,224,108,220,106, 83,209, -205,236, 38, 31,230,222, 29,123,136,149, 30,135, 39, 61,247,190,187,137,231,134,197, 75, 62,241,136, 58,180,227, 68, 86, 70, 87, - 46, 45, 45,195, 68, 24,230, 90,113, 81,206,203, 21,185,183,110, 56, 90,100, 74,165,178,157, 82,169,236,218,165, 75, 23,233,194, -133, 11,133,131, 7, 15,254,195,178,207,156, 41,250,237,183,223,124, 86,174, 92, 57, 58, 54, 54,214,164,215,235, 47,235,245,250, - 36, 56,209,208,222,219,219,115,246, 67, 15,142,195,208, 73, 47,130,229, 24,204,124, 97, 30,142, 28,218, 51, 11,192, 93, 49, 90, - 54,185,250,253,103,159, 91,232,217,231,190,110,252,247,118,220,128, 76, 44,192,200,158,193,204,147,115, 22,185,108, 89,251,222, - 23, 40,192,160,250, 34, 89,156,161,116, 81, 39, 15,203,163,227,251,182,197,254,157,150, 71, 49,236, 85,240,228,154, 15, 50,246, -255, 47, 30, 0,218,141,154,163,146,176,249,235, 90,185,240,181, 18, 54,127, 93,187, 81,115,142, 37, 29, 94, 87,222, 88, 94,132, - 18, 73,192,206, 29, 59, 58,186,170, 68, 16,240, 24,240,249, 12, 4,124, 30, 76, 22, 22, 15, 63,242,232, 93,187,204,101,218,142, -163,121,192,147,149, 47,108,124,101,204, 75,252,201,153,115,194,240, 69,238, 7,247,255, 40,208,106, 36,224,243, 25,240,121, 0, -159,199, 32, 85,103,196,211, 79, 63,169,105,169, 97,127,160,191,246,190, 87,166, 4,143,236,211,201,173,203,183,103, 24, 77,159, - 7,166,184, 23,152,228, 79,236,218,247,235,163,100,192,188,115,132,112, 43, 50, 79,126,114,180, 49, 17,179,217,172, 27, 57,234, - 1, 53, 35, 80,200,143,237,221, 58, 80,192, 99, 96, 99, 9,236, 44, 1, 91, 53, 55, 42, 83,245, 11,134,199, 99, 64, 56,130,103, -159,125, 26, 35, 71, 61, 96,224,236, 92,166,227, 15, 57,222,246,195,199, 78,121,154,109, 28, 86,174,219,242, 94, 69,105,254,123, -201,241,238,169,250,210,130,121,198,188, 68,135,231,193,224,129,244,204, 72,138,123,110,199,193,179,232, 20, 22, 10,150,171,204, -103,176,159, 2, 59, 34,207, 34, 36, 56,164, 50,223, 28,249, 63,123,103, 29, 29,197,245,183,241,103,214, 53,238, 9,193, 3,193, - 18,220,221,139,107,209, 66,113, 90, 74,141, 34, 45, 45, 80,180, 20,167, 64, 11,148, 82,160,184, 7, 11, 14,165,104,128,144, 0, - 73,136, 19,223,216,186,239,220,247,143, 77, 40, 18,217, 0,125,251,107,123, 63,231,236,217,204,100,247,217, 59,115,103,238, 60, -247,123, 13,181, 3,229,104,214,180, 25, 0,188,150,209,226,137,156,190,233,208,123,244,130, 62, 67,199,193,219,203, 11, 28, 98, -233,115,238,196,111,125,126,217,248,253, 23, 86,131,106, 69,133,196,136,237,217,115,129,176,236, 27, 71,157,252,253,253,189,154, - 53,251,115, 58, 70,171,213,138,106,213,170, 33, 61, 61, 61,248,117,234,105,126,126,126,189,231,205,155,231,221,171, 87, 47,190, -175,175, 47, 0, 32, 43, 43, 43,224,244,233,211,141,231,205,155,151,147,153,153,121, 2,101,204,232, 99,179,112, 4, 28, 30,184, - 98,177,212,126,140, 96, 56, 51,166,189, 23,234,227,231,111, 44,233,243, 10, 69,150,112,230,135, 23, 25, 30, 79, 80,244,121,112, - 8, 97,153, 50,162, 68, 93,249,124,126,137, 45, 20,102,174,115, 75,194,119,153,192,225,114,236, 23,171,213,162, 40, 72,189, 91, -183, 2,145,184,250,124,161, 96,211,224, 97,227, 90, 15, 25,212, 31,126, 94, 46, 56,247,123, 36,166, 76,251,204, 98, 53, 91, 86, -189, 86,225,193,229,242,114,114,114,146,221,220,220,124,223,252,121,203, 84, 63,123,230,148,247,185,243, 23,102,175, 92,179,110, -170,217,100,181,176,132, 60, 91,199, 88, 34, 17,241,187,245,121,215,217,187,102, 75,241,186,121, 19,248,255,194,136,214,230,183, - 98,180,132, 18,167,119,191,158,249,145,120,225,174, 27, 56,177, 97, 74,174, 78,149,235,245,172,166,224,236,122, 87,171, 42,108, -252, 58, 41,148,123,213,110,197,112,121,147, 25, 46, 87,198,112, 24, 33,107, 99,159, 90, 77,166, 69,250,188,184,204, 55, 61,122, -150, 37, 56,248, 71, 78,197, 12, 16, 65,208,206,189,135,189,125, 92, 69, 48,152,109, 24, 54, 98, 52,118,236,216,225,228,229, 34, -132,193,100,197,247, 43, 87,170, 53,201, 39,188,147,159, 22,164,119,237,251, 89,120, 66, 82, 78, 84,106,166, 97, 95, 69,211,102, - 52,219,160,210, 89,161, 51,114, 80,171,126, 51,124,191,170,142, 56, 53, 37,241,179,237,191,108,157,254,240, 33,119, 7,203,229, - 44, 48,100, 62,122, 90,226, 77,231,219,160,135,179,155,199,238,129,147, 23,187,198,229,240, 64, 96, 70,188,179, 24,239,142,157, -238, 92,195, 87, 2,153,152,235,154,152,146,238, 55,227,139, 47,126, 79,176,145,230, 42, 69, 66, 98,121,233,169, 90,181,234,160, - 62,125,250, 72, 63,255,252,115,126, 96, 96, 32,126,249,109,127,149,118, 61,134,246,205,200,204, 14, 36,132,192,199,219,251,233, -196,247,135, 30, 63,121,242,100,202,211,167, 79,249,203,151, 47,111,113,248,240,225,122, 89, 89, 89, 14,215, 76,109,132,192, 96, -180,193, 86,244,128, 84, 40,141, 21,246,167, 1, 1, 1,162,244,244,116,227,115, 81, 6,230,207, 64, 33,211,163, 75,135, 22,188, -159, 78, 37, 65, 99,176, 65, 38,230, 35, 41, 91,135,166,141, 66,152, 45, 54,107,195,146, 4,199,191,219,123,174,143,156,244,236, -215,170, 58,188,221,164,216,246,195, 98, 28,187,158,216, 51, 91,195, 96, 61,225, 78,246, 19,241,186,201,216,204,245, 29,155,214, -244,237,220,164, 10,110, 55,173,233,123, 37, 34, 38, 86, 50,116,229, 71,233, 26,254,185,130,211,211,213, 37, 23, 60, 28,184, 59, - 9,240,243,153, 20, 72,197, 60,200,196, 60,200, 68,246,119, 14,135,121,179, 90,173, 95,221, 64, 46,107, 27,207,229,242,198, 15, -127,119,168,255,200,225, 67, 9,184, 28,236, 63,120,188,255,174, 93, 59, 51, 45,102,211, 86, 27,135,251,115,105,215,207, 11, 39, -148, 3,120,187, 8,241,197,214, 40, 56, 75,248,112,146,242,225, 44,229,163,115,168, 23,184,175, 63, 9,140,219,148,254, 53,122, - 77, 25, 88,181, 83,112,101,121,173,251,241,202,135,227, 23,221, 89,115,169,176,211, 39, 63,172,174,231,161, 41, 52,241,190,153, - 49,145,151,150,145,209,105,255,241,203,157,109,166,113, 49, 86,179,246, 75, 69,228,254, 18,163,194,105, 49,215, 27, 7,180, 28, - 34, 54,107, 44, 15,238,199,164,213, 44, 48,138, 16,157,172,130, 76,204,131,188,248,220,138,121,144,137,249,144,139,121,200, 72, - 75, 66,190,150,251,123,186, 7,167, 19, 46, 95,183, 86, 36,225, 6,179, 13,247, 18, 53,168, 26,220, 8,126,126,254, 48,245, 26, - 85,245,230,133,131, 71,111, 93, 62,178, 84,151,245,248, 75, 71,117,126, 11,187,129,217,159, 78,142, 96,128,187, 69, 15,233,198, -223, 44,219,208,228,219,217, 31,190,176,111,198,130,117, 77, 94, 63,146,229, 52,183,243,192, 15, 22,180,235, 54, 16,234,252,108, -252, 17,190, 15, 61,250, 12,198,168,113, 31,195,213,213,243,251, 85,139,102,222,183, 26, 85, 23, 94, 41,115,125,235,180, 13,105, - 80,119, 87,128,191,127, 32,203,218, 87,249, 32, 4,208,168,149,152,249,201, 68,176,132,160, 97,227,230,157,197,237,186, 17, 82, -180, 26, 72,110, 94,174, 54,230,241,195,174,134,156,152,155, 14,159, 75,131,193,162, 80, 40,112,239,222, 61,196,198,198, 34, 58, - 58, 26,121,121,121,112,113,113,209,104,181,218, 10, 5,239, 67, 67, 67, 71, 94,184,112, 65,236,230,230,246,108,167,201,100,130, -147,147, 19, 70,142, 28,201,239,222,189,123, 64,239,222,189,199, 68, 69, 69,253, 6, 64, 85, 98,122,242,159,100, 56,249, 4,255, -216,161, 99,135,169, 0, 32,113,246, 75, 92,255,203,241,232, 50, 43,180, 46,254, 85, 90,183,110, 83, 19,132,128, 1, 89,171,203, -139,205, 42, 35, 74, 36,187,113,227, 70, 13, 46,151,203,251,243, 25,196, 98,227,182,189,117,206, 94,125, 48,104,217,247, 43,196, -206, 50, 17, 20, 74, 19, 38,140, 26,232,240, 51, 88,226, 19,220,171,117,235,246, 71,191, 93,240, 53, 79, 46,147, 33,252,102, 2, - 62,250,228, 11, 67,102,114,212, 10,194,242, 55,232, 20,177, 57,111,248,168, 36,120, 11,212,170, 36,135, 83,191, 30,226, 41,239, -245, 19,155, 44, 54, 20,106, 45, 48,154,109,176,177, 4, 74,173, 5, 15, 83,213,240,116,174,248, 82,110,132,144,102, 0,188, 0, - 40, 24,134,185,253,252,118,113,133,174,216, 27,191,180,157, 91,244,124,240, 0, 96,130,125,164,254,179,203,167,104,187,180,253, -197,223,127, 8,160,110,145,166, 13,192, 45,134, 97, 10, 74, 49, 91,175, 68,185,120, 97, 97, 97,164, 79,159, 62,207, 74,252,151, -183, 95, 70, 36,224,251,203, 92,188, 64,200, 35, 60,191,128,177,183,111, 64,222,138, 85,107,220,167,125, 48, 57, 69, 85,152, 95, -165,104,247, 57, 71, 30, 22, 60,134,187,170, 67,155,150,221,167,126,240, 1,130,107, 84, 18,216,108, 54, 18, 21,155,104,217,254, -243,182,177, 87,174, 11,215,168,210,162,230, 62, 23,130,172,208,176, 79, 27,107, 75,123, 57,130,101, 99,109, 47,215,110, 95,209, -100, 24,192, 85, 46,196,143,167,146, 64, 8,192,128,192, 69,198,199,158, 75,105, 72,140, 56,164,234,211, 80,165, 29,185,108,126, -231, 78,189,166, 95,120, 24,111,216,151,147, 99, 56, 3, 32,171, 44,205,146, 11,116, 22, 70,179, 13, 22,171, 21, 7,142, 31, 71, -207,206, 45,208,186,117, 11,180,111,215,154,119, 39, 34,114,220, 7, 83, 39, 6,226,207,209, 29,207, 52,197, 62, 65,205,228, 46, -158,251, 6, 77, 93,238,244, 32,205, 10, 30, 23,168,238, 43,129,187,147, 0, 38, 43,131,100,133,185,232,206,113,197, 71, 51,218, - 68,194,144, 0, 0, 32, 0, 73, 68, 65, 84, 22,184,207,254,108,234, 73,149, 66,216, 0,120,100, 46,235,216,117, 58,157,112,244, -232,209,124,139,197, 98, 30, 57,225,227,238, 89, 89,138,254, 27,215,126, 39,242,246,246,129,206, 96, 69, 68,244,147,186,223,126, -187,160,250,241,211,151,142,204,255, 98,202,209,158, 61,123,186,236,221,187,151, 45,239,124,190, 80, 67,204,206,253, 97,219,174, - 3, 59, 86,175, 88,130,152,148, 2,252,252,211, 6, 16,155,245,199,114, 78,213,243,154,100,244,232,209,146, 35, 71,142, 84, 74, - 75, 75, 83,233,116, 58,197, 11,241, 8, 14,195,203,206,215,193,211, 73, 8, 1,143, 3, 31, 55, 49,188, 93, 68,224,115, 1, 14, -195,216, 74,210,252,121,223,137, 69,172, 78,137, 99,187, 77,195,183,253,176, 24,227,166,125,133,168, 92,225,105,142,212,101,209, -135,195, 7,205,246,146,216,122,250,187,114,188, 59, 55,169, 10,153, 88,128, 57,211, 71,163,121, 68,178,119,122, 33,251,149, 66, -207,109,180,224,244,179,197,186,207,189, 24, 28,177, 71,176,156,164,124,156,222,245,125,142, 86,169, 80, 22, 55,201,153,140,134, - 20, 7, 47,227,115, 37,212,108,103, 55, 10,169,191,120,234,164,241,156, 54,173,154, 19, 14,135,143, 92,181,137, 33, 4,248,228, -163, 41,248,112,202, 68,223,167, 25, 57,223,108,216,240,227,220, 11,103,201, 66,173,226,241,252,178, 52, 57,140, 61, 10, 36, 23, -243, 32,151,216,141,139, 92,204,131,193,100, 3,195,128,235, 90,185,177,146,177, 71,114, 51,242, 83, 74,173,129,191,160,233, 94, -185,254,249,179,137, 78,117, 10,246, 21, 92, 79,202,136, 94, 20, 17,153,125, 11, 64,126, 96,123,215, 49,102, 43,129,198, 96, 69, - 82,182, 14, 86, 51, 97,198,189, 83, 5,213,134, 48,193, 75,182,221,221,113, 42, 18,206,207, 21,250, 47,104,166,223, 56, 96,240, -104, 48,112,216,234,117, 63,221, 94,177,248, 43,110,174,210, 4,150, 16,136,133, 92, 72,132,188,162, 23, 23,122,173, 18, 27, 54, -109,201,178,130, 25,132,203,151,173, 21,185, 62,193,146, 81, 3,123,181,223,195, 0, 66,134, 35, 72,243,175, 82,181, 74,151,190, - 99,197, 93,250,141,134,205,106,154, 29,113,149, 92,212,229,196,156,119, 68,179, 65,189,186, 96,128,187,218,156,216, 41, 0, 32, -243,174,253, 99,157,224, 58, 77, 94,222, 23, 20, 20,220,196,145,124,127, 22, 41, 21, 59, 77,115,115,247,250, 42,184,126, 35,239, -236, 2, 35,227,228, 81, 9, 73,113,247,176,123,211, 55, 59, 89,131,105,193,249, 19,251, 22,175,249,249,240,187, 93,122, 14,196, -182,141,223,205,201,203,124,102,180,206, 61, 23,173, 26,181,125,235,230, 64,190, 80, 4,139,149,133,197, 70,236,239, 86, 27,242, -243, 11, 96,177,178, 16, 75,157, 96,101, 25, 88,108, 44, 44, 86, 22, 70,147, 85, 54,101,116,239, 15, 12,192,205,146,210, 25, 80, -167,195, 25,129, 72, 84,133,192,190,118, 45, 33, 4, 73, 89,122,142,159,159,223,111, 0, 32, 18,137, 32, 18,137,192,178, 44, 34, - 98, 20,211, 60,131,107, 79, 69,145,193,179,153, 77, 41,133,201,215,122,148,118,236,190,190,190,125, 95, 54, 89, 6,131, 1, 26, -141, 6, 87,175,223,118,217,186,227, 64,207,164,148,180, 26, 44,113, 49, 58,121,215,232,161,206, 73,232, 91,218,249, 84,103,199, -124,224,220,114, 34,231,243, 15,199, 4,173,219, 30,118,235,201,153, 69,101,246,211,170,214,101,150,233,243,201,131,155, 46, 91, -251,115, 92,193,181, 31, 63, 45, 47,143,120, 60, 30, 95,161, 80, 60,187,191,215,111,217,221,244,110, 76,250,128, 53,171,215,136, - 35, 18,212,120,144,148,129, 49, 93, 43,219,107, 56, 14,228,187,204,167,134,103,245,154, 53,127,219,176,118, 25, 47, 46,195,128, - 31, 14,221,194,133,163, 63, 94,205,202,185,217, 19,217,153,250,215, 41, 67,222,130,209, 42, 85,243, 98,100, 46, 52, 6, 43,140, - 38, 43, 44, 44,129, 74,103, 65, 78,161, 9, 42,157, 25, 26,189, 21, 99,186, 85, 46,241,123,229,248, 17, 47,134, 97,194, 8, 33, -125, 8, 33, 93, 1, 8,139,183,237,207,108, 38,172,200,144,189,176, 61,123,246,236, 47,151, 46, 93, 26, 93,252,217,226,253,197, -159, 45,107,255,115,223,247,152, 51,103, 78,131,101,203,150, 45,105,213,170,213,158, 63,254,248, 35, 17, 64,129,163,205,135,188, -231, 15, 38, 44, 44,172,188, 19, 93,195,108, 49,139,156, 37,124, 84,175, 86, 25,239,127,185,205,243,215,101,227,115,196, 66, 30, -247,212,169, 83,238,121, 38, 57, 56, 28,174,195, 85, 20,185, 87,173,214, 2,129,240,196,202,149, 43, 49,188,111, 59, 73,106,174, - 69, 19,153,170,207,214,154, 96,245,246,170, 45, 92,180,100,153,124,217,242,239, 63, 12, 59,198, 22,106,178, 31,126, 95,114, 19, - 95,211, 59, 92,230,185, 62, 88, 12, 3,194,218,210, 10,146,111, 55, 5,128, 55,233,139,165, 49, 88,192, 45,234, 91,195, 48,128, -206, 96, 5,151,203,228, 20,198,236,123, 56,114,225,162,206, 59,247,156,205, 32, 28, 87,181, 86,155, 36,133,125,205,193, 10, 99, - 48,217, 96,180,216, 16,125, 63, 2,237, 91,214, 67,235,166,117,160, 51,216,160, 51, 90, 81,173,102, 48, 0,120,150,152,113, 92, - 78, 34,177, 89, 12,132,216,156,250, 52,243,130,183,171, 16,126,110, 34,136,132, 60, 88,172,128,222,196,194, 96,178, 33, 57, 71, - 15,181, 94,130,144, 14, 67,171,123,248,221, 49,102, 37, 75,142,228,167,222, 25, 84,166, 57,181,217,176,253,183, 3, 65, 25, 25, -217,253, 79, 30,217, 37, 82,168, 44,136, 76,214, 34,167,208, 8,112,189, 48,111,201, 15,162, 89,159, 78, 26,176,125,247,193,148, - 46,237, 90,164, 84,244,152,117,138,152,157,251,246, 31,248,177, 79,159, 1,146,232,155, 39, 17,119,239,252, 98,109, 78,133,250, -103,113, 26, 54,108,104,157, 52,105,146,122,201,146, 37,129,199,142, 29,171,166, 80, 40,238, 1,176,184,186,186,214,169, 29, 84, -229,126,248,233, 83, 1,189, 7, 12,229,167,229,234,225, 34, 21,160,138,183, 20,215,175,158,177, 8,133,252, 18,251,155, 20, 53, - 15,142, 64,151,153, 56,118, 61,177,103,116,158,248,210,196,241, 99, 82,194,175,196,228,173,223, 17,254, 93,128,220,114, 79,204, - 42,214,223,105, 90,211,119,246, 71,163,177,116,221, 78, 92,142,136,201,209,114,252, 22,103, 26,173,103, 75, 15,165, 3, 60, 46, - 3, 39, 9, 31, 90,149, 66, 25,127,247,116,237,183, 20,166, 30, 19,126,100, 39, 39, 95,109,193,211, 92, 3,147,145,175,134,141, - 37,112,149, 10, 96,101, 9, 10,243,115,153, 93, 59,119,224,246,237,235, 28,112, 57, 19, 0,204, 47,243,132, 50,246,166, 66,185, -152,111,143, 8, 73,236,239, 22, 27,139,224,160,154,216,188,126,149,179,167,183, 15,218,182,119,188,111,180,147, 71,149,134,123, -126, 89,143, 75,127,220,237,120,121,205, 15,205,228,254, 94,235, 24,198,182, 2, 4, 6,163,217, 6,101, 97, 1,132,166,167,104, - 30,160,128,187,212,134,100,149, 31,162,178,226,228,229, 21,248,121, 81,135,239, 49,100,192,220, 3,199, 47, 44,237,209,173, 35, -162,146, 85,144, 8,121, 16, 11,185, 16, 11,185,224, 51, 54,172,218,244,163,165, 64,169,238,147, 23,125, 52,247, 53,174,207,115, - 69,181, 95,187,185,179,105,188,118,174,155,251,235,196,153,203,123,244, 28, 56,150,137,186,125,241, 75, 29,112,222,177,138, 30, -113,104, 31,203, 58,254,140, 19, 59,121,174,157, 62,107,209,244,238,125,134,130,203,229,193, 98,177,224,224,222,157,248,229,135, -121,143, 77,154,188,177, 0, 88, 83, 14,119,210,190,157,155,134,206,252,102, 21,211,160, 97,243, 22, 23, 51, 95, 93,142,150,229, - 50, 63,189, 55,126,242, 48, 31, 31, 31,167, 63, 35, 90, 4,181,131,235,161, 87,191,193, 56,115,244, 48, 30, 70, 71,130, 37,118, -195,196,178, 4,133, 5,121, 89, 86,139,105,123,169, 45, 30, 98,113,149,109,191,236,168,197,225, 48, 48, 91, 88,152,172, 44, 62, -253,224,125,211,148, 79,190,108,219,171,123,135,104, 33, 23,170,228,212, 76,215,235,119, 31,133,176,124,121,224,248, 25,171, 4, - 6,163, 13, 74,157, 5, 39,127, 46,221,235,136,221, 42,183,170,218,164,215,248, 41, 95,111, 22,137,184, 28,115,253,218,129,137, - 29, 90,214,127, 90,217,223, 83,253,237,178, 31,154,255,126,243,110,175,119, 71,142, 23,143,169,211,132,241,247,144, 56,189, 63, -114, 96,168,205,106,126, 79,151,255,180,212,249, 5,249, 82,183,194,202,213,130,116,127, 70,140,106, 31, 98, 8,170,191,224, 60, - 24, 36,234,179, 99, 7, 1,128,159,127,101, 3, 95,228,172,174, 64, 4,134, 0,192,186, 45,187,155,222,143,205,152,184,122,245, - 26,105, 68,130, 26,247, 18,148, 16, 9, 56, 48, 91, 88, 48, 14, 6,181, 89,194,157,252,213,156,217,206, 5, 90, 27, 46, 69, 42, - 16,125,231, 34, 49,105, 12, 35,165, 86,231, 65,240,118,122, 15, 64, 77, 0,241, 12, 67,126,210,102,251, 30, 5, 46, 91, 43,122, -221,179,172,189,190,236,236, 85,163,186,141, 39,234,197, 23,202, 90, 49, 12,169,207, 16,184, 1, 36, 61,191,232,153,234,168, 83, -211,102,199, 98,249,146,111,176,118,235, 97,100,228, 25,224, 98,123,138,163, 63, 47,194,231, 75,127,131,222, 88,122,175,134,242, -252, 72, 73,198,232,101,195, 85,252,119,241,231,150, 46, 93,218,231,165,188,233, 83, 74,158,189,242,185,226,239, 47, 91,182,108, -201,115,255,215, 57,106,178,158, 25,173,226,131, 42,199,108,213,246,242,171,242,199,209, 35,135,220, 10, 52,102,136, 5, 92, 84, -174, 22,132,249,235,143,122,189,211,212, 19,185,102, 23,236,222,188, 34,223,160, 83,239,117,168,176,240, 14,110, 33,145,203, 78, - 30, 58,120, 24, 53, 42,123, 11,118, 93,205, 79,186,155,168,127, 22,234, 85, 41, 82,132,213,156,117,188, 65, 3, 7, 74,207, 95, -184,248,137, 6, 40,209,104,113, 25,110,165, 45, 59, 14,122, 59, 73,248, 96, 24, 64,173,183, 98,226,123,131,223,252, 49, 70, 88, -238,248,177, 99,192, 20,153, 44, 85, 94, 22,190,156,245,129, 65,102,137,123,152,154,156,154,222,181,239,231,231, 85, 26,198, 48, -108,244, 7,183, 31,198, 46, 45,208,233, 94,111,145, 31,163,201, 6,163,153, 69, 66, 66, 60, 62, 29,211, 13,124, 46, 7, 92, 46, -107,239, 44,109, 45,253, 98,212,100,196,230,195, 87, 48,100,231,202,105, 91,252,125,188, 61,228, 50, 9,145, 75, 69, 76,253, 58, -181, 4, 45, 91,182, 22, 86, 11, 14, 21, 92,125,164, 71,170, 66,143,196, 12, 37, 68, 62,141,120,195, 59,191,131,157,107,102,116, -204, 79,189,195,193,171,157, 20, 95,224,236,165, 27,125,183,110, 90, 45,202, 46, 52,227,113,170, 6, 89, 5, 6,100, 22, 24,145, -149,111,128, 92,194, 71,251,126,147, 68, 39,142,254,212,183, 75,187, 22,235, 94,231,184, 19, 19,147, 78, 36,167,103, 14, 13,109, -220, 28, 59,127,253,165,157,171,107, 53,231,194,194, 36,149,163,185,179,104,209, 34,225,178,101,203,120,235,215,175, 87,181,108, -217,210,119,206,156, 57, 61,114,114,114,110, 85,173, 90, 53,248,204,161,237, 23, 26,181,239,223, 12,172,217,171, 93,135, 78, 2, - 17,203, 67,120, 88,152,121,223,222, 93,121,122,189,122, 74,153,134, 67,234,178, 40, 91,195,192, 43, 32, 32, 90, 46,180,117,227, -113, 10, 99, 11, 78, 79,223, 81, 0, 28,170,209,243,163,115, 23,239,196,196, 54,141, 72,246,190, 16,241, 36, 39, 95,103,174,157, -112,250,243, 50, 11, 94, 46,195,128,207,229,192, 73,194, 3,167,168, 84,149,251,135, 62, 1,195,120, 21, 71, 78, 25, 48, 69,239, - 0,195, 32,163, 32,245,158, 3,125, 54, 24,194, 18, 32, 38, 77, 11,141,193, 30,154,175,228, 41,133, 34, 59, 13, 27,215,109,199, -221, 59,183,209,253,157,126,216,176,101, 23, 38,190, 55,212, 80, 94,237,135,195, 41,138,104, 61, 23,205,146, 75,120, 0, 24, 20, -106, 45, 56,248,251, 83,212,172,206,113,248,193, 0, 0, 78,114, 41,148,106, 61, 56, 2, 39,196, 71,156,148,158,186,120,115,206, -220,133,171,191, 40,200,140, 76,125,242,224, 42,130, 61,149,168, 30, 96, 70,116,150, 51,238,228, 85, 67,112, 80, 13,112, 4,183, - 29,210,206,141, 14, 89,126,148,115,176, 79,211, 70,245, 90, 85,241,118,133,222,100, 43,138,106,113,241,203,182, 29, 72, 78, 74, - 27,159,247,240,232,221,183,225,104,181, 57,137, 10,145,119,208,135, 15,110,158, 79, 28, 56,242, 67,248, 5, 84,110, 88,152,122, -207,225,110, 11,142,236,179, 57,104,180, 4, 82,215, 57,159,126,245,221,244,238,189,135,224,198,213,243,184, 23, 29,143, 22, 45, -154,225,157, 1,195,161, 86,229,215,217,191, 99, 77, 55,171, 78,125,134, 39,178, 78,111,222,186, 51,195,218,108,136,123, 28, 21, - 95,146,150, 62, 51,230,222,245,204, 24,231, 23,154,167, 60,235, 52,148,187,184,223, 51,154,109, 72, 79, 79,195,181, 63, 46, 53, -214,103,198,220,171,200,249, 18, 9,184, 8,191,155, 3,179,133,133,217,202,162,125,135,110, 38, 1,199,216,110,241,234,109, 45, - 51, 51, 50, 57, 50,103, 79,214, 61,160,174,192, 79,100, 54,222, 79, 80, 10,204, 22, 22, 53,252,101,101,106,122,249, 7, 45,153, - 49,227,211,186, 92,129, 4,106,173,209,148,153,145,238,187,121,247, 69,205,163,199, 15, 2, 42,121,187, 56,127,183,230, 39,129, -202,192, 32, 71,105, 68,190, 90,197,140,156, 60,211,127,235, 15, 75, 71,149,101,180, 74,232, 46, 82,253, 68,248,213, 58,110, 78, - 2, 70, 99,176,178,121, 42,179,109,228,128, 55, 27,116, 89,100,178, 38,173, 94,181, 70,122, 55, 65,141,251, 9, 74,136, 5, 92, - 8, 5, 28,152, 44, 44, 28,188,157, 56,190,222,190, 83, 90, 55, 13,193,153,123,185,224,114, 57,208,171, 11,116, 60,228,197, 54, -237,216, 93,218,164,121, 75,116,234,216, 1, 79, 98, 99, 42,135, 29, 59,216,229,250,181,203, 89, 86,115,237,105, 90, 69,236,225, - 10, 5, 22,116, 58,174, 69,232,251,190, 95, 64,213, 54,131,134,191,239, 82,165,114, 0,227,237,233, 1, 43,225, 97,210,123,131, - 29,190,243,237,198, 28, 88,182,112, 14,140, 70, 19,188, 92,133, 32, 4,216,182,110, 62, 76, 38, 19,252, 61, 68, 80,106, 75, 95, - 77,174, 60, 63, 82, 90, 20,170, 66,125, 79,158, 51, 99,101,237,103, 24, 38,108,246,236,217, 95, 2, 32,179,103,207,254,178,120, -123,233,210,165,122, 0, 25,229, 52, 29,110,126,193,104, 21, 31, 92,233,119,183, 32,216,211,195,239,122,248,153,211, 46, 71,238, -179,184,113,248, 14,122,183,240,131,128,199,129,212,197, 31,247,147,148, 56,113,104, 83,225,209, 61, 63,165, 27,141,198,239,203, -111,107, 14,106, 42,151,202,206,252,186,115, 47,235,233,225,193,217, 24,174, 72,200, 83, 91,159, 53,105,197,222, 60,198,222, 57, -179,217,143,128, 57, 45, 22,139,131, 76, 38,147, 91,121, 25,187, 45, 60,165,168, 19, 47,243, 54,202, 86, 48, 92,174,109,231,174, -157,240,116, 22,194,104, 97, 49,251,139,143,245, 99,186,203, 11, 71,190, 59,188,115,167, 94,211, 47,240,101,181,206,183,110, 92, -139, 52,106,212,168,144,203,229, 58,212,149,194,219,219,123, 62,135,195, 25, 33, 20, 10,157, 76, 38,147,218,196, 26,164, 90,131, - 9, 6, 51,160,211, 25,192, 23,216,205, 34,159,203, 64,111, 48, 65,167, 55,149,125, 99,100, 69,253, 14,160,182,234,185,152,210, -249, 71, 53,132,191,237, 63,250,241,144,119,135,205, 13,104, 56, 64,158,148,169,132,128, 49,163, 89, 93, 63, 92, 60,125,152,164, - 37,199,126, 90,158,201, 2,128, 28, 69,126,160,151,151, 15,238, 38,106,144,158,167, 71, 86,145,201,202, 44, 48, 66,173, 87, 35, -180,138, 63, 10,149,202,192,215, 62,191,192,225, 51,103,206, 12,237,213,127, 24,166,127,177,160,237,207,155, 86, 68,202,132,252, -113,218,236,184, 75,142, 24,173,168,168,168,252, 89,179,102,213,220,178,101, 11,103,212,168, 81,250,144,144, 16,241,232,209,163, -219,238,216,177, 67, 44,149,138,245,247,175, 30,155, 59,225,163,217,253, 55,175, 93,212,176,160,160,128,177, 90, 44,167,204, 5, - 5,179, 53,229,152,185,167,199,190,124, 60, 47,193, 60,182, 91, 59,175, 99,238, 82, 78,125, 17, 49, 13, 71,221,249,123,241,104, -190, 57,225,244,122,181,100,232,202,143, 50, 10,217,175, 12, 28,239,197,229,153, 44, 0,224,112, 25,152,172, 54, 56, 73,248,224, -112, 56,197, 38,222,239,151,189,167,164, 94, 46, 66,240,185, 28,240,184, 12, 84, 58, 11,114, 85,102,124,248,190,163, 51,132, 16, -214,106, 35,208,155,172,208, 21,213, 14,213,170, 92,204,249,226, 51,188,211,119, 32, 38, 76,249, 12, 5,122,224, 78,162, 26,102, -139,165,220,155,130,195,112,160, 51, 90, 49,174,123, 21,228,107,204,208,234,173, 48, 89, 89, 72,133, 60,240,121, 28,200,196, 60, - 56, 75,249, 0, 33,130,226,194,132,207,231, 27, 44, 22,203,206, 50,106,244,168, 22,232, 3,189,133,131,230,195, 86,160,107,171, -218,136,254,253, 32,239,242,141, 7,213, 63,249,226, 43,124, 60,177, 47, 14, 60,174, 9,119,239, 42,144,203, 36,176, 16, 14, 0, -226, 96,135,189,249, 44,199, 60,112,196,143, 91,182,197,124,251,205,108,113,161,150,129, 72,192,197,133,243,231,112,253,230,157, -181,185, 15,143,238,196, 91,132, 79, 56, 62,206,206,206, 16, 11,185, 48,153,141, 38,199,187, 46, 16, 16,160,177,204,187,246,143, - 69, 53,254,198, 54, 22, 37,236, 43,223,104,241,196,206,179,167,125,241,237,146,238,189,135, 32, 60,236, 0,246, 31,216,107,107, -213,115, 60,119,215, 47,155,208,182,107, 63,180,237, 62, 12,167, 14,239,248, 76,203, 50,245, 38, 77,159,187,176,125,231, 94, 8, - 63,113, 0,217, 89,105, 43, 29, 77, 47,151,207, 76,239,220,173, 47, 12, 38, 27,218,117,233,131,211,199, 15,127,132,162, 65, 22, -142, 63,196, 94, 42,159,193,177,126,246,233,116,126, 78,161,137,175, 80,153,144,166,208, 33, 41, 91,135,163,123,126, 38,142,151, - 23,166,102,237, 67, 43,241, 39, 45,191,240, 52,176,146,159,145,111,212, 75, 98,227, 19,234, 76,120,127, 12,191,122, 80, 29, 78, -142,210, 8,133,210,136, 92,165, 17, 26,131, 21, 65,149,106,113, 44, 86,166, 85, 69,243,217,211, 69,200,223,112, 60, 17,206, 50, - 62, 90,215,121,253,129,182, 44,203,254,105,178, 86,219, 77, 86,100,162, 18, 34, 1, 23, 34, 1, 7, 34, 1, 23, 86, 27,113,168, -226, 34,241,174,221,235,195,105, 31,248,155,172, 64,158,210, 4, 30,151,129,183,167,155,172, 89,195, 17,216,182,226, 35, 0,192, -196, 89, 27, 49, 97,220,104,212,173, 31,130,194,130, 2,223, 17, 67,122,173, 6,112,216,209,180,158, 12,191, 84, 57,252,202,221, - 89, 31,206,152, 39,127,183,111, 39,238,189, 4, 37, 50,243,141,136,143, 85, 87, 40,242, 6, 0, 86, 27, 11, 2,130,237,123,195, - 32, 17,242,160, 80,154, 65, 8,193,162,245,251,224, 36,225, 35,179,192,222,220, 95, 22,101,250,145, 50, 34, 82, 21,136, 54,246, -129,189, 47,151,151,163, 17,173,165, 75,151, 70, 47, 93,186,180,196, 8,217,115, 38,235,245, 22,149, 22, 8,100,117,156, 61, 60, -111,132,159, 62,233,116,248,190, 13, 23,239,231, 97, 72,187, 74,208,228,167,226,251, 47,222,205,103, 64, 76, 28, 46,183,208,168, -215, 29,210,235,181,139, 1,152,203,188,104,124,107, 55,150,137,229,231, 54,108,254,213,234,233,237,141,157, 87,243,211, 10,180, - 86,203,159,205, 86, 22,230,206,153,205,213,173,172,165,167, 33,251,201,237,242,106,226, 44,129, 96,233,166,163, 0, 8, 88,150, - 5, 97, 89,240,197,114,153,103,141,150,217, 69, 5,157,152,199, 97, 12,207,151, 0,132,181,166,229, 38,150, 29, 6,101, 0,184, - 72,249,216,123, 57, 29, 0,178,185,234,136, 71, 35,223,181, 55, 23, 26, 76, 98, 85,253,154, 53, 73,179,102,205, 10, 37, 18,135, -166,191,226,250,248,248,220,154, 59,119,110,157, 9, 19, 38,136,132, 66, 33,172, 86,171,251, 79,155, 55,179,155, 23, 79,196,160, -143, 54, 64, 32, 20, 65,111, 48,131,207,231,161, 64,169, 65,161, 74, 7,181,206, 82,241, 43, 40, 33,193,164, 0,150, 31, 57, 44, - 28,216, 67, 30,218, 92,200, 17,160, 73,176, 31, 46,158, 57, 66,110,156,222, 54, 81,159, 19,251,171,131, 23, 34, 52, 6, 11, 50, -242, 12, 72,207, 51, 32,171,192,128,172,124, 35,178, 10, 12, 96, 24, 6, 6,147,245,141, 30, 92,218,156,152,253, 59,127,221,218, -207,104,198,240,246,221, 7,226,179,121, 27,170,236,252,113,217,185, 68,194,105,227, 96, 71, 91, 91,116,116,116,242,251,239,191, -223,112,247,238,221,220, 6, 13, 26,232, 31, 61,122, 36, 45, 50,145,102,185, 92, 42,249,249,135,165,103,154, 55,111,190, 39, 61, -246,241,133,162,246,244,114, 11,246, 42, 29,198,138, 36,230,187,147, 42,203, 90,247,168,225, 43, 69,101,153,186, 71, 29,249,253, -239,243, 58,127,188, 68,113, 97,109, 78,166,209,122, 86,161,231, 54, 74,215,240, 29,234,131,103, 49, 26, 82, 6, 13, 25, 14, 46, -195,129,217,160, 75, 41,190,184,188, 93,132,152,191,235, 49,228, 98, 62,156, 36, 60,200, 37,124,180,173,231,142, 10,148,103,196, - 98, 99,161, 51,218,160, 55, 90, 97, 48, 89,225, 25,232,134, 45, 59,247, 35, 53, 71,143,163,183,115, 17,147,162, 70,173, 74, 50, - 16, 82,126, 49,201,218, 44,218,190,131, 71, 57,113, 57, 12,184, 28,134, 83,175, 78,109,228,107,204, 16,240, 56, 16,136, 37,144, -137,120,112,150,240, 33, 16,240,145,147,147, 3,163,209,136,202,149, 43,139,203,182,130, 4, 78,114, 9,106, 85,247,135,217, 98, -197,201, 43, 15,177,248,211, 65,232,214,190, 41, 24,190, 28,143,141,141,225,228,238, 4,150,195,129,217,202,194,100,182, 1,224, - 24, 74,211, 11, 12, 12,236, 44,147,201,100, 58,157, 78,157,154,154,122, 41, 43,230,112,170,141,219,127,210,233,240, 11, 59,251, -188,211, 13,119, 35,163,113,224,240,177,171,185, 30,202, 25,197,223,169, 95,191,126, 75, 79, 79, 79,121, 94, 94,158, 42, 42, 42, -234,214,235,214, 11, 8,135,243, 73,171,182, 29,161, 41,204, 65,246,211, 36,135,107,209,117,171, 56,225,235,165, 27,154, 4,215, - 14,110, 98, 35,118,227, 85,175,178, 19, 62,159,183,174, 73,205, 90,181,155, 20, 15, 8,169, 91,185,236,105,217,120, 82,167,238, -239, 77,248,108,105,191, 33, 99,113, 33,252, 24, 86, 45,254, 98,167,204,197,171,174,187,155, 75,163, 6, 45,187,227,234,185, 99, - 16, 59,249,194,205,195,183,237,168,113,211,186, 14, 25, 53, 25,215,175,158,195,218,101, 95,238,176, 25,213,191, 57,146, 86,153, -119,117,175,134,141,155,143,116,114,247, 65,161, 82, 13, 39, 55,111,212, 13,109, 54,242,225,125,227, 44,109, 78,162,226,181, 77, - 7, 33, 48,154, 9, 10, 52,102, 60, 85,232,145,156,101, 55, 90, 44, 91,129, 62, 65, 54,150,145,139,121, 60,119,203,147,202, 15, -206, 93, 32, 85, 2,125,152,229, 11,191,224,154, 33,134,162,208,110,178, 20, 42, 19, 20, 74, 19, 52, 6, 11,220,101, 60,176, 54, -182,194,181,238, 2,141, 25, 78, 82, 62, 92,164, 2,135,163,140, 37,177,233,151,189,193,247, 99, 51, 6,172, 90,181, 70,122, 47, -241, 57,147,197,183, 71,179, 68, 2, 46,108, 44, 11, 56,112,199,243,121,252,233,253,123,117,197,211, 92,189,125,212, 50,135, 65, -173,144,230,240,148,176,232, 50,108, 54, 0,160,111, 47,123,215,182,196, 76, 45,142,223, 80, 0, 47,118,236, 46,187, 44,214,235, -185,155,119,157,248,100,255,190, 61, 46, 6, 27, 15, 63,157, 74,134,206,104,133, 88,192,133, 72,192,133, 68,192,125,161, 63,118, -249, 70,203,222,231, 46, 53,215, 2,157,193, 0,149,222, 2, 2,224,214, 19, 13,244, 38, 43,148, 90, 11, 90,214,113,123,179, 64, - 8,195,156, 32,132,244,126,217, 16,189,108,150,158,139, 72,149,164,113,251,121,141,226,207,151,102,228,158,239,179, 5,160, 66, - 35,184,120, 47, 59,199,231,183, 5, 50,183,186, 46, 78, 46, 55, 78,159, 10,147, 31,190,207,226, 82,164,221,100, 89,244,185, 88, - 57,107, 68,154,170, 48,183, 19,128, 4, 71,127, 76,234, 89, 55, 84, 44, 20, 93,248,110,205, 79,102,111,159, 0,246,208,141,194, - 28,165,206,246,130,155,176, 25,141, 28,194, 18,129, 33,251,137, 67,109, 8, 28, 14, 99,158,247,209, 64,176,132, 96,254,154,253, - 88, 50, 99, 24,228,146, 81, 82,134, 97,164, 90,131, 21,159, 46,216,138,149, 95,143,119,146,138,120, 96, 24,123,159,168,247,134, - 15,116,236, 2, 52, 88, 17,127,115,183, 70,157, 24,246,232,249,230,194, 22,109,223,185,211,162, 69,139, 66, 55, 55, 55, 72, 36, -146, 63, 35, 21,165,224,227,227,243,245,188,121,243,130,167, 76,153,242,108,178, 79, 30,143,135, 15, 63,248,128, 99,179, 17,156, - 58,181, 13, 94, 85, 27,227,216,217, 27,232,217,185, 25, 52, 58, 3,242, 11,213, 96,193,125,237, 11, 81, 93,152,123, 33, 43,249, - 65,243, 54,157,250,226,210,153, 35,228,198,169,159, 39, 86,100,142, 30, 55,119,183,167, 17, 15,226,235, 50,140,187, 61,162, 85, -100,178, 76, 22, 22, 85,124,164,120,154, 28, 15, 87, 23,151,167,142,234, 73,188,130,251, 51, 28, 50,133, 1,217,166,205,142,219, - 15,128,104, 51, 31,141,216,255,219,230,200,232,168,123,139,251,140,156,206,235, 62,228, 3,238,143, 75,167,125, 9,192,209,137, -247,204, 49, 49, 49, 15,199,143, 31,223,250,250,245,235, 54, 0, 58,134, 97, 44, 92, 46, 87,106, 50,153, 4,157, 58,117, 82, 62, -126,252,248, 50, 74,238,180,248, 2,109,223,223,239,201,136,212,239, 8, 89,243,136, 42, 78,234,110,157,218,181, 66,171,250,129, -120,218,174, 21, 0, 76, 79,209,200,131, 13, 53,183,238,181, 88, 37, 39,127,252,229,248,146,137,195,186,126,186,147, 55,127, 85, -102,216,252, 50, 59,162, 62,125,116,185, 71, 73, 54,158,199,229,192, 73,194,135, 92,194,131,147,132, 15, 39, 49, 31, 22, 43,169, - 72,205,145, 88,172,172, 61,162,101,178, 66,163,183,226,194,189,108,100, 41, 77, 40, 84,155,161, 55,219, 64, 64,236,181, 81, 7, - 74,115,197,147,107,174,197, 79, 82,215,202,141,149,155,215,175,112, 62,248,123,218,179, 17,125, 46, 82, 33,156,164,246,209,216, - 87,174, 92,129,135, 71,249,181,125,150,101,113,224,244, 45,172,218,126, 1,167,183,205,132, 88,192, 69,104,255, 5, 24, 59,160, - 5, 88,194, 34, 62, 38, 58,187, 86,189,134, 62, 28,142, 4, 28,134,129,209,194, 2, 32,165,158, 79,147,201,228,145,154,154,170, - 10, 10, 10,242,245,247,247, 31,194,229,114, 9,212,247,140, 71,246,228,235,206,135,253, 38,213,234,141, 54,169, 85,185, 45, 40, - 83,223, 27, 65, 65, 96, 24,134, 56, 59, 59, 11, 46, 92,184,160, 9, 9, 9,241,122,205, 91,137, 35,241,174,189,118,194,212, 79, -134,212,172, 81, 3,251,127,219, 6, 66,152,131,142,126,121,215,241,235, 88, 56,231,197, 17,134,159,207, 91,215,100,229,130,233, - 47,236,155, 58,103, 85,153,163, 14, 37, 34,249,140, 65, 35, 38,225,206,173, 63,240,253,130,207,247, 24, 53,249, 99, 45, 86,203, -208,252,204,196, 61,213,235,181, 0, 49,171, 17,190,111, 5,134,141,158, 40,234,222,103, 8,174, 95, 61,135, 37, 95, 78,221,165, - 43,204,121, 31, 14,118,114,102, 9,127, 74,167, 30, 3,248,122,163, 25,235,150,127,131,201, 51, 22,163,101,231,190,252,168,123, - 55,166, 0,248,214,225,238, 16,102, 27, 58,133,120,218,205,179,133,197,177, 68, 46,175,164, 43,144,199,101, 56,141,106,184, 66, -111,178, 66, 85, 78,165,146, 39,224,103, 21, 42, 85, 85,127, 88,242, 9, 87,107,176, 66,161, 52, 33, 71,105, 68,110,225,159, 6, - 43, 87,105,132, 66,105, 2,159,199, 32, 54, 33, 5, 28, 62,175,194,253,243, 10, 52, 22, 52,175,237,102,191, 71, 95,179,117,196, -194,115,110,113,250,242,253, 65,171, 86,173, 22,223, 79, 82, 35, 50, 81, 85, 20,201,226, 66,196,231, 64, 88,244,183,141,181,247, -141, 44, 11,103,175, 26,213,199,188, 55,170,139,179, 92,130,140,184, 28,240,184,246, 41, 98, 92,188, 3,225, 34, 50, 96,218,212, - 73,240,244,112, 69,106,174, 17,107, 15,199, 34,242,225, 19,176,250,138, 29,246,186,159,246,244,156,240,225,231,174, 28,190, 16, - 59,206, 36,217,211,201,181,225,241,141,227,134,140,248, 7, 90,141, 42,143,128,216, 28,236,131,204, 16,171,205,126,185, 45,153, - 63, 27,123,182,111,196,153,136,156,103, 87,224,239, 7, 87,226,147, 57,139,144,171, 50,161,164,235,178, 44, 63, 2, 64,241, 92, - 36,234,149,237,231,204, 81, 73,219, 76,209,182,169, 20, 13,211, 75,230,202,244,210,126,211, 75,122, 37,205,253,183,185,220,166, -195, 87, 76,145,171, 87, 3,169, 88,246,199,169, 83,199,101, 71, 34,201, 51,147,101,214,229,146,197,211,251,166,169, 10, 21,221, - 43,100,178,188,106, 53, 16, 73, 69,151,231, 46, 90,107,244, 9,168,106, 61,121, 79,149,167, 54,216,172,175,246, 65,144,217,100, - 46, 94, 6,158, 80,180,138,175, 55,125,147,155,251, 72, 91, 94,228,137, 37, 4, 97, 55,179, 64,136,189,138,180,239, 74, 58,138, -106,230,176,177,246,102,149,179,247,114,192, 43,234,135,226,104,248,123,211, 79, 27, 85,189, 67,148,218,145, 75,230, 63,107, 46, -108,217,208, 30,201,114,118,118,134,171,171, 43,228,114, 57,202,107, 58,100, 24,230,189, 9, 19, 38,188, 82,251,207,201,201, 65, -215, 46,157,176,126,227, 22, 52,236, 50, 6,103,175,157,129,217,194, 34,180, 94, 13, 84,245,119,195,211,108,245,107,221,232, 50, -159,224, 15,155,119, 26,240,101,219,206,125,113,225,244, 33,114,227,244, 47,147, 42, 58, 17, 98,239,174,173,143, 47, 92, 56,191, -250,220,197, 63,136,156,196, 60, 60,210,152,192, 97, 24, 84,241,145,194, 67,198,193,165, 35, 59, 12,195,250,182,118,120,114,188, -192,192,128,157, 43,215,111,150,173, 92,182,160,211,157, 8,230,130, 38, 35, 54, 31, 0,116,217, 49,203, 31, 3, 15, 43,253, 17, -126,178, 97,135,129,240,241,175,209, 45, 49,251,177,195,102, 3,128, 46, 33, 33, 33,113,238,220,185,193,203,150, 45, 35, 92, 46, -151, 5, 32, 90,179,102,141, 46, 46, 46,238, 30,236, 67,115, 81,222,195,166, 75,183,250,159,202,133,182,150,238, 82, 78,253, 26, -190, 82,180,170,111,111, 21, 29,214,187, 45, 2, 43, 87, 70, 66,150,174, 81,190,142,229,107, 76,220, 26, 27,126,138,188, 93,205, -147, 59,209,170, 55, 61, 4,112,180,162,249,195,224,207, 14,242,197,209, 44, 39, 9, 31,172,253, 90,169,144,209, 50,154,109,208, - 27,109,208,155,172,208,154,108,208,153,108, 96,137,253,158, 96, 24, 6,102, 43, 11,135,170,205, 47, 93,251,206,238,158,168, 81, -141,129,179,212,158, 54,231,162,233, 30, 24, 0, 30, 30, 30,240,246,246,118, 40, 42,106, 50,219,111,113,147,133,125,214,172,111, - 50, 91, 65, 8, 65,108,108,204,204,228,196,196,254, 65,181,130,218,215, 11,109,232, 46, 21,113, 0,160, 84,163,165,211,233,108, - 78, 78, 78,222,238,238,238,156,244,244,244,103,230, 57,168, 81, 39,235,225, 67, 7, 49,104,208, 64,205,163, 91,247,159, 13,113, -215,235,245, 76,155, 54,109,156, 3, 3, 3, 57, 70,163, 81, 85,209,108,146,121,213, 30,224,230,225,190,248,189,247, 39,215,238, -212,181, 39, 46,158, 15,199,209, 67,187,127,213, 41, 98,195, 29, 21, 9, 14,174,243,202,168,195,154,181,106,191, 50,234,176,106, -245, 90,101, 26,173,122,161,205, 90, 16,134,135, 51, 97,251,136,129, 99,158, 10,128,181, 25,212,251,246,110,250,250,219, 17, 83, -230,212,236,213,111, 4,222, 27, 61, 22, 60, 30, 23,151,206, 30,199,202, 5,159,157,208, 40,115,198, 56,210, 77,192, 30,122,171, - 43, 8,144, 4,126, 92,185,102, 3, 68,220,184,138,248,216,168,232,251,183,175,215, 15, 10,105, 9, 47,255, 42, 31,167,120,114, -151,225,209, 35,115,121, 50, 38,131, 33,101,236,152,209,120,126,212, 97,171,198,193, 30,204,203, 55, 0, 0,157, 58,199,252,243, -138, 79,227,138, 71, 29,178,102, 83, 74,105,186,202, 2,197,129, 75,215,110,206,232,223,187, 39, 39, 87,101,178, 71,176,148,166, -162,151, 17,185,197,127,171,140,168,229, 47, 71, 76,116, 4,107, 80,230, 30,172,224,125,105, 24, 59,180,199,195,226,107,151,101, - 9, 24,192, 80,225,102, 41,190,243,164,229,223,175, 18,223, 79,212, 32, 50, 73,101,111, 42,228,115,237, 6,139,207,121,102,186, -236,163,217,203,137, 14, 49,220, 37,227,198, 12, 71,174,202, 12,150, 5,120, 92, 78,209, 75,128, 84, 53,131,167,106, 29,114, 11, - 20, 72, 76, 78, 65, 97, 86, 60, 56, 28, 14, 60,253,107, 59, 60,147,180,141, 8,253,116, 38, 18, 50,164,119,123,222,161, 63, 50, - 33, 21,241, 96, 84,103,227,212,222, 21, 10,163, 70,181, 88,175,211, 28,114,100, 62,199, 63,187, 32, 48, 10,149,198,224, 35,226, -115,177,127,251, 15, 24, 58,118,234, 11,165,239,204,175, 22, 2, 28, 6,249, 5,106, 48, 12,163,168, 88,185,196,220, 46,107,251, - 53, 35, 99,111,172, 81,130,217,122,181,162, 80,122,109,148,156, 10, 63,125, 92,246,123,178, 8,183, 98, 50,139, 76,150,130, 93, -244, 81,239, 52,181, 50,191, 7,128,216,138,213, 11, 57, 61,134,141,155, 17, 93,163,118, 61,227,197, 40, 77, 82,161,214, 82,106, - 63,135, 86, 67,230, 70,223, 57,177,190,151,210,146,240,129,204,175,158,141,181, 90,151,235, 21,177, 11, 74,105, 58, 20, 46, 88, -187,255, 89,179,225,172,101, 59,236,127,219,108,176, 17, 22,132, 5,166,125,189, 9, 86,214, 6,214,102, 3,107, 35,176,216,136, -180,188,228,122,251, 87, 61, 84,240,120, 95,157,145,223,190,218, 92,232,234,234, 10, 15, 15, 15,120,120,120,192,217,217,185, 92, -163,197,231,243,229, 60,222,139,167, 58, 37, 37, 5,201,201,201,112,118,118, 6, 97, 45, 48, 89,128, 6, 45,187,227, 65,124, 20, -206,253,126, 15,132,181, 65, 38,175,248, 42, 47, 50,159,224, 15,154,117,236,255, 67,231,126,227,113,246,208, 79,228,246,149,227, -147,245, 57,177, 91, 29,142,208,219,108,140,197, 98, 65,239,238, 29, 83,238, 70, 63, 57,253,213,140, 41, 61, 91,247,153, 44,106, - 21, 28, 0,131,201,134,180,228,120, 92, 58,242,139,161,118,117,191, 51, 93,218,181, 72,177, 88, 44,176,217,108,229, 62,200, 13, - 38,115, 46,151, 47,145, 13, 31, 62,146,127,251,214,173,131, 50,175, 90,251,109, 12,231, 62, 67,216, 80,134,144, 65,161,161,117, - 97,182,176,208,233, 84, 5, 21, 61,102,181, 90,157,184,109,219,182,234, 99,198,140,145,214,171, 87,143, 31, 31, 31,143,149, 43, - 87,230,169,213,234, 68, 71, 53,194,175,196,172,225, 49, 5,113,197, 17,173,212,182,173, 48,188, 79, 91,236, 57,241, 59, 46, 93, -189,142, 20,141,252,158,198,202, 59,242, 52, 37,195, 88,223, 93,117,176, 95,171,170,220,253,219, 11, 14, 70,119,156,253, 46, 33, -162,240,220,203,243,181,142,223,220,128, 90,111,129,179,212, 62,223, 83,113,100,139,203, 48, 14, 59, 34, 6, 72,188,122, 61,162, - 65,211, 90,245,112, 55, 81,137,156, 66, 35,244, 70, 43, 88,150,128, 5,129,135,147, 16, 98, 1, 7,169,201,137, 96,137, 57,169, -130,143, 10, 69,135,246, 29,120, 0, 3,134, 33, 60, 62,143, 7, 2,251,252,138, 18,137, 68,227,237,237,237, 80, 68,203,108,181, - 98, 80,207, 22,104,217, 44, 20,253, 39,219,231,204, 60,255,235,108,184,201,249,216,179,115, 43,158, 94, 89,179,179,122,171, 41, -225, 81, 15,162, 7, 71,223,253, 99,228, 59, 77, 36,141,124,121, 25,130,210,194,164, 90,173,246, 32, 0,161, 64, 32,232,217,190, -125,123,247,131, 7, 15, 22,122,122,122,178, 66,129, 64,209,175,111, 31,150, 47, 16,228, 23,127,246,218,181,107,252,201,147, 39, - 59, 21, 20, 20,164,102,103,103, 95, 7, 96, 41,187, 34, 24,220, 21, 28,236, 6,195,136,229, 18,105, 74,181,106, 53,252,155,181, -108,225, 50, 96,208, 80,136,132, 34,156, 13, 63,141,117,171,151,237,211,100, 62, 26, 87,145, 51,249,182, 70, 29,166,165, 38, 37, -234,244,198,144, 6, 77, 59, 50, 87,195,143, 76, 55,195,115, 53, 87,100, 94,209,117,208,212,154,137, 25, 26,172, 91, 58, 19,110, - 46, 50, 36,197, 63,214,199, 61,122,176,201, 98, 80,205,116,216,100, 1,144,230,217, 6,183, 26,221,211,205,104,182,225,202,133, - 19, 6,214,202,246,188,126,249,100,124,165,218,205,196, 13,154,117,113,203, 61,186,117,144, 14,216, 83,158, 78,250,227, 87, 35, -184,196, 84,152,116,254,194, 57, 23,159, 42,245,185, 12, 24,152,141, 6, 40, 18,110, 91,117,217,143, 85,170,244, 40,135, 70,225, -230, 61,197,215,115,230,125,247, 65,179,166, 77,101, 4,226, 23, 34, 88,197, 6, 43, 87,101,130,167,147, 16,122,149, 2,113,183, - 79, 27,116, 10,110,153,243,157, 89, 77, 90,105,110, 78,182,240,207,238, 12,177, 45,203,250,124,110, 78,182,208,106,210, 74,203, -127,212,113,225, 44, 19,226, 65, 82,250,179,142,239, 34,190,189,111,150,144,207,125,214, 79,171,184, 44, 40,135,142, 2,177, 43, -210,243, 12, 96, 64,192,218,172,176, 90, 76,221, 61,207,163, 0, 0, 32, 0, 73, 68, 65, 84, 80,171, 84, 72,207,200, 66,118, 86, - 54,212,234, 66, 72,229,110,104,208,168, 57,156,100, 98,220,191,180, 15,132, 16,135,230, 53,180, 48,252,224,102, 45,219,137,162, -146,237,125,177,196,124,130,227,187,151,229,105, 84, 57,237, 52,153,113,113, 21, 45,139,173, 54,219,185,200,135,113,245, 43,249, - 85, 99,238,197, 43,177,115,203,122,152,138, 34,155, 22,139, 13, 81,169, 90,100,230,235,144,154,240,136,176, 54,219, 57,252, 71, -224,149, 30, 0, 4, 47,180, 65, 93,116, 31, 53, 0, 27, 55,110, 66, 66, 98, 50,187,120,122,175, 84,141,186,240,157, 10,152,172, -174, 40,154,107, 67,151, 29,179, 92,239,214, 44,237,216,221,124,142,222, 68,202,236,224, 35,246,170,130,118,227, 86,158,209,171, -243,133, 54,163,142,119,124,231,184,221, 37,105,218, 29, 52, 76,139, 63, 31, 6,185,132, 7,134, 97, 80,220, 92,184, 97,225, 36, - 72, 69,246,182,101,189,209,138, 81,159,174,194,206, 85,159,129, 0, 24, 49,244,119, 93,105,233,132,125,237,194,105,126,184, 85, - 41, 37, 57, 39,189,107,223,207,207, 27,204, 34, 99,159,129, 99,238, 52,109,218,180, 80, 34,145, 64, 34,145,192,217,217, 25,110, -110,110,112,117,117, 45,247,216, 45, 22,139,198,100, 50,121, 8,133, 66,176, 44,139,164,164, 36, 36, 37, 37, 65,169, 84, 66,161, - 80, 64,171, 81, 89,111,157,223,207,107,208,170, 23,252,107,132,160, 74,173,134,224,115, 25,240,120, 28, 92, 58,182,165,180,116, -150,108,178, 58,244,219,208,165,255, 4,156, 61,180,153,220,190,114,124,138, 62, 39,118,139,163,121, 84,212,220,115,127,208,160, - 65, 33,147, 39, 79, 22,204,155, 49,249,204,137,240, 75,177,251,195, 54,247, 45, 40, 40, 12, 36,132,192,213,197,229,233,176,190, -173,143,119,106,211, 44,229,252,249,243,236,238,221,187,141, 12,195, 60, 40, 75,211, 94, 72,229,252,122,254,220,133,249,237, 58, -116,196,214,237,187, 59, 68, 63,124,212, 33, 62, 62, 14,129, 85,106,160, 90,245, 90,208, 49,110,184,112,249, 42, 52,133, 57,191, - 58,146,206,151,162, 90, 76, 65, 65,193, 31,195,134, 13,235,254,251,239,191,115,134, 13, 27,166,203,205,205,189,246, 92, 20,139, -148,167,121,253,199,129, 10, 0,191, 86,233, 48,118, 95,186,185,240, 99, 0,203, 42, 87,169,140, 75, 87,175,227,250,239, 55, 55, -229, 74, 43, 47, 24, 55,234,253, 73, 85,251,113, 39,244,107, 85,149,235,237, 38,197,111,155, 87,114,143, 93, 79, 94,149,156,103, -219,186,236,242,252,133,142,228,209,179, 7,135,218,140, 54,117,221, 97,177, 17,176,196, 94,224, 58,137,249,165, 21,188,175,104, -242, 76,162,113, 83, 38, 79,142,111, 16,218,232,147, 81,239, 79, 17, 52,170, 17,136, 91, 79, 10, 1,134,129,187,175, 12,153,153, -153,184,114, 96,179,181, 32,253,241, 38, 46,151,253,182, 2,231, 19, 5, 41,247,130,158,219,156,148,155,155,139, 75,151, 46,161, -216, 96,121,121,121,149,102,180, 94,208,204,203,206,184,182,240,251,159,218, 76,124,111, 32,250,116,172,143,203,183,227, 97, 42, -154,175,169,120, 40,121,226,245, 31,133, 31, 15,171, 97,250, 96, 80,109,149,222, 34, 76,254, 58, 73,121, 5,246, 53, 88,217, 82, -210,105,202,207,207, 63, 22, 19, 19,211,182, 97,195,134, 85, 79,158, 60,153, 31,125,243,204,244,231, 19,241,249,231,159,203, 55, -110,220, 40, 37,132, 92, 51,153, 76, 9, 14, 29, 59, 7,191, 69,220,185,227, 97,182,176,184,122,243,126,221, 46,109, 26,129, 37, -192,237,219,183,177,245,231,173,134, 7,145,247, 86,104,179,125,191, 45,195,188,148,120, 62,109,111, 54,234,240,153,102,102,122, -242,138,179, 39, 14,236,108,214,161, 47, 70, 78,251,246,219, 75, 39,118,207,111,210,174, 15,167,110,179,238,136,184,126, 1,231, - 78,158,254,206,172,201,159,143,242,251,142,148,152, 78,145, 68,250, 81,189, 38, 29,144,154,146,140,164,184,168, 95, 13,249, 79, - 50, 82,226,185,191,102,164,165, 76,169, 94,191, 13,126, 63,179,103,122, 25, 70,171,204,107, 62,208, 75,178,249,100,216,177,225, -105,105, 63,250,106,245, 6, 17, 33,196, 32, 18,242,178,228, 28,245, 94,149,195,233,124,100, 86,100, 84, 29, 52,116,212,148, 19, -235,214,173,230,251,184, 74,145, 85, 96,128, 74,111,134, 90,103, 6,135, 97, 16,228, 47,131, 78,157,143,203, 7,190,183,152, 52, - 5,195,128,120,115,105,154, 50,239,224, 69, 5, 79, 46, 76,251,124,234, 69, 8, 93, 2,253,171,117,158, 83,102,180, 78,157,126, -175,239,231, 83,143, 7, 19, 66,186,200,188,131,213,218,156,152,185,165, 29, 59,195,216,239,239,145,157, 2, 97,182,218,231, 31, -179,178,128,141,101,139,162,124, 0,121,214,158,207,148,115,236, 12,187,247,196, 53,100,100, 23, 66,111,178,192,104,178,194,108, -177,129,195,229,194,213,205, 21,181,170, 53,134,139,171, 51,178,179, 50,112,253,252, 49,196, 70, 94,190,198, 16, 44,208, 43,226, -206, 59,146, 71, 2,137,107,176,159,191, 47, 39, 83,101,130, 68,200,197,189,203, 39,205, 22,147,113,133,131, 38,235, 21,205,194, -188,252, 85,159,204,248, 98,196, 47,219,182,251,134, 84,119, 70, 90,174, 30,105, 10, 3,212, 6, 75,145, 17, 99, 97,212,228, 34, -242,194,246, 44,155, 65,189, 10,255, 17, 74, 53, 90, 86,179, 65,125,240,244, 45,143,217,243,191,231, 62,137, 79,176, 44,250,184, -119,154, 94,163,234, 85,225, 72,214,115,252,242, 97,245, 61,127,197, 65,188,210, 92, 72, 88,176,132,224,248,205,172,103,205,133, -108, 81,207,203,187,241,101, 47, 35,248,252,218,133, 29,123, 77, 63, 27, 25,163,222,165,215,103,187, 60,126,178,162, 0, 0,184, - 92,238,179, 87,113,223, 44,131,193, 96, 42,167, 9,101,199,150, 45, 91,102, 77,153, 50, 69,244,244,233, 83,196,199,199,163,176, -176, 16, 98,177, 24,167, 79,159,182,128,181,174,136,252,253,112, 82, 76, 68,248, 55,193, 77,187, 87, 10,105,213, 11, 82,169, 12, - 60,226,120,103, 76,169,119,237,225, 77, 59,244,251,161,203,128,137, 56,119,120, 11,185,125,249,216, 84,189, 34,118,115, 69,207, -101, 97, 97, 97, 52,128,184, 21, 43, 86, 52,218,186,117,107,245, 25, 51,102, 36,236,248, 97,254, 58, 0,200,203,203, 3, 0,220, -189,123,151, 76,157, 58,213,104, 48, 24, 18, 11, 10, 10, 34, 80,206, 0, 8, 0,208, 43,164, 75,182,110, 88,214,224,105,122,230, -192, 26, 13,154,195,171,122,115,248, 6,181, 64,129,218,140, 91, 79, 50,144,240,232, 60, 30, 93, 61,112, 82, 39,183,206, 71, 5, -231, 55,110,216,176, 97, 32,135,195,169,166,209,104,124,235,213,171,215, 80, 38,147,221,109,216,176, 97, 99, 30,143,151,118,231, -206,157,228,138,104,165, 92,222,110,172,210, 97,236,218, 20,181, 83,167,132, 44, 93,227, 20,181,211, 93,157,200,229, 51,197,133, -181,198, 95,184, 1,171,136, 57, 55,122,255,118,213,193,223, 54,175,228,142,154,244,185, 45, 74,233,246, 49, 79, 34, 60, 91,177, -112, 53, 39,243,131, 49,253,255,156,222,161, 40,146, 85,244,183, 67, 97,122,165, 50, 82, 9, 96, 86,228, 67,254, 15, 81, 31, 79, - 94, 24,218,172,205,232,246,239, 12,227, 88, 5,114,156, 57,252, 35, 73,140,188,176,159, 71,108, 95,233, 29, 88, 13,160,220,230, - 32,147,201, 17,147,245,106, 26,159,202, 58,238,223,253,243,216,131,135, 15, 45, 29,208,175,191,199,134,175,223,197,247, 63, 29, -129, 76, 34, 2, 97, 89,188,219, 41,112,200, 55, 19,234,244, 13,244, 17, 7, 28,188,152,118,101,218,234,168, 89, 58,157, 57,214, -129, 72, 12,201,205,205,189, 42,151,203, 21,109,219,182,109, 41, 18,137,152,220,220, 92,158,183,183,183,213,197,197,197,148,150, -150,166, 51, 26,141, 7, 1, 84,104,218,113,179,133, 69, 82,182, 1, 71, 15, 29,196,253,155,231,241,232, 81,140,250,209,195, 71, -235, 25, 30, 89,173,205,142,203, 7, 42, 92,193, 7, 91,226,168, 67, 82,225, 81,135, 54,163,250,183, 29,155, 22,117,214, 25,140, - 99, 27,182,238,141,170,117,219,112,204, 22, 27, 30,220,190,136,139, 7, 86,127,111,214,228,207,126,147, 60,246,175, 84,189, 22, -225, 10,241,199,165, 19, 32, 44,187, 9, 0, 8,203,110,186,251,251,201, 41, 45,122, 77,128,187,119,213,134,133,169,119, 25,188, -198,236,225, 2, 30, 71,123,234,224, 47,135,147,146,146,240,248,241, 99, 60,121,242, 4,249,249,249,248,237,183,164, 10,229,143, -174, 32,249,108,236, 67, 78,143,193,239,142, 60, 62,100,248,123,226,234,181, 66, 56,193,149,220,224, 33,231, 33,230, 73, 50, 98, -239, 68,178, 49,183, 78, 26,204,170,156, 1,250,130,228, 82,141,159,212,179,174, 15, 96,155, 93,188,118, 97,171, 86,109,130,191, - 88,188,180,165,135,151,119,137,229,120,158, 34, 71, 56,115,218,177,224,235, 55,254,112,104,173, 67,214,102,203,155, 52,118, 24, -203,181, 47, 20,138,103,113,234,162,179,103,175, 76,217,247, 19,214, 90,110, 4,255,253,129,237, 96,101, 89,104,245,102,168,180, - 70, 40,213, 6,100,230,228,225,126,100, 36, 46, 31, 63,134,248,152,251,137, 22,147, 41,156,195, 97, 14,232,179, 99, 47, 87,172, -165,137, 87,221,195,221, 29,137,249, 26,136,133, 60, 36,199,222, 49,106, 85,202, 93,175,123, 29,233,243,226, 50,115,184, 76,247, - 97,195,134,159,238,220,163,159, 75,179,214, 93,165,158,206,174, 16,240, 8,226,146, 50, 16,113,237,180, 54,225,254, 21,149,197, -164,233,249, 54, 86,125,249, 31,167,252, 81,135,102,163,182,239,136,254, 29, 14,113,185, 60, 33,203, 90,141,102,147,113,240,155, -152,172,191, 10, 66,108,105, 99, 71, 12,124,161,110, 96,101,137,100,196,208, 51,250,231,235, 10, 22, 27,145,142, 24,122, 77,103, - 47, 64, 74,239,216,231,231,231,222,187,120,237,194,148,148,188,219,249,249,198,139, 0,210, 12, 6,195,107,167, 49, 59, 59,123, -225,226,197,139,251,232,116,186, 58, 29, 59,118, 20, 57, 59, 59, 35, 47, 47, 15,225,225,225,150,176,176,176,135, 57, 57, 57,223, - 0, 57, 86, 61, 26,255, 26,105, 56, 60, 38,230, 78,248, 55,117,154,246,168, 20,210,186,151,227,133,153, 72, 50,177,115,191,241, -204,185, 35, 91,200,173, 75, 71, 62,208, 43,226,126,122,131,211,106, 54, 24, 12, 55, 13, 6, 67,212, 87, 95,125,213,204,199,199, -199,231,155,111,190, 17,171, 84, 42,254,134, 13, 27, 12,185,185,185, 89, 42,149,234, 58,202,232, 79,243, 42,119, 45,202,116, 12, - 58,117,112, 75, 39,114,112, 75, 55, 87,207,128,238, 46, 94,149,106, 22, 42,210, 19,149,138,140,112, 0,231,138, 38,138,172, 16, -141, 26, 53,170,193, 48,204, 48, 0, 13,100, 50, 89,144, 92, 46, 23, 17, 66,234, 48, 12, 19,205,178,108,100,189,122,245,194, 30, - 62,124, 88,161,201,100, 83, 46,111, 55, 6, 6,183,217,157,175, 99, 5, 38,142, 96,119,202,229,237, 70, 0,200, 57,251,133, 14, -192,209,135, 29,103, 13, 58,118, 61,121, 93,116,129,203,116,197,165,165,199, 42,154,102,101,218,253,160,183,117,253, 27, 50, 31, -166, 1, 24, 27,121, 7, 43, 31,220,189, 62,143, 33,224,219, 96, 93,164,207,121,114,231,109,232,243,249,124, 67, 64, 64, 64,137, -163, 11, 69, 34,145,193,104, 44, 43,128,114,217,170,201,196, 86,160,195,246, 67,251,182,143, 61,114,236,232,210,246, 93, 6,120, -136, 43, 85, 66, 53,111, 6,219,103, 55,153,126,254,174,226, 86,191, 47,174,108, 76,200, 48, 68,162,130,253, 97, 52, 26, 77, 44, -128, 2,141, 70,211,159, 16,242,148, 97,152,192,130,130,130,123, 22,139,229, 65,133, 13, 1,139,145,173, 90, 53,255,141, 97, 24, - 30,177,178,203,175,243,185,187, 13,153,143,210,240,134,203,146,132, 84,115,198,167,223,172,109, 82, 51,168,118,147,226,181, 14, -235, 87,117,194,228, 89, 43,155, 84,173, 94,171,201,159,235, 31,150,219, 77,128, 88,116, 5,227, 14,253,188,252,202,221, 27, 23, -191,244,244,171, 90, 53, 43, 45,225,209,211, 39,247, 22,218, 12,170, 67,111,154,207, 73, 79,162, 87,111, 93, 49,107, 70,102,122, -226, 86,157, 34, 46, 10, 0,116,138,184,168, 71, 17,248, 58, 55, 43,109, 70, 94, 78,194,138,215, 61, 23, 90,173, 54, 99,215,174, - 93,174,109,218,180,225,248,248,248, 64,161, 80,224,226,197,139, 44,203,178,233, 21,214,202, 79,188,168,205,103,220,127,253,233, -135,229, 2,153, 83, 47,171,213,234, 79, 8,192,227,241, 50, 77, 58,213,105, 53, 71,246, 5, 10,146, 13,101, 63, 51, 88, 6, 0, -167,120,237, 66,150,101,153,229,235,182, 39,243,197, 78, 37, 78,134,104, 49,168,165, 44,203, 58,188,214, 97, 97,106, 68,205,183, -117,127, 51,132, 44,104,216,180,229,151, 22,139,217, 80,116,127, 24, 0, 24, 8, 65, 30,135,195, 92,230,178,150, 51,170, 55,168, - 76, 49, 12,156, 9,195,131,147,132, 7, 6, 12, 52,202,124, 82,145, 62, 89, 37, 26,226,156,216,104, 93, 78,135, 42,167, 76,251, -198, 92, 56,123,114,168,205,102,171, 86, 20, 51, 72, 50,234,181,251, 53,153,110,191, 2,119,172,248,247,115,162,216,108, 49,127, -241, 15, 57,212,140,242,191,164, 25, 92, 93,210,191, 82,128,207,152,164,228,156, 91, 9, 79,117,191,226,197,101,117,222, 36,157, - 92, 31, 31,159,175, 25,134, 25, 45, 20, 10,229, 38,147, 73, 75, 8,217,145,157,157,189, 16,175, 44,254,219,152, 47,241,214,143, - 17,138,165,115,205, 6,237, 31,186,156,216,145,229, 29,187,212,171,118,119,177, 76, 54,203,160,215,238,208,101,199,110,127,203, -231,211, 69, 36, 18, 53,150,203,229,252,220,220,220,155, 0,148,255, 75,249,222,176, 97,195,202, 28, 14,167, 26,203,178, 62, 0, - 92, 96, 31, 21,146,203,227,241,210,139, 34, 90,164,162,154,109,223,223,239,217,165, 91,253, 79,195,175,196,172, 41,106, 86,124, - 70,192,144, 85,226,209,189, 58,125,254,235,161,163, 37,141, 58,252,199, 93,243,255,127,154, 29,120,114,191,220,177, 28,161,203, -162, 46,193, 6, 93,110, 70,250,212,171, 15, 20, 55, 1,168,223, 36,157, 2,129, 96,148,217,108,150, 8, 4, 2,189,217,108,222, -245,191,114,236, 18,239,224,241, 28, 16,135, 87,166, 96,193,220,121,105,208,202,191,229, 90,226,134,132,132,180, 19, 8, 4,149, -109, 54,155,212,100, 50,233,244,122,125, 82,114,114,242, 31, 40,125,225,243,191, 52,157, 50,239, 90,171, 5, 2,209,199, 0, 96, - 54, 27,215,106,115,226, 62, 45,235,139,101,124,254, 31,157, 71,158,213,154,198,241,184,124, 47, 20, 77,204,205, 90,173,138,236, -196,219,181,254,198,116, 82, 94, 51,115,169, 38,213,164,154, 84,243,101, 56,244,124, 82,205,191, 83, 83,236, 87, 55, 80,236, 87, -215,225, 73,151, 75,249, 60, 61,159,148, 98, 38,149,240, 2,224,192,132,165, 20, 10,133,242, 23,192,210, 83, 64,249, 59, 49,100, - 62,122,250, 87,126,158,242,159,163,212, 62,209, 76, 25,174,180, 34, 33,193,215,113,182,231,168, 38,213,164,154, 84,147,106, 82, - 77,170,249,159,211, 44, 79,251,159,216, 36, 57,233,165,237, 19, 0,254, 95, 58,252,211,176, 42,213,164,154, 84,147,106, 82, 77, -170, 73, 53,255,107, 60, 51, 94, 28,122, 46, 40, 20, 10,133, 66,161, 80,254, 26,104, 31, 45, 10,133, 66,161, 80, 40,148, 55,163, -164,166, 67,106,180, 40, 20, 10,133, 66,161, 80,222, 2,165,118,134,167, 77,135, 20, 10,133, 66,161, 80, 40,111, 70,113, 68,203, - 15, 47, 77,239, 64,141, 22,133, 66,161, 80, 40, 20,202,219, 33, 19, 37, 69,183,194,194,194, 72, 73,127, 83, 40, 20, 10,133, 66, -161,252,127,240, 15,247, 34,207, 71,178, 38, 21,109, 3,120, 46,162, 69, 13, 22,133, 66,161, 80, 40,148,255, 21,179,245, 15,163, - 56,146, 85,252,202,124,197,104,245,233,211,135,161,102,139, 66,161, 80, 40, 20,202,223,197,191,209,139,112, 94, 62, 64,154,205, - 20, 10,133, 66,161, 80,254, 78,179,245,111, 58, 30, 58,189, 3,133, 66,161, 80, 40, 20,202,155,225, 7,160,247,115,219,255,111, - 75,240, 80, 40, 20, 10,133, 66,161,252,219,153, 84,218, 54,141,104, 81, 40, 20, 10,133, 66,161,188,125,179, 69,161, 80, 40, 20, - 10,133, 66,249, 39, 67, 87, 54,167,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,226,121,180,128,210,230,209,162, 80, 40, - 20, 10,133, 66,161,188, 22,189, 97,159, 63,107, 82,209,123,111,106,180, 40, 20, 10,133, 66,161, 80,222, 46,175, 44,191, 67,141, - 22,133, 66,161, 80, 40, 20,202,219, 53, 88,155,169,209,162, 80, 40, 20, 10,133, 66,249,139,161, 70,139, 66,161, 80, 40, 20, 10, -229, 47,130, 65,233, 35, 7,206, 85, 64,231,117, 70, 31,156,163,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 60,237, -115,248,231, 81, 60, 51,252, 9,252,217, 17,126,243,255,199, 15,211,161,175, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,183, - 51,233,165,247,103,208,166, 67, 10,133, 66,161, 80, 40,148,183,107,182,232, 18, 60, 20, 10,133, 66,161, 80, 40,111,137, 82,155, - 9,105, 68,139, 66,161, 80, 40, 20, 10,229,205, 40,117, 81,105,106,180, 40, 20, 10,133, 66,161, 80,254, 26,195, 69,141, 22,133, - 66,161, 80, 40, 20,202, 91, 52, 89,147, 74,252,111, 88, 88, 24,161,231,136, 66,161, 80, 40, 20,202,223,197,191,214,139, 20, 31, - 24, 53, 91, 20, 10,133, 66,161, 80,168, 23,169, 48,126,248,115,180,225,164,162,109, 0,116,212, 33,133, 66,161, 80, 40, 20,202, -155,210, 27, 47,142, 60,156, 84,188, 77,141, 22,133, 66,161, 80, 40, 20,202,155, 51,169,204,255,210,102, 67, 10,133, 66,161, 80, - 40,127, 39,255, 70, 47,194,208,108,165, 80, 40, 20, 10,133, 66,121, 35, 74,138,102,109,166,167,133, 66,161, 80, 40, 20, 10,229, -175, 53, 92, 20, 10,133, 66,161, 80, 40,148,191,194,100,253,213, 19,150,210,149,205,169, 38,213,164,154, 84,147,106, 82, 77,170, -249, 95, 49, 89,207, 79,241, 0,128,142, 58,164, 80, 40, 20, 10,133, 66,121, 83,232,162,210, 20, 10,133, 66,161, 80, 40,127, 17, -116, 81,105, 10,133, 66,161, 80, 40,148,255,103,195, 69,141, 22,133, 66,161, 80, 40, 20,202, 91, 52, 89, 47,152, 45,218, 71,139, - 66,161, 80, 40, 20, 10,229,205, 40,181,143, 22,131,210, 71, 14,156,171,192, 15,188,206,232,131,115, 84,147,106, 82, 77,170, 73, - 53,169, 38,213,252,207,105,150,167,125, 14,255,124, 38,225,255,105,194, 82, 58,244,149,106, 82, 77,170, 73, 53,169, 38,213,164, -154,255, 53,232,244, 14, 20, 10,133, 66,161, 80, 40,111,219, 88,189, 12, 53, 90, 20, 10,133, 66,161, 80, 40,111, 6,157, 71,139, - 66,161, 80, 40, 20, 10,229, 47,194, 15,246,168, 86,241,123, 99,106,180, 40, 20, 10,133, 66,161, 80,222, 14,189, 97,143,106, 21, -191, 83,163, 69,161, 80, 40, 20, 10,133,242, 22, 41,113, 30, 45, 6, 0,194,194,194, 72,209,118,199, 62,125,250, 92,166,231,138, - 66,161, 80, 40, 20,202,255, 39,255, 86, 47,242, 44,162,213,167, 79, 31, 6,192, 37,154,213, 20, 10,133, 66,161, 80,254, 14,254, -141, 94,132,243,146,147,236, 72,179,153, 66,161, 80, 40, 20,202,223,193,191,209,139,240, 94,114,145, 20, 10,133, 66,161, 80, 40, -127, 11,255, 96, 47,226, 7,123, 71,248, 19, 69,239, 64,209,148, 15,116, 30, 45, 10,133, 66,161, 80, 40,148, 55,163,120,180,225, - 43, 75,239,208, 40, 22,133, 66,161, 80, 40, 20,202,155, 81,210,204,240,155,233,105,161, 80, 40, 20, 10,133, 66,249, 11,161, 17, - 45, 10,133, 66,161, 80, 40,148, 55,231,249,168,214,255, 91, 52,139,174,108, 78, 53,169, 38,213,164,154, 84,147,106, 82,205,255, -146,201,122, 97,155,206, 12, 79,161, 80, 40, 20, 10,133,242, 23, 65, 71, 29, 82, 40, 20, 10,133, 66,161,188, 25,197, 35, 14,159, -223,166, 70,139, 66,161, 80, 40, 20, 10,229, 45,154,173, 87,160, 77,135, 20, 10,133, 66,161, 80, 40,111,198,164,210,254, 65,141, - 22,133, 66,161, 80, 40, 20,202, 95,100,184, 24,148, 62,114,224, 92, 5,132, 95,103,244,193, 57,170, 73, 53,169, 38,213,164,154, - 84,147,106,254,231, 52,203,211, 62,135,127, 30,127,219,132,165,116,232, 43,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,179, -208,166, 67, 10,133, 66,161, 80, 40,148,255, 1,163,229,197,227,241,190,148, 72, 36, 27, 37, 18,201, 79, 60, 30,111, 5, 0,183, -138,254,160, 76, 38,155,238,235,235,251,216,215,215, 55,173,114,229,202, 39,157,156,164,159,212, 16,161, 61, 0,254, 91, 58,158, - 96, 0,159, 72, 36,146, 71, 98,177, 56, 25,192, 78, 0,159, 0,240,124, 19,225,133,254, 24, 28,245,113,255, 35, 11,253, 49,248, -165,127,245,246,241,241,185, 10,160,251,219,202,148,225, 82,116, 29, 34, 67,234, 16, 25, 82,135, 75, 95,191,214,224,228,228, 52, -218,207,207,239,186,135,135, 71,186,159,159,223, 53,177, 88, 60,164,130, 18,222, 62, 62, 62,223, 7, 6, 6,198,250,251,251,175, -129,125,117,242,255, 89,218,137,208,174,165, 8,138, 86, 66,168,219, 8,177,177,149, 16,221,186, 1,210,215,148,107, 11,224,128, -179,179,243, 61, 30,143, 23, 6, 96, 80,209,245, 53,136,199,227,133, 57, 59, 59,223, 3,112,160,232,115,175,115,157,126, 15, 32, - 29,192,146,162,237,143, 2, 3, 3,213,161,161,161,201,161,161,161,191, 4, 5, 5,189,231,168,152, 84, 42,237, 22, 24, 24,120, -176,114,229,202,201,173, 90,181,202, 15, 8, 8,136,169, 84,169,210,118,145, 72,212,145, 22,113, 20, 10,133,242,191, 79, 95, 0, - 75, 1,172,143,140,140,140, 32,132, 68, 16, 66, 34, 34, 35, 35, 35, 0,108, 4,176, 12,165,135, 16, 95,216,239,225,225,177, 96, -209,162, 69,134,204,204, 76,162, 80, 40, 72,108,108, 44, 89, 61,119, 22,219,195,157, 71,106,120,185,233,252,252,252,226,171, 84, -170,180,167,190,156, 51, 11, 64, 77, 71, 52,159,195, 77, 34,145,220,156, 59,119,174,230,234,213,171, 26,147,201,164, 97, 89, 86, -147,145,145,161, 57,119,238,156,166, 77,155, 54, 26, 0,159, 2,224, 86, 64,243, 25,223,250,227, 50,249,249,107,242,173, 63, 46, - 63,191,191, 78,157, 58, 15, 89,150, 37,131, 7, 15, 54, 2, 8,168,136,230,203, 4, 0,226,250,206,112, 29, 34, 71,182,117,251, - 66, 66, 54,204, 32, 67,100, 72,125, 29, 77,111,111,239,163,211,167, 79, 87,165,167,167, 19,163,209, 72, 82, 83, 83,201,228,201, -147,149,222,222,222,187, 28, 60,118,143,144,144,144,236,235,215,175,179,133,133,133,228,210,165, 75,108,131, 6, 13,178, 29, 52, - 91, 93, 95, 74,203,102,127,127,255,147, 21,121,121,123,123,111,173,104, 30,181, 16, 33,213, 28,113,145,144,219,225,228,216,224, - 86,100,117,211, 74,100,144,187,176,176,173, 16, 31,117, 40,121, 42,147,210, 52,135,118,232,208, 65,251,224,193, 3, 91, 94, 94, - 30,121,248,240, 33, 59,113,226, 68, 3,128,232,137, 19, 39, 26, 30, 62,124,200,230,229,229,145, 7, 15, 30,216, 58,116,232,160, - 5, 48,161, 2,233,228, 0,216, 54,127,254,124, 66, 8, 33,139, 22, 45, 34,161,161,161,164,115,231,206, 68,163,209, 16, 66, 72, - 50, 33,228, 23,171,213, 58,214, 17, 77, 23, 23,151,209,211,167, 79,215,232,116, 58, 82, 12,203,178,164,176,176,144,172, 95,191, - 94,235,235,235,123,178,148, 74, 6,109,242,160,154, 84,147,106,254,175,105,254,147,241,131,189,159, 86,241,203,225,192,196,136, - 89,179,102, 21,155,170, 83,109,219,182,189, 53,118,236,216,136,177, 99,199, 70,180,109,219,246, 18,128, 51,119,238,220,137,152, - 57,115,102, 4,128, 17,229,100,132, 91,235,214,173, 11,179,178,178, 72,173, 90,181, 72,213,170, 85, 73, 86, 86, 22, 33,132,144, -219, 67,155,144,243,117, 65,158, 94, 57, 69,194, 15, 31, 32, 19,253,120,164,157,159,139,197,207,215, 55,207,211,211,115, 49, 94, - 92,147,177,164,204, 29, 88,183,110, 93,117,116,116,180, 38, 46, 46, 78,179, 96,193, 2, 77,231,206,157, 53, 33, 33, 33,154, 65, -131, 6,105,214,173, 91,167, 49,155,205,154,173, 91,183,106,156,157,157,163, 75, 48, 91,175,109,180,120, 60,222,218,200,200, 72, - 18, 31, 31, 79,138,162, 20,165,105,186,184,186,186,246,116,115,115,251,212,213,213,181, 39, 0, 23, 0,168, 5,200, 27,186,160, -242, 71, 13,107,212, 9, 27,209,181,230,250,174,205,154, 12,113,226, 20, 90,126,152, 65,200,224,202,175,101,180, 92, 92, 92, 70, -127,242,201, 39,106,163,209, 72,116, 58, 29,209,104, 52, 68,167,211, 17,181, 90, 77, 70,140, 24,161, 18,139,197, 3,203,211,244, -244,244, 92,120,229,202, 21,107, 86, 86, 22,185,114,229, 10, 57,121,242, 36,217,176, 97, 3,235,237,237,189,170,162, 55,160,175, -175,239,217,240,240,240,136,187,119,239, 70,220,188,121, 51,194, 98,177, 68,152,205,230, 8,179,217, 28, 17, 22, 22, 22,113,232, -208,161,136,189,123,247, 70,152, 76,166, 8,147,201, 20, 97, 52, 26, 35,170, 87,175,126,186,162,121,212, 92,132,167,166,171,199, - 8, 89,245, 33, 81,126, 55,149, 20,126,214,139,228, 76,110, 79, 54, 54,171, 68,218, 75,112, 28,175,174,237, 89,162, 38,159,207, -191,156,156,156,204,206,153, 51,199, 84,175, 94, 61,229,184,113,227, 12, 70,163,145, 16, 66,136,209,104, 36,227,198,141, 51,212, -171, 87, 79, 57,103,206, 28, 83, 82, 82, 18,203,227,241,206, 85, 32,157,203,138, 77,214,229,203,151,201,243,104, 52, 26,210,185, -115,231,228,208,208,208, 95,170, 85,171, 54,178, 60, 77,185, 92,222,127,246,236,217, 26, 82, 2, 22,139,133,168,213,106,146,148, -148,196, 86,173, 90, 53, 3,128, 7, 45,204,169, 38,213,164,154,212,104,253,101, 76, 42,103,187,228,147, 56,115,230,204, 8, 66, - 72,196, 87, 95,125, 21, 81, 20,217, 18, 0,144, 23,189,120, 0,134,207,158, 61, 59,130, 16, 18, 49,107,214,172,226,207,148,150, - 17,125,247,239,223,111, 94,179,102, 13,241,241,241, 33,190,190,190,100,237,218,181,132,101, 89,146, 21,182,139,156,175, 11,242, -232,203, 49,132, 16, 66, 98, 23, 79, 35,231,235,130, 36,108,250,150,140, 26, 53, 74, 39,149, 74, 71,148,145,185,238, 77,154, 52, - 81,235,245,122,205,246,237,219, 53, 82,169,244, 54,128,122,176, 55, 69, 50, 69,105,125,175, 94,189,122,170,168,168, 40,205,238, -221,187, 53, 0, 22, 56,120,193,212, 4,208, 73, 38,147, 13,154, 29,192,143, 35, 63,127, 77,102,251,224, 1,128, 6, 0,188,138, - 62,227, 63,107,214, 44, 66, 8, 33,129,129,129, 87, 74,209,116, 9, 9, 9,153, 21, 23, 23, 55,207, 98,177,204,187,123,247,238, -188,218,181,107,207,233, 87,221,175,213,145, 17,221, 26, 43,191,157,218,152,172,252, 44,100,197, 59,205,187,238, 25,214,113,196, -251,213, 60,175,142,243, 22,235,222,117,225,170, 95,106, 58,116,232,194, 14, 8, 8,184,153,154,154,250,204, 92,169,213,106,146, -158,158, 78, 18, 19, 19,201,213,171, 87,137,159,159,223,249,242, 52,125,125,125, 31,166,166,166,146, 77,171, 87,147,193, 13,234, -144,246,174, 78,164,131,155, 19,105, 42, 23,107,235, 2, 77, 43,106,180,238,221,187, 23, 1, 32, 2, 64, 68, 94, 94, 94, 68, 94, - 94, 94, 68, 65, 65,193,179,125, 0, 34,148, 74,101,132, 82,169,140, 48,153, 76, 17, 53,106,212,168,176,209,106, 35, 70,155, 22, - 98,228,183, 18, 65,223, 55,192, 51, 99,106,117, 79,219,141, 17,173, 72,193,135,157,201,154,198, 1,164,173, 16, 31, 57,168,217, - 87, 40, 20, 94, 2, 48,163,200,148,143,233,217,179,167,142, 16, 66,122,246,236,169, 3, 48,166,104,255, 39, 69, 38,171,167,131, -233,228, 4, 5, 5,105,139, 35, 89, 0,254, 8, 10, 10,210,134,134,134,146,208,208, 80, 18, 24, 24,168, 46,210,118,168, 64,171, - 89,179,102,172, 94,175,127,102, 0, 11, 11, 11, 73, 70, 70, 6, 73, 72, 72, 32,209,209,209,228,246,237,219, 36, 57, 57,153,236, -219,183,207,230,234,234,122,130, 22,230, 84,147,106, 82, 77,106,180,254, 82,163,245,242,235, 69,194,194,194,200, 75,187,190,187, -115,231, 78,196,236,217,179, 35,202,113,102,147,190,250,234,171,226,168,215,210, 50, 30,254, 91, 99, 99, 99,201,152, 49, 99, 72, -112,112, 48, 9, 14, 14, 38, 99,199,142, 37, 74,165,146,104,158, 68,145,243,117, 65,110,191,219,148, 16, 66,136,250,209, 93,114, -190, 46, 72,196,168,214,228,254,253,251,164, 82,165, 74,225,101,252,254,241,107,215,174, 41,118,237,218,149, 5,123,127, 44, 62, -128,150, 0,214, 74, 36,146,109,176, 55, 23, 86, 5,224, 86,171, 86,173,124,157, 78,167, 25, 60,120,176, 6, 64,229, 50, 52, 59, - 4, 7, 7,199,111,221,186,149,228,228,228,144,252,252,124,178,188, 77,109, 66,126,254,154, 44,106, 90,149,221,180,105,147,113, -198,140, 25, 90,119,119,247, 48, 0,254,131, 7, 15,182, 18, 66, 72,251,246,237,179, 75, 18,115,117,117,237, 25, 23, 23, 55,207, - 96, 48,204, 43, 44, 44,156,151,159,159, 63,239,216,145, 35,243,122, 52,168, 61, 70,249,237,212,198, 71, 70,116,107,252, 78,128, -219,160, 85,221,155, 77, 73,159, 51, 97,240, 87,173,235, 61, 50, 44,251,248,226,208,234, 62,223,191, 78,110,123,121,121,101, 26, -141, 70, 2,224,149, 87,124,124, 60,241,240,240, 72, 45, 79,195,221,221,253,171, 79,134, 15,179, 13,172, 26, 64,226,215,204, 37, -150,179,187,137,229,228,118,242,228,187,207, 72, 63, 95, 79, 85, 75, 1,103,182,163,233,241,245,245, 61,123,243,230,205, 23,140, - 86, 65, 65, 65,137, 70, 75,165, 82, 69,152, 76,166,136,160,160,160,211,111,122,213,183, 20,162, 70, 7, 9,247,246,221, 49,237, -136, 98,106,103,210,211,133,159,252, 6,114,195, 1, 92, 2, 48,170,130,223,227, 0, 88, 86,108,168,190,251,238, 59, 66, 8, 33, - 65, 65, 65, 90,188,217, 96, 20,151, 58,117,234, 36, 78,152, 48,193, 90,183,110,221,156, 54,109,218, 20,222,186,117,139, 92,190, -124,153,156, 60,121,146, 28, 56,112,128, 68, 69, 69,145,244,244,116, 18, 27, 27, 75,122,247,238, 93, 8,160, 3, 45, 11, 41, 20, -202,255, 50, 37,120,145,127, 60,156,226, 3,235,211,167, 15,243,220, 1,186, 0, 16, 55,109,218, 84,177,108,217,178,149,176,207, - 5,193,132,112, 49,180,179,132,119,191,179,132,119, 63,132,139,161, 69, 17,163,205,139, 23, 47, 94, 24, 26, 26,154, 9, 64, 2, -192,183,164, 31, 34,132,180,243,240,240, 64,106,106, 42, 92, 92, 92,224,226,226,130,212,212, 84, 16, 66, 96, 37,128,133, 0, 70, -179, 25,122,189, 30, 6,150, 64,207, 2, 42,141, 6,190,190,190, 48,155,205, 53, 74, 73,127,195,119,223,125,183, 70, 72, 72,136, - 98,230,204,153, 25,176,247,149,217, 54,126,252,248,179,127,252,241, 71,136, 70,163,201,143,142,142, 54, 52,104,208,160, 39, 0, -223,184,184,184,209,235,215,175,199,152, 49, 99, 80,198, 67,167, 65,239,222,189, 79, 70, 69, 69,213, 24, 53,106, 20, 46, 93,186, -132,229,203,151, 35, 55, 55,151, 0,128,209,104, 36, 54,155,205,220,186,117,107,243,154, 53,107,154,183,111,223,254,102,245,234, -213,185, 0,144,152,152,248,164, 36, 65,134, 97,106, 87,169, 82, 5, 70,163, 17, 10,133, 2, 81, 81, 81,112,114,113, 65,100, 70, -174, 79,199, 85,155,242,190, 60,114,150, 63,188,121,136,251,167,221,218, 24,151,132, 95,170, 85,207,223,199,199,100,182,248,198, -102,102,103,188, 78,166, 10, 4,130,212,220,220, 92,152, 76, 38,232,245,122,168, 84, 42,228,229,229, 33, 55, 55, 23, 25, 25, 25, - 16, 8, 4,241,229,105, 56,231,231, 95, 73,188,118,153,217,247,227,119,168, 97,205, 7,239,224, 90,240,142,110, 68, 77,147, 2, - 63,205,157,236,100,242,240,154,239,236,228, 84,224,234,234,186, 25, 64, 80,121,122,141, 27, 55, 70, 94, 94, 30,242,242,242,224, -225,225, 1, 55, 55, 55,184,185,185,161,176,176, 16, 74,165, 18, 42,149, 10,181,106,213, 66,195,134, 13,177, 99,199,142,183,114, -113,223, 48, 33,193, 10,219,212,179, 49, 25, 16,200,100,168,238, 38,175,210, 76, 14,247, 50,190,210,153,207,231,239,119,119,119, - 15, 7,240, 33, 0, 25,128, 15,221,221,221,195,249,124,254, 0, 0,139, 0,236,170, 96, 50,150,204,159, 63,127, 86, 92, 92,156, -244,254,253,251,152, 57,115, 38, 22, 44, 88,128, 39, 79,158,252, 0,128, 45,250,204, 7, 30, 30, 30, 97, 28, 14,103, 11,128, 94, - 0,122,250,249,249,117, 41, 71,119,192,140, 25, 51, 12, 77,154, 52,137,125,244,232,209,128,107,215,174, 53,253,236,179,207,148, - 41, 41, 41,136,141,141,133,159,159, 31, 2, 3, 3,161,209,104, 80, 80, 80,128, 1, 3, 6,184, 56, 59, 59,143,160,197, 56,133, - 66,249, 95, 54, 89, 47,121,145,127, 90, 68,171,196,237, 18,107,212, 82,169,116,126, 68, 68, 68,171,208,208, 80, 30,128,125, 0, - 16,194,197,144, 1,173, 27,109, 59,178,249,187,208, 67,107,230,134,246, 8,173,181, 45,132,139,226, 81,108, 97, 77,155, 54,117, -139,136,136,104, 45, 18,137, 62, 42, 37, 17, 4, 0,220,220,220,224,226,226, 2, 87, 87, 87,184,185,185,129,101, 89,104,116, 6, -104,109,128,218, 96,130, 82,169,132,186,104, 91, 99, 52, 67,171,213, 62,251,110, 9,116,156, 48, 97,130, 98,253,250,245, 57,153, -153,153,223, 1,104, 48,102,204,152,254,235,214,173,195,133, 11, 23, 12,189,130,107,122, 44,110,215,104, 97,189,204, 39,243,130, -249,152, 8,224,202,149, 43, 87,208,186,117,107, 48, 12, 51,172, 36, 65,137, 68,178,113,207,158, 61,146,232,232,104,212,172, 89, - 51,122,216,176, 97, 67,191,251,238,187, 26, 50, 77,254,239, 0, 96,205,203,138,158, 54,109,218,215,139, 23, 47, 86, 40, 20, 10, -179, 78,167,251, 63,246,190, 59, 44,138,171,125,251,158,237,203,238,210,219,210, 85,138, 96, 65,197,222,176,183,136,157,216, 53, -246, 88,162,209, 24, 99, 11,197,168,177, 68,141, 26, 19, 77,108, 17,141, 5, 81, 17, 99,195,222, 21, 80, 84, 4, 65,144, 38,101, -105,203, 22,182,176,229,124,127, 32, 4, 13,213,188,239,239,123,147,204,125, 93,123, 45,236,156,185,231,156,153,115,102,238,121, -206,115,158,199,110,248,240,225,200,204,204,196,155, 55,111,238,214, 34, 50, 95,198,197,197,145,210,210, 82,164,166,166, 34, 46, - 46,206,228,235,175,191,238,100, 96, 48, 70,100,195,116,218,212,238, 29, 58, 77,234,210, 14,135,239, 61,225,220, 74, 74,179,232, -208,196,201,242,113, 86,110, 83, 29,133, 87, 31,114,181,229,114,249,246,111,190,249, 70,161, 80, 40,144,157,157,141,167, 79,159, -226,197,139, 23, 72, 79, 79,199,166, 77,155, 20,197,197,197, 59,234,227,112,228,179,190,216,188,100, 6,197, 74,184, 11, 60,185, - 1,148,201, 1,149, 2,154,196, 88, 28, 72,204,195,174,147,167,184, 25,153,153, 22,199,142, 29,155,233,234,234, 26, 11,192,171, - 46, 62, 66, 42, 46, 33,131,193,120, 95,132,130,193, 96,200, 1,228, 9,133,194, 44, 83, 83,211, 44, 6,131,145, 71, 8, 81,254, - 71,222, 36,244, 40, 7,147, 9,112, 77,192, 96,215,153,218,243,227,113,227,198, 29,205,202,202, 26,148,154,154,218,117,199,142, - 29,223,240,249,252,248, 29, 59,118,124,147,154,154,218, 53, 43, 43,107,208,184,113,227,142, 2,152,210,152,227,123,122,122, 46, - 8, 14, 14,198,166, 77,155,208,182,109, 91,120,121,121,149,133,132,132,108, 7,176, 26,192,103,158,158,158,183, 23, 44, 88, 48, - 93, 34,145,136,179,179,179,219,254,240,195, 15,115,182,111,223,222, 49, 39, 39,135, 95, 15,117,143,129, 3, 7,226,252,249,243, - 0,144, 11, 32,181,168,168, 72,159,147,147, 3, 31, 31, 31,116,234,212, 9, 10,133, 2, 10,133, 2, 82,169, 20,110,110,110, 48, - 26,141, 93,233, 91, 57, 13, 26, 52,104,252,159, 10,174,154,133, 22,159,207,183,244,243,243, 67,179,102,205, 44,241,118,181,150, - 53,151,181, 98,241,204,241, 2, 81,236, 5, 80,113, 87, 48,174,103, 43,129, 53,151,181,226,237, 46, 44, 55, 55, 55,158,159,159, - 31,132, 66,161, 83, 45, 7,191,158,151,151, 7, 63, 63, 63, 88, 88, 88,192,220,220, 28,126,126,126, 40, 47, 47, 71,169, 92, 14, -165, 1, 40,211, 25, 81, 90, 90,138,226,130,124,148, 25, 0,189,169, 53,210,211,211,193,100, 50,211,106,225,116,240,240,240, 40, -136,143,143, 47, 0,112, 19,192,167,161,161,161, 88,190,124, 57,130,130,130,142, 10,114, 95, 15, 60,122,254,140,245,145,144,121, -182, 94, 92,106, 60,128,242,172,172, 44, 88, 88, 88, 64, 40, 20,214, 40, 12,252,253,253,219, 11,133, 66, 28, 60,120,144,100,103, -103,119, 71,197, 18,254, 52,138,170, 16,123, 38, 12,148, 2,216, 30, 27, 27,219,249,235,175,191, 78,234,223,191, 63,187, 75,151, - 46, 88,187,118, 45, 0, 68,213,196, 41,149, 74,239, 79,153, 50, 69,123,237,218, 53, 36, 38, 38, 10, 79,159, 62, 29,184,118,237, -218, 86, 25, 25, 25,188,179,191, 95, 24, 18,150, 37, 11,220,120,233, 22,127,221,197,235,247,109,204,132, 45,155,218, 88, 33, 46, -227, 13,199,192,196,195,250,174,104,103, 54,115,102,111, 62, 43,174, 39,143,145,219,155,207, 66,159, 74, 59, 0, 0, 32, 0, 73, - 68, 65, 84,138,237,200,102,206,144,203,229,199, 34, 35, 35, 47, 46, 89,178, 68, 33,145, 72, 96,106,106,138,162,162, 34,172, 95, -191, 94, 17, 23, 23,119, 82,171,213,158,173,143,215, 96, 36,237, 93,154,184, 2,175,226,171,126, 43, 55, 18, 60,212,114, 16,240, -233, 34,120,251,248, 64,171,213,162,117,235,214, 84,104,104,168,208,220,220,252,203,122, 69, 15,227, 79,221, 77, 79, 81, 84, 30, - 33,228,141, 66,161,200, 54, 49, 49,201,224,112, 56, 25,197,197,197,217,132,144,252,255,132,206, 34, 12,124,209,173,181, 39,192, - 51, 65, 70,145, 34,231,145, 2,197, 53, 21, 52, 53, 53,157,177,107,215, 46,254,190,125,251,116, 11, 22, 44,208,204,153, 51,135, -173, 82,169,236,230,204,153,195, 94,176, 96,129,102,223,190,125,186, 93,187,118,241, 69, 34,209,232, 15,169,136, 78,167, 67,124, -124,252,198,148,148, 20, 33, 42,194,141, 44, 10, 9, 9,153,154,156,156,204,223,185,115, 39,194,195,195, 17, 30, 30,142, 17, 35, - 70, 96,225,194,133, 8, 14, 14,174,139, 78,208,166, 77, 27, 63,107,107,107,220,184,113, 35, 7, 64, 6,128,246, 34,145,200,116, -196,136, 17, 24, 52,104, 16,212,106, 53,202,203,203,171,132, 22,147,201,132,133,133,133, 53,125, 15,164, 65,131, 6,141,255,186, -200,122, 71,108,177, 0,160,210, 84, 23, 16, 16, 64,213,245, 96, 52,148, 72, 32, 85,150, 33,189,180, 12,153, 37,198,119,182, 25, -141,198, 58,143,158,147,147,115,246,222,189,123, 51,252,252,252, 88, 57, 57, 21, 51, 98,126,126,126, 40, 43, 43, 67,206,147, 7, - 80, 26, 1,161,135, 47,148, 74, 37, 74, 94, 60,134,168, 77, 87, 88, 15,157,132,173, 59,119,106,138,138,138,118,215,196,201,229, -114,217,206,206,206, 5,105,105,105,122, 0,197,230,230,230, 3, 93, 93, 93,113,253,250,117, 0, 56, 76,128,205,136,187, 6,220, -136, 0,169, 48,169,136,220,220,220, 32,145, 72,160, 80, 40,174,215,196,121,239,222,189,100,157, 78,215,122,248,240,225,212,175, -191,254,122, 92, 38,147, 5, 1,120,170, 49,130,249, 36, 43, 31, 74, 3,248, 0, 6, 88, 90, 90,126, 30, 28, 28,220,111,193,130, - 5,136,140,140,196,165, 75,151,202, 81,225, 11,118,175, 6,218,210,212,212,212, 61, 75,151, 46,237,194, 96, 48, 62,189,124,249, -178,222,203,203, 75, 86, 94, 94,110,104,238,237,205, 8, 10, 93,195,153,255,233,108,139,162, 50, 36, 12,106,238,208,141,162,128, -132, 55,146,140, 20, 5,138,234, 58,167,254, 92,102,212,200,238,109,252,103,140, 27, 38, 18,122,180,132,242,217, 3,241,158, 19, -191,111, 53,137, 75, 14,184, 33,145,140,136,140,140, 12,188,126,253,250,124,173, 86,219,140,199,227,189,146, 74,165,223, 43, 20, -138,122, 69, 22,147,201, 28,170,113,112,182,148, 22, 23,131,255,214, 18, 37,211, 25, 81,168,209, 35,209,194, 11, 19,156, 93,170, -166, 65,243,242,242, 32, 22,139, 41,131,193, 48,172, 46,206, 75,151, 46, 33, 32, 32,160, 82,120,130,162, 40, 80, 20, 85,232,237, -237,157,207,227,241,138, 56, 28,142,108,243,230,205,106,181, 90, 13, 22,139,197, 55, 24, 12,204,191,210,219, 59, 9, 96,199, 35, -212,143,115,134,247,233,223,182,165, 15,185,249,232, 9, 85, 82,166, 62, 80,135, 21,240, 7, 79, 79, 79, 86,113,113,241, 89, 0, -137, 58,157,238,200,241,227,199,249,147, 39, 79, 86,159, 56,113, 98, 34, 0,247, 45, 91,182, 4, 42, 20,138, 70,165, 84, 72, 73, - 73,249, 97,221,186,117, 95,173, 90,181, 10,135, 14, 29, 90,144,146,146,178,252,173,165,107, 68,112,112, 48, 54,111,222,140, 67, -135, 14, 25, 19, 19, 19,127, 55, 26,141, 41, 75,150, 44,105, 99,111,111, 95,152,155,155,155, 82, 7,109,135,193,131, 7,107,110, -223,190,205,149,203,229,183, 0,124, 62,119,238,220,153,157, 59,119,150,141, 27, 55, 78, 84, 92, 92, 44, 21, 8, 4,220,189,123, -247, 90,178, 88, 44, 40,149, 74, 80, 20, 5,185, 92,174,165,239,131, 52,104,208,248, 95, 69,109, 90,228,111,130, 90,159, 13,172, -154, 26, 88, 86, 86,150,159,153,153,233,243,230,205, 27, 61, 0, 61, 0, 20,105,245,223,174,219, 27,177,111,116, 23, 79, 97,174, - 78,135,211,143,158,151, 21,105,245,149,206,239,250, 55,111,222,200, 51, 50, 50, 76, 85, 42,149,162,150, 99,221,253,241,199, 31, - 85,215,174, 93, 51, 77, 77, 77,133,193, 96, 64,251,246,237,241,242,229, 75,148, 36,198, 67,232,211, 30,194, 94, 1,120, 30,251, - 8,113,151,162,241, 90,161,213, 39,173, 94, 87,170, 80, 42,131,203,203,203, 79,215, 68,200,102,179,139, 1, 16, 66,136, 1, 0, -100, 50,217, 83,133, 66,209,211,222,222, 30, 9, 9, 9, 66,165, 1, 11, 3, 87,108,221, 65, 8, 49,112, 42, 86,115, 45, 30, 55, -110, 28, 98, 98, 98, 0, 32,166, 38, 78,153, 76,182, 96,214,172, 89,215, 14, 30, 60,200, 74, 77, 77, 29,180,111,223,190, 65, 73, - 73, 73,132, 42,206, 52,220, 46, 99,195,125,234,194,142, 63,185,121, 95, 10, 8, 8,128,131,131, 3,246,238,221,139,239,191,255, - 94, 55,111,222,188,228,239,191,255,190,163, 68, 34, 57, 82, 75,251, 75,165, 82,233, 5,107,107,235,249,173, 90,181,146, 43,149, - 74, 20, 21, 21, 33, 39, 39, 7, 86,214,214, 12, 61, 24,221,108, 45, 44,142,156,205,147, 11, 89, 23,238,227, 65,118,110,157,214, -172, 46,108,230,148,209,254,237,252, 63, 91,181, 66,132,219,167, 65,205, 10, 6,217,247, 13, 22,125, 18,104,170,214, 28,233,165, -124,146, 62, 57, 86, 38, 11,147,201,100,225,141,236, 44,131,187,117,235,118,116,221,186,117, 38, 43, 55,173,195, 22, 31, 39,232, -139,138, 80,160, 49,160, 80,163,135,172, 36, 17, 9, 9,207, 97,109,109,131,215,175, 95, 67,173, 86,227,197,139, 23,132,201,100, -158,173,207,162, 83,137,106,211,133, 82, 30,143, 87,196,102,179,243, 89, 44, 86,113,106,106,170, 82,173, 86,131,193, 96, 8, 13, - 6,131, 73, 3,234,234,108, 99, 99,179, 4, 21,193, 68, 35,229,133,133,219,253,216,176, 0, 11,189,221,108,172,135,172,158, 51, -217,198,213,209, 78,154,154,252, 74,183,251,226,157, 66,181,166,246,197, 26, 0,162,138,139,139,171, 44,146, 39, 78,156, 88,116, -226,196,137,153, 0,246,163, 34,239, 86,180, 84, 42,253,233, 3, 6,223,234,147, 39, 79,126,181,106,213, 42,152,152,152, 84, 5, - 79, 53, 49, 49,225, 3,192,111,191,253,134,132,132,132,206,120,235,175,101, 52, 26,143,230,230,230,214,199,233,238,235,235,155, - 26, 17, 17,193, 5,224, 56,119,238,220,174, 59,118,236,192, 39,159,124, 82,240,252,249,243, 46, 0,210, 0,184,127,250,233,167, - 15, 15, 29, 58,100,105, 52, 26, 81, 82, 82, 2,173, 86,155, 70,223,202,105,208,160, 65,139,173,255, 10,252, 0,196,161, 34,126, -214, 80, 0,231, 80,225,214, 81, 43, 92,222,170,179,139, 0,134, 87, 62, 31,107,113,134, 7, 42, 86,100, 93, 0,240, 11, 0,251, -218, 72,173,173,173,191,156, 58,117,170, 46, 59, 59,155,228,229,229,145,240,240,112,178,120,198, 84,195, 0, 15, 71,163,135,163, -189,210,214,214,246,165,131,141,213,129,118, 2, 44, 6,224,220,128,134, 77, 77, 74, 74,154, 61,117,234,212, 25,111,143, 59,227, -232,209,163,138,203,151, 47, 43,152, 76,102, 20, 42, 66, 59, 84, 10,202, 41,195,134, 13, 83,104, 52, 26,133,183,183,119, 49, 42, - 28,247,107, 67, 96,239,222,189, 75,206,159, 63, 79, 12, 6,195,159, 98, 20, 21, 20, 20,144, 75,151, 46,145,238,221,187, 75, 1, - 76,238,215,175,223,245, 59,119,238, 92,239,209,163,199,201,250, 42,108, 99, 99,179,226,201,147, 39, 49,233,233,233,177,231,206, -157,139, 61,114,228, 72,236,167,159,126,250,180, 77,155, 54,170,228,228,100,163, 94,175, 39, 79, 30, 63, 38,222,205,155, 43, 1, -184,213,198,211,215,132,245, 80,182,247, 27,162, 94,251, 9, 81,143,116, 33, 0,136,124,235,151, 36,127, 65,127,242,114,254, 16, -210,135,207,188,247, 33, 61,197,202,202,234, 98, 76, 76, 12,145,203,229,228,217,179,103,100, 74,192, 32,114,111,102,127,114, 97, -144, 39, 57,212,171, 41,217, 58,176, 13, 25,212,171, 39,249,241,199, 31, 73, 68, 68, 4, 89,177, 98,133,209,198,198, 70,142, 58, -124,180,196, 98,241,229,227,199,143,199, 2,136,101, 50,153,177, 50,153, 44, 86, 46,151,159,205,202,202,218,229,237,237,253, 85, -171, 86,173, 38,250,248,248,244,237,211,212,237,171,126,166,188,151,253,205,248,175,154,139, 4, 91,241,231,184, 87, 85, 48, 7, -220, 60,220,221,229, 55,110,220, 48,106, 52, 26,114,235,214, 45, 99,139,230, 94,234, 45, 99, 7,159,124,189,119,195, 73,245,249, - 95, 47,150,157,249,249,206,137,105, 1,241,189, 5,140, 95,187, 10,171,194,113,124, 40,198, 3, 56,141, 63, 86, 29, 78, 5,112, - 6,117,175, 66,100, 0,216,191,118,237,218,234, 43, 13, 1,128,209,166, 77,155, 88, 66, 72,108,155, 54,109, 98, 27, 91, 17,129, - 64,176, 36, 50, 50, 50,196,213,213,117,211,184,113,227,246, 74,165,210,115, 19, 39, 78,140, 71,197, 98, 16, 10, 21,217, 17,134, - 57, 59, 59, 23,196,197,197,145,235,215,175,147, 49, 99,198,200, 57, 28,206, 36,250, 54, 78,131, 6, 13, 26,255, 21,204,174,229, -187, 78,172,139,143,143,175,140,161, 53,183, 46,242,229,203,151,199,198,196,196,196,162, 34, 74,124,157, 96,177, 88,167,230,205, -155, 71,236,237,237, 21,118,118,118,167,216, 76,230, 76, 23, 19,248,225,195,150,186,247, 12, 11, 11, 27,241,195, 15, 63, 12, 5, -208, 25, 0,219,201,201, 41, 39, 47, 47, 79,113,231,206, 29, 69,247,238,221, 21, 54, 54, 54, 18, 95, 95, 95,197,150, 45, 91, 20, - 58,157, 78,177,100,201, 18, 5,254, 28,239,171, 38,240, 1,204,231,114,185,167, 90,180,104, 17,191,122,120, 95,221,166,133, 51, -201, 84, 79, 91, 5,128, 31, 0,204, 3, 96, 1,128, 29, 24, 24,120,229,197,139, 23, 23,125,125,125,247, 52,128,215,177, 85,171, - 86, 87,143, 30, 61, 26, 19, 17, 17, 17,251,229,151, 95,198, 88, 91, 91,103, 39, 39, 39, 27,213,106, 53, 41, 41, 41, 33, 82,169, -148,156, 59,119,206, 96,101,101,181,179,214,134,243,152,185,228,210,225, 26, 67, 56,100,173,154, 68,186,115, 25,111, 62,164,167, - 8,133,194,226,162,162, 34,146,151,151, 71, 82, 83, 83,201,201,147, 39,201,224,110,157,200,177, 79, 71,147,195, 51, 70,144,205, -131, 59,145,206,166,124,165,216, 84, 20, 99,106,106, 42,105,200,170, 67,177, 88,124, 89,163,209, 84,133,111,112,118,118,142,245, -246,246,142,240,245,245,221, 26, 25, 25,185,104,219,182,109, 35,250, 52,117,251,106,253,160,110,170,178,232, 19, 68,126,252, 7, -178,188,189,151,250,173,152,175, 17, 78,214, 86, 97, 55,174, 95, 55, 86,138, 95,189, 94, 79, 78,159, 58, 69,198, 14, 25, 16, 95, -122,225,183, 95,110, 5, 47, 56,186,164,189,215,233,238,124,140,175, 75,176, 85,189,138,136, 96,237,111,198,216,245,145,171, 85, -110, 79,115,198, 15, 93, 76,223, 73, 47, 53,214,203,203, 43,149, 16,146,235,227,227,147, 10,224,176,143,143, 79,245,255,167,213, - 66, 91, 21,156, 52, 36, 36,132,188, 29, 31, 12, 0, 65,235,214,173,139, 37,132,196,122,122,122,222, 6,128,182, 66,216,244, 50, -103,252, 50,220,221,190,168,151, 57,227,151,182,194,154, 83, 70,185,113,208,188,167,173,224,214, 8, 79, 7,121,111, 39,243,155, -135, 15,236,219,244,209, 71, 31,237, 5,176, 19,192, 55,214,214,214,183,198,143, 31,159,112,232,208,161,132, 45, 91,182,148, 39, - 39, 39,147,233,211,167, 43,121, 60,222, 55,244,125,144, 6, 13, 26, 52,254,107,168,140, 12,239,208, 24,161, 53,236,171,175,190, -138, 37,132, 84,198,210,154, 92, 67,153,225,171, 86,173,138, 37,132, 84, 70,135,127, 63,128, 89, 77, 1,205, 66,118,237,218, 69, -120, 60,222, 47, 31,216,152,234,156,226,145, 35, 71,118,145,201,100, 29,237,237,237, 59,190,181, 92,185,216,216,216,164, 30, 57, -114, 68,161, 82,169, 20,132, 16,133, 94,175, 87,196,196,196, 40,122,247,238,173,168,246,214, 95, 95, 61,223,193, 74, 49,110, 63, - 90, 61,131,172, 20,227,246,123,155, 38,237,223,191,255,124, 90, 90,218, 89, 51, 51,179,101, 13,228,116,177,181,181, 13,178,178, -178,186,104, 99, 99,179,210,202,202, 42,183,188,188,156,148,148,148,144,151, 47, 95,146,235,215,175,147,123,247,238, 17, 43, 43, -171,236,218,234,217,207,132,117,191,100,211,124, 98,220,191,142,104,119,172, 32, 0,136,116,219,114, 82,248, 99, 40,121, 52,107, - 16,233,205,103,222,253,128,243, 9, 11, 11,139,159, 79,157, 58,101, 76, 73, 73, 33, 81, 81, 81,228,220,185,115,100,225,194,133, -164,185,163,131,166, 11,151,145,223,147,199,186,248, 33, 1, 75, 53, 26, 77,172, 76, 38,139, 85, 40, 20,177, 45, 90,180,136,237, -212,169, 83, 68,151, 46, 93,182,158, 56,113, 98,209,250,245,235, 71,244, 51,229,189, 44,139, 62, 65,200,151, 67, 8,153,223,131, -188,154,217,155,244, 53, 97, 61,169,149,211,222, 62,187, 50, 90,187, 82,169, 36, 55,111,222, 36, 87,175, 94, 37, 98, 27, 27,153, -191, 9,115,118,119, 30,122,117, 55,131, 69, 67,235,217,199,156,113,224,254,143,223, 26, 84,231, 15,145,223,166, 14,209,247,182, - 96,236,170, 86,238, 24, 33, 36,119,204,152, 49,175, 9, 33,185, 39, 79,158,204, 34,132,228,142, 30, 61,250, 53, 33, 36, 23,192, -209,154, 56,223, 11, 78,186,255,173,200,154, 31, 18, 18, 18, 75, 8,137, 13, 9, 9,137, 5, 42,130,168,246, 50,103, 28,124,176, -103,179, 81,115,238, 32, 57, 49,125,168,161,151, 57,227, 96,141,245,180, 96,157,141,219,191,141,104, 47, 30, 38,167, 22, 78, 52, -244, 16,155,221,240,242,242,218,188,104,209,162,136,123,247,238, 61, 53, 24, 12, 9,169,169,169, 9, 59,119,238, 76,232,218,181, -235,109,107,107,235,120, 46,151, 59,175,190,107,244, 31, 2,205, 73,115,210,156, 52, 39,141,247, 13, 76,117,108, 59,187,113,227, - 70, 33, 33,100, 73, 96, 96, 32, 54,108,216, 48,182, 85,171, 86,227,157,156,156,108, 1, 32, 39, 39,167,236,217,179,103,178,192, -192, 64, 4, 5, 5, 97,211,166, 77, 91, 81,225,203,242,127,137,188,211,167, 79, 59, 47, 88,176, 64,178,126,253,122,227,244,233, -211,125, 0, 60, 43, 44, 44,108, 62,113,226,196,249, 44, 22, 43,208,205,205,205, 55, 55, 55,183, 64,165, 82, 29, 6,176, 7,245, -204,153,214, 6, 30, 3,134, 14, 77, 28,112,145, 1, 67,181,159,135, 4, 5, 5,141, 27, 61,122,116,249,182,109,219,244, 50,153, - 44,178,129,116, 89, 5, 5, 5,107, 42,255,177,178,178, 18, 63,121,242,100,158,157,157, 29, 35, 53, 53, 21, 26,141, 6, 41, 41, - 41, 70, 84, 76, 77,213, 8,133,158,108,255,233,228,101,239, 37,147, 2,204,202, 18, 31,131,195,100, 66,199,230, 34,239,254, 69, -236,191,153, 40, 83,150, 99,199,135,180, 83, 42,149,126,183,112,225,194,137,203,150, 45,227,187,185,185, 81,119,239,222,197,241, -227,199, 53, 18,137,100, 48,128, 27,127,132,126,106, 28,140, 70, 35,184, 92, 46, 0, 96,249,242,229, 96, 48, 24,108,137, 68,194, -165, 40,138, 71, 81,148,128,162, 40,166, 46, 45, 1, 70, 89, 9,242, 75,164,200,202,151,214,201,103, 48, 26,143, 63,120,240, 96, -113,187,118,237, 24,143, 30, 61, 66, 65, 65, 1, 82, 82, 82,136,129,144,163, 55, 85,134, 10,167, 68, 77,195,235, 39,176,178, 30, -217,214,146,199,224, 30, 8,130,191,150,193,220,109,196, 24, 84,196,210, 2,128,253, 20, 69,113, 0, 20,181,104,209,162,207,139, - 23, 47, 76, 90,180,104,161, 74, 76, 76, 60, 79, 81,148, 19,128,131, 53,113,154,152,152, 20, 2, 40, 60,121,242, 36, 0,204, 66, -197,201,107, 31, 28, 28,156,123,243,230, 77,132,132,132,228, 3,216, 5, 0, 34, 75,235,225,190,230, 28,138,251,107, 8,186,106, -192,216, 97, 36, 53, 90, 93, 69,118,246,125, 91, 9, 25, 96,239,251, 26, 29,197,222, 12,174,190,188,117,104,104,232, 77,133, 66, -161, 57,118,236,152,118,218,180,105,204,228,228,228,135, 0,110, 1, 56,137,183, 62,150, 52,104,208,160, 65,227,191,138,247, 45, - 88,245,250,104,189,175, 90, 55, 0,248, 41, 41, 41,169, 42,169,116, 82, 82, 82, 44,128,221,168,136, 6, 63,172, 17,138,119,245, - 91,139,214,158, 15,108,204,251,156,124, 63, 63, 63,147, 23, 47, 94,112, 80,115, 18, 71,234, 3, 56,255,132,154,114, 29,122,121, -121,125,175,211,233, 34,118,239,222,125,130,201,100, 78,252, 11,106,223,205,211,211,179,228,200,145, 35,198,168,168, 40,178,122, -245,106,131,131,131, 67, 9,254,236,163,245, 14,167, 63,151, 25,190,212,199, 73, 22, 51,185, 7,121,181,104, 56,185, 53,169, 55, -153,237, 36,146,249,243,153,199,255,226, 91,137,167,185,185,249,126, 19, 19, 19,153,153,153,217,101, 0,221,254,202, 53,178,182, -182, 62, 36, 22,139, 47, 87,255,216,219,219, 71,216,218,218,254, 96, 99, 99,179,218,194,194, 98,142, 59,159,187,109, 81,115, 71, -117,252,200, 22, 36,186,187, 45,153,100,195,125,127,234,240,253,122, 58,184,187,187, 23,133,133,133, 25,207,158, 61, 75, 86,172, - 88, 97,108,210,164,137, 12,117,248,181,213,105,209,178, 96, 30, 15, 31,221,197,152, 63,212,137,108,240, 49, 53,246,177,100,214, -182, 66,113,210, 91, 1, 60,181, 62, 78, 15, 15,143,221,132,144, 3,107,215,174, 61,128, 63,114,129, 14, 8, 13, 13, 13, 38,132, - 4,135,134,134, 6, 3, 24, 4, 0,254,230,140,176,195, 35, 58, 24,114, 62,114, 36,223,250,136, 12,254,230,140,176, 26, 45,153, - 86,172,211,103,102, 14, 53,230,206,236, 78,130, 60,133,134, 46, 86,188, 43, 92, 46,119, 17, 42, 44,206,157, 0,112,233,183,102, -154,147,230,164, 57,105,139,214,255,156,240,106, 16,196, 86, 86, 86,251,155, 53,107,118,194,205,205,237,132, 72, 36,218,138, 10, -167,249,198, 94, 8,247,117,235,214,201,204,205,205,219,254, 7, 47,174, 29, 0, 39,252, 57,113,238,127,172,195,172,113,192,130, -228,101, 99,159,172,113,192,130,106, 63,119,242,241,241,249, 22, 21,209,188,255,106, 39,116,179,178,178,218,105,101,101,149,253, -214, 55,203,173, 33,156, 29,152,204,137,125,248,204,187,221,184,140,188, 62,124,214,157,142, 76,230,132,191,233, 0,172,107,177, - 69,109,156,206, 54, 54, 54,219,172,172,172,114,108,108,108,118, 54, 82,100,189,195,217,214, 4, 14,125, 45,152,167,187,153, 82, -202,190,230,204,147, 29, 4,181, 47,234,104, 68,219,253, 66, 66, 66, 62, 33,132,124,226,232,232, 24, 88, 77,248,251, 6, 5, 5, - 5, 16, 66, 2, 42, 35,192,119, 18,192,174,183, 5,243, 72,119, 51, 74,218,219,130,121,164,147, 0,118,181,213,179,143, 5,243, -120,119, 51, 74,234,111,198, 56,226,202, 67, 19,250,102, 78,115,210,156, 52, 39, 45,180,254, 25, 66,139,238, 48, 52, 39,205, 73, -115,210,156, 52, 39,205, 73,115,210, 66,171,102, 97, 85,253, 83, 53,195,198,162,207, 13, 13, 26, 52,104,208,160, 65,131,198, 95, - 66,173, 1, 75,169, 58, 84,105, 99, 28,219, 63, 68,217, 70,211,156, 52, 39,205, 73,115,210,156, 52, 39,205,249,175,227,172,143, -251,255,122, 97,221,223, 26,180, 89,149,230,164, 57,105, 78,154,147,230,164, 57,105,206,127, 45, 24,244, 41,160, 65,131, 6, 13, - 26, 52,104,208,248, 75,240,123,251,253,126,224,210,154,125,180, 88,157,214,230,235,245,122, 59, 0, 96,177, 88, 18,221,195,213, - 14,117,177,179,129,126,250,138,244, 59, 96, 1,179,244,192,229, 26, 56, 47,235,245,122,203,183,156, 37,186,135,171, 7,213,201, -217,105,237,197,234,229,245, 15, 87, 15,120,191, 12, 1,152,236, 78,107,115,222,171,171, 99, 67,207, 10,133,119, 98, 98,253,215, -234,249,119,225,252, 55,131,221,121,109,190, 78, 87,209,143,216,108,150,164,252, 65,221,253,136,211,121,109, 78,245,242,186, 7, -171,237,235,226, 20,152,240,138, 60,156,108,183,214,197,153,154, 83,184, 68, 89,166,182,174,139,179,177, 99,211,197,193,161,159, -225,237,216,100, 2,179,178,115,115, 47,255,143,245,165, 14, 0, 86, 3, 48,171,246, 91, 60,128,207,233, 94, 73,131, 6,141,191, -153,208,138, 67, 69,158,195,159,223,138,173,159,107, 21, 90,122,189,222, 46,246, 84, 48,148, 26,160,223,148,181,118,238, 35,247, -252, 41, 81,178, 94, 93,194,149, 62, 63,230,203,212,201, 44,109, 89,229,102, 57, 57, 57, 20, 0, 80, 20,245, 11, 0,215, 26, 56, - 45, 99, 79, 5,163, 76, 11,248,143, 15,181,116, 5,204, 10, 56,156, 47, 76,132,194, 62, 42,149,170, 21, 0,152,152,152, 60, 87, - 41,149,215,108,203,203,183,188, 95,190,182,150, 85,175,107,223,201,107,237,124, 70,238, 89,104, 48, 26,185,111, 30,237,246, 87, - 23, 38,179,216,122,205,174,149,192,249,224, 26, 68, 85, 45,124,127, 28,247,227, 21,214,108,160, 47,151,207,111,107, 97,105,217, -211, 72, 72, 11,163,209, 72, 25,244,250, 4, 89,105,233, 45,163, 94,255, 68,175, 85, 90,199, 70,126,107,172,171,158,239,183,229, - 99,128,117, 10, 8, 20,138, 68,125,152,108,118, 55, 0, 48,232,116,119,149, 10,197,181, 81, 64,120, 67,218,222,208,243,243,161, -229,255,109,208,233,244,118,105, 23,131,161,209, 1,126, 99,190,181,107, 51,241,215, 35, 0,160,149, 60,177, 87, 36, 71,118, 6, - 0,161, 71,192, 3,158,216, 47, 31, 0, 88, 25,185,118, 47,163, 86, 65,163, 3, 90, 4,132,218,213,199, 57, 45,232,184,245,178, -217,163,121, 0,112,233,228, 15,205,175, 70,252, 52, 4, 0,250,142,158,123,126,224,152, 5, 47, 1, 96,211,207, 17,214, 71,191, - 29, 91, 39,103,195,198,102, 41,167, 52, 57,202, 83, 43,203,181,112, 17,178,196,201,201,201, 12, 0,112,116,116,108,208,216,116, - 6,204,115,129,249, 12, 38,179,167,135,167,167, 31, 0,146,250,234, 85,156, 65,175,191,237, 0,236,250, 15,247,165,133,132,188, - 27,156,149,162, 40,186, 67,210,160, 65,227,239,134,115,111,197,213,185, 63,189,204,214,182,135, 82, 3,220, 72, 1,122,117,105, -131,217, 19, 63, 18, 85,223, 22,190, 39,212, 53,249,209, 25,159,125,191,110, 97,180,105,211, 6,105,105,105, 13,170, 69,153, 22, -184,158, 12, 64,250,194,180, 68, 40,124,181,109,243,102,179, 1, 3, 6,176, 28, 29, 29, 65, 81, 20,242,242,242,186, 68, 71, 71, -119, 88,188,120,241,167,144,190, 40, 41,211, 66,126, 61,185,126,222,202,186,182,106,222, 4,171, 23,140, 53, 7,128,149, 83,118, -117,120,148,148,111,245,234,213,171,126, 95,125,245, 85, 17,243,218,181,159,108,128, 3,249, 64, 86, 67,234,121,232,236, 3,190, -121,238,111,238,147, 22, 44, 56,233,233,233, 41,114,115,115,163, 76, 77, 77,193,100, 50, 81, 82, 82,226,250,236,217,179, 33, 15, - 31, 62, 84, 70,223,248,133, 27,243,112,120,170,132,223, 89,221,160,182,171,114,248,151, 76, 77,159, 79, 30, 53,202,121,236,216, -177,124, 15, 15, 15, 0,192,171, 87,175,188,194,195,195,199,159, 60,121, 50, 8,170, 28,125,153, 22,234,250,218, 94,197, 9,128, - 15,116,179,176,179,155,196,100,179, 91,233,245,122,167,183,214,134, 55, 6,157,238,185, 84, 34, 57,252,126,121, 26,127,134, 70, - 7,188,200, 5,250,247,244,195,228,209,253,133, 0,240,213,184,117, 93, 50, 94,167,112,180, 90, 45,154,123,183,232,254,205,183, - 91, 47,130,193, 64, 88, 68,116, 85,249,134,112,198,191, 72, 67,240, 55,219,144,243, 52,188,139,161, 52,165,143, 92, 86,202, 4, - 0, 51,115,243,209,225,199,126,187,230,232, 27,120, 63,165,176,188, 65,156,117,141,205, 11,199,118, 58,100, 63,187,214,242,199, - 75,251,217,174,174,174,120,250,244,105,227,198,102,105,146,169,209,193, 33, 97,203,151, 95,138,253,253,253, 33, 18,137,192, 98, -177,160,215,235,251,223,190,125,187,127,112,112,240, 92,148, 38, 41, 27, 58, 54, 27,128, 45, 20, 69,245,153, 54,123,161,195, 71, - 35, 2, 49,122,112,119,186, 35,210,160, 65,227,239,134, 74,235, 85,245,149,135, 63,215, 41,180, 88, 44,150,100,192,212,245,118, - 61, 59,183,198,163, 39, 47, 75,211, 51,115, 21,149,219,138,159,135, 55, 31,209,221,169,229,205,155, 55,160,209,104,112,247,238, - 93, 60,121,242, 4,175, 95,191,198,156, 57,115, 52,111,167, 14,107,226, 44,241, 31, 31,106,137,210,100,145, 23, 55,169,105,116, - 98, 34, 83,173, 86,227,230,205,155, 40, 41, 41, 1,151,203,133,179,179, 51, 6, 14, 28,200, 74, 76, 76,180,234, 55, 96,176,185, -255,224, 9,105, 48,247, 82,176, 88,172,146,218,242,136,176, 88, 44, 73,191, 41,107,237, 90,122, 53,193,171,244,156,210,213,223, -238, 83, 24,141,132,149,250, 58,163,252,198,141, 27,240,243,243,195,229,203,151,173,139,139,139,191,222,181,107,215,106,246,198, - 31,183,235,180, 69, 75, 81, 59, 95,137,255,248, 80, 75,107,201, 9,183,171, 23, 78,115,158, 63,127,206,217,189,123, 55,138,138, -138,192,229,114, 97, 97, 97, 1,177, 88,140,230,205,155, 83, 43, 87,174, 20, 5, 4, 60,199,103,179, 2,221,202,221,103, 38,213, - 86,207,170,182, 43, 50, 4, 54,178, 75, 30, 17,231,206, 49,122,244,232,241,206,107,123,179,102,205, 48,104,208, 32,254,164, 73, -147, 60,198,142,159,104,244, 31, 58,237, 21, 68,110,101,245,114, 42,179, 76,172,203,238, 57,246, 31, 63, 62, 50, 52, 52,212, 66, - 44, 22, 67, 40, 20, 2, 0, 74, 75, 75,157,211,211,211,187, 4, 5, 5,141,121, 16,127,140,229, 31,144,149, 3,161,139,170,174, -243,249,111, 5,155,205,146, 84, 90,145, 76,133, 38, 37, 89,217,249, 74, 0,208,106,181,208,106,181,208,104, 52,152, 55,119, 14, -115,214,152, 78,158,110, 61, 23, 62,126,253, 38,191,184, 69,244,125,171,202,125,117,245,112,178,202, 94, 75,165,153, 87,102, 5, -127,249,165,216,222,254,143, 25,193,176, 67,135,152,197,197,197,253,131,131,131, 91, 18, 65,111,105,139,128, 80,139,186, 56,235, - 26,155,210,151,231,154,126,179, 96, 80,219, 61,223, 70,193, 96, 48,224,222,189,123,184,121,243, 38,182,110,221, 74,206,159, 63, - 95,106, 38, 20,206, 66,157, 99, 51,201,180,135, 67,158,251,198,141, 39, 41, 30,143,135, 51,103,206, 32, 49, 49, 17, 12, 6, 3, -109,218,180,193,228,201,147,209,191,127,127,241,236,217,115,136,255,224,113,169, 48,247,150,255,197,190,196, 0,176,112, 69,240, - 70,135, 41, 51,231, 99,211, 55, 43,105,161, 69,131, 6,141,191,179, 53,171,214, 16, 15,136,138,138, 34,111, 63,189, 0,128, 0, -140,102, 35,247, 28, 61, 17, 99, 60,215,108,228,158,163, 4, 96, 16,128, 97, 6, 52,105,215,174,157, 78, 42,149,146,135, 15, 31, -146,121,243,230, 41,183,111,223,126,237,220,185,115,225,250,242,242,189,142, 14, 14,223,145, 90, 28,236, 9,192,112, 3,204, 5, - 2, 65, 65,102,102, 38,249,253,247,223, 73, 72, 72, 8, 57,124,248, 48, 57,127,254, 60,137,142,142, 38,231,207,159, 39, 71,143, - 30, 37,241,241,241,228,229,203,151, 68, 40, 20, 22,184, 1,230,117,112, 50, 9,192,108, 62,114,247,210,147,143,116,161,222, 35, -247, 44, 38, 0,211, 18,240,105,215,174,157, 33, 60, 60,156,132,133,133,145, 95,127,253,149,196,199,199,147,194,194, 66,194,226, - 9, 11, 42,247,171,173,158, 4, 96, 56, 57, 57, 21, 72,165, 82,226,226,226, 66,184, 92, 46,177,183,183, 39,205,155, 55, 39, 93, -186,116, 33, 67,134, 12, 33, 19, 39, 78, 36, 95,127,253, 53,145, 74,165,132,207,231,231, 87,238, 87, 27,167, 31, 96, 34, 20, 10, - 51, 99, 99, 99, 73,109, 80,169, 84,164,176,176,144, 92,188,120,145, 8,133,194, 76, 63,192,164, 46, 78, 19,160,189,175,175,111, - 65, 97, 97, 33, 41, 47, 47, 39,153,153,153,228,217,179,103, 36, 49, 49,145,100,102,102, 18,149, 74, 85,197,253,242,229, 75,226, -238,238, 94, 96, 2,180, 39,244, 34,136, 90,251,210,251, 31, 87,123,251, 33, 98,177, 88,117,242,228, 73,242,230,205, 27,114,240, -224, 65,194, 0,214,189, 95,174, 46, 78, 46, 48,176, 71,143, 30,134,123,247,238,145,199,143, 31,147,229,203,151,147, 65,131, 6, -145,193,131, 7,147,224,224, 96,146,157,157, 77,178,179,179,201,144, 33, 67, 12, 92, 96, 96,125,253,179,166,177,105, 14,184, 6, - 4, 4,168,202,203,203, 73,106,106, 42,105,213,170, 85, 54, 19,152, 36, 4, 90,246, 2,120,245,245, 79, 39,192,210,193,193, 33, -247,222,189,123, 36, 34, 34,130,184,185,185, 21, 48,129,105,102, 64, 51, 51,160, 25, 19,152,214,172, 89,179,130,123,247,238,145, -162,162, 34,226,234,234,154,235, 4, 88,254,133,190,196, 0,176,127, 69,240, 70,146,148,173, 36, 43,130, 55, 18, 0,153,132, 16, -130, 26,124, 60,105,208,160,241,207,199,251, 90,228,159,130,170,155,100, 64, 64, 0, 5,224,122, 93,133, 85, 76,230,250, 77,155, - 54,177,212,106, 53,246,237,219, 39,255,120,204,152, 19,189,122,246, 76,109,234,230, 38,165, 24,140,122,179, 13, 23,240,120,139, - 54,109,218,100,161,213,106, 17, 19, 19,131, 14, 29, 58, 64, 44, 22, 67, 36, 18, 65, 36, 18,193,206,206, 14,222,222,222,144, 72, - 36, 48, 53, 53,197,178,101,203,204, 11,120,188, 69,245,241, 26,141,132, 5, 0, 6,163,145,203, 1,102,187,119,236, 24, 19, 20, - 20,196,176,182,182,134,149,149, 21, 68, 34, 17, 18, 19, 19,161,213,106, 33, 48, 17, 52, 40, 72, 43,131,193, 96,136, 68, 34, 92, -189,122, 21, 11, 23, 46, 68,183,110,221, 96, 97, 97, 1, 83, 83, 83,180,106,213, 10, 3, 7, 14,196,172, 89,179,144,154,154, 10, -170, 1, 78, 37, 9, 44,214,252, 89,179,102,217,249,249,249,213,184, 93,173, 86, 67, 42,149,162,160,160, 0,206,206,206, 8, 12, - 12,180, 75, 96,177,230,215,198,103, 13,136,157,189,188, 34, 31, 62,124,104, 35, 20, 10, 17, 22, 22,134,211,167, 79,227,194,133, - 11,248,253,247,223, 17, 21, 21,133, 51,103,206,160,160,160, 0, 0,224,229,229,133,227,199,143,219,136,236,236,162,172, 1, 49, - 61,164, 27,134,140,252,252, 75,173,242,242,108, 38, 77,156,120, 75,161, 80, 96,210,164, 73, 88,191, 97,195, 74, 54,176,184, 33, -251,123, 3,230, 86, 14, 14, 7, 54,110,220,200,200,203,203,195,168, 81,163, 10,183,108,216, 48, 35,238,226, 69,143,216, 11, 23, - 60,214,135,134,206,232,213,171, 87, 97,118,118, 54, 14, 29, 58,196,176,119,117, 61,224, 13,152, 55,182,158,114, 96,225,247,223, -127,207, 87,171,213, 24, 48, 96, 64,170,241,249,115,111, 61,240,155, 2, 72,188, 14,148,215,183,127, 46, 48,127,217,178,101, 98, - 30,143,135, 47,190,248,162,176, 44, 35,163,181, 30,248,181, 20, 72, 47, 5,210,245,192,175,242,180,180,214, 83,166, 76, 41,228, -241,120,216,182,109,155, 56,247,143,164,219, 13, 69, 7, 0,145, 0,110, 0,200,153, 54,123,225, 52,191, 78, 93,113,104,239, 46, -124, 27,250,213, 1, 0, 31, 83, 20,117, 24,192, 82,186,231,209,160,241,239, 68, 67,180,200,255, 40,106, 77,185,195,170,174, 36, - 1,244,174,139,197,210,218,186, 67,235,214,173,113,243,230, 77,248,250,250, 62,180,176,176,208,115,120, 60,176,217,108, 16, 99, -189, 58, 11, 38, 66, 97,191,254,253,251,179,238,223,191, 15,119,119,119,152,152,152,128,205,102,191,243,225,112, 56,112,112,112, -128, 76, 38, 67,191,126,253,216, 59,118,236,232, 7,141,230,155,122, 31,136,201,207, 68, 5,247, 55, 78,252,229,224,129,102,254, -254,254, 40, 45,149,193,104, 52, 66, 32, 16, 64,171,213,130,197, 98, 85, 76, 1,233,136,172, 33,103,204, 96, 48, 24,152, 76, 38, -220,221,221,177,126,253,122,168,213,106,112, 56, 28, 0,128, 76, 38,131, 84, 42,197,179,103,207,144,158,158,142,183,111,225,117, -194,212,220,252,163,177, 99,199,214,152,240, 87,163,209,160,180,180, 20,165,165,165,144, 74,165, 80,171,213,232,218,181, 43,247, - 92, 84,212, 71, 40, 42,218, 82,227, 62,124,254,152, 67,135, 14,217,113,185, 92,168, 84, 42,200,229,114,100,101,101, 33, 35, 35, - 67, 45,145, 72,244,166,166,166, 12, 55, 55, 55, 6,143,199,227,141, 28, 57,146,146,201,100,160, 40, 10, 1, 1, 1,214, 71,194, -194,198, 66,171,221, 74, 15,233,134,225, 18,160,105,175,213, 14,235,220,169,211,213,135,143, 30,249, 45, 90,180, 8,241,241,241, - 27, 5,199,142,221, 40, 3,158,212,181,111, 42, 48,255,187,106, 2,134,100,100,248,150, 3, 5,213,138,164,187,165,165, 93,152, - 50,101,202,211,248,248,120,155,109,219,182,137, 63, 30, 53,106, 62,128,117,141,169,163,169,185,121, 71, 7, 7, 7,156, 63,127, - 30,153,175, 95,127,165, 7, 84,141,122,227, 98, 50,123,248,251,251,227,204,153, 51,200,206,200,248, 74,255,110, 29, 43, 94,148, -128, 2, 86,106,234, 87, 7, 14, 28,216, 63,125,250,116, 48, 89,172, 30,208, 55,106,226,240, 79,142,239,211,231, 44,194,129,159, -119, 28, 0, 48, 19,128, 17,192, 67,186,199,209,160,241,239,182,106,213,167, 69,254, 70, 98,235,231, 70, 91,180,236,236,236,156, - 68, 34, 17,114,114,114,208,194,199, 71,194,227,241,192,101,179,193,231,114, 27, 84,131,178,178, 50, 95, 71, 71, 71,148,150,150, -194,198,198, 6, 28, 14,167,234,195,229,114,171,254, 54, 53, 53, 5,131,193,128,171,171, 43,202,202,202,124,235,229,205,127,102, -119,108,199,220,121,247,110,156,111, 54,106,212,104, 88, 90, 90,193,197,197, 25,118,118,118, 48, 49, 49,129,139,139, 11, 60, 60, - 60,200,150, 45, 91, 32,176,107,211,160, 27,121,117,241,196, 98,177, 96, 48, 24,144,159,159,143,164,164, 36,196,199,199,227,222, -189,123,120,252,248, 49,228,114, 57, 26,160,179, 80,166, 82,181,101,177, 88, 53,138, 44,169, 84, 10,169, 84, 90, 37,180, 10, 10, - 10,144,158,158, 14,133, 82,217,174, 14,209, 59,186,117,235,214, 76, 0, 48, 49, 49, 65,187,118,237,176,103,207, 30,253,217,211, -167,199,181,188,119,207,202,229,226, 69,139, 95,118,239, 30, 23, 24, 24,104,184,127,255, 62,100, 50, 25, 94,188,120, 1, 91, 91, - 91, 22,151,207, 31, 75, 15,231,198, 33, 22, 80,218,200,229,131,187,117,235,150, 86, 90, 90,138,205,155, 55, 51,216,166,166, 63, -135,214, 50,197, 87, 5, 38,179,187,191,191, 63, 34, 35, 35,145,147,145,177, 60,163, 6, 1,147, 1, 20,100,166,166, 46, 63,112, -224, 0, 6, 14, 28, 8,138,197,106,180,163, 82,151, 46, 93, 90, 27,141, 70, 60,125,250, 20, 22,192,131,198,238,239,225,233,233, - 87,105,249, 21, 2,183,106, 43, 39, 4,110,197,197,197,193,196,196, 4, 45, 90,182,108,223,200,195,108,161, 40, 42,119,250,156, - 69,136,184,112, 7, 0,112,224,231, 29,249,213, 68, 22, 13, 26, 52,104,139,214,223,213,162, 85, 41,172,170,127,240,142,208,106, -160,248, 0, 0,176,217,108,112,121, 60,112,185,220, 10,129,196,227, 53,152,131,162, 40,240,249,252, 42, 97, 85, 93, 96, 85,255, - 91, 32, 16, 52, 72,192, 0, 64, 73,202,133,158, 51,103, 76,231,242,120, 60,104,181, 26, 16, 66,192,227,241, 97, 97, 97, 1,119, -119,119,200,100, 50,116,235,222, 75,147, 37,229, 68, 89,183, 24, 25,255, 33,103, 79,175,215, 67,169, 84,162,164,164, 4,197,197, -197,144,201,100, 80,169, 84, 13, 94,138,110, 52, 26,153, 89, 89, 89,248,237,183,223, 80, 84, 84, 4,160,194,209,186, 82, 92, 85, -126,167,165,165, 33, 44, 44, 12,175, 95,191,110,212,245,233,217,179, 39,162,162,162,152,189,251,245,219,123,217,205, 45,231,178, -155, 91, 78,239,126,253,246, 70, 70, 70, 50,157,156,156,144,158,158,142,152,152, 24,148,148,148,128, 16, 66,175,159,255, 0,188, - 2, 74,202,138,139,167,175, 92,185,146,136, 68, 34,108,254,238,187,182,235,128, 9, 13, 21, 48,230,117, 8, 24,243,191, 38, 96, - 64, 8,129,209,104,132,193, 96,248,160,182, 81, 20, 69,177,217,236,198,134, 86,104, 76,225, 42,199,247,101, 95,175,199,239,103, -194, 43,127, 79,166, 69, 22, 13, 26, 52,254, 1,168,213, 17,158, 85, 77, 65, 86,125,215,134,252,252,252, 55, 74,165,178,153,155, -155, 27,178,179,179,237, 92, 93, 93, 51,184,108, 54, 56, 92, 46, 40, 70,253,154, 64, 32, 16, 60,205,201,201,233,238,228,228, 4, -189, 94, 95, 37,170,222,159, 58,172,180,210, 60,126,252, 24, 2,129,224, 41,212,117, 70, 78,128, 65, 91,210,164,125,251,246, 85, -150, 33, 11, 11, 11, 88, 88,152,131,199,227, 99,213,170, 85,198,109, 91,182,236,114,237, 27, 90,250,201,226,149,100,229,186,189, -255,209, 51,219,208, 7,147, 64, 32,120,234,226,226,210,213,220,220, 28, 17, 17, 17, 72, 79, 79, 71, 73, 73, 9,202,202,202,160, -209,104, 80, 86, 86, 6,173, 86, 11, 62,159,143,150, 45, 91,194,204,204, 12,209,209,209, 79,161,209,212, 44, 46,139,138, 34,158, - 62,125,218,181, 83,167, 78, 85, 22,149, 62,125,250, 80,125,250,244,177,169,178,162,149,149,161,176,176, 16, 15, 31, 62, 68,116, -116, 52, 40,148, 28,221,209, 0, 0, 32, 0, 73, 68, 65, 84,138, 66,114,114,178, 65,163, 82, 29,165,199,196,135, 65, 13,220,101, - 30, 56,176,255,211, 79, 63,157,209,189,123,119, 24,128, 33, 0,194,254, 63, 10, 24, 0,192,189,123,247,158, 25, 12,134,238,205, -155, 55,135, 20,232, 12,224, 76,163, 68,100, 74, 74,156, 94,175,239,215,182,109, 91, 68,156, 56,209, 19, 64,122, 77,229,148, 64, - 79, 63, 63, 63,168, 84, 42,188, 72, 72,136,109,132,200,218,187, 34,120,227,180, 41, 51,231,227,208,222, 93, 56,240,243,142,172, -253,123,182,187,160, 1,254, 99, 52,104,208,248, 87, 89,179,234,213, 34,255,163,152, 93,155,248, 98, 53,134,165,180,164, 36, 54, - 46, 46,174, 89,251,246,237,177,119,239,222, 78,221,186,118,125,195,225,114,245, 92, 14, 7,140, 6, 60, 72, 84, 74,229,149, 43, - 87,174,116, 30, 57,114, 36,235,254,253,251, 16,139,197, 85, 66,171,242,155,197, 98,129, 16, 2,129, 64,128, 83,167, 78,149,171, -148,202, 43,245, 90,139, 12, 70, 3,227,173,208, 35,132, 64, 42,149,130,195,225, 96,235,214,109,216,185,101,203, 68, 3, 16,238, - 37,180,253, 18, 0,255,255,219, 3,186,172,236,234,239,191,255,222, 33, 40, 40,136,237,236,236, 12,169, 84,138,146,146, 18, 20, - 21, 21, 65, 38,147, 65, 38,147,161,164,164, 4, 82,169, 20,124, 62, 31,241,241,241, 58,117, 89,217,213,218,248,120,106,245,201, -169, 83,167, 46,139,139,139,115, 96,177, 88,208,233,116, 48, 26,141, 48, 26,141, 40, 47, 47, 71, 74, 74, 10,158, 63,127,142,196, -196, 68, 20, 23, 23,131,205,102,131,201,100,226,241,227,199, 37, 66,157,238,132,150, 30,211, 31, 12, 54, 16,113,251,246,237, 25, -147, 39, 79,134,163,179,115, 47,100,103, 55, 72,192,156,174, 67,192,148,126,152,128,249, 67, 0,201,229,143,210,210,210,186,247, -238,221, 27, 14,206,206, 27, 91,102,103, 95, 78,104,132,159,150, 65,175,191,117,251,246,237,126, 83,166, 76,193,222,189,123, 55, -218,166,165, 93, 40,120,111,154,211, 22,176,109,234,225,177,113,218,180,105,184,116,233, 18, 12,122,253,173, 58, 40,171, 71,124, -111, 50,109,246, 66,151,247, 28,223,247, 80, 20,181, 0,192,102,186, 71,209,160, 65,227,159,108,209,106,212,212,161,137,193,176, - 98,233,210,165, 58, 6,131,129,209,163, 71,155,158,137,140, 12,124,252,228,137,187, 68, 34,177, 48, 24, 12,245,114,217,106, 52, -219,151, 46, 93, 42,213,106,181,240,246,246, 70,113,113, 49, 12, 6, 3, 88, 44, 22, 88, 44, 22, 40,138, 2,131,193,128, 72, 36, - 66, 92, 92, 28,246,239,223, 47,179,213,104,182,215,251,144, 48, 24,158,134,133,133,129,201,100, 18, 62,159, 15,138,162,192, 98, -177,176,109,219, 54,201, 78, 32, 2, 0,152, 12,134, 22, 0, 24, 12,170,161,222,187,245,206, 91,114,185, 92, 24, 43, 22, 1,212, - 91,214, 82,163,249,126,211,166, 77,242, 23, 47, 94, 64,169, 84, 86, 89,223, 20, 10, 69,149,115,189, 84, 42, 5, 69, 81, 80, 42, -149,136,140,140,148, 91,106, 52,223,215,198, 87, 4,228,101, 39, 39, 15,239,212,169, 83, 81, 90, 90, 26, 74, 75, 75,241,244,233, - 83, 68, 71, 71,227,248,241,227,184,116,233, 18, 82, 82, 82,160,215,235,225,228,228, 4, 66, 8, 78,159, 62, 93,170,151,203,135, - 20, 1,121,244,152,168, 29, 77,196,226,126,246,118,118,153,182, 54, 54,217, 77,196,226,126,239,111, 55, 7, 94,190,124,249, 18, -122,189, 30,238,238,238, 86,117,249,105, 17,189,254,246,237,219,183, 49,101,202, 20,184, 52,107,182,193, 13,176,125,191,140, 27, - 96,235,230,225,177,161, 82,192, 16,189,254,118, 99,235,108, 10,236,248,242,203, 47, 85, 28, 14, 7,199,142, 29,115,215,121,122, - 38,178,128, 9, 34,192,167, 55,192,169,111,127, 7, 96,215,215, 95,127,157, 71, 81, 20, 14, 31, 62,108, 99,238,225,241,140, 5, - 76, 53, 7,154,152, 3, 77, 88,192, 84,115, 15,143,103,199,142, 29,179,209,235,245, 88,188,120,113,158, 3,176,171, 14,202,133, -132,144, 97,132, 16,127, 66,136,203,254, 61,219,241,251,153,240, 74,145, 53, 19, 21, 78,239,147, 1, 60,163,123, 28, 13, 26, 52, -254,201,168,209, 12,197,234,180, 54, 31, 32,118,189,186,180,193,163, 39, 73,165, 54,150,102, 23, 43,183, 21, 63, 15,111,222,215, -215,172,205,143, 63,254, 8, 54,155,141,172,172, 44, 36, 36, 36,192,204,204, 12, 19, 39, 78,212,168,228,242,225,213,114, 29,246, - 7, 16,253,150,179, 34,159, 90,105,178,200,131, 21,223,236,194,239, 81, 76,115,115,115, 40, 20, 10, 48, 24, 12,240,249,124, 8, - 4, 2,152,152,152, 32, 38, 38, 6, 67,135,141, 48, 20, 8,252,255, 8, 88,250, 71, 62,181, 42,206,202, 88, 67,157, 1, 65, 28, -240,133,157,163,227,210,213,171, 87,155, 12, 26, 52, 8, 28, 14, 7,206, 77,188,242,220, 7,111,222,193, 96, 80,250,236, 34,217, - 42,143, 38,142,230, 9,201,233, 0, 40,137,238,225,106,199,106,185, 14,255, 84, 79, 87,237, 13,247, 83,191,110, 49,107,215,174, -194, 31, 93, 42,149, 34, 63, 63, 31, 18,137, 4, 82,169, 20, 74,165, 18, 0, 16, 21, 21,133,223,111, 38,202, 84,206,129,169,181, -213,243,143,182, 39,153, 58,150, 63,104,122, 36,236, 87,166,173,173, 45,242,243,243, 81, 80, 80, 0,169, 84, 10,149, 74, 5,131, -193,128,226,226, 98,236, 59,240,171,161, 72,228,255,186, 42, 32,100, 93,156,202, 44, 19, 43,197, 29, 39,191,150,110,100,198,140, - 25,166,102,102,102, 48, 26,141, 40, 41, 41, 65,102,102, 38,210,210,210,112,243,230, 77,165, 68,170,133,210,102, 64,118, 85,192, -210, 26, 56,255,131,248,219,113, 86,143, 91,229,232,224,144,147,145,145, 97,103, 48, 24,224,228,228,164,151, 22, 23,111,224, 2, -151, 76,129, 92, 0,164, 16, 88,253,253,142, 29,211, 71,140, 24,129,142, 29, 59,102,229,229,231, 55,173,169, 47, 17,128,233, 13, -152,151, 57, 59, 63,127,248,240,161, 56, 51, 51, 19, 83,166, 76, 41,204,120,245,106,121,165,191, 86, 41,208,211,205,195, 99,195, -177, 99,199,108,154, 53,107, 6, 95, 95,223, 60,126,102,102,171, 36,160,180,150,254, 89,235,216,148,190, 60,215,116,238,168,214, - 29,231,205,155, 7,189, 94,143,155, 55,111,226,193,131, 7,200,200,200,192,157, 59,119,164,102, 66,225,184,106,185, 14,107,236, -159, 67,188,148,238,135, 15,135, 81, 28, 14, 7, 7, 14, 28, 64, 92, 92, 28, 0,192,207,207, 15,211,166, 77,131, 94,175,199,164, - 73,147,201,185, 36,147,212,186,250, 39,128,214, 0,190, 67,133,200,235, 72, 8,225, 83, 20,149, 3,192, 5,141,243,201,162,251, - 39,205, 73,115,254,123, 56,255,145,168, 55,215,225,218,159, 96,254,110,154,143, 89, 57,225,123, 66, 89, 61,122,250,251,132,134, - 4, 51, 58,117,234, 4, 23, 23, 23,248,249,249, 33, 51, 51,147,103, 97, 97, 81, 95, 62, 53,133,255,224, 9,105,109,218,180,177, - 88,190,124,185,249,192,129, 3,217, 46, 46, 46, 32,132, 32, 46, 46, 14, 17, 17, 17,229,123,247,238,149,149,217, 15,147,198, 94, -251, 77,209,144,124,106, 15,128, 50, 0,107,156,115,114,126,158, 63,119,110,112,187,246,237,103,132,132,132, 48, 68, 2, 19,246, -250, 85, 51,249, 0,176,246,135,227,230, 35, 2, 39,226,123, 79,160,215,132,154,243,200, 85,175,103,102,246,172,140,143, 70,245, -243,252, 98,193,116,195,216,177, 99,133,102,102,102,112,113,113,129,165,165, 37, 82, 83, 83,145,157,157, 77,206,158, 61,171,184, -247,248, 37,251,244,165, 71, 25,124,115,135,134,228, 37,148,251, 15,250,248,245, 71, 31,125,100, 57,117,234, 84,211, 14, 29, 58, -176,121, 60, 30,120, 60, 30,242,243,243,145,146,146, 82,126,246,236, 89, 69,153,221,144,146,216,107,199,228, 13,204,117,168,242, - 31, 31,154,114,235,114,200,226,231, 79,159, 78, 54, 2,109,203,203,203,157, 12, 6, 3,197, 96, 48,114,141, 70,227,211,114,185, -124,191,198, 47,100, 27,157,235,176, 97, 48, 24, 12, 28,131,193, 0,169, 84,138,203,151, 47,179, 94,189,122,181,250,201,147, 39, -171,115,114,114,160,211,233, 48,102,204, 24,248,249,249,225,218,181,107, 40,200,207, 63, 91, 23, 87, 18, 80,202,203,206,158, 54, -107,214,172,243, 97, 97, 97,140, 39, 79,158,216, 28, 56,112, 96, 95, 77, 2,102,242,228,201,198,252,204,204,105, 26,160,180,142, -254, 89,215,216, 44,188,112,108,231,147,145,163, 3, 91,134, 4,173,102,119,235,214, 13, 54, 54, 54,232,217,179, 39,202,203,203, - 45, 90,180,104, 81,223,216,148,251, 15, 30,151,218,182,109, 91,225,182,109,219,196,211,167, 79,199,130, 5, 11, 0, 0, 42,149, - 10,151, 46, 93,194,226,197,139,243, 50, 89,157,149,245,245,207,183,150,170, 74, 1,118, 3,128, 63,128, 84,208,142,239, 52,104, -208,248,103,162, 50,169,180, 3, 42, 18, 75,159, 67,197,203,121,253,185, 14,111, 61,120,134,234,105, 62, 42,224,144,160,119,157, -250,106,206,210, 13,190, 76,157,204,146, 77,169,205,146, 95,190,164,234,203,121, 88,149, 79,205,220, 75, 97,157,118,180,211,250, -181,107, 23,125,255,253,247,253, 42, 67, 56, 8, 4,130,167, 42,165,242,138,173, 70,179,189,204,220,235, 74, 99,115,243,101, 3, -249, 0,230, 90,198,198,238, 8, 24, 49,102, 19,223,202,157,189,114,221, 94, 53,147,193,208,166,228, 20,224,123, 79, 64,216,128, - 5,146,101, 90,224,185,212, 65,159,111, 29,152,244,245,151, 95,126,177,118,205,154, 78, 34,145,168, 87,185, 94,239,101, 52, 26, - 1,163, 49,185, 76,169,188, 65,202,203, 31,106,252,130,182,240,205, 29, 72,131,243, 18, 90,180,144, 91,189, 14,239,116,112,255, -254,133, 39, 78,156,248, 83,219,173, 53,154, 29,101, 22, 45,162, 27,210,246,234,101,212,192, 93, 72, 36,119,235, 50, 93,210,185, - 14, 27,248,246, 97, 52,206,182,180,180, 60,212,175, 95, 63,126,255,254,253, 49,116,232, 80,116,235,214, 13, 70,163, 17,132, 16, -200,229,114, 28, 63,126, 28,155, 54,109, 74,110, 10,172,169,143, 79, 3, 92,225,253,254,251,144,182,109,219, 30,168, 75,192,188, - 21, 89,245,250, 36,214, 61, 54,121,201,122,243,225,233,227,231,175,247,212,202,114, 45,172, 5,122,241,243,103, 79, 25, 13, 31, -155,222,114, 67,220,241,206, 99, 70,141,154,207,100,177,122,190, 93, 1, 73, 94, 36, 36,196, 86, 38,149,134,223,180,203,141,236, - 75,149,177,235,104,199,119, 26, 52,104,252,211,133,214, 80, 84,248,107, 85,165,228,169, 53,215, 97,165,213,135,197, 98, 73, 82, - 79,207,153, 88, 23, 59, 27,232,247,214,146,133,122,115, 29,190,253, 59, 29,144, 67,163,249,230,157, 96,164,213, 86, 23,178,223, - 43,223,152,176,136, 37, 64, 18,244,154, 0, 72, 18,128,200,185, 21,124,157,214,126, 85,189, 77,181, 62,100,223, 57, 46,167, 88, - 13,220,130, 66,113, 11, 10, 69,141, 78,187,108, 22,167,184,190,122,190,223,246, 76, 64,246, 87,219,254, 62,103,189,226,225, 47, -156,207,127, 27,222, 20, 22,158, 6, 32,114,142,138,178,191, 16, 21, 53,246,139, 37, 75,198, 56, 56, 58,122,216,216,216, 88,154, -154,154, 50,238,223,191,159,166, 87,171,119,180, 3, 14,190,181,166,214, 11, 13,112,197, 59, 51,179,213,199,163, 70,205,167, 88, -172, 30,213, 5, 12,209,235,239,184, 3,187,234,178,100,125,232,216,116,225, 57,244,123,107,201, 2, 19,152,213,144,190,145, 93, - 81,143,117,208,235,215, 33, 62,190,134, 62,223,232,190,180,150,162, 40, 57,104,199,119, 26, 52,104,252,115, 81,153,239,240,220, -255,245,129,251,211,156, 52,231, 63,136,147,137,138, 85,116,244,249,164, 57,105, 78,154,147,230,164,209, 32,176,232, 83, 64,131, - 70,131, 97,192, 31,211, 96, 52,104,208,160, 65,131, 70, 37, 42,125,179,170,227,103,160,194,117,167, 54, 85,218,152,213, 4, 31, -162,108,163,105, 78,154,147,230,164, 57,105, 78,154,147,230,252,215,113,214,199,253,119, 92,205, 88,233,147, 85,229,155,245,127, - 5,218,172, 74,115,210,156, 52, 39,205, 73,115,210,156, 52,231, 63, 29, 14,111, 69, 86,245, 15,128, 70, 6, 44,165, 65,131, 6, -141,127, 42, 66, 66,192, 32, 4, 20, 33, 33, 12, 66, 78, 48, 9, 9,100, 18,130,191,148, 10, 36, 48,176,230, 96,182,159, 77,180, - 52,165,207, 56, 13, 26,255, 40,228,162,150,164,210,180,143,214,255, 95,184,138,197,226, 61, 0,168,188,188,188,217, 0, 50,233, - 83,242,191, 7, 43, 43,171,126,122,189, 30, 50,153,236,202, 63,177,125, 45, 61, 48,138, 48,208,162,234, 7,130,204, 23, 41, 56, - 84, 83,217, 22,158,152, 2,234,143, 88, 92,148, 17, 47, 18, 94,225, 84, 35, 14,199, 24,210,223,101, 23, 0,156,143,206,154,143, -255, 78, 92,173,230,182,182,182, 23, 89, 44, 22,203, 96, 48,204,149, 72, 36, 81,181, 11,161, 64, 38, 0,176,201,181, 21,210, 60, -187,229,159,127, 74,177,203, 52,251,165, 26,149,178,148,201,102,190,230,177,197,183,231, 76,103,156, 47, 81,116, 77,168,105,255, -240,240,240, 90,179,120,183,242,196, 16,134,161,229, 48,191,214,105,169,223,109,239,244,125, 47,119, 27,118, 90,214, 99,209,198, -221,165,123,184, 22,110,195,166,140,165,162, 88, 2,106,242,254,253, 69, 10,122,148, 53, 28,235, 1,171,114,192,151,205,227,185, - 24,244,122,123, 10, 32, 76, 22, 43, 95,167,209,100,113,128,248, 21,128,244,159,206,201,225,241,156, 13,122,189, 61, 0,252, 47, -214,147,198,187,168, 85,104,137, 68,162, 24, 6,131,225, 92, 61, 25,110,101, 62,193,202,223,170,111,163, 40, 10, 6,131, 33,187, -164,164,164, 67, 35,142,111, 6, 96, 44,128,202, 37,234, 71, 0, 28,199,135, 59, 28,155,113, 56,156,165, 66,161,176,175, 74,165, -106, 5, 0, 38, 38, 38,207,149, 74,229,213,242,242,242,239, 62,144,151, 5,224, 99,145, 72,212,135,193, 96,244, 33,132, 80,132, -144,107, 10,133,226, 42,128, 19, 0, 62, 36, 82,130,137,157,157,221, 58, 43, 43,171, 9, 43, 86,172, 40,178,182,182,246, 94,188, -120,241,163,226,226,226,223, 10, 11, 11, 87,161, 17, 57,234,254,203,240, 16,139,197, 71,216,108, 54, 51, 43, 43,171, 15, 0,184, -184,184, 92,211,106,181, 6,137, 68, 50, 17,192,171, 70,242, 9, 1,116, 17,137, 68, 29, 68, 34,145,191,193, 96,104,241, 54, 63, -227, 11,133, 66,113,179,188,188, 60, 6,192,125, 0,202,255,161, 49, 98,202, 98,177,194,222,246,117, 47, 0,242,127,218, 77,128, - 48,208, 34,225,121,162,119,149,240,106,229, 83,123, 97, 10,174, 53,148,109,176,208,234,219,203, 97,216,240,225, 3, 24, 0,160, -213,157, 31,118,245, 70,238,153,255,112,115,154,143, 30, 61,250,110, 88, 88,152,165, 70,163,193,236,217,179,143, 68, 71, 71,239, -146,201,100, 43,234,188,113,136, 44, 23,111,222,118, 73, 64, 81, 12, 0,176, 51, 26, 13,118,111,222,188,242, 74,120,118,119,240, -243,231,247,214,171, 18,175,222, 55, 82,236, 57,229,232,153,216,144, 74,180,112, 71,192,176, 49,163,134,174, 89, 19,130, 9,227, - 38, 52,121,254, 92,109,226,100,150,202, 45, 86, 9, 61,173,109,237,134,175, 89, 27, 78,221,190,117,122,120,216,129,208,171,211, -167, 91,247,165,197, 86,131, 64,173,101,177,186,152,123,122,250,143, 59,125, 26, 34, 23, 23, 22,139,199, 99, 0,128, 94,163,113, - 81,100,101, 57, 28, 27, 62,188,115,200,203,151,215, 67,128, 7, 52,231,255, 23, 78, 26,141, 17, 90, 12, 6,195,249,205,155, 55, -118, 66,161,176,226,102, 76, 8, 12, 6, 3, 12, 6, 67, 85,242, 98, 66, 72,213,183, 94,175,135,143,143, 79,131,222,104, 1,244, - 5,240, 73,239,222,189, 3,191,251,238, 59,182,175,175,111,101,202,144,158, 43, 87,174,252, 33, 46, 46,238, 36,128,131,168, 8, -222,216,208, 55,222, 65, 66,161,240,240,230,205,155,205, 6, 12, 24,192,114,116,116, 4, 69, 81,200,203,203,235, 18, 29, 29,221, - 97,241,226,197,115,149, 74,229, 36, 0, 23, 27,113,126, 90,155,154,154,134,143, 26, 53,202,185, 87,175, 94,252,150, 45, 91,194, - 96, 48,224,241,227,199,211, 99, 98, 98,198,159, 60,121, 50, 88, 46,151, 7,162,225,249,218, 40,145, 72, 52,213,204,204,108, 93, - 80, 80,144,213,164, 73,147,184,207,158, 61, 43,113,119,119,167,110,223,190,109,123,252,248,241,185, 27, 54,108,248, 88, 38,147, -173, 82, 40, 20,191,162, 1, 57, 20, 77, 77, 77, 99, 24, 12,134,115, 67,132, 48,128,198,136,225,118, 77,155, 54, 61,126,235,214, -173,166,233,233,233,134,145, 35, 71, 30, 2,128,171, 87,175,250,234,116, 58,106,224,192,129,231,179,179,179,199, 2,120,220,192, -182,183,177,178,178, 58, 51, 97,194, 4, 43, 15, 15, 15, 65,211,166, 77, 41,161, 80, 8, 38,147,137,210,210, 82,199,103,207,158, -245,127,240,224,129, 42, 58, 58,186, 88,163,209, 12, 7, 16,223,136,235,212,205,206,206,110, 50,155,205,110,173,215,235,157, 0, -128,197, 98,189,209,233,116,207, 36, 18, 73, 24,128,187, 31, 58, 64,236,237,237,119,174, 91,183,206, 70, 34,145,144, 13, 27, 54, -236,148,203,229, 83,255,169, 55,131, 35,191,157, 64,204,163, 7, 64, 69,218, 28,170,134,254, 71, 1,224,124,254,249, 18,116,232, -216, 25, 19, 39,124, 92, 47,231, 71,253,156, 55,179,185, 28,107,181, 90,125,183,180, 76,115, 66, 40,224,143,157, 48, 62, 32, 25, - 0,206, 95,184, 62,182, 83, 39,203,107,230, 2,222,199,124, 62,191,155, 78, 91, 94,244,251,149,236, 47, 27, 35,170,156,156,156, - 46, 90, 90, 90, 10,138,139,139,243, 10, 10, 10,126, 26, 54,108,216,218,131, 7, 15, 90,166,165,165, 33, 43, 43, 11,139, 22, 45, - 18,101,103,103,207,143,143,143,191,167,213,106,107,181,108,201,229,197,219, 87, 46, 31, 17,100,110,110,195, 20, 10,204, 96,106, -110, 5,119,143,182,232,210,109, 24,134, 12,157,129,148,228,184, 46, 7, 15,172,137,123,243, 38,250, 91,145, 85,179,181, 82,105, -211, 90,239, 75, 45,155,163,215,240, 81, 21, 34, 43, 40, 40, 4, 47, 19, 19,229,233,175, 25,159,157, 59,205, 18, 12,233,231,195, -211,107,243,210,111,223, 58,221,180, 71,207,145, 0,208, 33,236, 64,232,213,207, 38, 90,246,219,121,164, 68, 78, 63,146,106,191, -119,174, 97,179,167, 14,218,182,205,206,111,238, 92,142,226,245,235,242,212,221,187,203,242,111,222, 52,176,120, 60,226, 50,120, - 48,101,219,167, 15,127,238,139, 23,156, 59, 27, 54,248,179, 67, 67,221, 87,149,151, 31,166, 57,255, 79, 57,255,237,168,116,130, -175,190,250,240,231, 58,133, 22, 69, 81, 16, 10,133, 56,118,236, 24,216,108, 54, 88, 44, 22,216,108,118,173,127,187,186,186, 54, -164, 34,163,197, 98,241, 15,187,118,237,178, 31, 52,104, 16,248,124,126,213, 6, 38,147,137, 1, 3, 6,160,127,255,254,236,156, -156,156,241,199,142, 29, 27,191,126,253,250,124,169, 84,186, 0,111, 19, 67,215,129, 62,222,222,222, 17,151, 46, 93, 50, 81,171, -213,184,121,243, 38, 74, 74, 74,192,229,114,225,236,236,140,129, 3, 7,178, 18, 19, 19,173, 6, 12, 24, 16,241,242,229,203, 0, - 0,215, 26, 80,215, 14,118,118,118, 55, 78,156, 56,193,111,219,182, 45,149,146,146, 2, 63, 63, 63, 0, 64,105,105, 41, 70,142, - 28,201,159, 52,105,146,199,248,241,227,239, 75, 36,146, 94, 0, 98,234,225,107, 47, 22,139,127, 29, 53,106,148,227,250,245,235, -205, 76, 77, 77,145,158,158,158, 43, 22,139,189, 42,207,247,248,241,227,185,195,134, 13,115,216,180,105,211,246,240,240,240, 47, - 37, 18,201, 84, 0,177,117,170,214,183,130, 88, 32, 16, 32, 63, 63, 31, 71,142, 28,193,252,249,243,193,100, 50, 33,145, 72,112, -252,248,113,124,246,217,103,149,130,166, 65, 98, 88, 32, 16,244,247,244,244,220,119,245,234, 85,103, 11, 11, 11, 56, 58, 58, 50, -190,254,250,235,214,238,238,238, 38, 77,154, 52, 97,230,230,230, 34, 34, 34,194,125,242,228,201,103, 50, 51, 51,167,107, 52,154, -122,167,212,236,237,237,247,159, 59,119,206,245,249,243,231,216,189,123, 55,138,139,139,193,229,114, 97, 97, 97, 1,177, 88, 12, - 47, 47, 47,106,249,242,229,130, 97,195,134, 9, 22, 44, 88,176, 95,171,213,182,107,192, 53,106,107,103,103,183,167, 79,159, 62, -238,161,161,161, 22, 98,177, 24,149, 47, 6,165,165,165,206,233,233,233, 93,130,130,130, 2, 99, 98, 98,210, 36, 18,201, 28, 0, - 79, 26, 57,112,218,181,108,217, 50, 96,228,200,145,204,220,220, 92,132,133,133, 5,200,229,242,118,141, 16,151,127, 43,196, 60, -122,128,217,243, 22, 41, 28, 93, 92, 56,151, 46,238, 27, 29,126,170,249, 35, 11,147,138,132,212, 82, 21,202, 3, 71,189,236, 56, -112,208, 12,206, 71, 67, 71, 42,126,254,113,187,168, 33, 66,139,205,229, 88, 31, 57,188, 53,243,214,237,152,214,151,163, 31, 12, - 30, 61,124, 56,225,112, 44,220, 1,224,203,197,159,179, 35, 34, 35, 15, 12,232,223, 57,167,103,143, 14,153, 19, 39, 45,113,109, - 68,117,155, 55,111,222,252,122, 92, 92,156, 61,143,199, 67,113,113,177,245,207, 63,255,188,181, 71,143, 30,140,212,212, 84, 36, - 38, 38,226,245,235,215, 40, 45, 45,197,128, 1, 3, 68,177,177,177, 63, 1,168, 85,104,149, 51,250,174,115,108,162,219, 97,109, - 34,108, 90,110,144,217, 17, 93,110,203,203,231, 46,183, 57, 26,166,242,179,119,240,241,250,100, 90, 48,214,172, 61,201,254,237, -200,198,160, 43,209, 71, 1, 70,211,218, 51, 2, 16,116, 91,185,106, 5,100,114, 13, 38, 77,152,133,201, 19,102, 89, 19,104, 29, -136, 65, 45,212,170, 74, 44, 76, 57, 47,162,118,237,221, 58, 10,128,115, 53,177,117,133, 22, 91,181, 99, 13,139,213, 57,224,135, - 31,108, 91,207,156,201,123, 18, 26,170, 44,188,121, 83,229,249,209, 71, 37,126,159,126,170, 1, 0,249,235,215,156,151,193,193, - 2, 91,127,127,147,174, 75,151, 90, 26,180, 90,241,154, 53,107, 58, 5, 85, 36, 47,111, 20,167,235,216,177,134,160, 3, 7, 58, -222, 92,178,164, 55,165,211, 49, 7,119,237,250,120, 67, 88,216,155,191,194,249,159,172,103,206,141, 27,154, 98,119,119,248,141, - 28, 89,228,106,103,167,249, 79,182,253,175,212,147, 70, 21, 42,125,181,102, 87,127, 67, 69, 84, 84, 84, 47, 0,215, 1,132, 6, - 4, 4,132, 0,128,185,185,121,190, 84, 42,181,139,136,136,168, 87,100,177,217,108, 56, 56, 56,192,203,203, 75, 34,145, 72,236, -235,168, 64,150,209,104,116, 38,132, 84, 89, 95,106,131, 70,163, 65,114,114, 50,218,180,105,147,141,138, 68,180,181, 26,117, 4, - 2, 65,106, 98, 98,162, 77, 66, 66, 2, 98, 98, 98,224,238,238, 14, 75, 75, 75,176,217,108,232,116, 58,200,100, 50,120,123,123, -131,199,227,161,125,251,246,133, 74,165,210,189,158, 41, 32,158, 80, 40, 76,190,113,227,134,139,159,159, 31, 30, 62,124, 8, 23, - 23, 23,136,197, 98, 0,192,235,215,175,113,251,246,109,124,244,209, 71,136,139,139,195,152, 49, 99,178,148, 74,165, 23, 0, 77, -109,132, 86, 86, 86,185, 87,175, 94,205,246,245,245, 85, 43,149, 74, 70,126,126, 62,251,230,205,155,122,185, 92, 46, 42, 45, 45, -101, 75,165, 82,182, 76, 38, 99, 41,149, 74, 54,131,193,224,168, 84, 42,246,149, 43, 87,152,229,229,229,117, 6,200,172,188, 78, -145,145,145,240,245,245, 69, 68, 68, 4,190,248,226, 11,220,185,115, 7, 46, 46, 46, 56,113,226, 4,150, 46, 93,138,164,164, 36, -216,216,216,160,101,203,150,245, 93, 35,120,120,120,164, 60,125,250,212,131,195,225, 84,230,117,172,204,151,135,130,130, 2,188, -122,245, 10,111,222,188,129,167,167, 39, 38, 76,152,240,234,205,155, 55,158,245,245, 60, 39, 39,167,130,231,207,159,219,180,105, -211, 6,249,249,249,176,176,176,128,185,185, 57, 44, 44, 44,170,254,118,119,119,199,146, 37, 75, 32, 22,139, 37,106,181,218,190, - 62, 17,228,235,235,123,241,202,149, 43, 54,102,102,102,200,203,203,131, 76, 38, 3,139,197,130, 64, 32,128,141,141, 77,149,144, - 79, 78, 78,198,208,161, 67, 11, 83, 83, 83, 7, 53, 66, 36, 49,236,237,237, 19,227,227,227,189, 8, 33,200,204,204, 68, 82, 82, - 18,230,205,155,151,172, 86,171,125,240, 15,202,217, 87,205,239,138, 51,117,218,108,206,168, 17,221,180, 47,158, 71, 81, 60, 99, - 18,218,181, 54, 43, 5,128,199,207,100,230, 26,134, 55, 90,180, 10, 32,167,206,220,229,254,122,240,103, 54,140,176, 7,133,164, - 23,201,248,166, 54,238,129,125, 28,102,126,254,249,244,214,189,123,244, 98,200,149, 74,187,159,126,218,214, 62, 53,245,133, 29, - 0,184,187,183,144,204,157,187, 56,214, 84, 40,148, 92,191,125,195,248,253,247,251,159, 93,186,150,187,183, 1, 85,118,247,242, -242,186, 23, 25, 25,105, 99,103,103, 7,115,115,115, 40,149, 74,148,151,151, 35, 33, 33, 65,125,236,216, 49,157,153,153,153,105, - 94, 94, 30,164, 82, 41, 40,138, 66,100,100,100, 38, 0,183,247,137, 42,125,180, 0, 96,222,144, 22,236,150,125,189, 44, 57, 60, -189,137, 9,251,165, 3, 40, 3,143, 34, 34,251,243, 23, 31,183, 57,127,249,225,196, 81,163,191,176,237,217,107, 20,130, 86, 7, -234,114,114, 50,253,202,209, 51,177, 38, 31, 45, 31, 79,244, 29, 57,102,212,199,107,214,132, 32, 36, 40, 20, 81,145,167, 75, 69, - 66,134,198,204,130,109,238,223,165,187,122,201,252, 17, 89, 10, 69,142,203,154, 77,199, 38, 12, 29,177,196,185, 71,207,145,184, -125,235, 52,194, 14,132,198, 80, 38,132,158, 70,124, 15, 33,128,165,133,187,251,156,133,201,201,156, 39, 33, 33, 10,125, 78, 78, - 73,135,197,139, 11,107, 42,155,125,249,178,144,235,232,104,102, 57,124,184,213,118, 55, 55,162,147, 72,246,212,228, 99, 84, 19, -103,180, 72,100,113,244,252,249,126,132,205,238,181,236,171,175, 76, 2, 2, 2, 32,147,201,112,242,228, 73,236,217,189, 91,227, -224,224,240,212,241,217,179,184,214, 50,217,234,134,114,118, 88,188,184,208, 96, 48, 80, 31, 47, 93, 58,224,249,235,215,125,243, - 36,146, 38, 0,224, 96,101,149,213,193,221, 61,102,127, 84, 84,210,206,166, 77,141, 13,173,231, 47, 23, 46,216,135,167,167,207, -180,178,178, 50,201,151, 72, 88, 60, 46,183,168, 75,203,150, 39,126, 92,181,234,186, 62, 62,158,195,119,118, 54, 51, 15, 8,104, -116,219, 59, 44, 94, 92, 88, 44,151,179, 22,174, 93,219, 61, 35, 63,191,137, 66,163,241,148,202,229, 98,131, 78,199, 48, 19, 8, -138,154,121,123, 75, 84, 55,111,230, 54, 43, 43, 91,180, 23,144,252,183,174,117, 77, 90,228,111,132,247,227,104,253, 41,215,225, -245,128,128,128, 63,173,174, 33,132, 52,200,154,197,102,179,223,153,166,170, 3, 28,138,162, 16, 27, 27, 11,107,107,107,136,197, - 98,240,120,239, 38, 31, 44, 40, 40,192,157, 59,119,240,226,197, 11,180,109,219,182,114, 26,163,118, 69,196,227,125,190,105,211, - 38, 11,173, 86,139,152,152, 24,116,232,208, 1, 60, 30, 15, 28, 14,231, 29, 17, 40,145, 72,208,170, 85, 43, 44, 91,182,204,124, -253,250,245,159,107, 52,154, 90,223, 72, 89, 44,214,130, 89,179,102,217, 85, 90,176,178,178,178,208,190,125,251,170,237,182,182, -182,120,252,248, 49, 58,116,232, 0,103,103,103, 4, 6, 6,218,133,133,133, 45,208,235,245,223,213,198,201,229,114, 25,190,190, -190, 29, 1, 64, 40, 20,130,193, 96,188, 52, 51, 51,179,181,183,183, 23,154,153,153,253,169,141, 7, 14, 28,144, 50, 24, 12, 93, -189,106,128,193, 64, 94, 94, 30, 90,183,110,141,210,210,138, 12, 46, 74,165, 18,158,158,158,144,201,100, 85,162,213,209,209, 17, - 42, 85,221,174, 95,109,218,180, 9,241,241,241, 25, 40, 20, 10,121,108, 54, 27, 79,158, 60,129,159,159, 31,142, 29, 59, 6, 87, - 87, 87, 8, 4, 2, 36, 39, 39,195,215,215, 23, 55,110,220,128,173,173, 45, 90,181,106,197,179,179,179,187, 85, 92, 92,124, 45, - 35, 35, 35,164,142,122, 50, 68, 34, 17,110,220,184,129,253,251,247,227,245,235,215,200,201,201,129,169,169, 41,218,181,107,135, -150, 45, 91,162, 91,183,110, 72, 78, 78, 6, 85,127,103, 18,123,121,121, 69, 61,124,248,208,134, 16,130,176,176, 48, 40, 20, 10, -104,181, 90, 48, 24, 12,240,249,124, 88, 90, 90,162,111,223,190,176,181,181,133,151,151, 23,142, 31, 63,110, 51,100,200,144,223, - 37, 18, 73, 59, 0,121,245,157, 87, 75, 75,203, 69,193,193,193, 46,118,118,118, 72, 79, 79, 71,105,105, 41,236,237,237,209,187, -119,111,167,232,232,232, 69, 58,157,110,219, 63,229, 65, 86,205,241,157,186,116,113,223,104,175,102, 37,190,109,189, 5, 46, 17, - 81,246, 46,199,162, 36,173, 0,160,117, 11,251,231,163, 3, 4, 89, 79,158, 71,101, 93,186,120, 58,230,197, 75, 68,160, 1, 83, -219,165,101,154, 19,151,163, 31, 12,246,107,219,222,184,105,227,210,161,243,231,205,228,217,217,207, 64,126,230,105, 68, 95,141, -117, 93,250,197, 44,219,239,182,252,114,254,114,244, 3, 70,105,153,102,117,195, 76, 89,174, 59, 15,254,216,205, 70, 94, 24,142, -148, 68, 46, 76, 76, 91,195,221,189, 57,100, 50, 25,248,124, 62,127,194,132, 9,134, 21, 43, 86,148,153,153,153, 9, 40,138,194, -181,107,215, 36, 0, 6,213,199,171,182,179, 36,134,114,157,158,112,153, 70, 66,153,170, 40, 67, 49,247, 89, 66, 26, 6,246,239, -147,223,163,115,235,245, 43,214,108, 89,233,213,220,207,118,250,204, 80,246,218,144,137,187, 65,161,103, 77, 60,137, 41,184, 74, -157, 56,101, 2, 96,232,154,111, 66,144,154,154,108, 57,251, 19,105, 40,139,103,226,232,227,214,221,116,247,254,107,131, 61, 61, -155, 54, 89,178, 32,240,220,214, 31,182, 14,173,110,217, 58,120, 32,248, 12,128,126, 13, 57,183,255, 34,180,153, 28, 21, 5, 69, -102,166,174,248,214, 45,117,191, 31,126, 40,116, 25, 52,104,155,182,188,220,166,242, 86,193,160, 40, 80,149,174, 19, 70, 35,197, - 90,182,140, 65, 88, 44,232, 44, 45, 63, 65, 73, 73,243,250, 56,191,200,205, 29, 61,113,230,204,161,103, 46, 92, 64,211,166, 77, -171,158,103, 22, 22, 22, 88,186,116, 41, 22, 47, 94,204,123,252,248,113,167,240,240,240, 78,223,109,222,108, 15, 96,116, 67,234, -121,233,254,125,203, 79,215,172, 89,213,182, 67, 7,215, 67, 71,142,240, 60, 60, 60, 0, 0,175, 94,189,242,218,184, 97,131, 91, -107, 95,223,252,245,159,127,126,240,249,138, 21,173, 0,220,170,139, 51,239,230, 77,109,120,122,250,204,171,215,174, 89,180,110, -221, 26, 0,144,148,148,100,183,125,251,246, 89,173, 2, 3, 39,173,153, 59,119,117,128, 90, 45, 53, 43, 40,224, 5,236,220,201, - 58,250,241,199,245,114, 86,214, 19, 0,122, 79,159,254,121,207, 62,125, 90,142,158, 57,211,202,213,213,149, 18,137, 68, 40, 47, - 47, 71, 78, 78,142,229,243,231,207, 61,162,228,114,217,169,251,247,195, 96, 48, 12,248, 47, 94,235, 26,181,200,223,204,146,245, -103, 77,241,246,187,119, 84, 84, 20, 1,208, 59, 32, 32,224, 70,229, 3,220, 96, 48, 52, 72,100,177, 88, 44, 80, 20,213, 80,177, - 5, 66, 8, 10, 11, 11, 81, 88, 88, 88, 53,117, 36,145, 72,112,245,234, 85, 36, 39, 39,131,205,102,131,195,225,160,188,188,254, - 28,180, 66,161,176,127,255,254,253, 89,247,239,223,135,187,187, 59, 76, 76, 76,170,234, 85,249,225,112, 56,112,112,112,128, 76, - 38, 67,191,126,253,216, 59,118,236,232, 95,151,208, 50, 55, 55,255,104,236,216,177,220,202,255, 21, 10, 5,152, 76,102,149,104, - 81, 40, 20, 40, 46, 46,134, 84, 42,133, 90,173, 70,215,174, 93,185, 81, 81, 81, 31, 21, 21, 21,125,215,144,246,151,149,149, 41, - 36, 18,137, 69,207,158, 61, 45, 15, 30, 60,152,212,181,107, 87,239,119,122,218,245,235,106,181, 90,205,102, 48, 24, 13,202,163, -119,248,240,225,170,115,255,230,205, 27,236,222,189,187,106, 91,114,114, 50,118,236,216, 1, 66, 8, 8, 33,117, 94, 35, 31, 31, -159, 33, 97, 97, 97, 29, 14, 29, 58, 84,194,100, 50,145,148,148,132, 35, 71,142,128, 16, 2, 91, 91, 91,148,149,149, 33, 63, 63, - 31,215,174, 93,131, 94,175,135, 72, 36,130,147,147, 19,127,193,130, 5, 61, 66, 67, 67,217,117, 9, 45,131,193, 96, 96, 50,153, -112,115,115, 67, 80, 80, 16,212,106, 53, 56,156, 10,125, 41,147,201, 32,149, 74, 17, 23, 23,135,244,244,116, 16, 66,234,124,200, -240,249,252,192, 67,135, 14,217,113,185, 92,168, 84, 42,200,229,114,100,101,101, 33, 35, 35, 67, 45,145, 72,244,166,166,166, 12, - 55, 55, 55, 6,143,199,227,141, 28, 57,146,170, 20,156, 1, 1, 1,214, 97, 97, 97,227,180, 90,109,125, 34,201, 86, 44, 22,175, -156, 53,107, 22,191,122,159,205,203,203,195,232,209,163, 5,119,239,222, 93, 33,147,201,142, 0, 40,248,135, 61,208, 72,248,169, -230,143, 98,162,147,124, 35,162,236, 93, 50,178, 13,221,151,126,185,133, 5, 0, 63,239,249,182,123, 68,212,155, 59, 62, 77,243, -179,194, 79, 53,127,100,105,249,162, 62, 33,192,232,219,203, 97,152, 80,192, 31, 59,122,248,112,242,211, 79,219,218,207,159, 55, -147,231,214,124,105,133,133,147,109,135,126,250,111,168, 50,213, 43,254, 79, 63,109,107, 63,122,248,152,184,215,175,211,247,244, -237,197, 59,126,245, 70,238,217,186, 44,134,118,214,124, 39, 1, 79, 9, 39,247,150,240,110, 33,196,227, 39, 73, 56,121,226, 30, - 90,180,234, 2,141, 70, 3,189, 94, 47, 28, 54,108, 88,217,177, 99,199,212, 47, 95,190,148,171, 84,170, 94, 0, 94,214,215,248, -236,236, 4,163,183,184, 75, 57,199,132,167,151,151,114,202,150,175, 14,255,184,125,231,129, 29, 44, 29,156,216,182, 66,227,217, - 33, 3, 58, 29,217,191, 55,104,241,234,224, 35,232,216,105, 96,215, 23, 73,183, 90, 2,120, 90,163,120, 77, 69, 20,227,228, 41, -125,106, 74,202,208,140,244,244,236,230,246, 98,237, 43, 41,209, 45, 90,254,203,128,158,189, 2,219,120,180,240,231,190, 72,184, - 65, 5, 45, 27,247,219,154, 77, 91, 39, 84,138,173, 43,151,127,235,245,201, 39,247,184, 7, 15,214,110, 29,255,183,129,195,227, - 57,139,220,220, 88,175, 15, 30, 84,185, 15, 27, 86, 2, 0,218,242,114,155,215,233,233,230, 2,129, 0,132, 16,232,116,186,119, -124,136, 43,253,134, 91,123,123,219, 55,132,243,245,215, 95,183, 89,182,108, 25,242,242,242,160,215,235,193,102,179,223,191,103, - 67,169, 84,226,147, 79, 62,193,206,205,155,187, 52,132,211, 96, 48, 80,159,174, 89,179,234,171, 85,171, 60,230,204,153,195,168, -126,239,181,178,178, 66,248,201,147,220, 93,187,118, 57,175,220,185,243,147,137, 60, 94, 42, 52,154, 58, 57, 11, 61, 61, 97,149, -159,111, 82, 41,178, 0,192,219,219, 27,187,119,239,230,205,152, 49,131, 59,108,216,176, 45,143,219,182,221,190,173, 71,143, 20, -235,230,205,205,184, 60,158,115,125,156,149,231, 19, 0,228,106,117,235,109,219,183, 91, 62,120,240, 0,249,249,249,200,203,171, -120, 31,165, 40, 10, 29, 59,118,164, 38, 79,158,108,222,204,197,165, 19, 12,134,255,230,229,254,147, 22,249, 27, 97,118, 13,191, -253,225,163,245,182, 65,212,219, 6, 82,213, 30,142,239, 8,150,250,132,214,135, 64, 42,149, 66, 42,149, 98,239,222,189,224,112, - 56, 85, 15, 95, 0,208,106,181, 13, 17, 45,190,142,142,142, 40, 45, 45, 69,243,230,205,223,177,100,113, 56, 28,176, 88, 44,112, - 56, 28,240,120, 60,104, 52, 26,184,186,186,162,172,172,204,183, 46, 78,149, 74,213,206,202,202,170,234, 1,171,121,219, 89, 53, - 26, 77, 85,125,181, 90, 45, 74, 74, 74,160, 80, 40, 32,151,203,161, 84, 42,253, 26,210, 94,163,209,136,103,207,158,189,242,246, -246,110,199,100, 50, 33, 18,137,132, 74,165,178,202,183,168,184,184, 24,191,254,250,171,114,202,148, 41, 54,145,145,145,245, 10, - 45,138,162,240,217,103,159,129,199,227,161,172,172, 12, 63,253,244, 19, 22, 46, 92, 8, 14,135, 3,185, 92,142,221,187,119, 99, -201,146, 37, 96,177, 88,208,106,181,216,190,125,123,173, 92, 9, 9, 9,175,239,223,191,239,215,190,125,123,203, 83,167, 78, 21, - 12, 24, 48,192,118,208,160, 65, 48, 49, 49,129, 74,165,130, 78,167, 67,151, 46, 93,224,227,227, 3,137, 68,130,243,231,207, 23, -122,121,121,217, 60,120,240,192,152,151,151,151,241,255,216,187,238,240, 40,170,246,123,102,123, 73,175,164,144, 80, 34,164,211, - 12,160,244, 18, 90, 18, 12,162, 20, 69, 81, 81,154, 5, 20, 68, 16, 5, 68, 52,128,162,136,130, 82, 44, 96, 16,144,110,168, 1, - 19,144, 34, 66, 8, 37, 29, 2,169,187,201,110, 54,201,110,178,125,218,239, 15,146,124, 33, 38,217, 77,192,239,167,126,115,158, -103,159,157,157,189,115,230,222,185,119,102,206,125,239,123,223,107, 67, 92,179,141, 44,134,160,105, 26,229,229,229,168,174,174, -134, 90,173,134, 66,161, 64, 73, 73, 9, 4, 2, 1,108,232, 44,120,120,120, 60, 21, 25, 25,201, 7, 0,153, 76,134,222,189,123, - 99,233,210,165,148,209,104,156, 12,224, 88, 93,178,113, 91, 22,186,136,224, 0, 0, 32, 0, 73, 68, 65, 84,183,110, 61,112,238, -220, 57,129,159,159, 31,178,179,179,225,229,229, 37,144, 74,165, 54,133,150,143,143,207,247,191,252,242,139,123,189,184,174,191, -206, 6,195,189,234,152, 56,113,162,251,142, 29, 59,190,167, 40, 42,230,223,246, 82,115,149, 65,212, 59,210, 89,187, 59, 73, 21, -177,240,237,117,130,208,200,123,157,215,153,179, 32,248,244,147, 5, 17,211,226,157,143,184,202,116, 34, 91, 60,227,162, 3, 54, - 62,241,196, 40,222, 51, 83,227,242, 68, 34,215,160,205, 91, 62,240,246,238, 48,163,145, 12,115,134,135,167, 51,130, 58,137,137, -189, 71,178,188, 23, 47,249,208,156,184,227,179,252,159,118, 37,141, 21, 11,147, 71, 31, 59, 85, 60,167, 37,238,220,219,213,135, - 13,102,105,152, 78,115,157,112,239, 48, 16,189,123,133,192,219,171, 10, 91,191,223,141, 46, 93,251,194,108, 54,195,217,217, 89, - 78,211,180,149,207,231, 39,218, 35,178, 0,224,244,233,106, 38, 34,162,218,194,175, 97,168, 87,223,248,244,201, 81,227,158, 8, - 31, 49, 34,154, 57,153,124,210, 58,176,143, 85, 57,110, 76,239,242,227,201, 27,243,148,138, 59,221, 35,122, 12, 66,102, 70,202, - 88,150,197, 77,130,104,222,250,148,113, 11,199, 77, 76,102,202,238,221, 51, 25, 35,115, 85,182,234,163, 27,227, 98, 99,167, 71, - 14, 25, 60,132, 73, 62,245,171, 69,140,138, 44,231, 65, 3, 74, 95,125,121,220,129,111, 19,191, 24,125,252,216,247,221,180,186, -194, 36, 78,100, 53,233,164, 81, 84, 7,129, 68,194, 83,167,164, 80, 61,102,204, 48,215,223,143,114,185, 28,135, 14, 29,130, 88, - 44,110,248,136, 68,162,134,237, 14, 29, 58,128,168,155, 70,106, 15, 39, 0, 40,149, 74,148,149,149,193,197,197, 5, 94, 94, 94, - 40, 43, 43,195,133, 11, 23,144,155,155, 11,161, 80,136,177, 99,199,130,215,130,111,115, 83,206, 73, 11, 23,142, 10,235,209, 35, -176,169,200, 2, 0,171,213,138,202,202, 74,196,199,199,243,142, 29, 59,230,115,188,168,232, 9, 0,137,173,113,246,137,141,213, -148,239,221,219,236,185, 31,125,244, 81,226,252,249,243,146,177, 99,198,188,185,224,163,143, 54,126,185, 99, 71, 49, 77, 81, 62, -109, 41, 59,143,199,227, 17, 4,129,128,128, 0, 84, 86, 86,162,182,246,222, 8,182,163,163, 35,220,220,220, 64,146, 36, 24,150, - 21,254,149,117,221,146, 22,249,135, 96, 75, 35,193,181,229, 79, 22,173,186, 66, 1,192,176,198, 47, 22,134, 97,236, 18, 89, 66, -161,208,166,207,149, 61, 86,174,166,176, 71,104,213,231, 85, 42,149, 54,220,104,141, 5, 86,125, 62,121, 60, 30,248,124,190,205, -151,120,157, 24,226,215,212,212, 96,223,190,125, 24, 58,116,104,195,176,148, 86,171, 69,117,117, 53,180, 90, 45, 76, 38, 19,238, -222,189,139,211,167, 79,163, 91,183,110,128,157,193, 95,243,243,243,175,116,233,210, 37,170,254, 37, 62,124,248,240,142, 63,252, -240,131, 34, 38, 38,198,143,101, 89,188,247,222,123, 21,143, 61,246,152,103,227,151,188, 45,240,249,124, 92,184,112, 1,221,186, -117, 3,203,178, 16,137, 68,200,201,201,129,183,183, 55, 24,134,129, 64, 32,128, 90,173,134,147, 83,235, 49, 18,111,222,188,249, -226, 75, 47,189,164,112,113,113,233,169,209,104,148, 18,137,100,240,217,179,103, 3,172, 86, 43,156,157,157,225,236,236,140,163, - 71,143,194,213,213, 21,243,231,207, 47, 50, 26,141, 23, 28, 28, 28, 58, 24,141,198,235,101,101,101,239,181,165,190, 41,138,130, - 94,175, 71, 85, 85, 21, 42, 43, 43,161,211,233, 96, 50,153,108,230,177, 57, 12, 30, 60, 24, 73, 73, 73,252,132,132,132,111,243, -243,243, 1, 0, 65, 65, 65,152, 63,127, 62,223,223,223, 31,119,239,222,197,149, 43, 87, 96,181, 90,193,178,108,171, 55,175, 64, - 32, 24,254,252,243,207, 15, 10, 12, 12, 36,172, 86, 43, 24,134,129,217,108, 70,253,118, 81, 81, 17,194,194,194,120,157, 58,117, -122, 60, 63, 63,127, 56,236,155, 88,193, 1, 64,121,209, 65,248, 11,189, 1,158, 51, 88,227, 65,104, 42,218, 23,197, 69,165, 82, -125,180,232,253,243, 51,190, 92,107,237, 80,162, 4, 66, 34, 39,160,123,248, 72,188,248, 28,133,132, 79,246, 33,176, 83, 8, 10, - 11, 11, 49,124,248,112,145, 66,161,120,169,182,182,118,161,189,220,201,201,191,211, 39,143, 30,123,122,210,148,233, 81,209,209, - 49,212,137, 19, 71,113,243,250,137,140,151,166, 60,165, 98,153, 90,194,221, 85,118, 53, 39,251,114,247,158,189,135,193, 66,209, -131,129, 21,107,129, 21,108,203,247, 59, 44, 71,142,248,242,142, 28,252,254,185,103,166,189,208,107,228,200,209,228,137,228, 95, -112,229, 98,242,181,117,107, 95, 57,147,240,197,158,225,163,198, 62, 21,225,213,225,194,209,200, 96,243,203, 1, 30, 46,183,183, -254, 80,201, 53,150,230,238, 77,169,148, 65,221,115,145, 71, 16, 96, 89,246, 62,145,213, 84,104,241,120, 60,155, 6,128,198,156, -141,223, 69,245, 29,234,205,155, 55, 67, 34,145, 64, 44, 22, 67, 40, 20,218,116,191,104,204,153,113,247,238,136,237,137,137,146, -230, 68,150, 70,163,129, 70,163, 65,109,109, 45,166, 78,157, 42,250,224,242,229, 71, 81,231,250,209, 18,103,160,175,175,217, 65, - 38, 43,207,204,204,244, 11, 15, 15,191, 47,191, 58,157, 14, 50,153, 12,137, 59,119,138,226, 98, 99,231,142, 60,122,116, 29,108, -196,191,106,174,236, 4, 65,192,219,219, 27,110,110,110, 32, 8, 2, 20, 69,161,172,172, 12, 25, 25, 25,184,124,249, 50,248, 4, - 65,253,149,117,220,156, 22,249, 7, 90,181,182, 52, 59,116,216,210,152,104, 91,132, 22,159,207,111,183, 85,171, 37,216, 51,116, - 40,151,203,111, 40, 20,138,129,254,254,254,160, 40,170, 65,104, 53, 29, 58,172,183,126,164,167,167, 67, 46,151,223, 48,153, 76, -173,114,178, 44,251,120,191,126,253,176,127,255,126,164,164,164,224,206,157, 59, 48, 24, 12, 48,155,205, 48, 26,141,200,200,200, - 0,195, 48,136,140,140,132,131,131, 3,228,114,249, 13,179,185,245,142,168, 94,175, 87, 10,133,194, 16,153, 76,214,176,207,215, -215, 23, 26,141,134, 33, 73, 18,219,183,111,215,249,248,248, 56,200,100, 50,187,133, 43, 65, 16, 80,169, 84,232,216,177, 99,131, -143, 86, 77, 77, 13,188,189,189,235,133, 5,204,102, 51,156,156,156,108, 14, 29, 2, 48,221,186,117,107, 65,163,223,125, 39, 77, -154,244,211,238,221,187,187,158, 58,117, 10,151, 46, 93,130,151,151, 23, 62,254,248,227, 59, 5, 5, 5,207, 0,184,172, 82, 61, - 92,191, 72,123,218,144, 70,163,217,119,227,198,141,199,251,245,235,215,240,148, 24, 62,124, 56, 49,124,248,112,207,198,166,126, -181, 90,141, 63,254,248, 3,167, 78,157, 2, 65, 16,200,203,203,163,141, 70,227, 79,173,141, 82,248,251,251,255,176,116,233, 82, - 71,138,162, 26,218,182, 76, 38,131, 84, 42,133, 72, 36, 2,159,207, 71, 65, 65, 1,226,227,227, 93,190,250,234,171,239,205,102, -243, 35, 0,172,248,151,160,218, 8,107,250, 77,157, 75,100, 88,135,140, 45,155, 19, 6,206,156,133,250,161, 67, 42, 50,204, 59, - 35,253,102,185, 75,148,183,237,242, 30, 59, 85,252,170,133, 60, 54,254,216,241,212,201,111,191, 57, 95, 24, 20, 20,166, 58,245, -107, 90,224, 72,234, 67,194,195,211, 25,154, 10, 29, 10,138,202,145, 95,104, 97,131,130,194, 84, 87,254,184, 33,249,228,243,245, -221,245, 6, 83,253,208, 97,171,237,244,183, 11,119, 38,172,219, 32, 57, 51,253,165,190, 98,153,204, 15,149, 21, 55, 16, 24,232, -133,248,184,158,248,110,199, 5,184,184,184,163, 67,135, 14,224,241,120, 14,246,150,189,162,162,130,216,183,235,183, 25,207,191, -240,202, 99, 99, 70,199, 82,199, 79, 28, 17,164,156, 60,124,225,251, 45,239, 30, 96,249,122, 57,193,214,200, 58,119,241,185,126, -251, 86,250, 51, 35,162,167, 66, 38,114,234, 6,132, 54,219, 96, 27, 38, 24,176, 40,218,191,123,133,244,249, 23,102, 14, 24, 51, -230, 9,234,196,137,131, 56,113,116,199,239,203,151,119, 62,122,167,116,167,232,226,229, 18,233,132,167,231, 84, 37, 29,203,178, - 60, 53,190, 75,174,159, 67,111, 35,112,135, 83, 85,141, 59,146, 2, 65, 57,101, 54, 7,116, 28, 51,134,111, 40, 44, 20, 58,118, -232, 64, 1, 0, 73,146, 54,133, 22, 90, 24,130,110,202,105,111, 94, 12, 6, 3,152, 22, 98, 39, 54,229, 44, 83,169, 58,215,117, -194, 27, 64,146,100,131,200,210,104, 52,168,174,174,134,131,131, 3,212,102,115, 7,123, 56, 71,247,239,191,253,131, 21, 43, 22, -238,221,183, 79,212, 88,100,213,127,132, 66, 33,214,172, 93, 43,122,227,237,183,231,204, 21, 8,230,129,162,236,190,158,245,157, -118, 62,159, 15,129, 64,128,194,194, 66, 20, 21, 21,161,176,176, 16,133,133,133,144,201,100, 96,255,226, 73, 64,255, 96,255,172, -122,145,213,248,187,193,202,213,106,120,135,182, 56,195,219, 43, 12,232, 54,140,239,218, 35,180,244,122,253,169,211,167, 79,247, -159, 48, 97,130,224,247,223,127,135,143,143, 79,131,208,170,255,174, 31,142,146,203,229, 56,112,224,128, 85,175,215,159,178,113, - 51,157, 62,122,244,104,212,178,101,203,132, 47,190,248, 34, 50, 51, 51, 49,107,214, 44, 84, 87, 87, 67,167,211, 65,163,209,192, - 96, 48,160,127,255,254,144, 74,165,184,126,253, 58,105, 48, 24, 78,219,176,216,177, 42,149,170,214,203,203,203,183,233,127, 79, - 63,253,116,135, 77,155, 54, 25,178,179,179,201,129, 3, 7, 58,219, 43, 56,234,177,107,215,174, 6, 75, 93,110,110, 46, 54,109, -218,212,224,147,149,150,150,134, 79, 63,253,180, 33,246, 89, 27,113,185,162,162,130, 34, 73, 18,221,186,117,131,191,191, 63, 76, - 38, 19,214,175, 95, 79, 1,184,252,255,213,154, 77, 38,211,222,233,211,167,191,115,245,234, 85, 95,129, 64,112,207,164, 93, 87, - 62,171,213,138, 91,183,110, 33, 35, 35, 3,217,217,217,168,172,172,108,232, 8,164,167,167, 87,145, 36,185,167, 37, 94, 47, 47, -175,247,190,251,238, 59, 31,185, 92,126, 95,123,174,183,134,214, 91, 73,213,106, 53, 92, 93, 93, 49,114,228, 72,239,211,167, 79, -191,103, 54,155,151,253, 75,222,105,196,211, 79,230,246,125,227,213, 9,152, 24, 39, 47,222,159, 84,122,254,211, 79, 22,212, 57, -195,123,103, 76,140,243, 47,190,150,227,138,167,159, 60,216, 23, 64, 9, 90,119,216,102,126, 61,163, 60,212,175,159, 91,202,254, -195,135,191, 95,178,232,205,180,133, 11, 94,241, 50, 24,111, 75,131, 58,137, 9, 0,200, 47,180,176,215, 51, 25,211,167,235,222, - 76, 75, 88,251, 21,175, 92, 83, 61,235,143, 63, 90, 14,111,208, 88,188,240,120,144, 6,133, 14, 85,116, 15, 30,212,229,247, 11, -137,112,148, 27, 17, 18,218, 23, 99, 70, 63,142,148,212,116,148,169, 77, 80, 42,149, 48,155,205,173,134, 75,200,190,126,224, 57, -150, 96, 3, 9,150, 40, 34,120,172,244,185,233, 47, 15,142,141,125,130, 77, 74, 58, 76, 29, 60,144,120,110,207,143, 27,246,242, - 68, 66,129,209,226, 98, 33, 8,147, 22,188,155,153,181,250,123, 29, 26,161, 68,212,178,249,181, 46,176,107,120, 68,168,207,115, -211,103,185,196,140,139,103,143, 30, 61,200,236,217,189, 61,101,207,182, 30,137, 12, 79, 39, 82, 22, 27, 36, 90, 29,169,101, 9, -177,107,173,142, 49,148,231, 63, 98,242,139,125,218, 10,236,229,212, 85,227,247,128,217, 92, 82, 91, 92,236,235, 62,116,168,228, -214,138, 21,242, 14,253,251,155,136, 58, 31,226,214,132, 22,159,207, 7,120, 60,198, 30, 78,123,243, 98, 52, 26,193, 0,100,123, - 56, 41,138,186, 79,100,213, 11,173,250,251,197, 30,206, 45,203,151,255, 30, 56,102, 76,101,106,106,106,135, 97,195,134, 17, 53, - 53, 53,168,169,169,185, 79,108,249,249,249, 17,225,145,145,242, 93, 41, 41, 65,246, 94, 79,123,202,206,227,241,254,114,161,245, - 15, 71,139, 11, 73,183,186, 4, 79,189, 69,203, 30,161,101,167, 69,139, 36, 73, 18,222,222,222,168,168,168,104,241,197,207,227, -241, 32,147,201,234,199,136, 91,157,121,103, 54,155,215, 47, 92,184,240,181,113,227,198,121,134,132,132, 64,173, 86,163, 67,135, - 14,144, 74,165, 13,190, 99,245,124,105,105,105,248,238,187,239,116,102,179,121,189, 13,206,207,215,174, 93,251,234,196,137, 19, -221,125,124,124,224,230,230,134,235,215,175,195,205,205, 13, 58,157, 14, 57, 57, 57,112,114,114,106,240,219, 57,124,248,112,141, -217,108,254,220,134,120, 99,207,158, 61,107,117,114,114,186,174, 86,171,249,149,149,149,130,170,170, 42,129, 78,167, 19,106,181, - 90,225,241,227,199, 61, 93, 92, 92, 12,191,254,250,171, 58, 48, 48,144,127,231,206, 29, 62, 73,146, 54,213, 43, 65, 16,152, 55, -111, 30, 68, 34, 17,204,102, 51,214,175, 95,143,133, 11, 23, 54,248,100,173, 93,187, 22, 75,151, 46,109, 16,206, 91,183,110,109, - 83,203, 97, 89, 22, 86,171, 21, 36, 73,130, 36, 73,187,196,239,131,192, 78,193, 94,150,151,151, 23,215,175, 95,191,147, 63,255, -252,179, 71, 93, 76, 50,148,151,151,163,188,188, 28,106,181, 26,181,181,181,160, 40, 10,254,254,254, 40, 47, 47,199,193,131, 7, -181, 53, 53, 53, 99,208,202,140, 67, 62,159, 63,125,240,224,193,130,166,121,168,239,229,213,139,119,137, 68, 2,133, 66,129,225, -195,135,139, 83, 83, 83,167, 3,248, 71, 11,173,198,225, 29, 70,143,153, 33, 10,139, 24, 96,185,150,145, 84, 28,218,165,188,120, - 90,188,243, 17, 0, 72,191, 89,238,114, 45,199, 21, 97, 17,113,236,232, 49,110, 81,229,101, 91,122, 0,176,182,182, 92, 15, 0, -184,200, 37,147, 70, 69,247, 87, 56, 57, 56,240, 62, 93,183,245,216,215, 95,127,254,232,222, 35,255, 9,239,240,233,186,123,225, - 29, 70, 69,247,103,178,179,178, 39, 1,216,102,175,120,137,139, 27,127,245,187, 31,190, 67,118,198,175,126,239,204,235, 41,174, - 44, 39, 33,115, 12, 64, 84,239, 14,216,242,195, 13, 92,187,118,173,204, 98,177, 12,111,181,125, 19,108, 96, 70,230,205,224, 30, - 17,225, 62,207, 77,159,233, 28, 23, 23,143,164,164, 67,248,113,251,182,179, 79, 77,157,248,109,105,149,142,239, 45,148,139,228, - 44, 35,230,139, 92, 4, 34,137, 76,101,177,220,155, 3, 33, 20, 74,157,129, 73,173,190,120,102,207,156,230, 50, 34, 58, 30, 71, -142, 30,194,143,219,183,156,121, 63,226,233,109, 93,250,132, 17,253, 31,253,100, 78,151,174, 93, 58,233,107,203,117, 60, 66,108, - 53,153, 24,167, 79,182, 23,124,150,191,116,122, 62,128,117,224,102, 29, 54,198,245, 31, 99, 98,250,189,113,251,182,200,107,208, - 32,153, 34, 37, 69, 94,183, 18, 73,171, 66, 75, 32, 16,128,109,121,168,235, 62, 78, 98,199, 14, 30,128, 86, 39, 97,137, 68, 34, - 24, 12, 6,144, 45, 91,176,239,227,244, 61,113,162,248,246,237,219,221,221,221,221,239, 19, 89,149,149,149, 13,219, 38,147, 9, - 6,131, 1, 50,153, 44,195,216,252,136,200,125,156,229,103,207,154, 86,207,155,183,236,153,169, 83, 55,156, 58,125, 90,234,225, -225, 1,173, 86,123,159,208,178, 88, 44, 24, 49,114,164,104,237,213,171,207, 65,167, 91,110,207,245,236, 48,124,184, 77,127, 96, - 62,159, 15,230, 47, 30, 58,252, 23, 96,102,115,194,139,103,107, 8,199,222, 89,135, 45,188, 32,155,174,238,189, 52, 42, 42,202, -148,155,155,139,192,192,192, 6,177,210,248,156,206,206,206,112,117,117, 69, 90, 90, 26, 62,250,232, 35, 35,128,165, 54, 56,107, - 12, 6,195,148, 81,163, 70, 25, 5, 2, 1, 66, 67, 67, 27,226,103, 49, 12, 3,177, 88, 12, 7, 7, 7, 92,189,122, 21,227,199, -143, 55, 24, 12,134, 41,248,115, 12,173,166,156, 90,131,193,240,236,232,209,163, 13,153,153,153, 24, 60,120, 48,174, 93,187,134, -218,218, 90,212,214,214,226,238,221,187, 8, 15, 15,135,193, 96,192,166, 77,155,140, 6,131,225, 89, 0,218,214, 56,107,106,106, -198, 47, 92,184,144,255,211, 79, 63,117,241,247,247,143,232,219,183,111,200,200,145, 35, 31,121,242,201, 39, 59,197,196,196,248, -118,239,222,221, 52,102,204, 24,175,113,227,198,121, 25, 12, 6,225,249,243,231,149, 36, 73,142,179,145,207, 6,113,146,155,155, -219, 48, 84, 40, 16, 8, 80, 81, 81,209, 16,185,191,254,161,212,130, 16,142,182, 37,182,235, 5, 86,189,224,178,195,207,173, 57, - 78,155, 7,137,197,226,122,139, 39,107, 7,103,122, 86, 86,214,168,161, 67,135,166,207,152, 49,163,166,172,172, 12, 78, 78, 78, - 8, 10, 10, 66,112,112, 48, 60, 61, 61, 97,181, 90,113,224,192, 1,253,193,131, 7,111,104,181,218,225,248,115, 12,173,232, 38, -215,241,110,115, 15,217,122,107, 86,189,208,146, 74,165,240,247,247,175,191,182,119,219,114, 61,219,137,191,150,179, 78,192,140, - 28, 49,166,107, 76,236, 4,151, 3,135, 46,136, 55,108, 60,120, 35, 42, 26, 91, 61, 58,235, 14,123,116,214, 29,142,138,198,214, - 13, 27, 15,222, 56,112,232,130, 56, 38,118,130,203,200, 17, 99,186,102,102,100,135, 52, 94,247,176,185,124, 74,165,210, 1,131, - 7, 69, 85,165,158, 59,195, 36,172,253,138, 55, 98,248, 83, 87,183,125,123,224,192,182,111, 15, 28, 24, 49,252,169,171, 9,107, -191,226,165,158, 59,195, 12, 30, 20, 85, 37,149, 74, 7,216, 83,246,217, 51,167,185,196,198,196, 35, 41,233, 0,181,119,215,166, -181,187,247,229, 13,125,249,181,179,229,185,185,215, 88, 85,201, 9, 8,121,133,200,202,202,210,214,137,172, 92,123, 56,103,189, - 50,173,177,200,250,205,195,103,240,214,172, 44,208,201,201,191,144,167, 79, 95, 53,254,150,174,210, 94,201,172,168, 84,168, 43, -239,232,116, 26, 11,195,208,160,105,154,255,193, 7, 13, 14,187,205,214,209,192,129,195,240,235,169,157,216,254,195,102, 45,195, -192, 52,105,239, 94,122,210,164, 21,108,167,206,157, 59, 37,238,218, 73,196, 61, 49,193,133, 5,152,241, 19,227, 93,127,218,253, - 19,209,181, 91,215,206, 65, 65, 13, 33,109,254,121,109,233, 47,224, 92, 1, 84,233, 10, 11,207,164,125,245,149,185,195,148, 41, -238,226, 14, 29,156, 65,211, 68,253,243,189,165,143, 64, 32,104,106,129,105,145,211,223,211,179,244,240,225,195, 8, 14, 14,134, -191,191, 63, 26,251,200,214, 7,228,246,240,240,192,190,125,251,192,222, 31,156,186, 69,206, 62, 93,186,164,173, 89,189,218,194, - 48, 12,170,170,170,254,100,205,170,170,170, 2,195, 48, 56,122,228,136, 69,119,111, 37, 16,187,202, 62,156,207,175,125,102,200, -144,132,216,216, 88,235,237,219,183,193, 48, 12, 26, 91,182, 84, 42, 21, 28, 29, 29, 97, 50,155, 3, 0,200,237,225, 84, 29, 63, -238, 0, 27,207,245,102, 44, 90,127, 69,189,255,211, 69, 86,227, 5,165,103,218,101,209,162, 40, 10, 1, 1, 1,247, 45,233,194, -227,241,238,251,180,113,198,225,142,204,204,204, 19, 99,198,140, 89,246,216, 99,143,205, 94,182,108, 25, 63, 36, 36, 4, 90,173, - 22,110,110,110,240,246,246, 70, 78, 78, 14, 14, 31, 62, 76, 87, 84, 84,124, 3, 96, 37,236,155, 66,159,146,151,151, 23,215,179, -103,207,221,139, 23, 47,118, 25, 61,122,180, 48, 32, 32, 0, 44,203,226,234,213,171,216,191,127,191,117,219,182,109,186, 58,145, -101,175,243,242, 73,133, 66,241,212,184,113,227, 18,167, 79,159,238, 68,211,180,240,238,221,187, 48,155,205, 32, 73, 18, 69, 69, - 69,214,164,164,164, 90,131,193, 48, 13,192, 73, 59,248,210,170,171,171,195,147,147,147,167,159, 63,127,254,163, 25, 51,102,120, -140, 28, 57, 82, 68, 81, 20,206,157, 59,167,238,211,167,143,183, 74,165,178,238,219,183, 79, 99, 50,153,150,210, 52,109,215, 18, - 60, 4, 65, 64,167,211,193,211,211, 19,102,179, 25, 12,195,192, 98,177,192,209,209,177, 97,217, 36,150,101,209, 22,231,250, 38, -109,128,111,181, 90, 49,117,234, 84, 48, 12,131,245,235,215,131,162,168, 54,147,185,184,184, 92, 73, 79, 79,143,235,221,187,119, -131,120,169,111, 67, 18,137, 4,158,158,158,240,240,240, 64, 82, 82, 18,132, 66,225, 21, 91,254,110,117,184, 86, 81, 81,209, 39, - 57, 57,121,192,141, 27, 55,158, 7,208,219,106,181,250,211, 52, 77,240,120, 60, 37,203,178,215,117, 58,221,183,176,115, 9, 30, -149, 74,245,209, 11, 47,188,208,103,231,206,157,142, 2,193,127,110, 13,129, 64, 0,137, 68,130,250,224,152, 44,203,194, 98,177, -224,189,247,222,211,233,245,250,143,254, 45, 79,137,168,190,253,177,101,211, 23,142,167,127, 61,161,206,202,195,254,102, 66, 56, -148,148,151,109,233,161, 40, 46,118,140,234,219,223, 46, 78,210, 98,213, 60, 59,237,173,192,186, 37,120,222,187,123,183, 96,115, -226,142,207,242, 1,224,147,207,215,119, 47,215, 84,207,202,206,202,158,180,121,243,174, 1,164,197,170,177,135,243, 63,226, 37, - 81, 11, 22, 38, 0,151,174,222, 40,239, 50,126,202,241,165,221,186, 58, 63,161,210, 24, 75,107,107, 13,175, 3,200,183,183,236, -131, 6, 14,197,175, 39,127,194,143,219, 19,117, 44,195, 55,121,122,122,178, 0,144,149,229,201,102,101, 85,179,255,241, 43,118, -213, 11,217,107, 43,223,122,125,228, 91, 90, 93,229,231,235, 55,181, 62,148,210,179,215, 99,232,217,235, 49,188,246,250,187, 46, -225, 17,161,129, 0,176,119, 47,232,136,110,153,191, 44,123,127,197, 19, 43, 87,174,128,174,198,140,250,229,122,114,110,102, 30, -201,207,135,133,123,103,221,143,101, 20,117, 9,111,189,213,221, 80, 89,233, 53,232,157,119, 60, 5,111,191,205,107,205, 25,190, -241,253,107, 15,231,229,235,215,143,204,122,249,229,210,229,203,150,141,249,102,243,102, 89,143, 30, 61, 80, 86, 86,134,208,208, - 80,248,251,251, 35, 57, 57, 25,251,246,236,209, 87,215,212, 44, 5,240,181, 61,156, 59,142, 30,205, 9,137,136,168,216,188,121, -179, 95,108,108, 44,161,215,235,161,213,106,161,213,106, 97, 54,155, 81, 23, 16,154,205,205,203,203, 34, 73,242, 27,123,203, 78, -171,213,210,149,253,251,151,136, 24,102,205, 83, 19, 39, 46, 92,249,225,135,146,174, 93,187, 18,102,179,185,193,170,101,181, 90, -225,232,232,104,181, 88, 44, 30, 0, 12,246,112, 74,182,109,163,212,106, 53,188,188,188, 26,194, 53, 53,142, 75, 88, 83, 83, 3, -150,101,185, 96,186,237, 64,139, 10,201,205,205,237,138, 64, 32,232,216,216,186,213,220,218,121,141,247,145, 36, 89, 82, 81, 81, - 17,213, 68,241,182,228, 15, 21, 4,224,227, 17, 35, 70, 60,181, 96,193, 2, 34, 53, 53, 21, 7, 15, 30,100,243,243,243,247,214, - 89,177,242, 91,233,233,180,196,233, 36,145, 72,230, 59, 56, 56, 68,215,135,112,144,203,229, 55,244,122,253,169,186,225,194,154, -118,112, 58, 75, 36,146,121, 14, 14, 14,163,234,150, 95,129,147,147, 83,186, 94,175, 79, 54,155,205, 95,160,229,133,170, 91,227, -148,185,184,184,124,228,233,233,249,236,219,111,191,237,113,246,236, 89,229,175,191,254, 42,170,174,174,222,105,177, 88, 90, 91, - 84,250, 79,156,238,238,238, 87,248,124,126,199,191,168,142,208,179,103,207,164,241,227,199,199, 78,155, 54, 13, 36, 73,226,235, -175,191, 70,114,114,242,145, 91,183,110,197,217,232,141, 54,229,244,236,216,177, 99,234,236,217,179, 59, 77,157, 58, 85,238,230, -230, 6,129, 64, 0,189, 94,143, 91,183,110,225,234,213,171,236,161, 67,135,106,211,210,210, 74, 12, 6,195, 48, 0, 21,109,184, -158, 15,210,107,190,143, 83, 32, 16, 12, 13, 8, 8,216,181,124,249,114,167, 81,163, 70,201, 60, 60, 60,192,231,243, 65,146, 36, -148, 74, 37,110,222,188,137, 19, 39, 78,232,247,238,221,171,215,104, 52, 83, 1,156,249,255,200,231,195,228, 12,235,142,247,155, - 44, 20,221, 98,180,119, 27,105,109,230,115,196, 80,223,248, 73, 79,141, 27, 11, 0, 63,239, 59,118,220,142, 69,165, 91,204,167, -173,188,218,195, 25,218,141,183, 60, 35,243,230,125, 1, 45, 35,194, 35,115,195,122, 76, 92,101, 15, 81,163,200,240,247,149,189, -209,112,108, 99,155,238,125,195,172, 97, 65,136,139,159,244,100,236,187, 75,151,224,227,143, 18,112,232,231, 3, 71,178,242,239, - 91, 38,232, 31,215,150,254, 98, 78, 98,149, 64,240,152,220,215,119,200,122,134, 89,114,237,230, 77,199,198, 29,182,122,203,115, -227, 78,165,159,159,159, 74,169, 84,118,176,135, 51,238,203, 47,173, 6, 7, 7,201,146, 53,107,134,214,154, 76, 67, 87,174, 92, - 41,184,124,249, 50, 54,125,245, 21,101, 42, 41, 73, 84, 3,243, 90, 24, 13,105,145,179,211,188,121,210, 69,155, 54,189, 24,212, -173,155,247,243,207, 63, 47, 20, 10,133,208,235,245, 40, 46, 46,198,201, 19, 39, 44,153, 89, 89,153, 58,157,238, 9, 0, 10,123, - 57,227,190,252,210,234, 26, 20, 4,185,151, 23,123, 58, 37,197,101,214,252,249,179, 59,119,233,226, 50,102,236, 88,161,179,179, - 51,170,170,170,112,247,238, 93, 28, 56,112, 64, 85, 91, 91,235, 7,128,182,135, 51,241,252,249,158, 71,207,156,121,122,213,170, - 85,226,200,200, 72,184,184,184,160,166,166, 6, 55,111,222,196,153, 51,103,204,223,124,243,141, 86,171,213,206,166,105,250,240, - 95, 88,239,255, 6,171, 86, 61,182,216, 20, 90,255,197, 27, 48, 10,192,251,117,219, 31,194,246,154,129,255,166,135, 79,160,187, -187,251, 22,147,201,196, 26,141,198, 89, 0,138,254,134,249, 20, 68, 69, 69,109, 82,169, 84, 3, 88,150,133,139,139,203,133,140, -140,140,185,104, 97,230,141, 13, 78, 62,128, 1,142,142,142,253,157,156,156,134,154,205,230,176,186,225,183, 44,189, 94,127,198, -106,181, 94,170,179, 62,209,255,207,101,231, 3, 24,229,231,231,247, 50,195, 48,221, 8,130,112,165,105, 26, 36, 73, 86, 51, 12, -115, 75,171,213,110, 3,144,252, 55,200,231, 67,225, 12,127, 4, 79,178, 60,132,181, 36, 8,238, 19, 90, 77, 4, 4,193, 32, 43, -243, 54, 14,180, 33,159,188,113,209, 1, 27,129,123, 51, 19, 97,219,185,246, 63, 66,203, 14,241,210,102,145,249, 8,255, 5,150, - 96,239,227, 36, 88,162, 40,180,231,147, 63, 62,136,208,178, 23,225,193, 24, 10, 22, 3, 24, 22,151,178,111,225,215,127,241,179, -238,161,113,126, 12,184,127,229,230,118,129, 39, 16,248, 0,224,213, 89, 95, 24,134, 32,104,150, 32,168,198,195, 91, 77, 58,150, -173,114, 90,129, 30, 66,137, 36,128,166,168, 14,101,128,227, 81,154,126,212,196,178,181, 29,129,247,211,129,156,246,228,211, 10, -244,224, 75, 36,129, 71, 89, 54, 94,237,224,208, 83,101, 52,122, 1, 96, 29, 29, 28,178,116,122,253,118,147,201,180, 17,127, 30, -185,176,201, 41,146, 72, 58,210, 20,213, 1, 0,120, 2,129,106,183,217, 28, 80,226,236,252,188,201,108,238,228,232,232, 72, 90, - 44, 22,157,201,100,154, 70, 81,212,233,182,148,253, 22, 69,133,159,231,241, 6, 91, 29, 28, 60,172, 4,225, 96,161, 40,171,197, -106, 45, 54,153, 76, 55, 0,124, 6,224,246, 95, 92,239, 28,218,121,179,112,156, 28, 39,199,201,113,114,156, 28, 39,199,249,215, -115,202, 1, 4,214,117, 22,255,137,101,255, 55,193, 62, 31, 45, 14, 28, 56,112,224,192,129,195, 63, 6, 6, 52,227,147,197,225, -255, 23, 68, 43,170,180, 45, 38,193,246, 40,219, 83, 28, 39,199,201,113,114,156, 28, 39,199,201,113,254,207,113,218,226,254, 39, - 14, 73,182,184,214,225, 95, 13,206,252,203,113,114,156, 28, 39,199,201,113,114,156, 28,231,255, 44,120,220, 37,104, 17, 29,234, - 62, 15, 59, 45,135,127,119, 91,104, 10,255,186, 79, 91,210,251,114,151,156, 3, 7, 14, 28, 56,161,245, 87,191,180, 30,228,229, -246,160,194, 39,129, 32,160, 32, 8, 40, 0, 36, 60,196,180,182,224,231,233,233,249, 70,120,120,120, 98,135, 14, 29, 94, 3,224, -221,198,227,187,203,229,242, 47, 28, 28, 28, 82, 29, 28, 28, 82,229,114,249, 23, 0,186, 63,164,122, 35, 0,204,146, 72, 36, 41, -190,190,190,165, 98,177, 56, 5,192,108,180,127,230,106, 8,238,197, 73,251, 16, 64,207,182, 28,232, 29, 17,191,199, 43, 34,254, -186, 87, 68,252, 77,143,200,241,221,189, 34,226,111,122, 69,196, 95,247,142,136,223,243, 23,180,215, 7,169,223, 4,130, 64, 17, - 65,160,200,206, 99, 63, 35,128, 98,130, 64,201, 67,104, 75, 28, 56,112,224,192,225,159, 6, 63, 63,191,167,124,125,125, 79,249, -250,250, 38,251,249,249, 61,101,199, 33,209,205,188,120,104,130, 0,109,227, 69,210, 90, 58, 91,230,202,198,199,126,106,103,209, - 26,115,118, 32, 8,208,108, 29, 8, 2,140,183,183,247, 6, 95, 95,223,132,166, 31,111,111,239, 13, 4, 1,166, 81, 90,186,145, -192,107,171, 89,181,195,115,207, 61,247,115, 85, 85, 85,146,197, 98, 73,202,203,203, 75, 26, 54,108,216,238, 38,214,141, 22, 57, -165, 82,233, 51,253,250, 15, 72, 59,115,238, 82, 94,238,173, 2, 69,102,206,157,130, 95,142,159,190, 28,217,163,231, 31, 82,169, -244,153, 54,212, 17, 1, 96,150, 64, 32, 72,113,116,116, 44, 17, 8, 4, 41, 0,230,240,249,252,195,171, 87,175, 46,200,200,200, - 40, 63,127,254,124,245,153, 51,103, 74,103,204,152,113,139, 32,136, 95,154, 17,236,209,205, 88,105,154, 90,117,150, 21, 22, 22, - 30, 87, 42,149, 39,100, 50,217, 71,118,164,111,224,244,138,136,191,174,210, 90, 89,149,214,202,122, 69,196,179,141,182,175,183, -241,154,219,170,163, 63,181, 5,137, 68, 18,104, 67,208, 71,183,116, 44, 0,159,186,255,162, 0,124, 89,247,169,159,122,238, 35, -149, 72, 30, 86, 91,122, 24,101,231, 56, 57, 78,142,147,227,252,111,115,254,147,209,167,238,219, 23,247,252,181, 26,222,221,109, -157,117,248,106, 94, 94,158, 35, 0, 4, 7, 7,207, 5,176,175, 45, 66,130, 32,176,136, 97, 88, 30, 0,240,120,196, 59,195,135, -143,232, 35,147,201,238,139,130,108, 52, 26,197, 41, 41,191,142,100, 24,150,168, 75,183,136,101,241, 5,128,114,123,207, 97,177, -152,121, 66,161, 24, 60, 30,241, 86,100,100,143,206, 21, 21, 21,103,121, 60, 94, 98,105,105,105, 85,155,205, 56, 4,129,173, 91, -183, 6,251,250,250,254, 41, 90,179, 82,169, 20,199,199, 63,209, 38,190, 23, 0,137, 89, 34,233, 47, 34, 8, 95,154,162, 92, 1, - 64, 32, 16, 84, 93, 22,139,163, 62, 94,181, 74, 78, 16, 4,163,209,104, 96, 52, 26,241,230,155,111,202, 50, 51, 51, 39, 84, 84, - 84,108,180, 65, 27,220,179, 87,159, 55, 79,156, 56, 30,166,171,172, 50,109,253,124,115,154, 81, 32, 50,116, 9, 15, 21,109,218, -178,221,109,230,139,211, 94,207,206,206, 72, 71,243,203,145, 52, 6, 15,192,129,249,243,231, 71,196,197,197,137,107,106,106,164, - 70,163,177,115, 98, 98,226,123, 81, 81, 81,142,189,123,247, 22,239,218,181,139,208,106,181, 96, 89, 86, 30, 26, 26,202, 78,158, - 60,217,180,123,247,238,215, 0,108,104, 69,248, 46,186,119, 45,121,235, 67, 66, 66,150, 3, 64, 94, 94,158,168,209, 53, 22,134, -133,133, 57, 0, 64, 78, 78,206, 7, 44,203,204, 7, 0,150,197, 90, 0, 75,154, 49,173,229, 69, 12,154, 4, 16,232,150,113,238, -103,105,196,224, 73, 38,176,184, 69, 0,121,117, 29,130,149, 64,163,184, 80,247, 35, 75,161, 80,180,107,109,194,216,216, 56,130, - 32,136,189,105,105,105,251, 84, 42, 85, 23,134,161, 95,105, 45,159, 77,218, 17,225,225,225,241, 66, 69, 69, 69, 2,128,151,179, -178,178,250, 0, 64, 88, 88,152, 8,192, 21,103,103,231,129, 86,139,133,224,158, 85, 28, 56,112,224,240,143, 21, 90, 87, 1,196, -226, 63, 75,240,108,105,143,208, 18, 3,192,217,179,103, 1, 64,210,142,140, 16,141, 5,204,188,121,243,224,235,235,219, 84,188, - 32, 53, 53,229, 65, 10,123,223, 57, 62,252,240, 67,199,234,234,234,232,111,191,253,118, 8,203,178,159, 42, 20,138,223,109, 28, - 95,206,178, 88,203,227, 17,239, 16, 4, 1,137, 68,154, 59,123,246,236,171,117,255,117,254,229,151, 95,228,227,199,143, 55, 0, - 40, 0, 0,137, 68,234,207,231,243,130, 89,150,173,127,225,182, 40, 8,159, 6,130, 40,177,120,196,172, 47,191,164, 30, 29, 63, - 94,224,224,229, 69, 0, 64, 65,118,182,199,218, 79, 62, 25, 88,149,159, 47, 54,122,120,104, 52,122,189, 49, 55, 55, 23, 18,137, -132,224,243,249,143,218, 42,176,131,131,195, 27,171, 62, 94,227,160,171,172, 54,154,116, 53, 22, 62, 69,154,157,100,114,186,188, - 76,165,113,148, 57, 24,222,121,127,133,248,213, 87,166,191,161,215,235,231,218,160,122,237,173,183,222, 10,235,215,175,159,255, -158, 61,123, 8,173, 86, 11,129, 64,224,216,187,119,111, 68, 69, 69,209,191,254,250, 43,209,165, 75, 23, 68, 70, 70,226,220,185, -115,184,112,225, 2,209,167, 79, 31,249,254,253,251,159, 35, 73,114,131, 45,113,205,231,243,222, 12, 13, 13,237,237,224,224, 96, - 9, 14, 14,198, 43,175,188, 2,150,101, 17, 29, 29, 29,233,232,232,184, 79,175,215,139,115,114,178,135,216, 18,217,170,140, 67, -147,235, 45, 91, 0,122,128,197, 45,117,198,161,198,195,143, 97, 57, 57, 57,143, 85, 85, 85,225, 94,189,176, 13, 11,152, 15, 25, - 50,164, 45,109,169,156,101,177,118,252,248,184,119, 0,130,136,142,142,174,126,237,181,215,120,217,217,217,207, 62,249,228,132, -200,188,188, 91,104, 37,159,141,219, 17,241,194, 11, 47,150, 59, 58, 58, 78,220,187,119,111,142, 82,169, 20,136, 68, 13, 58,147, -239,237,237,237, 21, 28, 28, 60,199,221,221, 93,197,231,241,188, 89,176,172,173,182,196,129, 3, 7, 14, 28,254, 86, 56, 82, 39, -174,142, 52,253, 67, 0, 0, 73, 73, 73, 13,145,105,227,226,226, 90,236, 85,179, 44, 91,126,237,218,181, 0,131,193, 0,150,101, -237,121, 9, 52,158,162, 89, 78, 16,188, 77, 60, 30, 49,151, 32, 8, 68, 70,246,184,179,126,253,250,230,214,244,178, 68, 70,246, -184,195,231,243,186,178, 44, 11,130,224,125,205,178, 76,121, 11,156,205,190, 24,197, 98,201, 34, 0,240,241,241,205, 63,118,236, -152,229,233,167,159,198, 39,159,124, 34, 90,188,120,241, 66,129, 64,240, 90, 81, 81, 81, 89, 43,249, 4,128, 37, 94, 94,222,242, -173, 91,183, 6,207,158, 61,251,170, 82,169, 92, 2, 0,190,190,190, 9, 0,194, 1, 20, 52,218,135,111,190,217, 93,250,202, 43, -175,228,170, 84,170, 37, 45,113, 78, 4, 30, 9, 8, 13, 29,177,242,236, 89,150,103, 54, 19, 21,191,253,166, 83,151,151,147,183, -213,106,249, 15, 87,174,196,189,151,144, 32, 12, 8, 12, 68,234,225,195,158, 21, 6,131, 90,107, 54,155,202,203,203, 89,138,162, - 46,216, 81,246, 8,111, 47,111,249,230,207,190,190,236, 36,228, 51,222, 29,253, 9,161,187,187,128, 39,119, 22,243, 5, 60,115, -215,206,221,197, 0, 34,108,213,145, 72, 36,122,110,244,232,209,242,221,187,119, 19,145,145,145,112,117,117,197,111,191,253,134, -244,244,116, 84, 85, 85,241, 72,146, 68,223,190,125,177,102,205, 26, 4, 6, 6,162,186,186, 26, 69, 69, 69,158, 98,177,216,139, - 36,201,150,174,231,125,237,105,209,162, 69,240,245,245, 5, 69, 81,168,172,172, 4, 69, 81,112,116,116, 4, 0,148,148,148,224, -240,225, 67,246,180, 37,155, 96, 89, 22,143, 63,254,120, 13, 65, 16, 89, 77, 45, 90,109,225,244,247,247,223,165, 86, 87,140, 27, - 49, 98, 4,170,170,170,200, 21, 43, 86,160,103,207,158, 8, 14, 14,182, 39,159, 75, 68, 34,241,183,157, 58,117,250,108,222,188, -121,190,238,238,238, 48,155,205,239,149,149,149, 97,206,156, 57, 0,128,152,152,152,158, 66,161,240,216,140, 25, 51,208,165, 75, -151,210,202,202,202,162,180,180,180, 87, 12, 6,195,205,246,150,221, 78,112,156, 28, 39,199,201,113,254,173, 56,237,213, 34,127, - 83, 40,113,127, 56,135, 45,247, 9,173,184,184, 56, 34, 41, 41,137,181,163, 96,154,142, 29, 59, 6,200,100, 50, 0,208,180, 53, - 23, 12,195,188,230,225,225,161, 90,178,100,201,160,224,224, 96,203,107,175,189,118,179,160,160, 96,105,227, 52,157, 59,119,254, -232,171,175,190, 66,110,110,110, 65, 66, 66,194, 57,141, 70,211,214,117,204, 22,179, 44,214,215, 89,199, 42, 14, 31, 62,220,243, -236,217,179,115, 63,255,252,115,175, 87, 95,125, 85,244,198, 27,111, 76, 3,240,137, 45, 18, 62,159,111,104,110,184,176, 57,248, -250,250, 90,248,124,126,139, 65,226,226, 0,153, 84, 44, 30,190,242,236, 89,214, 82, 80, 96,248,110,221, 58,167,205,127,252,177, -156,100,217, 14,222,222,222, 24, 60,112, 96,173,148,207,175, 80,149,149, 49,222,143, 60,194,191,123,236,152,167, 81, 44, 86,236, -222,189, 91,171,209,104, 14,218, 52,225, 17,132,142, 97, 89,139, 99,199, 64,242,233, 9,163, 34, 47, 95, 74,207,118,242,246,228, -245,233, 29,217, 51, 59,183, 32, 13, 12, 99, 37, 8, 66,103,139,199,197,197, 37, 88,163,209, 64,167,211,193,203,203, 11,235,215, -175,135,143,143, 15, 12, 6, 3, 50, 50, 50,216,142, 29, 59, 18,103,207,158, 69,199,142, 29,161, 86,171, 97,144,143,144,232, 0, - 0, 32, 0, 73, 68, 65, 84,177, 88, 80, 83, 83,163, 50,155,205, 45,173,205, 88,206,227,241,191,231,241,136, 23, 9,130, 64,215, -174, 65,133, 27, 55,110,180, 48, 12,131,176,176, 48, 60,249,228,147,216,191,127, 63, 50, 50, 50,234, 45, 79,150, 78,157, 58, 23, -242,120, 68,167, 58,173,212,110,171, 78,253,210, 62, 10,133, 98, 98, 59,111, 26,158,159,159,223,180,110,221,186,205,125,230,153, -103, 72,177, 88, 12,189, 94, 95,127, 45,200,113,227, 98,170,199,143,143,115, 57,114,228, 72,171,249,180, 88, 44,249, 90,173,246, -229,183,222,122, 43,241,155,111,190,113, 91,186,116, 41, 24,134, 1,203,178,160, 40,170, 97,209,111,134, 97,112,224,192, 1,220, -190,125,251,163, 38, 34,139, 3, 7, 14, 28,254, 39,208, 6, 45,242,119,132, 47,238, 13, 27,162,169,216,250,175, 71,134,231,243, -249,155, 79,158, 60,217,123,200,144, 33,130,145, 35, 71, 70, 30, 63,126, 60,178,180,180,244,102,157,245, 32,114,228,200,145,145, -222,222,222,248,226,139, 47, 12,124, 62,127,115, 59, 79,211,240,210, 43, 43, 43,187, 10,224,211,253,251,247,175,157, 53,107, 22, -124,124,124,194,149, 74,229,127,181,204,206, 18, 73,159, 25,235,215, 83, 66,146,228,125,249,233,167,206,235, 82, 82,214,238,249, -249,103,193,227,143, 63, 78,176, 44,139, 27,215,175,203,214,108,216, 32,159, 58, 97, 66, 65, 78,126, 62,117,232,196, 9,178,188, -180,180,178, 84,173, 94, 6,160,210, 22, 63, 73,146, 23,243,242,242,252, 6, 15,125,220,255,204, 31, 55,211,159,158, 16, 51, 66, - 40,224, 17,183, 10, 74,174,248,250,120,186,164,166,156, 50,146, 36,121,209, 22,143, 94,175,191, 75, 81,148, 59,203,178, 94,169, -169,169,240,242,242, 66, 85, 85, 21, 72,146,132,197, 98,177, 24, 12, 6,169, 70,163,129,201,100,130,217,108,134,179,179, 51,110, -220,184, 81, 78, 81,212,175, 45,113,210, 52, 61, 67, 34,145,124, 40, 20, 10,197, 34,145, 72,113,229,202, 21,232,116,186,206,174, -174,174,159, 80, 20, 5,133, 66,129,179,103,207,190,237,236,236, 92, 0, 0, 82,169, 20, 98,177,196,195,108, 54, 83, 0, 74,219, -123,205, 89,150,109,119,125,249,248,248, 4,202,100,178,149,239,188,179, 40,172, 87,175,222, 80,171,213, 96, 24, 6, 14, 14, 14, - 48, 24, 12,112,118,118,198,128, 1, 3,238,174, 92,185, 82,201,178,152,105, 75, 12,170, 84, 42,181, 64, 32,120,109,214,172, 89, - 31, 6, 7, 7,119,101, 89, 22,221,187,119,199,232,209,163,113,236,216, 49,228,230,230, 66,175,215,211,191,255,254,251, 79, 74, -165,242, 23,238,113,203,129, 3, 7, 14,255, 56,252,201, 55,235, 62,139,214,127, 19, 42,149, 74,157,157,157,125, 60, 45, 45, 45, -110,242,228,201, 72, 77, 77,125, 1,192, 91, 0, 32,145, 72, 94,152, 60,121, 50,210,210,210,144,157,157,125, 92,165, 82,169, 31, -198, 57,197, 98,177,201, 98,185,103,156,146, 74,165,210, 54, 30,222,185,110,200, 16, 0, 58,183,178,175,101,211,136, 64,224,219, - 99,236, 88, 65, 85,122,186,110,235,165, 75, 31, 38, 38, 38, 10, 6, 13, 26, 68,144, 86, 43,104,134, 65, 80, 80, 16, 49, 50, 58, -218,225,251,196, 68,119, 90,175, 63,187,234,157,119,126,219, 50, 99, 70,109, 94,157, 31,152, 45,152,205,230, 13,115,231,188, 28, -157,146,250,155,127,120,232, 35,238,199, 79,166, 92,245,240,112,145, 7,119,235,230,160,169,170,164,151, 46,126, 91, 96, 54,155, -191,180,197, 99, 52, 26, 15,156, 58,117,106, 66, 64, 64,128,215,205,155, 55, 97,177, 88, 64,211, 52, 70,142, 28, 9,150,101, 37, - 0, 24,129, 64,128,236,236,108, 88,173, 86, 85, 94, 94,158,226,214,173, 91, 18, 0,171,109,228,175,208,108, 54, 35, 43,235,222, -168, 93,199,142, 29, 71,197,198,198,130,162, 40,140, 29, 59, 22,135, 14, 29, 26,149,149,149,181,174,177,230,123,208, 58,175,179, -144,133,249,249,249,237,175,219,101,151, 19,188,191,191,127,100, 80, 80,208, 55,171, 87,175, 22,117,236,216, 17, 44,203,194,205, -205, 21, 6,131, 1, 21, 21, 26,132,135,135, 35, 32, 32, 0,171, 87,175, 6,128,159,236,181,184, 41, 20,138, 91, 10,133, 98,178, - 74,165, 18, 85, 87, 87, 71,141, 26, 53,234,139,232,232,104, 92,189,122, 21,191,253,246,219, 84,137, 68,162,178, 90,173,148,143, -143,207, 76,130, 32,156,173, 86,235, 78,141, 70,163,228,158, 93, 28, 56,112,224,240,143, 64,189,143, 22, 26,125,183,205,162, 21, - 22, 22,230, 80, 80, 80,240,124,231,206,157,197, 0, 32,147,201,194,131,130,130, 22,230,231,231,215,180, 53, 55, 6,131, 97, 79, - 98, 98,226,232,207, 62,251, 76, 20, 19, 19,243,200,254,253,251,251, 1, 64, 76, 76,204, 35, 78, 78, 78, 72, 76, 76,180, 26, 12, -134,135, 22, 19,137, 36,201, 33,125,251,246, 69,101,101, 37, 10, 10, 10,218, 52, 44,243,203, 47,191,200,113,207, 47,171,213,125, -173,129,178, 88,220, 92,253,253,121,165, 41, 41,214, 74,157,206,119,200,208,161, 4,105,181,130,199,227, 65,163,209,160,168,168, - 8, 46,174,174, 68,118, 94,158,227,182, 69,139,126,233,220,171,151,152,182, 88, 60,218,144, 77,125,133,170,252,197,215, 95,123, -245,192,206,157, 63,121, 85,235,116,183,101, 50,185, 89, 34, 17,249,204,123,253,117,186,178,178,114, 58,128, 90, 59,120, 86,239, -220,185,115,236,216,177, 99,175, 7, 6, 6,122,171,213,106,159,234,234,106,186,178,178,146,143,123,190, 86, 4, 0,164,164,164, - 64,167,211, 81, 52, 77,159,197,189, 88, 88, 22,123, 51,218,169, 83, 39,151,168,168,168, 97, 94, 94, 94,208,106,181,240,240,240, - 64,239,222,189,135,241,249,252,111, 11, 11, 11,181, 15,179,213, 39, 39, 39, 59,177, 44,251, 24,203,178, 24, 59,118,172, 93,199, -208, 52,253, 82,108,108,172,136, 32, 8, 24,141, 6, 72,165, 50, 56, 56, 56,194,201,201, 25,193,193, 33, 80, 40, 20, 24, 51,102, -140,229,246,237,219,155,148, 74,101,155,219,168, 86,171,141, 31, 48, 96,192,130, 57,115,230,128,162, 40,196,199,199,163,184,184, -120,221,221,187,119,119,251,249,249, 77,123,233,165,151,188, 60, 60, 60,176, 96,193, 2, 25,128, 15,184,103, 23, 7, 14, 28, 56, -252, 35,208,212, 71,235,207, 22,173,214,198, 68,125,124,124, 6, 19, 4,241,158,209,104, 20,215, 15,201, 16, 4, 33,246,242,242, - 58,100, 52, 26, 19,148, 74,101,155,156,226,170,171,171,117,119,238,220, 57,116,241,226,197, 73, 19, 39, 78, 68,114,114,242,116, - 0,152, 56,113, 34, 46, 94,188,136, 59,119,238, 28,170,174,174,214, 61,140,146,251,251,251,143, 27, 58,116,232,196,190,125,251, - 34, 41, 41, 9, 52, 77, 95,104,203,241,141,103, 24,162,153, 89,135,245,251,236, 34,227,243, 65, 16, 4, 40,138, 2, 0, 84,168, -213,200,205,201, 65,101, 85, 21,204, 38, 19,244, 6, 3, 29,220,165,139, 81,107,177, 8, 9,160,173, 99, 95,133,105,151,127, 47, - 50,232,245,222, 30,110,238, 70,185, 92,130,106,157, 86,116,229,242,239,181, 0,110,219,201, 97, 97, 89,118,232,177, 99,199,150, -241,249,252,201,142,142,142,152, 59,119, 46,127,216,176, 97, 16,137, 68, 48,155,205,168,174,174, 70, 98, 98,162,154,166,233,174, -117,199, 56,202,229,242,237,124, 62,191,164,166,166,230, 61,155, 39,176, 88, 98,226,226,226, 4, 22,139, 5,171, 86,173,194,242, -229,203, 49,118,236, 88,193,229,203,151, 99, 0,236,124, 88, 45,158, 97, 24,140, 26, 53,170,177, 51,124,150, 61,199, 9,133,194, -200,110,221,186, 65,173, 86, 67,173, 86,195,203,203, 11,126,126,126,240,241,241,193,186,117,235,216, 47,190,248,226,184,213,106, -221, 84, 81, 81, 81,222,142,182, 56,115,250,244,233, 51, 39, 77,154,132,218,218, 90, 92,188,120, 17, 3, 7, 14,196,218,181,107, -125,207,158, 61,251, 86,223,190,125, 33, 20, 10,145,154,154, 10,138,162,138,185,231, 22, 7, 14, 28,254,215,240, 15,245,207,106, - 21,173, 90,180, 2, 2, 2, 92,105,154,126, 59, 54, 54,118,212,132, 9, 19, 48,102,204,152,251,254,223,185,115,167,211,190,125, -251, 18, 54,108,216, 48,214,106,181,174,110,203, 80, 31,195, 48, 7,118,238,220, 25,243,248,227,143,203,135, 15, 31, 30, 4, 0, - 18,137,196,178,115,231, 78, 3,195, 48, 7,218, 81,150,250,224,142,229, 0,224,231,231,215, 83, 32, 16, 76, 28, 55,110, 92,207, - 23, 95,124, 17, 25, 25, 25, 72, 76, 76,188, 21, 28, 28,124,174,188,188, 77,239,200, 2, 27,179, 14, 19,108, 89,183,248, 98,177, -166,186,172,204,213, 49, 48, 80,232,230,228,164, 76, 74, 74, 10,136,142,142, 38,138,139,139, 81, 85, 85, 5,147,201,132,203,151, - 47, 51, 2,160, 80,224,230, 70, 20, 94,188, 72,240,197, 98, 13,238,159,201,103, 19, 1,190,110,221,223, 95, 60,187,179,201,108, -138,208,106,181,148, 64, 40, 20,118,244,113, 45,206,185,221,166,145, 56,179, 92, 46,143, 2, 32, 96, 24,198,224,238,238, 46, 63, -121,242, 36,196, 98, 49, 8,130, 64,143, 30, 61, 32,149, 74, 69, 44,203, 22, 1,128,147,147,147,120,243,230,205, 46,211,166, 77, -251,205, 22,113,159, 62,125,132, 18,137,228,137,224,224, 96, 92,188,120, 17, 55,111,222, 44,188,120,241, 98,167, 62,125,250, 32, - 48, 48,240, 9, 95, 95,223,159,175, 94,189, 74, 62,140,134,125,111,198,106,219,157,225,105,154,102, 8,130, 0,143,199, 3,195, - 48, 80,171,213,232,218,181, 43, 54,110,220,136,245,235,215,175, 82, 42,149,135,219,147,159,176,176, 48, 81,215,174, 93,167, 79, -154, 52, 9,249,249,249, 72, 72, 72,168, 80, 42,149, 41, 39, 78,156,120,106,206,156, 57,252,129, 3, 7, 66,163,209,224,251,239, -191,167,174, 92,185,242, 93, 89, 89,217, 14,238,145,203,129, 3, 7, 14,255, 98,161, 21, 16, 16, 48, 73, 36, 18, 45,152, 50,101, - 10, 63, 36, 36, 4,229,229,229,112,118,118, 38, 9,130, 16, 2,128,171,171, 43, 41,147,201, 48,123,246,108,244,234,213,107,240, -162, 69,139, 6, 10, 4,130,141, 10,133, 98,187, 61, 39, 86,169, 84, 6, 30,143,183,119,238,220,185,171,211,211,175,118, 5,128, - 63,254,248,227,142, 66,161, 88,172, 82,169, 12,109, 44, 71,125, 80, 76, 66, 34,145, 94,234,222,189,251,221,168,168, 40,231, 9, - 19, 38,192,203,203, 11,105,105,105, 88,179,102, 77,158,197, 98, 89,118,230,204, 25,234,191,125,145, 41,179,185,236,202,193,131, - 78,195,158,125,214,121, 94,108,236,167,175,206,157,251,217,251,239,191, 47, 8, 9, 9, 33, 12, 6, 3, 46, 93,186,196,238,219, -183,143,252,254,195, 15,215,195,193, 65,120,113,223, 62,177,197, 98, 41,108,163,181,100,232,160, 33,131, 67, 62,253,108, 3, 76, -198, 90, 92,186,112, 4, 85, 85,106,108,222,178, 63,196,223,159, 29, 90, 90, 90,122,198, 94, 46,130, 32,130,147,147,147,189, 89, -150,133, 88, 44,198,202,149, 43,225,231,231, 7,103,103,103,212,212,212,224,173,183,222,114,153, 63,127,190, 11, 0,100,100,100, - 52,132,103,176, 5,133, 66, 49, 96,246,236,217, 78, 20, 69,225,248,241,227, 22,130, 32,222, 59,117,234,212,183, 61,122,244, 16, - 15, 30, 60,216,105,199,142, 29, 3, 1,164, 62, 44,161,213,206,227,110,157, 60,121,178,239,228,201,147, 89,161, 80, 72, 84, 87, - 87,195,213,213, 21, 27, 55,110,212, 43,149,202, 35,237,110, 3, 20, 37,150,203,229, 98,150,101,177,119,239, 94, 20, 22, 22,190, -164,209,104,202,104,154,222,255,246,219,111, 47, 12, 9, 9,233,146,147,147, 83, 88, 83, 83,179, 86,165, 82,221,229, 30, 77, 28, - 56,112,224,240,143, 66,189, 19,124,253,236,195, 35,184, 55,156,216,178,208,162,105,122,246,137, 19, 39,248, 12,195, 96,203,150, - 45,184,114,229, 10, 43,151,203,223,147,203,229, 95,201,100, 50,218,104, 52,206,122,229,149, 87,166, 45, 95,190,156, 55,120,240, - 96, 92,188,120,145,215,181,107,215,233, 0, 26, 11,173,104,180, 18,107, 67,171,213, 94, 46, 47, 47,235,218, 40, 64,101, 87,137, - 68,122,217, 70, 97,154,114, 54, 13,138,217,127,229,202,149,122, 95, 95, 95,203,205,155, 55,241,205, 55,223, 48, 87,174, 92, 73, - 17,139,197,155,149, 74,165,217, 78,206,135,129, 6, 78, 49, 69,165,253,184,112, 97,216,163,241,241,204,203, 11, 22,212,138,100, -178, 55, 62,221,176, 97, 81,117, 77,141, 31, 8,130,245,112,113, 41,220,178,114,101,194,216, 39,158,168,205, 56,115, 70,154,158, -156, 44,244, 34,201,107,109,201,103,105,105,233,153,212,212,223,240,195,214,207, 96,181,154,161, 44,189,167,211, 42, 52, 90,216, - 16, 89,127,226,164, 40, 74,251,212, 83, 79,137, 0,200,158,123,238, 57,177, 74,165,194, 35,143, 60, 2, 0,208,233,116, 56,114, -228, 8, 66, 67, 67, 1, 0, 55,110,220,104,216,182,149, 79, 7, 7,135, 39, 6, 14, 28,136,194,194, 66,100,100,100,156, 86, 42, -149, 26, 0,167,139,139,139, 99,250,246,237,139, 3, 7, 14,140,111, 69,104,181,169,142,236, 20, 90,127,226,148,201,100,139,247, -239,223,255,210,133, 11, 23, 38, 47, 92,184, 80, 56,114,228, 72, 0, 64, 77, 77,141, 1, 0,221, 30,206,198,121, 34, 73, 18, 12, -195,192,221,221, 93,175,209,104,160, 82,169,238,170, 84,170,185,183,111,223,110, 23,231,195,104,159, 28, 39,199,201,113,114,156, -127, 19,206,127, 3,236,143, 12,207,178, 44,197, 48, 12, 82, 83, 83,177,127,255,126,218,106,181,206, 84, 42,149, 55, 26, 37,217, -144,150,150,150,252,212, 83, 79,109,207,201,201,225,103,102,102,130,101, 89,186, 45,185, 49,153, 76, 36, 65,252,121,223,131,150, -242,135, 31,126, 64, 89, 89,153,181,184,184,248, 20, 69, 81, 7, 30,112,246,226, 3,207, 58,252, 1, 48, 63, 99,177,156, 90, 62, -104,208,168,101,201,201,146,151,223,125,215,252,194,139, 47,190, 77, 91, 44, 36, 95, 36, 98,196, 14, 14, 60, 90, 34, 17,102,156, - 57, 35,253, 98,206, 28,119,163,217,124, 60,177, 13, 14,230,245, 22,173, 97,195, 6,227,133,151,223,132,177,145, 69,235,226,229, - 92,152,173,104,147, 69,203,108, 54, 71, 40,149, 74, 72,165,210, 34, 0, 62,207, 63,255, 60, 24,134,129,209,104, 68, 77, 77, 13, - 20, 10,133,246,197, 23, 95,164,235,196,147, 96,226,196,137,206,246,240, 6, 5, 5,249, 9,133, 66, 28, 63,126, 28, 66,161,240, - 8, 0, 8,133,194, 35,201,201,201, 49, 83,167, 78,133,191,191,127, 80,126,126, 62, 1, 27,254,105,222, 17,241,123, 88,160, 59, - 8,116,187,103,130, 67, 55,175,136,248,235, 4,144, 87, 23, 53, 62,171, 79,159, 62,128,157,126, 89,141, 81, 55,185, 99, 61, 73, -146, 63, 47, 90,180,104,110,255,254,253, 71, 47, 95,190,156, 0,192,127, 24,119, 32, 69, 81, 15, 20,122,130, 3, 7, 14, 28, 56, -252,173,173, 90,127, 66,139, 66,139, 32,136, 45, 67,135, 14,157, 9,128, 79, 16,196, 55, 10,133,226, 70,211, 52, 74,165, 50,215, -207,207,239,147, 46, 93,186,204, 2,192, 18, 4,177,165,141,153, 42,103, 89,172,225,241,136, 69,247,196, 93,187, 2, 84,214, 47, -117,178, 8, 0,193,227,241,183, 95,189,122,245,221,162,162, 34,181,157, 22,136, 86,241, 48,102, 29, 2,192, 79,192,221, 41,133, -133, 39, 22, 68, 70, 70,143,157, 51, 7, 61,199,142,117,246,235,212,137, 54, 90,173,204,141,115,231,136, 11,123,247,138,210,147, -147,133, 70,179,249,248, 1,160,168,173,249, 44, 45, 45, 61,243,107,202,153,147, 79, 79,140, 25, 29,212,197,239,158,104,184,171, - 64, 69,165,246,100, 91, 68, 86, 19,209, 27,191,113,227,198,195, 34,145, 72,208,120, 41, 27,171,213, 90,105, 54,155, 35, 0,160, -170,170,202,111,203,150, 45,187,120, 60, 94,161, 45,190,204,204,204, 67,203,150, 45,155, 88, 80, 80,112,178,184,184,184, 0, 0, -138,138,138, 10, 72,146,220,174, 84, 42, 39, 22, 22, 22,238,131, 29,147, 0, 88,160,123,198,185,159,123, 0, 64,196,160, 73,200, - 56,247,179, 20, 64,143,136, 65,147, 0, 0,237, 93,203,176, 49,234, 66, 43,188,119,241,226,197,157,163, 71,143,126, 5, 15, 16, -211, 11, 0, 44, 22, 11,105, 52, 26, 41,154,166, 5, 86,171,149,181, 88, 44, 36,247, 76,226,192,129, 3, 7,251,193,178,108, 95, - 0, 94,117, 63,235, 13, 40, 94, 77,182, 45,168, 91, 46,176,254,241, 91,247, 91, 77, 16,196,229, 70, 28, 13,251,237, 56, 22, 0, - 42, 0, 92, 39, 8,162, 37, 35,200,150,150,126,183, 40,180, 20, 10,197, 62,216,177,104,180,189,233, 90,193,146,186,117,226,128, -246,175,237,214,192, 65,211,116,121, 81, 81,209, 3, 87, 40,143,199,187, 59,126,252,248, 54,165,183,149,102, 55, 80,248,186,217, -188, 35,233,203, 47,123, 31,255,230, 27,127,154,162, 60, 8,128,229,139,197, 26,139,197, 82,224, 69,146,215,218,106,201,186,207, - 26,115,167,116, 76,254,157, 82,116,235,214,141,189,117,235,214, 61, 91,207,131,225,154, 94,175, 15,176,213, 4, 12, 6,195, 96, - 59,197,224, 79,165,165,165, 63, 53, 35,216,119, 41,149,202, 93,246,102,170, 97, 81,105,128,199, 16,204,211, 17,131, 38,237, 5, -192,212, 47, 42,253, 48, 81, 86, 86,150,131,186, 56,111, 15,130,194,194, 66, 51, 65, 16, 63,174, 89,179,230,185,244,244,244,221, - 10,133,194,204, 61, 54, 57,112,224,192,161,109, 34,139, 32,136,164,186,223,113,117, 70,161,164,166,219,245,105,234,211, 53, 78, - 83,207,209,116,127,107,199, 2,192,226,197,139,223, 77, 72, 72,144, 3,176,119, 49,230,118, 47, 42,253, 87,161,252,111,194,209, - 88, 20,108,253, 43, 10,250, 37, 96, 1, 69,253, 14,170,145, 79, 62,249,112,141, 27,183,110,221, 34,254,205, 55, 92,253,162,210, -141, 16,249, 79,200,119, 65, 65,193,198,192,192,192,205, 10,133,130, 2, 7, 14, 28, 56,112,104, 11,188,154, 19, 70, 45,136,178, -184,214,254,191,175,227,222, 76,186,230,126, 19, 4,145,148,144,144, 16,215,134,252, 54, 88,180,120, 92,221,113,224,240,223,195, -255,199,172, 87, 14, 28, 56,112,224,208, 60,154, 90,177,234,197, 87,211,223,139, 23, 47,126, 23,173,143, 56,249,226,158, 21,203, -183,238,119,131,191, 22,129,123, 51, 7,154, 67, 91,102, 19, 68,183,163,124,167, 56, 78,142,147,227,228, 56, 57, 78,142,147,227, -252,159,227,180,197,125,170, 25, 65, 20,219,210, 80, 95,107,195,136, 77,183,109, 29,107, 43, 45, 65, 16, 45,133,249,169, 31, 42, -108,250,253,151, 35,154,227,228, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, 65,192,178,108, 95,150,101, 99,113,111,194, 20, -203,178,108, 44,203,178, 99, 23, 47, 94,188,164,126,223,226,197,139,151,176, 44, 59,178, 62, 93, 93,154,134, 99,234,247, 53,253, -110,186,175,181,180,173,100,113,102,147,237,134,223,127, 23, 31, 45, 14, 28, 56,112,224,192,129, 3,135,102, 81, 63, 99,176,145, -181, 73, 13,224, 70, 66, 66, 66, 85, 35,223, 41, 53,128,107, 0,122,213,165, 83,215,137,180,198,190, 85,150,186,223,150,102,210, - 88,236, 73,219, 2,182,180,176,205, 9,173,150,208,203,135,247, 97, 96, 71,239,168,186, 10, 0,203, 48, 0, 0,166, 46, 6, 18, - 91, 31, 12,137, 97,192,178, 44, 20,170,234,180, 27, 42,188,223,222,243, 5,251,193,221, 91, 42, 93,207,176,236,160,186, 93,103, -180, 26,243,155, 25, 58, 84,219,203, 17,218, 1, 97, 82, 30,222,102, 88,244, 4, 0, 30,129,235, 38, 6,159,100,151,183, 61,158, - 84,115,237, 60,194, 11, 51,197, 50,249, 20, 23, 87,183,110, 85, 85, 21,121, 86,147,249,231, 76, 53, 54,163,237,235, 50, 34,200, - 13,143, 49, 44,222, 5,192, 19,242,176, 46,175,210,238,153, 28, 28, 56,112,224,240,160,214,145, 7,138,139, 71, 16, 4,221, 12, - 39,241,128,156, 92,128, 61, 59,196, 86, 51,187,255,104,102,223,229,191, 83,190,219, 36,180,194,189, 48, 7, 4, 86, 0, 96,193, -226,131, 76, 53,190,110,211,241,190,136,150,242,249,219, 0,240, 77, 86,122, 1,203,224,108,179, 23,147,135, 33, 82, 17,127, 29, - 0,198, 68,211, 51, 50,149,246,251,139, 69,248, 99,172,128,225,253,200,176,172,144,102,216,237, 96,145,228, 40,194,249,223, 75, - 97,106, 75, 94, 3, 59,122, 71, 29,252, 67, 57, 58,229,235,121,232,223,243, 17,176, 52, 5, 48, 36,228,131,223,198,233,207,159, - 71,255,176, 64,176, 12, 9, 48, 20, 28,199,125,138,113,145, 46,236, 13, 85,251,214,193, 14,246,131,123, 39, 79,239,155, 91,183, -110,243,241, 11, 10, 39, 24,202,138,156, 63, 78, 78,155,191,104,217,136, 8,104, 35,237, 17, 91, 61,125,241,114, 96,231,144,183, -223, 92,241, 25,223,215, 47,192,129, 33,205, 84,217,221,172, 62, 27,214, 46,219, 39,226, 21,174,187,174,196, 54,123,219,114,184, - 23,102, 9, 36,226, 73, 50,169, 67, 55,131,161,230, 22,109, 37,127,230, 9, 5, 99, 63,249,116,125,239, 97,163, 98, 28,233,154, - 50, 30,201, 32,124,207,238, 93,157,190,220,184, 41,230,166,146,126, 2, 0,211,150, 50, 51, 44, 22,229,238,152, 25, 35, 20,240, -137,176,151,182,242, 1,170, 93, 66, 43,204, 27,207, 16, 44,108,134,151, 96, 9,252,150,165,194, 79,237, 57, 71,168, 55,190, 37, - 88, 4,131,192, 94,130,197,174, 76, 53, 84,220, 35,143, 3,135,127, 23,120, 60, 94, 10,195, 48,195, 31,178, 48,120,140,101,217, -223,185,171,251,191,141,182, 89,180, 8,172,202,184, 93,236, 6,218,138,136,224,160, 15,129,182, 9, 45, 41,159,191,253,114, 94, -185, 15, 40, 43,182,126, 52,119,183,133, 4, 40,210, 10,154, 34, 65, 83, 36, 40,202, 10,154, 36,193,146,102, 44,251, 46, 5,176, -212, 32, 42,178,251,118,128,246,181,247, 28, 66,150,247, 99,218,185,147,238,132, 69,139,159,190, 78,120,189, 88, 93,251,250,169, -235,138,138,112,111,227,146, 76, 21,190,111,139, 32, 72,249,102, 30, 18, 15, 28, 41,249,226, 91,125, 54,195,178,112,119,150,133, - 76,139,203, 8,216,113, 40,165,120,253,118, 83, 54, 0,184, 56,136, 67,166, 95,207, 11,124,144, 74,240,150, 74,215,111,222,244, -165,143,175,135,140,160, 46,172, 6, 69,211, 8,232, 20,203, 95,242,218, 52,223, 85,159,111,251, 28, 58,243, 11,173, 29, 31,226, -141,240,206, 93,194, 22,108, 63,114, 33, 80,175, 83, 89, 78,238,124,247, 54,204, 32,125,252,195,132, 31, 38,124,198, 95,250,206, -188,183, 44,116,201,165, 28, 21, 50,109, 61,107,194,188,113, 40, 97,245,167, 61, 71,140,139,115,100,106,213,124,147,190, 54,120, -235,119,219, 86,132,246,236, 39, 31, 28,217, 81,164,250,121, 54, 97,172,169,132,149, 39,149,140,136,136,118, 54, 62, 55,149,220, -250, 67,226,107,153, 42,108,104, 75,153,105,246, 63,109,143, 97,218, 31,117,157, 96, 49, 56,253,247,148, 89,180,226, 50, 88,154, - 4,104,107,195, 55,104, 18, 44,115,239,187,255,236,239, 0,180, 79,104,241, 88,140, 62,117,238,178,111,121,153,178,239,231,159, -126,188,132,189,124,249, 24,104,252,152, 85,137, 51,109, 21,152, 28, 56,112,248, 91, 91, 76, 40,150,101, 5, 15,153, 51,134,101, -217,163, 15, 72,243, 54,128,151,235,182,183, 1,248,228, 33,100,173, 35, 0,159,186,237, 50, 0, 37, 92, 11,120, 32, 52,117,126, -111,119, 28, 45, 41, 88, 6,216, 59, 1, 0,100,109,205, 5, 11, 72, 65,240, 1, 82,143,248,113,163,224,233,237, 3,144, 6,192, -106, 0, 72, 35, 64,234, 1,210,136, 10,101, 33, 96,213, 3,249,199, 64,177,172,164,205,197, 53,107,129,220,159, 49,178, 79, 32, -188, 92,164,152, 23, 31,238,185,229,120,238,182,109, 39,115,162, 51, 85,152, 98, 87, 94, 89, 22,253,123,116,195, 23,219,244,217, -191, 92, 85,143, 1,128,152, 94, 30,199,251,135,119, 10, 88,191,221,148,125,244, 70,213, 88, 0, 24, 27,225,124,172, 95,136,111, - 32,131,246, 91,125, 25,150, 29,236,215,185, 27, 65,167,111, 6,163, 43,129, 78,103, 68,201,221, 29,112,243,127,148, 71, 51, 24, -106,235,120, 25, 31,139,223, 88,186, 70,104,208,149, 91, 24,171,154,246,226, 87,241, 5, 98,134, 64,233, 25,115, 45, 83, 77,191, - 57,243,121,106,193,251, 31, 45, 6, 48,173, 53,158,112,111,188,182,110,221,250, 30, 3,163, 66,189,203,246,205, 35,106,171,202, - 65,241,229,146,248,199, 7,194,181,123, 56, 83,158,186,142, 16, 7, 69,195,213, 35, 8,165, 23,118,162,224,247,253,196,160, 62, - 19, 37,223,255, 36,122, 14,176, 54, 43,180,186,121, 98,208,152, 33,253,118, 7, 5,250,249,178, 44, 3,134, 97,193, 50, 52,106, - 77, 36,150,236,201, 7, 77,211,120,106,204,160,145, 14, 98,130,101, 24, 6, 44,203,160,184, 76, 99,248,245, 82,246,200,252, 42, - 92,178,199, 82,213,235,177,225,131,174,167,253, 30, 74,230,254,130,168,105, 9,217, 4,112,174, 81,155, 27,116,245,196,247,161, -192,119,237,215,114, 4,232,130,227,171, 17, 56,100, 38,127,243, 79,199,189,180,234,210,233,251,118,108,122,250,235,205,155, 19, -179, 85,152,205, 61, 95, 56,112,248,119,128,101,217,135, 46,182, 10, 11, 11, 21, 15, 34,182,252,253,253,135,148,150,150,174,173, -247, 86, 33, 8, 98,109,231,206,157,151,253,167,163,122, 95, 95, 79, 75,211,244,180,210,210,210,179,173,113,198,198,198,250, 29, - 57,114,164, 75, 35,206, 46, 0,186, 52,151,214,213,213,149, 30, 48, 96, 64,193,145, 35, 71, 20, 92, 11,105,151,224,106,179,208, -202, 46,250,121, 94, 31,179,178, 22, 0,178,237, 72,127,223,144,159,137,164, 87,255,176,226,249,213, 17,157,221, 81,163,183,224, -228,149, 2,208, 52, 9,154,162,234, 44, 91, 20,104,138,196,152, 94,158, 24, 96,154,141, 13, 73, 57,160,104, 38,161, 53,206,166, -176,178,204, 51,189,163, 39,239, 97, 24, 86, 44, 17,242,180,193, 1, 30,222, 11,158,234,197,155, 23, 31, 1,163,149,154,188, 51, -245,246,175, 89, 42,108,181,139,147,249,115,200, 35,182,185,125, 52,101,179,236,173, 88,163,250, 71, 15, 27,236,204,154,181, 32, - 43,242, 81, 99, 32,145,175, 33, 81,102,170,134,132, 80,218,197,201,176,232,217,209,223, 87,126,126,247, 59,119, 61,248, 58,129, - 55,159, 18,137,121, 20,104,134,229,179,213,153,102,247,208, 81,194,122,191,173,214,242, 41,147, 59, 61, 63,100,116,172, 75,209, -206,153,132, 44,120, 12,188,251, 4,224,238,217, 31,160,186,146, 4,141,162,128,112, 54, 85,163,131,199, 35, 24, 55,109, 10, 62, -153,210, 23, 53,186, 26,240,149,183, 93,196, 66,137, 43, 96,109,150,147,165, 49,109,221,154,143,124, 5,124,222,189,235, 89,255, -161, 73, 24,205,102,128,166, 32, 21, 48, 32,216,250,255, 72,208,164, 85,222,115,226, 59,115, 1,250,146,173,178,103,169,240, 83, -184, 23, 6,131, 33, 67, 89,210, 8, 2, 56,151,169,254,143,248, 9,243,198, 51,143,142,121,113, 48, 75,224,183,246,212, 81,164, - 7,226,162,186, 56, 58, 56,232,178, 81,178,247,117,220,134,148,237, 48,240,101, 60,243,210,107,242, 45, 91,182,140, 7,216, 57, -184,223, 71,237,175, 88,100,149,227,228, 56,255,145,156,206,206,206, 93, 59,119,238,188,140, 36,201, 33, 34,145,168,131,213,106, - 5,195, 48,101, 98,177,248,183,130,130,130,149, 58,157,238,206,223,173,236,215,175, 95,111,139,216,178,201, 41, 20, 10,145,147, -147,115,171, 13, 98,235, 84,147,227,127, 60,119,238, 28,246,236,217, 3, 0,200,205,205, 69,247,238,221, 29,154, 59,240,238,221, -187, 14,195,134, 13,251, 17, 64, 64,107,156, 55,110,220,232,250,203, 47,191, 96,239,222,189, 0,128,156,156, 28, 4, 7, 7, 55, -155,153,115,231,206,241,159,125,246,217,174, 0, 20,255,133, 58,250, 55,136,172,198,223,255, 17, 90, 73, 73, 73,108, 92, 92, 28, -209,116,187, 25,228, 7,186,137,251,192, 68, 3, 64,126, 91,115,144, 85,142, 53, 95,236, 56, 49,246,244,222,141, 67,164, 34, 30, -150,111, 93, 80,172,174,172,121, 76, 64,220, 27,126,161, 88,240,220, 28,197, 23, 19,166,247, 10,172,170, 53,225,240, 31,165,103, - 51, 85,109, 51,145,102, 42,145, 12, 48,174,247,126,209, 48, 25, 85,193,211, 63, 73,222,181,107,241,216,158,111,198,247,196,161, - 11, 5,111, 2,148,205,168,239, 44,195,128,101,168, 6,231,247,186,174, 3,192,220,191, 40, 48, 3,246,222, 62,166,109, 22,173, -161,128,160,202, 27,227,156,228,226,175,102,205,122,197,153, 84,231,161,210, 34, 66,113,149, 9,101, 70, 33,106, 5,222, 40,205, -190, 65,243, 8, 36,219, 52,185, 16,208,177,148,201,213, 77,236,200,139, 28, 53,215, 95,119,252,221, 42, 49, 65,241,157,159, 92, -229, 90,113,250,179, 2, 74,175,214, 19, 4,108,134,159,119,113,113,237,110,210, 20,240,181, 85, 21,112,245,137,192,216,201,113, -248, 32, 54, 28, 53, 58, 61,212,149, 23,217,110,190,206, 68,225,111,137, 88, 58, 46, 12,154,114, 37,204, 36, 64,232,205,149, 38, -139,169,182,197,235,200,195,230,249, 11, 23, 61,211,201,215,203,161,126, 82, 1,203,208,232, 21, 22,132, 81, 67,250, 35,249,220, -121, 92,190,145, 11,166,110, 82, 1,203, 48, 40, 81, 85,149,155,172,244, 15,109,186,160, 52, 5,150, 52, 53, 43,196,208,142, 33, -195, 72,111,200,105,224,253,190, 93,157,102, 44,142,235,228,228, 32, 33, 96, 34,105,152, 44, 36,106,206,127, 5,143,206, 61, 32, -151, 74,137, 62, 48, 10,174, 2,220,186,133, 28, 56, 52,194,211, 79, 63, 45, 45, 47, 47, 79, 13, 8, 8, 8, 31, 53,106,148,124, -240,224,193,208,235,245, 56,121,242, 36,244,122,125,167,128,128,128, 78, 39, 79,158,156, 88, 84, 84,148,217,177, 99,199, 97,123, -247,238,181,219,135,182, 78, 0,241, 27, 30,193, 0, 69, 16, 4,234,246, 17,117,251,218,189,206,173, 88, 44, 70, 97, 97,225, 67, -183,108,149,150,150,222,106,143,101,171,182,182, 86,228,239,239, 15, 47, 47, 47,208, 52, 13,189, 94,143,131, 7, 15, 66,171,213, -130, 97, 24,200,100, 50,172, 90,183, 21,217, 87, 83,113,233,210, 37,104,181, 90,145, 45,206,146,146, 18,162, 87,175, 94, 48,155, -205,160, 40, 10, 38,147, 9,167, 78,157,106,248, 45, 16, 8,176,232,195,207,145,123, 37, 21,233,233,233, 40, 41, 41,249,175,172, - 54,210, 6, 45,242,119, 68,139, 49,179,254,235,179, 14,105,154, 90,178,101,251,174,139, 75,102, 79,193,107, 83,163, 3, 86,110, -220, 31,157, 85,129,237, 0, 16,230,137,233,207, 13,239, 22,232, 42, 23,226,131,157, 87, 0,150, 93,242,160,231,203,168, 68,110, -120, 7,230,205, 3,151, 10, 83,223,157,210, 7, 65,190,206,221,171,196,149,226,252,124, 59,214, 20,100, 40,184, 57, 74, 66, 98, -122,121, 28, 7,195,192,213, 73, 18, 10,154,130,171,163, 36,100,108,132,243, 49, 0,112,150, 11, 67,155,179,124,181,132,168, 0, -225, 76,185, 68, 48,211,193,201, 53,240,133,241,163,100, 49,227, 39,202, 28,133, 20, 52,151, 78, 66, 39,236, 8,210,189, 19,204, -100, 37, 74,238,220,166, 79,255,158, 85, 90, 81, 99, 94, 96, 51,155, 44,206,150,222,201,241,234,218,115,148, 91, 69,210, 82, 85, -215, 23,119,118,225,129,225,213, 36, 62, 89,238,224,221, 79,246, 71,254,157, 90,134,109,214,162,115, 31,116, 90,109, 1, 73,195, -215, 72, 11,156,110,167,124,143,197,227,122,160,170, 82, 5,147,149,130,214, 72, 89,125, 92,165, 18,243,157,155, 48, 91, 41, 88, - 72, 6, 66, 87,127,156,188,120,163,130, 33,201, 99, 45,113,230,107,144,158,127, 48,221,177,241,190, 32, 79,244,122,199, 89,150, - 14,210,136,194, 18, 5,182, 31,185,216, 39, 95,131,244, 7,169,103,150,161,238, 13, 63, 55,178,100, 17, 44, 6,183,199, 9, 62, -212, 27,253, 68, 82,209,151,107,223,124, 54,252,241, 96,119, 9, 83,114, 17, 4, 99,133, 3, 45,128, 81, 76,195, 37, 32, 8,140, -165,134, 53,152, 76,213, 25, 0, 23,233,157, 3,135, 70, 8, 9, 9,241, 41, 45, 45,205, 88,184,112,161,251,147, 79, 62,137, 3, - 7, 14, 64,167,211,225,135, 31,126,192,250,245,235,177, 98,197, 10,144, 36,137, 45, 91,182,200,247,237,219,215,111,211,166, 77, - 37,129,129,129, 17, 69, 69, 69,101, 54, 4, 22, 1, 64, 2, 64, 88,247,238, 34, 0, 48, 71,143, 30, 69, 76, 76, 12,142, 30, 61, -202,212,237,163,113,175,243,211,174,245, 68,197, 98, 49,196, 98, 49,180, 90,237, 67, 17, 91, 66,161, 16,142,142,142, 16,139,197, -168,169,169,105,179,216,162, 40,138, 95, 82, 82, 2,173, 86,139, 81,227,199,227,243,132, 4, 12, 31, 62, 28,163, 70,141, 2,203, -178, 56,117,234, 20,162, 7, 70, 98,202, 19,195,144,149,149, 5,138,162,236,202,111, 89, 89, 25,202,203,203, 49,118,252,120,108, -221,180, 9,253,251,247, 71, 72, 72, 8, 40,138, 66,106,106, 42,158, 30, 51, 16,210, 9,209,200,205,205,229, 26,181,253,214,172, -135,226,163,245,192,200, 80,227,119,230,208,153,164,169, 99,250,197,141, 31, 20,142,173,187, 79,127, 4, 47,221, 46, 0,240, 48, - 75, 86, 61, 63, 60, 8,153, 69, 85, 56,157,174, 72,202,170,192, 67,153,173,193,208,240,244,112,150, 3,124, 49,140, 86,134,114, -206,183,237,192,204,176, 44,228, 67,222,193,115,227, 51, 3,250,135, 7, 4,212,207, 58,116,140,249, 12,211,111,220, 10,236, 27, -226, 19, 8,154, 4,104, 18,206, 83,118, 2, 31, 58,216,204,199,192, 46,226,228,249,243,230, 13, 24, 55, 97,178, 76, 44,119, 1, -173, 43, 6, 89,118, 3,154,188,179,208,203,187,163,172, 48, 31,123, 78, 92,210,230,149,104,116, 60, 30, 78,150,107,205,111,231, - 87,161,214, 22,175,137, 68,194,178,165, 11, 98,247,236,218,237, 36, 9, 26, 68,220,254, 42, 70, 43, 22, 80, 18,175, 46,143,242, - 12, 82, 79,246,227, 31,118, 59,235, 45, 88,109,139,199,160,215,237, 63,117,242,248,148,110, 93, 7, 57,221,189,124, 4, 70,147, - 25,102, 18,136,232, 55, 12, 52,205,138, 9, 30,193, 56,243,249,132, 74, 83, 5,130,164,203,127,187,118, 87,121,238, 90, 62,223, -236,132,213,173, 70, 23,105,170,238, 9,254, 27,227,135,245, 6, 72, 35,158, 24,210, 3,159, 39,158,126, 29,160, 95,124,176, 74, -190,103,209, 98,129, 65,225, 94,248,134,101, 49,232,202,193,245,161, 81, 19,230,163, 45, 22,173, 8, 79,140, 11,235,234,247,253, -231,171,222,113,247,232,216,157, 79, 48, 36, 88,159,158,128,174,132, 37, 74, 46,194,197,191, 63,104,191,129,216,178,225,211, 90, -134, 97,119, 1,224,166,100,115,224,208,248,121,100, 50,237, 95,179,102,141,123, 92, 92, 92,189, 69, 6, 23, 47, 94,196,182,109, -219,224,224,112,255,115, 50, 38, 38, 6, 44,203,186, 47, 95,190,124, 63,128,199, 91,226, 28, 48, 96,192,248,244,244,116, 69,239, -222,189,243,235,196,150, 8, 0,239,230,205,155,188,226,226, 98,194,205,205,141,245,243,243, 35, 21, 10, 5, 3,128,126,233,165, -151,248, 63,255,252,115, 55,189, 94,127,166,189, 66, 75, 44, 22, 63, 20,159, 45,161, 80, 8,130, 32, 32, 22,139, 33, 18,137,192, -178,108,155,196, 22, 77,211,130,163, 71,143,226,202,149, 43, 88,209,187, 55,222,244,247,135,187,187, 59, 82, 83, 83,193,178, 44, - 28, 28, 28, 80, 89, 89,137, 93,187,118, 97,196,136, 17,160, 40, 74,100, 15,239,222,189,123,145,150,150,134, 15,163,162,240,166, -139, 11, 28, 29, 29,113,234,212,189,209, 64,137, 68,130,194,194, 66,156, 58,117, 10,195,134, 13,227, 26,245, 3,194,238,198, 51, - 20, 16, 84, 18,240,177, 90,140, 96, 41, 22, 32,224, 23, 22, 6, 81, 86,214,253,206, 57,246,128,199,195,210, 13,219,147, 98, 63, -155, 63,158,152, 25,223,199,111,229,247, 41,115, 0, 96,198, 83,193,254,114,137, 0, 95, 28,202,100,121, 60, 44,125, 24, 5, 12, - 11,131,136,208, 96,206,168,254, 33, 80, 84, 91,112, 91, 81,253,107,150,157, 67, 61,167, 63,123, 14, 59, 14,167, 22,175,223, 97, -202,102, 89, 22,174,142,146,144,233,215,111, 7,126,127, 52,173,104,221, 30, 83, 54,203,176,112,149, 11, 67, 95,204, 26,104,115, -214, 97, 84,128,112,230, 91, 11, 22, 12,140,127,113,161,148,202,254, 25,150,219, 39,192, 88,141,208, 89, 69,168,230,251,160,164, -168, 8, 31,111, 73, 42,214,233, 45, 83, 50,212,109, 19,152,121, 26,212, 10, 8,221,147, 31,127,240,110,114,194,170,229,142,198, -252,212, 90, 62, 65, 25,249,157,135, 10, 86,173,248,140,168, 49, 91, 38,231, 87,161,198, 22,143,217, 9,171,215,172,219, 16,251, -202,180,137,217,193,221,135,122,208,138, 59, 30, 38,157, 78,181,243,120,154, 79, 93, 79,145, 0,128,219, 37, 26,168,181,122,138, -166,200, 51, 78, 66,172,204,180,199, 58, 88,135,174,222,240,138, 27, 20,241,172,151,147, 8,198,218,106,120, 59, 9, 49,166,255, - 35,207,146,127,228,190,115, 71,213, 22,185,214, 84,104,145, 96, 73, 35,126, 95, 61, 34,148,165,201, 80,208, 36,172,215,127,108, -187,101,140,192,155,175, 13,113,116,118,179,220,229, 65,239, 0,200, 60, 65, 56,119, 2, 92,186, 16,194,176,201, 80,228,103, 80, -175, 63, 59, 77,115,167,160,228, 91, 79,217, 67,153,249,195,129,195,191, 10,133,133,133,207, 47, 89,178,228, 92,255,254,253, 59, -120,122,122,162, 71,143, 30, 4, 75, 75,198, 0, 0, 32, 0, 73, 68, 65, 84, 56,124,248, 48, 22, 46, 92,216,144,166,119,239,222, - 96, 89, 22,149,149,149, 88,179,102, 77,153, 66,161,120,190,213, 14,122, 70, 70,246,142, 29, 59,134,132,135,135, 91, 69, 34, 81, - 53, 0, 73,117,117,181,180,178,178,146, 48,153, 76, 96, 24,134,113,113,113,161, 21, 10, 5, 57,101,202, 20,243,133, 11, 23, 30, -209,235,245,133, 15, 98,209, 10, 8, 8,184,169,209,104,180, 4, 65, 60,112,232,135,122,145,229,233,233,233, 85, 91, 91,203, 0, -168,106, 79,232, 7,138,162, 16, 21, 21,133, 19,103,175,226,232,233, 11,208, 41,114, 48,231,149,231,209,163, 71, 15,156, 56,113, -162,221,117,214,171, 87, 47, 28, 63,117, 14,231,174, 92, 67, 97,238,117,188, 62,231, 21, 68, 68, 68,224,248,241,227, 92,131,182, - 31, 71,112,191,111,214,145,166, 66,107, 88, 82, 82, 82,125,207,252, 79,242, 53,212, 19,189,132,174,226, 31,151,143,123, 36, 76, - 56,106, 57, 8,161, 12, 63,119, 63, 62,112,233,199, 95,101,243,189, 11,167,221, 84,217,158, 29,118,223, 77,163, 66, 6,123, 41, -251,167,107, 89,161,207, 62,209, 63, 0, 91, 15,203,223, 7,128,201,131,187,226,143, 60, 53, 46,229,170,126,202, 84, 35,227, 65, - 75, 29,233, 13, 57, 93,129,159,214,188, 17, 63,172, 83, 71, 31,108, 59,112, 14, 4,129,253,118,189,112, 89,150,237, 31,222, 9, -235,119, 52,157, 97,232, 19,184,110,143, 41,251,100, 70,205, 56, 0, 24, 21, 42, 63,214,247, 17,183, 64,182,177,227, 86, 51,144, -137, 5,179,198, 77,124, 78, 74,229, 30, 6, 10, 78,129,160,204, 48, 90, 25, 40, 43,106, 96,112, 9, 64,234,197,107, 70,173,201, - 50, 63, 83,221, 62, 43, 94, 86, 5,242, 69,151,175, 21,213,234,141,190,114,175, 71, 76,124, 30,195,212,154, 89,252,145, 89,160, -203, 44, 67,142, 61, 28,249,249,176, 60,230, 79, 13,254,102,251,158,101, 66,145,120, 50,159, 0,225,237,234,224,245,205,103, 31, -194,201,201, 17,140,165, 22,208,171,241,228,171, 31,171,111, 42,200,174, 0,208,221, 3,142,131,187, 10,183, 11,120, 68, 73,202, -109,235,123,182,206, 65,144,152, 61,109, 76,111, 33, 99,209,227,141, 53,187,177,249,157,120, 60, 55, 50, 76,120,228,124,238,108, - 0, 43,219, 91,215, 44, 77,129, 37,141,120,252,221,179,217, 4,112,142, 5, 6, 93,217,179, 42, 20,184,106, 55, 71, 31, 64, 72, - 11,136,176,158,129, 14, 34,166,228, 60,152,146,243, 44, 63, 96, 32,136,192, 33, 4,225, 19,197,126,185,118,133,126,235,214,109, - 39, 25, 30, 62,176, 35, 84, 6, 7, 14,255,171,200, 87, 40, 20, 99, 99, 98, 98, 78,159, 56,113,194, 61, 50, 50, 18, 0,112,229, -202,149,123,157,206,168, 40, 4, 7, 7,163,188,188, 28, 83,167, 78,173, 80, 42,149, 99, 97,195,231,183,166,166,230,206,222,189, -123, 59,232,245,250,222,239,189,247,158,170, 83,167, 78, 58,147,201, 68, 84, 87, 87, 51, 20, 69,193,205,205, 77,220,187,119,111, - 12, 24, 48,160,246,226,197,139,157,139,139,139,107, 0, 20,180, 39,243,241,241,241, 56,123,246,222,164,189,135, 17, 87, 75, 36, - 18, 33, 50, 50,210, 63, 63, 63,191,180,238,221,210,230,103,124,227,215,203,181,107,215,112,230,106, 9, 4, 22, 35,196,106, 5, -126, 63,176, 23,227,103,205, 5, 69,181,223,139,225,255,216, 59,239,240, 40,170, 54,138,159, 41,219,178,233,101,211, 11, 33,144, - 64, 32,244, 78, 16,144,166, 18, 62,138, 84, 65,154, 64, 64, 20, 16,165, 35, 69,165, 35, 69, 58,168,244,142,148,160, 2, 81,122, - 9,157,132, 36, 4, 2,132,180, 77,239,217, 62,229,251, 35,197, 4, 82,118, 19,108, 56,191,231,153,103,182,204,158,157,153,187, - 59,247,204,123,239,125,239,253,251,247,113, 60,244, 6,204,165, 52, 30, 61,122,136, 35, 71,142, 96,226,196,137,181,210,172, 33, - 85,122,145,127, 56, 74, 84,210, 79,139, 6,128,160,160,160,139, 37,209,138,178,248,248, 64, 34, 45,192,130, 30, 45,220,102, 12, - 14,172, 71, 25,242,146,193,177, 28, 40, 17,224,232, 96,133, 61,123,246,215,221,127,240,224,245, 77, 27, 55,173,231, 24,102,110, - 68, 26, 84, 38,236,212,130,111, 15, 94, 25,188,103,122, 23,122,226,187, 13,237, 0, 64, 76,147, 88,119,242, 33, 3, 96, 65,109, -142,182,157, 27,100, 5, 6,140,119,180,183,158, 63,251,163,222,118, 93, 90,249,225, 98, 88, 4,214, 31,185,126, 73,146,134,221, - 70,255,184, 57, 3, 94,246, 79, 21,141, 58, 4, 87,125,191, 75,150,229,157,197,230,182,208,199,157, 7,244, 26,104,180,122, 36, -100,178, 72,200,210,128,150,139,113, 59, 38, 81,109,159,130,144, 90, 28, 54, 97, 46,151,185,126,249,205,106,119,141,186,128,201, -203,206, 96,196,146, 27, 34,185,153, 84,105, 74, 87,133, 27, 73,208,188,229, 45,106, 9,112,148, 68,198,171,230,124, 54,202, 60, - 41,242, 12,234,147,201, 32,120, 30,102,254,189, 97,105, 70,137, 3,235,136,226, 1,192,220, 92, 46, 89,190,232,115,235,169, 51, - 23, 85,219, 7,204, 31, 16,251,249, 56, 79, 13,240,178,197,165, 59,209,184, 20,254,226,225,165,219,143, 26,119,109,226, 10, 63, -119,155, 41,146,236,156,101, 81, 48, 61, 66, 90, 84, 48, 12, 96,208,148,142, 58,244,119,196,176,214,131,231, 85, 54,218,176, 66, -188, 1, 46,134,229, 65, 80, 20, 64,144, 69, 35, 32, 19,174,130,182,241,225,247, 31, 58,174,218,177, 99,247, 87, 81, 25, 66, 20, - 75, 64,160, 58,114,115,115, 31, 68, 69, 69,245,106,218,180,233,206, 79, 63,253,212,114,248,240,225,174,227,198,141, 35, 1, 32, - 53, 53,149, 91,187,118,109,242,119,223,125,151,155,145,145, 49,218, 96, 48,132, 27,243, 15, 87, 42,149,215,190,255,254,251,244, -203,151, 47, 55,110,211,166,141,180,101,203,150,156,173,173, 45, 45,149, 74, 89,157, 78,167,137,137,137, 97,159, 62,125,234,146, -147,147,243, 4, 64, 44,106,208,172, 95, 28,189, 90, 76, 81,212,151, 60,207, 7,188,142, 62, 90,114,185,220, 21,192, 19,130, 32, -234,155,218,108,248, 74,133, 77,211,200,206,206,134, 42,229, 33,100,137,143,209,212,156, 68, 35, 91, 11, 88, 89, 89,213,202, 20, -229,230,230, 2,133, 73,184,114,229, 62,192, 48,176,182,182,134,181,181,245, 95,110,180, 42,243, 34,255, 18,198, 87,240, 90,213, -125,180, 26, 41, 48,209, 76,135,181, 19,122,215, 19,123,123,186, 67,155,120, 27,247, 19, 10, 48,183, 93,155, 72, 74,106,169,153, -240, 97,223, 86, 3, 6,214, 65,151, 14,173, 9,111, 23,235, 41,203,190,221,252,113, 35,100,124, 30,153,134,117,198,236, 81,100, - 58,158,113, 72,219,113,254, 65, 98,176,187, 92, 13,142,227,113, 62, 92,137,240,184,236, 29,209,233,120,102,202,209, 53,114, 65, -119, 26,228, 65,158,231,101,214,230,230,249,141,252,220, 29,186,183,111, 70,190,211,185, 21,196, 20,112,229,230,125, 76,251,246, -216, 13,142,227,123, 27, 61, 66,140,227, 94, 49, 80, 69, 35, 12, 13,229, 70, 24,242, 60,207, 23,141, 58,172,186,219, 23, 69, 17, - 41,170, 23,183,156, 69,246,190, 80,199,158, 71, 92, 54,135, 23,105,249,200,163,157,161, 77, 74, 2,120, 46,254, 98, 45, 58, 86, - 59, 56, 56, 56,214,109,228, 87,111,195,174, 35,208,171,114,241,236,194, 78, 20,100, 43,241,245,150,147,245,220,220,236, 59, 39, - 37, 37, 93, 52,225, 98,227,247, 91,200,126, 71,240, 0, 37,146,226,244,166, 67,200,176, 55,131,131, 92, 12, 78,157,142, 9, 83, -135, 91,191,219, 99,184, 53, 0,188,120,116, 15, 94,114,181, 81,186,122,123, 12, 24,220,181,129, 13, 12,106,236,250,245,158,134, - 4,222,217,125,246, 97,108,215,134, 54,178,193,129, 94,182,139,147,115,222, 71,102,205,146,138,150, 68,180, 74, 35,124, 53, 24, -109,120, 4, 96, 27,114,136, 61,120, 45,205,124, 96,143,150,114, 49, 77, 16,124, 65, 18,120, 51, 7,108,222,117,184, 64, 98,248, -107,102, 98, 23, 16,120, 19, 80,171,213,119,212,106,117,147, 47,190,248, 98,216,156, 57,115,222, 50, 55, 55,175, 11, 0,133,133, -133,207, 12, 6,195,165,226,255,167, 41,163, 3,121, 0, 79, 98, 99, 99,159,197,198,198, 58,237,221,187,215, 6,128,172,248, 61, - 13,128, 28, 0,169,168,197,136,195, 18, 83, 69, 16,196,151,175,235, 60,148,152, 42,130, 32,234,215,228,243, 36, 73,178, 4, 65, -128, 32, 8, 72,165, 82, 92,190,124, 25,131,122,247, 64,212,233, 28, 4,216, 88,160,205,232, 9, 56,120,238, 28, 40,138, 2, 65, - 16,160, 40,202,164,122,132,166,105, 92,185,114, 5, 35,134, 14,132,148, 6,172,173,173,241,197, 23, 95,224,196,137, 19,160,105, - 97,150, 62, 19,216, 86,198,112, 25,153, 71,139,192,226,115, 59,151,136,193, 26,112,106,231, 42,132, 68, 20,232, 30,165, 99,110, -131,116,172, 61,130,124, 46,253,219,221,193,231,174, 68,172, 28, 51, 36, 72,254,118,215, 30,120,187, 75, 87,186,113,235,206,243, -129,114, 70,171, 59,170,200,181,193,114,248,106,219,175,209, 19, 14, 94,136, 33,160,207,199,144,158,173,121,150,195, 87,213, 28, -204, 43,154,214,102, 22, 7,175, 92,191,110, 11,125, 1,226,238,253, 46,171, 83,183, 30,192,234,241,228,201, 99,124,183,235, 39, -238,194,205, 71,123,116, 12, 62,125,154,141, 66, 99, 53,139,156, 21, 3,107,115, 73,131,119, 26, 91,253,194,129,135,141, 92,220, -144,231, 88,216,200, 69, 13,123, 52,148,255,194,243, 60,111,105, 38,106,200,179,134,106, 53,213, 58,102,235,174, 31,118,172, 30, - 59,118,172,121, 70, 98, 10,146,243, 34, 80, 32,113,131, 65,238,129,216,123,151,212, 42, 45, 99, 76, 37, 94,233,249,204,200,200, - 72,187, 19,150,133,131, 91,150,194,160,211, 34, 45,177,200,171, 38,103,228,193,202,193,237,122, 82, 82,146,209,154,122,134,203, - 29, 48,124,188,216,204, 18,102, 35, 6, 4, 73, 98, 51,181,104,225,106, 89,116,209, 40, 72, 71, 84,232, 21,116, 41,238, 99,250, - 52,129,132, 87, 51, 87,163,246,211, 82, 38,254,244,221,150,110,120, 22,175,196,229,135, 73,187,158,101, 33,153,141, 86,238,138, - 77,206, 9,238,219,206, 19,107, 78, 68,126, 2, 24,246,155,114,236,254,142, 24,198,243, 8, 44,234, 12,175, 6, 15, 4,250, 59, - 98,152,145, 35, 13, 95,209,164,197,248, 96,245, 47, 47,230, 29,190,149,209,119,198, 7,157,172, 58,116,120, 79, 2, 70,135,124, -181,214, 16,149,131,188,218,148, 81, 45, 16, 52, 5,205,127,171, 38, 11, 96,143,193, 96,216,147,147,147,243, 58, 53,147,241,106, - 94,167, 90, 29,123,217,102, 66,158,231,233,226,104, 86,117,157,225,171,212, 44,219, 76,200,243,252,207,197,209,172,234,162, 90, -229, 52, 57,142, 75,110,213,170,149, 93,159, 62,125,192,178, 44, 30, 63,126,140, 23, 9, 9,232, 30,252, 9,108,108,108,112,233, -193, 3, 60,122,244, 8, 95,126,249, 37, 12, 6, 3,142, 31, 63,158, 88,157, 38, 77,211,250,122,245,234,137,251,245,235, 7,134, - 97,240,244,233, 83, 36, 37, 37, 97,218,180,105,176,182,182,198,157, 59,119, 74, 53, 51, 50, 50, 64,211,180,190,130,232,214,159, -241, 91,250,183,243,138,201,170,218,104, 1, 44, 88, 3,114,207, 45,192,186,203,208,235, 13,104, 24,153,142,231,145,127, 68,164, - 54, 83, 97, 15, 78, 61,136,136,126,118,231,234,219, 18,164,133,195,212, 59,137,199,153, 80, 90,202,242,243,161,207,183,194,211, - 95,240, 60, 53,191,224,113, 38,148, 38,223, 49,112, 44, 1,189, 10, 80,222,198,181, 75, 23,113,225,198,125,220, 10,143,102,175, -221,137, 57, 72,114,248, 42, 42, 19,143,107,112, 23, 2,139,222,107, 48, 42,252,137,103,107, 63, 39, 79,176, 12,120,206, 0,235, - 33,251, 49, 58,178,131,103,107, 31, 27,207,162, 72,150, 1,182, 31,253, 14,172,150, 85,169,119, 59,193,176, 77,114,226,204,251, -249, 57,153,237,186,117,110,111,110,237,255, 46, 50,158,196,224,241,253, 43,234, 59, 17,177,215,110, 39, 24,106, 21, 45,113,115, -115,123,171, 91,231, 6, 24, 50, 97, 54,244,170, 92, 60,189,240, 3, 10,178, 82,112,249,186, 5,162,243,242,218, 3, 48, 58,162, -117, 61,158,105,140,248,108,116,172, 35,138,183,132,214,249,195,160, 62,144, 18, 26,112,218, 60, 16,170, 12,196, 38,233,114,223, -223,146,192, 2,128, 92, 74,208,230,124,174,149, 81,145, 71, 47,123, 95, 57,101,192,238,115, 15,193,113, 69,211, 55,113, 28, 54, -239,254, 61, 54,248,171, 17, 45,208,200,211,182,217,189,164, 52, 2, 38,132,252, 9, 30,157,110, 29, 92,212, 80,243,219,124,128, -211,227,202, 20,187,134,157,214,101,117, 66, 13,167,219,137, 72, 70, 18,128, 96,208,170,173, 83,214,253, 58,191,213,185,200,192, -233, 31,245,181, 2, 47, 76,192, 46, 32, 32,240,215, 83, 80, 80, 48, 97,244,232,209, 91, 69, 34,145, 2, 0,193,113, 28, 56,142, -163, 87,174, 92, 41, 98, 89,150, 36, 73,146,165, 40,138,249,249,231,159, 13, 44,203,166,107, 52,154, 9,213,105, 50, 12, 19, 59, -105,210,164,122,213,141, 80, 60,112,224, 64,137,201,138, 21, 74,194, 40,147, 85,118, 93, 26,229,170,188,242,224,177,168,227,136, - 5, 11, 0, 16,224,177, 48, 50, 29,207, 95,222, 36, 60, 11,201,141, 40,253,180,198,173, 59, 47, 40,249,140,169,123,166, 97,217, -129,173,155,248, 29, 0, 0, 45,207,142,168,201,209,229,105,213,131,155,183,110,127,144,227,121,154,225,249, 29, 36,135,163, 26, - 6, 81,198,140,180,171,140,228,180,156, 59,239, 6, 88,243, 64, 81,147, 97,105,115, 97,113, 26, 7,158,231,249,210,230,194, 85, - 50,100,228,106,171,205, 3,117,245,185,174,135,142,185, 53,254,236,213,123, 19, 88,150,119,166, 40, 34, 69,173, 99,182,214,214, -100, 1, 64, 82, 82,210,197,208,115, 73,103, 31, 52,115,234,233, 32, 47,142,114,169,128, 12, 21,206, 38,165, 23, 92,172,137,102, -118,161,161,239,156,181, 39, 78, 74, 68, 20, 13,158, 47, 74, 40,202,243,208,232,217,172,235,241, 76, 99, 0,104, 98, 7,215, 47, -142, 51, 7, 40,138,120, 81,157, 94,216, 35,229,154, 33,203, 66, 63,127, 24,151,189, 35, 46, 7, 17, 0, 16,151,131,136, 67, 87, -158,207,143, 77,201,255, 60,226, 69,246, 42,152,216,175,130, 39,112,185,245,144, 5,175,188, 86,219,243, 25,173,196,125, 0,253, -129,196, 30, 67,166,127, 55,157, 32, 32, 76, 63, 33, 32,240, 31,162, 36,170, 69,146,228,226,215,168,249, 51, 65, 16,239, 1,120, - 98,194,199,194, 10, 10, 10,154,188,230,195,203,100, 24, 38,211,152, 13,255,134, 14,241,255, 86,254,182,174, 37,221, 5,205,191, - 94,179,126,253,250,188, 9,134, 69, 56,159,130,166,160, 41,104,254,167, 52,121,158,167,106,179, 84,162, 73,212,102, 17,202,232, - 95,207,248,202,158, 11,205, 33,111, 32, 79,158, 60, 33,132,179, 32, 32, 32, 32, 80, 49, 4, 65,176,127,130,166,144,188, 88,160, -196, 96,149,139,110,145,194, 57, 17, 16, 16, 16, 16, 16, 16, 16,120, 45, 38,171,236,186,200,132,163,242,240,159, 41,163, 9,106, - 18, 66, 12, 21, 52, 5, 77, 65, 83,208, 20, 52, 5, 77, 65,243, 63,167, 89,157,182, 48,154,241, 79, 54, 96,130,166,160, 41,104, - 10,154,130,166,160, 41,104,254,247, 52,255,205, 84,218, 71, 75,104, 58, 20, 16, 16, 16, 16, 16, 16, 16,248,147, 16, 58,195, 11, - 8, 8, 8, 8, 8, 8, 8,212,142,106, 39,149, 22, 16, 16, 16, 16, 16, 16, 16, 16,168, 25, 85, 79, 42, 45, 32, 32, 32, 32, 32, - 32, 32, 32, 80, 99, 76,159, 84, 90, 64, 64, 64, 64, 64, 64, 64, 64,192, 40,182, 9,167, 64, 64, 64, 64, 64, 64, 64, 64,224,175, -161,252,168,195,144,144, 16,190,236, 90, 64, 64, 64, 64, 64, 64, 64,224,175,228, 77,245, 34, 66,211,161,128,128,128,128,128,128, -128, 64,237, 24, 47, 24, 45, 1, 1, 1, 1, 1, 1, 1,129, 63,135, 74,251,104,149, 36, 44,237, 82, 28,170,235, 34,156, 43, 1, - 1, 1, 1, 1, 1,129,191,129, 55,219,139, 8,253,179, 4, 4, 4, 4, 4, 4, 4, 4, 47, 34, 32, 32, 32, 32, 32, 32, 32, 32, -240, 79, 66,152,235, 80, 64, 64, 64, 64, 64, 64, 64,224, 47, 54, 92,127,186,209, 18,102, 54, 23, 52, 5, 77, 65, 83,208, 20, 52, - 5, 77, 65,243,191,100,178,202,153, 45, 97,212,161,128,128,128,128,128,128,128, 64,237,168,118,212,161,128,128,128,128,128,128, -128,128, 64,205, 24, 15, 32,168,248,113, 16,202, 68,181,132,136,150,128,128,128,128,128,128,128, 64,237,216, 6,192,165,216, 96, -157, 6,160, 20,140,150,128,128,128,128,128,128,128,192,235,161,108,191,172,222,101,204,151, 96,180, 4, 4, 4, 4, 4, 4, 4, - 4,106, 73,165,125,180, 8, 84, 62,114, 32,212,132, 47,168,201,232,131, 80, 65, 83,208, 20, 52, 5, 77, 65, 83,208, 20, 52,255, -115,154,213,105,135,226,223,199,120, 83,204,215,235, 68, 24,250, 42,104, 10,154,130,166,160, 41,104, 10,154,130,230,127,150,215, - 62,234,176, 5, 96, 38,156,214, 55, 18,167,226, 69, 64, 64, 64, 64, 64, 64,160,106,254,156, 81,135,254,192, 71,195, 3, 20, 91, - 12, 17,233, 86, 17,128,170,170,109, 21, 10,197, 86,185, 92, 62, 92,165, 82, 21, 18, 4,193,149,188,206,243, 60, 0,148,157,235, -232,105,122,122,122,167,234,190, 91, 34,145,172,117,114,114,250,168,160,160, 64, 69, 16, 4, 79, 16, 4, 8,130, 0,128, 87,214, - 44,203, 38,102,102,102,182,250, 87, 23, 33,207, 83, 14, 78, 78, 55, 69, 20,229,102,234, 71, 89,142,123,158,150,154,218,222,132, -143, 44, 37, 8,204, 40,250, 90,172, 0, 48,251, 77,251, 71,240, 0,101,204,118, 1,128,101, 12, 48,132, 37,201, 79, 68,192, 70, - 45,199,109, 1, 0, 2, 96,107,250,221,218, 48,212, 35,120, 52, 35, 8, 88,243, 60,114,121, 2,247,165,109, 17,251, 55,157,138, - 1, 34,145,168,175,149,149,149, 69,102,102,230, 69, 0, 7, 0, 12,181,183,183,239,156,151,151, 87, 96, 48, 24, 78, 0, 56, 86, - 19,225, 78,205, 48, 83, 34, 22,141,209,232, 13,203,175,222,199, 15,157, 91,192,158,225,176, 76, 38,166, 59,105,117,204,138, 43, - 15,176,195, 68, 73,162,120, 41,185,102,152, 60, 71,218, 97, 35,203, 29, 0,142,219,218,250, 73, 21, 86,191,137, 36,212,243,156, -212,130,225, 3,211,210, 18, 6,213,162,220,255,137, 56, 56, 56,140, 34, 73,242, 27,158,231,193,178,236,220,172,172,172,157,175, - 73,122, 46, 0,155,226,199, 57, 0,190,169,165,222, 11, 0,158,197,143,227, 1,120, 9,245,122,141,217,252,211, 79, 63, 5,119, -237,218, 21,107,214,172,193,230,205,155,227,210,211,211,151, 1,216, 5, 64,247, 55,232, 8, 84, 70, 35,224,189,149,189,218,178, -134, 31,191,226,202,188,220,189,146, 63,243,247, 31,126,248,161,158,231,121,254,209,163, 71,188, 78,167,227, 13, 6, 3,207, 48, - 12,207, 48, 12,111, 48, 24, 74, 23, 55, 55,183,164,151, 62,254,138, 38, 73,146,235,222,127,255,253,124,158,231,249,219,183,111, -243,106,181,154,215,106,181,188, 78,167,227, 53, 26, 13,175, 86,171,203, 45, 78, 78, 78,169, 85,105, 90, 89, 89,221,182,181,181, - 77,181,181,181, 77,181,179,179, 75,181,179,179, 75,181,183,183, 47, 93, 28, 28, 28, 74, 23,133, 66,145,170, 80, 40, 82,237,236, -236,110, 87,183,159,197,244, 2,112,209,136,165, 87, 5,159,237, 94,214,104,185,184,184,164,242, 53,192,221,221, 61,193,136,253, - 44,193,137, 32,192,150,124,150, 32,192, 73,165, 82,207,178,239,227,213, 72, 87,181, 33,101, 87, 87,215,247, 93, 92, 92, 66, 93, - 92, 92,206,185,186,186,190,111,196, 79,172,156,166,165,165,229,109, 7, 7,135, 84,103,103,231,180,146,197,197,197,165,220,226, -234,234, 90,186, 56, 57, 57,165,218,218,218, 86, 90, 70, 60, 64, 85,182, 92, 0,104, 41,240, 54, 77, 81, 33, 78, 78, 78,121,225, -225,225, 44,207,243, 60, 73,146, 73, 37,219,152,114,236, 47,155, 44,213, 21,204,205, 56, 47, 13, 43,120,190, 44, 55,227,188, 52, - 76,117, 5,115,181, 97,168, 87, 83, 77, 35,169, 72,115,228,200,145, 35,239,167,166,166, 38,229,228,228, 40,183,108,217, 18, 35, -147,201,174,108,217,178, 37, 38, 39, 39, 71,153,154,154,154, 52,114,228,200,251, 0, 38,153,160, 9, 0,104,223, 12,237,198, 14, -112, 81,221, 63, 62, 66,245,118,107,250, 94,199, 0, 4,245,104, 47, 78,218, 48,203, 95,117,105,123,160,170,107, 75, 50,194, 68, - 77,130,166,233, 14,158,158,158, 99, 20, 10,197,135,197,203,136,146,197,217,217,121,132,179,179,243, 8, 91, 91,219, 65, 85,105, - 30, 6, 40, 99, 22, 15,153,172,195,160,186,158,170, 23,139, 23,242,225, 83, 63,225,199,248,120,228, 13,116,116,172,243, 55,148, -209,159,170,233,232,232,152,108, 48, 24,120,189, 94,207,219,219,219, 39,191,198,253, 92,197,243,252, 42,158,231, 87, 1, 88,245, - 26, 52, 75,175,103, 38, 24,236,170, 52,101, 52, 73, 78,151, 75, 36,231,164, 52,157, 38,165,233, 52,185, 68,114,142, 38,201,207, - 1,200,254, 73,101,244, 39,104, 90, 40, 20,138,103,107,215,174,229, 85, 42, 21,175, 82,169,248,181,107,215,242, 10,133,226, 25, - 0, 11, 19, 52,107,170,243, 38, 69,176, 94, 94, 94, 95, 68,203, 31,104,245,118,179,250, 71,167,140, 26, 2,238,200, 90,162,154, - 59,166,239,219,183,106, 53,102,215,174, 93, 0,128,225,125,251,162,103,155, 54,176,180, 48,135, 68, 82,180, 59, 4, 79, 64, 44, - 18,163,223,180,207,140,249,250, 21,253,250,245,251,224,200,145, 35, 22, 0,176,121,243,102, 12, 24, 48, 0,118,118,118,144,203, -229, 16,139,197, 16,137, 68,229,214,213, 65, 81,148,123, 82, 82,146,163, 76, 38, 43,141,178,113, 28, 87,110,225,121,190, 36,250, - 6,134, 97,224,235,235,107,236,233,154,149,155,155,251, 86, 97, 97, 97,169, 70, 69, 75,221,186,117, 1,224,140, 49,130,223,124, -253, 21, 56,166, 16, 52, 13, 48, 12,160,213,147,224,248, 10,205, 13, 38, 77,154, 84,186,223, 53,161,119,239, 32,130, 32,136, 35, -119,238,220, 57,154,150,150,230,205,113,236,184, 26, 70,186, 62,126,252,248,177, 5, 0,248,249,249, 77, 2,112,212,148,253,160, -105,218,253,193,131, 7,142, 82,169,180,210,200,101,153, 8, 38,244,122, 61, 90,180,104,193,152,242, 29, 78,128,103, 22, 73,142, -107,222,178,229,248, 5,253,250,201,110,222,188, 41, 35, 73, 18, 12,195, 96,229,202,149, 12,207,243, 54,141, 0,171, 72, 32,175, - 10,153, 57, 0, 70, 21, 87, 6, 59, 0,172, 44,231, 22,120, 52, 83, 27,164, 65, 79, 11,250,181,105, 91,103, 38, 34, 31,134,183, -241,177, 56, 14, 75, 90, 27, 11,252,181, 81, 45, 43, 43,171,190,107,214,172, 81,236,216,177, 35,239,209,163, 71,250, 45, 91,182, - 40, 38, 76,152, 96,169,215,235, 17, 28, 28,156,222,160, 65, 3,241,154, 53,107, 20,199,142, 29,123,187,176,176,112,147, 73,229, - 69,224,171,161,125,123, 66, 99, 32, 97, 48, 48, 10, 23,133,229,158, 41, 35,187,136,120, 94,135,221, 39,238,192,192,112, 63,152, - 24,201,106, 63,112,224, 64,159,253,251,247,211,209,209,209,116,195,134, 13,193,113, 28, 88,150,133,193, 96, 0, 0,112, 28,135, -250,245,235,215,250,188,140, 1,252, 28,156,236,206,181,127,239, 93, 51, 23,153, 20,118,217,233, 24, 43,166, 45,119,202,181,123, - 1,116,120,163, 34,187, 60, 15,154,166,145,144,144, 0, 71, 71, 71, 51,142,227,148, 0, 22,102,103,103,111,195,155, 75, 27, 9, - 77, 31,221,253,195, 58,231,182, 29, 58, 80, 78, 46,142,136,121, 28, 15,154, 96,187, 63,184,117,167,203,152,137,211,167,232, 24, -230,125, 0, 55,223,180, 3,119,238, 48,169, 63, 65, 82,155, 9,158,195,162, 13, 39,243,151,174, 88, 43, 15, 30, 55,146,154, 54, -109, 26, 60, 60, 60,188,251,247,239,191, 2,192,196,106,117,218, 78,234, 15,138,220, 12,158,199,130,239, 78,230, 47, 89,177, 86, - 62,177, 6, 58,255,114, 42,253,143,212,218,104,249, 3, 62,141, 61, 28,207, 46,157, 49, 81,196,255,242, 35,169,202, 76,171,116, - 91,133, 66,177,245,157,119,222, 25,190,115,231, 31,209,232,246, 1, 1,232,255,118, 32, 28,237,173, 33, 55,151, 20, 85, 71, 28, -129,251,143,158, 27,101, 8, 60, 60, 60,130,143, 30, 61,106, 81,214, 76,136,197,226,210,165,172,201, 42, 89, 74, 42,224,170,144, -201,100, 8, 13, 13, 5, 77,211,160, 40, 10, 52, 77,151, 46,101,159, 83, 20, 5, 39, 39,147,186, 46, 45,179,182,182,110,154,159, -159,111,149,147,147, 3, 79, 79,207, 60, 0, 15,202,188,223, 52, 61, 61,221,202, 20, 65,142, 41,196,180,177,254, 16,233,110, 64, - 39,106, 3, 53,221, 17,215,110, 69, 33,228,204, 69, 36, 37,167, 32,176, 93,115,124, 56,108, 32,206,157, 59, 7,150, 53,185,165, - 35,149,231,177,162, 79,159,160,153, 0, 65,116,239,222, 61,103,242,228,201,100,116,116,244, 7,253,251,247, 11,120,252,248, 73, -113, 84,145,152,193,243, 88, 7, 32,213, 72, 93, 9, 0, 92,186,116, 9, 0,164, 53,249,237, 73,165, 82, 92,191,126, 29, 37,205, -196, 36, 73,130, 36, 73, 80, 20,133, 83, 79, 28, 80,168, 35,161, 74,141,192, 39, 65,158,168, 91,183, 46, 72,178,250, 46,137, 93, - 0,217, 53,160, 63, 33, 18, 77,115,113,117,245,238,236,227, 35, 15, 13, 13,165, 0,192,203,203,139, 87, 42,149, 57, 39, 78,156, -200,167,129,205, 94, 60,191,171, 42,147,229,225,225,209, 49, 41, 41,233,155,146,115, 78, 16,196,138, 58,117,234,124, 89, 90,110, - 28,135,133, 63, 20,138,166, 76,153, 42,110,219,101, 30, 0,160,109,159,253,200,123,186,212,159,200,154, 99,253, 87, 95, 37,242, -242,242, 14,214,175, 95,159,202,204,204,188, 6,224,133,193, 96,152,181,103,207, 30,199,177, 99,199,166,237,221,187,119, 25, 0, -215,229,203,151,119, 41, 44, 44, 60,100,138,110, 96, 83,188,215,178,105, 64, 59, 79, 15, 15, 92,188,118, 19, 98,137,200,102,210, -168, 32, 88, 88,208, 88,181,227, 52,247, 34, 49,107,242,149, 7,216,101,130,201,106, 51,112,224, 64,239,253,251,247, 75, 0,224, -193,131, 7, 72, 73, 73,129, 66,161,128,153,153, 25, 68, 34, 17, 40,138,130, 72, 36,122, 45, 38,203,218,195, 62,236,248,241, 19, -102,118,118, 54,216,240,217, 20,124,152,150, 10, 27, 75, 11, 24, 10, 10,189,223,176,138,194,175, 83,167, 78, 50,150,101, 81, 88, - 88,136, 11, 23, 46, 88,155,153,153, 89,187,187,187, 47,128, 9,163,167,100, 50, 89,170, 70,163,113, 44,126,156,166,209,104,156, - 0,228, 73,165,210,146,235,116, 65,241,218,216,230,196, 23,120,181,153, 48,158, 32,136,178,175,213,148,214,109, 90, 55, 13, 61, -118,100,159, 69,110,126, 10,108,108,211, 64, 34, 23,219,182,109,132,153,153, 21, 22, 44,152, 67, 63,239,254,182, 91,175,247,222, - 15,125, 24, 21,211,253,141, 51, 91, 60,177,173,123,159,225,118,102,114,203,226,186,196,128,157,219,167,128, 36, 73,124,249,229, -151,104,220,184,241,248,135, 15, 31,206, 3,144, 85,181, 12,182, 53,121,107,176,157, 68, 86, 84,196, 28,107,192,150, 3,159, 23, -233,204,158,128,161,125,234,142,255, 98,224,179, 95, 27,251, 32,191,248,198, 92, 45, 34, 17, 79,180, 69,169, 97, 8, 9, 9,233, - 28, 20, 20,116,177,178,231,255, 2, 92,240, 71,254,172,114,230,139, 14, 9, 9,225,131,130,130,136, 50, 7, 87,238,121, 85, 52, - 3, 28,108,173,229,161,155, 23, 78,177,160,111,156,166,212,241, 79,144,172, 41, 87,145,151, 27,162, 41,151,203,135,239,220,185, -179, 92, 72,201,211,201, 17, 98,177, 8, 34, 49, 1,155, 78, 69,217,235,115, 46,135,128, 32, 42, 53, 89,229, 52, 11, 11, 11, 53, -247,238,221,179,216,177, 99, 7, 28, 29, 29,225,237,237, 13,185, 92, 14,153, 76, 86,206, 92,149, 53, 92, 21, 24,173,114,154, 37, -239,211, 52, 13,146, 36,113,238,220, 57, 48, 12,131,129, 3, 7,190, 98,178,104,154,174,204,184, 85, 54, 60,245, 12,128, 7, 60, -207,191, 85, 92, 1, 63, 0,208,185,204,251,189, 20, 10,197, 44, 0,203,140,213,164, 40, 30,148,230, 26, 56,247,181,160, 19,166, - 64, 39,106,134,243, 87,238, 96,231,214, 53, 0, 0,239,134,173, 49,168,127, 80,105, 52,206,200,253, 44,197,205,205,237, 64,122, -122,198,187,111,191,253, 54,178,179,179, 13, 11, 23, 46, 68,211,166, 77,225,231,231,103, 84, 25, 85,114,231,156,250,224,193, 3, - 15,181, 90, 13,158,231,141, 49,103,175,104, 18, 4,129, 61,123,246, 64,163,209,188,178,177,109,231, 37,248,124,128, 23, 70,127, -178, 11, 43, 30, 29,194,166, 77,155,170, 60,118, 57,208, 84, 99, 93,127,157,132, 98,154, 46,155,243,177,244,195, 15, 63,164, 70, -143, 30,141,248,248,120,140, 29, 59, 86,115,238,220, 57, 93,138, 82,121, 66,194,113, 27,244,229,141,113,165,154, 82,169,116,247, -153, 51,103,112,232, 80,145, 47,137,137,137,129,175,175,175,121, 57,147,156,117, 24,249, 47, 54, 32,236, 84, 52,218,246,217,143, -176, 83,195,192,230,156, 22,181,242, 69,174, 41,231,179, 6, 84,164,121, 40, 51, 51,179,212, 68,237,221,187,215,108,239,222,189, -253, 0,156, 4,112, 8, 0,178,178,178,190, 53, 81, 19, 32, 48,122,240,128,126,160,197,150,136,126,146,136,206,237, 91,192,201, -209, 17, 15,162, 98,241, 34, 41, 43,149, 32, 48,170, 87, 7,201, 50,181, 90, 55,239,242,125,124, 95,141, 38,225,238,238,238,119, -248,240, 97,113,153, 8,116,233,127,156,162,168,210,231, 37,198,187, 38,191,207, 18,147,101,233,110, 17,246,213,198,142,230, 97, -225,123,225,235,245, 30,108,223, 11,194,247,103,207,226,241,195, 72,141, 78,197,116,251, 27,202,232,207,210,244, 27, 48, 96,192, -181,125,251,246,217, 36, 36, 36,224,210,165, 75,240,246,246,134, 74,165, 50,230,134,183,156,166, 70,163,113, 44,249, 12, 65, 16, -142, 37,129,119,157, 78, 87, 82, 24, 37,127, 68,155, 50,219,217, 84,161,233, 89,102,187, 18,115,229,245, 26,142, 93, 34, 19,139, - 15, 31, 63,118,192, 34, 50,250, 18,154, 55,107, 7, 11,235, 70,224,216, 20,100,102, 21, 32,251, 73, 50,190,254,122, 5, 22, 44, -156,139,147, 63, 29,177,104,224,223,236,168,142, 97,234, 3,208,188, 49,229, 78,240,227, 67, 79,237,221, 76,240, 28,212,169,209, - 82, 81,225, 51,249,240, 97,239, 83, 67,134, 12,193,201,147, 39,241,240,225,195,205, 85,152,172,208, 50,145,249,241, 17,151, 14, -109, 6,207, 67,157, 22, 45, 21,171,159,201, 71,126, 48,136,250,112,104, 79,220,248,125, 29,122, 54,127, 22,225,234,136,254,217, -197, 22,155,166,144, 41,149,225, 42, 31,134, 27,101,204,214, 5, 0, 68, 25,131,117, 1,127,244,193,252, 55,208,187,216, 88,141, -127,249,198,132,174,137,193, 2, 0, 95,192,130,144,136,195,118, 46,248,216, 85, 30,255,144,214, 70, 92, 71,178,150,227,183,196, - 49, 92, 11,192,236, 46,160,126,249, 51, 42,149,170, 48, 54, 54,214,108, 84,255,254,232, 16, 16, 0, 23,123,123,212,119,119,135, -153, 84, 2,137, 88, 84,238,150,213,232, 54, 4,130,224, 27, 52,104,128, 62,125,250, 64, 36, 18, 65, 46,151,195,194,194, 2, 18, -137,164,194,104,150,177,119,185, 60,207,131,162, 40, 68, 68, 68,224,197,139, 23,176,177,177,193,213,171, 87,209,173, 91,183, 87, -162, 90,101,205,153, 41, 33,250, 10, 42,254, 18, 35,118,198, 20, 45,150, 37, 80,192, 55,131, 44,110, 50, 84, 68, 11,104,181, 12, -180, 90, 45,190,191,162,199,205,216, 66,232,245, 58,104,181,218,170,190,179, 50, 72, 87, 87,215,225,245,235,215,159, 52,108,216, - 48,131, 68, 34, 65, 97, 97, 33, 84, 42, 21, 30, 62,124,104,120,247,221,247,114,250,244, 9,178, 62,125,250, 52, 95,220,116,152, -106,130,118,166,155,155,155, 71,113,243,108,102, 77,126,213, 4, 65,148,154,152,151, 25,245,109, 36,104,170,168, 76, 54,111,222, - 12,150,101,193,243,124,165,133,164, 33,136,223, 22, 46, 89,109,189,124,237, 15,176,182,115,194,197,139, 23,217, 95,127,253, 53, -159, 0, 98, 30, 63,124,248,237,255,128,159, 15, 3,122, 83,246, 47, 59, 59,219,204,219,219, 27,238,238,238,224, 56, 14, 6,131, -161, 52,250,146,153,153, 9,181, 90, 13, 59,243, 28,212,179,119, 7,147,127, 1,202,136, 69,112,177,136,198,174, 51, 58, 67, 75, - 63,220,255, 7, 92, 56,126, 44, 94,106,121,215, 12, 55, 71,103, 15,144,188, 1,201,105,153,232,215,187, 39, 40,177, 5,158, 39, -100,160, 89, 35, 31,151, 15,254,215,209,133, 34, 24,204, 88,182,127, 18,192,125, 95,157, 92, 65, 65, 1, 27, 29, 29,141, 7, 15, -138,252,174,149,149, 21,204,205,205,203,253,199, 73,146,172, 85, 68,171,196,100, 45,217,220,205,156, 20, 21, 34,143, 13,197,142, - 61,119,208,172, 65, 16,182,132,221,210,176,169, 89,221, 87,105, 52, 49, 7,254,197,193, 12,103,103,231, 9, 28,199, 45,224,121, - 62, 39, 48, 48,208,105,255,254,253,182, 73, 73, 73,184,115,231, 14,190,252,242,203,116,150,101, 25,158,231, 9,158,231, 23,189, -134,175,227,202, 24,172,215,137, 72, 46,195, 39, 14, 86, 68, 95,154,180,242,102,242, 10,158,103,232,248, 19, 42,134,251, 14,128, -161,202,139, 27, 73,126,116,228,224,102, 87, 7, 5,135, 46,138,183,161, 76,213, 99,201,103, 35,145,153,153,143,239,183, 47, 5, - 32,129,158,161,240, 86,151,247,225,232,232,134,241,227,198, 59,111,222,186,229, 99,134,227, 86,225, 13, 33,229,218,166,159, 0, -132, 42, 20,138,135, 31,143, 31,175,240,246, 30, 1,153, 76,134, 3, 7, 14, 96,255,134, 13,236, 90, 96,144, 20, 56, 31, 12,252, - 84,165, 78,216, 31, 58, 83,130,131, 21,254,254,193,144, 74,165,248,253,215, 31,161, 73,217,147,223,187, 3,244, 42, 13,122,215, -233,195,219,197,157, 34,178, 68, 34, 60, 1, 0,145, 12, 74, 0, 47, 55,131,253,219, 12, 86, 9,167,241, 71,191,172,241,229, 34, - 90, 53,190,118,138, 36,225,219,167, 14,245,114,130,150,208, 93, 57,133, 36, 45,199, 46,127,172,167,238,230,242,159, 71, 85, 96, -178,138,127,216,156,167,167, 39,222,110,213, 10,253, 59,117, 2, 77,211,144, 73,196,176,148,153,129,103,139, 34, 89, 37, 77,135, - 85,212,137,168, 40,250,100,111,111, 15,177, 88, 92,106,176, 76,136,102, 85,168,201,113, 28,104,154,198,131, 7, 15, 16, 24, 24, - 8, 15, 15, 15, 28, 58,116, 8,189,122,245,122,165, 41,209, 84,147, 85, 98,180, 94,106,198,235, 5,160, 36,146,101,146,209,210, -232, 8,100,232,154,129, 32, 2,192, 48, 0,203, 3, 90,141, 6, 60, 15,240, 60, 96,208,235,160,209,104, 74,191,211,152, 38, 89, -103,103,103, 79, 51, 51,179,197, 51,103,206,240,111,214,172, 57,210,211,211,193,113, 28,204,205,205,161, 82,169, 96,101,101,133, - 14, 29, 58, 60, 95,188,120,177,146,231, 49,222, 68,147, 85,107, 74,206,249,217,179,103,203, 53, 27,150, 44,133,202, 68,140,254, -116, 47, 36,116, 81,211, 82, 73, 31,158,170,174,187, 93,223,234,136,107,119, 99,152,143,102,172,211,138, 50,239, 44,115,230,184, -157,137,181, 56, 46,158,231,145,145,145,129,212,212, 84,244,237,215, 15,251,247,237, 67, 92, 92, 28, 26, 53,106,132,174, 93,187, -194,209,209, 17,113,113,113,184,121, 89, 11,109,118, 22,178,116,119, 32,183,108,139,227, 23, 99,181, 95,110,214,199,254,141, 23, -140,190, 0, 70, 90, 89, 89,213, 85,169, 84, 74,134, 97, 14, 3, 56, 12, 96, 16, 77,211,131,228,114,185, 75, 94, 94,222, 51, 20, -141, 38, 58, 81,157,152,153, 76,102, 47,149, 89,129, 99,180,160,105, 26, 30, 30,222,224, 89, 29,178,243,212, 24, 53,164, 15,238, - 62,136,194,175,231,111, 48, 6, 3,183,222,152,211, 74, 81, 20,239,231,231,135,180,180, 52,136, 68, 34,152,153,153,193,194,194, - 2,179,103,207,198,134, 13, 27, 74, 77, 86, 77,141,214, 24,192,207,202,211,226,198, 55, 27,139, 76, 86, 74,178, 18,169,137, 34, - 40,236,157,176,126,195,218,194,236,184,148,182, 63, 0, 49,255,246, 74,150,227,184, 69, 73, 73, 73,142, 52, 77, 59, 51, 12,131, -132,132, 4,220,190,125, 27,147, 39, 79, 78,205,204,204,236,130, 26, 30,163, 76, 38, 75, 43,137,100, 21, 55, 29, 86,214,156,152, - 83, 38,146,149, 83,133,100,101,205,132, 62,222,238,150,231,182,175,153,230,217,186,109, 7, 82, 78, 91,101, 23, 60, 73, 9,188, -114,233, 98,135,201,107,190,255,248, 69,118, 65, 79, 0, 79, 43, 19,149,138, 68,239,182,235,216,145, 6,159, 10, 90, 18,136, 21, -203,135, 32, 61, 35, 15,217, 89,249, 16,139,205,161, 51, 80, 96, 57, 2, 29, 2, 59,225,199, 93, 7,209,120,220, 88, 74, 34, 18, -245, 96,116,186, 55,198,104, 21,179,244,187,239,190,243,108,208,160, 1,118,238,220,137,243,187,119,227,195,220, 92, 92, 36, 73, -202, 32, 18, 57,252,108, 48,108, 67, 53, 70,171,172, 78,227,198,141,241,195, 15, 63, 96,207,158, 61,241,195,187,165, 29,157, 54, - 28,142,122, 61,222,185,243, 8,118,117,250, 0,119, 30,193,174,101, 3,212,103,104, 60, 33,136,242,233,160, 66, 66, 66, 58,151, - 93,255,203, 80,162,146, 38,118, 26, 64,151,144,144, 16,190,236,186,218, 11,232, 44, 71,207, 0, 0, 32, 0, 73, 68, 65, 84,167, -194, 55,120,105,207,186, 94, 1,245, 60, 9,195,161,117, 72, 40,100,116,243, 30,233, 37,143, 11,248,105, 81,192,218, 42,238, 32, -120,138,162, 96,105,102, 6,133,141, 77, 81,152,159, 36, 1, 14,224, 12, 0,193, 22, 25, 0,158, 35,192,179, 38, 93, 48, 32,145, - 72, 42,236,248,110,106,223,172,178,154,249,249,249,120,254,252, 57,198,143, 31, 15,185, 92, 94,228,220, 83, 82,224,229,229, 5, -154,166,145,148,148,132,223,127,255, 29,117,235,214,133, 84, 42, 53,201,109,149,137, 46, 53, 69,209, 40,195,166, 74,165,210,202, -197,197, 5, 38, 71,180, 56, 30, 42, 45, 1,157,142,197,227,199,143,145,156,156,140,231,207,158,160,117, 97, 30,120, 80,224,121, -222,164,136,150,155,155, 91,128,143,143,207,150,101,203,150,137,221,221,221,193,243, 60,108,109,109,160, 82,169,144,145,145,137, - 70,141, 26,193,195,195, 3,203,150, 45, 3,128,253,127,181,201,122,233, 55, 85,106,180,202, 26,174, 79,255,231,137,172, 44, 11, - 80, 20, 89,106,156,171,233,163, 37, 6,128, 46, 61, 7,208,231,126,253,217,156, 1, 22,167, 80,212, 98,186,250,114, 52,176, 28, - 39,175,236,253,132,132, 4,136, 68, 34, 28, 57,124, 24, 89,169,169,104,214,172, 25,218,180,105,131, 39, 79,158,224,238,221,187, -176,183,183,135,194,189, 61, 46, 62,211, 35, 50, 89, 13,107,107,107,196, 38,146,127,103,202,128,113,221,187,119,255,242,219,111, -191,117,116,118,118, 22,165,167,167, 55,216,184,113, 99,179,141, 27, 55, 78,249,248,227,143,157, 62,254,248, 99, 91,133, 66, 65, -167,164,164,248,125,246,217,103, 45, 67, 67, 67,235, 2, 88, 93,149,160,185,185,165, 29, 37, 54, 7, 65,208,176,177,182, 5, 45, - 49, 7,199,208, 96, 57,192,202, 90,129,107,119,143,224,106,120,254,132,180, 76, 28, 54, 42, 62, 86, 92,238,246,246,246,175, 68, -170, 39, 79,158,140,237,219,183,151, 54, 35,214,212,100, 45,217,216,205,130, 40, 54, 89, 41, 9, 52, 8,109, 93,156,250,233,122, - 78,118, 92, 74,224,155, 96,178, 74,174,113, 60,207,227,217,179,103, 80,169, 84,184,124,249, 50, 22, 45, 90,148,254,178,201,114, -116,116, 28,103,101,101,181,176,160,160, 96, 69, 74, 74,202,186,106,111,252,138, 76, 84,201,227,146,117,133,205,137, 70,238,170, - 87, 69,145, 44, 15, 23,217,153,187,151,247,122, 89,243,247, 9,188, 24, 15, 60,206,123,104, 25,230,248,214,123,173,123,147, 45, - 54,125, 85,167,205,132,217,103, 18,242, 52, 13, 42,139,108,113, 44,219,194,220,194, 18, 64, 26,238,220,190, 80,106,178, 50,179, -114,161,213, 83,208,234, 8,104,244, 36,222,238,254, 14, 54,108,217,131,164,180, 44,176, 44,219,228, 13, 51, 89,118, 1, 1, 1, -193,131, 6, 13,194,226,197,139, 17,250,237,183,186,137, 4,145, 71, 3,252,105,150, 5,199,243, 4,105, 92, 39,246,114, 58,171, - 86,173,250, 9,192,208,101,147,209, 62,187, 0,163, 92,251,240,118,117,250, 20,109, 56,112, 38, 15, 0,118,233,161,229,171,204, -160,160, 32,162,164,101,205,212, 22,182,127, 58,116, 80, 80,208,197,144,144, 16,148, 93, 87,245, 1, 75,167, 6,239,125, 49,125, -210,242,214,189, 58, 17,202,233, 61,144,149,167, 97,230, 68,234, 37,137,234,170, 77, 86, 89,190,216,184, 17,119, 99,138,254,199, -238,142,142,152,241,193, 7,224, 25,224,234,195, 72, 28, 12, 13,197,144,238,221, 97, 46,147, 25, 29,217,224, 56,174,194, 40, 86, -217,104,150,169, 81,167,156,156, 28, 28, 62,124, 24,109,218,180,129, 92, 46, 7, 77,211,104,218,180, 41,162,162,162,224,227,227, - 3,130, 32,112,252,248,113,244,239,223, 31, 79,159, 62, 69,251,246,237, 45, 94,188,120, 97,178,209,138,140,140,180,226,121,254, -173,146,232, 71, 77,209,106,181,136,142,142, 70,159, 62,125, 96,107,107, 11, 55,183,253, 8, 61,179, 23,242,128, 15, 65, 16, 48, -201,104,177, 44, 59,166,119,239,222, 98,130, 32,160, 86,171, 32,147,153,193,220,220, 2,150,150, 86,240,243,107,128,228,228,100, -244,234,213, 75, 23, 27, 27,187, 73,169, 84, 30, 50,117, 95,253,253,253,205,227,226,226, 62,172, 83,167,142, 4, 0,204,204,204, - 26,249,248,248,124,254,244,233,211,124, 83,163, 90, 37, 6,139, 32, 8, 80, 20, 85,106,180,104,146,132,139,179, 99,233,243,226, -254,105, 68, 21, 90,121, 73,153, 90, 41, 0,120,122,122, 98,195,214,147,100,239,222,189, 49,101,202, 20, 24, 12, 6,108,218, 84, - 52,200,110,216,176, 97,208,235,245, 56,122,180,104,144, 36, 77,211, 85,134, 77,110,223,190,141, 59,119,238,192, 96, 48, 32, 55, - 55, 23,191,252,242, 11, 46, 94,186,132, 3,199,127, 67,220,179, 39,104,218,192, 11, 99,199,142,129, 72, 36,194,174, 93,187, 16, - 24, 24,248,183, 94, 16, 68, 34,209,240,237,219,183,187,236,220,185, 51,231,248,241,227,133,237,218,181,147,174, 93,187,214,113, -195,134, 13, 10,157, 78,135,169, 83,167,166,221,184,113, 67,219,175, 95, 63,243,109,219,182,185,212,171, 87,175, 7,195, 48, 21, - 25, 45,115, 0, 67, 0,140,200,206,215,209, 57,249,106,112,140, 14,207,226,158, 35,183, 64, 7,142,213, 35, 62, 49, 25, 5, 26, - 22,153, 89,249,104,218,162,231,119, 23, 46, 92,152,171,215,235,231, 0, 8,169,110, 63, 31, 62,124,136, 27, 55,110, 32, 46, 46, - 14,207,158, 61, 43,239, 20,199,141,195,158, 61,123, 76,142,104, 85,108,178, 40, 16, 90, 31,132, 28, 15,203, 73,123,162,124, 99, - 76, 86,241, 53,104,129,139,139,203, 2, 23, 23, 23,217,217,179,103,173,235,212,169, 3,134, 97,116, 47, 71,178,186,116,233, 50, -111,251,246,237, 46, 62, 62, 62,147, 1,172,251, 39,236, 59, 73, 98,220,138,205,193, 14,150,146,248,100, 60, 94, 93,156, 75,144, - 2, 84,121,192,133,125,160, 59,206,127, 62,185,223, 76,219, 89, 59, 23,143,227,192, 85, 58, 66, 54,246,105, 2, 54,111,222,128, -105, 83, 71,225,199,239, 87,128,227,104,104, 13, 20, 60,189,219, 65,171,231, 64,144, 52,154,181,104,133,243, 23, 46, 67, 68, 2, -135,119,110,126,195,124, 22,178, 34, 34, 34, 54, 29, 63,126,252,147, 41, 83,166,128,227, 56,201,194,205,155,213,233,233,233, 75, - 97, 90,254,171,151,117,250,111,222,188, 57,102,214,134,244,159,166, 13, 7, 21,119,138,200,186,243, 8,118, 3,103,242, 56,178, -156, 64,203, 6,200,146, 87, 92,197, 95,122,105,253,102, 24,173, 18, 39, 89,118, 93, 17, 45,124,235,126,101,109,103, 59,134,180, -116,115,152, 49,101, 34,253, 52, 69,131,163,117, 62, 40,248,125,247,122,243, 20, 70,250, 93, 44, 52,107, 77,249,226,131,191,255, - 94,250,120,229,254,253, 21,190,167, 28, 56,208,232, 59,179,202,162, 88,166, 70,178, 0, 64, 46,151,219,244,232,209, 3,221,186, -117,195,251,239,191, 95,218, 39,171,121,243,230, 56,112,224, 0, 6, 12, 24,128,123,247,238,193,197,197, 5, 13, 27, 54, 68,195, -134, 13,241,243,207, 63,155,122,145, 3,203,178, 8, 8, 8, 40, 25,117,216, 52, 49, 49,209,170,166, 5,169,213,106,145,153,153, - 9, 59, 59, 59, 72, 36, 18,180,109,219, 6,159,124,218, 22, 14, 46, 63, 32,192,191, 1, 10, 11, 11, 75,135,191, 27, 81,217, 6, -212,175, 95, 31,233,233,233, 72, 79, 79,135, 66,161,128,171,171, 43,156,157,157,177,122,245,106,126,221,186,117,191,234,245,250, - 77, 25, 25, 25, 38, 71,178,156,157,157, 59, 17, 4, 49, 79,173, 86, 75,202,220,225, 74, 20, 10,197, 9,181, 90,189, 84,169, 84, - 26,221, 17,148, 32, 8,232,245,122, 16, 4,129,211,207, 92, 81,168, 35,144,151,120, 7, 83,254,231, 85,206,120,137, 68,162,106, -155, 75,121,158, 47, 28, 58,116,168,163,135,135, 59, 18, 98, 31,226,200, 17, 30,223,126,251,109,201,168, 72,196, 20,223, 24,148, - 60,239,218,181, 43,188,189,189,193,155,144, 43,131,227, 56, 60,120,240, 0,251, 79, 92,132,139,151, 63,226, 31, 71,227,238,207, -167, 80, 71, 97,135,198, 45, 90,193, 96, 48,212, 42,245,198,235,192, 96, 48,236,240,245,245,229,117, 58,221, 69, 0, 27,194,195, -195, 71, 41,149,202,169, 39, 79,158,116, 29, 52,104, 80,242,169, 83,167,214, 2,216, 25, 30, 30, 30,252,245,215, 95,119, 99, 24, -166,194,209,130, 20, 69,253,248,217,103,159,117, 25, 52,104, 16, 33, 38, 13,186,179,103,118,209, 12, 99, 32,190,152,179,131,189, -112,229, 34,201, 48, 6,226,253,161,159,113, 63,255, 30, 78, 78,248,116, 37,219,188, 93,111, 68, 68, 68, 56, 7, 5, 5,125,109, - 48, 24,170, 52, 90, 37,145,170,202, 34,148, 20, 69, 97,212,168, 81, 56,112,192,248, 30, 84, 99, 1, 31, 43, 47,139, 27, 75, 54, -118,183, 32,232,130, 50, 38,171, 30, 66,142,135,229,164, 62, 78,126,163, 76, 22, 0,100,102,102,110, 5,176,149,227,184, 84,115, -115,115,228,231,231, 87,244,251,147,133,135,135,203, 36, 18, 9,122,246,236,105, 23, 26, 26, 26, 67,146,228,186,228,228,228, 74, - 29, 71, 69,205,132, 21, 53, 39,162, 22,163, 14,109, 21, 8,106,219,169,133,229, 35,235,197,150, 50, 90,115,175, 78,140,204,138, - 0,144,171,117,122,118,237,197,144, 60, 34, 77,218,188, 85,215,150,176,162,205,131,114,152,252, 10,141, 22, 73, 81,119,115,179, -115,222,205,203,215,225,202,213, 8, 12, 29, 82, 31, 90, 61, 1,142, 35, 81, 80,168, 5, 40, 17, 72, 0,195, 62, 24, 9,158,160, -145,149,154, 12,138,162,194,193, 48,120,195,152, 29, 28, 28,252,238,156, 57,115,234,206,152, 49, 3, 51,102,204,240,218,190,125, -251,214, 37, 75,150,204, 72, 79, 79,111,130,106,146,143, 87,161, 83,231,212,129,249,211, 79, 92,222,146,219,187,131,250,113,203, - 6, 69,145,175,150, 13,144, 37, 18,225, 9, 77, 33,147,231,203,119, 51, 10, 10, 10,234, 92,118,253, 47,227,229, 78,240,165,207, -141,234,163, 85,191,174,219, 59, 45,154, 7,124, 58,119,206, 92,203,168,107, 23, 48,235,171, 13,188,111,171, 30,249, 91, 47,223, -213, 21,152,123,191, 91,144,241,228,170,177,254, 2, 0,222,121,123, 0,154, 54,106,243,202,155,129, 93,139,146,181, 95, 57,127, - 27,169,233, 73, 70, 87,182,197,230,160,194, 62, 89,198, 12,233,127, 25,181, 90,157, 19, 17, 17,225,152,152,152, 88,174,227,187, -183,183, 55, 8,130, 64, 88, 88, 24,110,220,184,129,161, 67,135,130,166,105,136, 68, 34, 92,188,120,209,164,104, 76,153,232, 82, -201,168,195, 94,238,238,238,149,141, 54,172, 86, 75,173, 86, 35, 55, 55, 23,103,206,156, 65,253,250,245,177,100,201, 18,184,186, - 56, 97,238,220,233,224, 56, 14,121,121,121, 96, 89,214,216,136, 22, 87, 18, 45,226, 56, 14,233,233,233,168, 91,183, 46, 54,110, -220,136,181,107,215,126,173, 84, 42, 79,154,186,143, 30, 30, 30, 54, 44,203,126,209,187,119,239, 30,253,250,245, 67,175, 94,229, -243,177,238,219,183,207,242,232,209,163, 75,215,175, 95,255,142, 94,175, 95,150,150,150,150,110,140,238, 15, 63, 20,165, 95,146, -183, 91,128, 89,131,234, 96,196,164, 93, 88,189,250, 24,164, 82,105,185,138,119,241,226,197, 85,154, 24,142,231,125,197, 25,215, -146,167,207, 92,229,184,116,105, 40, 66, 67,211, 64,146, 36, 92, 92, 92, 64,146, 36,158, 63,127, 14,146, 36,225,229,229, 5,146, - 36,145,148,148, 84,210, 39, 48, 27, 21,140,122,172,248, 46,156,132, 70,163, 65, 66,124, 28, 18, 99, 99, 96,145,151, 2,133,149, - 28,217, 15, 31,160,233,216,113,165,249,159,254,102,246,232,116,186, 61,101,158,175, 58,117,234,148,142, 32,136,247, 81,212, 79, -163, 36,162,241, 53,195, 48, 95, 87, 38,210,174, 93,187,230,115,230,204, 17,149,164,219,112,245,252,134,209,235,245, 28, 0, 52, -104,250, 86, 57,183,255,228,201, 19,172, 94,189, 26,133,133,133, 16,139,197, 98, 99,206, 3,199,113,165, 35, 12, 43, 50, 97,166, -152, 44, 0,176,247,114,255, 46,236,206, 69,246,126,236, 22,117,248,163, 95,204,148,241, 36, 72,221,155,107,178, 94,142,108,185, -187,187, 47,224, 56,142,231,121,126,126,153,183,164,158,158,158,151,207,158, 61,107,207, 48, 12,214,175, 95,111,147,146,146, 98, -243,214, 91,111,205, 2, 80,169,209,170,168,153,176,162,230, 68,148, 25,117, 40,149, 74,237,116,186, 74,131, 39,175,140, 58,100, - 89,248, 89, 89,218, 32, 27,137,208, 58, 24,154,231,216, 51, 89,231,148,227,238,185,190,104,209,200,156, 53,212, 37,243,116,112, -147,219,128,227,249, 74,135, 70,107, 13,134, 95,238,221,185,219,211,211,163, 62,117, 50,228, 18,250,246, 31, 4,173,150,132,198, - 64,128,160, 68, 32, 40, 49,154, 52,109,129,134,141,155,130, 7,112,251,230, 53, 70,103, 48,156,123,147,202,222,165,227, 39, 67, - 9, 2,235,192,115,124, 5,121,180,234,246,239,223,127, 41,128, 79,171,211,113,108,247,201, 80,146, 44,210, 41,155, 71,235,179, - 79,130,241,240,166,200,250,210,157,229,226, 94,237,112, 58, 61,148,128, 92,246,199,168, 67, 17, 89,171,212, 28,255, 22,195, 85, -189,209,242,240,240,176,177,146,202,126,248,120,236, 24,203, 23,247,175, 35, 37, 50, 12, 87, 47,197,100, 31, 60,122, 44,171, 48, - 51,109,172, 9, 38,171,180,153,207,222,185, 14,188,253, 95, 53, 90, 50, 11, 5, 0,192,219,191, 13, 40,115,211,210, 8, 85, 20, -205,170,137,201, 42,123,193,174, 40,135,214,132, 9, 19,176,125,251,118,116,236,216, 17,190,190,190,165, 23,123, 83,163,102, 21, - 68,151, 76, 30,109, 88,150,252,252,124,120,121,121, 97,219,182,109, 8, 15, 15,135,165,165, 37,134, 14, 29,138,252,252,252, 82, -131,101,108,103,120,158,231,159,156, 61,123,182,245,224,193,131,121,145, 72, 68,228,228,228,192,198,198, 6, 27, 55,110, 44, 84, - 42,149,167,107, 96,178, 6,137,197,226,233, 67,134, 12,161, 26, 52,104,128,212,212, 84, 88, 89, 89, 25, 8,130, 16, 1,128,141, -141,141,193,204,204, 12,193,193,193,104,214,172, 89,167, 25, 51,102,116,164,105,122, 99,114,114,242,174,170,126, 75, 4, 65,148, - 86,168, 99,215, 69, 67,167, 43,170,160, 55,109,218,132,226,190,110,127, 52, 17,196,198, 2, 70,140,100,177,176,176,128,175,175, -111,133,101,223,169, 83, 39,220,190,125,187,168,105,146,166,225,232,232,136,171, 87,175, 26, 53,146,170, 36, 17,100, 68, 68, 4, -252,189, 29, 16, 30,122, 22, 14,114, 17,154,185, 58,195,189, 83,103,196,196,196,252,157,209, 44, 2, 69,253, 48,186, 23,255, 6, -119, 0,152, 80,230,249, 70, 0,223,153, 34,200, 48, 12, 79,146, 36,145,144,144,160,151,203,229,132,157,157, 29, 45,149, 74,161, -213,106, 75, 13,215,147, 39, 79, 16, 18, 18,130,196,196, 68,216,217,217,145,214,214,214,208,235,245,217,198,232,251,249,249,193, -217,217,185, 92,199,247,177, 99,199,214,200,100,141, 2, 2,182,127,179,172,142,148,164,172,253, 29,222,193,179,232,231, 26, 82, - 7,217,127,193,100, 1, 64, 78, 78,206, 86, 0, 91, 75,158, 59, 56, 56,140,166, 40,106,174, 86,171,181,190,120,241,162,141, 66, -161, 32,118,237,218,101,152, 63,127,126, 14, 69, 81,217, 4, 65,172,249,251,205, 33, 34, 51,114, 99,189, 68,182,174,220,125, 13, -127,109,106,194,172,134,217,162,250, 10,162,113, 0,250,167, 69, 93, 25,205,196,118, 72, 85,166,144, 60,184,200, 42,174,193, 59, -102,205, 89,252, 69, 76,244, 93, 79,153,149, 12, 19,130,231,224,244,175,231, 65,144, 34, 92,190, 22, 6,157,158, 69, 70, 86, 46, -134, 12, 27, 14,119, 23, 7, 68,222, 56,147,206,112,220,198, 55,203,100,115, 27,122,246, 29,109, 43, 53,147, 23,159, 19, 22,123, -190,159, 14,146, 92,135, 47,191,252, 18, 1, 1, 1,147, 34, 34, 34, 22,161,154, 60, 90, 4,193,109,104,210,121,152,173, 88, 90, -164,195,115, 44,182, 29,158, 85,156, 71,107, 26, 54,110, 61,218,164,177,247,179,133, 85,229,209,122,131, 76, 86,217,117,213, 70, -203,203,203, 75,106, 46,194,120, 17, 69,207,248,248,131,126,138,180,216,135, 72,140,186, 91,212,188,160, 87,235, 83, 30, 71, 25, -147, 10,189, 59,202,231,239,224,171,106,186,210,104,140,186,163, 47,167, 89, 82,225,190, 28,205, 50,209,100,189,162, 89,214,108, -149,205,155,229,225,225,129,165, 75,151, 26,147, 71,235,229, 99, 47,161, 23,138, 58,192,151,237, 12,223,203, 72,147, 85,161,166, - 66,161, 64,102,102, 81,134,132, 46, 93,186,160, 75,151, 63,198, 51,232,245,250,210, 40,150,165,165,101, 69, 17,173, 87, 52,205, -204,204,102, 29, 59,118,108,204,181,107,215, 6,127,254,249,231,162,110,221,186,149,152, 57, 21,140,155,219,173,156, 38,203,178, -193,103,206,156,161, 56,142,195,182,109,219,112,251,246,109, 94, 46,151,207,147,203,229, 27,204,204,204, 88,181, 90, 61, 97,220, -184,113,195, 23, 46, 92, 72,118,234,212, 9,215,175, 95, 39,235,214,173, 59, 18, 40,151,196,178,194, 99, 15, 11, 11, 3, 73,146, - 96,178,226, 49,105,214, 65,152,155,209,136,142,142, 70, 86, 86,214, 43, 73, 76,141, 57,159,101, 35, 37, 37, 75,167, 78,157, 74, -155, 33,219,182,109, 11,138,162,112,239,222,189,202,154, 97,203,106,242,246,246,246,165,191, 15,177, 88,140,243,231,207,227,171, -175,190,130,167,157, 13,178,163,194,225,220,229,109,244, 24, 51, 14, 67,135, 14, 5, 69, 81,176,179,179, 43,141,252, 26,241, 91, -170, 13,101, 53,199,248,251,251,143,140,140,140,116,111,210,164,137, 75, 68, 68, 68,215,128,128, 0,175,240,240,240,146,231, 82, - 24,215, 55,167, 84,243,214,173, 91, 71, 54,108,216, 16, 60,106,212, 40, 49,199,113,236,139, 23, 47, 12, 0, 8,103,103,103,234, -214,173, 91,220,201,147, 39,161, 86,171,225,238,238, 78,186,185,185, 17,231,206,157,227,162,162,162,194,120,158,159, 99,204,177, -179, 44, 91, 46,141, 67,201,227,125,251,246,153,252,127,175,211,208,111, 73,183,183, 26,120,100, 36,223,131, 50, 41, 22,108,174, - 66, 31,114,252,148,214, 68,147,245,103,151,209, 95,169,185,248,241,227,199,110, 90,173, 22, 18,137, 4,155, 54,109,210, 47, 93, -186, 52, 50, 35, 35, 35, 16, 21,143, 40, 47,167, 89,195, 81,135, 89, 85,104,190, 50,234, 48, 55, 19,167,143,159,184,213,218,162, -255, 14, 76, 74, 78, 47,237,216,200, 19,132,221, 49,167, 70,129,242, 54, 77,146,200,159, 23,144,249,172,234,116, 21,199,174, 83, -235,116,131,250, 15, 24,246,219,129, 3,251, 45,230, 47, 88,128,171, 97,225,200,204, 41, 0,199, 83,224, 8, 2,115,231,206,135, -179,131, 29,242,146, 31,171,180,122,125,127,148,207,161,245,175, 47,119,130, 32, 39,159, 59,185,107, 29, 73,128, 43, 76,125, 36, -165,242, 99,229, 35,134,246,167, 7, 13, 26,132, 99,199,142, 33, 34, 34, 98, 75, 21, 38,171, 84,147,231,201,201,225, 23, 15,174, - 35, 0, 78,157,254, 72, 74, 23, 60,147,143,252,160, 63, 61,116,232, 80,252, 20,114, 13, 7, 78, 61,219,124,224, 20, 78,225,205, -198,244,204,240,150, 52, 34, 2, 27,249,184,117,106,209, 88, 70,179,106, 36, 70,197, 34,171, 80,131,115, 15, 95,228,144, 60, 89, -227,220, 58, 69, 23, 72, 49,226,227, 31, 87,112,103, 37, 43,174,208, 53, 38,105,146, 36, 89, 46,154, 85,155, 72, 86,217,253,116, -114,114, 42, 55,157, 75,217,138,187,164, 15, 80, 13, 82, 59,204,138,143,143,183,138,143,143, 7,207,243, 8, 11, 11,179,106,219, -182,237,172,218, 68,179,166, 79,159, 94, 26,181,122,121, 93,209,107,213, 81,220, 41,125,173,193, 96, 56, 60, 99,198,140, 73,109, -219,182,237,185, 96,193, 2, 2, 38, 76,192,251, 82, 52,135,225, 56, 14, 23, 46, 92,192,177, 99,199, 88,189, 94, 63, 94,169, 84, -134,151,217,100,253,157, 59,119,206, 13, 24, 48, 96,215,163, 71,143,168,200,200, 72,240,124,245,227, 78,213,106, 53,124,125,125, -193, 48, 12,150, 79,242, 64,126,126, 19, 48, 12, 3,150,101, 97,110,110, 94, 26,197, 43,107,158,171,251, 29,177, 44,251,138,209, - 10, 11, 11, 3, 69, 81, 8, 12, 12,196,221,187,119, 75, 35, 90,213, 69,160,244,122,125,188,147,147,147,211,226,197,139, 75,247, - 43, 61, 61, 29,103,207,158, 69,187,246, 29,208,104,252, 4, 36, 39, 39, 99,205,154, 53,112,117,117,197,146, 37, 75,144,149,149, - 5,134, 97,254,234,112,250,187,145,145,145,238, 31,124,240, 65, 90,120,120,184,123, 72, 72,136, 77, 80, 80,144,249,176, 97,195, -210,194,195,195,221, 9,130,232, 0, 19, 59, 65,115, 28, 55,123,238,220,185,191, 46, 89,178,100,214,167,159,126,218,118,212,168, - 81, 34,145, 72,196, 37, 37, 37, 49,251,247,239, 39,124,125,125, 73,177, 88, 76,156, 57,115,134,187,121,243,230, 13,134, 97,150, - 3,184,108, 74,196,185,172,201,162, 40,202, 88,147, 85,142,169,142,210,145,150,100,122,224,134, 77, 75,201, 6,222,238,250,221, -251,207, 38, 92,190,254,248, 41,165,101,166,254, 80, 69,106,128, 55, 25,138,162, 14,249,251,251,143,158, 60,121,178, 89,175, 94, -189,164, 11, 23, 46,204,205,207,207,175,204,100, 85,112,195,252,151,140, 58,252,126,246,231, 33, 83, 63,107, 50,218,231, 35,231, - 58, 8, 45, 76, 67, 54, 77,145, 86, 54, 36, 90,120, 81,200,207,120,162, 56,245,219,206,231, 0,170,203,203,118,235,206,131,136, -238,141,155, 52, 63,186,124,201,114,199,121, 51,103,136,142,134,252, 2,158,209, 35,236,226, 69, 88,136, 89, 62,234, 78,104,170, - 86,175,235,135, 55,112, 10, 30,229,213,239, 14, 0, 56, 97,103,103,119,127,204,168, 81,190,254,254,195, 32,151,203,113,228,200, - 17,236, 89,191,158, 93, 11, 12,150, 2,119,131,171,201,167,151,118,163, 84,231,222,184, 49, 99,252, 90,180,248, 8,114,185, 28, -135, 15, 31,198,174,181,107,141,214,249,151, 83,146, 25,254, 52,254,200, 16, 95, 77, 31, 45,146,200,191,241,248, 69, 65,216,227, - 23, 5,224,120,158,227,121, 45, 73, 34,161, 80,175, 95,242,248, 89, 82,141, 76, 65, 73,211,225,215,223, 76,126,125,109, 30,101, -204, 79, 77,135,116, 87, 96,178, 18,203,206,145, 86,182,146,174,236,177,193, 96, 72, 52, 82,126,153,167,167,231, 43,175,213, 60, -244,203,155,100,178,140,205,163, 5, 0,153,153,153, 74, 0,243,174, 95,191,190,175,103,207,158,227, 0, 36,213,176,140,182,117, -238,220,121, 60, 0,138, 32,136, 45,201,201,201,225,175,252,225,149,202, 24, 87, 87,215,149,222,222,222, 19,138,110, 76,137,109, -213, 84,228,207,154, 52,105,162,175,168, 44, 42,123,206,113, 92,181,101,148,147,147,131, 54,109,218,188, 50,167, 37,207,243,120, -241,226, 69, 73,196,169,244,220, 87,101,224, 10, 10, 10, 38,124,242,201, 39, 91, 69, 34,145, 39, 0,162,196,228,178, 44, 75,125, -247,221,119, 50,150,101, 41, 0, 4, 73,146,140, 72, 36,210, 28, 59,118,140, 97, 24, 38, 94,171,213, 78,248,139, 47, 16,135,137, -162,169, 24, 10, 35, 35, 35, 27, 20, 71,178, 18, 35, 34, 34,238, 29, 56,112, 64, 1,224, 96, 13,117, 47,171, 84,170,203, 75,151, - 46,237,180,105,211,166,217, 19, 38, 76,104, 51,116,232, 80,186, 75,151, 46, 56,125,250, 52,123,225,194,133, 48,181, 90,189,204, - 20,131, 85, 92,150,185, 30, 30, 30,165,134,171,154,255,114,149, 29,121,237,189,164, 27,134, 79,116,149,109, 91,118,182, 32, 35, - 89,119,205, 80,160,155,179, 19,136,192,127,152,212,212,212,207, 1,204, 95,179,102, 77,114,179,102,205,164, 98,177, 88,103,172, -201,250, 11, 97,184,156,130,247,190,237, 49,240, 68,231,185,159,120,247,232, 26, 40,247,168,227,232, 22, 21,155,138, 39,215, 79, - 23,222, 63,245, 77, 28,175,205,238, 11,192,152,158,235, 55,181,122,125,253,233, 51,166, 79,146,136, 68, 61, 89,150,109,218,237, -220,113,158,162,168,112,157,193,112,174,184,185, 80,243, 6, 23,249,215, 43, 87,174,244,245,247,247,199,145, 35, 71,112,110,239, - 94, 12,201,200,192,121,138,162, 72,177,216,254,148, 94,191, 10,198, 25,164,175, 87,175, 94,237, 23, 16, 16,128, 67,135, 14,225, -204,174, 93, 24, 92, 51,157,202,234,186,214, 0, 20,197, 79, 51, 0, 60, 2,208, 18,128, 25, 0, 45,138,166,118,114, 40, 91,133, - 21,191, 87,242,254, 37,130, 32,254,204,142,176,213,103,134,127,153,136, 39,113, 45, 95,247, 94,168,213,234, 44, 95, 95, 95,147, -198, 92, 27, 12,134, 42,219,112, 25,134, 73,244,241,241, 49, 58,106, 97,140, 41,202,202,202,106,245, 39, 22, 70,173,250, 98,149, -171, 68, 56, 46,206,197,197,133, 43,169,244, 43, 50, 97, 21,189,198, 3,207, 77,249,158,148,148,148, 71, 0, 62,171,233,126, 38, - 39, 39, 31,133, 17,147, 70, 27,187, 29, 0,100,103,103,191,246,201,124, 9,158, 79, 90,184,112,161, 73, 6, 27, 60, 95,149,249, - 12, 47, 40, 40,104,107,204,119,235,245,122,252,141, 28, 42, 94,200,136,136,136,113, 4, 65,244, 66, 81,147,192, 22,188,158,108, -222,151,243,242,242, 46,175, 88,177,162,211,182,109,219,166,242, 60,143,188,188,188,181,166, 26,172,210,187,231,180,180,211,175, -235,192,179, 82,117,191,239,223,146,248,182, 58, 71, 63,117,123,129,110, 23, 4, 74,131, 81, 60,207,255, 56, 98,196,136,118, 0, -118,214, 86,172,146, 81,135,181,229, 57,151,157,219,236,252,244,175,198,156,183,177,236, 13,150,110, 0, 29,121, 10,186,204,211, - 0,126,128,113,221, 28, 74,143,151,225,184,213,140, 78,183,186, 76,229,242, 95, 40,103,187,128,128,128,169,163, 71,143,198,252, -249,243,113,102,213, 42,253, 68,130,200, 21, 1,252,175, 69, 55,154, 36, 1,204, 52, 86,103,228,200,145,152, 63,127, 62,126, 94, -190,188,166, 58, 85,161, 32, 8, 34, 4, 0,102,205,154, 53,103,233,210,165,182,179,103,207,110,186,108,217,178, 37,197,207, 31, -150,188, 95, 92,215, 5,205,158, 61,187,113,153,247,243, 1,220,250,147,207,103,133,153,225,255,108,186, 11,154,130,166,160, 41, -104, 10,154,130,166,160, 41,104,214, 6,158,231,123, 23,173, 42, 95, 87,246,184,204,250,111,129,134,128,128,128,128,128,128,128, -192,191,144,178, 81,172,154,188,255, 26, 41,233,163, 85,150,109, 64,209,176,238,202, 92,169, 41,163, 30,106,226,108, 67, 5, 77, - 65, 83,208, 20, 52, 5, 77, 65, 83,208,252,207,105, 86,167,253,202,231,121,158,239, 77, 16, 68, 8,207,243, 65,149,173, 75,140, -213,203,143,203,172, 95, 91,183,131, 10, 40,233,155,245, 74, 31,173, 63, 27, 33,172, 42,104, 10,154,130,166,160, 41,104, 10,154, -130,102,173, 40,105, 2, 4,192,207,154, 53,107,246, 63,176,233,208,165,216,100,149, 93, 0, 84,209,116,200,243,135,169,164, 36, - 88, 73, 36,114, 49, 0,232,116, 42,189,155, 27,242, 8, 98,208,223, 57,225,173,192,191,147,146,225,222,169,175,121, 91, 1, 1, - 1, 1,129,255, 6,233, 37,145, 42, 0,233, 0,136,226,231,186,226,117,122,177, 33,123,249,113,185,247,255, 68,148,168, 36,146, - 69, 87,102,178, 50, 50,228, 14, 52,157,237,199,178,154,134, 0, 64,211,100,116, 70,134,109, 12,207, 31,206,168,137,217,114,112, -116,188, 35,162, 40, 55, 99,182, 53,176,108, 82, 70,106,106,249,212,241, 4,241, 38, 24, 60, 99, 77, 68,109,204,198,159,110, 84, - 28, 28, 28,156,156,156,156,254,103,101,101,213, 62, 39, 39,231,102,122,122,250, 79, 85,204,123,184,148, 32, 48,163,232,119,133, - 21, 0,102, 87, 33,109,202,182, 47,227, 43,151,203, 39, 17, 4, 17, 80,252, 7,139, 80,169, 84,155, 0, 60,254, 15, 94,144,204, - 0,244,163,105,122,164,131,131, 67,155,148,148,148,133, 0,106,154,205,155, 6, 48,221,198,198,102,136,141,141,141, 79, 86, 86, -214,211,188,188,188, 67, 0, 86, 3,168,118,168,244,194, 79, 93,218,119,233,213,101,222,133, 51, 23,190, 94,184, 94,121,253,149, -247,167,187,216,247,236,209,113,254,133, 83,215, 22,207,217,152,156,101,226,190,145,197, 11, 80, 52, 58,146,199,171,201, 94,107, -139, 8, 64, 31, 0, 93, 0, 92, 0,112,202,152,227,174,132,118, 0,230, 20,239,243,106, 0,231,255,225,191, 35,115, 39, 39,167, -229, 0,250,208, 52, 29,153,148,148, 52, 30, 64,226,223,188, 79, 52,128,214, 0, 2, 80,148,134,227, 22,140, 75,225, 80, 45,246, -246,246, 65, 52, 77, 79, 42, 78,237,178, 41, 51, 51, 51,228,159, 90, 48, 18,137,100,173,179,179,243, 71,106,181, 90, 69, 16, 4, - 95, 54,223, 35,195, 48,137, 25, 25, 25,173,222,180,139, 26, 65, 16,183,254,225,187, 56,190,130,215, 42,207,163,149,148, 4, 43, -154,206,246, 75, 75, 9, 31,146,172,124, 48, 24, 0, 92, 93,154, 30,114,116,110,114, 48, 41, 73,162,119,110,208,223, 66, 36,167, - 55, 81,148,168,185, 70,167,117, 16,209,162, 12, 61, 99,184, 71,234,248, 73, 41,143,126,170, 48,217,162,136,162,220,226, 98,206, - 59, 50,250, 44,136,100,174, 16,153,121, 86,186,183,174,174,174, 53, 58, 74, 91, 91, 31, 75,189, 84, 54, 85, 36,162,122,112, 60, - 19,192,115, 0, 73,136, 34, 24,214,240,155, 88,171,253, 54, 59,251,105,126, 77,207, 96, 3,123, 56,243,192, 80, 16,232, 1, 30, -231, 8,224,192,163, 76,164,152, 32, 97,172,137,168,141,217, 40,251,217, 53, 0, 62,127,221,191, 36, 55, 55, 55,219,160,160,160, -181, 95,125,245,149,153,133,133, 5, 17, 31, 31,223,107,230,204,153,111,221,190,125,251,179,164,164,164,228,151, 77, 31, 65, 96, - 6,199,241, 36, 0,144, 36, 49, 83,161,112,148, 83, 20,245, 74,110, 35,150,101,229,233,233,105,147, 57,142, 39,138,183,157,193, -243, 88,103,140, 97,148,201,100,195, 2,154, 52,255,108,249,202,213, 22, 78,142,142,230, 12,203,233,159,191,136,147,207,155,245, -121,219,216, 39,143,215,105, 52,154,253, 53,249, 95, 83, 20, 53, 68, 42,149, 6, 1,240, 47,126, 45, 74,171,213,134,176, 44,123, -208,216, 10,221,201,201,233, 18, 69, 81,117, 76,249, 98,150,101,227, 83, 83, 83, 3,107, 88, 68,131, 60, 61, 61,127,232,220,185, -179,188, 77,155, 54,144, 72, 36,152, 63,127,254,116,165, 82, 89,157,209,162, 1, 76,151,203,229, 67,204,205,205,125, 10, 10, 10, - 98,213,106,245, 81,137, 68,210,125,221,186,117, 30, 29, 59,118,180, 76, 77, 77, 37, 40,138,114,250,249,231,159, 63, 92,187,118, -109, 47,134, 97,186, 85, 87,201,229,198,242,243,164,125,252, 59,229,198,158,159, 7,224,221,151,223,103, 52,178,145, 60,229, 17, -164,230,239, 38, 20,155, 15,163, 77,150, 72, 36, 90,231,236,236, 60, 90, 83,148, 43,128,127,185,194, 1, 0,157, 78,151,157,147, -147,211,160, 38,127,121, 0, 99,109,108,108, 70,127,241,197, 23,182,239,190,251, 46,246,238,221,251,241,246,237,219,179,243,242, -242,126, 68, 81, 34,204, 71, 38,106,206, 72, 73, 73,121, 79, 36, 18, 17, 30, 30, 30,148, 90,173, 54,197,104,249,161,104, 18,230, - 91, 0, 54,161, 40,117, 65, 87,160,232,255, 14, 96, 69,137,113, 35, 73,114, 83,131, 6, 13,254, 23, 21, 21,181, 25,192,215, 53, -253,175, 59, 59, 59,111,221,184,113,227,224,190,125,251, 82,233,233,233,110,205,154, 53,219,151,146,146,210,233, 53, 92, 70,198, - 72,165,210,105, 77,155, 54,109,244,232,209,163,152,188,188,188,213,197,231,179,170,255,148, 59,128,238, 54, 54, 54,221,230,206, -157,107, 17, 20, 20,132,109,219,182,189,183,125,251,246,130,252,252,252,223, 80,212,167,167, 86, 38,144,166,233, 73,137,137,137, - 14, 60,207,195,197,197,101, 18,128,127,164,209, 34, 73,114,221,128, 1, 3, 70,239,219,183, 79, 30, 23, 23, 39,119,115,115, 43, - 77,158, 77, 16, 68,141,235, 79,129, 90,179,173,140,225,170, 62,143,150, 68, 34, 23,179,172,166, 97,178,242,193,224,183, 58,127, -103, 13, 0,151, 46,126, 50,216,209,185,113,132, 68, 34,143,145, 90,201,142, 13,232,211,189,249,192,160,206,132,187,139, 35, 18, -149,105, 78,223, 31, 56,243, 78,200,153,243,199, 80,148, 64,172, 66, 24,125, 22,204,244,161,120,116,101, 61, 28,186, 36, 99,195, -207,137,184,126,255, 57, 84,185, 25,168,227,108,134,149, 83,123,194,217, 86, 94,179, 91, 47, 71,223,174, 12, 45, 61,248,193,176, - 17,214,255,235,231, 47,242,114,118, 6,207, 75, 17, 19, 91,208,225,151,179,231, 91, 31, 61,188,127,146,185,200,119, 72, 97,218, - 99,163, 47,110, 45, 92, 96, 86,168, 71, 63,154, 34, 62,236,216,170, 81,183, 97,239,117, 34, 27,249,215, 71,228,195,168,158, 39, -126, 15, 91, 73, 94,123,248, 27,195,242,187,205,197, 56,126, 87, 89,101, 66,191, 87, 12, 71,183,110,221, 59, 73,165,210,114,201, -147,180, 90,173,248,183,223, 66,219,213,196,108,148,124,135, 78,167, 37, 69, 34, 9, 72,146,248, 44, 32,160,137,127, 70, 70,198, -121,130, 32,126, 72, 78, 54, 45, 90,240, 9, 32,201,166,233,150,164, 84,234,194,234,116,246, 0, 64, 72, 36,217,207, 73,178,201, -220, 57,115, 44, 40,138,226, 50, 51, 51,161, 82,169,136,113,227,198,201, 98, 99, 99, 7, 36, 37, 37,173,175,230,142, 4,219,183, -111,247,115,113,113,121,101,246, 88,165, 82, 41,233,219,247,127, 53, 41,122,191,166,205, 90, 76, 59,115,230, 87,255,188,172,108, -205,246, 53, 91,239, 24,100,114,109, 93,255, 6,162, 77,219,118, 89,143, 31, 61,252,147,232,232,135,247, 96,218,124,117,158,102, -102,102,199, 86,173, 90, 21,208,181,107, 87,145,163,163, 35, 82, 83, 83, 17, 21, 21, 21,240,251,239,191,247,219,181,107,215,116, -181, 90, 61, 0, 48,106, 66, 84,223,223,118,255,224,104,110,103, 15,214, 96,128,107,211, 22,165,249,205,158,252,126, 22,140, 94, - 15,206, 96,128,127, 80,191,226,104, 50, 15,127,127,255,154,102,221,117,109,220,184,241,158, 37, 75,150,136,181, 90, 45,194,194, -194,112,254,252,121, 78,169, 84, 86,151, 16,151, 38, 8,226,236,130, 5, 11,220, 3, 3, 3, 45, 51, 50, 50,192,178,172,195,241, -227,199, 39, 53,111,222,220,202,195,195, 67,178,123,247,110, 20, 20, 20,128, 97, 24, 59, 31, 31, 31,187, 97,195,134,233,118,239, -222, 61, 29,192,242,202, 34, 89,121,177,252, 60, 37,225,243, 78,131,150, 35,145, 66,252,250,206,180,119,240,139, 85, 61,162, 52, -178,245,142,143,143,101, 94,146,124,166,133, 85, 19,187,188,164,208,153,239,248,248,108,255,245,169, 81, 55, 67,100,113,101,243, -193,129, 3, 7,228, 81, 81, 81,114,127,127,127,112, 28, 87,154,129,191, 36,225,172,175,175,111, 77,206,227,178,224,224,224,153, -131, 7, 15, 70,211,166, 77, 75,147,162,126,249,229,151,152, 57,115,166,237,165, 75,151,166,239,223,191,127,250, 79, 63,253,180, - 28,192, 44, 19,163, 49, 37,152, 90,198,139,158, 61,123, 54,232,216,177, 99,195,103,204,152,225, 11, 96, 50,128,249,153,153,153, -157,139,163, 49,146, 98,163, 53,102,250,244,233, 19,103,205,154,133,247,222,123,111,126, 88, 88,216, 55, 53,140,242, 81, 12,195, -188,215,183,111, 95,202, 96, 48,192,220,220, 28, 6,131,161, 94,109,131, 18, 0, 54, 78,152, 48, 97, 98,112,112, 48,108,109,109, - 97, 48, 24,252, 14, 28, 56,176,125,254,252,249,237, 1,140,173,100, 95, 71, 78,156, 56,241,253, 17, 35, 70,160, 85,171, 86,160, -233,162,211,184,106,213, 42, 44, 94,188,216,226,236,217,179,253,118,239,222,221,239,196,137, 19, 71, 81,126,218, 46,147,224, 56, - 14, 52, 77, 35, 33, 33, 1,142,142,142, 82,142,227,206, 16, 4,177, 45, 43, 43,235,167,127, 80,101,190, 98,208,160, 65, 31,236, -219,183,207, 2, 0, 86,174, 92,137,105,211,166,193,201,201, 9, 22, 22, 22,130,213,249,231, 68,180,198, 87, 27,209,170, 14,149, - 74,213, 98,246,167, 31,130, 36,139,238, 26,235,215,245,196,210, 57,227,137, 19, 33,103, 90, 84, 25,131,151,185,226,209,149,245, -144,122, 76,133,214,192,224,198,253,103, 56,183,178, 87, 81,109,249,238, 92,104,245,221, 74, 42, 27, 59,137,153,217, 10, 29,203, - 94,133,179,115, 24, 94,188, 72,175,206,100, 41,156,157, 66,182,108, 89,110, 22, 80,175, 1,244,140, 1, 73,105, 73, 32, 8, 41, -220,221, 44, 49,102,228,187,162,206,157, 93, 29, 22, 45,218,122, 58,133, 67,127, 85,198,227,106, 19,134,250, 57, 96,103,139, 0, -223,193,195,122, 7, 74,155, 4, 52,134, 88,106, 86,250, 94,203, 86,173,208,178, 85, 43,114, 86, 65,126,143,155,183,238,244, 56, -114,246,134, 86,101,120,113, 40, 38, 3,163,170,185,200,148, 26,142, 41, 83,166,192,201,201,169,220, 6,169,169,169,248,253,247, -223, 42,252,140, 9, 23,178,210,239,248,230,155,111, 44,179,179,179,223,221,177, 99,199,219, 28,199,125,147,146,146,114,197, 24, -145, 17, 64,157, 92,169,180,219,232,213,171,185,230,255,251, 31,101,227,236, 76,114, 44, 75, 36, 63,125,106,191,102,253,250, 46, - 89, 79,158,152, 21,218,217,101,101,171,213,170,152,152, 24,200,100, 50,130,166,233,214, 21, 72,165,242, 60, 86,144, 36, 49,147, - 32, 8, 72,165,178,152,224,224,224,187,197,239,213, 57,117,234,148,188, 79,159, 62, 42, 0,113, 0, 32,149,202,220, 40,138,222, - 54, 21,243, 0, 0, 32, 0, 73, 68, 65, 84,244, 43,202,196,142, 21,198, 24, 76,115,115,243, 79,191, 94,178,220, 60, 47, 43, 71, -173, 47, 44, 52, 40,172, 44, 8,194,194,146,202,203,205,207, 79, 82,166,107,231, 46, 92, 76, 77, 24, 51,226,211,194,194,194, 73, -198,154,172,102,205,154,221, 60,118,236,152,163,189,189, 61,114,114,114,144,153,153,137,155, 55,111,130,227, 56, 12, 24, 48, 64, -218,161,109,155, 22,115,230,206,187,158,144,148,212,222, 24,179,101,110,231,128,149,129,205,139, 42,235,184,204,210,242,217, 54, - 40,168,116,155,197,137,185, 37,209,185,218, 76, 33,213,190, 91,183,110, 98, 0, 24, 59,118,108, 94,126,126,254, 82, 0,251, 80, -125, 70,255,233,243,230,205,115,171, 91,183,174,215,190,125,251, 80, 80, 80, 0, 0,142,117,235,214,133,159,159, 31,123,225,194, - 5,248,249,249,193,210,210, 18,151, 46, 93,194,245,235,215,209,170, 85, 43, 75,177, 88, 60, 88,175,215, 87,104,180,186,244,234, - 50, 79,218,199,191, 83,131,150, 35, 97, 97,229,130,237,251, 15,226,209,157, 93,157,180,250,168,121, 98,246,226, 8, 53, 47, 29, -149, 30,111, 49,171, 78,171,206,246,245, 27,255, 15, 94, 45,239, 58,104,216,203,207,230,245,168,187,140,150,105,118, 45, 92,173, -204,172,204,100, 1, 88, 57, 96,192,128, 65, 7, 14, 28,176, 1,128,240,240,112,164,166,166, 66,161, 80, 64, 38,147, 65, 36, 18, -149,206, 79, 90, 67, 70,109,218,180,169,212,180, 49, 12, 83, 58, 11,128, 92, 46,199, 91,111,189,133,230,205,155,227,167,159,126, - 26, 85,137,209, 10,108,219,182,237, 94, 47, 47, 47,143,178, 47, 22, 22, 22, 98,232,208,161, 0,128,206,157, 59,119, 51, 51, 51, -227, 75, 12,161, 82,169, 44,184,117,235, 86, 15, 0, 97,149, 56, 75,117, 82, 82, 18,190,248,226, 11, 60,127,254,252,227, 45, 91, -182,188, 0, 32,147, 72, 36,165,247,199, 0,252, 26, 55,110,188,110,218,180,105,136,141,141, 69,100,100,228, 77,212,188, 41,149, - 53, 55, 55,127, 98, 48, 24, 90, 49, 12, 3,181, 90,141,254,253,251,203,142, 30, 61,154, 74, 81, 84,116, 70, 70,198,112, 20,245, - 73, 49, 22, 25,128,213,193,193,193, 19,103,204,152,129,223,126,251, 13, 39, 78,156,192,136, 17, 35, 48,117,234, 84, 88, 88, 88, -140,158, 58,117,234,117, 20, 77,104,254, 50,221, 54,109,218, 4,150,101, 95,249,111,200,100, 50, 4, 6, 6,162, 81,163, 70, 56, -113,226, 68,183, 90, 24, 45,175,192,192, 64, 9,199,113, 40, 44, 44,196,133, 11, 23, 44,204,204,204, 44,220,221,221,199, 1,248, -199, 24, 45, 47, 47,175,224, 3, 7, 14, 88,148,109,253,145, 74,165, 40,243, 59, 16,248,251, 35, 90, 85,222, 97,149,162,211,169, -244, 52, 77, 70,187,186, 52, 61,116,233,226, 39,165, 77,135, 0, 25,173,211,169,244, 0,192,114, 60,242, 84, 12,204,164, 36,226, - 82,242,241,240,105, 70, 69, 82,229,134,104,138,204, 60, 33,109, 19, 7,158,231,161,211,179,208,230,166, 96,233,105, 21,162, 18, - 53,208, 21,102, 67,167, 47,234,134,229,224,224, 64,159, 57,243,203,180,208,208,223, 39,254,248,227,143, 84,162,181,117,100, 62, -208,162, 34, 77, 91, 91, 31, 75, 78, 34, 57,180,121,203,124, 51,158,122,138,152,248, 66,212,119,111, 3, 7, 27, 15,164,100, 20, -226,106,228,207,136,126, 28,130,186, 46, 94,152,250,233, 59,178,175,151,236, 59, 40,102,188, 61,115,114,158,231, 85,182,159, 37, -119, 81, 91,127,141, 1,147,245, 20,108,102, 44,216,252,228, 87, 54,176, 80,120,162,101, 87, 55, 40, 60,234, 73, 71, 77, 93, 60, - 18, 40,103,180,202,106,166, 18, 4,185,153, 36,137,137, 4, 65,160,105,211,102,137,171, 87,175,174, 40, 21,184,190,105,211,102, -137, 20, 69,186, 23, 93,216,201, 77, 60,207,165, 86,179,159,229, 76,141, 68, 34,157, 81, 20,246,119, 73, 56,125,250,180,126,208, -160, 65, 88,181,106,149,100,230,204,153,115, 41,138, 26, 91, 65,243, 94, 57,205,254,128,167, 77,189,122, 61,191,185,122,149, 23, - 25, 12, 68,214,205,155,121, 57, 74, 37,147,146,159, 47, 57, 28, 29,253,222, 71,159,127, 46,241,240,240,192,149,144, 16,251,244, -194, 66, 62, 71,171, 85,231,228,228,240, 12,195,220,172, 68,115,182, 66,225, 40,223,190,125,187, 95,112,112,240, 93,165, 82, 57, - 27, 0, 92, 92, 92,150, 2,104, 4, 32,174,204,107,216,178,229, 96,210,184,113,227, 98,210,210,210,102, 87,181,159,101,104,236, -168,112,148,239,223,186,251,129,157,165, 25,169,112,119, 37, 69, 54, 54, 52, 35, 49, 19,115,128,186,174, 71, 61,115, 0,141, 43, -249,236,203,154,132,153,153,217,177,147, 39, 79, 58,138, 68, 34,176, 44, 11,133, 66,129,231,207,159, 35, 39, 39, 7,249,249,249, -120, 22, 29, 5,111, 15, 15, 44,154, 53,211,101,242,204, 89,199, 84, 42, 85,171,151, 42,179, 87, 39, 64, 54,232, 95,137,236, 85, - 52,139,193,203,205, 94, 70,150,123, 89,158,199,199,199,195,194,194, 2, 1, 1, 1, 22, 87,175, 94,189, 92,133,201, 42, 59, 9, -240,224,142, 29, 59, 90,238,219,183, 15,173, 90,181,130,181,181, 53, 46, 92,184,128,240,240,112,232,245,122,178,160,160, 0, 22, - 22, 22, 88,182,108, 25, 60, 61, 61,145,159,159,143,184,184, 56,123,145, 72,228,240, 82, 70,251, 82,205, 11,103, 46,124,157, 27, -123,126, 94, 10,241,235, 59,219,247, 31,196,184, 97, 67,224,204, 63,189,108, 93,143,248,186,103,159,142, 95,242,148, 71,144,185, -101, 83, 91,223,128, 62, 16, 75, 44, 48,121,198, 98,196, 68,156,178, 85,229, 63,248,152, 96, 19, 60, 22,174, 62, 60,165,130, 99, - 39, 0,144, 30, 30, 30, 31, 29, 62,124,216,178, 52,244, 66, 81,165,115, 30,150,157, 4,190,138, 9,223,171, 61,159, 4, 65,224, -249,243,231,112,116,116,132,133,133, 69,233, 4,226, 81, 81, 81,184,113,227, 6, 74,102,163,168, 68,115,120,104,104,168,135,185, -185,121,185, 13,120,158, 71, 70, 70, 6, 24,134,129, 92, 46, 7,203,178,208,235,245, 48, 24, 12,208,104, 52, 22,141, 26, 53,154, -100, 48, 24,194, 42,210,228, 56,238,179,193,131, 7,119, 12, 11, 11,243, 89,191,126, 61,116, 58,221,202,148,148, 20,188,255,254, -251,224, 56, 14,221,186,117,107,199,243,252,163,185,115,231, 2, 0,166, 77,155,102, 40, 44, 44, 12,174,201,177, 23,211,168,101, -203,150, 62,191,253,246, 27, 58,117,234, 4,173, 86,139, 85,171, 86, 89,109,217,178,197,106,247,238,221,138, 25, 51,102,252,144, -158,158,222,171, 26, 77, 2,192, 74,103,103,231,137, 93,186,116, 49, 43,158,195, 20,187,118,237,194,162, 69,139, 14, 0,152,251, -203, 47,191, 44, 56,113,226,196,200,143, 62,250, 8,139, 22, 45,154,154,147,147,179,163, 50,205,103,207,158, 65,161, 80,192,202, -202,170,232, 98,169,215,227,222,189,123, 56,119,238, 28, 26, 54,108,104,204, 49, 85,182,159, 94, 3, 6, 12,248, 97,255,254,253, -150, 9, 9, 9,184,116,233, 18,188,189,189,161, 82,169,140,153, 27, 54,244, 79,168,176, 43,213, 84,171,213,154,248,248,120,139, -229,203,151,195,197,197, 5, 94, 94, 94,144,201,100, 32, 8, 2, 6,131,161,170,233,213,170,221,207,206,157, 65,103, 36,217,246, -181,182,177,253,152,231,121, 58, 55, 55,123,171, 30, 57, 71,158, 62,133,238, 47, 60,246,127, 51, 45, 0,220, 69,249, 57, 15,149, -165, 70, 43, 36, 36,132, 15, 10, 10, 34, 74,214,110,110,200,203,200,176,141,113,116,110,114,208,209,185,113,241,188, 95,100, 52, - 69,217,198, 56, 57,169,242, 0, 64,207,240,184, 22,157,131, 7, 79, 82, 16,254, 36, 5,230, 82,227,130, 47, 90, 61, 83,212, 99, -149,231,161, 41,248,227,166, 85,175,202,134, 86, 95,212,221, 67,167, 85, 33, 55, 61,146, 24,212,191,135,108,226,196, 9,112,113, -113, 83, 84,166,167,151,202,166, 78,158,246,158,141,157,141, 8, 33, 87,127, 69,187,134,253, 33,147,138,144,153,171, 1, 8,224, -241,211,115, 0,103,137,136,152,120,180,109, 44, 71,175,158,254,255,103,239,186,195,162,184,218,239,153,237,176,187,244, 94, 44, - 88, 0,123,239, 40, 98, 67, 99,239, 88, 98,239,216, 27,106,140, 37, 42, 26, 77,236,189,196, 96,239,137,216, 80, 84, 44, 88,233, -136, 88, 0, 41, 11, 82,150,165,108,223,157,157,249,253, 65, 9, 42,101, 65,243,253,190,228,219,243, 60,243,192,236,206,156,125, -231,222, 59,115,207,188,247,222,247, 21, 94,190, 16,191, 4,192,106,125,236, 37,211,158,131,227,218, 15,108,157, 22,218,156,120, - 80,121,201,128,192, 30, 10, 66, 8,113, 70, 50, 94, 63,188,168,215, 59, 35, 69, 81,115,172,173,173,243, 86,173, 90,213,189, 97, -195,134,154,217,179,103, 71, 38, 39, 39, 47,250,236,109,229,215,125,251,246,225,221,187,119,162,141, 27, 55,222,207,201,201,249, -161,154, 21,237, 71,211,216, 81, 60, 20,151,115,229,202,149, 54, 33, 33, 33, 11,118,236,216, 97, 55,119,238, 92,238,220,185,115, - 39, 3,248,169,178,225,194, 2, 30,175,215,198, 7, 15,104, 50, 45, 77,117, 98,247,110,238,222,208,208, 85, 26,138,114,180,182, -181, 37, 58,119,232, 32,227, 51, 24, 57,226,204, 76,210,166,126,125,102,210,237,219, 86,180,177,113,250,141, 27, 55, 10,164, 82, -105,133,169,115,152, 76,166,188,188,225,194,242,224,224,224,160, 46,111, 14, 87, 37, 29, 98, 1, 69,211, 26,243,122,245,232, 62, - 61, 59, 53,124, 23,159,144, 96,100,110,206,116,109,232,226, 30,251, 58,233, 57,173,211, 41, 9,130, 40,208,107,172,132,201, 28, -189, 99,199,142,230,166,166,166,160, 40, 10,102,102,102,200,206,206,134, 90,173, 70, 65, 65, 1,212,133,249, 80,231,231, 35, 58, - 57, 9, 93,186,119,199,200,190,125, 26, 7, 92,249,115,180, 78,167, 59, 83,233,120, 94,139,214,165,158,172,245,117,173,254, 26, - 11, 74,205, 43, 21, 93, 91, 90,187,130, 35, 20,162,247, 34,191,175,185,209,195,175, 93,187,118,125,216,176, 97,223, 45, 89,178, -132,145,145,145,113, 51, 41, 41,169, 11,128, 87,149,157, 36, 20, 10, 27,228,228,228, 64, 42,149,194,204,204, 12, 59,118,236,128, -157,157, 29,228,114, 57, 94,188,120, 65, 59, 59, 59, 19,247,239,223,135,179,179, 51,196, 98, 49, 52, 26, 13, 20, 10,197, 71,181, - 90, 93,225,112,121,241,240, 96,191,133,125,113, 35, 62,236,247,174, 78, 68,226,139, 81,139, 61,223,197, 71,191, 78, 9,186,253, -248, 39, 82,105,148,154,151,118,103,121,189,118,225,214,115,150,174,195,158,173,107, 16,255,236, 65,174, 93,237,130,189,198,132, -234,120,101,246,202,100, 50,229,235,215,175, 77, 34, 35, 35, 65, 16, 4,204,204,204,192,231,243,203, 21, 91, 53, 0,163,172, 7, - 74, 38,147,129,195,225,192,202,202, 10, 71,142, 28, 41,237,120, 93, 92, 92, 42,227, 56,216,187,119,239,209,181,107,215, 54, 41, -251, 97,187,118,237, 48, 99,198, 12,236,223,191, 31,161,161,161,159,228,211,252,248,241, 99,134, 86,171,173,236,186,243, 50, 51, - 51,251, 14, 29, 58, 52,236,225,195,135,166, 71,142, 28, 1, 73,146,229,110,135, 15, 31,198,211,167, 79, 87, 3,120, 93,195,118, -212,104,248,240,225, 15, 78,158, 60,105,158,157,157,141,146,182, 33,147,201,160,211,233,224,238,238, 78,144, 36, 89,213,188, 55, - 6,147,201,188,178,123,247,238,129,211,166, 77, 3,139,197,130, 90,173,198,238,221,187,177,124,249,242,204,226,151, 82, 13,128, - 85,199,143, 31,159, 48,104,208, 32,180,108,217,178,241,189,123, 21,207,236,144, 74,165,144, 74,165, 96,179,217,176,183,183,199, -134, 13, 27,160, 86, 23, 61, 86,220,220,220, 74,111, 99, 0, 7,221,220,220, 6,190,121,243,102, 27,138,230,174,125, 1,123,123, -251,161, 52, 77, 79,215,233,116,133, 93,187,118,181, 58,125,250,180,137, 72, 36, 66, 88, 88, 24, 86,175, 94, 45,161, 40, 74, 71, - 81, 20,161, 80, 40, 18,109,109,109,195,120, 60,158,177, 92, 46,207, 21,139,197,155, 0,220,252,255,234,201, 9,130, 32,216,108, - 54,166, 76,153, 2, 22,139, 5, 99, 99, 99, 40,149, 74,104,181,218, 82, 49,143,106, 14, 75, 55,108, 40,180, 98,129, 51,205,194, -164,201,130,145,243, 7,216, 56, 56, 58,193,220,148,135,184,184, 87, 93,238, 6,223,222,205,101,197, 31,160,212,218, 3,241, 31, -242,255,246,100,247,159,107,145,127,168,208,250, 34,231, 33,171,252,202, 28,169,163,233,243, 57, 34, 17, 87,195,229,242,223,148, -120,185,236,236,228, 5, 4, 49, 82,103,211,116, 48, 72,141,182,248, 65, 65, 23,111,122, 10, 45,173, 14,239,226, 99,240, 48,232, - 79, 88,203, 69,200, 73,108, 5,112,154, 67,173,200,135, 82,173, 41, 22, 37, 58, 68,134, 5,163, 32, 63, 23,205,218, 14, 0, 24, -140,167, 21,241,153, 89, 17, 3, 58,183,105,193,124,151, 18,131,118,110, 35, 80,223,185, 43,146, 51, 10,144, 39, 85, 65, 82,160, - 68,171,102,126,200,150, 40, 80, 32, 87,226,213,187, 0, 56, 57,214,103, 16,172,132,158,250, 10, 45,213,171, 75, 80,189,254, 3, -156, 58, 93,192,117, 31, 4,102, 29, 15,164, 68,221, 67,228,141,237, 72,139,125, 4,154,210,193,193,173,189,190, 55,201,238,155, - 55,111,182,239,210,165, 11,171, 87,175, 94, 45,175, 95,191,222, 50, 35, 35, 35,178, 88, 96,180,236,213,171, 87, 75, 27, 27, 27, -236,220,185, 83, 65, 16,196,238, 26, 86,118,169, 7, 44, 43, 43,235, 57,128,141,151, 46, 93,218, 61, 99,198, 12,216,218,218, 54, - 79, 79, 79,175,240,196,108, 54,187,229,196, 77,155,104, 54,147, 73,159,217,179,135,179,238,230,205, 95,126, 59,126,156,211,195, -203,139,160,105, 26, 17, 17, 17,252, 45,123,246,240,199, 14, 30,252, 33, 57, 43,139, 12, 9, 13,213,100,164,165, 21,102,201,100, -235, 50, 50, 50, 62,254,127,180,108,173, 86,251, 36, 49, 41,209,169,109,135, 86, 54,225,113,137,177,222, 61, 58,119,102, 48, 24, -140,248,132,228, 80, 27, 27, 83,254,237,160,219, 26,173, 86,251, 68, 31, 46, 30,143, 55,160, 71,143, 30, 44,137, 68, 2, 71, 71, - 71,100,103,103, 67, 36, 18, 21,121, 28,242, 37,208,228,231, 67, 91,144, 7,157, 76,138,196, 23,207,209,170,126, 61,222,121, 30, -111,128, 92, 46,175, 84,104,149,188,101,150,151,232,186,228, 51,174,137, 9,184, 66, 33,136,234, 15, 27, 14, 54, 55, 55, 95,158, -151,151,119, 29,192, 6,141, 70,227,187,124,249,242,118,187,118,237,178,222,184,113,163,233,244,233,211,207, 75,165,210, 86, 40, - 74,170, 90, 81, 7,246,158, 36, 73, 43, 0,118,193,193,193,176,181,181, 69,126,126,126,137,167, 69, 45,151,203,141,196, 98, 49, - 84, 42, 21,212,106, 53, 76, 77, 77,241,242,229,203, 92,146, 36,175, 86,101,156,105, 3, 98,131, 74, 19,247,131, 85, 99, 65,186, -134,180,240,204,202,165, 36,107,127,201, 88, 15,224,151,190,245,235, 31,214, 80, 15, 18,223,198, 92,181, 72,122,113, 63, 55,253, -173,172,254,145,235,137,149,205,209,162, 1, 80, 4, 65,208,110,110,110,200,206,206, 6,147,201, 4,159,207,135, 80, 40,196,138, - 21, 43,176,123,247,238,154, 8, 45, 35,129, 64,176,137,193, 96,140,102, 48, 24, 54, 58,157, 14,126,126,126, 24, 56,112, 32,184, - 92, 46, 52, 26, 77,169, 71,179,196, 75, 85,133,167, 35,226,233,211,167,166, 79,159,126,242,216,242,178,182,182,190,171, 82,169, -144,144,144,128, 43, 87,174,116, 7, 16, 82,205,186, 78,136,136,136,232,235,225,225,241,123,155, 54,109, 26,208, 52,141,230,205, -155,195,199,199, 7, 1, 1, 1,136,140,140, 68,126,126, 62,117,251,246,237,223, 0,108,171,110, 31, 94, 92,190,238,195,135, 15, -127,116,234,212, 41, 11,177, 88, 12,133, 66, 1,153, 76,134,243,231,207,163, 75,151, 46,176,182,182,198,201,147, 39, 73,154,166, - 43,171,123, 6,131,193, 56,114,224,192,129,129, 83,167, 78,197,222,189,123,113,230,204, 25, 12, 26, 52, 8,163, 71,143, 70,118, -118,182,221,214,173, 91, 39, 20, 15, 19,174,241,241,241,129, 84, 42,197,139, 23, 47,226,244,188,231,145,151,151,135,188,188, 60, - 24, 27, 27,151,189,199, 8, 0, 1,219,183,111, 31,179, 96,193, 2,212,175, 95,127, 77, 98, 98,226,118,148,179, 74,148,162,168, -153, 34,145,200,130,197, 98, 89,145, 36,137,212,212, 84,188,124,249, 18,115,230,204,201,205,205,205,157, 1, 32, 25,192,170, 41, - 83,166,108, 88,180,104, 81,105, 91, 90,180,104, 81,224,245,235,215,251,254,167,189, 57,110,110,230, 77,185, 76,222,124, 73, 33, -211, 74, 34,145,148, 62, 59,212,106, 53, 84, 42,213, 39,158, 44, 14,135,109,213,174, 85,237,107, 10,121,225,202, 87,111,243, 42, - 76,144,222,184,129, 89, 11,190,192,108, 65,151,174, 61,198,245,233, 59,132, 73,106,181,184,117,235, 42,142, 30,221, 7, 47, 15, - 55,212,111,216, 28,115,231,205, 55, 83,169, 73,191,219,183,111, 46, 55,127,250,240,102, 97, 65,222,138,202, 56,255,199,113,173, - 88, 92, 93, 43,119,232,176, 60, 5, 89, 28,194, 65, 82,188,107,109, 97, 97,177, 71,167,211,121,153,154,154,130,202,123,131, 87, - 47,159, 33, 87,194,134, 74,161, 3, 69, 23,137, 45,189,132,139, 74,141, 7,183,254,192,142,237,191, 64, 44, 22,195,163, 91,119, - 72, 89,181, 80,187, 86,109, 40, 21,242,226,155, 6,208,168,181,176,177,171,131,240,240, 72,109,129, 76, 86,225, 3,137, 99,164, -105, 92,219,206, 13, 42, 77, 39, 24,113,185,200, 47, 84, 67, 82, 44,178, 78, 94, 24, 5,149, 92, 1, 82,173, 1,169,214,194,166, -246,112, 52,178,235, 1, 74,119,181,105,181,138,143,210, 65,147,244, 0,154,164, 7, 48,238, 52, 15,127,250,143,249,172, 35,213, - 47,239,110,118,118,118, 86,108,108,236,213,136,136,136,161,163, 70,141,194,189,123,247,166, 3,152, 85, 60,124, 51,125,212,168, - 81,136,136,136, 64,108,108,236,213,236,236,236,172,111, 81,243, 92, 46, 87,161, 82, 21,245,177,124, 62,223,168,138, 99,157,218, - 13, 27,198,200, 15, 15, 47,216,254,248,241,154,195, 71,142,112,122,245,236, 73,104, 73, 18,148, 78,135,134,174,174, 68,159, 62, -125, 4, 1,231,206, 89, 49,181,218,167, 75,125,125,131,247,143, 31, 95,248, 92, 38,211,119,162,121,221,226, 33, 67, 0,168, 91, -201,103,122, 67,165, 82,237,154, 57,109, 82,175,144, 7,143,106,213,174,229,100,122,235,118, 72, 36,207,152,203,168,239,210,128, - 41,201,207,101,173, 95,179,210, 88,165, 82,233, 43, 90, 27, 91, 91, 91,227,227,199,143,120,247,238, 29, 84, 42, 21,180, 90, 45, - 40,185, 12,106, 73, 30,212,249,185, 32,148, 10,240,116, 58, 40,115, 50, 81,183,126, 61,224,175, 21,137, 85, 14, 69,149, 39,180, - 74,254, 26,153,154,130, 35, 16,130,193,102,235,157, 28, 29, 64,155,246,237,219,159,187,120,241, 34,103,242,228,201, 29,238,220, -185,179, 7, 64,178, 72, 36,234,185,122,245,234,231,123,246,236,225,205,152, 49,195,125,219,182,109, 19, 0, 28,172,136, 68,169, - 84,158,187,118,237,218,216, 58,117,234,216, 69, 71, 71, 67,169, 84,130,162, 40,244,235,215, 15, 40,154, 91, 3, 0,136,143,143, - 87, 40,149,202,172,152,152,152,130,228,228,100, 13,244, 88, 37,184,118, 87,198,147,130,143, 15,134,217,217, 59, 61, 53, 50,174, -235, 66, 75,195,135, 46, 28,225,180,117,251, 5,145,242,102, 66, 66,225, 15,189,235,109,150, 21, 70,205, 49,119,150,238,189, 25, -152,168,207, 68,248,210,213,133, 86, 86, 86, 96,177, 88, 96,179,217,224,112, 56, 32, 8, 2,243,230,205,195,161, 67,135,170, 26, - 58,252, 68,100,153,152,152,196,174, 91,183,206,121,198,140, 25, 28, 35, 35, 35, 72, 36, 18,156, 60,121, 18, 83,166, 76,193,209, -163, 71,203,157,255,162,199,144,210,231,222,210, 5,227,199,143,135, 90,173,134,143,143, 15, 14, 31, 62,188, 64,167,211,133,212, -224,150,126, 26, 25, 25,233, 26, 25, 25,105, 10, 96,208,232,209,163,143, 15, 31, 62, 28, 33, 33, 33,184,122,245,106,119, 20, 45, -250, 80, 0,240, 7, 96, 91,252,183,178,251, 83, 96,103,103,183,143,162,168, 65, 54, 54, 54,145,110,110,110,205, 78,157, 58,101, -158,149,149, 85,178,248, 1, 73, 73, 73, 56,118,236, 88,198,145, 35, 71, 10,116, 58,157, 21,131,193,184,150,151,151,183,162, 18, -193,118,100,251,246,237,147,138,135, 3,113,241,226, 69,250,151, 95,126, 33, 86,175, 94, 13,137, 68, 2, 47, 47, 47, 28, 56,112, - 96,190, 84, 42,109,249,203, 47,191, 76, 27, 57,114, 36,214,175, 95, 15,153, 76,182,189,170,151,149, 74,196, 23, 1,160,243,246, -237,219,235, 44, 88,176, 0, 23, 47, 94, 68,155, 54,109,140, 19, 19, 19,247, 3,152, 90, 94,253,209, 52,141,196,196, 68,200,229, -114, 60,122,244, 8,107,214,172,145,148, 17, 89,243,103,205,154,181, 97,254,252,249,216,180,105, 19, 29, 29, 29,157, 53,124,248, -112,187, 67,135, 14, 49, 27, 54,108, 56, 95, 46,151,255,199,132,150,123, 67,203,205,237,218,116, 93,238,224,212, 16, 39, 79,157, - 70,110,110,110,105,153,148,148, 11, 77,211, 40, 44, 44,196,199,143, 31, 97,102,106,130,173,219, 54,124, 55,123,250,164, 90, 40, - 10,131,241,165,203,178,190,197,182,225,163, 39, 47,246, 25, 59, 9,209,145, 97, 8, 56,126, 16, 49,209, 17,165,124,164, 86,131, - 55,113, 47,241, 38,238, 37,236,236,235,160, 79,175,238,196,152, 49, 99,250,141, 31, 59,218, 6,192,223, 22, 58,226, 31,236,205, - 2,190,140,163,117,232, 19,161, 85,133,187,206,218,194,194, 34,246,236,217,179, 86, 30, 30, 30, 76,146, 36,113,243,214, 45,204, -153,245, 61, 38,140,247,131, 6, 22, 32,213, 28, 80, 28, 35,189, 44, 81, 40,228,160, 65, 67, 38,147, 33, 52, 52, 20, 52, 69, 34, -224,208, 47,160,105,170, 84,104, 1, 52,212, 26, 13,156,106,187, 99,223,225,141, 36,216,236,231,208,150, 31,186,166, 64,204,212, -105, 73, 26,162,172, 20,164,100,196,192,204,164, 54, 88,236,218, 16,231,201,193, 98,216, 67,171,140,135,174,248, 92,185, 44, 13, - 10,205,215,213,159,174, 28,239, 41, 93,141,135,174, 66,161, 56,113,226,196,137,239,126,253,245, 87,110,255,254,253,221, 46, 92, -184,208, 25, 0,250,247,239,239,102,106,106,138, 19, 39, 78,168, 21, 10,197,137,111,232,241,233,209,190,125,123, 72, 36, 18, 36, - 37, 37, 69, 86,122,109,106,181,149,208,214,150,153,117,239,158, 54, 91, 34,169,213,163, 71, 15, 66, 75,146, 96, 16, 4,114,243, -243,145,252,225, 3,204,205,205,137,216,248,120,225,238,185,115, 47,187, 53,107,198, 42, 89,145,168, 15,174, 94,189,202, 71,209, -188,172, 74, 63,171, 38,100, 89,153, 31, 39,249,250,250, 94, 62,113,226,164, 89,102, 86,230, 27, 30,151, 75, 10,133, 70,142,227, -199,205,102,229,229,229,141, 5, 32,213,151, 76, 34,145, 32, 49, 49, 17,198,198,198,224,176,217,160, 20,114,232,100, 82, 40,115, -179,193,212,168,193,213,233, 96,201,231,161,150,157, 29,106,219, 88,235,197,249,238,110, 80,233,196,247,178,195,133, 91,219, 55, - 6, 87, 32, 4,215, 68,136,217,129,247,139,223, 70, 57,192,234,159,244,161,181,118,114,114,250,243,212,169, 83,156,236,236,108, - 68, 68, 68, 68, 2,200, 7, 96, 2,128,138,139,139,187, 19, 19, 19, 51,160,120,213, 93, 85,171,197,126,185,116,233, 82,111, 15, - 15, 15,210,197,197, 69,144,149,149, 85, 75, 34,145, 80, 25, 25, 25,159,184,132,130,130,130,120,133,133,133, 50,138,162, 46, 23, -139,172, 42,227, 23, 45, 28,225,100, 20, 26,142,121,158,222,117,155,155, 90,183, 64, 46, 25,222,252,105,100,198,188,133, 35,156, -118,109,191, 32, 82, 26, 19,170,227,132, 46,181, 22,203, 72,169,239, 36,102, 26, 40,154, 43, 21, 26, 26,138,228,228,100, 36, 38, - 38,126, 34,168,166, 79,159,142,128,128, 0,189, 60, 90, 2,129, 96,211,218,181,107,157, 23, 44, 88,192, 41, 35,138,224,235,235, -139,252,252,124, 28, 62,124, 24,190,190,190,213,238,248, 63, 67,189, 30, 61,122,244,119,112,112,128, 88, 44,134,189,189, 61, 60, - 60, 60, 6,134,132,132,184, 0, 72,170, 97,187,159,237,237,237,189, 97,221,186,117,208,106,181,152, 50,101, 10,222,190,125,123, -238,237,219,183, 59,106,215,174, 61,111,217,178,101,118,118,118,118, 24, 53,106,148,128, 36,201, 97, 21,145, 88, 90, 90,250, 31, - 60,120,112,108,255,254,253, 25, 26,141,166,219,221,187,119,241,225,195, 7,168,213,106,144, 36,137,247,239,223,195,215,215, 55, -163,120,117,227,123, 61,236,154,188,106,213,170, 73,243,230,205,195,150, 45, 91,176,118,237,218,223,204,204,204,154,181,106,213, -170,245,218,181,107,177,116,233, 82,212,169, 83, 7, 86, 86, 86,141, 86,175, 94,221,120,209,162, 69,216,181,107, 23,214,172, 89, -243, 27,128, 99, 53, 41, 8,138,162,136,205,155, 55,183,220,190,125,187, 67,137,200, 98, 48, 24, 56,123,246, 44,194,195,195, 7, - 38, 36, 36,148,119,206, 1,123,123,251,233, 14, 14, 14,220,219,183,111, 11,235,212,169, 3,146, 36,181,197, 34,107,119,237,218, -181,231,188,127,255, 30,253,251,247, 71, 66, 66,194, 9, 0, 19,204,204,204,100,139, 22, 45,226, 27, 27, 27,155,201,229,242,255, - 84,231, 13, 38,131,152,184,105,253, 82,188, 8,143,199,165, 75, 28,188,120,241, 2,118,118,118,224,241,120,160,105, 26, 42,149, - 10,217,217,217,208,106, 84,104,222,180, 30,126, 63,178, 25, 89, 89,217, 0,131,168,112,202, 13,193, 32,198, 77,250,126, 40, 30, - 62,186,133,253,251, 15, 66, 42,149, 85,240,242,109,132,134,110,141,225,228,104,139,212,180, 84, 16, 12, 88,255,157,215,250, 15, - 31, 58, 44,125, 4, 65,159,240, 14,101, 97,110,110,190,227,204,153, 51, 86, 94, 94, 94, 76,153, 76, 6,138,162,208,213,195, 3, -243, 22, 44,192,213, 83,167,224,218,193, 7,132, 90, 8,146,175,223,170, 7,165, 66,142, 38,173, 59, 99,228,168,209, 72, 73, 78, -134,247,128,225, 80, 42,229,165,111, 24, 37, 30, 45,181, 90, 3,107,219, 90, 8, 10, 10, 98, 98,202,148, 87,216, 93,190, 83, 66, -167,225, 70,189,121,175,236,146,167, 8, 71,232,139, 0,104, 84, 26, 52,111,190, 26, 26,202, 10,182,206,211,161,213, 94, 65, 65, -246,221,162, 97, 12, 43, 47,164,165,164,128,193,228,196,214,180, 4, 41, 89,246, 87, 61,116,243,243,243,243, 19, 19, 19, 47,132, -134,134,142, 27, 54,108, 24,130,130,130,166, 1,192,176, 97,195, 16, 26, 26,138,196,196,196, 11,249,249,249,249,223,162,182, 29, - 28, 28, 6,117,239,222,221,167, 93,187,118, 8, 12, 12, 4, 77,211, 15,245,186,177,217,108,154,193, 96,128,162, 40, 16, 0,196, -121,121,120,251,246, 45,196, 57, 57,208,106,181,144, 73,165, 84, 99, 55, 55, 41, 77, 81, 38,213,177,167,236, 10, 67,148,179,234, -176,228,179, 26, 92,106,242,243,167,143, 83, 10,165, 82, 27, 11,115,139, 66, 46,151,171,147,228,229,229,191,138,141, 86,235,217, - 57,148, 32, 46, 38, 38,166, 89,122,122, 58, 82, 82, 82, 64,202, 10,193, 84,169,193, 80,201,209,179,115, 39, 24,131,134, 17, 40, -176, 41, 45,216, 76, 54, 10,139, 86,231, 85, 57,220,161, 43,243,146, 80, 34,178, 8,130, 40, 26, 46, 20, 8,192, 21,154,124,226, -225,210,167, 61,241,120,188, 83,231,207,159,119,112,114,114,194,250,245,235,225,236,236,220,200,209,209, 81,110,102,102,102,108, -103,103,135, 38, 77,154,160,115,231,206,184,113,227, 6,244, 40, 3,146,166,233, 62, 15, 31, 62, 92,252,248,241,227,145, 2,129, -128,152, 59,119, 46,171, 95,191,126,224,241,120,144,203,229,144, 72, 36, 56,125,250,116, 14, 69, 81, 37,139, 82,172,248,124,254, - 49,130, 32,146,100, 50,217,130,207, 9,127,255,181,185, 99, 86, 46, 53,133,150,242,135,122,122,215,109,222,195,187, 23,234,185, -246, 64, 15,239, 20, 0,216,108,201,250,224,243,243, 42,243,203,230, 38,196,177,160,155,183,215,120,120,246, 88,181, 92,122,111, -195,150, 67,121, 85,206,167, 35, 8, 2, 20, 69,125, 18, 59,232,243,239, 39, 76,152,128,179,103,207, 86, 89,142, 12, 6, 99,244, -140, 25, 51, 56,159,121,158, 33, 18,137, 48, 96,192, 0, 12, 27, 54,236, 19,161,101,109,109, 13,123,123,123,124,248,240, 1, 0, -196,122,182,171,121,147, 39, 79, 38, 20, 10, 5,166, 78,157,138,195,135, 15,195,199,199,135, 8, 9, 9,153, 7, 96, 65,117, 27, - 59,131,193,216,186,108,217,178,197,190,190,190,200,205,205,197,245,235,215,209,175, 95, 63,156, 61,123,214,230,250,245,235,155, -188,188,188,192,100, 50, 17, 24, 24, 8,146, 36, 43,141,245,197,225,112, 6,245,239,223,159,145,154,154, 10, 14,135,131,182,109, -219, 34, 45, 45, 13,114,185, 28, 34,145, 8,243,231,207,255, 40, 22,139,187,235,123, 31,113, 56,156, 5,243,230,205,195,153, 51, -103,224,231,231,119, 28,192,212,252,252,252,145,143, 31, 63, 62, 51,120,240, 96,136, 68, 34, 92,190,124, 25,107,214,172, 33, 38, - 76,152,128,189,123,247, 98,254,252,249,191, 21,123,157, 42,106,248,133, 89, 89, 89,102, 13, 26, 52, 64,102,102, 38,164, 82, 41, - 46, 95,190,108,123,227,198, 13, 23, 39, 39, 39,211,196,196, 68,221, 79, 63,253,196, 93,176, 96, 1,118,236,216,129,136,136, 8, - 4, 4, 4,160, 71,143, 30,100, 66, 66, 66,185, 94,178,226,144, 13,151,105,154,190, 45, 16, 8, 80, 88, 88, 88,114,223, 45,241, -243,243,243,245,247, 47,114,178,167,167,167, 99,226,196,137,227,131,131,131, 41, 47, 47, 47, 62,135,195,129, 82,169,148,253, 39, -123,109, 74, 71, 1,160,224, 82, 75,136, 91, 87,143, 32, 44, 50, 1, 97,145, 49,224,242,138, 38,193, 43, 20,114,180,110,222, 16, - 29,218,182, 71,122,134, 8, 39, 2,142,192,210,218,169,210,231, 8, 77,211,224,176,116,104,236,102,143, 83, 1, 7, 17,120, 61, - 24, 1, 39, 78,151,206,121, 99,177,216,104,213,186, 3,218,182,245, 64, 66,226,123, 28, 57,178, 31, 54,182,181, 12,131,131, 53, - 68,233,208, 97,217,191,159, 41,255, 30, 30, 30, 30, 76,169, 84, 10,165, 82,137,143, 31, 63,226,195,135, 15, 48,183, 48, 71, 66, -122, 18,186,243, 53,248, 72, 21, 32, 46, 50, 86, 71, 48,217, 17, 85,253, 96,127,207, 86,128,103, 43,204,153,236, 83,201, 43, 43, - 13,129,169,117,209,208, 13, 73,190,195,174, 93,100, 69, 66,139,212,105,239,220,186,125,183,253,228, 9,131,216, 65,119, 15, 67, -171,166,160,208,154, 65,166, 84, 67,166, 97,131, 97,214, 15,200, 9, 1,147,197, 67,199,150, 13,113,249,210, 13, 13, 77,106,131, -245, 46, 32,187,102, 32, 51, 99,202, 8,173,172,207,198, 29, 44,245, 30, 58, 44,237,120,117,186,179, 39, 79,158, 28,210,169, 83, - 39,190,151,151, 87,131,226,142, 83,115,242,228, 73,121,113, 48,204,234,226,147,104,240,246,246,246,173, 57, 28,142, 79,191,126, -253, 90, 79,154, 52, 9,175, 94,189,194,137, 19, 39,222, 52,108,216,240, 94, 70, 70,197, 43,178,153, 92,174, 88,154,149,101, 46, -116,113, 97, 89,152,152,164,223,184,126,189, 78,175,222,189,137,148,148, 20,136,197, 98, 40,149, 74, 68, 68, 70,210,108, 38, 51, -141, 48, 53,101,196,135,135, 51,152, 92,174,184, 34,111, 99, 57,248, 80,197,170, 67,255,154,122,183,106, 57, 88, 52, 88,227, 55, -179,158, 82,165,108, 86, 80, 80, 64,178,216,108,182,179,189,121,114,252,123,253,159,137, 42,149, 42,240,206,157, 59, 67,122,245, -234,197,123, 19, 21, 1, 50, 63, 31,234,124, 9, 56,148, 14,150,173, 91,130,169, 81, 1,106, 45,156, 26,211, 80,230,241, 17,242, - 44, 94,171, 82,169,170, 12,106, 88, 34,180, 24,159, 9, 3,174, 80, 8,158,137, 41,120, 66,225,231,130,161,170, 55, 57,126,159, - 62,125,122,118,236,216, 17, 52, 77,227,208,161, 67,208,104, 52, 92,141, 70, 3,181, 90, 13,141, 70,131,130,130, 2, 4, 4, 4, - 96,223,190,125,143, 1,252,166,199,229,147,198,198,198,131, 9,130,176,101,177, 88,114, 27, 27, 27,193,217,179,103, 75,195, 77, -180,106,213, 10, 38, 38, 38, 28, 20, 7,133,180,181,181,101, 31, 61,122,212,124,224,192,129, 15,202, 29,238,104,222,104,105, 61, -210,194,211,200,184,174,139,169,117, 11,212,115,237, 1, 0,232, 61, 96, 50,234, 53,172,141,130,156, 40, 23,165,226,195, 80, 14, - 75, 98, 17,187, 75,244,202,184,127,179, 73,178,172,251,111, 81,254,242,254,114, 59, 10, 6,131, 81,225,112,172, 62, 34,171, 72, -179, 48,108, 74,230,249, 0,128, 88, 44, 70, 70, 70, 6,226,226,226,224,238,238,142,220,220, 92, 56, 57, 57, 65,173, 86,163, 93, -187,118, 80, 40, 20,216,190,125, 59, 30, 61,122,244, 24,192,124, 61,126,195,216,213,213,117, 98,235,214,173,113,253,250,117,188, -120,241, 66,116,235,214, 45, 39, 15, 15, 15,184,184,184, 76, 74, 74, 74, 90, 89, 60,212,167, 47, 4, 30, 30, 30,115,125,125,125, - 17, 19, 19,131,153, 51,103,138, 83, 83, 83, 47,159, 59,119,110,234,154, 53,107, 24,222,222,222,200,200,200,192,214,173, 91,117, -143, 30, 61,218, 6, 96,125, 21,229,248, 58, 53, 53,213, 89,169, 84, 34, 55, 55, 23, 36, 73, 66, 46,151,227,198,141, 27, 8, 8, - 8,200, 44, 22, 89,239,244, 53,174,101,203,150, 77, 24, 12, 6,206,156, 57, 3, 0, 63,160, 40, 98,255,229,161, 67,135,138,126, -250,233, 39,167, 21, 43, 86, 96,218,180,105,208,104, 52,216,178,101, 11, 86,172, 88,113,173, 88,100, 85,246, 16,253,213,222,222, -126,250,204,153, 51, 27, 45, 90,180, 8,161,161,161,182, 47, 95,190,108, 27, 17, 17,129, 90,181,106, 65, 44, 22,179,172,172,172, -176, 99,199, 14, 44, 92,184,240, 34,128,156, 39, 79,158,140, 78, 76, 76,244, 7,176,181, 10,209,126,192,201,201,105, 58, 77,211, -180, 92, 46,255,224,231,231,183,117,227,198,141, 88,184,112, 33, 98, 99, 99,145,159,159, 15, 19, 19, 19, 98,217,178,101, 19,127, -248,225, 7, 76,153, 50,133,150,201,100,251,254,211, 29, 53, 77,235, 32,151,196, 64,167,178, 64,171,230,238,104,213,172, 46,110, -221, 13, 3, 0,244, 28,238, 1,185,172, 16,199,143, 31,194,187,119,111,193, 98,179, 97,110,105,175,143, 39, 16,234,130,215,200, -211,100,160,151, 87, 91,244,243,238,142,223,126, 63, 11, 82,171,193,212,201, 99, 33,201,203,195,239,191, 31, 65, 66,226,123,176, -216,108, 88, 89,255,253,129, 80, 43,211, 34,255,120,161,165,199,240, 19, 40,138,130, 72, 36,194,203,151, 47,145,148,148, 4, 62, -159, 15, 5,169,163,246,223,121, 68, 17, 4, 39,141,162,233,199, 52, 89, 26,165,248, 75, 14,157, 78, 84, 38, 98,173,153,133,133, - 5, 87,165, 82,128, 36,181,101,122, 21, 2, 32, 0, 14, 11,112,112,172,135,212,148, 84, 90,169, 84,222,175,244, 13, 74,165,220, -241,199,229,243,190,157,187,120, 88,247,235,185, 14,151,175,172,134,164,160, 0, 74, 13, 27, 50,165, 6,114, 37, 96,110,233,134, -118,205, 91, 32, 61, 93,140,168, 23, 33, 82,150, 74,174,207, 68,209,183,187, 87, 77,118,157, 60,103, 41,140,235,116,129, 42,238, - 50, 40,105,102,169, 71,203, 72,104, 1,203,218,141,145, 39, 83,225,124,112, 24, 80,141, 84, 47, 89, 89, 89,114, 38,147,121,210, -215,215,119, 75, 88,216, 75,103, 0, 8, 11, 11, 75,203,200,200, 88,158,149,149, 85, 93,159,116, 73, 52,120,194,200,200, 56,172, - 97,195,134,233,109,219,182, 53, 27, 58,116, 40,172,173,173, 17, 17, 17, 1,127,127,255,215, 26,141,102,105, 72, 72, 72,165, 67, - 61,106,181, 90, 20,118,229,138,105,247,239,191, 55, 95, 58,112,224, 86, 95, 95,223, 29,235,215,175,103,187,186,186, 18, 90,141, - 6,209,209,209,244,169,147, 39,181,251, 86,172,216,206, 21, 8, 88,207,255,248,131, 77,170, 84,162,255,239, 70,236,228,228,228, -233,209,173,107,227,109,191,238,130, 82, 33,197,179,208,107,144, 72,178,113,240,208,165,198, 78, 78,180,167, 72, 36, 10,209, 87, - 0, 31, 59,118,108,113,135,214,173, 91,215,175, 85, 11,209,201, 73,224, 82, 58,112, 72, 18, 76,141, 10, 12, 82,137, 90,205,104, - 16, 12, 19,100,124, 44,192,198, 51, 23, 98,244, 17,198,141,190, 27,132,245,105,249, 32, 8, 2,191,116,106, 6,174,137, 16, 28, -129, 16,179,255,188, 91, 42, 12, 2,215,175, 0, 87, 40, 68,131, 14,122, 5,132,151,223,187,119,239,101,116,116,116,187,102,205, -154, 97,241,226,197,248,240,225, 3, 40,138, 66,102,102,166, 50, 35, 35, 67,148,157,157,253, 1, 69,241,127, 14, 87,209,137,149, - 85, 29, 78, 33, 33, 33,165,195, 13,193,193,193,112,116,116,132,153,153, 25, 10, 10, 10, 48, 99,198, 12,243, 31,127,252, 17, 0, -240,242,229, 75,148, 21, 40,159, 35, 58, 44,110, 91, 94, 33, 45,161,165,225, 67,115,201,240,230, 61,188, 83,209,123,192, 36,220, - 14,252, 13,119,111,221,129, 37,235, 67, 18, 4,133, 55,114,146,114, 10,210,100,174, 7, 26,183,153,202,204,144,221, 58, 48,119, -208, 27,166,131, 3,117,126,197,254,130,188,202,108,117,117,117,133,157,157, 93,233, 28, 45, 22,139,133, 41, 83,166,128,166,105, -125, 69, 86,113, 95, 67,101, 43,149, 74, 59,196,253, 47,128, 0, 0, 32, 0, 73, 68, 65, 84, 35, 35, 35,124,252,248, 17,239,223, -191, 71, 66, 66, 66,105,232, 0,138,162,180, 75,150, 44, 97,207,157, 59, 23,251,247,239,199,253,251,247, 31, 3, 88, 7, 64,223, -151,181,177,163, 70,141, 50, 81,171,213, 56,125,250, 52, 9, 96,192,249,243,231, 95,182,107,215,142,213,183,111, 95,147,189,123, -247,142, 45,174, 35,189,133,150,169,169, 41, 71,163,209, 96,239,222,189, 72, 77, 77,245, 4, 16,247,252,249,243, 3,163, 70,141, -218,215,172, 89,179,134, 49, 49, 49,111,165, 82,233,108, 0, 81, 85,145,101,102,102, 78,110,219,182,237,121,138,162,234,244,234, -213, 75,240,235,175,191,154,198,199,199,195,217,217, 25, 20, 69, 69,163,154, 41,172,222,190,125, 27,151,145,145,209,184,123,247, -238,184,113,227,198,102,157, 78,183, 9,192,150, 89,179,102, 57, 37, 39, 39,163,117,235,214,176,180,180, 68,124,124,124, 97, 70, - 70,198, 62, 20,165, 36,170,202,133,155, 8, 96,249,129, 3, 7, 90, 28, 56,112,192,199,210,210,178, 99, 68, 68, 4, 30, 62,124, -136,109,219,182,225,199, 31,127, 68,215,174, 93,177,120,241,226, 28, 0, 62, 0,200,196,196, 68,189,226,230,149,120,182, 0,160, - 77,155, 54,233,254,254,254,152, 58,117, 42,125,244,232,209,157, 39, 79,158, 92, 48,118,236,216,210, 62,112,226,196,137,244,137, - 19, 39, 38,162, 40, 13,211,127, 18, 90,141, 70, 13, 83,203,122,144,230,165, 32, 59, 53, 20,124, 19,123,120,247,104, 9,185, 66, -141,171,127, 92, 68, 84,116, 36, 24, 12, 6,236,236,107,193,220,194, 26,111,222,188, 5, 42, 95,109,172,213,104, 52, 48,177,168, - 11,105,126, 42,212, 89, 97, 48, 22,218, 98,210,247, 67, 33, 87,104,112,233,242, 69,196,196, 68,129,201,100,194,222,161, 22,204, -204,139, 56, 9,186,242, 21,204, 6, 0, 40, 39,158, 86,149, 66,139,201,100,222,187,121,243,230,136, 14, 29, 58,176,222,189,123, -135,119,239,138, 94,110, 36, 18, 9, 73, 64,119, 33, 43,250,143, 49,149,156,222, 11,197,171, 51,202,230, 46, 20,154,152,136,226, - 95,199,217, 73,114, 51, 17, 25,254, 8,239,222, 68, 35, 41, 33, 14, 26,141, 18, 76, 6, 3, 12, 38, 3,117,235, 53,197,163,199, -161,106, 37, 73,134, 86,196, 89,100, 71, 66,161,192,214,117,244,134,245, 43, 3, 23, 46, 93,107, 60,114,196,126, 68,197,191,130, -148,180, 7, 77, 3,246, 86, 2,180,170,191, 12,162,244,108,156,249,109,175,156,210,104,198,125, 22, 67,235, 11, 78, 0,176,203, - 65,147,125,135,126,155,114, 56,224,212,218,165,115,103,216, 13, 30, 54, 14,220,220, 87,208,166,135,161, 94,187,126, 32,120,230, -184, 30,116, 23, 33, 47, 95,101, 82, 58,122,173,157, 24, 71,223, 84,193, 89, 22,121,121,121, 79, 62,126,204,112, 46, 19, 5,222, -153,199, 51,170,106,117,220,231,156,159, 68,156,103, 50, 25,109, 54,108,216,160,181,179,179,211,196,196,196, 96,255,254,253, 84, - 88, 88, 88, 16,131,193,216,157,145,145,161,172,138,211, 70,171,141, 60,229,231,215,164,253,176, 97,244,152,185,115,229,224,241, -230,109,253,229, 23,191,108,137,196,145,166, 40,216, 88, 90,166,109, 93,177,194,127,196,168, 81,146,216, 71,143,140, 67,175, 92, - 49,230,146,100,152, 30,118,126, 11, 84,200, 41, 18,137, 66,238,223,127,136,227,135,127,133, 70,163, 66,134, 40, 25, 0,144, 35, -206, 71, 21, 34,235,115, 78, 90, 46,151, 15,251,225,199, 31,159,254,176,112,129,125,183,158,189,144, 18, 25, 1, 77,110, 54, 8, - 45, 9, 54,193,130, 44,139,143,172, 76, 41,150,159, 56,151, 37,149,203,135,149,211, 73,148,107,103,137,199,138,103,106, 2,142, - 64, 8,174,208,228, 19, 47,150,145,169, 41,184, 2, 33, 88, 92,110,121, 19,184,191,224,148, 74,165,195, 71,140, 24, 17,245,252, -249,115,139,169, 83,167,162,115,231,206,225, 10,133,194, 11, 64, 97, 77,203,147,162, 40, 81,183,110,221, 24, 4, 65, 8,199,141, - 27,199,203,206,206, 46,141,172, 46,149, 74,113,227,198, 13,184,187, 23,173,234,143,141,141, 69,211,166, 77, 43,228,156,182, 60, - 70, 4, 96,253,194, 17, 78, 91,159, 70,102,204, 3,176,185, 94,195, 90,184,123,235, 14, 30,222, 13,245,235,216,140,218,245,221, -184,118, 63,241,189, 70, 45,109,220,102, 42, 83,104,234,128,223, 47, 93,100,198,133, 29,217, 40,151, 71, 55,192,254,203, 75, 42, -178,147, 32, 8,208, 52,253, 69, 40, 7, 38,147,137,147, 39, 79, 86,247,218,207, 29, 62,124,120,214,204,153, 51, 57, 25, 25, 25, -120,253,250, 53,100, 50, 25,140,140,140,112,235,214, 45, 18,192,222,147, 39, 79,222, 58,121,242,100, 95, 20,173, 38, 10,174, 78, -251, 20, 8, 4,190,222,222,222,120,253,250, 53, 94,188,120,113, 17, 64, 84,120,120,248,197,119,239,222,141,238,218,181, 43,126, -251,237, 55, 95,133, 66,113,184, 58,156, 20, 69,149,141,153, 84,146,241, 33, 82, 42,149,118, 12, 13, 13,173,110,189,103,136,197, -226, 46,197,194, 58,213,206,206,206, 52, 50, 50, 18,181,107,215,134, 70,163,233, 80,221,182,148,159,159,255,235,238,221,187,143, - 78,158, 60, 25, 63,253,244,211,184,115,231,206,141,251,238,187,239,208,191,127,127, 28, 59,118, 12, 81, 81, 81,155,161, 95, 90, -177,242,174, 61, 10, 64,148,157,157,221,156, 90,181,106, 97,219,182,109,136,142,142,246, 95,191,126,253,138,168,168, 40,184,187, -187,243,226,226,226,200,154, 60, 67, 0,192,212,212,212, 84,171,213,226,202,149, 43,207, 0, 44, 28, 55,110,156,237,142, 29, 59, -124,132, 66, 33,114,115,115, 21, 49, 49, 49, 99, 1,252,241,159,126,214,209, 4,177,106,234,180,121, 7,166, 77, 29,107,212,182, - 77, 43,200, 11,210,160,144,102, 66, 94,248, 17,187, 15, 7,129, 32, 24,176,177,113,128,173,189, 51,146,147, 83,240,248,218,117, -181, 76,174,216,193,213, 82,155, 43,231,156, 91,196,217,186,136, 83, 46,203,130, 66,154, 85,202,105,107,235, 88,204,153,140, 71, -161,215,149, 10,153,236, 87, 53, 77,252,252, 55, 95,251, 63, 25,213,203,117, 88, 22, 18,137,100,254,140, 25, 51,188,150, 47, 95, -110, 69,146, 36,211,210,210, 18,201,201,201,228,133, 11, 23,114,165, 82,233,252,154, 88,195, 98,179,163, 92,221,220,189, 6, 15, - 30, 76, 14, 26, 52,144, 51,126,114, 95,150,141,173, 45,242,243,196,120,243, 58, 2,241,175,194,224,234,222, 18,107,214,111, 7, -204,205,171, 76, 36, 89,156, 86,103,192,186, 31,150,156,237,226,217,199,212,189,105, 75, 78,171, 6,102,208,104, 73,164,165,165, -225,143, 43,145,154,152,151, 15, 11, 40, 82, 61, 90,158,163, 95, 10,158, 16,128,132, 24, 7,155,217,106, 78,110,218,186,123,241, -222,131,199,151, 46,159, 55, 85,208,213,163, 55,162,239,252,134,139,129,103,101, 74,149,122, 43,135,137, 95, 98,196,144,191,169, -102, 25, 40,149, 74,205,231,253,169, 82,169,212,124,109, 77, 31, 59,118, 12,153,153,153,234, 15, 31, 62,220, 36, 73,242, 92, 37, -201,158,191,192,110, 64, 61, 84,165,186,243,131,135, 71,223, 31,110,221, 50,154,184,108,153,122,220,248,241, 75,160, 82,105,192, -229,210, 44,129,128, 1, 30,143, 29,251,232,145,241,206, 89,179, 44, 9,181,250,246,241, 74,194, 6,148,131,111,190,234,176,196, -163,213,189,123, 87, 76,156,186, 16,138, 50, 30,173, 39, 47,222, 64,165,129,222, 30,173, 98,164,124, 72, 77,237, 56,111,213, 15, -151, 70,123,247,108,220,172, 78, 93,158,141, 75, 93, 8,237,237, 33,206,206,198,163, 23,241,218,245,103, 47,197, 20,139, 44,189, -226,202, 80, 20, 85, 52,201, 29, 64,207,249,203, 65, 48,153, 64,113, 24,135,146,149, 67, 46,237, 58,131, 96,177,160,163, 41,168, - 84, 42,125, 38,253,165,189,127,255,126,248,184,113,227,130, 3, 3, 3, 25,222,222,222,173, 46, 95,190, 76,125, 77,219, 81, 40, - 20, 29, 1,192,200,200, 40,201,220,220,220,105,242,228,201,208,106,181,144,203,229,200,207,207, 71, 90, 90, 90,222,228,201,147, - 53, 0, 96,108,108,204, 29, 49, 98,132,105, 85,156,219, 47,136,148, 11, 71, 56,237,178,100,125,240, 41,200,137,114,177,100,125, - 72,234,216,140,218,181,253,130, 72,105,234, 40,219,144,243, 33,228, 77,134,236,214,129,223, 47, 93,100, 78, 24, 58, 92,231, 44, -124,235,103,100, 75, 95,168,138,151, 32,136, 47,130,147,234, 41,178, 62, 65, 97, 97,225,138,213,171, 87,247,151, 72, 36,206,125, -251,246,229, 52,110,220, 24, 79,159, 62, 69, 96, 96, 32,249,228,201,147, 84,153, 76,182, 18,128, 18, 64, 80, 77,202,212,205,205, -205,133,197, 98,149, 12,165,237, 41,254,120,207,229,203,151, 71, 79,157, 58, 21,117,235,214,109, 18, 23, 23,199, 67, 53,238, 35, -154,166, 75, 71, 25,190, 37, 8,130, 72,216,185,115,167,147,189,189, 61,113,227,198, 13,146,201,100,214,196,115,115,236,200,145, - 35, 29,180, 90,237,180,233,211,167,195,211,211, 19, 36, 73,226,196,137, 19, 56,114,228,136,190, 34,171, 82,188,121,243, 38, 44, - 53, 53,181,219,146, 37, 75,176,109,219,182, 21, 75,150, 44, 65,106,106, 42,222,188,121, 19,241, 53,188, 5, 5, 5,138,148,148, - 20,126,167, 78,157,218,198,196,196,196,120,121,121, 53,157, 58,117, 42, 54,111,222, 76,223,191,127,127, 4,128, 27,255, 31,189, -119,252,187,220, 0,182,142,117,107,253,134, 95,127,108, 80,223,101,230,148, 73,163,152,110,174, 77, 33,203, 79,131,149,181, 29, -156,107,213, 67,118, 86, 14,110,222,188,161,203,201,201, 59,166, 99, 16,235,222,189,203, 77,255, 26, 78, 39,231,122,200,202,202, -194,245,235,215,117,121,146,130, 67,208, 50,214,199, 37,231,101,194, 0,125, 60, 89,211, 81, 73,148,248,202, 96,109, 97, 97,113, -218,212,212, 52,211,212,212, 52,211,194,194,226, 52,160,215,234,131, 94,101,158, 14,204, 79,182, 17, 35,140, 96,100,212, 17, 44, -214, 34,115, 11,139, 27,102,102,102,226,238,221,187,171, 15, 28, 56,160,140,139,139,165, 68,162, 84,218,204,204, 44,191,244,248, -242, 56, 63,131,133, 69,125, 19,129, 67,211, 31,205,156, 91, 61, 18, 58, 52, 41, 20, 58, 52, 41, 52,115,110,249, 88,224,208,100, -173,133, 69,125, 19,189,236,172, 0,245,108, 97,227,106,141,189,238, 54,132,194,213, 26,123,235,217,194, 70,239,107,175,124,216, - 79, 71, 16,208,161,104, 25, 54,106,192, 89,194, 65, 49,153,204,227,206,206,206, 14,168, 94,192,186, 47, 56,199, 3,117,199,243, -120,211,206,251,249, 77, 76,186,127,127, 92, 65, 98,226,152,252,132,132, 81, 17,103,207,142,222, 51,122,244,248, 49, 60,222,244, - 17, 64,125,125, 57, 29, 28, 28,252,195,194,194, 2,245,221,202, 8, 47,189,203,179,126, 61,167, 91,222,189, 58,208,190, 51,134, -209,190, 51,134,209,222,189, 58,208,245,235, 57,221,250,138, 58, 34,152, 76,166, 15,159,207, 63, 45,224,243,163, 5,124,126, 52, -159,207, 63,205,100, 50,125, 80,249, 28,170, 79, 56,173,172,172, 94,218,217,217,101, 86,103,179,182,182, 14,175,134,157, 99, 92, - 92, 92, 82, 25, 12,198,246,106,222,211,149,113,186, 26, 27, 27, 39, 8, 4,130,180,178,155,177,177,113,217,192, 80, 86,124, 62, -255,170, 64, 32,216,161, 15,231,207,171,154,254,248, 56,104, 78,212,207,171,154,254,248,249,119,115,135, 88, 76,126, 26,188, 78, - 60,119,136,197,100,125,236,180,181,181,189,111,107,107,155, 97,107,107,155, 97,103,103, 87,233,102,109,109,253, 82, 15, 78, 35, - 19, 19,147, 29, 38, 38, 38,153, 2,129, 64, 39, 20, 10, 51, 5, 2,193,118,148, 9,109, 81,211,242,100, 48, 24,155,155, 52,105, -162,100, 50,153, 71, 63,251,106, 91,131, 6, 13,148, 44, 22,107,107, 53, 57, 77,187,118,237,170,139,140,140,164, 61, 61, 61,105, - 0, 22,223,176,222,237, 45, 44, 44,110,152,154,154,166,152,152,152,236, 6, 32,168, 33, 39, 1,192,199,201,201, 41,162, 71,143, - 30,114, 39, 39,167, 80, 0,131,191,161,157,253,135, 12, 25, 66,165,164,164,208, 52, 77,211, 41, 41, 41,244,144, 33, 67, 40, 20, - 5,138,252,154,103,242,170, 89,179,102,209, 79,158, 60,161,159, 60,121, 66,135,134,134,210,253,251,247,167, 0,124,255,149,207, -121,124,171,107,111, 92,207,186,126,163,134, 22,231,198, 14,247,160,130,254,216, 78,175, 89, 57,147,238,237,217,148,118,111, 96, -113,201,213,213,202,245, 91,112,254,184,114, 6,221,171, 91, 19,170,113,125,139,179,141,235, 89,215,255, 15, 95,251,191,209,171, -133,191,123,194,217, 95,174,197, 79,197, 82,249,112,116,116,132, 88,220,193,136,197,242,224,241,120, 94, 12, 38,243, 94,110,118, -246,130,226,215, 45,221,127,202, 85, 91,105,135, 94, 31,220, 74, 82, 18,212,132,243,147,137,236, 53,228,172, 14,135, 94,156, 21, - 37,149,166, 84,170,116, 43,146,124,185, 27,149,150,193, 39,156, 78, 78, 78,211, 40,138,114,209,215, 32, 6,131,145, 36, 18,137, - 14,215,164, 60, 27, 54,108, 72, 23, 15,111, 19,223,178,222,255,142,182,244,191,196,249,251,175,205, 29,221,155, 55, 90, 26, 29, - 22,183,173,120, 88,177, 20,107,231, 90,152,120,244,232,190,250,209,221,251, 63,173,221, 45, 41,252,127,190,118, 6,244,156,211, -246, 13, 56, 75,130,132, 86,139,147,205,102, 31,104,223,190,253,180,167, 79,159, 30,213,233,116,211,255, 71,219,103,127, 38,147, -185,196,205,205,173,213,155, 55,111, 34,116, 58,221, 54,148, 19, 40,178, 6,118,174,116,113,113,153,205,225,112,120, 82,169, 84, -146,158,158,190, 26,192,185,255,182,242,108,220,208,178, 45, 77,151, 6,221,222,248,250,125,238,243,111,198, 73, 83, 58,138,102, -110,120,147, 40, 14,255,127,168,247,127,155,200, 58,244,159,248,225, 94, 6, 78, 3,167,129,211,192,105,224,252,230,156,198,134, -242, 52,112,254, 11, 57,255,149, 96, 25,138,192, 0, 3, 12, 48,224, 31, 7,133,161, 8, 12, 48,224,191, 14,101,189, 90,165,222, - 44,162, 18, 85, 90, 29,151, 96, 77,148,237, 29, 3,167,129,211,192,105,224, 52,112, 26, 56, 13,156,255,115,156,255, 86,145,117, -168,146,253,191, 13, 6,183,170,129,211,192,105,224, 52,112, 26, 56, 13,156, 6,206,255, 5,161, 85,238,190, 97,232,208,128,191, - 29,187,134,194, 9, 0,230, 93,134,232,239, 56,222, 0, 3, 12, 48,192, 0, 3,254,159,113, 8, 21, 12, 29,254, 55, 8, 45, 71, - 0, 29, 81,148,248, 54, 30,192, 67, 0,146,175,224,179, 6, 48,138, 32,136,145, 0, 64,211,244,121, 20,173, 26,201,209,231,100, - 35, 35,163, 76,165, 82,105, 91,252,127,150, 82,169, 44,155,203,128,192,151,171,217,232, 50, 91,185,112,113,113,201, 84,169, 84, -182,122,252,124, 62, 77,211, 81, 12, 6, 35, 90, 40, 20,222,125,243,230, 77, 96,117, 46,220,203,203,107, 34,147,201,220, 8, 0, - 58,157,110,213,189,123,247,142,255,141,245,214,161,150,163,253,111, 26,173,134,204,204,206, 93,141, 47, 3,249, 1, 0,246, 14, -128, 63, 65, 98,105,241,255, 91,231, 4, 86, 30, 71,167,186,199, 87,130,182,108, 54,219,215,206,206,174, 95, 90, 90,218, 75, 0, -203,128,170,163, 26,215,170, 85,235,123, 22,139, 53, 78,167,211,213,103, 50,153, 9, 36, 73,158, 76, 77, 77, 13, 48, 60, 67, 12, - 48,192, 0, 3, 12,208, 67,108,125,129,106, 9, 45,119, 43,216,211,128, 15, 8,244, 6,141,219, 4,112, 38, 94,140,143,250,158, -255,157, 59,180, 90,178,232, 55, 57, 12,232,110,188,103, 28,234,215,175,159,243,220,185,115,209,185,115,103, 60,125,250,180,211, -177, 99,199, 38,159, 59,119, 46,138,162,168,123, 0,158, 2,122,133, 82, 16,160, 40, 78,203,216,126,253,250,245,218,184,113, 35, -179,105,211,166, 80, 40, 20,184,127,255,190,199,214,173, 91,119, 60,126,252,248, 14,128, 83,197,130,160,194, 4,120, 74,165,210, -182, 36, 25, 39, 65, 16,182, 35, 70,140,120, 94, 86, 92, 21,231, 87, 35,104,154,126, 66, 16, 68,168, 78,167,123,122,225,194,133, - 84,119,160,195, 12, 23,206,133, 5, 73, 26,231,207, 57, 85, 42,149,237,149,159, 55,129,197,227, 65, 85, 88,128, 78,147,254, 18, -189,183,127, 92, 10,130, 34,193, 4, 45,241,218,176, 35, 10, 64,116,122,122,122,148,167,167,103, 82,117,107,152,201,100,110,188, -121,243,166, 3, 77,211,240,246,246,222, 8,224,239, 18, 90,188,142,109, 91,222,187,122,241,180,145, 52, 55, 19,125, 7,143, 62, -249, 54, 53,107, 34,128,139,159,136,166,126,176, 35, 8, 44,157,181,233, 20, 19, 0,246,173, 28,187,108,123, 31,236, 90, 24,132, -143, 0,188,138,197, 15, 0,252, 12,224,222,222,126,176, 3,176,124,214,166, 83, 4, 0,236, 95, 57,118,233,222,126,216, 57,231, - 70,181,195, 86,204,158, 56,113,226,174,141, 27, 55, 50, 29, 28, 28, 32, 18,137,250, 54,105,210,196,173,160,160,160, 9, 42,153, - 68, 92,183,110,221,179, 93,123, 12,172, 55,108,164, 15,223,198,218, 2,233, 25, 57,166,103, 79, 31,157,193,124,114,191,223,135, - 15, 31, 70, 27,158, 33, 6, 24, 96,128, 1, 6, 84,128,154, 71,134,111,237, 0, 99,153, 6, 67, 88, 76,226,251, 46,109,155,244, - 28,243, 93, 87, 70,147,198, 13,241, 42, 54,174,207, 31,119,159,109,101,132,198, 6,147, 58, 58, 64,192,193,149,240,140,202, 87, -194,104, 73,176,130,174,156, 42,234, 9, 39,143,101, 62,127,254,188, 97,155, 54,109, 74, 83,195,244,236,217, 19, 61,123,246, 36, -246,237,219,215, 50, 40, 40,168,229,145, 35, 71, 52,193,193,193,191,161,242,248, 40,190, 13, 26, 52,216,186,107,215, 46,158,167, -167, 39,120, 60, 94,233, 23, 66,161, 16, 3, 7, 14,196,192,129, 3,153,233,233,233,222, 87,175, 94,245,254,249,231,159,213,201, -201,201, 75,240, 87,148,230, 74,177,122,245,234,182,229,124,124,147, 32,136,247, 36, 73, 70,180,108,217, 50,213, 13,104, 56,227, -187,206,183,103,119,113, 21, 44, 88,113,172, 92, 30, 22,151,139,223, 39, 22,245,213,101,133, 86,210,221, 27, 16,154,154,136,249, - 38, 38, 81, 0,162, 1, 68,209, 52, 29,157,144,144, 16,215, 8,104,217,209,130,241,219, 81, 9,213,162, 26, 98, 11,169,169,169, - 48, 51, 51, 51,246,244,244,204, 32, 8, 98,237,253,251,247,191,245,132,188, 14,107,151,206,230, 72, 62, 68,225,227,235, 39, 88, - 52,210,131,191, 96,247,159, 63, 41,213,218,139,149,157, 68, 16, 12,198,207,161,148, 31,138,146,241,174, 22,139,197,158, 0, 96, -101,101,197, 5,112,111,251, 51,124,183,176, 11,241, 53,177,221, 56, 76, 38,115,239,177, 99,199,166,126,255,253,247, 69,169, 35, - 30, 61,130, 80, 40,196,250,245,235,235, 46, 94,188,216,159, 36,201,249, 21,121,178,186,246, 24, 88,111,231,182,159,154, 20,230, -230,171, 14,238, 61,247,194,177,153, 59, 99,150,239, 98,147,157, 26,149,189, 78,167,251,222,224,217, 50,192, 0, 3, 12, 48,160, - 58,222,172, 42,133,150,155, 53,142,183,110,230, 58,106, 76,127, 15, 94,243,102, 77,193,225,253, 21,186,165, 77,219,182,104,211, -182, 45,195, 79, 90,216,251,249,139,176,222, 23,130,158,170,228,218,228,115,111,114, 48, 81, 95,171, 74,146,210,110, 28,108,215, - 67,150,151,101, 4, 0, 2,115, 91,229,202, 43, 31,239,118,233,210, 5,206,206,206,156,224,224,224, 41, 85, 8,173,149,241,241, -241, 60, 38,179,242,120,168,142,142,142, 24, 49, 98, 4,220,221,221,185,221,187,119, 95, 89,145,208, 50, 50, 50,202, 34, 8,194, - 22, 0, 44, 45, 45,117,107,215,174,141,160,139, 0, 0, 52, 77,211, 79, 24, 12,198, 83,138,162,158,253,249,231,159,105, 77, 0, -219,190,109,220, 31,206, 30, 63,130, 79, 95,216, 81,161, 72, 80, 22, 20,148,251, 57, 95, 40,200, 54, 22, 8,162,120,124,163,104, - 20,229,242,138,118,118,118,142,107, 2, 56,183,119,119, 9,218,183,112,172,201,209,233, 63, 85, 89,150,173, 91,183,118,107,209, -162,133,145, 78,167,131, 76, 38,195,254,253,251,205,140,141,141,205,250,245,235,183,166,108, 3,104, 12, 52, 31,238,200,156,190, - 46, 93, 55,167, 6, 13,201,188,107,167,182, 31, 70, 12,236,103,218,182, 99, 87,188,189,119, 2,185,185,133,200,207,147,130,162, -168, 47,226,250,204,185,129,204,189, 3,176,117,223,138,177,203, 9, 6,131,104, 57,116, 25, 6,217,231,207, 59,112,224, 64, 44, - 0, 54,151,203, 45,219, 14, 29,141,157,154,109,109,216,167, 43,246,175, 26, 15,154,162,104, 0, 91,171,225,205,178, 53, 49, 49, -249, 35, 40, 40,168, 67,187,118,237,240,244,233, 83, 36, 38, 38, 98,246,236,217,234, 57,115,230,112, 38, 76,152, 64, 44, 90,180, -104,238,207, 63,255,124, 1,192,227, 47,110, 4, 22,107,220,224, 97,163,185,210,188, 2,165, 90,165, 81, 91, 90,155, 83, 42,153, - 82,158, 35, 41, 80,142, 30, 59, 77, 29, 27,254,108, 28,128, 47,132,214, 87,150,167, 1, 6, 24, 96,128, 1,122,128,166,233,118, - 0,108, 0,100, 19, 4,241,162,236,126,241, 33, 37,217, 90, 62,223,207, 65,209,168,148, 85, 25,186, 28, 20, 77,247,177, 1,160, - 3,240,156, 32, 8,201, 87,154, 88,249, 42,195,192,192, 64,186,236,223, 50, 66,139,166,105,154,214,138,223,211,170, 55, 55,104, -249,139,195, 95,108,138,216,139,116,198,243,115,244,179, 83, 63,210,110,214,149,103, 97,255,206, 29,218,177, 45, 64,207,106, 7, -122,126,119,115,229,243,231,207,131, 41,138, 10,244,235, 10,154,126,117,138,166, 95,157,162, 23,118, 2,125,225,194,133,155,254, -254,254,129, 1, 1, 1,129, 0,170,154,167,148, 89,248, 34,148,126,102, 11,186, 34,196,199,199,211, 7, 14, 28,160, 87,172, 88, - 65, 31, 61,122,148, 70, 21, 17,212,189,189,189,239,199,196,196,208, 19, 38, 76,136, 64, 37,129, 1, 27, 3,130,113,117,237, 95, -171,206,238,208,168,191,111, 78, 75,186, 25,149,123,253, 14, 14, 14,159,216,179,217,213,158,222,211,222,149, 62,222,187,205, 71, -154,166,111,210, 52,189,153,166,233,209, 52, 77,187, 3, 64,107,192,116,176,131,213, 59,229,185,157, 10,245,244,142, 85,230,189, -107,221,186,181,219,146, 37, 75,114,213,106, 53,157,148,148, 68, 31, 60,120,144,190,125,251, 54,125,229,202, 21,218,195,195, 35, -189,140,189,118,147,221,235,100,170,143,172, 83,213,164, 21,177,153,204, 61, 47,110, 95,160,223, 61, 60, 79, 63, 63,227, 79,159, -252, 97, 12, 61,119,112, 7,141,169, 49, 79, 9,160, 71, 69,231,205,233,130,134,238,117,109,222, 36, 39, 39,211, 26,141,134,158, - 52,105, 18,237,237,237, 77,247,233,211,135,238,213,171, 23,221,179,103, 79,186, 71,143, 30,244,221,187,119,233,244,244,116,186, - 87,215, 54,178, 1,141,209,182, 26,166, 53,171, 83,167,206,199,164,164, 36, 90,163,209,208,193,193,193,244,137, 19, 39,232,224, -224, 96,218,207,207,143, 6,112,124,214,172, 89, 10,137, 68, 66,123,123,123,167,161,156,168,241,117,234,212,137,139,121,147,154, -186,125,211,225,187,191,239, 57,125,247,210,133,219,119,255,184,245,252,218,149, 91, 47,206, 61,139, 76,184, 82,167, 78,157,184, -114,234,255,171,202,211, 0, 3, 12, 48,192,128,170,181, 72,177,208,234, 95,236,236,232, 79,211,116,175,207,246,251, 23, 11,167, - 47,246,253,252,252, 86,148,221, 47, 57,198,207,207,111, 5, 0,186, 83,167, 78,167,105,154,110,248, 13,204,159, 94,206, 86,181, - 71,171, 4,100,218,115,112, 92,251,129,173,211, 66,155, 19, 15, 42, 47, 25, 16,216, 67, 65, 8, 33,206, 72,198,235,135, 23, 43, - 79, 36, 81,140,235,241, 96, 3, 8,142,139,139,195,235,215,175,145,154,154, 10, 62,159,255,197,113,143, 30, 61,130,177,177, 49, - 28, 28, 28,244, 83,186,234, 79,251,185,168, 54,117, 32,236,228,137,156, 49, 51, 17, 28, 28,140,172,172, 44,112, 56, 28,112,185, - 92,144, 36, 89, 37, 31,131, 81,148,241,183,196,139, 85,222, 49,158, 0,139,103, 41,188,186,111,205,124, 23,198,147, 64,182, 34, -229, 29,210,149, 58,253, 60,121, 66, 1,248, 2,126,134,177, 49,191,116,184, 16, 64, 52, 65, 16,111, 91, 3,108,129,208,232,234, -111, 27, 22,217, 51,195,131,141, 20,239,162,202,229,232,213,171,215, 12, 0,107,104,154,206,107,209,162,133,221,198,141, 27, 45, - 68, 34, 17, 94,189,122,133,115,231,206,101,147, 69, 23, 74,208, 52,189, 14, 0, 58, 2, 70,230, 54,230,183,246,252, 56,223, 4, -247,206,114,107,210,138,204, 26, 15,188, 54,124,194,172, 57,187,230, 15,132,172, 80,129, 83,183,195,113, 51,236,253, 32, 0,143, - 80,201,188,183,189,143,241, 14,200,238, 57,108,216,176,136, 7, 15, 30, 88, 31, 57,114, 4, 36, 73,150,187, 29, 57,114, 4,119, - 30,134,205, 3,240, 82, 79,179, 28, 93, 92, 92,238, 60,123,246,204,134,207,231,227,246,237,219,200,203,203, 43,245,100, 77,156, - 56,145,200,203,203,243,217,191,127,255,240, 15, 31, 62,108,123,248,240,161, 24, 69,185, 32, 63,105, 8, 76, 38,243, 61, 73,106, - 26, 57, 52,110,200, 26, 57,176,107, 87,169, 56, 10, 66,171, 22,120, 18,249,254,106,158, 68,172, 96, 50,153,239,203, 30,255, 45, -202,211, 0, 3, 12, 48,192,128,234,129, 32,136, 64,154,166, 7, 16, 4, 17,248,249,103,159,255, 95,114,156,191,191,127,233,126, -201, 57,155, 55,111,222, 84,102, 95,254,141,204,171,116, 50,124,247, 98, 5,217,189,188,131, 84,175, 46, 65,245,250, 15,112,234, -116, 1,215,125, 16,152,117, 60,144, 18,117, 15,145, 55,182, 35, 45,246, 17,104, 74, 7, 7,183,246,250, 26,162,108,212,168, 17, -148,202,162,169, 89, 42,149, 10, 28,129,133,114,209,244,177, 70, 0, 64,177,140, 84,101, 20,172, 94,132, 38, 93,188,208, 62,147, -198,115,187, 34, 71, 69,251,204,162,243, 54, 76,154, 4, 14,135, 3, 14,135, 3,162,120,234,143, 62, 66,139, 40, 62,152, 42, 26, -190, 42,207, 8, 66,206, 99,159, 58,179,198,183, 61,239, 67, 52, 87, 21,243, 4,233, 42,138,190,154,169,187,166,143,189,124, 1, - 95,100,204,231, 71, 27, 11, 5,165, 66,139, 32,136,247, 0, 64,179,217, 1, 39,214,249,182, 16,100, 38, 8,148, 47,130,145,161, -164, 52, 21,208,172,187,113,227,134, 45,139,197,178,215,233,116, 72, 73, 73, 65,108,108, 44,118,238,220,153, 89, 88, 88,216, 61, - 60, 60,252, 77, 89,237,168, 51,230,158, 11, 88, 63,191, 30, 43, 42,196, 72,245, 62,166,218,173,199,186,217, 16,239, 65,221, 91, - 94,155, 49,126, 21,134,124,215, 7, 19,186, 55,161,147,210,115,149, 0,110, 23,187, 94,171,130, 40, 60, 60,188,119,183,110,221, - 78,182,106,213,170, 49, 77,211,104,222,188, 57,124,124,124, 16, 16, 16,128,200,200, 72, 20, 20, 20,104,130,130,130,118, 0, 56, -166,167, 89,124, 11, 11,139,155,119,239,222,181,225,243,249, 8, 10, 10,130, 66,161,128,131,131, 3,230,204,153,195,221,188,121, -243,239, 5, 5, 5, 35,253,253,253,141,146,146,146,246,220,186,117,171, 46,138,242,206,125,209, 8,212,106,245,161, 83, 1,199, -119,205,241,157,235,116,247,233,171, 96,149,180,208,172, 78,157,212, 2, 27, 11,161,201,142, 45,235,106,171,213,234, 25,229,151, -231,253, 26,149,167, 1, 6, 24, 96,128, 1, 95,160, 82, 45, 82, 86, 60,125, 46,182,170, 35,210, 0, 40,252,252,252, 86, 18, 4, - 17,232,231,231,183,210,223,223, 95, 1, 32,253,239, 16, 89,165, 66,107,192,128, 1, 33,129,129,129, 24, 48, 96, 64, 72,133, 20, -148, 14,154,164, 7,208, 36, 61,128,113,167,121,248,211,127,204,103, 23, 79,213,216,186,129,235,111,223, 85,169, 84,172,227,199, -143,151,206,219, 2, 0,157, 78,247,205,107,177, 58, 66,171, 88,232,125, 97,132, 11, 79, 24,114,104,225,200,142, 86, 58, 57, 91, -253,232, 42, 68, 42,138,220,246, 78, 35,127,145, 71,255, 92, 17,231,149, 5, 51,144,250,240, 14,248, 66, 97,234,212, 7,209,165, - 94,172, 98,145,149, 8, 0,117,121, 38,193, 7,230, 15,241,176,231,128,163,190,118, 30,233, 42, 74,117,224,131,246, 88, 5,141, - 13, 52, 77, 35, 49, 49, 17,114,185, 28,161,161,161,184,120,241, 98,118, 57, 34, 11, 46, 60,225,253,163,203,198,117, 48, 45,252, -200, 81,191,184,131,116, 21,165,215, 80,151,117,243, 33, 93, 56, 12, 34,136, 96, 48,141,123,118,116,195,130,105, 67,177,253,232, -159,164,218,182,235,128, 93,127, 92, 31, 37, 85,105, 86,234, 41,178, 74,157,141,225,225,225, 77,194,195,195,121, 0,188,124,124, -124,174, 15, 31, 62, 28, 33, 33, 33,184,122,245,170, 43,128,140,226,227,214,163, 40, 81,246,207, 0, 18, 42,114, 60,114, 56,156, - 51,119,238,220,105,234,232,232,136, 59,119,238, 64,161, 80, 96,214,172, 89,106, 95, 95, 95,206,196,137, 19,137,252,252,252, 82, - 79, 86,104,104,168,184, 34,145, 5, 0, 34,145,232,198,197,115, 39, 58,119,235,214,109,104, 61, 87,119,211,132,194,130, 44, 62, -223,200,248, 97,200, 61,206,139,103,143,247,136, 68,162,231,229,151,103,176,222,229,105,128, 1, 6, 24, 96, 64,197,208, 75,139, -124,230,153,170, 14,202,156,199,246,247,247,143,245,247,247,255,196,227,245,149,248,124,213,225,181,146, 62,173, 70,113,180,116, -249, 41, 95, 94, 0, 69, 85,231, 98,191,248,204,194,194,130, 52, 54, 54,254, 68,104, 81,122,114,230, 94, 62,141,132,217, 99, 75, - 61, 89, 37,158, 45,244,157,248, 85, 66,139,162,168, 80, 0,159, 24,193,183,117, 27,179, 99, 96,227, 46, 77,234, 57, 49,180,231, -118, 34, 77, 78, 42,215,196,107,148,175, 11,233, 65,113,229, 76,178, 46,229, 36,181, 48, 18, 24, 39, 27, 11, 5,159,139,172, 15, - 0, 32,176,115, 29,190,173,159,123,247,150,238, 13, 24,228,217, 95, 33,146,107,165,126,113, 26, 77,130,140,190, 84, 65, 25,174, -233,211,167,207, 26, 43, 43, 43,163, 93,187,118,153,213,169, 83, 7, 36, 73,170, 63, 23, 89,124, 91,183, 49, 59,135, 52,235,226, -102,111,193,208, 94,216,141, 84,133, 78,190, 51, 65,251,187, 62, 34,203,218, 76,120,235,192,166,217,198,124, 30, 27, 74,165, 18, -155,247, 93, 64,208,227,152, 1, 57, 49, 87,110, 1,184,245, 21, 13,114,234,128, 1, 3,182,175, 95,191, 30, 90,173, 22, 83,166, - 76,193,251,247,239,131,226,227,227,119,214,174, 93,123,201,178,101,203, 28,237,237,237, 49,106,212, 40,142, 86,171,157, 88, 1, -199,150, 83,167, 78, 13,104,217,178, 37, 66, 66, 66,144,151,151, 7, 7, 7, 7,248,250,250,114,253,253,253,127, 47, 40, 40, 24, -185,105,211, 38,163,196,196,196, 74, 61, 89,159,180,107,157,110,195,193,237,179,151,180,235,232,193,120,247,238, 13,153,210,222, -147,113,239,206,213, 7, 86, 86, 86,191,167,164,164,252, 85,158, 67,155, 87,187, 60, 13, 48,192, 0, 3, 12,248, 54, 32, 8,226, - 90,241,188,171, 79,188, 92,159,139,176, 18,143, 85,217,253,207,143, 47,254,254, 91,188, 44, 31, 42, 71,120,125, 26,222, 97,192, -128, 1,122, 47,171,167,100,217,122,137,167,207,241,157, 59,180, 78, 66,176, 86,122, 50,192, 17, 88, 40, 7,174,191,125,183,162, - 99, 5, 2,129,222, 30, 45, 74,165,172,170, 82,170, 37,180,138,231,104,221,164,105,250, 19,161,101,102,231,230,185,124,217,252, - 29, 30,195,251, 50, 50,167,117, 66,158, 84,165, 90,246,138,164,210,228,149,139,172,162, 94, 92,155,196, 23, 8,163,141, 4,252, -178, 34, 43, 5, 0,140,108, 27,180, 95,186, 96,206,190, 30, 99, 6, 18,217,179, 60, 32,201, 83,168,150,196,146,132, 72, 65,143, -140, 3,238,149, 71,119,247,238,221,131, 0, 14,122,122,122,102, 10, 4, 2, 72,165,210, 47,234,160,196,222, 46,195,251, 50, 50, -167,118, 64,174, 76,163, 90, 22, 75, 34, 93, 65,157,169, 74,100,217,152,155,220, 58,176,113, 54, 63, 61,237, 3, 56, 28, 14,132, - 66, 33,110, 63,138, 70, 78,236, 31, 95, 35,176,192, 96, 48,214,250,249,249,173,153, 51,103, 14,196, 98, 49,174, 94,189,138,239, -190,251, 14,167, 79,159,174,115,253,250,245,237, 94, 94, 94, 96, 50,153, 8, 12, 12,132, 86,171,125, 91, 1,205,208,233,211,167, - 47, 25, 62,124, 56,158, 63,127,142,140,140,140, 79, 60, 89,121,121,121, 62,251,246,237, 27,158,148,148, 84,165, 39,235, 51,180, -119,105,208,154,179, 98,245, 47, 80,201,179, 88,217,162,167, 33,193,183, 25, 79,114,115,115,249, 0,242,107, 90,158, 6, 24, 96, -128, 1, 6,232,237,213,170, 72,139,100, 23,139,168,236,242,246,203, 8,172,242,246,137,207,188, 96,234,207,190,143,252, 59,175, - 73, 47,143, 22,203,174, 25,200,204,152, 50, 66, 43,235,147,239,141, 76, 44,245, 26, 58,212,146, 96, 29, 56, 86, 26, 71,203, 72, - 44, 22, 27, 89, 91, 91, 43,203, 10, 4, 62,159, 15, 71, 71, 71, 72, 36, 18, 28, 58,116, 8,168,122, 82, 52,105, 58,124, 60,218, -143,153,130, 23,206, 92,208, 90, 77,169,103,235,192,164, 73,159,136, 45, 14,135, 83, 50, 55,172,170, 78,247, 89,177,167,233, 9, - 0,186,181,107,189,159,140, 4,130, 73, 70,214,181,172, 23,204,158,202, 78,202, 82,225,174,199,138,188, 11, 91,150, 11, 83,105, -225,156, 20,228, 63,174,130, 47, 97,240,254, 19,159,123,178,210, 90,185,214, 91,101,196, 55,154,198,181,172,107,239,183,104, 54, - 59, 41, 83, 69,220,109,191,172,224,226,207,203,248,137, 48, 89,146,134,188,123,122, 84,207,154,239,190,251,110, 13, 77,211, 52, - 69, 81,171, 1,160,172,189,139,124,167,177, 19, 62, 42, 17,236,177, 74,114,113,203,114,147, 84, 84,110,175,117,243, 33, 93,236, - 44, 76,111, 29,216, 52,135,159, 33, 74, 6,143,199,131,137,137, 9, 82, 51,243,193,102, 49, 21, 95,217,222,120, 93,187,118, 93, - 62,123,246,108, 68, 71, 71, 99,214,172, 89, 25, 41, 41, 41,151,206,158, 61, 59,235,199, 31,127,100,121,123,123, 35, 35, 35, 3, - 91,183,110,213, 62,122,244,104, 19,128,173,229,182, 71, 22,107,234, 79, 63,253, 68,167,167,167, 19,137,137,137,112,112,112,192, -220,185,115,185,155, 54,109, 42,157,147, 85, 29, 79, 86, 9, 68, 34, 81, 72,208,157, 39, 24,116, 99, 7, 72,173, 42, 36, 79,156, -242,224,117,130, 36,196,146,203, 93,236,212,186,121,141,202,211, 0, 3, 12, 48,192,128,111,226,197,122, 81,217,254,127, 1,202, - 27, 58,212, 75,104,189,221,189,106,178,235,228, 57, 75, 97, 92,167, 11, 84,113,151, 65, 73, 51, 75, 61, 90, 70, 66, 11, 88,214, -110,140, 60,153, 10,231,131,195, 0,224,109,117,172, 42, 44, 44, 68,155, 54,109,176,119,162, 91, 15,101,161,216,200, 24,128,138, -103,170,188,194,237,122,247,250,245,235,114,138,162,206, 0,184, 94, 5,205,218,166, 77,155,238,249,229,151, 95,184,141,199, 76, -134,244,233,195,207, 61, 40, 48, 54, 54, 6,143,199, 67, 84, 84, 20,238,222,189,171, 6,176,182,138, 10,125, 70,146,100,228,217, -179,103,211, 26,214,115,234,219,166, 85,139,121, 43, 87,248,153,188,122, 24,132,213,155,246, 80, 13,219,122,231,111, 62,125,165, - 48, 95, 88,187,167, 34, 35, 62, 66,143, 75,141,252, 76,100,165, 55,114,169,213,163, 85,179,166, 75, 87,175, 94,101, 26,251,240, - 54,126,252,249, 0,237,218,178, 87,254,207, 23,255, 40,200,225,215,237,163,204,122,253, 92,159, 50, 12, 9, 9, 57, 8,224, 96, -201,254,231,246,250,173,223, 73,185,181,235, 43,217,124,250,162,172,192,164,118,175,202,236,181,105, 60,180,179,179,141,197,173, -221, 27,102,242, 63,138, 82,192,227,241, 32, 20, 10,145,146,145,135, 53, 59,206,201, 52, 20,213,247,107,133,150,137,137, 9, 79, -163,209, 96,239,222,189, 72, 73, 73,233, 4, 32,229,229,203,151, 7, 70,143, 30,189,171,121,243,230,141, 98, 99, 99,223, 74,165, -210, 57, 0, 94, 87, 68, 98,110,110,222,201,198,198,134,120,242,228, 9,102,206,156,169,158, 59,119, 46,103,194,132, 9,132, 68, - 34,169,169, 39, 11, 0,224,228,228,228,217,187,103, 71,116,233, 61, 43, 68,173,204,123,144,244,250,247, 16, 6,253,216,168,166, -229,105,128, 1, 6, 24, 96,192,255, 12,106, 22, 24,220, 19, 96,185, 89, 97, 70, 83, 39,206,199,128, 45,115,233,194,132, 80, 90, -241,252, 32, 93,112,121, 26,125,109,235, 4,250,250,238, 5,244,172,254, 77,233, 70,182,196, 71, 55, 43,204,240,252, 82,184,125, -146,221,251, 59,119,104,123, 55, 0,221,187, 1,232,254,110,208, 2, 88,217,186,117,235, 43,190,237,255,138,163,229,219, 30, 52, -128,153, 0,132, 21,152, 85, 94,198,112, 7, 0,135,218,180,105, 67,222,187,119,143,142, 31,217,139, 14,111,100, 77,207,153, 51, -135,254,241,199, 31,233,177, 99,199,210, 54, 54, 54,100,113, 65, 56, 84,197, 57,104,208, 32,103, 0,168, 85,171,150,121,219,198, - 13, 63, 70, 5, 95,165, 31, 4,236,162,143,250, 14,163, 59, 52,111,156, 99,223,168, 91,164,177,131,123,171, 42,138,175,148,211, -222,222,126, 5, 77,211,125,105,154,118, 0, 0, 87, 87, 43, 97,235, 70, 13,211, 35,239, 92,165, 31,158,216, 67, 31,245, 29, 70, -119,108,209, 68,236,220,216,235,181,145,109,163,246,250,112,150,135,114,237,109,214, 40,199,104,243, 99,239, 0, 0, 32, 0, 73, - 68, 65, 84,174, 97,231,136, 74,236, 45,229,172,215,126,212, 31,105,233,153,244,179,103,207,232,235,215,175,211, 15, 31, 62,164, - 3,206,254, 65,215,110, 55, 82,106,221,124, 72,151,106, 52,157,138,236, 52,235,223,191, 63,253,246,237, 91,186, 95,191,126, 52, - 0,179, 26,114, 94, 73, 74, 74,162, 99, 98, 98,232,149, 43, 87,210, 0,142,207,158, 61, 91,145,159,159, 79,247,234,213, 43,165, - 88, 96,177,106, 98,103,125, 23,167,205, 67, 7,118, 93,235, 59,115,184,231,215,150,231, 55,132,129,211,192,105,224, 52,112,254, - 47,112,254,147,225, 80,236,213, 42,249,219, 90, 47,143, 86, 8, 64, 66,140,131,205,108, 53, 39, 55,109,221,189,120,239,193,227, - 75,151,207,155, 42,232,234,209, 27,209,119,126,195,197,192,179, 50,165, 74,189,149,195,196, 47, 49, 98,200,223, 84, 97, 69,113, - 28,173, 79, 16, 30, 30,206,183,108,240, 87, 12,166,119, 69,177, 89, 15, 84,243, 2, 51, 0, 76, 15, 11, 11,251,197,203,203,107, -227,180, 46,237,135,249,118,238, 1,173, 86,139,128,128, 0, 36, 39, 39, 95, 2,176, 74, 95,143, 91,116,116,116, 78,147, 6,117, -230,179,153,172,165,115,198, 14,181,201,126,255, 10,105,113,225, 0, 0,149, 74,161,253,248,246, 65,203,234, 24,103,108,108,252, -204,198,198, 38,222,198,198, 70,226, 86,175,214,116, 30,216,171,103,249, 12,182, 21, 39,189, 70,106,108,209,200,168, 74, 41,215, -164,189,189,215,168, 38,181, 91,167, 78, 29,158,128,141, 25,229,218,171, 86,106, 51,223,189,110,165, 15,143, 92,165,222,180,110, -123, 64,159, 13, 75, 39,241, 76, 77, 77, 17, 22,243, 14,171,127, 61, 45, 83,168,181,125,115,162,175,124,147,225, 49,154,166,161, -213,106,245, 94,232, 80, 1,150,183,108,217,210,125,227,198,141,174, 19, 39, 78,196,215,122,178,202, 34, 33, 73,228,231, 84,171, -126,147,119,241, 97, 94,150,198,156,147, 95, 83,158, 6, 24, 96,128, 1, 6,252,207,160,127,177, 51,103,122,153,191,225, 85, 10, -173, 18,196,100, 65, 14, 96,125, 61,166,244,192,138,141,219,215, 48,136, 29,147, 40,154,254,141,100, 96, 93,162, 24,217, 95,105, -156,156,205, 2,217,103,200, 88, 22, 0,176, 89, 53,235, 32,139,241, 22,192,240,195,143,159,183, 59,252,248,249, 15,197,159,109, - 0, 80,173,177, 92, 19, 22, 98, 60,154,212,119,234,218,186,169, 17, 83,167, 64, 90,220,123,228,202,148,184, 29,155,156,199,160, - 25,191, 85,215,168,196,196,196,251, 0, 96,103,198,143,235,218,164, 65,237,110,109,154,242,217,132, 26,105,175,194,144,175, 80, - 35, 40, 54, 57, 31, 4, 81,227, 9,213,223,202,222,204,232, 63, 94,252, 9,162, 23, 65, 16,119, 86,250,142,225,173,249,245,204, - 55, 21, 89, 0,228, 34,145, 72, 44,151,203,173,210,211,211,213,168,121,144,184,119, 5, 5, 5,205, 23, 44, 88,176,126,201,146, - 37, 75,183,108,217,194,169,201,156,172,138, 32, 17, 37, 95,238,214,244,219,213,191, 1, 6, 24, 96,128, 1,255, 19,152,254,217, - 95,232, 45,180, 74, 5, 67, 22,178, 1,204,169, 95,159, 94,148,144, 0,245,183,178,172, 60, 79,215, 87,226, 5,128,129, 53, 62, -155, 65, 20, 62,125,155, 44,125,246, 54, 89, 10,138,166, 41,154, 86, 49, 24, 72,149,105, 52,155,222, 38,138,106,190,234,142, 32, -116, 47,222,165, 40, 94,190, 79, 85,210, 20, 69, 83, 52,173, 38, 8,124,212,106,169, 77,177,137,201,127,252, 55,216,155, 19,125, -229,113, 32, 73,116,125,252, 44,102,145, 76,166,217,147, 19,119, 37,244, 27,214,139, 54, 58, 58,122, 92,167, 78,157, 38,235,116, -186, 3, 0,180, 95,193,165, 38, 73,114,249,230,205,155, 47, 69, 71, 71,159, 11, 13, 13,205,248, 22, 34,235,111,173,127, 3, 12, - 48,192, 0, 3,254,173,168, 89, 82,233,138,240, 45, 69,214,127, 35, 98,222,125,104,243,119,240,198,190,251,208,236,159, 96,111, -102,220,229,151,153,128,207,223, 84,188, 65, 58,157, 46,232, 91,138,234,155, 55,111,186,160,156,180, 58,255,109,245,111,128, 1, - 6, 24, 96,192,191, 22,211, 43, 18, 95, 44, 67,217, 24,240, 47, 0,253,173, 68,150, 1, 6, 24, 96,128, 1, 6,212, 0, 21,122, -180, 8, 84,188,114,224, 78, 53,126,160, 38,171, 15,238, 24, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,159,227,252, 55, -194, 1, 69, 19,226,175, 21,255,173, 84,124,125, 75, 24,150,190, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,183,163, -220,137,240, 64,209,228, 97, 3, 12, 48,192, 0, 3, 12,248,187,192, 43,222,106,250,189, 1, 6,252, 19,197, 86,169,224,170,201, - 28,173,134,197,127,223,253,141,198,250, 58, 56, 56, 76,111,209,162, 69, 99, 14,135,195, 40, 44, 44, 92,119,239,222,189,181,159, - 31,212,181, 9,235, 37,147, 1,231,191, 62, 33, 0,130, 9, 48, 24,208,209, 72,123, 24,165,104,107,168,247,255,106,212, 49, 54, -181,249,147, 96, 48,185, 58, 82, 3,157, 86,131,162,233, 86, 69,160, 40, 50, 89,167, 81,121, 87,116,178,125,203,161,181, 73, 29, -181, 5,160,247, 2,140,217, 0,181,143, 0,107, 22, 13,114, 63, 1,230, 76, 48,233,159,161, 35,150,177,216,204, 21, 25,225, 23, - 82,255, 13, 5,118,254,252,121,230,215,156, 63,114,228,200,114, 19,136, 58, 58, 58, 6,242,249,252, 6, 21,157, 39,147,201, 50, - 50, 50, 50,188,254,229,237,177, 27,128,221, 0,154,126,246,249,107, 0,243, 1, 4,127,237, 15,120, 2, 44, 59, 96, 6, 7, 88, - 6, 0, 26,224,231, 76,224, 96,200,127,209, 28, 67, 27, 27,155, 7, 44, 22,203, 85, 38,147,201, 10, 11, 11,235,155,152,152, 36, - 8, 4, 2, 1, 73,146,111,179,179,179,187, 85,147,110, 54,254, 74,165,181, 20,192,190,106,126,111,128, 1,255, 20,124,213,170, - 67,183,162,231, 3, 60, 1,116,107,215,174,157,157, 76, 38,195,235,215,175, 51, 1, 60, 0, 16, 82,188,189,249, 22,150, 50, 24, -140,109,219,183,111, 95, 60,119,238,220,210,100,208, 81, 81, 81,104,217,242,203, 24,161, 76, 6,156,239, 93,189, 99,251, 34,250, - 13,218,245, 26, 81, 44,180, 24,128, 44, 3, 94,189,219,215,212, 4, 19, 11, 11,139,117, 4, 65,140,100, 48, 24, 85,118,106, 20, - 69,233,104,154, 62, 47,145, 72,214, 0, 40,172,206, 15, 9,248, 60, 45,169,211,149,251, 27, 44, 38, 83, 39,147,171, 42, 12,123, - 97,105,105, 25,202, 96, 48,234,149, 77,152, 13,124,154, 64,187,162,239, 72,146, 76,203,201,201,209, 71,132, 26, 49, 88,156,249, - 4,193,233, 13, 6,229, 6, 16, 32,192,120, 67,233,212,183, 41, 82,179, 19,128,242,107, 68,150, 67,173,250, 15, 23,174,218,236, - 28, 19,247, 26, 43,125,199, 98,203,238,227, 88, 49,127, 50,118, 30, 58,141,249,211,199,160, 73,147,166,168, 44,173, 56, 5,206, -166, 85,243, 70,246,242,223,123,206, 99,197,156,145, 60,255,189,231,187,174,244, 29,205,221,180,231, 92,215,149,190,163,120,254, -123,206,121,172,152, 55,210,120,211,190, 11, 20,128,241, 53, 49,114,140,171,163,140, 32,201,114,223,182,105, 22, 75,117,250,109, -186,224,255,227,142,158, 56,113, 98, 11,133, 66, 17, 54,182,119,235,205,173,220,156, 68,229, 29, 35,254, 40,114, 74,136, 15,247, - 99,115,140,219, 12,246, 59, 30, 85,169,203,129,199,171,247,250,245,107, 87,138,162,160,211,233, 64,146,100,233, 95,181, 90,141, -110,221,186,125,171,133, 51, 3, 1,172, 43,186, 89,225, 15,224,220, 87,112, 9, 89, 44,214, 66, 46,151,235, 73,146,100, 99, 0, - 96,179,217,113, 42,149, 42,132, 36,201,237, 0,164,213,228,219, 33, 18,137,154, 8,133, 66,104, 52,154,210, 4,244, 76, 38,179, - 81,237,218,181,247, 42,149, 74,215,175,189,120, 59, 96, 70,103, 15,143,157, 19, 22, 47,102, 42, 30, 60,192,206, 99,199,118,160, -160, 0, 0,246, 86,117, 46,151,203,189,197, 96, 48,234, 84,231,247, 40,138, 74, 86,171,213,222,213, 57,135,197, 98,185,166,167, -167,219, 58, 58, 58,162,176,176, 16, 2,129, 64, 80,178, 95, 3, 79,214, 86,154,166,141,139,159,237, 59, 59,118,236,216,137, 32, - 8, 18, 0, 77, 81, 20,227,217,179,103, 99, 40,138, 98, 21, 63,159,182, 2, 56, 6, 64,101,232,179, 13,248,135,122,179, 14, 85, - 87,104, 93, 7,224,217,174, 93, 59, 99, 31, 31, 31,120,122,122,194,213,213, 21, 70, 70, 70, 69, 15,113,177,216, 46, 34, 34, 98, -212,131, 7, 15, 70, 93,189,122, 21,175, 94,189, 82, 0,120, 4,160,220,155,186,231, 0,143,185, 70, 66,222, 46, 0,200, 78, 19, -103,164, 37,102,237,202,200,200,216, 10,160,108,136,240,250,227,199,143, 95, 52,111,222, 60, 4, 6, 6,226,244,233,211, 80,169, - 84, 40, 44,172, 68,191,200,179, 32,185,187, 25, 16, 36, 1, 41, 33, 0,223, 22, 16,216,213,184,164, 44, 44, 44,214,205,159, 63, -127, 65,147, 38, 77, 74,163,152,107,181, 90,144, 36, 9,173, 86, 11,137, 68,130, 69,139, 22, 21,117,180, 52, 13,138,162,112,227, -198,141,185,211,167, 79,135, 68, 34, 89, 88, 30,103,199, 54,181, 94, 50, 8,134,115,137,175,134,214,233,210,158, 70,164,181, 37, -117, 58,166, 82,169, 41, 55, 83,185,145, 17,167, 82,145,199,102,179,157, 95,253,249,167, 45,131,203, 5,173,211, 1, 20, 5,154, -162,138,139,179,120,163,139, 62,163,117, 20,104,173, 14, 20, 73,129, 84,168,208,126,246,108,125,138,162, 51,155,107,124,122,220, -180,197,246, 29, 58,118,100,215,173,229, 8, 82, 71,225,125, 82,154,125,216,203,167, 93,206,255,190,119,150, 90, 81, 56, 6, 64, -141,226,108,113,249,166, 65,123,246, 31,118,126, 17, 17,131,224,123, 15,112,231,110, 8, 0,224,214,189,208, 18,193, 93,101, 85, -129,148, 54,159, 63,101, 8,111,243,158, 51,236,249, 83,134, 50,183,236, 57,203,158, 55,121, 48,115,243,174,211,156,121,147, 7, - 51, 55,239, 62,205,153, 55,101, 8,211,127,231,209, 22, 0, 44, 0, 72, 42, 34,171,168,142, 8,146,228,157, 76,200,100, 2, 64, -246,129, 3,208,102,101,193,113,205, 26, 0,192,184,250,118,122, 15,119, 88, 91, 91,191,100,179,217,206, 85, 29,167,213,106,171, - 20,193, 19, 39, 78,108,169, 80, 40, 94,146, 36, 73,179, 88, 44,191,177, 67,251, 92,233,219,181,165,184,236, 49, 81, 81,145, 86, -155, 54,253, 57,228, 92, 88, 33, 61,170,141, 73, 88,224,182,137,109, 7, 44, 57, 30, 89, 73,135,204, 80,169, 84,120,251,246, 45, -202, 38,121, 47, 3, 93, 77,223,157, 0,236,180,178,178,234, 32, 22,139,199, 1, 88, 89, 80, 80,208,130,201,100,194,210,210,114, -165, 90,173,126,111,102,102,118, 36, 63, 63, 63,180,216,107,164,111,202,128,110,166,166,166, 1,151, 47, 95,182,104,221,186, 53, - 35, 39, 39, 7, 46, 46, 46,200,205,205,109,255,224,193,131, 54, 83,166, 76,153, 82, 88, 88,248,125,241,203,160,190,112,231,243, -249,244,132, 9, 19, 8,157,238,175,203, 61,122,244, 40,188,155,145, 13,108,204,249,114,165,154,206, 15,126,107, 54,147,195,225, - 60, 74, 78, 78,206,175,110, 97,112,128,101, 19, 22, 47,102, 10, 63,124,128, 48, 50, 18,227, 10, 10, 88, 91,138,188, 91, 85, 10, - 45, 6,131, 81, 39,224,244,111,174, 92, 46, 23, 36, 73,150,138,193,146,103,148, 86,171,133, 70,163,129, 86,171,133, 78,167,131, - 86,163,133,255,134,159,107,252, 44,228,243,249,124, 7, 7,135, 76, 62,159,207,255, 22,189, 16,143,199, 99,253,254,251,239, 99, -184, 92, 46, 0, 64,173, 86,163, 89,179,102,132,161,127, 54,224, 95, 38,182,190,240,114, 85, 38,180,250, 21, 20, 20, 64,167,211, -193,196,196, 4, 76,230,167,253,190,149,149, 21,122,247,238,141,110,221,186,193,199,199, 7,175, 94,189, 50,246,241,241,233, 93, - 17,217,216,197, 3, 80,203,213,174,184, 51,161, 28, 30, 95,139,216,124,244,167, 11, 54, 31, 63,126, 92, 92,230,176, 41, 51,102, -204, 32,196, 98, 49, 70,142, 28,249, 64,165, 82, 13, 2, 80, 80, 17,167,142, 66,154,151,207, 56, 80, 52, 97,188,253,217, 97, 66, -173, 84,208, 12, 6, 67, 81, 50,116, 88,147, 82, 34, 8, 98,164,163,163, 35,206,156,249, 63,246,190, 59, 46,138,107,125,255,153, -217,190, 44,189,131, 10, 42,136,130, 32,216, 16,108,216, 53, 17, 19,107,188,246, 36, 38,222, 36,150, 88, 18,177, 69, 99,131,196, - 26, 19,141,154,196, 88,174, 13,187,216, 98,197,196,174, 40, 82, 20, 20,105,194, 2, 75, 95,216, 54,187, 51,243,251, 3, 88, 1, -217,130,201,253,221,251,189,217,231,243,217,207,238,236,204,190,123,230,156,153, 57,207,121,222,247,188,231, 32, 52,154,215,211, -133,217,218,218, 34, 57, 57,249,149,170,198,225, 32, 44, 44,140, 67, 16,196, 56, 0,115,155,182, 73,182,188,113, 47,203,181,110, - 59,114,112, 32, 63,172, 43, 89,152, 95, 88,205, 2, 32,150, 44, 89,162, 39,110, 0,240,245,215, 95,155, 83, 78,144, 60, 30,100, -241,241,175, 30,196, 92, 18, 36,159, 0,193, 3, 72,110,141, 23, 21, 44,192,210, 0,163, 3, 24, 45, 32,242,104,101, 78, 53,132, -182,240,242,139, 91,187,113,155,189, 90,203,226,224,201,203,200,204,124, 1, 14, 73,194,199,215, 15, 67,250,245,225,117,237, 30, -222,234,219, 21,243, 79,231,231, 60,123, 11,192,221,102, 87, 52,195,138,124,189,156,241,243, 47, 15,224,226, 96,141,113, 35,223, -134, 88, 36,196, 55,223,255,138,213,139,102,194,207,199, 27, 59, 54,175, 49,248,115, 59, 59,187,149, 1,126,190,222,219,246,156, - 65,128,191, 63,103,219,222, 51, 8,232, 88,251, 30, 24,192,217,182,247, 12, 58, 6,118,228,108,219,123, 6,193,129, 29, 90,223, -151,222, 89, 89, 90, 90, 58,211,112,125, 54,106,163, 33, 53,109,196,171, 98,244, 29, 65,214, 39,159, 0,128,158,104, 53, 7, 60, - 30,175,101,126,126,190,171,169,227, 76,169, 6,181, 74,214,125,157, 78,135,162,162, 34,162,188,188,156,181,183,183, 31,121,126, -199,226,227, 67,123,135,148, 2,192,163, 71,143, 28,163,163,215,142, 60,116,191, 18,202,219, 63, 16,255, 58, 21,207, 76,122, 39, -226,254,201,152,105, 93, 81,187, 36, 68, 99,168,213,234,204,206,157, 59,179,181,159, 91, 8,133, 66,126,163,235,205,179, 93,187, -118,175,169,214,102,184, 20,191,187,117,235,214,204,142, 29, 59,194,223,223,255,102,143, 30, 61,108, 37, 18, 9,206,159, 63,143, -128,128,128, 64, 91, 91,219, 59,177,177,177,188,133, 11, 23,134,236,218,181, 11, 0,102,153, 81,157,131,250,247,239,127, 48, 46, - 46, 78,196,231,243,161, 84, 42,145,156,156, 12, 59, 59, 59, 8, 4, 2,188,251,238,187,156, 94,189,122, 57,245,235,215,239,104, - 90, 90,218, 4, 52, 99, 6,148, 74,165, 98, 23, 47, 94, 12, 43, 43, 43, 88, 89, 89, 65, 34,145, 64, 34,145,192, 90, 4, 98,251, - 28, 47,241,236,157,229,226,185,203,183,199,236,221,182,226,106,171, 86,204, 87,185,185,185,229,205,189, 22,148,215,175,195,250, -209, 35,160,222,189,107, 46,236, 36,142,136,138,138, 50,165, 72,129,207,231,163,103,207,158, 38,237, 57, 58, 58, 30,227,114,185, - 13, 70,166, 58,157, 78, 20, 21, 21, 69,167,165,165, 73, 72,146,148, 48, 12,131,168,168, 40, 90,167,211,137, 92, 93, 93,111, 50, - 12, 83, 88, 92, 92, 60,218,140,226,170, 1,124, 65,146,228,119, 66,161,144,219,186,117,235,236,101,203,150,221,170, 85, 51,193, -178, 44,217,186,117,235, 80,177, 88,236,173, 86,171,117,168,113, 29, 90,212, 44, 11,154, 4,203,178, 93,107, 68, 97, 61, 52, 0, - 4,181,159, 75,106,122, 59, 56, 55,250, 30, 0,138,107, 7,138,110, 6,182, 75, 0,164, 0,232, 0,192,181,118,223, 61,130, 32, - 74,223,160,152,134, 21,173,184,184, 56,253, 16, 54, 50, 50, 82,223,177,216,216,216,224,222,189,123, 32, 8, 2, 54, 54, 54,176, -181,181,133,157,157, 29, 42, 43, 43,145,146,146,130, 39, 79,158, 32, 43, 43, 11, 4, 65,192,199,199, 7,117, 55, 80, 61,232, 31, -112,251, 55,196, 65,100, 45, 4, 65, 0, 93, 6, 4, 35,184,111, 16,186,223,205,152,115,255, 18,177, 83, 42,149,166, 3,224, 6, - 5, 5,125, 24, 22, 22,134,141, 27, 55, 66,173, 86,111, 52, 64,178,244, 54,127, 79,209,117, 3, 0, 15, 15,143, 5,251,206, 63, -183,154, 60,204, 87, 33,149, 74,215,191, 65,229, 52,120, 16, 23, 23, 23,155,189, 22, 31,195, 48, 40, 43, 43, 51,106,179,177, 66, -176,233,187, 31,236,229, 21,133, 88,245,205, 62,104,181, 90,204,159, 63, 31, 12,195,232, 95,229,229,229,102,149,147,165,233,215, -181, 3,178,198,123, 74,112, 1,175,241, 53,188, 34,231,224, 15, 32, 88,128,160, 1,188,126, 94,141, 59, 33, 17,135, 47, 62,180, -226,155, 45,246, 9, 79, 94,226,228,229, 4, 80,149,121,144, 62, 58, 94, 35, 57,246,156,128,195,106, 14,122, 4,251,226,243, 37, -223, 58, 44,253,124,202, 33,141, 82,238,143,134,110,196, 75,166,111, 26, 26,171, 86,174,196,206, 45, 27,241,237,198, 45,168,172, - 40, 7,143,231, 92,251,160,167, 65,211,180,241,115,103,217, 97, 81,115,222, 39,190,249,241, 24, 66, 59,122,224,232,249,187,232, -221,217, 27,199,127,187,143,190, 93,219,224,228,165, 4, 12,232,225,139,179,241, 73,248,124,198, 4, 98,194,133, 93,195,154,211, - 70,155, 55,255, 96, 47,175, 44, 68,220,154, 61, 40,218,186, 21,217, 51,103, 34,180,246,152,187, 4, 1,126,203,150, 0,223,116, - 27, 53, 70,106,106, 42,212,106,117, 83,163,125, 4, 4, 4,152,108,119,165, 82,249, 64,167,211,177,133,133,133, 68, 97, 97, 33, - 36, 18, 9,145,156,156, 68, 7, 6, 6,141, 98,159, 28,249, 9, 0,162,163,215,142, 58,252,160, 18,138,155, 91,160,188,245, 61, -248,109, 18,201,157, 95,207,160, 62, 94,190,227, 65,189,123,180, 65, 57, 11, 10, 10,222, 42, 40, 40, 0, 0,180,109,219,246, 73, - 90, 90, 90,135, 58, 87,115,173, 11,145,175,211,233,252,234,220,137, 58,157, 14,106,181, 26,131, 6, 13,226, 24, 59,119, 7, 7, -135,176,128,128, 0, 36, 36, 36, 96,203,150, 45,142,253,251,247,199,179,103,207, 64, 16, 4,214,174, 93, 75,116,236,216,145, 87, - 92, 92,140,161, 67,135,226,216,177, 99, 61, 43, 43, 43, 77,213,167,141, 68, 34,217,117,250,244,105, 17, 73,146,144,203,229, 96, - 24, 6,189,122,245, 2, 73,146, 72, 74, 74,194,146, 37, 75,112,236,216, 49,156, 56,113, 66,220,181,107,215, 93, 10,133, 34, 0, - 13,221,250,134,218,136, 85,169, 84,172, 80, 40,132, 80, 40,132, 72, 36,130, 72, 36,130, 64, 32, 64,149, 10,248,120, 83,182,154, - 35,114,102, 2, 59,247,246,125,127,246, 90,114,253,178, 15,174, 0, 56,105,238, 53, 15,212,196,100,125,247,235,175, 91, 38, 85, - 84,144, 0,240, 51, 65, 48, 20,203,126,107,206,253, 14, 0, 85,170, 10,120,251,180,196,209, 67, 39, 48,102,252,200, 38, 73, 22, -143,199, 7,159,199,131,173,163,196,164, 77, 62,159,239,246,228,201, 19, 39, 30,143, 7,150,101, 65,211, 52, 40,138, 42, 92,186, -116,169,203,240,225,195,109,206,157, 59, 71, 14, 31, 62,156,113,112,112,168,190,123,247,110,145, 78,167,115,234,211,167, 79,115, -174,249,109,193,193,193, 93,142, 31, 63,254, 65, 84, 84,212,253, 5, 11, 22,172,170,191,115,221,186,117, 43,207,158, 61,235, 61, -106,212,168,189,143, 30, 61,218,214,156,103,200,159,125,206, 91,108,254,247,217, 52,196, 69,106,225, 70, 16, 68, 92,189,103,118, -100,221,118, 84, 84,212,226,232,232,232,100,130, 32,226,234,127, 95,119, 92,237, 96, 49,174,169,237,218,223, 58, 46, 90,180, 40, - 40, 38, 38,102,109,120,120,248,193,155, 55,111,190, 0,208, 92,162,101, 60, 70,171,238,132,234,159,100,163, 78, 13,149,149,149, -168,172,172, 68,110,110, 46,182,111,223, 94,123, 67,243,192,229,114,193,229,114,245,241, 12,134,112, 57,238,143,239, 1,124,223, -165, 75, 23,222,227, 91,177,231,190,220, 57,123, 96,183, 65, 93, 56, 15, 46, 63, 30,139,154,245, 8,223,154, 58,117,170, 51, 0, -236,217,179,167, 24,192,185,255, 16,107,142, 77, 79, 79,255,220,195,195, 67, 31,163, 82,223,125,168,211,233, 32, 18,137, 80, 23, -203,162, 82,169,176,125,251,118, 29,203,178,177, 70,108, 34, 45,249, 10,210,147,175,214,252,142, 97,192,208,175,126,191, 98,197, - 10,176, 44,171,239,236, 63,169, 85, 78, 76,146,188,166,234,156,109,244,222,232,123,150,166, 77,184, 39,248,179,199, 78,153,233, -193, 16, 92,156,186,242, 16, 60, 30, 15, 76, 61, 53,147,199,169, 25, 45, 39, 63,203,135,167, 91, 32,222,153, 48,195,253,248,222, - 31,102,235, 40,213, 55,205,173,107,255,224,112,204,249,252,115,252,180,115, 39,150, 44, 95,169,103, 0, 58,154,134,206,100, 57, - 73,114, 80,175, 32,232,170,242,193,225,112, 48, 32,212, 23, 28, 14, 7,131,195,219,131,195,225, 96,104, 47,127,112,185, 92, 12, -235,221, 17,237,218,181, 3,151,203, 37, 77,180, 59,210,146, 47, 35, 61,249, 90, 61,210,203,130, 5, 64, 73,165,175, 29,175,149, - 74,193,122, 57, 53,247,218,194,135, 31,126, 88,158,155,155, 75, 53,222,215,170, 85, 43,254,245,235,215,237, 13,184,237,244, 16, -139,197, 93,185, 92,238,131,210,210, 82,198,202,202,138,100, 24,154, 9, 12, 12,226,156,223,177,248,120,221, 49,139, 22, 45, 62, -254, 94, 87,219, 81,251, 98,227, 88,126,235,222, 4,193, 19,234, 62, 90,190,131,207,227,139,187, 2, 74,115, 6, 15,164, 90,173, -198,211,167, 79, 97,170, 60, 44,203, 26,117,253,148,149,149, 77, 13, 8, 8,184,254,253,247,223, 59, 18, 4,129,223,127,255, 29, - 28, 14, 71,255,202,200,200, 0, 73,146,248,242,203, 47,169,202,202,202,233,166,202,198,229,114, 63, 63,122,244,168,157, 64, 32, -128, 92, 46,215,223, 55, 28, 14, 7, 79,158, 60,193,250,245,235, 49,117,234, 84,228,228,228,192,211,211, 19,243,231,207,183,142, -137,137,249,156,162,168,149,102, 52, 81,162, 70,163,233,102,101,101, 5,145, 72,132, 58,194, 5, 0,191, 37,243,146,148, 74,101, - 39, 39, 39,133,187, 75,124,220,169,158,253,223, 9,113,114,241, 8,151, 74,165,205, 90, 58,235, 57,176, 51,147,166,151,190,117, -252,184,235,141,227,199,153,219,167, 79,191, 20,202,229, 59,204,190,134,180, 36,178, 51, 94,162,107,215,174,120,240,224, 1,186, -118,237, 90,159, 52, 65, 32, 16,128,207,231,131,207,231,195,217,193,172, 16, 10,150, 36, 73,220,184,113, 3, 52, 77, 67,163,209, - 64,163,209,160, 99,199,142,165, 87,175, 94,181, 6,128,140,140, 12,118,242,228,201,229,119,238,220, 65,231,206,198,215, 83,119, -115,115,187,206,225,112, 90,215,255,174,164,164,196, 97,244,232,209, 40, 43, 43,123,123,244,232,209,189,107,239,223,188, 35, 71, -142, 76, 6, 0,129, 64, 0,146, 36,105, 88,240,183,135, 41, 46, 82,159, 40, 53, 38, 92,209,209,209,145,141,191,171, 79,170,154, -250, 92,255,183, 49, 49, 49,107,235,217, 86,190, 65,241, 77,199,104,197,197,197,177, 77, 48, 72,179, 97,138,104,213, 33, 33, 33, - 65,235,233,233,249, 83,250,195,172,129,190,193, 62, 16, 75,132, 67, 0,124, 47, 20, 10,231, 77,153, 50, 5,183,111,223, 70, 82, - 82,210, 47,248,147,179,112,130,130,130, 46, 8,133, 66,111, 3,110,146,236,164,164,164,161, 6, 58,134,229,167, 79,159,134,177, - 96,248, 43, 87,174,212,239,148,234, 7,195, 55,125, 97, 48, 44,180,148, 22,213, 10,229,171, 78,188,150,104, 85, 87, 87, 99,252, -248,241, 13, 20,173,162,162, 34,147,231, 71, 16, 4,214,159, 60,137,139,177,177,120, 59, 36, 4,199,238,222, 69,204,148,137,240, -247,110, 1,150, 38,192, 18, 64,206,129, 31, 80, 82, 89,133,253,151,111,160, 84,174,192,164, 62,125,224,103,235,108,220, 46,143, - 63, 56, 52, 44,156,127,233,102, 10,120, 60, 46, 72, 48, 96,181, 10,120, 6,244, 3,135, 36, 97,231,214, 6,124, 30, 15, 60, 30, - 23, 25,185,197, 8, 8,234, 46,136, 19,136, 6,191, 9,209,106,229,221, 6, 52, 77, 99,234,212,169, 56,120,240, 32,156,220,189, - 97,215, 42, 8,171, 55,238,196,219,131,250,152, 60,255,186, 17, 60,151,203, 5,135,195,121,237,189,238,179, 57,234, 36,203,176, -160, 26,183, 17,195, 2, 44,139,150,107,214,160,229,154, 53,184, 91,251,159, 29,171,171,161, 84, 42,129, 30,129,205, 34, 89, 26, -141, 6,185,185,185, 84, 65, 65,129, 91, 19,251, 11, 53, 26,141, 73, 98,179,123,247,238,196,105,211,166,117,115,116,116,188,159, -248,232,145, 54, 56, 36,132,119,110,251,226, 19,117,110, 67, 0, 8, 9, 9, 41, 93,188,120,241,137,201,227, 34, 71,110,139,250, - 7,253,233,202,189, 92,161, 88,220, 45,114,193,238,196, 3,227,198,153,246,247,168,213,153,193,193,193,172, 57,231,165, 80, 40, - 10,140,236, 30, 1,224,235, 46, 93,186,216,246,239,223, 31,215,175, 95,199,152, 49, 99,212, 20, 69,165, 3,192,240,225,195,219, -239,223,191, 95,144,146,146, 2, 23, 23, 23, 94,118,118,246, 46,152, 8,144, 23, 8, 4,253,186,119,239, 78,170,213,234,215, 72, - 86, 76, 76, 12, 38, 76,152,128,246,237,219,131, 97, 24, 84, 85, 85,161,127,255,254,188, 45, 91,182,244, 51,147,104,205,241,247, -247, 95,143,154, 89,135,245,159,133,169,168,113,107,161,164,164,164,224,225,157,203,201,125, 6,141,238,214,186, 93,144, 71, 82, -226, 3,163, 6, 93, 93, 93, 23,145, 36,249, 30,195, 48,156,202,202,202,220,135, 26, 77,187,142,222,222,110,189, 70,142, 68, 5, -143,199,249,238,242,101,178, 80, 46,183, 6, 96,150, 11, 82,165,173,134,183, 79, 77,168,223,152,241, 35,241,224,193, 3,140,253, -199, 40,240,249,124,112,185,188,154,123,147, 95,163,104,217, 59,219,154,117,109,106,181, 90,253, 51,188, 46,206,139,162, 40,212, -133,102, 89, 89, 89,233,247,169,213,106, 16, 4, 97,236,218,240, 59,188,114,153,171,216,214, 14,180, 86,139,192,145, 99,245,215, -244,157,159,183,137,193, 48,226,242,236, 76,204,138, 61,205,131, 5, 22, 24, 80,181,140,113,145,250, 68,233,207,130, 32,136,184, -168,168,168,197, 0,216,168,168,168,197,117,219,209,209,209, 74, 0,121,111, 72,182, 94, 83,185,184,127, 5,201,170,115, 47, 24, - 67,255,254,253,103,217,216,216,108,169,219,206,189,157,135,220,219,121, 8,232, 16,216,171, 75, 72,183,138, 9, 19, 38,192,201, -201, 9, 11, 22, 44, 96, 1,252,210,220,255,207, 72, 75,182, 6,192,122,120,120, 44,168,125, 32,135,220,189,123,215,229,222,189, -123,232,222,189,251, 43,233,158,162,208,187,119,111, 99,166,228,181, 65,237,115,255, 58,149,140, 1, 69, 81, 80, 40,148,208,104, - 40,232,180, 12,116, 58, 29,186, 6,218, 96,239,206,168,154,239,116,117,234, 89,141,106,214,210,221, 6, 54,214, 60, 45, 73, 18, -202,251,137, 5, 77, 62, 49, 53, 26, 13, 18,179,179,241, 40, 43, 11, 0,240, 78,180,241,192,215,189,151,175,163, 99,199,142,166, - 74,235,219,210,211, 29,249, 23, 19,107, 30,222,202, 92,220,251,227, 48,108,108,172, 1, 0,129, 17,147,192,231,215, 16,173,106, - 37, 5,231, 14,173, 64,176,172,193,180, 0, 86, 14,238, 23,184,124,145, 55, 75, 51, 96, 89, 6, 44, 67,131,101, 25,112,120,124, -171, 89,159,124, 0,134,161, 17, 26, 26, 10,130,195, 1,173, 85, 99,220,136,193, 40,171,144,195,201,222,188, 78,130,207,231, 35, - 34, 34, 66,108,104,255,179,103,207,148,245,137,153,241, 54,210,162,186, 90, 9,181, 90, 13, 74,163, 3,165,213,129,110,203,199, -170,165, 19,161,163,116, 80,252, 35, 28,148, 86, 7,230,243, 81,160, 52, 90,228, 88,145,100,112,128,179,150, 4,161,124,152, 42, -179, 53, 69,180,234,200,129, 33, 52, 21, 19,104,128,108, 61,154, 54,109, 90,215,224,144,144, 7,239, 13, 10,217,240, 56, 41, 57, -255,113, 82,242,107,199,121,183, 15,201,252, 52,230,224,124, 30, 95,220, 53,114,129,241, 89,135,245, 81,223,141,248, 39,177, 88, - 46,151, 7, 91, 91, 91, 35, 45, 45, 13, 28, 14, 7, 4, 65, 60, 3, 16, 12, 0, 30, 30, 30,207,185, 92,174, 15,135,195,193,214, -173, 91, 9, 46,151,219, 41, 60, 60,124,177, 74,165, 58,108,100, 64, 23, 96, 99, 99,211, 64,205,226,243,249,136,138,138,194,228, -201,147,245, 36,139,207,231, 99,247,238,221,232,214,173, 27, 52, 26, 77,128,153,229,189, 7,160,143, 25,138, 31, 81, 75,206, 77, -146, 81,157, 78, 55,173,228,189,247,218, 33, 62, 30,189,124,124, 58,118,237,218, 21, 20,245, 74,208,244,241,241,105, 37,151,203, - 11,148, 74,229,191, 80,147,218,224,161, 81, 82,164, 98,144,157, 81, 19,126,250,224,193, 3,132,134,134,234, 21,172,250,106, 22, -159,207,135, 88, 96,221, 44,162,197, 48, 53,207, 37,185, 92, 78,198,199,199, 59,251,251,251, 19, 0,224,239,239, 79, 60,124,248, -208,209,202,202,170,216,215,215,215,228, 0, 88,108,107,135,221,211,198, 3, 0,190, 26, 52, 76, 63, 48, 58,255,245, 98,240,120, - 60, 12, 92,176,248,181,235,158, 97, 24, 14, 44,176,144, 44, 51,184,200, 95, 69,178, 26, 43, 90,209,209,209,201,209,209,209,175, -169, 99,205,132,105, 69,171,190,116,215, 92,212,221,172,134,176,113,227, 70,116,234,212,201,104, 71,180,101,203, 22,236,219,183, -111, 35,128,140,102, 75,142, 3,187, 4, 98,211,241,100,159,246,129, 4, 0,172,252,124, 4, 89, 93, 93,141, 27, 55,110,192,206, -206, 14,207,158,153,157,246,203,198,206,206,238,107,146, 36,199,113, 26,207, 0,104,154, 96,210, 12,195,196, 86, 84, 84, 24, 76, -239,192,178, 0,165,213,161, 90,161,130, 70,163,193,231, 95,254, 96,178, 16,209, 0, 65,105,228,220,136,190,225, 98, 67,138, 78, -104,167,126,248,108,138,245,107,157, 55,135, 4, 72, 18,232, 28, 90,163,184, 60,188,155, 12,134, 1,104, 6,112,118,117,192, 47, - 7, 54, 24, 37,249, 58,154,169, 29, 29,211,168, 82,211, 8, 8,139,196,203,212,120,189,130, 36,224,215,184,140,249, 60, 30, 24, -150,168,201,250, 96,136, 8, 9,196,222,101,210, 12,191,157,113,143,241,113,100, 39, 28,185,148,136,177,131,130,113,245, 78, 10, -250,247,232,136,228,244, 44, 4,250,181,198,214, 93,177, 96, 89,200,127,220,180,186,224, 85,135,166,203, 54, 71,209,186,125,251, -182,178,177,138, 85,255,157, 53,221, 31,130,101, 95, 41, 90, 74,149, 26, 11, 22,153,149,206,167,166,141,250,132,137,205, 57,216, -152, 98,101, 14, 17,107,172,108,193, 68,122,150,182, 0,186, 1, 11,255,147, 15, 78,154,166,113,230,204, 25,125,123, 52,213,142, -245,219,206, 12,146,131,236,236,108, 36, 39, 39, 35, 44, 44, 12, 21, 21, 21,224,145, 36,230, 63,126,140,142, 83,166, 64,195,231, -131, 97, 24, 8, 4, 2,204,152, 49,195,236,250,108,230,211,185, 54,152,155, 54,101,124, 67,120,120,120,187,180,234,106, 36, 63, -121,130, 65, 43, 86, 0, 0,206,158, 61,219,224,154,152, 55,111,158, 32, 37, 37,229,195,251,247,239,127,152,159,159,191, 17,192, -124,131,207, 89, 86,173,143,209,122,111,226, 24,180,243,111,139,125,191, 30,208,239,159,247,197, 28,240,120,124,240,248, 60,216, -219,217,155,117, 54, 90,173, 86, 79, 90, 21, 10, 5,121,246,236,217,150,131, 7, 15,230,207,153, 51,135, 0,128,125,251,246,145, -223,127,255,189,228,226,197,139,252, 22, 45, 90, 72, 77,146, 75,138,122,173,141, 9,130, 0,143,199, 3, 95,192, 7, 24, 6, 4, - 65, 72,214,173, 91,183, 50, 57, 57,185,187,191,191, 63,212,106,245, 20,212, 76,212,176,228,209,178,144, 45,163, 92,164,169, 88, -171, 90, 85,202, 16,100,245,227,182, 12, 17,181,250, 49, 91,120,179, 73, 25,230,197,104, 53, 5, 14,135, 99, 82,173, 34, 73,210, -164,235,112,222,188,121,176,177,177, 49,212, 1,177,143, 31, 63, 78,145, 74,165, 59, 1,252,240, 70,141,115, 57, 33,249,235,185, -163,228,168,245,173,218,219,219, 23, 15, 24, 48,160, 10, 0,117,248,112,195, 1,178, 90,173, 54,216,129,219,217,217,125,253,243, -207, 63,207, 30, 57,114, 36,217, 56,197, 64,125,247, 94,221, 75,171,213,226,240,225,195,179, 23, 46, 92,136,138,138,138,185,198, - 58,113, 69,181, 18,202,218, 64,232,231, 73, 71,204,125,168, 27,220,101,109,239,129,150,109,131, 13,118, 38, 36,191, 38,134,200, -205,235, 85, 7,102, 99, 35, 2,109,196, 38, 65,144, 25, 89, 57,249, 45, 90,185, 59,226,121,174, 12,110,173, 59,161, 44,239, 85, - 61,112,185, 28,240,106, 93,135,246,182, 18,200,138,138, 64,146, 28,163,196,120,245,254, 4,220, 73,202,194,209, 75, 15, 65,169, -170,177,105,207,121, 80,234, 42, 80,170,106, 80,170,154,247,181, 11, 63, 2, 65,160, 64,171,174,110,223,156,118,231,114,185,232, -209,163,135, 65,162,147,151,151,103,166,162,197,234, 21, 45,165,170,153,109,100,222,200,201,168, 98, 85,183,255, 77,137, 65, 93, -202, 7,177, 88,220,109,247,110,195,105, 28,154,130,187,187,251, 57,107,107,235, 54,230, 30,223,140,228,165,107,237,237,237,191, -246,247,247, 15,216,180,105, 19,143,195,225, 96,224,192,129,237,221,221,221,179, 1, 32, 48, 48,208,179,238, 25,243,233,167,159, -178,183,111,223, 78,170, 25, 99, 24,134, 64, 32,120, 98,103,103,215,173,127,255,254,168,168,168, 64,110,110, 46, 36, 18, 9, 58, -110,216,128,199,159,126,138,144,237,219, 65, 14, 24, 0,130, 32, 32, 16, 8,240,248,241, 99,136,197,226, 39, 42,149,193,148,111, - 61, 0,124, 11,160, 23, 94,185, 11, 89, 0, 55, 80,147,118,225, 78, 19,207, 59, 18, 0,104,134, 49,213, 88, 19, 23, 44, 88,128, -114, 30, 15, 24, 62, 28,252,140, 12, 80, 20,133,176,176, 48,189,202, 30, 22, 22, 6, 46,151,139,224,224, 96,120,122,122, 98,235, -214,173, 19,141, 17, 45, 85, 21,133,236,140,151, 8, 15, 15,215, 43, 87,195,135, 15,215, 43, 90, 60, 30, 79,175,108, 17,180,105, -226, 74, 16, 4, 91,127,144, 76,211, 52,193,229,114,185,115,231,206, 37,198,140, 25,195,106, 52, 26, 70, 32, 16,144, 71,143, 30, - 37,174, 94,189,202,173,174,174, 54, 57, 16, 15, 26, 53, 14, 95, 13,126,171,230,222,111,227, 2, 30,159, 7, 1,159,143, 5, 79, - 94,234,219,197,118,247, 65, 65, 76, 76,204, 88,127,127,255, 26, 55, 60,192,181,228,209,178,192,132,208, 35,107, 68,146, 52,245, -182,101, 0,136,218,109, 89, 61, 66, 37, 35, 8,226, 30,203,178,221, 27, 29, 91,183, 95,211,232,189,110,255,163, 55, 40,126,221, - 90,135,175,145, 47, 99, 35,226,244, 91,183,110,249,117,237,218, 21, 57, 57, 57,175,205,132,171,235,184, 36, 18, 9,196, 98, 49, -110,222,188, 9, 0,233,134,140, 93,189,122,245,123,212,100, 93,174, 41,145,135, 71,120,255,247,250,221, 12, 29,214, 29,251,163, - 15, 84, 72,165,210, 96,188,202,161, 67,120,122,122, 78,230, 9,184,227,125,130,188, 34,192, 48,223, 94, 62,125, 99,133,177, 51, -244,105, 31, 88, 5, 64, 89, 55,235,240, 13,103, 31,130, 36,201,113, 35, 71,142, 36, 83, 82, 82, 48,126,252,120,236,219,183,207, -224,177,147, 39, 79,198,193,131, 7, 49,114,228, 72,114,209,162, 69, 6,211, 59, 52, 84, 75, 52,127,217, 69,153,246,236, 17,246, - 30,252,217, 96, 12,146,171,107, 77, 60, 86, 81, 81,177,254,187,238, 93,141,123, 70, 24,157,230, 98,194,253,187,225, 61,251, 14, -228,231, 22,150,131,209,169,161,146,191,250,189,162,188, 16,172, 78, 5,190,149, 35,220,157,237,240,224,214,111, 26, 74,163,186, -104,204,230,236,145,129,248,116, 68, 0,192, 50, 24, 53,255, 23,196,253, 48, 75, 63,130,238, 61,102, 14, 46, 31,254,206,236, 24, -191,198,224,241,120,120,252,248,177,210,144,154,197,225,112,204,201,201, 85,171, 58,106,161, 80, 40,161, 80,170,254,202,103,135, -139,155,155,219,143, 14, 14, 14, 34, 3, 68,202,197,197,197,229, 71, 39, 39, 39,145,185,174, 67, 67, 36,171, 54,175,214,253,105, -211,166, 53,139,108, 9,133,194, 54,233,233,233,250,100,165,198,222, 53, 26, 13,250,247,239,111,110,242,210,211, 0, 94,120,120, -120,220,232,216,177,163,221,243,231,207,113,224,192, 1, 62,143,199,243,170,123,126,200,229,114,112, 56, 28, 20, 21, 21,105, 1, -124, 0, 19,174, 51,181, 90, 29, 31, 31, 31,223,121,196,136, 17,156, 39, 79,158,128,195,225,212,148, 43, 60, 28, 33,219,183, 35, -105,238, 92, 68,100,101, 65, 69, 81, 16,137, 68,184,112,225, 2,165, 80, 40,226, 13,217, 19,139,197, 59, 51, 51, 51, 3, 69, 34, - 17, 40,138, 2,195, 48, 32, 73,146,224,114,185,189,237,237,237,183, 0,232,222,168,177, 92, 67,186,247,239, 64,235,116,180, 52, -231,185,204, 84, 5,148,148,148,224,244,233,211, 8, 11, 11, 67, 68, 68, 4,242,242,242,144,145,145,129,183,223,126, 91,127,204, -163, 71,143,144,144,144, 0, 95, 95, 95,211,138, 30,169,133,111,135, 54,224,243,249, 53, 10, 17,143, 95, 59,240,225,233,149, 44, - 62,143, 15, 30,151, 7,145, 88,100,182,162, 69, 16, 4, 72,146, 4, 65, 16, 16,139,197,117,131,108,166,101,203,150,210,210,210, - 82, 15, 0, 13, 3, 10, 12, 0, 0, 32, 0, 73, 68, 65, 84, 28,177, 88, 12,154,166,205, 26,180,212,245, 17,117, 36,139, 47,224, -235,149, 45, 0, 40, 47, 47, 87,141, 28, 57,242, 95,106,181,250,125,188,217, 10, 37, 22,252,205, 64, 16,196,189,255,196,111,155, -129,225,181,196,234,181,160,120, 99, 23,248,219, 61,123,246,220, 62, 97,194,132,129,155, 55,111,134,181,181, 53,164, 82,169,190, - 67, 20, 8, 4,104,213,170, 21, 74, 75, 75,177, 99,199, 14,188,124,249,242, 10,128, 25,230,150, 72, 42,149,222,126,246, 48,189, -164,255,216,158, 78,129, 61, 59,216,231,166,191, 12,147, 74,165, 55,107, 73,214, 47, 19,230,189,253,126,255,209,161,224, 11,120, -200,125, 86,128,203,167,111,252,127,105, 76, 14,135,195, 33, 8, 2,227,199,143, 55,235,248,127,252,227, 31,136,143,143,135, 49, - 55, 35, 83,167,104, 41, 84,168, 86,254,117,131,181,207,102, 77,198,103,179, 38,235,201,132, 57,174, 23, 0,240,244, 60,100,132, -104, 81,155,227, 14,237,248,184, 75,104,184,119,183,192, 54,184,115,255, 33,246,111,127, 37, 50,236,250,126, 37,190,217,117, 5, -173,220, 28, 64,169,171,113,238,200, 79, 5,148, 90,177,249, 13, 69,185, 26,114, 75, 16, 96, 89,166, 89,231, 94, 71,158,120, 60, - 30,130,130,130, 12, 42, 90,165,165,165, 74, 83, 29,131,190,141, 52, 90, 84, 85, 43,161, 84,252,101, 68, 43,164,119,239,222, 23, - 99, 99, 99,157, 92, 93, 93,145,159,159,223,152,104,133,244,234,213,235, 98,108,108,172,147,155,155, 27,114,115,115,205, 78, 43, -210, 4,201,130, 76, 38, 35,202,202,202, 24, 7, 7,135,102,145, 45,146, 36,161, 86,171,145,154,154,106,238,223,154, 61, 67,204, -206,206,110,247,193,131, 7,237,138,139,139,193,225,112,144,154,154,218, 96,214, 97,221,235,151, 95,126,225,143, 26, 53,234,231, -242,242,114,163,211,218,116, 58,221,198,201,147, 39,127,152,151,151,231,224,234,234, 10,169, 84, 10,129, 64, 0,150,101, 65,244, -239,143, 62, 47, 94,128,162,105,136,197, 98,164,165,165, 97,231,206,157,213,181,169, 98,154, 20,200, 8,130,240,227,243,249,152, - 52,105, 82,131, 29,123,246,236,193, 59,221, 56,221, 92,236,184, 85, 58,136,212,133,226,183,206,113, 56, 28, 34,164,199,128,246, - 61,250, 14, 15,122,154,116,231,185,172,240,165,169,135,146, 86,163,209,192,223,223, 31,247,238,221,195,165, 75,151, 48, 96,192, - 0, 68, 68, 68, 32, 49, 49, 17,191,253,246, 27, 18, 18, 18, 64, 16, 4,156,156,156,234,194, 47,140,198, 96,104, 20, 58, 20,229, -151,188,166, 94, 53,222,230,243,249, 80, 43, 41,179,218,232,201,147, 39,184,119,239,158, 62,181, 12,135,195,209, 77,153, 50, 5, - 44,203,178,153,153,153,176,177,177, 97,167, 77,155, 70,115,185, 92, 93, 94,158,121,241,193,117,164,170,142,100,113,249,188, 6, - 4,141, 97, 24,121, 98, 98,226,199, 0, 18,107,149, 44,192,146, 71,203,130,255,219, 56,131,215, 23,150, 54,169,104,189, 0, 48, -232,192,129, 3, 19, 79,156, 56,177,113,203,150, 45, 46,145,145,145, 40, 43, 43,131,183,183, 55, 60, 60, 60, 16, 23, 23,135,179, -103,207, 22,211, 52, 61, 31, 64, 83,210,207, 32, 24,201, 89,147,247, 92, 26,171,174,170,250,180,107, 68, 0,174, 28,254, 61,218, -221,221,125, 6,135,195,249,124,218,226,119,223,239, 55,178, 59,210, 18, 50,113,251,183,199, 40,204, 41, 54,105,179,113, 48,188, -189,189,253,135, 86, 86, 86, 2, 0, 84, 19,163,226,198,179, 14,245, 54,105,154,166, 53, 26, 13, 14, 29, 58,100, 22,217, 58,112, -224, 0, 84, 42, 21,232,215,253,171,122,155, 44,195, 18, 92,158, 16,158,173,252, 65, 81,213, 96,152, 55,158, 80,169,183, 89, 55, - 2,125, 46, 16,192,181,184, 24,119,238,220, 49,143,114, 15, 31,110,170,141, 84, 26,149,124,210,119,107, 22,196,205,140,250,214, -126, 64,207,206,248,106,195, 30, 80,212, 46,144, 28, 18, 98, 33, 31, 93, 67,123,129, 3, 53,126,140,249,162, 92, 81, 89, 54, 9, -175, 47,197,211,192, 38,107,204,195,194, 2, 52,195,224,210,245,187,102,159,187,190,183,167,105,112,185, 92, 60,123,246, 76,217, -212,108, 67, 14,167,198,205, 89, 55, 82, 55,102,147,101, 24,130,199, 23,161,149,119, 71,104,212, 85,127, 73, 27,185,186,186,126, -113,252,248,113,167,186, 84, 9,137,137,137, 32, 8, 34,245,149,226, 88,179, 95,169, 84, 34, 41, 41, 9,137,137,137, 64,205, 12, - 55,179,239,163, 58, 37, 75, 38,147, 17, 82,169, 20, 86, 86, 86,100, 98, 98,162, 58, 56, 56,248,190,137,251, 91,111, 83,165, 82, -101, 25,138,159, 84,169, 84, 45, 68, 34, 17,175, 81, 39,234,217,174, 93,187,180, 38, 92,136,175,149,179,162,162,226,206,194,133, - 11,187, 14, 27, 54, 12, 95,124,241, 69,169,131,131,131,205,143, 63,254,200,229,112, 56,196,204,153, 51,233,162,162,162,170,159, -126,250,201,238,196,137, 19, 40, 47, 47,191,105,198,185,203, 85, 42,213,199, 61,123,246,220,115,254,252,121, 43, 63, 63, 63, 84, - 86, 86,130,101, 89,236,222,189, 27, 51,103,206,132, 72, 36, 66, 90, 90, 26,222,121,231, 29,133, 66,161,248, 24,175,199, 78,214, -217, 36, 8,130, 96, 25,134,193,178,101,203,244,201, 73,235,146,149,218,136, 9,236,156,215, 86, 50,231,167, 10,201,196,175,126, -154, 2, 0,180, 78, 71, 63, 77,186,243,124,247, 15, 95, 93,229,243,249,215, 77,180,209,146, 57,115,230,252, 56,124,248,112,177, -181,181, 53, 74, 75, 75,113,227,198, 13,220,186,117, 11,183,111,223,134, 70,163,129,147,147, 19, 28, 28, 28, 32,149, 74,241,228, -201, 19, 37,128, 37,198,108, 10,172,120,240,105, 95, 55,243,183, 70,193,226,213,155,109, 88, 95,221,226,243,120,102,221, 71,125, -251,246, 69,143, 30, 61,234, 8, 16,157,157,157, 45, 85,171,213, 68, 61,210,159, 87, 71,200,189,188,188,116,251,246,237, 99,141, -217,188,189,115, 43,206,175, 90, 2, 1,159,143,249,169,185,122,210,181,103, 64, 23,240, 4,124, 4,140, 24, 83,255,183,219, 80, -227, 46, 68, 35,146,101,172,239,248,211,247,166,197,230,127,173,205,255,203,144,226, 13,150,224,169,195,126,149, 74,117,238,163, -143, 62,138, 9, 9, 9,249,104,211,166, 77, 4,159,207,199,138, 21, 43,216,252,252,252, 95,107, 71, 33,101,111, 82, 42,150,101, -127,189,118,236,230, 39, 83,163, 70, 18,243, 54, 79,235,125,255,114,210,147, 78, 61,253,208,169,167, 31,238, 95, 73,193, 15,139, - 15,236,163,181,244,178,130,130,130, 28, 19,166,212,131,122,117,104, 28, 12,239, 20,127,245,178, 83,115,103, 29, 50, 12, 19,123, -224,192,129,217,163, 71,143, 38,239,222,189,251, 90, 76, 86,221,178, 59, 12,195,224,226,197,139,160, 40, 10,191,254,250, 43,195, - 48,140,225, 60, 90, 96, 79,126,183, 57,102,234,175,123, 79, 10, 4,124, 2,183,174, 31, 69, 69,153,241, 89, 93,124, 62, 15,191, -236, 62, 70,241,249,188,167, 77,237,167, 40, 42,247,242,229,203,110, 67,105,154, 71,146,100, 83, 4,170, 73,196,198,198,106, 25, -134,201, 54,113,216,205,194,151, 57, 35, 86,127,241,193,129,225,239,125,228,214,179,103,111,158,179,171, 27, 8,130, 64, 81, 97, - 17,210,146,238,106,207, 29,253,185,176, 90, 97,222, 18, 60, 31,172,191,166,143,201, 2,128,200,153, 91,244,241, 89, 0, 48, 98, -218, 66,244, 15, 11, 4, 97,142,244,244,138,100, 49, 58,157, 14, 18,137, 4, 58,157,174,201, 20, 15,118,118,118, 98,149, 74,165, -172, 77,196,104, 84, 42, 98,129,191,188,141,104,154, 14, 40, 43, 43, 67,117,117, 53,110,221,186,197,174, 89,179, 70, 38,147,201, -244, 65,155, 90,173, 54,160,180,180, 20, 85, 85, 85,184,121,243, 38, 27, 19, 19, 35, 43, 41, 41, 89,220,156,123, 72, 44, 22,119, -227,114,185,247,203,202,202, 24, 43, 43, 43, 82,171,213,106,131,131,131,133, 98,177,216,236, 5,213,165, 82,233, 48, 67,251,124, -124,124,210,211,211,211,219,209, 52, 93,127, 13, 68,190, 74,165,242,235,217,179,167, 57,207,143, 57,187,118,237,194,177, 99,199, - 66, 43, 43, 43, 39,103,103,103,239, 1, 16,202,229,114,241,240,225,195, 84,149, 74, 53, 97,244,232,209,187,203,202,202,238,160, -102, 9, 30,115,112, 62, 45, 45,109, 82, 64, 64,192,174,175,191,254,218, 58, 34, 34,130,235,233,233,137,238,221,187, 35, 45, 45, - 13,103,206,156,209,110,219,182,173, 90,161, 80,124, 0,224,162,241,102, 7,161,211,233, 32, 16, 8,244, 47,161, 80, 8, 62,159, - 15,185,146,197,244, 13, 25, 74, 29,196,202,141, 43, 62, 62,195, 2, 68, 65,110, 70,113, 81, 65,238, 29,130, 32,174, 75,165,210, - 10, 3,117, 38, 80,169, 84,157, 89,150,229, 16, 4,177,153,162,168,105,179,102,205,242, 88,187,118, 45, 58,116,232,128,226,226, - 98, 72, 36, 18,248,249,249, 65, 38,147,225,238,221,187,180, 66,161,216, 14, 96, 37,106,227, 71, 12,161,188,184, 18, 45,221,189, - 26, 40,159, 44,203,130,165, 1,173,154, 6, 77,177,208, 16, 90,240,120, 90,240,249,124,115,148, 39,150, 97, 24,148,121,120,128, - 73, 74,194,237,219,183,193,178,172, 65, 85,205,223,223,223,140, 7, 59, 3,129, 80,208,192, 93, 72, 16, 4,248, 2, 1,120, 2, -126, 83, 51,103, 44, 42,150, 5,255,211, 48,215, 55, 94, 14, 96,198,163, 71,143,246,244,235,215, 47,142,101, 89, 30,106,252,145, -191,255,153, 63, 47, 40, 40,120,112,243,204,131, 69,110, 45, 29, 98,222,154,220, 27, 29, 58,123,131,214,209,184,113,246, 33,126, - 93,123,226, 96, 94,110,222, 52,152,177,246, 25,195, 48, 87,123,117,235, 64,162, 94,174,110, 79, 79, 79,230, 77,102, 29, 86, 84, - 84, 44,159, 63,127, 62,190,248,226,139, 55,153,117,216, 36, 30, 63,145,205, 32,192,182, 28,241, 86,159,161, 32, 72, 86,163, 81, - 27,121,240, 65,159,185,148,207,231, 61,189,151, 40, 13,110,234, 56,153, 76, 54,244,253,247,223,191,200,229,114,219, 52,167,206, - 25,134,201, 46, 44, 44, 28,104,250, 72,221, 13,181,178,210,239,244,193, 29,115,207, 31,219, 53,148, 97,104, 95, 2, 0,135,203, -127,174,165,168, 11,106,101,229, 38,152,185,168,244,186, 25,225,152,243,221,111,216,250,197, 8,204,138, 57,140,159,151, 77,199, -162, 13, 7,240,237, 23,115,176,102,203,191,240,213,156, 73, 24, 59,241,125,134, 37,200, 63,204, 61, 15, 14,135,115,126,199,142, - 29, 83,167, 79,159,174,159,180,192,178,108,131, 7,187, 86,171, 85, 50, 12,131,237,219,183, 51, 0,206, 27,179,215,176,141, 8, -214, 88,188,148,185,109, 84, 89, 89,249, 65,120,120,248,110, 0, 66,150,101,159,149,149,149,253, 19,120,181, 52, 84, 85, 85,213, - 7, 61,123,246,220,205,178,172,144, 32,136,215,246,155,131,218, 84, 15,221, 28, 28, 28,238,215, 42, 89,194, 55, 9,136, 55, 86, -213, 70,220,138,230,184, 16, 25, 0,179,234,101,124, 95, 27, 26, 26, 90,127, 81,233,212,178,178,178,110,111, 80,174,139, 74,165, - 50,112,217,178,101,115, 69, 34, 81,127,133, 66,209, 30, 0, 36, 18, 73,154, 90,173,190,170, 84, 42, 55,193,116,110, 42, 13,195, - 48,105, 58,157, 46,200,197,197,165,102, 70,109, 45,217, 2,128, 83,247,233,251, 0,221,189, 70, 20,223,111,118,193,206,158, 61, -219,218,193,193, 97, 8, 65, 16, 99, 89,150,245,151,203,229,234,101,203,150,221,140,141,141,173,104,211,166,205, 91,195,135, 15, - 39, 28, 29, 29,113,239,222, 61,182,164,164,228, 40,128,197, 48, 99,166, 53,195, 48,217,235,214,173, 67,115,239,119, 99,251, 41, -138, 42, 56,123,246,172,243,176,162, 34, 46,195, 48, 24, 49, 98, 68, 3, 2,215, 24, 79,159, 62,133, 90,173, 54,154,204, 81, 93, - 81,134, 1,115, 23, 2,181,179, 63,235, 80,163,100,177, 96, 53, 22, 94,101,193,223, 11,255,238, 5, 61,205,146, 22, 61, 60, 60, -198,139, 36,194,207,188,219,123, 4,231,103, 20,165,200, 43, 20,251,164, 82,233, 14, 3, 15,114,179,108, 54, 51, 97,169, 69,254, -253, 55,217,124,149, 71,139, 6,203,210, 96, 25, 22, 44,203,128, 97,232,154, 5,175, 89, 6, 44, 77, 19, 4,129, 63, 52, 74,163, -153,193, 27,151,211,193,217,217,121, 37,203,178,195, 56, 28, 14, 89, 95, 12,171,255,185, 86,201, 58, 47,147,201,190,106, 66,121, -253, 63, 87,159,177,177,177, 77,146,127,115,103, 29,142, 27, 55,142,110,230,189,121, 85, 34,145,120, 52,181,175,186,186, 58, 71, - 42,149, 14,249, 47,169,207,250, 51, 6,155, 99,179,217,179, 14, 77,217,244,246,246, 22, 82, 20,213, 5,128, 31, 65, 16,246, 0, - 74, 41,138,186, 80, 92, 92, 92, 8,160, 27,128,101,181,191, 89, 5,224,254,127,248,126, 23, 59, 59, 59,239, 34, 73,178,165, 57, - 63,214,233,116,154,210,210,210,169,141, 6, 4,122,155, 78, 78, 78,247,185, 92,110, 75, 51,236,188, 44, 41, 41,233,102,121,126, - 90,108,254, 15,161,113, 16,188,193, 76,241,255, 14,162,101,177,105,177,105,177,105,177,105,177,105,177,105,177,105,177,249,191, - 78,180,154,220,182, 76,171,181,192, 2, 11, 44,176,192, 2, 11, 44,248,115, 56,211,136,108,157,169,251, 64, 24, 97,165,205,145, - 4,223,132,217, 94,178,216,180,216,180,216,180,216,180,216,180,216,180,216,252,219,217,180,224, 47,132, 69, 86,181,216,180,216, -180,216,180,216,180,216,180,216,180,216,252, 95,135, 65,215, 33,105,169, 27, 11, 44,176,192, 2, 11, 44,176,192,130,127, 15,204, - 38, 90, 18, 55,255, 0,103,239,224,221, 14, 45, 59, 37, 58,180,236,148,232,236, 29,188, 91,226,230, 31,240, 55,173, 55, 49,128, -137, 92, 46,247,162,187,187,123, 37, 12, 44,189,243, 63, 0, 91, 0, 99, 81,147,223,103, 20, 0,171,191,210,120, 4,192, 29, 15, -124, 54, 5,200,153, 2,228,140, 7, 62,139,248, 31,140, 27, 92, 49,219, 35,252,250,185,137,231, 86,204,246, 8,111,114,255,124, - 15,167,219,191,141,251,110,237,103,158,142,127,209, 95,218,184,186,186,238,116,115,115,203,114,117,117,205,118,117,117,221, 5, -192,206,242,184,179,192, 2, 11, 44,248,183,161, 46, 70,171,238,165,143,209,226, 2, 64, 92, 92, 92, 4,128,107, 0,250, 69, 70, - 70,198, 55,254,181,131, 87,208,116,223,182,190, 95,172, 94,177,152,112,119,117,182,210,209, 12,149,153,149,219,113,249,234,152, - 35,249, 2,238,198,178,156,164,159,223,160, 80, 4,135,195, 25, 47, 20, 10, 35, 1,212, 17,182, 84,181, 90, 29, 71,211,244, 33, -152, 55, 77, 27,110,110,110,215, 57, 28, 78,235,230,252, 49, 77,211, 57,133,133,133,189,223,176, 50,199,121,121,121,237,138,136, -136,176, 10, 13, 13,133, 64, 32,192,178,101,203,230, 75,165,210, 77,230, 26,112,112,240,177,161,132,162,207,185, 2,193, 96, 86, -171, 9, 98,193, 2,164, 48,137,209,169, 47,243,213,234,141,101,101, 25,114, 51, 77, 45, 6, 48,173,182,174,126, 6,176,238,207, - 92, 37, 83, 59, 67,171,165,107,174, 9, 62, 23,244,201, 23,118,215,150, 44, 89,194,141,140,140,196,207, 63,255,220,123,231,206, -157, 31,203,229,242,203, 0, 78, 1,120,254,103,175, 74, 55, 96, 70,207,222,189,191,155, 58,127, 62, 71,121,253, 58,190,219,181, -107, 51,106,242, 45,109,109,238,181,196,231, 99,172,179, 51, 47,146,101,209,133, 0, 8, 2,120, 40, 43, 97,206, 82, 20,125, 8, -102,228, 98, 51,130,137,104, 56, 29,127,127,115, 13, 84, 60,103,151, 10, 71, 4,244,169,120,126,117, 41,128,183, 26,239,215,169, - 68, 83, 89, 78,171, 72, 37,155,144, 11, 96,195,159,172, 86, 43, 23, 23,151,196,147, 39, 79,182, 12, 13, 13,229, 2,192,253,251, -247,167, 68, 70, 70, 14,144,201,100, 65, 0, 42,255, 67, 15, 33, 17,151, 36, 63, 19,240,120,131,105,154,238, 4, 0, 28, 14,231, -177, 70,171,189,168, 99,152,173, 48, 51, 39,155, 5, 22, 88,240,191, 11, 83, 92,228,191, 28, 6, 51,195,215,157, 28, 91,255,189, - 62, 36,174, 29, 58,134, 13, 28,243,180, 66,174, 80,101,101,229,149,205,251,108,205,197,143,231,172, 63,177,225,167,184,179,241, -119, 82,111, 7,132, 14, 73,145,184,118,232,104,192,180, 33, 31,174,151, 88, 44,126,176,109,219, 54, 42, 45, 45,141, 45, 47, 47, -103,159, 62,125,202, 30, 61,122,148,253,228,147, 79, 84, 98,177,248, 1, 0, 47,115,108,186,185,185, 21, 62,189,242, 27,251, 50, - 49,129,205,190,127,135,213,106,181, 44, 69, 81, 44, 69, 81,108,202,249, 56, 54,241,212, 49,246,225,209, 67,172, 70,163, 97, 53, - 26, 13,171, 86,171,217,182,109,219,230,155, 89,206,198,240, 12, 12, 12,212,196,197,197,177, 71,142, 28, 97,231,207,159,207,134, -132,132,208, 0,102,154,123,238, 18, 87,191,254, 54, 45,130,101,211,163,182, 82,103,110, 94, 96,147, 95, 60,100,147, 95,164,179, -177,151, 82,217,105, 11,182, 80, 54, 45, 66,100, 18, 87,191,254,166,206,221,193,193, 33,140, 32, 8,182, 14, 0,216,214,173, 91, - 87,213,127,121,121,121, 53,120,181,106,213,170,170, 77,155, 54,207,157,156,156,186, 52,101,115, 66, 39,176,108,202,126,150, 77, -217,207, 46,233, 11, 54, 57, 57,249, 54,203,178,215,234, 94, 74,165,242,218,241,227,199,175,189,251,238,187,215, 0,188, 99,164, -158,204,170,207, 41, 64,142,252,228, 73,150,221,180,137,101, 35, 34,216, 84,128,157, 2,228, 52,211,102, 91,119,119,222,195,245, -235, 62,214,156, 60,249, 43,123,238,220, 25,246,236,217, 56,246,196,241, 93,236,230, 77,159, 81,110,110,188, 36, 0,237,154, 97, -147, 11, 96, 13,128,141,168, 81, 46,211,100, 50, 25, 91, 80, 80,192, 2, 72,171,253,110,163,139,139,203, 6, 52,173,190, 13,170, -175,100,205, 29,230,126,238,189,183,122,179,242,138,124,246,189,183,122,179,115,135,185, 55, 80,182,134,249,248,216,204, 26,209, - 73,150,124,127, 31, 61,107, 68, 39,217, 48, 31, 31,155, 55,172, 79, 2, 53,235,132,110,187,114,229,138,142,173, 7,173, 86,203, -238,217,179,135,118,112,112,248,181, 25, 54,219,187,184,184,100, 59, 58, 58,166,213,255,210, 37,120, 84, 79,255, 62, 83,150, 59, -117,124, 55,162, 25,229, 12, 21,241,249, 47, 47, 30,254,145, 46,201,121,204,106,148,133,108,197,179, 4,246,101,234,109,118,207, -142,141, 90, 1,151,251, 18, 64,232,159,185,150,154, 9,139, 77,139, 77,139,205,255, 66,155,198,184,200,255,101,112, 27,159, 96, - 99, 8,133,130,168,229, 75, 22, 18,229, 37,229, 74, 85,165, 92,163, 85,169, 84, 36,159, 85, 61, 78,121, 81, 68,114, 57,229,115, -231,204,182,137, 90,180, 36,170, 26,152,100,230,127,122,133,132,132,220, 61,118,236,152,171,163,163, 35, 42, 42, 42, 80, 82, 82, -130,187,119,239,130,101, 89,140, 30, 61, 90,216,163,123,247, 46, 75,151, 45,187,245, 50, 47, 47, 28,134, 59,222, 87,228,197,209, - 25,235,122,215,172, 69,251, 85, 86, 73, 77,175, 67, 16,216, 57, 46, 82,127,204,202,151, 53,171,101,136, 68, 34,253,130,196,111, -128,240,129, 3, 7,242, 1,224,195, 15, 63,172,148,203,229,209,181, 10,135, 89, 43,173, 74, 92,253,250, 59,123,120,198,253,184, -125,157,184,147,175, 31, 40,173, 14,217, 5,249,224,242,236,209,178, 37, 31,239, 79, 26,204,235,219,211,209,121,205,170,157,103, - 10, 24,140, 82, 20,167, 95, 48,100,203,222,222,126,207,161, 67,135,112,248,240, 97, 0, 64, 90, 90, 26,252,252,252, 36,166,202, -144,148,148,228,243,206, 59,239, 28, 44, 41, 41,105,103,234,216,198,137,241,133, 66, 33,122,247,238,141,142, 29, 59,226,228,201, -147,253,106,149,173, 63, 5,229,245,235,176,126,244, 8,136,127,163,193, 75,219,174, 93,189,111,159, 61,179,207,249,204,217, 84, -108,216,176, 11,207,159,215, 8,109, 62, 62, 62,152, 56, 97, 28,239,241,227,155,129, 99,199, 78,188,249,251,239,207,123,215, 18, - 37, 83,248,250,167,159,126, 90,220,166, 77, 27,140, 29, 59,118, 92, 96, 96,160,187,173,173, 45,118,236,216, 1, 15, 15, 15, 31, -141, 70,243,236,228,201,147,158, 5, 5, 5,152, 61,123, 54, 10, 11, 11,231, 27, 50,212,111,104,191,165,194, 17, 1,125, 58,116, -157, 10,107, 91, 15,252,116,224, 16,158, 62,216,211, 71, 77,165, 46,229,211,241,147,149,172,112,154, 44,199, 58,170,117,183, 8, -167,118,129,239,192,187,107,130,179,138,254,253,197,210,193,109, 99,184, 34,213,158, 21, 27,164, 37,175, 25, 29, 27,203, 9,170, -124,226,152,116, 17, 37,192, 10,166,142, 96,233,213, 90, 22,239,244,237,219, 87,223,112, 89, 89, 89, 80,171,213, 8, 8, 8, 32, - 53, 26, 77,127, 51,235,181,253,144, 33, 67,254, 56,123,246,172, 83,251,246,237,101,165,165,165,250, 29,238, 78,246, 67,227,143, -109,158,189,230,187,127,249,239,101,137,114, 89,234,137,199, 38,108,133,246, 10,235,122,233,220,177,125,214, 68, 85, 46, 4,246, -197, 0, 83,130,140,131,191,128,176,114,196,248, 79,230,113,251, 15, 28,208, 98,240, 91, 99, 46, 61, 77,127, 62, 16,192, 61,203, -184,222, 2, 11,254,214,170, 22,251,191,118, 78,122,162, 21, 25, 25, 73, 52,117,130, 12,203, 4,187,185, 58,137, 55,175,223,125, -143, 67,105, 52, 18,123, 59, 13,207,206,150, 33,108,236, 56,148, 70, 91,229,237,227, 45, 96, 88, 38,216,128,253,198, 83, 60, 9, -177, 88,124,236,212,169, 83,174, 60, 30, 15, 12,195,192,197,197, 5,153,153,153, 40, 47, 47,135, 92, 46,199,243,212, 84,180,241, -106,133, 21, 81, 11, 61,102, 47,140, 58,166, 80, 40,186,161,161, 27,241,181,105,163,180,182,225,186,209,117, 75,176,188, 54,228, -175,253,174,137,125,230, 78, 69,205,204,201,201,129,181,181, 53,130,130,130,172,111,220,184,241,187, 17,146,213,192,166,131,131, -143, 13, 35, 20, 28,222,246,227, 50, 49,165, 77, 66, 74, 70, 41, 58,180,233, 3, 55, 39, 47,228,151,106,112,251,238, 41, 36, 37, -238,135,111, 11, 47,204,252,100,128, 40,102,221,145, 67,124, 93, 27,175,242,242,204,202,166,108, 86, 86, 86, 90,183,109,219, 22, - 94, 94, 53,235,158,209, 52,141,148,148, 20,208, 52,173,223,174,255,190,251,232, 21,232, 42,179, 49,117,202, 20,148,148,148, 88, - 55,101,147,199,129,110,222,199, 19,185, 98, 30, 32,144, 56,106,170,170,170,244,203,112, 80, 20,133,135, 15, 31, 34, 60, 60, 60, - 34, 54, 54,214, 20, 43, 50,171, 62, 41,224,219,239,126,253,117,203,164,138, 10, 18, 0,126, 38, 8,134, 98,217,111,205,189,150, - 92, 93,121, 71,207,159,219,235,204, 33,159,192,209,238, 27,220,189,155, 13,138,170, 41,111, 73, 73, 17,102,125, 86, 9, 62,207, - 6, 39, 79,254,203, 41, 32,160,247,209,130, 2, 42, 8, 13,221,136, 77,149, 83,116,238,220, 57,204,154, 53, 11, 41, 41, 41,158, - 28, 14, 7,119,238,220,129, 88, 44,198,250,245,235, 57, 1, 1, 1,158, 18,137, 4,231,207,159, 71, 97, 97, 33, 97,172,156,215, - 46, 92, 91, 93,241,252,234,210, 2,226,252,176,159, 14, 28,194, 71, 19,198,195,157,205,248,221,206,151, 88, 61,100, 68,175,175, - 88, 78,171, 72,137, 77,176,131, 95,208, 8,240, 5,214,152,249,229, 74,164, 37,157,118, 80,200, 19, 63, 35,232,220, 86, 43, 54, -196,206,121,173,156, 71,198,209, 31,238,191,209,245,162,215, 61,239, 71, 15, 63,190, 35, 77,216,153,248,138,104,249,112, 9,146, -182, 3,106,150, 79,121,246,236, 25,158, 63,127, 14, 46,151, 11,165, 82, 9,157, 78,215,100, 57, 61, 61, 61,103,232,116,186,175, -106,219,121,183, 72, 36,250, 96,223,190,125, 78,245,137,182, 75,240,168,158, 78, 54,146,129,133, 69, 37,101, 55,239, 37, 63,157, - 55, 99,108,191,235,183,147,114, 41,222,187, 57, 21,137, 39, 43, 12,212,167, 72, 44, 16, 28, 61,127,252, 95,214,218, 23, 87, 32, - 9,232, 7,158,181, 31,104,109, 30, 20,101,213,144, 63,151, 66,253,227, 15,232,252,217, 92,156, 62,113,196, 58,176, 83,183, 88, -181, 86,235, 7, 64,243, 6,247,102,115, 96,177,105,177,105,177,249,223,105,211, 32, 23, 97, 89,182, 43, 0,183,218,205,146, 90, - 94,224, 12,160, 24, 53,171,200,184,213, 62, 59, 4,245,126,214,120,187,254,177,141,183,235,127, 46,169,253,236, 90,251,126,143, - 32,136, 82, 19, 69,247, 64,205,210,132,103,106,223,129, 90, 87,162,201,192, 99,130, 32, 43,105,154, 17,242, 93, 92, 85, 31,190, - 55,176,211,111,151,238, 63,180,114,182,229, 14,237,215, 37,226,238,227, 23,183, 8,146,208, 18, 4,105, 86,220, 7,135,195, 25, -191,121,243,230, 78,182,182,182, 96, 24, 6,118,118,118,144,201,100,208,104, 52,168,168,168,128, 90, 94, 9, 74, 94,137, 71,185, - 89,232, 21,209, 15, 99,134, 13, 9,248,215,137, 83,227,105,154, 62,104,204,174,103,112, 23,189,146,181,178,181,211, 43,105, 34, -183, 92, 79,186,190,233,226, 7,190,181, 53, 6,207,139,250, 51,215, 64,194,153, 51,103,206,141, 30, 61,250,173, 5, 11, 22,144, - 82,169,244,124,102,102,102, 47, 0, 41, 38, 73,133, 80,244,249,167,159, 71, 58, 56, 88,179,136,189,120, 10,125,187, 76,128,149, -128,131,146, 74, 10, 4, 1,164, 38, 31, 3, 65, 56, 34, 49, 77,138, 62,157,109, 49,100,104,128,245,137, 35,169, 11,240, 42, 62, -232,181,166, 41, 43, 43, 67, 81, 81, 17,180, 90, 45,180, 90, 45,198,142, 27,135,189,123,246,160,186,186, 26, 74,165, 18, 26,141, - 6, 52, 77,131, 36, 73, 92,140,139, 69,238,139, 84,244, 12, 15, 7, 12, 44,189,180,231, 33,120, 0,110, 63,125,250, 20,169,169, -169,120,249,242, 37, 68, 34, 17,220,221,221,177,114,229, 74,168,213, 53,107,148,141, 27, 55, 46, 2,192,227, 63,123, 67, 61, 7, -118,102,210,244,210,183,142, 31,119,189,113,252, 56,115,251,244,233,151, 66,185,124,135, 57,191,229,243, 49,118,221,183,159,116, -144, 72, 36,120,153,179, 25,254,254,124,204,159,235,132,232,111,138, 1, 0,179,103,181, 68,247,110,206,168, 44, 63, 2,103,215, -197,216,178,101,142,239,180,105, 27,167, 40, 20,244,110, 19,166,151,158, 58,117,106,140,159,159, 95,139,132,132, 4, 66, 32, 16, - 64, 44, 22, 67, 44, 22, 67, 36, 18,161,168,168, 8,153,153,153,236,186,117,235,242, 0, 44, 53,102,104,197, 22,233, 45, 0,111, -205, 29,134,115, 79, 31,236,233,211,130,243,226,209,152,153,189,179, 18,111, 39,200,127,187,120, 99,149, 78, 37,202, 45,127,121, -105, 97,219,238, 9,206,159,125,241, 53,126, 88,183, 28, 79,239, 92, 47,117,243,170,220, 42, 38,212, 77,150, 51, 34, 98, 5,215, -195,205, 81, 55, 99,218, 24,251,211,110, 55,103,156,229, 18,178,130,226, 7,235,145,153,160, 20,182,235, 50,185,189, 15,169,185, -114,229,138,184,111,223,190, 80,169, 84,122,101,114,223,190,125,140, 78,167,187,218,228,181, 73, 81, 95,229,229,229,121, 40,149, - 74, 12, 27, 54,108,246,250,245,235, 37,117,107,212,209, 52,221, 64,201, 90,189,105,239,133,207,191,218,122,245,194,193,111, 60, - 87, 71,125,208,111,210,204, 53, 87, 97, 96, 29, 73, 46, 73,126,118,250,248, 46,119,145,131, 22, 98,199, 33, 80, 21, 42,241,116, -231, 71, 80, 84,170,208,125,245,215, 0, 4,208,104, 73,236, 24, 49, 22, 60, 39, 79, 44,159,254,129,231,146, 29, 63,125,194, 48, -204,102,203,184,222, 2, 11, 44,104, 4, 55,130, 32,226, 0, 32, 42, 42,106,113,116,116,116, 50, 65, 16,113, 44,203, 70,214, 10, - 40,113, 44,203, 70,214, 29, 83, 75,206, 94,219,174, 59,182,241,118,227,207,139, 22, 45, 10,140,137,137, 89, 27, 30, 30,126,240, -230,205,155, 47, 0,152, 34, 90,195,107,137,213,107, 75,239,144,117, 12,178,254,123, 3, 69,139, 97,174, 63,123,145,165, 24, 50, -168, 71,203,184,248,199,247,222,127,127,248,192,241, 35,250, 14,205,204, 41, 73,245,245,118,119, 78, 78,126,108,203, 48,204,117, -115,106, 73, 40, 20, 70, 14, 24, 48,128, 91, 86, 86, 6, 43, 43, 43,200,100, 50,228,229,229,129,162, 40,168, 42,202,161,174, 40, -135,170,188, 12, 84, 69, 25,158,223,191,139, 96, 95, 31, 97,109,176,188, 81,212,169, 46,141,149,170,250,202,150,192,198, 6, 66, - 27, 27, 16,205,119, 27,190,107,111,111,127,187,174, 83,165, 40,234,179,133, 11, 23, 22, 51, 12,131, 53,107,214,216, 90, 91, 91, -199, 2, 16,154, 50, 98,227,194,137, 12,239, 28, 68, 62,201, 76, 68,239,144,169,104,223,246,109,100, 22, 42, 81, 44,167, 80, 84, - 78,161,123,223,239,209, 58,228,107,180,234, 28,141,212,236, 82,120,182,240, 35,193, 21, 26, 93,252, 57, 55, 55,183,193,246,193, - 3, 7,160, 80, 40,224,235,235,139, 9, 19, 38, 96,225,194,133,152, 48, 97, 2, 60, 61, 61, 49,233,189,119,176,124,249,114, 20, - 20, 20,152, 42,170,186,125,251,246,106,111,111,111,181,183,183,183,154,162, 40, 84, 85, 85,161,188,188,188,113,125,207,105,110, - 69,186,186,186, 46,114,119,119, 79,116,117,117, 77, 22, 10,133,103, 31, 18,196, 19,149,183,183, 91,175,145, 35,137,142,239,189, -199,201, 22,139,137,120,192,218, 28, 91,206,142,188,225,253, 7,188, 37, 40, 47,219,165, 23,169, 62,120,223, 5,127,196, 7,226, -198,239,221, 48,235, 51, 95, 16,164, 8, 4, 41,128,162,250, 10,122,132,134,243,237,237, 9, 83,215,210, 68, 0, 15,123,245,234, -229, 57,115,230, 76, 66, 40, 20, 98,246,236,217,212,244,233,211,211, 39, 76,152,144,126,249,242,101,218,219,219, 27,173, 90,181, - 34, 90,181,106,229, 1,224, 97,237,111,140,194,214,151, 88,173,166, 82,127,183,247,147,188,160,225,220,179, 74, 43, 28,187, 98, -131,180,100,245,182, 23, 27, 50,159, 42,124,158,222,185, 94,146,158,116,154,201,188,119,173, 56, 63, 93,238,179,122,219,139, 13, -139,183,230, 55,121, 83,199,199,131, 57, 22, 23, 79, 41,170, 21,220,145, 35,250, 43,102,124, 56,190,189,163,117,224, 62,180, 24, - 18,210,218,171,229,164,229,107,183, 80,211, 63,249,156,250,249,151, 93,172, 92, 46, 71,101,101, 37,182,108,217,162, 59,125,250, -116, 30, 77,211,159, 27, 26, 3, 1,128, 86,171,197,140, 25, 51, 36,182,182,182,200,205,205,213, 43,162, 0, 32,149,149, 60,190, -113, 47,233,201,188,127,142,139,168, 86,171,213, 23,174,221, 79,237,232,231,221,146, 32, 88,131, 19, 81, 4, 60,222,224,110, 61, -122,112, 88,182, 28, 4,215, 11,207,247,172, 67,101, 65, 41, 42,139, 74,193,225, 73,160,131, 16, 90, 70, 0,251,224, 80,164,221, - 75, 64, 11, 23, 55,174,144,199, 27,106,233, 79, 44,176,224,239, 9, 99, 92,164, 62, 89,138,137,137, 89,107,108,127,189,119, 77, -163,109, 61,145,106, 76,194,234,127, 6,128,152,152,152,181, 44,203, 70,222,188,121,243, 0, 0,165,153,167,240,113,189,119,243, -243,104,113, 84,154,232, 5, 11,151,194,193, 78,108, 23,218,197,207,253,228,249,248,251,215,111,222, 79,109,221,202,217,133,213, -106, 28,190,221,248, 67, 75, 66,161,140, 49,179, 16, 1,206,206,206,160, 40, 10,207,158, 61,195,203,151, 47, 65, 81, 20,116,213, -213, 80,151,151, 67, 85, 86, 6,186, 90, 14, 62, 77, 67, 41, 43,130,147,149, 8,120, 53, 35,209,132,242, 70, 52, 73,180,234,222, - 69,182,182, 16,218,216,130,228,241,154,116, 43, 26, 64,215,208,208,208,195, 73, 73, 73, 61, 6, 13, 26,180, 10, 53, 83,228,179, -243,242,242, 6, 46, 91,182, 76,237,230,230,134, 25, 51,102,116, 0, 48,213, 36,201, 20,104, 2,188,221, 59,160,189,207, 84,180, -110, 53, 0,229,213, 90,200, 42,181, 40, 42,167,176,227,251,112, 28,253, 57, 20,127, 28,237,131,164, 11,131, 81,174,117,135,181, -231,187, 96,105, 77,160, 49,155, 23, 47, 94,196,202,149, 43,177,106,213, 42,172, 89,179, 6,171, 86,173, 66, 94, 94, 30,130,130, -130,144,147,147,131,115,231,206, 65, 42,149,194,217,217, 25,119,239,222,197,166, 77,155,240,199, 31,127,152, 60,233, 58,226,106, -198, 49,205,242,165,235,116,186,105,210,145, 35, 59, 21, 58, 58,118,236,210,165,203, 91,179,103,207,246,233,213,171,151,126,191, -143,143,143,151, 88, 44, 46, 64,205, 12,202,206,198,108, 49, 64, 23, 23,151, 32,104,212, 79,106,219,152, 7,130, 16, 97,192,224, - 84,244,234,115, 31,148,150, 15,146, 16,130, 36, 69,208,233, 74,224,224,224, 9,150, 37,130, 76, 20,113,153, 76, 38,243,187,116, -233, 18,153,153,153, 9,145, 72, 4, 0, 89, 43, 86,172,248, 97,195,134, 13, 41, 78, 78, 78,116, 92, 92, 28, 78,156, 56,129,200, -200, 72,206,244,233,211,253, 90,181,106,181,221,212,121,175,216, 34,189,181,127,227,185,127,240,180, 14,157, 69,226,214,109, 80, -109,253,238,167, 17,206, 18, 0, 56,159,145, 33,119,245,170,140,169,150, 39,230,216,183,172,250,230,124,134,169, 25,167, 43,152, - 7,233, 79,110,239, 63,126,190,162,168,176,140,215,165, 83,160, 50,122,229, 23,252,214,109,218,125,187,124,225, 63,221,243, 42, - 69,229,131,103,159,123,114,236,252,221,170,201,239,127,164,251,240,227,153,170,115,231, 47, 30,103, 24,166, 19, 12,204, 56,100, - 24, 6, 82,169, 20,201,201,201,200,200,200,128, 76, 38, 67,113,113, 49,228,114,185,222,221,104, 37,175, 60,243,195,175,167, 31, - 73,196, 98,171, 30,157,252,188,238, 36,164, 20, 73,196, 98, 43,191, 54, 94,237,129, 21, 77, 62, 71,104,154,238, 36,178, 18, 3, - 32, 80,158,116, 29, 85,101, 85,168, 42,175,130,188,180, 10,106,138, 3,149,154,132, 82, 67,194, 59, 98, 8,170,170, 85,168, 42, -169, 0, 67,211, 33,150,238,198, 2, 11, 44, 48,210,215,199, 69, 69, 69, 45, 54,243, 88,179,221,155,141,137, 87, 84, 84,212, 98, -130, 32,226, 22, 45, 90, 20, 8,195, 19,170,234, 99,103, 19, 47, 0,102,164,119, 40, 41, 73,175,178, 33, 2, 70,207,253,242,171, -115, 7,126,249,222, 85,173, 86,228, 56, 57, 88,211,214, 86, 2,231, 15,103,172,129,188,170,108, 84,181,249,233, 8, 80, 86, 86, -134, 23, 47, 94, 64, 44, 22,131,207,227,129, 86, 42, 65, 43,171,161, 44, 43, 1, 73,169,193,167,105, 56, 90,137,225,237,233,142, -214,110,238,102,217,124,118,229, 55,125,224,123,125,119,225,186,208, 0, 8, 36,214, 16,216, 88,227,211,184,107, 0, 0, 62,159, - 15, 44, 91,101,150,104,210,162, 69,139, 83,251,247,239,231,203,100, 50, 60,124,248,240, 17,128, 10, 0, 54, 0,152,212,212,212, - 75, 73, 73, 73,145,126,126,126, 0,224,107,202, 88,101, 49, 73,107,117, 44,114, 11,178,144,249, 50, 1,142,118,109,193,179,106, -143,162,114, 10, 66,113, 91,104,213,175,188,143,170,202,108, 40, 41,142, 89,231,174,209,104,160,211,233,160,211,233,160,209,104, -240,241,199, 31,227,198,205,155, 56,120,226, 50, 94, 60, 79, 67,135, 54,238,152, 50,101, 50, 66, 67, 67,113,243,230, 77,163,182, -166,118,134,182,133, 53,184, 27,223, 34, 33,176,118, 82,135, 45,188,112,199, 20,217, 34, 8,130,133, 1, 87,100, 35,108, 8, 15, - 15,111,151, 86, 93,141,228, 39, 79, 48,104,197, 10, 0,192,217,179,103, 27,156,203,188,121,243, 4, 41, 41, 41, 31,222,191,127, -255,195,252,252,252,141, 0,154, 14, 54,103,129, 51,103,110,225,159,255, 76,129, 76, 38, 3, 0, 28, 58,240,138,151,102,190,160, - 48,108,120,141, 71,203,222,222, 30, 27, 55, 6,153, 85,159, 52, 77, 99,231,206,157,122,119, 33, 0,112,185,220, 94,243,230,205, - 27,221,212,241,237,218,181,227,155,178, 57,119,108, 11,209, 31,143,216,207,236,218,181, 14,180,117, 14, 70,137, 54, 33, 40, 33, - 79, 58,107,238,216, 22,155, 55, 29,201, 83,137, 9,245,110,130,206,109,197, 21,169,246,152, 83,198,140,243,223,107, 74,188,167, -237, 41,144, 85, 46,153,249,209, 68, 39, 91,123,215,234,159,127,136,118, 32, 57, 36,123,234, 62, 85, 30,232,227,100,255,110,216, -119, 85,255,156,187, 44, 65,163,203,157,137,220, 83,105, 48,146,226,130,166,105,228,231,231, 67, 38,147, 33, 39, 39, 7,197,197, - 53,238,215,226,226, 98, 48, 12,243,103, 30,136, 80,230,228, 32,251,248,207,104, 61,121, 50,186,175, 90, 9,154,225, 66,169,160, -177,177,231, 64,148, 85, 40,161,102, 8,120,118,237,137,143,206,254, 14,146,165,129, 29, 91, 45, 61,137, 5, 22,252, 77, 97, 78, -122,135, 58, 66, 20, 29, 29, 29,249, 87,255,127,125,178, 21, 29, 29,157, 28, 29, 29,221,156,255,106,236, 50,212,111,215,197,104, - 93,171, 23,128,246, 90,167, 41, 47, 78,205, 72, 73,225,230, 87, 43,171,173,220, 92, 93,212, 86, 34, 33, 83, 81, 41,231, 36, 60, -126, 68, 85, 23, 60,127,218,140,243, 72, 77, 74, 74, 10,202,207,207, 71, 78,118, 54,116,202,106,144,106, 13, 88,149, 2,131,122, -247,132, 8,128,136, 36,192,103, 40,112, 57, 2,200,171, 42, 1, 32,213,100,231,168,213,190,166,108, 17, 4, 1,129,141, 13, 4, - 18, 9, 4,214, 54, 13, 20, 46,115, 20, 27,161, 80,184, 63, 54, 54,214,163, 69,139, 22, 88,185,114, 37, 90,182,108,233,239,233, -233,169,176,179,179, 19,187,185,185,161, 99,199,142,232,217,179, 39,206,157, 59, 7,152,145, 83, 74,171, 19, 37, 62,205, 66,175, -226,210,155,248,253,218,143,208, 40,213,232, 18,241, 35, 40,219, 62, 66,105, 0, 0, 32, 0, 73, 68, 65, 84,110,107,184, 4,126, - 13,230,217, 62, 40, 10, 78,214,168, 7,238, 35,240, 50, 39, 11, 4, 71,144,108,174,242, 84,247,249,209,163, 71, 56,112, 50, 30, - 30,222, 1,200, 73,127,130, 39, 87, 47,225,134,139, 19,188, 3, 58,234,221, 64, 6,203, 72,131,187,122,107, 77,154,168,165,159, - 77, 20,150,150,150, 10, 29, 29, 29,213,117,117,231,225,225,241,103,200,214,196, 5, 11, 22,160,156,199, 3,134, 15, 7, 63, 35, - 3, 20, 69, 33, 44, 44, 12,221,187,119, 7, 0,132,133,133,129,203,229, 34, 56, 56, 24,158,158,158,216,186,117,235, 68, 67, 68, -139, 36,240, 80,167, 43,241,247,241,241,209, 19,173, 61,123,101, 72,184, 63, 24, 4, 4,216,242,195, 51,253,177, 94, 94, 94, 40, -144,102,128, 32,216, 36, 19,101, 92,229,238,238,190,204,195,195,195,103,195,134, 13, 28,145, 72,132, 79, 62,249,164,109, 85, 85, - 85,235, 90, 41, 25,139, 22, 45, 2, 0, 44, 95,190, 28, 43, 86,172,128, 90,173, 86, 24, 50,182,103, 99, 39,207,162, 82,230, 67, -182,202,106, 84,127,231,214,157, 6, 12, 29,132,182,126, 3, 48, 96,104, 14, 0,172,117,228,102,189,247,237, 18,251,227,246, 54, -196,174,223,206, 95, 92,222, 59, 98,192,146,133, 85, 87, 87,127,179,179,220,100,204, 99, 69,246,110,249, 83,193,248, 77,223,111, -223,187,233,171, 69,115, 68, 57, 50, 77, 89, 94, 25, 91,101, 45,228, 90,251,186, 17,214,179,190, 92,245, 34, 63, 63, 99, 62,114, -207,155,156,105,201, 48, 12, 50, 50, 50,244, 49,125, 42,149, 10,213,213,213,200,205,205,213, 95, 51, 74,137,237,176,153,239,143, - 8,169, 86, 42, 21,119, 30,167,231, 44,157, 61, 41,188, 90,169, 84,164,103,230,164, 1, 91,154,100, 99, 36, 73, 62, 86,200, 21, -131, 20,229, 42,200, 30, 62, 69,203,129,222,208,234, 8,104,116, 52,100, 37,114,168,117, 0, 77,242, 16,248,222, 20,208, 4, 23, -197,249,121, 32, 57,156, 71,104, 24,180,111,129, 5, 22,252,125, 96,148,139,212, 41, 90,225,225,225, 7,235,171, 78,117,159, 1, -168, 97, 60,148, 71, 86,159, 76,213,185, 19, 13,253, 79, 35,187,230,226,181, 24, 45,147,233, 29,234,254,179,149, 93,165,231,186, -229,147, 90, 50, 58, 93,135,162,226, 66, 29,151, 43,228,181,178, 83, 74, 75,115,204,255,119,181, 90, 29,119,233,210,165,145,131, - 7, 15, 22,166, 63,126, 4, 77, 69, 5, 52, 21,229,224, 49, 58, 56,138,187,129,164,212, 32, 52, 26,180,240,103,160,146,139, 17, -127, 35, 73,171, 86,171,227,204, 37, 90, 36,135,211, 48, 46,203,218, 26, 66, 27, 91, 8,173,173, 27,187, 22, 77,145, 2,171, 33, - 67,134, 12, 12, 11, 11, 3,203,178,216,185,115, 39, 40,138, 18, 80, 20, 5,141, 70, 3,138,162, 80, 89, 89,137,189,123,247, 98, -219,182,109, 55, 0,252,106,178, 51,211,105, 46, 93,184,120, 37,244,131, 73,145,188,179,113, 27,161,211,208, 80, 18, 45, 81, 93, -173, 69,149,198, 10,180,211,100,160,240, 12, 56, 92, 17,194,131,219,226,228,145, 99, 20,116,234,203,102,178,240, 6,170, 80,110, - 78, 22, 94, 62, 79,131,117,101, 1, 92,108,173,160,200, 72, 67,151, 41, 83,223, 72,157,104,213,170, 21, 24,134, 65,255,254,253, -245,193,213,111, 74,182, 74, 74, 74,112,250,244,105,132,133,133, 33, 34, 34, 2,121,121,121,200,200,200,192,219,111,191,173, 63, -230,209,163, 71, 72, 72, 72,128,175,175,113,145,176,184, 84,123,246,101,238,195,113,239,190,251, 46,255,246,237,219, 96, 89, 22, -126,126,182,176,181,145,128, 32,133, 8, 8,112, 5, 80, 51, 6,232,215,175, 31, 42, 43, 51,116,101,101,236, 89, 19,167,187, 31, -192, 9,141, 70,243,172,111,223,190,158,207,159, 63,199,220,185,115,185,135, 14, 29,170,147,146, 17, 21,213,112, 50,133, 82,105, -216,117,223,161,147,255, 23,109,117, 14, 17, 34,113,235, 54,182,206,193,104,235, 55, 0, 0, 48, 56,242, 3,180,109,231,133,202, -226,196, 54, 42,101,214, 40, 62,183,204, 33,113, 75, 94,138,120,120,208,251,170,162,107,233,168,113,157,154,108,118,101,250,161, -194, 28,222,228,195, 39, 78,157,155,241,118,228, 59, 60, 45,173,211, 5,121,243,236, 99,143,159, 41,202,203,206,249, 14, 57,231, -147, 94,233,127, 70, 85, 60,186,178,178, 18, 18,137, 4, 73, 73, 73,234,225,195,135, 11, 73,146,196,179,103,207,244, 68,203,213, -217,177, 99,175,238, 65,254,171, 55,237,189, 32, 17, 10,133, 67,251,117, 11, 72, 73,207,126,201,178, 68,150, 65,181, 85,171,189, -248,248,225,163,254, 46,158,237, 56, 25,215,110,195,169,207,219, 80,171, 73, 40, 53, 12,212, 58, 64,199,225,195,163,115, 15,216, -251, 6,128, 5,112,239,246, 13,173, 90,171,189, 96,233,107, 44,176,224,111,173,106,177,198, 72, 82,237,231, 82, 0, 89,209,209, -209,197,245,212, 38, 25,128, 71, 0, 66,106,143,147, 53,250,157,140, 32,136,123, 44,203,118,175,103, 71, 86,143,112,213,255,172, -105,116,204,163,102,144,172,250,239, 13,137,150,161, 41,149, 0,224,236,236,236,218,165, 75, 55,223,159,126, 57, 12,150,101,241, - 52, 97, 61,202,138,158, 96,217,218, 91,190, 45, 90,180,136,200,203,203,139, 55,167, 4, 52, 77, 31,218,181,107,215,252, 30, 93, -187,116,105,211,178, 37, 30,101,101,130,207,210,224,211, 52, 72, 74, 13, 46,173, 65,203, 32, 26, 36, 97,141,252,252, 10,196,236, - 63,156, 84,155, 37,222, 40,252,223,126, 7, 43, 95, 86,128, 32, 8,108, 8, 15,130,192,198, 26,124,137, 53, 62, 61,117, 69, 79, -174,226, 86, 46,130,192,218, 26,190, 61,204, 74, 8,175,184,122,245,234,253,199,143, 31,119, 15, 10, 10,194,252,249,243,145,149, -149, 5,134, 97, 80, 88, 88,168,146, 74,165,121, 50,153, 44, 11,192,113, 0, 63,193,140,204,227,124,181,106,115,220,209, 61, 51, -195,123, 71, 56,191, 59,106, 27, 78, 28,153,135,242,138, 74, 40,116, 98, 84,171,116,168, 86,115,224,232,212, 9, 61,130,131,145, -159, 87,132,228,219, 23,170,184,106,197,250,230, 92,160, 4, 65, 32, 33, 33, 1, 62,158, 54, 72,251, 61, 30,206, 86, 60,132,120, -186,195,179, 87,111,125,126, 41, 99,224,113,160,155, 56,113,162, 62, 51,252,144, 33, 67, 50, 39, 79,158,236, 49,111,222, 60,252, -242,203, 47,184,113,227,198,107, 1,218, 17, 17, 17,184,126,253,250,215, 0,150,155, 18,245, 52, 26, 13,252,253,253,113,239,222, - 61, 92,186,116, 9, 3, 6, 12, 64, 68, 68, 4, 18, 19, 19,241,219,111,191, 33, 33, 33, 1, 4, 65,192,201,201, 9,218, 26,242, -172, 53,100,140,162, 16,251,205,183,187, 22,111,218,180, 45,112,210,164, 73, 56,122,244, 32, 62,120,191, 3, 8, 82, 8,130, 16, -226,157, 17, 29,176,114,213, 61,244,232,209, 15,206,206, 60,108,218,120,242,133, 82, 73,239, 53,163, 26, 87,255,246,219,111,158, - 42,149, 10,229,229,229,172,181,181, 53, 81, 82, 82, 51,163,181, 41, 69, 75,161, 80,136, 12, 25,122,252, 32,117,125,185,156, 45, - 99,171, 18, 70,149,234, 18, 58, 13, 24,154,139,193,145,239,227, 98,220,175,184,114,225, 18, 28,185, 89,153,144,200,207, 21,103, - 22, 87, 74,171,253,182, 7,116,157,206,121, 89,125, 97,251,172,119,210, 56, 30, 30, 76,236,162, 31, 43,203,141, 17, 45, 0, 68, -105,202,190, 83,199, 89,188,211, 51,188, 71,187, 32, 47, 15, 65, 89,113, 17,123,228,228,185, 36, 42,243,232,233,122, 4,139, 53, - 65,212, 87, 70, 69, 69,125, 85,251,121,247,210,165, 75,167,199,196,196,184, 20, 20, 20,232, 99,180,138,138, 75,175,244, 28, 62, -139, 46, 41,175,208,236,218,244,229, 88,177, 72, 40, 88, 26,179,235,154,150,131,219,134,236,234, 24,102,235,123,115,151,205, 73, -127,154,208,162,181, 88,128,147, 95, 46,199,163,223,174, 66, 75,242,241,207, 75,119,160,166,104,148, 23,151,224,242,135,159,193, -218,205, 1,219,174, 29, 45,100, 24,230, 71, 75, 87, 99,129, 5,127, 95, 24,226, 34, 4, 65, 52,149, 99,175,176,137,239,238, 25, -251,157, 1, 59,127, 5, 12,102,133, 55,107, 10, 94,113,113,113,209,245,235,119,112, 45,110, 53,226,227, 86, 35, 57,225, 17,242, -243, 52,200, 43, 84,193,214,214,246,150,145,159, 54,206, 28,203, 42, 20,138,209, 75,151,125, 85, 32, 18, 91,161,239,192,129,112, -119,113,133, 21,159, 7,142,142, 1,135,224,161, 74,102,143,180, 68, 5, 22,238,218, 87, 84,165, 80,140,110,162,147, 24,100,136, -100, 16, 4, 1,161,173, 13, 4,214, 54, 16,218,216, 54,112, 35,138,108,109, 33,178,177, 5, 87, 32,104, 42, 24,254, 53,155, 85, - 85, 85, 99,198,142, 29, 91, 86, 81, 81,129,233,211,167, 35, 62, 62, 62,225,194,133, 11,182,137,137,137, 98,153, 76,214, 14,192, - 16, 0, 59,140,144,172, 6, 54,203,202, 50,228,172, 78, 61, 62,250,171,207,149, 42,157, 19,198, 77, 61, 4, 9,153, 11, 29,205, -128, 5,224,233, 40, 64,175, 65,171, 80,164,233,137, 67,219,215, 40, 24, 74, 53,169, 81, 14,173, 6, 54, 89,150,101,221,220,220, - 94,171,131, 75,151, 46, 97,220,216, 49, 24, 58,106, 36, 92,218,248,192,117,208,219, 24, 58,253,159,216,190,125, 59, 72,146,132, -179,179,115,227,142, 87,111,115,207, 67,240, 14, 60, 6,113,224, 49,136,221, 9,224, 2,152,178,111,223,190,111, 66, 66, 66,174, -222,184,113, 99, 61,128,241,245,255,171, 30, 86, 52, 82,179,154,106,163, 37,115,230,204, 81,166,167,167, 67, 34,145, 64,167,211, -225,198,141, 27,216,182,109, 27, 54,108,216,128,132,132, 4, 56, 57, 57,193,215,215, 23,106,181, 26,247,238,221, 83, 2, 88, 98, -196, 38, 35,147,233,198,108,217, 18, 83, 18, 25,217, 7,187,118,253, 0,119,247,158,224,113,221,193,229,185, 64, 98,237,143,159, -127,250, 6,111,189,213, 5,167, 78, 30, 46, 45, 46,209,141, 1,160, 51,227, 90, 82,221,185,115, 7,219,183,111,199,216,177, 99, -243,198,141, 27, 71, 87, 84, 84,232, 21, 45,150,101,193,178, 44, 86,212,198,152,169,213,106,161, 33,155, 31, 45, 76,202,251,114, - 77,242,202,194,130,188,176,248,171,183, 38, 94,185,112, 9, 47,210,175,224,202,133, 75,248,253,202,205,168,194,130,188,176, 46, -161,237,249,163,167,207,252, 98,207,177,163, 28,107, 91, 15,236, 57,118,148, 51, 97,214,231,107,186, 13, 29,176,196,212, 53, 95, -219,142,108, 85, 81,225,162,181,235,191,175,210, 81, 42,114,221,119, 91,243,149, 50,233,146,122,215, 37,107,234,250, 84, 42,149, - 59, 84, 42,149,167, 74,165,242, 84,171,213, 75,178,178,178,250,206,159, 63, 95, 70,211,180, 94, 45,149,165,156,186,245,228,143, -221,107, 93,157, 29,196, 61,187, 7,118,216,184,227,200,181,156,220,194,127,213,203,161,213, 84, 57, 85, 85, 74,213,152,145,163, - 39, 87,151,151,169, 17,254,121, 20, 24,145, 53,212, 52,160,101, 57,208, 17, 92, 60, 94,189, 17, 98, 71, 27,236,207,124,160,168, -208, 82, 99,208, 48,135,150,177,115,255, 51,176,216,180,216,180,216,252,239,180,249,127, 25, 30,104,184,214,161, 71, 3, 69,203, -212,148,202, 22, 45, 90,244,125,247,157, 65,232, 23,185, 20, 44,203,226,201,131,111, 81, 38,123,138, 22,238, 66,100,228, 84,134, - 3,136,111, 70, 97,114,178,114,115,195,230, 44, 89,122,108,220,144,129, 1, 65,109,218, 8, 91,183,246,134,196,213, 21,197,197, - 50,252,113, 59, 69,187,230, 64,108, 82, 45,201, 50,203, 49,201, 48, 76, 77,144, 59,128,129,115, 22,130,224,112,128,218, 52, 14, -117, 29, 99,155,238, 61, 65,112,185,160, 89, 6,106,181,218,156,217,114, 47,159, 63,127, 62,102,210,164, 73,151,227,226,226,200, -161, 67,135,118, 62,126,252,248,159, 89, 51, 15,213, 69,233, 87, 1, 68,174, 89, 52,227, 80,216,128,145,182,126,129,221,248,221, - 90,115, 64,105, 9,228,231,101, 35,238,216, 93, 42,229,206,133, 74, 86,167, 26,175, 40, 78,191,106,204, 22, 69, 81, 57,237,218, -181,115,219,190,125,187, 62, 24,158,166,105, 20, 23, 23,227,214,173, 91,232,212,189, 7, 2,222,255, 16, 50,153, 12, 91,182,108, -129,151,151, 23, 70,140, 24,129,210,210, 82,232,116, 58,115, 29,190, 52,128, 11,181, 47, 52, 34, 89, 68,237, 18, 64, 70,221,134, - 62, 62, 62, 2,149, 74,213,153,101, 89, 14, 65, 16,155, 53, 26,205,180, 69,139, 22,121,172, 93,187, 22, 29, 58,116, 64,113,113, - 49, 36, 18, 9,252,252,252, 32,147,201,112,247,238, 93, 90,161, 80,108, 71,205, 66,214, 50, 19,229,123,118,247,110,102,216,236, -217,159, 30,251, 38,102,134,159, 74,221, 79,224,232,216, 27, 44,171,131, 76,150, 5,121,229, 13,106,213,202, 95,159, 23, 22,105, - 71, 3, 72, 55,243,156,151,207,156, 57, 19, 0, 68, 0,150,102,100,100, 60, 12, 8, 8,240, 51,164,104,153,131, 77, 71,242, 84, - 0, 14,140, 25,234, 57,183,178, 56,209,207,145,155,149, 25, 22,196,108,217,116, 36, 79,101,235, 89,189,186, 56, 43, 62, 77, 90, -125, 97,251,158, 99, 71, 57, 83, 71,141,161, 91, 90,167, 71,137, 92,217, 35,102,152,102, 67, 66, 66, 90, 17, 68,105,219,162,146, -167,247, 63,152, 62,227, 61, 59,190,242,108, 72,203, 18, 95,210,171,139, 40, 33, 33, 33, 19,205,156, 25, 90,139,180,188,188,188, -190,139, 22, 45,186,192,178,108,131,216,132,162,226,210, 43,225,145, 51,217,242,242,138,135,178,212, 83,230,228, 82,187,123,247, - 65,194,192,160, 78, 93,142,126,179, 54,198,173,223,156,249,220,180,171,215, 0, 90,139,236,248,107,160,133, 26,102,227,205,139, -133, 21, 20, 53, 10,150,172,240, 22, 88,240,183, 87,179,140,113,145,255,114, 12,135,129, 96,120,179, 79,198,167,109,139, 11, 29, -252, 90, 15,241,106,233, 2, 0,200,200,204, 71, 70,102,222,111, 25, 47,242,134,154, 96,188,134,166, 87,234, 23,149, 38,106, 83, - 56,176,230, 45, 42,221,192,166,147,147,211,125, 46,151,219,178, 57,181, 65,211,116,126,113,113,113, 23, 51,203, 57,161, 77,155, - 54, 49,217,217,217,199, 24,134,153,219, 76,182,223,164,205,186, 69,165, 73,174, 96, 16,171,211,116, 2, 0,130, 43, 48,103, 81, -233,250, 54, 59, 89, 91, 91,239,224,241,120, 94,117,237, 88, 23,131, 69,211, 52,135,162, 40, 17, 77,211, 28, 0, 4, 73,146, 58, - 30,143,167, 34, 8, 66,167,211,233,114,212,106,245, 12,188, 74, 56,106,236,220, 77,118,244,181, 68, 11, 77, 40, 90,151, 0, 32, - 61, 61,189,189,131,131,195,120,130, 32,198,178, 44,235, 47,151,203,213,203,150, 45, 75,136,141,141,173,108,211,166,205,176,225, -195,135, 19,137,137,137, 72, 74, 74, 98, 75, 74, 74,142,212,170, 88, 25,205,188,150, 72,161,144,243, 15, 71, 71,114, 56,203, 34, - 4, 44, 8,130,196,227,138, 10,230,172, 66, 65,255,171,150, 48, 54,247,250,172,195,196,214,173, 91,255,154,153,153,201, 51,164, -164, 26, 58,247,198,248,118, 73,224,210,240, 62,125,198,220,250,253,247,227, 95,174, 73, 94, 89,127,223,172,145, 14, 31, 76,248, -108,206,183, 7,182,126,247,229,247, 39,202,118,153, 83,206,206,157, 59,251, 16, 4, 49, 30, 64, 16,203,178,237, 88,150, 16, 17, - 4, 91, 70, 16, 68, 50,128, 68,141, 70, 19,151,146,146,242,242, 79,156,251,155,140,112, 13,217,212, 47, 42, 13,154, 14,166, 1, -214,204, 69,165,255,127,151,211, 98,211, 98,211, 98,243, 63,103,243,255, 50, 62,110,226, 59,243, 50,195,215, 33,227, 69,222,208, -140, 23,121,104,215,174, 29,251,236,217,179,102,145, 52, 67,157, 52, 77,211, 7, 21, 10,197,193, 63, 99,164,164,164,164,219,191, -185,242, 14,100,102,102, 30,248, 43, 13,214, 18,169,149,181,175, 55,197,227,170,170,170, 30,230, 30, 76, 81,212,191,163,110,136, - 90, 53,235,107, 67, 7, 12, 25, 50, 36,155,162,168, 75, 0,114, 9,130,176, 7, 80, 74, 81,212, 5,157, 78, 87,248,236,217,179, -110, 27, 55,110,172,203,124,191, 10,192,253, 55, 44, 7,163, 86,211,251,243,243,233,253,255,134,115,220,175,209,104,230, 57, 57, - 57,249,170, 84, 42,129, 74,165,226,215,159,124, 32, 22,139,101,198, 2,226,235,195,222,134,216,205,231,150, 57,217,219, 16,141, -137, 20, 28, 91,224,168,178, 58,169,131, 99, 11, 28, 53,183, 96, 15, 31, 62,204, 8, 9, 9,217, 71,146,100, 27,150,101,221, 0, -214,142,101, 33, 99, 89,182,152,251,255,216,187,238,184, 40,174,182,123,102,102,103,251, 46,176, 75, 93,138, 5, 20, 68, 64, 1, - 11,246,136,154, 24,123,137, 88,162, 98, 47, 49,106, 98,212,168, 81,163,177,198,215,196,158,216,123,111, 81,176,247, 94,177, 43, - 86,164, 55,169, 11,203,246,157,249,254,128, 37,168,148, 5, 77,222,228,253,246,252,126,227, 58,195,238,217,123,103,231,222,123, -238,115,159,251, 60, 28, 78,210,227,199,143,147,254, 65,157,144,198,200, 48,139,141, 58,221,159,126,135,214,221,133, 86, 88, 97, -197,255, 14,202,244,209,226, 84,150,233,197,139, 23,132,245,126, 90, 81, 82,108,149,247,199,184,184, 56, 45,128,171, 69,199,187, -184, 13,160,203, 63,189,130, 41, 41, 41,193,101,253,205, 82,145, 5, 20,250,108, 1, 15, 75,141,206, 62,107, 69,118, 30, 86, 28, -152, 84,217,178,221,187,119, 47, 30, 22, 46,177, 91, 97,133, 21, 86, 88,241,151,225,195, 45, 90, 86, 88, 97,133, 21, 86, 88, 97, -133, 21, 86,148,138,181, 37, 4,215, 91,214, 45, 2,101,239, 28,168,204,218,107, 85,118, 31,156,182,114, 90, 57,173,156, 86, 78, - 43,167,149,211,202,249,255,142,243,127, 21,239,137,172,191, 3,214,173,175, 86, 78, 43,167,149,211,202,105,229,180,114, 90, 57, -255, 63,136,172,119, 15, 0,214,165, 67, 43,172,176,226,255, 49,246,238,221,107, 81, 82,209,190,147,215,119,150, 72,100, 51,242, -149,185, 11,119, 45, 30,114,208,124, 61, 44, 44,204,100,189,139, 86, 88, 97, 5,170,226, 12,239,233,233,238, 71,154,152,230, 44, - 75, 82, 44,201, 26, 8,165,122,247,171,236,236,183,194, 14,120,120,120,216,209, 36,186, 16, 44, 43, 38, 8,198,196, 80,228,149, -152,152,196,199,149, 40, 24, 79, 38,147,125,205,229,114,219,233,116, 58,119,146, 36, 19,181, 90,237,233,130,130,130,149,120, 63, -112,225,127, 13, 62, 62, 62,253,206,159, 63,111,215,162, 69, 11,173, 80, 40, 52,170,213,106,206,241,227,199,249, 29, 58,116,200, -121,249,242,101,149,118, 36,186,186,186,182, 89,191,126,189,103,251,246,237, 81,187,118,109, 85,159, 62,125,184, 77,155, 54,229, - 14, 27, 54, 44, 38, 57, 57,249,108, 37,233,252, 8,130,216, 74, 16, 4,197, 48,204, 64,252, 25,186,225, 99,131, 36, 73,114, 36, - 65, 16, 61, 88,150,245, 34, 8,226, 21,203,178, 7, 25,134, 41, 47,112,107,121,248, 2, 64, 71,146, 36,131, 1,128, 97,152, 59, - 0,142, 2,150,239,188,251, 59, 57, 69, 34, 81, 16, 0, 20, 20, 20,220,253, 88,156, 4, 65, 4, 1, 0,203,178, 85,229, 28, 44, - 20, 10,135, 3,128, 90,173, 94, 7, 11,210, 65,189, 11,118,181, 47, 27, 60, 59, 26, 0,112,231, 71, 95, 0, 64,101,206,137, 81, -209, 68,101,190,171, 52,190,202,112,148,130,142,253,251,247,159,191,125,251,246, 31, 1, 28,250, 43, 30,124, 23, 23,143,149,191, - 44, 91,235,250,205,215, 67, 23,162, 48, 35, 68,249, 13, 18,248,148, 71, 81, 93,117, 38,211,165,199,192, 94, 0, 28,185, 92,222, -143,199,227,181,210,233,116, 10, 14,135,147,162,211,233, 46,230,230,230,238, 68, 57, 25, 16, 44,190,175, 79, 32,211, 23,192,133, - 96,254,204,243,198,146,208,114, 69, 72, 37,234, 34,251, 31,208,141,146, 0,198, 23,213,117, 3,202, 14,231, 81, 94,231,243,141, -171,171,107, 15,165, 82, 89, 64, 81, 20,139,194, 93,207,133,255, 20,254,157, 96, 24, 38, 61, 43, 43,107, 96, 69, 92,226,106,168, -195, 19, 19, 91, 77, 6,168,141, 90,118,180, 42, 1,209, 18, 15, 52, 99,129,129, 44, 80,147,164, 72, 71,134, 97, 82, 0,156, 37, -141,136,200, 79,198,139,127,232,224, 94,189,232,190,214, 40, 58,167, 1, 56, 3,184, 15,224, 27, 0,249, 86,253,243,183,225, 93, -103,248, 35, 0, 82,138,133, 86,137,112,247,173, 59,119,238,124,193,211,211,221,175, 87,247,158,243, 71,141, 28, 77, 80, 20,137, -135,143, 30,113,190, 28, 56,248, 51,153, 76,230, 38,209,106,235,130, 32,152, 2,129,224,161, 82,153,155,180,119,231,118,169,111, -157, 58, 38,147,137,193,234, 53,191,119,216,247,199,129,105, 22,138, 45, 31, 23, 23,151,173, 83,166, 76,113,233,218,181, 43,229, -226,226,130,216,216, 88,187, 93,187,118,213, 89,177, 98, 69,239,236,236,236,129, 0,158, 85,161,178, 45, 93,228,228,103, 82, 33, -209, 22,121, 38,228, 25,112, 38, 85,141,147, 0, 46, 85,245,238, 21, 20, 20,140, 45, 40, 40, 8,105,212,168, 17,187, 97,195, 6, - 98,208,160, 65, 44, 65, 16,132, 90,173,222, 12,160, 74, 66, 75, 44, 22,175,106,223,190,189,183,183,183,247,171,151, 47, 95,118, -220,179,103,207,209,240,240,112, 47,177, 88,252, 28,128, 79, 37,233, 54,101,102,102, 6,170,213,106,184,187,187,111, 0,208,224, - 47,120,136, 8,138,162, 14,186,185,185,177,139, 22, 45, 58, 20, 24, 24,232,156,149,149,101,156, 52,105, 82,187,235,215,175,119, - 48,153, 76, 93, 43, 33,182,100, 4, 65,172,113,118,118,118, 88,184,112,225,139,134, 13, 27,222,231,243,249,188,231,207,159,139, - 38, 76,152,240,237,179,103,207,122,179, 44, 59, 18,168,212, 0, 33, 35, 8, 98,141,171,171,171,195,252,249,243, 99,131,131,131, - 31,114,185, 92,238,243,231,207,197,223,127,255,253, 55,209,209,209, 85,226, 36, 73,114,117, 72, 72,136,236,199, 31,127,124, 82, -167, 78,157,171, 20, 69,241, 18, 19, 19,201, 89,179,102,125,125,234,212,169, 48,134, 97, 70, 85,165,156, 78, 78, 78,178, 89,179, -102, 61,105,218,180,233,117, 46,151,203,125,250,244, 41, 57,101,202,148,175, 95,188,120, 97,113, 57,229,114,121, 40, 65, 16,107, - 83, 83, 83, 57, 0,160, 80, 40, 26,219,216,216,172, 40,153,211,210, 28,138,194, 96, 48,228,105, 52,154,254, 89, 89, 89,165, 6, -194, 29, 52,117,121, 23, 0, 88,161, 55,159, 23,190, 86,116, 14,172,142,176,164,210, 65, 46,133,113,241,126, 81, 13,233, 14, 0, -253,138, 82,133,255,162, 2, 56, 28, 14, 19,228,242, 13,123, 55,181, 82, 33, 99,186,181,105,211,102,214,217,179,103,127,111,221, -186,245,247,219,182,109,115, 74, 72, 72,248,249,210,165, 75, 30,125,251,246, 29,116,230,204,153, 5, 25, 25, 25,251, 62,214,195, -207,227,242,249, 4, 73, 64, 40, 16,217, 88,242,126,154, 36, 59, 95,237,214,109,248,186,167, 79,131, 87, 68, 71,123,170, 20,138, -144,113,227,198, 57,247,236,217,147,244,240,240,192,139, 23, 47,236,183,109,219, 86,119,221,186,117, 61,114,114,114,198, 3,136, -251, 16,145,165,202, 65, 61,173, 14,193, 44, 11,187,226, 6, 75, 32,135,175,199, 29,246, 9, 30,252, 3,196,214,204, 77,155, 54, -253,248,226,197, 11, 44, 88,176, 0, 0, 86, 86,242,243, 19,186,117,235,214,233,192,129, 3,194,189,123,247, 10, 27, 53,106, 4, - 23, 23, 23, 20, 77,166,138, 3, 83,123,122,122, 90,118,207, 24,252,178,244,232,144, 6, 15,179,142, 97, 85,207,212, 5, 66,119, - 24,155,117,243,238,209,121, 80, 48,108, 29, 69, 16, 72, 56,200,201, 84, 6, 60,189,147,208,254,220,158, 23, 63,191,136,122,179, - 80, 21,143,153, 40, 59, 38,223,127, 5,246,246,246, 27, 98, 98, 98, 66,197, 98,241, 91,215, 95,189,122, 21,228,237,237,157, 11, -224,187,202, 10, 55, 71, 71,199, 29, 12,195,104, 51, 51, 51,135, 2,128, 84, 42,221, 46, 22,139,101, 41, 41, 41,211,254,170,137, -140, 25,239,106,145,127,185, 69,171,216, 95,171,180, 92,135, 4,105, 98,154,143, 26, 57,154,232,211,175,111,234,139, 87, 49, 12, -135,230,245, 59,126,226,132,200,207,207,143,212,174, 92, 9,227,155, 55, 48,124,251,109,179,211,167, 79, 27,194,250, 13, 80,211, - 20,177,201,203,179,166,104,247,206, 93, 46, 7,246,239,107, 14,160, 34,161,197,115,113,113,217,122,254,252,121, 55, 79, 79, 79, -228,228,228, 32, 54, 54, 22, 42,149, 10,189,123,247,166,155, 55,111,238,214,171, 87,175,173,185,185,185, 45, 42, 97,217,114,174, -237,206,137, 28, 57,184,167, 79,135,207,154,139,221, 60,106,129, 77,213, 32,225,101,116,163,200,243,215,199,109,218,127,244,217, -139, 92,182, 51, 74,207,141, 84, 46, 50, 50, 50, 38,247,232,209, 99,127,104,104,168, 35,159,207,135,171,171, 43,209,181,107,215, -244,228,228,228,217, 85, 86, 45, 69, 41,108, 72,146, 52,149,124, 45, 37, 61,144, 37,112,151,201,100,144,201,100, 0,224,246,161, - 51, 79, 59, 59,187,149, 82,169,180,151, 82,169, 84,147, 36,201, 18, 4,193,234,116, 58,161, 76, 38,187,247, 36,250,153,171, 86, -171,173,189,120,233,186,101,109, 90, 6,218,156, 58,117, 10, 61,123,246,100, 79,158, 60, 57,210,210, 60,117, 4, 65,172,233,209, -163, 71,193,140, 25, 51, 52, 47, 94,197,186, 61,121,246,138, 16, 11,120,140,131,131, 3,125,243,230, 77,206,146, 37, 75, 4,179, -102,205, 90,195,178,108,175, 74,220,207, 53,125,251,246,213, 79,156, 56, 49,229,233,139, 24,167, 7, 79, 94,176, 18, 1,109,116, -112,176,167,174, 95,191,206, 84,133,147, 36,201,213,147, 39, 79, 86,142, 28, 57, 50, 59, 51, 43,215, 37, 91,153,207,242,105,202, -224,226,226,194, 57,116,232,144,118,199,142, 29,228,240,225,195, 87, 51, 12, 19, 86,137,251,187,186,107,215,174,121, 83,166, 76, -201,121,254,234,181,203,131,199,207, 32,226,211, 6,103,103, 39,234,214,173, 91,250,197,139, 23,147,115,231,206,181,168,156, 98, -177,120,203,158, 61,123, 56,135, 14, 21,246,125,215,174, 93, 35,189,188,188, 68, 37,223,163,214,104, 65, 18, 64, 70, 70,134,168, -105,211,166, 91, 0,188, 23,220, 55,120,118, 52, 6, 77, 5,198,142, 29,155, 82,217,135, 37, 88, 49,174,194,247,152,126,247,101, -151, 20, 12,233,206,225,112,152,225,195,135,167,190,251,119,141, 70, 67, 0,232,138,159, 45, 23, 91, 29, 59,118,252,225,200,145, - 35,181,182,109,219,246,235,142, 29, 59,116, 0, 32, 16, 8, 28,118,237,218,181,160,119,239,222,232,221,187,247,140,125,251,246, -125, 52,161,101, 98, 77,122, 0,224, 11,248,252,232,232,104,194,215,215,183,220,136,251,122,134,185,189,238,233,211,134, 95,249, -250, 54,202, 98,152,218,220, 14, 29,242, 39, 76,152,144,161, 84, 42, 17, 27, 27, 11,189, 94,143, 65,131, 6, 81,173, 91,183,118, -237,221,187,247,242,188,188,188, 47, 0,232, 45,120, 38, 23,187,185,185,141,200,205,205,205, 55, 91,117, 90, 12, 52,113, 90, 5, - 25,249,245,107, 27,120, 92,202,200,237,242, 45, 67,156, 92, 73,168,124, 61,113, 25, 0,184, 5,120, 83,201,201, 64,169,176,113, -135,167,137,198, 92, 71,119, 97,155, 55,113,234,159, 84,241,229,138,165, 47,196, 98,113,119,149, 74,181,175,104,112,246,233,220, -185, 51,174, 95,191, 14, 0,205,139,132, 86, 27,146, 36,191,100, 24,102, 61,128,242, 82,185,141,235,214,173,219,167, 7, 14, 28, -144, 2,192,190,125,251, 96, 48, 24,224,229,229, 5, 46,151, 11, 30,143, 7,154,166,139,179,131, 88, 8,133,163,163, 3, 28,108, -105,200,228,226, 14,223,255,214,141, 83,205,207, 6,233,166, 71,200, 98,115, 96,100,181,224,218,139, 81,167,189, 29,130, 63,107, - 67, 70,172,126, 56, 45, 98,213,147,134, 5, 36,186, 32, 14,218,127,202,200, 78,146, 36,255,254,253,251,112,117,117,125,235, 58, - 69, 81, 0,208,170, 10,148, 51, 94,189,122,213, 52, 42, 42, 10,161,161,161, 51,234,213,171,247,249,133, 11, 23, 92, 50, 51, 51, - 17, 26, 26,186, 60, 49, 49,241,208, 95, 93,167,146, 90,228,127,197,212, 69,190,163, 36, 91, 23,206,130, 73,138,162, 72,196,188, -138, 53,132,134,182, 13,143,143,143,151,132,132,132,144, 52, 77, 67,117,246, 44, 52,183,110, 65, 34,145,160, 71,143, 30,244,197, -139, 23,109,108, 36, 54,195, 94,199,188,206,163, 40, 18, 44, 75, 86,232,243, 32,147,201,190,158, 54,109,154,139,183,183, 55,140, - 70, 99,113, 68,115,163,209,136,132,132, 4, 72, 36, 18, 12, 28, 56,208, 73, 36, 18,125,109, 97, 61,106,248,120, 57,221, 57,127, -116, 77,131, 9,163, 58,138,125, 68,167, 32, 78, 24, 15,201,190,175, 80, 55,249, 56,166,116, 15, 17,159, 92, 53, 35,184,150,171, -252, 78, 9, 19,171,197,208,106,181,151, 31, 62,124, 56,236,194,133, 11, 12, 0,156, 59,119,142,125,242,228,201,200, 15,153,133, - 50, 12,131,156,156, 28, 48, 12, 67, 21,157,155, 95,255,171,207,131,141,141,205,234,207, 63,255,188,111, 92, 92,156,240,216,177, - 99,246,241,241,241, 14,175, 95,191,118,244,241,241,225, 44, 88,176,224,136, 70,171,167, 12, 38, 86,103, 52, 25,242, 82, 30, 61, -122,149,157,150,118,103,227,198,141,106,130, 32,122, 88,248, 29, 95, 40, 20, 10,251,169, 83,167,130,160, 69,141,235,212,173,231, - 77,209, 66, 91,146,230,217,170,213, 26, 83, 76, 76, 76,194,212,169, 83,107, 6, 6, 6,186,162,112,121,205, 34, 78, 87, 87, 87, -135,137, 19, 39,130,195,151, 6,213, 15, 12,174,197,227,139,165, 20, 45,148,134,132,132,180,126,245,234, 85,242,148, 41, 83, 20, -141, 26, 53,170, 20,103,163, 70,141,100,195,135, 15, 55, 10,132,210,166,158,158, 94,117,235,251,215,237,228,227,227,211,157,195, -225, 24,223,188,121, 19, 55,112,224, 64, 69,151, 46, 93,156, 43,195,233,228,228, 36,155, 50,101,138,209,163,186, 87,251,246,159, -126,214,132, 43,148,218,114,120, 98,187,130, 2,141,233,233,211,167,113,211,167, 79, 87, 4, 5, 5, 57, 89,194, 89, 80, 80, 64, - 59, 56, 56, 32, 32, 32, 0,126, 94, 94,200,205,205,197,129, 3, 7,176,105,211, 38,172, 95,191, 30, 59,119,238, 68,195, 22,159, - 65, 42,149, 34, 57, 57, 25, 74,165,146,254,187, 31, 40,211,239,190,236, 10,221,136,174,163, 71,143, 78, 30, 62,124,120,170, 80, - 40,100,222, 61,228,114,185,169,127,255,254,105, 3,191, 95,218,213,188,180, 88,129, 37,235,254,209,163, 71, 95,110,219,182, 13, -126,126,126,104,223,190, 61, 15, 0,190,254,250,107, 94,239,222,189,177,103,207, 30,236,219,183,239,177,183,183,247, 21, 0,221, - 44, 41,231,192,129, 3, 91,132,133,133, 93, 10, 11, 11,187,219,167, 79,159,181, 35, 71,142,124,107,228, 74, 73, 78,188,173,211, -233, 16, 24,220, 72, 52,103,195,141,254, 21,241, 61, 1,182,173,141,142,222,180,240,209,163,184, 25,126,126,118,213, 95,191,150, -111, 94,188,216,193,156,164,219, 96, 48, 32, 33, 33, 1, 50,153, 12,253,251,247,119,224,243,249, 3, 45, 40,230,146,110,221,186, - 13,142,143,143,151,172, 91,183, 78,113,247,238, 93,215,148,148, 20,197,153,211, 39, 28, 39,125,247,181,212, 86,194,227, 37,191, - 97, 9, 0,120,157, 12,113,116, 12, 90,176, 44,236, 74, 46, 39, 86, 9, 10, 8,133,238, 88, 81,171,133,221,179,137,123,130,250, - 76,137, 12,118,144, 41,248, 83,203,249, 68,253, 69,139, 22,237,141,136,136,232,215,162, 69,139,253, 0,132,165,188, 71,208,176, - 97,195, 3,123,246,236, 25,220,178,101,203,203, 0, 2,202,156, 69,186,187,247,248,227,143, 63,236,205,231, 14, 14, 14, 16, 8, - 4,239,137, 44, 46,151, 11,146, 36, 43, 93,189,121,187,250,113,228,117,181,120,152,125, 20,123, 22,221,199,162, 14, 79,153,249, -205, 94,107, 87, 14,140,198,201, 61,247,145,142,251,232,248, 85, 45,244,155, 30,216, 78,100,194,220,127,210, 0,254,230,205,155, - 47, 91,181,106,181,183, 99,199,142,218,168,168, 40,188,121,243, 6,110,110,197,115,237,212, 42, 80,202, 69, 34, 17, 60, 60, 60, -224,237,237,221,239,226,197,139, 46, 6,131, 1,175, 95,191, 70,122,122,250,157,191,163, 78, 37,181,200,191, 12,239, 58,194, 31, -121, 79,104, 21,229, 22, 58, 15, 0, 44, 65,168,238, 63,124, 72, 83, 60,222,128,237, 59,118,240,185, 92, 46,226,226,226,240,248, -241, 99, 20,156, 57, 3,245,213,171, 72, 75, 75, 67,126,126, 62,156,157,157,177,102,195, 6,177,206,196, 14,121,250,236, 25,197, -146,108, 73,127,131, 82,183,120,242,249,252,118, 61,123,246, 44, 83,144, 37, 39, 39,163, 99,199,142, 52, 69, 81,165,237,106,120, -151,147,112,117, 36, 34,206,236,159,163, 80,240, 30, 3, 47, 38, 0,121,119, 0, 86, 11, 24,117, 64,210, 3,224,200,108, 84,207, -143, 38, 78,204, 9,119,113, 19,113, 34, 74, 81,202, 21,109, 69,245,242,245,245, 93, 63, 96,192, 0, 18, 0,218,180,105, 67,248, -250,250,174, 5,224, 85,206,103, 78, 87, 48, 72, 94,207,206,206, 70,239,222,189,237,107,213,170,117,186,119,239,222,246,230,235, - 85,229, 52, 91,147,253,252,252, 50, 5, 2,193, 78,192,162, 14,182,152,211,206,206,110,101,199,142, 29,123,237,216,177,131, 11, - 0,231,207,159, 71, 68, 68, 4, 30, 61,122,132,231,207,159, 51,193,193,193,142, 75,215,239, 93,189,242,247, 45, 75,186, 55, 15, -116,109,221, 56,184,174, 36, 63, 59,223,217,217,185, 57,203,178, 94, 22,150,179,227,236,217,179, 31, 63,121, 25,103, 75,114,104, - 14,151,230,240,109,108,196,206, 50,169,216, 93, 46, 18,184,241, 73, 66, 82, 80, 80,144,186,115,231, 78, 6, 64, 71, 75, 57,231, -204,153, 19,243,228, 69,156, 29, 65,114, 56, 52,135,230, 74, 36, 34,187, 14,237, 67, 27, 1, 0, 23, 44, 87,169, 84,166,109,218, -180, 73, 95, 25,206, 31,127,252,241, 97, 86, 78,190,140, 67,211, 52,135, 67, 21,223, 75,177, 80,232, 40,226,243,121, 90,173, 54, -105,217,178,101,234,202,112,206,158, 61,251,241,211,151,241,114,146, 32, 40,130, 32, 57, 54, 82,177,189,189,173,200,209, 81, 34, -116, 16,113, 40,158, 82,169, 76,218,186,117,171, 69,156,122,189,158,155,150,150,134, 39, 79,158,192,163, 81, 35,156, 58,117, 10, -213,170, 85, 67,239,222,189,209,183,111, 95, 8,133, 66,180,105, 90, 15, 83,167, 78,197,203,151, 47,161,215,235,249,165,113,154, -253,164,222,133,171,171,107, 84, 69, 15,207, 59,159,125,171,156, 65, 46, 96, 87,232, 70,116, 45, 41,176,202,226,151,203,229,166, -210,172, 93,239,114,118,236,216,241,135, 51,103,206,212,218,186,117,107,215,129, 3, 7, 94,222,186,117, 43,154, 52,105,130, 39, - 79,158,160,102,205,154,216,188,121, 51,250,246,237,123,121,249,242,229, 93,163,162,162, 2, 61, 61, 61,167, 85,196,217,167, 79, -159, 49, 65, 65, 65,103, 83, 83, 83,155,102,101,101, 5, 28, 56,112, 96, 72,143, 30, 61, 98,250,245,235,215,182, 88, 48, 26, 12, - 59,142, 28,222,143, 78, 93,123,162,142,127,192,234, 65,211,182,213,171,160,109,178,143,128,181,155, 82, 82,222,236,208,104, 10, -122,211,180, 72,116,227,134,124,223,239,191, 59,148,204, 44,144,148,148,132, 46, 93,186,208, 92, 46,183,101, 5,229, 92,212,189, -123,247,222, 7, 14, 28,144,153,173, 58, 87,175, 94,197,131, 7, 15, 16, 27, 27,139,156,156, 28,180, 29,153,143,209, 11, 10,185, - 71, 47, 96,241,217,215,172,184,138,125, 72, 49,132,213,224, 98,111,195,185, 50,100, 89,157,175, 71,172,246,227, 72,228, 52,182, -127,255, 28, 25,175,181,251,202,224, 36,154, 54,109,186, 45, 44, 44,140,208,233,116,208,233,116, 58, 0,165, 70,245,117,115,115, - 19,212,175, 95, 31, 35, 71,142, 36,109,108,108,150,151, 85, 78,149, 74,165, 61,122,244, 40, 6, 14, 28,136,241,227,199,163,118, -237,218,144,201,100,160,105, 26, 91,182,237,118,232, 59,100,148, 79,131, 22,173, 2,253, 26, 52,169,159,167,165, 26,209, 66,217, -240, 50,172, 33,165,214, 61,223, 41, 10, 15, 95, 95,195,138,174,137,204,205,205, 5,249,147,190,252, 79,244,211, 11,105,143,166, -133,173,125,200, 94,107,150,177,237,155,120,164, 25,158,160,101,239,234,240, 12,146,125, 43,246,128,111, 85,239,167,133,168, 20, -103,189,122,245, 90,220,188,121,147,223,170, 85, 43,196,197,197,129,166,139,231, 83,166, 15, 41,231,236,217,179,249, 26,141, 6, -247,238,221, 67,120,120,120,146, 94,175,255,246, 67,202, 89, 25,139,150, 89,139,252,203,176,246,157, 35,165, 44,139,214,108, 0, - 48, 48,136, 24, 16, 62,164, 32, 50, 50, 82,196,227,241, 16, 23, 23,135,148,148, 20,108,217,180,201,212,198,201, 41,175,189,155, -155,114,203,166, 77,172, 78,167, 3,203,178,240,245,245, 69,175, 94,189,132, 95,244,238,151, 78, 40,213,187, 45, 88,230, 81,152, -215,215,135, 12, 25,242,222,223, 39, 77,154, 4, 27, 27, 27, 16, 4,225, 98, 65,229,194,198,205,238,238, 46,243,180, 75, 99, 83, -183,100,129, 18, 0, 28, 41,192,177, 1, 4,182, 0, 95, 10,240, 68,208, 70,157,205, 34,217,246,177, 61, 91, 14,117, 3, 80,153, -165, 30,184,186,186,206, 56,123,246,172, 99, 84, 84, 20,171, 84, 42,145,146,146,194,206,159, 63,223,209,213,213,117, 70, 85,127, -145,228,228,228, 57,157, 58,117, 74, 11, 15, 15,183, 61,126,252,184, 71,120,120,184,109,167, 78,157,210,146, 7,149,255,129, 0, - 0, 32, 0, 73, 68, 65, 84,147,147,231,124,200, 47,205,229,114,169, 71,143, 30,201,231,206,157,219, 23,192,109,127,127,255, 76, - 55, 55,183,219, 40,116,154, 44, 23, 82,169,180, 88,100,153,173,107, 28, 14, 7, 52, 77,195,213,213, 85,151,149,149,101,106,217, -192, 75,232,107, 75, 26, 92,249, 92,161, 92, 40,112,151,218,216,134,100,102,102,222, 39, 8,226,149,133, 75,124, 65,141, 27, 55, -166, 77, 44,205,140, 30,208,198,245,235,193,161, 78,191,205, 29, 94,109,217,156, 17,110,139,102, 13,243,157, 51,185,127, 40,201, - 48,154,154, 53,107,186,152, 29,218, 45, 48,159, 7, 55,108,216,144,195,128,198,147,103,177,105,113,137, 73,121,159,182,110, 90, -108,185,244, 11, 10,110,239,232,232,216,202,215,215,183, 33, 65, 16, 22,109, 73, 22, 10,133, 65,117,234,212,225,144, 20, 77,216, -203,164, 30, 82,137,208,185,120, 9,197,206,174,153,220,209, 49,140,100,217, 92,133, 66,225, 36, 20, 10,131, 42, 81,119, 14, 3, - 46,156,157,228,182,142, 14,118,146,246,161,205,107, 55,109,214,212,167, 94, 72,147,166,254, 13, 26,126, 65, 24,141, 74, 47, 47, - 47, 39,179,147,124, 5,150, 86,193,142, 29, 59, 48,119,238, 92,212,175, 94, 29,110,110,110,112,114,114,194,213,171, 87,113,243, -230, 77,200,100, 50,164,167,167, 99,241,226,197, 56,120,240, 32,244,122,189,180,178,207,147, 37, 98,171, 60, 24,141, 70,242, 93, -129, 85, 22,191, 80, 40,100,204, 78,242,101,225,232,209,163,219,204,150,172,111,190,249,166,197,210,165, 75, 47, 71, 71, 71, 67, - 34,145,224,230,205,155, 24, 50,100,200,229,229,203,151,183, 24, 53,106, 20, 54,109,218,132,152,152,152, 13,229,241,245,233,211, -103,214,176, 97,195,150, 93,184,112,129,116,118,118,134, 76, 38, 67,247,238,221,177, 97,195, 6,142,209,104,220, 24, 22, 22,118, - 55, 44, 44,236,174, 41,225,228, 15,123,215,207,191,250,240,254, 93,140, 25, 55,145,167, 51, 26,166, 88, 80,125, 86, 45,145,228, - 25, 91,181,202,218, 99, 48, 20,244,225,114, 69,182,119,239,202, 35, 54,110, 44, 22, 91, 83,167, 78,133,173,173, 45, 80,232,192, -140,114,172, 58, 35, 14, 30, 60, 88,220, 31,218,219,219,131,199,227,129,203,229,130,166,105, 80, 20,133,211,171,197,248,125,106, -161,190,248,125, 42,129,147, 43, 9,213,135,252,118, 34, 55, 4,200,156,121,119,191,218,236, 31, 24,208,214, 30, 87,119,165, 98, -126,167,168,196,155,123,222, 76,208,164,227,151, 50, 62,214, 96,210,164, 73,126,233,233,233,184,117,235, 22,110,221,186, 85,150, - 5, 72,115,248,240,225,159,243,243,243,225,233,233,137,110,221,186,181, 2,208,168,140,118,131,134, 13, 27,162, 75,151, 46, 8, - 13, 13, 69,253,250,245,161,211, 27,233,176, 1, 35,234, 60,138,121,227, 54,127,241,124,209,217,115, 7,200,203,151, 47, 80,219, -246,159,180,109, 26,250,217, 50,174, 84,113, 29, 66,123,133, 37,245, 44, 48,101, 34, 72,209, 1,107,207,140, 35, 87,156, 15,151, -108,137, 88,225, 37,149, 74,137, 59,183,238, 26,182,172,218, 19, 31, 32,238,150,126,125, 87, 38, 10,136, 84,180, 29,236, 73, 50, - 64,175,127,202,200, 46, 16, 8,150, 94,184,112,193, 69,175,215,227,225,195,135, 24, 63,126,188,230, 3, 41,139, 13, 32, 30, 30, - 30, 56,127,254, 60,250,247,239,175, 73, 75, 75,187,246,119,213,169,164, 22,249, 95, 1,167,132,130, 44, 70, 66, 66, 66,142, 76, - 38,115,171, 83,167, 14,169,211,233, 10,151, 36,246,237, 51,173,223,184,241,136, 70,163, 25, 7,128,187,242,183,223, 86,187,185, -187,135, 14, 24, 56,144, 48, 24, 12,232,212,169, 19, 47, 50, 50,210,254, 85,122,122,158, 5, 3,206, 91,223, 55,104,208, 32, 44, - 93,186, 20, 0, 48,118,236,216, 98,211, 58, 97,129,195,146,196, 22, 29,219,119,110,104,147, 32, 94, 97,163,111,102,200,175,241, - 82,122, 93,156, 47,108, 8,146,199,129,128, 2,163, 55, 24,159,167,247,184,253,242,121, 93, 63, 97, 86,102,205,118,254,159, 96, -253,169,173, 29, 11, 76,154, 61, 22,119, 56, 34, 81, 99,137, 68,130,219,183,111,103, 53,108,216, 48,135,101, 89,219, 57,115,230, - 56,136, 68,162,198, 31,112,239, 95, 63,123,246,172, 85,243,230,205,191, 38, 73,178, 29,195, 48,167,211,210,210, 86, 2,120,109, -225,231, 71, 3,248, 17, 64,241,204, 82,167,211,129, 36, 73,176, 44,139, 62,125,250, 96,234,212,169,126, 15, 30, 60,192,217,179, -103,229,237,218,181,187, 14, 32, 7,192, 80, 0,165, 90,205,148, 74,165,250,230,205,155,194,179,103,207,130, 97, 24,200,229,114, -216,216,216,128,207,231,163,123,247,238,146, 41, 83,166,180, 61,113,226, 68,186,178, 70, 53, 74,144,146,164,226, 75, 36, 82,184, -184,181, 28,213,239,203,104,150,101, 15, 86,162,115,224, 9, 57, 70, 13, 97,210,146,139,102, 46, 39, 69, 92, 46, 33,224,114,192, -103, 10,240,195,207,243, 8, 46,107,226,160,146,235,243, 92, 46,151, 43,229, 67, 71,241, 40,131,136, 0,251, 49, 26, 7, 69, 81, - 60, 1,183,108,127, 12,154, 36, 73,146, 36,185, 0, 44, 78,218,199,231,243,185, 82, 62, 91, 38,167,144, 34, 40,130, 32,120, 40, - 99, 39, 90,144, 11, 88,179, 21,137, 55,238,149,182,164, 40,110,217,178, 37,142,156,189,141,125, 17,167,145, 17,119, 31,211,191, -255, 6,141, 26, 53, 66,100,100,100,185,101, 50,251,104,149,101, 93,118,117,117,141, 74, 78, 78,110, 80,214,103,203, 91, 50, 44, -195, 74,245, 62,255, 76, 91, 4,207,142, 70, 5, 62, 90,221, 90,182,108, 57,102,199,142, 29,186,207, 63,255,156,215,167, 79, 31, - 4, 4, 4,180, 24, 60,120, 48, 0,160, 93,187,118, 88,186,116,105,139,193,131, 7, 99,247,238,221, 56,112,224,128,182,117,235, -214,223,159, 63,127, 62, 9,133, 59, 58,223, 3,195, 48, 93,214,172, 89,243,174,165, 16, 70,163, 17, 6,131, 65, 97, 52, 26, 21, - 69,125, 17,150, 45, 91,158,113,242, 68, 36,190,159, 54, 27, 78,142, 46, 65, 22, 62, 67,196,160,137, 19, 51, 54, 47, 94,140,197, -187,119, 99, 98,205,154,162,173,143, 31,227,164, 70,131, 61,103,207,102, 20,125, 79,133,190,153, 42,149, 74,125,244,232, 81,155, - 61,123,246,192,206,206, 14,181,107,215,134, 92, 46, 7, 77,211, 32, 41, 33, 40,174, 12,117,252, 27, 3,184, 9, 0,168,233, 10, -149,175, 39, 46, 19, 4,114, 88,178,242, 62, 69,252,106,168,225,224, 46,184, 48,102, 83,128,157,141, 19, 23,199, 87,198,227,196, -138,132,131,154, 12,252, 10, 35,158,162,108,159,175,134,158,158,158, 72, 79, 79,199,209,163, 71, 85, 64,153,130, 12, 12,195,252, -252,219,111,191, 77,154, 54,109, 26,223,215,215, 23, 0,130, 0,220, 42,237,189, 98,177, 24,110,110,110,197,194,178, 79,248, 40, -175,145, 19, 70, 9,123,124, 22, 10, 14,199, 1, 57, 42, 3, 50,243, 12,144, 57, 72,240,253,132, 48,193,233,134,110,141,214, 44, -223,126, 88,173, 70, 35,224,253,254,128, 32,112,235,198,253,203,245, 4,190, 0, 65, 2, 9,228, 57, 16, 32,144, 79, 24, 64, 80, - 20,107, 50,153, 16, 31, 31, 15,150,101,209,191,199,144,132, 17,243, 15, 56,181,232,175,132, 71, 29, 87, 16, 44, 62,249,167, 8, - 1,123,123,251,160,204,204, 76,188,126,253, 26,225,225,225, 73, 25, 25, 25,167, 84, 42,213,144,228,228,100, 0,200,170, 2,101, -177,152, 15, 10, 10, 66,227,198,141,209,187,119,111, 65, 65, 65, 65,152,151,151,151,219,155, 55,111,154,253,149,245,121, 87,139, -252, 79, 9,173, 82, 27,154,193, 80, 71,187,122, 53, 84,167, 79,131,119,242, 36,246,184,186,230,107, 52,154,239, 0, 36, 20, 53, -252,111, 54,109,222,124,165,235,181,107, 54,186,232,104,120, 61,120, 0,218,206, 46,168,178, 5,216,184,113, 35,148, 74, 37,114, -115,115, 1, 0, 43, 86,172,128, 82,169,132,209,194,132,179, 28, 46, 90,184, 56,213, 68, 42,158,131,225,144,146,216, 58, 5, 77, - 36, 26,105,178, 91,188,179, 42,151,116, 67,116, 92,136, 88,157,169,107, 66, 80, 58,104, 50, 10,224,214,188, 54, 56,224,180,168, - 76, 25,205,235,254, 28, 14, 39,235,217,179,103, 93,124,124,124, 34, 0, 56, 84,197, 31,224, 29,188, 72, 75, 75, 27, 87,149, 15, - 82, 20,245, 99, 76, 76,140,211,134, 13, 27,190,158, 51,103, 14, 91, 82,104,153,255,207,225,112,192,178, 44,108,109,109, 65,211, -180,243,213,171, 87,157, 67, 66, 66, 86, 49, 12, 19, 84, 70, 61,217,128,128, 0,196,196,196,128,195,225,192,214,214, 22,140, 81, -143,217, 19, 70,193, 68,241, 57,147, 39, 79, 14,234,217,179,231,195, 13, 27, 54, 24,108,154, 54,111,150,153,153,249,104, 76,255, - 1, 15, 15, 29, 58,164, 43, 10,241, 80,241, 20,159,101,239, 62,127,254,156,114,119,117,166, 88, 99, 1, 35,230, 2,130,251,203, - 88,158,196, 5, 2, 14,197,114, 9, 18,124,129,208,246,117, 98, 98, 38,195, 48, 79, 44,225,100, 24,230, 78, 76, 76,140,208,217, -201,158, 83,160,214,229, 11,105,150, 23,123,231,246,171, 26,193, 13,189, 0, 64,115,231,230,121,126,157,186,194,216,180, 55,226, -154, 53,107, 90,196,169, 86,171,239, 38, 37, 37, 81,206,206,206,156,184,132,196,195,118, 18,177,163,141,157, 93, 19, 0,208,231, -229,222, 36,181,218, 55, 20,205,113,126,147,153,153,165, 86,171, 99, 44,173,251,203,151, 47, 57, 10,133, 19,117,252,228,153, 8, -103, 17,223, 73,202,227,216,240, 9,130, 16, 81,132,146,107,100, 50, 4, 34,145,211,235,196,196, 44,150,101,203,180, 16, 46,204, - 25,208,163,240,247,154,189,187, 4, 55,238,223,191,143, 99,151,159, 64,204,234, 64,104,114,113,114,211, 58,244,159, 60,237,131, -253,254, 42, 18, 91, 85,178,102,173,169, 27,245, 14, 63, 82, 42,112,132,239,223,191,255,236,109,219,182, 21, 59,160, 60,121,242, - 4,109,218,180, 49, 47,115,160,125,251,246, 8, 9, 9,193,147, 39, 79,224,237,237,141,179,103,207,242, 41,138,226, 15, 24, 48, - 96,254,246,237,219,143, 86,104,247, 95,187, 22, 67,134, 12, 41,205,177,250, 37, 0, 13, 33,243,205,159,186,112,139, 67, 86,102, - 6,210,223,164,222,181,244, 62, 16, 4,129, 65, 19, 39,102,172,209,233,176,227,198, 13, 12, 20,139, 69,155, 95,188, 64,167,144, - 16,212,107,211, 38,195,146,190,206,108,213,209,104, 52,160,105, 26, 54, 54, 54,176,183,183, 7,151,203, 5, 69,187,130,195, 11, - 4,201,229, 34,184,101, 32, 22,127, 39, 46, 8,239,128,229, 4,129, 28, 62, 15,119,184,162, 50,125,117, 8,113, 53,116,103, 89, - 40, 11, 18,112,206, 44, 72,108,171,195,150,150,210, 39,135,173,242,181,179,113,226,226,216,242, 56,156, 92,149,184, 95,147,138, -233, 69,247,130, 41,103, 34, 81,207,206,206, 14, 9, 9, 9,136,143,143,127,140,242, 29,252, 11,158, 60,121,242,138,207,231,251, - 57, 58, 58, 2,128,103, 89, 19,115,134, 97,138,253,176,182,238,216,235, 16,212,202, 75,240,105, 11, 63,108,137,152,135,175,194, -150,131,166, 8,152, 76,122,252,186,180, 51, 76,218,124,132,117, 29, 65,124,210,206, 59,240,116,132,110,152, 65,157,189,238,189, -137, 0, 7,115,255,211,247,170, 29, 95, 66,214, 3, 67,216, 57, 56, 56,137,185, 92, 46,236,109, 20,186,105, 35,191, 77, 97, 89, -182,184,221,208, 20,215, 64,230,201,213,153,169,249, 66, 59, 90, 13,176,100,141,170, 69,179,249,248, 72, 76, 76, 28,215,170, 85, -171,249,121,121,121,217, 42,149,170, 63, 0,120,122,122, 86, 39, 73,146, 15,160,188,213,145,234, 40, 61, 44, 4,247,193,131, 7, -144, 74,165, 72, 74, 74, 42,105,124, 1,195, 48,255,152, 77, 0,255, 80, 4, 3,184, 3, 64, 1,160, 19, 74,132,119, 32,139, 76, -117,159, 68, 70, 70,178,145,145,145,159, 20, 15, 94, 44,203, 24,179,178,192,106, 11,239, 45, 77,211, 44,128,146, 59,154, 68,118, -118,118, 4,237,238, 14,130, 95,232,250,193,126,196,173,175, 6,131,101,161,101, 24, 19, 40, 16,122,176, 37, 38, 45, 42, 1,129, -121, 14,109, 49,142, 55, 3,169, 60,187,146, 35, 29, 96,100, 97, 2, 67, 85,178, 56,172, 74,165,130,209,104,148,213,170, 85,235, -136,209,104,148, 21, 13,110,236,127,235, 23, 53,153, 76,175, 40,138,194,215, 95,127, 13,179,245, 71,167,211, 33, 53, 53, 21, 90, -173, 22, 58,157, 14, 49, 49, 49,200,205,205,133, 78,167,195,163, 71,143,224,233,233, 9,138,162, 20,229,116,230, 44,203,178,240, -240,240, 64,141, 26, 53, 64, 17, 44,214, 47,154,133, 31,198,143, 66, 95, 79, 6, 27, 87,254,138,214,173, 91,215,173, 89,179,102, - 83, 14,135, 99,114,113,113,225, 30, 56,112,224,176,201,100,234, 14,203,123,158,163, 83,167, 78,173,225,239,239,239,100,103, 35, - 53,240,121, 20,120, 6, 21,203,215,102,178,156,130, 12,120,120, 84, 55, 66, 40,242, 30, 56,112,160,169, 44, 43, 68,105,156,223, -125,247,157,194,215,215,215, 86,102, 39, 85,241,104, 42,157, 11, 54, 35,247,254,173,235, 0,192,115,116,210, 64, 32,242, 11, 15, - 15, 55, 86,134,115,198,140, 25,158,142,142,142,118, 36,216, 60,147, 94,255,231,122,187, 86,151, 73,208,180, 26, 92, 94,195,177, - 99,199, 18,149,225,156, 52,105, 82, 77, 63, 63, 63, 59, 59, 27,113, 62,135,166, 82,184, 12,147, 34, 0,147, 74,235,244,217, 2, - 71,135, 2,136, 36,193, 3, 7, 14, 44,147,211,108,205,154, 50,101, 74,194, 59,194, 27, 89, 89, 89,208,164, 62, 4, 55, 41, 26, -129, 18, 26,141, 28,101,224,243,249,197, 91,223,203,122, 92,203,242,209, 42, 77,108, 89,250,217,134, 63,149,179, 4,184,166,110, -212,187,113,179,146,147,147,161, 80, 40,202,109, 79,219,183,111,159, 22, 26, 26,154,222,190,125,123,221,145, 35, 71, 64, 16, 4, -206,158, 61,139,164,164, 36,180,111,223, 30, 44,203,154,119,181,225,238,221,187,104,215,174,157,174, 85,171, 86, 73, 69,241,181, - 42,196,144, 33, 67, 96, 48, 24,144,159,159,143,172,172, 44, 68, 70, 70, 34, 48, 48,144, 21,137, 68, 61, 41,143,207,230,133, 13, -155,214, 44,160,126, 16, 86, 45, 95,172,227,113,232,133,149,105,175, 4, 65, 32,252,187,239, 50,114,131,131,179,182,170, 84, 5, -131,108,108, 68,181, 18, 18,228,183, 79,156,112,208,235,245, 22,113,152,173, 58,238,238,238,197, 34,139,203,229,130,195,115, 4, - 37,174, 7,158,125,123,136, 92,122,226,220, 29,190,214, 86,140,131, 82, 9,142,139,237,202, 14,237, 32,242,192,188,102,125, 20, - 7,154,247, 85,156, 17, 85,195,134,162,241,128,100, 57,196,129,193,191,250,212,114,172, 33,196,181,189,169, 56,185, 42,241, 15, - 77, 42,102, 1,120, 81, 81, 59,215,235,245, 26,147,201, 4,146, 36,193,225,112, 74,250, 4, 94,249,227,143, 63,112,251,246,109, -160, 68,216,158,188,188, 60, 19, 69, 81, 16, 8, 4, 0, 32, 41,167,191, 3, 77,211,160,105, 26,231,175, 95,180,239,251, 69,103, -226,234,189, 83,104, 30,216, 15,153,249,122,164,229,234,145, 83, 0,248, 55,154,142,128,118, 7,113, 63, 38, 15, 65,245, 3, 40, -138, 39, 14, 47,141, 79,243, 26, 9,170,120,244,202,124,204,212,214, 37, 10,143, 93, 59,244,228,241,197,125,247, 31,237,250, 45, -226, 69,179, 70,173, 84, 69,198, 4,228,231,231,179, 4, 65,176,223, 14,159,246,106,235,144,108,211,242,254,247, 25,142, 86,240, -242,111,236,234,171, 59, 58, 58, 94,181,183,183, 63, 91, 36,142,170, 75,165,210, 43, 10,133, 34, 26,133, 27, 61, 14,165,164,164, -248,170, 84,170,230, 40,220,156, 21,151,153,153,217,166,200,242, 20, 87,142, 37,108,131, 82,169,252,198,100, 50,117, 45, 58, 58, -152, 76,166,160,231,207,159,251, 5, 5, 5, 61,246,242,242,186,235,229,229,117,204,203,203,235,176,151,151,215,225,208,208,208, -165,230,112, 15,127,241,178,225,123, 90,228, 95, 38,180, 80, 36,178,214, 22,189,162, 88,104, 1, 56,255,174, 3,154,145,207,127, -100, 28, 51, 6,118,135, 15,131,126,254, 28,131,195,195,109, 68, 34,209,114, 20,198,104,106, 46,145, 72, 86,205,154, 53, 75,234, -176, 96, 1, 92, 47, 94, 68,108,100, 36, 12, 52,125,171, 42,165, 83,171,213,224,112, 56,197,150, 24,177, 88, 12,147,201,132,210, - 76,190,239, 53, 64, 35,174, 37,165, 69,131,135, 26, 96,192,230, 31, 87,182,186,209,239,213,116,167, 72,165,167,247, 11, 21,215, -251, 39,199, 38, 78,203,171,183,184,161, 34, 56,249, 60, 59, 1,226,227, 19, 96, 2, 83,169,245,102,141, 70,147,171, 82,169, 16, - 20, 20,100,127,251,246,237, 90,129,129,129,242,162,235, 55, 63,240,135,105,234,234,234,186,215,205,205,237,181,171,171,235, 94, - 0, 77, 43,241,217, 13,151, 46, 93, 2, 69, 81,152, 53,107, 22,242,242,242,160,215,235,145,153,153,137,248,248,120,232,116, 58, - 36, 38, 38,226,233,211,167,208,233,116,136,141,141,133, 86, 91,241,132,132, 97, 24,216,216,216, 64,163,206,199,239,243,126,192, -140, 41, 19,144,251, 50, 10,137,201,105,176,179, 21, 99,220,184,113,148, 76, 38, 99, 24,134,169, 97, 50,153,218, 49, 12,179,218, -146,223,169,196,243,118,217,195,195, 35, 96,209,162, 69,126, 63,204, 91,205,181,225,228,179,124,169,128,225, 73,249, 44,175,110, - 19, 12,153,190,156,187,108,201, 47,207,174, 93,187,150, 4,203,130,119,146, 0, 46, 7, 7, 7,251, 36, 37, 37, 5,250,250,250, -214,113,168, 94,147,207, 87,184,229,112, 21,213,148,172, 86,115,131,112,171,214,114,245,234,213, 15,175, 92,185,146, 92, 25, 78, -177, 88, 92,119,203,150, 45, 1,206,206,206, 1,180, 80, 40, 40,200,205,221, 99, 44, 80,237,165,236,100, 2,210,198,174,195,193, -131, 7,163,246,239,223,159, 90, 25, 78,111,111,111,223,121,243,230,249,215,171, 87,207,223,197,179, 22, 95,232,230,145, 41,112, -175,158, 41,172, 23,200,135,123,141,207, 87,173, 90,117,247,218,181,107, 22,113, 82, 20,101, 36, 73, 18, 52, 77, 67, 36, 18,225, -248,241,227, 24, 51,172, 31, 60,220,236, 81,199,215, 23,109,191,250, 6,251,247,239, 47,246,225,161, 40,170,204, 17,125,243,130, -113, 17,193, 10, 34, 10,107,234, 70, 97, 77,221,168, 96, 5, 17, 85,166,216, 42,250,123,105,239,177,168, 55, 42, 99,185,209, 2, -177,117,244,252,249,243, 63, 15, 26, 52,136,215,177, 99, 71,220,184,113, 3, 67,134, 12,185,124,224,192, 1, 0,192,141, 27, 55, -240,237,183,223, 94, 62,115,230, 12, 70,141, 26,133, 54,109,218,240, 46, 93,186,180, 10, 22,196,254, 49, 26,141,216,184,113, 35, -140, 70, 35, 36, 18, 9,228,114, 57, 58,119,238,140,135, 15, 31,142,218,180,105, 83, 52, 69,211, 95,118,234,250, 5,142, 28, 62, -128,167,143, 30,142,218, 60,127, 64,165,131, 2,147, 36,137,142,225,225, 25, 25,254,254, 89,155,149,202,130,161, 50,153,200, 55, - 53, 85,126,110,239, 94, 7, 11,132, 26, 97, 50,153,138,197,149, 89,116,152, 15, 14,207, 17, 28,113, 0, 56,210, 70,184,255,130, -107,224,134,224, 14,175, 17,158,148, 23, 63,139,230,145, 67,122,254,224,137,158, 63,120,162,219,228,154,131, 69,213,176, 94, 92, - 13,163, 59,142,175, 17,234,213,200, 22,202,116, 61, 34,127,141,141,211,100, 98, 1,128,167,150,180,115,134, 97, 30, 39, 37, 37, -129,199,227,161, 90,181,106, 62, 0,204,126,129, 27,134, 15, 31, 62,246,167,159,126,154, 0,224,167,162,107,146,208,208, 80,255, -252,252,124, 60,127,254, 28, 0,110,151, 99, 13, 46,222,101,152,165,140,229,215,116,173,135,192,186, 35, 33,147,213, 71, 82,150, - 14,201, 89, 58,172,255,189, 59,162, 46,205,197,237,147, 3, 17,151,154, 10,161, 75, 15,152,140,218, 0, 11, 38,245,174,247,238, -221, 35, 46, 93,186, 68, 48, 12, 3,131,193,192,230, 41,149,236,157,203,151,161,190,112,129,176,177,177, 33, 90, 52,110,149,191, -121,238,145,155, 7, 87, 94,190,173, 47,168,244, 68,253, 67, 48,227,213,171, 87, 77,247,238,221, 27, 10, 96, 70,189,122,245,174, -197,199,199, 55,187,120,241, 98, 29,119,119,247,229, 85, 37, 53,135,133,136,141,141,125,235, 40, 10, 11,161, 43, 18, 13, 29,139, -196, 92, 55, 0,223,226, 3,118,217, 87, 2,231,255,197,206,240, 71,240,206,110,195,119,133, 86,201, 64, 97,240,146,201,164, 6, -131, 62,241,212,169, 83,122,146, 36, 33, 18,137, 48,104,200, 16,242,247,223,126,107,217,175,105,211,179, 35, 62,253,244,216,217, - 51,103,130, 67, 66, 66,192,178, 44, 72,146,196,238,221,187,213, 26,141, 58,211,195,195,195,206,146, 78,163,100, 3, 82, 42,149, -197, 66, 43, 55, 55, 23,206,206,206, 22, 47, 29,170,148, 56,125,230,120, 84, 54,107,250, 42,190,227,139, 37,250,133,169,221, 67, -114, 24, 19, 39,215,100, 64,174,154, 69,158, 6,156, 27,164, 60,100,144,119, 15,125, 76,187,144,167, 23,162,175,102,106, 76,154, - 74,237,150, 72, 79, 79,255, 33, 44, 44, 44, 83,161, 80, 16, 54, 54, 54,112,115,115, 35,187,117,235,150,145,144,144,240, 83, 85, -127, 17,123,123,251,190,161,161,161, 17, 73, 73, 73,189, 46, 92,184, 80,227,226,197,139,189, 66, 67, 67, 35,236,237,237,251, 90, - 72,177,103,218,180,105, 42, 30,143,135, 38, 77,154, 32, 47, 47, 15, 69,187,124,202, 61, 44, 89, 34,229,114,185, 88,179,232, 71, -204,152, 50, 1, 89,209, 55,112,255,242, 41,156, 79, 37, 48,125,222, 47,224,114,185, 85,138,245, 85,219, 81, 84,175,158,171,244, -201,183, 67,250, 36, 79,157, 50, 69,122,247,238, 93,122,236,248,111,217,216,148, 44,240, 58, 46,166,240,201, 15,228, 61,149, 35, - 58,117,104,139, 89, 51, 38,214, 43, 10,218, 89, 46,234, 58,138,234, 5,184, 74, 31, 79, 28,209,239,213,248,241,227,133, 11, 23, - 46,212, 52,109,218, 84,157,150,150, 38, 20,203,228,190, 28, 91,187,128,216,148, 84, 73,211,166, 77, 99,190,250,234,171,156,202, -114, 78,159, 62, 93,116,226,196, 9, 78, 88, 88,152, 49, 59, 59, 91, 66, 11,133, 65, 4, 95,208,248, 77,118,182,109,175,176,176, - 23,189,122,245, 42, 40, 10, 88,106, 49,231,204,153, 51, 69, 79,159, 62,229, 52,109,218,212,144,154,154, 42, 21,219, 59, 4, 82, -118,242, 70,175, 83,210,108, 26,135,132,188, 28, 59,118,172,170,188,114,150, 20, 41, 82,169, 52,169,121,243,230,248,245,215, 95, -177,108,217, 50,124,254,249,231,120,248,232, 33, 58,141,157, 0,191,209,223,226,240,213,235, 72, 74, 74,194,156, 57,115, 16, 24, - 24, 8, 46,151,251,180,212,246, 56, 42,154,184,155, 10,226,110, 42, 8, 98, 84, 52, 97, 62, 47,211,178,245, 83, 46, 74,190,191, -180,247,221,158, 89,186,165, 43, 88, 65, 68,149,231,135, 85,145,216,234,213,171,215, 24,115, 8,135,161, 67,135, 94, 94,190,124, -121,139,161, 67, 11, 39,218, 77,154, 52,193,220,185,115, 91, 76,159, 62,253,242,188,121,243,208,182,109, 91,120,121,121, 85,184, -241,197,100, 50,193,104, 52,162, 95,191,126, 48, 26,141,120,243,230, 13,158, 61,123,134,181,107,215,130,101, 89, 1, 0, 40, 92, -221, 27,242,120, 60,220,187,115,171, 96,198,208,144,237,149,176,100, 17, 37, 39, 49,249,249,249,232, 53,122,116, 70, 98,237,218, - 89,171, 51, 50, 10,134,201,100,162,154,113,113,114,169, 78,231,134,114,252, 18, 9,130, 0,195, 48,197,194,202, 44,184,222, 61, -138, 6, 74,139,160, 47, 96,142, 94,220,150, 12, 0,104, 53,192, 21,221, 38,215, 28,172,240, 22,173,104,217,191,208,232,189,127, -238, 43, 54, 47,217,180, 16, 6, 60,174,132,197,250,198,141, 27, 55, 96,103,103,135,176,176, 48, 62, 73,146, 11,204,243, 85, 20, -198,206, 90, 98,230,226,243,249,139, 7, 14, 28, 72,230,228,228,224,254,253,251, 0,112,166,172,126,137,101,217,226,186,231,103, - 17, 48, 49, 60, 92,185,115, 28, 39, 47,238,195,235,164, 55,136, 75,215, 0, 28, 91,104, 84,137,208,171,147,160,203,185, 3,165, - 86,100, 81,129,185, 92,238,155,122,245,234,177,141, 26, 53, 98, 89,150,197,203,151, 47,141,177,113,113,198, 91, 75,151,178, 15, - 70,142, 36,164,207,158,113,133, 66, 33,225,233,233, 9,129, 64,192, 8, 4,130,204,191,113,240,254, 75,194, 45,252, 5, 97, 33, - 62,166, 85,139,197,191, 19, 41,120,123,183, 97,113, 0,211,210, 2,150,130,181, 17,246,217,183,234,119,219,176,126, 3, 84,129, -129,129, 50, 55, 55, 55, 16, 4,129,238, 61,122, 16,161, 23, 46, 72,105, 87, 87,216, 55,104, 80,188, 28,113,250,212, 41, 28, 63, -126, 92,117,228,143,131,110, 67,134, 13,235, 2, 96, 75, 57,133,225,240,249,252,226,239, 77, 73, 73, 1,159,207, 47,246,137, 80, - 42,149,112,116,116, 68, 74, 74, 10, 44, 92,153,219, 58,117,202,245, 41,233, 33, 63,120,134, 72,105,226,152, 42, 21, 38,150, 5, - 77,152, 0, 53, 11,131, 9,208, 26, 88, 52,172, 73,201, 79,170,141,178,200, 27, 7, 98, 0,108,173,204,221,211,106,181,231,238, -222,189, 59,146, 97,152,125, 0,200, 11, 23, 46, 48,143, 31, 63, 30, 3,203, 29,215,223, 55,219,139, 68,147,207,158, 61, 43,159, - 60,121,114,118,100,100,100,110,231,206,157,109,215,174, 93, 43,111,211,166,205,228,204,204,204, 93,150, 24, 2,227,227,227,183, - 36, 36, 36,140,105,212,168, 17,178,178,178,160,215,235, 17, 21, 21, 5,111,111,111,220,190,125, 27, 62, 62, 62,184,117,235, 22, -234,212,169, 3,147,201, 4,141, 70, 3,134, 97, 76, 21,117,230, 89, 25,111,128,204,120, 36,223, 56,134,103, 15,162,112, 54,153, -192,202, 93, 17,168, 86,195,179, 74,113,106,124,156, 68,254, 10, 71,251,147, 11,103,207,116,138, 61,183, 27, 7, 54,174,100,206, - 31, 59,230,199,147, 98,228, 39,253,190,249, 66,103, 64,117, 0,188,102, 33,141,208, 81,246,212, 36,170,129,212,179,143,203, 15, -176,232,227, 36,242,119,118,176, 63,241,159, 5, 63, 73, 95, 30,223,140, 61,107,126,101,247,111,219, 25,168, 1, 66,252,253,253, - 59,146, 36,105, 7, 64, 83,228,231,101, 81,106,155,210, 56, 79, 71, 68, 4,107,128,144, 67,135, 14,117, 20,137, 68, 46, 0, 12, - 5, 5, 5,175, 62,132,243, 76,100,100,176,185,156, 4, 65, 56, 1,208,179, 44,251, 18,149, 76,193,211,187,119,239,185,223,126, -251,237, 20,147,201,228, 88, 98,118, 78, 45, 94,188,152,195, 48, 12,197,178,172,158, 36, 73,253,137, 19, 39, 76, 70,163, 49, 89, -163,209,140,254,144, 94,228,139, 47,190,192,245,235,215,103,163,112, 19,134,165,214,234,183,252,180,138, 82,246, 84,153,255,194, -133, 11,115,190,252,242,203,169,187,118,237,122,182,124,249,242,174,163, 70,141,194,238,221,187, 81,187,118,109,220,187,119, 15, - 63,252,240, 3, 0,180,152, 62,125,250,225, 13, 27, 54,120,197,198,198, 46,182,192,162, 1,163,209,136,157, 59,119,162,123,247, -238,112,116,116,132,171,171, 43, 8,130, 56, 55,108,216,176,223, 0,128, 34, 40, 46, 0,104, 53, 90,173,175,111, 35,139, 45,184, - 92, 46,183,184,175, 75, 77, 77, 45,222, 41,248,217,151, 95,102,172, 95,184, 16,219,213,106, 12,147,201, 68,137,238,238,138,195, - 47, 95,142,120, 84,216, 57,179,229, 89,117, 42, 18, 89,150,186, 52,168, 83, 48,237,143,249,175, 93, 0,124,222,106,128, 43, 90, - 13,112, 69,163,110, 78, 4, 73, 17,120,112, 50, 19, 15, 79,103,237, 55, 40,113, 14,149, 75,151,243,120,193,130, 5,135, 63,249, -228,147,174,117,235,214,197,240,225,195,191,218,184,113, 35,215, 96, 48,140,199,159, 97, 30,108, 73,146,252,105,205,154, 53, 35, -228,114, 57, 46, 93,186,132,139, 23, 47,158, 3, 16, 95, 86,191, 4,160, 56,102, 86, 53, 15, 31,205,211,216,124, 81,122,210, 21, - 92,190,244, 7,106, 7,126, 3,161, 75, 23,200,125,231, 65, 31,189, 12,186,204,147,144,123,116, 70, 98,236, 75, 80, 28,254,195, -138,156, 80, 88,150,125,148,152,152,232,229,229,229, 69,188,126,253,218, 8,128, 53,153, 76,172,190,101, 75,131,223,194,133,244, -195,175,190, 34,154, 61,125, 74,177, 4,193, 68, 69, 69, 1,192,147,255,198, 40,110, 14,183,240,240,225,195,178,194, 45, 84, 10, -245,234,213,107,113,241,226, 69,190, 70,163,193,249,243,231,209,184,113,241,222,174,255,106,244,251,146, 90,228, 95,134, 17,165, - 92, 91,251,150, 69,235,173, 7,155, 33,232, 58, 62, 62, 38, 46,137, 77,221,187,116, 41,184,123,247,110,241,172, 79,115,243, 38, - 84,199,143,195,100, 50,129,101, 89, 92,188,112, 1, 3, 7, 12,200,167, 41, 98,125,205,154, 53, 88,130,125, 43,118, 75,187, 82, -102, 15, 97, 97, 97, 97,197,157, 79, 66, 66, 2,196, 98, 49,120, 60, 30, 24,134,129,209,104, 4, 69, 81,176,181,181,133,209,104, - 44,205, 4,243, 46,167,193,148,165,234,181,161, 83,255, 20,215,124, 61, 59,210,174, 38,170,115,133,197,141,211,197,134, 64,215, - 64, 26, 14,156,116,246,204,226, 79,147, 25,109,102, 47,188,191,163,171,162, 45,255, 62,245,235,215,255,109,224,192,129, 36, 0, -180,107,215,142,172, 95,191,254, 10,148,159, 42,167, 92, 78,129, 64,192, 7,128,136,136,136,172,103,207,158,125, 30, 17, 17,145, - 85,242,186,133,156,107, 23, 45, 90, 4,145, 72, 4,163,209, 8,157, 78, 87,236,159, 85,242, 85,175,215,195,193,193, 1, 71,142, - 28,129,201,100, 58, 82, 81, 57, 61,170,215, 0,225, 88, 11, 91, 34,206,226, 98, 6,183, 42, 34,171,152,179,150,139,184,142,139, -131,253,169,255,204,159,227,152,253, 34, 10,137,137,137,236,137,227, 71,174,105,128,164,220, 60,204,200, 81,161,142, 90, 7, 65, - 99, 47,196,159, 90,243, 61, 59,189, 21, 12, 40,125,215, 96, 49,167,159,139,184,142,155,163,253,137, 95,254, 51, 95,154,243, 34, - 10, 41,169,169, 56,122, 36,226,174, 6, 48, 47, 55, 14,102, 24, 38,128, 97,152, 0, 0,131,203, 17, 47,149,226, 44, 40, 40,168, - 87, 80, 80, 80,239, 99,114,178, 44, 91,143,101, 89,139, 57, 75,250, 68, 45, 89,178, 36, 58, 37, 37,101, 96,122,122,122,123,243, -145,157,157,221, 46, 63, 63,191,117, 65, 65, 65, 75,245,146, 26,182, 5, 5, 5, 78,249,249,249, 10,141, 70,211, 16, 64, 84, 37, -158,249, 98,148,140, 58,157,146,146, 50, 43, 37, 37,133,168,168,156,212,232,104, 98,199, 47, 19,255, 88,179,102,141,226, 3,249, -223, 42,103, 70, 70,198,190, 93,187,118, 5,121,122,122,122, 13, 30, 60, 24,171, 87,175,198,242,229,203,181, 0,176, 97,195, 6, -109, 9, 75,150, 71,108,108,108,163, 50,150, 13,219,149,176,150,108,253,236,179,207,216,139, 23, 47,162,123,247,238,197,129, 68, -215,173, 91, 7,163,209,168,108,219,182, 45, 3, 0,106, 77,129,146,101, 88,232,244,101,174,191,191,119, 63,121, 60, 94,135,146, -241, 2,205,193,152,121, 60, 30, 88,150, 69,157, 22, 45, 50,114, 2, 3,179, 54,230,230, 22,204,170, 87,207,102,132,175,239,224, -186,192,128,210, 56, 9,130,120,203,170,243,238, 81, 9, 75, 86,201,114,166,171,147, 49,252,143,249,175,143,155, 45, 91, 2, 9, - 7,154, 60, 35, 14, 46,124,253, 70,243, 6,235,202, 18, 63,229,213, 61, 43, 43,107,236,194,133, 11,181, 50,153, 12, 95,124,241, - 5,230,205,155, 55,172, 69,139, 22,185, 78, 78, 78,215,107,215,174,253,160, 79,159, 62, 41, 81, 81, 81, 99, 67, 67, 67,241,252, -249,115,252,242,203, 47, 57,217,217,217,253,203,227, 36, 8,162,216,146,215,173, 83,187,172,223, 87,252,202,180,253,100, 12, 68, - 66, 27, 24,104, 15,100,229, 27,144,173, 98,161,227,135,128,199,229,163,125, 83,127, 92, 63,177,185,192,164, 83,109,169,232,153, -207,207,207,223, 63,104,208, 32, 37,151,203,133, 78,167, 99,105,154, 6,191,208,239,152,161, 63,255, 92,223,236,241, 99,163,137, -101, 25,130, 32,240,221,119,223,169,178,179,179,119, 85,165, 29, 85, 2, 37, 57, 63, 86,184,133,118,239,140, 63, 31, 35, 44,196, - 95, 81,247,127, 51,214,150,114,252,105,209, 50,111,169, 52,191, 18, 4, 99, 50,153, 24,212,244,172, 41,141,125, 29,191,178,119, -239,176,161, 29, 59,118, 18,117,234,212, 73,224, 31, 93, 56, 27,141,136,136,192,129, 3, 7, 10, 78,158, 60,169,228,211,212, 6, -143,106, 30,206, 38, 19, 3,130, 96,202, 85,195, 82,169,116,252,180,105,211,132,185,185,185, 88,190,124, 57, 19, 20, 20, 68,138, -197, 98,232,245,122,108,216,176,193,224,239,239, 79,147, 36,137,220,220, 92,144, 36,249,212,194, 10,222,207,141, 79,106,255, 91, -104,207, 3,141,190, 30, 98,239, 23,218, 76,214,218,195, 13,134, 6, 44,146, 19, 94,227,217,153,147,217,143, 78, 44,205,132, 38, -173, 39, 42, 78, 15, 84,218, 64,240,227,201,147, 39,157,198,142, 29,203,106, 52, 26, 34, 62, 62,158,157, 63,127,190,211,240,225, -195,127, 76, 78, 78,238, 91,197, 31,133,200,201,201, 1, 65, 16, 76, 81, 71, 98,158,245, 87,102, 93,238,225,150, 45, 91, 14,245, -232,209,163, 91,219,182,109, 17, 29, 29, 93,188, 68, 88, 82,104,153,119, 31, 46, 88,176, 32, 7,192,212,138, 72,105,154,198,242, - 45,251,144,147,157, 1,103,103, 87, 8,132, 66, 84,117,135, 37,143, 36,103,253, 60,103,166, 83,198,147,235,196,195,107,103,153, -189,247,211,210,141, 38,182,244,136,255,121,201,108,145,250, 47,127, 54, 67, 82,179,126,158,255,147,173,121, 89,115,215,157, 20, - 37, 97, 98,199,126, 80, 19,249,183,112,254,205,112,117,117, 69, 74, 74, 10,225,234,234,202, 22,249,104,177,229, 8,173,183, 31, -240,194,229, 50,162,188,101,195,170,242,199,196,196,204,111,208,160,193,196,231,207,159,239,245,243,243, 27, 5,160,154, 86,171, -205,153, 62,125,250,127, 54,108,216, 48,212, 18, 75, 22, 0,236,222,189,123,233,144, 33, 67,142,119,233,210,229,123,134, 97,234, -151, 24,216, 99,156,156,156,138,151,112,223,164,165, 78, 25, 57,180,223,148,252,252,108,139,227,220, 73, 36,146, 17,211,167, 79, - 23,168, 84, 42,172, 90,181,138,241,247,247, 39,205,147,162,109,219,182, 25,125,124,124, 56, 97, 99,198,100, 44, 73, 77,197,220, - 75,151, 84, 83, 2, 2,130, 54, 62,123,214, 16, 12,179,181, 44,171, 78,105,150, 44,179,219, 69, 21,145, 92, 36,182,214, 1,248, -188, 89,111, 23, 28, 90,244, 26,217,177,186,255,192,136,151,176, 32, 45, 80, 41, 72,220,191,127,127,251,180,180,180, 67, 51,103, -206,180,109,216,176, 33, 2, 2, 2,104,137, 68, 18, 98, 14, 23,147,155,155,139,211,167, 79, 99,245,234,213,186, 71,143, 30,245, - 40,111,185,202,100, 50,165,251,248,248,152,239, 3, 75, 16, 68,166, 82, 75,216,238,169, 27, 34, 25, 60,114, 47,113,249,214, 85, - 36,235, 25,104, 13, 12,106,122, 6,163,245,231, 75,112,248,216, 3, 83,114,236,227,199, 6,117,246,122, 11,202,251,242,197,139, - 23, 7,231,204,153,211,251,251,239,191, 23,102,100,100,152,180, 90, 45,179,111,223, 62,106,240,224,193, 38,150,195, 97,184, 28, - 14,198,143, 31,175,206,201,201,249, 3,248, 91, 19, 76,255, 37,225, 22,254,130,176, 16, 31,205,154, 85,242,245,127, 5,165,182, - 80,134, 34,175,172, 94,243,123,135,221, 59,119,185, 80, 20,233,242,242,213,171, 91, 93,123,246, 74, 58,117,234,148,156,107,107, -219, 24, 0,163, 27, 53,234,154, 94,171,206,138, 60,116,168,122,205,154, 53, 2,139,146, 74,179, 12, 69, 94, 41,239, 11,243,243, -243, 85,151, 46, 93, 42,152, 58,117, 42,145,144,144,176,195,217,217,185,207,177, 99,199, 36, 61,123,246, 84, 71, 71, 71,239,119, -113,113,233, 22, 26, 26, 42,157, 56,113,162, 54, 63, 63,191, 50,137, 71, 31,179,111,178,235,222,156,185,248,203,155,139,126,255, - 20, 28,170, 57,180, 52,192, 24,174, 64,159,119, 10,192, 14, 84, 34,222, 81, 73,136,197,226, 64,145, 72,132,187,119,239,102,135, -132,132,232, 52, 26, 13,119,222,188,121,246, 98,177, 56,176,170, 55,158,101, 89, 54, 59, 59, 27, 12,195,112, 0, 16, 69,175, 96, - 42,191, 23,191,111,215,174, 93, 15,237,217,179,231,179, 78,157, 58,193,203,203, 11, 6,131, 1, 62, 62, 62,208,233,116,240,246, -246,134, 86,171,197,236,217,179,145,155,155, 59, 1,229,228, 60, 35, 8, 2, 70,163,177,216,217,214,205,189,122, 97,156,158, 15, - 8, 99, 33,166, 73,175,167,145, 27,145,158,153,193,236,185,151,150, 86,160, 55,181,127,241,166,224,209,187,239, 43, 48, 65, 21, - 58,120, 92, 18, 0,104,153,242, 51,206,139,121,240,122,118,100, 29,210,210, 51,176,251, 78, 74,142, 74,207,124,254,172, 20,206, - 74,149,243, 95,194, 25, 60, 59, 26,189,198, 89,254,222, 15,129,165,130,170, 44,220, 77, 5,113, 91,180,145,197,154,141,165,198, -200,250, 64,254, 67,207,159, 63, 63, 4, 0,143, 31, 63, 78,232,215,175,223,148,215,175, 95,207, 1,112, 52, 54, 54,118, 77,101, -136, 54,110,220,248, 28,192,144,242,222,179,107,241,144,131, 0, 14, 86,134, 55, 47, 47, 79, 19, 21, 21,165,153, 56,113, 34,145, -144,144,112,204,197,197,229,179,227,199,143,139,122,246,236,169,125,248,240,225, 25, 87, 87,215, 86,237,218,181,147, 28,189,113, - 35,169,224,229,203,200,200,196,133,151,166, 0, 0, 32, 0, 73, 68, 65, 84,215,175,221, 13, 12, 19, 89, 94,251,252,200, 34,235, - 45,177,117,112,238,235,159, 15,253,252,186, 29,163,197,126, 93, 54,174, 1, 72,252, 0,206,139, 87,174, 92,241, 27, 48, 96,192, -158,206,157, 59, 55,243,243,243, 67,181,106,213,240,236,217, 51,188,121,243, 6,247,239,223, 71, 68, 68, 68,132, 70,163,169, 48, -161,118, 86, 86,214,251,233,137, 4,114,215,205,171,102, 69,220,186,220,216,167,101,167, 65,194, 0, 87, 6, 58, 61,139,132,184, -151,152, 61, 99,125, 65, 74,220,243,199,122,163,190, 7, 44,220,168,163, 86,171,215, 46, 91,182,140,142,140,140,236,180,114,229, - 74,105,245,234,213, 41, 46,151, 75, 2, 96,111,223,190,205,142, 27, 55, 78,149,145,145,113, 68,169, 84,174,253,155,199,232,139, -175, 94,189, 10,166, 40,234,163,134, 91,248,128,176, 16, 86,124, 76,120,122,186,251,213,170,238, 58,202,171,154,251, 24,207,234, - 30,225,165, 57,185,123,201,100, 82,207, 26,110, 35,188,170,185,143,169, 85,221,117,148,167,167,187,159, 5,166, 69, 47, 27, 27, -155, 99, 10,133, 34, 8, 0,108,109,109,187,217,217,217, 61,178,181,181,237, 86, 52, 11,236, 38,145, 72,158,248,251,251, 15,255, - 27,205,149,229,114,250,248,248,244,203,207,207,255,202,199,199,167,159,249,252,229,203,151,197,231, 85,225,244,240,240,104,123, -251,246,237,190,139, 23, 47,254,162,118,237,218,221,230,207,159,255,197, 31,127,252,209,215,221,221,189, 97, 21, 56,249, 0,182, -211, 52,157,198,227,241,210,105,154, 78, 51, 31, 28, 14, 39,141,162,168, 52, 0,107,202,176,150,181, 43, 49,203,185,236,236,236, - 28,235,236,236, 28,235,226,226, 18,235,226,226, 18,171, 80, 40,222, 59, 28, 28, 28, 46, 91,122, 63,125, 93, 36, 45, 66,170, 73, -175,212, 83, 72, 46,215,117, 22,251,126,140,223,200,215, 69,210,162,113, 53,219, 43,245, 20,210, 75,255,223, 56,131, 92,192,178, -171,125, 89,118,181, 47, 27,228, 2,182,162,243,143,105,246, 87, 40, 20,172, 66,161,152,245, 87, 45, 37,148,193,255,183,183,247, -143,200,233, 37,149, 74,119, 85,171, 86,205,220,215,117,177,177,177, 57, 39,145, 72,186, 20,245,117, 93,196, 98,241, 5,127,127, -255, 65, 21,113,202,229,242,219, 78, 78, 78,169, 69, 71,138,179,179,115,138,179,179,115,138,147,147, 83,178,147,147, 83,178,163, -163, 99,146,249,176,179,179,187, 94,197,186, 59, 1,104, 2,160, 33, 0,155,143,120, 63, 61, 1,140, 44,234,131, 22, 2, 24, 14, -160,254, 71,248,141, 8, 90, 40, 31,205,183,243,184, 66, 75, 28,243,104,137, 99, 30,223,214,253, 74, 57, 41,120, 44,225,172, 35, -151,203,231,217,216,216,252, 33,149, 74, 47, 73,165,210, 67, 14, 14, 14,243, 1,212,249, 47, 61, 75, 18, 0, 27, 80, 24,159,233, - 40, 10,151,194, 15,161,112, 83, 65,245,127,224, 51,255,255, 25, 35,254, 91, 95,220,206,202,105,229,180,114, 90, 57,173,156, 86, -206,127, 33, 39,105,189,159, 86,161, 85, 73,161,245,238, 1,160,156,200,240, 86, 88, 97,133, 21, 86, 88,241,255, 24,140,245, 22, - 88, 81, 73,148,186,180, 76,148,163, 74, 43, 19,107,170, 42,202,246,180,149,211,202,105,229,180,114, 90, 57,173,156, 86,206,255, -119,156, 86,124, 68, 88,205,170, 86, 78, 43,167,149,211,202,105,229,180,114, 90, 57,255,215, 97, 93, 58,180,194, 10, 43,172,176, -194, 10, 43,172,248,139,176,182,132,224,122,107, 9,209, 42,180, 42, 15, 18,192, 87, 0,122, 1,168,133,194,108,246,251, 0,252, -134,170,173,233,219, 0,152, 2,160, 57, 10,119,231,196, 0,184,132,194,221, 57,249,214,219, 93, 58, 28, 28, 28,166,209, 52,109, - 7, 20,166, 54, 49,191,150,252,191,201,100,202, 81, 42,149,243,255,162, 34, 80,176, 48,130,178,185,172, 37,203, 86,242,213, 96, - 48,252,149,229,180,226,159, 9, 31,185, 92,190, 61, 43, 43,171, 63, 74, 36, 89,182,194,138,255, 5, 56, 58, 58,142,210,235,245, -211,185, 92,238,188, 55,111,222,252,254,255,168,234,239,137,172,183,132, 86,100,100,228, 5, 0,232,220,185,243, 39, 0, 96,103, -103,119,149, 36, 73,207,202,124, 3,195, 48, 49, 57, 57, 57,101, 6, 80,179,179,179,187, 74, 81,212,123,156, 6,131, 65,202,225, -112,242, 74,251,140,209,104, 76, 84, 42,149, 13,255, 33, 55,145, 0, 16, 41,147,201, 52,115,230,204,249,173,117,235,214, 30,201, -201,201,198,201,147, 39,183,186,119,239, 94, 39, 0, 29, 42, 41,182,154, 18, 4,177, 57, 40, 40,232, 96,120,120,248,158,144,144, - 16, 94,102,102,166,116,223,190,125,110, 91,182,108,137, 98, 24,166, 63,202, 73,180,250,255, 25, 52, 77,219, 37, 38, 38, 74,129, -194,212, 36, 69,194, 10, 6,131, 1, 6,131, 1, 42,149, 10,129,129,129, 31,253,123, 93, 92, 92,130, 9,130, 88, 41,145, 72, 26, -230,231,231,223, 2, 48, 38, 37, 37,229, 94,101,202,106, 52, 26,193,178,108,113, 57,253,252,252,172, 63,104,229, 48,140,199,227, -125,238,237,237,221, 88,171,213,102,199,196,196,220, 52,153, 76, 51,241,241,114,180,217, 2,152,201,231,243, 67,106,213,170,229, -241,252,249,243, 4,189, 94,127, 3,133,201,144,115, 63,134,200,250,228,147, 79, 46,175, 90,181,202,126,244,232,209,151, 47, 93, -186,212,194, 42,182,172,248,111,193,195,195,195, 78,165, 82,173, 7, 16, 76,211,180,139, 64, 32,128, 80, 40, 76,229,243,249,119, -133, 66,225,208, 43, 87,174,228, 84,150,211,100, 50,205,140,141,141,117,105,210,164,201, 34, 39, 39,167,217, 25, 25, 25, 26,189, - 94,127, 38, 59, 59,123, 2, 0,101,121,159,125, 87,139,252,203, 68, 86,201, 87,152, 69, 23,167,168, 98, 44,128,214,111, 41, 48, - 14,199, 61, 46, 46,206, 73, 32, 16,128, 97,152,226,193,236,221,195,124, 93,167,211, 33, 32, 32, 64, 95,193,128,227,145,144,144, -224,196,227,241,138,175,233,116, 58,184,185,185, 49,137,137,137, 78, 69,105, 15,138,161,213,106,225,238,238,254, 79,202,121,244, -149, 92, 46,207,141,143, 79, 8,212,104,245, 63, 13, 31, 59,117, 90,255, 94,159,202,174, 94,189,202,116,232,208, 65,123,225,194, -133,175, 80,152, 56,213,162,206,156, 32,136, 45,147, 39, 79,158, 45, 16,217,216,159,189,250, 88,187,101,223,145,164, 32,159,154, -196,132, 9, 19,168,113,227,198, 93, 12, 14, 14,222,206, 48, 76, 3, 84,194,178, 37,147,201,142,243,249,252, 26, 69,247, 47, 62, - 59, 59,251,179,127,224, 3,201,193,251,193, 99, 75,187, 86, 33, 50, 51, 51,161, 86,171,223, 59,252,252,252, 44,205,149, 89,169, -114,211, 52,125,104,193,130, 5,110,169, 41, 41,248,117,201,146, 38, 40,180,100, 54,177,228,195,233,233,233,239,149,211,215,215, - 23, 86, 84, 10, 83,102,207,158,189,224,203, 47,191,132,201,100,130, 90,173,118,125,241,226,133,255,244,233,211,123,188,124,249, -178, 49,128, 87, 31, 58, 25,247,246,246,142,254,230,155,111,228,141, 27, 55, 70, 81,150, 10,215, 75,151, 46, 53,217,176, 97,195, -192,248,248,120, 95, 0,111, 62,228, 11,228,114,249,246,117,235,214,217,139, 68, 34, 28, 62,124,216,190,109,219,182,151,238,220, -185,211,242, 3,196, 22,105,111,111, 63, 14, 64, 27,134, 97,120, 0,110,100,103,103,207, 69,229,163,186, 43, 36, 18,201,126,146, - 36,107, 2,127, 70,163, 39, 73,210,129, 32,136, 12,243, 53,130, 32,156, 24,134,185,150,149,149,213,204,250, 56,254,187, 97,111, -111, 63, 44, 45, 45,109, 21,159,207,231,202,100, 50,136, 68, 34,112, 56, 28,112, 56,156,106,124, 62,191, 26,159,207,239, 24, 26, - 26, 58,230,220,185,115,229, 70,216,111, 26,228, 60, 24, 36,241, 19, 69,144, 20, 0,144,180,216,198,214,214, 22, 63,253,244,147, -184, 91,183,110, 98, 0,184,124,249,114,248,160, 65,131,218, 38, 38, 38, 6,148, 37,182, 74,211, 34,255, 34,172, 45,111,192, 67, -145,122,188,240, 86,203, 37, 73,240,120, 60, 92,191,126, 29,150, 4, 43, 55,167, 72, 40,183, 55, 40,138, 48,126,239,222,159, 6, - 0,243, 64,195,227,241,112,229,202,219, 65,229,155, 54,109, 90,220,216,255, 46,244,242, 43, 12,242,184,247,235,194,114,133,173, - 44,140,174,189,247,107, 95,180,250, 37, 14,189,198,205,234, 83,160,209, 55, 2,160,202,201,206,206,190,117,224, 64,114,144,143, - 15,119,251,246,237,141,221,220,220,122, 85, 66,104, 77,105,208,160,193,126, 74,104,235, 16, 62,104,112,248, 80, 14,169, 31, 56, -114,226,188,132,148, 12,213,136, 17, 35, 14, 28, 62,124, 56,252,231,159,127,126, 50,105,210,164, 41, 0,126,176,180,252, 2,129, -160,198,211,167, 79,189, 77, 38, 19,252,252,252,254,137,105, 12,130, 80, 24,124,239, 75, 0, 59,139,174,245, 67, 97,228,254, 96, - 0,119, 43, 67,102,182, 96,149,118,124,108,184,185,185,249, 14, 24, 48,192, 33, 43, 35, 3,191, 46, 89, 98,190,220, 16, 21, 44, - 35,154,219,143, 78,167,195, 23, 95,124, 49,192,100, 50,113,204, 34, 80,171,213,234,114,115,115, 53,248,211,177,244, 13,128, 79, - 45, 40,142,167, 88, 44,254, 15,128, 96,181, 90,237, 6, 0, 98,177, 56,137, 97,152,131, 42,149,234, 7,252,153,192,183,210, 19, - 92, 0,254, 40, 59, 21, 20,187, 96,193,130,231, 83,167, 78,125,245, 95,224,172,225,236,236, 60, 63, 44, 44, 12, 71,142, 28,193, -209,163, 71, 13, 66,161,144, 51,104,208, 32, 98,204,152, 49,178,111,190,249,166, 35,128,101, 31,248, 51,119,156, 61,123,182,188, -110,221,186,216,183,111, 31,238,223,191,175,246,246,246, 22,182,110,221, 26, 28, 14, 71, 62,109,218,180, 14, 0, 54,127,200, 23, -100,101,101,205,157, 56,113,226,150,157, 59,119, 74, 99, 98, 98,176,114,229, 74,135, 62,125,250, 92,136,143,143,255,164, 18, 98, -139, 15, 96, 28,128, 80,138,162, 90, 14, 26, 52,200, 56,118,236, 88,154, 36, 73,195,146, 37, 75, 28, 55,108,216,208,135,166,233, -224,204,204, 76, 75, 38,105, 36,128,159,134, 14, 29, 58,228,220,185,115,178,155, 55,111,242,236,237,237, 97, 50,153,138, 45,197, - 12,195, 56,153,159, 89,163,209, 8, 95, 95, 95,247, 18,159, 23,254, 91,133, 6, 73,146,122,134, 97,104, 0, 2, 0,218,138,206, -255,151, 68,150, 92, 46, 31,157,149,149,245,155,139,139, 11,156,157,157,223, 27,107,181, 90, 45, 4, 2, 1,215,197,197,101, 93, -183,110,221,232, 67,135, 14,149,185, 4, 72, 80,196,204,195,187,230,184,201,101, 82, 0,192,210,213, 39, 10, 0,224,143, 63,254, - 64,114,114, 50,100, 50, 25, 2, 2, 2,168, 57,115,230, 40, 38, 76,152,240,107,118,118,246,208,178,184,222,213, 34,255, 50,139, -214,218,210,206,203,245,209, 98, 89,182, 56, 79,158,133, 15,237,187,151, 78,191,195, 71,232,116, 58,188,107,209, 50, 55, 94,154, -166,223, 53, 63,130, 32, 8,182, 60,206, 82, 48, 72, 44, 22, 7,170, 84,170, 21,149,152,221, 22,115,238,253,218, 23, 91,248,147, -251,153, 51,145,118,156, 88,248,186, 5,192,213,215, 67, 87,174,250,228, 19,183,113, 51,150,207, 82,103, 38,103, 76, 27,208,165, -134,183,139,189, 80,156,147,158, 43,175, 83,167,253, 59, 22,153,138,202,217, 42, 60, 60,124,235,201,235,177,132, 64,192,229,114, - 40,138,110, 81,207,199,222,195,150,178,149, 2,182, 9,175,158, 95, 29, 60,120,112,189, 73,147, 38,181,172, 4, 39,138, 6, 92, -108,219,182, 13, 4, 65,144,149,169,251, 71,196,233,242, 68, 22,203,178, 32, 8, 98, 71,137, 65,101, 71,209,181, 59, 37,196, 22, -167,188,251,105,182,166,154, 69,213,160, 65,131, 6, 24,141, 70, 78,137, 78,226, 93, 1, 83,154,136,177,168,238, 10,133,226, 36, -128, 79, 9,130,128, 78,163,209,253,231,151, 95, 74,254,249,246, 59, 34,235,116, 89,109,201, 96, 48,192,100, 50,113,238,220,185, - 67,151,120,214,105, 0, 98, 0, 14, 44,203,130, 36,201, 7, 22,220, 79, 95,145, 72,116, 53, 34, 34,194,166, 97,195,134, 4,143, -199,131,209,104,196,195,135, 15, 61,126,254,249,231,145,167, 79,159,238,160, 82,169,252,240,126,242,116, 75,126, 35,255, 75,151, - 46,169,188,188,188, 74, 21,142, 74,165,146,227,227,227,243, 73, 25,162,232,175,230, 76, 76, 75, 75,235,254,233,167,159,142, 74, - 77, 77,141, 54, 26,141,223, 3, 8,112,112,112,184,211,179,103, 79, 8,133,194, 80,181, 90,189,236, 67,158,121, 39, 39,167,110, -205,154, 53,195,202,149, 43,241,243,207, 63,183, 3,112, 6, 64, 91,165, 82,121,186,107,215,174,176,179,179,235,158,147,147,179, -249, 3,218,145, 79,171, 86,173,214,253,244,211, 79,210, 35, 71,142,192,219,219, 27,121,121,121,248,238,187,239,156,126,252,241, -199,243, 57, 57, 57,173, 75,180,139,178, 56,253,248,124,254,230,157, 59,119, 74,188,188,188,188,184, 92, 46,233,229,229,133,172, -172, 44,104, 52, 26,254,188,121,243,234, 9,133,194,123,203,150, 45,219, 12,160,103, 5,229, 36, 1,204, 93,179,102,205,168, 17, - 35, 70,216, 13, 24, 48,192,164,211,233,176,103,207, 30, 80, 20, 5,154,166, 33, 18,137,138,147, 87,115,185, 92,212,169,243, 94, -144,244,195,229,212, 55, 23,133,126,168,118,168,220,178,235,233,114,248,138,151, 62,104,154,134, 64, 32,128, 64, 32, 0,159,207, -199,211,167, 79,103, 8, 4,130, 37, 4, 65, 24, 45,225, 36,254, 84, 23,129, 0,110, 86,116,142,247, 93, 67,254,206,254,211, 12, -119,130, 32,150, 2, 8, 45, 28,118,201, 11, 14, 14, 14,227,211,210,210,226, 44,229, 84, 40, 20,246,153,153,153,203, 20, 10, 5, -156,157,157,139,199,111, 55, 55, 55, 24, 12, 6,164,165,165,129,101, 89,228,228,228, 64, 36, 18,193,213,213,117,217,136, 17, 35, -246,173, 93,187, 54,179, 84, 78, 6, 63,119,237, 51,125, 38, 69, 81, 36, 0, 80, 28,137,228,155,169, 64,141, 26, 53,208,162, 69, - 11,104, 52, 26,228,230,230,194,223,223,159, 67, 16, 68, 56, 65, 16, 54, 44,203,254, 14,224,236,255,160,161,176, 76,103,248,217, -239,174,139,154,179,197,115,185, 92,139,132, 86,209,251, 43,178,160,144, 6,131, 1, 92, 46,247, 45,139, 4, 65, 16, 48,153, 76, -111, 93, 55, 11,173,170, 8,245, 49, 99,198, 48,235,214,173, 27,149,157,157,189, 26, 85, 92, 74, 8, 15, 15,127,207,223, 99,194, -132, 9,137,233,233,233,236, 23,237, 3,197,209,199,146, 83,106,201, 36, 66, 71,169,180,166, 64, 38,183,203,204,204,188, 86,212, -153, 88,138,218, 13, 26, 52, 16,110, 57,112, 41,113,248,183, 11,230, 52,244,178,183,169,239,238, 32,115,177, 21,242, 36, 36,161, - 18, 24, 13,137,114,185,220,187,178,229, 54,247, 11, 34,145, 8, 36, 73,254,147, 44, 90, 28,179,200,202,202,202,194,145, 35, 71, -208,169, 83,167, 59,102, 17,162, 84, 42,145,146,146, 2,133, 66,113,167,200,242, 81,225, 50, 34,195, 48,208,235,245,208,235,245, -197, 2,166,196, 51, 84, 44, 96,204,239,165, 40,234, 65, 21,203, 62, 71, 38,147,181, 10, 13, 13,229,237,218,179,135,199,178,172, - 10,133, 57,212,242, 89,182,140, 4,217,239,192,104, 52, 22, 91,217,104,154, 70,124,124,124,241,192,101,206, 45, 41, 16, 8, 44, - 51,101,240,249, 19,119,239,222,109,211,184,113, 99, 34, 51, 51, 19, 12,195, 20,119,146,191,253,246,155,160, 87,175, 94,110, 81, - 81, 81,211,180, 90,237,236, 42,212,149, 40, 75, 16, 1,128,141,141,141, 17,150, 69,204,174,144,211,104, 52, 18,205,155, 55,159, -148,145,145, 81, 79,173, 86,207,179,228, 54, 2, 56,156,152,152, 88,114, 96,191, 23, 29, 29,173,238,221,187,183,176,102,205,154, - 33,143, 31, 63,254,160,135,212,199,199,167, 41, 77,211,184,113,227,134, 22,128,121,102,125,225,254,253,251,218,158, 61,123,242, - 61, 60, 60,154,230,228, 88,236,178,226,227,235,235,123,202,201,201, 73,104,238, 67, 29, 29, 29,233,181,107,215, 74,147,146,146, -160,215,235, 49,101,202, 20,116,238,220, 25, 14, 14, 14,152, 48, 97,130,243,162, 69,139,182,231,231,231, 55, 40,207,104,205,227, -241,182,190,120,241,194, 91,161, 80, 8,175, 95,191,142,250,245,235, 35, 35, 35, 3,169,169,169,200,207,207, 71,106,106, 42,134, - 14, 29,234,244,235,175,191,186, 90, 96,201, 42, 22, 89,107,215,174,205,217,191,127, 63,181,126,253,122, 41, 77,211,197, 66,139, -195,225, 20, 11, 45,115,110,197, 42,172, 52,228, 20,137, 54,187,220,220,220, 15,241,115,227, 3,224,149, 20, 89,124, 62, 31,124, - 62, 31, 2,129,224,131,242,178,254, 75,224, 70, 16,196, 99, 46,151,203, 23,137, 68, 92,146, 36,193,231,243,219,203,229,242, 71, - 1, 1, 1, 1,167, 78,157,138,181,132, 68,163,209,108,229,243,249,180,147,147, 19, 0,192,219,219, 27,245,235,215,135, 74,165, - 98,114,115,115, 97,103,103, 71,198,197,197, 65,173, 86, 35, 37, 37, 5,213,171, 87,167, 73,146,220,138, 66, 63,228,247,112,245, - 78,234,106, 0,171,205,231, 14, 14, 14,105, 37, 45,157, 2,129, 0,110,110,110, 72, 74, 74,130, 84, 42,165,126,252,241,199,158, -123,246,236,233,113,245,234,213,112, 0,219, 74, 80,205,254, 23,251,104,153, 69, 86,201,215, 63,133, 86,231,206,157,103, 69, 70, - 70,126, 82,218, 44,156,166,233,143,230,235, 98, 22, 84, 54, 54, 54,239, 90,173,192, 48, 76, 89, 22,173, 74,127,143, 64, 32, 16, -142, 30, 61, 58,239,247,223,127,175,180,216, 10, 91, 25, 93,108,197,122,111, 26,233,231,119,117,218,180,105,221,206,157, 59,151, -212,208,171, 38, 71,156, 28,151, 47,176,177,179,131,123,181, 78,131,186,247,188,143,194,221,135,150,226, 69, 94, 94,158,176,150, -187, 72, 71,146, 26,162, 26,159, 35, 85,136,185,124, 23,153,204,141,171,211,166,219,200,100, 60,173, 86,155,131,114,146, 64, 3, -128,179,179,243, 9,161, 80, 88,221,124, 46,147,201,108, 89,150,133, 72, 36,130, 66,161,144, 80, 20,245,172, 68,227,138, 75, 75, - 75,107, 95, 81,193,236,236,236, 78,240,249,252,234, 36, 73,130, 32, 8, 80, 20, 5,146, 36, 65,146,100,241,255, 41,138, 2, 65, - 16, 40, 40, 40,136,139,141,141,109,111, 65,125,141, 0,130, 9,130,184,115,228,200, 17,132,132,132,224,216,177, 99,248,252,243, -207,145,155,155,139,135, 15, 31,162, 85,171, 86, 64,225,146,162, 69, 40,233,252,110,158, 20, 60,125,250,180, 88,184,148, 60,164, - 82,233,135,152,216, 47,135,133,133, 97,221,186,117,108,209,100, 66, 76, 16, 68,125, 91, 91,219,167, 79,158, 60,177,200, 15,134, -101, 89,232,245,127,190,213, 60,120, 21,249, 67, 84, 42, 57, 48, 69, 81,237, 27, 52,104, 64,228,230,230,154, 5, 36, 56, 28, 14, - 40,138, 2, 69, 81, 88,181,106,149,176,113,227,198,211,249,124,254, 36, 46,151,171, 52, 24, 12,187, 52, 26,205, 60, 0, 57,255, -164, 30,169,101,203,150,223, 38, 36, 36,116,174, 94,189,122,196, 7,208,176, 6,131, 65, 7, 64, 72, 81, 20,253, 17,250, 40,170, -232,217,210,148, 16,251,198,162,115, 62, 10,151,137, 45,130,131,131,195,246,163, 71,143,186, 87,175, 94, 29, 6,131, 1, 70,163, - 17,249,249,249,184,112,225, 2,180, 90, 45,140, 70, 35,188,189,189, 49,115,230, 76,205,248,241,227, 5,107,214,172, 73,207,207, -207,239, 95, 1,237,248,125,251,246,137, 21, 10,133, 80,173, 86,227,213,171, 87,104,208,160, 1,242,242,242,160, 82,169, 80, 80, - 80, 0,189, 94, 15,165, 82,105,103, 50,153,116, 21,112,205, 40, 41,178, 70,142, 28,249,128,199,227, 53, 24, 59,118, 44, 18, 19, - 19,139,219,252,240,225,195,225,236,236, 92,220,150,138,250,228, 74,117,204, 28, 14, 7,124, 62, 31, 92, 46, 55,167, 90,181,106, - 32, 8, 66, 16, 23, 23, 87,149,165, 56, 27, 0, 74,154,166,121, 37, 5, 22,159,207,199,141, 27, 55,166,241,120,188,178,172, 89, -101,181, 75,182, 50,231,255,109, 16, 4,177,148,203,229,242,229,114, 57,183,196,132,147, 43,145, 72,224,228,228,180, 18, 64, 71, - 11,235, 29, 36,151,203,139,251,247,192,192, 64, 36, 36, 36, 28,204,205,205, 29,152,158,158, 14,146, 36,183,146, 36,217,195, 60, - 73,205,206,206,134,135,135, 71, 80, 89,124,205,130, 93, 70,129, 96,223,178,104,189, 51, 65,131,141,141, 13, 94,191,126, 13,149, - 74,197, 62,127,254,156, 24, 61,122, 52,161,211,233, 54, 69, 69, 69, 93, 67,225,110,251, 50,181,200,191, 4,149,247,209, 50, 91, -180, 44, 29, 0, 8,130,168,112, 54, 97, 48, 24, 36,254,254,254,165, 57,124, 17,165, 9,173,162,229,164, 42, 61,232, 52, 77, 75, -171, 42,182,222, 69,196,254,157,206, 63,207,156, 50, 83,238, 90,179,214,164, 73, 51, 56, 93,186,116,185,190,101,203, 22,147,188, -110,199,182,103, 79,108,115, 94,246,221,228, 99, 71,143, 30, 5, 10, 29,163, 45,197,229,200,200, 72,151, 9,227,198, 96,230,196, -241,199,109,188, 29,120, 18, 66, 46, 22,104, 85,111, 36, 96,213,252,218,190,157, 15, 68, 68,164, 0,136, 42,143, 68, 36, 18, 85, -127,252,248,177,119,201,141, 4,186,255,107,239,186,195,163,168,214,247, 59, 51,219, 75, 54,189, 18, 72, 0,129, 0,161,133,222, -171,128,128, 98,161, 92,165, 94, 48,136,120,189,160, 87,208, 31,122,197, 72, 17,132, 11, 10, 82,114, 65, 41, 98,161, 73, 19,144, - 98, 66, 34, 61, 1, 9, 73, 8, 69, 72,111,155,205,214,108,182,204,236,252,254,200,238,186, 9, 41,187, 97, 67,241,238,251, 60, -243,100,103,103,246,205,153, 51,167,188,231, 59,223,249,142,209, 8,177, 88,140, 51,103,206, 4,138, 68,162, 64, 0,208,235,245, -232,212,169,147,179, 22,147,136,172,172,172,182, 94, 94, 94,168,168,168,128,193, 96,128,217,108,134,197, 98, 1, 65, 16,224,114, -185,224,243,249,144, 72, 36,174,174,236,187, 10,224,181,177, 99,199,238, 62,118,236, 24,162,163,163, 81, 94, 94,142,204,204, 76, -155,200,114,201, 71,203,102, 37,114,244,199,226,112, 56,248,182,117,107,188, 94, 80, 96, 23, 48,235,188,189,241,111, 75,227,118, -211,232,212,169, 19,155,156,156,140,227,199,143,227,133, 23, 94, 32, 14, 30, 60,104, 98, 24,134, 87, 80, 80,112,189,160,160,192, - 41, 14,139,197, 98, 79,171,173,221,118, 20, 88,174, 10, 45,154,166,189,248,124, 62, 42, 43, 43, 97,179, 60, 56, 30,173, 90,181, -130, 66,161,224,168,213,106, 78, 65, 65,129,120,233,210,165,255, 72, 72, 72, 8,213,104, 52,175, 62,206, 86,104,211,166, 77, 17, -175,191,254,122, 14,135,195, 97, 71,143, 30, 61, 53, 59, 59,251,197,208,208,208,211,191,254,250,235, 26, 0,237, 92,229, 11, 8, - 8,184,194,225,112,194,213,106, 53,111,207,158, 61,102,141, 70,195, 11, 12, 12, 44,182,181, 29,182,188, 54,155,205, 78,173, 92, - 14, 8, 8,184, 34,151,203,121,235,215,175, 55,151,149,149,241,130,131,131,139,109, 60, 74,165,146,183,103,207, 30,179, 90,173, -230,121,123,123, 95, 81,169, 84, 13,242,201,229,242, 41,211,167, 79, 79, 58,125,250,116, 0, 69, 81,200,206,206, 70, 89, 89, 25, -124,124,124,176,115,231, 78, 68, 68, 68, 96,239,222,189, 10,133, 66, 49,251,243,207, 63,255,208, 42,178, 26,242,209, 26,212,187, -119,239, 8,165, 82, 9, 31, 31, 31,232,116, 58, 92,185,114, 5, 29, 59,118, 68, 65, 65, 1, 72,146,132,143,143, 15, 54,110,220, - 88, 65, 16,132,162, 62, 34,145, 72,244, 98,108,108,172, 15, 0,196,198,198,250,196,198,198,214,218,193,245,237,219, 23, 27, 54, -108,168, 41,180, 92, 25, 24,216,173, 78, 14,226,168,178, 79,159, 62, 72, 72, 72, 88,232,162, 56, 50,218, 68, 91, 77,107,150, 64, - 32,112,121, 49,141,197, 98,225,161,202,165,129,112,230,252, 9,192, 96,145, 72,196,171,249,101, 69, 69, 5, 47, 52, 52,116,160, - 11,194,215, 95, 36,170, 50, 56, 69, 68, 68, 64,165, 82, 49, 70,163,113,242,174, 93,187,204, 0, 16, 19, 19, 51,153, 97,152, 74, -154,166, 41, 62,159, 15,157, 78,135,160,160, 32,255,122,108,163,139, 14,125,191, 52,164,166,143, 86,104,104, 40, 98, 98, 98, 96, - 48, 24, 80, 88, 88,136,196,196, 68, 51,195, 48,187, 55,109,218,100, 9, 12, 12,252,251, 43,175,188, 66,165,164,164,188, 5, 96, - 65, 93, 90,228, 41,179,102,197,215, 41,180,172, 10, 50, 1,192,144,154, 15, 89, 83,252,212, 39,180, 26,154, 58,228,243,249,202, -156,156, 28,137, 99,167, 66,211, 52,194,194,194, 44, 44,203, 18,181, 9,173,135, 49, 5,115,185, 92,175, 15, 62,248, 64,185,105, -211,166, 41,247,238,221, 91,226,204,111,246,188,213, 30, 59,106,136,172,205, 43,227, 54,172, 95,185,212,239,206,241,111,176,245, -203,213, 12,195, 32,165,115,231,206, 3,181, 90, 45,199, 91, 98,134, 92,137, 99, 86,145,229,172, 40, 36, 1,124,125,233,210,165, -148, 49, 99,198,252,246,245, 15,251,253, 10,238,222, 61, 47, 80,203, 11,101,109,218,114,120,205, 34, 94,210, 84, 86,242, 38, 79, -158, 28, 8,224,149,134, 26, 49,165, 82,137,162,162,162,154, 2, 12, 55,111,222,124,224, 94,167, 18, 71,146, 96, 24, 6,251,246, -237,131, 88, 44,134, 68, 34,169,118,216, 68, 86, 35, 23, 42,100, 1,192,232,209,163,161, 80, 40, 32,149, 74,157, 78, 87, 77,241, -194,178, 44,140, 70, 35,140, 70, 35, 76, 38, 19, 3,128,203,225,112, 48, 43, 47,207,110,229,113, 69,192,212, 68,231,206,157,217, -115,231,206,225,183,223,126,131, 78,167,195,250,245,235, 17, 26, 26, 58, 12,192, 71,174,114, 57, 56,233, 51,106,181,154,171, 86, -171,237,214, 65, 46,151,107,183, 30, 56,105,201,227,113, 56, 28,251,104,212,118, 56, 90,181, 40,138, 66,112,112, 48, 66, 66, 66, -176,121,243,102, 94,203,150, 45,199, 61,206, 22,104,213,170, 85,109,214,173, 91,183,109,199,142, 29,199,166, 76,153,242, 99, 90, - 90,218, 76,111,111,239,235,103,206,156, 89, 42, 16, 8, 44,141,172,223,225, 5, 5, 5, 65,142, 95, 89, 44, 22, 49, 77,211,118, - 97, 91, 81, 81,225,244, 0,131,203,229,134,167,167,167,139, 1, 96,233,210,165, 92, 0, 98,155, 51,184,141,179,162,162,130,219, -177, 99,199,112,103,203,122, 82, 82,210,192, 17, 35, 70,156, 59,121,242,164,111, 68, 68, 4,242,243,243,145,159,159,143, 54,109, -218, 96,249,242,229, 58,181, 90,221, 31, 64,150, 86,171, 61,232, 36,103,152,175,175, 47, 55, 39, 39, 7, 52, 77,163, 91,183,110, -216,184,113, 35, 38, 79,158,140, 78,157, 58, 65,173, 86, 35, 61, 61, 29,219,183,111,247,229,241,120,245,182, 29,122,189,254, 96, -124,124,124,243,154, 22,173,169, 83,167, 74,138,139,139,237,101, 50, 46, 46,174,218, 20,162, 43,109,178,117,106,171,206,163, 49, -160,105, 90, 38, 20, 10,213, 2,129,128,111,243,207, 74, 76, 76,116,217,154, 85, 99, 0,232,202,249, 99,131, 77,180,214,210,183, - 34, 36, 36,196,105, 30,129, 64, 64,216,218, 70,154,166,161, 82,169,152,208,208, 80,251,244,126,106,106, 42, 19, 25, 25,201, 80, - 20, 69,241,249,124, 16, 4, 1,177, 88, 92,103,131,207, 50,108,220,243,147, 63,170,182,234,112,254, 7,128,201,100, 66,106,106, - 42, 76, 38, 19, 18, 19, 19,205,159,127,254,121,129, 82,169,156, 15,128,115,226,196,137,233, 11, 23, 46,164,130,130,130, 70,148, -148,148,160, 33, 45,242, 20,137,173, 7,172, 92,182, 94, 40, 97,220,184,113,132,117,105, 37, 97, 19, 78,174, 8, 45,107,229,107, -176,231, 37, 8, 2,133,133,133,246,243,160,160, 32,151,255,151,179,240,247,247,215,245,237,219,215, 75, 46,151, 31, 92,181,106, - 85,163, 44, 89,155, 87,198,109, 88,241,233,199,126,138,140, 11,200, 43, 40,132,162,196,156,146,124,253,222, 1, 0, 7, 0, 0, - 91, 58, 36, 16,111,100,126,229, 44,103,251, 0, 81, 87, 46,143,115,224,217, 49,227,154, 79,138, 93, 64,190,249,230,155, 3,166, - 79,159,174,154, 50,101,202,219, 82,169,180,157,201,100, 42,223,127,244,232,253, 73,147, 38,181,100, 24,102, 58, 26,136, 57,162, -215,235,179,135, 12, 25,226,152,159,178, 83,167, 78, 5,223,191,127, 31,243,230,205, 43,205,207,207, 87, 58,222,235, 76, 26, 77, - 38, 83,118,215,174, 93,235,156, 46,180, 77, 41, 2,128, 70,163,201,118, 33, 75, 95,133,213,241,189,172,172, 12, 55,111,222, 4, -135,195, 65,159, 62,125,144,156,156,140, 1, 3, 6,164,186, 98,213,170,172,172, 68, 68, 68, 4, 42, 43, 43,161,211,233, 42, 0, - 8,118,182,108, 9, 0,120,171,172, 12, 87, 62,255, 28, 23, 86,172,128, 99,121,118, 22, 93,186,116, 97, 47, 92,184,128,235,215, -175,195, 96, 48, 96,246,236,217, 0, 64, 88,203,174, 43, 33, 51, 90, 83, 20, 53,122,204,152, 49, 97, 0,160,211,233,136, 75,151, - 46, 65, 40, 20,218,235,194,225,195,135,145,159,159, 15,130, 32,224,235,235, 27, 94, 94, 94,222, 18,192,189,122,204,254,196,189, -123,247,240,217,103,159,193, 98,177, 96,225,194,133,104,219,182,173, 93, 96,101,103,103, 99,233,210,165, 96, 24, 6, 31,127,252, - 49,218,180,105, 3,179,217, 44, 68, 35, 67,104,184, 3,239,188,243,206,157, 3, 7, 14, 28,203,205,205,125,110,229,202,149,131, - 9,130,176,188,247,222,123,159,201,100, 50,230, 97,120,203, 85, 26,220,188,157,109, 23, 66, 53,143,192, 0, 63,151,249,110,221, -205,181,255,158, 97, 28,249, 24,248,251,249,186,154,196, 10,179,217,172,123,233,165,151,124,246,237,219, 71,180,105,211, 6,127, -252,241,135,205, 50, 84, 1,215, 67, 58,228, 43, 20,138,182, 20, 69,241,110,223,190,141,200,200, 72,244,238,221, 27,203,150, 45, -131, 92, 46, 7, 77,211, 8, 10, 10,178,152,205,230, 84,147,201,116,182, 1,174,184, 57,115,230,240, 0,188, 97,181,108,117,158, - 63,127,190,101,245,234,213, 72, 77, 77,181, 91,176, 28,157,225, 93,157, 58,116,180, 58, 57, 30,137,137,137, 11,249,124, 62, 11, -224, 34, 92, 15,244,108,172,105,209,106,140, 53,171,169,208,148, 43, 25, 67, 67, 67, 19,189,188,188,198,149,151,151, 87,179,106, -245,239,223,223, 20, 28, 28,156,228, 44,143, 84, 42, 45,167, 40,202, 31, 0,242,243,243, 33,145, 72,120,119,239,222, 93,129,170, -224,217,104,217,178,229, 10,133, 66,193,107,105,109, 79, 67, 66, 66, 96, 52, 26,235,116, 99, 57,127,181,248, 27, 0,223,216,206, -253,252,252, 10, 85, 42,149,104,245,234,213,218, 21, 43, 86,232, 25,134, 49, 0, 56,163, 84, 42,237,113,180,138,138,138, 84, 92, - 46,215,207,199,199,167,153, 77,104,213,166, 69,158, 50,212,109,209,178, 42, 73,182,166, 32, 34, 8,226, 1, 7,245, 6,132, 86, -131, 34,139, 97,152,106, 86, 6,155,195,123,109,255,203,218,169, 55,106,234,208, 42,178,132,251,247,239,223,185,106,213,170,139, -206,254,206,209, 71,107,203,154, 79, 87,218, 68,214,239,191,157,196,193, 76,149,124,225,138,181,235, 26,251, 6, 58, 4,136,187, - 4, 7,251, 39,124,190, 60, 78,118,231,248,118,252,184,229, 63,236,239,151, 47,247,186,124,249,242,180,121,243,230,181,176, 22, - 44, 5,128,107, 0, 38,193,137, 85, 58,249,249,249,163,106,116,194, 89, 60, 30, 47, 88, 44, 22, 35, 63, 63, 95,123,235,214, 45, -151,167,100,228,114,249,168, 38, 40,128, 28,155,200,146,203,229, 72, 79, 79,199,208,161, 67, 1, 0,201,201,201,232,223,191, 63, - 82, 82, 82,208,189,123,247, 84, 0, 61,209, 64,160, 86,179,217,172,236,208,161,131,221,186,165, 82,169, 44, 0, 16, 91, 88,136, -248,208, 80,112, 56, 28, 92, 88,177, 2,139,205,102, 44,115, 81,192,119,237,218,149,189,116,233, 18,238,223,191, 15,154,166, 49, -126,252,120, 52,178,210,119,106,223,190,253,169, 51,103,206, 4, 74,165, 82,232,116, 58,104,181, 90,204,152, 49, 3,147, 39, 79, -134,193, 96,192,158, 61,123,112,232,208, 33,120,121,121, 65,167,211, 65,167,211,249,142, 29, 59,246, 92, 86, 86,214, 32, 0,183, -235, 16, 90,236,168, 81,163,144,148,148, 4,138,162,208,171, 87, 47,148,149,253,185, 24, 40, 56, 56,184,182,107,212,227, 20, 90, - 28, 14,135, 77, 76, 76, 92, 57,120,240, 96,228,230,230, 62,215,189,123,247,245, 51,103,206,204,127, 88, 94, 95,111, 47,116,237, -216, 26, 6,131, 1, 6,131, 1, 97, 97, 97,208,104, 52,184,115,231, 14, 12, 6, 3,130,131,124, 92,230,139,233,212,198,206, 23, - 20, 20, 4,157, 78,135,123,247,238,193,104, 52, 34, 32,192, 37,161,213,124,212,168, 81,191,238,222,189,219,127,251,246,237,198, - 33, 67,134,240,215,175, 95, 79,200,100, 50, 56,116, 44,174, 34, 49, 57, 57, 57, 98,196,136, 17, 81, 25, 25, 25, 72, 76, 76,132, -209,104, 68, 76, 76, 12,110,221,186,133,190,125,251, 66,171,213, 94,188,124,249,242, 33,103, 12,195, 0, 62,156, 51,103, 14,108, - 98, 43, 41, 41, 9,133,133,133,240,242,242,122, 64,104,217,124, 31,173,171,198,195,156, 73,172, 77, 16, 57, 88,158, 22,251,248, -248,152, 0,172,107,164,245, 9, 0,144,155,155, 43,232,220,185,179, 65, 40, 20,242,173,162,109,237,195,240,185, 19,110, 88,201, - 88, 39, 66, 66, 66,230, 7, 4, 4,140,104,213,170, 21,138,139,139,121,124, 62, 31,253,251,247, 55,245,236,217,211, 20, 18, 18, -242,150,179, 60, 2,129, 32,131,199,227, 13,170, 26, 76, 48,200,201,201, 1,203,178, 11, 59,117,234,244, 79,141, 70,131,178,178, - 50,190, 76, 38,179, 15,170,163,162,162, 96, 48, 24, 50, 92,176,188,197, 69, 70, 70,126,200,227,241,150,201,229,242,218,194, 66, -240,125,124,124,100, 60, 30, 15, 38,147,169,154,216,172,169, 69,158,118,145, 85, 77,104, 57,168,200,106, 66,199, 21,139,150, 51, - 86, 3,155,131,189,227,185, 77,212,213,252, 95,141,141,161,229,237,237,109,176,137,172,101,203,150, 93,108, 12,199,222,221,187, - 66,189, 45, 21,205, 11, 46,254,140,172,235, 41, 56,144,174,148, 47, 92,177,246,237,231, 95,121,181,184,166, 48,115, 6,109, 3, -197,157,130,131,252, 19,214,172, 90, 33, 83,100, 92, 64, 97, 81, 17,126,190,120, 57,197, 4,164, 3, 88,232, 78,211, 50, 80, 53, -117, 72, 81,212,147, 84, 96,237,206,240,133,133,133, 54,145, 21, 3, 0, 3, 6, 12, 72,181,138, 44, 56,107,209, 82, 42,149, 53, -183,172, 25, 1, 32,192,246,252, 28, 14, 7,253, 63,252,208,101,145, 5,128, 77, 73, 73,129, 66,161,176,141, 20, 27, 43,178, 16, - 18, 18,242,175, 51,103,206, 4,126,253,245,215,234, 29, 59,118,148, 89, 44, 22,110,215,174, 93,195,123,244,232, 65,236,220,185, - 19, 0, 48,105,210, 36, 44, 92,184, 16, 55,110,220,128, 68, 34,193,128, 1, 3,152, 37, 75,150, 4,205,159, 63,255,173,226,226, -226,183,107,237, 29, 45, 22,158, 80, 40, 60, 13, 96, 88, 70, 70, 6, 0,156, 67,213, 22, 78, 54, 43, 66,157,215,156,233,124, 53, - 26, 13,215,203,203,171,214,208, 16,188,170,209,144,171, 22, 8, 59,231,111,191,253,246,217,154, 53,107, 14,188,251,238,187,183, - 31,146,179, 86,139,214,184,113,227,160, 55,152,144, 87,172, 2,195,208,208,155, 74, 92,230,115,180,104,141, 27, 55, 14, 21,149, - 70,228, 20, 42, 64,211, 12, 52,122,167,251,114,241,179,207, 62,123,226,251,239,191, 15, 57,127,254, 60, 24,134,177,220,186,117, -235,222, 75, 47,189, 36,123,239,189,247,252, 31, 98,145,209,151,175,190,250,234,132,223,126,251, 77, 17, 21, 21,229,119,241,226, - 69,148,148,148,128,166,105, 12, 27, 54, 12,124, 62, 63,103,197,138, 21, 60, 0, 95, 58,251,110,172, 98,203,116,249,242,229,215, - 47, 92,184,224,231,231,231,199,183,180,111,143,194,147, 39,177,111,223,190, 7,126,176,101,203, 22,192,201, 40,252, 54,139,211, -165, 75,151,220, 34,176,170,245,212,124,126,163,167, 31,159, 86, 92,186,116, 41,255,205, 55,223,236, 40,147,201,214, 13, 28, 56, -112,168,191,191, 63,233,235,235,155,216,172, 89,179,127,118,237,218,213,233,217, 5, 46,151, 59, 83, 34,145,220,161,105,154,210, -106,181,208,233,116, 85,141, 52, 77,243, 73,146, 68,203,150, 45,237,125, 73,175, 94,189, 16, 18, 18,194,100,102,102,206,116,150, -191,180,180,180,218, 42,196, 90, 48,167,127,255,254, 28,131,193,128,251,247,239, 39, 59, 94,168, 77,139, 60, 37,136,173, 87,124, -217, 30,202,241,225,154, 53,107,150,107, 54,155,217,116,128,189,118,237, 26, 27, 27, 27, 91,239, 81, 89, 89,201, 6, 5, 5, 21, -214,210,249,193,145,211, 96, 48, 84,251,157,193, 96, 96,131,131,131, 25,189, 94,255, 0,167, 94,175,103,195,195,195,243,235,227, -172, 5, 51,174, 94,189,186,105,241,226,197,189, 93,200, 32, 59, 39,187,185, 61,187,125,251,246,191,177, 44, 59,120, 96,199,136, -235, 19,187, 6,179,253,219, 6, 21, 28,218,187,123, 50,203,178,131,107, 30,182, 0,167,245,113,182, 15,150,116, 24, 30,221,162, -252,247,227,223,177,103, 86,255,131, 93, 51,190, 45,219, 61,220, 75,217, 62, 64,228,234, 30, 49, 13,238,150, 30, 29, 29,157,101, -177, 88, 88,163,209,200, 70, 71, 71,223,114, 7,103, 35, 80, 31,103, 55, 84,249,178,189, 90,203,119,221, 30, 34,157,191,179, 44, -203, 42, 20, 10, 86,171,213,178, 6,131,129,101, 24,134,117, 4,128,223,157, 92,118,192,127, 0, 0, 32, 0, 73, 68, 65, 84,224, -100, 77, 38, 19, 91, 94, 94,206,194,121,159,187, 90, 57, 67, 67, 67,239,221,189,123,151,125,230,153,103,114,173,230,248,249, 58, -157,142,173, 9,157, 78,199, 14, 29, 58,148,189,117,235, 22, 27, 25, 25, 89,121,235,214, 45, 54, 52, 52,244,102, 3,233,108,213, -188,121,243,211, 1, 1, 1,137, 0,218,186,112,173,222,252,220,179,103, 79,107,150,101,103,179, 44, 27, 91,199, 49,155,101,217, -246,143,155,211,154,191,197, 44,203,178, 21, 21, 21,172, 66,161, 96, 11, 10, 10,216,138,138, 10, 86,171,213,178, 87,175, 94,101, -207,159, 63,207, 94,191,126,157,245,243,243, 43,118,134,211,198,103, 52, 26, 89,181, 90,205,150,148,148,176,122,189,158,213,233, -116,108, 90, 90, 26,123,229,202, 21, 54, 35, 35,163, 54,190, 7, 56,253,253,253,183, 20, 21, 21,105,207,157, 59, 87,177,121,243, -230,138,144,144,144, 12, 0, 17, 0,218,249,250,250, 22,253,227, 31,255, 96,165, 82,105,118, 35,235, 81, 71, 46,151,123,117,229, -202,149,151,142, 28, 57, 82,124,232,208, 33,227,182,109,219,242,230,205,155,119,150,195,225, 92, 5,208,177,145,245, 40,200,199, -199,231,220,197,139, 23,233,242,242,114, 86,169, 84,178,106,181,154,213,233,116,172, 94,175,103,141, 70, 35,107, 54,155,217,179, -103,207,178,193,193,193,142,211,146,139,234, 25, 88, 47, 96, 89,246, 95, 44,203,114,220,221,214, 57,112, 15,116, 23,167, 59,218, - 58,146, 36, 77,214,182,163, 79,213,105,253,231,143, 43,157,195,135, 15,255,120,242,228,201,236,232,209,163,217,152,152,152, 7, -142,238,221,187,179,115,231,206,101,143, 28, 57,194,126,254,249,231, 31,187, 33,157, 28, 84, 45,122, 89, 62,124,248,112,115, 82, - 82, 18, 59,105,210, 36, 22,192,168,250,180,200, 95, 65,112,217,194, 59, 16,142,127, 1,192,100, 50,229,102,101,101,133, 70,209, - 52, 5, 0, 95,125,245,213, 3,150, 41, 71, 36, 37, 37,209, 4, 65,220,169,239,191,155, 76,166,220, 51,103,206, 4,111,216,176, -129,235, 96, 2, 6, 77,211,150,130,130, 2,114,253,250,245,213,238, 79, 72, 72,160,105,154,206,113,241, 33,183,119,235,214,109, -187, 59,114,235,236,141,251,255, 60,241,243, 79, 1,125,122, 15, 84,202,252,252,106, 29,133,237,121,171, 61,136, 55,234,183,106, - 17, 28,114,217,202,229,113, 62,182, 41,200, 31, 82,139,148,149, 6,102,104,166, 92,255,187,187,223,176, 86,171,189,111, 91, 9, -168,211,233,114,158,192, 66,120, 21, 85, 49,174,232, 26,223,245,196, 67, 58,157, 90, 44, 22,120,123,123,219,173,161,141,176,136, -178, 54, 11,171,237,213, 61, 76,122, 88,150,253, 45, 45, 45, 45,114,198,140, 25, 94, 59,118,236,184,203, 48, 12,119,214,172, 89, -166,144,144, 16, 94,114,114,178, 25, 0, 49,120,240, 96, 78, 81, 81, 17,155,159,159,175,120,225,133, 23, 52,175,191,254,186,255, -181,107,215,248, 22,139,165,161,160,133,127,228,230,230, 14,111,196,181,122, 49,113,226,196,187,120,248,109,108,154,156,211, 6, -133, 82,141,187,247,243,173, 17,204, 45, 96,178,139,237,126, 85,102, 51, 13,133,186,204,101,139,214,157,123,249,214, 45,198, 24, - 48, 76,129,149,175,202, 33,158, 45,175,104,184, 55,225,112, 6, 44, 89,178,100, 12, 73,146,228,133, 11, 23, 12,171, 86,173,202, - 45, 45, 45, 29, 15, 32, 7, 0,202,203,203,135,108,223,190,253, 91, 39, 66, 57,212,133,116,179,217,220,119,209,162, 69,111, 3, - 24, 0,160,133,149, 59,217,106,201,106,108, 4,243, 18,165, 82, 57,114,204,152, 49, 39, 41,138,106,233, 80,143, 2, 0,200,109, -245,130,101,217,160,226,226,226,231,156, 33, 36, 8, 98,109, 83, 53, 36, 77,201,253,144,237,208, 83,177,146,241,244,233,211,159, -140, 31, 63,158, 19, 17, 17,241,127, 17, 17, 17,100,121,121, 57,180, 90, 45, 72,146, 68, 72, 72, 8,162,163,163, 17, 18, 18, 98, -201,200,200, 88,254,254,251,239, 55, 24,147,175, 67,135, 14,173,205,102,243, 51, 36, 73,182, 6,208,154,101,217,214, 4, 65,180, - 6,224, 7, 0, 50,153, 76, 22, 25, 25,201,233,211,167, 15,122,247,238,141,132,132, 4,236,221,187,247, 27, 0, 39, 28,173, 89, - 53,181,200,147,128,244,110, 96, 59, 94, 5,113,163, 59, 6, 19, 22, 36,176, 36,134, 68,167,216,227,236,213, 20, 89,117,111, 42, - 93,139,233,111,212,176, 97,195,236, 21,206,137, 78,229,126, 67,149,175,180,180,116,212,204,153, 51,171,113, 50, 12, 99, 40, 43, - 43,123,179, 95,191,126, 27, 41,138, 18,212, 40,176,217, 37, 37, 37,143,116,175,190,154,113,180, 70,141,121, 81,254,176,156, 82, - 30,249, 76,214,209,255,162,184, 68,142, 31, 82,139,202, 53, 70,102,200, 45,121, 69, 90, 83,164, 63, 59, 59,123,244, 83,160,248, -107, 19,173, 15,187,121,118,169, 19, 1, 73, 27,218,163,142,176,134, 19,113, 75, 37, 47, 42, 42, 90,253,225,135, 31,142, 92,190, -124,121,224,177, 99,199,100,182, 1,202,203, 47,191, 92,146,150,150, 54, 16,128,160,178,178,242,212,242,229,203, 3,227,226,226, -252, 1,248, 3,192,216,177, 99,139,139,139,139, 55,192,131,122, 97, 54,155,243,162, 59, 68,217, 7,126,142, 33, 29, 28, 63,211, - 52,157,231, 10, 95,109, 60,142,231, 12,195,212,203, 71, 81,212,187,189,123,247,166,222,125,247,221,226, 99,199,142,217, 54,210, -117, 84,104, 89, 13, 4, 37,117, 6, 6, 0,171,172,135, 59,161, 83, 40, 20,125, 93,252, 13,227, 41,141,181, 14, 40, 93, 57,127, - 44, 56,120,240,224, 71,147, 38, 77,218,238,231,231,183,171,117,235,214, 81,193,193,193, 50,145, 72, 4,131,193,160, 49, 26,141, - 55,179,178,178,166,124,244,209, 71,127, 56,101,225,216,190,157, 2,192,179, 88, 44, 66,146, 36, 37, 0,100, 4, 65,248,218,132, - 22, 65, 16, 48,153, 76,184,127,255, 62, 22, 47, 94,204,156, 62,125,250,115, 0, 31,187, 48,112,237, 9, 32,208,161, 29, 15, 4, - 96, 68, 85, 0,219, 82,130, 32, 46, 55,117,126, 17, 22, 36,116,188, 10, 34,189, 27,106,235, 39,234,223, 84,186,174, 10, 87, 90, - 90,218,215,221,149,184, 46,206,210,210,210,136, 39,165,134, 76, 55,172,250, 14, 91, 86, 85,219,231,208, 38,194,106, 59,111, 8, - 42, 61, 61,239,203, 19, 55, 86, 27,104,214, 98,162, 45,127,191, 85, 90,145,238,105,135,220,142,103,221, 85,151,220,152,166,180, -204,204,204,126,243,230,205,251, 72, 44, 22,247, 2,128,138,138,138, 11, 5, 5, 5,159,194,186,170,176,161,235, 30,212, 13,185, - 92,222,227, 73,228, 51, 26,141,255,236,215,175,223, 23, 12,195,172,161,105, 58,249,127,224, 85, 84,122, 74,227,211,139, 31,127, -252,241, 15, 0,125, 1, 96,194,132, 9, 20, 0,236,221,187,215,101,241, 60, 99,198, 12,134,101, 89,147,181, 60,232, 80,181,186, -176,220,214,166,234,116,186,242,130,130,130, 12,134, 97, 50, 0,124, 11,215, 87,220, 6, 18, 4,113,132,101,217,113, 86,225,118, -132,101,217,113,142,223, 53,181, 85,171,129, 91, 26,118,134,247,160, 10,123,211, 65,212,156, 10,108,232,188, 33,100, 21,235, 18, - 1,116,247,228,238,255, 36,238, 22, 20, 20, 76,127,136,235, 30, 60,125,200, 49, 26,141,227,255,135,158, 87,229,121,229,127,145, -254,175, 17, 2,203,134,140,140,140, 38,115, 17,120,220,232,120,181,250, 0,188,230,185, 3, 98,107, 19, 94, 30,161,229,129, 7, - 30,120,224,193,195, 64,233,201, 2, 15,254,202,176,249,102,217,206,235,240,209,170,233,159,101, 63, 39, 80,247,202, 1, 87,118, - 37,111,204, 42,137, 83, 30, 78, 15,167,135,211,195,233,225,124,236,156, 62, 0, 34, 1,172,108,224,190,154,171, 11,139, 1,200, - 1,152, 61,249,233,225,124, 8,253,224, 20, 88,150, 29, 91,223,212, 33, 65, 16, 71,155, 74,104,217,157,225,187, 97, 73,244, 85, - 44,177,157, 59, 43,180,154, 26, 35, 60,156, 30, 78, 15,167,135,211,195,233,225,244,112,122, 56, 31, 82,104, 13,125,255,253,247, - 63, 64, 85,104, 12,246,253,247,223,255,128,101,217,177, 85,151,216,177, 77,249,191,111,116,199,224,244,110, 96,109,199,141,238, - 24, 92,199,173,177, 14,135, 29,158,169, 67, 15, 60,240,192, 3, 15, 60,240,224, 73,199,185, 21, 43, 86, 84,172, 88,177,194,230, -248, 94, 10,128,176, 90,184, 74,155,242, 31, 91,167, 9,157, 89, 40, 85,255, 22, 60,143, 1, 97, 36,135, 55,149,203, 19, 12, 5, -107,137, 6, 0,144,212, 13,198, 88,249, 43, 77,155,118, 1, 40,104, 44,113,123,160, 67, 27, 31,209, 33, 3,195,240,114, 53,198, - 9,153, 85,219, 28,184,140, 9, 64,127, 1,159,255,139,192,199, 71, 84,219,117,131, 82,169, 55, 24,141, 35,247, 2,191,121,234, -128, 7, 30,120,224,129, 7, 79, 9, 36,190,190,190,167, 73,146,140,176,125,225, 24,119,176,102, 12, 66,134, 97, 10, 21, 10,197, - 72, 84, 77, 21, 63, 74, 78,199,223, 27,209,200,190,220,221,112,117,234,144, 3, 84,139,194,250, 72,118,204,166,184,130,215,189, -188,125,150,253,109,230, 63,253,219,182,139, 34,154, 55,111, 6,176, 64, 78,110, 94,240,157,219,183,134,255,184,227,203,119,212, - 42,197, 98,179,193,240, 95, 87,185, 59, 0,146, 22, 82, 65,242,127,223,127,205,135, 3, 26,175, 46,221,125,156,208,154,154,103, - 84, 45, 55,117, 73,100,249,248,251,159, 88,113,234,148,200,183, 75,151,106,215, 88,150,173,218, 95,239,247,223, 69,255, 55,114, -228,137, 9, 10,197, 40,143,216,250, 75, 34, 68, 38,147,205,231,114,185, 67, 76, 38, 83, 4,159,207,207,101, 24, 38,177,188,188, -124, 29,128,124, 79,246,252,181, 17, 21, 34, 25, 24,213, 58, 98,119, 65, 81,113,170,186,210, 56, 43,171, 64,171,240,228,138,203, -168,111,127,205,199,182,247, 38, 0, 72,165,210, 43, 36, 73,134, 59,138, 0,219,158,189,182,243,154,127, 45, 22,203, 31, 10,133, -162, 95, 61,180,173,253,252,252, 54, 2,232,217, 80,192,100,107,108,182,203, 10,133,226, 77,212,189, 90,207,203,215,215,247, 19, -130, 32, 38,146, 36, 73, 53,244, 76, 22,139,133, 97, 89,118, 79,121,121,249,199, 0, 52,117,221,231,235,235,123, 42, 51, 51,179, -103, 80, 80, 80,131, 86, 26,154,166,145,147,147, 19,216,171, 87,175,179, 10,133,162,125, 83,114, 62,106, 45,210, 88,212,179,234, -176,206,130, 14,160,218,254, 66, 77, 26,145,149, 39,148, 30,234, 59,104,212,208,185,111,191, 43,185,154,118, 19,191, 36,156,135, - 90,103, 0, 69,146,240,241, 18,163, 93,187,103,136,181,241,251, 2,190,217,188,118,205,133,164,147, 99, 43,117,170, 23, 92,146, -233, 98,206,226,133, 47,245,146,248,251, 49,128,133,193,191,198,116,149,252,223,145,212,197,168,160, 63,112, 89,100,157, 62, 45, - 46, 41, 46, 70, 92, 88, 24, 56, 52, 13, 33, 73, 66, 72, 16, 16,146, 36, 36, 66, 33, 70,111,219,134, 79,143, 29, 19,127,244,220, -115, 30,177,245, 23,131, 84, 42,157, 25, 22, 22,182,106,235,214,173,254,173, 90,181,130, 68, 34,129, 66,161, 8,200,202,202,234, -182, 96,193,130,233,133,133,133, 31,170,213,234, 45,158,156,250,235,194, 98,193,212,175,151,189,217,172, 48,251,118,179, 57,203, -191,107, 71,248, 51, 67,110,150,233,139, 60, 57,227, 52,186, 1, 72, 69,237,251,151,214,119,173, 78, 8,133,194,226,202,202,202, -160,250,238,225,243,249, 37, 70,163, 49,184, 33, 46,146, 36,195,243,243,243,131,196, 98, 49, 24,134,177,238, 6, 96,177, 15,164, - 29,119, 63,177, 6,170, 69,251,246,237, 77,245,113,122,121,121,125, 85, 82, 82, 50,194,182, 79,160,131,160,170, 21,249,249,249, - 35, 58,118,236,248,149, 70,163, 25, 89,135,120,249,228,237,183,223,158,223,169, 83, 39,155, 21,200,186, 11, 66,213, 95,185, 92, -142,121,243,230,217,255,135,197, 98,193,201,147, 39,223,158, 57,115, 38,202,203,203, 23,212,243,236, 17, 65, 65, 65,132,117, 67, -241, 58,177,100,201, 18, 44, 89,178, 4, 95,126,249, 37,193,229,114,125, 26,200, 79,183,112, 62, 42, 45,210, 24, 11, 86, 3,145, -225,143,162,186,111,214,209, 7,132,214,163, 0,197, 21,252,189,103,191, 17, 67,230,205, 95, 40,249,238,167, 51,200,202,248, 29, -153,201,223, 87,187,167,199,200,153, 40,146,107, 48,115,238,191,164, 4,197, 25,146,116,234,224,223,205, 6,253,215, 78, 90,179, -130, 35, 4,252,127,244,233, 21,205,205, 23,101, 33,196, 87,132, 1,221,219,112,155,159,184,254, 15, 29,232, 47, 50,170, 86,201, -184, 36,178,182,190,246, 26, 6,154,205, 8,162, 40, 80, 4, 1, 10, 0, 73, 16,168, 52, 24,112,121,234, 84,244,218,185, 19, 31, - 31, 62, 44,254,228,249,231, 93, 18, 91, 18,137,228, 42, 65, 16,190, 90,173,118, 44,170, 54,150,126, 26,208, 81, 42,149, 30,101, - 89,182, 92,167,211,117,123,130,210, 21,138,170, 57,250,154,163, 99, 30,170, 86, 84,185,180,179,176, 64, 32,120,125,194,132, 9, -107, 55,108,216, 32, 46, 46, 46, 70, 65, 65, 1, 24,134,129, 80, 40, 68,219,182,109,137, 83,167, 78,249, 47, 92,184,112,245,209, -163, 71, 5, 26,141,230, 11, 87, 6, 54, 92, 46, 55,222,207,207,239,185,224,224, 96, 73, 73, 73, 73,133, 82,169, 60,105, 48, 24, - 94, 71,227,183, 77, 33,185, 92,238,148,200,200,200, 23,195,194,194,130,243,243,243,229,121,121,121,135, 12, 6,195, 55,104,228, - 70,205, 14,121,218, 5,214,104,245, 0, 10, 35, 35, 35,111,220,191,127,191,196,141,156, 5,145,145,145,233,141,224,148, 0,248, - 17, 64, 88, 3,247, 21, 0,152, 4, 23,173,217,246,140,101, 45, 63, 47, 93,183,117, 86,220,140, 1,196,215, 11, 70,180,125,227, -203, 83,231, 73, 30, 59, 40,163,176, 50,215,163,161,156, 19, 89,214, 45,173,106, 10,170,250,174,213, 11,131,193, 16,104, 50,153, -192,173, 99,179,120,157, 78, 7, 47, 47,175, 64,103, 19, 41, 18,137,240,253,247,223,131,203,229,130,203,229,162,188,188, 28,225, -225,225,246,115, 30,143,103,255,220,162, 69,139, 6,249, 24,134,233, 69, 81, 20,180, 90, 45, 24,134,177, 31, 74,165, 18, 44,203, - 66, 32, 16,128, 97,170,182,115,114,184,222,171, 46, 62,130, 32, 38,134,133,133,225,187,239,190,131,209,104,124,224,186, 76, 38, - 67, 90,218,159,155,140, 80, 20,133,222,189,123,147, 4, 65, 76, 4,176,160, 30, 94, 22, 0, 98, 99, 99, 65, 81, 20, 40,138, 2, - 73,146,246,207,182,131, 97, 24, 44, 89,178, 4, 53,182, 38,123,100,156, 79, 26, 26,136, 12, 95,136, 58,124,180,200, 38, 78,151, -227, 18,207, 48,177, 68,246,217,155,255,252,151,244,232,217,235,200,201,205,121, 64,100, 1,192,149, 95,190, 65, 97, 65, 62, 82, - 51,243, 48,229,239,111, 73,101, 50,159,207,106, 52,168,117, 46, 27,245,246,226,125,254,254,164, 1, 66,173,185, 0, 26, 95,128, -106,205, 7, 87,172,195,194,113, 93, 4, 50, 47,222, 42,103,210, 41,224,243,127, 89,113,234,148, 93,100,245, 55, 24, 32, 96, 24, -208, 12, 99, 23, 89, 70,154,134,222,104, 68,168, 86,139, 59, 51,103,130, 53,155,241,225,129, 3, 98, 1,159,255,139, 51,233, 4, - 0, 30,143, 23,122,232,208,161, 22,157, 59,119, 78,128,243,193, 76, 79, 53,241, 59,170, 15,221,187,118,237,154,184,115,231,206, - 22, 60, 30, 47,212, 29,156, 66,161,240, 21,137, 68, 82, 42, 20, 10, 95,105,100, 58, 73, 0, 75,103,205,154,149,242,204, 51,207, -156,177, 10, 43,187,168,121,230,153,103, 78,205,154, 53,235, 42,128, 37,117,148,245,218, 56,155,133,133,133, 45,219,176, 97,131, -248,214,173, 91,200,207,207,135,217,108,198,171,175,190, 10,134, 97,160,215,235, 97, 52, 26,177,114,229, 74,137,191,191,255, 98, - 84,109, 20,236,204,179,243,188,189,189,111,237,216,177, 99,194,189,123,247,164,103,206,156, 33,210,210,210, 36,171, 87,175, 30, -239,239,239,159, 5, 64,208,136,252, 36, 67, 67, 67,191, 62,120,240,224,155,105,105,105,225,251,247,239,231, 94,184,112, 33,116, -243,230,205,179, 67, 67, 67,119, 2,160, 26,249,142,186,137,197,226,225,239,189,247,158,229,220,185,115,249,231,206,157,203, 95, -187,118, 45, 6, 14, 28,216, 63, 46, 46, 46,166,145,156,221,189,188,188,134,189,247,222,123,150,164,164,164,130,139, 23, 47,230, -173, 94,189,154, 28, 54,108,216,128,101,203,150,117,113,145,243,199,115,231,206, 13,206,205,205,109,149,151,151,215, 50, 47, 47, - 47, 50, 47, 47, 47, 50, 63, 63, 63,162,176,176,176, 69, 81, 81, 81,243,146,146,146,230,137,137,137, 3, 0,236,118,134, 51, 42, - 88,242,230,130, 87, 71, 84, 44,254,251, 24,246,131,105,207,178, 11, 95, 29,204, 62, 55,168,243, 79, 20,135, 67, 92, 76,207, 65, -184, 55,240,205,188,158, 17,205, 3, 36,105,209,126,210,118, 79, 88,221,124,210, 56, 57, 54, 33,165, 80, 40,112,244,232, 81, 88, -173, 87,221, 28, 69,150, 90,173, 70, 97, 97,161,237, 26,199,153,116,202,100,178,211, 91,183,110,101, 43, 43, 43,161, 82,169, 80, - 82, 82,130,220,220, 92,220,185,115, 7,101,101,101,184,121,243, 38,196, 98,241,105,103,210, 73, 16, 4, 24,134,177, 11,169,147, - 39, 79, 98,214,172, 89, 80, 40, 20,246,239, 56, 28,142,253,179,237, 55, 13,113,218, 44, 79, 12,195,224,226,197,139,152, 51,103, - 14,214,174, 93,139,221,187,119,227,200,145, 35, 80, 40, 20,118,177, 69,211,116,131,156,114,185, 28, 22,139,115, 99, 38,150,101, -161, 82,169,156,126,239,142, 2,136,195,225, 60, 32,138,108,135, 43,101,233, 33, 57,159, 88, 56, 17, 25,190,238, 17,182,237,131, -213, 84, 55,164,169, 18, 73,114,120, 83, 38,206,120,219, 63,175, 68,141,252, 98, 21, 40,242,207,126, 47,102,196, 12,112, 40, 18, -151, 78, 84, 25,174, 72,138,130, 74,103,128, 82,107,194,132, 25,243,253,254,187,246,223, 83,104, 83,101,189, 49, 94, 58, 1,109, -163,165,210,151, 58,118,108, 65,102, 8, 50, 17,243, 92, 50, 24, 11,192, 38, 61,143,110,229, 65, 84,251, 95,248, 47,233, 52,166, -101,105,192,173,122,173, 25, 62, 62, 34,223, 46, 93, 16, 23, 22,134, 65,102, 51,120, 44,139,103,139,139,241,251,252,249, 48,236, -219, 7, 18, 0,239,149, 87, 48,116,221, 58,156, 13, 11, 67,136, 94, 15,229, 59,239, 32,240,248,113,240,100, 50, 17, 74,157, 91, -252, 64, 16, 4,134, 12, 25,130, 83,167, 78,249,143, 30, 61,250,196,245,235,215, 95,166,105,250,108, 99,242,214,219,219,251, 10, -135,195, 9,111,232, 62,154,166,243, 84, 42,149,203,219,140,112, 56,156, 65,189,123,247, 62,176,127,255,126, 95,147,201,228,150, - 81, 8,159,207, 31, 61,126,252,248,173,155, 54,109,146,205,158, 61,123,235,145, 35, 71, 42,140, 70,227,113, 87,138, 20,128,165, - 91,182,108,121, 35, 54, 54,214,103,246,236,217,236,157, 59,119, 28,173, 87,129, 3, 7, 14,124,102,235,214,173, 33, 61,123,246, -124,123,206,156, 57, 60, 0, 31, 54,100,229,145, 74,165,115,183,110,221, 26, 32,151,203,161,213,106,237,141,108, 94, 94, 30, 68, - 34, 17, 72,146, 4, 73,146,224,114,185,248,236,179,207,252,231,206,157, 59, 95,161, 80,204,119,194, 74, 22,191,113,227,198,192, -145, 35, 71,146,247,238,221, 3, 73,146, 16, 10,133,120,237,181,215, 72,189, 94,239, 27, 23, 23,183, 93,167,211, 77,118, 37, 15, -185, 92,238,148,248,248,248,118,253,251,247,231,100,102,102,162,111,223,190,184,116,233, 18, 94,121,229, 21,174, 70,163,105,185, -112,225,194, 89, 6,131,193,213, 56, 46,161, 98,177,184,211,175,191,254,154,219,188,121,115,123,195,210,178,101, 75,102,236,216, -177,138,204,204,204,168,115,231,206,149,245,235,215,207,149, 13,203,155,137,197,226,246, 63,255,252,115, 97, 92, 92,220,240, 45, - 91,182,140, 7,128, 94,189,122, 29,250,244,211, 79,207, 40, 20,138,232,179,103,207, 42, 6, 13, 26,148,231, 36, 95, 88,104,104, - 40, 51,111,222, 60,105,125, 55,109,219,182, 77,137,170, 13,151, 91, 1,168,119,191,182,168,200,144,197,171,230, 79, 20,129, 49, -129, 53,235, 1, 83, 5, 96,210,194, 98,172, 0,193, 19, 1,102, 61, 2, 5, 10,252, 56, 55, 74,182,232,187,187, 25,204, 77, 98, -108,166, 92,115, 28, 30,212,218,212, 0,136, 33, 8, 34,245,232,209,163,232,221,187, 55,142, 30, 61,138,177, 99,199,166, 58,138, -129,180,180, 52, 12, 26, 52, 8, 86,139,150, 83,190, 90, 42,149,234,253, 37, 75,150, 36, 77,153, 50, 69, 92,173, 49, 32, 73,248, -248,248, 96,204,152, 49,149, 58,157,238,125,103, 19,202, 48, 12, 56, 28, 14,242,242,242,176,109,219, 54, 44, 95,190, 28,109,219, -182,133,217,108,126, 64,108, 89,219, 61,167, 26, 63,154,166,113,249,242,101,236,218,185, 19, 31, 46, 94, 12, 47, 47, 47, 0,128, -201,100,130,162,188, 28, 66,161,208, 46,198, 26, 16, 78,123,110,223,190, 61, 63, 60, 60,188,218,148,161,237,175,181,205,130,197, - 98, 1, 77,211,168,172,172,196,218,181,107,105,150,101,247, 52,212,255,216, 68,209,252,249,243, 97, 48,252,105, 80,239, 98,245, - 73,142,140,140, 68,215,174, 93,237,231, 36, 73,178,206,114,254,183, 95, 39,232, 29,238,142, 90,178, 26, 0, 16, 30, 30,142,168, -168, 40,132,134,134,214,201,217,212, 90,164, 49,112, 33, 50,124,221, 66,235, 81,236,148,205,229, 9,135,182,110,211,142,200, 41, - 84,128,195,225, 64,226, 29,128,126, 47, 46, 0, 69,145,144,250, 4,128, 96,244,127, 42, 98,146, 2,135,226, 64,161,209, 35,178, - 85, 27, 82, 32, 20, 13,213, 53, 32,180,100,222,220,141,239, 77,238, 39, 44,163,243, 32,106, 33, 4, 99,235, 78,195,248, 32,253, - 53,120,119,116, 91, 81,236,161,235, 27,161, 50, 15,115, 38,189, 20, 77, 35,136,162, 96, 98, 89,252, 62,127, 62, 98,226,227,145, -106, 19,134,241,241, 72,141,141,133, 31,151, 11, 1, 73,130, 53,155, 31,152,211,119, 70,104, 1, 64,110,110, 46,246,237,219,231, - 55,113,226,196, 3,105,105,105, 83, 92, 20, 27, 54,174,128,139, 23, 47, 6,181,106,213,170,206,123,254,248,227, 15,244,232,209, -195,229,233, 41, 62,159, 63,122,216,176, 97,223,237,219,183,207, 59, 61, 61, 29, 65, 65, 65, 15, 45,180, 4, 2,193,160, 17, 35, - 70,124,183, 99,199, 14, 89,105,105, 41,226,227,227,101,207, 63,255,252,238,148,148,148, 23, 13, 6,131, 51, 98,179,154,200,138, -143,143, 87,110,219,182,237,191,168, 62, 69, 88,184,109,219,182,175,123,246,236,249,102,108,108,172, 15,128, 55,172,190, 3,245, -138, 45,129, 64, 48,164,117,235,214,213, 70,181, 2, 65,149,177, 73, 34,145,192,219,219, 27, 60, 30, 15, 6,131, 1, 49, 49, 49, - 4,159,207, 31,224,204, 51,123,121,121,141,120,233,165,151,200,228,228,100, 20, 21, 21,193,199,199, 7, 82,169, 20, 12,195, 96, -246,236,217,212,218,181,107,135,232,116,174,205,112, 53,111,222,124,252,240,225,195, 57, 55,110,220,192,189,123,247, 96, 48, 24, -144,149,149, 5,153, 76,134,105,211,166,241, 86,173, 90,245,124,126,126,190,171, 66,171, 83,108,108,108,177,163,200,178, 65, 34, -145, 16,237,218,181, 83,248,251,251,119, 7,224,138,208,234,244,214, 91,111,149,172, 88,177, 98,208,169, 83,167,236, 65, 47, 79, -157, 58,181, 16, 0,190,248,226,139,164,192,192,192,238, 0,156, 21, 90, 96, 89,214,242,183,191,253, 45,155,207,231,131,203,229, -130,207,231, 87, 59,120, 60, 30, 72,146,244,178, 85,231,134,248, 50,238, 21,173,156,189,112,245,106,137,144,226,254,243,197,206, -104,225,195, 3, 68,126,224, 13, 90, 4,194,167,202,104,201, 42,254, 0,126, 89,132, 53, 47, 41,200,216,111, 43,127, 50, 49,190, -129,119,203,203, 53,143,185, 15,232, 9,224, 63,168,218, 92,119, 49,128,139, 79, 72,223,116, 21, 64,204,216,177, 99,237, 98,235, -216,177, 99, 24, 61,122, 52,148, 74, 37,110,220,184,225, 40,178, 92,217, 96,249,170,217,108,190,246,253,247,223,247,155, 56,113, - 34,225, 80,191,144,158,158,142,155, 55,111,166, 58,203, 71,146, 36, 44, 22, 11,184, 92, 46, 86,175, 94, 13,147,201,132,111,191, -253, 22,123,247,238, 5, 73,146, 32, 8, 2, 4, 65, 64, 38,147,225,203, 47,191,116,169,221, 99, 24, 6,219,183,111,199,162,133, - 11,237, 34,203, 58,147,129,144,224, 96,248, 7, 4,224,238,221,187, 13, 10,173,242,242,242,143, 15, 31, 62,140,250,156,225, 15, - 31, 62,108,255, 92,195, 25,190,225,126,142,162, 96, 48, 24,240,236,179,127,110, 21,251,214, 91,111,217, 63, 43, 20, 10, 80, 20, -101,203, 11,194, 89, 78, 61, 11,188, 40,252,243,187, 49,239,190, 91,205, 66, 87, 23,231,163,208, 34,238,178,110,213, 34,182, 98, -172,214,217, 80, 0, 99, 81,229,163, 85, 8, 60, 66, 31, 45,150,181,180, 15,111, 22,134,107,119,210,192,161, 40,240,189, 3,224, -237, 23, 12, 11,109,132,170,228, 30, 18,246,127, 5, 0,216,178,125, 15, 72,146, 4,135, 67,193, 96,100,208,182, 69, 24, 44, 22, - 75,251,250,184, 59, 0,253,134, 4, 7,244,110, 30,225, 67,220,240,189,135,118, 65,254, 53, 38, 66, 4,104, 91, 32, 37,250, 74, - 69,189,202, 85,234,126, 25,192,185, 6,197, 0, 73,130, 36, 8,136,121, 60, 24,246,237,171,242,218,140,175,234,179, 82, 99, 99, - 65,254,244, 19,188, 4, 2, 80, 4, 1,142,213, 4,221, 24,168,213,106, 16, 4,129, 93,187,118,249, 78,155, 54,109,247,141, 27, - 55, 98, 43, 43, 43,247,185,194,161, 84, 42,199,246,239,223,255,204,246,237,219, 3, 67, 66, 66, 30,184, 94, 84, 84,132, 25, 51, -102,148, 42,149, 74,151,130,186, 9,133,194, 87,198,143, 31,191,245,155,111,190,145,221,190,125, 27, 90,173, 22,129,129,129, 15, - 91, 20,186,247,233,211,231,192,190,125,251,188,139,138,138,160, 82,169, 96, 48, 24,176,107,215, 46,159, 49, 99,198,236,203,204, -204, 28, 13, 32,165, 1,142,143, 28, 69,214,156, 57,115,174, 3, 8, 2,176,177,166, 6,181, 94,235,236, 32,182, 84, 0, 86,213, - 51, 18,141,144, 72, 36, 40, 41, 41,193,140, 25, 51,112,235,214,159, 6,208,176,176, 48,251, 72,239,238,221,187, 8, 12, 12, 4, - 65, 16, 65,206, 60,116, 96, 96,160,212,104, 52, 98,214,172, 89,200,205,205,173,198,153,151,151, 7,130, 32,196,174,102,100,112, -112,112,176, 94,175,199,192,129, 3, 81, 89, 89,181,175,239,164, 73,147,192,229,114, 81, 82, 82, 2, 46,151, 27,208,136,247, 19, - 48,118,236,216, 58, 67,171,200,100, 50,147,175,175,111, 7, 23, 57,253,159,127,254,249,252,248,248,248, 7, 22,182, 92,186,116, -233, 5, 63, 63,191, 83,126,126,126,237, 92,228,180, 56,138, 42, 30,143, 87, 77,104,113,185, 92,144, 36,233,180,143,218,173, 18, -221, 6, 14, 81,216,117,197,188,145, 51, 90, 4,121,131,213, 22,131, 55,236, 99, 92, 43, 21, 97,245,218,159, 1, 0,255,122,173, - 7,186,140, 88, 10,227, 55, 35, 49,191, 47,197,159,154,103,120, 15,192, 71,143,185,205,255, 28,128,109, 21,220, 38, 0, 93,159, -160,254,200, 46,182,142, 29, 59,134,232,232,104,148,151,151, 35, 51, 51,179,177, 34,203,214,222, 45,250,228,147, 79,126,121,249, -229,151, 37,182, 65,171, 72, 36,194, 59,239,188,163,215,106,181,139, 92, 42, 68, 22, 11, 56, 28,142,125,144, 44, 20, 10, 17, 19, - 19, 99, 23, 89, 4, 65,160,162,162, 2, 28, 14,199,182, 34,145,112, 50,141, 8, 13, 9,129,151,151, 23,218,180,109,139,219,214, -118,196,246, 89, 32, 16,128, 32, 8,208,116,131,134, 60,141,213,169,125,129,187,187,100,155, 40,170,215,116, 28, 22, 6,139,197, - 98, 19,153,172, 59, 56, 3, 2, 2,160,213,106,157,229,124, 34, 81,135, 69,203, 38,180,198,162,202, 87,235,129,240, 14,131, 1, - 36,160, 9,151, 84, 18, 96, 9, 11,203,130, 67,145,214,185, 91, 10, 20, 69, 66, 81, 90,136,117, 31,191, 97, 21, 89,123,113, 52, - 41, 19,225,173,163,255,156,199, 37, 8,128,173,191,112, 7,122,243,226,231,190,220, 71, 84, 76, 20,194, 39, 76, 12,161,176,134, -126,244,229,129,136, 36, 49,111, 72,184,248,242,225,202,248, 12,149,169,193,142, 66, 72,146, 85,206,239, 4, 81,171,115, 15,105, -189, 70, 17, 4, 88,150, 5,107,113,205,239,216, 38,228, 69, 34, 17, 76, 38, 19, 40,138,194,250,245,235,125, 70,140, 24,177,209, - 85,161, 5, 32,189,184,184,120,204,236,217,179,143,237,217,179, 39, 32, 32, 32,160,218,232, 97,246,236,217,242,226,226,226, 49, -112,209,233,158,203,229,110,220,180,105,147,236,254,253,251,168,168,168,128, 72, 36,178, 55, 62,141, 45,159,189,122,245, 58,113, -252,248,113, 95,149, 74, 5,147,201, 4,145, 72, 4,150,101, 65, 81, 20,126,248,225, 7,255,113,227,198,253,156,147,147, 51,172, -190,180,138, 68,162, 23,173,194, 9,177,177,177, 62,177,177,177,131,129, 58, 35,245,218, 17, 27, 27,235,179, 96,193,130,231,245, -122,253,170,122,158, 57, 87,161, 80,132,136, 68, 34,236,223,191, 31, 82,169, 20, 98,177, 24, 97, 97, 97, 80, 40, 20, 16,139,197, - 96, 89, 22,102,179,217,214, 88,148, 57,243,224,165,165,165, 90,154,166,189,143, 29, 59,134,178,178, 63,127,210,162, 69, 11, 40, -149, 74, 88, 44,150, 10, 87, 51,179,160,160,160,152, 32,136,230,215,174, 93,195,253,251,247, 49,122,244,104,252,244,211, 79,232, -209,163,106,118,216,104, 52, 54, 38,136, 31, 67, 81, 20, 91, 79,185, 37, 0,248,186,147,211,218,121,185,196,105,177, 88, 44, 54, -145,229,248,215, 81,124, 53,240, 63,171, 85,231, 14,193,210,109, 43,230, 14,159, 49, 50, 58, 0,250,210,123, 16,122, 5,128,240, -137,196,234,181, 63,227,198, 31, 85,239,107,245,238, 43,248, 46,110, 12, 32,242, 67,148,183, 28, 33, 94,156,151,110,150, 60,118, -161,229,237, 56, 78,120, 82, 59,166,209,163, 71, 67,161, 80, 64, 42,149,186,195, 63,231,188, 94,175,207, 58,120,240, 96,247,177, - 99,199,130,207,231, 35, 43, 43, 11, 41, 41, 41,153, 0,206,187, 42,180,184, 92, 46, 62,249,228, 19,188,241,198, 27, 8, 14, 14, -198,162, 69,139,192,225,112,236, 7, 65, 16,118, 11,151, 43, 8, 10,174,127,225,163,205, 33,190, 33, 99,184,183,183,247, 39, 36, - 73, 78,164,156,200, 56,134, 97, 24,139,197,178, 71,165, 82,213, 27,222,193,230,184,238,204,187,112,204,131, 6,250,180,135,230, -124, 20, 90,164, 49,168,185,218,176, 14,139,150,109,213,225, 3, 91, 1,217,158, 50,193,106,178, 75,104,170,132, 18, 36,117, 51, - 47,191, 0,254,190, 82,171,200,178, 30, 36,137, 46,209, 85,131,217,163, 73,153, 8,111, 21, 13, 14, 69,129, 67, 81,144,138, 4, - 40, 46, 42, 4,135, 67,222,172,139,183, 19,133,151, 95,110,215, 60,210,215,159, 11,121,160, 17,161,193,117, 24, 6,186,123, 33, - 60,148,143, 81,254,194,136, 78, 20, 94,174,223,250,198,218,133,150,137,166,193,123,229, 21,251,116, 97,106,108, 44, 98,226,227, -193,140, 31, 15,157,201, 84,205, 84,220, 88,161, 37, 18,137,160,209,104, 48,101,202, 20,133,217,108,126,179,145, 89,156, 82, 86, - 86, 54, 97,234,212,169,101, 54, 1, 99, 50,153, 48,117,234,212,178,178,178,178, 9, 78, 88,137, 30,128,217,108,126,179, 71,143, - 30, 10,185, 92,110, 79,103, 99, 26, 28, 27,252,252,252,142,110,219,182,205,207, 96, 48,128,166,105, 59,167, 72, 36, 2, 69, 81, - 8, 12, 12,196,119,223,125, 23,232,231,231, 87,239,158, 85,122,189,254, 96,124,124,188, 18, 0,226,227,227,149, 4, 65, 36, 18, - 4,177,153, 32,136, 77, 53,142,205, 4, 65, 36, 58,222,171,215,235, 15,212,199,109, 52, 26, 19, 51, 51, 51, 89,177, 88, 12,138, -162, 96, 50,153, 32, 20, 10,237, 38,113,181, 90, 13,189,190,106,154, 59, 37, 37, 5,102,179, 57,217,153,103,215,104, 52,167,183, -111,223,110,105,209,162, 5,162,163,163, 17, 19, 19,131, 62,125,250, 32, 34, 34, 2,159,126,250, 41,163,211,233, 92,174,123, 5, - 5, 5, 71,127,252,241, 71,115,243,230,205,209,189,123,119, 8, 4, 2,116,233,210, 5, 97, 97, 97, 88,190,124,185, 81,165, 82, - 29,107,196,107,202, 73, 75, 75,163,234, 17,185, 50, 56,177,122,183, 6,114, 47, 95,190, 76,245,233,211,231, 80,205, 11,189,122, -245, 58, 36,149, 74,189,109, 38,118, 87, 70,228,142,226, 74, 32, 16,216, 15,219,247, 28, 14,199,153,209, 15,217, 33, 88,186,237, -179, 55,134,206, 24, 25,237,139, 67,167, 47,130,103, 82, 2,198,122,102, 4, 25, 51, 8,158, 4,193,222,220,240, 39,160, 15,152, - 15,224, 58,170,226, 48, 45,194,147, 5,187,227,123, 89, 89, 25, 50, 51, 51,145,146,146,130, 62,125,250, 32, 57, 57, 25,248,211, - 65,222,101,168, 84,170, 69,113,113,113, 58,219, 74,190,197,139, 23,235, 53, 26,205, 34, 87,219, 96,150,101,193,229,114, 17, 21, - 21,133, 5, 11, 22,224,231,159,127, 70, 86, 86, 22,204,102,179, 93, 8,217,124, 50, 93,177,104,241,120, 60, 4, 7, 7,195,108, - 54,219,173, 89, 0,112,251,214, 45,112, 56, 28, 88, 44, 22, 24,141,198, 6, 45, 90,222,222,222,159,108,221,186,245,109,185, 92, - 30, 90, 90, 90, 26,228,120, 20, 23, 23, 7, 21, 22, 22, 6,229,231,231, 7,229,230,230, 6,101,103,103, 7,221,187,119, 47,116, -229,202,149,111,123,123,123,127,226, 76, 58, 41,138, 66,151, 46, 93,240,214, 91,111,217,143, 13, 27, 54,216,143,132,132, 4,151, -157,215, 41,138, 66,212,146,213, 24, 83,202,218,143,159, 3, 9,251,113,227, 95,115,234,227,108,114, 45,210, 40,253, 98, 93,109, -232,184,177,116, 45,176,173, 58,180,181,101,118,183,141,154,206,240, 77, 6,218, 88,121,230,143, 59,183,134, 70,117,234, 73, 22, -201,181,213,150,127,198, 12,153, 0,130, 32,208,172, 85, 52, 40, 14, 7, 20, 69,130, 67, 81,240,145, 9,145,121,237,154,197,160, -215,159,169,141,115, 48,192,225,139,248, 27, 94, 27,213, 69, 88,192, 47, 65, 96,168, 4, 60,110,149,118,100,255,152, 80,163,135, -224, 0,157,188, 48, 51,223, 95,116,166,184,114,131,175,206,116, 40,177,142, 17,160,197, 98,129, 84, 32, 64,165,193, 0, 61, 77, - 99,200,186,117,246,233, 66,146, 32,112, 21, 64,231,117,235,112,110,223, 62,200,248,124, 64, 32,112,122, 85, 72,109, 66, 75, 46, -151, 99,250,244,233,101,133,133,133,211, 26,227,163,101,131,193, 96, 56, 91, 84, 84, 52,109,194,132, 9,187,246,239,223,239, 55, - 97,194, 4, 69, 81, 81,209, 52, 39,253,158, 30, 64,101,101,229,190,220,220,220,138,233,211,167,239,220,189,123,183,127, 64, 64, -128,125, 36,210,168,194, 74, 16,242,225,195,135, 11,156,185,175,129, 91,226,172,206,237,111, 88, 45, 91,157,231,204,153,115, 14, - 85,254, 87,142, 88,178,101,203,150, 73, 14, 83,140,155, 1,172,171,143, 88,173, 86,111, 90,176, 96,193,223,207,158, 61, 27, 32, - 20, 10, 65, 16, 4,120, 60, 30,218,180,105, 99, 95, 69,195,229,114,193,178, 44,222,125,247, 93,121, 73, 73,201, 23, 78,190,155, - 57,113,113,113,131, 42, 43, 43,125,167, 79,159, 78, 9,133, 66, 20, 23, 23, 99,237,218,181,204, 55,223,124,163,212,233,116, 51, - 26, 33,132,183,255,251,223,255, 30,162,213,106, 91,205,158, 61,155,167, 82,169,160,215,235,241,222,123,239, 25,191,254,250,235, - 60,189, 94,239,114,192,223,190,125,251,222,201,206,206, 30, 80, 81, 81, 81, 46, 22,139,107, 90,251, 8,137, 68,210, 19,192, 78, - 87, 56, 99, 98, 98,238,230,228,228,244, 89,186,116,105,162,217,108,230, 94,186,116,201,238, 12,191,126,253,250, 4,161, 80, 56, - 28, 46,110,190, 74, 16,132, 69, 32, 16, 84,179, 96,213,252,204,225,112, 26,108,211,218,135,136,151,126,246,250,160, 25,207,118, -240,198,193,211, 87, 16,119,224,143,155,109,103, 4, 70, 61,227, 91, 10, 75,105, 38,254,245, 90, 15,172,222,125, 5, 64,213,212, -161,165,228, 6,216,242,187, 96,189,154,227,158, 66, 94,240, 4,244, 1, 9,168, 10,153,241,164,161,154,200,186,113,227, 6,134, - 14, 29, 10, 0, 72, 78, 78, 70,255,254,253,145,156,156,140, 1, 3, 6,184, 28, 75,203,138, 95,213,106,117,118, 66, 66, 66,199, -230,205,155,227,252,249,243,247, 0,252,234,106, 34,109, 66,139,195,225,224,213, 87, 95,197,136, 17, 35,208,162, 69,139,106,171, - 13,109,159, 93, 17, 27, 52, 77,163, 83,167, 78, 48, 24,141,224,241,120,246,169, 73, 14,135,131,192,160, 32,220,185,115,199, 41, -139, 22, 73,146, 19, 95,124,241, 69, 50, 61, 61, 29,147, 39, 79,198,174, 93,187,234,188,119,234,212,169,248,254,251,239,241,226, -139, 47,146, 31,124,240, 65,189,225, 29,108, 78,232,206, 60,147,173,159,110,168,221,119, 23,103, 83,107,145,135,129, 67,104,135, - 90, 39, 77,106,249, 46,190,154,208,114, 8, 18,214, 52, 66,139, 54,237,250,233,219,175, 22,244,217, 56, 32, 48, 52,200, 27, 10, -149,222, 46,182, 82, 19,246, 2, 0, 94,158,179, 12, 28,170,106, 74, 81, 38, 21, 66,196,163,176,111,199, 23,114,147,169,178,214, -210,165,225,146,111,124,208,175,141, 55, 95, 98,134, 58,132, 69,116,224,159, 59,229, 16,173,246, 62, 40,184,186,249, 34,224,248, - 59,101,193, 0, 0, 9,165, 73, 68, 65, 84, 70, 57, 94,123, 70, 42,251, 34, 93,249, 6,204,150, 13, 15,116,136, 74,165, 94,121, -237,154,104,244,214,173,184, 52,109, 26,154, 49, 12, 18,195,194,224,199,229,194, 91, 32, 0, 73, 16,208, 31, 57,130,115,251,247, - 35, 88, 32, 0,188,188, 64,127,250, 41, 12,153,153, 48,107, 52,250, 70,140,204, 48,105,210, 36,185, 92, 46,159, 96, 52, 26,207, - 62,108, 62,235,245,250,227,185,185,185,111,244,237,219,119,163,217,108,126, 83,175,215, 63,212,202, 40,163,209,120,188,168,168, -232,149, 73,147, 38,237, 61,112,224, 64,128,143,143, 79,163,185,202,202,202,122,184,169, 56, 89, 0,124,104,117,110,127, 35, 54, - 54,214,231,242,229,203,127,223,182,109,219, 70,135,209, 68,208,172, 89,179, 94,175, 33,178, 26, 92,117, 8, 32,167,164,164,228, -211,119,222,121,103,217,154, 53,107,164, 54,199,247,223,127,255, 29, 52, 77,131,203,229,130, 97, 24,204,154, 53, 75, 91, 86, 86, -182, 26,117, 71,116,126,160,104,169,213,234, 54, 75,151, 46,221,182,110,221,186, 17, 20, 69, 73, 24,134,209, 85, 84, 84, 36, 86, - 86, 86,206, 64,227,226,104, 89, 74, 75, 75,167,127,244,209, 71,211,215,174, 93,251, 34, 73,146, 65, 52, 77,203, 53, 26,205, 97, -189, 94,255, 53, 26, 49,149,116,254,252,249,210,215, 94,123,237,143,210,210,210,246,225,225,225, 42,169, 84,106, 52, 26,141,148, - 72, 36,146, 73, 36,146, 24, 0,231, 9,130,200,112,133, 51, 53, 53,181,104,246,236,217,247, 13, 6, 67,212,230,205,155,147,100, - 50,217,105,130, 32, 8, 30,143,231, 43, 18,137,134, 2, 72, 36, 8,226,182, 43,156, 36, 73, 90, 28,173, 87, 53,253,179,248,124, -190, 83, 62, 90,173, 2,197, 51, 71,180,225,224,224,153, 43,136, 59,152,179,157, 97,217,253,251, 83,203,143, 44,234, 15,152,246, -188,134, 46, 19,118, 86, 77, 23, 2,176,148,220,128,105,207, 84, 16,226, 0, 36,229,115,161,210,155,142,194,131,218, 96, 15,239, - 32,151,203,145,158,158,110, 19, 89, 49, 0, 48, 96,192,128, 84,155,216, 74, 73, 73, 65,247,238,221, 83, 1,112, 93, 45,175,106, -181,250,157, 41, 83,166, 28,183, 14,142,223,105,196,192,207, 46,180,108,130,170, 69,139, 22,246,115,199,195,193, 71,203, 41, 48, - 12, 3, 30,143, 7, 14,135,131,208,176, 48,251,255, 98, 89, 22,119,238,220,129, 66,161,112, 74,104, 81, 20, 69, 17, 4,129,201, -147,157, 91,144,252,183,191,253, 13,137,137,137,160,156, 84,133, 20, 69, 33, 50, 50,178,193,123,108,186,212, 89,206,240,240,240, - 70,115, 54,181, 22,105,172,192,170,237,115,109,162,170,174, 10,241,168, 80,160,213,170, 62,220,177,117,253,154, 89,115,223,149, -222,184, 91, 12,149,214, 0,138, 34, 29, 27, 79,112, 56, 20,100, 18, 33,154,135,120, 99,247,127,255,163,209,168,149, 31,161,142, -125, 15, 91,120,241,230, 12,239,249,140,128, 23,170, 67, 84,231, 73,160,132,127,138, 0,182,168,142,217,193,254,191,224,185, 28, -157,240,167, 28,221,156,171,229,198, 7,133,150,209, 56,114,241,168, 81, 39,226,126,254, 89,220,107,251,118,220,157, 53, 11, 97, -122, 61, 4,214,169, 68,146, 32, 32,229,241, 32,229,241,170, 68,214,218,181,208,211, 52,214, 77,155, 86, 97, 48, 26, 71,185, 82, -201,203,202,202, 48,126,252,248,210,130,130,130, 49,104,196,212, 94, 93,208,233,116,251, 0,236,115, 23,159,193, 96, 56,155,151, -151,247,220,248,241,227,127, 62,126,252,120,224, 19, 18,100,206, 38,182, 76,151, 47, 95,126, 61, 41, 41,233, 46,170,111, 44,170, - 76, 74, 74,186, 59,123,246,108, 98,219,182,109, 95, 3,248, 55,156, 12,224,169,211,233,214,159, 60,121, 18,131, 6, 13,250,247, -138, 21, 43,252,123,244,232,129,160,160, 32,104, 52, 26,164,164,164, 96,254,252,249, 10,181, 90,189, 66,169, 84,174,113, 49,205, - 38,131,193, 48,213,113, 41,181, 59,242,193, 96, 48,124, 83, 88, 88,248,141,187, 8,231,205,155,247,251,157, 59,119,202, 2, 3, - 3,123,243,120,188,206,168,242, 3, 42, 2,240,181,171,130,200,134,185,115,231, 94,187,115,231,142,188, 89,179,102,125,172,156, - 62,168,218,198,104,107, 35, 56, 11,174, 92,185, 18,222,179,103, 79,146,203,229,178, 20, 69,129,203,229,178, 28, 14,135,181,250, -213,176, 0,112,248,240, 97, 1,128,122,183,205,185, 91,162, 95, 58,245, 63,191,125,144, 81, 84,185, 63,179,184, 98, 1, 0,118, -207, 13,241, 47, 93, 2,169,145, 35,219,229,193, 16, 63, 0,132,172, 42, 80, 37,171, 45, 4, 33, 9, 70,158,165, 25,150, 28,186, - 89, 68,131, 88,229,209, 84,181,143,171, 97, 13,239, 80, 88, 88,232, 40,178,108, 86,171,152, 1, 3, 6,164, 90, 69,150,237, 90, - 99,252,203, 78, 89, 44,150,135,234,195, 88,150, 69, 92, 92, 28,182,108,217,130,134, 34,154, 91, 87,247, 17, 13,241,217, 44, 90, - 12,195,192,100, 50,225,198,141, 27,246,152, 93,182,233, 66, 91,104, 7,154,166,235, 93,173,206, 48, 12, 99, 52, 26,241,195, 15, - 63, 56, 37,182,190,251,238, 59, 84, 86, 86,130,105, 64,193, 57,134, 98,232,218,181, 43, 20, 10,133,125,177, 79, 76,204,159,161, -242, 76, 38,147, 75,194,213,198, 25, 21, 21, 5,185, 92, 14,155,191,112,243,105,127, 26,123,104,157,238,175, 90,238,235,180,104, - 61,242, 30, 83, 32,150, 29,239,209,111, 68,255,105,175,207,151,104, 13, 12,238,223,207, 70,105, 73, 33, 72,130, 68,104,179,112, - 68, 68, 68, 66,196, 39,177, 43,126,141, 46,245,220,233,223,180,154,242,209,117,113,141,245,230,157, 91,251, 74,255, 62,173, 91, -123, 17,160,205, 0, 99, 6,104, 51, 96,177,254,181,125,103,169, 94,230,210,211,149,236, 7, 87, 21, 23,142,170, 76,181,238, 89, - 53, 1,232,239,227,231,119, 98,201,225,195, 98,139,201,132,178,119,222,129,152,166, 33,180,142, 74,170, 30, 68, 0,250,211, 79, -171, 68,214,212,169, 21, 42,165,210,165, 45,120, 2, 2, 2,174, 16, 4, 17, 80, 90, 90,250, 84, 69,134, 15, 12, 12, 60,202,178, -172, 92, 46,151,247,120,130,210, 21, 4, 64, 9,192, 84,203, 64, 34, 16,174,251,255,216, 16, 25, 24, 24,248, 1, 73,146,125, 89, -150,245, 39, 73,178,220, 98,177,156, 47, 41, 41, 89, 9,224,142,167, 63,125,108,176, 69,134,111,217,192,125, 37, 0,254,137, 42, -167,224,251,206,146,119,241,246,246, 54,240,205, 7, 94,136, 22, 12,153, 24,227,141, 86, 33, 94,224,242,132, 40, 80,211, 56,149, -161,198,214,132,162, 92,189,153, 25,119,171,180, 34,205,243, 42,234,133,219,183,224,113, 39,252,252,252, 46,158, 56,113,162, 71, -171, 86,173, 72, 71,135,119, 91,172, 60,219,244, 22,135, 83,165,229,206,158, 61, 75, 79,158, 60,249,124,113,113,241,160,186, 56, -189,188,188,126,185,126,253,250,179, 42,149,234, 1, 65,229, 24, 41,222,118,174,211,233, 48,119,238,220,147,117,109,193,227,237, -237,189,118,205,154, 53,111,191,252,242,203,164, 45, 28,133,227, 97,219, 46,200,118,152, 76, 38,236,220,185,211,242,197, 23, 95, -124,169, 82,169,234,156, 58, 12, 13, 13,205, 45, 40, 40, 8,183,133, 90,112, 38,168,104,100,100,100, 97,118,118,118,216,163,228, -124,138, 5, 87, 53,235,214, 99, 49, 77,112, 69,162,121, 94, 82,223,143, 95,158,242,150,127,100,235,182, 68,112,104, 51, 16, 32, - 81, 92,148,143,236, 63,110,177, 7,190,253,170, 76,167, 86,124,162,215,235,190,170,143,167, 3,208,186,165,140,183,135,207,160, - 29,108, 2,168,198,254, 84, 15,140, 56, 0,152,184,228,205,251, 26,243,164,140,122,166,125,108, 98,235,195, 3, 7,196,252,118, -237, 30, 8, 20,103,177, 88, 96,200,204,196,186,105,211, 92, 22, 89, 30,120,224,129, 91,208, 10, 13,199,200, 50,163, 42, 62,151, -171, 22, 19, 34, 42, 72, 50,137, 5, 38,146,176,116, 34, 9,130, 79,179,200, 2,139, 95,196,156,138,141,169,133,208,123,178,223, - 41, 60,177,155, 74, 3,144,248,249,249,157,166, 40, 42,194,102,145,113,180,214,215,178,161,244,253,226,226,226,225, 0,234, 91, - 33,220,218,203,203,235, 43,134, 97,122, 57,179,169, 52, 69, 81,151, 52, 26,205, 60,212,179,169,116, 83,172, 58,244,247,247,191, -147,157,157,221,218,182,138,218,177,175,172,109,101,249,237,219,183, 49,120,240,224,236,162,162,162,200, 71,201,249,164,162,142, - 85,135, 79,142, 69,203, 1, 97, 60,129,116, 58, 95, 36, 28,102, 49,211, 81, 32, 0, 14,151,123,211, 88,169, 63, 99,208,107,119, -160,142,233,194, 71,137, 9, 64,127, 1,159,255, 11, 79, 38, 19,213, 38,218,204, 26,141,222, 96, 52,142,244,136, 44, 15, 60,240, -192, 3, 15,158, 34,180,243,243,243, 59,193,229,114, 5,142, 98,178,230,103, 27,104,154,174, 44, 45, 45, 29, 13, 32,235, 17,115, -254,111,194, 69, 39,181, 17,206,114, 90,143,193, 79, 58,103, 19, 62, 59,235, 70,206,193, 86,206, 37, 79, 73, 58, 7, 63,169,156, -182,231,117,129,119,132, 43,229,200, 93,249,233,144, 78,214,221,233,108, 42, 78,119,213,163, 90,210,201, 54,193,123, 95,242,148, -164,115,240,147,198, 89,179,252, 56,201,235, 18,167,147,101,202,213,116,178,238, 78,103, 83,113, 62,108, 61,170, 39,157,236,195, -150,165, 58,222,253, 18, 60,133, 72,239, 6, 54,189, 27,216, 27,221,107,141,219, 24, 91,215,239, 92,114, 36,108,170,149, 0,182, -176,251, 86,126,226, 73,229,116,204, 7,119,110, 21,208, 4,219, 14, 36,184,155,179, 70,126,186, 11, 75,172, 43, 76, 18,225, 68, -192, 81, 87,158,221, 29,239,189,198,179,186,133,183, 17, 34,203, 37, 78,119,149,251,166,230,116, 87, 93,170,201,233,142,114, 95, -219,123,111,194,119,228,174,116,186,165, 46, 53, 69,153,175,165,252, 60, 52,111, 77, 78,119,212,165,154,156,238, 40,247,143,130, -211, 29,117,169, 54, 78,119,148,251,186,222,253,211,106,104,178, 77, 23, 90, 67, 60, 16, 78,136,173,120, 0, 32, 27,147,105, 77, -104, 41, 27,226,110, 78,119,167,185, 41,196,166, 11, 22,152,199,206,233,230,119,180,196,202,233,206,209,205, 16,119,189,163,166, - 40,239,142,156,238,226,175,201,227,142,247, 84, 27,231,195,166,183,142,116,186,253,217, 31,182,220, 63, 42, 78, 55,191, 35,183, -212,165, 26,156, 67,220, 60, 24, 24,226,112,190,196,157,156,238,170, 75,181,164,243,161,223, 83,109,156, 15,155,222, 58,210,233, -246,103,119, 71, 31,210, 84,188,143,211,162,197,146,117,150,137,248, 26,199, 35, 17, 26,143,109, 74,206, 69,238,191, 20,167,139, -211, 51, 35,154,224,221, 63,214,116,186,147,179,102, 26,221, 57,221,211,148,233,116, 39,167, 11,105,253,203,113, 62,109,239,253, - 73,204,207,186,248, 30,102, 90,170, 46,235,104, 83,164,211,157,156, 78,114,255, 37, 56, 31,226,221,255,229,192,121, 82, 18, 98, -203,120, 55,143, 76,224,102, 11, 76,147, 61,183,155,211, 57,164, 41, 44,132, 77, 0,183,167,211, 58, 82,254,184, 9,158,253,105, -201, 83, 79, 93,242,212,165, 39,174, 46,213, 40,147, 67,220,104, 41,114,171,229,185, 38,167, 59,254,135, 35,135,187,202,104, 83, - 63,187, 59,235, 82, 83,188,251,167, 13,255, 15, 47,211, 45,132, 34, 78,139,159, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, + 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80, +104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61, +247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81, +193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251, +225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, + 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34, +192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, + 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, + 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86, +138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, + 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0, +120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194, +121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45, +234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, + 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217, +229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, + 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98, +185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, + 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3, +128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, + 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10, +100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, + 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133, +248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, + 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208, +100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51, +196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, + 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3, +132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67, +196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147, +201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, + 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173, +161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, + 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24, +103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145, +202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, + 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, + 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177, +205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248, +156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, + 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157, +231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128, +158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60, +197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, + 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, + 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182, +184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, + 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, + 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, + 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71, +103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210, +245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81, +229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, + 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, + 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219, +101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206, +105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53, +119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, + 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227, +123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, + 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146, +236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58, +189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, + 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171, +158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, + 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, + 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134, +157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100, +207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47, +151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221, +181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, + 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, + 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228, +233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, + 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147, +103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255, +139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199, +187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, + 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, + 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, + 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254, +203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194, +198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, + 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255, +160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, + 69, 7,219, 7, 1, 2, 13, 58,206,151,142,168, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213,226, 61, 51, 59, +179,187,217,146, 77, 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, 86,132,167,207,103,197,134, 5, 84, 68, 68, + 32, 54, 64,240, 39,242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201, 38,219,203,220,223, 31, +217, 89, 55,203,182, 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239,156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, 64, 57, 29,219,128,191, 59,103, 11,198,157, + 52, 35,231, 0, 7,231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166,228,163,230, 74, 79,151,112,146,230, 14,103, + 75,113, 54, 87, 57,242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221,243, 79,128,188, 77,226, 12, 48, 79, 53, 53, +156,164,185,195,217, 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197,117, 4,174, 5, 69, 86,192,200,204,204,100, + 92,248,153,191, 43,167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207,230,194,187,153,153,153,204,234,213,171,183, + 2, 24,208,156,113,111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202,247, 45,205,217, 92,101,201,157,179, 57,242, +189,167,251,222,130,247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188,238,156,205, 81,150,220, 57,155, 35,223,255, + 25,156,205, 81,150, 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129,123, 1, 31,248,119, 22, 68, 45, 37, 54,155, +224,192,252,229,156,205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145,223, 93, 57,155,139,223,157,167, 57,238,147, + 39,206,171, 13,175,151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, 44,185,113, 14,108,230,151,129,129, 46,191, +223,109, 78,206,230, 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, 61,238,205,241, 12,105, 41,222,107, 26, 45, +213,124,214,220,156, 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206,230,228,116, 15, 99,115, 54,247,180,100, 56, +155,147,179, 9, 97,189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202,155, 59,218, 18,225,108, 78,206, 0,185,175, + 9,206,171,184,247,215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211,146,194,181, 57,195, 57,176, 37, 28,194, 22, + 64,179,135,211,241,166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, 37,183, 60, 57,176, 25,157,162,102,117,158, +221, 57,155,227, 26,174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92,133, 11, 65, 57, 41, 39,229,164,156,148,147, +114, 82,206,235,150,243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,226, 31, 5,175,237, +187,113,113,113,171,149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147,240,175, 3,189, 71, 20,255, 32,176,248,195, + 65, 23, 0, 16,199, 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228,201, 14,130, 32,192,110,183,195,102,179, 57, + 63,205,102, 51,250,247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231,216,237,246,243,101,101,101,125,125, 28,178, + 19, 64, 10,195,252,161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, 73,113,231,243,194, 37,126,247,201, 25, 18, + 18,178,159,227,184, 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71,215, 51,162,163,163,115, 56,142,107,114,254, + 44, 45, 45,245,154, 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, 47, 94,236,235, 67,136,236, 4,144,226,243, + 13,202, 45, 63, 49, 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, 78,145,197,113, 92, 86, 84, 84,212, 51,122, +189,222, 8,128, 72, 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, + 38, 19,242,242,242, 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81,209,176, 89, 44, 80,181,138,116,114,151,157, + 56, 6,155,213, 2,155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, 62,248,224,131,168,224,224, 96, 24,141, 70, + 24,141, 70,152, 76, 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22,216,108, 54,152, 76, 38,100,103,103,219,173, + 86,171, 79,206,105,211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133,209,104,196,166, 77,155,124,114,114, 28,151, + 80, 82, 82, 18, 37,149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91,139,175, 64,182,208, 61,186,158,209, 97,218, +210, 53, 81, 33, 10, 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, 96,179,161,253,243,163,157,251, 59,117,234, +228, 51,127, 18, 66, 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37,104,112,155,189, 9,173, 4,131,193, 16,229, +224,191, 76, 16,177, 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, 95,142,178, 90,173, 48,155,205, 48,153, 76, +176, 90,173,176,217,108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100,125,112,219,109,183, 61,190,102,205, 26,213, +207, 63,255,172, 74, 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, 14, 55,223,124, 51, 67,179, 32, 5, 5,197, +117, 35,180, 76, 38, 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184,246,237,219,231,186,159,231,175,185, 42, 56, + 42, 26, 19, 91,135, 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93,168, 5, 0, 40, 20, 10, 48,174,175,209, 94, +160, 82,169,112,219,109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74,193,243,188,223, 68, 97, 24, 6,106,181, 26, + 83,166, 76, 17, 69, 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, 4, 28,199, 57,183, 64, 56,165, 82, 41,142, + 30, 61, 10,142,227, 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, 14, 10,133, 2,240, 51,115,176,235, 61, 50, +155,205,177, 50,153,204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81,200, 49,102,222, 79, 0,128,162, 89,207, 59, +239,221,158,103,223,113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, 89, 93, 93,109,120,232,161,135,182, 7, 7, + 7,175,215,106,181,240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115,230, 76,156, 57,115, 38,160,184, 27,141, 70, + 44, 88,176, 0,118,187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, 94,179,102, 77, 24,195, 48,248,236,179,207, + 32,149, 74, 49,124,248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215,105,230,163,160,160,240, 85,231,241, 0,110, + 4, 16,233, 48, 17,234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, 79, 47,199, 49, 21, 12,195,236,115,249,109, + 6, 32,243,176,191, 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174,203, 1, 13,235, 15, 1,216, 2, 96, 96,102, +102,230, 86, 0, 40, 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183,163,168,121, 28,205, 83, 82,155,205,214, 65, +108,170, 18,221,162, 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83,115,133, 55, 1, 99,177, 88,240,192, 3, 15, + 0,128,215,135,142,235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195,210,113, 19,177, 66, 87,207,192, 86,171,195, + 61,106, 43, 78,118,238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193,171,200,146, 72, 36,152, 55,111, 30, 30,122, +232, 33, 72, 36,146,128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76,142,123, 36,183,217,108, 26,155,205, 22, 97, +183,219, 35,154,114,143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, 86, 87, 87, 27, 50, 51, 51,119,203,229,242, +133,209,209,209, 37,197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48,103,206, 28, 12, 26, 52, 40,160,112,154, 76, + 38, 48, 12,131,249,243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, 23, 23,247,236,186,117,235, 52,226,177,173, + 90,181, 2,207,243,232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, 37, 5, 5,197,181, 11, 79, 90,196, 5,253, + 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106,151, 58, 49,211, 81,191,174, 22,127, 19, 66, +122,185,138, 30,135, 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, 76,252, 61,113,226,196,180,172,172,172,233, + 19, 38, 76,120,115,198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, 56, 60, 57, 90, 62,215,158, 18,155,168, 78, +157, 58,229,173,137,202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56,247, 79, 41,174,113, 62,192,230,246,104, 7, +149, 74,133, 97,239,125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129,114, 42, 21, 65,200,126,185, 11,138,170,100, +120,119, 87, 53,214, 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101,120,249,116, 33,172, 36,176, 62,189,132, 16, +143, 2, 75,252, 46, 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, 8, 13, 15,118, 5, 33, 36,140, 97,152, 58, +135,203, 21, 27,232, 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164,238,168,243,158,140,159,247, 33, 0, 96, 80, +247,155,253,150,135, 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61,122,116,193,230,205,155, 21,129,132,213,147, +208, 18, 93, 91, 81,100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, 74,175,196,209,130, 78,167, 51,175, 92,185, + 18,115,231,206, 69, 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, 60,255,252,243, 80, 40, 20,162,123, 77, 51, + 32, 5,197,245, 13, 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,165,249,121,254,175,118, 23, + 79,226,117, 25,134, 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, 50,153, 10,186,117,235, 22,144,154,208,235, +245,165,254,196,134,167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, 90,173, 78,161,178,113,227, 70, 40, 20, 10, + 12, 31, 62,252,170, 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85,157,193,249,128,217,146, 95,128,131,101,229, +120, 57, 99, 48, 84,138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, 3, 15, 60,224,116, 19, 92,251,173,192, 71, +211, 97, 68, 68,196,126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, 16,132,250,208,208,208, 31, 1,196, 17, 66, + 18, 0, 4, 7,114,143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85,134,204,204,204,221,118,131,249,155, 11, 23, + 46,236, 6, 16,116,211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115,230,204,113,254, 31,168,208,178,217,108,141, + 4,212,233,211,167, 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, 56,207,137,137,137, 65,104,104, 40, 4, 65, +128, 32, 8, 8, 10, 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, 76,152, 48,225, 77,134, 97, 86, 59,156,165, + 99, 62, 4,149, 39,237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98,226,196,137,105,238,225,240,212, 92,233,172, + 85,221,166,221,111, 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84,144, 72, 88, 48, 12, 67,252,113, 89, 44, 22, +103,197,255,204, 51,207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, 50,236,236, 54,231,185,226,198,114, 60,206, +197,116,132,228,212, 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0,203,178,206, 52,225, 56, 14,237,219,183, 71, + 65, 65,129, 79, 46,142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110,183,163,109,219,182,198,188,188,188, 23,105, +209,189, 58,145,229,109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212,168,173,181,181,181,223,220,112,195, 13,167, +209,120, 10, 4,191,124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171,213, 26,208,139,128,213,106,189, 76,240,124, +252,241,199,141, 62, 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226,182,219,110, 67,215,174, 93,241,243,207, 63, + 67, 16, 4, 60,247,220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3,234,104, 81, 80, 80,248,210, 34,166, 25, 51, +102, 28,155, 49, 99,134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, 1, 48,121, 18, 68,158, 92, 50,119, 1,230, +186, 47, 43, 43,107,186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, 91,210, 1, 52,110, 46,156,119,115, 71,168, +212, 42,168,130,213, 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170,170,242, 41,178,154,226,104,177, 50, 14, 43, + 18, 46,129,200,120,112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236,182,128, 56, 9, 33,151, 53, 21,142, 29, 59, + 22, 12,195, 56, 71,136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158,123,115,236, 7,149, 70, 90, 98,175, 36,127, +238,255, 18, 39,127,120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235,232, 86,167,251,248, 30, 94,189, 34,206,170, +170, 42,195, 77,157,210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, 24,218,173, 91,183,128,202,164, 56,184,194, + 93,100,185, 58, 89,226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200,243, 68,204,219, 26,141, 6,106,181,218, 57, +226, 54, 40, 40, 8, 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, 58, 14,177,212,200,105,114,244,173,202,116, +253,237,201,241,114, 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206,106,111, 34,141, 19, 21,164,235,103, 76, 76, +204,175,106,181, 58, 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, 96, 53, 20,106, 21, 20,193,106,175,174,151, + 47,161, 37, 58, 69,226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, 90, 78,161, 37,101,177, 65,190, 9, 18, 25, +215, 72,100,113, 28, 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107,107,193,113, 28, 38, 77,154,228,124,131,119, + 21, 89, 77,137,179, 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, 36,157, 78, 39,191,120,241,226,173,180,188, +250, 80, 6,118,235,101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199,142, 29,157, 78,150, 82,169, 20, 71,155,250, +191,199, 44,235, 81,100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205,152, 49,195,201,235,234,100,137,104, 74, 57, + 18,195,186,117,235, 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3,155,205,134,169, 83,167, 66,161, 80, 64, 38, +147,209,204, 71, 65, 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, 73, 96,185, 54, 19,138,223, 25,134,177,122, +224, 53,187, 53, 41,186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10,135, 95, 71, 75, 46,151, 39,231,229,229, 57, + 39,194,244,245,105, 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, 11,101,176, 26, 74, 77, 48, 20,106,181,187, +224, 96,252, 85,226,226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, 0,175,190,250,106,192,125,180, 68, 78,216, + 25, 20,147,179, 72,159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, 32,220, 52, 18,122,133, 26,156,221, 22,240, +168,195,234,234,106, 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72,182,141, 27, 55,250,141,187, 39, 39,107,242, +249,106, 39,143, 66,161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125,250, 8,180, 40,251, 17, 69,130, 45, 32, 81, + 21,104,254,116,231, 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, 71,135, 42,149, 74,124,245,213, 87,122, 0, +178,229,203,151, 43,252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, 26, 79, 89,226,175, 99,124, 32,121, 94, 12, + 43,195, 48,176,219,237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, 40, 40,252,213, 37,251, 2,174,199, 9,233, +229, 34,170,246, 93, 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, 64,121, 2,158, 24,179,117,207,155,241,222, +133, 90, 48, 12,131,255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, 31,157,254, 42,228, 42, 53,226,250, 13, 13, +168, 34, 23,155, 14, 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241,193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196, +242,229,203, 3,114,180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176,219, 38,227,130,153,195, 78,163, 18,253,141, +199, 33,219,240, 41,204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238,236, 83,101,179,217, 96,181, 90, 97,177, 88, +240,193, 7, 31, 4, 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35, +182,247,243,136,236,249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252,182, 97, 1,128,142, 73, 67,155,196, 89, 85, + 85,101,184,125, 80,159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227,248, 29,144, 93,198,178, 44, 36, 18,201,101, +205,133,222,196, 86, 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122,226,137, 39, 16, 27, 27,235,116,178,222,123, +239, 61, 40, 20, 10, 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20,127,186, 40,251, 51,224,177, 38, 53, 26,141, +133, 93,187,118,133,151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, 19,226, 16, 0,217,158, 42,117,134, 97, 16, +172, 9, 70,144, 90, 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95,198, 41,246, 45,113, 21, 90,226, 86, 91, 91, + 11,158,231, 49,119,238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, 95, 84,135,147,211,179, 33, 11,218,137,118, + 67, 31, 66, 44,175,128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14,120,231,157,119, 46,155,214,193, 27,226,227, +227,253,198,221,221,201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60,244,208, 67, 2, 0, 3,128, 10,131,193,112, + 62,144,244,108, 6,252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116,178,140, 2,255,117, 65, 65,129,232,100,133, + 40,149, 74,124,241,197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, 68, 34,193,172, 89,179, 60,246,201,242, 36, +186,154, 82,142, 92,207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, 68, 68, 56,157, 44,187,221,238, 28,109, 40, +206, 62,239,227,165,130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, 47,222,238,237,132,182,109,219,230,229,229, +229,181, 23,151,226,112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, 32,151,203, 65, 8,193,173,239,100,129, 97, + 1, 22,141, 31, 98, 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193,208,232,225,224,105,171,175,175,135,201,100, + 10,120, 54,111,163,209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91,160,253,118,130,130,130, 26, 53,253,248,113, +172,152, 64, 28, 45,215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71,209,108, 30, 56,196, 1, 11, 0,144,218,103, + 56, 4,193, 14, 98,183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147,201,223,180, 39, 76,101,101,165, 97,212,168, + 81, 91, 1,252,239,158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, 84, 3, 32,151, 46, 93, 10,185,112,225,130, + 96, 52, 26,219,248, 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80,162, 43,234, 58,187,123, 32,249, 83,108, 46, +247, 52, 35,188, 55, 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, 67, 42,149, 66,169, 84, 2, 0, 62,253,244, + 83,231,228,171, 20, 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104,179,217,138, 19, 19, 19,155,116, 49,187,221, + 94,230, 71,184, 21, 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22,175, 90,181, 74,234,201,221,240,182,192,180, + 63, 78,187,221, 94,156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, 48, 52, 18, 9,227,143, 23,121, 93, 59,145, +194,111, 94,243,145, 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232,232,232,170, 29, 59,118, 68,244,234,213, 43, +194,245,152, 94,189,122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220,227, 49,207,139,162,201, 67,254, 44,246,151, +231,247,238,221, 43,117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, 93,121,188,229,125,171,213, 90, 65,115, 33, + 5, 5,197,117, 47,180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170,170,170,158,205, 29, 1,171,213,218,231,159, +192, 89, 89, 89,217,172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119,143, 0,160,188,188,252, 38, 0,208,233,116, +240,183,172, 78, 19, 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131,230, 44, 10, 10, 10, 42,180,154, 0,186, 24, +241,223, 3, 45, 33, 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,150, 1,131,134,145, 3, +158,208,148,209, 4, 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188,238, 56,253,113,211,209,140, 45, 44,192, + 40, 39,229,164,156,148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, + 95, 6, 9,154, 48,163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43,224,100, 0, 72, 29,155, 56,209,145, 21,128, + 5,128,133, 97, 24,226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65,192,225, 54,109, 90, 31, 98,152, 59,204, 0, +160,138,238,212, 89,173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84,158, 87, 72,179, 7, 5,197, 95,130,187, 0, + 76, 65, 67,183,146, 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44,155,224,111,126, 30, 17,142,181,204,138, 47, + 93,186,212,179, 9,215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245,245,245,155, 1, 44, 7, 96,187,194, 56,105, + 0, 60, 0,224, 17,199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121,158, 84, 86, 86,246, 6,128,136,136,136,221, + 86,171,149,209,106,181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191,109,219,182,255, 1,152,219, 76,247, 82,206, +178,172, 71,129, 34, 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, 56,189,184,184,184, 11, 0, 36, 36, 36, 28, + 29, 61,122,244,161,113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, 43, 47,205,127,166,172,252,196, 3, 0, 16, + 19,219,101,153, 68,194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, 87,115,165, 73,201,173,177,105,231,193, 27, +199,189,248,102,218, 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, 25,247, 84,230,237,118,123,113,117,117,117, + 79,111,156, 28,199, 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, 26,141,102, 23,199,113,201,129,114,137,159, + 54,155,173,216,219, 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65,200,175,168,168,240, 22,206,203,226,222, 28, +225,188, 18, 78, 95,225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, 55,181, 90,109, 55,137, 68,130,240,240,240, + 55,205,102,243,153,144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130,162,185,160,209,104,202,234,235,235,137, 8, + 65, 16,136,213,106, 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106,181,164,182,182,150, 84, 85, 85,145,200,200, + 72,247,201, 27,189,181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, 88,136,197, 98, 33,133,133,133,228,163,143, + 62, 50,105, 52,154, 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233,230, 53,107,214, 16,163,209, 72,116, 58, 29, + 89,182,108, 25,185,225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, 49,197,103,207,158,181,111,220,184,209, 18, + 18, 18,146, 29, 18, 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0,125,155, 16, 78, 0, 24, 57,126,252,248,178, +194,194, 66, 50, 96,192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, 67, 8,137, 69,195, 36,151,151,109,132,144, + 88,199, 49, 97, 1,114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, 24,198, 28, 29, 29,157,149,159,159,223,154, + 16,162,242,197, 89,124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145,255,125, 61, 80,251,212,184, 71,151,198,182, +237,190, 32, 52, 33,109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231,191,206,191,119,220,236, 47, 34, 18,211,159, +106, 66,122, 94, 13, 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19,139,197, 66, 76, 38, 19,209,235,245,164,190, +190,158,212,213,213, 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, 86,102, 48, 24, 26,213, 29,102,179,217, 89, +127,232,245,122,162,215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, 56, 47,138,225, 20, 4,129,216,108, 54, 98, +177, 88,156,188, 70,163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, 16, 78,163,209, 72, 18, 18, 18, 74,188,113, +134,135,135,151, 25,141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, 51,144,112,250, 74, 79, 7,230,230,230,230, + 18,131,193, 64,226,227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233,233,233,194,192,129, 3, 45,149,149,149,228, + 95,255,250, 23,241,241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42,124,255,253,247, 94,151,227,112,253,222,166, + 77,155, 64,175,217, 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54,155, 17, 22, 22,134,231,158,123, 78,118,215, + 93,119,181, 31, 58,116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145,159, 77,154, 52, 41,250,193, 7, 31, 68, 68, + 68,163, 73,183, 49,106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248,208,188,121,243, 74,235,235,235,199, 1,248, +209, 23,169, 66,161,184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37,133,125,253,245,215,219,119,232,208, 65,145, +144,144,192, 94,188,120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105,139,197,178, 50,128,184,203, 34, 34, 34,222, +124,250,233,167, 91,105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, 70,175, 45, 91,182,124, 11,224,203, 43,113, +178, 8, 33, 90,252,209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, 60, 35, 35,227, 71,147,201,212,253,153,103, +158, 57, 63,125,250,116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103,207,158,253, 70,231,206,157, 7,239,218,181, +235, 62, 66,136,213, 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246,206,196, 87, 19, 62,156,150,124,110,223,241, + 34,129, 83,104,240, 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229,124, 90, 72,252, 13, 3,106, 47, 28,207,129, +143, 25,210, 41,154, 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, 90,113, 28,135,208,208, 80,191,171, 27, 4, + 5, 5, 97,227,198,141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12,131,160,160, 32,236,216,177, 3, 44,203,122, + 92, 26,200,125,159, 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, 86,171,129,134,166,127,239,133, 82, 46,199, +246,237,219,189,198,217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203,125, 73, 48,215,223, 42,149, 10,140, 31,210, +176,176,176,222, 9, 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, 79,131, 97, 24, 76,159, 62,157,185,225,134, + 27,248,210,210, 82,244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, 2, 66, 8, 15,224, 70, 0,145,104,232,118, + 83, 7, 32, 20, 13, 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, 87, 58,234, 22, 87,129, 80,225,186,248, 52, + 33,164,151,131, 91, 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0,176,122,245,106,241, 97, 54, 48, 51, 51,115, +171,107,228, 2, 17, 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247,238,221,138,200,200, 63,226, 96, 50,153, 80, + 87, 87,135,250,250,122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248,135,186,186,186, 14,142, 68,243,198, 57,235, +226,197,139,209, 54,155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, 55, 49,108,216,176,152, 65,131, 6,205,114, + 19, 90,151, 13, 37, 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197,197,197, 24, 63,126,124,107, 65, 16, 80, 84, + 84,132,211,167, 79,227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, 60, 13, 79,125,230,229,151, 95,238, 24, 22, + 22,198,126,244,209, 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251,247,143,250,247,191,255, 77,118,236,216,177, +216,113,227,188,166,167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, 7, 33, 36, 6,128,137, 97,152, 26, 15,156, + 12,128,144,161, 67,135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8,224,162,152,249, 66, 66, 66, 84,179,102,205, +138,206,204,204,204,189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, 10,151, 62, 91, 78, 78, 65,192,225,152,216, + 46,203,114,118,141,123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, 94,181,253,120,126, 5,234, 12, 54,220,123, +107,195, 2,230,189,187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253,103, 8, 84,245, 37,199,215,248, 72,207,171, + 5,229,132,179,137, 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60,118,237,218,133, 91,111,189, 21, 60,207,227, +137, 39,158, 8,136,147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, 9,178,221, 42, 91,112, 28, 7,150,101,189, + 46,164,237,206,233,175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176,200, 10,148, 83, 12, 39,199,113,232,211,167, + 15, 14, 29, 58,228, 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200,153, 59,119,110, 56, 0, 84, 85, 85, 57, 23, +188,151, 72, 36, 56,117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, 71,148,179, 37, 57,125,105, 17, 0,253, 39, + 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, 72,166,248, 57,113,226,196,180,172,172,172, +233, 19, 38, 76,120,115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166,155,136,139, 20,121, 28,101,174,209,177,158, +126,187,127,122,226,110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,126,250,244,233,209, +190, 68, 86,125,125, 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185,207,219,108,182,143,125,208, 74, 37, 18, 9, +246,238,221,139,242,242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214,174, 93,139,154,154, 26,244,232,209, 3,104, +232,220,237, 17,221,186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62,124, 24,221,187,119,199,247,223,127,143, 54, +109,218, 64,169, 84, 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244,244,116,155, 86,171,221, 86, 93, 93,189,249, +220,185,115,239,122, 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243,205, 55,219, 1,108, 7,240,252, 91,111,189, +245,248,176, 97,195,162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, + 50,153,172, 44,203, 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, 89, 89,249,220, 75, 47,189, 84,224, 16, 89, +167,208,208, 1, 30, 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126,248,204,210,165, 75,159, 27, 59,118,236,242, +111,190,249,166, 30,128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95,177,252,203,151,215,174,122,190,117, 81,209, +133,246, 17,173, 34,117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200,217, 82,240,188, 4, 39,138,106,209,255,246, + 81,252,153,188,105,125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22,159,142,214,174, 93,187,192,243, 60, 20, 10, + 5,102,207,158,237,147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, 65,112, 46,244,238,190,253,223,255,253, 31, + 94,122,233,165, 70,215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172,209,190, 64, 22,165,183,219,237,224,121, 30, + 11, 22, 44, 64,102,102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144,244,236,211,167, 15, 44, 22,139, 51,204,167, + 78,157,242,200, 59,111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26,132,156,156, 28,220,127,255,253, 38,139,197, +146, 7, 0,119,222,121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254,252,249,255,129,118,144,167,104, 97,120,210, + 34,226, 51, 47, 43, 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145,233, 42,138, 92,127,139,174,147,155,136, 75, +115,117,164, 92, 69,148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160,171, 11, 36, 86,190,254, 68,150,143, 55,199, + 70, 8, 9, 9, 25,126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191,115,115,115,209,179,103, 79,105, 72, 72,200, +240,170,170,170,143, 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, 68, 88,173, 86,172, 95,191, 30,181,181,181, +224,121, 30, 82,169, 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185,104,209,162, 75,226, 27,221,146, 37, 75, 64, + 8, 65,100,100, 36,244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106,164,164,164,200,238,185,231,158,190, 83,166, + 76,225,125, 8,173, 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, 12,199,190,201,227,198,141,139, 40, 44, 44, + 52, 63,249,228,147,123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150,213,106, 21,211,180,160,190,190, 30,173, 90, +181, 74,116,117,182,188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50,215, 48,152,205,102,212,215,215, 67,167,211, + 89,107,107,107,203, 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12,115,135, 89,163, 81,202, 8,145,188, 53,127, +254,124,245,176, 97,195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234,155, 50, 61,235,195, 13,154,132,174,101, 59, + 14,231,227, 66,105, 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139,211,209,114, 21, 21, 57, 57, 57,184,253,246, +219,157,101, 93, 42,149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103,203,150, 45, 30,221, 39,127,112, 21, 69,238, +226,200,147, 0, 99, 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, 95, 51, 7, 56,142,195,184,113,227,192,243, + 60, 94,127,253,117,112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91,111,189,181,201,113,223,189,123, 55,186,119, +239,238, 12, 83,122,122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, 67,135, 6,194,249,102, 93, 93, 93, 55,181, + 90,141,220,220, 92, 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6,111,130,189, 0, 0, 32, 0, 73, 68, 65, 84, +215,235,219, 26,141, 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, 26,169,208,162,104, 49,184,107, 17, 23, 24, + 38, 76,152,240, 38,195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80,251, 28,101,181,151,155,136,171, 96, 24,102, + 31, 33,228, 78,111,231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177,242, 13, 84,104,249,131,209,104,188, 49, 42, + 42,202,171,200,114,253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216,216, 88, 88, 44, 22,124,249,229,151,144, 74, +165,144, 74,255,208, 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, 71,143,176,159,126,250,169, 98,192,128, 1, +145,195,134, 13,131, 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, 20, 23, 23,227,215, 95,127,173,236,208,161, + 67,171, 61,123,246, 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117,235,214, 85, 2,216, 39,151,203,215, 78,155, + 54, 45,204,108, 54, 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, 96,192,128,140,236,236,236,111, 5, 65,152, +221,212,140,234,158,182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, 0,149, 74, 21, 14,224,140, 51,135, 27, 12, +141,196,176,217,108, 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138,115,231,242,131, 93,251,207,133,134,134,226, +145,135, 31,102,111,233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52,230,148,184, 8, 88,237, 86,100,111, 88, 47, + 16,193,186,129, 86, 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122,217, 62,169, 84,138,255,254,247,191, 1, 9, + 3, 81, 84,121,107, 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, 2, 8,130,128,151, 95,126,185, 81,115,162, + 43,127, 64,118,158,139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58,206, 9,200, 37,155, 59,119,110, 64,142,214, +157,119,222,233, 87,184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, 55, 61,237,118, 59,214,172, 89,227, 20,169, + 34,222,126,251,237,167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250,250,122,244,238,221, 59,133,101,217,195,165, +165,165,133, 39, 78,156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, 25, 51, 60, 58, 86,238,206,146, 47,231, 73, + 20, 88, 14, 65, 20, 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, 70,144,155,138,156,226,169,242, 13,164,249, + 48, 64, 59,157, 99, 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213,176,219,237, 87, 60,215,151,167, 55, 89,127, + 66,235,232,209,163,255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130,112,235,174, 93,187, 34, 57,142,131, 70,163, +129, 70,163,193,218,181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, 28, 97, 48, 24,126, 47, 45, 45,125,219,171, +130,225,249,161,253,250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244,209,219, 91,183,110,205, 76,155, 54,205,120, +246,236,217,217, 0,202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209,163,177,117,235,214,249, 0,140,129,198, 89, +167,211, 53, 18, 88, 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, 12, 65, 8,113,222, 27,135,155, 37,222, 31, +194,113,156, 56,170,209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187,221,142,178,178, 50,104, 52, 26, 76,122,251, +109,233,123,227,255,221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93,217,131,219,128,119,105,205,243, 39, 64, 20, + 6,119,223,125,247,101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, 61,122,244,240,251,114, 37, 10,131,187,238, +186,203,233, 12,173, 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, 5,112, 28,135,207, 62,251, 12,175,188,242, + 10, 88,150,197,204,153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252,176,225, 51,225, 21, 45,170,230, 69, 3, 0, +130, 53, 26, 49, 66, 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, 70, 6, 56,142,115, 58, 89,195,135, 15,119, + 77, 71, 18, 8, 39,199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28,238,188,243,206, 64,130, 57, 61, 52, 52,116, + 74,167, 78,157, 58,207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57,155,205, 22, 49,117,234, 84,165,135,115, 20, + 0,186,117,238,220, 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, 9, 47,146,171, 93,143, 23, 57,220,197,145, +195, 33,203,241,199,229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103,159, 23, 83, 42,149, 71,202,203,203, 51, 20, + 10, 69, 35,145,229, 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205,118, 19,253, 53, 29, 2, 48,158, 62,125,122, +188,203,239, 33,195,135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, 35, 35, 49,119,238,220,139,101,101,101,255, + 2,176,177,178,178,210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, 21,192,191,159,123,238, 57,198,106,181, 98, +222,188,121, 58, 0,235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217,217,218, 61,123,246,252, 22,160,200,178, 11, +130,112,153,192,114, 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59,202, 96, 48,104,229,114,121,176, 86,171, 53, +185, 10, 44,145,159,227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230,228, 56,110,240,224,193,131, 57,247,123, 80, + 86, 86,134,210,210, 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110,211, 58, 80,145,245, 39, 57, 90, 68, 44,235, +226, 40, 65, 79, 35, 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209,198,141, 27,125,118, 88,119,107, 58,244,107, +141,139,199,127,254,249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, 76,155, 54, 13, 19, 38, 76, 0,199,113,126, +155, 14, 93, 5, 76,210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, 98, 2, 21,111,190,220,188, 64, 90, 2, 92, + 57,197,243,130,130,130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238,200,200,200, 8,217,191,127, 63,102,206,156, + 41, 53,153, 76,109,178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75,184, 89, 62,254,174,112,235, 95,197,184, 54, +227,249,248,116, 63, 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229,126, 13,215, 99, 42,188, 58, 90,254, 42, 11, +127,130, 43, 16, 71, 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, 80,167,211, 33, 58, 58, 26,199,142, 29,179, +233,245,250,223, 2,112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190,125,123,196,199,199,195,104, 52,162,166,166, + 70, 2, 96, 99,128, 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, 14, 29,112,224,192, 1, 84, 87, 87,255, 8, + 96,216,148, 41, 83,122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, 86,107, 64, 74, 67, 16, 4,179,205,102, 75, +102, 89,214, 82, 83, 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, 13, 68,104,117,235,214,109,239,249,243,231, + 49,117,234,212,138,233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70,163,145,109,213,170,149,124,222,188,121, 10, + 0,232,214,173,219, 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, 45, 45, 69,105,105, 41,202,202,202, 80, 87, + 87,135,148,148, 20,232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118,125,144, 55,165,172,187, 10,152,187,239,190, +219,217,183, 75,116,200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, 94,120,225, 5, 4, 5, 5, 97,214,172, 89, +141,154, 14,221,197,129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, 17,207,148, 53,106,162,243, 32, 56, 2, 10, +231,244,233,211,155,165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141,194,182,109,219,174,184,233, 48, 45, 45,109, +201,234,213,171, 67,142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23,123,109, 21,112,212,229, 65,180,228, 80,252, +201,245,212,190, 63,147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38,211,172, 23, 95,124,241,185, 33, 67,134,132, + 7, 7, 7,163,164,164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, 86,105, 77, 38,211, 44,127,226,192,106,181, + 34, 42, 42, 10,149,149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128,159, 78,230,158, 30, 24, 22,139, 5, 86,171, + 21, 86,171, 21, 22,139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184,184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, + 70,246, 13,185,253,246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223,179,227,155,115,114,114,146, 1, 64,161, 80, +228, 2, 64,113,113,177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, 33,200,201,201, 73,150, 74,165, 4,222, 71, + 53, 26, 87,174, 92,121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116,233,146,172,211,233,202, 13, 6,131,193,104, + 52, 18,137, 68, 34, 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, 75, 87,174, 92,121,220,155,243,166, 82,169, +138,245,122,125,146,120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, 60,239,175, 89,151,162,229, 32,190, 84,185, + 59, 47,238,251, 2, 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20,189,242,202, 43,152, 51,103,206,101,142,214, +180,105,211, 0, 0,111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168,110, 20,118, 0, 96,196,240, 53,173,204,131, +227, 56, 76,157, 58,245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, 56,142, 67,120,120, 56, 30,121,228, 17, 12, + 29, 58,212,217, 4,217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225,253,247,223,175, 14, 13, 13, 13,254,207,127, +254,195,213,212,212, 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81,135, 94, 42,203, 33,104, 60,215, 70,173, 94, +175,127,228,182,219,110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174,174,134,217,108,134, 84, 42, 69,108,108, 44, +106,106,106,240,245,215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, 47, 62,254,248,227,160,244,244,116, 84, 87, + 87,163,190,190,222, 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126,253,122, 3,128,183,252,112,122, 82,115,176, + 88, 44, 78,193, 21,128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82, +166,180,109,219,150, 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, 66, 46, 1,136, 49,155,205, 82, 0,168,173, +173,181,180,106,213, 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, 54,155, 77, 10, 0,253,250,245, 51, 3, 40, +117, 91,163,208,149, 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, 73,123,246,217,103,143, 62,249,228,147,108, +124,124,124, 88, 93, 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15,225,121,254,220,252,249,243,167, 0,208, 50, + 12, 35,120,226,180,217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202,202,202,156, 34,171,172,172, 12,157, 58,117, +194,174, 93,187,236, 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235,222, 4,150,248, 50, 21, 40,167,171, 40, 26, + 53,106, 84, 35, 23, 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, 58,199,215, 27,111,188,209, 72,180, 77,154, + 52,201,107,117,230, 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41,214,157, 60,207, 99,210,164, 73, 1, 59, 90, +184,188,143,214,101,156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127,233,105,183,219, 95,152, 51,103, 14,209,104, + 52, 55,107,181,218, 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50,153, 76,114, 90,142, 40, 39, 90,102,126,174, +235, 71,104, 57, 30,146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, 3, 27,242,242,242,238,187,229,150, 91,190, +125,225,133, 23,130,211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, 99,182,149, 43, 87,106,245,122,253,163, 0, + 2, 25,117,182,232,248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121,178, 36, 53, 53, 21,181,181,181, 8, 11, 11, + 67, 84, 84, 20, 78,157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180,161,250,123,225,183, 88, 44,120,232,161,135, + 32, 8, 2,102,207,158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151,222, 49,187, 52, 78,159, 62, 13, 0,231,146, +147,147,131, 1, 32, 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234,212,169, 83,129,123,229, 40, 58, 89,162, 11, +230, 47,220, 12,195, 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127,254,240,231,159,127,126,217,113, 26,141,102, +233,204,153, 51,223,123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102,204,152, 7,142, 28, 57, 18, 28, 20, 20, 4, +157, 78,135,170,170, 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, 24, 12,239,210,226,248,215,192, 85, 24,120, +115,181, 2, 16, 89, 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129,206,109,229,235,165, 72,156,150,198,211,148, + 17, 77,172,215, 46,227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, + 8, 2,238,188,243,206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, 83,167, 78,169, 0,228,174,105,208, 68, 23, +159,130,130,194,159,208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106,181, 22, 7,120,221,245, 58,157, 46,101,230, +204,153, 47,170, 84,170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211,167,104,218, 34,208, 21, 0,158,223,189,123, +247,236, 97,195,134, 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121,228,236,217,179, 43, 28, 46,214,217, 43, 73, +164,240,240,240,227, 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20,193,193,193,199,171,171,171, 3,165, 40,223, +180,105,211, 55,125,250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125,251,246, 29,179,107,215,174, 37, 0,142,109, +222,188,121, 97,239,222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150,205,230,185,165,209,139,147,229,139, 83, 75, + 8,177, 60,254,248,227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, 0, 8, 13, 13, 61,210,171, 87,175,189,203, +150, 45, 59,229,112,178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239,191,175, 74, 75, 75,227,218,183,111,143,194, +194, 66, 28, 61,122,212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127,157,208, 34,132, 32, 52, 52,180,209, 75,148, + 56,228,191,169,205,133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, 86,171,157,147,155, 6,210,101, 65, 16,124, +207,199, 70, 8,113,114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50,189,131, 74,165,130,213,106,117,242, 6, 48, +242,179,169,106,241, 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66,235,210,165, 75, 61, 91,248,218, 90,147,201, +244,158,201,100,122, 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241,166, 77,155,196,118,132,169,240,191, 94,162, + 79,156, 60,121, 50,147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, 11, 11,255,211, 20, 14,187,221,254,248,174, + 93,187,158,131,163, 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237,246,199,247,236,217,227,252,221,196, 7, 37, + 33,132,152, 8, 33,113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, 28,198, 31,243,100, 89, 29,155,209,173,185, +208, 23, 54,235,116,186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, 85,100,179,217,126,211,235,245,111,161, 97, +141, 42,138,191, 8,102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94,172,236,118,123,113,135, 14, 29,252,190,156, +121,224,188,224, 67, 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, 37, 37, 5, 77,229,244, 23,247,228,228,100, +143,113,247, 35, 8,189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, 50, 50,178,222,104, 52,242, 38,147,137,183, +217,108,141,236, 71,133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199,126, 52, 44, 47,209, 92, 48, 29, 57,114,228, + 49,167, 61, 85, 94,126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, 66, 74,223, 76,116,149,245,245,245, 79,138, + 63,196, 62, 32, 20,127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171,172,172,204,104,129,184,247,188, 94, 57,125, +161,164,164,228,102, 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160,160,160,160,104, 25, 48,104, 24, 57,224, 9, + 77, 25, 77, 48,228, 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235,142,211, 31, 55, 29,205,216,194, 2,140,114, + 82, 78,202, 73, 57, 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, + 5, 5, 5, 5, 21, 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, 0,198,182,240,181, 30,233,221,187,119,149, + 92, 46,223, 0, 32,149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218,181,235,246,147, 39, 79,118,202,206,206,142, +139,143,143,255,176, 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, 98, 98, 98,114,174, 80,108,165,182,105,211, +230, 68,106,106,106, 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, 4, 41,174, 3,116, 1,208,149, 10, 45, 10, + 10, 10,138, 22, 20, 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14,181,228, 5,115,115,115, 47,237,220,185, 19, + 9, 9, 9, 88,178,100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63,113,226, 68,167,236,236,236,248,168,168,168, + 79,154, 51,124, 55,221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228,149, 10, 65, 10,138,191, 51,228, 0, 30, 99, + 24,102,111,151, 46, 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, 25, 24, 86,175, 94,189,117,245,234,213, 91, +105, 30,161,160,160,104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125,246, 25, 9, 15, 15,183, 0,248, 13,192, 74, + 15,219,155, 0, 52, 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159,145,252,252,124,114,252,248,113,146,154,154, +106, 8, 80,208,164,118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, 81, 52, 26,205,177,156,156, 28,114,246,236, + 89,178, 97,195, 6, 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234,234,187,238,186,139,124,245,213, 87,100,213, +170, 85,228,199, 31,127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, 1,132, 94, 79, 90,132,113, 68,140, 0, 24, + 8, 0,153,153,153, 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186,186, 58,180,110,221, 26, 60,207,123, 60,176, +188,188, 28, 59,118,236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186,119,239,190,115,243,230,205,169,193,193,193, +206,157,130, 32,192, 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38,147, 65,161, 80, 32, 60, 60,252, 40,124, 55, + 97, 56,221, 55,131,193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, 54, 99,186,164, 70, 69, 69,229, 44, 90,180, + 40, 50, 37, 37, 5,231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, 10,138, 63, 19, 19,238,187,239,190,105,209, +209,209,108,151, 46, 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, 33, 4,181,181,181,200,201,201,193,230,205, +155, 77,151, 46, 93,250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, 51,147,161,121,133,130,130,162,153,112,164, +182,182,182,139,201,100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105,105,233, 45,240,188,168,188,166,123,247,238, +123,114,114,114, 82,141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, 34, 98, 23,128, 62,222,222,196,187,116,233, +178,127,215,174, 93,225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, 14,192, 91,224,171,209,176,142,234, 57, 15, +255, 37, 2,120,209,241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, 22,122,189, 30,163, 70,141,170,206,205,205, +237, 5,160,128,102, 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, 38,147, 9,122,189,222, 41,180, 36, 18, 9, + 8, 33,176,217,108,206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148,165,107, 86,139, 80,161, 69, 65, 65,209, 18, + 72,237,208,161,195,161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178,181,186,186,122,155,187,120,137,142,142, 78, + 91,184,112, 97,114, 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129,243, 77,173, 86, 59,205, 98,177,224,208,161, + 67, 24, 51,102, 76, 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225,123,244,232, 1,173, 86,139,145, 35, 71,234, + 79,157, 58,213, 27,192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, 36, 36, 36, 64, 42,149,250,140,156,193, 96, + 64, 82, 82,210,174,138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, 20, 62, 57, 44, 22, 11,138,139,139, 33,147, +201, 96, 50,153,208,174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124,184,195,119,223,125,135,238,221,187,163,115, +231,206,168,175,175,119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191,252,114, 30, 28,205,231,215,170, 22, 17, 59, +166, 77, 17,219, 68, 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94,250,144, 33, 67,182,173, 88,177,162,213,240, +225,195,209,174, 93, 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, 27, 51,102,204,254,162,162,162,100,199,174, + 94, 94, 56,123, 5, 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, 31, 62,124,152,151,201,100,216,183,111, 31, +198,142, 29, 91, 89, 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139,139,253, 70,238,252,249,243, 16, 4,193,228, +233, 63,150,101,229, 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, 54, 20,255, 80, 88,205,102, 51,122,246,236, +137,130,130, 2, 28, 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123,247,226,224,193,131,232,223,191,191, 59,207, + 53,169, 69,156,202,113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, 53, 46, 46, 46,103,209,162, 69,145,177,177, +177, 24, 52,104, 80, 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182,109,219,174, 2,112,207,149, 28,147,152,152, + 88,177,111,223,190, 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83,114,167, 78,157,246,109,216,176, 33,156,101, + 89, 28, 59,118, 44,144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132,123, 57, 87,213,161, 67,135,190,251,247,239, +151, 50, 12,131,194,194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113,255,123,238,185,231, 66,122,247,238,141,226, +226, 98, 92,184,112, 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, + 66, 2,212, 75,191,195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45,169, 84,186, 62, 62, 62,190, 28,158,231,165, + 10, 27, 57,114,100,137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, 61,123,150, 68, 71, 71,231, 3, 8,243,112, +204,216,152,152,152, 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, 34, 69, 69, 69,100,221,186,117, 36, 34, 34, +162, 37, 70, 4,166,118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, + 96,106, 74, 74,138,241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, 35,227,199,143, 39, 25, 25, 25, 36, 35, 35, +131,140, 26, 53,138,188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52,233, 40, 40, 40, 40,154, 23,137, 0,102, 57, + 4,213,202,145, 35, 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76,221,224, 9,111,150,150,150,146,210,210, 82, +113,106,132,124,252, 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, 39,133,133,133,100,237,218,181,196, 33,216, +154, 13, 10,133, 98,131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, 34, 10,192,220, 27,110,184,193, 58,123,246, +108,178,114,229, 74,242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224,131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77, +174,171, 7, 93,217,156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59,185,112,225, 2,217,176, 97, 3,137,137,137, + 57,134,198,243,105,185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, 98,177, 56, 57, 78,158, 60, 73, 0,108,109, +134,112,166,198,199,199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103,220,147,146,146,202, 43, 42, 42,200,166, 77, +155, 72,100,100,164, 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15,251,156, 57,115,200,211, 79, 63, 77, 18, 19, + 19,237,142,151,162,248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222,189, 27,114,185,220,185,227,247,223,127,119, +157, 71,203,219,188, 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, 58,138,105,203,150, 45, 0, 96,106,134,176, +229, 94,184,112,161,255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140,120, 97, 97,225, 43, 93,187,118,157, 94, 87, + 87,167,213,235,245,163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60,112,224,192, 91, 0, 8,128,247, 1,156,184, +222, 18,130, 10, 45, 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252,159, 15,145, 37,226, 82, 65, 65, 65,159, 59, +239,188,243, 57, 52, 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, 9, 75, 74, 75, 75,151,208, 44, 64,113, 29, +225, 24,128, 7,175,231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, 90,120,158,103,139,130,130,130,226,111, 7, +186,168, 52, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20,255, 44, 48,240, 62,114, 32,187, 9, 60, 87, + 50,162, 33,155,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, 80,180,168, 0,163,156,148,147,114, 82, 78, +202,249,207,230,100, 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156,215, 36,254,170,206,240,226,141, 16,208, 48, +228,147,226,239, 7,215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, 29, 27,254,134,117,137,171, 40, 16,174,242, +185,212, 18,113,191,158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134,177,235,116,186, 35, 38,147,105, 62,128, 93, + 87,121,205,175,162,163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150,101,193,243,188,161,182,182, 86,115, 37,164, +145, 93, 70,188,202, 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, 24,169, 84,122, 95,120,120,120,104, 69, 69, + 5, 97,217,134,174,124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, 97,123,195,195,195, 67,197,243, 25,134, 65, + 85, 85, 85, 77,121,121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85, +117, 11,189, 21,255, 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, 34, 8, 76,173,141, 81,252,190,254,194, 87, +103, 2, 57,127,212,168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215,215,215,235, 25,134, 33, 12,195,128, 97, 26, +222,179,220, 63,237,118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137,137, 25,163,215,235,245, 14, 62,143,188, 0, + 96,181, 90,139, 43, 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, 29,195, 48,130,235,127,132, 16,215,135,249, +217,202,202,202,126,254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121,181,113,143,142,142, 30,163,211,233, 2,226, +244, 17,247,203, 56, 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207,158, 14, 60,207, 3, 0,140, 70, 99,215,185, +115,231, 62,246,198, 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114,114,216,149, 43, 87,178,189,122,245, 2,195, + 48,176,219,237,176,219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241,191, 65, 55, 14,121,242,133,114, 96,154,191, +253,190, 4, 38,128,183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89,182, 73,156,130, 32,228, 95,186,116,169,143, + 15, 1,211,236,156, 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70,161, 80, 64, 16, 4,216,237,118, 88,173, 86, +220,112,195, 13, 77,114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, 31,126,192, 99,143, 61,134,190,125,251,230, +149,151,151, 3, 0, 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182,182, 22,183,221,118, 27,170,170,170,254,209, +133,235,230,244,132,247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181,188,225,225,225, 7,229,114,121,180, 95,181, +236,242, 32, 51, 26,141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158,227,184,142, 0,146,108, 54, 91, 52, 0, 72, +165,210, 50,137, 68, 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135,197, 63,209,142,177,233, 71,214,153,132,225, +202,182, 89,169,250,179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, 72, 5,176, 12, 13, 11, 74, 63,141,134,121, +128,174, 6,241, 0,238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, + 85,213, 19,240,176, 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, 62, 80,220, 44, 15, 40,150,101, 63,205,204, +204,252,215,138, 21, 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26,107, 23, 32, 57, 57,217,159,171,193,177, 44, + 59,123,228,200,145, 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85,108,137,136,139,139, 11, 52,239,127, 53,116, +232,208,209,139, 22, 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, 47, 59,246,150, 91,110, 17,252, 71,157,253, +244,158,123,238, 25,253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, 85,199,125,196,136, 17, 15,127,247,221,119, +202, 35, 71,142, 40,219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136,243,238,187,239,126,120,217,178,101,202,131, + 7, 15, 42, 59,118,236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50,139,197,130,173, 91,183,130,101, 89,132,135, +135, 99,236,216,177,216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200,226, 1,224,199, 71, 71, 32,159, 7,198,149, +155, 33,149, 74,113,246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146,254,194, 62,185,193, 96,133,177,100,191, 82, +161, 80, 56, 31, 0,250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, 95,191,208, 27, 95,251,246,237,191, 61,118, +236, 88, 39, 79, 5,215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, 60,207, 39,156, 59,119, 46, 74, 38,147,129, + 16,226, 44,196,238,159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, 54, 27,130,130,130, 32,186, 81,102,179, 25, +245,245,245,254, 56, 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, + 80, 72, 36, 18, 12, 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170,104,121,158, 71,120,120, 56,214,173, 91, 7, +141, 70,131,196,196, 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237,237,183,118,226,110,238,206,125,238,120, 84, +130,101, 1, 65,104,120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51,174,176,176, 48, 42,208, 52,178,217,108,136, +139,139,147,248, 57,108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, 42, 5,199,113,224, 56, 78, 20,232,137,132, +144, 68, 65, 16, 6,150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, 88,177, 16, 67,183, 58,147, 48,124,219, 33, +220, 52,114,200, 27, 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, 86,106, 90, 90,218,161, 61,123,246, 4, 89, + 44, 22,244,238,221,123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113,226,232,103,159,125, 86, 18, 26, 26, 10,153, + 76,134,186,186, 58,156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, 92, 88, 88,152,177,119,239, 94, 12, 26, 52, +232, 69, 0, 47, 95,174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209,147, 45,107,112,113,220,143, 38, 16,236, 66, +241,222,195, 23, 2, 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188,121,184,239,190,251, 16, 30, 30, 14,165, 82, + 9,169, 84, 10,158,231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188,120,113, 48, 0, 44, 94,188, 24, 35, 70,140, + 64, 68, 68, 4,130,131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245,189,233,166,199, 23, 45, 90, 4, 0,120,235, +165,151,112,199,205, 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94,240,171, 47, 1,124,124,223,125,247, 61,240, +253,247,223, 7, 3,192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, 50,103,156, 25,134,129, 66,161, 8, 40,238, +247,221,119,223,200,239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46,151,203, 33,149, 74, 27,109,238,162,211, 19, +231,189,247,222, 59,114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, 11,115,166,167,200,213,148,123,244, 55,231, +188, 62,132,214,161, 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126,184,245,227,143, 63,142, 7, 31,124, 16,155, + 54,109,122,170,137, 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130,169,201, 15,112, 7, 38,237,127,234,169,152, +172, 51,245,216,189,247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51,222, 59, 91,215,176,223, 70,152,173,175,140, +139,185,113,246,255, 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32,138,138,138, 32, 8,130,201,151,187, 32,149, + 74,113,244,232,209,203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143,241,227,199,227,212,169, 83, 16,151, 42, 9, +128,147, 9, 15, 15, 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196,166, 61, 71,225, 10, 72, 24,179, 44,139,111, +191,253, 22, 31,124,240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19,114, 28,180, 90, 45,194,194,194, 16, 22, 22, +214, 72, 32,254,147,225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, 2, 2,129, 8, 40,187,112, 6,147,223,253, + 40,224,167, 15,207,243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164,164, 36,191,121, 73, 42,149, 78,249,249,231, +159,101,223,126,251, 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, 80, 68, 68, 68, 56,183,132,132, 4,230,127, + 61,184,254,121, 0, 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, 90,237, 90,207,247,156,132, 40,219,102,165, +142, 28,242, 6, 0, 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54,181,107,215,174,219,119,238,220, 25,164,215, +235, 33, 8, 2,214,174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, 73, 73,171,118,238,220,121, 75,100,100, 36, +106,107,107,161,213,106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185,231,158,123,158, 31, 51,102,140, 81,161, 80, +136,206, 70,146,231,188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163,207,234,242, 66,188,244,202,228,128,194,216, +186,117,235,167,127,248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6,108,155, 54,109, 30, 95,178,100,137,147,179, + 85,171, 86,224, 56, 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, 8,139,140,195,156,207,230,249, 13,103,100, +100,228,252, 97,195,134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35,170,149, 6,173,194,130, 27,210, 73, 96,240, +251,169, 2,191,207, 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140,171,248,242, 44,186,248,102,179, 25, 61,123, +246, 12, 40,238,174,156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, 23,133,176, 67,112, 54,226,224,121, 30,203, +215, 45,242,234,102, 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241,165,205,181,171, 80,124,124, 60,230,204,153, +227,183, 94,114, 43, 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207,195,113,226,126,222,209, 98, 21,137,134,126, + 99,117, 0, 66, 61,240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107,245,234,213, 98, 41, 30,152,153,153,185,213, +241,189, 70, 46,151, 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56,172,213,187, 67, 66, 66,142,121,112,117, 14, +153, 76,166, 55, 0,148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226,123,135,194, 76,128,244, 73, 51, 48, 44, 51, + 19,235,227,101,144, 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60,244,221,202,118,203, 80,146, 32,142, 67,239, +237,107, 48,126,251, 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175,106,133,215, 30,217,136, 62, 26, 57,100, 38, + 29, 88,150,245,148,179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249,104, 88,199, 9, 94,194, 9, 66, 8,186,117, +235, 6,134, 97,156,110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, 4, 7,149, 74,133,223,126,251,205,121,204, +224,193,131, 97, 52, 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, 94, 12,158,231, 17, 17, 17, 1,165, 82,201, + 44, 90,180,104,162, 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31,142,227,116, 90,173, 54,194, 27,167, 68, 34, +193,179,207, 62,139, 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, 26,209,170, 85, 43,167,216,242, 80, 0, 91, + 98,184,111,203,114, 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33,118, 8, 54,224,192,198,221, 29, 46,230,151, +196, 19,144,134,174,183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207,246, 23, 78,142,227, 96, 52, 26,241,243,207, + 63,227,228,201,147, 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124,243,205, 24, 51,102, 12,146,146,146,252,198, +157, 16,178,176,168,168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, 96,183,219, 97,179,217,192,113, 28,130,130, +130,160, 80, 40, 16, 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234,207, 78,200, 93,183,124,194, 77, 35,223, 32, + 88,241, 1,131,118,109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, 90, 11,196,106, 23, 42, 95,157,248,201,243, +127,250, 61,186, 92,100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88,209,234,174,187,238,202, 41, 41, 41,233,239, + 67,108, 93,198, 25, 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237,183,223, 80, 86, 86,118, 41, 46, 46, 46,100, +224,192,129,236, 75, 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40,204,219,134,194,211,219, 33, 8, 13,174,117, +195,230,249, 59, 9, 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168, +209, 67,214,245,193,235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, 68, 4,146,146,146,160, 84, 42, 33,147,201, +192,113, 28, 24,134,193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155,223,112, 42,149,202, 71, 23, 46, 92,216,200, + 2,137, 14, 11, 3,199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, 67,186,114, 50,117,117,117,198, 61,123,246, +168,247,239,223, 15, 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, 27,113,207, 61,247,224,219,111,191, 69, 70, + 70,134,223,184,215,215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186,117,107,103,220,197,141,231,121, 72, 36, 18, +164,164,164,160,182,182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, 11, 11, 67, 66, 66,130,211,113, 19,197,209, + 7,159,191,219,136, 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93,187,118,208,104, 52, 80,169, 84, 78,110, 95, +156, 94,180,136, 83,111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113,142,175,253, 39, 78,156,216, 51, 43, 43,107, +122, 70, 70,198,119, 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178,166,187, 30,239,225, 58,222, 29,173,204,204, + 76,198, 17, 73, 6, 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240,249,243,231, 81, 83, 83,131,224,224, 96,205, +204,153, 51, 53, 3, 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, 45, 0,119,223, 86, 96, 89, 22,125,250,244, +193, 49, 71,107,199,176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159,103,198,143, 31,207,137,110, 6, 33, 4, 6, +131, 1,177,177,177, 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127,112, 47,164, 50, 6,172,132, 65,119, 82,133, + 95, 7,245, 7, 3,192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51,103,206, 4,228,104, 57,226,197, 92, 41,167, +232,104,236,220,185, 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, 80, 40,160, 84, 42,153,239,190,251,238,237, +228,228,228,216,241,227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108,226, 76, 75, 75,243, 27,151,173, 91,183,226, +139, 47,190,192, 83, 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, 32, 0,176,216,172,208,215, 27,156, 77,186, +118,187, 29, 71,182, 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147,235,105,177,247,125,190, 44,117, 64, 24,191, +103,235, 37,235, 30, 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71,177,118,237, 90,188,243,206, 59,248,247,191, +255,125,153,171,229,239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29,223,120,227, 13, 86,116,180,148, 74, 37, 24, +134,129,209,104,132,201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, 54,255,215,107,115, 37,163,248, 93, 41,215, +175,109,155,192,182,211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, + 38,147, 14,207, 63,255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58, +116,232,128, 69,139, 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, 57, 50,241,198, 27,111,252,180,190,190,190, +186,190,190,254, 83, 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191,190,223,228,201,147, 37,110,125,116, 36,222, +236, 81,171,213, 6,131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99,199,142,184,235,174,187,192,243, 60,148, 74, + 37,212,106,117,163,102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, 31, 62, 28, 82,169,180, 17,167,152, 15,135, + 15, 31,142, 23,222,155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156,122,189,190,126,243,230,205,138, 87,159,122, + 10, 55,182,111,143, 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147,157, 0, 16, 36, 18, 9,186,116,233,130,178, +178, 50, 20, 20, 20,160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211,120,239,189,247, 96, 50,153, 2,142,123,251, +246,237,113,235,173,183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14,237,218,181,195,202,149, 43,145,154,154,234, +151,179, 83,167, 78, 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234,157,215,136,143,143,111, 18,231,134,189,231, +241,229,198,205, 48,153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138,187,200,185, 96,193, 2,212,212,212, 56,141, + 3,241,165, 92, 52, 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, 51,192,231,173,120,156,152,185,228, 89, 89, + 89,211,221,207,247,199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92,254,230,230,205,155,195,107,107,107,113,250, +244,105,176, 44,235,108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202,203,203, 33,151,203, 33,145, 72, 96, 54,155, + 1,160,187,183, 7, 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, 26, 10,134,216, 33,254,135, 31,126,128, 90, +173, 70,112,112,176,243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, 1,150, 1, 24, 9,192,178, 4, 44,195,128, +221,149, 3,134, 1, 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228,201,197,114,255,190,101,203, 22, 4,202,217, +174, 93, 59,168,213,106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32,156,164,193,141, 16, 16, 21, 21, 5,158,231, +153, 69,139, 22, 77, 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, 54, 61, 33, 33,148, 0, 82, 34, 77,225,194, +165,151, 0, 66,104, 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73,147, 42,200, 37, 32, 72,151, 46, 69,164,131, + 5, 20, 36,129, 64, 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, 33,194, 5,231,125,158,121,118,167,189,115, +206,156, 51,103,222,243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235,215,175, 35, 33, 33, 1,245,235,215,119,219, +103,171,168,168, 40,235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138,138,114,237,251, 53, 26, 77,126,159, 62,125, +202,248,109,228,229,229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, 82,235, 80,110,102,142,234,227, 15, 63, 16, + 45,155,250, 6, 0,224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191,220, 53, 19,192,224,202,248,117, 58, 29, 76, + 38, 19, 34, 34, 34,112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16,173, 6, 44, 25, 25, 25,157,162,163,163,127, + 93,177, 98, 69, 68,243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, 59,119,238, 76, 49, 24, 12,255,182,153,206, + 93,226, 68,198, 55,201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, 4,157,159, 33,213,107,140,119, 76, 12,151, + 0,142, 1, 24,176,224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, 63,147,201,132,107,215,174, 97,204,152, 49, +150,188,188, 60, 9, 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219,182, 45,224,213, 87, 95,221,163,215,235, 95, +116,147,250,219,172,172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, 31,154,166, 75,147,227,242,193,100, 1,138, +162, 96, 52,154, 81, 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182,118, 84, 34, 22,122,181,125, 49, 88,199,113, + 28, 72,130, 40,186,246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236,179,204,252,252,252, 32, 18,137,240,237,183, +223,226,198,165, 19,144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241,250, 3, 68, 53,243,114, 75, 16,250,251,251, + 99, 64,199,142,136,238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, 5,128, 99, 72,119,131, 8,176,246,116, 6, + 5, 5,225,183,223,126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183,111,223,198,238,221,187, 17, 21, 21, 85,237, +188,219, 45,120, 51,103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, 8, 69, 69, 69,248,247,191,255,141,156,156, + 28,183, 56, 29,135,247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, 18,130, 67,151,118,130, 0,129,171, 59, 62, + 40, 35, 10,215,239,186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100,117,170,242, 56,130, 32,174,217,141,173, 51, +103,206,156, 69, 16,196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, 65, 28,181,137,176, 1, 14,219,174, 85, 75, +104, 41, 20,138,246,158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18,137, 68, 77,242,242,242,164,185,185,185, 48, + 24, 12,186,249,243,231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61,194,246,237,219, 1,224,128,107,159, 13, 18, + 44,203,150, 86, 10,231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205,155, 55, 87,249,194,120,245,251,195,184,126, +253, 58, 28,195, 3,216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248,170, 28,224, 93,193, 93,223, 47, 87, 51,115, + 42, 66, 70, 70, 70,133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, 32,151,203, 9,177, 88, 76,136,197,226, 48, +187,200, 18, 8, 4,165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, 61, 50, 51, 51, 43,220,175, 86,171, 59,169, +213,106, 60,143,176, 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, 51,128,159, 59,189, 51, 13,147,251, 70,245, +172,238, 48,181,253,126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183,183, 55,250,246,237, 11,165, 82,137,153, 51, +103, 98,248,240,225,213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, 52,188,110,221,186,176, 88, 44,176, 90,173, +176, 88, 44, 72, 78, 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145,241, 77,242,254,243, 31,102,246, 30,249,170, +241,118,206, 15,200,206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160,105, 6, 98,177, 64,185,244,139, 15, 78,177, +224, 64,146,132, 5,192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, 19, 19,147,157,159,159,159, 8,160, 23, 0, +228,231,231, 95, 28, 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169,215,235,171,162,244, 4, 48, 25, 64, 31,148, +248,129,216, 81, 0, 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0,248,217,117, 15,200,102,209, 50,153,160,206, + 47,196,132,119,230,252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, 39, 25,111, 76,152, 38,173,170, 67,224,234, + 69, 88, 13, 31,157, 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191,124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, + 29, 88,139, 1,132, 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84,224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, + 16, 12, 81, 42, 72, 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242,100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, + 38,147, 9, 70,163, 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, 98,177, 24, 31,124,240, 1, 94,126,249,101, +204,155, 55, 15,177,177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50,178, 42, 94,206,177,140,236,247,211, 46,182, + 28,135,248, 0, 84,187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155,115,209,162, 69, 80,171,213,229, 44, 89,246, +255,161,161,161, 88,183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, 56,142,107,103,243,157, 50,199,197,197,221, +138,139,139,139, 38, 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253,210, 18, 58,141,141,118,119,220,105,191,209, +190,190,190,130,240,240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30,169, 80, 40, 62,251,238,187,239, 26,233,116, + 58,220,190,125, 27,171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102,201,114, 92, 31, 56,112, 32, 26, 52,104, 80, +198,154, 37,151,203, 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, 73, 73, 49,138,197, 98,132,133,133,201,179, +179,179,141, 98,177,184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, 93, 25, 11,150,227,175,227,255, 67,135, 14, + 85, 57,116,104,231,108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, 31, 88,150,133,191,191,191, 91,156,118, 81, +107,115,128,135,201,100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149,250,234,200,100,178, 82,107, 38, 15, 87, 13, + 2, 11, 11, 69,193,104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53,230,183, 55,176, 5, 5, 5, 56,113,226, 4, +126,248,225, 7,188,252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, 51,174, 46, 88,176,160,142,175,175, 47,172, + 86, 43, 30, 62,124,136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69,195,100, 48,163, 88,163,197,103, 95,108,173, +176,234, 1, 64, 65,238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206,157,191,208,106,181, 69, 6,131, 97, 56,128, +101,142,253,169,252,252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, 55, 40,103,166,166,166,206,170, 87,175, 94, +153,141,102,179, 25,245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175,195,110, 47, 0, 39, 1,172,171,168, 46,217, +135, 14,117, 58, 35,148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, 13,177,119,128, 43, 90,170,152, 25, 87, 46, +169,246, 99,237, 47,236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, 85, 0,228,190, 16,119,253, 24,132,202,118, +143, 38, 31,118,139, 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, 10,184,156,144,128, 93, 63,253,132,145, 61, +122, 64, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, 53,107,134,123,247,238,149, 9, 67,193,113, +156,187,249, 47,205,187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139,177,117,235, 86,156, 59,119, 14, 51,102,204, +192,248,241,227,209,189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195,185,213, 45, 35,103, 78,231,247,126, 77,202, +221,206,185, 96,193, 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100,183, 60, 57, 10, 35,231,117, 0, 62,246,109, + 51,103,206,156,229,238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116,153,156, 23, 20, 20, 92,189,122,245,106, 11, + 15, 15, 15,220,185,115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175,254,253,251,159, 90,182,108, 89, 24,203,178, +200,201,201,193, 71, 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195,135,203, 63,108, 7, 15, 30,116,107, 8,196, + 46,164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49,137,191,102, 42, + 84,101,125,170,202, 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, 90,158,154,154, 90, 97, 67,114,238,220, 57, +176,182,134,214, 93, 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82,200,229,242, 50, 34, 75, 42,149, 86,249,224, + 84, 21,144, 84, 38,147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, 5, 5,237,159,233,161, 67,112,160,173, 52, +140, 70, 19,116, 90, 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, 66,135, 14, 29,202,137,172, 26,154,231,211, + 11, 10, 10,186,175, 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45,214,233,116,221, 1,164, 87, 75,108,178, 28, + 40,171, 21, 6,147, 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206,222, 89,201,254,251, 52, 77, 71,219,227,190, +185,129,127,213,171, 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226,100,189,233,104, 72,198, 95,209,179, 43,234, +197,151, 88, 71,141,102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228,147, 85,147, 58, 68, 16, 68,169,211,247,212, +169, 83,113,243,198, 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63,212,114, 44, 91,113,172,218,220,187, 29, 92, + 32,150,237,222,237,114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, 83,238,125, 83,221,252, 59, 10,152, 21, 43, + 86, 96,198,140, 25,216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200,205,205,197,141, 27, 55, 96, 54,155,221, 78, +167,163,223, 92, 82, 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119,228,116, 22, 90,251, 79,255,142, 97, 81,109, +107,196,249,217,103,159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69,156,144,231,228, 11,101, 95,183, 56,137, 30, +231,117,231,227, 1, 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, + 52,120,240,224, 65,171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51,102, 32, 34, 34, 2,254,254,254,161, 42,149, + 10,249,249,249, 88,188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, 11,137,228,175, 14,171,221,178, 5, 0,227, +199,143, 47,103,209,178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, 24, 50,100,136,224,207, 63,255,100,250,246, +237,139,161, 67,135, 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212,236,223,191,255, 67, 0, 95,186, 33,182,106, +205, 49,222, 94,201,220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133,194, 82, 71,121,119, 56,237, 67,135,142, 15, + 32, 73,146, 80,169, 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, 80, 40,239,220,185,211,200, 62,241, 34, 47, + 47, 15, 61,123,246,188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, 25, 13,181, 70,107,127, 30, 54,110,220,136, +196,196, 68,152, 76, 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, 92,206,246,235,215, 15, 87,175, 94,133, 84, + 42,165, 80,131,248, 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, 84, 85, 39, 38, 38,194, 98,177, 96,222,188, +121,204,175,191,254,122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225,161, 58,122,244,232,123, 0,182, 86,246,242, +166,104,155,104,175,197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44,203, 98,226, 91,111,161,119, 29, 13,134,190, + 20, 0,125,214, 93, 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, 7, 0,253,186, 13, 70,171,102,229,195,131, +117,238, 85,210, 39,187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171,106, 88,180, 74,159, 57,251,253,107,211,166, + 13,154, 52,105,130,179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212,212, 84,220,188,121, 19,133,133,133,213, 46, +163,239, 79,238, 66,161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224,199, 46,119, 59,154, 14,248, 12, 0, 80, 39, +192,187, 90, 66,203,145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202,214,171,123,254,147, 68, 69, 66,235,129, 90, +173,238, 48,114,228,200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129,129, 61, 58,118,236, 40,148, 72, 36,184,124, +249, 50,246,239,223,191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43,162,253, 65, 84, 42,149,130,197,139, 23, 19, +155, 55,111,174,208,202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, 21,253,250,245, 99, 18, 19, 19, 33, 22,139, + 49,104,208, 32, 38, 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, 63,244, 1,208,181, 26,247,202,238, 24,239, + 9, 55, 29,224, 43,234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, 98, 49,109,143,252, 78,146, 36,172, 86, 43, +218,182,109,139,220,220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, 42, 20, 10, 97,177, 88,208,181,107, 87, 16, + 4,129, 53,107,214, 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, 2,203,214,238, 87,101, 98, 99, 99,203,136, + 41, 87,145,151,237,247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55, +247,160,211,230, 2, 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, 63,126, 92,112,224,192,129, 94,135, 14, 29, + 74,184,123,247,238,163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, 30, 94,122,233,165,207, 51, 50, 50, 42, 17, + 90,182,251,104, 50, 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238,220,255, 67,239,144, 34, 12,105,237,141,248, + 35,151, 48,186,141, 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220,126,169,178, 36,150,107,253,200, 14, 32, 31, +221,171,118,222, 29,211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31,127,140, 62,125,250,224,222,189,123, 56,127, +254, 60,238,221,187,135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211,123,161,209, 21,131, 36, 72, 20, 20,231,195, +100, 54, 34,118,210,220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, 57,123,246,108,100,103,103,151,177,100, 61, +142, 95,214,179,142,202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94,148,191,191, 63, 8,130,192,138, 21, 43,224, +235,235,219, 9,192, 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200,201,201,113, 57,111, 95,175,215, 91,163,162, +162, 68, 33, 33, 33,101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26,177,177,177, 88,184,112, 33,194,195,195, 49, + 96,192, 0, 68, 71, 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169,196,199,143, 31,239, 70,146,100,130,195, 11, +164, 12,167, 43,216, 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, 11, 23, 46,196,172, 89,149,187,122,108,216, +176, 1, 40,239, 79,245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26, +162, 50,156, 85, 5, 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224,224, 96, 87,129,252,170, 44,163, 26,224,111, +229,100, 56,246,218,210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, 20,150, 29, 78, 50, 91,255,154, 74, 45,105, +219, 11,150,235, 63,186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, 54,110,220,248,216,121,119, 83,108,149,231, +100, 57, 66,225,225, 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126,253,229,151, 95, 6,249,249,249, 33, 61, 61, + 61, 64, 36, 18, 13, 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226,156, 54,109,154,121,206,156, 57,210, 81,163, + 70, 97,232,208,161, 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233,233,248,241,199, 31,161, 86,171,111, 87,150, + 78,150,227, 8,185, 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171,184,163, 53,171,154, 34,203,101,253, 4,128, + 95,127, 60,136,185, 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80,131, 85,223,198, 71,163, 95,198,178, 29,191, + 1, 0,206,159,171,178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175,227,134,143, 86, 57, 78,123, 39, 81,171,213, +162,168,168, 8,241,241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, 23,223,125,247, 29, 20, 10, 69,141,202,232, +195,183,102, 99,206,178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241,177,203,221, 25,110, 88,179, 42,228, 92,185, +114,101, 77,235,210, 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, + 25,194, 11, 13, 13,221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199,190, 0,192,192,129, 3,113,248,240,225, 42, +123, 20,193,193,193,168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229,114, 28, 61,122, 52,187,160,160,160,128,227, +184,106, 77,115,179, 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239,222, 13,217,184,113,163,160,146,151, 95, 41, +206,159, 63, 79,163,138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, 4,170, 10, 72, 42, 20, 10,145,148,148,132, +185,115,231,130, 32, 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159,129,175,116,110, 9,130,128,213, 82,126,164, +218,179, 80, 87, 42,178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130,239,198,141, 27,133,238,148,251,133, 11, 23, +104,142,227,170, 61,236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57,238,139, 57, 81,219,190, 61, 38, 34, 8, 11, +174,156,219,135,226, 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, 46,186,181, 67,134, 12, 25,245,213, 87, 95, +181,112,181,211,141, 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, 19,235,177, 99,199,222,124,245,213, 87,209, +186,117,107,132,132,132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, 23,192,148, 42,238,227,193, 69, 95,204,137, +137,223,113, 76, 66, 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182,238,183,138,197,162, 59, 85, 89,139, 28,173, + 89,181,249, 98, 28, 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243,197,112, 44,239, 39,134,117,207,104,180,122, +109, 27,118,206,235, 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138,101, 54,113, 83, 61,171,169, 61,239,149, 89, +174,170,107,209, 34, 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219,162, 71,143, 30,184,113,227, 6,110,220,184, +129,105,211,166, 85, 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56,151,123,109,192,157,186, 52,121,242,100, 0, +248, 71, 89,183,170, 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165,251,210,210,210,192,178,172,161,186, 5, 99, +177, 88,236,193, 49,203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, 91,183,110,232,210,165, 75,233,240,137,227, +226, 32, 76,112,224,192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, 0,185,185,185,125,187,118,237,122, 74, 40, + 20,186,245, 21, 77,150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, + 60, 60, 60,240,253,247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191,155,159,228, 28,128,128,161, 95,238,122,120, + 46,223, 90,111,232,151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, 57,242,184,187,229, 78,211,244,131,236,236, +236,106,135, 75,224, 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36,255, 51,231,174, 94,190,240,243,169,126,253, +162, 58,180, 3, 9, 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214,240,225,195,159,102,177,105,178,179,179, 59, + 13, 27, 54,108, 10,254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, 69,129, 64, 32, 5, 48, 23, 64,218,165, 75, +151,214, 94,186,116,169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0,254,168,186, 30,229,190, 13,142, 13,235,215, +251, 95,125, 65, 16,156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222,200,106, 85, 89, 71,202,225, 11, 28,181, 62, +100, 63,101,202, 20, 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90,165,195,252,117,103, 16,202,112,183, 59,124, + 0, 48,251,255, 38,212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, 16, 32, 47, 47, 15, 73, 73, 73,200,201,201, +129,193, 96, 64, 98, 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, 85, 70, 79,147,243,159, 56,124, 88,109,161, +101,181, 90, 63,109,208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, 38,106,170, 61, 11, 79, 36, 18,153,154, 52, +105, 66,184,154,157, 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8,130, 16, 84,212, 11,177,255,103, 89,150, 17, + 10,133,113, 53,188, 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231,242,209, 55,107,214,172,244,139,246,206, 49, + 81,108, 31, 91,213, 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238,119, 12,104,250, 92,131,224,210,250,143,122, +179,222,185,124,107, 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253,221, 73, 75, 73, 73,177,252,235, 95,255,250, + 86,171,213, 78, 6, 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26,158,155,150,159,159,223,211,105,219, 31,118, + 65,101,143,107, 87,109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45,203, 13, 69, 81,233, 85,237,119,142, 17,230, +136, 91,240,198,172,171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69,213,204, 91,174,187,121, 15, 9, 9, 65,157, + 58,117, 74,127,237,112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, 17,223,157,125,178,220,225,172,237, 50,170, +140,179, 78,157,109,181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, 57, 5,252,253,228, 57,121, 78,158,243, 9, +114, 62,151,224,189,212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129,168, 68,149, 86,103,166, 79, 77,148,237,105, +158,147,231,228, 57,121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227,231, 26,188, 89,149,231,228, 57,121, 78,158, +147,231,228, 57,121,206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240, + 66,139, 7, 15, 30, 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, 30, 60,120,161,197,131, 7, 15, 30, 60,120, +240,224,193,131, 7, 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72,233, 7, 1,163,163,163, 9,254,182,240,224, +193,131, 7, 15, 30, 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, 7, 15, 94,139,212, 14, 72, 94,108,241,224, +193,131, 7, 15, 30, 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172,103, 10,101, 44, 90,188,224,226,193,131, 7, + 15, 30, 60,120, 60, 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, 30, 60,120,240,120, 76,129, 85,217, 47, 15, + 30, 60,120,240,224,193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158, +243, 31, 11, 33,127, 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30, +181, 39,178, 8, 87,235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143, +199, 3, 1,126,232,144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, 52,115,224,116, 53,200,107, 50,251,224, 52, +207,201,115,242,156, 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, 55, 0,103, 1,116,183,253, 86, 40,188,106, + 27,252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168,148,119,134,231, 81, 21,132,168,124,136,185, +170,253, 60,120,240,224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, + 22, 0,111,135,109,191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247,170, 76, 13,199,137,109,252, 82,219,194, 2, + 48, 1, 48, 3,208, 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87,170,185,255,185, 66, 72, 72,136,220,199,199, +167,207,245,235,215, 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225,201,172,172, 44, 35, 95, 93,158, 11,244, 5, + 48,211,246,127, 17,128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, 29,154,166, 9,131,193,144,169,215,235, 79, +209, 52,253,165,173,221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, 25,153,153,153, 59, 0,236, 1, 48,188, 78, +157, 58,163,235,215,175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211,201,131,199, 63, 9, 68,101,214, 8, 87,152, +203,113,220,232, 50, 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, 23,185, 92, 78, 3, 24, 87,133,200,242,187, +124,249,114,189,201,147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241,115, 96, 96,224,175,171, 86,173,250,142,227, +184,116,130, 32,180,213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28,199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81, +212, 55, 0,106, 34,222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10,133, 55,205,102,243, 9,154,166,215, 2,176, +212,128, 83, 38,145, 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, 70,115,202, 98,177,172,181, 9,206,167, 13, + 33,128,104,142,227, 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, 28,199,113,196,207, 63,255,220,134, 97, 24, +210, 86, 63,162, 1,252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180,208,100,178,151,175, 95,191,222,116,247,238, +221,204,215, 95,127, 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, 43,235, 61,231,227,253,252,252,150,147, 36, +233,239,206,245, 89,150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142,143,151, 53, 2,144, 94,195,250,253,247,113, +154, 98, 56, 0,136,151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59,173,237,202,113,192,148, 40, 47,242,113,133, + 86,104,104,104,124, 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, 77,175, 92,185,210,125,223,190,125, 47,107, +181,218,225,213,164,124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20,213,104,247,238,221,109,223,126,251,237,247, + 55,110,220, 88,119,196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0,190,124, 10,233,228,193,227,159,134,110, 40, +235,163,245, 57,128,207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, 57,115,230,144, 80, 40,180, 91,180,218,235, +245,250, 32, 39, 43,152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, 17,217, 10,133,162,201,171,175,190,170, 37, + 8, 66,176,123,247,238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28,199, 93, 32, 8, 66,237,102, 38, 91,248,250, +250,238, 95,178,100, 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67,143, 30, 61,218,239,243,207, 63,255,176,160, +160, 96, 8,128,132,106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, 97,112,112, 48, 76, 38, 19, 18, 19, 19,123, +159, 56,113,162,235,198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237,189,239,191, 31,127, 28,212,225,141, 55,132, +190,190,190,224, 56, 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226,226, 97,174,238,247,211,132, 68, 34, 33,183, +111,223,222, 90, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, 44, 51, 51,211, 91, 44, 22,187,220,207, 48, + 12,186,118,237,218, 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87,215,119,238,220,233,191,118,237,218,215, 0, +148, 19, 90, 36, 73,250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98,177,160,121,243,230, 79, 53,255,241,241,178, + 48, 0,211, 99, 98, 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, 78,199,250,182,220,225,255, 99,167,213, 1, +245, 0,224,216, 13, 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213,106, 53, 68, 34, 17,172, 86, 43,178,179,179, + 17, 25, 25, 41,248,246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224,216,177, 99,214,237,219,183, 91,162,162,162, + 68,227,199,143, 87,118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167,168, 49, 99,198, 72,226,226,226, 2,142, 30, + 61, 58, 48, 33, 33,225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18, +181, 9, 10, 10,138,167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109,199, 30,100, 89,118, 80, 85,150,172, 49, 99, +198,116, 60,126,252,248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225,135, 31,166, 2, 64, 74, 74, 74,195,129, 3, + 7,134, 78,157, 58, 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130,208, 87, 37,178, 34, 35, 35, 47,159, 63,127, +222, 75,165, 82,149,217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234,213,235, 82,114,114,114, 23, 0,127,186, 35, +136, 26, 55,110,124,250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, 6, 3,148, 74, 37, 70,140, 24, 33,238,214, +185, 83,221,169,211,222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119,198,197,121, 82, 15, 31, 66, 46,151, 67,167, +211, 1, 0,188,188,188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215,164,164,222, 79, 73,108, 73,109,191,102, 0, + 71, 4, 2,193, 96,137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102,221,161, 7, 15, 30, 12,185, 92, 14,139,197, +194,162,100,232,144,126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212,106, 53,242,243,243, 97, 54,155, 81, 84, 84, + 4,150,101, 9,185, 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, 74, 42,179,141,166,105,232,245,122,152,205, +102, 88,173, 86,104,181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10,190,204,201,201, 73,123,194,217,207,179, 11, +162,248,120,217,125, 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, 15,143,252,110, 10,183, 89,199, 30,212, 2, + 31, 11, 0, 23, 46, 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142,227,170, 61, 28,151,156,156,188,238,197, 23, + 95, 36,110,221,186,117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12,223,165, 75,151, 22,196,198,198, 46, 2,176, +117,247,238,221,239, 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219,224, 56,174, 29,128, 0,123,219, 98,107,119, +253, 28,214,111, 16, 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130,248,213,225, 60, 53, 65, 16,191,214, 52,153, + 78,191, 37,157,110, 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207,158,203,174, 93,187,214, 60, 43, 43,203, 39, + 43, 43,203,231,218,181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62,245,180,195, 62,241,229,203,151,235,237,223, +191,127,209,233,211,167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, 11,154,238,211,167, 79,238, 79, 63,253,196, +116,232,208, 65,126,252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4,174, 56,109, 16,169, 84,170,239,207,157, 59, + 87, 78,100, 57,162,110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, 54,200,100, 50,217,190,159,126,250,201,211, +203,203, 11,185,185,185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118,247, 46, 72,139, 5, 43,190,152,239, 37,151, +203,247,186,104,236,203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99,193, 2, 88,173,214,210, 33, 87,171,213,138, + 75,147, 39, 67,253,227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, 3,142,156,147, 1, 20,216,150,201, 0,174, + 68, 70, 70, 94, 75, 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, 99,198,140,201,123,246,236,105,213,165, 75, + 23, 36, 38, 38, 34, 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41,179,176,236, 95,239,152, 58,117,234,228,238, +223,191, 31, 35, 70,140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34,211,237,116,154, 76, 38, 24,141, 70,232,245, +122,164,164,164,200,151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179,102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, + 9,231,221,234,244,127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49,173, 29, 26,216,234,242, 86,118, 63,179,109, +105,213, 3, 72,123,156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10,197, 77,193,138, 85, 96,197, 42, 48,126,237, +144, 44,121, 5,225,225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151,173,167,156, 15, 96, 89,108,108,236,231, 4, + 65, 92,136,141,141,157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165,243,153,120,222,121,206,255, 45,206, 42,180, + 72, 0, 65, 16, 71, 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, 0, 72, 92,253,218, 23,135,237, 1, 28,199, + 13,112, 56, 47,160,134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163,237, 59,126, 33, 8,226, 16,128, 95, 68, 34, + 81,155,214,173, 91, 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238,221,235,213,162, 69,139,193, 34,145,168, 13, +128, 95,148, 74,229,161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, 54, 0, 80,148,144,144,160,232,208,161,131, +158,166,105,130,166,105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218,121,244,234,213, 43,117,250,244,233, 99, 92, + 8, 14, 71,188,190,120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, 48,121,242,228, 96,145, 72,244,102,101,119, + 75, 40, 20, 78, 89,188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88,144,148,148, 4,147, 94, 7, 74,171, 1,165, + 41,130,250,254, 61,168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, 77,108,108,144, 37, 53, 21, 41,123,246,128, +161,203, 27,127,104,171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, 83,158,176, 37,107, 41,199,113,114,142,227, +228, 4, 65,172,234,216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, 59,127,254,124,119,154,166, 69, 52, 77,139, + 46, 92,184,208,197,100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98,177, 24,114,185, 28,157, 59,119,190,191,121, +243,102, 42, 44, 44, 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171,213, 46,118,151,207,106,181,194,108, 54,195, +104, 52,194,100, 50,225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, 11, 40,138, 50,199,198,198, 42,125,125,125, + 63,124,146,249,140,137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, 56, 1, 88,108, 62, 89,118,248,219,184, 45, +181,116, 43,104, 0, 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104,227, 55,223,124, 19, 70, 74, 85,184,104,233, +143,239,216,207,113,210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199,113,107,106, 33,205, 95, 1,232, 10, 96, 85, + 77, 78,126, 2,233,172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134,103, 31, 7, 81,141,208,123, 80, 51, 50, 61, + 42, 2,220,160,102,100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113,209, 28,199, 69, 47, 90,180,104,161,195,251, +221,190, 46,119,211, 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, 41,209, 20,142, 74,210, 33,115,165,179, 11, +131,130,130,226,227,227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175,177, 99,199,190,151,158,158, 30, 83, 69, 34, + 36,217,217,217,109, 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237,237,205,216, 15,240,246,246,102,138,139,139, + 69,122,189, 94,192, 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, 64, 64, 64, 84,255,254,253, 43, 28, 58,160, + 40, 10,122,189, 30,122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110,110,238,250, 10, 21,135, 84, 26, 21, 21, 21, + 37, 42, 40, 40,128,183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, 88,117, 90,208, 90, 13, 56, 77, 49,242,239, +221, 65,135,102, 77,197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195,184,113, 66, 15, 15, 15,116, 31, 93, 50,207, +224,120,179,102,224, 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18,237, 10, 10,132,202,109,219,162,212,106,245, +178,167, 81,217,165, 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22,156, 60,121,242, 31,247,208, 75, 36, 18,200, +100, 50, 88,173, 86,212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, 30, 98,177,248,135,252,252,252,133, 89, 89, + 89, 41,238,242, 81, 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55,104,208,128,152, 60,121, 50, 99, 48, 24, 26, +174, 94,189, 58,249,228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, 83, 51, 0,205,226,227,101, 98,155,229,215, +242, 63,198,201,161,196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225,126, 66,189, 72, 0, 29, 0, 47,155, 40,120, +149, 32,136, 14,205,155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, 70,198,178, 44,193,178, 44,222,110, 95,132, +201, 29, 5,160,168, 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, 62,155,111,122,122,122,246,145,201,100,245, +105,154, 38,117, 58, 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, 29, 30, 30, 30, 75,102,205,154,213,201,219, +219, 27,191,255,254,123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91,150,175, 92, 19, 26, 26,168,194,141,243,135, + 67, 23,110,216,189, 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, 27, 64, 16,196, 17,103,161, 84, 45,179,211, + 99,158, 95,133, 69,203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86, +171,225,227,227, 3,171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34,145,217,104, 52, 66,161, 80,176, 34,145,136, +179, 93,135,176,205, 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, 20,149,248,146,113, 28,215,222,207,207,207, +229, 62,179,217, 12,157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, 52,221,182,210, 46, 45, 77,183, 12, 8, 8, + 64,102,102, 38,228,114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138,139,193,106, 52, 96,245, 26, 80, 22, 3, 66, +155, 52,131,125, 70, 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56,155,192,162,105, 26,180,205, 57,218, 62,156, +232,239,239, 15,251,140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, 38, 33, 43, 43,171, 76,157,152, 52,105, 82, +169, 79, 86,215,174, 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127, +127,125, 94, 94,222,207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70,112, 28,135,223,127,255, 29, 50,153, 76,196, + 48,204, 45,154,166, 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, 54, 11,209,155, 40,113, 56,207,112,209,144, +184,117,235,220,228,172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111,170,146, 44,143,235, 16,168,106, 61,208, 67, +175,144, 8,244,108, 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87,207,223,223, 95,150,156,156,108,154, 63,127, +126,131,237,219,183, 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254,253,251, 55,148, 74,165, 68,113,113, 49,212, +106, 53,114,114,114,240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, 36, 36,100,243,235,175,191, 62,246,165,151, + 94, 18,217, 45,164,122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175,118,189,124,244,232,209,158,217,179,103,123, +188,242,202, 43, 77,165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125,250, 52, 84, 42, 21, 72,146, 12,122,220,250, +106,178,178,161,117,130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242,252, 88,180, 42,120,215,183,179, 91,164,170, + 16, 75,198,153, 51,103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50,142,199, 57, 28,111,174,109,177, 85,173, 64, +147, 44,203, 34, 35, 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199,113,238,204, 62,227, 8,130, 96, 79,157, 58, +229,115,249,242,101,125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, 24, 34, 45, 45, 77,124,241,226, 69,213,237, +219,183,131,108,189, 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, 50,247, 84,135,237, 69,248,251,181,107, 37, + 34, 75,167,181, 13, 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25,220,190,127,142,176,139, 44,171, 77,104, 89, + 44, 22, 80, 20, 5,150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, 96,124, 70, 70,249,119,225,144, 33, 67,240, +238,187,239, 98,234,212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88,150,109, 13,160, 24,192,241,231,237,161, 55, +155,205,165, 22, 40,147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, 77,219,185,137, 3, 7,246,227,194,133, 11, +100, 66,194,173,176, 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, 40, 44, 40,241,127,170, 40,164, 66, 4, 42, + 31,178,227, 42,227,124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41,143,105,209,122, 69, 66, 18, 95, 79,107,233, + 43,251,176,149,159, 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, 97, 13, 84,117, 22, 46,252, 34,228,246,237, + 59,230, 57,115,230, 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38,147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26, +116, 53, 48, 48,176,193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101,245,122,253, 3,163,209,120,218,106,181,158, + 6,112,173, 58,137,245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, 86, 43,114,115,115,209,169, 83, 39,193,161, + 67,135, 90,212,228, 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82,169,124, 73, 42,149, 6, 3, 96,180, 90,109, +142, 94,175,255,163, 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, 62,124, 8,134, 97,114, 30,183, 14,200,196, +228,163,155,231, 15,213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61,247,176,251, 80,193, 81, 64,185, 16, 72,151, +227,226,226,228,139, 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187,101, 63,206,225,248,243,143,145,198,138, 45, + 90, 21, 41, 72,160,100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153,153,153,144, 72, 36, 72, 75, 75,131, 68, 34, +201,114,167, 19, 34,151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215,189,118,237,154,178, 83,167, 78, 47,202,229, +114,134,227, 56,152, 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180,111,223,254,250,238,221,187,141,168, 36,254, + 21, 65, 16,191,100,101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, 25,242, 20, 10,133,215, 43, 75,168, 80, 40, +188,153,148,148,212, 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, + 46,147, 33, 35, 61, 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, 74, 85,250, 18,165,104,186,100, 97, 24, 88, +104,186,212,162, 37, 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201,216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, + 58,116,192,148, 41, 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116, + 40, 44, 44, 20,202,229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240,224,129,166, 34, 78,155, 48, 43, 21, 93, 44, +203,130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136,223,178,157, 27, 52,104, 16,113,232,208, 33, +176, 44,155,254,132,179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, 21,113, 58,246,254, 28,183, 17, 46,142, 41, +135, 15, 62,248,224, 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25,104, 70,111, 62,183, 83,247,237, 93,141,126, +222,183, 43,127,179, 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174,223,184, 42,127,199,246,189,201, 15, 31, 62, +212,172, 93,187,182,227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69,227, 55,223,124,115, 92, 97, 97,161, 56, 62, + 62,126,119, 86, 86,214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100,107,231, 46, 2,152, 95, 89,127,141, 32, 8, +252,244,211, 79,229,102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, 39, 39,103,152,243, 78,177, 88, 60,175, 73, +147, 38,125,111,221,186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, 16, 8,234, 48, 12,147,105, 52, 26, 99, 31, +219,162, 69,177, 19,226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226,117,200,243,107,205,178, 65,237, 96,141, 82, + 3, 32,156,214,255,176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, 87,251,212,143, 17, 44,157,171,168,141,171, +200,162,245, 9,128,246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240,210,104, 52,200,201,201, 65,110,110, 46,132, + 66, 33,148, 74, 37,214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0,147,191,191,255,111,219,183,111, 15,254,250, +235,175,133, 49, 49, 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, 67,152,205,102,226,237,183,223,142, 88,177, + 98, 69,170, 64, 32, 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213,167,190,255,254,251,161,211,167, 79,151, 90, + 44, 22,151,150, 44,251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, 56,245,195,177,163, 93,255, 51,114,164,152, +210,106, 64,105, 53,160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,127,253,131, 50,155, +205,149, 6, 54,212,104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, + 7, 91,182, 4, 67, 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, 55,110,220,200, 29, 61,122,244, 53,150,101, +219,226, 9,125, 52,243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3,201,209,163, 71,187, 38, 38, 38,138,255,252, +243, 79, 92,184,112,161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170,196,155,171,160,191,176,249, 31,238,222,185, + 7,239,188,243, 14,145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,117,225,228,247,228, 34,164, +194,239,112, 51,164, 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, 56, 80, 22, 95,165,165, 12, 49,166, 24,141, +205, 33, 62,171, 22, 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140,243, 1,156,128,137,225,238, 93,231,110,188, +244,146,143, 63, 0,152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122,190,228,231,231,183, 46, 63, 63,191,179,171, + 50,141,142,142,238, 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179,243, 65, 17, 17, 17,115,110,223,190,221, 78, + 36, 18, 17, 85,212, 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35,110, 4, 78, 80, 12, 8,101, 96, 84,173,144, + 38,110,142,176,176,171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58,116,232,150,248,248,248,176,110,221,186,113, +215,175, 95, 39,157, 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97,215,174, 93,147, 81,118,166,109, 85, 72,179, +197, 27,172, 53,156, 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92,120,140,240, 12,143,149,196, 10, 13, 24, 21, +108,111,111,139,137,213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252,124,248,249,249,161,126,253,250, 32, 8, 2, +235,214,173, 51, 62,120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10,218,213,171, 87,239,218,182,109,155,234,218, +181,107, 2,154,166,149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152,189,118,237,154, 34, 34, 34,194, 68, 16,132, +244,199, 31,127,204,191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, 96,193,130,140,148,148, 20,152,205,102,104, + 52, 26, 20, 23, 23,151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246,239,223,159,101,139, 18, 95,153,101, 99,237, +154,117,235,213, 89, 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, + 71,163, 67,252,229, 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, 22,139, 81,111,248,112, 88,109, 67,133,142, + 66,139, 33, 8,132,247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, + 79, 76, 76,220, 5,224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153,162, 40,204,157, 59, 23, 98,177, 24,115,231, +206,197,167,159,126,138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, 6, 23, 47, 94, 20,159, 63,127,158,139,139, +139,203,139,136,136, 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, 94, 94,136,141,141,197,146, 37, 75,176,121, +243,102, 28, 60,120, 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, 87,175,206, 56,120,240,160,113,213,170, 85, + 16, 10,133,196, 83,106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81,181,111, 84, 69,156,144,197,199,215,181,137, +163,100, 7, 65,116, 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150,143,254,191, 68,213,166, 59,247,175,100, 25, +103, 3,248,193,158, 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148,148,228,253,253,247,223,203, 2, 3, 3,241, +237,183,223,202,228,114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, 9,253,218,181,107,247,190,173, 35,218, 11, + 64, 11,148,204, 94,140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, 32,173, 86,251,205,214,173, 91,235, 23, 48, +190, 56,166, 31,138,120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191,254,122, 29,134, 97, 54, 85,179,220, 95, 31, + 50,100,200,214,248,248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237,142,203,237,219,183,243,198,142, 29,155,181, +105,211,166,144, 17, 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, 29,186,120,225,150,254,207,205,205, 93, 93, + 88, 88,120,233,222,189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147,179,202, 33, 96,169, 43,191,146,222,176,197, +218, 32, 8,130,226, 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152,186,119,239,142,189,123,247,250,247,232,209, +195,192,178, 44,119,236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183,155, 54,105,210,100, 98,108,108,172,154, 32, + 8,214, 21,167,253, 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, 84,160,105, 26, 6,131, 1, 6,131, 1, 28, +199,193,219,219, 27,106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, 77, 38,147,105,216,228,247,167,159, 90,245, +249, 92,175,240, 6, 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37,114,220, 75,210,226,163, 93, 7,180, 70,147, +233, 53, 23,189,229,114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, 4, 5, 65, 32, 16,192,108, 54,131, 97, 24, +136, 68, 34, 68,198,196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20,143, 51,103,109,192,145,115,242,141, 27, 55, +198, 54,107,214, 12,147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250,245, 48,155,205, 99, 1, 92, 7,176, 14, 37, + 67, 29,112, 18, 89,127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, 9,171,213,138,207, 63,255, 28,118,193,105, +175,215, 83,166, 76,169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, 37,103,182,111,223,238,255,205, 55,223,188, + 14, 32,214,153,147,101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, 47, 47, 55, 60, 57,126,252,120, 88,173, 20, + 4, 2,161,197,100, 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188,159,161, 40, 9, 97,224,232,248,110,113,244, +207, 66,197, 33, 21,170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, 49,123,237, 38,253,106,112,218, 5, 97, 77, + 56, 79,217,150, 42, 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, 84,148, 78,179,217,252,231, 71, 31,125,116, + 99,211,166, 77,189,175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75,163, 41,138,226, 66, 66, 66,132,157, 59,119, +150,245,239,223,223, 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135,205, 57,239, 2,130, 32,240, 97, 87, 45, 98, +123, 8, 96,177, 88, 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56,142,172, 70,185,251, 1,152,253,221,119,223, +133, 74, 36, 18, 98,215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118,239,222, 61,207, 54,122,145,254, 44, 62,239, + 60,231,255, 44,231,179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148,162,168, 95, 92,132,112,248, 4,192, 92, 7, + 43, 88, 85,230, 60, 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233,147,149,149,149,213,112,249,242,229, 97, 52, + 77, 91, 19, 18, 18,200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190,125,251, 28, 65, 16, 86, 55, 50,152,144,156, +156,220,169, 71,143, 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, 68, 74, 74, 10,254,248,227, 15,203,238,221, +187,211,139,138,138,170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, 3,253,255,213,244, 5, 73, 72, 72, 8, 96, + 52,226,206,195,108, 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130,231,151,223,238,221,235,221,115,198,140,125, +243,254,243,159, 32,100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44,189,120,227,198, 28,155,200,122,210, 81,225, +165, 0,150,178, 44, 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96, +203,179,110,197,178,163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235,227,227, 3,173, 86, 11,154,166,153,140,140, +140, 59, 62, 62, 62, 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, 11, 72,146,172,200,242, 1,165, 82,153,118, +230,204,153,198,111,189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, 48, 28,199,237,127,210,247,160, 75,151,157, +192,134,152,215, 0,188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, 3,254,226,116, 28,198,179, 11, 34,155, 21, +170,185, 44, 62,126, 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221,129,163,246,213,235,245, 96, 24,166, 50,107, +222,239,123,247,238, 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101,143, 30, 61, 60, 29, 15, 48, 26,141,236,225, +195,135,245,235,215,175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, 31, 30, 93,184,112,161,119,255,254,253,155, + 0, 40,245,207, 82,171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, 75,249, 0,230,141, 26, 53,106,233,182,109, +219,234, 76,152, 48, 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105,185,109,219,182,144, 9, 19, 38,100,163,196, +143, 44, 29, 60,120,240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38,147,137, 51, 24, 12,156, 78,167,227,224,250, + 43,240, 7, 51, 51, 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, 39,197,235,170,193,242,216,177, 99, 71,163, +208,208,208,207, 21, 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 23, 47, 14,229, 56, 78, 92,137, +138,174, 8, 66,145, 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192,192,192,131, 34,145,232, 29, 0,162, 42,148, +121, 69,144, 9,133,194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225,113, 74, 40, 20,126,132,202, 3,169, 86,202, + 41,145, 72, 62, 10, 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, 68,242, 56,156,143,211, 43,177, 11, 45, 3, +103, 3, 65, 16, 84,235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213,234,107,155, 85,146,179, 89, 91, 12,168, 56, +120,227,223,153,206,167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77,154, 52, 41,152, 51,103,142,102,219,182,109, +108,100,100,228,246,154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148,148,196,109,218,180,137,142,140,140, 44,112, +138, 12,255, 36,242, 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68,140, 41,134,179,205, 62, 60, 1,160, 79, 5, +101,239, 46,103,152, 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191,158, 4,167, 75,180,104,209,226, 30,231, 0, +139,197,194,169,213,106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, 63, 0,111, 3, 56, 28, 28, 28,124,187, 99, +199,142, 15, 59,117,234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218,150,165, 0,154, 84,193,217, 81,165, 82, 45, + 12, 11, 11, 59,212,184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45,194, 95,145,177,171, 91,231,123, 12, 29, 58, + 52, 77,167,211, 49, 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70,142, 28,153, 14, 32,250,159,240,188,243,156, + 79,133,243, 31,133,198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118,110,149, 5,193,113,156,128,227, 56, 15,142, +227,188, 57,142,243,229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254,251, 56, 39,219, 4,148,193,246,223, 25, 85, +237,127,174,239,103,104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239,127,116,224,192,129,143,218,181,107, 55, 53, + 52, 52,212,231,113,210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121,243,230, 95, 57,137,172, 39,153,119,137, 77, +196, 52,179, 45, 13,109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195,105,231, 59, 4,160,175,109, 57,100,219, 22, +246, 20, 56,203,161, 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181,186,215,162, 69,139,123, 77,155, 54,189, 23, + 17, 17,113,175,110,221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103,192,158,118,157,239, 30, 25, 25,121, 85, 38, +147,185,140, 13, 38, 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, 11,173,255, 33,240,149,240,217,227,148,162, +242,207,140, 84,181,159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145,212, 2,167, 35,159,189, 78, 69, 56,136,166, +167,193,201,215, 37,158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230,126, 30,207,197,104, 60,126, 0, 0, 32, 0, + 73, 68, 65, 84, 54,170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, 81, 91,109,103,119, 0,231,236,189,194,138, + 84,105,117,102, 19,212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31,199,105,199,138, 10,182,223,113, 90, +255,250, 25, 21, 94, 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, 78,158,179,166,152,248,140,138,172,110,246, + 21,126,232,144, 7, 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, 8,236,255, 71,141, 26, 53,158, 97,152,169, +246,117,129, 64,176,230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, 85, 93,199, 21,103,139, 38,202, 73,126,222, +138,247,138,138, 13, 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178,101,203,221,218, 78,231,248,241,227,155, 56, + 95,167,126,152,168,187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236,169,192, 31, 64,180,151, 76, 60,168,133, 74, +220,241,207,124,211,101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, 42,149,202, 49, 0, 90, 24, 12,134, 64,133, + 66,145, 11, 32, 65,163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, 91,125,120, 46, 21,245,220,217, 87, 21,250, + 68,192,196, 1, 82,130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247,105, 4, 11,199, 65, 76, 0,230,147,247, 33, +123,142,138, 74, 9, 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120,174,224, 60, 84, 88,186, 46,172, 64, 76,116, + 21, 11,137,175, 56,112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66,190,246,237, 9,227, 63, 7,137, 34,138,198, +187, 91,182,108,169,241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123,248, 99,159,174, 3, 22, 47,178, 60,200,139, +213,106,181,164, 84, 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56,139, 88,236,113,121,197,138, 21,217, 53, 77, +231, 7, 31,124, 16,108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, 88,124,246,240,199,138,110,209,139, 62, 7, +120,161,245, 20, 32,169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, 76, 22,235,160,179,233,186, 65,159, 94,201, +156,158,174,179,182, 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70,110,220,184, 81,220,176, 97, 67,200,100, 50, + 24,141,198,144,251,247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22,238,125, 8, 46,252,236,214,255, 3, 0,116, + 26, 51, 63, 28, 37, 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, 44,148,132, 80,112,213,234, 72,142,108, 91, +134, 65, 99, 63, 18, 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, 9, 14,194,195,219,150, 33,122,236, 71, 21, +126, 71,177,111, 99,130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12,231,160, 36, 6, 88, 57, 74,148,124,208,217, +229,241, 3,154, 10,114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, 76, 27, 80, 20, 83,210,182,138,133, 96, 14, +166,120,159,157, 61,123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212,106,181, 63,218,238, 91, 50,255,248,242,224, +241, 92, 11, 46,215, 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, 98,231,206,157, 40, 44, 44,132,143,143, 15, + 36, 98,177,104,229,210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169,169,230,117, 26, 59,159, 79,216, 62,165, 35, + 20,144, 34,137, 68, 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, 69,159,200,149, 74, 79,249,155,147,103,118, + 70, 73,252,159, 26,193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112,190,142, 88, 44,102,236, 47, 22,190,142, 61, + 21,204,222,248,238,216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, 80, 0, 1,129,230, 49, 39, 82,103, 1,248, +244,121,201,108,195,134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, 78,175,215,195,104, 52, 34, 52, 52, 20,103, +207,158, 21,207,153, 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, 86,253,240,240,112, 19, 0, 12,108,233,229, +188,175,158,125, 31, 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253,188, 41,189, 66,153, 10,182,155, 0, 40, 42, +227, 98, 89, 78,120,242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54,108,104,116,220,238,233,233, 89,209, 41, 65, + 58,157, 46,220,121,163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, 6,194, 29, 59,118, 0, 0,190,252,104,180, + 96,211,207,121, 66,161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68,255,109,219,182,245, 63,120,240,224,202,138, +132, 42, 15, 30, 60,158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, 94,127, 27,199,143,255,128,174, 93,187,150, +238,107,208,160, 1,134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167,176, 88,255,105,191,145, 95,205,127,152,173, +187,114,228,200, 17,116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68,153,119, 11, 4, 71,138,189,148, 30, 24, 21, +243, 14, 92, 93,103,226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, 30,141,130,253,250,180,108,214, 20,133,251, +215,226,143, 34, 19,142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135,168,103,182,158,122, 46,132, 86,112,112,112, +211,128,128,128, 50, 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73,196,198,198,138,207,157, 59, 55, 50, 56, 56, +248,180, 27,195,136, 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, 40, 20,156, 80, 44,213,118, 31, 55,223, 11, + 0, 72,161, 88,187,114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210,157, 52,155,205,102,206,145,211, 98, 49,151, +110, 95,188,120,177, 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5,144,138, 5,144,138, 5,144, 73, 68,240,170, +223, 14,210,194, 63, 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34,145,136,167, 77,155, 86,101, 58,199,143, 31, +207,169, 84, 42,171, 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136,160,144, 10,209,184, 65, 24,164,156,209,237, +180, 10, 4,101,189, 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221,121,161,197,131,199,115,129, 10,103, 24, 10, + 1,224,200,145, 35,221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24,222, 28, 55, 10, 12,195,150,126,231,139, 32, + 9, 76,126,163, 63, 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, 0,160, 81,189, 16,110,226,155,255, 1,195, +178,127, 13,148, 8,128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133,171,235, 52,109, 84,135,164,173, 38, 16,101, + 63,246,248,119,124,108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, 59, 5,198, 83, 25,250, 64, 82,149,170, 94, +245, 90, 7,153, 64,157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179,113,227,198,114, 34, 43, 39, 39,135,212,233, +116,176, 90,173,172, 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179,179,231,217, 53,143, 43, 78,155,223,213,140, + 91,183,110,213,155, 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, 9, 9, 89, 21, 21, 21,229,187, 96,193, 2, +107,255,254,253, 83, 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155,119, 71,206, 45,103,214,112, 0, 64, 16, 4, +162,162,162,210, 26, 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, 52, 9,245,182, 53, 34, 4, 32,247, 44,245, +196,139,138,138, 74,111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85,142, 83, 46,151, 83,175,191,254,250,195, 59, +119,238,184, 58, 30, 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, 18,128,158, 51,101,180, 80, 37, 3,164, 94, +254,102,141, 70, 3,165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221,246,236,217,115,142,127,222,121, 78,158,243, + 47,184,210, 34,207,160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, 8, 15,194,226,255, 27, 15,134, 97,193, 48, + 12,104,219, 47,195, 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174,119,125,122, 14, 89,218, 43,110,246,184, 83, + 12, 3,176, 44, 5,138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245,194,130, 17, 55,123, 28,156,175,179,253,187, + 61, 3,207, 28,138, 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, 82, 33, 39,148,193, 98,161,161,181,176, 22, + 0,122, 19,197, 90, 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134,101, 68,214,178,101,203,252,215,173, 91, 23, + 10, 0,195,134, 13,203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, 1, 0,222,179,157, 59, 3,192,186, 10,120, +245,225,225,225,166,128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, 96, 96,160,185,113,227,198,122,177, 88, 12, +146, 36, 97, 23,122,110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, 16, 9,201,242,205,155, 3, 39, 73,146, 46, +175, 87, 97, 29,146,201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, 67, 4,224, 44,199,113,184,126,253, 58, 82, + 82, 82, 32, 22,139, 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, 6,224, 38,255, 4,243,224, 81,138,179,207, +160,192,114,182,106, 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68,236,184, 16, 63, 20, 13,138,178, 2, 28, 87, + 43, 66,171,162,235, 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, 77, 81,181,114,247, 88,134, 2,203, 82,112, +117, 29,130, 32, 25, 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23,104, 19, 66,253,164, 18,228, 25,209,240,133, +102,130,223, 13, 20, 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201,160,215,235, 75, 45, 89,235,214,173, 11,181, + 88, 44, 36, 0, 8,133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63,142,227, 8,155,224, 89, 10, 96, 11, 42,137, +238, 47, 22,139, 75, 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44,118,185,221,121,120,173, 42,136, 29,133, 22, +184, 18,171,150,147,216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, 10, 28,174, 39,168,190, 43,166,213,106,133, + 78,167, 67, 81, 81, 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, 49, 15, 30,174,181,200, 51, 44,182, 92, 11, + 45,148,152,236, 8, 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, 23,112,213,140,122, 58,114,228,200,173, 33, + 33, 33, 29,236,235, 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152,126,101, 68, 86,137, 69,203, 82,225, 55, 65, + 10,139,245,159,246, 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161,198, 28, 70,146,191,162,144, 8, 97,134,191, +253,217,120,135,198,253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77,228,132,158,205, 21,164,246,252,199,227,254, +117,192, 81,204,249,250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151,183,138, 12,123,185, 59, 94,126,239, 43,156, +249,228, 99, 14, 40,132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, 5, 10,158,139,188, 42, 20,138, 92,131,193, + 16, 98, 52, 26,161,209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, 88, 2,202,106,193,241,237, 95, 84,201,105, + 15,225, 48,176,165, 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240,218,143,223,219,191,252, 93, 47, 0,184,113, +100,173,102, 84,236,154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153,205,102,147, 77,160,217,133, 31, 30, 60,120, + 80,215,108, 54, 27, 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169,169,169,117, 40,138, 50, 8,133, 66, 88, 44, + 22,183, 84, 17, 73,146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224,150,128,196,219,237, 60,115,110,116, 68,109, + 98,235,137, 69,144,230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213,253,200,145, 35,156, 99, 15,145,166, 40,155, +200,250, 75,244, 48, 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145,247,130, 5, 11,164,115,230,204, 49,143, 28, + 57,114, 57,203,178,173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107,215, 26,218,215, 41,138,130,151,151, 23,188, +188,188,208,180,113, 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, 40,138, 1,195,178,165,226,167, 80, 99, 14, + 59,116,250,122, 35,135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124,236, 90, 63,119,250,130,205,155,165,133, 76, +192,180, 81,175,189, 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201,177, 84,233,245, 64,130,131,179,143, 22,143, + 39,132,228, 34, 61, 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191,200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77, +212,115,148,221,132,228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, 97, 25, 66,161, 40, 76, 40, 18, 17,209,163, +166,178,217,217,153, 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, 66,163,100,232,208,149, 53,203, 49,132,131, + 87, 84, 84,148,175,125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142,179, 14,221,180, 22, 17, 35, 71,142,148,135, +135,135, 19, 0,240,235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254,143,107,223,117,155,211, 95,193, 1,197, 15, +128,226,212,114,150,172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97,236, 46, 15, 33, 13,100, 95,119,139, 43,166, + 13,168, 80, 79, 8,151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131,135, 91,112,210, 34,207, 20,186,217, 4, 98, +119,219,111,169,224, 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, 6, 34,194,140,149, 43, 87,226,253,247,223, + 7, 0,241,244,233,211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68,101,189,198,179, 33, 33, 33, 57, 28,199,137, + 72,146,236,178,118,237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12,195,194,106,181, 84,248,153, 91, 31,165,124, +193, 15,123,166,249,244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, 41, 63, 55, 3, 39,143, 31,196,134,245, 27, + 10, 65,112,183,193,129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205,177, 96,243,102,233,173,107, 89, 7,166,126, + 48, 43,114,248,168, 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11,243, 6,254,196,251,104, 61, 45,248,158, 60, +117,138, 24, 51,102, 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153,247,223,127,159,204,206,206,134, 70,171, 19, + 2,240,197,115, 96,214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36,161,209,104,208,163, 71,143, 60, 53, 27, 42, +155,248,206, 84,255,204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, 71, 27, 71,141,127,191,206,251,179,227, 54, +102, 93, 94,191,206,157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, 42,149, 74,198,141, 27,231,214,248,161,197, + 98,225, 22, 47, 94,108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204,114,185,156,163,168,170,253, 62, 73,146,160, +223, 90,176,131,166,105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176,176, 48,139, 66,161,224,164, 82,169,216,157, +116, 78,157, 58,149,243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, 64,184, 96,109,105,120, 7,169,151,151, 23, +180, 90,109,105, 90, 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206,189, 56, 90, 44,160,203,201,205, 11,244, 15, +170, 15,154,166,109, 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173,168,233,211,167, 31, 0, 80,101, 99,182,107, +215,174,249,211,167, 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99,198, 12, 44, 93,186, 20, 34,137, 12,190, 1, +117, 75,175, 99,191,110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, + 65, 73,214, 78, 30, 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229,144,161,115, 38, 76, 48,187, 97, 4, 36,111, + 93,203, 58, 48,245,253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, 8, 75,175, 67,177, 44, 72, 82,192,251,104, + 61, 37,145, 37,149, 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162,144,151,151,135, 3, 7, 14, 36,112, 28, 7, + 31, 31, 31, 28, 59,118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179,179,239,200,229,242, 93,179,102,205, 26, 53, +115,230, 76, 17,203,178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16,197,197, 26, 86,225,169,202,178,114, 2,133, + 72, 44, 1, 41, 16, 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22,139,113,117,207, 50, 77,247,113,243,149, 0, + 32,150,202, 11,251,244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, 58, 63,159,244,144,113,177, 2,133, 92,166, +143,138,138,122,104,231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209,105,145,145,145,122,129, 64,128,196,131, 75, + 52, 67,198,197,202,136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, 5,213,191,127,255, 71,118,127,177,212,212, +212, 58, 3, 6, 12,144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, + 69, 81, 20,112,139, 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74,221,168,117,214, 90,220, 84,171,162,214, 81, + 23, 42, 46, 16, 7, 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, 65, 91,107,127,121, 62,159,124,146,220,189, +247,220,123,251,185,239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, 6, 70, 70, 70,138, 9, 19, 38,188,123,254, +252,121,109,163, 14,171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, 45, 3, 12,248,111,162, 98, 30,173,170, 51, +195, 43,148,138,111,167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223,127,255,157, 9, 0, 35,141,216,154, 59,119, +110,141,101, 78,180, 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248,227,143,140,248, 87,137,242,177,211, 87, 20, + 84, 88, 15,104,208,197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166,101,150,220, 25, 59,109,105,217,221, 75, 5, +160,144,224,171, 0, 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157,219,130,206,172,193,129,154,197, 22, 77,120, +124, 59,119,129,149, 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246,122, 0,192,218, 12,103,124,191,218,208, 59, + 43, 79,180,221,112,158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228,230,230, 66,165, 42, 61, 34,114,185, 28, 66, +161, 16, 69, 69, 69,144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174,150,201,100,211, 63,247,237,126,251,246,237, +174,115,231,206,225,214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9,133, 92, 6,128,166,179,179,179, 41, 99, 83, + 75,129,173,131,243,187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222,225,251, 23, 47, 94,212,219,180,105,147, 76, + 59, 18,112,248,130,157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198,121, 93, 23,103,248, 43,111, 48,251,197,139, +103,205, 42,114,250, 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106,100,237,233,233,153, 92, 29,111,131, 6, 13, +196,124, 62, 95,214,164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, 57, 56, 56,200,154, 54,109, 90,172,175,211, +190,145,145, 17,173,177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195,127,223,168,145, 96,212,168, 81,252,121,243, +230,225,224,193,131,184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252,135, 18,235, 26, 96,192,255, 25,170,207,163, + 85, 17,135, 14,133,252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206,156, 57, 16,139,197, 86,149, 52,235, 1,117, +174,141,202, 68, 86, 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28,234, 86,213,250,134, 12, 25,242, 30, 39, 77, +144, 12,146, 36,138, 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, 60,221,185, 45, 72, 12,160,103, 69,177,133, +191,202,140,148,113,106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, 89, 58,113,117,165,226,108,245,138, 41, 38, + 36, 73,116,172,224,163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227,227, 67,106,139, 44,153, 76, 86,150,184, 83, +227, 44,158,150,150,134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85,206,233,115,221,118,213,219,183,111,119, 56, + 58, 58, 94, 91,190,124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, 33,211,136,174,125, 71,136,100, 52,147,151, + 42,200,108,114,243,226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, 84,228, 44,209,164,113,104,210,164,137, 72, + 91,168,212,173, 91, 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219,174, 47,167,218,255, 75, 84,211,254,212,136, +182,138,105, 35,140,141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81,135,101,156,234,244, 14,229,116, 90, 72, 72, + 72,143,144,144,144, 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84,127, 12,215,187,129,243,255,149,243,115, 70, + 87,252,229,155, 5,148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220,185,249, 98,177,216,106,212,168, 81,213, 46, +147,145,145,113,240,240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202,202,170,213, 86, 89,153, 27,173,185,117,126, +161, 85,215,126, 27,230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, 42,136,173, 95, 1, 12,170, 74,149,246,250, +114, 32,142, 30,218,169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90,154,114, 87,169,251, 49,207,224,163,245,207, +128,205,102,251, 45, 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, 62,125,138,177, 99,199,114,163,163,163,253, +228,114,249,141,255,194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25,177, 71,140,159,227, 92, 22,117,120, 98, 23, +164, 18, 49, 0, 48,117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46,231,106,166, 63,126,252,216, 85,147, 91, 75, + 34,145,232, 28,117,248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153,236,200,200, 72,103, 13,167, 84, 42,213, 41, +234,144,195,225,176,163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, 88,174,214,162,218,183,140, 32, 8,130, 54, + 12, 27, 26, 96,192,103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97,186,184,184,244, 26, 62,124,120, 57,145,229, +239,239,175, 58,125,250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194,123,111,144, 32, 73,242,105,231,182, 77, 65, +146,228,211,165, 19, 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, 75, 51, 0, 54,246,117, 16, 48,238, 91, 4, +140,251,214, 10, 64, 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, + 19, 88, 69, 69, 69, 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, 4,241,159,246,163,147,203,229,202, 69, 43, + 55, 29,102, 48,217, 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84,226,123, 53,115,230,204, 74,167,127, 42,206, + 37, 75,150, 84, 26, 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, 14,117,191,125, 25, 96,128, 1,255, 49, 84, + 26,186, 87, 43,161, 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114,160,124,247,238,221, 74, 75, 75,203, 41, 34, +145,232,143, 65,131, 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104,133, 95,255,141,243, 10,138,165,193, 21,231, + 85,180, 60,105,196,214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, 85, 37,168,170,138, 86, 20, 22,138, 87,250, +245,223, 56, 39,191, 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98,202,218,214,171,194,194, 66,148,148,148, 64, + 93,146, 6, 0, 80, 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230,171,173, 85, 0, 48, 63,241,230, 14,237,115, +251,153,246,188,106,172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, 10, 68, 87,135, 76, 61,249, 50, 1,128,205, + 98,100, 85, 85, 60,154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184,178, 13, 48,224,243,125,255,255, 84, 43,238, + 97,224, 52,112, 26, 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13,156,255, 54,206,202, 48,249, 51, 17, 90,116, + 37, 31, 0,181,180,104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192,128, 15,199,123,197,164,181,103, 84,165, 74, +245,137, 38,168,141,178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,255,142,179, 38,110,237,229, 39, 3,216,247, +153,136,173, 79, 18,208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,172, 45, 12, 67,135, 6, 24, 96,128, 1, + 6, 24, 96,128, 1,255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, 59,131,144,114, 54,240,191,182,137,254,254, +254, 12,125,218, 39, 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, 43,130,107, 58, 17,109, 27,180, 26,109,204, + 51,158, 46,147,201,234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27,243, 7, 15, 30,240,125,124,124,210, 1, 20, +105,189, 41, 24, 96,128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138,142,129, 48,238, 80,185,118, 22, 30,227, 64, + 18,205,180,166,136, 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108,216, 48, 25, 64, 65,197,181, 87, 50,207,112, +157, 27,240, 57,163, 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, 12,104,140, 4,129,104, 36,134, 14,174, 21, +143,219, 55,117, 64, 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69,211,163,241,230,228, 19,189,249,234,251, 79, + 67,213,229, 44, 86, 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, 52,108, 61,104, 1,202,103,112,174, 45, 56, + 0,124, 73,146,108,102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249,181,228, 36, 1, 76, 48, 53, 49,233,227,106, +198,105,245, 46, 71,152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150,227,190, 57, 35,124,198, 6,205,234, 1, 75, +191,141, 11, 74,128,234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214,180,142,157, 41, 4, 57, 34,155,159, 14,134, +108, 10, 9, 57,218,111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, 48, 24,137,203,150, 45,251,117,197,138, 21, + 52, 81,117,165,114,190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, 40,159,101,188, 54,248, 44, 56,235,212,169, +227, 68, 81,212, 68, 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, 83,222,117,104,154,222, 75, 16,196,100,154, +166,247,233,241, 61, 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, 28,254,174,237,249, 39,215,245, 15,189,127, + 79,186,114,231, 69, 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75,249,118,158,170, 42,238,129, 4, 77,211, 88, +185,114, 37,177,106,213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169,111, 42,206,211,186,206, 13, 98,203,128,207, + 21,250, 21,149,174, 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25,221,159,160, 25, 60,140,152,180, 80,169, 55, +151,235, 88, 46, 24,226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, 22, 0,201,194,222,139, 73, 54,193, 65,203, +118, 3,240,169, 69, 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, 40,150, 80,232,245,245,152, 21, 0,126,210, +243,174, 68, 90, 26, 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, 61,123,182,137,167,167,167, 37,143,199,227, + 72, 36, 18,135,132,132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89,183,161,179,211,201,224,185, 19,218, 53,111, +224, 10,150,172, 24,148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, 71, 45, 74, 38,228,228,228, 16, 0, 96,107, +107, 75,151, 23, 89,237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14,235,122, 45, 70,125,243,205, 64,191,181, 63, +204, 52, 77,203,149, 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118,255, 26, 50,121,231,134,133,251, 85, 42,213, + 23, 0,218,168, 84,170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79,232,163, 12, 6,227,106,183,110,221,234, 79, +156, 56,145,104,221,186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, 42,213, 51, 0, 47,161, 46,123,162, 3, 88, + 0, 26, 51, 24, 12,239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119,236,216,209,187,127,255,254, 68,227,198,141, + 17, 31, 31,223,250,210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, 5, 2,129,248, 31,127,142, 19,196,100, 0, + 78,106,157,188, 82,135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, 67, 16,132,253,223,185, 61,122,174, 43,150, + 32, 8,107,117, 91, 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88,253, 34,165,179,214, 5, 80, 93, 34,104, 35, + 0,232,213,169, 89, 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93,185, 27, 99, 93,206, 10, 86,241, 45,118,229, + 74, 98,197,138, 21, 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, 41,170,108,222,138, 21, 43,182, 87,115,157, + 27, 96,192,231, 2, 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27,123,255, 89, 19,135, 26,121,122, 52,132, 4, +166, 72,202, 81,225, 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40,112,126, 19,223,118,158,120,158,166,192,227, + 52, 21, 74, 18, 21, 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231,165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, + 90,146, 81,178, 87,171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187,187,251,168, 85,171, 86, 89,102,100,100,152, + 68, 70, 70,130,203,229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107,214, 87,114,185, 60, 9, 64,142,142,156, 30, +125,219,120,223,219, 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98,138,250, 70, 70,184,244, 77, 67,107,255,176, +196,211, 15, 51, 69, 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230,237, 89, 44,150, 3,207,170, 30,149,206,108, +147,155, 77, 52,120,155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87,176,237,216,253, 95, 90, 33, 99,121,117,121, +179,141,141, 77,167,204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198,248,154, 97,238,151, 22, 8, 24, 49,204,228, +212,111,161, 83, 0,236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, 96,161, 76, 38, 35,217,108, 54,193,227,241, + 70,173, 93,187, 86, 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, 69, 13,110,220,184,209, 32, 36, 36, 68, 25, + 17, 17, 17, 11,224,108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238,221,155,187,116,233, 66,113,185,127,165,159, +170, 13, 39, 0, 88, 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213,171,119,165, 93,187,118,221,122,245,234,197, +236,212,169, 19,156,156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, 30, 30,190,251,202,149, 43, 59,158, 60,121, +114, 35, 41, 41,169,215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194,116,239,222,189,246,154,154,140, 10,133, 2, + 42,149,170,236, 91,243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246,145, 72,235,173, 89,243,161, 42,251,230,112, + 56,182,154,132,189, 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174,209,194,242, 13, 74,223,159, 69, 34, 81,178, + 64,106, 25, 3,160, 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, 61,100,200,144,138,101,175,188,213,223, 34, +130, 32,110,146, 36,121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128,157,214, 36, 25, 74, 71,133,160,126, 78, 18, + 0,108, 42, 76,215,110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241,168,150, 93,188,133, 42,252,180,152, 0, 16, + 22, 22, 70,247,235,215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, 59,130,228, 89,225, 85, 22, 16,241,142, 6, +147, 84,128, 4,141, 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239,188, 61, 61, 54, 30, 8,154,205,136,205, 98, +226, 80,120, 9,228,146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, 51,128, 88,161, 51,231,123, 7, 6, 80, 81, +234,119, 64, 10,168, 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144,139,226,116, 88,125, 85,156, 94,141, 26, 53, + 26,241,195, 15, 63, 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, 36,115, 62,159,159, 55,109,218,180, 70, 78, + 78, 78,230,131, 6, 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251,150, 17, 7,119,108, 53,201, 61, 21, 12, 89, +194, 83, 92, 20,136,112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, 59, 57,153,246, 61,147,176, 81, 65, 81, 1, +213,113,222,187,119,143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, 75,102,104, 68,174,197,194,221, 17, 78, 37, + 82, 57, 99, 68,183,122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, 81, 81, 85,115, 42,228,242,250,206,246,230, +136, 78, 18,227,208,237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53,133, 82,174,104, 60,100,200,144,195,234,183, +246, 71, 0,190, 30, 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242,234, 41, 86, 86, 86,232,218,181, 43, 60, 60, + 60,152, 93,186,116,241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51,178,177,177,177, 50, 51, 51,203,173,236, 65, +165, 15, 39, 0, 88, 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, 70,140, 24,241,214,220,220,188,156,245,215, +196,196, 4,141, 26, 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, 72, 72, 8, 8,130, 40,123,104,191,103, 44, +118,117,133,163,163, 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71,122,224, 90, 37, 22,173,149, 21,142, 83,149, +195,111,149,181,215,225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143,199, 43,179, 66, 85,178,174,247, 56, 73,146, +196,210,165, 75, 65, 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51,133, 32, 8,146,205,102, 47,100, 50,153, 19, +165, 82,169, 51,143,199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, 33,178, 42,229, 52, 49, 49,113,125,245,234, +149,123, 85, 29,145, 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205,205,173, 49, 0, 77,137,182,219, 52, 77,119, +209,250,175,141,219, 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255,167,206, 79, 3,231,191,143,179, 6, 45, 98, + 71, 16, 68,152,113, 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243,127,209,162, 69, 75,214,175, 95,255,130, 32, +136, 48,237,233,218,237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195,134, 13,235, 52,109,255, 14,145,168,143, 69, +203, 60, 91, 98,130,240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, 4, 20, 21, 22,220, 65,226,233, 68,221, 44, + 89,254,157, 90,180,240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185,137, 71, 55,127,207, 80, 41, 85,191,131,160, + 31, 3,100, 36,222, 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57,177,245,201,208,188, 73,147, 38,195,150, 45, + 91,102, 27, 21, 21,197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, 39, 39, 55,217,190,125, 59, 39, 40, 40,200, +203,203,203,139,127,242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, 57,188,216,147,187,192,137,141,196,210,167, + 57,170, 63, 5, 37, 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122,102,108, 52,180,228,248,197,229, 73,170,181, +100, 25, 27, 27,111, 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, 35,156, 46,175,239, 68,116,106,102,131,172, + 2, 41,102,239,138,198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, 21, 58,216,152,242, 48,186,179, 41,186,175, + 77,135,127, 27, 46,184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90,100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, + 74, 10,223,199,199, 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109,219,104, 47, 47,175, 98, 43, 43, 43,136,197, + 98, 72,165, 82,176,217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210,235, 64, 21, 23, 23,195,204,204, 12, 20, 69, +125, 48,167, 74,165, 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115,231,230, 54,109,218,244,241,176, 97,195, 94, +219,219,219, 75,159, 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, 38,147,129,201,100, 66, 44, 22,131,203,229, +130,201,100, 66,169, 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108,200,100,178, 79,241, 6,250,158,133,170,186, +225,183,218, 88,180,180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70,150,150,150, 11, 1, 8,106, 90, 23, 65, 16, + 96, 48, 24, 96,179,217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, 36, 36,224,248,241,227,120,244,232, 17, 88, + 44, 86, 89,123,157,199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, 7, 94,189,122,245, 16, 27, 27, 91,119,195, +134, 13, 11,175, 93,187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75,135, 11,251, 74,165, 82,196,198,198,234,179, +204,123,104,216,176, 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, 46,161,212, 47, 81, 27, 34,154,166,191, 36, + 8,162, 16,192, 51,146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197,255, 4, 65,132,173, 95,191,190, 95,101,226, +170,146,107,179,220,244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239,167,182,114,253, 37,180,194,194,194,170, 87, + 32, 20, 6,133,157, 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, 3, 64,255,162, 83, 87,248,253,140, 72, 6, +243,151, 61,235,102,146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33,128,158,139,196,208,194, 15, 62, 18,245, 6, +121,217,219,216, 90, 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, 71, 68, 68,216, 74, 36, 18,222,157, 59,119, + 74, 66, 66, 66, 50,228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9,131,201,100,114,228,114,121,117,190, 11,173, +230, 79, 28,115,103,227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55,179,196, 95, 3,208, 40,250,235, 81, 57,226, + 52, 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116,196,200,145, 35,249, 26,145, 5, 0, 57, 69, + 10,102,137, 84,193,232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, + 4,123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126, +202,231,243,195, 0,124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, + 42, 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, + 45, 90,232,117,176,114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, 43,107, 27,209,157,240,219,155,106,195, 73, + 81, 20, 1, 0,158,158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89,179,230,157,171,171,235, 81,177, 88, 92,206, +114,160,171,208,210,136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, 38,138,138, 74,131, 54, 45, 45, 45, 63,137, +208,170,194, 66,245,209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234,184, 45, 80, 42,149, 96,179,217,240,241,241, + 65,112,112, 48, 30, 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, 36, 94,188,120,161,111, 23,169,136,136,136, +133, 95,127,253,181,231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130,131,131,185,147, 39, 79,110,120,227,198,141, +229, 40, 13,126,169, 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, 90, 92,190,124,217,190, 76,128, 85,140, 72, +124, 31, 5,203,151, 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191,208,208, 80, 2, 0,252,253,253,105,130, 32, + 52, 15,164,103,167, 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74,139, 76,214, 92,147, 85, 9, 40,125,132,154, +182,197, 75,131,197,139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35,182,202, 30,166, 85, 14, 25,150,217,190, 72, +190,163,189,141,245,162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62,127, 84, 2, 30, 17,170, 83,119,184,156,160, + 53, 63,204,105, 16,157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, 53,254,227,136,172,161,222,142, 14,246,183, +142,237, 93, 77, 62,122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179,179, 11,184,127,255,190, 29,151,203,229,189, +122,245,138, 58,117,234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148,166,166,166, 16,137, 68,114,185, 92, 46,169, + 70,100, 57,251,181,106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, 69,145, 5, 0, 29,187,185,215,169, 67,240, +204, 64, 3, 72, 42,148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186,120,182,102, 44,165, 49,151,165,186, 27,147, + 67, 69,222, 56,133,240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, 99,246,252,126, 46,236,234,119,203,130,138, + 75, 68, 69,112,115, 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119,106,135, 83,167, 78,109, 64,169, 51, 56, 0, +188, 60,117,234,212,152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106,179,102,205,132, 30, 30, 30,194,220,220, 92, +196,196,196, 32, 63, 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, 23, 72,200,207,207, 51,165,105, 26,249,121, +185, 38, 63,252,240,131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, 26,187,164,164,196,242,221,187,119,230,218, +243,116,229,148,201,100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195,235,215,175,203, 68,150,122,253,159,204,162, +165,249,205,227,241, 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, 46, 90,253, 91, 95,113, 88,227,246,232,120, +220,193,102,179, 49, 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, 40, 41, 41, 65,207,158, 61,193,225,112,244, +181,104,209,108, 54,123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67,165, 82, 97,238,220,185, 70, 92, 46,119,164, +190,166,123,129, 64,208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, 69,104,104, 40,225,239,239, 79,251,251,251, +211, 26,193,101,128, 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, 80, 7,136,212, 2, 26,145,213, 85, 75,120, + 17, 26, 11,151,110, 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, 2,169, 41, 73,200, 22, 36,163, 77, 7, 63, +196, 62,143, 6,165, 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222,181,131, 23,130,194,138,241, 42,242, 50, 10, +178, 5, 59,145,116,234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149,229,165, 24, 18, 41, 41, 73, 56,251,235, 86, + 90, 33,151, 22,160,124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, 60,178,132,167,231, 32, 69, 6,128,240,173, + 91,183,118,111,223,190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154,185,187,187,247, 13, 14, 14,118, 72, 73, 73, +193,181,107,215, 50, 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, 53,104,130,237, 75,190, 83,134, 62,138, 25, + 0,224,146, 86, 27,143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38,222, 10,165,127, 86, 69,152,147,147, 67,148, +148,148,184, 90, 90, 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, 73, 34, 87,129,203, 34,233,217, 3, 93,211, + 31,158, 13,181,201,145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, 14, 11,187, 48, 93, 46,149,120, 53,105,210, +152,126, 28,113,227,233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24,229, 4,186,182,133, 72, 95, 75,145, 62,208, +149,179,162,208,210, 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50,193,248,119,108,191, 62, 22, 42,237, 33, 67, +141, 63,157, 68, 34,177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, 79,255, 72,146, 4, 69, 81, 96,179,217,104, +209,162, 5,194,194,194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, 54, 54,101, 66,139, 36,117,142,210,161,165, + 82,105,221,186,117,235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79,136, 68,162, 58,248,148,182,123, 3, 12,248, +123,239, 43, 97,218, 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, 84,102,225,250, 64,193, 85,206,186,197,212, + 86,144,149, 42, 73,181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, 81,164,144,203,242, 41, 74,225,250, 54, 62, + 26, 32,241,139, 78, 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, 31, 95, 78,130,152,179,248,163,137, 44, 7, +219, 27,135,119,173,180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, 32, 49,244,241,135, 80,143,100,179, 7,178, + 93,222,245,155,232,155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250,200, 48,109,100,103,103,159,221,186,117, 43, +241,227,143, 63,118,149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111,159,117, 74, 74, 10,235,206,157, 59,162, 27, + 55,110,208, 0,206,215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, 13, 0,240,135,214,108,207,126,173,155,221, + 61,184,126,185,153,226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, 80, 64, 40, 20, 66, 81,156,171,108,195, 23, + 9, 3,135,216, 75, 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, 54, 54,214,107, 95,238, 90, 63, 63, 4, 64, +200,144, 33, 67, 14, 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8,195,170,176, 10,192,220,142, 29, 59, 18, 62, + 62, 62, 15,182,109,219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178,138,253, 75,212,150, 83,219,162, 85,147,208, +250,148, 22,173,202, 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253,211,248,201,177,217,108, 68, 71, 71,195,197, +197, 5,114,185, 28,102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177,160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, + 99, 59, 59, 59,168, 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197,231,243, 47,171,163, 14,203,193,209,209,209, +226, 99,236, 87,109, 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, 43, 88,162,100, 90,255,179, 81,154,195,173, +159,250, 55, 42,249, 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38,104, 82, 60,148,139,112, 97,214,100,201,178, +183,182,186,113, 96,123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, 23,160,104, 65,196,181,211,161, 32, 80,130, +183,161,183,116,187, 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, 33,100,133,148,124,240,209,113, 27,212,194, +222,218,246,198,161,224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81,210, 29,137,167, 35,107, 75, 59, 1,176, 98, +152,240,118, 15,246,107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243,101, 84,201,239,225, 60,225, 73,170,152,154, +158,118, 95, 55, 7,186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52,116,247,238,221,118,169,169,169,188,168,168, + 40,241,222,189,123,179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124,190,156,230,243,199, 7, 68, 4,140,155,200, + 75,188, 22, 2,171,196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182,182,182,116, 78, 78, 78,114, 65, 65, 65, 99, + 19, 19, 19,228,230,230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, 40,243,192, 98,177,144,149,162,128, 74,165, +202,208,213,154, 5,192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, 78,115, 62, 52, 30, 50,100,200, 97,173,168, + 67,109,103,120, 77,122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212,202,196, 10,151,203,213,219, 81,186,170, 40, +198,218,112, 86,101,209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, 12, 6, 40,138,130, 14, 65, 21,127,171,104, +209,142, 14,172,141,200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, 11, 54,155,141,115,231,206, 97,220,184,113, + 80,169, 84, 48, 54, 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232,163, 95, 21, 10,197,145,245,235,215, 47,217, +179,103,143, 17, 77,211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36,180, 52, 25,223, 41, 58,198,196, 68, 89,109, +212, 97,101,203, 84,225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21,218,149, 75,253, 96, 72,239, 96,128, 14,247, +147, 71,255,226,238,105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242,198,254,237,129,230, 71, 31, 17, 72,124,251, + 22, 55,127,219, 81, 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, 58,191, 61, 17, 68, 43, 39,123, 75,228,137, + 40, 20,230,188, 3,104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, 72, 36, 38, 38,226,234,201, 29, 66,165, 82, +242,197,135,136,172,145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, 54,239,226,112,126,236, 80,172, 62,254, 13, +204,236, 24,104,215,215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212,218, 34,171, 85,253,250,245,135,222,191,127, +223,214,219,219,155, 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, 78,109,145,213,106,209,228,177, 17, 27,247, + 31,230,145,108, 14,130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, 82, 72,165,210,107,193,193,193, 82,146, 36, +145,151,151,135,156,156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245,235,178,194,194,194,251,186,118,240,222,189, +123,245,211,210,210, 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, 4,130,174, 0, 30,105,166,167,166,166,214, +123,240,224, 1,191, 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, 7, 40,149, 74,156, 56,113, 2, 0,242,170, +227, 96,179, 57, 2,146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15,167, 26,169, 95,126,249,165, 36, 50, 50,178, + 82,139, 86,109, 56,105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, + 48,101,202, 20,208, 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133,208,123,126, 90,186,250, 64,105,134, 6,105, +154,134, 70,112, 85,152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177,180, 59,244,222, 10,223,251,244,120, 40,148, + 9,173,216,216, 88, 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, 7, 17, 19, 19, 3, 14,135, 3,205,190,208, + 85,191,249,248,248,108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24,209,209,209,232,221,187,183,228,238,221,187, + 9, 98,177,120, 21,116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170,244, 83,213, 50, 21,145,144,144,224,170, 82, +169, 26,211, 52,237, 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, 52,237,171, 82,169, 26, 37, 36, 36,184, 26, +228,132, 1,159, 41,110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118,172, 52, 63,242,144, 68, 74,114, 2, 30, 95, +220, 45, 84, 81,138, 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26,206, 92,152,147, 2,208,140,218, 8,173,114, +156,160,200,224,131, 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149,210,238,120, 27, 26, 85, 27,206,145,108,246, + 50, 22,131, 88,218,171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196,102,231, 37,228, 75, 39,222, 37,228, 72,126, + 35, 61,208,119,146,181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18,201,105, 57,189, 94,112,183,172, 44, 69,249, +126,190, 15, 71, 51, 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246,238,221,155, 43, 22,139, 47, 2,136,208,105, +219,223,135,115, 91,119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224,171,206, 68, 60, 31,140,170, 19, 96,150,227, +228,114,185,199,142, 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138,139,139,203,156,171,237,236,236, 16, 27, 27, + 75, 37, 38, 38,166,115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135,209,226, 81, 33,186, 80,171,105, 99,129, 64, +208,150,207,231,223, 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196,163,232,232,232,226, 62,125,250,192,200,200, + 8, 34,145, 8,117,235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, 86, 37,226,181, 92, 63, 37, 18,113, 93, 0, +164,184,164,164,197,152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173,173,245,226, 4,128,188,188,188,166,127,252, +241,199,156,232,232,232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82,169,200,218,114,230,231,231, 91, 68, 69, 69, +109,234,220,185,243,140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, 25, 25,161,176,176, 16,171, 86,173,194,157, + 59,119,148, 52, 77,239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85,165,100,168,162,253,223,222,207, 10, 62, 93, + 80,167,112, 88, 88, 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246,238,221,251, 94, 30, 45, 77,250,135, 42,184, + 43,219,118,250,230,205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, 68, 34,103, 19, 19,147,116,133, 66,241,139, + 88, 44, 94,139, 82,127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128,101,181,156, 21,210, 59,148, 75,225, 80, 97, +153,114,169, 31, 42, 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, 44,125, 15,173, 38,179, 88, 98,133,119,120, + 2,241, 33, 34,235,125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204,151, 72, 58,145,245, 65,155,165,238,231,237, + 4, 2, 73,137,111,240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75,161,108,194,194, 26, 79,231,140, 67,122,129, + 8,151,222,230,159,164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50,118,251, 14,178, 24,106, 91,135,133, 45,243, +127, 1,111,145, 13,187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239,225,235,235,203, 29, 50,100, 72,101, 14,242, +250, 34,245,209,171, 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44,226,121,197, 40,196,106,225,225,225,161,186, +119,239,222,188, 41, 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5,151,203,197,155, 55,111, 16, 30, 30, 46,123, +251,246,109,122, 73, 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213,235, 32,212,195,133,109,160,142, 46,212, 52, + 82, 39, 45,109, 3,192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76,154,166, 51, 66, 66, 66, 58,156, 61,123,182, +195,220,185,115,217,125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, 11, 87, 93, 75,229, 80, 0,162,148, 74,229, +243,160,160,160, 14, 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37,128, 77,153,153,153, 63,133,132,132, 44,191, +118,237,218,248, 49, 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, 80, 40,156, 99,107,107,187,244,226,197,139, +191, 92,185,114,229,235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, 74,165, 82,157,101,177, 88, 99,114,114,114, + 68,159,226,174,163, 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, 74,160,217, 14, 63, 63,191, 50, 43,163,198, + 10,167,221,134, 32, 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, 89,225, 25,248, 43,115,188,174,140,205, 4, + 82,203, 24, 72, 17, 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117,197,138, 21, 91, 43,166,112,208,110, 84, 49, +245,195,202,149, 43, 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, 75,182,175, 91,176, 66,169,144, 9,105,200, +253,241,230,116,244,135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46,252,224,222,255, 77,253, 36, 44,172, 81,180, +106, 26,126,123,145, 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, 55, 36,249, 39,172,156, 88,103,230,124, 97, + 67, 92,200, 27,173,247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146,146,146,138, 14,242,181,197,130,254, 51, 23, + 49,218, 53,114,157,249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197,197, 5, 92,185,114,101,196,237,219,183,123, +136, 68, 34, 87,130, 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, 0,192,138, 21, 43,232,149, 43, 87, 18,113, +113,113, 52,131,193,248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, 48, 80,151, 7,226,237,226,226,226,200, 85, +171, 86,117, 89,181,106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217,108, 78, 58, 65, 16,206,108, 14, 87,116,239, +222,189,107, 31,200, 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19,147,182, 49, 49, 49,127,126, 8,167, 90, 68, + 13,182,182,182,118, 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, 34, 20, 10, 63,105, 81,105,117,129,232,149, +122,212, 58,212,137,247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, 69,225, 85,209,122,165,249,175, 78,229,162, +203, 62,213, 39,138,178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, 6, 32,174,233, 58, 39, 73,242, 44,128,151, + 36, 73,190,174, 24,232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, 59, 91, 32, 9, 4,214,214,147,246, 31, 52, + 87,126,156,126, 6,176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, 65,199,142, 88, 75, 19,152,171,222,153,235, + 50,238, 98, 77, 45,182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78,127,127,127, 70, 21, 15,243,114, 69,165,171, + 66,104,104, 89, 22,255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128,242, 78,255,149, 77,167,245,220,118, 6, 0, +213, 71,222,159,159, 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, 87,114, 90, 54,117, 1,129, 73,208,206, 29, + 84,173, 69, 75, 75,160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33,193,181, 97,195,134,201, 0, 10, 42,244,163, +178,121,180,225, 24,253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, + 3,103,109,133,214,103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, 32,170, 81,165,250,152, 4,107,163,108,175, + 25, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249,207,117,232,240, 31,235,183,193,172,106,224, + 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, 0, 3, 12, 48,192,128,207, 6, 61,220,193, +103,170, 64,254,241, 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, 15,224, 43,173,255, 23,160,142,140, 55, 8, +173,207, 23,141, 0, 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, 80,132,210, 58,129,175,245, 89, 25, 73,146, +235,187,116,233, 50,253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, + 51,215, 43,149,202, 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, 36,100,102,102,174, 81, 42,149, 55, 63,128, +211,204,193,193,161, 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, 91,201, 63, 48,150, 93, 40, 82,178, 0,192, +220,132,169, 8, 13,108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201,229,208,219, 13,107,105, 37,190, 87, 1, 68, +175,250,216,113, 57, 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, 75, 57,122,185, 97,211,229, 55,168, 54,210, + 94, 23, 78, 13,246, 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, 21,150, 13, 29, 86, 43,180,134,185,131,175, + 98,130, 25, 26, 11, 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192,206,125, 46,156,255, 54, 44,167,105, 58,160, +220,201, 90, 73, 30,162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130,145,145,145, 18,192, 88, 61,214,101, 63,108, +216,176, 69, 7, 14, 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, 86, 86,254,150,150,150,193,251,247,239,183, +107,223,190, 3,193,225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102,101,101, 77,212,119,227,173,173,173, 71, 90, + 90, 90,110,217,187,119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153,211,226,221,187,119,199, 51, 51, 51,103,232, +203,105, 99, 99,227,110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67,116,116,180,233,212,169, 83, 29,211,210,210, + 98, 51, 51, 51,111,233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93,208,126, 75,196,249,103, 55,206,247,175,105, +154,127, 96,236,239, 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252,188,140, 4,128, 94,227, 87,207, 26,233,132, +205, 71,210,171,174, 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, 0,114, 14,147, 57,171,157,143,143,237,183, +119,239, 38,200,129, 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89,106, 49, 33,250, 52,196,241,171,137,140,240, + 47,190,248,162,225,132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, 93,184,112, 33, 65,165, 82, 69, 2,120, 1, +221,179, 90,179, 0,120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, 37, 58,125, 47,225,233,245,235,215,207, 49, +153, 76,141, 69,171,157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, 65,146, 36, 11, 64,125,188, 95, 82,163, 42, + 56, 27, 27, 27,239,142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, 3,135, 66,172,231,205,158, 49,248,230,205, +155,225, 69, 69, 69,191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, 12,138,162, 80, 84, 84, 4, 71, 71, 71,236, +223,191,223,114,222,188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11,139,110,207,159, 63, 55,210, 20,148,150,201, +100,112,118,118,198,209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222,234, 74, 88, 40, 82,178,148,114,105,208,225, + 93,129, 46, 0, 48,102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, 66,203,128,127, 26,173,109,109,109, 67,115, +114,114,110, 1,152,136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, 6, 35, 67, 36, 18, 61, 5,240,170,182,132, + 54,110,126,253,193, 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251,234,230,249, 15,226,228, 24,141, 7,232, 22, + 36, 64, 17, 36,249,148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216,205, 81,247,194,152, 31,131,111,120, 3,240, + 73, 10,228,209, 36,221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220,216,177,141,110,221,185, 67,116,213,167, 90, +193,231,137, 42, 29,223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, 6, 49, 98,246,250,128,131,187, 54,145, 61, +251, 15, 41, 27, 62,241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108,116,244,232, 81,101, 68, 68,196, 83, 0, 39, +170, 90, 89,111, 55,136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, 46, 23, 31,194, 9, 0, 61, 27,146,111, 89, +214, 13,158,142,152,185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106,109,229,226,226,210, 73,169, 84,242, 0,128, +201,100, 74, 82, 82, 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, 21, 3, 6, 12, 88,250,237,183,223,162,110, +221,186,152, 53,107, 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123,123,251,229,187,119,239,182,102,114, 76,208, +106, 97, 34, 4, 5, 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126,188, 70, 31,161,101,111,111,191,106,255,254, +253,214,198,198,198,160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12,243,216,216,216,141,250, 8, 45, 7, 7,135, + 78, 59,119,238, 52,226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, 37,180, 76, 38,147,207,156, 57,147,251,226, +197, 11, 63,129, 64,240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, 54,175, 95,191,126,162, 84, 42, 79, 3, 56, +253, 17, 94,166,186, 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, 56,156,190,119,239,158,203,238,221,187,199, +110,222,188,249, 34,128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38, +154,159, 60,121,210, 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96,154, 31,239,208,177, 83,231,161,131,191, 49, +115,176,177,128, 88,166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, 11,135,231,190,186, 87,172, 47,103,183,110, +221, 59,247,232,222,221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239,203,100, 26,221,166, 8,197,168,172,231, 87, + 75, 62,229,177,153, 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, 77,131,164,177,163,162, 53,107, 22,192,220, + 81, 90,246, 75, 47, 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, 65,130,232, 93,195, 48,165, 6,189, 0,174, +165,181,181,207,212,201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128,125,155, 68,189,179, 41,181, 23,219,255, 82, +107, 86,165, 67,135, 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134,245,235,215, 51, 1,180,174, 48,187,124,145, + 85,128, 27,182,103, 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, 64, 83,245, 59,214,165,191,124,244,235,146, +177,215,142,110,241, 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, 82,221, 56, 63, 28,255, 40,167,163,163, 99, + 19, 95, 95,223,214,215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110,217,161, 67,135,214,142,142,142, 77,202,118, + 21, 77,235,211,207,213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86,232,214,173, 27, 46, 94,188,200,220,188,121, +243, 58, 0, 75,107,234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88,223, 4,209,155, 60, 80, 36,161,145, 39, 44, +132, 88, 44,129,177,177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202,196, 85, 81, 81,233,167,184, 88, 4,153, 76, + 14, 46,151,107, 6,128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, 55,188,130,130, 2, 66, 40, 20, 66, 38,147, +129,197, 98,177, 81,179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, + 84,233, 50,205,220,132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36,121, 24,128,227, 7,114,182, 5,176,206,200, +200,232,154,135,135, 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241,245,117,235,214,157,122,242,228,201,208, 63, +255,252,179,254,179,103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189,175,205,250,245,235, 31,124,240,224, 65,219, +142, 29, 59, 30, 0,192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, 86,173, 90,185,240,120, 60,244,232,209, 3, + 0,252, 62,132,147,205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215,175, 95,199,195,135, 15,161, 84, 42, 49,109, +218, 52,238,152, 49, 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, 51,127,214, 36,179,167,239,228, 56,116,237, + 29,126,143, 16, 32,171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, 95,206, 69, 11, 23,246,153, 60, 62,192, 44, + 70, 64,225,220,253, 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, 21, 19,172, 95, 62,245, 49,218, 15,180,159, + 61,123,182,221,130, 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96,105,109, 98,242, 77,124,215,174,147,140, 74, +235,197, 86,203, 89,142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, 97, 69,198,149,159,151,145, 52,129, 89, 35, +157,202,221, 7, 42,237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23,164, 34, 81, 57,159,217,238, 46,232,115,205, +152,153,218,192,195, 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44,140,238,215,175, 31, 1, 0,161,177,200, 31, +220, 20, 27,135,125,187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108,108, 80, 82, 82, 2,169, 84, 10, 54,155, 13, +137, 68,130,119,239,222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, 53,133,169,169,233, 71,225, 92, 60,182, 7, +247, 77, 74, 54,247,242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205,122,110,110,231, 36,121,246,236, 25,238,221, +187,135,252,252,124,248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, 54,116,190,124,237,182, 85,177,132, 50, 79, +202, 84,176, 40,138,130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, 22,128,135,106,113, 91, 83, 77, 69, 30,128, + 38,254,254,254,139,166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220,142, 29, 59,218,236,223,191,223,104,222,188, +121,184,117,235,214,138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155,205,134, 82, 45, 27,228, 42,170, 76,223, 23, + 22, 22,130, 22,231,131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, 76,100,189,203, 44,196,187,172, 18, 20, 22, +203, 32, 22, 43, 33, 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, + 60, 30,148, 74, 37,138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, 83, 0,230, 0,242,116, 33, 84, 59,185,255, +174, 30, 6,196,163, 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41,195,198,185,197,157,150, 67,127,241, 40,155, +246,105,253,179,184,118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, 24, 50,100,136,143, 64, 32,104, 9,253,107, + 50, 26,147, 36,185,113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66,169, 84, 58, 39, 36, 36,116, 59,121,242,228, +194,131, 7, 15,238, 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62, +164,218,182,109, 75,142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246,173,165,101,203,181, 67,135, 14, 46, 12, 6, + 3, 29, 59,118,100,223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249,249,249,181,188,118,237, 90, 84, 70, 70,134, +159, 30,219, 11, 0, 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165,125, 15, 32, 84,199, 69,218,183,110,221, 26, +201,201,201,104,210,164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136,213,163,191,238,221,187,119,119,241,243,243, + 35, 66, 67, 67,203,252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200,200,200, 58,143, 30, 61,114,135, 14,195,136, + 54,110,126,253, 59,118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, 18, 76,130, 2,165,224,130,203,102,192,221, +179, 13, 35,254,197, 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211,183,105, 19,119,114,251,239,111, 80,144, 22, +171, 74,139,187,157, 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172,244,196, 23,221, 36,146, 46, 61,242, 19,110, + 95,251, 20, 23,228, 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201,208,243,207, 75, 20,184, 15, 0,183, 0,162, + 47,208,220,187, 93,187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, 69, 69,161,138,161,223,149, 0,195,214,209, +177,199,212,169, 83, 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110,238,236,209, 15,162,120,189,134, 41,251, 3, + 28, 7, 71,199,166, 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21,235, 28, 3, 59,155,185, 57,142, 91, 48,113, + 0,225,194,183,197,212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159,177,200,154, 92,169,208,170,136,223, 98,177, +220,140,141,250, 39, 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231,195,194,194, 2, 49, 49, 49,184,126,253, 58, + 94,190,124, 9,138,162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202,202,234,163,113,186,185,216,225, 91, 23, 59, +118,102,110, 33,251,218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, 38,147,225, 63,130,178,232, 66, 23, 23,151, + 78,135, 14, 29, 98, 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, 20, 25,212,248,187,213,171, 87,139,198,143, + 31,239,145,146,146,178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246,108, 0,192,152, 49, 99, 10,239,223,191,239, + 14, 32,235,250,245,235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, 74,101, 12,147,201,164,195,194,194, 86, 1, + 8,124,239,137, 72,146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, 75,111,112,198, 20, 82,147,222, 32,238,217, + 67, 56, 58, 58, 90,240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187,134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, + 92, 92,140,212,236, 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, 51, 34,101, 15,179,178,178,228, 50,153,108, +153, 80, 40, 60, 84, 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72,232,188,188, 60, 66, 36, 18,161,168,168,136, +184,112,225,194,215, 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156,150,150, 54, 73,151,161, 73,181, 96, 82, 49, +153,204,205,147, 39, 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120,122,122, 94,110,222,188,153, 83,200, 38,239, + 29, 0,126,252, 23,156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202,149, 43,177,124,249,242, 70, 83,167, 78,157, + 12, 96,171, 30, 60, 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, 17,199,142, 29,195,219,183,111,149,245,235, +215,103,250,248,248, 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79,111,165,163,248, 24,191, 98,197,138,129,157, + 59,119,198,216,177, 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, 86,232,145, 35, 71,140,214,173, 91,215, 99, +222,188,121, 83, 1, 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, 20,212,251, 3,133, 22,199,198,198,230,194, +225,195,135, 91, 54,110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, 1,232,116, 67,170, 83,167,206,198,179,103, +207, 54,172,106,100,161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66,235,232,209,163,248,254,251,239,209,162, 69, +139,230,237,219,183,223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212,114,141,224,241,120,205,135, 15, 31,206,121, +240,224, 1, 0,192,211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, 10, 7, 7, 7, 12, 26, 52,136,151,148,148, +212, 60, 39, 39,167, 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, 18,109, 26,154,195,199,195, 30,241,169,133, +136,140, 77,133, 74,198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80,179,191, 22,215,120,220,160,129, 95,153,158, +139, 72, 71, 65,122, 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, 71, 27,163,158,238,173,219, 48,252,122, 14, +176, 58,125, 44, 99, 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, 1,190, 52,203,202,249,161,153, 66,177, 83, + 51,175, 55,208,107,225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240,105, 84, 84,252,100,128,154, 82, 5,223, 78, +192,117,232,192,129, 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116,159, 51,127,126,167, 25, 51,102, 24,237, 89, + 53,253,113,239, 9,107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, 64,152,153,155, 99,246,236,217, 32,228,242, +203,101, 2,138,137, 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215,201,217,207,110, 8,240,230,115, 85, 85, 21, + 80,165,143, 86,181, 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, 70, 69,185,185,185,120,254,252, 57,242,243, +243, 17, 28, 28,140,184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56,216,152, 99, 84,223,118, 76,169, 68,196,203, +206,206, 46, 55,124,244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97,137,194, 52,227,104, 23, 34,227,104, 23, 66, + 88,162, 48,149,201,100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57,255,204,153, 51,172,181,107,215,194,203,203, + 11,114,185, 28,247,239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94,191,126, 61, 78,159, 62, 77,244,232,209, 99, + 97,101,231,147, 64, 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168,108,252, 60,240, 45, 70,216,156, 66, 94,230, + 59,236,219,183, 15, 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125,181,163, 78,157, 58, 97,213,117, 50, 61, 61, +125,237,140, 25, 51, 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, 83, 60,219,210, 20, 18,202, 8,187,118,238, + 38,159, 61,123,102,251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, 75, 75,123,240,237,183,223, 74, 10, 11, 11, + 33,147,201,228, 42,149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226,197,139,172,171, 87,175, 49,111,222,188,197, +190,126,253,186, 69,183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, 9, 9, 25,183,107,215, 46, 7, 31, 31,159, +102, 21,134,162,248, 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0,148, 79, 10, 91, 91,219,153, 3, 7, 14,196, +174, 93,187,112,254,252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161,251,176, 23, 0,252,184,117,235, 86, 15, 15, + 15, 15,140, 25, 51, 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, 47,191,212,155, 58,117,234,236,128,128, 0, + 73,131, 6, 13, 16, 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24,129, 77,155, 54,225,230,205,155,131, 81,250, + 64,149, 1,184,116,247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, 54,150,167,166, 77,155, 46,235,211,167, 15, +194,195,195,209,170, 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244,196,161, 67,135,124,235,213,171,135, 53,107, +214,192,205,205, 13, 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76,141,141,141,177,112,225, 66,122,240,224,193, +121, 53,125,230,205,155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58,122,121,121,225,254,253,251,184,122,245, 42, +150, 46, 93,138,185,115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219,219,217,217,161,176,176,180, 46,188,151,151, + 23,158, 60,121,130,236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, 49, 40,138,178,215,141,146,246,178,181,182, + 64, 86,190, 20, 76, 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200,200,202, 70, 29, 27, 30, 92, 92,234,130,166, + 41, 47,157, 20, 48,131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, 74, 65,226,221,148,130,196,187, 41,114,169, +100,202,227, 59, 87,115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144,186,112, 49, 49, 98,142,185,250,243, 50, 34, +108,255, 98, 66,154,251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191,251,238, 59, 94,102,102, 38, 21, 48,108, 88, +222,218,192,192,107,127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, 34,202, 0, 82, 1,192, 1,112, 25,240,205, + 55, 93,150, 44, 90,100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161,190, 46,254, 89, 42,192, 91,195,123,249,242, +101, 90, 12, 60, 6, 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199,236,181, 63, 99,207,201, 91,151, 45, 20,244, + 23,255,161, 71,241,228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, 1,243,119,112, 86,134,255,162,208,210, 64, +161, 40, 29, 37,145, 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, 31,158, 53,107, 22,182,108,217,130, 87,175, + 94,129,205,102,195,203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136,143,143,199,230,205,155, 49,126,252,120,250, +222,189,123, 7, 81,121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, 10,113, 62,178,210,222, 64, 42, 42,192,154, +245, 27, 81,162, 96, 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54,109,218,135,193, 96,244,171,166,159,247, 51, + 51, 51,247, 79,155, 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213,216,216, 24,219,182,109,179,112,119,119, 31, +200,100, 50,187, 85,195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, 16,231,206,157,235, 95,175, 94, 61,171, 13, + 63,110, 33, 68,114, 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71, +142, 28, 25, 61,108,216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144,248,109,219,182,157, 60,113,226, 68,209,252, +249,243,173,131,130,130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83,167,158, 1,216,122,230,204,153, 71, 82,169, + 20,195,135, 15,175,175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, 57,242,107,215,174,181, 6,176, 5,165, 67, +185, 52,128,100, 0, 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216,177,227, 1,248,214,192,219,113,196,136, 17, + 30, 20, 69,225,248,241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134,145, 35, 71, 54, 0,160,207,141,156,205,229, +114, 79,173, 94,189,218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208,200,194,194,226,162,214, 53,160, 51,184, 92, +238,190,159,126,250,105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211,167,203, 90,183,110,141, 93,187,118, 13,228, +112, 56,122,149,232, 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120,190,177,169,169,105,132,167,167,103,161,151, +151, 87, 27,165, 82,137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, + 11, 45, 6,131, 1,185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6,108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35, +144, 36,169, 83, 52, 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, 87, 80,224,177, 25, 96, 49, 9,128,166, 96, +105,194, 2,143,195, 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, 84,170,140,202, 30,142, 76,149,145,145, 17, +135,176, 53,231,130,199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135,110,218,188,153, 83, 88, 92,140,193,131, 7, +231, 37, 61,122, 20, 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, 84, 20,138,242,243, 95, 3,165,206,241, 28, + 39,167, 97,219,182,109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, 17,118, 60,185, 84,136,213,120,220,217,108, + 71, 13,175, 48, 63, 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72,176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, + 95,157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149,137, +196, 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245,198,223,177, 0, 0,107, 83,166, 80,174, + 82, 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136,213, +136, 17, 35, 18, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170,204, +227,146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, 92, + 22,137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94,189, +218, 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62,221, + 42, 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, + 8,137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, 92, +233,205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17, 35, 71,142,124, 14,192,107,254,252,249, +214, 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, 64, + 97, 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47,135, 15, 31,142, 75,151, + 46,225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,136, 17, 35,240,243,207, 63,247, 1, 80,157, +131,108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95,191, +190, 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254,249, + 99,199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,193,207,207, 15,243, +230,205, 83, 94,190,124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166, 9,179,103,207,206, +166, 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118,163, + 70,141, 86,203,100,178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98,162, +165,133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38,180, +172,229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, 19, +103, 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100,135, +152, 55,232, 52,153,201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, 33, +165,171, 27,239, 73,175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, 32, +128,202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96,129, +141,189,163, 35,198, 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, 0, + 95,174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54,174, + 86,172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,194,132, + 9,114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, 41, + 41, 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234,249, +243,231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156,220, +208,210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70,134, + 59,101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103,103, +131, 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16,189, +201, 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 54,108,152, 25, + 0,168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, 73, +147, 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153,160, +203, 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107,104, + 91,223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,176, 87,175, 94,207,110, +220,184,209,182, 99,199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, 73,183,145, 35, 71,138,220,221,221,113,235, +214, 45,143,145, 35, 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175,191,198,170, 85,171,232,147, 39, 79, 6, 0, +184,162,158,119,249,248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82,169, + 32, 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, + 46,147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194,194, + 2,174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21, +233,148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211,186, +232,218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220,196, + 19, 35, 39,204,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, + 88,120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232,251, +229,151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,175,190, +250, 10,217, 57, 57, 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, 6, 65,161, 80, 8, 2, 40, 4, 0,130,137, +190,237,188, 26, 33, 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35,124,237,124,180, 0,228,204,155, 55, 15, 92, + 46, 23,124, 62,191, 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227,199, 1, 32,167,218, 55, 60, 64, 58, 96,218, +122, 74,170,160, 75, 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94,229, 65, 49,181,225,252, 12,208, 78,157, 19, +171, 29,128,252,164,164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133,185, 41,130,148,183,207, 51,150, 44,156, 39, + 76, 77, 77, 77, 65,105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, + 25,137,177, 99,199,210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, 33,114, 21, 85, 54,228, 87, 88, 88,136,244, +244,116,200,100, 50,157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211,213, 4, 30, 46,198, 32,148,197,101, 34, 43, + 59, 59, 91,243,230, 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11,145,145,145, 1,149, 74, 85,213,131,140, 74, + 75, 75,187,124,226,196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, 42,249,236, 97, 50,153,119, 53,109, 55,109, +218,148,135,247,135,196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207,198,158, 61,123, 32, 16, 8, 22,225,175, 92, + 60, 84, 78, 78,206,130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, 21, 2, 24, 89, 21,161,157,157,157, 51,147, +201, 68, 84, 84, 84, 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124,183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, + 90, 90, 26,160,126, 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, 54,222,202,202,106,193,129, 3, 7,152, 47, + 94,188, 64,247,238,221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, 91,183,110, 47,175, 94,189,138,141, 27, 55, + 18, 45, 90,180,152, 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247,238,157, 6,224, 84,133, 38,199,118,237,218, + 53,107,239,222,189,152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126,126,126,145,175, 94,189,210,169,226,129,142, +237,187,249,248,248, 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234,212, 60,188,255,192,254,253,244,233,211, 24, + 53,106, 20, 90,180,104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83,108, 54, 27,174,174,174,232,215,175, 31, 2, + 2, 2,208,188,121,115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, 41,151, 82,238,171,155,231, 19, 19,255,199, +222,121,135, 71, 81,252, 97,252,221,235,253,210, 27, 9, 9,161,165,210, 2,134, 38, 37, 16,138,148, 80, 68, 17, 65,126, 54, 68, + 1, 81,192, 14,216,104,210, 68,138, 64, 4, 5, 17, 80, 20,105,161, 40,162, 32,157, 4, 8, 1,146, 16,210,235,165,151,203,245, +187,157,223, 31, 41,134,144,114,151, 96, 65,231,243, 60,251, 92, 50,123,251,222,236,236,238,220,123,223,105,137,231,174, 94, 58, + 99,226,113, 57,240,246,112,196,132,240, 30,120, 97, 82,127,244, 12,240, 68,122,190, 22,167, 78,253,108, 74, 77, 77,190, 96,205, +136,195, 26,205,248, 91,177,231,111, 94, 61,107,230,243, 24, 4,248,119,198,194,119,223,116, 88,250,254, 91,246,157, 59,120, 35, + 54,165, 12, 63,255,116,204,148,147,149,249,235,223, 53,226,240, 52, 32,144,139, 24, 25,151,195,129,133, 35,170,228, 86, 15,164, +233, 18, 20,228,231,230,238,142,168,168, 40,112,108, 24, 17,122, 26, 16,200,229, 85,173,224,106,181, 26, 53,122, 29,253,253,253, +189,125,124,112, 52, 42, 10, 92,150,189, 61,200,198, 9, 70, 19,170,154,161,107,117, 25, 64,247, 74, 91, 40, 58,182,117,245,119, +176,147,225, 82,108, 18,244, 38,114,249,155, 18,252,173,243,145,253,137,204, 64, 11,155, 14, 87,109,217,178, 37,116,219,182,109, +195,230,205,155, 39,159, 62,125, 58,196, 98, 49, 52, 26, 13,188,188,188, 96,177, 88,112,252,248,113, 68, 71, 71,171, 89,150,253, + 25,247, 79, 27, 16,142, 58,163, 52, 78, 36, 67, 82,229,183, 52,161, 7,159,120,226,129,104, 2,128, 60,137, 85, 22,181, 51,236, + 90,191,239,236,196,221, 39,174, 50,175, 77, 25,196,233,233,223, 22, 0,224,230,230, 6,165, 82,105,179,230, 3,224, 79,215,172, +219,172,155,151,151,151,144,151,151,151,255,226,139, 47, 6,212,116,124, 23,137, 68,186,234, 72, 86, 73, 67,199, 88,145, 79, 35, +128, 87,182,109,219,118,168,172,172,236,196, 27,111,188,129,165, 75,151,226,240,225,195, 3, 0,156,107,225,185, 91, 74, 74, 74, + 74, 47, 95,190,236,214, 41, 48, 4,237, 93,249, 24,184,232, 14, 8, 33,112,146, 18, 84,148, 22,227,218,181,171,168,168,168,184, +100, 75, 62,141, 70, 99,105,126,126,190,179,171,171, 43,138,139,139, 81, 88, 88, 88,107,178, 74, 74, 74, 80, 92, 92, 76, 24,230, +190, 57, 91,154,210,172,204,207,207,215,196,199,199, 11,221,218,118, 66, 7, 87, 1,122,191,155, 0, 16, 2,111, 71, 14, 42,202, + 75,113,225,194, 5,148,149,149,253,214,152, 38,203,178,243,167, 78,157,202, 5,240,204, 27,111,188,225, 8,160,251,155,111,190, +249, 51,234,141, 44,228,241,120,159,238,218,181,171, 75, 77, 19,227, 91,111,189,181, 22,192,182,191,234, 94,114,114,114,154, 31, + 21, 21,165, 48, 26,141, 88,191,126, 61,214,174, 93,187, 29,247, 79, 84, 25,181,113,227,198, 77, 28, 14,103,214,236,217,179,241, +210, 75, 47, 73,123,245,234, 53, 47, 55, 55,247,155,134, 52,179,179,179, 23,246,236,217,115,113,126,126,254, 50,171,204,242,157, + 59, 51,122,246,236,185, 48, 63, 63,127,101, 83,215, 72, 38,147,201, 44, 22, 11, 82, 83, 83, 75,128, 70,251,119,232, 82, 83, 83, +179, 45, 22,139,151, 84, 42,117,108,238,254, 44, 41, 41, 89,214,171, 87,175, 15, 84, 42,213, 79, 0,150, 52, 96,200,175,231,230, +230, 6,207,157, 59,119,206,138, 21, 43, 38,230,229,229,237,109, 78, 51, 61, 61,125, 89, 88, 88,216,162,196,196,196, 29,104,188, + 9,120,227,135, 31,126,104,220,181,107,215,203,169,169,169,203,155,209, 60, 82, 88, 88,120,196,134,235,219,216,251,107, 53,185, + 92,238,155, 43, 86,172,224,108,217,178, 5,132,144,213, 22,139,165,177,124,198, 30, 56,112, 96,103,255,254,253,167,239,219,183, + 79, 28, 28, 28,252,146, 94,175,223,211,220,253,169,209,104,246,239,219,183,111, 98,108,108,172,215,244,233,211,197,126,126,126, + 48, 26,141,200,205,205,197,150, 45, 91,116,113,113,113, 89,165,165,165,251,109,169, 67,204,134,242, 41,231, 79, 29,220,147,118, + 39,174,239,224,145,227, 28, 12, 70, 47,136,138,184, 40, 45,202,195,241, 35,251, 75, 82, 83,147, 47,104, 52,165, 83,108,209, 52, +234,203,158,186,240,235,161,189, 89,169,241,125, 6,134,141,114,208, 25,124, 32, 18,112, 80,164,202,198,241,168,131,197,169,169, + 41,191,235, 76,250,255,253, 93,245, 60,215, 23, 75,184,121,209, 47,206, 28,219, 3, 18, 7,175,107,124, 96,125,127, 64,226,236, +230, 38,168,126,118, 32,175,234,243,104,149,166, 10, 16,118,170,110,165,210,104, 52,224, 3,134,103, 1,190,139,139,139, 4, 0, + 18, 19, 19, 33,173,106,213,176, 41,159,106, 64, 38,173,163,203, 1, 52, 69, 60,120,118, 84,202, 24, 0,200,202, 43,130,193,212, +228,247,198,195, 78,100, 29,195, 21,217, 18, 1, 1,128,112,185, 92,190,116,241,226,197,171, 47, 93,186,180,122,204,152, 49,171, + 69, 34,209,210,234,194, 22, 52,113, 33,254, 50,205, 71,218,192, 49,172, 3,115,102,120, 71,134,157, 57,192,193,242,191,222, 50, +195,144, 33, 67, 54,181, 50,159,173,121, 88,254, 76,205,131, 38,147,137,160,170,217,238, 32, 26,111, 18,124,167,206,254,188,140, +140, 12, 82,253,183, 45,249,116,158, 60,121, 50, 91, 81, 81, 65,158,124,242, 73,130,230,151,240,105, 82, 83, 36, 18,133, 13, 28, + 56,208,164, 42, 40, 38, 9, 41,217,228, 98,204, 45,114,226,212,121,178,119,127, 20,217,176,105, 43,233,214,173,155, 1,128,143, + 45,154, 60, 30,111, 72, 88, 88, 88,145, 74,165, 34,241,241,241,228,204,153, 51,228,251,239,191, 39, 91,183,110, 37,155, 55,111, + 38,109,219,182, 85, 1,112,179, 69, 83, 34,145,140,123,236,177,199, 76,165,229, 26,146,154, 93, 68,110,196,167,146,115,151,111, +144,227,167,206,145,111,246,236, 35, 65, 65, 65, 58, 43, 52,185, 92, 46,119,195,222,189,123,203, 9, 33,100,220,184,113, 89,184, +119, 34,213,246,243,231,207,207, 39,132,144,149, 43, 87, 22,161,225,142,240,127,246,189, 52,210,211,211, 51, 65, 32, 16, 68, 1, +120,166,153,227,158,226,241,120,135,221,221,221,175, 0,152,240, 55, 60, 71, 99, 92, 93, 93, 47, 2,104,110,133,131,154,247,141, +255,151, 60,239,127,134,230, 16, 30,143,119, 6,104,122, 17,225, 58,245,245,199, 92, 46,247, 40,128,161, 54,230,179,179,179,179, +243,147, 14, 14, 14,175, 57, 56, 56,188,230,234,234,250,164, 80, 40,236,220,154,115,119,234, 28, 62,214, 59, 36,226, 64,219,238, +163,211,189,123,140, 73,247,237, 57,238,128, 83,231,240,177,173,213,244,233, 57,238,160,119,143, 49, 25,222, 61,198,166,181,127, +100,220, 1,103,255,240,199,254,206,107,244,140, 39,218, 12,107, 15, 51, 57,179,136,144, 51,139, 72,120,123,176,125,237, 17, 20, + 10, 40, 70,132,135,175, 33, 22,203,154,137,227,199,175,233, 4, 56, 17,128, 91,127,107, 72, 51, 4, 80,214, 30, 59,110,220,154, + 14,128,243, 48, 64, 58,104,192,128,213,196, 98, 89, 51,245,169,167,214,120, 3,238, 13,233, 53,166, 73, 0,174, 39,208,166,174, +174, 51,208,113,146, 47,130,223, 25,235, 75,200,153, 69,228,195, 39,252, 72, 79, 55, 60,211,140,102, 99,145,162,135, 58,162,101, + 43,178,234,202,117,121,245,171,236, 1,220,132, 15, 92,179,143, 7,252,194, 59, 50,241,163,252,121,197,168, 26,146, 44,251, 23, + 86,146, 59, 12, 6, 3,209,233,116, 68,163,209, 16,181, 90, 93,223, 64,213, 26,178,156,156, 28,146,149,149, 69, 50, 50, 50, 72, + 90, 90, 26,193, 31,125,111,172,206,167, 82,169,220,246,196, 19, 79, 88,248,124,254,134, 7,113,238,142,142,142,203,123,247,238, +109,252,236,179,207,200,129, 3, 7,200, 23, 95,124, 65,102,207,158, 77,186,116,233,162,183,183,183,159,210, 18, 77,119,119,247, +133,254,254,254, 69,219,183,111, 39,223,124,243, 13, 89,183,110, 29,121,239,189,247, 44, 94, 94, 94,121, 10,133, 98, 68, 75, 52, + 93, 93, 93, 35, 31,125,244, 81, 99,100,100, 36,249,249,231,159,201,238,221,187,201,252,249,243, 73, 64, 64,128, 94, 38,147, 61, +110,165, 38,151,199,227,173,153, 57,115,102, 94,155, 54,109,162,234,237,147, 6, 5, 5, 93,153, 58,117,106, 14,128,183,254, 69, +247, 39,213,164,154, 84,243, 79, 48, 90, 79,183,129, 39, 1,184, 82,129,224,169, 65, 3, 6,172, 22, 0, 79,217,106,138,196, 92, +238,164,254,189,123,175, 22, 0, 83,106,222, 43,230,114, 39, 13, 26, 48, 96, 53,159,203,157,214,152, 94, 83,154, 4,224, 10,120, +188,183,250,247,237,187,134, 7,188, 91,147, 54,164, 61,115,123,254,200,182,100,128, 15,147, 52,205, 21,210,127,177,209,122,224, +240,254,132,155,240, 97,209,252,167, 60,212,157,170, 13,211, 65, 27, 34, 90, 7, 81,181,138,122,167, 22,230, 83,242,128,207,189, +171,179,179,243,177, 78,157, 58, 21,180,107,215, 46,199,193,193, 97, 15, 0,175, 86,106, 6,187,187,187,127,237,230,230,118,199, +195,195, 35,214,217,217,249, 83, 84,205, 58,223, 98, 77, 62,159,223,219,205,205,237, 55, 95, 95,223, 82, 31, 31, 31,149,179,179, +243,222, 6, 34, 89,214,104,122,160,225, 74, 69, 80,189,143,126,233, 80, 77,170, 73, 53,239, 49, 48,195, 59, 96,197,176,246, 48, + 15,107, 15,203,112, 95,124, 90,215,160,140, 1, 36, 45, 53, 69,255, 3, 68,245,223,223,156, 94,115,154, 4,224,246, 3,228,245, +143, 25,229,133, 32, 43, 53, 31,246,136, 86, 77, 61,111,219,244, 14,141, 96,254, 19, 50,249,176,104,254, 83, 72, 66, 19,157,145, +235,176,252, 1,126,166,246, 1,159,195,141,194,194,194,199, 10, 11, 31,232,216,132,155,121,121,121,207, 60, 72, 65,147,201,116, + 73,165, 82, 13,126, 0, 82,141, 13,189, 54,194,202, 97,217, 20, 10,229,191, 3, 3, 88,144,140,183,195, 59, 99, 61,207, 2,206, +241, 20,100,215, 27,146,167,101, 90,162, 89,133,101, 71, 3,117, 60,211,210,124,254,129,250, 62,141, 44,220, 98,254, 59,151, 45, + 23, 85,125,180, 90,109,180, 40, 20, 10,133, 66,161,252, 5,156,188, 67,127,136, 61, 4, 68,225,222,232, 91, 84, 29, 35,218,104, +232,211,150,145, 20, 45, 9,159,158,164,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179,134,198,214, 78, 77,168,247,127, +139, 70,241,253, 87,160,237,236, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,183,211,226,121,180, 40, 20, 10,133, 66,161, 80, + 40, 77,211,104,212,141, 26, 45, 10,133, 66,161, 80, 40,148,214,225,129,170, 37,170,162,240,199, 82, 85,145,212,104, 81, 40, 20, + 10,133, 66,161,180,158,209,248, 99,180,225, 61,209, 45, 14, 45, 27, 10,133, 66,161, 80, 40,148, 86, 51,163,206, 43,237,163, 69, +161, 80, 40, 20, 10,133,242,128,176,110,100,228,145, 35, 71, 8, 45, 43, 10,133, 66,161, 80, 40,127, 23, 15,169, 23,169,137, 98, +221,183,202, 7,141,104, 81, 40, 20, 10,133, 66,161,180,142,200, 58,134,235,158, 52,106,180, 40, 20, 10,133, 66,161, 80, 90, 71, +141,193,138, 66,189, 37,213, 56, 0,109, 50,164, 80, 40, 20, 10,133,242,247,242,144,123,145,200,234,237,190,229,146,106, 70, 29, + 14,174, 62,193,193,244, 82, 83, 40, 20, 10,133, 66,249, 27,120,152,189,136, 7, 26,233,163, 69,161, 80, 40, 20, 10,133, 66,105, + 29, 51,234,189,214,194,208,178,161, 80, 40, 20, 10,133, 66,121, 32, 70,171, 46,116, 49,108, 10,133, 66,161, 80, 40,148,135, 25, +186,178, 57,213,164,154, 84,147,106, 82, 77,170, 73, 53,255, 11,204, 64,189, 89,225, 1, 58,189, 3,133, 66,161, 80, 40, 20,202, +131, 48, 89,145, 13,253, 79,215, 58,164, 80, 40, 20, 10,133, 66,249,147,160, 17, 45, 10,133, 66,161, 80, 40,148,214, 17,137, 6, +102,133,167, 70,139, 66,161, 80, 40, 20, 10,229,193,153,173,251,160, 77,135, 20, 10,133, 66,161, 80, 40,173, 99, 70, 99,255, 51, +104,124,228,192, 73, 27, 62,160, 37,163, 15, 78, 82, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167,217,156,246, 73, 60,124, + 52,218, 25,254,207,134, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,154, 37,120,106,182,218,165,120,104, 31, + 45, 10,229, 33,135,236, 3, 23, 37,254,190, 32,164, 13,184,194, 92,228,222, 72,102, 62, 0,219,106, 77, 85,144, 15, 36, 38, 55, +152,197, 5, 80,197,166,180, 86,147, 66,161,252,251,112,239,247,202, 4,134,195,221,204, 16, 22, 90, 85,188, 72,160, 77,147,230, +231,166,255, 23,189, 69, 46, 26,137, 96, 81,163, 69,161, 60,236, 20, 4,248,129,135,229,224,192, 3,196,120, 23,194,139,153,188, + 0, 0, 32, 0, 73, 68, 65, 84, 46, 65,203,129, 91,113,173,214, 20,176, 75, 96,225,120,129, 24, 19,225,234,191, 2, 72,184, 69, + 11,251,223,199,156,217, 47,147,219,113,151,144,145,145,131, 14, 29, 61,224, 23,208, 15,159,173,223, 68,151,103,163, 88,249,171, +140,137, 12, 31, 59,213, 81, 34, 85, 0, 0, 88,179, 9,219,231,245,248,217,108, 54,239, 4,112, 0,128,246,191, 94, 68,127,121, +103,120, 62,159,175, 2,192,138,197,226,253,160,171, 92, 83,254, 92, 60,170,239, 51,182,250,190,179, 5, 57,143,199, 91, 44,149, + 74,127, 21,137, 68,249, 34,145, 40, 95, 38,147,253,202,227,241, 22, 3,144,255, 99,234,184,175,187, 72,193,177, 60,102, 48,177, +158,199,111,148,186,106,244, 22, 63,112,204,163,200,246,206,242, 86,105,242,152,225, 58, 35,235,253,205,101,141, 91,165,193, 28, + 8,130, 86,105,214,193, 94, 32, 16, 28, 7,224, 76,111,207,127, 6,233, 41,113, 56,122,100, 13,150,124, 52, 29, 95, 69,206, 68, +194,237,139,173,210, 11, 4,122,245,226,241, 22, 4, 0, 67, 64,215,211,253,247,195,144, 25, 39, 15,127, 83,112,120,207,198,130, +111,215,204, 36, 7,151,143,193,250,245,235,195,167, 79,159,254,141,183,183,119, 1,128, 39,168,209,250,139, 49,153, 76,174,133, +133,133,204,206,157, 59, 35,236,236,236,238,242,120,188,119, 0, 8,254, 43, 5, 46,151,203,207, 43,149, 74,149,157,157,157, 74, +169, 84, 94,109, 46,253, 95,138,159,139,139, 75,186,163,163, 99, 98,221, 68,151,110, 19,250,117,234,255,204,251, 78, 65,227, 6, +181, 82, 95,192,227,241,222,177,179,179,187,187,115,231,206,136,236,236,108,198,100, 50,185,218,112,252, 64, 7, 7,135,219,151, + 46, 93, 90, 84, 88, 88, 56, 40,243,226,118,151,188, 75, 91, 93,210,127, 91, 51, 56,250,232,134, 69,246,246,118,183, 0, 12,252, + 71,148,164,142,117, 3,135, 27,118, 51, 87, 35,205, 45, 55,185,197,164,105, 20, 0,119, 48, 12,173,248, 17, 83,198,186, 1,100, +200,245, 44,173,236,124,177,139,219,239,201,122, 37, 56,156, 48,232, 24,247, 86, 87, 56, 28,206,203, 44,203, 14, 19, 8, 4,175, +209,111,168,127, 6, 34,145, 0, 32, 4,114,153, 24, 0, 1,167,149,214, 72,200,225,244, 63, 31, 17,177,228,173,110,221,230, 4, + 0, 99, 27, 49, 91, 12,128, 87, 3, 2, 2,142, 1,120,234, 1,158,206, 39,254,254,254,217, 0,230, 62,168,122,169,103,207,158, +253,194,194,194,222,239,209,163,199,160, 7,165,249,111, 34,239,252,231, 63,230,158,221,224,154,115,110,147,107,105,202,153, 87, + 61,220, 28,216,148,148, 20,140, 30, 61, 26, 27, 55,110,148, 6, 7, 7,239, 2,208,230, 63,240, 40,133,212,252,192, 71,189, 62, + 90, 86, 27,173, 73,190,232, 63,165, 61, 78, 63,233,139,138,201,237,161,158,214, 30,103, 31,247,197,144,150,228,198,201,201, 9, + 3, 7, 14,228,102,103,103, 75,230,207,159,255,190, 88, 44, 78, 5, 48,162, 37, 90, 18,137, 36, 90, 42,149,102,242,120,188,123, +242, 34,149, 74,163,101, 50, 89, 38,143,199, 27, 90, 55, 93,161, 80,156, 87, 42,149, 42,133, 66,113,181, 17, 35, 20,173, 84, 42, + 85,114,185, 60,186,110, 58,143,199, 27, 42,151,203,179, 20, 10, 69,253,244, 33, 10,133, 34,179,126,122, 99,240,249,124,175,204, +204, 76,215,172,172, 44, 87,161, 80,232, 86, 55, 61, 35, 35,195, 53, 51, 51,243,158,116, 91,224,241,120, 67,100, 50, 89,166, 84, + 42,141,110, 40,189,254, 57, 53, 70,157,178, 27, 98, 77,186,173, 21,207,240,225,195,207,230,230,230,122,219,219,219,219,215,221, +225,104,103, 63,226,235,237,155,230,141, 27, 53,252,101,151,192,241, 93, 91,168, 63, 66, 44, 22,167,206,159, 63,255,253,236,236, +108, 73,223,190,125,185, 28,142, 77,191, 39,194,199,141, 27,119, 80,165, 82,121,118,239,222,157,107, 54,155,113,243,208, 98, 72, + 99, 95,131, 56,117, 11,218, 74, 10,120,119,127, 94,225, 53,124,112,175,131,248,155, 59,131,146,125,129, 2, 48,236, 64,150, 16, +151,219,217, 58,151,209, 17, 79,240,174,101,106, 93, 76, 22,139, 35,192, 29, 76,190,242, 17,181, 72,147,103, 26,192, 18,226,246, + 75, 26,223, 37,236,201, 57,220, 83,105, 60, 23,147,197,226, 4, 14, 6,181, 68,179,238,237,207,229,114,231,173, 89,179,134, 3, + 96, 54, 0,225,127,201,208,132,182,129,231,144,142,220,203, 33, 30,232,255, 0,101,131,171,159,119,191,214, 10,109,251,234, 24, +158,127, 41, 18,157, 3,250,180, 74,199,192,178, 9,123, 83, 82, 78, 76,235,216,113,204, 91,221,186, 61,219,128,217, 98, 0,188, +181, 98,197,138,103,110,222,188,233,210,190,125,251,151, 30,208,143,254,117, 43, 86,172,120,243,230,205,155,109,124,125,125, 63, +180, 81,179,209,122,201,193,193, 97,196,182,109,219,230,141, 30, 61,250,229,158, 61,123,118,125, 16,154,255, 98, 54, 94,191,126, +221,123,205,154, 53,111, 63,255,252,243,229, 0, 48,116,232, 80, 1,128,190,173,174,239, 8, 17, 18, 66,194, 8, 33,163, 9, 33, + 67, 9, 33,161,213,127, 63, 82,189,141, 38,132,132,215,123,125,164,250,216,154,253,189, 27,209, 24, 93,255,184, 58,199,212,255, +255,158,191, 27, 48, 90,163, 81,213, 87,107,244, 61, 39,112,228,200, 17, 82,247,181, 62,147,125,241,193,156,126,158,154,219,135, +119, 19,117,102, 10, 41,137,191, 70,174, 69, 46, 35,115, 30,113,209, 60,221, 30,159,216, 94, 94,132,156, 59,119,142,220,188,121, +147,168,213,106,114,231,206, 29,210,187,119,111,173, 84, 42,253, 5,128,175, 45, 98, 10,133, 66,245,203, 47,191,144,225,195,135, +151,201,229,242,213, 53, 15,151, 82,169, 84,157, 59,119,142, 12, 31, 62,188, 76,161, 80,172, 3,192, 5,128,199, 31,127, 60,159, + 16, 66, 92, 92, 92,114, 26,210, 27, 55,110, 92, 9, 33,132,216,217,217,213, 52, 53,113, 21, 10,197,186, 89,179,102,169,175, 92, +185, 66, 28, 28, 28,106,210, 57, 74,165,114,245,236,217,179,213, 49, 49, 49,117,211,155,196,209,209, 49,211, 98,177,144,195,135, + 15, 19, 87, 87,215,156, 58, 15,115,166,197, 98, 33, 7, 15, 30,108, 52,111, 77, 5, 10,228,114,249,170,105,211,166, 85,164,165, +165, 17, 39, 39, 39, 85,157,244,213,211,167, 79,175,200,200,200, 32,206,206,206, 86,229,209,201,201, 73,117,254,252,121, 50,113, +226,196,242,186,101,234,228,228,164,186,112,225, 66, 77,250, 42,107, 42,178, 54,109,218,188,228,234,234,154,227,234,234,154, 99, +111,111,191,212,195,195, 35,175,160,160,128, 16, 66, 72,135, 14, 29,242,235, 70,178, 92,131, 35, 94,223,178,239,194,165, 51,113, + 69, 5,221,134,189,188,202,174,219, 56, 59, 27,202,192, 87, 42,149,254, 50,104,208, 32,109,102,102, 38,169,172,172, 36,177,177, +177,228,220,185,115, 36, 41, 41,137, 0, 32,214,220, 78,114,185, 60, 91,175,215,179,122,189,158, 45, 40, 40,176,228,231,231, 91, +226, 87,123, 16,242, 37,191,118, 43, 61, 56,150,228,157, 89,206, 42,229,210, 44, 0,138,191,205,104,109, 10,242, 34, 91,253,247, +222, 90,236, 29,127,102,197, 72, 19, 73, 59, 69,118, 63,235, 98, 58,253,186,231, 93,178, 57,224, 7,178, 53,176,109,139, 52, 55, + 7,238,142,125,207, 59, 97,195,135,175,154,210,211,211,201,130,233, 35,205, 63,205,241, 76, 38, 91, 2,246,181, 68,179, 14, 83, + 38, 76,152,160,206,200,200, 32, 65, 65, 65,149, 92, 46,247,249,255,146,201, 10,247, 19,102,199,126,179,128, 29, 27, 44, 45,122, + 64,102, 43,216,213,213,181,112,199,142, 29, 68,161, 80,228,183,212,108, 77, 26, 63,152,104,203,126, 33,227,199,132, 54,249,140, + 60,249,228,147, 36, 44, 44,140,204,153, 51,167,185,103,137, 9, 0, 34,118,118,235,118,144,157, 52,201,178,179, 91,183,131, 1, + 64, 68,181,193, 98, 0,188,189,114,229,202, 24,147,201, 20,243,213, 87, 95,197, 68, 68, 68,196, 0, 88,208,202,178,248,236,147, + 79, 62, 33, 38,147,137,124,245,213, 87, 36, 34, 34,130, 0, 88,223,154,122,169, 38,146, 21, 18, 18,242,250,129, 3, 7, 46, 37, + 36, 36, 20,140, 25, 51,102, 85,183,110,221,236, 90,170,249, 79, 68, 46,151,119,234,218,181,235,174,160,160,160,140,238,221,187, + 27, 2, 3, 3,117,126,126,126,105,193,193,193, 59, 68, 34,145,111, 11,101,251,244,239,223,223,114,250,244,105, 50, 97,194, 4, + 82,199,132, 52, 73, 83, 94,132, 16, 18,250,246,219,111,191, 3,128,188,253,246,219,239, 16, 66, 70, 87,251,137,209,117,255,174, +255, 90, 99,158,106,254,111, 72,163,102,107, 72,179,161,207,168,247, 57,104, 36,146, 53,227,190,147, 59,114,228,200,160, 35, 71, +142,156,174,127,114, 79,180, 71,191, 57,253, 60,181,218,130, 92, 18,183,236, 53,242,107,152, 23, 57, 55,216,157, 36,206,155, 64, +114,191, 89, 71, 94,233,225,160,153,212, 30, 97,182, 26,173,152,152, 24, 18, 19, 19, 67,174, 94,189, 74, 82, 83, 83, 73, 89, 89, + 25,249,246,219,111, 45, 78, 78, 78, 90,145, 72,180, 2,128,196, 26, 49,165, 82,169, 34,132, 16,189, 94, 79,150, 46, 93,170,171, +142, 84,185,217,217,217,169, 8, 33,164,180,180,148,172, 88,177, 66,103,103,103, 23, 11,160,141,179,179,115,102, 74, 74, 10,113, +115,115,107,208,204, 56, 56, 56,168, 18, 18, 18,106,140,147,167,131,131, 67,220,161, 67,135,140,132, 16,146,149,149, 69, 28, 29, + 29, 85, 0,220,156,156,156,174, 29, 57,114,196, 72, 8, 33, 57, 57, 57, 53,233, 86, 25, 45,173, 86, 75,126,250,233,167,123,242, + 80,147,126,236,216,177,123, 12,152, 21,184,217,217,217,197,124,251,237,183, 6,139,197, 66,226,226,226,106, 76,162,155,189,189, +253,213,125,251,246, 25, 44, 22, 11,137,143,143,183,218, 12,182,107,215, 46,159, 16, 66,204,102, 51,217,178,101,139,190,166, 76, +107,210, 13, 6, 3,249,252,243,207,245, 74,165, 50, 6, 64,147,209, 55,103,103,231, 28,131,193, 64, 74, 75, 75, 73,239,222,189, +213,231,206,157, 35,229,229,229,132, 16, 66,218,181,107,151, 15, 0,254,131,158,255,248,210, 29,117,249,115,111,110,250,206, 55, +244,233,101, 39, 46,103,103,109, 59, 16, 29,227, 28, 60,110,164, 53, 65, 77,145, 72,180,194,195,195, 67,247,251,239,191, 91,140, + 70, 35,201,200,200, 32, 87,175, 94,173,189,199,110,220,184, 97,149,209,226,241,120,139, 47, 93,186,100,180, 88, 44,108, 97, 97, +161, 37, 63, 63,223,146,159,159,111,174,111,180,200,151,124, 82,120,236, 69, 18, 21, 57,215, 32, 16, 8, 22,255, 61,209, 44,112, +201, 86,255,113,100,171,127,204,142,105,206,133, 21, 87,247, 16,242,243, 92,146,252,113,123,178,120,164,162,130,221,234, 31, 67, +182, 6, 76, 34, 31, 12,226,217,164, 25, 25, 56,150,108,245,143,249,228, 9,159,162,107, 49, 87,200,233,211,167,201,231,235, 86, +146, 57,225,158,149,236, 86,255, 24,178, 57,112,162, 45,154,117, 17,137, 68,119,206,158, 61, 75,206,156, 57, 67, 62,252,240, 67, + 34,149, 74, 51, 30, 68, 84,143,108,246,243, 33, 95,248, 13, 34,219, 59,123,144,223, 6,253,227, 6,248,132,182,129,231, 48, 63, + 97, 86,225,181, 3,132, 20, 39,145,188,213, 65,100,164, 63,191,181,102, 43,216,213,213,181, 32, 45, 45,141,228,229,229,145,181, +107,215, 18,165, 82,217, 34,179, 53,105,252, 96,162, 45, 61,217,164,209, 26, 55,110, 28,249,244,211, 79,137,201,100, 34,125,250, +244,177,230, 71,203,125,102,203, 31, 24, 7,224,157, 85,171, 86,213,154,172, 77,155, 54,197,220,184,113, 35,198,219,219,251,104, + 43,202, 98,253,170, 85,171,106, 77,214,166, 77,155,200,141, 27, 55,136,143,143, 79,102,107,234,165, 97,195,134,125,156,154,154, + 90,190,112,225,194,239, 6, 14, 28,184,236,218,181,107, 89, 81, 81, 81, 49, 33, 33, 33, 35, 91,170,249, 0,162, 58,188,234,200, +142,144, 16,194, 39,132,212,152, 87, 30, 0,126, 77, 64,193, 26,166, 77,155, 38,237,215,175, 95,204,212,169, 83, 53, 59,118,236, + 32,105,105,105, 36, 54, 54,150,172, 90,181,138,188,255,254,251,228,203, 47,191, 36, 19, 39, 78,172,236,221,187,247,165, 73,147, + 38,137,109,200,102,144,175,175,111,217,193,131, 7,201,238,221,187,137, 64, 32,136,178,246,192,166,188, 72, 99,102,170, 49,131, + 85,127, 95, 19, 70,172, 73,195,102,197,231,221,111,170,234, 71, 66,234,252,253,219,152, 49, 99, 6,221,247,229, 67,240,209,140, +249, 31,139, 83,119,172,133,234,219,141,224,150,170,192,175, 40,130,254,108, 20, 76,103, 15,225,153,190,125, 37, 18,134, 89, 98, +235, 13, 35, 20, 10, 33, 20, 10, 33, 16, 8,160,209,104,144,147,147,131, 71, 31,125,148,115,245,234, 85,241, 75, 47,189, 52, 87, + 34,145,100, 0, 24,223,236,211,204, 84, 69,164,207,159, 63,143, 23, 95,124, 81,180,107,215,174,238, 46, 46, 46,215, 45, 22,139, + 16, 0,226,227,227, 49,121,242,100,209,158, 61,123,186,180,105,211,230,170,209,104,148,138, 68, 34,112,185,220, 70,245,132, 66, + 33, 76, 38,147,168,115,231,206,177,215,175, 95, 15, 30, 51,102, 12, 63, 61, 61, 29, 41, 41, 41, 48,153, 76, 66, 63, 63,191, 27, + 87,175, 94,237, 62,122,244,104,126,102,102, 38,210,211,211,107,243, 97, 77,126, 13, 6, 3, 68, 34, 17,234, 54,105, 49, 12, 3, +189, 94, 15,161, 80,104,181, 22,143,199, 27, 18, 16, 16,112,227,250,245,235, 33,227,198,141, 19, 92,185,114, 5, 89, 89, 89,176, + 88, 44,194,192,192,192, 27,215,175, 95,239, 17, 17, 17, 33,136,141,141,133, 74,165,130,181, 77,104, 53,239,187,126,253, 58,166, + 78,157, 42, 60,126,252,120, 15, 15, 15,143, 88,179,217, 44, 4,128, 27, 55,110, 96,242,228,201,194, 19, 39, 78,132,180,109,219, + 54,182,153,166, 68, 46, 0,152, 76, 38,188,244,210, 75, 50,165, 82,137,204,204, 76,176, 44, 11,139,197, 2, 0, 40, 42, 41,186, +113,253, 70, 92,252, 51, 83,158, 24,164, 53,234,245, 23, 46, 71,223,238,208,206,199,139, 97, 72,187,102,178, 58, 94, 38,147,101, +172, 94,189,250,245,180,180, 52, 81, 64, 64, 0, 39, 57, 57, 25, 21, 21, 21, 16, 8, 4,181,247,152,181,231, 45, 20, 10, 7, 7, + 5, 5,241,116, 58, 29, 88,150, 5, 0,194,225, 52,220, 99, 69, 92,122, 22,129,110,102,190, 68, 34, 25,252,183,124,123,151, 7, + 57,129,197,176,244, 2,131, 72,100,239,165,144,123,248, 1, 25,103,208,222, 69, 4, 46,135, 43,190,146,162,145, 1,100, 24,188, + 11,157,108,211,100,135,165,228, 27, 68, 38,199, 46,242, 54, 94,222, 40, 42, 42, 66,219, 14, 1,208, 9, 93,132,231,147, 42,229, + 96,108,212,252,131, 1,157, 59,119,118,239,212,169, 19, 10, 11, 11, 17, 18, 18, 2, 7, 7, 7, 7, 0,195, 90,252,165,243,149, +143, 8,229,232, 15,112, 86,195,194,124, 8, 19,111, 57,146, 10, 66,200,214, 16,254, 63,201,100, 41,229,194,139,123,246,126,235, +233,228, 29, 8, 68, 61, 7, 55,123, 17,182,191, 28,226,232, 98, 39, 58,216, 66,179, 21,236,230,230,118,234,210,165, 75,206, 98, +177, 24, 87,175, 94, 69, 80, 80, 16,214,174, 93,235,226,224,224,112,166,101,145, 45, 2,194, 52,110,178, 6, 14, 28,136,217,179, +103, 99,215,174, 93,112,116,116,196,212,169, 83,155, 51, 91, 36, 30, 56,252, 73,108,236, 87,187,238,222, 61, 50,173, 99,199, 49, + 83,253,252,150,206,124,234,169,231, 95,125,245, 85,172, 92,185, 18, 7, 15, 30, 68,255,254,253, 49, 99,198, 12, 83, 70, 70,198, +206,150, 54, 85,173, 94,189,122,206,220,185,115,235,107, 26,211,211,211, 63,105, 85,189, 84, 84,116, 35, 54, 54, 54,126,202,148, + 41,131,116, 58,157,254,242,229,203,183,125,125,125,189, 0,180,107,169,102, 43, 12, 22, 67, 8, 17, 3,144, 86,111, 50, 0,210, + 61,123,246,216,141, 27, 55, 78, 89,157, 38,169,222,154,109,222, 15, 10, 10,242,186,115,231, 78,246,188,121,243, 66,118,237,218, + 37,145, 74,165, 40, 45, 45,197, 23, 95,124,129,119,222,121, 7, 12,195,128, 16,130, 47,191,252, 82,250,236,179,207,134,222,189, +123, 55,219,199,199,199,154, 46, 45, 34,185, 92,190,111,233,210,165, 74,150,101,241,214, 91,111, 21, 26,141,198,217,213,251, 22, +218,219,219, 95, 68,149,225,110,138, 6,189, 72,157,239,202, 35,245,202,102, 76,253,180,250,251, 8, 33, 99,154,210,176,241, 90, + 52,244,121, 81, 77,153,173,186,223, 64,131, 27,116,145, 64, 55,119, 95,127,148,253,188, 15, 18, 30, 3, 9,183,122,227, 49,224, + 36,223, 64, 91, 49, 31, 38, 66,130, 91,106,180,106, 54, 62,159, 15,141, 70, 3,139,197,130,119,222,121, 71,244,211, 79, 63, 57, +113, 56,156, 31,154,211,169,107,152, 18, 19, 19, 17, 24, 24,200, 28, 62,124,216,109,246,236,217,146,154,207, 41, 43, 43, 67,167, + 78,157,152, 99,199,142,185,190,247,222,123,242,166,204, 12,195, 48, 16, 8, 4,152, 59,119,174,228,242,229,203,142,109,218,180, + 65,114,114, 50,138,139,139, 33,151,203, 49,119,238, 92,201,165, 75,151, 92,218,180,105,131,180,180, 52,148,149,149, 65, 46,151, +219,108,180, 4, 2,193, 61,199, 48, 12, 3,163,209,104,147, 49,176,179,179,219, 29, 19, 19,227, 98,103,103,135,216,216, 88,152, +205,102,216,217,217, 97,206,156, 57,146,152,152, 24, 23,123,123,123,196,199,199,131, 16, 2,165, 82,105, 83, 30, 1,128,101, 89, +196,199,199,163, 93,187,118, 56,115,230,140,235,204,153, 51,197, 53,233, 73, 73, 73,240,242,242,194,153, 51,103, 92,101, 50,217, +238,198,180, 88,150, 69,110,110, 46,110,222,188,137,228,228,100, 20, 20, 20,160,176,176, 16, 21, 21, 21, 48,155,205, 0, 0,105, + 69,121,212,158,239, 14, 95,151, 72, 36,210, 32,191,206,222, 55,226,110,229, 75, 36, 18,169,143,183,183, 31,240, 1,167, 9, 67, +248, 67,122,122,186,211,179,207, 62, 43,200,203,203, 67, 73, 73, 9,120, 60,222,125,247,150, 80,104, 93, 87, 32,179,217, 28, 40, + 22,139, 25,163,209, 88, 27, 1, 19, 10,133,120,125,183, 6, 65,139,113,207,246,212,186,124, 16,139, 9, 6,131, 33,240, 47,143, +102, 1, 12, 24, 67,103, 48, 76,200,197,228, 74,199, 1, 99,166, 8,144,114, 28, 96, 77, 0,135,135,193,221,188,120, 7,111, 84, +186,129,160, 27,244, 8, 32,164,249,145, 95, 4, 96, 0, 99, 39,128,233,245,211, 29,179, 83,255, 9, 47, 11,178,179,179, 33, 16, + 8, 32, 18,137, 16, 50,228,113,222,158,235, 38,119, 48,232, 14, 35,252,173,209,188, 39,236, 40,145, 44,122,255,253,247,101,117, + 53,159,127,254,121,153,157,157,221,251, 45, 54, 89,149,210,190, 48,147,185, 55,179, 53,237,150, 70,229, 5,222,205,215,250,131, +144,121,128,169,199, 3, 48, 91,131, 69, 34, 81, 10,128, 71, 91,101,178, 20,194, 11,123,247,126,235,233,216,182,202,100,193,172, + 3,248, 18,184,187,216, 99,251,235, 97,142, 46,246, 18, 91,205, 86,176,155,155,219, 47, 23, 47, 94,116, 22,139,197,136,137,137, +129, 64, 32,128, 88, 44, 70,215,174, 93,177,117,235, 86, 23, 71, 71, 71,155,205, 22, 1,105, 48,230, 59,126,252,120, 50,112,224, + 64,204,154, 53, 11, 59,119,238,132,193, 96,192,210,165, 75,145,158,158,110,149,108, 60,112,120, 69,108,236,142,229, 55,111, 38, +190, 29, 28, 28, 48, 94, 38,115,156, 53,117,170,221,123,239,189,119,228,208,161, 67, 95,141, 30, 61,186,240,242,229,203,159, 2, +216,103, 99,241, 50, 0, 54,173, 89,179,102, 86,141,113,123,239,189,247,190, 60,116,232,208,242,209,163, 71,231, 94,190,124,121, + 30,128, 77,173,169,151, 88,150,141,250,225,135, 31,174, 75, 36, 18,169,191,191,191,119, 92, 92, 92,190, 68, 34,145,122,123,123, +251, 13, 26, 52,136,211, 18,205,150,224,234,234, 58,244,226,197,139, 65,168, 26, 52, 38,170, 49, 90,113,113,113,246,229,229,229, +246,114,185,220,222,195,195, 67, 81, 99,182, 38, 76,152, 96,207,227,241,154,188,111,213,106,245,161,133, 11, 23,218, 77,152, 48, +161,230,127,156, 61,123, 22, 59,119,238,132, 76, 38,187,231,189, 17, 17, 17,120,241,197, 23, 29, 12, 6,195, 15, 86,100,119,250, + 75, 47,189,228,239,230,230,134, 69,139, 22,233,179,179,179,135, 2, 72, 7, 96, 23, 30, 30,254,113, 92, 92, 92,239,208,208,208, +239, 0,244,108,234,217,107,200,139,212, 53, 58,214,164,181,244,253,214,154,173,122, 73,141,206,161,117,143,209, 26, 51,102,204, +105, 52, 50,146,202, 88,172,130, 8, 22, 72,184, 12,164,220, 58,102, 11, 44,120,101,249, 96, 90, 48, 74,165,161, 47, 67,161, 80, + 8, 46,151, 11,131,193,128,162,162, 34,155, 76,129, 82,169,132, 92, 46,135, 86,171,133,217,108,134, 88, 44,174, 49, 35, 80, 42, +149,224,243,249,224,243,249, 16,139,197,247, 69,147,234, 71,115, 4, 2, 1,100, 50, 25,114,115,115,145,158,158, 14,150,101, 33, +151,203, 33,147,201, 32, 20, 10,145,147,147,131,156,156, 28, 16, 66, 32,147,201, 32,147,201, 96, 75,135,107,139,197,210,224,151, +191,201,100,178, 41,162,101, 54,155,113,251,246,109,100,100,100, 64, 44, 22,215,158,171, 72, 36, 66, 82, 82, 18,242,242,242, 32, +149, 74,161, 84, 42, 97,103,103,103,181,110,205,185, 40, 20, 10, 72, 36, 18,148,148,148, 64,163,209,212,150,169, 82,169,132, 76, + 38, 67, 89, 89, 25,242,243,243,155, 60,119,139,197,130,156,156, 28, 20, 20, 20, 32, 51, 51, 19,133,133,133,181, 21, 80,117,212, +168,117,129,157,242,114, 20, 21, 21,213, 70, 34, 27,219,172,129,101, 89, 84, 84, 84,224,226,197,139, 12,203,178, 40, 45, 45,101, + 11,242,242, 44,175,228, 8,113,240,131,205,228,219,227,215,116,123,142,198,104,247,255,114, 83,187,105,255, 13,173,184,247,135, +102,252, 29,124, 30,108, 7, 19,127,120,161,218, 36, 42, 48, 10,236,220,130,195,129,148, 99, 0,135, 7,136, 29,208,167, 75,123, +164,151, 88,100, 9, 42,131, 24, 12, 70, 96,147,159,131, 85,154, 22,254,176,130, 10,147, 40,205,232,162, 12,236,214, 19, 42,149, + 10, 34,145, 8, 34,145, 8,189,250,135, 35,165,200, 34,189,149,173,149,130, 96,184, 85,154,127,208, 65, 46,151,247,125,244,209, + 71,153,186,154,163, 70,141, 2,195, 48, 93, 1, 4,216, 84,201,173,239, 32,132, 81,218, 7, 60, 50,247, 86,174,166,205,193, 56, +157,223,216,241,143, 59,126,118, 50, 63,240,118,158,222, 23,196, 52, 31,196,216,179, 21,102,107,144, 66,161, 56,178, 97,195, 6, + 95,177, 88,124, 12,192,128,150,136,200, 37,220, 45,139,102, 77,241,116,168, 49, 89, 38, 13,192,147, 0,124, 9,192,147,192,221, +213, 25, 75, 94, 28,230, 40, 21,243,247,219, 96, 88,247,108,218,180,201,165,190,201,170,217, 66, 66, 66,176,120,241, 98, 23, 71, + 71,199,221,214,232,173, 94,181,146,148,150,149, 1, 4, 40, 47, 87, 99,245,170,149, 37, 53,251, 38, 76,152, 64, 6, 12, 24,128, + 89,179,102, 97,249,242,229, 56,122,244, 40,250,244,233,131, 25, 51,102, 32, 52, 52,180, 57,233,225,118,118,118,187,194,195,195, + 47,230, 40, 20, 47,230,246,236, 41,252,197,206,174,108,104, 89,153,157, 79, 92,156,209, 31,184, 1,224,243,172,172,172,145, 54, +152,172,167,148, 74,101,204,208,161, 67,141, 10,133, 34, 99,237,218,181,175,204,158, 61, 27, 43, 87,174,196,194,133, 11,191, 0, +240, 2,128,119,179,178,178,218, 52,101,178,254,172,122,233,207,170,235, 44, 22, 75,230,190,125,251, 66,141, 70,163, 87,117,243, +160,168,180,180, 84, 89, 92, 92,172, 48, 26,141, 50,150,101,101,246,246,246,114, 0,210,103,158,121,134,119,235,214,173, 64,179, +217,156,221,148,102, 94, 94,222,211,111,189,245, 86, 97, 97, 97, 33, 0,160,107,215,174, 40, 45, 45,197,130, 5, 11,240,218,107, + 85, 3,130,123,244,232, 1, 66, 8, 84, 42, 21, 86,175, 94,173,202,203,203,251,159, 21,217,237,216,185,115,103,196,197,197,225, +246,237,219, 39, 1,176,168,234,199, 90,118,237,218,181,235, 5, 5, 5,216,189,123,183,192,211,211,243, 16, 26,153,226,165, 41, + 47,210, 18, 24,134,137,106,201,113, 53,145,171,134, 34, 98,141,208,116, 68,107,204,152, 49, 76,221,215,123, 34, 70, 12, 98, 51, +162,207,192, 49,184,231, 61,209, 44, 41,151,129, 68,105,135,148,204,116, 8,192,220,124, 80, 70,171,164,164, 4,175,188,242,138, +246,233,167,159, 46, 98, 89,246,113,107, 77,129,157,157, 29,236,236,236,112,235,214, 45, 50,113,226, 68,213,218,181,107,181,117, +141, 86, 98, 98, 34, 25, 62,124,120,254,251,239,191,175,110,202,104,213, 68,180, 86,172, 88,161, 29, 60,120,112,193,205,155, 55, + 73,141,153,146,203,229, 88,189,122,181, 54, 44, 44, 76,117,229,202, 21, 82,147,102, 75, 68,139,195,225,212, 26,173,186,199,112, + 56, 28,176, 44,107,147,209,170,172,172,124,122,244,232,209,170,248,248,120, 82,115,158,118,118,118, 88,187,118,173,118,216,176, + 97,170,155, 55,111,146,154, 52,165, 82,105,181, 25,172,249,124,133, 66, 1,165, 82,137, 91,183,110,145,225,195,135,171,214,175, + 95,175,171,155,126,251,246,109, 18, 17, 17,161,170,168,168,120,186, 41,243, 82,211,156,103, 54,155,161,211,233, 80, 88, 88,136, +204,204,204,218,112,186, 86,166, 28, 57,229,201,177,221,181, 90,173,230, 86,226,157,140,174, 93,130, 92,181, 90,173, 38, 61, 35, + 35, 17,248,128,109, 66,251,241,224,224,224,162, 87, 94,121, 69, 91, 82, 82,210,106,163, 37, 20, 10,227,121, 60, 30, 25, 48, 96, + 0, 49, 24, 12, 36, 51, 51,211, 84, 88, 82, 98, 14, 88,182,140,220,124,253,117, 70, 18, 29, 45,146,203,229, 76,181, 38, 39, 57, + 57,153,149, 72, 36,241,127,185,209,226,176,238, 96,200,163,191,223, 81,219, 15, 27, 59, 89,200,228, 93, 6,140,106, 64,228, 0, +136, 28,192,147, 57,225,177, 1, 61,184, 59, 46,150,187,131,176,253, 32, 16,121, 53,171,201, 39,110, 0, 59,224,231, 68,157,195, +163,147,230, 8,139,139,139,193,229,114,107, 77,145, 84, 38,195,208,241,207,112,190,188,172,119, 7, 72,127, 48, 92, 47, 27,158, +245, 55, 23, 45, 90, 36, 40, 41, 41, 1,135,195,249, 67, 83, 42,197,204,153, 51, 69, 74,165,114,161,213,149,223,190, 64, 1,248, +162, 62, 0,121, 45, 33, 79,215,230,208, 13,173,255,252, 21,219, 37,193, 61, 66,241,210, 96, 87,201,138,168,252,224,235,153,218, +246,128,229,117,152, 13,189, 90, 96,182, 6, 40, 20,138,168,232,232,104,233,168, 81,163,176,122,245,106,153, 68, 34, 57,214,146, +138,191, 82,109,153,253,209,250,175, 85,177,159,142, 0,140,149, 85, 6,171,206,150,175,102,177,120,251,169, 50,147,137, 76,177, + 86, 83,171,213, 78,127,225,133, 23,138,246,239,223,127,159,201, 18,139,197, 72, 77, 77,197,210,165, 75,139,139,139,139,155,253, + 82, 92,187,102,117, 76,220,245, 95,241,229, 23, 31, 1, 32,216,176,246,101, 92,248,125,175,253,224, 65, 3, 73,187,118,237, 72, +104,104, 40, 94,121,229, 21, 44, 89,178, 4, 9, 9, 9,112,118,118,198,203, 47,191,140, 65,131, 6, 97,205,154, 53, 77, 85, 82, +195,103,207,158,189, 52, 43, 43,203,255,231,159,127,230, 21, 20, 20,184,174,217,182,173,236,251,178,178,226,229,113,113, 9,239, +118,233,210,249,237,110,221,254,215,196,212, 15, 13,154,172, 89,179,102,237,201,202,202, 10, 57,121,242, 36,191,160,160,192,107, +214,172, 89, 88,181,106, 21, 22, 46, 92,184, 21,192, 75,176,110,192,139,213,245, 18,151,203, 29,249,248,227,143,119,215,106,181, +154,132,132,132,140, 46, 93,186,184,106,181, 90, 77, 70, 70, 70,226,233,211,167,217,150,104,182,132,162,162,162,187,187,119,239, + 78,156, 51,103, 78, 72, 86, 86, 86, 32, 0,167,138,138, 10, 89, 69, 69,133,200, 96, 48, 72, 28, 28, 28, 28,122,244,232,225, 60, + 99,198, 12,249,181,107,215, 2,179,178,178,212,213, 81,164, 70, 49, 26,141, 9, 37, 37, 37, 99, 70,140, 24, 81, 90, 82, 82,130, +110,221,186, 97,236,216,177,112,119,119, 71,155, 54,109, 48,110,220, 56,248,249,249,161,168,168, 8, 83,166, 76, 41, 46, 40, 40, + 24, 1, 32,217,138,236,222,205,203,203, 67,191,126,253,240,209, 71, 31,141,121,226,137, 39,110, 14, 24, 48,160,188, 75,151, 46, + 26, 47, 47,175,128,207, 62,251, 12,158,158,158,216,183,111,159,135, 72, 36,218,221,128,201,106,212,139, 0, 40,168, 54, 60,134, +122,175, 5,205,236,179,246,216, 6,255,182,226,125,245,205, 86,221,237,190,166,195,134, 47, 8,176,120,231,190, 29, 58,161,119, + 39,216,249,119,135, 84, 44,134, 68, 40,132,196,193, 9,122,150,197,182,212, 60, 77, 37, 33, 11,109,189,121,234,127, 17, 50, 12, +131,141, 27, 55,154,251,246,237,171, 59,117,234,212, 6,173, 86,235,141,170, 89,101,173, 54, 5,235,215,175,215,204,157, 59,247, +122,126,126,126,119,177, 88,108,168, 73,223,176, 97,131,230,153,103,158,137,203,202,202, 10,145, 74,165,154,198,250,103,213, 53, + 90, 34,145, 72,159,159,159, 31,250,252,243,207,199,127,254,249,231,149, 82,169, 20, 50,153, 12, 34,145,200,144,159,159,223,253, +149, 87, 94,185,190,106,213, 42,141, 68, 34,129, 76, 38,179,169, 89,142, 16,114,159,161,170,155,110, 45,102,179,249, 84,126,126, +126,247,185,115,231, 94,251,236,179,207, 42,107, 12, 80,221, 60,174, 89,179, 70, 35,151,203,109,138,104,213,188, 79, 38,147, 97, +221,186,117,154, 57,115,230, 92,207,207,207,239, 46, 18,137, 12,117,210, 43,103,207,158,125, 45, 63, 63,191,187,217,108, 62,213, +196,175, 49, 75,121,121, 57,120, 60, 30,226,226,226,244, 2,129, 0, 28, 14, 7, 73, 73, 73,181,149,143,163,163, 99, 80,247,174, + 93, 2,190,222,179,239,180, 68, 32, 18,245, 13,237, 21,152,156,150,158, 69, 8,147,214, 76, 86, 15,104,181, 90,239, 83,167, 78, +109,232,219,183,175,110,227,198,141,230,198, 34, 91,214,160,215,235, 79, 95,189,122,213, 36, 22,139,153,220,220, 92, 51,151,203, +133,197, 98, 33,250,208, 80,125,215,207, 62, 35,183,222,126,155, 81,202,100, 60,129, 64, 0,169, 84,202, 28, 63,126,220,160,209, +104, 78,255,245, 70, 11, 82, 48,144,220,201,215, 43,196, 28, 51,131,196, 3, 85, 38, 75,108, 15,136, 29, 0,177, 3, 60, 61,189, +112, 57, 85,163, 0, 7, 66, 88,172,152, 67,140, 16, 25, 24, 72,227, 84, 80,240,133, 18, 38, 47, 47,175,214, 16,213,108,190,157, + 2,113, 53, 93, 45, 7, 67, 68,224,194,150, 41, 72,198, 56, 57, 57,241,114,115,115,239,211, 12, 10, 10,226,154, 76, 38,235,167, +118,201,177,120, 0,236,172,196, 60,157,199,143,215, 43,253, 95, 95,254,165, 68, 98, 41, 5,162,215, 35,184, 67, 27,188, 62,169, +135,240,189, 67, 5,193, 87,210, 52, 29,192, 37, 47,129, 85,187,216,144,207, 71, 21, 10,197,177, 43, 87,174, 72, 21, 10, 5,146, +147,147, 17, 26, 26,138,200,200, 72,169, 84, 42, 61, 10,192,166,254,120,151, 84, 72, 87, 87, 88,250,190,185, 47, 35, 47, 54,215, +124,143,201, 42,168, 36,120,225,147, 67,165, 37,229,186,199, 47,102, 54,254,252, 52,192,181,210,210,210,225, 11, 23, 46, 44, 42, + 40, 40,184,199,100,165,167,167,215,124, 41, 14, 6,208,236,143,223,223,126, 61, 17,178,108,201, 92, 92,137,190,137,199,198,188, +134,171,177,119,241,238, 91,227, 97,175,148,224,212,169, 83,152, 48, 97, 2, 62,250,232, 35, 36, 37, 37,225,219,111,191,101, 34, + 35, 35,153,139, 23, 47, 50,159,124,242, 9,211, 76,151,134,169,203,151, 47,199,149, 43, 87, 48,106,212, 40,156, 57,115, 6,197, +197,197,216,123,236,216,157,221,119,238,188, 91,211,103,171,145,169, 31, 26, 68,169, 84,206, 95,190,124, 57,162,163,163,107, 53, +139,138,138,176,124,249,242, 44, 0, 47,219, 98,178,108,169,151,186,117,235, 22,176,103,207,158,211, 98,177, 88, 20, 26, 26, 26, +152,154,154,154, 5, 32,173, 5,154,229,173,105,169, 42, 44, 44, 60, 31, 25, 25,121,113,200,144, 33,210,233,211,167,187, 28, 60, +120,208, 73,163,209,180, 17,137, 68,174, 6,131, 65,120,251,246,109,238,247,223,127,239,126,235,214,173, 84,157, 78,119,217,154, +242,200,207,207,191,156,144,144, 48,162, 91,183,110,183, 55,108,216,144,229,225,225,193,206,152, 49, 3, 47,188,240, 2, 92, 92, + 92, 44,235,214,173,203, 24, 48, 96, 64,220,221,187,119,195, 53, 26,205, 13, 43,243,250,213,178,101,203,206,237,217,179, 7, 99, +199,142,197, 39,159,124,130,189,123,247,226,215, 95,127,149,252,254,251,239,194,200,200, 72, 8, 4, 2,244,233,211, 7,195,135, + 15, 31, 90,221,220,105,237,247,210, 21,134, 97,162, 24,134, 57, 89,239,245, 74, 83,251,108, 56,182,177,191,155,124, 95,189,108, + 70,214,219,172,103,106, 7,124, 48,179,139, 66,115,126, 90, 31,146, 55,227, 81,162,154, 28, 72,206, 14,114, 36,207,119,100, 42, +167,183,112,122, 7,173, 86, 91,187,237,223,191,159,184,187,187, 87, 42, 20, 10,155,167,119,112,119,119, 87,149,151,151,147, 71, + 30,121,164,216,197,197,165,118, 42, 2, 15, 15, 15, 85,101,101, 37,233,211,167, 79,177,171,171,107,237,244, 14, 94, 94, 94,153, +132, 16,226,227,227,147,211,152,158,217,108, 38,238,238,238, 53, 35,244,248,142,142,142,155,123,247,238, 93,172, 82,169,136,135, +135, 71,237,212, 9, 46, 46, 46,171, 67, 67, 67,235,167, 55,151,223,204,172,172, 44,146,149,149, 69,218,182,109,155, 83, 55, 61, + 61, 61,157,164,167,167, 19, 47, 47, 47,155,167,119,112,113,113, 89,213, 64, 94, 90,148, 71,111,111,111,149, 86,171, 37,253,250, +245,187,167, 76,189,189,189, 85, 58,157,174, 38,221,170,233, 29, 36, 18,201, 75, 98,177, 56, 71, 44, 22,231,136, 68,162,165,237, +218,181,203,255,238,187,239,200,186,117,235,106,134,164,195, 37, 40,162,111,167,126,255,123,215, 37,104,220,252,214, 76,239,160, + 80, 40,126,113,119,119,175,220,191,127,255, 61,247,151, 86,171,181,122,122, 7,137, 68,146,165, 86,171, 89,149, 74,101, 58,119, +238,156, 38, 58, 58, 90, 19, 23, 23,167, 73, 77, 77,213, 22,229,231, 27, 85, 42,149,182,172,172, 76,127,253,250,117,189, 84,250, +247, 76,239, 64, 34,253, 58,145,205, 1,135,238,126,228,123,107,238, 64,169,238,198,146,238,132,252, 48,129,144,163, 47, 16,114, +234, 77,114,121,235, 12,210,207, 87,100, 57,183,160,109, 34,217,226,255,163, 53, 83, 50,144,200,174,157,200,230,128,163,119, 62, +244,189, 53,125, 64, 27,221,182,207,215,145, 75,151, 46,145,184,184, 56,146,156,156, 76,142, 30,248,142,244,235, 32,173,210,220, + 28,112,200,198,105, 30,250,139, 68, 34,245,218,181,107,201,197,139, 23,107, 53, 15, 29, 58, 68,164, 82,169, 6,176,110,212, 50, + 1, 24,178, 57,104,188,249,115,255,223,223, 27, 38,175, 40, 58,242, 38, 33, 55,118, 16, 18, 25, 76,200, 87,189, 9,249,110, 52, + 33,135,255, 71, 46,174,155, 68,250,251, 10, 76,100,139,255, 25,178, 53,200,234,206,246,124, 62,191,124,255,254,253, 36, 39, 39, +135,156, 57,115,134, 68, 71, 71,147,248,248,120,146,145,145, 65,162,162,162, 8,159,207,215,161, 5,203,150,245,118,131, 79,120, +103, 65,238,245, 21,253, 9, 57, 56,133, 20,236,158, 74,198,116, 81, 20,247,105,219,170,249,232,122, 56, 57, 57, 21, 70, 69, 69, +145,212,212, 84,114,250,244,105,226,234,234, 90, 8,192,234,254,178, 99, 30, 27, 64,136,225, 58, 9, 27,216,133,116,235,214,133, + 12,234,223,153,100,223, 93, 79, 66,123,182, 35,155, 55,111, 38, 42,149,138,180,107,215,142,216,154,177,240,240,240, 75,132,144, +152, 81,163, 70,197, 0, 56, 30, 30, 30, 30,147,146,146, 18, 19, 26, 26,122, 17, 77, 79,253,208, 40, 67,135, 14, 53, 18, 66,200, +168, 81,163, 8,128,156,240,240,112,146,146,146, 66, 66, 67, 67, 13, 45, 41, 60,107,234,165,144,144,144,190, 67,134, 12,121, 55, + 36, 36,100,190, 53,211, 59, 52,163,249,160, 38,161,230,162,106,242,207, 32, 0,189,170,183,192,234, 52,110, 43, 52,255,199,231, +243,183, 57, 58, 58,254,234,224,224,112,138,203,229, 70, 2,152,134,150,205,111,198,169,142, 48,254,228,226,226,146,212,173, 91, + 55,237,136, 17, 35,200, 99,143, 61, 70,102,205,154, 69, 88,150, 37,223,125,247, 29,249,232,163,143, 72, 71, 39, 39,243, 58,160, +112, 11,240, 44, 40, 85, 19,150, 62,219,129, 57,253,116,123, 84, 76,105, 15,245,115, 29, 25,107, 38, 44, 13,111,204,104,177, 44, + 75, 18, 19, 19, 73, 88, 88, 88,165, 76, 38,203,134,245, 19,150,222,163,233,236,236, 28,237,234,234,122,223, 36,154,117,210,239, +153,176,212,213,213,245,188,135,135,135,202,197,197,229,106, 67,154,206,206,206,209, 30, 30, 30, 42,103,103,231,123, 38,247,228, +114,185,163,156,157,157,179,235,167,243,120,188, 33,174,174,174,153,245,211, 27, 57,119,184,187,187,103,230,228,228,144,130,130, + 2,226,237,237,157, 83,223,128,229,229,229,221, 99,192,172,209,108, 46, 47, 77,228,177, 65, 77, 43,202,180, 37,215,189, 6, 63, + 79, 79,207,252, 53,107,214, 16, 2, 37, 4, 3, 0, 0, 32, 0, 73, 68, 65, 84,185, 92,126,207,144,103,255,129,207, 45,186,116, + 71, 93,254,194, 91,155,191,107, 96,194, 82,107, 39, 7, 29, 33,147,201,178,195,194,194, 42, 19, 19, 19, 9,203,178,132,101,217, +198,140, 86, 67,154, 35,123,245,234, 85, 84, 88, 88,104,169,168,168, 48,103,102,102,234, 83, 82, 82,180, 75,150, 44, 49, 22, 20, + 20,232,212,106,181, 33, 54, 54, 86,239,225,225, 81, 0, 96,164,173,215,168,133,132,215,111, 62, 35, 91, 3,251,147, 45,129, 81, +241,239,251,220,254, 95,111,153, 62,102,205, 40, 66, 78,189, 73, 46,110,126,129,244,245, 21, 86, 25,162,173, 1,199,200,151,126, + 3,201,250, 14, 66,171, 52,183,117, 28, 64,182, 6, 28,187,181,216,231,246,132,158, 46,134, 61, 59,182,146,164,164, 36,114,232, +251,221,164, 79,251,106,147,181, 37,240, 39,178, 57, 48,204, 26,205,134,204,214,246,237,219, 73, 82, 82, 18,249,241,199, 31,173, + 53, 89,225, 13, 25,173,119,194,229,165, 47,244, 22,235,167,244, 16, 26,198, 5, 11,140,195, 59, 9,204,253,124,120,150,238, 30, + 28, 54,208, 5,100,184,191, 68, 79,182,248,159, 33, 91, 2, 71, 88,155, 79,161, 80,152,129, 58,115,234,212,223, 68, 34, 81, 65, + 19, 70, 43,188, 89,179,229, 39,202,253,229,163, 33,100,108, 55, 69,145,149, 38,171,185,123,169,135,179,179,115,225, 87, 95,125, + 69,220,220,220, 10,172, 52, 89,181,154, 17, 99,134,147,244,187, 71,201,143,223, 45, 39, 97, 3, 3,201,174,237,115,201,165, 51, +239,147,209,143,133,145,240,240,112, 82, 88, 88, 72,134, 12, 25, 66,108,205,167,157,157,221, 46,181, 90, 29,115,226,196,137,152, +240,240,240,152, 93,187,118,197,156, 61,123, 54, 70, 42,149,238,170, 9, 78,212, 55, 91,129,247,215,255,225,245, 34, 90, 49, 21, + 21, 21,228,196,137, 19, 36, 60, 60,156,236,218,181,139,156, 61,123,150, 72,165,210,152,150, 62, 71,214,214, 75,195,134, 13, 91, +148,154,154, 90,190,120,241,226,239, 26,152,176,212, 90,205,164, 7,148,207, 7, 82,135,252, 13,154, 10,137, 68, 18,115,253,250, +117, 82, 82, 82, 66,186,184,185,145,101, 92, 46,201, 18, 8, 72,142, 64, 64, 54, 3,197,255, 2,155, 52,163,177,166,195, 63,155, + 6,141,150, 78,167, 35, 11, 22, 44, 48,136,197, 98,141, 64, 32,176,117, 9,158,135,250, 38,116,118,118, 62,239,230,230,166,114, +115,115,187,199,236,213, 77,119,118,118,190,250, 47,127, 0,253, 4, 2, 65, 58,159,207,191,119, 9,158,160,136,190, 29,251, 79, + 95,232, 22, 28,241, 88, 43,243, 41, 16, 8, 4,239,136,197, 98,205,130, 5, 11, 12,106,181,218, 22,163, 5, 0,195,164, 82,105, +246,206,157, 59,181,119,238,220, 49, 21, 23, 23,155, 47, 93,186,100,138,142,142, 54,124,240,193, 7, 21, 82,169, 52, 27,141, 79, + 75,240,151,148, 39, 89,223, 65, 88, 99,182,110, 44,244,137, 31,219, 69,106,140,156, 55,156,244,109, 87,207,100, 53, 62,147,123, +195,154,213,102,235,218,123,222,241, 97,126,114,243,242,133,175,147, 62,237, 37,247,154, 44, 27, 52,235,155, 45,169, 84, 90,241, +254,251,239,219, 18,201,186,215, 16,110,243,247, 38, 91, 3,118, 85,153,168,102,182,205,254, 95,144,141,254,222,255,148,231,168, +183, 27,124,134,250,137,110,218, 16,201,178, 38,159, 61, 28, 28, 28,110,219, 16,201,170,213,220,184,113, 3,153, 58,121, 24,185, +123,123, 63, 81, 23, 29, 37, 87, 47,172, 37, 19, 35, 66, 72,159, 62,161,100,235,214,173, 36, 33, 33,129, 60,242,200, 35,164, 5, +249, 28, 62,115,230,204,152,148,148,148,152,228,228,228,152,179,103,207,198,140, 31, 63, 62, 6,192,240,186, 45, 65, 53,102,203, + 56,113,162,190, 7,135,243,122, 51,154, 79,205,156, 57,147,164,164,164,144,228,228,100,114,246,236, 89, 50,126,252,120, 2,219, +150,239,105, 81,189, 20, 18, 18,210, 55, 44, 44,108, 97,207,158, 61, 31,123, 80,154,255, 65,163, 37,155, 48, 97, 2,107,177, 88, +200, 99,143, 61,102,249, 12, 40,141,100, 24, 85, 36,195,168,182, 2, 5,255,246,136,214,159,189,224,103, 56,128,147,117, 19,196, + 98,177, 74,167,211,185,200,229,242, 3,106,181,122, 14,170,134, 69,182, 74,243,207,200, 39,213,252, 87,104,122,200,229,242, 13, +106,181,122,188, 88, 44, 46,208,233,116,110, 54,104,218,139, 68,162,215,197, 98,113,152, 70,163,241, 3, 0,153, 76,150,168,215, +235,127,213,106,181,159, 2, 40,253,187,207,157,172,239, 32,132, 80,216, 11, 4,111,199,100, 84,182, 95,126,162,216,103,222, 16, +135,140,126, 29,101,169,224,179,159,128,209, 95,102,158, 77,215,219,172, 41, 97, 66, 97,225,191,125, 57, 77,211,238,147,159, 43, +124,230,135,201, 51,250,117,144,103,128,224, 19,136, 52, 23,108,213,172,111,182,100, 50,217,206,202,202,202, 23, 1,252,106,235, +185,147,125,129, 2, 84,154, 60, 97,226,118, 1,105, 98, 9, 31, 66, 52,224,112,227,144, 7, 21,243,193,109, 35,125,142, 26,214, +252,252,243, 77,228,228,207, 71,161,215, 20, 35, 55,191, 28, 83,167, 61,135, 30, 61, 66,224,236,236,140,101,203,150,161, 83,167, + 78,248,232,163,143,152, 22,228,115,184, 92, 46,159, 26, 16, 16,208,225,214,173, 91,201, 26,141,230, 27, 0, 63,213,255,254, 9, + 0,194,164, 60, 94,119,173,217,124,230, 54, 16,221,140,230, 83,114,185,124,126, 64, 64, 64,240,173, 91,183,110,106, 52,154, 53, + 0,246,210,186,238,225,208,228,112, 56,159,250,248,248, 76, 76, 77, 77,125, 27,192, 30,252,135,248,203,141, 22,213,164,154, 15, +161,102,205,115, 66,254,105,249,252,195,108,177,115,192,160, 61, 8,147, 5, 1,187,174, 25,147,213,188,166,132, 9,133,153,247, + 26, 24,180, 5, 65, 30, 8,231,211,102, 76,214, 95,107, 50, 1, 6, 31, 52, 81,127,125, 0,194, 52,126,189,232, 61,223, 0,139, + 22, 45, 34,199,143, 31,135, 84, 42,133, 86,171,197,136, 17, 35,240,241,199, 31, 51,180, 14,161,154,127,161,230,191, 18, 30, 45, + 2, 10,165, 89,200, 63, 53, 99,204,171,201, 6,178, 47,240, 10, 10,185, 11,192, 65,123,192,156,142, 74,115, 30,243,106,186,161, +149,154,151, 80,200,204, 5, 23,126, 16,154,239, 66,109,200, 99, 94,110,185,230,159,240, 11,145,224,131,127,238,117,121, 24,169, +111,170,162,163,163,105,161, 80, 40,214, 51, 3,247,142, 52,172,253,159, 26, 45, 10,229, 33,135,121,226,182, 17, 64, 86,245,246, +143,213,164, 80, 40,148,255,160,225, 2,131,198, 59,180,217, 18, 18,108, 73, 71,187,147, 84,179, 69,154, 92, 0,118, 0,236, 81, + 53, 7, 73,205,144,222,230,166,217,120, 12,128,137,150, 39,213,164,154, 84,147,106, 82,205,191, 89,179, 57,237,135,177, 73,178, +161, 81,134,145,127,197, 7,135, 83,205, 7,202, 8, 90,158, 84,147,106, 82, 77,170, 73, 53,255,165,154,255, 74, 56,180, 8, 30, + 42,196,180, 8, 40, 20, 10,133, 66,249,199, 17, 82,253,234,129,170,232,150, 71,205,142,191,181,143,150,196,169,179, 7,120,156, +110, 12, 75, 2, 0,128,112,152,120,152,217, 88,109,209,157,220,214,106,203,219,248, 57, 18, 8,247, 49, 48, 60,161,206, 73,108, +245,100,104, 93,252,148, 19,221,156, 21, 83,243,138,202,118,222, 76, 80, 31,180,229, 88, 59, 59, 31, 59,177,163,195, 36,189,209, +212, 69, 40, 16,100, 24, 75,203, 35, 75, 74,146, 43, 90,144, 13,199,166,118,126,240, 1, 97,142,228, 94,101, 4, 82, 35,199, 73, + 41, 96,212, 80, 19,117,174,156,245, 45, 77, 37,223,127,255, 4,177,245,218, 48, 28, 12,150, 41, 20, 61, 69, 98,105,168, 84,225, +208,153, 37, 64,177, 42, 59,205, 96, 50,159,181, 24, 52, 49,132,197,111, 15,226, 90, 81, 40, 20, 10,133,242, 47, 48, 90, 87, 1, +140, 70, 85,147, 97,243,157,225,125,130, 30,189, 34, 22, 75,124, 1,128, 37, 4, 44, 1, 42,203, 75, 99,242,146,163, 71, 0,128, +115,187,144, 19,124,177,178, 39, 75,170,246, 91, 88,192,108,212,165,150,167, 95,122,196,154, 28,201, 92,252, 38, 12, 9, 31, 58, +113,204,152,209,254, 93,187,116,237, 8, 0, 55,226,110,220, 61,114, 36, 42,225,212, 73,102,127,101, 65,226,143,173, 57, 99, 2, +241,199,189,122,245,120, 52, 58,250,234, 71, 0,102,181,182, 4,157,156,228,115,126,250, 97,193,192,161, 19, 87,203, 0,219,140, +150,216,209, 97,210,184,177, 35,123,188,241,234, 76,206, 11, 11,150,249, 94, 57,247,219, 74,185, 71,112, 41, 97, 77, 63, 85,170, + 38,255,222,212,194,201,245,253, 99, 99, 6,235,155,226,227,156,117, 95,245,117,208, 22,223,157, 76, 88,203,100,134, 97,192, 21, + 74,191,119,233,240,232,119,246,131,231,149, 0,176,122,196,152,210, 35, 40,220,213,195,107,255,228,231, 94, 23, 75,237,220,120, +224, 10, 0, 48,200, 73,187,141, 83,123,151, 59,188,246,225,246,144,115,177,233,230, 95,126,216,164, 99, 4,252,137,154,220, 91, +116,136, 47,133, 66,161, 80,254,203, 68, 85,155,171,168,250, 59, 26, 53, 90, 98,177,196,247,226,111, 71, 28,127, 60,155, 9, 0, + 8, 15,113,199,187, 75, 54, 12,223,181, 62, 58, 1, 0,250, 14, 25,227,247,209, 59,175,226,252,205,124, 16, 66,208,163,147, 19, + 30, 27,247,132,117,198,195, 45,240,145, 73,147, 30,127,122,193,130,249, 17, 73, 73, 73,105,123,246,236,249, 29, 0, 6, 12, 28, +216,105,217,178,101, 79,174,118,112, 20,125,251,253, 15,217, 58,213,237, 43, 45, 57, 91,113,155, 14,158,254,157,219, 79,253,246, +203, 13,156,193, 35, 30,159,146,134,202,229,186,156,228,108,107,142,117,118,118,158,203,231,243,237,128,170,213,216,107, 48, 26, +137, 59, 0,152, 45,172,194,161,141,127, 5, 87, 32,182,136, 68,130, 91, 21,106,245,206,242,236,219,219,154,210,212,155, 76,193, +175,189,252, 44,231, 90,114, 17,124,131, 7,112,215, 45,127, 15,172,197,228,240,250, 59, 75, 38, 69, 95,250, 22,149, 42,156,182, +242,212,248,245, 19, 60, 61,251,112, 63, 94, 46, 31,198, 48,248,159, 79,223,231,198,127,180,227,123,126,175, 78, 74,232, 77, 44, +142,197, 20,245,221,252,233,199,171,206,109, 30,125, 24,192, 86, 0,191, 0,104,214,212, 57, 58, 57,126, 51,119,225,167,242, 74, +195, 31,163,189,171, 77, 22,190,216,185, 15,215, 51, 89, 4,248, 7,240,220,231,174,148,111, 93, 50, 99,135,166,106,157, 45, 10, +133, 66,161, 80,254,171,228,226,222,206,239,145,205, 26, 45, 0,144, 75,120, 72, 72,201, 3, 0,216, 75,128, 57, 47, 77, 71, 81, + 97,129,159,193,204,226,185,233,211,112, 53, 62, 23, 9,169, 5, 32,132,192,207,203,234, 69,184,193, 5,219,235,185,231,159, 27, +116,226,167,159, 46, 47, 90,184,232,107,134,193, 5, 0,216, 26,249, 69,223,197,239, 47,126,113,218,244,105,195,190,255,254,251, +155, 0, 90,100,180,120,140, 98,195,170, 21, 75,133, 89,133, 58,221,220, 5,111,179,243,231,205, 93, 7,224,113,171,156, 12,159, +111,151,149,149, 37,231,112,238,237,190,246,201,210,183,207, 12,155,184,250, 78, 90, 70,233,181, 19,135, 14, 61, 18, 20, 20,132, +172,236,188,254, 43, 63,219,210,253,216, 9,201,179, 21,229,218,137,154,194,219, 13, 46,218, 44,226,243,111,126,184,114,115, 15, +214,190, 19,231,221, 23, 71, 33,184, 99, 27,100,231,151, 98,224,136, 8, 94,204,149, 43,195, 1,171,141, 86,253,201, 3, 39, 25, +216,252,238,203,118, 94, 26, 58,190, 95,155, 94, 28, 14, 23,106,173, 9, 5,101,122, 88, 88, 96, 64,160, 29, 70,238,250,140, 87, + 92,105,154,176,228,135,204, 9, 23,214,143, 81,233,202,114,102, 3,216,223,244,199, 16, 71, 47, 87, 37, 18, 50, 43, 26, 52, 89, +149, 58, 51, 0, 64,192,181,128, 1,113,162,207, 23,133, 66,161, 80,254,227, 52, 58,234,144, 3, 0, 71,142, 28,105,176,255,142, +197, 66,144,144,154,139,132,212, 92, 92,142, 47,128,145,240,177,110,229,135, 88,179,252,125, 20,107, 57,248,241,124, 38, 18, 83, +243,144,152,154,135,194, 18,117, 67, 18,247, 52, 41,173, 94, 46, 9,249,244, 83,229,170,225, 3,101,131, 29, 29, 28, 28,238,220, +252,186,114,241, 60, 85,224,135,175,101, 10,248, 6, 81,150, 76, 46,235,183,111,223,119, 65,110, 46,174, 50,185, 92,241,166,212, +179,251,118, 59,187,251, 86, 74,111,178,153, 74,226, 26, 16, 17, 49,122,228, 16,119,119, 55,118,230,186,152,248, 46,129, 1,166, +206,157, 58,247,151,184,118,142,104,226,176, 90, 77,150,101,193,225,112,160, 82,169,144,147,147,131,148,148, 20, 36, 38, 38, 34, + 51, 51, 77,197, 18,194,183,128,229,120,120,120,129,199, 19,194,183,157, 15, 54,175, 91, 46, 93,242,193,187,161, 98,153,240, 96, + 61, 35, 84,171,169, 43, 46,249,254,232,241,159,178,143,237,217,108, 1,128,252, 18, 53, 78, 93, 73,194,213, 91,153,182, 94,200, +250, 83, 56,180,203, 78, 79, 42, 55,167, 70,113, 63,122,111,126,230,217,179,231,210,202, 42, 12,168,208, 24,161,209,153,160, 55, + 88, 96,178,176,240,113, 17,227,192,219, 93,112,232,215, 88, 55,134, 97, 62,109,174, 60,245,122,147,229,209, 0, 25,166,132,181, + 69,128,151, 12,217, 9, 23, 48,119,225,167,136, 78,209,163,164,164, 20,166,202, 66,176,234, 44, 20,166, 94,133,217, 98, 33,205, + 93,247, 7, 4,213,164,154, 84,147,106, 82,205,127,177,102, 99, 94,228, 33, 33,178,129, 13,181, 70,171, 49,238,102, 22, 35, 33, + 37, 15, 61, 3, 60,209,177,157, 7, 46, 39,150,224,155, 83,153,216,126, 34, 29,167,174, 23,128,229, 41,144, 87, 14,220, 73, 83, +225, 78,122, 97,179,243,103,115, 69,252,201,175,189, 86,182,160,107, 80,121,159,223,142,205,129,167,203,157,160,183,222, 42,157, +195, 21,241, 39, 59,180, 85,236,121,123,193,235, 83, 21, 82,169,208,160, 55,160, 67,123, 31,241,171,179,231, 60,203, 56,136,172, + 94, 19, 73,225, 25,232, 32,146, 72,182, 45,249,224, 77,209,167, 63,222,201,168, 52,160,114,255, 5, 85,242,252,183, 23, 23,243, +248,226,205, 10,207, 64, 7,107,181, 76, 38, 19,244,122, 61, 12, 6, 3,140, 70, 35,178, 51,111, 71,252,242,227, 27, 35,218,183, +117, 28, 33, 18,139, 65, 0,148,107,205, 72,201,213, 32,108,232, 48,110,207,144,144, 96,185, 71,224,243, 13,105,149,149,165,151, +177,132,171, 56,114, 96, 55,247,187,159,175,225,235, 35, 87,112,240,215,107,184,124,250,152,153,176,166,218,245,191,228, 30,157, +252,228, 30, 93,211,229,109,186,169,106, 55,207, 46, 77, 78,207,204,229,114, 72,216,208,240,147, 47,205,122,245, 55, 77, 69, 81, +254,182, 13, 31,102, 23,228,164,221, 22, 9, 24,179, 84,196,133, 90,103,198,142, 95,114, 48,105,249,117,220,202, 80,131, 16,210, +236, 2,222, 44, 48,111,242,243,111, 88, 76, 70, 35,252,189,229,216, 29,185, 2, 17, 97,221, 49,164,171, 3, 30,233, 40,131,148, +167,199,205,248, 4,236,221,189,195,204,178,156,249,244,135, 12,133, 66,161, 80,104, 68,171,118,243,168,187,163,209,166, 67,157, + 78,155,250,248,228,105,240,112,117,151,143, 27,252, 63, 65,204,221, 82, 20,228,166, 35, 41, 49, 14, 26,157, 9, 2,135,246,128, +216, 29,237,124,125, 16,155,112,208,184,126, 85,148,154, 53,235, 83, 27,211,139,136,240,240, 74,138,103, 56,171, 86,122, 95, 76, + 76, 40,233,185,123,225, 87,120,250,105,185,243,170,149,222, 23,211,146,101, 28,169,152,244,123,118,250, 20,134,195, 16,188,245, +214, 2,140, 27, 51, 18,207, 61,251, 12,179,115,231,142, 62,165, 86,158, 37, 11,254,198,119,222,251, 80,168, 42, 53, 27, 46, 39, +170,245, 82,153, 68,114,238,142,186, 50,216,215, 91, 50,106,226,255,114,162,246,109,251, 20,192,116,107,180,106, 12,150,201,100, +130,209,104, 4, 0, 11, 0,112, 56, 85,175, 69, 21, 6,228,151,234,161, 42,213,195,108, 97, 49,113,242,116,201,149,232,235,211, + 1, 52,210, 95,139,101, 77,102, 19,246,255,124, 21,217, 87,190,103, 25, 14,183,172, 78,103,120,200, 61, 58,249,185,187,123,159, + 25, 51,241, 25, 23,161,184,170, 25,182,162, 82,143,157, 91, 86, 54,153, 79, 14,195, 16,214, 98, 46, 53,155, 76,149, 29,218,119, +200, 14, 8,234, 46, 62,251,219,137,136,115, 39,247,171,205, 29,158,177,191,155,150, 11, 46, 95, 4,174, 64, 12,189,209,186, 31, + 11,170,164,139,155, 0, 48,207,191,178, 96,221,235,111,188,203,157,183,254,119, 24,116, 26,232,181,149, 40, 47, 43,129,132,103, +194,205,243,135,204,196, 98,122,189, 50,247,218, 38,250,124, 81, 40, 20, 10,229, 63, 78,253,229,119,106,211, 26, 53, 90,233,183, +206, 62, 2, 0,126,189,134, 23,201,197, 60, 71, 30,135,129, 42,235, 46,118,174,158, 11,150, 37, 24,245,226, 42, 40,124,221, 33, + 17,112,161, 87, 23,169,139,239,158,110,178,175, 14,195,152,134,109,218,154,237,251,202,203, 29,148,187,119,171,249, 0,176,123, +183,154,255,242,204,182,202,207,183,166,250,246,126,180, 39,136,197,130, 49,227, 30,199,228,167, 38, 35, 45, 79,131, 31,206,100, +160, 82,107,176,106,180,156,196, 57,160,187,179,147,203,200,215,254, 55, 82,198,227, 50, 76,103, 31, 59,110,102,129,201,204,229, +242, 45,135,175,148,229, 76,156,248,148,243,169,163,223, 13,177, 56, 7,116,215, 22,198, 95,111, 78, 79,175,215,195, 98,177, 64, +175,215,195,100, 50,193,209,185,253,209, 97,143,175,206,202,205,171,136,202, 43,209,245,174, 52,153,161, 42,213, 35,191, 84,143, +210, 74, 35,220, 21, 14, 48,155, 12, 93, 27,211, 35,132,124, 61,254,241,105,207, 0,224, 48, 28,243, 87,234,220,248,196,170, 61, +127,152,172,145,227,158,118, 57, 19,115, 23, 73,209,199, 74, 8,107,174,154,197,157, 97,179,154, 46, 87, 16, 46, 3, 86,192, 99, + 76, 92, 14,135, 53, 26,213, 38, 87, 87,151, 83,167, 79, 29, 31,171, 51, 39,131, 43, 16,213,190, 87,107,176, 88,125,199,168,146, + 46,110, 4,128,207,214,175, 91,211,111,216,211,130,211, 87, 83,161, 53, 1,125, 67,252,112,224,219, 47,244,132,152,222,168,204, +189,182,145, 62, 91, 20, 10,133, 66,161,220, 99,176,162, 80,213, 57,254,222,136, 86, 77,219,232,152, 49, 99,238, 91,173, 61, 91, + 85, 12, 39, 57, 15, 46,109,124, 49,117,238, 26,124,253,233, 60, 88, 44, 38, 16, 2,152, 45,214,205, 76, 64, 8,255,231, 89, 47, +251, 6,180,243,229,186, 76,125, 90,170,253,102,183, 70, 50,245,105,169,182, 75, 87,167,178, 89, 47,251,166, 86,232,188,251,155, + 45, 22,156,187,153,143,184,212, 50,196,165,149, 67, 46,177,126,154, 47,174, 80,240,242,202, 21,203, 5, 60, 46,195,220, 76, 87, +171,179,138,204,106, 46,159,111,148, 74,132,196, 64,120,250,180, 66, 82, 52,116,252,179,218,195,187, 62,123, 30,192,236,198,116, +106, 70, 26,214, 68,178,106, 94, 9, 33,132, 1, 88,150,177, 88,178, 10,117, 80, 27, 77, 80,149,252, 97,180, 24,115,227, 45,167, +114,143, 78,126, 74,133,252, 56,151,203, 21, 17, 2,152,140,230, 39,225,209,105,132, 58, 55, 41,177,174,201,186,120, 51, 7,119, +175,157, 84, 89,140,154,105,154,252,132, 95,172, 61,119,134, 1,225,114,193,114, 57, 12,203, 48, 96,249, 28, 98, 0, 33,108,253, + 28,105,108, 48, 90, 53,102, 75,200,231, 46,252,105,239,167,174,207,141, 14,196,183,103,170, 60,159,174,162,160,188, 50,155,154, + 44, 10,133, 66,161, 60, 88,154,242, 34, 15, 81, 84,235,254,136, 86, 83, 39, 68, 8,112, 39,189, 16,237,188, 92,224,213,174, 35, + 18,111,199,254,177, 15,128,217, 98, 93,115,212,161, 67,185, 89,107,214, 40,217,121,243,202,250,174, 92,233,125,225,229,153,109, +237,186,116,117, 42,123,243,205,140,190,107,215,218, 93,248,249, 34,223, 66,170,231,235,170,153,155,139, 16, 91,250,197,113, 66, +187, 7,181,231,126,184,251, 78,198, 47, 55, 42,242, 5, 2,129,201,221, 65,204, 40,228, 66, 46,151,195, 23,234, 77, 28,189, 95, +112, 8,247, 48,135, 9,105, 74,165,198,104,213,111, 58, 44, 42,184, 27,241,211, 15, 11,186, 12, 30,191,202, 49,187, 64,139, 50, + 3,183,182,233,144,203, 97,112,227,118, 58,192, 21,196, 53,164,169, 84, 56,158,216,243,205,215,222,107, 87, 46,133,209,108,193, +172,121,139,240,236,244,105, 39,224,209,105,132,183,175,127,204,239,135,191,146,142,152,185, 25,233, 9,209,121,102,125,249, 94, + 91, 76, 86,173,217, 2,136,133,176,156,226,146,114,185,222, 12, 49, 26,240,125,122, 35,219,162, 59, 71,173, 53,227,240,165, 60, + 28,249,113, 47,236, 20, 50, 90, 19, 80, 40, 20, 10,229,129,243,144,154, 43,212, 51, 87, 64, 99, 17,173,166,240,241,114,195,165, +184, 84,116, 13,104, 15, 59,165, 2,241,119,179,192,229,240,193, 97, 0,147,217,122, 51, 68,140,166,111,215,174,181, 67,122,170, +140,243,249,230, 84,223, 89, 47,251,166,174, 93,107,119,129, 24, 77,223, 2,152, 70, 8, 80,101,182,170, 12,151,197, 6, 95, 64, + 88, 83, 91, 55, 71, 41, 55, 58,185,178,136,195,225,234,157,236,196,172,147,157,136,227,164, 16,242, 5,124, 46,107, 38, 28,163, +151,171,175,142,176,108,119,107,244,234, 54, 29, 90, 44, 22, 48, 12,199, 82,109,196,100,153, 69, 90,148,233,184, 80,149,234, 81, + 82, 97, 68,103, 79, 25, 78,158,250, 94, 99, 49,105,119, 55,164,197,229, 11,236, 58,250,122,225,221,143,215, 66,171,183,224, 78, +182, 26, 2,145,200,221,205, 61,248,250,180, 87,222, 22,189, 26,121, 23,207, 15,113,194,188,223,239,102,107, 84,226,183,109,185, +178, 22,139, 5, 90,157, 65,160, 42, 44,113, 40,175,168, 84, 74,196, 34,173,139,163, 93, 97, 67,239,213,217, 24,209,170, 65, 42, +230, 97,108, 31,119,232,140, 83,160,213,155,113,254,151,253,180, 70,160, 80, 40, 20, 10,229, 15, 26, 93, 64,218, 42,163, 37,151, +138, 65,184, 98,252, 30,115, 23,254, 65,221,176,227,208,101,116,234,218, 7,185, 21,102, 16,112,154, 29,109, 88,195,130,119,180, + 87, 1, 92,141,136,144,122, 77,152,224, 57,140, 16,254,207,155,183,150,103, 1, 64,251, 46, 85, 50, 44, 75, 64, 8, 64,216, 42, +195,101, 53, 12, 47, 61, 53,183,188,157,175,187, 12,183,178,140,122,153, 72,192,113,144, 9,185, 46,118, 66,129,128,199,131,133, + 48,250,220,220,187,122, 6, 72,179, 70,174,126,211,161, 84,238,113,116,232,248, 85, 5,105, 25,101,209,157,139, 53,221,203,140, + 66, 16, 2,116,246,148, 33,238, 98,148, 69,149,157,116, 71,171, 74,216,210,144, 22,203,130,107, 52,179,184,158, 92,134,210, 74, + 19, 74,213, 70,244, 15, 27, 43,232, 31, 30,129,223,227, 10,193,154, 77, 88,249, 69, 84,133,133,152, 38, 3,183, 77, 54,156, 52, +231,210,213,155, 94, 5, 37,149, 34, 62,143, 87, 26,208,201, 39, 69, 40,224,155,203,203,203,133,247,190,139, 11,153, 68,136, 98, +181, 9, 0, 76,182,222, 61,101,149, 38, 28,186,152,135,195,251,247, 64, 34,145,128,208, 7,138, 66,161, 80, 40,148,186,120,160, +106,249,157,168,234,215, 90,243,101,213,162,210, 22,150,192,217,201, 17, 98,153, 18,169, 42, 35, 42, 24, 87,148,104, 8, 44,150, +170,136, 86, 19,129,167, 6, 87,247, 62,116, 40, 55,235,224,193,194,237,135, 14,229,214,233,232,253, 71, 36,171,246,149, 37, 86, +107, 50,196,114,242,208,177,223,202, 34,122,187, 56,112,184, 92,173,128,207,209,243, 4, 92,163,128,199, 49, 9,120, 28,131,155, +146,207,253,237,240, 94, 33, 97,240, 91,115,154, 58,157, 14,225,225,225, 24, 53,106, 20,198,141, 27,135, 39,158,120, 2,126,126, +129,174, 28, 46, 99, 32, 12,203,186, 8, 43,208,209,133, 1, 79,151,137, 95,246,126,162,137, 59,119,224,186, 69,175, 27,139,123, + 45,231, 31,154,132,176,197,101,122,232,140, 22,148,168,141, 40,169, 52,194,236,210, 23, 7,206,231, 64,107,176, 32, 61,230,123, +109, 65, 94,214, 92,125,126, 82,106, 51,151,226,173,123,255, 37, 89, 47, 60, 55,189, 64, 33,230, 36, 13,232,247, 72,129,179,147, +163,153, 97,254,136,188, 50, 12, 3,177,210, 21, 14,246, 10,164, 94, 61,134,159, 86, 14,213, 2,120,207,154,242,172,139, 82,202, + 67, 68,111,119,140,157, 56, 5, 93,251,140,176,198, 88,211, 21,237,169, 38,213,164,154, 84,147,106,254,151,168, 89,227,176,230, +213,186,153,225,107, 12, 80, 7, 15, 25, 58,121,202,160, 51,186, 66,103,176,160, 82,103, 65,185,198,136,114,141, 9,169,121, 26, +196, 29,106,125, 14,171,162, 88, 85, 51,126, 18, 2,128,169, 50,120,214, 70, 79,132, 70,195,199,107, 86, 46,123,114,111, 72, 15, +195,171,163, 61,218,198,166, 26,114, 24,134,163,229,112,121, 38, 71, 5,143, 31, 31, 31, 91,112,225,204,209,129, 98,179,229, 25, + 77, 19, 58,102,179,185,204,211,211, 19,192,189, 75,240, 4,118,148,140, 59, 23,245, 86,251, 65, 17, 43, 93, 62, 93,186, 64,195, +225, 10, 88,134, 39,136,179,152,180,123,180,170,132,205,104,194,126,112, 4,226,219,151,174,221,234, 99,239,216, 22, 73,217,149, +168,212,153, 97, 52,179,112,144, 11,144,117,227,132, 49, 53, 62,250, 59,117, 78,236,142, 22, 20,219,238,196,219,113, 94, 35, 71, +142,120,188, 79,159,190,220,197,139, 23,193,223,223, 31, 90,173, 22, 28, 14, 7,109,219,117, 68,106,226, 53, 92,140,250,216,162, + 41, 74,219, 2,224, 35, 0, 5,182,126, 72, 97,185, 1,199,162,243, 17,245,227,183,224,242,133,244,113,162, 80, 40, 20, 10,229, +126,102,212,123,141,180,202,104,233,116,186,212, 71,195,199,130,101, 9, 44, 4, 96, 45,213,145, 39,246,143,232,147,197,164, 75, +109,109,238, 88,214,114,121, 99,228,246, 81, 33,161,131,184, 65,222,114,148, 23,229,225,226,185, 95,205, 96,201, 5,107,142, 47, + 42,186,163,150,184,117,122,252,201, 73, 19,246, 77,127,110,102,233,192,176, 48,153,171,171,187, 62, 43, 59, 75,243,229,174,111, + 76, 39,142, 30, 28,200,194,252, 84, 81, 81,146,186, 41,157,178,178,178,207, 26, 74, 23, 9,229,253, 1,180,231,242, 24,131,182, +224,142, 77, 61,194, 11,179, 51, 39, 46,251,248,131,180,167, 95,124, 93,216,193,179, 35,242,203,184, 72,205,202, 67,252,153,131, +250,236,196, 43, 63,150,103, 93,125,222, 74,169,220, 6,210,178, 0,124,122,241,226,133,224,145, 35, 71,142, 24, 50,100, 8,153, + 49, 99, 6, 8, 1,126,137,124,153, 20,167, 94,252, 30, 85, 81,172,228, 22, 94,151,244, 51, 23,174, 57, 62, 49,176, 23,207, 73, +241, 60,182,127,123,212, 4,194,166,211,231,137, 66,161, 80, 40,148, 90, 90,222, 71, 43,243,118,213,124, 90,127, 54, 21,121,249, +211,118,236,248,122,201,215,187,246,246,215, 25, 12,158, 4,130, 76,139,217,112, 90,109,193, 98,107, 53,180,170,164,104, 39,167, +206, 93,190,252, 98,227,123, 95,110,255,124, 16, 88, 75, 0, 3,164, 17, 6,191,137, 77,150,233,205,153,172, 38,205, 82, 97,197, +214, 97,143,175,214, 22, 21,169,191,182,245, 88,109, 81, 66, 30,135,107,108,187,117,221,199,171, 56, 28,238,112,139,133,229,179, + 22, 83,146,197,168,251, 68, 91,144,112, 8, 86,247,114, 67,113, 19,251,110, 2,184,121,234,212,169, 1,167, 78,157, 10, 5,240, + 25,170,214, 80,140,110,205,117,209, 23, 85, 12,125, 99,193, 27,191,204, 7,227,195,178, 4,102, 11,155, 46,208,106,134,210,103, +138, 66,161, 80, 40,148, 90,102,224,254, 73, 75,173,139,104,253, 85,148,148, 36, 87,160, 4,175,182, 86,167,168,232,142, 26,192, +125, 35,247, 52,173,212,141,187, 83,254, 3,238,148,255,208,210,227, 43,243, 83, 10,128,148,233,173,204,134, 53, 29,217,127,175, +222, 30, 8,133,133,183, 43, 81,136,222,244, 25,162, 80, 40, 20, 10,197,102,195,101, 93,103,120, 10,133, 66,161, 80, 40, 20, 74, +179, 38,171,238, 43,128,170,190,231,141,141, 28,176,101,101,238,150,140, 62, 56, 73, 53, 91,173,201, 7, 32, 4, 32, 7,208, 92, +147,230, 8, 84,175,215, 72,203,147,106, 82, 77,170, 73, 53,169,230,223,168,217,156,246, 73, 80,254, 84, 3, 70, 53,169, 38,213, +164,154, 84,147,106, 82,205,255,158,230,195,204,140, 6, 54, 0,255,160, 62, 90, 20, 10,133, 66,161,252, 85, 56, 57,117,150, 3, +181,253,122,155, 69,234, 28,232, 6, 0,154,194,219, 42, 90,122,148, 6,168,187,206,225, 3,233,163,197,231,240,132,111, 72, 21, + 78,183,101,118, 78,217,255,241,194,101,252,218,201,230, 12, 27,232,123,192,191,189,100,156, 45, 7, 74, 93,252,190,114,239,216, + 59, 67,230,234, 55, 7, 30, 33,146,214,100, 66,230,218,222, 69,222,182,215, 57,133,103,240, 99,127,194, 57,138,130,130,130,250, + 6, 5, 5,245, 5, 32,122, 16,130, 82, 87,191, 41, 94,157,250,156,113,237,208,227, 87,153, 91,231, 73, 15, 58,195,114,143, 78, + 78,242,182, 61,127,144,183,233, 86, 34,247,232, 86, 46,247,234,121, 90,225, 28,216,161,185,227,218, 70, 44, 11,248,112, 79,220, +158,182, 17,203, 2, 26,218,239, 48,114,189,226,253,189,119,150, 58,141,253, 68, 78,235,149,150,209,182,255, 20,123,143, 65,243, +157,108, 61,206,211,175,207,205,118,193, 3,242,219,116,238, 29,103,237, 49, 94,254,125,175,250, 4,245, 87,121,249,245,141,166, + 37,111, 29, 98,151,246,125,197, 14,222, 81, 34, 7,239,163, 34,199,246, 97,173,213,243,240,240,144, 4, 4, 4,140,236,211,167, +207, 75, 67,135, 14,125,173, 71,143, 30, 51,124,124,124,134,255,157, 63,244,165,174,126,239,232,249, 76,161,158,207, 20, 74, 93, +253,222,105,190,126,245, 95,194,112, 44, 57, 12,199,146, 35,115,245, 95,242, 79,185, 86, 34, 55, 63, 31,169,171,223, 90,133,123, +208,101,137,107,231,177,182, 30,239,224,224, 48,220,197,197,101,124,205,230,224,240,127,246,206, 59, 58,138,234,111,227,207,204, +108, 47,105, 36,217, 52, 66, 47,161,134,222,123,141, 84, 65,144, 42, 8,210, 84, 16, 20, 5, 20,165, 11, 63,165, 35,162, 52,145, + 38,189,133, 42, 29,148, 26, 32, 16, 32,129,244,158,108,218,102, 55,219,119,231,190,127,108,130,148,148, 13,224,107,187,159,115, +246,108,102, 50,121,114,103,238,204,157,231,126,111,243,232, 65,159,128,151,230,233, 40,214, 43, 71,180, 56,161, 68,126,121,248, +152, 15, 26, 44,153, 59, 83,186,114,211, 65,172, 92, 52,253,190,169, 32,175,222,223,241,204,189,170,181,184,201,177, 92,197,167, +247,217,121,123,114, 86,236,245,102,175, 67, 63,168,138,108,236, 23,159,141,252,120,216,219,221, 42,119,235,243, 17, 19, 25,107, + 56,228,188, 69, 67,163,221,251, 14, 4, 94, 60,127,110,245,166, 77,235,231,171,109, 65,203,133, 18,193,119,249, 73, 17,121,229, + 73,131,171,119,245,106, 2,133,215,197,118,253, 63,240, 13, 59,189,125,139,221,204,119,215,103, 61,181,250,247,203,227, 93,163, + 70,141,230, 28,199,121, 78,158, 60, 89, 4, 0, 43, 86,172,168,105,183,219,179,163,163,163,111,224, 37, 38, 63,117, 24,204,160, +145,171,190,157,183,245,141, 55,122, 33, 53,171, 0,223, 44, 95,219,233, 68,232,238,193, 5, 25,143,246,190,142, 60,113,119,175, +234, 10,145,203,221,143, 62,155,175, 10,233,212,156,211, 25,109, 56,113,241,118,251,237,107,231, 95, 7,234,182,208,102, 61, 40, +113, 78, 49, 94,175,153,237,163, 36, 33,188, 94, 3, 0,195, 94,120,217, 43,173,221,188,101,246, 16, 63,137,224,118, 54, 80,230, +162,143,238, 85,218,158, 20, 74, 36,149, 89,150, 5,203, 0, 44,203,128, 99, 24,199, 58,161, 22, 67, 66,202,195, 75, 61,255, 14, +207,137, 75,165, 22,233,224, 4,158, 44,243, 71,250, 24,182,240,155,144,252,244, 71,151, 61, 95,195,191,113,107, 80,211,189,126, +219,154, 5,155, 47,196,230, 40, 4, 29,166, 30,101, 8,251,125,226,165,229,119,156, 50, 0, 82,169,199,145, 35, 71,188, 67, 66, + 66,220, 84,245,251, 95,112,230,111,196,156,174, 94,104,232, 97, 81, 72, 72,207,114,220,159,181,187,131,101,183, 49,128,144,231, +201, 10,142, 39,187,117,217, 81,209, 64,249, 86,159,146,169,130,198,178, 32, 78,151, 51, 60,152,155,134,204,200, 77, 47,123,113, + 5, 18,215,174, 66,145,104,106,181,218, 13,155,164,196, 63,190, 89,160,211, 46,183,153, 52, 23,202, 45,100,181,125,122,250, 82, +216, 27, 2,161,144, 9,233,218,146, 51, 1,231, 94, 37,211,125,124,124,222, 92,179,102, 77,245,214,173, 91, 3, 0,108, 54,155, +235,158, 61,123,124, 23, 44, 88,160,136,138,138,122,217,133, 83, 3,188,189,189, 43,137,197,226, 0, 0, 48,155,205, 41,106,181, + 58, 17, 64,153, 21,127,133, 79,117, 47, 16,204,191,116,241,162, 0, 0,218,183,239,176,176, 82,187, 15, 61, 56,145,210, 80,236, +229, 48,107, 21,121,209,231,166, 93,189,118,133, 1,128, 86, 45, 91,207,148,123,213,253,238,175,140,108, 73, 85, 65, 45, 89,224, +227, 86,237,187, 13, 28, 50,116, 36, 91,191, 86, 37,244,232,222,101,134, 1, 56, 82,174,123, 70, 32,144, 93,191,126,189, 6,203, +178,156,205,102, 51,182,106,213, 42,241, 85,210,229, 95,187,245,239, 12,216, 64,139,205,188, 65, 29,115,115, 33,240,194,194, 49, +156, 91, 96,147, 47,192, 9,198,241, 60,159,164, 77,188,217,230, 95, 24,209,122,241, 58,151, 87,137, 21,136,167, 14,123,247,253, + 6,211, 62,249, 92,250,209,202,179, 56,186,118,102,214,223,213,100, 1, 0,199,114, 21, 79,158, 58,169,146,139, 57, 0,128,206, +104,195, 27, 33, 33,101,191, 17,170,180, 56,207, 50, 76, 80,209,130, 54,118,155, 69, 42, 16,138,141,140,195, 32,129, 1,224,229, + 95,229,172,143,237,178,124,216,219,221, 42,111,251,229,215,228,196,228,236,114, 23,106, 12, 39, 66,171, 14, 61,208,173,123, 79, +183,235,215,126,159,191,254,135,117,179,108, 22,235, 58,222,202, 47, 55,230, 60, 78, 45,179, 48,247,173,213, 84,172,244, 58, 49, +112,194, 2, 79, 35, 91, 1, 95, 45, 90,229,117,241,248,142, 11, 41, 73,141,248,132,132, 36, 35, 97,152,251,185, 57,105, 83, 11, +210,163, 35,157,189,100, 74,165,178,186, 82,169,108, 20, 28, 28, 44,157, 62,125,186,176, 83,167, 78,127, 88,246,241,227, 69,231, +207,159,247, 91,186,116,105,175,240,240,112,163, 78,167,187,163,211,233, 98, 80,142,142,246,190,190,222, 31,190, 53,160, 47,186, + 12,252, 0,118,158,193,248,247,167,225,228,241,253, 19, 1,188, 22,163,101,149,187, 46, 24, 55, 97,186,119,171,230,141,185,249, + 59, 34, 33, 19, 11,208,179, 89, 16,243,238,228,217,238,155, 86,207,223,136, 44,116, 44, 46,146,197,235, 53,179, 27,120,153,135, +246,107, 93, 13,135,119,154,135,162,235,103, 96,229,110, 11,147, 14,127,254, 16, 0,170,135, 76,118,145,216,213,107,252,221, 57, +149,196,174, 94, 83, 61,100,242,233,152, 19,107,180,165,165, 69, 40,145, 84,222,185, 99, 71, 45, 15, 23, 17, 4, 44, 3,142, 99, + 32,224, 88, 24,205,118, 12,126,123,232,107,187,205,101,170, 90,189, 88,224, 93,199, 11, 27, 63, 25, 50, 31, 29, 43, 79,158, 48, +156,200, 51,244,240, 1,129,202, 77, 2,142, 99,192,177, 0,199, 50,136,207, 48, 96,236,216,119,221, 94,213,176,191,209, 86,213, +252,211, 33, 65, 61, 91, 53,168, 16,188,235, 10,227,214,234,141, 33,158, 89, 70,249,232, 95, 14,157, 27, 74,218, 79,187, 70, 8, +255,109,242,229, 85,167, 74, 19, 49,153, 76, 25, 61, 67,222,112,101, 4, 10,249,233,131, 91, 58, 8, 88, 6, 86, 59,129,205, 78, + 96, 47, 92, 27,149, 41,172,193,176, 44, 3,194, 19,140, 27, 55, 22, 61, 67,222,208,243, 54, 62,217,249, 66,142,221,118,226,244, +111,222, 38, 43,143,165,107, 54,205, 47,208,168,231,199, 62,244,140,215,105,178,166, 25, 50, 31, 57,189, 14, 6, 11,210, 44, 41, +230,222,132, 29,161, 87,209,160, 94, 93,216,121, 71, 58,131, 42, 42,176,227,232, 85,212, 9,170,227, 72, 55, 79, 80, 59, 80,137, +230,205,154, 3,192, 75, 25, 45,129,196,229,171,142,189, 71,206,235, 51,120, 12, 84,222,222, 96,137,181,207,233,163, 59,250,252, +244,253,183,159,218,140,249, 75,203, 37, 70,236, 79,222, 11,132,231, 95, 57,234,228,239,239,239,221,188,249, 31,211, 49,218,108, + 54, 84,173, 90, 21, 41, 41, 41, 65, 47, 83, 79,243,243,243,235, 61,103,206, 28, 85,175, 94,189,132,190,190,190, 0,128,244,244, +244,128, 19, 39, 78, 52,153, 51,103, 78,102, 90, 90,218, 81,148, 50,163,143,221,202,138, 88, 1, 56,169, 84,238, 56, 71, 48,236, +244, 15,223, 9,246,241,243, 55, 21,119,188, 90,157, 46,254,236,131,115,140, 64, 32, 42, 60, 30, 44, 33, 60, 83, 74,148,168,155, + 80, 40, 44,182,133,194,194,185,182, 34, 66,183,247, 88,142,117,220,172, 54,171, 58, 55,241, 86,221,114, 68,226,234, 11,197,162, +117,111, 13, 25,211,102,208,192,254,240,243,118,195,233,203,225,152,248,225,199, 86,155,197,186,252,165, 10, 15,142, 19,100,102, +102,198,123,120,120,248,190,250,251,150,169,246,235,201,227,170,211,103,206,206, 92,182,114,245, 36,139,217,102,229, 9,121,178, +142,177, 76, 38, 17,118,239,243,182,171,170, 70, 43,233,234, 57,239, 9,255,133,139, 8,152,131, 0, 0, 32, 0, 73, 68, 65, 84, + 17,173,245,175,197,104,137,101, 46,111,127,249,217,100,233,130,237, 87,113,116,237,196, 44,125,126,150,247,147,154,130,171,251, +173,130,252,188, 38, 47,147, 66,165,119,237,214, 12, 39,152,192,112,156,130, 97, 25, 49,111,231,147,108,102,243, 66, 67,246,163, +180, 87, 61,123,158, 39,216,247,123,102,249, 12, 16, 65,205,109,187, 14,168,124,220, 37, 48, 90,236, 24, 50,108, 36,182,110,221, +234,226,237, 38,134,209,108,195,183,203,150,105,117,241, 71, 85,241, 73,185, 41,221,250,126,124, 42, 38, 46,243, 94, 98,154,113, +119,121,211,102,178,216,145,175,183, 65,111, 98, 81,171,126,115,124,187,188,142, 52, 49, 33,246,227, 45, 63,109,156,114,255, 62, +183,149,231,216,121,198,180, 7, 73,197, 62,116,190, 13,122,186,122,120,238, 28, 48, 97,145,251,163, 76, 1, 8, 44,136,118,149, +226,237,209, 83, 92,171,251,202,160,144,114,238,177, 9, 41,126,211, 63,253,244,114,140,157,180,200, 87,199,196,150,149,158, 42, + 85,170, 12,236,211,167,143,252,147, 79, 62, 17, 6, 6, 6,226,167, 29,123, 42,183,239, 57,184,111,106, 90, 70, 32, 33, 4, 62, + 42, 85,210,184,119, 7, 31, 57,118,236, 88, 66, 82, 82,146,240,155,111,190,105,121,224,192,129,122,233,233,233, 78,215, 76,237, +132,192,104,178,195, 94,248,130, 84,107, 76,229,246,167, 1, 1, 1,146,148,148, 20,211, 83, 81, 6,230,143, 64, 33,211,179,107, +199,150,130, 31,143,199, 65,103,180, 67, 33, 21, 34, 46, 67,143,102,141, 27, 50, 27,236,182, 70,197, 9,142,125,187,247,108, 31, + 37, 9,233,215,186, 26, 84, 30,114,108,254,110, 17, 14, 95,137, 13,201,208, 49, 88, 67,184, 9,126, 18, 65,119, 5,159,182,166, + 83,179, 26,190, 93,154, 86,198,141,102, 53,124, 47,134, 69, 70,201, 6, 47,155,156,162, 19,158,206, 61, 49, 69, 91,124,193,195, +162,130,139, 8,155, 78, 38, 64, 46, 21, 64, 33, 21, 64, 33,113,124,179, 44,243,106,181, 90,191,186,129, 28,111, 31,203,113,130, +177, 67,223, 30,236, 63,124,232, 96, 2,142,197,158,125, 71,250,111,223,190, 45,205,106, 49,111,180,179,220,166,146,238,159,103, + 46, 40, 11,168,220,196,248,116,227, 61,184,202,132,112,145, 11,225, 42, 23,162, 75,176, 55,184,151,159, 4,198, 99, 98,255,234, +189, 38, 14,168,210, 57,168,146,178,214,157,104,205,253,177, 11,111,174, 60,159,215,121,234,119, 43,234,121,234,242,204,130,175, +166,143, 19, 36,167,166,118,222,115,228, 66, 23,187,121, 76,164,205, 82,240,185, 58,124, 79,177, 81,225,228,200, 43, 77, 2, 90, + 13,146, 90,116,214,187,119, 34,147,107,228,154, 36,136,136,207,135, 66, 42,128,178,232,218, 74, 5, 80, 72,133, 80, 74, 5, 72, + 77,142, 67, 78, 1,119, 57,197,147,237,140, 11, 87,108,229, 73,184,209, 98,199,237, 88, 29,170, 4, 53,134,159,159, 63,204,189, + 70, 84,185,118,118,223,161,235, 23, 14, 46,214,167, 63,252,220, 89,157, 29,161, 87, 49,115,218,132, 48, 6,184, 85,248,146,110, +242,213,146,181, 77,231,207,252,224,153,125,211,231,173,110,250,242,145, 44,151,217, 93, 6,188, 63,175,125,247, 1,208,230,100, +224,247, 83,187,209,179,207, 91, 24, 49,230, 35,184,187,123,125,187,124,225,103,119,108,166,252,179, 47,148,185,190,117,218, 53, +108, 80,119,123,128,191,127, 32,207, 59, 86,249, 32, 4,208,105, 53,248,108,234, 56,240,132,160, 81,147, 22, 93,164,237,187, 19, + 82,184, 26, 72, 86,118, 86, 65,228,195,251,221,140,153,145,215,156,190,150, 70,163, 85,173, 86,227,246,237,219,136,138,138, 66, + 68, 68, 4,178,179,179,225,230,230,166, 43, 40, 40, 40, 87,240, 62, 56, 56,120,248,217,179,103,165, 30, 30, 30, 79,118,154,205, +102,184,184,184, 96,248,240,225,194, 30, 61,122, 4,244,238,221,123,212,189,123,247,118, 0,200, 47, 54, 61, 57,143, 83, 93,124, +130,126,232,216,169,227, 36, 0,144,185,250,197,174,249,233, 72, 68,169, 21, 90, 55,255,202,109,218,180,173, 1, 66,192,128,172, +210,103, 71,165,151, 18, 37, 82, 92,189,122,181, 58,199,113,130, 63,222, 65, 60,190,223,188,171,206,175,151,238, 14, 92,242,237, + 82,169,171, 66, 2,181,198,140,247, 70, 12,112,250, 29, 44,243, 9,234,213,166, 77,135, 67,243,231,125, 41, 80, 42, 20, 56,117, + 45, 6,147,167,126,106, 76,139,191,183,148,240,194,181,122,117, 84,230, 43,190, 42, 9, 94, 3,181, 42, 42,225,210,175,167,116, +226, 59,253,164,102,171, 29,121, 5, 86,152, 44,118,216,121, 2, 77,129, 21,247, 19,181,240,114, 45,255, 82,110,132,144,230, 0, +188, 1,168, 25,134,185,241,244,118, 81,133,174,200, 27, 63,183,157, 85,248,126,240, 4, 96,134, 99,164,254,147,219,167,112,187, +164,253, 69,127,127, 31, 64,221, 66, 77, 59,128,235, 12,195,228,150, 96,182, 94,136,114, 9, 66, 67, 67, 73,159, 62,125,158,148, +248,207,111, 63,143, 68, 36,244, 87,184,121,131,144, 7,120,122, 1, 99,149,111, 64,246,210,229, 43, 43,124,248,254,132,132,252, +188,156,202,133,187, 79, 59,243,178, 16, 48,220,242,142,109, 91,245,152,244,254,251, 8,170, 94, 81,100,183,219,201,189,168, 88, +235,150, 77,155, 71, 95,188, 34, 94,153,159,124,111,246, 83, 33,200,114, 13,251,180,243,246,228,231, 35, 88,118,222,254,124,237, +246, 5, 77,134, 1,220,149, 98,252,112, 60, 14,132, 0, 12, 8,220, 20, 66,252,114, 62, 25,177, 97,251,243,251, 52,202, 47, 24, +190,100,110,151,206,189,166,156,189, 31,109,220,157,153,105, 60, 9, 32,189, 52,205,226, 11,116, 30, 38,139, 29, 86,155, 13,123, +143, 28, 65, 72,151,150,104,211,166, 37, 58,180,111, 35,184, 25, 22, 62,230,253, 73,227, 2,241,199,232,142, 39,154, 82,159,154, +205,149,110, 94,187, 7, 78,250,198,229,110,178, 13, 2, 14,168,230, 43, 67, 5, 23, 17,204, 54, 6,241,106, 75,225,147,227,142, +201,211,231, 85,152,249,241,164, 99,249,106,113, 3,224,129,165,180,115,215,235,245,226,145, 35, 71, 10,173, 86,171,101,248,123, + 31,245, 72, 79, 87,247,255,126,213,255, 36, 42,149, 15,244, 70, 27,194, 34, 30,215,157, 63,127, 94,181, 35, 39,206, 31,156,251, +233,196, 67, 33, 33, 33,110,187,118,237,226,203,186,158,207,212, 16, 51,178,190,219,188,125,239,214, 21, 75,191, 70,100, 66, 46, + 54,253,184, 22,196,110,251,161,140, 75,245,180, 38, 25, 57,114,164,236,224,193,131, 21,147,147,147,243,245,122,189,250,153,120, + 4,203, 8, 50,114,244,240,114, 17, 67, 36, 96,225,227, 33,133,202, 77, 2, 33, 7,176, 12, 99, 47, 78,115,211,238,163, 11,121, +189, 6,135,119,154,135,110,254,110, 17,198,124,248, 5,238,101,137, 79,176,114,183,133, 31, 12, 29, 56,211, 91,102, 15,241,119, +103, 85, 93,154, 86,129, 66, 42,194,172, 41, 35,209, 34, 44, 94,149,146,199,127,161, 54,112,141,231,157,120,178, 88,247,233,103, +131, 35,142, 8,150,139, 92,136, 19,219,191,205, 44,208,168, 53, 69, 77,114,102,147, 49,193,201,219,248,116, 49, 53,219,153,141, + 27,214, 95, 52,105,252, 88,182,109,235, 22,132,101,133,200,210,154, 25, 66,128,169,147, 39,226,131,137,227,124,147, 82, 51,191, + 90,187,246,135,217,103,127, 37, 11, 10,212, 15,231,150,166,201, 50,142, 40,144, 82, 42,128, 82,230, 48, 46, 74,169, 0, 70,179, + 29, 12, 3,206,189, 82, 19, 13,227,136,228,166,230, 36,148, 88, 3,127, 70,179, 66,165,250,103,126,141,117,169,147,187, 59,247, + 74, 92,106,196,194,176,240,140,235, 0,114, 2, 59,184,143,178,216, 8,116, 70, 27,226, 50,244,176, 89, 8, 51,230,141,202,168, + 58,136, 9,250,122,243,173,173,199,195,225,250, 84,161,255,140,102,202,213,189, 70,207, 6, 3,134,172, 88,253,227,141,165,139, +190,224,178, 52,102,240,132, 64, 42,230, 32, 19, 11, 10, 63, 28, 12, 5, 26,172, 93,183, 33,221, 6,102, 32, 46, 92,176,149,231, +254, 4, 79, 70, 12,232,213,225, 23, 6, 16, 51,172, 40,217,191,114,149,202, 93,251,142,150,118,237, 55, 18,118,155,121,102,216, + 37,114, 78,159, 25,121,198, 25,205, 6,245,234,130, 1,110, 21,100, 70, 77, 4, 0,133,170,246, 15,117,130,234, 52,125,126, 95, +205,154, 65, 77,157,201,247, 39,145, 82,169,203,135, 30, 21,188,191, 8,170,223, 88,149,145,107, 98, 92, 60, 43, 34,238,209,109, +236, 92,247,213, 54,222,104,158,119,230,232,238, 69, 43, 55, 29,120,187,107,200, 0,108,254,254,127,179,178,211,158, 24,173,211, + 79, 69,171, 70,108,217,184, 62, 80, 40,150,192,106,227, 97,181, 19,199,183,205,142,156,156, 92, 88,109, 60,164,114, 23,216,120, + 6, 86, 59, 15,171,141,135,201,108, 83, 76, 28,217,251,125, 35,112,173,184,116, 6,212,233,120, 82, 36,145, 84, 38,112,172, 93, + 75, 8, 65, 92,186,129,245,243,243,219, 1, 0, 18,137, 4, 18,137, 4, 60,207, 35, 44, 82,253,161, 87, 80,237, 73, 40, 52,120, +118,139, 57, 33, 47,254,183,158, 37,157,187,175,175,111,223,231, 77,150,209,104,132, 78,167,195,165, 43, 55,220, 54,110,221, 27, + 18,151,144, 92,157, 39,110, 38, 23, 85,245,158,218,204,152,190, 37, 93, 79,109, 70,228,251,174,173,198,177,159,124, 48,170,230, +234, 45,161,215, 31,159, 92, 88,106, 63,173,170, 93,103,152, 63,153,240, 86,179, 37,171, 54, 61,202,253,237,135,105,101,229,145, + 64, 32, 16,170,213,234, 39,207,247,154, 13, 59,155,221,138, 76,121,115,229,138,149,210,176, 24, 45,238,198,165, 98, 84,183, 74, +142, 26,142, 19,249,174,240,169,238, 85,173, 70,141, 29,107, 87, 45, 17, 60, 74, 53,226,187,253,215,113,246,208, 15,151,210, 51, +175,133, 32, 35,205,240, 50,101,200,107, 48, 90, 37,106,158, 11,207,130,206,104,131,201,108,131,149, 39,200,215, 91,145,153,103, + 70,190,222, 2,157,193,134, 81,221, 43, 21,251,119,101,248, 17,111,134, 97, 66, 9, 33,125, 8, 33,221, 0,136,139,182, 29,239, +108, 38,180,208,144, 61,179, 61,115,230,204,207, 23, 47, 94, 28, 81,116,108,209,254,162, 99, 75,219,255,212,223,123,206,154, 53, +171,193,146, 37, 75,190,110,221,186,245, 47,191,255,254,123, 44,128, 92,103,155, 15, 5, 79,159, 76,104,104,104, 89, 23,186,186, +197,106,145,184,202,132,168, 86,181, 18,222,253,124,179,215,207, 75,198,102, 74,197, 2,238,248,241,227, 21,178,205, 74,176, 44, +231,116, 21, 69,233, 93,171,141, 72, 36, 62,186,108,217, 50, 12,237,219, 94,150,152,101,213,133, 39, 26, 50, 10,204,176,169,188, +107,139, 23,126,189, 68,185,228,155,111, 63, 8, 61,204,231,233, 50,238,127, 91,124, 19, 95,179,155, 28,243, 84, 31, 44,134, 1, +225,237,201,185,241, 55,154, 1,192,171,244,197,210, 25,173,224, 10,251,214, 48, 12,160, 55,218,192,113, 76,102, 94,228,238,251, +195, 23, 44,236,178,237,151, 95, 83, 9,235,174, 45, 40,136,147,195,177,230, 96,185, 49,154,237, 48, 89,237,136,184, 19,134, 14, +173,234,161, 77,179, 58,208, 27,237,208,155,108,168, 90, 35, 8, 0,188,138,205, 56,142,141, 37,118,171,145, 16,187, 75,159,230, +222, 80,185,139,225,231, 33,129, 68, 44,128,213, 6, 24,204, 60,140,102, 59,226, 51, 13,208, 26,100,104,216,113,112, 53, 79,191, +155,166,244,120,217,193,156,196,155, 3, 75, 53,167,118, 59,182,236,216, 91, 51, 53, 53,163,255,177,131,219, 37,234,124, 43,194, +227, 11,144,153,103, 2, 56,111,204,249,250, 59,201,140,105,227,223,220,178,115, 95, 66,215,246, 45, 19,202,123,206,122,117,228, +182,221,123,246,254,208,167,207,155,178,136,107,199,240,232,246,153, 69, 5,153,229,234,159,197, 54,106,212,200, 54,126,252,120, +237,215, 95,127, 29,120,248,240,225,170,106,181,250, 54, 0,171,187,187,123,157,218, 53, 43,223, 57,117,226,120, 64,239, 55, 7, + 11,147,179, 12,112,147,139, 80, 89, 37,199,149, 75, 39,173, 98,177,176,216,254, 38,133,205,131,195,208,245, 51, 28,190, 18, 27, + 18,145, 45, 61, 63,110,236,168,132, 83, 23, 35,179,215,108, 61,245,191, 0,165,245,182,148, 87,175,185,217,172,134,239,204,201, + 35,177,120,245, 54, 92, 8,139,204, 44, 96,253, 22,165,153,108,191,150, 28, 74, 7, 4, 28, 3, 23,153, 16, 5,249,106, 77,244, +173, 19,181, 95, 83,152,122,212,169,131,219,216, 28,173, 21, 73, 89, 70, 38, 53, 71, 11, 59, 79,224, 46, 23,193,198, 19,228,229, +100, 49,219,183,109,197,141, 27, 87, 88,112,236,123, 0,230,150,122, 65, 25, 71, 83,161, 82, 42,116, 68,132,100,142,111,171,157, + 71, 80,205, 26, 88,191,102,185,171,151,202, 7,237, 58, 56,223, 55,218,197,179,114,163, 95,126, 90,131,243,191,223,234,116, 97, +229,119,205,149,254,222,171, 25,198,190, 20, 4, 70,147,197, 14, 77, 94, 46,196,230, 36,180, 8, 80,163,130,220,142,248,124, 63, +220, 75,127,164, 44,171,192,207,190,119,224, 54, 67,222,156,189,247,200,217,197, 61,187,119,194,189,248,124,200,196, 2, 72,197, + 28,164, 98, 14, 66,198,142,229,235,126,176,230,106,180,125,178, 35, 14,101,189,196,253,121,186,176,246,235, 48,119,118,157,247, +182,213,179,127, 30,247,217, 55, 61, 67, 6,140,102,238,221, 56,247,185, 30, 56,227, 92, 69,143, 56,181,143,231,157,127,199, 73, + 93,188, 86, 77,153,177,112, 74,143, 62,131,193,113, 2, 88,173, 86,236,219,181, 13, 63,125, 55,231,161, 89,151, 61, 26, 0,111, +206,228,198,239,222,182,110,240,103, 95, 45,103, 26, 52,106,209,242, 92,218,139,203,209,242, 28,243,227, 59, 99, 39, 12,241,241, +241,113,249, 35,162, 69, 80, 59,168, 30,122,245,123, 11, 39, 15, 29,192,253,136,112,240,196, 97,152,120,158, 32, 47, 55, 59,221, +102, 53,111, 41,177,197, 67, 42,173,188,249,167,173,181, 88,150,129,197,202,195,108,227, 49,237,253,119,205, 19,167,126,222,174, + 87,143,142, 17, 98, 14,249,241,137,105,238, 87,110, 61,104,200, 11,149,129, 99,167, 47, 23, 25, 77,118,104,244, 86, 28,219, 84, +178,215,145,122, 84,106, 93,165,105,175,177, 19,191, 92, 47,145,112,172,165,126,237,192,216,142,173,234, 39, 85,242,247,210,206, + 95,242, 93,139,203,215,110,245,122,123,248, 88,233,168, 58, 77, 25,127, 79,153,203,187,195, 7, 4,219,109,150,119,244, 57, 73, + 37,206, 47, 40,148,123,228, 85,170, 90, 83,255, 71,196,168,246,126,134,160,218, 51,206,131, 65,172, 33, 35,106, 32, 0,248,249, + 87, 50, 10, 37,174,218,114, 68, 96, 8, 0,172,222,176,179,217,157,168,212,113, 43, 86,172,148,135,197,104,113, 59, 70, 3,137, +136,133,197,202,131,113, 50,168,205, 19,110,194, 23,179,102,186,230, 22,216,113, 62, 92,141,136,155,231,136, 89,103, 28, 46,183, +185, 14,132,202,229, 29, 0, 53, 0, 68, 51, 12,249,177, 32,195,247, 16,112,193, 86,222,251,158,231, 29,245,101, 87,239,234,213, +236, 2, 73, 47,161, 88,209,154, 97, 72,125,134,192, 3, 32, 41, 57,133,239, 84,103,157, 90, 65, 70, 20,190,249,250, 43,172,218, +120, 0,169,217, 70,184,217,147,112,104,211, 66,124,178,120, 7, 12,166,146,123, 53,148,229, 71,138, 51, 70,207, 27,174,162,159, +139,142, 91,188,120,113,159,231,242,166, 79, 9,121,246,194,113, 69,127,191,100,201,146,175,159,250,189,222, 89,147,245,196,104, + 21,157, 84, 25,102,171,182,183, 95,229,223, 15, 29,220,239,145,171,179, 64, 42,226, 80,169,106, 77,204, 93,115,200,251,141,102, + 94,200,178,184, 97,231,250,165, 57, 70,189,118,151, 83,133,133, 42,168,165, 76,169, 56,182,127,223, 1, 84,175,164, 18,109,191, +148, 19,119, 43,214,240, 36,212,155,175, 78, 16, 87,117,213, 11, 6, 14, 24, 32, 63,115,246,220, 84, 29, 80,172,209,226, 24,174, +226,134,173,251, 84, 46, 50, 33, 24, 6,208, 26,108, 24,247,206, 91,175,254, 26, 35, 60, 55,118,244, 40, 48,133, 38, 43, 63, 59, + 29,159,207,120,223,168,176, 62,186,159, 24,159,152,210,173,239, 39,103,242,117,140,113,200,200,247,111,220,143, 90,156,171,215, +191,220, 34, 63, 38,179, 29, 38, 11,143,152,152,104, 76, 27,213, 29, 66,142, 5,199,241,142,206,210,182,146,111, 70, 93,106, 84, + 14,124, 69,131,182, 45,251,112,131,191,143,202, 83,169,144, 17,165, 92,194,212,175, 83, 75,212,170, 85, 27,113,213,160, 96,209, +165, 7, 6, 36,170, 13,136, 77,213, 64,226,211, 88, 48,180,203, 27,216,182,114,122,167,156,196,155, 44, 94,236,164,248, 12,191, +158,191,218,119,227,186, 21,146,140, 60, 11, 30, 38,234,144,158,107, 68, 90,174, 9,233, 57, 70, 40,101, 66,116,232, 55, 94,114, +244,208,143,125,187,182,111,185,250,101,206, 59, 54, 54,238,104,124, 74,218,224,224, 38, 45,176,237,231,159,218,187,187, 87,117, +205,203,139,203,119, 54,119, 22, 46, 92, 40, 94,178,100,137, 96,205,154, 53,249,173, 90,181,242,157, 53,107, 86,207,204,204,204, +235, 85,170, 84, 9, 58,185,127,203,217,198, 29,250, 55, 7,111,241,110,223,177,179, 72,194, 11,112, 42, 52,212,178,123,215,246, +108,131, 65, 59,177, 84,195, 33,119, 91,152,161, 99,224, 29, 16, 16,161, 20,219,187, 11,216,188,168,220, 19, 83,182,230, 2,251, +171,135, 76, 62,125,238,102,100, 84,179,176,120,213,217,176,199,153, 57,122, 75,237,152, 19,159,148, 90,240,114, 12, 3, 33,199, +194, 69, 38, 0, 91, 88,170, 42,253,131, 31,131, 97,188,139, 34,167, 12,152,194,111,128, 97,144,154,155,120,219,137, 62, 27, 12, +225, 9, 16,153, 92, 0,157,209, 17,154,175,232, 37,135, 58, 35, 25,223,175,222,130, 91, 55,111,160,199, 27,253,176,118,195,118, +140,123,103,176,177,172,218, 15,203, 22, 70,180,158,138,102, 41,101, 2, 0, 12,242, 10,172,216,119, 57, 9, 53,170,177, 78,191, + 24, 0,192, 69, 41,135, 70,107, 0, 43,114, 65,116,216, 49,249,241,115,215,102,205, 94,176,226,211,220,180,240,196,199,119, 47, + 33,200, 75,131,106, 1, 22, 68,164,187,226,102,118, 85, 4,213,172, 14, 86,116,195, 41,237,172,136,134,223, 28, 98,247,245,105, +214,184, 94,235,202, 42,119, 24,204,246,194,168, 22,135,159, 54,111, 69,124, 92,242,216,236,251,135,110,189, 14, 71, 91,144, 25, +171,150,168,106,126,112,247,218,153,216, 1,195, 63,128, 95, 64,165, 70,121,137,183,157,238,182,224,204, 62,187,147, 70, 75, 36, +119,159, 53,237,139,255, 77,233,209,123, 16,174, 94, 58,131,219, 17,209,104,217,178, 57,222,120,115, 40,180,249, 57,117,246,108, + 93,217,221,166,215,158, 20, 72,108, 83, 90,180,233,194,240,118, 59, 30, 61,188, 23, 93,156,150, 33, 45,242,246,149,180, 72,215, +103,154,167,188,234, 52, 82,186, 85,184,109,178,216,145,146,146,140,223,126, 63,223,196,144, 22,121,187, 60,215, 75, 34,226,112, +234, 86, 38, 44, 86, 30, 22, 27,143, 14, 29,187,155, 69,172,169,253,162, 21,155, 91,165,165,166,177, 10, 87, 47,190, 66, 64, 93, +145,159,196, 98,186, 19,163, 17, 89,172, 60,170,251, 43, 74,213,244,246,175,249,245,244,233,211,234,114, 34, 25,180, 5, 38,115, + 90,106,138,239,250,157,231,116, 15, 30,222, 13,168,168,114,115,253,223,202, 31, 69,249, 70, 6,153, 26, 19,114,180,249,204,240, + 9,159,249,111,252,110,241,136,210,140, 86, 49,221, 69,170, 29, 61,117,169,142,135,139,136,209, 25,109,124,118,190,197, 62,252, +205, 87, 27,116, 89,104,178,198,175, 88,190, 82,126, 43, 70,139, 59, 49, 26, 72, 69, 28,196, 34, 22,102, 43, 15, 39, 31, 39,214, + 87,229, 59,177, 77,179,134, 56,121, 59, 11, 28,199,194,160,205,213, 11,144, 29,213,172, 83, 15,121,211, 22,173,208,185, 83, 71, + 60,142,138,172, 20,122,120, 95,215, 43,191, 93, 72,183, 89,106,127, 88,160,142, 58, 80,174,192,130, 94,207, 89,197,190,239,250, + 5, 84,105, 59,112,232,187,110,149, 43, 5, 48, 42, 47, 79,216,136, 0,227,223,121,203,233, 39,223, 97,204,129, 37, 11,102,193, +100, 50,195,219, 93, 12, 66,128,205,171,231,194,108, 54,195,223, 83, 2, 77, 65,201,171,201,149,229, 71, 74,138, 66,149,171,239, +201, 83,102,172,180,253, 12,195,132,206,156, 57,243,115, 0,100,230,204,153,159, 23,109, 47, 94,188,216, 0, 32,181,140,166,195, +245,207, 24,173,162,147, 43,249,233, 22, 5,121,121,250, 93, 57,117,242,132,219,193, 59, 60,174, 30,184,137,222, 45,253, 32, 18, +176,144,187,249,227, 78,156, 6, 71,247,175,203, 59,244,203,143, 41, 38,147,233,219,178,219,154,107, 54, 83,202, 21, 39,127,222, +182,139,247,242,244,100,191, 63,165,142,201,214,218,158, 52,105, 69, 93, 59,204,223, 60,185,222,143,128, 57, 33,149, 74,107,154, +205,102,143,178, 50,118,243,169,132,194, 78,188,204,235, 40, 91,193,112,156,125,219,246,109,240,114, 21,195,100,229, 49,243,211, +143, 12,163,122, 40,243,134,191, 61,180, 75,231, 94, 83,206, 10, 21,181,206,180,105, 82,139, 52,110,220, 56,143,227, 56,167,186, + 82,168, 84,170,185, 44,203, 14, 19,139,197, 46,102,179, 89,107,230,141,242, 2,163, 25, 70, 11,160,215, 27, 33, 20, 57,204,162, +144, 99, 96, 48,154,161, 55,152, 75,127, 48,210,239, 93, 6, 80, 59,255,169,152,210,153, 7,213,197, 59,246, 28,250,104,208,219, + 67,102, 7, 52,122, 83, 25,151,166,129,136,177,160,121, 93, 63,156, 59,113,128, 36,199, 71, 77, 43,203,100, 1, 64,166, 58, 39, +208,219,219, 7,183, 98,117, 72,201, 54, 32,189,208,100,165,229,154,160, 53,104, 17, 92,217, 31,121, 26, 77,224, 75, 95, 95,224, +192,201,147, 39, 7,247,234, 63, 4, 83, 62,157,215,110,211,186,165,225, 10,177,112, 76, 65,198,163,243,206, 24,173,123,247,238, +229,204,152, 49,163,198,134, 13, 27,216, 17, 35, 70, 24, 26, 54,108, 40, 29, 57,114,100,187,173, 91,183, 74,229,114,169,225,206, +165,195,179,223,155, 60,179,255,250, 85, 11, 27,229,230,230, 50, 54,171,245,184, 37, 55,119,166,174, 12, 51,151,116,248,243,135, +115, 98, 44,163,187,183,247, 62, 92, 65,206,214,151, 16,243, 80,212,157,187, 11, 15,230, 90, 98, 78,172,209,202, 6, 47,155,156, +154,199,127, 97,100, 85,139,202, 50, 89, 0,192,114, 12,204, 54, 59, 92,100, 66,176, 44, 91,100,226,253,126,218,117, 92,238,237, + 38,134,144, 99, 33,224, 24,228,235,173,200,202,183,224,131,119,157,157, 33,132,240, 54, 59,129,193,108,131,190,176,118,168,205, +207,194,172, 79, 63,198, 27,125, 7,224,189,137, 31, 35,215, 0,220,140,213,194, 98,181,150,249, 80,176, 12, 11,189,201,134, 49, + 61, 42, 35, 71,103, 65,129,193, 6,179,141,135, 92, 44,128, 80,192, 66, 33, 21,192, 85, 46, 4, 8, 17, 21, 21, 38, 66,161,208, +104,181, 90,183,149, 82,163, 71,213, 64, 31, 24,172, 44, 90, 12, 89,138,110,173,107, 35,226,242, 62,193,133,171,119,171, 77,253, +244, 11,124, 52,174, 47,246, 62,172,129, 10,170,202, 80, 42,100,176, 18, 22, 0,113,178,195,222, 92,158,181, 12, 24,246,195,134, +205,145,243,191,154, 41,205, 43, 96, 32, 17,113, 56,123,230, 52,174, 92,187,185, 42,235,254,161,109,120,141, 8, 9,235,227,234, +234, 10,169,152,131,217, 98, 50, 59,223,117,129,128, 0, 77, 20,170,218, 63, 20,214,248,155,216,121, 20,179,175,108,163, 37,144, +186,206,252,240,211,249, 95,247,232, 61, 8,167, 66,247, 98,207,222, 93,246,214, 33, 99,185,237, 63,173, 67,187,110,253,208,174, +199, 16, 28, 63,176,245,227, 2,158,169, 55,126,202,236, 5, 29,186,244,194,169,163,123,145,145,158,188,204,217,244,114, 66,102, + 74,151,238,125, 97, 52,219,209,190,107, 31,156, 56,114, 96, 50, 10, 7, 89, 56,255, 18,123,174,124, 6,107,251,120,218, 20, 97, +102,158, 89,168,206, 55, 35, 89,173, 71, 92,134, 30,135,126,217, 68,156, 47, 47,204,205, 59, 4, 87, 20,142,255,230,108, 82, 96, + 69, 63,147,208,100,144, 69, 69,199,212,121,239,221, 81,194,106, 53,235,176,153, 26, 19,212, 26, 19,178, 52, 38,232,140, 54,212, +172, 88,139,181,218,152,214,229,205,103, 47, 55,177,112,237,145, 88,184, 42,132,104, 83,231,229, 7,218,242, 60,255,135,201, 90, +225, 48, 89,225,177, 26, 72, 68, 28, 36, 34, 22, 18, 17, 7,155,157, 56, 85,113,145,169,106,247,250,224,195,247,253,205, 54, 32, + 91, 99,134,128, 99,160,242,242, 80, 52,111, 52, 12,155,151, 78, 6, 0,140,155,241, 61,222, 27, 51, 18,117,235, 55, 68, 94,110, +174,239,176, 65,189, 86, 0, 56,224,108, 90,143,157, 58, 95,233,212,197, 91, 51, 62,152, 62, 71,249,118,223,206,220,237, 24, 13, +210,114, 76,136,142,210,150, 43,242, 6, 0, 54, 59, 15, 2,130, 45,187, 66, 33, 19, 11,160,214, 88, 64, 8,193,194, 53,187,225, + 34, 19, 34, 45,215,209,220, 95, 26,165,250,145, 82, 34, 82,229,136, 54,246,129,163, 47,151,183,179, 17,173,197,139, 23, 71, 44, + 94,188,184,216, 8,217, 83, 38,235,229, 22,149, 22,137, 20,117, 92, 61,189,174,158, 58,113,204,229,192, 29, 59,206,221,201,198, +160,246, 21,161,203, 73,196,183,159,190,157,195,128,152, 89,142,203, 51, 25,244,251, 13,134,130, 69, 0, 44,165,222, 52,190,181, +155, 40,164,202,211,107,215,255,108,243, 82,169,176,237, 82, 78,114,110,129,205,250, 71,179,149,149,185,121,114,125, 53, 27,111, + 13, 49,102, 60,190, 81, 86, 77,156, 39, 16, 45, 94,119, 8, 0, 1,207,243, 32, 60, 15,161, 84,169,240,170,222, 42,163,176,160, +147, 10, 88,198,248,116, 9, 64,120, 91,114, 86,108,233, 97, 80, 6,128,155, 92,136, 93, 23, 82, 0, 32,131,211,134, 61, 24,254, +182,163,185,208,104,150,230,215,175, 81,131, 52,111,222, 60, 79, 38,115,106,250, 43,206,199,199,231,250,236,217,179,235,188,247, +222,123, 18,177, 88, 12,155,205, 86,225,199,245,235,249,245,139,198, 97,224,228,181, 16,137, 37, 48, 24, 45, 16, 10, 5,200,213, +232,144,151,175,135, 86,111, 45,255, 29, 20, 19, 99, 86, 3,223, 28, 60, 32, 30,208, 83, 25,220, 66,204,138,208, 52,200, 15,231, + 78, 30, 36, 87, 79,108, 30,103,200,140,250,217,201, 27, 17, 58,163, 21,169,217, 70,164,100, 27,145,158,107, 68,122,142, 9,233, +185, 70, 48, 12, 3,163,217,246, 74, 47,174,130,204,200, 61,219,126,222,216,207,100,193,208, 14, 61, 6,224,227, 57,107, 43,111, +251, 97,201,233, 88,194,182,117,178,163,173, 61, 34, 34, 34,254,221,119,223,109,180,115,231, 78,174, 65,131, 6,134, 7, 15, 30, +200, 11, 77,164, 69,169,148,203, 54,125,183,248,100,139, 22, 45,126, 73,137,122,120,182,176, 61,189,204,130,189,114,199,209, 18, +153,229,214,248, 74,138, 54, 61,171,251,202, 81, 73,161,237, 89, 71,121,231,219,236, 46, 31,125,173, 62,187, 42, 51,205,100,251, + 85,109,224, 26,167,232,132, 78,245,193,179,154,140, 9, 3, 7, 13, 5,199,176,176, 24,245, 9, 69, 55,151,202, 77,140,185,219, + 31, 66, 41, 21,194, 69, 38,128, 82, 38, 68,187,122, 21, 80,142,242,140, 88,237, 60,244, 38, 59, 12, 38, 27,140,102, 27,188, 2, + 61,176, 97,219, 30, 36,102, 26,112,232, 70, 22, 34, 19,180,168, 85, 81, 1, 66,202, 46, 38,121,187,181,160,239, 91, 35, 92, 56, +150, 1,199, 50,108,189, 58,181,145,163,179, 64, 36, 96, 33,146,202,160,144, 8,224, 42, 19, 66, 36, 18, 34, 51, 51, 19, 38,147, + 9,149, 42, 85,146,150,110, 5, 9, 92,148, 50,212,170,230, 15,139,213,134, 99, 23,239, 99,209,180,129,232,222,161, 25, 24,161, + 18, 15, 77, 77,224, 82,193, 5, 60,203,194, 98,227, 97,182,216, 1,176,198,146,244, 2, 3, 3,187, 40, 20, 10,133, 94,175,215, + 38, 38, 38,158, 79,143, 60,144,104,231,250,143, 63,113,234,236,182, 62,111,116,199,173,240, 8,236, 61,112,248, 82,150,167,102, +122,209,223,212,175, 95,191,149,151,151,151, 50, 59, 59, 59,255,222,189,123,215, 95,182, 94, 64, 88,118,106,235,118,157,160,203, +203, 68, 70, 82,156,211,181,232,186,149, 93,240,229,226,181, 77,131,106, 7, 53,181, 19,135,241,170, 87,201, 5,159,204, 89,221, +180, 70,173,218, 77,139, 6,132,212,173, 84,250,180,108, 2,185, 75,143,119,222,251,120,113,191, 65,163,113,246,212, 97, 44, 95, +244,233, 54,133,155,119,221, 10, 30,110,141, 27,180,234,129, 75,167, 15, 67,234,226, 11, 15, 79,223,118, 35,198,124,216,109,208, +136, 9,184,114,233, 52, 86, 45,249,124,171,221,164,221,225, 76, 90, 21,170,106,222,141,154,180, 24,238, 82,193, 7,121, 26, 45, + 92, 60, 84,168, 27,220,124,248,253, 59,166, 25, 5,153,177,234,151, 54, 29,132,192,100, 33,200,213, 89,144,164, 54, 32, 62,221, + 97,180,120,190, 28,125,130,236, 60,163,148, 10, 4, 21,172,143, 43,221, 61,125,150, 84, 14,244, 97,190, 89,240, 41,103,129, 20, +234, 60,135,201, 82,231,155,161,214,152,161, 51, 90, 81, 65, 33, 0,111,231,203, 93,235,206,213, 89,224, 34, 23,194, 77, 46,114, + 58,202, 88, 28,235,126,218, 21,116, 39, 42,245,205,229,203, 87,202,111,199, 62,101,178,132,142,104,150, 68,196,193,206,243,128, + 19, 79,188, 80, 32,156,210,191, 87, 55, 36,101, 25, 28,163,150, 89, 6,181, 26,182,128,151,140, 71,215, 33, 51, 1, 0,125,123, + 57,186,182,197,166, 21,224,200, 85, 53,240,108,199,238,210,203, 98,131,129, 91,191,253,232,212, 61,187,127,113, 51,218, 5,248, +241,120, 60,244, 38, 27,164, 34, 14, 18, 17, 7,153,136,123,166, 63,118,217, 70,203,209,231, 46, 49,203, 10,189,209,136,124,131, + 21, 4,192,245,199, 58, 24,204, 54,104, 10,172,104, 85,199,227,213, 2, 33, 12,115,148, 16,210,251,121, 67,244,188, 89,122, 42, + 34, 85,156,198,141,167, 53,138,142, 47,201,200, 61,221,103, 11, 64,185, 70,112, 9,158,119,142, 79,111,139, 20, 30,117,221, 92, +220,174,158, 56, 30,170, 60,112,135,199,249,112,135,201,178, 26,178,176,108,198,176,228,252,188,172,206, 0, 98,156,253,103,114, +175,186,193, 82,177,228,236,255, 86,254,104, 81,249, 4,240,251,175,230,101,106,244,246,103,220,132,221,100, 98, 9, 79, 68,198, +140,199, 78,181, 33,176, 44, 99,153, 51,121, 0,120, 66, 48,119,229, 30,124, 61,125, 8,148,178, 17,114,134, 97,228, 5, 70, 27, +166,205,219,136,101, 95,142,117,145, 75, 4, 96, 24, 71,159,168,119,134, 14,112,238, 6, 52,218, 16,125,109,167, 78, 27, 27,250, +224,233,230,194,150,237,222,184,217,178,101,203, 60, 15, 15, 15,200,100,178, 63, 34, 21, 37,224,227,227,243,229,156, 57,115,130, + 38, 78,156,248,100,178, 79,129, 64,128, 15,222,127,159,181,219, 9,142, 31,223, 12,239, 42, 77,112,248,215,171, 8,233,210, 28, + 58,189, 17, 57,121, 90,240,224, 94,250, 70,212,230,101,157, 77,143,191,219,162,109,231,190, 56,127,242, 32,185,122,124,211,184, +242,204,209,227, 81,193, 35, 41,236,110,116, 93,134,169,224,136,104, 21,154, 44,179,149, 71,101, 31, 57,146,226,163,225,238,230, +150,228,172,158,204, 59,168, 63,195,146,137, 12,200,230,130,140, 71,123, 0,144,130,180, 7,195,246,236, 88, 31, 30,113,239,246, +162, 62,195,167, 8,122, 12,122,159,251, 97,241,135,159, 3,112,118,226, 61, 75,100,100,228,253,177, 99,199,182,185,114,229,138, + 29,128,158, 97, 24, 43,199,113,114,179,217, 44,234,220,185,179,230,225,195,135, 23, 80,124,167,197,103,104,247,238, 30, 47, 70, +162,125, 67,204, 91,134, 85,118,209,118,239,220,190, 53, 90,215, 15, 68, 82,251,214, 0, 48, 37, 65,167, 12, 50,214,216,184,203, +106,147, 29,251,225,167, 35, 95,143, 27,210,109,218, 54,193,220,229,105,161,115, 75,237,136,154,244,224, 66,207,226,108,188,128, + 99,225, 34, 19, 66, 41, 19,192, 69, 38,132,139, 84, 8,171,141,148,167,230, 72,172, 54,222, 17,209, 50,219,160, 51,216,112,246, +118, 6,210, 53,102,228,105, 45, 48, 88,236, 32, 32,142,218,168, 19,165,185,250,241,111,238, 69,111, 82,247, 74, 77, 52,235,215, + 44,117,221,119, 57,249,201,136, 62, 55,185, 24, 46,114,199,104,236,139, 23, 47,194,211,179,236,218, 62,207,243,216,123,226, 58, +150,111, 57,139, 19,155, 63,131, 84,196, 33,184,255, 60,140,126,179, 37,120,194, 35, 58, 50, 34,163, 86,189, 70, 62, 44, 43, 3, +203, 48, 48, 89,121, 0,164,196,235,105, 54,155, 61, 19, 19, 19,243,107,214,172,233,235,239,239, 63,136,227, 56, 2,237,109,211, +193, 95,114,244,103, 66,119,200, 11, 12, 38,187,220,166,217, 92, 51,205,208, 27, 53,107,130, 97, 24,226,234,234, 42, 58,123,246, +172,174, 97,195,134,222, 47,249, 40,177, 50, 85,237, 85,239, 77,154, 58,168, 70,245,234,216,179, 99, 51, 8, 97,246, 57,251,199, +219,143, 92,193,130, 89,207,142, 48,252,100,206,234,166,203,230, 77,121,102,223,164, 89,203, 75, 29,117, 40,147, 40,167, 15, 28, + 54, 30, 55,175,255,142,111,231,125,242,139, 73,151, 51,218,106,179, 14,206, 73,139,253,165, 90,189,150, 32, 22, 45, 78,237, 94, +138, 33, 35,199, 73,122,244, 25,132, 43,151, 78,227,235,207, 39,109,215,231,101,190, 11, 39, 59, 57,243, 68, 56,177,115,207, 55, +133, 6,147, 5,171,191,249, 10, 19,166, 47, 66,171, 46,125,133,247,110, 95,157, 8, 96,190,211,221, 33, 44,118,116,110,232,229, + 48,207, 86, 30,135, 99, 57, 65,113,119,160,128, 99,216,198,213,221, 97, 48,219,144, 95, 70,165, 82, 32, 18,166,231,105,242,171, +124,247,245, 84,174,192,104,131, 90, 99, 70,166,198,132,172,188, 63, 12, 86,150,198, 4,181,198, 12,161,128, 65, 84, 76, 2, 88, +161,160,220,253,243,114,117, 86,180,168,237,225,120, 70, 95,178,117,196, 42,112,109,121,226,194,157,129,203,151,175,144,222,137, +211, 34, 60, 54,191, 48,146,197, 65, 34,100, 33, 46,252,217,206, 59,250, 70,150,134,171,119,245,106,163,222, 25,209,213, 85, 41, + 67,234,163, 76, 8, 56,199, 20, 49,110,170, 64,184, 73,140,248,112,210,120,120,121,186, 35, 49,203,132, 85, 7,162, 16,126,255, + 49,120, 67,249, 78,123,245,143,191,132,188,247,193, 39,238,172, 80,140,173, 39,227, 28,233,228,236,120,120,245,136, 49, 53,250, +110,129, 46, 63,155,128,216,157,236,131,204, 16,155,221,113,187,125, 61,119, 38,126,217,242, 61, 78,134,101, 62,185, 3, 47,239, + 91,134,169,179, 22, 34, 43,223,140,226,238,203,210,252, 8, 0,245, 83,145,168, 23,182,159, 50, 71,197,109, 51,133,219,230, 18, + 52,204,207,153, 43,243,115,251,205,207,233, 21, 55,247,223,250, 50,155, 14, 95, 48, 69,238,222, 13,228, 82,197,239,199,143, 31, + 81, 28, 12, 39, 79, 76,150, 69,159, 69, 22, 77,233,155,156,159,167,238, 81, 46,147,229, 93,171,129, 68, 46,185, 48,123,225, 42, +147, 79, 64, 21,219,177,219,249,217, 90,163,221,246, 98, 31, 4,133, 93,225,230,109, 20,136, 37,203,133, 6,243, 87, 89, 89, 15, + 10,202,138, 60,241,132, 32,244, 90, 58, 8,113, 84,145,118, 95, 76, 65, 97,205, 28,118,222,209,172,242,235,237, 76, 8, 10,251, +161, 56, 27,254, 94,247,227,247,249,189, 27,106, 10,134,127, 61,247, 73,115, 97,171, 70,142, 72,150,171,171, 43,220,221,221,161, + 84, 42, 81, 86,211, 33,195, 48,239,188,247,222,123, 47,212,254, 51, 51, 51,209,173,107,103,172,249,126, 3, 26,117, 29,133, 95, +127, 59, 9,139,149, 71,112,189,234,168,226,239,129,164, 12,237, 75, 61,232, 10,159,160, 15, 90,116,126,243,243,118, 93,250,226, +236,137,253,228,234,137,159,198,151,119, 34,196,222,221,218, 28, 89,176, 96,110,181,217,139,190,147,184, 72, 5,120,160, 51,131, +101, 24, 84,246,145,195, 83,193,226,252,193,173,198, 33,125,219, 56, 61, 57, 94, 96, 96,192,182,101,107,214, 43,150, 45,153,215, +249,102, 24,115, 86,151, 26,149, 3, 0,250,140,200,111, 30, 2,247, 43,254,126,234, 88,163,142, 3,224,227, 95,189,123,108,198, + 67,167,205, 6, 0,125, 76, 76, 76,236,236,217,179,131,150, 44, 89, 66, 56,142,227, 1, 72, 86,174, 92,169,127,244,232,209,109, + 56,134,230,162,172,151, 77,215,238,245,167, 41,197,246, 86, 21,228,108,253,234,190,114,180,174,239,104, 21, 29,210,187, 29, 2, + 43, 85, 66, 76,186,190,113,142,158, 23,234,204, 92,245,181, 63,134,223,168,234,197,141,179, 25,204,247, 1, 28, 42,111,254, 48, +248,163,131,124, 81, 52,203, 69, 38, 4,239,184, 87,202,101,180, 76, 22, 59, 12, 38, 59, 12,102, 27, 10,204,118,232,205,118,240, +196,241, 76, 48, 12, 3,139,141,135, 83,213,230,231,238,125,215, 10, 94,168, 94,149,129,171,220,145, 54,215,194,233, 30, 24, 0, +158,158,158, 80,169, 84, 78, 69, 69,205, 22,199, 35,110,182,242, 79,154,245,205, 22, 27, 8, 33,136,138,138,252, 44, 62, 54,182, +127,205, 90, 53, 59,212, 11,110, 84, 65, 46, 97, 1,160, 68,163,165,215,235,237, 46, 46, 46,170, 10, 21, 42,176, 41, 41, 41, 79, +204,115,205,198,157,109, 7,246,239,195,192,129, 3,116, 15,174,223,121, 50,196,221, 96, 48, 48,109,219,182,117, 13, 12, 12,100, +246,174,171,214, 0, 0, 32, 0, 73, 68, 65, 84, 77, 38, 83,126,121,179, 73,225, 93,251, 77, 15,207, 10,139,222,121,119, 66,237, +206,221, 66,112,238,204, 41, 28,218,191,243,103,189, 58,234,148,179, 34, 65, 65,117, 94, 24,117, 88,163, 86,237, 23, 70, 29, 86, +169, 86,171, 84,163, 85, 47,184,121, 75,194, 8,112, 50,116, 55, 49,178,150, 73, 0,120,187, 81,187,123,215,186, 47,231, 15,155, + 56,171, 70,175,126,195,240,206,200,209, 16, 8, 56,156,255,245, 8,150,205,251,248,168, 78,147, 57,202,153,110, 2,142,208, 91, + 93, 81,128, 44,240,163, 74, 53, 26, 32,236,234, 37, 68, 71,221,139,184,115,227, 74,253,154, 13, 91,193,219,191,242, 71, 9, 94, +220, 18, 60,120, 96, 41, 75,198,108, 52, 38,140, 30, 53, 18, 79,143, 58,108,221, 36,200,147,121,254, 1, 0,160,215,102, 90, 54, + 45,157,246,168,104,212, 33,111, 49, 39,148,164,171,201, 85,239, 61,255,219,181,233,253,123,135,176, 89,249,102, 71, 4, 75, 99, + 46,252,152,144, 85,244,115,190, 9,181,252,149,136,140, 8,227,141,154,172,125,229,124, 46,141,163, 7,247,188, 95,116,239,242, + 60, 1, 3, 24,203,221, 44, 37,116, 29,255,205,183,203,165,119, 98,117, 8,143,203,119, 52, 21, 10, 57,135,193, 18,178, 79, 76, +151, 99, 52,123, 25,209, 33,134,251,122,204,168,161,200,202,183,128,231, 1, 1,199, 22,126, 68, 72,212, 50, 72,210,234,145,149, +171, 70,108,124, 2,242,210,163,193,178, 44,188,252,107, 59, 61,147,180,157,136,253,244,102,210,112, 80,239, 14,130,253,191,167, + 65, 46, 17,192,164,205,192,241, 93, 75,213, 38, 93,254, 34,131, 94,183,223,153,249, 28,255,232,130,192,168,243,117, 70, 31,137, +144,195,158, 45,223, 97,240,232, 73,207,148,190,159,125,177, 0, 96, 25,228,228,106,193, 48,140,186,124,229, 18,115,163,180,237, +151,140,140,189,178, 70, 49,102,235,197,138, 66,201,181, 81,114,252,212,137, 35,138,203,241, 18, 92,143, 76, 43, 52, 89,106,126, +225,228,222,201, 90, 77, 78, 79, 0, 81,229,171, 23,178, 61,135,140,153, 30, 81,189,118, 61,211,185,123,186,184,188, 2,107,137, +253, 28, 90, 15,154, 29,113,243,232,154, 94, 26,107,204,251, 10,191,122,118,222,102,251,198,160,142,154, 87, 66,211,161,120,222, +170, 61, 79,154, 13,103, 44,217,234,248,217,110,135,157,240, 32, 60,240,225,151,235, 96,227,237,224,237,118,240,118, 2,171,157, +200,203, 74,174,202,191,202,254,220,135,187,235, 12,159,255, 98,115,161,187,187, 59, 60, 61, 61,225,233,233, 9, 87, 87,215, 50, +141,150, 80, 40, 84, 10, 4,207, 94,234,132,132, 4,196,199,199,195,213,213, 21,132,183,194,108, 5, 26,180,234,129,187,209,247, +112,250,242,109, 16,222, 14,133,178,252,171,188, 40,124,130,222,111,222,169,255,119, 93,250,141,197,175,251,127, 36, 55, 46, 30, +153, 96,200,140,218,232,116,132,222,110,103,172, 86, 43,122,247,232,148,112, 43,226,241,137, 47,166, 79, 12,105,211,103,130,164, +117, 80, 0,140,102, 59,146,227,163,113,254,224, 79,198,218,213,252, 78,118,109,223, 50,193,106,181,194,110,183,151,249, 34, 55, +154, 45, 89,156, 80,166, 24, 58,116,184,240,198,245,235,251, 20,222,181,246,216, 25,246, 14, 67,248, 96,134,144,129,193,193,117, + 97,177,242,208,235,243,115,203,123,206, 90,173, 54,118,243,230,205,213, 70,141, 26, 37,175, 87,175,158, 48, 58, 58, 26,203,150, + 45,203,214,106,181,177,206,106,156,186, 24,185, 82,192,228, 62, 42,138,104, 37,182,107,141,161,125,218,225,151,163,151,113,254, +210, 21, 36,232,148,183,117, 54,193,193,164,132, 84, 83,253, 10,249,251,250,181,174,194,237,217,146,187, 47,162,211,204,183, 9, +145,156,202,186, 48,183,192,249,135, 27,208, 26,172,112,149, 59,230,123, 42,138,108,113, 12,227,180, 35, 98,128,216, 75, 87,194, + 26, 52,171, 85, 15,183, 98, 53,200,204, 51,193, 96,178,129,231, 9,120, 16,120,186,136, 33, 21,177, 72,140,143, 5, 79, 44,113, +229,124, 85,168, 59,118,232, 40, 0, 24, 48, 12, 17, 8, 5, 2, 16, 56,230, 87,148,201,100, 58,149, 74,229, 84, 68,203, 98,179, + 97, 96, 72, 75,180,106, 30,140,254, 19, 28,115,102,158,249,121, 38, 60,148, 66,252,178,109, 35,146, 46,174,220, 86,173,245,196, + 83,247,238, 70,188, 21,113,235,247,225,111, 52,149, 53,246, 21,164,138, 74, 10,147, 22, 20, 20,236, 3, 32, 22,137, 68, 33, 29, + 58,116,168,176,111,223,190, 60, 47, 47, 47, 94, 44, 18,169,251,245,237,195, 11, 69,162,156,162, 99,127,251,237, 55,225,132, 9, + 19, 92,114,115,115, 19, 51, 50, 50,174, 0,176,150, 94, 17, 12,234, 6, 22, 59,193, 48, 82,165, 76,158, 80,181,106,117,255,230, +173, 90,186,189, 57,112, 48, 36, 98, 9,126, 61,117, 2,171, 87, 44,217,173, 75,123, 48,166, 60, 87,242,117,141, 58, 76, 78,140, +139,213, 27, 76, 13, 27, 52,235,196, 92, 58,117,112,138, 5, 94, 43, 56,137,101,105,183,129,147,106,196,166,234,176,122,241,103, +240,112, 83, 32, 46,250,161,225,209,131,187,235,172,198,252,207,156, 54, 89, 0,228,217,246,183, 90,143, 12,241, 48, 89,236,184, +120,246,168,145,183,241, 33, 87, 46, 28,139,174, 88,187,185,180, 65,243,174, 30, 89,135, 54, 14,212, 3,191,148,165,147,242,240, +197, 8, 46, 49,231,197,157, 57,123,218,205,167,114,125,142, 1, 3,139,201, 8,117,204, 13,155, 62,227, 97,126,126,202, 61,167, + 70,225,102, 39,225,203, 89,115,254,247,126,243,102,205, 20, 4,210,103, 34, 88, 69, 6, 43, 43,223, 12, 47, 23, 49, 12,249,106, + 60,186,113,194,168, 87,115,165,206,119,102, 51, 23,200,179, 50, 51,196,127,116,103,136,106, 85,218,241, 89,153, 25, 98,155,185, + 64, 94,246,171,142,131,171, 66,140,187,113, 41, 79, 58,190, 75,132,142,190, 89, 98, 33,247,164,159, 86, 81, 89, 80, 6,157, 68, + 82,119,164,100, 27,193,128,128,183,219, 96,179,154,161,205,207, 71, 74,106, 58, 50,210, 51,160,213,230, 65,174,244, 64,131,198, + 45,224,162,144,226,206,249,221, 32,132, 56, 53,175,161,149, 17, 6, 53,111,213, 94,114, 47,222,209, 23, 75, 42, 36, 56,178,115, + 73,182, 46, 63,179,189, 46,237,209,163,242,150,197, 54,187,253,116,248,253, 71,245, 43,250, 85,101,110, 71,107,176,109,195, 26, +152, 11, 35,155, 86,171, 29,247, 18, 11,144,150,163, 71, 98,204, 3,194,219,237,167,241, 31, 65, 80,114, 0, 16,130,224, 6,117, +209, 99,196,155,248,254,251,117,136,137,141,231, 23, 77,233,149,168,211,230,189, 81, 14,147,213, 13,133,115,109,232, 51, 34,191, + 49,120, 52, 79, 62,124, 43,135, 53,152, 73,169, 29,124,164,222,149,209,126,204,178,147, 6,109,142,216,110,210, 11,142,108, 27, +179,179, 56, 77,135,131,134,121,209, 39, 67,160,148, 9,192, 48, 12,138,154, 11,215, 46, 24, 15,185,196,209,182,108, 48,217, 48, + 98,218,114,108, 91,254, 49, 8,128, 97,131, 47,235, 75, 74, 39, 28,107, 23,126,232,135,235, 21, 19,226, 51, 83,186,245,253,228, +140,209, 34, 49,245, 25, 48,234,102,179,102,205,242,100, 50, 25,100, 50, 25, 92, 93, 93,225,225,225, 1,119,119,247, 50,207,221, +106,181,234,204,102,179,167, 88, 44, 6,207,243,136,139,139, 67, 92, 92, 28, 52, 26, 13,212,106, 53, 10,116,249,182,235,103,246, + 8, 26,180,238, 5,255,234, 13, 81,185, 86, 35, 8, 57, 6, 2, 1,139,243,135, 55,148,148,206,226, 77, 86,199,126,107,187,246, +127, 15,191,238, 95, 79,110, 92, 60, 50,209,144, 25,181,193,217, 60, 42,108,238,185, 51,112,224,192,134, 19, 38, 76, 16,205,153, + 62,225,228,209, 83,231,163,246,132,174,239,155,155,155, 23, 72, 8,129,187,155, 91,210,144,190,109,142,116,110,219, 60,225,204, +153, 51,252,206,157, 59, 77, 12,195,220, 45, 77,211, 81, 72,101,254,124,230,244,217,185,237, 59,118,194,198, 45, 59, 59, 70,220, +127,208, 49, 58,250, 17, 2, 43, 87, 71,213,106,181,160,103, 60,112,246,194, 37,232,242, 50,127,118, 38,157,207, 69,181,152,220, +220,220,223,135, 12, 25,210,227,242,229,203,236,144, 33, 67,244, 89, 89, 89,191, 61, 21,197, 34,101,105, 94,249, 97,128, 26,192, +207,149, 59,142,222,157, 98,201,251, 8,192,146, 74,149, 43,225,252,165, 43,184,114,249,218,186, 44,121,165,121, 99, 70,188, 59, +190, 74, 63,238,189,126,173,171,112, 42, 15, 57,118,172, 95,198, 29,190, 18,191, 60, 62,219,190,113,201,133,185, 11,156,201,163, + 39, 47, 14,173, 5,109,235, 86,128,213, 78,192, 19, 71,129,235, 34, 21,150, 84,240,190,160, 41, 48, 75,198, 76,156, 48, 33,186, + 65,112,227,169, 35,222,157, 40,106, 92, 61, 16,215, 31,231, 1, 12,131, 10,190, 10,164,165,165,225,226,222,245,182,220,148,135, +235, 56,142,159, 95,142,235,137,220,132,219, 53,159,218, 28,159,149,149,133,243,231,207,163,200, 96,121,123,123,151,100,180,158, +209,204,206, 72,253,109,193,183, 63,182, 29,247,206, 0,244,233, 84, 31, 23,110, 68,195, 92, 56, 95, 83,209, 80,242,216, 43, 63, +136, 63, 26, 82,221,252,254,192,218,249, 6,171, 56,254,203, 56,205, 69, 56,214, 96,229, 75, 72,167, 57, 39, 39,231,112,100,100, +100,187, 70,141, 26, 85, 57,118,236, 88, 78,196,181,147, 83,158, 78,196, 39,159,124,162,252,254,251,239,229,132,144,223,204,102, +115,140, 83,231,206, 98, 71,216,205,155,158, 22, 43,143, 75,215,238,212,237,218,182, 49,120, 2,220,184,113, 3, 27, 55,109, 52, +222, 13,191,189,180, 32,195,119,126, 41,230,165,216,235,105,127,181, 81,135, 79, 52,211, 82,226,151,254,122,116,239,182,230, 29, +251, 98,248,135,243,231,159, 63,186,115,110,211,246,125,216,186,205,123, 32,236,202, 89,156, 62,118,226,127, 22, 93,206, 92,148, +221,119,164,216,116, 74,100,242,201,245,154,118, 68, 98, 66, 60,226, 30,221,251,217,152,243, 56, 53, 33,154,251, 57, 53, 57, 97, + 98,181,250,109,113,249,228, 47, 83, 74, 49, 90,165,222,243,129,222,178,245,199, 66, 15, 15, 77, 78,254,193,183,192, 96,148, 16, + 66,140, 18,177, 32, 93,201,106,119,229, 59,157,206, 7, 22,117,106,149,129,131, 71, 76, 60,186,122,245, 10,161,143,187, 28,233, +185, 70,228, 27, 44,208,234, 45, 96, 25, 6, 53,253, 21,208,107,115,112, 97,239,183, 86,179, 46,119, 8, 16,109, 41, 73, 83,161, + 10, 90,152,251,248,236,135,159, 76, 58, 7,177, 91,160,127,213, 46,179, 74,141,214,105, 83,110,247,253,100,210,145, 32, 66, 72, + 87,133, 42, 72, 91,144, 25, 57,187,164,115,103, 24,199,243, 61,188,115, 32, 44, 54,199,252, 99, 54, 30,176,243,124, 97,148, 15, + 32, 79,218,243,153, 50,206,157,225,119, 29,253, 13,169, 25,121, 48,152,173, 48,153,109,176, 88,237, 96, 57, 14,238, 30,238,168, + 85,181, 9,220,220, 93,145,145,158,138, 43,103, 14, 35, 42,252,194,111, 12,193, 60,131,250,209, 25,103,242, 72, 36,115, 15,242, +243,247,101,211,242,205,144,137, 57,220,190,112,204, 98, 53,155,150, 58,105,178, 94,208,204,203,206, 89, 62,117,250,167,195,126, +218,188,197,183, 97, 53, 87, 36,103, 25,144,172, 54, 66,107,180, 22, 26, 49, 30, 38, 93, 22,194,207,110, 73,183, 27,181,203,241, + 31,161, 68,163,101,179, 24,181,251, 78, 92,247,156, 57,247, 91,238,113,116,140,117,225, 71,189,147, 13,186,252, 94,229,142,100, + 61,197, 79, 31, 84,251,229,207, 56,137, 23,154, 11, 9, 15,158, 16, 28,185,150,254,164,185,144, 47,236,121,121, 43,186,244,101, + 4,159, 94,187,176, 83,175, 41,191,134, 71,106,183, 27, 12, 25,110, 15, 31, 47,205, 5, 0,142,227,158,124,138,250,102, 25,141, + 70,115, 25, 77, 40, 91, 55,108,216, 48, 99,226,196,137,146,164,164, 36, 68, 71, 71, 35, 47, 47, 15, 82,169, 20, 39, 78,156,176, +130,183, 45, 13,191,124, 32, 46, 50,236,212, 87, 65,205,122, 84,108,216,186, 23,228,114, 5, 4,196,249,206,152,114, 85,237,161, +205, 58,246,251,174,235,155,227,112,250,192, 6,114,227,194,225, 73, 6,117,212,250,242, 94,203,188,188,188, 8, 0,143,150, 46, + 93,218,120,227,198,141,213,166, 79,159, 30,179,245,187,185,171, 1, 32, 59, 59, 27, 0,112,235,214, 45, 50,105,210, 36,147,209, +104,140,205,205,205, 13, 67, 25, 3, 32, 0,192,160,150,127,189,113,237,146, 6, 73, 41,105, 3,170, 55,104, 1,239,106, 45,224, + 91,179, 37,114,181, 22, 92,127,156,138,152, 7,103,240,224,210,222, 99,122,165,109, 46,202, 57,191,113,163, 70,141, 2, 89,150, +173,170,211,233,124,235,213,171,215, 72,161, 80,220,106,212,168, 81, 19,129, 64,144,124,243,230,205,248,242,104, 37, 92,216, 98, +170,220,113,244,170, 4,173, 75,231,152,116,125,147, 4,173,203, 45,189,196,237, 99,245,217, 85,166,159,184,128,229,196,146, 21, +177,103, 75,254,190, 29,235,151,113, 35,198,127, 98,191,167,241,248, 72, 32, 19,255, 90,190,112, 53,155,246,254,168,254,127, 76, +239, 80, 24,201, 42,252,217,169, 48,189, 70, 19,174, 1, 48, 35,252,190,240,187,123, 31, 77, 88, 16,220,188,237,200, 14,111, 12, + 97,109, 34, 37, 78, 30,248,129,196,134,159,221, 35, 32,246, 47, 12, 78,172, 6, 80,102,115,144,217,236,140,201,122, 49,141, 73, +138, 78,123,118,110, 26,189,239,192,254,197,111,246,235,239,185,246,203,183,241,237,143, 7,161,144, 73, 64,120, 30,111,119, 14, + 28,244,213,123,117,250, 6,250, 72, 3,246,157, 75,190,248,225,138,123, 51,244,122, 75,148, 19,145, 24,146,149,149,117, 73,169, + 84,170,219,181,107,215, 74, 34,145, 48, 89, 89, 89, 2,149, 74,101,115,115,115, 51, 39, 39, 39,235, 77, 38,211, 62, 0,229,154, +118,220, 98,229, 17,151, 97,196,161,253,251,112,231,218, 25, 60,120, 16,169,125,112,255,193, 26, 70, 64, 86, 20,100, 60,202, 1, +202, 93,193, 7, 95,236,168, 67, 82,238, 81,135,118,147,118,199,214,117, 11,187,232,141,166,209,141,218,244, 70,149,186,109, 89, +139,213,142,187, 55,206,225,220,222, 21,223, 90,116, 57, 51, 95, 37,143,253, 43, 86,171, 69, 56, 49,126, 63,127, 20,132,231,215, + 1, 0,225,249,117,183, 46, 31,155,216,178,215,123,168,160,170,210, 40, 47,241, 22,131,151,152, 61, 92, 36, 96, 11,142,239,251, +233, 64, 92, 92, 28, 30, 62,124,136,199,143, 31, 35, 39, 39, 7, 59,118,196,149, 43,127,244,185,241,191, 70,221,103,123,190,245, +246,240, 35,131,134,190, 35,173, 86,171, 33, 27, 84,209, 3,158, 74, 1, 34, 31,199, 35,234,102, 56, 31,121,253,152,209,146,159, +249,166, 33, 55,190, 68,227, 39,247,170,235, 3,216,103, 22,173, 93,216,186,117,219,160, 79, 23, 45,110,229,233,173, 42,182, 28, +207, 86,103,138, 63,251,240,112,208,149,171,191, 59,181,214, 33,111,183,103,143, 31, 61,132,231, 28, 11,133,226, 73,156,186,240, +234, 57, 42, 83,142,253,132,183,149, 25,193,127,119, 64,123,216,120, 30, 5, 6, 11,242, 11, 76,208,104,141, 72,203,204,198,157, +240,112, 92, 56,114, 24,209,145,119, 98,173,102,243, 41,150,101,246, 26, 50,162, 46,148,175,165, 73, 80,205,179, 66, 5,196,230, +232, 32, 21, 11, 16, 31,117,211, 84,144,175,217,254,178,247,145, 33,251, 81, 90, 38,199,244, 24, 50,100,232,137, 46, 61,251,185, + 53,111,211, 77,238,229,234, 14,145,128,224, 81, 92, 42,194,126, 59, 81, 16,115,231, 98,190,213,172, 11,121, 29,171,190,252,205, + 41,123,212,161,197, 84,208,119, 88,255,142,251, 57, 78, 32,230,121,155,201, 98, 54,189,245, 42, 38,235,207,130, 16,123,242,232, + 97, 3,158,169, 27,216,120, 34, 27, 54,248,164,225,233,186,130,213, 78,228,195, 6,255,166,119, 20, 32, 37,119,236,243,243,171, +208,187,104,237,194,132,132,236, 27, 57, 57,166,115, 0,146,141, 70,227, 75,167, 49, 35, 35, 99,193,162, 69,139,250,232,245,250, + 58,157, 58,117,146,184,186,186, 34, 59, 59, 27,167, 78,157,178,134,134,134,222,207,204,204,252, 10,200,180, 25,208,228,231,112, +227,129, 81,145, 55, 79,125, 85,167, 89,207,138, 13,219,244,114,190, 48,147,200,198,117,233, 55,150, 57,125,112, 3,185,126,254, +224,251, 6,245,163, 31, 95,225,178, 90,140, 70,227, 53,163,209,120,239,139, 47,190,104,238,227,227,227,243,213, 87, 95, 73,243, +243,243,133,107,215,174, 53,102,101,101,165,231,231,231, 95, 65, 41,253,105, 94,228,150, 85,147,130,129,199,247,109,232, 76,246, +109,232,238,238, 21,208,195,205,187, 98,141, 60,117, 74,172, 70,157,122, 10,192,233,194,137, 34,203, 69,227,198,141,171, 51, 12, + 51, 4, 64, 3,133, 66, 81, 83,169, 84, 74, 8, 33,117, 24,134,137,224,121, 62,188, 94,189,122,161,247,239,223, 47,215,100,178, + 9, 23,182,152, 2,131,218,238,204,209,243, 34, 51, 43,218,153,112, 97,139, 9, 0, 50,127,253, 84, 15,224,208,253, 78, 51, 6, + 30,190, 18,191, 58, 34,215,109,138,250,252,226,195,229, 77,179, 38,249, 78,205,215,117,255, 27,211,238, 39, 3, 24, 29,126, 19, +203,238,222,186, 50,135, 33, 16,218, 97, 91,104,200,124,124,243,117,232, 11,133, 66, 99, 64, 64, 64,177,163, 11, 37, 18,137,209, +100, 42, 45,128,114,193,166, 75,195, 70,160,227,150,253,187,183,140, 62,120,248,208,226, 14, 93,223,244,148, 86,172,136,170, 42, + 6, 91,102, 54,157,114,230,150,250,122,191, 79, 47,126, 31,147,106, 12, 71, 57,251,195,232,116,186, 40, 0,185, 58,157,174, 63, + 33, 36,137, 97,152,192,220,220,220,219, 86,171,245,110,185, 13, 1,143,225,173, 91,183,216,193, 48,140,128,216,248,111,174, 8, +185,157,198,180, 7,201,120,197,101, 73, 26, 86,117,197,180,175, 86, 53,173, 81,179,118,211,162,181, 14,235, 87,113,193,132, 25, +203,154, 86,169, 86,171,233, 31,235, 31,150,217, 77,128, 88,245,185, 99,246,111,250,230,226,173,171,231, 62,247,242,171, 82, 37, + 61, 57,230, 65,210,227,219, 11,236,198,252,253,175,154,207,113,143, 35, 86,108, 92, 58, 99,122, 90, 74,236, 70,189,250,209, 61, + 0,208,171, 31,221,123, 16,134, 47,179,210,147,167,103,103,198, 44,125,217,107, 81, 80, 80,144,186,125,251,118,247,182,109,219, +178, 62, 62, 62, 80,171,213, 56,119,238, 28,207,243,124, 74,185,181,114, 98,207, 21,228, 48, 21,126,254,241,187,111, 68, 10,151, + 94, 54,155,205,159, 16, 64, 32, 16,164,153,245,249, 39,180,172,226, 83,228,198, 27, 75,127,103,240, 12, 0,182,104,237, 66,158, +231,153,111, 86,111,137, 23, 74, 93,138,157, 12,209,106,212,202,121,158,119,122,173,195,188,196,176, 26,175,235,249,102, 8,153, +215,168, 89,171,207,173, 86,139,177,240,249, 48, 2, 48, 18,130,108,150,101, 46,112,188,245,100,254, 43, 84,166, 24, 6,174,132, + 17,192, 69, 38, 0, 3, 6, 58, 77, 14, 41, 79,159,172, 98, 13,113,102, 84,132, 62,179, 99,229,227,230,221,163,206,254,122,108, +176,221,110,175, 90, 24, 51,136, 51, 25, 10,246,232,210, 60,126, 6,110,218,240,239,231,104,145,217, 98,254,228,127,228, 84, 51, +202,223, 73, 51,168,154,172,127,197, 0,159, 81,113,241,153,215, 99,146,244, 63,227,217,101,117, 94, 37,157,156,143,143,207,151, + 12,195,140, 20,139,197, 74,179,217, 92, 64, 8,217,154,145,145,177, 0, 47, 44,254,219, 68, 40, 83, 25, 70,137,165,242,217, 22, + 99,193,239,250,204,168,225,101,157,187,220,187,118, 15,169, 66, 49,195,104, 40,216,170,207,136,218,242,154,175,167,155, 68, 34, +105,162, 84, 42,133, 89, 89, 89,215, 0,104,254, 78,249,222,168, 81,163, 74, 44,203, 86,229,121,222, 7,128, 27, 28,163, 66,178, + 4, 2, 65, 74, 97, 68,139,148, 87,179,221,187,123,188,186,118,175, 63,237,212,197,200,149,133,205,138, 79, 8, 24,180, 92, 58, +178, 87,231, 79,126,222,127,168,184, 81,135,255,184,123,254,255, 79,179,163, 64,233,151, 53,154, 21,187, 45,236, 26,100,212,103, +165,166, 76,186,116, 87,125, 13,128,246, 85,210, 41, 18,137, 70, 88, 44, 22,153, 72, 36, 50, 88, 44,150,237,127,151,115,151,169, +130,198,178, 32, 78,175, 76,193,131,185,249,220,160,149,127,203,189,196, 53,108,216,176,189, 72, 36,170,100,183,219,229,102,179, + 89,111, 48, 24,226,226,227,227,127, 71,201, 11,159,255,169,233, 84,168,106,173, 16,137, 36, 31, 1,128,197, 98, 90, 85,144,249, +104, 90,105,127, 88,202,241,255,232, 60,242,170,218,236,145,128, 19,122,163,112, 98,110,222,102, 83,103,196,222,168,245, 23,166, +147,242,146,153, 75, 53,169, 38,213,164,154,207,195,210,235, 73, 53,255, 74, 77,169, 95,221, 64,169, 95, 93,167, 39, 93, 46,225, +120,122, 61, 41, 69,140, 47,230, 3,192,137, 9, 75, 41, 20, 10,229, 79,128,167,151,128,242, 87, 98, 76,123,144,244,103, 30, 79, +249,207, 81, 98,159,104,166, 20, 87, 90,158,144,224,203, 56,219,211, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,207,105,150, +165,253, 79,108,146, 28,255,220,246, 81, 0,255, 47, 29,254,105, 88,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 53,158, + 24, 47,150, 94, 11, 10,133, 66,161, 80, 40,148, 63, 7,218, 71,139, 66,161, 80, 40, 20, 10,229,213, 40,174,233,144, 26, 45, 10, +133, 66,161, 80, 40,148,215, 64,137,157,225,105,211, 33,133, 66,161, 80, 40, 20,202,171, 81, 20,209,242,195,115,211, 59, 80,163, + 69,161, 80, 40, 20, 10,133,242,122, 72, 67,113,209,173,208,208, 80, 82,220,207, 20, 10,133, 66,161, 80, 40,255, 31,252,195,189, +200,211,145,172,241,133,219, 0,158,138,104, 81,131, 69,161, 80, 40, 20, 10,229,239, 98,182,254, 97, 20, 69,178,138, 62,105, 47, + 24,173, 62,125,250, 48,212,108, 81, 40, 20, 10,133, 66,249,171,248, 55,122, 17,246,249, 19,164,217, 76,161, 80, 40, 20, 10,229, +175, 52, 91,255,166,243,161,211, 59, 80, 40, 20, 10,133, 66,161,188, 26,126, 0,122, 63,181,253,255,182, 4, 15,133, 66,161, 80, + 40, 20,202,191,157,241, 37,109,211,136, 22,133, 66,161, 80, 40, 20,202,235, 55, 91, 20, 10,133, 66,161, 80, 40,148,127, 50,116, +101,115,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219, 41,154, 71, 11, 40,105, 30, 45, 10,133, 66,161, 80, 40, 20,202, 75, +209, 27,142,249,179,198, 23,126,247,166, 70,139, 66,161, 80, 40, 20, 10,229,245,242,194,242, 59,212,104, 81, 40, 20, 10,133, 66, +161,188, 94,131,181,158, 26, 45, 10,133, 66,161, 80, 40,148, 63, 25,106,180, 40, 20, 10,133, 66,161, 80,254, 36, 24,148, 60,114, +224,116, 57,116, 94,102,244,193,105,170, 73, 53,169, 38,213,164,154, 84,147,106,254,231, 52,203,210, 62,141,127, 30, 69, 51,195, + 31,197, 31, 29,225,215,255,127,252, 99, 58,244,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255,118,198, 63,247,253, 4,218, +116, 72,161, 80, 40, 20, 10,133,242,122,205, 22, 93,130,135, 66,161, 80, 40, 20, 10,229, 53, 81, 98, 51, 33,141,104, 81, 40, 20, + 10,133, 66,161,188, 26, 37, 46, 42, 77,141, 22,133, 66,161, 80, 40, 20,202,159, 99,184,168,209,162, 80, 40, 20, 10,133, 66,121, +141, 38,107,124,177,191, 13, 13, 13, 37,244, 26, 81, 40, 20, 10,133, 66,249,171,248,215,122,145,162, 19,163,102,139, 66,161, 80, + 40, 20, 10,245, 34,229,198, 15,127,140, 54, 28, 95,184, 13,128,142, 58,164, 80, 40, 20, 10,133, 66,121, 85,122,227,217,145,135, +227,139,182,169,209,162, 80, 40, 20, 10,133, 66,121,117,198,151,250, 91,218,108, 72,161, 80, 40, 20, 10,229,175,228,223,232, 69, + 24,154,173, 20, 10,133, 66,161, 80, 40,175, 68,113,209,172,245,244,178, 80, 40, 20, 10,133, 66,161,252,185,134,139, 66,161, 80, + 40, 20, 10,133,242,103,152,172, 63,123,194, 82,186,178, 57,213,164,154, 84,147,106, 82, 77,170, 73, 53,255, 43, 38,235,233, 41, + 30, 0,208, 81,135, 20, 10,133, 66,161, 80, 40,175, 10, 93, 84,154, 66,161, 80, 40, 20, 10,229, 79,130, 46, 42, 77,161, 80, 40, + 20, 10,133,242,255,108,184,168,209,162, 80, 40, 20, 10,133, 66,121,141, 38,235, 25,179, 69,251,104, 81, 40, 20, 10,133, 66,161, +188, 26, 37,246,209, 98, 80,242,200,129,211,229,248, 7, 47, 51,250,224, 52,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,115, +154,101,105,159,198, 63,159,241,248,127,154,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 13, 58,189, 3, +133, 66,161, 80, 40, 20,202,235, 54, 86,207, 67,141, 22,133, 66,161, 80, 40, 20,202,171, 65,231,209,162, 80, 40, 20, 10,133, 66, +249,147,240,131, 35,170, 85,244,221,132, 26, 45, 10,133, 66,161, 80, 40,148,215, 67,111, 56,162, 90, 69,223,212,104, 81, 40, 20, + 10,133, 66,161,188, 70,138,157, 71,139, 1,128,208,208, 80, 82,184,221,169, 79,159, 62, 23,232,181,162, 80, 40, 20, 10,133,242, +255,201,191,213,139, 60,137,104,245,233,211,135, 1,112,158,102, 53,133, 66,161, 80, 40,148,191,130,127,163, 23, 97,159,115,146, +157,104, 54, 83, 40, 20, 10,133, 66,249, 43,248, 55,122, 17,193,115, 46,146, 66,161, 80, 40, 20, 10,229, 47,225, 31,236, 69,252, +224,232, 8,127,180,240, 27, 40,156,242,129,206,163, 69,161, 80, 40, 20, 10,133,242,106, 20,141, 54,124, 97,233, 29, 26,197,162, + 80, 40, 20, 10,133, 66,121, 53,138,155, 25,126, 61,189, 44, 20, 10,133, 66,161, 80, 40,127, 34, 52,162, 69,161, 80, 40, 20, 10, +133,242,234, 60, 29,213,250,127,139,102,209,149,205,169, 38,213,164,154, 84,147,106, 82, 77,170,249, 95, 50, 89,207,108,211,153, +225, 41, 20, 10,133, 66,161, 80,254, 36,232,168, 67, 10,133, 66,161, 80, 40,148, 87,163,104,196,225,211,219,212,104, 81, 40, 20, + 10,133, 66,161,188, 70,179,245, 2,180,233,144, 66,161, 80, 40, 20, 10,229,213, 24, 95,210, 47,168,209,162, 80, 40, 20, 10,133, + 66,249,147, 12, 23,131,146, 71, 14,156, 46,135,240,203,140, 62, 56, 77, 53,169, 38,213,164,154, 84,147,106, 82,205,255,156,102, + 89,218,167,241,207,227, 47,155,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 22,218,116, 72,161, 80, 40, + 20, 10,133,242, 55, 48, 90,222, 2,129,224,115,153, 76,246,189, 76, 38,251, 81, 32, 16, 44, 5,224, 81,222,127,168, 80, 40,166, +248,250,250, 62,244,245,245, 77,174, 84,169,210, 49, 23, 23,249,212,234, 18,116, 0, 32,124, 77,231, 19, 4, 96,170, 76, 38,123, + 32,149, 74,227, 1,108, 3, 48, 21,128,215,171, 8, 47,240,199, 91,247, 62,234,127,112,129, 63,222,122,238, 87,189,125,124,124, + 46, 1,232,241,186, 50,101,168, 28,221, 6, 41,144, 56, 72,129,196,161,242,151,175, 53,184,184,184,140,244,243,243,187,226,233, +233,153,226,231,231,247,155, 84, 42, 29, 84, 78, 9,149,143,143,207,183,129,129,129, 81,254,254,254, 43,225, 88,157,252,111, 75, +123, 9,218,183,146, 64,221, 90, 12,109, 91, 49,190,111, 45, 70,247,238,128,252, 37,229,218, 1,216,235,234,234,122, 91, 32, 16, +132, 2, 24, 88,120,127, 13, 20, 8, 4,161,174,174,174,183, 1,236, 45, 60,238,101,238,211,111, 1,164, 0,248,186,112,123,114, + 96, 96,160, 54, 56, 56, 56, 62, 56, 56,248,167,154, 53,107,190,227,172,152, 92, 46,239, 30, 24, 24,184,175, 82,165, 74,241,173, + 91,183,206, 9, 8, 8,136,172, 88,177,226, 22,137, 68,210,137, 22,113, 20, 10,133,242,247,167, 47,128,197, 0,214,132,135,135, +135, 17, 66,194, 8, 33, 97,225,225,225, 97, 0,190, 7,176, 4, 37,135, 16,159,217,239,233,233, 57,111,225,194,133,198,180,180, + 52,162, 86,171, 73, 84, 84, 20, 89, 49,123, 6,223,179,130,128, 84,247,246,208,251,249,249, 69, 87,174, 88,241,151,250, 74,118, + 6,128, 26,206,104, 62,133,135, 76, 38,187, 54,123,246,108,221,165, 75,151,116,102,179, 89,199,243,188, 46, 53, 53, 85,119,250, +244,105, 93,219,182,109,117, 0,166, 1,224,202,161,249,132,249,254,184, 64, 54,125, 73,230,251,227,194,211,251,235,212,169,115, +159,231,121,242,214, 91,111,153, 0, 4,148, 71,243,121, 2, 0,105,125, 87,184, 15, 82, 34,195,182,101, 1, 33,107,167,147, 65, + 10, 36,190,140,166, 74,165, 58, 52,101,202,148,252,148,148, 20, 98, 50,153, 72, 98, 98, 34,153, 48, 97,130, 70,165, 82,109,119, +242,220, 61, 27, 54,108,152,113,229,202, 21, 62, 47, 47,143,156, 63,127,158,111,208,160, 65,134,147,102,171,219,115,105, 89,239, +239,239,127,172, 60, 31,149, 74,181,177,188,121,212, 82,130, 68, 75,216, 57, 66,110,156, 34,135,223,106, 77, 86, 52,171, 72, 6, + 86, 16,231,181, 19, 99,114,199,226,167, 50, 41, 73,115,112,199,142, 29, 11,238,222,189,107,207,206,206, 38,247,239,223,231,199, +141, 27,103, 4, 16, 49,110,220, 56,227,253,251,247,249,236,236,108,114,247,238, 93,123,199,142, 29, 11, 0,188, 87,142,116,178, + 0, 54,207,157, 59,151, 16, 66,200,194,133, 11, 73,112,112, 48,233,210,165, 11,209,233,116,132, 16, 18, 79, 8,249,201,102,179, +141,118, 70,211,205,205,109,228,148, 41, 83,116,122,189,158, 20,193,243, 60,201,203,203, 35,107,214,172, 41,240,245,245, 61, 86, + 66, 37,131, 54,121, 80, 77,170, 73, 53,255,110,154,255,100,252,224,232,167, 85,244,113, 58, 48, 49,108,198,140, 25, 69,166,234, +120,187,118,237,174,143, 30, 61, 58,108,244,232,209, 97,237,218,181, 59, 15,224,228,205,155, 55,195, 62,251,236,179, 48, 0,195, +202,200, 8,143, 54,109,218,228,165,167,167,147, 90,181,106,145, 42, 85,170,144,244,244,116, 66, 8, 33, 55, 6, 55, 37,103,234, +130, 36, 93, 60, 78, 78, 29,216, 75,198,249, 9, 72,123, 63, 55,171,159,175,111,182,151,151,215, 34, 60,187, 38, 99,113,153, 59, +160,110,221,186,218,136,136, 8,221,163, 71,143,116,243,230,205,211,117,233,210, 69,215,176, 97, 67,221,192,129, 3,117,171, 87, +175,214, 89, 44, 22,221,198,141, 27,117,174,174,174, 17,197,152,173,151, 54, 90, 2,129, 96, 85,120,120, 56,137,142,142, 38,133, + 81,138,146, 52,221,220,221,221, 67, 60, 60, 60,166,185,187,187,135, 0,112, 3,128, 90,128,178,145, 27, 42, 77,110, 84,189, 78, +232,176,110, 53,214,116,107,222,116,144, 11,155,103,253,110, 58, 33,111, 85,122, 41,163,229,230,230, 54,114,234,212,169, 90,147, +201, 68,244,122, 61,209,233,116, 68,175,215, 19,173, 86, 75,134, 13, 27,150, 47,149, 74, 7,148,165,233,229,229,181,224,226,197, +139,182,244,244,116,114,241,226, 69,114,236,216, 49,178,118,237, 90, 94,165, 82, 45, 47,239, 3,232,235,235,251,235,169, 83,167, +194,110,221,186, 21,118,237,218,181, 48,171,213, 26,102,177, 88,194, 44, 22, 75, 88,104,104,104,216,254,253,251,195,118,237,218, + 21,102, 54,155,195,204,102,115,152,201,100, 10,171, 86,173,218,137,242,230, 81, 11, 9,146,204,151, 14, 19,178,252, 3,162,249, +223, 36,146,247,113, 47,146, 57,161, 3,249,190,121, 69,210, 65,134, 35,120,113,109,207, 98, 53,133, 66,225,133,248,248,120,126, +214,172, 89,230,122,245,234,105,198,140, 25, 99, 52,153, 76,132, 16, 66, 76, 38, 19, 25, 51,102,140,177, 94,189,122,154, 89,179, +102,153,227,226,226,120,129, 64,112,186, 28,233, 92, 82,100,178, 46, 92,184, 64,158, 70,167,211,145, 46, 93,186,196, 7, 7, 7, +255, 84,181,106,213,225,101,105, 42,149,202,254, 51,103,206,212,145, 98,176, 90,173, 68,171,213,146,184,184, 56,190, 74,149, 42, +169, 0, 60,105, 97, 78, 53,169, 38,213,164, 70,235, 79, 99,124, 25,219,197, 95,196,207, 62,251, 44,140, 16, 18,246,197, 23, 95, +132, 21, 70,182, 68, 0,148,133, 31, 1,128,161, 51,103,206, 12, 35,132,132,205,152, 49,163,232,152,146, 50,162,239,158, 61,123, + 44, 43, 87,174, 36, 62, 62, 62,196,215,215,151,172, 90,181,138,240, 60, 79,210, 67,183,147, 51,117, 65, 30,124, 62,138, 16, 66, + 72,212,162, 15,201,153,186, 32, 49,235,230,147, 17, 35, 70,232,229,114,249,176, 82, 50,183, 66,211,166, 77,181, 6,131, 65,183, +101,203, 22,157, 92, 46,191, 1,160, 30, 28, 77,145, 76, 97, 90,223,169, 87,175, 94,254,189,123,247,116, 59,119,238,212, 1,152, +231,228, 13, 83, 3, 64,103,133, 66, 49,112,102,128,240, 17,217,244, 37,153,233,131,187, 0, 26, 0,240, 46, 60,198,127,198,140, + 25,132, 16, 66, 2, 3, 3, 47,150,160,233,214,176, 97,195, 25,143, 30, 61,154, 99,181, 90,231,220,186,117,107, 78,237,218,181, +103,245,171,230,215,250,224,176,238, 77, 52,243, 39, 53, 33,203, 62,110,184,244,141, 22,221,126, 25,210,105,216,187, 85,189, 46, +141, 81, 73,245,111,187,113,218,231,154, 14,157,186,177, 3, 2, 2,174, 37, 38, 38, 62, 49, 87, 90,173,150,164,164,164,144,216, +216, 88,114,233,210, 37,226,231,231,119,166, 44, 77, 95, 95,223,251,137,137,137,100,221,138, 21,228,173, 6,117, 72, 7,119, 23, +210,209,195,133, 52, 83, 74, 11,234, 2,205,202,107,180,110,223,190, 29, 6, 32, 12, 64, 88,118,118,118, 88,118,118,118, 88,110, +110,238,147,125, 0,194, 52, 26, 77,152, 70,163, 9, 51,155,205, 97,213,171, 87, 47,183,209,106, 43, 69,219,150, 82,228,180,150, +192,208, 55,192, 43,117, 82, 53, 47,251,213, 97,173, 73,238, 7, 93,200,202, 38, 1,164,157, 24,147,157,212,236, 43, 22,139,207, + 3,152, 94,104,202, 71,133,132,132,232, 9, 33, 36, 36, 36, 68, 15, 96, 84,225,254,169,133, 38, 43,196,201,116,178, 53,107,214, + 44, 40,138,100, 1,248,189,102,205,154, 5,193,193,193, 36, 56, 56,152, 4, 6, 6,106, 11,181,157, 42,208,106,212,168, 17,101, + 48, 24,158, 24,192,188,188, 60,146,154,154, 74, 98, 98, 98, 72, 68, 68, 4,185,113,227, 6,137,143,143, 39,187,119,239,182,187, +187,187, 31,165,133, 57,213,164,154, 84,147, 26,173, 63,213,104, 61,255,121,150,208,208, 80,242,220,174,255,221,188,121, 51,108, +230,204,153, 97,101, 56,179,241, 95,124,241, 69, 81,212,107,113, 41, 47,255,141, 81, 81, 81,100,212,168, 81, 36, 40, 40,136, 4, + 5, 5,145,209,163, 71, 19,141, 70, 67,116,143,239,145, 51,117, 65,110,188,221,140, 16, 66,254,143,189,239, 14,139,226,106,223, +190,103, 59,236, 46,236,210,151,174, 82, 4, 11, 40, 26, 53, 22,236, 45, 98, 39,118,141, 61,150, 87,163, 49,198, 22, 1,163,198, + 18,123, 76, 52,177, 69, 52, 22, 36,138,216,177, 97, 87, 64, 16, 20, 1, 65,154,148,165, 45, 91,128, 93,182,156,239, 15,132, 16, + 67, 53,121,127,223,155,100,238,235,218,107, 97,231,204, 61,231,204,156, 51,115,207,115,158,243, 60, 68,241, 34,134, 92,111, 3, + 18, 61,185, 59,137,141,141, 37, 14, 14, 14, 87, 27, 56,254,249,123,247,238, 21, 28, 59,118, 44, 15, 85,254, 88,108, 0,221, 0, +236, 50, 54, 54, 62,132,170,233,194, 22, 0,204,220,221,221,139,203,202,202,148, 99,199,142, 85, 2,112,106,128,179,183,135,135, +199,171, 3, 7, 14, 16,169, 84, 74,138,139,139,201,150, 30,173, 9, 57,248, 21, 89,223,185,133,225,135, 31,126, 80, 47, 91,182, + 76,101,110,110, 30, 14,192,110,236,216,177, 58, 66, 8,241,245,245,205,175,139, 76, 44, 22, 15, 73, 78, 78, 14,168,168,168, 8, +144,201,100, 1,197,197,197, 1, 97,103,207, 6, 12,110,223,122, 90,233,186,121, 62,103, 39, 14,244, 25,106,111, 54,102,251,160, + 15, 62,125,179,114,214,216,213,221,219,190,168,216,180,248,230,199,173,108,182,190,207,213,182,178,178,202, 85,171,213, 4,192, + 31, 62,175, 94,189, 34, 22, 22, 22,153,141,113,152,155,155,175,254,108,194,120,253,232, 22,246,228,213,206, 53, 68,123,237, 23, +162,189,120,132,164,108, 94, 74, 70, 72, 44,229,221, 56,140, 21, 77,173,143, 68, 34,185,246,232,209,163,223, 9,173,146,146,146, + 58,133,150, 92, 46,143,214,104, 52,209,110,110,110,151,255,108,175,239,198,133, 75,111, 99,230,147,152,105,189, 72,193,188,126, +100,136,136,157,254, 39,232, 38, 0,184, 5, 96,114, 51,247, 99, 0,216, 84, 45,168, 54,111,222, 76, 8, 33,196,205,205, 77,133, + 63,183, 24, 69,228,233,233,153, 54,107,214, 44, 93,155, 54,109,164, 61,122,244,144, 61,126,252,152,220,190,125,155, 92,188,120, +145,132,132,132,144,248,248,120,242,230,205, 27,146,148,148, 68,134, 13, 27, 38, 3,208,155,190, 23,210,160, 65,227,127, 25,117, +104,145,191, 61, 24,213, 13,243,243,243,163,106, 53, 80, 4,192,168,115,231,206, 5,155, 54,109,218,134,170, 88, 16,148, 23, 19, + 31,247, 51,102,197,246, 51,102,197,122, 49,241,241, 91,139,209,143, 27, 54,108,248,218,219,219, 59, 23,128, 49, 0, 73, 93, 7, + 34,132,244,178,176,176, 64,102,102, 38, 68, 34, 17, 68, 34, 17, 50, 51, 51, 65, 8,129,142, 0, 90, 2,168, 43, 43, 81, 94, 94, +142, 10, 3, 65,185, 1,144, 43,149,144, 72, 36,168,172,172,116,169,167,254, 29,198,141, 27,231,226,229,229, 85,176,124,249,242, + 28, 84,249,202, 28,154, 57,115,230,181,251,247,226,190,220,164, 0, 0, 32, 0, 73, 68, 65, 84,239,123, 41,149,202,226,132,132, +132,138,246,237,219, 15, 1, 32, 73, 78, 78,158,178,103,207, 30, 76,155, 54, 13, 13, 60,116,218, 15, 27, 54,236, 98,124,124,188, +203,228,201,147,113,235,214, 45,108,217,178, 5,133,133,133, 4, 0,212,106, 53,209,235,245,149,221,187,119,175,220,185,115,103, + 23, 95, 95,223, 71,173, 90,181, 98, 2, 64, 90, 90, 90, 74, 93,132, 20, 69,181,118,118,118,134, 90,173, 70, 65, 65, 1,226,227, +227, 97, 34, 18, 33, 46,167,208,166,207,246, 31,138, 86,157,189,198,158,208,197,203,124,201,192, 30,234,141, 87,111,185,183,181, +179,177,209, 84,106, 37, 73,185,249, 57,239,115, 81, 57, 28, 78,102, 97, 97, 33, 52, 26, 13,202,203,203, 33,151,203, 81, 84, 84, +132,194,194, 66,228,228,228,128,195,225,188,106,140,195,180,184, 56, 50,237,222,109,234,212,190,205,112,209, 21,131,117,102, 23, + 88,231,190,135,171,166, 0,251,215,204, 53,209, 88, 88, 5,154,154,152,148,136,197,226, 31, 1,184, 53,198,231,227,227,131,162, +162, 34, 20, 21, 21,193,194,194, 2,102,102,102, 48, 51, 51,131, 76, 38, 67,105,105, 41,228,114, 57,220,221,221,209,161, 67, 7, + 28, 61,122,244, 47,233,220, 15, 53, 72,213, 65, 63,239,218,203, 28,112, 4, 2,180, 50, 19, 58,127, 32,132,121, 3,187,244, 99, +179,217,167,205,205,205,175, 2, 88, 0, 64, 0, 96,129,185,185,249, 85, 54,155, 61, 10,192,122, 0,199,154, 89,141,141,129,129, +129, 95, 38, 39, 39,243, 99, 99, 99,177,124,249,114, 4, 5, 5, 33, 37, 37,229, 59, 0,134,183,101,230, 91, 88, 88,132, 51, 24, +140,159, 0,124, 4, 96,136,173,173,109,255, 70,120, 71, 45, 91,182,172,162, 83,167, 78, 73, 47, 94,188, 24,117,239,222,189,206, + 75,151, 46, 45,205,200,200, 64, 82, 82, 18,108,109,109,225,232,232, 8,165, 82,137,146,146, 18,140, 26, 53, 74,100,106,106, 58, +145,190,141,211,160, 65,227,127, 89,100,189,163, 69,254,110, 22,173, 58,255,175,243,141,154,207,231, 7, 70, 71, 71,127,232,237, +237,205, 2,112, 10, 0,188,152,240, 31,213,189,227,161,179, 63,110,246, 14,221,185,198,123,176,183,251, 33, 47, 38,170, 87,177, +133,119,238,220,217, 44, 58, 58,186, 59,143,199,251, 79, 61,149, 32, 0, 96,102,102, 6,145, 72, 4,177, 88, 12, 51, 51, 51, 24, + 12, 6, 40,203, 42,160,210, 3,138, 10, 13, 74, 75, 75,161,120,251,191, 82, 93, 9,149, 74, 85,179,111, 29,232, 51,107,214,172, +130, 61,123,246, 72,115,115,115, 55, 3,104, 63,109,218,180,145,187,119,239,198,141, 27, 55, 42, 62,242,112,181,216,208,171,227, +215,109,115, 83, 2, 60,216,152, 13, 32, 50, 50, 50, 18,221,187,119, 7, 69, 81,227,235, 34, 52, 54, 54,254,254,196,137, 19,198, + 9, 9, 9,112,117,117, 77, 24, 63,126,252,199,155, 55,111,118, 17, 40,139,239, 2,128,174, 40, 47, 97,225,194,133, 95,109,216, +176,161,160,160,160,160,178,172,172,204,122,196,136, 17,200,204,204,196,155, 55,111,238,215, 35, 50,147, 98, 98, 98, 72,105,105, + 41, 82, 83, 83, 17, 19, 19, 99,252,213, 87, 95,117,209, 51, 24, 35,179, 97, 50,125, 90,143,206, 93, 38,119,235,136, 99, 15, 98, + 57,119, 94,166,137, 59,183,176, 55,123,154,149,219, 82, 75,225,213,251, 92,109,133, 66,177,235,235,175,191, 86, 42,149, 74,100, +103,103,227,217,179,103,120,241,226, 5,210,211,211,177,101,203, 22,101,113,113,241,238,198, 56,236,140, 88,159,111, 93, 58,147, + 98, 61,191, 15,196,222, 6,202, 20, 64,185, 18,234,196,104, 28, 78,204,195,222, 51,191,114, 51, 50, 51,197, 39, 79,158,156,229, +228,228, 20, 13,192,189, 33, 62, 66,170, 46, 33,131,193,120, 87,132,130,193, 96, 40, 0,228, 9, 4,130, 44, 19, 19,147, 44, 6, +131,145, 71, 8, 81,253, 37,111, 18, 58, 84,130,201, 4,184,198, 96,176, 27, 76,237,249,241,248,241,227, 79,100,101,101, 13, 78, + 77, 77,253,112,247,238,221, 95, 27, 25, 25,197,237,222,189,251,235,212,212,212, 15,179,178,178, 6,143, 31, 63,254, 4,128,169, +205, 57,190,155,155,219,194,128,128, 0,108,217,178, 5, 29, 58,116,128,187,187,123, 89, 96, 96,224, 46, 0,107, 0,252,199,205, +205,237,238,194,133, 11,103, 72,165, 82, 73,118,118,118,135,239,190,251,110,238,174, 93,187, 62,200,201,201, 49,106,132,186,231, +160, 65,131,112,233,210, 37, 0,200, 5,144, 90, 84, 84,164,203,201,201,129,167,167, 39,186,116,233, 2,165, 82, 9,165, 82, 9, +153, 76, 6,103,103,103, 24, 12,134, 15,233, 91, 57, 13, 26, 52,104,252,159, 10,174,186,133,150,145,145,145,153,143,143, 15, 90, +181,106,101,134,183,171,181, 44,184,172,149, 75,102, 77,224, 11,163, 47,131,138,185,142,241,189,218,241, 45,184,172,149,111,119, + 97, 57, 59, 59,243,124,124,124, 32, 16, 8,236,235, 57,248,173,188,188, 60,248,248,248, 64, 44, 22, 67, 36, 18,193,199,199, 7, +149,149,149, 40, 85, 40,160,210, 3,101, 90, 3, 74, 75, 75, 81, 92,144,143, 50, 61,160, 51,177, 64,122,122, 58,152, 76,102, 90, + 61,156,182,174,174,174, 5,113,113,113, 5, 0, 34, 1,124, 26, 20, 20,132, 21, 43, 86, 96,237,218,181, 39,248,185,175, 7,157, +184,116,206,226,120,224,124, 43,119, 46, 53, 1, 64,101, 86, 86, 22,196, 98, 49, 4, 2, 65,157,194,192,215,215,183,147, 64, 32, +192,145, 35, 71, 72,118,118,118, 15, 84, 45,225, 79,163,168, 42,177,103,204, 64, 41,128, 93,209,209,209, 93,191,250,234,171,151, + 3, 6, 12, 96,119,235,214, 13,235,215,175, 7,128,240,186, 56,101, 50,217,195,169, 83,167,106,110,222,188,137,196,196, 68,193, +217,179,103,253,215,175, 95,223, 46, 35, 35,131,119,254,226,229,161,193, 89,114,255,205, 87,239, 24,109,184,114,235,161,165,169, +160,109, 75, 75,115,196,100,188,225,232,153,120,220,216, 21,237,202,102,206,234, 99,196,138,233,197, 99,228,246, 49, 98, 69,127, +192,102,206, 84, 40, 20, 39,195,194,194,174, 44, 93,186, 84, 41,149, 74, 97, 98, 98,130,162,162, 34,108,220,184, 81, 25, 19, 19, +115, 70,163,209,156,111,140, 87,111, 32,157, 28, 91, 56, 1,175,226,106,126,171, 52, 16, 60,214,112,224,247,233, 98,120,120,122, + 66,163,209,160,125,251,246, 84, 80, 80,144, 64, 36, 18,125,209,168,232, 97,252,161,187,233, 40,138,202, 35,132,188, 81, 42,149, +217,198,198,198, 25, 28, 14, 39,163,184,184, 56,155, 16,146,255, 87,232, 44,194,192,231,221,219,187, 1, 60, 99,100, 20, 41,115, +158, 40, 81, 92, 87, 65, 19, 19,147,153,123,247,238, 53, 58,120,240,160,118,225,194,133,234,185,115,231,178,203,203,203,173,231, +206,157,203, 94,184,112,161,250,224,193,131,218,189,123,247, 26, 9,133,194, 49,239, 83, 17,173, 86,139,184,184,184,205, 41, 41, + 41, 2, 84,133, 27, 89, 28, 24, 24, 56, 45, 57, 57,217,104,207,158, 61, 8, 9, 9, 65, 72, 72, 8, 70,142, 28,137, 69,139, 22, + 33, 32, 32,160, 33, 58,190,183,183,183,143,133,133, 5,110,223,190,157, 3, 32, 3, 64, 39,161, 80,104, 50,114,228, 72, 12, 30, + 60, 24, 21, 21, 21,168,172,172,172, 17, 90, 76, 38, 19, 98,177,216,130,190, 7,210,160, 65,131,198,127, 93,100,253, 78,108,177, + 0,160,218, 84,231,231,231, 71, 53,244, 96,212,151, 72, 33, 83,149, 33,189,180, 12,153, 37,134,223,109, 51, 24, 12, 13, 30, 61, + 39, 39,231,252,131, 7, 15,102,250,248,248,176,114,114,170,102,196,124,124,124, 80, 86, 86,134,156,216, 71, 80, 25, 0,129,171, + 23, 84, 42, 21, 74, 94, 60,133,208,251, 67, 88, 12,155,140,237,123,246,168,139,138,138,246,213,197,201,229,114,217, 14, 14, 14, + 5,105,105,105, 58, 0,197, 34,145,104,144,147,147, 19,110,221,186, 5, 0,199, 8,176, 21, 49, 55,129,219,161, 32, 85, 38, 21, +161,179,179, 51,164, 82, 41,148, 74,229,173,186, 56, 31, 60,120,144,172,213,106,219,143, 24, 49,130,250,249,231,159, 79,201,229, +242,181, 0,158,169, 13, 96,198,102,229, 67,165,135, 17,128,129,102,102,102,159, 5, 4, 4,244, 95,184,112, 33,194,194,194,112, +245,234,213, 74, 84,249,130, 61,168,131,182, 52, 53, 53,117,255,178,101,203,186, 49, 24,140, 79,175, 93,187,166,115,119,119,151, + 87, 86, 86,234, 91,123,120, 48,214, 6,173,227, 44,248,116,142,184,168, 12,207, 7,183,182,237, 78, 81,192,243, 55,210,140, 20, + 37,138, 26, 58,167,190, 92,102,248,168, 30,222,190, 51,199, 15, 23, 10, 92,219, 66, 21,255, 72,178,255,244,197,237,198, 49,201, +126,183,165,210,145, 97, 97, 97,254,183,110,221, 90,160,209,104, 90,241,120,188, 87, 50,153,108,167, 82,169,108, 84,100, 49,153, +204, 97,106, 91, 7, 51, 89,113, 49,140,222, 90,162,228, 90, 3, 10,213, 58, 36,138,221, 49,209,193,177,102, 26, 52, 47, 47, 15, + 18,137,132,210,235,245,195, 27,226,188,122,245, 42,252,252,252,170,133, 39, 40,138, 2, 69, 81,133, 30, 30, 30,249, 60, 30,175, +136,195,225,200,183,110,221, 90, 81, 81, 81, 1, 22,139,101,164,215,235,153,127,166,183,119,225,195,154, 71,168,239,231,142,232, + 59,160, 67, 91, 79, 18,249, 36,150, 42, 41,171, 56,220,128, 21,240, 59, 55, 55, 55, 86,113,113,241,121, 0,137, 90,173,246,248, +169, 83,167,140,166, 76,153, 82,113,250,244,233, 73, 0, 92,182,109,219,230,175, 84, 42,155,149, 82, 33, 37, 37,229,187, 13, 27, + 54,124,185,122,245,106, 28, 61,122,116, 97, 74, 74,202,138,183,150,174,145, 1, 1, 1,216,186,117, 43,142, 30, 61,106, 72, 76, + 76,188,104, 48, 24, 82,150, 46, 93,234,109, 99, 99, 83,152,155,155,155,210, 0,109,231, 33, 67,134,168,239,222,189,203, 85, 40, + 20,119, 0,124, 54,111,222,188, 89, 93,187,118,149,143, 31, 63, 94, 88, 92, 92, 44,227,243,249,220, 3, 7, 14,152,177, 88, 44, +168, 84, 42, 80, 20, 5,133, 66,161,161,239,131, 52,104,208,248, 95, 69,125, 90,228,111,130,122,159, 13,172,186, 26, 88, 86, 86, +150,159,153,153,233,249,230,205, 27, 29, 0, 29, 0, 20,105,116,223,108, 56, 16,122,112, 76, 55, 55, 65,174, 86,139,179, 79, 18, +202,138, 52,186,106,231,119,221,155, 55,111, 20, 25, 25, 25, 38,229,229,229,202,122,142,117,255,251,239,191, 47,191,121,243,166, + 73,106,106, 42,244,122, 61, 58,117,234,132,164,164, 36,148, 36,198, 65,224,217, 9,130,222,126, 72,136,126,130,152,171, 17,120, +173,212,232, 94,174,217, 80,170, 84,169, 2, 42, 43, 43,207,214, 69,200,102,179,139, 1, 16, 66,136, 30, 0,228,114,249, 51,165, + 82,217,203,198,198, 6,207,159, 63, 23,168,244, 88,228,191,114,251,110, 66,136,158, 83,181,154,107,201,248,241,227, 17, 21, 21, + 5, 0, 81,117,113,202,229,242,133,179,103,207,190,121,228,200, 17, 86,106,106,234,224,131, 7, 15, 14,126,249,242, 37,161,138, + 51,245,119,203,216,112,153,182,232,131, 31,156, 61,174,250,249,249,193,214,214, 22, 7, 14, 28,192,206,157, 59,181,243,231,207, + 79,222,185,115,231, 7, 82,169,244,120, 61,237, 47,149,201,100,151, 45, 44, 44, 22,180,107,215, 78,161, 82,169, 80, 84, 84,132, +156,156, 28,152, 91, 88, 48,116, 96,116,183, 18,139,143,159,207, 83, 8, 88,151, 31,226, 81,118,110,131,214,172,110,108,230,212, + 49,190, 29,125,255,179,122,165, 16,119,207,130,154, 29, 0,114,240,107, 44,254,196,223,164, 66,125,188,183, 42, 54,125, 74,180, + 92, 30, 44,151,203, 67,154,217, 89,134,116,239,222,253,196,134, 13, 27,140, 87,109,217,128,109,158,246,208, 21, 21,161, 64,173, + 71,161, 90, 7,121, 73, 34,158, 63, 79,128,133,133, 37, 94,191,126,141,138,138, 10,188,120,241,130, 48,153,204,243,141, 89,116, +170, 81,107,186, 80,198,227,241,138,216,108,118, 62,139,197, 42, 78, 77, 77, 85, 85, 84, 84,128,193, 96, 8,244,122,189,113, 19, +234,234, 96,105,105,185, 20, 85,193, 68,195, 20,133,133,187,124,216, 16,131,133, 62,206,150, 22, 67,215,204,157, 98,233,100,103, + 45, 75, 77,126,165,221,119,229, 94, 97,133,186,254,197, 26, 0,194,139,139,139,107, 44,146,167, 79,159, 94,124,250,244,233, 89, + 0, 14,161, 42,239, 86,132, 76, 38,251,225, 61, 6,223,154, 51,103,206,124,185,122,245,106, 24, 27, 27,215, 4, 79, 53, 54, 54, + 54, 2,128, 95,126,249, 5,207,159, 63,239,138,183,254, 90, 6,131,225, 68,110,110,110, 99,156, 46, 94, 94, 94,169,161,161,161, + 92, 0,118,243,230,205,251,112,247,238,221,248,228,147, 79, 10, 18, 18, 18,186, 1, 72, 3,224,242,233,167,159, 62, 62,122,244, +168,153,193, 96, 64, 73, 73, 9, 52, 26, 77, 26,125, 43,167, 65,131, 6, 45,182,254, 43,240, 1, 16,131,170,248, 89,195, 0, 92, + 64,149, 91, 71,189,112,124,171,206,174, 0, 24, 81,253,124,172,199, 25, 30,168, 90,145,117, 25,192, 79, 0,108,234, 35,181,176, +176,248, 98,218,180,105,218,236,236,108,146,151,151, 71, 66, 66, 66,200,146,153,211,244, 3, 93,237, 12,174,118, 54, 42, 43, 43, +171, 36, 91, 75,243,195, 29,249, 88, 2,192,161, 9, 13,155,246,242,229,203, 57,211,166, 77,155,249,246,184, 51, 79,156, 56,161, +188,118,237,154,146,201,100,134,163, 42,180, 67,181,160,156, 58,124,248,112,165, 90,173, 86,122,120,120, 20,163,202,113,191, 62, +248,247,233,211,167,228,210,165, 75, 68,175,215,255, 33, 70, 81, 65, 65, 1,185,122,245, 42,233,209,163,135, 12,192,148,254,253, +251,223,186,119,239,222,173,158, 61,123,158,105,172,194,150,150,150, 43, 99, 99, 99,163,210,211,211,163, 47, 92,184, 16,125,252, +248,241,232, 79, 63,253,244,153,183,183,119,121,114,114,178, 65,167,211,145,216,167, 79,137, 71,235,214, 42, 0,206,245,241,244, + 51,102, 61,150, 31,248,154, 84,172,255,132, 84,140,114, 36, 0,136, 98,251, 23, 36,127,225, 0,146,180, 96, 40,233,107,196,124, +240, 62, 61,197,220,220,252, 74, 84, 84, 20, 81, 40, 20, 36, 62, 62,158, 76,245, 27, 76, 30,204, 26, 64, 46, 15,118, 35, 71,123, +183, 36,219, 7,121,147,193,189,123,145,239,191,255,158,132,134,134,146,149, 43, 87, 26, 44, 45, 45, 21,104,192, 71, 75, 34,145, + 92, 59,117,234, 84, 52,128,104, 38,147, 25, 45,151,203,163, 21, 10,197,249,172,172,172,189, 30, 30, 30, 95,182,107,215,110,146, +167,167,103,191,190, 45,157,191,236,111,194, 75, 26, 96,106,244,170,181,144,191, 29,127,140,123, 85, 3, 17,224,236,234,226,162, +184,125,251,182, 65,173, 86,147, 59,119,238, 24,218,180,118,175,216, 54,110,200,153,215, 7, 54,157,169,184,244,243,149,178,115, + 63,222, 59, 61,221, 47,174, 15,159,241,243,135,130,154,112, 28,239,139, 9, 0,206,226,183, 85,135,211, 0,156, 67,195,171, 16, + 25, 0, 14,173, 95,191,190,246, 74, 67, 0, 96,120,123,123, 71, 19, 66,162,189,189,189,163,155, 91, 17, 62,159,191, 52, 44, 44, + 44,208,201,201,105,203,248,241,227, 15,200,100,178, 11,147, 38, 77,138, 67,213, 98, 16, 10, 85,217, 17,134, 59, 56, 56, 20,196, +196,196,144, 91,183,110,145,177, 99,199, 42, 56, 28,206,100,250, 54, 78,131, 6, 13, 26,255, 21,204,169,231,187, 65,108,136,139, +139,171,142,161, 53,175, 33,242, 21, 43, 86, 68, 71, 69, 69, 69,163, 42, 74,124,131, 96,177, 88,191,206,159, 63,159,216,216,216, + 40,173,173,173,127,101, 51,153,179, 28,141,225,131,247, 91,234,222, 43, 56, 56,120,228,119,223,125, 55, 12, 64, 87, 0,108,123, +123,251,156,188,188, 60,229,189,123,247,148, 61,122,244, 80, 90, 90, 90, 74,189,188,188,148,219,182,109, 83,106,181, 90,229,210, +165, 75,149,248, 99,188,175,186, 96, 4, 96, 1,151,203,253,181, 77,155, 54,113,107, 70,244,211,110, 89, 52,139, 76,115,179, 82, + 2,248, 14,192,124, 0, 98, 0,108,127,127,255,235, 47, 94,188,184,226,229,229,181,191, 9,188,118,237,218,181,187,113,226,196, +137,168,208,208,208,232, 47,190,248, 34,202,194,194, 34, 59, 57, 57,217, 80, 81, 81, 65, 74, 74, 74,136, 76, 38, 35, 23, 46, 92, +208,155,155,155,239,169,183,225, 60,102, 46,185,122,172,206, 16, 14, 89,171, 39,147, 30, 92,198,155,247,233, 41, 2,129,160,184, +168,168,136,228,229,229,145,212,212, 84,114,230,204, 25, 50,164,123, 23,114,242,211, 49,228,216,204,145,100,235,144, 46,164,171, +137,145, 74, 98, 34,140, 50, 49, 49,145, 54,101,213,161, 68, 34,185,166, 86,171,107,194, 55, 56, 56, 56, 68,123,120,120,132,122, +121,121,109, 15, 11, 11, 91,188, 99,199,142,145,125, 91, 58,127,185,113,112,247,242,178,136,211, 68,113,234, 59,178,162,147,123, +197, 91, 49, 95, 39,236, 45,204,131,111,223,186,101,168, 22,191, 58,157,142,156,253,245, 87, 50,110,232,192,184,210,203,191,252, +116, 39, 96,225,137,165,157,220,207,246, 48,194,132,134, 4, 91,205,171,136, 16, 22,190,166,140,189, 31, 57,153,231,246, 18, 49, +190,235,102,242,187,244, 82,227,220,221,221, 83, 9, 33,185,158,158,158,169, 0,142,121,122,122,214,254,127,122, 61,180, 53,193, + 73, 3, 3, 3,201,219,241,193, 0,176,118,195,134, 13,209,132,144,104, 55, 55,183,187, 0,208, 65, 0,203,222, 34,198, 79, 35, + 92,108,138,122,139, 24, 63,117, 16,212,157, 50,202,153,131,214,189,172,248,119, 70,186,217, 42,250,216,139, 34,143, 29, 62,184, +229,163,143, 62, 58, 0, 96, 15,128,175, 45, 44, 44,238, 76,152, 48,225,249,209,163, 71,159,111,219,182,173, 50, 57, 57,153,204, +152, 49, 67,197,227,241,190,166,239,131, 52,104,208,160,241, 95, 67,117,100,120,219,230, 8,173,225, 95,126,249,101, 52, 33,164, + 58,150,214,148, 58,202,140, 88,189,122,117, 52, 33,164, 58, 58,252,187, 1,204,234, 10,104, 22,184,119,239, 94,194,227,241,126, +122,207,198,212,230,148,140, 26, 53,170,155, 92, 46,255,192,198,198,230,131,183,150, 43, 71, 75, 75,203,212,227,199,143, 43,203, +203,203,149,132, 16,165, 78,167, 83, 70, 69, 69, 41,251,244,233,163,172,245,214,223, 88, 61,127,135, 85, 18,220,125,178,102, 38, + 89, 37,193,221,119, 54, 77, 62,116,232,208,165,180,180,180,243,166,166,166,203,155,200,233,104,101,101,181,214,220,220,252,138, +165,165,229, 42,115,115,243,220,202,202, 74, 82, 82, 82, 66,146,146,146,200,173, 91,183,200,131, 7, 15,136,185,185,121,118,125, +245,236,111,204,122, 88,178,101, 1, 49, 28,218, 64, 52,187, 87, 18, 0, 68,182, 99, 5, 41,252, 62,136, 60,153, 61,152,244, 49, + 98,222,127,143,243, 9,177, 88,252,227,175,191,254,106, 72, 73, 73, 33,225,225,225,228,194,133, 11,100,209,162, 69,164,181,157, +173,186, 27,151,145,223,139,199,186,242, 62, 1, 75,213,106,117,180, 92, 46,143, 86, 42,149,209,109,218,180,137,238,210,165, 75, +104,183,110,221,182,159, 62,125,122,241,198,141, 27, 71,246, 55,225, 37,149, 69,156, 38,228,139,161,132, 44,232, 73, 94,205,234, + 67,250, 25,179, 98,235,229,180,177,201,174,142,214,174, 82,169, 72,100,100, 36,185,113,227, 6,145, 88, 90,202,125,141,153,115, +122,240,208,187,135, 41,196, 77,173,103, 95, 17,227,240,195,239,191,209,151, 95, 58, 74,126,153, 54, 84,215, 71,204,216, 91,171, +220, 73, 66, 72,238,216,177, 99, 95, 19, 66,114,207,156, 57,147, 69, 8,201, 29, 51,102,204,107, 66, 72, 46,128, 19,117,113,190, + 19,156,244,208, 91,145,181, 32, 48, 48, 48,154, 16, 18, 29, 24, 24, 24, 13, 84, 5, 81,237, 45, 98, 28,121,180,127,171, 65,125, +225, 8, 57, 61, 99,152,190,183,136,113,164,206,122,138, 89,231, 99, 14,237, 32,154, 43,199,200,175,139, 38,233,123, 74, 76,111, +187,187,187,111, 93,188,120,113,232,131, 7, 15,158,233,245,250,231,169,169,169,207,247,236,217,243,252,195, 15, 63,188,107, 97, + 97, 17,199,229,114,231, 55,118,141,254, 34,208,156, 52, 39,205, 73,115,210,120,215,192,212,192,182,243,155, 55,111, 22, 16, 66, +150,250,251,251, 99,211,166, 77,227,218,181,107, 55,193,222,222,222, 10, 0,114,114,114,202,226,227,227,229,254,254,254, 88,187, +118, 45,182,108,217,178, 29, 85,190, 44,255,151,200, 59,123,246,172,195,194,133, 11,165, 27, 55,110, 52,204,152, 49,195, 19, 64, +124, 97, 97, 97,235, 73,147, 38, 45, 96,177, 88,254,206,206,206, 94,185,185,185, 5,229,229,229,199, 0,236, 71, 35,115,166,245, +129,199,128,190,115, 11, 91, 92, 97, 64, 95,235,231,161,107,215,174, 29, 63,102,204,152,202, 29, 59,118,232,228,114,121, 88, 19, +233,178, 10, 10, 10,214, 85,255, 99,110,110, 46,137,141,141,157,111,109,109,205, 72, 77, 77,133, 90,173, 70, 74, 74,138, 1, 85, + 83, 83,117, 66,169, 35,187,126, 56,115,205, 99,233,100, 63,211,178,196,167,224, 48,153,208,178,185,200,123,120, 5,135, 34, 19, +229,170, 74,236,126,159,118,202,100,178,111, 23, 45, 90, 52,105,249,242,229, 70,206,206,206,212,253,251,247,113,234,212, 41,181, + 84, 42, 29, 2,224,246,111,161,159,154, 7,131,193, 0, 46,151, 11, 0, 88,177, 98, 5, 24, 12, 6, 91, 42,149,114, 41,138,226, + 81, 20,197,167, 40,138,169, 77,123, 14,131,188, 4,249, 37, 50,100,229,203, 26,228,211, 27, 12,167, 30, 61,122,180,164, 99,199, +142,140, 39, 79,158,160,160,160, 0, 41, 41, 41, 68, 79,200,137,200,114,125,149, 83,162,186,233,245,227,155, 91,140,234, 96,198, + 99,112, 15,175,133,175,134,193,220,103,192, 88, 84,197,210, 2,128, 67, 20, 69,113, 0, 20,181,105,211,166,239,139, 23, 47,140, +219,180,105, 83,158,152,152,120,137,162, 40,123, 0, 71,234,226, 52, 54, 54, 46, 4, 80,120,230,204, 25, 0,152,141,170,147,215, + 41, 32, 32, 32, 55, 50, 50, 18,129,129,129,249, 0,246, 2,128,208,204, 98,132,151,136, 67,113,127, 14,196,135,106, 48,118, 27, + 72,157, 86, 87,161,181, 77,191,118, 2, 6,216, 7,191,194, 7, 18, 15, 6, 87, 87,217, 62, 40, 40, 40, 82,169, 84,170, 79,158, + 60,169,153, 62,125, 58, 51, 57, 57,249, 49,128, 59, 0,206,224,173,143, 37, 13, 26, 52,104,208,248,175,226, 93, 11, 86,163, 62, + 90,239,170,214, 77, 0,126,120,249,242,101, 77, 82,233,151, 47, 95, 70, 3,216,135,170,104,240,195,155,161,120,215,188,181,104, +237,127,207,198,188,203,105,228,227,227, 99,252,226,197, 11, 14,234, 78,226, 72,189, 7,231, 31, 80, 87,174, 67,119,119,247,157, + 90,173, 54,116,223,190,125,167,153, 76,230,164, 63,161,246,157,221,220,220, 74,142, 31, 63,110, 8, 15, 15, 39,107,214,172,209, +219,218,218,150,224,143, 62, 90,191,227,244,229, 50, 67,150,121,218,203,163,166,244, 36,175, 22,143, 32,119, 38,247, 33,115,236, +133,114, 95, 35,230,169, 63,249, 86,226, 38, 18,137, 14, 25, 27, 27,203, 77, 77, 77,175, 1,232,254,103,174,145,133,133,197, 81, +137, 68,114,173,246,199,198,198, 38,212,202,202,234, 59, 75, 75,203, 53, 98,177,120,174,139, 17,119,199,226,214,118, 21,113,163, +218,144,136, 30, 86,100,178, 37,247,221,169,195,119,235,105,235,226,226, 82, 20, 28, 28,108, 56,127,254, 60, 89,185,114,165,161, + 69,139, 22,114, 52,224,215,214,160, 69, 75,204, 60, 21, 50,166,155, 33,127,152, 61,217,228,105, 98,232,107,198,172,111,133,226, +228,183, 2,120, 90, 99,156,174,174,174,251, 8, 33,135,215,175, 95,127, 24,191,229, 2, 29, 24, 20, 20, 20, 64, 8, 9, 8, 10, + 10, 10, 0, 48, 24, 0,124, 69,140,224, 99, 35, 59,235,115, 62,178, 35,223,120, 10,245,190, 34, 70,112,157,150, 76,115,214,217, +115,179,134, 25,114,103,245, 32,107,221, 4,250,110,230,188,235, 92, 46,119, 49,170, 44,206, 93, 0,112,233,183,102,154,147,230, +164, 57,105,139,214,255,156,240,106, 18, 36,230,230,230,135, 90,181,106,117,218,217,217,249,180, 80, 40,220,142, 42,167,249,230, + 94, 8,151, 13, 27, 54,200, 69, 34, 81,135,191,240,226, 90, 3,176,199, 31, 19,231,254,101, 29,102,157, 45, 22, 38, 47, 31, 23, +187,206, 22, 11,107,253,220,197,211,211,243, 27, 84, 69,243,254,179,157,208,217,220,220,124,143,185,185,121,246, 91,223, 44,231, +166,112,118,102, 50, 39,245, 53, 98,222,239,206,101,228,245, 53, 98,221,251,128,201,156,248, 55, 29,128, 13, 45,182,168,143,211, +193,210,210,114,135,185,185,121,142,165,165,229,158,102,138,172,223,113,118, 48,134,109, 63, 49,243,108,119, 19, 74,213, 79,196, + 60,211,153, 95,255,162,142,102,180,221, 39, 48, 48,240, 19, 66,200, 39,118,118,118,254,181,132,191,215,218,181,107,253, 8, 33, +126,213, 17,224,187,240, 97,221, 71,204, 60,222,195,148,146,245, 17, 51,143,119,225,195,186,190,122,246, 21, 51, 79,245, 48,165, +100,190,166,140,227, 78, 60,180,160,111,230, 52, 39,205, 73,115,210, 66,235,159, 33,180,232, 14, 67,115,210,156, 52, 39,205, 73, +115,210,156, 52, 39, 45,180,234, 22, 86,181, 63, 53, 51,108, 44,250,220,208,160, 65,131, 6, 13, 26, 52,104,252, 41,212, 27,176, +148,106, 64,149, 54,199,177,253,125,148,109, 4,205, 73,115,210,156, 52, 39,205, 73,115,210,156,255, 58,206,198,184,255,175, 23, +214,253,173, 65,155, 85,105, 78,154,147,230,164, 57,105, 78,154,147,230,252,215,130, 65,159, 2, 26, 52,104,208,160, 65,131, 6, +141, 63, 5,159,183,223,239, 6, 46,173,219, 71,139,213,101,125,190, 78,167,179, 6, 0, 22,139, 37,213, 62, 94, 99,219, 16, 59, + 27,232,175,171, 74,191, 3, 22, 48, 91, 7, 92,171,131,243,154, 78,167, 51,123,203, 89,162,125,188,102,112,131,156, 93,214, 95, +169, 93, 94,247,120,205,192,119,203, 16,128,201,238,178, 62,231,157,186,218, 53,245,172, 80,248, 93, 76,172,255, 90, 61,255, 46, +156,255,102,176,187,174,207,215,106,171,250, 17,155,205,146, 86, 62,106,184, 31,113,186,174,207,169, 93, 94,251,104,141, 77, 67, +156,124, 99, 94,145,171,189,213,246,134, 56, 83,115, 10,151,170,202, 42, 44, 26,226,108,238,216,116,180,181,237,175,127, 59, 54, +153,192,236,236,220,220,107,255, 99,125,169, 51,128, 53, 0, 76,107,253, 22, 7,224, 51,186, 87,210,160, 65,227,111, 38,180, 98, + 80,149,231,240,199,183, 98,235,199,122,133,150, 78,167,179,142,254, 53, 0, 42, 53,208,127,234,122,107,151, 81,251,255,144, 40, + 89, 87, 81,194,149, 37,156,244, 98,106,229,102, 86,172, 74,211,156,156, 28, 10, 0, 40,138,250, 9,128, 83, 29,156,102,209,191, + 6,160, 76, 3,248, 78, 8, 50,115, 2, 76, 11, 56,156,207,141, 5,130,190,229,229,229,237, 0,192,216,216, 56,161, 92,165,186, +105, 85, 89,185,237,221,242,245,181,172,118, 93,251, 77, 89,111,237, 57,106,255, 34,189,193,192,125,243,100,159,111, 69, 97, 50, +139,173, 83,239, 93, 5, 92, 10,168, 67, 84,213,195,247,219,113, 63, 94,105,193, 6,250,113,141,140, 58,136,205,204,122, 25, 8, +105, 99, 48, 24, 40,189, 78,247, 92, 94, 90,122,199,160,211,197,234, 52, 42,139,232,176,111, 12, 13,213,243,221,182,124, 12,176, +126, 5,252, 5, 66, 97, 95, 38,155,221, 29, 0,244, 90,237,125,149, 82,121,115, 52, 16,210,148,182, 55,245,252,188,111,249,127, + 27,180, 90,157,117,218,149, 0,168,181,128,207,216,111,172,189, 39,253,124, 28, 0, 52,210, 88, 27,101,114, 88, 87, 0, 16,184, +250, 61,226, 73,124,242, 1,128,149,145,107,157, 20,190, 26,106, 45,208,198, 47,200,186, 49,206,233,107, 79, 89, 44,159, 51,134, + 7, 0, 87,207,124,215,250, 70,232, 15, 67, 1,160,223,152,121,151, 6,141, 93,152, 4, 0, 91,126, 12,181, 56,241,205,184, 6, + 57,155, 54, 54, 75, 57,165,201,225,110, 26,121,174,216, 81,192,146, 36, 39, 39, 51, 0,192,206,206,174, 73, 99,211, 1, 16,229, + 2, 11, 24, 76,102, 47, 87, 55, 55, 31, 0, 36,245,213,171, 24,189, 78,119,215, 22,216,251, 23,247,165, 69,132,252, 62, 56, 43, + 69, 81,116,135,164, 65,131,198,223, 13, 23,222,138,171, 11,127,120,153,173,111, 15,149, 26,184,157, 2,244,238,230,141, 57,147, + 62, 18,214,222, 22,178, 63,200, 41,249,201, 57,207,131, 63,111, 99,120,123,123, 35, 45, 45,173, 73,181, 40,211, 0,183,146, 1, +200, 94,152,148, 8, 4,175,118,108,221,106, 58,112,224, 64,150,157,157, 29, 40,138, 66, 94, 94, 94,183,136,136,136,206, 75,150, + 44,249, 20,178, 23, 37,101, 26, 40,110, 37, 55,206, 91, 93,215,118,173, 91, 96,205,194,113, 34, 0, 88, 53,117,111,231, 39, 47, +243,205, 95,189,122,213,255,203, 47,191, 44, 98,222,188,249,131, 37,112, 56, 31,200,106, 74, 61,143,158,127,100, 36,202,253,197, +101,242,194,133,103,220,220,220,132,206,206,206,148,137,137, 9,152, 76, 38, 74, 74, 74,156,226,227,227,135, 62,126,252, 88, 21, +113,251, 39,110,212,227, 17,169, 82,163,174, 21, 77,106,123,121,142,209, 85, 19,147,132, 41,163, 71, 59,140, 27, 55,206,200,213, +213, 21, 0,240,234,213, 43,247,144,144,144, 9,103,206,156, 89,139,242, 28, 93,153, 6, 21,141,181,189,134, 19,128, 17,208, 93, +108,109, 61,153,201,102,183,211,233,116,246,111,173, 13,111,244, 90,109,130, 76, 42, 61,246,110,121, 26,127,132, 90, 11,188,200, + 5, 6,244,242,193,148, 49, 3, 4, 0,240,229,248, 13,221, 50, 94,167,112, 52, 26, 13, 90,123,180,233,241,245, 55,219,175,128, +193, 64,112,104, 68, 77,249,166,112,198,189, 72, 67,192,215, 59,144,243, 44,164,155,190, 52,165,175, 66, 94,202, 4, 0, 83,145, +104, 76,200,201, 95,110,218,121,249, 63, 76, 41,172,108, 18,103, 67, 99,243,242,201, 61,182,217,241, 55,219,126,127,245, 16,219, +201,201, 9,207,158, 61,107,222,216, 44,125,105, 98,176,181,125,190,237,139, 47, 36,190,190,190, 16, 10,133, 96,177, 88,208,233, +116, 3,238,222,189, 59, 32, 32, 32, 96, 30, 74, 95,170,154, 58, 54,155,128,109, 20, 69,245,157, 62,103,145,237, 71, 35,253, 49, +102, 72, 15,186, 35,210,160, 65,227,239,134,106,235, 85,237,149,135, 63, 54, 40,180, 88, 44,150,116,224,180,141,214,189,186,182, +199,147,216,164,210,244,204, 92,101,245,182,226,132,144,214, 35,123,216,183,141,140,188, 13,181, 90,141,251,247,239, 35, 54, 54, + 22,175, 95,191,198,220,185,115,213,111,167, 14,235,226, 44,241,157, 16,100,134,210,100,161, 59,247,101,203,136,196, 68,102, 69, + 69, 5, 34, 35, 35, 81, 82, 82, 2, 46,151, 11, 7, 7, 7, 12, 26, 52,136,149,152,152,104,222,127,224, 16,145,239,144,137,105, + 16,185, 43, 89, 44, 86, 73,125,121, 68, 88, 44,150,180,255,212,245,214,109,221, 91,224, 85,122, 78,233,154,111, 14, 42, 13, 6, +194, 74,125,157, 81,121,251,246,109,248,248,248,224,218,181,107, 22,197,197,197, 95,237,221,187,119, 13,123,243,247,187,180,154, +162,101,168,159,175,196,119, 66,144,153,133,244,180,243,141,203,103, 57, 9, 9, 9,156,125,251,246,161,168,168, 8, 92, 46, 23, + 98,177, 24, 18,137, 4,173, 91,183,166, 86,173, 90, 37,244,243, 75,192,127,102,251, 59, 87,186,204,122, 89, 95, 61,107,218,174, +204,224, 91,202,175,186,134, 94,184,192,232,217,179,231,239, 94,219, 91,181,106,133,193,131, 7, 27, 77,158, 60,217,117,220,132, + 73, 6,223, 97,211, 95, 65,232, 92,214, 40,167, 42,203,216,162,236,129,221,128, 9, 19,194,130,130,130,196, 18,137, 4, 2,129, + 0, 0, 80, 90, 90,234,144,158,158,222,109,237,218,181, 99, 31,197,157,100,249,250,101,229, 64,224, 88,222,208,249,252,183,130, +205,102, 73,171,173, 72, 38, 2,227,146,172,236,124, 21, 0,104, 52, 26,104, 52, 26,168,213,106,204,159, 55,151, 57,123,108, 23, + 55,231, 94,139,158,190,126,147, 95,220, 38,226,161,121,245,190,218, 70, 56, 89,101,175,101,178,204,235,179, 3,190,248, 66, 98, + 99,243,219,140, 96,240,209,163,204,226,226,226, 1, 1, 1, 1,109, 9,191,143,172,141, 95,144,184, 33,206,134,198,166, 44,233, + 66,203,175, 23, 14,238,176,255,155,112,232,245,122, 60,120,240, 0,145,145,145,216,190,125, 59,185,116,233, 82,169,169, 64, 48, + 27, 13,142,205,151, 38, 61,109,243, 92, 54,111, 62, 67,241,120, 60,156, 59,119, 14,137,137,137, 96, 48, 24,240,246,246,198,148, + 41, 83, 48, 96,192, 0,201,156, 57,115,137,239,144,241,169, 16,121, 40,254,100, 95, 98, 0, 88,180, 50, 96,179,237,212, 89, 11, +176,229,235, 85,180,208,162, 65,131,198,223,217,154, 85,111,136, 7,132,135,135,147,183,159,222, 0, 64, 0, 70,171, 81,251, 79, +156,142, 50, 92,104, 53,106,255, 9, 2, 48, 8,192, 48, 5, 90,116,236,216, 81, 43,147,201,200,227,199,143,201,252,249,243, 85, +187,118,237,186,121,225,194,133, 16, 93,101,229, 1, 59, 91,219,111, 73, 61, 14,246, 4, 96, 56, 3, 34, 62,159, 95,144,153,153, + 73, 46, 94,188, 72, 2, 3, 3,201,177, 99,199,200,165, 75,151, 72, 68, 68, 4,185,116,233, 18, 57,113,226, 4,137,139,139, 35, + 73, 73, 73, 68, 32, 16, 20, 56, 3,162, 6, 56,153, 4, 96,182, 30,181,111,217,153, 39,218, 32,143, 81,251,151, 16,128,105, 6, +120,118,236,216, 81, 31, 18, 18, 66,130,131,131,201,207, 63,255, 76,226,226,226, 72, 97, 97, 33, 97,241, 4, 5,213,251,213, 87, + 79, 2, 48,236,237,237, 11,100, 50, 25,113,116,116, 36, 92, 46,151,216,216,216,144,214,173, 91,147,110,221,186,145,161, 67,135, +146, 73,147, 38,145,175,190,250,138,200,100, 50, 98,100,100,148, 95,189, 95,125,156, 62,128,177, 64, 32,200,140,142,142, 38,245, +161,188,188,156, 20, 22, 22,146, 43, 87,174, 16,129, 64,144,233, 3, 24, 55,196,105, 12,116,242,242,242, 42, 40, 44, 44, 36,149, +149,149, 36, 51, 51,147,196,199,199,147,196,196, 68,146,153,153, 73,202,203,203,107,184,147,146,146,136,139,139, 75,129, 49,208, +137,208,139, 32,234,237, 75,239,126,156,108,108,134, 74, 36,146,242, 51,103,206,144, 55,111,222,144, 35, 71,142, 16, 6,176,225, +221,114, 13,113,114,129, 65, 61,123,246,212, 63,120,240,128, 60,125,250,148,172, 88,177,130, 12, 30, 60,152, 12, 25, 50,132, 4, + 4, 4,144,236,236,108,146,157,157, 77,134, 14, 29,170,231, 2,131, 26,235,159,117,141, 77, 17,224,228,231,231, 87, 94, 89, 89, + 73, 82, 83, 83, 73,187,118,237,178,153,192,100, 1,208,182, 55,192,107,172,127,218, 3,102,182,182,182,185, 15, 30, 60, 32,161, +161,161,196,217,217,185,128, 9, 76, 55, 5, 90,153, 2,173,152,192,244, 86,173, 90, 21, 60,120,240,128, 20, 21, 21, 17, 39, 39, +167, 92,123,192,236, 79,244, 37, 6,128, 67, 43, 3, 54,147,151,217, 42,178, 50, 96, 51, 1,144, 73, 8, 33,168,195,199,147, 6, + 13, 26,255,124,188,171, 69,254, 41,168,185, 73,250,249,249, 81, 0,110, 53, 84,184,156,201,220,184,101,203, 22, 86, 69, 69, 5, + 14, 30, 60,168,248,120,236,216,211,189,123,245, 74,109,233,236, 44,163, 24,140, 70,179, 13, 23,240,120,139,183,108,217, 34,214, +104, 52,136,138,138, 66,231,206,157, 33,145, 72, 32, 20, 10, 33, 20, 10, 97,109,109, 13, 15, 15, 15, 72,165, 82,152,152,152, 96, +249,242,229,162, 2, 30,111,113, 99,188, 6, 3, 97, 1,128,222, 96,224,114,128, 57, 46, 31,124, 16,181,118,237, 90,134,133,133, + 5,204,205,205, 33, 20, 10,145,152,152, 8,141, 70, 3,190, 49,191, 73, 65, 90, 25, 12, 6, 67, 40, 20,226,198,141, 27, 88,180, +104, 17,186,119,239, 14,177, 88, 12, 19, 19, 19,180,107,215, 14,131, 6, 13,194,236,217,179,145,154,154, 10,170, 9, 78, 37,207, + 89,172, 5,179,103,207,182,246,241,241,169,115,123, 69, 69, 5,100, 50, 25, 10, 10, 10,224,224,224, 0,127,127,127,235,231, 44, +214,130,250,248, 44, 0,137,131,187,123,216,227,199,143, 45, 5, 2, 1,130,131,131,113,246,236, 89, 92,190,124, 25, 23, 47, 94, + 68,120,120, 56,206,157, 59,135,130,130, 2, 0,128,187,187, 59, 78,157, 58,101, 41,180,182, 14,183, 0, 36,244,144,110, 26, 50, +242,243,175,182,203,203,179,156, 60,105,210, 29,165, 82,137,201,147, 39, 99,227,166, 77,171,216,192,146,166,236,239, 1,136,204, +109,109, 15,111,222,188,153,145,151,151,135,209,163, 71, 23,110,219,180,105,102,204,149, 43,174,209,151, 47,187,110, 12, 10,154, +217,187,119,239,194,236,236,108, 28, 61,122,148, 97,227,228,116,216, 3, 16, 53,183,158, 10, 96,209,206,157, 59,141, 42, 42, 42, + 48,112,224,192, 84, 67, 66,130,135, 14,248, 69, 9, 36,222, 2, 42, 27,219, 63, 23, 88,176,124,249,114, 9,143,199,195,231,159, +127, 94, 88,150,145,209, 94, 7,252, 92, 10,164,151, 2,233, 58,224,103, 69, 90, 90,251,169, 83,167, 22,242,120, 60,236,216,177, + 67,146,251, 91,210,237,166,162, 51,128, 48, 0,183, 1,228, 76,159,179,104,186, 79,151, 15,113,244,192, 94,124, 19,244,229, 97, + 0, 31, 83, 20,117, 12,192, 50,186,231,209,160,241,239, 68, 83,180,200,255, 40,234, 77,185,195,224,199, 26, 86, 0, 0, 32, 0, + 73, 68, 65, 84,170,173, 36, 1,244,105,136,197,204,194,162,115,251,246,237, 17, 25, 25, 9, 47, 47,175,199, 98,177, 88,199,225, +241,192,102,179, 65, 12,141,234, 44, 24, 11, 4,253, 7, 12, 24,192,122,248,240, 33, 92, 92, 92, 96,108,108, 12, 54,155,253,187, + 15,135,195,129,173,173, 45,228,114, 57,250,247,239,207,222,189,123,119,127,168,213, 95, 55,250, 64, 76,142, 23, 22, 60,220, 60, +233,167, 35,135, 91,249,250,250,162,180, 84, 14,131,193, 0, 62,159, 15,141, 70, 3, 22,139, 85, 53, 5,164, 37,242,166,156, 49, +189, 94,175,103, 50,153,112,113,113,193,198,141, 27, 81, 81, 81, 1, 14,135, 3, 0,144,203,229,144,201,100,136,143,143, 71,122, +122, 58,222,190,133, 55, 8, 19,145,232,163,113,227,198,213,153,240, 87,173, 86,163,180,180, 20,165,165,165,144,201,100,168,168, +168,192,135, 31,126,200,189, 16, 30,254, 17,138,138,182,213,185,143,145,209,216,163, 71,143, 90,115,185, 92,148,151,151, 67,161, + 80, 32, 43, 43, 11, 25, 25, 25, 21, 82,169, 84,103, 98, 98,194,112,118,118,102,240,120, 60,222,168, 81,163, 40,185, 92, 14,138, +162,224,231,231,103,113, 60, 56,120, 28, 52,154,237,244,144,110, 26,174, 2,234, 78, 26,205,240,174, 93,186,220,120,252,228,137, +207,226,197,139, 17, 23, 23,183,153,127,242,228,237, 50, 32,182,161,125, 83,129, 5,223,214, 18, 48, 36, 35,195,171, 18, 40,168, + 85, 36,221, 57, 45,237,242,212,169, 83,159,197,197,197, 89,238,216,177, 67,242,241,232,209, 11, 0,108,104, 78, 29, 77, 68,162, + 15,108,109,109,113,233,210, 37,100,190,126,253,165, 14, 40,111,214, 27, 23,147,217,211,215,215, 23,231,206,157, 67,118, 70,198, +151,186,223,215,177,234, 69, 9, 40, 96,165,166,126,121,248,240,225, 67, 51,102,204, 0,147,197,234, 9, 93,179, 38, 14,255,224, +248, 62, 99,238, 98, 28,254,113,247, 97, 0,179, 0, 24, 0, 60,166,123, 28, 13, 26,255,110,171, 86, 99, 90,228,111, 36,182,126, +108,182, 69,203,218,218,218, 94, 40, 20, 34, 39, 39, 7,109, 60, 61,165, 60, 30, 15, 92, 54, 27, 70, 92,110,147,106, 80, 86, 86, +230,101,103,103,135,210,210, 82, 88, 90, 90,130,195,225,212,124,184, 92,110,205,223, 38, 38, 38, 96, 48, 24,112,114,114, 66, 89, + 89,153, 87,163,188,249,241,214, 39,119,207,155,255,224,246,165, 86,163, 71,143,129,153,153, 57, 28, 29, 29, 96,109,109, 13, 99, + 99, 99, 56, 58, 58,194,213,213,149,108,219,182, 13,124,107,239, 38,221,200,107,139, 39, 22,139, 5,189, 94,143,252,252,124,188, +124,249, 18,113,113,113,120,240,224, 1,158, 62,125, 10,133, 66,129, 38,232, 44,148,149,151,119, 96,177, 88,117,138, 44,153, 76, + 6,153, 76, 86, 35,180, 10, 10, 10,144,158,158, 14,165, 74,213,177, 1,209, 59,166,125,251,246, 76, 0, 48, 54, 54, 70,199,142, + 29,177,127,255,126,221,249,179,103,199,183,125,240,192,220,241,202, 21,241, 79,251,246,141,247,247,247,215, 63,124,248, 16,114, +185, 28, 47, 94,188,128,149,149, 21,139,107,100, 52,142, 30,206,205, 67, 52,160,178, 84, 40,134,116,239,222, 61,173,180,180, 20, + 91,183,110,101,176, 77, 76,126, 12,170,103,138,175, 6, 76,102, 15, 95, 95, 95,132,133,133, 33, 39, 35, 99, 69, 70, 29, 2, 38, + 3, 40,200, 76, 77, 93,113,248,240, 97, 12, 26, 52, 8, 20,139,213,108, 71,165,110,221,186,181, 55, 24, 12,120,246,236, 25,196, +192,163,230,238,239,234,230,230, 83,109,249, 21, 0,119,234, 43, 39, 0,238,196,196,196,192,216,216, 24,109,218,182,237,212,204, +195,108,163, 40, 42,119,198,220,197, 8,189,124, 15, 0,112,248,199,221,249,181, 68, 22, 13, 26, 52,104,139,214,223,213,162, 85, + 45,172,106,127,240, 59,161,213, 68,241, 1, 0, 96,179,217,224,242,120,224,114,185, 85, 2,137,199,107, 50, 7, 69, 81, 48, 50, + 50,170, 17, 86,181, 5, 86,237,191,249,124,126,147, 4, 12, 0,148,164, 92,238, 53,107,230, 12, 46,143,199,131, 70,163, 6, 33, + 4, 60,158, 17,196, 98, 49, 92, 92, 92, 32,151,203,209,189, 71,111,117,150,140, 19,110,209,102, 84,220,251,156, 61,157, 78, 7, +149, 74,133,146,146, 18, 20, 23, 23, 67, 46,151,163,188,188,188,201, 75,209, 13, 6, 3, 51, 43, 43, 11,191,252,242, 11,138,138, +138, 0, 84, 57, 90, 87,139,171,234,239,180,180, 52, 4, 7, 7,227,245,235,215,205,186, 62,189,122,245, 66,120,120, 56,179, 79, +255,254, 7,174, 57, 59,231, 92,115,118,206,233,211,191,255,129,176,176, 48,166,189,189, 61,210,211,211, 17, 21, 21,133,146,146, + 18, 16, 66,232,245,243,239,129, 87, 64, 73, 89,113,241,140, 85,171, 86, 17,161, 80,136,173,223,126,219, 97, 3, 48,177,169, 2, + 70,212,128,128, 17,253, 57, 1, 3, 66, 8, 12, 6, 3,244,122,253,123,181,141,162, 40,138,205,102, 55, 55,180, 66,115, 10,215, + 56,190, 47,255,106, 35, 46,158, 11,169,254, 61,153, 22, 89, 52,104,208,248, 7,160, 94, 71,120, 86, 45, 5, 89,243, 93, 31,242, +243,243,223,168, 84,170, 86,206,206,206,200,206,206,182,118,114,114,202,224,178,217,224,112,185,160, 24,141,107, 2, 62,159,255, + 44, 39, 39,167,135,189,189, 61,116, 58, 93,141,168,122,119,234,176,218, 74,243,244,233, 83,240,249,252,103,168,104, 48,114, 2, +244,154,146, 22,157, 58,117,170,177, 12,137,197, 98,136,197, 34,240,120, 70, 88,189,122,181, 97,199,182,109,123,157,250, 5,149, +126,178,100, 21, 89,181,225,192, 95,122,102,155,250, 96,226,243,249,207, 28, 29, 29, 63, 20,137, 68, 8, 13, 13, 69,122,122, 58, + 74, 74, 74, 80, 86, 86, 6,181, 90,141,178,178, 50,104, 52, 26, 24, 25, 25,161,109,219,182, 48, 53, 53, 69, 68, 68,196, 51,168, +213,117,139,203,162,162,208,103,207,158,125,216,165, 75,151, 26,139, 74,223,190,125,169,190,125,251, 90,214, 88,209,202,202, 80, + 88, 88,136,199,143, 31, 35, 34, 34, 2, 20, 69, 33, 57, 57, 89,175, 46, 47, 63, 65,143,137,247, 67, 5,112,159,121,248,240,161, + 79, 63,253,116,102,143, 30, 61,160, 7,134, 2, 8,254,255, 40, 96, 0, 0, 15, 30, 60,136,215,235,245, 61, 90,183,110, 13, 25, +208, 21,192,185,102,137,200,148,148, 24,157, 78,215,191, 67,135, 14, 8, 61,125,186, 23,128,244,186,202,169,128, 94, 62, 62, 62, + 40, 47, 47,199,139,231,207,163,155, 33,178, 14,172, 12,216, 60,125,234,172, 5, 56,122, 96, 47, 14,255,184, 59,235,208,254, 93, +142,104,130,255, 24, 13, 26, 52,254, 85,214,172, 70,181,200,255, 40,230,212, 39,190, 88,205, 97, 41, 45, 41,137,142,137,137,105, +213,169, 83, 39, 28, 56,112,160, 75,247, 15, 63,124,195,225,114,117, 92, 14, 7,140, 38, 60, 72,202, 85,170,235,215,175, 95,239, + 58,106,212, 40,214,195,135, 15, 33,145, 72,106,132, 86,245, 55,139,197, 2, 33, 4,124, 62, 31,191,254,250,107,101,185, 74,117, +189, 81,107,145,222,160,103,188, 21,122,132, 16,200,100, 50,112, 56, 28,108,223,190, 3,123,182,109,155,164, 7, 66,220, 5, 86, + 95, 0, 48,250,255,246,128, 46, 43,187,113,241,226,197,206,107,215,174,101, 59, 56, 56, 64, 38,147,161,164,164, 4, 69, 69, 69, +144,203,229,144,203,229, 40, 41, 41,129, 76, 38,131,145,145, 17,226,226,226,180, 21,101,101, 55,234,227,227, 85, 84,156,153, 54, +109,218,242,152,152, 24, 91, 22,139, 5,173, 86, 11,131,193, 0,131,193,128,202,202, 74,164,164,164, 32, 33, 33, 1,137,137,137, + 40, 46, 46, 6,155,205, 6,147,201,196,211,167, 79, 75, 4, 90,237,105, 13, 61,166,223, 27,108, 32,244,238,221,187, 51,167, 76, +153, 2, 59, 7,135,222,200,206,110,146,128, 57,219,128,128, 41,125, 63, 1,243,155, 0, 82, 40,158,164,165,165,245,232,211,167, + 15,108, 29, 28, 54,183,205,206,190,246,188, 25,126, 90,122,157,238,206,221,187,119,251, 79,157, 58, 21, 7, 14, 28,216,108,149, +150,118,185,224,157,105, 78, 43,192,170,165,171,235,230,233,211,167,227,234,213,171,208,235,116,119, 26,160,172, 29,241,189,197, +244, 57,139, 28,223,113,124,223, 79, 81,212, 66, 0, 91,233, 30, 69,131, 6,141,127,178, 69,171, 89, 83,135,198,122,253,202,101, +203,150,105, 25, 12, 6,198,140, 25, 99,114, 46, 44,204,255,105,108,172,139, 84, 42, 21,235,245,250, 70,185,172,212,234, 93,203, +150, 45,147,105, 52, 26,120,120,120,160,184,184, 24,122,189, 30, 44, 22, 11, 44, 22, 11, 20, 69,129,193, 96, 64, 40, 20, 34, 38, + 38, 6,135, 14, 29,146, 91,169,213,187, 26,125, 72,232,245,207,130,131,131,193,100, 50,137,145,145, 17, 40,138, 2,139,197,194, +142, 29, 59,164,123,128, 80, 0, 96, 50, 24, 26, 0, 96, 48,168,166,122,239, 54, 58,111,201,229,114, 97,168, 90, 4,208,104, 89, + 51,181,122,231,150, 45, 91, 20, 47, 94,188,128, 74,165,170,177,190, 41,149,202, 26,231,122,153, 76, 6,138,162,160, 82,169, 16, + 22, 22,166, 48, 83,171,119,214,199, 87, 4,228,101, 39, 39,143,232,210,165, 75, 81, 90, 90, 26, 74, 75, 75,241,236,217, 51, 68, + 68, 68,224,212,169, 83,184,122,245, 42, 82, 82, 82,160,211,233, 96,111,111, 15, 66, 8,206,158, 61, 91,170, 83, 40,134, 22, 1, +121,244,152,168, 31, 45, 36,146,254, 54,214,214,153, 86,150,150,217, 45, 36,146,254,239,110, 23, 1, 73, 73, 73, 73,208,233,116, +112,113,113, 49,111,200, 79,139,232,116,119,239,222,189,139,169, 83,167,194,177, 85,171, 77,206,128,213,187,101,156, 1, 43,103, + 87,215, 77,213, 2,134,232,116,119,155, 91,103, 19, 96,247, 23, 95,124, 81,206,225,112,112,242,228, 73, 23,173,155, 91, 34, 11, +152, 40, 4, 60,251, 0,156,198,246,183, 5,246,126,245,213, 87,121, 20, 69,225,216,177, 99,150, 34, 87,215,120, 22, 48, 77, 4, +180, 16, 1, 45, 88,192, 52,145,171,107,252,201,147, 39, 45,117, 58, 29,150, 44, 89,146,103, 11,236,109,128,114, 17, 33,100, 56, + 33,196,151, 16,226,120,104,255, 46, 92, 60, 23, 82, 45,178,102,161,202,233,125, 10,128,120,186,199,209,160, 65,227,159,140, 58, +205, 80,172, 46,235,243, 1, 98,221,187,155, 55,158,196,190, 44,181, 52, 51,189, 82,189,173, 56, 33,164,117, 63, 47, 83,239,239, +191,255, 30,108, 54, 27, 89, 89, 89,120,254,252, 57, 76, 77, 77, 49,105,210, 36,117,185, 66, 49,162, 86,174,195, 1, 0, 34,222, +114, 86,229, 83, 43, 77, 22,186,178,226, 90, 93,190, 24,206, 20,137, 68, 80, 42,149, 96, 48, 24, 48, 50, 50, 2,159,207,135,177, +177, 49,162,162,162, 48,108,248, 72,125, 1,223,247,183,128,165,191,229, 83,171,225,172,142, 53,212, 21,224,199, 0,159, 91,219, +217, 45, 91,179,102,141,241,224,193,131,193,225,112,224,208,194, 61,207,101,200,214,221, 12, 6,165,203, 46,146,175,118,109, 97, + 39,122,158,156, 14,128,146,106, 31,175,177,171,149,235,240, 15,245,116,210,220,118,249,245,231,109,166, 29, 59, 86,249,163,203, +100, 50,228,231,231, 67, 42,149, 66, 38,147, 65,165, 82, 1, 0,194,195,195,113, 49, 50, 81, 94,238,224,159, 90, 95, 61,127,107, +251, 75, 19,187,202, 71, 45,143, 7,255,204,180,178,178, 66,126,126, 62, 10, 10, 10, 32,147,201, 80, 94, 94, 14,189, 94,143,226, +226, 98, 28, 60,252,179,190, 72,232,251,186, 38, 32,100, 67,156,170, 44, 99,115,229, 61,123,159,182,206,100,230,204,153, 38,166, +166,166, 48, 24, 12, 40, 41, 41, 65,102,102, 38,210,210,210, 16, 25, 25,169,146,202, 52, 80, 89, 14,204,174, 9, 88, 90, 7,231, + 95,136,191, 29,103,237,184, 85,118,182,182, 57, 25, 25, 25,214,122,189, 30,246,246,246, 58, 89,113,241, 38, 46,112,213, 4,200, + 5, 64, 10,129, 53, 59,119,239,158, 49,114,228, 72,124,240,193, 7, 89,121,249,249, 45,235,234, 75, 4, 96,122, 0,162, 50, 7, +135,132,199,143, 31, 75, 50, 51, 51, 49,117,234,212,194,140, 87,175, 86, 84,251,107,149, 2,189,156, 93, 93, 55,157, 60,121,210, +178, 85,171, 86,240,242,242,202, 51,202,204,108,247, 18, 40,173,167,127,214, 59, 54,101, 73, 23, 90,206, 27,221,254,131,249,243, +231, 67,167,211, 33, 50, 50, 18,143, 30, 61, 66, 70, 70, 6,238,221,187, 39, 51, 21, 8,198,215,202,117, 88,103,255, 28,234,174, +114, 57,118, 44,152,226,112, 56, 56,124,248, 48, 98, 98, 98, 0, 0, 62, 62, 62,152, 62,125, 58,116, 58, 29, 38, 79,158, 66, 46, +188, 52, 78,109,168,127, 2,104, 15,224, 91, 84,137,188, 15, 8, 33, 70, 20, 69,229, 0,112, 68,243,124,178,232,254, 73,115,210, +156,255, 30,206,127, 36, 26,205,117,184,254, 7,136,126,159,230, 99,118, 78,200,254, 32, 86,207, 94,190,158, 65,129, 1,140, 46, + 93,186,192,209,209, 17, 62, 62, 62,200,204,204,228,137,197,226,198,242,169, 41,125,135, 76, 76,243,246,246, 22,175, 88,177, 66, + 52,104,208, 32,182,163,163, 35, 8, 33,136,137,137, 65,104,104,104,229,129, 3, 7,228,101, 54,195,101,209, 55,127, 81, 54, 37, +159,218, 35,160, 12,192, 58,135,156,156, 31, 23,204,155, 23,208,177, 83,167,153,129,129,129, 12, 33,223,152,189,113,245, 44, 35, + 0, 88,255,221, 41,209, 72,255, 73,216,233, 6,244,158, 88,119, 30,185,218,245,204,204,158,157,241,209,232,254,110,159, 47,156, +161, 31, 55,110,156,192,212,212, 20,142,142,142, 48, 51, 51, 67,106,106, 42,178,179,179,201,249,243,231,149, 15,158, 38,177,207, + 94,125,146, 97, 36,178,109, 74, 94, 66,133,239,224,143, 95,127,244,209, 71,102,211,166, 77, 51,233,220,185, 51,155,199,227,129, +199,227, 33, 63, 63, 31, 41, 41, 41,149,231,207,159, 87,150, 89, 15, 45,137,190,121, 82,209,196, 92,135,229,190, 19,130, 82,238, + 92, 11, 92,146,240,236,217, 20, 3,208,161,178,178,210, 94,175,215, 83, 12, 6, 35,215, 96, 48, 60,171, 84, 40, 14,169,125, 2, +119,208,185, 14,155, 6,189, 94,207,209,235,245,144,201,100,184,118,237, 26,235,213,171, 87,107, 98, 99, 99,215,228,228,228, 64, +171,213, 98,236,216,177,240,241,241,193,205,155, 55, 81,144,159,127,190, 33,174,151, 64, 41, 47, 59,123,250,236,217,179, 47, 5, + 7, 7, 51, 98, 99, 99, 45, 15, 31, 62,124,176, 46, 1, 51,101,202, 20, 67,126,102,230,116, 53, 80,218, 64,255,108,104,108, 22, + 94, 62,185, 39,118,212, 24,255,182,129,107,215,176,187,119,239, 14, 75, 75, 75,244,234,213, 11,149,149,149,226, 54,109,218, 52, + 54, 54, 21,190, 67,198,167,118,232,208, 65,176, 99,199, 14,201,140, 25, 51,176,112,225, 66, 0, 64,121,121, 57,174, 94,189,138, + 37, 75,150,228,101,178,186,170, 26,235,159,111, 45, 85,213, 2,236, 54, 0, 95, 0,169,160, 29,223,105,208,160,241,207, 68,117, + 82,105, 91, 84, 37,150,190,128,170,151,243,198,115, 29,222,121, 20,143,218,105, 62,170, 96,251, 92,231, 52,237,213,220,101,155, +188,152, 90,185, 25,155,170, 48, 77, 78, 74,162, 26,203,121, 88,147, 79, 77,228,174,180, 72, 59,209,101,227,250,245,139,119,238, +220,217,191, 58,132, 3,159,207,127, 86,174, 82, 93,183, 82,171,119,149,137,220,175, 55, 55, 55, 95, 54,144, 15, 96,158, 89,116, +244,110,191,145, 99,183, 24,153,187,176, 87,109, 56, 80,193,100, 48, 52, 41, 57, 5,216,233, 6, 8,154,176, 64,178, 76, 3, 36, +200,108,117,249, 22,254, 47,191,250,226,139,207,215,175, 91,215, 69, 40, 20,246,174,212,233,220, 13, 6, 3, 96, 48, 36,151,169, + 84,183, 73,101,229, 99,181,207,218,109, 70, 34, 91,210,228,188,132,226, 54, 10,243,215, 33, 93,142, 28, 58,180,232,244,233,211, +127,104,187,133, 90,189,187, 76,220, 38,162, 41,109,175, 93,166, 2,184, 15,169,244,126, 67,166, 75, 58,215, 97, 19,223, 62, 12, +134, 57,102,102,102, 71,251,247,239,111, 52, 96,192, 0, 12, 27, 54, 12,221,187,119,135,193, 96, 0, 33, 4, 10,133, 2,167, 78, +157,194,150, 45, 91,146, 91, 2,235, 26,227, 83, 3,215,121, 23, 47, 14,237,208,161,195,225,134, 4,204, 91,145,213,168, 79, 98, +195, 99,147,151,172, 19,141, 72,159,176, 96,163,155, 70,158, 43,182,224,235, 36, 9,241,207, 24, 77, 31,155, 30, 10,125,204,169, +174, 99, 71,143, 94,192,100,177,122,189, 93, 1, 73, 94, 60,127, 30, 93,157, 84, 26, 62,211,175, 53,179, 47, 85,199,174,163, 29, +223,105,208,160,241, 79, 23, 90,195, 80,229,175, 85,147,146,167,222, 92,135,213, 86, 31, 22,139, 37, 77, 61, 59,119, 82, 67,236, +108,160,255, 91, 75, 22, 26,205,117,248,246,239,116, 64, 1,181,250,235,223, 5, 35,173,181,186,144,253, 78,249,230,132, 69, 44, + 1, 94, 66,167,246,131,244, 57, 16, 54,175,138,175,203,250, 47,107,183,169,222,135,236,239,142,203, 41,174, 0,238, 64,169,188, + 3,165,178, 78,167, 93, 54,139, 83,220, 88, 61,223,109,123, 38, 32,255,179,109,127,151,179, 81,241,240, 39,206,231,191, 13,111, + 10, 11,207, 2, 16, 58,132,135,219, 92, 14, 15, 31,247,249,210,165, 99,109,237,236, 92, 45, 45, 45,205, 76, 76, 76, 24, 15, 31, + 62, 76,211, 85, 84,236,238, 8, 28,121,107, 77,109, 20,106,224,186, 71,102,102,187,143, 71,143, 94, 64,177, 88, 61,107, 11, 24, +162,211,221,115, 1,246, 54,100,201,122,223,177,233,200,179,237,255,214,146, 5, 38, 48,187, 41,125, 35,187,170, 30, 27,160,211, +109, 64, 92, 92, 29,125,190,217,125,105, 61, 69, 81, 10,208,142,239, 52,104,208,248,231,162, 58,223,225,133,255,235, 3, 15,160, + 57,105,206,127, 16, 39, 19, 85,171,232,232,243, 73,115,210,156, 52, 39,205, 73,163, 73, 96,209,167,128, 6,141, 38, 67,143,223, +166,193,104,208,160, 65,131, 6,141,106, 84,251,102,213,198,143, 64,149,235, 78,125,170,180, 57,171, 9,222, 71,217, 70,208,156, + 52, 39,205, 73,115,210,156, 52, 39,205,249,175,227,108,140,251,239,184,154,177,218, 39,171,198, 55,235,255, 10,180, 89,149,230, +164, 57,105, 78,154,147,230,164, 57,105,206,127, 58,108,223,138,172,218, 31, 0,205, 12, 88, 74,131, 6, 13, 26,255, 84, 4, 6, +130, 65, 8, 40, 66, 2, 25,132,156,102, 18,226,207, 36, 4,127, 42, 21,136,191,127,221,193,108,255, 51,201,204,132, 62,227, 52, +104,252,163,144,139,122,146, 74,211, 62, 90,255,127,225, 36,145, 72,246, 3,160,242,242,242,230, 0,200,164, 79,201,255, 30,204, +205,205,251,235,116, 58,200,229,242,235,255,196,246,181,117,197,104,194, 64,155,154, 31, 8, 50, 95,164,224,104, 93,101,219,184, + 97, 42,168,223, 98,113, 81, 6,188,120,254, 10,191, 54,227,112,140,161, 3, 28,247, 2,192,165,136,172, 5,248,239,196,213,106, +109,101,101,117,133,197, 98,177,244,122,253, 60,169, 84, 26, 94,191, 16,242,103, 2, 0,155,220, 92, 41,203,179, 94,241,217,167, + 20,187, 76,125, 72,166, 46, 87,149, 50,217,204,215, 60,182,228,238,220, 25,140, 75, 37,202, 15,159,215,181,127, 72, 72, 72,189, + 89,188,219,185, 97, 40, 67,223,118,184, 79,251,180,212,111,119,117,217,217,219,197,146,157,150,245, 84,184,121, 95,233,126,174, +216,121,248,212,113, 84, 56,139, 79, 77, 57,116,168, 72, 73,143,178,166, 99, 35, 96, 94, 9,120,177,121, 60, 71,189, 78,103, 67, + 1,132,201, 98,229,107,213,234, 44, 14, 16,183, 18,144,253,211, 57, 57, 60,158,131, 94,167,179, 1,128,255,197,122,210,248, 61, +234, 21, 90, 66,161, 48,138,193, 96, 56,212, 78,134, 91,157, 79,176,250,183,218,219, 40,138,130, 94,175,207, 46, 41, 41,233,220, +140,227,155, 2, 24, 7,160,122,137,250,113, 0,167,240,254, 14,199,166, 28, 14,103,153, 64, 32,232, 87, 94, 94,222, 14, 0,140, +141,141, 19, 84, 42,213,141,202,202,202,111,223,147,151, 5,224, 99,161, 80,216,151,193, 96,244, 37,132, 80,132,144,155, 74,165, +242, 6,128,211, 0,222, 39, 82,130,177,181,181,245, 6,115,115,243,137, 43, 87,174, 44,178,176,176,240, 88,178,100,201,147,226, +226,226, 95, 10, 11, 11, 87,163, 25, 57,234,254,203,112,149, 72, 36,199,217,108, 54, 51, 43, 43,171, 47, 0, 56, 58, 58,222,212, +104, 52,122,169, 84, 58, 9,192,171,102,242, 9, 0,116, 19, 10,133,157,133, 66,161,175, 94,175,111,243, 54, 63,227, 11,165, 82, + 25, 89, 89, 89, 25, 5,224, 33, 0,213,255,208, 24, 49, 97,177, 88,193,111,251,186, 59, 0,197, 63,237, 38, 64, 24,104,243, 60, + 33,209,163, 70,120,181,243,172,191, 48, 5,167, 58,202, 54, 89,104,245,235,109, 59,124,196,136,129, 12, 0,208,104, 47, 13,191, +113, 59,247,220, 95,220,156,214, 99,198,140,185, 31, 28, 28,108,166, 86,171, 49,103,206,156,227, 17, 17, 17,123,229,114,249,202, + 6,111, 28, 66,179, 37, 91,119, 92,229, 83, 20, 3, 0,172, 13, 6,189,245,155, 55,175,220,159,199,223, 31,146,144,240, 96, 99, +121,226,141,135, 6,138, 61,183, 18,189, 18,155, 82,137, 54, 46,240, 27, 62,118,244,176,117,235, 2, 49,113,252,196, 22, 9, 9, + 21,198,246,166,169,220,226,114,129,155,133,149,245,136,117,235, 67,168,187,119,206,142, 8, 62, 28,116, 99,198, 12,139,126,180, +216,106, 18,168,245, 44, 86, 55,145,155,155,239,248,179,103, 33,116,116,100,177,120, 60, 6, 0,232,212,106, 71,101, 86,150,237, +201, 17, 35,186, 6, 38, 37,221, 10, 4, 30,209,156,255, 95, 56,105, 52, 71,104, 49, 24, 12,135, 55,111,222, 88, 11, 4,130,170, +155, 49, 33,208,235,245,208,235,245, 53,201,139, 9, 33, 53,223, 58,157, 14,158,158,158, 77,122,163, 5,208, 15,192, 39,125,250, +244,241,255,246,219,111,217, 94, 94, 94,213, 41, 67,122,173, 90,181,234,187,152,152,152, 51, 0,142,160, 42,120, 99, 83,223,120, + 7, 11, 4,130, 99, 91,183,110, 53, 29, 56,112, 32,203,206,206, 14, 20, 69, 33, 47, 47,175, 91, 68, 68, 68,231, 37, 75,150,204, + 83,169, 84,147, 1, 92,105,198,249,105,111, 98, 98, 18, 50,122,244,104,135,222,189,123, 27,181,109,219, 22,122,189, 30, 79,159, + 62,157, 17, 21, 21, 53,225,204,153, 51, 1, 10,133,194, 31, 77,207,215, 70, 9,133,194,105,166,166,166, 27,214,174, 93,107, 62, +121,242,100,110,124,124,124,137,139,139, 11,117,247,238, 93,171, 83,167, 78,205,219,180,105,211,199,114,185,124,181, 82,169,252, + 25, 77,200,161,104, 98, 98, 18,197, 96, 48, 28,154, 34,132, 1, 52, 71, 12,119,108,217,178,229,169, 59,119,238,180, 76, 79, 79, +215,143, 26, 53,234, 40, 0,220,184,113,195, 75,171,213, 82,131, 6, 13,186,148,157,157, 61, 14,192,211, 38,182,221,219,220,220, +252,220,196,137, 19,205, 93, 93, 93,249, 45, 91,182,164, 4, 2, 1,152, 76, 38, 74, 75, 75,237,226,227,227, 7, 60,122,244,168, + 60, 34, 34,162, 88,173, 86,143, 0, 16,215,140,235,212,221,218,218,122, 10,155,205,110,175,211,233,236, 1,128,197, 98,189,209, +106,181,241, 82,169, 52, 24,192,253,247, 29, 32, 54, 54, 54,123, 54,108,216, 96, 41,149, 74,201,166, 77,155,246, 40, 20,138,105, +255,212,155,193,241, 95, 78, 35,234,201, 35,160, 42,109, 14, 85, 71,255,163, 0,112, 62,251,108, 41, 58,127,208, 21,147, 38,126, +220, 40,231, 71,253, 29,182,178,185, 28,139,138,138,138,251,165,101,234,211, 2,190,209,184,137, 19,252,146, 1,224,210,229, 91, +227,186,116, 49,187, 41,226,243, 62, 54, 50, 50,234,174,213, 84, 22, 93,188,158,253, 69,115, 68,149,189,189,253, 21, 51, 51, 51, +126,113,113,113, 94, 65, 65,193, 15,195,135, 15, 95,127,228,200, 17,179,180,180, 52,100,101,101, 97,241,226,197,194,236,236,236, + 5,113,113,113, 15, 52, 26, 77,189,150, 45,133,162,120,215,170, 21, 35,215,138, 68,150, 76, 1,223, 20, 38, 34,115,184,184,118, + 64,183,238,195, 49,116,216, 76,164, 36,199,116, 59,114,120, 93,204,155, 55, 17,223, 8,205, 91,173,151,201, 90,214,123, 95,106, +219, 26,189, 71,140,174, 18, 89,107,215, 6, 34, 41, 49, 81,145,254,154,241,159, 11,103, 89,252,161,253, 61,121, 58, 77, 94,250, +221, 59,103, 91,246,236, 53, 10, 0, 58, 7, 31, 14,186,241,159, 73,102,253,247, 28, 47, 81,208,143,164,250,239,157,235,216,236, +105,131,119,236,176,246,153, 55,143,163,124,253,186, 50,117,223,190,178,252,200, 72, 61,139,199, 35,142, 67,134, 80, 86,125,251, + 26,205,123,241,130,115,111,211, 38, 95,118, 80,144,203,234,202,202, 99, 52,231,255, 41,231,191, 29,213, 78,240,181, 87, 31,254, +216,160,208,162, 40, 10, 2,129, 0, 39, 79,158, 4,155,205, 6,139,197, 2,155,205,174,247,111, 39, 39,167,166, 84,100,140, 68, + 34,249,110,239,222,189, 54,131, 7, 15,134,145,145, 81,205, 6, 38,147,137,129, 3, 7, 98,192,128, 1,236,156,156,156, 9, 39, + 79,158,156,176,113,227,198,124,153, 76,182, 16,111, 19, 67, 55,128,190, 30, 30, 30,161, 87,175, 94, 53,174,168,168, 64,100,100, + 36, 74, 74, 74,192,229,114,225,224,224,128, 65,131, 6,177, 18, 19, 19,205, 7, 14, 28, 24,154,148,148,228, 7,224,102, 19,234, +218,217,218,218,250,246,233,211,167,141, 58,116,232, 64,165,164,164,192,199,199, 7, 0, 80, 90, 90,138, 81,163, 70, 25, 77,158, + 60,217,117,194,132, 9, 15,165, 82,105,111, 0, 81,141,240,117,146, 72, 36, 63,143, 30, 61,218,110,227,198,141,166, 38, 38, 38, + 72, 79, 79,207,149, 72, 36,238,213,231,123,194,132, 9,220,225,195,135,219,110,217,178,101, 87, 72, 72,200, 23, 82,169,116, 26, +128,232, 6, 85,235, 91, 65,204,231,243,145,159,159,143,227,199,143, 99,193,130, 5, 96, 50,153,144, 74,165, 56,117,234, 20,254, +243,159,255, 84, 11,154, 38,137, 97, 62,159, 63,192,205,205,237,224,141, 27, 55, 28,196, 98, 49,236,236,236, 24, 95,125,245, 85, +123, 23, 23, 23,227, 22, 45, 90, 48,115,115,115, 17, 26, 26,234, 50,101,202,148,115,153,153,153, 51,212,106,117,163, 83,106, 54, + 54, 54,135, 46, 92,184,224,148,144,144,128,125,251,246,161,184,184, 24, 92, 46, 23, 98,177, 24, 18,137, 4,238,238,238,212,138, + 21, 43,248,195,135, 15,231, 47, 92,184,240,144, 70,163,233,216,132,107,212,193,218,218,122,127,223,190,125, 93,130,130,130,196, + 18,137, 4,213, 47, 6,165,165,165, 14,233,233,233,221,214,174, 93,235, 31, 21, 21,149, 38,149, 74,231, 2,136,109,230,192,233, +216,182,109, 91,191, 81,163, 70, 49,115,115,115, 17, 28, 28,236,167, 80, 40, 58, 54, 67, 92,254,173, 16,245,228, 17,230,204, 95, +172,180,115,116,228, 92,189,114,112, 76,200,175,173,159,136,141,171, 18, 82,203,202, 81,233, 63, 58,233,131, 65,131,103,114, 62, + 26, 54, 74,249,227,247,187,132, 77, 17, 90,108, 46,199,226,248,177,237,153,119,238, 70,181,191, 22,241,104,200,152, 17, 35, 8, +135, 35,118, 1,128, 47,150,124,198, 14, 13, 11, 59, 60,112, 64,215,156, 94, 61, 59,103, 78,154,188,212,169, 25,213,109,221,186, +117,235, 91, 49, 49, 49, 54, 60, 30, 15,197,197,197, 22, 63,254,248,227,246,158, 61,123, 50, 82, 83, 83,145,152,152,136,215,175, + 95,163,180,180, 20, 3, 7, 14, 20, 70, 71, 71,255, 0,160, 94,161, 85,201,232,183,193,174,133,118,183,133,177,160,101,165, 94, +110, 77,180,185,109,175, 93,184,230,125, 34,184,220,199,198,214,211,253,147,233, 1, 88,183,254, 12,251,151,227,155,215, 94,143, + 56, 1, 48, 90,214,159, 17,128,160,251,170,213, 43, 33, 87,168, 49,121,226,108, 76,153, 56,219,130, 64, 99, 75,244, 21, 2, 77, +121,137,216,132,243, 34,124,239,129,237,163, 1, 56,212, 18, 91,215,105,177, 85, 63,214,177, 88, 93,253,190,251,206,170,253,172, + 89,188,216,160, 32, 85, 97,100,100,185,219, 71, 31,149,248,124,250,169, 26, 0, 20,175, 95,115,146, 2, 2,248, 86,190,190,198, + 31, 46, 91,102,166,215,104, 36,235,214,173,235,178,182, 42,121,121,179, 56,157,198,141,211,175, 61,124,248,131,200,165, 75,251, + 80, 90, 45,115,200,135, 31, 62,221, 20, 28,252,230,207,112,254,149,245,204,185,125, 91, 93,236,226, 2,159, 81,163,138,156,172, +173,213,127,101,219,255, 76, 61,105,212,160,218, 87,107, 78,237, 55, 84,132,135,135,247, 6,112, 11, 64,144,159,159, 95, 32, 0, +136, 68,162,124,153, 76,102, 29, 26, 26,218,168,200, 98,179,217,176,181,181,133,187,187,187, 84, 42,149,218, 52, 80,129, 44,131, +193,224, 64, 8,169,177,190,212, 7,181, 90,141,228,228,100,120,123,123,103,163, 42, 17,109,189, 70, 29, 62,159,159,154,152,152, +104,249,252,249,115, 68, 69, 69,193,197,197, 5,102,102,102, 96,179,217,208,106,181,144,203,229,240,240,240, 0,143,199, 67,167, + 78,157, 10, 85, 42,149, 75, 35, 83, 64, 60,129, 64,144,124,251,246,109, 71, 31, 31, 31, 60,126,252, 24,142,142,142,144, 72, 36, + 0,128,215,175, 95,227,238,221,187,248,232,163,143, 16, 19, 19,131,177, 99,199,102,169, 84, 42,119, 0,234,250, 8,205,205,205, +115,111,220,184,145,237,229,229, 85,161, 82,169, 24,249,249,249,236,200,200, 72,157, 66,161, 16,150,150,150,178,101, 50, 25, 91, + 46,151,179, 84, 42, 21,155,193, 96,112,202,203,203,217,215,175, 95,103, 86, 86, 86, 54, 24, 32,179,250, 58,133,133,133,193,203, +203, 11,161,161,161,248,252,243,207,113,239,222, 61, 56, 58, 58,226,244,233,211, 88,182,108, 25, 94,190,124, 9, 75, 75, 75,180, +109,219,182,177,107, 4, 87, 87,215,148,103,207,158,185,114, 56,156,234,188,142,213,249,242, 80, 80, 80,128, 87,175, 94,225,205, +155, 55,112,115,115,195,196,137, 19, 95,189,121,243,198,173,177,158,103,111,111, 95,144,144,144, 96,233,237,237,141,252,252,124, +136,197, 98,136, 68, 34,136,197,226,154,191, 93, 92, 92,176,116,233, 82, 72, 36, 18,105, 69, 69,133, 77, 99, 34,200,203,203,235, +202,245,235,215, 45, 77, 77, 77,145,151,151, 7,185, 92, 14, 22,139, 5, 62,159, 15, 75, 75,203, 26, 33,159,156,156,140, 97,195, +134, 21,166,166,166, 14,110,134, 72, 98,216,216,216, 36,198,197,197,185, 19, 66,144,153,153,137,151, 47, 95, 98,254,252,249,201, + 21, 21, 21,158,248, 7,229,236,171,229,119,197,153, 54,125, 14,103,244,200,238,154, 23, 9,225, 20,207,240, 18, 29,219,155,150, + 2,192,211,120,185, 72,205,240, 64,155,118,126,228,215,115,247,185, 63, 31,249,145, 13, 3,108, 64,225,229,139,100,124, 93, 31, +247,160,190,182,179, 62,251,108, 70,251, 62, 61,123, 51, 20, 42,149,245, 15, 63,236,232,148,154,250,194, 26, 0, 92, 92,218, 72, +231,205, 91, 18,109, 34, 16, 72,111,221,189,109,216,185,243, 80,252,213,155,185, 7,154, 80,101, 23,119,119,247, 7, 97, 97, 97, +150,214,214,214, 16,137, 68, 80,169, 84,168,172,172,196,243,231,207, 43, 78,158, 60,169, 53, 53, 53, 53,201,203,203,131, 76, 38, + 3, 69, 81, 8, 11, 11,203, 4,224,252, 46, 81,181,143, 22, 0,204, 31,218,134,221,182,159,187, 25,135,167, 51, 54,102, 39,217, +130,210,243, 40, 34,180,185,116,229,169,247,165,107,143, 39,141, 30,243,185, 85,175,222,163,177,118,141,191, 54, 39, 39,211,167, + 18,189, 18,235,242,209,242,116, 67,191, 81, 99, 71,127,188,110, 93, 32, 2,215, 6, 33, 60,236,108,169, 80,192, 80,155,138,217, + 34,223,110, 61, 42,150, 46, 24,153,165, 84,230, 56,174,219,114,114,226,176,145, 75, 29,122,246, 26,133,187,119,206, 34,248,112, + 80, 20,101, 76,232,105,196,119, 16, 8,152,137, 93, 92,230, 46, 74, 78,230,196, 6, 6, 42,117, 57, 57, 37,157,151, 44, 41,172, +171,108,246,181,107, 2,174,157,157,169,217,136, 17,230,187,156,157,137, 86, 42,221, 95,151,143, 81, 93,156, 17, 66,161,248,196, +165, 75,253, 9,155,221,123,249,151, 95, 26,251,249,249, 65, 46,151,227,204,153, 51,216,191,111,159,218,214,214,246,153, 93,124, +124, 76,123,185,124, 77, 83, 57, 59, 47, 89, 82,168,215,235,169,143,151, 45, 27,152,240,250,117,191, 60,169,180, 5, 0,216,154, +155,103,117,118,113,137, 58, 20, 30,254,114, 79,203,150,134,166,214,243,167,203,151,109, 66,210,211,103,153,155,155, 27,231, 75, +165, 44, 30,151, 91,212,173,109,219,211,223,175, 94,125, 75, 23, 23,199, 49,114,112, 48, 21,249,249, 53,187,237,157,151, 44, 41, + 44, 86, 40, 88,139,214,175,239,145,145,159,223, 66,169, 86,187,201, 20, 10,137, 94,171,101,152,242,249, 69,173, 60, 60,164,229, +145,145,185,173,202,202, 22, 31, 0,164,255,173,107, 93,151, 22,249, 27,225,221, 56, 90,127,200,117,120,203,207,207,239, 15,171, +107, 8, 33, 77,178,102,177,217,236,223, 77, 83, 53, 0, 14, 69, 81,136,142,142,134,133,133, 5, 36, 18, 9,120,188,223, 39, 31, + 44, 40, 40,192,189,123,247,240,226,197, 11,116,232,208,161,122, 26,163,126, 69,196,227,125,182,101,203, 22,177, 70,163, 65, 84, + 84, 20, 58,119,238, 12, 30,143, 7, 14,135,243, 59, 17, 40,149, 74,209,174, 93, 59, 44, 95,190, 92,180,113,227,198,207,212,106, +117,189,111,164, 44, 22,107,225,236,217,179,173,171, 45, 88, 89, 89, 89,232,212,169, 83,205,118, 43, 43, 43, 60,125,250, 20,157, + 59,119,134,131,131, 3,252,253,253,173,131,131,131, 23,234,116,186,111,235,227,228,114,185, 12, 47, 47,175, 15, 0, 64, 32, 16, +128,193, 96, 36,153,154,154, 90,217,216,216, 8, 76, 77, 77,255,208,198,195,135, 15,203, 24, 12,134,182, 81, 53,192, 96, 32, 47, + 47, 15,237,219,183, 71,105,105, 85, 6, 23,149, 74, 5, 55, 55, 55,200,229,242, 26,209,106,103,103,135,242,242,134, 93,191,188, +189,189, 3, 61, 61, 61, 7, 9, 4, 2, 30,155,205, 70,108,108, 44,124,124,124,112,242,228, 73, 56, 57, 57,129,207,231, 35, 57, + 57, 25, 94, 94, 94,184,125,251, 54,172,172,172,208,174, 93, 59,158,181,181,245,157,226,226,226,155, 25, 25, 25,129, 13,212,147, + 33, 20, 10,113,251,246,109, 28, 58,116, 8,175, 95,191, 70, 78, 78, 14, 76, 76, 76,208,177, 99, 71,180,109,219, 22,221,187,119, + 71,114,114, 50,168,198, 59,147,196,221,221, 61,252,241,227,199,150,132, 16, 4, 7, 7, 67,169, 84, 66,163,209,128,193, 96,192, +200,200, 8,102,102,102,232,215,175, 31,172,172,172,224,238,238,142, 83,167, 78, 89, 14, 29, 58,244,162, 84, 42,237, 8, 32,175, +177,243,106,102,102,182, 56, 32, 32,192,209,218,218, 26,233,233,233, 40, 45, 45,133,141,141, 13,250,244,233, 99, 31, 17, 17,177, + 88,171,213,238,248,167, 60,200,106, 57,190, 83, 87,175, 28, 28,227,222,170,196,171,131, 7,223, 49, 52,220,198,241,100,184,180, + 29, 0,180,111, 99,147, 48,198,143,159, 21,155, 16,158,117,245,202,217,168, 23, 73, 8, 69, 19,166,182, 75,203,212,167,175, 69, + 60, 26,226,211,161,147, 97,203,230,101,195, 22,204,159,197,179,182,153,137,252,204,179,136,184, 17,237,180,236,243,217, 86,223, +110,251,233,210,181,136, 71,140,210, 50,245,154,166,153,178,156,246, 28,249,190,187,165,162, 48, 4, 41,137, 92, 24,155,180,135, +139, 75,107,200,229,114, 24, 25, 25, 25, 77,156, 56, 81,191,114,229,202, 50, 83, 83, 83, 62, 69, 81,184,121,243,166, 20,192,224, +198,120, 43,172,205,136,190, 82,171, 35, 92,166,129, 80, 38,229,148,190,152, 27,255, 60, 13,131, 6,244,205,239,217,181,253,198, +149,235,182,173,114,111,237, 99, 53, 99, 86, 16,123,125,224,164,125,160,208,171, 46,158,196, 20,220,160, 78,255,106, 12, 96,216, +186,175, 3,145,154,154,108, 54,231, 19, 89, 16,139,103,108,231,233,220,195,100,223,161,155, 67,220,220, 90,182, 88,186,208,255, +194,246,239,182, 15,171,109,217, 58,114, 56,224, 28,128,254, 77, 57,183,255, 34,120, 79, 9, 15,135, 50, 51, 83, 91,124,231, 78, + 69,255,239,190, 43,116, 28, 60,120,135,166,178,210,178,250, 86,193,160, 40, 80,213,174, 19, 6, 3,197, 90,190,156, 65, 88, 44, +104,205,204, 62, 65, 73, 73,235,198, 56, 63,207,205, 29, 51,105,214,172, 97,231, 46, 95, 70,203,150, 45,107,158,103, 98,177, 24, +203,150, 45,195,146, 37, 75,120, 79,159, 62,237, 18, 18, 18,210,229,219,173, 91,109, 0,140,105, 74, 61,175, 62,124,104,246,233, +186,117,171, 59,116,238,236,116,244,248,113,158,171,171, 43, 0,224,213,171, 87,238,155, 55,109,114,110,239,229,149,191,241,179, +207,142, 36,172, 92,217, 14,192,157,134, 56,243, 34, 35, 53, 33,233,233,179,110,220,188, 41,110,223,190, 61, 0,224,229,203,151, +214,187,118,237,154,221,206,223,127,242,186,121,243,214,248, 85, 84,200, 76, 11, 10,120,126,123,246,176, 78,124,252,113,163,156, +213,245, 4,128,255,199,222,117,135, 71, 81,181,223, 51,219, 75,122, 37,133,132, 18, 33,157, 38, 69, 74,168, 9, 37, 69,144, 38, + 10,130,162,128,136,162,130, 8,162,160,168, 95, 0, 65, 1, 5,105, 42, 96, 16, 16, 8, 37,212, 0, 9,136, 20, 41,161,164, 67, + 72,207, 38,155,186,155,108,159,246,251,131, 36,134,152,100, 55, 1,191,159,248,205,121,158,125,118,102,246,206,217,123,231,222, +153,123,230,189, 81,158,174,206, 0, 0, 32, 0, 73, 68, 65, 84,239,125,239,208,215, 94,123, 55,100,216,176,192,241,175,191,238, +232,237,237, 77, 88, 91, 91,195,100, 50,161,168,168,200, 33, 57, 57,249,153,184,234,106,117,236,149, 43, 63,131,166,195,254,198, +186,110, 82,139, 60,101,150,172,191,106,138,218,239,161,113,113,113, 44,128,161,145,145,145,231,235, 58,112,154,166, 45, 18, 89, + 2,129, 0, 4, 65, 88, 42,182,192,178, 44,202,202,202, 80, 86, 86, 86, 63,116,164, 84, 42,113,238,220, 57,100,102,102, 66, 40, + 20, 66, 36, 18,193,100, 50,191, 6,173,149,149, 85,104,104,104,168,224,202,149, 43,240,241,241,129, 76, 38,171,207, 87,221, 71, + 36, 18,193,221,221, 29,106,181, 26, 35, 70,140, 16,110,216,176, 33,180, 37,161,101,103,103, 23, 62,121,242,100,113,221,126, 77, + 77, 13,248,124,126,189,104,169,169,169, 65, 69, 69, 5,170,170,170,160,215,235,209,191,127,127,113, 92, 92, 92,120,121,121,249, + 26, 75,202,175,213,106,107,148, 74,165,125, 72, 72,136,195,142, 29, 59,210,251,247,239,239,247, 72, 75, 75, 76,212,235,245,122, + 33,143,199,179,104, 29,189,152,152,152,250,107, 95, 88, 88,136,205,155, 55,215,255,150,153,153,137, 13, 27, 54,128,101, 89,176, + 44,219, 98, 29,249,251,251,143,249,249,231,159,123,239,218,181,171,146,207,231, 35, 61, 61, 29,187,119,239, 6,203,178,112,113, +113,129, 86,171, 69, 73, 73, 9, 18, 18, 18, 64, 81, 20,172,173,173,225,233,233, 41,157, 55,111,222,160,207, 62,251, 76,216,146, +208,162,105,154,230,243,249,232,208,161, 3,150, 45, 91, 6,189, 94, 15,145,232,161,190, 84,171,213,168,170,170,194,205,155, 55, +145,147,147, 3,150,101, 91,236,100,164, 82,233,196, 93,187,118,185,138,197, 98,232,116, 58, 84, 87, 87, 35, 63, 63, 31,185,185, +185,122,165, 82, 73,217,216,216,240, 58,116,232,192,147, 72, 36,146,113,227,198, 17,117,130, 51, 50, 50,210,233,231,159,127,126, +209,104, 52,154, 19, 73, 46,110,110,110, 31,189,241,198, 27,210,134,109,182,184,184, 24,227,199,143,151, 95,186,116,105,137, 90, +173,222, 13,160,244, 95,214,161,177,251, 99,125,175, 93, 63,147,222,237, 96, 92, 59,175,220, 2,122,224,194, 15,214, 10, 0, 96, +235,150,232,129, 7,227, 10,127,247,239, 84,146,191, 63,214,247,154,131, 67,170, 57, 33,192, 27, 62,196, 61,202, 74, 46,157, 60, +254,249,231,217,239,191,255,230,217,183,230,190, 46,233,224,187,240,161,133, 83,232,138, 17,212,231,132, 86,119, 95,250,253,247, +223, 60, 59,254,249, 9, 55,179,179,115,182, 12, 31, 34,217,119,238,188,226,104, 75, 22, 67, 87, 39,169,167, 92,162,129,167, 79, + 32,252, 2,172,144,116, 43, 29, 7,126,189,140,128,160,231, 96, 48, 24, 64, 81,148, 85, 84, 84,148,118,239,222,189,250,140,140, +140,106,157, 78, 55, 4, 64,134,185,194, 23, 20,164, 48,126,110,207,153, 68, 50, 9, 85,173, 18,105, 23,127,188,127,210,179,253, + 70,246,118,112,247, 20,186, 88, 49, 71,199,132,245,221,253,227,246,101,239,125,188,124, 55,250,244, 29,217, 63, 53,253,183, 64, + 0,119,154, 20,175, 89,136,227, 29,136,165,178,238,221,139,200,205,201, 41,240,109,231,102,188, 95,197,146,243, 23,111, 11, 11, + 25, 50,177,251, 51, 1,131,197,169, 41,231,137,101,139, 94,252,101,197,234,175, 95,170, 19, 91,103,227,127, 25, 50, 99,198,101, +241,142, 29,205, 91,199,255,215, 32,146, 72,218, 91,119,232, 32,200,222,177, 67,231, 19, 21, 85, 9, 0, 70,147,201, 57, 59, 39, +199, 78, 46,151,131,101, 89,144, 36,249,136, 15,113,157,223,112,176,159, 95, 59, 75, 56,179, 63,249,164,251,162, 69,139, 80, 92, + 92, 12,138,162, 32, 20, 10, 27, 63,179,161,209,104, 48, 99,198, 12,124,251,213, 87,207, 89,194, 73,211, 52, 49,103,197,138,165, + 31, 46, 93,250,204,236,217,179,121, 13,159,189,142,142,142,216,127,224,128,120,227,198,141,237, 63,250,246,219, 25, 47, 75, 36, + 89, 48, 24, 90,228, 44,235,210, 5,142, 37, 37,178, 58,145, 5, 0,126,126,126,216,188,121,179,100,230,204,153,226,168,168,168, +181, 73, 61,122,172,255,102,208,160,123, 78,190,190,182, 98,137,164,189, 57,206,186,235, 9, 0,213,122,125,240, 55,235,215, 59, + 92,189,122, 21, 37, 37, 37, 40, 46,126,248, 62, 74, 16, 4,250,244,233, 67, 76,155, 54,205,174,179,151, 87, 95,208,244,223, 89, +221,127,209, 34, 79, 17,102, 53,113,236, 79, 31,173,218, 2, 17,181, 5, 36, 26,116,142,143, 8, 22,115, 66,171, 45,168,170,170, + 66, 85, 85, 21,182,111,223, 14,145, 72, 84,223,249, 2,128,209,104,180, 68,180,116,243,240,240,128, 74,165,130,175,175,239, 35, +150, 44,145, 72, 4,129, 64, 0,145, 72, 4,137, 68, 2,131,193, 0,111,111,111,104,181,218,110, 45,113,234,116,186,158,142,142, +142,245, 29,172,161,182,177, 26, 12,134,250,252, 26,141, 70, 84, 86, 86,162,166,166, 6,213,213,213,208,104, 52,189, 44, 41, 47, +195, 48,184,123,247,238,125, 63, 63,191,158,124, 62, 31,214,214,214, 86, 26,141,166,222,183,168,162,162, 2, 59,119,238,212,188, +242,202, 43,206, 71,142, 28, 49, 43,180, 8,130,192,219,111,191, 13,137, 68, 2,173, 86,139,239,191,255, 30,239,188,243, 14, 68, + 34, 17,170,171,171,177,121,243,102,188,255,254,251, 16, 8, 4, 48, 26,141, 88,191,126,125,179, 92, 41, 41, 41,217, 87,174, 92, +233,245,236,179,207, 58,196,198,198,150,134,133,133,185,140, 26, 53, 10, 50,153, 12, 58,157, 14, 36, 73,226,185,231,158,131,191, +191, 63,148, 74, 37, 78,156, 56, 81,214,181,107, 87,231,171, 87,175, 50,197,197,197,185,102,196, 53,219,192, 98, 8,154,166, 81, + 82, 82,130,170,170, 42,148,150,150,162,168,168, 8, 5, 5, 5, 16, 8, 4, 48,163,179,224,228,228, 52, 33, 56, 56,152, 15, 0, + 50,153, 12, 61,123,246,196,210,165, 75, 41,157, 78, 55, 25,192,137,218,100, 99,182,109,219, 22,123,241,226, 69,129,135,135, 7, +210,210,210,224,226,226, 34,144, 74,165,102,133,150,155,155,219, 79, 71,143, 30,117,172, 19,215,117,215, 89,171,125, 88, 29,227, +199,143,119,220,181,107,215, 79, 20, 69,133,255,219, 58, 53,123, 25, 68, 61,131,109, 85,123,227,148, 65, 11, 63, 88, 43,240, 15, +126,248,242, 58,107, 54, 4,107,190, 90, 16, 52,117,172,237, 49,123,153, 90,100,142,103, 76,168,215,198,231,159, 15,227,189, 52, + 37, 50, 83, 36,178,247,217,178,245, 51, 87,215,118, 51, 27,200, 48, 91, 56, 57,219,194,167,131,152,216,127, 44,213,117,241,146, +207, 13, 49,187,190,206,250,101, 79,220,104,177, 48,126,228,137, 51,249,111, 54,199,157,113,191,234,136,214, 32, 13, 80,151,223, + 38, 28,219, 13, 68,207, 30,126,112,117,169,196,182,159,246,162, 83,231, 62, 48, 24, 12,176,181,181,149,211, 52,109,226,243,249, + 49,150,136, 44, 0, 56,123,182,138, 9, 10,170, 50,242,171, 25,234,173,119,214,188, 16, 54,230,249,192,225,195, 67,153,211,241, +167, 77, 3,123,153, 20, 99, 70,245, 44, 57, 25,191, 49, 83, 81,244,160,107, 80,183, 65, 72, 73, 78, 24,205,178,184, 75, 16, 77, + 91,159,146,239,225,164,158, 73, 73,216,187,119, 22,163, 99,110,202,190,248,242,206,152,136,136,233,193,131, 67, 6, 51,241,103, +206, 25,197, 40, 75,181, 29, 52,160,240,173,215,199,196,254, 16,179,126,228,201, 19, 63,117, 81,169,115,227, 56,145,213,232, 37, +141,162,218, 9, 36, 18, 94,105, 66, 2,213,109,230, 76, 67,221,253, 40,151,203,113,248,240, 97,136,197,226,250,143, 72, 36,170, +223,110,215,174, 29,136,218,105,164,150,112, 2,128, 66,161, 64,113,113, 49,236,236,236,224,226,226,130,226,226, 98, 92,186,116, + 9, 25, 25, 25, 16, 10,133, 24, 61,122, 52,120,205,248, 54, 55,230,156,180,112, 97, 88, 64,183,110,222,141, 69, 22, 0,152, 76, + 38, 84, 84, 84, 96,236,216,177,188, 19, 39, 78,184,157,204,203,123, 30, 64, 76, 75,156,189, 34, 34,202, 75,246,239,111,242,191, +159,125,246, 89,226,247,223,127,151,140, 30, 53,234,189, 5, 95,126,185,241,219, 93,187,242,105,138,114,107, 77,217,121, 60, 30, +143, 32, 8,120,121,121,161,162,162, 2, 53, 53, 15, 71,176,173,173,173,225,224,224, 0,146, 36,193,176,172,240,239,172,235,230, +180,200, 83,130,173, 13, 4,215,214,191, 88,180,106, 11, 5, 0, 67, 27,118, 44, 12,195, 88, 36,178,132, 66,161, 89,159, 43, 75, +172, 92,141, 97,137,208,170,203,171, 84, 42,173,191,209, 26, 10,172,186,124,242,120, 60,240,249,124,179,157,120,173, 24,226, 87, + 87, 87,227,192,129, 3, 24, 50,100, 72,253,176,148, 74,165, 66, 85, 85, 21, 84, 42, 21,244,122, 61,178,179,179,113,246,236, 89, +116,233,210, 5,176, 48,248,107, 86, 86,214,245, 78,157, 58,245,174,235,196,135, 13, 27,214,126,199,142, 29, 69,225,225,225, 30, + 44,203,226,227,143, 63, 46,123,238,185,231,156, 27,118,242,230,192,231,243,113,233,210, 37,116,233,210, 5, 44,203, 66, 36, 18, + 33, 61, 61, 29,174,174,174, 96, 24, 6, 2,129, 0,165,165,165,176,177,105, 57, 70,226,221,187,119, 95,125,237,181,215,138,236, +236,236,186,151,151,151, 43, 36, 18, 73,200,133, 11, 23,188, 76, 38, 19,108,109,109, 97,107,107,139,227,199,143,195,222,222, 30, +239,190,251,110,158, 78,167,187,100,101,101,213, 78,167,211,221, 46, 46, 46,254,184, 53,245, 77, 81, 20, 52, 26, 13, 42, 43, 43, + 81, 81, 81, 1,181, 90, 13,189, 94,111, 54,143, 77, 33, 36, 36, 4,113,113,113,252,232,232,232, 31,178,178,178, 0, 0, 62, 62, + 62,120,247,221,119,249,158,158,158,200,206,206,198,245,235,215, 97, 50,153,192,178,108,139, 55,175, 64, 32, 24,246,202, 43,175, + 12,242,246,246, 38, 76, 38, 19, 24,134,129,193, 96, 64,221,118, 94, 94, 30, 2, 2, 2,120, 29, 58,116,232,159,149,149, 53, 12, +150, 77,172,224, 0,160, 36,239, 16, 60,133,174, 0,207, 22,172,238, 16,202,203,218, 22,197, 69,169, 84,126,185,232,147,223,103, +126,187,218,212,174, 64, 1,248, 5,143, 67,215,192, 17,120,117, 26,133,232,175, 14,192,187,131, 31,114,115,115, 49,108,216, 48, + 81, 81, 81,209,107, 53, 53, 53, 11, 45,229,142,143,191, 66,159, 62,126, 98,226,164, 23,167,247, 14, 13, 13,167, 78,157, 58,142, +187,183, 79, 37,191,246,226, 4, 37,203,212, 16,142,246,178,155,233,105,215,186,118,239, 57, 20, 70,138, 14, 1, 62, 93, 13,124, +202, 54,127,191,195,120,236,152, 59,239,216,161,159,166,189, 52,117, 70,143, 17, 35, 70,146,167,226,143,226,250,229,248, 91,107, + 87,191,113, 62,122,253,190, 97, 97,163, 39, 4,185,180,187,116, 60,216,215,240,186,151,147,221,253,109, 59, 42,184,198,210,212, +189, 41,149, 50,168,125, 46,242, 8, 2, 44,203, 62, 34,178, 26, 11, 45, 30,143,103,214, 0,208,144,179, 97, 95, 84,247, 66,189, +101,203, 22, 72, 36, 18,136,197, 98, 8,133, 66,179,238, 23, 13, 57,147,179,179,135,239,140,137,145, 52, 37,178,202,203,203, 81, + 94, 94,142,154,154, 26, 76,153, 50, 69,244,217,181,107,207,162,214,245,163, 57, 78,111,119,119,131,149, 76, 86,146,146,146,226, + 17, 24, 24,248, 72,126,213,106, 53,100, 50, 25, 98,118,239, 22, 69, 70, 68,204, 29,113,252,248, 90,152,137,127,213, 84,217, 9, +130,128,171,171, 43, 28, 28, 28, 64, 16, 4, 40,138, 66,113,113, 49,146,147,147,113,237,218, 53,240, 9,130,250, 59,235,184, 41, + 45,242, 20, 90,181,182, 54, 57,116,216,220,152,104,107,132, 22,159,207,111,179, 85,171, 57, 88, 50,116, 40,151,203,239, 20, 21, + 21, 13,244,244,244, 4, 69, 81,245, 66,171,241,208, 97,157,245, 35, 41, 41, 9,114,185,252,142, 94,175,111,145,147,101,217,254, +125,251,246,197,193,131, 7,145,144,144,128, 7, 15, 30, 64,171,213,194, 96, 48, 64,167,211, 33, 57, 57, 25, 12,195, 32, 56, 56, + 24, 86, 86, 86,144,203,229,119, 12,134,150, 95, 68, 53, 26,141, 66, 40, 20,250,201,100,178,250, 99,238,238,238, 40, 47, 47,103, + 72,146,196,206,157, 59,213,110,110,110, 86, 50,153,204, 98,225, 74, 16, 4,148, 74, 37,218,183,111, 95,239,163, 85, 93, 93, 13, + 87, 87,215, 58, 97, 1,131,193, 0, 27, 27, 27,179, 67,135, 0,244,247,238,221, 91,208, 96,191,207,164, 73,147,126,217,187,119, +111,231, 51,103,206,224,234,213,171,112,113,113,193,127,254,243,159, 7, 57, 57, 57, 47, 1,184,166, 84, 62, 89,191, 72, 75,218, + 80,121,121,249,129, 59,119,238,244,239,219,183,111,253, 83, 98,216,176, 97,196,176, 97,195,156, 27,154,250, 75, 75, 75,241,199, + 31,127,224,204,153, 51, 32, 8, 2,153,153,153,180, 78,167,251,165,165, 81, 10, 79, 79,207, 29, 75,151, 46,181,166, 40,170,190, +109,203,100, 50, 72,165, 82,136, 68, 34,240,249,124,228,228,228, 96,236,216,177,118,223,125,247,221, 79, 6,131,225, 25, 0, 38, +252, 75, 80,165,131, 41,233,174,218, 46, 56,160, 93,242,214, 45,209, 3,103,205, 70,221,208, 33, 21, 28,224,154,156,116,183,196, +174,183,171,249,242,158, 56,147,255,150,145, 60, 17,117,226,100,226,228, 15,222,123, 87,232,227, 19,160, 60,115,238,134,247, 8, +234,115,194,201,217, 22,229,101,106,228,228,149, 32, 43,215,200,250,248, 4, 40,175,255,113, 71,242,213, 55,235,186,106,180,250, +186,161,195, 22,219,233,111,151, 30,140, 91,187, 65,114,126,250,107,125,196, 50,153, 7, 42,202,238,192,219,219, 5, 99, 35,187, +227,199, 93,151, 96,103,231,136,118,237,218,129,199,227, 89, 89, 90,246,178,178, 50,226,192,158,223,102,190, 50,227,141,231, 70, +141,140,160, 78,158, 58, 38, 72, 56,125,228,210, 79, 91, 63,138,101,249, 26, 57,193, 86,203, 58,118,114,187,125,255, 94,210, 75, +195, 67,167, 64, 38,178,233, 2,248, 55,217, 96,235, 39, 24,176,200, 59,184,247, 83,233, 43, 51,102, 13, 24, 53,234,121,234,212, +169, 67, 56,117,124,215,149,229,203, 59, 30,127, 80,184, 91,116,249, 90,129,116,220,196, 55, 43,227, 78,164, 26, 39, 68,117,202, +240,176,234,169, 3, 30,112,170,170,225,139,164, 64, 80, 66, 25, 12, 94,237, 71,141,226,107,115,115,133,214,237,218, 81, 0, 64, +146,164, 89,161,133,102,134,160, 27,115, 90,154, 23,173, 86, 11,166,153,216,137,141, 57,139,149,202,142,181, 47,225,245, 32, 73, +178, 94,100,149,151,151,163,170,170, 10, 86, 86, 86, 40, 53, 24,218, 89,194, 57,178, 95,191,157,159,125,250,233,194,253, 7, 14, +136, 26,138,172,186,143, 80, 40,196,170,213,171, 69,239,124,240,193,155,115, 5,130,249,160, 40,139,175,103,221, 75, 59,159,207, +135, 64, 32, 64,110,110, 46,242,242,242,144,155,155,139,220,220, 92,200,100, 50,176,127,243, 36,160,167,216, 63,171, 78,100, 53, +252,174,183,114,181, 24,222,161, 53,206,240,150, 10, 3,186, 21,227,187,150, 8, 45,141, 70,115,230,236,217,179,253,198,141, 27, + 39,184,114,229, 10,220,220,220,234,133, 86,221,119,221,112,148, 92, 46, 71,108,108,172, 73,163,209,156, 49,115, 51,157, 61,126, +252,120,239,101,203,150, 9, 95,125,245, 85,164,164,164, 96,246,236,217,168,170,170,130, 90,173, 70,121,121, 57,180, 90, 45,250, +245,235, 7,169, 84,138,219,183,111,147, 90,173,246,172, 25,139, 29,171, 84, 42,107, 92, 92, 92,220, 27,255, 54,113,226,196,118, +155, 54,109,210,166,165,165,145, 3, 7, 14,180,181, 84,112,212, 97,207,158, 61,245,150,186,140,140, 12,108,218,180,169,222, 39, +235,198,141, 27, 88,179,102, 77,125,236,179, 86,226, 90, 89, 89, 25, 69,146, 36,186,116,233, 2, 79, 79, 79,232,245,122,172, 91, +183,142, 2,112,237,255,171, 53,235,245,250,253,211,167, 79,255,240,230,205,155,238, 2,129,224,161, 73,187,182,124, 38,147, 9, +247,238,221, 67,114,114, 50,210,210,210, 80, 81, 81, 81,255, 34,144,148,148, 84, 73,146,228,190,230,120, 93, 92, 92, 62,254,241, +199, 31,221,228,114,249, 35,237,185,206, 26, 90,103, 37, 45, 45, 45,133,189,189, 61, 70,140, 24,225,122,246,236,217,143, 13, 6, +195,178,127, 73,159, 70, 76,124, 33,163,207, 59,111,141,195,248, 72,121,254,193,184,194,223,215,124,181,160,214, 25,222, 53,121, +124,164,103,254,173,116,123, 76,124,225, 80, 31, 0, 5,104,217, 97,155, 57,119, 94,113,184,111, 95,135,132,131, 71,142,252,180, +100,209,123, 55, 22, 46,120,195, 69,171,187, 47,245,233, 32, 38, 0, 32, 43,215,200,222, 78, 97,244,107,214,190,119, 35,122,245, +119,188,146,242,170,217,127,252,209,124,120,131,134,226,133,199,131,212,199,127, 72, 81, 87,223, 65,157,174, 92,138,129,181, 92, + 7, 63,255, 62, 24, 53,178, 63, 18, 18,147, 80, 92,170,135, 66,161,128,193, 96,104, 49, 92, 66,218,237,216,105, 44,193,122, 19, + 44,145, 71,240, 88,233,180,233,175,135, 68, 68, 60,207,198,197, 29,161, 14,197,198, 92,220,247,243,134,253, 60,145, 80,160, 51, +218, 25, 9, 66,175, 2,239,110, 74,141,230,225, 11,141, 80, 34,106,222,252, 90, 27,216, 53, 48,200,223,109,218,244,217,118,225, + 99,198,178,199,143, 31, 98,246,237,221,153,176,111,123,183, 24,134,167, 22, 41,242,181, 18,149,154, 84,177,132,216,190, 70,205, +104, 75,178,158,209,123, 68, 76, 52, 1,251, 57,117,213,176, 31, 48, 24, 10,106,242,243,221, 29,135, 12,145,220,251,244, 83,121, +187,126,253,244, 68,173, 15,113, 75, 66,139,207,231, 3, 60, 30, 99, 9,167,165,121,209,233,116, 96, 0,178, 45,156, 20, 69, 61, + 34,178,234,132, 86,221,253, 98, 9,231,214,229,203,175,120,143, 26, 85,145,152,152,216,110,232,208,161, 68,117,117, 53,170,171, +171, 31, 17, 91, 30, 30, 30, 68, 96,112,176,124, 79, 66,130,143,165,215,211,146,178,243,120,188,191, 93,104, 61,229,104,118, 33, +233, 22,151,224,169,179,104, 89, 34,180, 44,180,104,145, 36, 73,194,213,213, 21,101,101,101,205,118,252, 60, 30, 15, 50,153,172, +110,140,184,197,153,119, 6,131, 97,221,194,133, 11,231,141, 25, 51,198,217,207,207, 15,165,165,165,104,215,174, 29,164, 82,105, +189,239, 88, 29,223,141, 27, 55,240,227,143, 63,170, 13, 6,195, 58, 51,156,223,172, 94,189,250,173,241,227,199, 59,186,185,185, +193,193,193, 1,183,111,223,134,131,131, 3,212,106, 53,210,211,211, 97, 99, 99, 83,239,183,115,228,200,145,106,131,193,240,141, + 25,241,198, 94,184,112,193,100, 99, 99,115,187,180,180,148, 95, 81, 81, 33,168,172,172, 20,168,213,106,161, 74,165, 18,158, 60, +121,210,217,206,206, 78,123,238,220,185, 82,111,111,111,254,131, 7, 15,248, 36, 73,154, 85,175, 4, 65, 96,254,252,249, 16,137, + 68, 48, 24, 12, 88,183,110, 29, 22, 46, 92, 88,239,147,181,122,245,106, 44, 93,186,180, 94, 56,111,219,182,173, 85, 45,135,101, + 89,152, 76, 38,144, 36, 9,146, 36, 45, 18,191,143, 3, 11, 5,123,113,102,102,102,100,223,190,125, 79,255,250,235,175, 78,181, + 49,201, 80, 82, 82,130,146,146, 18,148,150,150,162,166,166, 6, 20, 69,193,211,211, 19, 37, 37, 37, 56,116,232,144,170,186,186, +122, 20, 90,152,113,200,231,243,167,135,132,132, 8, 26,231,161,238, 45,175, 78,188, 75, 36, 18, 20, 21, 21, 97,216,176, 97,226, +196,196,196,233, 0,158,106,161,213, 48,188,195,200, 81, 51, 69, 1, 65, 3,140,183,146,227,242,253, 59,149,228, 79, 29,107,123, + 12, 0,146,238,150,216,221, 74,183, 71, 64, 80, 36, 59,114,148, 67,239,146,226,173,221, 0,152, 90, 90,174, 7, 0,236,228,146, + 73, 97,161,253,138,108,172,172,120,107,214,110, 59,241,253,247,223, 60,187,255,216,159,225, 29,214,172,125, 24,222, 33, 44,180, + 31,147,150,154, 54, 9,192,118, 75,197, 75,100,100,212,205, 31,119,252,136,180,228,115, 30, 31,206,239, 46,174, 40, 33, 33,179, +246, 66,239,158,237,176,117,199, 29,220,186,117,171,216,104, 52, 14,107,177,125, 19,172,119,114,202, 93,223,110, 65,129,110,211, +166,207,178,141,140, 28,139,184,184,195,248,121,231,246, 11, 19,166,140,255,161,176, 82,205,119, 21,202, 69,114,150, 17,243, 69, +118, 2,145, 68,166, 52, 26, 31,206,129, 16, 10,165,182,192,164, 22, 59,158, 57,179,166,218, 13, 15, 29,139, 99,199, 15,227,231, +157, 91,207,127, 18, 52,113,123,167, 94, 1, 68,191,103,191,122,179, 83,231, 78, 29, 52, 53, 37,106, 30, 33, 54,233,245,140,205, + 87, 59,115,190,206, 90, 58, 61, 11,192, 90,112,179, 14, 27,226,246,207,225,225,125,223,185,127, 95,228, 50,104,144,172, 40, 33, + 65, 94,187, 18, 73,139, 66, 75, 32, 16,128,109,126,168,235, 17, 78, 98,215, 46, 30,128, 22, 39, 97,137, 68, 34,104,181, 90,144, +205, 91,176, 31,225,116, 63,117, 42,255,254,253,251, 93, 29, 29, 29, 31, 17, 89, 21, 21, 21,245,219,122,189, 30, 90,173, 22, 50, +153, 44, 89,215,244,136,200, 35,156, 37, 23, 46,232, 87,206,159,191,236,165, 41, 83, 54,156, 57,123, 86,234,228,228, 4,149, 74, +245,136,208, 50, 26,141, 24, 62, 98,132,104,245,205,155,211,160, 86, 47,183,228,122,182, 27, 54,204,172, 63, 48,159,207, 7,243, + 55, 15, 29,254, 11, 48,171, 41,225,197, 51, 55,132, 99,233,172,195,102, 58,200,198,171,123, 47,237,221,187,183, 62, 35, 35, 3, +222,222,222,245, 98,165,225,127,218,218,218,194,222,222, 30, 55,110,220,192,151, 95,126,169, 3,176,212, 12,103,181, 86,171,125, + 49, 44, 44, 76, 39, 16, 8,224,239,239, 95, 31, 63,139, 97, 24,136,197, 98, 88, 89, 89,225,230,205,155,136,138,138,210,106,181, +218, 23,241,215, 24, 90,141, 57, 85, 90,173,246,229,145, 35, 71,106, 83, 82, 82, 16, 18, 18,130, 91,183,110,161,166,166, 6, 53, + 53, 53,200,206,206, 70, 96, 96, 32,180, 90, 45, 54,109,218,164,211,106,181, 47, 3, 80,181,196, 89, 93, 93, 29,181,112,225, 66, +254, 47,191,252,210,201,211,211, 51,168, 79,159, 62,126, 35, 70,140,120,230,133, 23, 94,232, 16, 30, 30,238,222,181,107, 87,253, +168, 81,163, 92,198,140, 25,227,162,213,106,133,191,255,254,187,130, 36,201, 49,102,242, 89, 47, 78, 50, 50, 50,234,135, 10, 5, + 2, 1,202,202,202,234, 35,247,215, 61,148,154, 17,194,161,230,196,118,157,192,170, 19, 92, 22,248,185, 53,197,105,246, 36,177, + 88, 92,103,241,100, 45,224, 76, 74, 77, 77, 13, 27, 50,100, 72,210,204,153, 51,171,139,139,139, 97, 99, 99, 3, 31, 31, 31,248, +250,250,194,217,217, 25, 38,147, 9,177,177,177,154, 67,135, 14,221, 81,169, 84,195,240,215, 24, 90,161,141,174, 99,118, 83, 15, +217, 58,107, 86,157,208,146, 74,165,240,244,244,172,187,182,217,173,185,158,109,196,223,203, 89, 43, 96, 70, 12, 31,213, 57, 60, + 98,156, 93,236,225, 75,226, 13, 27, 15,221,233, 29,138,109, 78, 29,213, 71,156, 58,170,143,244, 14,197,182, 13, 27, 15,221,137, + 61,124, 73, 28, 30, 49,206,110,196,240, 81,157, 83,146,211,252, 26,174,123,216, 84, 62,165, 82,233,128,144, 65,189, 43, 19, 47, +158,103,162, 87,127,199, 27, 62,108,194,205,237, 63,196,198,110,255, 33, 54,118,248,176, 9, 55,163, 87,127,199, 75,188,120,158, + 9, 25,212,187, 82, 42,149, 14,176,164,236,115,102, 77,181,139, 8, 31,139,184,184, 88,106,255,158, 77,171,247, 30,200, 28,242, +250,188, 11, 37, 25, 25,183, 88,101,193, 41, 8,121,185, 72, 77, 77, 85,213,138,172, 12, 75, 56,103,191, 49,181,161,200,250,205, +201, 45,100, 91,106, 42,232,248,248,163,228,217,179, 55,117,191, 37, 41, 85,215, 83,202, 42,138, 74, 43, 30,168,213,229, 70,134, +161, 65,211, 52,255,179,207,234, 29,118,155,172,163,129, 3,135,226,220,153,221,216,185, 99,139,138, 97,160,159,180,127, 63, 61, +105,210,167,108,135,142, 29, 59,196,236,217, 77, 68, 62, 63,206,142, 5,152,168,241, 99,237,127,217,251, 11,209,185, 75,231,142, + 62, 62,245, 33,109,158,190,182,244, 55,112,126, 10, 84,170,115,115,207,223,248,238, 59, 67,187, 23, 95,116, 20,183,107,103, 11, +154, 38,234,158,239,205,125, 4, 2, 65, 99, 11, 76,179,156,158,206,206,133, 71,142, 28,129,175,175, 47, 60, 61, 61,209,208, 71, +182, 46, 32,183,147,147, 19, 14, 28, 56, 0,246,209,224,212,205,114,246,234,212,233,198,170,149, 43,141, 12,195,160,178,178,242, + 47,214,172,202,202, 74, 48, 12,131,227,199,142, 25,213, 15, 87, 2,177,168,236,195,248,252,154,151, 6, 15,142,142,136,136, 48, +221,191,127, 31, 12,195,160,161,101, 75,169, 84,194,218,218, 26,122,131,193, 11,128,220, 18, 78,229,201,147, 86, 48,243, 92,111, +194,162,245,119,212,251,211, 46,178, 26, 46, 40, 61,203, 34,139, 22, 69, 81,240,242,242,122,100, 73, 23, 30,143,247,200,167,149, + 51, 14,119,165,164,164,156, 26, 53,106,212,178,231,158,123,110,206,178,101,203,248,126,126,126, 80,169, 84,112,112,112,128,171, +171, 43,210,211,211,113,228,200, 17,186,172,172,108, 51,128, 21,176,108, 10,125, 66,102,102,102,100,247,238,221,247, 46, 94,188, +216,110,228,200,145, 66, 47, 47, 47,176, 44,139,155, 55,111,226,224,193,131,166,237,219,183,171,107, 69,150,165,206,203,167,139, +138,138, 38,140, 25, 51, 38,102,250,244,233, 54, 52, 77, 11,179,179,179, 97, 48, 24, 64,146, 36,242,242,242, 76,113,113,113, 53, + 90,173,118, 42,128,211, 22,240,221,168,170,170, 10,140,143,143,159,254,251,239,191,127, 57,115,230, 76,167, 17, 35, 70,136, 40, +138,194,197,139, 23, 75,123,245,234,229,170, 84, 42, 77, 7, 14, 28, 40,215,235,245, 75,105,154,182,104, 9, 30,130, 32,160, 86, +171,225,236,236, 12,131,193, 0,134, 97, 96, 52, 26, 97,109,109, 93,191,108, 18,203,178,104,141,115,125,163, 54,192, 55,153, 76, +152, 50,101, 10, 24,134,193,186,117,235, 64, 81, 84,171,201,236,236,236,174, 39, 37, 37, 69,246,236,217,179, 94,188,212,181, 33, +137, 68, 2,103,103,103, 56, 57, 57, 33, 46, 46, 14, 66,161,240,186, 57,127,183, 90,220, 42, 43, 43,235, 21, 31, 31, 63,224,206, +157, 59,175, 0,232,105, 50,153, 60,105,154, 38,120, 60,158,130,101,217,219,106,181,250, 7, 88,184, 4,143, 82,169,252,114,198, +140, 25,189,118,239,222,109, 45, 16,252,121,107, 8, 4, 2, 72, 36, 18,212, 5,199,100, 89, 22, 70,163, 17, 31,127,252,177, 90, +163,209,124,249,111,121, 74,244,238,211, 15, 91, 55,173,183, 62,123,238, 84,105,106, 38, 14, 54, 17,194,161,160,164,120,107,183, +162,252,124,235,222,125,250, 89,196, 73, 26, 77,229, 47, 79,125,223,187,118, 9,158,143,179,179,115,182,196,236,250, 58, 11, 0, +190,250,102, 93,215,146,242,170,217,105,169,105,147,182,108,217, 51,128, 52,154,202, 45,225,252, 83,188,196,168,192, 66, 15,224, +234,205, 59, 37,157,162, 94, 60,185,180, 75,103,219,231,149,229,186,194,154, 26,237,219, 0,178, 44, 45,251,160,129, 67,112,238, +244, 47,248,121,103,140,154,101,248,122,103,103,103, 22, 0, 82, 83,157,217,212,212, 42,246, 79,191, 98,123,141,144,189,181,226, +253,183, 71,188,175, 82, 87,124,179,110, 83,203, 67, 41,221,123, 60,135,238, 61,158,195,188,183, 63,178, 11, 12,242,247, 6,128, +253,251, 65, 7,117, 73, 57,186,236,147, 79,159, 95,177,226, 83,168,171, 13,168, 91,174, 39,253,110,202,177,172, 44, 24,185, 62, +235, 81, 44,163,168,171,120,255,253,174,218,138, 10,151, 65, 31,126,232, 44,248,224, 3, 94, 75,206,240, 13,239, 95, 75, 56,175, +221,190,125,108,246,235,175, 23, 46, 95,182,108,212,230, 45, 91,100,221,186,117, 67,113,113, 49,252,253,253,225,233,233,137,248, +248,120, 28,216,183, 79, 83, 85, 93,189, 20,192,247,150,112,238, 58,126, 60,221, 47, 40,168,108,203,150, 45, 30, 17, 17, 17,132, + 70,163,129, 74,165,130, 74,165,130,193, 96, 64,109, 64,104, 54, 35, 51, 51,149, 36,201,205,150,150,157, 46, 45,149,174,232,215, +175, 64,196, 48,171, 38,140, 31,191,112,197,231,159, 75, 58,119,238, 76, 24, 12,134,122,171,150,201,100,130,181,181,181,201,104, + 52, 58, 1,208, 90,194, 41,217,190,157, 42, 45, 45,133,139,139, 75,125,184,166,134,113, 9,171,171,171,193,178, 44, 23, 76,183, + 13,104, 86, 33, 57, 56, 56, 92, 23, 8, 4,237, 27, 90,183,154, 90, 59,175,225, 49,146, 36, 11,202,202,202,122, 55, 82,188,205, +249, 67,249, 0,248,207,240,225,195, 39, 44, 88,176,128, 72, 76, 76,196,161, 67,135,216,172,172,172,253,181, 86,172,172, 22,222, +116,154,227,180,145, 72, 36,239, 90, 89, 89,133,214,133,112,144,203,229,119, 52, 26,205,153,218,225,194,234, 54,112,218, 74, 36, +146,249, 86, 86, 86, 97,181,203,175,192,198,198, 38, 73,163,209,196, 27, 12,134,245,104,126,161,234,150, 56,101,118,118,118, 95, + 58, 59, 59,191,252,193, 7, 31, 56, 93,184,112, 65,113,238,220, 57, 81, 85, 85,213,110,163,209,216,210,162,210,127,225,116,116, +116,188,206,231,243,219,255, 77,117,132,238,221,187,199, 69, 69, 69, 69, 76,157, 58, 21, 36, 73,226,251,239,191, 71,124,124,252, +177,123,247,238, 69,154,121, 27,109,204,233,220,190,125,251,196, 57,115,230,116,152, 50,101,138,220,193,193, 1, 2,129, 0, 26, +141, 6,247,238,221,195,205,155, 55,217,195,135, 15,215,220,184,113,163, 64,171,213, 14, 5, 80,214,138,235,249, 56,111,205,143, +112, 10, 4,130, 33, 94, 94, 94,123,150, 47, 95,110, 19, 22, 22, 38,115,114,114, 2,159,207, 7, 73,146, 80, 40, 20,184,123,247, + 46, 78,157, 58,165,217,191,127,191,166,188,188,124, 10,128,243,255, 31,249,124,146,156, 1, 93,241, 73,163,133,162,155,141,246, +110, 38,173,217,124, 14, 31,226, 62,118,210,132, 49,163, 1,224,215, 3, 39, 78, 90,176,168,116,179,249, 52,151, 87, 75, 56,253, +187,240,150, 39,167,220,125, 36,160,101, 80, 96,112, 70, 64,183,241, 95, 88, 66,212, 32, 50,252, 35,101,111, 48, 28,219,208,166, +251,200, 48,107,128, 15, 34,199, 78,122, 33,226,163,165, 75,240,159, 47,163,113,248,215,216, 99,169, 89,143, 44, 19,244,212,181, +165,191,153,147,248, 66, 32,120, 78,238,238, 62,120, 29,195, 44,185,117,247,174,117,195, 23,182, 58,203,115,195,151, 74, 15, 15, + 15,165, 66,161,104,103, 9,103,228,183,223,154,180, 86, 86,146, 37,171, 86, 13,169,209,235,135,172, 88,177, 66,112,237,218, 53, +108,250,238, 59, 74, 95, 80, 16, 83, 10,204,111,102, 52,164, 89,206, 14,243,231, 75, 23,109,218,244,170, 79,151, 46,174,175,188, +242,138, 80, 40, 20, 66,163,209, 32, 63, 63, 31,167, 79,157, 50,166,164,166,166,168,213,234,231, 1, 20, 89,202, 25,249,237,183, + 38,123, 31, 31,200, 93, 92,216,179, 9, 9,118,179,223,125,119, 78,199, 78,157,236, 70,141, 30, 45,180,181,181, 69,101,101, 37, +178,179,179, 17, 27, 27,171,172,169,169,241, 0, 64, 91,194, 25,243,251,239,221,143,159, 63, 63,241,139, 47,190, 16, 7, 7, 7, +195,206,206, 14,213,213,213,184,123,247, 46,206,159, 63,111,216,188,121,179, 74,165, 82,205,161,105,250,200,223, 88,239,255, 6, +171, 86, 29,182,154, 21, 90,255,197, 27,176, 55,128, 79,106,183, 63,135,249, 53, 3,255, 77, 15, 31,111, 71, 71,199,173,122,189, +158,213,233,116,179, 1,228,253, 3,243, 41,232,221,187,247, 38,165, 82, 57,128,101, 89,216,217,217, 93, 74, 78, 78,158,139,102, +102,222,152,225,228, 3, 24, 96,109,109,221,207,198,198,102,136,193, 96, 8,168, 29,126, 75,213,104, 52,231, 77, 38,211,213, 90, +235, 19,253,255, 92,118, 62,128, 48, 15, 15,143,215, 25,134,233, 66, 16,132, 61, 77,211, 32, 73,178,138, 97,152,123, 42,149,106, + 59,128,248,127, 64, 62,159, 8,103,224, 51,120,129,229, 33,160, 57, 65,240,136,208,106, 36, 32, 8, 6,169, 41,247, 17,219,138, +124,242,198,132,122,109, 4, 30,206, 76,132,121,231,218, 63,133,150, 5,226,165,213, 34,243, 25,254, 12,150, 96, 31,225, 36, 88, + 34,207,191,251, 11, 63, 63,142,208,178, 20,129,190, 24, 2, 22, 3, 24, 22, 87,211,238,225,220,191,248, 89,247,196, 56,255, 3, + 56,126,231,224,112,137, 39, 16,184, 1,224,213, 90, 95, 24,134, 32,104,150, 32,168,134,195, 91,141, 94, 44, 91,228, 52, 1,221, +132, 18,137, 23, 77, 81,237,138, 1,235,227, 52,253,172,158,101,107,218, 3,159, 36, 1,233,109,201,167, 9,232,198,151, 72,188, +143,179,236,216, 82, 43,171,238, 74,157,206, 5, 0,107,109,101,149,170,214,104,118,234,245,250,141,248,235,200,133, 89, 78,145, + 68,210,158,166,168,118, 0,192, 19, 8,148,123, 13, 6,175, 2, 91,219, 87,244, 6, 67, 7,107,107,107,210,104, 52,170,245,122, +253, 84,138,162,206,182,166,236,247, 40, 42,240,119, 30, 47,196,100,101,229,100, 34, 8, 43, 35, 69,153,140, 38, 83,190, 94,175, +191, 3,224,107, 0,247,255,230,122,231,208,198,155,133,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,191,159, 83, 14,192,187, +246,101,241,105, 44,251,191, 9,150,249,104,113,224,192,129, 3, 7, 14, 28,158, 26,104,209,132, 79, 22,135,255, 95, 16, 45,168, +210,214,152, 4,219,162,108,207,112,156, 28, 39,199,201,113,114,156, 28, 39,199,249, 63,199,105,142,251,105, 28,146,108,118,173, +195,191, 27,156,249,151,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,255, 89,240,184, 75,208, 44,218,213,126,158,116, 90, 14, +255,238,182,208, 24,158,181,159,214,164,119,231, 46, 57, 7, 14, 28, 56,112, 66,235,239,238,180, 30,167,115,123, 92,225, 19, 77, + 16, 40, 34, 8, 20, 1,136,126,130,105,205,193,195,217,217,249,157,192,192,192,152,118,237,218,205, 3,224,218,202,243,187,202, +229,242,245, 86, 86, 86,137, 86, 86, 86,137,114,185,124, 61,128,174, 79,168,222, 8, 0,179, 37, 18, 73,130,187,187,123,161, 88, + 44, 78, 0, 48, 7,109,159,185,234,135,135,113,210, 62, 7,208,189, 53, 39,186, 6,141,221,231, 18, 52,246,182, 75,208,216,187, + 78,193, 81, 93, 93,130,198,222,117, 9, 26,123,219, 53,104,236,190,191,161,189, 62, 78,253, 70, 19, 4,242, 8, 2,121, 22,158, +251, 53, 1,228, 19, 4, 10,158, 64, 91,226,192,129, 3, 7, 14, 79, 27, 60, 60, 60, 38,184,187,187,159,113,119,119,143,247,240, +240,152, 96,193, 41,161, 77,116, 60, 52, 65,128, 54,211,145,180,148,206,156,185,178,225,185,107, 44, 44, 90, 67,206,118, 4, 1, +154,173, 5, 65,128,113,117,117,221,224,238,238, 30,221,248,227,234,234,186,129, 32,192, 52, 72, 75, 55, 16,120,173, 53,171,182, +155, 54,109,218,175,149,149,149,113, 70,163, 49, 46, 51, 51, 51,110,232,208,161,123, 27, 89, 55,154,229,148, 74,165, 47,245,237, + 55,224,198,249,139, 87, 51, 51,238,229, 20,165,164, 63,200, 57,122,242,236,181,224,110,221,255,144, 74,165, 47,181,162,142, 8, + 0,179, 5, 2, 65,130,181,181,117,129, 64, 32, 72, 0,240, 38,159,207, 63,178,114,229,202,156,228,228,228,146,223,127,255,189, +234,252,249,243,133, 51,103,206,188, 71, 16,196,209, 38, 4,123,104, 19, 86,154,198, 86,157,101,185,185,185, 39, 21, 10,197, 41, +153, 76,246,165, 5,233,235, 57, 93,130,198,222, 86,170, 76,172, 82,101, 98, 93,130,198,178, 13,182,111,183,242,154,155,171,163, +191,180, 5,137, 68,226,109, 70,208,135, 54,119, 46, 0,183,218,223,122, 3,248,182,246, 83, 55,245,220, 77, 42,145, 60,169,182, +244, 36,202,206,113,114,156, 28, 39,199,249,223,230,124,154,209,171,246,219, 29, 15,253,181,234,251,238,214,206, 58,124, 43, 51, + 51,211, 26, 0,124,125,125,231, 2, 56,208, 26, 33, 65, 16, 88,196, 48, 44, 15, 0,120, 60,226,195, 97,195,134,247,146,201,100, +143, 68, 65,214,233,116,226,132,132,115, 35, 24,134, 37,106,211, 45, 98, 89,172, 7, 80, 98,233,127, 24,141, 6,158, 80, 40, 6, +143, 71,188, 31, 28,220,173, 99, 89, 89,217, 5, 30,143, 23, 83, 88, 88, 88,217,106, 51, 14, 65, 96,219,182,109,190,238,238,238, +127,137,214,172, 80, 40,196, 99,199, 62,223, 42,190, 25,128,196, 32,145,244, 19, 17,132, 59, 77, 81,246, 0, 32, 16, 8, 42,175, +137,197,189,255,243,197, 23,114,130, 32,152,242,242,114,232,116, 58,188,247,222,123,178,148,148,148,113,101,101,101, 27,205,208, +250,118,239,209,235,189, 83,167, 78, 6,168, 43, 42,245,219,190,217,114, 67, 39, 16,105, 59, 5,250,139, 54,109,221,233, 48,235, +213,169,111,167,165, 37, 39,161,233,229, 72, 26,130, 7, 32,246,221,119,223, 13,138,140,140, 20, 87, 87, 87, 75,117, 58, 93,199, +152,152,152,143,123,247,238,109,221,179,103, 79,241,158, 61,123, 8,149, 74, 5,150,101,229,254,254,254,236,228,201,147,245,123, +247,238,157, 7, 96, 67, 11,194,119,209,195,107,201, 91,231,231,231,183, 28, 0, 50, 51, 51, 69, 13,174,177, 48, 32, 32,192, 10, + 0,210,211,211, 63, 99, 89,230, 93, 0, 96, 89,172, 6,176,164, 56,216, 47,198, 0, 0, 32, 0, 73, 68, 65, 84, 9,211, 90,102, +208,160, 73, 0,129, 46,201, 23,127,149, 6,133, 76,210,131,197, 61, 2,200,172,125, 33, 88, 1, 52,136, 11,245, 40, 82,139,138, +138,218,180, 54, 97, 68, 68, 36, 65, 16,196,254, 27, 55,110, 28, 80, 42,149,157, 24,134,126,163,165,124, 54,106, 71,132,147,147, +211,140,178,178,178,104, 0,175,167,166,166,246, 2,128,128,128, 0, 17,128,235,182,182,182, 3, 77, 70, 35,193, 61,171, 56,112, +224,192,225,169, 21, 90, 55, 1, 68,224,207, 37,120,182,182, 69,104,137, 1,224,194,133, 11, 0, 32,105, 67, 70,136,134, 2,102, +254,252,249,112,119,119,111, 44, 94,144,152,152,240, 56,133,125,228, 63, 62,255,252,115,235,170,170,170,208, 31,126,248, 97, 48, +203,178,107,138,138,138,174,152, 57,191,132,101,177,154,199, 35, 62, 36, 8, 2, 18,137, 52, 99,206,156, 57, 55,107,127,235,120, +244,232, 81,121, 84, 84,148, 22, 64, 14, 0, 72, 36, 82, 79, 62,159,231,203,178,108, 93,135,219,172, 32,156, 8,248, 80, 98,241, +240,217,223,126, 75, 61, 27, 21, 37,176,114,113, 33, 0, 32, 39, 45,205,105,245, 87, 95, 13,172,204,202, 18,235,156,156,202,203, + 53, 26, 93, 70, 70, 6, 36, 18, 9,193,231,243,159, 53, 87, 96, 43, 43,171,119,190,248,207, 42, 43,117, 69,149, 78,175,174, 54, +242, 41,210, 96, 35,147,211, 37,197,202,114,107,153,149,246,195, 79, 62, 21,191,245,198,244,119, 52, 26,205, 92, 51, 84,243,222, +127,255,253,128,190,125,251,122,238,219,183,143, 80,169, 84, 16, 8, 4,214, 61,123,246, 68,239,222,189,233,115,231,206, 17,157, + 58,117, 66,112,112, 48, 46, 94,188,136, 75,151, 46, 17,189,122,245,146, 31, 60,120,112, 26, 73,146, 27,204,137,107, 62,159,247, +158,191,191,127, 79, 43, 43, 43,163,175,175, 47,222,120,227, 13,176, 44,139,208,208,208, 96,107,107,235, 3, 26,141, 70,156,158, +158, 54,216,156,200, 86, 38, 31,158, 92,103,217, 2,208, 13, 44,238,149, 38, 31,110, 56,252, 24,144,158,158,254, 92,101,101, 37, + 30,214, 11, 91,191,128,249,224,193,131, 91,211,150, 74, 88, 22,171,163,162, 34, 63, 4, 8, 34, 52, 52,180,106,222,188,121,188, +180,180,180,151, 95,120, 97, 92,112,102,230, 61,180,144,207,134,237,136,152, 49,227,213, 18,107,107,235,241,251,247,239, 79, 87, + 40, 20, 2,145,168, 94,103,242, 93, 93, 93, 93,124,125,125,223,116,116,116, 84,242,121, 60, 87, 22, 44,107,174, 45,113,224,192, +129, 3,135,127, 20,142,213,138,171, 99,141,127, 16, 0, 64, 92, 92, 92,125,100,218,200,200,200,102,223,170, 89,150, 45,185,117, +235,150,151, 86,171, 5,203,178,150,116, 2, 13,167,104,150, 16, 4,111, 19,143, 71,204, 37, 8, 2,193,193,221, 30,172, 91,183, +174,169, 53,189,140,193,193,221, 30,240,249,188,206, 44,203,130, 32,120,223,179, 44, 83,210, 12,103,147, 29,163, 88, 44, 89, 4, + 0,110,110,238, 89, 39, 78,156, 48, 78,156, 56, 17, 95,125,245,149,104,241,226,197, 11, 5, 2,193,188,188,188,188,226, 22,242, + 9, 0, 75, 92, 92, 92,229,219,182,109,243,157, 51,103,206, 77,133, 66,177, 4, 0,220,221,221,163, 1, 4, 2,200,105,112, 12, +155, 55,239, 45,124,227,141, 55, 50,148, 74,229,146,230, 56,199, 3,207,120,249,251, 15, 95,113,225, 2,203, 51, 24,136,178,223, +126, 83,151,150,148,144,247, 75, 75,229, 59,174, 95,143,252, 56, 58, 90,232,229,237,141,196, 35, 71,156,203,180,218, 82,149,193, +160, 47, 41, 41, 97, 41,138,186,100, 65,217,131, 92, 93, 92,229, 91,190,254,254,154,141,144,207,184,182,247, 36,132,142,142, 2, +158,220, 86,204, 23,240, 12,157, 59,118, 21, 3, 8, 50, 87, 71, 34,145,104,218,200,145, 35,229,123,247,238, 37,130,131,131, 97, +111,111,143,223,126,251, 13, 73, 73, 73,168,172,172,228,145, 36,137, 62,125,250, 96,213,170, 85,240,246,246, 70, 85, 85, 21,242, +242,242,156,197, 98,177, 11, 73,146,205, 93,207, 71,218,211,162, 69,139,224,238,238, 14,138,162, 80, 81, 81, 1,138,162, 96,109, +109, 13, 0, 40, 40, 40,192,145, 35,135, 45,105, 75,102,193,178, 44,250,247,239, 95, 77, 16, 68,106, 99,139, 86,107, 56, 61, 61, + 61,247,148,150,150,141, 25, 62,124, 56, 42, 43, 43,201, 79, 63,253, 20,221,187,119,135,175,175,175, 37,249, 92, 34, 18,137,127, +232,208,161,195,215,243,231,207,119,119,116,116,132,193, 96,248,184,184,184, 24,111,190,249, 38, 0, 32, 60, 60,188,187, 80, 40, + 60, 49,115,230, 76,116,234,212,169,176,162,162, 34,239,198,141, 27,111,104,181,218,187,109, 45,187,133,224, 56, 57, 78,142,147, +227,252, 71,113, 90,170, 69,254,161, 80,224,209,112, 14, 91, 31, 17, 90,145,145,145, 68, 92, 92, 28,107, 65,193,202,219,183,111, +239, 37,147,201, 0,160,188,181,185, 96, 24,102,158,147,147,147,114,201,146, 37,131,124,125,125,141,243,230,205,187,155,147,147, +179,180, 97,154,142, 29, 59,126,249,221,119,223, 33, 35, 35, 35, 39, 58, 58,250, 98,121,121,121,107,215, 49, 91,204,178, 88, 87, +107, 29, 43, 59,114,228, 72,247, 11, 23, 46,204,253,230,155,111, 92,222,122,235, 45,209, 59,239,188, 51, 21,192, 87,230, 72,248, +124,190,182,169,225,194,166,224,238,238,110,228,243,249,205, 6,137,139, 4,100, 82,177,120,216,138, 11, 23, 88, 99, 78,142,246, +199,181,107,109,182,252,241,199,114,146,101,219,185,186,186, 34,100,224,192, 26, 41,159, 95,166, 44, 46,102, 92,159,121,134,159, +125,226,132,179, 78, 44, 46,218,187,119,175,170,188,188,252,144, 89, 19, 30, 65,168, 25,150, 53, 90,183,247, 38, 39,142, 11, 11, +190,118, 53, 41,205,198,213,153,215,171,103,112,247,180,140,156, 27, 96, 24, 19, 65, 16,106,115, 60,118,118,118,190,229,229,229, + 80,171,213,112,113,113,193,186,117,235,224,230,230, 6,173, 86,139,228,228,100,182,125,251,246,196,133, 11, 23,208,190,125,123, +148,150,150,194,104, 52,162,186,186, 90,105, 48, 24,154, 91,155,177,132,199,227,255,196,227, 17,175, 18, 4,129,206,157,125,114, + 55,110,220,104,100, 24, 6, 1, 1, 1,120,225,133, 23,112,240,224, 65, 36, 39, 39,215, 89,158,140, 29, 58,116,204,229,241,136, + 14,181, 90,169,205, 86,157,186,165,125,138,138,138,198,183,241,166,225,121,120,120, 76,237,210,165,203,220,151, 94,122,137, 20, +139,197,208,104, 52,117,215,130, 28, 51, 38,188, 42, 42, 42,210,238,216,177, 99, 45,230,211,104, 52,102,169, 84,170,215,223,127, +255,253,152,205,155, 55, 59, 44, 93,186, 20, 12,195,128,101, 89, 80, 20, 85,191,232, 55,195, 48,136,141,141,197,253,251,247,191, +108, 36,178, 56,112,224,192,225,127, 2,173,208, 34,255, 68,184,227,225,176, 33, 26,139,173,255,122,100,120, 62,159,191,229,244, +233,211, 61, 7, 15, 30, 44, 24, 49, 98, 68,240,201,147, 39,131, 11, 11, 11,239,214, 90, 15,130, 71,140, 24, 17,236,234,234,138, +245,235,215,107,249,124,254,150, 54,254, 77,125,167, 87, 92, 92,124, 19,192,154,131, 7, 15,174,158, 61,123, 54,220,220,220, 2, + 21, 10,197,127,181,204,182, 18, 73,175,153,235,214, 81, 66,146,228,125,187,102,141,237,218,132,132,213,251,126,253, 85,208,191, +127,127,130,101, 89,220,185,125, 91,182,106,195, 6,249,148,113,227,114,210,179,178,168,195,167, 78,145, 37,133,133, 21,133,165, +165,203, 0, 84,152,227, 39, 73,242,114,102,102,166, 71,200,144,254,158,231,255,184,155, 52,113, 92,248,112,161,128, 71,220,203, + 41,184,238,238,230,108,151,152,112, 70, 71,146,228,101,115, 60, 26,141, 38,155,162, 40, 71,150,101, 93, 18, 19, 19,225,226,226, +130,202,202, 74,144, 36, 9,163,209,104,212,106,181,210,242,242,114,232,245,122, 24, 12, 6,216,218,218,226,206,157, 59, 37, 20, + 69,157,107,142,147,166,233,153, 18,137,228,115,161, 80, 40, 22,137, 68, 69,215,175, 95,135, 90,173,238,104,111,111,255, 21, 69, + 81, 40, 42, 42,194,133, 11, 23, 62,176,181,181,205, 1, 0,169, 84, 10,177, 88,226,100, 48, 24, 40, 0,133,109,189,230, 44,203, +182,185,190,220,220,220,188,101, 50,217,138, 15, 63, 92, 20,208,163, 71, 79,148,150,150,130, 97, 24, 88, 89, 89, 65,171,213,194, +214,214, 22, 3, 6, 12,200, 94,177, 98,133,130,101, 49,203,156, 24, 84, 42,149,165, 2,129, 96,222,236,217,179, 63,247,245,245, +237,204,178, 44,186,118,237,138,145, 35, 71,226,196,137, 19,200,200,200,128, 70,163,161,175, 92,185,242,139, 66,161, 56,202, 61, +110, 57,112,224,192,225,169,195, 95,124,179, 30,177,104,253, 55,161, 84, 42, 75,211,210,210, 78,222,184,113, 35,114,242,228,201, + 72, 76, 76,156, 1,224,125, 0,144, 72, 36, 51, 38, 79,158,140, 27, 55,110, 32, 45, 45,237,164, 82,169, 44,125, 18,255, 41, 22, +139,245, 70,227, 67,227,148, 84, 42,149,182,242,244,142,181, 67,134, 0,208,177,133, 99,205,155, 70, 4, 2,247,110,163, 71, 11, + 42,147,146,212,219,174, 94,253, 60, 38, 38, 70, 48,104,208, 32,130, 52,153, 64, 51, 12,124,124,124,136, 17,161,161, 86, 63,197, +196, 56,210, 26,205,133, 47, 62,252,240,183,173, 51,103,214,100,214,250,129,153,131,193, 96,216, 48,247,205,215, 67, 19, 18,127, +243, 12,244,127,198,241,228,233,132,155, 78, 78,118,114,223, 46, 93,172,202, 43, 43,232,165,139, 63, 16, 24, 12,134,111,205,241, +232,116,186,216, 51,103,206,140,243,242,242,114,185,123,247, 46,140, 70, 35,104,154,198,136, 17, 35,192,178,172, 4, 0, 35, 16, + 8,144,150,150, 6,147,201,164,204,204,204, 44,186,119,239,158, 4,192, 74, 51,249,203, 53, 24, 12, 72, 77,125, 56,106,215,190, +125,251,176,136,136, 8, 80, 20,133,209,163, 71,227,240,225,195, 97,169,169,169,107, 27,106,190,199,173,243, 90, 11, 89,128,135, +135,199,193,218, 67, 22, 57,193,123,122,122, 6,251,248,248,108, 94,185,114,165,168,125,251,246, 96, 89, 22, 14, 14,246,208,106, +181, 40, 43, 43, 71, 96, 96, 32,188,188,188,176,114,229, 74, 0,248,197, 82,139, 91, 81, 81,209,189,162,162,162,201, 74,165, 82, + 84, 85, 85,213, 59, 44, 44,108,125,104,104, 40,110,222,188,137,223,126,251,109,138, 68, 34, 81,154, 76, 38,202,205,205,109, 22, + 65, 16,182, 38,147,105,119,121,121,185,130,123,118,113,224,192,129,195, 83,129, 58, 31, 45, 52,248,110,157, 69, 43, 32, 32,192, + 42, 39, 39,231,149,142, 29, 59,138, 1, 64, 38,147, 5,250,248,248, 44,204,202,202,170,110,109,110,180, 90,237,190,152,152,152, +145, 95,127,253,181, 40, 60, 60,252,153,131, 7, 15,246, 5,128,240,240,240,103,108,108,108, 16, 19, 19, 99,210,106,181, 79, 44, + 38, 18, 73,146,131,251,244,233,131,138,138, 10,228,228,228,180,106, 88,230,232,209,163,114, 60,244,203,106,241, 88, 75,160,140, + 70, 7,123, 79, 79, 94, 97, 66,130,169, 66,173,118, 31, 60,100, 8, 65,154, 76,224,241,120, 40, 47, 47, 71, 94, 94, 30,236,236, +237,137,180,204, 76,235,237,139, 22, 29,237,216,163,135,152, 54, 26,157, 90,145, 77, 77,153,178,228,213,183,231,189, 21,187,123, +247, 47, 46, 85,106,245,125,153, 76,110,144, 72, 68,110,243,223,126,155,174,168,168,152, 14,160,198, 2,158,149,187,119,239, 30, + 61,122,244,232,219,222,222,222,174,165,165,165,110, 85, 85, 85,116, 69, 69, 5, 31, 15,125,173, 8, 0, 72, 72, 72,128, 90,173, +166,104,154,190,128,135,177,176,140,150,102,180, 67,135, 14,118,189,123,247, 30,234,226,226, 2,149, 74, 5, 39, 39, 39,244,236, +217,115, 40,159,207,255, 33, 55, 55, 87,245, 36, 91,125,124,124,188, 13,203,178,207,177, 44,139,209,163, 71, 91,116, 14, 77,211, +175, 69, 68, 68,136, 8,130,128, 78,167,133, 84, 42,131,149,149, 53,108,108,108,225,235,235,135,162,162, 34,140, 26, 53,202,120, +255,254,253, 77, 10,133,162,213,109, 84,165, 82,141, 29, 48, 96,192,130, 55,223,124, 19, 20, 69, 97,236,216,177,200,207,207, 95, +155,157,157,189,215,195,195, 99,234,107,175,189,230,226,228,228,132, 5, 11, 22,200, 0,124,198, 61,187, 56,112,224,192,225,169, + 64, 99, 31,173,191, 90,180, 90, 26, 19,117,115,115, 11, 33, 8,226, 99,157, 78, 39,174, 27,146, 33, 8, 66,236,226,226,114, 88, +167,211, 69, 43, 20,138, 86, 57,197, 85, 85, 85,169, 31, 60,120,112,248,242,229,203,147,198,143, 31,143,248,248,248,233, 0, 48, +126,252,120, 92,190,124, 25, 15, 30, 60, 56, 92, 85, 85,165,126, 18, 37,247,244,244, 28, 51,100,200,144,241,125,250,244, 65, 92, + 92, 28,104,154,190,212,154,243, 27,206, 48, 68, 19,179, 14,235,142, 89, 68,198,231,131, 32, 8, 80, 20, 5, 0, 40, 43, 45, 69, + 70,122, 58, 42, 42, 43, 97,208,235,161,209,106,105,223, 78,157,116, 42,163, 81, 72, 0,173, 29,251,202,189,113,237, 74,158, 86, +163,113,117,114,112,212,201,229, 18, 84,169, 85,162,235,215,174,212, 0,184,111, 33,135,145,101,217, 33, 39, 78,156, 88,198,231, +243, 39, 91, 91, 91, 99,238,220,185,252,161, 67,135, 66, 36, 18,193, 96, 48,160,170,170, 10, 49, 49, 49,165, 52, 77,119,174, 61, +199, 90, 46,151,239,228,243,249, 5,213,213,213, 31,155,253, 3,163, 49, 60, 50, 50, 82, 96, 52, 26,241,197, 23, 95, 96,249,242, +229, 24, 61,122,180,224,218,181,107,225, 0,118, 63,169, 22,207, 48, 12,194,194,194, 26, 58,195,167, 90,114,158, 80, 40, 12,238, +210,165, 11, 74, 75, 75, 81, 90, 90, 10, 23, 23, 23,120,120,120,192,205,205, 13,107,215,174,101,215,175, 95,127,210,100, 50,109, + 42, 43, 43, 43,105, 67, 91,156, 53,125,250,244, 89,147, 38, 77, 66, 77, 77, 13, 46, 95,190,140,129, 3, 7, 98,245,234,213,238, + 23, 46, 92,120,191, 79,159, 62, 16, 10,133, 72, 76, 76, 4, 69, 81,249,220,115,139, 3, 7, 14,255,107,120, 74,253,179, 90, 68, +139, 22, 45, 47, 47, 47,123,154,166, 63,136,136,136, 8, 27, 55,110, 28, 70,141, 26,245,200,239,187,119,239,182, 57,112,224, 64, +244,134, 13, 27, 70,155, 76,166,149,173, 25,234, 99, 24, 38,118,247,238,221,225,253,251,247,151, 15, 27, 54,204, 7, 0, 36, 18, +137,113,247,238,221, 90,134, 97, 98,219, 80,150,186,224,142, 37, 0,224,225,225,209, 93, 32, 16,140, 31, 51,102, 76,247, 87, 95, +125, 21,201,201,201,136,137,137,185,231,235,235,123,177,164,164, 85,125,100,142,153, 89,135,209,230,172, 91,124,177,184,188,170, +184,216,222,218,219, 91,232, 96, 99,163,136,139,139,243, 10, 13, 13, 37,242,243,243, 81, 89, 89, 9,189, 94,143,107,215,174, 49, + 2, 32, 87,224,224, 64,228, 94,190, 76,240,197,226,114, 60, 58,147,207, 44,188,220, 29,186,126,178,120, 78, 71,189, 65, 31,164, + 82,169, 40,129, 80, 40,108,239,102,159,159,126,191, 85, 35,113, 6,185, 92,222, 27,128,128, 97, 24,173,163,163,163,252,244,233, +211, 16,139,197, 32, 8, 2,221,186,117,131, 84, 42, 21,177, 44,155, 7, 0, 54, 54, 54,226, 45, 91,182,216, 77,157, 58,245, 55, +115,196,189,122,245, 18, 74, 36,146,231,125,125,125,113,249,242,101,220,189,123, 55,247,242,229,203, 29,122,245,234, 5,111,111, +239,231,221,221,221,127,189,121,243, 38,249, 36, 26,246,195, 25,171,173,119,134,167,105,154, 33, 8, 2, 60, 30, 15, 12,195,160, +180,180, 20,157, 59,119,198,198,141, 27,177,110,221,186, 47, 20, 10,197,145,182,228, 39, 32, 32, 64,212,185,115,231,233,147, 38, + 77, 66, 86, 86, 22,162,163,163,203, 20, 10, 69,194,169, 83,167, 38,188,249,230,155,252,129, 3, 7,162,188,188, 28, 63,253,244, + 19,117,253,250,245, 31,139,139,139,119,113,143, 92, 14, 28, 56,112,248, 23, 11, 45, 47, 47,175, 73, 34,145,104,193,139, 47,190, +200,247,243,243, 67, 73, 73, 9,108,109,109, 73,130, 32,132, 0, 96,111,111, 79,202,100, 50,204,153, 51, 7, 61,122,244, 8, 89, +180,104,209, 64,129, 64,176,177,168,168,104,167, 37,127,172, 84, 42,181, 60, 30,111,255,220,185,115, 87, 38, 37,221,236, 12, 0, +127,252,241,199,131,162,162,162,197, 74,165, 82,219,202,114,212, 5,197, 36, 36, 18,233,213,174, 93,187,102,247,238,221,219,118, +220,184,113,112,113,113,193,141, 27, 55,176,106,213,170, 76,163,209,184,236,252,249,243,212,127,251, 34, 83, 6, 67,241,245, 67, +135,108,134,190,252,178,237,252,136,136, 53,111,205,157,251,245, 39,159,124, 34,240,243,243, 35,180, 90, 45,174, 94,189,202, 30, + 56,112,128,252,233,243,207,215,193,202, 74,120,249,192, 1,177,209,104,204,109,165,181,100,200,160,193, 33,126,107,190,222, 0, +189,174, 6, 87, 47, 29, 67,101,101, 41,182,108, 61,232,231,233,201, 14, 41, 44, 44, 60,111, 41, 23, 65, 16,190,241,241,241,174, + 44,203, 66, 44, 22, 99,197,138, 21,240,240,240,128,173,173, 45,170,171,171,241,254,251,239,219,189,251,238,187,118, 0,144,156, +156, 92, 31,158,193, 28,138,138,138, 6,204,153, 51,199,134,162, 40,156, 60,121,210, 72, 16,196,199,103,206,156,249,161, 91,183, +110,226,144,144, 16,155, 93,187,118, 13, 4,144,248,164,132, 86, 27,207,187,119,250,244,233, 62,147, 39, 79,102,133, 66, 33, 81, + 85, 85, 5,123,123,123,108,220,184, 81,163, 80, 40,142,181,185, 13, 80,148, 88, 46,151,139, 89,150,197,254,253,251,145,155,155, +251, 90,121,121,121, 49, 77,211, 7, 63,248,224,131,133,126,126,126,157,210,211,211,115,171,171,171, 87, 43,149,202,108,238,209, +196,129, 3, 7, 14, 79, 21,234,156,224,235,102, 31, 30,195,195,225,196,230,133, 22, 77,211,115, 78,157, 58,197,103, 24, 6, 91, +183,110,197,245,235,215, 89,185, 92,254,177, 92, 46,255, 78, 38,147,209, 58,157,110,246, 27,111,188, 49,117,249,242,229,188,144, +144, 16, 92,190,124,153,215,185,115,231,233, 0, 26, 10,173, 80,180, 16,107, 67,165, 82, 93, 43, 41, 41,238,220, 32, 64,101,103, +137, 68,122,205, 76, 97, 26,115, 54, 14,138,217,111,197,138, 21, 26,119,119,119,227,221,187,119,177,121,243,102,230,250,245,235, + 9, 98,177,120,139, 66,161, 48, 88,200,249, 36, 80,207, 41,166,168, 27, 63, 47, 92, 24,240,236,216,177,204,235, 11, 22,212,136, +100,178,119,214,108,216,176,168,170,186,218, 3, 4,193, 58,217,217,229,110, 93,177, 34,122,244,243,207,215, 36,159, 63, 47, 77, +138,143, 23,186,144,228,173,214,228,179,176,176,240,124, 98,226,111,216,177,237,107,152, 76, 6, 40, 10, 31,234,180,178,114, 21, +204,136,172,191,112, 82, 20,165,154, 48, 97,130, 8,128,108,218,180,105, 98,165, 82,137,103,158,121, 6, 0,160, 86,171,113,236, +216, 49,248,251,251, 3, 0,238,220,185, 83,191,109, 46,159, 86, 86, 86,207, 15, 28, 56, 16,185,185,185, 72, 78, 78, 62,171, 80, + 40,202, 1,156,205,207,207, 15,239,211,167, 15, 98, 99, 99,163, 90, 16, 90,173,170, 35, 11,133,214, 95, 56,101, 50,217,226,131, + 7, 15,190,118,233,210,165,201, 11, 23, 46, 20,142, 24, 49, 2, 0, 80, 93, 93,173, 5, 64,183,133,179, 97,158, 72,146, 4,195, + 48,112,116,116,212,148,151,151, 67,169, 84,102, 43,149,202,185,247,239,223,111, 19,231,147,104,159, 28, 39,199,201,113,114,156, +255, 16,206,127, 3, 44,143, 12,207,178, 44,197, 48, 12, 18, 19, 19,113,240,224, 65,218,100, 50,205, 82, 40, 20,119, 26, 36,217, +112,227,198,141,248, 9, 19, 38,236, 76, 79, 79,231,167,164,164,128,101, 89,186, 53,185,209,235,245, 36, 65,252,245,216,227,150, +114,199,142, 29, 40, 46, 46, 54,229,231,231,159,161, 40, 42,246, 49,103, 47, 62,246,172,195, 29,128,225, 37,163,241,204,242, 65, +131,194,150,197,199, 75, 94,255,232, 35,195,140, 87, 95,253,128, 54, 26, 73,190, 72,196,136,173,172,120,180, 68, 34, 76, 62,127, + 94,186,254,205, 55, 29,117, 6,195,201,152, 86, 56,152,215, 89,180,134, 14, 13,193,140,215,223,131,174,129, 69,235,242,181, 12, + 24, 76,104,149, 69,203, 96, 48, 4, 41, 20, 10, 72,165,210, 60, 0,110,175,188,242, 10, 24,134,129, 78,167, 67,117,117, 53,138, +138,138, 84,175,190,250, 42, 93, 43,158, 4,227,199,143,183,181,132,215,199,199,199, 67, 40, 20,226,228,201,147, 16, 10,133,199, + 0, 64, 40, 20, 30,139,143,143, 15,159, 50,101, 10, 60, 61, 61,125,178,178,178, 8,152,241, 79,115, 13, 26,187,143, 5,186,130, + 64,151,135, 38, 56,116,113, 9, 26,123,155, 0, 50,107,163,198,167,246,234,213, 11,176,208, 47,171, 33,106, 39,119,172, 35, 73, +242,215, 69,139, 22,205,237,215,175,223,200,229,203,151, 19, 0,248, 79,226, 14,164, 40,234,177, 66, 79,112,224,192,129, 3,135, +127,180, 85,235, 47,104, 86,104, 17, 4,177,117,200,144, 33,179, 0,240, 9,130,216, 92, 84, 84,116,167,113, 26,133, 66,145,225, +225,225,241, 85,167, 78,157,102, 3, 96, 9,130,216,218,202, 76,149,176, 44, 86,241,120,196,162,135,226,174, 77, 1, 42,235,150, + 58, 89, 4,128,224,241,248, 59,111,222,188,249, 81, 94, 94, 94,169,133, 22,136, 22,241, 36,102, 29, 2,192, 47, 64,246,139,185, +185,167, 22, 4, 7,135,142,126,243, 77,116, 31, 61,218,214,163, 67, 7, 90,103, 50, 49,119, 46, 94, 36, 46,237,223, 47, 74,138, +143, 23,234, 12,134,147,177, 64, 94,107,243, 89, 88, 88,120,254, 92,194,249,211, 19,199,135,143,244,233,228,241, 80, 52,100, 23, +161,172, 66,117,186, 53, 34,171,145,232, 29,187,113,227,198, 35, 34,145, 72,208,112, 41, 27,147,201, 84, 97, 48, 24,130, 0,160, +178,178,210, 99,235,214,173,123,120, 60, 94,174, 57,190,148,148,148,195,203,150, 45, 27,159,147,147,115, 58, 63, 63, 63, 7, 0, +242,242,242,114, 72,146,220,169, 80, 40,198,231,230,230, 30,128, 5,147, 0, 88,160,107,242,197, 95,187, 1, 64,208,160, 73, 72, +190,248,171, 20, 64,183,160, 65,147, 0, 0,109, 93,203,176, 33,106, 67, 43,124,124,249,242,229,221, 35, 71,142,124, 3,143, 17, +211, 11, 0,140, 70, 35,169,211,233, 40,154,166, 5, 38,147,137, 53, 26,141, 36,247, 76,226,192,129, 3, 7,203,193,178,108, 31, + 0, 46,181,187,117, 6, 20,151, 70,219, 70,212, 46, 23, 88,247,248,173,221, 47, 37, 8,226, 90, 3,142,250,227, 22,156, 11, 0, +101, 0,110, 19, 4,209,156, 17,100,107,115,251,205, 10,173,162,162,162, 3,176, 96,209,104, 75,211,181,128, 37,181,235,196, 1, +109, 95,219,173,158,131,166,233,146,188,188,188,199,174, 80, 30,143,151, 29, 21, 21,213,170,244,230,210,236, 5,114,223, 54, 24, +118,197,125,251,109,207,147,155, 55,123,210, 20,229, 68, 0, 44, 95, 44, 46, 55, 26,141, 57, 46, 36,121,171,181,150,172, 71,172, + 49, 15, 10, 71,101, 61, 40, 68,151, 46, 93,216,123,247,238, 61,180,245, 60, 30,110,105, 52, 26, 47,115, 77, 64,171,213,134, 88, + 40, 6,127, 41, 44, 44,252,165, 9,193,190, 71,161, 80,236,177, 52, 83,245,139, 74, 3, 60,134, 96, 38, 6, 13,154,180, 31, 0, + 83,183,168,244,147, 68,113,113,113, 58,106,227,188, 61, 14,114,115,115, 13, 4, 65,252,188,106,213,170,105, 73, 73, 73,123,139, +138,138, 12,220, 99,147, 3, 7, 14, 28, 90, 39,178, 8,130,136,171,221,143,172, 53, 10,197, 53,222,174, 75, 83,151,174, 97,154, + 58,142,198,199, 91, 58, 23, 0, 22, 47, 94,252, 81,116,116,180, 28,128,165,139, 49,183,121, 81,233,191, 11, 37,255, 16,142,134, +162, 96,219,223, 81,208,111, 1, 35, 40,234, 10,168, 6, 62,249,228,147, 53,110,220,187,119,143,248, 55,223,112,117,139, 74, 55, + 64,240,211,144,239,156,156,156,141,222,222,222, 91,138,138,138, 40,112,224,192,129, 3,135,214,192,165, 41, 97,212,140, 40,139, +108,233,247, 71, 94,220,155, 72,215,212, 62, 65, 16,113,209,209,209,145,173,200,111,189, 69,139,199,213, 29, 7, 14,255, 61,252, +127,204,122,229,192,129, 3, 7, 14, 77,163,177, 21,171, 78,124, 53,222, 95,188,120,241, 71,104,121,196,201, 29, 15,173, 88,238, +181,251,245,254, 90, 4, 30,206, 28,104, 10,173,153, 77, 16,218,134,242,157,225, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, +127,142,211, 28,247,153, 38, 4, 81, 68,115, 67,125, 45, 13, 35, 54,222, 54,119,174,185,180, 4, 65, 52, 23,230,167,110,168,176, +241,247,223,142, 80,142,147,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,199, 1,203,178,125, 88,150,141,192,195, 9, 83, 44, +203,178, 17, 44,203,142, 94,188,120,241,146,186, 99,139, 23, 47, 94,194,178,236,136,186,116,181,105,234,207,169, 59,214,248,187, +241,177,150,210,182,144,197, 89,141,182,235,247,255, 41, 62, 90, 28, 56,112,224,192,129, 3, 7, 14, 77,162,110,198, 96, 3,107, + 83, 41,128, 59,209,209,209,149, 13,124,167, 74, 1,220, 2,208,163, 54, 93,105,173, 72,107,232, 91,101,172,221, 55, 54,145,198, +104, 73,218,102,176,181,153,109, 78,104, 53,135, 30,110,188,207,189,219,187,246,174,173, 0,176, 12, 3, 0, 96,106, 99, 32,177, +117,193,144, 24, 6, 44,203,162, 72, 89,117,227,142, 18,159,180,245,255,124, 61,224,232, 42,149,174, 99, 88,118, 80,237,161,243, +170,114,195,123,201,106, 84, 89,202,225,223, 14, 1, 82, 30, 62, 96, 88,116, 7, 0, 30,129,219,122, 6, 95,165,149,180, 62,158, + 84, 83,237, 60,200, 5,179,196, 50,249,139,118,246, 14, 93, 42, 43,203, 50, 77,122,195,175, 41,165,216,130,214,175,203, 8, 31, + 7, 60,199,176,248, 8, 0, 79,200,195,218,204, 10,139,103,114,112,224,192,129,195,227, 90, 71, 30, 43, 46, 30, 65, 16,116, 19, +156,196, 99,114,114, 1,246, 44, 16, 91, 77, 28,254,163,137, 99,215,254, 73,249,110,149,208, 10,116,193,155, 32,240, 41, 0, 22, + 44, 62, 75, 41,197,247,173, 58,223, 29,161, 82, 62,127, 59, 0,190,222, 68, 47, 96, 25, 92,104,242, 98,242, 48, 88, 42,226,175, + 5,192,232,105,122,102,138,194,114,127,177, 32, 79,140, 22, 48,188,159, 25,150, 21,210, 12,187, 19, 44,226,172, 69,248,253, 74, + 33,244,173,201,171,119,123,215,222,135,254, 80,140, 76,248,126, 62,250,117,127, 6, 44, 77, 1, 12, 9,121,200, 7, 56,251,205, + 43,232, 23,224, 13,150, 33, 1,134,130,245,152, 53, 24, 19,108,199,222, 81,182,109, 29,108, 95, 15, 56,118,112,118,189,187,109, +219,118, 55, 15,159, 64,130,161, 76, 72,255,227,244,212,119, 23, 45, 27, 30, 4, 85,176, 37, 98,171,187, 59, 94,247,238,232,247, +193,123,159,126,205,119,247,240,178, 98, 72, 3, 85,156,157,218,107,195,234,101, 7, 68,188,220,181,183, 21,216,110,105, 91, 14, +116,193,108,129, 68, 60, 73, 38,181,234,162,213, 86,223,163, 77,228,175, 60,161, 96,244, 87,107,214,245, 28, 26, 22,110, 77, 87, + 23,243, 72, 6,129,251,246,238,233,240,237,198, 77,225,119, 21,244,243, 0,152,214,148,153, 97,177, 40, 99,215,172,112,161,128, + 79, 4,188,182,141, 15, 80,109, 18, 90, 1,174,120,137, 96, 97, 54,188, 4, 75,224,183, 84, 37,126,105,203,127,248,187,226, 7, +130,133, 47, 8,236, 39, 88,236, 73, 41,133,146,123,228,113,224,240,239, 2,143,199, 75, 96, 24,102,216, 19, 22, 6,207,177, 44, +123,133,187,186,255,219,104,157, 69,139,192, 23,201,247,243, 29, 64,155, 16,228,235,243, 57,208, 58,161, 37,229,243,119, 94,203, + 44,113, 3,101,194,182, 47,231,238, 53,146, 0, 69,154, 64, 83, 36,104,138, 4, 69,153, 64,147, 36, 88,210,128,101, 63, 38, 0, +198,106,244, 14,238,186, 19,160,221, 45,253, 15, 33,203,251,249,198,197,211,142,132, 81,133, 95,190,143,126, 59,191,180,230,237, + 51,183,139,202, 2, 93,117, 75, 82,148,248,169, 53,130, 32, 97,243,124,196,196, 30, 43, 88,255,131, 38,141, 97, 89, 56,218,202, +252,166, 70, 38,123,237, 58,156,144,191,110,167, 62, 13, 0,236,172,196,126,211,111,103,122, 63, 78, 37,184, 74,165,235,182,108, +250,214,205,221, 73, 70, 80,151, 86,130,162,105,120,117,136,224, 47,153, 55,213,253,139,111,182,127, 3,181, 97, 70, 75,231,251, +185, 34,176, 99,167,128, 5, 59,143, 93,242,214,168,149,198,211,187, 63,186, 15, 3, 72, 55,207, 0,225,231,209, 95,243,151,126, + 56,255,125, 35, 93,112, 53, 93,137, 20,115,207,154, 0, 87, 28,142, 94,185,166,251,240, 49,145,214, 76, 77, 41, 95,175,169,241, +221,246,227,246, 79,253,187,247,149,135, 4,183, 23, 41,127,157, 67,232,170, 43, 96,226, 73, 37,195,131, 66,109,117,211,166,144, +219,118,196,204, 75, 81, 98, 67,107,202, 76,179,127,182, 61,134,105,123,212,117,130, 69, 72,210,149,132,217,116,209, 53,176, 52, + 9,208,166,250,111,208, 36, 88,230,225,119,191, 57, 63, 2,104,155,208,226,177, 24,121,230,226, 53,247,146, 98, 69,159,111,214, +252,103, 9,123,237,218, 9,208,248, 57,181, 2,231, 91, 43, 48, 57,112,224,240,143,182,152, 80, 44,203, 10,158, 48,103, 56,203, +178,199, 31,147,230, 3, 0,175,215,110,111, 7,240,213, 19,200, 90,123, 0,110,181,219,197, 0, 10,184, 22,240, 88,104,236,252, +222,230, 56, 90, 82,176, 12,176,127, 28, 0,200, 90,155, 11, 22,144,130,224, 3,164, 6, 99,199,132,193,217,213, 13, 32,181,128, + 73, 11,144, 58,128,212, 0,164, 14,101,138, 92,192,164, 1,178, 78,128, 98, 89, 73,171,139,107, 80, 1, 25,191, 98, 68, 47,111, +184,216, 73, 49,127,108,160,243,214,147, 25,219,183,159, 78, 15, 77, 81,226, 69,139,242,202,178,232,215,173, 11,214,111,215,164, + 29,189, 89, 58, 10, 0,194,123, 56,157,236, 23,216,193,107,221, 78,125,218,241, 59,149,163, 1, 96,116,144,237,137,190,126,238, +222, 12,218,110,245,101, 88, 54,196,163, 99, 23,130, 78,218, 2, 70, 93, 0,181, 90,135,130,236, 93,112,240,124,150, 71, 51, 24, + 98,238,124, 25, 31,139,223, 89,186, 74,168, 85,151, 24, 25, 83, 41,237,194,175,228, 11,196, 12,129,194,243,134, 26,166,138,126, +111,214, 43,212,130, 79,190, 92, 12, 96,106, 75, 60,129,174,152,183,118,237,186,110, 3,123,251,187, 22, 31,152, 79,212, 84,150, +128,226,203, 37, 99,251, 15,132,125,215, 64,166, 36,113, 45, 33,246, 9,133,189,147, 15, 10, 47,237, 70,206,149,131,196,160, 94, +227, 37, 63,253, 34,154, 6,152,154, 20, 90, 93,156, 49,104,212,224,190,123,125,188, 61,220, 89,150, 1,195,176, 96, 25, 26, 53, +122, 18, 75,246,101,129,166,105, 76, 24, 53,104,132,149,152, 96, 25,134, 1,203, 50,200, 47, 46,215,158,187,154, 54, 34,171, 18, + 87, 45,177, 84,245,120,110,216,160,219, 55,174,248,147, 25, 71,209,123,106,116, 26, 1, 92,108,208,230, 6,221, 60,245,147, 63, +240, 99,219,181, 28, 1, 58,231,228, 74,120, 15,158,197,223,242,203, 73, 23, 85,105,225,244, 3,187, 54, 77,252,126,203,150,152, + 52, 37,230,112,207, 23, 14, 28,254, 29, 96, 89,246,137,139,173,220,220,220,162,199, 17, 91,158,158,158,131, 11, 11, 11, 87,215, +121,171, 16, 4,177,186, 99,199,142,203,254,124, 81,125,228, 93, 79, 69,211,244,212,194,194,194, 11, 45,113, 70, 68, 68,120, 28, + 59,118,172, 83, 3,206, 78, 0, 58, 53,149,214,222,222,158, 30, 48, 96, 64,206,177, 99,199,138,184, 22,210, 38,193,213,106,161, +149,150,247,235,252, 94, 6, 69, 13, 0,164, 89,144,254,145, 33, 63, 61, 73,175,220,241,233, 43, 43,131, 58, 58,162, 90, 99,196, +233,235, 57,160,105, 18, 52, 69,213, 90,182, 40,208, 20,137, 81, 61,156, 49, 64, 63, 7, 27,226,210, 65,209, 76,116, 75,156,141, + 97, 98,153,151,122,134, 78,222,199, 48,172, 88, 34,228,169,124,189,156, 92, 23, 76,232,193,155, 63, 54, 8, 58, 19, 53,121,119, +226,253,115,169, 74,108,179,136,147,249,107,200, 35,182,169, 99, 52,101,182,236, 45, 88,163,250,133, 14, 13,177,101, 13, 42,144, +101, 89,168,214,146,200, 42, 39, 81,172,175,130,132, 80, 88,196,201,176,232,222,222,211, 93,254,251,222, 15,179,157,248,106,129, + 43,159, 18,137,121, 20,104,134,229,179, 85, 41, 6, 71,255, 48, 97,157,223, 86, 75,249,148,201,109, 94, 25, 60, 50,194, 46,111, +247, 44, 66,230, 59, 10,174,189,188,144,125, 97, 7,148,215,227, 80, 94,148, 67,216,234,171,208,206,233, 25,140,153,250, 34,190, +122,177, 15,170,213,213,224, 43,238,219,137,133, 18,123,192,212, 36, 39, 75, 99,234,218, 85, 95,186, 11,248,188,135,215,179,238, + 67,147,208, 25, 12, 0, 77, 65, 42, 96, 64,176,117,191,145,160, 73,147,188,251,248, 15,231, 2,244, 85,115,101, 79, 85,226,151, + 64, 23,132,128, 33,253, 89, 82, 7, 2,184,152, 82,250,167,248, 9,112,197, 75,207,142,122, 53,132, 37,240, 91, 91,234, 40,216, + 9,145,189, 59, 89, 91, 89,169,211, 80,176,255,109,220,135,148,109, 55,240,117,188,244,218, 60,249,214,173, 91,163, 0,246, 77, + 60,234,163,246,119, 44,178,202,113,114,156, 79, 37,167,173,173,109,231,142, 29, 59, 46, 35, 73,114,176, 72, 36,106,103, 50,153, +192, 48, 76,177, 88, 44,254, 45, 39, 39,103,133, 90,173,126,240, 79, 43,251,237,219,183, 91, 35,182,204,114, 10,133, 66,164,167, +167,223,107,133,216, 58,211,232,252,159, 47, 94,188,136,125,251,246, 1, 0, 50, 50, 50,208,181,107, 87,171,166, 78,204,206,206, +182, 26, 58,116,232,207, 0,188, 90,226,188,115,231, 78,231,163, 71,143, 98,255,254,253, 0,128,244,244,116,248,250,250, 54,153, +153,139, 23, 47,242, 95,126,249,229,206, 0,138,254, 11,117,244,111, 16, 89, 13,191,255, 20, 90,113,113,113,108,100,100, 36,209, +120,187, 9,100,121, 59,136,123, 65, 79, 3, 64, 86,107,115,144, 90,130, 85,235,119,157, 26,125,118,255,198,193, 82, 17, 15,203, +183, 45,200, 47,173,168,126, 78, 64, 60, 28,126,161, 88,240, 28,172,197,151,163,167,247,240,174,172,209,227,200, 31,133, 23, 82, +148,173, 51,145,166, 40, 16, 15, 48,246, 15,247,104,232,117, 74,223,233, 95,197,239,217,179,120,116,247,247,198,118,199,225, 75, + 57,239, 1,148,217,168,239, 44,195,128,101,168,122,231,247,218, 87, 7,128,121,116, 81, 96, 6,236,195, 99, 76,235, 44, 90, 67, + 0, 65,165, 43,198,216,200,197,223,205,158,253,134, 45, 89,154,137, 10,163, 8,249,149,122, 20,235,132,168, 17,184,162, 48,237, + 14,205, 35, 16,111,214,228, 66, 64,205, 82,122,123, 7,177, 53, 47, 56,108,174,167,250,228, 71,149, 98,130,226,219,190,240,133, +125,217,217,175,115, 40, 77,169,134, 32, 96, 54,252,188,157,157,125, 87,125,121, 14, 95, 85, 89, 6,123,183, 32,140,158, 28,137, +207, 34, 2, 81,173,214,160,180,226, 50,219,197,221,150,200,253, 45, 6, 75,199, 4,160,188, 68, 1, 3, 9, 16, 26, 67,133,222, +168,175,105,246, 58,242,176,229,221,133,139, 94,234,224,238, 98, 85, 55,169,128,101,104,244, 8,240, 65,216,224,126,136,191,248, + 59,174,221,201, 0, 83, 59,169,128,101, 24, 20, 40, 43, 75,244, 38,122, 71,171, 46, 40, 77,129, 37,245, 77, 10, 49,180, 97,200, + 48,216, 21,114, 26,248,164, 79,103,155,153,139, 35, 59,216, 88, 73, 8,232, 73, 26,122, 35,137,234,223,191,131, 83,199,110,144, + 75,165, 68, 47,232, 4, 55, 1,110,221, 66, 14, 28, 26, 96,226,196,137,210,146,146,146, 68, 47, 47,175,192,176,176, 48,121, 72, + 72, 8, 52, 26, 13, 78,159, 62, 13,141, 70,211,193,203,203,171,195,233,211,167,199,231,229,229,165,180,111,223,126,232,254,253, +251, 45,246,161,173, 21, 64,252,250, 71, 48, 64, 17, 4,129,218, 99, 68,237,177, 54,175,115, 43, 22,139,145,155,155,251,196, 45, + 91,133,133,133,247,218, 98,217,170,169,169, 17,121,122,122,194,197,197, 5, 52, 77, 67,163,209,224,208,161, 67, 80,169, 84, 96, + 24, 6, 50,153, 12, 95,172,221,134,180,155,137,184,122,245, 42, 84, 42,149,200, 28,103, 65, 65, 1,209,163, 71, 15, 24, 12, 6, + 80, 20, 5,189, 94,143, 51,103,206,212,239, 11, 4, 2, 44,250,252, 27,100, 92, 79, 68, 82, 82, 18, 10, 10, 10,254, 43,171,141, +180, 66,139,252, 19,209,108,204,172,255,250,172, 67,154,166,150,108,221,185,231,242,146, 57, 47, 98,222,148, 80,175, 21, 27, 15, +134,166,150, 97, 39, 0, 4, 56, 99,250,180, 97, 93,188,237,229, 66,124,182,251, 58,192,178, 75, 30,247,255,146, 43,144, 17,216, +142,121, 47,246,106,110,226, 71, 47,246,130,143,187,109,215, 74,113,133, 56, 43,203,130, 53, 5, 25, 10, 14,214, 18,191,240, 30, + 78, 39,193, 48,176,183,145,248,131,166, 96,111, 45,241, 27, 29,100,123, 2, 0,108,229, 66,255,166, 44, 95,205,161,183,151,112, +150, 92, 34,152,101,101, 99,239, 61, 35, 42, 76, 22, 30, 53, 94,102, 45,164, 80,126,245, 52,212,194,246, 32, 29, 59,192, 64, 86, +160,224,193,125,250,236,149,212,194,178,106,195, 2,179,217,100,113,161,240, 65,186, 75,231,238, 97, 14,101,113, 75,149,157, 95, +221,221,137, 7,134, 87, 29,243, 66,137,149,107, 95,217, 31, 89, 15,106, 24,182, 73,139,206, 35, 80,171, 84, 57, 20, 43, 30,252, + 0, 0, 32, 0, 73, 68, 65, 84, 36, 13,119, 29, 45,176,185,159,240, 19, 22,143,233,134,202, 10, 37,244, 38, 10, 42, 29,101,114, +179,151, 74, 12, 15,238,194, 96,162, 96, 36, 25, 8,237, 61,113,250,242,157, 50,134, 36, 79, 52,199,153, 85,142,164,172, 67, 73, +214, 13,143,249, 56,163,199,135,182,178, 36,144, 58,228, 22, 20, 97,231,177,203,189,178,202,145,244, 56,245,204, 50,212,195,225, +231, 6,150, 44,130, 69, 72, 91,156,224,253, 93,209, 87, 36, 21,125,187,250,189,151, 3,251,251, 58, 74,152,130,203, 32, 24, 19, +172,104, 1,116, 98, 26,118, 94, 62, 96,140,213,172, 86,175,175, 74, 6,184, 72,239, 28, 56, 52,128,159,159,159, 91, 97, 97, 97, +242,194,133, 11, 29, 95,120,225, 5,196,198,198, 66,173, 86, 99,199,142, 29, 88,183,110, 29, 62,253,244, 83,144, 36,137,173, 91, +183,202, 15, 28, 56,208,119,211,166, 77, 5,222,222,222, 65,121,121,121,197,102, 4, 22, 1, 64, 2, 64, 88,219,119, 17, 0,152, +227,199,143, 35, 60, 60, 28,199,143, 31,103,106,143,209,120,248,242,211,166,245, 68,197, 98, 49,196, 98, 49, 84, 42,213, 19, 17, + 91, 66,161, 16,214,214,214, 16,139,197,168,174,174,110,181,216,162, 40,138, 95, 80, 80, 0,149, 74,133,176,168, 40,124, 19, 29, +141, 97,195,134, 33, 44, 44, 12, 44,203,226,204,153, 51, 8, 29, 24,140, 23,159, 31,138,212,212, 84, 80, 20,101, 81,126,139,139, +139, 81, 82, 82,130,209, 81, 81,216,182,105, 19,250,245,235, 7, 63, 63, 63, 80, 20,133,196,196, 68, 76, 28, 53, 16,210,113,161, +200,200,200,224, 26,181,229,214,172, 39,226,163,245,216, 72, 46,197, 21,230,240,249,184, 41,163,250, 70, 70, 13, 10,196,182,189, +103,191,132,139,122, 15, 0, 56, 25, 36, 95,188, 50,204, 7, 41,121,149, 56,155, 84, 20,151, 90,134, 39, 50, 91,131,161,225,236, +100, 43, 7,248, 98,232, 76, 12,101,155,101,222,129,153, 97, 89,200, 7,127,136,105, 81, 41, 94,253, 2,189,188,234,102, 29, 90, +135,127,141,233,119,238,121,247,241,115,243, 6, 77, 2, 52, 9,219, 23,119, 3,159, 91,153,205,199,192, 78,226,248,119,231,207, + 31, 48,102,220,100,153, 88,110, 7, 90,157, 15,178,248, 14,202, 51, 47, 64, 35,239,138,226,220, 44,236, 59,117, 85,149, 89, 80, +174,230,241,112,186, 68,101,248, 32,171, 18, 53,230,120,245, 36,162,151, 45, 93, 16,177,111,207, 94, 27,137,207, 32,226,254,119, +225, 42,177,128,146,184,116,122,150,167,149, 58,179,255,217,177,215, 86, 99,196, 74,115, 60, 90,141,250,224,153,211, 39, 95,236, +210,121,144, 77,246,181, 99,208,233, 13, 48,144, 64, 80,223,161,160,105, 86, 76,240, 8,198,150,207, 39,148,229,149, 32, 72,186, +228,183, 91,217,138,139,183,178,248, 6, 27,172,108, 49,186, 72, 99,117, 79,240,223,137, 26,218, 19, 32,117,120,126,112, 55,124, + 19,115,246,109,128,126,245,241, 42,249,161, 69,139, 5, 6, 5,186, 96, 51,203, 98,208,245, 67,235,252,123,143,123, 23,173,177, +104, 5, 57, 99, 76, 64,103,143,159,190,249,226, 67, 71,167,246, 93,249, 4, 67,130,117,235, 14,168, 11, 88,162,224, 50,236, 60, +251,129,246, 24,136,173, 27,214,212, 48, 12,187, 7, 0, 55, 37,155, 3,135,134,207, 35,189,254,224,170, 85,171, 28, 35, 35, 35, +235, 44, 50,184,124,249, 50,182,111,223, 14, 43,171, 71,159,147,225,225,225, 96, 89,214,113,249,242,229, 7, 1,244,111,142,115, +192,128, 1, 81, 73, 73, 73, 69, 61,123,246,204,170, 21, 91, 34, 0,188,187,119,239,242,242,243,243, 9, 7, 7, 7,214,195,195, +131, 44, 42, 42, 98, 0,208,175,189,246, 26,255,215, 95,127,237,162,209,104,206,183, 85,104,137,197,226, 39,226,179, 37, 20, 10, + 65, 16, 4,196, 98, 49, 68, 34, 17, 88,150,109,149,216,162,105,250,255,216, 59,235,240, 40,174, 53,140,191, 35,107,217,184,123, +130, 38, 33, 16,220,221, 41, 37, 20, 41, 90, 40,118,209,210, 2,165,197, 41,148,182, 56, 69,138, 21,104, 47,238, 20, 9, 20, 73, +139, 75,128, 32, 9, 73, 8, 4, 9,113,247,172,206,204,185,127, 68,110, 2,145,221,132, 26,157,223,243,204, 51, 43,179,239,206, +204,153,153,243,206,119,206,249,134, 61,115,230, 12,238,222,189,139,197, 77,154, 96,134,171, 43,108,108,108,112,233,210, 37, 16, + 66, 96,106,106,138,244,244,116, 28, 56,112, 0, 93,187,118, 5,199,113, 82, 67,116,143, 28, 57,130,224,224, 96,124,211,188, 57, +102, 88, 90,194,204,204, 12,129,129, 5,173,129,114,185, 28,209,209,209, 8, 12, 12, 68,231,206,157,197,131,186,154, 24,124,240, +116, 2,216,116, 10, 78, 58,173, 10,132, 35, 0, 5, 23, 95, 95, 72,195,195, 75,119,206, 49, 4,154,198,252, 13,187, 2,250,124, + 63,189, 47, 53,161, 95, 83,151, 37,255,189, 56, 25, 0,198,125,232,237,170,148,179, 88,127, 34,140,208, 52,230,191,141, 13,244, +245,133,148, 74,195,228, 30,173,124, 16,159,169, 69, 84,124,230,239,225, 6, 54,245,252,246,253, 72,236, 62,121, 41,102,221,110, +117, 4, 33, 4, 86,102,114,159, 81, 15,163, 60,254,123, 38,248,213,154, 67,234, 8, 34, 16, 88, 41, 37,245,198,132,183,171,116, +212, 97,115,119,201,132,207,103,206,108,215,111,204, 23, 10, 46,226, 48,180, 81,231, 32,232, 84,200,214, 73,145,201, 56, 33,246, +213, 43, 44,221, 22, 16,147,157,167, 29,250, 40,197, 56,131,249, 36, 13,185, 44,149, 61, 96,233,215,243, 46, 44,251,118,145,153, +234,217,165, 92,134,226, 84, 76,141, 78,236,183,139,191,167,114, 52,218, 33,207, 50,144, 83,153,142,198, 28,203, 87,172,217,208, +103,252,136,129, 17,222, 94,157,108,249,248,231,182,234,236,236,228,125,103,131,157, 10,239, 20, 41, 0,136,138, 77, 67, 74, 86, + 30,199,115,250,203,230, 18, 44, 9, 51, 36, 58, 88, 72, 45, 7,216,251,183,111,240,145,189,185, 20,170,220, 76, 56,152, 75,208, +171, 85,157,143,244,183, 35,103, 63, 79, 54,198,174,189,110,180,244, 32,122, 21,110, 45,239, 90,143,240,250,122,224,245,208, 61, +220, 99,124,100,140,194,140,169, 29,205, 44,172,181, 47,104,228,153, 2, 38,118,160, 44, 60, 1,203,154,148,196,119, 8,226,159, + 61,226, 62,253,104, 68,218,243,151,177, 63,217,153,188,149,145, 63, 34, 34,239, 20,209,209,209, 31,207,157, 59,247, 90,171, 86, +173, 28,237,236,236,208,176, 97, 67,156, 60,121, 18, 95,124,241, 69,241, 50, 77,154, 52, 1, 33, 4,233,233,233, 88,177, 98, 69, + 98,124,124,252,199, 21,222,160, 63,122, 20,177,123,247,238,142,245,235,215,215, 73,165,210, 76, 0,242,204,204, 76, 69,122,122, + 58,165, 86,171, 33, 8,130, 96,105,105,201,199,199,199,235,135, 14, 29,170,185,113,227, 70,157,188,188,188,232,234, 68,180,220, +221,221, 67,211,210,210,178, 40,138,170,118,234,135, 34,147,101,103,103,103,159,155,155, 43, 0,200,168, 74,234, 7,142,227,208, +188,121,115,156,187,114, 15,103,126,187,129,236,248,199,152, 60,254, 99, 52,108,216, 16,231,206,157,171,114,153, 53,110,220, 24, +103, 3,175,225,218,221, 7,136,142,124,136, 79, 39,143, 71,131, 6, 13,112,246,236, 89,241,128, 54,156,211, 40,221, 55,235,244, +235, 70,171,115, 64, 64, 64,209,157,249, 27,246,181,158, 29, 26, 75,172,100,123, 22,245,174,227, 43,233,177, 8,148,196, 4,135, +189,206,182,155,191,116, 99, 4,227, 16, 61, 34, 52,185,242,209, 97,165, 78,154,100, 60, 34, 65, 17,251, 31,132,215,251,232,131, + 86,238,216,126, 82,185, 16, 0,134,116,168,133,219, 79, 82, 16, 20,153,188, 63, 44, 5,143,170,187,213,126, 14, 80,242,169,216, +191,226,179,126,157, 61,221,156,176,227,151,107,160, 40, 28, 51,168,194, 37,132,180,170,239,137,117,187, 95, 31, 97,232,228,177, +230,144, 58,226,252,163,156,222, 0,208,163,158,242,215, 22,117,172, 61, 72,201,142, 91,101, 96, 34, 99, 39,246, 30, 56, 82,193, + 69,158, 4, 94, 6,130,226, 52, 80,233, 4, 36,164,230, 32,223,210, 29,151,110, 62, 80,101,169,181,211,195, 82,170, 22,197, 11, + 79,197, 51,233,157, 7,175,114,243, 84,206, 74,251, 58,106,134, 22,132, 92, 13,193,237,176,151,217, 97,137,120,108,136,198,179, +103,208,182,118,229, 58,108,221,117,232, 43,137, 84, 54,132,161, 64, 57, 88,153,218,111,253,254, 27,152,155,155, 65,208,230, 2, +121, 41, 24,240,201,210,148,208,120,125, 45, 0,240,178,133, 89,135, 90,146, 93, 44, 77,197, 94,140,210, 45,168,236, 63, 40, 61, + 38,141,232,213, 68, 34,104,243,240,217,138,131,248,113,118, 63,140,236,230, 43, 57,125, 61,114, 18,128, 37, 85, 45,107,194,115, + 32,122, 21,218,204,187, 18, 65, 1,215, 8,208,254,238,161,111,235, 1,247, 12,214,104, 10, 72,120,150,242,109,228, 97, 42, 21, + 98,175, 67,136,189, 78, 24,247,118,160, 60, 58, 82,148, 83,115,242,195,202,197,121,219,183,239, 56, 47,208,248,218,128, 84, 25, + 34, 34,255, 86,158,197,199,199,191,247,254,251,239,255,118,238,220, 57, 27, 63, 63, 63, 0,192,221,187,119, 11,110, 58,155, 55, +135,183,183, 55,146,146,146, 48,108,216,176,212,132,132,132,247, 80, 73,159,223,156,156,156,231, 71,142, 28,113,204,203,203,107, +178, 96,193,130,100, 79, 79,207,108,181, 90, 77,101,102,102, 10, 28,199,193,218,218, 90,214,164, 73, 19,180,109,219, 54,247,230, +205,155, 53, 98, 98, 98,114, 0,188,172,202,202,247,235,215, 15, 87,174, 20, 12,218,123, 27,121,181,164, 82, 41,252,252,252, 92, +159, 61,123, 22, 87, 88,183, 24,125,141, 47, 89,189, 60,120,240, 0,151,239,197,130,213,170, 32, 75,137,199,173, 95,142,160,239, +196, 41,224,184,170,247, 98,120,240,224, 1,142, 7,222,130,169,156,197,227,199,143,112,228,200, 17, 76,158, 60,185, 90,154, 85, +164, 66, 47,242, 55, 39, 1,229,244,211, 98, 1,192,223,223,255,114, 81,180,162, 36,181,107, 67, 38,207,197,162, 30, 77, 93,103, + 13,105, 95,135,209,103,199, 67,224, 5, 48, 18,192,193,206, 2,123,246,236,175,181,255,224,193,155,155, 55,109,222, 32,112,220, +252,208,100,228, 27,177, 82,139,190, 63,120,109,200,158,153,157,217,201,189,235,217, 0,128,148,165,177,254,228, 35, 14,192,162, +234,108,109,107, 87, 40,114,245,152,224, 96,107,185,112,238,127,250,216,116,110,238,141,203, 65,161,216,112,228,230, 21, 89, 50, +118, 27,124,112, 11,122,188,238,159,202, 26,117, 8,161,242,126,151, 60, 79,156,164,166,214,208,189,188, 8,232,212, 80,107,116, +136, 73,227, 17,147,174, 6,171,148,226,110,100,172,202, 54, 17, 1,213,216,108,202, 84,169,112,249,234,187, 53,110,106, 85, 46, +151,157,145,202, 73,101,183, 36, 74, 19,121,130, 49, 93, 21,110,197, 65,221,177,166,164, 25, 32, 48, 50, 5,201,159,247,249,104, +211,184,176,115,168, 75,199,131, 34, 4, 38,190,125, 96,110,194, 72,219,215,144,188, 2, 0, 83, 83,165,108,197,215, 95, 88, 78, +159,253,117,165,125,192,124, 1,169,119,109,167,233,126,158,214,184, 18, 28,129, 43, 33,209,143,174,220,125,220,160, 75, 67, 23, +120,187, 89, 77,147,101,100, 46, 15,135,241, 17,210,130,130,225, 0,189,186,120,212,161,175, 3,134,183, 24,178,160,188,209,134, +101, 82, 19, 16, 34,121, 2,138, 97, 0,138, 46, 24, 1, 25,115, 29,172, 85,109,178,255,208,241,252, 29, 59,118,127, 19,158, 42, + 70,177, 68, 68, 42, 35, 43, 43,235, 97,120,120,120,175, 70,141, 26,237,252,236,179,207,204, 71,140, 24,225, 50,126,252,120, 26, + 0,146,146,146,132,117,235,214,197,255,240,195, 15, 89,169,169,169, 99,244,122,125,136, 33,103,120, 66, 66,194,141,159,126,250, + 41,229,234,213,171, 13, 90,182,108, 41,111,214,172,153, 96,109,109,205,202,229,114, 94,171,213,170, 35, 35, 35,249,103,207,158, + 57,103,102,102, 62, 5, 16,133, 42, 52,235, 23, 70,175,150, 48, 12,243, 21, 33,196,239,109,244,209, 82, 42,149, 46, 0,158, 82, + 20, 85,215,216,102,195, 55, 42,108,150, 69, 70, 70, 6,242, 19, 31, 65, 17,251, 4,141, 76,105,212,183, 54,131,133,133, 69,181, + 76, 81, 86, 86, 22,144, 23,135,107,215, 30, 0, 28, 7, 75, 75, 75, 88, 90, 90,254,233, 70,171, 60, 47,242, 15, 97, 66, 25,159, + 85,220, 71,171,190, 61, 38,155,104,177,110, 98,159, 58,210,154, 30,110,208,196,222,197,131,152, 92,204,111,221, 50,140,145,155, +171, 39,126,220,175,249,192, 65, 53,208,185,109, 11,170,166,179,229,180,229,223,111,249,164, 62, 82,191, 8, 75,198,122, 67,214, + 40, 44, 5,207, 5, 36,239,184,248, 48,118,146,155, 82, 5, 65, 32,184, 24,146,128,144,151, 25, 59, 34, 82,240,220,152,173,171, +239,140,238, 44,232,131,132, 16,133,165,169,105, 78,125,111, 55,187,238,109, 26,211,239,117,106, 14, 41, 3, 92,187,253, 0, 51, +190, 63,118, 75, 16, 72, 31,131, 71,136, 9,194, 27, 6,170, 96,132,161,190,212, 8, 67, 66, 8, 41, 24,117, 88,113,183, 47,134, +161, 18,243,163,239, 56, 73,108,189,160,138,186,136,151, 25, 2,162,147,115,144,205, 58, 65, 19, 23, 7, 16,225,213,229,106,116, +172,182,179,179,115,168, 85,223,187,206,198, 93, 71,160,203,207,194,243, 75, 59,145,155,145,128,111,183,158,172,227,234,106,219, + 41, 46, 46,238,178, 17, 23, 27,239,223, 2,246, 59,128, 0,140, 68,142,211,155, 15, 33,213,214, 4,118, 74, 41, 4, 85, 10, 38, + 78, 31, 97,217,187,199, 8, 75, 0,136,126,124, 31,158, 74,149, 65,186, 58, 91, 12, 28,210,197,199, 10,122, 21,118,157,189,175, +166,129,247,118,159,127, 20,213,165,158,149, 98, 72,123, 79,235, 37,241,153, 31, 34,173,106, 73, 69,139, 34, 90,197, 17,190, 42, +140, 54, 60, 2,240,245, 4, 68, 29,188,145,108, 58,168, 71, 51,165,148,165, 40,146, 27, 7, 98, 98,135, 45,187, 14,231,202,244, +127,206,147,216, 69, 68,222, 5, 84, 42, 85,176, 74,165,106,248,229,151, 95, 14,159, 55,111, 94, 71, 83, 83,211, 90, 0,144,151, +151,247, 92,175,215, 95, 41, 60, 63,141, 25, 29, 72, 0, 60,141,138,138,122, 30, 21, 21,229,184,119,239, 94, 43, 0,138,194,239, +212, 0, 50, 1, 36,161, 26, 35, 14,139, 76, 21, 69, 81, 95,189,173,253, 80,100,170, 40,138,170, 91,149,223,211, 52,205, 83, 20, + 5,138,162, 32,151,203,113,245,234, 85, 12,238,211, 3,225,167, 51,225,103,101,134,150, 99, 38,226,224,133, 11, 96, 24, 6, 20, + 69,129, 97, 24,163,234, 17,150,101,113,237,218, 53,140, 28, 54, 8,114, 22,176,180,180,196,151, 95,126,137, 19, 39, 78,128,101, +197,167,244, 25,193,182, 18,134,203,192, 60, 90, 20,150, 92,216,185, 84, 10, 94,143, 83, 59, 87, 35, 32, 52, 87,251, 56, 5,243, +125, 82,176,238, 8,114,132,148,239,119, 79,186,112, 45,116,213,216,161,254,202,174, 93,122,160,107,231, 46,108,131, 22,157, 22, + 2,165,140, 86,119, 84,144,107,131, 23,240,205,182,179, 17, 19, 15, 94,138,164,160,203,193,208,158, 45, 8, 47,224,155, 74, 54, +230, 13, 77, 75, 19,179,131,215,110,222,180,134, 46, 23, 47,239,255,174,168, 81,171, 14,192,235,240,244,233, 19,252,176,235, 23, +225,210,237,199,123,180, 28, 62,123,150,129, 60, 67, 53, 11,156, 21, 7, 75, 83,153,207,123, 13, 44,126, 21, 64, 96,165,148,214, + 35, 2, 15, 43,165,164, 94,143,122,202, 95, 9, 33,196,220, 68, 82,143,240,250, 74, 53, 85, 90,238,199, 93, 63,239, 88, 51,110, +220, 56,211,212,216, 68,196,103,135, 34, 87,230, 10,189,210, 29, 81,247,175,168,242, 53,156, 33,149,120,185,251, 51, 53, 53, 53, + 57, 56, 40, 29, 7,183, 46,131, 94,171, 65,114,108,129, 87,141, 79,205,134,133,157,235,205,184,184, 56,131, 53,117,156,144, 53, +112,196, 4,169,137, 57, 76, 70, 14,244,151, 69,165,105,208,212,197,188,224,162,145,155,130,240,192,107,232, 92,216,199,244, 89, + 12, 13,207,198, 46, 6,173,167,185, 66,250, 89,239,102,174,120,254, 42, 1, 87, 31,197,237,122,158,142,120, 62, 34, 97, 87, 84, +124,230,164,126,173, 61,176,246, 68,216,167,128,126,191, 49,219,238,235,128,225,132,160,125, 65,103,120, 21, 8,208,222,215, 1, +195, 13, 28,105,248,134, 38, 43,197, 71,107,126,141, 94,112,248, 78,106,191, 89, 31,117,176,104,219,246,125, 25, 56, 45,114, 84, + 26,125,120, 38,178,171, 83, 70,213, 64,212, 20, 53,255,169,154, 60,128, 61,122,189,126, 79,102,102,230,219,212,140,199,155,121, +157,170,181,237, 37,155, 9, 9, 33,108, 97, 52,171,178,206,240, 21,106,150,108, 38, 36,132,156, 41,140,102, 85, 22,213, 42,165, + 41, 8, 66,124,243,230,205,109,250,246,237, 11,158,231,241,228,201, 19, 68,199,196,160,251,164, 79, 97,101,101,133, 43, 15, 31, +226,241,227,199,248,234,171,175,160,215,235,113,252,248,241,216,202, 52, 89,150,213,213,169, 83, 71,218,191,127,127,112, 28,135, +103,207,158, 33, 46, 46, 14, 51,102,204,128,165,165, 37,130,131,131,139, 53, 83, 83, 83,193,178,172,174,140,232,214, 31,113, 44, +253,211,121,195,100, 85,108,180, 0, 30,188, 30, 89, 23, 22, 97,253, 85,232,116,122,212, 11, 75,193,139,176,255, 71,164,182, 48, + 65, 15, 79, 61, 12,141,120, 30,124,189,171, 12,201, 33, 48,246, 78,226, 73, 26, 18,204, 21, 57, 57,208,229, 88,224,217,175,120, +145,148,147,251, 36, 13, 9, 70,223, 49, 8, 60, 5, 93, 62,144,112, 23, 55,174, 92,198,165, 91, 15,112, 39, 36,130,191, 17, 28, +121,144, 22,240, 77,120, 26,158, 84,225, 46, 4,102,125,214, 98,116,200, 83,143, 22,222,142, 30,224, 57, 16, 65, 15,203,161,251, + 49, 38,172,173, 71,139,218, 86, 30, 5,145, 44, 61,172,255,243, 59,176, 70, 81,161,222,221, 24,253, 54,217,137,115, 31,230,100, +166,181,238,214,169,141,169,165,111,111,164, 62,141,196,147, 7,215, 84,193,161, 81, 55,238,198,232,171, 21, 45,113,117,117,237, +216,173,147, 15,134, 78,156, 11, 93,126, 22,158, 93,250, 25,185,233,137,184,122,211, 12, 17,217,217,109, 0, 24, 28,209,186,249, +138,107,128, 87, 25,104, 87, 67,242,202, 28, 26,167,143,253,251, 66, 78,169, 33,104,178, 65,229,167, 34, 42, 78,155,245,225,214, + 24, 30, 0,148,114,138, 53, 37, 89, 22, 6, 69, 30, 61,109,189,148,140, 30,187, 47, 60,130, 32, 20, 60,190, 73, 16,176,101,247, +239, 81,147,190, 25,217, 20,245, 61,172, 27,223,143, 75,166, 96, 68,200,159, 34,232,112,231,224,215,245,212,191, 45, 4, 4, 29, +174, 77,179,169,215, 97,125,122, 7, 84,241,113, 59,161,241,136, 3, 48, 9,108,254,143,211,214,159, 93,216,252, 66, 88,251,153, +255,233,103, 1, 34, 62,128, 93, 68, 68,228,207, 39, 55, 55,119,226,152, 49, 99,126,148, 72, 36,246, 0, 40, 65, 16, 32, 8, 2, +187,106,213, 42, 9,207,243, 52, 77,211, 60,195, 48,220,153, 51,103,244, 60,207,167,168,213,234,137,149,105,114, 28, 23, 53,101, +202,148, 58,149,141, 80, 60,112,224, 64,145,201,138, 18, 75,194, 32,147, 85,114, 94, 28,229, 42,191,242, 32,248,186,221,200, 69, +139, 0, 80, 32, 88, 28,150,130, 23,175, 47, 18,146,142,248,250,140,110, 70,131, 22,157, 22, 21,253,198,216, 53, 83,243,252,160, + 22, 13,189, 15, 0,128,134,240, 35,171,178,117,217, 26,213,144, 38, 45,218, 28, 20, 8, 97, 57, 66,118,208, 2,142,170, 57,132, + 27, 50,210,174, 60,226,147, 51,131,123,251, 89, 18,160,160,201,176,184,185,176, 48,141, 3, 33,132, 20, 55, 23,174, 86, 32, 53, + 75, 83,105, 30,168,235, 47,180, 61,180,220,157, 9,231,175,223,159,200,243,196,137, 97,168, 68,149,150,251,177,186, 38, 11, 0, +226,226,226, 46, 7, 94,136, 59,255,176,177, 99, 79, 59,101, 97,148, 43, 31, 72,205,199,249,184,148,220,203, 85,209,204,200,211, +247,155,183,238,196, 73,153,132, 97, 65, 72, 65, 66, 81, 66,160,214,241,233, 55, 95,113, 13, 0,160,161, 13, 92,190, 60,206, 29, + 96, 24, 42,186, 50,189,160,199, 9,107,135, 46, 15,252,226,209,203,140, 29, 47, 51, 17, 10, 0, 47, 51, 17,122,232,218,139,133, + 81,137, 57, 95,132, 70,103,172,134,145,253, 42, 8,133,171, 45,134, 46,122,227,179,234,238,207,136, 4, 60, 0, 48, 0,136,237, + 49,116,230, 15, 51, 41, 10,226,227, 39, 68, 68,254, 69, 20, 69,181,104,154, 94,242, 22, 53,207, 80, 20,245, 62,128,167, 70,252, + 44, 40, 55, 55,183,225, 91,222,188, 52,142,227,210, 12, 89,240, 47,232, 16,255, 79,229, 47,235, 90,210, 93,212,252,243, 53,235, +214,173, 75,140, 48, 44,226,254, 20, 53, 69, 77, 81,243, 95,165, 73, 8, 97,170, 51,149,163, 73, 85,103, 18,203,232, 31,207,132, +242,222,139,205, 33,239, 32, 79,159, 62,165,196,189, 32, 34, 34, 34, 82, 54, 20, 69,241,127,128,166,152,188, 88,164,200, 96,149, +138,110,209,226, 62, 17, 17, 17, 17, 17, 17, 17, 17,121, 43, 38,171,228,188,192,132,163,252,240,159, 49,163, 9,170, 18, 66, 12, + 20, 53, 69, 77, 81, 83,212, 20, 53, 69, 77, 81,243, 95,167, 89,153,182, 56,154,241, 15, 54, 96,162,166,168, 41,106,138,154,162, +166,168, 41,106,254,251, 52,255,201,148,219, 71, 75,108, 58, 20, 17, 17, 17, 17, 17, 17, 17,249,131, 16, 59,195,139,136,136,136, +136,136,136,136, 84,143, 74, 31, 42, 45, 34, 34, 34, 34, 34, 34, 34, 34, 82, 53, 42,126,168,180,136,136,136,136,136,136,136,136, + 72,149, 49,254,161,210, 34, 34, 34, 34, 34, 34, 34, 34, 34, 6,177, 77,220, 5, 34, 34, 34, 34, 34, 34, 34, 34,127, 14,165, 71, + 29, 6, 4, 4,144,146,115, 17, 17, 17, 17, 17, 17, 17,145, 63,147,119,213,139,136, 77,135, 34, 34, 34, 34, 34, 34, 34, 34,213, + 99,130,104,180, 68, 68, 68, 68, 68, 68, 68, 68,254, 24,202,237,163, 85,148,176,180,115, 97,168,174,179,184,175, 68, 68, 68, 68, + 68, 68, 68,254, 2,222,109, 47, 34,246,207, 18, 17, 17, 17, 17, 17, 17, 17,189,136,136,136,136,136,136,136,136,136,200,223, 9, +241, 89,135, 34, 34, 34, 34, 34, 34, 34, 34,127,178,225,250,195,141,150,248,100,115, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, + 53,255, 77, 38,171,148,217, 18, 71, 29,138,136,136,136,136,136,136,136, 84,143, 74, 71, 29,138,136,136,136,136,136,136,136,136, + 84,141, 9, 0,252, 11, 95,251,163, 68, 84, 75,140,104,137,136,136,136,136,136,136,136, 84,143,109, 0,156, 11, 13,214,105, 0, + 9,162,209, 18, 17, 17, 17, 17, 17, 17, 17,121, 59,148,236,151,213,167,132,249, 18,141,150,136,136,136,136,136,136,136, 72, 53, + 41,183,143, 22,133,242, 71, 14, 4, 26,241, 7, 85, 25,125, 16, 40,106,138,154,162,166,168, 41,106,138,154,162,230,191, 78,179, + 50,237, 64,252,243,152, 96,140,249,122,155,136, 67, 95, 69, 77, 81, 83,212, 20, 53, 69, 77, 81, 83,212,252,215,242,214, 71, 29, + 54, 5, 76,196,221,250, 78,226, 88, 56,137,136,136,136,136,136,136, 84,204, 31, 51,234,208, 23,248,207, 8, 63,251,173,250,208, + 20,139, 80, 32,191,162,101,237,237,237,127, 84, 42,149, 35,242,243,243,243, 40,138, 18,138, 62, 39,132, 0, 64,201,103, 29, 61, + 75, 73, 73,233, 80,217,127,203,100,178,117,142,142,142,255,201,205,205,205,167, 40,138, 80, 20, 5,138,162, 0,224,141, 57,207, +243,177,105,105,105,205,255,209, 69, 72, 8, 99,231,232,120, 91,194, 48,174,198,254,148, 23,132, 23,201, 73, 73,109,140,248,201, + 50,138,194,172,130,191,197, 74, 0,115,223,181, 51,130, 0,140, 33,203,249, 1,230,145,192, 80,158,166, 63,149, 0,155, 52,130, +176, 21, 0, 40,128,175,234,127,107,130, 80,135, 34,104, 76, 81,176, 36, 4, 89,132,194, 3,121, 43, 68,253, 69,187, 98,160, 68, + 34,233,103, 97, 97, 97,150,150,150,118, 25,192, 1, 0,195,108,109,109, 59,101,103,103,231,234,245,250, 19, 0,142, 85, 69,184, + 67, 99,204,150, 73, 37, 99,213, 58,253,138,235, 15,240,115,167,166,176,229, 4, 44, 87, 72,217, 14, 26, 45,183,242,218, 67,236, + 48, 82,146, 42,156,138,174, 25, 70, 63, 35,237,176,129,229, 14, 0,199,173,173,189,229,246, 22,191, 73,100,204,139,204,164,220, + 17,131,146,147, 99, 6, 87,163,220,255,142,216,217,217,141,166,105,250, 59, 66, 8,120,158,159,159,158,158,190,243, 45, 73,207, + 7, 96, 85,248, 58, 19,192,119,213,212,139, 6,224, 81,248,250, 21, 0, 79,177, 94,175, 50, 91,126,249,229,151, 73, 93,186,116, +193,218,181,107,177,101,203,150,151, 41, 41, 41,203, 1,236, 2,160,253, 11,116, 68,202,163, 62,240,254,170, 94,173,120,253,127, +191, 17, 74,124,220,189,156,147,249,167,143, 63,254, 88, 71, 8, 33,143, 31, 63, 38, 90,173,150,232,245,122,194,113, 28,225, 56, +142,232,245,250,226,201,213,213, 53,238,181,159,191,161, 73,211,244,250, 15, 63,252, 48,135, 16, 66,238,222,189, 75, 84, 42, 21, +209,104, 52, 68,171,213, 18,181, 90, 77, 84, 42, 85,169,201,209,209, 49,169, 34, 77, 11, 11,139,187,214,214,214, 73,214,214,214, + 73, 54, 54, 54, 73, 54, 54, 54, 73,182,182,182,197,147,157,157, 93,241,100,111,111,159,100,111,111,159,100, 99, 99,115,183,178, +245, 44,164, 23,128,203, 6, 76,189,202,248,109,247,146, 70,203,217,217, 57,137, 84, 1, 55, 55,183, 24, 3,214,179, 8, 71,138, + 2, 95,244, 91,138,130, 32,151,203, 61, 74,126,143, 55, 35, 93,149,134,148, 93, 92, 92, 62,116,118,118, 14,116,118,118,190,224, +226,226,242,161, 1,135, 88, 41, 77,115,115,243,187,118,118,118, 73, 78, 78, 78,201, 69,147,179,179,115,169,201,197,197,165,120, +114,116,116, 76,178,182,182, 46,183,140, 8,192,148, 55, 93, 2, 88, 57,208,149,101,152, 0, 71, 71,199,236,144,144, 16,158, 16, + 66,104,154,142, 43, 90,198,152,109,127,221,100,229, 95,195,252,212,139,242,160,220, 23,203,179, 82, 47,202,131,242,175, 97,190, + 38, 8,117,170,170,105, 32,101,105,142, 26, 53,106,212,131,164,164,164,184,204,204,204,132,173, 91,183, 70, 42, 20,138,107, 91, +183,110,141,204,204,204, 76, 72, 74, 74,138, 27, 53,106,212, 3, 0, 83,140,208, 4, 0,180,105,140,214,227, 6, 58,231, 63, 56, + 62, 50,191,107, 11,246,126, 59, 63,248,247,104, 35,141,219, 56,199, 55,255,202,246,246,249, 93,154,209,161, 70,106, 82, 44,203, +182,245,240,240, 24,107,111,111,255,113,225, 52,178,104,114,114,114, 26,233,228,228, 52,210,218,218,122,112, 69,154,135, 1,198, +144,201, 93,161,104, 59,184,150, 71,126,244,146,197, 36,100,250,167,100,108,109,247,236, 65, 14, 14, 53,254,130, 50,250, 67, 53, + 29, 28, 28,226,245,122, 61,209,233,116,196,214,214, 54,254, 45,174,231,106, 66,200,106, 66,200,106, 0,171,223,130,102,241,245, +204, 8,131, 93,145,166,130,165,233,153, 74,153,236,130,156,101,147,229, 44,155,172,148,201, 46,176, 52,253, 5, 0,197,223,169, +140,254, 0, 77, 51,123,123,251,231,235,214,173, 35,249,249,249, 36, 63, 63,159,172, 91,183,142,216,219,219, 63, 7, 96,102,132, +102, 85,117,222,165, 8,214,235,211,219,139,104,249, 2,205,187, 54,174,123,116,218,232,161, 16,142,172,163, 42,185, 99,250,169, + 77,243,230, 99,119,237,218, 5, 0, 24,209,175, 31,122,182,108, 9,115, 51, 83,200,100, 5,171, 67, 17, 10, 82,137, 20,253,103, +124,110,200,223,175,236,223,191,255, 71, 71,142, 28, 49, 3,128, 45, 91,182, 96,224,192,129,176,177,177,129, 82,169,132, 84, 42, +133, 68, 34, 41, 53,175, 12,134, 97,220,226,226,226, 28, 20, 10, 69,113,148, 77, 16,132, 82, 19, 33,164, 40,250, 6,142,227,224, +229,229,101,232,238,154,147,149,149,213, 49, 47, 47,175, 88,163,172,169, 86,173, 90, 0,112,206, 16,193,239,190,253, 6, 2,151, + 7,150, 5, 56, 14,208,232,104, 8,164, 76,115,131, 41, 83,166, 20,175,119, 85,232,211,199,159,162, 40,234, 72,112,112,240,209, +228,228,228,154,130,192,143,175, 98,164,235,147, 39, 79,158,152, 1,128,183,183,247, 20, 0, 71,141, 89, 15,150,101,221, 30, 62, +124,232, 32,151,203,203,141, 92,150,136, 96, 66,167,211,161,105,211,166,156, 49,255,225, 8,120,164,211,244,248, 38,205,154, 77, + 88,212,191,191,226,246,237,219, 10,154,166,193,113, 28, 86,173, 90,197, 17, 66,172,234, 3, 22, 97, 64,118, 5, 50,243, 0,140, + 46,172, 12,118, 0, 88, 85,202, 45, 16, 52, 86,233,229,254,207,114,251,183,108, 85, 99, 54,194, 30,133,180,172,109,118, 28,230, +172, 38, 10,248,115,163, 90, 22, 22, 22,253,214,174, 93,107,191, 99,199,142,236,199,143, 31,235,182,110,221,106, 63,113,226, 68, +115,157, 78,135, 73,147, 38,165,248,248,248, 72,215,174, 93,107,127,236,216,177,174,121,121,121,155,141, 42, 47, 10,223, 12,235, +215, 19,106, 61, 13,189,158,179,119,182, 55,223, 51,109, 84,103, 9, 33, 90,236, 62, 17, 12, 61, 39,252,108,100, 36,171,205,160, + 65,131,106,239,223,191,159,141,136,136, 96,235,213,171, 7, 65, 16,192,243, 60,244,122, 61, 0, 64, 16, 4,212,173, 91,183,218, +251,101, 44,224,109,231,104,115,161,205,251,189, 77,156, 21,114,216,100,164, 96,156,148, 53,223,169,212,236, 5,208,246,157,138, +236, 18, 2,150,101, 17, 19, 19, 3, 7, 7, 7, 19, 65, 16, 18, 0, 44,206,200,200,216,134,119,151,150, 50,150, 61,186,251,231, +245, 78,173,218,182,101, 28,157, 29, 16,249,228, 21, 88,138,239,254,240, 78,112,231,177,147,103, 78,211,114,220,135, 0,110,191, +107, 27,238,212,118,202, 0,138,102,182, 80, 68,192,215, 27, 79,230, 44, 91,185, 78, 57,105,252, 40,102,198,140, 25,112,119,119, +175, 57, 96,192,128,149, 0, 38, 87,170,211,106,202, 0, 48,244, 22, 16,130, 69, 63,156,204, 89,186,114,157,114,114, 21,116,254, +225,148,123,142, 84,219,104,249, 2,181, 27,184, 59,156, 95, 54,107,178,132,252,250, 95, 58, 63, 45,185,220,101,237,237,237,127, +124,239,189,247, 70,236,220,249,255,104,116, 27, 63, 63, 12,232,218, 30, 14,182,150, 80,154,202, 10,170, 35,129,194,131,199, 47, + 12, 50, 4,238,238,238,147,142, 30, 61,106, 86,210, 76, 72,165,210,226,169,164,201, 42,154,138, 42,224,138, 80, 40, 20, 8, 12, + 12, 4,203,178, 96, 24, 6, 44,203, 22, 79, 37,223, 51, 12, 3, 71, 71,163,186, 46, 45,183,180,180,108,148,147,147, 99,145,153, +153, 9, 15, 15,143,108, 0, 15, 75,124,223, 40, 37, 37,197,194, 24, 65,129,203,195,140,113,190,144,104,111, 65, 43,105, 9, 21, +219, 14, 55,238,132, 35,224,220,101,196,197, 39,162,125,235, 38,248,120,248, 32, 92,184,112, 1, 60,111,116, 75, 71, 18, 33, 88, +217,183,175,255,108,128,162,186,119,239,158, 57,117,234, 84, 58, 34, 34,226,163, 1, 3,250,251, 61,121,242,180, 48,170, 72,205, + 34, 4,235, 1, 36, 25,168, 43, 3,128, 43, 87,174, 0,128,188, 42,199,158, 92, 46,199,205,155, 55, 81,212, 76, 76,211, 52,104, +154, 6,195, 48, 56,245,212, 14,121, 90, 26,249, 73,161,248,212,223, 3,181,106,213, 2, 77, 87,222, 37,177, 51,160,184, 1, 12, +160, 36,146, 25,206, 46, 46, 53, 59,213,174,173, 12, 12, 12,100, 0,192,211,211,147, 36, 36, 36,100,158, 56,113, 34,135, 5,182, +120, 18,178,171, 34,147,229,238,238,222, 46, 46, 46,238,187,162,125, 78, 81,212,202, 26, 53,106,124, 85, 92,110,130,128,197, 63, +231, 73,166, 77,155, 46,109,213,121, 1, 0,160, 85,223,253,200,126,182,204,151, 74,159,103,249,103, 95, 37,178,179,179, 15,214, +173, 91,151, 73, 75, 75,187, 1, 32, 90,175,215,207,217,179,103,143,195,184,113,227,146,247,238,221,187, 28,128,203,138, 21, 43, + 58,231,229,229, 29, 50, 70,183,125, 35,188,223,172,145, 95,107, 15,119,119, 92,190,113, 27, 82,153,196,106,202,104,127,152,153, +177, 88,189,227,180, 16, 29,155, 62,245,218, 67,236, 50,194,100,181, 28, 52,104, 80,205,253,251,247,203, 0,224,225,195,135, 72, + 76, 76,132,189,189, 61, 76, 76, 76, 32,145, 72,192, 48, 12, 36, 18,201, 91, 49, 89,150,238,182, 65,199,143,159, 48,177,177,177, +194,198,207,167,225,227,228, 36, 88,153,155, 65,159,155, 87,243, 29,171, 40,188, 59,116,232,160,224,121, 30,121,121,121,184,116, +233,146,165,137,137,137,165,155,155,219, 34, 24, 49,122, 74,161, 80, 36,169,213,106,135,194,215,201,106,181,218, 17, 64,182, 92, + 46, 47,186, 78,231, 22,206, 13,109, 78,140,198,155,205,132,175, 40,138, 42,249, 89, 85,105,209,178, 69,163,192, 99, 71,246,153, +101,229, 36,194,202, 58, 25, 52,178,176,109,219, 38,152,152, 88, 96,209,162,121,236,139,238, 93, 93,123,189,255, 97,224,163,240, +200,238,239,156,217, 34,212,182,238,125, 71,216,152, 40,205, 11,235, 18, 61,118,110,159, 6,154,166,241,213, 87, 95,161, 65,131, + 6, 19, 30, 61,122,180, 0, 64,122,197, 50,216,214,176,227, 16, 27,153,162,160,136, 5, 94,143,173, 7,190, 40,208,153, 59, 17, +195,250,214,154,240,229,160,231,103, 27,212, 70, 78,225,141,185, 74, 66,227, 21,213, 10,197,134, 33, 32, 32,160,147,191,191,255, +229,242,222,255, 3,112,198,255,243,103,149, 50, 95,108, 64, 64, 0,241,247,247,167, 74,108, 92,169,247, 21,209, 24,176,179,182, + 84, 6,110, 89, 60,205,140,189,117,154, 81,189,122,138,120,117,169,138,188,212, 16, 77,165, 82, 57, 98,231,206,157,165, 66, 74, + 30,142, 14,144, 74, 37,144, 72, 41, 88,117, 40,200, 94,159,121, 53, 0, 20, 85,174,201, 42,165,153,151,151,167,190,127,255,190, +217,142, 29, 59,224,224,224,128,154, 53,107, 66,169, 84, 66,161, 80,148, 50, 87, 37, 13, 87, 25, 70,171,148,102,209,247, 44,203, +130,166,105, 92,184,112, 1, 28,199, 97,208,160, 65,111,152, 44,150,101,203, 51,110,229, 13, 79, 61, 7,224, 33, 33,164, 99, 97, + 5,252, 16, 64,167, 18,223,247,178,183,183,159, 3, 96,185,161,154, 12, 67,192,168,111, 64,112, 91, 7, 54,102, 26,180,146,198, +184,120, 45, 24, 59,127, 92, 11, 0,168, 89,175, 5, 6, 15,240, 47,142,198, 25,184,158,197,184,186,186, 30, 72, 73, 73,237,221, +181,107, 87,100,100,100,232, 23, 47, 94,140, 70,141, 26,193,219,219,219,160, 50, 42,231,206, 57,233,225,195,135,238, 42,149, 10, +132, 16, 67,204,217, 27,154, 20, 69, 97,207,158, 61, 80,171,213,111, 44,108,221,105, 41,190, 24,232,137, 49,159,238,194,202,199, +135,176,121,243,230, 10,183, 93, 9, 52, 82, 91,214, 93, 47, 99,184, 70,203,231,125, 34,255,248,227,143,153, 49, 99,198,224,213, +171, 87, 24, 55,110,156,250,194,133, 11,218,196,132,132, 19, 50, 65,216,168, 43,109,140,203,213,148,203,229,187,207,157, 59,135, + 67,135, 10,124, 73,100,100, 36,188,188,188, 76, 75,153,228,244,195,200,137,222,136,160, 83, 17,104,213,119, 63,130, 78, 13, 7, +159,121, 90,210,220, 11, 89,198,236,207, 42, 80,150,230,161,180,180,180, 98, 19,181,119,239, 94,147,189,123,247,246, 7,112, 18, +192, 33, 0, 72, 79, 79,255,222, 72, 77,128,194,152, 33, 3,251,131,149,154, 35,226,105, 44, 58,181,105, 10, 71, 7, 7, 60, 12, +143, 66,116, 92,122, 18, 69, 97,116,175,182,178,229, 42,149,118,193,213, 7,248,169, 18, 77,202,205,205,205,251,240,225,195,210, + 18, 17,232,226,115,156, 97,152,226,247, 69,198,187, 42,199,103,145,201, 50,119, 51, 11,250,102, 83, 59,211,160,144,189,240,242, +124, 31,214,239,251,227,167,243,231,241,228, 81,152, 90,155,207,117,251, 11,202,232,143,210,244, 30, 56,112,224,141,125,251,246, + 89,197,196,196,224,202,149, 43,168, 89,179, 38,242,243,243, 13,185,225, 45,165,169, 86,171, 29,138,126, 67, 81,148, 67, 81,224, + 93,171,213, 22, 21, 70,209,137,104, 85, 98, 57,171, 10, 52, 61, 74, 44, 87,100,174, 60,223,194,182,203, 20, 82,233,225,227,199, + 14,152,133, 69, 92, 65,147,198,173, 97,102, 89, 31, 2,159,136,180,244, 92,100, 60,141,199,183,223,174,196,162,197,243,113,242, +151, 35,102, 62,190,141,143,106, 57,174, 46, 0,245, 59, 83,238, 20,153, 16,120,106,239, 22,138, 8, 80, 37, 69,200, 37,121,207, +149, 35,134,127,200, 12, 29, 58, 20, 39, 79,158,196,163, 71,143,182, 84, 96,178, 2, 75, 68,230, 39,132, 94, 57,180, 5,132, 64, +149, 28, 33,151,170,158, 43, 71,125, 52,152,249,120, 88, 79,220,250,125, 61,122, 54,121, 30,234,226,128, 1, 25,133, 22,155,101, +144, 38, 87,224, 58, 9,194,173, 18,102,235, 18, 0,170,132,193,186,132,255,247,193,252, 39,208,167,208, 88, 77,120,253,198,132, +173,138,193, 2, 0, 47,192,140,146, 73,131,118, 46,250,196, 69,249,234, 17,171, 9,189,137,120,141, 64,182,190,228,132,166,128, +201, 61, 64,245,250,111,242,243,243,243,162,162,162, 76, 70, 15, 24,128,182,126,126,112,182,181, 69, 93, 55, 55,152,200,101,144, + 73, 37,165,110, 89, 13,110, 67,160, 40,226,227,227,131,190,125,251, 66, 34,145, 64,169, 84,194,204,204, 12, 50,153,172,204,104, +150,161,119,185,132, 16, 48, 12, 93, 40, 28,138, 0, 0, 32, 0, 73, 68, 65, 84,131,208,208, 80, 68, 71, 71,195,202,202, 10,215, +175, 95, 71,183,110,221,222,136,106,149, 52,103,198,132,232,203,168,248,139,140,216, 57, 99,180,120,158, 66, 46,105, 12,197,203, +169,200,167,154, 66,163,225,160,209,104,240,211, 53, 29,110, 71,229, 65,167,211, 66,163,209, 84,244,159,229, 65,187,184,184,140, +168, 91,183,238,148,225,195,135,235,101, 50, 25,242,242,242,144,159,159,143, 71,143, 30,233,123,247,126, 63,179,111, 95,127,203, +211,167, 79,147,194,166,195, 36, 35,180,211, 92, 93, 93,221, 11,155,103,211,170,114, 84, 83, 20, 85,108, 98, 94,103,244,247, 97, + 96,153,130, 50,217,178,101, 11,120,158, 7, 33,164,220, 66, 82, 83,212,111,139,151,174,177, 92,177,238,103, 88,218, 56,226,242, +229,203,252,217,179,103,115, 40, 32,242,201,163, 71,223,127, 0,156, 57, 12,232,140, 89,191,140,140, 12,147,154, 53,107,194,205, +205, 13,130, 32, 64,175,215, 23, 71, 95,210,210,210,160, 82,169, 96, 99,154,137, 58,182,110,224,114, 46, 33, 33,244,107, 56,155, + 69, 96,215, 57,173,190,153, 55, 30,252, 13, 46, 28,255, 45,156,170,121,215, 12, 87, 7, 39,119,208, 68,143,248,228, 52,244,239, +211, 19,140,212, 12, 47, 98, 82,209,184,126,109,231,143, 62,104,231,204, 80, 28,102, 45,223, 63, 5, 16,126,170, 76, 46, 55, 55, +151,143,136,136,192,195,135, 5,126,215,194,194, 2,166,166,166,165,206,113,154,166,171, 21,209, 42, 50, 89, 75,183,116, 51,165, + 37,121,200,230, 3,177, 99, 79, 48, 26,251,248, 99,107,208, 29, 53,159,148,222,125,181, 90, 29,121,224, 31, 28,204,112,114,114, +154, 40, 8,194, 34, 66, 72,102,251,246,237, 29,247,239,223,111, 29, 23, 23,135,224,224, 96,124,245,213, 87, 41, 60,207,115,132, + 16,138, 16,242,245, 91,248, 59,161,132,193,122,155, 72,148, 10,124,106,103, 65,245, 99,105,139,154, 92,118,238,139, 84, 45, 57, +145,207, 9, 63, 0,208, 87,120,113,163,233,255, 28, 57,184,197,197,206, 94, 64,103,251,174, 72, 72,210, 97,233,231,163,144,150, +150,131,159,182, 47, 3, 32,131,142, 99,208,177,243,135,112,112,112,197,132,241, 19,156,182,252,184,245, 19, 78, 16, 86,227, 29, + 33,241,198,230, 95, 0, 4,218,219,219, 63,250,100,194, 4,251,154, 53, 71, 66,161, 80,224,192,129, 3,216,191,113, 35,191, 14, + 24, 44, 7, 46, 78, 2,126,169, 80, 39,232,255, 58,211, 38, 77,178,247,245,157, 4,185, 92,142,223,207,254, 23,234,196, 61, 57, +125,218, 66,151,175, 70,159, 26,125,137,205,203, 83, 84,186, 68,130,167, 0, 32, 81, 32, 1,192,235,205, 96,255, 52,131, 85,196, +105,252,191, 95,214,132, 82, 17,173, 42, 95, 59, 37,178,144,237,211,135,121, 58, 66, 67,105,175,157, 66,156, 70,224, 87, 60,209, + 49,247,178,200, 23,225,101,152,172,194, 3, 91,240,240,240, 64,215,230,205, 49,160, 67, 7,176, 44, 11,133, 76, 10,115,133, 9, + 8, 95, 16,201, 42,106, 58,172,160, 78, 68, 89,209, 39, 91, 91, 91, 72,165,210, 98,131,101, 68, 52,171, 76, 77, 65, 16,192,178, + 44, 30, 62,124,136,246,237,219,195,221,221, 29,135, 14, 29, 66,175, 94,189,222,104, 74, 52,214,100, 21, 25,173,215,154,241,122, + 1, 40,138,100, 25,101,180,212, 90, 10,169,218,198,160, 40, 63,112, 28,192, 19, 64,163, 86,131, 16,128, 16, 64,175,211, 66,173, + 86, 23,255,167, 33, 77,178, 78, 78, 78, 30, 38, 38, 38, 75,102,207,158,229,219,184,113, 19,164,164,164, 64, 16, 4,152,154,154, + 34, 63, 63, 31, 22, 22, 22,104,219,182,237,139, 37, 75,150, 36, 16,130, 9, 70,154,172,106, 83,180,207,207,159, 63, 95,170,217, +176,104,202, 75,136,197,152,207,246, 66,198, 22, 52, 45, 21,245,225,169,232,186,219,165, 99, 59,220,184, 23,201,253,103,214,122, +141, 36, 45,120,185,147, 32,236,140,173,198,118, 17, 66,144,154,154,138,164,164, 36,244,235,223, 31,251,247,237,195,203,151, 47, + 81,191,126,125,116,233,210, 5, 14, 14, 14,120,249,242, 37,110, 95,213, 64,147,145,142,116,109, 48,148,230,173,112,252,114,148, +230,171, 45,186,168,191,240,130,209, 15,192, 40, 11, 11,139, 90,249,249,249, 9, 28,199, 29, 6,112, 24,192, 96,150,101, 7, 43, +149, 74,231,236,236,236,231, 40, 24, 77,116,162, 50, 49, 19,133,194, 86,174,176,128,192,105,192,178, 44,220,221,107,130,240, 90, +100,100,171, 48,122,104, 95,220,123, 24,142,179, 23,111,113,122,189,176,193,144,221,202, 48, 12,241,246,246, 70,114,114, 50, 36, + 18, 9, 76, 76, 76, 96,102,102,134,185,115,231, 98,227,198,141,197, 38,171,170, 70,107, 44,224,109,225, 97,118,235,187, 77, 5, + 38, 43, 49, 62, 1, 73,177, 18,216,219, 58, 98,195,198,117,121, 25, 47, 19, 91,253, 12, 68,254,211, 43, 89, 65, 16,190,142,139, +139,115, 96, 89,214,137,227, 56,196,196,196,224,238,221,187,152, 58,117,106, 82, 90, 90, 90,103, 84,113, 27, 21, 10, 69,114, 81, + 36,171,176,233,176,188,230,196,204, 18,145,172,204, 10, 36,203,107, 38,172, 93,211,205,252,194,246,181, 51, 60, 90,180,106, 75, + 43, 89,139,140,220,167,137,237,175, 93,185,220,118,234,218,159, 62,137,206,200,237, 9,224, 89,121,162,114,137,164,119,235,118, +237, 88,144, 36,176,178,246, 88,185, 98, 40, 82, 82,179,145,145,158, 3,169,212, 20, 90, 61, 3, 94,160,208,182,125, 7,252,119, +215, 65, 52, 24, 63,142,145, 73, 36, 61, 56,173,246,157, 49, 90,133, 44,251,225,135, 31, 60,124,124,124,176,115,231, 78, 92,220, +189, 27, 31,103,101,225, 50, 77, 51,122,137,196,238,140, 94,191, 13,149, 24,173,146, 58, 13, 26, 52,192,207, 63,255,140, 61,123, +246,188, 26,209, 45,249,232,140, 17,112,208,233,240, 94,240, 99,216,212,232, 11, 4, 63,134, 77, 51, 31,212,229, 88, 60,165,168, +210,233,160, 2, 2, 2, 58,149,156,255,195, 72, 64, 57, 77,236, 44,128,206, 1, 1, 1,164,228,188,210, 11,167,189,215,164,101, + 61,107,121,250,213,241,160,244,135,214, 35, 38,143,211, 46,120,172,147, 61,201, 37, 51,194,129,117, 21,220, 65, 16,134, 97, 96, +110, 98, 2,123, 43,171,130, 48, 63, 77, 3, 2, 32,232, 1,138, 47, 48, 0, 68,160, 64,120,163, 46, 24,144,201,100,101,118,124, + 55,182,111, 86, 73,205,156,156, 28,188,120,241, 2, 19, 38, 76,128, 82,169, 44,112,238,137,137,240,244,244, 4,203,178,136,139, +139,195,239,191,255,142, 90,181,106, 65, 46,151, 27,229,182, 74, 68,151, 26,161, 96,148, 97,163,132,132, 4, 11,103,103,103, 24, + 29,209, 18, 8,242, 53, 20,180, 90, 30, 79,158, 60, 65,124,124, 60, 94, 60,127,138, 22,121,217, 32, 96, 64, 8, 49, 42,162,229, +234,234,234, 87,187,118,237,173,203,151, 47,151,186,185,185,129, 16, 2,107,107, 43,228,231,231, 35, 53, 53, 13,245,235,215,135, +187,187, 59,150, 47, 95, 14, 0,251,255,108,147,245,218, 49, 85,108,180, 74, 26,174,207, 62,240, 64,122,186, 25, 24,134, 46, 54, +206,149,244,209,146, 2, 64,231,158, 3,217, 11,103,207,152,114,192,146, 68,134, 89,194, 86, 94,142,122, 94, 16,148,229,125, 31, + 19, 19, 3,137, 68,130, 35,135, 15, 35, 61, 41, 9,141, 27, 55, 70,203,150, 45,241,244,233, 83,220,187,119, 15,182,182,182,176, +119,107,131,203,207,117, 8,139, 87,193,210,210, 18, 81,177,244, 95,153, 50, 96,124,247,238,221,191,250,254,251,239, 29,156,156, +156, 36, 41, 41, 41, 62,155, 54,109,106,188,105,211,166,105,159,124,242,137,227, 39,159,124, 98,109,111,111,207, 38, 38, 38,122, +127,254,249,231,205, 2, 3, 3,107, 1, 88, 83,145,160,169,169,185, 13, 35, 53, 5, 69,177,176,178,180, 6, 43, 51,133,192,177, +224, 5,192,194,210, 30, 55,238, 29,193,245,144,156,137,201,105, 56,108, 80,124,172,176,220,109,109,109,223,136, 84, 79,157, 58, + 21,219,183,111, 47,110, 70,172,170,201, 90,186,169,155, 25, 85,104,178, 18, 99, 88, 80,154, 90, 56,245,203,205,204,140,151,137, +237,223, 5,147, 85,116,141, 35,132,224,249,243,231,200,207,207,199,213,171, 87,241,245,215, 95,167,188,110,178, 28, 28, 28,198, + 91, 88, 88, 44,206,205,205, 93,153,152,152,184,190,210, 27,191, 2, 19, 85,244,186,104, 94,102,115,162,129,171,234, 89, 86, 36, +203,221, 89,113,238,222,213,189,158,150,228, 1,133,232, 9,192,147,236, 71,230, 65, 14, 29,223,111,209,135,110,186,249,155, 26, + 45, 39,206, 61, 23,147,173,246, 41, 47,178, 37,240,124, 83, 83, 51,115, 0,201, 8,190,123,169,216,100,165,165,103, 65,163, 99, +160,209, 82, 80,235,104,116,237,254, 30, 54,110,221,131,184,228,116,240, 60,223,240, 29, 51, 89, 54,126,126,126,147, 6, 15, 30, +140, 37, 75,150, 32,240,251,239,181,147, 41, 42,155, 5,200,105,158,135, 64, 8, 69, 27,214,137,189,148,206,234,213,171,127, 1, + 48,108,249, 84,180,201,200,197,104,151,190,196,166, 70,223,130, 5, 7,205, 38, 0, 96,147, 18, 88,186,202,244,247,247,167,138, + 90,214,140,109, 97,251,187,195,250,251,251, 95, 14, 8, 8, 64,201,121, 69, 63, 48,119,244,121,255,203,153, 83, 86,180,232,213, +129, 74,152,217, 3,233,217,106,110, 94,152, 78, 22,171,170,216,100,149,228,203, 77,155,112, 47,178,224, 60,118,115,112,192,172, +143, 62, 2,225,128,235,143,194,112, 48, 48, 16, 67,187,119,135,169, 66, 97,112,100, 67, 16,132, 50,163, 88, 37,163, 89,198, 70, +157, 50, 51, 51,113,248,240, 97,180,108,217, 18, 74,165, 18, 44,203,162, 81,163, 70, 8, 15, 15, 71,237,218,181, 65, 81, 20,142, + 31, 63,142, 1, 3, 6,224,217,179,103,104,211,166,141, 89,116,116,180,209, 70, 43, 44, 44,204,130, 16,210,177, 40,250, 81, 85, + 52, 26, 13, 34, 34, 34,208,183,111, 95, 88, 91, 91,195,213,117, 63, 2,207,237,133,210,239, 99, 80, 20,140, 50, 90, 60,207,143, +237,211,167,143,148,162, 40,168, 84,249, 80, 40, 76, 96,106,106, 6,115,115, 11,120,123,251, 32, 62, 62, 30,189,122,245,210, 70, + 69, 69,109, 78, 72, 72, 56,100,236,186,250,250,250,154,190,124,249,242,227, 26, 53,106,200, 0,192,196,196,164,126,237,218,181, +191,120,246,236, 89,142,177, 81,173, 34,131, 69, 81, 20, 24,134, 41, 54, 90, 44, 77,195,217,201,161,248,125, 97,255, 52,170, 2, +173,236,184, 52,141, 28, 0, 60, 60, 60,176,241,199,147,116,159, 62,125, 48,109,218, 52,232,245,122,108,222, 92, 48,200,110,248, +240,225,208,233,116, 56,122,180, 96,144, 36,203,178, 21,134, 77,238,222,189,139,224,224, 96,232,245,122,100,101,101,225,215, 95, +127,197,229, 43, 87,112,224,248,111,120,249,252, 41, 26,249,120, 98,220,184,177,144, 72, 36,216,181,107, 23,218,183,111,255,151, + 94, 16, 36, 18,201,136,237,219,183, 59,239,220,185, 51,243,248,241,227,121,173, 91,183,150,175, 91,183,206, 97,227,198,141,246, + 90,173, 22,211,167, 79, 79,190,117,235,150,166,127,255,254,166,219,182,109,115,174, 83,167, 78, 15,142,227,202, 50, 90,166, 0, +134, 2, 24,153,145,163,101, 51,115, 84, 16, 56, 45,158,191,124,129,172, 92, 45, 4, 94,135, 87,177,241,200, 85,243, 72, 75,207, + 65,163,166, 61,127,184,116,233,210,124,157, 78, 55, 15, 64, 64,101,235,249,232,209, 35,220,186,117, 11, 47, 95,190,196,243,231, +207, 75, 59,197,241,227,177,103,207, 30,163, 35, 90,101,155, 44, 6,148,166, 54, 2,142, 7,101, 38, 63, 77,120,103, 76, 86,225, + 53,104,145,179,179,243, 34,103,103,103,197,249,243,231, 45,107,212,168, 1,142,227,180,175, 71,178, 58,119,238,188, 96,251,246, +237,206,181,107,215,158, 10, 96,253,223, 97,221,105, 26,227, 87,110,153,100,103, 46,123, 21,143, 39,107, 10,115, 9, 50, 64,126, + 54,112,105, 31,216,118, 11, 95, 76,237, 63,219,122,206,206, 37,227, 5, 8,229,142,144,141,122, 22,131, 45, 91, 54, 98,198,244, +209,248,239, 79, 43, 33, 8, 44, 52,122, 6, 30, 53, 91, 67,163, 19, 64,209, 44, 26, 55,109,142,139,151,174, 66, 66, 3,135,119, +110,121,199,124, 22,210, 67, 67, 67, 55, 31, 63,126,252,211,105,211,166, 65, 16, 4,217,226, 45, 91, 84, 41, 41, 41,203, 96, 92, +254,171,215,117, 6,108,217,178, 37,114,206,198,148, 95,102,140, 0,243,242, 20,149, 30,252, 24, 54,131,102, 19, 28, 89, 65,161, +153, 15,210,149,101, 87,241, 87, 94,155,191, 27, 70,171,200, 73,150,156,151, 69, 83,175, 90,223, 88,218, 88,143,165,205, 93,237, +102, 77,155,204, 62, 75, 84,227,104,141,143,114,127,223,189,193, 52,145,147,255, 16, 5,245, 58, 99,254,248,224,239,191, 23,191, + 94,181,127,127,153,223, 37, 12, 26,100,240,157, 89,121, 81, 44, 99, 35, 89, 0,160, 84, 42,173,122,244,232,129,110,221,186,225, +195, 15, 63, 44,238,147,213,164, 73, 19, 28, 56,112, 0, 3, 7, 14,196,253,251,247,225,236,236,140,122,245,234,161, 94,189,122, + 56,115,230,140,177, 23, 57,240, 60, 15, 63, 63,191,162, 81,135,141, 98, 99, 99, 45,170, 90,144, 26,141, 6,105,105,105,176,177, +177,129, 76, 38, 67,171, 86, 45,241,233,103,173, 96,231,252, 51,252,124,125,144,151,151, 87, 60,252,221,128,202,214,175,110,221, +186, 72, 73, 73, 65, 74, 74, 10,236,237,237,225,226,226, 2, 39, 39, 39,172, 89,179,134,172, 95,191,254,172, 78,167,219,156,154, +154,106,116, 36,203,201,201,169, 3, 69, 81, 11, 84, 42,149,172,196, 29,174,204,222,222,254,132, 74,165, 90,150,144,144, 96,112, + 71, 80,138,162,160,211,233, 64, 81, 20, 78, 63,119, 65,158,150, 66,118,108, 48,166,125,224, 89,202,120, 73, 36,146, 74,155, 75, + 9, 33,121,195,134, 13,115,112,119,119, 67, 76,212, 35, 28, 57, 66,240,253,247,223, 23,141,138, 68,100,225,141, 65,209,251, 46, + 93,186,160,102,205,154, 32, 70,228,202, 16, 4, 1, 15, 31, 62,196,254, 19,151,225,236,233,139, 87, 79, 34,112,239,204, 41,212, +176,183, 65,131,166,205,161,215,235,171,149,122,227,109,160,215,235,119,120,121,121, 17,173, 86,123, 25,192,198,144,144,144,209, + 9, 9, 9,211, 79,158, 60,233, 50,120,240,224,248, 83,167, 78,173, 3,176, 51, 36, 36,100,210,183,223,126,219,141,227,184, 50, + 71, 11, 50, 12,243,223,207, 63,255,188,243,224,193,131, 41, 41,173,215,158, 63,183,139,229, 56, 61,245,229,188, 29,252,165,107, +151,105,142,211, 83, 31, 14,251, 92, 56,243,123, 8, 61,241,179, 85,124,147,214,125, 16, 26, 26,234,228,239,239,255,173, 94,175, +175,208,104, 21, 69,170,202,139, 80, 50, 12,131,209,163, 71,227,192, 1,195,123, 80,141, 3,106, 91,120,154,221, 90,186,169,187, + 25,197,230,150, 48, 89,117, 16,112, 60, 40, 51,233, 73,252, 59,101,178, 0, 32, 45, 45,237, 71, 0, 63, 10,130,144,100,106,106, +138,156,156,156,178,142, 63, 69, 72, 72,136, 66, 38,147,161,103,207,158, 54,129,129,129,145, 52, 77,175,143,143,143, 47,215,113, +148,213, 76, 88, 86,115, 34,170, 49,234,208,218, 30,254,173, 58, 52, 53,127,108,185,196, 92,193,170,239,215,136, 84, 88, 80, 0, +178, 52,142,207,111, 68, 15,205,166,146,229, 77,154,119,105, 6, 11,214,212, 63,147,203, 41,211,104,209, 12,115, 47, 43, 35,179, +119,118,142, 22,215,174,135, 98,216,208,186,208,232, 40, 8, 2,141,220, 60, 13,192, 72, 64, 3, 24,254,209, 40, 16,138, 69,122, + 82, 60, 24,134, 9, 1,199,225, 29, 99,238,164, 73,147,122,207,155, 55,175,214,172, 89,179, 48,107,214, 44,207,237,219,183,255, +184,116,233,210, 89, 41, 41, 41, 13, 81, 73,242,241, 10,116,106,156, 58,176,112,230,137,171, 91,179,250,180, 85, 61,105,230, 83, + 16,249,106,230,131,116,137, 4, 79, 89, 6,105,132,148,238,102,228,239,239,223,169,228,252, 31,198,235,157,224,139,223, 27,212, + 71,171,110, 45,215,247,154, 54,241,251,108,254,188,249,230,225, 55, 46, 97,206, 55, 27,137, 87,243, 30, 57, 63, 94,189,167,205, + 53,173,217, 59, 55,245,233,117, 67,253, 5, 0,188,215,117, 32, 26,213,111,249,198,151,237,187, 20, 36,107,191,118,241, 46,146, + 82,226, 12,174,108, 11,205, 65,153,125,178, 12, 25,210,255, 58, 42,149, 42, 51, 52, 52,212, 33, 54, 54,182, 84,199,247,154, 53, +107,130,162, 40, 4, 5, 5,225,214,173, 91, 24, 54,108, 24, 88,150,133, 68, 34,193,229,203,151,141,138,198,148,136, 46, 21,141, + 58,236,229,230,230, 86,222,104,195, 74,181, 84, 42, 21,178,178,178,112,238,220, 57,212,173, 91, 23, 75,151, 46,133,139,179, 35, +230,207,159, 9, 65, 16,144,157,157, 13,158,231, 13,141,104, 9, 69,209, 34, 65, 16,144,146,146,130, 90,181,106, 97,211,166, 77, + 88,183,110,221,183, 9, 9, 9, 39,141, 93, 71,119,119,119, 43,158,231,191,236,211,167, 79,143,254,253,251,163, 87,175,210,249, + 88,247,237,219,103,126,244,232,209,101, 27, 54,108,120, 79,167,211, 45, 79, 78, 78, 78, 49, 68,247,231,159, 11,210, 47, 41, 91, + 47,194,156,193, 53, 48,114,202, 46,172, 89,115, 12,114,185,188, 84,197,187,100,201,146, 10, 77,140, 64,136,151, 52,245, 70,252, +204,217,171, 29,150, 45, 11, 68, 96, 96, 50,104,154,134,179,179, 51,104,154,198,139, 23, 47, 64,211, 52, 60, 61, 61, 65,211, 52, +226,226,226,138,250, 4,102,160,140, 81,143,101,223,133,211, 80,171,213,136,121,245, 18,177, 81,145, 48,203, 78,132,189,133, 18, + 25,143, 30,162,209,184,241,197,249,159,254, 98,246,104,181,218, 61, 37,222,175, 62,117,234,148,150,162,168, 15, 81,208, 79,163, + 40,162,241, 45,199,113,223,150, 39,210,186,117,235, 38,243,230,205,147, 20,165,219,112,241,248,142,211,233,116, 2, 0,248, 52, +234, 88,202,237, 63,125,250, 20,107,214,172, 65, 94, 94, 30,164, 82,169,212,144,253, 32, 8, 66,241, 8,195,178, 76,152, 49, 38, + 11, 0,108, 61,221,126, 8, 10,190,204, 63,136,218,170, 10,121,252,171, 73,194, 43, 26,180,246,221, 53, 89,175, 71,182,220,220, +220, 22, 9,130, 64, 8, 33, 11, 75,124, 37,247,240,240,184,122,254,252,121, 91,142,227,176, 97,195, 6,171,196,196, 68,171,142, + 29, 59,206, 1, 80,174,209, 42,171,153,176,172,230, 68,148, 24,117, 40,151,203,109,180,218,114,131, 39,111,140, 58,228,121,120, + 91,152, 91, 33, 3,177,208,216,233,155,100,218,114,233, 23, 18,198,223,119,137,110, 90,223,148,215,215,162,179,181,112, 85, 90, + 65, 32,164,220,161,209, 26,189,254,215,251,193,247,122,122,184,215,101, 78, 6, 92, 65,191, 1,131,161,209,208, 80,235, 41, 80, +140, 4, 20, 35, 69,195, 70, 77, 81,175, 65, 35, 16, 0,119,111,223,224,180,122,253,133,119,169,236,157,219,125, 58,140,162,176, + 30, 68, 32,101,228,209,170, 53, 96,192,128,101, 0, 62,171, 76,199,161,245,167,195,104,186, 64,167,100, 30,173,207, 63,157,132, + 71,183, 37,150, 87,130, 87, 72,123,181,198,233,148, 64, 10, 74,197,255, 71, 29, 74,232,106,165,230,248,167, 24,174,202,141,150, +187,187,187,149,133, 92,241,243, 39,227,198,154, 71, 63,184,137,196,176, 32, 92,191, 18,153,113,240,232,177,244,188,180,228,113, + 70,152,172,226,102, 62, 91,167, 26,168,233,251,166,209, 82,152,217, 3, 0,106,250,182, 4, 99,106, 92, 26,161,178,162, 89, 85, + 49, 89, 37, 47,216,101,229,208,154, 56,113, 34,182,111,223,142,118,237,218,193,203,203,171,248, 98,111,108,212,172,140,232,146, +209,163, 13, 75,146,147,147, 3, 79, 79, 79,108,219,182, 13, 33, 33, 33, 48, 55, 55,199,176, 97,195,144,147,147, 83,108,176, 12, +237, 12, 79, 8,121,122,254,252,249, 22, 67,134, 12, 33, 18,137,132,202,204,204,132,149,149, 21, 54,109,218,148,151,144,144,112, +186, 10, 38,107,176, 84, 42,157, 57,116,232, 80,198,199,199, 7, 73, 73, 73,176,176,176,208, 83, 20, 37, 1, 0, 43, 43, 43,189, +137,137, 9, 38, 77,154,132,198,141, 27,119,152, 53,107, 86, 59,150,101, 55,197,199,199,239,170,232, 88,162, 40,170,184, 66, 29, +183, 62, 2, 90,109, 65, 5,189,121,243,102, 20,246,117,251,127, 19, 65, 84, 20, 96,192, 72, 22, 51, 51, 51,120,121,121,149, 89, +246, 29, 58,116,192,221,187,119, 11,154, 38, 89, 22, 14, 14, 14,184,126,253,186, 65, 35,169,138, 18, 65,134,134,134,194,183,166, + 29, 66, 2,207,195, 78, 41, 65, 99, 23, 39,184,117,232,132,200,200,200,191, 50,154, 69,161,160, 31, 70,247,194, 99,112, 7,128, +137, 37,222,111, 2,240,131, 49,130, 28,199, 17,154,166,169,152,152, 24,157, 82,169,164,108,108,108, 88,185, 92, 14,141, 70, 83, +108,184,158, 62,125,138,128,128, 0,196,198,198,194,198,198,134,182,180,180,132, 78,167,203, 48, 68,223,219,219, 27, 78, 78, 78, +165, 58,190,143, 27, 55,174, 74, 38,107, 52,224,183,253,187,229, 53,228, 52, 99,233,107,247, 30,158, 71,188, 80,211, 90, 40,254, + 13, 38, 11, 0, 50, 51, 51,127, 4,240, 99,209,123, 59, 59,187, 49, 12,195,204,215,104, 52,150,151, 47, 95,182,178,183,183,167, +118,237,218,165, 95,184,112, 97, 38,195, 48, 25, 20, 69,173,253,235,205, 33,194, 82,179,162, 60, 37,214, 46,194, 3, 53,185, 49, + 61,102, 78,189, 12, 73, 93,123,170,129, 31, 6, 36,135, 95, 27,195, 69,181, 77, 74, 72,164, 9,132,176, 10,174,193, 59,230,204, + 91,242,101,100,196, 61, 15,133,133, 2, 19, 39,205,195,233,179, 23, 65,209, 18, 92,189, 17, 4,173,142, 71,106,122, 22,134, 14, + 31, 1, 55,103, 59,132,221, 58,151,194, 9,194,166,119,203,100, 11, 27,123,246, 27, 99, 45, 55, 81, 22,238, 19, 30,123,126,154, + 9,154, 94,143,175,190,250, 10,126,126,126, 83, 66, 67, 67,191, 70, 37,121,180, 40, 74,216,216,176,211,112,107,169,188, 64,135, + 8, 60,182, 29,158, 83,152, 71,107, 6, 54,253,120,180, 97,131,154,207, 23, 87,148, 71,235, 29, 50, 89, 37,231, 21, 27, 45, 79, + 79, 79,185,169, 4, 19, 36, 12, 59,235,147,143,250,219, 39, 71, 61, 66,108,248,189,130,230, 5,157, 74,151,248, 36,220,144, 84, +232,221, 81, 58,127, 7,169,168,233, 74,173, 54,232,142,190,148,102, 81,133,251,122, 52,203, 72,147,245,134,102, 73,179, 85, 50, +111,150,187,187, 59,150, 45, 91,102, 72, 30,173,215,183,189,136, 94, 40,232, 0, 95,178, 51,124, 47, 3, 77, 86,153,154,246,246, +246, 72, 75, 43,200,144,208,185,115,103,116,238,252,255,241, 12, 58,157,174, 56,138,101,110,110, 94, 86, 68,235, 13, 77, 19, 19, +147, 57,199,142, 29, 27,123,227,198,141, 33, 95,124,241,133,164, 91,183,110, 69,102, 46, 31,134, 61,219,173,148, 38,207,243,147, +206,157, 59,199, 8,130,128,109,219,182,225,238,221,187, 68,169, 84, 46, 80, 42,149, 27, 77, 76, 76,120,149, 74, 53,113,252,248, +241, 35, 22, 47, 94, 76,119,232,208, 1, 55,111,222,164,107,213,170, 53, 10, 40,149,196,178,204,109, 15, 10, 10, 2, 77,211,224, +210, 95, 97,202,156,131, 48, 53, 97, 17, 17, 17,129,244,244,244, 55,146,152, 26,178, 63, 75, 70, 74,138,166, 14, 29, 58, 20, 55, + 67,182,106,213, 10, 12,195,224,254,253,251,229, 53,195,150,212, 36,182,182,182,197,199,135, 84, 42,197,197,139, 23,241,205, 55, +223,192,195,198, 10, 25,225, 33,112,234,220, 21, 61,198,142,199,176, 97,195,192, 48, 12,108,108,108,138, 35,191, 6, 28, 75,213, +161,164,230, 88, 95, 95,223, 81, 97, 97, 97,110, 13, 27, 54,116, 14, 13, 13,237,226,231,231,231, 25, 18, 18, 82,244, 94, 14,195, +250,230, 20,107,222,185,115,231,200,198,141, 27, 39,141, 30, 61, 90, 42, 8, 2, 31, 29, 29,173, 7, 64, 57, 57, 57, 49,119,238, +220, 17, 78,158, 60, 9,149, 74, 5, 55, 55, 55,218,213,213,149,186,112,225,130, 16, 30, 30, 30, 68, 8,153,103,200,182,243, 60, + 95, 42,141, 67,209,235,125,251,246, 25,125,190,215,168,231,189,180, 91, 71, 31,247,212,248,251, 72,136,139, 2,159,101,175, 11, + 56,126, 74, 99,164,201,250,163,203,232,207,212, 92,242,228,201, 19, 87,141, 70, 3,153, 76,134,205,155, 55,235,150, 45, 91, 22, +150,154,154,218, 30,101,143, 40, 47,165, 89,197, 81,135,233, 21,104,190, 49,234, 48, 43, 13,167,143,159,184,211,194,108,192, 14, + 76,137, 79, 41,238,216, 72, 40,202,230,152, 99,253,246,202,150, 13,227,232, 51,139,232, 28, 62,255,116, 5,219,174, 85,105,181, +131, 7, 12, 28,254,219,129, 3,251,205, 22, 46, 90,132,235, 65, 33, 72,203,204,133, 64, 24, 8, 20,133,249,243, 23,194,201,206, + 6,217,241, 79,242, 53, 58,221, 0,148,206,161,245,143, 47,119,138,162,167, 94, 56,185,107, 61, 77, 65,200, 75,122, 44,103,114, +162,148, 35,135, 13, 96, 7, 15, 30,140, 99,199,142, 33, 52, 52,116,107, 5, 38,171, 88,147, 16,122,106,200,229,131,235, 41, 64, + 80,165, 60,150,179,185,207,149,163, 62, 26,192, 14, 27, 54, 12,191, 4,220,192,129, 83,207,183, 28, 56,133, 83,120,183, 49, 62, + 51,188, 57,139,208,246,245,107,187,118,104,218, 64,193,242, 42,196,134, 71, 33, 61, 79,141, 11,143,162, 51,105, 66, 87, 57,183, + 78,193, 5, 82,138, 87,175,158,148,113,103,165, 40,172,208,213, 70,105,210, 52, 93, 42,154, 85,157, 72, 86,201,245,116,116,116, + 44,245, 56,151,146, 21,119, 81, 31,160, 42,164,118,152,243,234,213, 43,139, 87,175, 94,129, 16,130,160,160, 32,139, 86,173, 90, +205,169, 78, 52,107,230,204,153,197, 81,171,215,231,101,125, 86, 25,133,157,210,215,233,245,250,195,179,102,205,154,210,170, 85, +171,158,139, 22, 45,162, 96,196, 3,120, 95,139,230,112,130, 32,224,210,165, 75, 56,118,236, 24,175,211,233, 38, 36, 36, 36,132, +148, 88,100, 67,112,112,240,133,129, 3, 7,238,122,252,248, 49, 19, 22, 22, 6, 66, 42, 31,119,170, 82,169,224,229,229, 5,142, +227,176, 98,138, 59,114,114, 26,130,227, 56,240, 60, 15, 83, 83,211,226, 40, 94, 73,243, 92,217,113,196,243,252, 27, 70, 43, 40, + 40, 8, 12,195,160,125,251,246,184,119,239, 94,113, 68,171,178, 8,148, 78,167,123,229,232,232,232,184,100,201,146,226,245, 74, + 73, 73,193,249,243,231,209,186, 77, 91,212,159, 48, 17,241,241,241, 88,187,118, 45, 92, 92, 92,176,116,233, 82,164,167,167,131, +227,184, 63, 59,156,222, 59, 44, 44,204,237,163,143, 62, 74, 14, 9, 9,113, 11, 8, 8,176,242,247,247, 55, 29, 62,124,120,114, + 72, 72,136, 27, 69, 81,109, 97,100, 39,104, 65, 16,230,206,159, 63,255,236,210,165, 75,231,124,246,217,103,173, 70,143, 30, 45, +145, 72, 36, 66, 92, 92, 28,183,127,255,126,202,203,203,139,150, 74,165,212,185,115,231,132,219,183,111,223,226, 56,110, 5,128, +171,198, 68,156, 75,154, 44,134, 97, 12, 53, 89,165,152,238, 32, 31,101, 78,167,180,223,184,121, 25,237, 83,211, 77,183,123,255, +249,152,171, 55,159, 60, 99, 52,220,244,159, 43, 72, 13,240, 46,195, 48,204, 33, 95, 95,223, 49, 83,167, 78, 53,233,213,171,151, +124,241,226,197, 89, 57, 57, 57,229,153,172, 50,110,152,255,148, 81,135, 63,205,253, 34, 96,250,231, 13,199,212,254,143, 83, 13, + 4,230, 37, 35,131,101,104, 11, 43, 26, 77, 61, 25,228,164, 62,181, 63,245,219,206, 23, 0, 42,203,203,118, 39,248, 97,104,247, + 6, 13,155, 28, 93,177,116,133,195,130,217,179, 36, 71, 3,126, 5,225,116, 8,186,124, 25,102, 82,158,132, 7, 7, 38,105,116, +218,254,120, 7, 31,193,147,112,253,135, 3, 0, 78,216,216,216, 60, 24, 59,122,180,151,175,239,112, 40,149, 74, 28, 57,114, 4, +123, 54,108,224,215, 1, 67,228,192,189, 73,149,228,211, 75,190, 85,172,115,127,252,216,177,222, 77,155,254, 7, 74,165, 18,135, + 15, 31,198,174,117,235, 12,214,249,135, 83,148, 25,254, 52,254,159, 33,190,146, 62, 90, 52,149,115,235, 73,116,110,208,147,232, + 92, 8,132, 8,132,104,104, 26, 49,121, 58,221,210, 39,207,227,170,100, 10,138,154, 14,191,253,110,234,219,107,243, 40, 97,126, +170, 58,164,187, 12,147, 21, 91,242, 25,105, 37, 43,233,242, 94,235,245,250, 88, 3,229,151,123,120,120,188,241, 89,213, 67,191, +196, 40,147,101,104, 30, 45, 0, 72, 75, 75, 75, 0,176,224,230,205,155,251,122,246,236, 57, 30, 64, 92, 21,203,104, 91,167, 78, +157, 38, 0, 96, 40,138,218, 26, 31, 31, 31,242,198, 9,159,144, 16,233,226,226,178,170,102,205,154, 19, 11,110, 76,169,109,149, + 84,228,207, 27, 54,108,168, 43,171, 44,202,123, 47, 8, 66,165,101,148,153,153,137,150, 45, 91,190,241, 76, 75, 66, 8,162,163, +163,139, 34, 78,197,251,190, 34, 3,151,155,155, 59,241,211, 79, 63,253, 81, 34,145,120, 0,160,138, 76, 46,207,243,204, 15, 63, +252,160,224,121,158, 1, 64,209, 52,205, 73, 36, 18,245,177, 99,199, 56,142,227, 94,105, 52,154,137,127,242, 5,226, 48, 85,240, + 40,134,188,176,176, 48,159,194, 72, 86,108,104,104,232,253, 3, 7, 14,216, 3, 56, 88, 69,221,171,249,249,249, 87,151, 45, 91, +214, 97,243,230,205,115, 39, 78,156,216,114,216,176, 97,108,231,206,157,113,250,244,105,254,210,165, 75, 65, 42,149,106,185, 49, + 6,171,176, 44,179,220,221,221,139, 13, 87, 37,231,114,133, 29,121,109, 61,229, 27, 71, 76,118, 81,108, 91,126, 62, 55, 53, 94, +123, 67,159,171,157,183, 19, 8,197,191,152,164,164,164, 47, 0, 44, 92,187,118,109,124,227,198,141,229, 82,169, 84,107,168,201, +250, 19,225,132,204,220,247,191,239, 49,232, 68,167,249,159,214,236,209,165,189,210,189,134,131,107,120, 84, 18,158,222, 60,157, +247,224,212,119, 47,137, 38,163, 31, 0, 67,122,174,223,214,232,116,117,103,206,154, 57, 69, 38,145,244,228,121,190, 81,183, 11, +199, 9,195, 48, 33, 90,189,254, 66, 97,115,161,250, 29, 46,242,111, 87,173, 90,229,229,235,235,139, 35, 71,142,224,194,222,189, + 24,154,154,138,139, 12,195,208, 82,169,237, 41,157,110, 53, 12, 51, 72,223,174, 89,179,198,219,207,207, 15,135, 14, 29,194,185, + 93,187, 48,164,106, 58,229,213,117, 45, 0,216, 23,190, 77, 5,240, 24, 64, 51, 0, 38, 0, 52, 40,120,180,147, 93,201, 42,172, +240,187,162,239,175, 80, 20,245, 71,118,132,173, 60, 51,252,235,132, 62,125,217,236,109,175,133, 74,165, 74,247,242,242, 50,106, +204,181, 94,175,175,176, 13,151,227,184,216,218,181,107, 27, 28,181, 48,196, 20,165,167,167, 55,255, 3, 11,163, 90,125,177, 74, + 85, 34,130,240,210,217,217, 89, 40,170,244,203, 50, 97,101,125, 70,128, 23,198,252, 79, 98, 98,226, 99, 0,159, 87,117, 61,227, +227,227,143,194,128,135, 70, 27,186, 28, 0,100,100,100,188,245,135,249, 82,132,196, 45, 94,188,216, 40,131, 13, 66, 42, 50,159, + 33,185,185,185,173, 12,249,111,157, 78,135,191,144, 67,133, 19, 29, 26, 26, 58,158,162,168, 94, 40,104, 18,216,138,183,147,205, +251,106,118,118,246,213,149, 43, 87,118,216,182,109,219,116, 66, 8,178,179,179,215, 25,107,176,138,239,158,147,147, 79,191,173, + 13, 79, 79,210,254,190,127,107,108, 87, 85,166,110,250,246, 92,237, 46,136, 20, 7,163, 8, 33,255, 29, 57,114,100,107, 0, 59, +171, 43, 86,206,168,195,234,242, 66,200,200,106,124,113,230, 55, 99, 47, 90,153,247, 1,207,250, 64, 75,159,130, 54,237, 52,128, +159, 97, 88, 55,135,226,237,229, 4, 97, 13,167,213,174, 41, 81,185,252, 27,202,217,198,207,207,111,250,152, 49, 99,176,112,225, + 66,156, 91,189, 90, 55,153,162,178, 36, 0, 57, 91,112,163, 73, 83,192,108, 67,117, 70,141, 26,133,133, 11, 23,226,204,138, 21, + 85,213,169, 8,123,138,162, 2, 0, 96,206,156, 57,243,150, 45, 91,102, 61,119,238,220, 70,203,151, 47, 95, 90,248,254, 81,209, +247,133,117,157,255,220,185,115, 27,148,248, 62, 7,192,157, 63,120,127,150,153, 25,254,143,166,187,168, 41,106,138,154,162,166, +168, 41,106,138,154,162,102,117, 32,132,244, 41,152,149, 63, 47,239,117,137,249, 95, 2, 11, 17, 17, 17, 17, 17, 17, 17,145,127, + 32, 37,163, 88, 85,249,254, 45, 82,212, 71,171, 36,219,128,130, 97,221,229,185, 82, 99, 70, 61, 84,197,217, 6,138,154,162,166, +168, 41,106,138,154,162,166,168,249,175,211,172, 76,251,141,223, 19, 66,250, 80, 20, 21, 64, 8,241, 47,111, 94,100,172, 94,127, + 93, 98,254,214,186, 29,148, 65, 81,223,172, 55,250,104,253,209,136, 97, 85, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, 53,171, + 69, 81, 19, 32, 0, 50,103,206,156,185,127,195,166, 67,231, 66,147, 85,114, 2, 80, 65,211, 33, 33,135,153,184, 56, 88,200,100, + 74, 41, 0,104,181,249, 58, 87, 87,100, 83,212,224,191,242,129,183, 34,255, 76,138,134,123, 39,189,229,101, 69, 68, 68, 68, 68, +254, 29,164, 20, 69,170, 0,164, 0,160, 10,223,107, 11,231, 41,133,134,236,245,215,165,190,255, 3, 73, 64, 57,145, 44,182, 60, +147,149,154,170,180, 99,217, 12,111,158, 87,215, 3, 0,150,165, 35, 82, 83,173, 35, 9, 57,156, 90, 21,179,101,231,224, 16, 44, + 97, 24, 87, 67,150,213,243,124, 92,106, 82, 82,233,212,241, 20,245, 46, 24, 60, 67, 77, 68,117,204,198, 31,110, 84,236,236,236, + 28, 29, 29, 29, 63,176,176,176,104,147,153,153,121, 59, 37, 37,229,151, 10,158,123,184,140,162, 48,171,224,184,194, 74, 0,115, + 43,144, 54,102,217,215,241, 82, 42,149, 83, 40,138,242, 43, 60,193, 66,243,243,243, 55, 3,120,242, 47,188, 32,153, 0,232,207, +178,236, 40, 59, 59,187,150,137,137,137,139, 1, 84, 53,155, 55, 11, 96,166,149,149,213, 80, 43, 43,171,218,233,233,233,207,178, +179,179, 15, 1, 88, 3,160,210,161,210,139, 63,115,110,211,185, 87,231, 5,151,206, 93,250,118,241,134,132,155,111,124, 63,211, +217,182,103,143,118, 11, 47,157,186,177,100,222,166,248,116, 35,215,141, 46,156,128,130,209,145, 4,111, 38,123,173, 46, 18, 0, +125, 1,116, 6,112, 9,192, 41, 67,182,187, 28, 90, 3,152, 87,184,206,107, 0, 92,252,155, 31, 71,166,142,142,142, 43, 0,244, +101, 89, 54, 44, 46, 46,110, 2,128,216,191,120,157, 88, 0, 45, 0,248,161, 32, 13,199, 29, 24,150,194,161, 82,108,109,109,253, + 89,150,157, 82,152,218,101,115, 90, 90, 90,192,223,181, 96,100, 50,217, 58, 39, 39,167,255,168, 84,170,124,138,162, 72,201,124, +143, 28,199,197,166,166,166, 54,127,215, 46,106, 20, 69,221,249,155,175,226,132, 50, 62, 43, 63,143, 86, 92, 28, 44, 88, 54,195, + 59, 57, 49,100,104,124,194,195, 33, 0,224,226,220,232,144,131, 83,195,131,113,113, 50,157,147,207, 0, 51,137,146,221,204, 48, +146, 38,106,173,198, 78,194, 74, 82,117,156,254, 62,173, 37, 83, 18, 31,255, 82,102,178, 69, 9,195,184,190,140,188,232,192,233, +210, 33, 81,184, 64, 98,226, 81,238,218,186,184,184, 84,105, 43,173,173,107,155,235,228,138,233, 18, 9,211, 67, 32,156, 31, 17, + 0,154,146,132,114,188,254, 55,169, 70,243,125, 70,198,179,156,170,238, 65, 31, 91, 56, 17, 96, 24, 40,244, 0,193, 5, 10, 56, +240, 56, 13,137, 70, 72, 24,106, 34,170, 99, 54, 74,254,118, 45,128, 47,222,246,145,228,234,234,106,237,239,239,191,238,155,111, +190, 49, 49, 51, 51,163, 94,189,122,213,107,246,236,217, 29,239,222,189,251,121, 92, 92, 92,252,235,166,143,162, 48, 75, 16, 8, + 13, 0, 52, 77,205,182,183,119, 80, 50, 12,243, 70,110, 35,158,231,149, 41, 41,201, 83, 5,129, 80,133,203,206, 34, 4,235, 13, + 49,140, 10,133, 98,184, 95,195, 38,159,175, 88,181,198,204,209,193,193,148,227, 5,221,139,232,151,202, 5,115,190,104, 21,245, +244,201,122,181, 90,189,191, 42,231, 53,195, 48, 67,229,114,185, 63, 0,223,194,207,194, 53, 26, 77, 0,207,243, 7, 13,173,208, + 29, 29, 29,175, 48, 12, 83,195,152, 63,230,121,254, 85, 82, 82, 82,251, 42, 22,209, 96, 15, 15,143,159, 59,117,234,164,108,217, +178, 37,100, 50, 25, 22, 46, 92, 56, 51, 33, 33,161, 50,163,197, 2,152,169, 84, 42,135,154,154,154,214,206,205,205,141, 82,169, + 84, 71,101, 50, 89,247,245,235,215,187,183,107,215,206, 60, 41, 41,137, 98, 24,198,241,204,153, 51, 31,175, 91,183,174, 23,199, +113,221, 42,171,228,178,162,200, 2,121, 95,223, 14, 89, 81, 23, 23, 0,232,253,250,247,156, 90, 49,138, 48,238,254, 42,114, 47, +166,208,124, 24,108,178, 36, 18,201,122, 39, 39,167, 49,234,130, 92, 1,228,245, 10, 7, 0,180, 90,109, 70,102,102,166, 79, 85, + 78,121, 0,227,172,172,172,198,124,249,229,151,214,189,123,247,198,222,189,123, 63,217,190,125,123, 70,118,118,246,127, 81,144, + 8,243,177,145,154,179, 18, 19, 19,223,151, 72, 36,148,187,187, 59,163, 82,169,140, 49, 90,222, 40,120, 8,243, 29, 0,155, 81, +144,186,160, 11, 80,112,190, 3, 88, 89,100,220,104,154,222,236,227,227,243, 65,120,120,248, 22, 0,223, 86,245, 92,119,114,114, +250,113,211,166, 77, 67,250,245,235,199,164,164,164,184, 54,110,220,120, 95, 98,241, 88,179, 9, 0, 0, 32, 0, 73, 68, 65, 84, + 98, 98,135,183,112, 25, 25, 43,151,203,103, 52,106,212,168,254,227,199,143, 35,179,179,179,215, 20,238,207,138,206, 41, 55, 0, +221,173,172,172,186,205,159, 63,223,204,223,223, 31,219,182,109,123,127,251,246,237,185, 57, 57, 57,191,161,160, 79, 79,181, 76, + 32,203,178, 83, 98, 99, 99,237, 8, 33,112,118,118,158, 2,224,111,105,180,104,154, 94, 63,112,224,192, 49,251,246,237, 83,190, +124,249, 82,233,234,234, 90,156, 60,155,162,168, 42,215,159, 34,213,102, 91, 9,195, 85,121, 30, 45,153, 76, 41,229,121,117,189, +248,132,135, 67, 58,118,250,193, 18, 0,174, 92,254,116,136,131, 83,131, 80,153, 76, 25, 41,183, 80, 28, 27,216,183,123,147, 65, +254,157, 40, 55,103, 7,196, 38, 36, 59,254,116,224,220,123, 1,231, 46, 30, 67, 65, 2,177, 50,225,116,233, 48,209, 5,226,241, +181, 13,176,235, 28,143,141,103, 98,113,243,193, 11,228,103,165,162,134,147, 9, 86, 77,239, 9, 39,107,101,213,110,189, 28,188, +186,112,172,252,224, 71,195, 71, 90,126,208,223, 87,226,233,228, 4, 66,228,136,140,202,109,251,235,249,139, 45,142, 30,222, 63, +197, 84,226, 53, 52, 47,249,137,193, 23,183,166,206, 48,201,211,161, 63,203, 80, 31,183,107, 94,191,219,240,247, 59,208,245,125, +235, 34,236, 81,120,207, 19,191, 7,173,162,111, 60,250,141,227,201,110, 83, 41,142,223, 75,168, 48,161,223, 27,134,163, 91,183, +238, 29,228,114,121,169,228, 73, 26,141, 70,250,219,111,129,173,171, 98, 54,138,254, 67,171,213,208, 18,137, 12, 52, 77,125,238, +231,215,208, 55, 53, 53,245, 34, 69, 81, 63,199,199, 27, 23, 45,248, 20,144,101,176,108, 51, 90, 46,119,230,181, 90, 91, 0,160, +100,178,140, 23, 52,221,112,254,188,121,102, 12,195, 8,105,105,105,200,207,207,167,198,143, 31,175,136,138,138, 26, 24, 23, 23, +183,161,146, 59, 18,108,223,190,221,219,217,217,249,141,167,199, 38, 36, 36,200,250,245,251,160, 42, 69,239,221,168,113,211, 25, +231,206,157,245,205, 78,207, 80,111, 95,251, 99,176, 94,161,212,212,242,245,145,108,222,182,203,114,194,152, 17,159, 70, 68, 60, +186, 15,227,158, 87,231, 97, 98, 98,114,108,245,234,213,126, 93,186,116,145, 56, 56, 56, 32, 41, 41, 9,225,225,225,126,191,255, +254,123,255, 93,187,118,205, 84,169, 84, 3, 1,131, 30,136,234,245,219,238,159, 29, 76,109,108,193,235,245,112,105,212,180, 56, +191,217,211,223,207,131,211,233, 32,232,245,240,245,239, 95, 24, 77, 38,240,245,245,173,106,214, 93,151, 6, 13, 26,236, 89,186, +116,169, 84,163,209, 32, 40, 40, 8, 23, 47, 94, 20, 18, 18, 18, 42, 75,136,203, 82, 20,117,126,209,162, 69,110,237,219,183, 55, + 79, 77, 77, 5,207,243,118,199,143, 31,159,210,164, 73, 19, 11,119,119,119,217,238,221,187,145,155,155, 11,142,227,108,106,215, +174,109, 51,124,248,112,237,238,221,187,103, 2, 88, 81, 94, 36, 43, 59,138, 44, 72,160,106,191,231,211,108, 20, 18,169,179,239, +205,120, 15,191, 90,212,161,138, 35, 91,239,213,174,109,158, 29,167,156,109,102,209,208, 38, 59, 46,112,246,123,181,107,111, 63, +251,204,160,155, 33,186,176,178,249,232,192,129, 3,202,240,240,112,165,175,175, 47, 4, 65, 40,206,192, 95,148,112,214,203,203, +171, 42,251,113,249,164, 73,147,102, 15, 25, 50, 4,141, 26, 53, 42, 78,138,250,213, 87, 95, 97,246,236,217,214, 87,174, 92,153, +185,127,255,254,153,191,252,242,203, 10, 0,115,140,140,198, 20, 97,108, 25,127,253,252,249,243,193,199,142, 29, 27, 49,107,214, + 44, 47, 0, 83, 1, 44, 76, 75, 75,235, 84, 24,141,145, 21, 26,173,177, 51,103,206,156, 60,103,206, 28,188,255,254,251, 11,131, +130,130,190,171, 98,148,143,225, 56,238,253,126,253,250, 49,122,189, 30,166,166,166,208,235,245,117,170, 27,148, 0,176,105,226, +196,137,147, 39, 77,154, 4,107,107,107,232,245,122,239, 3, 7, 14,108, 95,184,112, 97, 27, 0,227,202, 89,215, 81,147, 39, 79, +254,112,228,200,145,104,222,188, 57, 88,182, 96, 55,174, 94,189, 26, 75,150, 44, 49, 59,127,254,124,255,221,187,119,247, 63,113, +226,196, 81,148,126,108,151, 81, 8,130, 0,150,101, 17, 19, 19, 3, 7, 7, 7,185, 32, 8,231, 40,138,218,150,158,158,254,203, +223,168, 50, 95, 57,120,240,224,143,246,237,219,103, 6, 0,171, 86,173,194,140, 25, 51,224,232,232, 8, 51, 51, 51,209,234,252, +125, 34, 90, 19, 42,141,104, 85, 70,126,126,126,211,185,159,125, 12,154, 46,184,107,172, 91,203, 3,203,230, 77,160, 78, 4,156, +107, 90, 97, 12, 94,225,130,199,215, 54, 64,238, 62, 29, 26, 61,135, 91, 15,158,227,194,170, 94, 5,181,101,239,249,208,232,186, + 21, 85, 54, 54, 50, 19,147,149, 90,158,191, 14, 39,167, 32, 68, 71,167, 84,102,178,236,157, 28, 3,182,110, 93, 97,226, 87,199, + 7, 58, 78,143,184,228, 56, 80,148, 28,110,174,230, 24, 59,170,183,164, 83, 39, 23,187,175,191,254,241,116,162,128, 1,249,169, + 79, 42, 77, 24,234,109,135,157, 77,253,188,134, 12,239,211, 94,222,208,175, 1,164,114,147,226,239,154, 53,111,142,102,205,155, +211,115,114,115,122,220,190, 19,220,227,200,249, 91,154,124,125,244,161,200, 84,140,174,228, 34, 83,108, 56,166, 77,155, 6, 71, + 71,199, 82, 11, 36, 37, 37,225,247,223,127, 43,243, 55, 70, 92,200,138,255,227,187,239,190, 51,207,200,200,232,189, 99,199,142, +174,130, 32,124,151,152,152,120,205, 16,145,145, 64,141, 44,185,188,219,152, 53,107,132, 38, 31,124,192, 88, 57, 57,209, 2,207, + 83,241,207,158,217,174,221,176,161,115,250,211,167, 38,121, 54, 54,233, 25, 42, 85,126,100,100, 36, 20, 10, 5,197,178,108,139, + 50,164,146, 8,193, 74,154,166,102, 83, 20, 5,185, 92, 17, 57,105,210,164,123,133,223,213, 56,117,234,148,178,111,223,190,249, + 0, 94, 2,128, 92,174,112,101, 24,218,187, 32, 19, 59, 86, 26, 98, 48, 77, 77, 77, 63,251,118,233, 10,211,236,244, 76,149, 46, + 47, 79,111,111, 97, 70, 81,102,230, 76,118, 86, 78, 78, 92, 66,138,102,254,226, 37,204,196,177, 35, 63,203,203,203,155, 98,168, +201,106,220,184,241,237, 99,199,142, 57,216,218,218, 34, 51, 51, 19,105,105,105,184,125,251, 54, 4, 65,192,192,129, 3,229,109, + 91,181,108, 58,111,254,130,155, 49,113,113,109, 12, 49, 91,166, 54,118, 88,213,190, 73, 65,101,253, 50,173,184,124,182, 13,246, + 47, 94,102, 73,108, 86, 81,116,174, 58,143,144,106,211,173, 91, 55, 41, 0,140, 27, 55, 46, 59, 39, 39,103, 25,128,125,168, 60, +163,255,204, 5, 11, 22,184,214,170, 85,203,115,223,190,125,200,205,205, 5, 0,135, 90,181,106,193,219,219,155,191,116,233, 18, +188,189,189, 97,110,110,142, 43, 87,174,224,230,205,155,104,222,188,185,185, 84, 42, 29,162,211,233,202, 52, 90,157,123,117, 94, + 32,239,235,219,193,167,217, 40,152, 89, 56, 99,251,254,131,120, 28,188,171,131, 70, 23,190, 64,202, 95, 30,169, 34,242,209, 41, +175,204,230,212,104,222,201,182,110,131, 15,224,217,236,158,157,154,191,250,124, 65,143, 90,203, 89,133,122,215,226, 53, 9,105, +229,153, 44, 0,171, 6, 14, 28, 56,248,192,129, 3, 86, 0, 16, 18, 18,130,164,164, 36,216,219,219, 67,161, 80, 64, 34,145, 20, + 63,159,180,138,140,222,188,121,115,177,105,227, 56,174,248, 41, 0, 74,165, 18, 29, 59,118, 68,147, 38, 77,240,203, 47,191,140, + 46,199,104,181,111,213,170,213, 94, 79, 79, 79,247,146, 31,230,229,229, 97,216,176, 97, 0,128, 78,157, 58,117, 51, 49, 49, 33, + 69,134, 48, 33, 33, 33,247,206,157, 59, 61, 0, 4,149,227, 44, 85,113,113,113,248,242,203, 47,241,226,197,139, 79,182,110,221, + 26, 13, 64, 33,147,201,138,239,143, 1,120, 55,104,208, 96,253,140, 25, 51, 16, 21, 21,133,176,176,176,219,168,122, 83, 42,111, +106,106,250, 84,175,215, 55,231, 56, 14, 42,149, 10, 3, 6, 12, 80, 28, 61,122, 52,137, 97,152,136,212,212,212, 17, 40,232,147, + 98, 40, 10, 0,107, 38, 77,154, 52,121,214,172, 89,248,237,183,223,112,226,196, 9,140, 28, 57, 18,211,167, 79,135,153,153,217, +152,233,211,167,223, 68,193, 3,205, 95,167,219,230,205,155,241, 63,246,174, 59, 44,138,171,253,158,217, 93,150,101, 11, 77,186, +128,136, 5,236,189,139, 81,108,216, 19,187,209,196,222,177,198,130, 26,107,172, 81,163,177, 98, 55,216,187, 17,187,168, 88,176, +211,165,136,244,222,219,246,221,217,185,191, 63, 40, 65,164, 44,104,242,251,190,124,123,158,103,159,101,102,103, 14,239,220,123, +103,238,153,247,222,251,190, 26,141,230,179,123,195,192,192, 0, 46, 46, 46,104,222,188, 57,174, 95,191,222,231, 11,132,150,131, +139,139,139, 62,195, 48,144, 72, 36,120,252,248,177,136,207,231,139,236,236,236,166, 3,248,143, 17, 90, 14, 14, 14,179,206,157, + 59, 39, 42, 59,250,195,227,241, 80,166, 29,232,240,255,239,209,170,242, 13,171, 20, 74,165, 84,197,225,176,194,235,218,180,190, +240,196,119, 94,233,208, 33,192, 10, 87, 42,165, 42, 0,208, 48, 4, 5, 82, 26,124, 30, 11,113,105,133, 8,141,206,170,136,234, +147, 37,154,122,252,122,224,117,138, 3, 33, 4, 74,149, 6,138,252, 52,108,185, 41, 69, 88,146, 28, 74, 73, 46,148,170,162,105, + 88,230,230,230,156,187,119,111, 47,122,240,224,225,236, 19, 39, 78,176,147,140,141,223, 23, 2,237, 42,226, 52, 53,109,104,200, +232,235, 95, 56,232,185,154, 79,216,209,136, 76,144,160,177, 93, 39,152,155,216, 35, 45, 75,130,231,239,111, 33,252,131, 55, 26, +216, 56, 96,225,252, 1, 6, 27, 55,159, 57,207,165, 29,235,229,229,197, 22, 84,102,103,201, 91,212,161, 59,145,160,115,162,161, +201,254, 8, 77, 97,202,103, 7,136, 44,234,161,189,171, 45, 44,236, 27,241, 38, 45,220, 48, 17,248, 68,104,149,229, 76,167, 40, +214, 65, 22,139,154, 77, 81, 20, 90,183,110,147,180,115,231,206,138, 66,129,171, 90,183,110,147,196,102,179,236,138, 30,236,172, + 3,132, 48,233,213,216,249,137,168,209,215,231, 45, 43,114,251,219, 36,222,188,121, 83, 53,122,244,104,236,216,177, 67,127,249, +242,229,171,216,108,246,212, 10,134,247, 62,225, 28, 14,212, 51,105,212,168,255,166,231,207,137,158, 90, 77,229,188,126, 93,144, +151,154, 74,167, 21, 22,234, 95, 12, 15, 31, 52,109,201, 18,125,123,123,123, 60,243,246, 54,203,148, 72, 72,158, 66, 33,203,203, +203, 35, 52, 77,191,174,132,115,133,133,133,165,224,200,145, 35,206,179,102,205,242, 79, 77, 77, 93, 1, 0, 54, 54, 54, 91, 0, + 52, 7, 16, 87,102, 31, 60, 61,207, 39, 79,159, 62, 61, 50, 35, 35, 99, 69, 85,118,150, 65, 11, 75, 11, 75,193,217, 67, 94, 65, +117, 12,249, 44, 11,187,186, 44, 61, 19, 19, 14,173,207,231, 50,128,172,129,125, 35, 33,128, 22,149,156, 91,158,147,226,243,249, + 87,254,252,243, 79, 75, 61, 61, 61,104, 52, 26, 88, 88, 88, 32, 54, 54, 22,121,121,121, 40, 44, 44, 68, 76,120, 24, 28,237,237, +177,222, 99,185,141,251,114,143, 43, 82,169,180, 67,185,206,236,243, 4,200,106,213,103,158,189,138,178, 24,148, 31,246,210,178, +222,203, 34, 54, 33, 33, 1, 34,145, 8, 45, 91,182, 20, 61,127,254,252,105, 21, 34,171,108, 18,224, 49,221,187,119, 55, 60,115, +230, 12, 58,116,232, 0, 99, 99, 99, 60,126,252, 24,193,193,193, 80,169, 84, 44,177, 88, 12,145, 72,132,173, 91,183,162, 94,189, +122, 40, 44, 44, 68, 92, 92,156,153,158,158,158,121,185,136,246,165,156,143,239, 62,222,152,255,241,209,207,105,212,157, 1, 71, +206,158,199,244,239,199,194,154, 68, 63, 53,110, 68,109,236, 63,180,251, 26,194,182, 31, 34, 52,108,109,234,212,114, 40,184,250, + 34,184, 47,219,128,200,144, 27,166,210,194,160,185,148, 38,209,126,221,206,139, 11, 42,184,118, 10, 0,203,222,222,126,218,197, +139, 23, 13, 75, 93, 47,108,118,105,206,195,178, 73,224,171, 72,248, 94,109,121, 82, 20,133,216,216, 88, 88, 90, 90, 66, 36, 18, +149, 38, 16, 15, 11, 11,195,203,151, 47, 81,146,141,162, 18,206, 9, 15, 30, 60,176, 23, 10,133,159, 28, 64, 8, 65, 86, 86, 22, +104,154,134, 64, 32,128, 70,163,129, 74,165,130, 90,173,134, 92, 46, 23, 53,111,222,124,142, 90,173,126, 85, 17, 39,195, 48,139, +199,140, 25,211,253,213,171, 87, 13,247,236,217, 3,165, 82,185, 61, 45, 45, 13, 35, 71,142, 4,195, 48,232,211,167, 79, 23, 66, + 72,196,170, 85,171, 0, 0,139, 22, 45, 82, 75, 36,146, 89,181,185,246, 98, 52,111,223,190,125, 67, 31, 31, 31,244,232,209, 3, + 10,133, 2, 59,118,236, 48,242,244,244, 52,242,242,242,178, 88,182,108,217,241,204,204, 76,183,106, 56, 41, 0,219,173,173,173, +103,247,234,213,139, 95,156,195, 20,127,252,241, 7,214,175, 95,127, 14,192,170,219,183,111,175,189,126,253,250,196,105,211,166, + 97,253,250,245, 11,243,242,242,142, 86,198, 25, 19, 19, 3, 11, 11, 11, 24, 25, 25, 21, 61, 44, 85, 42, 4, 4, 4,224,254,253, +251,104,218,180,169, 54,215, 84,153,157, 14, 35, 70,140, 56,126,246,236, 89,195,196,196, 68, 60,121,242, 4,142,142,142,144, 74, +165,218,228,134,125,240, 55,116,216,149,114,202,100, 50,121, 66, 66,130,104,219,182,109,176,177,177,129,131,131, 3, 12, 12, 12, + 64, 81, 20,212,106,117, 85,233,213,170,181,179,103, 79,112,178,146, 77,191, 53, 54, 49,157, 75, 8,225,228,231,231, 30, 82, 33, +239, 82,116, 52,148,255,224,181,255, 55,163, 29, 0,127,124,154,243, 48,181, 84,104,121,123,123,147, 33, 67,134, 80, 37,223,182, +182, 40,200,202, 50,141,180,180,110,117,222,210,186, 69,113,222, 47, 86, 56,155,109, 26,105,101, 37, 45, 0, 0, 21, 77,224, 23, +158,135,160,168, 52, 4, 71,165, 65,200,211,206,249,162, 80,209, 69, 51, 86, 9,129, 92,252,215, 75,171, 74,154, 11,133,170,104, +186,135, 82, 33, 69,126,230,123,106,244,240,126, 6,179,103,207,132,141,141,173, 69,101,124, 42,158,193, 66,247, 69,131, 76,234, +152,232,193,251,249, 29,116,105, 58, 28, 6, 60, 61,100,231,203, 1, 10,248, 16,125, 31, 96, 12, 17, 18,153,128,206, 45, 4,112, +235,223, 76,116,245, 82,196, 18, 0,171,181,177,151, 78,122, 13,174,211, 64,232,105,212, 80,103, 69,128,201,139, 7,132,214,144, + 81, 34,100,167,198, 35,252,233,101,173,222, 25, 25,134,153,107,110,110,158,183,106,213,170, 94,141, 27, 55, 86,205,153, 51, 39, + 48, 62, 62,126,113,185,183,149,223, 14, 28, 56,128,168,168,168,228, 77,155, 54, 61,206,202,202,250,185,134, 21,237, 65, 8,118, + 23, 15,197,101, 93,187,118,173,189,175,175,239,194,221,187,119, 91,205,155, 55, 79,127,222,188,121, 83, 0,252, 82,213,112, 97, + 1,143,215,119,211,147, 39,132, 78, 74, 82,156,218,187, 87,127,191,159,223, 42, 21,195,212, 53,183,180,164,186,117,238, 44, 17, +176, 88, 89,217,233,233,180, 69,195,134,236,216,251,247,205, 8,159,159,114,251,246,237, 2,177, 88, 92,105,234, 28, 54,155, 45, +173,104,184,176, 34,216,216,216, 40, 43,154,195, 85, 69,135, 88,192, 16,162, 50,105,208,128,244,239,211,181,113, 84, 68,116,180, +129,137, 9,219,169,177, 99,147,208,240,216,215, 68,163,145, 83, 20, 85,160,213, 88, 9,155, 61,118,247,238,221,173,140,140,140, +192, 48, 12,140,141,141,145,153,153, 9,165, 82,137,130,130, 2, 40, 11,243,161,204,207, 71,112,124, 44,186,247,234,133,209, 3, +250, 55,243,186,246,231, 88,141, 70,115,174,202,241,188,214,237, 74, 61, 89, 27,234,155,253, 53, 22,148,152, 87, 42,186,182,181, +115, 2, 87, 36, 66,191,197, 30, 95,114,163,251,223,188,121,243,214,136, 17, 35, 6, 45, 89,178,132,149,154,154,122, 39, 54, 54, +182, 59,128,247, 85,157, 36, 18,137, 26,101,101,101, 65, 44, 22,195,216,216, 24,187,119,239,134,149,149, 21,164, 82, 41,222,188, +121, 67,236,236,236,168,199,143, 31,195,206,206, 14,217,217,217, 80,169, 84,144,201,100,105, 74,165,178,210,225,242,226,225,193, +129,139, 6,224,118,196,187, 63,122,216, 82, 49,111,198,252,212, 51, 42, 34, 56, 60,225,222,253,231,191,208,114,131,196,188,164, + 7,203, 27,116,244, 55,159,187,116, 61,246,109, 95,139,136, 87, 79,114,172,234, 21,236,231, 83,138,147, 85,217, 43,145, 72,228, +225,225,225,134,129,129,129,160, 40, 10,198,198,198, 16, 8, 4, 21,138,173, 90,128, 85,214, 3, 37,145, 72,192,229,114, 97,102, +102,134,163, 71,143,150,118,188,142,142,142, 85,113, 28,234,215,175,223,216,122,245,234, 25,150,221,217,177, 99, 71,204,156, 57, + 19, 7, 15, 30,132,159,159,223, 39,249, 52,211,210,210, 82,213,106,117, 85,215,157,151,158,158, 62, 96,248,240,225,239,158, 62, +125,106,116,244,232, 81,208, 52, 93,225,231,200,145, 35,120,249,242,229,106, 0,225,181,108, 71, 77, 71,142, 28,249,228,244,233, +211, 38,153,153,153, 40,105, 27, 18,137, 4, 26,141, 6, 77,154, 52,161,104,154,174,110,222, 27,139,205,102, 95,219,187,119,239, +208,233,211,167,131,195,225, 64,169, 84, 98,239,222,189, 88,190,124,121,122,241, 75,169, 10,192,170,147, 39, 79, 78, 28, 54,108, + 24,218,180,105,211,236,209,163,202,103,118,136,197, 98,136,197, 98,232,233,233,193,218,218, 26, 27, 55,110,132, 82, 89,244, 88, +113,118,118, 46,189,141, 1, 28,114,118,118, 30, 26, 25, 25,185, 3, 69,115,215, 62,131,181,181,245,112, 66,200, 12,141, 70, 83, +216,163, 71, 15,179,179,103,207, 26, 38, 39, 39,227,221,187,119, 88,189,122,117, 46,195, 48, 26,134, 97, 40,153, 76, 22, 99,105, +105,249,142,199,227,241,165, 82,105, 78,118,118,246,102, 0,119,254,191,122,114,138,162, 40, 61, 61, 61, 76,157, 58, 21, 28, 14, + 7,124, 62, 31,114,185, 28,106,181,186, 84,204,163,134,195,210,141, 27,139,204, 56,224, 78, 55, 53,108,190,112,244,130, 33, 22, + 54,117,109, 97, 98,196, 67, 88,216,251,238, 15,125,238,239,213,231, 68,120, 50, 74,181,103, 68, 92,254,223,158,236,190,188, 22, +249, 47, 21, 90,159,229, 60,228, 84, 92,153,163, 53,132, 92,204, 74, 78,214, 87,233,235, 11, 34, 75,188, 92, 86, 86,210, 2,138, + 26,173,177,104,241, 45,104,149,186,248, 65, 65,138, 63, 90, 10, 45,181, 6, 81, 17, 33,120,122,239, 79,152, 75,147,145, 21,211, + 22,224,182,130, 82,150, 15,185, 82, 85, 44, 74, 52, 8,124,231,131,130,252, 28,180,236, 48, 4, 96,177, 94, 86,198,103,108, 70, + 13,233,214,190, 53, 59, 42, 33, 4, 29,157, 71,161,161, 93, 15,196,167, 22, 32, 79,172, 64,110,129, 28,109, 91,122, 32, 51, 87, +134, 2,169, 28,239,163,188, 96, 91,183, 33,139,226, 68,247,209, 86,104, 41,222, 95,129, 34,252, 58,184, 14,221,161,223,100, 24, +216, 14, 46, 72, 8,122,132,192,219,187,144, 20,250, 12,132,209,192,198,185,147,182, 55,201,222, 59,119,238,116,234,222,189, 59, +167,111,223,190,109,110,221,186,213, 38, 53, 53, 53,176, 88, 96,180,233,219,183,111, 27, 11, 11, 11,252,254,251,239, 50,138,162, +246,214,178,178, 75, 61, 96, 25, 25, 25,175, 1,108,186,114,229,202,222,153, 51,103,194,210,210,178, 85, 74, 74, 74,165, 39,102, +234,233,181,153,180,121, 51,209, 99,179,201,185,125,251,184,235,239,220,217,121,226,228, 73,110,111, 87, 87,138, 16,130,128,128, + 0,193,182,125,251, 4,227,191,253, 54, 46, 62, 35,131,246,245,243, 83,165, 38, 37, 21,102, 72, 36,235, 83, 83, 83,211,254, 63, + 90,182, 90,173,126, 17, 19, 27, 99,219,161,115, 91, 11,255,176,152, 80,183,222,221,186,177, 88, 44, 86, 68,116,188,159,133,133, +145,224,254,189,251, 42,181, 90,253, 66, 27, 46, 30,143, 55,164,119,239,222,156,220,220, 92,212,173, 91, 23,153,153,153, 72, 78, + 78, 46,242, 56,228,231, 66,149,159, 15,117, 65, 30, 52, 18, 49, 98,222,188, 70,219,134, 13,120, 23,121,188, 33, 82,169,180, 74, +161, 85,242,150, 89, 81,162,235,146,125,250,134,134,208, 23,137, 64,213,124,216,240, 91, 19, 19,147,229,121,121,121,183, 0,108, + 84,169, 84,238,203,151, 47,239,184,103,207, 30,243, 77,155, 54, 25,205,152, 49,227,162, 88, 44,110,139,162,164,170,149,117, 96, + 31,105,154, 54, 3, 96,229,227,227, 3, 75, 75, 75,228,231,231,151,120, 90,148, 82,169,212, 32, 59, 59, 27, 10,133, 2, 74,165, + 18, 70, 70, 70,120,251,246,109, 14, 77,211, 55,170, 51,206,168, 17,181, 81,161, 10,251,217,172,153, 48, 69, 69,155,246,204,200, + 97,114,215,237, 76,221, 0, 96,231,128,134, 13,143,168,152, 39, 49, 31, 66,110,152,198,190,121,156,147,242, 65,210,240,232,173, +152,170,230,104, 17, 0, 12, 69, 81,196,217,217, 25,153,153,153, 96,179,217, 16, 8, 4, 16,137, 68, 88,177, 98, 5,246,238,221, + 91, 27,161,101, 32, 20, 10, 55,179, 88,172,177, 44, 22,203, 66,163,209,192,195,195, 3, 67,135, 14,133,190,190, 62, 84, 42, 85, +169, 71,179,196, 75, 85,141,167, 35,224,229,203,151, 70, 47, 95,126,242,216,114, 53, 55, 55,127,168, 80, 40, 16, 29, 29,141,107, +215,174,245, 2,224, 91,195,186,142, 14, 8, 8, 24,224,226,226,242, 71,251,246,237, 27, 17, 66,208,170, 85, 43,140, 27, 55, 14, + 94, 94, 94, 8, 12, 12, 68,126,126, 62,115,255,254,253, 19, 0,118,212,180, 15, 47, 46,223, 38, 35, 71,142,124,118,230,204, 25, +211,236,236,108,200,100, 50, 72, 36, 18, 92,188,120, 17,221,187,119,135,185,185, 57, 78,159, 62, 77, 19, 66,170,170,123, 22,139, +197, 58,234,233,233, 57,116,218,180,105,216,191,127, 63,206,157, 59,135, 97,195,134, 97,236,216,177,200,204,204,180,218,190,125, +251,196,226, 97,194,181,227,198,141,131, 88, 44,198,155, 55,111,194,180,188,231,145,151,151,135,188,188, 60,240,249,252,178,247, + 24, 5,192,107,215,174, 93,223, 47, 92,184, 16, 13, 27, 54, 92, 27, 19, 19,179, 11, 21,172, 18,101, 24,102, 86,114,114,178, 41, +135,195, 49,163,105, 26,137,137,137,120,251,246, 45,230,206,157,155,147,147,147, 51, 19, 64, 60,128, 85, 83,167, 78,221,184,120, +241,226,210,182,180,120,241, 98,239, 91,183,110, 13,248,167,189, 57,206,206, 38, 45,244,217,188, 5,185,133,108,179,220,220,220, +210,103,135, 82,169,132, 66,161,248,196,147,197,229,234,153,117,108, 91,239,166, 76, 90,184,242,253,135,188, 74, 19,164, 55,107, +100,220, 90, 32, 52, 94,216,189, 71,239, 9,253, 7,124,199,166,213,106,220,189,123, 3,199,142, 29,128,171,139, 51, 26, 54,110, +133,121,243, 23, 24, 43,148,180,199,253,251,119,150,155,188,124,122,167,176, 32,111, 69, 85,156,255,227,184, 89, 44,174,110, 86, + 56,116, 88,145,130, 44, 14,225,144, 91,188,105,110,106,106,186, 79,163,209,184, 26, 25, 25,129,201,139,196,251,183,175,144,147, +171, 7,133, 76, 3,134, 20,137, 45,173,132,139, 66,137, 39,119,175, 99,247,174,157,200,206,206,134,203, 55,189, 32,230,216,163, +158,125, 61,200,101,210,226,155, 6, 80, 41,213,176,176,114,128,191,127,160,186, 64, 34,169,244,129,196, 53, 80, 53,171,103,229, + 12,133,170, 43, 12,244,245,145, 95,168, 68,110,177,200, 58,125,105, 12, 20, 82, 25,104,165, 10,180, 82, 13,139,122, 35,209,212, +170, 55, 24,205,141, 22, 53, 42, 62, 70, 3, 85,236, 19,168, 98,159,128,223,117, 62,254,220,242,125,185,142, 84,187,188,187,153, +153,153, 25,161,161,161, 55, 2, 2, 2,134,143, 25, 51, 6,143, 30, 61,154, 1, 96,118,241,240,205,140, 49, 99,198, 32, 32, 32, + 0,161,161,161, 55, 50, 51, 51, 51,190, 70,205,235,235,235,203, 20,138,162, 62, 86, 32, 16, 24, 84,115,172,109,199, 17, 35, 88, +249,254,254, 5,187,158, 63, 95,123,228,232, 81,110,223, 62,125, 40, 53, 77,131,209,104,208,216,201,137,234,223,191,191,208,235, +194, 5, 51,182, 90,253,114,169,187,187,207,193, 31,126, 40,124, 45,145,104, 59,209,188,126,241,144, 33, 0,212,175, 98,159,214, + 80, 40, 20,123,102, 77,159,220,215,247,201, 51,251,122,246,182, 70,119,239,251, 6,242,248,250,172,134,142,141,216,185,249, 57, +156, 13,107, 87,242, 21, 10,133,182,162,181,153,185,185, 57,210,210,210, 16, 21, 21, 5,133, 66, 1,181, 90, 13, 70, 42,129, 50, + 55, 15,202,252, 28, 80,114, 25,120, 26, 13,228, 89,233,168,223,176, 1,240,215,138,196,106,135,162, 42, 18, 90, 37,223, 6, 70, + 70,224, 10, 69, 96,233,233,105,157, 28, 29, 64,251, 78,157, 58, 93,184,124,249, 50,119,202,148, 41,157, 31, 60,120,176, 15, 64, +124,114,114,114,159,213,171, 87,191,222,183,111, 31,111,230,204,153, 77,118,236,216, 49, 17,192,161,202, 72,228,114,249,133,155, + 55,111,142,119,112,112,176, 10, 14, 14,134, 92, 46, 7,195, 48, 24, 56,112, 32, 80, 52,183, 6, 0, 16, 17, 17, 33,147,203,229, + 25, 33, 33, 33, 5,241,241,241, 42,104,177, 74,112,221,158,212, 23, 5,105, 79, 70, 88, 89,219,190, 52,224,215,119, 36, 98,255, +225,139, 70,217,110,223,117, 41, 89,126, 39, 58,186,240,231,126, 13,182, 74, 10,131,230,154,216,137,247,223,241,142,209,102, 34, +124,233,234, 66, 51, 51, 51,112, 56, 28,232,233,233,129,203,229,130,162, 40,204,159, 63, 31,135, 15, 31,174,110,232,240, 19,145, +101,104,104, 24,186,126,253,122,187,153, 51,103,114, 13, 12, 12,144,155,155,139,211,167, 79, 99,234,212,169, 56,118,236, 88,133, +243, 95,180, 24, 82, 42,239, 45, 93,248,195, 15, 63, 64,169, 84, 98,220,184,113, 56,114,228,200, 66,141, 70,227, 91,139, 91,250, +101, 96, 96,160, 83, 96, 96,160, 17,128, 97, 99,199,142, 61, 57,114,228, 72,248,250,250,226,198,141, 27,189, 80,180,232, 67, 6, + 96, 11, 0,203,226,239,170,238, 79,161,149,149,213, 1,134, 97,134, 89, 88, 88, 4, 58, 59, 59,183, 60,115,230,140, 73, 70, 70, + 70,201,226, 7,196,198,198,226,248,241,227,169, 71,143, 30, 45,208,104, 52,102, 44, 22,235,102, 94, 94,222,138, 42, 4,219,209, + 93,187,118, 77, 46, 30, 14,196,229,203,151,201,206,157, 59,169,213,171, 87, 35, 55, 55, 23,174,174,174,240,244,244, 92, 32, 22, +139,219,236,220,185,115,250,232,209,163,177, 97,195, 6, 72, 36,146, 93,213,189,172, 84, 33,190, 40, 0,221,118,237,218,229,176, +112,225, 66, 92,190,124, 25,237,219,183,231,199,196,196, 28, 4, 48,173,162,250, 35,132, 32, 38, 38, 6, 82,169, 20,207,158, 61, +195,218,181,107,115,203,136,172, 5,179,103,207,222,184, 96,193, 2,108,222,188,153, 4, 7, 7,103,140, 28, 57,210,234,240,225, +195,236,198,141, 27, 47,144, 74,165,255,152,208,106,210,184,206,214,142,237,123, 44,183,177,109,140,211,103,206, 34, 39, 39,167, +180, 76, 74,202,133, 16,130,194,194, 66,164,165,165,193,216,200, 16,219,119,108, 28, 52,103,198,100,123, 20,133,193,248,220,101, +217,208,116,199,200,177, 83,126, 26, 55,126, 50,130, 3,223,193,235,228, 33,132, 4, 7,148,242,209,106, 21, 34,195,222, 34, 50, +236, 45,172,172, 29,208,191,111, 47,234,251,239,191, 31,248,195,248,177, 22, 0,254,182,208, 17,255,197,222, 44,224,243, 56, 90, +135, 63, 17, 90,213,184,235,204, 77, 77, 77, 67,207,159, 63,111,230,226,226,194,166,105, 26,119,238,222,197,220,217, 63, 98,226, + 15, 30, 80,193, 20,180,146, 11,134,107,160,149, 37, 50,153, 20, 4, 4, 18,137, 4,126,126,126, 32, 12, 13,175,195, 59, 65, 8, + 83, 42,180, 0, 2,165, 74, 5,219,122, 77,112,224,200, 38, 26,122,122,175,161,174, 56,116, 77, 65, 54, 91,163,166, 9,146, 51, + 18,144,144, 26, 2, 99,195,122,224,232,213, 67,118,158, 20, 28,150, 53,212,242, 8,104,138,207,149, 74,146, 32, 83,125, 89,253, +105, 42,240,158,146, 26, 60,116,101, 50,217,169, 83,167, 78, 13,250,237,183,223,244, 7, 15, 30,236,124,233,210,165,110, 0, 48, +120,240, 96,103, 35, 35, 35,156, 58,117, 74, 41,147,201, 78,125, 69,143, 79,239, 78,157, 58, 33, 55, 55, 23,177,177,177,129, 85, + 94,155, 82,105, 38,178,180,100,103, 60,122,164,206,204,205,181,239,221,187, 55,165,166,105,176, 40, 10, 57,249,249,136,143,139, +131,137,137, 9, 21, 26, 17, 33,218, 59,111,222, 85,231,150, 45, 57, 37, 43, 18,181,193,141, 27, 55, 4, 40,154,151, 85,229,190, + 26, 66,146,145,158, 54,217,221,221,253,234,169, 83,167,141,211, 51,210, 35,121,250,250,180, 72,100, 80,247,135, 9,115, 56,121, +121,121,227, 1,136,181, 37,203,205,205, 69, 76, 76, 12,248,124, 62,184,122,122, 96,100, 82,104, 36, 98,200,115, 50,193, 86, 41, +161,175,209,160,142,128, 7,123, 43, 43,212,179, 48,215,138, 51,234,225,189,210,137,239,101,135, 11,183,119,106, 6,125,161, 8, +250,134, 34,204,241,126, 92,252, 54,202, 5, 86,255,162, 13,173,185,173,173,237,159,103,206,156,225,102,102,102, 34, 32, 32, 32, + 16, 64, 62, 0, 67, 0, 76, 88, 88,216,131,144,144,144, 33,197,171,238,170, 91, 45,182,243,202,149, 43,253, 92, 92, 92,104, 71, + 71, 71, 97, 70, 70,134,125,110,110, 46,147,154,154,250,137, 75,232,222,189,123,188,194,194, 66, 9,195, 48, 87,139, 69, 86,181, +241,139, 22,141,178, 53,240,243,199,252,158,110,245, 91, 25,153,183, 70, 14,237,223,234,101, 96,234,252, 69,163,108,247,236,186, +148, 44,231, 83,138,147,148, 38,209,158, 99, 32,215,118, 18, 51, 1,138,230, 74,249,249,249, 33, 62, 62, 30, 49, 49, 49,159, 8, +170, 25, 51,102,192,203,203, 75, 43,143,150, 80, 40,220,188,110,221, 58,187,133, 11, 23,114,203,136, 34,184,187,187, 35, 63, 63, + 31, 71,142, 28,129,187,187,123,141, 59,254,114,104,208,187,119,239,193, 54, 54, 54,200,206,206,134,181,181, 53, 92, 92, 92,134, +250,250,250, 58, 2,136,173,101,187,159,227,230,230,182,113,253,250,245, 80,171,213,152, 58,117, 42, 62,124,248,112,225,195,135, + 15,187,235,213,171, 55,127,217,178,101, 86, 86, 86, 86, 24, 51,102,140,144,166,233, 17,149,145,212,169, 83,103,203,161, 67,135, +198, 15, 30, 60,152,165, 82,169,190,121,248,240, 33,226,226,226,160, 84, 42, 65,211, 52, 62,126,252, 8,119,119,247,212,226,213, +141, 31,181,176,107,202,170, 85,171, 38,207,159, 63, 31,219,182,109,195,186,117,235, 78, 24, 27, 27,183,108,219,182,109,187,117, +235,214, 97,233,210,165,112,112,112,128,153,153, 89,211,213,171, 87, 55, 91,188,120, 49,246,236,217,131,181,107,215,158, 0,112, +188, 54, 5,193, 48, 12,181,117,235,214, 54,187,118,237,178, 41, 17, 89, 44, 22, 11,231,207,159,135,191,191,255,208,232,232,232, +138,206,241,180,182,182,158, 97, 99, 99,163,127,255,254,125,145,131,131, 3,104,154, 86, 23,139,172,189,245,234,213,155,251,241, +227, 71, 12, 30, 60, 24,209,209,209,167, 0, 76, 52, 54, 54,150, 44, 94,188, 88,192,231,243,141,165, 82,233, 63,213,121,131,205, +162, 38,109,222,176, 20,111,252, 35,112,229, 10, 23,111,222,188,129,149,149, 21,120, 60, 30, 8, 33, 80, 40, 20,200,204,204,132, + 90,165, 64,171, 22, 13,240,199,209,173,200,200,200, 4, 88, 84,165, 83,110, 40, 22, 53, 97,242,143,195,241,244,217, 93, 28, 60, +120, 8, 98,177,164,146,151,111, 3, 52,118,110, 6,219,186,150, 72, 76, 74, 4,197,130,249,223,121,173,255,229, 67,135,165,143, + 32,104, 19,222,161, 44, 76, 76, 76,118,159, 59,119,206,204,213,213,149, 45,145, 72,192, 48, 12,122,184,184, 96,254,194,133,184, +113,230, 12,156, 58,143, 3,165, 20,129, 22,104,183,234, 65, 46,147,162,121,187,110, 24, 61,102, 44, 18,226,227,225, 54,100, 36, +228,114,105,233, 27, 70,137, 71, 75,169, 84,193,220,210, 30,247,238,221, 99, 99,234,212,247,216, 91,177, 83, 66,163,210, 15,138, +252, 40,239,158, 39,243,135,223, 27, 47,168, 20, 42,180,106,181, 26, 42,198, 12,150,118, 51,160, 86, 95, 67, 65,230,195,162, 97, + 12, 51, 87, 36, 37, 36,128,197,230,134,214,182, 4, 25, 73,230, 23, 61,116,243,243,243,243, 99, 98, 98, 46,249,249,249, 77, 24, + 49, 98, 4,238,221,187, 55, 29, 0, 70,140, 24, 1, 63, 63, 63,196,196,196, 92,202,207,207,207,255, 26,181,109, 99, 99, 51,172, + 87,175, 94,227, 58,118,236, 8,111,111,111, 16, 66,158,106,117, 99,235,233, 17, 22,139, 5,134, 97, 64, 1,200,206,203,195,135, + 15, 31,144,157,149, 5,181, 90, 13,137, 88,204, 52,115,118, 22, 19,134, 49,172,137, 61,101, 87, 24,162,130, 85,135, 37,251,106, +113,169,241,175, 95, 62, 79, 40, 20,139, 45, 76, 77, 76, 11,245,245,245, 53,185,121,121,249,239, 67,131,149, 90,118, 14, 37, 8, + 11, 9, 9,105,153,146,146,130,132,132, 4,208,146, 66,176, 21, 74,176, 20, 82,244,233,214, 21,124, 16, 24,128,129, 30,163,134, + 30, 91, 15,133, 69,171,243,170, 29,238,208,148,121, 73, 40, 17, 89, 20, 69, 21, 13, 23, 10,133,208, 23, 25,126,226,225,210,166, + 61,241,120,188, 51, 23, 47, 94,180,177,181,181,197,134, 13, 27, 96,103,103,215,180,110,221,186, 82, 99, 99, 99,190,149,149, 21, +154, 55,111,142,110,221,186,225,246,237,219,208,162, 12,104, 66, 72,255,167, 79,159,254,244,252,249,243,209, 66,161,144,154, 55, +111, 30,103,224,192,129,224,241,120,144, 74,165,200,205,205,197,217,179,103,179, 24,134, 41, 89,148, 98, 38, 16, 8,142, 83, 20, + 21, 43,145, 72, 22,150, 39,252,227,183, 86,117, 51,114,152,169, 68, 44, 24,222,211,173,126,171,222,110,125,209,192,169, 55,122, +187, 37, 0,192,214, 58,156,184,113,191,174, 50,185,106, 98, 72, 29,191,119,231,254, 90,151,158,189, 87, 45, 23, 63,218,184,237, +112, 94,181,243,233, 40,138, 2,195, 48,159,196, 14, 42,255,251,196,137, 19,113,254,252,249,106,203,145,197, 98,141,157, 57,115, + 38,183,156,231, 25,201,201,201, 24, 50,100, 8, 70,140, 24,241,137,208, 50, 55, 55,135,181,181, 53,226,226,226, 0, 32, 91,203, +118, 53,127,202,148, 41,148, 76, 38,195,180,105,211,112,228,200, 17,140, 27, 55,142,242,245,245,157, 15, 96, 97, 77, 27, 59,139, +197,218,190,108,217,178,159,220,221,221,145,147,147,131, 91,183,110, 97,224,192,129, 56,127,254,188,197,173, 91,183, 54,187,186, +186,130,205,102,195,219,219, 27, 52, 77, 87, 25,235,139,203,229, 14, 27, 60,120, 48, 43, 49, 49, 17, 92, 46, 23, 29, 58,116, 64, + 82, 82, 18,164, 82, 41,146,147,147,177, 96,193,130,180,236,236,236, 94,218,222, 71, 92, 46,119,225,252,249,243,113,238,220, 57, +120,120,120,156, 4, 48, 45, 63, 63,127,244,243,231,207,207,125,251,237,183, 72, 78, 78,198,213,171, 87,177,118,237, 90,106,226, +196,137,216,191,127, 63, 22, 44, 88,112,162,216,235, 84, 89,195, 47,204,200,200, 48,110,212,168, 17,210,211,211, 33, 22,139,113, +245,234, 85,203,219,183,111, 59,218,218,218, 26,197,196,196,104,126,249,229, 23,253,133, 11, 23, 98,247,238,221, 8, 8, 8,128, +151,151, 23,122,247,238, 77, 71, 71, 71, 87,232, 37, 43, 14,217,112,149, 16,114, 95, 40, 20,162,176,176,176,228,190, 91,226,225, +225,225,190,101, 75,145,147, 61, 37, 37, 5,147, 38, 77,250,193,199,199,135,113,117,117, 21,112,185, 92,200,229,114,201, 63,217, +107, 51, 26, 6, 0, 3, 71,123, 17,238,222, 56,138,119,129,209,120, 23, 24, 2,125, 94,209, 36,120,153, 76,138,118,173, 26,163, +115,135, 78, 72, 73, 77,198, 41,175,163,168, 99,110, 91,229,115,132, 16, 2, 46, 71,131,102,206,214, 56,227,117, 8,222,183,124, +224,117,234,108,233,156, 55, 14, 71, 15,109,219,117, 70,135, 14, 46,136,142,249,136,163, 71, 15,194,194,210, 94, 55, 56, 88, 75, +148, 14, 29,150,253, 46,167,252,123,187,184,184,176,197, 98, 49,228,114, 57,210,210,210, 16, 23, 23, 7, 19, 83, 19, 68,167,196, +162,151, 64,133, 52,166, 0, 97,129,161, 26,138,173, 23, 80,221, 63, 28,220,179, 45,208,179, 45,230, 78, 25, 87,197, 43, 43,129, +208,200,188,104,232,134,166,163,176,103, 15, 93,153,208,162, 53,234, 7,119,239, 63,236, 52,101,226, 48,189,123, 15,143, 64,173, +100, 32, 83, 27, 67, 34, 87, 66,162,210, 3,203,120, 32,144,229, 11, 54,135,135, 46,109, 26,227,234,149,219, 42, 66,171,125,180, + 46, 32,171,150,160,211, 67,202, 8,173,140,114,227, 14,117,180, 30, 58, 44,237,120, 53,154,243,167, 79,159,254,174,107,215,174, + 2, 87, 87,215, 70,197, 29,167,234,244,233,211,210,226, 96,152, 53,197, 39,209,224,173,173,173,219,113,185,220,113, 3, 7, 14, +108, 55,121,242,100,188,127,255, 30,167, 78,157,138,108,220,184,241,163,212,212,202, 87,100,179,245,245,179,197, 25, 25, 38, 34, + 71, 71,142,169,161, 97,202,237, 91,183, 28,250,246,235, 71, 37, 36, 36, 32, 59, 59, 27,114,185, 28, 1,129,129, 68,143,205, 78, + 48,106,131,190, 0, 0, 32, 0, 73, 68, 65, 84,162,140,140, 88, 17,254,254, 44,182,190,126,118,101,222,198, 10, 16, 87,205,170, +195, 45,181,245,110,217,219,152, 54, 90,235, 49,171,129, 92, 33,111, 89, 80, 80, 64,115,244,244,244,236,172, 77,226, 35, 62,106, +255, 76, 84, 40, 20,222, 15, 30, 60,248,174,111,223,190,188,200,160, 0,208,249,249, 80,230,231,130,203,104, 80,167, 93, 27,176, + 85, 10, 64,169,134,109, 51, 2,121,158, 0,190,175, 34,212, 10,133,162,218,160,134, 37, 66,139, 85, 78, 24,232,139, 68,224, 25, + 26,129, 39, 18,149, 23, 12,213,189,201, 9,250,247,239,223,167, 75,151, 46, 32,132,224,240,225,195, 80,169, 84,250, 42,149, 10, + 74,165, 18, 42,149, 10, 5, 5, 5,240,242,242,194,129, 3, 7,158, 3, 56,161,197,229,211,124, 62,255, 91,138,162, 44, 57, 28, +142,212,194,194, 66,120,254,252,249,210,112, 19,109,219,182,133,161,161, 33, 23,197, 65, 33, 45, 45, 45,245,142, 29, 59,102, 50, +116,232,208, 39, 21, 14,119,180,106,186,180, 1,109,218,211,128, 95,223,209,200,188, 53, 26, 56,245, 6, 0,244, 27, 50, 5, 13, + 26,215, 67, 65, 86,144,163, 92, 22, 55,156,203,201, 53, 13,221,147,252,158, 63,184,229,100, 73,198,227, 15,168,120,121,127,133, + 29, 5,139,197,170,116, 56, 86, 27,145, 85,164, 89, 88, 22, 37,243,124, 0, 32, 59, 59, 27,169,169,169, 8, 11, 11, 67,147, 38, + 77,144,147,147, 3, 91, 91, 91, 40,149, 74,116,236,216, 17, 50,153, 12,187,118,237,194,179,103,207,158, 3, 88,160,197,255,224, + 59, 57, 57, 77,106,215,174, 29,110,221,186,133, 55,111,222, 36,223,189,123,215,214,197,197, 5,142,142,142,147, 99, 99, 99, 87, + 22, 15,245,105, 11,161,139,139,203, 60,119,119,119,132,132,132, 96,214,172, 89,217,137,137,137, 87, 47, 92,184, 48,109,237,218, +181, 44, 55, 55, 55,164,166,166, 98,251,246,237,154,103,207,158,237, 0,176,161,154,114, 12, 79, 76, 76,180,147,203,229,200,201, +201, 1, 77,211,144, 74,165,184,125,251, 54,188,188,188,210,139, 69, 86,148,182,198,181,105,211,166, 57,139,197,194,185,115,231, + 0,224,103, 20, 69,236,191, 58,124,248,240,228, 95,126,249,197,118,197,138, 21,152, 62,125, 58, 84, 42, 21,182,109,219,134, 21, + 43, 86,220, 44, 22, 89, 85, 61, 68,127,179,182,182,158, 49,107,214,172,166,139, 23, 47,134,159,159,159,229,219,183,111, 59, 4, + 4, 4,192,222,222, 30,217,217,217, 28, 51, 51, 51,236,222,189, 27,139, 22, 45,186, 12, 32,235,197,139, 23, 99, 99, 98, 98,182, + 0,216, 94,141,104,247,180,181,181,157, 65, 8, 33, 82,169, 52,206,195,195, 99,251,166, 77,155,176,104,209, 34,132,134,134, 34, + 63, 63, 31,134,134,134,212,178,101,203, 38,253,252,243,207,152, 58,117, 42,145, 72, 36, 7,254,233,142,154, 16, 13,164,185, 33, +208, 40, 76,209,182, 85, 19,180,109, 89, 31,119, 31,190, 3, 0,244, 25,233, 2,169,164, 16, 39, 79, 30, 70, 84,212, 7,112,244, +244, 96, 82,199, 90, 27, 79, 32,148, 5,225,200, 83,165,162,175,107, 7, 12,116,235,133, 19,127,156, 7,173, 86, 97,218,148,241, +200,205,203,195, 31,127, 28, 69,116,204, 71,112,244,244, 96,102,254,247, 7, 66,173, 74,139,252,215, 11, 45, 45,134,159,192, 48, + 12,146,147,147,241,246,237, 91,196,198,198, 66, 32, 16, 64, 70,107,152,131, 15,158, 49, 20,197, 77, 98, 8,121, 78,232,210, 40, +197,159,115,104, 52,201,101, 34,214, 26,155,154,154,234, 43, 20, 50,208,180,186, 76,175, 66, 1, 20,192,229, 0, 54,117, 27, 32, + 49, 33,145,200,229,242,199, 85,190, 65, 41,228,187,175, 95,189,232,222,173,187,139,249,192, 62,235,113,245,218,106,228, 22, 20, + 64,174,210,131, 68,174,130, 84, 14,152,212,113, 70,199, 86,173,145,146,146,141,160, 55,190, 98,142, 66,170,205, 68,209, 15,123, + 87, 77,113,154, 50,119, 41,248, 14,221,161, 8,187, 10, 70,156, 94,234,209, 50, 16,153,162, 78,189,102,200,147, 40,112,209,231, + 29, 80,131, 84, 47, 25, 25, 25, 82, 54,155,125,218,221,221,125,219,187,119,111,237, 0,224,221,187,119, 73,169,169,169,203, 51, + 50, 50,106,234,147, 46,137, 6, 79, 25, 24,240,223, 53,110,220, 56,165, 67,135, 14,198,195,135, 15,135,185,185, 57, 2, 2, 2, +176,101,203,150,112,149, 74,181,212,215,215,183,202,161, 30,165, 82,153,252,238,218, 53,163, 94, 63,254,104,178,116,232,208,237, +238,238,238,187, 55,108,216,160,231,228,228, 68,169, 85, 42, 4, 7, 7,147, 51,167, 79,171, 15,172, 88,177, 75, 95, 40,228,188, +190,126, 93,143, 86, 40,146,255,191, 27,177,173,173,109, 79,151,111,122, 52,219,241,219, 30,200,101, 98,188,242,187,137,220,220, + 76, 28, 58,124,165,153,173, 45,233,153,156,156,236,171,173, 0, 62,126,252,248, 79,157,219,181,107,215,208,222, 30,193,241,177, +208,103, 52,224,210, 52,216, 42, 5, 88,180, 28,246, 45, 9, 40,150, 33, 82,211, 10,176,233,220,165, 16,109,132,113,211, 65,195, +176, 33, 41, 31, 20, 69, 97,103,215,150,208, 55, 20,129, 43, 20, 97,206,159, 15, 75,133,129,247,134, 21,208, 23,137,208,168,179, + 86, 1,225,165,143, 30, 61,122, 27, 28, 28,220,177,101,203,150,248,233,167,159, 16, 23, 23, 7,134, 97,144,158,158, 46, 79, 77, + 77, 77,206,204,204,140, 67, 81,252,159, 35,213,116, 98,101, 85,135,173,175,175,111,233,112,131,143,143, 15,234,214,173, 11, 99, + 99, 99, 20, 20, 20, 96,230,204,153, 38,107,214,172, 1, 0,188,125,251, 22,101, 5, 74,121, 4,191, 11,219,145, 87, 72,114,137, +216,127,120, 14,237,223,170,183, 91, 34,250, 13,153,140,251,222, 39,240,240,238, 3,212,225,196,197, 66, 88,120, 59, 43, 54,171, + 32, 73,226,228,217,172,253, 52,118,170,228,174,231,188, 97,145,108, 27, 27,230,226,138,131, 5,121, 85,217,234,228,228, 4, 43, + 43,171,210, 57, 90, 28, 14, 7, 83,167, 78, 5, 33, 68, 91,145, 85,220,215, 48,153,114,185,220,202,192,192, 0,105,105,105,248, +248,241, 35,162,163,163, 75, 67, 7, 48, 12,163, 94,178,100,137,222,188,121,243,112,240,224, 65, 60,126,252,248, 57,128,245, 0, +180,125, 89, 27, 63,102,204, 24, 67,165, 82,137,179,103,207,210, 0,134, 92,188,120,241,109,199,142, 29, 57, 3, 6, 12, 48,220, +191,127,255,248,226, 58,210, 90,104, 25, 25, 25,113, 85, 42, 21,246,239,223,143,196,196,196,158, 0,194, 94,191,126,237, 57,102, +204,152, 3, 45, 91,182,108, 28, 18, 18,242, 65, 44, 22,207, 1, 16, 84, 29, 89,122,122,250,148, 14, 29, 58, 92,100, 24,198,161, +111,223,190,194,223,126,251,205, 40, 34, 34, 2,118,118,118, 96, 24, 38, 24, 53, 76, 97,245,225,195,135,176,212,212,212,102,189, +122,245,194,237,219,183,183,106, 52,154,205, 0,182,205,158, 61,219, 54, 62, 62, 30,237,218,181, 67,157, 58,117, 16, 17, 17, 81, +152,154,154,122, 0, 69, 41,137,170,115,225,198, 0, 88,238,233,233,217,218,211,211,115, 92,157, 58,117,186, 4, 4, 4,224,233, +211,167,216,177, 99, 7,214,172, 89,131, 30, 61,122,224,167,159,126,202, 2, 48, 14, 0, 29, 19, 19,163, 85,220,188, 18,207, 22, + 0,180,111,223, 62,101,203,150, 45,152, 54,109, 26, 57,118,236,216,239,167, 79,159, 94, 56,126,252,248,210, 62,112,210,164, 73, +228,212,169, 83,147, 80,148,134,233,159,132, 90,165, 82,194,168, 78, 3,136,243, 18,144,153,232, 7,129,161, 53,220,122,183,129, + 84,166,196,141,235,151, 17, 20, 28, 8, 22,139, 5, 43,107,123,152,152,154, 35, 50,242, 3, 80,245,106, 99,181, 74,165,130,161, +105,125,136,243, 19,161,204,120, 7,190,200, 18,147,127, 28, 14,169, 76,133, 43, 87, 47, 35, 36, 36, 8,108, 54, 27,214, 54,246, + 48, 54, 41,226,164, 72,213, 43,152,117, 0, 80, 65, 60,173,106,133, 22,155,205,126,116,231,206,157, 81,157, 59,119,230, 68, 69, + 69, 33, 42,170,232,229, 38, 55, 55,151,166,160,185,148, 17,124,253,251, 42, 78,239,139,226,213, 25,101,115, 23,138, 12, 13,147, + 35,194,195,172,114,115,210, 17,232,255, 12, 81,145,193,136,141, 14,131, 74, 37, 7,155,197, 2,139,205, 66,253, 6, 45,240,236, +185,159, 82, 78,211,126,149,113, 22,217, 17, 93, 40,180,116, 26,187,113,195, 74,239, 69, 75,215,241, 71,143, 58,136,160,136,247, + 16,211,214, 32, 4,176, 54, 19,162,109,195,101, 72, 78,201,196,185, 19,251,165,140, 74, 53,161, 92, 12,173,207, 56, 1,192, 42, + 11,205, 15, 28, 62, 49,245,136,215,153,117, 75,231,205,180,250,118,196, 4,232,231,188,135, 58,229, 29, 26,116, 28, 8,138,103, +130, 91,247, 30,194,247,237,251,116, 70, 67,214, 89,101,227, 88,100, 53,156,101,145,151,151,247, 34, 45, 45,213,174, 76, 20,120, + 59, 30,207,160,186,213,113,229, 57, 63,137, 56,207,102,179,218,111,220,184, 81,109,101,101,165, 10, 9, 9,193,193,131, 7,153, +119,239,222,221, 99,177, 88,123, 83, 83, 83,229,213,113, 90,168,213,129,103, 60, 60,154,119, 26, 49,130,124, 63,111,158, 20, 60, +222,252,237, 59,119,122,100,230,230,214, 37, 12, 3,139, 58,117,146,182,175, 88,177,101,212,152, 49,185,161,207,158,241,253,174, + 93,227,235,211,244, 59, 45,236,252, 26,168,148, 51, 57, 57,217,247,241,227,167, 56,121,228, 55,168, 84, 10,164, 38,199, 3, 0, +178,178,243, 81,141,200, 42,207, 73,164, 82,233,136,159,215,172,121,249,243,162,133,214,223,244,233,139,132,192, 0,168,114, 50, + 65,169,105,232, 81, 28, 72, 50, 4,200, 72, 23, 99,249,169, 11, 25, 98,169,116, 68, 5,157, 68,133,118,150,120,172,120, 70,134, +224, 10, 69,208, 23, 25,126,226,197, 50, 48, 50,130,190, 80, 4,142,190,126, 69, 19,184, 63,227, 20,139,197, 35, 71,141, 26, 21, +244,250,245,107,211,105,211,166,161, 91,183,110,254, 50,153,204, 21, 64, 97,109,203,147, 97,152,228,111,190,249,134, 69, 81,148, +104,194,132, 9,188,204,204,204,210,200,234, 98,177, 24,183,111,223, 70,147, 38, 69,171,250, 67, 67, 67,209,162, 69,139, 74, 57, +167, 47, 15, 73, 6,176, 97,209, 40,219,237, 47, 3, 83,231, 3,216,218,160,177, 61, 30,222,125,128,167, 15,253, 60,186,180,100, +246, 12,154,208,241, 23,129,235,152,165,205,218, 79, 99,139,140,108,240,199,149,203,236,176,119, 71, 55, 73,165,193,141,112,240, +234,146,202,236,164, 40, 10,132,144,207, 66, 57,176,217,108,156, 62,125,186,166,215,126,225,200,145, 35,179,103,205,154,197, 77, + 77, 77, 69,120,120, 56, 36, 18, 9, 12, 12, 12,112,247,238, 93, 26,192,254,211,167, 79,223, 61,125,250,244, 0, 20,173, 38,242, +169, 73,251, 20, 10,133,238,110,110,110, 8, 15, 15,199,155, 55,111, 46, 3, 8,242,247,247,191, 28, 21, 21, 53,182, 71,143, 30, + 56,113,226,132,187, 76, 38, 59, 82, 19, 78,134, 97,202,198, 76, 42,201,248, 16, 40, 22,139,187,248,249,249,213,180,222, 83,179, +179,179,187, 23, 11,235, 68, 43, 43, 43,163,192,192, 64,212,171, 87, 15, 42,149,170,115, 77,219, 82,126,126,254,111,123,247,238, + 61, 54,101,202, 20,252,242,203, 47, 19, 46, 92,184, 48, 97,208,160, 65, 24, 60,120, 48,142, 31, 63,142,160,160,160,173,208, 46, +173, 88, 69,215, 30, 4, 32,200,202,202,106,174,189,189, 61,118,236,216,129,224,224,224, 45, 27, 54,108, 88, 17, 20, 20,132, 38, + 77,154,240,194,194,194,232,218, 60, 67, 0,192,200,200,200, 72,173, 86,227,218,181,107,175, 0, 44,154, 48, 97,130,229,238,221, +187,199,137, 68, 34,228,228,228,200, 66, 66, 66,198, 3,184,254, 79, 63,235, 8, 69,173,154, 54,125,190,231,244,105,227, 13, 58, +180,111, 11,105, 65, 18,100,226,116, 72, 11,211,176,247,200, 61, 80, 20, 11, 22, 22, 54,176,180,182, 67,124,124, 2,158,223,188, +165,148, 72,101,187,245,213,204,214,170, 57,231, 21,113,182, 43,226,148, 74, 50, 32, 19,103,148,114, 90, 90,214, 45,230,140,199, + 51,191, 91,114,153, 68,242,155,146, 80,191,254,205,215,254,223,140,154,229, 58, 44,139,220,220,220, 5, 51,103,206,116, 93,190, +124,185, 25, 77,211,236, 58,117,234, 32, 62, 62,158,190,116,233, 82,142, 88, 44, 94, 80, 27,107, 56,122,122, 65, 78,206, 77, 92, +191,253,246, 91,122,216,176,161,220, 31,166, 12,224, 88, 88, 90, 34, 63, 47, 27,145,225, 1,136,120,255, 14, 78, 77,218, 96,237, +134, 93,128,137, 73,181,137, 36,139,211,234, 12, 89,255,243,146,243,221,123,246, 55,106,210,162, 13,183,109, 35, 99,168,212, 52, +146,146,146,112,253, 90,160, 42,228,237,211, 2,134, 86,142,149,102,105,151,130,199, 23,160,145,141, 67, 45, 45, 85,167, 55,111, +223,251,211,254, 67, 39,151, 46,159, 63, 77,216,195,165, 31,130, 31,156,192,101,239,243, 18,185, 66,185,157,203,198,206,144,108, + 72, 35,107, 88, 6,114,185, 92, 85,190, 63,149,203,229,170, 47,173,233,227,199,143, 35, 61, 61, 93, 25, 23, 23,119,135,166,233, + 11, 85, 36,123,254, 12,123, 1,229,112,133,226,193,207, 46, 46, 3,126,190,123,215, 96,210,178,101,202, 9, 63,252,176, 4, 10, +133, 10,250,250,132, 35, 20,178,192,227,233,133, 62,123,198,255,125,246,236, 58,148, 82,121,255,100, 21, 97, 3, 42,192, 87, 95, +117, 88,226,209,234,213,171, 7, 38, 77, 91, 4, 89, 25,143,214,139, 55,145, 80,168,160,181, 71,171, 24, 9,113,137,137, 93,230, +175,250,249,202, 88,183, 62,205, 90, 58,212,231, 89, 56,214,135,200,218, 26,217,153,153,120,246, 38, 66,189,225,252,149,144, 98, +145,165, 85, 92, 25,134, 97,138, 38,185, 3,232,179, 96, 57, 40, 54, 27, 40, 14,227, 80,178,114,200,177, 99, 55, 80, 28, 14, 52, +132,129, 66,161,208,102,210, 95,210,199,143, 31, 71, 78,152, 48,193,199,219,219,155,229,230,230,214,246,234,213,171,204,151,180, + 29,153, 76,214, 5, 0, 12, 12, 12, 98, 77, 76, 76,108,167, 76,153, 2,181, 90, 13,169, 84,138,252,252,124, 36, 37, 37,229, 77, +153, 50, 69, 5, 0,124, 62, 95,127,212,168, 81, 70,213,113,238,186,148, 44, 95, 52,202,118, 79, 29, 78,220,184,130,172, 32,199, + 58,156,184,216, 46, 45,153, 61,187, 46, 37,203,141,234, 74, 54,102,197,249, 70,166, 74,238,122,254,113,229, 50,123,226,240,145, + 26, 59,209, 7, 15, 3, 75,114,169, 58, 94,138,162, 62, 11, 78,170,165,200,250, 4,133,133,133, 43, 86,175, 94, 61, 56, 55, 55, +215,110,192,128, 1,220,102,205,154,225,229,203,151,240,246,246,166, 95,188,120,145, 40,145, 72, 86, 2,144, 3,184, 87,155, 50, +117,118,118,118,228,112, 56, 37, 67,105,251,138,119,239,187,122,245,234,216,105,211,166,161,126,253,250,205,195,194,194,120,168, +193,125, 68, 8, 41, 29,101,248,154,160, 40, 42,250,247,223,127,183,181,182,182,166,110,223,190, 77,179,217,236,218,120,110,142, + 31, 61,122,180,179, 90,173,158, 62, 99,198, 12,244,236,217, 19, 52, 77,227,212,169, 83, 56,122,244,168,182, 34,171, 74, 68, 70, + 70,190, 75, 76, 76,252,102,201,146, 37,216,177, 99,199,138, 37, 75,150, 32, 49, 49, 17,145,145,145, 1, 95,194, 91, 80, 80, 32, + 75, 72, 72, 16,116,237,218,181, 67, 72, 72, 72,136,171,171,107,139,105,211,166, 97,235,214,173,228,241,227,199,163, 0,220,254, +255,232,189, 35,162,114,188,244, 52,156,187, 27, 54,254,182,166, 81, 67,199, 89, 83, 39,143, 97, 59, 59,181,128, 36, 63, 9,102, +230, 86,176,179,111,128,204,140, 44,220,185,115, 91,147,149,149,119, 92,195,162,214, 71, 69,229,164,124, 9,167,173, 93, 3,100, +100,100,224,214,173, 91,154,188,220,130,195, 80,179, 54,132,197,231,165, 67, 7,109, 60, 89, 51, 80, 69,148,248,170, 96,110,106, +106,122,214,200,200, 40,221,200,200, 40,221,212,212,244, 44,160,213,234,131,190,101,158, 14,236, 79, 62,163, 70, 25,192,192,160, + 11, 56,156,197, 38,166,166,183,141,141,141,179,123,245,234,165,244,244,244,148,135,133,133, 50,201,201,137,196,216,216, 56,191, +244,248,138, 56,203,193,212,180,161,161,208,166,197, 26, 99,187,182,207, 68, 54,205, 11, 69, 54,205, 11,141,237,218, 60, 23,218, + 52, 95,103,106,218,208, 80, 43, 59, 43, 65, 3, 75, 88, 56,153, 99,127, 19, 11, 74,230,100,142,253, 13, 44, 97,161,245,181, 87, + 61,236,167,161, 40,104, 80,180, 12, 27,181,224, 44,225, 96,216,108,246, 73, 59, 59, 59, 27,212, 44, 96,221,103,156, 63, 0,245, +127,224,241,166, 95,244,240,152, 20,251,248,241,132,130,152,152,239,243,163,163,199, 4,156, 63, 63,118,223,216,177, 63,124,207, +227,205, 24, 5, 52,212,150,211,198,198,102,203,187,119,239,188,181,253,148, 17, 94, 90,151,103,195, 6,182,119,221,250,118, 38, +238, 51, 71, 16,247,153, 35,136, 91,223,206,164, 97, 3,219,187, 95, 80, 71, 20,155,205, 30, 39, 16, 8,206, 10, 5,130, 96,161, + 64, 16, 44, 16, 8,206,178,217,236,113,168,122, 14,213, 39,156,102,102,102,111,173,172,172,210,107,242, 49, 55, 55,247,175,129, +157,223, 59, 58, 58, 38,178, 88,172, 93, 53,188,167,171,226,116,226,243,249,209, 66,161, 48,169,236,135,207,231,151, 13, 12,101, + 38, 16, 8,110, 8,133,194,221,218,112,254,186,170,197,154,231,247,230, 6,253,186,170,197,154,242,191,205,251,206,116,202, 75, +159,245,217,243,190, 51,157,162,141,157,150,150,150,143, 45, 45, 45, 83, 45, 45, 45, 83,173,172,172,170,252,152,155,155,191,213, +130,211,192,208,208,112,183,161,161, 97,186, 80, 40,212,136, 68,162,116,161, 80,184, 11,101, 66, 91,212,182, 60, 89, 44,214,214, +230,205,155,203,217,108,246,177,114, 63,237,104,212,168,145,156,195,225,108,175, 33,167, 81,143, 30, 61, 52,129,129,129,164,103, +207,158, 4,128,233, 87,172,119,107, 83, 83,211,219, 70, 70, 70, 9,134,134,134,123, 1, 8,107,201, 73, 1, 24,103,107,107, 27, +208,187,119,111,169,173,173,173, 31,128,111,191,162,157,131,191,251,238, 59, 38, 33, 33,129, 16, 66, 72, 66, 66, 2,249,238,187, +239, 24, 20, 5,138,252,146,103,242,170,217,179,103,147, 23, 47, 94,144, 23, 47, 94, 16, 63, 63, 63, 50,120,240, 96, 6,192,143, + 95,248,156,199,215,186,246,102, 13,204, 27, 54,109,108,122, 97,252, 72, 23,230,222,245, 93,100,237,202, 89,164, 95,207, 22,164, + 73, 35,211, 43, 78, 78,102, 78, 95,131,115,205,202,153,164,239, 55,205,153,102, 13, 77,207, 55,107, 96,222,240, 31,190,246,127, +163, 87, 11,127,247,132,179,191, 92,139,159,138,165,138, 81,183,110, 93,100,103,119, 54,224,112, 92,120, 60,158, 43,139,205,126, +148,147,153,185,176,248,117, 75,243, 79,185,106,171,236,208, 27, 66,191,138,148, 4,181,225,252,100, 34,123, 45, 57,107,194,161, + 21,103,101, 73,165, 25,133, 34,197,140,166,223,238, 69,149,101,240, 9,167,173,173,237,116,134, 97, 28,181, 53,136,197, 98,197, + 38, 39, 39, 31,169, 77,121, 54,110,220,152, 20, 15,111, 83, 95,179,222,255,142,182,244,191,196,249,199,111,173,234, 54,105,213, +116,105,240,187,176, 29,197,195,138,165, 88, 55,207,212,208,165,119,175,213,207, 30, 62,254,101,221,222,220,194,255,231,107,103, + 65,203, 57,109, 95,129,179, 36, 72,104,141, 56,245,244,244, 60, 59,117,234, 52,253,229,203,151,199, 52, 26,205,140,255,209,246, + 57,152,205,102, 47,113,118,118,110, 27, 25, 25, 25,160,209,104,118,160,130, 64,145,181,176,115,165,163,163,227, 28, 46,151,203, + 19,139,197,185, 41, 41, 41,171, 1, 92,248, 79, 43,207,102,141,235,116, 32,164, 52,232,246,166,240,143, 57,175,191, 26, 39, 97, + 52, 12, 97,111,140,140,201,246,255,127,168,247,127,155,200, 58,252, 79,252,227,190, 58, 78, 29,167,142, 83,199,169,227,252,234, +156,124, 93,121,234, 56,255,133,156,255, 74,112,116, 69,160,131, 14, 58,232,240, 95, 7,153,174, 8,116,208,225, 63, 14,101,189, + 90,165,222, 44,170, 10, 85, 90, 19,151, 96,109,148,237, 3, 29,167,142, 83,199,169,227,212,113,234, 56,117,156,255,115,156,255, + 86,145,117,184,138,237,191, 13, 58,183,170,142, 83,199,169,227,212,113,234, 56,117,156, 58,206,255, 5,161, 85,225,182,110,232, + 80,135,191, 29,123,134,195, 22, 0,230, 95, 69,242,223,113,188, 14, 58,232,160,131, 14, 58,252, 63,227, 48, 42, 25, 58,252, 79, + 16, 90,117, 1,116, 65, 81,226,219, 8, 0, 79, 1,228,126, 1,159, 57,128, 49, 20, 69,141, 6, 0, 66,200, 69, 20,173, 26,201, +210,230,100, 3, 3,131,116,185, 92,110, 89,252,119,134, 92, 46, 47,155,203,128,194,231,171,217, 72,153, 79,133,112,116,116, 76, + 87, 40, 20,150, 90,252,251,124, 66, 72, 16,139,197, 10, 22,137, 68, 15, 35, 35, 35,189,107,114,225,174,174,174,147,216,108,246, + 38, 0,208,104, 52,171, 30, 61,122,116,242,111,172,183,206,246,117,173, 79,168,212, 42, 58, 61, 51,103, 53, 62, 15,228, 7, 0, +216, 63, 4, 91, 40, 26, 75,139,255,222, 62,215,187,234, 56, 58, 53, 61,190, 10,116,208,211,211,115,183,178,178, 26,152,148,148, +244, 22,192, 50,160,250,168,198,246,246,246, 63,114, 56,156, 9, 26,141,166, 33,155,205,142,166,105,250,116, 98, 98,162,151,238, + 25,162,131, 14, 58,232,160,131, 22, 98,235, 51,212, 72,104, 53, 49,131, 53, 1,198,129, 66, 63, 16,220,167,128,115, 17,217, 72, +211,246,252, 65, 77,160, 86,211, 69,255,147,203,130,230,246, 71,214,225,129, 3, 7,218,205,155, 55, 15,221,186,117,195,203,151, + 47,187, 30, 63,126,124,202,133, 11, 23,130, 24,134,121, 4,224, 37,160, 85, 40, 5, 33,138,226,180,140, 31, 56,112, 96,223, 77, +155, 54,177, 91,180,104, 1,153, 76,134,199,143, 31,187,108,223,190,125,247,243,231,207, 31, 0, 56, 83, 44, 8, 42, 77,128, 39, +151,203, 45, 75,146,113, 82, 20,101, 57,106,212,168,215,101,197, 85,113,126, 53,138, 16,242,130,162, 40, 63,141, 70,243,242,210, +165, 75,137, 77,128,206, 51, 29,185,151, 22,198,170,236,202,115, 42, 20, 10,203,107,191,110, 6,135,199,131,162,176, 0, 93, 39, +255, 37,122,239,175, 89, 10,138,161,193, 6,201,117,221,184, 59, 8, 64,112, 74, 74, 74, 80,207,158, 61, 99,107, 90,195,108, 54, +123,211,157, 59,119,108, 8, 33,112,115,115,219, 4,224,239, 18, 90,188, 46, 29,218, 60,186,113,249,172,129, 56, 39, 29, 3,190, + 29,123,250, 67, 98,198, 36, 0,151, 63, 17, 77, 3, 97, 69, 81, 88, 58,123,243, 25, 54, 0, 28, 88, 57,126,217,174,254,216,179, +232, 30,210, 0,184, 22,139, 31, 0,248, 21,192,163,253, 3, 97, 5, 96,249,236,205,103, 40, 0, 56,184,114,252,210,253, 3,241, +251,220,219, 53, 14, 91, 49,103,210,164, 73,123, 54,109,218,196,182,177,177, 65,114,114,242,128,230,205,155, 59, 23, 20, 20, 52, + 71, 21,147,136,235,215,175,127,190, 71,239,161, 13, 70,140, 30, 39,176, 48, 55, 69, 74,106,150,209,249,179,199,102,178, 95, 60, + 30, 24, 23, 23, 55, 86,247, 12,209, 65, 7, 29,116,208,161, 18,212, 62, 50,124, 59, 27,240, 37, 42,124,199, 97, 83, 63,118,239, +208,188,207,247,131,122,176,154, 55,107,140,247,161, 97,253,175, 63,124,181,157,229, 23,234, 67,107,136,151,144,139,107,254,169, + 85,175,132, 81,211,224,220,187,118,166,168, 39,156, 50,158,253,250,245,235,198,237,219,183, 47, 77, 13,211,167, 79, 31,244,233, +211,135, 58,112,224, 64,155,123,247,238,181, 57,122,244,168,202,199,199,231, 4,170,142,143,226,222,168, 81,163,237,123,246,236, +225,245,236,217, 19, 60, 30,175,244, 7,145, 72,132,161, 67,135, 98,232,208,161,236,148,148, 20,183, 27, 55,110,184,253,250,235, +175,202,248,248,248, 37,248, 43, 74,115,149, 88,189,122,117,135, 10,118,223,161, 40,234, 35, 77,211, 1,109,218,180, 73,116, 6, + 26,207, 28,212,237,254,156,238, 78,194,133, 43,142, 87,200,195,209,215,199, 31,147,138,250,234,178, 66, 43,246,225,109,136,140, + 12,179, 5,134,134, 65, 0,130, 1, 4, 17, 66,130,163,163,163,195,154, 2,109,186,152,178, 78, 28,203,101, 90,215, 64,108, 33, + 49, 49, 17,198,198,198,252,158, 61,123,166, 82, 20,181,238,241,227,199, 95,123, 66, 94,231,117, 75,231,112,115,227,130,144, 22, +254, 2,139, 71,187, 8, 22,238,253,243, 23,185, 82,125,185,170,147, 40,138,197,250,213,143,241, 64, 81, 50,222,213,217,217,217, + 61, 1,192,204,204, 76, 31,192,163, 93,175, 48,104, 81,119,234, 75, 98,187,113,217,108,246,254,227,199,143, 79,251,241,199, 31, +139, 82, 71, 60,123, 6,145, 72,132, 13, 27, 54,212,255,233,167,159,182,208, 52,189,160, 50, 79, 86,143,222, 67, 27,252,190,227, +151,230,133, 57,249,138, 67,251, 47,188,169,219,178, 9,107,182,251, 79,134,191,171, 20,214, 26,141,230, 71,157,103, 75, 7, 29, +116,208, 65,135,154,120,179,170, 21, 90,206,230, 56,217,174,165,211,152,239, 7,187,240, 90,181,108, 1, 46,239,175,208, 45,237, + 59,116, 64,251, 14, 29, 88, 30,226,194,126,175,223,188,235,119,233,222, 75,133, 84, 29,127, 33, 50, 11,147,180,181,170, 36, 41, +237,166,111,173,122, 75,242, 50, 12, 0, 64,104, 98, 41, 95,121, 45,237, 97,247,238,221, 97,103,103,199,245,241,241,153, 90,141, +208, 90, 25, 17, 17,193, 99,179,171,142,135, 90,183,110, 93,140, 26, 53, 10, 77,154, 52,209,239,213,171,215,202,202,132,150,129, +129, 65, 6, 69, 81,150, 0, 80,167, 78, 29,205,186,117,235, 2, 72, 17, 0,128, 16, 66, 94,176, 88,172,151, 12,195,188,250,243, +207, 63,147,154, 3,150, 3,218, 55,121, 58,231,135, 81, 2,114,105,119,165, 34, 65, 94, 80, 80,225,126,129, 72,152,201, 23, 10, +131,120, 2,131, 96, 20,229,242, 10,182,179,179, 11,107, 14,216,117,106,226,120,239,192,162,241,134,199,102,252, 82,109, 89,182, +107,215,206,185,117,235,214, 6, 26,141, 6, 18,137, 4, 7, 15, 30, 52,230,243,249,198, 3, 7, 14, 92, 91,182, 1, 52, 3, 90, +141,172,203,158,177, 62, 69, 51,183, 22, 13,201,164, 71,215, 14,113,163,134, 14, 52,234,208,165, 7, 62, 60, 58,133,156,156, 66, +228,231,137,193, 48,204,103,113,125,230,222, 70,250,254, 33,216,126, 96,197,248,229, 20,139, 69,181, 25,190, 12,195,172,243,231, +123,122,122,134, 2,208,211,215,215, 47,219, 14,235,242,109, 91,110,111,220,191, 7, 14,174,250, 1,132, 97, 8,128,237, 53,240, +102, 89, 26, 26, 26, 94,191,119,239, 94,231,142, 29, 59,226,229,203,151,136,137,137,193,156, 57,115,148,115,231,206,229, 78,156, + 56,145, 90,188,120,241,188, 95,127,253,245, 18,128,231,159,221, 8, 28,206,132,111, 71,140,213, 23,231, 21,200,149, 10,149,178, +142,185, 9,163,144,200,165, 89,185, 5,242,177,227,167, 43, 67,253, 95, 77, 0,240,153,208,250,194,242,212, 65, 7, 29,116,208, + 65, 11, 16, 66, 58, 2,176, 0,144, 73, 81,212,155,178,219,197,135,148,100,107, 41,191,157,133,162, 81, 41,179, 50,116, 89, 40, +154,238, 99, 1, 64, 3,224, 53, 69, 81,185, 95,104, 98,213,171, 12,189,189,189, 73,217,239, 50, 66,139, 16, 66,136, 58,251, 35, + 81, 68,222, 38,210, 55, 71, 62,251,200, 66, 47,147,212,215, 23,200,171, 51,107,136,179,121,213, 89,216, 7, 53,129,122,124,107, +144,217, 29, 65, 22,244, 50,145,191,126,253,218,135, 97, 24,111,143, 30, 32,228,253, 25, 66,222,159, 33,139,186,130, 92,186,116, +233,206,150, 45, 91,188,189,188,188,188, 1, 84, 55, 79, 41,189,240,141, 31,121,101, 9, 82, 25, 34, 34, 34,136,167,167, 39, 89, +177, 98, 5, 57,118,236, 24, 65, 53, 17,212,221,220,220, 30,135,132,132,144,137, 19, 39, 6,160,138,192,128,205, 0,225,132,250, +214,225,138,243,187, 85,202, 31, 91,145,220,111, 12, 42,188,126, 27, 27,155, 79,236,217,234,100, 77,246,117,114, 34, 39,251,181, + 79, 35,132,220, 33,132,108, 37,132,140, 37,132, 52, 1,128,118,128,209,183, 54,102, 81,242, 11,191,203,148, 51,186, 84,155,247, +174, 93,187,118,206, 75,150, 44,201, 81, 42,149, 36, 54, 54,150, 28, 58,116,136,220,191,127,159, 92,187,118,141,184,184,184,164, +148,177,215,106, 74, 19,135,116,229,209,245,138,218,180, 34, 61, 54,123,223,155,251,151, 72,212,211,139,228,245,185, 45,228,244, +207,223,147,121,223,118, 86, 25,241,121,114, 0,189, 43, 59,111,110,119, 52,110, 82,223, 34, 50, 62, 62,158,168, 84, 42, 50,121, +242,100,226,230,230, 70,250,247,239, 79,250,246,237, 75,250,244,233, 67,122,247,238, 77, 30, 62,124, 72, 82, 82, 82, 72,223, 30, +237, 37, 67,154,161, 67, 13, 76,107,233,224,224,144, 22, 27, 27, 75, 84, 42, 21,241,241,241, 33,167, 78,157, 34, 62, 62, 62,196, +195,195,131, 0, 56, 57,123,246,108, 89,110,110, 46,113,115,115, 75, 66, 5, 81,227, 29, 28, 28,194, 66, 34, 19, 19,119,109, 62, +242,240,143,125,103, 31, 94,185,116,255,225,245,187,175,111, 94,187,251,230,194,171,192,232,107, 14, 14, 14, 97, 21,212,255, 23, +149,167, 14, 58,232,160,131, 14,213,107,145, 98,161, 53,184,216,217, 49,152, 16,210,183,220,246,224, 98,225,244,217,182,135,135, +199,138,178,219, 37,199,120,120,120,172, 0, 64,186,118,237,122,150, 16,210,248, 43,152, 63,163,130, 79,245, 30,173, 18,208, 73, +175,193,117, 26, 8, 61,141, 26,234,172, 8, 48,121,241,128,208, 26, 50, 74,132,236,212,120,132, 63,189, 92,117, 34,137, 98,220, +138,128, 30, 0,159,176,176, 48,132,135,135, 35, 49, 49, 17, 2,129,224,179,227,158, 61,123, 6, 62,159, 15, 27, 27, 27,237,148, +174,242,211,126, 46,168,189, 3, 68, 93,123, 34,235,251, 89,240,241,241, 65, 70, 70, 6,184, 92, 46,244,245,245, 65,211,116,181, +124, 44, 86, 81,198,223, 18, 47, 86, 69,199,244, 4, 56,188, 58,162, 27, 7,214, 46,112,100,189,240,214,147, 37, 68, 33, 69,174, +209,206,147, 39, 18, 66, 32, 20,164,242,249,130,210,225, 66, 0,193, 20, 69,125,104, 7,232, 9, 69, 6, 55, 78,108, 92,108,205, +246,247, 49,144, 69, 5, 85,200,209,183,111,223,153, 0,214, 18, 66,242, 90,183,110,109,181,105,211, 38,211,228,228,100,188,127, +255, 30, 23, 46, 92,200,164,139, 46,148, 34,132,172, 7,128, 46,128,129,137,133,201,221,125,107, 22, 24,226,209,121,253,218,180, + 34,227,102, 67,111,142,156, 56,123,238,158, 5, 67, 33, 41,148,225,204,125,127,220,121,247,113, 24,128,103,168, 98,222,219,254, +231,136, 2, 50,251,140, 24, 49, 34,224,201,147, 39,230, 71,143, 30, 5, 77,211, 21,126,142, 30, 61,138, 7, 79,223,205, 7,240, + 86, 75,179,234, 58, 58, 58, 62,120,245,234,149,133, 64, 32,192,253,251,247,145,151,151, 87,234,201,154, 52,105, 18,149,151,151, + 55,238,224,193,131, 35,227,226,226,118, 60,125,250, 52, 27, 69,185, 32, 63,105, 8,108, 54,251, 35, 77,171,154,218, 52,107,204, + 25, 61,180, 71, 15,113,118, 16, 68,102,173,241, 34,240,227,141,188,220,108, 25,155,205,254, 88,246,248,175, 81,158, 58,232,160, +131, 14, 58,212, 12, 20, 69,121, 19, 66,134, 80, 20,229, 93,126, 95,249,191, 75,142,219,178,101, 75,233,118,201, 57, 91,183,110, +221, 92,102, 91,250,149,204,171,114, 50,124,175, 98, 5,217,171,162,131, 20,239,175, 64, 17,126, 29, 92,135,238,208,111, 50, 12, +108, 7, 23, 36, 4, 61, 66,224,237, 93, 72, 10,125, 6,194,104, 96,227,220, 73, 91, 67,228, 77,155, 54,133, 92, 94, 52, 53, 75, +161, 80,128, 43, 52,149, 47,158, 49,222, 0, 0, 24,142,129,162,140,130,213,138,208,176,187, 43, 58,165, 19,188,182, 42,114, 84, +116, 74, 47, 58,111,227,228,201,224,114,185,224,114,185,160,138,167,254,104, 35,180,168,226,131,153,162,225,171,138,140,160,164, + 60,189, 51,231,214,186,119,226,197, 5,235, 43, 66, 94, 32, 69,193,144, 27,233,154,155,218,216, 43, 16, 10,146,249, 2, 65, 48, + 95, 36, 44, 21, 90, 20, 69,125, 4, 0,162,167,231,117,106,189,123,107, 97,122,180, 80,254,198, 7,169,114, 70, 85, 9,205,250, +219,183,111, 91,114, 56, 28,107,141, 70,131,132,132, 4,132,134,134,226,247,223,127, 79, 47, 44, 44,236,229,239,239, 31, 89, 86, + 59,106,248,250, 23,188, 54, 44,104,192, 9,242, 53, 80,124, 12,169,113,235, 49,111,249,157,219,176, 94,109,110,206,252, 97, 21, +190, 27,212, 31, 19,123, 53, 39,177, 41, 57,114, 0,247,139, 93,175,213, 33,217,223,223,191,223, 55,223,124,115,186,109,219,182, +205, 8, 33,104,213,170, 21,198,141, 27, 7, 47, 47, 47, 4, 6, 6,162,160,160, 64,117,239,222,189,221, 0,142,107,105,150,192, +212,212,244,206,195,135, 15, 45, 4, 2, 1,238,221,187, 7,153, 76, 6, 27, 27, 27,204,157, 59, 87,127,235,214,173,127, 20, 20, + 20,140,222,178,101,139, 65,108,108,236,190,187,119,239,214, 71, 81,222,185,207, 26,129, 82,169, 60,124,198,235,228,158,185,238, +243,108, 31,190,124,239,163, 16, 23, 26, 59, 56, 36, 22, 88,152,138, 12,119,111, 91, 95, 79,169, 84,206,172,184, 60, 31,215,170, + 60,117,208, 65, 7, 29,116,248, 12, 85,106,145,178,226,169,188,216,170,137, 72, 3, 32,243,240,240, 88, 73, 81,148,183,135,135, +199,202, 45, 91,182,200, 0,164,252, 29, 34,171, 84,104, 13, 25, 50,196,215,219,219, 27, 67,134, 12,241,173,148,130,209, 64, 21, +251, 4,170,216, 39,224,119,157,143, 63,183,124, 95,238,226,153, 90, 91, 55,116,195,253,135, 10,133,130,115,242,228,201,210,121, + 91, 0,160,209,104,190,122, 45,214, 68,104, 21, 11,189,207,140,112,228,137,124, 15, 47, 26,221,197, 76, 35,213, 83, 62,187,129, +100, 5, 67,239,136, 82, 73,223,228,145, 95, 43,227,188,182,112, 38, 18,159, 62,128, 64, 36, 74,156,246, 36,184,212,139, 85, 44, +178, 98, 0,160, 62,207,208,199,115,193,119, 46,214, 92,112,149, 55, 47, 34, 69,193, 40, 60,227,212,199, 43,105,108, 32,132, 32, + 38, 38, 6, 82,169, 20,126,126,126,184,124,249,114,102, 5, 34, 11,142, 60,209,227, 99,203, 38,116, 54, 42, 76,227, 42,223, 60, + 64,138,130,209,106,168,203,188,213,119,221,185, 44,234, 30,197, 98,243,251,116,113,198,194,233,195,177,235,216,159,180,210,178, +199,144, 61,215,111,141, 17, 43, 84, 43,181, 20, 89,165,206, 70,127,127,255,230,254,254,254, 60, 0,174,227,198,141,187, 53,114, +228, 72,248,250,250,226,198,141, 27, 78, 0, 82,139,143,219,128,162, 68,217,191, 2,136,174,204,241,200,229,114,207, 61,120,240, +160, 69,221,186,117,241,224,193, 3,200,100, 50,204,158, 61, 91,233,238,238,206,157, 52,105, 18,149,159,159, 95,234,201,242,243, +243,203,174, 76,100, 1, 64,114,114,242,237,203, 23, 78,117,251,230,155,111,134, 55,112,106, 98, 20, 93, 88,144, 33, 16, 24,240, +159,250, 62,226,190,121,245,124, 95,114,114,242,235,138,203,211, 71,235,242,212, 65, 7, 29,116,208,161,114,104,165, 69,202,121, +166,106,130, 50,231,233,109,217,178, 37,116,203,150, 45,159,120,188,190, 16,229, 87, 29,222, 44,233,211,106, 21, 71, 75,147,159, +240,249, 5, 48, 76, 77, 46,246,179,125,166,166,166, 52,159,207,255, 68,104, 49, 90,114,230, 92, 61,139,232, 57,227, 75, 61, 89, + 37,158, 45, 12,152,244, 69, 66,139, 97, 24, 63, 0,159, 24, 33,176,116,254,126,247,208,102,221,155, 55,176,101,169, 47,252,142, + 36, 41, 45, 95, 27,161,146,135, 23,146, 97, 97, 21, 76,178, 46,229,164,213, 48, 16,242,227,249, 34, 97,121,145, 21, 7, 0, 66, + 43,167,145, 59, 6, 54,233,213,166, 73, 35, 22,125,254, 55, 36, 75,213, 98,143, 48,149, 42, 90, 66,174, 84, 82,134,107,251,247, +239,191,214,204,204,204, 96,207,158, 61,198, 14, 14, 14,160,105, 90, 89, 94,100, 9, 44,157,191,255,253,187,150,221,157,173, 77, + 89,234, 75,123,145, 40,211, 72,127,143, 86,255,161,141,200, 50, 55, 22,221,245,220, 60,135, 47,224,233, 65, 46,151, 99,235,129, + 75,184,247, 60,100, 72, 86,200,181,187, 0,238,126, 65,131,156, 54,100,200,144, 93, 27, 54,108,128, 90,173,198,212,169, 83,241, +241,227,199,123, 17, 17, 17,191,215,171, 87,111,201,178,101,203,234, 90, 91, 91, 99,204,152, 49, 92,181, 90, 61,169, 18,142,109, +103,206,156, 25,210,166, 77, 27,248,250,250, 34, 47, 47, 15, 54, 54, 54,112,119,119,215,223,178,101,203, 31, 5, 5, 5,163, 55, +111,222,108, 16, 19, 19, 83,165, 39,235,147,118,173,209,108, 60,180,107,206,146,142, 93, 92, 88, 81, 81,145,116, 66,167,158,172, + 71, 15,110, 60, 49, 51, 51,251, 35, 33, 33,225,175,242, 28,222,170,198,229,169,131, 14, 58,232,160,195,215, 1, 69, 81, 55,139, +231, 93,125,226,229, 42, 47,194, 74, 60, 86,101,183,203, 31, 95,252,251,215,120, 89, 62, 92,129,240,250, 52,188,195,144, 33, 67, +180, 94, 86,207, 72, 50,181, 18, 79,229, 49,168, 9,212,182, 34,112, 86,246,100,129, 43, 52,149, 15,221,112,255, 97,101,199, 10, +133, 66,173, 61, 90,140, 66, 94, 93,165,212, 72,232,240, 90,243, 0, 0, 32, 0, 73, 68, 65, 84,104, 21,207,209,186, 67, 8,249, + 68,104, 25, 91, 57,247, 92,190,108,193,110,151,145, 3, 88,233,211,187, 34, 79,172, 80, 44,123, 79, 51, 73,210,170, 69, 86, 81, + 47,174,142, 21, 8, 69,193, 6, 66, 65, 89,145,149, 0, 0, 6,150,141, 58, 45, 93, 56,247, 64,239,239,135, 82,153,179, 93,144, +155, 39, 83, 44, 9,165,169,100, 25, 25, 29, 6, 60,170,136,238,225,195,135,135, 0, 28,234,217,179,103,186, 80, 40,132, 88, 44, +254,172, 14, 74,236,237, 62,114, 0, 43,125, 90,103,228, 72, 84,138,101,161, 52, 82,100,204,185,234, 68,150,133,137,225, 93,207, + 77,115, 4, 41, 73,113,224,114,185, 16,137, 68,184,255, 44, 24, 89,161,215,191, 68, 96,129,197, 98,173,243,240,240, 88, 59,119, +238, 92,100,103,103,227,198,141, 27, 24, 52,104, 16,206,158, 61,235,112,235,214,173, 93,174,174,174, 96,179,217,240,246,246,134, + 90,173,254, 80, 9,205,240, 25, 51,102, 44, 25, 57,114, 36, 94,191,126,141,212,212,212, 79, 60, 89,121,121,121,227, 14, 28, 56, + 48, 50, 54, 54,182, 90, 79, 86, 57,116,114,108,212,142,187, 98,245, 78, 40,164, 25,156,204,228,151,190, 62,247, 89, 47,114,114, +114, 4, 0,242,107, 91,158, 58,232,160,131, 14, 58,104,237,213,170, 76,139,100, 22,139,168,204,138,182,203, 8,172,138,182,169, +114, 94, 48,101,185,223, 3,255,206,107,210,202,163,197,177,106, 9, 58, 61,164,140,208,202,248,228,119, 3,195, 58, 90, 13, 29, +170,105,112, 60,143,151,198,209, 50,200,206,206, 54, 48, 55, 55,151,151, 21, 8, 2,129, 0,117,235,214, 69,110,110, 46, 14, 31, + 62, 12, 84, 63, 41,154, 54, 26,249, 3, 58,125, 63, 21,111,236,244, 65,212,170, 82,207,150,231,228,201,159,136, 45, 46,151, 91, + 50, 55,172,186, 78,247, 85,177,167,233, 5, 0,210,206,169,193, 47, 6, 66,225,100, 3,115,123,243,133,115,166,233,197,102, 40, +240,208,101, 69,222,165,109,203, 69,137, 68, 52, 55, 1,249,207,171,225,139,254,246,224,169,242,158,172,164,182, 78, 13, 86, 25, + 8, 12,166,235,215,169,111,237,177,120,142, 94,108,186,130,122,216,105, 89,193,229, 95,151, 9, 98, 96,184, 36, 9,121,143,180, +168,158,181,131, 6, 13, 90, 75, 8, 33, 12,195,172, 6,128,178,246, 46,118,159,174, 23,157, 38,135,143,203,170,220,203,219,150, + 27, 38,162,106,123,205, 91,125,215,221,202,212,232,174,231,230,185,130,212,228,120,240,120, 60, 24, 26, 26, 34, 49, 61, 31,122, + 28,182,236, 11,219, 27,175, 71,143, 30,203,231,204,153,131,224,224, 96,204,158, 61, 59, 53, 33, 33,225,202,249,243,231,103,175, + 89,179,134,227,230,230,134,212,212, 84,108,223,190, 93,253,236,217,179,205, 0,182, 87,216, 30, 57,156,105,191,252,242, 11, 73, + 73, 73,161, 98, 98, 98, 96, 99, 99,131,121,243,230,233,111,222,188,185,116, 78, 86, 77, 60, 89, 37, 72, 78, 78,246,189,247,224, + 5,134,221,222, 13, 90,173,240,205,203, 78,120, 18, 30,157,235, 91, 71, 95,255, 39,219,118,173,106, 85,158, 58,232,160,131, 14, + 58,124, 21, 47,214,155,170,182,255, 3, 80,209,208,161, 86, 66,235,195,222, 85, 83,156,166,204, 93, 10,190, 67,119, 40,194,174, +130, 17,167,151,122,180, 12, 68,166,168, 83,175, 25,242, 36, 10, 92,244,121, 7, 0, 31,106, 98, 85, 97, 97, 33,218,183,111,143, +253,147,156,123,203, 11,179, 13,248, 0, 20, 60, 35,249, 53,253, 30, 15,111,221,186, 37,101, 24,230, 28,128, 91,213,208,172,107, +209,162,197,190,157, 59,119,234, 55,251,126, 10,196, 47,159,150,247,160,128,207,231,131,199,227, 33, 40, 40, 8, 15, 31, 62, 84, + 2, 88, 87, 77,133,190,162,105, 58,240,252,249,243, 73,141, 27,216, 14,104,223,182,245,252,149, 43, 60, 12,223, 63,189,135,213, +155,247, 49,141, 59,184,229,111, 61,123,173, 48, 95, 84,175,143, 44, 53, 34, 64,139, 75, 13, 44, 39,178, 82,154, 58,218,247,110, +219,178,197,210,213,171, 87, 25,133, 62,189,143, 53,191,122, 18,167, 54,125,243,127,189,124,189, 32, 75, 80,191,191, 60, 35,252, +181, 54,101,232,235,235,123, 8,192,161,146,237,242,246,122,108,248,157,113,238, 56, 32,119,235,217,203,146, 2,195,122,125,171, +178,215,162,217,240,110,118, 22,166,119,247,110,156, 37, 72, 75, 78, 0,143,199,131, 72, 36, 66, 66,106, 30,214,238,190, 32, 81, + 49,204,128, 47, 21, 90,134,134,134, 60,149, 74,133,253,251,247, 35, 33, 33,161, 43,128,132,183,111,223,122,142, 29, 59,118, 79, +171, 86,173,154,134,134,134,126, 16,139,197,115, 1,132, 87, 70, 98, 98, 98,210,213,194,194,130,122,241,226, 5,102,205,154,165, +156, 55,111, 30,119,226,196,137, 84,110,110,110,109, 61, 89, 0, 0, 91, 91,219,158,253,250,116, 65,247,126,179,125,149,242,188, + 39,177,225,127,248,178,200,115,131,218,150,167, 14, 58,232,160,131, 14,255, 51,168, 93, 96,240,158, 0,199,217, 12, 51, 91,216, +114,211,188,182,205, 35,133,209,126, 68,246,250, 16, 41,184, 58,157,220,220, 62,145,220,218,187,144,204, 30,220,130, 52,181,164, +210,156,205, 48,179,231,231,194,237,147,236,222,131,154, 64,221,175, 17, 72,191, 70, 32,131,157,161, 6,176,178, 93,187,118,215, +220, 59,253, 21, 71,203,189, 19, 8,128, 89, 0, 68,149,152, 85, 81,198,112, 27, 0,135,219,183,111, 79, 63,122,244,136, 68,140, +238, 75,252,155,154,147,185,115,231,146, 53,107,214,144,241,227,199, 19, 11, 11, 11,186,184, 32,108,170,227, 28, 54,108,152, 29, + 0,216,219,219,155,116,104,214, 56, 45,200,231, 6,121,226,181,135, 28,115, 31, 65, 58,183,106,150,101,221,244,155, 64,190, 77, +147,182,213, 20, 95, 41,167,181,181,245, 10, 66,200, 0, 66,136, 13, 0, 56, 57,153,137,218, 53,109,156, 18,248,224, 6,121,122, +106, 31, 57,230, 62,130,116,105,221, 60,219,174,153,107,184,129,101,211, 78,218,112, 86,132, 10,237,109,217, 52,203,170,113,183, +128, 42,236, 45,229,108,208,105,204,245,164,148,116,242,234,213, 43,114,235,214, 45,242,244,233, 83,226,117,254, 58,169,215,113, +180,216,188,213,119,221,107,208,116, 42,179,211,120,240,224,193,228,195,135, 15,100,224,192,129, 4,128,113, 45, 57,175,197,198, +198,146,144,144, 16,178,114,229, 74, 2,224,228,156, 57,115,100,249,249,249,164,111,223,190, 9,197, 2,139, 83, 27, 59, 27, 58, +218,110, 29, 62,180,199, 58,247, 89, 35,123,126,105,121,126, 69,232, 56,117,156, 58, 78, 29,231,255, 2,231,127, 51,108,138,189, + 90, 37,223,237,180,242,104,249, 2, 52,178,113,168,165,165,234,244,230,237,123,127,218,127,232,228,210,229,243,167, 9,123,184, +244, 67,240,131, 19,184,236,125, 94, 34, 87, 40,183,115,217,216, 25,146, 13,105,100, 53, 86, 20,199,209,250, 4,254,254,254,130, + 58,141,254,138,193, 20, 85, 20,155,213,179,134, 23,152, 10, 96,198,187,119,239,118,186,186,186,110,154,222,189,211, 8,247,110, +189,161, 86,171,225,229,229,133,248,248,248, 43, 0, 86,105,235,113, 11, 14, 14,206,106,222,200, 97,129, 30,155,179,116,238,248, +225, 22,153, 31,223, 35, 41,204, 31, 0,160, 80,200,212,105, 31,158,180,169,137,113,124, 62,255,149,133,133, 69,132,133,133, 69, +174,115, 3,251, 25, 60,232,173,158, 61,238, 91,203,236,216,112, 36,134, 22,141,140, 42,228, 82, 85,210,135, 71, 77,107, 83,187, + 14, 14, 14, 60,161, 30,102, 86,104,175, 82,174, 78,143, 10,111,171, 13,143, 84,161,220,188,126,151, 87,255,141, 75, 39,243,140, +140,140,240, 46, 36, 10,171,127, 59, 43,145, 41,213, 3,178,130,175,125,149,225, 49, 66, 8,212,106,181,214, 11, 29, 42,193,242, + 54,109,218, 52,217,180,105,147,211,164, 73,147,240,165,158,172,178,136,142, 77,246,176,181,111,216, 60, 42,226,157,107, 29, 62, +247,244,151,148,167, 14, 58,232,160,131, 14,255, 51, 24, 92,236,204,153, 81,230,219,191, 90,161, 85,130,144, 12, 72, 1,108,104, +192, 22,123,174,216,180,107, 45,139,218, 61,153, 33,228, 4,205,194,250,152,108,100,126,161,113, 82, 61, 14,232,254,223,141,231, + 0,128, 30,167,118, 29,100, 49, 62, 0, 24,121,228,249,235,142, 71,158,191,254,185,120,223, 70, 0, 53, 26,203, 53,228, 32,196, +165,121, 67,219, 30,237, 90, 24,176, 53, 50, 36,133,125, 68,142, 68,142,251,161,241,121, 44,194, 58, 81, 83,163, 98, 98, 98, 30, + 3,128,149,177, 32,172, 71,243, 70,245,190,105,223, 66,160, 71, 41,145,244,254, 29,242,101, 74,220, 11,141,207, 7, 69,213,122, + 66,245,215,178, 55, 61,248,250,155, 63, 65,245,165, 40,234,193, 74,247,239,121,107,127, 59,247, 85, 69, 22, 0,105,114,114,114, +182, 84, 42, 53, 75, 73, 73, 81,162,246, 65,226,162, 10, 10, 10, 90, 45, 92,184,112,195,146, 37, 75,150,110,219,182,141, 91,155, + 57, 89,149, 33, 55, 57,254,234, 55, 45,190, 94,253,235,160,131, 14, 58,232,240, 63,129, 25,229,190,161,181,208, 42, 21, 12, 25, +200, 4, 48,183, 97, 67,178, 56, 58, 26,202,175,101, 89, 69,158,174, 47,196, 27, 0, 67,107,125, 54,139, 42,124,249, 33, 94,252, +234, 67,188, 24, 12, 33, 12, 33, 10, 22, 11,137, 18,149,106,243,135,152,228,218,175,186,163, 40,205,155,168, 4,217,219,143,137, +114,194, 48,132, 33, 68, 73, 81, 72, 83,171,153,205,161, 49,241,215,255, 19,236,205, 10,190,246,220,155,166,122, 60,127, 21,178, + 88, 34, 81,237,203, 10,187,230,247, 21,235, 69, 29, 28, 28, 60,161,107,215,174, 83, 52, 26,141, 39, 0,245, 23,112, 41,105,154, + 94,190,117,235,214, 43,193,193,193, 23,252,252,252, 82,191,134,200,250, 91,235, 95, 7, 29,116,208, 65,135,127, 43,106,151, 84, +186, 50,124, 77,145,245,159,136,144,168,184,246,127, 7,111,104, 84, 92,203,255, 6,123,211,195,174,190, 77, 7,198,253, 77,197, +123, 79,163,209,220,251,154,162,250,206,157, 59,142,168, 32,173,206,127, 90,253,235,160,131, 14, 58,232,240,175,197,140,202,196, + 23, 71, 87, 54, 58,252, 11, 64,190,150,200,210, 65, 7, 29,116,208, 65,135, 90,160, 82,143, 22,133,202, 87, 14, 60,168,193, 63, +168,205,234,131, 7, 58, 78, 29,167,142, 83,199,169,227,212,113,234, 56,255,231, 56,255,141,176, 65,209,132,248,155,197,223, 85, +138,175,175, 9,221,210, 87, 29,167,142, 83,199,169,227,212,113,234, 56,117,156,255,118, 84, 56, 17, 30, 40,154, 60,172,131, 14, + 58,232,160,131, 14,127, 23,120,197,159,218,254,174,131, 14,255,141, 98,171, 84,112,213,102,142, 86,227,226,239,168,191,209, 88, +119, 27, 27,155, 25,173, 91,183,110,198,229,114, 89,133,133,133,235, 31, 61,122,180,174,252, 65, 61,154,115,222,178, 89,176,251, +107, 15, 5, 80,108,128,197,130,134, 32,233,105,144,172,131,174,222,255,163,225,192, 55,178,248,147, 98,177,245, 53,180, 10, 26, +181, 10, 69,211,173,138,192, 48,116,188, 70,165,112,171,236,100,235, 54,195,235,209, 26,102, 27, 64,246, 3,172, 57, 0,115,128, + 2,103, 54, 1,125,144, 2,123, 22,216,228, 87,104,168,101, 28, 61,246,138, 84,255, 75,137,255,134, 2,187,120,241, 34,251, 75, +206, 31, 61,122,116,133, 9, 68,235,214,173,235, 45, 16, 8, 26, 85,118,158, 68, 34, 73, 77, 77, 77,117,253,151,183,199,111, 0, +236, 5,208,162,220,254,112, 0, 11, 0,248,124,233, 63,232, 9,112,172,128,153, 92, 96, 25, 0,168,128, 95,211,129, 67,190,255, + 65,115, 12, 45, 44, 44,158,112, 56, 28, 39,137, 68, 34, 41, 44, 44,108,104,104,104, 24, 45, 20, 10,133, 52, 77,127,200,204,204, +252,166,134,116,115,240, 87, 42,173,165, 0, 14,212,240,119, 29,116,248,111,193, 23,173, 58,116, 46,122, 62,160, 39,128,111, 58, +118,236,104, 37,145, 72, 16, 30, 30,158, 14,224, 9, 0,223,226, 79,228,215,176,148,197, 98,237,216,181,107,215, 79,243,230,205, + 43, 77, 6, 29, 20, 20,132, 54,109, 62,143, 17,202,102,193,238,209,141, 7,150,111,130, 35,209,177,239,168, 98,161,197, 2, 36, +169,112,237,215,169,182, 38, 24,154,154,154,174,167, 40,106, 52,139,197,170,182, 83, 99, 24, 70, 67, 8,185,152,155,155,187, 22, + 64, 97, 77,254,145, 80,192, 83,211, 26, 77,133,255,131,195,102,107, 36, 82, 69,165, 97, 47,234,212,169,227,199, 98,177, 26,148, + 77,152, 13,124,154, 64,187,178,223,104,154, 78,202,202,202,210, 70,132, 26,176, 56,220, 5, 20,245,127,236,125,119, 88, 20,215, +254,254, 59,179,125, 89,122, 7, 69, 84, 20,165,137,177, 32,216,176,107, 34, 38,106, 52,198,158,104,226, 77, 98,137, 37, 17, 91, + 52, 26,133,196,110,212,168, 73,140,229,218,136, 29, 91,108,209,196,174, 8, 82, 20, 20, 17, 16, 22, 88,234, 46,108,155,157,242, +251, 3, 88, 17, 97,119, 49,185,191,123,191,247,238,251, 60,251,204,206,206,204,103,207,156, 51,115,206,123,222,207, 57,159, 35, + 28, 8,146,109, 7, 16, 32, 64,166,179,140,254, 60, 75, 83, 27, 1,104,255, 10,201,242,242,241,251, 99,246,162,216,230,201,105, + 15,177,112,250, 56,124,251,253, 46, 44,152,245, 33, 54,238,216,143, 89, 31,143, 69, 80, 80, 48, 76, 45, 43,206, 66,184,106,209, +204,209, 3, 98,182, 28,234,185,224,179,209,226,152, 45,113,189, 22, 78, 31, 35, 90,181,249, 80,175,133,211,223, 19,199,108, 62, +212,115,193,204,209,210, 85, 91,127,101, 1, 76,120,157, 68,142,245,247,174, 34,104,186,193,222, 54,199,231,235,246,103,228,203, +254, 29,111,244,228,201,147, 67, 53, 26,205,189,113, 3, 59,197,190,209,174, 89, 94, 67,231,148, 20,228, 53,203,124,148, 16, 45, + 16, 74, 59,191, 19,189, 43,201,164,228, 32, 22,183,126,248,240,161, 63,203,178, 96, 24, 6, 52, 77, 27,183,122,189, 30,189,123, +247,254,187, 38,206, 12, 3,240,117,245,203,138, 24, 0,135,254,130, 45, 91, 62,159, 63, 91, 36, 18, 69,210, 52, 29, 8, 0, 2, +129, 32, 77,167,211, 93,161,105,122, 61,128,202, 38,218,219,144,151,151, 23,100,107,107, 11,138,162,140, 11,208,243,120,188,128, + 22, 45, 90,108,209,106,181,254,127,245,230, 61,128,105,221,123,246,220, 56,105,238, 92,158,230,234, 85,108,220,185,115, 3,148, + 74, 0,216, 98,238, 90,145, 72,116,142, 36, 73,223,166,252, 31,203,178,217,122,189,126,112, 83,174,225,243,249,254,249,249,249, +238,222,222,222, 80,169, 84,144,201,100,178,218,253,215, 80,178, 86,115, 28, 39,173,169,219, 55,134,135,135, 71, 16, 4, 65, 3, +224, 88,150, 37,111,221,186, 53,150,101, 89,126, 77,253,180, 26,192, 78, 0, 58,107,155,109,197,255, 81, 53,107, 71, 83,137,214, +105, 0,145, 93,187,118,149,190,255,254,251,136,140,140,132,191,191, 63, 36, 18, 73,117, 37, 94, 82,226,113,255,254,253,247,174, + 94,189,250,222,201,147, 39,145,154,154,170, 1,240, 39,128, 6, 95,234,254, 81, 61,103, 72,108,197,155, 0, 64,241,188, 68,254, +252,105,209, 38,185, 92,190, 26, 64,221, 16,225,126, 19, 38, 76,152, 51,115,230, 76,196,199,199, 99,255,254,253,208,233,116, 80, +169, 76,240, 23,117, 17,202, 46,197, 2,178, 44, 32,231, 10, 96,227, 14,200, 60, 94, 59,167,156,156,156,190,158, 53,107,214,231, + 65, 65, 65,198, 40,230, 6,131, 1, 52, 77,195, 96, 48,160,172,172, 12,115,230,204,169,110,104, 57, 14, 44,203,226,204,153, 51, + 51, 62,254,248, 99,148,149,149,205,110,200,102,120,103,159,187, 36, 65, 54,175,213,106, 56,134,121,126,243,254,243, 46, 52,195, +240,180, 90,170,193,149,202, 37, 18,161, 73,146, 39, 16, 8,154,167,158, 56,225, 78,138, 68,224, 24, 6, 96, 89,112, 44, 91,147, +157, 53, 31,174,250, 55,142, 97,193, 25, 24,176, 52, 11, 90,163, 67,216,167,159, 90,146, 21,221, 5, 34,233,254,241, 31,205,245, +236, 22, 30, 46,104,233,227, 13,154, 97,241, 36,235,185,231,189,187, 55,123,196,237,222,242,137, 94,163, 26, 11,224,181,226,108, +137,108,236,127,219,252,195,143,205,239,220, 79,198,197,203, 87,113,225,210, 21, 0,192,185,203,215,107, 9,183,217,162, 2, 93, +217, 97,214,148,225,226,216,205, 7, 4,179,166,140,224,125,187,249,160, 96,230,135,239,240, 98, 55,237, 23,206,252,240, 29, 94, +236,247,251,133, 51,167, 12,231,197,108,252, 57, 20,128, 19,128,178,198,140, 53, 86, 70, 4, 77,139,255,153, 89,200, 3, 0,197, +182,109, 48, 20, 21,193,123,233, 82, 0,192,120, 63, 15,139,221, 29,174,174,174,119, 5, 2, 65,115,115,231, 25, 12, 6,179, 36, +120,242,228,201, 29, 53, 26,205, 93,154,166, 57, 62,159, 31, 61,110,196,160, 99, 67,122,117, 44,169,123, 78, 82, 82,162,203,170, + 85, 39,134, 31,186,167,226,222,235,108,119, 47,126,205,228, 46, 81,243,118, 37,154,104,144, 73,157, 78,135,140,140, 12,212, 93, +228,189, 14,152,215,237, 59, 1,216,232,226,226,210,173,164,164,100, 60,128,133, 74,165, 50,148,199,227,193,217,217,121,161, 94, +175,127,226,224,224,240, 83, 69, 69,197,245, 26,213,200,210, 37, 3,122,219,219,219,239, 57,122,244,168, 83,167, 78,157,200,226, +226, 98,180,106,213, 10,165,165,165, 97, 87,175, 94,237, 60,101,202,148, 41, 42,149,106, 98, 77,103,208, 82,180,183,177,177,225, + 38, 77,154, 68, 48,204,139,219,253,249,231,159, 49, 56,132,110,227,230,104,163,214,234,185,138,139, 25, 14,255, 16, 10,133,127, +102,103,103, 87, 52, 53, 51,132,192,151,147,230,206,229,217, 62,123, 6,219,196, 68,140, 87, 42,249,223, 86,171, 91,102,137, 22, + 73,146,190,123,246,255,226, 47, 18,137, 64,211,180,145, 12,214,214, 81, 6,131, 1, 20, 69,193, 96, 48,128, 97, 24, 24, 40, 3, + 98,190,249,238,181,235, 66, 27, 27, 27, 27, 47, 47,175, 66, 27, 27, 27,155,191,163, 21, 18,139,197,252,221,187,119,143, 21,137, + 68, 0, 0,189, 94,143,144,144, 16,194,218, 62, 91,241, 95, 70,182, 94, 81,185, 76, 17,173, 55,149, 74, 37, 24,134,129,157,157, + 29,120,188,151,219,125, 23, 23, 23, 12, 28, 56, 16,189,123,247,198,251,239,191,143,212,212, 84,233,251,239,191, 63,176, 49, 99, +227,230, 70,193,199,223,163,166, 49, 97,189,174,157,186, 31,251,243,138, 95,221, 10, 10, 10,230,214, 57,109,202,180,105,211,136, +146,146, 18,140, 30, 61,250,170, 78,167,123, 27,128,178, 49,155, 12,139,231,125,223, 31, 15,150, 35,164,235,111,253, 72,232,181, + 26,142, 36, 73, 77,173,235,240,117,114,137, 32,136,209,222,222,222, 56,112,224, 0,244,250, 87,195,133,217,219,219, 35, 37, 37, +229,133,170,198,227, 33, 60, 60,156, 71, 16,196,104, 0,179, 27,182, 73, 54,191,118,231,153,123,237,126,212,192, 96, 97,120,103, +178, 48,191,176,138, 3, 64, 44, 90,180,200, 72,220, 0,224,235,175,191,182, 36,157, 32, 5, 2, 40,174, 92,121, 81, 17,243, 73, +144, 66, 2,132, 0, 32,249,213, 94, 84,112, 0,199, 0, 44, 13,176, 6, 64,226,229, 99, 73, 54,132, 53,107,225, 31,191,106,221, + 86, 71,157,129,195,129,227, 23,145,149,245, 20, 60,146,132, 95, 27,127, 12,234,211, 75,208,185,107,132,207,119,203,230,158,204, +207,121,252, 38,128,219, 77,206,104,150,147,180,105,225,138,159,126,190, 7, 55, 39, 91,140, 30,254, 22,164, 18, 49,190,253,254, + 23,124,179, 96, 58,252,253,124,177,125,195,202, 70, 47,119,112,112, 88, 30,232,223,198,119,235,238, 83, 8, 12, 8,224,109,221, +115, 10,129, 65, 53,219,224, 64,222,214, 61,167, 16, 20, 28,196,219,186,231, 20, 66,131,219,183,188, 43,191,181,188,180,180,116, +122,227,249, 89,175,140, 6, 85,151,145,160,146, 53, 54, 4,207, 62,249, 4, 0,140, 68,171, 41, 16, 8, 4,205,243,243,243,221, +205,157,103, 78, 53,168, 81,178,238,210, 52,141,162,162, 34,162,188,188,156,115,116,116, 28,126,118,251,194,163,131,123,118, 44, + 5,128,196,196, 68,231,152,152, 85,195, 15,222, 85, 66,115,115, 51,241,207, 19, 87,216,241,111, 71,222, 61, 30, 59,185, 51,106, +150,132,168, 15,157, 78,151,245,198, 27,111,112, 53,223,155,137,197, 98, 97,189,231,205,187,109,219,182,175,168,214, 22,184, 20, + 55,222,184,113, 99,122, 80, 80, 16, 2, 2, 2,174,119,235,214,205, 94, 38,147,225,236,217,179, 8, 12, 12, 12,182,183,183,191, + 21, 23, 23, 39,152, 63,127,126,199,157, 59,119, 2,192, 12, 11,178,115, 64,223,190,125, 15,196,199,199, 75,132, 66, 33, 52, 26, + 13, 82, 82, 82,224,224,224, 0,145, 72,132,119,222,121,135,215,163, 71, 15,151, 62,125,250, 28, 78, 79, 79, 31,139, 38,204,128, +210,106,181,220,194,133, 11, 97, 99, 99, 3, 27, 27, 27,200,100, 50,200,100, 50,216, 74, 64,108,155,213, 66, 58,115, 71,185,116, +246,210,109,177,123,182, 46,187,236,227,195,126,149,155,155, 91,222,212,103, 65,115,245, 42,108, 19, 19,129, 58,239,174,165,112, +144, 57, 35, 58, 58,218,156, 34, 5,161, 80,136,238,221,187,155,181,231,236,236,124,132,207,231,191,212, 51,165,105, 90, 18, 29, + 29,205,164,167,167,203, 72,146,148,177, 44,139,232,232,104,134,166,105,137,187,187,251,117,150,101, 11,139,139,139, 71, 90,144, + 92, 29,128, 47, 72,146,220, 40, 22,139,249, 45, 91,182,204, 94,178,100,201,141, 26, 53, 19, 28,199,145, 45, 91,182, 12,147, 74, +165,190, 58,157,142, 70,181,235,208,170,102, 89,209, 32, 56,142,235, 92, 45, 10, 27,161, 7, 32,170,249, 94, 82,221,218,193,181, +222,239, 0, 80, 92,211, 81,244,104,100,191, 4, 64, 42,128,246, 0,220,107,142,221, 33, 8,162,244, 53,146,217,184,162, 21, 31, + 31,111,236,194, 70, 69, 69, 25, 27, 22, 59, 59, 59,220,185,115, 7, 4, 65,192,206,206, 14,246,246,246,112,112,112,128, 82,169, + 68,106,106, 42, 30, 62,124,136,103,207,158,129, 32, 8,248,249,249,161,246, 5,170, 3, 99, 5,183,111,109, 60, 36,182, 98, 16, + 4,208,169, 95, 40, 66,123,135,160,235,237,204, 89,119, 47, 16, 59,228,114,121, 6, 0,126, 72, 72,200,148,240,240,112,172, 91, +183, 14, 58,157,110, 93, 35, 36,203,104,243,143, 84,186, 11, 0,120,121,121,205,219,123,246,137,205,132, 33,109,212,114,185,124, +205,107,100,206, 75, 21,113,113,113,177,197,107,241,177, 44,139,178,178, 50,147, 54,235, 43, 4,235, 55,110,118, 84, 85, 20, 98, +197,183,123, 97, 48, 24, 48,119,238, 92,176, 44,107,252,148,151,151, 91,148, 78,142, 97, 94,213, 14,200,106,239, 41,193, 7, 90, +140,169,230, 21, 57, 7, 54,131,224, 0,130, 1,240,234,125,213,111,132, 36, 60,161,244,224,178,111, 55, 57, 38, 60,124,142,227, + 23, 19, 64, 41,243, 32, 79, 60, 90, 45, 57,118, 31,139, 67, 58, 30,186,133,182,193,231,139,190,115, 90,252,249,196,131,122,141, + 42, 0, 47,187, 17, 47,152,127,105, 24,172, 88,190, 28, 59, 54,173,195,119,235, 54, 65, 89, 81, 14,129,192,181,166,162,103,192, + 48,140,233,123,231,184, 33,209,179, 62, 32,190,253,225, 8,194,130,188,112,248,236,109,244,124,195, 23, 71,127,187,139,222,157, + 91,225,248,133, 4,244,235,214, 6,167,175, 36,227,243,105, 99,137,177,231,118, 14,105, 74, 25,109,216,176,217, 81,165, 44, 68, +252,202,221, 40,218,178, 5,217,211,167, 35,172,230,156,219, 4, 1, 97,243,230,128,208,124, 25,213, 71, 90, 90, 26,116, 58, 93, + 67,189,125, 4, 6, 6,154, 45,119,141, 70,115,143,166,105,174,176,176,144, 40, 44, 44,132, 76, 38, 35, 82, 82,146,153,224,224, +144, 17,220,195, 95,127, 4,128,152,152, 85, 35, 14,221, 83, 66,125,125, 19, 52, 55,190,135,176, 85, 18,185,227,235,105,212,199, + 75,183,223,171,243,142,190,148,206,130,130,130, 55, 11, 10, 10, 0, 0,173, 91,183,126,152,158,158,222,190,214,213, 92,227, 66, + 20,210, 52,237, 95,235, 78,164,105, 26, 58,157, 14, 3, 6, 12,224,153,186,119, 39, 39,167,240,192,192, 64, 36, 36, 36, 96,211, +166, 77,206,125,251,246,197,227,199,143, 65, 16, 4, 86,173, 90, 69, 4, 5, 5, 9,138,139,139, 49,120,240, 96, 28, 57,114,164, +187, 82,169, 52,151,159,118, 50,153,108,231,201,147, 39, 37, 36, 73, 66,165, 82,129,101, 89,244,232,209, 3, 36, 73, 34, 57, 57, + 25,139, 22, 45,194,145, 35, 71,112,236,216, 49,105,231,206,157,119,170,213,234, 64,188,236,214,111,172,140, 56,173, 86,203,137, +197, 98,136,197, 98, 72, 36, 18, 72, 36, 18,136, 68, 34, 84,106,129,143,215,103,235,120, 18, 87, 54,248,141,158,109, 62,152,185, +138, 92,179,228,195, 75, 0,142, 91,250,204, 3,213, 99,178, 54,254,242,203,166,241, 21, 21, 36, 0,252, 68, 16, 44,197,113,223, + 89,242,190, 3, 64,165,182, 2,190,126,205,113,248,224, 49,188, 59,102,120,131, 36, 75, 32, 16, 66, 40, 16,192,222, 89,102,214, +166, 80, 40,244,120,248,240,161,139, 64, 32, 0,199,113, 96, 24, 6, 20, 69, 21, 46, 94,188,216,109,232,208,161,118,103,206,156, + 33,135, 14, 29,202, 58, 57, 57, 85,221,190,125,187,136,166,105,151, 94,189,122, 53,229,153,223, 26, 26, 26,218,233,232,209,163, + 31, 70, 71, 71,223,157, 55,111,222,138,186, 7, 87,175, 94,189,252,244,233,211,190, 35, 70,140,216,147,152,152,184,181, 41,117, +200, 95,173,231,173, 54,255,243,108, 54,198, 69,106,224, 65, 16, 68,124,157, 58, 59,170,118, 63, 58, 58,122, 97, 76, 76, 76, 10, + 65, 16,241,117,127,175, 61,175,166,179, 24,223,208,126,205,181,206, 11, 22, 44, 8,137,141,141, 93, 21, 17, 17,113,224,250,245, +235, 79, 1, 52,149,104,153, 30,163, 85,123, 67,117,111,178, 94,163, 6,165, 82, 9,165, 82,137,220,220, 92,108,219,182,173,230, +133, 22,128,207,231,131,207,231, 27,199, 51, 52,134,139,241,127,126, 15,224,251, 78,157, 58, 9, 30,220,136, 59,243,229,142,153, +253,187, 12,232,196,187,119,241,193, 40, 84,175, 71,248,230,164, 73,147, 92, 1, 96,247,238,221,197, 0,206,252,155, 88,115, 92, + 70, 70,198,231, 94, 94, 94,198, 49, 42,117,221,135, 52, 77, 67, 34,145,160,118, 44,139, 86,171,197,182,109,219,104,142,227,226, + 76,216, 68,122,202, 37,100,164, 92,174,190,142,101,193, 50, 47,174, 95,182,108, 25, 56,142, 51, 54,246,159,212, 40, 39,102, 73, + 94, 67,121,206,213,219,214,251,157, 99, 24, 51,238, 9,225,204, 81, 19,167,123,177, 4, 31, 39, 46,221,135, 64, 32, 0, 91, 71, +205, 20,240,170,123,203, 41,143,243,225,237, 17,140,183,199, 78,243, 60,186,103,243, 76,154,210,126,219,212,188, 14, 8,141,192, +172,207, 63,199,143, 59,118, 96,209,210,229, 70, 6, 64, 51, 12,104,179,233, 36,201, 1, 61, 66, 64, 87,230,131,199,227,161, 95, + 88, 27,240,120, 60, 12,140,104, 7, 30,143,135,193, 61, 2,192,231,243, 49,164,103, 16,218,182,109, 11, 62,159, 79,154, 41,119, +164,167, 92, 68, 70,202,239,117, 72, 47, 7, 14, 0, 37,151,191,114,190, 65, 46, 7,215,194,165,169,207, 22,166, 76,153, 82,158, +155,155, 75,213, 63,230,227,227, 35,188,122,245,170, 99, 35,110, 59, 35,164, 82,105,103, 62,159,127,175,180,180,148,181,177,177, + 33, 89,150, 97,131,131, 67,120,103,183, 47, 60, 90,123,206,130, 5, 11,143,190,215,217,126,196,222,184,120, 78,216,178, 39, 65, + 8,196,244, 71, 75,183, 11, 5, 66,105,103, 64, 99, 73,231,129,212,233,116,120,244,232, 17,204,165,135,227, 56,147,174,159,178, +178,178, 73,129,129,129, 87,191,255,254,123,103,130, 32,240,199, 31,127,128,199,227, 25, 63,153,153,153, 32, 73, 18, 95,126,249, + 37,165, 84, 42,167,154, 75, 27,159,207,255,252,240,225,195, 14, 34,145, 8, 42,149,202,248,222,240,120, 60, 60,124,248, 16,107, +214,172,193,164, 73,147,144,147,147, 3,111,111,111,204,157, 59,215, 54, 54, 54,246,115,138,162,150, 91, 80, 68, 73,122,189,190, +139,141,141, 13, 36, 18, 9,106, 9, 23, 0,252,150, 34, 72,214,104, 52, 29, 92, 92,212,158,110, 87,226, 79,116,239,251,118, 71, + 23, 55,175, 8,185, 92,222,164,165,179,158, 0, 59,178, 24,102,241,155, 71,143,186, 95, 59,122,148,189,121,242,228,115,177, 74, +181,221,226,103,200, 64, 34, 59,243, 57, 58,119,238,140,123,247,238,161,115,231,206,117, 73, 19, 68, 34, 17,132, 66, 33,132, 66, + 33, 92,157, 44, 26, 66,193,145, 36,137,107,215,174,129, 97, 24,232,245,122,232,245,122, 4, 5, 5,149, 94,190,124,217, 22, 0, + 50, 51, 51,185, 9, 19, 38,148,223,186,117, 11,111,188, 97,122, 61,117, 15, 15,143,171, 60, 30,175,101,221,223, 74, 74, 74,156, + 70,142, 28,137,178,178,178,183, 70,142, 28,217,179,230,253,205,251,245,215, 95, 39, 0,128, 72, 36, 2, 73,146, 12,172,248,159, +135, 57, 46, 82,151, 40,213, 39, 92, 49, 49, 49, 81,245,127,171, 75,170, 26,250, 94,247,218,216,216,216, 85,117,108,107, 94, 35, +249,230,199,104,197,199,199,115, 13, 48, 72,139, 97,142,104,213, 34, 33, 33,193,224,237,237,253, 99,198,253,103,253,219,132,250, + 65, 42, 19, 15, 2,240,189, 88, 44,158, 51,113,226, 68,220,188,121, 19,201,201,201, 63,227, 47,206,194, 9, 9, 9, 57, 39, 22, +139,125, 27,113,147,100, 39, 39, 39, 15,110,164, 97, 88,122,242,228, 73,152, 26, 12,127,233,210,165,186,141, 82,221,193,240, 13, + 63, 24, 44, 7, 3,101, 64,149, 90,243,162, 17,175, 33, 90, 85, 85, 85, 24, 51,102,204, 75,138, 86, 81, 81,145,217,251, 35, 8, + 2,107,142, 31,199,249,184, 56,188,213,177, 35,142,220,190,141,216,137,227, 16,224,219, 12, 28, 67,128, 35,128,156,253,155, 81, +162,172,196,190,139,215, 80,170, 82, 99,124,175, 94,240,183,119, 53,109, 87, 32, 28, 24, 22, 30, 33,188,112, 61, 21, 2, 1, 31, + 36, 88,112, 6, 53,188, 3,251,128, 71,146,112,240,104, 5,161, 64, 0,129,128,143,204,220, 98, 4,134,116, 21,197,139, 36, 3, + 95,135,104,249,248,182, 2,195, 48,152, 52,105, 18, 14, 28, 56, 0, 23, 79, 95, 56,248,132,224,155,117, 59,240,214,128, 94,102, +239,191,182, 7,207,231,243,193,227,241, 94,217,214,126,183, 68,157,228, 88, 14, 84,253, 50, 98, 57,128,227,208,124,229, 74, 52, + 95,185, 18,183,107,254, 51,168,170, 10, 26,141, 6,232, 22,220, 36,146,165,215,235,145,155,155, 75, 21, 20, 20,120, 52,112,188, + 80,175,215,155, 37, 54,187,118,237, 74,154, 60,121,114, 23,103,103,231,187, 73,137,137,134,208,142, 29, 5,103,182, 45, 60, 86, +235, 54, 4,128,142, 29, 59,150, 46, 92,184,240,216,132,209, 81,195,183, 70,191,207,124,186,124, 15, 95, 44,149,118,137,154,183, + 43,105,255,232,209,230,253, 61, 58, 93, 86,104,104, 40,103,201,125,169,213,234, 2, 19,135,135, 1,248,186, 83,167, 78,246,125, +251,246,197,213,171, 87,241,238,187,239,234, 40,138,202, 0,128,161, 67,135,182,219,183,111,159, 40, 53, 53, 21,110,110,110,130, +236,236,236,157, 48, 51, 64, 94, 36, 18,245,233,218,181, 43,169,211,233, 94, 33, 89,177,177,177, 24, 59,118, 44,218,181,107, 7, +150,101, 81, 89, 89,137,190,125,251, 10, 54,109,218,212,199, 66,162, 53, 43, 32, 32, 96, 13,170,103, 29,214,173, 11,211, 80,237, +214, 66, 73, 73, 73,193,253, 91, 23, 83,122, 13, 24,217,165,101,219, 16,175,228,164,123, 38, 13,186,187,187, 47, 32, 73,242, 61, +150,101,121, 74,165, 50,247,190, 94,223, 54,200,215,215,163,199,240,225,168, 16, 8,120, 27, 47, 94, 36, 11, 85, 42, 91, 0, 22, +185, 32,181,134, 42,248,250, 85, 15,245,123,119,204,112,220,187,119, 15,163,222, 31, 1,161, 80, 8, 62, 95, 80,253,110, 10,171, + 21, 45, 71, 87,123,139,158, 77,131,193, 96,172,195,107,199,121, 81, 20,133,218,161, 89, 54, 54, 54,198, 99, 58,157, 14, 4, 65, +152,122, 54,252, 15, 45, 95,226, 46,181,119, 0, 99, 48, 32,120,248, 40,227, 51,125,235,167,173, 82,176,172,180, 60, 59, 11, 51, +226, 78, 10, 96,133, 21,141,168, 90,166,184, 72, 93,162,244, 87, 65, 16, 68,124,116,116,244, 66, 0, 92,116,116,244,194,218,253, +152,152, 24, 13,128,188,215, 36, 91,175,168, 92,252,191,131,100,213,186, 23, 76,161,111,223,190, 51,236,236,236, 54,213,238,231, +222,204, 67,238,205, 60, 4,182, 15,238,209,169, 99,151,138,177, 99,199,194,197,197, 5,243,230,205,227, 0,252,220,212,255,207, + 76, 79,177, 5,192,121,121,121,205,171,169,144, 59,222,190,125,219,237,206,157, 59,232,218,181,235, 11,233,158,162,208,179,103, + 79, 83,166, 84, 53,131,218,103,255,125, 42, 25, 11,138,162,160, 86,107,160,215, 83,160, 13, 44,104,154, 70,231, 96, 59,236,217, + 17, 93,253, 27, 93,171,158, 85,171,102,205, 61,237, 96,103, 43, 48,144, 36,161,185,155, 84,208, 96,141,169,215,235,145,148,157, +141,196,103,207, 0, 0,111,199,152, 30,248,186,231,226, 85, 4, 5, 5,153, 75,109,155,230,222,158,200, 63,159, 84, 93,121,107, +114,113,231,207, 67,176,179,179, 5, 0, 4, 71,142,135, 80, 88, 77,180,170, 52, 20, 92,219,251,128,224,184, 70,195, 2,216, 56, +121,158,227, 11, 37,190, 28,195,130,227, 88,112, 44, 3,142, 99,193, 19, 8,109,102,124,242, 33, 88,150, 65, 88, 88, 24, 8, 30, + 15,140, 65,135,209,195, 6,162,172, 66, 5, 23, 71,203, 26, 9,161, 80,136,200,200, 72,105, 99,199, 31, 63,126,172,169, 75,204, + 76,151,145, 1, 85, 85, 26,232,116, 58, 80,122, 26,148,129, 6,211, 90,136, 21,139,199,129,166,104,168,223,143, 0,101,160,193, +126, 62, 2,148,222,128, 28, 27,146, 12, 13,116, 53,144, 32, 52,247,211, 20,246,230,136, 86, 45, 57,104, 12, 13,141, 9,108,132, +108, 37, 78,158, 60,185,115,104,199,142,247,222, 27,208,113,237,131,228,148,252, 7,201, 41,175,156,231,219,174, 99,214,167,177, + 7,230, 10,132,210,206, 81,243, 76,207, 58,172,139,186,110,196,191,136,133, 42,149, 42,212,214,214, 22,233,233,233,224,241,120, + 32, 8,226, 49,128, 80, 0,240,242,242,122,194,231,243,253,120, 60, 30,182,108,217, 66,240,249,252, 14, 17, 17, 17, 11,181, 90, +237, 33, 19, 29,186, 64, 59, 59,187,151,212, 44,161, 80,136,232,232,104, 76,152, 48,193, 72,178,132, 66, 33,118,237,218,133, 46, + 93,186, 64,175,215, 7, 90,152,222, 59, 0,122, 89,160,248, 17, 53,228,220, 44, 25,165,105,122,114,201,123,239,181,197,149, 43, +232,225,231, 23,212,185,115,103, 80,212, 11, 65,211,207,207,207, 71,165, 82, 21,104, 52,154,127,162, 58,180,193,125,147,164, 72, +203, 34, 59,179,122,248,233,189,123,247, 16, 22, 22,102, 84,176,234,170, 89, 66,161, 16, 82,145,109,147,136, 22,203, 86,215, 75, + 42,149,138,188,114,229,138,107, 64, 64, 0, 1, 0, 1, 1, 1,196,253,251,247,157,109,108,108,138,219,180,105, 99,182, 3, 44, +181,119,192,174,201, 99, 0, 0, 95, 13, 24, 98,236, 24,157,253,122, 33, 4, 2, 1,250,207, 91,248,202,115,207,178, 44, 15, 86, + 88, 73,150, 5, 92,228,239, 34, 89,245, 21,173,152,152,152,148,152,152,152, 87,212,177, 38,194,188,162, 85, 87,186,107, 42,106, + 95,214,198,176,110,221, 58,116,232,208,193,100, 67,180,105,211, 38,236,221,187,119, 29,128,204, 38, 75,142,253, 59, 5, 99,253, +209, 20,191,118,193, 4, 0, 44,255,124, 24, 89, 85, 85,133,107,215,174,193,193,193, 1,143, 31, 91, 28,246,203,206,193,193,225, +107,146, 36, 71,243,234,207, 0,104,152, 96, 50, 44,203,198, 85, 84, 84, 52, 26,222,129,227, 0,202, 64,163, 74,173,133, 94,175, +199,231, 95,110, 54,155,136, 24,128,160,244, 42,126,100,239, 8,105, 99,138, 78, 88,135, 62,248,108,162,237, 43,141, 55,143, 4, + 72, 18,120, 35,172, 90,113,185,127, 59, 5, 44, 11, 48, 44,224,234,238,132,159,247,175, 53, 73,242,105,134,173,233, 29, 51,168, +212, 49, 8, 12,143,194,243,180, 43, 70, 5, 73, 36,172,118, 25, 11, 5, 2,176, 28, 81, 29,245,161, 49, 34, 36,146,250,150,201, + 51,253,119,196, 63,192,199, 81, 29,240,235,133, 36,140, 26, 16,138,203,183, 82,209,183, 91, 16, 82, 50,158, 33,216,191, 37,182, +236,140, 3,199, 65,245,195,250,111, 10, 94, 52,104,116,182, 37,138,214,205,155, 55, 53,245, 85,172,186, 91,206,124,123, 8,142, +123,161,104,105,180, 58,204, 91, 96, 81, 56,159,234, 50,234, 21, 46,181,228,100, 83,138,149, 37, 68,172,190,178, 5, 51,225, 89, + 90, 3,232, 2,204,255,119, 86,156, 12,195,224,212,169, 83,198,242,104,168, 28,235,150,157, 5, 36, 7,217,217,217, 72, 73, 73, + 65,120,120, 56, 42, 42, 42, 32, 32, 73,204,125,240, 0, 65, 19, 39, 66, 47, 20,130,101, 89,136, 68, 34, 76,155, 54,205,226,252, +108, 98,237, 92, 51,152,155, 49,103,124,109, 68, 68, 68,219,244,170, 42,164, 60,124,136, 1,203,150, 1, 0, 78,159, 62,253,210, + 51, 49,103,206, 28, 81,106,106,234,148,187,119,239, 78,201,207,207, 95, 7, 96,110,163,245, 44,167, 51,142,209,122,111,220,187, +104, 27,208, 26,123,127,217,111, 60, 62,231,139, 89, 16, 8,132, 16, 8, 5,112,116,112,180,232,129, 38, 13,213, 0, 0, 32, 0, + 73, 68, 65, 84,110, 12, 6,131,145,180,170,213,106,242,244,233,211,205, 7, 14, 28, 40,156, 53,107, 22, 1, 0,123,247,238, 37, +191,255,254,123,217,249,243,231,133,205,154, 53,147,155, 37,151, 20,245, 74, 25, 19, 4, 1,129, 64, 0,161, 72, 8,176, 44, 8, +130,144,173, 94,189,122,121, 74, 74, 74,215,128,128, 0,232,116,186,137,168,158,168, 97,141,163,101, 37, 91, 38,185, 72, 67, 99, +173,106, 84,169,198,160,168, 59,110,171, 49,162, 86,119,204, 22, 94,111, 82,134,101, 99,180, 26, 2,143,199, 51,171, 86,145, 36, +105,214,117, 56,103,206, 28,216,217,217, 53,214, 0,113, 15, 30, 60, 72,149,203,229, 59, 0,108,126,173,194,185,152,144,242,245, +236, 17, 42,212,248, 86, 29, 29, 29,139,251,245,235, 87, 9,128, 58,116,232,229, 14,178, 78,167,107,180, 1,119,112,112,248,250, +167,159,126,154, 57,124,248,112,178,126,136,129,186,238,189,218,143,193, 96,192,161, 67,135,102,206,159, 63, 31, 21, 21, 21,179, + 77, 53,226,234, 42, 13, 52, 53, 3,161,159, 36,255,106,105,165,222,232, 33, 91, 71, 47, 52,111, 29,218,104, 99, 66, 10,171,199, + 16,121,180,120,209,128,217,217, 73,192,152,176, 73, 16,100,230,179,156,252,102, 62,158,206,120,146,171,128, 71,203, 14, 40,203, +123,145, 15,124, 62, 15,130, 26,215,161,163,189, 12,138,162, 34,144, 36,207, 36, 49,254,102, 95, 2,110, 37, 63,195,225, 11,247, + 65,105,171,176,126,247, 89, 80,186, 74, 80,218, 42, 80,218,234,237,170,249, 31,129, 32, 80, 96,208, 85,181,107, 74,185,243,249, +124,116,235,214,173, 81,162,147,151,151,103,161,162,197, 25, 21, 45,141,182,137,101,100, 89,207,201,164, 98, 85,123,252,117,137, + 65,109,200, 7,169, 84,218,101,215,174,198,195, 56, 52, 4, 79, 79,207, 51,182,182,182,173, 44, 61,191, 9,193, 75, 87, 57, 58, + 58,126, 29, 16, 16, 16,184,126,253,122, 1,143,199, 67,255,254,253,219,121,122,122,102, 3, 64,112,112,176,119,109, 29,243,233, +167,159,114, 55,111,222, 76,174,238, 99, 52, 14,145, 72,244,208,193,193,161, 75,223,190,125, 81, 81, 81,129,220,220, 92,200,100, + 50, 4,173, 93,139, 7,159,126,138,142,219,182,129,236,215, 15, 4, 65, 64, 36, 18,225,193,131, 7,144, 74,165, 15,181,218, 70, + 67,190,117, 3,240, 29,128, 30,120,225, 46,228, 0, 92, 67,117,216,133, 91, 13,212,119, 36, 0, 48, 44,107,174,176,198,205,155, + 55, 15,229, 2, 1, 48,116, 40,132,153,153,160, 40, 10,225,225,225, 70,149, 61, 60, 60, 28,124, 62, 31,161,161,161,240,246,246, +198,150, 45, 91,198,153, 34, 90,218, 74, 10,217,153,207, 17, 17, 17, 97, 84,174,134, 14, 29,106, 84,180, 4, 2,129, 81,217, 34, + 24,243,196,149, 32, 8,174,110, 39,153, 97, 24,130,207,231,243,103,207,158, 77,188,251,238,187,156, 94,175,103, 69, 34, 17,121, +248,240, 97,226,242,229,203,252,170,170, 42,179, 29,241,144, 17,163,241,213,192, 55,171,223,253, 86,110, 16, 8, 5, 16, 9,133, +152,247,240,185,177, 92,236,119, 29, 16,197,198,198,142, 10, 8, 8,168,118,195, 3,124,107, 28, 45, 43,204, 8, 61,138,122, 36, + 73, 95,103, 95, 1,128,168,217, 87,212, 33, 84, 10,130, 32,238,112, 28,215,181,222,185,181,199,245,245,182,181,199, 19, 95, 35, +249,181,107, 29,190, 66,190, 76,245,136, 51,110,220,184,225,223,185,115,103,228,228,228,188, 50, 19,174,182,225,146,201,100,144, + 74,165,184,126,253, 58, 0,100, 52,102,236,242,229,203,223,163, 58,234,114,117,138,188,188, 34,250,190,215,231,122,216,144,174, +216, 23,179,191, 66, 46,151,135,226, 69, 12, 29,194,219,219,123,130, 64,196, 31,227, 23,210, 34, 18, 44,251,221,197,147,215,150, +153,186, 67,191,118,193,149, 0, 52,181,179, 14, 95,115,246, 33, 72,146, 28, 61,124,248,112, 50, 53, 53, 21, 99,198,140,193,222, +189,123, 27, 61,119,194,132, 9, 56,112,224, 0,134, 15, 31, 78, 46, 88,176,160,209,240, 14, 47,171, 37,250,191,237,161, 76,127, +156,136, 61, 7,126,106,116, 12,146,187,123,245,120,172,162,162, 98,227,111, 93, 59,155,246,140,176,180,254,124,194,221,219, 17, +221,123,247, 23,230, 22,150,131,165,117,208,170, 94, 92,175, 46, 47, 4, 71,107, 33,180,113,134,167,171, 3,238,221,248, 77, 79, +233,181,231, 77,217,156, 57, 60, 24,159, 14, 11, 4, 56, 22, 35,230,254,140,248,205, 51,140, 61,232,158,239,206,194,197, 67, 27, + 45, 30,227, 87, 31, 2,129, 0, 15, 30, 60,208, 52,166,102,241,120, 60, 75, 98,114,213,168,142, 6,168,213, 26,168, 53,218,191, +179,238,112,243,240,240,248,193,201,201, 73,210, 8,145,114,115,115,115,251,193,197,197, 69, 98,169,235,176, 49,146, 85, 19, 87, +235,238,228,201,147,155, 68,182,196, 98,113,171,140,140, 12, 99,176, 82, 83, 91,189, 94,143,190,125,251, 90, 26,188,244, 36,128, +167, 94, 94, 94,215,130,130,130, 28,158, 60,121,130,253,251,247, 11, 5, 2, 65,139,218,250, 67,165, 82,129,199,227,161,168,168, +200, 0,224, 67,152,113,157,233,116,186, 43, 87,174, 92,121, 99,216,176, 97,188,135, 15, 31,130,199,227, 85,167, 43, 34, 2, 29, +183,109, 67,242,236,217,136,124,246, 12, 90,138,130, 68, 34,193,185,115,231, 40,181, 90,125,165, 49,123, 82,169,116, 71, 86, 86, + 86,176, 68, 34, 1, 69, 81, 96, 89, 22, 36, 73, 18,124, 62,191,167,163,163,227, 38, 0, 93,235, 21,150,123,199,174,125,219, 51, + 52,205,200,115,158, 40,204,101, 64, 73, 73, 9, 78,158, 60,137,240,240,112, 68, 70, 70, 34, 47, 47, 15,153,153,153,120,235,173, +183,140,231, 36, 38, 38, 34, 33, 33, 1,109,218,180, 49,175,232,145, 6,180,105,223, 10, 66,161,176, 90, 33, 18, 8,107, 58, 62, + 2,163,146, 37, 20, 8, 33,224, 11, 32,145, 74, 44, 86,180, 8,130, 0, 73,146, 32, 8, 2, 82,169,180,182,147,205, 54,111,222, + 92, 94, 90, 90,234, 5,128, 39,149, 74,193, 48,140, 69,157,150,218, 54,162,150,100, 9, 69, 66,163,178, 5, 0,229,229,229,218, +225,195,135,255, 83,167,211,125,128,215, 91,161,196,138,255, 49, 16, 4,113,231,223,113,109, 19, 48,180,134, 88,189, 50, 40,222, +212, 3,254, 86,247,238,221,183,141, 29, 59,182,255,134, 13, 27, 96,107,107, 11,185, 92,110,108, 16, 69, 34, 17,124,124,124, 80, + 90, 90,138,237,219,183,227,249,243,231,151, 0, 76,179, 52, 69,114,185,252,230,227,251, 25, 37,125, 71,117,119, 9,238,222,222, + 49, 55,227,121,184, 92, 46,191, 94, 67,178,126, 30, 59,231,173, 15,250,142, 12,131, 80, 36, 64,238,227, 2, 92, 60,121,237,255, + 75, 97,242,120, 60, 30, 65, 16, 24, 51,102,140, 69,231,191,255,254,251,184,114,229, 10, 76,185, 25,217, 90, 69, 75,173, 69,149, +230,239,235,172,125, 54, 99, 2, 62,155, 49,193, 72, 38, 44,113,189, 0,128,183,247, 65, 19, 68,139,218, 16,127,112,251,199,157, +194, 34,124,187, 4,183,194,173,187,247,177,111,219, 11,145, 97,231,247,203,241,237,206, 75,240,241,112, 2,165,171,194,153, 95, +127, 44,160,116,234, 13,175, 41,202, 85,147, 91,130, 0,199,177, 77,186,247, 90,242, 36, 16, 8, 16, 18, 18,210,168,162, 85, 90, + 90,170, 49,215, 48, 24,203, 72,111, 64,101,149, 6, 26,245,223, 70,180, 58,246,236,217,243,124, 92, 92,156,139,187,187, 59,242, +243,243,235, 19,173,142, 61,122,244, 56, 31, 23, 23,231,226,225,225,129,220,220, 92,139,195,138, 52, 64,178,160, 80, 40,136,178, +178, 50,214,201,201,169, 73,100,139, 36, 73,232,116, 58,164,165,165, 89,250,183, 22,207, 16,115,112,112,216,117,224,192, 1,135, +226,226, 98,240,120, 60,164,165,165,189, 52,235,176,246,243,243,207, 63, 11, 71,140, 24,241, 83,121,121,185,201,105,109, 52, 77, +175,155, 48, 97,194,148,188,188, 60, 39,119,119,119,200,229,114,136, 68, 34,112, 28, 7,162,111, 95,244,122,250, 20, 20,195, 64, + 42,149, 34, 61, 61, 29, 59,118,236,168,170, 9, 21,211,160, 64, 70, 16,132,191, 80, 40,196,248,241,227, 95, 58,176,123,247,110, +188,221,133,215,197,205,129, 95, 73, 67,162, 43,148,190,121,134,199,227, 17, 29,187,245,107,215,173,247,208,144, 71,201,183,158, + 40, 10,159,155,171,148, 12,122,189, 30, 1, 1, 1,184,115,231, 14, 46, 92,184,128,126,253,250, 33, 50, 50, 18, 73, 73, 73,248, +237,183,223,144,144,144, 0,130, 32,224,226,226, 82, 59,252,194,228, 24, 12,189,154, 70, 81,126,201, 43,234, 85,253,125,161, 80, + 8,157,134,178,168,140, 30, 62,124,136, 59,119,238, 24, 67,203,240,120, 60,122,226,196,137,224, 56,142,203,202,202,130,157,157, + 29, 55,121,242,100,134,207,231,211,121,121,150,141, 15,174, 37, 85,181, 36,139, 47, 20,188, 68,208, 88,150, 85, 37, 37, 37,125, + 12, 32,169, 70,201, 2,172,113,180,172,248,191,141, 83,120,117, 97,105,179,138,214, 83, 0, 3,246,239,223, 63,238,216,177, 99, +235, 54,109,218,228, 22, 21, 21,133,178,178, 50,248,250,250,194,203,203, 11,241,241,241, 56,125,250,116, 49,195, 48,115, 1, 52, + 36,253, 12,128,137,152, 53,121, 79,228,113,186,202,202, 79, 59, 71, 6,226,210,161, 63, 98, 60, 61, 61,167,241,120,188,207, 39, + 47,124,231,131, 62,195,187, 34, 61, 33, 11, 55,127,123,128,194,156, 98,179, 54,235, 15,134,119,116,116,156, 98, 99, 99, 35, 2, + 64, 53,208, 43,174, 63,235,208,104,147, 97, 24, 70,175,215,227,224,193,131, 22,145,173,253,251,247, 67,171,213,130,121,213,191, +106,180,201,177, 28,193, 23,136,225,237, 19, 0,138,170, 2,203,190,246,132, 74,163,205,218, 30,232, 19,145, 8,238,197,197,184, +117,235,150,101,148,123,232, 80,115,101,164,213,107, 85,227, 55,174,156, 23, 63, 61,250, 59,199,126,221,223,192, 87,107,119,131, +162,118,130,228,145,144,138,133,232, 28,214, 3, 60,232,240, 67,236, 23,229,106,101,217,120,188,186, 20,207, 75, 54, 57, 83, 30, + 22, 14, 96, 88, 22, 23,174,222,182,248,222,141,173, 61,195,128,207,231,227,241,227,199,154,134,102, 27,242,120,213,110,206,218, +158,186, 41,155, 28,203, 18, 2,161, 4, 62,190, 65,208,235, 42,255,150, 50,114,119,119,255,226,232,209,163, 46,181,161, 18,146, +146,146, 64, 16, 68,218, 11,197,177,250,184, 70,163, 65,114,114, 50,146,146,146,128,234, 25,110, 22,191, 71,181, 74,150, 66,161, + 32,228,114, 57,108,108,108,200,164,164, 36, 93,104,104,232, 93, 51,239,183,209,166, 86,171,125,214,216,248, 73,173, 86,219, 76, + 34,145, 8,234, 53,162,222,109,219,182, 77,111,192,133,248, 74, 58, 43, 42, 42,110,205,159, 63,191,243,144, 33, 67,240,197, 23, + 95,148, 58, 57, 57,217,253,240,195, 15,124, 30,143, 71, 76,159, 62,157, 41, 42, 42,170,252,241,199, 31, 29,142, 29, 59,134,242, +242,242,235, 22,220,187, 74,171,213,126,220,189,123,247,221,103,207,158,181,241,247,247,135, 82,169, 4,199,113,216,181,107, 23, +166, 79,159, 14,137, 68,130,244,244,116,188,253,246,219,106,181, 90,253, 49, 94, 29, 59, 89,107,147, 32, 8,130, 99, 89, 22, 75, +150, 44, 49, 6, 39,173, 13, 86,106, 39, 37,176, 99, 78,107,217,172, 31, 43,100,227,190,250,113, 34, 0, 48, 52,205, 60, 74,190, +245,100,215,230,175, 46, 11,133,194,171,102,202,104,209,172, 89,179,126, 24, 58,116,168,212,214,214, 22,165,165,165,184,118,237, + 26,110,220,184,129,155, 55,111, 66,175,215,195,197,197, 5, 78, 78, 78,144,203,229,120,248,240,161, 6,192, 34, 83, 54, 69, 54, + 2,248,181,171,157,249, 91,173, 96, 9,234,204, 54,172,171,110, 9, 5, 2,139,222,163,222,189,123,163, 91,183,110,181, 4,136, +201,206,206,150,235,116, 58,162, 14,233,207,171, 37,228, 45, 90,180,160,247,238,221,203,153,178,121,115,199, 22,156, 93,177, 8, + 34,161, 16,115,211,114,141,164,107,119,191, 78, 16,136,132, 8, 28,246,110,221,107,183,162,218, 93,136,122, 36,203, 84,219,241, +151,223, 77,171,205,255, 88,155,255,151, 33,199,107, 44,193, 83,139,125, 90,173,246,204, 71, 31,125, 20,219,177, 99,199,143,214, +175, 95, 79, 8,133, 66, 44, 91,182,140,203,207,207,255,165,166, 23, 82,246, 58,169,226, 56,238,151,223,143, 92,255,100, 82,244, +112, 98,206,134,201, 61,239, 94, 76,126,216,161,187, 63, 58,116,247,199,221, 75,169,216,188,112,255, 94,198,192, 44, 41, 40, 40, +200, 49, 99, 74, 55,160, 71,251,250,131,225, 93,174, 92,190,232,210,212, 89,135, 44,203,198,237,223,191,127,230,200,145, 35,201, +219,183,111,191, 50, 38,171,118,217, 29,150,101,113,254,252,121, 80, 20,133, 95,126,249,133,101, 89,182,241, 56, 90,224,142,111, +220, 16, 59,233,151, 61,199, 69, 34, 33,129, 27, 87, 15,163,162,204,244,172, 46,161, 80,128,159,119, 29,161,132, 66,193,163,134, +142, 83, 20,149,123,241,226, 69,143,193, 12, 35, 32, 73,178, 33, 2,213, 32,226,226,226, 12, 44,203,102,155, 57,237,122,225,243, +156, 97,223,124,241,225,254,161,239,125,228,209,189,123, 79,129,171,187, 7, 8,130, 64, 81, 97, 17,210,147,111, 27,206, 28,254, +169,176, 74,109,217, 18, 60, 31,174,249,221, 56, 38, 11, 0,162,166,111, 50,142,207, 2,128, 97,147,231,163,111,120, 48, 8, 75, +164,167, 23, 36,139,165,105, 26, 50,153, 12, 52, 77, 55, 24,226,193,193,193, 65,170,213,106, 53, 53,129, 24, 77, 74, 69, 28,240, +183,151, 17,195, 48,129,101,101,101,168,170,170,194,141, 27, 55,184,149, 43, 87, 42, 20, 10,133,113,208,166,193, 96, 8, 44, 45, + 45, 69,101,101, 37,174, 95,191,206,197,198,198, 42, 74, 74, 74, 22, 54,229, 29,146, 74,165, 93,248,124,254,221,178,178, 50,214, +198,198,134, 52, 24, 12,134,208,208, 80,177, 84, 42,181,120, 65,117,185, 92, 62,164,177, 99,126,126,126, 25, 25, 25, 25,109, 25, +134,169,187, 6,162, 80,171,213,250,119,239,222,221,146,250, 99,214,206,157, 59,113,228,200,145, 48,165, 82, 57, 33, 59, 59,123, + 55,128, 48, 62,159,143,251,247,239,167,105,181,218,177, 35, 71,142,220, 85, 86, 86,118, 11,213, 75,240, 88,130,179,233,233,233, +227, 3, 3, 3,119,126,253,245,215,182,145,145,145,124,111,111,111,116,237,218, 21,233,233,233, 56,117,234,148, 97,235,214,173, + 85,106,181,250, 67, 0,231, 77, 23, 59, 8,154,166, 33, 18,137,140, 31,177, 88, 12,161, 80, 8,149,134,195,212,181,153, 26, 26, + 82,205,186,101, 31,159,226, 0,162, 32, 55,179,184,168, 32,247, 22, 65, 16, 87,229,114,121, 69, 35,121, 38,210,106,181,111,112, + 28,199, 35, 8, 98, 3, 69, 81,147,103,204,152,225,181,106,213, 42,180,111,223, 30,197,197,197,144,201,100,240,247,247,135, 66, +161,192,237,219,183, 25,181, 90,189, 13,192,114,212,140, 31,105, 12,229,197, 74, 52,247,108,241,146,242,201,113, 28, 56, 6, 48, +232, 24, 48, 20, 7, 61, 97,128, 64, 96,128, 80, 40,180, 68,121,226, 88,150, 69,153,151, 23,216,228,100,220,188,121, 19, 28,199, + 53,170,170, 5, 4, 4, 88, 80,177,179, 16,137, 69, 47,185, 11, 9,130,128, 80, 36,130, 64, 36,108,104,230,140, 85,197,178,226, +191, 26,150,250,198,203, 1, 76, 75, 76, 76,220,221,167, 79,159,120,142,227, 4,168,246, 71,254,241, 87,254,188,160,160,224,222, +245, 83,247, 22,120, 52,119,138,125,115, 66, 79,180,127,195, 23, 12,205,224,218,233,251,248,101,213,177, 3,121,185,121,147, 97, +193,218,103, 44,203, 94,238,209,165, 61,137, 58,177,186,189,189,189,217,215,153,117, 88, 81, 81,177,116,238,220,185,248,226,139, + 47, 94,103,214, 97,131,120,240, 80, 49,141, 0,215,124,216,155,189, 6,131, 32, 57,189, 94,103,162,226,131, 49,114,169, 80, 40, +120,116, 39, 73, 30,218,208,121, 10,133, 98,240, 7, 31,124,112,158,207,231,183,106, 74,158,179, 44,155, 93, 88, 88,216,223,252, +153,244, 53,157, 70,233,127,242,192,246,217,103,143,236, 28,204,178, 76, 27, 2, 0,143, 47,124, 98,160,168,115, 58,141,114, 61, + 44, 92, 84,122,245,180, 8,204,218,248, 27,182,124, 49, 12, 51, 98, 15,225,167, 37, 83,177, 96,237,126,124,247,197, 44,172,220, +244, 79,124, 53,107, 60, 70,141,251,128,229, 8,242, 79, 75,239,131,199,227,157,221,190,125,251,164,169, 83,167, 26, 39, 45,112, + 28,247, 82,197,110, 48, 24, 52, 44,203, 98,219,182,109, 44,128,179,166,236,189, 92, 70, 4,103,106,188,148,165,101,164, 84, 42, + 63,140,136,136,216, 5, 64,204,113,220,227,178,178,178,127, 0, 47,150,134,170,172,172,252,176,123,247,238,187, 56,142, 19, 19, + 4,241,202,113, 75, 80, 19,234,161,139,147,147,211,221, 26, 37, 75,252, 58, 3,226, 77,101,181, 9,183,162, 37, 46, 68, 22,192, +140, 58, 17,223, 87,133,133,133,213, 93, 84, 58,173,172,172,172,203,107,164,235,188, 70,163, 9, 94,178,100,201,108,137, 68,210, + 87,173, 86,183, 3, 0,153, 76,150,174,211,233, 46,107, 52,154,245, 48, 31,155, 74,207,178,108, 58, 77,211, 33,110,110,110,213, + 51,106,107,200, 22, 0,156,184,203,220, 5,152,174,213,162,248, 62,139, 19,118,250,244,233,150, 78, 78, 78,131, 8,130, 24,197, +113, 92,128, 74,165,210, 45, 89,178,228,122, 92, 92, 92, 69,171, 86,173,222, 28, 58,116, 40,225,236,236,140, 59,119,238,112, 37, + 37, 37,135, 1, 44,132, 5, 51,173, 89,150,205, 94,189,122, 53,154,250,190,155, 58, 78, 81, 84,193,233,211,167, 93,135, 20, 21, +241, 89,150,197,176, 97,195, 94, 34,112,245,241,232,209, 35,232,116, 58,147,193, 28,117, 21,101,232, 55,123, 62, 80, 51,251,179, + 22,213, 74, 22, 7, 78,111,229, 85, 86,252,111,225, 95,189,160,167, 69,210,162,151,151,215, 24,137, 76,252,153,111, 59,175,208, +252,204,162, 84, 85,133,122,175, 92, 46,223,222, 72, 69,110,145,205, 38, 6, 44,181,202,191,255, 34,155, 47,226,104, 49,224, 56, + 6, 28,203,129,227, 88,176, 44, 83,189,224, 53,199,130, 99, 24,130, 32,240,167, 94, 99, 50, 50,120,253,116, 58,185,186,186, 46, +231, 56,110, 8,143,199, 35,235,138, 97,117,191,215, 40, 89,103, 21, 10,197, 87, 13, 40,175,255,231,242, 51, 46, 46,174, 65,242, +111,233,172,195,209,163, 71, 51, 77,124, 55, 47,203,100, 50,175,134,142, 85, 85, 85,229,200,229,242, 65,255, 33,249, 89,119,198, + 96, 83,108, 54,121,214,161, 57,155,190,190,190, 98,138,162, 58, 1,240, 39, 8,194, 17, 64, 41, 69, 81,231,138,139,139, 11, 1, +116, 1,176,164,230,154, 21, 0,238,254,155,223,119,169,171,171,235, 78,146, 36,155, 91,114, 49, 77,211,250,210,210,210, 73,245, + 58, 4, 70,155, 46, 46, 46,119,249,124,126,115, 11,236, 60, 47, 41, 41,233, 98,173, 63,173, 54,255,139, 80,127, 16,124,163,145, +226,255, 21, 68,203,106,211,106,211,106,211,106,211,106,211,106,211,106,211,106,243,191,157,104, 53,184,111,157, 86,107,133, 21, + 86, 88, 97,133, 21, 86, 88,241,215,112,170, 30,217, 58, 85,251,133, 48,193, 74,155, 34, 9,190, 14,179,189, 96,181,105,181,105, +181,105,181,105,181,105,181,105,181,249, 63,103,211,138,191, 17, 86, 89,213,106,211,106,211,106,211,106,211,106,211,106,211,106, +243,191, 29,141,186, 14, 73,107,222, 88, 97,133, 21, 86, 88, 97,133, 21, 86,252,107, 96, 49,209,146,121, 4, 4,186,250,134,238, +114,106,222, 33,201,169,121,135, 36, 87,223,208, 93, 50,143,128,192,255,209,124,147, 2, 24,199,231,243,207,123,122,122, 42,209, +200,210, 59,255, 5,176, 7, 48, 10,213,241,125, 70, 0,176,249, 59,141, 71, 2,252, 49,192,103, 19,129,156,137, 64,206, 24,224, +179,200,255,194,113,131,203,102,122, 69, 92, 61, 51,238,204,178,153, 94, 17, 13, 30,159,235,229,114,243,183,209, 27, 87,125,230, +237,252, 55,253,165,157,187,187,251, 14, 15, 15,143,103,238,238,238,217,238,238,238, 59, 1, 56, 88,171, 59, 43,172,176,194,138, +127, 25,106,199,104,213,126,140, 99,180,248, 0, 16, 31, 31, 31, 9,224,119, 0,125,162,162,162,174,212,191,218,169, 69,200,212, + 54,173,219,124,241,205,178,133,132,167,187,171, 13,205,176, 84,214,179,220,160,165,223,196,254,154, 47,226,175, 43,203, 73,254, +233, 53, 18, 69,240,120,188, 49, 98,177, 56, 10, 64, 45, 97, 75,211,233,116,241, 12,195, 28,132,101,211,180,225,225,225,113,149, +199,227,181,108,202, 31, 51, 12,147, 83, 88, 88,216,243, 53, 51,115,116,139, 22, 45,118, 70, 70, 70,218,132,133,133, 65, 36, 18, + 97,201,146, 37,115,229,114,249,122, 75, 13, 56, 57,249,217, 81, 98,201,231,124,145,104, 32,103,208,135,112,224, 0, 82,156,204, +210,186,139, 66,157,110, 93, 89, 89,166,202, 66, 83, 11, 1, 76,174,201,171,159, 0,172,254, 43, 79,201,164, 55, 96, 48, 48,213, +207,132,144, 15,230,248, 83,135,223, 23, 45, 90,196,143,138,138,194, 79, 63,253,212,115,199,142, 29, 31,171, 84,170,139, 0, 78, + 0,120,242, 87,159, 74, 15, 96, 90,247,158, 61, 55, 78,154, 59,151,167,185,122, 21, 27,119,238,220,128,234,120, 75, 91,154,250, + 44, 9,133, 24,229,234, 42,136,226, 56,116, 34, 0,130, 0,238, 43, 74,216,211, 20,197, 28,132, 5,177,216, 76, 96, 28, 94,158, +142,191,175,169, 6, 42,158,112,139,197,195, 2,123, 85, 60,185,188, 24,192,155,245,143,211, 90,201, 36,142,231, 19,165,225, 18, +114, 1,172,253,139,217,106,227,230,230,150,116,252,248,241,230, 97, 97, 97,124, 0,184,123,247,238,196,168,168,168,126, 10,133, + 34, 4,128,242,223, 84, 9, 73,248, 36,249,153, 72, 32, 24,200, 48, 76, 7, 0,224,241,120, 15,244, 6,195,121,154,101,183,192, +194,152,108, 86, 88, 97,197,127, 47,204,113,145,255,112, 52, 26, 25,190,246,230,184,186,219,186,144,185,183, 15, 10,239,255,238, +163, 10,149, 90,251,236, 89, 94,217,156,207, 86,158,255,120,214,154, 99,107,127,140, 63,125,229, 86,218,205,192,176, 65,169, 50, +247,246, 65,141,152,110,204,135,219, 66, 42,149,222,219,186,117, 43,149,158,158,206,149,151,151,115,143, 30, 61,226, 14, 31, 62, +204,125,242,201, 39, 90,169, 84,122, 15, 64, 11, 75,108,122,120,120, 20, 62,186,244, 27,247, 60, 41,129,203,190,123,139, 51, 24, + 12, 28, 69, 81, 28, 69, 81, 92,234,217,120, 46,233,196, 17,238,254,225,131,156, 94,175,231,244,122, 61,167,211,233,184,214,173, + 91,231, 91,152,206,250,240, 14, 14, 14,214,199,199,199,115,191,254,250, 43, 55,119,238, 92,174, 99,199,142, 12,128,233,150,222, +187,204,221,191,175, 93,179, 80,197,212,232, 45,212,169,235,231,184,148,167,247,185,148,167, 25, 92,220,133, 52,110,242,188, 77, +148, 93,179,142, 10,153,187,127, 95,115,247,238,228,228, 20, 78, 16, 4, 87, 11, 0, 92,203,150, 45, 43,235,126, 90,180,104,241, +210,199,199,199,167,178, 85,171, 86, 79, 92, 92, 92, 58, 53,100,115,108, 7,112, 92,234, 62,142, 75,221,199, 45,234, 13, 46, 37, + 37,229, 38,199,113,191,215,126, 52, 26,205,239, 71,143, 30,253,253,157,119,222,249, 29,192,219, 38,242,201,162,252,156, 8,228, +168,142, 31,231,184,245,235, 57, 46, 50,146, 75, 3,184,137, 64, 78, 19,109,182,246,244, 20,220, 95,179,250, 99,253,241,227,191, +112,103,206,156,226, 78,159,142,231,142, 29,221,201,109, 88,255, 25,229,225, 33, 72, 6,208,182, 9, 54,249, 0, 86, 2, 88,135, +106,229, 50, 93,161, 80,112, 5, 5, 5, 28,128,244,154,223,214,185,185,185,173, 69,195,234,219,128,186, 74,214,236, 33,158,103, +222,123,179, 39,167,170,200,231,222,123,179, 39, 55,123,136,231, 75,202,214, 16, 63, 63,187, 25,195, 58, 40, 82,238,238,101,102, + 12,235,160, 24,226,231,103,247,154,249, 73,160,122,157,208,173,151, 46, 93,162,185, 58, 48, 24, 12,220,238,221,187, 25, 39, 39, +167, 95,154, 96,179,157,155,155, 91,182,179,179,115,122,221, 31,221, 66, 71,116, 15,232, 53,113,169, 75,208, 59,145, 77, 72,103, +152, 68, 40,124,126,254,208, 15, 76, 73,206, 3, 78,175, 41,228, 42, 30, 39,112,207,211,110,114,187,183,175, 51,136,248,252,231, + 0,194,254,202,179,212, 68, 88,109, 90,109, 90,109,254, 7,218, 52,197, 69,254, 47,131, 95,255, 6,235, 67, 44, 22, 69, 47, 93, + 52,159, 40, 47, 41,215,104,149, 42,189, 65,171,213,146, 66, 78,251, 32,245,105, 17,201,231,149,207,158, 53,211, 46,122,193,162, +232, 42, 96,188,133,255,217,162, 99,199,142,183,143, 28, 57,226,238,236,236,140,138,138, 10,148,148,148,224,246,237,219,224, 56, + 14, 35, 71,142, 20,119,235,218,181,211,226, 37, 75,110, 60,207,203,139, 64,227, 13,239, 11,242,226,236,138,213, 61,171,215,162, +253,234, 89, 73,117,171, 67, 16,216, 49, 58,202,120,206,242,231,213,171,101, 72, 36, 18,227,130,196,175,129,136,254,253,251, 11, + 1, 96,202,148, 41, 74,149, 74, 21, 83,163,112, 88,180,210,170,204,221,191,175,171,151,119,252, 15,219, 86, 75, 59,180,241, 7, +101,160,145, 93,144, 15,190,192, 17,205,155, 11,241,193,248,129,130,222,221,157, 93, 87,174,216,113,170,128,197, 8,117,113,198, +185,198,108, 57, 58, 58,238, 62,120,240, 32, 14, 29, 58, 4, 0, 72, 79, 79,135,191,191,191,204, 92, 26,146,147,147,253,222,126, +251,237, 3, 37, 37, 37,109,205,157, 91, 63, 48,190, 88, 44, 70,207,158, 61, 17, 20, 20,132,227,199,143,247,169, 81,182,254, 18, + 52, 87,175,194, 54, 49, 17,184,242, 90,157,151,214,157, 59,251,222, 60,125,106,175,235,169,211,105, 88,187,118, 39,158, 60,169, + 22,218,252,252,252, 48,110,236,104,193,131, 7,215,131, 71,141, 26,119,253,143, 63,158,244,172, 33, 74,230,240,245,143, 63,254, +184,176, 85,171, 86, 24, 53,106,212,232,224,224, 96, 79,123,123,123,108,223,190, 29, 94, 94, 94,126,122,189,254,241,241,227,199, +189, 11, 10, 10, 48,115,230, 76, 20, 22, 22,206,109,204, 80,159,193,125, 22,139,135, 5,246,106,223,121, 18,108,237,189,240,227, +254,131,120,116,111,119, 47, 29,149,182, 88,200, 92,153,160,225,196,147, 21, 57,182,209, 45,187, 68,186,180, 13,126, 27,190,157, + 19, 92,181,204, 31, 79, 23, 15,108, 29,203,151,104,119, 47, 91, 43, 47,121,197,232,168, 56, 94,136,242,161,115,242,121,148, 0, +203,216, 90,130,101, 84,107, 57,188,221,187,119,111, 99,193, 61,123,246, 12, 58,157, 14,129,129,129,164, 94,175,239,107, 97,190, +182, 27, 52,104,208,159,167, 79,159,118,105,215,174,157,162,180,180,212,120,192,211,197,113,240,149, 35, 27,102,174,220,248,207, +128, 61, 28, 81,174, 72, 59,246,192,140,173,176, 30,225,157, 47,156, 57,178,215,150,168,204,133,200,177, 24, 96, 75,144,121,224, +103, 16, 54,206, 24,243,201, 28,126,223,254,253,154, 13,124,243,221, 11,143, 50,158,244, 7,112,199,218,175,183,194,138,255,105, + 85,139,251,111,187, 39, 35,209,138,138,138, 34, 26,186, 65,150, 99, 67, 61,220, 93,164, 27,214,236,186,195,163,244,122,153,163, +131, 94,224, 96,207, 18,118, 14, 60, 74,111,168,244,245,243, 21,177, 28, 27,218,136,253,250, 83, 60, 9,169, 84,122,228,196,137, + 19,238, 2,129, 0, 44,203,194,205,205, 13, 89, 89, 89, 40, 47, 47,135, 74,165,194,147,180, 52,180,106,225,131,101,209,243,189, +102,206,143, 62,162, 86,171,187,224,101, 55,226, 43,211, 70, 25,195,203,235, 70,215, 46,193,242, 74,151,191,230,183, 6,142, 89, + 58, 21, 53, 43, 39, 39, 7,182,182,182, 8, 9, 9,177,189,118,237,218, 31, 38, 72,214, 75, 54,157,156,252,236, 88,177,232,208, +214, 31,150, 72, 41, 67, 50, 82, 51, 75,209,190, 85, 47,120,184,180, 64,126,169, 30, 55,111,159, 64,114,210, 62,180,105,214, 2, +211, 63,233, 39,137, 93,253,235, 65, 33,221,170, 69,121,121,150,178, 33,155, 74,165,210,182,117,235,214,104,209,162,122,221, 51, +134, 97,144,154,154, 10,134, 97,140,251,117,183,187, 14, 95, 2,173,204,198,164,137, 19, 81, 82, 82, 98,219,144, 77, 1, 15,244, +156,143,199,241,165, 2, 64, 36,115,214, 87, 86, 86, 26,151,225,160, 40, 10,247,239,223, 71, 68, 68, 68,100, 92, 92,156, 57, 86, +100, 81,126, 82,192,119, 27,127,249,101,211,248,138, 10, 18, 0,126, 34, 8,150,226,184,239, 44,125,150,220,221, 5,135,207,158, +217,227,202, 35, 31,194,217,225, 91,220,190,157, 13,138,170, 78,111, 73, 73, 17,102,124,166,132, 80, 96,135,227,199,255,233, 18, + 24,216,243,112, 65, 1, 21,130,151,221,136, 13,165, 83,114,230,204, 25,204,152, 49, 3,169,169,169,222, 60, 30, 15,183,110,221, +130, 84, 42,197,154, 53,107,120,129,129,129,222, 50,153, 12,103,207,158, 69, 97, 97, 33, 97, 42,157,191,159,251,253,155,138, 39, +151, 23, 23, 16,103,135,252,184,255, 32, 62, 26, 59, 6,158, 92,230, 31, 14,109,136,111, 6, 13,235,241, 21,199,243,137,146,217, +133, 58,249,135, 12,131, 80,100,139,233, 95, 46, 71,122,242, 73, 39,181, 42,233, 51,130,201,245, 89,182, 54,110,214, 43,233,252, +117, 52, 51,101,223,181,206,231, 91,220,241, 77,188,255,241, 45,121,194,142,164, 23, 68,203,143, 79,144,140, 3, 80,189,124,202, +227,199,143,241,228,201, 19,240,249,124,104, 52, 26,208, 52,221, 96, 58,189,189,189,167,209, 52,253, 85, 77, 57,239,146, 72, 36, + 31,238,221,187,215,165, 46,209,118, 11, 29,209,221,197, 78,214,191,176,168,164,236,250,157,148, 71,115,166,141,234,115,245,102, +114, 46, 37,120, 39,167, 34,233,120, 69, 35,249, 41,145,138, 68,135,207, 30,253,167,173,225,233, 37,200, 2,251, 64, 96,235, 15, +198,144, 7,117, 89, 21, 84, 79,228,208,253,176, 25,111,124, 54, 27, 39,143,253,106, 27,220,161, 75,156,206, 96,240, 7,160,127, +141,119,179, 41,176,218,180,218,180,218,252,207,180,217, 40, 23,225, 56,174, 51, 0,143,154,221,146, 26, 94,224, 10,160, 24,213, +171,200,120,212,212, 29,162, 58,151,213,223,175,123,110,253,253,186,223, 75,106,190,187,215,108,239, 16, 4, 81,106, 38,233, 94, +168, 94,154,240, 84,205, 22,168,113, 37,154, 29,120, 76, 16,164,146, 97, 88,177,208,205, 93, 59,229,189,254, 29,126,187,112,247, +190,141,171, 61,127,112,159, 78,145,183, 31, 60,189, 65,144,132,129, 32, 72,139,198,125,240,120,188, 49, 27, 54,108,232, 96,111, +111, 15,150,101,225,224,224, 0,133, 66, 1,189, 94,143,138,138, 10,232, 84, 74, 80, 42, 37, 18,115,159,161, 71,100, 31,188, 59, +100, 80,224, 63,143,157, 24,195, 48,204, 1, 83,118,189, 67, 59, 25,149,172,229, 45, 93, 94, 72, 19,185,229, 70,210,245,109, 39, +127, 8,109,109, 49,112, 78,244, 95,121, 6, 18, 78,157, 58,117,102,228,200,145,111,206,155, 55,143,148,203,229,103,179,178,178, +122, 0, 72, 53, 75, 42,196,146,207, 63,253, 60,202,201,201,150, 67,220,249, 19,232,221,105, 44,108, 68, 60,148, 40, 41, 16, 4, +144,150,114, 4, 4,225,140,164,116, 57,122,189, 97,143, 65,131, 3,109,143,253,154, 54, 15, 47,198, 7,189, 82, 52,101,101,101, + 40, 42, 42,130,193, 96,128,193, 96,192,168,209,163,177,103,247,110, 84, 85, 85, 65,163,209, 64,175,215,131, 97, 24,144, 36,137, +243,241,113,200,125,154,134,238, 17, 17, 64, 35, 75, 47,237,190, 15, 1,128,155,143, 30, 61, 66, 90, 90, 26,158, 63,127, 14,137, + 68, 2, 79, 79, 79, 44, 95,190, 28, 58, 93,245, 26,101,163, 71,143,142, 4,240,224,175,190, 80, 79,128, 29, 89, 12,179,248,205, +163, 71,221,175, 29, 61,202,222, 60,121,242,185, 88,165,218,110,201,181, 66, 33, 70,173,254,238,147,246, 50,153, 12,207,115, 54, + 32, 32, 64,136,185,179, 93, 16,243,109, 49, 0, 96,230,140,230,232,218,197, 21,202,242, 95,225,234,190, 16,155, 54,205,106, 51, +121,242,186,137,106, 53,179,203,140,233,197, 39, 78,156,120,215,223,223,191, 89, 66, 66, 2, 33, 18,137, 32,149, 74, 33,149, 74, + 33,145, 72, 80, 84, 84,132,172,172, 44,110,245,234,213,121, 0, 22,155, 50,180,108,147,252, 6,128, 55,103, 15,193,153, 71,247, +118,247,106,198,123,154,248,238,244,158,207,146,110, 38,168,126, 59,127,109, 5,173,149,228,150, 63,191, 48,191,117,215, 4,215, +207,190,248, 26,155, 87, 47,197,163, 91, 87, 75, 61, 90, 40,183, 72, 9, 93,131,233,140,140, 92,198,247,242,112,166,167, 77,126, +215,241,164,199,245,105,167,249,132,162,160,248,222, 26,100, 37,104,196,109, 59, 77,104,231, 71,234, 47, 93,186, 36,237,221,187, + 55,180, 90,173, 81,153,220,187,119, 47, 75,211,244,229, 6,159, 77,138,250, 42, 47, 47,207, 75,163,209, 96,200,144, 33, 51,215, +172, 89, 35,171, 93,163,142, 97,152,151,148,172,111,214,239, 57,247,249, 87, 91, 46,159, 59,240,173,247, 55,209, 31,246, 25, 63, +125,229,101, 52,178,142, 36,159, 36, 63, 59,121,116,167,167,196,201, 0,169,243, 32,104, 11, 53,120,180,227, 35,168,149, 90,116, +253,230,107, 0, 34,232, 13, 36,182, 15, 27, 5,129,139, 55,150, 78,253,208,123,209,246, 31, 63, 97, 89,118,131,181, 95,111,133, + 21, 86,212,131, 7, 65, 16,241, 0, 16, 29, 29,189, 48, 38, 38, 38,133, 32,136,120,142,227,162,106, 4,148,120,142,227,162,106, +207,169, 33,103,175,236,215,158, 91,127,191,254,247, 5, 11, 22, 4,199,198,198,174,138,136,136, 56,112,253,250,245,167, 0,204, + 17,173,161, 53,196,234,149,165,119,200, 90, 6, 89,119,251,146,162,197,178, 87, 31, 63,125,166, 30, 52,160, 91,243,248, 43, 15, +238,124,240,193,208,254, 99,134,245, 30,156,149, 83,146,214,198,215,211, 53, 37,229,129, 61,203,178, 87, 45,201, 37,177, 88, 28, +213,175, 95, 63,126, 89, 89, 25,108,108,108,160, 80, 40,144,151,151, 7,138,162,160,173, 40,135,174,162, 28,218,242, 50, 80, 21, +101,120,114,247, 54, 66,219,248,137,107, 6,203,155, 68,173,234, 82, 95,169,170,171,108,137,236,236, 32,182,179, 3,209,116,183, +225, 59,142,142,142, 55,107, 27, 85,138,162, 62,155, 63,127,126, 49,203,178, 88,185,114,165,189,173,173,109, 28, 0,177, 57, 35, +118,110,188,168,136, 55, 66,200,135, 89, 73,232,217,113, 18,218,181,126, 11, 89,133, 26, 20,171, 40, 20,149, 83,232,218,251,123, +180,236,248, 53,124,222,136, 65, 90,118, 41,188,155,249,147,224,139, 77, 46,254,156,155,155,251,210,254,129,253,251,161, 86,171, +209,166, 77, 27,140, 29, 59, 22,243,231,207,199,216,177, 99,225,237,237,141,241,239,189,141,165, 75,151,162,160,160,192, 92, 82, +117,237,218,181,211,249,250,250,234,124,125,125,117, 20, 69,161,178,178, 18,229,229,229,245,243,123, 86, 83, 51,210,221,221,125, +129,167,167,103,146,187,187,123,138, 88, 44, 62,125,159, 32, 30,106,125,125, 61,122, 12, 31, 78, 4,189,247, 30, 47, 91, 42, 37, +174, 0,182,150,216,114,117, 22, 12,237,219,239, 77, 81,121,217, 78,163, 72,245,225, 7,110,248,243, 74, 48,174,253,209, 5, 51, + 62,107, 3,130,148,128, 32, 69, 80, 87, 93, 66,183,176, 8,161,163, 35, 97,238, 89, 26, 7,224,126,143, 30, 61,188,167, 79,159, + 78,136,197, 98,204,156, 57,147,154, 58,117,106,198,216,177, 99, 51, 46, 94,188,200,248,250,250,194,199,199,135,240,241,241,241, + 2,112,191,230, 26,147,176,111, 67,124,163,163,210,254,112,244,151, 61,101,224,218,189,210, 32, 30,181,108,173,188,228,155,173, + 79,215,102, 61, 82,251, 61,186,117,181, 36, 35,249, 36,155,117,231,247,226,252, 12,149,223, 55, 91,159,174, 93,184, 37,191,193, +151,250,202, 21,176, 71,226,175, 80,234, 42, 53,127,248,176,190,234,105, 83,198,180,115,182, 13,222,139,102,131, 58,182,108,209, +124,252,210, 85,155,168,169,159,124, 78,253,244,243, 78, 78,165, 82, 65,169, 84, 98,211,166, 77,244,201,147, 39,243, 24,134,249, +188,177, 62, 16, 0, 24, 12, 6, 76,155, 54, 77,102,111,111,143,220,220, 92,163, 34, 10, 0,114, 69,201,131,107,119,146, 31,206, +249,199,232,200, 42,157, 78,119,238,247,187,105, 65,254,190,205, 9,130,107,116, 34,138, 72, 32, 24,216,165, 91, 55, 30,199,149, +131,224,183,192,147,221,171,161, 44, 40,133,178,168, 20, 60,129, 12, 52,196, 48,176, 34, 56,134,134, 33,253, 78, 2,154,185,121, +240,197, 2,193, 96,107,123, 98,133, 21,255,155, 48,197, 69,234,146,165,216,216,216, 85,166,142,215,217,234,235,237, 27,137, 84, +125, 18, 86,247, 59, 0,196,198,198,174,226, 56, 46,234,250,245,235,251, 1,104, 44,188,133,143,235,108, 45,143,163,197,211,234, + 99,230,205, 95, 12, 39, 7,169, 67, 88, 39,127,207,227,103,175,220,189,122,253,110, 90, 75, 31, 87, 55,206,160,119,250,110,221, +230,230,132, 90, 19,107, 97, 34, 2, 93, 93, 93, 65, 81, 20, 30, 63,126,140,231,207,159,131,162, 40,208, 85, 85,208,149,151, 67, + 91, 86, 6,166, 74, 5, 33,195, 64,163, 40,130,139,141, 4,120, 49, 35,209,140,242, 70, 52, 72,180,106,183, 18,123,123,136,237, +236, 65, 10, 4,117,201, 95,116, 0, 0, 32, 0, 73, 68, 65, 84, 13,186, 21, 27, 65,231,176,176,176, 67,201,201,201,221, 6, 12, + 24,176, 2,213, 83,228,179,243,242,242,250, 47, 89,178, 68,231,225,225,129,105,211,166,181, 7, 48,201, 44,201, 20,233, 3,125, + 61,219,163,157,223, 36,180,244,233,135,242, 42, 3, 20, 74, 3,138,202, 41,108,255, 62, 2,135,127, 10,195,159,135,123, 33,249, +220, 64,148, 27, 60, 97,235,253, 14, 56, 70, 31,108,202,230,249,243,231,177,124,249,114,172, 88,177, 2, 43, 87,174,196,138, 21, + 43,144,151,151,135,144,144, 16,228,228,228,224,204,153, 51,144,203,229,112,117,117,197,237,219,183,177,126,253,122,252,249,231, +159,102,111,186,150,184, 90,112, 78,147,124,233, 52, 77, 79,150, 15, 31,222,161,208,217, 57,168, 83,167, 78,111,206,156, 57,211, +175, 71,143, 30,198,227,126,126,126, 45,164, 82,105, 1,170,103, 80,190, 97,202, 22, 11,116,114,115, 11,129, 94,247,176,166,140, + 5, 32, 8, 9,250, 13, 76, 67,143, 94,119, 65, 25,132, 32, 9, 49, 72, 82, 2,154, 46,129,147,147, 55, 56,142, 8, 49,147,196, + 37, 10,133,194,255,194,133, 11,100, 86, 86, 22, 36, 18, 9, 0, 60, 91,182,108,217,230,181,107,215,166,186,184,184, 48,241,241, +241, 56,118,236, 24,162,162,162,120, 83,167, 78,245,247,241,241,217,102,238,190,151,109,146,223,216,183,238,204,251, 2,131,211, + 27, 18,105,203, 86,168,178,125,231,211, 72, 87, 25, 0,156,205,204, 84,185,183, 80,198, 86,169,146,114, 28,155, 87,126,123, 54, +211,220,140,211,101,236,189,140,135, 55,247, 29, 61, 91, 81, 84, 88, 38,232,212, 33, 88, 19,179,252, 11, 97,203, 86,109,191, 91, + 58,255, 31,158,121, 74, 73,249,192,153,103, 30, 30, 57,123,187,114,194, 7, 31,209, 83, 62,158,174, 61,115,246,252, 81,150,101, + 59,160,145, 25,135, 44,203, 66, 46,151, 35, 37, 37, 5,153,153,153, 80, 40, 20, 40, 46, 46,134, 74,165, 50,186, 27,109, 84,202, + 83,155,127, 57,153, 40,147, 74,109,186,117,240,111,113, 43, 33,181, 72, 38,149,218,248,183,106,209, 14, 88,214, 96, 61,194, 48, + 76, 7,137,141, 20, 0,129,242,228,171,168, 44,171, 68,101,121, 37, 84,165,149,208, 81, 60,104,117, 36, 52,122, 18,190,145,131, + 80, 89,165, 69,101, 73, 5, 88,134,233,104,109,110,172,176,194, 10, 19,109,125,124,116,116,244, 66, 11,207,181,216,189, 89,159, +120, 69, 71, 71, 47, 36, 8, 34,126,193,130, 5,193,104,124, 66, 85, 93,236,104,224, 3,192,130,240, 14, 37, 37, 25,149,118, 68, +224,200,217, 95,126,117,102,255,207,223,187,235,116,234, 28, 23, 39, 91,198,214, 70,228, 58,101,218, 74,168, 42,203, 70, 84, 89, + 30,142, 0,101,101,101,120,250,244, 41,164, 82, 41,132, 2, 1, 24,141, 6,140,166, 10,154,178, 18,144,148, 14, 66,134,129,179, +141, 20,190,222,158,104,233,225,105,145,205,199,151,126, 51, 14,124,175,235, 46, 92, 29, 22, 8,145,204, 22, 34, 59, 91,124, 26, +255, 59, 0, 64, 40, 20, 2, 75, 86, 88, 36,154, 52,107,214,236,196,190,125,251,132, 10,133, 2,247,239,223, 79, 4, 80, 1,192, + 14, 0,155,150,150,118, 33, 57, 57, 57,202,223,223, 31, 0,218,152, 51,166, 44, 38, 25, 3,205, 33,183,224, 25,178,158, 39,192, +217,161, 53, 4, 54,237, 80, 84, 78, 65, 44,109, 13,131,238,133,247, 81,171,204,134,134,226, 89,116,239,122,189, 30, 52, 77,131, +166,105,232,245,122,124,252,241,199,184,118,253, 58, 14, 28,187,136,167, 79,210,209,190,149, 39, 38, 78,156,128,176,176, 48, 92, +191,126,221,164,173, 73,111,192,208,204, 22,252,117,111,146, 16,217,186,232,194,231,159,187,101,142,108, 17, 4,193,161, 17, 87, +100, 61,172,141,136,136,104,155, 94, 85,133,148,135, 15, 49, 96,217, 50, 0,192,233,211,167, 95,186,151, 57,115,230,136, 82, 83, + 83,167,220,189,123,119, 74,126,126,254, 58, 0, 13, 15, 54,231,128, 83,167,110,224, 31,255, 72,133, 66,161, 0, 0, 28,220,255, +130,151,102, 61,165, 48,100,104,181, 71,203,209,209, 17,235,214,133, 88,148,159, 12,195, 96,199,142, 29, 70,119, 33, 0,240,249, +252, 30,115,230,204, 25,217,208,249,109,219,182, 21,154,179, 57,123, 84, 51,201,159,137,220,103, 14,109, 91, 6,219,187,134,162, +196,144, 16,146,144, 39,159, 49,123, 84,179, 13,235,127,205,211, 74, 9,221, 46,130,201,245,225, 75,180,187, 45, 73, 99,230,217, +239,245, 37,190,147,119, 23, 40,148,139,166,127, 52,206,197,222,209,189,234,167,205, 49, 78, 36,143,228, 78,220,165,202,131,253, + 92, 28,223, 9,223, 88,249,143,217, 75, 18,244,116,238,116,228,158, 72,135,137, 16, 23, 12,195, 32, 63, 63, 31, 10,133, 2, 57, + 57, 57, 40, 46,174,118,191, 22, 23, 23,131,101,217,191, 82, 33, 66,147,147,131,236,163, 63,161,229,132, 9,232,186, 98, 57, 24, +150, 15,141,154,193,186,238,253, 81, 86,161,129,142, 37,224,221,185, 59, 62, 58,253, 7, 72,142, 1,182,111,177,182, 36, 86, 88, +241, 63, 10, 75,194, 59,212, 18,162,152,152,152,168,191,251,255,235,146,173,152,152,152,148,152,152,152,166,252, 87,125,151,161, +113,191,118,140,214,239,117, 6,160,189,210,104,170,138,211, 50, 83, 83,249,249, 85,154, 42, 27, 15,119, 55,157,141, 68,204, 86, + 40, 85,188,132, 7,137, 84, 85,193,147, 71, 77,184,143,180,228,228,228,144,252,252,124,228,100,103,131,214, 84,129,212,233,193, +105,213, 24,208,179, 59, 36, 0, 36, 36, 1, 33, 75,129,207, 19, 65, 85,169, 4,128, 52,179,141,163,193,240,138,178, 69, 16, 4, + 68,118,118, 16,201,100, 16,217,218,189,164,112, 89,162,216,136,197,226,125,113,113,113, 94,205,154, 53,195,242,229,203,209,188, +121,243, 0,111,111,111,181,131,131,131,212,195,195, 3, 65, 65, 65,232,222,189, 59,206,156, 57, 3, 88, 16, 83,202, 64, 75,146, + 30, 61, 67,143,226,210,235,248,227,247, 31,160,215,232,208, 41,242, 7, 80,252,150,112, 11,254, 26,236,227,189, 80, 23, 28,175, + 86, 15, 60,135,225,121,206, 51, 16, 60, 81,138,165,202, 83,237,247,196,196, 68,236, 63,126, 5, 94,190,129,200,201,120,136,135, +151, 47,224,154,155, 11,124, 3,131,140,110,160, 70,211,200,128,255,205,150,234, 48, 81,139, 63, 27, 39, 46, 45, 45, 21, 59, 59, + 59,235,106,243,206,203,203,235,175,144,173,113,243,230,205, 67,185, 64, 0, 12, 29, 10, 97,102, 38, 40,138, 66,120,120, 56,186, +118,237, 10, 0, 8, 15, 15, 7,159,207, 71,104,104, 40,188,189,189,177,101,203,150,113,141, 17, 45,146,192,125,154, 46, 9,240, +243,243, 51, 18,173,221,123, 20, 72,184, 59, 16, 4, 68,216,180,249,177,241,220, 22, 45, 90,160, 64,158, 9,130,224,146,205,164, +113,133,167,167,231, 18, 47, 47, 47,191,181,107,215,242, 36, 18, 9, 62,249,228,147,214,149,149,149, 45,107,164,100, 44, 88,176, + 0, 0,176,116,233, 82, 44, 91,182, 12, 58,157, 78,221,152,177,221,235, 58,120, 23,149,178, 83,184, 74,155, 17,125, 93, 91,118, +232, 55,120, 0, 90,251,247, 67,191,193, 57, 0,176,202,153,255,236,189,239, 22, 57, 30,117,180, 35,118,254,118,246,252,210,158, +145,253, 22,205,175,188,252,205,183, 59,202,205,142,121,172,200,222,165,122, 36, 26,179,254,251,109,123,214,127,181, 96,150, 36, + 71,161, 47,203, 43,227, 42,109,197,124,219, 54, 30,132,237,140, 47, 87, 60,205,207,207,156,139,220,179,102,103, 90,178, 44,139, +204,204, 76,227,152, 62,173, 86,139,170,170, 42,228,230,230, 26,159, 25,141,204,126,200,244, 15,134,117,172,210,104,212,183, 30, +100,228, 44,158, 57, 62,162, 74,163, 81,103,100,229,164, 3,155, 26,100, 99, 36, 73, 62, 80,171,212, 3,212,229, 90, 40,238, 63, + 66,243,254,190, 48,208, 4,244, 52, 3, 69,137, 10, 58, 26, 96, 72, 1,130,223,155, 8,134,224,163, 56, 63, 15, 36,143,151,136, +151, 7,237, 91, 97,133, 21,255, 59, 48,201, 69,106, 21,173,136,136,136, 3,117, 85,167,218,239, 0,116, 48, 61,148, 71, 81,151, + 76,213,186, 19, 27,251,159,122,118, 45,197, 43, 99,180,204,134,119,168,253, 79, 31, 7,165,247,234,165,227,155,179, 52,221,190, +168,184,144,230,243,197, 2, 31, 7,141,188, 52,199,242,127,215,233,116,241, 23, 46, 92, 24, 62,112,224, 64,113,198,131, 68,232, + 43, 42,160,175, 40,135,128,165,225, 44,237, 2,146,210,129,208,235,209, 44,128,133, 86, 37,197,149,107,201, 6,157, 78, 23,111, + 41,209, 34,121,188,151,199,101,217,218, 66,108,103, 15,177,173,109,125,215,162, 57, 82, 96, 51,104,208,160,254,225,225,225,224, + 56, 14, 59,118,236, 0, 69, 81, 34,138,162,160,215,235, 65, 81, 20,148, 74, 37,246,236,217,131,173, 91,183, 94, 3,240,139,217, +198,140,214, 95, 56,119,254, 82,216,135,227,163, 4,167,227,215,129,214, 51,208, 16,205, 81, 85,101, 64,165,222, 6,140,203, 4, +160,240, 20,120,124, 9, 34, 66, 91,227,248,175, 71, 40,208,186,139, 22,178,240,151, 84,161,220,156,103,120,254, 36, 29,182,202, + 2,184,217,219, 64,157,153,142, 78, 19, 39,189,150, 58,225,227,227, 3,150,101,209,183,111, 95,227,224,234,215, 37, 91, 37, 37, + 37, 56,121,242, 36,194,195,195, 17, 25, 25,137,188,188, 60,100,102,102,226,173,183,222, 50,158,147,152,152,136,132,132, 4,180, +105, 99, 90, 36, 44, 46, 53,156,126,158,123,127,244, 59,239,188, 35,188,121,243, 38, 56,142,131,191,191, 61,236,237,100, 32, 72, + 49, 2, 3,221, 1, 84,247, 1,250,244,233, 3,165, 50,147, 46, 43,227, 78,155,185,221,125, 0,142,233,245,250,199,189,123,247, +246,126,242,228, 9,102,207,158,205, 63,120,240, 96,173,148,140,232,232,151, 39, 83,104, 52,141,187,238,219,119, 8,248,162, 53, +237, 20, 41,145,182,108,101,239, 26,138,214,254,253, 0, 0, 3,163, 62, 68,235,182, 45,160, 44, 78,106,165,213, 60, 27, 33,228, +151, 57, 37,109,202, 75,149, 14, 13,249, 64, 91,244,123, 6,170, 93,167,102,139, 93,147,113,176, 48, 71, 48,225,208,177, 19,103, +166,189, 21,245,182,192,192,208,116,136,175,192, 49,238,232,169,162,188,236,156,141,200, 57,155,252, 66,255, 51,169,226, 49, 74, +165, 18, 50,153, 12,201,201,201,186,161, 67,135,138, 73,146,196,227,199,143,141, 68,203,221,213, 57,168, 71,215,144,128,111,214, +239, 57, 39, 19,139,197,131,251,116, 9, 76,205,200,126,206,113,196,179, 70,213, 86,131,225,252,131,251,137,125,221,188,219,242, + 50,127,191, 9,151, 94,111, 65,167, 35,161,209,179,208,209, 0,205, 19,194,235,141,110,112,108, 19, 8, 14,192,157,155,215, 12, + 58,131,225,156,181,173,177,194,138,255,105, 85,139, 51, 69,146,106,190,151, 2,120, 22, 19, 19, 83, 92, 71,109, 82, 0, 72, 4, +208,177,230, 60, 69,189,235, 20, 4, 65,220,225, 56,174,107, 29, 59,138, 58,132,171,238,119,125,189,115, 18,155, 64,178,234,110, + 95, 38, 90,141, 77,169, 4, 0, 87, 87, 87,247, 78,157,186,180,249,241,231, 67,224, 56, 14,143, 18,214,160,172,232, 33,150,172, +186,209,166, 89,179,102,145,121,121,121, 87, 44, 73, 1,195, 48, 7,119,238,220, 57,183, 91,231, 78,157, 90, 53,111,142,196,103, + 89, 16,114, 12,132, 12, 3,146,210,129,207,232,209, 60,132, 1, 73,216, 34, 63,191, 2,177,251, 14, 37,215, 68,137, 55,137,128, +183,222,198,242,231, 21, 32, 8, 2,107, 35, 66, 32,178,179,133, 80,102,139, 79, 79, 92, 50,146,171,248,229, 11, 32,178,181, 69, +155,110, 22, 5,132, 87, 95,190,124,249,238,131, 7, 15,186,134,132,132, 96,238,220,185,120,246,236, 25, 88,150, 69, 97, 97,161, + 86, 46,151,231, 41, 20,138,103, 0,142, 2,248, 17, 22, 68, 30, 23,234,180, 27,226, 15,239,158, 30,209, 51,210,245,157, 17, 91, +113,236,215, 57, 40,175, 80, 66, 77, 75, 81,165,165, 81,165,227,193,217,165, 3,186,133,134, 34, 63,175, 8, 41, 55,207, 85,242, +117,234, 53, 77,121, 64, 9,130, 64, 66, 66, 2,252,188,237,144,254,199, 21,184,218, 8,208,209,219, 19,222, 61,122, 26,227, 75, +153,130,128, 7,122,220,184,113,198,200,240,131, 6, 13,202,154, 48, 97,130,215,156, 57,115,240,243,207, 63,227,218,181,107,175, + 12,208,142,140,140,196,213,171, 87,191, 6,176,212,156,168,167,215,235, 17, 16, 16,128, 59,119,238,224,194,133, 11,232,215,175, + 31, 34, 35, 35,145,148,148,132,223,126,251, 13, 9, 9, 9, 32, 8, 2, 46, 46, 46, 48, 84,147,103, 67, 99,198, 40, 10,113,223, +126,183,115,225,250,245, 91,131,199,143, 31,143,195,135, 15,224,195, 15,218,131, 32,197, 32, 8, 49,222, 30,214, 30,203, 87,220, + 65,183,110,125,224,234, 42,192,250,117,199,159,106, 52,204, 30, 11,178,241,155,223,126,251,205, 91,171,213,162,188,188,156,179, +181,181, 37, 74, 74,170,103,180, 54,164,104,169,213,106, 73, 99,134, 30,220, 75, 91, 83,174,226,202,184,202,132, 17,165,116, 66, +135,126,131,115, 49, 48,234, 3,156,143,255, 5,151,206, 93,128, 51,255, 89, 22,100,170, 51,197, 89,197, 74,121,149,255,182,192, +206, 83,121,207,171,206,109,155,241,118, 58,207,203,139,141, 91,240,131,178,220, 20,209, 2, 64,148,166,238, 61,113,148,195,219, +221, 35,186,181, 13,105,225, 37, 42, 43, 46,226,126, 61,126, 38,153,202, 58,124,178, 14,193,226,204, 16,245,229,209,209,209, 95, +213,124,223,181,120,241,226,169,177,177,177,110, 5, 5, 5,198, 49, 90, 69,197,165,151,186, 15,157,193,148,148, 87,232,119,174, +255,114,148, 84, 34, 22, 45,142,221,249,187,129,135,155,141,217,165, 89,118,203,123,179,151,204,202,120,148,208,172,165, 84,132, +227, 95, 46, 69,226,111,151, 97, 32,133,248,199,133, 91,208, 81, 12,202,139, 75,112,113,202,103,176,245,112,194,214,223, 15, 23, +178, 44,251,131,181,169,177,194,138,255, 93, 52,198, 69, 8,130,104, 40,198, 94, 97, 3,191,221, 49,117, 93, 35,118,254, 14, 52, + 26, 21,222,162, 41,120,197,197,197, 69, 87,175,222,194,239,241,223,224, 74,252, 55, 72, 73, 72, 68,126,158, 30,121,133, 90,216, +219,219,223, 48,113,105,253,200,177,156, 90,173, 30,185,120,201, 87, 5, 18,169, 13,122,247,239, 15, 79, 55,119,216, 8, 5,224, +209, 44,120,132, 0,149, 10, 71,164, 39,169, 49,127,231,222,162, 74,181,122,100, 3,141,196,128,198, 72, 6, 65, 16, 16,219,219, + 65,100,107, 7,177,157,253, 75,110, 68,137,189, 61, 36,118,246,224,139, 68, 13, 13,134,127,197,102,101,101,229,187,163, 70,141, + 42,171,168,168,192,212,169, 83,113,229,202,149,132,115,231,206,217, 39, 37, 37, 73, 21, 10, 69, 91, 0,131, 0,108, 55, 65,178, + 94,178, 89, 86,150,169,226,104,221,152,152,175, 62,215,104,105, 23,140,158,116, 16, 50, 50, 23, 52,195,130, 3,224,237, 44, 66, +143, 1, 43, 80,164,239,142,131,219, 86,170, 89, 74, 59,190, 94, 12,173,151,108,114, 28,199,121,120,120,188,146, 7, 23, 46, 92, +192,232, 81,239, 98,240,136,225,112,107,229, 7,247, 1,111, 97,240,212,127, 96,219,182,109, 32, 73, 18,174,174,174,245, 27, 94, +163,205,221,247, 33,216,255, 0,196,254, 7, 32,118, 37,128, 15, 96,226,222,189,123,191,237,216,177,227,229,107,215,174,173, 1, + 48,166,238,127,213,193,178,122,106, 86, 67,101,180,104,214,172, 89,154,140,140, 12,200,100, 50,208, 52,141,107,215,174, 97,235, +214,173, 88,187,118, 45, 18, 18, 18,224,226,226,130, 54,109,218, 64,167,211,225,206,157, 59, 26, 0,139, 76,216,100, 21, 10,250, +221, 77,155, 98, 75,162,162,122, 97,231,206,205,240,244,236, 14, 1,223, 19,124,129, 27,100,182, 1,248,233,199,111,241,230,155, +157,112,226,248,161,210,226, 18,250, 93, 0,180, 5,207,146,246,214,173, 91,216,182,109, 27, 70,141, 26,149, 55,122,244,104,166, +162,162,194,168,104,113, 28, 7,142,227,176,172,102,140,153, 78,167, 19, 55,102,243,163,249,201,121, 95,174, 76, 89, 94, 88,144, + 23,126,229,242,141,113,151,206, 93,192,211,140, 75,184,116,238, 2,254,184,116, 61,186,176, 32, 47,188, 83, 88, 59,225,200,169, +211,191,216,125,228, 48,207,214,222, 11,187,143, 28,230,141,157,241,249,202, 46,131,251, 45, 50,247,204,215,148, 35,247,255,216, +187,238,184, 40,174,182,123,102,182, 87, 96,233, 44,160, 2, 10, 34,130, 64, 64,196, 22, 81, 19, 99,175, 88, 98,143, 45,177, 37, +198, 24, 53,154,216, 53,190, 38,198,150, 88, 98,111,177, 96, 84, 52,246,222, 21, 27, 42, 10,210,123,135,133, 93,182,206,204,247, + 7, 37,168,148, 93, 52,121,147,247,219,243,251,141,235, 14,187,103,239,189, 51,115,239,185,207,125,238,243,148,230,100,207, 89, +182,106, 93,169, 65,167, 38,255,179,102, 67, 70, 89,110,230, 55,213,238, 75,166,190,251,179,172,172,108,147, 90,173,150,171,213, +106,185, 70,163,249, 38, 41, 41,169,227,151, 95,126,153, 75, 81, 84,149,181, 52,247,233,177,155, 49,215,118, 44,179,183,149, 9, +219, 6,183,108,254,227,166, 67,151, 82, 82,179,247, 84,139,161, 85, 83, 57,213,165,101,234,129,253, 6,140, 80, 22, 21,106, 16, +250,249,108,208, 2, 9, 52, 20,160,103, 88, 48, 16,108, 60, 94,242, 35,132,214, 82,236, 77,140, 82, 21,235,117, 3,241,106, 12, +173,186,234,254, 54, 48,115,154, 57,205,156,255, 76,206,127, 51,156,240,106,174, 67,167, 87, 44, 90,245,109,169,116,118,118,238, +216,183, 79, 87,116,234, 53, 15, 12,195, 32, 38,106, 37, 10,115,159,195,217,145,143,248, 20, 69, 40,128,203, 38, 20, 38, 37, 41, + 53,181,205,244,111,230, 69,132,127,216,165,133,175,155, 27,191, 73,147,198, 16,219,219, 35, 47, 47, 23,215,110, 61,213, 47,221, +119, 48,186, 66,100, 25,181, 48, 73,211,116,185,147, 59,128, 46,211,191, 6,193, 98, 1, 21, 97, 28, 42, 7, 70,183,224,182, 32, +216,108, 80, 12, 13,141, 70, 99,204,110,185,180,151, 47, 95, 14, 28, 62,124,248,249,200,200, 72,178, 91,183,110, 1, 71,142, 28, +121,155,156,121, 80,230,196, 94, 4,208,107,233,156,137,191,181,233,220,207,194,179,101, 16, 55,168, 9, 11, 58, 61,129,140,244, +100, 68, 70,220,209, 61,189,125, 90,193, 24,212, 67, 84,121,177, 23,235,226,210,233,116, 41,205,154, 53,115,216,184,113, 99,149, + 51, 60, 69, 81,200,203,203,195,205,155, 55,225, 23, 28,130, 22, 99, 62, 65,110,110, 46,214,174, 93,139, 70,141, 26,161,119,239, +222, 40, 40, 40,128,193, 96, 48,118,193,151, 2,112,186,226,192,107, 34,139,168, 72, 1, 84,231,178,161,135,135, 7, 79,173, 86, + 7, 48, 12,195, 34, 8,226, 39,173, 86, 59,122,206,156, 57, 78,203,150, 45, 67,243,230,205,145,151,151, 7,177, 88, 12, 79, 79, + 79,228,230,230,226,206,157, 59,148, 74,165,218,136,242, 68,214,185,245,148, 47,238,206,157,196, 54,211,166,125, 22,241,253,138, +137,158,106, 77, 39,158,181,117,123, 48,140, 1,185,185, 73, 40, 81, 92,215, 45, 94,180,253,101,118,142,126, 0,128, 88, 35,235, +252,221,148, 41, 83, 0, 64, 0, 96, 94,124,124,252,131, 22, 45, 90,120,214,102,209, 50, 6,171, 15,165,171, 1,236, 27,216, 77, +254,133, 34,239,145,167, 53, 59, 41,177,141, 47,189,118,245,161,116,181,133, 92,185, 36, 47,233,242,139, 76,229,233,141, 59, 35, + 14,179, 70,245, 31, 72,185, 72, 98,103, 11,236,153, 67, 70, 80, 51,254,254,254,174, 4, 81,224,158,147,255,252,222,216,113, 19, + 7, 91,114,203, 78,250,187,228, 55, 37, 27, 5, 10,238,223,191,159, 8, 19,119,134, 86,224, 69,122,122,122,199, 57,115,230,156, +102, 24,230, 21,223,132,156,188,130, 11,161,189,166, 48, 69, 69,197, 15,114,159, 29, 51, 38,150,218,157, 59, 81,247,187,248,250, + 5, 30,254,126,217, 10,135, 78,211,191,100,191,184,120, 9,160,244, 72,190,124, 9, 20, 95, 75,255,120,227,108,118,177, 78,215, + 31,230,168,240,102,152,241,255,222,154, 85,151, 22,249,135,163, 39,106,113,134, 55,186, 50, 30,238,206,167,155,123, 54,249,176, +145,139, 29, 0, 32, 62, 49, 3,241,137,233,103,226, 19,210,187,213,163,120,107,219, 94, 89,149, 84,154,168, 8,225,192, 24,151, + 84,250, 21, 78, 27, 27,155,123,108, 54,219,197,148,214,160, 40, 42, 35, 47, 47, 47,208,200,114, 14,115,115,115, 91,145,156,156, + 28, 65,211,244, 23, 38,170,253, 26, 57, 43,147, 74,147,108, 94, 87,198,160,245, 3, 0,130,205, 51, 38,169,116,117, 78, 63,137, + 68,178,137,195,225, 52,170,188,142,149, 62, 88, 20, 69,177,116, 58,157,128,162, 40, 22, 0,130, 36, 73, 3,135,195, 81, 19, 4, + 97, 48, 24, 12, 41, 26,141,102, 34,254, 12, 56, 90, 87,221,235, 29,232, 43,132, 22,106,176,104,157, 3,128,216,216, 88, 47,153, + 76, 54,132, 32,136, 65, 12,195,120,151,148,148,104,230,207,159,127,255,224,193,131, 10, 55, 55,183,143,122,246,236, 73, 60,122, +244, 8,209,209,209, 76,126,126,254,161, 10, 43, 86,188,137,247, 18,201,231,179,134, 90, 91,147, 61, 25, 6,254, 96, 64, 16, 36, + 30, 23, 23,211, 39, 85, 42,106, 79,133, 96, 52,245,254,172,196,199, 77,154, 52,217,158,152,152,200,169,205,146, 90, 91,221, 95, +199,202,111, 90,206, 11,237,208, 97,224,205,171, 87,143,204, 90,250,100, 81,245,191, 77,237, 39, 27, 59,108,242,244,149,251, 54, +172,153,181,238,247,194,109,198,148, 51, 32, 32,192,131, 32,136, 33, 0,124, 25,134,105,198, 48,132,128, 32,152, 66,130, 32,158, + 0,120,164,213,106, 35,159, 62,125,154,246, 22,117,111,200, 12,183, 54,206,170,164,210,160,168, 86, 20,192, 24,153, 84,250,239, + 46,167,153,211,204,105,230,252,239,113,254,155, 49,161,134,115,198, 69,134,175, 68,124, 66,122,183,248,132,116, 52,107,214,140, +137,139,139, 51, 73,164,213, 54, 72, 83, 20,181, 95,165, 82,237,127, 27,146,252,252,252,160,191,184,241,246, 37, 38, 38,238,123, +151,132, 21, 66,106, 81,197,209, 80, 60, 46, 45, 45, 13, 49,246,195, 58,157,238,175,104, 27,162,194,154,181,176,182, 15,124,248, +225,135,201, 58,157,238, 28,128, 84,130, 32,172, 0, 20,232,116,186,211, 6,131, 33, 59, 46, 46, 46,232,199, 31,127,172,140,124, +191, 24,192,189, 6,150,131,214,104,168,189, 25, 25,212,222,191,160,142,123,181, 90,237, 12, 27, 27,155,166,106,181,154,167, 86, +171,185,213, 55, 31, 8,133,194,220,186, 28,226,171,195, 74, 74,236,224,178, 11,109,172,164,196,235, 66, 10,214,206, 56, 92,166, +140,110,110,237,140,195,198, 22,236,193,131, 7,241,254,254,254,187, 73,146,116, 99, 24,198, 1, 96, 44, 25, 6,185, 12,195,228, +177,217,236,244,167, 79,159,166,255,131, 58, 33,181,129,166, 87, 25,180,218, 63,253, 14,205,187, 11,205, 48,195,140,255, 29,212, +234,163,197, 54,149, 41, 46, 46,142, 48,183,167, 25,213,197, 86, 93,127, 76, 78, 78,214, 0,184, 81,113,188,142,123, 0,122,255, +211, 43,152,153,153, 25, 88,219,223,140, 21, 89, 64,185,207, 22, 16, 93, 99,116,246, 5,235, 10, 75,176, 46,226, 43, 83,203,246, +240,225,195, 20, 24,185,196,110,134, 25,102,152, 97,198, 95,134,183,183,104,153, 97,134, 25,102,152, 97,134, 25,102,152, 81, 35, + 54, 87, 19, 92,175, 88,183, 8,212,190,115,192,148,181,215,134,236, 62, 56,103,230, 52,115,154, 57,205,156,102, 78, 51,167,153, +243,255, 29,231,255, 42,222, 16, 89,127, 7,204, 91, 95,205,156,102, 78, 51,167,153,211,204,105,230, 52,115,254,127, 16, 89,175, + 31, 0,204, 75,135,102,152, 97,198,255, 99, 28, 60,120,208,168,164,162, 67,103,253,218, 75, 34,145,205, 47, 85, 20,175,216,191, +106,236,145,202,243,225,225,225,148,185, 21,205, 48,195, 12, 52,196, 25,222,221,221,197,135,164,232,118, 12, 67,178, 24,146,209, + 19,138,178,223,226, 11, 11, 95, 9, 59,224,234,234,106,197, 33,209,155, 96, 24, 49, 65,208, 20,205, 34,175, 39, 36,164, 61, 53, +161, 96, 60,153, 76, 54,133,203,229,118,213,106,181, 46, 36, 73,166,105, 52,154,115, 42,149,106, 61,222, 12, 92,248, 95,131,151, +151,215,176, 75,151, 46, 89,181,111,223, 94, 35, 20, 10, 13,101,101,101,236, 83,167, 78,241,187,119,239, 94,244,242,229,203, 6, +237, 72,148,203,229,157,127,253,245, 87,247,110,221,186,161, 89,179,102,202, 33, 67,134,112, 67, 67, 67,185,227,198,141, 75,200, +200,200,184, 96, 34,157, 15, 65, 16,187, 8,130, 96,209, 52, 61, 18,127,134,110,120,215, 32, 73,146,156, 72, 16, 68,127,134, 97, + 60, 8,130,136,103, 24,230, 8, 77,211,117, 5,110,173, 11, 3, 1,244, 32, 73, 50, 16, 0,104,154,190, 15,224, 36, 96,252,206, +187,191,147, 83, 36, 18, 5, 0,128, 74,165,122,240,174, 56, 9,130, 8, 0, 0,134, 97, 26,202, 57, 70, 40, 20,142, 7,128,178, +178,178, 45, 48, 34, 29,212,235, 96, 54,122, 51,129, 11, 99, 0, 0,247,191,243, 6, 0,152,242,158,152, 20, 67,152,242, 91, 53, +241,153,194, 81, 3,122, 12, 31, 62,124,217,158, 61,123,190, 3,112,244,175,184,241, 29, 29, 93,215,255,176,102,179,252,243, 41, +159,172, 64,121, 70,136,186, 31, 72,224, 3, 30,139,213, 71, 75, 81, 87,159, 2, 7, 1,176,173,173,173,135,241,120,188,142, 90, +173,214,137,205,102,103,106,181,218, 43,197,197,197,251, 80, 71, 6, 4,163,219,245, 25,100, 58, 21, 28, 9,250,207, 60,111, 12, + 9, 13, 87,132, 44,162, 5, 10,255, 1,221, 40, 9, 96,122, 69, 93,183,162,246,112, 30,117,117, 62,159,203,229,242,254, 10,133, + 66,197, 98,177, 24,148,239,122, 46,255,167,252,239, 4, 77,211, 57, 5, 5, 5, 35,235,227, 18, 55, 66,115,158,152,216, 69,233, + 81,102,208, 48,159, 42, 83, 17, 35,113, 69, 91, 6, 24,201, 0,110, 36,139,180,163,105, 58, 19,192, 5,210,128,227,165, 25,136, +251,135, 14,238,141, 43,218,181, 73,197,123, 14, 0, 7, 0,143, 0,124, 14,160,212,172,127,254, 54,188,238, 12,127, 2, 64,102, +149,208,170, 22,238,190, 83,175, 94,189, 46,187,187,187,248, 12,234, 55, 96,217,164,137,159, 18, 44, 22,137,232, 39, 79,216, 31, +143, 28,243,161, 76, 38,115,150,104, 52, 45, 64, 16,180, 74, 32,136, 86, 40,138,211, 15,238,219, 35,245,110,222,156,162, 40, 26, + 27, 55,253,210,253,208,239, 17,115,141, 20, 91, 94,142,142,142,187,102,207,158,237,216,167, 79, 31,150,163,163, 35,146,146,146, +172,246,239,223,223,124,221,186,117,131, 11, 11, 11, 71, 2,120,209,128,202,118,112,180, 38, 63,148, 10,137, 46, 40,161, 80,162, +199,249,172, 50,156, 1,112,181,161,173,167, 82,169,166,170, 84,170,144,224,224, 96,102,235,214,173,196,232,209,163, 25,130, 32, +136,178,178,178, 29, 0, 26, 36,180,196, 98,241,134,110,221,186,121,122,122,122,198,191,124,249,178,199,129, 3, 7, 78,142, 26, + 53,202, 67, 44, 22,199, 2,240, 50,145,110,123,126,126,190,127, 89, 89, 25, 92, 92, 92,182, 2,120,239, 47,184,137, 8, 22,139, +117,196,217,217,153, 89,185,114,229, 81,127,127,127,135,130,130, 2,195, 87, 95,125,213,245,214,173, 91,221, 41,138,234, 99,130, +216,146, 17, 4,177,201,193,193,193,118,197,138, 21,113, 65, 65, 65,143,248,124, 62, 47, 54, 54, 86, 52, 99,198,140, 47, 94,188, +120, 49,152, 97,152,137,128, 73, 3,132,140, 32,136, 77,114,185,220,118,217,178,101, 73,129,129,129,209, 92, 46,151, 27, 27, 27, + 43,254,250,235,175, 63,143,137,137,105, 16, 39, 73,146, 27, 67, 66, 66,100,223,125,247,221,179,230,205,155,223, 96,177, 88,188, +180,180, 52,114,193,130, 5, 83,206,158, 61, 27, 78,211,244,164,134,148,211,222,222, 94,182, 96,193,130,103,161,161,161,183,184, + 92, 46,247,249,243,231,228,236,217,179,167,196,197,197, 25, 93, 78,107,107,235, 48,130, 32, 54,103,101,101,177, 1,192,201,201, +169,181,133,133,197,186,234, 57, 45, 43, 67, 81,232,245,250, 18,181, 90, 61,188,160,160,160,198, 64,184,163,231,172,237, 13, 0, +235,116,149,239,203, 95,235,123, 15,108, 60,110, 76,165, 3, 28,203,227,226,253,160, 28,219, 15, 0,134, 85,164, 10,255, 65, 9, +176,217,108, 58,192,241,115,230, 65,150, 73, 33, 99,250,118,238,220,121,193,133, 11, 23,126,233,212,169,211,215,187,119,239,182, + 79, 77, 77,253,254,234,213,171,174, 67,135, 14, 29,125,254,252,249,229,121,121,121,135,222,213,205,207,227,242,249, 4, 73, 64, + 40, 16, 89, 24,243,121, 14, 73,246,186,209,183,239,248, 45,207,159, 7,174,139,137,113, 87, 58, 57,133, 76,155, 54,205, 97,192, +128, 1,164,171,171, 43,226,226,226,108,118,239,222,221, 98,203,150, 45,253,139,138,138,166, 3, 72,126, 27,145,165, 44,130,159, + 70,139, 64,134,129, 85,213, 3, 75,160,136,175,195,125,230, 25, 30,255, 3,196,214,183,219,183,111,255, 46, 46, 46, 14,203,151, + 47, 7,128,245, 38,126,127, 70,223,190,125,123, 70, 68, 68, 8, 15, 30, 60, 40, 12, 14, 14,134,163,163, 35, 42, 38, 83, 85,129, +169,221,221,221,141,107, 51, 26, 63,252,116,114,236,123,209, 5,127, 96,195,128,172,229, 66, 23, 24,218,246,245,236,223,107,116, + 32, 44,237, 68, 16, 72,216, 40,202, 87,248, 62,191,159,218,237,226,129,184,239,227,162,114, 87, 40, 83,240, 45,106,143,201,247, + 95,129,141,141,205,214,132,132,132, 48,177, 88,252,202,249,248,248,248, 0, 79, 79,207, 98, 0, 95,154, 42,220,236,236,236,246, +210, 52,173,201,207,207,255, 4, 0,164, 82,233, 30,177, 88, 44,203,204,204,156,251, 87, 77,100, 42,241,186, 22,249,151, 91,180, +170,252,181,106,202,117, 72,144, 20,221,110,210,196, 79,137, 33,195,134,102,197,197, 39,208,108, 14,111,216,169,211,167, 69, 62, + 62, 62,164,102,253,122, 24,114,115,161,255,226,139,182,231,206,157,211,135, 15, 27, 81,198, 97, 17,219, 61,220,221, 68,191,237, +219,239, 24,113,248, 80, 59, 0,245, 9, 45,158,163,163,227,174, 75,151, 46, 57,187,187,187,163,168,168, 8, 73, 73, 73, 80, 42, +149, 24, 60,120, 48,167, 93,187,118,206,131, 6, 13,218, 85, 92, 92,220,222, 4,203,150, 67, 51, 23,118,228,196, 49, 3,188,186, +127,216, 78,236,236,218, 20, 76,150, 26,169, 47, 99,130, 35, 47,221,154,182,253,240,201, 23,113,197, 76, 47,212,156, 27,169, 78, +228,229,229,205,234,223,191,255,225,176,176, 48, 59, 62,159, 15,185, 92, 78,244,233,211, 39, 39, 35, 35, 99, 97,131, 85, 75, 69, + 10, 27,146, 36,169,234,175, 53,164, 7, 50, 6, 46, 50,153, 12, 50,153, 12, 0,156,223,118,230,105,101,101,181, 94, 42,149, 14, + 82, 40, 20,101, 36, 73, 50, 4, 65, 48, 90,173, 86, 40,147,201, 30, 62,139,121, 33,215,104, 52,205, 86,253,180,101, 77,231, 14, +254, 22,103,207,158,197,128, 1, 3,152, 51,103,206, 76, 52, 54, 79, 29, 65, 16,155,250,247,239,175,154, 63,127,190, 58, 46, 62, +201,249,217,139,120, 66, 44,224,209,182,182,182,156, 59,119,238,176, 87,175, 94, 45, 88,176, 96,193, 38,134, 97, 6,153,208,158, +155,134, 14, 29,170,155, 57,115,102,230,243,184, 4,251,199,207,226, 24,137,128, 99,176,181,181, 97,221,186,117,139,110, 8, 39, + 73,146, 27,103,205,154,165,152, 56,113, 98, 97,126, 65,177, 99,161,162,148,225,115, 88,122, 71, 71, 71,246,209,163, 71, 53,123, +247,238, 37,199,143, 31,191,145,166,233,112, 19,218,119, 99,159, 62,125, 74,102,207,158, 93, 20, 27,159,232,248,248,233, 11,136, +248, 28,189,131,131, 61,235,238,221,187,186, 85,171, 86,145, 75,150, 44, 49,170,156, 98,177,120,231,129, 3, 7,216, 71,143,150, +247,125, 55,111,222, 36, 61, 60, 60, 68,213, 63, 83,166,214,128, 36,128,188,188, 60, 81,104,104,232, 78, 0,111, 4,247, 13, 92, + 24,131,209,115,128,169, 83,167,102,154,122,179, 4, 58, 77,171,247, 51,212, 47,222,204,106,213,216,126,108, 54,155, 30, 63,126, +124,214,235,127, 87,171,213, 4,128, 62,248,222,120,177,213,163, 71,143,111, 78,156, 56,209,116,247,238,221, 63,238,221,187, 87, + 11, 0, 2,129,192,118,255,254,253,203, 7, 15, 30,140,193,131, 7,207, 63,116,232,208, 59, 19, 90, 20, 67,233, 0,128, 47,224, +243, 99, 98, 98, 8,111,111,239, 58, 35,238,235,104,250,222,150,231,207,131, 62,243,246, 14, 46,160,233,102,220,238,221, 75,103, +204,152,145,167, 80, 40,144,148,148, 4,157, 78,135,209,163, 71,179, 58,117,234, 36, 31, 60,120,240,218,146,146,146,129, 0,116, + 70,220,147,171,156,157,157, 39, 20, 23, 23,151, 86, 90,117,218,143,164,216, 29, 3, 12,252, 86,205,244, 60, 46,203,192,237,253, + 5, 77,156, 89, 79, 40,189,221,113, 13, 0,184, 42,228,154, 56, 25,168, 17, 22, 46,112,167, 56, 88, 98,231, 34,236,156,155, 92, +182, 72,153, 82,167, 88, 26, 40, 22,139,251, 41,149,202, 67, 21,131,179, 87,175, 94,189,112,235,214, 45, 0,104, 87, 33,180, 58, +147, 36,249, 49, 77,211,191, 2,168, 43,149,219,180,190,125,251,126, 16, 17, 17, 33, 5,128, 67,135, 14, 65,175,215,195,195,195, + 3, 92, 46, 23, 60, 30, 15, 28, 14,167, 42, 59,136,145,112,178,179,179,133,173, 37, 7, 50,107,113,247,175,127,238,203,110,228, + 99,129, 28,234, 9, 10,152, 34, 24, 24, 13,184, 54, 98, 52,239,102,133,192, 15, 59,147,199, 55, 70,207, 61,190,225, 89,144,138, + 68,111, 36, 67,243, 79, 25,217, 73,146,228, 63,122,244, 8,114,185,252,149,243, 44, 22, 11, 0, 58, 54,128,114,126,124,124,124, +104, 84, 84, 20,194,194,194,230,251,249,249,125,116,249,242,101,199,252,252,124,132,133,133,173, 77, 75, 75, 59,250, 87,215,169, +186, 22,249, 95, 49,117,145,175, 41,201, 78,229,179, 96,146,197, 98,145, 72,136, 79,210,135,133,117, 25,149,146,146, 34, 9, 9, + 9, 33, 57, 28, 14,148, 23, 46, 64,125,247, 46, 36, 18, 9,250,247,239,207,185,114,229,138,133,133,196, 98, 92, 98, 66, 98, 9, +139, 69,130, 97,200,122,125, 30,100, 50,217,148,185,115,231, 58,122,122,122,194, 96, 48, 84, 69, 52, 55, 24, 12, 72, 77, 77,133, + 68, 34,193,200,145, 35,237, 69, 34,209, 20, 35,235,209,196,203,195,254,254,165,147,155,222,155, 49,169,135,216, 75,116, 22,226, +212,233,144, 28,250, 12, 45, 50, 78, 97,118,191, 16,241,153, 13,243, 3,155,202,173,239, 87, 51,177, 26, 13,141, 70,115, 45, 58, + 58,122,220,229,203,151,105, 0,184,120,241, 34,243,236,217,179,137,111, 51, 11,165,105, 26, 69, 69, 69,160,105,154, 85,241,190, +242,245,191,122, 63, 88, 88, 88,108,252,232,163,143,134, 38, 39, 39, 11,255,248,227, 15,155,148,148, 20,219,196,196, 68, 59, 47, + 47, 47,246,242,229,203, 79,168, 53, 58,150,158, 98,180, 6, 74, 95,146,249,228, 73,124, 97,118,246,253,109,219,182,149, 17, 4, +209,223,200,223, 24,232,228,228,100, 51,103,206, 28, 16, 28, 81,235,230, 45,252, 60, 89, 28,161, 37,201,225, 89,150,149,169,169, +132,132,132,212, 57,115,230,184,249,251,251,203, 81,190,188,102, 20,167, 92, 46,183,157, 57,115, 38,216,124,105, 64, 43,255,192, +166, 60,190, 88,202,226, 8,165, 33, 33, 33,157,226,227,227, 51,102,207,158,237, 20, 28, 28,108, 18,103,112,112,176,108,252,248, +241, 6,129, 80, 26,234,238,238,209,162, 85,203, 22, 61,189,188,188,250,177,217,108, 67,110,110,110,242,200,145, 35,157,122,247, +238,237, 96, 10,167,189,189,189,108,246,236,217, 6,215,198, 30,221,186,125,240, 97, 27,174, 80,106,201,230,137,173, 84, 42, 53, +245,252,249,243,228,121,243,230, 57, 5, 4, 4,216, 27,195,169, 82,169, 56,182,182,182,240,245,245,133,143,135, 7,138,139,139, + 17, 17, 17,129,237,219,183,227,215, 95,127,197,190,125,251, 16,212,254, 67, 72,165, 82,100,100,100, 64,161, 80,112,254,238, 27, +138,250,197,155, 89,167,157,208,231,211, 79, 63,205, 24, 63,126,124,150, 80, 40,164, 95, 63,172,173,173,169,225,195,135,103,143, +252,250,167, 62,149, 75,139,245, 88,178, 30,157, 60,121,242,229,238,221,187,225,227,227,131,110,221,186,241, 0, 96,202,148, 41, +188,193,131, 7,227,192,129, 3, 56,116,232,208, 83, 79, 79,207,235, 0,250, 26, 83,206,145, 35, 71,182, 15, 15, 15,191, 26, 30, + 30,254, 96,200,144, 33,155, 39, 78,156,248,202,200,149,153,145,118, 79,171,213,194, 63, 48, 88,180,120,235,237,225,245,241, 61, + 3,118,111,142,137,217,190,226,201,147,228,249, 62, 62, 86,141, 19, 19,173,119,172, 90,101, 91,153,164, 91,175,215, 35, 53, 53, + 21, 50,153, 12,195,135, 15,183,229,243,249, 35,141, 40,230,234,190,125,251,142, 73, 73, 73,145,108,217,178,197,233,193,131, 7, +242,204,204, 76,167,243,231, 78,219,125,245,229, 20,169,165,132,199,203,200,101, 8, 0, 72,204,128, 56, 38, 1,237, 25, 6, 86, +213,151, 19, 27, 4, 39, 8,133, 46, 88,215,180,189,213,139,153, 7, 2,134,204,142, 12,180,149, 57,241,231,212,241,141, 86, 43, + 87,174, 60,120,252,248,241, 97,237,219,183, 63, 12, 64, 88,195, 71,236,253,209, 0, 0, 32, 0, 73, 68, 65, 84,103, 4, 65, 65, + 65, 17, 7, 14, 28, 24,211,161, 67,135,107, 0,124,107,157, 69,186,184,244,255,253,247,223,109, 42,223,219,218,218, 66, 32, 16, +188, 33,178,184, 92, 46, 72,146, 52,185,122, 75,247, 15, 99, 91,183,208, 32,186,240, 36, 14,172,124,132,149,221,159,211,203,218, + 38,106,214,143,140,193,153, 3,143,144,131, 71,232,241, 89, 83, 12,155,231,223, 85, 68, 97,201, 63,105, 0,207,205,205,253,184, + 99,199,142, 7,123,244,232,161,137,138,138, 66,110,110, 46,156,157,171,230,218, 89, 13,160,180, 22,137, 68,112,117,117,133,167, +167,231,176, 43, 87,174, 56,234,245,122, 36, 38, 38, 34, 39, 39,231,254,223, 81,167,234, 90,228, 95,134,215, 29,225, 79,188, 33, +180, 42,114, 11, 93, 2, 0,134, 32,148,143,162,163, 57, 44, 30,111,196,158,189,123,249, 92, 46, 23,201,201,201,120,250,244, 41, + 84,231,207,163,236,198, 13,100,103,103,163,180,180, 20, 14, 14, 14,216,180,117,171, 88, 75, 49, 99,159,191,120,193, 98, 72,166, +186,191, 65,141, 91, 60,249,124,126,215, 1, 3, 6,212, 42,200, 50, 50, 50,208,163, 71, 15, 14,139,197,170,105, 87,195,235,156, +132,220,142, 56,126,254,240, 98, 39, 39,222, 83, 32,110, 6, 80,114, 31, 96, 52,128, 65, 11,164, 63, 6, 78, 44, 68,227,210, 24, +226,244,226, 81,142,206, 34,246,241, 26,148,114,125, 91, 81, 61,188,189,189,127, 29, 49, 98, 4, 9, 0,157, 59,119, 38,188,189, +189, 55, 3,240,168,227, 59,231,234, 25, 36,111, 21, 22, 22, 98,240,224,193, 54, 77,155, 54, 61, 55,120,240, 96,155,202,243, 13, +229,172,180, 38,251,248,248,228, 11, 4,130,125,128, 81, 29,108, 21,167,149,149,213,250, 30, 61,122, 12,218,187,119, 47, 23, 0, + 46, 93,186,132,227,199,143,227,201,147, 39,136,141,141,165, 3, 3, 3,237,126,250,245,224,198,245,191,236, 92,221,175,157,191, +188, 83,235,192, 22,146,210,194, 82, 7, 7,135,118, 12,195,120, 24, 89,206, 30, 11, 23, 46,124,250,236,101,178, 37,201,230,176, +185, 28, 54,223,194, 66,236, 32,147,138, 93,172, 69, 2,103, 62, 73, 72, 84, 42, 85,214,190,125,251,104, 0, 61,140,229, 92,188, +120,113,194,179,184,100, 43,130,100,179, 57,108, 14, 87, 34, 17, 89,117,239, 22, 22, 12, 0, 92, 48, 92,133, 66,145,189,125,251, +118,157, 41,156,223,125,247, 93,116, 65, 81,169,140,205,225,112,216,108, 86, 85, 91,138,133, 66, 59, 17,159,207,211,104, 52,233, +107,214,172, 41, 51,133,115,225,194,133, 79,159,191, 76,177, 38, 9,130, 69, 16, 36,219, 66, 42,182,177,177, 20,217,217, 73,132, +182, 34, 54,139,167, 80, 40,210,119,237,218,101, 20,167, 78,167,227,102,103,103,227,217,179,103,112, 13, 14,198,217,179,103,209, +168, 81, 35, 12, 30, 60, 24, 67,135, 14,133, 80, 40, 68,231, 80, 63,204,153, 51, 7, 47, 95,190,132, 78,167,227,215,196, 89,233, + 39,245, 58,228,114,121, 84,125, 55,207,107,223,125,165,156, 1,142, 96,214,105, 39,244,169, 46,176,106,227,183,182,182,166,106, +178,118,189,206,217,163, 71,143,111,206,159, 63,223,116,215,174, 93,125, 70,142, 28,121,109,215,174, 93,104,211,166, 13,158, 61, +123, 6, 55, 55, 55,236,216,177, 3, 67,135, 14,189,182,118,237,218, 62, 81, 81, 81,254,238,238,238,115,235,227, 28, 50,100,200, +228,128,128,128, 11, 89, 89, 89,161, 5, 5, 5,190, 17, 17, 17, 99,251,247,239,159, 48,108,216,176, 46, 85,130, 81,175,223,123, +226,216, 97,244,236, 51, 0,205, 91,250,110, 28, 61,119,183, 95, 61,207, 38,243, 4,216,188, 61, 51, 51,119,175, 90,173, 26,204, +225,136, 68,183,111, 91, 31,250,229, 23,219,234,153, 5,210,211,211,209,187,119,111, 14,151,203,237, 80, 79, 57, 87,246,235,215, +111,112, 68, 68,132,172,210,170,115,227,198, 13, 60,126,252, 24, 73, 73, 73, 40, 42, 42, 66,151,137,165,248,116,121, 57,247,167, +203, 25,124, 56,133, 17, 55,176, 15,169,130,176, 17, 28,109, 44,216,215,199,174,105, 62,101,194, 70, 31,182,196,154,131, 61, 95, +199, 34, 47, 81,115,168, 22, 78, 34, 52, 52,116,119,120,120, 56,161,213,106,161,213,106,181, 0,106,140,234,235,236,236, 44,104, +213,170, 21, 38, 78,156, 72, 90, 88, 88,172,173,173,156, 74,165, 82,115,242,228, 73,140, 28, 57, 18,211,167, 79, 71,179,102,205, + 32,147,201,192,225,112,176,115,247,111,182, 67,199, 78,242,122,175,125, 71,127,159,247,218,180, 42,209,176,130, 57, 66,217,248, + 90,172, 33, 53,214,189,212, 62, 10,209,137, 55,177,174, 79, 26,125,103,135,170,244,171,143,255, 19,243,252,114,246,147,185,225, +155,163,153,155,109,243,118,127,158,130,108,253, 51,116, 24,220, 24,238, 1,178, 47,196,174,240,110,104,123, 26, 9,147, 56,253, +252,252,218,223,185,115,135,223,177, 99, 71, 36, 39, 39,131,195,169,154, 79, 81,111, 83,206,133, 11, 23,242,213,106, 53, 30, 62, +124,136, 81,163, 70,165,235,116,186, 47,222,166,156,166, 88,180, 42,181,200,191, 12,155, 95, 59, 50,107,179,104, 45, 4, 0, 61, +141,227, 35, 70,141, 85, 69, 70, 70,138,120, 60, 30,146,147,147,145,153,153,137,157,219,183, 83,157,237,237, 75,186, 57, 59, 43, +118,110,223,206,104,181, 90, 48, 12, 3,111,111,111, 12, 26, 52, 72, 56,112,240,176, 28, 66, 81,246,155, 17,203, 60, 78,149,235, +235, 99,199,142,125,227,239, 95,125,245, 21, 44, 44, 44, 64, 16,132,163, 17,149, 11,159,182,176,159,139,204,221, 42,155,201,218, + 89, 0,150, 0, 96, 75, 1,182, 5, 32,176, 4,248, 82,128, 39,130, 38,234, 66, 1,201,116, 75, 26,208,225, 19,103, 0,166, 44, +245, 64, 46,151,207,191,112,225,130, 93, 84, 84, 20,163, 80, 40,144,153,153,201, 44, 91,182,204, 78, 46,151,207,111,232, 21,201, +200,200, 88,220,179,103,207,236, 81,163, 70, 89,158, 58,117,202,117,212,168, 81,150, 61,123,246,204,206,200,200, 88,252, 54, 87, +154,203,229,178,158, 60,121, 98,189,100,201,146,161, 0,238,181,108,217, 50,223,217,217,249, 30,202,157, 38,235,132, 84, 42,173, + 18, 89,149,214, 53, 54,155, 13, 14,135, 3,185, 92,174, 45, 40, 40,160, 58,188,231, 33,244,182, 36,245,114, 62, 87,104, 45, 20, +184, 72, 45, 44, 67,242,243,243, 31, 17, 4, 17,111,228, 18, 95, 64,235,214,173, 57, 20,195,161, 63, 29,209, 89, 62,101, 76,152, +253,207, 75,198, 55, 90,179,120,130,243,202, 5,227,188, 23,207, 26, 30, 70,210,180,218,205,205,205,177,210,161,221, 8,243,121, + 96, 80, 80, 16,155, 6, 7,207, 94, 36,101, 39,167,165,151,124,208, 41,180,202,114,233, 19, 16,216,205,206,206,174,163,183,183, +119, 16, 65, 16, 70,109, 73, 22, 10,133, 1,205,155, 55,103,147, 44, 14, 97, 35,147,186, 74, 37, 66,135,170, 37, 20, 43,171,182, +214,118,118,225, 36,195, 20, 59, 57, 57,217, 11,133,194, 0, 19,234,206,166,193,133,131,189,181,165,157,173,149,164, 91, 88,187, +102,161,109, 67,189,252, 66,218,132,182,124, 47,104, 32, 97, 48, 40, 60, 60, 60,236, 43,157,228,235,177,180, 10,246,238,221,139, + 37, 75,150,160, 85,227,198,112,118,118,134,189,189, 61,110,220,184,129, 59,119,238, 64, 38,147, 33, 39, 39, 7,171, 86,173,194, +145, 35, 71,160,211,233,164,166,222, 79,198,136,173,186, 96, 48, 24,200,215, 5, 86,109,252, 66,161,144,174,116,146,175, 13, 39, + 79,158,220, 93,105,201,250,252,243,207,219,255,244,211, 79,215, 98, 98, 98, 32,145, 72,112,231,206, 29,140, 29, 59,246,218,218, +181,107,219, 79,154, 52, 9,219,183,111, 71, 66, 66,194,214,186,248,134, 12, 25,178, 96,220,184,113,107, 46, 95,190, 76, 58, 56, + 56, 64, 38,147,161, 95,191,126,216,186,117, 43,219, 96, 48,108, 11, 15, 15,127, 16, 30, 30,254,128, 74, 61,243,205,193, 95,151, +221,136,126,244, 0,147,167,205,228,105, 13,250,217, 70, 84,159, 41,147, 72, 74, 12, 29, 59, 22, 28,208,235, 85, 67,184, 92,145, +229,131, 7,214,199,183,109,171, 18, 91,115,230,204,129,165,165, 37, 80,238,192,140, 58,172, 58, 19,142, 28, 57, 82,213, 31,218, +216,216,128,199,227,129,203,229,130,195,225,128,197, 98,225,220, 70, 49,126,153, 83,174, 47,126,153, 67,224,204,122, 66,249, 54, +215, 78,228, 12, 95,153, 3,239,193,103, 59, 90,250,251,118,177,193,141,253, 89, 88,214, 51, 42,237,206,129,220, 25,234, 28,252, + 80,203,215,222,251,234,171,175,124,114,114,114,112,247,238, 93,220,189,123,183, 54, 11,144,250,216,177, 99,223,151,150,150,194, +221,221, 29,125,251,246,237, 8, 32,184,150,231, 6, 65, 65, 65,232,221,187, 55,194,194,194,208,170, 85, 43,104,117, 6, 78,248, +136, 9,205,159, 36,228, 58, 47, 91,181, 76,116,225, 98, 4,121,237,218,101,214,238,195,103, 44, 67,195, 62, 92,195,149, 58,221, +130,208,198,201,152,122,170,168,124, 4, 56,117,199,230,243,211,200,117,151, 70, 73,118, 30, 95,231, 33,149, 74,137,251,119, 31, +232,119,110, 56,144,226, 43,238,155,115,107,127, 62, 84, 68, 22,186,140,113, 39,105, 96,208, 63,101,100, 23, 8, 4, 63, 93,190, +124,217, 81,167,211, 33, 58, 58, 26,211,167, 79, 87,191, 37,101,149, 1,196,213,213, 21,151, 46, 93,194,240,225,195,213,217,217, +217, 55,255,174, 58, 85,215, 34,255, 43, 96, 87, 83,144, 85, 72, 77, 77, 45,146,201,100,206,205,155, 55, 39,181, 90,109,249,146, +196,161, 67,212,175,219,182,157, 80,171,213,211, 0,112,215,255,252,243, 70,103, 23,151,176, 17, 35, 71, 18,122,189, 30, 61,123, +246,228, 69, 70, 70,218,196,231,228,148, 24, 49,224,188,242,123,163, 71,143,198, 79, 63,253, 4, 0,152, 58,117,106,149,105,157, + 48,194, 97, 73, 98,137, 30,221,122, 5, 89,164,138,215, 89,232,218,234, 75,155,188,148,222, 18,151, 10,131, 64,242,216, 16,176, + 64,235,244,134,216,156,254,247, 94,198,182,240, 17, 22,228,187,117,109,249, 62,126, 61,187,171,135,138, 82, 31, 48,186,195, 17, +137, 90, 75, 36, 18,220,187,119,175, 32, 40, 40,168,136, 97, 24,203,197,139, 23,219,138, 68,162,214,111,209,246,137, 47, 94,188, +232,216,174, 93,187, 41, 36, 73,118,165,105,250, 92,118,118,246,122, 0,137, 70,126,255, 83, 0,223, 1,168,154, 89,106,181, 90, +144, 36, 9,134, 97, 48,100,200, 16,204,153, 51,199,231,241,227,199,184,112,225,130,117,215,174, 93,111, 1, 40, 2,240, 9,128, + 26,173,102, 10,133,162,236,206,157, 59,194, 11, 23, 46,128,166,105, 88, 91, 91,195,194,194, 2,124, 62, 31,253,250,245,147,204, +158, 61,187,203,233,211,167,115, 20, 77, 26,177, 4,153,233, 74,190, 68, 34,133,163,115,135, 73,195, 62,142, 97, 24,230,136, 9, +157, 3, 79,200, 54,168, 9, 74, 67,174,252,118, 45, 41,226,114, 9, 1,151, 13, 62,173,194, 55,223, 47, 37,184, 12,197,134,137, +235,243, 92, 46,151, 43,229, 67,203,226,177,244, 34, 2,204,187,120, 56, 88, 44, 22, 79,192,173,221, 31,131, 67,146, 36, 73,146, + 92, 0, 70, 39,237,227,243,249, 92, 41,159,169,149, 83,200, 34, 88, 4, 65,240, 80,203, 78,180, 0, 71, 48,149, 86, 36,222,180, +120, 77,117, 81,220,161, 67, 7,156,184,112, 15,135,142,159, 67, 94,242, 35,204,251,250,115, 4, 7, 7, 35, 50, 50,178,206, 50, + 85,250,104,213,102, 93,150,203,229, 81, 25, 25, 25,239,213,246,221,186,150, 12,107,177, 82,189,201,255,173, 37, 2, 23,198,160, + 30, 31,173,190, 29, 58,116,152,188,119,239, 94,237, 71, 31,125,196, 27, 50,100, 8,124,125,125,219,143, 25, 51, 6, 0,208,181, +107, 87,252,244,211, 79,237,199,140, 25,131,223,126,251, 13, 17, 17, 17,154, 78,157, 58,125,125,233,210,165,116,148,239,232,124, + 3, 52, 77,247,222,180,105,211,235,150, 66, 24, 12, 6,232,245,122, 39,131,193,224, 84,209, 23, 97,205,154,181,121,103, 78, 71, +226,235,185, 11, 97,111,231, 24, 96,228, 61, 68,140,158, 57, 51,111,199,170, 85, 88,245,219,111,152,233,230, 38,218,245,244, 41, +206,168,213, 56,112,225, 66, 94,197,239,212,235,155,169, 84, 42,203, 78,158, 60,105,113,224,192, 1, 88, 89, 89,161, 89,179,102, +176,182,182, 6,135,195, 1,201, 18,130,197,149,161,121,203,214, 0,238, 0, 0,220,228, 80,122,187,227, 26, 65,160,136, 33, 77, +247, 41,226, 55, 66, 19, 91, 23,193,229,201,219,125,173, 44,236,185, 56,181, 62, 5,167,215,165, 30, 81,231,225, 71, 24,240, 28, +181,251,124, 5,185,187,187, 35, 39, 39, 7, 39, 79,158, 84, 2,181, 10, 50,208, 52,253,253,207, 63,255,252,213,220,185,115,249, +222,222,222, 0, 16, 0,224,110, 77,159, 21,139,197,112,118,118,174, 18,150, 67, 70, 77,242,152, 56, 99,146,176,255,135, 97, 96, +179,109, 81,164,212, 35,191, 68, 15,153,173, 4, 95,207, 8, 23,156, 11,114, 14,222,180,118,207,177,178, 50, 4, 3,111,246, 7, + 4,129,187,183, 31, 93,243, 19,120, 3, 4, 9,164,146, 23, 65,128, 64, 41,161, 7,193, 98, 49, 20, 69, 33, 37, 37, 5, 12,195, + 96,120,255,177,169, 19,150, 69,216,183, 31,174,128,107,115, 57, 8, 6,239,255, 83,132,128,141,141, 77, 64,126,126, 62, 18, 19, + 19, 49,106,212,168,244,188,188,188,179, 74,165,114,108, 70, 70, 6, 0, 20, 52,128,178, 74,204, 7, 4, 4,160,117,235,214, 24, + 60,120,176, 64,165, 82,133,123,120,120, 56,231,230,230,182,253, 43,235,243,186, 22,249,159, 18, 90, 53, 62,104,122,125,115,205, +198,141, 80,158, 59, 7,222,153, 51, 56, 32,151,151,170,213,234, 47, 1,164, 86, 60,248,159,111,223,177,227,122,159,155, 55, 45, +180, 49, 49,240,120,252, 24, 28, 43,171, 0, 83, 11,176,109,219, 54, 40, 20, 10, 20, 23, 23, 3, 0,214,173, 91, 7,133, 66, 1, +131,145, 9,103,217, 92,180,119,180,119, 67, 22, 98, 65,179, 73, 73, 82,115, 85, 27,137, 90,154,225,156,226,160, 44, 38,157, 17, +147, 28, 34, 46,203,215,182, 33, 88, 90,168,243, 84,112,110,215, 12,108,176,219,155, 82,198,202,117,127, 54,155, 93,240,226,197, +139,222, 94, 94, 94,199, 1,216, 54,196, 31,224, 53,196,101,103,103, 79,107,200, 23, 89, 44,214,119, 9, 9, 9,246, 91,183,110, +157,178,120,241, 98,166,186,208,170,252, 63,155,205, 6,195, 48,176,180,180, 4,135,195,113,184,113,227,134, 67, 72, 72,200, 6, +154,166, 3,106,169, 39,227,235,235,139,132,132, 4,176,217,108, 88, 90, 90,130, 54,232,176,112,198, 36, 80, 44, 62,123,214,172, + 89, 1, 3, 6, 12,136,222,186,117,171,222, 34,180, 93,219,252,252,252, 39,147,135,143,136, 62,122,244,168,182, 34,196, 67,253, + 83,124,134,121, 16, 27, 27,203,114,145, 59,176, 24,131,138, 22,115, 1,193,163, 53, 12, 79,226, 8, 1,155,197,112, 9, 18,124, +129,208, 50, 49, 45, 45,159,166,233,103,198,112,210, 52,125, 63, 33, 33, 65,232, 96,111,195, 86,149,105, 75,133, 28,134,151,116, +255, 94,124,147,192, 32, 15, 0, 80,223,191,115,137,223,188,133, 48, 41, 59, 87,236,230,230,102, 20,103, 89, 89,217,131,244,244, +116,150,131,131, 3, 59, 57, 53,237,152,149, 68,108,103, 97,101,213, 6, 0,116, 37,197,119, 72,141, 38,151,197, 97, 59,228,230, +231, 23,148,149,149, 37, 24, 91,247,151, 47, 95,178,157,156,236, 89,167,206,156, 63,238, 32,226,219, 75,121,108, 11, 62, 65, 16, + 34, 22,161,224, 26,232, 60,129, 72,100,159,152,150, 86,192, 48, 76,173, 22,194, 21, 69, 35,250,151, 95,175,133,191, 85,227,198, +163, 71,143,240,199,181,103, 16, 51, 90, 16,234, 98,156,217,190, 5,195,103,205,125,107,191,191,250,196, 86,131,172, 89,155, 90, + 68,189,198,143,204,122, 28,225,135, 15, 31,190,112,247,238,221, 85, 14, 40,207,158, 61, 67,231,206,157, 43,151, 57,208,173, 91, + 55,132,132,132,224,217,179,103,240,244,244,196,133, 11, 23,248, 44, 22,139, 63, 98,196,136,101,123,246,236, 57, 89,175,221,127, +243,102,140, 29, 59,182, 38,199,234,151, 0,212,132,204,187,116,206,138,157,182, 5,249,121,200,201,205,122, 96,108, 59, 16, 4, +129,209, 51,103,230,109,210,106,177,247,246,109,140, 20,139, 69, 59,226,226,208, 51, 36, 4,126,157, 59,231, 25,211,215, 85, 90, +117,212,106, 53, 56, 28, 14, 44, 44, 44, 96, 99, 99, 3, 46,151, 11, 22, 71, 14, 54,207, 31, 36,151,139,192, 14,254, 88,245,165, + 88, 53,170, 59,214, 18, 4,138,248, 60,220,231,138,106,245,213, 33,196,141,208,143, 97,160, 80,165,226, 98,165, 32,177,108, 12, + 75,142,148,115,102,220, 6,111, 43, 11,123, 46,254, 88,155,140, 51, 27,210, 14,171,179, 48,175,162, 45,232, 58, 38, 18,126, 86, + 86, 86, 72, 77, 77, 69, 74, 74,202, 83,212,237,224,175,122,246,236, 89, 60,159,207,247,177,179,179, 3, 0,247,218, 38,230, 52, + 77, 87,249, 97,237,218,123,208, 54,160,163,135,224,131,246, 62,216,121,124, 41, 62, 11, 95, 11, 14,139, 0, 69,233,240,227, 79, +189, 64,105, 74, 17,222,103, 2,241,126, 87, 79,255,115,199,181,227,244,101,133, 91,222,152, 8,176,177,228, 63, 67,111, 88,241, + 37,164, 31,104,194,202,214,214, 94,204,229,114, 97, 99,225,164,157, 59,241,139, 76,134, 97,170,158, 27, 14,139,171, 39, 75,172, +203,242,179, 74,133, 86,156, 50,128, 33,155, 52, 44,154,205,187, 71, 90, 90,218,180,142, 29, 59, 46, 43, 41, 41, 41, 84, 42,149, +195, 1,192,221,221,189, 49, 73,146,124, 0,117,173,142, 52, 70,205, 97, 33,184,143, 31, 63,134, 84, 42, 69,122,122,122,117,227, + 11,104,154,254,199,108, 2,248,135, 34, 16,192,125, 0, 78, 0,122,162, 90,120, 7,178,194, 84,247,126,100,100, 36, 19, 25, 25, +249,126,213,224,197, 48,180,161,160, 0,140,166,188,109, 57, 28, 14, 3,160,250,142, 38,145,149,149, 21,193,113,113, 1,193, 47, +119,253, 96,222,225,214, 87,189,222,184,208, 50, 52, 5, 22, 8, 29,152,106,147, 22,165,128,192, 82,219, 46,152,198,155,143, 44, +158, 85,245,145, 14, 48, 48,160, 64,179, 76, 44, 14,163, 84, 42, 97, 48, 24,100, 77,155, 54, 61, 97, 48, 24,100, 21,131, 27,243, +223,186,162, 20, 69,197,179, 88, 44, 76,153, 50, 5,149,214, 31,173, 86,139,172,172, 44,104, 52, 26,104,181, 90, 36, 36, 36,160, +184,184, 24, 90,173, 22, 79,158, 60,129,187,187, 59, 88, 44,150, 83, 29,157, 57,195, 48, 12, 92, 93, 93,209,164, 73, 19,176, 8, + 6,191,174, 92,128,111,166, 79,194, 80,119, 26,219,214,255,136, 78,157, 58,181,112,115,115, 11,101,179,217,148,163,163, 35, 55, + 34, 34,226, 24, 69, 81,253, 96,124,207,115,114,206,156, 57, 77, 90,182,108,105,111,101, 33,213,243,121, 44,240,244, 74,134,175, +201,103,216,170, 60,184,186, 54, 54, 64, 40,242, 28, 57,114, 36, 85,155, 21,162, 38,206, 47,191,252,210,201,219,219,219, 82,102, + 37, 85,242, 56,172, 28, 46,152,188,226, 71,119,111, 1, 0,207,206, 94, 13,129,200,103,212,168, 81, 6, 83, 56,231,207,159,239, +110,103,103,103, 69,130, 41,161,116,186, 63,215,219, 53,218,124,130,195, 41, 3,151, 23, 52,117,234, 84,194, 20,206,175,190,250, +202,205,199,199,199,202,202, 66, 92,202,230,176, 50,185, 52,157, 41, 0,157,197,209,234, 10, 5,118,182, 42,136, 36,129, 35, 71, +142,172,149,179,210,154, 53,123,246,236,212,215,132, 55, 10, 10, 10,160,206,138, 6, 55, 61, 6,254, 18, 14,130,237,100,224,243, +249, 85, 91,223,107,187, 93,107,243,209,170, 73,108, 25,251,221,160, 69,117, 44, 1,110,106, 17,245,122,220,172,140,140, 12, 56, + 57, 57,213,249, 60,237,217,179,103,110, 88, 88, 88, 78,183,110,221,180, 39, 78,156, 0, 65, 16,184,112,225, 2,210,211,211,209, +173, 91, 55, 48, 12, 83,185,171, 13, 15, 30, 60, 64,215,174, 93,181, 29, 59,118, 76,175,136,175, 85, 47,198,142, 29, 11,189, 94, +143,210,210, 82, 20, 20, 20, 32, 50, 50, 18,254,254,254,140, 72, 36, 26,192,114,253,112,105,248,184,185,109,125, 91, 5, 96,195, +218, 85, 90, 30,155,179,194,148,231,149, 32, 8,140,250,242,203,188,226,192,192,130, 93, 74,165,106,180,133,133,168,105,106,170, +245,189,211,167,109,117, 58,157, 81, 28,149, 86, 29, 23, 23,151, 42,145,197,229,114,193,230,217,129, 37,246, 3,207,166, 27, 68, +142, 3,112,241, 62, 95, 99, 41,198, 17,169, 4,167,196, 86,181,135,118, 16,185, 98,105,219, 33, 78, 17,237,134, 58,157, 23, 53, +194,214,138,241,128,100,216, 68,196,152, 31,189,154,218, 53, 17,226,230,193, 44,156,217,144,246,187, 58, 11, 11, 0,196,213,247, +156,235,116, 58, 53, 69, 81, 32, 73, 18,108, 54,187,186, 79,224,245,223,127,255, 29,247,238,221, 3,170,133,237, 41, 41, 41,161, + 88, 44, 22, 4, 2, 1, 0, 72,234,232,239,192,225,112,192,225,112,112,233,214, 21,155,161, 3,123, 17, 55, 30,158, 69, 59,255, + 97,200, 47,213, 33,187, 88,135, 34, 21,208, 50,120, 30,124,187, 30,193,163,132, 18, 4,180,242,101,177,120,226, 81, 53,241,169, + 19,145,170, 76,193,160,252,167,116, 51,109,154,240,143,155, 71,159, 61,189,114,232,209,147,253, 63, 31,143,107, 27,220, 81, 89, + 97, 76, 64,105,105, 41, 67, 16, 4,243,197,248,185,241,187,198, 22, 82,107,135, 63,162,217, 26,193,203,191,177,171,111,108,103, +103,119,195,198,198,230, 66,133, 56,106, 44,149, 74,175, 59, 57, 57,197,160,124,163,199,209,204,204, 76,111,165, 82,217, 14,229, +155,179,146,243,243,243, 59, 87, 88,158,146,235,176,132,109, 85, 40, 20,159, 83, 20,213,167,226,232, 78, 81, 84, 64,108,108,172, + 79, 64, 64,192, 83, 15, 15,143, 7, 30, 30, 30,127,120,120,120, 28,243,240,240, 56, 22, 22, 22,246, 83,101,184,135,191,120,217, +240, 13, 45,242, 47, 19, 90,168, 16, 89,155, 43, 94, 81, 37,180, 0, 92,122,221, 1,205,192,231, 63, 49, 76,158, 12,171, 99,199, +192,137,141,197,152, 81,163, 44, 68, 34,209, 90,148,199,104,106, 39,145, 72, 54, 44, 88,176, 64,106,187,124, 57,228, 87,174, 32, + 41, 50, 18,122, 14,231,110, 67, 74, 87, 86, 86, 6, 54,155, 93,101,137, 17,139,197,160, 40, 10, 53,153,124,223,120, 0, 13,184, +153,158, 29, 3, 30,154,128, 6, 83,122, 74,209,241,246,176,248,121,246,145, 10,119,207, 56, 37,215,115,145, 93, 27,251,181,141, +219,223, 86, 18,236, 82,158,149, 0, 41, 41,169,160, 64,155,180,222,172, 86,171,139,149, 74, 37, 2, 2, 2,108,238,221,187,215, +212,223,223,223,186,226,252,157,183,188, 48,161,114,185,252,160,179,179,115,162, 92, 46, 63, 8, 32,212,132,239,110,189,122,245, + 42, 88, 44, 22, 22, 44, 88,128,146,146, 18,232,116, 58,228,231,231, 35, 37, 37, 5, 90,173, 22,105,105,105,120,254,252, 57,180, + 90, 45,146,146,146,160,209,212, 63, 33,161,105, 26, 22, 22, 22, 80,151,149,226,151,165,223, 96,254,236, 25, 40,126, 25,133,180, +140,108, 88, 89,138, 49,109,218, 52,150, 76, 38,163,105,154,110, 66, 81, 84, 87,154,166, 55, 26,115,157,170,221,111,215, 92, 93, + 93,125, 87,174, 92,233,243,205,210,141, 92, 11,118, 41,195,151, 10,104,158,148,207,240, 90,180,193,216,121,107,185,107, 86,255, +240,226,230,205,155,233, 48, 46,120, 39, 9,224, 90, 96, 96,160, 87,122,122,186,191,183,183,119,115,219,198,110,124,190,147,115, + 17,215,169,145,130,209,168,111, 19,206,141, 58,108,220,184, 49,250,250,245,235, 25,166,112,138,197,226, 22, 59,119,238,244,117, +112,112,240,229, 8,133, 2, 85,113,241, 1,131, 74,121,144,101, 37, 19,144, 22, 86,221,143, 28, 57, 18,117,248,240,225, 44, 83, + 56, 61, 61, 61,189,151, 46, 93,218,210,207,207,175,165,163,123, 83,190,208,217, 53, 95,224,210, 56, 95,232,231,207,135, 75,147, +143, 54,108,216,240,224,230,205,155, 70,113,178, 88, 44, 3, 73,146,224,112, 56, 16,137, 68, 56,117,234, 20, 38,143, 27, 6, 87, +103, 27, 52,247,246, 70,151,207, 62,199,225,195,135,171,124,120, 88, 44, 86,173, 35,250,142,229,211,142, 7, 58, 17, 81,216,212, + 34, 10,155, 90, 68, 5, 58, 17, 81,181,138,173,138,191,215,244, 25,163,122,163, 90,150, 27,141, 16, 91, 39, 47, 93,186,244,253, +232,209,163,121, 61,122,244,192,237,219,183, 49,118,236,216,107, 17, 17, 17, 0,128,219,183,111,227,139, 47,190,184,118,254,252, +121, 76,154, 52, 9,157, 59,119,230, 93,189,122,117, 3,140,136,253, 99, 48, 24,176,109,219, 54, 24, 12, 6, 72, 36, 18, 88, 91, + 91,163, 87,175, 94,136,142,142,158,180,125,251,246, 24, 22,135,243,113,207, 62, 3,113,226, 88, 4,158, 63,137,158,180, 99,217, + 8,147,131, 2,147, 36,137, 30,163, 70,229,229,181,108, 89,176, 67,161, 80,125, 34,147,137,188,179,178,172, 47, 30, 60,104,107, +132, 80, 35, 40,138,170, 18, 87,149,162,163,242, 96,243,236,192, 22,251,130, 45, 13,198,163, 56,174,158, 27,130,251,188, 96, 60, +171, 43,126, 22,135, 71,142, 29,240,141, 59, 6,124,227,142,190,179,220,198,136, 26,225, 87,113, 35,124,218, 99,122,147, 48,143, + 96, 75, 40,114,116,136,252, 49, 41, 89,157,143,229, 0,158, 27,243,156,211, 52,253, 52, 61, 61, 29, 60, 30, 15,141, 26, 53,242, + 2, 80,233, 23,184,117,252,248,241, 83, 23, 45, 90, 52, 3,192,162,138,115,146,176,176,176,150,165,165,165,136,141,141, 5,128, +123,117, 88,131,171,118, 25, 22, 40,146,248,110,114, 63,248,183,152, 8,153,172, 21,210, 11,180,200, 40,208,226,215, 95,250, 33, +234,234, 18,220, 59, 51, 18,201, 89, 89, 16, 58,246, 7,101,208,248, 26, 49,169,151, 63,124,248,144,184,122,245, 42, 65,211, 52, +244,122, 61, 83,162, 80, 48,247,175, 93, 67,217,229,203,132,133,133, 5,209,190,117,199,210, 29, 75, 78,220, 57,178,254,218, 61, +157,202,228,137,250,219, 96,126,124,124,124,232,193,131, 7,195, 0,204,247,243,243,187,153,146,146,210,246,202,149, 43,205, 93, + 92, 92,214, 54,148,180, 50, 44, 68, 82, 82,210, 43, 71, 69, 88, 8,109,133,104,232, 81, 33,230,250, 2,248, 2,111,177,203,222, + 4, 92,250, 23, 59,195,159,192,107,187, 13, 95, 23, 90,213, 3,133,193, 67, 38,147,234,245,186,180,179,103,207,234, 72,146,132, + 72, 36,194,232,177, 99,201, 95,126,254,185,195,176,208,208, 11, 19, 62,248,224,143, 11,231,207, 7,134,132,132,128, 97, 24,144, + 36,137,223,126,251,173, 76,173, 46,203,119,117,117,181, 50,166,211,168,254, 0, 41, 20,138, 42,161, 85, 92, 92, 12, 7, 7, 7, +163,151, 14,149, 10,156, 59,127, 42,170,144,161, 62, 75,233, 17,183, 90,183, 34,171, 95, 72, 17, 77,177,139, 41, 61,138,203, 24, +148,168,193,190, 77, 90,135,140,246,236,175, 75,232, 26,242,252,114,204,141,124, 53,165, 54,105,183, 68, 78, 78,206, 55,225,225, +225,249, 78, 78, 78,132,133,133, 5,156,157,157,201,190,125,251,230,165,166,166, 46,106,232, 21,177,177,177, 25, 26, 22, 22,118, + 60, 61, 61,125,208,229,203,151,155, 92,185,114,101, 80, 88, 88,216,113, 27, 27,155,161, 70, 82, 28,152, 59,119,174,146,199,227, +161, 77,155, 54, 40, 41, 41, 65,197, 46,159, 58, 15, 99,150, 72,185, 92, 46, 54,173,252, 14,243,103,207, 64, 65,204,109, 60,186, +118, 22,151,178, 8,204, 91,250, 3,184, 92,110,131, 98,125, 53,179, 19,249,249,201,165,207,190, 24, 59, 36, 99,206,236,217,210, + 7, 15, 30,112,166, 78,255,130, 73,202, 44, 0,175,199, 42, 22,222,255,134,124,168,180, 67,207,238, 93,176, 96,254, 76,191,138, +160,157,117,162,133,157,200,207, 87, 46,125, 58,115,194,176,248,233,211,167, 11, 87,172, 88,161, 14, 13, 13, 45,203,206,206, 22, +138,101,214,222,108, 75, 43,223,164,204, 44, 73,104,104,104,194,103,159,125, 86,100, 42,231,188,121,243, 68,167, 79,159,102,135, +135,135, 27, 10, 11, 11, 37, 28,161, 48,128,224, 11, 90,231, 22, 22, 90, 14, 10, 15,143, 27, 52,104,144,170, 34, 96,169,209,156, +223,126,251,173,232,249,243,231,236,208,208, 80,125, 86, 86,150, 84,108, 99,235,207,178,178, 14, 78,204,204,182,104, 29, 18,242, +114,234,212,169,202,186,202, 89, 93,164, 72,165,210,244,118,237,218,225,199, 31,127,196,154, 53,107,240,209, 71, 31, 33,250, 73, + 52,122, 78,157, 1,159, 79,191,192,177, 27,183,144,158,158,142,197,139, 23,195,223,223, 31, 92, 46,247,121,141,207,227,164, 24, +226, 65, 22,136, 7, 89, 32,136, 73, 49, 68,229,251, 90, 45, 91,139,138, 81,253,243, 53,125,238,222,183, 53, 91,186, 2,157,136, +168,186,252,176,234, 19, 91,131, 6, 13,154, 92, 25,194,225,147, 79, 62,185,182,118,237,218,246,159,124, 82, 62,209,110,211,166, + 13,150, 44, 89,210,126,222,188,121,215,150, 46, 93,138, 46, 93,186,192,195,195,163,222,141, 47, 20, 69,193, 96, 48, 96,216,176, + 97, 48, 24, 12,200,205,205,197,139, 23, 47,176,121,243,102, 48, 12, 35, 0, 0, 39,185, 75, 16,143,199,195,195,251,119, 85,243, + 63, 9,217, 99,130, 37,139,168, 62,137, 41, 45, 45,197,160, 79, 63,205, 75,107,214,172, 96, 99, 94,158,106,156, 76, 38,114, 75, + 78,182,150,106,181,206,168,195, 47,145, 32, 8,208, 52, 93, 37,172, 42, 5,215,235, 71,197, 64,105, 20,116, 42,250,228,149,221, + 25, 0,128,142, 35,228,232, 59,203,109,140,147,167,104, 93,135,225,229, 70,239,195, 75,226,153,146, 12,106, 5,244,120,106,130, +197,250,246,237,219,183, 97,101,101,133,240,240,112, 62, 73,146,203, 43,231,171, 40,143,157,181,186,146,139,207,231,175, 26, 57, +114, 36, 89, 84, 84,132, 71,143, 30, 1,192,249,218,250, 37,134, 97,170,234, 94, 90, 64,128,162,121,184,126,255, 20,206, 92, 57, +132,196,244, 92, 36,231,168, 1,182, 37,212,202, 52,232,202,210,161, 45,186, 15,133, 70,100, 84,129,185, 92,110,174,159,159, 31, + 19, 28, 28,204, 48, 12,131,151, 47, 95, 26,146,146,147, 13,119,127,250,137,121, 60,113, 34, 33,125,241,130, 43, 20, 10, 9,119, +119,119, 8, 4, 2, 90, 32, 16,228,255,141,131,247, 95, 18,110,225, 47, 8, 11,241, 46,173, 90, 12,254,157,200,196,171,187, 13, +171, 2,152,214, 20,176, 20,140,133,112,200,161, 13,191, 88,134, 15, 27,161,244,247,247,151, 57, 59, 59,131, 32, 8,244,235,223, +159, 8,187,124, 89,202,145,203, 97,243,222,123, 85,203, 17,231,206,158,197,169, 83,167,148, 39,126, 63,226, 60,118,220,184,222, + 0,118,214, 81, 24, 54,159,207,175,250,221,204,204, 76,240,249,252, 42,159, 8,133, 66, 1, 59, 59, 59,100,102,102,194,200,149, +185, 93,115,102,223,154,157, 19,242,141,123,136,148, 67,252,161,204, 2,197, 48,224, 16, 20, 80,198, 64, 79, 1, 26, 61,131, 32, + 55,150,245,153, 50,131, 44,242,118, 68, 2,128, 93,166,180,158, 70,163,185,248,224,193,131,137, 52, 77, 31, 2, 64, 94,190,124, +153,126,250,244,233,100, 24,239,184,254,166,217, 94, 36,154,117,225,194, 5,235, 89,179,102, 21, 70, 70, 70, 22,247,234,213,203, +114,243,230,205,214,157, 59,119,158,149,159,159,191,223, 24, 67, 96, 74, 74,202,206,212,212,212,201,193,193,193, 40, 40, 40,128, + 78,167, 67, 84, 84, 20, 60, 61, 61,113,239,222, 61,120,121,121,225,238,221,187,104,222,188, 57, 40,138,130, 90,173, 6, 77,211, + 84,125,157,121, 65, 94, 46,144,159,130,140,219,127,224,197,227, 40, 92,200, 32,176,126,255,113, 52,106,226,222,160, 56, 53, 94, +246,162,150, 78,118, 54,103, 86, 44,252,214, 62,233,226,111,136,216,182,158,190,244,199, 31, 62, 60, 41, 38,190, 63,236,243,129, + 90, 61, 26, 3,224,181, 13, 9, 70, 15,217,115, 74,212, 4, 89, 23,158,214, 29, 96,209,203, 94,212,210,193,214,230,244,127,150, + 47,146,190, 60,181, 3, 7, 54,253,200, 28,222,189,207, 95, 13,132,180,108,217,178, 7, 73,146, 86, 0,212, 21,126, 94, 70,165, +182,169,137,243,220,241,227,129,106, 32,228,232,209,163, 61, 68, 34,145, 35, 0,189, 74,165,138,127, 27,206,243,145,145,129,149, +229, 36, 8,194, 30,128,142, 97,152,151, 48, 49, 5,207,224,193,131,151,124,241,197, 23,179, 41,138,178,171, 54, 59,103,173, 90, +181,138, 77,211, 52,139, 97, 24, 29, 73,146,186,211,167, 79, 83, 6,131, 33, 67,173, 86,127,250, 54,189,200,192,129, 3,113,235, +214,173,133, 40,223,132, 97,172,181,250, 21, 63,173,138,148, 61, 13,230,191,124,249,242,226,143, 63,254,120,206,254,253,251, 95, +172, 93,187,182,207,164, 73,147,240,219,111,191,161, 89,179,102,120,248,240, 33,190,249,230, 27, 0,104, 63,111,222,188, 99, 91, +183,110,245, 72, 74, 74, 90,101,132, 69, 3, 6,131, 1,251,246,237, 67,191,126,253, 96,103,103, 7,185, 92, 14,130, 32, 46,142, + 27, 55,238,103, 0, 96, 17, 44, 46, 0,104,212, 26,141,183,119,176,209, 22, 92, 46,151, 91,213,215,101,101,101, 85,237, 20,252, +240,227,143,243,126, 93,177, 2,123,202,202, 48, 78, 38, 19,165,185,184, 56, 29,123,249,114,194,147,242,206,153,169,203,170, 83, +159,200, 50,214,165,161, 44, 19,115,127, 95,150,232, 8,224,163,142, 35,228,232, 56, 66,142,224,190,246, 4,201, 34,240,248, 76, + 62,162,207, 21, 28,214, 43,112, 17,166,165,203,121,186,124,249,242, 99,239,191,255,126,159, 22, 45, 90, 96,252,248,241,159,109, +219,182,141,171,215,235,167,227,207, 48, 15,150, 36, 73, 46,218,180,105,211, 4,107,107,107, 92,189,122, 21, 87,174, 92,185, 8, + 32,165,182,126, 9, 64, 85,204,172, 70,174, 94,234,231, 73,165,162,156,244,235,184,118,245,119, 52,243,255, 28, 66,199,222,176, +246, 94, 10, 93,204, 26,104,243,207,192,218,181, 23,210,146, 94,130,197,230, 71,215,231,132,194, 48,204,147,180,180, 52, 15, 15, + 15, 15, 34, 49, 49,209, 0,128,161, 40,138,209,117,232,160,247, 89,177,130, 19,253,217,103, 68,219,231,207, 89, 12, 65,208, 81, + 81, 81, 0,240,236,191, 49,138, 87,134, 91,136,142,142,174, 45,220,130, 73,240,243,243,107,127,229,202, 21,190, 90,173,198,165, + 75,151,208,186,117,213,222,174,255,106,244,251,234, 90,228, 95,134, 9, 53,156,219,252,138, 69,235,149, 27,155, 38, 56,205,189, +188, 40, 46,137,237,253,122,247, 86, 61,120,240,160,106,214,167,190,115, 7,202, 83,167, 64, 81, 20, 24,134,193,149,203,151, 49, +114,196,136, 82, 14,139,248,213,205,173, 9, 67, 48,175,196,110,233, 90,195,236, 33, 60, 60, 60,188,170,243, 73, 77, 77,133, 88, + 44, 6,143,199, 3, 77,211, 48, 24, 12, 96,177, 88,176,180,180,132,193, 96,168,201, 4,243, 58,167,158, 42, 80, 14,218,218,115, +120,166,188, 84,199, 76,180,114, 67, 99,174,176,234,225,116,180, 32,208,199,159, 3, 91,118, 14,115,126,213, 7, 25,180, 38,127, + 16,222,220,209, 85,223,150,127,175, 86,173, 90,253, 60,114,228, 72, 18, 0,186,118,237, 74,182,106,213,106, 29,234, 78,149, 83, + 39,167, 64, 32,224, 3,192,241,227,199, 11, 94,188,120,241,209,241,227,199, 11,170,159, 55,146,115,243,202,149, 43, 33, 18,137, + 96, 48, 24,160,213,106,171,252,179,170,191,234,116, 58,216,218,218,226,196,137, 19,160, 40,234, 68,125,229,116,109,220, 4,132, + 93, 83,236, 60,126, 1, 87,242,184, 13, 17, 89, 85,156, 77, 29,197,205, 29,109,109,206,254,103,217, 98,187,194,184, 40,164,165, +165, 49,167, 79,157,184,169, 6,210,139, 75, 48,191, 72,137,230,101, 90, 8, 90,123, 32,229,236,166,175,153,121, 29,161, 71,205, +187, 6,171, 56,125, 28,197,205,157,237,108, 78,255,240,159,101,210,162,184, 40,100,102,101,225,228,137,227, 15,212, 64,229,114, +227, 24,154,166,125,105,154,246, 5, 48,166, 14,241, 98, 18,167, 74,165,242, 83,169, 84,126,239,146,147, 97, 24, 63,134, 97,140, +230,172,238, 19,181,122,245,234,152,204,204,204,145, 57, 57, 57,221, 42,143,194,194,194,174,165,165,165,157, 84, 42, 85,135,178, +213, 77, 44, 85, 42,149,125,105,105,169,147, 90,173, 14, 2, 16,101,194, 61, 95,133,234, 81,167, 51, 51, 51, 23,100,102,102, 18, +245,149,147,245,105, 12,177,247,135,153,191,111,218,180,201,233, 45,249, 95, 41,103, 94, 94,222,161,253,251,247, 7,184,187,187, +123,140, 25, 51, 6, 27, 55,110,196,218,181,107, 53, 0,176,117,235, 86, 77, 53, 75,150,107, 82, 82, 82,112, 45,203,134, 93,171, + 89, 75,118,125,248,225,135,204,149, 43, 87,208,175, 95,191,170, 64,162, 91,182,108,129,193, 96, 80,116,233,210,133, 6,128, 50, +181, 74,193,208, 12,180,186, 90,215,223,223,104, 79, 30,143,215,189,122,188,192,202, 96,204, 60, 30, 15, 12,195,160,121,251,246, +121, 69,254,254, 5,219,138,139, 85, 11,252,252, 44, 38,120,123,143,105, 1,140,168,137,147, 32,136, 87,172, 58,175, 31, 38, 88, +178,170,151, 51,167, 44, 3,227,127, 95,150,120,170,210,178, 37,144,176,161, 46, 49,224,200,138,196, 92,117, 46,182,212, 38,126, +234,170,123, 65, 65,193,212, 21, 43, 86,104,100, 50, 25, 6, 14, 28,136,165, 75,151,142,107,223,190,125,177,189,240, 71, 94, 63, + 0, 0, 32, 0, 73, 68, 65, 84,189,253,173,102,205,154, 61, 30, 50,100, 72,102, 84, 84,212,212,176,176, 48,196,198,198,226,135, + 31,126, 40, 42, 44, 44, 28, 94, 23, 39, 65, 16, 85,150,188,190, 61,187, 22,252,178,238, 71,186,203,251,147, 33, 18, 90, 64,207, +113, 69, 65,169, 30,133, 74, 6, 90,126, 8,120, 92, 62,186,133,182,196,173,211, 59, 84,148, 86,185,179,190,123,190,180,180,244, +240,232,209,163, 21, 92, 46, 23, 90,173,150,225,112, 56,224,151,251, 29,211,156,143, 62,210,181,125,250,212, 64, 49, 12, 77, 16, + 4,190,252,242, 75,101, 97, 97,225,254,134, 60, 71, 38,160, 58,231,187, 10,183,208,245,181,241,231, 93,132,133,248, 43,234,254, +111,198,230, 26,142, 63, 45, 90,149, 91, 42, 43, 95, 9,130,166, 40,138,134,155,187,155, 52, 41, 49,101,253,224,193,225,159,244, +232,209, 83,212,179,103, 79, 65,203,152,242,217,232,241,227,199, 17, 17, 17,161, 58,115,230,140,130,207, 97,109,117,109,228,234, + 64, 81, 52, 8,130,174, 83, 13, 75,165,210,233,115,231,206, 21, 22, 23, 23, 99,237,218,181,116, 64, 64, 0, 41, 22,139,161,211, +233,176,117,235, 86,125,203,150, 45, 57, 36, 73,162,184,184, 24, 36, 73, 62, 55,178,130,143,138, 83,210,187,253, 28, 54, 32, 34, +120,202, 88, 27,159,176,182,178, 78,174,206,208,191,199, 32, 35, 53, 17, 47,206,159, 41,124,114,250,167,124,168,179, 7,160,254, +244, 64, 53, 13, 4,223,157, 57,115,198,126,234,212,169,140, 90,173, 38, 82, 82, 82,152,101,203,150,217,143, 31, 63,254,187,140, +140,140,161, 13,188, 40, 68, 81, 81, 17, 8,130,160, 43, 58,146,202, 89,191, 41,235,114,209, 59,119,238, 60,218,191,127,255,190, + 93,186,116, 65, 76, 76, 76,213, 18, 97,117,161, 85,185,251,112,249,242,229, 69, 0,230,212, 71,202,225,112,176,118,231, 33, 20, + 21,230,193,193, 65, 14,129, 80,136,134,238,176,228,145,228,130,239, 23,127,107,159,247,236, 22, 17,125,243, 2,125,240, 81,118, +142,129, 98,106,142,248, 95,146,193, 84,168,255,186,103, 51, 36,107,193,247,203, 22, 89, 86, 46,107,238,191,159,169, 32, 40,102, +234, 91, 61, 34,255, 22,206,191, 25,114,185, 28,153,153,153,132, 92, 46,103, 42,124,180,152, 58,132,214,171, 55,120,249,114, 25, + 81,215,178, 97, 67,249, 19, 18, 18,150,189,247,222,123, 51, 99, 99, 99, 15,250,248,248, 76, 2,208, 72,163,209, 20,205,155, 55, +239, 63, 91,183,110,253,196, 24, 75, 22, 0,252,246,219,111, 63,141, 29, 59,246, 84,239,222,189,191,166,105,186, 85,181,129, 61, +193,222,222,190,106, 9, 55, 55, 59,107,246,196, 79,134,205, 46, 45, 45, 52, 58,206,157, 68, 34,153, 48,111,222, 60,129, 82,169, +196,134, 13, 27,232,150, 45, 91,146,149,147,162,221,187,119, 27,188,188,188,216,225,147, 39,231,173,206,202,194,146,171, 87,149, +179,125,125, 3,182,189,120, 17, 4,154,222, 85,155, 85,167, 38, 75, 86,165,219, 69, 3,145, 81, 33,182,182, 0,248,168,237, 96, + 71, 28, 93,153,136,194, 36,237,127, 96,192, 75, 24,145, 22,168, 6,164, 29, 62,124,184, 91,118,118,246,209,111,191,253,214, 50, + 40, 40, 8,190,190,190, 28,137, 68, 18, 82, 25, 46,166,184,184, 24,231,206,157,195,198,141, 27,181, 79,158, 60,233, 95,215,114, + 21, 69, 81, 57, 94, 94, 94,149,237,192, 16, 4,145,175,208, 16,150, 7, 90,132, 72,198, 76, 60, 72, 92,187,123, 3, 25, 58, 26, + 26, 61, 13, 55,247, 64,116,250,104, 53,142,253,241,152,202, 72,122,250, 84, 95, 86,248,171, 17,229,125, 25, 23, 23,119,100,241, +226,197,131,191,254,250,107, 97, 94, 94, 30,165,209,104,232, 67,135, 14,177,198,140, 25, 67, 49,108, 54,205,101,179, 49,125,250, +244,178,162,162,162,223,129,191, 53,193,244, 95, 18,110,225, 47, 8, 11,241,206,172, 89,213, 95,255, 87, 80,227, 19, 74,179,200, +235, 27, 55,253,210,253,183,125,251, 29, 89, 44,210,241,101,124,252,221, 62, 3, 6,165,159, 61,123,214,154,107,105,217, 26, 0, +173,157, 52,233,166, 78, 83, 86, 16,121,244,104, 99, 55,183, 38,254, 21, 73,165, 25,154, 69, 94,175,235, 7, 75, 75, 75,149, 87, +175, 94, 85,205,153, 51,135, 72, 77, 77,221,235,224,224, 48,228,143, 63,254,144, 12, 24, 48,160, 44, 38, 38,230,176,163,163, 99, +223,176,176, 48,233,204,153, 51, 53,165,165,165,166, 36, 30,125,202,228, 22,182,184,243,237,170,143,239,172,252,229, 3,176, 89, +237,160,225, 0,180,254, 58,116, 37,103, 1,236,133, 9,241,142,170, 67, 44, 22,251,139, 68, 34, 60,120,240,160, 48, 36, 36, 68, +171, 86,171,185, 75,151, 46,181, 17,139,197,254, 13,109,120,134, 97,152,194,194, 66,208, 52,205, 6, 64, 84,188,130, 54,125, 47, +254,208, 62,125,250, 28, 61,112,224,192,135, 61,123,246,132,135,135, 7,244,122, 61,188,188,188,160,213,106,225,233,233, 9,141, + 70,131,133, 11, 23,162,184,184,120, 6,234,200,121, 70, 16, 4, 12, 6, 67,149,179,173,179, 75,227,242, 56, 61,111, 17,198, 66, +204, 33, 61,158, 71,110, 67, 78,126, 30,125,224, 97,118,182, 74, 71,117,139,203, 85, 61,121,253,115, 42, 10,202,176, 49,211,210, + 1, 64, 67,215,157,113, 94,204,131,199,139, 19, 91,144,157,147,135,223,238,103, 22, 41,117,244, 71, 47,106,224, 52,169,156,255, + 18,206,192,133, 49, 24, 52,205,248,207,190, 13,140, 21, 84,181,225, 65, 22,136,123,162,109, 12, 54,109,171, 49, 70,214, 91,242, + 31,141,141,141, 61, 10, 0, 79,159, 62, 77, 29, 54,108,216,236,196,196,196,197, 0, 78, 38, 37, 37,109, 50,133,104,219,182,109, +177, 0,198,214,245,153,253,171,198, 30, 1,112,196, 20,222,146,146, 18,117, 84, 84,148,122,230,204,153, 68,106,106,234, 31,142, +142,142, 31,158, 58,117, 74, 52, 96,192, 0, 77,116,116,244,121,185, 92,222,177,107,215,174,146,147,183,111,167,171, 94,190,140, +140, 76, 76,116,209,211,116,100, 93,207,231, 59, 22, 89,175,136,173, 35, 75, 18,191, 63,250,125, 98, 87, 90,131,195,218, 66,220, + 4,144,246, 22,156, 87,174, 95,191,238, 51, 98,196,136, 3,189,122,245,106,235,227,227,131, 70,141, 26,225,197,139, 23,200,205, +205,197,163, 71,143,112,252,248,241,227,106,181,186,222,132,218, 5, 5, 5,111,166, 39, 18, 88,203,119,108, 88,112,252,238,181, +214, 94, 29,122,142, 22,250,202,105,104,117, 12, 82,147, 95, 98,225,252, 95, 85,153,201,177, 79,117, 6, 93,127, 24,185, 81,167, +172,172,108,243,154, 53,107, 56,145,145,145, 61,215,175, 95, 47,109,220,184, 49,139,203,229,146, 0,152,123,247,238, 49,211,166, + 77, 83,230,229,229,157, 80, 40, 20,155,255,230, 49,250, 74,124,124,124, 32,139,197,122,167,225, 22,222, 34, 44,132, 25,239, 18, +238,238, 46, 62, 77, 27,203, 39,121, 52,114,153,236,222,216,117, 84, 77, 78,238, 30, 50,153,212,189,137,243, 4,143, 70, 46,147, +155, 54,150, 79,114,119,119,241, 49,194,180,232, 97, 97, 97,241,135,147,147, 83, 0, 0, 88, 90, 90,246,181,178,178,122, 98,105, +105,217,183, 98, 22,216, 87, 34,145, 60,107,217,178,229,248,191,209, 92, 89, 39,167,151,151,215,176,210,210,210,207,188,188,188, +134, 85,190,127,249,242,101,213,251,134,112,186,186,186,118,185,119,239,222,208, 85,171, 86, 13,108,214,172, 89,223,101,203,150, + 13,252,253,247,223,135,186,184,184, 4, 53,128,147, 15, 96, 15,135,195,201,230,241,120, 57, 28, 14, 39,187,242, 96,179,217,217, + 44, 22, 43, 27,192,166, 90,172,101, 93,171,205,114,174, 57, 56, 56, 36, 57, 56, 56, 36, 57, 58, 58, 38, 57, 58, 58, 38, 57, 57, + 57,189,113,216,218,218, 94, 51,182, 61,189, 29, 37,237, 67, 26, 73,175,251, 57, 73,174,181,112, 16,123,191,139,107,228,237, 40, +105,223,186,145,229,117, 63, 39,233,213,255,111,156, 1,142, 96,152,141,222, 12,179,209,155, 9,112, 4, 83,223,251,119,105,246, +119,114,114, 98,156,156,156, 22,252, 85, 75, 9,181,240,255,237,207,251, 59,228,244,144, 74,165,251, 27, 53,106, 84,217,215,245, +182,176,176,184, 40,145, 72,122, 87,244,117,189,197, 98,241,229,150, 45, 91,142,174,143,211,218,218,250,158,189,189,125, 86,197, +145,233,224,224,144,233,224,224,144,105,111,111,159, 97,111,111,159, 97,103,103,151, 94,121, 88, 89, 89,221,106, 96,221,237, 1, +180, 1, 16, 4,192,226, 29,182,167, 59,128,137, 21,125,208, 10, 0,227, 1,180,122, 7,215,136,224, 8,173, 63,229, 91,185, 94, +231, 72,236, 74, 56, 18,187, 18,190,165,203,245, 58, 82,240, 24,195,217,220,218,218,122,169,133,133,197,239, 82,169,244,170, 84, + 42, 61,106,107,107,187, 12, 64,243,255,210,189, 36, 1,176, 21,229,241,153, 78,162,124, 41,252, 40,202, 55, 21, 52,254, 7,222, +243,255,159, 49,225,191,245,195, 93,205,156,102, 78, 51,167,153,211,204,105,230,252, 23,114,146,230,246, 52, 11, 45, 19,133,214, +235, 7,128, 58, 34,195,155, 97,134, 25,102,152, 97,198,255, 99,208,230, 38, 48,195, 68,212,184,180, 76,212,161, 74, 77,137, 53, +213, 16,101,123,206,204,105,230, 52,115,154, 57,205,156,102, 78, 51,231,255, 59, 78, 51,222, 33,204,102, 85, 51,167,153,211,204, +105,230, 52,115,154, 57,205,156,255,235, 48, 47, 29,154, 97,134, 25,102,152, 97,134, 25,102,252, 69,216, 92, 77,112,189,178,132, +104, 22, 90,166,131, 4,240, 25,128, 65, 0,154,162, 60,155,253, 33, 0, 63,163, 97,107,250, 22, 0,102, 3,104,135,242,221, 57, + 9, 0,174,162,124,119, 78,169,185,185,107,134,173,173,237, 92, 14,135, 99, 5,148,167, 54,169,124,173,254,127,138,162,138, 20, + 10,197,178,191,168, 8, 44, 24, 25, 65,185,178,172,213,203, 86,253, 85,175,215,255,149,229, 52,227,159, 9, 47,107,107,235, 61, + 5, 5, 5,195, 81, 45,201,178, 25,102,252, 47,192,206,206,110,146, 78,167,155,199,229,114,151,230,230,230,254,242,255,168,234, +111,136,172, 87,132, 86,100,100,228,101, 0,232,213,171,215,251, 0, 96,101,101,117,131, 36, 73,119, 83,126,129,166,233,132,162, +162,162, 90, 3,168, 89, 89, 89,221, 96,177, 88,111,112,234,245,122, 41,155,205, 46,169,233, 59, 6,131, 33, 77,161, 80, 4,253, + 67, 26,145, 0, 16, 41,147,201,212,139, 23, 47,254,185, 83,167, 78,174, 25, 25, 25,134, 89,179,102,117,124,248,240, 97, 79, 0, +221, 77, 20, 91,161, 4, 65,236, 8, 8, 8, 56, 50,106,212,168, 3, 33, 33, 33,188,252,252,124,233,161, 67,135,156,119,238,220, + 25, 69,211,244,112,212,145,104,245,255, 51, 56, 28,142, 85, 90, 90,154, 20, 40, 79, 77, 82, 33,172,160,215,235,161,215,235,161, + 84, 42,225,239,239,255,206,127,215,209,209, 49,144, 32,136,245, 18,137, 36,168,180,180,244, 46,128,201,153,153,153, 15, 77, 41, +171,193, 96, 0,195, 48, 85,229,244,241,241, 49, 95, 80,211, 48,142,199,227,125,228,233,233,217, 90,163,209, 20, 38, 36, 36,220, +161, 40,234, 91,188,187, 28,109,150, 0,190,229,243,249, 33, 77,155, 54,117,141,141,141, 77,213,233,116,183, 81,158, 12,185,248, + 93,136,172,247,223,127,255,218,134, 13, 27,108, 62,253,244,211,107, 87,175, 94,109,111, 22, 91,102,252,183,224,234,234,106,165, + 84, 42,127, 5, 16,200,225,112, 28, 5, 2, 1,132, 66, 97, 22,159,207,127, 32, 20, 10, 63,185,126,253,122,145,169,156, 20, 69, +125,155,148,148,228,216,166, 77,155,149,246,246,246, 11,243,242,242,212, 58,157,238,124, 97, 97,225, 12, 0,138,186,190,251,186, + 22,249,151,137,172,234,175,168, 20, 93,236,138,138, 49, 0, 58,189,162,192,216,108,151,228,228,100,123,129, 64, 0,154,166,171, + 6,179,215,143,202,243, 90,173, 22,190,190,190,186,122, 6, 28,215,212,212, 84,123, 30,143, 87,117, 78,171,213,194,217,217,153, + 78, 75, 75,179,175, 72,123, 80, 5,141, 70, 3, 23, 23,151,127, 82,206,163,207,172,173,173,139, 83, 82, 82,253,213, 26,221,162, +241, 83,231,204, 29, 62,232, 3,217,141, 27, 55,232,238,221,187,107, 46, 95,190,252, 25,202, 19,167, 26,213,153, 19, 4,177,115, +214,172, 89, 11, 5, 34, 11,155, 11, 55,158,106,118, 30, 58,145, 30,224,229, 70,204,152, 49,131, 53,109,218,180, 43,129,129,129, +123,104,154,126, 15, 38, 88,182,100, 50,217, 41, 62,159,223,164,162,253, 82, 10, 11, 11, 63,252, 7,222,144,108,188, 25, 60,182, +166,115,245, 34, 63, 63, 31,101,101,101,111, 28, 62, 62, 62,198,230,202, 52,169,220, 28, 14,231,232,242,229,203,157,179, 50, 51, +241,227,234,213,109, 80,110,201,108, 99,204,151,115,114,114,222, 40,167,183,183, 55,204, 48, 9,179, 23, 46, 92,184,252,227,143, + 63, 6, 69, 81, 40, 43, 43,147,199,197,197,181,156, 55,111, 94,255,151, 47, 95,182, 6, 16,255,182,147,113, 79, 79,207,152,207, + 63,255,220,186,117,235,214,168,200, 82, 33,191,122,245,106,155,173, 91,183,142, 76, 73, 73,241, 6,144,251, 54, 63, 96,109,109, +189,103,203,150, 45, 54, 34,145, 8,199,142, 29,179,233,210,165,203,213,251,247,239,119,120, 11,177, 69,218,216,216, 76, 3,208, +153,166,105, 30,128,219,133,133,133, 75, 96,122, 84,119, 39,137, 68,114,152, 36, 73, 55,224,207,104,244, 36, 73,218, 18, 4,145, + 87,121,142, 32, 8,123,154,166,111, 22, 20, 20,180, 53,223,142,255,110,216,216,216,140,203,206,206,222,192,231,243,185, 50,153, + 12, 34,145, 8,108, 54, 27,108, 54,187, 17,159,207,111,196,231,243,123,132,133,133, 77,190,120,241, 98,157, 17,246, 67, 3, 28, +198,128, 36, 22,177, 8,146, 5, 0, 36, 71,108, 97,105,105,137, 69,139, 22,137,251,246,237, 43, 6,128,107,215,174,141, 26, 61, +122,116,151,180,180, 52,223,218,196, 86, 77, 90,228, 95,132,205,117, 13,120,168, 80,143,151, 95,121,114, 73, 18, 60, 30, 15,183, +110,221,130, 49,193,202, 43, 83, 36,212,217, 27, 84, 68, 24,127,248,240, 79, 3, 64,229, 64,195,227,241,112,253,250,171, 65,229, + 67, 67, 67,171, 30,246,191, 11,131,124,202,131, 60, 30,156, 82, 94,174,240,245,229,209,181, 15, 78,241, 70,199, 31,146, 49,104, +218,130, 33, 42,181, 46, 24,128,178,168,176,176,240,110, 68, 68, 70,128,151, 23,119,207,158, 61,173,157,157,157, 7,153, 32,180, +102,191,247,222,123,135, 89, 66, 75,219, 81,163,199,140,250,132, 77,234, 70, 78,156,185, 52, 53, 51, 79, 57, 97,194,132,136, 99, +199,142,141,250,254,251,239,159,125,245,213, 87,179, 1,124, 99,108,249, 5, 2, 65,147,231,207,159,123, 82, 20, 5, 31, 31,159, +127, 98, 26,131, 0,148, 7,223,251, 24,192,190,138,115,195, 80, 30,185, 63, 16,192, 3, 83,200, 42, 45, 88, 53, 29,239, 26,206, +206,206,222, 35, 70,140,176, 45,200,203,195,143,171, 87, 87,158, 14, 66, 61,203,136,149,207,143, 86,171,197,192,129, 3, 71, 80, + 20,197,174, 20,129, 26,141, 70, 91, 92, 92,172,198,159,142,165,185, 0, 62, 48,162, 56,238, 98,177,248, 63, 0, 2,203,202,202, +156, 1, 64, 44, 22,167,211, 52,125, 68,169, 84,126,131, 63, 19,248,154, 60,193, 5,208, 18,181,167,130, 98,150, 47, 95, 30, 59, +103,206,156,248,255, 2,103, 19, 7, 7,135,101,225,225,225, 56,113,226, 4, 78,158, 60,169, 23, 10,133,236,209,163, 71, 19,147, + 39, 79,150,125,254,249,231, 61, 0,172,121,203,203,220, 99,225,194,133,214, 45, 90,180,192,161, 67,135,240,232,209,163, 50, 79, + 79, 79, 97,167, 78,157,192,102,179,173,231,206,157,219, 29,192,142,183,249,129,130,130,130, 37, 51,103,206,220,185,111,223, 62, +105, 66, 66, 2,214,175, 95,111, 59,100,200,144,203, 41, 41, 41,239,155, 32,182,248, 0,166, 1, 8, 99,177, 88, 29, 70,143, 30, +109,152, 58,117, 42,135, 36, 73,253,234,213,171,237,182,110,221, 58,132,195,225, 4,230,231,231, 27, 51, 73, 35, 1, 44,250,228, +147, 79,198, 94,188,120, 81,118,231,206, 29,158,141,141, 13, 40,138,170,178, 20,211, 52,109, 95,121,207, 26, 12, 6,120,123,123, +187, 84,251,190,240,223, 42, 52, 72,146,212,209, 52,205, 1, 32, 0,160,169,239,253,255,146,200,178,182,182,254,180,160,160,224, +103, 71, 71, 71, 56, 56, 56,188, 49,214,106, 52, 26, 8, 4, 2,174,163,163,227,150,190,125,251,114,142, 30, 61, 90,235, 18, 32, +193, 34,190, 61,182,127,177,179,181, 76, 10, 0,248,105,227,105, 21, 0,252,254,251,239,200,200,200,128, 76, 38,131,175,175, 47, +107,241,226,197, 78, 51,102,204,248,177,176,176,240,147,218,184, 94,215, 34,255, 50,139,214,230,154,222,215,233,163,197, 48, 76, + 85,158, 60, 35,111,218,215, 79,157,123,141,143,208,106,181,120,221,162, 85,249,240,114, 56,156,215,205,143, 32, 8,130,169,139, +179, 6,140, 22,139,197,254, 74,165,114,157, 9,179,219, 42,206,131, 83,188,177,147, 63,107, 88,101, 38,210, 30, 51,203, 95,119, + 2,184,145,248,201,250, 13,239,191,239, 60,109,254,218, 5,101,249, 25,121,115, 71,244,110,226,233,104, 35, 20, 23,229, 20, 91, + 55,111,222,237, 53,139, 76,125,229,236, 56,106,212,168, 93,103,110, 37, 17, 2, 1,151,203,102,177, 56,237,253,188,108, 92, 45, + 89,150, 82,192, 50, 53, 62,246,198,152, 49, 99,252,190,250,234,171, 14, 38,112,162, 98,192,197,238,221,187, 65, 16, 4,105, 74, +221,223, 33,206,213, 37,178, 24,134, 1, 65, 16,123,171, 13, 42,123, 43,206,221,175, 38,182,216,117,181,103,165, 53,181, 82, 84, +141, 30, 61,122,132,193, 96, 96, 87,235, 36, 94, 23, 48, 53,137, 24,163,234,238,228,228,116, 6,192, 7, 4, 65, 64,171, 86,107, +255,243,195, 15,213,255,124,239, 53,145,117,174,182,103, 73,175,215,131,162, 40,246,253,251,247, 57,213,238,117, 14, 0, 49, 0, + 91,134, 97, 64,146,228, 99, 35,218,211, 91, 36, 18,221, 56,126,252,184, 69, 80, 80, 16,193,227,241, 96, 48, 24, 16, 29, 29,237, +250,253,247,223, 79, 60,119,238, 92,119,165, 82,233,131, 55,147,167, 27,115,141, 90, 94,189,122, 85,233,225,225, 81,163,112, 84, + 40, 20,108, 47, 47,175,247,107, 17, 69,127, 53,103, 90,118,118,118,191, 15, 62,248, 96, 82, 86, 86, 86,140,193, 96,248, 26,128, +175,173,173,237,253, 1, 3, 6, 64, 40, 20,134,149,149,149,173,121,155,123,222,222,222,190,111,219,182,109,177,126,253,122,124, +255,253,247, 93, 1,156, 7,208, 69,161, 80,156,235,211,167, 15,172,172,172,250, 21, 21, 21,237,120,139,231,200,171, 99,199,142, + 91, 22, 45, 90, 36, 61,113,226, 4, 60, 61, 61, 81, 82, 82,130, 47,191,252,210,254,187,239,190,187, 84, 84, 84,212,169,218,115, + 81, 27,167, 15,159,207,223,177,111,223, 62,137,135,135,135, 7,151,203, 37, 61, 60, 60, 80, 80, 80, 0,181, 90,205, 95,186,116, +169,159, 80, 40,124,184,102,205,154, 29, 0, 6,212, 83, 78, 18,192,146, 77,155, 54, 77,154, 48, 97,130,213,136, 17, 35, 40,173, + 86,139, 3, 7, 14,128,197, 98,129,195,225, 64, 36, 18, 85, 37,175,230,114,185,104,222,252,141, 32,233,199,234,168,111, 49,202, +253, 80,173, 96,218,178,235,185, 58,248,170,150, 62, 56, 28, 14, 4, 2, 1, 4, 2, 1,248,124, 62,158, 63,127, 62, 95, 32, 16, +172, 38, 8,194, 96, 12, 39,241,167,186,240, 7,112,167,190,247,120,211, 53,228,239,236, 63, 43,225, 66, 16,196, 79, 0,194,202, +135, 93,242,178,173,173,237,244,236,236,236,100, 99, 57,157,156,156,108,242,243,243,215, 56, 57, 57,193,193,193,161,106,252,118, +118,118,134, 94,175, 71,118,118, 54, 24,134, 65, 81, 81, 17, 68, 34, 17,228,114,249,154, 9, 19, 38, 28,218,188,121,115,126,141, +156, 52,190,239, 51,100,222,183, 44, 22,139, 4, 0, 22, 91, 34,249,124, 14,208,164, 73, 19,180,111,223, 30,106,181, 26,197,197, +197,104,217,178, 37,155, 32,136, 81, 4, 65, 88, 48, 12,243, 11,128, 11,255,131,134,194, 90,157,225, 23,190,190, 46, 90,153, 45, +158,203,229, 26, 37,180, 42, 62, 95,159, 5,133,212,235,245,224,114,185,175, 88, 36, 8,130, 0, 69, 81,175,156,175, 20, 90, 13, + 17,234,147, 39, 79,166,183,108,217, 50,169,176,176,112, 35, 26,184,148, 48,106,212,168, 55,252, 61,102,204,152,145,150,147,147, +195, 12,236,230, 47,142,249, 35, 35,179,169, 76, 34,180,147, 74,221, 4, 50,107,171,252,252,252,155, 21,157,137,177,104,246,222, +123,239, 9,119, 70, 92, 77, 27,255,197,242,197, 65, 30, 54, 22,173, 92,108,101,142,150, 66,158,132, 36,148, 2,131, 62,205,218, +218,218,211,212,114, 87,246, 11, 34,145, 8, 36, 73,254,147, 44, 90,236, 74,145, 85, 80, 80,128, 19, 39, 78,160,103,207,158,247, + 43, 69,136, 66,161, 64,102,102, 38,156,156,156,238, 87, 88, 62,234, 93, 70,164,105, 26, 58,157, 14, 58,157,174, 74,192, 84,187, +135,170, 4, 76,229,103, 89, 44,214,227, 6,150,125,177, 76, 38,235, 24, 22, 22,198,219,127,224, 0,143, 97, 24, 37,202,115,168, +149, 50,255,215,222,117,135, 69,113,173,239,119,102,182, 23, 22, 88, 58,130,160,198,142, 13,123,175, 81,163,230,154, 24,203, 77, +172, 87,131, 49,166,168,137, 38,185,166, 24, 98,137, 70,175, 38, 26, 11,209,196, 18, 83,108,177,107, 44, 17, 37,118,176, 32, 32, +150, 40,189, 45,203, 46,187,203,178,101,102,231,247, 7,187,155, 5, 41,187,176, 88,242,227,125,158,121,216,217, 25,222, 61,115, +230,148,247,124,231, 59,223, 97,171,216, 32,187, 2,104,154,182, 91,217,184, 92, 46,210,211,211,237, 29,151,109,111, 73,161, 80, +232,156, 41, 67, 32,120,255,151, 95,126,145,117,235,214,141, 40, 44, 44,132,197, 98,177, 55,146,235,215,175, 23,142, 29, 59,182, + 81,124,124,252,127, 13, 6,195,231,181,120, 86,162, 42, 65, 4, 0, 50,153,140,134,115, 17,179,107,228,164,105,154,232,221,187, +247,124,133, 66,209, 94,175,215, 47,113, 38, 27, 1, 28,200,204,204,116,236,216,175,167,164,164,232,199,143, 31, 47,106,210,164, + 73,247,164,164,164, 58, 21,210,150, 45, 91,246,228,114,185,184,116,233,146, 1,128,109,100, 29,123,227,198, 13,195,152, 49, 99, + 4,161,161,161, 61, 85, 42,167, 93, 86, 90,182,110,221,250,132,191,191,191,200,214,134,250,249,249,113, 99, 98, 98, 60,178,178, +178, 96, 50,153,240,225,135, 31, 98,212,168, 81,240,245,245,197,188,121,243, 2, 86,172, 88,241,163, 86,171,237, 92,157,209,154, +207,231,111,191,123,247,110,139,160,160, 32,209,197,139, 23,209,161, 67, 7, 40, 20, 10,228,230,230, 66,171,213, 34, 55, 55, 23, +211,167, 79,247,255,223,255,254, 23,236,132, 37,203, 46,178, 98, 98, 98, 84,123,246,236,161, 54,111,222,236,193,229,114,237, 66, +139,195,225,216,133,150,109,111,197, 90,204, 52,168,172,162,205, 75,173, 86,215,197,207, 77, 0,128,239, 40,178, 4, 2, 1, 4, + 2, 1,132, 66, 97,157,246,101,125, 70,208,136, 32,136, 36, 30,143, 39, 16,139,197, 60,146, 36, 33, 16, 8,134,201,229,242, 91, +237,218,181,107,119,226,196,137,135,206,144,148,150,150,110, 23, 8, 4, 92,127,127,127, 0, 64,139, 22, 45,208,161, 67, 7,232, +116, 58,139, 90,173,134,151,151, 23,153,150,150, 6,189, 94,143,156,156, 28,132,133,133,113, 73,146,220,142, 50, 63,228, 71,112, + 62, 33,119, 35,128,141,182,115, 95, 95,223, 60, 71, 75,167, 80, 40, 68,163, 70,141,144,149,149, 5, 15, 15, 15,234,179,207, 62, + 27,243,235,175,191,190,124,254,252,249, 41, 0,118, 56, 80,125,254, 12,251,104,217, 68,150,227,223,191,133,214,168, 81,163, 22, + 29, 58,116,168,127,101,163,112, 46,151,235, 54, 95, 23,155,160,146,201,100, 21,173, 86,176, 88, 44, 85, 89,180, 92,254, 29,161, + 80, 40,154, 53,107,150,102,195,134, 13, 46,139,173,113,235, 82,236, 86,172, 71,134,145,109,219,158,255,239,127,255, 59,250,143, + 63,254,200,234,210,172, 9, 71,146,157,166, 21,202,188,188, 16,210,120,228,212,151,198,220, 64,217,234, 67,103,113, 87,163,209, +136,158, 11, 17, 27, 73,178,148,104, 44,224,120, 4, 73,120,130, 64,111,239, 70, 60,163, 33, 95,230,237,205, 55, 24, 12, 42, 84, +179, 9, 52, 0, 4, 4, 4, 28, 23,137, 68, 97,182,115,111,111,111, 79,150,101, 33, 22,139, 17, 20, 20, 36,165, 40, 42,213,161, +114,165,229,229,229, 13,171, 41, 97, 94, 94, 94,199, 5, 2, 65, 24, 73,146, 32, 8, 2, 20, 69,129, 36, 73,144, 36,105,255, 76, + 81, 20, 8,130, 64, 73, 73, 73,218,195,135, 15,135, 57,241,188, 52,128, 72,130, 32, 18, 14, 31, 62,140,238,221,187,227,232,209, +163, 24, 62,124, 56,212,106, 53, 18, 19, 19,209,175, 95, 63,160,108, 74,209, 41, 56, 58,191,219, 6, 5,183,111,223,182, 11, 23, +199,195,195,195,163, 46, 38,246,184,113,227,198,225,187,239,190, 99,173,131, 9, 9, 65, 16, 29, 60, 61, 61,111, 39, 39, 39, 59, +229, 7,195,178, 44, 76,166,191,111,181,117, 94, 86,127, 8,151, 54, 7,166, 40,106, 88,231,206,157, 9,181, 90,109, 19,144,224, +112, 56,160, 40, 10, 20, 69,225,219,111,191, 21,117,235,214,237, 99,129, 64, 48,159,199,227, 21,155,205,230,159, 75, 75, 75,151, + 0, 80, 61, 77, 45, 82,223,190,125,231,102,100,100,140, 10, 11, 11, 59, 88, 7, 26,214,108, 54, 27, 1,136, 40,138,226,186,161, +141,162,172,101,171,212, 65,236,211,214,115, 1,202,166,137,157,130,175,175,239,143, 71,142, 28, 9, 9, 11, 11,131,217,108, 6, + 77,211,208,106,181,136,141,141,133,193, 96, 0, 77,211,104,209,162, 5, 62,253,244,211,210,119,223,125, 87,184,105,211,166,124, +173, 86, 59,177, 6,218,119,119,239,222, 45, 9, 10, 10, 18,233,245,122,220,191,127, 31,157, 59,119,134, 70,163,129, 78,167, 67, + 73, 73, 9, 76, 38, 19,138,139,139,189, 24,134, 49,214,192,245,137,163,200,154, 57,115,230, 77, 62,159,223,249,237,183,223, 70, +102,102,166,189,206,191,254,250,235, 8, 8, 8,176,215, 37,107,155,236, 82,195,204,225,112, 32, 16, 8,192,227,241, 84,141, 27, + 55, 6, 65, 16,194,180,180,180,218, 76,197,201, 0, 20,115,185, 92,190,163,192, 18, 8, 4,184,116,233,210,127,249,124,126, 85, +214,172,170,234, 37,235,202,249,147, 6, 65, 16,107,120, 60,158, 64, 46,151,243, 28, 6,156, 60,169, 84, 10,127,127,255,117, 0, + 70, 56,249,220,157,228,114,185,189,125,239,216,177, 35, 50, 50, 50,246,169,213,234,201,249,249,249, 32, 73,114, 59, 73,146, 47, +219, 6,169, 69, 69, 69, 8, 13, 13,237, 84, 21, 95,175,200,192, 55, 64,176,229, 44, 90, 21, 6,104,144,201,100,120,240,224, 1, +116, 58, 29,123,231,206, 29, 98,214,172, 89,132,209,104,252, 33, 62, 62,254, 2,202, 86,219, 87,169, 69,158, 17,184,238,163,101, +179,104, 57,219, 1, 16, 4, 81,227,104,194,108, 54, 75, 35, 34, 34, 42,115,248, 34, 42, 19, 90,214,233,164, 90, 21,116, 46,151, +235, 81, 91,177, 85, 17, 7,247,252, 20,176,252,211, 15, 63,149, 7, 55,121,110,254,252, 79, 56, 47,190,248,226,197,109,219,182, + 49,242, 54, 35, 6,159, 62,190, 35,224,235,247, 22, 28, 61,114,228, 8, 80,230, 24,237, 44,226, 14, 29, 58, 20, 56,239,157,217, +248,244,253,119,143,201, 90,248,242,165,132, 92, 34, 52,232, 10,164, 96,245,130,230,173, 71,237, 61,120, 48, 7, 64,124,117, 36, + 98,177, 56, 44, 41, 41,169,133,227, 66, 2,163,209, 8,177, 88,140,211,167, 79,251,137, 68, 34, 63, 0,208,235,245,104,215,174, +157,179, 22,147,176,212,212,212, 22, 30, 30, 30, 40, 41, 41,129,193, 96,128,217,108,134,197, 98, 1, 65, 16,224,114,185,224,243, +249,144, 72, 36,174,174,236,187, 6,224,181,145, 35, 71,238, 60,122,244, 40, 34, 34, 34, 80, 84, 84,132,148,148, 20,155,200,114, +201, 71,203,102, 37,114,244,199,226,112, 56,248,177, 89, 51,188,158,157,109, 23, 48,107, 60, 61,241,169,165,118,187,105,180,107, +215,142,141,139,139,195,177, 99,199,240,175,127,253,139,216,191,127,191,137, 97, 24, 94,118,118,246,205,236,236,108,167, 56, 44, + 22,139, 61,173,182,118,219, 81, 96,185, 42,180,104,154,246,224,243,249, 40, 45, 45,133,205,242,224,120, 52,109,218, 20, 74,165, +146, 83, 92, 92,204,201,206,206, 22, 47, 94,188,248,237, 51,103,206, 4,105, 52,154, 87,159,100, 43,180, 97,195,134,176,215, 95, +127, 61,157,195,225,176,195,135, 15,159,148,150,150,246, 82, 80, 80,208,169, 63,254,248, 99, 21,128,150,174,242,249,250,250, 94, +229,112, 56, 33,197,197,197,188, 93,187,118,153, 53, 26, 13,207,207,207, 47,207,214,118,216,242,218,108, 54, 59,181,114,217,215, +215,247,170, 66,161,224,173, 93,187,214, 92, 88, 88,200, 11, 8, 8,200,179,241,168, 84, 42,222,174, 93,187,204,197,197,197, 60, + 79, 79,207,171,106,181,186, 70, 62,133, 66, 49,113,202,148, 41,231, 78,157, 58,229, 75, 81, 20,210,210,210, 80, 88, 88, 8, 47, + 47, 47,108,223,190, 29, 97, 97, 97,216,189,123,183, 82,169, 84,206,248,234,171,175, 62,182,138,172,154,124,180,250,117,239,222, + 61, 76,165, 82,193,203,203, 11, 58,157, 14, 87,175, 94, 69,219,182,109,145,157,157, 13,146, 36,225,229,229,133,245,235,215,151, + 16, 4,161,172,142, 72, 36, 18,189, 20, 21, 21,229, 5, 0, 81, 81, 81, 94, 81, 81, 81,149,118,112, 61,123,246,196,186,117,235, + 42, 10, 45, 87, 6, 6,118,171,147,131, 56, 42,237,209,163, 7,206,156, 57,179,192, 69,113,100,180,137,182,138,214, 44,129, 64, +224,242, 98, 26,139,197,194, 67,153, 75, 3,225,204,249, 83,128,254, 34,145,136, 87,241,203,146,146, 18, 94, 80, 80, 80, 95, 23, +132,175,143, 72, 84,102,112, 10, 11, 11,131, 90,173,102,140, 70,227,132, 29, 59,118,152, 1, 32, 50, 50,114, 2,195, 48,165, 52, + 77, 83,124, 62, 31, 58,157, 14,254,254,254, 62,213,216, 70, 63, 56,240,243,226,192,138, 62, 90, 65, 65, 65,136,140,140,132,193, + 96, 64, 78, 78, 14, 98, 99, 99,205, 12,195,236,220,176, 97,131,197,207,207,239, 63,175,188,242, 10, 21, 31, 31,255, 22,128,185, + 85,105,145,103,204,154, 21, 83,165,208,178, 42,200, 51, 0, 6, 84,124,200,138,226,167, 58,161, 85,211,212, 33,159,207, 87,165, +167,167, 75, 28, 59, 21,154,166, 17, 28, 28,108, 97, 89,150,168, 76,104,213,197, 20,204,229,114, 61, 62,250,232, 35,213,134, 13, + 27, 38, 62,120,240, 96,145, 51,255,179,235,173,214,216, 86, 65,100,109, 92, 30,189,110,237,242,197,242,123,199,126,192,230,111, + 86, 50, 12,131,248,246,237,219,247,213,106,181, 28, 79,137, 25, 10, 21,142, 90, 69,150,179,162,144, 4,240,253,229,203,151,227, + 71,140, 24,241,231,247,191,236,149,103,223,191,127, 65, 80,172,200,145, 53,111,193,225, 53, 10,123, 89, 83, 90,202,155, 48, 97, +130, 31,128, 87,106,106,196, 84, 42, 21,114,115,115, 43, 10, 48,220,190,125,251,145,123,157, 74, 28, 73,130, 97, 24,236,217,179, + 7, 98,177, 24, 18,137,164,220, 97, 19, 89,181, 92,168,144, 10, 0,195,135, 15,135, 82,169,132, 84, 42,117, 58, 93, 21,197, 11, +203,178, 48, 26,141, 48, 26,141, 48,153, 76, 12, 0, 46,135,195,193,244,204, 76,187,149,199, 21, 1, 83, 17,237,219,183,103,207, +159, 63,143, 63,255,252, 19, 58,157, 14,107,215,174, 69, 80, 80,208, 32, 0,159,184,202,229,224,164,207, 20, 23, 23,115,139,139, +139,237,214, 65, 46,151,107,183, 30, 56,105,201,227,113, 56, 28,251,104,212,118, 56, 90,181, 40,138, 66, 64, 64, 0, 2, 3, 3, +177,113,227, 70, 94,147, 38, 77, 70, 61,201, 22,104,197,138, 21,205,215,172, 89,179,101,219,182,109, 71, 39, 78,156,248,107, 98, + 98,226, 52, 79, 79,207,155,167, 79,159, 94, 44, 16, 8, 44,181,172,223, 33,217,217,217,254,142, 95, 89, 44, 22, 49, 77,211,118, + 97, 91, 82, 82,226,244, 0,131,203,229,134, 36, 37, 37,137, 1, 96,241,226,197, 92, 0, 98,155, 51,184,141,179,164,164,132,219, +182,109,219, 16,103,203,250,185,115,231,250, 14, 25, 50,228,252,137, 19, 39,188,195,194,194,144,149,149,133,172,172, 44, 52,111, +222, 28, 75,151, 46,213, 21, 23, 23,247, 6,144,170,213,106,247, 59,201, 25,236,237,237,205, 77, 79, 79, 7, 77,211,232,212,169, + 19,214,175, 95,143, 9, 19, 38,160, 93,187,118, 40, 46, 46, 70, 82, 82, 18,182,110,221,234,205,227,241,170,109, 59,244,122,253, +254,152,152,152,208,138, 22,173, 73,147, 38, 73,242,242,242,236,101, 50, 58, 58,186,220, 20,162, 43,109,178,117,106,171,202,163, + 54,160,105, 90, 38, 20, 10,139, 5, 2, 1,223,230,159, 21, 27, 27,235,178, 53,171,194, 0,208,149,243, 39, 6,155,104,173,164, +111, 69, 96, 96,160,211, 60, 2,129,128,176,181,141, 52, 77, 67,173, 86, 51, 65, 65, 65,246,233,253,132,132, 4, 38, 60, 60,156, +161, 40,138,226,243,249, 32, 8, 2, 98,177,184,202, 6,159,101,216,232, 23, 39,124, 82,110,213,225,156,143, 0,147,201,132,132, +132, 4,152, 76, 38,196,198,198,154,191,250,234,171,108,149, 74, 53, 7, 0,231,248,241,227, 83, 22, 44, 88, 64,249,251,251, 15, +201,207,207, 71, 77, 90,228, 25, 18, 91,143, 88,185,108,189,208,153, 81,163, 70, 17,214,165,149,132, 77, 56,185, 34,180,172,149, +175,198,158,151, 32, 8,228,228,228,216,207,253,253,253, 93,254, 45,103,225,227,227,163,235,217,179,167,135, 66,161,216,191, 98, +197,138, 90, 89,178, 54, 46,143, 94,183,236,139,207,228,202,228,139,200,204,206,129, 50,223, 28, 31,119,243,193, 62, 0,251, 0, + 0,155,218,156, 33,222, 72,249,214, 89,206,214,190,162,142, 92, 30,103,223,243, 35, 70,133,142,143,154, 75,190,249,230,155,125, +166, 76,153,162,158, 56,113,226, 59, 82,169,180,165,201,100, 42,218,123,248,240,195,241,227,199, 55, 97, 24,102, 10,106,136, 57, +162,215,235,211, 6, 12, 24,224,152,159,178,147, 39, 79, 6, 60,124,248, 16,179,103,207, 46,200,202,202, 82, 57,222,235, 76, 26, + 77, 38, 83, 90,199,142, 29,171,156, 46,180, 77, 41, 2,128, 70,163, 73,115, 33, 75, 95,133,213,241,189,176,176, 16,183,111,223, + 6,135,195, 65,143, 30, 61, 16, 23, 23,135, 62,125,250, 36,184, 98,213, 42, 45, 45, 69, 88, 88, 24, 74, 75, 75,161,211,233, 74, + 0, 8,182, 55,105, 2, 0,120,171,176, 16, 87,191,250, 10, 23,151, 45,131, 99,121,118, 22, 29, 58,116, 96, 47, 94,188,136,155, + 55,111,194, 96, 48, 96,198,140, 25, 0, 64, 88,203,174, 43, 33, 51,154, 81, 20, 53,124,196,136, 17,193, 0,160,211,233,136,203, +151, 47, 67, 40, 20,218,235,194,193,131, 7,145,149,149, 5,130, 32,224,237,237, 29, 82, 84, 84,212, 4,192,131,106,204,254,196, +131, 7, 15,240,229,151, 95,194, 98,177, 96,193,130, 5,104,209,162,133, 93, 96,165,165,165, 97,241,226,197, 96, 24, 6,159,125, +246, 25,154, 55,111, 14,179,217, 44, 68, 45, 67,104,184, 3,243,230,205,187,183,111,223,190,163, 25, 25, 25, 47, 44, 95,190,188, + 63, 65, 16,150,249,243,231,127, 41,147,201,152,186,240, 22,169, 53,184,125, 55,205, 46,132, 42, 30,126,190,114,151,249,238,220, +207,176,255, 63,195, 56,242, 49,240,145,123,187,154,196, 18,179,217,172,123,249,229,151,189,246,236,217, 67, 52,111,222, 28,127, +253,245,151,205, 50, 84, 2,215, 67, 58,100, 41,149,202, 22, 20, 69,241,238,222,189,139,240,240,112,116,239,222, 29, 75,150, 44, +129, 66,161, 0, 77,211,240,247,247,183,152,205,230, 4,147,201,116,182, 6,174,232,153, 51,103,242, 0,188, 97,181,108,181,159, + 51,103,142,101,229,202,149, 72, 72, 72,176, 91,176, 28,157,225, 93,157, 58,116,180, 58, 57, 30,177,177,177, 11,248,124, 62, 11, +224, 18, 92, 15,244,108,172,104,209,170,141, 53,171,190, 80,159, 43, 25,131,130,130, 98, 61, 60, 60, 70, 21, 21, 21,149,179,106, +245,238,221,219, 20, 16, 16,112,206, 89, 30,169, 84, 90, 68, 81,148, 15, 0,100,101,101, 65, 34,145,240,238,223,191,191, 12,101, +193,179,209,164, 73,147,101, 74,165,146,215,196,218,158, 6, 6, 6,194,104, 52, 86,233,198,114,225, 90,222, 15, 0,126,176,157, +203,229,242, 28,181, 90, 45, 90,185,114,165,118,217,178,101,122,134, 97, 12, 0, 78,171, 84, 42,123, 28,173,220,220, 92, 53,151, +203,149,123,121,121, 53,178, 9,173,202,180,200, 51,134,170, 45, 90, 86, 37,201, 86, 20, 68, 4, 65, 60,226,160, 94,131,208,170, + 81,100, 49, 12, 83,206,202, 96,115,120,175,236,183,172,157,122,173,166, 14,173, 34, 75,184,119,239,222,237, 43, 86,172,184,228, +236,255, 57,250,104,109, 90,245,197,114,155,200,186,241,231, 9,236, 79, 81, 43, 22, 44, 91,189,166,182,111,160,141,175,184, 67, + 64,128,207,153,175,150, 70,203,238, 29,219,138, 95, 55,253,143,189,113,229, 74,183, 43, 87,174, 76,158, 61,123,118, 99,107,193, + 82, 2,184, 14, 96, 60,156, 88,165,147,149,149, 53,172, 66, 39,156,202,227,241, 2,196, 98, 49,178,178,178,180,119,238,220,113, +121, 74, 70,161, 80, 12,171,135, 16,227, 56,105, 0, 0, 32, 0, 73, 68, 65, 84, 2,200,177,137, 44,133, 66,129,164,164, 36, 12, + 28, 56, 16, 0, 16, 23, 23,135,222,189,123, 35, 62, 62, 30,157, 59,119, 78, 0,208, 21, 53, 4,106, 53,155,205,170, 54,109,218, +216,173, 91,106,181,218, 2, 0, 81, 57, 57,136, 9, 10, 2,135,195,193,197,101,203,176,208,108,198, 18, 23, 5,124,199,142, 29, +217,203,151, 47,227,225,195,135,160,105, 26,163, 71,143, 70, 45, 43,125,187,214,173, 91,159, 60,125,250,180,159, 84, 42,133, 78, +167,131, 86,171,197,212,169, 83, 49, 97,194, 4, 24, 12, 6,236,218,181, 11, 7, 14, 28,128,135,135, 7,116, 58, 29,116, 58,157, +247,200,145, 35,207,167,166,166,246, 3,112,183, 10,161,197, 14, 27, 54, 12,231,206,157, 3, 69, 81,232,214,173, 27, 10, 11,255, + 94, 12, 20, 16, 16, 80,217, 53,234, 73, 10, 45, 14,135,195,198,198,198, 46,239,223,191, 63, 50, 50, 50, 94,232,220,185,243,218, +105,211,166,101,213,149,215,219,211, 3, 29,219, 54,131,193, 96,128,193, 96, 64,112,112, 48, 52, 26, 13,238,221,187, 7,131,193, +128, 0,127, 47,151,249, 34,219, 53,183,243,249,251,251, 67,167,211,225,193,131, 7, 48, 26,141,240,245,117, 73,104,133, 14, 27, + 54,236,143,157, 59,119,250,108,221,186,213, 56, 96,192, 0,254,218,181,107, 9,153, 76, 6,135,142,197, 85,196,198,197,197,133, + 13, 25, 50,164, 85,114,114, 50, 98, 99, 99, 97, 52, 26, 17, 25, 25,137, 59,119,238,160,103,207,158,208,106,181,151,174, 92,185, +114,192, 25,195, 48,128,143,103,206,156, 9,155,216, 58,119,238, 28,114,114,114,224,225,225,241,136,208,178,249, 62, 90, 87,141, + 7, 59,147, 88,155, 32,114,176, 60, 45,244,242,242, 50, 1, 88, 83, 75,235, 19, 0, 32, 35, 35, 67,208,190,125,123,131, 80, 40, +228, 91, 69,219,234,186,240,185, 19,110, 88,201, 88, 37, 2, 3, 3,231,248,250,250, 14,105,218,180, 41,242,242,242,120,124, 62, + 31,189,123,247, 54,117,237,218,213, 20, 24, 24,248,150,179, 60, 2,129, 32,153,199,227,245, 43, 27, 76, 48, 72, 79, 79, 7,203, +178, 11,218,181,107,247,174, 70,163, 65, 97, 97, 33, 95, 38,147,217, 7,213,173, 90,181,130,193, 96, 72,118,193,242, 22, 29, 30, + 30,254, 49,143,199, 91,162, 80, 40, 42, 11, 11,193,247,242,242,146,241,120, 60,152, 76,166,114, 98,179,162, 22,121,214, 69, 86, + 57,161,229,160, 34,203, 9, 29, 87, 44, 90,206, 88, 13,108, 14,246,142,231, 54, 81, 87,241,183,106, 27, 67,203,211,211,211, 96, + 19, 89, 75,150, 44,185, 84, 27,142,221, 59,119, 4,121, 90, 74, 66,179, 47, 29, 65,234,205,120,236, 75, 82, 41, 22, 44, 91,253, +206,139,175,188,154, 87, 81,152, 57,131, 22,126,226,118, 1,254, 62,103, 86,173, 88, 38, 83, 38, 95, 68, 78,110, 46,142, 92,186, + 18,111, 2,146, 0, 44,112,167,105, 25, 40,155, 58,164, 40,234,105, 42,176,118,103,248,156,156, 28,155,200,138, 4,128, 62,125, +250, 36, 88, 69, 22,156,181,104,169, 84,170,138, 91,214, 12, 1,224,107,123,126, 14,135,131,222, 31,127,236,178,200, 2,192,198, +199,199, 67,169, 84,218, 70,138,181, 21, 89, 8, 12, 12,124,255,244,233,211,126,223,127,255,125,241,182,109,219, 10, 45, 22, 11, +183, 99,199,142, 33, 93,186,116, 33,182,111,223, 14, 0, 24, 63,126, 60, 22, 44, 88,128, 91,183,110, 65, 34,145,160, 79,159, 62, +204,162, 69,139,252,231,204,153,243, 86, 94, 94,222, 59,149,246,142, 22, 11, 79, 40, 20,158, 2, 48, 40, 57, 57, 25, 0,206,163, +108, 11, 39,155, 21,161,202,107,206,116,190, 26,141,134,235,225,225, 81,105,104, 8, 94,217,104,200, 85, 11,132,157,243,207, 63, +255,252,114,213,170, 85,251,222,123,239,189,187,117,228,172,212,162, 53,106,212, 40,232, 13, 38,100,230,169,193, 48, 52,244,166, +124,151,249, 28, 45, 90,163, 70,141, 66, 73,169, 17,233, 57, 74,208, 52, 3,141,222,233,190, 92,252,252,243,207, 31,255,249,231, +159, 3, 47, 92,184, 0,134, 97, 44,119,238,220,121,240,242,203, 47,203,230,207,159,239, 83,135, 69, 70,223,188,250,234,171, 99, +255,252,243, 79,101,171, 86,173,228,151, 46, 93, 66,126,126, 62,104,154,198,160, 65,131,192,231,243,211,151, 45, 91,198, 3,240, +141,179,239,198, 42,182, 76, 87,174, 92,121,253,226,197,139,114,185, 92,206,183,180,110,141,156, 19, 39,176,103,207,158, 71,254, + 97,211,166, 77,128,147, 81,248,109, 22,167,203,151, 47,187, 69, 96,149,235,169,249,252, 90, 79, 63, 62,171,184,124,249,114,214, +155,111,190,217, 86, 38,147,173,233,219,183,239, 64, 31, 31, 31,210,219,219, 59,182, 81,163, 70,239,118,236,216,209,233,217, 5, + 46,151, 59, 77, 34,145,220,163,105,154,210,106,181,208,233,116,101,141, 52, 77,243, 73,146, 68,147, 38, 77,236,125, 73,183,110, +221, 16, 24, 24,200,164,164,164, 76,115,150,191,160,160,160,220, 42,196, 74, 48,179,119,239,222, 28,131,193,128,135, 15, 31,198, + 57, 94,168, 76,139, 60, 35,136,170, 86,124,217, 30,202,241,225, 26, 53,106,148, 97, 54,155,217, 36,128,189,126,253, 58, 27, 21, + 21, 85,237, 81, 90, 90,202,250,251,251,231, 84,210,249,193,145,211, 96, 48,148,251, 63,131,193,192, 6, 4, 4, 48,122,189,254, + 17, 78,189, 94,207,134,132,132,100, 85,199, 89, 9,166, 94,187,118,109,195,194,133, 11,187,187,144, 65,118, 78,118, 99,107,118, +235,214,173,255,102, 89,182,127,223,182, 97, 55,199,117, 12, 96,123,183,240,207, 62,176,123,231, 4,150,101,251, 87, 60,108, 1, + 78,171,227,108, 29, 32,105, 51, 56,162,113,209,141, 99, 63,177,167, 87,190,205,174, 26,221,130,237, 28,226,161,106,237, 43,114, +117,143,152, 26,119, 75,143,136,136, 72,181, 88, 44,172,209,104,100, 35, 34, 34,238,184,131,179, 22,168,142,179, 19,202,124,217, + 94,173,228,187, 78,117, 72,231, 13,150,101, 89,165, 82,201,106,181, 90,214, 96, 48,176, 12,195,176,142, 0,112,195, 9, 78,214, +100, 50,177, 69, 69, 69, 44,156,247,185,171,148, 51, 40, 40,232,193,253,251,247,217,231,158,123, 46,195,106,142,159,163,211,233, +216,138,208,233,116,236,192,129, 3,217, 59,119,238,176,225,225,225,165,119,238,220, 97,131,130,130,110,215,144,206,166,161,161, +161,167,124,125,125, 99, 1,180,112,225, 90,181,249,185,107,215,174,102, 44,203,206, 96, 89, 54,170,138, 99, 6,203,178,173,159, + 52,167, 53,127,243, 88,150,101, 75, 74, 74, 88,165, 82,201,102,103,103,179, 37, 37, 37,172, 86,171,101,175, 93,187,198, 94,184, +112,129,189,121,243, 38, 43,151,203,243,156,225,180,241, 25,141, 70,182,184,184,152,205,207,207,103,245,122, 61,171,211,233,216, +196,196, 68,246,234,213,171,108,114,114,114,101,124,143,112,250,248,248,108,202,205,205,213,158, 63,127,190,100,227,198,141, 37, +129,129,129,201, 0,194, 0,180,244,246,246,206,125,251,237,183, 89,169, 84,154, 86,203,122,212,150,203,229, 94, 91,190,124,249, +229, 67,135, 14,229, 29, 56,112,192,184,101,203,150,204,217,179,103,159,229,112, 56,215, 0,180,173,101, 61,242,247,242,242, 58, +127,233,210, 37,186,168,168,136, 85,169, 84,108,113,113, 49,171,211,233, 88,189, 94,207, 26,141, 70,214,108, 54,179,103,207,158, +101, 3, 2, 2, 28,167, 37, 63,168,102, 96, 61,151,101,217,247, 89,150,229,184,187,173,115,224,238,235, 46, 78,119,180,117, 36, + 73,154,172,109, 71,143,178,211,234,207,159, 84, 58, 7, 15, 30,252,217,132, 9, 19,216,225,195,135,179,145,145,145,143, 28,157, + 59,119,102,103,205,154,197, 30, 58,116,136,253,234,171,175, 62,115, 67, 58, 57, 40, 91,244,178,116,240,224,193,230,115,231,206, +177,227,199,143,103, 1, 12,171, 78,139,252, 19, 4,151, 45,188, 3,225,248, 23, 0, 76, 38, 83, 70,106,106,106, 80, 43,154,166, + 0,224,219,111,191,125,196, 50,229,136,115,231,206,209, 4, 65,220,171,238,215, 77, 38, 83,198,233,211,167, 3,214,173, 91,199, +117, 48, 1,131,166,105, 75,118,118, 54,185,118,237,218,114,247,159, 57,115,134,166,105, 58,221,197,135,220,218,169, 83,167,173, +238,200,173,179,183, 30,190,123,252,200,111,190, 61,186,247, 85,201,228,242, 74, 71, 97,187,222,106, 13,226,141,234,173, 90, 4, +135, 92,178,124,105,180,151,109, 10,242,151,132, 92, 85,169,129, 25,152,162,208,223,112,247, 27,214,106,181, 15,109, 43, 1,117, + 58, 93,250, 83, 88, 8,175,161, 44,198, 21, 93,225,187,174,168,163,211,169,197, 98,129,167,167,167,221, 26, 90, 11,139, 40,107, +179,176,218, 94, 93, 93,210,195,178,236,159,137,137,137,225, 83,167, 78,245,216,182,109,219,125,134, 97,184,211,167, 79, 55, 5, + 6, 6,242,226,226,226,204, 0,136,254,253,251,115,114,115,115,217,172,172, 44,229,191,254,245, 47,205,235,175,191,238,115,253, +250,117,190,197, 98,169, 41,104,225, 95, 25, 25, 25,131,107,113,173, 90,140, 27, 55,238, 62,234,190,141, 77,189,115,218,160, 84, + 21,227,254,195, 44,107, 4,115, 11,152,180, 60,187, 95,149,217, 76, 67, 89, 92,232,178, 69,235,222,131, 44,235, 22, 99, 12, 24, + 38,219,202, 87,230, 16,207, 22,149,212,220,155,112, 56,125, 22, 45, 90, 52,130, 36, 73,242,226,197,139,134, 21, 43, 86,100, 20, + 20, 20,140, 6,144, 14, 0, 69, 69, 69, 3,182,110,221,250,163, 19,161, 28,170, 66,146,217,108,238,249,193, 7, 31,188, 3,160, + 15,128,198, 86,238, 56,171, 37,171,182, 17,204,243, 85, 42,213,208, 17, 35, 70,156,160, 40,170,137, 67, 61,242, 5,160,176,213, + 11,150,101,253,243,242,242, 94,112,134,144, 32,136,213,245,213,144,212, 39,119, 29,219,161,103, 98, 37,227,169, 83,167, 62, 31, + 61,122, 52, 39, 44, 44,236,191, 97, 97, 97,100, 81, 81, 17,180, 90, 45, 72,146, 68, 96, 96, 32, 34, 34, 34, 16, 24, 24,104, 73, + 78, 78, 94,250,225,135, 31,214, 24,147,175, 77,155, 54,205,204,102,243,115, 36, 73, 54, 3,208,140,101,217,102, 4, 65, 52, 3, + 32, 7, 0,153, 76, 38, 11, 15, 15,231,244,232,209, 3,221,187,119,199,153, 51,103,176,123,247,238, 31, 0, 28,119,180,102, 85, +212, 34, 79, 3,146, 58,129,109,123, 13,196,173,206,232, 79, 88,112,134, 37, 49, 32, 34,222, 30,103,175,162,200,170,122, 83,233, + 74, 76,127,195, 6, 13, 26,100,175,112, 78,116, 42, 15,107,170,124, 5, 5, 5,195,166, 77,155, 86,142,147, 97, 24, 67, 97, 97, +225,155,189,122,245, 90, 79, 81,148,160, 66,129, 77,203,207,207,127,172,123,245, 85,140,163, 53,108,196, 75,138,186,114, 74,121, +228,115,169,135,191, 67, 94,190, 2,191, 36,228, 22,105,140,204,128, 59,138,146,196,250, 72,127, 90, 90,218,240,103, 64,241, 87, + 38, 90,235,186,121,118,129, 19, 1, 73,107,218,163,142,176,134, 19,113, 75, 37,207,205,205, 93,249,241,199, 31, 15, 93,186,116, +169,223,209,163, 71,101,182, 1,202,152, 49, 99,242, 19, 19, 19,251, 2, 16,148,150,150,158, 92,186,116,169, 95,116,116,180, 15, + 0, 31, 0, 24, 57,114,100, 94, 94, 94,222, 58, 52,160, 90,152,205,230,204,136, 54,173,236, 3, 63,199,144, 14,142,159,105,154, +206,116,133,175, 50, 30,199,115,134, 97,170,229,163, 40,234,189,238,221,187, 83,239,189,247, 94,222,209,163, 71,109, 27,233, 58, + 42,180,212, 26,130,146, 58, 3, 3,128, 21,214,195,157,208, 41,149,202,158, 46,254, 15,211, 80, 26, 43, 29, 80,186,114,254, 68, +176,127,255,254, 79,198,143, 31,191, 85, 46,151,239,104,214,172, 89,171,128,128, 0,153, 72, 36,130,193, 96,208, 24,141,198,219, +169,169,169, 19, 63,249,228,147,191,156,178,112,108,221, 74, 1,224, 89, 44, 22, 33, 73,146, 18, 0, 50,130, 32,188,109, 66,139, + 32, 8,152, 76, 38, 60,124,248, 16, 11, 23, 46,100, 78,157, 58,245, 21,128,207, 92, 24,184,118, 5,224,231,208,142,251, 1, 48, +162, 44,128,109, 1, 65, 16, 87,234, 59,191, 8, 11,206,180,189, 6, 34,169, 19, 42,235, 39,170,223, 84,186,170, 10, 87, 80, 80, +208,211,221,149,184, 42,206,130,130,130,176,167,165,134, 76, 49,172,248, 9,155, 86,148,219,231,208, 38,194, 42, 59,175, 9,106, + 61, 61,251,155,227,183, 86, 26,104,214, 98,162, 45,255,185, 83, 80,146,212,208, 14,185, 29,207,187,171, 46,185, 49, 77,137, 41, + 41, 41,189,102,207,158,253,137, 88, 44,238, 6, 0, 37, 37, 37, 23,179,179,179,191,128,117, 85, 97, 77,215, 27, 80, 53, 20, 10, + 69,151,167,145,207,104, 52,190,219,171, 87,175,175, 25,134, 89, 69,211,116,220,255,131, 87, 81,218, 80, 26,159, 93,252,250,235, +175,127, 1,232, 9, 0, 99,199,142,165, 0, 96,247,238,221, 46,139,231,169, 83,167, 50, 44,203,154,172,229, 65,135,178,213,133, + 69,182, 54, 85,167,211, 21,101,103,103, 39, 51, 12,147, 12,224, 71,184,190,226,214,143, 32,136, 67, 44,203,142,178, 10,183, 67, + 44,203,142,114,252,174,190,173, 90, 53,220, 82,179, 51,124, 3,202,176, 59, 9, 68,197,169,192,154,206,107, 66,106,158, 46, 22, + 64,231,134,220,253,127,137,251,217,217,217, 83,234,112,189, 1,207, 30,210,141, 70,227,232,255, 71,207,171,110,120,229,255,144, +254,175, 22, 2,203,134,228,228,228,122,115, 17,120,210,104,123,173,252, 0,188,226,185, 3,162, 42, 19, 94, 13, 66,171, 1, 13, +104, 64, 3, 26, 80, 23,168, 26,178,160, 1,255,100,216,124,179,108,231, 85,248,104, 85,244,207,178,159, 19,168,122,229,128, 43, +187,146,215,102,149,196,201, 6,206, 6,206, 6,206, 6,206, 6,206, 39,206,233, 5, 32, 28,192,242, 26,238,171,184,186, 48, 15, +128, 2,128,185, 33, 63, 27, 56,235,160, 31,156, 2,203,178, 35,171,155, 58, 36, 8,226,112,125, 9, 45,187, 51,124, 39, 44,138, +184,134, 69,182,115,103,133, 86,125, 99, 72, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 29,133,214,192, 15, + 63,252,240, 35,148,133,198, 96, 63,252,240,195,143, 88,150, 29, 89,118,137, 29, 89,159,191,125,171, 51,250, 39,117, 2,107, 59, +110,117, 70,255, 42,110,141,114, 56,236,104,152, 58,108, 64, 3, 26,208,128, 6, 52,160, 1, 79, 59,206, 47, 91,182,172,100,217, +178,101, 54,199,247, 2, 0,132,213,194, 85, 80,159, 63,108,157, 38,116,102,161, 84,245, 91,240, 60, 1, 4,147, 28,222, 36, 46, + 79, 48, 16,172, 37, 2, 0, 64, 82,183, 24, 99,233, 31, 52,109,218, 1, 32,187,182,196,173,129, 54,205,189, 68, 7, 12, 12,195, +203,208, 24,199,166,148,109,115,224, 50,198, 2,189, 5,124,254,239, 2, 47, 47, 81,101,215, 13, 42,149,222, 96, 52, 14,221, 13, +252,217, 80, 7, 26,208,128, 6, 52,160, 1,207, 8, 36,222,222,222,167, 72,146, 12,179,125,225, 24,119,176, 98, 12, 66,134, 97, +114,148, 74,229, 80,148, 77, 21, 63, 78, 78,199,255, 55,162,150,125,185,187,225,234,212, 33, 7, 40, 23,133,245,177,236,152, 77, +113, 5,175,123,120,122, 45,249,247,180,119,125, 90,180,108, 69,132,134, 54, 2, 88, 32, 61, 35, 51,224,222,221, 59,131,127,221, +246,205,188, 98,181,114,161,217, 96,248,206, 85,238, 54,128,164,177, 84, 16,247,221,135,175,121,113, 64,227,213,197, 59,143, 17, + 90, 83,104,114,217,114, 83,151, 68,150,151,143,207,241,101, 39, 79,138,188, 59,116, 40,119,141,101,217,178,253,245,110,220, 16, +253,119,232,208,227, 99,149,202, 97, 13, 98,235, 31,137, 64,153, 76, 54,135,203,229, 14, 48,153, 76, 97,124, 62, 63,131, 97,152, +216,162,162,162, 53, 0,178, 26,178,231,159,141, 86,129,146,190,173,154,133,237,204,206,205, 75, 40, 46, 53, 78, 79,205,214, 42, + 27,114,197,101, 84,183,191,230, 19,219,123, 19, 0,164, 82,233, 85,146, 36, 67, 28, 69,128,109,207, 94,219,121,197,191, 22,139, +229, 47,165, 82,217,171, 26,218,102,114,185,124, 61,128,174, 53, 5, 76,182,198,102,187,162, 84, 42,223, 68,213,171,245, 60,188, +189,189, 63, 39, 8, 98, 28, 73,146, 84, 77,207,100,177, 88, 24,150,101,119, 21, 21, 21,125, 6, 64, 83,213,125,222,222,222, 39, + 83, 82, 82,186,250,251,251,215,104,165,161,105, 26,233,233,233,126,221,186,117, 59,171, 84, 42, 91,215, 39,231,227,214, 34,181, + 69, 53,171, 14,171, 44,232, 0,202,237, 47, 84,175, 17, 89,121, 66,233,129,158,253,134, 13,156,245,206,123,146,107,137,183,241, +251,153, 11, 40,214, 25, 64,145, 36,188, 60,196,104,217,242, 57, 98,117,204, 30,223, 31, 54,174, 94,117,241,220,137,145,165, 58, +245,191, 92,146,233, 98,206,194, 5, 47,119,147,248,200, 25,192,194,224,253, 17, 29, 37,255, 61,148,176, 16, 37,244, 71, 46,139, +172, 83,167,196,249,121,121,136, 14, 14, 6,135,166, 33, 36, 73, 8, 9, 2, 66,146,132, 68, 40,196,240, 45, 91,240,197,209,163, +226, 79, 94,120,161, 65,108,253,195, 32,149, 74,167, 5, 7, 7,175,216,188,121,179, 79,211,166, 77, 33,145, 72,160, 84, 42,125, + 83, 83, 83, 59,205,157, 59,119, 74, 78, 78,206,199,197,197,197,155, 26,114,234,159, 11,139, 5,147,190, 95,242,102,163,156,180, +187,141,102, 46,253,169, 37,225,195, 12,184, 93,168,207,109,200, 25,167,209, 9, 64, 2, 42,223,191,180,186,107, 85, 66, 40, 20, +230,149,150,150,250, 87,119, 15,159,207,207, 55, 26,141, 1, 53,113,145, 36, 25,146,149,149,229, 47, 22,139,193, 48,140,117, 55, + 0,139,125, 32,237,184,251,137, 53, 80, 45, 90,183,110,109,170,142,211,195,195,227,219,252,252,252, 33,182,125, 2, 29, 4, 85, +165,200,202,202, 26,210,182,109,219,111, 53, 26,205,208, 42,196,203,231,239,188,243,206,156,118,237,218,217,172, 64,214, 93, 16, +202,254, 42, 20, 10,204,158, 61,219,254, 27, 22,139, 5, 39, 78,156,120,103,218,180,105, 40, 42, 42,154, 91,205,179,135,249,251, +251, 19,214, 13,197,171,196,162, 69,139,176,104,209, 34,124,243,205, 55, 4,151,203,245,170, 33, 63,221,194,249,184,180, 72,109, + 44, 88, 53, 68,134, 63,140,242,190, 89,135, 31, 17, 90,143, 3, 20, 87,240,159,174,189,134, 12,152, 61,103,129,228,167,223, 78, + 35, 53,249, 6, 82,226,126, 46,119, 79,151,161,211,144,171,208, 96,218,172,247,165, 4,197, 25,112,238,228,254,255,152, 13,250, +239,157,180,102, 5,132, 9,248,111,247,232, 22,193,205, 18,165, 34,208, 91,132, 62,157,155,115, 67,143,223,124, 91, 7,250,235, +228,178, 85, 50, 46,137,172,205,175,189,134,190,102, 51,252, 41, 10, 20, 65,128, 2, 64, 18, 4, 74, 13, 6, 92,153, 52, 9,221, +182,111,199,103, 7, 15,138, 63,127,241, 69,151,196,150, 68, 34,185, 70, 16,132,183, 86,171, 29,137,178,141,165,159, 5,180,149, + 74,165,135, 89,150, 45,210,233,116,157,158,162,116, 5,161,108,142,190,226,232,152,135,178, 21, 85, 46,237, 44, 44, 16, 8, 94, + 31, 59,118,236,234,117,235,214,137,243,242,242,144,157,157, 13,134, 97, 32, 20, 10,209,162, 69, 11,226,228,201,147, 62, 11, 22, + 44, 88,121,248,240, 97,129, 70,163,249,218,149,129, 13,151,203,141,145,203,229, 47, 4, 4, 4, 72,242,243,243, 75, 84, 42,213, + 9,131,193,240, 58,106,191,109, 10,201,229,114, 39,134,135,135,191, 20, 28, 28, 28,144,149,149,165,200,204,204, 60, 96, 48, 24, +126, 64, 45, 55,106,118,200,211, 14,176, 70,171, 7,144, 19, 30, 30,126,235,225,195,135,249,110,228,204, 14, 15, 15, 79,170, 5, +167, 4,192,175, 0,130,107,184, 47, 27,192,120,184,104,205,182,103, 44,107, 57,178,120,205,230,233,209, 83,251, 16,223,207, 29, +210,226,141,111, 78, 94, 32,121,108,191,228,156,210,140, 6, 13,229,156,200,178,110,105, 85, 81, 80, 85,119,173, 90, 24, 12, 6, + 63,147,201, 4,110, 21,155,197,235,116, 58,120,120,120,248, 57,155, 72,145, 72,132,159,127,254, 25, 92, 46, 23, 92, 46, 23, 69, + 69, 69, 8, 9, 9,177,159,243,120, 60,251,231,198,141, 27,215,200,199, 48, 76, 55,138,162,160,213,106,193, 48,140,253, 80,169, + 84, 96, 89, 22, 2,129, 0, 12, 83,182,157,147,195,245,110, 85,241, 17, 4, 49, 46, 56, 56, 24, 63,253,244, 19,140, 70,227, 35, +215,101, 50, 25, 18, 19,255,222,100,132,162, 40,116,239,222,157, 36, 8, 98, 28,128,185,213,240,178, 0, 16, 21, 21, 5,138,162, + 64, 81, 20, 72,146,180,127,182, 29, 12,195, 96,209,162, 69,168,176, 53,217, 99,227,124,218, 80, 67,100,248, 28, 84,225,163, 69, +214,115,186, 28,151,120, 6,139, 37,178, 47,223,124,247,125,233,225,179, 55,145,158,145,254,136,200, 2,128,171,191,255,128,156, +236, 44, 36,164,100, 98,226,127,222,146,202,100, 94, 95, 86,104, 80,171, 92, 54,234,233,193,251,234,195,241,125,132, 90,115, 54, + 52,222, 0,213,140, 15,174, 88,135, 5,163, 58, 8,100, 30,188, 21,206,164, 83,192,231,255,190,236,228, 73,187,200,234,109, 48, + 64,192, 48,160, 25,198, 46,178,140, 52, 13,189,209,136, 32,173, 22,247,166, 77, 3,107, 54,227,227,125,251,196, 2, 62,255,119, +103,210, 9, 0, 60, 30, 47,232,192,129, 3,141,219,183,111,127, 6,206, 7, 51, 61, 89,207,239,168, 58,116,238,216,177, 99,236, +246,237,219, 27,243,120,188, 32,119,112, 10,133,194, 87, 36, 18, 73,129, 80, 40,124,165,150,233, 36, 1, 44,158, 62,125,122,252, +115,207, 61,119,218, 42,172,236,162,230,185,231,158, 59, 57,125,250,244,107, 0, 22, 85, 81,214, 43,227,108, 20, 28, 28,188,100, +221,186,117,226, 59,119,238, 32, 43, 43, 11,102,179, 25,175,190,250, 42, 24,134,129, 94,175,135,209,104,196,242,229,203, 37, 62, + 62, 62, 11, 81,182, 81,176, 51,207,206,243,244,244,188,179,109,219,182,177, 15, 30, 60,144,158, 62,125,154, 72, 76, 76,148,172, + 92,185,114,180,143,143, 79, 42, 0, 65, 45,242,147, 12, 10, 10,250,126,255,254,253,111, 38, 38, 38,134,236,221,187,151,123,241, +226,197,160,141, 27, 55,206, 8, 10, 10,218, 14,128,170,229, 59,234, 36, 22,139, 7,207,159, 63,223,114,254,252,249,172,243,231, +207,103,173, 94,189, 26,125,251,246,237, 29, 29, 29, 29, 89, 75,206,206, 30, 30, 30,131,230,207,159,111, 57,119,238, 92,246,165, + 75,151, 50, 87,174, 92, 73, 14, 26, 52,168,207,146, 37, 75, 58,184,200,249,235,249,243,231,251,103,100,100, 52,205,204,204,108, +146,153,153, 25,158,153,153, 25,158,149,149, 21,150,147,147,211, 56, 55, 55, 55, 52, 63, 63, 63, 52, 54, 54,182, 15,128,157,206, +112,182, 10,144,188, 57,247,213, 33, 37, 11,255, 51,130,253,104,242,243,236,130, 87,251,179, 47,244,107,255, 27,197,225, 16,151, +146,210, 17,226, 9,252, 48,187,107, 88,168,175, 36, 49, 66, 46,109,249,148,213,205,167,141,147, 99, 19, 82, 74,165, 18,135, 15, + 31,134,213,122,213,201, 81,100, 21, 23, 23, 35, 39, 39,199,118,141,227, 76, 58,101, 50,217,169,205,155, 55,179,165,165,165, 80, +171,213,200,207,207, 71, 70, 70, 6,238,221,187,135,194,194, 66,220,190,125, 27, 98,177,248,148, 51,233, 36, 8, 2, 12,195,216, +133,212,137, 19, 39, 48,125,250,116, 40,149, 74,251,119, 28, 14,199,254,217,246, 63, 53,113,218, 44, 79, 12,195,224,210,165, 75, +152, 57,115, 38, 86,175, 94,141,157, 59,119,226,208,161, 67, 80, 42,149,118,177, 69,211,116,141,156, 10,133, 2, 22,139,115, 99, + 38,150,101,161, 86,171,157,126,239,142, 2,136,195,225, 60, 34,138,108,135, 43,101,169,142,156, 79, 45,156,136, 12, 95,245, 8, +219,246,193,106,170, 27, 80, 95,137, 36, 57,188,137,227,166,190,227,147,153, 95,140,172, 60, 53, 40,242,239,126, 47,114,200, 84, +112, 40, 18,151,143,151, 25,174, 72,138,130, 90,103,128, 74,107,194,216,169,115,228,223,173,254,116, 34,109, 42,173, 54,198, 75, + 59,160, 69,132, 84,250,114,219,182,141,201,100, 65, 10, 34, 95,136, 3, 99, 1,216,115, 47,162, 83,145, 63,213,250,119,254,203, + 58,141,105, 73, 34,112,167, 90,107,134,151,151,200,187, 67, 7, 68, 7, 7,163,159,217, 12, 30,203,226,249,188, 60,220,152, 51, + 7,134, 61,123, 64, 2,224,189,242, 10, 6,174, 89,131,179,193,193, 8,212,235,161,154, 55, 15,126,199,142,129, 39,147,137, 80, +224,220,226, 7,130, 32, 48, 96,192, 0,156, 60,121,210,103,248,240,225,199,111,222,188, 57,134,166,233,179,181,201, 91, 79, 79, +207,171, 28, 14, 39,164,166,251,104,154,206, 84,171,213, 46,111, 51,194,225,112,250,117,239,222,125,223,222,189,123,189, 77, 38, +147, 91, 70, 33,124, 62,127,248,232,209,163, 55,111,216,176, 65, 54, 99,198,140,205,135, 14, 29, 42, 49, 26,141,199, 92, 41, 82, + 0, 22,111,218,180,233,141,168,168, 40,175, 25, 51,102,176,247,238,221,115,180, 94,249,245,237,219,247,185,205,155, 55, 7,118, +237,218,245,157,153, 51,103,242, 0,124, 92,147,149, 71, 42,149,206,218,188,121,179,175, 66,161,128, 86,171,181, 55,178,153,153, +153, 16,137, 68, 32, 73, 18, 36, 73,130,203,229,226,203, 47,191,244,153, 53,107,214, 28,165, 82, 57,199, 9, 43, 89,204,250,245, +235,253,134, 14, 29, 74, 62,120,240, 0, 36, 73, 66, 40, 20,226,181,215, 94, 35,245,122,189,119,116,116,244, 86,157, 78, 55,193, +149, 60,228,114,185, 19, 99, 98, 98, 90,246,238,221,155,147,146,146,130,158, 61,123,226,242,229,203,120,229,149, 87,184, 26,141, +166,201,130, 5, 11,166, 27, 12, 6, 87,227,184, 4,137,197,226,118,127,252,241, 71, 70,104,104,168,189, 97,105,210,164, 9, 51, +114,228, 72,101, 74, 74, 74,171,243,231,207, 23,246,234,213,203,149, 13,203, 27,137,197,226,214, 71,142, 28,201,137,142,142, 30, +188,105,211,166,209, 0,208,173, 91,183, 3, 95,124,241,197,105,165, 82, 25,113,246,236, 89,101,191,126,253, 50,157,228, 11, 14, + 10, 10, 98,102,207,158, 45,173,238,166, 45, 91,182,168, 80,182,225,114, 83, 0,213,238,215,214, 42, 60,112,225,138, 57,227, 68, + 96, 76, 96,205,122,192, 84, 2,152,180,176, 24, 75, 64,240, 68,128, 89, 15, 63,129, 18,191,206,106, 37,251,224,167,251,201,204, +109, 98,100,138, 66,115, 12, 13,168,180,169, 1, 16, 73, 16, 68,194,225,195,135,209,189,123,119, 28, 62,124, 24, 35, 71,142, 76, +112, 20, 3,137,137,137,232,215,175, 31,172, 22, 45,167,124,181,212,106,245,135,139, 22, 45, 58, 55,113,226, 68,113,185,198,128, + 36,225,229,229,133, 17, 35, 70,148,234,116,186, 15,157, 77, 40,195, 48,224,112, 56,200,204,204,196,150, 45, 91,176,116,233, 82, +180,104,209, 2,102,179,249, 17,177,101,109,247,156,106,252,104,154,198,149, 43, 87,176, 99,251,118,124,188,112, 33, 60, 60, 60, + 0, 0, 38,147, 9,202,162, 34, 8,133, 66,187, 24,171, 65, 56,237,186,123,247,238,156,144,144,144,114, 83,134,182,191,214, 54, + 11, 22,139, 5, 52, 77,163,180,180, 20,171, 87,175,166, 89,150,221, 85, 83,255, 99, 19, 69,115,230,204,129,193,240,183, 65,189, +131,213, 39, 57, 60, 60, 28, 29, 59,118,180,159,147, 36,201, 58,203,249, 93,175,118,208, 59,220,221,106,209, 74, 0, 64, 72, 72, + 8, 90,181,106,133,160,160,160, 42, 57,235, 91,139,212, 6, 46, 68,134,175, 90,104, 61,142,157,178,185, 60,225,192,102,205, 91, + 18,233, 57, 74,112, 56, 28, 72, 60,125,209,235,165,185,160, 40, 18, 82, 47, 95, 16,140,254,111, 69, 76, 82,224, 80, 28, 40, 53, +122,132, 55,109, 78, 10,132,162,129,186, 26,132,150,204,147,187,126,254,132, 94,194, 66, 58, 19,162,198, 66, 48,182,238, 52,152, + 15,210, 71,131,247,134,183, 16, 69, 29,184,185, 30,106,243, 32,103,210, 75,209, 52,252, 41, 10, 38,150,197,141, 57,115, 16, 25, + 19,131, 4,155, 48,140,137, 65, 66, 84, 20,228, 92, 46, 4, 36, 9,214,108,126,100, 78,223, 25,161, 5, 0, 25, 25, 25,216,179, +103,143,124,220,184,113,251, 18, 19, 19, 39,186, 40, 54,108, 92,190,151, 46, 93,242,111,218,180,105,149,247,252,245,215, 95,232, +210,165,139,203,211, 83,124, 62,127,248,160, 65,131,126,218,179,103,143,103, 82, 82, 18,252,253,253,235, 44,180, 4, 2, 65,191, + 33, 67,134,252,180,109,219, 54, 89, 65, 65, 1, 98, 98, 98,100, 47,190,248,226,206,248,248,248,151, 12, 6,131, 51, 98,179,156, +200,138,137,137, 81,109,217,178,229, 59,148,159, 34,204,217,178,101,203,247, 93,187,118,125, 51, 42, 42,202, 11,192, 27, 86,223, +129,106,197,150, 64, 32, 24,208,172, 89,179,114,163, 90,129,160,204,216, 36,145, 72,224,233,233, 9, 30,143, 7,131,193,128,200, +200, 72,130,207,231,247,113,230,153, 61, 60, 60,134,188,252,242,203,100, 92, 92, 28,114,115,115,225,229,229, 5,169, 84, 10,134, + 97, 48, 99,198, 12,106,245,234,213, 3,116, 58,215,102,184, 66, 67, 67, 71, 15, 30, 60,152,115,235,214, 45, 60,120,240, 0, 6, +131, 1,169,169,169,144,201,100,152, 60,121, 50,111,197,138, 21, 47,102,101,101,185, 42,180,218, 69, 69, 69,229, 57,138, 44, 27, + 36, 18, 9,209,178,101, 75,165,143,143, 79,103, 0,174, 8,173,118,111,189,245, 86,254,178,101,203,250,157, 60,121,210, 30,244, +242,228,201,147, 11, 0,224,235,175,191, 62,231,231,231,215, 25,128,179, 66, 11, 44,203, 90,254,253,239,127,167,241,249,124,112, +185, 92,240,249,252,114, 7,143,199, 3, 73,146, 30,182,234, 92, 19, 95,242,131,220,229, 51, 22,172, 92, 41, 17, 82,220,119, 95, +106,143,198, 94, 60, 64, 36, 7,175,223, 7, 32,188,202,140,150,172,242, 47,224,247, 15,176,234,101, 37, 25,245, 99,233,111, 38, +198,219,239,126, 81,145,230, 9,247, 1, 93, 1,252, 15,101,155,235, 46, 4,112,233, 41,233,155,174, 1,136, 28, 57,114,164, 93, +108, 29, 61,122, 20,195,135, 15,135, 74,165,194,173, 91,183, 28, 69,150, 43, 27, 44, 95, 51,155,205,215,127,254,249,231, 94,227, +198,141, 35, 28,234, 23,146,146,146,112,251,246,237, 4,103,249, 72,146,132,197, 98, 1,151,203,197,202,149, 43, 97, 50,153,240, +227,143, 63, 98,247,238,221, 32, 73, 18, 4, 65,128, 32, 8,200,100, 50,124,243,205, 55, 46,181,123, 12,195, 96,235,214,173,248, + 96,193, 2,187,200,178,206,100, 32, 48, 32, 0, 62,190,190,184,127,255,126,141, 66,171,168,168,232,179,131, 7, 15,162, 58,103, +248,131, 7, 15,218, 63, 87,112,134,175,185,159,163, 40, 24, 12, 6, 60,255,252,223, 91,197,190,245,214, 91,246,207, 74,165, 18, + 20, 69,217,242,130,112,150, 83,207, 2, 47, 9,255,254,110,196,123,239,149,179,208, 85,197,249, 56,180,136,187,172, 91,149,136, +173, 72,171,117, 54, 8,192, 72,148,249,104,229, 0,143,209, 71,139,101, 45,173, 67, 26, 5,227,250,189, 68,112, 40, 10,124, 79, + 95,120,202, 3, 96,161,141, 80,231, 63,192,153,189,223, 2, 0, 54,109,221, 5,146, 36,193,225, 80, 48, 24, 25,180,104, 28, 12, +139,197,210,186, 58,238, 54, 64,175, 1, 1,190,221, 67,195,188,136, 91,222, 15,208,210,223,167,194, 68,136, 0, 45,178,165, 68, + 79,169,168, 91,145,186,184, 87, 50,112,190, 70, 49, 64,146, 32, 9, 2, 98, 30, 15,134, 61,123,202,188, 54, 99,202,250,172,132, +168, 40,144,191,253, 6, 15,129, 0, 20, 65,128, 99, 53, 65,215, 6,197,197,197, 32, 8, 2, 59,118,236,240,158, 60,121,242,206, + 91,183,110, 69,149,150,150,238,113,133, 67,165, 82,141,236,221,187,247,233,173, 91,183,250, 5, 6, 6, 62,114, 61, 55, 55, 23, + 83,167, 78, 45, 80,169, 84, 46, 5,117, 19, 10,133,175,140, 30, 61,122,243, 15, 63,252, 32,187,123,247, 46,180, 90, 45,252,252, +252,234, 90, 20, 58,247,232,209, 99,223,158, 61,123, 60,115,115,115,161, 86,171, 97, 48, 24,176, 99,199, 14,175, 17, 35, 70,236, + 73, 73, 73, 25, 14, 32,190, 6,142, 79, 28, 69,214,204,153, 51,111, 2,240, 7,176,190,162, 6,181, 94,107,239, 32,182,212, 0, + 86, 84, 51, 18, 13,147, 72, 36,200,207,207,199,212,169, 83,113,231,206,223, 6,208,224,224, 96,251, 72,239,254,253,251,240,243, +243, 3, 65, 16,254,206, 60,180,159,159,159,212,104, 52, 98,250,244,233,200,200,200, 40,199,153,153,153, 9,130, 32,196,174,102, +100, 64, 64, 64,128, 94,175, 71,223,190,125, 81, 90, 90,182,175,239,248,241,227,193,229,114,145,159,159, 15, 46,151,235, 91,139, +247,227, 59,114,228,200, 42, 67,171,200,100, 50,147,183,183,119, 27, 23, 57,125, 94,124,241,197,172,152,152,152, 71, 22,182, 92, +190,124,249, 95,114,185,252,164, 92, 46,111,233, 34,167,197, 81, 84,241,120,188,114, 66,139,203,229,130, 36, 73,167,125,212,238, +228,235,214,113,136,156,142,203,102, 15,157,218,216,223, 19,172, 54, 15,188, 65,159,225,122,129, 8, 43, 87, 31, 1, 0,188,255, + 90, 23,116, 24,178, 24,198, 31,134, 98, 78, 79,138, 63, 41,211, 48, 31,192, 39, 79,184,205,255, 10,128,109, 21,220, 6, 0, 29, +159,162,254,200, 46,182,142, 30, 61,138,136,136, 8, 20, 21, 21, 33, 37, 37,165,182, 34,203,214,222,125,240,249,231,159,255, 62, +102,204, 24,137,109,208, 42, 18,137, 48,111,222, 60,189, 86,171,253,192,165, 66,100,177,128,195,225,216, 7,201, 66,161, 16,145, +145,145,118,145, 69, 16, 4, 74, 74, 74,192,225,112,108, 43, 18, 9, 39,211,136,160,192, 64,120,120,120,160,121,139, 22,184,107, +109, 71,108,159, 5, 2, 1, 8,130, 0, 77,215,104,200,211, 88,157,218,231,186,187, 75,182,137,162,106, 77,199,193,193,176, 88, + 44, 54,145,201,186,131,211,215,215, 23, 90,173,214, 89,206,167, 18, 85, 88,180,108, 66,107, 36,202,124,181, 30, 9,239,208, 31, +192, 25,212,227,146, 74, 2, 44, 97, 97, 89,112, 40,210, 58,119, 75,129,162, 72, 40, 11,114,176,230,179, 55,172, 34,107, 55, 14, +159, 75, 65, 72,179,136,191,231,113, 9, 2, 96,171, 47,220,126,158,188,152, 89, 99,122,136,242,136, 28,120, 5,139, 33, 20, 86, +208,143,222, 60, 16,225, 36,102, 15, 8, 17, 95, 57, 88, 26,147,172, 54,213,216, 81, 8, 73,178,204,249,157, 32, 42,117,238, 33, +173,215, 40,130, 0,203,178, 96, 45,174,249, 29,219,132,188, 72, 36,130,201,100, 2, 69, 81, 88,187,118,173,215,144, 33, 67,214, +187, 42,180, 0, 36,229,229,229,141,152, 49, 99,198,209, 93,187,118,249,250,250,250,150, 27, 61,204,152, 49, 67,145,151,151, 55, + 2, 46, 58,221,115,185,220,245, 27, 54,108,144, 61,124,248, 16, 37, 37, 37, 16,137, 68,246,198,167,182,229,179, 91,183,110,199, +143, 29, 59,230,173, 86,171, 97, 50,153, 32, 18,137,192,178, 44, 40,138,194, 47,191,252,226, 51,106,212,168, 35,233,233,233,131, +170, 75,171, 72, 36,122,201, 42,156, 16, 21, 21,229, 21, 21, 21,213, 31,168, 50, 82,175, 29, 81, 81, 81, 94,115,231,206,125, 81, +175,215,175,168,230,153, 51,148, 74,101,160, 72, 36,194,222,189,123, 33,149, 74, 33, 22,139, 17, 28, 28, 12,165, 82, 9,177, 88, + 12,150,101, 97, 54,155,109,141, 69,161, 51, 15, 94, 80, 80,160,165,105,218,243,232,209,163, 40, 44,252,251, 95, 26, 55,110, 12, +149, 74, 5,139,197, 82,226,106,102,102,103,103,231, 17, 4, 17,122,253,250,117, 60,124,248, 16,195,135, 15,199,111,191,253,134, + 46, 93,202,102,135,141, 70, 99,109,130,248, 49, 20, 69,177,213,148, 91, 2,128,183, 59, 57,173,157,151, 75,156, 22,139,197, 98, + 19, 89,142,127, 29,197, 87, 13,191, 89,174, 58,183, 9,144,110, 89, 54,107,240,212,161, 17,190,208, 23, 60,128,208,195, 23,132, + 87, 56, 86,174, 62,130, 91,127,149,189,175,149, 59,175,226,167,232, 17,128, 72,142, 86,158, 10, 4,122,112, 94,190,157,255,196, +133,150,167,227, 56,225,105,237,152,134, 15, 31, 14,165, 82, 9,169, 84,234, 14,255,156, 11,122,189, 62,117,255,254,253,157, 71, +142, 28, 9, 62,159,143,212,212, 84,196,199,199,167, 0,184,224,170,208,226,114,185,248,252,243,207,241,198, 27,111, 32, 32, 32, + 0, 31,124,240, 1, 56, 28,142,253, 32, 8,194,110,225,114, 5,254, 1,213, 47,124,180, 57,196,215,100, 12,247,244,244,252,156, + 36,201,113,148, 19, 25,199, 48, 12, 99,177, 88,118,169,213,234,106,195, 59,216, 28,215,157,121, 23,142,121, 80, 67,159, 86,103, +206,199,161, 69,106,131,138,171, 13,171,176,104,217, 86, 29, 62,178, 21,144,237, 41,207, 88, 77,118,103,234, 43,161, 4, 73,221, +206,204,202,134,143,183,212, 42,178,172, 7, 73,162, 67, 68,217, 96,246,240,185, 20,132, 52,141, 0,135,162,192,161, 40, 72, 69, + 2,228,229,230,128,195, 33,111, 87,197,219,142,194,152, 49, 45, 67,195,189,125,184, 80,248, 25, 17, 20, 80,133, 97,160,179, 7, + 66,130,248, 24,230, 35, 12,107, 71, 97, 76,245,214, 55,214, 46,180, 76, 52, 13,222, 43,175,216,167, 11, 19,162,162, 16, 25, 19, + 3,102,244,104,232, 76,166,114,166,226,218, 10, 45,145, 72, 4,141, 70,131,137, 19, 39, 42,205,102,243,155,181,204,226,248,194, +194,194,177,147, 38, 77, 42,180, 9, 24,147,201,132, 73,147, 38, 21, 22, 22, 22, 10, 46,156,216, 0, 0, 14,208, 73, 68, 65, 84, +142,117,194, 74,244, 8,204,102,243,155, 93,186,116, 81, 42, 20, 10,123, 58,107,211,224,216, 32,151,203, 15,111,217,178, 69,110, + 48, 24, 64,211,180,157, 83, 36, 18,129,162, 40,248,249,249,225,167,159,126,242,147,203,229,213,238, 89,165,215,235,247,199,196, +196,168, 0, 32, 38, 38, 70, 69, 16, 68, 44, 65, 16, 27, 9,130,216, 80,225,216, 72, 16, 68,172,227,189,122,189,126, 95,117,220, + 70,163, 49, 54, 37, 37,133, 21,139,197,160, 40, 10, 38,147, 9, 66,161,208,110, 18, 47, 46, 46,134, 94, 95, 54,205, 29, 31, 31, + 15,179,217, 28,231,204,179,107, 52,154, 83, 91,183,110,181, 52,110,220, 24, 17, 17, 17,136,140,140, 68,143, 30, 61, 16, 22, 22, +134, 47,190,248,130,209,233,116, 46,215,189,236,236,236,195,191,254,250,171, 57, 52, 52, 20,157, 59,119,134, 64, 32, 64,135, 14, + 29, 16, 28, 28,140,165, 75,151, 26,213,106,245,209, 90,188,166,244,196,196, 68,170, 26,145, 43,131, 19,171,119, 43, 32,227,202, +149, 43, 84,143, 30, 61, 14, 84,188,208,173, 91,183, 3, 82,169,212,211,102, 98,119,101, 68,238, 40,174, 4, 2,129,253,176,125, +207,225,112,156, 25,253,144,109, 2,164, 91,190,124, 99,224,212,161, 17,222, 56,112,234, 18,120, 38, 21, 96,172,102, 70,144, 49, +131,224, 73, 16,224,201, 13,121, 10,250,128, 57, 0,110,162, 44, 14,211, 7,120,186, 96,119,124, 47, 44, 44, 68, 74, 74, 10,226, +227,227,209,163, 71, 15,196,197,197, 1,127, 59,200,187, 12,181, 90,253, 65,116,116,180,206,182,146,111,225,194,133,122,141, 70, +243,129,171,109, 48,203,178,224,114,185,104,213,170, 21,230,206,157,139, 35, 71,142, 32, 53, 53, 21,102,179,217, 46,132,108, 62, +153,174, 88,180,120, 60, 30, 2, 2, 2, 96, 54,155,237,214, 44, 0,184,123,231, 14, 56, 28, 14, 44, 22, 11,140, 70, 99,141, 22, + 45, 79, 79,207,207, 55,111,222,252,142, 66,161, 8, 42, 40, 40,240,119, 60,242,242,242,252,115,114,114,252,179,178,178,252, 51, + 50, 50,252,211,210,210,252, 31, 60,120, 16,180,124,249,242,119, 60, 61, 61, 63,119, 38,157, 20, 69,161, 67,135, 14,120,235,173, +183,236,199,186,117,235,236,199,153, 51,103, 92,118, 94,167, 40, 10,173, 22,173,196,136, 2,214,126, 28,241, 35,236,199,173,247, +103, 86,199, 89,239, 90,164, 86,250,197,186,218,208,113, 99,233, 74, 96, 91,117,104,107,203,236,110, 27, 21,157,225,235, 13,180, +177,244,244, 95,247,238, 12,108,213,174, 43,153,171,208,150, 91,254, 25, 57, 96, 44, 8,130, 64,163,166, 17,160, 56, 28, 80, 20, + 9, 14, 69,193, 75, 38, 68,202,245,235, 22,131, 94,127,186, 50,206,254, 0,135, 47,226,175,123,109, 88, 7, 97, 54, 63, 31,126, + 65, 18,240,184,101,218,145,253,107,108,133, 30,130, 3,180,243,192,180, 44, 31,209,233,188,210,117,222, 58,211,129,216, 42, 70, +128, 22,139, 5, 82,129, 0,165, 6, 3,244, 52,141, 1,107,214,216,167, 11, 73,130,192, 53, 0,237,215,172,193,249, 61,123, 32, +227,243, 1,129,192,233, 85, 33,149, 9, 45,133, 66,129, 41, 83,166, 20,230,228,228, 76,174,141,143,150, 13, 6,131,225,108,110, +110,238,228,177, 99,199,238,216,187,119,175,124,236,216,177,202,220,220,220,201, 78,250, 61, 61,130,210,210,210, 61, 25, 25, 25, + 37, 83,166, 76,217,190,115,231, 78, 31, 95, 95, 95,251, 72,164, 86,133,149, 32, 20,131, 7, 15, 22, 56,115, 95, 13,183, 68, 91, +157,219,223,176, 90,182,218,207,156, 57,243, 60,202,252,175, 28,177,104,211,166, 77,227, 29,166, 24, 55, 2, 88, 83, 29,113,113, +113,241,134,185,115,231,254,231,236,217,179,190, 66,161, 16, 4, 65,128,199,227,161,121,243,230,246, 85, 52, 92, 46, 23, 44,203, +226,189,247,222, 83,228,231,231,127,237,228,187,153, 25, 29, 29,221,175,180,180,212,123,202,148, 41,148, 80, 40, 68, 94, 94, 30, + 86,175, 94,205,252,240,195, 15, 42,157, 78, 55,181, 22, 66,120,235,167,159,126, 58, 64,171,213, 54,157, 49, 99, 6, 79,173, 86, + 67,175,215, 99,254,252,249,198,239,191,255, 62, 83,175,215,187, 28,240,183,103,207,158,247,210,210,210,250,148,148,148, 20,137, +197,226,138,214, 62, 66, 34,145,116, 5,176,221, 21,206,200,200,200,251,233,233,233, 61, 22, 47, 94, 28,107, 54,155,185,151, 47, + 95,182, 59,195,175, 93,187,246,140, 80, 40, 28, 12, 23, 55, 95, 37, 8,194, 34, 16, 8,202, 89,176, 42,126,230,112, 56, 53,182, +105,173, 3,197,139,191,124,189,223,212,231,219,120, 98,255,169,171,136,222,247,215,237, 22, 83,253, 90, 61,231, 93, 0, 75, 65, + 10,222,127,173, 11, 86,238,188, 10,160,108,234,208,146,127, 11,108,209,125,176, 30,161,120,160, 84,100, 63, 5,125,192, 25,148, +133,204,120,218, 80, 78,100,221,186,117, 11, 3, 7, 14, 4, 0,196,197,197,161,119,239,222,136,139,139, 67,159, 62,125, 92,142, +165,101,197, 31,197,197,197,105,103,206,156,105, 27, 26, 26,138, 11, 23, 46, 60, 0,240,135,171,137,180, 9, 45, 14,135,131, 87, + 95,125, 21, 67,134, 12, 65,227,198,141,203,173, 54,180,125,118, 69,108,208, 52,141,118,237,218,193, 96, 52,130,199,227,217,167, + 38, 57, 28, 14,252,252,253,113,239,222, 61,167, 44, 90, 36, 73,142,123,233,165,151,200,164,164, 36, 76,152, 48, 1, 59,118,236, +168,242,222, 73,147, 38,225,231,159,127,198, 75, 47,189, 68,126,244,209, 71,213,134,119,176, 57,161, 59,243, 76,182,126,186,166, +118,223, 93,156,245,173, 69,234, 2,135,208, 14,149, 78,154, 84,242, 93, 76, 57,161,229, 16, 36,172,126,132, 22,109,218,241,219, +143,223,206,237,177,190,143, 95,144,191, 39,148,106,189, 93,108, 37,156,217, 13, 0, 24, 51,115, 9, 56, 84,217,148,162, 76, 42, +132,136, 71, 97,207,182,175, 21, 38, 83,105,165,165, 75,195, 37,223,248,168, 87,115, 79,190,196,140,226, 64, 22, 17,126,127,239, +148, 67, 52,221,253,168,224,234,228, 13,223, 91, 69,120,237, 57,169,236,235, 36,213, 27, 48, 91,214, 61,210, 33,170, 84,122,213, +245,235,162,225,155, 55,227,242,228,201,104,196, 48,136, 13, 14,134,156,203,133,167, 64, 0,146, 32,160, 63,116, 8,231,247,238, + 69,128, 64, 0,120,120,128,254,226, 11, 24, 82, 82, 96,214,104,244,181, 24,153, 97,252,248,241, 10,133, 66, 49,214,104, 52,158, +173,107, 62,235,245,250, 99, 25, 25, 25,111,244,236,217,115,189,217,108,126, 83,175,215,215,105,101,148,209,104, 60,150,155,155, +251,202,248,241,227,119,239,219,183,207,215,203,203,171,214, 92,133,133,133, 93,220, 84,156, 44, 0, 62,182, 58,183,191, 17, 21, + 21,229,117,229,202,149,255,108,217,178,101,189,195,104,194,127,250,244,233,175, 87, 16, 89, 53,174, 58, 4,144,158,159,159,255, +197,188,121,243,150,172, 90,181, 74,106,115,124,191,113,227, 6,104,154, 6,151,203, 5,195, 48,152, 62,125,186,182,176,176,112, + 37,170,142,232,252, 72,209, 42, 46, 46,110,190,120,241,226, 45,107,214,172, 25, 66, 81,148,132, 97, 24, 93, 73, 73, 73,108,105, +105,233, 84,212, 46,142,150,165,160,160, 96,202, 39,159,124, 50,101,245,234,213, 47,145, 36,233, 79,211,180, 66,163,209, 28,212, +235,245,223,163, 22, 83, 73, 23, 46, 92, 40,120,237,181,215,254, 42, 40, 40,104, 29, 18, 18,162,150, 74,165, 70,163,209, 72,137, + 68, 34,153, 68, 34,137, 4,112,129, 32,136,100, 87, 56, 19, 18, 18,114,103,204,152,241,208, 96, 48,180,218,184,113,227, 57,153, + 76,118,138, 32, 8,130,199,227,121,139, 68,162,129, 0, 98, 9,130,184,235, 10, 39, 73,146, 22, 71,235, 85, 69,255, 44, 62,159, +239,148,143, 86, 83, 63,241,180, 33,205, 57,216,127,250, 42,162,247,167,111,101, 88,118,239,222,132,162, 67, 31,244, 6, 76,187, + 94, 67,135,177,219,203,166, 11, 1, 88,242,111,193,180,107, 18, 8,177, 47,206,101,113,161,214,155, 14,163, 1,149,193, 30,222, + 65,161, 80, 32, 41, 41,201, 38,178, 34, 1,160, 79,159, 62, 9, 54,177, 21, 31, 31,143,206,157, 59, 39, 0,224,186, 90, 94,139, +139,139,231, 77,156, 56,241,152,117,112, 60,175, 22, 3, 63,187,208,178, 9,170,198,141, 27,219,207, 29, 15, 7, 31, 45,167,192, + 48, 12,120, 60, 30, 56, 28, 14,130,130,131,237,191,197,178, 44,238,221,187, 7,165, 82,233,148,208,162, 40,138, 34, 8, 2, 19, + 38, 56,183, 32,249,223,255,254, 55, 98, 99, 99, 65, 57,169, 10, 41,138, 66,120,120,120,141,247,216,116,169,179,156, 33, 33, 33, +181,230,172,111, 45, 82, 91,129, 85,217,231,202, 68, 85, 85, 21,226,113, 33, 91,171, 85,127,188,109,243,218, 85,211,103,189, 39, +189,117, 63, 15,106,173, 1, 20, 69, 58, 54,158,224,112, 40,200, 36, 66,132, 6,122, 98,231,119,255,211,104,138, 85,159,160,138, +125, 15, 27,123,240,102, 14,238,250,156,128, 23,164, 67,171,246,227, 65, 9,255, 22, 1,108,110, 21,179,131,189,127,199, 11,233, + 58,225,111,233,186,153,215,138,140,143, 10, 45,163,113,232,194, 97,195,142, 71, 31, 57, 34,238,182,117, 43,238, 79,159,142, 96, +189, 30, 2,235, 84, 34, 73, 16,144,242,120,144,242,120,101, 34,107,245,106,232,105, 26,107, 38, 79, 46, 49, 24,141,195, 92,169, +228,133,133,133, 24, 61,122,116, 65,118,118,246, 8,212, 98,106,175, 42,232,116,186, 61, 0,246,184,139,207, 96, 48,156,205,204, +204,124, 97,244,232,209, 71,142, 29, 59,230,247,148, 4,153,179,137, 45,211,149, 43, 87, 94, 63,119,238,220,125,148,223, 88, 84, +117,238,220,185,251, 51,102,204, 32,182,108,217,242, 61,128, 79,225,100, 0, 79,157, 78,183,246,196,137, 19,232,215,175,223,167, +203,150, 45,243,233,210,165, 11,252,253,253,161,209,104, 16, 31, 31,143, 57,115,230, 40,139,139,139,151,169, 84,170, 85, 46,166, +217,100, 48, 24, 38, 57, 46,165,118, 71, 62, 24, 12,134, 31,114,114,114,126,112, 23,225,236,217,179,111,220,187,119,175,208,207, +207,175, 59,143,199,107,143, 50, 63,160, 92, 0,223,187, 42,136,108,152, 53,107,214,245,123,247,238, 41, 26, 53,106,212,195,202, +233,133,178,109,140, 54,215,130, 51,251,234,213,171, 33, 93,187,118, 37,185, 92, 46, 75, 81, 20,184, 92, 46,203,225,112, 88,171, + 95, 13, 11, 0, 7, 15, 30, 20, 0,168,118,219,156,251,249,250,197,147,254,247,231, 71,201,185,165,123, 83,242, 74,230, 2, 96, +119,221, 18,255,222,193,143, 26, 58,180,101, 38, 12, 49,125, 64,200,202, 2, 85,178,218, 28, 16,146, 0,100, 90, 26, 97,209,129, +219,185, 52,136, 21, 13,154,170,242,113, 53,172,225, 29,114,114,114, 28, 69,150,205,106, 21,217,167, 79,159, 4,171,200,178, 93, +171,141,127,217, 73,139,197, 82,167, 62,140,101, 89, 68, 71, 71, 99,211,166, 77,168, 41,162,185,117,117, 31, 81, 19,159,205,162, +197, 48, 12, 76, 38, 19,110,221,186,101,143,217,101,155, 46,180,133,118,160,105,186,218,213,234, 12,195, 48, 70,163, 17,191,252, +242,139, 83, 98,235,167,159,126, 66,105,105, 41,152, 26, 20,156, 99, 40,134,142, 29, 59, 66,169, 84,218, 23,251, 68, 70,254, 29, + 42,207,100, 50,185, 36, 92,109,156,173, 90,181,130, 66,161,128,205, 95, 56,116,242,223,198, 30, 90,167,251,167,150,251, 42, 45, + 90,143,189,199, 20,136,101,199,186,244, 26,210,123,242,235,115, 36, 90, 3,131,135, 15,211, 80,144,159, 3,146, 32, 17,212, 40, + 4, 97, 97,225, 16,241, 73,236,136, 89,165, 75, 56,127,234, 79,173,166,104,120, 85, 92, 35, 61,121,231, 87,191,210,187, 71,179, +102, 30, 4,104, 51,192,152, 1,218, 12, 88,172,127,109,223, 89,202,151,185,164, 36, 21,251,209, 53,229,197,195,106, 83,165,123, + 86,141, 5,122,123,201,229,199, 23, 29, 60, 40,182,152, 76, 40,156, 55, 15, 98,154,134,208, 58, 42, 41,123, 16, 1,232, 47,190, + 40, 19, 89,147, 38,149,168, 85, 42,151,182,224,241,245,245,189, 74, 16,132,111, 65, 65,193, 51, 21, 25,222,207,207,239, 48,203, +178, 10,133, 66,209,229, 41, 74,151, 63, 0, 21, 0, 83, 37, 3, 9, 63,184,238,255, 99, 67,184,159,159,223, 71, 36, 73,246,100, + 89,214,135, 36,201, 34,139,197,114, 33, 63, 63,127, 57,128,123, 13,253,233, 19,131, 45, 50,124,147, 26,238,203, 7,240, 46,202, +156,130, 31, 58, 75,222,193,211,211,211,192, 55,239,251, 87,132, 96,192,184, 72, 79, 52, 13,244, 0,151, 39, 68,118, 49,141,147, +201,197,216,124, 38, 55, 67,111,102, 70,221, 41, 40, 73,108,120, 21,213,194,237, 91,240,184, 19,114,185,252,210,241,227,199,187, + 52,109,218,148,116,116,120,183,197,202,179, 77,111,113, 56,101, 90,238,236,217,179,244,132, 9, 19, 46,228,229,229,245,171,138, +211,195,195,227,247,155, 55,111, 62,175, 86,171, 31, 17, 84,142,145,226,109,231, 58,157, 14,179,102,205, 58, 81,213, 22, 60,158, +158,158,171, 87,173, 90,245,206,152, 49, 99, 72, 91, 56, 10,199,195,182, 93,144,237, 48,153, 76,216,190,125,187,229,235,175,191, +254, 70,173, 86, 87, 57,117, 24, 20, 20,148,145,157,157, 29, 98, 11,181,224, 76, 80,209,240,240,240,156,180,180,180,224,199,201, +249, 12, 11,174,114,214,173, 39, 98,154,224,138, 68,179, 61,164,222,159,141,153,248,150, 79,120,179, 22, 68, 64, 80, 35, 16, 32, +145,151,155,133,180,191,238,176,251,126,252,182, 80, 87,172,252, 92,175,215,125, 91, 29, 79, 27,160, 89, 19, 25,111, 23,159, 65, + 75,216, 4, 80,133,253,169, 30, 25,113, 0, 48,113,201,219, 15, 53,230,241,201,213, 76,251,216,196,214,199,251,246,137,249, 45, + 91, 62, 18, 40,206, 98,177,192,144,146,130, 53,147, 39,187, 44,178, 26,208,128, 6,184, 5, 77, 81,115,140, 44, 51,202,226,115, +185,106, 49, 33, 90,249, 75,198,179,192, 56, 18,150,118, 36, 65,240,105, 22,169, 96,241,187,152, 83,178, 62, 33, 7,250,134,236, +119, 10, 79,237,166,210, 0, 36,114,185,252, 20, 69, 81, 97, 54,139,140,163,181,190,146, 13,165, 31,230,229,229, 13, 6, 80,221, + 10,225,102, 30, 30, 30,223, 50, 12,211,205,153, 77,165, 41,138,186,172,209,104,102,163,154, 77,165,235, 99,213,161,143,143,207, +189,180,180,180,102,182, 85,212,142,125,101,101, 43,203,239,222,189,139,254,253,251,167,229,230,230,134, 63, 78,206,167, 21, 85, +172, 58,124,122, 44, 90, 14, 8,230, 9,164, 83,248, 34,225, 32,139,153,110, 5, 2,224,112,185,183,141,165,250,211, 6,189,118, + 27,170,152, 46,124,156, 24, 11,244, 22,240,249,191,243,100, 50, 81,101,162,205,172,209,232, 13, 70,227,208, 6,145,213,128, 6, + 52,160, 1, 13,120,134,208, 82, 46,151, 31,231,114,185, 2, 71, 49, 89,241,179, 13, 52, 77,151, 22, 20, 20, 12, 7,144,250,152, + 57,255,127,194, 69, 39,181, 33,206,114, 90,143,254, 79, 59,103, 61, 62, 59,235, 70,206,254, 86,206, 69,207, 72, 58,251, 63,173, +156,182,231,117,129,119,136, 43,229,200, 93,249,233,144, 78,214,221,233,172, 47, 78,119,213,163, 74,210,201,214,195,123, 95,244, +140,164,179,255,211,198, 89,177,252, 56,201,235, 18,167,147,101,202,213,116,178,238, 78,103,125,113,214,181, 30, 85,147, 78,182, +174,101,169,138,119,191, 8,207, 32,146, 58,129, 77,234, 4,246, 86,231, 74,227, 54, 70, 85,245,127, 46, 57, 18,214,215, 74, 0, + 91,216,125, 43, 63,241,180,114, 58,230,131, 59,183, 10,168,135,109, 7,206,184,155,179, 66,126,186, 11,139,172, 43, 76, 98,225, + 68,192, 81, 87,158,221, 29,239,189,194,179,186,133,183, 22, 34,203, 37, 78,119,149,251,250,230,116, 87, 93,170,200,233,142,114, + 95,217,123,175,199,119,228,174,116,186,165, 46,213, 71,153,175,164,252,212,153,183, 34,167, 59,234, 82, 69, 78,119,148,251,199, +193,233,142,186, 84, 25,167, 59,202,125, 85,239,254, 89, 53, 52,217,166, 11,173, 33, 30, 8, 39,196, 86, 12, 0,144,181,201,180, +122,180,148, 13,112, 55,167,187,211, 92, 31, 98,211, 5, 11,204, 19,231,116,243, 59, 90,100,229,116,231,232,102,128,187,222, 81, +125,148,119, 71, 78,119,241, 87,228,113,199,123,170,140,179,174,233,173, 34,157,110,127,246,186,150,251,199,197,233,230,119,228, +150,186, 84,129,115,128,155, 7, 3, 3, 28,206, 23,185,147,211, 93,117,169,146,116,214,249, 61, 85,198, 89,215,244, 86,145, 78, +183, 63,187, 59,250,144,250,226,125,146, 22, 45,150,172,178, 76,196, 84, 56, 30,139,208,120, 98, 83,114, 46,114,255,163, 56, 93, +156,158, 25, 82, 15,239,254,137,166,211,157,156, 21,211,232,206,233,158,250, 76,167, 59, 57, 93, 72,235, 63,142,243, 89,123,239, + 79, 99,126, 86,197, 87,151,105,169,170,172,163,245,145, 78,119,114, 58,201,253,143,224,172,195,187,255,199,129,243,180, 36,196, +150,241,110, 30,153,192,205, 22,152,122,123,110, 55,167,115, 64,125, 88, 8,235, 1,110, 79,167,117,164,252, 89, 61, 60,251,179, +146,167, 13,117,169,161, 46, 61,117,117,169, 66,153, 28,224, 70, 75,145, 91, 45,207, 21, 57,221,241, 27,142, 28,238, 42,163,245, +253,236,238,172, 75,245,241,238,159, 53,252, 31,113, 30,155,128,236, 62, 28, 59, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index 25e20909f34..3e27fa48dab 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -632,18 +632,16 @@ DEF_ICON(MARKER_HLT) DEF_ICON(MARKER) DEF_ICON(SPACE2) // XXX DEF_ICON(SPACE3) // XXX -#ifndef DEF_ICON_BLANK_SKIP - DEF_ICON(BLANK181) -#endif +DEF_ICON(KEYINGSET) DEF_ICON(KEY_DEHLT) DEF_ICON(KEY_HLT) DEF_ICON(MUTE_IPO_OFF) DEF_ICON(MUTE_IPO_ON) -#ifndef DEF_ICON_BLANK_SKIP - DEF_ICON(BLANK182) - DEF_ICON(BLANK183) - DEF_ICON(BLANK183b) +DEF_ICON(VISIBLE_IPO_OFF) +DEF_ICON(VISIBLE_IPO_ON) +DEF_ICON(DRIVER) +#ifndef DEF_ICON_BLANK_SKIP /* available */ DEF_ICON(BLANK184) DEF_ICON(BLANK185) diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 3e4641bc0b9..d204ae9da75 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -4457,6 +4457,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto UI_icon_draw(x, y, ICON_NLA); break; // XXX case TSE_NLA_ACTION: UI_icon_draw(x, y, ICON_ACTION); break; + case TSE_DRIVER_BASE: + UI_icon_draw(x, y, ICON_DRIVER); break; case TSE_DEFGROUP_BASE: UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; case TSE_BONE: diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index d523a01dc2c..5664fac149e 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -701,7 +701,7 @@ static void rna_def_keyingset(BlenderRNA *brna) /* Name */ prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", ""); - RNA_def_struct_ui_icon(srna, ICON_KEY_HLT); // TODO: we need a dedicated icon + RNA_def_struct_ui_icon(srna, ICON_KEYINGSET); RNA_def_struct_name_property(srna, prop); RNA_def_property_update(prop, NC_SCENE|ND_KEYINGSET|NA_RENAME, NULL); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 5b3b4921727..ecb5a96f872 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1244,6 +1244,7 @@ static void rna_def_channeldriver(BlenderRNA *brna) srna= RNA_def_struct(brna, "Driver", NULL); RNA_def_struct_sdna(srna, "ChannelDriver"); RNA_def_struct_ui_text(srna, "Driver", "Driver for the value of a setting based on an external value"); + RNA_def_struct_ui_icon(srna, ICON_DRIVER); /* Enums */ prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 79884ebf3e0..9dab340cfe1 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1957,7 +1957,7 @@ static void rna_def_space_graph(BlenderRNA *brna) static EnumPropertyItem mode_items[] = { {SIPO_MODE_ANIMATION, "FCURVES", ICON_IPO, "F-Curve Editor", "Edit animation/keyframes displayed as 2D curves"}, - {SIPO_MODE_DRIVERS, "DRIVERS", ICON_LINK_AREA, "Drivers", "Edit drivers"}, + {SIPO_MODE_DRIVERS, "DRIVERS", ICON_DRIVER, "Drivers", "Edit drivers"}, {0, NULL, 0, NULL, NULL}}; /* this is basically the same as the one for the 3D-View, but with some entries ommitted */ -- cgit v1.2.3 From 3eec91f4d7864366b0cb05fead395d8fbfa711c6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jul 2011 03:35:59 +0000 Subject: Keying Set UI - Icons for Paths in List The Keying Set paths list now shows the icon of the type of ID-block that a path item refers to. This make it easier to make snese of the paths shown in the list. --- source/blender/editors/interface/interface_templates.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 39abcecbb6b..c4a07a004d2 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -33,6 +33,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_anim_types.h" #include "DNA_scene_types.h" #include "DNA_userdef_types.h" @@ -55,6 +56,7 @@ #include "ED_render.h" #include "RNA_access.h" +#include "RNA_enum_types.h" #include "WM_api.h" #include "WM_types.h" @@ -2106,6 +2108,15 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe //uiItemR(row, itemptr, "mute", 0, "", ICON_MUTE_IPO_OFF); uiBlockSetEmboss(block, UI_EMBOSS); } + else if(itemptr->type == &RNA_KeyingSetPath) { + KS_Path *ksp = (KS_Path*)itemptr->data; + + /* icon needs to be the type of ID which is currently active */ + RNA_enum_icon_from_value(id_type_items, ksp->idtype, &icon); + + /* nothing else special to do... */ + uiItemL(sub, name, icon); /* fails, backdrop LISTROW... */ + } else uiItemL(sub, name, icon); /* fails, backdrop LISTROW... */ -- cgit v1.2.3 From 893bf5f81a2a7b7306461cd3c9b5c00b1796bb2d Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Fri, 1 Jul 2011 03:44:03 +0000 Subject: verbose ndof event trace for a tester --- source/blender/editors/space_view3d/view3d_edit.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index b334ed91df6..42a41be05e0 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -997,6 +997,11 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) /* TODO: replace such guesswork with a flag or field from the NDOF manager */ ndof->dt = dt = 0.0125f; + #define DEBUG_NDOF_MOTION + #ifdef DEBUG_NDOF_MOTION + printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", + ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); + #endif if (ndof->tz) { // Zoom! -- cgit v1.2.3 From 1f2c93f9f783a2b0c2fb6ce42e30325a25d58265 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 1 Jul 2011 05:58:28 +0000 Subject: Fix #27816: Outliner does not update when parents are cleared Added NC_OBJECT|ND_PARENT notifier to OBJECT_OT_parent_clear operator. --- source/blender/editors/object/object_relations.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index aa2e6d2c145..f3b67867d7f 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -446,6 +446,7 @@ static int parent_clear_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, NULL); return OPERATOR_FINISHED; } -- cgit v1.2.3 From 1072ba66e0bb9c09d0cdb9502bfc8ea89ee30172 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jul 2011 08:48:00 +0000 Subject: fix [#27820] foreach_get on bpy_prop_collections returns weird results --- source/blender/editors/object/object_hook.c | 2 +- source/blender/makesrna/intern/rna_access.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 4dc944db28c..bb32869469a 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -107,7 +107,7 @@ static int return_editmesh_vgroup(Object *obedit, EditMesh *em, char *name, floa if(obedit->actdef) { const int defgrp_index= obedit->actdef-1; - int i, totvert=0; + int totvert=0; MDeformVert *dvert; EditVert *eve; diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e83161b8c62..d9fbdd7caf2 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2839,7 +2839,7 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro } /* editable check */ - if(RNA_property_editable(&itemptr, iprop)) { + if(!set || RNA_property_editable(&itemptr, iprop)) { if(a+itemlen > in.len) { BKE_reportf(reports, RPT_ERROR, "Array length mismatch (got %d, expected more).", in.len); err= 1; -- cgit v1.2.3 From 52784d7e30d79765912d92ac2f09c35fa3705372 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jul 2011 12:21:13 +0000 Subject: NLA Strip Drawing Tweaks * Removed frame-number display from NLA strips. Indeed doing so makes things look cleaner/easier to identify. * When transforming NLA strips, the "temp-metas" (purple strips) get their frame extents drawn on either end, like in the sequencer, which seems to be easier to read than the ones inside the strips. --- The downside of this tweak is that there is no longer any visual feedback for which strips run reversed instead of forwards, as that used to be shown using the frame extents stuff. --- source/blender/editors/animation/keyframes_edit.c | 26 -------- source/blender/editors/space_nla/nla_draw.c | 72 +++++++++++++++++------ 2 files changed, 54 insertions(+), 44 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index a0b1b4a6ede..9f3d40a5709 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -197,32 +197,6 @@ static short act_keyframes_loop(KeyframeEditData *ked, bAction *act, KeyframeEdi return 0; } -/* This function is used to loop over the keyframe data of an AnimData block */ -static short adt_keyframes_loop(KeyframeEditData *ked, AnimData *adt, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag) -{ - /* sanity check */ - if (adt == NULL) - return 0; - - /* drivers or actions? */ - if (filterflag & ADS_FILTER_ONLYDRIVERS) { - FCurve *fcu; - - /* just loop through all F-Curves acting as Drivers */ - for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { - if (ANIM_fcurve_keyframes_loop(ked, fcu, key_ok, key_cb, fcu_cb)) - return 1; - } - } - else if (adt->action) { - /* call the function for actions */ - if (act_keyframes_loop(ked, adt->action, key_ok, key_cb, fcu_cb)) - return 1; - } - - return 0; -} - /* This function is used to loop over the keyframe data in an Object */ static short ob_keyframes_loop(KeyframeEditData *ked, bDopeSheet *ads, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb) { diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 4c6740818dc..53d174169e5 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -420,23 +420,23 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt) } /* add the relevant text to the cache of text-strings to draw in pixelspace */ -static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int UNUSED(index), View2D *v2d, float yminc, float ymaxc) +static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int index, View2D *v2d, float yminc, float ymaxc) { - char str[256], dir[3]; + char str[256]; char col[4]; + float xofs; rctf rect; - /* 'dir' - direction that strip is played in */ - if (strip->flag & NLASTRIP_FLAG_REVERSE) - sprintf(dir, "<-"); - else - sprintf(dir, "->"); - /* just print the name and the range */ - if (strip->flag & NLASTRIP_FLAG_TEMP_META) - sprintf(str, "Temp-Meta | %.2f %s %.2f", strip->start, dir, strip->end); - else - sprintf(str, "%s | %.2f %s %.2f", strip->name, strip->start, dir, strip->end); + if (strip->flag & NLASTRIP_FLAG_TEMP_META) { + sprintf(str, "%d) Temp-Meta", index); + } + else { + if (strip->flag & NLASTRIP_FLAG_REVERSE) + sprintf(str, "%s", strip->name); + else + sprintf(str, "%s", strip->name); + } /* set text color - if colors (see above) are light, draw black text, otherwise draw white */ if (strip->flag & (NLASTRIP_FLAG_ACTIVE|NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_TWEAKUSER)) { @@ -445,22 +445,52 @@ static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int UNU else { col[0]= col[1]= col[2]= 255; } - col[3]= 1.0; - + col[3]= 255; + + /* determine the amount of padding required - cannot be constant otherwise looks weird in some cases */ + if ((strip->end - strip->start) <= 5.0f) + xofs = 0.5f; + else + xofs = 1.0f; + /* set bounding-box for text * - padding of 2 'units' on either side */ // TODO: make this centered? - rect.xmin= strip->start + 0.5f; + rect.xmin= strip->start + xofs; rect.ymin= yminc; - rect.xmax= strip->end - 0.5f; + rect.xmax= strip->end - xofs; rect.ymax= ymaxc; - /* add this string to the cache of texts to draw*/ - + /* add this string to the cache of texts to draw */ UI_view2d_text_cache_rectf(v2d, &rect, str, col); } +/* add frame extents to cache of text-strings to draw in pixelspace + * for now, only used when transforming strips + */ +static void nla_draw_strip_frames_text(NlaTrack *UNUSED(nlt), NlaStrip *strip, View2D *v2d, float UNUSED(yminc), float ymaxc) +{ + const float ytol = 1.0f; /* small offset to vertical positioning of text, for legibility */ + const char col[4] = {220, 220, 220, 255}; /* light grey */ + char str[16] = ""; + + + /* Always draw times above the strip, whereas sequencer drew below + above. + * However, we should be fine having everything on top, since these tend to be + * quite spaced out. + * - 1 dp is compromise between lack of precision (ints only, as per sequencer) + * while also preserving some accuracy, since we do use floats + */ + /* start frame */ + sprintf(str, "%.1f", strip->start); + UI_view2d_text_cache_add(v2d, strip->start-1.0f, ymaxc+ytol, str, col); + + /* end frame */ + sprintf(str, "%.1f", strip->end); + UI_view2d_text_cache_add(v2d, strip->end, ymaxc+ytol, str, col); +} + /* ---------------------- */ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) @@ -518,6 +548,12 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) /* add the text for this strip to the cache */ nla_draw_strip_text(nlt, strip, index, v2d, yminc, ymaxc); + + /* if transforming strips (only real reason for temp-metas currently), + * add to the cache the frame numbers of the strip's extents + */ + if (strip->flag & NLASTRIP_FLAG_TEMP_META) + nla_draw_strip_frames_text(nlt, strip, v2d, yminc, ymaxc); } } } -- cgit v1.2.3 From bd81fde1ff647c610c49d469d0d502802ed89fae Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 1 Jul 2011 14:46:14 +0000 Subject: Packaging variable named 'a' for release --- source/blender/blenkernel/BKE_blender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 7c11f9e964e..25fb6f9f9ff 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -51,7 +51,7 @@ extern "C" { /* used by packaging tools */ /* can be left blank, otherwise a,b,c... etc with no quotes */ -#define BLENDER_VERSION_CHAR +#define BLENDER_VERSION_CHAR a /* alpha/beta/rc/release, docs use this */ #define BLENDER_VERSION_CYCLE release -- cgit v1.2.3 From 14c72f379cea8be411e649f08fd5ac9f8943e56d Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Fri, 1 Jul 2011 21:51:44 +0000 Subject: implemented ndof 'dead zone' around home position, fixed X11 active window determination, removed old X11 ndof code --- source/blender/windowmanager/intern/wm_operators.c | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 7d6a50043b5..6fb6a8dcf1f 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1376,6 +1376,7 @@ static void WM_OT_search_menu(wmOperatorType *ot) // BEGIN ndof menu -- experimental! +#if 0 static uiBlock* wm_block_ndof_menu_1st(bContext* C, ARegion* ar, void* UNUSED(arg_op)) { uiBlock* block; @@ -1448,9 +1449,17 @@ static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) puts("ndof: menu exec"); return OPERATOR_FINISHED; } +#endif static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { +// uiPupMenuNotice(C, "Hello!"); // <-- this works +// uiPupBlock(C, wm_block_ndof_menu, op); // <-- no luck! +// ui_popup_menu_create(C, NULL, NULL, NULL, NULL, "Hello!"); // <-- this works + + uiPopupMenu* pup = uiPupMenuBegin(C,"3D mouse settings",ICON_NDOF_TURN); + uiLayout* layout = uiPupMenuLayout(pup); + printf("ndof: menu invoked in "); switch (CTX_wm_area(C)->spacetype) // diff spaces can have diff 3d mouse options @@ -1465,12 +1474,6 @@ static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even puts("some iNDOFferent area"); } -// uiPupMenuNotice(C, "Hello!"); // <-- this works -// uiPupBlock(C, wm_block_ndof_menu, op); // <-- no luck! -// ui_popup_menu_create(C, NULL, NULL, NULL, NULL, "Hello!"); // <-- this works - - uiPopupMenu* pup = uiPupMenuBegin(C,"3D mouse settings",ICON_NDOF_TURN); - uiLayout* layout = uiPupMenuLayout(pup); //uiBlock* block = uiLayoutGetBlock(layout); //int foo = 1; @@ -1495,12 +1498,11 @@ static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even static void WM_OT_ndof_menu(wmOperatorType *ot) { puts("ndof: registering menu operator"); - ot->name= "NDOF Menu"; - ot->idname= "WM_OT_ndof_menu"; + + ot->name = "NDOF Menu"; + ot->idname = "WM_OT_ndof_menu"; - ot->invoke= wm_ndof_menu_invoke; -// ot->exec= wm_ndof_menu_exec; -// ot->poll= wm_ndof_menu_poll; + ot->invoke = wm_ndof_menu_invoke; } // END ndof menu -- cgit v1.2.3 From 87030e6a320b6bc770ab7055e73c9d3a7dacc4f3 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 2 Jul 2011 05:05:03 +0000 Subject: Light Sid addressing edited. --- source/blender/collada/AnimationExporter.cpp | 14 +++++++++++++- source/blender/collada/LightExporter.cpp | 11 ++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 50f96926fab..243b661e6eb 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -244,8 +244,15 @@ void AnimationExporter::exportAnimations(Scene *sce) addSampler(sampler); - std::string target = translate_id(ob_name) + std::string target ; + + if ( !strcmp( transformName, "color" ) ) + target = get_light_id(ob) + + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + else + target = translate_id(ob_name) + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + addChannel(COLLADABU::URI(empty, sampler_id), target); closeAnimation(); @@ -758,6 +765,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 2; else if (!strcmp(name, "location")) tm_type = 3; + else if (!strcmp(name, "color")) + tm_type = 4; else tm_type = -1; } @@ -774,6 +783,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 3: tm_name = "location"; break; + case 4: + tm_name = "color"; + break; default: tm_name = ""; break; diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index ebcc70013b4..860a2ae5a67 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -61,6 +61,7 @@ void LightsExporter::exportLights(Scene *sce) closeLibrary(); } + void LightsExporter::operator()(Object *ob) { Lamp *la = (Lamp*)ob->data; @@ -85,7 +86,7 @@ void LightsExporter::operator()(Object *ob) // sun if (la->type == LA_SUN) { COLLADASW::DirectionalLight cla(mSW, la_id, la_name); - cla.setColor(col); + cla.setColor(col,false,"color"); cla.setConstantAttenuation(constatt); exportBlenderProfile(cla, la); addLight(cla); @@ -93,7 +94,7 @@ void LightsExporter::operator()(Object *ob) // hemi else if (la->type == LA_HEMI) { COLLADASW::AmbientLight cla(mSW, la_id, la_name); - cla.setColor(col); + cla.setColor(col,false,"color"); cla.setConstantAttenuation(constatt); exportBlenderProfile(cla, la); addLight(cla); @@ -101,7 +102,7 @@ void LightsExporter::operator()(Object *ob) // spot else if (la->type == LA_SPOT) { COLLADASW::SpotLight cla(mSW, la_id, la_name); - cla.setColor(col,false,"Color"); + cla.setColor(col,false,"color"); cla.setFallOffAngle(la->spotsize); cla.setFallOffExponent(la->spotblend); cla.setConstantAttenuation(constatt); @@ -113,7 +114,7 @@ void LightsExporter::operator()(Object *ob) // lamp else if (la->type == LA_LOCAL) { COLLADASW::PointLight cla(mSW, la_id, la_name); - cla.setColor(col); + cla.setColor(col,false,"color"); cla.setConstantAttenuation(constatt); cla.setLinearAttenuation(linatt); cla.setQuadraticAttenuation(quadatt); @@ -124,7 +125,7 @@ void LightsExporter::operator()(Object *ob) // it will be exported as a local lamp else { COLLADASW::PointLight cla(mSW, la_id, la_name); - cla.setColor(col); + cla.setColor(col,false,"color"); cla.setConstantAttenuation(constatt); cla.setLinearAttenuation(linatt); cla.setQuadraticAttenuation(quadatt); -- cgit v1.2.3 From 5f4f75c51a511f4f190c16eedfc4c04c3b9aa387 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sun, 3 Jul 2011 01:59:17 +0000 Subject: BGE Animations: Adding in layer weights to allow for layer blending. --- source/blender/editors/space_logic/logic_window.c | 1 + source/blender/makesdna/DNA_actuator_types.h | 3 ++- source/blender/makesrna/intern/rna_actuator.c | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index c1fc27eb9f3..882d89fcd33 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3713,6 +3713,7 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) row= uiLayoutRow(layout, 0); uiItemR(row, ptr, "layer", 0, NULL, ICON_NONE); + uiItemR(row, ptr, "layer_weight", 0, NULL, ICON_NONE); row= uiLayoutRow(layout, 0); uiItemPointerR(layout, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NONE); diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 071f66cddd6..93db8340aac 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -59,8 +59,9 @@ typedef struct bActionActuator { short layer; /* Animation layer */ short end_reset; /* Ending the actuator (negative pulse) wont reset the the action to its starting frame */ short strideaxis; /* Displacement axis */ - short pad[3]; + short pad; float stridelength; /* Displacement incurred by cycle */ // not in use + float layer_weight; /* How much of the previous layer to use for blending. (<0 = disable, 0 = add mode) */ } bActionActuator; typedef struct Sound3D diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index ebda1b82e8a..3c44720d469 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -631,6 +631,11 @@ static void rna_def_action_actuator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "The animation layer to play the action on"); RNA_def_property_update(prop, NC_LOGIC, NULL); + prop= RNA_def_property(srna, "layer_weight", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_text(prop, "Layer Weight", "How much of the previous layer to blend into this one (0 = add mode)"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + prop= RNA_def_property(srna, "frame_property", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "frameProp"); RNA_def_property_ui_text(prop, "Frame Property", "Assign the action's current frame number to this property"); -- cgit v1.2.3 From 78c43d18fc47c3728a55e1710901c1e7f964195f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jul 2011 07:37:33 +0000 Subject: fix [#27839] UV 'Project from view' ignores camera lens shift --- source/blender/blenlib/intern/uvproject.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c index d139fb1ab71..ecb42315ee3 100644 --- a/source/blender/blenlib/intern/uvproject.c +++ b/source/blender/blenlib/intern/uvproject.c @@ -169,8 +169,8 @@ UvCameraInfo *project_camera_info(Object *ob, float (*rotmat)[4], float winx, fl } /* include 0.5f here to move the UVs into the center */ - uci.shiftx = 0.5f - camera->shiftx; - uci.shifty = 0.5f - camera->shifty; + uci.shiftx = 0.5f - (camera->shiftx * uci.xasp); + uci.shifty = 0.5f - (camera->shifty * uci.yasp); uci_pt= MEM_mallocN(sizeof(UvCameraInfo), "UvCameraInfo"); *uci_pt= uci; -- cgit v1.2.3 From fe62b62cb0b61c03bea111d8fecb73b2166fcddf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jul 2011 10:48:18 +0000 Subject: fix 2 bugs in project from view from a camera object - panorama mode was scaled 2x too high. - scaled camera objects would incorrectly effect the result. --- source/blender/blenlib/intern/uvproject.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c index ecb42315ee3..be7682a63d4 100644 --- a/source/blender/blenlib/intern/uvproject.c +++ b/source/blender/blenlib/intern/uvproject.c @@ -70,7 +70,7 @@ void project_from_camera(float target[2], float source[3], UvCameraInfo *uci) vec2d[0]= pv4[0]; vec2d[1]= pv4[2]; target[0]= angle * ((float)M_PI / uci->camangle); - target[1]= pv4[1] / (len_v2(vec2d) * uci->camsize); + target[1]= pv4[1] / (len_v2(vec2d) * (uci->camsize * 2.0f)); } } else { @@ -146,7 +146,11 @@ UvCameraInfo *project_camera_info(Object *ob, float (*rotmat)[4], float winx, fl uci.camangle= lens_to_angle(camera->lens) / 2.0f; uci.camsize= uci.do_persp ? tanf(uci.camangle) : camera->ortho_scale; - if (invert_m4_m4(uci.caminv, ob->obmat)) { + /* account for scaled cameras */ + copy_m4_m4(uci.caminv, ob->obmat); + normalize_m4(uci.caminv); + + if (invert_m4(uci.caminv)) { UvCameraInfo *uci_pt; /* normal projection */ -- cgit v1.2.3 From a6320911765c65e87d492c48a0facdb1ca99b8ea Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 3 Jul 2011 11:07:34 +0000 Subject: Light Animation Identification. --- source/blender/collada/AnimationImporter.cpp | 24 +++++++++++++++++++----- source/blender/collada/AnimationImporter.h | 6 ++++-- source/blender/collada/DocumentImporter.cpp | 3 ++- source/blender/collada/DocumentImporter.h | 2 +- 4 files changed, 26 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index bb11f815b40..b260ef971ac 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -675,7 +675,8 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::map& root_map, - std::map& object_map ) + std::map& object_map, + std::map FW_object_map) { bool is_joint = node->getType() == COLLADAFW::Node::JOINT; @@ -684,7 +685,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - if ( ! is_object_animated(node) ) return ; + if ( ! is_object_animated(node, FW_object_map) ) return ; char joint_path[200]; @@ -776,13 +777,11 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , ob->rotmode = ROT_MODE_EUL; } } - } - } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms -bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node ) +bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node , std::map FW_object_map ) { bool exists = false; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -800,7 +799,22 @@ bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node ) break; } } + const COLLADAFW::InstanceLightPointerArray& nodeLights = node->getInstanceLights(); + + for (unsigned int i = 0; i < nodeLights.getCount(); i++) { + const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; + const COLLADAFW::Color *col = &(light->getColor()); + const COLLADAFW::UniqueId& listid = col->getAnimationList(); + //check if color has animations + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else + { + exists = true; + break; + } + } + return exists; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 1e005b5c341..6d66d219e40 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -37,6 +37,7 @@ #include "COLLADAFWAnimationList.h" #include "COLLADAFWNode.h" #include "COLLADAFWUniqueId.h" +#include "COLLADAFWLight.h" #include "DNA_anim_types.h" #include "DNA_object_types.h" @@ -97,9 +98,10 @@ public: void translate_Animations_NEW ( COLLADAFW::Node * Node , std::map& root_map, - std::map& object_map ); + std::map& object_map , + std::map FW_object_map); - bool is_object_animated ( const COLLADAFW::Node * node ) ; + bool is_object_animated ( const COLLADAFW::Node * node , std::map FW_object_map ) ; void Assign_transform_animations(std::vector* frames, diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 14ce9a9b417..2815d8703ed 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -252,7 +252,7 @@ void DocumentImporter::translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW //for (i = 0; i < 4; i++) //ob = - anim_importer.translate_Animations_NEW(node, root_map, object_map); + anim_importer.translate_Animations_NEW(node, root_map, object_map, FW_object_map); COLLADAFW::NodePointerArray &children = node->getChildNodes(); for (i = 0; i < children.getCount(); i++) { @@ -1051,6 +1051,7 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) } this->uid_lamp_map[light->getUniqueId()] = lamp; + this->FW_object_map[light->getUniqueId()] = light; return true; } diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h index 5ccec534680..ce7a64a600d 100644 --- a/source/blender/collada/DocumentImporter.h +++ b/source/blender/collada/DocumentImporter.h @@ -157,7 +157,7 @@ private: std::vector libnode_ob; std::map root_map; // find root joint by child joint uid, for bone tree evaluation during resampling - + std::map FW_object_map; }; #endif -- cgit v1.2.3 From c922b413742588ea2fb267b90a649d0a82447eed Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 3 Jul 2011 11:28:40 +0000 Subject: find_frames() calls removed. --- source/blender/collada/AnimationImporter.cpp | 33 +++------------------------- source/blender/collada/AnimationImporter.h | 7 +----- 2 files changed, 4 insertions(+), 36 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index b260ef971ac..b45d9ac5fd9 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -570,8 +570,7 @@ void AnimationImporter::find_frames( std::vector* frames , std::vector* frames, - COLLADAFW::Transformation * transform , +void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * transform , const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path) { @@ -588,10 +587,7 @@ void AnimationImporter:: Assign_transform_animations(std::vector* frames, return; } - //find key frames of the animation and accumulates them to frames of the transformation. - find_frames (frames , curves ); - - char rna_path[100]; + char rna_path[100]; //char joint_path[100]; @@ -706,25 +702,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , return; } - /* - float irest_dae[4][4]; - float rest[4][4], irest[4][4]; - - if (is_joint) { - get_joint_rest_mat(irest_dae, root, node); - invert_m4(irest_dae); - - Bone *bone = get_named_bone((bArmature*)ob->data, bone_name); - if (!bone) { - fprintf(stderr, "cannot find bone \"%s\"\n", bone_name); - return; - } - - unit_m4(rest); - copy_m4_m4(rest, bone->arm_mat); - invert_m4_m4(irest, rest); - }*/ - const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); //for each transformation in node @@ -737,9 +714,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = transform->getAnimationList(); - //might not be needed - std::vector frames; - //check if transformation has animations if (animlist_map.find(listid) == animlist_map.end()) continue ; else @@ -752,7 +726,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_transform_animations(&frames,transform, &bindings[j], &animcurves, is_joint, joint_path ); + Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); std::vector::iterator iter; //Add the curves of the current animation to the object @@ -764,7 +738,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , BLI_addtail(AnimCurves, fcu); } } - std::sort(frames.begin(), frames.end()); } if (is_rotation || is_matrix) { if (is_joint) diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 6d66d219e40..ca04771a63d 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -104,15 +104,10 @@ public: bool is_object_animated ( const COLLADAFW::Node * node , std::map FW_object_map ) ; - void Assign_transform_animations(std::vector* frames, - COLLADAFW::Transformation* transform , + void Assign_transform_animations(COLLADAFW::Transformation* transform , const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path); - /*void Assign_transform_animations(std::vector* frames, - COLLADAFW::Transformation *transform , - COLLADAFW::AnimationList::AnimationBinding * binding, - COLLADAFW::Node * node);*/ void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: // animlist_map - map animlist id -> animlist -- cgit v1.2.3 From b6c1490359964311db7ffb2b74ebc05772bf8be9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 3 Jul 2011 11:56:24 +0000 Subject: Experimental depsgraph tweak: Objects with drivers are now treated as needing updates when the current frame changes. This assumption has been documented in the code, and should at least mean that users who try to use drivers for creating simple time-based expressions that this should work. Note: - It is still recommended to create a "cfra" driver variable instead of actually inlining bpy.context.scene.frame_current into the expressions. Not only does the latter look rather nasty to type/have in the expression, but it is also less future-proof for when I get around to actually working on a beefed-up depsgraph (nothing official on that front yet...) --- source/blender/blenkernel/intern/depsgraph.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index c2800410657..fa4f4c99f08 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2061,6 +2061,12 @@ static short animdata_use_time(AnimData *adt) return 1; } + /* experimental check: if we have drivers, more likely than not, on a frame change + * they'll need updating because their owner changed + */ + if (adt->drivers.first) + return 1; + return 0; } -- cgit v1.2.3 From 9f99e5cc1e971acad3da44ac78123a46f208ac4b Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 3 Jul 2011 12:33:52 +0000 Subject: AnimationType Enum. --- source/blender/collada/AnimationImporter.cpp | 16 +++++++++------- source/blender/collada/AnimationImporter.h | 9 ++++++++- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index b45d9ac5fd9..15bebbe8e20 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -680,8 +680,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map[node->getUniqueId()]; const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - - if ( ! is_object_animated(node, FW_object_map) ) return ; + + AnimationType type = get_animation_type(node, FW_object_map ); char joint_path[200]; @@ -754,9 +754,11 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms -bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node , std::map FW_object_map ) +AnimationImporter::AnimationType AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , + std::map FW_object_map) { - bool exists = false; + AnimationImporter::AnimationType type = AnimationImporter::INANIMATE ; + //bool exists = false; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); //for each transformation in node @@ -768,7 +770,7 @@ bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node , std: if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - exists = true; + type = AnimationImporter::NODE_TRANSFORM; break; } } @@ -783,12 +785,12 @@ bool AnimationImporter::is_object_animated ( const COLLADAFW::Node * node , std: if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - exists = true; + type = AnimationImporter::LIGHT_COLOR; break; } } - return exists; + return type; } //XXX Is not used anymore. diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index ca04771a63d..54ede656ea7 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -80,6 +80,13 @@ private: void fcurve_deg_to_rad(FCurve *cu); void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated); + + enum AnimationType + { + NODE_TRANSFORM, + LIGHT_COLOR, + INANIMATE + }; public: AnimationImporter(UnitConverter *conv, ArmatureImporter *arm, Scene *scene); @@ -101,7 +108,7 @@ public: std::map& object_map , std::map FW_object_map); - bool is_object_animated ( const COLLADAFW::Node * node , std::map FW_object_map ) ; + AnimationType get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; void Assign_transform_animations(COLLADAFW::Transformation* transform , -- cgit v1.2.3 From aa295bb5519fc6c004d13de9ff1f5dd1a6eb359a Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 3 Jul 2011 13:01:52 +0000 Subject: AnimationType flag. AnimationType Enum update. --- source/blender/collada/AnimationImporter.cpp | 10 +++++----- source/blender/collada/AnimationImporter.h | 10 ++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 15bebbe8e20..234a6084356 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -681,7 +681,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - AnimationType type = get_animation_type(node, FW_object_map ); + int animType = get_animation_type(node, FW_object_map ); char joint_path[200]; @@ -754,10 +754,10 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms -AnimationImporter::AnimationType AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , +int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , std::map FW_object_map) { - AnimationImporter::AnimationType type = AnimationImporter::INANIMATE ; + int type = INANIMATE ; //bool exists = false; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -770,7 +770,7 @@ AnimationImporter::AnimationType AnimationImporter::get_animation_type ( const C if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - type = AnimationImporter::NODE_TRANSFORM; + type = type|NODE_TRANSFORM; break; } } @@ -785,7 +785,7 @@ AnimationImporter::AnimationType AnimationImporter::get_animation_type ( const C if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - type = AnimationImporter::LIGHT_COLOR; + type = type|LIGHT_COLOR; break; } } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 54ede656ea7..cc3ffe65735 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -80,12 +80,14 @@ private: void fcurve_deg_to_rad(FCurve *cu); void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated); + + int typeFlag; enum AnimationType { - NODE_TRANSFORM, - LIGHT_COLOR, - INANIMATE + INANIMATE = 0, + NODE_TRANSFORM = 1, + LIGHT_COLOR = 2, }; public: @@ -108,7 +110,7 @@ public: std::map& object_map , std::map FW_object_map); - AnimationType get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; + int get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; void Assign_transform_animations(COLLADAFW::Transformation* transform , -- cgit v1.2.3 From 613e9b9926aed44aa904ce69c8d6bb6c3eecc40d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jul 2011 13:20:21 +0000 Subject: changed the max decimal points to show from 7 to 6, since with float precision problems the median point of a selection could be 0.0000003 --- source/blender/editors/interface/interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 30c0f552b72..8aed0d58a07 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -74,8 +74,8 @@ #define MENU_ITEM_HEIGHT 20 #define MENU_SEP_HEIGHT 6 -#define PRECISION_FLOAT_MAX 7 -#define PRECISION_FLOAT_MAX_POW 10000000 /* pow(10, PRECISION_FLOAT_MAX) */ +#define PRECISION_FLOAT_MAX 6 +#define PRECISION_FLOAT_MAX_POW 1000000 /* pow(10, PRECISION_FLOAT_MAX) */ /* avoid unneeded calls to ui_get_but_val */ #define UI_BUT_VALUE_UNSET DBL_MAX -- cgit v1.2.3 From 1f4fca3654baa00a485cd4fb87888baa99042f2f Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 3 Jul 2011 17:26:02 +0000 Subject: Light Color Animation Import Complete. --- source/blender/collada/AnimationImporter.cpp | 152 +++++++++++++++++++-------- source/blender/collada/AnimationImporter.h | 4 + 2 files changed, 112 insertions(+), 44 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 234a6084356..38e475a7534 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -586,11 +586,9 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * fprintf(stderr, "expected %d curves, got %d\n", xyz ? 3 : 1, (int)curves->size()); return; } - - char rna_path[100]; - //char joint_path[100]; - - + + char rna_path[100]; + switch (tm_type) { case COLLADAFW::Transformation::TRANSLATE: case COLLADAFW::Transformation::SCALE: @@ -669,59 +667,84 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * } +void AnimationImporter:: Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves) +{ + char rna_path[100]; + BLI_strncpy(rna_path,"color", sizeof(rna_path)); + + switch (binding->animationClass) { + case COLLADAFW::AnimationList::COLOR_R: + modify_fcurve(curves, rna_path, 0 ); + break; + case COLLADAFW::AnimationList::COLOR_G: + modify_fcurve(curves, rna_path, 1 ); + break; + case COLLADAFW::AnimationList::COLOR_B: + modify_fcurve(curves, rna_path, 2 ); + break; + case COLLADAFW::AnimationList::COLOR_RGB: + modify_fcurve(curves, rna_path, -1 ); + break; + default: + fprintf(stderr, "AnimationClass %d is not supported for %s.\n", + binding->animationClass, "COLOR" ); + } +} void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::map& root_map, std::map& object_map, std::map FW_object_map) { + int animType = get_animation_type(node, FW_object_map ); + bool is_joint = node->getType() == COLLADAFW::Node::JOINT; - COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map[node->getUniqueId()]; - - const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - - int animType = get_animation_type(node, FW_object_map ); - - char joint_path[200]; + if (!ob) + { + fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); + return; + } - if ( is_joint ) - armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); - bAction * act; bActionGroup *grp = NULL; - if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); - else act = ob->adt->action; - //Get the list of animation curves of the object - - ListBase *AnimCurves = &(act->curves); + if ( (animType & NODE_TRANSFORM) != 0 ) + { + const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + char joint_path[200]; + + if ( is_joint ) + armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + - if (!ob) { - fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); - return; - } + if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); + else act = ob->adt->action; + //Get the list of animation curves of the object + + ListBase *AnimCurves = &(act->curves); - const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); - //for each transformation in node - for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { - COLLADAFW::Transformation *transform = nodeTransforms[i]; - COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); + //for each transformation in node + for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { + COLLADAFW::Transformation *transform = nodeTransforms[i]; + COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); - bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; - bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; - - const COLLADAFW::UniqueId& listid = transform->getAnimationList(); + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; + + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); - //check if transformation has animations - if (animlist_map.find(listid) == animlist_map.end()) continue ; - else + //check if transformation has animations + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else { //transformation has animations const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding + //all the curves belonging to the current binding std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; @@ -729,7 +752,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); std::vector::iterator iter; - //Add the curves of the current animation to the object + //Add the curves of the current animation to the object for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; if (ob->type == OB_ARMATURE) @@ -739,15 +762,56 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } } - if (is_rotation || is_matrix) { - if (is_joint) - { - bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - chan->rotmode = ROT_MODE_EUL; + if (is_rotation || is_matrix) { + if (is_joint) + { + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_EUL; + } + else + { + ob->rotmode = ROT_MODE_EUL; + } } + } + } + + if ( (animType & LIGHT_COLOR) != 0 ) + { + Lamp * lamp = (Lamp*) ob->data; + + if (!lamp->adt || !lamp->adt->action) act = verify_adt_action((ID*)&lamp->id, 1); + else act = lamp->adt->action; + + ListBase *AnimCurves = &(act->curves); + const COLLADAFW::InstanceLightPointerArray& nodeLights = node->getInstanceLights(); + + for (unsigned int i = 0; i < nodeLights.getCount(); i++) { + const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; + const COLLADAFW::Color *col = &(light->getColor()); + const COLLADAFW::UniqueId& listid = col->getAnimationList(); + + //check if color has animations + if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - ob->rotmode = ROT_MODE_EUL; + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_color_animations( &bindings[j], &animcurves); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } } } } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index cc3ffe65735..92b6175ccdb 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -42,6 +42,7 @@ #include "DNA_anim_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" +#include "DNA_lamp_types.h" //#include "ArmatureImporter.h" #include "TransformReader.h" @@ -117,6 +118,9 @@ public: const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path); + void Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves); + void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: // animlist_map - map animlist id -> animlist -- cgit v1.2.3 From d40b9e2e1c7c9f0b063498afc3fde8322155217e Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 3 Jul 2011 18:21:37 +0000 Subject: As per discussion: allow bone transforms again for proxy'ed bones. --- source/blender/editors/transform/transform_conversions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 669c3195dfd..d6095184a69 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -690,7 +690,7 @@ int count_set_pose_transflags(int *out_mode, short around, Object *ob) for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) { bone = pchan->bone; if (PBONE_VISIBLE(arm, bone)) { - if ((bone->flag & BONE_SELECTED) && !(ob->proxy && pchan->bone->layer & arm->layer_protected)) + if ((bone->flag & BONE_SELECTED)) bone->flag |= BONE_TRANSFORM; else bone->flag &= ~BONE_TRANSFORM; -- cgit v1.2.3 From d29d3a89e48fa709a3d683a88874ff8a4c68945a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jul 2011 19:15:46 +0000 Subject: fix for building WITH_PYTHON_MODULE --- source/blender/python/intern/bpy_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 51bf02ad37f..422d55ecefe 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -209,8 +209,6 @@ void BPY_python_start(int argc, const char **argv) Py_Initialize(); - bpy_intern_string_init(); - // PySys_SetArgv(argc, argv); // broken in py3, not a huge deal /* sigh, why do python guys not have a char** version anymore? :( */ { @@ -233,6 +231,8 @@ void BPY_python_start(int argc, const char **argv) PyImport_ExtendInittab(bpy_internal_modules); #endif + bpy_intern_string_init(); + /* bpy.* and lets us import it */ BPy_init_modules(); -- cgit v1.2.3 From de1c4fafc7ecd644dd9ba06dfc7a4f77b4d06683 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 4 Jul 2011 03:12:28 +0000 Subject: First stages of easier "expressions" creation... It is now possible to create "scripted expression" drivers by simply clicking on some property, and typing some short Python expression prefixed with a '#'. This will result in a scripted expression driver, with the typed-in text being created. For example, you can click on X-Location of the default cube, and type: #sin(frame) and a new driver will be created for the x-location of the cube. This will use the current frame value, and modulate this with a sine wave. Do note though, that the current frame is a special case here. In the current implementation, a special "frame" driver variable, which references the current scene frame is created automatically, so that this simple and (assumed) common case will work straight out of the box. Future improvements: - Explore possibilities of semi-automated extraction of variables from such expressions, resulting in automated variable extraction. (Doing away with variables completely is definitely 100% off the agenda though) - Look into some ways of defining some shorthands for referencing local data (possibly related to variable extraction?) --- source/blender/editors/animation/drivers.c | 2 +- source/blender/editors/include/ED_keyframing.h | 7 ++ source/blender/editors/interface/interface.c | 4 ++ source/blender/editors/interface/interface_anim.c | 77 +++++++++++++++++++++- .../blender/editors/interface/interface_intern.h | 1 + 5 files changed, 88 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 75b54a7529a..c9e422baa3e 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -80,7 +80,7 @@ void free_anim_drivers_copybuf (void); * 1 - add new Driver FCurve, * -1 - add new Driver FCurve without driver stuff (for pasting) */ -static FCurve *verify_driver_fcurve (ID *id, const char rna_path[], const int array_index, short add) +FCurve *verify_driver_fcurve (ID *id, const char rna_path[], const int array_index, short add) { AnimData *adt; FCurve *fcu; diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 294b9b8475a..0ca3a932266 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -225,6 +225,13 @@ typedef enum eCreateDriverFlags { /* -------- */ +/* Low-level call to add a new driver F-Curve. This shouldn't be used directly for most tools, + * although there are special cases where this approach is preferable. + */ +struct FCurve *verify_driver_fcurve(struct ID *id, const char rna_path[], const int array_index, short add); + +/* -------- */ + /* Returns whether there is a driver in the copy/paste buffer to paste */ short ANIM_driver_can_paste(void); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 30c0f552b72..17a08917a16 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1701,6 +1701,10 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str) /* driver expression */ return 1; } + else if(str[0]=='#') { + /* shortcut to create new driver expression (versus immediate Py-execution) */ + return ui_but_anim_expression_create(but, str+1); + } else { /* number editing */ double value; diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index 75e7ee701a2..2e172c496a3 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -6,6 +6,7 @@ #include #include +#include "MEM_guardedalloc.h" #include "DNA_anim_types.h" #include "DNA_scene_types.h" @@ -13,15 +14,19 @@ #include "BLI_listbase.h" #include "BLI_string.h" +#include "BLI_utildefines.h" #include "BKE_context.h" +#include "BKE_animsys.h" #include "BKE_fcurve.h" - +#include "BKE_global.h" #include "ED_keyframing.h" #include "UI_interface.h" +#include "RNA_access.h" + #include "WM_api.h" #include "WM_types.h" @@ -84,7 +89,7 @@ int ui_but_anim_expression_set(uiBut *but, const char *str) if(fcu && driven) { driver= fcu->driver; - + if(driver && driver->type == DRIVER_TYPE_PYTHON) { BLI_strncpy(driver->expression, str, sizeof(driver->expression)); driver->flag |= DRIVER_FLAG_RECOMPILE; @@ -96,6 +101,74 @@ int ui_but_anim_expression_set(uiBut *but, const char *str) return 0; } +/* create new expression for button (i.e. a "scripted driver"), if it can be created... */ +int ui_but_anim_expression_create(uiBut *but, const char *str) +{ + bContext *C = but->block->evil_C; + ID *id; + FCurve *fcu; + char *path; + short ok=0; + + /* button must have RNA-pointer to a numeric-capable property */ + if (ELEM(NULL, but->rnapoin.data, but->rnaprop)) { + if (G.f & G_DEBUG) + printf("ERROR: create expression failed - button has no RNA info attached\n"); + return 0; + } + + /* make sure we have animdata for this */ + // FIXME: until materials can be handled by depsgraph, don't allow drivers to be created for them + id = (ID *)but->rnapoin.id.data; + if ((id == NULL) || (GS(id->name)==ID_MA) || (GS(id->name)==ID_TE)) { + if (G.f & G_DEBUG) + printf("ERROR: create expression failed - invalid id-datablock for adding drivers (%p)\n", id); + return 0; + } + + /* get path */ + path = RNA_path_from_ID_to_property(&but->rnapoin, but->rnaprop); + + /* create driver */ + fcu = verify_driver_fcurve(id, path, but->rnaindex, 1); + if (fcu) { + ChannelDriver *driver= fcu->driver; + + if (driver) { + /* set type of driver */ + driver->type = DRIVER_TYPE_PYTHON; + + /* set the expression */ + // TODO: need some way of identifying variables used + BLI_strncpy(driver->expression, str, sizeof(driver->expression)); + + /* FIXME: for now, assume that + * - for expressions, users are likely to be using "frame" -> current frame" as a variable + * - driver_add_new_variable() adds a single-prop variable by default + */ + { + DriverVar *dvar; + DriverTarget *dtar; + + dvar = driver_add_new_variable(driver); + BLI_strncpy(dvar->name, "frame", sizeof(dvar->name)); + + dtar = &dvar->targets[0]; + dtar->id = (ID *)CTX_data_scene(C); // XXX: should we check that C is valid first? + dtar->rna_path = BLI_sprintfN("frame_current"); + } + + /* updates */ + driver->flag |= DRIVER_FLAG_RECOMPILE; + WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME, NULL); + } + } + + MEM_freeN(path); + + return ok; +} + void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra) { ID *id; diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 8475090b468..8194ad610f7 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -520,6 +520,7 @@ void ui_but_anim_add_keyingset(struct bContext *C); void ui_but_anim_remove_keyingset(struct bContext *C); int ui_but_anim_expression_get(uiBut *but, char *str, int maxlen); int ui_but_anim_expression_set(uiBut *but, const char *str); +int ui_but_anim_expression_create(uiBut *but, const char *str); void ui_but_anim_autokey(struct bContext *C, uiBut *but, struct Scene *scene, float cfra); #endif -- cgit v1.2.3 From 0e0eba9f79b122eeef613fbd3733b339a95094a4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jul 2011 05:23:36 +0000 Subject: fix for crash when setting layers or saving when there is no active scene - only really happens when running python scripts on startup. --- source/blender/makesrna/intern/rna_object.c | 13 +++++++++---- source/blender/windowmanager/intern/wm_files.c | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 6b925b42e06..dd66e49fdec 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -270,11 +270,16 @@ static void rna_Base_select_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Po static void rna_Object_layer_update__internal(Main *bmain, Scene *scene, Base *base, Object *ob) { /* try to avoid scene sort */ - if((ob->lay & scene->lay) && (base->lay & scene->lay)) { + if(scene == NULL) { + /* pass - unlikely but when running scripts on startup it happens */ + } + else if((ob->lay & scene->lay) && (base->lay & scene->lay)) { /* pass */ - } else if((ob->lay & scene->lay)==0 && (base->lay & scene->lay)==0) { + } + else if((ob->lay & scene->lay)==0 && (base->lay & scene->lay)==0) { /* pass */ - } else { + } + else { DAG_scene_sort(bmain, scene); } } @@ -284,7 +289,7 @@ static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) Object *ob= (Object*)ptr->id.data; Base *base; - base= object_in_scene(ob, scene); + base= scene ? object_in_scene(ob, scene) : NULL; if(!base) return; diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index e0cfb86ce05..aabaf6d4055 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -635,8 +635,9 @@ static ImBuf *blend_file_thumb(Scene *scene, int **thumb_pt) char err_out[256]= "unknown"; *thumb_pt= NULL; - - if(G.background || scene->camera==NULL) + + /* scene can be NULL if running a script at startup and calling the save operator */ + if(G.background || scene==NULL || scene->camera==NULL) return NULL; /* gets scaled to BLEN_THUMB_SIZE */ -- cgit v1.2.3 From aa1668c6f8a70e41b97b67f31647dbec382e19f7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jul 2011 08:13:27 +0000 Subject: fix for own error in intersect_line_sphere_2d(), using 3d function on 2d vectors --- source/blender/blenlib/intern/math_geom.c | 2 +- source/blender/python/generic/mathutils_geometry.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 9d945e9baa3..fc329fe1bf1 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -430,7 +430,7 @@ int isect_line_sphere_v2(const float l1[2], const float l2[2], l2[1] - l1[1] }; - const float a= dot_v3v3(ldir, ldir); + const float a= dot_v2v2(ldir, ldir); const float b= 2.0f * (ldir[0] * (l1[0] - sp[0]) + diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 55c1e69d558..26844a5003d 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -680,7 +680,7 @@ static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyO PyObject *ret= PyTuple_New(2); - switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { case 1: if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; use_b= FALSE; -- cgit v1.2.3 From cf43e48fc781611c0850e09dae6f6fa1c95cc28b Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 4 Jul 2011 08:59:28 +0000 Subject: Apply patch 4636051. COLLADA: Export selection. Original patch by Jan Diederich, adapted by Pelle Johnsen. Review assistance by Daniel Tavares. This patch adds an option to export only the selection. --- source/blender/collada/ArmatureExporter.cpp | 11 +++++--- source/blender/collada/ArmatureExporter.h | 2 +- source/blender/collada/CameraExporter.cpp | 9 ++++--- source/blender/collada/CameraExporter.h | 2 +- source/blender/collada/DocumentExporter.cpp | 29 ++++++++++++---------- source/blender/collada/DocumentExporter.h | 2 +- source/blender/collada/EffectExporter.cpp | 4 +-- source/blender/collada/EffectExporter.h | 2 +- source/blender/collada/GeometryExporter.cpp | 4 +-- source/blender/collada/GeometryExporter.h | 7 +++--- source/blender/collada/ImageExporter.cpp | 4 +-- source/blender/collada/ImageExporter.h | 2 +- source/blender/collada/LightExporter.cpp | 9 ++++--- source/blender/collada/LightExporter.h | 2 +- source/blender/collada/MaterialExporter.cpp | 4 +-- source/blender/collada/MaterialExporter.h | 6 ++--- source/blender/collada/collada.cpp | 4 +-- source/blender/collada/collada.h | 2 +- source/blender/collada/collada_internal.cpp | 2 +- source/blender/makesrna/intern/rna_scene_api.c | 5 ++-- source/blender/windowmanager/intern/wm_operators.c | 8 +++++- 21 files changed, 69 insertions(+), 51 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 90c3cfbb001..ad9098db3d8 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -89,14 +89,14 @@ void ArmatureExporter::add_instance_controller(Object *ob) ins.add(); } -void ArmatureExporter::export_controllers(Scene *sce) +void ArmatureExporter::export_controllers(Scene *sce, bool export_selected) { scene = sce; openLibrary(); GeometryFunctor gf; - gf.forEachMeshObjectInScene(sce, *this); + gf.forEachMeshObjectInScene(sce, *this, export_selected); closeLibrary(); } @@ -351,12 +351,17 @@ std::string ArmatureExporter::add_inv_bind_mats_source(Object *ob_arm, ListBase bPoseChannel *pchan = get_pose_channel(pose, def->name); + float pose_mat[4][4]; float mat[4][4]; float world[4][4]; float inv_bind_mat[4][4]; + // pose_mat is the same as pchan->pose_mat, but without the rotation + unit_m4(pose_mat); + translate_m4(pose_mat, pchan->pose_head[0], pchan->pose_head[1], pchan->pose_head[2]); + // make world-space matrix, pose_mat is armature-space - mul_m4_m4m4(world, pchan->pose_mat, ob_arm->obmat); + mul_m4_m4m4(world, pose_mat, ob_arm->obmat); invert_m4_m4(mat, world); converter.mat4_to_dae(inv_bind_mat, mat); diff --git a/source/blender/collada/ArmatureExporter.h b/source/blender/collada/ArmatureExporter.h index f72e5244a36..f4488942f7b 100644 --- a/source/blender/collada/ArmatureExporter.h +++ b/source/blender/collada/ArmatureExporter.h @@ -65,7 +65,7 @@ public: void add_instance_controller(Object *ob); - void export_controllers(Scene *sce); + void export_controllers(Scene *sce, bool export_selected); void operator()(Object *ob); diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index f8fa0fd55c0..6ce9eb782d3 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -42,24 +42,25 @@ CamerasExporter::CamerasExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryCameras(sw){} template -void forEachCameraObjectInScene(Scene *sce, Functor &f) +void forEachCameraObjectInScene(Scene *sce, Functor &f, bool export_selected) { Base *base= (Base*) sce->base.first; while(base) { Object *ob = base->object; - if (ob->type == OB_CAMERA && ob->data) { + if (ob->type == OB_CAMERA && ob->data + && !(export_selected && !(ob->flag & SELECT))) { f(ob, sce); } base= base->next; } } -void CamerasExporter::exportCameras(Scene *sce) +void CamerasExporter::exportCameras(Scene *sce, bool export_selected) { openLibrary(); - forEachCameraObjectInScene(sce, *this); + forEachCameraObjectInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/CameraExporter.h b/source/blender/collada/CameraExporter.h index 922eaf6b1d0..999a6ddd3e5 100644 --- a/source/blender/collada/CameraExporter.h +++ b/source/blender/collada/CameraExporter.h @@ -40,7 +40,7 @@ class CamerasExporter: COLLADASW::LibraryCameras { public: CamerasExporter(COLLADASW::StreamWriter *sw); - void exportCameras(Scene *sce); + void exportCameras(Scene *sce, bool export_selected); void operator()(Object *ob, Scene *sce); }; diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 00daac60281..e6e0953680c 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -170,7 +170,7 @@ public: SceneExporter(COLLADASW::StreamWriter *sw, ArmatureExporter *arm) : COLLADASW::LibraryVisualScenes(sw), arm_exporter(arm) {} - void exportScene(Scene *sce) { + void exportScene(Scene *sce, bool export_selected) { // std::string id_naming = id_name(sce); openVisualScene(translate_id(id_naming), id_naming); @@ -179,7 +179,7 @@ public: //forEachMeshObjectInScene(sce, *this); //forEachCameraObjectInScene(sce, *this); //forEachLampObjectInScene(sce, *this); - exportHierarchy(sce); + exportHierarchy(sce, export_selected); // closeVisualScene(); @@ -187,7 +187,7 @@ public: closeLibrary(); } - void exportHierarchy(Scene *sce) + void exportHierarchy(Scene *sce, bool export_selected) { Base *base= (Base*) sce->base.first; while(base) { @@ -198,8 +198,11 @@ public: case OB_MESH: case OB_CAMERA: case OB_LAMP: - case OB_EMPTY: case OB_ARMATURE: + case OB_EMPTY: + if (export_selected && !(ob->flag & SELECT)) { + break; + } // write nodes.... writeNodes(ob, sce); break; @@ -929,7 +932,7 @@ protected: } }; -void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename) +void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename, bool selected) { PointerRNA sceneptr, unit_settings; PropertyRNA *system; /* unused , *scale; */ @@ -1011,31 +1014,31 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename) // if(has_object_type(sce, OB_CAMERA)) { CamerasExporter ce(&sw); - ce.exportCameras(sce); + ce.exportCameras(sce, selected); } // if(has_object_type(sce, OB_LAMP)) { LightsExporter le(&sw); - le.exportLights(sce); + le.exportLights(sce, selected); } // ImagesExporter ie(&sw, filename); - ie.exportImages(sce); + ie.exportImages(sce, selected); // EffectsExporter ee(&sw); - ee.exportEffects(sce); + ee.exportEffects(sce, selected); // MaterialsExporter me(&sw); - me.exportMaterials(sce); + me.exportMaterials(sce, selected); // if(has_object_type(sce, OB_MESH)) { GeometryExporter ge(&sw); - ge.exportGeom(sce); + ge.exportGeom(sce, selected); } // @@ -1045,12 +1048,12 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename) // ArmatureExporter arm_exporter(&sw); if(has_object_type(sce, OB_ARMATURE)) { - arm_exporter.export_controllers(sce); + arm_exporter.export_controllers(sce, selected); } // SceneExporter se(&sw, &arm_exporter); - se.exportScene(sce); + se.exportScene(sce, selected); // std::string scene_name(translate_id(id_name(sce))); diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h index 9d6d2114cd8..923313c4ed9 100644 --- a/source/blender/collada/DocumentExporter.h +++ b/source/blender/collada/DocumentExporter.h @@ -34,7 +34,7 @@ struct Scene; class DocumentExporter { public: - void exportCurrentScene(Scene *sce, const char* filename); + void exportCurrentScene(Scene *sce, const char* filename, bool selected); void exportScenes(const char* filename); }; diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp index 74756859d3b..f51330165f3 100644 --- a/source/blender/collada/EffectExporter.cpp +++ b/source/blender/collada/EffectExporter.cpp @@ -78,12 +78,12 @@ bool EffectsExporter::hasEffects(Scene *sce) return false; } -void EffectsExporter::exportEffects(Scene *sce) +void EffectsExporter::exportEffects(Scene *sce, bool export_selected) { if(hasEffects(sce)) { openLibrary(); MaterialFunctor mf; - mf.forEachMaterialInScene(sce, *this); + mf.forEachMaterialInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/EffectExporter.h b/source/blender/collada/EffectExporter.h index 2b25d1b889f..86143ae4d07 100644 --- a/source/blender/collada/EffectExporter.h +++ b/source/blender/collada/EffectExporter.h @@ -47,7 +47,7 @@ class EffectsExporter: COLLADASW::LibraryEffects { public: EffectsExporter(COLLADASW::StreamWriter *sw); - void exportEffects(Scene *sce); + void exportEffects(Scene *sce, bool export_selected); void operator()(Material *ma, Object *ob); diff --git a/source/blender/collada/GeometryExporter.cpp b/source/blender/collada/GeometryExporter.cpp index 5df5ab99b91..b724844b1ec 100644 --- a/source/blender/collada/GeometryExporter.cpp +++ b/source/blender/collada/GeometryExporter.cpp @@ -47,13 +47,13 @@ GeometryExporter::GeometryExporter(COLLADASW::StreamWriter *sw) : COLLADASW::LibraryGeometries(sw) {} -void GeometryExporter::exportGeom(Scene *sce) +void GeometryExporter::exportGeom(Scene *sce, bool export_selected) { openLibrary(); mScene = sce; GeometryFunctor gf; - gf.forEachMeshObjectInScene(sce, *this); + gf.forEachMeshObjectInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/GeometryExporter.h b/source/blender/collada/GeometryExporter.h index 0b9abaebc25..7f3426a1915 100644 --- a/source/blender/collada/GeometryExporter.h +++ b/source/blender/collada/GeometryExporter.h @@ -60,7 +60,7 @@ class GeometryExporter : COLLADASW::LibraryGeometries public: GeometryExporter(COLLADASW::StreamWriter *sw); - void exportGeom(Scene *sce); + void exportGeom(Scene *sce, bool export_selected); void operator()(Object *ob); @@ -102,14 +102,15 @@ struct GeometryFunctor { // f should have // void operator()(Object* ob) template - void forEachMeshObjectInScene(Scene *sce, Functor &f) + void forEachMeshObjectInScene(Scene *sce, Functor &f, bool export_selected) { Base *base= (Base*) sce->base.first; while(base) { Object *ob = base->object; - if (ob->type == OB_MESH && ob->data) { + if (ob->type == OB_MESH && ob->data + && !(export_selected && !(ob->flag && SELECT))) { f(ob); } base= base->next; diff --git a/source/blender/collada/ImageExporter.cpp b/source/blender/collada/ImageExporter.cpp index b7a5ef4c4e4..8e426e9dba8 100644 --- a/source/blender/collada/ImageExporter.cpp +++ b/source/blender/collada/ImageExporter.cpp @@ -71,12 +71,12 @@ bool ImagesExporter::hasImages(Scene *sce) return false; } -void ImagesExporter::exportImages(Scene *sce) +void ImagesExporter::exportImages(Scene *sce, bool export_selected) { if(hasImages(sce)) { openLibrary(); MaterialFunctor mf; - mf.forEachMaterialInScene(sce, *this); + mf.forEachMaterialInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/ImageExporter.h b/source/blender/collada/ImageExporter.h index 04e3010dc7a..6b81c099259 100644 --- a/source/blender/collada/ImageExporter.h +++ b/source/blender/collada/ImageExporter.h @@ -47,7 +47,7 @@ class ImagesExporter: COLLADASW::LibraryImages public: ImagesExporter(COLLADASW::StreamWriter *sw, const char* filename); - void exportImages(Scene *sce); + void exportImages(Scene *sce, bool export_selected); void operator()(Material *ma, Object *ob); private: bool hasImages(Scene *sce); diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 13eb62ca969..c2cc0c1e157 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -38,13 +38,14 @@ #include "collada_internal.h" template -void forEachLampObjectInScene(Scene *sce, Functor &f) +void forEachLampObjectInScene(Scene *sce, Functor &f, bool export_selected) { Base *base= (Base*) sce->base.first; while(base) { Object *ob = base->object; - if (ob->type == OB_LAMP && ob->data) { + if (ob->type == OB_LAMP && ob->data + && !(export_selected && !(ob->flag & SELECT))) { f(ob); } base= base->next; @@ -53,11 +54,11 @@ void forEachLampObjectInScene(Scene *sce, Functor &f) LightsExporter::LightsExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryLights(sw){} -void LightsExporter::exportLights(Scene *sce) +void LightsExporter::exportLights(Scene *sce, bool export_selected) { openLibrary(); - forEachLampObjectInScene(sce, *this); + forEachLampObjectInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/LightExporter.h b/source/blender/collada/LightExporter.h index 3706582e52c..2ae1a19fdb1 100644 --- a/source/blender/collada/LightExporter.h +++ b/source/blender/collada/LightExporter.h @@ -41,7 +41,7 @@ class LightsExporter: COLLADASW::LibraryLights { public: LightsExporter(COLLADASW::StreamWriter *sw); - void exportLights(Scene *sce); + void exportLights(Scene *sce, bool export_selected); void operator()(Object *ob); private: bool exportBlenderProfile(COLLADASW::Light &cla, Lamp *la); diff --git a/source/blender/collada/MaterialExporter.cpp b/source/blender/collada/MaterialExporter.cpp index 0030f2a6285..a44fa6802f2 100644 --- a/source/blender/collada/MaterialExporter.cpp +++ b/source/blender/collada/MaterialExporter.cpp @@ -35,12 +35,12 @@ MaterialsExporter::MaterialsExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryMaterials(sw){} -void MaterialsExporter::exportMaterials(Scene *sce) +void MaterialsExporter::exportMaterials(Scene *sce, bool export_selected) { openLibrary(); MaterialFunctor mf; - mf.forEachMaterialInScene(sce, *this); + mf.forEachMaterialInScene(sce, *this, export_selected); closeLibrary(); } diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h index 033c8526346..0a7a276d857 100644 --- a/source/blender/collada/MaterialExporter.h +++ b/source/blender/collada/MaterialExporter.h @@ -49,7 +49,7 @@ class MaterialsExporter: COLLADASW::LibraryMaterials { public: MaterialsExporter(COLLADASW::StreamWriter *sw); - void exportMaterials(Scene *sce); + void exportMaterials(Scene *sce, bool export_selected); void operator()(Material *ma, Object *ob); }; @@ -86,11 +86,11 @@ struct MaterialFunctor { // f should have // void operator()(Material* ma) template - void forEachMaterialInScene(Scene *sce, Functor &f) + void forEachMaterialInScene(Scene *sce, Functor &f, bool export_selected) { ForEachMaterialFunctor matfunc(&f); GeometryFunctor gf; - gf.forEachMeshObjectInScene >(sce, matfunc); + gf.forEachMeshObjectInScene >(sce, matfunc, export_selected); } }; diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index 51caf62f6e7..c15e608c360 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -51,7 +51,7 @@ extern "C" return 1; } - int collada_export(Scene *sce, const char *filepath) + int collada_export(Scene *sce, const char *filepath, int selected) { DocumentExporter exp; @@ -64,7 +64,7 @@ extern "C" } /* end! */ - exp.exportCurrentScene(sce, filepath); + exp.exportCurrentScene(sce, filepath, selected); return 1; } diff --git a/source/blender/collada/collada.h b/source/blender/collada/collada.h index a167784e217..915a77354e3 100644 --- a/source/blender/collada/collada.h +++ b/source/blender/collada/collada.h @@ -39,7 +39,7 @@ extern "C" { * both return 1 on success, 0 on error */ int collada_import(bContext *C, const char *filepath); - int collada_export(Scene *sce, const char *filepath); + int collada_export(Scene *sce, const char *filepath, int selected); #ifdef __cplusplus } #endif diff --git a/source/blender/collada/collada_internal.cpp b/source/blender/collada/collada_internal.cpp index 9cb6a227fc9..27397c3008e 100644 --- a/source/blender/collada/collada_internal.cpp +++ b/source/blender/collada/collada_internal.cpp @@ -265,7 +265,7 @@ std::string get_light_id(Object *ob) std::string get_joint_id(Bone *bone, Object *ob_arm) { - return translate_id(bone->name); + return translate_id(/*id_name(ob_arm) + "_" +*/ bone->name); } std::string get_camera_id(Object *ob) diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index c2194636cd3..1220c4f34a1 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -85,9 +85,9 @@ static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, char *name /* don't remove this, as COLLADA exporting cannot be done through operators in render() callback. */ #include "../../collada/collada.h" -static void rna_Scene_collada_export(Scene *scene, const char *filepath) +static void rna_Scene_collada_export(Scene *scene, const char *filepath, int selected) { - collada_export(scene, filepath); + collada_export(scene, filepath, selected); } #endif @@ -112,6 +112,7 @@ void RNA_api_scene(StructRNA *srna) /* don't remove this, as COLLADA exporting cannot be done through operators in render() callback. */ func= RNA_def_function(srna, "collada_export", "rna_Scene_collada_export"); parm= RNA_def_string(func, "filepath", "", FILE_MAX, "File Path", "File path to write Collada file."); + parm= RNA_def_boolean(func, "selected", 0, "Export only selected", "Export only selected elements."); RNA_def_property_flag(parm, PROP_REQUIRED); RNA_def_property_subtype(parm, PROP_FILEPATH); /* allow non utf8 */ RNA_def_function_ui_description(func, "Export to collada file."); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index f65485b84dd..35afdf29b53 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2004,6 +2004,8 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { + int selected = 0; + if(!RNA_property_is_set(op->ptr, "filepath")) { char filepath[FILE_MAX]; BLI_strncpy(filepath, G.main->name, sizeof(filepath)); @@ -2020,6 +2022,7 @@ static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED static int wm_collada_export_exec(bContext *C, wmOperator *op) { char filename[FILE_MAX]; + int selected; if(!RNA_property_is_set(op->ptr, "filepath")) { BKE_report(op->reports, RPT_ERROR, "No filename given"); @@ -2027,7 +2030,8 @@ static int wm_collada_export_exec(bContext *C, wmOperator *op) } RNA_string_get(op->ptr, "filepath", filename); - if(collada_export(CTX_data_scene(C), filename)) { + selected = RNA_boolean_get(op->ptr, "selected"); + if(collada_export(CTX_data_scene(C), filename, selected)) { return OPERATOR_FINISHED; } else { @@ -2045,6 +2049,8 @@ static void WM_OT_collada_export(wmOperatorType *ot) ot->poll= WM_operator_winactive; WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH); + RNA_def_boolean(ot->srna, "selected", 0, "Export only selected", + "Export only selected elements"); } /* function used for WM_OT_save_mainfile too */ -- cgit v1.2.3 From ca2c319649a1a7261f2d36b14d970b8bc711da28 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jul 2011 10:56:59 +0000 Subject: Fix #27850: keyboards with a comma instead of a dot on the numpad now get converted to a dot when typing into number buttons, for easier number entry. --- source/blender/editors/interface/interface_handlers.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 99a31e039c8..e9ec4ccc66d 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1895,7 +1895,15 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle } if(event->ascii && (retval == WM_UI_HANDLER_CONTINUE)) { - changed= ui_textedit_type_ascii(but, data, event->ascii); + char ascii = event->ascii; + + /* exception that's useful for number buttons, some keyboard + numpads have a comma instead of a period */ + if(ELEM3(but->type, NUM, NUMABS, NUMSLI)) + if(event->type == PADPERIOD && ascii == ',') + ascii = '.'; + + changed= ui_textedit_type_ascii(but, data, ascii); retval= WM_UI_HANDLER_BREAK; } -- cgit v1.2.3 From 59185219593f5270cd1d5cfc13eea8a6e60bfca4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 4 Jul 2011 11:28:39 +0000 Subject: Bug report (IRC) Knife cut with long mouse trails failed, increased max amount of input points 4 fold (1024). --- source/blender/editors/mesh/editmesh_loop.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c index 32971ca77ed..acbe5ef2144 100644 --- a/source/blender/editors/mesh/editmesh_loop.c +++ b/source/blender/editors/mesh/editmesh_loop.c @@ -608,9 +608,12 @@ static float seg_intersect(EditEdge *e, CutCurve *c, int len, char mode, struct return(perc); } - +/* for multicut */ #define MAX_CUTS 256 +/* for amount of edges */ +#define MAX_CUT_EDGES 1024 + static int knife_cut_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); @@ -618,7 +621,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op) ARegion *ar= CTX_wm_region(C); EditEdge *eed; EditVert *eve; - CutCurve curve[MAX_CUTS]; + CutCurve curve[MAX_CUT_EDGES]; struct GHash *gh; float isect=0.0; float *scr, co[4]; @@ -642,7 +645,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op) RNA_float_get_array(&itemptr, "loc", (float *)&curve[len]); len++; - if(len>= MAX_CUTS) break; + if(len>= MAX_CUT_EDGES) break; } RNA_END; -- cgit v1.2.3 From 7e36a75b459302b02fdc5b85743de83782d68fa7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jul 2011 13:33:47 +0000 Subject: Paths: remove some temporary code that was only needed for 2.57. --- source/blender/blenlib/intern/path_util.c | 35 +------------------------------ 1 file changed, 1 insertion(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index af87707fb90..80b85661762 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -1024,26 +1024,6 @@ static int get_path_system(char *targetpath, const char *folder_name, const char } } -#if defined(WIN32) && BLENDER_VERSION < 258 - -static int path_have_257_script_install(void) -{ - const int ver= BLENDER_VERSION; - char path[FILE_MAX] = ""; - char system_pyfile[FILE_MAX]; - - if (get_path_user(path, "scripts", NULL, "BLENDER_USER_SCRIPTS", ver)) { - BLI_join_dirfile(system_pyfile, sizeof(system_pyfile), path, "modules/bpy_types.py"); - - if (BLI_exists(system_pyfile)) - return 1; - } - - return 0; -} - -#endif - /* get a folder out of the 'folder_id' presets for paths */ /* returns the path if found, NULL string if not */ char *BLI_get_folder(int folder_id, const char *subfolder) @@ -1076,20 +1056,7 @@ char *BLI_get_folder(int folder_id, const char *subfolder) return NULL; case BLENDER_USER_SCRIPTS: -#if defined(WIN32) && BLENDER_VERSION < 258 - /* if we have a 2.57 installation, then we may have system script - * files in the user configuration folder. avoid using that folder - * if they are there, until the version gets bumped to 2.58, so - * we can be sure that folder only has addons etc. */ - if (path_have_257_script_install()) { - if (get_path_local(path, "scripts", subfolder, ver)) break; - } - else -#endif - { - if (get_path_user(path, "scripts", subfolder, "BLENDER_USER_SCRIPTS", ver)) break; - } - + if (get_path_user(path, "scripts", subfolder, "BLENDER_USER_SCRIPTS", ver)) break; return NULL; case BLENDER_SYSTEM_SCRIPTS: -- cgit v1.2.3 From 796c6a946736e9c1f33c8224b23b0943bcd2ba2c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jul 2011 13:48:18 +0000 Subject: Fix #27849: 3D manipulator widget lost on mesh in edge mode. The manipulator was always using vertex selection flags, but those are only valid in vertex mode, as selection flag flushing only happens in the direction vertex -> edge -> face. Now use edge/face selection flags when needed. --- .../editors/transform/transform_manipulator.c | 63 ++++++++++++++++++++-- 1 file changed, 58 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 65cd285cf48..d62227a122d 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -278,6 +278,7 @@ int calc_manipulator_stats(const bContext *C) ARegion *ar= CTX_wm_region(C); Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); + ToolSettings *ts = CTX_data_tool_settings(C); View3D *v3d= sa->spacedata.first; RegionView3D *rv3d= ar->regiondata; Base *base; @@ -309,11 +310,63 @@ int calc_manipulator_stats(const bContext *C) calc_tw_center(scene, vec); totsel= 1; } else { - /* do vertices for center, and if still no normal found, use vertex normals */ - for(eve= em->verts.first; eve; eve= eve->next) { - if(eve->f & SELECT) { - totsel++; - calc_tw_center(scene, eve->co); + /* do vertices/edges/faces for center depending on selection + mode. note we can't use just vertex selection flag because + it is not flush down on changes */ + if(ts->selectmode & SCE_SELECT_VERTEX) { + for(eve= em->verts.first; eve; eve= eve->next) { + if(eve->f & SELECT) { + totsel++; + calc_tw_center(scene, eve->co); + } + } + } + else if(ts->selectmode & SCE_SELECT_EDGE) { + EditEdge *eed; + + for(eve= em->verts.first; eve; eve= eve->next) eve->f1= 0; + for(eed= em->edges.first; eed; eed= eed->next) { + if(eed->h==0 && (eed->f & SELECT)) { + if(!eed->v1->f1) { + eed->v1->f1= 1; + totsel++; + calc_tw_center(scene, eed->v1->co); + } + if(!eed->v2->f1) { + eed->v2->f1= 1; + totsel++; + calc_tw_center(scene, eed->v2->co); + } + } + } + } + else { + EditFace *efa; + + for(eve= em->verts.first; eve; eve= eve->next) eve->f1= 0; + for(efa= em->faces.first; efa; efa= efa->next) { + if(efa->h==0 && (efa->f & SELECT)) { + if(!efa->v1->f1) { + efa->v1->f1= 1; + totsel++; + calc_tw_center(scene, efa->v1->co); + } + if(!efa->v2->f1) { + efa->v2->f1= 1; + totsel++; + calc_tw_center(scene, efa->v2->co); + } + if(!efa->v3->f1) { + efa->v3->f1= 1; + totsel++; + calc_tw_center(scene, efa->v3->co); + } + if(efa->v4 && !efa->v4->f1) { + efa->v4->f1= 1; + totsel++; + calc_tw_center(scene, efa->v4->co); + } + } } } } -- cgit v1.2.3 From 7c1514344911ff2c44f45111429726fd39ff4b74 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jul 2011 15:09:02 +0000 Subject: bind marker camera now uses active object rather then scene camera (was requested a few times) --- source/blender/editors/animation/anim_markers.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index c6e55427034..b3338396598 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -50,6 +50,7 @@ #include "BKE_main.h" #include "BKE_report.h" #include "BKE_scene.h" +#include "BKE_screen.h" #include "WM_api.h" #include "WM_types.h" @@ -1416,7 +1417,9 @@ static void MARKER_OT_make_links_scene(wmOperatorType *ot) static int ed_marker_camera_bind_exec(bContext *C, wmOperator *UNUSED(op)) { + bScreen *sc= CTX_wm_screen(C); Scene *scene= CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); ListBase *markers= ED_context_get_markers(C); TimeMarker *marker; @@ -1424,10 +1427,15 @@ static int ed_marker_camera_bind_exec(bContext *C, wmOperator *UNUSED(op)) if(marker == NULL) return OPERATOR_CANCELLED; - marker->camera= scene->camera; + marker->camera= ob; + + /* camera may have changes */ + scene_camera_switch_update(scene); + BKE_screen_view3d_scene_sync(sc); WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL); WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL); + WM_event_add_notifier(C, NC_SCENE|NA_EDITED, scene); /* so we get view3d redraws */ return OPERATOR_FINISHED; } -- cgit v1.2.3 From ab369227fbbfc40756fb49b9d795bd2a8ef7fcd6 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 4 Jul 2011 15:33:39 +0000 Subject: light SpotLight blend and size parameters animation export. on going. --- source/blender/collada/AnimationExporter.cpp | 21 ++++++++++++++++++--- source/blender/collada/LightExporter.cpp | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 243b661e6eb..fdd59c40ea5 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -88,7 +88,8 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion")) || - (!strcmp(transformName, "color"))) + (!strcmp(transformName, "color")) || + (!strcmp(transformName, "spot_size"))) dae_animation(ob ,fcu, transformName ); @@ -164,6 +165,10 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ } + else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend") ) + { + axis_name = ""; + } else if ( !strcmp(transformName, "color") ) { const char *axis_names[] = {"R", "G", "B"}; @@ -246,7 +251,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string target ; - if ( !strcmp( transformName, "color" ) ) + if ( ob->type == OB_LAMP ) target = get_light_id(ob) + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); else @@ -546,7 +551,7 @@ void AnimationExporter::exportAnimations(Scene *sce) values[1] = 0; } else if (rotation) { - values[1] = (bezt->vec[0][1]) * 180.0f/M_PI; + values[1] = (bezt->vec[2][1]) * 180.0f/M_PI; } else { values[1] = bezt->vec[2][1]; } @@ -767,6 +772,10 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 3; else if (!strcmp(name, "color")) tm_type = 4; + else if (!strcmp(name, "spot_size")) + tm_type = 5; + else if (!strcmp(name, "spot_blend")) + tm_type = 6; else tm_type = -1; } @@ -786,6 +795,12 @@ void AnimationExporter::exportAnimations(Scene *sce) case 4: tm_name = "color"; break; + case 5: + tm_name = "fall_off_angle"; + break; + case 6: + tm_name = "fall_off_exponent"; + break; default: tm_name = ""; break; diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 860a2ae5a67..c3f850dd0cb 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -103,8 +103,8 @@ void LightsExporter::operator()(Object *ob) else if (la->type == LA_SPOT) { COLLADASW::SpotLight cla(mSW, la_id, la_name); cla.setColor(col,false,"color"); - cla.setFallOffAngle(la->spotsize); - cla.setFallOffExponent(la->spotblend); + cla.setFallOffAngle(la->spotsize,false,"fall_off_angle"); + cla.setFallOffExponent(la->spotblend,false,"fall_off_exponent"); cla.setConstantAttenuation(constatt); cla.setLinearAttenuation(linatt); cla.setQuadraticAttenuation(quadatt); -- cgit v1.2.3 From c4491f558b77530ef45ef7a1b80ba7567e338bae Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 4 Jul 2011 18:14:41 +0000 Subject: Current situation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done. In blender movies this feature is known to be implemented, but until now it never got integrated into trunk. Proposal With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index. In the compositor the ID Mask node can be used to extract the information out of the Render pass. Impact User interface On the properties-space the next changes will be done Scene⇒Render layer⇒Passes⇒Material index will be added Material⇒Options⇒Pass index will be added DNA Material struct will get an new field called “index”. this will be a short-type. Material struct the field pad will be removed. A new Render-layer pass will be added (bit 1«18) RNA Material RNA is updated (based on “pass index” from object) Render layer RNA is updated (based on IndexOB) Blender internal renderer The Blender internal renderer will process the render pass as a copy of the Object index. Blender compositor The render layer input will get a new output socket called “IndexMA” Usage An example on how to use material index can be found at: https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend This is also example of a commit message longer than the commit itself :) --- source/blender/blenkernel/BKE_node.h | 7 ++++--- source/blender/blenkernel/intern/node.c | 4 +++- source/blender/editors/space_outliner/outliner.c | 6 +++++- source/blender/makesdna/DNA_material_types.h | 2 +- source/blender/makesdna/DNA_scene_types.h | 1 + source/blender/makesrna/intern/rna_material.c | 7 ++++++- source/blender/makesrna/intern/rna_render.c | 3 ++- source/blender/makesrna/intern/rna_scene.c | 8 +++++++- source/blender/nodes/intern/CMP_nodes/CMP_image.c | 11 ++++++++--- source/blender/render/intern/source/pipeline.c | 13 +++++++++++-- source/blender/render/intern/source/rendercore.c | 10 +++++++++- source/blender/render/intern/source/shadeinput.c | 2 +- source/blender/render/intern/source/zbuf.c | 13 ++++++++++--- 13 files changed, 68 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index a126f405d09..c86080aa21f 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -319,9 +319,10 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat); #define RRES_OUT_REFRACT 12 #define RRES_OUT_INDIRECT 13 #define RRES_OUT_INDEXOB 14 -#define RRES_OUT_MIST 15 -#define RRES_OUT_EMIT 16 -#define RRES_OUT_ENV 17 +#define RRES_OUT_INDEXMA 15 +#define RRES_OUT_MIST 16 +#define RRES_OUT_EMIT 17 +#define RRES_OUT_ENV 18 /* note: types are needed to restore callbacks, don't change values */ #define CMP_NODE_VIEWER 201 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 64e374fe4c0..4e76ab0727d 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3156,7 +3156,9 @@ static void force_hidden_passes(bNode *node, int passflag) if(!(passflag & SCE_PASS_INDIRECT)) sock->flag |= SOCK_UNAVAIL; sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXOB); if(!(passflag & SCE_PASS_INDEXOB)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); + sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXMA); + if(!(passflag & SCE_PASS_INDEXMA)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); if(!(passflag & SCE_PASS_MIST)) sock->flag |= SOCK_UNAVAIL; sock= BLI_findlink(&node->outputs, RRES_OUT_EMIT); if(!(passflag & SCE_PASS_EMIT)) sock->flag |= SOCK_UNAVAIL; diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 0ce6b5d2ce2..c3699e4b704 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -480,7 +480,11 @@ static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, Sc te->name= "Index Object"; te->directdata= &srl->passflag; - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); + te->name= "Index Material"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); te->name= "Color"; te->directdata= &srl->passflag; diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h index 1489593f7f6..060b1bf42d1 100644 --- a/source/blender/makesdna/DNA_material_types.h +++ b/source/blender/makesdna/DNA_material_types.h @@ -161,7 +161,7 @@ typedef struct Material { int mapto_textured; /* render-time cache to optimise texture lookups */ short shadowonly_flag; /* "shadowsonly" type */ - short pad; + short index; /* custom index for render passes */ ListBase gpumaterial; /* runtime */ } Material; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 100a66d209f..f351a48b998 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -201,6 +201,7 @@ typedef struct SceneRenderLayer { #define SCE_PASS_RAYHITS (1<<15) #define SCE_PASS_EMIT (1<<16) #define SCE_PASS_ENVIRONMENT (1<<17) +#define SCE_PASS_INDEXMA (1<<18) /* note, srl->passflag is treestore element 'nr' in outliner, short still... */ diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index b86a91967a6..d90798e9b29 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -1675,7 +1675,12 @@ void RNA_def_material(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Light Group", "Limit lighting to lamps in this Group"); RNA_def_property_update(prop, 0, "rna_Material_update"); - + + prop= RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "index"); + RNA_def_property_ui_text(prop, "Pass Index", "Index # for the IndexMA render pass"); + RNA_def_property_update(prop, NC_OBJECT, NULL); + /* flags */ prop= RNA_def_property(srna, "use_light_group_exclusive", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 3a6cebef178..3074508d6a7 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -388,7 +388,8 @@ static void rna_def_render_pass(BlenderRNA *brna) {SCE_PASS_MIST, "MIST", 0, "Mist", ""}, {SCE_PASS_EMIT, "EMIT", 0, "Emit", ""}, {SCE_PASS_ENVIRONMENT, "ENVIRONMENT", 0, "Environment", ""}, - {0, NULL, 0, NULL, NULL}}; + {SCE_PASS_INDEXMA, "MATERIAL_INDEX", 0, "Material Index", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "RenderPass", NULL); RNA_def_struct_ui_text(srna, "Render Pass", ""); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 0c136fc429b..a496e24143b 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1515,7 +1515,13 @@ void rna_def_render_layer_common(StructRNA *srna, int scene) if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); else RNA_def_property_clear_flag(prop, PROP_EDITABLE); - prop= RNA_def_property(srna, "use_pass_color", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "use_pass_material_index", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_INDEXMA); + RNA_def_property_ui_text(prop, "Material Index", "Deliver material index pass"); + if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); + else RNA_def_property_clear_flag(prop, PROP_EDITABLE); + + prop= RNA_def_property(srna, "use_pass_color", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_RGBA); RNA_def_property_ui_text(prop, "Color", "Deliver shade-less color pass"); if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c index 3caaad26bae..91800897cb3 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c @@ -53,7 +53,8 @@ static bNodeSocketType cmp_node_rlayers_out[]= { { SOCK_RGBA, 0, "Refract", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Indirect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "IndexOB", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "IndexMA", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Emit", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Environment",0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } @@ -211,7 +212,9 @@ static void outputs_multilayer_get(RenderData *rd, RenderLayer *rl, bNodeStack * out[RRES_OUT_INDIRECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDIRECT); if(out[RRES_OUT_INDEXOB]->hasoutput) out[RRES_OUT_INDEXOB]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXOB); - if(out[RRES_OUT_MIST]->hasoutput) + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXMA); + if(out[RRES_OUT_MIST]->hasoutput) out[RRES_OUT_MIST]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_MIST); if(out[RRES_OUT_EMIT]->hasoutput) out[RRES_OUT_EMIT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_EMIT); @@ -326,7 +329,7 @@ static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, in CompBuf *buf; int buftype= CB_VEC3; - if(ELEM3(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST)) + if(ELEM4(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_INDEXMA)) buftype= CB_VAL; else if(passcode==SCE_PASS_VECTOR) buftype= CB_VEC4; @@ -373,6 +376,8 @@ static void node_composit_rlayers_out(RenderData *rd, RenderLayer *rl, bNodeStac out[RRES_OUT_INDIRECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDIRECT); if(out[RRES_OUT_INDEXOB]->hasoutput) out[RRES_OUT_INDEXOB]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXOB); + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXMA); if(out[RRES_OUT_MIST]->hasoutput) out[RRES_OUT_MIST]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_MIST); if(out[RRES_OUT_EMIT]->hasoutput) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 1d4014aac3e..37226018a91 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -383,7 +383,11 @@ static const char *get_pass_name(int passtype, int channel) if(channel==-1) return "IndexOB"; return "IndexOB.X"; } - if(passtype == SCE_PASS_MIST) { + if(passtype == SCE_PASS_INDEXMA) { + if(channel==-1) return "IndexMA"; + return "IndexMA.X"; + } + if(passtype == SCE_PASS_MIST) { if(channel==-1) return "Mist"; return "Mist.Z"; } @@ -448,6 +452,9 @@ static int passtype_from_name(char *str) if(strcmp(str, "IndexOB")==0) return SCE_PASS_INDEXOB; + if(strcmp(str, "IndexMA")==0) + return SCE_PASS_INDEXMA; + if(strcmp(str, "Mist")==0) return SCE_PASS_MIST; @@ -631,7 +638,9 @@ static RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int render_layer_add_pass(rr, rl, 3, SCE_PASS_REFRACT); if(srl->passflag & SCE_PASS_INDEXOB) render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXOB); - if(srl->passflag & SCE_PASS_MIST) + if(srl->passflag & SCE_PASS_INDEXMA) + render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXMA); + if(srl->passflag & SCE_PASS_MIST) render_layer_add_pass(rr, rl, 1, SCE_PASS_MIST); if(rl->passflag & SCE_PASS_RAYHITS) render_layer_add_pass(rr, rl, 4, SCE_PASS_RAYHITS); diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 6747784b21a..11ae721ad95 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -515,7 +515,15 @@ static void add_filt_passes(RenderLayer *rl, int curmask, int rectx, int offset, *fp= (float)shi->obr->ob->index; } break; - case SCE_PASS_MIST: + case SCE_PASS_INDEXMA: + /* no filter */ + if(shi->vlr) { + fp= rpass->rect + offset; + if(*fp==0.0f) + *fp= (float)shi->mat->index; + } + break; + case SCE_PASS_MIST: /* */ col= &shr->mist; pixsize= 1; diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index 2702b7e5145..277cec1835a 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -1455,7 +1455,7 @@ int shade_samples(ShadeSample *ssamp, PixStr *ps, int x, int y) shade_samples_do_AO(ssamp); /* if shade (all shadepinputs have same passflag) */ - if(ssamp->shi[0].passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB)) { + if(ssamp->shi[0].passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { for(samp=0; samptot; samp++, shi++, shr++) { shade_input_set_shade_texco(shi); diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 98dbb796f5b..3ac6d2c33ff 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -3497,7 +3497,7 @@ static void add_transp_obindex(RenderLayer *rl, int offset, Object *ob) RenderPass *rpass; for(rpass= rl->passes.first; rpass; rpass= rpass->next) { - if(rpass->passtype == SCE_PASS_INDEXOB) { + if(rpass->passtype == SCE_PASS_INDEXOB||rpass->passtype == SCE_PASS_INDEXMA) { float *fp= rpass->rect + offset; *fp= (float)ob->index; break; @@ -3820,7 +3820,7 @@ static int shade_tra_samples(ShadeSample *ssamp, StrandShadeCache *cache, int x, shade_samples_do_AO(ssamp); /* if shade (all shadepinputs have same passflag) */ - if(shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB)) { + if(shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { for(samp=0; samptot; samp++, shi++, shr++) { shade_input_set_shade_texco(shi); shade_input_do_shade(shi, shr); @@ -4115,7 +4115,14 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas add_transp_obindex(rlpp[a], od, obr->ob); } } - + if(addpassflag & SCE_PASS_INDEXMA) { + ObjectRen *obr= R.objectinstance[zrow[totface-1].obi].obr; + if(obr->ob) { + for(a= 0; aob); + } + } + /* for each mask-sample we alpha-under colors. then in end it's added using filter */ memset(samp_shr, 0, sizeof(ShadeResult)*osa); for(a=0; a Date: Mon, 4 Jul 2011 18:48:36 +0000 Subject: ====== Proposal: Nodes property windows enhancement ====== ===== Situation before this patch ===== in the current situation inside the node editor there is a properties panel (press 'n'-key). This pabel displays some information about the node, backdrop and grease pencil. The UI of the property panel is typically vertical oriented. Nodes in the other hand are not oriented in a direction. Both area's are draw via the same draw function. With some nodes this will create not user-friendly UI. Try the color-balance for instance). The 3 color circles are drawn next to each other, it would be better to draw them below each other. When creating more complex nodes you don't want to display all handles in the node-panel and in the properties panel. For instance fine-tuning handles you only want to appear in the property panel to reduce place in the node itself. ===== Situation after this patch ===== This patch separates the draw functions of the property panel and the node panel. When no special draw function is created for the property panel, the draw function of the node will be used as 'fallback' ===== Impact ===== ==== BKE_node.h ==== add a new uifunc (called uifuncbut) to the bNodeType struct. The definition is the same as the uifunc. ==== node_buttons.c ==== if the uifuncbut is set, call it. currently calls the uifunc method ==== drawnode.c ==== static void node_composit_set_butfunc(bNodeType *ntype). set the uifuncbut function where needed. When at the end of the method uifuncbut is still empty, set uifuncbut to the uifunc. ===== Final note ===== ! PS. this is not limited to the compositor it also works for Materials and Textures ! ! PPS. For other branching creating their own node-tree. Please make sure that your uifuncbut is set NULL or a valid draw function ! --- source/blender/blenkernel/BKE_node.h | 5 +-- source/blender/editors/space_node/drawnode.c | 41 ++++++++++++++++++++++-- source/blender/editors/space_node/node_buttons.c | 4 +-- 3 files changed, 44 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index c86080aa21f..f0ed7a6f5c8 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -87,8 +87,9 @@ typedef struct bNodeType { void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **); /* this line is set on startup of blender */ - void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); - const char *(*labelfunc)(struct bNode *); + void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + const char *(*labelfunc)(struct bNode *); void (*initfunc)(struct bNode *); void (*freestoragefunc)(struct bNode *); diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 17cfc7d8f95..be46642b47d 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -423,6 +423,7 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA * /* only once called */ static void node_shader_set_butfunc(bNodeType *ntype) { + ntype->uifuncbut = NULL; switch(ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ @@ -472,6 +473,7 @@ static void node_shader_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } /* ****************** BUTTON CALLBACKS FOR COMPOSITE NODES ***************** */ @@ -1036,6 +1038,35 @@ static void node_composit_buts_colorbalance(uiLayout *layout, bContext *UNUSED(C } } +static void node_composit_buts_colorbalance_but(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "correction_method", 0, NULL, ICON_NONE); + + if (RNA_enum_get(ptr, "correction_method")== 0) { + + uiTemplateColorWheel(layout, ptr, "lift", 1, 1, 0, 1); + uiItemR(layout, ptr, "lift", 0, NULL, ICON_NONE); + + uiTemplateColorWheel(layout, ptr, "gamma", 1, 1, 1, 1); + uiItemR(layout, ptr, "gamma", 0, NULL, ICON_NONE); + + uiTemplateColorWheel(layout, ptr, "gain", 1, 1, 1, 1); + uiItemR(layout, ptr, "gain", 0, NULL, ICON_NONE); + + } else { + + uiTemplateColorWheel(layout, ptr, "offset", 1, 1, 0, 1); + uiItemR(layout, ptr, "offset", 0, NULL, ICON_NONE); + + uiTemplateColorWheel(layout, ptr, "power", 1, 1, 0, 1); + uiItemR(layout, ptr, "power", 0, NULL, ICON_NONE); + + uiTemplateColorWheel(layout, ptr, "slope", 1, 1, 0, 1); + uiItemR(layout, ptr, "slope", 0, NULL, ICON_NONE); + } + +} + static void node_composit_buts_huecorrect(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { @@ -1050,6 +1081,7 @@ static void node_composit_buts_ycc(uiLayout *layout, bContext *UNUSED(C), Pointe /* only once called */ static void node_composit_set_butfunc(bNodeType *ntype) { + ntype->uifuncbut = NULL; switch(ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ @@ -1183,8 +1215,9 @@ static void node_composit_set_butfunc(bNodeType *ntype) ntype->uifunc=node_composit_buts_view_levels; break; case CMP_NODE_COLORBALANCE: - ntype->uifunc=node_composit_buts_colorbalance; - break; + ntype->uifunc=node_composit_buts_colorbalance; + ntype->uifuncbut=node_composit_buts_colorbalance_but; + break; case CMP_NODE_HUECORRECT: ntype->uifunc=node_composit_buts_huecorrect; break; @@ -1198,6 +1231,8 @@ static void node_composit_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; + } /* ****************** BUTTON CALLBACKS FOR TEXTURE NODES ***************** */ @@ -1308,6 +1343,7 @@ static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), Poin /* only once called */ static void node_texture_set_butfunc(bNodeType *ntype) { + ntype->uifuncbut = NULL; if( ntype->type >= TEX_NODE_PROC && ntype->type < TEX_NODE_PROC_MAX ) { ntype->uifunc = node_texture_buts_proc; } @@ -1352,6 +1388,7 @@ static void node_texture_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } /* ******* init draw callbacks for all tree types, only called in usiblender.c, once ************* */ diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c index 684961f2606..5d2ed700266 100644 --- a/source/blender/editors/space_node/node_buttons.c +++ b/source/blender/editors/space_node/node_buttons.c @@ -118,8 +118,8 @@ static void active_node_panel(const bContext *C, Panel *pa) uiItemS(layout); /* draw this node's settings */ - if (node->typeinfo && node->typeinfo->uifunc) - node->typeinfo->uifunc(layout, (bContext *)C, &ptr); + if (node->typeinfo && node->typeinfo->uifuncbut) + node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr); } /* ******************* node buttons registration ************** */ -- cgit v1.2.3 From 830fe8af8449a441cf64a0095ef3f7ff3d8dc534 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 4 Jul 2011 19:22:37 +0000 Subject: Updated the indent, sorry! --- source/blender/blenkernel/BKE_node.h | 6 +-- source/blender/blenkernel/intern/node.c | 6 +-- source/blender/editors/space_node/drawnode.c | 49 +++++++++++------------ source/blender/editors/space_node/node_buttons.c | 4 +- source/blender/editors/space_outliner/outliner.c | 8 ++-- source/blender/makesrna/intern/rna_material.c | 8 ++-- source/blender/makesrna/intern/rna_render.c | 4 +- source/blender/makesrna/intern/rna_scene.c | 12 +++--- source/blender/nodes/intern/CMP_nodes/CMP_image.c | 16 ++++---- source/blender/render/intern/source/pipeline.c | 14 +++---- source/blender/render/intern/source/rendercore.c | 18 ++++----- source/blender/render/intern/source/shadeinput.c | 2 +- source/blender/render/intern/source/zbuf.c | 4 +- 13 files changed, 74 insertions(+), 77 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index f0ed7a6f5c8..e44b5d96852 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -87,9 +87,9 @@ typedef struct bNodeType { void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **); /* this line is set on startup of blender */ - void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); - void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); - const char *(*labelfunc)(struct bNode *); + void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + const char *(*labelfunc)(struct bNode *); void (*initfunc)(struct bNode *); void (*freestoragefunc)(struct bNode *); diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 4e76ab0727d..518ee3c341a 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3156,9 +3156,9 @@ static void force_hidden_passes(bNode *node, int passflag) if(!(passflag & SCE_PASS_INDIRECT)) sock->flag |= SOCK_UNAVAIL; sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXOB); if(!(passflag & SCE_PASS_INDEXOB)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXMA); - if(!(passflag & SCE_PASS_INDEXMA)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); + sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXMA); + if(!(passflag & SCE_PASS_INDEXMA)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); if(!(passflag & SCE_PASS_MIST)) sock->flag |= SOCK_UNAVAIL; sock= BLI_findlink(&node->outputs, RRES_OUT_EMIT); if(!(passflag & SCE_PASS_EMIT)) sock->flag |= SOCK_UNAVAIL; diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index be46642b47d..1bf2c3d89bd 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -423,7 +423,7 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA * /* only once called */ static void node_shader_set_butfunc(bNodeType *ntype) { - ntype->uifuncbut = NULL; + ntype->uifuncbut = NULL; switch(ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ @@ -473,7 +473,7 @@ static void node_shader_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } - if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } /* ****************** BUTTON CALLBACKS FOR COMPOSITE NODES ***************** */ @@ -1040,31 +1040,28 @@ static void node_composit_buts_colorbalance(uiLayout *layout, bContext *UNUSED(C } static void node_composit_buts_colorbalance_but(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiItemR(layout, ptr, "correction_method", 0, NULL, ICON_NONE); - - if (RNA_enum_get(ptr, "correction_method")== 0) { - - uiTemplateColorWheel(layout, ptr, "lift", 1, 1, 0, 1); - uiItemR(layout, ptr, "lift", 0, NULL, ICON_NONE); - - uiTemplateColorWheel(layout, ptr, "gamma", 1, 1, 1, 1); - uiItemR(layout, ptr, "gamma", 0, NULL, ICON_NONE); + uiItemR(layout, ptr, "correction_method", 0, NULL, ICON_NONE); - uiTemplateColorWheel(layout, ptr, "gain", 1, 1, 1, 1); - uiItemR(layout, ptr, "gain", 0, NULL, ICON_NONE); + if (RNA_enum_get(ptr, "correction_method")== 0) { - } else { + uiTemplateColorWheel(layout, ptr, "lift", 1, 1, 0, 1); + uiItemR(layout, ptr, "lift", 0, NULL, ICON_NONE); - uiTemplateColorWheel(layout, ptr, "offset", 1, 1, 0, 1); - uiItemR(layout, ptr, "offset", 0, NULL, ICON_NONE); + uiTemplateColorWheel(layout, ptr, "gamma", 1, 1, 1, 1); + uiItemR(layout, ptr, "gamma", 0, NULL, ICON_NONE); - uiTemplateColorWheel(layout, ptr, "power", 1, 1, 0, 1); - uiItemR(layout, ptr, "power", 0, NULL, ICON_NONE); + uiTemplateColorWheel(layout, ptr, "gain", 1, 1, 1, 1); + uiItemR(layout, ptr, "gain", 0, NULL, ICON_NONE); + } else { + uiTemplateColorWheel(layout, ptr, "offset", 1, 1, 0, 1); + uiItemR(layout, ptr, "offset", 0, NULL, ICON_NONE); - uiTemplateColorWheel(layout, ptr, "slope", 1, 1, 0, 1); - uiItemR(layout, ptr, "slope", 0, NULL, ICON_NONE); - } + uiTemplateColorWheel(layout, ptr, "power", 1, 1, 0, 1); + uiItemR(layout, ptr, "power", 0, NULL, ICON_NONE); + uiTemplateColorWheel(layout, ptr, "slope", 1, 1, 0, 1); + uiItemR(layout, ptr, "slope", 0, NULL, ICON_NONE); + } } @@ -1081,7 +1078,7 @@ static void node_composit_buts_ycc(uiLayout *layout, bContext *UNUSED(C), Pointe /* only once called */ static void node_composit_set_butfunc(bNodeType *ntype) { - ntype->uifuncbut = NULL; + ntype->uifuncbut = NULL; switch(ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ @@ -1215,9 +1212,9 @@ static void node_composit_set_butfunc(bNodeType *ntype) ntype->uifunc=node_composit_buts_view_levels; break; case CMP_NODE_COLORBALANCE: - ntype->uifunc=node_composit_buts_colorbalance; - ntype->uifuncbut=node_composit_buts_colorbalance_but; - break; + ntype->uifunc=node_composit_buts_colorbalance; + ntype->uifuncbut=node_composit_buts_colorbalance_but; + break; case CMP_NODE_HUECORRECT: ntype->uifunc=node_composit_buts_huecorrect; break; @@ -1231,7 +1228,7 @@ static void node_composit_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } - if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c index 5d2ed700266..4b989a78fab 100644 --- a/source/blender/editors/space_node/node_buttons.c +++ b/source/blender/editors/space_node/node_buttons.c @@ -118,8 +118,8 @@ static void active_node_panel(const bContext *C, Panel *pa) uiItemS(layout); /* draw this node's settings */ - if (node->typeinfo && node->typeinfo->uifuncbut) - node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr); + if (node->typeinfo && node->typeinfo->uifuncbut) + node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr); } /* ******************* node buttons registration ************** */ diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index c3699e4b704..a1a6995d1bd 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -480,11 +480,11 @@ static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, Sc te->name= "Index Object"; te->directdata= &srl->passflag; - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); - te->name= "Index Material"; - te->directdata= &srl->passflag; + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); + te->name= "Index Material"; + te->directdata= &srl->passflag; - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); te->name= "Color"; te->directdata= &srl->passflag; diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index d90798e9b29..f407aba82fb 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -1676,10 +1676,10 @@ void RNA_def_material(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Light Group", "Limit lighting to lamps in this Group"); RNA_def_property_update(prop, 0, "rna_Material_update"); - prop= RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); - RNA_def_property_int_sdna(prop, NULL, "index"); - RNA_def_property_ui_text(prop, "Pass Index", "Index # for the IndexMA render pass"); - RNA_def_property_update(prop, NC_OBJECT, NULL); + prop= RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "index"); + RNA_def_property_ui_text(prop, "Pass Index", "Index # for the IndexMA render pass"); + RNA_def_property_update(prop, NC_OBJECT, NULL); /* flags */ diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 3074508d6a7..e3e3296cb70 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -388,8 +388,8 @@ static void rna_def_render_pass(BlenderRNA *brna) {SCE_PASS_MIST, "MIST", 0, "Mist", ""}, {SCE_PASS_EMIT, "EMIT", 0, "Emit", ""}, {SCE_PASS_ENVIRONMENT, "ENVIRONMENT", 0, "Environment", ""}, - {SCE_PASS_INDEXMA, "MATERIAL_INDEX", 0, "Material Index", ""}, - {0, NULL, 0, NULL, NULL}}; + {SCE_PASS_INDEXMA, "MATERIAL_INDEX", 0, "Material Index", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "RenderPass", NULL); RNA_def_struct_ui_text(srna, "Render Pass", ""); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index a496e24143b..662ce04552e 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1515,13 +1515,13 @@ void rna_def_render_layer_common(StructRNA *srna, int scene) if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); else RNA_def_property_clear_flag(prop, PROP_EDITABLE); - prop= RNA_def_property(srna, "use_pass_material_index", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_INDEXMA); - RNA_def_property_ui_text(prop, "Material Index", "Deliver material index pass"); - if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); - else RNA_def_property_clear_flag(prop, PROP_EDITABLE); + prop= RNA_def_property(srna, "use_pass_material_index", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_INDEXMA); + RNA_def_property_ui_text(prop, "Material Index", "Deliver material index pass"); + if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); + else RNA_def_property_clear_flag(prop, PROP_EDITABLE); - prop= RNA_def_property(srna, "use_pass_color", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "use_pass_color", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_RGBA); RNA_def_property_ui_text(prop, "Color", "Deliver shade-less color pass"); if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update"); diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c index 91800897cb3..a5f256054cd 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c @@ -53,8 +53,8 @@ static bNodeSocketType cmp_node_rlayers_out[]= { { SOCK_RGBA, 0, "Refract", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Indirect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "IndexOB", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "IndexMA", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "IndexMA", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Emit", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_RGBA, 0, "Environment",0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } @@ -212,9 +212,9 @@ static void outputs_multilayer_get(RenderData *rd, RenderLayer *rl, bNodeStack * out[RRES_OUT_INDIRECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDIRECT); if(out[RRES_OUT_INDEXOB]->hasoutput) out[RRES_OUT_INDEXOB]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXOB); - if(out[RRES_OUT_INDEXMA]->hasoutput) - out[RRES_OUT_INDEXMA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXMA); - if(out[RRES_OUT_MIST]->hasoutput) + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXMA); + if(out[RRES_OUT_MIST]->hasoutput) out[RRES_OUT_MIST]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_MIST); if(out[RRES_OUT_EMIT]->hasoutput) out[RRES_OUT_EMIT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_EMIT); @@ -329,7 +329,7 @@ static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, in CompBuf *buf; int buftype= CB_VEC3; - if(ELEM4(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_INDEXMA)) + if(ELEM4(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_INDEXMA)) buftype= CB_VAL; else if(passcode==SCE_PASS_VECTOR) buftype= CB_VEC4; @@ -376,8 +376,8 @@ static void node_composit_rlayers_out(RenderData *rd, RenderLayer *rl, bNodeStac out[RRES_OUT_INDIRECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDIRECT); if(out[RRES_OUT_INDEXOB]->hasoutput) out[RRES_OUT_INDEXOB]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXOB); - if(out[RRES_OUT_INDEXMA]->hasoutput) - out[RRES_OUT_INDEXMA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXMA); + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXMA); if(out[RRES_OUT_MIST]->hasoutput) out[RRES_OUT_MIST]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_MIST); if(out[RRES_OUT_EMIT]->hasoutput) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 37226018a91..b9006b390ab 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -383,11 +383,11 @@ static const char *get_pass_name(int passtype, int channel) if(channel==-1) return "IndexOB"; return "IndexOB.X"; } - if(passtype == SCE_PASS_INDEXMA) { - if(channel==-1) return "IndexMA"; - return "IndexMA.X"; - } - if(passtype == SCE_PASS_MIST) { + if(passtype == SCE_PASS_INDEXMA) { + if(channel==-1) return "IndexMA"; + return "IndexMA.X"; + } + if(passtype == SCE_PASS_MIST) { if(channel==-1) return "Mist"; return "Mist.Z"; } @@ -452,8 +452,8 @@ static int passtype_from_name(char *str) if(strcmp(str, "IndexOB")==0) return SCE_PASS_INDEXOB; - if(strcmp(str, "IndexMA")==0) - return SCE_PASS_INDEXMA; + if(strcmp(str, "IndexMA")==0) + return SCE_PASS_INDEXMA; if(strcmp(str, "Mist")==0) return SCE_PASS_MIST; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 11ae721ad95..2fa6bed5aae 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -515,15 +515,15 @@ static void add_filt_passes(RenderLayer *rl, int curmask, int rectx, int offset, *fp= (float)shi->obr->ob->index; } break; - case SCE_PASS_INDEXMA: - /* no filter */ - if(shi->vlr) { - fp= rpass->rect + offset; - if(*fp==0.0f) - *fp= (float)shi->mat->index; - } - break; - case SCE_PASS_MIST: + case SCE_PASS_INDEXMA: + /* no filter */ + if(shi->vlr) { + fp= rpass->rect + offset; + if(*fp==0.0f) + *fp= (float)shi->mat->index; + } + break; + case SCE_PASS_MIST: /* */ col= &shr->mist; pixsize= 1; diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index 277cec1835a..a1b79346824 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -1455,7 +1455,7 @@ int shade_samples(ShadeSample *ssamp, PixStr *ps, int x, int y) shade_samples_do_AO(ssamp); /* if shade (all shadepinputs have same passflag) */ - if(ssamp->shi[0].passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { + if(ssamp->shi[0].passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { for(samp=0; samptot; samp++, shi++, shr++) { shade_input_set_shade_texco(shi); diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 3ac6d2c33ff..13d9ead79e8 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -3497,7 +3497,7 @@ static void add_transp_obindex(RenderLayer *rl, int offset, Object *ob) RenderPass *rpass; for(rpass= rl->passes.first; rpass; rpass= rpass->next) { - if(rpass->passtype == SCE_PASS_INDEXOB||rpass->passtype == SCE_PASS_INDEXMA) { + if(rpass->passtype == SCE_PASS_INDEXOB||rpass->passtype == SCE_PASS_INDEXMA) { float *fp= rpass->rect + offset; *fp= (float)ob->index; break; @@ -3820,7 +3820,7 @@ static int shade_tra_samples(ShadeSample *ssamp, StrandShadeCache *cache, int x, shade_samples_do_AO(ssamp); /* if shade (all shadepinputs have same passflag) */ - if(shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { + if(shi->passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) { for(samp=0; samptot; samp++, shi++, shr++) { shade_input_set_shade_texco(shi); shade_input_do_shade(shi, shr); -- cgit v1.2.3 From af5d8528579357aabf7e3fbd1d64d2e40d905615 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 4 Jul 2011 19:30:58 +0000 Subject: Light(spot) spot_size (fall of angle in COLLADA) animation support completed. --- source/blender/collada/AnimationImporter.cpp | 102 +++++++++++++++++++-------- source/blender/collada/AnimationImporter.h | 6 +- 2 files changed, 78 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 38e475a7534..18d56ad8b2e 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -691,6 +691,17 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::AnimationList: binding->animationClass, "COLOR" ); } } + +void AnimationImporter:: Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves, char * anim_type) +{ + char rna_path[100]; + BLI_strncpy(rna_path, anim_type , sizeof(rna_path)); + + modify_fcurve(curves, rna_path, 0 ); + +} + void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::map& root_map, std::map& object_map, @@ -776,7 +787,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( (animType & LIGHT_COLOR) != 0 ) + if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) ) { Lamp * lamp = (Lamp*) ob->data; @@ -788,31 +799,58 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; - const COLLADAFW::Color *col = &(light->getColor()); - const COLLADAFW::UniqueId& listid = col->getAnimationList(); - - //check if color has animations - if (animlist_map.find(listid) == animlist_map.end()) continue ; - else + if ((animType & LIGHT_COLOR) != 0) { - //transformation has animations - const COLLADAFW::AnimationList *animlist = animlist_map[listid]; - const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding - std::vector animcurves; - for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_color_animations( &bindings[j], &animcurves); - - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - BLI_addtail(AnimCurves, fcu); - } + const COLLADAFW::Color *col = &(light->getColor()); + const COLLADAFW::UniqueId& listid = col->getAnimationList(); + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else + { + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_color_animations( &bindings[j], &animcurves); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } } } + if ((animType & LIGHT_FOA) != 0) + { + const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); + const COLLADAFW::UniqueId& listid = foa->getAnimationList(); + if (animlist_map.find(listid) == animlist_map.end()) continue ; + else + { + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_float_animations( &bindings[j], &animcurves , "spot_size"); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } + } + } } } } @@ -842,16 +880,22 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; + const COLLADAFW::Color *col = &(light->getColor()); - const COLLADAFW::UniqueId& listid = col->getAnimationList(); + const COLLADAFW::UniqueId& col_listid = col->getAnimationList(); //check if color has animations - if (animlist_map.find(listid) == animlist_map.end()) continue ; - else - { + if (animlist_map.find(col_listid) != animlist_map.end()) type = type|LIGHT_COLOR; - break; - } + + const COLLADAFW::AnimatableFloat *fallOffAngle = &(light->getFallOffAngle()); + const COLLADAFW::UniqueId& foa_listid = fallOffAngle ->getAnimationList(); + + if (animlist_map.find(foa_listid) != animlist_map.end()) + type = type|LIGHT_FOA; + + if ( type != 0) break; + } return type; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 92b6175ccdb..9f32edac447 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -88,7 +88,8 @@ private: { INANIMATE = 0, NODE_TRANSFORM = 1, - LIGHT_COLOR = 2, + LIGHT_COLOR = 2, + LIGHT_FOA = 4 }; public: @@ -121,6 +122,9 @@ public: void Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves); + void Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, + std::vector* curves, char * anim_type); + void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: // animlist_map - map animlist id -> animlist -- cgit v1.2.3 From fa6d80c13b421e92e2f81183dafa9ab756d9f1ad Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 4 Jul 2011 19:41:33 +0000 Subject: --- source/blender/collada/AnimationImporter.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 9f32edac447..623558c61fa 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -81,7 +81,7 @@ private: void fcurve_deg_to_rad(FCurve *cu); void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated); - + int typeFlag; enum AnimationType @@ -107,7 +107,7 @@ public: virtual void change_eul_to_quat(Object *ob, bAction *act); #endif - void translate_Animations_NEW ( COLLADAFW::Node * Node , + void translate_Animations_NEW ( COLLADAFW::Node * Node , std::map& root_map, std::map& object_map , std::map FW_object_map); @@ -122,7 +122,7 @@ public: void Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves); - void Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, + void Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, char * anim_type); void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); @@ -134,7 +134,7 @@ public: std::map& root_map, COLLADAFW::Transformation::TransformationType tm_type, Object *par_job = NULL); - + void find_frames( std::vector* frames , std::vector* curves ); void find_frames_old( std::vector* frames, COLLADAFW::Node * node, COLLADAFW::Transformation::TransformationType tm_type ); // internal, better make it private -- cgit v1.2.3 From 0dcc370f3bc43dfe3a4cb2d6d9ccc56a585adb10 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 5 Jul 2011 01:49:34 +0000 Subject: Fix for [#27347] Particle x-axis mirror editing not working as expected. * The x-mirror editing didn't mirror strand lengths. --- source/blender/editors/physics/particle_edit.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 9124bdaf41c..b8cdc18e739 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -827,6 +827,8 @@ static void PE_mirror_particle(Object *ob, DerivedMesh *dm, ParticleSystem *psys if(key->flag & PEK_TAG) mkey->flag |= PEK_TAG; + + mkey->length = key->length; } if(point->flag & PEP_TAG) -- cgit v1.2.3 From a0fa8c3cd2c01fd8d7f77565e12442d322f43a45 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 5 Jul 2011 01:54:01 +0000 Subject: Bugfix #27856: Transforming Grease Pencil frames in Action Editor didn't perform updates * This problem was caused by a typo when adapting old code * Fixed crash where keyframes-update was being called in Grease Pencil transforms too Todo: Outliner/Datablocks Viewer doesn't update that nicely when these keyframes get modified. Outside of gdb, I managed to get a few non- repeatable crashes here; while debugging though, there was only some lagging oddness if panning before the tree updated. --- source/blender/editors/transform/transform_conversions.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 3f6383bb855..ef0acfce72a 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2681,7 +2681,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) static void posttrans_gpd_clean (bGPdata *gpd) { bGPDlayer *gpl; - + for (gpl= gpd->layers.first; gpl; gpl= gpl->next) { ListBase sel_buffer = {NULL, NULL}; bGPDframe *gpf, *gpfn; @@ -4844,7 +4844,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) // XXX: BAD! this get gpencil datablocks directly from main db... // but that's how this currently works :/ for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { - if (ID_REAL_USERS(gpd) > 1) + if (ID_REAL_USERS(gpd)) posttrans_gpd_clean(gpd); } } @@ -4872,7 +4872,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } /* make sure all F-Curves are set correctly */ - ANIM_editkeyframes_refresh(&ac); + if (ac.datatype != ANIMCONT_GPENCIL) + ANIM_editkeyframes_refresh(&ac); /* clear flag that was set for time-slide drawing */ saction->flag &= ~SACTION_MOVING; -- cgit v1.2.3 From afd77d081aa9c9fb51e22961e962b13f90da6cd8 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 5 Jul 2011 01:55:03 +0000 Subject: Reduce duplicate code --- source/blender/editors/space_nla/nla_draw.c | 119 +++++++++------------------- 1 file changed, 39 insertions(+), 80 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 53d174169e5..b2a396ead98 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -640,47 +640,6 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie { NlaTrack *nlt= (NlaTrack *)ale->data; - indent= 0; - - if (ale->id) { - /* special exception for textures */ - if (GS(ale->id->name) == ID_TE) { - offset= 14; - indent= 1; - } - /* special exception for nodetrees */ - else if (GS(ale->id->name) == ID_NT) { - bNodeTree *ntree = (bNodeTree *)ale->id; - - switch (ntree->type) { - case NTREE_SHADER: - { - /* same as for textures */ - offset= 14; - indent= 1; - } - break; - - case NTREE_TEXTURE: - { - /* even more */ - offset= 21; - indent= 1; - } - break; - - default: - /* normal will do */ - offset= 14; - break; - } - } - else - offset= 14; - } - else - offset= 0; - /* FIXME: 'solo' as the 'special' button? * - need special icons for these */ @@ -717,45 +676,6 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie group = 5; - if (ale->id) { - /* special exception for textures */ - if (GS(ale->id->name) == ID_TE) { - offset= 14; - indent= 1; - } - /* special exception for nodetrees */ - else if (GS(ale->id->name) == ID_NT) { - bNodeTree *ntree = (bNodeTree *)ale->id; - - switch (ntree->type) { - case NTREE_SHADER: - { - /* same as for textures */ - offset= 14; - indent= 1; - } - break; - - case NTREE_TEXTURE: - { - /* even more */ - offset= 21; - indent= 1; - } - break; - - default: - /* normal will do */ - offset= 14; - break; - } - } - else - offset= 14; - } - else - offset= 0; - special = ICON_ACTION; if (act) @@ -776,6 +696,45 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie /* if special types, draw manually for now... */ if (doDraw) { + if (ale->id) { + /* special exception for textures */ + if (GS(ale->id->name) == ID_TE) { + offset= 14; + indent= 1; + } + /* special exception for nodetrees */ + else if (GS(ale->id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)ale->id; + + switch (ntree->type) { + case NTREE_SHADER: + { + /* same as for textures */ + offset= 14; + indent= 1; + } + break; + + case NTREE_TEXTURE: + { + /* even more */ + offset= 21; + indent= 1; + } + break; + + default: + /* normal will do */ + offset= 14; + break; + } + } + else + offset= 14; + } + else + offset= 0; + /* now, start drawing based on this information */ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); -- cgit v1.2.3 From 35965308a85a1a2280c4e27eff7405a7ba7f0369 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 5 Jul 2011 02:18:55 +0000 Subject: Fix for [#27579] Particles Cache Problem * Horrors from the ancient world of deprecated code: object animation offset can't really work correctly with particles unless point cache takes full control of particle system timing. * Disabled the non-working offset control from effecting particles so that for now particles will work consistently and the offset is only applied to the object. --- source/blender/blenkernel/intern/pointcache.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 64893bb0b5b..6b92c6e9540 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -2124,7 +2124,8 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra { Object *ob; PointCache *cache; - float offset, time, nexttime; + /* float offset; unused for now */ + float time, nexttime; /* TODO: this has to be sorter out once bsystem_time gets redone, */ /* now caches can handle interpolating etc. too - jahka */ @@ -2152,13 +2153,18 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra *startframe= cache->startframe; *endframe= cache->endframe; - // XXX ipoflag is depreceated - old animation system stuff - if (/*(ob->ipoflag & OB_OFFS_PARENT) &&*/ (ob->partype & PARSLOW)==0) { + /* TODO: time handling with object offsets and simulated vs. cached + * particles isn't particularly easy, so for now what you see is what + * you get. In the future point cache could handle the whole particle + * system timing. */ +#if 0 + if ((ob->partype & PARSLOW)==0) { offset= give_timeoffset(ob); *startframe += (int)(offset+0.5f); *endframe += (int)(offset+0.5f); } +#endif } /* verify cached_frames array is up to date */ -- cgit v1.2.3 From db2d737f0e646a49671f7645f22f24cf1cb28a7a Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 5 Jul 2011 02:56:14 +0000 Subject: Fix for [#27182] particle/collision kill interacting strangely * Particle die time wasn't taken correctly into account in certain situations when calculating dynamics. --- source/blender/blenkernel/intern/particle_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 4e3840832bb..b2e5c059edf 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3670,7 +3670,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); birthtime = pa->time; - dietime = birthtime + pa->lifetime; + dietime = pa->dietime; /* store this, so we can do multiple loops over particles */ pa->state.time = dfra; -- cgit v1.2.3 From 61fc8392006c54bce2469616487e5f8fd5062456 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Jul 2011 07:46:25 +0000 Subject: fix [#27862] OpenGL render animation don't respect .png RGB option. --- source/blender/editors/render/render_opengl.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index a55f9101a0f..3256112426b 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -438,8 +438,6 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock); if(ibuf) { - short ibuf_free= FALSE; - /* color -> greyscale */ /* editing directly would alter the render view */ if(scene->r.planes == 8) { @@ -447,8 +445,15 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) IMB_color_to_bw(ibuf_bw); // IMB_freeImBuf(ibuf); /* owned by the image */ ibuf= ibuf_bw; - - ibuf_free= TRUE; + } + else { + /* this is lightweight & doesnt re-alloc the buffers, only do this + * to save the correct bit depth since the image is always RGBA */ + ImBuf *ibuf_cpy= IMB_allocImBuf(ibuf->x, ibuf->y, scene->r.planes, 0); + ibuf_cpy->rect= ibuf->rect; + ibuf_cpy->rect_float= ibuf->rect_float; + ibuf_cpy->zbuf_float= ibuf->zbuf_float; + ibuf= ibuf_cpy; } if(BKE_imtype_is_movie(scene->r.imtype)) { @@ -472,9 +477,8 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) } } - if(ibuf_free) { - IMB_freeImBuf(ibuf); - } + /* imbuf knows which rects are not part of ibuf */ + IMB_freeImBuf(ibuf); } BKE_image_release_ibuf(oglrender->ima, lock); -- cgit v1.2.3 From 1ff54f91ff52c53d98cbecf9988ad051da10018d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 08:28:54 +0000 Subject: =?UTF-8?q?Fix:=20#27861=20bevel=20angle=20limit=20at=2090=C2=B0?= =?UTF-8?q?=20wasn't=20working=20well=20on=20cube,=20tweaked=20epsilon=20v?= =?UTF-8?q?alue=20to=20be=20a=20bit=20smaller.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/blender/blenkernel/intern/BME_tools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/BME_tools.c b/source/blender/blenkernel/intern/BME_tools.c index 7665b581d7e..99b6e7f9095 100644 --- a/source/blender/blenkernel/intern/BME_tools.c +++ b/source/blender/blenkernel/intern/BME_tools.c @@ -1002,7 +1002,7 @@ static BME_Mesh *BME_bevel_initialize(BME_Mesh *bm, int options, int UNUSED(defg } /* edge pass */ - threshold = (float)cos((angle + 0.00001) * M_PI / 180.0); + threshold = (float)cos((angle + 0.001) * M_PI / 180.0); for (e=bm->edges.first; e; e=e->next) { e->tflag1 = BME_BEVEL_ORIG; weight = 0.0; -- cgit v1.2.3 From 3d5ae95986268f693a0d3c98f875eb0c12b96be8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 08:57:11 +0000 Subject: Fix #27863: converting curve spline type from python crashes. --- source/blender/editors/curve/editcurve.c | 5 +++++ source/blender/editors/include/ED_curve.h | 1 + source/blender/makesrna/intern/rna_curve.c | 4 +--- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 99aebfffaee..06d88b16fa8 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -3535,6 +3535,11 @@ static int convertspline(short type, Nurb *nu) return 0; } +void ED_nurb_set_spline_type(Nurb *nu, int type) +{ + convertspline(type, nu); +} + static int set_spline_type_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h index 6a92ee2e056..d78d2846572 100644 --- a/source/blender/editors/include/ED_curve.h +++ b/source/blender/editors/include/ED_curve.h @@ -71,6 +71,7 @@ int mouse_nurb (struct bContext *C, const int mval[2], int extend); struct Nurb *add_nurbs_primitive(struct bContext *C, float mat[4][4], int type, int newob); int isNurbsel (struct Nurb *nu); +void ED_nurb_set_spline_type(struct Nurb *nu, int type); int join_curve_exec (struct bContext *C, struct wmOperator *op); diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 594295ba817..f2811e7320b 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -281,8 +281,7 @@ static int rna_Nurb_length(PointerRNA *ptr) static void rna_Nurb_type_set(PointerRNA *ptr, int value) { Nurb *nu= (Nurb*)ptr->data; - nu->type = value; - // XXX - TODO change datatypes + ED_nurb_set_spline_type(nu, value); } static void rna_BPoint_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) @@ -1448,7 +1447,6 @@ static void rna_def_curve_nurb(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Radius Interpolation", "The type of radius interpolation for Bezier curves"); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); - // XXX - switching type probably needs comprehensive recalc of data like in 2.4x prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, curve_type_items); RNA_def_property_enum_funcs(prop, NULL, "rna_Nurb_type_set", NULL); -- cgit v1.2.3 From 962c1606fc913c88c4d20c8318126ef9e2315b75 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 09:35:38 +0000 Subject: Fix #27810: bones drawn blue in 2.49 file, was still checking stride bone flag for drawing even though that feature is no longer in 2.5. --- source/blender/editors/space_view3d/drawarmature.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 02a7ea890f5..ad621257602 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -197,8 +197,7 @@ static short set_pchan_glColor (short colCode, int boneflag, int constflag) case PCHAN_COLOR_CONSTS: { if ( (bcolor == NULL) || (bcolor->flag & TH_WIRECOLOR_CONSTCOLS) ) { - if (constflag & PCHAN_HAS_STRIDE) glColor4ub(0, 0, 200, 80); - else if (constflag & PCHAN_HAS_TARGET) glColor4ub(255, 150, 0, 80); + if (constflag & PCHAN_HAS_TARGET) glColor4ub(255, 150, 0, 80); else if (constflag & PCHAN_HAS_IK) glColor4ub(255, 255, 0, 80); else if (constflag & PCHAN_HAS_SPLINEIK) glColor4ub(200, 255, 0, 80); else if (constflag & PCHAN_HAS_CONST) glColor4ub(0, 255, 120, 80); @@ -269,8 +268,7 @@ static short set_pchan_glColor (short colCode, int boneflag, int constflag) { /* inner part in background color or constraint */ if ( (constflag) && ((bcolor==NULL) || (bcolor->flag & TH_WIRECOLOR_CONSTCOLS)) ) { - if (constflag & PCHAN_HAS_STRIDE) glColor3ub(0, 0, 200); - else if (constflag & PCHAN_HAS_TARGET) glColor3ub(255, 150, 0); + if (constflag & PCHAN_HAS_TARGET) glColor3ub(255, 150, 0); else if (constflag & PCHAN_HAS_IK) glColor3ub(255, 255, 0); else if (constflag & PCHAN_HAS_SPLINEIK) glColor3ub(200, 255, 0); else if (constflag & PCHAN_HAS_CONST) glColor3ub(0, 255, 120); @@ -1865,9 +1863,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, constflag= pchan->constflag; if (pchan->flag & (POSE_ROT|POSE_LOC|POSE_SIZE)) constflag |= PCHAN_HAS_ACTION; - if (pchan->flag & POSE_STRIDE) - constflag |= PCHAN_HAS_STRIDE; - + /* set color-set to use */ set_pchan_colorset(ob, pchan); -- cgit v1.2.3 From 7950ac791bb5b772b26354313cd19deece0175fc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 09:47:09 +0000 Subject: Fix #27846: time extend / E key not work in sequence editor. --- source/blender/editors/transform/transform.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 181fb0f0aac..d3a30991aa6 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -5530,7 +5530,7 @@ static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, TransData2D *td2d, void initTimeTranslate(TransInfo *t) { /* this tool is only really available in the Action Editor... */ - if (t->spacetype != SPACE_ACTION) { + if (!ELEM(t->spacetype, SPACE_ACTION, SPACE_SEQ)) { t->state = TRANS_CANCEL; } -- cgit v1.2.3 From ef0f475f207b3db1c7cb760180c2702c01f213a3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 10:04:40 +0000 Subject: Fix #27826: bone envelope head/tail radius not dynamically updated in viewport. --- source/blender/makesrna/intern/rna_armature.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 2060f75f9de..0310ce917d4 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -509,6 +509,7 @@ static void rna_def_bone_common(StructRNA *srna, int editbone) prop= RNA_def_property(srna, "head_radius", PROP_FLOAT, PROP_UNSIGNED); if(editbone) RNA_def_property_update(prop, 0, "rna_Armature_editbone_transform_update"); + else RNA_def_property_update(prop, 0, "rna_Armature_update_data"); RNA_def_property_float_sdna(prop, NULL, "rad_head"); //RNA_def_property_range(prop, 0, 1000); // XXX range is 0 to lim, where lim= 10000.0f*MAX2(1.0, view3d->grid); RNA_def_property_ui_range(prop, 0.01, 100, 0.1, 3); @@ -516,6 +517,7 @@ static void rna_def_bone_common(StructRNA *srna, int editbone) prop= RNA_def_property(srna, "tail_radius", PROP_FLOAT, PROP_UNSIGNED); if(editbone) RNA_def_property_update(prop, 0, "rna_Armature_editbone_transform_update"); + else RNA_def_property_update(prop, 0, "rna_Armature_update_data"); RNA_def_property_float_sdna(prop, NULL, "rad_tail"); //RNA_def_property_range(prop, 0, 1000); // XXX range is 0 to lim, where lim= 10000.0f*MAX2(1.0, view3d->grid); RNA_def_property_ui_range(prop, 0.01, 100, 0.1, 3); -- cgit v1.2.3 From 495ce5c88b124637e3493c9759a7b6348362635a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 10:35:48 +0000 Subject: Fix part of #27858: crash trying to apply subsurf modifier as shape key, fix found by Bastian Schreiber. --- source/blender/editors/object/object_modifier.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index fca35683c6f..2ac9161ffa3 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -401,6 +401,8 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M { ModifierTypeInfo *mti= modifierType_getInfo(md->type); + md->scene= scene; + if (mti->isDisabled && mti->isDisabled(md, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; @@ -449,6 +451,8 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, { ModifierTypeInfo *mti= modifierType_getInfo(md->type); + md->scene= scene; + if (mti->isDisabled && mti->isDisabled(md, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; -- cgit v1.2.3 From 33afa06412e3fed21c1afa806e9a8a7f91c18c9e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 16:31:21 +0000 Subject: Fix #27848: sequencer strip hard cut looses soft trim on second strip. --- source/blender/editors/space_sequencer/sequencer_edit.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index c8965c4d3db..4f45b84c08e 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -124,6 +124,7 @@ typedef struct TransSeq { int startstill, endstill; int startdisp, enddisp; int startofs, endofs; + int anim_startofs, anim_endofs; /* int final_left, final_right; */ /* UNUSED */ int len; } TransSeq; @@ -729,8 +730,10 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe) ts.endstill= seq->endstill; ts.startdisp= seq->startdisp; ts.enddisp= seq->enddisp; - ts.startofs= seq->anim_startofs; - ts.endofs= seq->anim_endofs; + ts.startofs= seq->startofs; + ts.endofs= seq->endofs; + ts.anim_startofs= seq->anim_startofs; + ts.anim_endofs= seq->anim_endofs; ts.len= seq->len; /* First Strip! */ @@ -780,7 +783,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe) if ((seqn->startstill) && (cutframe == seqn->start + 1)) { seqn->start = ts.start; seqn->startstill= ts.start- cutframe; - seqn->anim_endofs = ts.endofs; + seqn->anim_endofs = ts.anim_endofs; seqn->endstill = ts.endstill; } @@ -789,8 +792,9 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe) seqn->start = cutframe; seqn->startstill = 0; seqn->startofs = 0; + seqn->endofs = ts.endofs; seqn->anim_startofs += cutframe - ts.start; - seqn->anim_endofs = ts.endofs; + seqn->anim_endofs = ts.anim_endofs; seqn->endstill = ts.endstill; } @@ -825,6 +829,8 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence * seq, int cutframe) ts.enddisp= seq->enddisp; ts.startofs= seq->startofs; ts.endofs= seq->endofs; + ts.anim_startofs= seq->anim_startofs; + ts.anim_endofs= seq->anim_endofs; ts.len= seq->len; /* First Strip! */ -- cgit v1.2.3 From 9fca591c2b83cf26ee731450a591698ad74c6d29 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 5 Jul 2011 18:02:08 +0000 Subject: Spot Light spot_blend animation im/export. --- source/blender/collada/AnimationExporter.cpp | 3 +- source/blender/collada/AnimationImporter.cpp | 106 ++++++++++++++------------- source/blender/collada/AnimationImporter.h | 6 +- 3 files changed, 62 insertions(+), 53 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index fdd59c40ea5..6ebaef30a9c 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -89,7 +89,8 @@ void AnimationExporter::exportAnimations(Scene *sce) (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion")) || (!strcmp(transformName, "color")) || - (!strcmp(transformName, "spot_size"))) + (!strcmp(transformName, "spot_size"))|| + (!strcmp(transformName, "spot_blend"))) dae_animation(ob ,fcu, transformName ); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 18d56ad8b2e..e21a9370935 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -692,13 +692,30 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::AnimationList: } } -void AnimationImporter:: Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, - std::vector* curves, char * anim_type) +void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type) { char rna_path[100]; - BLI_strncpy(rna_path, anim_type , sizeof(rna_path)); - - modify_fcurve(curves, rna_path, 0 ); + if (animlist_map.find(listid) == animlist_map.end()) return ; + else + { + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + BLI_strncpy(rna_path, anim_type , sizeof(rna_path)); + modify_fcurve(&animcurves, rna_path, 0 ); + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } + } } @@ -787,7 +804,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) ) + if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) || ((animType & LIGHT_FOE) != 0) ) { Lamp * lamp = (Lamp*) ob->data; @@ -799,58 +816,43 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; + if ((animType & LIGHT_COLOR) != 0) { const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); - if (animlist_map.find(listid) == animlist_map.end()) continue ; - else - { - //transformation has animations - const COLLADAFW::AnimationList *animlist = animlist_map[listid]; - const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding - std::vector animcurves; - for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_color_animations( &bindings[j], &animcurves); - - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - BLI_addtail(AnimCurves, fcu); - } - } + //transformation has animations + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_color_animations( &bindings[j], &animcurves); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } } + } - if ((animType & LIGHT_FOA) != 0) + if ((animType & LIGHT_FOA) != 0 ) { const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& listid = foa->getAnimationList(); - if (animlist_map.find(listid) == animlist_map.end()) continue ; - else - { - //transformation has animations - const COLLADAFW::AnimationList *animlist = animlist_map[listid]; - const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding - std::vector animcurves; - for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_float_animations( &bindings[j], &animcurves , "spot_size"); - - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - BLI_addtail(AnimCurves, fcu); - } - } - } - } + Assign_float_animations( listid ,AnimCurves, "spot_size"); + } + if ( (animType & LIGHT_FOE) != 0 ) + { + const COLLADAFW::AnimatableFloat *foe = &(light->getFallOffExponent()); + const COLLADAFW::UniqueId& listid = foe->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "spot_blend"); + + } } } } @@ -894,6 +896,12 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , if (animlist_map.find(foa_listid) != animlist_map.end()) type = type|LIGHT_FOA; + const COLLADAFW::AnimatableFloat *fallOffExpo = &(light->getFallOffExponent()); + const COLLADAFW::UniqueId& foe_listid = fallOffExpo ->getAnimationList(); + + if (animlist_map.find(foe_listid) != animlist_map.end()) + type = type|LIGHT_FOE; + if ( type != 0) break; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 623558c61fa..5a9638d2bb2 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -89,7 +89,8 @@ private: INANIMATE = 0, NODE_TRANSFORM = 1, LIGHT_COLOR = 2, - LIGHT_FOA = 4 + LIGHT_FOA = 4, + LIGHT_FOE = 8 }; public: @@ -122,8 +123,7 @@ public: void Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves); - void Assign_float_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, - std::vector* curves, char * anim_type); + void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type); void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: -- cgit v1.2.3 From 81ad6fa4e6e00fbf5f3e4d2c964e99f88a49148c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 18:54:16 +0000 Subject: Fix small part of #27815: recognize m2ts as video file extension. --- source/blender/imbuf/intern/util.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index fe85f63e109..6db8dcc06cf 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -113,6 +113,7 @@ const char *imb_ext_movie[] = { ".m4v", ".m2v", ".m2t", + ".m2ts", ".mts", ".mv", ".avs", -- cgit v1.2.3 From 87c2842630da30e76abb9aed3f3d448b6a4c9c1a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 19:04:38 +0000 Subject: Patch #27842: build fix for solaris, missing finite(). Patch by A. Hettinger. --- source/blender/blenlib/BLI_math_base.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_base.h b/source/blender/blenlib/BLI_math_base.h index 6ff57b08724..b5bab6f15be 100644 --- a/source/blender/blenlib/BLI_math_base.h +++ b/source/blender/blenlib/BLI_math_base.h @@ -39,6 +39,10 @@ #include #include "BLI_math_inline.h" +#ifdef __sun__ +#include /* for finite() */ +#endif + #ifndef M_PI #define M_PI 3.14159265358979323846 #endif -- cgit v1.2.3 From 959cd0fe6957e41064e329db2ac168a9914d5f7c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jul 2011 19:45:26 +0000 Subject: Fix #27777: vertex color disabled when in a reused node material. --- source/blender/blenkernel/intern/material.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 334f018efc9..2f29074834b 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -867,6 +867,10 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb) if(ma->strand_surfnor > 0.0f) ma->mode_l |= MA_STR_SURFDIFF; + + /* parses the geom+tex nodes */ + if(ma->nodetree && ma->use_nodes) + ntreeShaderGetTexcoMode(ma->nodetree, r_mode, &ma->texco, &ma->mode_l); } static void init_render_nodetree(bNodeTree *ntree, Material *basemat, int r_mode, float *amb) @@ -887,8 +891,6 @@ static void init_render_nodetree(bNodeTree *ntree, Material *basemat, int r_mode init_render_nodetree((bNodeTree *)node->id, basemat, r_mode, amb); } } - /* parses the geom+tex nodes */ - ntreeShaderGetTexcoMode(ntree, r_mode, &basemat->texco, &basemat->mode_l); } void init_render_material(Material *mat, int r_mode, float *amb) -- cgit v1.2.3 From 82b17039edcd3563b80b5448baf16f97f9f2e9e5 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 6 Jul 2011 01:34:10 +0000 Subject: NLA Drawing - When "Show Control Curves" option in View menu is disabled, the strips are drawn so that they take up less vertical space. Originally, the primary reason why these were taller than those in the other animation editors was really so that these control curves could be visualised adequately. So, when these aren't shown, we can afford to collapse the strips vertically. This should make it possible to fit more strips on screen to retime them. in some staggered fashion. --- .../blender/editors/animation/anim_channels_edit.c | 5 ++-- source/blender/editors/include/ED_anim_api.h | 11 +++---- source/blender/editors/space_nla/nla_channels.c | 4 ++- source/blender/editors/space_nla/nla_draw.c | 34 ++++++++++++---------- source/blender/editors/space_nla/nla_select.c | 8 +++-- .../editors/transform/transform_conversions.c | 4 ++- .../blender/editors/transform/transform_generics.c | 4 +-- 7 files changed, 40 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index f66e3a23bbf..ff6bd3547ce 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1825,13 +1825,14 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele bAnimListElem *ale; int filter; + SpaceNla *snla = (SpaceNla *)ac->sl; View2D *v2d= &ac->ar->v2d; rctf rectf; float ymin, ymax; /* set initial y extents */ if (ac->datatype == ANIMCONT_NLA) { - ymin = (float)(-NLACHANNEL_HEIGHT); + ymin = (float)(-NLACHANNEL_HEIGHT(snla)); ymax = 0.0f; } else { @@ -1850,7 +1851,7 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele /* loop over data, doing border select */ for (ale= anim_data.first; ale; ale= ale->next) { if (ac->datatype == ANIMCONT_NLA) - ymin= ymax - NLACHANNEL_STEP; + ymin= ymax - NLACHANNEL_STEP(snla); else ymin= ymax - ACHANNEL_STEP; diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 8454f058238..7726b02d511 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -299,11 +299,12 @@ typedef enum eAnimFilter_Flags { /* -------------- NLA Channel Defines -------------- */ /* NLA channel heights */ -#define NLACHANNEL_FIRST -16 -#define NLACHANNEL_HEIGHT 24 -#define NLACHANNEL_HEIGHT_HALF 12 -#define NLACHANNEL_SKIP 2 -#define NLACHANNEL_STEP (NLACHANNEL_HEIGHT + NLACHANNEL_SKIP) +// XXX: NLACHANNEL_FIRST isn't used? +#define NLACHANNEL_FIRST -16 +#define NLACHANNEL_HEIGHT(snla) ((snla && (snla->flag & SNLA_NOSTRIPCURVES)) ? 16 : 24) +#define NLACHANNEL_HEIGHT_HALF(snla) ((snla && (snla->flag & SNLA_NOSTRIPCURVES)) ? 8 : 12) +#define NLACHANNEL_SKIP 2 +#define NLACHANNEL_STEP(snla) (NLACHANNEL_HEIGHT(snla) + NLACHANNEL_SKIP) /* channel widths */ #define NLACHANNEL_NAMEWIDTH 200 diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index c724a7e0ea7..5e81148c231 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -302,6 +302,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *event) { bAnimContext ac; + SpaceNla *snla; ARegion *ar; View2D *v2d; int channel_index; @@ -314,6 +315,7 @@ static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *e return OPERATOR_CANCELLED; /* get useful pointers from animation context data */ + snla= (SpaceNla *)ac.sl; ar= ac.ar; v2d= &ar->v2d; @@ -329,7 +331,7 @@ static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *e * NLACHANNEL_HEIGHT_HALF. */ UI_view2d_region_to_view(v2d, event->mval[0], event->mval[1], &x, &y); - UI_view2d_listview_view_to_cell(v2d, NLACHANNEL_NAMEWIDTH, NLACHANNEL_STEP, 0, (float)NLACHANNEL_HEIGHT_HALF, x, y, NULL, &channel_index); + UI_view2d_listview_view_to_cell(v2d, NLACHANNEL_NAMEWIDTH, NLACHANNEL_STEP(snla), 0, (float)NLACHANNEL_HEIGHT_HALF(snla), x, y, NULL, &channel_index); /* handle mouse-click in the relevant channel then */ notifierFlags= mouse_nla_channels(&ac, x, channel_index, selectmode); diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index b2a396ead98..43056e0c28c 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -514,18 +514,18 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) * - offset of NLACHANNEL_HEIGHT*2 is added to the height of the channels, as first is for * start of list offset, and the second is as a correction for the scrollers. */ - height= ((items*NLACHANNEL_STEP) + (NLACHANNEL_HEIGHT*2)); + height= ((items*NLACHANNEL_STEP(snla)) + (NLACHANNEL_HEIGHT(snla)*2)); /* don't use totrect set, as the width stays the same * (NOTE: this is ok here, the configuration is pretty straightforward) */ v2d->tot.ymin= (float)(-height); /* loop through channels, and set up drawing depending on their type */ - y= (float)(-NLACHANNEL_HEIGHT); + y= (float)(-NLACHANNEL_HEIGHT(snla)); for (ale= anim_data.first; ale; ale= ale->next) { - const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF); - const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF); + const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF(snla)); + const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF(snla)); /* check if visible */ if ( IN_RANGE(yminc, v2d->cur.ymin, v2d->cur.ymax) || @@ -602,7 +602,7 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) } /* adjust y-position for next one */ - y -= NLACHANNEL_STEP; + y -= NLACHANNEL_STEP(snla); } /* free tempolary channels */ @@ -616,13 +616,14 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) // TODO: depreceate this code... static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, View2D *v2d, float y) { + SpaceNla *snla = (SpaceNla *)ac->sl; bAnimListElem *ale; float x = 0.0f; /* loop through channels, and set up drawing depending on their type */ for (ale= anim_data->first; ale; ale= ale->next) { - const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF); - const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF); + const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF(snla)); + const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF(snla)); const float ydatac= (float)(y - 7); /* check if visible */ @@ -644,9 +645,9 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie * - need special icons for these */ if (nlt->flag & NLATRACK_SOLO) - special= ICON_LAYER_ACTIVE; + special= ICON_SPACE2; else - special= ICON_LAYER_USED; + special= ICON_SPACE3; /* if this track is active and we're tweaking it, don't draw these toggles */ // TODO: need a special macro for this... @@ -867,7 +868,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie } /* adjust y-position for next one */ - y -= NLACHANNEL_STEP; + y -= NLACHANNEL_STEP(snla); } } @@ -877,6 +878,7 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) bAnimListElem *ale; int filter; + SpaceNla *snla = (SpaceNla *)ac->sl; View2D *v2d= &ar->v2d; float y= 0.0f; size_t items; @@ -892,7 +894,7 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) * - offset of NLACHANNEL_HEIGHT*2 is added to the height of the channels, as first is for * start of list offset, and the second is as a correction for the scrollers. */ - height= ((items*NLACHANNEL_STEP) + (NLACHANNEL_HEIGHT*2)); + height= ((items*NLACHANNEL_STEP(snla)) + (NLACHANNEL_HEIGHT(snla)*2)); /* don't use totrect set, as the width stays the same * (NOTE: this is ok here, the configuration is pretty straightforward) */ @@ -902,14 +904,14 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) /* draw channels */ { /* first pass: backdrops + oldstyle drawing */ - y= (float)(-NLACHANNEL_HEIGHT); + y= (float)(-NLACHANNEL_HEIGHT(snla)); draw_nla_channel_list_gl(ac, &anim_data, v2d, y); } { /* second pass: UI widgets */ uiBlock *block= uiBeginBlock(C, ar, "NLA channel buttons", UI_EMBOSS); - y= (float)(-NLACHANNEL_HEIGHT); + y= (float)(-NLACHANNEL_HEIGHT(snla)); /* set blending again, as may not be set in previous step */ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -917,8 +919,8 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) /* loop through channels, and set up drawing depending on their type */ for (ale= anim_data.first; ale; ale= ale->next) { - const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF); - const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF); + const float yminc= (float)(y - NLACHANNEL_HEIGHT_HALF(snla)); + const float ymaxc= (float)(y + NLACHANNEL_HEIGHT_HALF(snla)); /* check if visible */ if ( IN_RANGE(yminc, v2d->cur.ymin, v2d->cur.ymax) || @@ -929,7 +931,7 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) } /* adjust y-position for next one */ - y -= NLACHANNEL_STEP; + y -= NLACHANNEL_STEP(snla); } uiEndBlock(C, block); diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c index 5efa3f34c98..5dc937d3ce1 100644 --- a/source/blender/editors/space_nla/nla_select.c +++ b/source/blender/editors/space_nla/nla_select.c @@ -225,9 +225,10 @@ static void borderselect_nla_strips (bAnimContext *ac, rcti rect, short mode, sh bAnimListElem *ale; int filter; + SpaceNla *snla = (SpaceNla *)ac->sl; View2D *v2d= &ac->ar->v2d; rctf rectf; - float ymin=(float)(-NLACHANNEL_HEIGHT), ymax=0; + float ymin=(float)(-NLACHANNEL_HEIGHT(snla)), ymax=0; /* convert border-region to view coordinates */ UI_view2d_region_to_view(v2d, rect.xmin, rect.ymin+2, &rectf.xmin, &rectf.ymin); @@ -242,7 +243,7 @@ static void borderselect_nla_strips (bAnimContext *ac, rcti rect, short mode, sh /* loop over data, doing border select */ for (ale= anim_data.first; ale; ale= ale->next) { - ymin= ymax - NLACHANNEL_STEP; + ymin= ymax - NLACHANNEL_STEP(snla); /* perform vertical suitability check (if applicable) */ if ( (mode == NLA_BORDERSEL_FRAMERANGE) || @@ -505,6 +506,7 @@ static void mouse_nla_strips (bContext *C, bAnimContext *ac, const int mval[2], bAnimListElem *ale = NULL; int filter; + SpaceNla *snla = (SpaceNla *)ac->sl; View2D *v2d= &ac->ar->v2d; Scene *scene= ac->scene; NlaStrip *strip = NULL; @@ -515,7 +517,7 @@ static void mouse_nla_strips (bContext *C, bAnimContext *ac, const int mval[2], /* use View2D to determine the index of the channel (i.e a row in the list) where keyframe was */ UI_view2d_region_to_view(v2d, mval[0], mval[1], &x, &y); - UI_view2d_listview_view_to_cell(v2d, 0, NLACHANNEL_STEP, 0, (float)NLACHANNEL_HEIGHT_HALF, x, y, NULL, &channel_index); + UI_view2d_listview_view_to_cell(v2d, 0, NLACHANNEL_STEP(snla), 0, (float)NLACHANNEL_HEIGHT_HALF(snla), x, y, NULL, &channel_index); /* x-range to check is +/- 7 (in screen/region-space) on either side of mouse click * (that is the size of keyframe icons, so user should be expecting similar tolerances) diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 23411b13a32..30010aad3d7 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2479,6 +2479,7 @@ static short FrameOnMouseSide(char side, float frame, float cframe) static void createTransNlaData(bContext *C, TransInfo *t) { Scene *scene= t->scene; + SpaceNla *snla = NULL; TransData *td = NULL; TransDataNla *tdn = NULL; @@ -2492,6 +2493,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) /* determine what type of data we are operating on */ if (ANIM_animdata_get_context(C, &ac) == 0) return; + snla = (SpaceNla *)ac.sl; /* filter data */ filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_FOREDIT); @@ -2577,7 +2579,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) tdn->strip= strip; tdn->trackIndex= BLI_findindex(&adt->nla_tracks, nlt); - yval= (float)(tdn->trackIndex * NLACHANNEL_STEP); + yval= (float)(tdn->trackIndex * NLACHANNEL_STEP(snla)); tdn->h1[0]= strip->start; tdn->h1[1]= yval; diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index b62651da3d1..9b56437e985 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -573,8 +573,8 @@ void recalcData(TransInfo *t) /* now, check if we need to try and move track * - we need to calculate both, as only one may have been altered by transform if only 1 handle moved */ - delta_y1= ((int)tdn->h1[1] / NLACHANNEL_STEP - tdn->trackIndex); - delta_y2= ((int)tdn->h2[1] / NLACHANNEL_STEP - tdn->trackIndex); + delta_y1= ((int)tdn->h1[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); + delta_y2= ((int)tdn->h2[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); if (delta_y1 || delta_y2) { NlaTrack *track; -- cgit v1.2.3 From febce577ba577f2a3fa888f8f2922ed1898a3ef2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 09:15:18 +0000 Subject: Fix #27873: nan pixels in render with degenerate faces. --- source/blender/render/intern/source/shadeinput.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index a1b79346824..eab66aaf2ec 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -771,7 +771,8 @@ void shade_input_set_uv(ShadeInput *shi) t00= v3[axis1]-v1[axis1]; t01= v3[axis2]-v1[axis2]; t10= v3[axis1]-v2[axis1]; t11= v3[axis2]-v2[axis2]; - detsh= 1.0f/(t00*t11-t10*t01); + detsh= (t00*t11-t10*t01); + detsh= (detsh != 0.0f)? 1.0f/detsh: 0.0f; t00*= detsh; t01*=detsh; t10*=detsh; t11*=detsh; @@ -1272,8 +1273,9 @@ void shade_input_set_shade_texco(ShadeInput *shi) s11= ho3[1]/ho3[3] - ho2[1]/ho2[3]; detsh= s00*s11-s10*s01; - s00/= detsh; s01/=detsh; - s10/=detsh; s11/=detsh; + detsh= (detsh != 0.0f)? 1.0f/detsh: 0.0f; + s00*= detsh; s01*=detsh; + s10*=detsh; s11*=detsh; /* recalc u and v again */ hox= x/Zmulx -1.0f; -- cgit v1.2.3 From 5470326c3bc190fd1d2d02c97131818a5438f392 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 09:58:29 +0000 Subject: Fix #27875: different texture nodes result after decompose/compose. --- source/blender/nodes/intern/TEX_nodes/TEX_texture.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c index d4d77b5fd5a..51c7c0ed341 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c @@ -51,7 +51,11 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor { static float red[] = {1,0,0,1}; static float white[] = {1,1,1,1}; - float *co = p->co; + float co[3], dxt[3], dyt[3]; + + copy_v3_v3(co, p->co); + copy_v3_v3(dxt, p->dxt); + copy_v3_v3(dyt, p->dyt); Tex *nodetex = (Tex *)node->id; @@ -70,9 +74,9 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor tex_input_rgba(col1, in[0], p, thread); tex_input_rgba(col2, in[1], p, thread); - + texres.nor = nor; - textype = multitex_nodes(nodetex, co, p->dxt, p->dyt, p->osatex, + textype = multitex_nodes(nodetex, co, dxt, dyt, p->osatex, &texres, thread, 0, p->shi, p->mtex); if(textype & TEX_RGB) { -- cgit v1.2.3 From 29f2cbdd8f9cd99b30b967af45304a64a317d05d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 10:05:27 +0000 Subject: Fix #27876: particles instancing a whole group didn't take group offset into account. --- source/blender/blenkernel/intern/anim.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 0747d87a0ab..8aa816f9cb5 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -719,12 +719,13 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, i /* note, if you check on layer here, render goes wrong... it still deforms verts and uses parent imat */ if(go->ob!=ob) { - /* Group Dupli Offset, should apply after everything else */ - if (group->dupli_ofs[0] || group->dupli_ofs[1] || group->dupli_ofs[2]) { + /* group dupli offset, should apply after everything else */ + if(!is_zero_v3(group->dupli_ofs)) { copy_m4_m4(tmat, go->ob->obmat); sub_v3_v3v3(tmat[3], tmat[3], group->dupli_ofs); mul_m4_m4m4(mat, tmat, ob->obmat); - } else { + } + else { mul_m4_m4m4(mat, go->ob->obmat, ob->obmat); } @@ -1395,7 +1396,17 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p if(part->ren_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) { for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) { - mul_m4_m4m4(tmat, oblist[b]->obmat, pamat); + + /* group dupli offset, should apply after everything else */ + if(!is_zero_v3(part->dup_group->dupli_ofs)) { + copy_m4_m4(tmat, oblist[b]->obmat); + sub_v3_v3v3(tmat[3], tmat[3], part->dup_group->dupli_ofs); + mul_m4_m4m4(tmat, tmat, pamat); + } + else { + mul_m4_m4m4(tmat, oblist[b]->obmat, pamat); + } + mul_mat3_m4_fl(tmat, size*scale); if(par_space_mat) mul_m4_m4m4(mat, tmat, par_space_mat); -- cgit v1.2.3 From 11645e7a3f482b24294f360985d60cd9b100f55f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 10:19:04 +0000 Subject: Fix #27877: writing .avi files > 4 GB not working on windows. Solution is to replace "long" by "int64_t" and "fseek" by "_fseeki64", because long on 64 bit windows is still 32 bit. --- source/blender/avi/AVI_avi.h | 11 ++++++----- source/blender/avi/CMakeLists.txt | 1 + source/blender/avi/SConscript | 2 +- source/blender/avi/intern/avi.c | 12 +++++++----- source/blender/avi/intern/options.c | 2 ++ source/blender/blenlib/BLI_winstuff.h | 9 +++++++++ source/blender/blenlib/intern/storage.c | 2 +- 7 files changed, 27 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/avi/AVI_avi.h b/source/blender/avi/AVI_avi.h index 85685e2bd4c..1446971a8ac 100644 --- a/source/blender/avi/AVI_avi.h +++ b/source/blender/avi/AVI_avi.h @@ -55,11 +55,12 @@ #ifndef __AVI_H__ #define __AVI_H__ +#include "MEM_sys_types.h" #include /* for FILE */ typedef struct _AviChunk { int fcc; - int size; + int64_t size; } AviChunk; typedef struct _AviList { @@ -185,16 +186,16 @@ typedef struct _AviMovie { #define AVI_MOVIE_READ 0 #define AVI_MOVIE_WRITE 1 - unsigned long size; + int64_t size; AviMainHeader *header; AviStreamRec *streams; AviIndexEntry *entries; int index_entries; - int movi_offset; - int read_offset; - long *offset_table; + int64_t movi_offset; + int64_t read_offset; + int64_t *offset_table; /* Local data goes here */ int interlace; diff --git a/source/blender/avi/CMakeLists.txt b/source/blender/avi/CMakeLists.txt index b62e0cc5afd..bae61fd678b 100644 --- a/source/blender/avi/CMakeLists.txt +++ b/source/blender/avi/CMakeLists.txt @@ -27,6 +27,7 @@ set(INC . ../../../intern/guardedalloc + ../blenlib ) set(INC_SYS diff --git a/source/blender/avi/SConscript b/source/blender/avi/SConscript index 0bf8c3c74db..4d2ce8fd845 100644 --- a/source/blender/avi/SConscript +++ b/source/blender/avi/SConscript @@ -3,7 +3,7 @@ Import ('env') sources = env.Glob('intern/*.c') -incs = '. #/intern/guardedalloc' +incs = '. #/intern/guardedalloc ../blenlib' incs += ' ' + env['BF_JPEG_INC'] env.BlenderLib ('bf_avi', sources, Split(incs), [], libtype=['core','player'], priority = [190,120] ) diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c index 82bf3a3d21b..ff3aafbf065 100644 --- a/source/blender/avi/intern/avi.c +++ b/source/blender/avi/intern/avi.c @@ -42,6 +42,9 @@ #include #include "MEM_guardedalloc.h" +#include "MEM_sys_types.h" + +#include "BLI_winstuff.h" #include "AVI_avi.h" #include "avi_intern.h" @@ -593,7 +596,6 @@ AviError AVI_open_movie (const char *name, AviMovie *movie) { movie->movi_offset = ftell (movie->fp); movie->read_offset = movie->movi_offset; - if (AVI_DEBUG) printf ("movi_offset is %d\n", movie->movi_offset); /* Read in the index if the file has one, otherwise create one */ if (movie->header->Flags & AVIF_HASINDEX) { @@ -707,8 +709,8 @@ AviError AVI_open_compress (char *name, AviMovie *movie, int streams, ...) { AviList list; AviChunk chunk; int i; - int header_pos1, header_pos2; - int stream_pos1, stream_pos2; + int64_t header_pos1, header_pos2; + int64_t stream_pos1, stream_pos2; movie->type = AVI_MOVIE_WRITE; movie->fp = fopen (name, "wb"); @@ -718,7 +720,7 @@ AviError AVI_open_compress (char *name, AviMovie *movie, int streams, ...) { if (movie->fp == NULL) return AVI_ERROR_OPEN; - movie->offset_table = (long *) MEM_mallocN ((1+streams*2) * sizeof (long),"offsettable"); + movie->offset_table = (int64_t *) MEM_mallocN ((1+streams*2) * sizeof (int64_t),"offsettable"); for (i=0; i < 1 + streams*2; i++) movie->offset_table[i] = -1L; @@ -897,7 +899,7 @@ AviError AVI_write_frame (AviMovie *movie, int frame_num, ...) { AviIndexEntry *temp; va_list ap; int stream; - long rec_off; + int64_t rec_off; AviFormat format; void *buffer; int size; diff --git a/source/blender/avi/intern/options.c b/source/blender/avi/intern/options.c index edb708d8a69..96c62843436 100644 --- a/source/blender/avi/intern/options.c +++ b/source/blender/avi/intern/options.c @@ -40,6 +40,8 @@ #include "avi_intern.h" #include "endian.h" +#include "BLI_winstuff.h" + /* avi_set_compress_options gets its own file... now don't WE feel important? */ AviError AVI_set_compress_option (AviMovie *movie, int option_type, int stream, AviOption option, void *opt_data) { diff --git a/source/blender/blenlib/BLI_winstuff.h b/source/blender/blenlib/BLI_winstuff.h index d0eb3c7d67d..e0c819c2dba 100644 --- a/source/blender/blenlib/BLI_winstuff.h +++ b/source/blender/blenlib/BLI_winstuff.h @@ -98,6 +98,15 @@ extern "C" { typedef unsigned int mode_t; #endif +/* use functions that take a 64 bit offset for files larger than 4GB */ +#ifndef FREE_WINDOWS +#include +#define fseek(stream, offset, origin) _fseeki64(stream, offset, origin) +#define ftell(stream) _ftelli64(stream) +#define lseek(fd, offset, origin) _lseeki64(fd, offset, origin) +#define tell(fd) _telli64(fd) +#endif + /* mingw using _SSIZE_T_ to declare ssize_t type */ #ifndef _SSIZE_T_ #define _SSIZE_T_ diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c index e9db148e992..41eedef8835 100644 --- a/source/blender/blenlib/intern/storage.c +++ b/source/blender/blenlib/intern/storage.c @@ -478,7 +478,7 @@ LinkNode *BLI_read_file_as_lines(const char *name) FILE *fp= fopen(name, "r"); LinkNode *lines= NULL; char *buf; - int size; + int64_t size; if (!fp) return NULL; -- cgit v1.2.3 From eaa63eadf2be52551ea72538b5b9a76fdf42c6d7 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 6 Jul 2011 10:45:25 +0000 Subject: Bugfix [#27825] Pose Mode Armatures different fill colors Old light-blue colouring for "keyed" bones is no longer applied, even if the flags were set in earlier versions of Blender. This was a legacy feature used to get around some ancient issues, which isn't needed anymore. Instead, it ends up causing confusion, so removing. --- source/blender/editors/space_view3d/drawarmature.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 99017c10f3c..1087284e2e5 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -201,7 +201,6 @@ static short set_pchan_glColor (short colCode, int boneflag, int constflag) else if (constflag & PCHAN_HAS_IK) glColor4ub(255, 255, 0, 80); else if (constflag & PCHAN_HAS_SPLINEIK) glColor4ub(200, 255, 0, 80); else if (constflag & PCHAN_HAS_CONST) glColor4ub(0, 255, 120, 80); - else if (constflag) UI_ThemeColor4(TH_BONE_POSE); // PCHAN_HAS_ACTION return 1; } @@ -1944,8 +1943,6 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, /* extra draw service for pose mode */ constflag= pchan->constflag; - if (pchan->flag & (POSE_ROT|POSE_LOC|POSE_SIZE)) - constflag |= PCHAN_HAS_ACTION; /* set color-set to use */ set_pchan_colorset(ob, pchan); -- cgit v1.2.3 From ed897750cae4d03a3069fde0b94caffa46119066 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 10:58:23 +0000 Subject: Fix #27880: sequencer separate images operator lost strip properties like blend mode, opacity, etc. --- source/blender/editors/space_sequencer/sequencer_edit.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 4f45b84c08e..b7a7b6b5412 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1784,19 +1784,21 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) /* new seq */ se = give_stripelem(seq, cfra); - seq_new= alloc_sequence(ed->seqbasep, start_ofs, seq->machine); + seq_new= seq_dupli_recursive(scene, scene, seq, SEQ_DUPE_UNIQUE_NAME); + BLI_addtail(&ed->seqbase, seq_new); + + seq_new->start= start_ofs; seq_new->type= SEQ_IMAGE; seq_new->len = 1; seq_new->endstill = step-1; /* new strip */ - seq_new->strip= strip_new= MEM_callocN(sizeof(Strip)*1, "strip"); + strip_new= seq_new->strip; strip_new->len= 1; strip_new->us= 1; - strncpy(strip_new->dir, seq->strip->dir, FILE_MAXDIR-1); /* new stripdata */ - strip_new->stripdata= se_new= MEM_callocN(sizeof(StripElem)*1, "stripelem"); + se_new= strip_new->stripdata; BLI_strncpy(se_new->name, se->name, sizeof(se_new->name)); calc_sequence(scene, seq_new); @@ -1808,8 +1810,6 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) } /* XXX, COPY FCURVES */ - strncpy(seq_new->name+2, seq->name+2, sizeof(seq->name)-2); - seqbase_unique_name_recursive(&scene->ed->seqbase, seq_new); cfra++; start_ofs += step; -- cgit v1.2.3 From 9f25b85168ca98c916276ef77644599138633c79 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 6 Jul 2011 11:44:27 +0000 Subject: Making Blender compile for C90 standard, var declared after code :) Also cleaned a line of code that was horribly spread over 4 lines. --- source/blender/nodes/intern/TEX_nodes/TEX_texture.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c index 51c7c0ed341..f0bc2bd4a7c 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c @@ -49,6 +49,7 @@ static bNodeSocketType outputs[]= { static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) { + Tex *nodetex = (Tex *)node->id; static float red[] = {1,0,0,1}; static float white[] = {1,1,1,1}; float co[3], dxt[3], dyt[3]; @@ -57,14 +58,9 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor copy_v3_v3(dxt, p->dxt); copy_v3_v3(dyt, p->dyt); - Tex *nodetex = (Tex *)node->id; - if(node->custom2 || node->need_exec==0) { /* this node refers to its own texture tree! */ - QUATCOPY( - out, - (fabs(co[0] - co[1]) < .01) ? white : red - ); + QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red ; } else if(nodetex) { TexResult texres; -- cgit v1.2.3 From 03b81a5c803a37f6f5306fe2b468d5d8b4891236 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 6 Jul 2011 12:22:36 +0000 Subject: Ergh! first compile and test then commit! --- source/blender/nodes/intern/TEX_nodes/TEX_texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c index f0bc2bd4a7c..c58595866af 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c @@ -60,7 +60,7 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor if(node->custom2 || node->need_exec==0) { /* this node refers to its own texture tree! */ - QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red ; + QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red ); } else if(nodetex) { TexResult texres; -- cgit v1.2.3 From cf71712bba2129680ecfe1fdf029f6526bf24a1d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 12:33:33 +0000 Subject: Fix #27883: object actions did not get duplicated on full scene copy. --- source/blender/editors/object/object_relations.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index f3b67867d7f..285b08c521b 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1660,6 +1660,7 @@ void ED_object_single_users(Main *bmain, Scene *scene, int full) if(full) { single_obdata_users(bmain, scene, 0); + single_object_action_users(scene, 0); single_mat_users_expand(bmain); single_tex_users_expand(bmain); } -- cgit v1.2.3 From e1b060486f0a315cc60c60be07783ab89056229d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Jul 2011 13:15:22 +0000 Subject: Fix #27879: sequencer didn't draw overlapping strips well, selected were drawn under unselected, and active strips red border color for active strips was not clear enough. --- source/blender/editors/space_sequencer/sequencer_draw.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 119c5da309e..594d2942e8f 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -643,10 +643,12 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline if (G.moving && (seq->flag & SELECT)) { if(seq->flag & SEQ_OVERLAP) { col[0]= 255; col[1]= col[2]= 40; - } else UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 120); + } + else + UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 120+outline_tint); } - - UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, outline_tint); + else + UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, outline_tint); glColor3ubv((GLubyte *)col); @@ -969,7 +971,7 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar) /* loop through strips, checking for those that are visible */ for (seq= ed->seqbasep->first; seq; seq= seq->next) { /* boundbox and selection tests for NOT drawing the strip... */ - if ((seq->flag & SELECT) == sel) continue; + if ((seq->flag & SELECT) != sel) continue; else if (seq == last_seq) continue; else if (MIN2(seq->startdisp, seq->start) > v2d->cur.xmax) continue; else if (MAX2(seq->enddisp, seq->start+seq->len) < v2d->cur.xmin) continue; -- cgit v1.2.3 From a83c3c0b1422713d8553965988c3096955eaa452 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Wed, 6 Jul 2011 16:08:24 +0000 Subject: The material index did not work when FSAA was turned on. The information was written in the temp exr files, but was not read back. After checking I saw that the pass was not merged back in the rendercore. After adding this it worked. tested with all FSAA settings. --- source/blender/render/intern/source/rendercore.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 2fa6bed5aae..3aca334cffe 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -627,6 +627,12 @@ static void add_passes(RenderLayer *rl, int offset, ShadeInput *shi, ShadeResult *fp= (float)shi->obr->ob->index; } break; + case SCE_PASS_INDEXMA: + if(shi->vlr) { + fp= rpass->rect + offset; + *fp= (float)shi->mat->index; + } + break; case SCE_PASS_MIST: fp= rpass->rect + offset; *fp= shr->mist; -- cgit v1.2.3 From e3c89a127de7cabb32d89ff696d6d840ff23b123 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Wed, 6 Jul 2011 17:10:38 +0000 Subject: refitted old ndof fly code for 2.5, removed crusty old code --- source/blender/editors/space_view3d/view3d_edit.c | 641 ++++++---------------- 1 file changed, 174 insertions(+), 467 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 42a41be05e0..5a0c233edfa 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -929,6 +929,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; } +#if 0 // NDOF utility functions // returns angular velocity (0..1), fills axis of rotation // (shouldn't live in this file!) static float ndof_to_angle_axis(const float ndof[3], float axis[3]) @@ -957,6 +958,7 @@ static float ndof_to_angular_velocity(wmNDOFMotionData* ndof) return sqrtf(x*x + y*y + z*z); } +#endif static void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) { @@ -977,8 +979,11 @@ static void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) q[3] = scale * z; } -// Mike's version -static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +// Mike's original version: +// -- "orbit" navigation (trackball/turntable) +// -- zooming +// -- panning in rotationally-locked views +static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) { RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; @@ -1023,7 +1028,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) invert_qt_qt(view_inv, rv3d->viewquat); mul_qt_v3(view_inv, pan_vec); - /* move center of view opposite of hand motion (camera mode, not object mode) */ + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ sub_v3_v3(rv3d->ofs, pan_vec); } @@ -1057,7 +1062,7 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) float xvec[3] = {1,0,0}; /* Determine the direction of the x vector (for rotating up and down) */ - float view_inv[4]/*, view_inv_conj[4]*/; + float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); mul_qt_v3(view_inv, xvec); @@ -1081,90 +1086,183 @@ static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -// Tom's version -#if 0 -static int viewndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +#if 0 // not ready +static int ndof_fly_invoke(bContext *C, wmOperator *op, wmEvent *event) { + RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - - float phi, q1[4]; - float m[3][3]; - float m_inv[3][3]; - float xvec[3] = {1,0,0}; - float yvec[3] = {0,1,0}; - float vec[3]; - float mat[3][3]; - const float rotaSensitivity = 0.007; - const float tranSensitivity = 0.120; - - ARegion *ar= CTX_wm_region(C); - RegionView3D *rv3d = CTX_wm_region_view3d(C); - View3D *v3d = CTX_wm_view3d(C); - + + const int shouldRotate = 0, shouldMove = 1; + float dt = ndof->dt; - - if (dt > 0.25f) { + if (dt > 0.25f) /* this is probably the first event for this motion, so set dt to something reasonable */ - dt = 0.0125f; + /* TODO: replace such guesswork with a flag or field from the NDOF manager */ + ndof->dt = dt = 0.0125f; + + if (shouldRotate) + { + const float turn_sensitivity = 1.f; + + float rot[4]; + ndof_to_quat(ndof, rot); + + rv3d->view = RV3D_VIEW_USER; + } + + if (shouldMove) + { + const float forward_sensitivity = 1.f; + const float vertical_sensitivity = 1.f; + const float lateral_sensitivity = 1.f; + + float trans[3] = { + lateral_sensitivity * dt * ndof->tx, + vertical_sensitivity * dt * ndof->ty, + forward_sensitivity * rv3d->dist * dt * ndof->tz + }; + } + + ED_region_tag_redraw(CTX_wm_region(C)); + + return OPERATOR_FINISHED; +} +#endif + +// BEGIN old fly code +// derived from blender 2.4 + +static void getndof(wmNDOFMotionData* indof, float* outdof) +{ + // Rotations feel relatively faster than translations only in fly mode, so + // we have no choice but to fix that here (not in the plugins) + const float turn_sensitivity = 0.8f; + + const float forward_sensitivity = 2.5f; + const float vertical_sensitivity = 1.6f; + const float lateral_sensitivity = 2.5f; + + const float dt = (indof->dt < 0.25f) ? indof->dt : 0.0125f; + // this is probably the first event for this motion, so set dt to something reasonable + // TODO: replace such guesswork with a flag or field from the NDOF manager + + outdof[0] = lateral_sensitivity * dt * indof->tx; + outdof[1] = vertical_sensitivity * dt * indof->ty; + outdof[2] = forward_sensitivity * dt * indof->tz; + + outdof[3] = turn_sensitivity * dt * indof->rx; + outdof[4] = turn_sensitivity * dt * indof->ry; + outdof[5] = turn_sensitivity * dt * indof->rz; +} + +// statics for controlling rv3d->dist corrections. +// viewmoveNDOF zeros and adjusts rv3d->ofs. +// viewmove restores based on dz_flag state. + +static int dz_flag = 0; +static float m_dist; + +static void mouse_rotation_workaround_push(RegionView3D* rv3d) +{ + // This is due to a side effect of the original + // mouse view rotation code. The rotation point is + // set a distance in front of the viewport to + // make rotating with the mouse look better. + // The distance effect is written at a low level + // in the view management instead of the mouse + // view function. This means that all other view + // movement devices must subtract this from their + // view transformations. + + float mat[3][3]; + float upvec[3]; + + if(rv3d->dist != 0.0) { + dz_flag = 1; + m_dist = rv3d->dist; + upvec[0] = upvec[1] = 0; + upvec[2] = rv3d->dist; + copy_m3_m4(mat, rv3d->viewinv); + mul_m3_v3(mat, upvec); + sub_v3_v3(rv3d->ofs, upvec); + rv3d->dist = 0.0; } - /* Get the 3x3 matrix and its inverse from the quaternion */ - quat_to_mat3(m,rv3d->viewquat); - invert_m3_m3(m_inv,m); - - /* Determine the direction of the x vector (for rotating up and down) */ - /* This can likely be computed directly from the quaternion. */ - mul_m3_v3(m_inv,xvec); - - //if(rv3d->persp=!= RV3D_PERSP) //Camera control not supported yet - /* Lock fixed views out of using rotation controls */ - if(rv3d->view!=RV3D_VIEW_FRONT && rv3d->view!=RV3D_VIEW_BACK) - if(rv3d->view!=RV3D_VIEW_TOP && rv3d->view!=RV3D_VIEW_BOTTOM) - if(rv3d->view!=RV3D_VIEW_RIGHT && rv3d->view!=RV3D_VIEW_LEFT) { - // Perform the up/down rotation - phi = (rotaSensitivity+dt) * -ndof->rx; - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, xvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - // Perform the left/right rotation - mul_m3_v3(m_inv,yvec); - phi = (rotaSensitivity+dt) * ndof->ry; - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, yvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - // Perform the orbital rotation - phi = (rotaSensitivity+dt) * ndof->rz; - q1[0] = cos(phi); - q1[1] = q1[2] = 0.0; - q1[3] = sin(phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - } + // this is still needed in version 2.5 [mce] + // warning! current viewmove does not look at dz_flag or m_dist + // don't expect 2D mouse to work properly right after using 3D mouse +} + +static void mouse_rotation_workaround_pop(RegionView3D* rv3d) +{ + if (dz_flag) { + dz_flag = 0; + rv3d->dist = m_dist; + } +} + +static int ndof_oldfly_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + RegionView3D* rv3d = CTX_wm_region_view3d(C); + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + float phi; + float dval[6]; + float tvec[3], rvec[3]; + float q1[4]; + float mat[3][3]; + + // fetch the current state of the ndof device + getndof(ndof, dval); - // Perform Pan translation - vec[0]= (tranSensitivity+dt) * ndof->tx; - vec[1]= (tranSensitivity+dt) * ndof->tz; - //vec[2]= 0.0f;//tranSensitivity * ndof->ty; - //window_to_3d_delta(ar, vec, -ndof->tx, -ndof->tz); // experimented a little instead of above + // force perspective mode. This is a hack and is + // incomplete. It doesn't actually affect the view + // until the first draw and doesn't update the menu + // to reflect persp mode. + rv3d->persp = RV3D_PERSP; + + // Correct the distance jump if rv3d->dist != 0 + mouse_rotation_workaround_push(rv3d); + + // Apply rotation + rvec[0] = dval[3]; + rvec[1] = dval[4]; + rvec[2] = dval[5]; + + // rotate device x and y by view z copy_m3_m4(mat, rv3d->viewinv); mat[2][2] = 0.0f; - mul_m3_v3(mat, vec); - // translate the view - add_v3_v3(rv3d->ofs, vec); + mul_m3_v3(mat, rvec); - // Perform Zoom translation - if (ndof->ty!=0.0f){ // TODO - need to add limits to prevent flipping past gridlines - rv3d->dist += (tranSensitivity+dt)* ndof->ty; - // printf("dist %5.3f view %d grid %f\n",rv3d->dist,rv3d->view,v3d->grid); + // rotate the view + phi = normalize_v3(rvec); + if(phi != 0) { + axis_angle_to_quat(q1,rvec,phi); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); } - //printf("Trans tx:%5.2f ty:%5.2f tz:%5.2f \n",ndof->tx, ndof->ty, ndof->tz); - ED_region_tag_redraw(ar); - + // Apply translation + tvec[0] = dval[0]; + tvec[1] = dval[1]; + tvec[2] = dval[2]; + + // the next three lines rotate the x and y translation coordinates + // by the current z axis angle + copy_m3_m4(mat, rv3d->viewinv); + mat[2][2] = 0.0f; + mul_m3_v3(mat, tvec); + + // translate the view + sub_v3_v3(rv3d->ofs, tvec); + + mouse_rotation_workaround_pop(rv3d); + + // back to 2.5 land! + ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; } -#endif + +// END old fly code void VIEW3D_OT_ndof(struct wmOperatorType *ot) { @@ -1174,7 +1272,8 @@ void VIEW3D_OT_ndof(struct wmOperatorType *ot) ot->idname = "VIEW3D_OT_ndof"; /* api callbacks */ - ot->invoke = viewndof_invoke; + ot->invoke = ndof_oldfly_invoke; +// ot->invoke = ndof_orbit_invoke; ot->poll = ED_operator_view3d_active; /* flags */ @@ -3448,398 +3547,6 @@ int ED_view3d_autodist_depth_seg(struct ARegion *ar, const int mval_sta[2], cons return (*depth==FLT_MAX) ? 0:1; } -/* ********************* NDOF ************************ */ -/* note: this code is confusing and unclear... (ton) */ -/* **************************************************** */ - -// ndof scaling will be moved to user setting. -// In the mean time this is just a place holder. - -// Note: scaling in the plugin and ghostwinlay.c -// should be removed. With driver default setting, -// each axis returns approx. +-200 max deflection. - -// The values I selected are based on the older -// polling i/f. With event i/f, the sensistivity -// can be increased for improved response from -// small deflections of the device input. - - -// lukep notes : i disagree on the range. -// the normal 3Dconnection driver give +/-400 -// on defaut range in other applications -// and up to +/- 1000 if set to maximum -// because i remove the scaling by delta, -// which was a bad idea as it depend of the system -// speed and os, i changed the scaling values, but -// those are still not ok - -#if 0 -static float ndof_axis_scale[6] = { - +0.01, // Tx - +0.01, // Tz - +0.01, // Ty - +0.0015, // Rx - +0.0015, // Rz - +0.0015 // Ry -}; - -static void filterNDOFvalues(float *sbval) -{ - int i=0; - float max = 0.0; - - for (i =0; i<6;i++) - if (fabs(sbval[i]) > max) - max = fabs(sbval[i]); - for (i =0; i<6;i++) - if (fabs(sbval[i]) != max ) - sbval[i]=0.0; -} - -// statics for controlling rv3d->dist corrections. -// viewmoveNDOF zeros and adjusts rv3d->ofs. -// viewmove restores based on dz_flag state. - -int dz_flag = 0; -float m_dist; - -void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int UNUSED(mode)) -{ - RegionView3D *rv3d= ar->regiondata; - int i; - float phi; - float dval[7]; - // static fval[6] for low pass filter; device input vector is dval[6] - static float fval[6]; - float tvec[3],rvec[3]; - float q1[4]; - float mat[3][3]; - float upvec[3]; - - - /*---------------------------------------------------- - * sometimes this routine is called from headerbuttons - * viewmove needs to refresh the screen - */ -// XXX areawinset(ar->win); - - - // fetch the current state of the ndof device -// XXX getndof(dval); - - if (v3d->ndoffilter) - filterNDOFvalues(fval); - - // Scale input values - -// if(dval[6] == 0) return; // guard against divide by zero - - for(i=0;i<6;i++) { - - // user scaling - dval[i] = dval[i] * ndof_axis_scale[i]; - } - - - // low pass filter with zero crossing reset - - for(i=0;i<6;i++) { - if((dval[i] * fval[i]) >= 0) - dval[i] = (fval[i] * 15 + dval[i]) / 16; - else - fval[i] = 0; - } - - - // force perspective mode. This is a hack and is - // incomplete. It doesn't actually effect the view - // until the first draw and doesn't update the menu - // to reflect persp mode. - - rv3d->persp = RV3D_PERSP; - - - // Correct the distance jump if rv3d->dist != 0 - - // This is due to a side effect of the original - // mouse view rotation code. The rotation point is - // set a distance in front of the viewport to - // make rotating with the mouse look better. - // The distance effect is written at a low level - // in the view management instead of the mouse - // view function. This means that all other view - // movement devices must subtract this from their - // view transformations. - - if(rv3d->dist != 0.0) { - dz_flag = 1; - m_dist = rv3d->dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - sub_v3_v3(rv3d->ofs, upvec); - rv3d->dist = 0.0; - } - - - // Apply rotation - // Rotations feel relatively faster than translations only in fly mode, so - // we have no choice but to fix that here (not in the plugins) - rvec[0] = -0.5 * dval[3]; - rvec[1] = -0.5 * dval[4]; - rvec[2] = -0.5 * dval[5]; - - // rotate device x and y by view z - - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, rvec); - - // rotate the view - - phi = normalize_v3(rvec); - if(phi != 0) { - axis_angle_to_quat(q1,rvec,phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - } - - - // Apply translation - - tvec[0] = dval[0]; - tvec[1] = dval[1]; - tvec[2] = -dval[2]; - - // the next three lines rotate the x and y translation coordinates - // by the current z axis angle - - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, tvec); - - // translate the view - - sub_v3_v3(rv3d->ofs, tvec); - - - /*---------------------------------------------------- - * refresh the screen XXX - */ - - // update render preview window - -// XXX BIF_view3d_previewrender_signal(ar, PR_DBASE|PR_DISPRECT); -} - -void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int UNUSED(mode)) -{ - RegionView3D *rv3d= ar->regiondata; - float fval[7]; - float dvec[3]; - float sbadjust = 1.0f; - float len; - short use_sel = 0; - Object *ob = OBACT; - float m[3][3]; - float m_inv[3][3]; - float xvec[3] = {1,0,0}; - float yvec[3] = {0,-1,0}; - float zvec[3] = {0,0,1}; - float phi; - float q1[4]; - float obofs[3]; - float reverse; - //float diff[4]; - float d, curareaX, curareaY; - float mat[3][3]; - float upvec[3]; - - /* Sensitivity will control how fast the view rotates. The value was - * obtained experimentally by tweaking until the author didn't get dizzy watching. - * Perhaps this should be a configurable user parameter. - */ - float psens = 0.005f * (float) U.ndof_pan; /* pan sensitivity */ - float rsens = 0.005f * (float) U.ndof_rotate; /* rotate sensitivity */ - float zsens = 0.3f; /* zoom sensitivity */ - - const float minZoom = -30.0f; - const float maxZoom = 300.0f; - - //reset view type - rv3d->view = 0; -//printf("passing here \n"); -// - if (scene->obedit==NULL && ob && !(ob->mode & OB_MODE_POSE)) { - use_sel = 1; - } - - if((dz_flag)||rv3d->dist==0) { - dz_flag = 0; - rv3d->dist = m_dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - add_v3_v3(rv3d->ofs, upvec); - } - - /*---------------------------------------------------- - * sometimes this routine is called from headerbuttons - * viewmove needs to refresh the screen - */ -// XXX areawinset(curarea->win); - - /*---------------------------------------------------- - * record how much time has passed. clamp at 10 Hz - * pretend the previous frame occurred at the clamped time - */ -// now = PIL_check_seconds_timer(); - // frametime = (now - prevTime); - // if (frametime > 0.1f){ /* if more than 1/10s */ - // frametime = 1.0f/60.0; /* clamp at 1/60s so no jumps when starting to move */ -// } -// prevTime = now; - // sbadjust *= 60 * frametime; /* normalize ndof device adjustments to 100Hz for framerate independence */ - - /* fetch the current state of the ndof device & enforce dominant mode if selected */ -// XXX getndof(fval); - if (v3d->ndoffilter) - filterNDOFvalues(fval); - - - // put scaling back here, was previously in ghostwinlay - fval[0] = fval[0] * (1.0f/600.0f); - fval[1] = fval[1] * (1.0f/600.0f); - fval[2] = fval[2] * (1.0f/1100.0f); - fval[3] = fval[3] * 0.00005f; - fval[4] =-fval[4] * 0.00005f; - fval[5] = fval[5] * 0.00005f; - fval[6] = fval[6] / 1000000.0f; - - // scale more if not in perspective mode - if (rv3d->persp == RV3D_ORTHO) { - fval[0] = fval[0] * 0.05f; - fval[1] = fval[1] * 0.05f; - fval[2] = fval[2] * 0.05f; - fval[3] = fval[3] * 0.9f; - fval[4] = fval[4] * 0.9f; - fval[5] = fval[5] * 0.9f; - zsens *= 8; - } - - /* set object offset */ - if (ob) { - obofs[0] = -ob->obmat[3][0]; - obofs[1] = -ob->obmat[3][1]; - obofs[2] = -ob->obmat[3][2]; - } - else { - copy_v3_v3(obofs, rv3d->ofs); - } - - /* calc an adjustment based on distance from camera - disabled per patch 14402 */ - d = 1.0f; - -/* if (ob) { - sub_v3_v3v3(diff, obofs, rv3d->ofs); - d = len_v3(diff); - } -*/ - - reverse = (rv3d->persmat[2][1] < 0.0f) ? -1.0f : 1.0f; - - /*---------------------------------------------------- - * ndof device pan - */ - psens *= 1.0f + d; - curareaX = sbadjust * psens * fval[0]; - curareaY = sbadjust * psens * fval[1]; - dvec[0] = curareaX * rv3d->persinv[0][0] + curareaY * rv3d->persinv[1][0]; - dvec[1] = curareaX * rv3d->persinv[0][1] + curareaY * rv3d->persinv[1][1]; - dvec[2] = curareaX * rv3d->persinv[0][2] + curareaY * rv3d->persinv[1][2]; - add_v3_v3(rv3d->ofs, dvec); - - /*---------------------------------------------------- - * ndof device dolly - */ - len = zsens * sbadjust * fval[2]; - - if (rv3d->persp==RV3D_CAMOB) { - if(rv3d->persp==RV3D_CAMOB) { /* This is stupid, please fix - TODO */ - rv3d->camzoom+= 10.0f * -len; - } - if (rv3d->camzoom < minZoom) rv3d->camzoom = minZoom; - else if (rv3d->camzoom > maxZoom) rv3d->camzoom = maxZoom; - } - else if ((rv3d->dist> 0.001*v3d->grid) && (rv3d->dist<10.0*v3d->far)) { - rv3d->dist*=(1.0 + len); - } - - - /*---------------------------------------------------- - * ndof device turntable - * derived from the turntable code in viewmove - */ - - /* Get the 3x3 matrix and its inverse from the quaternion */ - quat_to_mat3( m,rv3d->viewquat); - invert_m3_m3(m_inv,m); - - /* Determine the direction of the x vector (for rotating up and down) */ - /* This can likely be compuated directly from the quaternion. */ - mul_m3_v3(m_inv,xvec); - mul_m3_v3(m_inv,yvec); - mul_m3_v3(m_inv,zvec); - - /* Perform the up/down rotation */ - phi = sbadjust * rsens * /*0.5f * */ fval[3]; /* spin vertically half as fast as horizontally */ - q1[0] = cos(phi); - mul_v3_v3fl(q1+1, xvec, sin(phi)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - if (use_sel) { - conjugate_qt(q1); /* conj == inv for unit quat */ - sub_v3_v3(rv3d->ofs, obofs); - mul_qt_v3(q1, rv3d->ofs); - add_v3_v3(rv3d->ofs, obofs); - } - - /* Perform the orbital rotation */ - /* Perform the orbital rotation - If the seen Up axis is parallel to the zoom axis, rotation should be - achieved with a pure Roll motion (no Spin) on the device. When you start - to tilt, moving from Top to Side view, Spinning will increasingly become - more relevant while the Roll component will decrease. When a full - Side view is reached, rotations around the world's Up axis are achieved - with a pure Spin-only motion. In other words the control of the spinning - around the world's Up axis should move from the device's Spin axis to the - device's Roll axis depending on the orientation of the world's Up axis - relative to the screen. */ - //phi = sbadjust * rsens * reverse * fval[4]; /* spin the knob, y axis */ - phi = sbadjust * rsens * (yvec[2] * fval[4] + zvec[2] * fval[5]); - q1[0] = cos(phi); - q1[1] = q1[2] = 0.0; - q1[3] = sin(phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - - if (use_sel) { - conjugate_qt(q1); - sub_v3_v3(rv3d->ofs, obofs); - mul_qt_v3(q1, rv3d->ofs); - add_v3_v3(rv3d->ofs, obofs); - } - - /*---------------------------------------------------- - * refresh the screen - */ -// XXX scrarea_do_windraw(curarea); -} -#endif // if 0, unused NDof code - - /* Gets the view trasnformation from a camera * currently dosnt take camzoom into account * -- cgit v1.2.3 From 1e14e2f465c749b5fe39c1a22ea562059b9fad65 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 6 Jul 2011 17:41:14 +0000 Subject: camera lens (COLLADA xfov ) animation export --- source/blender/collada/AnimationExporter.cpp | 102 ++++++++++++++++++--------- source/blender/collada/AnimationExporter.h | 3 +- source/blender/collada/CameraExporter.cpp | 4 +- 3 files changed, 71 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 6ebaef30a9c..c100166a682 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -56,18 +56,50 @@ void AnimationExporter::exportAnimations(Scene *sce) void AnimationExporter::operator() (Object *ob) { FCurve *fcu; + char * transformName ; if(ob->adt && ob->adt->action) - fcu = (FCurve*)ob->adt->action->curves.first; - else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) - fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); - else return; + { + fcu = (FCurve*)ob->adt->action->curves.first; + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || + (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| + (!strcmp(transformName, "rotation_quaternion"))) + dae_animation(ob ,fcu, transformName, false); + fcu = fcu->next; + } + } + if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) + { + fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + + if ((!strcmp(transformName, "color")) || + (!strcmp(transformName, "spot_size"))|| + (!strcmp(transformName, "spot_blend"))) + dae_animation(ob ,fcu, transformName,true ); + fcu = fcu->next; + } + } + + if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) + { + fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + + if ((!strcmp(transformName, "lens"))) + dae_animation(ob ,fcu, transformName,true ); + fcu = fcu->next; + } + } //if (!ob->adt || !ob->adt->action) // fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() //else // fcu = (FCurve*)ob->adt->action->curves.first; - char * transformName = extract_transform_name( fcu->rna_path ); - - + //if (ob->type == OB_ARMATURE) { // if (!ob->data) return; // bArmature *arm = (bArmature*)ob->data; @@ -82,21 +114,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // } //} //else { - while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - - if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || - (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| - (!strcmp(transformName, "rotation_quaternion")) || - (!strcmp(transformName, "color")) || - (!strcmp(transformName, "spot_size"))|| - (!strcmp(transformName, "spot_blend"))) - dae_animation(ob ,fcu, transformName ); - - - fcu = fcu->next; - } - //} + } float * AnimationExporter::get_eul_source_for_quat(Object *ob ) @@ -150,7 +168,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return id_name(ob); } - void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName ) + void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName , bool is_param ) { const char *axis_name = NULL; @@ -166,7 +184,9 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ } - else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend") ) + else if ( !strcmp(transformName, "spot_size")|| + !strcmp(transformName, "spot_blend")|| + !strcmp(transformName, "lens")) { axis_name = ""; } @@ -252,13 +272,19 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string target ; - if ( ob->type == OB_LAMP ) - target = get_light_id(ob) - + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); - else + if ( !is_param ) target = translate_id(ob_name) + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + else + { + if ( ob->type == OB_LAMP ) + target = get_light_id(ob) + + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + if ( ob->type == OB_CAMERA ) + target = get_camera_id(ob) + + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + } addChannel(COLLADABU::URI(empty, sampler_id), target); closeAnimation(); @@ -569,9 +595,9 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string source_id = anim_id + get_semantic_suffix(semantic); //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); - bool is_rotation = false; + bool is_angle = false; - if (strstr(fcu->rna_path, "rotation")) is_rotation = true; + if (strstr(fcu->rna_path, "rotation")||strstr(fcu->rna_path, "lens")) is_angle = true; COLLADASW::FloatSourceF source(mSW); source.setId(source_id); @@ -591,14 +617,14 @@ void AnimationExporter::exportAnimations(Scene *sce) COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rotation, axis_name); + add_source_parameters(param, semantic, is_angle, axis_name); source.prepareToAppendValues(); for (unsigned int i = 0; i < fcu->totvert; i++) { float values[3]; // be careful! int length = 0; - get_source_values(&fcu->bezt[i], semantic, is_rotation, values, &length); + get_source_values(&fcu->bezt[i], semantic, is_angle, values, &length); for (int j = 0; j < length; j++) source.appendValues(values[j]); } @@ -777,6 +803,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 5; else if (!strcmp(name, "spot_blend")) tm_type = 6; + else if (!strcmp(name, "lens")) + tm_type = 7; else tm_type = -1; } @@ -802,6 +830,10 @@ void AnimationExporter::exportAnimations(Scene *sce) case 6: tm_name = "fall_off_exponent"; break; + case 7: + tm_name = "xfov"; + break; + default: tm_name = ""; break; @@ -890,10 +922,10 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu = (FCurve*)ob->adt->action->curves.first; else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + else if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) + fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); //The Scene has animations if object type is armature or object has f-curve or object is a Lamp which has f-curves - if ((ob->type == OB_ARMATURE && ob->data) || fcu) { - return true; - } + if ( fcu) return true; base= base->next; } return false; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 85e5e23d0f0..481cacbd4c8 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -33,6 +33,7 @@ extern "C" #include "DNA_action_types.h" #include "DNA_curve_types.h" #include "DNA_lamp_types.h" +#include "DNA_camera_types.h" #include "DNA_armature_types.h" #include "BKE_DerivedMesh.h" @@ -90,7 +91,7 @@ public: protected: - void dae_animation(Object* ob, FCurve *fcu, char* transformName); + void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param); void write_bone_animation(Object *ob_arm, Bone *bone); diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index e3feab6b76c..c4d9a4a0df0 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -73,7 +73,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) if (cam->type == CAM_PERSP) { COLLADASW::PerspectiveOptic persp(mSW); - persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI)); + persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI),"XFov"); persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,cam_name); persp.setZFar(cam->clipend); persp.setZNear(cam->clipsta); @@ -82,7 +82,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) } else { COLLADASW::OrthographicOptic ortho(mSW); - ortho.setXMag(cam->ortho_scale); + ortho.setXMag(cam->ortho_scale,"XMag"); ortho.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch)); ortho.setZFar(cam->clipend); ortho.setZNear(cam->clipsta); -- cgit v1.2.3 From 6c88a16b3a743cef95aa6c7b4ca49c173e5c77a5 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 6 Jul 2011 18:09:36 +0000 Subject: Camera lens animation Identifying --- source/blender/collada/AnimationImporter.cpp | 17 ++++++++++++++++- source/blender/collada/AnimationImporter.h | 5 ++++- source/blender/collada/DocumentImporter.cpp | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index e21a9370935..d35c3649ab5 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -905,7 +905,22 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , if ( type != 0) break; } - + + const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras(); + for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { + const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; + + const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); + + if (animlist_map.find(xfov_listid) != animlist_map.end()) + type = type|CAMERA_XFOV; + + + if ( type != 0) break; + + } + return type; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 5a9638d2bb2..22bff6e493d 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -38,11 +38,13 @@ #include "COLLADAFWNode.h" #include "COLLADAFWUniqueId.h" #include "COLLADAFWLight.h" +#include "COLLADAFWCamera.h" #include "DNA_anim_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_lamp_types.h" +#include "DNA_camera_types.h" //#include "ArmatureImporter.h" #include "TransformReader.h" @@ -90,7 +92,8 @@ private: NODE_TRANSFORM = 1, LIGHT_COLOR = 2, LIGHT_FOA = 4, - LIGHT_FOE = 8 + LIGHT_FOE = 8, + CAMERA_XFOV = 16 }; public: diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 2815d8703ed..a5946b4aa88 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -854,6 +854,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) } this->uid_camera_map[camera->getUniqueId()] = cam; + this->FW_object_map[camera->getUniqueId()] = camera; // XXX import camera options return true; } -- cgit v1.2.3 From a0d4a95ff7979cbdcfe26392d1f8a6ff83f36990 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 6 Jul 2011 18:34:01 +0000 Subject: Camera lens animation import. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/AnimationImporter.cpp | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index c100166a682..f480cd2a48e 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -597,7 +597,7 @@ void AnimationExporter::exportAnimations(Scene *sce) //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); bool is_angle = false; - if (strstr(fcu->rna_path, "rotation")||strstr(fcu->rna_path, "lens")) is_angle = true; + if (strstr(fcu->rna_path, "rotation")) is_angle = true; COLLADASW::FloatSourceF source(mSW); source.setId(source_id); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index d35c3649ab5..a70e3cd8abd 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -855,6 +855,28 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } } + + if ( ((animType & CAMERA_XFOV) != 0) ) + { + Camera * camera = (Camera*) ob->data; + + if (!camera->adt || !camera->adt->action) act = verify_adt_action((ID*)&camera->id, 1); + else act = camera->adt->action; + + ListBase *AnimCurves = &(act->curves); + const COLLADAFW::InstanceCameraPointerArray& nodeCameras= node->getInstanceCameras(); + + for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { + const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; + + if ((animType & CAMERA_XFOV) != 0 ) + { + const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + const COLLADAFW::UniqueId& listid = xfov->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "lens"); + } + } + } } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms -- cgit v1.2.3 From 50ef78cdb8d9d746785bb03a296666dd15123e90 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Wed, 6 Jul 2011 18:50:59 +0000 Subject: various fixes to enable MSVC build, removed crusty old Win32 ndof code --- source/blender/editors/space_view3d/view3d_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 5a0c233edfa..2d8c14b29f3 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1002,7 +1002,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) /* TODO: replace such guesswork with a flag or field from the NDOF manager */ ndof->dt = dt = 0.0125f; - #define DEBUG_NDOF_MOTION + //#define DEBUG_NDOF_MOTION #ifdef DEBUG_NDOF_MOTION printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); -- cgit v1.2.3 From 44220bba7a8f2f09264ea1e581096d65a00579e4 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 6 Jul 2011 19:00:40 +0000 Subject: camera ortho_scale (COLLADA xmag ) animation export --- source/blender/collada/AnimationExporter.cpp | 13 +++++++++---- source/blender/collada/CameraExporter.cpp | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index f480cd2a48e..850f1b334f2 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -90,7 +90,8 @@ void AnimationExporter::exportAnimations(Scene *sce) while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "lens"))) + if ((!strcmp(transformName, "lens"))|| + (!strcmp(transformName, "ortho_scale"))) dae_animation(ob ,fcu, transformName,true ); fcu = fcu->next; } @@ -184,9 +185,8 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ } - else if ( !strcmp(transformName, "spot_size")|| - !strcmp(transformName, "spot_blend")|| - !strcmp(transformName, "lens")) + else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend")|| + !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")) { axis_name = ""; } @@ -805,6 +805,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 6; else if (!strcmp(name, "lens")) tm_type = 7; + else if (!strcmp(name, "ortho_scale")) + tm_type = 8; else tm_type = -1; } @@ -833,6 +835,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 7: tm_name = "xfov"; break; + case 8: + tm_name = "xmag"; + break; default: tm_name = ""; diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index c4d9a4a0df0..1089cd03fde 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -73,7 +73,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) if (cam->type == CAM_PERSP) { COLLADASW::PerspectiveOptic persp(mSW); - persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI),"XFov"); + persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI),"xfov"); persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,cam_name); persp.setZFar(cam->clipend); persp.setZNear(cam->clipsta); @@ -82,7 +82,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) } else { COLLADASW::OrthographicOptic ortho(mSW); - ortho.setXMag(cam->ortho_scale,"XMag"); + ortho.setXMag(cam->ortho_scale,"xmag"); ortho.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch)); ortho.setZFar(cam->clipend); ortho.setZNear(cam->clipsta); -- cgit v1.2.3 From 5b4bffba5234e3601b355adfa62bd57ff110903d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 6 Jul 2011 21:37:31 +0000 Subject: [#27854] Collada import doesn't handle UVW mapping Reported by David Roy Patch by Brecht van Lommel UV import code wasn't taking possible stride into account (always assuming stride==2), thus reading UV coords totally wrong. --- source/blender/collada/MeshImporter.cpp | 63 +++++++++++++-------------------- source/blender/collada/MeshImporter.h | 2 +- 2 files changed, 25 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index d1977d15fb2..760fb2359a4 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -144,15 +144,18 @@ void WVDataWrapper::print() } #endif -void UVDataWrapper::getUV(int uv_index[2], float *uv) +void UVDataWrapper::getUV(int uv_index, float *uv) { + int stride = mVData->getStride(0); + if(stride==0) stride = 2; + switch(mVData->getType()) { case COLLADAFW::MeshVertexData::DATA_TYPE_FLOAT: { COLLADAFW::ArrayPrimitiveType* values = mVData->getFloatValues(); if (values->empty()) return; - uv[0] = (*values)[uv_index[0]]; - uv[1] = (*values)[uv_index[1]]; + uv[0] = (*values)[uv_index*stride]; + uv[1] = (*values)[uv_index*stride + 1]; } break; @@ -160,8 +163,8 @@ void UVDataWrapper::getUV(int uv_index[2], float *uv) { COLLADAFW::ArrayPrimitiveType* values = mVData->getDoubleValues(); if (values->empty()) return; - uv[0] = (float)(*values)[uv_index[0]]; - uv[1] = (float)(*values)[uv_index[1]]; + uv[0] = (float)(*values)[uv_index*stride]; + uv[1] = (float)(*values)[uv_index*stride + 1]; } break; @@ -197,54 +200,36 @@ void MeshImporter::rotate_face_indices(MFace *mface) { void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, COLLADAFW::IndexList& index_list, unsigned int *tris_indices) { - int uv_indices[4][2]; - // per face vertex indices, this means for quad we have 4 indices, not 8 COLLADAFW::UIntValuesArray& indices = index_list.getIndices(); - // make indices into FloatOrDoubleArray - for (int i = 0; i < 3; i++) { - int uv_index = indices[tris_indices[i]]; - uv_indices[i][0] = uv_index * 2; - uv_indices[i][1] = uv_index * 2 + 1; - } - - uvs.getUV(uv_indices[0], mtface->uv[0]); - uvs.getUV(uv_indices[1], mtface->uv[1]); - uvs.getUV(uv_indices[2], mtface->uv[2]); + uvs.getUV(indices[tris_indices[0]], mtface->uv[0]); + uvs.getUV(indices[tris_indices[1]], mtface->uv[1]); + uvs.getUV(indices[tris_indices[2]], mtface->uv[2]); } void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, COLLADAFW::IndexList& index_list, int index, bool quad) { - int uv_indices[4][2]; - // per face vertex indices, this means for quad we have 4 indices, not 8 COLLADAFW::UIntValuesArray& indices = index_list.getIndices(); - // make indices into FloatOrDoubleArray - for (int i = 0; i < (quad ? 4 : 3); i++) { - int uv_index = indices[index + i]; - uv_indices[i][0] = uv_index * 2; - uv_indices[i][1] = uv_index * 2 + 1; - } - - uvs.getUV(uv_indices[0], mtface->uv[0]); - uvs.getUV(uv_indices[1], mtface->uv[1]); - uvs.getUV(uv_indices[2], mtface->uv[2]); + uvs.getUV(indices[index + 0], mtface->uv[0]); + uvs.getUV(indices[index + 1], mtface->uv[1]); + uvs.getUV(indices[index + 2], mtface->uv[2]); - if (quad) uvs.getUV(uv_indices[3], mtface->uv[3]); + if (quad) uvs.getUV(indices[index + 3], mtface->uv[3]); #ifdef COLLADA_DEBUG /*if (quad) { fprintf(stderr, "face uv:\n" - "((%d, %d), (%d, %d), (%d, %d), (%d, %d))\n" + "((%d, %d, %d, %d))\n" "((%.1f, %.1f), (%.1f, %.1f), (%.1f, %.1f), (%.1f, %.1f))\n", - uv_indices[0][0], uv_indices[0][1], - uv_indices[1][0], uv_indices[1][1], - uv_indices[2][0], uv_indices[2][1], - uv_indices[3][0], uv_indices[3][1], + indices[index + 0], + indices[index + 1], + indices[index + 2], + indices[index + 3], mtface->uv[0][0], mtface->uv[0][1], mtface->uv[1][0], mtface->uv[1][1], @@ -253,12 +238,12 @@ void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, } else { fprintf(stderr, "face uv:\n" - "((%d, %d), (%d, %d), (%d, %d))\n" + "((%d, %d, %d))\n" "((%.1f, %.1f), (%.1f, %.1f), (%.1f, %.1f))\n", - uv_indices[0][0], uv_indices[0][1], - uv_indices[1][0], uv_indices[1][1], - uv_indices[2][0], uv_indices[2][1], + indices[index + 0], + indices[index + 1], + indices[index + 2], mtface->uv[0][0], mtface->uv[0][1], mtface->uv[1][0], mtface->uv[1][1], diff --git a/source/blender/collada/MeshImporter.h b/source/blender/collada/MeshImporter.h index 20fdb0dcc6e..88ee0e46c33 100644 --- a/source/blender/collada/MeshImporter.h +++ b/source/blender/collada/MeshImporter.h @@ -69,7 +69,7 @@ public: void print(); #endif - void getUV(int uv_index[2], float *uv); + void getUV(int uv_index, float *uv); }; class MeshImporter : public MeshImporterBase -- cgit v1.2.3 From d00a3c8ddf4f722ae829bbfa025fb09446a8fba3 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 03:35:48 +0000 Subject: Outliner RMB Menu - AnimData mangement * When clicking on "Animation" items in the Outliner, there's now a menu containing from which you can change the action used, and refresh/delete all drivers. * Moved action-setting logic for AnimData actions to a single utility function in anim_sys, since this was starting to be done in too many places already. * Fixed Outliner refresh bug after changing the active action --- source/blender/blenkernel/BKE_animsys.h | 4 + source/blender/blenkernel/intern/anim_sys.c | 54 ++++ source/blender/editors/space_outliner/outliner.c | 281 +++++++++++++++++++-- .../editors/space_outliner/outliner_intern.h | 2 + .../blender/editors/space_outliner/outliner_ops.c | 2 + .../editors/space_outliner/space_outliner.c | 7 + source/blender/makesrna/intern/rna_animation.c | 37 +-- source/blender/makesrna/intern/rna_nla.c | 1 + 8 files changed, 329 insertions(+), 59 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 348b967f9c4..228a359c81d 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -41,6 +41,7 @@ struct KeyingSet; struct KS_Path; struct PointerRNA; +struct ReportList; struct bAction; struct bActionGroup; struct AnimMapper; @@ -57,6 +58,9 @@ struct AnimData *BKE_animdata_from_id(struct ID *id); /* Add AnimData to the given ID-block */ struct AnimData *BKE_id_add_animdata(struct ID *id); +/* Set active action used by AnimData from the given ID-block */ +short BKE_animdata_set_action(struct ReportList *reports, struct ID *id, struct bAction *act); + /* Free AnimData */ void BKE_free_animdata(struct ID *id); diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index fdc102bf779..69458ec7401 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -56,6 +56,7 @@ #include "BKE_global.h" #include "BKE_main.h" #include "BKE_library.h" +#include "BKE_report.h" #include "BKE_utildefines.h" #include "RNA_access.h" @@ -144,6 +145,59 @@ AnimData *BKE_id_add_animdata (ID *id) return NULL; } +/* Action Setter --------------------------------------- */ + +/* Called when user tries to change the active action of an AnimData block (via RNA, Outliner, etc.) */ +short BKE_animdata_set_action (ReportList *reports, ID *id, bAction *act) +{ + AnimData *adt = BKE_animdata_from_id(id); + short ok = 0; + + /* animdata validity check */ + if (adt == NULL) { + BKE_report(reports, RPT_WARNING, "No AnimData to set action on"); + return ok; + } + + /* active action is only editable when it is not a tweaking strip + * see rna_AnimData_action_editable() in rna_animation.c + */ + if ((adt->flag & ADT_NLA_EDIT_ON) || (adt->actstrip) || (adt->tmpact)) { + /* cannot remove, otherwise things turn to custard */ + BKE_report(reports, RPT_ERROR, "Cannot change action, as it is still being edited in NLA"); + return ok; + } + + /* manage usercount for current action */ + if (adt->action) + id_us_min((ID*)adt->action); + + /* assume that AnimData's action can in fact be edited... */ + if (act) { + /* action must have same type as owner */ + if (ELEM(act->idroot, 0, GS(id->name))) { + /* can set */ + adt->action = act; + id_us_plus((ID*)adt->action); + ok = 1; + } + else { + /* cannot set */ + BKE_reportf(reports, RPT_ERROR, + "Couldn't set Action '%s' onto ID '%s', as it doesn't have suitably rooted paths for this purpose", + act->id.name+2, id->name); + //ok = 0; + } + } + else { + /* just clearing the action... */ + adt->action = NULL; + ok = 1; + } + + return ok; +} + /* Freeing -------------------------------------------- */ /* Free AnimData used by the nominated ID-block, and clear ID-block's AnimData pointer */ diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index f74ca7f8153..db64aead8a8 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -101,6 +101,7 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "ED_keyframing.h" @@ -3170,29 +3171,10 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, } } -static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) { - IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; - AnimData *adt = iat->adt; - - //printf("iat = '%s' | act = '%s'\n", iat->id.name, tselem->id->name); - - /* active action is only editable when it is not a tweaking strip - * see rna_AnimData_action_editable() in rna_animation.c - */ - if ((adt->flag & ADT_NLA_EDIT_ON) || (adt->actstrip) || (adt->tmpact)) { - /* cannot remove, otherwise things turn to custard */ - ReportList *reports = CTX_wm_reports(C); - - // FIXME: this only gets shown in info-window, since this is global not operator report - BKE_report(reports, RPT_ERROR, "Cannot unlink action, as it is still being edited in NLA"); - - return; - } - - /* remove action... */ - id_us_min((ID*)adt->action); - adt->action = NULL; + /* just set action to NULL */ + BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL); } static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) @@ -3414,6 +3396,36 @@ static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOop /* ******************************************** */ +static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + /* just set action to NULL */ + BKE_animdata_set_action(NULL, tselem->id, NULL); +} + +static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + + /* just free drivers - stored as a list of F-Curves */ + free_fcurves(&iat->adt->drivers); +} + +static void refreshdrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + FCurve *fcu; + + /* loop over drivers, performing refresh (i.e. check graph_buttons.c and rna_fcurve.c for details) */ + for (fcu = iat->adt->drivers.first; fcu; fcu= fcu->next) { + fcu->flag &= ~FCURVE_DISABLED; + + if (fcu->driver) + fcu->driver->flag &= ~DRIVER_FLAG_INVALID; + } +} + +/* --------------------------------- */ + static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) { bPoseChannel *pchan= (bPoseChannel *)te->directdata; @@ -3775,6 +3787,224 @@ void OUTLINER_OT_id_operation(wmOperatorType *ot) /* **************************************** */ +static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *lb, ID *newid, + void (*operation_cb)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_SELECTED) { + if(tselem->type==type) { + TreeStoreElem *tsep = TREESTORE(te->parent); + operation_cb(te, tselem, tsep, newid); + } + } + if ((tselem->flag & TSE_CLOSED)==0) { + outliner_do_id_set_operation(soops, type, &te->subtree, newid, operation_cb); + } + } +} + +/* ------------------------------------------ */ + +static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) +{ + bAction *act = (bAction *)actId; + + if (tselem->type == TSE_ANIM_DATA) { + /* "animation" entries - action is child of this */ + BKE_animdata_set_action(NULL, tselem->id, act); + } + /* TODO: if any other "expander" channels which own actions need to support this menu, + * add: tselem->type = ... + */ + else if (tsep && (tsep->type == TSE_ANIM_DATA)) { + /* "animation" entries case again */ + BKE_animdata_set_action(NULL, tsep->id, act); + } + // TODO: other cases not supported yet +} + +static int outliner_action_set_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + + bAction *act; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + /* get action to use */ + act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action")); + + if (act == NULL) { + BKE_report(op->reports, RPT_ERROR, "No valid Action to add."); + return OPERATOR_CANCELLED; + } + else if (act->idroot == 0) { + /* hopefully in this case (i.e. library of userless actions), the user knows what they're doing... */ + BKE_reportf(op->reports, RPT_WARNING, + "Action '%s' does not specify what datablocks it can be used on. Try setting the 'ID Root Type' setting from the Datablocks Editor for this Action to avoid future problems", + act->id.name+2); + } + + /* perform action if valid channel */ + if (datalevel == TSE_ANIM_DATA) + outliner_do_id_set_operation(soops, datalevel, &soops->tree, (ID*)act, actionset_id_cb); + else if (idlevel == ID_AC) + outliner_do_id_set_operation(soops, idlevel, &soops->tree, (ID*)act, actionset_id_cb); + else + return OPERATOR_CANCELLED; + + /* set notifier that things have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Set action"); + + /* done */ + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_action_set(wmOperatorType *ot) +{ + PropertyRNA *prop; + + /* identifiers */ + ot->name= "Outliner Set Action"; + ot->idname= "OUTLINER_OT_action_set"; + ot->description= "Change the active action used"; + + /* api callbacks */ + ot->invoke= WM_enum_search_invoke; + ot->exec= outliner_action_set_exec; + ot->poll= ED_operator_outliner_active; + + /* flags */ + ot->flag= 0; + + /* props */ + // TODO: this would be nicer as an ID-pointer... + prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", ""); + RNA_def_enum_funcs(prop, RNA_action_itemf); + ot->prop= prop; +} + +/* **************************************** */ + +typedef enum eOutliner_AnimDataOps { + OUTLINER_ANIMOP_INVALID = 0, + + OUTLINER_ANIMOP_SET_ACT, + OUTLINER_ANIMOP_CLEAR_ACT, + + OUTLINER_ANIMOP_REFRESH_DRV, + OUTLINER_ANIMOP_CLEAR_DRV + + //OUTLINER_ANIMOP_COPY_DRIVERS, + //OUTLINER_ANIMOP_PASTE_DRIVERS +} eOutliner_AnimDataOps; + +static EnumPropertyItem prop_animdata_op_types[] = { + {OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""}, + {OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""}, + {OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""}, + //{OUTLINER_ANIMOP_COPY_DRIVERS, "COPY_DRIVERS", 0, "Copy Drivers", ""}, + //{OUTLINER_ANIMOP_PASTE_DRIVERS, "PASTE_DRIVERS", 0, "Paste Drivers", ""}, + {OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + eOutliner_AnimDataOps event; + short updateDeps = 0; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if (datalevel != TSE_ANIM_DATA) + return OPERATOR_CANCELLED; + + /* perform the core operation */ + switch (event) { + case OUTLINER_ANIMOP_SET_ACT: + /* delegate once again... */ + WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL); + break; + + case OUTLINER_ANIMOP_CLEAR_ACT: + /* clear active action - using standard rules */ + outliner_do_data_operation(soops, datalevel, event, &soops->tree, unlinkact_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + + case OUTLINER_ANIMOP_REFRESH_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + //ED_undo_push(C, "Refresh Drivers"); /* no undo needed - shouldn't have any impact? */ + updateDeps = 1; + break; + + case OUTLINER_ANIMOP_CLEAR_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, cleardrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + ED_undo_push(C, "Clear Drivers"); + updateDeps = 1; + break; + + default: // invalid + break; + } + + /* update dependencies */ + if (updateDeps) { + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + + /* rebuild depsgraph for the new deps */ + DAG_scene_sort(bmain, scene); + + /* force an update of depsgraph */ + DAG_ids_flush_update(bmain, 0); + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_animdata_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Animation Data Operation"; + ot->idname= "OUTLINER_OT_animdata_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_animdata_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_animdata_op_types, 0, "Animation Operation", ""); +} + +/* **************************************** */ + static EnumPropertyItem prop_data_op_types[] = { {1, "SELECT", 0, "Select", ""}, {2, "DESELECT", 0, "Deselect", ""}, @@ -3888,7 +4118,12 @@ static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, S else if(datalevel) { if(datalevel==-1) error("Mixed selection"); else { - WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); + if (datalevel == TSE_ANIM_DATA) + WM_operator_name_call(C, "OUTLINER_OT_animdata_operation", WM_OP_INVOKE_REGION_WIN, NULL); + else if (datalevel == TSE_DRIVER_BASE) + /* do nothing... no special ops needed yet */; + else + WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); } } diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index cbb26d79c4b..b2717ab5c44 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -128,6 +128,8 @@ void OUTLINER_OT_object_operation(struct wmOperatorType *ot); void OUTLINER_OT_group_operation(struct wmOperatorType *ot); void OUTLINER_OT_id_operation(struct wmOperatorType *ot); void OUTLINER_OT_data_operation(struct wmOperatorType *ot); +void OUTLINER_OT_animdata_operation(struct wmOperatorType *ot); +void OUTLINER_OT_action_set(struct wmOperatorType *ot); void OUTLINER_OT_show_one_level(struct wmOperatorType *ot); void OUTLINER_OT_show_active(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index 8bd30235931..b79bb000201 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -57,6 +57,8 @@ void outliner_operatortypes(void) WM_operatortype_append(OUTLINER_OT_group_operation); WM_operatortype_append(OUTLINER_OT_id_operation); WM_operatortype_append(OUTLINER_OT_data_operation); + WM_operatortype_append(OUTLINER_OT_animdata_operation); + WM_operatortype_append(OUTLINER_OT_action_set); WM_operatortype_append(OUTLINER_OT_show_one_level); WM_operatortype_append(OUTLINER_OT_show_active); diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 13b186b174b..603be557a3c 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -179,6 +179,13 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ANIMATION: + switch(wmn->data) { + case ND_NLA_ACTCHANGE: + ED_region_tag_redraw(ar); + break; + } + break; } } diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 5664fac149e..a3b3d0ac8c9 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -74,42 +74,7 @@ static int rna_AnimData_action_editable(PointerRNA *ptr) static void rna_AnimData_action_set(PointerRNA *ptr, PointerRNA value) { ID *ownerId = (ID *)ptr->id.data; - AnimData *adt = (AnimData *)ptr->data; - - /* manage usercount for current action */ - if (adt->action) - id_us_min((ID*)adt->action); - - /* assume that AnimData's action can in fact be edited... */ - if ((value.data) && (ownerId)) { - bAction *act = (bAction *)value.data; - - /* action must have same type as owner */ - if (ownerId) { - if (ELEM(act->idroot, 0, GS(ownerId->name))) { - /* can set */ - adt->action = act; - id_us_plus((ID*)adt->action); - } - else { - /* cannot set */ - printf("ERROR: Couldn't set Action '%s' onto ID '%s', as it doesn't have suitably rooted paths for this purpose\n", - act->id.name+2, ownerId->name); - } - } - else { - /* cannot tell if we can set, so let's just be generous... */ - printf("Warning: Set Action '%s' onto AnimData block with an unknown ID-owner. May have attached invalid data\n", - act->id.name+2); - - adt->action = act; - id_us_plus((ID*)adt->action); - } - } - else { - /* just clearing the action... */ - adt->action = NULL; - } + BKE_animdata_set_action(NULL, ownerId, value.data); } /* ****************************** */ diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c index 71bff06a864..3e389022b29 100644 --- a/source/blender/makesrna/intern/rna_nla.c +++ b/source/blender/makesrna/intern/rna_nla.c @@ -424,6 +424,7 @@ static void rna_def_nlastrip(BlenderRNA *brna) RNA_def_property_update(prop, NC_ANIMATION|ND_NLA, NULL); /* this will do? */ /* Action */ + // TODO: this should only be editable if it is not being edited atm... prop= RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "act"); RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Action_id_poll"); -- cgit v1.2.3 From cff7c61ddbecf9b66a4d58d1237ffb100633efaa Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 04:31:53 +0000 Subject: Patch [#23682] Add sort+move to bone group list in panel Thanks Torsten Rupp (rupp) for the patch! This patch adds the abilities to sort the bone group list in the properties panel and to move bone groups up/down in the list (similar like for vertex groups) --- source/blender/editors/armature/armature_intern.h | 2 + source/blender/editors/armature/armature_ops.c | 2 + source/blender/editors/armature/poseobject.c | 165 ++++++++++++++++++++++ 3 files changed, 169 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index 85da7a212c9..f583ba0c903 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -110,6 +110,8 @@ void POSE_OT_select_flip_active(struct wmOperatorType *ot); void POSE_OT_group_add(struct wmOperatorType *ot); void POSE_OT_group_remove(struct wmOperatorType *ot); +void POSE_OT_group_move(struct wmOperatorType *ot); +void POSE_OT_group_sort(struct wmOperatorType *ot); void POSE_OT_group_assign(struct wmOperatorType *ot); void POSE_OT_group_unassign(struct wmOperatorType *ot); void POSE_OT_group_select(struct wmOperatorType *ot); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 16b748737ca..33748ebd0bb 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -126,6 +126,8 @@ void ED_operatortypes_armature(void) WM_operatortype_append(POSE_OT_group_add); WM_operatortype_append(POSE_OT_group_remove); + WM_operatortype_append(POSE_OT_group_move); + WM_operatortype_append(POSE_OT_group_sort); WM_operatortype_append(POSE_OT_group_assign); WM_operatortype_append(POSE_OT_group_unassign); WM_operatortype_append(POSE_OT_group_select); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index fa5fecbd9d0..cfd3f54c5b9 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -1433,6 +1433,171 @@ void POSE_OT_group_unassign (wmOperatorType *ot) ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; } +static int group_move_exec(bContext *C, wmOperator *op) +{ + Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data; + bPose *pose= (ob) ? ob->pose : NULL; + bPoseChannel *pchan; + bActionGroup *grp; + int dir= RNA_enum_get(op->ptr, "direction"); + int grpIndexA, grpIndexB; + + if (ELEM(NULL, ob, pose)) + return OPERATOR_CANCELLED; + if (pose->active_group <= 0) + return OPERATOR_CANCELLED; + + /* get group to move */ + grp= BLI_findlink(&pose->agroups, pose->active_group-1); + if (grp == NULL) + return OPERATOR_CANCELLED; + + /* move bone group */ + grpIndexA = pose->active_group; + if (dir == 1) { /* up */ + void *prev = grp->prev; + + if (prev == NULL) + return OPERATOR_FINISHED; + + BLI_remlink(&pose->agroups, grp); + BLI_insertlinkbefore(&pose->agroups, prev, grp); + + grpIndexB = grpIndexA - 1; + pose->active_group--; + } + else { /* down */ + void *next = grp->next; + + if (next == NULL) + return OPERATOR_FINISHED; + + BLI_remlink(&pose->agroups, grp); + BLI_insertlinkafter(&pose->agroups, next, grp); + + grpIndexB = grpIndexA + 1; + pose->active_group++; + } + + /* fix changed bone group indices in bones (swap grpIndexA with grpIndexB) */ + for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { + if (pchan->agrp_index == grpIndexB) + pchan->agrp_index= grpIndexA; + else if (pchan->agrp_index == grpIndexA) + pchan->agrp_index= grpIndexB; + } + + /* notifiers for updates */ + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + + return OPERATOR_FINISHED; +} + +void POSE_OT_group_move(wmOperatorType *ot) +{ + static EnumPropertyItem group_slot_move[] = { + {1, "UP", 0, "Up", ""}, + {-1, "DOWN", 0, "Down", ""}, + {0, NULL, 0, NULL, NULL} + }; + + /* identifiers */ + ot->name= "Move Bone Group"; + ot->idname= "POSE_OT_group_move"; + ot->description= "Change position of active Bone Group in list of Bone Groups"; + + /* api callbacks */ + ot->exec= group_move_exec; + ot->poll= ED_operator_posemode; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_enum(ot->srna, "direction", group_slot_move, 0, "Direction", "Direction to move, UP or DOWN"); +} + +/* bone group sort element */ +typedef struct tSortActionGroup { + bActionGroup *agrp; + int index; +} tSortActionGroup; + +/* compare bone groups by name */ +static int compare_agroup(const void *sgrp_a_ptr, const void *sgrp_b_ptr) +{ + tSortActionGroup *sgrp_a= (tSortActionGroup *)sgrp_a_ptr; + tSortActionGroup *sgrp_b= (tSortActionGroup *)sgrp_b_ptr; + + return strcmp(sgrp_a->agrp->name, sgrp_b->agrp->name); +} + +static int group_sort_exec(bContext *C, wmOperator *op) +{ + Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data; + bPose *pose= (ob) ? ob->pose : NULL; + bPoseChannel *pchan; + tSortActionGroup *agrp_array; + bActionGroup *agrp; + int agrp_count; + int i; + + if (ELEM(NULL, ob, pose)) + return OPERATOR_CANCELLED; + if (pose->active_group <= 0) + return OPERATOR_CANCELLED; + + /* create temporary array with bone groups and indices */ + agrp_count = BLI_countlist(&pose->agroups); + agrp_array = MEM_mallocN(sizeof(tSortActionGroup) * agrp_count, "sort bone groups"); + for (agrp= pose->agroups.first, i= 0; agrp; agrp= agrp->next, i++) { + BLI_assert(i < agrp_count); + agrp_array[i].agrp = agrp; + agrp_array[i].index = i+1; + } + + /* sort bone groups by name */ + qsort(agrp_array, agrp_count, sizeof(tSortActionGroup), compare_agroup); + + /* create sorted bone group list from sorted array */ + pose->agroups.first= pose->agroups.last= NULL; + for (i= 0; i < agrp_count; i++) { + BLI_addtail(&pose->agroups, agrp_array[i].agrp); + } + + /* fix changed bone group indizes in bones */ + for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { + for (i= 0; i < agrp_count; i++) { + if (pchan->agrp_index == agrp_array[i].index) { + pchan->agrp_index= i+1; + break; + } + } + } + + /* free temp resources */ + MEM_freeN(agrp_array); + + /* notifiers for updates */ + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + + return OPERATOR_FINISHED; +} + +void POSE_OT_group_sort(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Sort Bone Groups"; + ot->idname= "POSE_OT_group_sort"; + ot->description= "Sort Bone Groups by their names in ascending order"; + + /* api callbacks */ + ot->exec= group_sort_exec; + ot->poll= ED_operator_posemode; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + static void pose_group_select(bContext *C, Object *ob, int select) { bPose *pose= ob->pose; -- cgit v1.2.3 From 2791e12e715cfd97012b959319518ac93a4169db Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 05:17:36 +0000 Subject: NLA Strips cannot have their actions changed while the "tweakmode" is on, otherwise things could screw up --- source/blender/makesrna/intern/rna_nla.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c index 3e389022b29..01bfbc0e133 100644 --- a/source/blender/makesrna/intern/rna_nla.c +++ b/source/blender/makesrna/intern/rna_nla.c @@ -222,6 +222,29 @@ static void rna_NlaStrip_blend_out_set(PointerRNA *ptr, float value) data->blendout= value; } +static int rna_NlaStrip_action_editable(PointerRNA *ptr) +{ + NlaStrip *strip = (NlaStrip *)ptr->data; + + /* strip actions shouldn't be editable if NLA tweakmode is on */ + if (ptr->id.data) { + AnimData *adt = BKE_animdata_from_id(ptr->id.data); + + if (adt) { + /* active action is only editable when it is not a tweaking strip */ + if ((adt->flag & ADT_NLA_EDIT_ON) || (adt->actstrip) || (adt->tmpact)) + return 0; + } + } + + /* check for clues that strip probably shouldn't be used... */ + if (strip->flag & NLASTRIP_FLAG_TWEAKUSER) + return 0; + + /* should be ok, though we may still miss some cases */ + return 1; +} + static void rna_NlaStrip_action_start_frame_set(PointerRNA *ptr, float value) { NlaStrip *data= (NlaStrip*)ptr->data; @@ -429,6 +452,7 @@ static void rna_def_nlastrip(BlenderRNA *brna) RNA_def_property_pointer_sdna(prop, NULL, "act"); RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Action_id_poll"); RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_editable_func(prop, "rna_NlaStrip_action_editable"); RNA_def_property_ui_text(prop, "Action", "Action referenced by this strip"); RNA_def_property_update(prop, NC_ANIMATION|ND_NLA, NULL); /* this will do? */ -- cgit v1.2.3 From 242ca1bdce4ea29e0b05e6e1936f491ca0717147 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 05:28:09 +0000 Subject: NLA Drawing - Second attempt at providing options for streamlining the view for transforming strips When the "Include animation data blocks with no NLA data" toggle (action icon) is off, action lines are only shown if they have keyframes. So when this option is off, only NLA blocks that have NLA tracks will be shown, and of those, only those which currently have an active action with keyframes will have their red action lines shown. Combined with the vertical-space tweak when show control curves is turned off, this should be good enough for most cases. --- source/blender/editors/animation/anim_filter.c | 27 +++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index b7264ae9a3e..d5048984e7f 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1097,7 +1097,7 @@ static size_t animfilter_action (bAnimContext *ac, ListBase *anim_data, bDopeShe * - for normal filtering (i.e. for editing), we only need the NLA-tracks but they can be in 'normal' evaluation * order, i.e. first to last. Otherwise, some tools may get screwed up. */ -static size_t animfilter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, ID *owner_id) +static size_t animfilter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *ads, AnimData *adt, int filter_mode, ID *owner_id) { NlaTrack *nlt; NlaTrack *first=NULL, *next=NULL; @@ -1105,16 +1105,21 @@ static size_t animfilter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDo /* if showing channels, include active action */ if (filter_mode & ANIMFILTER_LIST_CHANNELS) { - /* there isn't really anything editable here, so skip if need editable */ - if ((filter_mode & ANIMFILTER_FOREDIT) == 0) { - /* just add the action track now (this MUST appear for drawing) - * - as AnimData may not have an action, we pass a dummy pointer just to get the list elem created, then - * overwrite this with the real value - REVIEW THIS... - */ - ANIMCHANNEL_NEW_CHANNEL_FULL((void *)(&adt->action), ANIMTYPE_NLAACTION, owner_id, - { - ale->data= adt->action ? adt->action : NULL; - }); + /* if NLA action-line filtering is off, don't show unless there are keyframes, + * in order to keep things more compact for doing transforms + */ + if (!(ads->filterflag & ADS_FILTER_NLA_NOACT) || (adt->action)) { + /* there isn't really anything editable here, so skip if need editable */ + if ((filter_mode & ANIMFILTER_FOREDIT) == 0) { + /* just add the action track now (this MUST appear for drawing) + * - as AnimData may not have an action, we pass a dummy pointer just to get the list elem created, then + * overwrite this with the real value - REVIEW THIS... + */ + ANIMCHANNEL_NEW_CHANNEL_FULL((void *)(&adt->action), ANIMTYPE_NLAACTION, owner_id, + { + ale->data= adt->action ? adt->action : NULL; + }); + } } /* first track to include will be the last one if we're filtering by channels */ -- cgit v1.2.3 From ccc56a65707bfac7140450ec339fc8d232a06e82 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 7 Jul 2011 09:56:06 +0000 Subject: Tiny tweak: hierarchy lines in outliner were nearly invisible. Color is blend between backdrop and text color (black), made it blend 0.4 instead of 0.2 --- source/blender/editors/space_outliner/outliner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index a1a6995d1bd..93dc96cf9c0 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -4906,7 +4906,7 @@ static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegio outliner_draw_selection(ar, soops, &soops->tree, &starty); // grey hierarchy lines - UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.2f); + UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; startx= 6; outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); -- cgit v1.2.3 From 4d7449b3363d8154d7cddd7324f8b3355c4cb849 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 7 Jul 2011 11:01:36 +0000 Subject: Fix part of #26811: absolute shape keys should not show influence value in list. --- source/blender/editors/interface/interface_templates.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 32a20e82d2f..25dbb68a258 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -33,6 +33,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_key_types.h" #include "DNA_scene_types.h" #include "DNA_userdef_types.h" @@ -2104,6 +2105,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe } else if(itemptr->type == &RNA_ShapeKey) { Object *ob= (Object*)activeptr->data; + Key *key= (Key*)itemptr->data; split= uiLayoutSplit(sub, 0.75f, 0); @@ -2111,7 +2113,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe uiBlockSetEmboss(block, UI_EMBOSSN); row= uiLayoutRow(split, 1); - if(i == 0) uiItemL(row, "", ICON_NONE); + if(i == 0 || (key->type != KEY_RELATIVE)) uiItemL(row, "", ICON_NONE); else uiItemR(row, itemptr, "value", 0, "", ICON_NONE); if(ob->mode == OB_MODE_EDIT && !((ob->shapeflag & OB_SHAPE_EDIT_MODE) && ob->type == OB_MESH)) -- cgit v1.2.3 From bc9432b9056fc28b668949375b353a47215e3683 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 11:29:36 +0000 Subject: Grease Pencil ActEdit Mode: Filtering Cleanup * Ported filtering code for Grease Pencil frames editing to the newer- style refactored stuff * Decoupled active status of layers from selection status, bringing this into line with everything else again --- source/blender/editors/animation/anim_filter.c | 73 +++++++++++++++++--------- source/blender/editors/include/ED_anim_api.h | 2 +- 2 files changed, 49 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index d5048984e7f..047a7763fd8 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1236,42 +1236,65 @@ static size_t animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, K return items; } +static size_t animdata_filter_gpencil_data (ListBase *anim_data, bGPdata *gpd, int filter_mode) +{ + bGPDlayer *gpl; + size_t items = 0; + + /* loop over layers as the conditions are acceptable */ + for (gpl= gpd->layers.first; gpl; gpl= gpl->next) { + /* only if selected */ + if ( ANIMCHANNEL_SELOK(SEL_GPL(gpl)) ) { + /* only if editable */ + if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) { + /* active... */ + if (!(filter_mode & ANIMFILTER_ACTIVE) || (gpl->flag & GP_LAYER_ACTIVE)) { + /* add to list */ + ANIMCHANNEL_NEW_CHANNEL(gpl, ANIMTYPE_GPLAYER, gpd); + } + } + } + } + + return items; +} + /* Grab all Grase Pencil datablocks in file */ // TODO: should this be amalgamated with the dopesheet filtering code? static size_t animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int filter_mode) { bGPdata *gpd; - bGPDlayer *gpl; size_t items = 0; - /* check if filtering types are appropriate */ - { - /* for now, grab grease pencil datablocks directly from main*/ - for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { - /* only show if gpd is used by something... */ - if (ID_REAL_USERS(gpd) < 1) - continue; + /* for now, grab grease pencil datablocks directly from main */ + // XXX: this is not good... + for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { + ListBase tmp_data = {NULL, NULL}; + size_t tmp_items = 0; + + /* only show if gpd is used by something... */ + if (ID_REAL_USERS(gpd) < 1) + continue; - /* add gpd as channel too (if for drawing, and it has layers) */ - if ((filter_mode & ANIMFILTER_LIST_CHANNELS) && (gpd->layers.first)) { - /* add to list */ + /* add gpencil animation channels */ + BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_GPD(gpd)) + { + tmp_items += animdata_filter_gpencil_data(&tmp_data, gpd, filter_mode); + } + END_ANIMFILTER_SUBCHANNELS; + + /* did we find anything? */ + if (tmp_items) { + /* include data-expand widget first */ + if (filter_mode & ANIMFILTER_LIST_CHANNELS) { + /* add gpd as channel too (if for drawing, and it has layers) */ ANIMCHANNEL_NEW_CHANNEL(gpd, ANIMTYPE_GPDATABLOCK, NULL); } - /* only add layers if they will be visible (if drawing channels) */ - if ( !(filter_mode & ANIMFILTER_LIST_VISIBLE) || (EXPANDED_GPD(gpd)) ) { - /* loop over layers as the conditions are acceptable */ - for (gpl= gpd->layers.first; gpl; gpl= gpl->next) { - /* only if selected */ - if ( ANIMCHANNEL_SELOK(SEL_GPL(gpl)) ) { - /* only if editable */ - if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) { - /* add to list */ - ANIMCHANNEL_NEW_CHANNEL(gpl, ANIMTYPE_GPLAYER, gpd); - } - } - } - } + /* now add the list of collected channels */ + BLI_movelisttolist(anim_data, &tmp_data); + BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL)); + items += tmp_items; } } diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 7726b02d511..513f0bba808 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -274,7 +274,7 @@ typedef enum eAnimFilter_Flags { #define EXPANDED_GPD(gpd) (gpd->flag & GP_DATA_EXPAND) /* Grease Pencil Layer settings */ #define EDITABLE_GPL(gpl) ((gpl->flag & GP_LAYER_LOCKED)==0) -#define SEL_GPL(gpl) ((gpl->flag & GP_LAYER_ACTIVE) || (gpl->flag & GP_LAYER_SELECT)) +#define SEL_GPL(gpl) (gpl->flag & GP_LAYER_SELECT) /* NLA only */ #define SEL_NLT(nlt) (nlt->flag & NLATRACK_SELECTED) -- cgit v1.2.3 From c9d6989098e2defbaea36b767169f521c8a5d62a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 7 Jul 2011 13:59:28 +0000 Subject: Animation Goodie: Cyclic "Extrapolation" can be toggled from the "Set Extrapolation" tool again Added "Make Cyclic" and "Clear Cyclic" options to "Set Extrapolation" tool (found from Channels menu) in Animation Editors. These options simply add or remove (respectively) Cycles FModifiers from the selected F-Curves, making them have cyclic extrapolation with a single click, instead of having to go through the FModifiers UI (or Graph- Editor only "Add FModifier" operator), which should make it easier to do this apparently common chore. --- source/blender/editors/space_action/action_edit.c | 36 ++++++++++++++++++++++- source/blender/editors/space_graph/graph_edit.c | 36 ++++++++++++++++++++++- 2 files changed, 70 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index b0157befe23..70e7b483140 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -920,10 +920,17 @@ void ACTION_OT_sample (wmOperatorType *ot) /* ******************** Set Extrapolation-Type Operator *********************** */ +/* defines for make/clear cyclic extrapolation tools */ +#define MAKE_CYCLIC_EXPO -1 +#define CLEAR_CYCLIC_EXPO -2 + /* defines for set extrapolation-type for selected keyframes tool */ static EnumPropertyItem prop_actkeys_expo_types[] = { {FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", 0, "Constant Extrapolation", ""}, {FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", 0, "Linear Extrapolation", ""}, + + {MAKE_CYCLIC_EXPO, "MAKE_CYCLIC", 0, "Make Cyclic (F-Modifier)", "Add Cycles F-Modifier if one doesn't exist already"}, + {CLEAR_CYCLIC_EXPO, "CLEAR_CYCLIC", 0, "Clear Cyclic (F-Modifier)", "Remove Cycles F-Modifier if not needed anymore"}, {0, NULL, 0, NULL, NULL} }; @@ -941,7 +948,34 @@ static void setexpo_action_keys(bAnimContext *ac, short mode) /* loop through setting mode per F-Curve */ for (ale= anim_data.first; ale; ale= ale->next) { FCurve *fcu= (FCurve *)ale->data; - fcu->extend= mode; + + if (mode >= 0) { + /* just set mode setting */ + fcu->extend= mode; + } + else { + /* shortcuts for managing Cycles F-Modifiers to make it easier to toggle cyclic animation + * without having to go through FModifier UI in Graph Editor to do so + */ + if (mode == MAKE_CYCLIC_EXPO) { + /* only add if one doesn't exist */ + if (list_has_suitable_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_CYCLES, -1) == 0) { + // TODO: add some more preset versions which set different extrapolation options? + add_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_CYCLES); + } + } + else if (mode == CLEAR_CYCLIC_EXPO) { + /* remove all the modifiers fitting this description */ + FModifier *fcm, *fcn=NULL; + + for (fcm = fcu->modifiers.first; fcm; fcm = fcn) { + fcn = fcm->next; + + if (fcm->type == FMODIFIER_TYPE_CYCLES) + remove_fmodifier(&fcu->modifiers, fcm); + } + } + } } /* cleanup */ diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 4abf00f82d3..d88a18ffcbc 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -1269,10 +1269,17 @@ void GRAPH_OT_sample (wmOperatorType *ot) /* ******************** Set Extrapolation-Type Operator *********************** */ +/* defines for make/clear cyclic extrapolation tools */ +#define MAKE_CYCLIC_EXPO -1 +#define CLEAR_CYCLIC_EXPO -2 + /* defines for set extrapolation-type for selected keyframes tool */ static EnumPropertyItem prop_graphkeys_expo_types[] = { {FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", 0, "Constant Extrapolation", ""}, {FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", 0, "Linear Extrapolation", ""}, + + {MAKE_CYCLIC_EXPO, "MAKE_CYCLIC", 0, "Make Cyclic (F-Modifier)", "Add Cycles F-Modifier if one doesn't exist already"}, + {CLEAR_CYCLIC_EXPO, "CLEAR_CYCLIC", 0, "Clear Cyclic (F-Modifier)", "Remove Cycles F-Modifier if not needed anymore"}, {0, NULL, 0, NULL, NULL} }; @@ -1290,7 +1297,34 @@ static void setexpo_graph_keys(bAnimContext *ac, short mode) /* loop through setting mode per F-Curve */ for (ale= anim_data.first; ale; ale= ale->next) { FCurve *fcu= (FCurve *)ale->data; - fcu->extend= mode; + + if (mode >= 0) { + /* just set mode setting */ + fcu->extend= mode; + } + else { + /* shortcuts for managing Cycles F-Modifiers to make it easier to toggle cyclic animation + * without having to go through FModifier UI in Graph Editor to do so + */ + if (mode == MAKE_CYCLIC_EXPO) { + /* only add if one doesn't exist */ + if (list_has_suitable_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_CYCLES, -1) == 0) { + // TODO: add some more preset versions which set different extrapolation options? + add_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_CYCLES); + } + } + else if (mode == CLEAR_CYCLIC_EXPO) { + /* remove all the modifiers fitting this description */ + FModifier *fcm, *fcn=NULL; + + for (fcm = fcu->modifiers.first; fcm; fcm = fcn) { + fcn = fcm->next; + + if (fcm->type == FMODIFIER_TYPE_CYCLES) + remove_fmodifier(&fcu->modifiers, fcm); + } + } + } } /* cleanup */ -- cgit v1.2.3 From 99736f373c12e7ab91f962c738243bddf2d713c6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 7 Jul 2011 16:09:57 +0000 Subject: Allow pose matrix to be set for Benjy Cook's GSOC project. this uses the same function as pose mode snapping. --- source/blender/makesrna/intern/rna_pose.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 949415fbf29..47c8435cc46 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -585,6 +585,25 @@ static void rna_PoseChannel_matrix_basis_set(PointerRNA *ptr, const float *value pchan_apply_mat4(pchan, (float (*)[4])values, FALSE); /* no compat for predictable result */ } +static void rna_PoseChannel_matrix_set(PointerRNA *ptr, const float *values) +{ + bPoseChannel *pchan= (bPoseChannel*)ptr->data; + Object *ob= (Object*)ptr->id.data; + float umat[4][4]= MAT4_UNITY; + float tmat[4][4]; + + /* recalculate pose matrix with only parent transformations, + * bone loc/sca/rot is ignored, scene and frame are not used. */ + where_is_pose_bone(NULL, ob, pchan, 0.0f, FALSE); + + /* find the matrix, need to remove the bone transforms first so this is + * calculated as a matrix to set rather then a difference ontop of whats + * already there. */ + pchan_apply_mat4(pchan, umat, FALSE); + armature_mat_pose_to_bone(pchan, (float (*)[4])values, tmat); + pchan_apply_mat4(pchan, tmat, FALSE); /* no compat for predictable result */ +} + #else static void rna_def_bone_group(BlenderRNA *brna) @@ -830,8 +849,9 @@ static void rna_def_pose_channel(BlenderRNA *brna) prop= RNA_def_property(srna, "matrix", PROP_FLOAT, PROP_MATRIX); RNA_def_property_float_sdna(prop, NULL, "pose_mat"); RNA_def_property_multi_array(prop, 2, matrix_dimsize); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_float_funcs(prop, NULL, "rna_PoseChannel_matrix_set", NULL); RNA_def_property_ui_text(prop, "Pose Matrix", "Final 4x4 matrix after constraints and drivers are applied (object space)"); + RNA_def_property_update(prop, NC_OBJECT|ND_POSE, "rna_Pose_update"); /* Head/Tail Coordinates (in Pose Space) - Automatically calculated... */ prop= RNA_def_property(srna, "head", PROP_FLOAT, PROP_TRANSLATION); -- cgit v1.2.3 From be918954bd71ed801652039c6f4a0c98094bdc77 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 7 Jul 2011 16:56:56 +0000 Subject: Fixed Camera Ortho scale animation import --- source/blender/collada/AnimationImporter.cpp | 29 ++++++++++++++++++++-------- source/blender/collada/AnimationImporter.h | 3 ++- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index a70e3cd8abd..ecd174891ae 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -856,7 +856,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( ((animType & CAMERA_XFOV) != 0) ) + if ( ((animType & CAMERA_XFOV) != 0) || (animType & CAMERA_XMAG) != 0 ) { Camera * camera = (Camera*) ob->data; @@ -875,6 +875,13 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = xfov->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "lens"); } + + else if ((animType & CAMERA_XMAG) != 0 ) + { + const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); + const COLLADAFW::UniqueId& listid = xmag->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "ortho_scale"); + } } } } @@ -932,17 +939,23 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); - const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); - - if (animlist_map.find(xfov_listid) != animlist_map.end()) + if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) + { + const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); + if (animlist_map.find(xfov_listid) != animlist_map.end()) type = type|CAMERA_XFOV; - - + } + else + { + const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); + const COLLADAFW::UniqueId& xmag_listid = xmag ->getAnimationList(); + if (animlist_map.find(xmag_listid) != animlist_map.end()) + type = type|CAMERA_XMAG; + } if ( type != 0) break; } - return type; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 22bff6e493d..138d932cdbf 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -93,7 +93,8 @@ private: LIGHT_COLOR = 2, LIGHT_FOA = 4, LIGHT_FOE = 8, - CAMERA_XFOV = 16 + CAMERA_XFOV = 16, + CAMERA_XMAG = 32 }; public: -- cgit v1.2.3 From 6f5b5ac3c921216306972d24fab1a778c561571a Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 7 Jul 2011 18:40:46 +0000 Subject: Camera clipend animation export --- source/blender/collada/AnimationExporter.cpp | 11 +++++++++-- source/blender/collada/CameraExporter.cpp | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 850f1b334f2..311ed290c45 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -91,7 +91,8 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "lens"))|| - (!strcmp(transformName, "ortho_scale"))) + (!strcmp(transformName, "ortho_scale"))|| + (!strcmp(transformName, "clipend"))) dae_animation(ob ,fcu, transformName,true ); fcu = fcu->next; } @@ -185,8 +186,9 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ } + //maybe a list or a vector of float animations else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend")|| - !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")) + !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")||!strcmp(transformName, "clipend")) { axis_name = ""; } @@ -807,6 +809,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 7; else if (!strcmp(name, "ortho_scale")) tm_type = 8; + else if (!strcmp(name, "clipend")) + tm_type = 9; else tm_type = -1; } @@ -838,6 +842,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 8: tm_name = "xmag"; break; + case 9: + tm_name = "zfar"; + break; default: tm_name = ""; diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index 1089cd03fde..cc9860723fe 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -74,8 +74,8 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) if (cam->type == CAM_PERSP) { COLLADASW::PerspectiveOptic persp(mSW); persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI),"xfov"); - persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,cam_name); - persp.setZFar(cam->clipend); + persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,"aspect_ratio"); + persp.setZFar(cam->clipend, false , "zfar"); persp.setZNear(cam->clipsta); COLLADASW::Camera ccam(mSW, &persp, cam_id, cam_name); addCamera(ccam); @@ -83,8 +83,8 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) else { COLLADASW::OrthographicOptic ortho(mSW); ortho.setXMag(cam->ortho_scale,"xmag"); - ortho.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch)); - ortho.setZFar(cam->clipend); + ortho.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,"aspect_ratio"); + ortho.setZFar(cam->clipend , false , "zfar"); ortho.setZNear(cam->clipsta); COLLADASW::Camera ccam(mSW, &ortho, cam_id, cam_name); addCamera(ccam); -- cgit v1.2.3 From 30d41ac9cbd5459ee27d384b2f84d3e7a12b1a32 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 8 Jul 2011 03:31:40 +0000 Subject: NLA - Adding new actionclip strips no longer appends "Act: " to the start of the names. It should be clear enough what they are without this. --- source/blender/blenkernel/intern/nla.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index c02b5dda9ce..8391e9f6ab1 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1242,7 +1242,7 @@ void BKE_nlastrip_validate_name (AnimData *adt, NlaStrip *strip) if (strip->name[0]==0) { switch (strip->type) { case NLASTRIP_TYPE_CLIP: /* act-clip */ - sprintf(strip->name, "Act: %s", (strip->act)?(strip->act->id.name+2):("")); + sprintf(strip->name, "%s", (strip->act)?(strip->act->id.name+2):("")); break; case NLASTRIP_TYPE_TRANSITION: /* transition */ sprintf(strip->name, "Transition"); -- cgit v1.2.3 From 05d6b555e8d4f5da380bc7a13e1aa863581d36e5 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 8 Jul 2011 10:25:26 +0000 Subject: Limit Distance contraint can now use Head/Tail setting for bone targets too --- source/blender/makesrna/intern/rna_constraint.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 4e178e77fd9..0f8a72d0c4a 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -1763,6 +1763,12 @@ static void rna_def_constraint_distance_limit(BlenderRNA *brna) srna= RNA_def_struct(brna, "LimitDistanceConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Limit Distance Constraint", "Limits the distance from target object"); + + prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); + RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1"); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + RNA_def_struct_sdna_from(srna, "bDistLimitConstraint", "data"); prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); -- cgit v1.2.3 From aa7b843b1c34472ab073fbe9dcc6c1903440d28f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 11:43:35 +0000 Subject: Fix #27902: autokey bones with individual origins transform not working. --- source/blender/editors/transform/transform_conversions.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index d6095184a69..de8eda78d63 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4995,6 +4995,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t) /* automatic inserting of keys and unkeyed tagging - only if transform wasn't cancelled (or TFM_DUMMY) */ if (!cancelled && (t->mode != TFM_DUMMY)) { + /* set BONE_TRANSFORM flags, they get changed by manipulator draw */ + count_set_pose_transflags(&t->mode, t->around, ob); autokeyframe_pose_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); } -- cgit v1.2.3 From 579efb097d7fba1215de39177aaedbfa0f0e3f33 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 8 Jul 2011 11:57:25 +0000 Subject: Deleting Grease Pencil layers from Action-Editor works again --- .../blender/editors/animation/anim_channels_edit.c | 39 ++++++++++++++-------- .../blender/editors/gpencil/editaction_gpencil.c | 39 ---------------------- 2 files changed, 26 insertions(+), 52 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index ff6bd3547ce..864bf8e55de 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1171,28 +1171,41 @@ static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op)) BLI_freelistN(&anim_data); } - /* now do F-Curves */ - if (ac.datatype != ANIMCONT_GPENCIL) { - /* filter data */ - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); - ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - - /* delete selected F-Curves */ - for (ale= anim_data.first; ale; ale= ale->next) { - /* only F-Curves, and only if we can identify its parent */ - if (ale->type == ANIMTYPE_FCURVE) { + /* filter data */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* delete selected data channels */ + for (ale= anim_data.first; ale; ale= ale->next) { + switch (ale->type) { + case ANIMTYPE_FCURVE: + { + /* F-Curves if we can identify its parent */ AnimData *adt= ale->adt; FCurve *fcu= (FCurve *)ale->data; /* try to free F-Curve */ ANIM_fcurve_delete_from_animdata(&ac, adt, fcu); } + break; + + case ANIMTYPE_GPLAYER: + { + /* Grease Pencil layer */ + bGPdata *gpd= (bGPdata *)ale->id; + bGPDlayer *gpl= (bGPDlayer *)ale->data; + + /* try to delete the layer's data and the layer itself */ + free_gpencil_frames(gpl); + BLI_freelinkN(&gpd->layers, gpl); + } + break; } - - /* cleanup */ - BLI_freelistN(&anim_data); } + /* cleanup */ + BLI_freelistN(&anim_data); + /* send notifier that things have changed */ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL); diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c index 34cddfbc463..518a90b2026 100644 --- a/source/blender/editors/gpencil/editaction_gpencil.c +++ b/source/blender/editors/gpencil/editaction_gpencil.c @@ -260,45 +260,6 @@ void deselect_gpencil_layers (void *data, short mode) /* ***************************************** */ /* Frame Editing Tools */ -#if 0 // XXX disabled until grease pencil code stabilises again -/* Delete selected grease-pencil layers */ -void delete_gpencil_layers (void) -{ - ListBase act_data = {NULL, NULL}; - bActListElem *ale, *next; - void *data; - short datatype; - int filter; - - /* determine what type of data we are operating on */ - data = get_action_context(&datatype); - if (data == NULL) return; - if (datatype != ACTCONT_GPENCIL) return; - - /* filter data */ - filter= (ACTFILTER_VISIBLE | ACTFILTER_FOREDIT | ACTFILTER_CHANNELS | ACTFILTER_SEL); - actdata_filter(&act_data, filter, data, datatype); - - /* clean up grease-pencil layers */ - for (ale= act_data.first; ale; ale= next) { - bGPdata *gpd= (bGPdata *)ale->owner; - bGPDlayer *gpl= (bGPDlayer *)ale->data; - next= ale->next; - - /* free layer and its data */ - if (SEL_GPL(gpl)) { - free_gpencil_frames(gpl); - BLI_freelinkN(&gpd->layers, gpl); - } - - /* free temp memory */ - BLI_freelinkN(&act_data, ale); - } - - BIF_undo_push("Delete GPencil Layers"); -} -#endif // XXX disabled until Grease Pencil code stabilises again... - /* Delete selected frames */ void delete_gplayer_frames (bGPDlayer *gpl) { -- cgit v1.2.3 From 668323d7017e73e7171ee691d8d37ebfe79b6ac0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 12:22:48 +0000 Subject: Fix #27900: file browser filter, sort, .. parameters were not saved. This is useful if you have a screen setup with a file browser editor. --- source/blender/blenloader/intern/readfile.c | 3 +-- source/blender/blenloader/intern/writefile.c | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2637e114fbc..2402106306e 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4836,7 +4836,6 @@ static void lib_link_screen(FileData *fd, Main *main) else if(sl->spacetype==SPACE_FILE) { SpaceFile *sfile= (SpaceFile *)sl; sfile->files= NULL; - sfile->params= NULL; sfile->op= NULL; sfile->layout= NULL; sfile->folders_prev= NULL; @@ -5449,7 +5448,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc) sfile->files= NULL; sfile->layout= NULL; sfile->op= NULL; - sfile->params= NULL; + sfile->params= newdataadr(fd, sfile->params); } } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index d5192eaf09c..ba4395ace9c 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2103,7 +2103,11 @@ static void write_screens(WriteData *wd, ListBase *scrbase) writestruct(wd, DATA, "SpaceButs", 1, sl); } else if(sl->spacetype==SPACE_FILE) { + SpaceFile *sfile= (SpaceFile *)sl; + writestruct(wd, DATA, "SpaceFile", 1, sl); + if(sfile->params) + writestruct(wd, DATA, "FileSelectParams", 1, sfile->params); } else if(sl->spacetype==SPACE_SEQ) { writestruct(wd, DATA, "SpaceSeq", 1, sl); -- cgit v1.2.3 From 5b592f01da5bf5b3a5925b7508c83d8b81ea1ff3 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 8 Jul 2011 12:48:43 +0000 Subject: Constraints RNA - More Head/Tail stuff Added for Damped Track and Locked Track constraints --- source/blender/makesrna/intern/rna_constraint.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 0f8a72d0c4a..91e22b419ff 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -1026,6 +1026,12 @@ static void rna_def_constraint_locked_track(BlenderRNA *brna) srna= RNA_def_struct(brna, "LockedTrackConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Locked Track Constraint", "Points toward the target along the track axis, while locking the other axis"); + + prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); + RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1"); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + RNA_def_struct_sdna_from(srna, "bLockTrackConstraint", "data"); prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); @@ -1370,7 +1376,7 @@ static void rna_def_constraint_clamp_to(BlenderRNA *brna) RNA_def_struct_sdna_from(srna, "bClampToConstraint", "data"); prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "tar"); // TODO: curve only for set function! + RNA_def_property_pointer_sdna(prop, NULL, "tar"); RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Curve_object_poll"); RNA_def_property_ui_text(prop, "Target", "Target Object"); RNA_def_property_flag(prop, PROP_EDITABLE); @@ -1866,6 +1872,12 @@ static void rna_def_constraint_damped_track(BlenderRNA *brna) srna= RNA_def_struct(brna, "DampedTrackConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Damped Track Constraint", "Points toward target by taking the shortest rotation path"); + + prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); + RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1"); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + RNA_def_struct_sdna_from(srna, "bDampTrackConstraint", "data"); prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); -- cgit v1.2.3 From a5906de7c4f1bd188030ee4b8d9822c7c31fc2ea Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 13:22:58 +0000 Subject: Fix #26962: softbody collision doesn't respect subsurf+displace modifiers. Softbody was still using a flag to determine if it should use the final or deform derivedmesh, but this wans't exposed in the UI. Others systems use the collision modifier, now softbody uses it also to get vertices and faces, but with own collision code. --- source/blender/blenkernel/intern/softbody.c | 82 +++++++++-------------- source/blender/makesdna/DNA_object_force.h | 2 +- source/blender/makesrna/intern/rna_object_force.c | 7 -- 3 files changed, 31 insertions(+), 60 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index ff238678eeb..2960d8a41e5 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -75,6 +75,7 @@ variables on the UI for now #include "BKE_curve.h" #include "BKE_effect.h" #include "BKE_global.h" +#include "BKE_modifier.h" #include "BKE_softbody.h" #include "BKE_DerivedMesh.h" #include "BKE_pointcache.h" @@ -289,21 +290,24 @@ typedef struct ccd_Mesh { -static ccd_Mesh *ccd_mesh_make(Object *ob, DerivedMesh *dm) +static ccd_Mesh *ccd_mesh_make(Object *ob) { + CollisionModifierData *cmd; ccd_Mesh *pccd_M = NULL; ccdf_minmax *mima =NULL; MFace *mface=NULL; float v[3],hull; int i; + cmd =(CollisionModifierData *)modifiers_findByType(ob, eModifierType_Collision); + /* first some paranoia checks */ - if (!dm) return NULL; - if (!dm->getNumVerts(dm) || !dm->getNumFaces(dm)) return NULL; + if (!cmd) return NULL; + if (!cmd->numverts || !cmd->numfaces) return NULL; pccd_M = MEM_mallocN(sizeof(ccd_Mesh),"ccd_Mesh"); - pccd_M->totvert = dm->getNumVerts(dm); - pccd_M->totface = dm->getNumFaces(dm); + pccd_M->totvert = cmd->numverts; + pccd_M->totface = cmd->numfaces; pccd_M->savety = CCD_SAVETY; pccd_M->bbmin[0]=pccd_M->bbmin[1]=pccd_M->bbmin[2]=1e30f; pccd_M->bbmax[0]=pccd_M->bbmax[1]=pccd_M->bbmax[2]=-1e30f; @@ -314,12 +318,10 @@ static ccd_Mesh *ccd_mesh_make(Object *ob, DerivedMesh *dm) hull = MAX2(ob->pd->pdef_sbift,ob->pd->pdef_sboft); /* alloc and copy verts*/ - pccd_M->mvert = dm->dupVertArray(dm); - /* ah yeah, put the verices to global coords once */ - /* and determine the ortho BB on the fly */ + pccd_M->mvert = MEM_dupallocN(cmd->xnew); + /* note that xnew coords are already in global space, */ + /* determine the ortho BB */ for(i=0; i < pccd_M->totvert; i++){ - mul_m4_v3(ob->obmat, pccd_M->mvert[i].co); - /* evaluate limits */ VECCOPY(v,pccd_M->mvert[i].co); pccd_M->bbmin[0] = MIN2(pccd_M->bbmin[0],v[0]-hull); @@ -332,7 +334,7 @@ static ccd_Mesh *ccd_mesh_make(Object *ob, DerivedMesh *dm) } /* alloc and copy faces*/ - pccd_M->mface = dm->dupFaceArray(dm); + pccd_M->mface = MEM_dupallocN(cmd->mfaces); /* OBBs for idea1 */ pccd_M->mima = MEM_mallocN(sizeof(ccdf_minmax)*pccd_M->totface,"ccd_Mesh_Faces_mima"); @@ -386,19 +388,22 @@ static ccd_Mesh *ccd_mesh_make(Object *ob, DerivedMesh *dm) } return pccd_M; } -static void ccd_mesh_update(Object *ob,ccd_Mesh *pccd_M, DerivedMesh *dm) +static void ccd_mesh_update(Object *ob,ccd_Mesh *pccd_M) { - ccdf_minmax *mima =NULL; + CollisionModifierData *cmd; + ccdf_minmax *mima =NULL; MFace *mface=NULL; float v[3],hull; int i; + cmd =(CollisionModifierData *)modifiers_findByType(ob, eModifierType_Collision); + /* first some paranoia checks */ - if (!dm) return ; - if (!dm->getNumVerts(dm) || !dm->getNumFaces(dm)) return ; + if (!cmd) return ; + if (!cmd->numverts || !cmd->numfaces) return ; - if ((pccd_M->totvert != dm->getNumVerts(dm)) || - (pccd_M->totface != dm->getNumFaces(dm))) return; + if ((pccd_M->totvert != cmd->numverts) || + (pccd_M->totface != cmd->numfaces)) return; pccd_M->bbmin[0]=pccd_M->bbmin[1]=pccd_M->bbmin[2]=1e30f; pccd_M->bbmax[0]=pccd_M->bbmax[1]=pccd_M->bbmax[2]=-1e30f; @@ -411,12 +416,10 @@ static void ccd_mesh_update(Object *ob,ccd_Mesh *pccd_M, DerivedMesh *dm) if(pccd_M->mprevvert) MEM_freeN(pccd_M->mprevvert); pccd_M->mprevvert = pccd_M->mvert; /* alloc and copy verts*/ - pccd_M->mvert = dm->dupVertArray(dm); - /* ah yeah, put the verices to global coords once */ - /* and determine the ortho BB on the fly */ + pccd_M->mvert = MEM_dupallocN(cmd->xnew); + /* note that xnew coords are already in global space, */ + /* determine the ortho BB */ for(i=0; i < pccd_M->totvert; i++){ - mul_m4_v3(ob->obmat, pccd_M->mvert[i].co); - /* evaluate limits */ VECCOPY(v,pccd_M->mvert[i].co); pccd_M->bbmin[0] = MIN2(pccd_M->bbmin[0],v[0]-hull); @@ -555,21 +558,8 @@ static void ccd_build_deflector_hash(Scene *scene, Object *vertexowner, GHash *h /*+++ only with deflecting set */ if(ob->pd && ob->pd->deflect && BLI_ghash_lookup(hash, ob) == NULL) { - DerivedMesh *dm= NULL; - - if(ob->softflag & OB_SB_COLLFINAL) /* so maybe someone wants overkill to collide with subsurfed */ - dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); - else - dm = mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH); - - if(dm){ - ccd_Mesh *ccdmesh = ccd_mesh_make(ob, dm); - BLI_ghash_insert(hash, ob, ccdmesh); - - /* we did copy & modify all we need so give 'em away again */ - dm->release(dm); - - } + ccd_Mesh *ccdmesh = ccd_mesh_make(ob); + BLI_ghash_insert(hash, ob, ccdmesh); }/*--- only with deflecting set */ }/* mesh && layer*/ @@ -595,21 +585,9 @@ static void ccd_update_deflector_hash(Scene *scene, Object *vertexowner, GHash * /*+++ only with deflecting set */ if(ob->pd && ob->pd->deflect) { - DerivedMesh *dm= NULL; - - if(ob->softflag & OB_SB_COLLFINAL) { /* so maybe someone wants overkill to collide with subsurfed */ - dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); - } else { - dm = mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH); - } - if(dm){ - ccd_Mesh *ccdmesh = BLI_ghash_lookup(hash,ob); - if (ccdmesh) - ccd_mesh_update(ob,ccdmesh,dm); - - /* we did copy & modify all we need so give 'em away again */ - dm->release(dm); - } + ccd_Mesh *ccdmesh = BLI_ghash_lookup(hash,ob); + if (ccdmesh) + ccd_mesh_update(ob,ccdmesh); }/*--- only with deflecting set */ }/* mesh && layer*/ diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 37568a22f54..fc8ce1b5820 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -420,7 +420,7 @@ typedef struct SoftBody { #define OB_SB_SELF 512 #define OB_SB_FACECOLL 1024 #define OB_SB_EDGECOLL 2048 -#define OB_SB_COLLFINAL 4096 +#define OB_SB_COLLFINAL 4096 /* deprecated */ #define OB_SB_BIG_UI 8192 #define OB_SB_AERO_ANGLE 16384 diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 5d3c29b736b..ca679239dd3 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -910,13 +910,6 @@ static void rna_def_collision(BlenderRNA *brna) RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Damping", "Amount of damping during collision"); RNA_def_property_update(prop, 0, "rna_CollisionSettings_update"); - - /* Does this belong here? - prop= RNA_def_property(srna, "collision_stack", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "softflag", OB_SB_COLLFINAL); - RNA_def_property_ui_text(prop, "Collision from Stack", "Pick collision object from modifier stack (softbody only)"); - RNA_def_property_update(prop, 0, "rna_CollisionSettings_update"); - */ prop= RNA_def_property(srna, "absorption", PROP_FLOAT, PROP_FACTOR); RNA_def_property_range(prop, 0.0f, 1.0f); -- cgit v1.2.3 From a6bb0f93ad471a993e2d82b3b50030d1381bdcf9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 15:58:00 +0000 Subject: Fix #27897: mesh with negative scale disappears while sculpting, clipping planes were wrong in that case. --- source/blender/editors/space_view3d/view3d_view.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index aadb355f743..eeaf87757ce 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -468,8 +468,9 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot) void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, rcti *rect) { + float modelview[4][4]; double xs, ys, p[3]; - short val; + int val, flip_sign, a; /* near zero floating point values can give issues with gluUnProject in side view on some implementations */ @@ -493,11 +494,21 @@ void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, rc VECCOPY(bb->vec[4+val], p); } + /* verify if we have negative scale. doing the transform before cross + product flips the sign of the vector compared to doing cross product + before transform then, so we correct for that. */ + for(a=0; a<16; a++) + ((float*)modelview)[a] = mats->modelview[a]; + flip_sign = is_negative_m4(modelview); + /* then plane equations */ for(val=0; val<4; val++) { normal_tri_v3(planes[val], bb->vec[val], bb->vec[val==3?0:val+1], bb->vec[val+4]); + if(flip_sign) + negate_v3(planes[val]); + planes[val][3]= - planes[val][0]*bb->vec[val][0] - planes[val][1]*bb->vec[val][1] - planes[val][2]*bb->vec[val][2]; -- cgit v1.2.3 From abdf420a6dbb4dbccba0d0d6b8ca2d7370681f4f Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Fri, 8 Jul 2011 19:58:02 +0000 Subject: == GPU Buffers == This patch attempts to clean up and document the GPU buffers code. There are a few bug fixes as well. Patch reviewed here: http://codereview.appspot.com/4631052/ Summary: * Bugfix: make GPU_buffer_copy_normal convert from shorts to floats correctly, also fixed the use of cached face normal CustomData. * Bugfix: changed the `mat_nr' field of GPUBufferMaterial from char to short. * Changed color buffer setup to not alloc a temporary copy of color data, just passes the MCol data in directly. * Changed the GPU buffer pool code to make clearer what operates specifically on the global pool. * Lots of refactoring for GPU_drawobject_new; should operate mostly the same (except got rid of one unecessary allocation), just split into more functions and without macros now. * Converted some #defines into enumerations. * Made some stuff private, pulled out of header file. * Deleted unused function GPU_buffer_pool_free_unused(). * Removed GPU_interleaved_setup and related #defines. (I think this was used for editmode VBOs, but those were disabled.) * Added lots of comments. * Added a few comments in the code signed `--nicholas' to note places where I am unsure about design or usage, would be good to address these better. * Code formatting changed to be more consistent with the rest of Blender. * Renamed some fields and variables to be more consistent with Blender's naming conventions. * Renamed some fields and variables to use more descriptive names, e.g. renamed `redir' to `mat_orig_to_new'. * Removed print outs with DEBUG_VBO -- don't feel too strongly about this one, just not used elsewhere in Blender, could be easily added back if others disagree though. * Moved the PBVH drawing code down to the bottom of the file, before was sitting in the middle of the other VBO code --- source/blender/blenkernel/intern/cdderivedmesh.c | 43 +- source/blender/gpu/GPU_buffers.h | 141 +- source/blender/gpu/intern/gpu_buffers.c | 2535 ++++++++++---------- source/blender/windowmanager/intern/wm_init_exit.c | 2 +- 4 files changed, 1350 insertions(+), 1371 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 72ee9b55800..3abfa05e1fd 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -284,8 +284,10 @@ static void cdDM_drawVerts(DerivedMesh *dm) else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */ GPU_vertex_setup(dm); if( !GPU_buffer_legacy(dm) ) { - if(dm->drawObject->nelements) glDrawArrays(GL_POINTS,0, dm->drawObject->nelements); - else glDrawArrays(GL_POINTS,0, dm->drawObject->nlooseverts); + if(dm->drawObject->tot_triangle_point) + glDrawArrays(GL_POINTS,0, dm->drawObject->tot_triangle_point); + else + glDrawArrays(GL_POINTS,0, dm->drawObject->tot_loose_point); } GPU_buffer_unbind(); } @@ -547,9 +549,10 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, GPU_normal_setup( dm ); if( !GPU_buffer_legacy(dm) ) { glShadeModel(GL_SMOOTH); - for( a = 0; a < dm->drawObject->nmaterials; a++ ) { + for( a = 0; a < dm->drawObject->totmaterial; a++ ) { if( setMaterial(dm->drawObject->materials[a].mat_nr+1, NULL) ) - glDrawArrays(GL_TRIANGLES, dm->drawObject->materials[a].start, dm->drawObject->materials[a].end-dm->drawObject->materials[a].start); + glDrawArrays(GL_TRIANGLES, dm->drawObject->materials[a].start, + dm->drawObject->materials[a].totpoint); } } GPU_buffer_unbind( ); @@ -629,13 +632,13 @@ static void cdDM_drawFacesColored(DerivedMesh *dm, int useTwoSided, unsigned cha GPU_color_setup(dm); if( !GPU_buffer_legacy(dm) ) { glShadeModel(GL_SMOOTH); - glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->nelements); + glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->tot_triangle_point); if( useTwoSided ) { GPU_color4_upload(dm,cp2); GPU_color_setup(dm); glCullFace(GL_FRONT); - glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->nelements); + glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->tot_triangle_point); glCullFace(GL_BACK); } } @@ -787,8 +790,8 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, glShadeModel( GL_SMOOTH ); lastFlag = 0; - for(i = 0; i < dm->drawObject->nelements/3; i++) { - int actualFace = dm->drawObject->faceRemap[i]; + for(i = 0; i < dm->drawObject->tot_triangle_point/3; i++) { + int actualFace = dm->drawObject->triangle_to_mface[i]; int flag = 1; if(drawParams) { @@ -819,13 +822,13 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, startFace = i; } } - if( startFace < dm->drawObject->nelements/3 ) { + if( startFace < dm->drawObject->tot_triangle_point/3 ) { if( lastFlag != 0 ) { /* if the flag is 0 it means the face is hidden or invisible */ if (lastFlag==1 && col) GPU_color_switch(1); else GPU_color_switch(0); - glDrawArrays(GL_TRIANGLES,startFace*3,dm->drawObject->nelements-startFace*3); + glDrawArrays(GL_TRIANGLES, startFace*3, dm->drawObject->tot_triangle_point - startFace*3); } } } @@ -935,7 +938,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us if( useColors && mc ) GPU_color_setup(dm); if( !GPU_buffer_legacy(dm) ) { - int tottri = dm->drawObject->nelements/3; + int tottri = dm->drawObject->tot_triangle_point/3; glShadeModel(GL_SMOOTH); if(tottri == 0) { @@ -947,17 +950,17 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us } else { /* we need to check if the next material changes */ - int next_actualFace= dm->drawObject->faceRemap[0]; + int next_actualFace= dm->drawObject->triangle_to_mface[0]; for( i = 0; i < tottri; i++ ) { - //int actualFace = dm->drawObject->faceRemap[i]; + //int actualFace = dm->drawObject->triangle_to_mface[i]; int actualFace = next_actualFace; MFace *mface= mf + actualFace; int drawSmooth= (mface->flag & ME_SMOOTH); int draw = 1; if(i != tottri-1) - next_actualFace= dm->drawObject->faceRemap[i+1]; + next_actualFace= dm->drawObject->triangle_to_mface[i+1]; orig= (index==NULL) ? actualFace : index[actualFace]; @@ -1129,9 +1132,9 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo GPU_normal_setup(dm); if( !GPU_buffer_legacy(dm) ) { - for( i = 0; i < dm->drawObject->nelements/3; i++ ) { + for( i = 0; i < dm->drawObject->tot_triangle_point/3; i++ ) { - a = dm->drawObject->faceRemap[i]; + a = dm->drawObject->triangle_to_mface[i]; mface = mf + a; new_matnr = mface->mat_nr + 1; @@ -1153,7 +1156,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo if( numdata != 0 ) { - GPU_buffer_free(buffer, NULL); + GPU_buffer_free(buffer); buffer = NULL; } @@ -1193,7 +1196,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo } if( numdata != 0 ) { elementsize = GPU_attrib_element_size( datatypes, numdata ); - buffer = GPU_buffer_alloc( elementsize*dm->drawObject->nelements, NULL ); + buffer = GPU_buffer_alloc( elementsize*dm->drawObject->tot_triangle_point); if( buffer == NULL ) { GPU_buffer_unbind(); dm->drawObject->legacy = 1; @@ -1202,7 +1205,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo varray = GPU_buffer_lock_stream(buffer); if( varray == NULL ) { GPU_buffer_unbind(); - GPU_buffer_free(buffer, NULL); + GPU_buffer_free(buffer); dm->drawObject->legacy = 1; return; } @@ -1341,7 +1344,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo } GPU_buffer_unbind(); } - GPU_buffer_free( buffer, NULL ); + GPU_buffer_free(buffer); } glShadeModel(GL_FLAT); diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h index 7ce166d92bd..6cee9e95cf6 100644 --- a/source/blender/gpu/GPU_buffers.h +++ b/source/blender/gpu/GPU_buffers.h @@ -37,8 +37,6 @@ #ifndef __GPU_BUFFERS_H__ #define __GPU_BUFFERS_H__ -#define MAX_FREE_GPU_BUFFERS 8 - #ifdef _DEBUG /*#define DEBUG_VBO(X) printf(X)*/ #define DEBUG_VBO(X) @@ -46,112 +44,92 @@ #define DEBUG_VBO(X) #endif -#ifdef _DEBUG -#define ERROR_VBO(X) printf(X) -#else -#define ERROR_VBO(X) -#endif - struct DerivedMesh; struct DMGridData; struct GHash; struct DMGridData; +struct GPUVertPointLink; -/* V - vertex, N - normal, T - uv, C - color - F - float, UB - unsigned byte */ -#define GPU_BUFFER_INTER_V3F 1 -#define GPU_BUFFER_INTER_N3F 2 -#define GPU_BUFFER_INTER_T2F 3 -#define GPU_BUFFER_INTER_C3UB 4 -#define GPU_BUFFER_INTER_C4UB 5 -#define GPU_BUFFER_INTER_END -1 - -typedef struct GPUBuffer -{ +typedef struct GPUBuffer { int size; /* in bytes */ void *pointer; /* used with vertex arrays */ unsigned int id; /* used with vertex buffer objects */ } GPUBuffer; -/* stores deleted buffers so that new buffers wouldn't have to -be recreated that often. */ -typedef struct GPUBufferPool -{ - int size; /* number of allocated buffers stored */ - int maxsize; /* size of the array */ - GPUBuffer **buffers; -} GPUBufferPool; - -typedef struct GPUBufferMaterial -{ - int start; /* at which vertex in the buffer the material starts */ - int end; /* at which vertex it ends */ - char mat_nr; -} GPUBufferMaterial; +typedef struct GPUBufferMaterial { + /* range of points used for this material */ + int start; + int totpoint; -typedef struct IndexLink { - int element; - struct IndexLink *next; -} IndexLink; + /* original material index */ + short mat_nr; +} GPUBufferMaterial; -typedef struct GPUDrawObject -{ - GPUBuffer *vertices; +/* meshes are split up by material since changing materials requires + GL state changes that can't occur in the middle of drawing an + array. + + some simplifying assumptions are made: + * all quads are treated as two triangles. + * no vertex sharing is used; each triangle gets its own copy of the + vertices it uses (this makes it easy to deal with a vertex used + by faces with different properties, such as smooth/solid shading, + different MCols, etc.) + + to avoid confusion between the original MVert vertices and the + arrays of OpenGL vertices, the latter are referred to here and in + the source as `points'. similarly, the OpenGL triangles generated + for MFaces are referred to as triangles rather than faces. + */ +typedef struct GPUDrawObject { + GPUBuffer *points; GPUBuffer *normals; GPUBuffer *uv; GPUBuffer *colors; GPUBuffer *edges; GPUBuffer *uvedges; - int *faceRemap; /* at what index was the face originally in DerivedMesh */ - IndexLink *indices; /* given an index, find all elements using it */ - IndexLink *indexMem; /* for faster memory allocation/freeing */ - int indexMemUsage; /* how many are already allocated */ + /* for each triangle, the original MFace index */ + int *triangle_to_mface; + + /* for each original vertex, the list of related points */ + struct GPUVertPointLink *vert_points; + /* storage for the vert_points lists */ + struct GPUVertPointLink *vert_points_mem; + int vert_points_usage; + int colType; GPUBufferMaterial *materials; - - int nmaterials; - int nelements; /* (number of faces) * 3 */ - int nlooseverts; - int nedges; - int nindices; - int legacy; /* if there was a failure allocating some buffer, use old rendering code */ - + int totmaterial; + + int tot_triangle_point; + int tot_loose_point; + + /* caches of the original DerivedMesh values */ + int totvert; + int totedge; + + /* if there was a failure allocating some buffer, use old + rendering code */ + int legacy; } GPUDrawObject; /* used for GLSL materials */ -typedef struct GPUAttrib -{ +typedef struct GPUAttrib { int index; int size; int type; } GPUAttrib; -GPUBufferPool *GPU_buffer_pool_new(void); -void GPU_buffer_pool_free( GPUBufferPool *pool ); -void GPU_buffer_pool_free_unused( GPUBufferPool *pool ); +void GPU_global_buffer_pool_free(void); -GPUBuffer *GPU_buffer_alloc( int size, GPUBufferPool *pool ); -void GPU_buffer_free( GPUBuffer *buffer, GPUBufferPool *pool ); +GPUBuffer *GPU_buffer_alloc(int size); +void GPU_buffer_free(GPUBuffer *buffer); GPUDrawObject *GPU_drawobject_new( struct DerivedMesh *dm ); void GPU_drawobject_free( struct DerivedMesh *dm ); -/* Buffers for non-DerivedMesh drawing */ -void *GPU_build_mesh_buffers(struct GHash *map, struct MVert *mvert, - struct MFace *mface, int *face_indices, - int totface, int *vert_indices, int uniq_verts, - int totvert); -void GPU_update_mesh_buffers(void *buffers, struct MVert *mvert, - int *vert_indices, int totvert); -void *GPU_build_grid_buffers(struct DMGridData **grids, - int *grid_indices, int totgrid, int gridsize); -void GPU_update_grid_buffers(void *buffers_v, struct DMGridData **grids, - int *grid_indices, int totgrid, int gridsize, int smooth); -void GPU_draw_buffers(void *buffers); -void GPU_free_buffers(void *buffers); - /* called before drawing */ void GPU_vertex_setup( struct DerivedMesh *dm ); void GPU_normal_setup( struct DerivedMesh *dm ); @@ -175,6 +153,7 @@ void GPU_color4_upload( struct DerivedMesh *dm, unsigned char *data ); /* switch color rendering on=1/off=0 */ void GPU_color_switch( int mode ); +/* used for drawing edges */ void GPU_buffer_draw_elements( GPUBuffer *elements, unsigned int mode, int start, int count ); /* called after drawing */ @@ -183,4 +162,18 @@ void GPU_buffer_unbind(void); /* used to check whether to use the old (without buffers) code */ int GPU_buffer_legacy( struct DerivedMesh *dm ); +/* Buffers for non-DerivedMesh drawing */ +void *GPU_build_mesh_buffers(struct GHash *map, struct MVert *mvert, + struct MFace *mface, int *face_indices, + int totface, int *vert_indices, int uniq_verts, + int totvert); +void GPU_update_mesh_buffers(void *buffers, struct MVert *mvert, + int *vert_indices, int totvert); +void *GPU_build_grid_buffers(struct DMGridData **grids, + int *grid_indices, int totgrid, int gridsize); +void GPU_update_grid_buffers(void *buffers_v, struct DMGridData **grids, + int *grid_indices, int totgrid, int gridsize, int smooth); +void GPU_draw_buffers(void *buffers); +void GPU_free_buffers(void *buffers); + #endif diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 3715dbe192c..4d4561e66db 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -56,11 +56,13 @@ #include "GPU_buffers.h" -#define GPU_BUFFER_VERTEX_STATE 1 -#define GPU_BUFFER_NORMAL_STATE 2 -#define GPU_BUFFER_TEXCOORD_STATE 4 -#define GPU_BUFFER_COLOR_STATE 8 -#define GPU_BUFFER_ELEMENT_STATE 16 +typedef enum { + GPU_BUFFER_VERTEX_STATE = 1, + GPU_BUFFER_NORMAL_STATE = 2, + GPU_BUFFER_TEXCOORD_STATE = 4, + GPU_BUFFER_COLOR_STATE = 8, + GPU_BUFFER_ELEMENT_STATE = 16, +} GPUBufferState; #define MAX_GPU_ATTRIB_DATA 32 @@ -69,1441 +71,1041 @@ /* -1 - undefined, 0 - vertex arrays, 1 - VBOs */ static int useVBOs = -1; -static GPUBufferPool *globalPool = 0; -static int GLStates = 0; +static GPUBufferState GLStates = 0; static GPUAttrib attribData[MAX_GPU_ATTRIB_DATA] = { { -1, 0, 0 } }; -GPUBufferPool *GPU_buffer_pool_new(void) +/* stores recently-deleted buffers so that new buffers won't have to + be recreated as often + + only one instance of this pool is created, stored in + gpu_buffer_pool + + note that the number of buffers in the pool is usually limited to + MAX_FREE_GPU_BUFFERS, but this limit may be exceeded temporarily + when a GPUBuffer is released outside the main thread; due to OpenGL + restrictions it cannot be immediately released + */ +typedef struct GPUBufferPool { + /* number of allocated buffers stored */ + int totbuf; + /* actual allocated length of the array */ + int maxsize; + GPUBuffer **buffers; +} GPUBufferPool; +#define MAX_FREE_GPU_BUFFERS 8 + +/* create a new GPUBufferPool */ +static GPUBufferPool *gpu_buffer_pool_new(void) { GPUBufferPool *pool; - DEBUG_VBO("GPU_buffer_pool_new\n"); + /* enable VBOs if supported */ + if(useVBOs == -1) + useVBOs = (GLEW_ARB_vertex_buffer_object ? 1 : 0); - if( useVBOs < 0 ) { - if( GLEW_ARB_vertex_buffer_object ) { - DEBUG_VBO( "Vertex Buffer Objects supported.\n" ); - useVBOs = 1; - } - else { - DEBUG_VBO( "Vertex Buffer Objects NOT supported.\n" ); - useVBOs = 0; - } - } + pool = MEM_callocN(sizeof(GPUBufferPool), "GPUBuffer"); - pool = MEM_callocN(sizeof(GPUBufferPool), "GPU_buffer_pool_new"); pool->maxsize = MAX_FREE_GPU_BUFFERS; - pool->buffers = MEM_callocN(sizeof(GPUBuffer*)*pool->maxsize, "GPU_buffer_pool_new buffers"); + pool->buffers = MEM_callocN(sizeof(GPUBuffer*)*pool->maxsize, + "GPUBuffer.buffers"); return pool; } -static void GPU_buffer_pool_remove( int index, GPUBufferPool *pool ) +/* remove a GPUBuffer from the pool (does not free the GPUBuffer) */ +static void gpu_buffer_pool_remove_index(GPUBufferPool *pool, int index) { int i; - if( index >= pool->size || index < 0 ) { - ERROR_VBO("Wrong index, out of bounds in call to GPU_buffer_pool_remove"); + if(!pool || index < 0 || index >= pool->totbuf) return; - } - DEBUG_VBO("GPU_buffer_pool_remove\n"); - for( i = index; i < pool->size-1; i++ ) { + /* shift entries down, overwriting the buffer at `index' */ + for(i = index; i < pool->totbuf - 1; i++) pool->buffers[i] = pool->buffers[i+1]; - } - if( pool->size > 0 ) - pool->buffers[pool->size-1] = 0; - pool->size--; + /* clear the last entry */ + if(pool->totbuf > 0) + pool->buffers[pool->totbuf - 1] = NULL; + + pool->totbuf--; } -static void GPU_buffer_pool_delete_last( GPUBufferPool *pool ) +/* delete the last entry in the pool */ +static void gpu_buffer_pool_delete_last(GPUBufferPool *pool) { - int last; + GPUBuffer *last; - DEBUG_VBO("GPU_buffer_pool_delete_last\n"); + if(pool->totbuf <= 0) + return; - if( pool->size <= 0 ) + /* get the last entry */ + if(!(last = pool->buffers[pool->totbuf - 1])) return; - last = pool->size-1; + /* delete the buffer's data */ + if(useVBOs) + glDeleteBuffersARB(1, &last->id); + else + MEM_freeN(last->pointer); - if( pool->buffers[last] != 0 ) { - if( useVBOs ) { - glDeleteBuffersARB(1,&pool->buffers[last]->id); - MEM_freeN( pool->buffers[last] ); - } - else { - MEM_freeN( pool->buffers[last]->pointer ); - MEM_freeN( pool->buffers[last] ); - } - pool->buffers[last] = 0; - } else { - DEBUG_VBO("Why are we accessing a null buffer?\n"); - } - pool->size--; + /* delete the buffer and remove from pool */ + MEM_freeN(last); + pool->totbuf--; + pool->buffers[pool->totbuf] = NULL; } -void GPU_buffer_pool_free(GPUBufferPool *pool) +/* free a GPUBufferPool; also frees the data in the pool's + GPUBuffers */ +static void gpu_buffer_pool_free(GPUBufferPool *pool) { - DEBUG_VBO("GPU_buffer_pool_free\n"); - - if( pool == 0 ) - pool = globalPool; - if( pool == 0 ) + if(!pool) return; - while( pool->size ) - GPU_buffer_pool_delete_last(pool); + while(pool->totbuf) + gpu_buffer_pool_delete_last(pool); MEM_freeN(pool->buffers); MEM_freeN(pool); - /* if we are releasing the global pool, stop keeping a reference to it */ - if (pool == globalPool) - globalPool = NULL; } -void GPU_buffer_pool_free_unused(GPUBufferPool *pool) +static GPUBufferPool *gpu_buffer_pool = NULL; +static GPUBufferPool *gpu_get_global_buffer_pool(void) { - DEBUG_VBO("GPU_buffer_pool_free_unused\n"); + /* initialize the pool */ + if(!gpu_buffer_pool) + gpu_buffer_pool = gpu_buffer_pool_new(); - if( pool == 0 ) - pool = globalPool; - if( pool == 0 ) - return; - - while( pool->size > MAX_FREE_GPU_BUFFERS ) - GPU_buffer_pool_delete_last(pool); + return gpu_buffer_pool; } -GPUBuffer *GPU_buffer_alloc( int size, GPUBufferPool *pool ) +void GPU_global_buffer_pool_free(void) { - char buffer[60]; - int i; - int cursize; - GPUBuffer *allocated; - int bestfit = -1; + gpu_buffer_pool_free(gpu_buffer_pool); + gpu_buffer_pool = NULL; +} - DEBUG_VBO("GPU_buffer_alloc\n"); +/* get a GPUBuffer of at least `size' bytes; uses one from the buffer + pool if possible, otherwise creates a new one */ +GPUBuffer *GPU_buffer_alloc(int size) +{ + GPUBufferPool *pool; + GPUBuffer *buf; + int i, bufsize, bestfit = -1; - if( pool == 0 ) { - if( globalPool == 0 ) - globalPool = GPU_buffer_pool_new(); - pool = globalPool; - } + pool = gpu_get_global_buffer_pool(); - for( i = 0; i < pool->size; i++ ) { - cursize = pool->buffers[i]->size; - if( cursize == size ) { - allocated = pool->buffers[i]; - GPU_buffer_pool_remove(i,pool); - DEBUG_VBO("free buffer of exact size found\n"); - return allocated; + /* not sure if this buffer pool code has been profiled much, + seems to me that the graphics driver and system memory + management might do this stuff anyway. --nicholas + */ + + /* check the global buffer pool for a recently-deleted buffer + that is at least as big as the request, but not more than + twice as big */ + for(i = 0; i < pool->totbuf; i++) { + bufsize = pool->buffers[i]->size; + + /* check for an exact size match */ + if(bufsize == size) { + bestfit = i; + break; } - /* smaller buffers won't fit data and buffers at least twice as big are a waste of memory */ - else if( cursize > size && size > cursize/2 ) { - /* is it closer to the required size than the last appropriate buffer found. try to save memory */ - if( bestfit == -1 || pool->buffers[bestfit]->size > cursize ) { + /* smaller buffers won't fit data and buffers at least + twice as big are a waste of memory */ + else if(bufsize > size && size > (bufsize / 2)) { + /* is it closer to the required size than the + last appropriate buffer found. try to save + memory */ + if(bestfit == -1 || pool->buffers[bestfit]->size > bufsize) { bestfit = i; } } } - if( bestfit == -1 ) { - DEBUG_VBO("allocating a new buffer\n"); - - allocated = MEM_mallocN(sizeof(GPUBuffer), "GPU_buffer_alloc"); - allocated->size = size; - if( useVBOs == 1 ) { - glGenBuffersARB( 1, &allocated->id ); - glBindBufferARB( GL_ARRAY_BUFFER_ARB, allocated->id ); - glBufferDataARB( GL_ARRAY_BUFFER_ARB, size, 0, GL_STATIC_DRAW_ARB ); - glBindBufferARB( GL_ARRAY_BUFFER_ARB, 0 ); - } - else { - allocated->pointer = MEM_mallocN(size, "GPU_buffer_alloc_vertexarray"); - while( allocated->pointer == 0 && pool->size > 0 ) { - GPU_buffer_pool_delete_last(pool); - allocated->pointer = MEM_mallocN(size, "GPU_buffer_alloc_vertexarray"); - } - if( allocated->pointer == 0 && pool->size == 0 ) { - return 0; - } - } + + /* if an acceptable buffer was found in the pool, remove it + from the pool and return it */ + if(bestfit != -1) { + buf = pool->buffers[bestfit]; + gpu_buffer_pool_remove_index(pool, bestfit); + return buf; } - else { - sprintf(buffer,"free buffer found. Wasted %d bytes\n", pool->buffers[bestfit]->size-size); - DEBUG_VBO(buffer); - allocated = pool->buffers[bestfit]; - GPU_buffer_pool_remove(bestfit,pool); + /* no acceptable buffer found in the pool, create a new one */ + buf = MEM_callocN(sizeof(GPUBuffer), "GPUBuffer"); + buf->size = size; + + if(useVBOs == 1) { + /* create a new VBO and initialize it to the requested + size */ + glGenBuffersARB(1, &buf->id); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buf->id); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, size, 0, GL_STATIC_DRAW_ARB); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } + else { + buf->pointer = MEM_mallocN(size, "GPUBuffer.pointer"); + + /* purpose of this seems to be dealing with + out-of-memory errors? looks a bit iffy to me + though, at least on Linux I expect malloc() would + just overcommit. --nicholas */ + while(!buf->pointer && pool->totbuf > 0) { + gpu_buffer_pool_delete_last(pool); + buf->pointer = MEM_mallocN(size, "GPUBuffer.pointer"); + } + if(!buf->pointer) + return NULL; } - return allocated; + + return buf; } -void GPU_buffer_free( GPUBuffer *buffer, GPUBufferPool *pool ) +/* release a GPUBuffer; does not free the actual buffer or its data, + but rather moves it to the pool of recently-free'd buffers for + possible re-use*/ +void GPU_buffer_free(GPUBuffer *buffer) { + GPUBufferPool *pool; int i; - DEBUG_VBO("GPU_buffer_free\n"); - - if( buffer == 0 ) + if(!buffer) return; - if( pool == 0 ) - pool = globalPool; - if( pool == 0 ) - pool = globalPool = GPU_buffer_pool_new(); + + pool = gpu_get_global_buffer_pool(); /* free the last used buffer in the queue if no more space, but only if we are in the main thread. for e.g. rendering or baking it can happen that we are in other thread and can't call OpenGL, in that case cleanup will be done GPU_buffer_pool_free_unused */ - if( BLI_thread_is_main() ) { - while( pool->size >= MAX_FREE_GPU_BUFFERS ) - GPU_buffer_pool_delete_last( pool ); + if(BLI_thread_is_main()) { + /* in main thread, safe to decrease size of pool back + down to MAX_FREE_GPU_BUFFERS */ + while(pool->totbuf >= MAX_FREE_GPU_BUFFERS) + gpu_buffer_pool_delete_last(pool); } else { - if( pool->maxsize == pool->size ) { + /* outside of main thread, can't safely delete the + buffer, so increase pool size */ + if(pool->maxsize == pool->totbuf) { pool->maxsize += MAX_FREE_GPU_BUFFERS; - pool->buffers = MEM_reallocN(pool->buffers, sizeof(GPUBuffer*)*pool->maxsize); + pool->buffers = MEM_reallocN(pool->buffers, + sizeof(GPUBuffer*) * pool->maxsize); } } - for( i =pool->size; i > 0; i-- ) { + /* shift pool entries up by one */ + for(i = pool->totbuf; i > 0; i--) pool->buffers[i] = pool->buffers[i-1]; - } + + /* insert the buffer into the beginning of the pool */ pool->buffers[0] = buffer; - pool->size++; + pool->totbuf++; } -GPUDrawObject *GPU_drawobject_new( DerivedMesh *dm ) +typedef struct GPUVertPointLink { + struct GPUVertPointLink *next; + /* -1 means uninitialized */ + int point_index; +} GPUVertPointLink; + +/* add a new point to the list of points related to a particular + vertex */ +static void gpu_drawobject_add_vert_point(GPUDrawObject *gdo, int vert_index, int point_index) { - GPUDrawObject *object; - MFace *mface; - int numverts[MAX_MATERIALS]; - int redir[MAX_MATERIALS]; - int *index; - int i; - int curmat, curverts, numfaces; + GPUVertPointLink *lnk; - DEBUG_VBO("GPU_drawobject_new\n"); + lnk = &gdo->vert_points[vert_index]; - object = MEM_callocN(sizeof(GPUDrawObject),"GPU_drawobject_new_object"); - object->nindices = dm->getNumVerts(dm); - object->indices = MEM_mallocN(sizeof(IndexLink)*object->nindices, "GPU_drawobject_new_indices"); - object->nedges = dm->getNumEdges(dm); + /* if first link is in use, add a new link at the end */ + if(lnk->point_index != -1) { + /* get last link */ + for(; lnk->next; lnk = lnk->next); - for( i = 0; i < object->nindices; i++ ) { - object->indices[i].element = -1; - object->indices[i].next = 0; + /* add a new link from the pool */ + lnk = lnk->next = &gdo->vert_points_mem[gdo->vert_points_usage]; + gdo->vert_points_usage++; } - /*object->legacy = 1;*/ - memset(numverts,0,sizeof(int)*MAX_MATERIALS); - mface = dm->getFaceArray(dm); + lnk->point_index = point_index; +} - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - if( mface[i].v4 ) - numverts[mface[i].mat_nr] += 6; /* split every quad into two triangles */ - else - numverts[mface[i].mat_nr] += 3; - } +/* update the vert_points and triangle_to_mface fields with a new + triangle */ +static void gpu_drawobject_add_triangle(GPUDrawObject *gdo, + int base_point_index, + int face_index, + int v1, int v2, int v3) +{ + int i, v[3] = {v1, v2, v3}; + for(i = 0; i < 3; i++) + gpu_drawobject_add_vert_point(gdo, v[i], base_point_index + i); + gdo->triangle_to_mface[base_point_index / 3] = face_index; +} - for( i = 0; i < MAX_MATERIALS; i++ ) { - if( numverts[i] > 0 ) { - object->nmaterials++; - object->nelements += numverts[i]; +/* for each vertex, build a list of points related to it; these lists + are stored in an array sized to the number of vertices */ +static void gpu_drawobject_init_vert_points(GPUDrawObject *gdo, MFace *f, int totface) +{ + GPUBufferMaterial *mat; + int i, mat_orig_to_new[MAX_MATERIALS]; + + /* allocate the array and space for links */ + gdo->vert_points = MEM_callocN(sizeof(GPUVertPointLink) * gdo->totvert, + "GPUDrawObject.vert_points"); + gdo->vert_points_mem = MEM_callocN(sizeof(GPUVertPointLink) * gdo->tot_triangle_point, + "GPUDrawObject.vert_points_mem"); + gdo->vert_points_usage = 0; + + /* build a map from the original material indices to the new + GPUBufferMaterial indices */ + for(i = 0; i < gdo->totmaterial; i++) + mat_orig_to_new[gdo->materials[i].mat_nr] = i; + + /* -1 indicates the link is not yet used */ + for(i = 0; i < gdo->totvert; i++) + gdo->vert_points[i].point_index = -1; + + for(i = 0; i < totface; i++, f++) { + mat = &gdo->materials[mat_orig_to_new[f->mat_nr]]; + + /* add triangle */ + gpu_drawobject_add_triangle(gdo, mat->start + mat->totpoint, + i, f->v1, f->v2, f->v3); + mat->totpoint += 3; + + /* add second triangle for quads */ + if(f->v4) { + gpu_drawobject_add_triangle(gdo, mat->start + mat->totpoint, + i, f->v3, f->v4, f->v1); + mat->totpoint += 3; } } - object->materials = MEM_mallocN(sizeof(GPUBufferMaterial)*object->nmaterials,"GPU_drawobject_new_materials"); - index = MEM_mallocN(sizeof(int)*object->nmaterials,"GPU_drawobject_new_index"); - - curmat = curverts = 0; - for( i = 0; i < MAX_MATERIALS; i++ ) { - if( numverts[i] > 0 ) { - object->materials[curmat].mat_nr = i; - object->materials[curmat].start = curverts; - index[curmat] = curverts/3; - object->materials[curmat].end = curverts+numverts[i]; - curverts += numverts[i]; - curmat++; + + /* map any unused vertices to loose points */ + for(i = 0; i < gdo->totvert; i++) { + if(gdo->vert_points[i].point_index == -1) { + gdo->vert_points[i].point_index = gdo->tot_triangle_point + gdo->tot_loose_point; + gdo->tot_loose_point++; } } - object->faceRemap = MEM_mallocN(sizeof(int)*object->nelements/3,"GPU_drawobject_new_faceRemap"); - for( i = 0; i < object->nmaterials; i++ ) { - redir[object->materials[i].mat_nr] = i; /* material number -> material index */ - } +} - object->indexMem = MEM_callocN(sizeof(IndexLink)*object->nelements,"GPU_drawobject_new_indexMem"); - object->indexMemUsage = 0; - -#define ADDLINK( INDEX, ACTUAL ) \ - if( object->indices[INDEX].element == -1 ) { \ - object->indices[INDEX].element = ACTUAL; \ - } else { \ - IndexLink *lnk = &object->indices[INDEX]; \ - while( lnk->next != 0 ) lnk = lnk->next; \ - lnk->next = &object->indexMem[object->indexMemUsage]; \ - lnk->next->element = ACTUAL; \ - object->indexMemUsage++; \ - } +/* see GPUDrawObject's structure definition for a description of the + data being initialized here */ +GPUDrawObject *GPU_drawobject_new( DerivedMesh *dm ) +{ + GPUDrawObject *gdo; + MFace *mface; + int points_per_mat[MAX_MATERIALS]; + int i, curmat, curpoint, totface; - for( i=0; i < numfaces; i++ ) { - int curInd = index[redir[mface[i].mat_nr]]; - object->faceRemap[curInd] = i; - ADDLINK( mface[i].v1, curInd*3 ); - ADDLINK( mface[i].v2, curInd*3+1 ); - ADDLINK( mface[i].v3, curInd*3+2 ); - if( mface[i].v4 ) { - object->faceRemap[curInd+1] = i; - ADDLINK( mface[i].v3, curInd*3+3 ); - ADDLINK( mface[i].v4, curInd*3+4 ); - ADDLINK( mface[i].v1, curInd*3+5 ); - - index[redir[mface[i].mat_nr]]+=2; - } - else { - index[redir[mface[i].mat_nr]]++; - } + mface = dm->getFaceArray(dm); + totface= dm->getNumFaces(dm); + + /* get the number of points used by each material, treating + each quad as two triangles */ + memset(points_per_mat, 0, sizeof(int)*MAX_MATERIALS); + for(i = 0; i < totface; i++) + points_per_mat[mface[i].mat_nr] += mface[i].v4 ? 6 : 3; + + /* create the GPUDrawObject */ + gdo = MEM_callocN(sizeof(GPUDrawObject),"GPUDrawObject"); + gdo->totvert = dm->getNumVerts(dm); + gdo->totedge = dm->getNumEdges(dm); + + /* count the number of materials used by this DerivedMesh */ + for(i = 0; i < MAX_MATERIALS; i++) { + if(points_per_mat[i] > 0) + gdo->totmaterial++; } - for( i = 0; i < object->nindices; i++ ) { - if( object->indices[i].element == -1 ) { - object->indices[i].element = object->nelements + object->nlooseverts; - object->nlooseverts++; + /* allocate an array of materials used by this DerivedMesh */ + gdo->materials = MEM_mallocN(sizeof(GPUBufferMaterial) * gdo->totmaterial, + "GPUDrawObject.materials"); + + /* initialize the materials array */ + for(i = 0, curmat = 0, curpoint = 0; i < MAX_MATERIALS; i++) { + if(points_per_mat[i] > 0) { + gdo->materials[curmat].start = curpoint; + gdo->materials[curmat].totpoint = 0; + gdo->materials[curmat].mat_nr = i; + + curpoint += points_per_mat[i]; + curmat++; } } -#undef ADDLINK - MEM_freeN(index); - return object; + /* store total number of points used for triangles */ + gdo->tot_triangle_point = curpoint; + + gdo->triangle_to_mface = MEM_mallocN(sizeof(int) * (gdo->tot_triangle_point / 3), + "GPUDrawObject.triangle_to_mface"); + + gpu_drawobject_init_vert_points(gdo, mface, totface); + + return gdo; } -void GPU_drawobject_free( DerivedMesh *dm ) +void GPU_drawobject_free(DerivedMesh *dm) { - GPUDrawObject *object; + GPUDrawObject *gdo; - DEBUG_VBO("GPU_drawobject_free\n"); - - if( dm == 0 ) - return; - object = dm->drawObject; - if( object == 0 ) + if(!dm || !(gdo = dm->drawObject)) return; - MEM_freeN(object->materials); - MEM_freeN(object->faceRemap); - MEM_freeN(object->indices); - MEM_freeN(object->indexMem); - GPU_buffer_free( object->vertices, globalPool ); - GPU_buffer_free( object->normals, globalPool ); - GPU_buffer_free( object->uv, globalPool ); - GPU_buffer_free( object->colors, globalPool ); - GPU_buffer_free( object->edges, globalPool ); - GPU_buffer_free( object->uvedges, globalPool ); - - MEM_freeN(object); - dm->drawObject = 0; + MEM_freeN(gdo->materials); + MEM_freeN(gdo->triangle_to_mface); + MEM_freeN(gdo->vert_points); + MEM_freeN(gdo->vert_points_mem); + GPU_buffer_free(gdo->points); + GPU_buffer_free(gdo->normals); + GPU_buffer_free(gdo->uv); + GPU_buffer_free(gdo->colors); + GPU_buffer_free(gdo->edges); + GPU_buffer_free(gdo->uvedges); + + MEM_freeN(gdo); + dm->drawObject = NULL; } -/* Convenience struct for building the VBO. */ -typedef struct { - float co[3]; - short no[3]; -} VertexBufferFormat; +typedef void (*GPUBufferCopyFunc)(DerivedMesh *dm, float *varray, int *index, + int *mat_orig_to_new, void *user_data); -typedef struct { - /* opengl buffer handles */ - GLuint vert_buf, index_buf; - GLenum index_type; +static GPUBuffer *gpu_buffer_setup(DerivedMesh *dm, GPUDrawObject *object, + int vector_size, int size, GLenum target, + void *user, GPUBufferCopyFunc copy_f) +{ + GPUBufferPool *pool; + GPUBuffer *buffer; + float *varray; + int mat_orig_to_new[MAX_MATERIALS]; + int *cur_index_per_mat; + int i; + int success; + GLboolean uploaded; - /* mesh pointers in case buffer allocation fails */ - MFace *mface; - MVert *mvert; - int *face_indices; - int totface; + pool = gpu_get_global_buffer_pool(); - /* grid pointers */ - DMGridData **grids; - int *grid_indices; - int totgrid; - int gridsize; + /* alloc a GPUBuffer; fall back to legacy mode on failure */ + if(!(buffer = GPU_buffer_alloc(size))) + dm->drawObject->legacy = 1; - unsigned int tot_tri, tot_quad; -} GPU_Buffers; + /* nothing to do for legacy mode */ + if(dm->drawObject->legacy) + return 0; -void GPU_update_mesh_buffers(void *buffers_v, MVert *mvert, - int *vert_indices, int totvert) -{ - GPU_Buffers *buffers = buffers_v; - VertexBufferFormat *vert_data; - int i; + cur_index_per_mat = MEM_mallocN(sizeof(int)*object->totmaterial, + "GPU_buffer_setup.cur_index_per_mat"); + for(i = 0; i < object->totmaterial; i++) { + /* for each material, the current index to copy data to */ + cur_index_per_mat[i] = object->materials[i].start * vector_size; - if(buffers->vert_buf) { - /* Build VBO */ - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBufferDataARB(GL_ARRAY_BUFFER_ARB, - sizeof(VertexBufferFormat) * totvert, - NULL, GL_STATIC_DRAW_ARB); - vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + /* map from original material index to new + GPUBufferMaterial index */ + mat_orig_to_new[object->materials[i].mat_nr] = i; + } - if(vert_data) { - for(i = 0; i < totvert; ++i) { - MVert *v = mvert + vert_indices[i]; - VertexBufferFormat *out = vert_data + i; + if(useVBOs) { + success = 0; - copy_v3_v3(out->co, v->co); - memcpy(out->no, v->no, sizeof(short) * 3); + while(!success) { + /* bind the buffer and discard previous data, + avoids stalling gpu */ + glBindBufferARB(target, buffer->id); + glBufferDataARB(target, buffer->size, 0, GL_STATIC_DRAW_ARB); + + /* attempt to map the buffer */ + if(!(varray = glMapBufferARB(target, GL_WRITE_ONLY_ARB))) { + /* failed to map the buffer; delete it */ + GPU_buffer_free(buffer); + gpu_buffer_pool_delete_last(pool); + buffer= NULL; + + /* try freeing an entry from the pool + and reallocating the buffer */ + if(pool->totbuf > 0) { + gpu_buffer_pool_delete_last(pool); + buffer = GPU_buffer_alloc(size); + } + + /* allocation still failed; fall back + to legacy mode */ + if(!buffer) { + dm->drawObject->legacy = 1; + success = 1; + } + } + else { + success = 1; } + } - glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + /* check legacy fallback didn't happen */ + if(dm->drawObject->legacy == 0) { + uploaded = GL_FALSE; + /* attempt to upload the data to the VBO */ + while(uploaded == GL_FALSE) { + (*copy_f)(dm, varray, cur_index_per_mat, mat_orig_to_new, user); + /* glUnmapBuffer returns GL_FALSE if + the data store is corrupted; retry + in that case */ + uploaded = glUnmapBufferARB(target); + } + } + glBindBufferARB(target, 0); + } + else { + /* VBO not supported, use vertex array fallback */ + if(buffer->pointer) { + varray = buffer->pointer; + (*copy_f)(dm, varray, cur_index_per_mat, mat_orig_to_new, user); } else { - glDeleteBuffersARB(1, &buffers->vert_buf); - buffers->vert_buf = 0; + dm->drawObject->legacy = 1; } - - glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } - buffers->mvert = mvert; + MEM_freeN(cur_index_per_mat); + + return buffer; } -void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, - int *face_indices, int totface, - int *vert_indices, int tot_uniq_verts, - int totvert) +static void GPU_buffer_copy_vertex(DerivedMesh *dm, float *varray, int *index, int *mat_orig_to_new, void *UNUSED(user)) { - GPU_Buffers *buffers; - unsigned short *tri_data; - int i, j, k, tottri; + MVert *mvert; + MFace *f; + int i, j, start, totface; - buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); - buffers->index_type = GL_UNSIGNED_SHORT; + mvert = dm->getVertArray(dm); + f = dm->getFaceArray(dm); - /* Count the number of triangles */ - for(i = 0, tottri = 0; i < totface; ++i) - tottri += mface[face_indices[i]].v4 ? 2 : 1; - - if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) - glGenBuffersARB(1, &buffers->index_buf); + totface= dm->getNumFaces(dm); + for(i = 0; i < totface; i++, f++) { + start = index[mat_orig_to_new[f->mat_nr]]; - if(buffers->index_buf) { - /* Generate index buffer object */ - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); + /* v1 v2 v3 */ + copy_v3_v3(&varray[start], mvert[f->v1].co); + copy_v3_v3(&varray[start+3], mvert[f->v2].co); + copy_v3_v3(&varray[start+6], mvert[f->v3].co); + index[mat_orig_to_new[f->mat_nr]] += 9; - /* Fill the triangle buffer */ - tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - if(tri_data) { - for(i = 0; i < totface; ++i) { - MFace *f = mface + face_indices[i]; - int v[3]; + if(f->v4) { + /* v3 v4 v1 */ + copy_v3_v3(&varray[start+9], mvert[f->v3].co); + copy_v3_v3(&varray[start+12], mvert[f->v4].co); + copy_v3_v3(&varray[start+15], mvert[f->v1].co); + index[mat_orig_to_new[f->mat_nr]] += 9; + } + } - v[0]= f->v1; - v[1]= f->v2; - v[2]= f->v3; + /* copy loose points */ + j = dm->drawObject->tot_triangle_point*3; + for(i = 0; i < dm->drawObject->totvert; i++) { + if(dm->drawObject->vert_points[i].point_index >= dm->drawObject->tot_triangle_point) { + copy_v3_v3(&varray[j],mvert[i].co); + j+=3; + } + } +} - for(j = 0; j < (f->v4 ? 2 : 1); ++j) { - for(k = 0; k < 3; ++k) { - void *value, *key = SET_INT_IN_POINTER(v[k]); - int vbo_index; +static void GPU_buffer_copy_normal(DerivedMesh *dm, float *varray, int *index, int *mat_orig_to_new, void *UNUSED(user)) +{ + int i, totface; + int start; + float f_no[3]; - value = BLI_ghash_lookup(map, key); - vbo_index = GET_INT_FROM_POINTER(value); + float *nors= dm->getFaceDataArray(dm, CD_NORMAL); + MVert *mvert = dm->getVertArray(dm); + MFace *f = dm->getFaceArray(dm); - if(vbo_index < 0) { - vbo_index = -vbo_index + - tot_uniq_verts - 1; - } + totface= dm->getNumFaces(dm); + for(i = 0; i < totface; i++, f++) { + const int smoothnormal = (f->flag & ME_SMOOTH); - *tri_data = vbo_index; - ++tri_data; - } - v[0] = f->v4; - v[1] = f->v1; - v[2] = f->v3; - } + start = index[mat_orig_to_new[f->mat_nr]]; + index[mat_orig_to_new[f->mat_nr]] += f->v4 ? 18 : 9; + + if(smoothnormal) { + /* copy vertex normal */ + normal_short_to_float_v3(&varray[start], mvert[f->v1].no); + normal_short_to_float_v3(&varray[start+3], mvert[f->v2].no); + normal_short_to_float_v3(&varray[start+6], mvert[f->v3].no); + + if(f->v4) { + normal_short_to_float_v3(&varray[start+9], mvert[f->v3].no); + normal_short_to_float_v3(&varray[start+12], mvert[f->v4].no); + normal_short_to_float_v3(&varray[start+15], mvert[f->v1].no); } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); } - else { - glDeleteBuffersARB(1, &buffers->index_buf); - buffers->index_buf = 0; + else if(nors) { + /* copy cached face normal */ + copy_v3_v3(&varray[start], &nors[i*3]); + copy_v3_v3(&varray[start+3], &nors[i*3]); + copy_v3_v3(&varray[start+6], &nors[i*3]); + + if(f->v4) { + copy_v3_v3(&varray[start+9], &nors[i*3]); + copy_v3_v3(&varray[start+12], &nors[i*3]); + copy_v3_v3(&varray[start+15], &nors[i*3]); + } } + else { + /* calculate face normal */ + if(f->v4) + normal_quad_v3(f_no, mvert[f->v1].co, mvert[f->v2].co, mvert[f->v3].co, mvert[f->v4].co); + else + normal_tri_v3(f_no, mvert[f->v1].co, mvert[f->v2].co, mvert[f->v3].co); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); + copy_v3_v3(&varray[start], f_no); + copy_v3_v3(&varray[start+3], f_no); + copy_v3_v3(&varray[start+6], f_no); + + if(f->v4) { + copy_v3_v3(&varray[start+9], f_no); + copy_v3_v3(&varray[start+12], f_no); + copy_v3_v3(&varray[start+15], f_no); + } + } } +} - if(buffers->index_buf) - glGenBuffersARB(1, &buffers->vert_buf); - GPU_update_mesh_buffers(buffers, mvert, vert_indices, totvert); +static void GPU_buffer_copy_uv(DerivedMesh *dm, float *varray, int *index, int *mat_orig_to_new, void *UNUSED(user)) +{ + int start; + int i, totface; - buffers->tot_tri = tottri; + MTFace *mtface; + MFace *f; - buffers->mface = mface; - buffers->face_indices = face_indices; - buffers->totface = totface; + if(!(mtface = DM_get_face_data_layer(dm, CD_MTFACE))) + return; + f = dm->getFaceArray(dm); + + totface = dm->getNumFaces(dm); + for(i = 0; i < totface; i++, f++) { + start = index[mat_orig_to_new[f->mat_nr]]; - return buffers; + /* v1 v2 v3 */ + copy_v2_v2(&varray[start],mtface[i].uv[0]); + copy_v2_v2(&varray[start+2],mtface[i].uv[1]); + copy_v2_v2(&varray[start+4],mtface[i].uv[2]); + index[mat_orig_to_new[f->mat_nr]] += 6; + + if(f->v4) { + /* v3 v4 v1 */ + copy_v2_v2(&varray[start+6],mtface[i].uv[2]); + copy_v2_v2(&varray[start+8],mtface[i].uv[3]); + copy_v2_v2(&varray[start+10],mtface[i].uv[0]); + index[mat_orig_to_new[f->mat_nr]] += 6; + } + } } -void GPU_update_grid_buffers(void *buffers_v, DMGridData **grids, - int *grid_indices, int totgrid, int gridsize, int smooth) -{ - GPU_Buffers *buffers = buffers_v; - DMGridData *vert_data; - int i, j, k, totvert; - totvert= gridsize*gridsize*totgrid; +static void GPU_buffer_copy_color3(DerivedMesh *dm, float *varray_, int *index, int *mat_orig_to_new, void *user) +{ + int i, totface; + unsigned char *varray = (unsigned char *)varray_; + unsigned char *mcol = (unsigned char *)user; + MFace *f = dm->getFaceArray(dm); - /* Build VBO */ - if(buffers->vert_buf) { - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBufferDataARB(GL_ARRAY_BUFFER_ARB, - sizeof(DMGridData) * totvert, - NULL, GL_STATIC_DRAW_ARB); - vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - if(vert_data) { - for(i = 0; i < totgrid; ++i) { - DMGridData *grid= grids[grid_indices[i]]; - memcpy(vert_data, grid, sizeof(DMGridData)*gridsize*gridsize); + totface= dm->getNumFaces(dm); + for(i=0; i < totface; i++, f++) { + int start = index[mat_orig_to_new[f->mat_nr]]; - if(!smooth) { - /* for flat shading, recalc normals and set the last vertex of - each quad in the index buffer to have the flat normal as - that is what opengl will use */ - for(j = 0; j < gridsize-1; ++j) { - for(k = 0; k < gridsize-1; ++k) { - normal_quad_v3(vert_data[(j+1)*gridsize + (k+1)].no, - vert_data[(j+1)*gridsize + k].co, - vert_data[(j+1)*gridsize + k+1].co, - vert_data[j*gridsize + k+1].co, - vert_data[j*gridsize + k].co); - } - } - } + /* v1 v2 v3 */ + VECCOPY(&varray[start], &mcol[i*12]); + VECCOPY(&varray[start+3], &mcol[i*12+3]); + VECCOPY(&varray[start+6], &mcol[i*12+6]); + index[mat_orig_to_new[f->mat_nr]] += 9; - vert_data += gridsize*gridsize; - } - glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); - } - else { - glDeleteBuffersARB(1, &buffers->vert_buf); - buffers->vert_buf = 0; + if(f->v4) { + /* v3 v4 v1 */ + VECCOPY(&varray[start+9], &mcol[i*12+6]); + VECCOPY(&varray[start+12], &mcol[i*12+9]); + VECCOPY(&varray[start+15], &mcol[i*12]); + index[mat_orig_to_new[f->mat_nr]] += 9; } - glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } +} - buffers->grids = grids; - buffers->grid_indices = grid_indices; - buffers->totgrid = totgrid; - buffers->gridsize = gridsize; - - //printf("node updated %p\n", buffers_v); +static void copy_mcol_uc3(unsigned char *v, unsigned char *col) +{ + v[0] = col[3]; + v[1] = col[2]; + v[2] = col[1]; } -void *GPU_build_grid_buffers(DMGridData **UNUSED(grids), int *UNUSED(grid_indices), - int totgrid, int gridsize) +/* treat varray_ as an array of MCol, four MCol's per face */ +static void GPU_buffer_copy_mcol(DerivedMesh *dm, float *varray_, int *index, int *mat_orig_to_new, void *user) { - GPU_Buffers *buffers; - int i, j, k, totquad, offset= 0; + int i, totface; + unsigned char *varray = (unsigned char *)varray_; + unsigned char *mcol = (unsigned char *)user; + MFace *f = dm->getFaceArray(dm); - buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + totface= dm->getNumFaces(dm); + for(i=0; i < totface; i++, f++) { + int start = index[mat_orig_to_new[f->mat_nr]]; - /* Count the number of quads */ - totquad= (gridsize-1)*(gridsize-1)*totgrid; + /* v1 v2 v3 */ + copy_mcol_uc3(&varray[start], &mcol[i*16]); + copy_mcol_uc3(&varray[start+3], &mcol[i*16+4]); + copy_mcol_uc3(&varray[start+6], &mcol[i*16+8]); + index[mat_orig_to_new[f->mat_nr]] += 9; - /* Generate index buffer object */ - if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) - glGenBuffersARB(1, &buffers->index_buf); + if(f->v4) { + /* v3 v4 v1 */ + copy_mcol_uc3(&varray[start+9], &mcol[i*16+8]); + copy_mcol_uc3(&varray[start+12], &mcol[i*16+12]); + copy_mcol_uc3(&varray[start+15], &mcol[i*16]); + index[mat_orig_to_new[f->mat_nr]] += 9; + } + } +} - if(buffers->index_buf) { - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); +static void GPU_buffer_copy_edge(DerivedMesh *dm, float *varray_, int *UNUSED(index), int *UNUSED(mat_orig_to_new), void *UNUSED(user)) +{ + MEdge *medge; + unsigned int *varray = (unsigned int *)varray_; + int i, totedge; + + medge = dm->getEdgeArray(dm); + totedge = dm->getNumEdges(dm); - if(totquad < USHRT_MAX) { - unsigned short *quad_data; + for(i = 0; i < totedge; i++, medge++) { + varray[i*2] = dm->drawObject->vert_points[medge->v1].point_index; + varray[i*2+1] = dm->drawObject->vert_points[medge->v2].point_index; + } +} - buffers->index_type = GL_UNSIGNED_SHORT; - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned short) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); +static void GPU_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int *UNUSED(index), int *UNUSED(mat_orig_to_new), void *UNUSED(user)) +{ + MTFace *tf = DM_get_face_data_layer(dm, CD_MTFACE); + int i, j=0; - /* Fill the quad buffer */ - quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - if(quad_data) { - for(i = 0; i < totgrid; ++i) { - for(j = 0; j < gridsize-1; ++j) { - for(k = 0; k < gridsize-1; ++k) { - *(quad_data++)= offset + j*gridsize + k+1; - *(quad_data++)= offset + j*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k+1; - } - } + if(!tf) + return; - offset += gridsize*gridsize; - } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); - } - else { - glDeleteBuffersARB(1, &buffers->index_buf); - buffers->index_buf = 0; - } - } - else { - unsigned int *quad_data; + for(i = 0; i < dm->numFaceData; i++, tf++) { + MFace mf; + dm->getFace(dm,i,&mf); - buffers->index_type = GL_UNSIGNED_INT; - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned int) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + copy_v2_v2(&varray[j],tf->uv[0]); + copy_v2_v2(&varray[j+2],tf->uv[1]); - /* Fill the quad buffer */ - quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + copy_v2_v2(&varray[j+4],tf->uv[1]); + copy_v2_v2(&varray[j+6],tf->uv[2]); - if(quad_data) { - for(i = 0; i < totgrid; ++i) { - for(j = 0; j < gridsize-1; ++j) { - for(k = 0; k < gridsize-1; ++k) { - *(quad_data++)= offset + j*gridsize + k+1; - *(quad_data++)= offset + j*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k+1; - } - } + if(!mf.v4) { + copy_v2_v2(&varray[j+8],tf->uv[2]); + copy_v2_v2(&varray[j+10],tf->uv[0]); + j+=12; + } else { + copy_v2_v2(&varray[j+8],tf->uv[2]); + copy_v2_v2(&varray[j+10],tf->uv[3]); - offset += gridsize*gridsize; - } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); - } - else { - glDeleteBuffersARB(1, &buffers->index_buf); - buffers->index_buf = 0; - } + copy_v2_v2(&varray[j+12],tf->uv[3]); + copy_v2_v2(&varray[j+14],tf->uv[0]); + j+=16; } + } +} - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); +/* get the DerivedMesh's MCols; choose (in decreasing order of + preference) from CD_ID_MCOL, CD_WEIGHT_MCOL, or CD_MCOL */ +static MCol *gpu_buffer_color_type(DerivedMesh *dm) +{ + MCol *c; + int type; + + type = CD_ID_MCOL; + c = DM_get_face_data_layer(dm, type); + if(!c) { + type = CD_WEIGHT_MCOL; + c = DM_get_face_data_layer(dm, type); + if(!c) { + type = CD_MCOL; + c = DM_get_face_data_layer(dm, type); + } } - /* Build VBO */ - if(buffers->index_buf) - glGenBuffersARB(1, &buffers->vert_buf); + dm->drawObject->colType = type; + return c; +} - buffers->tot_quad = totquad; +typedef enum { + GPU_BUFFER_VERTEX = 0, + GPU_BUFFER_NORMAL, + GPU_BUFFER_COLOR, + GPU_BUFFER_UV, + GPU_BUFFER_EDGE, + GPU_BUFFER_UVEDGE, +} GPUBufferType; - return buffers; +typedef struct { + GPUBufferCopyFunc copy; + GLenum gl_buffer_type; + int vector_size; +} GPUBufferTypeSettings; + +const GPUBufferTypeSettings gpu_buffer_type_settings[] = { + {GPU_buffer_copy_vertex, GL_ARRAY_BUFFER_ARB, 3}, + {GPU_buffer_copy_normal, GL_ARRAY_BUFFER_ARB, 3}, + {GPU_buffer_copy_mcol, GL_ARRAY_BUFFER_ARB, 3}, + {GPU_buffer_copy_uv, GL_ARRAY_BUFFER_ARB, 2}, + {GPU_buffer_copy_edge, GL_ELEMENT_ARRAY_BUFFER_ARB, 2}, + {GPU_buffer_copy_uvedge, GL_ELEMENT_ARRAY_BUFFER_ARB, 4} +}; + +/* get the GPUDrawObject buffer associated with a type */ +static GPUBuffer **gpu_drawobject_buffer_from_type(GPUDrawObject *gdo, GPUBufferType type) +{ + switch(type) { + case GPU_BUFFER_VERTEX: + return &gdo->points; + case GPU_BUFFER_NORMAL: + return &gdo->normals; + case GPU_BUFFER_COLOR: + return &gdo->colors; + case GPU_BUFFER_UV: + return &gdo->uv; + case GPU_BUFFER_EDGE: + return &gdo->edges; + case GPU_BUFFER_UVEDGE: + return &gdo->uvedges; + default: + return NULL; + } } -void GPU_draw_buffers(void *buffers_v) +/* get the amount of space to allocate for a buffer of a particular type */ +static int gpu_buffer_size_from_type(DerivedMesh *dm, GPUBufferType type) { - GPU_Buffers *buffers = buffers_v; - - if(buffers->vert_buf && buffers->index_buf) { - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + switch(type) { + case GPU_BUFFER_VERTEX: + return sizeof(float)*3 * (dm->drawObject->tot_triangle_point + dm->drawObject->tot_loose_point); + case GPU_BUFFER_NORMAL: + return sizeof(float)*3*dm->drawObject->tot_triangle_point; + case GPU_BUFFER_COLOR: + return sizeof(char)*3*dm->drawObject->tot_triangle_point; + case GPU_BUFFER_UV: + return sizeof(float)*2*dm->drawObject->tot_triangle_point; + case GPU_BUFFER_EDGE: + return sizeof(int)*2*dm->drawObject->totedge; + case GPU_BUFFER_UVEDGE: + /* each face gets 3 points, 3 edges per triangle, and + each edge has its own, non-shared coords, so each + tri corner needs minimum of 4 floats, quads used + less so here we can over allocate and assume all + tris. */ + return sizeof(float) * dm->drawObject->tot_triangle_point; + default: + return -1; + } +} - if(buffers->tot_quad) { - glVertexPointer(3, GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, co)); - glNormalPointer(GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, no)); +/* call gpu_buffer_setup with settings for a particular type of buffer */ +static GPUBuffer *gpu_buffer_setup_type(DerivedMesh *dm, GPUBufferType type) +{ + const GPUBufferTypeSettings *ts; + void *user_data = NULL; + GPUBuffer *buf; - glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0); - } - else { - glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, co)); - glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, no)); + ts = &gpu_buffer_type_settings[type]; - glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0); - } + /* special handling for MCol and UV buffers */ + if(type == GPU_BUFFER_COLOR) { + if(!(user_data = gpu_buffer_color_type(dm))) + return NULL; + } + else if(type == GPU_BUFFER_UV) { + if(!DM_get_face_data_layer(dm, CD_MTFACE)) + return NULL; + } - glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); + buf = gpu_buffer_setup(dm, dm->drawObject, ts->vector_size, + gpu_buffer_size_from_type(dm, type), + ts->gl_buffer_type, user_data, ts->copy); - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); - } - else if(buffers->totface) { - /* fallback if we are out of memory */ - int i; + return buf; +} - for(i = 0; i < buffers->totface; ++i) { - MFace *f = buffers->mface + buffers->face_indices[i]; +/* get the buffer of `type', initializing the GPUDrawObject and + buffer if needed */ +static GPUBuffer *gpu_buffer_setup_common(DerivedMesh *dm, GPUBufferType type) +{ + GPUBuffer **buf; + + if(!dm->drawObject) + dm->drawObject = GPU_drawobject_new(dm); - glBegin((f->v4)? GL_QUADS: GL_TRIANGLES); - glNormal3sv(buffers->mvert[f->v1].no); - glVertex3fv(buffers->mvert[f->v1].co); - glNormal3sv(buffers->mvert[f->v2].no); - glVertex3fv(buffers->mvert[f->v2].co); - glNormal3sv(buffers->mvert[f->v3].no); - glVertex3fv(buffers->mvert[f->v3].co); - if(f->v4) { - glNormal3sv(buffers->mvert[f->v4].no); - glVertex3fv(buffers->mvert[f->v4].co); - } - glEnd(); - } - } - else if(buffers->totgrid) { - int i, x, y, gridsize = buffers->gridsize; + buf = gpu_drawobject_buffer_from_type(dm->drawObject, type); + if(!(*buf)) + *buf = gpu_buffer_setup_type(dm, type); - for(i = 0; i < buffers->totgrid; ++i) { - DMGridData *grid = buffers->grids[buffers->grid_indices[i]]; + return *buf; +} - for(y = 0; y < gridsize-1; y++) { - glBegin(GL_QUAD_STRIP); - for(x = 0; x < gridsize; x++) { - DMGridData *a = &grid[y*gridsize + x]; - DMGridData *b = &grid[(y+1)*gridsize + x]; +void GPU_vertex_setup(DerivedMesh *dm) +{ + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_VERTEX)) + return; - glNormal3fv(a->no); - glVertex3fv(a->co); - glNormal3fv(b->no); - glVertex3fv(b->co); - } - glEnd(); - } - } + glEnableClientState(GL_VERTEX_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->points->id); + glVertexPointer(3, GL_FLOAT, 0, 0); + } + else { + glVertexPointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer); } + + GLStates |= GPU_BUFFER_VERTEX_STATE; } -void GPU_free_buffers(void *buffers_v) +void GPU_normal_setup(DerivedMesh *dm) { - if(buffers_v) { - GPU_Buffers *buffers = buffers_v; - - if(buffers->vert_buf) - glDeleteBuffersARB(1, &buffers->vert_buf); - if(buffers->index_buf) - glDeleteBuffersARB(1, &buffers->index_buf); + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_NORMAL)) + return; - MEM_freeN(buffers); + glEnableClientState(GL_NORMAL_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->normals->id); + glNormalPointer(GL_FLOAT, 0, 0); } + else { + glNormalPointer(GL_FLOAT, 0, dm->drawObject->normals->pointer); + } + + GLStates |= GPU_BUFFER_NORMAL_STATE; } -static GPUBuffer *GPU_buffer_setup( DerivedMesh *dm, GPUDrawObject *object, int vector_size, int size, GLenum target, void *user, void (*copy_f)(DerivedMesh *, float *, int *, int *, void *) ) +void GPU_uv_setup(DerivedMesh *dm) { - GPUBuffer *buffer; - float *varray; - int redir[MAX_MATERIALS]; - int *index; - int i; - int success; - GLboolean uploaded; + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_UV)) + return; - DEBUG_VBO("GPU_buffer_setup\n"); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->uv->id); + glTexCoordPointer(2, GL_FLOAT, 0, 0); + } + else { + glTexCoordPointer(2, GL_FLOAT, 0, dm->drawObject->uv->pointer); + } - if( globalPool == 0 ) - globalPool = GPU_buffer_pool_new(); + GLStates |= GPU_BUFFER_TEXCOORD_STATE; +} - buffer = GPU_buffer_alloc(size,globalPool); - if( buffer == 0 ) { - dm->drawObject->legacy = 1; +void GPU_color_setup(DerivedMesh *dm) +{ + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_COLOR)) + return; + + glEnableClientState(GL_COLOR_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->colors->id); + glColorPointer(3, GL_UNSIGNED_BYTE, 0, 0); } - if( dm->drawObject->legacy ) { - return 0; + else { + glColorPointer(3, GL_UNSIGNED_BYTE, 0, dm->drawObject->colors->pointer); } - index = MEM_mallocN(sizeof(int)*object->nmaterials,"GPU_buffer_setup"); - for( i = 0; i < object->nmaterials; i++ ) { - index[i] = object->materials[i].start*vector_size; - redir[object->materials[i].mat_nr] = i; - } + GLStates |= GPU_BUFFER_COLOR_STATE; +} - if( useVBOs ) { - success = 0; - while( success == 0 ) { - glBindBufferARB( target, buffer->id ); - glBufferDataARB( target, buffer->size, 0, GL_STATIC_DRAW_ARB ); /* discard previous data, avoid stalling gpu */ - varray = glMapBufferARB( target, GL_WRITE_ONLY_ARB ); - if( varray == 0 ) { - DEBUG_VBO( "Failed to map buffer to client address space\n" ); - GPU_buffer_free( buffer, globalPool ); - GPU_buffer_pool_delete_last( globalPool ); - buffer= NULL; - if( globalPool->size > 0 ) { - GPU_buffer_pool_delete_last( globalPool ); - buffer = GPU_buffer_alloc( size, globalPool ); - if( buffer == 0 ) { - dm->drawObject->legacy = 1; - success = 1; - } - } - else { - dm->drawObject->legacy = 1; - success = 1; - } - } - else { - success = 1; - } - } - - if( dm->drawObject->legacy == 0 ) { - uploaded = GL_FALSE; - while( !uploaded ) { - (*copy_f)( dm, varray, index, redir, user ); - uploaded = glUnmapBufferARB( target ); /* returns false if data got corruped during transfer */ - } - } - glBindBufferARB(target, 0); - } - else { - if( buffer->pointer != 0 ) { - varray = buffer->pointer; - (*copy_f)( dm, varray, index, redir, user ); - } - else { - dm->drawObject->legacy = 1; - } - } - - MEM_freeN(index); - - return buffer; -} - -static void GPU_buffer_copy_vertex(DerivedMesh *dm, float *varray, int *index, int *redir, void *UNUSED(user)) -{ - int start; - int i, j, numfaces; - - MVert *mvert; - MFace *mface; - - DEBUG_VBO("GPU_buffer_copy_vertex\n"); - - mvert = dm->getVertArray(dm); - mface = dm->getFaceArray(dm); - - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - start = index[redir[mface[i].mat_nr]]; - if( mface[i].v4 ) - index[redir[mface[i].mat_nr]] += 18; - else - index[redir[mface[i].mat_nr]] += 9; - - /* v1 v2 v3 */ - VECCOPY(&varray[start],mvert[mface[i].v1].co); - VECCOPY(&varray[start+3],mvert[mface[i].v2].co); - VECCOPY(&varray[start+6],mvert[mface[i].v3].co); - - if( mface[i].v4 ) { - /* v3 v4 v1 */ - VECCOPY(&varray[start+9],mvert[mface[i].v3].co); - VECCOPY(&varray[start+12],mvert[mface[i].v4].co); - VECCOPY(&varray[start+15],mvert[mface[i].v1].co); - } - } - j = dm->drawObject->nelements*3; - for( i = 0; i < dm->drawObject->nindices; i++ ) { - if( dm->drawObject->indices[i].element >= dm->drawObject->nelements ) { - VECCOPY(&varray[j],mvert[i].co); - j+=3; - } - } -} - -static GPUBuffer *GPU_buffer_vertex( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_buffer_vertex\n"); - - return GPU_buffer_setup( dm, dm->drawObject, 3, sizeof(float)*3*(dm->drawObject->nelements+dm->drawObject->nlooseverts), GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_vertex); -} - -static void GPU_buffer_copy_normal(DerivedMesh *dm, float *varray, int *index, int *redir, void *UNUSED(user)) -{ - int i, numfaces; - int start; - float norm[3]; - - float *nors= dm->getFaceDataArray(dm, CD_NORMAL); - MVert *mvert = dm->getVertArray(dm); - MFace *mface = dm->getFaceArray(dm); - - DEBUG_VBO("GPU_buffer_copy_normal\n"); - - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - const int smoothnormal = (mface[i].flag & ME_SMOOTH); - - start = index[redir[mface[i].mat_nr]]; - if( mface[i].v4 ) - index[redir[mface[i].mat_nr]] += 18; - else - index[redir[mface[i].mat_nr]] += 9; - - /* v1 v2 v3 */ - if(smoothnormal) { - VECCOPY(&varray[start],mvert[mface[i].v1].no); - VECCOPY(&varray[start+3],mvert[mface[i].v2].no); - VECCOPY(&varray[start+6],mvert[mface[i].v3].no); - } - else { - if( nors ) { - VECCOPY(&varray[start],&nors[i*3]); - VECCOPY(&varray[start+3],&nors[i*3]); - VECCOPY(&varray[start+6],&nors[i*3]); - } - if( mface[i].v4 ) - normal_quad_v3( norm,mvert[mface[i].v1].co, mvert[mface[i].v2].co, mvert[mface[i].v3].co, mvert[mface[i].v4].co); - else - normal_tri_v3( norm,mvert[mface[i].v1].co, mvert[mface[i].v2].co, mvert[mface[i].v3].co); - VECCOPY(&varray[start],norm); - VECCOPY(&varray[start+3],norm); - VECCOPY(&varray[start+6],norm); - } - - if( mface[i].v4 ) { - /* v3 v4 v1 */ - if(smoothnormal) { - VECCOPY(&varray[start+9],mvert[mface[i].v3].no); - VECCOPY(&varray[start+12],mvert[mface[i].v4].no); - VECCOPY(&varray[start+15],mvert[mface[i].v1].no); - } - else { - VECCOPY(&varray[start+9],norm); - VECCOPY(&varray[start+12],norm); - VECCOPY(&varray[start+15],norm); - } - } - } -} - -static GPUBuffer *GPU_buffer_normal( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_buffer_normal\n"); - - return GPU_buffer_setup( dm, dm->drawObject, 3, sizeof(float)*3*dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_normal); -} - -static void GPU_buffer_copy_uv(DerivedMesh *dm, float *varray, int *index, int *redir, void *UNUSED(user)) -{ - int start; - int i, numfaces; - - MTFace *mtface; - MFace *mface; - - DEBUG_VBO("GPU_buffer_copy_uv\n"); - - mface = dm->getFaceArray(dm); - mtface = DM_get_face_data_layer(dm, CD_MTFACE); - - if( mtface == 0 ) { - DEBUG_VBO("Texture coordinates do not exist for this mesh"); - return; - } - - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - start = index[redir[mface[i].mat_nr]]; - if( mface[i].v4 ) - index[redir[mface[i].mat_nr]] += 12; - else - index[redir[mface[i].mat_nr]] += 6; - - /* v1 v2 v3 */ - VECCOPY2D(&varray[start],mtface[i].uv[0]); - VECCOPY2D(&varray[start+2],mtface[i].uv[1]); - VECCOPY2D(&varray[start+4],mtface[i].uv[2]); - - if( mface[i].v4 ) { - /* v3 v4 v1 */ - VECCOPY2D(&varray[start+6],mtface[i].uv[2]); - VECCOPY2D(&varray[start+8],mtface[i].uv[3]); - VECCOPY2D(&varray[start+10],mtface[i].uv[0]); - } - } -} - -static GPUBuffer *GPU_buffer_uv( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_buffer_uv\n"); - if( DM_get_face_data_layer(dm, CD_MTFACE) != 0 ) - return GPU_buffer_setup( dm, dm->drawObject, 2, sizeof(float)*2*dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_uv); - else - return 0; -} - -static void GPU_buffer_copy_color3( DerivedMesh *dm, float *varray_, int *index, int *redir, void *user ) -{ - int i, numfaces; - unsigned char *varray = (unsigned char *)varray_; - unsigned char *mcol = (unsigned char *)user; - MFace *mface = dm->getFaceArray(dm); - - DEBUG_VBO("GPU_buffer_copy_color3\n"); - - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - int start = index[redir[mface[i].mat_nr]]; - if( mface[i].v4 ) - index[redir[mface[i].mat_nr]] += 18; - else - index[redir[mface[i].mat_nr]] += 9; - - /* v1 v2 v3 */ - VECCOPY(&varray[start],&mcol[i*12]); - VECCOPY(&varray[start+3],&mcol[i*12+3]); - VECCOPY(&varray[start+6],&mcol[i*12+6]); - if( mface[i].v4 ) { - /* v3 v4 v1 */ - VECCOPY(&varray[start+9],&mcol[i*12+6]); - VECCOPY(&varray[start+12],&mcol[i*12+9]); - VECCOPY(&varray[start+15],&mcol[i*12]); - } - } -} - -static void GPU_buffer_copy_color4( DerivedMesh *dm, float *varray_, int *index, int *redir, void *user ) -{ - int i, numfaces; - unsigned char *varray = (unsigned char *)varray_; - unsigned char *mcol = (unsigned char *)user; - MFace *mface = dm->getFaceArray(dm); - - DEBUG_VBO("GPU_buffer_copy_color4\n"); - - numfaces= dm->getNumFaces(dm); - for( i=0; i < numfaces; i++ ) { - int start = index[redir[mface[i].mat_nr]]; - if( mface[i].v4 ) - index[redir[mface[i].mat_nr]] += 18; - else - index[redir[mface[i].mat_nr]] += 9; - - /* v1 v2 v3 */ - VECCOPY(&varray[start],&mcol[i*16]); - VECCOPY(&varray[start+3],&mcol[i*16+4]); - VECCOPY(&varray[start+6],&mcol[i*16+8]); - if( mface[i].v4 ) { - /* v3 v4 v1 */ - VECCOPY(&varray[start+9],&mcol[i*16+8]); - VECCOPY(&varray[start+12],&mcol[i*16+12]); - VECCOPY(&varray[start+15],&mcol[i*16]); - } - } -} - -static GPUBuffer *GPU_buffer_color( DerivedMesh *dm ) -{ - unsigned char *colors; - int i, numfaces; - MCol *mcol; - GPUBuffer *result; - DEBUG_VBO("GPU_buffer_color\n"); - - mcol = DM_get_face_data_layer(dm, CD_ID_MCOL); - dm->drawObject->colType = CD_ID_MCOL; - if(!mcol) { - mcol = DM_get_face_data_layer(dm, CD_WEIGHT_MCOL); - dm->drawObject->colType = CD_WEIGHT_MCOL; - } - if(!mcol) { - mcol = DM_get_face_data_layer(dm, CD_MCOL); - dm->drawObject->colType = CD_MCOL; - } - - numfaces= dm->getNumFaces(dm); - colors = MEM_mallocN(numfaces*12*sizeof(unsigned char), "GPU_buffer_color"); - for( i=0; i < numfaces*4; i++ ) { - colors[i*3] = mcol[i].b; - colors[i*3+1] = mcol[i].g; - colors[i*3+2] = mcol[i].r; - } - - result = GPU_buffer_setup( dm, dm->drawObject, 3, sizeof(char)*3*dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, colors, GPU_buffer_copy_color3 ); - - MEM_freeN(colors); - return result; -} - -static void GPU_buffer_copy_edge(DerivedMesh *dm, float *varray, int *UNUSED(index), int *UNUSED(redir), void *UNUSED(user)) -{ - int i; - - MEdge *medge; - unsigned int *varray_ = (unsigned int *)varray; - int numedges; - - DEBUG_VBO("GPU_buffer_copy_edge\n"); - - medge = dm->getEdgeArray(dm); - - numedges= dm->getNumEdges(dm); - for(i = 0; i < numedges; i++) { - varray_[i*2] = (unsigned int)dm->drawObject->indices[medge[i].v1].element; - varray_[i*2+1] = (unsigned int)dm->drawObject->indices[medge[i].v2].element; - } -} - -static GPUBuffer *GPU_buffer_edge( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_buffer_edge\n"); - - return GPU_buffer_setup( dm, dm->drawObject, 2, sizeof(int)*2*dm->drawObject->nedges, GL_ELEMENT_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_edge); -} - -static void GPU_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int *UNUSED(index), int *UNUSED(redir), void *UNUSED(user)) -{ - MTFace *tf = DM_get_face_data_layer(dm, CD_MTFACE); - int i, j=0; - - DEBUG_VBO("GPU_buffer_copy_uvedge\n"); - - if(tf) { - for(i = 0; i < dm->numFaceData; i++, tf++) { - MFace mf; - dm->getFace(dm,i,&mf); - - VECCOPY2D(&varray[j],tf->uv[0]); - VECCOPY2D(&varray[j+2],tf->uv[1]); - - VECCOPY2D(&varray[j+4],tf->uv[1]); - VECCOPY2D(&varray[j+6],tf->uv[2]); - - if(!mf.v4) { - VECCOPY2D(&varray[j+8],tf->uv[2]); - VECCOPY2D(&varray[j+10],tf->uv[0]); - j+=12; - } else { - VECCOPY2D(&varray[j+8],tf->uv[2]); - VECCOPY2D(&varray[j+10],tf->uv[3]); - - VECCOPY2D(&varray[j+12],tf->uv[3]); - VECCOPY2D(&varray[j+14],tf->uv[0]); - j+=16; - } - } - } - else { - DEBUG_VBO("Could not get MTFACE data layer"); - } -} - -static GPUBuffer *GPU_buffer_uvedge( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_buffer_uvedge\n"); - /* logic here: - * ...each face gets 3 'nelements' - * ...3 edges per triangle - * ...each edge has its own, non-shared coords. - * so each tri corner needs minimum of 4 floats, quads used less so here we can over allocate and assume all tris. - * */ - return GPU_buffer_setup( dm, dm->drawObject, 4, 4 * sizeof(float) * dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, 0, GPU_buffer_copy_uvedge); -} - - -void GPU_vertex_setup( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_vertex_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->vertices == 0 ) - dm->drawObject->vertices = GPU_buffer_vertex( dm ); - if( dm->drawObject->vertices == 0 ) { - DEBUG_VBO( "Failed to setup vertices\n" ); - return; - } - - glEnableClientState( GL_VERTEX_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->vertices->id ); - glVertexPointer( 3, GL_FLOAT, 0, 0 ); - } - else { - glVertexPointer( 3, GL_FLOAT, 0, dm->drawObject->vertices->pointer ); - } - - GLStates |= GPU_BUFFER_VERTEX_STATE; -} - -void GPU_normal_setup( DerivedMesh *dm ) +void GPU_edge_setup(DerivedMesh *dm) { - DEBUG_VBO("GPU_normal_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->normals == 0 ) - dm->drawObject->normals = GPU_buffer_normal( dm ); - if( dm->drawObject->normals == 0 ) { - DEBUG_VBO( "Failed to setup normals\n" ); + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_EDGE)) return; - } - glEnableClientState( GL_NORMAL_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->normals->id ); - glNormalPointer( GL_FLOAT, 0, 0 ); - } - else { - glNormalPointer( GL_FLOAT, 0, dm->drawObject->normals->pointer ); - } - - GLStates |= GPU_BUFFER_NORMAL_STATE; -} - -void GPU_uv_setup( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_uv_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->uv == 0 ) - dm->drawObject->uv = GPU_buffer_uv( dm ); - - if( dm->drawObject->uv != 0 ) { - glEnableClientState( GL_TEXTURE_COORD_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->uv->id ); - glTexCoordPointer( 2, GL_FLOAT, 0, 0 ); - } - else { - glTexCoordPointer( 2, GL_FLOAT, 0, dm->drawObject->uv->pointer ); - } - - GLStates |= GPU_BUFFER_TEXCOORD_STATE; - } -} -void GPU_color_setup( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_color_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->colors == 0 ) - dm->drawObject->colors = GPU_buffer_color( dm ); - if( dm->drawObject->colors == 0 ) { - DEBUG_VBO( "Failed to setup colors\n" ); - return; - } - glEnableClientState( GL_COLOR_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->colors->id ); - glColorPointer( 3, GL_UNSIGNED_BYTE, 0, 0 ); - } - else { - glColorPointer( 3, GL_UNSIGNED_BYTE, 0, dm->drawObject->colors->pointer ); - } - - GLStates |= GPU_BUFFER_COLOR_STATE; -} - -void GPU_edge_setup( DerivedMesh *dm ) -{ - DEBUG_VBO("GPU_edge_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->edges == 0 ) - dm->drawObject->edges = GPU_buffer_edge( dm ); - if( dm->drawObject->edges == 0 ) { - DEBUG_VBO( "Failed to setup edges\n" ); - return; - } - if( dm->drawObject->vertices == 0 ) - dm->drawObject->vertices = GPU_buffer_vertex( dm ); - if( dm->drawObject->vertices == 0 ) { - DEBUG_VBO( "Failed to setup vertices\n" ); + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_VERTEX)) return; - } - glEnableClientState( GL_VERTEX_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->vertices->id ); - glVertexPointer( 3, GL_FLOAT, 0, 0 ); + glEnableClientState(GL_VERTEX_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->points->id); + glVertexPointer(3, GL_FLOAT, 0, 0); } else { - glVertexPointer( 3, GL_FLOAT, 0, dm->drawObject->vertices->pointer ); + glVertexPointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer); } GLStates |= GPU_BUFFER_VERTEX_STATE; - if( useVBOs ) { - glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, dm->drawObject->edges->id ); - } + if(useVBOs) + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, dm->drawObject->edges->id); GLStates |= GPU_BUFFER_ELEMENT_STATE; } -void GPU_uvedge_setup( DerivedMesh *dm ) +void GPU_uvedge_setup(DerivedMesh *dm) { - DEBUG_VBO("GPU_uvedge_setup\n"); - if( dm->drawObject == 0 ) - dm->drawObject = GPU_drawobject_new( dm ); - if( dm->drawObject->uvedges == 0 ) - dm->drawObject->uvedges = GPU_buffer_uvedge( dm ); - if( dm->drawObject->uvedges == 0 ) { - DEBUG_VBO( "Failed to setup UV edges\n" ); + if(!gpu_buffer_setup_common(dm, GPU_BUFFER_UVEDGE)) return; - } - glEnableClientState( GL_VERTEX_ARRAY ); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, dm->drawObject->uvedges->id ); - glVertexPointer( 2, GL_FLOAT, 0, 0 ); + glEnableClientState(GL_VERTEX_ARRAY); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->uvedges->id); + glVertexPointer(2, GL_FLOAT, 0, 0); } else { - glVertexPointer( 2, GL_FLOAT, 0, dm->drawObject->uvedges->pointer ); + glVertexPointer(2, GL_FLOAT, 0, dm->drawObject->uvedges->pointer); } GLStates |= GPU_BUFFER_VERTEX_STATE; } -void GPU_interleaved_setup( GPUBuffer *buffer, int data[] ) { - int i; - int elementsize = 0; - intptr_t offset = 0; - - DEBUG_VBO("GPU_interleaved_setup\n"); - - for( i = 0; data[i] != GPU_BUFFER_INTER_END; i++ ) { - switch( data[i] ) { - case GPU_BUFFER_INTER_V3F: - elementsize += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_N3F: - elementsize += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_T2F: - elementsize += 2*sizeof(float); - break; - case GPU_BUFFER_INTER_C3UB: - elementsize += 3*sizeof(unsigned char); - break; - case GPU_BUFFER_INTER_C4UB: - elementsize += 4*sizeof(unsigned char); - break; - default: - DEBUG_VBO( "Unknown element in data type array in GPU_interleaved_setup\n" ); - } - } - - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, buffer->id ); - for( i = 0; data[i] != GPU_BUFFER_INTER_END; i++ ) { - switch( data[i] ) { - case GPU_BUFFER_INTER_V3F: - glEnableClientState( GL_VERTEX_ARRAY ); - glVertexPointer( 3, GL_FLOAT, elementsize, (void *)offset ); - GLStates |= GPU_BUFFER_VERTEX_STATE; - offset += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_N3F: - glEnableClientState( GL_NORMAL_ARRAY ); - glNormalPointer( GL_FLOAT, elementsize, (void *)offset ); - GLStates |= GPU_BUFFER_NORMAL_STATE; - offset += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_T2F: - glEnableClientState( GL_TEXTURE_COORD_ARRAY ); - glTexCoordPointer( 2, GL_FLOAT, elementsize, (void *)offset ); - GLStates |= GPU_BUFFER_TEXCOORD_STATE; - offset += 2*sizeof(float); - break; - case GPU_BUFFER_INTER_C3UB: - glEnableClientState( GL_COLOR_ARRAY ); - glColorPointer( 3, GL_UNSIGNED_BYTE, elementsize, (void *)offset ); - GLStates |= GPU_BUFFER_COLOR_STATE; - offset += 3*sizeof(unsigned char); - break; - case GPU_BUFFER_INTER_C4UB: - glEnableClientState( GL_COLOR_ARRAY ); - glColorPointer( 4, GL_UNSIGNED_BYTE, elementsize, (void *)offset ); - GLStates |= GPU_BUFFER_COLOR_STATE; - offset += 4*sizeof(unsigned char); - break; - } - } - } - else { - for( i = 0; data[i] != GPU_BUFFER_INTER_END; i++ ) { - switch( data[i] ) { - case GPU_BUFFER_INTER_V3F: - glEnableClientState( GL_VERTEX_ARRAY ); - glVertexPointer( 3, GL_FLOAT, elementsize, offset+(char *)buffer->pointer ); - GLStates |= GPU_BUFFER_VERTEX_STATE; - offset += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_N3F: - glEnableClientState( GL_NORMAL_ARRAY ); - glNormalPointer( GL_FLOAT, elementsize, offset+(char *)buffer->pointer ); - GLStates |= GPU_BUFFER_NORMAL_STATE; - offset += 3*sizeof(float); - break; - case GPU_BUFFER_INTER_T2F: - glEnableClientState( GL_TEXTURE_COORD_ARRAY ); - glTexCoordPointer( 2, GL_FLOAT, elementsize, offset+(char *)buffer->pointer ); - GLStates |= GPU_BUFFER_TEXCOORD_STATE; - offset += 2*sizeof(float); - break; - case GPU_BUFFER_INTER_C3UB: - glEnableClientState( GL_COLOR_ARRAY ); - glColorPointer( 3, GL_UNSIGNED_BYTE, elementsize, offset+(char *)buffer->pointer ); - GLStates |= GPU_BUFFER_COLOR_STATE; - offset += 3*sizeof(unsigned char); - break; - case GPU_BUFFER_INTER_C4UB: - glEnableClientState( GL_COLOR_ARRAY ); - glColorPointer( 4, GL_UNSIGNED_BYTE, elementsize, offset+(char *)buffer->pointer ); - GLStates |= GPU_BUFFER_COLOR_STATE; - offset += 4*sizeof(unsigned char); - break; - } - } - } -} - -static int GPU_typesize( int type ) { - switch( type ) { - case GL_FLOAT: - return sizeof(float); - case GL_INT: - return sizeof(int); - case GL_UNSIGNED_INT: - return sizeof(unsigned int); - case GL_BYTE: - return sizeof(char); - case GL_UNSIGNED_BYTE: - return sizeof(unsigned char); - default: - return 0; +static int GPU_typesize(int type) { + switch(type) { + case GL_FLOAT: + return sizeof(float); + case GL_INT: + return sizeof(int); + case GL_UNSIGNED_INT: + return sizeof(unsigned int); + case GL_BYTE: + return sizeof(char); + case GL_UNSIGNED_BYTE: + return sizeof(unsigned char); + default: + return 0; } } -int GPU_attrib_element_size( GPUAttrib data[], int numdata ) { +int GPU_attrib_element_size(GPUAttrib data[], int numdata) { int i, elementsize = 0; - for( i = 0; i < numdata; i++ ) { + for(i = 0; i < numdata; i++) { int typesize = GPU_typesize(data[i].type); - if( typesize == 0 ) - DEBUG_VBO( "Unknown element in data type array in GPU_attrib_element_size\n" ); - else { + if(typesize != 0) elementsize += typesize*data[i].size; - } } return elementsize; } -void GPU_interleaved_attrib_setup( GPUBuffer *buffer, GPUAttrib data[], int numdata ) { +void GPU_interleaved_attrib_setup(GPUBuffer *buffer, GPUAttrib data[], int numdata) { int i; int elementsize; intptr_t offset = 0; - DEBUG_VBO("GPU_interleaved_attrib_setup\n"); - - for( i = 0; i < MAX_GPU_ATTRIB_DATA; i++ ) { - if( attribData[i].index != -1 ) { - glDisableVertexAttribArrayARB( attribData[i].index ); + for(i = 0; i < MAX_GPU_ATTRIB_DATA; i++) { + if(attribData[i].index != -1) { + glDisableVertexAttribArrayARB(attribData[i].index); } else break; } - elementsize = GPU_attrib_element_size( data, numdata ); + elementsize = GPU_attrib_element_size(data, numdata); - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, buffer->id ); - for( i = 0; i < numdata; i++ ) { - glEnableVertexAttribArrayARB( data[i].index ); - glVertexAttribPointerARB( data[i].index, data[i].size, data[i].type, GL_FALSE, elementsize, (void *)offset ); + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffer->id); + for(i = 0; i < numdata; i++) { + glEnableVertexAttribArrayARB(data[i].index); + glVertexAttribPointerARB(data[i].index, data[i].size, data[i].type, + GL_FALSE, elementsize, (void *)offset); offset += data[i].size*GPU_typesize(data[i].type); attribData[i].index = data[i].index; @@ -1513,9 +1115,10 @@ void GPU_interleaved_attrib_setup( GPUBuffer *buffer, GPUAttrib data[], int numd attribData[numdata].index = -1; } else { - for( i = 0; i < numdata; i++ ) { - glEnableVertexAttribArrayARB( data[i].index ); - glVertexAttribPointerARB( data[i].index, data[i].size, data[i].type, GL_FALSE, elementsize, (char *)buffer->pointer + offset ); + for(i = 0; i < numdata; i++) { + glEnableVertexAttribArrayARB(data[i].index); + glVertexAttribPointerARB(data[i].index, data[i].size, data[i].type, + GL_FALSE, elementsize, (char *)buffer->pointer + offset); offset += data[i].size*GPU_typesize(data[i].type); } } @@ -1525,93 +1128,99 @@ void GPU_interleaved_attrib_setup( GPUBuffer *buffer, GPUAttrib data[], int numd void GPU_buffer_unbind(void) { int i; - DEBUG_VBO("GPU_buffer_unbind\n"); - - if( GLStates & GPU_BUFFER_VERTEX_STATE ) - glDisableClientState( GL_VERTEX_ARRAY ); - if( GLStates & GPU_BUFFER_NORMAL_STATE ) - glDisableClientState( GL_NORMAL_ARRAY ); - if( GLStates & GPU_BUFFER_TEXCOORD_STATE ) - glDisableClientState( GL_TEXTURE_COORD_ARRAY ); - if( GLStates & GPU_BUFFER_COLOR_STATE ) - glDisableClientState( GL_COLOR_ARRAY ); - if( GLStates & GPU_BUFFER_ELEMENT_STATE ) { - if( useVBOs ) { - glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, 0 ); + + if(GLStates & GPU_BUFFER_VERTEX_STATE) + glDisableClientState(GL_VERTEX_ARRAY); + if(GLStates & GPU_BUFFER_NORMAL_STATE) + glDisableClientState(GL_NORMAL_ARRAY); + if(GLStates & GPU_BUFFER_TEXCOORD_STATE) + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + if(GLStates & GPU_BUFFER_COLOR_STATE) + glDisableClientState(GL_COLOR_ARRAY); + if(GLStates & GPU_BUFFER_ELEMENT_STATE) { + if(useVBOs) { + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); } } - GLStates &= !(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE | GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE | GPU_BUFFER_ELEMENT_STATE); + GLStates &= !(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE | + GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE | + GPU_BUFFER_ELEMENT_STATE); - for( i = 0; i < MAX_GPU_ATTRIB_DATA; i++ ) { - if( attribData[i].index != -1 ) { - glDisableVertexAttribArrayARB( attribData[i].index ); + for(i = 0; i < MAX_GPU_ATTRIB_DATA; i++) { + if(attribData[i].index != -1) { + glDisableVertexAttribArrayARB(attribData[i].index); } else break; } - if( GLStates != 0 ) { - DEBUG_VBO( "Some weird OpenGL state is still set. Why?" ); - } - if( useVBOs ) - glBindBufferARB( GL_ARRAY_BUFFER_ARB, 0 ); + + if(useVBOs) + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } -void GPU_color3_upload( DerivedMesh *dm, unsigned char *data ) +/* confusion: code in cdderivedmesh calls both GPU_color_setup and + GPU_color3_upload; both of these set the `colors' buffer, so seems + like it will just needlessly overwrite? --nicholas */ +void GPU_color3_upload(DerivedMesh *dm, unsigned char *data) { - if( dm->drawObject == 0 ) + if(dm->drawObject == 0) dm->drawObject = GPU_drawobject_new(dm); - GPU_buffer_free(dm->drawObject->colors,globalPool); - dm->drawObject->colors = GPU_buffer_setup( dm, dm->drawObject, 3, sizeof(char)*3*dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, data, GPU_buffer_copy_color3 ); + GPU_buffer_free(dm->drawObject->colors); + + dm->drawObject->colors = gpu_buffer_setup(dm, dm->drawObject, 3, + sizeof(char)*3*dm->drawObject->tot_triangle_point, + GL_ARRAY_BUFFER_ARB, data, GPU_buffer_copy_color3); } -void GPU_color4_upload( DerivedMesh *dm, unsigned char *data ) + +/* this is used only in cdDM_drawFacesColored, which I think is no + longer used, so can probably remove this --nicholas */ +void GPU_color4_upload(DerivedMesh *UNUSED(dm), unsigned char *UNUSED(data)) { - if( dm->drawObject == 0 ) + /*if(dm->drawObject == 0) dm->drawObject = GPU_drawobject_new(dm); - GPU_buffer_free(dm->drawObject->colors,globalPool); - dm->drawObject->colors = GPU_buffer_setup( dm, dm->drawObject, 3, sizeof(char)*3*dm->drawObject->nelements, GL_ARRAY_BUFFER_ARB, data, GPU_buffer_copy_color4 ); + GPU_buffer_free(dm->drawObject->colors); + dm->drawObject->colors = gpu_buffer_setup(dm, dm->drawObject, 3, + sizeof(char)*3*dm->drawObject->tot_triangle_point, + GL_ARRAY_BUFFER_ARB, data, GPU_buffer_copy_color4);*/ } -void GPU_color_switch( int mode ) +void GPU_color_switch(int mode) { - if( mode ) { - if( !(GLStates & GPU_BUFFER_COLOR_STATE) ) - glEnableClientState( GL_COLOR_ARRAY ); + if(mode) { + if(!(GLStates & GPU_BUFFER_COLOR_STATE)) + glEnableClientState(GL_COLOR_ARRAY); GLStates |= GPU_BUFFER_COLOR_STATE; } else { - if( GLStates & GPU_BUFFER_COLOR_STATE ) - glDisableClientState( GL_COLOR_ARRAY ); + if(GLStates & GPU_BUFFER_COLOR_STATE) + glDisableClientState(GL_COLOR_ARRAY); GLStates &= (!GPU_BUFFER_COLOR_STATE); } } -int GPU_buffer_legacy( DerivedMesh *dm ) +/* return 1 if drawing should be done using old immediate-mode + code, 0 otherwise */ +int GPU_buffer_legacy(DerivedMesh *dm) { int test= (U.gameflags & USER_DISABLE_VBO); - if( test ) + if(test) return 1; - if( dm->drawObject == 0 ) + if(dm->drawObject == 0) dm->drawObject = GPU_drawobject_new(dm); return dm->drawObject->legacy; } -void *GPU_buffer_lock( GPUBuffer *buffer ) +void *GPU_buffer_lock(GPUBuffer *buffer) { float *varray; - DEBUG_VBO("GPU_buffer_lock\n"); - if( buffer == 0 ) { - DEBUG_VBO( "Failed to lock NULL buffer\n" ); + if(!buffer) return 0; - } - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, buffer->id ); - varray = glMapBufferARB( GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB ); - if( varray == 0 ) { - DEBUG_VBO( "Failed to map buffer to client address space\n" ); - } + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffer->id); + varray = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); return varray; } else { @@ -1619,23 +1228,18 @@ void *GPU_buffer_lock( GPUBuffer *buffer ) } } -void *GPU_buffer_lock_stream( GPUBuffer *buffer ) +void *GPU_buffer_lock_stream(GPUBuffer *buffer) { float *varray; - DEBUG_VBO("GPU_buffer_lock_stream\n"); - if( buffer == 0 ) { - DEBUG_VBO( "Failed to lock NULL buffer\n" ); + if(!buffer) return 0; - } - if( useVBOs ) { - glBindBufferARB( GL_ARRAY_BUFFER_ARB, buffer->id ); - glBufferDataARB( GL_ARRAY_BUFFER_ARB, buffer->size, 0, GL_STREAM_DRAW_ARB ); /* discard previous data, avoid stalling gpu */ - varray = glMapBufferARB( GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB ); - if( varray == 0 ) { - DEBUG_VBO( "Failed to map buffer to client address space\n" ); - } + if(useVBOs) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffer->id); + /* discard previous data, avoid stalling gpu */ + glBufferDataARB(GL_ARRAY_BUFFER_ARB, buffer->size, 0, GL_STREAM_DRAW_ARB); + varray = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); return varray; } else { @@ -1643,25 +1247,404 @@ void *GPU_buffer_lock_stream( GPUBuffer *buffer ) } } -void GPU_buffer_unlock( GPUBuffer *buffer ) +void GPU_buffer_unlock(GPUBuffer *buffer) { - DEBUG_VBO( "GPU_buffer_unlock\n" ); - if( useVBOs ) { - if( buffer != 0 ) { - if( glUnmapBufferARB( GL_ARRAY_BUFFER_ARB ) == 0 ) { - DEBUG_VBO( "Failed to copy new data\n" ); - } + if(useVBOs) { + if(buffer) { + /* note: this operation can fail, could return + an error code from this function? */ + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); } glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } } -void GPU_buffer_draw_elements( GPUBuffer *elements, unsigned int mode, int start, int count ) +/* used for drawing edges */ +void GPU_buffer_draw_elements(GPUBuffer *elements, unsigned int mode, int start, int count) +{ + glDrawElements(mode, count, GL_UNSIGNED_INT, + (useVBOs ? + (void*)(start * sizeof(unsigned int)) : + ((int*)elements->pointer) + start)); +} + + +/* XXX: the rest of the code in this file is used for optimized PBVH + drawing and doesn't interact at all with the buffer code above */ + +/* Convenience struct for building the VBO. */ +typedef struct { + float co[3]; + short no[3]; +} VertexBufferFormat; + +typedef struct { + /* opengl buffer handles */ + GLuint vert_buf, index_buf; + GLenum index_type; + + /* mesh pointers in case buffer allocation fails */ + MFace *mface; + MVert *mvert; + int *face_indices; + int totface; + + /* grid pointers */ + DMGridData **grids; + int *grid_indices; + int totgrid; + int gridsize; + + unsigned int tot_tri, tot_quad; +} GPU_Buffers; + +void GPU_update_mesh_buffers(void *buffers_v, MVert *mvert, + int *vert_indices, int totvert) { - if( useVBOs ) { - glDrawElements( mode, count, GL_UNSIGNED_INT, (void *)(start*sizeof(unsigned int)) ); + GPU_Buffers *buffers = buffers_v; + VertexBufferFormat *vert_data; + int i; + + if(buffers->vert_buf) { + /* Build VBO */ + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, + sizeof(VertexBufferFormat) * totvert, + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + if(vert_data) { + for(i = 0; i < totvert; ++i) { + MVert *v = mvert + vert_indices[i]; + VertexBufferFormat *out = vert_data + i; + + copy_v3_v3(out->co, v->co); + memcpy(out->no, v->no, sizeof(short) * 3); + } + + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->vert_buf); + buffers->vert_buf = 0; + } + + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } - else { - glDrawElements( mode, count, GL_UNSIGNED_INT, ((int *)elements->pointer)+start ); + + buffers->mvert = mvert; +} + +void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, + int *face_indices, int totface, + int *vert_indices, int tot_uniq_verts, + int totvert) +{ + GPU_Buffers *buffers; + unsigned short *tri_data; + int i, j, k, tottri; + + buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + buffers->index_type = GL_UNSIGNED_SHORT; + + /* Count the number of triangles */ + for(i = 0, tottri = 0; i < totface; ++i) + tottri += mface[face_indices[i]].v4 ? 2 : 1; + + if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) + glGenBuffersARB(1, &buffers->index_buf); + + if(buffers->index_buf) { + /* Generate index buffer object */ + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the triangle buffer */ + tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(tri_data) { + for(i = 0; i < totface; ++i) { + MFace *f = mface + face_indices[i]; + int v[3]; + + v[0]= f->v1; + v[1]= f->v2; + v[2]= f->v3; + + for(j = 0; j < (f->v4 ? 2 : 1); ++j) { + for(k = 0; k < 3; ++k) { + void *value, *key = SET_INT_IN_POINTER(v[k]); + int vbo_index; + + value = BLI_ghash_lookup(map, key); + vbo_index = GET_INT_FROM_POINTER(value); + + if(vbo_index < 0) { + vbo_index = -vbo_index + + tot_uniq_verts - 1; + } + + *tri_data = vbo_index; + ++tri_data; + } + v[0] = f->v4; + v[1] = f->v1; + v[2] = f->v3; + } + } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; + } + + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); } + + if(buffers->index_buf) + glGenBuffersARB(1, &buffers->vert_buf); + GPU_update_mesh_buffers(buffers, mvert, vert_indices, totvert); + + buffers->tot_tri = tottri; + + buffers->mface = mface; + buffers->face_indices = face_indices; + buffers->totface = totface; + + return buffers; } + +void GPU_update_grid_buffers(void *buffers_v, DMGridData **grids, + int *grid_indices, int totgrid, int gridsize, int smooth) +{ + GPU_Buffers *buffers = buffers_v; + DMGridData *vert_data; + int i, j, k, totvert; + + totvert= gridsize*gridsize*totgrid; + + /* Build VBO */ + if(buffers->vert_buf) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, + sizeof(DMGridData) * totvert, + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(vert_data) { + for(i = 0; i < totgrid; ++i) { + DMGridData *grid= grids[grid_indices[i]]; + memcpy(vert_data, grid, sizeof(DMGridData)*gridsize*gridsize); + + if(!smooth) { + /* for flat shading, recalc normals and set the last vertex of + each quad in the index buffer to have the flat normal as + that is what opengl will use */ + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + normal_quad_v3(vert_data[(j+1)*gridsize + (k+1)].no, + vert_data[(j+1)*gridsize + k].co, + vert_data[(j+1)*gridsize + k+1].co, + vert_data[j*gridsize + k+1].co, + vert_data[j*gridsize + k].co); + } + } + } + + vert_data += gridsize*gridsize; + } + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->vert_buf); + buffers->vert_buf = 0; + } + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } + + buffers->grids = grids; + buffers->grid_indices = grid_indices; + buffers->totgrid = totgrid; + buffers->gridsize = gridsize; + + //printf("node updated %p\n", buffers_v); +} + +void *GPU_build_grid_buffers(DMGridData **UNUSED(grids), int *UNUSED(grid_indices), + int totgrid, int gridsize) +{ + GPU_Buffers *buffers; + int i, j, k, totquad, offset= 0; + + buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + + /* Count the number of quads */ + totquad= (gridsize-1)*(gridsize-1)*totgrid; + + /* Generate index buffer object */ + if(GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO)) + glGenBuffersARB(1, &buffers->index_buf); + + if(buffers->index_buf) { + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + + if(totquad < USHRT_MAX) { + unsigned short *quad_data; + + buffers->index_type = GL_UNSIGNED_SHORT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(quad_data) { + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + } + } + + offset += gridsize*gridsize; + } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; + } + } + else { + unsigned int *quad_data; + + buffers->index_type = GL_UNSIGNED_INT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned int) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + if(quad_data) { + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + } + } + + offset += gridsize*gridsize; + } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; + } + } + + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); + } + + /* Build VBO */ + if(buffers->index_buf) + glGenBuffersARB(1, &buffers->vert_buf); + + buffers->tot_quad = totquad; + + return buffers; +} + +void GPU_draw_buffers(void *buffers_v) +{ + GPU_Buffers *buffers = buffers_v; + + if(buffers->vert_buf && buffers->index_buf) { + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + + if(buffers->tot_quad) { + glVertexPointer(3, GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, co)); + glNormalPointer(GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, no)); + + glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0); + } + else { + glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, co)); + glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, no)); + + glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0); + } + + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + } + else if(buffers->totface) { + /* fallback if we are out of memory */ + int i; + + for(i = 0; i < buffers->totface; ++i) { + MFace *f = buffers->mface + buffers->face_indices[i]; + + glBegin((f->v4)? GL_QUADS: GL_TRIANGLES); + glNormal3sv(buffers->mvert[f->v1].no); + glVertex3fv(buffers->mvert[f->v1].co); + glNormal3sv(buffers->mvert[f->v2].no); + glVertex3fv(buffers->mvert[f->v2].co); + glNormal3sv(buffers->mvert[f->v3].no); + glVertex3fv(buffers->mvert[f->v3].co); + if(f->v4) { + glNormal3sv(buffers->mvert[f->v4].no); + glVertex3fv(buffers->mvert[f->v4].co); + } + glEnd(); + } + } + else if(buffers->totgrid) { + int i, x, y, gridsize = buffers->gridsize; + + for(i = 0; i < buffers->totgrid; ++i) { + DMGridData *grid = buffers->grids[buffers->grid_indices[i]]; + + for(y = 0; y < gridsize-1; y++) { + glBegin(GL_QUAD_STRIP); + for(x = 0; x < gridsize; x++) { + DMGridData *a = &grid[y*gridsize + x]; + DMGridData *b = &grid[(y+1)*gridsize + x]; + + glNormal3fv(a->no); + glVertex3fv(a->co); + glNormal3fv(b->no); + glVertex3fv(b->co); + } + glEnd(); + } + } + } +} + +void GPU_free_buffers(void *buffers_v) +{ + if(buffers_v) { + GPU_Buffers *buffers = buffers_v; + + if(buffers->vert_buf) + glDeleteBuffersARB(1, &buffers->vert_buf); + if(buffers->index_buf) + glDeleteBuffersARB(1, &buffers->index_buf); + + MEM_freeN(buffers); + } +} + diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 0bc2e5da1c5..ed28696ef69 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -416,7 +416,7 @@ void WM_exit(bContext *C) BPY_python_end(); #endif - GPU_buffer_pool_free(NULL); + GPU_global_buffer_pool_free(); GPU_free_unused_buffers(); GPU_extensions_exit(); -- cgit v1.2.3 From d044ecea10f1a69e8e941f36d5e53e49dbed1446 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 9 Jul 2011 01:11:09 +0000 Subject: Compiler warning fix --- source/blender/editors/animation/anim_channels_edit.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 864bf8e55de..eee7fb0badd 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -51,6 +51,7 @@ #include "BKE_action.h" #include "BKE_fcurve.h" +#include "BKE_gpencil.h" #include "BKE_context.h" #include "BKE_global.h" -- cgit v1.2.3 From 767c7f24dd277fa1d8e97f02fcddb08cd6f25234 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 9 Jul 2011 01:14:07 +0000 Subject: Ctrl-R sets rotation mode for Pose Bones --- source/blender/editors/armature/armature_intern.h | 2 ++ source/blender/editors/armature/armature_ops.c | 4 +++ source/blender/editors/armature/poseobject.c | 43 ++++++++++++++++++++++- source/blender/makesrna/RNA_enum_types.h | 2 ++ source/blender/makesrna/intern/rna_pose.c | 32 +++++++++-------- 5 files changed, 67 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index f583ba0c903..9c466a79822 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -123,6 +123,8 @@ void POSE_OT_paths_clear(struct wmOperatorType *ot); void POSE_OT_autoside_names(struct wmOperatorType *ot); void POSE_OT_flip_names(struct wmOperatorType *ot); +void POSE_OT_rotation_mode_set(struct wmOperatorType *ot); + void POSE_OT_quaternions_flip(struct wmOperatorType *ot); void POSE_OT_armature_layers(struct wmOperatorType *ot); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 33748ebd0bb..faf06f09141 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -138,6 +138,8 @@ void ED_operatortypes_armature(void) WM_operatortype_append(POSE_OT_autoside_names); WM_operatortype_append(POSE_OT_flip_names); + + WM_operatortype_append(POSE_OT_rotation_mode_set); WM_operatortype_append(POSE_OT_quaternions_flip); @@ -310,6 +312,8 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "POSE_OT_quaternions_flip", FKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "POSE_OT_rotation_mode_set", RKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0); kmi= WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index cfd3f54c5b9..01c9839220e 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -64,6 +64,7 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "WM_api.h" #include "WM_types.h" @@ -1798,6 +1799,46 @@ void POSE_OT_autoside_names (wmOperatorType *ot) /* ********************************************** */ +static int pose_bone_rotmode_exec (bContext *C, wmOperator *op) +{ + Object *ob = CTX_data_active_object(C); + int mode = RNA_enum_get(op->ptr, "type"); + + /* set rotation mode of selected bones */ + CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) + { + pchan->rotmode = mode; + } + CTX_DATA_END; + + /* notifiers and updates */ + DAG_id_tag_update((ID *)ob, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); + + return OPERATOR_FINISHED; +} + +void POSE_OT_rotation_mode_set (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Set Rotation Mode"; + ot->idname= "POSE_OT_rotation_mode_set"; + ot->description= "Set the rotation representation used by selected bones"; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= pose_bone_rotmode_exec; + ot->poll= ED_operator_posemode; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + ot->prop= RNA_def_enum(ot->srna, "type", posebone_rotmode_items, 0, "Rotation Mode", ""); +} + +/* ********************************************** */ + /* Show all armature layers */ static int pose_armature_layers_showall_poll (bContext *C) { @@ -1884,7 +1925,7 @@ static int pose_armature_layers_exec (bContext *C, wmOperator *op) PointerRNA ptr; int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */ - if(ob==NULL || ob->data==NULL) { + if (ELEM(NULL, ob, ob->data)) { return OPERATOR_CANCELLED; } diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index fc415dc8082..56eb20f01b2 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -97,6 +97,8 @@ extern EnumPropertyItem wm_report_items[]; extern EnumPropertyItem transform_mode_types[]; +extern EnumPropertyItem posebone_rotmode_items[]; + extern EnumPropertyItem property_type_items[]; extern EnumPropertyItem property_unit_items[]; diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 47c8435cc46..635fc967a5a 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -45,6 +45,20 @@ #include "WM_types.h" + + +// XXX: this RNA enum define is currently duplicated for objects, since there is some text here which is not applicable +EnumPropertyItem posebone_rotmode_items[] = { + {ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock (default)"}, + {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"}, + {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector"}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "BIK_api.h" @@ -717,19 +731,7 @@ static void rna_def_pose_channel_constraints(BlenderRNA *brna, PropertyRNA *cpro } static void rna_def_pose_channel(BlenderRNA *brna) -{ - // XXX: this RNA enum define is currently duplicated for objects, since there is some text here which is not applicable - static EnumPropertyItem prop_rotmode_items[] = { - {ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock (default)"}, - {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"}, - {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector"}, - {0, NULL, 0, NULL, NULL}}; - +{ static float default_quat[4] = {1,0,0,0}; /* default quaternion values */ static float default_axisAngle[4] = {0,0,1,0}; /* default axis-angle rotation values */ static float default_scale[3] = {1,1,1}; /* default scale values */ @@ -807,7 +809,7 @@ static void rna_def_pose_channel(BlenderRNA *brna) * having a single one is better for Keyframing and other property-management situations... */ prop= RNA_def_property(srna, "rotation_axis_angle", PROP_FLOAT, PROP_AXISANGLE); - RNA_def_property_array(prop, 4); // TODO: maybe we'll need to define the 'default value' getter too... + RNA_def_property_array(prop, 4); RNA_def_property_float_funcs(prop, "rna_PoseChannel_rotation_axis_angle_get", "rna_PoseChannel_rotation_axis_angle_set", NULL); RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_4d_editable"); RNA_def_property_float_array_default(prop, default_axisAngle); @@ -824,7 +826,7 @@ static void rna_def_pose_channel(BlenderRNA *brna) prop= RNA_def_property(srna, "rotation_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "rotmode"); - RNA_def_property_enum_items(prop, prop_rotmode_items); // XXX move to using a single define of this someday + RNA_def_property_enum_items(prop, posebone_rotmode_items); // XXX move to using a single define of this someday RNA_def_property_enum_funcs(prop, NULL, "rna_PoseChannel_rotation_mode_set", NULL); RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable"); // XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too RNA_def_property_ui_text(prop, "Rotation Mode", ""); -- cgit v1.2.3 From 5506d18fa8b185924799ee5b370253e79029a1e4 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sat, 9 Jul 2011 14:22:52 +0000 Subject: Fox #27866: Curve handle snaps/locks when it shouldnt It was a precision error in calchandleNurb. Do not align handles along handle which si too short. --- source/blender/blenkernel/intern/curve.c | 41 +++++++++++++++++++------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 704af73dd10..202a3f28d9a 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -2431,6 +2431,7 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) { float *p1,*p2,*p3, pt[3]; float dx1,dy1,dz1,dx,dy,dz,vx,vy,vz,len,len1,len2; + const float eps= 1e-5; if(bezt->h1==0 && bezt->h2==0) return; @@ -2587,30 +2588,38 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) if(bezt->f1 & SELECT) { /* order of calculation */ if(bezt->h2==HD_ALIGN) { /* aligned */ - len= len2/len1; - p2[3]= p2[0]+len*(p2[0]-p2[-3]); - p2[4]= p2[1]+len*(p2[1]-p2[-2]); - p2[5]= p2[2]+len*(p2[2]-p2[-1]); + if(len1>eps) { + len= len2/len1; + p2[3]= p2[0]+len*(p2[0]-p2[-3]); + p2[4]= p2[1]+len*(p2[1]-p2[-2]); + p2[5]= p2[2]+len*(p2[2]-p2[-1]); + } } if(bezt->h1==HD_ALIGN) { - len= len1/len2; - p2[-3]= p2[0]+len*(p2[0]-p2[3]); - p2[-2]= p2[1]+len*(p2[1]-p2[4]); - p2[-1]= p2[2]+len*(p2[2]-p2[5]); + if(len2>eps) { + len= len1/len2; + p2[-3]= p2[0]+len*(p2[0]-p2[3]); + p2[-2]= p2[1]+len*(p2[1]-p2[4]); + p2[-1]= p2[2]+len*(p2[2]-p2[5]); + } } } else { if(bezt->h1==HD_ALIGN) { - len= len1/len2; - p2[-3]= p2[0]+len*(p2[0]-p2[3]); - p2[-2]= p2[1]+len*(p2[1]-p2[4]); - p2[-1]= p2[2]+len*(p2[2]-p2[5]); + if(len2>eps) { + len= len1/len2; + p2[-3]= p2[0]+len*(p2[0]-p2[3]); + p2[-2]= p2[1]+len*(p2[1]-p2[4]); + p2[-1]= p2[2]+len*(p2[2]-p2[5]); + } } if(bezt->h2==HD_ALIGN) { /* aligned */ - len= len2/len1; - p2[3]= p2[0]+len*(p2[0]-p2[-3]); - p2[4]= p2[1]+len*(p2[1]-p2[-2]); - p2[5]= p2[2]+len*(p2[2]-p2[-1]); + if(len1>eps) { + len= len2/len1; + p2[3]= p2[0]+len*(p2[0]-p2[-3]); + p2[4]= p2[1]+len*(p2[1]-p2[-2]); + p2[5]= p2[2]+len*(p2[2]-p2[-1]); + } } } } -- cgit v1.2.3 From 905d04ef9d9c9e7ec39c80791f17ebba257e5f1c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 9 Jul 2011 14:33:28 +0000 Subject: fix [#27915] Relax Pose crashes blender on bone with ChildOf constraint in linked rig --- source/blender/editors/armature/poseUtils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c index 7ade93076e5..3c74a816fdb 100644 --- a/source/blender/editors/armature/poseUtils.c +++ b/source/blender/editors/armature/poseUtils.c @@ -121,7 +121,7 @@ static void fcurves_to_pchan_links_get (ListBase *pfLinks, Object *ob, bAction * pfl->oldangle = pchan->rotAngle; /* make copy of custom properties */ - if (transFlags & ACT_TRANS_PROP) + if (pchan->prop && (transFlags & ACT_TRANS_PROP)) pfl->oldprops = IDP_CopyProperty(pchan->prop); } } -- cgit v1.2.3 From c314ac8ce33ba491bbdfcbacbe18d8e3465f5dc6 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sat, 9 Jul 2011 15:10:12 +0000 Subject: Fix #27888: Render artifacts in 2.58.1 It was a regression introduced in rev36301. Average normal calcilation used to fail due to triangular faces which are too slight. Do not use triangles with too small area for average normal calculation. --- source/blender/render/intern/source/convertblender.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 2c9aa4dece5..4c0ce24e3e7 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -2932,8 +2932,10 @@ static void init_render_curve(Render *re, ObjectRen *obr, int timeoffset) vlr->v3= RE_findOrAddVert(obr, startvert+index[2]); vlr->v4= NULL; - normal_tri_v3(tmp, vlr->v3->co, vlr->v2->co, vlr->v1->co); - add_v3_v3(n, tmp); + if(area_tri_v3(vlr->v3->co, vlr->v2->co, vlr->v1->co)>FLT_EPSILON) { + normal_tri_v3(tmp, vlr->v3->co, vlr->v2->co, vlr->v1->co); + add_v3_v3(n, tmp); + } vlr->mat= matar[ dl->col ]; vlr->flag= 0; -- cgit v1.2.3 From eb452225cec986e44f049d0cd42e862be13e4126 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 9 Jul 2011 15:15:17 +0000 Subject: Improvements to import system. Ability to include more parameters. --- source/blender/collada/AnimationExporter.cpp | 12 +++++- source/blender/collada/AnimationImporter.cpp | 60 ++++++++++++++++++---------- source/blender/collada/AnimationImporter.h | 32 +++++++++++++-- 3 files changed, 76 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 311ed290c45..2072b1df7a8 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -92,7 +92,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "lens"))|| (!strcmp(transformName, "ortho_scale"))|| - (!strcmp(transformName, "clipend"))) + (!strcmp(transformName, "clipend"))||(!strcmp(transformName, "clipsta"))) dae_animation(ob ,fcu, transformName,true ); fcu = fcu->next; } @@ -188,7 +188,8 @@ void AnimationExporter::exportAnimations(Scene *sce) } //maybe a list or a vector of float animations else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend")|| - !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")||!strcmp(transformName, "clipend")) + !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")||!strcmp(transformName, "clipend")|| + !strcmp(transformName, "clipsta")) { axis_name = ""; } @@ -811,6 +812,9 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 8; else if (!strcmp(name, "clipend")) tm_type = 9; + else if (!strcmp(name, "clipsta")) + tm_type = 10; + else tm_type = -1; } @@ -845,7 +849,11 @@ void AnimationExporter::exportAnimations(Scene *sce) case 9: tm_name = "zfar"; break; + case 10: + tm_name = "znear"; + break; + default: tm_name = ""; break; diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index ecd174891ae..5f4d4905646 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -724,7 +724,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::map& object_map, std::map FW_object_map) { - int animType = get_animation_type(node, FW_object_map ); + AnimationImporter::AnimMix* animType = get_animation_type(node, FW_object_map ); bool is_joint = node->getType() == COLLADAFW::Node::JOINT; COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; @@ -738,7 +738,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , bAction * act; bActionGroup *grp = NULL; - if ( (animType & NODE_TRANSFORM) != 0 ) + //if ( (animType & NODE_TRANSFORM) != 0 ) + if ( (animType->transform) != 0 ) { const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; char joint_path[200]; @@ -804,7 +805,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) || ((animType & LIGHT_FOE) != 0) ) + //if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) || ((animType & LIGHT_FOE) != 0) ) + if ((animType->light) != 0) { Lamp * lamp = (Lamp*) ob->data; @@ -817,7 +819,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; - if ((animType & LIGHT_COLOR) != 0) + if ((animType->light & LIGHT_COLOR) != 0) { const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); @@ -840,13 +842,13 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ((animType & LIGHT_FOA) != 0 ) + if ((animType->light & LIGHT_FOA) != 0 ) { const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& listid = foa->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "spot_size"); } - if ( (animType & LIGHT_FOE) != 0 ) + if ( (animType->light & LIGHT_FOE) != 0 ) { const COLLADAFW::AnimatableFloat *foe = &(light->getFallOffExponent()); const COLLADAFW::UniqueId& listid = foe->getAnimationList(); @@ -856,7 +858,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( ((animType & CAMERA_XFOV) != 0) || (animType & CAMERA_XMAG) != 0 ) + //if ( ((animType & CAMERA_XFOV) != 0) || (animType & CAMERA_XMAG) != 0 ) + if ( (animType->camera) != 0) { Camera * camera = (Camera*) ob->data; @@ -869,14 +872,14 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - if ((animType & CAMERA_XFOV) != 0 ) + if ((animType->camera & CAMERA_XFOV) != 0 ) { const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); const COLLADAFW::UniqueId& listid = xfov->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "lens"); } - else if ((animType & CAMERA_XMAG) != 0 ) + else if ((animType->camera & CAMERA_XMAG) != 0 ) { const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); const COLLADAFW::UniqueId& listid = xmag->getAnimationList(); @@ -887,11 +890,16 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms -int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , +AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , std::map FW_object_map) { - int type = INANIMATE ; - //bool exists = false; + AnimationImporter::AnimMix *types = NULL; + types->transform = INANIMATE ; + types->light = INANIMATE; + types->camera = INANIMATE; + types->material = INANIMATE; + types->texture = INANIMATE; + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); //for each transformation in node @@ -903,7 +911,7 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , if (animlist_map.find(listid) == animlist_map.end()) continue ; else { - type = type|NODE_TRANSFORM; + types->transform = types->transform|NODE_TRANSFORM; break; } } @@ -917,22 +925,26 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , //check if color has animations if (animlist_map.find(col_listid) != animlist_map.end()) - type = type|LIGHT_COLOR; + // type = type|LIGHT_FOA; + types->light = types->light|LIGHT_COLOR; const COLLADAFW::AnimatableFloat *fallOffAngle = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& foa_listid = fallOffAngle ->getAnimationList(); if (animlist_map.find(foa_listid) != animlist_map.end()) - type = type|LIGHT_FOA; + // type = type|LIGHT_FOA; + types->light = types->light|LIGHT_FOA; const COLLADAFW::AnimatableFloat *fallOffExpo = &(light->getFallOffExponent()); const COLLADAFW::UniqueId& foe_listid = fallOffExpo ->getAnimationList(); if (animlist_map.find(foe_listid) != animlist_map.end()) - type = type|LIGHT_FOE; + //type = type|LIGHT_FOE; + types->light = types->light|LIGHT_FOE; + + //if ( type != 0) break; + if ( types->light != 0) break; - if ( type != 0) break; - } const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras(); @@ -944,19 +956,23 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); if (animlist_map.find(xfov_listid) != animlist_map.end()) - type = type|CAMERA_XFOV; + //type = type|CAMERA_XFOV; + types->camera = types->camera|CAMERA_XFOV; + } else { const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); const COLLADAFW::UniqueId& xmag_listid = xmag ->getAnimationList(); if (animlist_map.find(xmag_listid) != animlist_map.end()) - type = type|CAMERA_XMAG; + // type = type|CAMERA_XMAG; + types->camera = types->camera|CAMERA_XMAG; } - if ( type != 0) break; + //if ( type != 0) break; + if ( types->camera != 0) break; } - return type; + return types; } //XXX Is not used anymore. diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 138d932cdbf..037ae04a0b4 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -85,17 +85,41 @@ private: void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated); int typeFlag; - + + enum lightAnim + { +// INANIMATE = 0, + LIGHT_COLOR = 2, + LIGHT_FOA = 4, + LIGHT_FOE = 8 + }; + + enum cameraAnim + { +// INANIMATE = 0, + CAMERA_XFOV = 2, + CAMERA_XMAG = 4 + }; + enum AnimationType { INANIMATE = 0, NODE_TRANSFORM = 1, - LIGHT_COLOR = 2, + /* LIGHT_COLOR = 2, LIGHT_FOA = 4, LIGHT_FOE = 8, CAMERA_XFOV = 16, - CAMERA_XMAG = 32 + CAMERA_XMAG = 32*/ }; + + struct AnimMix + { + int transform; + int light; + int camera; + int material; + int texture; + }; public: AnimationImporter(UnitConverter *conv, ArmatureImporter *arm, Scene *scene); @@ -117,7 +141,7 @@ public: std::map& object_map , std::map FW_object_map); - int get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; + AnimMix* get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; void Assign_transform_animations(COLLADAFW::Transformation* transform , -- cgit v1.2.3 From de10ffab754d218e451078203cfa7e7d7da12eac Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 9 Jul 2011 17:03:35 +0000 Subject: Bugfix #27761 Material nodes: when no output node was active, it sets one. Not common to happen anymore, only for deleting output nodes without clicking on nodes. --- source/blender/blenkernel/intern/node.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 518ee3c341a..13469e0b58b 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2418,6 +2418,11 @@ void ntreeBeginExecTree(bNodeTree *ntree) if(ntree->type==NTREE_COMPOSIT) composit_begin_exec(ntree, ntree->stack); + + /* ensures only a single output node is enabled, texnode allows multiple though */ + if(ntree->type!=NTREE_TEXTURE) + ntreeSetOutput(ntree); + } ntree->init |= NTREE_EXEC_INIT; @@ -2765,9 +2770,6 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) /* fixed seed, for example noise texture */ BLI_srandom(rd->cfra); - /* ensures only a single output node is enabled */ - ntreeSetOutput(ntree); - /* sets need_exec tags in nodes */ curnode = totnode= setExecutableNodes(ntree, &thdata); -- cgit v1.2.3 From 2bb08ee48edcaf282237edac42ba5fab5e9d6053 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 9 Jul 2011 17:09:28 +0000 Subject: Wrong tooltip for OBJECT_OT_make_links_scene() operator. --- source/blender/editors/object/object_relations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 285b08c521b..f21241b6e7a 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1319,7 +1319,7 @@ void OBJECT_OT_make_links_scene(wmOperatorType *ot) /* identifiers */ ot->name= "Link Objects to Scene"; - ot->description = "Make linked data local to each object"; + ot->description = "Link selection to another scene"; ot->idname= "OBJECT_OT_make_links_scene"; /* api callbacks */ -- cgit v1.2.3 From d5984b2d50c25cdc97ebad70f00b37c523cd757e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 9 Jul 2011 17:41:39 +0000 Subject: fix [#27683] Blender hangs when baking a particle system when a driver is present --- source/blender/python/generic/py_capi_utils.c | 2 -- source/blender/python/generic/py_capi_utils.h | 2 ++ source/blender/python/intern/bpy_driver.c | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index 801e44bd008..81aea8571f8 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -36,8 +36,6 @@ #include "BLI_path_util.h" #endif -#define PYC_INTERPRETER_ACTIVE (((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current)) != NULL) - /* array utility function */ int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObject *type, const short is_double, const char *error_prefix) { diff --git a/source/blender/python/generic/py_capi_utils.h b/source/blender/python/generic/py_capi_utils.h index bf2eb175882..96c93ab71f8 100644 --- a/source/blender/python/generic/py_capi_utils.h +++ b/source/blender/python/generic/py_capi_utils.h @@ -50,4 +50,6 @@ void PyC_MainModule_Restore(PyObject *main_mod); void PyC_SetHomePath(const char *py_path_bundle); +#define PYC_INTERPRETER_ACTIVE (((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current)) != NULL) + #endif // PY_CAPI_UTILS_H diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index dec393bd1e4..bcd5df97c2c 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -41,6 +41,8 @@ #include "bpy_driver.h" +#include "../generic/py_capi_utils.h" + /* for pydrivers (drivers using one-line Python expressions to express relationships between targets) */ PyObject *bpy_pydriver_Dict= NULL; @@ -87,7 +89,7 @@ int bpy_pydriver_create_dict(void) void BPY_driver_reset(void) { PyGILState_STATE gilstate; - int use_gil= 1; // (PyThreadState_Get()==NULL); + int use_gil= !PYC_INTERPRETER_ACTIVE; if(use_gil) gilstate= PyGILState_Ensure(); @@ -120,7 +122,7 @@ static void pydriver_error(ChannelDriver *driver) * * note: PyGILState_Ensure() isnt always called because python can call the * bake operator which intern starts a thread which calls scene update which - * does a driver update. to avoid a deadlock check PyThreadState_Get() if PyGILState_Ensure() is needed. + * does a driver update. to avoid a deadlock check PYC_INTERPRETER_ACTIVE if PyGILState_Ensure() is needed. */ float BPY_driver_exec(ChannelDriver *driver) { @@ -147,7 +149,7 @@ float BPY_driver_exec(ChannelDriver *driver) return 0.0f; } - use_gil= 1; //(PyThreadState_Get()==NULL); + use_gil= !PYC_INTERPRETER_ACTIVE; if(use_gil) gilstate= PyGILState_Ensure(); -- cgit v1.2.3 From 65d1e27ff5b5d315a462c27d9e194561b78072ec Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 9 Jul 2011 19:16:32 +0000 Subject: fix for using uninitialized value in gpu_shader_material --- source/blender/nodes/intern/SHD_nodes/SHD_material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c index 4e1b53e2026..f78dd9ec727 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_material.c @@ -226,7 +226,7 @@ static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUShadeInput shi; GPUShadeResult shr; bNodeSocket *sock; - char hasinput[NUM_MAT_IN]; + char hasinput[NUM_MAT_IN]= {'\0'}; int i; /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily -- cgit v1.2.3 From daddbc62df5f8ade39b25acd4e333c5c3bd88b5a Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 9 Jul 2011 19:33:02 +0000 Subject: --- source/blender/collada/AnimationImporter.cpp | 91 +++++++++++++++++----------- source/blender/collada/AnimationImporter.h | 13 ++-- source/blender/collada/CameraExporter.cpp | 4 +- 3 files changed, 65 insertions(+), 43 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 5f4d4905646..030b9e7582b 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -919,28 +919,30 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; + // + //const COLLADAFW::Color *col = &(light->getColor()); + //const COLLADAFW::UniqueId& col_listid = col->getAnimationList(); + + ////check if color has animations + //if (animlist_map.find(col_listid) != animlist_map.end()) + //// type = type|LIGHT_FOA; + // types->light = types->light|LIGHT_COLOR; + types->light = setAnimType(&(light->getColor()),(types->light), LIGHT_COLOR); + // + //const COLLADAFW::AnimatableFloat *fallOffAngle = &(light->getFallOffAngle()); + // const COLLADAFW::UniqueId& foa_listid = fallOffAngle ->getAnimationList(); + + //if (animlist_map.find(foa_listid) != animlist_map.end()) + //// type = type|LIGHT_FOA; + // types->light = types->light|LIGHT_FOA; + types->light = setAnimType(&(light->getFallOffAngle()),(types->light), LIGHT_FOA); + //const COLLADAFW::AnimatableFloat *fallOffExpo = &(light->getFallOffExponent()); + // const COLLADAFW::UniqueId& foe_listid = fallOffExpo ->getAnimationList(); + //if (animlist_map.find(foe_listid) != animlist_map.end()) + // //type = type|LIGHT_FOE; + // types->light = types->light|LIGHT_FOE; - const COLLADAFW::Color *col = &(light->getColor()); - const COLLADAFW::UniqueId& col_listid = col->getAnimationList(); - - //check if color has animations - if (animlist_map.find(col_listid) != animlist_map.end()) - // type = type|LIGHT_FOA; - types->light = types->light|LIGHT_COLOR; - - const COLLADAFW::AnimatableFloat *fallOffAngle = &(light->getFallOffAngle()); - const COLLADAFW::UniqueId& foa_listid = fallOffAngle ->getAnimationList(); - - if (animlist_map.find(foa_listid) != animlist_map.end()) - // type = type|LIGHT_FOA; - types->light = types->light|LIGHT_FOA; - - const COLLADAFW::AnimatableFloat *fallOffExpo = &(light->getFallOffExponent()); - const COLLADAFW::UniqueId& foe_listid = fallOffExpo ->getAnimationList(); - - if (animlist_map.find(foe_listid) != animlist_map.end()) - //type = type|LIGHT_FOE; - types->light = types->light|LIGHT_FOE; + types->light = setAnimType(&(light->getFallOffExponent()),(types->light), LIGHT_FOE); //if ( type != 0) break; if ( types->light != 0) break; @@ -950,24 +952,37 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras(); for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - + + if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) { - const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); - const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); - if (animlist_map.find(xfov_listid) != animlist_map.end()) - //type = type|CAMERA_XFOV; - types->camera = types->camera|CAMERA_XFOV; - + //const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + //const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); + //if (animlist_map.find(xfov_listid) != animlist_map.end()) + // //type = type|CAMERA_XFOV; + // types->camera = types->camera|CAMERA_XFOV; + types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XFOV); } else { - const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); - const COLLADAFW::UniqueId& xmag_listid = xmag ->getAnimationList(); - if (animlist_map.find(xmag_listid) != animlist_map.end()) - // type = type|CAMERA_XMAG; - types->camera = types->camera|CAMERA_XMAG; - } + //const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); + //const COLLADAFW::UniqueId& xmag_listid = xmag ->getAnimationList(); + //if (animlist_map.find(xmag_listid) != animlist_map.end()) + // // type = type|CAMERA_XMAG; + // types->camera = types->camera|CAMERA_XMAG; + types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XMAG); + } + + //const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane()); + //const COLLADAFW::UniqueId& zfar_listid = zfar ->getAnimationList(); + //if (animlist_map.find(zfar_listid) != animlist_map.end()) + // //type = type|CAMERA_XFOV; + // types->camera = types->camera|CAMERA_ZFAR; + + + types->camera = setAnimType(&(camera->getFarClippingPlane()),(types->camera), CAMERA_ZFAR); + types->camera = setAnimType(&(camera->getNearClippingPlane()),(types->camera), CAMERA_ZNEAR); + //if ( type != 0) break; if ( types->camera != 0) break; @@ -975,6 +990,14 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD return types; } +int AnimationImporter::setAnimType ( const COLLADAFW::Animatable * prop , int types, int addition) +{ + const COLLADAFW::UniqueId& listid = prop->getAnimationList(); + if (animlist_map.find(listid) != animlist_map.end()) + return types|addition; + else return types; +} + //XXX Is not used anymore. void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW::Node * node , COLLADAFW::Transformation::TransformationType tm_type) { diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 037ae04a0b4..9337e80d63b 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -98,18 +98,15 @@ private: { // INANIMATE = 0, CAMERA_XFOV = 2, - CAMERA_XMAG = 4 + CAMERA_XMAG = 4, + CAMERA_ZFAR = 8, + CAMERA_ZNEAR = 16 }; enum AnimationType { INANIMATE = 0, NODE_TRANSFORM = 1, - /* LIGHT_COLOR = 2, - LIGHT_FOA = 4, - LIGHT_FOE = 8, - CAMERA_XFOV = 16, - CAMERA_XMAG = 32*/ }; struct AnimMix @@ -152,7 +149,9 @@ public: std::vector* curves); void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type); - + + int setAnimType ( const COLLADAFW::Animatable * prop , int type, int addition); + void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); // prerequisites: // animlist_map - map animlist id -> animlist diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index cc9860723fe..a935f45c403 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -76,7 +76,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI),"xfov"); persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,"aspect_ratio"); persp.setZFar(cam->clipend, false , "zfar"); - persp.setZNear(cam->clipsta); + persp.setZNear(cam->clipsta,false , "znear"); COLLADASW::Camera ccam(mSW, &persp, cam_id, cam_name); addCamera(ccam); } @@ -85,7 +85,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce) ortho.setXMag(cam->ortho_scale,"xmag"); ortho.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,"aspect_ratio"); ortho.setZFar(cam->clipend , false , "zfar"); - ortho.setZNear(cam->clipsta); + ortho.setZNear(cam->clipsta, false , "znear"); COLLADASW::Camera ccam(mSW, &ortho, cam_id, cam_name); addCamera(ccam); } -- cgit v1.2.3 From 7370ba1839973010dd6e0ed0349c34477d8ece0a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 9 Jul 2011 19:59:32 +0000 Subject: fix for NULL pointer usages --- source/blender/blenlib/intern/pbvh.c | 5 +++-- source/blender/python/intern/bpy_rna.c | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index f7b79b35cbc..85d79ae3b85 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1189,8 +1189,9 @@ void BLI_pbvh_node_get_verts(PBVH *bvh, PBVHNode *node, int **vert_indices, MVer void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert) { if(bvh->grids) { - if(totvert) *totvert= node->totprim*bvh->gridsize*bvh->gridsize; - if(uniquevert) *uniquevert= *totvert; + const int tot= node->totprim*bvh->gridsize*bvh->gridsize; + if(totvert) *totvert= tot; + if(uniquevert) *uniquevert= tot; } else { if(totvert) *totvert= node->uniq_verts + node->face_verts; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index c1c7e0ea740..4f6edb02a7c 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3847,9 +3847,11 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) case PROP_RAW_DOUBLE: item= PyFloat_FromDouble((double) ((double *)array)[i]); break; - case PROP_RAW_UNSET: + default: /* PROP_RAW_UNSET */ /* should never happen */ BLI_assert(!"Invalid array type - get"); + item= Py_None; + Py_INCREF(item); break; } -- cgit v1.2.3 From a5b37a8a0c2fe421a65d699d5499b59a3da1d425 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 10 Jul 2011 06:21:39 +0000 Subject: Bug Fix. --- source/blender/collada/AnimationImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 030b9e7582b..72f7fb2ddcc 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -893,7 +893,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , std::map FW_object_map) { - AnimationImporter::AnimMix *types = NULL; + AnimMix *types = new AnimMix(); types->transform = INANIMATE ; types->light = INANIMATE; types->camera = INANIMATE; -- cgit v1.2.3 From 6160bc596f7a7d79aac4c1197c706fdcad7d1cf4 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 10 Jul 2011 07:34:11 +0000 Subject: --- source/blender/collada/AnimationImporter.cpp | 51 ++++------------------------ 1 file changed, 6 insertions(+), 45 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 72f7fb2ddcc..c84cf3d9ee4 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -894,11 +894,11 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD std::map FW_object_map) { AnimMix *types = new AnimMix(); - types->transform = INANIMATE ; - types->light = INANIMATE; - types->camera = INANIMATE; - types->material = INANIMATE; - types->texture = INANIMATE; + //types->transform = INANIMATE ; + //types->light = INANIMATE; + //types->camera = INANIMATE; + //types->material = INANIMATE; + //types->texture = INANIMATE; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -919,32 +919,10 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; - // - //const COLLADAFW::Color *col = &(light->getColor()); - //const COLLADAFW::UniqueId& col_listid = col->getAnimationList(); - - ////check if color has animations - //if (animlist_map.find(col_listid) != animlist_map.end()) - //// type = type|LIGHT_FOA; - // types->light = types->light|LIGHT_COLOR; types->light = setAnimType(&(light->getColor()),(types->light), LIGHT_COLOR); - // - //const COLLADAFW::AnimatableFloat *fallOffAngle = &(light->getFallOffAngle()); - // const COLLADAFW::UniqueId& foa_listid = fallOffAngle ->getAnimationList(); - - //if (animlist_map.find(foa_listid) != animlist_map.end()) - //// type = type|LIGHT_FOA; - // types->light = types->light|LIGHT_FOA; types->light = setAnimType(&(light->getFallOffAngle()),(types->light), LIGHT_FOA); - //const COLLADAFW::AnimatableFloat *fallOffExpo = &(light->getFallOffExponent()); - // const COLLADAFW::UniqueId& foe_listid = fallOffExpo ->getAnimationList(); - //if (animlist_map.find(foe_listid) != animlist_map.end()) - // //type = type|LIGHT_FOE; - // types->light = types->light|LIGHT_FOE; - types->light = setAnimType(&(light->getFallOffExponent()),(types->light), LIGHT_FOE); - //if ( type != 0) break; if ( types->light != 0) break; } @@ -956,30 +934,13 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) { - //const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); - //const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); - //if (animlist_map.find(xfov_listid) != animlist_map.end()) - // //type = type|CAMERA_XFOV; - // types->camera = types->camera|CAMERA_XFOV; types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XFOV); } else { - //const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); - //const COLLADAFW::UniqueId& xmag_listid = xmag ->getAnimationList(); - //if (animlist_map.find(xmag_listid) != animlist_map.end()) - // // type = type|CAMERA_XMAG; - // types->camera = types->camera|CAMERA_XMAG; types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XMAG); } - - //const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane()); - //const COLLADAFW::UniqueId& zfar_listid = zfar ->getAnimationList(); - //if (animlist_map.find(zfar_listid) != animlist_map.end()) - // //type = type|CAMERA_XFOV; - // types->camera = types->camera|CAMERA_ZFAR; - - + types->camera = setAnimType(&(camera->getFarClippingPlane()),(types->camera), CAMERA_ZFAR); types->camera = setAnimType(&(camera->getNearClippingPlane()),(types->camera), CAMERA_ZNEAR); -- cgit v1.2.3 From de7592b48900221844fa8d687e9d850294c90746 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 10 Jul 2011 17:04:56 +0000 Subject: Fix for [#26873] Animated displacement modifier on an object doesn't work with hair particle objects * Noise is now considered an animated texture as it changes with every frame * Converted a few places in particles code to use the particle system's own random table instead of BLI_frand. --- source/blender/blenkernel/intern/boids.c | 6 +++--- source/blender/blenkernel/intern/particle.c | 2 -- source/blender/blenkernel/intern/particle_system.c | 5 ----- source/blender/blenkernel/intern/texture.c | 4 ++++ source/blender/render/intern/source/convertblender.c | 6 ++---- 5 files changed, 9 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c index 9f808704eee..a0f38e675f9 100644 --- a/source/blender/blenkernel/intern/boids.c +++ b/source/blender/blenkernel/intern/boids.c @@ -937,6 +937,7 @@ void boid_brain(BoidBrainData *bbd, int p, ParticleData *pa) BoidValues val; BoidState *state = get_boid_state(boids, pa); BoidParticle *bpa = pa->boid; + ParticleSystem *psys = bbd->sim->psys; int rand; //BoidCondition *cond; @@ -959,9 +960,8 @@ void boid_brain(BoidBrainData *bbd, int p, ParticleData *pa) bbd->wanted_co[0]=bbd->wanted_co[1]=bbd->wanted_co[2]=bbd->wanted_speed=0.0f; /* create random seed for every particle & frame */ - BLI_srandom(bbd->sim->psys->seed + p); - rand = BLI_rand(); - BLI_srandom((int)bbd->cfra + rand); + rand = (int)(PSYS_FRAND(psys->seed + p) * 1000); + rand = (int)(PSYS_FRAND((int)bbd->cfra + rand) * 1000); set_boid_values(&val, bbd->part->boids, pa); diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 72c92eed312..5e615a28eb2 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -2889,8 +2889,6 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra) if(psys_in_edit_mode(sim->scene, psys)) if(psys->renderdata==0 && (psys->edit==NULL || pset->flag & PE_DRAW_PART)==0) return; - - BLI_srandom(psys->seed); keyed = psys->flag & PSYS_KEYED; baked = psys->pointcache->mem_cache.first && psys->part->type != PART_HAIR; diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index b2e5c059edf..50f39704488 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3514,8 +3514,6 @@ static void hair_step(ParticleSimulationData *sim, float cfra) PARTICLE_P; float disp = (float)psys_get_current_display_percentage(psys)/100.0f; - BLI_srandom(psys->seed); - LOOP_PARTICLES { if(PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; @@ -3801,8 +3799,6 @@ static void cached_step(ParticleSimulationData *sim, float cfra) PARTICLE_P; float disp, dietime; - BLI_srandom(psys->seed); - psys_update_effectors(sim); disp= (float)psys_get_current_display_percentage(psys)/100.0f; @@ -4054,7 +4050,6 @@ static void system_step(ParticleSimulationData *sim, float cfra) /* set particles to be not calculated TODO: can't work with pointcache */ disp= (float)psys_get_current_display_percentage(psys)/100.0f; - BLI_srandom(psys->seed); LOOP_PARTICLES { if(PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 64f3c111434..036ba34d0c8 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -1486,6 +1486,10 @@ int BKE_texture_dependsOnTime(const struct Tex *texture) // assume anything in adt means the texture is animated return 1; } + else if(texture->type == TEX_NOISE) { + // noise always varies with time + return 1; + } return 0; } diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 4c0ce24e3e7..0f6751850ef 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1798,10 +1798,8 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem pa_size = pa->size; - BLI_srandom(psys->seed+a); - - r_tilt = 2.0f*(BLI_frand() - 0.5f); - r_length = BLI_frand(); + r_tilt = 2.0f*(PSYS_FRAND(a) - 0.5f); + r_length = PSYS_FRAND(a+1); if(path_nbr) { cache = psys->pathcache[a]; -- cgit v1.2.3 From 2fb4a37baaac6c7045ea0d7ace2826f1112714c5 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 10 Jul 2011 17:30:31 +0000 Subject: Fix for [#27289] Hair: Render Option - Object does not point objects to end of "hair path" * Objects are now always rotated in the directions of the hair paths * Secondary fix: particle size wasn't updated for hair particles, so dupliobject size couldn't be change after the hair was edited --- source/blender/blenkernel/intern/particle.c | 75 +++++++++------------- source/blender/blenkernel/intern/particle_system.c | 6 +- 2 files changed, 36 insertions(+), 45 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 5e615a28eb2..5995b895061 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -4372,58 +4372,45 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, ParticleData *pa Object *ob = sim->ob; ParticleSystem *psys = sim->psys; ParticleSystemModifierData *psmd = sim->psmd; - float loc[3], nor[3], vec[3], side[3], len, obrotmat[4][4], qmat[4][4]; - float xvec[3] = {-1.0, 0.0, 0.0}, q[4], nmat[3][3]; + float loc[3], nor[3], vec[3], side[3], len; + float xvec[3] = {-1.0, 0.0, 0.0}, nmat[3][3]; sub_v3_v3v3(vec, (cache+cache->steps)->co, cache->co); len= normalize_v3(vec); - if(psys->part->rotmode) { - if(pa == NULL) - pa= psys->particles+cpa->pa[0]; + if(pa == NULL && psys->part->childflat != PART_CHILD_FACES) + pa = psys->particles + cpa->pa[0]; - vec_to_quat( q,xvec, ob->trackflag, ob->upflag); - quat_to_mat4( obrotmat,q); - obrotmat[3][3]= 1.0f; - - quat_to_mat4( qmat,pa->state.rot); - mul_m4_m4m4(mat, obrotmat, qmat); - } - else { - if(pa == NULL && psys->part->childflat != PART_CHILD_FACES) - pa = psys->particles + cpa->pa[0]; - - if(pa) - psys_particle_on_emitter(psmd,sim->psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,nor,0,0,0,0); - else - psys_particle_on_emitter(psmd,PART_FROM_FACE,cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,loc,nor,0,0,0,0); + if(pa) + psys_particle_on_emitter(psmd,sim->psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,nor,0,0,0,0); + else + psys_particle_on_emitter(psmd,PART_FROM_FACE,cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,loc,nor,0,0,0,0); - copy_m3_m4(nmat, ob->imat); - transpose_m3(nmat); - mul_m3_v3(nmat, nor); - - /* make sure that we get a proper side vector */ - if(fabs(dot_v3v3(nor,vec))>0.999999) { - if(fabs(dot_v3v3(nor,xvec))>0.999999) { - nor[0] = 0.0f; - nor[1] = 1.0f; - nor[2] = 0.0f; - } - else { - nor[0] = 1.0f; - nor[1] = 0.0f; - nor[2] = 0.0f; - } - } - cross_v3_v3v3(side, nor, vec); - normalize_v3(side); - cross_v3_v3v3(nor, vec, side); + copy_m3_m4(nmat, ob->imat); + transpose_m3(nmat); + mul_m3_v3(nmat, nor); - unit_m4(mat); - VECCOPY(mat[0], vec); - VECCOPY(mat[1], side); - VECCOPY(mat[2], nor); + /* make sure that we get a proper side vector */ + if(fabs(dot_v3v3(nor,vec))>0.999999) { + if(fabs(dot_v3v3(nor,xvec))>0.999999) { + nor[0] = 0.0f; + nor[1] = 1.0f; + nor[2] = 0.0f; + } + else { + nor[0] = 1.0f; + nor[1] = 0.0f; + nor[2] = 0.0f; + } } + cross_v3_v3v3(side, nor, vec); + normalize_v3(side); + cross_v3_v3v3(nor, vec, side); + + unit_m4(mat); + VECCOPY(mat[0], vec); + VECCOPY(mat[1], side); + VECCOPY(mat[2], nor); *scale= len; } diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 50f39704488..63a9c224971 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3510,11 +3510,15 @@ static void do_hair_dynamics(ParticleSimulationData *sim) static void hair_step(ParticleSimulationData *sim, float cfra) { ParticleSystem *psys = sim->psys; -/* ParticleSettings *part = psys->part; */ + ParticleSettings *part = psys->part; PARTICLE_P; float disp = (float)psys_get_current_display_percentage(psys)/100.0f; LOOP_PARTICLES { + pa->size = part->size; + if(part->randsize > 0.0f) + pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); + if(PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; else -- cgit v1.2.3 From 1f6a79ecb59e958385544270c6226f6419c12ecd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 10 Jul 2011 18:21:40 +0000 Subject: Fix #27926: autokey not working with auto IK, broke this with an earlier bugfix. --- source/blender/editors/transform/transform_conversions.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index de8eda78d63..16bfc75c979 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4979,6 +4979,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t) where_is_pose(t->scene, pose_ob); } + /* set BONE_TRANSFORM flags for autokey, manipulator draw might have changed them */ + if (!cancelled && (t->mode != TFM_DUMMY)) + count_set_pose_transflags(&t->mode, t->around, ob); + /* if target-less IK grabbing, we calculate the pchan transforms and clear flag */ if (!cancelled && t->mode==TFM_TRANSLATION) targetless_ik= apply_targetless_ik(ob); @@ -4995,8 +4999,6 @@ void special_aftertrans_update(bContext *C, TransInfo *t) /* automatic inserting of keys and unkeyed tagging - only if transform wasn't cancelled (or TFM_DUMMY) */ if (!cancelled && (t->mode != TFM_DUMMY)) { - /* set BONE_TRANSFORM flags, they get changed by manipulator draw */ - count_set_pose_transflags(&t->mode, t->around, ob); autokeyframe_pose_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); } -- cgit v1.2.3 From 80eb1eae42940664452d7d4ec94a6a383a8c1e9d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 10 Jul 2011 18:54:02 +0000 Subject: run WM_exit(C) when blender as a python module exits --- source/blender/python/intern/bpy_interface.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 422d55ecefe..f091a511e93 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -663,7 +663,9 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult * #include "BLI_storage.h" /* TODO, reloading the module isnt functional at the moment. */ -extern int main_python(int argc, const char **argv); +static void bpy_module_free(void *mod); +extern int main_python_enter(int argc, const char **argv); +extern void main_python_exit(void); static struct PyModuleDef bpy_proxy_def= { PyModuleDef_HEAD_INIT, "bpy", /* m_name */ @@ -673,8 +675,8 @@ static struct PyModuleDef bpy_proxy_def= { NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ - NULL, /* m_free */ -}; + bpy_module_free, /* m_free */ +}; typedef struct { PyObject_HEAD @@ -699,7 +701,7 @@ void bpy_module_delay_init(PyObject *bpy_proxy) // printf("module found %s\n", argv[0]); - main_python(argc, argv); + main_python_enter(argc, argv); /* initialized in BPy_init_modules() */ PyDict_Update(PyModule_GetDict(bpy_proxy), PyModule_GetDict(bpy_package_py)); @@ -756,4 +758,9 @@ PyInit_bpy(void) return bpy_proxy; } +static void bpy_module_free(void *UNUSED(mod)) +{ + main_python_exit(); +} + #endif -- cgit v1.2.3 From 2ebc5cbe75af394dc4ed1910f730bb4fb6d9f6ed Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 10 Jul 2011 23:24:15 +0000 Subject: Fix for [#27293] Group Instance of particle system is rendered wrong * Silly mul_m4_v3 had turned into a mul_m4_v4 at some point! --- source/blender/render/intern/source/convertblender.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 0f6751850ef..583b792f240 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -2045,7 +2045,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem mul_m4_v3(psys->parent->obmat, state.co); if(use_duplimat) - mul_m4_v4(duplimat, state.co); + mul_m4_v3(duplimat, state.co); if(part->ren_as == PART_DRAW_BB) { bb.random = random; -- cgit v1.2.3 From 897cbe4b42a31ad7afe6ab3e4e89ac5318eef91a Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 10 Jul 2011 23:49:59 +0000 Subject: Fix for [#27398] Particle systems with animated groups render incorrectly in viewport * Hmph.. depsgraph and group duplication == illogical. --- source/blender/blenkernel/intern/depsgraph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index c2800410657..d39be9d683c 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -599,7 +599,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O if(part->ren_as == PART_DRAW_GR && part->dup_group) { for(go=part->dup_group->gobject.first; go; go=go->next) { node2 = dag_get_node(dag, go->ob); - dag_add_relation(dag, node, node2, DAG_RL_OB_OB, "Particle Group Visualisation"); + dag_add_relation(dag, node2, node, DAG_RL_OB_OB, "Particle Group Visualisation"); } } -- cgit v1.2.3 From 8ca556a32a1ce2b90881aadfa88239dfb7bb5f9e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 11 Jul 2011 09:05:10 +0000 Subject: Fix #27921: optimal display with 2 subsurf modifiers fails. --- source/blender/blenkernel/intern/subsurf_ccg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index a66caf8879f..67d7e7bffd6 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1176,7 +1176,8 @@ static void ccgDM_drawEdges(DerivedMesh *dm, int drawLooseEdges, int UNUSED(draw CCGSubSurf *ss = ccgdm->ss; CCGEdgeIterator *ei = ccgSubSurf_getEdgeIterator(ss); CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); - int i, edgeSize = ccgSubSurf_getEdgeSize(ss); + int i, j, edgeSize = ccgSubSurf_getEdgeSize(ss); + int totedge = ccgSubSurf_getNumEdges(ss); int gridSize = ccgSubSurf_getGridSize(ss); int useAging; @@ -1184,13 +1185,16 @@ static void ccgDM_drawEdges(DerivedMesh *dm, int drawLooseEdges, int UNUSED(draw ccgSubSurf_getUseAgeCounts(ss, &useAging, NULL, NULL, NULL); - for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { - CCGEdge *e = ccgEdgeIterator_getCurrent(ei); + for (j=0; j< totedge; j++) { + CCGEdge *e = ccgdm->edgeMap[j].edge; DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); if (!drawLooseEdges && !ccgSubSurf_getEdgeNumFaces(e)) continue; + if(ccgdm->edgeFlags && !(ccgdm->edgeFlags[j] & ME_EDGEDRAW)) + continue; + if (useAging && !(G.f&G_BACKBUFSEL)) { int ageCol = 255-ccgSubSurf_getEdgeAge(ss, e)*4; glColor3ub(0, ageCol>0?ageCol:0, 0); -- cgit v1.2.3 From 7dfe34864e019fe08fbdfa62d4dacf158a0602bf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 11 Jul 2011 09:08:08 +0000 Subject: Fix #27912: crash after mesh.materials.pop(). --- source/blender/blenkernel/intern/material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 2f29074834b..962c7fd5e86 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -550,7 +550,7 @@ Material *material_pop_id(ID *id, int index) Material **mat; if(index + 1 != (*totcol)) - memmove((*matar), (*matar) + 1, (*totcol) - (index + 1)); + memmove((*matar), (*matar) + 1, sizeof(void *) * ((*totcol) - (index + 1))); (*totcol)--; -- cgit v1.2.3 From 9fb2e5dde70bd971dabfdf3b1099d92241dc96ed Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 11 Jul 2011 09:15:20 +0000 Subject: Fix #27930: many modifiers crashed when used on a lattice with a vertex group. --- source/blender/modifiers/intern/MOD_cast.c | 10 ++-------- source/blender/modifiers/intern/MOD_displace.c | 7 ++----- source/blender/modifiers/intern/MOD_hook.c | 22 ++++------------------ source/blender/modifiers/intern/MOD_meshdeform.c | 5 +---- source/blender/modifiers/intern/MOD_simpledeform.c | 16 +++------------- source/blender/modifiers/intern/MOD_smooth.c | 5 +---- source/blender/modifiers/intern/MOD_solidify.c | 8 ++++---- source/blender/modifiers/intern/MOD_util.c | 16 ++++++++++++++++ source/blender/modifiers/intern/MOD_util.h | 10 ++++++---- source/blender/modifiers/intern/MOD_warp.c | 14 ++++++++------ source/blender/modifiers/intern/MOD_wave.c | 8 ++------ 11 files changed, 49 insertions(+), 72 deletions(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c index 5cb352ef482..14b23ba4972 100644 --- a/source/blender/modifiers/intern/MOD_cast.c +++ b/source/blender/modifiers/intern/MOD_cast.c @@ -177,10 +177,7 @@ static void sphere_do( /* 3) if we were given a vertex group name, * only those vertices should be affected */ - defgrp_index = defgroup_name_index(ob, cmd->defgrp_name); - - if ((ob->type == OB_MESH) && dm && defgrp_index >= 0) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, cmd->defgrp_name, &dvert, &defgrp_index); if(flag & MOD_CAST_SIZE_FROM_RADIUS) { len = cmd->radius; @@ -335,10 +332,7 @@ static void cuboid_do( /* 3) if we were given a vertex group name, * only those vertices should be affected */ - defgrp_index = defgroup_name_index(ob, cmd->defgrp_name); - - if ((ob->type == OB_MESH) && dm && defgrp_index >= 0) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, cmd->defgrp_name, &dvert, &defgrp_index); if (ctrl_ob) { if(flag & MOD_CAST_USE_OB_TRANSFORM) { diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index 01f1b6fb2a7..e0482e6b3fc 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -169,7 +169,7 @@ static void displaceModifier_do( { int i; MVert *mvert; - MDeformVert *dvert = NULL; + MDeformVert *dvert; int defgrp_index; float (*tex_co)[3]; float weight= 1.0f; /* init value unused but some compilers may complain */ @@ -177,11 +177,8 @@ static void displaceModifier_do( if(!dmd->texture) return; if(dmd->strength == 0.0f) return; - defgrp_index = defgroup_name_index(ob, dmd->defgrp_name); - mvert = CDDM_get_verts(dm); - if(defgrp_index >= 0) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, dmd->defgrp_name, &dvert, &defgrp_index); tex_co = MEM_callocN(sizeof(*tex_co) * numVerts, "displaceModifier_do tex_co"); diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c index 082c199b16f..ea8d602dd7a 100644 --- a/source/blender/modifiers/intern/MOD_hook.c +++ b/source/blender/modifiers/intern/MOD_hook.c @@ -157,9 +157,8 @@ static void deformVerts(ModifierData *md, Object *ob, int i, *index_pt; const float falloff_squared= hmd->falloff * hmd->falloff; /* for faster comparisons */ - int max_dvert= 0; - MDeformVert *dvert= NULL; - int defgrp_index = -1; + MDeformVert *dvert; + int defgrp_index, max_dvert; /* get world-space matrix of target, corrected for the space the verts are in */ if (hmd->subtarget[0] && pchan) { @@ -174,21 +173,8 @@ static void deformVerts(ModifierData *md, Object *ob, mul_serie_m4(mat, ob->imat, dmat, hmd->parentinv, NULL, NULL, NULL, NULL, NULL); - if((defgrp_index= defgroup_name_index(ob, hmd->name)) != -1) { - Mesh *me = ob->data; - if(dm) { - dvert= dm->getVertDataArray(dm, CD_MDEFORMVERT); - if(dvert) { - max_dvert = numVerts; - } - } - else if(me->dvert) { - dvert= me->dvert; - if(dvert) { - max_dvert = me->totvert; - } - } - } + modifier_get_vgroup(ob, dm, hmd->name, &dvert, &defgrp_index); + max_dvert = (dvert)? numVerts: 0; /* Regarding index range checking below. * diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index 5021f3a6d2e..3903f2602e4 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -284,10 +284,7 @@ static void meshdeformModifier_do( copy_v3_v3(dco[a], co); } - defgrp_index = defgroup_name_index(ob, mmd->defgrp_name); - - if(dm && defgrp_index >= 0) - dvert= dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, mmd->defgrp_name, &dvert, &defgrp_index); /* do deformation */ fac= 1.0f; diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c index ea4771b679a..5efd6cd28ec 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.c +++ b/source/blender/modifiers/intern/MOD_simpledeform.c @@ -162,8 +162,8 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object float smd_limit[2], smd_factor; SpaceTransform *transf = NULL, tmp_transf; void (*simpleDeform_callback)(const float factor, const float dcut[3], float *co) = NULL; //Mode callback - int vgroup = defgroup_name_index(ob, smd->vgroup_name); - MDeformVert *dvert = NULL; + int vgroup; + MDeformVert *dvert; //Safe-check if(smd->origin == ob) smd->origin = NULL; //No self references @@ -216,17 +216,7 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object smd_factor = smd->factor / MAX2(FLT_EPSILON, smd_limit[1]-smd_limit[0]); } - - if(dm) - { - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); - } - else if(ob->type == OB_LATTICE) - { - dvert = lattice_get_deform_verts(ob); - } - - + modifier_get_vgroup(ob, dm, smd->vgroup_name, &dvert, &vgroup); switch(smd->mode) { diff --git a/source/blender/modifiers/intern/MOD_smooth.c b/source/blender/modifiers/intern/MOD_smooth.c index 5f76fad14b1..28a31b84ea5 100644 --- a/source/blender/modifiers/intern/MOD_smooth.c +++ b/source/blender/modifiers/intern/MOD_smooth.c @@ -123,10 +123,7 @@ static void smoothModifier_do( medges = dm->getEdgeArray(dm); numDMEdges = dm->getNumEdges(dm); - defgrp_index = defgroup_name_index(ob, smd->defgrp_name); - - if (defgrp_index >= 0) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, smd->defgrp_name, &dvert, &defgrp_index); /* NOTICE: this can be optimized a little bit by moving the * if (dvert) out of the loop, if needed */ diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 1b7b724835c..390a780e9e6 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -48,6 +48,7 @@ #include "MOD_modifiertypes.h" +#include "MOD_util.h" #include "MEM_guardedalloc.h" @@ -235,12 +236,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, float const ofs_new= smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); /* weights */ - MDeformVert *dvert= NULL, *dv= NULL; + MDeformVert *dvert, *dv= NULL; const int defgrp_invert = ((smd->flag & MOD_SOLIDIFY_VGROUP_INV) != 0); - const int defgrp_index= defgroup_name_index(ob, smd->defgrp_name); + int defgrp_index; - if (defgrp_index >= 0) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + modifier_get_vgroup(ob, dm, smd->defgrp_name, &dvert, &defgrp_index); orig_mface = dm->getFaceArray(dm); orig_medge = dm->getEdgeArray(dm); diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index 9fe37e2d174..e9b835eab81 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -37,6 +37,7 @@ #include +#include "DNA_lattice_types.h" #include "DNA_modifier_types.h" #include "DNA_object_types.h" #include "DNA_curve_types.h" @@ -47,6 +48,8 @@ #include "BLI_math_matrix.h" #include "BKE_cdderivedmesh.h" +#include "BKE_deform.h" +#include "BKE_lattice.h" #include "BKE_mesh.h" #include "BKE_displist.h" @@ -239,6 +242,19 @@ DerivedMesh *get_dm(Object *ob, struct EditMesh *em, DerivedMesh *dm, float (*ve return dm; } +void modifier_get_vgroup(Object *ob, DerivedMesh *dm, const char *name, MDeformVert **dvert, int *defgrp_index) +{ + *defgrp_index = defgroup_name_index(ob, name); + *dvert = NULL; + + if(*defgrp_index >= 0) { + if(ob->type == OB_LATTICE) + *dvert = lattice_get_deform_verts(ob); + else if(dm) + *dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + } +} + /* only called by BKE_modifier.h/modifier.c */ void modifier_type_init(ModifierTypeInfo *types[]) { diff --git a/source/blender/modifiers/intern/MOD_util.h b/source/blender/modifiers/intern/MOD_util.h index b7862403459..b9b5c8a064a 100644 --- a/source/blender/modifiers/intern/MOD_util.h +++ b/source/blender/modifiers/intern/MOD_util.h @@ -36,14 +36,15 @@ /* so modifier types match their defines */ #include "MOD_modifiertypes.h" -struct Tex; -struct TexResult; struct CustomData; struct DerivedMesh; -struct Object; -struct Scene; struct EditMesh; +struct MDeformVert; struct ModifierData; +struct Object; +struct Scene; +struct Tex; +struct TexResult; void get_texture_value(struct Tex *texture, float *tex_co, struct TexResult *texres); void get_texture_coords(struct MappingInfoModifierData *dmd, struct Object *ob, struct DerivedMesh *dm, float (*co)[3], float (*texco)[3], int numVerts); @@ -51,5 +52,6 @@ void modifier_vgroup_cache(struct ModifierData *md, float (*vertexCos)[3]); void validate_layer_name(const struct CustomData *data, int type, char *name, char *outname); struct DerivedMesh *get_cddm(struct Object *ob, struct EditMesh *em, struct DerivedMesh *dm, float (*vertexCos)[3]); struct DerivedMesh *get_dm(struct Object *ob, struct EditMesh *em, struct DerivedMesh *dm, float (*vertexCos)[3], int orco); +void modifier_get_vgroup(struct Object *ob, DerivedMesh *dm, const char *name, struct MDeformVert **dvert, int *defgrp_index); #endif /* MOD_UTIL_H */ diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c index 27add27deb1..2c77b486263 100644 --- a/source/blender/modifiers/intern/MOD_warp.c +++ b/source/blender/modifiers/intern/MOD_warp.c @@ -85,8 +85,8 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md) CustomDataMask dataMask = 0; /* ask for vertexgroups if we need them */ - if(wmd->defgrp_name[0]) dataMask |= (1 << CD_MDEFORMVERT); - dataMask |= (1 << CD_MDEFORMVERT); + if(wmd->defgrp_name[0]) dataMask |= (CD_MASK_MDEFORMVERT); + dataMask |= (CD_MASK_MDEFORMVERT); /* ask for UV coordinates if we need them */ if(wmd->texmapping == MOD_DISP_MAP_UV) dataMask |= (1 << CD_MTFACE); @@ -174,14 +174,16 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob, float strength = wmd->strength; float fac = 1.0f, weight; int i; - int defgrp_index = defgroup_name_index(ob, wmd->defgrp_name); - MDeformVert *dv= NULL; + int defgrp_index; + MDeformVert *dvert, *dv= NULL; float (*tex_co)[3]= NULL; if(!(wmd->object_from && wmd->object_to)) return; + modifier_get_vgroup(ob, dm, wmd->defgrp_name, &dvert, &defgrp_index); + if(wmd->curfalloff==NULL) /* should never happen, but bad lib linking could cause it */ wmd->curfalloff = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); @@ -221,8 +223,8 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob, ((fac=len_v3v3(co, mat_from[3])) < wmd->falloff_radius && (fac=(wmd->falloff_radius-fac)/wmd->falloff_radius)) ) { /* skip if no vert group found */ - if(defgrp_index >= 0) { - dv = dm->getVertData(dm, i, CD_MDEFORMVERT); + if(dvert && defgrp_index >= 0) { + dv = &dvert[i]; if(dv) { weight = defvert_find_weight(dv, defgrp_index) * wmd->strength; diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c index 6dfe5314131..ca8161fe364 100644 --- a/source/blender/modifiers/intern/MOD_wave.c +++ b/source/blender/modifiers/intern/MOD_wave.c @@ -256,7 +256,7 @@ static void waveModifier_do(WaveModifierData *md, { WaveModifierData *wmd = (WaveModifierData*) md; MVert *mvert = NULL; - MDeformVert *dvert = NULL; + MDeformVert *dvert; int defgrp_index; float ctime = BKE_curframe(scene); float minfac = @@ -281,11 +281,7 @@ static void waveModifier_do(WaveModifierData *md, } /* get the index of the deform group */ - defgrp_index = defgroup_name_index(ob, wmd->defgrp_name); - - if(defgrp_index >= 0){ - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); - } + modifier_get_vgroup(ob, dm, wmd->defgrp_name, &dvert, &defgrp_index); if(wmd->damp == 0) wmd->damp = 10.0f; -- cgit v1.2.3 From e645068aa0e60916cf6e556235608fafb1f46c78 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 11 Jul 2011 09:47:13 +0000 Subject: Fix #27928: avi raw writing failure, after earlier bugfix for big file sizes. --- source/blender/avi/AVI_avi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/avi/AVI_avi.h b/source/blender/avi/AVI_avi.h index 1446971a8ac..97dc12f57d8 100644 --- a/source/blender/avi/AVI_avi.h +++ b/source/blender/avi/AVI_avi.h @@ -60,7 +60,7 @@ typedef struct _AviChunk { int fcc; - int64_t size; + int size; } AviChunk; typedef struct _AviList { -- cgit v1.2.3 From 3e8712bf638673860ecb7a613ede8ada60bb3400 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 11 Jul 2011 10:59:53 +0000 Subject: == The great Outliner code split up == As per my proposal (http://lists.blender.org/pipermail/bf- committers/2011-July/032553.html), I've split outliner.c into several new files based on the purpose of the relevant code. * outliner_tree.c - building outliner structure * outliner_draw.c - outliner drawing (including toggle buttons and their handling) * outliner_edit.c - all operators for toggling stuff, and/or hotkey accessed operators. Also KeyingSet and Driver operators go here * outliner_tools.c - all operators and callbacks used for handling RMB click on items * outliner_select.c - stuff for selecting rows, and handling the active/selected toggling stuff In a few cases, the split hasn't been totally clear-cut due to cross- dependencies and other spaghetti. However, in a few cases, I have managed to remove the need for some of the prototypes that were needed in the past by judicious reshuffling of functions, which also makes it easier to actually find what you're looking for. --- source/blender/editors/space_outliner/outliner.c | 6148 -------------------- .../blender/editors/space_outliner/outliner_draw.c | 1644 ++++++ .../blender/editors/space_outliner/outliner_edit.c | 1396 +++++ .../editors/space_outliner/outliner_intern.h | 88 +- .../editors/space_outliner/outliner_select.c | 865 +++ .../editors/space_outliner/outliner_tools.c | 1139 ++++ .../blender/editors/space_outliner/outliner_tree.c | 1533 +++++ 7 files changed, 6649 insertions(+), 6164 deletions(-) delete mode 100644 source/blender/editors/space_outliner/outliner.c create mode 100644 source/blender/editors/space_outliner/outliner_draw.c create mode 100644 source/blender/editors/space_outliner/outliner_edit.c create mode 100644 source/blender/editors/space_outliner/outliner_select.c create mode 100644 source/blender/editors/space_outliner/outliner_tools.c create mode 100644 source/blender/editors/space_outliner/outliner_tree.c (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c deleted file mode 100644 index d5bd5c7437f..00000000000 --- a/source/blender/editors/space_outliner/outliner.c +++ /dev/null @@ -1,6148 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2004 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/space_outliner/outliner.c - * \ingroup spoutliner - */ - - -#include -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_anim_types.h" -#include "DNA_armature_types.h" -#include "DNA_constraint_types.h" -#include "DNA_camera_types.h" -#include "DNA_group_types.h" -#include "DNA_key_types.h" -#include "DNA_lamp_types.h" -#include "DNA_material_types.h" -#include "DNA_mesh_types.h" -#include "DNA_meta_types.h" -#include "DNA_particle_types.h" -#include "DNA_scene_types.h" -#include "DNA_world_types.h" -#include "DNA_sequence_types.h" -#include "DNA_object_types.h" - -#include "BLI_blenlib.h" -#include "BLI_utildefines.h" -#include "BLI_math_base.h" - -#if defined WIN32 && !defined _LIBC -# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ -#else -# ifndef _GNU_SOURCE -# define _GNU_SOURCE -# endif -# include -#endif - - -#include "BKE_animsys.h" -#include "BKE_context.h" -#include "BKE_deform.h" -#include "BKE_depsgraph.h" -#include "BKE_fcurve.h" -#include "BKE_global.h" -#include "BKE_group.h" -#include "BKE_library.h" -#include "BKE_main.h" -#include "BKE_modifier.h" -#include "BKE_report.h" -#include "BKE_scene.h" -#include "BKE_sequencer.h" - -#include "ED_armature.h" -#include "ED_object.h" -#include "ED_screen.h" -#include "ED_util.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "BIF_gl.h" -#include "BIF_glutil.h" - -#include "UI_interface.h" -#include "UI_interface_icons.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "RNA_access.h" -#include "RNA_define.h" -#include "RNA_enum_types.h" - -#include "ED_keyframing.h" - -#include "outliner_intern.h" - - -#define OL_Y_OFFSET 2 - -#define OL_TOG_RESTRICT_VIEWX (UI_UNIT_X*3) -#define OL_TOG_RESTRICT_SELECTX (UI_UNIT_X*2) -#define OL_TOG_RESTRICT_RENDERX UI_UNIT_X - -#define OL_TOGW OL_TOG_RESTRICT_VIEWX - -#define OL_RNA_COLX (UI_UNIT_X*15) -#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) -#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) - -#define TS_CHUNK 128 - -#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL) - -/* ************* XXX **************** */ - -static void error(const char *UNUSED(arg), ...) {} - -/* ********************************** */ - - -/* ******************** PROTOTYPES ***************** */ -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty); -static void outliner_do_object_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)); - -static int group_select_flag(Group *gr); - -/* ******************** PERSISTANT DATA ***************** */ - -static void outliner_storage_cleanup(SpaceOops *soops) -{ - TreeStore *ts= soops->treestore; - - if(ts) { - TreeStoreElem *tselem; - int a, unused= 0; - - /* each element used once, for ID blocks with more users to have each a treestore */ - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) tselem->used= 0; - - /* cleanup only after reading file or undo step, and always for - * RNA datablocks view in order to save memory */ - if(soops->storeflag & SO_TREESTORE_CLEANUP) { - - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id==NULL) unused++; - } - - if(unused) { - if(ts->usedelem == unused) { - MEM_freeN(ts->data); - ts->data= NULL; - ts->usedelem= ts->totelem= 0; - } - else { - TreeStoreElem *tsnewar, *tsnew; - - tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem"); - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id) { - *tsnew= *tselem; - tsnew++; - } - } - MEM_freeN(ts->data); - ts->data= tsnewar; - ts->usedelem-= unused; - ts->totelem= ts->usedelem; - } - } - } - } -} - -static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr) -{ - TreeStore *ts; - TreeStoreElem *tselem; - int a; - - /* case 1; no TreeStore */ - if(soops->treestore==NULL) { - soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore"); - } - ts= soops->treestore; - - /* check if 'te' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if(tselem->id==id && tselem->used==0) { - if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) { - te->store_index= a; - tselem->used= 1; - return; - } - } - } - - /* add 1 element to treestore */ - if(ts->usedelem==ts->totelem) { - TreeStoreElem *tsnew; - - tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data"); - if(ts->data) { - memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem)); - MEM_freeN(ts->data); - } - ts->data= tsnew; - ts->totelem+= TS_CHUNK; - } - - tselem= ts->data+ts->usedelem; - - tselem->type= type; - if(type) tselem->nr= nr; // we're picky! :) - else tselem->nr= 0; - tselem->id= id; - tselem->used = 0; - tselem->flag= TSE_CLOSED; - te->store_index= ts->usedelem; - - ts->usedelem++; -} - -/* ******************** TREE MANAGEMENT ****************** */ - -void outliner_free_tree(ListBase *lb) -{ - - while(lb->first) { - TreeElement *te= lb->first; - - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } -} - -static void outliner_height(SpaceOops *soops, ListBase *lb, int *h) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - if((tselem->flag & TSE_CLOSED)==0) - outliner_height(soops, &te->subtree, h); - (*h) += UI_UNIT_Y; - te= te->next; - } -} - -#if 0 // XXX this is currently disabled until te->xend is set correctly -static void outliner_width(SpaceOops *soops, ListBase *lb, int *w) -{ - TreeElement *te= lb->first; - while(te) { -// TreeStoreElem *tselem= TREESTORE(te); - - // XXX fixme... te->xend is not set yet - if(tselem->flag & TSE_CLOSED) { - if (te->xend > *w) - *w = te->xend; - } - outliner_width(soops, &te->subtree, w); - te= te->next; - } -} -#endif - -static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - // XXX fixme... (currently, we're using a fixed length of 100)! - /*if(te->xend) { - if(te->xend > *w) - *w = te->xend; - }*/ - if(startx+100 > *w) - *w = startx+100; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X); - te= te->next; - } -} - -static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) -{ - TreeElement *te= lb->first, *tes; - while(te) { - if(te->store_index==store_index) return te; - tes= outliner_find_tree_element(&te->subtree, store_index); - if(tes) return tes; - te= te->next; - } - return NULL; -} - - - -static ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) -{ - TreeStoreElem *tselem; - te= te->parent; - - while(te) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==idcode) return tselem->id; - te= te->parent; - } - return NULL; -} - -struct treesort { - TreeElement *te; - ID *id; - const char *name; - short idcode; -}; - -static int treesort_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - int comp; - - /* first put objects last (hierarchy) */ - comp= (x1->idcode==ID_OB); - if(x2->idcode==ID_OB) comp+=2; - - if(comp==1) return 1; - else if(comp==2) return -1; - else if(comp==3) { - comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - return 0; -} - -/* this is nice option for later? doesnt look too useful... */ -#if 0 -static int treesort_obtype_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - - /* first put objects last (hierarchy) */ - if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1; - else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1; - else { - /* 2nd we check ob type */ - if(x1->idcode==ID_OB && x2->idcode==ID_OB) { - if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1; - else if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1; - else return 0; - } - else { - int comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - } -} -#endif - -/* sort happens on each subtree individual */ -static void outliner_sort(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - int totelem=0; - - te= lb->last; - if(te==NULL) return; - tselem= TREESTORE(te); - - /* sorting rules; only object lists or deformgroups */ - if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) { - - /* count first */ - for(te= lb->first; te; te= te->next) totelem++; - - if(totelem>1) { - struct treesort *tear= MEM_mallocN(totelem*sizeof(struct treesort), "tree sort array"); - struct treesort *tp=tear; - int skip= 0; - - for(te= lb->first; te; te= te->next, tp++) { - tselem= TREESTORE(te); - tp->te= te; - tp->name= te->name; - tp->idcode= te->idcode; - if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0; // dont sort this - tp->id= tselem->id; - } - /* keep beginning of list */ - for(tp= tear, skip=0; skipidcode) break; - - if(skipfirst=lb->last= NULL; - tp= tear; - while(totelem--) { - BLI_addtail(lb, tp->te); - tp++; - } - MEM_freeN(tear); - } - } - - for(te= lb->first; te; te= te->next) { - outliner_sort(soops, &te->subtree); - } -} - -/* Prototype, see functions below */ -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index); - -#define LOG2I(x) (int)(log(x)/M_LN2) - -static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) -{ - TreeStoreElem *tselem = NULL; - TreeElement *te = NULL; - - /* log stuff is to convert bitflags (powers of 2) to small integers, - * in order to not overflow short tselem->nr */ - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED)); - te->name= "Combined"; - te->directdata= &srl->passflag; - - /* save cpu cycles, but we add the first to invoke an open/close triangle */ - tselem = TREESTORE(tenla); - if(tselem->flag & TSE_CLOSED) - return; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z)); - te->name= "Z"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR)); - te->name= "Vector"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL)); - te->name= "Normal"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV)); - te->name= "UV"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST)); - te->name= "Mist"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB)); - te->name= "Index Object"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); - te->name= "Index Material"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); - te->name= "Color"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE)); - te->name= "Diffuse"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC)); - te->name= "Specular"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW)); - te->name= "Shadow"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO)); - te->name= "AO"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT)); - te->name= "Reflection"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT)); - te->name= "Refraction"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT)); - te->name= "Indirect"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT)); - te->name= "Environment"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT)); - te->name= "Emit"; - te->directdata= &srl->passflag; -} - -#undef LOG2I - -/* special handling of hierarchical non-lib data */ -static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, - TreeElement *parent, int *a) -{ - TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); - - (*a)++; - te->name= curBone->name; - te->directdata= curBone; - - for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { - outliner_add_bone(soops, &te->subtree, id, curBone, te, a); - } -} - -static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) -{ - SceneRenderLayer *srl; - TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0); - int a; - - tenla->name= "RenderLayers"; - for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) { - TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a); - tenlay->name= srl->name; - tenlay->directdata= &srl->passflag; - - if(srl->light_override) - outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0); - if(srl->mat_override) - outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0); - - outliner_add_passes(soops, tenlay, &sce->id, srl); - } - - // TODO: move this to the front? - if (sce->adt) - outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, lb, sce->world, te, 0, 0); -} - -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index) -{ - TreeElement *te; - TreeStoreElem *tselem; - ID *id= idv; - int a = 0; - - if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - id= ((PointerRNA*)idv)->id.data; - if(!id) id= ((PointerRNA*)idv)->data; - } - - if(id==NULL) return NULL; - - te= MEM_callocN(sizeof(TreeElement), "tree elem"); - /* add to the visual tree */ - BLI_addtail(lb, te); - /* add to the storage */ - check_persistant(soops, te, id, type, index); - tselem= TREESTORE(te); - - te->parent= parent; - te->index= index; // for data arays - if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)); - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)); - else if(type==TSE_ANIM_DATA); - else { - te->name= id->name+2; // default, can be overridden by Library or non-ID data - te->idcode= GS(id->name); - } - - if(type==0) { - - /* tuck pointer back in object, to construct hierarchy */ - if(GS(id->name)==ID_OB) id->newid= (ID *)te; - - /* expand specific data always */ - switch(GS(id->name)) { - case ID_LI: - te->name= ((Library *)id)->name; - break; - case ID_SCE: - outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); - break; - case ID_OB: - { - Object *ob= (Object *)id; - - if (ob->adt) - outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this - - if(ob->proxy && ob->id.lib==NULL) - outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); - - outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); - - if(ob->pose) { - bArmature *arm= ob->data; - bPoseChannel *pchan; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); - - tenla->name= "Pose"; - - if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) { // channels undefined in editmode, but we want the 'tenla' pose icon itself - int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ - - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); - ten->name= pchan->name; - ten->directdata= pchan; - pchan->prev= (bPoseChannel *)ten; - - if(pchan->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten1; - TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); - //char *str; - - tenla1->name= "Constraints"; - for(con= pchan->constraints.first; con; con= con->next, const_index++) { - ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); -#if 0 /* disabled as it needs to be reworked for recoded constraints system */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten1->name= str; - else if(target) ten1->name= target->id.name+2; - else ten1->name= con->name; -#endif - ten1->name= con->name; - ten1->directdata= con; - /* possible add all other types links? */ - } - } - } - /* make hierarchy */ - ten= tenla->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - if(tselem->type==TSE_POSE_CHANNEL) { - pchan= (bPoseChannel *)ten->directdata; - if(pchan->parent) { - BLI_remlink(&tenla->subtree, ten); - par= (TreeElement *)pchan->parent->prev; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - } - ten= nten; - } - /* restore prev pointers */ - pchan= ob->pose->chanbase.first; - if(pchan) pchan->prev= NULL; - for(; pchan; pchan= pchan->next) { - if(pchan->next) pchan->next->prev= pchan; - } - } - - /* Pose Groups */ - if(ob->pose->agroups.first) { - bActionGroup *agrp; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); - int a= 0; - - tenla->name= "Bone Groups"; - for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); - ten->name= agrp->name; - ten->directdata= agrp; - } - } - } - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); - - if(ob->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); - int a= 0; - //char *str; - - tenla->name= "Constraints"; - for(con= ob->constraints.first; con; con= con->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); -#if 0 /* disabled due to constraints system targets recode... code here needs review */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten->name= str; - else if(target) ten->name= target->id.name+2; - else ten->name= con->name; -#endif - ten->name= con->name; - ten->directdata= con; - /* possible add all other types links? */ - } - } - - if(ob->modifiers.first) { - ModifierData *md; - TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); - int index; - - temod->name = "Modifiers"; - for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { - TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); - te->name= md->name; - te->directdata = md; - - if (md->type==eModifierType_Lattice) { - outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Curve) { - outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Armature) { - outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Hook) { - outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_ParticleSystem) { - TreeElement *ten; - ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; - - ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); - ten->directdata = psys; - ten->name = psys->part->id.name+2; - } - } - } - if(ob->defbase.first) { - bDeformGroup *defgroup; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); - int a= 0; - - tenla->name= "Vertex Groups"; - for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); - ten->name= defgroup->name; - ten->directdata= defgroup; - } - } - - if(ob->dup_group) - outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); - - } - break; - case ID_ME: - { - Mesh *me= (Mesh *)id; - - if (me->adt) - outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); - /* could do tfaces with image links, but the images are not grouped nicely. - would require going over all tfaces, sort images in use. etc... */ - } - break; - case ID_CU: - { - Curve *cu= (Curve *)id; - - if (cu->adt) - outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); - } - break; - case ID_MB: - { - MetaBall *mb= (MetaBall *)id; - - if (mb->adt) - outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); - } - break; - case ID_MA: - { - Material *ma= (Material *)id; - - if (ma->adt) - outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_TE: - { - Tex *tex= (Tex *)id; - - if (tex->adt) - outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); - } - break; - case ID_CA: - { - Camera *ca= (Camera *)id; - - if (ca->adt) - outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); - } - break; - case ID_LA: - { - Lamp *la= (Lamp *)id; - - if (la->adt) - outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_WO: - { - World *wrld= (World *)id; - - if (wrld->adt) - outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_KE: - { - Key *key= (Key *)id; - - if (key->adt) - outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); - } - break; - case ID_AC: - { - // XXX do we want to be exposing the F-Curves here? - //bAction *act= (bAction *)id; - } - break; - case ID_AR: - { - bArmature *arm= (bArmature *)id; - int a= 0; - - if (arm->adt) - outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); - - if(arm->edbo) { - EditBone *ebone; - TreeElement *ten; - - for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { - ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); - ten->directdata= ebone; - ten->name= ebone->name; - ebone->temp= ten; - } - /* make hierarchy */ - ten= te->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - ebone= (EditBone *)ten->directdata; - if(ebone->parent) { - BLI_remlink(&te->subtree, ten); - par= ebone->parent->temp; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - } - else { - /* do not extend Armature when we have posemode */ - tselem= TREESTORE(te->parent); - if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE); - else { - Bone *curBone; - for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ - outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); - } - } - } - } - break; - } - } - else if(type==TSE_ANIM_DATA) { - IdAdtTemplate *iat = (IdAdtTemplate *)idv; - AnimData *adt= (AnimData *)iat->adt; - - /* this element's info */ - te->name= "Animation"; - - /* Action */ - outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0); - - /* Drivers */ - if (adt->drivers.first) { - TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); - ID *lastadded= NULL; - FCurve *fcu; - - ted->name= "Drivers"; - - for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { - if (fcu->driver && fcu->driver->variables.first) { - ChannelDriver *driver= fcu->driver; - DriverVar *dvar; - - for (dvar= driver->variables.first; dvar; dvar= dvar->next) { - /* loop over all targets used here */ - DRIVER_TARGETS_USED_LOOPER(dvar) - { - if (lastadded != dtar->id) { - // XXX this lastadded check is rather lame, and also fails quite badly... - outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); - lastadded= dtar->id; - } - } - DRIVER_TARGETS_LOOPER_END - } - } - } - } - - /* NLA Data */ - if (adt->nla_tracks.first) { - TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0); - NlaTrack *nlt; - int a= 0; - - tenla->name= "NLA Tracks"; - - for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) { - TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a); - NlaStrip *strip; - TreeElement *ten; - int b= 0; - - tenlt->name= nlt->name; - - for (strip=nlt->strips.first; strip; strip=strip->next, b++) { - ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b); - if(ten) ten->directdata= strip; - } - } - } - } - else if(type==TSE_SEQUENCE) { - Sequence *seq= (Sequence*) idv; - Sequence *p; - - /* - * The idcode is a little hack, but the outliner - * only check te->idcode if te->type is equal to zero, - * so this is "safe". - */ - te->idcode= seq->type; - te->directdata= seq; - - if(seq->type<7) { - /* - * This work like the sequence. - * If the sequence have a name (not default name) - * show it, in other case put the filename. - */ - if(strcmp(seq->name, "SQ")) - te->name= seq->name; - else { - if((seq->strip) && (seq->strip->stripdata)) - te->name= seq->strip->stripdata->name; - else - te->name= "SQ None"; - } - - if(seq->type==SEQ_META) { - te->name= "Meta Strip"; - p= seq->seqbase.first; - while(p) { - outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } - } - else - outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index); - } - else - te->name= "Effect"; - } - else if(type==TSE_SEQ_STRIP) { - Strip *strip= (Strip *)idv; - - if(strip->dir) - te->name= strip->dir; - else - te->name= "Strip None"; - te->directdata= strip; - } - else if(type==TSE_SEQUENCE_DUP) { - Sequence *seq= (Sequence*)idv; - - te->idcode= seq->type; - te->directdata= seq; - te->name= seq->strip->stripdata->name; - } - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv; - PropertyRNA *prop, *iterprop; - PropertyType proptype; - int a, tot; - - /* we do lazy build, for speed and to avoid infinite recusion */ - - if(ptr->data == NULL) { - te->name= "(empty)"; - } - else if(type == TSE_RNA_STRUCT) { - /* struct */ - te->name= RNA_struct_name_get_alloc(ptr, NULL, 0); - - if(te->name) - te->flag |= TE_FREE_NAME; - else - te->name= (char*)RNA_struct_ui_name(ptr->type); - - iterprop= RNA_struct_iterator_property(ptr->type); - tot= RNA_property_collection_length(ptr, iterprop); - - /* auto open these cases */ - if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) - if(!tselem->used) - tselem->flag &= ~TSE_CLOSED; - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_PROPERTY, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - - te->rnaptr= *ptr; - } - else if(type == TSE_RNA_PROPERTY) { - /* property */ - iterprop= RNA_struct_iterator_property(ptr->type); - RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr); - - prop= propptr.data; - proptype= RNA_property_type(prop); - - te->name= (char*)RNA_property_ui_name(prop); - te->directdata= prop; - te->rnaptr= *ptr; - - if(proptype == PROP_POINTER) { - pptr= RNA_property_pointer_get(ptr, prop); - - if(pptr.data) { - if(!(tselem->flag & TSE_CLOSED)) - outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); - else - te->flag |= TE_LAZY_CLOSED; - } - } - else if(proptype == PROP_COLLECTION) { - tot= RNA_property_collection_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, a); - } - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) { - tot= RNA_property_array_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - } - else if(type == TSE_RNA_ARRAY_ELEM) { - char c; - - prop= parent->directdata; - - te->directdata= prop; - te->rnaptr= *ptr; - te->index= index; - - c= RNA_property_array_item_char(prop, index); - - te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName"); - if(c) sprintf((char *)te->name, " %c", c); - else sprintf((char *)te->name, " %d", index+1); - te->flag |= TE_FREE_NAME; - } - } - else if(type == TSE_KEYMAP) { - wmKeyMap *km= (wmKeyMap *)idv; - wmKeyMapItem *kmi; - char opname[OP_MAX_TYPENAME]; - - te->directdata= idv; - te->name= km->idname; - - if(!(tselem->flag & TSE_CLOSED)) { - a= 0; - - for (kmi= km->items.first; kmi; kmi= kmi->next, a++) { - const char *key= WM_key_event_string(kmi->type); - - if(key[0]) { - wmOperatorType *ot= NULL; - - if(kmi->propvalue); - else ot= WM_operatortype_find(kmi->idname, 0); - - if(ot || kmi->propvalue) { - TreeElement *ten= outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a); - - ten->directdata= kmi; - - if(kmi->propvalue) { - ten->name= "Modal map, not yet"; - } - else { - WM_operator_py_idname(opname, ot->idname); - ten->name= BLI_strdup(opname); - ten->flag |= TE_FREE_NAME; - } - } - } - } - } - else - te->flag |= TE_LAZY_CLOSED; - } - - return te; -} - -static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten, *tep; - TreeStoreElem *tselem; - - /* build hierarchy */ - // XXX also, set extents here... - te= lb->first; - while(te) { - ten= te->next; - tselem= TREESTORE(te); - - if(tselem->type==0 && te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - if(ob->parent && ob->parent->id.newid) { - BLI_remlink(lb, te); - tep= (TreeElement *)ob->parent->id.newid; - BLI_addtail(&tep->subtree, te); - // set correct parent pointers - for(te=tep->subtree.first; te; te= te->next) te->parent= tep; - } - } - te= ten; - } -} - -/* Helped function to put duplicate sequence in the same tree. */ -static int need_add_seq_dup(Sequence *seq) -{ - Sequence *p; - - if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name)) - return(1); - - /* - * First check backward, if we found a duplicate - * sequence before this, don't need it, just return. - */ - p= seq->prev; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->prev; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(2); - p= p->prev; - } - - p= seq->next; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(0); - p= p->next; - } - return(1); -} - -static void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index) -{ - TreeElement *ch; - Sequence *p; - - p= seq; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } -} - -static int outliner_filter_has_name(TreeElement *te, const char *name, int flags) -{ -#if 0 - int found= 0; - - /* determine if match */ - if (flags & SO_FIND_CASE_SENSITIVE) { - if (flags & SO_FIND_COMPLETE) - found= strcmp(te->name, name) == 0; - else - found= strstr(te->name, name) != NULL; - } - else { - if (flags & SO_FIND_COMPLETE) - found= BLI_strcasecmp(te->name, name) == 0; - else - found= BLI_strcasestr(te->name, name) != NULL; - } -#else - - int fn_flag= 0; - int found= 0; - - if ((flags & SO_FIND_CASE_SENSITIVE) == 0) - fn_flag |= FNM_CASEFOLD; - - if (flags & SO_FIND_COMPLETE) { - found= fnmatch(name, te->name, fn_flag)==0; - } - else { - char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2]; - sprintf(fn_name, "*%s*", name); - found= fnmatch(fn_name, te->name, fn_flag)==0; - } - return found; -#endif -} - -static int outliner_filter_tree(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten; - TreeStoreElem *tselem; - - /* although we don't have any search string, we return TRUE - * since the entire tree is ok then... - */ - if (soops->search_string[0]==0) - return 1; - - for (te= lb->first; te; te= ten) { - ten= te->next; - - if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) { - /* item isn't something we're looking for, but... - * - if the subtree is expanded, check if there are any matches that can be easily found - * so that searching for "cu" in the default scene will still match the Cube - * - otherwise, we can't see within the subtree and the item doesn't match, - * so these can be safely ignored (i.e. the subtree can get freed) - */ - tselem= TREESTORE(te); - - if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } - } - else { - /* filter subtree too */ - outliner_filter_tree(soops, &te->subtree); - } - } - - /* if there are still items in the list, that means that there were still some matches */ - return (lb->first != NULL); -} - - -static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) -{ - Base *base; - Object *ob; - TreeElement *te=NULL, *ten; - TreeStoreElem *tselem; - int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */ - - if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW)) - return; - - outliner_free_tree(&soops->tree); - outliner_storage_cleanup(soops); - - /* clear ob id.new flags */ - for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL; - - /* options */ - if(soops->outlinevis == SO_LIBRARIES) { - Library *lib; - - for(lib= mainvar->library.first; lib; lib= lib->id.next) { - ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0); - lib->id.newid= (ID *)ten; - } - /* make hierarchy */ - ten= soops->tree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - lib= (Library *)tselem->id; - if(lib->parent) { - BLI_remlink(&soops->tree, ten); - par= (TreeElement *)lib->parent->id.newid; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - /* restore newid pointers */ - for(lib= mainvar->library.first; lib; lib= lib->id.next) - lib->id.newid= NULL; - - } - else if(soops->outlinevis == SO_ALL_SCENES) { - Scene *sce; - for(sce= mainvar->scene.first; sce; sce= sce->id.next) { - te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0); - tselem= TREESTORE(te); - if(sce==scene && show_opened) - tselem->flag &= ~TSE_CLOSED; - - for(base= sce->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL; - } - } - else if(soops->outlinevis == SO_CUR_SCENE) { - - outliner_add_scene_contents(soops, &soops->tree, scene, NULL); - - for(base= scene->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_VISIBLE) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) - outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_GROUPS) { - Group *group; - GroupObject *go; - - for(group= mainvar->group.first; group; group= group->id.next) { - if(group->gobject.first) { - te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0); - - for(go= group->gobject.first; go; go= go->next) { - ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0); - ten->directdata= NULL; /* eh, why? */ - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL; - } - } - } - else if(soops->outlinevis == SO_SAME_TYPE) { - Object *ob= OBACT; - if(ob) { - for(base= scene->base.first; base; base= base->next) { - if(base->object->type==ob->type) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - } - else if(soops->outlinevis == SO_SELECTED) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) { - if(base==BASACT || (base->flag & SELECT)) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis==SO_SEQUENCE) { - Sequence *seq; - Editing *ed= seq_give_editing(scene, FALSE); - int op; - - if(ed==NULL) - return; - - seq= ed->seqbasep->first; - if(!seq) - return; - - while(seq) { - op= need_add_seq_dup(seq); - if(op==1) - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0); - else if(op==0) { - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0); - add_seq_dup(soops, seq, ten, 0); - } - seq= seq->next; - } - } - else if(soops->outlinevis==SO_DATABLOCKS) { - PointerRNA mainptr; - - RNA_main_pointer_create(mainvar, &mainptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_USERDEF) { - PointerRNA userdefptr; - - RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_KEYMAP) { - wmWindowManager *wm= mainvar->wm.first; - wmKeyMap *km; - - for(km= wm->defaultconf->keymaps.first; km; km= km->next) { - ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0); - } - } - else { - ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0); - if(ten) ten->directdata= BASACT; - } - - outliner_sort(soops, &soops->tree); - outliner_filter_tree(soops, &soops->tree); -} - -/* **************** INTERACTIVE ************* */ - - -static int outliner_scroll_page_exec(bContext *C, wmOperator *op) -{ - ARegion *ar= CTX_wm_region(C); - int dy= ar->v2d.mask.ymax - ar->v2d.mask.ymin; - int up= 0; - - if(RNA_boolean_get(op->ptr, "up")) - up= 1; - - if(up == 0) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_scroll_page(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Scroll Page"; - ot->idname= "OUTLINER_OT_scroll_page"; - ot->description= "Scroll page up or down"; - - /* callbacks */ - ot->exec= outliner_scroll_page_exec; - ot->poll= ED_operator_outliner_active; - - /* properties */ - RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page."); -} - - -static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel) -{ - TreeElement *te; - int level=curlevel, lev; - - for(te= lb->first; te; te= te->next) { - - lev= outliner_count_levels(soops, &te->subtree, curlevel+1); - if(lev>level) level= lev; - } - return level; -} - -static int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - int level; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & flag) return curlevel; - - level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1); - if(level) return level; - } - return 0; -} - -static void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(set==0) tselem->flag &= ~flag; - else tselem->flag |= flag; - outliner_set_flag(soops, &te->subtree, flag, set); - } -} - -/* --- */ - -/* same check needed for both object operation and restrict column button func - * return 0 when in edit mode (cannot restrict view or select) - * otherwise return 1 */ -static int common_restrict_check(bContext *C, Object *ob) -{ - /* Don't allow hide an object in edit mode, - * check the bug #22153 and #21609, #23977 - */ - Object *obedit= CTX_data_edit_object(C); - if (obedit && obedit == ob) { - /* found object is hidden, reset */ - if (ob->restrictflag & OB_RESTRICT_VIEW) - ob->restrictflag &= ~OB_RESTRICT_VIEW; - /* found object is unselectable, reset */ - if (ob->restrictflag & OB_RESTRICT_SELECT) - ob->restrictflag &= ~OB_RESTRICT_SELECT; - return 0; - } - - return 1; -} - -static void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - Object *ob = (Object *)tselem->id; - - /* add check for edit mode */ - if(!common_restrict_check(C, ob)) return; - - if(base || (base= object_in_scene(ob, scene))) { - if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) { - ED_base_object_select(base, BA_DESELECT); - } - } -} - -static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_visibility_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Visibility"; - ot->idname= "OUTLINER_OT_visibility_toggle"; - ot->description= "Toggle the visibility of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_visibility_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_SELECT; - } -} - -static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selectability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selectability"; - ot->idname= "OUTLINER_OT_selectability_toggle"; - ot->description= "Toggle the selectability"; - - /* callbacks */ - ot->exec= outliner_toggle_selectability_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -static void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_RENDER; - } -} - -static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_renderability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Renderability"; - ot->idname= "OUTLINER_OT_renderability_toggle"; - ot->description= "Toggle the renderability of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_renderability_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Expand/Collapse All"; - ot->idname= "OUTLINER_OT_expanded_toggle"; - ot->description= "Expand/Collapse all items"; - - /* callbacks */ - ot->exec= outliner_toggle_expanded_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selected_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selected"; - ot->idname= "OUTLINER_OT_selected_toggle"; - ot->description= "Toggle the Outliner selection of items"; - - /* callbacks */ - ot->exec= outliner_toggle_selected_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -/* helper function for Show/Hide one level operator */ -static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(open) { - if(curlevel<=level) tselem->flag &= ~TSE_CLOSED; - } - else { - if(curlevel>=level) tselem->flag |= TSE_CLOSED; - } - - outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open); - } -} - -static int outliner_one_level_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - int add= RNA_boolean_get(op->ptr, "open"); - int level; - - level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1); - if(add==1) { - if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1); - } - else { - if(level==0) level= outliner_count_levels(soops, &soops->tree, 0); - if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_one_level(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show/Hide One Level"; - ot->idname= "OUTLINER_OT_show_one_level"; - ot->description= "Expand/collapse all entries by one level"; - - /* callbacks */ - ot->exec= outliner_one_level_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ - - /* properties */ - RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); -} - -/* This is not used anywhere at the moment */ -#if 0 -/* return 1 when levels were opened */ -static int outliner_open_back(SpaceOops *soops, TreeElement *te) -{ - TreeStoreElem *tselem; - int retval= 0; - - for (te= te->parent; te; te= te->parent) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) { - tselem->flag &= ~TSE_CLOSED; - retval= 1; - } - } - return retval; -} - -static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te; te= te->next) { - /* check if this tree-element was the one we're seeking */ - if (te == teFind) { - *found= 1; - return; - } - - /* try to see if sub-tree contains it then */ - outliner_open_reveal(soops, &te->subtree, teFind, found); - if (*found) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) - tselem->flag &= ~TSE_CLOSED; - return; - } - } -} -#endif - -// XXX just use View2D ops for this? -static void outliner_page_up_down(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int up) -{ - int dy= ar->v2d.mask.ymax-ar->v2d.mask.ymin; - - if(up == -1) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - soops->storeflag |= SO_TREESTORE_REDRAW; -} - -/* **** do clicks on items ******* */ - -static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Scene *sce; - - /* paranoia check */ - if(te->idcode!=ID_SCE) - return 0; - sce= (Scene *)tselem->id; - - if(set) { - sce->r.actlay= tselem->nr; - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce); - } - else { - return sce->r.actlay==tselem->nr; - } - return 0; -} - -static void tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeStoreElem *tselem= TREESTORE(te); - Scene *sce; - Base *base; - Object *ob= NULL; - - /* if id is not object, we search back */ - if(te->idcode==ID_OB) ob= (Object *)tselem->id; - else { - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==OBACT) return; - } - if(ob==NULL) return; - - sce= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - - /* find associated base in current scene */ - base= object_in_scene(ob, scene); - - if(base) { - if(set==2) { - /* swap select */ - if(base->flag & SELECT) - ED_base_object_select(base, BA_DESELECT); - else - ED_base_object_select(base, BA_SELECT); - } - else { - /* deleselect all */ - scene_deselect_all(scene); - ED_base_object_select(base, BA_SELECT); - } - if(C) { - ED_base_object_activate(C, base); /* adds notifier */ - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - } - - if(ob!=scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); -} - -static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tes; - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - // note: ob->matbits can be NULL when a local object points to a library mesh. - if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia - - /* searching in ob mat array? */ - tes= te->parent; - if(tes->idcode==ID_OB) { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 1; // make ob material active too - ob->colbits |= (1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]) return 1; - } - } - /* or we search for obdata material */ - else { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 0; // make obdata material active too - ob->colbits &= ~(1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]==0) return 1; - } - } - if(set) { - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); - } - return 0; -} - -static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem /* *tselem,*/ *tselemp; - Object *ob=OBACT; - SpaceButs *sbuts=NULL; - - if(ob==NULL) return 0; // no active object - - /*tselem= TREESTORE(te);*/ /*UNUSED*/ - - /* find buttons area (note, this is undefined really still, needs recode in blender) */ - /* XXX removed finding sbuts */ - - /* where is texture linked to? */ - tep= te->parent; - tselemp= TREESTORE(tep); - - if(tep->idcode==ID_WO) { - World *wrld= (World *)tselemp->id; - - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 1; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - wrld->texact= te->index; - } - else if(tselemp->id == (ID *)(scene->world)) { - if(wrld->texact==te->index) return 1; - } - } - else if(tep->idcode==ID_LA) { - Lamp *la= (Lamp *)tselemp->id; - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 2; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - la->texact= te->index; - } - else { - if(tselemp->id == ob->data) { - if(la->texact==te->index) return 1; - } - } - } - else if(tep->idcode==ID_MA) { - Material *ma= (Material *)tselemp->id; - if(set) { - if(sbuts) { - //sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 0; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - ma->texact= (char)te->index; - - /* also set active material */ - ob->actcol= tep->index+1; - } - else if(tep->flag & TE_ACTIVE) { // this is active material - if(ma->texact==te->index) return 1; - } - } - - if(set) - WM_event_add_notifier(C, NC_TEXTURE, NULL); - - return 0; -} - - -static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==NULL || ob!=OBACT) return 0; // just paranoia - - if(set) { -// XXX extern_set_butspace(F5KEY, 0); - } - else return 1; - - return 0; -} - -static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob= (Object *)outliner_search_back(soops, te, ID_OB); - - if(set) - return 0; - - return scene->camera == ob; -} - -static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem *tselem=NULL; - Scene *sce=NULL; - - tep= te->parent; - if(tep) { - tselem= TREESTORE(tep); - sce= (Scene *)tselem->id; - } - - if(set) { // make new scene active - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - } - - if(tep==NULL || tselem->id == (ID *)scene) { - if(set) { -// XXX extern_set_butspace(F8KEY, 0); - } - else { - return 1; - } - } - return 0; -} - -static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob; - - /* id in tselem is object */ - ob= (Object *)tselem->id; - if(set) { - ob->actdef= te->index+1; - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); - } - else { - if(ob==OBACT) - if(ob->actdef== te->index+1) return 1; - } - return 0; -} - -static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - - if(set) { - if (ob->pose) { - ob->pose->active_group= te->index+1; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - } - } - else { - if(ob==OBACT && ob->pose) { - if (ob->pose->active_group== te->index+1) return 1; - } - } - return 0; -} - -static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - bArmature *arm= ob->data; - bPoseChannel *pchan= te->directdata; - - if(set) { - if(!(pchan->bone->flag & BONE_HIDDEN_P)) { - - if(set==2) ED_pose_deselectall(ob, 2); // 2 = clear active tag - else ED_pose_deselectall(ob, 0); // 0 = deselect - - if(set==2 && (pchan->bone->flag & BONE_SELECTED)) { - pchan->bone->flag &= ~BONE_SELECTED; - } else { - pchan->bone->flag |= BONE_SELECTED; - arm->act_bone= pchan->bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob); - - } - } - else { - if(ob==OBACT && ob->pose) { - if (pchan->bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - -static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - bArmature *arm= (bArmature *)tselem->id; - Bone *bone= te->directdata; - - if(set) { - if(!(bone->flag & BONE_HIDDEN_P)) { - if(set==2) ED_pose_deselectall(OBACT, 2); // 2 is clear active tag - else ED_pose_deselectall(OBACT, 0); - - if(set==2 && (bone->flag & BONE_SELECTED)) { - bone->flag &= ~BONE_SELECTED; - } else { - bone->flag |= BONE_SELECTED; - arm->act_bone= bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT); - } - } - else { - Object *ob= OBACT; - - if(ob && ob->data==arm) { - if (bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - - -/* ebones only draw in editmode armature */ -static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel) -{ - if(sel) { - ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL; - arm->act_edbone= ebone; - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL; - } - else { - ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit); -} -static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - bArmature *arm= scene->obedit->data; - EditBone *ebone= te->directdata; - - if(set==1) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - ED_armature_deselect_all(scene->obedit, 0); // deselect - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - } - else if (set==2) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - if(!(ebone->flag & BONE_SELECTED)) { - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - else { - /* entirely selected, so de-select */ - tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE); - return 0; - } - } - } - else if (ebone->flag & BONE_SELECTED) { - return 1; - } - return 0; -} - -static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); - -// XXX extern_set_butspace(F9KEY, 0); - } - - return 0; -} - -static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); - -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set)) -{ - // XXX removed - return 0; -} - -/* generic call for ID data check or make/check active in UI */ -static int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - - switch(te->idcode) { - case ID_MA: - return tree_element_active_material(C, scene, soops, te, set); - case ID_WO: - return tree_element_active_world(C, scene, soops, te, set); - case ID_LA: - return tree_element_active_lamp(C, scene, soops, te, set); - case ID_TE: - return tree_element_active_texture(C, scene, soops, te, set); - case ID_TXT: - return tree_element_active_text(C, scene, soops, te, set); - case ID_CA: - return tree_element_active_camera(C, scene, soops, te, set); - } - return 0; -} - -static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - Base *base= object_in_scene(ob, scene); - - if(set) { - if(scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - if(ob->mode & OB_MODE_POSE) - ED_armature_exit_posemode(C, base); - else - ED_armature_enter_posemode(C, base); - } - else { - if(ob->mode & OB_MODE_POSE) return 1; - } - return 0; -} - -static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq= (Sequence*) te->directdata; - - if(set) { -// XXX select_single_seq(seq, 1); - } - else { - if(seq->flag & SELECT) - return(1); - } - return(0); -} - -static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq, *p; - Editing *ed= seq_give_editing(scene, FALSE); - - seq= (Sequence*)te->directdata; - if(set==0) { - if(seq->flag & SELECT) - return(1); - return(0); - } - -// XXX select_single_seq(seq, 1); - p= ed->seqbasep->first; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - -// if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) -// XXX select_single_seq(p, 0); - p= p->next; - } - return(0); -} - -static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - wmKeyMapItem *kmi= te->directdata; - - if(set==0) { - if(kmi->flag & KMI_INACTIVE) return 0; - return 1; - } - else { - kmi->flag ^= KMI_INACTIVE; - } - return 0; -} - - -/* generic call for non-id data to make/check active in UI */ -/* Context can be NULL when set==0 */ -static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set) -{ - switch(tselem->type) { - case TSE_DEFGROUP: - return tree_element_active_defgroup(C, scene, te, tselem, set); - case TSE_BONE: - return tree_element_active_bone(C, scene, te, tselem, set); - case TSE_EBONE: - return tree_element_active_ebone(C, scene, te, tselem, set); - case TSE_MODIFIER: - return tree_element_active_modifier(C, te, tselem, set); - case TSE_LINKED_OB: - if(set) tree_element_set_active_object(C, scene, soops, te, set); - else if(tselem->id==(ID *)OBACT) return 1; - break; - case TSE_LINKED_PSYS: - return tree_element_active_psys(C, scene, te, tselem, set); - case TSE_POSE_BASE: - return tree_element_active_pose(C, scene, te, tselem, set); - case TSE_POSE_CHANNEL: - return tree_element_active_posechannel(C, scene, te, tselem, set); - case TSE_CONSTRAINT: - return tree_element_active_constraint(C, te, tselem, set); - case TSE_R_LAYER: - return tree_element_active_renderlayer(C, te, tselem, set); - case TSE_POSEGRP: - return tree_element_active_posegroup(C, scene, te, tselem, set); - case TSE_SEQUENCE: - return tree_element_active_sequence(te, tselem, set); - case TSE_SEQUENCE_DUP: - return tree_element_active_sequence_dup(scene, te, tselem, set); - case TSE_KEYMAP_ITEM: - return tree_element_active_keymap_item(C, te, tselem, set); - - } - return 0; -} - -static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - int openclose= 0; - - /* open close icon */ - if((te->flag & TE_ICONROW)==0) { // hidden icon, no open/close - if( mval[0]>te->xs && mval[0]xs+UI_UNIT_X) - openclose= 1; - } - - if(openclose) { - /* all below close/open? */ - if(extend) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - - } - - return 1; - } - /* name and first icon */ - else if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* always makes active object */ - if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP) - tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0)); - - if(tselem->type==0) { // the lib blocks - /* editmode? */ - if(te->idcode==ID_SCE) { - if(scene!=(Scene *)tselem->id) { - ED_screen_set_scene(C, (Scene *)tselem->id); - } - } - else if(te->idcode==ID_GR) { - Group *gr= (Group *)tselem->id; - GroupObject *gob; - - if(extend) { - int sel= BA_SELECT; - for(gob= gr->gobject.first; gob; gob= gob->next) { - if(gob->ob->flag & SELECT) { - sel= BA_DESELECT; - break; - } - } - - for(gob= gr->gobject.first; gob; gob= gob->next) { - ED_base_object_select(object_in_scene(gob->ob, scene), sel); - } - } - else { - scene_deselect_all(scene); - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->flag & SELECT) == 0) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) { - WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); - } else { // rest of types - tree_element_active(C, scene, soops, te, 1); - } - - } - else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0)); - - return 1; - } - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1; - } - return 0; -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int extend= RNA_boolean_get(op->ptr, "extend"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX) - return OPERATOR_CANCELLED; - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break; - } - - if(te) { - ED_undo_push(C, "Outliner click event"); - } - else { - short selecting= -1; - int row; - - /* get row number - 100 here is just a dummy value since we don't need the column */ - UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, - fmval[0], fmval[1], NULL, &row); - - /* select relevant row */ - outliner_select(soops, &soops->tree, &row, &selecting); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - ED_undo_push(C, "Outliner selection event"); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_activate(wmOperatorType *ot) -{ - ot->name= "Activate Item"; - ot->idname= "OUTLINER_OT_item_activate"; - ot->description= "Handle mouse clicks to activate/select items"; - - ot->invoke= outliner_item_activate; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation."); -} - -/* *********** */ - -static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* all below close/open? */ - if(all) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, mval)) - return 1; - } - return 0; - -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int all= RNA_boolean_get(op->ptr, "all"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, fmval)) - break; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_openclose(wmOperatorType *ot) -{ - ot->name= "Open/Close Item"; - ot->idname= "OUTLINER_OT_item_openclose"; - ot->description= "Toggle whether item under cursor is enabled or closed"; - - ot->invoke= outliner_item_openclose; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items."); - -} - - -/* ********************************************** */ - -static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* name and first icon */ - if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* can't rename rna datablocks entries */ - if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) - ; - else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) - error("Cannot edit builtin name"); - else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) - error("Cannot edit sequence name"); - else if(tselem->id->lib) { - // XXX error_libdata(); - } - else if(te->idcode == ID_LI && te->parent) { - error("Cannot edit the path of an indirectly linked library"); - } - else { - tselem->flag |= TSE_TEXTBUT; - ED_region_tag_redraw(ar); - } - } - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1; - } - return 0; -} - -static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, fmval)) break; - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_item_rename(wmOperatorType *ot) -{ - ot->name= "Rename Item"; - ot->idname= "OUTLINER_OT_item_rename"; - ot->description= "Rename item under cursor"; - - ot->invoke= outliner_item_rename; - - ot->poll= ED_operator_outliner_active; -} - -static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id) -{ - TreeElement *te, *tes; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0) { - if(tselem->id==id) return te; - /* only deeper on scene or object */ - if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) { - tes= outliner_find_id(soops, &te->subtree, id); - if(tes) return tes; - } - } - } - return NULL; -} - -static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *so= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - - TreeElement *te; - int xdelta, ytop; - - // TODO: make this get this info from context instead... - if (OBACT == NULL) - return OPERATOR_CANCELLED; - - te= outliner_find_id(so, &so->tree, (ID *)OBACT); - if (te) { - /* make te->ys center of view */ - ytop= (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin)/2); - if (ytop>0) ytop= 0; - - v2d->cur.ymax= (float)ytop; - v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - v2d->cur.xmin); - v2d->cur.xmin += xdelta; - v2d->cur.xmax += xdelta; - - so->storeflag |= SO_TREESTORE_REDRAW; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_active(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Active"; - ot->idname= "OUTLINER_OT_show_active"; - ot->description= "Adjust the view so that the active Object is shown centered"; - - /* callbacks */ - ot->exec= outliner_show_active_exec; - ot->poll= ED_operator_outliner_active; -} - -/* tse is not in the treestore, we use its contents to find a match */ -static TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse) -{ - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem; - int a; - - if(tse->id==NULL) return NULL; - - /* check if 'tse' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) { - if(tselem->id==tse->id) { - break; - } - } - } - if(tselem) - return outliner_find_tree_element(&soops->tree, a); - - return NULL; -} - - -/* Called to find an item based on name. - */ -#if 0 - -/* recursive helper for function below */ -static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeStoreElem *tselem= TREESTORE(te); - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) { - TreeElement *ten; - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty); - } - } - -} - -/* to retrieve coordinates with redrawing the entire tree */ -static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y; - int startx= 0; - - for(te= soops->tree.first; te; te= te->next) { - outliner_set_coordinates_element(soops, te, startx, &starty); - } -} - -/* find next element that has this name */ -static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound) -{ - TreeElement *te, *tes; - - for (te= lb->first; te; te= te->next) { - int found = outliner_filter_has_name(te, name, flags); - - if(found) { - /* name is right, but is element the previous one? */ - if (prev) { - if ((te != prev) && (*prevFound)) - return te; - if (te == prev) { - *prevFound = 1; - } - } - else - return te; - } - - tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound); - if(tes) return tes; - } - - /* nothing valid found */ - return NULL; -} - -static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) -{ - TreeElement *te= NULL; - TreeElement *last_find; - TreeStoreElem *tselem; - int ytop, xdelta, prevFound=0; - char name[32]; - - /* get last found tree-element based on stored search_tse */ - last_find= outliner_find_tse(soops, &soops->search_tse); - - /* determine which type of search to do */ - if (again && last_find) { - /* no popup panel - previous + user wanted to search for next after previous */ - BLI_strncpy(name, soops->search_string, sizeof(name)); - flags= soops->search_flags; - - /* try to find matching element */ - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - if (te==NULL) { - /* no more matches after previous, start from beginning again */ - prevFound= 1; - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - } - } - else { - /* pop up panel - no previous, or user didn't want search after previous */ - strcpy(name, ""); -// XXX if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) { -// te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound); -// } -// else return; /* XXX RETURN! XXX */ - } - - /* do selection and reveal */ - if (te) { - tselem= TREESTORE(te); - if (tselem) { - /* expand branches so that it will be visible, we need to get correct coordinates */ - if( outliner_open_back(soops, te)) - outliner_set_coordinates(ar, soops); - - /* deselect all visible, and select found element */ - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - tselem->flag |= TSE_SELECTED; - - /* make te->ys center of view */ - ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/2); - if(ytop>0) ytop= 0; - ar->v2d.cur.ymax= (float)ytop; - ar->v2d.cur.ymin= (float)(ytop-(ar->v2d.mask.ymax-ar->v2d.mask.ymin)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - ar->v2d.cur.xmin); - ar->v2d.cur.xmin += xdelta; - ar->v2d.cur.xmax += xdelta; - - /* store selection */ - soops->search_tse= *tselem; - - BLI_strncpy(soops->search_string, name, 33); - soops->search_flags= flags; - - /* redraw */ - soops->storeflag |= SO_TREESTORE_REDRAW; - } - } - else { - /* no tree-element found */ - error("Not found: %s", name); - } -} -#endif - -/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/ -static int subtree_has_objects(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) return 1; - if( subtree_has_objects(soops, &te->subtree)) return 1; - } - return 0; -} - -/* recursive helper function for Show Hierarchy operator */ -static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - /* open all object elems, close others */ - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED; - else tselem->flag &= ~TSE_CLOSED; - } - else if(te->idcode==ID_OB) { - if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - } - else tselem->flag |= TSE_CLOSED; - - if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree); - } -} - -/* show entire object level hierarchy */ -static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - /* recursively open/close levels */ - tree_element_show_hierarchy(scene, soops, &soops->tree); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Hierarchy"; - ot->idname= "OUTLINER_OT_show_hierarchy"; - ot->description= "Open all object entries and close all others"; - - /* callbacks */ - ot->exec= outliner_show_hierarchy_exec; - ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... - - /* no undo or registry, UI option */ -} - -void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { - tselem= TREESTORE(te); - - /* if we've encountered the right item, set its 'Outliner' selection status */ - if (*index == 0) { - /* this should be the last one, so no need to do anything with index */ - if ((te->flag & TE_ICONROW)==0) { - /* -1 value means toggle testing for now... */ - if (*selecting == -1) { - if (tselem->flag & TSE_SELECTED) - *selecting= 0; - else - *selecting= 1; - } - - /* set selection */ - if (*selecting) - tselem->flag |= TSE_SELECTED; - else - tselem->flag &= ~TSE_SELECTED; - } - } - else if ((tselem->flag & TSE_CLOSED)==0) { - /* Only try selecting sub-elements if we haven't hit the right element yet - * - * Hack warning: - * Index must be reduced before supplying it to the sub-tree to try to do - * selection, however, we need to increment it again for the next loop to - * function correctly - */ - (*index)--; - outliner_select(soops, &te->subtree, index, selecting); - (*index)++; - } - } -} - -/* ************ SELECTION OPERATIONS ********* */ - -static void set_operation_types(SpaceOops *soops, ListBase *lb, - int *scenelevel, - int *objectlevel, - int *idlevel, - int *datalevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type) { - if(*datalevel==0) - *datalevel= tselem->type; - else if(*datalevel!=tselem->type) - *datalevel= -1; - } - else { - int idcode= GS(tselem->id->name); - switch(idcode) { - case ID_SCE: - *scenelevel= 1; - break; - case ID_OB: - *objectlevel= 1; - break; - - case ID_ME: case ID_CU: case ID_MB: case ID_LT: - case ID_LA: case ID_AR: case ID_CA: - case ID_MA: case ID_TE: case ID_IP: case ID_IM: - case ID_SO: case ID_KE: case ID_WO: case ID_AC: - case ID_NLA: case ID_TXT: case ID_GR: - if(*idlevel==0) *idlevel= idcode; - else if(*idlevel!=idcode) *idlevel= -1; - break; - } - } - } - if((tselem->flag & TSE_CLOSED)==0) { - set_operation_types(soops, &te->subtree, - scenelevel, objectlevel, idlevel, datalevel); - } - } -} - -static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - /* just set action to NULL */ - BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL); -} - -static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - Material **matar=NULL; - int a, totcol=0; - - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - totcol= ob->totcol; - matar= ob->mat; - } - else if( GS(tsep->id->name)==ID_ME) { - Mesh *me= (Mesh *)tsep->id; - totcol= me->totcol; - matar= me->mat; - } - else if( GS(tsep->id->name)==ID_CU) { - Curve *cu= (Curve *)tsep->id; - totcol= cu->totcol; - matar= cu->mat; - } - else if( GS(tsep->id->name)==ID_MB) { - MetaBall *mb= (MetaBall *)tsep->id; - totcol= mb->totcol; - matar= mb->mat; - } - - for(a=0; aindex && matar[a]) { - matar[a]->id.us--; - matar[a]= NULL; - } - } -} - -static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - MTex **mtex= NULL; - int a; - - if( GS(tsep->id->name)==ID_MA) { - Material *ma= (Material *)tsep->id; - mtex= ma->mtex; - } - else if( GS(tsep->id->name)==ID_LA) { - Lamp *la= (Lamp *)tsep->id; - mtex= la->mtex; - } - else if( GS(tsep->id->name)==ID_WO) { - World *wrld= (World *)tsep->id; - mtex= wrld->mtex; - } - else return; - - for(a=0; aindex && mtex[a]) { - if(mtex[a]->tex) { - mtex[a]->tex->id.us--; - mtex[a]->tex= NULL; - } - } - } -} - -static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - - if(tsep) { - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - ob->dup_group= NULL; - } - } - else { - unlink_group(group); - } -} - -static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0) { - TreeStoreElem *tsep= TREESTORE(te->parent); - operation_cb(C, scene, te, tsep, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb); - } - } -} - -/* */ - -static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) { - base->flag |= SELECT; - base->object->flag |= SELECT; - } -} - -static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->flag &= ~SELECT; - base->object->flag &= ~SELECT; - } -} - -static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) - base= object_in_scene((Object *)tselem->id, scene); - if(base) { - // check also library later - if(scene->obedit==base->object) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); - te->directdata= NULL; - tselem->id= NULL; - } - -} - -static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { - tselem->id->lib= NULL; - tselem->id->flag= LIB_LOCAL; - new_id(NULL, tselem->id, NULL); - } -} - - -static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) -{ - ID *id = tselem->id; - - if (id) { - IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; - PointerRNA ptr = {{0}}; - PropertyRNA *prop; - - RNA_pointer_create(&iat->id, &RNA_AnimData, iat->adt, &ptr); - prop = RNA_struct_find_property(&ptr, "action"); - - id_single_user(C, id, &ptr, prop); - } -} - -static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - GroupObject *gob; - Base *base; - - for(gob=group->gobject.first; gob; gob=gob->next) { - base= object_in_scene(gob->ob, scene); - if (base) { - base->object->flag |= SELECT; - base->flag |= SELECT; - } else { - /* link to scene */ - base= MEM_callocN( sizeof(Base), "add_base"); - BLI_addhead(&scene->base, base); - base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */ - gob->ob->flag |= SELECT; - base->flag = gob->ob->flag; - base->object= gob->ob; - id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */ - } - } -} - -static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0 && te->idcode==ID_OB) { - // when objects selected in other scenes... dunno if that should be allowed - Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(scene_owner && scene_act != scene_owner) { - ED_screen_set_scene(C, scene_owner); - } - /* important to use 'scene_owner' not scene_act else deleting objects can crash. - * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the - * outliner isnt showing scenes: Visible Layer draw mode for eg. */ - operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb); - } - } -} - -/* ******************************************** */ - -static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) -{ - /* just set action to NULL */ - BKE_animdata_set_action(NULL, tselem->id, NULL); -} - -static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) -{ - IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; - - /* just free drivers - stored as a list of F-Curves */ - free_fcurves(&iat->adt->drivers); -} - -static void refreshdrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) -{ - IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; - FCurve *fcu; - - /* loop over drivers, performing refresh (i.e. check graph_buttons.c and rna_fcurve.c for details) */ - for (fcu = iat->adt->drivers.first; fcu; fcu= fcu->next) { - fcu->flag &= ~FCURVE_DISABLED; - - if (fcu->driver) - fcu->driver->flag &= ~DRIVER_FLAG_INVALID; - } -} - -/* --------------------------------- */ - -static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - - if(event==1) - pchan->bone->flag |= BONE_SELECTED; - else if(event==2) - pchan->bone->flag &= ~BONE_SELECTED; - else if(event==3) { - pchan->bone->flag |= BONE_HIDDEN_P; - pchan->bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - pchan->bone->flag &= ~BONE_HIDDEN_P; -} - -static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - Bone *bone= (Bone *)te->directdata; - - if(event==1) - bone->flag |= BONE_SELECTED; - else if(event==2) - bone->flag &= ~BONE_SELECTED; - else if(event==3) { - bone->flag |= BONE_HIDDEN_P; - bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - bone->flag &= ~BONE_HIDDEN_P; -} - -static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - EditBone *ebone= (EditBone *)te->directdata; - - if(event==1) - ebone->flag |= BONE_SELECTED; - else if(event==2) - ebone->flag &= ~BONE_SELECTED; - else if(event==3) { - ebone->flag |= BONE_HIDDEN_A; - ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; - } - else if(event==4) - ebone->flag &= ~BONE_HIDDEN_A; -} - -static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem)) -{ -// Sequence *seq= (Sequence*) te->directdata; - if(event==1) { -// XXX select_single_seq(seq, 1); - } -} - -static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, - void (*operation_cb)(int, TreeElement *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==type) { - operation_cb(event, te, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb); - } - } -} - -static void outliner_del(bContext *C, Scene *scene, ARegion *UNUSED(ar), SpaceOops *soops) -{ - - if(soops->outlinevis==SO_SEQUENCE) - ;// del_seq(); - else { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(CTX_data_main(C), scene); - ED_undo_push(C, "Delete Objects"); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } -} - -/* **************************************** */ - -static EnumPropertyItem prop_object_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {4, "DELETE", 0, "Delete", ""}, - {6, "TOGVIS", 0, "Toggle Visible", ""}, - {7, "TOGSEL", 0, "Toggle Selectable", ""}, - {8, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_object_operation_exec(bContext *C, wmOperator *op) -{ - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - const char *str= NULL; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - Scene *sce= scene; // to be able to delete, scenes are set... - outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb); - if(scene != sce) { - ED_screen_set_scene(C, sce); - } - - str= "Select Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==2) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb); - str= "Deselect Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==4) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(bmain, scene); - str= "Delete Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } - else if(event==5) { /* disabled, see above enum (ton) */ - outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb); - str= "Localized Objects"; - } - else if(event==6) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - str= "Toggle Visibility"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - } - else if(event==7) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - str= "Toggle Selectability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==8) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - str= "Toggle Renderability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); - } - - ED_undo_push(C, str); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_object_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Object Operation"; - ot->idname= "OUTLINER_OT_object_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_object_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_group_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, - {3, "LINK", 0, "Link Group Objects to Scene", ""}, - {4, "TOGVIS", 0, "Toggle Visible", ""}, - {5, "TOGSEL", 0, "Toggle Selectable", ""}, - {6, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_group_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); - ED_undo_push(C, "Unlink group"); - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - else if(event==3) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); - ED_undo_push(C, "Link Group Objects to Scene"); - } - - - WM_event_add_notifier(C, NC_GROUP, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_group_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Group Operation"; - ot->idname= "OUTLINER_OT_group_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_group_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", ""); -} - -/* **************************************** */ - -typedef enum eOutlinerIdOpTypes { - OUTLINER_IDOP_INVALID = 0, - OUTLINER_IDOP_UNLINK, - OUTLINER_IDOP_LOCAL, - OUTLINER_IDOP_SINGLE -} eOutlinerIdOpTypes; - -// TODO: implement support for changing the ID-block used -static EnumPropertyItem prop_id_op_types[] = { - {OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""}, - {OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""}, - {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_id_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - eOutlinerIdOpTypes event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - event= RNA_enum_get(op->ptr, "type"); - - switch (event) { - case OUTLINER_IDOP_UNLINK: - { - /* unlink datablock from its parent */ - switch (idlevel) { - case ID_AC: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); - ED_undo_push(C, "Unlink action"); - break; - case ID_MA: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); - - WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); - ED_undo_push(C, "Unlink material"); - break; - case ID_TE: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); - - WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); - ED_undo_push(C, "Unlink texture"); - break; - default: - BKE_report(op->reports, RPT_WARNING, "Not Yet"); - break; - } - } - break; - - case OUTLINER_IDOP_LOCAL: - { - /* make local */ - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - break; - - case OUTLINER_IDOP_SINGLE: - { - /* make single user */ - switch (idlevel) { - case ID_AC: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, singleuser_action_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); - ED_undo_push(C, "Single-User Action"); - break; - - default: - BKE_report(op->reports, RPT_WARNING, "Not Yet"); - break; - } - } - break; - - default: - // invalid - unhandled - break; - } - - /* wrong notifier still... */ - WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); - - // XXX: this is just so that outliner is always up to date - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_id_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner ID data Operation"; - ot->idname= "OUTLINER_OT_id_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_id_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", ""); -} - -/* **************************************** */ - -static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *lb, ID *newid, - void (*operation_cb)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_SELECTED) { - if(tselem->type==type) { - TreeStoreElem *tsep = TREESTORE(te->parent); - operation_cb(te, tselem, tsep, newid); - } - } - if ((tselem->flag & TSE_CLOSED)==0) { - outliner_do_id_set_operation(soops, type, &te->subtree, newid, operation_cb); - } - } -} - -/* ------------------------------------------ */ - -static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) -{ - bAction *act = (bAction *)actId; - - if (tselem->type == TSE_ANIM_DATA) { - /* "animation" entries - action is child of this */ - BKE_animdata_set_action(NULL, tselem->id, act); - } - /* TODO: if any other "expander" channels which own actions need to support this menu, - * add: tselem->type = ... - */ - else if (tsep && (tsep->type == TSE_ANIM_DATA)) { - /* "animation" entries case again */ - BKE_animdata_set_action(NULL, tsep->id, act); - } - // TODO: other cases not supported yet -} - -static int outliner_action_set_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - - bAction *act; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - /* get action to use */ - act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action")); - - if (act == NULL) { - BKE_report(op->reports, RPT_ERROR, "No valid Action to add."); - return OPERATOR_CANCELLED; - } - else if (act->idroot == 0) { - /* hopefully in this case (i.e. library of userless actions), the user knows what they're doing... */ - BKE_reportf(op->reports, RPT_WARNING, - "Action '%s' does not specify what datablocks it can be used on. Try setting the 'ID Root Type' setting from the Datablocks Editor for this Action to avoid future problems", - act->id.name+2); - } - - /* perform action if valid channel */ - if (datalevel == TSE_ANIM_DATA) - outliner_do_id_set_operation(soops, datalevel, &soops->tree, (ID*)act, actionset_id_cb); - else if (idlevel == ID_AC) - outliner_do_id_set_operation(soops, idlevel, &soops->tree, (ID*)act, actionset_id_cb); - else - return OPERATOR_CANCELLED; - - /* set notifier that things have changed */ - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); - ED_undo_push(C, "Set action"); - - /* done */ - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_action_set(wmOperatorType *ot) -{ - PropertyRNA *prop; - - /* identifiers */ - ot->name= "Outliner Set Action"; - ot->idname= "OUTLINER_OT_action_set"; - ot->description= "Change the active action used"; - - /* api callbacks */ - ot->invoke= WM_enum_search_invoke; - ot->exec= outliner_action_set_exec; - ot->poll= ED_operator_outliner_active; - - /* flags */ - ot->flag= 0; - - /* props */ - // TODO: this would be nicer as an ID-pointer... - prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", ""); - RNA_def_enum_funcs(prop, RNA_action_itemf); - ot->prop= prop; -} - -/* **************************************** */ - -typedef enum eOutliner_AnimDataOps { - OUTLINER_ANIMOP_INVALID = 0, - - OUTLINER_ANIMOP_SET_ACT, - OUTLINER_ANIMOP_CLEAR_ACT, - - OUTLINER_ANIMOP_REFRESH_DRV, - OUTLINER_ANIMOP_CLEAR_DRV - - //OUTLINER_ANIMOP_COPY_DRIVERS, - //OUTLINER_ANIMOP_PASTE_DRIVERS -} eOutliner_AnimDataOps; - -static EnumPropertyItem prop_animdata_op_types[] = { - {OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""}, - {OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""}, - {OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""}, - //{OUTLINER_ANIMOP_COPY_DRIVERS, "COPY_DRIVERS", 0, "Copy Drivers", ""}, - //{OUTLINER_ANIMOP_PASTE_DRIVERS, "PASTE_DRIVERS", 0, "Paste Drivers", ""}, - {OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - eOutliner_AnimDataOps event; - short updateDeps = 0; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if (datalevel != TSE_ANIM_DATA) - return OPERATOR_CANCELLED; - - /* perform the core operation */ - switch (event) { - case OUTLINER_ANIMOP_SET_ACT: - /* delegate once again... */ - WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL); - break; - - case OUTLINER_ANIMOP_CLEAR_ACT: - /* clear active action - using standard rules */ - outliner_do_data_operation(soops, datalevel, event, &soops->tree, unlinkact_animdata_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); - ED_undo_push(C, "Unlink action"); - break; - - case OUTLINER_ANIMOP_REFRESH_DRV: - outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); - //ED_undo_push(C, "Refresh Drivers"); /* no undo needed - shouldn't have any impact? */ - updateDeps = 1; - break; - - case OUTLINER_ANIMOP_CLEAR_DRV: - outliner_do_data_operation(soops, datalevel, event, &soops->tree, cleardrivers_animdata_cb); - - WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); - ED_undo_push(C, "Clear Drivers"); - updateDeps = 1; - break; - - default: // invalid - break; - } - - /* update dependencies */ - if (updateDeps) { - Main *bmain = CTX_data_main(C); - Scene *scene = CTX_data_scene(C); - - /* rebuild depsgraph for the new deps */ - DAG_scene_sort(bmain, scene); - - /* force an update of depsgraph */ - DAG_ids_flush_update(bmain, 0); - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_animdata_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Animation Data Operation"; - ot->idname= "OUTLINER_OT_animdata_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_animdata_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_animdata_op_types, 0, "Animation Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_data_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {3, "HIDE", 0, "Hide", ""}, - {4, "UNHIDE", 0, "Unhide", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_data_operation_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if(datalevel==TSE_POSE_CHANNEL) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "PoseChannel operation"); - } - } - else if(datalevel==TSE_BONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "Bone operation"); - } - } - else if(datalevel==TSE_EBONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "EditBone operation"); - } - } - else if(datalevel==TSE_SEQUENCE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb); - } - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_data_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Data Operation"; - ot->idname= "OUTLINER_OT_data_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_data_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", ""); -} - - -/* ******************** */ - - -static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - TreeStoreElem *tselem= TREESTORE(te); - - /* select object that's clicked on and popup context menu */ - if (!(tselem->flag & TSE_SELECTED)) { - - if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) ) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - - tselem->flag |= TSE_SELECTED; - /* redraw, same as outliner_select function */ - soops->storeflag |= SO_TREESTORE_REDRAW; - ED_region_tag_redraw(ar); - } - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if(scenelevel) { - //if(objectlevel || datalevel || idlevel) error("Mixed selection"); - //else pupmenu("Scene Operations%t|Delete"); - } - else if(objectlevel) { - WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - else if(idlevel) { - if(idlevel==-1 || datalevel) error("Mixed selection"); - else { - if (idlevel==ID_GR) - WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL); - else - WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - else if(datalevel) { - if(datalevel==-1) error("Mixed selection"); - else { - if (datalevel == TSE_ANIM_DATA) - WM_operator_name_call(C, "OUTLINER_OT_animdata_operation", WM_OP_INVOKE_REGION_WIN, NULL); - else if (datalevel == TSE_DRIVER_BASE) - /* do nothing... no special ops needed yet */; - else - WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) - return 1; - } - return 0; -} - - -static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break; - } - - return OPERATOR_FINISHED; -} - -/* Menu only! Calls other operators */ -void OUTLINER_OT_operation(wmOperatorType *ot) -{ - ot->name= "Execute Operation"; - ot->idname= "OUTLINER_OT_operation"; - ot->description= "Context menu for item operations"; - - ot->invoke= outliner_operation; - - ot->poll= ED_operator_outliner_active; -} - - - -/* ***************** ANIMATO OPERATIONS ********************************** */ -/* KeyingSet and Driver Creation - Helper functions */ - -/* specialised poll callback for these operators to work in Datablocks view only */ -static int ed_operator_outliner_datablocks_active(bContext *C) -{ - ScrArea *sa= CTX_wm_area(C); - if ((sa) && (sa->spacetype==SPACE_OUTLINER)) { - SpaceOops *so= CTX_wm_space_outliner(C); - return (so->outlinevis == SO_DATABLOCKS); - } - return 0; -} - - -/* Helper func to extract an RNA path from selected tree element - * NOTE: the caller must zero-out all values of the pointers that it passes here first, as - * this function does not do that yet - */ -static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, - ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode)) -{ - ListBase hierarchy = {NULL, NULL}; - LinkData *ld; - TreeElement *tem, *temnext, *temsub; - TreeStoreElem *tse, *tsenext; - PointerRNA *ptr, *nextptr; - PropertyRNA *prop; - char *newpath=NULL; - - /* optimise tricks: - * - Don't do anything if the selected item is a 'struct', but arrays are allowed - */ - if (tselem->type == TSE_RNA_STRUCT) - return; - - /* Overview of Algorithm: - * 1. Go up the chain of parents until we find the 'root', taking note of the - * levels encountered in reverse-order (i.e. items are added to the start of the list - * for more convenient looping later) - * 2. Walk down the chain, adding from the first ID encountered - * (which will become the 'ID' for the KeyingSet Path), and build a - * path as we step through the chain - */ - - /* step 1: flatten out hierarchy of parents into a flat chain */ - for (tem= te->parent; tem; tem= tem->parent) { - ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()"); - ld->data= tem; - BLI_addhead(&hierarchy, ld); - } - - /* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */ - for (ld= hierarchy.first; ld; ld= ld->next) { - /* get data */ - tem= (TreeElement *)ld->data; - tse= TREESTORE(tem); - ptr= &tem->rnaptr; - prop= tem->directdata; - - /* check if we're looking for first ID, or appending to path */ - if (*id) { - /* just 'append' property to path - * - to prevent memory leaks, we must write to newpath not path, then free old path + swap them - */ - if(tse->type == TSE_RNA_PROPERTY) { - if(RNA_property_type(prop) == PROP_POINTER) { - /* for pointer we just append property name */ - newpath= RNA_path_append(*path, ptr, prop, 0, NULL); - } - else if(RNA_property_type(prop) == PROP_COLLECTION) { - char buf[128], *name; - - temnext= (TreeElement*)(ld->next->data); - tsenext= TREESTORE(temnext); - - nextptr= &temnext->rnaptr; - name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf)); - - if(name) { - /* if possible, use name as a key in the path */ - newpath= RNA_path_append(*path, NULL, prop, 0, name); - - if(name != buf) - MEM_freeN(name); - } - else { - /* otherwise use index */ - int index= 0; - - for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++) - if(temsub == temnext) - break; - - newpath= RNA_path_append(*path, NULL, prop, index, NULL); - } - - ld= ld->next; - } - } - - if(newpath) { - if (*path) MEM_freeN(*path); - *path= newpath; - newpath= NULL; - } - } - else { - /* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */ - if (tse->type == TSE_RNA_STRUCT) { - /* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */ - if(RNA_struct_is_ID(ptr->type)) { - *id= (ID *)ptr->data; - - /* clear path */ - if(*path) { - MEM_freeN(*path); - path= NULL; - } - } - } - } - } - - /* step 3: if we've got an ID, add the current item to the path */ - if (*id) { - /* add the active property to the path */ - ptr= &te->rnaptr; - prop= te->directdata; - - /* array checks */ - if (tselem->type == TSE_RNA_ARRAY_ELEM) { - /* item is part of an array, so must set the array_index */ - *array_index= te->index; - } - else if (RNA_property_array_length(ptr, prop)) { - /* entire array was selected, so keyframe all */ - *flag |= KSP_FLAG_WHOLE_ARRAY; - } - - /* path */ - newpath= RNA_path_append(*path, NULL, prop, 0, NULL); - if (*path) MEM_freeN(*path); - *path= newpath; - } - - /* free temp data */ - BLI_freelistN(&hierarchy); -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - DRIVERS_EDITMODE_ADD = 0, - DRIVERS_EDITMODE_REMOVE, -} /*eDrivers_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; - int arraylen = 1; - - /* array checks */ - if (flag & KSP_FLAG_WHOLE_ARRAY) { - /* entire array was selected, so add drivers for all */ - arraylen= RNA_property_array_length(&te->rnaptr, te->directdata); - } - else - arraylen= array_index; - - /* we should do at least one step */ - if (arraylen == array_index) - arraylen++; - - /* for each array element we should affect, add driver */ - for (; array_index < arraylen; array_index++) { - /* action depends on mode */ - switch (mode) { - case DRIVERS_EDITMODE_ADD: - { - /* add a new driver with the information obtained (only if valid) */ - ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); - } - break; - case DRIVERS_EDITMODE_REMOVE: - { - /* remove driver matching the information obtained (only if valid) */ - ANIM_remove_driver(reports, id, path, array_index, dflags); - } - break; - } - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - - - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_drivers_editop(soops, &te->subtree, reports, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) -{ - /* api callbacks */ - ot->idname= "OUTLINER_OT_drivers_add_selected"; - ot->name= "Add Drivers for Selected"; - ot->description= "Add drivers to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_addsel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_drivers_delete_selected"; - ot->name= "Delete Drivers for Selected"; - ot->description= "Delete drivers assigned to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_deletesel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - KEYINGSET_EDITMODE_ADD = 0, - KEYINGSET_EDITMODE_REMOVE, -} /*eKeyingSet_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */ -// TODO: should this be an API func? -static KeyingSet *verify_active_keyingset(Scene *scene, short add) -{ - KeyingSet *ks= NULL; - - /* sanity check */ - if (scene == NULL) - return NULL; - - /* try to find one from scene */ - if (scene->active_keyingset > 0) - ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1); - - /* add if none found */ - // XXX the default settings have yet to evolve - if ((add) && (ks==NULL)) { - ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0); - scene->active_keyingset= BLI_countlist(&scene->keyingsets); - } - - return ks; -} - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - /* action depends on mode */ - switch (mode) { - case KEYINGSET_EDITMODE_ADD: - { - /* add a new path with the information obtained (only if valid) */ - // TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name - BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode); - ks->active_path= BLI_countlist(&ks->paths); - } - break; - case KEYINGSET_EDITMODE_REMOVE: - { - /* find the relevant path, then remove it from the KeyingSet */ - KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode); - - if (ksp) { - /* free path's data */ - BKE_keyingset_free_path(ks, ksp); - - ks->active_path= 0; - } - } - break; - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_keyingset_editop(soops, ks, &te->subtree, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (ks == NULL) { - BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set"); - return OPERATOR_CANCELLED; - } - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_add_selected"; - ot->name= "Keying Set Add Selected"; - ot->description= "Add selected items (blue-grey rows) to active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_additems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_remove_selected"; - ot->name= "Keying Set Remove Selected"; - ot->description = "Remove selected items (blue-grey rows) from active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_removeitems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** DRAW *************** */ - -/* make function calls a bit compacter */ -struct DrawIconArg { - uiBlock *block; - ID *id; - int xmax, x, y; - float alpha; -}; - -static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon) -{ - /* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */ - if(arg->x >= arg->xmax) - UI_icon_draw(arg->x, arg->y, icon); - else { - /* XXX investigate: button placement of icons is way different than UI_icon_draw? */ - float ufac= UI_UNIT_X/20.0f; - uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : ""); - - if(arg->id) - uiButSetDragID(but, arg->id); - } - -} - -static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha) -{ - struct DrawIconArg arg; - - /* make function calls a bit compacter */ - arg.block= block; - arg.id= tselem->id; - arg.xmax= xmax; - arg.x= x; - arg.y= y; - arg.alpha= alpha; - - if(tselem->type) { - switch( tselem->type) { - case TSE_ANIM_DATA: - UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx - case TSE_NLA: - UI_icon_draw(x, y, ICON_NLA); break; - case TSE_NLA_TRACK: - UI_icon_draw(x, y, ICON_NLA); break; // XXX - case TSE_NLA_ACTION: - UI_icon_draw(x, y, ICON_ACTION); break; - case TSE_DRIVER_BASE: - UI_icon_draw(x, y, ICON_DRIVER); break; - case TSE_DEFGROUP_BASE: - UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; - case TSE_BONE: - case TSE_EBONE: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_CONSTRAINT_BASE: - UI_icon_draw(x, y, ICON_CONSTRAINT); break; - case TSE_MODIFIER_BASE: - UI_icon_draw(x, y, ICON_MODIFIER); break; - case TSE_LINKED_OB: - UI_icon_draw(x, y, ICON_OBJECT_DATA); break; - case TSE_LINKED_PSYS: - UI_icon_draw(x, y, ICON_PARTICLES); break; - case TSE_MODIFIER: - { - Object *ob= (Object *)tselem->id; - ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); - switch(md->type) { - case eModifierType_Subsurf: - UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; - case eModifierType_Armature: - UI_icon_draw(x, y, ICON_MOD_ARMATURE); break; - case eModifierType_Lattice: - UI_icon_draw(x, y, ICON_MOD_LATTICE); break; - case eModifierType_Curve: - UI_icon_draw(x, y, ICON_MOD_CURVE); break; - case eModifierType_Build: - UI_icon_draw(x, y, ICON_MOD_BUILD); break; - case eModifierType_Mirror: - UI_icon_draw(x, y, ICON_MOD_MIRROR); break; - case eModifierType_Decimate: - UI_icon_draw(x, y, ICON_MOD_DECIM); break; - case eModifierType_Wave: - UI_icon_draw(x, y, ICON_MOD_WAVE); break; - case eModifierType_Hook: - UI_icon_draw(x, y, ICON_HOOK); break; - case eModifierType_Softbody: - UI_icon_draw(x, y, ICON_MOD_SOFT); break; - case eModifierType_Boolean: - UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break; - case eModifierType_ParticleSystem: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_ParticleInstance: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_EdgeSplit: - UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break; - case eModifierType_Array: - UI_icon_draw(x, y, ICON_MOD_ARRAY); break; - case eModifierType_UVProject: - UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break; - case eModifierType_Displace: - UI_icon_draw(x, y, ICON_MOD_DISPLACE); break; - case eModifierType_Shrinkwrap: - UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break; - case eModifierType_Cast: - UI_icon_draw(x, y, ICON_MOD_CAST); break; - case eModifierType_MeshDeform: - UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; - case eModifierType_Bevel: - UI_icon_draw(x, y, ICON_MOD_BEVEL); break; - case eModifierType_Smooth: - UI_icon_draw(x, y, ICON_MOD_SMOOTH); break; - case eModifierType_SimpleDeform: - UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break; - case eModifierType_Mask: - UI_icon_draw(x, y, ICON_MOD_MASK); break; - case eModifierType_Cloth: - UI_icon_draw(x, y, ICON_MOD_CLOTH); break; - case eModifierType_Explode: - UI_icon_draw(x, y, ICON_MOD_EXPLODE); break; - case eModifierType_Collision: - UI_icon_draw(x, y, ICON_MOD_PHYSICS); break; - case eModifierType_Fluidsim: - UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break; - case eModifierType_Multires: - UI_icon_draw(x, y, ICON_MOD_MULTIRES); break; - case eModifierType_Smoke: - UI_icon_draw(x, y, ICON_MOD_SMOKE); break; - case eModifierType_Solidify: - UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break; - case eModifierType_Screw: - UI_icon_draw(x, y, ICON_MOD_SCREW); break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - break; - } - case TSE_SCRIPT_BASE: - UI_icon_draw(x, y, ICON_TEXT); break; - case TSE_POSE_BASE: - UI_icon_draw(x, y, ICON_ARMATURE_DATA); break; - case TSE_POSE_CHANNEL: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_PROXY: - UI_icon_draw(x, y, ICON_GHOST); break; - case TSE_R_LAYER_BASE: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_R_LAYER: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_LINKED_LAMP: - UI_icon_draw(x, y, ICON_LAMP_DATA); break; - case TSE_LINKED_MAT: - UI_icon_draw(x, y, ICON_MATERIAL_DATA); break; - case TSE_POSEGRP_BASE: - UI_icon_draw(x, y, ICON_VERTEXSEL); break; - case TSE_SEQUENCE: - if(te->idcode==SEQ_MOVIE) - UI_icon_draw(x, y, ICON_SEQUENCE); - else if(te->idcode==SEQ_META) - UI_icon_draw(x, y, ICON_DOT); - else if(te->idcode==SEQ_SCENE) - UI_icon_draw(x, y, ICON_SCENE); - else if(te->idcode==SEQ_SOUND) - UI_icon_draw(x, y, ICON_SOUND); - else if(te->idcode==SEQ_IMAGE) - UI_icon_draw(x, y, ICON_IMAGE_COL); - else - UI_icon_draw(x, y, ICON_PARTICLES); - break; - case TSE_SEQ_STRIP: - UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT); - break; - case TSE_SEQUENCE_DUP: - UI_icon_draw(x, y, ICON_OBJECT_DATA); - break; - case TSE_RNA_STRUCT: - if(RNA_struct_is_ID(te->rnaptr.type)) { - arg.id= (ID *)te->rnaptr.data; - tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type)); - } - else - UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type)); - break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - } - else if (GS(tselem->id->name) == ID_OB) { - Object *ob= (Object *)tselem->id; - switch (ob->type) { - case OB_LAMP: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break; - case OB_MESH: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break; - case OB_CAMERA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break; - case OB_CURVE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break; - case OB_MBALL: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break; - case OB_LATTICE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break; - case OB_ARMATURE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break; - case OB_FONT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; - case OB_SURF: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; - case OB_EMPTY: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; - - } - } - else { - switch( GS(tselem->id->name)) { - case ID_SCE: - tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; - case ID_ME: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break; - case ID_CU: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break; - case ID_MB: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break; - case ID_LT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break; - case ID_LA: - { - Lamp *la= (Lamp *)tselem->id; - - switch(la->type) { - case LA_LOCAL: - tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; - case LA_SUN: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break; - case LA_SPOT: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break; - case LA_HEMI: - tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break; - case LA_AREA: - tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break; - default: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break; - } - break; - } - case ID_MA: - tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break; - case ID_TE: - tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; - case ID_IM: - tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; - case ID_SO: - tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; - case ID_AR: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; - case ID_CA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break; - case ID_KE: - tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break; - case ID_WO: - tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break; - case ID_AC: - tselem_draw_icon_uibut(&arg, ICON_ACTION); break; - case ID_NLA: - tselem_draw_icon_uibut(&arg, ICON_NLA); break; - case ID_TXT: - tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break; - case ID_GR: - tselem_draw_icon_uibut(&arg, ICON_GROUP); break; - case ID_LI: - tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; - } - } -} - -static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys) -{ - TreeElement *te; - TreeStoreElem *tselem; - int active; - - for(te= lb->first; te; te= te->next) { - - /* exit drawing early */ - if((*offsx) - UI_UNIT_X > xmax) - break; - - tselem= TREESTORE(te); - - /* object hierarchy always, further constrained on level */ - if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) { - - /* active blocks get white circle */ - if(tselem->type==0) { - if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id); - else if(scene->obedit && scene->obedit->data==tselem->id) active= 1; // XXX use context? - else active= tree_element_active(C, scene, soops, te, 0); - } - else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0); - - if(active) { - float ufac= UI_UNIT_X/20.0f; - - uiSetRoundBox(15); - glColor4ub(255, 255, 255, 100); - uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables */ - } - - tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f); - te->xs= (float)*offsx; - te->ys= (float)ys; - te->xend= (short)*offsx+UI_UNIT_X; - te->flag |= TE_ICONROW; // for click - - (*offsx) += UI_UNIT_X; - } - - /* this tree element always has same amount of branches, so dont draw */ - if(tselem->type!=TSE_R_LAYER) - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys); - } - -} - -/* closed tree element */ -static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty); - } -} - - -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - TreeStoreElem *tselem; - float ufac= UI_UNIT_X/20.0f; - int offsx= 0, active=0; // active=1 active obj, else active data - - tselem= TREESTORE(te); - - if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) { - int xmax= ar->v2d.cur.xmax; - - /* icons can be ui buts, we dont want it to overlap with restrict */ - if((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - xmax-= OL_TOGW+UI_UNIT_X; - - glEnable(GL_BLEND); - - /* colors for active/selected data */ - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id == (ID *)scene) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - } - else if(te->idcode==ID_GR) { - Group *gr = (Group *)tselem->id; - - if(group_select_flag(gr)) { - char col[4]; - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - glColor4ubv((GLubyte *)col); - - active= 2; - } - } - else if(te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - - if(ob==OBACT || (ob->flag & SELECT)) { - char col[4]= {0, 0, 0, 0}; - - /* outliner active ob: always white text, circle color now similar to view3d */ - - active= 2; /* means it draws a color circle */ - if(ob==OBACT) { - if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col); - col[3]= 100; - } - - active= 1; /* means it draws white text */ - } - else if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - } - - glColor4ubv((GLubyte *)col); - } - - } - else if(scene->obedit && scene->obedit->data==tselem->id) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - else { - if(tree_element_active(C, scene, soops, te, 0)) { - glColor4ub(220, 220, 255, 100); - active= 2; - } - } - } - else { - if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2; - glColor4ub(220, 220, 255, 100); - } - - /* active circle */ - if(active) { - uiSetRoundBox(15); - uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables it */ - - te->flag |= TE_ACTIVE; // for lookup in display hierarchies - } - - /* open/close icon, only when sublevels, except for scene */ - if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) { - int icon_x; - if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE)) - icon_x = startx; - else - icon_x = startx+5*ufac; - - // icons a bit higher - if(tselem->flag & TSE_CLOSED) - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT); - else - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN); - } - offsx+= UI_UNIT_X; - - /* datatype icon */ - - if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { - // icons a bit higher - tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); - - offsx+= UI_UNIT_X; - } - else - offsx+= 2*ufac; - - if(tselem->type==0 && tselem->id->lib) { - glPixelTransferf(GL_ALPHA_SCALE, 0.5f); - if(tselem->id->flag & LIB_INDIRECT) - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT); - else - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT); - glPixelTransferf(GL_ALPHA_SCALE, 1.0f); - offsx+= UI_UNIT_X; - } - glDisable(GL_BLEND); - - /* name */ - if(active==1) UI_ThemeColor(TH_TEXT_HI); - else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f); - else UI_ThemeColor(TH_TEXT); - - UI_DrawString(startx+offsx, *starty+5*ufac, te->name); - - offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name)); - - /* closed item, we draw the icons, not when it's a scene, or master-server list though */ - if(tselem->flag & TSE_CLOSED) { - if(te->subtree.first) { - if(tselem->type==0 && te->idcode==ID_SCE); - else if(tselem->type!=TSE_R_LAYER) { /* this tree element always has same amount of branches, so dont draw */ - int tempx= startx+offsx; - - // divider - UI_ThemeColorShade(TH_BACK, -40); - glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4); - - glEnable(GL_BLEND); - glPixelTransferf(GL_ALPHA_SCALE, 0.5); - - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2); - - glPixelTransferf(GL_ALPHA_SCALE, 1.0); - glDisable(GL_BLEND); - } - } - } - } - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)*starty; - te->xend= startx+offsx; - - if((tselem->flag & TSE_CLOSED)==0) { - *starty-= UI_UNIT_Y; - - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty); - } - else { - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_set_coord_tree_element(soops, te, startx, starty); - - *starty-= UI_UNIT_Y; - } -} - -static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - int y1, y2; - - if(lb->first==NULL) return; - - y1=y2= *starty; /* for vertical lines between objects */ - for(te=lb->first; te; te= te->next) { - y2= *starty; - tselem= TREESTORE(te); - - /* horizontal line? */ - if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE)) - glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1); - - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty); - } - - /* vertical line */ - te= lb->last; - if(te->parent || lb->first!=lb->last) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) { - - glRecti(startx, y1+UI_UNIT_Y, startx+1, y2); - } - } -} - -static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if((tselem->flag & TSE_CLOSED)==0) - if(tselem->type == TSE_RNA_STRUCT) - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1); - - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) { - outliner_draw_struct_marks(ar, soops, &te->subtree, starty); - if(tselem->type == TSE_RNA_STRUCT) - fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y); - } - } -} - -static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if(tselem->flag & TSE_SELECTED) { - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1); - } - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty); - } -} - - -static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty, startx; - float col[4]; - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once - - if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* struct marks */ - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - //UI_ThemeColorShade(TH_BACK, -20); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_struct_marks(ar, soops, &soops->tree, &starty); - } - - /* always draw selection fill before hierarchy */ - UI_GetThemeColor3fv(TH_BACK, col); - glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_selection(ar, soops, &soops->tree, &starty); - - // grey hierarchy lines - UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; - startx= 6; - outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); - - // items themselves - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - startx= 0; - for(te= soops->tree.first; te; te= te->next) { - outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty); - } -} - - -static void outliner_back(ARegion *ar) -{ - int ystart; - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } -} - -static void outliner_draw_restrictcols(ARegion *ar) -{ - int ystart; - - /* background underneath */ - UI_ThemeColor(TH_BACK); - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax); - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* view */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); -} - -static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* deselect objects that are invisible */ - if (ob->restrictflag & OB_RESTRICT_VIEW) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* if select restriction has just been turned on */ - if (ob->restrictflag & OB_RESTRICT_SELECT) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin); -} - -static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin); -} - -static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Object *ob = (Object *)poin2; - - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); -} - -static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Bone *bone= (Bone *)poin2; - if(bone && (bone->flag & BONE_HIDDEN_P)) - bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - EditBone *ebone= (EditBone *)poin2; - if(ebone && (ebone->flag & BONE_HIDDEN_A)) - ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static int group_restrict_flag(Group *gr, int flag) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->restrictflag & flag) == 0) - return 0; - } - - return 1; -} - -static int group_select_flag(Group *gr) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) - if((gob->ob->flag & SELECT)) - return 1; - - return 0; -} - -static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) -{ - Scene *scene = (Scene *)poin; - GroupObject *gob; - Group *gr = (Group *)poin2; - - if(group_restrict_flag(gr, flag)) { - for(gob= gr->gobject.first; gob; gob= gob->next) { - gob->ob->restrictflag &= ~flag; - - if(flag==OB_RESTRICT_VIEW) - if(gob->ob->flag & SELECT) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT); - } - } - else { - for(gob= gr->gobject.first; gob; gob= gob->next) { - /* not in editmode */ - if(scene->obedit!=gob->ob) { - gob->ob->restrictflag |= flag; - - if(flag==OB_RESTRICT_VIEW) - if((gob->ob->flag & SELECT) == 0) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - } -} - -static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER); - WM_event_add_notifier(C, NC_GROUP, NULL); -} - - -static void namebutton_cb(bContext *C, void *tsep, char *oldname) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem= tsep; - - if(ts && tselem) { - TreeElement *te= outliner_find_tse(soops, tselem); - - if(tselem->type==0) { - test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort - - switch(GS(tselem->id->name)) { - case ID_MA: - WM_event_add_notifier(C, NC_MATERIAL, NULL); break; - case ID_TE: - WM_event_add_notifier(C, NC_TEXTURE, NULL); break; - case ID_IM: - WM_event_add_notifier(C, NC_IMAGE, NULL); break; - case ID_SCE: - WM_event_add_notifier(C, NC_SCENE, NULL); break; - default: - WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; - } - /* Check the library target exists */ - if (te->idcode == ID_LI) { - char expanded[FILE_MAXDIR + FILE_MAXFILE]; - BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); - BLI_path_abs(expanded, G.main->name); - if (!BLI_exists(expanded)) { - error("This path does not exist, correct this before saving"); - } - } - } - else { - switch(tselem->type) { - case TSE_DEFGROUP: - defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object - break; - case TSE_NLA_ACTION: - test_idbutton(tselem->id->name+2); - break; - case TSE_EBONE: - { - bArmature *arm= (bArmature *)tselem->id; - if(arm->edbo) { - EditBone *ebone= te->directdata; - char newname[sizeof(ebone->name)]; - - /* restore bone name */ - BLI_strncpy(newname, ebone->name, sizeof(ebone->name)); - BLI_strncpy(ebone->name, oldname, sizeof(ebone->name)); - ED_armature_bone_rename(obedit->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT); - } - } - break; - - case TSE_BONE: - { - Bone *bone= te->directdata; - Object *ob; - char newname[sizeof(bone->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, bone->name, sizeof(bone->name)); - BLI_strncpy(bone->name, oldname, sizeof(bone->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSE_CHANNEL: - { - bPoseChannel *pchan= te->directdata; - Object *ob; - char newname[sizeof(pchan->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, pchan->name, sizeof(pchan->name)); - BLI_strncpy(pchan->name, oldname, sizeof(pchan->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSEGRP: - { - Object *ob= (Object *)tselem->id; // id = object - bActionGroup *grp= te->directdata; - - BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name)); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_R_LAYER: - break; - } - } - tselem->flag &= ~TSE_TEXTBUT; - } -} - -static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - Object *ob = NULL; - Group *gr = NULL; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - /* objects have toggle-able restriction flags */ - if(tselem->type==0 && te->idcode==ID_OB) { - PointerRNA ptr; - - ob = (Object *)tselem->id; - RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr); - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_view_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_select", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_render", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob); - - uiBlockSetEmboss(block, UI_EMBOSS); - - } - if(tselem->type==0 && te->idcode==ID_GR){ - int restrict_bool; - gr = (Group *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - /* scene render layers and passes have toggle-able flags too! */ - else if(tselem->type==TSE_R_LAYER) { - uiBlockSetEmboss(block, UI_EMBOSSN); - - bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_R_PASS) { - int *layflag= te->directdata; - int passflag= 1<nr; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - - bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - layflag++; /* is lay_xor */ - if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT)) - bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_MODIFIER) { - ModifierData *md= (ModifierData *)te->directdata; - ob = (Object *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - } - else if(tselem->type==TSE_POSE_CHANNEL) { - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - Bone *bone = pchan->bone; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL); - } - else if(tselem->type==TSE_EBONE) { - EditBone *ebone= (EditBone *)te->directdata; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree); - } -} - -static void outliner_draw_rnacols(ARegion *ar, int sizex) -{ - View2D *v2d= &ar->v2d; - - float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT; - if(minytot.ymin) miny = v2d->tot.ymin; - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* draw column separator lines */ - fdrawline((float)sizex, - v2d->cur.ymax, - (float)sizex, - miny); - - fdrawline((float)sizex+OL_RNA_COL_SIZEX, - v2d->cur.ymax, - (float)sizex+OL_RNA_COL_SIZEX, - miny); -} - -static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - PointerRNA *ptr; - PropertyRNA *prop; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - if(tselem->type == TSE_RNA_PROPERTY) { - ptr= &te->rnaptr; - prop= te->directdata; - - if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0)) - uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - else if(tselem->type == TSE_RNA_ARRAY_ELEM) { - ptr= &te->rnaptr; - prop= te->directdata; - - uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree); - } -} - -static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2) -{ - wmOperatorType *ot= arg2; - wmKeyMapItem *kmi= arg_kmi; - - if(ot) - BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME); -} - -static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) -{ - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - - if(BLI_strcasestr(ot->idname, str)) { - char name[OP_MAX_TYPENAME]; - - /* display name for menu */ - WM_operator_py_idname(name, ot->idname); - - if(0==uiSearchItemAdd(items, name, ot, 0)) - break; - } - } -} - -/* operator Search browse menu, open */ -static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) -{ - static char search[OP_MAX_TYPENAME]; - wmEvent event; - wmWindow *win= CTX_wm_window(C); - wmKeyMapItem *kmi= arg_kmi; - wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0); - uiBlock *block; - uiBut *but; - - /* clear initial search string, then all items show */ - search[0]= 0; - - block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); - - /* fake button, it holds space for search items */ - uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, ""); - uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); - - uiBoundsBlock(block, 6); - uiBlockSetDirection(block, UI_DOWN); - uiEndBlock(C, block); - - event= *(win->eventstate); /* XXX huh huh? make api call */ - event.type= EVT_BUT_OPEN; - event.val= KM_PRESS; - event.customdata= but; - event.customdatafree= FALSE; - wm_event_add(win, &event); - - return block; -} - -#define OL_KM_KEYBOARD 0 -#define OL_KM_MOUSE 1 -#define OL_KM_TWEAK 2 -#define OL_KM_SPECIALS 3 - -static short keymap_menu_type(short type) -{ - if(ISKEYBOARD(type)) return OL_KM_KEYBOARD; - if(ISTWEAK(type)) return OL_KM_TWEAK; - if(ISMOUSE(type)) return OL_KM_MOUSE; -// return OL_KM_SPECIALS; - return 0; -} - -static const char *keymap_type_menu(void) -{ - static const char string[]= - "Event Type%t" - "|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD) - "|Mouse%x" STRINGIFY(OL_KM_MOUSE) - "|Tweak%x" STRINGIFY(OL_KM_TWEAK) -// "|Specials%x" STRINGIFY(OL_KM_SPECIALS) - ; - - return string; -} - -static const char *keymap_mouse_menu(void) -{ - static const char string[]= - "Mouse Event%t" - "|Left Mouse%x" STRINGIFY(LEFTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE) - "|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE) - "|Action Mouse%x" STRINGIFY(ACTIONMOUSE) - "|Select Mouse%x" STRINGIFY(SELECTMOUSE) - "|Mouse Move%x" STRINGIFY(MOUSEMOVE) - "|Wheel Up%x" STRINGIFY(WHEELUPMOUSE) - "|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE) - "|Wheel In%x" STRINGIFY(WHEELINMOUSE) - "|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE) - "|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN) - "|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM) - "|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE) - ; - - return string; -} - -static const char *keymap_tweak_menu(void) -{ - static const char string[]= - "Tweak Event%t" - "|Left Mouse%x" STRINGIFY(EVT_TWEAK_L) - "|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M) - "|Right Mouse%x" STRINGIFY(EVT_TWEAK_R) - "|Action Mouse%x" STRINGIFY(EVT_TWEAK_A) - "|Select Mouse%x" STRINGIFY(EVT_TWEAK_S) - ; - - return string; -} - -static const char *keymap_tweak_dir_menu(void) -{ - static const char string[]= - "Tweak Direction%t" - "|Any%x" STRINGIFY(KM_ANY) - "|North%x" STRINGIFY(EVT_GESTURE_N) - "|North-East%x" STRINGIFY(EVT_GESTURE_NE) - "|East%x" STRINGIFY(EVT_GESTURE_E) - "|Sout-East%x" STRINGIFY(EVT_GESTURE_SE) - "|South%x" STRINGIFY(EVT_GESTURE_S) - "|South-West%x" STRINGIFY(EVT_GESTURE_SW) - "|West%x" STRINGIFY(EVT_GESTURE_W) - "|North-West%x" STRINGIFY(EVT_GESTURE_NW) - ; - - return string; -} - - -static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) -{ - wmKeyMapItem *kmi= kmi_v; - short maptype= keymap_menu_type(kmi->type); - - if(maptype!=kmi->maptype) { - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - kmi->type= AKEY; - kmi->val= KM_PRESS; - break; - case OL_KM_MOUSE: - kmi->type= LEFTMOUSE; - kmi->val= KM_PRESS; - break; - case OL_KM_TWEAK: - kmi->type= EVT_TWEAK_L; - kmi->val= KM_ANY; - break; - case OL_KM_SPECIALS: - kmi->type= AKEY; - kmi->val= KM_PRESS; - } - ED_region_tag_redraw(CTX_wm_region(C)); - } -} - -static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - uiBut *but; - const char *str; - int xstart= 240; - int butw1= UI_UNIT_X; /* operator */ - int butw2= 90; /* event type, menus */ - int butw3= 43; /* modifiers */ - - if(tselem->type == TSE_KEYMAP_ITEM) { - wmKeyMapItem *kmi= te->directdata; - - /* modal map? */ - if(kmi->propvalue); - else { - uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator"); - } - xstart+= butw1+10; - - /* map type button */ - kmi->maptype= keymap_menu_type(kmi->type); - - str= keymap_type_menu(); - but= uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type"); - uiButSetFunc(but, keymap_type_cb, kmi, NULL); - xstart+= butw2+5; - - /* edit actual event */ - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code"); - xstart+= butw2+5; - break; - case OL_KM_MOUSE: - str= keymap_mouse_menu(); - uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Mouse button"); - xstart+= butw2+5; - break; - case OL_KM_TWEAK: - str= keymap_tweak_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Tweak gesture"); - xstart+= butw2+5; - str= keymap_tweak_dir_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0, "Tweak gesture direction"); - xstart+= butw2+5; - break; - } - - /* modifiers */ - uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5; - uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - xstart+= 5; - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code"); - xstart+= butw3+5; - - /* rna property */ - if(kmi->ptr && kmi->ptr->data) { - uiDefBut(block, LABEL, 0, "(RNA property)", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2; - } - - (void)xstart; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree); - } -} - - -static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - int spx, dx, len; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - - if(tselem->flag & TSE_TEXTBUT) { - - /* If we add support to rename Sequence. - * need change this. - */ - if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature - - if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name); - else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name); - else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name); - else len= MAX_ID_NAME-2; - - - dx= (int)UI_GetStringWidth(te->name); - if(dx<100) dx= 100; - spx=te->xs+2*UI_UNIT_X-4; - if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10; - - bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, ""); - uiButSetRenameFunc(bt, namebutton_cb, tselem); - - /* returns false if button got removed */ - if( 0 == uiButActiveOnly(C, block, bt) ) - tselem->flag &= ~TSE_TEXTBUT; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree); - } -} - -void draw_outliner(const bContext *C) -{ - Main *mainvar= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - SpaceOops *soops= CTX_wm_space_outliner(C); - uiBlock *block; - int sizey= 0, sizex= 0, sizex_rna= 0; - - outliner_build_tree(mainvar, scene, soops); // always - - /* get extents of data */ - outliner_height(soops, &soops->tree, &sizey); - - if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) { - /* RNA has two columns: - * - column 1 is (max_width + OL_RNA_COL_SPACEX) or - * (OL_RNA_COL_X), whichever is wider... - * - column 2 is fixed at OL_RNA_COL_SIZEX - * - * (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100) - */ - - /* get actual width of column 1 */ - outliner_rna_width(soops, &soops->tree, &sizex_rna, 0); - sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX); - - /* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */ - if (soops->outlinevis == SO_KEYMAP) - sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough... - else - sizex= sizex_rna + OL_RNA_COL_SIZEX + 50; - } - else { - /* width must take into account restriction columns (if visible) so that entries will still be visible */ - //outliner_width(soops, &soops->tree, &sizex); - outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly... - - /* constant offset for restriction columns */ - // XXX this isn't that great yet... - if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - sizex += OL_TOGW*3; - } - - /* tweak to display last line (when list bigger than window) */ - sizey += V2D_SCROLL_HEIGHT; - - /* adds vertical offset */ - sizey += OL_Y_OFFSET; - - /* update size of tot-rect (extents of data/viewable area) */ - UI_view2d_totRect_set(v2d, sizex, sizey); - - /* force display to pixel coords */ - v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y); - /* set matrix for 2d-view controls */ - UI_view2d_view_ortho(v2d); - - /* draw outliner stuff (background, hierachy lines and names) */ - outliner_back(ar); - block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS); - outliner_draw_tree((bContext *)C, block, scene, ar, soops); - - if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* draw rna buttons */ - outliner_draw_rnacols(ar, sizex_rna); - outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree); - } - else if(soops->outlinevis == SO_KEYMAP) { - outliner_draw_keymapbuts(block, ar, soops, &soops->tree); - } - else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) { - /* draw restriction columns */ - outliner_draw_restrictcols(ar); - outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree); - } - - /* draw edit buttons if nessecery */ - outliner_buttons(C, block, ar, soops, &soops->tree); - - uiEndBlock(C, block); - uiDrawBlock(C, block); - - /* clear flag that allows quick redraws */ - soops->storeflag &= ~SO_TREESTORE_REDRAW; -} - diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c new file mode 100644 index 00000000000..40a9f80e712 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -0,0 +1,1644 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_draw.c + * \ingroup spoutliner + */ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ +/* Tree Size Functions */ + +static void outliner_height(SpaceOops *soops, ListBase *lb, int *h) +{ + TreeElement *te= lb->first; + while(te) { + TreeStoreElem *tselem= TREESTORE(te); + if((tselem->flag & TSE_CLOSED)==0) + outliner_height(soops, &te->subtree, h); + (*h) += UI_UNIT_Y; + te= te->next; + } +} + +#if 0 // XXX this is currently disabled until te->xend is set correctly +static void outliner_width(SpaceOops *soops, ListBase *lb, int *w) +{ + TreeElement *te= lb->first; + while(te) { +// TreeStoreElem *tselem= TREESTORE(te); + + // XXX fixme... te->xend is not set yet + if(tselem->flag & TSE_CLOSED) { + if (te->xend > *w) + *w = te->xend; + } + outliner_width(soops, &te->subtree, w); + te= te->next; + } +} +#endif + +static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx) +{ + TreeElement *te= lb->first; + while(te) { + TreeStoreElem *tselem= TREESTORE(te); + // XXX fixme... (currently, we're using a fixed length of 100)! + /*if(te->xend) { + if(te->xend > *w) + *w = te->xend; + }*/ + if(startx+100 > *w) + *w = startx+100; + + if((tselem->flag & TSE_CLOSED)==0) + outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X); + te= te->next; + } +} + +/* ****************************************************** */ + +static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2) +{ + Scene *scene = (Scene *)poin; + Object *ob = (Object *)poin2; + + if(!common_restrict_check(C, ob)) return; + + /* deselect objects that are invisible */ + if (ob->restrictflag & OB_RESTRICT_VIEW) { + /* Ouch! There is no backwards pointer from Object to Base, + * so have to do loop to find it. */ + ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); + } + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + +} + +static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2) +{ + Scene *scene = (Scene *)poin; + Object *ob = (Object *)poin2; + + if(!common_restrict_check(C, ob)) return; + + /* if select restriction has just been turned on */ + if (ob->restrictflag & OB_RESTRICT_SELECT) { + /* Ouch! There is no backwards pointer from Object to Base, + * so have to do loop to find it. */ + ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); + } + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + +} + +static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2)) +{ + WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin); +} + +static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)) +{ + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin); +} + +static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + Object *ob = (Object *)poin2; + + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); +} + +static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + Bone *bone= (Bone *)poin2; + if(bone && (bone->flag & BONE_HIDDEN_P)) + bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); +} + +static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + EditBone *ebone= (EditBone *)poin2; + if(ebone && (ebone->flag & BONE_HIDDEN_A)) + ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); +} + +static int group_restrict_flag(Group *gr, int flag) +{ + GroupObject *gob; + + for(gob= gr->gobject.first; gob; gob= gob->next) { + if((gob->ob->restrictflag & flag) == 0) + return 0; + } + + return 1; +} + +static int group_select_flag(Group *gr) +{ + GroupObject *gob; + + for(gob= gr->gobject.first; gob; gob= gob->next) + if((gob->ob->flag & SELECT)) + return 1; + + return 0; +} + +static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) +{ + Scene *scene = (Scene *)poin; + GroupObject *gob; + Group *gr = (Group *)poin2; + + if(group_restrict_flag(gr, flag)) { + for(gob= gr->gobject.first; gob; gob= gob->next) { + gob->ob->restrictflag &= ~flag; + + if(flag==OB_RESTRICT_VIEW) + if(gob->ob->flag & SELECT) + ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT); + } + } + else { + for(gob= gr->gobject.first; gob; gob= gob->next) { + /* not in editmode */ + if(scene->obedit!=gob->ob) { + gob->ob->restrictflag |= flag; + + if(flag==OB_RESTRICT_VIEW) + if((gob->ob->flag & SELECT) == 0) + ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); + } + } + } +} + +static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW); + WM_event_add_notifier(C, NC_GROUP, NULL); +} +static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT); + WM_event_add_notifier(C, NC_GROUP, NULL); +} +static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER); + WM_event_add_notifier(C, NC_GROUP, NULL); +} + + +static void namebutton_cb(bContext *C, void *tsep, char *oldname) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + Object *obedit= CTX_data_edit_object(C); + TreeStore *ts= soops->treestore; + TreeStoreElem *tselem= tsep; + + if(ts && tselem) { + TreeElement *te= outliner_find_tse(soops, tselem); + + if(tselem->type==0) { + test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort + + switch(GS(tselem->id->name)) { + case ID_MA: + WM_event_add_notifier(C, NC_MATERIAL, NULL); break; + case ID_TE: + WM_event_add_notifier(C, NC_TEXTURE, NULL); break; + case ID_IM: + WM_event_add_notifier(C, NC_IMAGE, NULL); break; + case ID_SCE: + WM_event_add_notifier(C, NC_SCENE, NULL); break; + default: + WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; + } + /* Check the library target exists */ + if (te->idcode == ID_LI) { + char expanded[FILE_MAXDIR + FILE_MAXFILE]; + BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); + BLI_path_abs(expanded, G.main->name); + if (!BLI_exists(expanded)) { + BKE_report(CTX_wm_reports(C), RPT_ERROR, "This path does not exist, correct this before saving"); + } + } + } + else { + switch(tselem->type) { + case TSE_DEFGROUP: + defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object + break; + case TSE_NLA_ACTION: + test_idbutton(tselem->id->name+2); + break; + case TSE_EBONE: + { + bArmature *arm= (bArmature *)tselem->id; + if(arm->edbo) { + EditBone *ebone= te->directdata; + char newname[sizeof(ebone->name)]; + + /* restore bone name */ + BLI_strncpy(newname, ebone->name, sizeof(ebone->name)); + BLI_strncpy(ebone->name, oldname, sizeof(ebone->name)); + ED_armature_bone_rename(obedit->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT); + } + } + break; + + case TSE_BONE: + { + Bone *bone= te->directdata; + Object *ob; + char newname[sizeof(bone->name)]; + + // always make current object active + tree_element_active(C, scene, soops, te, 1); // was set_active_object() + ob= OBACT; + + /* restore bone name */ + BLI_strncpy(newname, bone->name, sizeof(bone->name)); + BLI_strncpy(bone->name, oldname, sizeof(bone->name)); + ED_armature_bone_rename(ob->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_POSE_CHANNEL: + { + bPoseChannel *pchan= te->directdata; + Object *ob; + char newname[sizeof(pchan->name)]; + + // always make current object active + tree_element_active(C, scene, soops, te, 1); // was set_active_object() + ob= OBACT; + + /* restore bone name */ + BLI_strncpy(newname, pchan->name, sizeof(pchan->name)); + BLI_strncpy(pchan->name, oldname, sizeof(pchan->name)); + ED_armature_bone_rename(ob->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_POSEGRP: + { + Object *ob= (Object *)tselem->id; // id = object + bActionGroup *grp= te->directdata; + + BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name)); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_R_LAYER: + break; + } + } + tselem->flag &= ~TSE_TEXTBUT; + } +} + +static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + uiBut *bt; + TreeElement *te; + TreeStoreElem *tselem; + Object *ob = NULL; + Group *gr = NULL; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + /* objects have toggle-able restriction flags */ + if(tselem->type==0 && te->idcode==ID_OB) { + PointerRNA ptr; + + ob = (Object *)tselem->id; + RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr); + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_view_cb, scene, ob); + + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide_select", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob); + + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide_render", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob); + + uiBlockSetEmboss(block, UI_EMBOSS); + + } + if(tselem->type==0 && te->idcode==ID_GR){ + int restrict_bool; + gr = (Group *)tselem->id; + + uiBlockSetEmboss(block, UI_EMBOSSN); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability"); + uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + /* scene render layers and passes have toggle-able flags too! */ + else if(tselem->type==TSE_R_LAYER) { + uiBlockSetEmboss(block, UI_EMBOSSN); + + bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + else if(tselem->type==TSE_R_PASS) { + int *layflag= te->directdata; + int passflag= 1<nr; + + uiBlockSetEmboss(block, UI_EMBOSSN); + + + bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + layflag++; /* is lay_xor */ + if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT)) + bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + else if(tselem->type==TSE_MODIFIER) { + ModifierData *md= (ModifierData *)te->directdata; + ob = (Object *)tselem->id; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); + + bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability"); + uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); + } + else if(tselem->type==TSE_POSE_CHANNEL) { + bPoseChannel *pchan= (bPoseChannel *)te->directdata; + Bone *bone = pchan->bone; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone); + + bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL); + } + else if(tselem->type==TSE_EBONE) { + EditBone *ebone= (EditBone *)te->directdata; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone); + + bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL); + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree); + } +} + +static void outliner_draw_rnacols(ARegion *ar, int sizex) +{ + View2D *v2d= &ar->v2d; + + float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT; + if(minytot.ymin) miny = v2d->tot.ymin; + + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + + /* draw column separator lines */ + fdrawline((float)sizex, + v2d->cur.ymax, + (float)sizex, + miny); + + fdrawline((float)sizex+OL_RNA_COL_SIZEX, + v2d->cur.ymax, + (float)sizex+OL_RNA_COL_SIZEX, + miny); +} + +static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + PointerRNA *ptr; + PropertyRNA *prop; + + uiBlockSetEmboss(block, UI_EMBOSST); + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + if(tselem->type == TSE_RNA_PROPERTY) { + ptr= &te->rnaptr; + prop= te->directdata; + + if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0)) + uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); + } + else if(tselem->type == TSE_RNA_ARRAY_ELEM) { + ptr= &te->rnaptr; + prop= te->directdata; + + uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree); + } +} + +static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2) +{ + wmOperatorType *ot= arg2; + wmKeyMapItem *kmi= arg_kmi; + + if(ot) + BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME); +} + +static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) +{ + wmOperatorType *ot = WM_operatortype_first(); + + for(; ot; ot= ot->next) { + + if(BLI_strcasestr(ot->idname, str)) { + char name[OP_MAX_TYPENAME]; + + /* display name for menu */ + WM_operator_py_idname(name, ot->idname); + + if(0==uiSearchItemAdd(items, name, ot, 0)) + break; + } + } +} + +/* operator Search browse menu, open */ +static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) +{ + static char search[OP_MAX_TYPENAME]; + wmEvent event; + wmWindow *win= CTX_wm_window(C); + wmKeyMapItem *kmi= arg_kmi; + wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0); + uiBlock *block; + uiBut *but; + + /* clear initial search string, then all items show */ + search[0]= 0; + + block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); + uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); + + /* fake button, it holds space for search items */ + uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); + + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, ""); + uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); + + uiBoundsBlock(block, 6); + uiBlockSetDirection(block, UI_DOWN); + uiEndBlock(C, block); + + event= *(win->eventstate); /* XXX huh huh? make api call */ + event.type= EVT_BUT_OPEN; + event.val= KM_PRESS; + event.customdata= but; + event.customdatafree= FALSE; + wm_event_add(win, &event); + + return block; +} + +#define OL_KM_KEYBOARD 0 +#define OL_KM_MOUSE 1 +#define OL_KM_TWEAK 2 +#define OL_KM_SPECIALS 3 + +static short keymap_menu_type(short type) +{ + if(ISKEYBOARD(type)) return OL_KM_KEYBOARD; + if(ISTWEAK(type)) return OL_KM_TWEAK; + if(ISMOUSE(type)) return OL_KM_MOUSE; +// return OL_KM_SPECIALS; + return 0; +} + +static const char *keymap_type_menu(void) +{ + static const char string[]= + "Event Type%t" + "|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD) + "|Mouse%x" STRINGIFY(OL_KM_MOUSE) + "|Tweak%x" STRINGIFY(OL_KM_TWEAK) +// "|Specials%x" STRINGIFY(OL_KM_SPECIALS) + ; + + return string; +} + +static const char *keymap_mouse_menu(void) +{ + static const char string[]= + "Mouse Event%t" + "|Left Mouse%x" STRINGIFY(LEFTMOUSE) + "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) + "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) + "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) + "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) + "|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE) + "|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE) + "|Action Mouse%x" STRINGIFY(ACTIONMOUSE) + "|Select Mouse%x" STRINGIFY(SELECTMOUSE) + "|Mouse Move%x" STRINGIFY(MOUSEMOVE) + "|Wheel Up%x" STRINGIFY(WHEELUPMOUSE) + "|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE) + "|Wheel In%x" STRINGIFY(WHEELINMOUSE) + "|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE) + "|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN) + "|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM) + "|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE) + ; + + return string; +} + +static const char *keymap_tweak_menu(void) +{ + static const char string[]= + "Tweak Event%t" + "|Left Mouse%x" STRINGIFY(EVT_TWEAK_L) + "|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M) + "|Right Mouse%x" STRINGIFY(EVT_TWEAK_R) + "|Action Mouse%x" STRINGIFY(EVT_TWEAK_A) + "|Select Mouse%x" STRINGIFY(EVT_TWEAK_S) + ; + + return string; +} + +static const char *keymap_tweak_dir_menu(void) +{ + static const char string[]= + "Tweak Direction%t" + "|Any%x" STRINGIFY(KM_ANY) + "|North%x" STRINGIFY(EVT_GESTURE_N) + "|North-East%x" STRINGIFY(EVT_GESTURE_NE) + "|East%x" STRINGIFY(EVT_GESTURE_E) + "|Sout-East%x" STRINGIFY(EVT_GESTURE_SE) + "|South%x" STRINGIFY(EVT_GESTURE_S) + "|South-West%x" STRINGIFY(EVT_GESTURE_SW) + "|West%x" STRINGIFY(EVT_GESTURE_W) + "|North-West%x" STRINGIFY(EVT_GESTURE_NW) + ; + + return string; +} + + +static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) +{ + wmKeyMapItem *kmi= kmi_v; + short maptype= keymap_menu_type(kmi->type); + + if(maptype!=kmi->maptype) { + switch(kmi->maptype) { + case OL_KM_KEYBOARD: + kmi->type= AKEY; + kmi->val= KM_PRESS; + break; + case OL_KM_MOUSE: + kmi->type= LEFTMOUSE; + kmi->val= KM_PRESS; + break; + case OL_KM_TWEAK: + kmi->type= EVT_TWEAK_L; + kmi->val= KM_ANY; + break; + case OL_KM_SPECIALS: + kmi->type= AKEY; + kmi->val= KM_PRESS; + } + ED_region_tag_redraw(CTX_wm_region(C)); + } +} + +static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + uiBlockSetEmboss(block, UI_EMBOSST); + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + uiBut *but; + const char *str; + int xstart= 240; + int butw1= UI_UNIT_X; /* operator */ + int butw2= 90; /* event type, menus */ + int butw3= 43; /* modifiers */ + + if(tselem->type == TSE_KEYMAP_ITEM) { + wmKeyMapItem *kmi= te->directdata; + + /* modal map? */ + if(kmi->propvalue); + else { + uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator"); + } + xstart+= butw1+10; + + /* map type button */ + kmi->maptype= keymap_menu_type(kmi->type); + + str= keymap_type_menu(); + but= uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type"); + uiButSetFunc(but, keymap_type_cb, kmi, NULL); + xstart+= butw2+5; + + /* edit actual event */ + switch(kmi->maptype) { + case OL_KM_KEYBOARD: + uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code"); + xstart+= butw2+5; + break; + case OL_KM_MOUSE: + str= keymap_mouse_menu(); + uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Mouse button"); + xstart+= butw2+5; + break; + case OL_KM_TWEAK: + str= keymap_tweak_menu(); + uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Tweak gesture"); + xstart+= butw2+5; + str= keymap_tweak_dir_menu(); + uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0, "Tweak gesture direction"); + xstart+= butw2+5; + break; + } + + /* modifiers */ + uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5; + uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + xstart+= 5; + uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code"); + xstart+= butw3+5; + + /* rna property */ + if(kmi->ptr && kmi->ptr->data) { + uiDefBut(block, LABEL, 0, "(RNA property)", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2; + } + + (void)xstart; + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree); + } +} + + +static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + uiBut *bt; + TreeElement *te; + TreeStoreElem *tselem; + int spx, dx, len; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + + if(tselem->flag & TSE_TEXTBUT) { + + /* If we add support to rename Sequence. + * need change this. + */ + if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature + + if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name); + else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name); + else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name); + else len= MAX_ID_NAME-2; + + + dx= (int)UI_GetStringWidth(te->name); + if(dx<100) dx= 100; + spx=te->xs+2*UI_UNIT_X-4; + if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10; + + bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, ""); + uiButSetRenameFunc(bt, namebutton_cb, tselem); + + /* returns false if button got removed */ + if( 0 == uiButActiveOnly(C, block, bt) ) + tselem->flag &= ~TSE_TEXTBUT; + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree); + } +} + +/* ****************************************************** */ +/* Normal Drawing... */ + +/* make function calls a bit compacter */ +struct DrawIconArg { + uiBlock *block; + ID *id; + int xmax, x, y; + float alpha; +}; + +static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon) +{ + /* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */ + if(arg->x >= arg->xmax) + UI_icon_draw(arg->x, arg->y, icon); + else { + /* XXX investigate: button placement of icons is way different than UI_icon_draw? */ + float ufac= UI_UNIT_X/20.0f; + uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : ""); + + if(arg->id) + uiButSetDragID(but, arg->id); + } + +} + +static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha) +{ + struct DrawIconArg arg; + + /* make function calls a bit compacter */ + arg.block= block; + arg.id= tselem->id; + arg.xmax= xmax; + arg.x= x; + arg.y= y; + arg.alpha= alpha; + + if(tselem->type) { + switch( tselem->type) { + case TSE_ANIM_DATA: + UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx + case TSE_NLA: + UI_icon_draw(x, y, ICON_NLA); break; + case TSE_NLA_TRACK: + UI_icon_draw(x, y, ICON_NLA); break; // XXX + case TSE_NLA_ACTION: + UI_icon_draw(x, y, ICON_ACTION); break; + case TSE_DRIVER_BASE: + UI_icon_draw(x, y, ICON_DRIVER); break; + case TSE_DEFGROUP_BASE: + UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; + case TSE_BONE: + case TSE_EBONE: + UI_icon_draw(x, y, ICON_BONE_DATA); break; + case TSE_CONSTRAINT_BASE: + UI_icon_draw(x, y, ICON_CONSTRAINT); break; + case TSE_MODIFIER_BASE: + UI_icon_draw(x, y, ICON_MODIFIER); break; + case TSE_LINKED_OB: + UI_icon_draw(x, y, ICON_OBJECT_DATA); break; + case TSE_LINKED_PSYS: + UI_icon_draw(x, y, ICON_PARTICLES); break; + case TSE_MODIFIER: + { + Object *ob= (Object *)tselem->id; + ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); + switch(md->type) { + case eModifierType_Subsurf: + UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; + case eModifierType_Armature: + UI_icon_draw(x, y, ICON_MOD_ARMATURE); break; + case eModifierType_Lattice: + UI_icon_draw(x, y, ICON_MOD_LATTICE); break; + case eModifierType_Curve: + UI_icon_draw(x, y, ICON_MOD_CURVE); break; + case eModifierType_Build: + UI_icon_draw(x, y, ICON_MOD_BUILD); break; + case eModifierType_Mirror: + UI_icon_draw(x, y, ICON_MOD_MIRROR); break; + case eModifierType_Decimate: + UI_icon_draw(x, y, ICON_MOD_DECIM); break; + case eModifierType_Wave: + UI_icon_draw(x, y, ICON_MOD_WAVE); break; + case eModifierType_Hook: + UI_icon_draw(x, y, ICON_HOOK); break; + case eModifierType_Softbody: + UI_icon_draw(x, y, ICON_MOD_SOFT); break; + case eModifierType_Boolean: + UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break; + case eModifierType_ParticleSystem: + UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; + case eModifierType_ParticleInstance: + UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; + case eModifierType_EdgeSplit: + UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break; + case eModifierType_Array: + UI_icon_draw(x, y, ICON_MOD_ARRAY); break; + case eModifierType_UVProject: + UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break; + case eModifierType_Displace: + UI_icon_draw(x, y, ICON_MOD_DISPLACE); break; + case eModifierType_Shrinkwrap: + UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break; + case eModifierType_Cast: + UI_icon_draw(x, y, ICON_MOD_CAST); break; + case eModifierType_MeshDeform: + UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; + case eModifierType_Bevel: + UI_icon_draw(x, y, ICON_MOD_BEVEL); break; + case eModifierType_Smooth: + UI_icon_draw(x, y, ICON_MOD_SMOOTH); break; + case eModifierType_SimpleDeform: + UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break; + case eModifierType_Mask: + UI_icon_draw(x, y, ICON_MOD_MASK); break; + case eModifierType_Cloth: + UI_icon_draw(x, y, ICON_MOD_CLOTH); break; + case eModifierType_Explode: + UI_icon_draw(x, y, ICON_MOD_EXPLODE); break; + case eModifierType_Collision: + UI_icon_draw(x, y, ICON_MOD_PHYSICS); break; + case eModifierType_Fluidsim: + UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break; + case eModifierType_Multires: + UI_icon_draw(x, y, ICON_MOD_MULTIRES); break; + case eModifierType_Smoke: + UI_icon_draw(x, y, ICON_MOD_SMOKE); break; + case eModifierType_Solidify: + UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break; + case eModifierType_Screw: + UI_icon_draw(x, y, ICON_MOD_SCREW); break; + default: + UI_icon_draw(x, y, ICON_DOT); break; + } + break; + } + case TSE_SCRIPT_BASE: + UI_icon_draw(x, y, ICON_TEXT); break; + case TSE_POSE_BASE: + UI_icon_draw(x, y, ICON_ARMATURE_DATA); break; + case TSE_POSE_CHANNEL: + UI_icon_draw(x, y, ICON_BONE_DATA); break; + case TSE_PROXY: + UI_icon_draw(x, y, ICON_GHOST); break; + case TSE_R_LAYER_BASE: + UI_icon_draw(x, y, ICON_RENDERLAYERS); break; + case TSE_R_LAYER: + UI_icon_draw(x, y, ICON_RENDERLAYERS); break; + case TSE_LINKED_LAMP: + UI_icon_draw(x, y, ICON_LAMP_DATA); break; + case TSE_LINKED_MAT: + UI_icon_draw(x, y, ICON_MATERIAL_DATA); break; + case TSE_POSEGRP_BASE: + UI_icon_draw(x, y, ICON_VERTEXSEL); break; + case TSE_SEQUENCE: + if(te->idcode==SEQ_MOVIE) + UI_icon_draw(x, y, ICON_SEQUENCE); + else if(te->idcode==SEQ_META) + UI_icon_draw(x, y, ICON_DOT); + else if(te->idcode==SEQ_SCENE) + UI_icon_draw(x, y, ICON_SCENE); + else if(te->idcode==SEQ_SOUND) + UI_icon_draw(x, y, ICON_SOUND); + else if(te->idcode==SEQ_IMAGE) + UI_icon_draw(x, y, ICON_IMAGE_COL); + else + UI_icon_draw(x, y, ICON_PARTICLES); + break; + case TSE_SEQ_STRIP: + UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT); + break; + case TSE_SEQUENCE_DUP: + UI_icon_draw(x, y, ICON_OBJECT_DATA); + break; + case TSE_RNA_STRUCT: + if(RNA_struct_is_ID(te->rnaptr.type)) { + arg.id= (ID *)te->rnaptr.data; + tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type)); + } + else + UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type)); + break; + default: + UI_icon_draw(x, y, ICON_DOT); break; + } + } + else if (GS(tselem->id->name) == ID_OB) { + Object *ob= (Object *)tselem->id; + switch (ob->type) { + case OB_LAMP: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break; + case OB_MESH: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break; + case OB_CAMERA: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break; + case OB_CURVE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break; + case OB_MBALL: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break; + case OB_LATTICE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break; + case OB_ARMATURE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break; + case OB_FONT: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; + case OB_SURF: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; + case OB_EMPTY: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; + + } + } + else { + switch( GS(tselem->id->name)) { + case ID_SCE: + tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; + case ID_ME: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break; + case ID_CU: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break; + case ID_MB: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break; + case ID_LT: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break; + case ID_LA: + { + Lamp *la= (Lamp *)tselem->id; + + switch(la->type) { + case LA_LOCAL: + tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; + case LA_SUN: + tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break; + case LA_SPOT: + tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break; + case LA_HEMI: + tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break; + case LA_AREA: + tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break; + default: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break; + } + break; + } + case ID_MA: + tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break; + case ID_TE: + tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; + case ID_IM: + tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; + case ID_SO: + tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; + case ID_AR: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; + case ID_CA: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break; + case ID_KE: + tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break; + case ID_WO: + tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break; + case ID_AC: + tselem_draw_icon_uibut(&arg, ICON_ACTION); break; + case ID_NLA: + tselem_draw_icon_uibut(&arg, ICON_NLA); break; + case ID_TXT: + tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break; + case ID_GR: + tselem_draw_icon_uibut(&arg, ICON_GROUP); break; + case ID_LI: + tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; + } + } +} + +static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys) +{ + TreeElement *te; + TreeStoreElem *tselem; + int active; + + for(te= lb->first; te; te= te->next) { + + /* exit drawing early */ + if((*offsx) - UI_UNIT_X > xmax) + break; + + tselem= TREESTORE(te); + + /* object hierarchy always, further constrained on level */ + if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) { + + /* active blocks get white circle */ + if(tselem->type==0) { + if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id); + else if(scene->obedit && scene->obedit->data==tselem->id) active= 1; // XXX use context? + else active= tree_element_active(C, scene, soops, te, 0); + } + else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0); + + if(active) { + float ufac= UI_UNIT_X/20.0f; + + uiSetRoundBox(15); + glColor4ub(255, 255, 255, 100); + uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); + glEnable(GL_BLEND); /* roundbox disables */ + } + + tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f); + te->xs= (float)*offsx; + te->ys= (float)ys; + te->xend= (short)*offsx+UI_UNIT_X; + te->flag |= TE_ICONROW; // for click + + (*offsx) += UI_UNIT_X; + } + + /* this tree element always has same amount of branches, so dont draw */ + if(tselem->type!=TSE_R_LAYER) + outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys); + } + +} + +/* closed tree element */ +static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeElement *ten; + + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)(*starty); + + for(ten= te->subtree.first; ten; ten= ten->next) { + outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty); + } +} + + +static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeElement *ten; + TreeStoreElem *tselem; + float ufac= UI_UNIT_X/20.0f; + int offsx= 0, active=0; // active=1 active obj, else active data + + tselem= TREESTORE(te); + + if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) { + int xmax= ar->v2d.cur.xmax; + + /* icons can be ui buts, we dont want it to overlap with restrict */ + if((soops->flag & SO_HIDE_RESTRICTCOLS)==0) + xmax-= OL_TOGW+UI_UNIT_X; + + glEnable(GL_BLEND); + + /* colors for active/selected data */ + if(tselem->type==0) { + if(te->idcode==ID_SCE) { + if(tselem->id == (ID *)scene) { + glColor4ub(255, 255, 255, 100); + active= 2; + } + } + else if(te->idcode==ID_GR) { + Group *gr = (Group *)tselem->id; + + if(group_select_flag(gr)) { + char col[4]; + UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); + col[3]= 100; + glColor4ubv((GLubyte *)col); + + active= 2; + } + } + else if(te->idcode==ID_OB) { + Object *ob= (Object *)tselem->id; + + if(ob==OBACT || (ob->flag & SELECT)) { + char col[4]= {0, 0, 0, 0}; + + /* outliner active ob: always white text, circle color now similar to view3d */ + + active= 2; /* means it draws a color circle */ + if(ob==OBACT) { + if(ob->flag & SELECT) { + UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col); + col[3]= 100; + } + + active= 1; /* means it draws white text */ + } + else if(ob->flag & SELECT) { + UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); + col[3]= 100; + } + + glColor4ubv((GLubyte *)col); + } + + } + else if(scene->obedit && scene->obedit->data==tselem->id) { + glColor4ub(255, 255, 255, 100); + active= 2; + } + else { + if(tree_element_active(C, scene, soops, te, 0)) { + glColor4ub(220, 220, 255, 100); + active= 2; + } + } + } + else { + if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2; + glColor4ub(220, 220, 255, 100); + } + + /* active circle */ + if(active) { + uiSetRoundBox(15); + uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); + glEnable(GL_BLEND); /* roundbox disables it */ + + te->flag |= TE_ACTIVE; // for lookup in display hierarchies + } + + /* open/close icon, only when sublevels, except for scene */ + if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) { + int icon_x; + if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE)) + icon_x = startx; + else + icon_x = startx+5*ufac; + + // icons a bit higher + if(tselem->flag & TSE_CLOSED) + UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT); + else + UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN); + } + offsx+= UI_UNIT_X; + + /* datatype icon */ + + if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { + // icons a bit higher + tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); + + offsx+= UI_UNIT_X; + } + else + offsx+= 2*ufac; + + if(tselem->type==0 && tselem->id->lib) { + glPixelTransferf(GL_ALPHA_SCALE, 0.5f); + if(tselem->id->flag & LIB_INDIRECT) + UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT); + else + UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT); + glPixelTransferf(GL_ALPHA_SCALE, 1.0f); + offsx+= UI_UNIT_X; + } + glDisable(GL_BLEND); + + /* name */ + if(active==1) UI_ThemeColor(TH_TEXT_HI); + else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f); + else UI_ThemeColor(TH_TEXT); + + UI_DrawString(startx+offsx, *starty+5*ufac, te->name); + + offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name)); + + /* closed item, we draw the icons, not when it's a scene, or master-server list though */ + if(tselem->flag & TSE_CLOSED) { + if(te->subtree.first) { + if(tselem->type==0 && te->idcode==ID_SCE); + else if(tselem->type!=TSE_R_LAYER) { /* this tree element always has same amount of branches, so dont draw */ + int tempx= startx+offsx; + + // divider + UI_ThemeColorShade(TH_BACK, -40); + glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4); + + glEnable(GL_BLEND); + glPixelTransferf(GL_ALPHA_SCALE, 0.5); + + outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2); + + glPixelTransferf(GL_ALPHA_SCALE, 1.0); + glDisable(GL_BLEND); + } + } + } + } + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)*starty; + te->xend= startx+offsx; + + if((tselem->flag & TSE_CLOSED)==0) { + *starty-= UI_UNIT_Y; + + for(ten= te->subtree.first; ten; ten= ten->next) + outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty); + } + else { + for(ten= te->subtree.first; ten; ten= ten->next) + outliner_set_coord_tree_element(soops, te, startx, starty); + + *starty-= UI_UNIT_Y; + } +} + +static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + int y1, y2; + + if(lb->first==NULL) return; + + y1=y2= *starty; /* for vertical lines between objects */ + for(te=lb->first; te; te= te->next) { + y2= *starty; + tselem= TREESTORE(te); + + /* horizontal line? */ + if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE)) + glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1); + + *starty-= UI_UNIT_Y; + + if((tselem->flag & TSE_CLOSED)==0) + outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty); + } + + /* vertical line */ + te= lb->last; + if(te->parent || lb->first!=lb->last) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==ID_OB) { + + glRecti(startx, y1+UI_UNIT_Y, startx+1, y2); + } + } +} + +static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + /* selection status */ + if((tselem->flag & TSE_CLOSED)==0) + if(tselem->type == TSE_RNA_STRUCT) + glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1); + + *starty-= UI_UNIT_Y; + if((tselem->flag & TSE_CLOSED)==0) { + outliner_draw_struct_marks(ar, soops, &te->subtree, starty); + if(tselem->type == TSE_RNA_STRUCT) + fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y); + } + } +} + +static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + /* selection status */ + if(tselem->flag & TSE_SELECTED) { + glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1); + } + *starty-= UI_UNIT_Y; + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty); + } +} + + +static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops) +{ + TreeElement *te; + int starty, startx; + float col[4]; + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once + + if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { + /* struct marks */ + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + //UI_ThemeColorShade(TH_BACK, -20); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + outliner_draw_struct_marks(ar, soops, &soops->tree, &starty); + } + + /* always draw selection fill before hierarchy */ + UI_GetThemeColor3fv(TH_BACK, col); + glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + outliner_draw_selection(ar, soops, &soops->tree, &starty); + + // grey hierarchy lines + UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; + startx= 6; + outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); + + // items themselves + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + startx= 0; + for(te= soops->tree.first; te; te= te->next) { + outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty); + } +} + + +static void outliner_back(ARegion *ar) +{ + int ystart; + + UI_ThemeColorShade(TH_BACK, 6); + ystart= (int)ar->v2d.tot.ymax; + ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; + + while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { + glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y); + ystart-= 2*UI_UNIT_Y; + } +} + +static void outliner_draw_restrictcols(ARegion *ar) +{ + int ystart; + + /* background underneath */ + UI_ThemeColor(TH_BACK); + glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax); + + UI_ThemeColorShade(TH_BACK, 6); + ystart= (int)ar->v2d.tot.ymax; + ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; + + while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { + glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y); + ystart-= 2*UI_UNIT_Y; + } + + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + + /* view */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); + + /* render */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); + + /* render */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); +} + +/* ****************************************************** */ +/* Main Entrypoint - Draw contents of Outliner editor */ + +void draw_outliner(const bContext *C) +{ + Main *mainvar= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= &ar->v2d; + SpaceOops *soops= CTX_wm_space_outliner(C); + uiBlock *block; + int sizey= 0, sizex= 0, sizex_rna= 0; + + outliner_build_tree(mainvar, scene, soops); // always + + /* get extents of data */ + outliner_height(soops, &soops->tree, &sizey); + + if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) { + /* RNA has two columns: + * - column 1 is (max_width + OL_RNA_COL_SPACEX) or + * (OL_RNA_COL_X), whichever is wider... + * - column 2 is fixed at OL_RNA_COL_SIZEX + * + * (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100) + */ + + /* get actual width of column 1 */ + outliner_rna_width(soops, &soops->tree, &sizex_rna, 0); + sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX); + + /* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */ + if (soops->outlinevis == SO_KEYMAP) + sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough... + else + sizex= sizex_rna + OL_RNA_COL_SIZEX + 50; + } + else { + /* width must take into account restriction columns (if visible) so that entries will still be visible */ + //outliner_width(soops, &soops->tree, &sizex); + outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly... + + /* constant offset for restriction columns */ + // XXX this isn't that great yet... + if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0) + sizex += OL_TOGW*3; + } + + /* tweak to display last line (when list bigger than window) */ + sizey += V2D_SCROLL_HEIGHT; + + /* adds vertical offset */ + sizey += OL_Y_OFFSET; + + /* update size of tot-rect (extents of data/viewable area) */ + UI_view2d_totRect_set(v2d, sizex, sizey); + + /* force display to pixel coords */ + v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y); + /* set matrix for 2d-view controls */ + UI_view2d_view_ortho(v2d); + + /* draw outliner stuff (background, hierachy lines and names) */ + outliner_back(ar); + block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS); + outliner_draw_tree((bContext *)C, block, scene, ar, soops); + + if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { + /* draw rna buttons */ + outliner_draw_rnacols(ar, sizex_rna); + outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree); + } + else if(soops->outlinevis == SO_KEYMAP) { + outliner_draw_keymapbuts(block, ar, soops, &soops->tree); + } + else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) { + /* draw restriction columns */ + outliner_draw_restrictcols(ar); + outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree); + } + + /* draw edit buttons if nessecery */ + outliner_buttons(C, block, ar, soops, &soops->tree); + + uiEndBlock(C, block); + uiDrawBlock(C, block); + + /* clear flag that allows quick redraws */ + soops->storeflag &= ~SO_TREESTORE_REDRAW; +} diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c new file mode 100644 index 00000000000..fbd5281b1d9 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -0,0 +1,1396 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_edit.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "ED_keyframing.h" + +#include "outliner_intern.h" + +/* ************************************************************** */ +/* Unused Utilities */ +// XXX: where to place these? + +/* This is not used anywhere at the moment */ +#if 0 +/* return 1 when levels were opened */ +static int outliner_open_back(SpaceOops *soops, TreeElement *te) +{ + TreeStoreElem *tselem; + int retval= 0; + + for (te= te->parent; te; te= te->parent) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_CLOSED) { + tselem->flag &= ~TSE_CLOSED; + retval= 1; + } + } + return retval; +} + +static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= lb->first; te; te= te->next) { + /* check if this tree-element was the one we're seeking */ + if (te == teFind) { + *found= 1; + return; + } + + /* try to see if sub-tree contains it then */ + outliner_open_reveal(soops, &te->subtree, teFind, found); + if (*found) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_CLOSED) + tselem->flag &= ~TSE_CLOSED; + return; + } + } +} +#endif + +/* ************************************************************** */ +/* Click Activated */ + +/* Toggle Open/Closed ------------------------------------------- */ + +static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2]) +{ + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + + /* all below close/open? */ + if(all) { + tselem->flag &= ~TSE_CLOSED; + outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); + } + else { + if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + } + + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_openclose(C, soops, te, all, mval)) + return 1; + } + return 0; + +} + +/* event can enterkey, then it opens/closes */ +static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event) +{ + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + int all= RNA_boolean_get(op->ptr, "all"); + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_openclose(C, soops, te, all, fmval)) + break; + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_item_openclose(wmOperatorType *ot) +{ + ot->name= "Open/Close Item"; + ot->idname= "OUTLINER_OT_item_openclose"; + ot->description= "Toggle whether item under cursor is enabled or closed"; + + ot->invoke= outliner_item_openclose; + + ot->poll= ED_operator_outliner_active; + + RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items."); +} + +/* Rename --------------------------------------------------- */ + +static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) +{ + ReportList *reports= CTX_wm_reports(C); // XXX + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + + /* name and first icon */ + if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { + + /* can't rename rna datablocks entries */ + if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) + ; + else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) + BKE_report(reports, RPT_WARNING, "Cannot edit builtin name"); + else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) + BKE_report(reports, RPT_WARNING, "Cannot edit sequence name"); + else if(tselem->id->lib) { + // XXX error_libdata(); + } + else if(te->idcode == ID_LI && te->parent) { + BKE_report(reports, RPT_WARNING, "Cannot edit the path of an indirectly linked library"); + } + else { + tselem->flag |= TSE_TEXTBUT; + ED_region_tag_redraw(ar); + } + } + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1; + } + return 0; +} + +static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event) +{ + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_rename(C, ar, soops, te, fmval)) break; + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_item_rename(wmOperatorType *ot) +{ + ot->name= "Rename Item"; + ot->idname= "OUTLINER_OT_item_rename"; + ot->description= "Rename item under cursor"; + + ot->invoke= outliner_item_rename; + + ot->poll= ED_operator_outliner_active; +} + +/* ************************************************************** */ +/* Setting Toggling Operators */ + +/* =============================================== */ +/* Toggling Utilities (Exported) */ + +/* Apply Settings ------------------------------- */ + +static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel) +{ + TreeElement *te; + int level=curlevel, lev; + + for(te= lb->first; te; te= te->next) { + + lev= outliner_count_levels(soops, &te->subtree, curlevel+1); + if(lev>level) level= lev; + } + return level; +} + +int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel) +{ + TreeElement *te; + TreeStoreElem *tselem; + int level; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & flag) return curlevel; + + level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1); + if(level) return level; + } + return 0; +} + +void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(set==0) tselem->flag &= ~flag; + else tselem->flag |= flag; + outliner_set_flag(soops, &te->subtree, flag, set); + } +} + +/* Restriction Columns ------------------------------- */ + +/* same check needed for both object operation and restrict column button func + * return 0 when in edit mode (cannot restrict view or select) + * otherwise return 1 */ +int common_restrict_check(bContext *C, Object *ob) +{ + /* Don't allow hide an object in edit mode, + * check the bug #22153 and #21609, #23977 + */ + Object *obedit= CTX_data_edit_object(C); + if (obedit && obedit == ob) { + /* found object is hidden, reset */ + if (ob->restrictflag & OB_RESTRICT_VIEW) + ob->restrictflag &= ~OB_RESTRICT_VIEW; + /* found object is unselectable, reset */ + if (ob->restrictflag & OB_RESTRICT_SELECT) + ob->restrictflag &= ~OB_RESTRICT_SELECT; + return 0; + } + + return 1; +} + +/* =============================================== */ +/* Restriction toggles */ + +/* Toggle Visibility ---------------------------------------- */ + +void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + Object *ob = (Object *)tselem->id; + + /* add check for edit mode */ + if(!common_restrict_check(C, ob)) return; + + if(base || (base= object_in_scene(ob, scene))) { + if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) { + ED_base_object_select(base, BA_DESELECT); + } + } +} + +static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); + + WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_visibility_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Visibility"; + ot->idname= "OUTLINER_OT_visibility_toggle"; + ot->description= "Toggle the visibility of selected items"; + + /* callbacks */ + ot->exec= outliner_toggle_visibility_exec; + ot->poll= ED_operator_outliner_active_no_editobject; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* Toggle Selectability ---------------------------------------- */ + +void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->object->restrictflag^=OB_RESTRICT_SELECT; + } +} + +static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_selectability_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Selectability"; + ot->idname= "OUTLINER_OT_selectability_toggle"; + ot->description= "Toggle the selectability"; + + /* callbacks */ + ot->exec= outliner_toggle_selectability_exec; + ot->poll= ED_operator_outliner_active_no_editobject; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* Toggle Renderability ---------------------------------------- */ + +void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->object->restrictflag^=OB_RESTRICT_RENDER; + } +} + +static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_renderability_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Renderability"; + ot->idname= "OUTLINER_OT_renderability_toggle"; + ot->description= "Toggle the renderability of selected items"; + + /* callbacks */ + ot->exec= outliner_toggle_renderability_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* =============================================== */ +/* Outliner setting toggles */ + +/* Toggle Expanded (Outliner) ---------------------------------------- */ + +static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + + if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1)) + outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0); + else + outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Expand/Collapse All"; + ot->idname= "OUTLINER_OT_expanded_toggle"; + ot->description= "Expand/Collapse all items"; + + /* callbacks */ + ot->exec= outliner_toggle_expanded_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ +} + +/* Toggle Selected (Outliner) ---------------------------------------- */ + +static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + Scene *scene= CTX_data_scene(C); + + if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1)) + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + else + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1); + + soops->storeflag |= SO_TREESTORE_REDRAW; + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_selected_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Selected"; + ot->idname= "OUTLINER_OT_selected_toggle"; + ot->description= "Toggle the Outliner selection of items"; + + /* callbacks */ + ot->exec= outliner_toggle_selected_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ +} + +/* ************************************************************** */ +/* Hotkey Only Operators */ + +/* Show Active --------------------------------------------------- */ + +static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *so= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= &ar->v2d; + + TreeElement *te; + int xdelta, ytop; + + // TODO: make this get this info from context instead... + if (OBACT == NULL) + return OPERATOR_CANCELLED; + + te= outliner_find_id(so, &so->tree, (ID *)OBACT); + if (te) { + /* make te->ys center of view */ + ytop= (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin)/2); + if (ytop>0) ytop= 0; + + v2d->cur.ymax= (float)ytop; + v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin)); + + /* make te->xs ==> te->xend center of view */ + xdelta = (int)(te->xs - v2d->cur.xmin); + v2d->cur.xmin += xdelta; + v2d->cur.xmax += xdelta; + + so->storeflag |= SO_TREESTORE_REDRAW; + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_active(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show Active"; + ot->idname= "OUTLINER_OT_show_active"; + ot->description= "Adjust the view so that the active Object is shown centered"; + + /* callbacks */ + ot->exec= outliner_show_active_exec; + ot->poll= ED_operator_outliner_active; +} + +/* View Panning --------------------------------------------------- */ + +static int outliner_scroll_page_exec(bContext *C, wmOperator *op) +{ + ARegion *ar= CTX_wm_region(C); + int dy= ar->v2d.mask.ymax - ar->v2d.mask.ymin; + int up= 0; + + if(RNA_boolean_get(op->ptr, "up")) + up= 1; + + if(up == 0) dy= -dy; + ar->v2d.cur.ymin+= dy; + ar->v2d.cur.ymax+= dy; + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_scroll_page(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Scroll Page"; + ot->idname= "OUTLINER_OT_scroll_page"; + ot->description= "Scroll page up or down"; + + /* callbacks */ + ot->exec= outliner_scroll_page_exec; + ot->poll= ED_operator_outliner_active; + + /* properties */ + RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page."); +} + +/* Search ------------------------------------------------------- */ +// TODO: probably obsolete now with filtering? + +#if 0 + +/* recursive helper for function below */ +static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeStoreElem *tselem= TREESTORE(te); + + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)(*starty); + *starty-= UI_UNIT_Y; + + if((tselem->flag & TSE_CLOSED)==0) { + TreeElement *ten; + for(ten= te->subtree.first; ten; ten= ten->next) { + outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty); + } + } + +} + +/* to retrieve coordinates with redrawing the entire tree */ +static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops) +{ + TreeElement *te; + int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y; + int startx= 0; + + for(te= soops->tree.first; te; te= te->next) { + outliner_set_coordinates_element(soops, te, startx, &starty); + } +} + +/* find next element that has this name */ +static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound) +{ + TreeElement *te, *tes; + + for (te= lb->first; te; te= te->next) { + int found = outliner_filter_has_name(te, name, flags); + + if(found) { + /* name is right, but is element the previous one? */ + if (prev) { + if ((te != prev) && (*prevFound)) + return te; + if (te == prev) { + *prevFound = 1; + } + } + else + return te; + } + + tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound); + if(tes) return tes; + } + + /* nothing valid found */ + return NULL; +} + +static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) +{ + ReportList *reports = NULL; // CTX_wm_reports(C); + TreeElement *te= NULL; + TreeElement *last_find; + TreeStoreElem *tselem; + int ytop, xdelta, prevFound=0; + char name[32]; + + /* get last found tree-element based on stored search_tse */ + last_find= outliner_find_tse(soops, &soops->search_tse); + + /* determine which type of search to do */ + if (again && last_find) { + /* no popup panel - previous + user wanted to search for next after previous */ + BLI_strncpy(name, soops->search_string, sizeof(name)); + flags= soops->search_flags; + + /* try to find matching element */ + te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); + if (te==NULL) { + /* no more matches after previous, start from beginning again */ + prevFound= 1; + te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); + } + } + else { + /* pop up panel - no previous, or user didn't want search after previous */ + strcpy(name, ""); +// XXX if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) { +// te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound); +// } +// else return; /* XXX RETURN! XXX */ + } + + /* do selection and reveal */ + if (te) { + tselem= TREESTORE(te); + if (tselem) { + /* expand branches so that it will be visible, we need to get correct coordinates */ + if( outliner_open_back(soops, te)) + outliner_set_coordinates(ar, soops); + + /* deselect all visible, and select found element */ + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + tselem->flag |= TSE_SELECTED; + + /* make te->ys center of view */ + ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/2); + if(ytop>0) ytop= 0; + ar->v2d.cur.ymax= (float)ytop; + ar->v2d.cur.ymin= (float)(ytop-(ar->v2d.mask.ymax-ar->v2d.mask.ymin)); + + /* make te->xs ==> te->xend center of view */ + xdelta = (int)(te->xs - ar->v2d.cur.xmin); + ar->v2d.cur.xmin += xdelta; + ar->v2d.cur.xmax += xdelta; + + /* store selection */ + soops->search_tse= *tselem; + + BLI_strncpy(soops->search_string, name, 33); + soops->search_flags= flags; + + /* redraw */ + soops->storeflag |= SO_TREESTORE_REDRAW; + } + } + else { + /* no tree-element found */ + BKE_report(reports, RPT_WARNING, "Not found: %s", name); + } +} +#endif + +/* Show One Level ----------------------------------------------- */ + +/* helper function for Show/Hide one level operator */ +static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + if(open) { + if(curlevel<=level) tselem->flag &= ~TSE_CLOSED; + } + else { + if(curlevel>=level) tselem->flag |= TSE_CLOSED; + } + + outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open); + } +} + +static int outliner_one_level_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + int add= RNA_boolean_get(op->ptr, "open"); + int level; + + level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1); + if(add==1) { + if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1); + } + else { + if(level==0) level= outliner_count_levels(soops, &soops->tree, 0); + if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0); + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_one_level(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show/Hide One Level"; + ot->idname= "OUTLINER_OT_show_one_level"; + ot->description= "Expand/collapse all entries by one level"; + + /* callbacks */ + ot->exec= outliner_one_level_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ + + /* properties */ + RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); +} + +/* Show Hierarchy ----------------------------------------------- */ + +/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/ +static int subtree_has_objects(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==ID_OB) return 1; + if( subtree_has_objects(soops, &te->subtree)) return 1; + } + return 0; +} + +/* recursive helper function for Show Hierarchy operator */ +static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + /* open all object elems, close others */ + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + if(tselem->type==0) { + if(te->idcode==ID_SCE) { + if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED; + else tselem->flag &= ~TSE_CLOSED; + } + else if(te->idcode==ID_OB) { + if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + } + } + else tselem->flag |= TSE_CLOSED; + + if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree); + } +} + +/* show entire object level hierarchy */ +static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + Scene *scene= CTX_data_scene(C); + + /* recursively open/close levels */ + tree_element_show_hierarchy(scene, soops, &soops->tree); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show Hierarchy"; + ot->idname= "OUTLINER_OT_show_hierarchy"; + ot->description= "Open all object entries and close all others"; + + /* callbacks */ + ot->exec= outliner_show_hierarchy_exec; + ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... + + /* no undo or registry, UI option */ +} + +/* ************************************************************** */ +/* ANIMATO OPERATIONS */ +/* KeyingSet and Driver Creation - Helper functions */ + +/* specialised poll callback for these operators to work in Datablocks view only */ +static int ed_operator_outliner_datablocks_active(bContext *C) +{ + ScrArea *sa= CTX_wm_area(C); + if ((sa) && (sa->spacetype==SPACE_OUTLINER)) { + SpaceOops *so= CTX_wm_space_outliner(C); + return (so->outlinevis == SO_DATABLOCKS); + } + return 0; +} + + +/* Helper func to extract an RNA path from selected tree element + * NOTE: the caller must zero-out all values of the pointers that it passes here first, as + * this function does not do that yet + */ +static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, + ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode)) +{ + ListBase hierarchy = {NULL, NULL}; + LinkData *ld; + TreeElement *tem, *temnext, *temsub; + TreeStoreElem *tse, *tsenext; + PointerRNA *ptr, *nextptr; + PropertyRNA *prop; + char *newpath=NULL; + + /* optimise tricks: + * - Don't do anything if the selected item is a 'struct', but arrays are allowed + */ + if (tselem->type == TSE_RNA_STRUCT) + return; + + /* Overview of Algorithm: + * 1. Go up the chain of parents until we find the 'root', taking note of the + * levels encountered in reverse-order (i.e. items are added to the start of the list + * for more convenient looping later) + * 2. Walk down the chain, adding from the first ID encountered + * (which will become the 'ID' for the KeyingSet Path), and build a + * path as we step through the chain + */ + + /* step 1: flatten out hierarchy of parents into a flat chain */ + for (tem= te->parent; tem; tem= tem->parent) { + ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()"); + ld->data= tem; + BLI_addhead(&hierarchy, ld); + } + + /* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */ + for (ld= hierarchy.first; ld; ld= ld->next) { + /* get data */ + tem= (TreeElement *)ld->data; + tse= TREESTORE(tem); + ptr= &tem->rnaptr; + prop= tem->directdata; + + /* check if we're looking for first ID, or appending to path */ + if (*id) { + /* just 'append' property to path + * - to prevent memory leaks, we must write to newpath not path, then free old path + swap them + */ + if(tse->type == TSE_RNA_PROPERTY) { + if(RNA_property_type(prop) == PROP_POINTER) { + /* for pointer we just append property name */ + newpath= RNA_path_append(*path, ptr, prop, 0, NULL); + } + else if(RNA_property_type(prop) == PROP_COLLECTION) { + char buf[128], *name; + + temnext= (TreeElement*)(ld->next->data); + tsenext= TREESTORE(temnext); + + nextptr= &temnext->rnaptr; + name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf)); + + if(name) { + /* if possible, use name as a key in the path */ + newpath= RNA_path_append(*path, NULL, prop, 0, name); + + if(name != buf) + MEM_freeN(name); + } + else { + /* otherwise use index */ + int index= 0; + + for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++) + if(temsub == temnext) + break; + + newpath= RNA_path_append(*path, NULL, prop, index, NULL); + } + + ld= ld->next; + } + } + + if(newpath) { + if (*path) MEM_freeN(*path); + *path= newpath; + newpath= NULL; + } + } + else { + /* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */ + if (tse->type == TSE_RNA_STRUCT) { + /* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */ + if(RNA_struct_is_ID(ptr->type)) { + *id= (ID *)ptr->data; + + /* clear path */ + if(*path) { + MEM_freeN(*path); + path= NULL; + } + } + } + } + } + + /* step 3: if we've got an ID, add the current item to the path */ + if (*id) { + /* add the active property to the path */ + ptr= &te->rnaptr; + prop= te->directdata; + + /* array checks */ + if (tselem->type == TSE_RNA_ARRAY_ELEM) { + /* item is part of an array, so must set the array_index */ + *array_index= te->index; + } + else if (RNA_property_array_length(ptr, prop)) { + /* entire array was selected, so keyframe all */ + *flag |= KSP_FLAG_WHOLE_ARRAY; + } + + /* path */ + newpath= RNA_path_append(*path, NULL, prop, 0, NULL); + if (*path) MEM_freeN(*path); + *path= newpath; + } + + /* free temp data */ + BLI_freelistN(&hierarchy); +} + +/* =============================================== */ +/* Driver Operations */ + +/* These operators are only available in databrowser mode for now, as + * they depend on having RNA paths and/or hierarchies available. + */ +enum { + DRIVERS_EDITMODE_ADD = 0, + DRIVERS_EDITMODE_REMOVE, +} /*eDrivers_EditModes*/; + +/* Utilities ---------------------------------- */ + +/* Recursively iterate over tree, finding and working on selected items */ +static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= tree->first; te; te=te->next) { + tselem= TREESTORE(te); + + /* if item is selected, perform operation */ + if (tselem->flag & TSE_SELECTED) { + ID *id= NULL; + char *path= NULL; + int array_index= 0; + short flag= 0; + short groupmode= KSP_GROUP_KSNAME; + + /* check if RNA-property described by this selected element is an animateable prop */ + if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { + /* get id + path + index info from the selected element */ + tree_element_to_path(soops, te, tselem, + &id, &path, &array_index, &flag, &groupmode); + } + + /* only if ID and path were set, should we perform any actions */ + if (id && path) { + short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; + int arraylen = 1; + + /* array checks */ + if (flag & KSP_FLAG_WHOLE_ARRAY) { + /* entire array was selected, so add drivers for all */ + arraylen= RNA_property_array_length(&te->rnaptr, te->directdata); + } + else + arraylen= array_index; + + /* we should do at least one step */ + if (arraylen == array_index) + arraylen++; + + /* for each array element we should affect, add driver */ + for (; array_index < arraylen; array_index++) { + /* action depends on mode */ + switch (mode) { + case DRIVERS_EDITMODE_ADD: + { + /* add a new driver with the information obtained (only if valid) */ + ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); + } + break; + case DRIVERS_EDITMODE_REMOVE: + { + /* remove driver matching the information obtained (only if valid) */ + ANIM_remove_driver(reports, id, path, array_index, dflags); + } + break; + } + } + + /* free path, since it had to be generated */ + MEM_freeN(path); + } + + + } + + /* go over sub-tree */ + if ((tselem->flag & TSE_CLOSED)==0) + do_outliner_drivers_editop(soops, &te->subtree, reports, mode); + } +} + +/* Add Operator ---------------------------------- */ + +static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); + + /* send notifiers */ + WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) +{ + /* api callbacks */ + ot->idname= "OUTLINER_OT_drivers_add_selected"; + ot->name= "Add Drivers for Selected"; + ot->description= "Add drivers to selected items"; + + /* api callbacks */ + ot->exec= outliner_drivers_addsel_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + + +/* Remove Operator ---------------------------------- */ + +static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); + + /* send notifiers */ + WM_event_add_notifier(C, ND_KEYS, NULL); // XXX + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_drivers_delete_selected"; + ot->name= "Delete Drivers for Selected"; + ot->description= "Delete drivers assigned to selected items"; + + /* api callbacks */ + ot->exec= outliner_drivers_deletesel_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* =============================================== */ +/* Keying Set Operations */ + +/* These operators are only available in databrowser mode for now, as + * they depend on having RNA paths and/or hierarchies available. + */ +enum { + KEYINGSET_EDITMODE_ADD = 0, + KEYINGSET_EDITMODE_REMOVE, +} /*eKeyingSet_EditModes*/; + +/* Utilities ---------------------------------- */ + +/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */ +// TODO: should this be an API func? +static KeyingSet *verify_active_keyingset(Scene *scene, short add) +{ + KeyingSet *ks= NULL; + + /* sanity check */ + if (scene == NULL) + return NULL; + + /* try to find one from scene */ + if (scene->active_keyingset > 0) + ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1); + + /* add if none found */ + // XXX the default settings have yet to evolve + if ((add) && (ks==NULL)) { + ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0); + scene->active_keyingset= BLI_countlist(&scene->keyingsets); + } + + return ks; +} + +/* Recursively iterate over tree, finding and working on selected items */ +static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= tree->first; te; te=te->next) { + tselem= TREESTORE(te); + + /* if item is selected, perform operation */ + if (tselem->flag & TSE_SELECTED) { + ID *id= NULL; + char *path= NULL; + int array_index= 0; + short flag= 0; + short groupmode= KSP_GROUP_KSNAME; + + /* check if RNA-property described by this selected element is an animateable prop */ + if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { + /* get id + path + index info from the selected element */ + tree_element_to_path(soops, te, tselem, + &id, &path, &array_index, &flag, &groupmode); + } + + /* only if ID and path were set, should we perform any actions */ + if (id && path) { + /* action depends on mode */ + switch (mode) { + case KEYINGSET_EDITMODE_ADD: + { + /* add a new path with the information obtained (only if valid) */ + // TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name + BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode); + ks->active_path= BLI_countlist(&ks->paths); + } + break; + case KEYINGSET_EDITMODE_REMOVE: + { + /* find the relevant path, then remove it from the KeyingSet */ + KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode); + + if (ksp) { + /* free path's data */ + BKE_keyingset_free_path(ks, ksp); + + ks->active_path= 0; + } + } + break; + } + + /* free path, since it had to be generated */ + MEM_freeN(path); + } + } + + /* go over sub-tree */ + if ((tselem->flag & TSE_CLOSED)==0) + do_outliner_keyingset_editop(soops, ks, &te->subtree, mode); + } +} + +/* Add Operator ---------------------------------- */ + +static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + KeyingSet *ks= verify_active_keyingset(scene, 1); + + /* check for invalid states */ + if (ks == NULL) { + BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set"); + return OPERATOR_CANCELLED; + } + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD); + + /* send notifiers */ + WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_keyingset_add_selected"; + ot->name= "Keying Set Add Selected"; + ot->description= "Add selected items (blue-grey rows) to active Keying Set"; + + /* api callbacks */ + ot->exec= outliner_keyingset_additems_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + + +/* Remove Operator ---------------------------------- */ + +static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + KeyingSet *ks= verify_active_keyingset(scene, 1); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE); + + /* send notifiers */ + WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_keyingset_remove_selected"; + ot->name= "Keying Set Remove Selected"; + ot->description = "Remove selected items (blue-grey rows) from active Keying Set"; + + /* api callbacks */ + ot->exec= outliner_keyingset_removeitems_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index b2717ab5c44..85bbbd4fffb 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -44,6 +44,8 @@ struct TreeStoreElem; struct bContext; struct Scene; struct ARegion; +struct ID; +struct Object; typedef struct TreeElement { struct TreeElement *next, *prev, *parent; @@ -107,29 +109,65 @@ typedef struct TreeElement { /* button events */ #define OL_NAMEBUTTON 1 +/* get TreeStoreElem associated with a TreeElement + * < a: (TreeElement) tree element to find stored element for + */ +#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL) -/* outliner_ops.c */ -void outliner_operatortypes(void); -void outliner_keymap(struct wmKeyConfig *keyconf); +/* size constants */ +#define OL_Y_OFFSET 2 -/* outliner_header.c */ -void outliner_header_buttons(const struct bContext *C, struct ARegion *ar); +#define OL_TOG_RESTRICT_VIEWX (UI_UNIT_X*3) +#define OL_TOG_RESTRICT_SELECTX (UI_UNIT_X*2) +#define OL_TOG_RESTRICT_RENDERX UI_UNIT_X + +#define OL_TOGW OL_TOG_RESTRICT_VIEWX + +#define OL_RNA_COLX (UI_UNIT_X*15) +#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) +#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) + + +/* outliner_tree.c ----------------------------------------------- */ + +void outliner_free_tree(ListBase *lb); + +TreeElement *outliner_find_tse(struct SpaceOops *soops, TreeStoreElem *tse); +TreeElement *outliner_find_id(struct SpaceOops *soops, ListBase *lb, struct ID *id); +struct ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode); + +void outliner_build_tree(struct Main *mainvar, struct Scene *scene, struct SpaceOops *soops); + +/* outliner_draw.c ---------------------------------------------- */ -/* outliner.c */ -void outliner_free_tree(struct ListBase *lb); -void outliner_select(struct SpaceOops *soops, struct ListBase *lb, int *index, short *selecting); void draw_outliner(const struct bContext *C); +/* outliner_select.c -------------------------------------------- */ + +void outliner_select(struct SpaceOops *soops, ListBase *lb, int *index, short *selecting); + +int tree_element_type_active(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set); +int tree_element_active(struct bContext *C, struct Scene *scene, SpaceOops *soops, TreeElement *te, int set); + +/* outliner_edit.c ---------------------------------------------- */ + +void outliner_do_object_operation(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, struct ListBase *lb, + void (*operation_cb)(struct bContext *C, struct Scene *scene, struct TreeElement *, struct TreeStoreElem *, TreeStoreElem *)); + +int common_restrict_check(struct bContext *C, struct Object *ob); + +int outliner_has_one_flag(struct SpaceOops *soops, ListBase *lb, short flag, short curlevel); +void outliner_set_flag(struct SpaceOops *soops, ListBase *lb, short flag, short set); + +void object_toggle_visibility_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void object_toggle_selectability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void object_toggle_renderability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); + +/* ...................................................... */ + void OUTLINER_OT_item_activate(struct wmOperatorType *ot); void OUTLINER_OT_item_openclose(struct wmOperatorType *ot); void OUTLINER_OT_item_rename(struct wmOperatorType *ot); -void OUTLINER_OT_operation(struct wmOperatorType *ot); -void OUTLINER_OT_object_operation(struct wmOperatorType *ot); -void OUTLINER_OT_group_operation(struct wmOperatorType *ot); -void OUTLINER_OT_id_operation(struct wmOperatorType *ot); -void OUTLINER_OT_data_operation(struct wmOperatorType *ot); -void OUTLINER_OT_animdata_operation(struct wmOperatorType *ot); -void OUTLINER_OT_action_set(struct wmOperatorType *ot); void OUTLINER_OT_show_one_level(struct wmOperatorType *ot); void OUTLINER_OT_show_active(struct wmOperatorType *ot); @@ -150,5 +188,23 @@ void OUTLINER_OT_keyingset_remove_selected(struct wmOperatorType *ot); void OUTLINER_OT_drivers_add_selected(struct wmOperatorType *ot); void OUTLINER_OT_drivers_delete_selected(struct wmOperatorType *ot); -#endif /* ED_OUTLINER_INTERN_H */ +/* outliner_tools.c ---------------------------------------------- */ + +void OUTLINER_OT_operation(struct wmOperatorType *ot); +void OUTLINER_OT_object_operation(struct wmOperatorType *ot); +void OUTLINER_OT_group_operation(struct wmOperatorType *ot); +void OUTLINER_OT_id_operation(struct wmOperatorType *ot); +void OUTLINER_OT_data_operation(struct wmOperatorType *ot); +void OUTLINER_OT_animdata_operation(struct wmOperatorType *ot); +void OUTLINER_OT_action_set(struct wmOperatorType *ot); + +/* ---------------------------------------------------------------- */ + +/* outliner_ops.c */ +void outliner_operatortypes(void); +void outliner_keymap(struct wmKeyConfig *keyconf); + +/* outliner_header.c */ +void outliner_header_buttons(const struct bContext *C, struct ARegion *ar); +#endif /* ED_OUTLINER_INTERN_H */ diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c new file mode 100644 index 00000000000..23873b1fde7 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -0,0 +1,865 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_select.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ +/* Outliner Selection (grey-blue highlight for rows) */ + +void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { + tselem= TREESTORE(te); + + /* if we've encountered the right item, set its 'Outliner' selection status */ + if (*index == 0) { + /* this should be the last one, so no need to do anything with index */ + if ((te->flag & TE_ICONROW)==0) { + /* -1 value means toggle testing for now... */ + if (*selecting == -1) { + if (tselem->flag & TSE_SELECTED) + *selecting= 0; + else + *selecting= 1; + } + + /* set selection */ + if (*selecting) + tselem->flag |= TSE_SELECTED; + else + tselem->flag &= ~TSE_SELECTED; + } + } + else if ((tselem->flag & TSE_CLOSED)==0) { + /* Only try selecting sub-elements if we haven't hit the right element yet + * + * Hack warning: + * Index must be reduced before supplying it to the sub-tree to try to do + * selection, however, we need to increment it again for the next loop to + * function correctly + */ + (*index)--; + outliner_select(soops, &te->subtree, index, selecting); + (*index)++; + } + } +} + +/* ****************************************************** */ +/* Outliner Element Selection/Activation on Click */ + +static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Scene *sce; + + /* paranoia check */ + if(te->idcode!=ID_SCE) + return 0; + sce= (Scene *)tselem->id; + + if(set) { + sce->r.actlay= tselem->nr; + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce); + } + else { + return sce->r.actlay==tselem->nr; + } + return 0; +} + +static int tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeStoreElem *tselem= TREESTORE(te); + Scene *sce; + Base *base; + Object *ob= NULL; + + /* if id is not object, we search back */ + if(te->idcode==ID_OB) ob= (Object *)tselem->id; + else { + ob= (Object *)outliner_search_back(soops, te, ID_OB); + if(ob==OBACT) return 0; + } + if(ob==NULL) return 0; + + sce= (Scene *)outliner_search_back(soops, te, ID_SCE); + if(sce && scene != sce) { + ED_screen_set_scene(C, sce); + } + + /* find associated base in current scene */ + base= object_in_scene(ob, scene); + + if(base) { + if(set==2) { + /* swap select */ + if(base->flag & SELECT) + ED_base_object_select(base, BA_DESELECT); + else + ED_base_object_select(base, BA_SELECT); + } + else { + /* deleselect all */ + scene_deselect_all(scene); + ED_base_object_select(base, BA_SELECT); + } + if(C) { + ED_base_object_activate(C, base); /* adds notifier */ + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + } + + if(ob!=scene->obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + return 1; +} + +static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tes; + Object *ob; + + /* we search for the object parent */ + ob= (Object *)outliner_search_back(soops, te, ID_OB); + // note: ob->matbits can be NULL when a local object points to a library mesh. + if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia + + /* searching in ob mat array? */ + tes= te->parent; + if(tes->idcode==ID_OB) { + if(set) { + ob->actcol= te->index+1; + ob->matbits[te->index]= 1; // make ob material active too + ob->colbits |= (1<index); + } + else { + if(ob->actcol == te->index+1) + if(ob->matbits[te->index]) return 1; + } + } + /* or we search for obdata material */ + else { + if(set) { + ob->actcol= te->index+1; + ob->matbits[te->index]= 0; // make obdata material active too + ob->colbits &= ~(1<index); + } + else { + if(ob->actcol == te->index+1) + if(ob->matbits[te->index]==0) return 1; + } + } + if(set) { + WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); + } + return 0; +} + +static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tep; + TreeStoreElem /* *tselem,*/ *tselemp; + Object *ob=OBACT; + SpaceButs *sbuts=NULL; + + if(ob==NULL) return 0; // no active object + + /*tselem= TREESTORE(te);*/ /*UNUSED*/ + + /* find buttons area (note, this is undefined really still, needs recode in blender) */ + /* XXX removed finding sbuts */ + + /* where is texture linked to? */ + tep= te->parent; + tselemp= TREESTORE(tep); + + if(tep->idcode==ID_WO) { + World *wrld= (World *)tselemp->id; + + if(set) { + if(sbuts) { + // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 1; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + wrld->texact= te->index; + } + else if(tselemp->id == (ID *)(scene->world)) { + if(wrld->texact==te->index) return 1; + } + } + else if(tep->idcode==ID_LA) { + Lamp *la= (Lamp *)tselemp->id; + if(set) { + if(sbuts) { + // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 2; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + la->texact= te->index; + } + else { + if(tselemp->id == ob->data) { + if(la->texact==te->index) return 1; + } + } + } + else if(tep->idcode==ID_MA) { + Material *ma= (Material *)tselemp->id; + if(set) { + if(sbuts) { + //sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 0; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + ma->texact= (char)te->index; + + /* also set active material */ + ob->actcol= tep->index+1; + } + else if(tep->flag & TE_ACTIVE) { // this is active material + if(ma->texact==te->index) return 1; + } + } + + if(set) + WM_event_add_notifier(C, NC_TEXTURE, NULL); + + return 0; +} + + +static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + Object *ob; + + /* we search for the object parent */ + ob= (Object *)outliner_search_back(soops, te, ID_OB); + if(ob==NULL || ob!=OBACT) return 0; // just paranoia + + if(set) { +// XXX extern_set_butspace(F5KEY, 0); + } + else return 1; + + return 0; +} + +static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + Object *ob= (Object *)outliner_search_back(soops, te, ID_OB); + + if(set) + return 0; + + return scene->camera == ob; +} + +static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tep; + TreeStoreElem *tselem=NULL; + Scene *sce=NULL; + + tep= te->parent; + if(tep) { + tselem= TREESTORE(tep); + sce= (Scene *)tselem->id; + } + + if(set) { // make new scene active + if(sce && scene != sce) { + ED_screen_set_scene(C, sce); + } + } + + if(tep==NULL || tselem->id == (ID *)scene) { + if(set) { +// XXX extern_set_butspace(F8KEY, 0); + } + else { + return 1; + } + } + return 0; +} + +static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob; + + /* id in tselem is object */ + ob= (Object *)tselem->id; + if(set) { + ob->actdef= te->index+1; + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); + } + else { + if(ob==OBACT) + if(ob->actdef== te->index+1) return 1; + } + return 0; +} + +static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + + if(set) { + if (ob->pose) { + ob->pose->active_group= te->index+1; + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + } + } + else { + if(ob==OBACT && ob->pose) { + if (ob->pose->active_group== te->index+1) return 1; + } + } + return 0; +} + +static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + bArmature *arm= ob->data; + bPoseChannel *pchan= te->directdata; + + if(set) { + if(!(pchan->bone->flag & BONE_HIDDEN_P)) { + + if(set==2) ED_pose_deselectall(ob, 2); // 2 = clear active tag + else ED_pose_deselectall(ob, 0); // 0 = deselect + + if(set==2 && (pchan->bone->flag & BONE_SELECTED)) { + pchan->bone->flag &= ~BONE_SELECTED; + } else { + pchan->bone->flag |= BONE_SELECTED; + arm->act_bone= pchan->bone; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob); + + } + } + else { + if(ob==OBACT && ob->pose) { + if (pchan->bone->flag & BONE_SELECTED) return 1; + } + } + return 0; +} + +static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + bArmature *arm= (bArmature *)tselem->id; + Bone *bone= te->directdata; + + if(set) { + if(!(bone->flag & BONE_HIDDEN_P)) { + if(set==2) ED_pose_deselectall(OBACT, 2); // 2 is clear active tag + else ED_pose_deselectall(OBACT, 0); + + if(set==2 && (bone->flag & BONE_SELECTED)) { + bone->flag &= ~BONE_SELECTED; + } else { + bone->flag |= BONE_SELECTED; + arm->act_bone= bone; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT); + } + } + else { + Object *ob= OBACT; + + if(ob && ob->data==arm) { + if (bone->flag & BONE_SELECTED) return 1; + } + } + return 0; +} + + +/* ebones only draw in editmode armature */ +static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel) +{ + if(sel) { + ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL; + arm->act_edbone= ebone; + // flush to parent? + if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL; + } + else { + ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); + // flush to parent? + if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit); +} +static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + bArmature *arm= scene->obedit->data; + EditBone *ebone= te->directdata; + + if(set==1) { + if(!(ebone->flag & BONE_HIDDEN_A)) { + ED_armature_deselect_all(scene->obedit, 0); // deselect + tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); + return 1; + } + } + else if (set==2) { + if(!(ebone->flag & BONE_HIDDEN_A)) { + if(!(ebone->flag & BONE_SELECTED)) { + tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); + return 1; + } + else { + /* entirely selected, so de-select */ + tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE); + return 0; + } + } + } + else if (ebone->flag & BONE_SELECTED) { + return 1; + } + return 0; +} + +static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + +// XXX extern_set_butspace(F9KEY, 0); + } + + return 0; +} + +static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); + +// XXX extern_set_butspace(F7KEY, 0); + } + + return 0; +} + +static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); +// XXX extern_set_butspace(F7KEY, 0); + } + + return 0; +} + +static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set)) +{ + // XXX removed + return 0; +} + +static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + Base *base= object_in_scene(ob, scene); + + if(set) { + if(scene->obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + if(ob->mode & OB_MODE_POSE) + ED_armature_exit_posemode(C, base); + else + ED_armature_enter_posemode(C, base); + } + else { + if(ob->mode & OB_MODE_POSE) return 1; + } + return 0; +} + +static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + Sequence *seq= (Sequence*) te->directdata; + + if(set) { +// XXX select_single_seq(seq, 1); + } + else { + if(seq->flag & SELECT) + return(1); + } + return(0); +} + +static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + Sequence *seq, *p; + Editing *ed= seq_give_editing(scene, FALSE); + + seq= (Sequence*)te->directdata; + if(set==0) { + if(seq->flag & SELECT) + return(1); + return(0); + } + +// XXX select_single_seq(seq, 1); + p= ed->seqbasep->first; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + +// if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) +// XXX select_single_seq(p, 0); + p= p->next; + } + return(0); +} + +static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + wmKeyMapItem *kmi= te->directdata; + + if(set==0) { + if(kmi->flag & KMI_INACTIVE) return 0; + return 1; + } + else { + kmi->flag ^= KMI_INACTIVE; + } + return 0; +} + +/* ---------------------------------------------- */ + +/* generic call for ID data check or make/check active in UI */ +int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + + switch(te->idcode) { + case ID_OB: + return tree_element_set_active_object(C, scene, soops, te, set); + case ID_MA: + return tree_element_active_material(C, scene, soops, te, set); + case ID_WO: + return tree_element_active_world(C, scene, soops, te, set); + case ID_LA: + return tree_element_active_lamp(C, scene, soops, te, set); + case ID_TE: + return tree_element_active_texture(C, scene, soops, te, set); + case ID_TXT: + return tree_element_active_text(C, scene, soops, te, set); + case ID_CA: + return tree_element_active_camera(C, scene, soops, te, set); + } + return 0; +} + +/* generic call for non-id data to make/check active in UI */ +/* Context can be NULL when set==0 */ +int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set) +{ + switch(tselem->type) { + case TSE_DEFGROUP: + return tree_element_active_defgroup(C, scene, te, tselem, set); + case TSE_BONE: + return tree_element_active_bone(C, scene, te, tselem, set); + case TSE_EBONE: + return tree_element_active_ebone(C, scene, te, tselem, set); + case TSE_MODIFIER: + return tree_element_active_modifier(C, te, tselem, set); + case TSE_LINKED_OB: + if(set) tree_element_set_active_object(C, scene, soops, te, set); + else if(tselem->id==(ID *)OBACT) return 1; + break; + case TSE_LINKED_PSYS: + return tree_element_active_psys(C, scene, te, tselem, set); + case TSE_POSE_BASE: + return tree_element_active_pose(C, scene, te, tselem, set); + case TSE_POSE_CHANNEL: + return tree_element_active_posechannel(C, scene, te, tselem, set); + case TSE_CONSTRAINT: + return tree_element_active_constraint(C, te, tselem, set); + case TSE_R_LAYER: + return tree_element_active_renderlayer(C, te, tselem, set); + case TSE_POSEGRP: + return tree_element_active_posegroup(C, scene, te, tselem, set); + case TSE_SEQUENCE: + return tree_element_active_sequence(te, tselem, set); + case TSE_SEQUENCE_DUP: + return tree_element_active_sequence_dup(scene, te, tselem, set); + case TSE_KEYMAP_ITEM: + return tree_element_active_keymap_item(C, te, tselem, set); + + } + return 0; +} + +/* ================================================ */ + +static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2]) +{ + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + int openclose= 0; + + /* open close icon */ + if((te->flag & TE_ICONROW)==0) { // hidden icon, no open/close + if( mval[0]>te->xs && mval[0]xs+UI_UNIT_X) + openclose= 1; + } + + if(openclose) { + /* all below close/open? */ + if(extend) { + tselem->flag &= ~TSE_CLOSED; + outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); + } + else { + if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + + } + + return 1; + } + /* name and first icon */ + else if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { + + /* always makes active object */ + if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP) + tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0)); + + if(tselem->type==0) { // the lib blocks + /* editmode? */ + if(te->idcode==ID_SCE) { + if(scene!=(Scene *)tselem->id) { + ED_screen_set_scene(C, (Scene *)tselem->id); + } + } + else if(te->idcode==ID_GR) { + Group *gr= (Group *)tselem->id; + GroupObject *gob; + + if(extend) { + int sel= BA_SELECT; + for(gob= gr->gobject.first; gob; gob= gob->next) { + if(gob->ob->flag & SELECT) { + sel= BA_DESELECT; + break; + } + } + + for(gob= gr->gobject.first; gob; gob= gob->next) { + ED_base_object_select(object_in_scene(gob->ob, scene), sel); + } + } + else { + scene_deselect_all(scene); + + for(gob= gr->gobject.first; gob; gob= gob->next) { + if((gob->ob->flag & SELECT) == 0) + ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); + } + } + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) { + WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); + } else { // rest of types + tree_element_active(C, scene, soops, te, 1); + } + + } + else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0)); + + return 1; + } + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1; + } + return 0; +} + +/* event can enterkey, then it opens/closes */ +static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) +{ + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + int extend= RNA_boolean_get(op->ptr, "extend"); + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX) + return OPERATOR_CANCELLED; + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break; + } + + if(te) { + ED_undo_push(C, "Outliner click event"); + } + else { + short selecting= -1; + int row; + + /* get row number - 100 here is just a dummy value since we don't need the column */ + UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, + fmval[0], fmval[1], NULL, &row); + + /* select relevant row */ + outliner_select(soops, &soops->tree, &row, &selecting); + + soops->storeflag |= SO_TREESTORE_REDRAW; + + ED_undo_push(C, "Outliner selection event"); + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_item_activate(wmOperatorType *ot) +{ + ot->name= "Activate Item"; + ot->idname= "OUTLINER_OT_item_activate"; + ot->description= "Handle mouse clicks to activate/select items"; + + ot->invoke= outliner_item_activate; + + ot->poll= ED_operator_outliner_active; + + RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation."); +} + +/* ****************************************************** */ diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c new file mode 100644 index 00000000000..891c18bcd8a --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -0,0 +1,1139 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_tools.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ + +/* ************ SELECTION OPERATIONS ********* */ + +static void set_operation_types(SpaceOops *soops, ListBase *lb, + int *scenelevel, + int *objectlevel, + int *idlevel, + int *datalevel) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type) { + if(*datalevel==0) + *datalevel= tselem->type; + else if(*datalevel!=tselem->type) + *datalevel= -1; + } + else { + int idcode= GS(tselem->id->name); + switch(idcode) { + case ID_SCE: + *scenelevel= 1; + break; + case ID_OB: + *objectlevel= 1; + break; + + case ID_ME: case ID_CU: case ID_MB: case ID_LT: + case ID_LA: case ID_AR: case ID_CA: + case ID_MA: case ID_TE: case ID_IP: case ID_IM: + case ID_SO: case ID_KE: case ID_WO: case ID_AC: + case ID_NLA: case ID_TXT: case ID_GR: + if(*idlevel==0) *idlevel= idcode; + else if(*idlevel!=idcode) *idlevel= -1; + break; + } + } + } + if((tselem->flag & TSE_CLOSED)==0) { + set_operation_types(soops, &te->subtree, + scenelevel, objectlevel, idlevel, datalevel); + } + } +} + +static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + /* just set action to NULL */ + BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL); +} + +static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + Material **matar=NULL; + int a, totcol=0; + + if( GS(tsep->id->name)==ID_OB) { + Object *ob= (Object *)tsep->id; + totcol= ob->totcol; + matar= ob->mat; + } + else if( GS(tsep->id->name)==ID_ME) { + Mesh *me= (Mesh *)tsep->id; + totcol= me->totcol; + matar= me->mat; + } + else if( GS(tsep->id->name)==ID_CU) { + Curve *cu= (Curve *)tsep->id; + totcol= cu->totcol; + matar= cu->mat; + } + else if( GS(tsep->id->name)==ID_MB) { + MetaBall *mb= (MetaBall *)tsep->id; + totcol= mb->totcol; + matar= mb->mat; + } + + for(a=0; aindex && matar[a]) { + matar[a]->id.us--; + matar[a]= NULL; + } + } +} + +static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + MTex **mtex= NULL; + int a; + + if( GS(tsep->id->name)==ID_MA) { + Material *ma= (Material *)tsep->id; + mtex= ma->mtex; + } + else if( GS(tsep->id->name)==ID_LA) { + Lamp *la= (Lamp *)tsep->id; + mtex= la->mtex; + } + else if( GS(tsep->id->name)==ID_WO) { + World *wrld= (World *)tsep->id; + mtex= wrld->mtex; + } + else return; + + for(a=0; aindex && mtex[a]) { + if(mtex[a]->tex) { + mtex[a]->tex->id.us--; + mtex[a]->tex= NULL; + } + } + } +} + +static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + + if(tsep) { + if( GS(tsep->id->name)==ID_OB) { + Object *ob= (Object *)tsep->id; + ob->dup_group= NULL; + } + } + else { + unlink_group(group); + } +} + +static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, + void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==0) { + TreeStoreElem *tsep= TREESTORE(te->parent); + operation_cb(C, scene, te, tsep, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb); + } + } +} + +/* */ + +static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) { + base->flag |= SELECT; + base->object->flag |= SELECT; + } +} + +static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->flag &= ~SELECT; + base->object->flag &= ~SELECT; + } +} + +static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) + base= object_in_scene((Object *)tselem->id, scene); + if(base) { + // check also library later + if(scene->obedit==base->object) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); + te->directdata= NULL; + tselem->id= NULL; + } + +} + +static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { + tselem->id->lib= NULL; + tselem->id->flag= LIB_LOCAL; + new_id(NULL, tselem->id, NULL); + } +} + + +static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if (id) { + IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; + PointerRNA ptr = {{0}}; + PropertyRNA *prop; + + RNA_pointer_create(&iat->id, &RNA_AnimData, iat->adt, &ptr); + prop = RNA_struct_find_property(&ptr, "action"); + + id_single_user(C, id, &ptr, prop); + } +} + +static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + GroupObject *gob; + Base *base; + + for(gob=group->gobject.first; gob; gob=gob->next) { + base= object_in_scene(gob->ob, scene); + if (base) { + base->object->flag |= SELECT; + base->flag |= SELECT; + } else { + /* link to scene */ + base= MEM_callocN( sizeof(Base), "add_base"); + BLI_addhead(&scene->base, base); + base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */ + gob->ob->flag |= SELECT; + base->flag = gob->ob->flag; + base->object= gob->ob; + id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */ + } + } +} + +void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, + void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==0 && te->idcode==ID_OB) { + // when objects selected in other scenes... dunno if that should be allowed + Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE); + if(scene_owner && scene_act != scene_owner) { + ED_screen_set_scene(C, scene_owner); + } + /* important to use 'scene_owner' not scene_act else deleting objects can crash. + * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the + * outliner isnt showing scenes: Visible Layer draw mode for eg. */ + operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb); + } + } +} + +/* ******************************************** */ + +static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + /* just set action to NULL */ + BKE_animdata_set_action(NULL, tselem->id, NULL); +} + +static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + + /* just free drivers - stored as a list of F-Curves */ + free_fcurves(&iat->adt->drivers); +} + +static void refreshdrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + FCurve *fcu; + + /* loop over drivers, performing refresh (i.e. check graph_buttons.c and rna_fcurve.c for details) */ + for (fcu = iat->adt->drivers.first; fcu; fcu= fcu->next) { + fcu->flag &= ~FCURVE_DISABLED; + + if (fcu->driver) + fcu->driver->flag &= ~DRIVER_FLAG_INVALID; + } +} + +/* --------------------------------- */ + +static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + bPoseChannel *pchan= (bPoseChannel *)te->directdata; + + if(event==1) + pchan->bone->flag |= BONE_SELECTED; + else if(event==2) + pchan->bone->flag &= ~BONE_SELECTED; + else if(event==3) { + pchan->bone->flag |= BONE_HIDDEN_P; + pchan->bone->flag &= ~BONE_SELECTED; + } + else if(event==4) + pchan->bone->flag &= ~BONE_HIDDEN_P; +} + +static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + Bone *bone= (Bone *)te->directdata; + + if(event==1) + bone->flag |= BONE_SELECTED; + else if(event==2) + bone->flag &= ~BONE_SELECTED; + else if(event==3) { + bone->flag |= BONE_HIDDEN_P; + bone->flag &= ~BONE_SELECTED; + } + else if(event==4) + bone->flag &= ~BONE_HIDDEN_P; +} + +static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + EditBone *ebone= (EditBone *)te->directdata; + + if(event==1) + ebone->flag |= BONE_SELECTED; + else if(event==2) + ebone->flag &= ~BONE_SELECTED; + else if(event==3) { + ebone->flag |= BONE_HIDDEN_A; + ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; + } + else if(event==4) + ebone->flag &= ~BONE_HIDDEN_A; +} + +static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem)) +{ +// Sequence *seq= (Sequence*) te->directdata; + if(event==1) { +// XXX select_single_seq(seq, 1); + } +} + +static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, + void (*operation_cb)(int, TreeElement *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==type) { + operation_cb(event, te, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb); + } + } +} + +/* **************************************** */ + +static EnumPropertyItem prop_object_op_types[] = { + {1, "SELECT", 0, "Select", ""}, + {2, "DESELECT", 0, "Deselect", ""}, + {4, "DELETE", 0, "Delete", ""}, + {6, "TOGVIS", 0, "Toggle Visible", ""}, + {7, "TOGSEL", 0, "Toggle Selectable", ""}, + {8, "TOGREN", 0, "Toggle Renderable", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_object_operation_exec(bContext *C, wmOperator *op) +{ + Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int event; + const char *str= NULL; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + + if(event==1) { + Scene *sce= scene; // to be able to delete, scenes are set... + outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb); + if(scene != sce) { + ED_screen_set_scene(C, sce); + } + + str= "Select Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==2) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb); + str= "Deselect Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==4) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); + DAG_scene_sort(bmain, scene); + str= "Delete Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); + } + else if(event==5) { /* disabled, see above enum (ton) */ + outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb); + str= "Localized Objects"; + } + else if(event==6) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); + str= "Toggle Visibility"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); + } + else if(event==7) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); + str= "Toggle Selectability"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==8) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); + str= "Toggle Renderability"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); + } + + ED_undo_push(C, str); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_object_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Object Operation"; + ot->idname= "OUTLINER_OT_object_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_object_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", ""); +} + +/* **************************************** */ + +static EnumPropertyItem prop_group_op_types[] = { + {1, "UNLINK", 0, "Unlink", ""}, + {2, "LOCAL", 0, "Make Local", ""}, + {3, "LINK", 0, "Link Group Objects to Scene", ""}, + {4, "TOGVIS", 0, "Toggle Visible", ""}, + {5, "TOGSEL", 0, "Toggle Selectable", ""}, + {6, "TOGREN", 0, "Toggle Renderable", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_group_operation_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + + if(event==1) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); + ED_undo_push(C, "Unlink group"); + } + else if(event==2) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); + ED_undo_push(C, "Localized Data"); + } + else if(event==3) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); + ED_undo_push(C, "Link Group Objects to Scene"); + } + + + WM_event_add_notifier(C, NC_GROUP, NULL); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_group_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Group Operation"; + ot->idname= "OUTLINER_OT_group_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_group_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", ""); +} + +/* **************************************** */ + +typedef enum eOutlinerIdOpTypes { + OUTLINER_IDOP_INVALID = 0, + OUTLINER_IDOP_UNLINK, + OUTLINER_IDOP_LOCAL, + OUTLINER_IDOP_SINGLE +} eOutlinerIdOpTypes; + +// TODO: implement support for changing the ID-block used +static EnumPropertyItem prop_id_op_types[] = { + {OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""}, + {OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""}, + {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_id_operation_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + eOutlinerIdOpTypes event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + event= RNA_enum_get(op->ptr, "type"); + + switch (event) { + case OUTLINER_IDOP_UNLINK: + { + /* unlink datablock from its parent */ + switch (idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + case ID_MA: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink material"); + break; + case ID_TE: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink texture"); + break; + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } + } + break; + + case OUTLINER_IDOP_LOCAL: + { + /* make local */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); + ED_undo_push(C, "Localized Data"); + } + break; + + case OUTLINER_IDOP_SINGLE: + { + /* make single user */ + switch (idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, singleuser_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Single-User Action"); + break; + + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } + } + break; + + default: + // invalid - unhandled + break; + } + + /* wrong notifier still... */ + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + + // XXX: this is just so that outliner is always up to date + WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_id_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner ID data Operation"; + ot->idname= "OUTLINER_OT_id_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_id_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", ""); +} + +/* **************************************** */ + +static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *lb, ID *newid, + void (*operation_cb)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_SELECTED) { + if(tselem->type==type) { + TreeStoreElem *tsep = TREESTORE(te->parent); + operation_cb(te, tselem, tsep, newid); + } + } + if ((tselem->flag & TSE_CLOSED)==0) { + outliner_do_id_set_operation(soops, type, &te->subtree, newid, operation_cb); + } + } +} + +/* ------------------------------------------ */ + +static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) +{ + bAction *act = (bAction *)actId; + + if (tselem->type == TSE_ANIM_DATA) { + /* "animation" entries - action is child of this */ + BKE_animdata_set_action(NULL, tselem->id, act); + } + /* TODO: if any other "expander" channels which own actions need to support this menu, + * add: tselem->type = ... + */ + else if (tsep && (tsep->type == TSE_ANIM_DATA)) { + /* "animation" entries case again */ + BKE_animdata_set_action(NULL, tsep->id, act); + } + // TODO: other cases not supported yet +} + +static int outliner_action_set_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + + bAction *act; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + /* get action to use */ + act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action")); + + if (act == NULL) { + BKE_report(op->reports, RPT_ERROR, "No valid Action to add."); + return OPERATOR_CANCELLED; + } + else if (act->idroot == 0) { + /* hopefully in this case (i.e. library of userless actions), the user knows what they're doing... */ + BKE_reportf(op->reports, RPT_WARNING, + "Action '%s' does not specify what datablocks it can be used on. Try setting the 'ID Root Type' setting from the Datablocks Editor for this Action to avoid future problems", + act->id.name+2); + } + + /* perform action if valid channel */ + if (datalevel == TSE_ANIM_DATA) + outliner_do_id_set_operation(soops, datalevel, &soops->tree, (ID*)act, actionset_id_cb); + else if (idlevel == ID_AC) + outliner_do_id_set_operation(soops, idlevel, &soops->tree, (ID*)act, actionset_id_cb); + else + return OPERATOR_CANCELLED; + + /* set notifier that things have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Set action"); + + /* done */ + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_action_set(wmOperatorType *ot) +{ + PropertyRNA *prop; + + /* identifiers */ + ot->name= "Outliner Set Action"; + ot->idname= "OUTLINER_OT_action_set"; + ot->description= "Change the active action used"; + + /* api callbacks */ + ot->invoke= WM_enum_search_invoke; + ot->exec= outliner_action_set_exec; + ot->poll= ED_operator_outliner_active; + + /* flags */ + ot->flag= 0; + + /* props */ + // TODO: this would be nicer as an ID-pointer... + prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", ""); + RNA_def_enum_funcs(prop, RNA_action_itemf); + ot->prop= prop; +} + +/* **************************************** */ + +typedef enum eOutliner_AnimDataOps { + OUTLINER_ANIMOP_INVALID = 0, + + OUTLINER_ANIMOP_SET_ACT, + OUTLINER_ANIMOP_CLEAR_ACT, + + OUTLINER_ANIMOP_REFRESH_DRV, + OUTLINER_ANIMOP_CLEAR_DRV + + //OUTLINER_ANIMOP_COPY_DRIVERS, + //OUTLINER_ANIMOP_PASTE_DRIVERS +} eOutliner_AnimDataOps; + +static EnumPropertyItem prop_animdata_op_types[] = { + {OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""}, + {OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""}, + {OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""}, + //{OUTLINER_ANIMOP_COPY_DRIVERS, "COPY_DRIVERS", 0, "Copy Drivers", ""}, + //{OUTLINER_ANIMOP_PASTE_DRIVERS, "PASTE_DRIVERS", 0, "Paste Drivers", ""}, + {OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + eOutliner_AnimDataOps event; + short updateDeps = 0; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if (datalevel != TSE_ANIM_DATA) + return OPERATOR_CANCELLED; + + /* perform the core operation */ + switch (event) { + case OUTLINER_ANIMOP_SET_ACT: + /* delegate once again... */ + WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL); + break; + + case OUTLINER_ANIMOP_CLEAR_ACT: + /* clear active action - using standard rules */ + outliner_do_data_operation(soops, datalevel, event, &soops->tree, unlinkact_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + + case OUTLINER_ANIMOP_REFRESH_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + //ED_undo_push(C, "Refresh Drivers"); /* no undo needed - shouldn't have any impact? */ + updateDeps = 1; + break; + + case OUTLINER_ANIMOP_CLEAR_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, cleardrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + ED_undo_push(C, "Clear Drivers"); + updateDeps = 1; + break; + + default: // invalid + break; + } + + /* update dependencies */ + if (updateDeps) { + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + + /* rebuild depsgraph for the new deps */ + DAG_scene_sort(bmain, scene); + + /* force an update of depsgraph */ + DAG_ids_flush_update(bmain, 0); + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_animdata_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Animation Data Operation"; + ot->idname= "OUTLINER_OT_animdata_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_animdata_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_animdata_op_types, 0, "Animation Operation", ""); +} + +/* **************************************** */ + +static EnumPropertyItem prop_data_op_types[] = { + {1, "SELECT", 0, "Select", ""}, + {2, "DESELECT", 0, "Deselect", ""}, + {3, "HIDE", 0, "Hide", ""}, + {4, "UNHIDE", 0, "Unhide", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_data_operation_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + int event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if(datalevel==TSE_POSE_CHANNEL) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "PoseChannel operation"); + } + } + else if(datalevel==TSE_BONE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "Bone operation"); + } + } + else if(datalevel==TSE_EBONE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "EditBone operation"); + } + } + else if(datalevel==TSE_SEQUENCE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb); + } + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_data_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Data Operation"; + ot->idname= "OUTLINER_OT_data_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_data_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", ""); +} + + +/* ******************** */ + + +static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2]) +{ + ReportList *reports = CTX_wm_reports(C); // XXX... + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + TreeStoreElem *tselem= TREESTORE(te); + + /* select object that's clicked on and popup context menu */ + if (!(tselem->flag & TSE_SELECTED)) { + + if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) ) + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + + tselem->flag |= TSE_SELECTED; + /* redraw, same as outliner_select function */ + soops->storeflag |= SO_TREESTORE_REDRAW; + ED_region_tag_redraw(ar); + } + + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if(scenelevel) { + //if(objectlevel || datalevel || idlevel) error("Mixed selection"); + //else pupmenu("Scene Operations%t|Delete"); + } + else if(objectlevel) { + WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + else if(idlevel) { + if(idlevel==-1 || datalevel) BKE_report(reports, RPT_WARNING, "Mixed selection"); + else { + if (idlevel==ID_GR) + WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL); + else + WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + } + else if(datalevel) { + if(datalevel==-1) BKE_report(reports, RPT_WARNING, "Mixed selection"); + else { + if (datalevel == TSE_ANIM_DATA) + WM_operator_name_call(C, "OUTLINER_OT_animdata_operation", WM_OP_INVOKE_REGION_WIN, NULL); + else if (datalevel == TSE_DRIVER_BASE) + /* do nothing... no special ops needed yet */; + else + WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + } + + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) + return 1; + } + return 0; +} + + +static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event) +{ + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break; + } + + return OPERATOR_FINISHED; +} + +/* Menu only! Calls other operators */ +void OUTLINER_OT_operation(wmOperatorType *ot) +{ + ot->name= "Execute Operation"; + ot->idname= "OUTLINER_OT_operation"; + ot->description= "Context menu for item operations"; + + ot->invoke= outliner_operation; + + ot->poll= ED_operator_outliner_active; +} + +/* ****************************************************** */ diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c new file mode 100644 index 00000000000..bb42a0b7e2d --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -0,0 +1,1533 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_tree.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "outliner_intern.h" + +/* ********************************************************* */ +/* Defines */ + +#define TS_CHUNK 128 + +/* ********************************************************* */ +/* Persistant Data */ + +static void outliner_storage_cleanup(SpaceOops *soops) +{ + TreeStore *ts= soops->treestore; + + if(ts) { + TreeStoreElem *tselem; + int a, unused= 0; + + /* each element used once, for ID blocks with more users to have each a treestore */ + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) tselem->used= 0; + + /* cleanup only after reading file or undo step, and always for + * RNA datablocks view in order to save memory */ + if(soops->storeflag & SO_TREESTORE_CLEANUP) { + + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { + if(tselem->id==NULL) unused++; + } + + if(unused) { + if(ts->usedelem == unused) { + MEM_freeN(ts->data); + ts->data= NULL; + ts->usedelem= ts->totelem= 0; + } + else { + TreeStoreElem *tsnewar, *tsnew; + + tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem"); + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { + if(tselem->id) { + *tsnew= *tselem; + tsnew++; + } + } + MEM_freeN(ts->data); + ts->data= tsnewar; + ts->usedelem-= unused; + ts->totelem= ts->usedelem; + } + } + } + } +} + +static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr) +{ + TreeStore *ts; + TreeStoreElem *tselem; + int a; + + /* case 1; no TreeStore */ + if(soops->treestore==NULL) { + soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore"); + } + ts= soops->treestore; + + /* check if 'te' is in treestore */ + tselem= ts->data; + for(a=0; ausedelem; a++, tselem++) { + if(tselem->id==id && tselem->used==0) { + if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) { + te->store_index= a; + tselem->used= 1; + return; + } + } + } + + /* add 1 element to treestore */ + if(ts->usedelem==ts->totelem) { + TreeStoreElem *tsnew; + + tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data"); + if(ts->data) { + memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem)); + MEM_freeN(ts->data); + } + ts->data= tsnew; + ts->totelem+= TS_CHUNK; + } + + tselem= ts->data+ts->usedelem; + + tselem->type= type; + if(type) tselem->nr= nr; // we're picky! :) + else tselem->nr= 0; + tselem->id= id; + tselem->used = 0; + tselem->flag= TSE_CLOSED; + te->store_index= ts->usedelem; + + ts->usedelem++; +} + +/* ********************************************************* */ +/* Tree Management */ + +void outliner_free_tree(ListBase *lb) +{ + while(lb->first) { + TreeElement *te= lb->first; + + outliner_free_tree(&te->subtree); + BLI_remlink(lb, te); + + if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); + MEM_freeN(te); + } +} + +/* Find ith item from the treestore */ +TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) +{ + TreeElement *te= lb->first, *tes; + while(te) { + if(te->store_index==store_index) return te; + tes= outliner_find_tree_element(&te->subtree, store_index); + if(tes) return tes; + te= te->next; + } + return NULL; +} + +/* tse is not in the treestore, we use its contents to find a match */ +TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse) +{ + TreeStore *ts= soops->treestore; + TreeStoreElem *tselem; + int a; + + if(tse->id==NULL) return NULL; + + /* check if 'tse' is in treestore */ + tselem= ts->data; + for(a=0; ausedelem; a++, tselem++) { + if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) { + if(tselem->id==tse->id) { + break; + } + } + } + if(tselem) + return outliner_find_tree_element(&soops->tree, a); + + return NULL; +} + +/* Find treestore that refers to given ID */ +TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id) +{ + TreeElement *te, *tes; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->type==0) { + if(tselem->id==id) return te; + /* only deeper on scene or object */ + if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) { + tes= outliner_find_id(soops, &te->subtree, id); + if(tes) return tes; + } + } + } + return NULL; +} + + +ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) +{ + TreeStoreElem *tselem; + te= te->parent; + + while(te) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==idcode) return tselem->id; + te= te->parent; + } + return NULL; +} + + +/* ********************************************************* */ + +/* Prototype, see functions below */ +static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, + TreeElement *parent, short type, short index); + +#define LOG2I(x) (int)(log(x)/M_LN2) + +static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) +{ + TreeStoreElem *tselem = NULL; + TreeElement *te = NULL; + + /* log stuff is to convert bitflags (powers of 2) to small integers, + * in order to not overflow short tselem->nr */ + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED)); + te->name= "Combined"; + te->directdata= &srl->passflag; + + /* save cpu cycles, but we add the first to invoke an open/close triangle */ + tselem = TREESTORE(tenla); + if(tselem->flag & TSE_CLOSED) + return; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z)); + te->name= "Z"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR)); + te->name= "Vector"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL)); + te->name= "Normal"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV)); + te->name= "UV"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST)); + te->name= "Mist"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB)); + te->name= "Index Object"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); + te->name= "Index Material"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); + te->name= "Color"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE)); + te->name= "Diffuse"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC)); + te->name= "Specular"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW)); + te->name= "Shadow"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO)); + te->name= "AO"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT)); + te->name= "Reflection"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT)); + te->name= "Refraction"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT)); + te->name= "Indirect"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT)); + te->name= "Environment"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT)); + te->name= "Emit"; + te->directdata= &srl->passflag; +} + +#undef LOG2I + +/* special handling of hierarchical non-lib data */ +static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, + TreeElement *parent, int *a) +{ + TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); + + (*a)++; + te->name= curBone->name; + te->directdata= curBone; + + for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { + outliner_add_bone(soops, &te->subtree, id, curBone, te, a); + } +} + +static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) +{ + SceneRenderLayer *srl; + TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0); + int a; + + tenla->name= "RenderLayers"; + for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) { + TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a); + tenlay->name= srl->name; + tenlay->directdata= &srl->passflag; + + if(srl->light_override) + outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0); + if(srl->mat_override) + outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0); + + outliner_add_passes(soops, tenlay, &sce->id, srl); + } + + // TODO: move this to the front? + if (sce->adt) + outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, lb, sce->world, te, 0, 0); +} + +// TODO: this function needs to be split up! It's getting a bit too large... +static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, + TreeElement *parent, short type, short index) +{ + TreeElement *te; + TreeStoreElem *tselem; + ID *id= idv; + int a = 0; + + if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { + id= ((PointerRNA*)idv)->id.data; + if(!id) id= ((PointerRNA*)idv)->data; + } + + if(id==NULL) return NULL; + + te= MEM_callocN(sizeof(TreeElement), "tree elem"); + /* add to the visual tree */ + BLI_addtail(lb, te); + /* add to the storage */ + check_persistant(soops, te, id, type, index); + tselem= TREESTORE(te); + + te->parent= parent; + te->index= index; // for data arays + if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)); + else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)); + else if(type==TSE_ANIM_DATA); + else { + te->name= id->name+2; // default, can be overridden by Library or non-ID data + te->idcode= GS(id->name); + } + + if(type==0) { + /* tuck pointer back in object, to construct hierarchy */ + if(GS(id->name)==ID_OB) id->newid= (ID *)te; + + /* expand specific data always */ + switch(GS(id->name)) { + case ID_LI: + te->name= ((Library *)id)->name; + break; + case ID_SCE: + outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); + break; + case ID_OB: + { + Object *ob= (Object *)id; + + if (ob->adt) + outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); + outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this + + if(ob->proxy && ob->id.lib==NULL) + outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); + + outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); + + if(ob->pose) { + bArmature *arm= ob->data; + bPoseChannel *pchan; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); + + tenla->name= "Pose"; + + if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) { // channels undefined in editmode, but we want the 'tenla' pose icon itself + int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ + + for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); + ten->name= pchan->name; + ten->directdata= pchan; + pchan->prev= (bPoseChannel *)ten; + + if(pchan->constraints.first) { + //Object *target; + bConstraint *con; + TreeElement *ten1; + TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); + //char *str; + + tenla1->name= "Constraints"; + for(con= pchan->constraints.first; con; con= con->next, const_index++) { + ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); +#if 0 /* disabled as it needs to be reworked for recoded constraints system */ + target= get_constraint_target(con, &str); + if(str && str[0]) ten1->name= str; + else if(target) ten1->name= target->id.name+2; + else ten1->name= con->name; +#endif + ten1->name= con->name; + ten1->directdata= con; + /* possible add all other types links? */ + } + } + } + /* make hierarchy */ + ten= tenla->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + tselem= TREESTORE(ten); + if(tselem->type==TSE_POSE_CHANNEL) { + pchan= (bPoseChannel *)ten->directdata; + if(pchan->parent) { + BLI_remlink(&tenla->subtree, ten); + par= (TreeElement *)pchan->parent->prev; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + } + ten= nten; + } + /* restore prev pointers */ + pchan= ob->pose->chanbase.first; + if(pchan) pchan->prev= NULL; + for(; pchan; pchan= pchan->next) { + if(pchan->next) pchan->next->prev= pchan; + } + } + + /* Pose Groups */ + if(ob->pose->agroups.first) { + bActionGroup *agrp; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); + int a= 0; + + tenla->name= "Bone Groups"; + for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); + ten->name= agrp->name; + ten->directdata= agrp; + } + } + } + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); + + if(ob->constraints.first) { + //Object *target; + bConstraint *con; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); + int a= 0; + //char *str; + + tenla->name= "Constraints"; + for(con= ob->constraints.first; con; con= con->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); +#if 0 /* disabled due to constraints system targets recode... code here needs review */ + target= get_constraint_target(con, &str); + if(str && str[0]) ten->name= str; + else if(target) ten->name= target->id.name+2; + else ten->name= con->name; +#endif + ten->name= con->name; + ten->directdata= con; + /* possible add all other types links? */ + } + } + + if(ob->modifiers.first) { + ModifierData *md; + TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); + int index; + + temod->name = "Modifiers"; + for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { + TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); + te->name= md->name; + te->directdata = md; + + if (md->type==eModifierType_Lattice) { + outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Curve) { + outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Armature) { + outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Hook) { + outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_ParticleSystem) { + TreeElement *ten; + ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; + + ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); + ten->directdata = psys; + ten->name = psys->part->id.name+2; + } + } + } + if(ob->defbase.first) { + bDeformGroup *defgroup; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); + int a= 0; + + tenla->name= "Vertex Groups"; + for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); + ten->name= defgroup->name; + ten->directdata= defgroup; + } + } + + if(ob->dup_group) + outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); + + } + break; + case ID_ME: + { + Mesh *me= (Mesh *)id; + + if (me->adt) + outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); + /* could do tfaces with image links, but the images are not grouped nicely. + would require going over all tfaces, sort images in use. etc... */ + } + break; + case ID_CU: + { + Curve *cu= (Curve *)id; + + if (cu->adt) + outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); + } + break; + case ID_MB: + { + MetaBall *mb= (MetaBall *)id; + + if (mb->adt) + outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); + } + break; + case ID_MA: + { + Material *ma= (Material *)id; + + if (ma->adt) + outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); + } + } + break; + case ID_TE: + { + Tex *tex= (Tex *)id; + + if (tex->adt) + outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); + } + break; + case ID_CA: + { + Camera *ca= (Camera *)id; + + if (ca->adt) + outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); + } + break; + case ID_LA: + { + Lamp *la= (Lamp *)id; + + if (la->adt) + outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); + } + } + break; + case ID_WO: + { + World *wrld= (World *)id; + + if (wrld->adt) + outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); + } + } + break; + case ID_KE: + { + Key *key= (Key *)id; + + if (key->adt) + outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); + } + break; + case ID_AC: + { + // XXX do we want to be exposing the F-Curves here? + //bAction *act= (bAction *)id; + } + break; + case ID_AR: + { + bArmature *arm= (bArmature *)id; + int a= 0; + + if (arm->adt) + outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); + + if(arm->edbo) { + EditBone *ebone; + TreeElement *ten; + + for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { + ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); + ten->directdata= ebone; + ten->name= ebone->name; + ebone->temp= ten; + } + /* make hierarchy */ + ten= te->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + ebone= (EditBone *)ten->directdata; + if(ebone->parent) { + BLI_remlink(&te->subtree, ten); + par= ebone->parent->temp; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + ten= nten; + } + } + else { + /* do not extend Armature when we have posemode */ + tselem= TREESTORE(te->parent); + if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE); + else { + Bone *curBone; + for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ + outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); + } + } + } + } + break; + } + } + else if(type==TSE_ANIM_DATA) { + IdAdtTemplate *iat = (IdAdtTemplate *)idv; + AnimData *adt= (AnimData *)iat->adt; + + /* this element's info */ + te->name= "Animation"; + te->directdata= adt; + + /* Action */ + outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0); + + /* Drivers */ + if (adt->drivers.first) { + TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); + ID *lastadded= NULL; + FCurve *fcu; + + ted->name= "Drivers"; + + for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { + if (fcu->driver && fcu->driver->variables.first) { + ChannelDriver *driver= fcu->driver; + DriverVar *dvar; + + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* loop over all targets used here */ + DRIVER_TARGETS_USED_LOOPER(dvar) + { + if (lastadded != dtar->id) { + // XXX this lastadded check is rather lame, and also fails quite badly... + outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); + lastadded= dtar->id; + } + } + DRIVER_TARGETS_LOOPER_END + } + } + } + } + + /* NLA Data */ + if (adt->nla_tracks.first) { + TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0); + NlaTrack *nlt; + int a= 0; + + tenla->name= "NLA Tracks"; + + for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) { + TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a); + NlaStrip *strip; + TreeElement *ten; + int b= 0; + + tenlt->name= nlt->name; + + for (strip=nlt->strips.first; strip; strip=strip->next, b++) { + ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b); + if(ten) ten->directdata= strip; + } + } + } + } + else if(type==TSE_SEQUENCE) { + Sequence *seq= (Sequence*) idv; + Sequence *p; + + /* + * The idcode is a little hack, but the outliner + * only check te->idcode if te->type is equal to zero, + * so this is "safe". + */ + te->idcode= seq->type; + te->directdata= seq; + + if(seq->type<7) { + /* + * This work like the sequence. + * If the sequence have a name (not default name) + * show it, in other case put the filename. + */ + if(strcmp(seq->name, "SQ")) + te->name= seq->name; + else { + if((seq->strip) && (seq->strip->stripdata)) + te->name= seq->strip->stripdata->name; + else + te->name= "SQ None"; + } + + if(seq->type==SEQ_META) { + te->name= "Meta Strip"; + p= seq->seqbase.first; + while(p) { + outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); + p= p->next; + } + } + else + outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index); + } + else + te->name= "Effect"; + } + else if(type==TSE_SEQ_STRIP) { + Strip *strip= (Strip *)idv; + + if(strip->dir) + te->name= strip->dir; + else + te->name= "Strip None"; + te->directdata= strip; + } + else if(type==TSE_SEQUENCE_DUP) { + Sequence *seq= (Sequence*)idv; + + te->idcode= seq->type; + te->directdata= seq; + te->name= seq->strip->stripdata->name; + } + else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { + PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv; + PropertyRNA *prop, *iterprop; + PropertyType proptype; + int a, tot; + + /* we do lazy build, for speed and to avoid infinite recusion */ + + if(ptr->data == NULL) { + te->name= "(empty)"; + } + else if(type == TSE_RNA_STRUCT) { + /* struct */ + te->name= RNA_struct_name_get_alloc(ptr, NULL, 0); + + if(te->name) + te->flag |= TE_FREE_NAME; + else + te->name= (char*)RNA_struct_ui_name(ptr->type); + + iterprop= RNA_struct_iterator_property(ptr->type); + tot= RNA_property_collection_length(ptr, iterprop); + + /* auto open these cases */ + if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) + if(!tselem->used) + tselem->flag &= ~TSE_CLOSED; + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)ptr, te, TSE_RNA_PROPERTY, a); + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + + te->rnaptr= *ptr; + } + else if(type == TSE_RNA_PROPERTY) { + /* property */ + iterprop= RNA_struct_iterator_property(ptr->type); + RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr); + + prop= propptr.data; + proptype= RNA_property_type(prop); + + te->name= (char*)RNA_property_ui_name(prop); + te->directdata= prop; + te->rnaptr= *ptr; + + if(proptype == PROP_POINTER) { + pptr= RNA_property_pointer_get(ptr, prop); + + if(pptr.data) { + if(!(tselem->flag & TSE_CLOSED)) + outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); + else + te->flag |= TE_LAZY_CLOSED; + } + } + else if(proptype == PROP_COLLECTION) { + tot= RNA_property_collection_length(ptr, prop); + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, a); + } + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + } + else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) { + tot= RNA_property_array_length(ptr, prop); + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a); + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + } + } + else if(type == TSE_RNA_ARRAY_ELEM) { + char c; + + prop= parent->directdata; + + te->directdata= prop; + te->rnaptr= *ptr; + te->index= index; + + c= RNA_property_array_item_char(prop, index); + + te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName"); + if(c) sprintf((char *)te->name, " %c", c); + else sprintf((char *)te->name, " %d", index+1); + te->flag |= TE_FREE_NAME; + } + } + else if(type == TSE_KEYMAP) { + wmKeyMap *km= (wmKeyMap *)idv; + wmKeyMapItem *kmi; + char opname[OP_MAX_TYPENAME]; + + te->directdata= idv; + te->name= km->idname; + + if(!(tselem->flag & TSE_CLOSED)) { + a= 0; + + for (kmi= km->items.first; kmi; kmi= kmi->next, a++) { + const char *key= WM_key_event_string(kmi->type); + + if(key[0]) { + wmOperatorType *ot= NULL; + + if(kmi->propvalue); + else ot= WM_operatortype_find(kmi->idname, 0); + + if(ot || kmi->propvalue) { + TreeElement *ten= outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a); + + ten->directdata= kmi; + + if(kmi->propvalue) { + ten->name= "Modal map, not yet"; + } + else { + WM_operator_py_idname(opname, ot->idname); + ten->name= BLI_strdup(opname); + ten->flag |= TE_FREE_NAME; + } + } + } + } + } + else + te->flag |= TE_LAZY_CLOSED; + } + + return te; +} + +/* ======================================================= */ +/* Sequencer mode tree building */ + +/* Helped function to put duplicate sequence in the same tree. */ +static int need_add_seq_dup(Sequence *seq) +{ + Sequence *p; + + if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name)) + return(1); + + /* + * First check backward, if we found a duplicate + * sequence before this, don't need it, just return. + */ + p= seq->prev; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->prev; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + return(2); + p= p->prev; + } + + p= seq->next; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + return(0); + p= p->next; + } + return(1); +} + +static void outliner_add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index) +{ + TreeElement *ch; + Sequence *p; + + p= seq; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); + p= p->next; + } +} + +/* ======================================================= */ +/* Generic Tree Building helpers - order these are called is top to bottom */ + +/* Hierarchy --------------------------------------------- */ + +/* make sure elements are correctly nested */ +static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te, *ten, *tep; + TreeStoreElem *tselem; + + /* build hierarchy */ + // XXX also, set extents here... + te= lb->first; + while(te) { + ten= te->next; + tselem= TREESTORE(te); + + if(tselem->type==0 && te->idcode==ID_OB) { + Object *ob= (Object *)tselem->id; + if(ob->parent && ob->parent->id.newid) { + BLI_remlink(lb, te); + tep= (TreeElement *)ob->parent->id.newid; + BLI_addtail(&tep->subtree, te); + // set correct parent pointers + for(te=tep->subtree.first; te; te= te->next) te->parent= tep; + } + } + te= ten; + } +} + +/* Sorting ------------------------------------------------------ */ + +typedef struct tTreeSort { + TreeElement *te; + ID *id; + const char *name; + short idcode; +} tTreeSort; + +/* alphabetical comparator */ +static int treesort_alpha(const void *v1, const void *v2) +{ + const tTreeSort *x1= v1, *x2= v2; + int comp; + + /* first put objects last (hierarchy) */ + comp= (x1->idcode==ID_OB); + if(x2->idcode==ID_OB) comp+=2; + + if(comp==1) return 1; + else if(comp==2) return -1; + else if(comp==3) { + comp= strcmp(x1->name, x2->name); + + if( comp>0 ) return 1; + else if( comp<0) return -1; + return 0; + } + return 0; +} + +/* this is nice option for later? doesnt look too useful... */ +#if 0 +static int treesort_obtype_alpha(const void *v1, const void *v2) +{ + const tTreeSort *x1= v1, *x2= v2; + + /* first put objects last (hierarchy) */ + if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1; + else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1; + else { + /* 2nd we check ob type */ + if(x1->idcode==ID_OB && x2->idcode==ID_OB) { + if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1; + else if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1; + else return 0; + } + else { + int comp= strcmp(x1->name, x2->name); + + if( comp>0 ) return 1; + else if( comp<0) return -1; + return 0; + } + } +} +#endif + +/* sort happens on each subtree individual */ +static void outliner_sort(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + int totelem=0; + + te= lb->last; + if(te==NULL) return; + tselem= TREESTORE(te); + + /* sorting rules; only object lists or deformgroups */ + if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) { + + /* count first */ + for(te= lb->first; te; te= te->next) totelem++; + + if(totelem>1) { + tTreeSort *tear= MEM_mallocN(totelem*sizeof(tTreeSort), "tree sort array"); + tTreeSort *tp=tear; + int skip= 0; + + for(te= lb->first; te; te= te->next, tp++) { + tselem= TREESTORE(te); + tp->te= te; + tp->name= te->name; + tp->idcode= te->idcode; + if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0; // dont sort this + tp->id= tselem->id; + } + /* keep beginning of list */ + for(tp= tear, skip=0; skipidcode) break; + + if(skipfirst=lb->last= NULL; + tp= tear; + while(totelem--) { + BLI_addtail(lb, tp->te); + tp++; + } + MEM_freeN(tear); + } + } + + for(te= lb->first; te; te= te->next) { + outliner_sort(soops, &te->subtree); + } +} + +/* Filtering ----------------------------------------------- */ + +static int outliner_filter_has_name(TreeElement *te, const char *name, int flags) +{ +#if 0 + int found= 0; + + /* determine if match */ + if (flags & SO_FIND_CASE_SENSITIVE) { + if (flags & SO_FIND_COMPLETE) + found= strcmp(te->name, name) == 0; + else + found= strstr(te->name, name) != NULL; + } + else { + if (flags & SO_FIND_COMPLETE) + found= BLI_strcasecmp(te->name, name) == 0; + else + found= BLI_strcasestr(te->name, name) != NULL; + } +#else + + int fn_flag= 0; + int found= 0; + + if ((flags & SO_FIND_CASE_SENSITIVE) == 0) + fn_flag |= FNM_CASEFOLD; + + if (flags & SO_FIND_COMPLETE) { + found= fnmatch(name, te->name, fn_flag)==0; + } + else { + char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2]; + sprintf(fn_name, "*%s*", name); + found= fnmatch(fn_name, te->name, fn_flag)==0; + } + return found; +#endif +} + +static int outliner_filter_tree(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te, *ten; + TreeStoreElem *tselem; + + /* although we don't have any search string, we return TRUE + * since the entire tree is ok then... + */ + if (soops->search_string[0]==0) + return 1; + + for (te= lb->first; te; te= ten) { + ten= te->next; + + if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) { + /* item isn't something we're looking for, but... + * - if the subtree is expanded, check if there are any matches that can be easily found + * so that searching for "cu" in the default scene will still match the Cube + * - otherwise, we can't see within the subtree and the item doesn't match, + * so these can be safely ignored (i.e. the subtree can get freed) + */ + tselem= TREESTORE(te); + + if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { + outliner_free_tree(&te->subtree); + BLI_remlink(lb, te); + + if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); + MEM_freeN(te); + } + } + else { + /* filter subtree too */ + outliner_filter_tree(soops, &te->subtree); + } + } + + /* if there are still items in the list, that means that there were still some matches */ + return (lb->first != NULL); +} + +/* ======================================================= */ +/* Main Tree Building API */ + +/* Main entry point for building the tree data-structure that the outliner represents */ +// TODO: split each mode into its own function? +void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) +{ + Base *base; + Object *ob; + TreeElement *te=NULL, *ten; + TreeStoreElem *tselem; + int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */ + + if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW)) + return; + + outliner_free_tree(&soops->tree); + outliner_storage_cleanup(soops); + + /* clear ob id.new flags */ + for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL; + + /* options */ + if(soops->outlinevis == SO_LIBRARIES) { + Library *lib; + + for(lib= mainvar->library.first; lib; lib= lib->id.next) { + ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0); + lib->id.newid= (ID *)ten; + } + /* make hierarchy */ + ten= soops->tree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + tselem= TREESTORE(ten); + lib= (Library *)tselem->id; + if(lib->parent) { + BLI_remlink(&soops->tree, ten); + par= (TreeElement *)lib->parent->id.newid; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + ten= nten; + } + /* restore newid pointers */ + for(lib= mainvar->library.first; lib; lib= lib->id.next) + lib->id.newid= NULL; + + } + else if(soops->outlinevis == SO_ALL_SCENES) { + Scene *sce; + for(sce= mainvar->scene.first; sce; sce= sce->id.next) { + te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0); + tselem= TREESTORE(te); + if(sce==scene && show_opened) + tselem->flag &= ~TSE_CLOSED; + + for(base= sce->base.first; base; base= base->next) { + ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0); + ten->directdata= base; + } + outliner_make_hierarchy(soops, &te->subtree); + /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ + for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL; + } + } + else if(soops->outlinevis == SO_CUR_SCENE) { + + outliner_add_scene_contents(soops, &soops->tree, scene, NULL); + + for(base= scene->base.first; base; base= base->next) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis == SO_VISIBLE) { + for(base= scene->base.first; base; base= base->next) { + if(base->lay & scene->lay) + outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis == SO_GROUPS) { + Group *group; + GroupObject *go; + + for(group= mainvar->group.first; group; group= group->id.next) { + if(group->gobject.first) { + te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0); + + for(go= group->gobject.first; go; go= go->next) { + ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0); + ten->directdata= NULL; /* eh, why? */ + } + outliner_make_hierarchy(soops, &te->subtree); + /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ + for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL; + } + } + } + else if(soops->outlinevis == SO_SAME_TYPE) { + Object *ob= OBACT; + if(ob) { + for(base= scene->base.first; base; base= base->next) { + if(base->object->type==ob->type) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + } + outliner_make_hierarchy(soops, &soops->tree); + } + } + else if(soops->outlinevis == SO_SELECTED) { + for(base= scene->base.first; base; base= base->next) { + if(base->lay & scene->lay) { + if(base==BASACT || (base->flag & SELECT)) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + } + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis==SO_SEQUENCE) { + Sequence *seq; + Editing *ed= seq_give_editing(scene, FALSE); + int op; + + if(ed==NULL) + return; + + seq= ed->seqbasep->first; + if(!seq) + return; + + while(seq) { + op= need_add_seq_dup(seq); + if(op==1) + ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0); + else if(op==0) { + ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0); + outliner_add_seq_dup(soops, seq, ten, 0); + } + seq= seq->next; + } + } + else if(soops->outlinevis==SO_DATABLOCKS) { + PointerRNA mainptr; + + RNA_main_pointer_create(mainvar, &mainptr); + + ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1); + + if(show_opened) { + tselem= TREESTORE(ten); + tselem->flag &= ~TSE_CLOSED; + } + } + else if(soops->outlinevis==SO_USERDEF) { + PointerRNA userdefptr; + + RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); + + ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); + + if(show_opened) { + tselem= TREESTORE(ten); + tselem->flag &= ~TSE_CLOSED; + } + } + else if(soops->outlinevis==SO_KEYMAP) { + wmWindowManager *wm= mainvar->wm.first; + wmKeyMap *km; + + for(km= wm->defaultconf->keymaps.first; km; km= km->next) { + ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0); + } + } + else { + ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0); + if(ten) ten->directdata= BASACT; + } + + outliner_sort(soops, &soops->tree); + outliner_filter_tree(soops, &soops->tree); +} + + -- cgit v1.2.3 From de69b6819d9542663e649b577c4e5670bd1aa21e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 11 Jul 2011 13:36:38 +0000 Subject: Further Outliner code cleanup - Split out tree building stuff for ID blocks and Objects from add_element These two chunks were significantly large that they really needed to be placed into their own functions to allow for easier source navigation. --- .../blender/editors/space_outliner/outliner_tree.c | 719 +++++++++++---------- 1 file changed, 374 insertions(+), 345 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index bb42a0b7e2d..12d1865e28c 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -299,6 +299,25 @@ ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, TreeElement *parent, short type, short index); +/* -------------------------------------------------------- */ + +/* special handling of hierarchical non-lib data */ +static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, + TreeElement *parent, int *a) +{ + TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); + + (*a)++; + te->name= curBone->name; + te->directdata= curBone; + + for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { + outliner_add_bone(soops, &te->subtree, id, curBone, te, a); + } +} + +/* -------------------------------------------------------- */ + #define LOG2I(x) (int)(log(x)/M_LN2) static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) @@ -389,21 +408,6 @@ static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, Sc #undef LOG2I -/* special handling of hierarchical non-lib data */ -static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, - TreeElement *parent, int *a) -{ - TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); - - (*a)++; - te->name= curBone->name; - te->directdata= curBone; - - for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { - outliner_add_bone(soops, &te->subtree, id, curBone, te, a); - } -} - static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) { SceneRenderLayer *srl; @@ -431,371 +435,396 @@ static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *s outliner_add_element(soops, lb, sce->world, te, 0, 0); } -// TODO: this function needs to be split up! It's getting a bit too large... -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index) +// can be inlined if necessary +static void outliner_add_object_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, Object *ob) { - TreeElement *te; - TreeStoreElem *tselem; - ID *id= idv; int a = 0; - if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - id= ((PointerRNA*)idv)->id.data; - if(!id) id= ((PointerRNA*)idv)->data; - } - - if(id==NULL) return NULL; - - te= MEM_callocN(sizeof(TreeElement), "tree elem"); - /* add to the visual tree */ - BLI_addtail(lb, te); - /* add to the storage */ - check_persistant(soops, te, id, type, index); - tselem= TREESTORE(te); + if (ob->adt) + outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); - te->parent= parent; - te->index= index; // for data arays - if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)); - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)); - else if(type==TSE_ANIM_DATA); - else { - te->name= id->name+2; // default, can be overridden by Library or non-ID data - te->idcode= GS(id->name); - } + outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this - if(type==0) { - /* tuck pointer back in object, to construct hierarchy */ - if(GS(id->name)==ID_OB) id->newid= (ID *)te; + if (ob->proxy && ob->id.lib==NULL) + outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); + + outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); + + if (ob->pose) { + bArmature *arm= ob->data; + bPoseChannel *pchan; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); - /* expand specific data always */ - switch(GS(id->name)) { - case ID_LI: - te->name= ((Library *)id)->name; - break; - case ID_SCE: - outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); - break; - case ID_OB: - { - Object *ob= (Object *)id; - - if (ob->adt) - outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this - - if(ob->proxy && ob->id.lib==NULL) - outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); - - outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); - - if(ob->pose) { - bArmature *arm= ob->data; - bPoseChannel *pchan; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); - - tenla->name= "Pose"; - - if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) { // channels undefined in editmode, but we want the 'tenla' pose icon itself - int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ - - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); - ten->name= pchan->name; - ten->directdata= pchan; - pchan->prev= (bPoseChannel *)ten; - - if(pchan->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten1; - TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); - //char *str; - - tenla1->name= "Constraints"; - for(con= pchan->constraints.first; con; con= con->next, const_index++) { - ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); -#if 0 /* disabled as it needs to be reworked for recoded constraints system */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten1->name= str; - else if(target) ten1->name= target->id.name+2; - else ten1->name= con->name; -#endif - ten1->name= con->name; - ten1->directdata= con; - /* possible add all other types links? */ - } - } - } - /* make hierarchy */ - ten= tenla->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - if(tselem->type==TSE_POSE_CHANNEL) { - pchan= (bPoseChannel *)ten->directdata; - if(pchan->parent) { - BLI_remlink(&tenla->subtree, ten); - par= (TreeElement *)pchan->parent->prev; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - } - ten= nten; - } - /* restore prev pointers */ - pchan= ob->pose->chanbase.first; - if(pchan) pchan->prev= NULL; - for(; pchan; pchan= pchan->next) { - if(pchan->next) pchan->next->prev= pchan; - } - } - - /* Pose Groups */ - if(ob->pose->agroups.first) { - bActionGroup *agrp; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); - int a= 0; - - tenla->name= "Bone Groups"; - for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); - ten->name= agrp->name; - ten->directdata= agrp; - } - } - } - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); + tenla->name= "Pose"; + + /* channels undefined in editmode, but we want the 'tenla' pose icon itself */ + if ((arm->edbo == NULL) && (ob->mode & OB_MODE_POSE)) { + int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ + + for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); + ten->name= pchan->name; + ten->directdata= pchan; + pchan->prev= (bPoseChannel *)ten; - if(ob->constraints.first) { + if(pchan->constraints.first) { //Object *target; bConstraint *con; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); - int a= 0; + TreeElement *ten1; + TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); //char *str; - tenla->name= "Constraints"; - for(con= ob->constraints.first; con; con= con->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); -#if 0 /* disabled due to constraints system targets recode... code here needs review */ + tenla1->name= "Constraints"; + for(con= pchan->constraints.first; con; con= con->next, const_index++) { + ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); +#if 0 /* disabled as it needs to be reworked for recoded constraints system */ target= get_constraint_target(con, &str); - if(str && str[0]) ten->name= str; - else if(target) ten->name= target->id.name+2; - else ten->name= con->name; + if(str && str[0]) ten1->name= str; + else if(target) ten1->name= target->id.name+2; + else ten1->name= con->name; #endif - ten->name= con->name; - ten->directdata= con; + ten1->name= con->name; + ten1->directdata= con; /* possible add all other types links? */ } } - - if(ob->modifiers.first) { - ModifierData *md; - TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); - int index; - - temod->name = "Modifiers"; - for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { - TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); - te->name= md->name; - te->directdata = md; - - if (md->type==eModifierType_Lattice) { - outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } - else if (md->type==eModifierType_Curve) { - outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } - else if (md->type==eModifierType_Armature) { - outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } - else if (md->type==eModifierType_Hook) { - outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } - else if (md->type==eModifierType_ParticleSystem) { - TreeElement *ten; - ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; - - ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); - ten->directdata = psys; - ten->name = psys->part->id.name+2; - } - } - } - if(ob->defbase.first) { - bDeformGroup *defgroup; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); - int a= 0; - - tenla->name= "Vertex Groups"; - for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); - ten->name= defgroup->name; - ten->directdata= defgroup; + } + /* make hierarchy */ + ten= tenla->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + tselem= TREESTORE(ten); + if(tselem->type==TSE_POSE_CHANNEL) { + pchan= (bPoseChannel *)ten->directdata; + if(pchan->parent) { + BLI_remlink(&tenla->subtree, ten); + par= (TreeElement *)pchan->parent->prev; + BLI_addtail(&par->subtree, ten); + ten->parent= par; } } - - if(ob->dup_group) - outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); - - } - break; - case ID_ME: - { - Mesh *me= (Mesh *)id; - - if (me->adt) - outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); - /* could do tfaces with image links, but the images are not grouped nicely. - would require going over all tfaces, sort images in use. etc... */ + ten= nten; } - break; - case ID_CU: - { - Curve *cu= (Curve *)id; - - if (cu->adt) - outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); + /* restore prev pointers */ + pchan= ob->pose->chanbase.first; + if(pchan) pchan->prev= NULL; + for(; pchan; pchan= pchan->next) { + if(pchan->next) pchan->next->prev= pchan; } - break; - case ID_MB: - { - MetaBall *mb= (MetaBall *)id; - - if (mb->adt) - outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); + } + + /* Pose Groups */ + if(ob->pose->agroups.first) { + bActionGroup *agrp; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); + int a= 0; + + tenla->name= "Bone Groups"; + for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); + ten->name= agrp->name; + ten->directdata= agrp; } - break; - case ID_MA: - { - Material *ma= (Material *)id; - - if (ma->adt) - outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); + } + } + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); + + if(ob->constraints.first) { + //Object *target; + bConstraint *con; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); + //char *str; + + tenla->name= "Constraints"; + for (con=ob->constraints.first, a=0; con; con= con->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); +#if 0 /* disabled due to constraints system targets recode... code here needs review */ + target= get_constraint_target(con, &str); + if(str && str[0]) ten->name= str; + else if(target) ten->name= target->id.name+2; + else ten->name= con->name; +#endif + ten->name= con->name; + ten->directdata= con; + /* possible add all other types links? */ + } + } + + if (ob->modifiers.first) { + ModifierData *md; + TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); + int index; + + temod->name = "Modifiers"; + for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { + TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); + te->name= md->name; + te->directdata = md; + + if (md->type==eModifierType_Lattice) { + outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Curve) { + outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Armature) { + outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Hook) { + outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_ParticleSystem) { + TreeElement *ten; + ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); - } + ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); + ten->directdata = psys; + ten->name = psys->part->id.name+2; } - break; - case ID_TE: - { - Tex *tex= (Tex *)id; - - if (tex->adt) - outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); + } + } + + /* vertex groups */ + if (ob->defbase.first) { + bDeformGroup *defgroup; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); + + tenla->name= "Vertex Groups"; + for (defgroup=ob->defbase.first, a=0; defgroup; defgroup=defgroup->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); + ten->name= defgroup->name; + ten->directdata= defgroup; + } + } + + /* duplicated group */ + if (ob->dup_group) + outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); +} + +// can be inlined if necessary +static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, ID *id) +{ + /* tuck pointer back in object, to construct hierarchy */ + if (GS(id->name)==ID_OB) id->newid= (ID *)te; + + /* expand specific data always */ + switch (GS(id->name)) { + case ID_LI: + { + te->name= ((Library *)id)->name; + } + break; + case ID_SCE: + { + outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); + } + break; + case ID_OB: + { + outliner_add_object_contents(soops, te, tselem, (Object *)id); + } + break; + case ID_ME: + { + Mesh *me= (Mesh *)id; + int a; + + if (me->adt) + outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); + /* could do tfaces with image links, but the images are not grouped nicely. + would require going over all tfaces, sort images in use. etc... */ + } + break; + case ID_CU: + { + Curve *cu= (Curve *)id; + int a; + + if (cu->adt) + outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); + } + break; + case ID_MB: + { + MetaBall *mb= (MetaBall *)id; + int a; + + if (mb->adt) + outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); + } + break; + case ID_MA: + { + Material *ma= (Material *)id; + int a; + + if (ma->adt) + outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); } - break; - case ID_CA: - { - Camera *ca= (Camera *)id; - - if (ca->adt) - outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); + } + break; + case ID_TE: + { + Tex *tex= (Tex *)id; + + if (tex->adt) + outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); + } + break; + case ID_CA: + { + Camera *ca= (Camera *)id; + + if (ca->adt) + outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); + } + break; + case ID_LA: + { + Lamp *la= (Lamp *)id; + int a; + + if (la->adt) + outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); } - break; - case ID_LA: - { - Lamp *la= (Lamp *)id; - - if (la->adt) - outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); - } + } + break; + case ID_WO: + { + World *wrld= (World *)id; + int a; + + if (wrld->adt) + outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); } - break; - case ID_WO: - { - World *wrld= (World *)id; - - if (wrld->adt) - outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); + } + break; + case ID_KE: + { + Key *key= (Key *)id; + + if (key->adt) + outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); + } + break; + case ID_AC: + { + // XXX do we want to be exposing the F-Curves here? + //bAction *act= (bAction *)id; + } + break; + case ID_AR: + { + bArmature *arm= (bArmature *)id; + int a= 0; + + if (arm->adt) + outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); + + if(arm->edbo) { + EditBone *ebone; + TreeElement *ten; - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); + for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { + ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); + ten->directdata= ebone; + ten->name= ebone->name; + ebone->temp= ten; } - } - break; - case ID_KE: - { - Key *key= (Key *)id; - - if (key->adt) - outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); - } - break; - case ID_AC: - { - // XXX do we want to be exposing the F-Curves here? - //bAction *act= (bAction *)id; - } - break; - case ID_AR: - { - bArmature *arm= (bArmature *)id; - int a= 0; - - if (arm->adt) - outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); - - if(arm->edbo) { - EditBone *ebone; - TreeElement *ten; - - for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { - ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); - ten->directdata= ebone; - ten->name= ebone->name; - ebone->temp= ten; - } - /* make hierarchy */ - ten= te->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - ebone= (EditBone *)ten->directdata; - if(ebone->parent) { - BLI_remlink(&te->subtree, ten); - par= ebone->parent->temp; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; + /* make hierarchy */ + ten= te->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + ebone= (EditBone *)ten->directdata; + if(ebone->parent) { + BLI_remlink(&te->subtree, ten); + par= ebone->parent->temp; + BLI_addtail(&par->subtree, ten); + ten->parent= par; } + ten= nten; } + } + else { + /* do not extend Armature when we have posemode */ + tselem= TREESTORE(te->parent); + if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE); else { - /* do not extend Armature when we have posemode */ - tselem= TREESTORE(te->parent); - if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE); - else { - Bone *curBone; - for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ - outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); - } + Bone *curBone; + for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ + outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); } } } - break; } + break; + } +} + +// TODO: this function needs to be split up! It's getting a bit too large... +static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, + TreeElement *parent, short type, short index) +{ + TreeElement *te; + TreeStoreElem *tselem; + ID *id= idv; + int a = 0; + + if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { + id= ((PointerRNA*)idv)->id.data; + if(!id) id= ((PointerRNA*)idv)->data; + } + + if(id==NULL) return NULL; + + te= MEM_callocN(sizeof(TreeElement), "tree elem"); + /* add to the visual tree */ + BLI_addtail(lb, te); + /* add to the storage */ + check_persistant(soops, te, id, type, index); + tselem= TREESTORE(te); + + te->parent= parent; + te->index= index; // for data arays + if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)); + else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)); + else if(type==TSE_ANIM_DATA); + else { + te->name= id->name+2; // default, can be overridden by Library or non-ID data + te->idcode= GS(id->name); + } + + if(type==0) { + /* ID datablock */ + outliner_add_id_contents(soops, te, tselem, id); } else if(type==TSE_ANIM_DATA) { IdAdtTemplate *iat = (IdAdtTemplate *)idv; -- cgit v1.2.3 From 2fd3ae7539475fcd2546ba0d5a27687f4e683ccf Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 03:02:53 +0000 Subject: Bugfix #27881: Motion paths don't correctly update with pose sliding tools --- source/blender/blenkernel/intern/anim.c | 3 ++- source/blender/editors/armature/poseUtils.c | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 8aa816f9cb5..3300c82cae2 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -173,7 +173,7 @@ bMotionPath *animviz_verify_motionpaths(Scene *scene, Object *ob, bPoseChannel * } /* avoid 0 size allocs */ - if(avs->path_sf >= avs->path_ef) { + if (avs->path_sf >= avs->path_ef) { return NULL; } @@ -231,6 +231,7 @@ typedef struct MPathTarget { /* get list of motion paths to be baked for the given object * - assumes the given list is ready to be used */ +// TODO: it would be nice in future to be able to update objects dependant on these bones too? void animviz_get_object_motionpaths(Object *ob, ListBase *targets) { MPathTarget *mpt; diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c index 7ade93076e5..0f001751a96 100644 --- a/source/blender/editors/armature/poseUtils.c +++ b/source/blender/editors/armature/poseUtils.c @@ -247,6 +247,15 @@ void poseAnim_mapping_autoKeyframe (bContext *C, Scene *scene, Object *ob, ListB /* insert keyframes for all relevant bones in one go */ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cframe); BLI_freelistN(&dsources); + + /* do the bone paths + * - only do this if keyframes should have been added + * - do not calculate unless there are paths already to update... + */ + if (C && (ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)) { + //ED_pose_clear_paths(C, ob); // XXX for now, don't need to clear + ED_pose_recalculate_paths(scene, ob); + } } } -- cgit v1.2.3 From d585ad2e3f2f5f097a2f850e5d734b44c38462d4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 03:59:06 +0000 Subject: Bugfix [#27650] graph editor -> drivers -> Delete Channels (X) deletes wrong entries if obdata selected In this case, the problem was that there were some lingering F-Curves that were unselected by still had "active" flags set (a problem caused by the old filtering channel visible vs list visible bug). Now, "active" flag is treated separately from "selected" flag (bringing this back into line with bones), leaving no confusion. --- source/blender/editors/animation/anim_channels_defines.c | 1 + source/blender/editors/include/ED_anim_api.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index e97712a9af0..5e23b49fc22 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -2655,6 +2655,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float char name[ANIM_CHAN_NAME_SIZE]; /* hopefully this will be enough! */ /* set text color */ + // XXX: if active, highlight differently? if (selected) UI_ThemeColor(TH_TEXT_HI); else diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 513f0bba808..bd86dcfc82f 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -263,7 +263,7 @@ typedef enum eAnimFilter_Flags { #define SEL_AGRP(agrp) ((agrp->flag & AGRP_SELECTED) || (agrp->flag & AGRP_ACTIVE)) /* F-Curve Channels */ #define EDITABLE_FCU(fcu) ((fcu->flag & FCURVE_PROTECTED)==0) -#define SEL_FCU(fcu) (fcu->flag & (FCURVE_ACTIVE|FCURVE_SELECTED)) +#define SEL_FCU(fcu) (fcu->flag & FCURVE_SELECTED) /* ShapeKey mode only */ #define EDITABLE_SHAPEKEY(kb) ((kb->flag & KEYBLOCK_LOCKED)==0) -- cgit v1.2.3 From 1ab2e0d40e25d46aa0d56804d0519307a4bf18a8 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 07:03:25 +0000 Subject: NLA Drawing Tweak - New icons for "solo" toggles Added some new star icons for the "solo" toggles in NLA editor. Unfortunately they look a tad scruffy alongside some of the other icons, although they should hopefully turn out to be more descriptive (especially when combined with some drawing tweaks I've got in the pipeline...) --- source/blender/editors/datafiles/blenderbuttons.c | 13278 ++++++++++---------- source/blender/editors/include/UI_icons.h | 5 +- source/blender/editors/space_nla/nla_draw.c | 4 +- 3 files changed, 6664 insertions(+), 6623 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c index 0a8e974c919..f0f20e8262e 100644 --- a/source/blender/editors/datafiles/blenderbuttons.c +++ b/source/blender/editors/datafiles/blenderbuttons.c @@ -1,6624 +1,6664 @@ -/** \file blender/editors/datafiles/blenderbuttons.c - * \ingroup eddatafiles - */ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 211658; +int datatoc_blenderbuttons_size= 213035; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, - 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80, -104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61, -247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81, -193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251, -225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, - 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34, -192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, - 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, - 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86, -138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, - 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0, -120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194, -121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45, -234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, - 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217, -229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, - 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98, -185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, - 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3, -128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, - 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10, -100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, - 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133, -248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, - 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208, -100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51, -196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, - 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3, -132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67, -196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147, -201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, - 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173, -161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, - 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24, -103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145, -202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, - 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, - 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177, -205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248, -156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, - 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157, -231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128, -158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60, -197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, - 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, - 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182, -184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, - 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, - 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, - 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71, -103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210, -245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81, -229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, - 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, - 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219, -101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206, -105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53, -119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, - 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227, -123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, - 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146, -236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58, -189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, - 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171, -158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, - 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, - 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134, -157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100, -207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47, -151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221, -181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, - 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, - 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228, -233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, - 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147, -103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255, -139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199, -187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, - 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, - 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, - 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254, -203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194, -198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, - 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255, -160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, - 69, 7,219, 7, 1, 2, 13, 58,206,151,142,168, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213,226, 61, 51, 59, -179,187,217,146, 77, 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, 86,132,167,207,103,197,134, 5, 84, 68, 68, - 32, 54, 64,240, 39,242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201, 38,219,203,220,223, 31, -217, 89, 55,203,182, 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239,156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, 64, 57, 29,219,128,191, 59,103, 11,198,157, - 52, 35,231, 0, 7,231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166,228,163,230, 74, 79,151,112,146,230, 14,103, - 75,113, 54, 87, 57,242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221,243, 79,128,188, 77,226, 12, 48, 79, 53, 53, -156,164,185,195,217, 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197,117, 4,174, 5, 69, 86,192,200,204,204,100, - 92,248,153,191, 43,167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207,230,194,187,153,153,153,204,234,213,171,183, - 2, 24,208,156,113,111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202,247, 45,205,217, 92,101,201,157,179, 57,242, -189,167,251,222,130,247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188,238,156,205, 81,150,220, 57,155, 35,223,255, - 25,156,205, 81,150, 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129,123, 1, 31,248,119, 22, 68, 45, 37, 54,155, -224,192,252,229,156,205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145,223, 93, 57,155,139,223,157,167, 57,238,147, - 39,206,171, 13,175,151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, 44,185,113, 14,108,230,151,129,129, 46,191, -223,109, 78,206,230, 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, 61,238,205,241, 12,105, 41,222,107, 26, 45, -213,124,214,220,156, 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206,230,228,116, 15, 99,115, 54,247,180,100, 56, -155,147,179, 9, 97,189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202,155, 59,218, 18,225,108, 78,206, 0,185,175, - 9,206,171,184,247,215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211,146,194,181, 57,195, 57,176, 37, 28,194, 22, - 64,179,135,211,241,166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, 37,183, 60, 57,176, 25,157,162,102,117,158, -221, 57,155,227, 26,174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92,133, 11, 65, 57, 41, 39,229,164,156,148,147, -114, 82,206,235,150,243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,226, 31, 5,175,237, -187,113,113,113,171,149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147,240,175, 3,189, 71, 20,255, 32,176,248,195, - 65, 23, 0, 16,199, 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228,201, 14,130, 32,192,110,183,195,102,179, 57, - 63,205,102, 51,250,247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231,216,237,246,243,101,101,101,125,125, 28,178, - 19, 64, 10,195,252,161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, 73,113,231,243,194, 37,126,247,201, 25, 18, - 18,178,159,227,184, 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71,215, 51,162,163,163,115, 56,142,107,114,254, - 44, 45, 45,245,154, 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, 47, 94,236,235, 67,136,236, 4,144,226,243, - 13,202, 45, 63, 49, 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, 78,145,197,113, 92, 86, 84, 84,212, 51,122, -189,222, 8,128, 72, 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, - 38, 19,242,242,242, 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81,209,176, 89, 44, 80,181,138,116,114,151,157, - 56, 6,155,213, 2,155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, 62,248,224,131,168,224,224, 96, 24,141, 70, - 24,141, 70,152, 76, 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22,216,108, 54,152, 76, 38,100,103,103,219,173, - 86,171, 79,206,105,211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133,209,104,196,166, 77,155,124,114,114, 28,151, - 80, 82, 82, 18, 37,149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91,139,175, 64,182,208, 61,186,158,209, 97,218, -210, 53, 81, 33, 10, 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, 96,179,161,253,243,163,157,251, 59,117,234, -228, 51,127, 18, 66, 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37,104,112,155,189, 9,173, 4,131,193, 16,229, -224,191, 76, 16,177, 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, 95,142,178, 90,173, 48,155,205, 48,153, 76, -176, 90,173,176,217,108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100,125,112,219,109,183, 61,190,102,205, 26,213, -207, 63,255,172, 74, 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, 14, 55,223,124, 51, 67,179, 32, 5, 5,197, -117, 35,180, 76, 38, 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184,246,237,219,231,186,159,231,175,185, 42, 56, - 42, 26, 19, 91,135, 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93,168, 5, 0, 40, 20, 10, 48,174,175,209, 94, -160, 82,169,112,219,109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74,193,243,188,223, 68, 97, 24, 6,106,181, 26, - 83,166, 76, 17, 69, 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, 4, 28,199, 57,183, 64, 56,165, 82, 41,142, - 30, 61, 10,142,227, 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, 14, 10,133, 2,240, 51,115,176,235, 61, 50, -155,205,177, 50,153,204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81,200, 49,102,222, 79, 0,128,162, 89,207, 59, -239,221,158,103,223,113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, 89, 93, 93,109,120,232,161,135,182, 7, 7, - 7,175,215,106,181,240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115,230, 76,156, 57,115, 38,160,184, 27,141, 70, - 44, 88,176, 0,118,187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, 94,179,102, 77, 24,195, 48,248,236,179,207, - 32,149, 74, 49,124,248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215,105,230,163,160,160,240, 85,231,241, 0,110, - 4, 16,233, 48, 17,234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, 79, 47,199, 49, 21, 12,195,236,115,249,109, - 6, 32,243,176,191, 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174,203, 1, 13,235, 15, 1,216, 2, 96, 96,102, -102,230, 86, 0, 40, 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183,163,168,121, 28,205, 83, 82,155,205,214, 65, -108,170, 18,221,162, 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83,115,133, 55, 1, 99,177, 88,240,192, 3, 15, - 0,128,215,135,142,235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195,210,113, 19,177, 66, 87,207,192, 86,171,195, - 61,106, 43, 78,118,238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193,171,200,146, 72, 36,152, 55,111, 30, 30,122, -232, 33, 72, 36,146,128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76,142,123, 36,183,217,108, 26,155,205, 22, 97, -183,219, 35,154,114,143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, 86, 87, 87, 27, 50, 51, 51,119,203,229,242, -133,209,209,209, 37,197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48,103,206, 28, 12, 26, 52, 40,160,112,154, 76, - 38, 48, 12,131,249,243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, 23, 23,247,236,186,117,235, 52,226,177,173, - 90,181, 2,207,243,232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, 37, 5, 5,197,181, 11, 79, 90,196, 5,253, - 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106,151, 58, 49,211, 81,191,174, 22,127, 19, 66, -122,185,138, 30,135, 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, 76,252, 61,113,226,196,180,172,172,172,233, - 19, 38, 76,120,115,198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, 56, 60, 57, 90, 62,215,158, 18,155,168, 78, -157, 58,229,173,137,202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56,247, 79, 41,174,113, 62,192,230,246,104, 7, -149, 74,133, 97,239,125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129,114, 42, 21, 65,200,126,185, 11,138,170,100, -120,119, 87, 53,214, 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101,120,249,116, 33,172, 36,176, 62,189,132, 16, -143, 2, 75,252, 46, 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, 8, 13, 15,118, 5, 33, 36,140, 97,152, 58, -135,203, 21, 27,232, 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164,238,168,243,158,140,159,247, 33, 0, 96, 80, -247,155,253,150,135, 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61,122,116,193,230,205,155, 21,129,132,213,147, -208, 18, 93, 91, 81,100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, 74,175,196,209,130, 78,167, 51,175, 92,185, - 18,115,231,206, 69, 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, 60,255,252,243, 80, 40, 20,162,123, 77, 51, - 32, 5,197,245, 13, 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,165,249,121,254,175,118, 23, - 79,226,117, 25,134, 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, 50,153, 10,186,117,235, 22,144,154,208,235, -245,165,254,196,134,167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, 90,173, 78,161,178,113,227, 70, 40, 20, 10, - 12, 31, 62,252,170, 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85,157,193,249,128,217,146, 95,128,131,101,229, -120, 57, 99, 48, 84,138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, 3, 15, 60,224,116, 19, 92,251,173,192, 71, -211, 97, 68, 68,196,126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, 16,132,250,208,208,208, 31, 1,196, 17, 66, - 18, 0, 4, 7,114,143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85,134,204,204,204,221,118,131,249,155, 11, 23, - 46,236, 6, 16,116,211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115,230,204,113,254, 31,168,208,178,217,108,141, - 4,212,233,211,167, 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, 56,207,137,137,137, 65,104,104, 40, 4, 65, -128, 32, 8, 8, 10, 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, 76,152, 48,225, 77,134, 97, 86, 59,156,165, - 99, 62, 4,149, 39,237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98,226,196,137,105,238,225,240,212, 92,233,172, - 85,221,166,221,111, 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84,144, 72, 88, 48, 12, 67,252,113, 89, 44, 22, -103,197,255,204, 51,207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, 50,236,236, 54,231,185,226,198,114, 60,206, -197,116,132,228,212, 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0,203,178,206, 52,225, 56, 14,237,219,183, 71, - 65, 65,129, 79, 46,142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110,183,163,109,219,182,198,188,188,188, 23,105, -209,189, 58,145,229,109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212,168,173,181,181,181,223,220,112,195, 13,167, -209,120, 10, 4,191,124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171,213, 26,208,139,128,213,106,189, 76,240,124, -252,241,199,141, 62, 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226,182,219,110, 67,215,174, 93,241,243,207, 63, - 67, 16, 4, 60,247,220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3,234,104, 81, 80, 80,248,210, 34,166, 25, 51, -102, 28,155, 49, 99,134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, 1, 48,121, 18, 68,158, 92, 50,119, 1,230, -186, 47, 43, 43,107,186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, 91,210, 1, 52,110, 46,156,119,115, 71,168, -212, 42,168,130,213, 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170,170,242, 41,178,154,226,104,177, 50, 14, 43, - 18, 46,129,200,120,112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236,182,128, 56, 9, 33,151, 53, 21,142, 29, 59, - 22, 12,195, 56, 71,136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158,123,115,236, 7,149, 70, 90, 98,175, 36,127, -238,255, 18, 39,127,120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235,232, 86,167,251,248, 30, 94,189, 34,206,170, -170, 42,195, 77,157,210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, 24,218,173, 91,183,128,202,164, 56,184,194, - 93,100,185, 58, 89,226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200,243, 68,204,219, 26,141, 6,106,181,218, 57, -226, 54, 40, 40, 8, 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, 58, 14,177,212,200,105,114,244,173,202,116, -253,237,201,241,114, 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206,106,111, 34,141, 19, 21,164,235,103, 76, 76, -204,175,106,181, 58, 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, 96, 53, 20,106, 21, 20,193,106,175,174,151, - 47,161, 37, 58, 69,226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, 90, 78,161, 37,101,177, 65,190, 9, 18, 25, -215, 72,100,113, 28, 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107,107,193,113, 28, 38, 77,154,228,124,131,119, - 21, 89, 77,137,179, 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, 36,157, 78, 39,191,120,241,226,173,180,188, -250, 80, 6,118,235,101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199,142, 29,157, 78,150, 82,169, 20, 71,155,250, -191,199, 44,235, 81,100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205,152, 49,195,201,235,234,100,137,104, 74, 57, - 18,195,186,117,235, 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3,155,205,134,169, 83,167, 66,161, 80, 64, 38, -147,209,204, 71, 65, 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, 73, 96,185, 54, 19,138,223, 25,134,177,122, -224, 53,187, 53, 41,186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10,135, 95, 71, 75, 46,151, 39,231,229,229, 57, - 39,194,244,245,105, 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, 11,101,176, 26, 74, 77, 48, 20,106,181,187, -224, 96,252, 85,226,226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, 0,175,190,250,106,192,125,180, 68, 78,216, - 25, 20,147,179, 72,159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, 32,220, 52, 18,122,133, 26,156,221, 22,240, -168,195,234,234,106, 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72,182,141, 27, 55,250,141,187, 39, 39,107,242, -249,106, 39,143, 66,161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125,250, 8,180, 40,251, 17, 69,130, 45, 32, 81, - 21,104,254,116,231, 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, 71,135, 42,149, 74,124,245,213, 87,122, 0, -178,229,203,151, 43,252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, 26, 79, 89,226,175, 99,124, 32,121, 94, 12, - 43,195, 48,176,219,237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, 40, 40,252,213, 37,251, 2,174,199, 9,233, -229, 34,170,246, 93, 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, 64,121, 2,158, 24,179,117,207,155,241,222, -133, 90, 48, 12,131,255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, 31,157,254, 42,228, 42, 53,226,250, 13, 13, -168, 34, 23,155, 14, 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241,193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196, -242,229,203, 3,114,180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176,219, 38,227,130,153,195, 78,163, 18,253,141, -199, 33,219,240, 41,204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238,236, 83,101,179,217, 96,181, 90, 97,177, 88, -240,193, 7, 31, 4, 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35, -182,247,243,136,236,249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252,182, 97, 1,128,142, 73, 67,155,196, 89, 85, - 85,101,184,125, 80,159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227,248, 29,144, 93,198,178, 44, 36, 18,201,101, -205,133,222,196, 86, 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122,226,137, 39, 16, 27, 27,235,116,178,222,123, -239, 61, 40, 20, 10, 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20,127,186, 40,251, 51,224,177, 38, 53, 26,141, -133, 93,187,118,133,151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, 19,226, 16, 0,217,158, 42,117,134, 97, 16, -172, 9, 70,144, 90, 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95,198, 41,246, 45,113, 21, 90,226, 86, 91, 91, - 11,158,231, 49,119,238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, 95, 84,135,147,211,179, 33, 11,218,137,118, - 67, 31, 66, 44,175,128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14,120,231,157,119, 46,155,214,193, 27,226,227, -227,253,198,221,221,201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60,244,208, 67, 2, 0, 3,128, 10,131,193,112, - 62,144,244,108, 6,252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116,178,140, 2,255,117, 65, 65,129,232,100,133, - 40,149, 74,124,241,197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, 68, 34,193,172, 89,179, 60,246,201,242, 36, -186,154, 82,142, 92,207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, 68, 68, 56,157, 44,187,221,238, 28,109, 40, -206, 62,239,227,165,130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, 47,222,238,237,132,182,109,219,230,229,229, -229,181, 23,151,226,112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, 32,151,203, 65, 8,193,173,239,100,129, 97, - 1, 22,141, 31, 98, 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193,208,232,225,224,105,171,175,175,135,201,100, - 10,120, 54,111,163,209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91,160,253,118,130,130,130, 26, 53,253,248,113, -172,152, 64, 28, 45,215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71,209,108, 30, 56,196, 1, 11, 0,144,218,103, - 56, 4,193, 14, 98,183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147,201,223,180, 39, 76,101,101,165, 97,212,168, - 81, 91, 1,252,239,158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, 84, 3, 32,151, 46, 93, 10,185,112,225,130, - 96, 52, 26,219,248, 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80,162, 43,234, 58,187,123, 32,249, 83,108, 46, -247, 52, 35,188, 55, 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, 67, 42,149, 66,169, 84, 2, 0, 62,253,244, - 83,231,228,171, 20, 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104,179,217,138, 19, 19, 19,155,116, 49,187,221, - 94,230, 71,184, 21, 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22,175, 90,181, 74,234,201,221,240,182,192,180, - 63, 78,187,221, 94,156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, 48, 52, 18, 9,227,143, 23,121, 93, 59,145, -194,111, 94,243,145, 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232,232,232,170, 29, 59,118, 68,244,234,213, 43, -194,245,152, 94,189,122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220,227, 49,207,139,162,201, 67,254, 44,246,151, -231,247,238,221, 43,117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, 93,121,188,229,125,171,213, 90, 65,115, 33, - 5, 5,197,117, 47,180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170,170,170,158,205, 29, 1,171,213,218,231,159, -192, 89, 89, 89,217,172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119,143, 0,160,188,188,252, 38, 0,208,233,116, -240,183,172, 78, 19, 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131,230, 44, 10, 10, 10, 42,180,154, 0,186, 24, -241,223, 3, 45, 33, 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,150, 1,131,134,145, 3, -158,208,148,209, 4, 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188,238, 56,253,113,211,209,140, 45, 44,192, - 40, 39,229,164,156,148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, - 95, 6, 9,154, 48,163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43,224,100, 0, 72, 29,155, 56,209,145, 21,128, - 5,128,133, 97, 24,226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65,192,225, 54,109, 90, 31, 98,152, 59,204, 0, -160,138,238,212, 89,173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84,158, 87, 72,179, 7, 5,197, 95,130,187, 0, - 76, 65, 67,183,146, 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44,155,224,111,126, 30, 17,142,181,204,138, 47, - 93,186,212,179, 9,215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245,245,245,155, 1, 44, 7, 96,187,194, 56,105, - 0, 60, 0,224, 17,199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121,158, 84, 86, 86,246, 6,128,136,136,136,221, - 86,171,149,209,106,181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191,109,219,182,255, 1,152,219, 76,247, 82,206, -178,172, 71,129, 34, 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, 56,189,184,184,184, 11, 0, 36, 36, 36, 28, - 29, 61,122,244,161,113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, 43, 47,205,127,166,172,252,196, 3, 0, 16, - 19,219,101,153, 68,194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, 87,115,165, 73,201,173,177,105,231,193, 27, -199,189,248,102,218, 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, 25,247, 84,230,237,118,123,113,117,117,117, - 79,111,156, 28,199, 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, 26,141,102, 23,199,113,201,129,114,137,159, - 54,155,173,216,219, 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65,200,175,168,168,240, 22,206,203,226,222, 28, -225,188, 18, 78, 95,225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, 55,181, 90,109, 55,137, 68,130,240,240,240, - 55,205,102,243,153,144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130,162,185,160,209,104,202,234,235,235,137, 8, - 65, 16,136,213,106, 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106,181,164,182,182,150, 84, 85, 85,145,200,200, - 72,247,201, 27,189,181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, 88,136,197, 98, 33,133,133,133,228,163,143, - 62, 50,105, 52,154, 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233,230, 53,107,214, 16,163,209, 72,116, 58, 29, - 89,182,108, 25,185,225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, 49,197,103,207,158,181,111,220,184,209, 18, - 18, 18,146, 29, 18, 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0,125,155, 16, 78, 0, 24, 57,126,252,248,178, -194,194, 66, 50, 96,192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, 67, 8,137, 69,195, 36,151,151,109,132,144, - 88,199, 49, 97, 1,114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, 24,198, 28, 29, 29,157,149,159,159,223,154, - 16,162,242,197, 89,124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145,255,125, 61, 80,251,212,184, 71,151,198,182, -237,190, 32, 52, 33,109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231,191,206,191,119,220,236, 47, 34, 18,211,159, -106, 66,122, 94, 13, 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19,139,197, 66, 76, 38, 19,209,235,245,164,190, -190,158,212,213,213, 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, 86,102, 48, 24, 26,213, 29,102,179,217, 89, -127,232,245,122,162,215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, 56, 47,138,225, 20, 4,129,216,108, 54, 98, -177, 88,156,188, 70,163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, 16, 78,163,209, 72, 18, 18, 18, 74,188,113, -134,135,135,151, 25,141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, 51,144,112,250, 74, 79, 7,230,230,230,230, - 18,131,193, 64,226,227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233,233,233,194,192,129, 3, 45,149,149,149,228, - 95,255,250, 23,241,241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42,124,255,253,247, 94,151,227,112,253,222,166, - 77,155, 64,175,217, 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54,155, 17, 22, 22,134,231,158,123, 78,118,215, - 93,119,181, 31, 58,116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145,159, 77,154, 52, 41,250,193, 7, 31, 68, 68, - 68,163, 73,183, 49,106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248,208,188,121,243, 74,235,235,235,199, 1,248, -209, 23,169, 66,161,184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37,133,125,253,245,215,219,119,232,208, 65,145, -144,144,192, 94,188,120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105,139,197,178, 50,128,184,203, 34, 34, 34,222, -124,250,233,167, 91,105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, 70,175, 45, 91,182,124, 11,224,203, 43,113, -178, 8, 33, 90,252,209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, 60, 35, 35,227, 71,147,201,212,253,153,103, -158, 57, 63,125,250,116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103,207,158,253, 70,231,206,157, 7,239,218,181, -235, 62, 66,136,213, 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246,206,196, 87, 19, 62,156,150,124,110,223,241, - 34,129, 83,104,240, 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229,124, 90, 72,252, 13, 3,106, 47, 28,207,129, -143, 25,210, 41,154, 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, 90,113, 28,135,208,208, 80,191,171, 27, 4, - 5, 5, 97,227,198,141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12,131,160,160, 32,236,216,177, 3, 44,203,122, - 92, 26,200,125,159, 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, 86,171,129,134,166,127,239,133, 82, 46,199, -246,237,219,189,198,217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203,125, 73, 48,215,223, 42,149, 10,140, 31,210, -176,176,176,222, 9, 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, 79,131, 97, 24, 76,159, 62,157,185,225,134, - 27,248,210,210, 82,244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, 2, 66, 8, 15,224, 70, 0,145,104,232,118, - 83, 7, 32, 20, 13, 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, 87, 58,234, 22, 87,129, 80,225,186,248, 52, - 33,164,151,131, 91, 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0,176,122,245,106,241, 97, 54, 48, 51, 51,115, -171,107,228, 2, 17, 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247,238,221,138,200,200, 63,226, 96, 50,153, 80, - 87, 87,135,250,250,122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248,135,186,186,186, 14,142, 68,243,198, 57,235, -226,197,139,209, 54,155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, 55, 49,108,216,176,152, 65,131, 6,205,114, - 19, 90,151, 13, 37, 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197,197,197, 24, 63,126,124,107, 65, 16, 80, 84, - 84,132,211,167, 79,227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, 60, 13, 79,125,230,229,151, 95,238, 24, 22, - 22,198,126,244,209, 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251,247,143,250,247,191,255, 77,118,236,216,177, -216,113,227,188,166,167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, 7, 33, 36, 6,128,137, 97,152, 26, 15,156, - 12,128,144,161, 67,135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8,224,162,152,249, 66, 66, 66, 84,179,102,205, -138,206,204,204,204,189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, 10,151, 62, 91, 78, 78, 65,192,225,152,216, - 46,203,114,118,141,123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, 94,181,253,120,126, 5,234, 12, 54,220,123, -107,195, 2,230,189,187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253,103, 8, 84,245, 37,199,215,248, 72,207,171, - 5,229,132,179,137, 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60,118,237,218,133, 91,111,189, 21, 60,207,227, -137, 39,158, 8,136,147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, 9,178,221, 42, 91,112, 28, 7,150,101,189, - 46,164,237,206,233,175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176,200, 10,148, 83, 12, 39,199,113,232,211,167, - 15, 14, 29, 58,228, 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200,153, 59,119,110, 56, 0, 84, 85, 85, 57, 23, -188,151, 72, 36, 56,117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, 71,148,179, 37, 57,125,105, 17, 0,253, 39, - 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, 72,166,248, 57,113,226,196,180,172,172,172, -233, 19, 38, 76,120,115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166,155,136,139, 20,121, 28,101,174,209,177,158, -126,187,127,122,226,110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,126,250,244,233,209, -190, 68, 86,125,125, 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185,207,219,108,182,143,125,208, 74, 37, 18, 9, -246,238,221,139,242,242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214,174, 93,139,154,154, 26,244,232,209, 3,104, -232,220,237, 17,221,186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62,124, 24,221,187,119,199,247,223,127,143, 54, -109,218, 64,169, 84, 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244,244,116,155, 86,171,221, 86, 93, 93,189,249, -220,185,115,239,122, 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243,205, 55,219, 1,108, 7,240,252, 91,111,189, -245,248,176, 97,195,162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, - 50,153,172, 44,203, 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, 89, 89,249,220, 75, 47,189, 84,224, 16, 89, -167,208,208, 1, 30, 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126,248,204,210,165, 75,159, 27, 59,118,236,242, -111,190,249,166, 30,128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95,177,252,203,151,215,174,122,190,117, 81,209, -133,246, 17,173, 34,117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200,217, 82,240,188, 4, 39,138,106,209,255,246, - 81,252,153,188,105,125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22,159,142,214,174, 93,187,192,243, 60, 20, 10, - 5,102,207,158,237,147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, 65,112, 46,244,238,190,253,223,255,253, 31, - 94,122,233,165, 70,215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172,209,190, 64, 22,165,183,219,237,224,121, 30, - 11, 22, 44, 64,102,102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144,244,236,211,167, 15, 44, 22,139, 51,204,167, - 78,157,242,200, 59,111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26,132,156,156, 28,220,127,255,253, 38,139,197, -146, 7, 0,119,222,121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254,252,249,255,129,118,144,167,104, 97,120,210, - 34,226, 51, 47, 43, 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145,233, 42,138, 92,127,139,174,147,155,136, 75, -115,117,164, 92, 69,148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160,171, 11, 36, 86,190,254, 68,150,143, 55,199, - 70, 8, 9, 9, 25,126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191,115,115,115,209,179,103, 79,105, 72, 72,200, -240,170,170,170,143, 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, 68, 88,173, 86,172, 95,191, 30,181,181,181, -224,121, 30, 82,169, 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185,104,209,162, 75,226, 27,221,146, 37, 75, 64, - 8, 65,100,100, 36,244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106,164,164,164,200,238,185,231,158,190, 83,166, - 76,225,125, 8,173, 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, 12,199,190,201,227,198,141,139, 40, 44, 44, - 52, 63,249,228,147,123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150,213,106, 21,211,180,160,190,190, 30,173, 90, -181, 74,116,117,182,188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50,215, 48,152,205,102,212,215,215, 67,167,211, - 89,107,107,107,203, 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12,115,135, 89,163, 81,202, 8,145,188, 53,127, -254,124,245,176, 97,195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234,155, 50, 61,235,195, 13,154,132,174,101, 59, - 14,231,227, 66,105, 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139,211,209,114, 21, 21, 57, 57, 57,184,253,246, -219,157,101, 93, 42,149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103,203,150, 45, 30,221, 39,127,112, 21, 69,238, -226,200,147, 0, 99, 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, 95, 51, 7, 56,142,195,184,113,227,192,243, - 60, 94,127,253,117,112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91,111,189,181,201,113,223,189,123, 55,186,119, -239,238, 12, 83,122,122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, 67,135, 6,194,249,102, 93, 93, 93, 55,181, - 90,141,220,220, 92, 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6,111,130,189, 0, 0, 32, 0, 73, 68, 65, 84, -215,235,219, 26,141, 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, 26,169,208,162,104, 49,184,107, 17, 23, 24, - 38, 76,152,240, 38,195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80,251, 28,101,181,151,155,136,171, 96, 24,102, - 31, 33,228, 78,111,231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177,242, 13, 84,104,249,131,209,104,188, 49, 42, - 42,202,171,200,114,253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216,216, 88, 88, 44, 22,124,249,229,151,144, 74, -165,144, 74,255,208, 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, 71,143,176,159,126,250,169, 98,192,128, 1, -145,195,134, 13,131, 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, 20, 23, 23,227,215, 95,127,173,236,208,161, - 67,171, 61,123,246, 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117,235,214, 85, 2,216, 39,151,203,215, 78,155, - 54, 45,204,108, 54, 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, 96,192,128,140,236,236,236,111, 5, 65,152, -221,212,140,234,158,182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, 0,149, 74, 21, 14,224,140, 51,135, 27, 12, -141,196,176,217,108, 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138,115,231,242,131, 93,251,207,133,134,134,226, -145,135, 31,102,111,233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52,230,148,184, 8, 88,237, 86,100,111, 88, 47, - 16,193,186,129, 86, 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122,217, 62,169, 84,138,255,254,247,191, 1, 9, - 3, 81, 84,121,107, 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, 2, 8,130,128,151, 95,126,185, 81,115,162, - 43,127, 64,118,158,139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58,206, 9,200, 37,155, 59,119,110, 64,142,214, -157,119,222,233, 87,184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, 55, 61,237,118, 59,214,172, 89,227, 20,169, - 34,222,126,251,237,167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250,250,122,244,238,221, 59,133,101,217,195,165, -165,165,133, 39, 78,156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, 25, 51, 60, 58, 86,238,206,146, 47,231, 73, - 20, 88, 14, 65, 20, 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, 70,144,155,138,156,226,169,242, 13,164,249, - 48, 64, 59,157, 99, 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213,176,219,237, 87, 60,215,151,167, 55, 89,127, - 66,235,232,209,163,255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130,112,235,174, 93,187, 34, 57,142,131, 70,163, -129, 70,163,193,218,181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, 28, 97, 48, 24,126, 47, 45, 45,125,219,171, -130,225,249,161,253,250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244,209,219, 91,183,110,205, 76,155, 54,205,120, -246,236,217,217, 0,202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209,163,177,117,235,214,249, 0,140,129,198, 89, -167,211, 53, 18, 88, 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, 12, 65, 8,113,222, 27,135,155, 37,222, 31, -194,113,156, 56,170,209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187,221,142,178,178, 50,104, 52, 26, 76,122,251, -109,233,123,227,255,221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93,217,131,219,128,119,105,205,243, 39, 64, 20, - 6,119,223,125,247,101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, 61,122,244,240,251,114, 37, 10,131,187,238, -186,203,233, 12,173, 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, 5,112, 28,135,207, 62,251, 12,175,188,242, - 10, 88,150,197,204,153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252,176,225, 51,225, 21, 45,170,230, 69, 3, 0, -130, 53, 26, 49, 66, 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, 70, 6, 56,142,115, 58, 89,195,135, 15,119, - 77, 71, 18, 8, 39,199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28,238,188,243,206, 64,130, 57, 61, 52, 52,116, - 74,167, 78,157, 58,207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57,155,205, 22, 49,117,234, 84,165,135,115, 20, - 0,186,117,238,220, 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, 9, 47,146,171, 93,143, 23, 57,220,197,145, -195, 33,203,241,199,229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103,159, 23, 83, 42,149, 71,202,203,203, 51, 20, - 10, 69, 35,145,229, 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205,118, 19,253, 53, 29, 2, 48,158, 62,125,122, -188,203,239, 33,195,135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, 35, 35, 49,119,238,220,139,101,101,101,255, - 2,176,177,178,178,210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, 21,192,191,159,123,238, 57,198,106,181, 98, -222,188,121, 58, 0,235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217,217,218, 61,123,246,252, 22,160,200,178, 11, -130,112,153,192,114, 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59,202, 96, 48,104,229,114,121,176, 86,171, 53, -185, 10, 44,145,159,227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230,228, 56,110,240,224,193,131, 57,247,123, 80, - 86, 86,134,210,210, 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110,211, 58, 80,145,245, 39, 57, 90, 68, 44,235, -226, 40, 65, 79, 35, 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209,198,141, 27,125,118, 88,119,107, 58,244,107, -141,139,199,127,254,249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, 76,155, 54, 13, 19, 38, 76, 0,199,113,126, -155, 14, 93, 5, 76,210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, 98, 2, 21,111,190,220,188, 64, 90, 2, 92, - 57,197,243,130,130,130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238,200,200,200, 8,217,191,127, 63,102,206,156, - 41, 53,153, 76,109,178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75,184, 89, 62,254,174,112,235, 95,197,184, 54, -227,249,248,116, 63, 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229,126, 13,215, 99, 42,188, 58, 90,254, 42, 11, -127,130, 43, 16, 71, 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, 80,167,211, 33, 58, 58, 26,199,142, 29,179, -233,245,250,223, 2,112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190,125,123,196,199,199,195,104, 52,162,166,166, - 70, 2, 96, 99,128, 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, 14, 29,112,224,192, 1, 84, 87, 87,255, 8, - 96,216,148, 41, 83,122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, 86,107, 64, 74, 67, 16, 4,179,205,102, 75, -102, 89,214, 82, 83, 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, 13, 68,104,117,235,214,109,239,249,243,231, - 49,117,234,212,138,233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70,163,145,109,213,170,149,124,222,188,121, 10, - 0,232,214,173,219, 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, 45, 45, 69,105,105, 41,202,202,202, 80, 87, - 87,135,148,148, 20,232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118,125,144, 55,165,172,187, 10,152,187,239,190, -219,217,183, 75,116,200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, 94,120,225, 5, 4, 5, 5, 97,214,172, 89, -141,154, 14,221,197,129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, 17,207,148, 53,106,162,243, 32, 56, 2, 10, -231,244,233,211,155,165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141,194,182,109,219,174,184,233, 48, 45, 45,109, -201,234,213,171, 67,142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23,123,109, 21,112,212,229, 65,180,228, 80,252, -201,245,212,190, 63,147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38,211,172, 23, 95,124,241,185, 33, 67,134,132, - 7, 7, 7,163,164,164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, 86,105, 77, 38,211, 44,127,226,192,106,181, - 34, 42, 42, 10,149,149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128,159, 78,230,158, 30, 24, 22,139, 5, 86,171, - 21, 86,171, 21, 22,139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184,184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, - 70,246, 13,185,253,246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223,179,227,155,115,114,114,146, 1, 64,161, 80, -228, 2, 64,113,113,177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, 33,200,201,201, 73,150, 74,165, 4,222, 71, - 53, 26, 87,174, 92,121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116,233,146,172,211,233,202, 13, 6,131,193,104, - 52, 18,137, 68, 34, 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, 75, 87,174, 92,121,220,155,243,166, 82,169, -138,245,122,125,146,120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, 60,239,175, 89,151,162,229, 32,190, 84,185, - 59, 47,238,251, 2, 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20,189,242,202, 43,152, 51,103,206,101,142,214, -180,105,211, 0, 0,111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168,110, 20,118, 0, 96,196,240, 53,173,204,131, -227, 56, 76,157, 58,245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, 56,142, 67,120,120, 56, 30,121,228, 17, 12, - 29, 58,212,217, 4,217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225,253,247,223,175, 14, 13, 13, 13,254,207,127, -254,195,213,212,212, 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81,135, 94, 42,203, 33,104, 60,215, 70,173, 94, -175,127,228,182,219,110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174,174,134,217,108,134, 84, 42, 69,108,108, 44, -106,106,106,240,245,215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, 47, 62,254,248,227,160,244,244,116, 84, 87, - 87,163,190,190,222, 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126,253,122, 3,128,183,252,112,122, 82,115,176, - 88, 44, 78,193, 21,128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82, -166,180,109,219,150, 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, 66, 46, 1,136, 49,155,205, 82, 0,168,173, -173,181,180,106,213, 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, 54,155, 77, 10, 0,253,250,245, 51, 3, 40, -117, 91,163,208,149, 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, 73,123,246,217,103,143, 62,249,228,147,108, -124,124,124, 88, 93, 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15,225,121,254,220,252,249,243,167, 0,208, 50, - 12, 35,120,226,180,217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202,202,202,156, 34,171,172,172, 12,157, 58,117, -194,174, 93,187,236, 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235,222, 4,150,248, 50, 21, 40,167,171, 40, 26, - 53,106, 84, 35, 23, 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, 58,199,215, 27,111,188,209, 72,180, 77,154, - 52,201,107,117,230, 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41,214,157, 60,207, 99,210,164, 73, 1, 59, 90, -184,188,143,214,101,156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127,233,105,183,219, 95,152, 51,103, 14,209,104, - 52, 55,107,181,218, 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50,153, 76,114, 90,142, 40, 39, 90,102,126,174, -235, 71,104, 57, 30,146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, 3, 27,242,242,242,238,187,229,150, 91,190, -125,225,133, 23,130,211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, 99,182,149, 43, 87,106,245,122,253,163, 0, - 2, 25,117,182,232,248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121,178, 36, 53, 53, 21,181,181,181, 8, 11, 11, - 67, 84, 84, 20, 78,157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180,161,250,123,225,183, 88, 44,120,232,161,135, - 32, 8, 2,102,207,158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151,222, 49,187, 52, 78,159, 62, 13, 0,231,146, -147,147,131, 1, 32, 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234,212,169, 83,129,123,229, 40, 58, 89,162, 11, -230, 47,220, 12,195, 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127,254,240,231,159,127,126,217,113, 26,141,102, -233,204,153, 51,223,123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102,204,152, 7,142, 28, 57, 18, 28, 20, 20, 4, -157, 78,135,170,170, 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, 24, 12,239,210,226,248,215,192, 85, 24,120, -115,181, 2, 16, 89, 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129,206,109,229,235,165, 72,156,150,198,211,148, - 17, 77,172,215, 46,227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, - 8, 2,238,188,243,206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, 83,167, 78,169, 0,228,174,105,208, 68, 23, -159,130,130,194,159,208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106,181, 22, 7,120,221,245, 58,157, 46,101,230, -204,153, 47,170, 84,170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211,167,104,218, 34,208, 21, 0,158,223,189,123, -247,236, 97,195,134, 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121,228,236,217,179, 43, 28, 46,214,217, 43, 73, -164,240,240,240,227, 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20,193,193,193,199,171,171,171, 3,165, 40,223, -180,105,211, 55,125,250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125,251,246, 29,179,107,215,174, 37, 0,142,109, -222,188,121, 97,239,222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150,205,230,185,165,209,139,147,229,139, 83, 75, - 8,177, 60,254,248,227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, 0, 8, 13, 13, 61,210,171, 87,175,189,203, -150, 45, 59,229,112,178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239,191,175, 74, 75, 75,227,218,183,111,143,194, -194, 66, 28, 61,122,212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127,157,208, 34,132, 32, 52, 52,180,209, 75,148, - 56,228,191,169,205,133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, 86,171,157,147,155, 6,210,101, 65, 16,124, -207,199, 70, 8,113,114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50,189,131, 74,165,130,213,106,117,242, 6, 48, -242,179,169,106,241, 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66,235,210,165, 75, 61, 91,248,218, 90,147,201, -244,158,201,100,122, 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241,166, 77,155,196,118,132,169,240,191, 94,162, - 79,156, 60,121, 50,147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, 11, 11,255,211, 20, 14,187,221,254,248,174, - 93,187,158,131,163, 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237,246,199,247,236,217,227,252,221,196, 7, 37, - 33,132,152, 8, 33,113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, 28,198, 31,243,100, 89, 29,155,209,173,185, -208, 23, 54,235,116,186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, 85,100,179,217,126,211,235,245,111,161, 97, -141, 42,138,191, 8,102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94,172,236,118,123,113,135, 14, 29,252,190,156, -121,224,188,224, 67, 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, 37, 37, 5, 77,229,244, 23,247,228,228,100, -143,113,247, 35, 8,189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, 50, 50,178,222,104, 52,242, 38,147,137,183, -217,108,141,236, 71,133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199,126, 52, 44, 47,209, 92, 48, 29, 57,114,228, - 49,167, 61, 85, 94,126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, 66, 74,223, 76,116,149,245,245,245, 79,138, - 63,196, 62, 32, 20,127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171,172,172,204,104,129,184,247,188, 94, 57,125, -161,164,164,228,102, 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160,160,160,160,104, 25, 48,104, 24, 57,224, 9, - 77, 25, 77, 48,228, 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235,142,211, 31, 55, 29,205,216,194, 2,140,114, - 82, 78,202, 73, 57, 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, - 5, 5, 5, 5, 21, 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, 0,198,182,240,181, 30,233,221,187,119,149, - 92, 46,223, 0, 32,149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218,181,235,246,147, 39, 79,118,202,206,206,142, -139,143,143,255,176, 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, 98, 98, 98,114,174, 80,108,165,182,105,211, -230, 68,106,106,106, 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, 4, 41,174, 3,116, 1,208,149, 10, 45, 10, - 10, 10,138, 22, 20, 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14,181,228, 5,115,115,115, 47,237,220,185, 19, - 9, 9, 9, 88,178,100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63,113,226, 68,167,236,236,236,248,168,168,168, - 79,154, 51,124, 55,221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228,149, 10, 65, 10,138,191, 51,228, 0, 30, 99, - 24,102,111,151, 46, 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, 25, 24, 86,175, 94,189,117,245,234,213, 91, -105, 30,161,160,160,104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125,246, 25, 9, 15, 15,183, 0,248, 13,192, 74, - 15,219,155, 0, 52, 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159,145,252,252,124,114,252,248,113,146,154,154, -106, 8, 80,208,164,118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, 81, 52, 26,205,177,156,156, 28,114,246,236, - 89,178, 97,195, 6, 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234,234,187,238,186,139,124,245,213, 87,100,213, -170, 85,228,199, 31,127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, 1,132, 94, 79, 90,132,113, 68,140, 0, 24, - 8, 0,153,153,153, 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186,186, 58,180,110,221, 26, 60,207,123, 60,176, -188,188, 28, 59,118,236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186,119,239,190,115,243,230,205,169,193,193,193, -206,157,130, 32,192, 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38,147, 65,161, 80, 32, 60, 60,252, 40,124, 55, - 97, 56,221, 55,131,193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, 54, 99,186,164, 70, 69, 69,229, 44, 90,180, - 40, 50, 37, 37, 5,231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, 10,138, 63, 19, 19,238,187,239,190,105,209, -209,209,108,151, 46, 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, 33, 4,181,181,181,200,201,201,193,230,205, -155, 77,151, 46, 93,250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, 51,147,161,121,133,130,130,162,153,112,164, -182,182,182,139,201,100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105,105,233, 45,240,188,168,188,166,123,247,238, -123,114,114,114, 82,141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, 34, 98, 23,128, 62,222,222,196,187,116,233, -178,127,215,174, 93,225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, 14,192, 91,224,171,209,176,142,234, 57, 15, -255, 37, 2,120,209,241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, 22,122,189, 30,163, 70,141,170,206,205,205, -237, 5,160,128,102, 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, 38,147, 9,122,189,222, 41,180, 36, 18, 9, - 8, 33,176,217,108,206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148,165,107, 86,139, 80,161, 69, 65, 65,209, 18, - 72,237,208,161,195,161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178,181,186,186,122,155,187,120,137,142,142, 78, - 91,184,112, 97,114, 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129,243, 77,173, 86, 59,205, 98,177,224,208,161, - 67, 24, 51,102, 76, 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225,123,244,232, 1,173, 86,139,145, 35, 71,234, - 79,157, 58,213, 27,192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, 36, 36, 36, 64, 42,149,250,140,156,193, 96, - 64, 82, 82,210,174,138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, 20, 62, 57, 44, 22, 11,138,139,139, 33,147, -201, 96, 50,153,208,174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124,184,195,119,223,125,135,238,221,187,163,115, -231,206,168,175,175,119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191,252,114, 30, 28,205,231,215,170, 22, 17, 59, -166, 77, 17,219, 68, 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94,250,144, 33, 67,182,173, 88,177,162,213,240, -225,195,209,174, 93, 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, 27, 51,102,204,254,162,162,162,100,199,174, - 94, 94, 56,123, 5, 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, 31, 62,124,152,151,201,100,216,183,111, 31, -198,142, 29, 91, 89, 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139,139,253, 70,238,252,249,243, 16, 4,193,228, -233, 63,150,101,229, 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, 54, 20,255, 80, 88,205,102, 51,122,246,236, -137,130,130, 2, 28, 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123,247,226,224,193,131,232,223,191,191, 59,207, - 53,169, 69,156,202,113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, 53, 46, 46, 46,103,209,162, 69,145,177,177, -177, 24, 52,104, 80, 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182,109,219,174, 2,112,207,149, 28,147,152,152, - 88,177,111,223,190, 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83,114,167, 78,157,246,109,216,176, 33,156,101, - 89, 28, 59,118, 44,144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132,123, 57, 87,213,161, 67,135,190,251,247,239, -151, 50, 12,131,194,194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113,255,123,238,185,231, 66,122,247,238,141,226, -226, 98, 92,184,112, 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, - 66, 2,212, 75,191,195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45,169, 84,186, 62, 62, 62,190, 28,158,231,165, - 10, 27, 57,114,100,137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, 61,123,150, 68, 71, 71,231, 3, 8,243,112, -204,216,152,152,152, 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, 34, 69, 69, 69,100,221,186,117, 36, 34, 34, -162, 37, 70, 4,166,118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, - 96,106, 74, 74,138,241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, 35,227,199,143, 39, 25, 25, 25, 36, 35, 35, -131,140, 26, 53,138,188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52,233, 40, 40, 40, 40,154, 23,137, 0,102, 57, - 4,213,202,145, 35, 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76,221,224, 9,111,150,150,150,146,210,210, 82, -113,106,132,124,252, 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, 39,133,133,133,100,237,218,181,196, 33,216, -154, 13, 10,133, 98,131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, 34, 10,192,220, 27,110,184,193, 58,123,246, -108,178,114,229, 74,242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224,131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77, -174,171, 7, 93,217,156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59,185,112,225, 2,217,176, 97, 3,137,137,137, - 57,134,198,243,105,185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, 98,177, 56, 57, 78,158, 60, 73, 0,108,109, -134,112,166,198,199,199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103,220,147,146,146,202, 43, 42, 42,200,166, 77, -155, 72,100,100,164, 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15,251,156, 57,115,200,211, 79, 63, 77, 18, 19, - 19,237,142,151,162,248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222,189, 27,114,185,220,185,227,247,223,127,119, -157, 71,203,219,188, 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, 58,138,105,203,150, 45, 0, 96,106,134,176, -229, 94,184,112,161,255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140,120, 97, 97,225, 43, 93,187,118,157, 94, 87, - 87,167,213,235,245,163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60,112,224,192, 91, 0, 8,128,247, 1,156,184, -222, 18,130, 10, 45, 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252,159, 15,145, 37,226, 82, 65, 65, 65,159, 59, -239,188,243, 57, 52, 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, 9, 75, 74, 75, 75,151,208, 44, 64,113, 29, -225, 24,128, 7,175,231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, 90,120,158,103,139,130,130,130,226,111, 7, -186,168, 52, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20,255, 44, 48,240, 62,114, 32,187, 9, 60, 87, - 50,162, 33,155,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, 80,180,168, 0,163,156,148,147,114, 82, 78, -202,249,207,230,100, 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156,215, 36,254,170,206,240,226,141, 16,208, 48, -228,147,226,239, 7,215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, 29, 27,254,134,117,137,171, 40, 16,174,242, -185,212, 18,113,191,158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134,177,235,116,186, 35, 38,147,105, 62,128, 93, - 87,121,205,175,162,163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150,101,193,243,188,161,182,182, 86,115, 37,164, -145, 93, 70,188,202, 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, 24,169, 84,122, 95,120,120,120,104, 69, 69, - 5, 97,217,134,174,124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, 97,123,195,195,195, 67,197,243, 25,134, 65, - 85, 85, 85, 77,121,121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85, -117, 11,189, 21,255, 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, 34, 8, 76,173,141, 81,252,190,254,194, 87, -103, 2, 57,127,212,168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215,215,215,235, 25,134, 33, 12,195,128, 97, 26, -222,179,220, 63,237,118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137,137, 25,163,215,235,245, 14, 62,143,188, 0, - 96,181, 90,139, 43, 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, 29,195, 48,130,235,127,132, 16,215,135,249, -217,202,202,202,126,254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121,181,113,143,142,142, 30,163,211,233, 2,226, -244, 17,247,203, 56, 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207,158, 14, 60,207, 3, 0,140, 70, 99,215,185, -115,231, 62,246,198, 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114,114,216,149, 43, 87,178,189,122,245, 2,195, - 48,176,219,237,176,219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241,191, 65, 55, 14,121,242,133,114, 96,154,191, -253,190, 4, 38,128,183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89,182, 73,156,130, 32,228, 95,186,116,169,143, - 15, 1,211,236,156, 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70,161, 80, 64, 16, 4,216,237,118, 88,173, 86, -220,112,195, 13, 77,114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, 31,126,192, 99,143, 61,134,190,125,251,230, -149,151,151, 3, 0, 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182,182, 22,183,221,118, 27,170,170,170,254,209, -133,235,230,244,132,247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181,188,225,225,225, 7,229,114,121,180, 95,181, -236,242, 32, 51, 26,141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158,227,184,142, 0,146,108, 54, 91, 52, 0, 72, -165,210, 50,137, 68, 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135,197, 63,209,142,177,233, 71,214,153,132,225, -202,182, 89,169,250,179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, 72, 5,176, 12, 13, 11, 74, 63,141,134,121, -128,174, 6,241, 0,238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, - 85,213, 19,240,176, 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, 62, 80,220, 44, 15, 40,150,101, 63,205,204, -204,252,215,138, 21, 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26,107, 23, 32, 57, 57,217,159,171,193,177, 44, - 59,123,228,200,145, 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85,108,137,136,139,139, 11, 52,239,127, 53,116, -232,208,209,139, 22, 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, 47, 59,246,150, 91,110, 17,252, 71,157,253, -244,158,123,238, 25,253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, 85,199,125,196,136, 17, 15,127,247,221,119, -202, 35, 71,142, 40,219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136,243,238,187,239,126,120,217,178,101,202,131, - 7, 15, 42, 59,118,236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50,139,197,130,173, 91,183,130,101, 89,132,135, -135, 99,236,216,177,216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200,226, 1,224,199, 71, 71, 32,159, 7,198,149, -155, 33,149, 74,113,246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146,254,194, 62,185,193, 96,133,177,100,191, 82, -161, 80, 56, 31, 0,250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, 95,191,208, 27, 95,251,246,237,191, 61,118, -236, 88, 39, 79, 5,215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, 60,207, 39,156, 59,119, 46, 74, 38,147,129, - 16,226, 44,196,238,159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, 54, 27,130,130,130, 32,186, 81,102,179, 25, -245,245,245,254, 56, 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, - 80, 72, 36, 18, 12, 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170,104,121,158, 71,120,120, 56,214,173, 91, 7, -141, 70,131,196,196, 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237,237,183,118,226,110,238,206,125,238,120, 84, -130,101, 1, 65,104,120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51,174,176,176, 48, 42,208, 52,178,217,108,136, -139,139,147,248, 57,108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, 42, 5,199,113,224, 56, 78, 20,232,137,132, -144, 68, 65, 16, 6,150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, 88,177, 16, 67,183, 58,147, 48,124,219, 33, -220, 52,114,200, 27, 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, 86,106, 90, 90,218,161, 61,123,246, 4, 89, - 44, 22,244,238,221,123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113,226,232,103,159,125, 86, 18, 26, 26, 10,153, - 76,134,186,186, 58,156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, 92, 88, 88,152,177,119,239, 94, 12, 26, 52, -232, 69, 0, 47, 95,174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209,147, 45,107,112,113,220,143, 38, 16,236, 66, -241,222,195, 23, 2, 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188,121,184,239,190,251, 16, 30, 30, 14,165, 82, - 9,169, 84, 10,158,231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188,120,113, 48, 0, 44, 94,188, 24, 35, 70,140, - 64, 68, 68, 4,130,131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245,189,233,166,199, 23, 45, 90, 4, 0,120,235, -165,151,112,199,205, 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94,240,171, 47, 1,124,124,223,125,247, 61,240, -253,247,223, 7, 3,192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, 50,103,156, 25,134,129, 66,161, 8, 40,238, -247,221,119,223,200,239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46,151,203, 33,149, 74, 27,109,238,162,211, 19, -231,189,247,222, 59,114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, 11,115,166,167,200,213,148,123,244, 55,231, -188, 62,132,214,161, 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126,184,245,227,143, 63,142, 7, 31,124, 16,155, - 54,109,122,170,137, 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130,169,201, 15,112, 7, 38,237,127,234,169,152, -172, 51,245,216,189,247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51,222, 59, 91,215,176,223, 70,152,173,175,140, -139,185,113,246,255, 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32,138,138,138, 32, 8,130,201,151,187, 32,149, - 74,113,244,232,209,203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143,241,227,199,227,212,169, 83, 16,151, 42, 9, -128,147, 9, 15, 15, 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196,166, 61, 71,225, 10, 72, 24,179, 44,139,111, -191,253, 22, 31,124,240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19,114, 28,180, 90, 45,194,194,194, 16, 22, 22, -214, 72, 32,254,147,225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, 2, 2,129, 8, 40,187,112, 6,147,223,253, - 40,224,167, 15,207,243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164,164, 36,191,121, 73, 42,149, 78,249,249,231, -159,101,223,126,251, 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, 80, 68, 68, 68, 56,183,132,132, 4,230,127, - 61,184,254,121, 0, 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, 90,237, 90,207,247,156,132, 40,219,102,165, -142, 28,242, 6, 0, 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54,181,107,215,174,219,119,238,220, 25,164,215, -235, 33, 8, 2,214,174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, 73, 73,171,118,238,220,121, 75,100,100, 36, -106,107,107,161,213,106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185,231,158,123,158, 31, 51,102,140, 81,161, 80, -136,206, 70,146,231,188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163,207,234,242, 66,188,244,202,228,128,194,216, -186,117,235,167,127,248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6,108,155, 54,109, 30, 95,178,100,137,147,179, - 85,171, 86,224, 56, 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, 8,139,140,195,156,207,230,249, 13,103,100, -100,228,252, 97,195,134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35,170,149, 6,173,194,130, 27,210, 73, 96,240, -251,169, 2,191,207, 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140,171,248,242, 44,186,248,102,179, 25, 61,123, -246, 12, 40,238,174,156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, 23,133,176, 67,112, 54,226,224,121, 30,203, -215, 45,242,234,102, 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241,165,205,181,171, 80,124,124, 60,230,204,153, -227,183, 94,114, 43, 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207,195,113,226,126,222,209, 98, 21,137,134,126, - 99,117, 0, 66, 61,240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107,245,234,213, 98, 41, 30,152,153,153,185,213, -241,189, 70, 46,151, 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56,172,213,187, 67, 66, 66,142,121,112,117, 14, -153, 76,166, 55, 0,148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226,123,135,194, 76,128,244, 73, 51, 48, 44, 51, - 19,235,227,101,144, 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60,244,221,202,118,203, 80,146, 32,142, 67,239, -237,107, 48,126,251, 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175,106,133,215, 30,217,136, 62, 26, 57,100, 38, - 29, 88,150,245,148,179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249,104, 88,199, 9, 94,194, 9, 66, 8,186,117, -235, 6,134, 97,156,110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, 4, 7,149, 74,133,223,126,251,205,121,204, -224,193,131, 97, 52, 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, 94, 12,158,231, 17, 17, 17, 1,165, 82,201, - 44, 90,180,104,162, 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31,142,227,116, 90,173, 54,194, 27,167, 68, 34, -193,179,207, 62,139, 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, 26,209,170, 85, 43,167,216,242, 80, 0, 91, - 98,184,111,203,114, 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33,118, 8, 54,224,192,198,221, 29, 46,230,151, -196, 19,144,134,174,183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207,246, 23, 78,142,227, 96, 52, 26,241,243,207, - 63,227,228,201,147, 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124,243,205, 24, 51,102, 12,146,146,146,252,198, -157, 16,178,176,168,168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, 96,183,219, 97,179,217,192,113, 28,130,130, -130,160, 80, 40, 16, 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234,207, 78,200, 93,183,124,194, 77, 35,223, 32, - 88,241, 1,131,118,109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, 90, 11,196,106, 23, 42, 95,157,248,201,243, -127,250, 61,186, 92,100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88,209,234,174,187,238,202, 41, 41, 41,233,239, - 67,108, 93,198, 25, 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237,183,223, 80, 86, 86,118, 41, 46, 46, 46,100, -224,192,129,236, 75, 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40,204,219,134,194,211,219, 33, 8, 13,174,117, -195,230,249, 59, 9, 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168, -209, 67,214,245,193,235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, 68, 4,146,146,146,160, 84, 42, 33,147,201, -192,113, 28, 24,134,193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155,223,112, 42,149,202, 71, 23, 46, 92,216,200, - 2,137, 14, 11, 3,199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, 67,186,114, 50,117,117,117,198, 61,123,246, -168,247,239,223, 15, 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, 27,113,207, 61,247,224,219,111,191, 69, 70, - 70,134,223,184,215,215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186,117,107,103,220,197,141,231,121, 72, 36, 18, -164,164,164,160,182,182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, 11, 11, 67, 66, 66,130,211,113, 19,197,209, - 7,159,191,219,136, 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93,187,118,208,104, 52, 80,169, 84, 78,110, 95, -156, 94,180,136, 83,111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113,142,175,253, 39, 78,156,216, 51, 43, 43,107, -122, 70, 70,198,119, 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178,166,187, 30,239,225, 58,222, 29,173,204,204, - 76,198, 17, 73, 6, 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240,249,243,231, 81, 83, 83,131,224,224, 96,205, -204,153, 51, 53, 3, 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, 45, 0,119,223, 86, 96, 89, 22,125,250,244, -193, 49, 71,107,199,176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159,103,198,143, 31,207,137,110, 6, 33, 4, 6, -131, 1,177,177,177, 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127,112, 47,164, 50, 6,172,132, 65,119, 82,133, - 95, 7,245, 7, 3,192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51,103,206, 4,228,104, 57,226,197, 92, 41,167, -232,104,236,220,185, 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, 80, 40,160, 84, 42,153,239,190,251,238,237, -228,228,228,216,241,227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108,226, 76, 75, 75,243, 27,151,173, 91,183,226, -139, 47,190,192, 83, 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, 32, 0,176,216,172,208,215, 27,156, 77,186, -118,187, 29, 71,182, 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147,235,105,177,247,125,190, 44,117, 64, 24,191, -103,235, 37,235, 30, 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71,177,118,237, 90,188,243,206, 59,248,247,191, -255,125,153,171,229,239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29,223,120,227, 13, 86,116,180,148, 74, 37, 24, -134,129,209,104,132,201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, 54,255,215,107,115, 37,163,248, 93, 41,215, -175,109,155,192,182,211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, - 38,147, 14,207, 63,255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58, -116,232,128, 69,139, 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, 57, 50,241,198, 27,111,252,180,190,190,190, -186,190,190,254, 83, 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191,190,223,228,201,147, 37,110,125,116, 36,222, -236, 81,171,213, 6,131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99,199,142,184,235,174,187,192,243, 60,148, 74, - 37,212,106,117,163,102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, 31, 62, 28, 82,169,180, 17,167,152, 15,135, - 15, 31,142, 23,222,155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156,122,189,190,126,243,230,205,138, 87,159,122, - 10, 55,182,111,143, 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147,157, 0, 16, 36, 18, 9,186,116,233,130,178, -178, 50, 20, 20, 20,160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211,120,239,189,247, 96, 50,153, 2,142,123,251, -246,237,113,235,173,183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14,237,218,181,195,202,149, 43,145,154,154,234, -151,179, 83,167, 78, 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234,157,215,136,143,143,111, 18,231,134,189,231, -241,229,198,205, 48,153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138,187,200,185, 96,193, 2,212,212,212, 56,141, - 3,241,165, 92, 52, 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, 51,192,231,173,120,156,152,185,228, 89, 89, - 89,211,221,207,247,199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92,254,230,230,205,155,195,107,107,107,113,250, -244,105,176, 44,235,108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202,203,203, 33,151,203, 33,145, 72, 96, 54,155, - 1,160,187,183, 7, 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, 26, 10,134,216, 33,254,135, 31,126,128, 90, -173, 70,112,112,176,243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, 1,150, 1, 24, 9,192,178, 4, 44,195,128, -221,149, 3,134, 1, 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228,201,197,114,255,190,101,203, 22, 4,202,217, -174, 93, 59,168,213,106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32,156,164,193,141, 16, 16, 21, 21, 5,158,231, -153, 69,139, 22, 77, 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, 54, 61, 33, 33,148, 0, 82, 34, 77,225,194, -165,151, 0, 66,104, 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73,147, 42,200, 37, 32, 72,151, 46, 69,164,131, - 5, 20, 36,129, 64, 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, 33,194, 5,231,125,158,121,118,167,189,115, -206,156, 51,103,222,243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235,215,175, 35, 33, 33, 1,245,235,215,119,219, -103,171,168,168, 40,235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138,138,114,237,251, 53, 26, 77,126,159, 62,125, -202,248,109,228,229,229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, 82,235, 80,110,102,142,234,227, 15, 63, 16, - 45,155,250, 6, 0,224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191,220, 53, 19,192,224,202,248,117, 58, 29, 76, - 38, 19, 34, 34, 34,112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16,173, 6, 44, 25, 25, 25,157,162,163,163,127, - 93,177, 98, 69, 68,243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, 59,119,238, 76, 49, 24, 12,255,182,153,206, - 93,226, 68,198, 55,201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, 4,157,159, 33,213,107,140,119, 76, 12,151, - 0,142, 1, 24,176,224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, 63,147,201,132,107,215,174, 97,204,152, 49, -150,188,188, 60, 9, 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219,182, 45,224,213, 87, 95,221,163,215,235, 95, -116,147,250,219,172,172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, 31,154,166, 75,147,227,242,193,100, 1,138, -162, 96, 52,154, 81, 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182,118, 84, 34, 22,122,181,125, 49, 88,199,113, - 28, 72,130, 40,186,246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236,179,204,252,252,252, 32, 18,137,240,237,183, -223,226,198,165, 19,144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241,250, 3, 68, 53,243,114, 75, 16,250,251,251, - 99, 64,199,142,136,238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, 5,128, 99, 72,119,131, 8,176,246,116, 6, - 5, 5,225,183,223,126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183,111,223,198,238,221,187, 17, 21, 21, 85,237, -188,219, 45,120, 51,103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, 8, 69, 69, 69,248,247,191,255,141,156,156, - 28,183, 56, 29,135,247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, 18,130, 67,151,118,130, 0,129,171, 59, 62, - 40, 35, 10,215,239,186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100,117,170,242, 56,130, 32,174,217,141,173, 51, -103,206,156, 69, 16,196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, 65, 28,181,137,176, 1, 14,219,174, 85, 75, -104, 41, 20,138,246,158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18,137, 68, 77,242,242,242,164,185,185,185, 48, - 24, 12,186,249,243,231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61,194,246,237,219, 1,224,128,107,159, 13, 18, - 44,203,150, 86, 10,231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205,155, 55, 87,249,194,120,245,251,195,184,126, -253, 58, 28,195, 3,216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248,170, 28,224, 93,193, 93,223, 47, 87, 51,115, - 42, 66, 70, 70, 70,133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, 32,151,203, 9,177, 88, 76,136,197,226, 48, -187,200, 18, 8, 4,165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, 61, 50, 51, 51, 43,220,175, 86,171, 59,169, -213,106, 60,143,176, 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, 51,128,159, 59,189, 51, 13,147,251, 70,245, -172,238, 48,181,253,126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183,183, 55,250,246,237, 11,165, 82,137,153, 51, -103, 98,248,240,225,213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, 52,188,110,221,186,176, 88, 44,176, 90,173, -176, 88, 44, 72, 78, 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145,241, 77,242,254,243, 31,102,246, 30,249,170, -241,118,206, 15,200,206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160,105, 6, 98,177, 64,185,244,139, 15, 78,177, -224, 64,146,132, 5,192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, 19, 19,147,157,159,159,159, 8,160, 23, 0, -228,231,231, 95, 28, 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169,215,235,171,162,244, 4, 48, 25, 64, 31,148, -248,129,216, 81, 0, 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0,248,217,117, 15,200,102,209, 50,153,160,206, - 47,196,132,119,230,252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, 39, 25,111, 76,152, 38,173,170, 67,224,234, - 69, 88, 13, 31,157, 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191,124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, - 29, 88,139, 1,132, 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84,224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, - 16, 12, 81, 42, 72, 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242,100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, - 38,147, 9, 70,163, 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, 98,177, 24, 31,124,240, 1, 94,126,249,101, -204,155, 55, 15,177,177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50,178, 42, 94,206,177,140,236,247,211, 46,182, - 28,135,248, 0, 84,187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155,115,209,162, 69, 80,171,213,229, 44, 89,246, -255,161,161,161, 88,183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, 56,142,107,103,243,157, 50,199,197,197,221, -138,139,139,139, 38, 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253,210, 18, 58,141,141,118,119,220,105,191,209, -190,190,190,130,240,240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30,169, 80, 40, 62,251,238,187,239, 26,233,116, - 58,220,190,125, 27,171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102,201,114, 92, 31, 56,112, 32, 26, 52,104, 80, -198,154, 37,151,203, 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, 73, 73, 49,138,197, 98,132,133,133,201,179, -179,179,141, 98,177,184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, 93, 25, 11,150,227,175,227,255, 67,135, 14, - 85, 57,116,104,231,108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, 31, 88,150,133,191,191,191, 91,156,118, 81, -107,115,128,135,201,100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149,250,234,200,100,178, 82,107, 38, 15, 87, 13, - 2, 11, 11, 69,193,104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53,230,183, 55,176, 5, 5, 5, 56,113,226, 4, -126,248,225, 7,188,252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, 51,174, 46, 88,176,160,142,175,175, 47,172, - 86, 43, 30, 62,124,136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69,195,100, 48,163, 88,163,197,103, 95,108,173, -176,234, 1, 64, 65,238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206,157,191,208,106,181, 69, 6,131, 97, 56,128, -101,142,253,169,252,252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, 55, 40,103,166,166,166,206,170, 87,175, 94, -153,141,102,179, 25,245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175,195,110, 47, 0, 39, 1,172,171,168, 46,217, -135, 14,117, 58, 35,148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, 13,177,119,128, 43, 90,170,152, 25, 87, 46, -169,246, 99,237, 47,236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, 85, 0,228,190, 16,119,253, 24,132,202,118, -143, 38, 31,118,139, 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, 10,184,156,144,128, 93, 63,253,132,145, 61, -122, 64, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, 53,107,134,123,247,238,149, 9, 67,193,113, -156,187,249, 47,205,187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139,177,117,235, 86,156, 59,119, 14, 51,102,204, -192,248,241,227,209,189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195,185,213, 45, 35,103, 78,231,247,126, 77,202, -221,206,185, 96,193, 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100,183, 60, 57, 10, 35,231,117, 0, 62,246,109, - 51,103,206,156,229,238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116,153,156, 23, 20, 20, 92,189,122,245,106, 11, - 15, 15, 15,220,185,115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175,254,253,251,159, 90,182,108, 89, 24,203,178, -200,201,201,193, 71, 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195,135,203, 63,108, 7, 15, 30,116,107, 8,196, - 46,164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49,137,191,102, 42, - 84,101,125,170,202, 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, 90,158,154,154, 90, 97, 67,114,238,220, 57, -176,182,134,214, 93, 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82,200,229,242, 50, 34, 75, 42,149, 86,249,224, - 84, 21,144, 84, 38,147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, 5, 5,237,159,233,161, 67,112,160,173, 52, -140, 70, 19,116, 90, 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, 66,135, 14, 29,202,137,172, 26,154,231,211, - 11, 10, 10,186,175, 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45,214,233,116,221, 1,164, 87, 75,108,178, 28, - 40,171, 21, 6,147, 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206,222, 89,201,254,251, 52, 77, 71,219,227,190, -185,129,127,213,171, 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226,100,189,233,104, 72,198, 95,209,179, 43,234, -197,151, 88, 71,141,102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228,147, 85,147, 58, 68, 16, 68,169,211,247,212, -169, 83,113,243,198, 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63,212,114, 44, 91,113,172,218,220,187, 29, 92, - 32,150,237,222,237,114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, 83,238,125, 83,221,252, 59, 10,152, 21, 43, - 86, 96,198,140, 25,216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200,205,205,197,141, 27, 55, 96, 54,155,221, 78, -167,163,223, 92, 82, 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119,228,116, 22, 90,251, 79,255,142, 97, 81,109, -107,196,249,217,103,159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69,156,144,231,228, 11,101, 95,183, 56,137, 30, -231,117,231,227, 1, 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, - 52,120,240,224, 65,171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51,102, 32, 34, 34, 2,254,254,254,161, 42,149, - 10,249,249,249, 88,188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, 11,137,228,175, 14,171,221,178, 5, 0,227, -199,143, 47,103,209,178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, 24, 50,100,136,224,207, 63,255,100,250,246, -237,139,161, 67,135, 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212,236,223,191,255, 67, 0, 95,186, 33,182,106, -205, 49,222, 94,201,220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133,194, 82, 71,121,119, 56,237, 67,135,142, 15, - 32, 73,146, 80,169, 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, 80, 40,239,220,185,211,200, 62,241, 34, 47, - 47, 15, 61,123,246,188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, 25, 13,181, 70,107,127, 30, 54,110,220,136, -196,196, 68,152, 76, 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, 92,206,246,235,215, 15, 87,175, 94,133, 84, - 42,165, 80,131,248, 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, 84, 85, 39, 38, 38,194, 98,177, 96,222,188, -121,204,175,191,254,122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225,161, 58,122,244,232,123, 0,182, 86,246,242, -166,104,155,104,175,197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44,203, 98,226, 91,111,161,119, 29, 13,134,190, - 20, 0,125,214, 93, 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, 7, 0,253,186, 13, 70,171,102,229,195,131, -117,238, 85,210, 39,187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171,106, 88,180, 74,159, 57,251,253,107,211,166, - 13,154, 52,105,130,179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212,212, 84,220,188,121, 19,133,133,133,213, 46, -163,239, 79,238, 66,161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224,199, 46,119, 59,154, 14,248, 12, 0, 80, 39, -192,187, 90, 66,203,145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202,214,171,123,254,147, 68, 69, 66,235,129, 90, -173,238, 48,114,228,200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129,129, 61, 58,118,236, 40,148, 72, 36,184,124, -249, 50,246,239,223,191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43,162,253, 65, 84, 42,149,130,197,139, 23, 19, -155, 55,111,174,208,202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, 21,253,250,245, 99, 18, 19, 19, 33, 22,139, - 49,104,208, 32, 38, 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, 63,244, 1,208,181, 26,247,202,238, 24,239, - 9, 55, 29,224, 43,234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, 98, 49,109,143,252, 78,146, 36,172, 86, 43, -218,182,109,139,220,220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, 42, 20, 10, 97,177, 88,208,181,107, 87, 16, - 4,129, 53,107,214, 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, 2,203,214,238, 87,101, 98, 99, 99,203,136, - 41, 87,145,151,237,247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55, -247,160,211,230, 2, 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, 63,126, 92,112,224,192,129, 94,135, 14, 29, - 74,184,123,247,238,163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, 30, 94,122,233,165,207, 51, 50, 50, 42, 17, - 90,182,251,104, 50, 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238,220,255, 67,239,144, 34, 12,105,237,141,248, - 35,151, 48,186,141, 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220,126,169,178, 36,150,107,253,200, 14, 32, 31, -221,171,118,222, 29,211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31,127,140, 62,125,250,224,222,189,123, 56,127, -254, 60,238,221,187,135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211,123,161,209, 21,131, 36, 72, 20, 20,231,195, -100, 54, 34,118,210,220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, 57,123,246,108,100,103,103,151,177,100, 61, -142, 95,214,179,142,202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94,148,191,191, 63, 8,130,192,138, 21, 43,224, -235,235,219, 9,192, 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200,201,201,113, 57,111, 95,175,215, 91,163,162, -162, 68, 33, 33, 33,101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26,177,177,177, 88,184,112, 33,194,195,195, 49, - 96,192, 0, 68, 71, 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169,196,199,143, 31,239, 70,146,100,130,195, 11, -164, 12,167, 43,216, 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, 11, 23, 46,196,172, 89,149,187,122,108,216, -176, 1, 40,239, 79,245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26, -162, 50,156, 85, 5, 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224,224, 96, 87,129,252,170, 44,163, 26,224,111, -229,100, 56,246,218,210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, 20,150, 29, 78, 50, 91,255,154, 74, 45,105, -219, 11,150,235, 63,186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, 54,110,220,248,216,121,119, 83,108,149,231, -100, 57, 66,225,225, 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126,253,229,151, 95, 6,249,249,249, 33, 61, 61, - 61, 64, 36, 18, 13, 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226,156, 54,109,154,121,206,156, 57,210, 81,163, - 70, 97,232,208,161, 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233,233,248,241,199, 31,161, 86,171,111, 87,150, - 78,150,227, 8,185, 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171,184,163, 53,171,154, 34,203,101,253, 4,128, - 95,127, 60,136,185, 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80,131, 85,223,198, 71,163, 95,198,178, 29,191, - 1, 0,206,159,171,178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175,227,134,143, 86, 57, 78,123, 39, 81,171,213, -162,168,168, 8,241,241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, 23,223,125,247, 29, 20, 10, 69,141,202,232, -195,183,102, 99,206,178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241,177,203,221, 25,110, 88,179, 42,228, 92,185, -114,101, 77,235,210, 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, - 25,194, 11, 13, 13,221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199,190, 0,192,192,129, 3,113,248,240,225, 42, -123, 20,193,193,193,168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229,114, 28, 61,122, 52,187,160,160,160,128,227, -184,106, 77,115,179, 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239,222, 13,217,184,113,163,160,146,151, 95, 41, -206,159, 63, 79,163,138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, 4,170, 10, 72, 42, 20, 10,145,148,148,132, -185,115,231,130, 32, 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159,129,175,116,110, 9,130,128,213, 82,126,164, -218,179, 80, 87, 42,178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130,239,198,141, 27,133,238,148,251,133, 11, 23, -104,142,227,170, 61,236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57,238,139, 57, 81,219,190, 61, 38, 34, 8, 11, -174,156,219,135,226, 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, 46,186,181, 67,134, 12, 25,245,213, 87, 95, -181,112,181,211,141, 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, 19,235,177, 99,199,222,124,245,213, 87,209, -186,117,107,132,132,132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, 23,192,148, 42,238,227,193, 69, 95,204,137, -137,223,113, 76, 66, 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182,238,183,138,197,162, 59, 85, 89,139, 28,173, - 89,181,249, 98, 28, 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243,197,112, 44,239, 39,134,117,207,104,180,122, -109, 27,118,206,235, 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138,101, 54,113, 83, 61,171,169, 61,239,149, 89, -174,170,107,209, 34, 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219,162, 71,143, 30,184,113,227, 6,110,220,184, -129,105,211,166, 85, 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56,151,123,109,192,157,186, 52,121,242,100, 0, -248, 71, 89,183,170, 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165,251,210,210,210,192,178,172,161,186, 5, 99, -177, 88,236,193, 49,203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, 91,183,110,232,210,165, 75,233,240,137,227, -226, 32, 76,112,224,192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, 0,185,185,185,125,187,118,237,122, 74, 40, - 20,186,245, 21, 77,150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, - 60, 60, 60,240,253,247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191,155,159,228, 28,128,128,161, 95,238,122,120, - 46,223, 90,111,232,151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, 57,242,184,187,229, 78,211,244,131,236,236, -236,106,135, 75,224, 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36,255, 51,231,174, 94,190,240,243,169,126,253, -162, 58,180, 3, 9, 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214,240,225,195,159,102,177,105,178,179,179, 59, - 13, 27, 54,108, 10,254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, 69,129, 64, 32, 5, 48, 23, 64,218,165, 75, -151,214, 94,186,116,169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0,254,168,186, 30,229,190, 13,142, 13,235,215, -251, 95,125, 65, 16,156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222,200,106, 85, 89, 71,202,225, 11, 28,181, 62, -100, 63,101,202, 20, 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90,165,195,252,117,103, 16,202,112,183, 59,124, - 0, 48,251,255, 38,212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, 16, 32, 47, 47, 15, 73, 73, 73,200,201,201, -129,193, 96, 64, 98, 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, 85, 70, 79,147,243,159, 56,124, 88,109,161, -101,181, 90, 63,109,208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, 38,106,170, 61, 11, 79, 36, 18,153,154, 52, -105, 66,184,154,157, 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8,130, 16, 84,212, 11,177,255,103, 89,150, 17, - 10,133,113, 53,188, 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231,242,209, 55,107,214,172,244,139,246,206, 49, - 81,108, 31, 91,213, 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238,119, 12,104,250, 92,131,224,210,250,143,122, -179,222,185,124,107, 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253,221, 73, 75, 73, 73,177,252,235, 95,255,250, - 86,171,213, 78, 6, 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26,158,155,150,159,159,223,211,105,219, 31,118, - 65,101,143,107, 87,109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45,203, 13, 69, 81,233, 85,237,119,142, 17,230, -136, 91,240,198,172,171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69,213,204, 91,174,187,121, 15, 9, 9, 65,157, - 58,117, 74,127,237,112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, 17,223,157,125,178,220,225,172,237, 50,170, -140,179, 78,157,109,181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, 57, 5,252,253,228, 57,121, 78,158,243, 9, -114, 62,151,224,189,212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129,168, 68,149, 86,103,166, 79, 77,148,237,105, -158,147,231,228, 57,121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227,231, 26,188, 89,149,231,228, 57,121, 78,158, -147,231,228, 57,121,206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240, - 66,139, 7, 15, 30, 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, 30, 60,120,161,197,131, 7, 15, 30, 60,120, -240,224,193,131, 7, 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72,233, 7, 1,163,163,163, 9,254,182,240,224, -193,131, 7, 15, 30, 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, 7, 15, 94,139,212, 14, 72, 94,108,241,224, -193,131, 7, 15, 30, 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172,103, 10,101, 44, 90,188,224,226,193,131, 7, - 15, 30, 60,120, 60, 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, 30, 60,120,240,120, 76,129, 85,217, 47, 15, - 30, 60,120,240,224,193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158, -243, 31, 11, 33,127, 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30, -181, 39,178, 8, 87,235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143, -199, 3, 1,126,232,144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, 52,115,224,116, 53,200,107, 50,251,224, 52, -207,201,115,242,156, 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, 55, 0,103, 1,116,183,253, 86, 40,188,106, - 27,252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168,148,119,134,231, 81, 21,132,168,124,136,185, -170,253, 60,120,240,224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, - 22, 0,111,135,109,191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247,170, 76, 13,199,137,109,252, 82,219,194, 2, - 48, 1, 48, 3,208, 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87,170,185,255,185, 66, 72, 72,136,220,199,199, -167,207,245,235,215, 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225,201,172,172, 44, 35, 95, 93,158, 11,244, 5, - 48,211,246,127, 17,128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, 29,154,166, 9,131,193,144,169,215,235, 79, -209, 52,253,165,173,221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, 25,153,153,153, 59, 0,236, 1, 48,188, 78, -157, 58,163,235,215,175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211,201,131,199, 63, 9, 68,101,214, 8, 87,152, -203,113,220,232, 50, 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, 23,185, 92, 78, 3, 24, 87,133,200,242,187, -124,249,114,189,201,147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241,115, 96, 96,224,175,171, 86,173,250,142,227, -184,116,130, 32,180,213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28,199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81, -212, 55, 0,106, 34,222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10,133, 55,205,102,243, 9,154,166,215, 2,176, -212,128, 83, 38,145, 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, 70,115,202, 98,177,172,181, 9,206,167, 13, - 33,128,104,142,227, 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, 28,199,113,196,207, 63,255,220,134, 97, 24, -210, 86, 63,162, 1,252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180,208,100,178,151,175, 95,191,222,116,247,238, -221,204,215, 95,127, 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, 43,235, 61,231,227,253,252,252,150,147, 36, -233,239,206,245, 89,150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142,143,151, 53, 2,144, 94,195,250,253,247,113, -154, 98, 56, 0,136,151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59,173,237,202,113,192,148, 40, 47,242,113,133, - 86,104,104,104,124, 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, 77,175, 92,185,210,125,223,190,125, 47,107, -181,218,225,213,164,124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20,213,104,247,238,221,109,223,126,251,237,247, - 55,110,220, 88,119,196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0,190,124, 10,233,228,193,227,159,134,110, 40, -235,163,245, 57,128,207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, 57,115,230,144, 80, 40,180, 91,180,218,235, -245,250, 32, 39, 43,152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, 17,217, 10,133,162,201,171,175,190,170, 37, - 8, 66,176,123,247,238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28,199, 93, 32, 8, 66,237,102, 38, 91,248,250, -250,238, 95,178,100, 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67,143, 30, 61,218,239,243,207, 63,255,176,160, -160, 96, 8,128,132,106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, 97,112,112, 48, 76, 38, 19, 18, 19, 19,123, -159, 56,113,162,235,198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237,189,239,191, 31,127, 28,212,225,141, 55,132, -190,190,190,224, 56, 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226,226, 97,174,238,247,211,132, 68, 34, 33,183, -111,223,222, 90, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, 44, 51, 51,211, 91, 44, 22,187,220,207, 48, - 12,186,118,237,218, 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87,215,119,238,220,233,191,118,237,218,215, 0, -148, 19, 90, 36, 73,250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98,177,160,121,243,230, 79, 53,255,241,241,178, - 48, 0,211, 99, 98, 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, 78,199,250,182,220,225,255, 99,167,213, 1, -245, 0,224,216, 13, 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213,106, 53, 68, 34, 17,172, 86, 43,178,179,179, - 17, 25, 25, 41,248,246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224,216,177, 99,214,237,219,183, 91,162,162,162, - 68,227,199,143, 87,118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167,168, 49, 99,198, 72,226,226,226, 2,142, 30, - 61, 58, 48, 33, 33,225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18, -181, 9, 10, 10,138,167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109,199, 30,100, 89,118, 80, 85,150,172, 49, 99, -198,116, 60,126,252,248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225,135, 31,166, 2, 64, 74, 74, 74,195,129, 3, - 7,134, 78,157, 58, 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130,208, 87, 37,178, 34, 35, 35, 47,159, 63,127, -222, 75,165, 82,149,217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234,213,235, 82,114,114,114, 23, 0,127,186, 35, -136, 26, 55,110,124,250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, 6, 3,148, 74, 37, 70,140, 24, 33,238,214, -185, 83,221,169,211,222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119,198,197,121, 82, 15, 31, 66, 46,151, 67,167, -211, 1, 0,188,188,188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215,164,164,222, 79, 73,108, 73,109,191,102, 0, - 71, 4, 2,193, 96,137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102,221,161, 7, 15, 30, 12,185, 92, 14,139,197, -194,162,100,232,144,126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212,106, 53,242,243,243, 97, 54,155, 81, 84, 84, - 4,150,101, 9,185, 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, 74, 42,179,141,166,105,232,245,122,152,205, -102, 88,173, 86,104,181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10,190,204,201,201, 73,123,194,217,207,179, 11, -162,248,120,217,125, 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, 15,143,252,110, 10,183, 89,199, 30,212, 2, - 31, 11, 0, 23, 46, 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142,227,170, 61, 28,151,156,156,188,238,197, 23, - 95, 36,110,221,186,117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12,223,165, 75,151, 22,196,198,198, 46, 2,176, -117,247,238,221,239, 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219,224, 56,174, 29,128, 0,123,219, 98,107,119, -253, 28,214,111, 16, 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130,248,213,225, 60, 53, 65, 16,191,214, 52,153, - 78,191, 37,157,110, 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207,158,203,174, 93,187,214, 60, 43, 43,203, 39, - 43, 43,203,231,218,181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62,245,180,195, 62,241,229,203,151,235,237,223, -191,127,209,233,211,167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, 11,154,238,211,167, 79,238, 79, 63,253,196, -116,232,208, 65,126,252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4,174, 56,109, 16,169, 84,170,239,207,157, 59, - 87, 78,100, 57,162,110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, 54,200,100, 50,217,190,159,126,250,201,211, -203,203, 11,185,185,185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118,247, 46, 72,139, 5, 43,190,152,239, 37,151, -203,247,186,104,236,203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99,193, 2, 88,173,214,210, 33, 87,171,213,138, - 75,147, 39, 67,253,227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, 3,142,156,147, 1, 20,216,150,201, 0,174, - 68, 70, 70, 94, 75, 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, 99,198,140,201,123,246,236,105,213,165, 75, - 23, 36, 38, 38, 34, 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41,179,176,236, 95,239,152, 58,117,234,228,238, -223,191, 31, 35, 70,140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34,211,237,116,154, 76, 38, 24,141, 70,232,245, -122,164,164,164,200,151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179,102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, - 9,231,221,234,244,127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49,173, 29, 26,216,234,242, 86,118, 63,179,109, -105,213, 3, 72,123,156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10,197, 77,193,138, 85, 96,197, 42, 48,126,237, -144, 44,121, 5,225,225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151,173,167,156, 15, 96, 89,108,108,236,231, 4, - 65, 92,136,141,141,157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165,243,153,120,222,121,206,255, 45,206, 42,180, - 72, 0, 65, 16, 71, 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, 0, 72, 92,253,218, 23,135,237, 1, 28,199, - 13,112, 56, 47,160,134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163,237, 59,126, 33, 8,226, 16,128, 95, 68, 34, - 81,155,214,173, 91, 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238,221,235,213,162, 69,139,193, 34,145,168, 13, -128, 95,148, 74,229,161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, 54, 0, 80,148,144,144,160,232,208,161,131, -158,166,105,130,166,105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218,121,244,234,213, 43,117,250,244,233, 99, 92, - 8, 14, 71,188,190,120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, 48,121,242,228, 96,145, 72,244,102,101,119, - 75, 40, 20, 78, 89,188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88,144,148,148, 4,147, 94, 7, 74,171, 1,165, - 41,130,250,254, 61,168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, 77,108,108,144, 37, 53, 21, 41,123,246,128, -161,203, 27,127,104,171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, 83,158,176, 37,107, 41,199,113,114,142,227, -228, 4, 65,172,234,216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, 59,127,254,124,119,154,166, 69, 52, 77,139, - 46, 92,184,208,197,100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98,177, 24,114,185, 28,157, 59,119,190,191,121, -243,102, 42, 44, 44, 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171,213, 46,118,151,207,106,181,194,108, 54,195, -104, 52,194,100, 50,225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, 11, 40,138, 50,199,198,198, 42,125,125,125, - 63,124,146,249,140,137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, 56, 1, 88,108, 62, 89,118,248,219,184, 45, -181,116, 43,104, 0, 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104,227, 55,223,124, 19, 70, 74, 85,184,104,233, -143,239,216,207,113,210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199,113,107,106, 33,205, 95, 1,232, 10, 96, 85, - 77, 78,126, 2,233,172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134,103, 31, 7, 81,141,208,123, 80, 51, 50, 61, - 42, 2,220,160,102,100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113,209, 28,199, 69, 47, 90,180,104,161,195,251, -221,190, 46,119,211, 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, 41,209, 20,142, 74,210, 33,115,165,179, 11, -131,130,130,226,227,227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175,177, 99,199,190,151,158,158, 30, 83, 69, 34, - 36,217,217,217,109, 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237,237,205,216, 15,240,246,246,102,138,139,139, - 69,122,189, 94,192, 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, 64, 64, 64, 84,255,254,253, 43, 28, 58,160, - 40, 10,122,189, 30,122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110,110,238,250, 10, 21,135, 84, 26, 21, 21, 21, - 37, 42, 40, 40,128,183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, 88,117, 90,208, 90, 13, 56, 77, 49,242,239, -221, 65,135,102, 77,197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195,184,113, 66, 15, 15, 15,116, 31, 93, 50,207, -224,120,179,102,224, 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18,237, 10, 10,132,202,109,219,162,212,106,245, -178,167, 81,217,165, 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22,156, 60,121,242, 31,247,208, 75, 36, 18,200, -100, 50, 88,173, 86,212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, 30, 98,177,248,135,252,252,252,133, 89, 89, - 89, 41,238,242, 81, 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55,104,208,128,152, 60,121, 50, 99, 48, 24, 26, -174, 94,189, 58,249,228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, 83, 51, 0,205,226,227,101, 98,155,229,215, -242, 63,198,201,161,196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225,126, 66,189, 72, 0, 29, 0, 47,155, 40,120, -149, 32,136, 14,205,155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, 70,198,178, 44,193,178, 44,222,110, 95,132, -201, 29, 5,160,168, 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, 62,155,111,122,122,122,246,145,201,100,245, -105,154, 38,117, 58, 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, 29, 30, 30, 30, 75,102,205,154,213,201,219, -219, 27,191,255,254,123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91,150,175, 92, 19, 26, 26,168,194,141,243,135, - 67, 23,110,216,189, 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, 27, 64, 16,196, 17,103,161, 84, 45,179,211, - 99,158, 95,133, 69,203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86, -171,225,227,227, 3,171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34,145,217,104, 52, 66,161, 80,176, 34,145,136, -179, 93,135,176,205, 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, 20,149,248,146,113, 28,215,222,207,207,207, -229, 62,179,217, 12,157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, 52,221,182,210, 46, 45, 77,183, 12, 8, 8, - 64,102,102, 38,228,114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138,139,193,106, 52, 96,245, 26, 80, 22, 3, 66, -155, 52,131,125, 70, 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56,155,192,162,105, 26,180,205, 57,218, 62,156, -232,239,239, 15,251,140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, 38, 33, 43, 43,171, 76,157,152, 52,105, 82, -169, 79, 86,215,174, 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127, -127,125, 94, 94,222,207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70,112, 28,135,223,127,255, 29, 50,153, 76,196, - 48,204, 45,154,166, 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, 54, 11,209,155, 40,113, 56,207,112,209,144, -184,117,235,220,228,172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111,170,146, 44,143,235, 16,168,106, 61,208, 67, -175,144, 8,244,108, 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87,207,223,223, 95,150,156,156,108,154, 63,127, -126,131,237,219,183, 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254,253,251, 55,148, 74,165, 68,113,113, 49,212, -106, 53,114,114,114,240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, 36, 36,100,243,235,175,191, 62,246,165,151, - 94, 18,217, 45,164,122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175,118,189,124,244,232,209,158,217,179,103,123, -188,242,202, 43, 77,165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125,250, 52, 84, 42, 21, 72,146, 12,122,220,250, -106,178,178,161,117,130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242,252, 88,180, 42,120,215,183,179, 91,164,170, - 16, 75,198,153, 51,103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50,142,199, 57, 28,111,174,109,177, 85,173, 64, -147, 44,203, 34, 35, 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199,113,238,204, 62,227, 8,130, 96, 79,157, 58, -229,115,249,242,101,125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, 24, 34, 45, 45, 77,124,241,226, 69,213,237, -219,183,131,108,189, 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, 50,247, 84,135,237, 69,248,251,181,107, 37, - 34, 75,167,181, 13, 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25,220,190,127,142,176,139, 44,171, 77,104, 89, - 44, 22, 80, 20, 5,150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, 96,124, 70, 70,249,119,225,144, 33, 67,240, -238,187,239, 98,234,212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88,150,109, 13,160, 24,192,241,231,237,161, 55, -155,205,165, 22, 40,147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, 77,219,185,137, 3, 7,246,227,194,133, 11, -100, 66,194,173,176, 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, 40, 44, 40,241,127,170, 40,164, 66, 4, 42, - 31,178,227, 42,227,124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41,143,105,209,122, 69, 66, 18, 95, 79,107,233, - 43,251,176,149,159, 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, 97, 13, 84,117, 22, 46,252, 34,228,246,237, - 59,230, 57,115,230, 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38,147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26, -116, 53, 48, 48,176,193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101,245,122,253, 3,163,209,120,218,106,181,158, - 6,112,173, 58,137,245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, 86, 43,114,115,115,209,169, 83, 39,193,161, - 67,135, 90,212,228, 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82,169,124, 73, 42,149, 6, 3, 96,180, 90,109, -142, 94,175,255,163, 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, 62,124, 8,134, 97,114, 30,183, 14,200,196, -228,163,155,231, 15,213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61,247,176,251, 80,193, 81, 64,185, 16, 72,151, -227,226,226,228,139, 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187,101, 63,206,225,248,243,143,145,198,138, 45, - 90, 21, 41, 72,160,100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153,153,153,144, 72, 36, 72, 75, 75,131, 68, 34, -201,114,167, 19, 34,151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215,189,118,237,154,178, 83,167, 78, 47,202,229, -114,134,227, 56,152, 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180,111,223,254,250,238,221,187,141,168, 36,254, - 21, 65, 16,191,100,101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, 25,242, 20, 10,133,215, 43, 75,168, 80, 40, -188,153,148,148,212, 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, - 46,147, 33, 35, 61, 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, 74, 85,250, 18,165,104,186,100, 97, 24, 88, -104,186,212,162, 37, 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201,216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, - 58,116,192,148, 41, 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116, - 40, 44, 44, 20,202,229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240,224,129,166, 34, 78,155, 48, 43, 21, 93, 44, -203,130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136,223,178,157, 27, 52,104, 16,113,232,208, 33, -176, 44,155,254,132,179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, 21,113, 58,246,254, 28,183, 17, 46,142, 41, -135, 15, 62,248,224, 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25,104, 70,111, 62,183, 83,247,237, 93,141,126, -222,183, 43,127,179, 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174,223,184, 42,127,199,246,189,201, 15, 31, 62, -212,172, 93,187,182,227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69,227, 55,223,124,115, 92, 97, 97,161, 56, 62, - 62,126,119, 86, 86,214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100,107,231, 46, 2,152, 95, 89,127,141, 32, 8, -252,244,211, 79,229,102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, 39, 39,103,152,243, 78,177, 88, 60,175, 73, -147, 38,125,111,221,186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, 16, 8,234, 48, 12,147,105, 52, 26, 99, 31, -219,162, 69,177, 19,226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226,117,200,243,107,205,178, 65,237, 96,141, 82, - 3, 32,156,214,255,176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, 87,251,212,143, 17, 44,157,171,168,141,171, -200,162,245, 9,128,246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240,210,104, 52,200,201,201, 65,110,110, 46,132, - 66, 33,148, 74, 37,214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0,147,191,191,255,111,219,183,111, 15,254,250, -235,175,133, 49, 49, 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, 67,152,205,102,226,237,183,223,142, 88,177, - 98, 69,170, 64, 32, 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213,167,190,255,254,251,161,211,167, 79,151, 90, - 44, 22,151,150, 44,251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, 56,245,195,177,163, 93,255, 51,114,164,152, -210,106, 64,105, 53,160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,127,253,131, 50,155, -205,149, 6, 54,212,104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, - 7, 91,182, 4, 67, 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, 55,110,220,200, 29, 61,122,244, 53,150,101, -219,226, 9,125, 52,243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3,201,209,163, 71,187, 38, 38, 38,138,255,252, -243, 79, 92,184,112,161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170,196,155,171,160,191,176,249, 31,238,222,185, - 7,239,188,243, 14,145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,117,225,228,247,228, 34,164, -194,239,112, 51,164, 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, 56, 80, 22, 95,165,165, 12, 49,166, 24,141, -205, 33, 62,171, 22, 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140,243, 1,156,128,137,225,238, 93,231,110,188, -244,146,143, 63, 0,152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122,190,228,231,231,183, 46, 63, 63,191,179,171, - 50,141,142,142,238, 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179,243, 65, 17, 17, 17,115,110,223,190,221, 78, - 36, 18, 17, 85,212, 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35,110, 4, 78, 80, 12, 8,101, 96, 84,173,144, - 38,110,142,176,176,171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58,116,232,150,248,248,248,176,110,221,186,113, -215,175, 95, 39,157, 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97,215,174, 93,147, 81,118,166,109, 85, 72,179, -197, 27,172, 53,156, 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92,120,140,240, 12,143,149,196, 10, 13, 24, 21, -108,111,111,139,137,213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252,124,248,249,249,161,126,253,250, 32, 8, 2, -235,214,173, 51, 62,120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10,218,213,171, 87,239,218,182,109,155,234,218, -181,107, 2,154,166,149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152,189,118,237,154, 34, 34, 34,194, 68, 16,132, -244,199, 31,127,204,191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, 96,193,130,140,148,148, 20,152,205,102,104, - 52, 26, 20, 23, 23,151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246,239,223,159,101,139, 18, 95,153,101, 99,237, -154,117,235,213, 89, 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, - 71,163, 67,252,229, 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, 22,139, 81,111,248,112, 88,109, 67,133,142, - 66,139, 33, 8,132,247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, - 79, 76, 76,220, 5,224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153,162, 40,204,157, 59, 23, 98,177, 24,115,231, -206,197,167,159,126,138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, 6, 23, 47, 94, 20,159, 63,127,158,139,139, -139,203,139,136,136, 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, 94, 94,136,141,141,197,146, 37, 75,176,121, -243,102, 28, 60,120, 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, 87,175,206, 56,120,240,160,113,213,170, 85, - 16, 10,133,196, 83,106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81,181,111, 84, 69,156,144,197,199,215,181,137, -163,100, 7, 65,116, 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150,143,254,191, 68,213,166, 59,247,175,100, 25, -103, 3,248,193,158, 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148,148,228,253,253,247,223,203, 2, 3, 3,241, -237,183,223,202,228,114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, 9,253,218,181,107,247,190,173, 35,218, 11, - 64, 11,148,204, 94,140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, 32,173, 86,251,205,214,173, 91,235, 23, 48, -190, 56,166, 31,138,120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191,254,122, 29,134, 97, 54, 85,179,220, 95, 31, - 50,100,200,214,248,248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237,142,203,237,219,183,243,198,142, 29,155,181, -105,211,166,144, 17, 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, 29,186,120,225,150,254,207,205,205, 93, 93, - 88, 88,120,233,222,189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147,179,202, 33, 96,169, 43,191,146,222,176,197, -218, 32, 8,130,226, 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152,186,119,239,142,189,123,247,250,247,232,209, -195,192,178, 44,119,236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183,155, 54,105,210,100, 98,108,108,172,154, 32, - 8,214, 21,167,253, 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, 84,160,105, 26, 6,131, 1, 6,131, 1, 28, -199,193,219,219, 27,106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, 77, 38,147,105,216,228,247,167,159, 90,245, -249, 92,175,240, 6, 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37,114,220, 75,210,226,163, 93, 7,180, 70,147, -233, 53, 23,189,229,114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, 4, 5, 65, 32, 16,192,108, 54,131, 97, 24, -136, 68, 34, 68,198,196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20,143, 51,103,109,192,145,115,242,141, 27, 55, -198, 54,107,214, 12,147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250,245, 48,155,205, 99, 1, 92, 7,176, 14, 37, - 67, 29,112, 18, 89,127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, 9,171,213,138,207, 63,255, 28,118,193,105, -175,215, 83,166, 76,169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, 37,103,182,111,223,238,255,205, 55,223,188, - 14, 32,214,153,147,101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, 47, 47, 55, 60, 57,126,252,120, 88,173, 20, - 4, 2,161,197,100, 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188,159,161, 40, 9, 97,224,232,248,110,113,244, -207, 66,197, 33, 21,170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, 49,123,237, 38,253,106,112,218, 5, 97, 77, - 56, 79,217,150, 42, 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, 84,148, 78,179,217,252,231, 71, 31,125,116, - 99,211,166, 77,189,175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75,163, 41,138,226, 66, 66, 66,132,157, 59,119, -150,245,239,223,223, 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135,205, 57,239, 2,130, 32,240, 97, 87, 45, 98, -123, 8, 96,177, 88, 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56,142,172, 70,185,251, 1,152,253,221,119,223, -133, 74, 36, 18, 98,215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118,239,222, 61,207, 54,122,145,254, 44, 62,239, - 60,231,255, 44,231,179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148,162,168, 95, 92,132,112,248, 4,192, 92, 7, - 43, 88, 85,230, 60, 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233,147,149,149,149,213,112,249,242,229, 97, 52, - 77, 91, 19, 18, 18,200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190,125,251, 28, 65, 16, 86, 55, 50,152,144,156, -156,220,169, 71,143, 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, 68, 74, 74, 10,254,248,227, 15,203,238,221, -187,211,139,138,138,170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, 3,253,255,213,244, 5, 73, 72, 72, 8, 96, - 52,226,206,195,108, 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130,231,151,223,238,221,235,221,115,198,140,125, -243,254,243,159, 32,100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44,189,120,227,198, 28,155,200,122,210, 81,225, -165, 0,150,178, 44, 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96, -203,179,110,197,178,163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235,227,227, 3,173, 86, 11,154,166,153,140,140, -140, 59, 62, 62, 62, 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, 11, 72,146,172,200,242, 1,165, 82,153,118, -230,204,153,198,111,189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, 48, 28,199,237,127,210,247,160, 75,151,157, -192,134,152,215, 0,188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, 3,254,226,116, 28,198,179, 11, 34,155, 21, -170,185, 44, 62,126, 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221,129,163,246,213,235,245, 96, 24,166, 50,107, -222,239,123,247,238, 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101,143, 30, 61, 60, 29, 15, 48, 26,141,236,225, -195,135,245,235,215,175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, 31, 30, 93,184,112,161,119,255,254,253,155, - 0, 40,245,207, 82,171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, 75,249, 0,230,141, 26, 53,106,233,182,109, -219,234, 76,152, 48, 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105,185,109,219,182,144, 9, 19, 38,100,163,196, -143, 44, 29, 60,120,240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38,147,137, 51, 24, 12,156, 78,167,227,224,250, - 43,240, 7, 51, 51, 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, 39,197,235,170,193,242,216,177, 99, 71,163, -208,208,208,207, 21, 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 23, 47, 14,229, 56, 78, 92,137, -138,174, 8, 66,145, 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192,192,192,131, 34,145,232, 29, 0,162, 42,148, -121, 69,144, 9,133,194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225,113, 74, 40, 20,126,132,202, 3,169, 86,202, - 41,145, 72, 62, 10, 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, 68,242, 56,156,143,211, 43,177, 11, 45, 3, -103, 3, 65, 16, 84,235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213,234,107,155, 85,146,179, 89, 91, 12,168, 56, -120,227,223,153,206,167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77,154, 52, 41,152, 51,103,142,102,219,182,109, -108,100,100,228,246,154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148,148,196,109,218,180,137,142,140,140, 44,112, -138, 12,255, 36,242, 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68,140, 41,134,179,205, 62, 60, 1,160, 79, 5, -101,239, 46,103,152, 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191,158, 4,167, 75,180,104,209,226, 30,231, 0, -139,197,194,169,213,106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, 63, 0,111, 3, 56, 28, 28, 28,124,187, 99, -199,142, 15, 59,117,234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218,150,165, 0,154, 84,193,217, 81,165, 82, 45, - 12, 11, 11, 59,212,184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45,194, 95,145,177,171, 91,231,123, 12, 29, 58, - 52, 77,167,211, 49, 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70,142, 28,153, 14, 32,250,159,240,188,243,156, - 79,133,243, 31,133,198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118,110,149, 5,193,113,156,128,227, 56, 15,142, -227,188, 57,142,243,229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254,251, 56, 39,219, 4,148,193,246,223, 25, 85, -237,127,174,239,103,104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239,127,116,224,192,129,143,218,181,107, 55, 53, - 52, 52,212,231,113,210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121,243,230, 95, 57,137,172, 39,153,119,137, 77, -196, 52,179, 45, 13,109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195,105,231, 59, 4,160,175,109, 57,100,219, 22, -246, 20, 56,203,161, 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181,186,215,162, 69,139,123, 77,155, 54,189, 23, - 17, 17,113,175,110,221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103,192,158,118,157,239, 30, 25, 25,121, 85, 38, -147,185,140, 13, 38, 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, 11,173,255, 33,240,149,240,217,227,148,162, -242,207,140, 84,181,159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145,212, 2,167, 35,159,189, 78, 69, 56,136,166, -167,193,201,215, 37,158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230,126, 30,207,197,104, 60,126, 0, 0, 32, 0, - 73, 68, 65, 84, 54,170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, 81, 91,109,103,119, 0,231,236,189,194,138, - 84,105,117,102, 19,212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31,199,105,199,138, 10,182,223,113, 90, -255,250, 25, 21, 94, 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, 78,158,179,166,152,248,140,138,172,110,246, - 21,126,232,144, 7, 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, 8,236,255, 71,141, 26, 53,158, 97,152,169, -246,117,129, 64,176,230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, 85, 93,199, 21,103,139, 38,202, 73,126,222, -138,247,138,138, 13, 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178,101,203,221,218, 78,231,248,241,227,155, 56, - 95,167,126,152,168,187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236,169,192, 31, 64,180,151, 76, 60,168,133, 74, -220,241,207,124,211,101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, 42,149,202, 49, 0, 90, 24, 12,134, 64,133, - 66,145, 11, 32, 65,163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, 91,125,120, 46, 21,245,220,217, 87, 21,250, - 68,192,196, 1, 82,130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247,105, 4, 11,199, 65, 76, 0,230,147,247, 33, -123,142,138, 74, 9, 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120,174,224, 60, 84, 88,186, 46,172, 64, 76,116, - 21, 11,137,175, 56,112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66,190,246,237, 9,227, 63, 7,137, 34,138,198, -187, 91,182,108,169,241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123,248, 99,159,174, 3, 22, 47,178, 60,200,139, -213,106,181,164, 84, 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56,139, 88,236,113,121,197,138, 21,217, 53, 77, -231, 7, 31,124, 16,108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, 88,124,246,240,199,138,110,209,139, 62, 7, -120,161,245, 20, 32,169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, 76, 22,235,160,179,233,186, 65,159, 94,201, -156,158,174,179,182, 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70,110,220,184, 81,220,176, 97, 67,200,100, 50, - 24,141,198,144,251,247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22,238,125, 8, 46,252,236,214,255, 3, 0,116, - 26, 51, 63, 28, 37, 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, 44,148,132, 80,112,213,234, 72,142,108, 91, -134, 65, 99, 63, 18, 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, 9, 14,194,195,219,150, 33,122,236, 71, 21, -126, 71,177,111, 99,130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12,231,160, 36, 6, 88, 57, 74,148,124,208,217, -229,241, 3,154, 10,114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, 76, 27, 80, 20, 83,210,182,138,133, 96, 14, -166,120,159,157, 61,123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212,106,181, 63,218,238, 91, 50,255,248,242,224, -241, 92, 11, 46,215, 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, 98,231,206,157, 40, 44, 44,132,143,143, 15, - 36, 98,177,104,229,210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169,169,230,117, 26, 59,159, 79,216, 62,165, 35, - 20,144, 34,137, 68, 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, 69,159,200,149, 74, 79,249,155,147,103,118, - 70, 73,252,159, 26,193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112,190,142, 88, 44,102,236, 47, 22,190,142, 61, - 21,204,222,248,238,216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, 80, 0, 1,129,230, 49, 39, 82,103, 1,248, -244,121,201,108,195,134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, 78,175,215,195,104, 52, 34, 52, 52, 20,103, -207,158, 21,207,153, 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, 86,253,240,240,112, 19, 0, 12,108,233,229, -188,175,158,125, 31, 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253,188, 41,189, 66,153, 10,182,155, 0, 40, 42, -227, 98, 89, 78,120,242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54,108,104,116,220,238,233,233, 89,209, 41, 65, - 58,157, 46,220,121,163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, 6,194, 29, 59,118, 0, 0,190,252,104,180, - 96,211,207,121, 66,161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68,255,109,219,182,245, 63,120,240,224,202,138, -132, 42, 15, 30, 60,158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, 94,127, 27,199,143,255,128,174, 93,187,150, -238,107,208,160, 1,134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167,176, 88,255,105,191,145, 95,205,127,152,173, -187,114,228,200, 17,116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68,153,119, 11, 4, 71,138,189,148, 30, 24, 21, -243, 14, 92, 93,103,226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, 30,141,130,253,250,180,108,214, 20,133,251, -215,226,143, 34, 19,142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135,168,103,182,158,122, 46,132, 86,112,112,112, -211,128,128,128, 50, 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73,196,198,198,138,207,157, 59, 55, 50, 56, 56, -248,180, 27,195,136, 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, 40, 20,156, 80, 44,213,118, 31, 55,223, 11, - 0, 72,161, 88,187,114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210,157, 52,155,205,102,206,145,211, 98, 49,151, -110, 95,188,120,177, 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5,144,138, 5,144,138, 5,144, 73, 68,240,170, -223, 14,210,194, 63, 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34,145,136,167, 77,155, 86,101, 58,199,143, 31, -207,169, 84, 42,171, 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136,160,144, 10,209,184, 65, 24,164,156,209,237, -180, 10, 4,101,189, 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221,121,161,197,131,199,115,129, 10,103, 24, 10, - 1,224,200,145, 35,221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24,222, 28, 55, 10, 12,195,150,126,231,139, 32, - 9, 76,126,163, 63, 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, 0,160, 81,189, 16,110,226,155,255, 1,195, -178,127, 13,148, 8,128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133,171,235, 52,109, 84,135,164,173, 38, 16,101, - 63,246,248,119,124,108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, 59, 5,198, 83, 25,250, 64, 82,149,170, 94, -245, 90, 7,153, 64,157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179,113,227,198,114, 34, 43, 39, 39,135,212,233, -116,176, 90,173,172, 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179,179,231,217, 53,143, 43, 78,155,223,213,140, - 91,183,110,213,155, 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, 9, 9, 89, 21, 21, 21,229,187, 96,193, 2, -107,255,254,253, 83, 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155,119, 71,206, 45,103,214,112, 0, 64, 16, 4, -162,162,162,210, 26, 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, 52, 9,245,182, 53, 34, 4, 32,247, 44,245, -196,139,138,138, 74,111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85,142, 83, 46,151, 83,175,191,254,250,195, 59, -119,238,184, 58, 30, 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, 18,128,158, 51,101,180, 80, 37, 3,164, 94, -254,102,141, 70, 3,165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221,246,236,217,115,142,127,222,121, 78,158,243, - 47,184,210, 34,207,160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, 8, 15,194,226,255, 27, 15,134, 97,193, 48, - 12,104,219, 47,195, 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174,119,125,122, 14, 89,218, 43,110,246,184, 83, - 12, 3,176, 44, 5,138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245,194,130, 17, 55,123, 28,156,175,179,253,187, - 61, 3,207, 28,138, 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, 82, 33, 39,148,193, 98,161,161,181,176, 22, - 0,122, 19,197, 90, 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134,101, 68,214,178,101,203,252,215,173, 91, 23, - 10, 0,195,134, 13,203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, 1, 0,222,179,157, 59, 3,192,186, 10,120, -245,225,225,225,166,128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, 96, 96,160,185,113,227,198,122,177, 88, 12, -146, 36, 97, 23,122,110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, 16, 9,201,242,205,155, 3, 39, 73,146, 46, -175, 87, 97, 29,146,201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, 67, 4,224, 44,199,113,184,126,253, 58, 82, - 82, 82, 32, 22,139, 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, 6,224, 38,255, 4,243,224, 81,138,179,207, -160,192,114,182,106, 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68,236,184, 16, 63, 20, 13,138,178, 2, 28, 87, - 43, 66,171,162,235, 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, 77, 81,181,114,247, 88,134, 2,203, 82,112, -117, 29,130, 32, 25, 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23,104, 19, 66,253,164, 18,228, 25,209,240,133, -102,130,223, 13, 20, 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201,160,215,235, 75, 45, 89,235,214,173, 11,181, - 88, 44, 36, 0, 8,133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63,142,227, 8,155,224, 89, 10, 96, 11, 42,137, -238, 47, 22,139, 75, 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44,118,185,221,121,120,173, 42,136, 29,133, 22, -184, 18,171,150,147,216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, 10, 28,174, 39,168,190, 43,166,213,106,133, - 78,167, 67, 81, 81, 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, 49, 15, 30,174,181,200, 51, 44,182, 92, 11, - 45,148,152,236, 8, 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, 23,112,213,140,122, 58,114,228,200,173, 33, - 33, 33, 29,236,235, 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152,126,101, 68, 86,137, 69,203, 82,225, 55, 65, - 10,139,245,159,246, 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161,198, 28, 70,146,191,162,144, 8, 97,134,191, -253,217,120,135,198,253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77,228,132,158,205, 21,164,246,252,199,227,254, -117,192, 81,204,249,250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151,183,138, 12,123,185, 59, 94,126,239, 43,156, -249,228, 99, 14, 40,132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, 5, 10,158,139,188, 42, 20,138, 92,131,193, - 16, 98, 52, 26,161,209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, 88, 2,202,106,193,241,237, 95, 84,201,105, - 15,225, 48,176,165, 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240,218,143,223,219,191,252, 93, 47, 0,184,113, -100,173,102, 84,236,154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153,205,102,147, 77,160,217,133, 31, 30, 60,120, - 80,215,108, 54, 27, 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169,169,169,117, 40,138, 50, 8,133, 66, 88, 44, - 22,183, 84, 17, 73,146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224,150,128,196,219,237, 60,115,110,116, 68,109, - 98,235,137, 69,144,230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213,253,200,145, 35,156, 99, 15,145,166, 40,155, -200,250, 75,244, 48, 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145,247,130, 5, 11,164,115,230,204, 49,143, 28, - 57,114, 57,203,178,173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107,215, 26,218,215, 41,138,130,151,151, 23,188, -188,188,208,180,113, 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, 40,138, 1,195,178,165,226,167, 80, 99, 14, - 59,116,250,122, 35,135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124,236, 90, 63,119,250,130,205,155,165,133, 76, -192,180, 81,175,189, 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201,177, 84,233,245, 64,130,131,179,143, 22,143, - 39,132,228, 34, 61, 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191,200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77, -212,115,148,221,132,228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, 97, 25, 66,161, 40, 76, 40, 18, 17,209,163, -166,178,217,217,153, 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, 66,163,100,232,208,149, 53,203, 49,132,131, - 87, 84, 84,148,175,125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142,179, 14,221,180, 22, 17, 35, 71,142,148,135, -135,135, 19, 0,240,235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254,143,107,223,117,155,211, 95,193, 1,197, 15, -128,226,212,114,150,172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97,236, 46, 15, 33, 13,100, 95,119,139, 43,166, - 13,168, 80, 79, 8,151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131,135, 91,112,210, 34,207, 20,186,217, 4, 98, -119,219,111,169,224, 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, 6, 34,194,140,149, 43, 87,226,253,247,223, - 7, 0,241,244,233,211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68,101,189,198,179, 33, 33, 33, 57, 28,199,137, - 72,146,236,178,118,237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12,195,194,106,181, 84,248,153, 91, 31,165,124, -193, 15,123,166,249,244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, 41, 63, 55, 3, 39,143, 31,196,134,245, 27, - 10, 65,112,183,193,129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205,177, 96,243,102,233,173,107, 89, 7,166,126, - 48, 43,114,248,168, 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11,243, 6,254,196,251,104, 61, 45,248,158, 60, -117,138, 24, 51,102, 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153,247,223,127,159,204,206,206,134, 70,171, 19, - 2,240,197,115, 96,214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36,161,209,104,208,163, 71,143, 60, 53, 27, 42, -155,248,206, 84,255,204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, 71, 27, 71,141,127,191,206,251,179,227, 54, -102, 93, 94,191,206,157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, 42,149, 74,198,141, 27,231,214,248,161,197, - 98,225, 22, 47, 94,108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204,114,185,156,163,168,170,253, 62, 73,146,160, -223, 90,176,131,166,105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176,176, 48,139, 66,161,224,164, 82,169,216,157, -116, 78,157, 58,149,243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, 64,184, 96,109,105,120, 7,169,151,151, 23, -180, 90,109,105, 90, 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206,189, 56, 90, 44,160,203,201,205, 11,244, 15, -170, 15,154,166,109, 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173,168,233,211,167, 31, 0, 80,101, 99,182,107, -215,174,249,211,167, 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99,198, 12, 44, 93,186, 20, 34,137, 12,190, 1, -117, 75,175, 99,191,110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, - 65, 73,214, 78, 30, 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229,144,161,115, 38, 76, 48,187, 97, 4, 36,111, - 93,203, 58, 48,245,253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, 8, 75,175, 67,177, 44, 72, 82,192,251,104, - 61, 37,145, 37,149, 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162,144,151,151,135, 3, 7, 14, 36,112, 28, 7, - 31, 31, 31, 28, 59,118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179,179,239,200,229,242, 93,179,102,205, 26, 53, -115,230, 76, 17,203,178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16,197,197, 26, 86,225,169,202,178,114, 2,133, - 72, 44, 1, 41, 16, 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22,139,113,117,207, 50, 77,247,113,243,149, 0, - 32,150,202, 11,251,244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, 58, 63,159,244,144,113,177, 2,133, 92,166, -143,138,138,122,104,231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209,105,145,145,145,122,129, 64,128,196,131, 75, - 52, 67,198,197,202,136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, 5,213,191,127,255, 71,118,127,177,212,212, -212, 58, 3, 6, 12,144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, - 69, 81, 20,112,139, 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74,221,168,117,214, 90,220, 84,171,162,214, 81, - 23, 42, 46, 16, 7, 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, 65, 91,107,127,121, 62,159,124,146,220,189, -247,220,123,251,185,239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, 6, 70, 70, 70,138, 9, 19, 38,188,123,254, -252,121,109,163, 14,171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, 45, 3, 12,248,111,162, 98, 30,173,170, 51, -195, 43,148,138,111,167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223,127,255,157, 9, 0, 35,141,216,154, 59,119, -110,141,101, 78,180, 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248,227,143,140,248, 87,137,242,177,211, 87, 20, - 84, 88, 15,104,208,197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166,101,150,220, 25, 59,109,105,217,221, 75, 5, -160,144,224,171, 0, 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157,219,130,206,172,193,129,154,197, 22, 77,120, -124, 59,119,129,149, 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246,122, 0,192,218, 12,103,124,191,218,208, 59, - 43, 79,180,221,112,158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228,230,230, 66,165, 42, 61, 34,114,185, 28, 66, -161, 16, 69, 69, 69,144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174,150,201,100,211, 63,247,237,126,251,246,237, -174,115,231,206,225,214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9,133, 92, 6,128,166,179,179,179, 41, 99, 83, - 75,129,173,131,243,187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222,225,251, 23, 47, 94,212,219,180,105,147, 76, - 59, 18,112,248,130,157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198,121, 93, 23,103,248, 43,111, 48,251,197,139, -103,205, 42,114,250, 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106,100,237,233,233,153, 92, 29,111,131, 6, 13, -196,124, 62, 95,214,164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, 57, 56, 56,200,154, 54,109, 90,172,175,211, -190,145,145, 17,173,177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195,127,223,168,145, 96,212,168, 81,252,121,243, -230,225,224,193,131,184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252,135, 18,235, 26, 96,192,255, 25,170,207,163, - 85, 17,135, 14,133,252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206,156, 57, 16,139,197, 86,149, 52,235, 1,117, -174,141,202, 68, 86, 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28,234, 86,213,250,134, 12, 25,242, 30, 39, 77, -144, 12,146, 36,138, 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, 60,221,185, 45, 72, 12,160,103, 69,177,133, -191,202,140,148,113,106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, 89, 58,113,117,165,226,108,245,138, 41, 38, - 36, 73,116,172,224,163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227,227, 67,106,139, 44,153, 76, 86,150,184, 83, -227, 44,158,150,150,134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85,206,233,115,221,118,213,219,183,111,119, 56, - 58, 58, 94, 91,190,124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, 33,211,136,174,125, 71,136,100, 52,147,151, - 42,200,108,114,243,226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, 84,228, 44,209,164,113,104,210,164,137, 72, - 91,168,212,173, 91, 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219,174, 47,167,218,255, 75, 84,211,254,212,136, -182,138,105, 35,140,141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81,135,101,156,234,244, 14,229,116, 90, 72, 72, - 72,143,144,144,144, 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84,127, 12,215,187,129,243,255,149,243,115, 70, - 87,252,229,155, 5,148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220,185,249, 98,177,216,106,212,168, 81,213, 46, -147,145,145,113,240,240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202,202,170,213, 86, 89,153, 27,173,185,117,126, -161, 85,215,126, 27,230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, 42,136,173, 95, 1, 12,170, 74,149,246,250, -114, 32,142, 30,218,169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90,154,114, 87,169,251, 49,207,224,163,245,207, -128,205,102,251, 45, 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, 62,125,138,177, 99,199,114,163,163,163,253, -228,114,249,141,255,194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25,177, 71,140,159,227, 92, 22,117,120, 98, 23, -164, 18, 49, 0, 48,117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46,231,106,166, 63,126,252,216, 85,147, 91, 75, - 34,145,232, 28,117,248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153,236,200,200, 72,103, 13,167, 84, 42,213, 41, -234,144,195,225,176,163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, 88,174,214,162,218,183,140, 32, 8,130, 54, - 12, 27, 26, 96,192,103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97,186,184,184,244, 26, 62,124,120, 57,145,229, -239,239,175, 58,125,250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194,123,111,144, 32, 73,242,105,231,182, 77, 65, -146,228,211,165, 19, 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, 75, 51, 0, 54,246,117, 16, 48,238, 91, 4, -140,251,214, 10, 64, 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, - 19, 88, 69, 69, 69, 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, 4,241,159,246,163,147,203,229,202, 69, 43, - 55, 29,102, 48,217, 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84,226,123, 53,115,230,204, 74,167,127, 42,206, - 37, 75,150, 84, 26, 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, 14,117,191,125, 25, 96,128, 1,255, 49, 84, - 26,186, 87, 43,161, 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114,160,124,247,238,221, 74, 75, 75,203, 41, 34, -145,232,143, 65,131, 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104,133, 95,255,141,243, 10,138,165,193, 21,231, - 85,180, 60,105,196,214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, 85, 37,168,170,138, 86, 20, 22,138, 87,250, -245,223, 56, 39,191, 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98,202,218,214,171,194,194, 66,148,148,148, 64, - 93,146, 6, 0, 80, 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230,171,173, 85, 0, 48, 63,241,230, 14,237,115, -251,153,246,188,106,172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, 10, 68, 87,135, 76, 61,249, 50, 1,128,205, - 98,100, 85, 85, 60,154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184,178, 13, 48,224,243,125,255,255, 84, 43,238, - 97,224, 52,112, 26, 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13,156,255, 54,206,202, 48,249, 51, 17, 90,116, - 37, 31, 0,181,180,104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192,128, 15,199,123,197,164,181,103, 84,165, 74, -245,137, 38,168,141,178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,255,142,179, 38,110,237,229, 39, 3,216,247, -153,136,173, 79, 18,208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,172, 45, 12, 67,135, 6, 24, 96,128, 1, - 6, 24, 96,128, 1,255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, 59,131,144,114, 54,240,191,182,137,254,254, -254, 12,125,218, 39, 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, 43,130,107, 58, 17,109, 27,180, 26,109,204, - 51,158, 46,147,201,234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27,243, 7, 15, 30,240,125,124,124,210, 1, 20, -105,189, 41, 24, 96,128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138,142,129, 48,238, 80,185,118, 22, 30,227, 64, - 18,205,180,166,136, 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108,216, 48, 25, 64, 65,197,181, 87, 50,207,112, -157, 27,240, 57,163, 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, 12,104,140, 4,129,104, 36,134, 14,174, 21, -143,219, 55,117, 64, 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69,211,163,241,230,228, 19,189,249,234,251, 79, - 67,213,229, 44, 86, 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, 52,108, 61,104, 1,202,103,112,174, 45, 56, - 0,124, 73,146,108,102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249,181,228, 36, 1, 76, 48, 53, 49,233,227,106, -198,105,245, 46, 71,152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150,227,190, 57, 35,124,198, 6,205,234, 1, 75, -191,141, 11, 74,128,234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214,180,142,157, 41, 4, 57, 34,155,159, 14,134, -108, 10, 9, 57,218,111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, 48, 24,137,203,150, 45,251,117,197,138, 21, - 52, 81,117,165,114,190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, 40,159,101,188, 54,248, 44, 56,235,212,169, -227, 68, 81,212, 68, 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, 83,222,117,104,154,222, 75, 16,196,100,154, -166,247,233,241, 61, 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, 28,254,174,237,249, 39,215,245, 15,189,127, - 79,186,114,231, 69, 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75,249,118,158,170, 42,238,129, 4, 77,211, 88, -185,114, 37,177,106,213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169,111, 42,206,211,186,206, 13, 98,203,128,207, - 21,250, 21,149,174, 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25,221,159,160, 25, 60,140,152,180, 80,169, 55, -151,235, 88, 46, 24,226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, 22, 0,201,194,222,139, 73, 54,193, 65,203, -118, 3,240,169, 69, 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, 40,150, 80,232,245,245,152, 21, 0,126,210, -243,174, 68, 90, 26, 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, 61,123,182,137,167,167,167, 37,143,199,227, - 72, 36, 18,135,132,132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89,183,161,179,211,201,224,185, 19,218, 53,111, -224, 10,150,172, 24,148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, 71, 45, 74, 38,228,228,228, 16, 0, 96,107, -107, 75,151, 23, 89,237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14,235,122, 45, 70,125,243,205, 64,191,181, 63, -204, 52, 77,203,149, 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118,255, 26, 50,121,231,134,133,251, 85, 42,213, - 23, 0,218,168, 84,170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79,232,163, 12, 6,227,106,183,110,221,234, 79, -156, 56,145,104,221,186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, 42,213, 51, 0, 47,161, 46,123,162, 3, 88, - 0, 26, 51, 24, 12,239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119,236,216,209,187,127,255,254, 68,227,198,141, - 17, 31, 31,223,250,210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, 5, 2,129,248, 31,127,142, 19,196,100, 0, - 78,106,157,188, 82,135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, 67, 16,132,253,223,185, 61,122,174, 43,150, - 32, 8,107,117, 91, 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88,253, 34,165,179,214, 5, 80, 93, 34,104, 35, - 0,232,213,169, 89, 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93,185, 27, 99, 93,206, 10, 86,241, 45,118,229, - 74, 98,197,138, 21, 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, 41,170,108,222,138, 21, 43,182, 87,115,157, - 27, 96,192,231, 2, 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27,123,255, 89, 19,135, 26,121,122, 52,132, 4, -166, 72,202, 81,225, 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40,112,126, 19,223,118,158,120,158,166,192,227, - 52, 21, 74, 18, 21, 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231,165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, - 90,146, 81,178, 87,171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187,187,251,168, 85,171, 86, 89,102,100,100,152, - 68, 70, 70,130,203,229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107,214, 87,114,185, 60, 9, 64,142,142,156, 30, -125,219,120,223,219, 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98,138,250, 70, 70,184,244, 77, 67,107,255,176, -196,211, 15, 51, 69, 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230,237, 89, 44,150, 3,207,170, 30,149,206,108, -147,155, 77, 52,120,155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87,176,237,216,253, 95, 90, 33, 99,121,117,121, -179,141,141, 77,167,204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198,248,154, 97,238,151, 22, 8, 24, 49,204,228, -212,111,161, 83, 0,236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, 96,161, 76, 38, 35,217,108, 54,193,227,241, - 70,173, 93,187, 86, 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, 69, 13,110,220,184,209, 32, 36, 36, 68, 25, - 17, 17, 17, 11,224,108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238,221,155,187,116,233, 66,113,185,127,165,159, -170, 13, 39, 0, 88, 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213,171,119,165, 93,187,118,221,122,245,234,197, -236,212,169, 19,156,156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, 30, 30,190,251,202,149, 43, 59,158, 60,121, -114, 35, 41, 41,169,215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194,116,239,222,189,246,154,154,140, 10,133, 2, - 42,149,170,236, 91,243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246,145, 72,235,173, 89,243,161, 42,251,230,112, - 56,182,154,132,189, 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174,209,194,242, 13, 74,223,159, 69, 34, 81,178, - 64,106, 25, 3,160, 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, 61,100,200,144,138,101,175,188,213,223, 34, -130, 32,110,146, 36,121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128,157,214, 36, 25, 74, 71,133,160,126, 78, 18, - 0,108, 42, 76,215,110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241,168,150, 93,188,133, 42,252,180,152, 0, 16, - 22, 22, 70,247,235,215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, 59,130,228, 89,225, 85, 22, 16,241,142, 6, -147, 84,128, 4,141, 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239,188, 61, 61, 54, 30, 8,154,205,136,205, 98, -226, 80,120, 9,228,146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, 51,128, 88,161, 51,231,123, 7, 6, 80, 81, -234,119, 64, 10,168, 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144,139,226,116, 88,125, 85,156, 94,141, 26, 53, - 26,241,195, 15, 63, 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, 36,115, 62,159,159, 55,109,218,180, 70, 78, - 78, 78,230,131, 6, 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251,150, 17, 7,119,108, 53,201, 61, 21, 12, 89, -194, 83, 92, 20,136,112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, 59, 57,153,246, 61,147,176, 81, 65, 81, 1, -213,113,222,187,119,143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, 75,102,104, 68,174,197,194,221, 17, 78, 37, - 82, 57, 99, 68,183,122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, 81, 81, 85,115, 42,228,242,250,206,246,230, -136, 78, 18,227,208,237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53,133, 82,174,104, 60,100,200,144,195,234,183, -246, 71, 0,190, 30, 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242,234, 41, 86, 86, 86,232,218,181, 43, 60, 60, - 60,152, 93,186,116,241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51,178,177,177,177, 50, 51, 51,203,173,236, 65, -165, 15, 39, 0, 88, 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, 70,140, 24,241,214,220,220,188,156,245,215, -196,196, 4,141, 26, 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, 72, 72, 8, 8,130, 40,123,104,191,103, 44, -118,117,133,163,163, 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71,122,224, 90, 37, 22,173,149, 21,142, 83,149, -195,111,149,181,215,225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143,199, 43,179, 66, 85,178,174,247, 56, 73,146, -196,210,165, 75, 65, 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51,133, 32, 8,146,205,102, 47,100, 50,153, 19, -165, 82,169, 51,143,199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, 33,178, 42,229, 52, 49, 49,113,125,245,234, -149,123, 85, 29,145, 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205,205,173, 49, 0, 77,137,182,219, 52, 77,119, -209,250,175,141,219, 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255,167,206, 79, 3,231,191,143,179, 6, 45, 98, - 71, 16, 68,152,113, 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243,127,209,162, 69, 75,214,175, 95,255,130, 32, -136, 48,237,233,218,237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195,134, 13,235, 52,109,255, 14,145,168,143, 69, -203, 60, 91, 98,130,240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, 4, 20, 21, 22,220, 65,226,233, 68,221, 44, - 89,254,157, 90,180,240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185,137, 71, 55,127,207, 80, 41, 85,191,131,160, - 31, 3,100, 36,222, 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57,177,245,201,208,188, 73,147, 38,195,150, 45, - 91,102, 27, 21, 21,197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, 39, 39, 55,217,190,125, 59, 39, 40, 40,200, -203,203,203,139,127,242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, 57,188,216,147,187,192,137,141,196,210,167, - 57,170, 63, 5, 37, 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122,102,108, 52,180,228,248,197,229, 73,170,181, -100, 25, 27, 27,111, 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, 35,156, 46,175,239, 68,116,106,102,131,172, - 2, 41,102,239,138,198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, 21, 58,216,152,242, 48,186,179, 41,186,175, - 77,135,127, 27, 46,184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90,100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, - 74, 10,223,199,199, 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109,219,104, 47, 47,175, 98, 43, 43, 43,136,197, - 98, 72,165, 82,176,217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210,235, 64, 21, 23, 23,195,204,204, 12, 20, 69, -125, 48,167, 74,165, 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115,231,230, 54,109,218,244,241,176, 97,195, 94, -219,219,219, 75,159, 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, 38,147,129,201,100, 66, 44, 22,131,203,229, -130,201,100, 66,169, 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108,200,100,178, 79,241, 6,250,158,133,170,186, -225,183,218, 88,180,180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70,150,150,150, 11, 1, 8,106, 90, 23, 65, 16, - 96, 48, 24, 96,179,217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, 36, 36,224,248,241,227,120,244,232, 17, 88, - 44, 86, 89,123,157,199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, 7, 94,189,122,245, 16, 27, 27, 91,119,195, -134, 13, 11,175, 93,187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75,135, 11,251, 74,165, 82,196,198,198,234,179, -204,123,104,216,176, 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, 46,161,212, 47, 81, 27, 34,154,166,191, 36, - 8,162, 16,192, 51,146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197,255, 4, 65,132,173, 95,191,190, 95,101,226, -170,146,107,179,220,244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239,167,182,114,253, 37,180,194,194,194,170, 87, - 32, 20, 6,133,157, 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, 3, 64,255,162, 83, 87,248,253,140, 72, 6, -243,151, 61,235,102,146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33,128,158,139,196,208,194, 15, 62, 18,245, 6, -121,217,219,216, 90, 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, 71, 68, 68,216, 74, 36, 18,222,157, 59,119, - 74, 66, 66, 66, 50,228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9,131,201,100,114,228,114,121,117,190, 11,173, -230, 79, 28,115,103,227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55,179,196, 95, 3,208, 40,250,235, 81, 57,226, - 52, 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116,196,200,145, 35,249, 26,145, 5, 0, 57, 69, - 10,102,137, 84,193,232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, - 4,123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126, -202,231,243,195, 0,124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, - 42, 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, - 45, 90,232,117,176,114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, 43,107, 27,209,157,240,219,155,106,195, 73, - 81, 20, 1, 0,158,158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89,179,230,157,171,171,235, 81,177, 88, 92,206, -114,160,171,208,210,136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, 38,138,138, 74,131, 54, 45, 45, 45, 63,137, -208,170,194, 66,245,209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234,184, 45, 80, 42,149, 96,179,217,240,241,241, - 65,112,112, 48, 30, 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, 36, 94,188,120,161,111, 23,169,136,136,136, -133, 95,127,253,181,231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130,131,131,185,147, 39, 79,110,120,227,198,141, -229, 40, 13,126,169, 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, 90, 92,190,124,217,190, 76,128, 85,140, 72, -124, 31, 5,203,151, 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191,208,208, 80, 2, 0,252,253,253,105,130, 32, - 52, 15,164,103,167, 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74,139, 76,214, 92,147, 85, 9, 40,125,132,154, -182,197, 75,131,197,139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35,182,202, 30,166, 85, 14, 25,150,217,190, 72, -190,163,189,141,245,162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62,127, 84, 2, 30, 17,170, 83,119,184,156,160, - 53, 63,204,105, 16,157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, 53,254,227,136,172,161,222,142, 14,246,183, -142,237, 93, 77, 62,122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179,179, 11,184,127,255,190, 29,151,203,229,189, -122,245,138, 58,117,234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148,166,166,166, 16,137, 68,114,185, 92, 46,169, - 70,100, 57,251,181,106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, 69,145, 5, 0, 29,187,185,215,169, 67,240, -204, 64, 3, 72, 42,148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186,120,182,102, 44,165, 49,151,165,186, 27,147, - 67, 69,222, 56,133,240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, 99,246,252,126, 46,236,234,119,203,130,138, - 75, 68, 69,112,115, 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119,106,135, 83,167, 78,109, 64,169, 51, 56, 0, -188, 60,117,234,212,152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106,179,102,205,132, 30, 30, 30,194,220,220, 92, -196,196,196, 32, 63, 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, 23, 72,200,207,207, 51,165,105, 26,249,121, -185, 38, 63,252,240,131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, 26,187,164,164,196,242,221,187,119,230,218, -243,116,229,148,201,100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195,235,215,175,203, 68,150,122,253,159,204,162, -165,249,205,227,241, 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, 46, 90,253, 91, 95,113, 88,227,246,232,120, -220,193,102,179, 49, 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, 40, 41, 41, 65,207,158, 61,193,225,112,244, -181,104,209,108, 54,123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67,165, 82, 97,238,220,185, 70, 92, 46,119,164, -190,166,123,129, 64,208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, 69,104,104, 40,225,239,239, 79,251,251,251, -211, 26,193,101,128, 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, 80, 7,136,212, 2, 26,145,213, 85, 75,120, - 17, 26, 11,151,110, 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, 2,169, 41, 73,200, 22, 36,163, 77, 7, 63, -196, 62,143, 6,165, 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222,181,131, 23,130,194,138,241, 42,242, 50, 10, -178, 5, 59,145,116,234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149,229,165, 24, 18, 41, 41, 73, 56,251,235, 86, - 90, 33,151, 22,160,124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, 60,178,132,167,231, 32, 69, 6,128,240,173, - 91,183,118,111,223,190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154,185,187,187,247, 13, 14, 14,118, 72, 73, 73, -193,181,107,215, 50, 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, 53,104,130,237, 75,190, 83,134, 62,138, 25, - 0,224,146, 86, 27,143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38,222, 10,165,127, 86, 69,152,147,147, 67,148, -148,148,184, 90, 90, 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, 73, 34, 87,129,203, 34,233,217, 3, 93,211, - 31,158, 13,181,201,145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, 14, 11,187, 48, 93, 46,149,120, 53,105,210, -152,126, 28,113,227,233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24,229, 4,186,182,133, 72, 95, 75,145, 62,208, -149,179,162,208,210, 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50,193,248,119,108,191, 62, 22, 42,237, 33, 67, -141, 63,157, 68, 34,177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, 79,255, 72,146, 4, 69, 81, 96,179,217,104, -209,162, 5,194,194,194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, 54, 54,101, 66,139, 36,117,142,210,161,165, - 82,105,221,186,117,235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79,136, 68,162, 58,248,148,182,123, 3, 12,248, -123,239, 43, 97,218, 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, 84,102,225,250, 64,193, 85,206,186,197,212, - 86,144,149, 42, 73,181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, 81,164,144,203,242, 41, 74,225,250, 54, 62, - 26, 32,241,139, 78, 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, 31, 95, 78,130,152,179,248,163,137, 44, 7, -219, 27,135,119,173,180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, 32, 49,244,241,135, 80,143,100,179, 7,178, - 93,222,245,155,232,155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250,200, 48,109,100,103,103,159,221,186,117, 43, -241,227,143, 63,118,149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111,159,117, 74, 74, 10,235,206,157, 59,162, 27, - 55,110,208, 0,206,215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, 13, 0,240,135,214,108,207,126,173,155,221, - 61,184,126,185,153,226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, 80, 64, 40, 20, 66, 81,156,171,108,195, 23, - 9, 3,135,216, 75, 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, 54, 54,214,107, 95,238, 90, 63, 63, 4, 64, -200,144, 33, 67, 14, 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8,195,170,176, 10,192,220,142, 29, 59, 18, 62, - 62, 62, 15,182,109,219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178,138,253, 75,212,150, 83,219,162, 85,147,208, -250,148, 22,173,202, 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253,211,248,201,177,217,108, 68, 71, 71,195,197, -197, 5,114,185, 28,102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177,160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, - 99, 59, 59, 59,168, 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197,231,243, 47,171,163, 14,203,193,209,209,209, -226, 99,236, 87,109, 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, 43, 88,162,100, 90,255,179, 81,154,195,173, -159,250, 55, 42,249, 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38,104, 82, 60,148,139,112, 97,214,100,201,178, -183,182,186,113, 96,123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, 23,160,104, 65,196,181,211,161, 32, 80,130, -183,161,183,116,187, 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, 33,100,133,148,124,240,209,113, 27,212,194, -222,218,246,198,161,224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81,210, 29,137,167, 35,107, 75, 59, 1,176, 98, -152,240,118, 15,246,107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243,101, 84,201,239,225, 60,225, 73,170,152,154, -158,118, 95, 55, 7,186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52,116,247,238,221,118,169,169,169,188,168,168, - 40,241,222,189,123,179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124,190,156,230,243,199, 7, 68, 4,140,155,200, - 75,188, 22, 2,171,196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182,182,182,116, 78, 78, 78,114, 65, 65, 65, 99, - 19, 19, 19,228,230,230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, 40,243,192, 98,177,144,149,162,128, 74,165, -202,208,213,154, 5,192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, 78,115, 62, 52, 30, 50,100,200, 97,173,168, - 67,109,103,120, 77,122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212,202,196, 10,151,203,213,219, 81,186,170, 40, -198,218,112, 86,101,209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, 12, 6, 40,138,130, 14, 65, 21,127,171,104, -209,142, 14,172,141,200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, 11, 54,155,141,115,231,206, 97,220,184,113, - 80,169, 84, 48, 54, 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232,163, 95, 21, 10,197,145,245,235,215, 47,217, -179,103,143, 17, 77,211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36,180, 52, 25,223, 41, 58,198,196, 68, 89,109, -212, 97,101,203, 84,225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21,218,149, 75,253, 96, 72,239, 96,128, 14,247, -147, 71,255,226,238,105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242,198,254,237,129,230, 71, 31, 17, 72,124,251, - 22, 55,127,219, 81, 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, 58,191, 61, 17, 68, 43, 39,123, 75,228,137, - 40, 20,230,188, 3,104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, 72, 36, 38, 38,226,234,201, 29, 66,165, 82, -242,197,135,136,172,145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, 54,239,226,112,126,236, 80,172, 62,254, 13, -204,236, 24,104,215,215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212,218, 34,171, 85,253,250,245,135,222,191,127, -223,214,219,219,155, 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, 78,109,145,213,106,209,228,177, 17, 27,247, - 31,230,145,108, 14,130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, 82, 72,165,210,107,193,193,193, 82,146, 36, -145,151,151,135,156,156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245,235,178,194,194,194,251,186,118,240,222,189, -123,245,211,210,210, 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, 4,130,174, 0, 30,105,166,167,166,166,214, -123,240,224, 1,191, 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, 7, 40,149, 74,156, 56,113, 2, 0,242,170, -227, 96,179, 57, 2,146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15,167, 26,169, 95,126,249,165, 36, 50, 50,178, - 82,139, 86,109, 56,105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, - 48,101,202, 20,208, 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133,208,123,126, 90,186,250, 64,105,134, 6,105, -154,134, 70,112, 85,152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177,180, 59,244,222, 10,223,251,244,120, 40,148, - 9,173,216,216, 88, 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, 7, 17, 19, 19, 3, 14,135, 3,205,190,208, - 85,191,249,248,248,108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24,209,209,209,232,221,187,183,228,238,221,187, - 9, 98,177,120, 21,116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170,244, 83,213, 50, 21,145,144,144,224,170, 82, -169, 26,211, 52,237, 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, 52,237,171, 82,169, 26, 37, 36, 36,184, 26, -228,132, 1,159, 41,110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118,172, 52, 63,242,144, 68, 74,114, 2, 30, 95, -220, 45, 84, 81,138, 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26,206, 92,152,147, 2,208,140,218, 8,173,114, -156,160,200,224,131, 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149,210,238,120, 27, 26, 85, 27,206,145,108,246, - 50, 22,131, 88,218,171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196,102,231, 37,228, 75, 39,222, 37,228, 72,126, - 35, 61,208,119,146,181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18,201,105, 57,189, 94,112,183,172, 44, 69,249, -126,190, 15, 71, 51, 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246,238,221,155, 43, 22,139, 47, 2,136,208,105, -219,223,135,115, 91,119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224,171,206, 68, 60, 31,140,170, 19, 96,150,227, -228,114,185,199,142, 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138,139,139,203,156,171,237,236,236, 16, 27, 27, - 75, 37, 38, 38,166,115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135,209,226, 81, 33,186, 80,171,105, 99,129, 64, -208,150,207,231,223, 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196,163,232,232,232,226, 62,125,250,192,200,200, - 8, 34,145, 8,117,235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, 86, 37,226,181, 92, 63, 37, 18,113, 93, 0, -164,184,164,164,197,152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173,173,245,226, 4,128,188,188,188,166,127,252, -241,199,156,232,232,232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82,169,200,218,114,230,231,231, 91, 68, 69, 69, -109,234,220,185,243,140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, 25, 25,161,176,176, 16,171, 86,173,194,157, - 59,119,148, 52, 77,239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85,165,100,168,162,253,223,222,207, 10, 62, 93, - 80,167,112, 88, 88, 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246,238,221,251, 94, 30, 45, 77,250,135, 42,184, - 43,219,118,250,230,205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, 68, 34,103, 19, 19,147,116,133, 66,241,139, - 88, 44, 94,139, 82,127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128,101,181,156, 21,210, 59,148, 75,225, 80, 97, -153,114,169, 31, 42, 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, 44,125, 15,173, 38,179, 88, 98,133,119,120, - 2,241, 33, 34,235,125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204,151, 72, 58,145,245, 65,155,165,238,231,237, - 4, 2, 73,137,111,240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75,161,108,194,194, 26, 79,231,140, 67,122,129, - 8,151,222,230,159,164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50,118,251, 14,178, 24,106, 91,135,133, 45,243, -127, 1,111,145, 13,187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239,225,235,235,203, 29, 50,100, 72,101, 14,242, -250, 34,245,209,171, 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44,226,121,197, 40,196,106,225,225,225,161,186, -119,239,222,188, 41, 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5,151,203,197,155, 55,111, 16, 30, 30, 46,123, -251,246,109,122, 73, 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213,235, 32,212,195,133,109,160,142, 46,212, 52, - 82, 39, 45,109, 3,192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76,154,166, 51, 66, 66, 66, 58,156, 61,123,182, -195,220,185,115,217,125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, 11, 87, 93, 75,229, 80, 0,162,148, 74,229, -243,160,160,160, 14, 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37,128, 77,153,153,153, 63,133,132,132, 44,191, -118,237,218,248, 49, 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, 80, 40,156, 99,107,107,187,244,226,197,139, -191, 92,185,114,229,235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, 74,165, 82,157,101,177, 88, 99,114,114,114, - 68,159,226,174,163, 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, 74,160,217, 14, 63, 63,191, 50, 43,163,198, - 10,167,221,134, 32, 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, 89,225, 25,248, 43,115,188,174,140,205, 4, - 82,203, 24, 72, 17, 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117,197,138, 21, 91, 43,166,112,208,110, 84, 49, -245,195,202,149, 43, 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, 75,182,175, 91,176, 66,169,144, 9,105,200, -253,241,230,116,244,135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46,252,224,222,255, 77,253, 36, 44,172, 81,180, -106, 26,126,123,145, 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, 55, 36,249, 39,172,156, 88,103,230,124, 97, - 67, 92,200, 27,173,247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146,146,146,138, 14,242,181,197,130,254, 51, 23, - 49,218, 53,114,157,249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197,197, 5, 92,185,114,101,196,237,219,183,123, -136, 68, 34, 87,130, 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, 0,192,138, 21, 43,232,149, 43, 87, 18,113, -113,113, 52,131,193,248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, 48, 80,151, 7,226,237,226,226,226,200, 85, -171, 86,117, 89,181,106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217,108, 78, 58, 65, 16,206,108, 14, 87,116,239, -222,189,107, 31,200, 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19,147,182, 49, 49, 49,127,126, 8,167, 90, 68, - 13,182,182,182,118, 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, 34, 20, 10, 63,105, 81,105,117,129,232,149, -122,212, 58,212,137,247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, 69,225, 85,209,122,165,249,175, 78,229,162, -203, 62,213, 39,138,178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, 6, 32,174,233, 58, 39, 73,242, 44,128,151, - 36, 73,190,174, 24,232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, 59, 91, 32, 9, 4,214,214,147,246, 31, 52, - 87,126,156,126, 6,176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, 65,199,142, 88, 75, 19,152,171,222,153,235, - 50,238, 98, 77, 45,182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78,127,127,127, 70, 21, 15,243,114, 69,165,171, - 66,104,104, 89, 22,255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128,242, 78,255,149, 77,167,245,220,118, 6, 0, -213, 71,222,159,159, 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, 87,114, 90, 54,117, 1,129, 73,208,206, 29, - 84,173, 69, 75, 75,160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33,193,181, 97,195,134,201, 0, 10, 42,244,163, -178,121,180,225, 24,253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, - 3,103,109,133,214,103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, 32,170, 81,165,250,152, 4,107,163,108,175, - 25, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249,207,117,232,240, 31,235,183,193,172,106,224, - 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, 0, 3, 12, 48,192,128,207, 6, 61,220,193, -103,170, 64,254,241, 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, 15,224, 43,173,255, 23,160,142,140, 55, 8, -173,207, 23,141, 0, 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, 80,132,210, 58,129,175,245, 89, 25, 73,146, -235,187,116,233, 50,253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, - 51,215, 43,149,202, 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, 36,100,102,102,174, 81, 42,149, 55, 63,128, -211,204,193,193,161, 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, 91,201, 63, 48,150, 93, 40, 82,178, 0,192, -220,132,169, 8, 13,108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201,229,208,219, 13,107,105, 37,190, 87, 1, 68, -175,250,216,113, 57, 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, 75, 57,122,185, 97,211,229, 55,168, 54,210, - 94, 23, 78, 13,246, 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, 21,150, 13, 29, 86, 43,180,134,185,131,175, - 98,130, 25, 26, 11, 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192,206,125, 46,156,255, 54, 44,167,105, 58,160, -220,201, 90, 73, 30,162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130,145,145,145, 18,192, 88, 61,214,101, 63,108, -216,176, 69, 7, 14, 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, 86, 86,254,150,150,150,193,251,247,239,183, -107,223,190, 3,193,225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102,101,101, 77,212,119,227,173,173,173, 71, 90, - 90, 90,110,217,187,119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153,211,226,221,187,119,199, 51, 51, 51,103,232, -203,105, 99, 99,227,110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67,116,116,180,233,212,169, 83, 29,211,210,210, - 98, 51, 51, 51,111,233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93,208,126, 75,196,249,103, 55,206,247,175,105, -154,127, 96,236,239, 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252,188,140, 4,128, 94,227, 87,207, 26,233,132, -205, 71,210,171,174, 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, 0,114, 14,147, 57,171,157,143,143,237,183, -119,239, 38,200,129, 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89,106, 49, 33,250, 52,196,241,171,137,140,240, - 47,190,248,162,225,132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, 93,184,112, 33, 65,165, 82, 69, 2,120, 1, -221,179, 90,179, 0,120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, 37, 58,125, 47,225,233,245,235,215,207, 49, -153, 76,141, 69,171,157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, 65,146, 36, 11, 64,125,188, 95, 82,163, 42, - 56, 27, 27, 27,239,142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, 3,135, 66,172,231,205,158, 49,248,230,205, -155,225, 69, 69, 69,191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, 12,138,162, 80, 84, 84, 4, 71, 71, 71,236, -223,191,223,114,222,188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11,139,110,207,159, 63, 55,210, 20,148,150,201, -100,112,118,118,198,209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222,234, 74, 88, 40, 82,178,148,114,105,208,225, - 93,129, 46, 0, 48,102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, 66,203,128,127, 26,173,109,109,109, 67,115, -114,114,110, 1,152,136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, 6, 35, 67, 36, 18, 61, 5,240,170,182,132, - 54,110,126,253,193, 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251,234,230,249, 15,226,228, 24,141, 7,232, 22, - 36, 64, 17, 36,249,148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216,205, 81,247,194,152, 31,131,111,120, 3,240, - 73, 10,228,209, 36,221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220,216,177,141,110,221,185, 67,116,213,167, 90, -193,231,137, 42, 29,223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, 6, 49, 98,246,250,128,131,187, 54,145, 61, -251, 15, 41, 27, 62,241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108,116,244,232, 81,101, 68, 68,196, 83, 0, 39, -170, 90, 89,111, 55,136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, 46, 23, 31,194, 9, 0, 61, 27,146,111, 89, -214, 13,158,142,152,185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106,109,229,226,226,210, 73,169, 84,242, 0,128, -201,100, 74, 82, 82, 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, 21, 3, 6, 12, 88,250,237,183,223,162,110, -221,186,152, 53,107, 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123,123,251,229,187,119,239,182,102,114, 76,208, -106, 97, 34, 4, 5, 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126,188, 70, 31,161,101,111,111,191,106,255,254, -253,214,198,198,198,160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12,243,216,216,216,141,250, 8, 45, 7, 7,135, - 78, 59,119,238, 52,226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, 37,180, 76, 38,147,207,156, 57,147,251,226, -197, 11, 63,129, 64,240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, 54,175, 95,191,126,162, 84, 42, 79, 3, 56, -253, 17, 94,166,186, 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, 56,156,190,119,239,158,203,238,221,187,199, -110,222,188,249, 34,128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38, -154,159, 60,121,210, 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96,154, 31,239,208,177, 83,231,161,131,191, 49, -115,176,177,128, 88,166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, 11,135,231,190,186, 87,172, 47,103,183,110, -221, 59,247,232,222,221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239,203,100, 26,221,166, 8,197,168,172,231, 87, - 75, 62,229,177,153, 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, 77,131,164,177,163,162, 53,107, 22,192,220, - 81, 90,246, 75, 47, 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, 65,130,232, 93,195, 48,165, 6,189, 0,174, -165,181,181,207,212,201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128,125,155, 68,189,179, 41,181, 23,219,255, 82, -107, 86,165, 67,135, 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134,245,235,215, 51, 1,180,174, 48,187,124,145, - 85,128, 27,182,103, 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, 64, 83,245, 59,214,165,191,124,244,235,146, -177,215,142,110,241, 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, 82,221, 56, 63, 28,255, 40,167,163,163, 99, - 19, 95, 95,223,214,215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110,217,161, 67,135,214,142,142,142, 77,202,118, - 21, 77,235,211,207,213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86,232,214,173, 27, 46, 94,188,200,220,188,121, -243, 58, 0, 75,107,234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88,223, 4,209,155, 60, 80, 36,161,145, 39, 44, -132, 88, 44,129,177,177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202,196, 85, 81, 81,233,167,184, 88, 4,153, 76, - 14, 46,151,107, 6,128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, 55,188,130,130, 2, 66, 40, 20, 66, 38,147, -129,197, 98,177, 81,179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, - 84,233, 50,205,220,132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36,121, 24,128,227, 7,114,182, 5,176,206,200, -200,232,154,135,135, 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241,245,117,235,214,157,122,242,228,201,208, 63, -255,252,179,254,179,103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189,175,205,250,245,235, 31,124,240,224, 65,219, -142, 29, 59, 30, 0,192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, 86,173, 90,185,240,120, 60,244,232,209, 3, - 0,252, 62,132,147,205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215,175, 95,199,195,135, 15,161, 84, 42, 49,109, -218, 52,238,152, 49, 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, 51,127,214, 36,179,167,239,228, 56,116,237, - 29,126,143, 16, 32,171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, 95,206, 69, 11, 23,246,153, 60, 62,192, 44, - 70, 64,225,220,253, 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, 21, 19,172, 95, 62,245, 49,218, 15,180,159, - 61,123,182,221,130, 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96,105,109, 98,242, 77,124,215,174,147,140, 74, -235,197, 86,203, 89,142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, 97, 69,198,149,159,151,145, 52,129, 89, 35, -157,202,221, 7, 42,237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23,164, 34, 81, 57,159,217,238, 46,232,115,205, -152,153,218,192,195, 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44,140,238,215,175, 31, 1, 0,161,177,200, 31, -220, 20, 27,135,125,187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108,108, 80, 82, 82, 2,169, 84, 10, 54,155, 13, -137, 68,130,119,239,222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, 53,133,169,169,233, 71,225, 92, 60,182, 7, -247, 77, 74, 54,247,242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205,122,110,110,231, 36,121,246,236, 25,238,221, -187,135,252,252,124,248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, 54,116,190,124,237,182, 85,177,132, 50, 79, -202, 84,176, 40,138,130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, 22,128,135,106,113, 91, 83, 77, 69, 30,128, - 38,254,254,254,139,166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220,142, 29, 59,218,236,223,191,223,104,222,188, -121,184,117,235,214,138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155,205,134, 82, 45, 27,228, 42,170, 76,223, 23, - 22, 22,130, 22,231,131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, 76,100,189,203, 44,196,187,172, 18, 20, 22, -203, 32, 22, 43, 33, 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, - 60, 30,148, 74, 37,138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, 83, 0,230, 0,242,116, 33, 84, 59,185,255, -174, 30, 6,196,163, 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41,195,198,185,197,157,150, 67,127,241, 40,155, -246,105,253,179,184,118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, 24, 50,100,136,143, 64, 32,104, 9,253,107, - 50, 26,147, 36,185,113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66,169, 84, 58, 39, 36, 36,116, 59,121,242,228, -194,131, 7, 15,238, 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62, -164,218,182,109, 75,142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246,173,165,101,203,181, 67,135, 14, 46, 12, 6, - 3, 29, 59,118,100,223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249,249,249,181,188,118,237, 90, 84, 70, 70,134, -159, 30,219, 11, 0, 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165,125, 15, 32, 84,199, 69,218,183,110,221, 26, -201,201,201,104,210,164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136,213,163,191,238,221,187,119,119,241,243,243, - 35, 66, 67, 67,203,252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200,200,200, 58,143, 30, 61,114,135, 14,195,136, - 54,110,126,253, 59,118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, 18, 76,130, 2,165,224,130,203,102,192,221, -179, 13, 35,254,197, 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211,183,105, 19,119,114,251,239,111, 80,144, 22, -171, 74,139,187,157, 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172,244,196, 23,221, 36,146, 46, 61,242, 19,110, - 95,251, 20, 23,228, 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201,208,243,207, 75, 20,184, 15, 0,183, 0,162, - 47,208,220,187, 93,187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, 69, 69,161,138,161,223,149, 0,195,214,209, -177,199,212,169, 83, 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110,238,236,209, 15,162,120,189,134, 41,251, 3, - 28, 7, 71,199,166, 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21,235, 28, 3, 59,155,185, 57,142, 91, 48,113, - 0,225,194,183,197,212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159,177,200,154, 92,169,208,170,136,223, 98,177, -220,140,141,250, 39, 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231,195,194,194, 2, 49, 49, 49,184,126,253, 58, - 94,190,124, 9,138,162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202,202,234,163,113,186,185,216,225, 91, 23, 59, -118,102,110, 33,251,218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, 38,147,225, 63,130,178,232, 66, 23, 23,151, - 78,135, 14, 29, 98, 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, 20, 25,212,248,187,213,171, 87,139,198,143, - 31,239,145,146,146,178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246,108, 0,192,152, 49, 99, 10,239,223,191,239, - 14, 32,235,250,245,235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, 74,101, 12,147,201,164,195,194,194, 86, 1, - 8,124,239,137, 72,146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, 75,111,112,198, 20, 82,147,222, 32,238,217, - 67, 56, 58, 58, 90,240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187,134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, - 92, 92,140,212,236, 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, 51, 34,101, 15,179,178,178,228, 50,153,108, -153, 80, 40, 60, 84, 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72,232,188,188, 60, 66, 36, 18,161,168,168,136, -184,112,225,194,215, 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156,150,150, 54, 73,151,161, 73,181, 96, 82, 49, -153,204,205,147, 39, 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120,122,122, 94,110,222,188,153, 83,200, 38,239, - 29, 0,126,252, 23,156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202,149, 43,177,124,249,242, 70, 83,167, 78,157, - 12, 96,171, 30, 60, 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, 17,199,142, 29,195,219,183,111,149,245,235, -215,103,250,248,248, 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79,111,165,163,248, 24,191, 98,197,138,129,157, - 59,119,198,216,177, 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, 86,232,145, 35, 71,140,214,173, 91,215, 99, -222,188,121, 83, 1, 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, 20,212,251, 3,133, 22,199,198,198,230,194, -225,195,135, 91, 54,110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, 1,232,116, 67,170, 83,167,206,198,179,103, -207, 54,172,106,100,161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66,235,232,209,163,248,254,251,239,209,162, 69, -139,230,237,219,183,223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212,114,141,224,241,120,205,135, 15, 31,206,121, -240,224, 1, 0,192,211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, 10, 7, 7, 7, 12, 26, 52,136,151,148,148, -212, 60, 39, 39,167, 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, 18,109, 26,154,195,199,195, 30,241,169,133, -136,140, 77,133, 74,198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80,179,191, 22,215,120,220,160,129, 95,153,158, -139, 72, 71, 65,122, 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, 71, 27,163,158,238,173,219, 48,252,122, 14, -176, 58,125, 44, 99, 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, 1,190, 52,203,202,249,161,153, 66,177, 83, - 51,175, 55,208,107,225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240,105, 84, 84,252,100,128,154, 82, 5,223, 78, -192,117,232,192,129, 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116,159, 51,127,126,167, 25, 51,102, 24,237, 89, - 53,253,113,239, 9,107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, 64,152,153,155, 99,246,236,217, 32,228,242, -203,101, 2,138,137, 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215,201,217,207,110, 8,240,230,115, 85, 85, 21, - 80,165,143, 86,181, 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, 70, 69,185,185,185,120,254,252, 57,242,243, -243, 17, 28, 28,140,184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56,216,152, 99, 84,223,118, 76,169, 68,196,203, -206,206, 46, 55,124,244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97,137,194, 52,227,104, 23, 34,227,104, 23, 66, - 88,162, 48,149,201,100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57,255,204,153, 51,172,181,107,215,194,203,203, - 11,114,185, 28,247,239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94,191,126, 61, 78,159, 62, 77,244,232,209, 99, - 97,101,231,147, 64, 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168,108,252, 60,240, 45, 70,216,156, 66, 94,230, - 59,236,219,183, 15, 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125,181,163, 78,157, 58, 97,213,117, 50, 61, 61, -125,237,140, 25, 51, 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, 83, 60,219,210, 20, 18,202, 8,187,118,238, - 38,159, 61,123,102,251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, 75, 75,123,240,237,183,223, 74, 10, 11, 11, - 33,147,201,228, 42,149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226,197,139,172,171, 87,175, 49,111,222,188,197, -190,126,253,186, 69,183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, 9, 9, 25,183,107,215, 46, 7, 31, 31,159, -102, 21,134,162,248, 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0,148, 79, 10, 91, 91,219,153, 3, 7, 14,196, -174, 93,187,112,254,252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161,251,176, 23, 0,252,184,117,235, 86, 15, 15, - 15, 15,140, 25, 51, 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, 47,191,212,155, 58,117,234,236,128,128, 0, - 73,131, 6, 13, 16, 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24,129, 77,155, 54,225,230,205,155,131, 81,250, - 64,149, 1,184,116,247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, 54,150,167,166, 77,155, 46,235,211,167, 15, -194,195,195,209,170, 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244,196,161, 67,135,124,235,213,171,135, 53,107, -214,192,205,205, 13, 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76,141,141,141,177,112,225, 66,122,240,224,193, -121, 53,125,230,205,155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58,122,121,121,225,254,253,251,184,122,245, 42, -150, 46, 93,138,185,115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219,219,217,217,161,176,176,180, 46,188,151,151, - 23,158, 60,121,130,236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, 49, 40,138,178,215,141,146,246,178,181,182, - 64, 86,190, 20, 76, 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200,200,202, 70, 29, 27, 30, 92, 92,234,130,166, - 41, 47,157, 20, 48,131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, 74, 65,226,221,148,130,196,187, 41,114,169, -100,202,227, 59, 87,115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144,186,112, 49, 49, 98,142,185,250,243, 50, 34, -108,255, 98, 66,154,251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191,251,238, 59, 94,102,102, 38, 21, 48,108, 88, -222,218,192,192,107,127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, 34,202, 0, 82, 1,192, 1,112, 25,240,205, - 55, 93,150, 44, 90,100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161,190, 46,254, 89, 42,192, 91,195,123,249,242, -101, 90, 12, 60, 6, 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199,236,181, 63, 99,207,201, 91,151, 45, 20,244, - 23,255,161, 71,241,228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, 1,243,119,112, 86,134,255,162,208,210, 64, -161, 40, 29, 37,145, 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, 31,158, 53,107, 22,182,108,217,130, 87,175, - 94,129,205,102,195,203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136,143,143,199,230,205,155, 49,126,252,120,250, -222,189,123, 7, 81,121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, 10,113, 62,178,210,222, 64, 42, 42,192,154, -245, 27, 81,162, 96, 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54,109,218,135,193, 96,244,171,166,159,247, 51, - 51, 51,247, 79,155, 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213,216,216, 24,219,182,109,179,112,119,119, 31, -200,100, 50,187, 85,195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, 16,231,206,157,235, 95,175, 94, 61,171, 13, - 63,110, 33, 68,114, 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71, -142, 28, 25, 61,108,216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144,248,109,219,182,157, 60,113,226, 68,209,252, -249,243,173,131,130,130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83,167,158, 1,216,122,230,204,153, 71, 82,169, - 20,195,135, 15,175,175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, 57,242,107,215,174,181, 6,176, 5,165, 67, -185, 52,128,100, 0, 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216,177,227, 1,248,214,192,219,113,196,136, 17, - 30, 20, 69,225,248,241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134,145, 35, 71, 54, 0,160,207,141,156,205,229, -114, 79,173, 94,189,218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208,200,194,194,226,162,214, 53,160, 51,184, 92, -238,190,159,126,250,105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211,167,203, 90,183,110,141, 93,187,118, 13,228, -112, 56,122,149,232, 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120,190,177,169,169,105,132,167,167,103,161,151, -151, 87, 27,165, 82,137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, - 11, 45, 6,131, 1,185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6,108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35, -144, 36,169, 83, 52, 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, 87, 80,224,177, 25, 96, 49, 9,128,166, 96, -105,194, 2,143,195, 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, 84,170,140,202, 30,142, 76,149,145,145, 17, -135,176, 53,231,130,199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135,110,218,188,153, 83, 88, 92,140,193,131, 7, -231, 37, 61,122, 20, 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, 84, 20,138,242,243, 95, 3,165,206,241, 28, - 39,167, 97,219,182,109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, 17,118, 60,185, 84,136,213,120,220,217,108, - 71, 13,175, 48, 63, 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72,176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, - 95,157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149,137, -196, 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245,198,223,177, 0, 0,107, 83,166, 80,174, - 82, 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136,213, -136, 17, 35, 18, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170,204, -227,146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, 92, - 22,137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94,189, -218, 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62,221, - 42, 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, - 8,137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, 92, -233,205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17, 35, 71,142,124, 14,192,107,254,252,249, -214, 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, 64, - 97, 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47,135, 15, 31,142, 75,151, - 46,225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,136, 17, 35,240,243,207, 63,247, 1, 80,157, -131,108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95,191, -190, 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254,249, - 99,199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,193,207,207, 15,243, -230,205, 83, 94,190,124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166, 9,179,103,207,206, -166, 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118,163, - 70,141, 86,203,100,178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98,162, -165,133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38,180, -172,229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, 19, -103, 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100,135, -152, 55,232, 52,153,201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, 33, -165,171, 27,239, 73,175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, 32, -128,202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96,129, -141,189,163, 35,198, 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, 0, - 95,174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54,174, - 86,172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,194,132, - 9,114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, 41, - 41, 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234,249, -243,231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156,220, -208,210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70,134, - 59,101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103,103, -131, 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16,189, -201, 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 54,108,152, 25, - 0,168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, 73, -147, 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153,160, -203, 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107,104, - 91,223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,176, 87,175, 94,207,110, -220,184,209,182, 99,199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, 73,183,145, 35, 71,138,220,221,221,113,235, -214, 45,143,145, 35, 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175,191,198,170, 85,171,232,147, 39, 79, 6, 0, -184,162,158,119,249,248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82,169, - 32, 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, - 46,147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194,194, - 2,174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21, -233,148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211,186, -232,218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220,196, - 19, 35, 39,204,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, - 88,120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232,251, -229,151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,175,190, -250, 10,217, 57, 57, 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, 6, 65,161, 80, 8, 2, 40, 4, 0,130,137, -190,237,188, 26, 33, 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35,124,237,124,180, 0,228,204,155, 55, 15, 92, - 46, 23,124, 62,191, 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227,199, 1, 32,167,218, 55, 60, 64, 58, 96,218, -122, 74,170,160, 75, 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94,229, 65, 49,181,225,252, 12,208, 78,157, 19, -171, 29,128,252,164,164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133,185, 41,130,148,183,207, 51,150, 44,156, 39, - 76, 77, 77, 77, 65,105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, - 25,137,177, 99,199,210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, 33,114, 21, 85, 54,228, 87, 88, 88,136,244, -244,116,200,100, 50,157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211,213, 4, 30, 46,198, 32,148,197,101, 34, 43, - 59, 59, 91,243,230, 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11,145,145,145, 1,149, 74, 85,213,131,140, 74, - 75, 75,187,124,226,196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, 42,249,236, 97, 50,153,119, 53,109, 55,109, -218,148,135,247,135,196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207,198,158, 61,123, 32, 16, 8, 22,225,175, 92, - 60, 84, 78, 78,206,130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, 21, 2, 24, 89, 21,161,157,157,157, 51,147, -201, 68, 84, 84, 84, 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124,183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, - 90, 90, 26,160,126, 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, 54,222,202,202,106,193,129, 3, 7,152, 47, - 94,188, 64,247,238,221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, 91,183,110, 47,175, 94,189,138,141, 27, 55, - 18, 45, 90,180,152, 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247,238,157, 6,224, 84,133, 38,199,118,237,218, - 53,107,239,222,189,152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126,126,126,145,175, 94,189,210,169,226,129,142, -237,187,249,248,248, 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234,212, 60,188,255,192,254,253,244,233,211, 24, - 53,106, 20, 90,180,104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83,108, 54, 27,174,174,174,232,215,175, 31, 2, - 2, 2,208,188,121,115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, 41,151, 82,238,171,155,231, 19, 19,255,199, -222,121,135, 71, 81,252, 97,252,221,235,253,210, 27, 9, 9,161,165,210, 2,134, 38, 37, 16,138,148, 80, 68, 17, 65,126, 54, 68, - 1, 81,192, 14,216,104,210, 68,138, 64, 4, 5, 17, 80, 20,105,161, 40,162, 32,157, 4, 8, 1,146, 16,210,235,165,151,203,245, -187,157,223, 31, 41,134,144,114,151, 96, 65,231,243, 60,251, 92, 50,123,251,222,236,236,238,220,123,223,105,137,231,174, 94, 58, - 99,226,113, 57,240,246,112,196,132,240, 30,120, 97, 82,127,244, 12,240, 68,122,190, 22,167, 78,253,108, 74, 77, 77,190, 96,205, -136,195, 26,205,248, 91,177,231,111, 94, 61,107,230,243, 24, 4,248,119,198,194,119,223,116, 88,250,254, 91,246,157, 59,120, 35, - 54,165, 12, 63,255,116,204,148,147,149,249,235,223, 53,226,240, 52, 32,144,139, 24, 25,151,195,129,133, 35,170,228, 86, 15,164, -233, 18, 20,228,231,230,238,142,168,168, 40,112,108, 24, 17,122, 26, 16,200,229, 85,173,224,106,181, 26, 53,122, 29,253,253,253, -189,125,124,112, 52, 42, 10, 92,150,189, 61,200,198, 9, 70, 19,170,154,161,107,117, 25, 64,247, 74, 91, 40, 58,182,117,245,119, -176,147,225, 82,108, 18,244, 38,114,249,155, 18,252,173,243,145,253,137,204, 64, 11,155, 14, 87,109,217,178, 37,116,219,182,109, -195,230,205,155, 39,159, 62,125, 58,196, 98, 49, 52, 26, 13,188,188,188, 96,177, 88,112,252,248,113, 68, 71, 71,171, 89,150,253, - 25,247, 79, 27, 16,142, 58,163, 52, 78, 36, 67, 82,229,183, 52,161, 7,159,120,226,129,104, 2,128, 60,137, 85, 22,181, 51,236, - 90,191,239,236,196,221, 39,174, 50,175, 77, 25,196,233,233,223, 22, 0,224,230,230, 6,165, 82,105,179,230, 3,224, 79,215,172, -219,172,155,151,151,151,144,151,151,151,255,226,139, 47, 6,212,116,124, 23,137, 68,186,234, 72, 86, 73, 67,199, 88,145, 79, 35, -128, 87,182,109,219,118,168,172,172,236,196, 27,111,188,129,165, 75,151,226,240,225,195, 3, 0,156,107,225,185, 91, 74, 74, 74, - 74, 47, 95,190,236,214, 41, 48, 4,237, 93,249, 24,184,232, 14, 8, 33,112,146, 18, 84,148, 22,227,218,181,171,168,168,168,184, -100, 75, 62,141, 70, 99,105,126,126,190,179,171,171, 43,138,139,139, 81, 88, 88, 88,107,178, 74, 74, 74, 80, 92, 92, 76, 24,230, -190, 57, 91,154,210,172,204,207,207,215,196,199,199, 11,221,218,118, 66, 7, 87, 1,122,191,155, 0, 16, 2,111, 71, 14, 42,202, - 75,113,225,194, 5,148,149,149,253,214,152, 38,203,178,243,167, 78,157,202, 5,240,204, 27,111,188,225, 8,160,251,155,111,190, -249, 51,234,141, 44,228,241,120,159,238,218,181,171, 75, 77, 19,227, 91,111,189,181, 22,192,182,191,234, 94,114,114,114,154, 31, - 21, 21,165, 48, 26,141, 88,191,126, 61,214,174, 93,187, 29,247, 79, 84, 25,181,113,227,198, 77, 28, 14,103,214,236,217,179,241, -210, 75, 47, 73,123,245,234, 53, 47, 55, 55,247,155,134, 52,179,179,179, 23,246,236,217,115,113,126,126,254, 50,171,204,242,157, - 59, 51,122,246,236,185, 48, 63, 63,127,101, 83,215, 72, 38,147,201, 44, 22, 11, 82, 83, 83, 75,128, 70,251,119,232, 82, 83, 83, -179, 45, 22,139,151, 84, 42,117,108,238,254, 44, 41, 41, 89,214,171, 87,175, 15, 84, 42,213, 79, 0,150, 52, 96,200,175,231,230, -230, 6,207,157, 59,119,206,138, 21, 43, 38,230,229,229,237,109, 78, 51, 61, 61,125, 89, 88, 88,216,162,196,196,196, 29,104,188, - 9,120,227,135, 31,126,104,220,181,107,215,203,169,169,169,203,155,209, 60, 82, 88, 88,120,196,134,235,219,216,251,107, 53,185, - 92,238,155, 43, 86,172,224,108,217,178, 5,132,144,213, 22,139,165,177,124,198, 30, 56,112, 96,103,255,254,253,167,239,219,183, - 79, 28, 28, 28,252,146, 94,175,223,211,220,253,169,209,104,246,239,219,183,111, 98,108,108,172,215,244,233,211,197,126,126,126, - 48, 26,141,200,205,205,197,150, 45, 91,116,113,113,113, 89,165,165,165,251,109,169, 67,204,134,242, 41,231, 79, 29,220,147,118, - 39,174,239,224,145,227, 28, 12, 70, 47,136,138,184, 40, 45,202,195,241, 35,251, 75, 82, 83,147, 47,104, 52,165, 83,108,209, 52, -234,203,158,186,240,235,161,189, 89,169,241,125, 6,134,141,114,208, 25,124, 32, 18,112, 80,164,202,198,241,168,131,197,169,169, - 41,191,235, 76,250,255,253, 93,245, 60,215, 23, 75,184,121,209, 47,206, 28,219, 3, 18, 7,175,107,124, 96,125,127, 64,226,236, -230, 38,168,126,118, 32,175,234,243,104,149,166, 10, 16,118,170,110,165,210,104, 52,224, 3,134,103, 1,190,139,139,139, 4, 0, - 18, 19, 19, 33,173,106,213,176, 41,159,106, 64, 38,173,163,203, 1, 52, 69, 60,120,118, 84,202, 24, 0,200,202, 43,130,193,212, -228,247,198,195, 78,100, 29,195, 21,217, 18, 1, 1,128,112,185, 92,190,116,241,226,197,171, 47, 93,186,180,122,204,152, 49,171, - 69, 34,209,210,234,194, 22, 52,113, 33,254, 50,205, 71,218,192, 49,172, 3,115,102,120, 71,134,157, 57,192,193,242,191,222, 50, -195,144, 33, 67, 54,181, 50,159,173,121, 88,254, 76,205,131, 38,147,137,160,170,217,238, 32, 26,111, 18,124,167,206,254,188,140, -140, 12, 82,253,183, 45,249,116,158, 60,121, 50, 91, 81, 81, 65,158,124,242, 73,130,230,151,240,105, 82, 83, 36, 18,133, 13, 28, - 56,208,164, 42, 40, 38, 9, 41,217,228, 98,204, 45,114,226,212,121,178,119,127, 20,217,176,105, 43,233,214,173,155, 1,128,143, - 45,154, 60, 30,111, 72, 88, 88, 88,145, 74,165, 34,241,241,241,228,204,153, 51,228,251,239,191, 39, 91,183,110, 37,155, 55,111, - 38,109,219,182, 85, 1,112,179, 69, 83, 34,145,140,123,236,177,199, 76,165,229, 26,146,154, 93, 68,110,196,167,146,115,151,111, -144,227,167,206,145,111,246,236, 35, 65, 65, 65, 58, 43, 52,185, 92, 46,119,195,222,189,123,203, 9, 33,100,220,184,113, 89,184, -119, 34,213,246,243,231,207,207, 39,132,144,149, 43, 87, 22,161,225,142,240,127,246,189, 52,210,211,211, 51, 65, 32, 16, 68, 1, -120,166,153,227,158,226,241,120,135,221,221,221,175, 0,152,240, 55, 60, 71, 99, 92, 93, 93, 47, 2,104,110,133,131,154,247,141, -255,151, 60,239,127,134,230, 16, 30,143,119, 6,104,122, 17,225, 58,245,245,199, 92, 46,247, 40,128,161, 54,230,179,179,179,179, -243,147, 14, 14, 14,175, 57, 56, 56,188,230,234,234,250,164, 80, 40,236,220,154,115,119,234, 28, 62,214, 59, 36,226, 64,219,238, -163,211,189,123,140, 73,247,237, 57,238,128, 83,231,240,177,173,213,244,233, 57,238,160,119,143, 49, 25,222, 61,198,166,181,127, -100,220, 1,103,255,240,199,254,206,107,244,140, 39,218, 12,107, 15, 51, 57,179,136,144, 51,139, 72,120,123,176,125,237, 17, 20, - 10, 40, 70,132,135,175, 33, 22,203,154,137,227,199,175,233, 4, 56, 17,128, 91,127,107, 72, 51, 4, 80,214, 30, 59,110,220,154, - 14,128,243, 48, 64, 58,104,192,128,213,196, 98, 89, 51,245,169,167,214,120, 3,238, 13,233, 53,166, 73, 0,174, 39,208,166,174, -174, 51,208,113,146, 47,130,223, 25,235, 75,200,153, 69,228,195, 39,252, 72, 79, 55, 60,211,140,102, 99,145,162,135, 58,162,101, - 43,178,234,202,117,121,245,171,236, 1,220,132, 15, 92,179,143, 7,252,194, 59, 50,241,163,252,121,197,168, 26,146, 44,251, 23, - 86,146, 59, 12, 6, 3,209,233,116, 68,163,209, 16,181, 90, 93,223, 64,213, 26,178,156,156, 28,146,149,149, 69, 50, 50, 50, 72, - 90, 90, 26,193, 31,125,111,172,206,167, 82,169,220,246,196, 19, 79, 88,248,124,254,134, 7,113,238,142,142,142,203,123,247,238, -109,252,236,179,207,200,129, 3, 7,200, 23, 95,124, 65,102,207,158, 77,186,116,233,162,183,183,183,159,210, 18, 77,119,119,247, -133,254,254,254, 69,219,183,111, 39,223,124,243, 13, 89,183,110, 29,121,239,189,247, 44, 94, 94, 94,121, 10,133, 98, 68, 75, 52, - 93, 93, 93, 35, 31,125,244, 81, 99,100,100, 36,249,249,231,159,201,238,221,187,201,252,249,243, 73, 64, 64,128, 94, 38,147, 61, -110,165, 38,151,199,227,173,153, 57,115,102, 94,155, 54,109,162,234,237,147, 6, 5, 5, 93,153, 58,117,106, 14,128,183,254, 69, -247, 39,213,164,154, 84,243, 79, 48, 90, 79,183,129, 39, 1,184, 82,129,224,169, 65, 3, 6,172, 22, 0, 79,217,106,138,196, 92, -238,164,254,189,123,175, 22, 0, 83,106,222, 43,230,114, 39, 13, 26, 48, 96, 53,159,203,157,214,152, 94, 83,154, 4,224, 10,120, -188,183,250,247,237,187,134, 7,188, 91,147, 54,164, 61,115,123,254,200,182,100,128, 15,147, 52,205, 21,210,127,177,209,122,224, -240,254,132,155,240, 97,209,252,167, 60,212,157,170, 13,211, 65, 27, 34, 90, 7, 81,181,138,122,167, 22,230, 83,242,128,207,189, -171,179,179,243,177, 78,157, 58, 21,180,107,215, 46,199,193,193, 97, 15, 0,175, 86,106, 6,187,187,187,127,237,230,230,118,199, -195,195, 35,214,217,217,249, 83, 84,205, 58,223, 98, 77, 62,159,223,219,205,205,237, 55, 95, 95,223, 82, 31, 31, 31,149,179,179, -243,222, 6, 34, 89,214,104,122,160,225, 74, 69, 80,189,143,126,233, 80, 77,170, 73, 53,239, 49, 48,195, 59, 96,197,176,246, 48, - 15,107, 15,203,112, 95,124, 90,215,160,140, 1, 36, 45, 53, 69,255, 3, 68,245,223,223,156, 94,115,154, 4,224,246, 3,228,245, -143, 25,229,133, 32, 43, 53, 31,246,136, 86, 77, 61,111,219,244, 14,141, 96,254, 19, 50,249,176,104,254, 83, 72, 66, 19,157,145, -235,176,252, 1,126,166,246, 1,159,195,141,194,194,194,199, 10, 11, 31,232,216,132,155,121,121,121,207, 60, 72, 65,147,201,116, - 73,165, 82, 13,126, 0, 82,141, 13,189, 54,194,202, 97,217, 20, 10,229,191, 3, 3, 88,144,140,183,195, 59, 99, 61,207, 2,206, -241, 20,100,215, 27,146,167,101, 90,162, 89,133,101, 71, 3,117, 60,211,210,124,254,129,250, 62,141, 44,220, 98,254, 59,151, 45, - 23, 85,125,180, 90,109,180, 40, 20, 10,133, 66,161,252, 5,156,188, 67,127,136, 61, 4, 68,225,222,232, 91, 84, 29, 35,218,104, -232,211,150,145, 20, 45, 9,159,158,164,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179,134,198,214, 78, 77,168,247,127, -139, 70,241,253, 87,160,237,236, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,183,211,226,121,180, 40, 20, 10,133, 66,161, 80, - 40, 77,211,104,212,141, 26, 45, 10,133, 66,161, 80, 40,148,214,225,129,170, 37,170,162,240,199, 82, 85,145,212,104, 81, 40, 20, - 10,133, 66,161,180,158,209,248, 99,180,225, 61,209, 45, 14, 45, 27, 10,133, 66,161, 80, 40,148, 86, 51,163,206, 43,237,163, 69, -161, 80, 40, 20, 10,133,242,128,176,110,100,228,145, 35, 71, 8, 45, 43, 10,133, 66,161, 80, 40,127, 23, 15,169, 23,169,137, 98, -221,183,202, 7,141,104, 81, 40, 20, 10,133, 66,161,180,142,200, 58,134,235,158, 52,106,180, 40, 20, 10,133, 66,161, 80, 90, 71, -141,193,138, 66,189, 37,213, 56, 0,109, 50,164, 80, 40, 20, 10,133,242,247,242,144,123,145,200,234,237,190,229,146,106, 70, 29, - 14,174, 62,193,193,244, 82, 83, 40, 20, 10,133, 66,249, 27,120,152,189,136, 7, 26,233,163, 69,161, 80, 40, 20, 10,133, 66,105, - 29, 51,234,189,214,194,208,178,161, 80, 40, 20, 10,133, 66,121, 32, 70,171, 46,116, 49,108, 10,133, 66,161, 80, 40,148,135, 25, -186,178, 57,213,164,154, 84,147,106, 82, 77,170, 73, 53,255, 11,204, 64,189, 89,225, 1, 58,189, 3,133, 66,161, 80, 40, 20,202, -131, 48, 89,145, 13,253, 79,215, 58,164, 80, 40, 20, 10,133, 66,249,147,160, 17, 45, 10,133, 66,161, 80, 40,148,214, 17,137, 6, -102,133,167, 70,139, 66,161, 80, 40, 20, 10,229,193,153,173,251,160, 77,135, 20, 10,133, 66,161, 80, 40,173, 99, 70, 99,255, 51, -104,124,228,192, 73, 27, 62,160, 37,163, 15, 78, 82, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167,217,156,246, 73, 60,124, - 52,218, 25,254,207,134, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,154, 37,120,106,182,218,165,120,104, 31, - 45, 10,229, 33,135,236, 3, 23, 37,254,190, 32,164, 13,184,194, 92,228,222, 72,102, 62, 0,219,106, 77, 85,144, 15, 36, 38, 55, -152,197, 5, 80,197,166,180, 86,147, 66,161,252,251,112,239,247,202, 4,134,195,221,204, 16, 22, 90, 85,188, 72,160, 77,147,230, -231,166,255, 23,189, 69, 46, 26,137, 96, 81,163, 69,161, 60,236, 20, 4,248,129,135,229,224,192, 3,196,120, 23,194,139,153,188, - 0, 0, 32, 0, 73, 68, 65, 84, 46, 65,203,129, 91,113,173,214, 20,176, 75, 96,225,120,129, 24, 19,225,234,191, 2, 72,184, 69, - 11,251,223,199,156,217, 47,147,219,113,151,144,145,145,131, 14, 29, 61,224, 23,208, 15,159,173,223, 68,151,103,163, 88,249,171, -140,137, 12, 31, 59,213, 81, 34, 85, 0, 0, 88,179, 9,219,231,245,248,217,108, 54,239, 4,112, 0,128,246,191, 94, 68,127,121, -103,120, 62,159,175, 2,192,138,197,226,253,160,171, 92, 83,254, 92, 60,170,239, 51,182,250,190,179, 5, 57,143,199, 91, 44,149, - 74,127, 21,137, 68,249, 34,145, 40, 95, 38,147,253,202,227,241, 22, 3,144,255, 99,234,184,175,187, 72,193,177, 60,102, 48,177, -158,199,111,148,186,106,244, 22, 63,112,204,163,200,246,206,242, 86,105,242,152,225, 58, 35,235,253,205,101,141, 91,165,193, 28, - 8,130, 86,105,214,193, 94, 32, 16, 28, 7,224, 76,111,207,127, 6,233, 41,113, 56,122,100, 13,150,124, 52, 29, 95, 69,206, 68, -194,237,139,173,210, 11, 4,122,245,226,241, 22, 4, 0, 67, 64,215,211,253,247,195,144, 25, 39, 15,127, 83,112,120,207,198,130, -111,215,204, 36, 7,151,143,193,250,245,235,195,167, 79,159,254,141,183,183,119, 1,128, 39,168,209,250,139, 49,153, 76,174,133, -133,133,204,206,157, 59, 35,236,236,236,238,242,120,188,119, 0, 8,254, 43, 5, 46,151,203,207, 43,149, 74,149,157,157,157, 74, -169, 84, 94,109, 46,253, 95,138,159,139,139, 75,186,163,163, 99, 98,221, 68,151,110, 19,250,117,234,255,204,251, 78, 65,227, 6, -181, 82, 95,192,227,241,222,177,179,179,187,187,115,231,206,136,236,236,108,198,100, 50,185,218,112,252, 64, 7, 7,135,219,151, - 46, 93, 90, 84, 88, 88, 56, 40,243,226,118,151,188, 75, 91, 93,210,127, 91, 51, 56,250,232,134, 69,246,246,118,183, 0, 12,252, - 71,148,164,142,117, 3,135, 27,118, 51, 87, 35,205, 45, 55,185,197,164,105, 20, 0,119, 48, 12,173,248, 17, 83,198,186, 1,100, -200,245, 44,173,236,124,177,139,219,239,201,122, 37, 56,156, 48,232, 24,247, 86, 87, 56, 28,206,203, 44,203, 14, 19, 8, 4,175, -209,111,168,127, 6, 34,145, 0, 32, 4,114,153, 24, 0, 1,167,149,214, 72,200,225,244, 63, 31, 17,177,228,173,110,221,230, 4, - 0, 99, 27, 49, 91, 12,128, 87, 3, 2, 2,142, 1,120,234, 1,158,206, 39,254,254,254,217, 0,230, 62,168,122,169,103,207,158, -253,194,194,194,222,239,209,163,199,160, 7,165,249,111, 34,239,252,231, 63,230,158,221,224,154,115,110,147,107,105,202,153, 87, - 61,220, 28,216,148,148, 20,140, 30, 61, 26, 27, 55,110,148, 6, 7, 7,239, 2,208,230, 63,240, 40,133,212,252,192, 71,189, 62, - 90, 86, 27,173, 73,190,232, 63,165, 61, 78, 63,233,139,138,201,237,161,158,214, 30,103, 31,247,197,144,150,228,198,201,201, 9, - 3, 7, 14,228,102,103,103, 75,230,207,159,255,190, 88, 44, 78, 5, 48,162, 37, 90, 18,137, 36, 90, 42,149,102,242,120,188,123, -242, 34,149, 74,163,101, 50, 89, 38,143,199, 27, 90, 55, 93,161, 80,156, 87, 42,149, 42,133, 66,113,181, 17, 35, 20,173, 84, 42, - 85,114,185, 60,186,110, 58,143,199, 27, 42,151,203,179, 20, 10, 69,253,244, 33, 10,133, 34,179,126,122, 99,240,249,124,175,204, -204, 76,215,172,172, 44, 87,161, 80,232, 86, 55, 61, 35, 35,195, 53, 51, 51,243,158,116, 91,224,241,120, 67,100, 50, 89,166, 84, - 42,141,110, 40,189,254, 57, 53, 70,157,178, 27, 98, 77,186,173, 21,207,240,225,195,207,230,230,230,122,219,219,219,219,215,221, -225,104,103, 63,226,235,237,155,230,141, 27, 53,252,101,151,192,241, 93, 91,168, 63, 66, 44, 22,167,206,159, 63,255,253,236,236, -108, 73,223,190,125,185, 28,142, 77,191, 39,194,199,141, 27,119, 80,165, 82,121,118,239,222,157,107, 54,155,113,243,208, 98, 72, - 99, 95,131, 56,117, 11,218, 74, 10,120,119,127, 94,225, 53,124,112,175,131,248,155, 59,131,146,125,129, 2, 48,236, 64,150, 16, -151,219,217, 58,151,209, 17, 79,240,174,101,106, 93, 76, 22,139, 35,192, 29, 76,190,242, 17,181, 72,147,103, 26,192, 18,226,246, - 75, 26,223, 37,236,201, 57,220, 83,105, 60, 23,147,197,226, 4, 14, 6,181, 68,179,238,237,207,229,114,231,173, 89,179,134, 3, - 96, 54, 0,225,127,201,208,132,182,129,231,144,142,220,203, 33, 30,232,255, 0,101,131,171,159,119,191,214, 10,109,251,234, 24, -158,127, 41, 18,157, 3,250,180, 74,199,192,178, 9,123, 83, 82, 78, 76,235,216,113,204, 91,221,186, 61,219,128,217, 98, 0,188, -181, 98,197,138,103,110,222,188,233,210,190,125,251,151, 30,208,143,254,117, 43, 86,172,120,243,230,205,155,109,124,125,125, 63, -180, 81,179,209,122,201,193,193, 97,196,182,109,219,230,141, 30, 61,250,229,158, 61,123,118,125, 16,154,255, 98, 54, 94,191,126, -221,123,205,154, 53,111, 63,255,252,243,229, 0, 48,116,232, 80, 1,128,190,173,174,239, 8, 17, 18, 66,194, 8, 33,163, 9, 33, - 67, 9, 33,161,213,127, 63, 82,189,141, 38,132,132,215,123,125,164,250,216,154,253,189, 27,209, 24, 93,255,184, 58,199,212,255, -255,158,191, 27, 48, 90,163, 81,213, 87,107,244, 61, 39,112,228,200, 17, 82,247,181, 62,147,125,241,193,156,126,158,154,219,135, -119, 19,117,102, 10, 41,137,191, 70,174, 69, 46, 35,115, 30,113,209, 60,221, 30,159,216, 94, 94,132,156, 59,119,142,220,188,121, -147,168,213,106,114,231,206, 29,210,187,119,111,173, 84, 42,253, 5,128,175, 45, 98, 10,133, 66,245,203, 47,191,144,225,195,135, -151,201,229,242,213, 53, 15,151, 82,169, 84,157, 59,119,142, 12, 31, 62,188, 76,161, 80,172, 3,192, 5,128,199, 31,127, 60,159, - 16, 66, 92, 92, 92,114, 26,210, 27, 55,110, 92, 9, 33,132,216,217,217,213, 52, 53,113, 21, 10,197,186, 89,179,102,169,175, 92, -185, 66, 28, 28, 28,106,210, 57, 74,165,114,245,236,217,179,213, 49, 49, 49,117,211,155,196,209,209, 49,211, 98,177,144,195,135, - 15, 19, 87, 87,215,156, 58, 15,115,166,197, 98, 33, 7, 15, 30,108, 52,111, 77, 5, 10,228,114,249,170,105,211,166, 85,164,165, -165, 17, 39, 39, 39, 85,157,244,213,211,167, 79,175,200,200,200, 32,206,206,206, 86,229,209,201,201, 73,117,254,252,121, 50,113, -226,196,242,186,101,234,228,228,164,186,112,225, 66, 77,250, 42,107, 42,178, 54,109,218,188,228,234,234,154,227,234,234,154, 99, -111,111,191,212,195,195, 35,175,160,160,128, 16, 66, 72,135, 14, 29,242,235, 70,178, 92,131, 35, 94,223,178,239,194,165, 51,113, - 69, 5,221,134,189,188,202,174,219, 56, 59, 27,202,192, 87, 42,149,254, 50,104,208, 32,109,102,102, 38,169,172,172, 36,177,177, -177,228,220,185,115, 36, 41, 41,137, 0, 32,214,220, 78,114,185, 60, 91,175,215,179,122,189,158, 45, 40, 40,176,228,231,231, 91, -226, 87,123, 16,242, 37,191,118, 43, 61, 56,150,228,157, 89,206, 42,229,210, 44, 0,138,191,205,104,109, 10,242, 34, 91,253,247, -222, 90,236, 29,127,102,197, 72, 19, 73, 59, 69,118, 63,235, 98, 58,253,186,231, 93,178, 57,224, 7,178, 53,176,109,139, 52, 55, - 7,238,142,125,207, 59, 97,195,135,175,154,210,211,211,201,130,233, 35,205, 63,205,241, 76, 38, 91, 2,246,181, 68,179, 14, 83, - 38, 76,152,160,206,200,200, 32, 65, 65, 65,149, 92, 46,247,249,255,146,201, 10,247, 19,102,199,126,179,128, 29, 27, 44, 45,122, - 64,102, 43,216,213,213,181,112,199,142, 29, 68,161, 80,228,183,212,108, 77, 26, 63,152,104,203,126, 33,227,199,132, 54,249,140, - 60,249,228,147, 36, 44, 44,140,204,153, 51,167,185,103,137, 9, 0, 34,118,118,235,118,144,157, 52,201,178,179, 91,183,131, 1, - 64, 68,181,193, 98, 0,188,189,114,229,202, 24,147,201, 20,243,213, 87, 95,197, 68, 68, 68,196, 0, 88,208,202,178,248,236,147, - 79, 62, 33, 38,147,137,124,245,213, 87, 36, 34, 34,130, 0, 88,223,154,122,169, 38,146, 21, 18, 18,242,250,129, 3, 7, 46, 37, - 36, 36, 20,140, 25, 51,102, 85,183,110,221,236, 90,170,249, 79, 68, 46,151,119,234,218,181,235,174,160,160,160,140,238,221,187, - 27, 2, 3, 3,117,126,126,126,105,193,193,193, 59, 68, 34,145,111, 11,101,251,244,239,223,223,114,250,244,105, 50, 97,194, 4, - 82,199,132, 52, 73, 83, 94,132, 16, 18,250,246,219,111,191, 3,128,188,253,246,219,239, 16, 66, 70, 87,251,137,209,117,255,174, -255, 90, 99,158,106,254,111, 72,163,102,107, 72,179,161,207,168,247, 57,104, 36,146, 53,227,190,147, 59,114,228,200,160, 35, 71, -142,156,174,127,114, 79,180, 71,191, 57,253, 60,181,218,130, 92, 18,183,236, 53,242,107,152, 23, 57, 55,216,157, 36,206,155, 64, -114,191, 89, 71, 94,233,225,160,153,212, 30, 97,182, 26,173,152,152, 24, 18, 19, 19, 67,174, 94,189, 74, 82, 83, 83, 73, 89, 89, - 25,249,246,219,111, 45, 78, 78, 78, 90,145, 72,180, 2,128,196, 26, 49,165, 82,169, 34,132, 16,189, 94, 79,150, 46, 93,170,171, -142, 84,185,217,217,217,169, 8, 33,164,180,180,148,172, 88,177, 66,103,103,103, 23, 11,160,141,179,179,115,102, 74, 74, 10,113, -115,115,107,208,204, 56, 56, 56,168, 18, 18, 18,106,140,147,167,131,131, 67,220,161, 67,135,140,132, 16,146,149,149, 69, 28, 29, - 29, 85, 0,220,156,156,156,174, 29, 57,114,196, 72, 8, 33, 57, 57, 57, 53,233, 86, 25, 45,173, 86, 75,126,250,233,167,123,242, - 80,147,126,236,216,177,123, 12,152, 21,184,217,217,217,197,124,251,237,183, 6,139,197, 66,226,226,226,106, 76,162,155,189,189, -253,213,125,251,246, 25, 44, 22, 11,137,143,143,183,218, 12,182,107,215, 46,159, 16, 66,204,102, 51,217,178,101,139,190,166, 76, -107,210, 13, 6, 3,249,252,243,207,245, 74,165, 50, 6, 64,147,209, 55,103,103,231, 28,131,193, 64, 74, 75, 75, 73,239,222,189, -213,231,206,157, 35,229,229,229,132, 16, 66,218,181,107,151, 15, 0,254,131,158,255,248,210, 29,117,249,115,111,110,250,206, 55, -244,233,101, 39, 46,103,103,109, 59, 16, 29,227, 28, 60,110,164, 53, 65, 77,145, 72,180,194,195,195, 67,247,251,239,191, 91,140, - 70, 35,201,200,200, 32, 87,175, 94,173,189,199,110,220,184, 97,149,209,226,241,120,139, 47, 93,186,100,180, 88, 44,108, 97, 97, -161, 37, 63, 63,223,146,159,159,111,174,111,180,200,151,124, 82,120,236, 69, 18, 21, 57,215, 32, 16, 8, 22,255, 61,209, 44,112, -201, 86,255,113,100,171,127,204,142,105,206,133, 21, 87,247, 16,242,243, 92,146,252,113,123,178,120,164,162,130,221,234, 31, 67, -182, 6, 76, 34, 31, 12,226,217,164, 25, 25, 56,150,108,245,143,249,228, 9,159,162,107, 49, 87,200,233,211,167,201,231,235, 86, -146, 57,225,158,149,236, 86,255, 24,178, 57,112,162, 45,154,117, 17,137, 68,119,206,158, 61, 75,206,156, 57, 67, 62,252,240, 67, - 34,149, 74, 51, 30, 68, 84,143,108,246,243, 33, 95,248, 13, 34,219, 59,123,144,223, 6,253,227, 6,248,132,182,129,231, 48, 63, - 97, 86,225,181, 3,132, 20, 39,145,188,213, 65,100,164, 63,191,181,102, 43,216,213,213,181, 32, 45, 45,141,228,229,229,145,181, -107,215, 18,165, 82,217, 34,179, 53,105,252, 96,162, 45, 61,217,164,209, 26, 55,110, 28,249,244,211, 79,137,201,100, 34,125,250, -244,177,230, 71,203,125,102,203, 31, 24, 7,224,157, 85,171, 86,213,154,172, 77,155, 54,197,220,184,113, 35,198,219,219,251,104, - 43,202, 98,253,170, 85,171,106, 77,214,166, 77,155,200,141, 27, 55,136,143,143, 79,102,107,234,165, 97,195,134,125,156,154,154, - 90,190,112,225,194,239, 6, 14, 28,184,236,218,181,107, 89, 81, 81, 81, 49, 33, 33, 33, 35, 91,170,249, 0,162, 58,188,234,200, -142,144, 16,194, 39,132,212,152, 87, 30, 0,126, 77, 64,193, 26,166, 77,155, 38,237,215,175, 95,204,212,169, 83, 53, 59,118,236, - 32,105,105,105, 36, 54, 54,150,172, 90,181,138,188,255,254,251,228,203, 47,191, 36, 19, 39, 78,172,236,221,187,247,165, 73,147, - 38,137,109,200,102,144,175,175,111,217,193,131, 7,201,238,221,187,137, 64, 32,136,178,246,192,166,188, 72, 99,102,170, 49,131, - 85,127, 95, 19, 70,172, 73,195,102,197,231,221,111,170,234, 71, 66,234,252,253,219,152, 49, 99, 6,221,247,229, 67,240,209,140, -249, 31,139, 83,119,172,133,234,219,141,224,150,170,192,175, 40,130,254,108, 20, 76,103, 15,225,153,190,125, 37, 18,134, 89, 98, -235, 13, 35, 20, 10, 33, 20, 10, 33, 16, 8,160,209,104,144,147,147,131, 71, 31,125,148,115,245,234, 85,241, 75, 47,189, 52, 87, - 34,145,100, 0, 24,223,236,211,204, 84, 69,164,207,159, 63,143, 23, 95,124, 81,180,107,215,174,238, 46, 46, 46,215, 45, 22,139, - 16, 0,226,227,227, 49,121,242,100,209,158, 61,123,186,180,105,211,230,170,209,104,148,138, 68, 34,112,185,220, 70,245,132, 66, - 33, 76, 38,147,168,115,231,206,177,215,175, 95, 15, 30, 51,102, 12, 63, 61, 61, 29, 41, 41, 41, 48,153, 76, 66, 63, 63,191, 27, - 87,175, 94,237, 62,122,244,104,126,102,102, 38,210,211,211,107,243, 97, 77,126, 13, 6, 3, 68, 34, 17,234, 54,105, 49, 12, 3, -189, 94, 15,161, 80,104,181, 22,143,199, 27, 18, 16, 16,112,227,250,245,235, 33,227,198,141, 19, 92,185,114, 5, 89, 89, 89,176, - 88, 44,194,192,192,192, 27,215,175, 95,239, 17, 17, 17, 33,136,141,141,133, 74,165,130,181, 77,104, 53,239,187,126,253, 58,166, - 78,157, 42, 60,126,252,120, 15, 15, 15,143, 88,179,217, 44, 4,128, 27, 55,110, 96,242,228,201,194, 19, 39, 78,132,180,109,219, - 54,182,153,166, 68, 46, 0,152, 76, 38,188,244,210, 75, 50,165, 82,137,204,204, 76,176, 44, 11,139,197, 2, 0, 40, 42, 41,186, -113,253, 70, 92,252, 51, 83,158, 24,164, 53,234,245, 23, 46, 71,223,238,208,206,199,139, 97, 72,187,102,178, 58, 94, 38,147,101, -172, 94,189,250,245,180,180, 52, 81, 64, 64, 0, 39, 57, 57, 25, 21, 21, 21, 16, 8, 4,181,247,152,181,231, 45, 20, 10, 7, 7, - 5, 5,241,116, 58, 29, 88,150, 5, 0,194,225, 52,220, 99, 69, 92,122, 22,129,110,102,190, 68, 34, 25,252,183,124,123,151, 7, - 57,129,197,176,244, 2,131, 72,100,239,165,144,123,248, 1, 25,103,208,222, 69, 4, 46,135, 43,190,146,162,145, 1,100, 24,188, - 11,157,108,211,100,135,165,228, 27, 68, 38,199, 46,242, 54, 94,222, 40, 42, 42, 66,219, 14, 1,208, 9, 93,132,231,147, 42,229, - 96,108,212,252,131, 1,157, 59,119,118,239,212,169, 19, 10, 11, 11, 17, 18, 18, 2, 7, 7, 7, 7, 0,195, 90,252,165,243,149, -143, 8,229,232, 15,112, 86,195,194,124, 8, 19,111, 57,146, 10, 66,200,214, 16,254, 63,201,100, 41,229,194,139,123,246,126,235, -233,228, 29, 8, 68, 61, 7, 55,123, 17,182,191, 28,226,232, 98, 39, 58,216, 66,179, 21,236,230,230,118,234,210,165, 75,206, 98, -177, 24, 87,175, 94, 69, 80, 80, 16,214,174, 93,235,226,224,224,112,166,101,145, 45, 2,194, 52,110,178, 6, 14, 28,136,217,179, -103, 99,215,174, 93,112,116,116,196,212,169, 83,155, 51, 91, 36, 30, 56,252, 73,108,236, 87,187,238,222, 61, 50,173, 99,199, 49, - 83,253,252,150,206,124,234,169,231, 95,125,245, 85,172, 92,185, 18, 7, 15, 30, 68,255,254,253, 49, 99,198, 12, 83, 70, 70,198, -206,150, 54, 85,173, 94,189,122,206,220,185,115,235,107, 26,211,211,211, 63,105, 85,189, 84, 84,116, 35, 54, 54, 54,126,202,148, - 41,131,116, 58,157,254,242,229,203,183,125,125,125,189, 0,180,107,169,102, 43, 12, 22, 67, 8, 17, 3,144, 86,111, 50, 0,210, - 61,123,246,216,141, 27, 55, 78, 89,157, 38,169,222,154,109,222, 15, 10, 10,242,186,115,231, 78,246,188,121,243, 66,118,237,218, - 37,145, 74,165, 40, 45, 45,197, 23, 95,124,129,119,222,121, 7, 12,195,128, 16,130, 47,191,252, 82,250,236,179,207,134,222,189, -123, 55,219,199,199,199,154, 46, 45, 34,185, 92,190,111,233,210,165, 74,150,101,241,214, 91,111, 21, 26,141,198,217,213,251, 22, -218,219,219, 95, 68,149,225,110,138, 6,189, 72,157,239,202, 35,245,202,102, 76,253,180,250,251, 8, 33, 99,154,210,176,241, 90, - 52,244,121, 81, 77,153,173,186,223, 64,131, 27,116,145, 64, 55,119, 95,127,148,253,188, 15, 18, 30, 3, 9,183,122,227, 49,224, - 36,223, 64, 91, 49, 31, 38, 66,130, 91,106,180,106, 54, 62,159, 15,141, 70, 3,139,197,130,119,222,121, 71,244,211, 79, 63, 57, -113, 56,156, 31,154,211,169,107,152, 18, 19, 19, 17, 24, 24,200, 28, 62,124,216,109,246,236,217,146,154,207, 41, 43, 43, 67,167, - 78,157,152, 99,199,142,185,190,247,222,123,242,166,204, 12,195, 48, 16, 8, 4,152, 59,119,174,228,242,229,203,142,109,218,180, - 65,114,114, 50,138,139,139, 33,151,203, 49,119,238, 92,201,165, 75,151, 92,218,180,105,131,180,180, 52,148,149,149, 65, 46,151, -219,108,180, 4, 2,193, 61,199, 48, 12, 3,163,209,104,147, 49,176,179,179,219, 29, 19, 19,227, 98,103,103,135,216,216, 88,152, -205,102,216,217,217, 97,206,156, 57,146,152,152, 24, 23,123,123,123,196,199,199,131, 16, 2,165, 82,105, 83, 30, 1,128,101, 89, -196,199,199,163, 93,187,118, 56,115,230,140,235,204,153, 51,197, 53,233, 73, 73, 73,240,242,242,194,153, 51,103, 92,101, 50,217, -238,198,180, 88,150, 69,110,110, 46,110,222,188,137,228,228,100, 20, 20, 20,160,176,176, 16, 21, 21, 21, 48,155,205, 0, 0,105, - 69,121,212,158,239, 14, 95,151, 72, 36,210, 32,191,206,222, 55,226,110,229, 75, 36, 18,169,143,183,183, 31,240, 1,167, 9, 67, -248, 67,122,122,186,211,179,207, 62, 43,200,203,203, 67, 73, 73, 9,120, 60,222,125,247,150, 80,104, 93, 87, 32,179,217, 28, 40, - 22,139, 25,163,209, 88, 27, 1, 19, 10,133,120,125,183, 6, 65,139,113,207,246,212,186,124, 16,139, 9, 6,131, 33,240, 47,143, -102, 1, 12, 24, 67,103, 48, 76,200,197,228, 74,199, 1, 99,166, 8,144,114, 28, 96, 77, 0,135,135,193,221,188,120, 7,111, 84, -186,129,160, 27,244, 8, 32,164,249,145, 95, 4, 96, 0, 99, 39,128,233,245,211, 29,179, 83,255, 9, 47, 11,178,179,179, 33, 16, - 8, 32, 18,137, 16, 50,228,113,222,158,235, 38,119, 48,232, 14, 35,252,173,209,188, 39,236, 40,145, 44,122,255,253,247,101,117, - 53,159,127,254,121,153,157,157,221,251, 45, 54, 89,149,210,190, 48,147,185, 55,179, 53,237,150, 70,229, 5,222,205,215,250,131, -144,121,128,169,199, 3, 48, 91,131, 69, 34, 81, 10,128, 71, 91,101,178, 20,194, 11,123,247,126,235,233,216,182,202,100,193,172, - 3,248, 18,184,187,216, 99,251,235, 97,142, 46,246, 18, 91,205, 86,176,155,155,219, 47, 23, 47, 94,116, 22,139,197,136,137,137, -129, 64, 32,128, 88, 44, 70,215,174, 93,177,117,235, 86, 23, 71, 71, 71,155,205, 22, 1,105, 48,230, 59,126,252,120, 50,112,224, - 64,204,154, 53, 11, 59,119,238,132,193, 96,192,210,165, 75,145,158,158,110,149,108, 60,112,120, 69,108,236,142,229, 55,111, 38, -190, 29, 28, 28, 48, 94, 38,115,156, 53,117,170,221,123,239,189,119,228,208,161, 67, 95,141, 30, 61,186,240,242,229,203,159, 2, -216,103, 99,241, 50, 0, 54,173, 89,179,102, 86,141,113,123,239,189,247,190, 60,116,232,208,242,209,163, 71,231, 94,190,124,121, - 30,128, 77,173,169,151, 88,150,141,250,225,135, 31,174, 75, 36, 18,169,191,191,191,119, 92, 92, 92,190, 68, 34,145,122,123,123, -251, 13, 26, 52,136,211, 18,205,150,224,234,234, 58,244,226,197,139, 65,168, 26, 52, 38,170, 49, 90,113,113,113,246,229,229,229, -246,114,185,220,222,195,195, 67, 81, 99,182, 38, 76,152, 96,207,227,241,154,188,111,213,106,245,161,133, 11, 23,218, 77,152, 48, -161,230,127,156, 61,123, 22, 59,119,238,132, 76, 38,187,231,189, 17, 17, 17,120,241,197, 23, 29, 12, 6,195, 15, 86,100,119,250, - 75, 47,189,228,239,230,230,134, 69,139, 22,233,179,179,179,135, 2, 72, 7, 96, 23, 30, 30,254,113, 92, 92, 92,239,208,208,208, -239, 0,244,108,234,217,107,200,139,212, 53, 58,214,164,181,244,253,214,154,173,122, 73,141,206,161,117,143,209, 26, 51,102,204, -105, 52, 50,146,202, 88,172,130, 8, 22, 72,184, 12,164,220, 58,102, 11, 44,120,101,249, 96, 90, 48, 74,165,161, 47, 67,161, 80, - 8, 46,151, 11,131,193,128,162,162, 34,155, 76,129, 82,169,132, 92, 46,135, 86,171,133,217,108,134, 88, 44,174, 49, 35, 80, 42, -149,224,243,249,224,243,249, 16,139,197,247, 69,147,234, 71,115, 4, 2, 1,100, 50, 25,114,115,115,145,158,158, 14,150,101, 33, -151,203, 33,147,201, 32, 20, 10,145,147,147,131,156,156, 28, 16, 66, 32,147,201, 32,147,201, 96, 75,135,107,139,197,210,224,151, -191,201,100,178, 41,162,101, 54,155,113,251,246,109,100,100,100, 64, 44, 22,215,158,171, 72, 36, 66, 82, 82, 18,242,242,242, 32, -149, 74,161, 84, 42, 97,103,103,103,181,110,205,185, 40, 20, 10, 72, 36, 18,148,148,148, 64,163,209,212,150,169, 82,169,132, 76, - 38, 67, 89, 89, 25,242,243,243,155, 60,119,139,197,130,156,156, 28, 20, 20, 20, 32, 51, 51, 19,133,133,133,181, 21, 80,117,212, -168,117,129,157,242,114, 20, 21, 21,213, 70, 34, 27,219,172,129,101, 89, 84, 84, 84,224,226,197,139, 12,203,178, 40, 45, 45,101, - 11,242,242, 44,175,228, 8,113,240,131,205,228,219,227,215,116,123,142,198,104,247,255,114, 83,187,105,255, 13,173,184,247,135, -102,252, 29,124, 30,108, 7, 19,127,120,161,218, 36, 42, 48, 10,236,220,130,195,129,148, 99, 0,135, 7,136, 29,208,167, 75,123, -164,151, 88,100, 9, 42,131, 24, 12, 70, 96,147,159,131, 85,154, 22,254,176,130, 10,147, 40,205,232,162, 12,236,214, 19, 42,149, - 10, 34,145, 8, 34,145, 8,189,250,135, 35,165,200, 34,189,149,173,149,130, 96,184, 85,154,127,208, 65, 46,151,247,125,244,209, - 71,153,186,154,163, 70,141, 2,195, 48, 93, 1, 4,216, 84,201,173,239, 32,132, 81,218, 7, 60, 50,247, 86,174,166,205,193, 56, -157,223,216,241,143, 59,126,118, 50, 63,240,118,158,222, 23,196, 52, 31,196,216,179, 21,102,107,144, 66,161, 56,178, 97,195, 6, - 95,177, 88,124, 12,192,128,150,136,200, 37,220, 45,139,102, 77,241,116,168, 49, 89, 38, 13,192,147, 0,124, 9,192,147,192,221, -213, 25, 75, 94, 28,230, 40, 21,243,247,219, 96, 88,247,108,218,180,201,165,190,201,170,217, 66, 66, 66,176,120,241, 98, 23, 71, - 71,199,221,214,232,173, 94,181,146,148,150,149, 1, 4, 40, 47, 87, 99,245,170,149, 37, 53,251, 38, 76,152, 64, 6, 12, 24,128, - 89,179,102, 97,249,242,229, 56,122,244, 40,250,244,233,131, 25, 51,102, 32, 52, 52,180, 57,233,225,118,118,118,187,194,195,195, - 47,230, 40, 20, 47,230,246,236, 41,252,197,206,174,108,104, 89,153,157, 79, 92,156,209, 31,184, 1,224,243,172,172,172,145, 54, -152,172,167,148, 74,101,204,208,161, 67,141, 10,133, 34, 99,237,218,181,175,204,158, 61, 27, 43, 87,174,196,194,133, 11,191, 0, -240, 2,128,119,179,178,178,218, 52,101,178,254,172,122,233,207,170,235, 44, 22, 75,230,190,125,251, 66,141, 70,163, 87,117,243, -160,168,180,180, 84, 89, 92, 92,172, 48, 26,141, 50,150,101,101,246,246,246,114, 0,210,103,158,121,134,119,235,214,173, 64,179, -217,156,221,148,102, 94, 94,222,211,111,189,245, 86, 97, 97, 97, 33, 0,160,107,215,174, 40, 45, 45,197,130, 5, 11,240,218,107, - 85, 3,130,123,244,232, 1, 66, 8, 84, 42, 21, 86,175, 94,173,202,203,203,251,159, 21,217,237,216,185,115,103,196,197,197,225, -246,237,219, 39, 1,176,168,234,199, 90,118,237,218,181,235, 5, 5, 5,216,189,123,183,192,211,211,243, 16, 26,153,226,165, 41, - 47,210, 18, 24,134,137,106,201,113, 53,145,171,134, 34, 98,141,208,116, 68,107,204,152, 49, 76,221,215,123, 34, 70, 12, 98, 51, -162,207,192, 49,184,231, 61,209, 44, 41,151,129, 68,105,135,148,204,116, 8,192,220,124, 80, 70,171,164,164, 4,175,188,242,138, -246,233,167,159, 46, 98, 89,246,113,107, 77,129,157,157, 29,236,236,236,112,235,214, 45, 50,113,226, 68,213,218,181,107,181,117, -141, 86, 98, 98, 34, 25, 62,124,120,254,251,239,191,175,110,202,104,213, 68,180, 86,172, 88,161, 29, 60,120,112,193,205,155, 55, - 73,141,153,146,203,229, 88,189,122,181, 54, 44, 44, 76,117,229,202, 21, 82,147,102, 75, 68,139,195,225,212, 26,173,186,199,112, - 56, 28,176, 44,107,147,209,170,172,172,124,122,244,232,209,170,248,248,120, 82,115,158,118,118,118, 88,187,118,173,118,216,176, - 97,170,155, 55,111,146,154, 52,165, 82,105,181, 25,172,249,124,133, 66, 1,165, 82,137, 91,183,110,145,225,195,135,171,214,175, - 95,175,171,155,126,251,246,109, 18, 17, 17,161,170,168,168,120,186, 41,243, 82,211,156,103, 54,155,161,211,233, 80, 88, 88,136, -204,204,204,218,112,186, 86,166, 28, 57,229,201,177,221,181, 90,173,230, 86,226,157,140,174, 93,130, 92,181, 90,173, 38, 61, 35, - 35, 17,248,128,109, 66,251,241,224,224,224,162, 87, 94,121, 69, 91, 82, 82,210,106,163, 37, 20, 10,227,121, 60, 30, 25, 48, 96, - 0, 49, 24, 12, 36, 51, 51,211, 84, 88, 82, 98, 14, 88,182,140,220,124,253,117, 70, 18, 29, 45,146,203,229, 76,181, 38, 39, 57, - 57,153,149, 72, 36,241,127,185,209,226,176,238, 96,200,163,191,223, 81,219, 15, 27, 59, 89,200,228, 93, 6,140,106, 64,228, 0, -136, 28,192,147, 57,225,177, 1, 61,184, 59, 46,150,187,131,176,253, 32, 16,121, 53,171,201, 39,110, 0, 59,224,231, 68,157,195, -163,147,230, 8,139,139,139,193,229,114,107, 77,145, 84, 38,195,208,241,207,112,190,188,172,119, 7, 72,127, 48, 92, 47, 27,158, -245, 55, 23, 45, 90, 36, 40, 41, 41, 1,135,195,249, 67, 83, 42,197,204,153, 51, 69, 74,165,114,161,213,149,223,190, 64, 1,248, -162, 62, 0,121, 45, 33, 79,215,230,208, 13,173,255,252, 21,219, 37,193, 61, 66,241,210, 96, 87,201,138,168,252,224,235,153,218, -246,128,229,117,152, 13,189, 90, 96,182, 6, 40, 20,138,168,232,232,104,233,168, 81,163,176,122,245,106,153, 68, 34, 57,214,146, -138,191, 82,109,153,253,209,250,175, 85,177,159,142, 0,140,149, 85, 6,171,206,150,175,102,177,120,251,169, 50,147,137, 76,177, - 86, 83,171,213, 78,127,225,133, 23,138,246,239,223,127,159,201, 18,139,197, 72, 77, 77,197,210,165, 75,139,139,139,139,155,253, - 82, 92,187,102,117, 76,220,245, 95,241,229, 23, 31, 1, 32,216,176,246,101, 92,248,125,175,253,224, 65, 3, 73,187,118,237, 72, -104,104, 40, 94,121,229, 21, 44, 89,178, 4, 9, 9, 9,112,118,118,198,203, 47,191,140, 65,131, 6, 97,205,154, 53, 77, 85, 82, -195,103,207,158,189, 52, 43, 43,203,255,231,159,127,230, 21, 20, 20,184,174,217,182,173,236,251,178,178,226,229,113,113, 9,239, -118,233,210,249,237,110,221,254,215,196,212, 15, 13,154,172, 89,179,102,237,201,202,202, 10, 57,121,242, 36,191,160,160,192,107, -214,172, 89, 88,181,106, 21, 22, 46, 92,184, 21,192, 75,176,110,192,139,213,245, 18,151,203, 29,249,248,227,143,119,215,106,181, -154,132,132,132,140, 46, 93,186,184,106,181, 90, 77, 70, 70, 70,226,233,211,167,217,150,104,182,132,162,162,162,187,187,119,239, - 78,156, 51,103, 78, 72, 86, 86, 86, 32, 0,167,138,138, 10, 89, 69, 69,133,200, 96, 48, 72, 28, 28, 28, 28,122,244,232,225, 60, - 99,198, 12,249,181,107,215, 2,179,178,178,212,213, 81,164, 70, 49, 26,141, 9, 37, 37, 37, 99, 70,140, 24, 81, 90, 82, 82,130, -110,221,186, 97,236,216,177,112,119,119, 71,155, 54,109, 48,110,220, 56,248,249,249,161,168,168, 8, 83,166, 76, 41, 46, 40, 40, - 24, 1, 32,217,138,236,222,205,203,203, 67,191,126,253,240,209, 71, 31,141,121,226,137, 39,110, 14, 24, 48,160,188, 75,151, 46, - 26, 47, 47,175,128,207, 62,251, 12,158,158,158,216,183,111,159,135, 72, 36,218,221,128,201,106,212,139, 0, 40,168, 54, 60,134, -122,175, 5,205,236,179,246,216, 6,255,182,226,125,245,205, 86,221,237,190,166,195,134, 47, 8,176,120,231,190, 29, 58,161,119, - 39,216,249,119,135, 84, 44,134, 68, 40,132,196,193, 9,122,150,197,182,212, 60, 77, 37, 33, 11,109,189,121,234,127, 17, 50, 12, -131,141, 27, 55,154,251,246,237,171, 59,117,234,212, 6,173, 86,235,141,170, 89,101,173, 54, 5,235,215,175,215,204,157, 59,247, -122,126,126,126,119,177, 88,108,168, 73,223,176, 97,131,230,153,103,158,137,203,202,202, 10,145, 74,165,154,198,250,103,213, 53, - 90, 34,145, 72,159,159,159, 31,250,252,243,207,199,127,254,249,231,149, 82,169, 20, 50,153, 12, 34,145,200,144,159,159,223,253, -149, 87, 94,185,190,106,213, 42,141, 68, 34,129, 76, 38,179,169, 89,142, 16,114,159,161,170,155,110, 45,102,179,249, 84,126,126, -126,247,185,115,231, 94,251,236,179,207, 42,107, 12, 80,221, 60,174, 89,179, 70, 35,151,203,109,138,104,213,188, 79, 38,147, 97, -221,186,117,154, 57,115,230, 92,207,207,207,239, 46, 18,137, 12,117,210, 43,103,207,158,125, 45, 63, 63,191,187,217,108, 62,213, -196,175, 49, 75,121,121, 57,120, 60, 30,226,226,226,244, 2,129, 0, 28, 14, 7, 73, 73, 73,181,149,143,163,163, 99, 80,247,174, - 93, 2,190,222,179,239,180, 68, 32, 18,245, 13,237, 21,152,156,150,158, 69, 8,147,214, 76, 86, 15,104,181, 90,239, 83,167, 78, -109,232,219,183,175,110,227,198,141,230,198, 34, 91,214,160,215,235, 79, 95,189,122,213, 36, 22,139,153,220,220, 92, 51,151,203, -133,197, 98, 33,250,208, 80,125,215,207, 62, 35,183,222,126,155, 81,202,100, 60,129, 64, 0,169, 84,202, 28, 63,126,220,160,209, -104, 78,255,245, 70, 11, 82, 48,144,220,201,215, 43,196, 28, 51,131,196, 3, 85, 38, 75,108, 15,136, 29, 0,177, 3, 60, 61,189, -112, 57, 85,163, 0, 7, 66, 88,172,152, 67,140, 16, 25, 24, 72,227, 84, 80,240,133, 18, 38, 47, 47,175,214, 16,213,108,190,157, - 2,113, 53, 93, 45, 7, 67, 68,224,194,150, 41, 72,198, 56, 57, 57,241,114,115,115,239,211, 12, 10, 10,226,154, 76, 38,235,167, -118,201,177,120, 0,236,172,196, 60,157,199,143,215, 43,253, 95, 95,254,165, 68, 98, 41, 5,162,215, 35,184, 67, 27,188, 62,169, -135,240,189, 67, 5,193, 87,210, 52, 29,192, 37, 47,129, 85,187,216,144,207, 71, 21, 10,197,177, 43, 87,174, 72, 21, 10, 5,146, -147,147, 17, 26, 26,138,200,200, 72,169, 84, 42, 61, 10,192,166,254,120,151, 84, 72, 87, 87, 88,250,190,185, 47, 35, 47, 54,215, -124,143,201, 42,168, 36,120,225,147, 67,165, 37,229,186,199, 47,102, 54,254,252, 52,192,181,210,210,210,225, 11, 23, 46, 44, 42, - 40, 40,184,199,100,165,167,167,215,124, 41, 14, 6,208,236,143,223,223,126, 61, 17,178,108,201, 92, 92,137,190,137,199,198,188, -134,171,177,119,241,238, 91,227, 97,175,148,224,212,169, 83,152, 48, 97, 2, 62,250,232, 35, 36, 37, 37,225,219,111,191,101, 34, - 35, 35,153,139, 23, 47, 50,159,124,242, 9,211, 76,151,134,169,203,151, 47,199,149, 43, 87, 48,106,212, 40,156, 57,115, 6,197, -197,197,216,123,236,216,157,221,119,238,188, 91,211,103,171,145,169, 31, 26, 68,169, 84,206, 95,190,124, 57,162,163,163,107, 53, -139,138,138,176,124,249,242, 44, 0, 47,219, 98,178,108,169,151,186,117,235, 22,176,103,207,158,211, 98,177, 88, 20, 26, 26, 26, -152,154,154,154, 5, 32,173, 5,154,229,173,105,169, 42, 44, 44, 60, 31, 25, 25,121,113,200,144, 33,210,233,211,167,187, 28, 60, -120,208, 73,163,209,180, 17,137, 68,174, 6,131, 65,120,251,246,109,238,247,223,127,239,126,235,214,173, 84,157, 78,119,217,154, -242,200,207,207,191,156,144,144, 48,162, 91,183,110,183, 55,108,216,144,229,225,225,193,206,152, 49, 3, 47,188,240, 2, 92, 92, - 92, 44,235,214,173,203, 24, 48, 96, 64,220,221,187,119,195, 53, 26,205, 13, 43,243,250,213,178,101,203,206,237,217,179, 7, 99, -199,142,197, 39,159,124,130,189,123,247,226,215, 95,127,149,252,254,251,239,194,200,200, 72, 8, 4, 2,244,233,211, 7,195,135, - 15, 31, 90,221,220,105,237,247,210, 21,134, 97,162, 24,134, 57, 89,239,245, 74, 83,251,108, 56,182,177,191,155,124, 95,189,108, - 70,214,219,172,103,106, 7,124, 48,179,139, 66,115,126, 90, 31,146, 55,227, 81,162,154, 28, 72,206, 14,114, 36,207,119,100, 42, -167,183,112,122, 7,173, 86, 91,187,237,223,191,159,184,187,187, 87, 42, 20, 10,155,167,119,112,119,119, 87,149,151,151,147, 71, - 30,121,164,216,197,197,165,118, 42, 2, 15, 15, 15, 85,101,101, 37,233,211,167, 79,177,171,171,107,237,244, 14, 94, 94, 94,153, -132, 16,226,227,227,147,211,152,158,217,108, 38,238,238,238, 53, 35,244,248,142,142,142,155,123,247,238, 93,172, 82,169,136,135, -135, 71,237,212, 9, 46, 46, 46,171, 67, 67, 67,235,167, 55,151,223,204,172,172, 44,146,149,149, 69,218,182,109,155, 83, 55, 61, - 61, 61,157,164,167,167, 19, 47, 47, 47,155,167,119,112,113,113, 89,213, 64, 94, 90,148, 71,111,111,111,149, 86,171, 37,253,250, -245,187,167, 76,189,189,189, 85, 58,157,174, 38,221,170,233, 29, 36, 18,201, 75, 98,177, 56, 71, 44, 22,231,136, 68,162,165,237, -218,181,203,255,238,187,239,200,186,117,235,106,134,164,195, 37, 40,162,111,167,126,255,123,215, 37,104,220,252,214, 76,239,160, - 80, 40,126,113,119,119,175,220,191,127,255, 61,247,151, 86,171,181,122,122, 7,137, 68,146,165, 86,171, 89,149, 74,101, 58,119, -238,156, 38, 58, 58, 90, 19, 23, 23,167, 73, 77, 77,213, 22,229,231, 27, 85, 42,149,182,172,172, 76,127,253,250,117,189, 84,250, -247, 76,239, 64, 34,253, 58,145,205, 1,135,238,126,228,123,107,238, 64,169,238,198,146,238,132,252, 48,129,144,163, 47, 16,114, -234, 77,114,121,235, 12,210,207, 87,100, 57,183,160,109, 34,217,226,255,163, 53, 83, 50,144,200,174,157,200,230,128,163,119, 62, -244,189, 53,125, 64, 27,221,182,207,215,145, 75,151, 46,145,184,184, 56,146,156,156, 76,142, 30,248,142,244,235, 32,173,210,220, - 28,112,200,198,105, 30,250,139, 68, 34,245,218,181,107,201,197,139, 23,107, 53, 15, 29, 58, 68,164, 82,169, 6,176,110,212, 50, - 1, 24,178, 57,104,188,249,115,255,223,223, 27, 38,175, 40, 58,242, 38, 33, 55,118, 16, 18, 25, 76,200, 87,189, 9,249,110, 52, - 33,135,255, 71, 46,174,155, 68,250,251, 10, 76,100,139,255, 25,178, 53,200,234,206,246,124, 62,191,124,255,254,253, 36, 39, 39, -135,156, 57,115,134, 68, 71, 71,147,248,248,120,146,145,145, 65,162,162,162, 8,159,207,215,161, 5,203,150,245,118,131, 79,120, -103, 65,238,245, 21,253, 9, 57, 56,133, 20,236,158, 74,198,116, 81, 20,247,105,219,170,249,232,122, 56, 57, 57, 21, 70, 69, 69, -145,212,212, 84,114,250,244,105,226,234,234, 90, 8,192,234,254,178, 99, 30, 27, 64,136,225, 58, 9, 27,216,133,116,235,214,133, - 12,234,223,153,100,223, 93, 79, 66,123,182, 35,155, 55,111, 38, 42,149,138,180,107,215,142,216,154,177,240,240,240, 75,132,144, -152, 81,163, 70,197, 0, 56, 30, 30, 30, 30,147,146,146, 18, 19, 26, 26,122, 17, 77, 79,253,208, 40, 67,135, 14, 53, 18, 66,200, -168, 81,163, 8,128,156,240,240,112,146,146,146, 66, 66, 67, 67, 13, 45, 41, 60,107,234,165,144,144,144,190, 67,134, 12,121, 55, - 36, 36,100,190, 53,211, 59, 52,163,249,160, 38,161,230,162,106,242,207, 32, 0,189,170,183,192,234, 52,110, 43, 52,255,199,231, -243,183, 57, 58, 58,254,234,224,224,112,138,203,229, 70, 2,152,134,150,205,111,198,169,142, 48,254,228,226,226,146,212,173, 91, - 55,237,136, 17, 35,200, 99,143, 61, 70,102,205,154, 69, 88,150, 37,223,125,247, 29,249,232,163,143, 72, 71, 39, 39,243, 58,160, -112, 11,240, 44, 40, 85, 19,150, 62,219,129, 57,253,116,123, 84, 76,105, 15,245,115, 29, 25,107, 38, 44, 13,111,204,104,177, 44, - 75, 18, 19, 19, 73, 88, 88, 88,165, 76, 38,203,134,245, 19,150,222,163,233,236,236, 28,237,234,234,122,223, 36,154,117,210,239, -153,176,212,213,213,245,188,135,135,135,202,197,197,229,106, 67,154,206,206,206,209, 30, 30, 30, 42,103,103,231,123, 38,247,228, -114,185,163,156,157,157,179,235,167,243,120,188, 33,174,174,174,153,245,211, 27, 57,119,184,187,187,103,230,228,228,144,130,130, - 2,226,237,237,157, 83,223,128,229,229,229,221, 99,192,172,209,108, 46, 47, 77,228,177, 65, 77, 43,202,180, 37,215,189, 6, 63, - 79, 79,207,252, 53,107,214, 16, 2, 37, 4, 3, 0, 0, 32, 0, 73, 68, 65, 84,185, 92,126,207,144,103,255,129,207, 45,186,116, - 71, 93,254,194, 91,155,191,107, 96,194, 82,107, 39, 7, 29, 33,147,201,178,195,194,194, 42, 19, 19, 19, 9,203,178,132,101,217, -198,140, 86, 67,154, 35,123,245,234, 85, 84, 88, 88,104,169,168,168, 48,103,102,102,234, 83, 82, 82,180, 75,150, 44, 49, 22, 20, - 20,232,212,106,181, 33, 54, 54, 86,239,225,225, 81, 0, 96,164,173,215,168,133,132,215,111, 62, 35, 91, 3,251,147, 45,129, 81, -241,239,251,220,254, 95,111,153, 62,102,205, 40, 66, 78,189, 73, 46,110,126,129,244,245, 21, 86, 25,162,173, 1,199,200,151,126, - 3,201,250, 14, 66,171, 52,183,117, 28, 64,182, 6, 28,187,181,216,231,246,132,158, 46,134, 61, 59,182,146,164,164, 36,114,232, -251,221,164, 79,251,106,147,181, 37,240, 39,178, 57, 48,204, 26,205,134,204,214,246,237,219, 73, 82, 82, 18,249,241,199, 31,173, - 53, 89,225, 13, 25,173,119,194,229,165, 47,244, 22,235,167,244, 16, 26,198, 5, 11,140,195, 59, 9,204,253,124,120,150,238, 30, - 28, 54,208, 5,100,184,191, 68, 79,182,248,159, 33, 91, 2, 71, 88,155, 79,161, 80,152,129, 58,115,234,212,223, 68, 34, 81, 65, - 19, 70, 43,188, 89,179,229, 39,202,253,229,163, 33,100,108, 55, 69,145,149, 38,171,185,123,169,135,179,179,115,225, 87, 95,125, - 69,220,220,220, 10,172, 52, 89,181,154, 17, 99,134,147,244,187, 71,201,143,223, 45, 39, 97, 3, 3,201,174,237,115,201,165, 51, -239,147,209,143,133,145,240,240,112, 82, 88, 88, 72,134, 12, 25, 66,108,205,167,157,157,221, 46,181, 90, 29,115,226,196,137,152, -240,240,240,152, 93,187,118,197,156, 61,123, 54, 70, 42,149,238,170, 9, 78,212, 55, 91,129,247,215,255,225,245, 34, 90, 49, 21, - 21, 21,228,196,137, 19, 36, 60, 60,156,236,218,181,139,156, 61,123,150, 72,165,210,152,150, 62, 71,214,214, 75,195,134, 13, 91, -148,154,154, 90,190,120,241,226,239, 26,152,176,212, 90,205,164, 7,148,207, 7, 82,135,252, 13,154, 10,137, 68, 18,115,253,250, -117, 82, 82, 82, 66,186,184,185,145,101, 92, 46,201, 18, 8, 72,142, 64, 64, 54, 3,197,255, 2,155, 52,163,177,166,195, 63,155, - 6,141,150, 78,167, 35, 11, 22, 44, 48,136,197, 98,141, 64, 32,176,117, 9,158,135,250, 38,116,118,118, 62,239,230,230,166,114, -115,115,187,199,236,213, 77,119,118,118,190,250, 47,127, 0,253, 4, 2, 65, 58,159,207,191,119, 9,158,160,136,190, 29,251, 79, - 95,232, 22, 28,241, 88, 43,243, 41, 16, 8, 4,239,136,197, 98,205,130, 5, 11, 12,106,181,218, 22,163, 5, 0,195,164, 82,105, -246,206,157, 59,181,119,238,220, 49, 21, 23, 23,155, 47, 93,186,100,138,142,142, 54,124,240,193, 7, 21, 82,169, 52, 27,141, 79, - 75,240,151,148, 39, 89,223, 65, 88, 99,182,110, 44,244,137, 31,219, 69,106,140,156, 55,156,244,109, 87,207,100, 53, 62,147,123, -195,154,213,102,235,218,123,222,241, 97,126,114,243,242,133,175,147, 62,237, 37,247,154, 44, 27, 52,235,155, 45,169, 84, 90,241, -254,251,239,219, 18,201,186,215, 16,110,243,247, 38, 91, 3,118, 85,153,168,102,182,205,254, 95,144,141,254,222,255,148,231,168, -183, 27,124,134,250,137,110,218, 16,201,178, 38,159, 61, 28, 28, 28,110,219, 16,201,170,213,220,184,113, 3,153, 58,121, 24,185, -123,123, 63, 81, 23, 29, 37, 87, 47,172, 37, 19, 35, 66, 72,159, 62,161,100,235,214,173, 36, 33, 33,129, 60,242,200, 35,164, 5, -249, 28, 62,115,230,204,152,148,148,148,152,228,228,228,152,179,103,207,198,140, 31, 63, 62, 6,192,240,186, 45, 65, 53,102,203, - 56,113,162,190, 7,135,243,122, 51,154, 79,205,156, 57,147,164,164,164,144,228,228,100,114,246,236, 89, 50,126,252,120, 2,219, -150,239,105, 81,189, 20, 18, 18,210, 55, 44, 44,108, 97,207,158, 61, 31,123, 80,154,255, 65,163, 37,155, 48, 97, 2,107,177, 88, -200, 99,143, 61,102,249, 12, 40,141,100, 24, 85, 36,195,168,182, 2, 5,255,246,136,214,159,189,224,103, 56,128,147,117, 19,196, - 98,177, 74,167,211,185,200,229,242, 3,106,181,122, 14,170,134, 69,182, 74,243,207,200, 39,213,252, 87,104,122,200,229,242, 13, -106,181,122,188, 88, 44, 46,208,233,116,110, 54,104,218,139, 68,162,215,197, 98,113,152, 70,163,241, 3, 0,153, 76,150,168,215, -235,127,213,106,181,159, 2, 40,253,187,207,157,172,239, 32,132, 80,216, 11, 4,111,199,100, 84,182, 95,126,162,216,103,222, 16, -135,140,126, 29,101,169,224,179,159,128,209, 95,102,158, 77,215,219,172, 41, 97, 66, 97,225,191,125, 57, 77,211,238,147,159, 43, -124,230,135,201, 51,250,117,144,103,128,224, 19,136, 52, 23,108,213,172,111,182,100, 50,217,206,202,202,202, 23, 1,252,106,235, -185,147,125,129, 2, 84,154, 60, 97,226,118, 1,105, 98, 9, 31, 66, 52,224,112,227,144, 7, 21,243,193,109, 35,125,142, 26,214, -252,252,243, 77,228,228,207, 71,161,215, 20, 35, 55,191, 28, 83,167, 61,135, 30, 61, 66,224,236,236,140,101,203,150,161, 83,167, - 78,248,232,163,143,152, 22,228,115,184, 92, 46,159, 26, 16, 16,208,225,214,173, 91,201, 26,141,230, 27, 0, 63,213,255,254, 9, - 0,194,164, 60, 94,119,173,217,124,230, 54, 16,221,140,230, 83,114,185,124,126, 64, 64, 64,240,173, 91,183,110,106, 52,154, 53, - 0,246,210,186,238,225,208,228,112, 56,159,250,248,248, 76, 76, 77, 77,125, 27,192, 30,252,135,248,203,141, 22,213,164,154, 15, -161,102,205,115, 66,254,105,249,252,195,108,177,115,192,160, 61, 8,147, 5, 1,187,174, 25,147,213,188,166,132, 9,133,153,247, - 26, 24,180, 5, 65, 30, 8,231,211,102, 76,214, 95,107, 50, 1, 6, 31, 52, 81,127,125, 0,194, 52,126,189,232, 61,223, 0,139, - 22, 45, 34,199,143, 31,135, 84, 42,133, 86,171,197,136, 17, 35,240,241,199, 31, 51,180, 14,161,154,127,161,230,191, 18, 30, 45, - 2, 10,165, 89,200, 63, 53, 99,204,171,201, 6,178, 47,240, 10, 10,185, 11,192, 65,123,192,156,142, 74,115, 30,243,106,186,161, -149,154,151, 80,200,204, 5, 23,126, 16,154,239, 66,109,200, 99, 94,110,185,230,159,240, 11,145,224,131,127,238,117,121, 24,169, -111,170,162,163,163,105,161, 80, 40,214, 51, 3,247,142, 52,172,253,159, 26, 45, 10,229, 33,135,121,226,182, 17, 64, 86,245,246, -143,213,164, 80, 40,148,255,160,225, 2,131,198, 59,180,217, 18, 18,108, 73, 71,187,147, 84,179, 69,154, 92, 0,118, 0,236, 81, - 53, 7, 73,205,144,222,230,166,217,120, 12,128,137,150, 39,213,164,154, 84,147,106, 82,205,191, 89,179, 57,237,135,177, 73,178, -161, 81,134,145,127,197, 7,135, 83,205, 7,202, 8, 90,158, 84,147,106, 82, 77,170, 73, 53,255,165,154,255, 74, 56,180, 8, 30, - 42,196,180, 8, 40, 20, 10,133, 66,249,199, 17, 82,253,234,129,170,232,150, 71,205,142,191,181,143,150,196,169,179, 7,120,156, -110, 12, 75, 2, 0,128,112,152,120,152,217, 88,109,209,157,220,214,106,203,219,248, 57, 18, 8,247, 49, 48, 60,161,206, 73,108, -245,100,104, 93,252,148, 19,221,156, 21, 83,243,138,202,118,222, 76, 80, 31,180,229, 88, 59, 59, 31, 59,177,163,195, 36,189,209, -212, 69, 40, 16,100, 24, 75,203, 35, 75, 74,146, 43, 90,144, 13,199,166,118,126,240, 1, 97,142,228, 94,101, 4, 82, 35,199, 73, - 41, 96,212, 80, 19,117,174,156,245, 45, 77, 37,223,127,255, 4,177,245,218, 48, 28, 12,150, 41, 20, 61, 69, 98,105,168, 84,225, -208,153, 37, 64,177, 42, 59,205, 96, 50,159,181, 24, 52, 49,132,197,111, 15,226, 90, 81, 40, 20, 10,133,242, 47, 48, 90, 87, 1, -140, 70, 85,147, 97,243,157,225,125,130, 30,189, 34, 22, 75,124, 1,128, 37, 4, 44, 1, 42,203, 75, 99,242,146,163, 71, 0,128, -115,187,144, 19,124,177,178, 39, 75,170,246, 91, 88,192,108,212,165,150,167, 95,122,196,154, 28,201, 92,252, 38, 12, 9, 31, 58, -113,204,152,209,254, 93,187,116,237, 8, 0, 55,226,110,220, 61,114, 36, 42,225,212, 73,102,127,101, 65,226,143,173, 57, 99, 2, -241,199,189,122,245,120, 52, 58,250,234, 71, 0,102,181,182, 4,157,156,228,115,126,250, 97,193,192,161, 19, 87,203, 0,219,140, -150,216,209, 97,210,184,177, 35,123,188,241,234, 76,206, 11, 11,150,249, 94, 57,247,219, 74,185, 71,112, 41, 97, 77, 63, 85,170, - 38,255,222,212,194,201,245,253, 99, 99, 6,235,155,226,227,156,117, 95,245,117,208, 22,223,157, 76, 88,203,100,134, 97,192, 21, - 74,191,119,233,240,232,119,246,131,231,149, 0,176,122,196,152,210, 35, 40,220,213,195,107,255,228,231, 94, 23, 75,237,220,120, -224, 10, 0, 48,200, 73,187,141, 83,123,151, 59,188,246,225,246,144,115,177,233,230, 95,126,216,164, 99, 4,252,137,154,220, 91, -116,136, 47,133, 66,161, 80,254,203, 68, 85,155,171,168,250, 59, 26, 53, 90, 98,177,196,247,226,111, 71, 28,127, 60,155, 9, 0, - 8, 15,113,199,187, 75, 54, 12,223,181, 62, 58, 1, 0,250, 14, 25,227,247,209, 59,175,226,252,205,124, 16, 66,208,163,147, 19, - 30, 27,247,132,117,198,195, 45,240,145, 73,147, 30,127,122,193,130,249, 17, 73, 73, 73,105,123,246,236,249, 29, 0, 6, 12, 28, -216,105,217,178,101, 79,174,118,112, 20,125,251,253, 15,217, 58,213,237, 43, 45, 57, 91,113,155, 14,158,254,157,219, 79,253,246, -203, 13,156,193, 35, 30,159,146,134,202,229,186,156,228,108,107,142,117,118,118,158,203,231,243,237,128,170,213,216,107, 48, 26, -137, 59, 0,152, 45,172,194,161,141,127, 5, 87, 32,182,136, 68,130, 91, 21,106,245,206,242,236,219,219,154,210,212,155, 76,193, -175,189,252, 44,231, 90,114, 17,124,131, 7,112,215, 45,127, 15,172,197,228,240,250, 59, 75, 38, 69, 95,250, 22,149, 42,156,182, -242,212,248,245, 19, 60, 61,251,112, 63, 94, 46, 31,198, 48,248,159, 79,223,231,198,127,180,227,123,126,175, 78, 74,232, 77, 44, -142,197, 20,245,221,252,233,199,171,206,109, 30,125, 24,192, 86, 0,191, 0,104,214,212, 57, 58, 57,126, 51,119,225,167,242, 74, -195, 31,163,189,171, 77, 22,190,216,185, 15,215, 51, 89, 4,248, 7,240,220,231,174,148,111, 93, 50, 99,135,166,106,157, 45, 10, -133, 66,161, 80,254,171,228,226,222,206,239,145,205, 26, 45, 0,144, 75,120, 72, 72,201, 3, 0,216, 75,128, 57, 47, 77, 71, 81, - 97,129,159,193,204,226,185,233,211,112, 53, 62, 23, 9,169, 5, 32,132,192,207,203,234, 69,184,193, 5,219,235,185,231,159, 27, -116,226,167,159, 46, 47, 90,184,232,107,134,193, 5, 0,216, 26,249, 69,223,197,239, 47,126,113,218,244,105,195,190,255,254,251, -155, 0, 90,100,180,120,140, 98,195,170, 21, 75,133, 89,133, 58,221,220, 5,111,179,243,231,205, 93, 7,224,113,171,156, 12,159, -111,151,149,149, 37,231,112,238,237,190,246,201,210,183,207, 12,155,184,250, 78, 90, 70,233,181, 19,135, 14, 61, 18, 20, 20,132, -172,236,188,254, 43, 63,219,210,253,216, 9,201,179, 21,229,218,137,154,194,219, 13, 46,218, 44,226,243,111,126,184,114,115, 15, -214,190, 19,231,221, 23, 71, 33,184, 99, 27,100,231,151, 98,224,136, 8, 94,204,149, 43,195, 1,171,141, 86,253,201, 3, 39, 25, -216,252,238,203,118, 94, 26, 58,190, 95,155, 94, 28, 14, 23,106,173, 9, 5,101,122, 88, 88, 96, 64,160, 29, 70,238,250,140, 87, - 92,105,154,176,228,135,204, 9, 23,214,143, 81,233,202,114,102, 3,216,223,244,199, 16, 71, 47, 87, 37, 18, 50, 43, 26, 52, 89, -149, 58, 51, 0, 64,192,181,128, 1,113,162,207, 23,133, 66,161, 80,254,227, 52, 58,234,144, 3, 0, 71,142, 28,105,176,255,142, -197, 66,144,144,154,139,132,212, 92, 92,142, 47,128,145,240,177,110,229,135, 88,179,252,125, 20,107, 57,248,241,124, 38, 18, 83, -243,144,152,154,135,194, 18,117, 67, 18,247, 52, 41,173, 94, 46, 9,249,244, 83,229,170,225, 3,101,131, 29, 29, 28, 28,238,220, -252,186,114,241, 60, 85,224,135,175,101, 10,248, 6, 81,150, 76, 46,235,183,111,223,119, 65,110, 46,174, 50,185, 92,241,166,212, -179,251,118, 59,187,251, 86, 74,111,178,153, 74,226, 26, 16, 17, 49,122,228, 16,119,119, 55,118,230,186,152,248, 46,129, 1,166, -206,157, 58,247,151,184,118,142,104,226,176, 90, 77,150,101,193,225,112,160, 82,169,144,147,147,131,148,148, 20, 36, 38, 38, 34, - 51, 51, 77,197, 18,194,183,128,229,120,120,120,129,199, 19,194,183,157, 15, 54,175, 91, 46, 93,242,193,187,161, 98,153,240, 96, - 61, 35, 84,171,169, 43, 46,249,254,232,241,159,178,143,237,217,108, 1,128,252, 18, 53, 78, 93, 73,194,213, 91,153,182, 94,200, -250, 83, 56,180,203, 78, 79, 42, 55,167, 70,113, 63,122,111,126,230,217,179,231,210,202, 42, 12,168,208, 24,161,209,153,160, 55, - 88, 96,178,176,240,113, 17,227,192,219, 93,112,232,215, 88, 55,134, 97, 62,109,174, 60,245,122,147,229,209, 0, 25,166,132,181, - 69,128,151, 12,217, 9, 23, 48,119,225,167,136, 78,209,163,164,164, 20,166,202, 66,176,234, 44, 20,166, 94,133,217, 98, 33,205, - 93,247, 7, 4,213,164,154, 84,147,106, 82,205,127,177,102, 99, 94,228, 33, 33,178,129, 13,181, 70,171, 49,238,102, 22, 35, 33, - 37, 15, 61, 3, 60,209,177,157, 7, 46, 39,150,224,155, 83,153,216,126, 34, 29,167,174, 23,128,229, 41,144, 87, 14,220, 73, 83, -225, 78,122, 97,179,243,103,115, 69,252,201,175,189, 86,182,160,107, 80,121,159,223,142,205,129,167,203,157,160,183,222, 42,157, -195, 21,241, 39, 59,180, 85,236,121,123,193,235, 83, 21, 82,169,208,160, 55,160, 67,123, 31,241,171,179,231, 60,203, 56,136,172, - 94, 19, 73,225, 25,232, 32,146, 72,182, 45,249,224, 77,209,167, 63,222,201,168, 52,160,114,255, 5, 85,242,252,183, 23, 23,243, -248,226,205, 10,207, 64, 7,107,181, 76, 38, 19,244,122, 61, 12, 6, 3,140, 70, 35,178, 51,111, 71,252,242,227, 27, 35,218,183, -117, 28, 33, 18,139, 65, 0,148,107,205, 72,201,213, 32,108,232, 48,110,207,144,144, 96,185, 71,224,243, 13,105,149,149,165,151, -177,132,171, 56,114, 96, 55,247,187,159,175,225,235, 35, 87,112,240,215,107,184,124,250,152,153,176,166,218,245,191,228, 30,157, -252,228, 30, 93,211,229,109,186,169,106, 55,207, 46, 77, 78,207,204,229,114, 72,216,208,240,147, 47,205,122,245, 55, 77, 69, 81, -254,182, 13, 31,102, 23,228,164,221, 22, 9, 24,179, 84,196,133, 90,103,198,142, 95,114, 48,105,249,117,220,202, 80,131, 16,210, -236, 2,222, 44, 48,111,242,243,111, 88, 76, 70, 35,252,189,229,216, 29,185, 2, 17, 97,221, 49,164,171, 3, 30,233, 40,131,148, -167,199,205,248, 4,236,221,189,195,204,178,156,249,244,135, 12,133, 66,161, 80,104, 68,171,118,243,168,187,163,209,166, 67,157, - 78,155,250,248,228,105,240,112,117,151,143, 27,252, 63, 65,204,221, 82, 20,228,166, 35, 41, 49, 14, 26,157, 9, 2,135,246,128, -216, 29,237,124,125, 16,155,112,208,184,126, 85,148,154, 53,235, 83, 27,211,139,136,240,240, 74,138,103, 56,171, 86,122, 95, 76, - 76, 40,233,185,123,225, 87,120,250,105,185,243,170,149,222, 23,211,146,101, 28,169,152,244,123,118,250, 20,134,195, 16,188,245, -214, 2,140, 27, 51, 18,207, 61,251, 12,179,115,231,142, 62,165, 86,158, 37, 11,254,198,119,222,251, 80,168, 42, 53, 27, 46, 39, -170,245, 82,153, 68,114,238,142,186, 50,216,215, 91, 50,106,226,255,114,162,246,109,251, 20,192,116,107,180,106, 12,150,201,100, -130,209,104, 4, 0, 11, 0,112, 56, 85,175, 69, 21, 6,228,151,234,161, 42,213,195,108, 97, 49,113,242,116,201,149,232,235,211, - 1, 52,210, 95,139,101, 77,102, 19,246,255,124, 21,217, 87,190,103, 25, 14,183,172, 78,103,120,200, 61, 58,249,185,187,123,159, - 25, 51,241, 25, 23,161,184,170, 25,182,162, 82,143,157, 91, 86, 54,153, 79, 14,195, 16,214, 98, 46, 53,155, 76,149, 29,218,119, -200, 14, 8,234, 46, 62,251,219,137,136,115, 39,247,171,205, 29,158,177,191,155,150, 11, 46, 95, 4,174, 64, 12,189,209,186, 31, - 11,170,164,139,155, 0, 48,207,191,178, 96,221,235,111,188,203,157,183,254,119, 24,116, 26,232,181,149, 40, 47, 43,129,132,103, -194,205,243,135,204,196, 98,122,189, 50,247,218, 38,250,124, 81, 40, 20, 10,229, 63, 78,253,229,119,106,211, 26, 53, 90,233,183, -206, 62, 2, 0,126,189,134, 23,201,197, 60, 71, 30,135,129, 42,235, 46,118,174,158, 11,150, 37, 24,245,226, 42, 40,124,221, 33, - 17,112,161, 87, 23,169,139,239,158,110,178,175, 14,195,152,134,109,218,154,237,251,202,203, 29,148,187,119,171,249, 0,176,123, -183,154,255,242,204,182,202,207,183,166,250,246,126,180, 39,136,197,130, 49,227, 30,199,228,167, 38, 35, 45, 79,131, 31,206,100, -160, 82,107,176,106,180,156,196, 57,160,187,179,147,203,200,215,254, 55, 82,198,227, 50, 76,103, 31, 59,110,102,129,201,204,229, -242, 45,135,175,148,229, 76,156,248,148,243,169,163,223, 13,177, 56, 7,116,215, 22,198, 95,111, 78, 79,175,215,195, 98,177, 64, -175,215,195,100, 50,193,209,185,253,209, 97,143,175,206,202,205,171,136,202, 43,209,245,174, 52,153,161, 42,213, 35,191, 84,143, -210, 74, 35,220, 21, 14, 48,155, 12, 93, 27,211, 35,132,124, 61,254,241,105,207, 0,224, 48, 28,243, 87,234,220,248,196,170, 61, -127,152,172,145,227,158,118, 57, 19,115, 23, 73,209,199, 74, 8,107,174,154,197,157, 97,179,154, 46, 87, 16, 46, 3, 86,192, 99, - 76, 92, 14,135, 53, 26,213, 38, 87, 87,151, 83,167, 79, 29, 31,171, 51, 39,131, 43, 16,213,190, 87,107,176, 88,125,199,168,146, - 46,110, 4,128,207,214,175, 91,211,111,216,211,130,211, 87, 83,161, 53, 1,125, 67,252,112,224,219, 47,244,132,152,222,168,204, -189,182,145, 62, 91, 20, 10,133, 66,161,220, 99,176,162, 80,213, 57,254,222,136, 86, 77,219,232,152, 49, 99,238, 91,173, 61, 91, - 85, 12, 39, 57, 15, 46,109,124, 49,117,238, 26,124,253,233, 60, 88, 44, 38, 16, 2,152, 45,214,205, 76, 64, 8,255,231, 89, 47, -251, 6,180,243,229,186, 76,125, 90,170,253,102,183, 70, 50,245,105,169,182, 75, 87,167,178, 89, 47,251,166, 86,232,188,251,155, - 45, 22,156,187,153,143,184,212, 50,196,165,149, 67, 46,177,126,154, 47,174, 80,240,242,202, 21,203, 5, 60, 46,195,220, 76, 87, -171,179,138,204,106, 46,159,111,148, 74,132,196, 64,120,250,180, 66, 82, 52,116,252,179,218,195,187, 62,123, 30,192,236,198,116, -106, 70, 26,214, 68,178,106, 94, 9, 33,132, 1, 88,150,177, 88,178, 10,117, 80, 27, 77, 80,149,252, 97,180, 24,115,227, 45,167, -114,143, 78,126, 74,133,252, 56,151,203, 21, 17, 2,152,140,230, 39,225,209,105,132, 58, 55, 41,177,174,201,186,120, 51, 7,119, -175,157, 84, 89,140,154,105,154,252,132, 95,172, 61,119,134, 1,225,114,193,114, 57, 12,203, 48, 96,249, 28, 98, 0, 33,108,253, - 28,105,108, 48, 90, 53,102, 75,200,231, 46,252,105,239,167,174,207,141, 14,196,183,103,170, 60,159,174,162,160,188, 50,155,154, - 44, 10,133, 66,161, 60, 88,154,242, 34, 15, 81, 84,235,254,136, 86, 83, 39, 68, 8,112, 39,189, 16,237,188, 92,224,213,174, 35, - 18,111,199,254,177, 15,128,217, 98, 93,115,212,161, 67,185, 89,107,214, 40,217,121,243,202,250,174, 92,233,125,225,229,153,109, -237,186,116,117, 42,123,243,205,140,190,107,215,218, 93,248,249, 34,223, 66,170,231,235,170,153,155,139, 16, 91,250,197,113, 66, -187, 7,181,231,126,184,251, 78,198, 47, 55, 42,242, 5, 2,129,201,221, 65,204, 40,228, 66, 46,151,195, 23,234, 77, 28,189, 95, -112, 8,247, 48,135, 9,105, 74,165,198,104,213,111, 58, 44, 42,184, 27,241,211, 15, 11,186, 12, 30,191,202, 49,187, 64,139, 50, - 3,183,182,233,144,203, 97,112,227,118, 58,192, 21,196, 53,164,169, 84, 56,158,216,243,205,215,222,107, 87, 46,133,209,108,193, -172,121,139,240,236,244,105, 39,224,209,105,132,183,175,127,204,239,135,191,146,142,152,185, 25,233, 9,209,121,102,125,249, 94, - 91, 76, 86,173,217, 2,136,133,176,156,226,146,114,185,222, 12, 49, 26,240,125,122, 35,219,162, 59, 71,173, 53,227,240,165, 60, - 28,249,113, 47,236, 20, 50, 90, 19, 80, 40, 20, 10,229,129,243,144,154, 43,212, 51, 87, 64, 99, 17,173,166,240,241,114,195,165, -184, 84,116, 13,104, 15, 59,165, 2,241,119,179,192,229,240,193, 97, 0,147,217,122, 51, 68,140,166,111,215,174,181, 67,122,170, -140,243,249,230, 84,223, 89, 47,251,166,174, 93,107,119,129, 24, 77,223, 2,152, 70, 8, 80,101,182,170, 12,151,197, 6, 95, 64, - 88, 83, 91, 55, 71, 41, 55, 58,185,178,136,195,225,234,157,236,196,172,147,157,136,227,164, 16,242, 5,124, 46,107, 38, 28,163, -151,171,175,142,176,108,119,107,244,234, 54, 29, 90, 44, 22, 48, 12,199, 82,109,196,100,153, 69, 90,148,233,184, 80,149,234, 81, - 82, 97, 68,103, 79, 25, 78,158,250, 94, 99, 49,105,119, 55,164,197,229, 11,236, 58,250,122,225,221,143,215, 66,171,183,224, 78, -182, 26, 2,145,200,221,205, 61,248,250,180, 87,222, 22,189, 26,121, 23,207, 15,113,194,188,223,239,102,107, 84,226,183,109,185, -178, 22,139, 5, 90,157, 65,160, 42, 44,113, 40,175,168, 84, 74,196, 34,173,139,163, 93, 97, 67,239,213,217, 24,209,170, 65, 42, -230, 97,108, 31,119,232,140, 83,160,213,155,113,254,151,253,180, 70,160, 80, 40, 20, 10,229, 15, 26, 93, 64,218, 42,163, 37,151, -138, 65,184, 98,252, 30,115, 23,254, 65,221,176,227,208,101,116,234,218, 7,185, 21,102, 16,112,154, 29,109, 88,195,130,119,180, - 87, 1, 92,141,136,144,122, 77,152,224, 57,140, 16,254,207,155,183,150,103, 1, 64,251, 46, 85, 50, 44, 75, 64, 8, 64,216, 42, -195,101, 53, 12, 47, 61, 53,183,188,157,175,187, 12,183,178,140,122,153, 72,192,113,144, 9,185, 46,118, 66,129,128,199,131,133, - 48,250,220,220,187,122, 6, 72,179, 70,174,126,211,161, 84,238,113,116,232,248, 85, 5,105, 25,101,209,157,139, 53,221,203,140, - 66, 16, 2,116,246,148, 33,238, 98,148, 69,149,157,116, 71,171, 74,216,210,144, 22,203,130,107, 52,179,184,158, 92,134,210, 74, - 19, 74,213, 70,244, 15, 27, 43,232, 31, 30,129,223,227, 10,193,154, 77, 88,249, 69, 84,133,133,152, 38, 3,183, 77, 54,156, 52, -231,210,213,155, 94, 5, 37,149, 34, 62,143, 87, 26,208,201, 39, 69, 40,224,155,203,203,203,133,247,190,139, 11,153, 68,136, 98, -181, 9, 0, 76,182,222, 61,101,149, 38, 28,186,152,135,195,251,247, 64, 34,145,128,208, 7,138, 66,161, 80, 40,148,186,120,160, -106,249,157,168,234,215, 90,243,101,213,162,210, 22,150,192,217,201, 17, 98,153, 18,169, 42, 35, 42, 24, 87,148,104, 8, 44,150, -170,136, 86, 19,129,167, 6, 87,247, 62,116, 40, 55,235,224,193,194,237,135, 14,229,214,233,232,253, 71, 36,171,246,149, 37, 86, -107, 50,196,114,242,208,177,223,202, 34,122,187, 56,112,184, 92,173,128,207,209,243, 4, 92,163,128,199, 49, 9,120, 28,131,155, -146,207,253,237,240, 94, 33, 97,240, 91,115,154, 58,157, 14,225,225,225, 24, 53,106, 20,198,141, 27,135, 39,158,120, 2,126,126, -129,174, 28, 46, 99, 32, 12,203,186, 8, 43,208,209,133, 1, 79,151,137, 95,246,126,162,137, 59,119,224,186, 69,175, 27,139,123, - 45,231, 31,154,132,176,197,101,122,232,140, 22,148,168,141, 40,169, 52,194,236,210, 23, 7,206,231, 64,107,176, 32, 61,230,123, -109, 65, 94,214, 92,125,126, 82,106, 51,151,226,173,123,255, 37, 89, 47, 60, 55,189, 64, 33,230, 36, 13,232,247, 72,129,179,147, -163,153, 97,254,136,188, 50, 12, 3,177,210, 21, 14,246, 10,164, 94, 61,134,159, 86, 14,213, 2,120,207,154,242,172,139, 82,202, - 67, 68,111,119,140,157, 56, 5, 93,251,140,176,198, 88,211, 21,237,169, 38,213,164,154, 84,147,106,254,151,168, 89,227,176,230, -213,186,153,225,107, 12, 80, 7, 15, 25, 58,121,202,160, 51,186, 66,103,176,160, 82,103, 65,185,198,136,114,141, 9,169,121, 26, -196, 29,106,125, 14,171,162, 88, 85, 51,126, 18, 2,128,169, 50,120,214, 70, 79,132, 70,195,199,107, 86, 46,123,114,111, 72, 15, -195,171,163, 61,218,198,166, 26,114, 24,134,163,229,112,121, 38, 71, 5,143, 31, 31, 31, 91,112,225,204,209,129, 98,179,229, 25, - 77, 19, 58,102,179,185,204,211,211, 19,192,189, 75,240, 4,118,148,140, 59, 23,245, 86,251, 65, 17, 43, 93, 62, 93,186, 64,195, -225, 10, 88,134, 39,136,179,152,180,123,180,170,132,205,104,194,126,112, 4,226,219,151,174,221,234, 99,239,216, 22, 73,217,149, -168,212,153, 97, 52,179,112,144, 11,144,117,227,132, 49, 53, 62,250, 59,117, 78,236,142, 22, 20,219,238,196,219,113, 94, 35, 71, -142,120,188, 79,159,190,220,197,139, 23,193,223,223, 31, 90,173, 22, 28, 14, 7,109,219,117, 68,106,226, 53, 92,140,250,216,162, - 41, 74,219, 2,224, 35, 0, 5,182,126, 72, 97,185, 1,199,162,243, 17,245,227,183,224,242,133,244,113,162, 80, 40, 20, 10,229, -126,102,212,123,141,180,202,104,233,116,186,212, 71,195,199,130,101, 9, 44, 4, 96, 45,213,145, 39,246,143,232,147,197,164, 75, -109,109,238, 88,214,114,121, 99,228,246, 81, 33,161,131,184, 65,222,114,148, 23,229,225,226,185, 95,205, 96,201, 5,107,142, 47, - 42,186,163,150,184,117,122,252,201, 73, 19,246, 77,127,110,102,233,192,176, 48,153,171,171,187, 62, 43, 59, 75,243,229,174,111, - 76, 39,142, 30, 28,200,194,252, 84, 81, 81,146,186, 41,157,178,178,178,207, 26, 74, 23, 9,229,253, 1,180,231,242, 24,131,182, -224,142, 77, 61,194, 11,179, 51, 39, 46,251,248,131,180,167, 95,124, 93,216,193,179, 35,242,203,184, 72,205,202, 67,252,153,131, -250,236,196, 43, 63,150,103, 93,125,222, 74,169,220, 6,210,178, 0,124,122,241,226,133,224,145, 35, 71,142, 24, 50,100, 8,153, - 49, 99, 6, 8, 1,126,137,124,153, 20,167, 94,252, 30, 85, 81,172,228, 22, 94,151,244, 51, 23,174, 57, 62, 49,176, 23,207, 73, -241, 60,182,127,123,212, 4,194,166,211,231,137, 66,161, 80, 40,148, 90, 90,222, 71, 43,243,118,213,124, 90,127, 54, 21,121,249, -211,118,236,248,122,201,215,187,246,246,215, 25, 12,158, 4,130, 76,139,217,112, 90,109,193, 98,107, 53,180,170,164,104, 39,167, -206, 93,190,252, 98,227,123, 95,110,255,124, 16, 88, 75, 0, 3,164, 17, 6,191,137, 77,150,233,205,153,172, 38,205, 82, 97,197, -214, 97,143,175,214, 22, 21,169,191,182,245, 88,109, 81, 66, 30,135,107,108,187,117,221,199,171, 56, 28,238,112,139,133,229,179, - 22, 83,146,197,168,251, 68, 91,144,112, 8, 86,247,114, 67,113, 19,251,110, 2,184,121,234,212,169, 1,167, 78,157, 10, 5,240, - 25,170,214, 80,140,110,205,117,209, 23, 85, 12,125, 99,193, 27,191,204, 7,227,195,178, 4,102, 11,155, 46,208,106,134,210,103, -138, 66,161, 80, 40,148, 90,102,224,254, 73, 75,173,139,104,253, 85,148,148, 36, 87,160, 4,175,182, 86,167,168,232,142, 26,192, -125, 35,247, 52,173,212,141,187, 83,254, 3,238,148,255,208,210,227, 43,243, 83, 10,128,148,233,173,204,134, 53, 29,217,127,175, -222, 30, 8,133,133,183, 43, 81,136,222,244, 25,162, 80, 40, 20, 10,197,102,195,101, 93,103,120, 10,133, 66,161, 80, 40, 20, 74, -179, 38,171,238, 43,128,170,190,231,141,141, 28,176,101,101,238,150,140, 62, 56, 73, 53, 91,173,201, 7, 32, 4, 32, 7,208, 92, -147,230, 8, 84,175,215, 72,203,147,106, 82, 77,170, 73, 53,169,230,223,168,217,156,246, 73, 80,254, 84, 3, 70, 53,169, 38,213, -164,154, 84,147,106, 82,205,255,158,230,195,204,140, 6, 54, 0,255,160, 62, 90, 20, 10,133, 66,161,252, 85, 56, 57,117,150, 3, -181,253,122,155, 69,234, 28,232, 6, 0,154,194,219, 42, 90,122,148, 6,168,187,206,225, 3,233,163,197,231,240,132,111, 72, 21, - 78,183,101,118, 78,217,255,241,194,101,252,218,201,230, 12, 27,232,123,192,191,189,100,156, 45, 7, 74, 93,252,190,114,239,216, - 59, 67,230,234, 55, 7, 30, 33,146,214,100, 66,230,218,222, 69,222,182,215, 57,133,103,240, 99,127,194, 57,138,130,130,130,250, - 6, 5, 5,245, 5, 32,122, 16,130, 82, 87,191, 41, 94,157,250,156,113,237,208,227, 87,153, 91,231, 73, 15, 58,195,114,143, 78, - 78,242,182, 61,127,144,183,233, 86, 34,247,232, 86, 46,247,234,121, 90,225, 28,216,161,185,227,218, 70, 44, 11,248,112, 79,220, -158,182, 17,203, 2, 26,218,239, 48,114,189,226,253,189,119,150, 58,141,253, 68, 78,235,149,150,209,182,255, 20,123,143, 65,243, -157,108, 61,206,211,175,207,205,118,193, 3,242,219,116,238, 29,103,237, 49, 94,254,125,175,250, 4,245, 87,121,249,245,141,166, - 37,111, 29, 98,151,246,125,197, 14,222, 81, 34, 7,239,163, 34,199,246, 97,173,213,243,240,240,144, 4, 4, 4,140,236,211,167, -207, 75, 67,135, 14,125,173, 71,143, 30, 51,124,124,124,134,255,157, 63,244,165,174,126,239,232,249, 76,161,158,207, 20, 74, 93, -253,222,105,190,126,245, 95,194,112, 44, 57, 12,199,146, 35,115,245, 95,242, 79,185, 86, 34, 55, 63, 31,169,171,223, 90,133,123, -208,101,137,107,231,177,182, 30,239,224,224, 48,220,197,197,101,124,205,230,224,240,127,246,206, 59, 58,138,234,111,227,207,204, -108, 47,105, 36,217, 52, 66, 47,161,134,222,123,141, 84, 65,144, 42, 8,210, 84, 16, 20, 5, 20,165, 11, 63,165, 35,162, 52,145, - 38,189,133, 42, 29,148, 26, 32, 16, 32,129,244,158,108,218,102, 55,219,119,231,190,127,108,130,148,148, 13,224,107,187,159,115, -246,108,102, 50,121,114,103,238,204,157,231,126,111,243,232, 65,159,128,151,230,233, 40,214, 43, 71,180, 56,161, 68,126,121,248, -152, 15, 26, 44,153, 59, 83,186,114,211, 65,172, 92, 52,253,190,169, 32,175,222,223,241,204,189,170,181,184,201,177, 92,197,167, -247,217,121,123,114, 86,236,245,102,175, 67, 63,168,138,108,236, 23,159,141,252,120,216,219,221, 42,119,235,243, 17, 19, 25,107, - 56,228,188, 69, 67,163,221,251, 14, 4, 94, 60,127,110,245,166, 77,235,231,171,109, 65,203,133, 18,193,119,249, 73, 17,121,229, - 73,131,171,119,245,106, 2,133,215,197,118,253, 63,240, 13, 59,189,125,139,221,204,119,215,103, 61,181,250,247,203,227, 93,163, - 70,141,230, 28,199,121, 78,158, 60, 89, 4, 0, 43, 86,172,168,105,183,219,179,163,163,163,111,224, 37, 38, 63,117, 24,204,160, -145,171,190,157,183,245,141, 55,122, 33, 53,171, 0,223, 44, 95,219,233, 68,232,238,193, 5, 25,143,246,190,142, 60,113,119,175, -234, 10,145,203,221,143, 62,155,175, 10,233,212,156,211, 25,109, 56,113,241,118,251,237,107,231, 95, 7,234,182,208,102, 61, 40, -113, 78, 49, 94,175,153,237,163, 36, 33,188, 94, 3, 0,195, 94,120,217, 43,173,221,188,101,246, 16, 63,137,224,118, 54, 80,230, -162,143,238, 85,218,158, 20, 74, 36,149, 89,150, 5,203, 0, 44,203,128, 99, 24,199, 58,161, 22, 67, 66,202,195, 75, 61,255, 14, -207,137, 75,165, 22,233,224, 4,158, 44,243, 71,250, 24,182,240,155,144,252,244, 71,151, 61, 95,195,191,113,107, 80,211,189,126, -219,154, 5,155, 47,196,230, 40, 4, 29,166, 30,101, 8,251,125,226,165,229,119,156, 50, 0, 82,169,199,145, 35, 71,188, 67, 66, - 66,220, 84,245,251, 95,112,230,111,196,156,174, 94,104,232, 97, 81, 72, 72,207,114,220,159,181,187,131,101,183, 49,128,144,231, -201, 10,142, 39,187,117,217, 81,209, 64,249, 86,159,146,169,130,198,178, 32, 78,151, 51, 60,152,155,134,204,200, 77, 47,123,113, - 5, 18,215,174, 66,145,104,106,181,218, 13,155,164,196, 63,190, 89,160,211, 46,183,153, 52, 23,202, 45,100,181,125,122,250, 82, -216, 27, 2,161,144, 9,233,218,146, 51, 1,231, 94, 37,211,125,124,124,222, 92,179,102, 77,245,214,173, 91, 3, 0,108, 54,155, -235,158, 61,123,124, 23, 44, 88,160,136,138,138,122,217,133, 83, 3,188,189,189, 43,137,197,226, 0, 0, 48,155,205, 41,106,181, - 58, 17, 64,153, 21,127,133, 79,117, 47, 16,204,191,116,241,162, 0, 0,218,183,239,176,176, 82,187, 15, 61, 56,145,210, 80,236, -229, 48,107, 21,121,209,231,166, 93,189,118,133, 1,128, 86, 45, 91,207,148,123,213,253,238,175,140,108, 73, 85, 65, 45, 89,224, -227, 86,237,187, 13, 28, 50,116, 36, 91,191, 86, 37,244,232,222,101,134, 1, 56, 82,174,123, 70, 32,144, 93,191,126,189, 6,203, -178,156,205,102, 51,182,106,213, 42,241, 85,210,229, 95,187,245,239, 12,216, 64,139,205,188, 65, 29,115,115, 33,240,194,194, 49, -156, 91, 96,147, 47,192, 9,198,241, 60,159,164, 77,188,217,230, 95, 24,209,122,241, 58,151, 87,137, 21,136,167, 14,123,247,253, - 6,211, 62,249, 92,250,209,202,179, 56,186,118,102,214,223,213,100, 1, 0,199,114, 21, 79,158, 58,169,146,139, 57, 0,128,206, -104,195, 27, 33, 33,101,191, 17,170,180, 56,207, 50, 76, 80,209,130, 54,118,155, 69, 42, 16,138,141,140,195, 32,129, 1,224,229, - 95,229,172,143,237,178,124,216,219,221, 42,111,251,229,215,228,196,228,236,114, 23,106, 12, 39, 66,171, 14, 61,208,173,123, 79, -183,235,215,126,159,191,254,135,117,179,108, 22,235, 58,222,202, 47, 55,230, 60, 78, 45,179, 48,247,173,213, 84,172,244, 58, 49, -112,194, 2, 79, 35, 91, 1, 95, 45, 90,229,117,241,248,142, 11, 41, 73,141,248,132,132, 36, 35, 97,152,251,185, 57,105, 83, 11, -210,163, 35,157,189,100, 74,165,178,186, 82,169,108, 20, 28, 28, 44,157, 62,125,186,176, 83,167, 78,127, 88,246,241,227, 69,231, -207,159,247, 91,186,116,105,175,240,240,112,163, 78,167,187,163,211,233, 98, 80,142,142,246,190,190,222, 31,190, 53,160, 47,186, - 12,252, 0,118,158,193,248,247,167,225,228,241,253, 19, 1,188, 22,163,101,149,187, 46, 24, 55, 97,186,119,171,230,141,185,249, - 59, 34, 33, 19, 11,208,179, 89, 16,243,238,228,217,238,155, 86,207,223,136, 44,116, 44, 46,146,197,235, 53,179, 27,120,153,135, -246,107, 93, 13,135,119,154,135,162,235,103, 96,229,110, 11,147, 14,127,254, 16, 0,170,135, 76,118,145,216,213,107,252,221, 57, -149,196,174, 94, 83, 61,100,242,233,152, 19,107,180,165,165, 69, 40,145, 84,222,185, 99, 71, 45, 15, 23, 17, 4, 44, 3,142, 99, - 32,224, 88, 24,205,118, 12,126,123,232,107,187,205,101,170, 90,189, 88,224, 93,199, 11, 27, 63, 25, 50, 31, 29, 43, 79,158, 48, -156,200, 51,244,240, 1,129,202, 77, 2,142, 99,192,177, 0,199, 50,136,207, 48, 96,236,216,119,221, 94,213,176,191,209, 86,213, -252,211, 33, 65, 61, 91, 53,168, 16,188,235, 10,227,214,234,141, 33,158, 89, 70,249,232, 95, 14,157, 27, 74,218, 79,187, 70, 8, -255,109,242,229, 85,167, 74, 19, 49,153, 76, 25, 61, 67,222,112,101, 4, 10,249,233,131, 91, 58, 8, 88, 6, 86, 59,129,205, 78, - 96, 47, 92, 27,149, 41,172,193,176, 44, 3,194, 19,140, 27, 55, 22, 61, 67,222,208,243, 54, 62,217,249, 66,142,221,118,226,244, -111,222, 38, 43,143,165,107, 54,205, 47,208,168,231,199, 62,244,140,215,105,178,166, 25, 50, 31, 57,189, 14, 6, 11,210, 44, 41, -230,222,132, 29,161, 87,209,160, 94, 93,216,121, 71, 58,131, 42, 42,176,227,232, 85,212, 9,170,227, 72, 55, 79, 80, 59, 80,137, -230,205,154, 3,192, 75, 25, 45,129,196,229,171,142,189, 71,206,235, 51,120, 12, 84,222,222, 96,137,181,207,233,163, 59,250,252, -244,253,183,159,218,140,249, 75,203, 37, 70,236, 79,222, 11,132,231, 95, 57,234,228,239,239,239,221,188,249, 31,211, 49,218,108, - 54, 84,173, 90, 21, 41, 41, 41, 65, 47, 83, 79,243,243,243,235, 61,103,206, 28, 85,175, 94,189,132,190,190,190, 0,128,244,244, -244,128, 19, 39, 78, 52,153, 51,103, 78,102, 90, 90,218, 81,148, 50,163,143,221,202,138, 88, 1, 56,169, 84,238, 56, 71, 48,236, -244, 15,223, 9,246,241,243, 55, 21,119,188, 90,157, 46,254,236,131,115,140, 64, 32, 42, 60, 30, 44, 33, 60, 83, 74,148,168,155, - 80, 40, 44,182,133,194,194,185,182, 34, 66,183,247, 88,142,117,220,172, 54,171, 58, 55,241, 86,221,114, 68,226,234, 11,197,162, -117,111, 13, 25,211,102,208,192,254,240,243,118,195,233,203,225,152,248,225,199, 86,155,197,186,252,165, 10, 15,142, 19,100,102, -102,198,123,120,120,248,190,250,251,150,169,246,235,201,227,170,211,103,206,206, 92,182,114,245, 36,139,217,102,229, 9,121,178, -142,177, 76, 38, 17,118,239,243,182,171,170, 70, 43,233,234, 57,239, 9,255,133,139, 8,152,131, 0, 0, 32, 0, 73, 68, 65, 84, - 17,173,245,175,197,104,137,101, 46,111,127,249,217,100,233,130,237, 87,113,116,237,196, 44,125,126,150,247,147,154,130,171,251, -173,130,252,188, 38, 47,147, 66,165,119,237,214, 12, 39,152,192,112,156,130, 97, 25, 49,111,231,147,108,102,243, 66, 67,246,163, -180, 87, 61,123,158, 39,216,247,123,102,249, 12, 16, 65,205,109,187, 14,168,124,220, 37, 48, 90,236, 24, 50,108, 36,182,110,221, -234,226,237, 38,134,209,108,195,183,203,150,105,117,241, 71, 85,241, 73,185, 41,221,250,126,124, 42, 38, 46,243, 94, 98,154,113, -119,121,211,102,178,216,145,175,183, 65,111, 98, 81,171,126,115,124,187,188,142, 52, 49, 33,246,227, 45, 63,109,156,114,255, 62, -183,149,231,216,121,198,180, 7, 73,197, 62,116,190, 13,122,186,122,120,238, 28, 48, 97,145,251,163, 76, 1, 8, 44,136,118,149, -226,237,209, 83, 92,171,251,202,160,144,114,238,177, 9, 41,126,211, 63,253,244,114,140,157,180,200, 87,199,196,150,149,158, 42, - 85,170, 12,236,211,167,143,252,147, 79, 62, 17, 6, 6, 6,226,167, 29,123, 42,183,239, 57,184,111,106, 90, 70, 32, 33, 4, 62, - 42, 85,210,184,119, 7, 31, 57,118,236, 88, 66, 82, 82,146,240,155,111,190,105,121,224,192,129,122,233,233,233, 78,215, 76,237, -132,192,104,178,195, 94,248,130, 84,107, 76,229,246,167, 1, 1, 1,146,148,148, 20,211, 83, 81, 6,230,143, 64, 33,211,179,107, -199,150,130, 31,143,199, 65,103,180, 67, 33, 21, 34, 46, 67,143,102,141, 27, 50, 27,236,182, 70,197, 9,142,125,187,247,108, 31, - 37, 9,233,215,186, 26, 84, 30,114,108,254,110, 17, 14, 95,137, 13,201,208, 49, 88, 67,184, 9,126, 18, 65,119, 5,159,182,166, - 83,179, 26,190, 93,154, 86,198,141,102, 53,124, 47,134, 69, 70,201, 6, 47,155,156,162, 19,158,206, 61, 49, 69, 91,124,193,195, -162,130,139, 8,155, 78, 38, 64, 46, 21, 64, 33, 21, 64, 33,113,124,179, 44,243,106,181, 90,191,186,129, 28,111, 31,203,113,130, -177, 67,223, 30,236, 63,124,232, 96, 2,142,197,158,125, 71,250,111,223,190, 45,205,106, 49,111,180,179,220,166,146,238,159,103, - 46, 40, 11,168,220,196,248,116,227, 61,184,202,132,112,145, 11,225, 42, 23,162, 75,176, 55,184,151,159, 4,198, 99, 98,255,234, -189, 38, 14,168,210, 57,168,146,178,214,157,104,205,253,177, 11,111,174, 60,159,215,121,234,119, 43,234,121,234,242,204,130,175, -166,143, 19, 36,167,166,118,222,115,228, 66, 23,187,121, 76,164,205, 82,240,185, 58,124, 79,177, 81,225,228,200, 43, 77, 2, 90, - 13,146, 90,116,214,187,119, 34,147,107,228,154, 36,136,136,207,135, 66, 42,128,178,232,218, 74, 5, 80, 72,133, 80, 74, 5, 72, - 77,142, 67, 78, 1,119, 57,197,147,237,140, 11, 87,108,229, 73,184,209, 98,199,237, 88, 29,170, 4, 53,134,159,159, 63,204,189, - 70, 84,185,118,118,223,161,235, 23, 14, 46,214,167, 63,252,220, 89,157, 29,161, 87, 49,115,218,132, 48, 6,184, 85,248,146,110, -242,213,146,181, 77,231,207,252,224,153,125,211,231,173,110,250,242,145, 44,151,217, 93, 6,188, 63,175,125,247, 1,208,230,100, -224,247, 83,187,209,179,207, 91, 24, 49,230, 35,184,187,123,125,187,124,225,103,119,108,166,252,179, 47,148,185,190,117,218, 53, -108, 80,119,123,128,191,127, 32,207, 59, 86,249, 32, 4,208,105, 53,248,108,234, 56,240,132,160, 81,147, 22, 93,164,237,187, 19, - 82,184, 26, 72, 86,118, 86, 65,228,195,251,221,140,153,145,215,156,190,150, 70,163, 85,173, 86,227,246,237,219,136,138,138, 66, - 68, 68, 4,178,179,179,225,230,230,166, 43, 40, 40, 40, 87,240, 62, 56, 56,120,248,217,179,103,165, 30, 30, 30, 79,118,154,205, -102,184,184,184, 96,248,240,225,194, 30, 61,122, 4,244,238,221,123,212,189,123,247,118, 0,200, 47, 54, 61, 57,143, 83, 93,124, -130,126,232,216,169,227, 36, 0,144,185,250,197,174,249,233, 72, 68,169, 21, 90, 55,255,202,109,218,180,173, 1, 66,192,128,172, -210,103, 71,165,151, 18, 37, 82, 92,189,122,181, 58,199,113,130, 63,222, 65, 60,190,223,188,171,206,175,151,238, 14, 92,242,237, - 82,169,171, 66, 2,181,198,140,247, 70, 12,112,250, 29, 44,243, 9,234,213,166, 77,135, 67,243,231,125, 41, 80, 42, 20, 56,117, - 45, 6,147,167,126,106, 76,139,191,183,148,240,194,181,122,117, 84,230, 43,190, 42, 9, 94, 3,181, 42, 42,225,210,175,167,116, -226, 59,253,164,102,171, 29,121, 5, 86,152, 44,118,216,121, 2, 77,129, 21,247, 19,181,240,114, 45,255, 82,110,132,144,230, 0, -188, 1,168, 25,134,185,241,244,118, 81,133,174,200, 27, 63,183,157, 85,248,126,240, 4, 96,134, 99,164,254,147,219,167,112,187, -164,253, 69,127,127, 31, 64,221, 66, 77, 59,128,235, 12,195,228,150, 96,182, 94,136,114, 9, 66, 67, 67, 73,159, 62,125,158,148, -248,207,111, 63,143, 68, 36,244, 87,184,121,131,144, 7,120,122, 1, 99,149,111, 64,246,210,229, 43, 43,124,248,254,132,132,252, -188,156,202,133,187, 79, 59,243,178, 16, 48,220,242,142,109, 91,245,152,244,254,251, 8,170, 94, 81,100,183,219,201,189,168, 88, -235,150, 77,155, 71, 95,188, 34, 94,153,159,124,111,246, 83, 33,200,114, 13,251,180,243,246,228,231, 35, 88,118,222,254,124,237, -246, 5, 77,134, 1,220,149, 98,252,112, 60, 14,132, 0, 12, 8,220, 20, 66,252,114, 62, 25,177, 97,251,243,251, 52,202, 47, 24, -190,100,110,151,206,189,166,156,189, 31,109,220,157,153,105, 60, 9, 32,189, 52,205,226, 11,116, 30, 38,139, 29, 86,155, 13,123, -143, 28, 65, 72,151,150,104,211,166, 37, 58,180,111, 35,184, 25, 22, 62,230,253, 73,227, 2,241,199,232,142, 39,154, 82,159,154, -205,149,110, 94,187, 7, 78,250,198,229,110,178, 13, 2, 14,168,230, 43, 67, 5, 23, 17,204, 54, 6,241,106, 75,225,147,227,142, -201,211,231, 85,152,249,241,164, 99,249,106,113, 3,224,129,165,180,115,215,235,245,226,145, 35, 71, 10,173, 86,171,101,248,123, - 31,245, 72, 79, 87,247,255,126,213,255, 36, 42,149, 15,244, 70, 27,194, 34, 30,215,157, 63,127, 94,181, 35, 39,206, 31,156,251, -233,196, 67, 33, 33, 33,110,187,118,237,226,203,186,158,207,212, 16, 51,178,190,219,188,125,239,214, 21, 75,191, 70,100, 66, 46, - 54,253,184, 22,196,110,251,161,140, 75,245,180, 38, 25, 57,114,164,236,224,193,131, 21,147,147,147,243,245,122,189,250,153,120, - 4,203, 8, 50,114,244,240,114, 17, 67, 36, 96,225,227, 33,133,202, 77, 2, 33, 7,176, 12, 99, 47, 78,115,211,238,163, 11,121, -189, 6,135,119,154,135,110,254,110, 17,198,124,248, 5,238,101,137, 79,176,114,183,133, 31, 12, 29, 56,211, 91,102, 15,241,119, -103, 85, 93,154, 86,129, 66, 42,194,172, 41, 35,209, 34, 44, 94,149,146,199,127,161, 54,112,141,231,157,120,178, 88,247,233,103, -131, 35,142, 8,150,139, 92,136, 19,219,191,205, 44,208,168, 53, 69, 77,114,102,147, 49,193,201,219,248,116, 49, 53,219,153,141, - 27,214, 95, 52,105,252, 88,182,109,235, 22,132,101,133,200,210,154, 25, 66,128,169,147, 39,226,131,137,227,124,147, 82, 51,191, - 90,187,246,135,217,103,127, 37, 11, 10,212, 15,231,150,166,201, 50,142, 40,144, 82, 42,128, 82,230, 48, 46, 74,169, 0, 70,179, - 29, 12, 3,206,189, 82, 19, 13,227,136,228,166,230, 36,148, 88, 3,127, 70,179, 66,165,250,103,126,141,117,169,147,187, 59,247, - 74, 92,106,196,194,176,240,140,235, 0,114, 2, 59,184,143,178,216, 8,116, 70, 27,226, 50,244,176, 89, 8, 51,230,141,202,168, - 58,136, 9,250,122,243,173,173,199,195,225,250, 84,161,255,140,102,202,213,189, 70,207, 6, 3,134,172, 88,253,227,141,165,139, -190,224,178, 52,102,240,132, 64, 42,230, 32, 19, 11, 10, 63, 28, 12, 5, 26,172, 93,183, 33,221, 6,102, 32, 46, 92,176,149,231, -254, 4, 79, 70, 12,232,213,225, 23, 6, 16, 51,172, 40,217,191,114,149,202, 93,251,142,150,118,237, 55, 18,118,155,121,102,216, - 37,114, 78,159, 25,121,198, 25,205, 6,245,234,130, 1,110, 21,100, 70, 77, 4, 0,133,170,246, 15,117,130,234, 52,125,126, 95, -205,154, 65, 77,157,201,247, 39,145, 82,169,203,135, 30, 21,188,191, 8,170,223, 88,149,145,107, 98, 92, 60, 43, 34,238,209,109, -236, 92,247,213, 54,222,104,158,119,230,232,238, 69, 43, 55, 29,120,187,107,200, 0,108,254,254,127,179,178,211,158, 24,173,211, - 79, 69,171, 70,108,217,184, 62, 80, 40,150,192,106,227, 97,181, 19,199,183,205,142,156,156, 92, 88,109, 60,164,114, 23,216,120, - 6, 86, 59, 15,171,141,135,201,108, 83, 76, 28,217,251,125, 35,112,173,184,116, 6,212,233,120, 82, 36,145, 84, 38,112,172, 93, - 75, 8, 65, 92,186,129,245,243,243,219, 1, 0, 18,137, 4, 18,137, 4, 60,207, 35, 44, 82,253,161, 87, 80,237, 73, 40, 52,120, -118,139, 57, 33, 47,254,183,158, 37,157,187,175,175,111,223,231, 77,150,209,104,132, 78,167,195,165, 43, 55,220, 54,110,221, 27, - 18,151,144, 92,157, 39,110, 38, 23, 85,245,158,218,204,152,190, 37, 93, 79,109, 70,228,251,174,173,198,177,159,124, 48,170,230, -234, 45,161,215, 31,159, 92, 88,106, 63,173,170, 93,103,152, 63,153,240, 86,179, 37,171, 54, 61,202,253,237,135,105,101,229,145, - 64, 32, 16,170,213,234, 39,207,247,154, 13, 59,155,221,138, 76,121,115,229,138,149,210,176, 24, 45,238,198,165, 98, 84,183, 74, -142, 26,142, 19,249,174,240,169,238, 85,173, 70,141, 29,107, 87, 45, 17, 60, 74, 53,226,187,253,215,113,246,208, 15,151,210, 51, -175,133, 32, 35,205,240, 50,101,200,107, 48, 90, 37,106,158, 11,207,130,206,104,131,201,108,131,149, 39,200,215, 91,145,153,103, - 70,190,222, 2,157,193,134, 81,221, 43, 21,251,119,101,248, 17,111,134, 97, 66, 9, 33,125, 8, 33,221, 0,136,139,182, 29,239, -108, 38,180,208,144, 61,179, 61,115,230,204,207, 23, 47, 94, 28, 81,116,108,209,254,162, 99, 75,219,255,212,223,123,206,154, 53, -171,193,146, 37, 75,190,110,221,186,245, 47,191,255,254,123, 44,128, 92,103,155, 15, 5, 79,159, 76,104,104,104, 89, 23,186,186, -197,106,145,184,202,132,168, 86,181, 18,222,253,124,179,215,207, 75,198,102, 74,197, 2,238,248,241,227, 21,178,205, 74,176, 44, -231,116, 21, 69,233, 93,171,141, 72, 36, 62,186,108,217, 50, 12,237,219, 94,150,152,101,213,133, 39, 26, 50, 10,204,176,169,188, -107,139, 23,126,189, 68,185,228,155,111, 63, 8, 61,204,231,233, 50,238,127, 91,124, 19, 95,179,155, 28,243, 84, 31, 44,134, 1, -225,237,201,185,241, 55,154, 1,192,171,244,197,210, 25,173,224, 10,251,214, 48, 12,160, 55,218,192,113, 76,102, 94,228,238,251, -195, 23, 44,236,178,237,151, 95, 83, 9,235,174, 45, 40,136,147,195,177,230, 96,185, 49,154,237, 48, 89,237,136,184, 19,134, 14, -173,234,161, 77,179, 58,208, 27,237,208,155,108,168, 90, 35, 8, 0,188,138,205, 56,142,141, 37,118,171,145, 16,187, 75,159,230, -222, 80,185,139,225,231, 33,129, 68, 44,128,213, 6, 24,204, 60,140,102, 59,226, 51, 13,208, 26,100,104,216,113,112, 53, 79,191, -155,166,244,120,217,193,156,196,155, 3, 75, 53,167,118, 59,182,236,216, 91, 51, 53, 53,163,255,177,131,219, 37,234,124, 43,194, -227, 11,144,153,103, 2, 56,111,204,249,250, 59,201,140,105,227,223,220,178,115, 95, 66,215,246, 45, 19,202,123,206,122,117,228, -182,221,123,246,254,208,167,207,155,178,136,107,199,240,232,246,153, 69, 5,153,229,234,159,197, 54,106,212,200, 54,126,252,120, -237,215, 95,127, 29,120,248,240,225,170,106,181,250, 54, 0,171,187,187,123,157,218, 53, 43,223, 57,117,226,120, 64,239, 55, 7, - 11,147,179, 12,112,147,139, 80, 89, 37,199,149, 75, 39,173, 98,177,176,216,254, 38,133,205,131,195,208,245, 51, 28,190, 18, 27, - 18,145, 45, 61, 63,110,236,168,132, 83, 23, 35,179,215,108, 61,245,191, 0,165,245,182,148, 87,175,185,217,172,134,239,204,201, - 35,177,120,245, 54, 92, 8,139,204, 44, 96,253, 22,165,153,108,191,150, 28, 74, 7, 4, 28, 3, 23,153, 16, 5,249,106, 77,244, -173, 19,181, 95, 83,152,122,212,169,131,219,216, 28,173, 21, 73, 89, 70, 38, 53, 71, 11, 59, 79,224, 46, 23,193,198, 19,228,229, -100, 49,219,183,109,197,141, 27, 87, 88,112,236,123, 0,230,150,122, 65, 25, 71, 83,161, 82, 42,116, 68,132,100,142,111,171,157, - 71, 80,205, 26, 88,191,102,185,171,151,202, 7,237, 58, 56,223, 55,218,197,179,114,163, 95,126, 90,131,243,191,223,234,116, 97, -229,119,205,149,254,222,171, 25,198,190, 20, 4, 70,147,197, 14, 77, 94, 46,196,230, 36,180, 8, 80,163,130,220,142,248,124, 63, -220, 75,127,164, 44,171,192,207,190,119,224, 54, 67,222,156,189,247,200,217,197, 61,187,119,194,189,248,124,200,196, 2, 72,197, - 28,164, 98, 14, 66,198,142,229,235,126,176,230,106,180,125,178, 35, 14,101,189,196,253,121,186,176,246,235, 48,119,118,157,247, -182,213,179,127, 30,247,217, 55, 61, 67, 6,140,102,238,221, 56,247,185, 30, 56,227, 92, 69,143, 56,181,143,231,157,127,199, 73, - 93,188, 86, 77,153,177,112, 74,143, 62,131,193,113, 2, 88,173, 86,236,219,181, 13, 63,125, 55,231,161, 89,151, 61, 26, 0,111, -206,228,198,239,222,182,110,240,103, 95, 45,103, 26, 52,106,209,242, 92,218,139,203,209,242, 28,243,227, 59, 99, 39, 12,241,241, -241,113,249, 35,162, 69, 80, 59,168, 30,122,245,123, 11, 39, 15, 29,192,253,136,112,240,196, 97,152,120,158, 32, 47, 55, 59,221, -102, 53,111, 41,177,197, 67, 42,173,188,249,167,173,181, 88,150,129,197,202,195,108,227, 49,237,253,119,205, 19,167,126,222,174, - 87,143,142, 17, 98, 14,249,241,137,105,238, 87,110, 61,104,200, 11,149,129, 99,167, 47, 23, 25, 77,118,104,244, 86, 28,219, 84, -178,215,145,122, 84,106, 93,165,105,175,177, 19,191, 92, 47,145,112,172,165,126,237,192,216,142,173,234, 39, 85,242,247,210,206, - 95,242, 93,139,203,215,110,245,122,123,248, 88,233,168, 58, 77, 25,127, 79,153,203,187,195, 7, 4,219,109,150,119,244, 57, 73, - 37,206, 47, 40,148,123,228, 85,170, 90, 83,255, 71,196,168,246,126,134,160,218, 51,206,131, 65,172, 33, 35,106, 32, 0,248,249, - 87, 50, 10, 37,174,218,114, 68, 96, 8, 0,172,222,176,179,217,157,168,212,113, 43, 86,172,148,135,197,104,113, 59, 70, 3,137, -136,133,197,202,131,113, 50,168,205, 19,110,194, 23,179,102,186,230, 22,216,113, 62, 92,141,136,155,231,136, 89,103, 28, 46,183, -185, 14,132,202,229, 29, 0, 53, 0, 68, 51, 12,249,177, 32,195,247, 16,112,193, 86,222,251,158,231, 29,245,101, 87,239,234,213, -236, 2, 73, 47,161, 88,209,154, 97, 72,125,134,192, 3, 32, 41, 57,133,239, 84,103,157, 90, 65, 70, 20,190,249,250, 43,172,218, -120, 0,169,217, 70,184,217,147,112,104,211, 66,124,178,120, 7, 12,166,146,123, 53,148,229, 71,138, 51, 70,207, 27,174,162,159, -139,142, 91,188,120,113,159,231,242,166, 79, 9,121,246,194,113, 69,127,191,100,201,146,175,159,250,189,222, 89,147,245,196,104, - 21,157, 84, 25,102,171,182,183, 95,229,223, 15, 29,220,239,145,171,179, 64, 42,226, 80,169,106, 77,204, 93,115,200,251,141,102, - 94,200,178,184, 97,231,250,165, 57, 70,189,118,151, 83,133,133, 42,168,165, 76,169, 56,182,127,223, 1, 84,175,164, 18,109,191, -148, 19,119, 43,214,240, 36,212,155,175, 78, 16, 87,117,213, 11, 6, 14, 24, 32, 63,115,246,220, 84, 29, 80,172,209,226, 24,174, -226,134,173,251, 84, 46, 50, 33, 24, 6,208, 26,108, 24,247,206, 91,175,254, 26, 35, 60, 55,118,244, 40, 48,133, 38, 43, 63, 59, - 29,159,207,120,223,168,176, 62,186,159, 24,159,152,210,173,239, 39,103,242,117,140,113,200,200,247,111,220,143, 90,156,171,215, -191,220, 34, 63, 38,179, 29, 38, 11,143,152,152,104, 76, 27,213, 29, 66,142, 5,199,241,142,206,210,182,146,111, 70, 93,106, 84, - 14,124, 69,131,182, 45,251,112,131,191,143,202, 83,169,144, 17,165, 92,194,212,175, 83, 75,212,170, 85, 27,113,213,160, 96,209, -165, 7, 6, 36,170, 13,136, 77,213, 64,226,211, 88, 48,180,203, 27,216,182,114,122,167,156,196,155, 44, 94,236,164,248, 12,191, -158,191,218,119,227,186, 21,146,140, 60, 11, 30, 38,234,144,158,107, 68, 90,174, 9,233, 57, 70, 40,101, 66,116,232, 55, 94,114, -244,208,143,125,187,182,111,185,250,101,206, 59, 54, 54,238,104,124, 74,218,224,224, 38, 45,176,237,231,159,218,187,187, 87,117, -205,203,139,203,119, 54,119, 22, 46, 92, 40, 94,178,100,137, 96,205,154, 53,249,173, 90,181,242,157, 53,107, 86,207,204,204,204, -235, 85,170, 84, 9, 58,185,127,203,217,198, 29,250, 55, 7,111,241,110,223,177,179, 72,194, 11,112, 42, 52,212,178,123,215,246, -108,131, 65, 59,177, 84,195, 33,119, 91,152,161, 99,224, 29, 16, 16,161, 20,219,187, 11,216,188,168,220, 19, 83,182,230, 2,251, -171,135, 76, 62,125,238,102,100, 84,179,176,120,213,217,176,199,153, 57,122, 75,237,152, 19,159,148, 90,240,114, 12, 3, 33,199, -194, 69, 38, 0, 91, 88,170, 42,253,131, 31,131, 97,188,139, 34,167, 12,152,194,111,128, 97,144,154,155,120,219,137, 62, 27, 12, -225, 9, 16,153, 92, 0,157,209, 17,154,175,232, 37,135, 58, 35, 25,223,175,222,130, 91, 55,111,160,199, 27,253,176,118,195,118, -140,123,103,176,177,172,218, 15,203, 22, 70,180,158,138,102, 41,101, 2, 0, 12,242, 10,172,216,119, 57, 9, 53,170,177, 78,191, - 24, 0,192, 69, 41,135, 70,107, 0, 43,114, 65,116,216, 49,249,241,115,215,102,205, 94,176,226,211,220,180,240,196,199,119, 47, - 33,200, 75,131,106, 1, 22, 68,164,187,226,102,118, 85, 4,213,172, 14, 86,116,195, 41,237,172,136,134,223, 28, 98,247,245,105, -214,184, 94,235,202, 42,119, 24,204,246,194,168, 22,135,159, 54,111, 69,124, 92,242,216,236,251,135,110,189, 14, 71, 91,144, 25, -171,150,168,106,126,112,247,218,153,216, 1,195, 63,128, 95, 64,165, 70,121,137,183,157,238,182,224,204, 62,187,147, 70, 75, 36, -119,159, 53,237,139,255, 77,233,209,123, 16,174, 94, 58,131,219, 17,209,104,217,178, 57,222,120,115, 40,180,249, 57,117,246,108, - 93,217,221,166,215,158, 20, 72,108, 83, 90,180,233,194,240,118, 59, 30, 61,188, 23, 93,156,150, 33, 45,242,246,149,180, 72,215, -103,154,167,188,234, 52, 82,186, 85,184,109,178,216,145,146,146,140,223,126, 63,223,196,144, 22,121,187, 60,215, 75, 34,226,112, -234, 86, 38, 44, 86, 30, 22, 27,143, 14, 29,187,155, 69,172,169,253,162, 21,155, 91,165,165,166,177, 10, 87, 47,190, 66, 64, 93, -145,159,196, 98,186, 19,163, 17, 89,172, 60,170,251, 43, 74,213,244,246,175,249,245,244,233,211,234,114, 34, 25,180, 5, 38,115, - 90,106,138,239,250,157,231,116, 15, 30,222, 13,168,168,114,115,253,223,202, 31, 69,249, 70, 6,153, 26, 19,114,180,249,204,240, - 9,159,249,111,252,110,241,136,210,140, 86, 49,221, 69,170, 29, 61,117,169,142,135,139,136,209, 25,109,124,118,190,197, 62,252, -205, 87, 27,116, 89,104,178,198,175, 88,190, 82,126, 43, 70,139, 59, 49, 26, 72, 69, 28,196, 34, 22,102, 43, 15, 39, 31, 39,214, - 87,229, 59,177, 77,179,134, 56,121, 59, 11, 28,199,194,160,205,213, 11,144, 29,213,172, 83, 15,121,211, 22,173,208,185, 83, 71, - 60,142,138,172, 20,122,120, 95,215, 43,191, 93, 72,183, 89,106,127, 88,160,142, 58, 80,174,192,130, 94,207, 89,197,190,239,250, - 5, 84,105, 59,112,232,187,110,149, 43, 5, 48, 42, 47, 79,216,136, 0,227,223,121,203,233, 39,223, 97,204,129, 37, 11,102,193, -100, 50,195,219, 93, 12, 66,128,205,171,231,194,108, 54,195,223, 83, 2, 77, 65,201,171,201,149,229, 71, 74,138, 66,149,171,239, -201, 83,102,172,180,253, 12,195,132,206,156, 57,243,115, 0,100,230,204,153,159, 23,109, 47, 94,188,216, 0, 32,181,140,166,195, -245,207, 24,173,162,147, 43,249,233, 22, 5,121,121,250, 93, 57,117,242,132,219,193, 59, 60,174, 30,184,137,222, 45,253, 32, 18, -176,144,187,249,227, 78,156, 6, 71,247,175,203, 59,244,203,143, 41, 38,147,233,219,178,219,154,107, 54, 83,202, 21, 39,127,222, -182,139,247,242,244,100,191, 63,165,142,201,214,218,158, 52,105, 69, 93, 59,204,223, 60,185,222,143,128, 57, 33,149, 74,107,154, -205,102,143,178, 50,118,243,169,132,194, 78,188,204,235, 40, 91,193,112,156,125,219,246,109,240,114, 21,195,100,229, 49,243,211, -143, 12,163,122, 40,243,134,191, 61,180, 75,231, 94, 83,206, 10, 21,181,206,180,105, 82,139, 52,110,220, 56,143,227, 56,167,186, - 82,168, 84,170,185, 44,203, 14, 19,139,197, 46,102,179, 89,107,230,141,242, 2,163, 25, 70, 11,160,215, 27, 33, 20, 57,204,162, -144, 99, 96, 48,154,161, 55,152, 75,127, 48,210,239, 93, 6, 80, 59,255,169,152,210,153, 7,213,197, 59,246, 28,250,104,208,219, - 67,102, 7, 52,122, 83, 25,151,166,129,136,177,160,121, 93, 63,156, 59,113,128, 36,199, 71, 77, 43,203,100, 1, 64,166, 58, 39, -208,219,219, 7,183, 98,117, 72,201, 54, 32,189,208,100,165,229,154,160, 53,104, 17, 92,217, 31,121, 26, 77,224, 75, 95, 95,224, -192,201,147, 39, 7,247,234, 63, 4, 83, 62,157,215,110,211,186,165,225, 10,177,112, 76, 65,198,163,243,206, 24,173,123,247,238, -229,204,152, 49,163,198,134, 13, 27,216, 17, 35, 70, 24, 26, 54,108, 40, 29, 57,114,100,187,173, 91,183, 74,229,114,169,225,206, -165,195,179,223,155, 60,179,255,250, 85, 11, 27,229,230,230, 50, 54,171,245,184, 37, 55,119,166,174, 12, 51,151,116,248,243,135, -115, 98, 44,163,187,183,247, 62, 92, 65,206,214,151, 16,243, 80,212,157,187, 11, 15,230, 90, 98, 78,172,209,202, 6, 47,155,156, -154,199,127, 97,100, 85,139,202, 50, 89, 0,192,114, 12,204, 54, 59, 92,100, 66,176, 44, 91,100,226,253,126,218,117, 92,238,237, - 38,134,144, 99, 33,224, 24,228,235,173,200,202,183,224,131,119,157,157, 33,132,240, 54, 59,129,193,108,131,190,176,118,168,205, -207,194,172, 79, 63,198, 27,125, 7,224,189,137, 31, 35,215, 0,220,140,213,194, 98,181,150,249, 80,176, 12, 11,189,201,134, 49, - 61, 42, 35, 71,103, 65,129,193, 6,179,141,135, 92, 44,128, 80,192, 66, 33, 21,192, 85, 46, 4, 8, 17, 21, 21, 38, 66,161,208, -104,181, 90,183,149, 82,163, 71,213, 64, 31, 24,172, 44, 90, 12, 89,138,110,173,107, 35,226,242, 62,193,133,171,119,171, 77,253, -244, 11,124, 52,174, 47,246, 62,172,129, 10,170,202, 80, 42,100,176, 18, 22, 0,113,178,195,222, 92,158,181, 12, 24,246,195,134, -205,145,243,191,154, 41,205, 43, 96, 32, 17,113, 56,123,230, 52,174, 92,187,185, 42,235,254,161,109,120,141, 8, 9,235,227,234, -234, 10,169,152,131,217, 98, 50, 59,223,117,129,128, 0, 77, 20,170,218, 63, 20,214,248,155,216,121, 20,179,175,108,163, 37,144, -186,206,252,240,211,249, 95,247,232, 61, 8,167, 66,247, 98,207,222, 93,246,214, 33, 99,185,237, 63,173, 67,187,110,253,208,174, -199, 16, 28, 63,176,245,227, 2,158,169, 55,126,202,236, 5, 29,186,244,194,169,163,123,145,145,158,188,204,217,244,114, 66,102, - 74,151,238,125, 97, 52,219,209,190,107, 31,156, 56,114, 96, 50, 10, 7, 89, 56,255, 18,123,174,124, 6,107,251,120,218, 20, 97, -102,158, 89,168,206, 55, 35, 89,173, 71, 92,134, 30,135,126,217, 68,156, 47, 47,204,205, 59, 4, 87, 20,142,255,230,108, 82, 96, - 69, 63,147,208,100,144, 69, 69,199,212,121,239,221, 81,194,106, 53,235,176,153, 26, 19,212, 26, 19,178, 52, 38,232,140, 54,212, -172, 88,139,181,218,152,214,229,205,103, 47, 55,177,112,237,145, 88,184, 42,132,104, 83,231,229, 7,218,242, 60,255,135,201, 90, -225, 48, 89,225,177, 26, 72, 68, 28, 36, 34, 22, 18, 17, 7,155,157, 56, 85,113,145,169,106,247,250,224,195,247,253,205, 54, 32, - 91, 99,134,128, 99,160,242,242, 80, 52,111, 52, 12,155,151, 78, 6, 0,140,155,241, 61,222, 27, 51, 18,117,235, 55, 68, 94,110, -174,239,176, 65,189, 86, 0, 56,224,108, 90,143,157, 58, 95,233,212,197, 91, 51, 62,152, 62, 71,249,118,223,206,220,237, 24, 13, -210,114, 76,136,142,210,150, 43,242, 6, 0, 54, 59, 15, 2,130, 45,187, 66, 33, 19, 11,160,214, 88, 64, 8,193,194, 53,187,225, - 34, 19, 34, 45,215,209,220, 95, 26,165,250,145, 82, 34, 82,229,136, 54,246,129,163, 47,151,183,179, 17,173,197,139, 23, 71, 44, - 94,188,184,216, 8,217, 83, 38,235,229, 22,149, 22,137, 20,117, 92, 61,189,174,158, 58,113,204,229,192, 29, 59,206,221,201,198, -160,246, 21,161,203, 73,196,183,159,190,157,195,128,152, 89,142,203, 51, 25,244,251, 13,134,130, 69, 0, 44,165,222, 52,190,181, -155, 40,164,202,211,107,215,255,108,243, 82,169,176,237, 82, 78,114,110,129,205,250, 71,179,149,149,185,121,114,125, 53, 27,111, - 13, 49,102, 60,190, 81, 86, 77,156, 39, 16, 45, 94,119, 8, 0, 1,207,243, 32, 60, 15,161, 84,169,240,170,222, 42,163,176,160, -147, 10, 88,198,248,116, 9, 64,120, 91,114, 86,108,233, 97, 80, 6,128,155, 92,136, 93, 23, 82, 0, 32,131,211,134, 61, 24,254, -182,163,185,208,104,150,230,215,175, 81,131, 52,111,222, 60, 79, 38,115,106,250, 43,206,199,199,231,250,236,217,179,235,188,247, -222,123, 18,177, 88, 12,155,205, 86,225,199,245,235,249,245,139,198, 97,224,228,181, 16,137, 37, 48, 24, 45, 16, 10, 5,200,213, -232,144,151,175,135, 86,111, 45,255, 29, 20, 19, 99, 86, 3,223, 28, 60, 32, 30,208, 83, 25,220, 66,204,138,208, 52,200, 15,231, - 78, 30, 36, 87, 79,108, 30,103,200,140,250,217,201, 27, 17, 58,163, 21,169,217, 70,164,100, 27,145,158,107, 68,122,142, 9,233, -185, 70, 48, 12, 3,163,217,246, 74, 47,174,130,204,200, 61,219,126,222,216,207,100,193,208, 14, 61, 6,224,227, 57,107, 43,111, -251, 97,201,233, 88,194,182,117,178,163,173, 61, 34, 34, 34,254,221,119,223,109,180,115,231, 78,174, 65,131, 6,134, 7, 15, 30, -200, 11, 77,164, 69,169,148,203, 54,125,183,248,100,139, 22, 45,126, 73,137,122,120,182,176, 61,189,204,130,189,114,199,209, 18, -153,229,214,248, 74,138, 54, 61,171,251,202, 81, 73,161,237, 89, 71,121,231,219,236, 46, 31,125,173, 62,187, 42, 51,205,100,251, - 85,109,224, 26,167,232,132, 78,245,193,179,154,140, 9, 3, 7, 13, 5,199,176,176, 24,245, 9, 69, 55,151,202, 77,140,185,219, - 31, 66, 41, 21,194, 69, 38,128, 82, 38, 68,187,122, 21, 80,142,242,140, 88,237, 60,244, 38, 59, 12, 38, 27,140,102, 27,188, 2, - 61,176, 97,219, 30, 36,102, 26,112,232, 70, 22, 34, 19,180,168, 85, 81, 1, 66,202, 46, 38,121,187,181,160,239, 91, 35, 92, 56, -150, 1,199, 50,108,189, 58,181,145,163,179, 64, 36, 96, 33,146,202,160,144, 8,224, 42, 19, 66, 36, 18, 34, 51, 51, 19, 38,147, - 9,149, 42, 85,146,150,110, 5, 9, 92,148, 50,212,170,230, 15,139,213,134, 99, 23,239, 99,209,180,129,232,222,161, 25, 24,161, - 18, 15, 77, 77,224, 82,193, 5, 60,203,194, 98,227, 97,182,216, 1,176,198,146,244, 2, 3, 3,187, 40, 20, 10,133, 94,175,215, - 38, 38, 38,158, 79,143, 60,144,104,231,250,143, 63,113,234,236,182, 62,111,116,199,173,240, 8,236, 61,112,248, 82,150,167,102, -122,209,223,212,175, 95,191,149,151,151,151, 50, 59, 59, 59,255,222,189,123,215, 95,182, 94, 64, 88,118,106,235,118,157,160,203, -203, 68, 70, 82,156,211,181,232,186,149, 93,240,229,226,181, 77,131,106, 7, 53,181, 19,135,241,170, 87,201, 5,159,204, 89,221, -180, 70,173,218, 77,139, 6,132,212,173, 84,250,180,108, 2,185, 75,143,119,222,251,120,113,191, 65,163,113,246,212, 97, 44, 95, -244,233, 54,133,155,119,221, 10, 30,110,141, 27,180,234,129, 75,167, 15, 67,234,226, 11, 15, 79,223,118, 35,198,124,216,109,208, -136, 9,184,114,233, 52, 86, 45,249,124,171,221,164,221,225, 76, 90, 21,170,106,222,141,154,180, 24,238, 82,193, 7,121, 26, 45, - 92, 60, 84,168, 27,220,124,248,253, 59,166, 25, 5,153,177,234,151, 54, 29,132,192,100, 33,200,213, 89,144,164, 54, 32, 62,221, - 97,180,120,190, 28,125,130,236, 60,163,148, 10, 4, 21,172,143, 43,221, 61,125,150, 84, 14,244, 97,190, 89,240, 41,103,129, 20, -234, 60,135,201, 82,231,155,161,214,152,161, 51, 90, 81, 65, 33, 0,111,231,203, 93,235,206,213, 89,224, 34, 23,194, 77, 46,114, - 58,202, 88, 28,235,126,218, 21,116, 39, 42,245,205,229,203, 87,202,111,199, 62,101,178,132,142,104,150, 68,196,193,206,243,128, - 19, 79,188, 80, 32,156,210,191, 87, 55, 36,101, 25, 28,163,150, 89, 6,181, 26,182,128,151,140, 71,215, 33, 51, 1, 0,125,123, - 57,186,182,197,166, 21,224,200, 85, 53,240,108,199,238,210,203, 98,131,129, 91,191,253,232,212, 61,187,127,113, 51,218, 5,248, -241,120, 60,244, 38, 27,164, 34, 14, 18, 17, 7,153,136,123,166, 63,118,217, 70,203,209,231, 46, 49,203, 10,189,209,136,124,131, - 21, 4,192,245,199, 58, 24,204, 54,104, 10,172,104, 85,199,227,213, 2, 33, 12,115,148, 16,210,251,121, 67,244,188, 89,122, 42, - 34, 85,156,198,141,167, 53,138,142, 47,201,200, 61,221,103, 11, 64,185, 70,112, 9,158,119,142, 79,111,139, 20, 30,117,221, 92, -220,174,158, 56, 30,170, 60,112,135,199,249,112,135,201,178, 26,178,176,108,198,176,228,252,188,172,206, 0, 98,156,253,103,114, -175,186,193, 82,177,228,236,255, 86,254,104, 81,249, 4,240,251,175,230,101,106,244,246,103,220,132,221,100, 98, 9, 79, 68,198, -140,199, 78,181, 33,176, 44, 99,153, 51,121, 0,120, 66, 48,119,229, 30,124, 61,125, 8,148,178, 17,114,134, 97,228, 5, 70, 27, -166,205,219,136,101, 95,142,117,145, 75, 4, 96, 24, 71,159,168,119,134, 14,112,238, 6, 52,218, 16,125,109,167, 78, 27, 27,250, -224,233,230,194,150,237,222,184,217,178,101,203, 60, 15, 15, 15,200,100,178, 63, 34, 21, 37,224,227,227,243,229,156, 57,115,130, - 38, 78,156,248,100,178, 79,129, 64,128, 15,222,127,159,181,219, 9,142, 31,223, 12,239, 42, 77,112,248,215,171, 8,233,210, 28, - 58,189, 17, 57,121, 90,240,224, 94,250, 70,212,230,101,157, 77,143,191,219,162,109,231,190, 56,127,242, 32,185,122,124,211,184, -242,204,209,227, 81,193, 35, 41,236,110,116, 93,134,169,224,136,104, 21,154, 44,179,149, 71,101, 31, 57,146,226,163,225,238,230, -150,228,172,158,204, 59,168, 63,195,146,137, 12,200,230,130,140, 71,123, 0,144,130,180, 7,195,246,236, 88, 31, 30,113,239,246, -162, 62,195,167, 8,122, 12,122,159,251, 97,241,135,159, 3,112,118,226, 61, 75,100,100,228,253,177, 99,199,182,185,114,229,138, - 29,128,158, 97, 24, 43,199,113,114,179,217, 44,234,220,185,179,230,225,195,135, 23, 80,124,167,197,103,104,247,238, 30, 47, 70, -162,125, 67,204, 91,134, 85,118,209,118,239,220,190, 53, 90,215, 15, 68, 82,251,214, 0, 48, 37, 65,167, 12, 50,214,216,184,203, -106,147, 29,251,225,167, 35, 95,143, 27,210,109,218, 54,193,220,229,105,161,115, 75,237,136,154,244,224, 66,207,226,108,188,128, - 99,225, 34, 19, 66, 41, 19,192, 69, 38,132,139, 84, 8,171,141,148,167,230, 72,172, 54,222, 17,209, 50,219,160, 51,216,112,246, -118, 6,210, 53,102,228,105, 45, 48, 88,236, 32, 32,142,218,168, 19,165,185,250,241,111,238, 69,111, 82,247, 74, 77, 52,235,215, - 44,117,221,119, 57,249,201,136, 62, 55,185, 24, 46,114,199,104,236,139, 23, 47,194,211,179,236,218, 62,207,243,216,123,226, 58, -150,111, 57,139, 19,155, 63,131, 84,196, 33,184,255, 60,140,126,179, 37,120,194, 35, 58, 50, 34,163, 86,189, 70, 62, 44, 43, 3, -203, 48, 48, 89,121, 0,164,196,235,105, 54,155, 61, 19, 19, 19,243,107,214,172,233,235,239,239, 63,136,227, 56, 2,237,109,211, -193, 95,114,244,103, 66,119,200, 11, 12, 38,187,220,166,217, 92, 51,205,208, 27, 53,107,130, 97, 24,226,234,234, 42, 58,123,246, -172,174, 97,195,134,222, 47,249, 40,177, 50, 85,237, 85,239, 77,154, 58,168, 70,245,234,216,179, 99, 51, 8, 97,246, 57,251,199, -219,143, 92,193,130, 89,207,142, 48,252,100,206,234,166,203,230, 77,121,102,223,164, 89,203, 75, 29,117, 40,147, 40,167, 15, 28, - 54, 30, 55,175,255,142,111,231,125,242,139, 73,151, 51,218,106,179, 14,206, 73,139,253,165, 90,189,150, 32, 22, 45, 78,237, 94, -138, 33, 35,199, 73,122,244, 25,132, 43,151, 78,227,235,207, 39,109,215,231,101,190, 11, 39, 59, 57,243, 68, 56,177,115,207, 55, -133, 6,147, 5,171,191,249, 10, 19,166, 47, 66,171, 46,125,133,247,110, 95,157, 8, 96,190,211,221, 33, 44,118,116,110,232,229, - 48,207, 86, 30,135, 99, 57, 65,113,119,160,128, 99,216,198,213,221, 97, 48,219,144, 95, 70,165, 82, 32, 18,166,231,105,242,171, -124,247,245, 84,174,192,104,131, 90, 99, 70,166,198,132,172,188, 63, 12, 86,150,198, 4,181,198, 12,161,128, 65, 84, 76, 2, 88, -161,160,220,253,243,114,117, 86,180,168,237,225,120, 70, 95,178,117,196, 42,112,109,121,226,194,157,129,203,151,175,144,222,137, -211, 34, 60, 54,191, 48,146,197, 65, 34,100, 33, 46,252,217,206, 59,250, 70,150,134,171,119,245,106,163,222, 25,209,213, 85, 41, - 67,234,163, 76, 8, 56,199, 20, 49,110,170, 64,184, 73,140,248,112,210,120,120,121,186, 35, 49,203,132, 85, 7,162, 16,126,255, - 49,120, 67,249, 78,123,245,143,191,132,188,247,193, 39,238,172, 80,140,173, 39,227, 28,233,228,236,120,120,245,136, 49, 53,250, -110,129, 46, 63,155,128,216,157,236,131,204, 16,155,221,113,187,125, 61,119, 38,126,217,242, 61, 78,134,101, 62,185, 3, 47,239, - 91,134,169,179, 22, 34, 43,223,140,226,238,203,210,252, 8, 0,245, 83,145,168, 23,182,159, 50, 71,197,109, 51,133,219,230, 18, - 52,204,207,153, 43,243,115,251,205,207,233, 21, 55,247,223,250, 50,155, 14, 95, 48, 69,238,222, 13,228, 82,197,239,199,143, 31, - 81, 28, 12, 39, 79, 76,150, 69,159, 69, 22, 77,233,155,156,159,167,238, 81, 46,147,229, 93,171,129, 68, 46,185, 48,123,225, 42, -147, 79, 64, 21,219,177,219,249,217, 90,163,221,246, 98, 31, 4,133, 93,225,230,109, 20,136, 37,203,133, 6,243, 87, 89, 89, 15, - 10,202,138, 60,241,132, 32,244, 90, 58, 8,113, 84,145,118, 95, 76, 65, 97,205, 28,118,222,209,172,242,235,237, 76, 8, 10,251, -161, 56, 27,254, 94,247,227,247,249,189, 27,106, 10,134,127, 61,247, 73,115, 97,171, 70,142, 72,150,171,171, 43,220,221,221,161, - 84, 42, 81, 86,211, 33,195, 48,239,188,247,222,123, 47,212,254, 51, 51, 51,209,173,107,103,172,249,126, 3, 26,117, 29,133, 95, -127, 59, 9,139,149, 71,112,189,234,168,226,239,129,164, 12,237, 75, 61,232, 10,159,160, 15, 90,116,126,243,243,118, 93,250,226, -236,137,253,228,234,137,159,198,151,119, 34,196,222,221,218, 28, 89,176, 96,110,181,217,139,190,147,184, 72, 5,120,160, 51,131, -101, 24, 84,246,145,195, 83,193,226,252,193,173,198, 33,125,219, 56, 61, 57, 94, 96, 96,192,182,101,107,214, 43,150, 45,153,215, -249,102, 24,115, 86,151, 26,149, 3, 0,250,140,200,111, 30, 2,247, 43,254,126,234, 88,163,142, 3,224,227, 95,189,123,108,198, - 67,167,205, 6, 0,125, 76, 76, 76,236,236,217,179,131,150, 44, 89, 66, 56,142,227, 1, 72, 86,174, 92,169,127,244,232,209,109, - 56,134,230,162,172,151, 77,215,238,245,167, 41,197,246, 86, 21,228,108,253,234,190,114,180,174,239,104, 21, 29,210,187, 29, 2, - 43, 85, 66, 76,186,190,113,142,158, 23,234,204, 92,245,181, 63,134,223,168,234,197,141,179, 25,204,247, 1, 28, 42,111,254, 48, -248,163,131,124, 81, 52,203, 69, 38, 4,239,184, 87,202,101,180, 76, 22, 59, 12, 38, 59, 12,102, 27, 10,204,118,232,205,118,240, -196,241, 76, 48, 12, 3,139,141,135, 83,213,230,231,238,125,215, 10, 94,168, 94,149,129,171,220,145, 54,215,194,233, 30, 24, 0, -158,158,158, 80,169, 84, 78, 69, 69,205, 22,199, 35,110,182,242, 79,154,245,205, 22, 27, 8, 33,136,138,138,252, 44, 62, 54,182, -127,205, 90, 53, 59,212, 11,110, 84, 65, 46, 97, 1,160, 68,163,165,215,235,237, 46, 46, 46,170, 10, 21, 42,176, 41, 41, 41, 79, -204,115,205,198,157,109, 7,246,239,195,192,129, 3,116, 15,174,223,121, 50,196,221, 96, 48, 48,109,219,182,117, 13, 12, 12,100, -246,174,171,214, 0, 0, 32, 0, 73, 68, 65, 84, 77, 38, 83,126,121,179, 73,225, 93,251, 77, 15,207, 10,139,222,121,119, 66,237, -206,221, 66,112,238,204, 41, 28,218,191,243,103,189, 58,234,148,179, 34, 65, 65,117, 94, 24,117, 88,163, 86,237, 23, 70, 29, 86, -169, 86,171, 84,163, 85, 47,184,121, 75,194, 8,112, 50,116, 55, 49,178,150, 73, 0,120,187, 81,187,123,215,186, 47,231, 15,155, - 56,171, 70,175,126,195,240,206,200,209, 16, 8, 56,156,255,245, 8,150,205,251,248,168, 78,147, 57,202,153,110, 2,142,208, 91, - 93, 81,128, 44,240,163, 74, 53, 26, 32,236,234, 37, 68, 71,221,139,184,115,227, 74,253,154, 13, 91,193,219,191,242, 71, 9, 94, -220, 18, 60,120, 96, 41, 75,198,108, 52, 38,140, 30, 53, 18, 79,143, 58,108,221, 36,200,147,121,254, 1, 0,160,215,102, 90, 54, - 45,157,246,168,104,212, 33,111, 49, 39,148,164,171,201, 85,239, 61,255,219,181,233,253,123,135,176, 89,249,102, 71, 4, 75, 99, - 46,252,152,144, 85,244,115,190, 9,181,252,149,136,140, 8,227,141,154,172,125,229,124, 46,141,163, 7,247,188, 95,116,239,242, - 60, 1, 3, 24,203,221, 44, 37,116, 29,255,205,183,203,165,119, 98,117, 8,143,203,119, 52, 21, 10, 57,135,193, 18,178, 79, 76, -151, 99, 52,123, 25,209, 33,134,251,122,204,168,161,200,202,183,128,231, 1, 1,199, 22,126, 68, 72,212, 50, 72,210,234,145,149, -171, 70,108,124, 2,242,210,163,193,178, 44,188,252,107, 59, 61,147,180,157,136,253,244,102,210,112, 80,239, 14,130,253,191,167, - 65, 46, 17,192,164,205,192,241, 93, 75,213, 38, 93,254, 34,131, 94,183,223,153,249, 28,255,232,130,192,168,243,117, 70, 31,137, -144,195,158, 45,223, 97,240,232, 73,207,148,190,159,125,177, 0, 96, 25,228,228,106,193, 48,140,186,124,229, 18,115,163,180,237, -151,140,140,189,178, 70, 49,102,235,197,138, 66,201,181, 81,114,252,212,137, 35,138,203,241, 18, 92,143, 76, 43, 52, 89,106,126, -225,228,222,201, 90, 77, 78, 79, 0, 81,229,171, 23,178, 61,135,140,153, 30, 81,189,118, 61,211,185,123,186,184,188, 2,107,137, -253, 28, 90, 15,154, 29,113,243,232,154, 94, 26,107,204,251, 10,191,122,118,222,102,251,198,160,142,154, 87, 66,211,161,120,222, -170, 61, 79,154, 13,103, 44,217,234,248,217,110,135,157,240, 32, 60,240,225,151,235, 96,227,237,224,237,118,240,118, 2,171,157, -200,203, 74,174,202,191,202,254,220,135,187,235, 12,159,255, 98,115,161,187,187, 59, 60, 61, 61,225,233,233, 9, 87, 87,215, 50, -141,150, 80, 40, 84, 10, 4,207, 94,234,132,132, 4,196,199,199,195,213,213, 21,132,183,194,108, 5, 26,180,234,129,187,209,247, -112,250,242,109, 16,222, 14,133,178,252,171,188, 40,124,130,222,111,222,169,255,119, 93,250,141,197,175,251,127, 36, 55, 46, 30, -153, 96,200,140,218,232,116,132,222,110,103,172, 86, 43,122,247,232,148,112, 43,226,241,137, 47,166, 79, 12,105,211,103,130,164, -117, 80, 0,140,102, 59,146,227,163,113,254,224, 79,198,218,213,252, 78,118,109,223, 50,193,106,181,194,110,183,151,249, 34, 55, -154, 45, 89,156, 80,166, 24, 58,116,184,240,198,245,235,251, 20,222,181,246,216, 25,246, 14, 67,248, 96,134,144,129,193,193,117, - 97,177,242,208,235,243,115,203,123,206, 90,173, 54,118,243,230,205,213, 70,141, 26, 37,175, 87,175,158, 48, 58, 58, 26,203,150, - 45,203,214,106,181,177,206,106,156,186, 24,185, 82,192,228, 62, 42,138,104, 37,182,107,141,161,125,218,225,151,163,151,113,254, -210, 21, 36,232,148,183,117, 54,193,193,164,132, 84, 83,253, 10,249,251,250,181,174,194,237,217,146,187, 47,162,211,204,183, 9, -145,156,202,186, 48,183,192,249,135, 27,208, 26,172,112,149, 59,230,123, 42,138,108,113, 12,227,180, 35, 98,128,216, 75, 87,194, - 26, 52,171, 85, 15,183, 98, 53,200,204, 51,193, 96,178,129,231, 9,120, 16,120,186,136, 33, 21,177, 72,140,143, 5, 79, 44,113, -229,124, 85,168, 59,118,232, 40, 0, 24, 48, 12, 17, 8, 5, 2, 16, 56,230, 87,148,201,100, 58,149, 74,229, 84, 68,203, 98,179, - 97, 96, 72, 75,180,106, 30,140,254, 19, 28,115,102,158,249,121, 38, 60,148, 66,252,178,109, 35,146, 46,174,220, 86,173,245,196, - 83,247,238, 70,188, 21,113,235,247,225,111, 52,149, 53,246, 21,164,138, 74, 10,147, 22, 20, 20,236, 3, 32, 22,137, 68, 33, 29, - 58,116,168,176,111,223,190, 60, 47, 47, 47, 94, 44, 18,169,251,245,237,195, 11, 69,162,156,162, 99,127,251,237, 55,225,132, 9, - 19, 92,114,115,115, 19, 51, 50, 50,174, 0,176,150, 94, 17, 12,234, 6, 22, 59,193, 48, 82,165, 76,158, 80,181,106,117,255,230, -173, 90,186,189, 57,112, 48, 36, 98, 9,126, 61,117, 2,171, 87, 44,217,173, 75,123, 48,166, 60, 87,242,117,141, 58, 76, 78,140, -139,213, 27, 76, 13, 27, 52,235,196, 92, 58,117,112,138, 5, 94, 43, 56,137,101,105,183,129,147,106,196,166,234,176,122,241,103, -240,112, 83, 32, 46,250,161,225,209,131,187,235,172,198,252,207,156, 54, 89, 0,228,217,246,183, 90,143, 12,241, 48, 89,236,184, -120,246,168,145,183,241, 33, 87, 46, 28,139,174, 88,187,185,180, 65,243,174, 30, 89,135, 54, 14,212, 3,191,148,165,147,242,240, -197, 8, 46, 49,231,197,157, 57,123,218,205,167,114,125,142, 1, 3,139,201, 8,117,204, 13,155, 62,227, 97,126,126,202, 61,167, - 70,225,102, 39,225,203, 89,115,254,247,126,243,102,205, 20, 4,210,103, 34, 88, 69, 6, 43, 43,223, 12, 47, 23, 49, 12,249,106, - 60,186,113,194,168, 87,115,165,206,119,102, 51, 23,200,179, 50, 51,196,127,116,103,136,106, 85,218,241, 89,153, 25, 98,155,185, - 64, 94,246,171,142,131,171, 66,140,187,113, 41, 79, 58,190, 75,132,142,190, 89, 98, 33,247,164,159, 86, 81, 89, 80, 6,157, 68, - 82,119,164,100, 27,193,128,128,183,219, 96,179,154,161,205,207, 71, 74,106, 58, 50,210, 51,160,213,230, 65,174,244, 64,131,198, - 45,224,162,144,226,206,249,221, 32,132, 56, 53,175,161,149, 17, 6, 53,111,213, 94,114, 47,222,209, 23, 75, 42, 36, 56,178,115, - 73,182, 46, 63,179,189, 46,237,209,163,242,150,197, 54,187,253,116,248,253, 71,245, 43,250, 85,101,110, 71,107,176,109,195, 26, -152, 11, 35,155, 86,171, 29,247, 18, 11,144,150,163, 71, 98,204, 3,194,219,237,167,241, 31, 65, 80,114, 0, 16,130,224, 6,117, -209, 99,196,155,248,254,251,117,136,137,141,231, 23, 77,233,149,168,211,230,189, 81, 14,147,213, 13,133,115,109,232, 51, 34,191, - 49,120, 52, 79, 62,124, 43,135, 53,152, 73,169, 29,124,164,222,149,209,126,204,178,147, 6,109,142,216,110,210, 11,142,108, 27, -179,179, 56, 77,135,131,134,121,209, 39, 67,160,148, 9,192, 48, 12,138,154, 11,215, 46, 24, 15,185,196,209,182,108, 48,217, 48, - 98,218,114,108, 91,254, 49, 8,128, 97,131, 47,235, 75, 74, 39, 28,107, 23,126,232,135,235, 21, 19,226, 51, 83,186,245,253,228, -140,209, 34, 49,245, 25, 48,234,102,179,102,205,242,100, 50, 25,100, 50, 25, 92, 93, 93,225,225,225, 1,119,119,247, 50,207,221, -106,181,234,204,102,179,167, 88, 44, 6,207,243,136,139,139, 67, 92, 92, 28, 52, 26, 13,212,106, 53, 10,116,249,182,235,103,246, - 8, 26,180,238, 5,255,234, 13, 81,185, 86, 35, 8, 57, 6, 2, 1,139,243,135, 55,148,148,206,226, 77, 86,199,126,107,187,246, -127, 15,191,238, 95, 79,110, 92, 60, 50,209,144, 25,181,193,217, 60, 42,108,238,185, 51,112,224,192,134, 19, 38, 76, 16,205,153, - 62,225,228,209, 83,231,163,246,132,174,239,155,155,155, 23, 72, 8,129,187,155, 91,210,144,190,109,142,116,110,219, 60,225,204, -153, 51,252,206,157, 59, 77, 12,195,220, 45, 77,211, 81, 72,101,254,124,230,244,217,185,237, 59,118,194,198, 45, 59, 59, 70,220, -127,208, 49, 58,250, 17, 2, 43, 87, 71,213,106,181,160,103, 60,112,246,194, 37,232,242, 50,127,118, 38,157,207, 69,181,152,220, -220,220,223,135, 12, 25,210,227,242,229,203,236,144, 33, 67,244, 89, 89, 89,191, 61, 21,197, 34,101,105, 94,249, 97,128, 26,192, -207,149, 59,142,222,157, 98,201,251, 8,192,146, 74,149, 43,225,252,165, 43,184,114,249,218,186, 44,121,165,121, 99, 70,188, 59, -190, 74, 63,238,189,126,173,171,112, 42, 15, 57,118,172, 95,198, 29,190, 18,191, 60, 62,219,190,113,201,133,185, 11,156,201,163, - 39, 47, 14,173, 5,109,235, 86,128,213, 78,192, 19, 71,129,235, 34, 21,150, 84,240,190,160, 41, 48, 75,198, 76,156, 48, 33,186, - 65,112,227,169, 35,222,157, 40,106, 92, 61, 16,215, 31,231, 1, 12,131, 10,190, 10,164,165,165,225,226,222,245,182,220,148,135, -235, 56,142,159, 95,142,235,137,220,132,219, 53,159,218, 28,159,149,149,133,243,231,207,163,200, 96,121,123,123,151,100,180,158, -209,204,206, 72,253,109,193,183, 63,182, 29,247,206, 0,244,233, 84, 31, 23,110, 68,195, 92, 56, 95, 83,209, 80,242,216, 43, 63, -136, 63, 26, 82,221,252,254,192,218,249, 6,171, 56,254,203, 56,205, 69, 56,214, 96,229, 75, 72,167, 57, 39, 39,231,112,100,100, -100,187, 70,141, 26, 85, 57,118,236, 88, 78,196,181,147, 83,158, 78,196, 39,159,124,162,252,254,251,239,229,132,144,223,204,102, -115,140, 83,231,206, 98, 71,216,205,155,158, 22, 43,143, 75,215,238,212,237,218,182, 49,120, 2,220,184,113, 3, 27, 55,109, 52, -222, 13,191,189,180, 32,195,119,126, 41,230,165,216,235,105,127,181, 81,135, 79, 52,211, 82,226,151,254,122,116,239,182,230, 29, -251, 98,248,135,243,231,159, 63,186,115,110,211,246,125,216,186,205,123, 32,236,202, 89,156, 62,118,226,127, 22, 93,206, 92,148, -221,119,164,216,116, 74,100,242,201,245,154,118, 68, 98, 66, 60,226, 30,221,251,217,152,243, 56, 53, 33,154,251, 57, 53, 57, 97, - 98,181,250,109,113,249,228, 47, 83, 74, 49, 90,165,222,243,129,222,178,245,199, 66, 15, 15, 77, 78,254,193,183,192, 96,148, 16, - 66,140, 18,177, 32, 93,201,106,119,229, 59,157,206, 7, 22,117,106,149,129,131, 71, 76, 60,186,122,245, 10,161,143,187, 28,233, -185, 70,228, 27, 44,208,234, 45, 96, 25, 6, 53,253, 21,208,107,115,112, 97,239,183, 86,179, 46,119, 8, 16,109, 41, 73, 83,161, - 10, 90,152,251,248,236,135,159, 76, 58, 7,177, 91,160,127,213, 46,179, 74,141,214,105, 83,110,247,253,100,210,145, 32, 66, 72, - 87,133, 42, 72, 91,144, 25, 57,187,164,115,103, 24,199,243, 61,188,115, 32, 44, 54,199,252, 99, 54, 30,176,243,124, 97,148, 15, - 32, 79,218,243,153, 50,206,157,225,119, 29,253, 13,169, 25,121, 48,152,173, 48,153,109,176, 88,237, 96, 57, 14,238, 30,238,168, - 85,181, 9,220,220, 93,145,145,158,138, 43,103, 14, 35, 42,252,194,111, 12,193, 60,131,250,209, 25,103,242, 72, 36,115, 15,242, -243,247,101,211,242,205,144,137, 57,220,190,112,204, 98, 53,155,150, 58,105,178, 94,208,204,203,206, 89, 62,117,250,167,195,126, -218,188,197,183, 97, 53, 87, 36,103, 25,144,172, 54, 66,107,180, 22, 26, 49, 30, 38, 93, 22,194,207,110, 73,183, 27,181,203,241, - 31,161, 68,163,101,179, 24,181,251, 78, 92,247,156, 57,247, 91,238,113,116,140,117,225, 71,189,147, 13,186,252, 94,229,142,100, - 61,197, 79, 31, 84,251,229,207, 56,137, 23,154, 11, 9, 15,158, 16, 28,185,150,254,164,185,144, 47,236,121,121, 43,186,244,101, - 4,159, 94,187,176, 83,175, 41,191,134, 71,106,183, 27, 12, 25,110, 15, 31, 47,205, 5, 0,142,227,158,124,138,250,102, 25,141, - 70,115, 25, 77, 40, 91, 55,108,216, 48, 99,226,196,137,146,164,164, 36, 68, 71, 71, 35, 47, 47, 15, 82,169, 20, 39, 78,156,176, -130,183, 45, 13,191,124, 32, 46, 50,236,212, 87, 65,205,122, 84,108,216,186, 23,228,114, 5, 4,196,249,206,152,114, 85,237,161, -205, 58,246,251,174,235,155,227,112,250,192, 6,114,227,194,225, 73, 6,117,212,250,242, 94,203,188,188,188, 8, 0,143,150, 46, - 93,218,120,227,198,141,213,166, 79,159, 30,179,245,187,185,171, 1, 32, 59, 59, 27, 0,112,235,214, 45, 50,105,210, 36,147,209, -104,140,205,205,205, 13, 67, 25, 3, 32, 0,192,160,150,127,189,113,237,146, 6, 73, 41,105, 3,170, 55,104, 1,239,106, 45,224, - 91,179, 37,114,181, 22, 92,127,156,138,152, 7,103,240,224,210,222, 99,122,165,109, 46,202, 57,191,113,163, 70,141, 2, 89,150, -173,170,211,233,124,235,213,171,215, 72,161, 80,220,106,212,168, 81, 19,129, 64,144,124,243,230,205,248,242,104, 37, 92,216, 98, -170,220,113,244,170, 4,173, 75,231,152,116,125,147, 4,173,203, 45,189,196,237, 99,245,217, 85,166,159,184,128,229,196,146, 21, -177,103, 75,254,190, 29,235,151,113, 35,198,127, 98,191,167,241,248, 72, 32, 19,255, 90,190,112, 53,155,246,254,168,254,127, 76, -239, 80, 24,201, 42,252,217,169, 48,189, 70, 19,174, 1, 48, 35,252,190,240,187,123, 31, 77, 88, 16,220,188,237,200, 14,111, 12, - 97,109, 34, 37, 78, 30,248,129,196,134,159,221, 35, 32,246, 47, 12, 78,172, 6, 80,102,115,144,217,236,140,201,122, 49,141, 73, -138, 78,123,118,110, 26,189,239,192,254,197,111,246,235,239,185,246,203,183,241,237,143, 7,161,144, 73, 64,120, 30,111,119, 14, - 28,244,213,123,117,250, 6,250, 72, 3,246,157, 75,190,248,225,138,123, 51,244,122, 75,148, 19,145, 24,146,149,149,117, 73,169, - 84,170,219,181,107,215, 74, 34,145, 48, 89, 89, 89, 2,149, 74,101,115,115,115, 51, 39, 39, 39,235, 77, 38,211, 62, 0,229,154, -118,220, 98,229, 17,151, 97,196,161,253,251,112,231,218, 25, 60,120, 16,169,125,112,255,193, 26, 70, 64, 86, 20,100, 60,202, 1, -202, 93,193, 7, 95,236,168, 67, 82,238, 81,135,118,147,118,199,214,117, 11,187,232,141,166,209,141,218,244, 70,149,186,109, 89, -139,213,142,187, 55,206,225,220,222, 21,223, 90,116, 57, 51, 95, 37,143,253, 43, 86,171, 69, 56, 49,126, 63,127, 20,132,231,215, - 1, 0,225,249,117,183, 46, 31,155,216,178,215,123,168,160,170,210, 40, 47,241, 22,131,151,152, 61, 92, 36, 96, 11,142,239,251, -233, 64, 92, 92, 28, 30, 62,124,136,199,143, 31, 35, 39, 39, 7, 59,118,196,149, 43,127,244,185,241,191, 70,221,103,123,190,245, -246,240, 35,131,134,190, 35,173, 86,171, 33, 27, 84,209, 3,158, 74, 1, 34, 31,199, 35,234,102, 56, 31,121,253,152,209,146,159, -249,166, 33, 55,190, 68,227, 39,247,170,235, 3,216,103, 22,173, 93,216,186,117,219,160, 79, 23, 45,110,229,233,173, 42,182, 28, -207, 86,103,138, 63,251,240,112,208,149,171,191, 59,181,214, 33,111,183,103,143, 31, 61,132,231, 28, 11,133,226, 73,156,186,240, -234, 57, 42, 83,142,253,132,183,149, 25,193,127,119, 64,123,216,120, 30, 5, 6, 11,242, 11, 76,208,104,141, 72,203,204,198,157, -240,112, 92, 56,114, 24,209,145,119, 98,173,102,243, 41,150,101,246, 26, 50,162, 46,148,175,165, 73, 80,205,179, 66, 5,196,230, -232, 32, 21, 11, 16, 31,117,211, 84,144,175,217,254,178,247,145, 33,251, 81, 90, 38,199,244, 24, 50,100,232,137, 46, 61,251,185, - 53,111,211, 77,238,229,234, 14,145,128,224, 81, 92, 42,194,126, 59, 81, 16,115,231, 98,190,213,172, 11,121, 29,171,190,252,205, - 41,123,212,161,197, 84,208,119, 88,255,142,251, 57, 78, 32,230,121,155,201, 98, 54,189,245, 42, 38,235,207,130, 16,123,242,232, - 97, 3,158,169, 27,216,120, 34, 27, 54,248,164,225,233,186,130,213, 78,228,195, 6,255,166,119, 20, 32, 37,119,236,243,243,171, -208,187,104,237,194,132,132,236, 27, 57, 57,166,115, 0,146,141, 70,227, 75,167, 49, 35, 35, 99,193,162, 69,139,250,232,245,250, - 58,157, 58,117,146,184,186,186, 34, 59, 59, 27,167, 78,157,178,134,134,134,222,207,204,204,252, 10,200,180, 25,208,228,231,112, -227,129, 81,145, 55, 79,125, 85,167, 89,207,138, 13,219,244,114,190, 48,147,200,198,117,233, 55,150, 57,125,112, 3,185,126,254, -224,251, 6,245,163, 31, 95,225,178, 90,140, 70,227, 53,163,209,120,239,139, 47,190,104,238,227,227,227,243,213, 87, 95, 73,243, -243,243,133,107,215,174, 53,102,101,101,165,231,231,231, 95, 65, 41,253,105, 94,228,150, 85,147,130,129,199,247,109,232, 76,246, -109,232,238,238, 21,208,195,205,187, 98,141, 60,117, 74,172, 70,157,122, 10,192,233,194,137, 34,203, 69,227,198,141,171, 51, 12, - 51, 4, 64, 3,133, 66, 81, 83,169, 84, 74, 8, 33,117, 24,134,137,224,121, 62,188, 94,189,122,161,247,239,223, 47,215,100,178, - 9, 23,182,152, 2,131,218,238,204,209,243, 34, 51, 43,218,153,112, 97,139, 9, 0, 50,127,253, 84, 15,224,208,253, 78, 51, 6, - 30,190, 18,191, 58, 34,215,109,138,250,252,226,195,229, 77,179, 38,249, 78,205,215,117,255, 27,211,238, 39, 3, 24, 29,126, 19, -203,238,222,186, 50,135, 33, 16,218, 97, 91,104,200,124,124,243,117,232, 11,133, 66, 99, 64, 64, 64,177,163, 11, 37, 18,137,209, -100, 42, 45,128,114,193,166, 75,195, 70,160,227,150,253,187,183,140, 62,120,248,208,226, 14, 93,223,244,148, 86,172,136,170, 42, - 6, 91,102, 54,157,114,230,150,250,122,191, 79, 47,126, 31,147,106, 12, 71, 57,251,195,232,116,186, 40, 0,185, 58,157,174, 63, - 33, 36,137, 97,152,192,220,220,220,219, 86,171,245,110,185, 13, 1,143,225,173, 91,183,216,193, 48,140,128,216,248,111,174, 8, -185,157,198,180, 7,201,120,197,101, 73, 26, 86,117,197,180,175, 86, 53,173, 81,179,118,211,162,181, 14,235, 87,113,193,132, 25, -203,154, 86,169, 86,171,233, 31,235, 31,150,217, 77,128, 88,245,185, 99,246,111,250,230,226,173,171,231, 62,247,242,171, 82, 37, - 61, 57,230, 65,210,227,219, 11,236,198,252,253,175,154,207,113,143, 35, 86,108, 92, 58, 99,122, 90, 74,236, 70,189,250,209, 61, - 0,208,171, 31,221,123, 16,134, 47,179,210,147,167,103,103,198, 44,125,217,107, 81, 80, 80,144,186,125,251,118,247,182,109,219, -178, 62, 62, 62, 80,171,213, 56,119,238, 28,207,243,124, 74,185,181,114, 98,207, 21,228, 48, 21,126,254,241,187,111, 68, 10,151, - 94, 54,155,205,159, 16, 64, 32, 16,164,153,245,249, 39,180,172,226, 83,228,198, 27, 75,127,103,240, 12, 0,182,104,237, 66,158, -231,153,111, 86,111,137, 23, 74, 93,138,157, 12,209,106,212,202,121,158,119,122,173,195,188,196,176, 26,175,235,249,102, 8,153, -215,168, 89,171,207,173, 86,139,177,240,249, 48, 2, 48, 18,130,108,150,101, 46,112,188,245,100,254, 43, 84,166, 24, 6,174,132, - 17,192, 69, 38, 0, 3, 6, 58, 77, 14, 41, 79,159,172, 98, 13,113,102, 84,132, 62,179, 99,229,227,230,221,163,206,254,122,108, -176,221,110,175, 90, 24, 51,136, 51, 25, 10,246,232,210, 60,126, 6,110,218,240,239,231,104,145,217, 98,254,228,127,228, 84, 51, -202,223, 73, 51,168,154,172,127,197, 0,159, 81,113,241,153,215, 99,146,244, 63,227,217,101,117, 94, 37,157,156,143,143,207,151, - 12,195,140, 20,139,197, 74,179,217, 92, 64, 8,217,154,145,145,177, 0, 47, 44,254,219, 68, 40, 83, 25, 70,137,165,242,217, 22, - 99,193,239,250,204,168,225,101,157,187,220,187,118, 15,169, 66, 49,195,104, 40,216,170,207,136,218,242,154,175,167,155, 68, 34, -105,162, 84, 42,133, 89, 89, 89,215, 0,104,254, 78,249,222,168, 81,163, 74, 44,203, 86,229,121,222, 7,128, 27, 28,163, 66,178, - 4, 2, 65, 74, 97, 68,139,148, 87,179,221,187,123,188,186,118,175, 63,237,212,197,200,149,133,205,138, 79, 8, 24,180, 92, 58, -178, 87,231, 79,126,222,127,168,184, 81,135,255,184,123,254,255, 79,179,163, 64,233,151, 53,154, 21,187, 45,236, 26,100,212,103, -165,166, 76,186,116, 87,125, 13,128,246, 85,210, 41, 18,137, 70, 88, 44, 22,153, 72, 36, 50, 88, 44,150,237,127,151,115,151,169, -130,198,178, 32, 78,175, 76,193,131,185,249,220,160,149,127,203,189,196, 53,108,216,176,189, 72, 36,170,100,183,219,229,102,179, - 89,111, 48, 24,226,226,227,227,127, 71,201, 11,159,255,169,233, 84,168,106,173, 16,137, 36, 31, 1,128,197, 98, 90, 85,144,249, -104, 90,105,127, 88,202,241,255,232, 60,242,170,218,236,145,128, 19,122,163,112, 98,110,222,102, 83,103,196,222,168,245, 23,166, -147,242,146,153, 75, 53,169, 38,213,164,154,207,195,210,235, 73, 53,255, 74, 77,169, 95,221, 64,169, 95, 93,167, 39, 93, 46,225, -120,122, 61, 41, 69,140, 47,230, 3,192,137, 9, 75, 41, 20, 10,229, 79,128,167,151,128,242, 87, 98, 76,123,144,244,103, 30, 79, -249,207, 81, 98,159,104,166, 20, 87, 90,158,144,224,203, 56,219,211, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,207,105,150, -165,253, 79,108,146, 28,255,220,246, 81, 0,255, 47, 29,254,105, 88,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 53,158, - 24, 47,150, 94, 11, 10,133, 66,161, 80, 40,148, 63, 7,218, 71,139, 66,161, 80, 40, 20, 10,229,213, 40,174,233,144, 26, 45, 10, -133, 66,161, 80, 40,148,215, 64,137,157,225,105,211, 33,133, 66,161, 80, 40, 20,202,171, 81, 20,209,242,195,115,211, 59, 80,163, - 69,161, 80, 40, 20, 10,133,242,122, 72, 67,113,209,173,208,208, 80, 82,220,207, 20, 10,133, 66,161, 80, 40,255, 31,252,195,189, -200,211,145,172,241,133,219, 0,158,138,104, 81,131, 69,161, 80, 40, 20, 10,229,239, 98,182,254, 97, 20, 69,178,138, 62,105, 47, - 24,173, 62,125,250, 48,212,108, 81, 40, 20, 10,133, 66,249,171,248, 55,122, 17,246,249, 19,164,217, 76,161, 80, 40, 20, 10,229, -175, 52, 91,255,166,243,161,211, 59, 80, 40, 20, 10,133, 66,161,188, 26,126, 0,122, 63,181,253,255,182, 4, 15,133, 66,161, 80, - 40, 20,202,191,157,241, 37,109,211,136, 22,133, 66,161, 80, 40, 20,202,235, 55, 91, 20, 10,133, 66,161, 80, 40,148,127, 50,116, -101,115,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219, 41,154, 71, 11, 40,105, 30, 45, 10,133, 66,161, 80, 40, 20,202, 75, -209, 27,142,249,179,198, 23,126,247,166, 70,139, 66,161, 80, 40, 20, 10,229,245,242,194,242, 59,212,104, 81, 40, 20, 10,133, 66, -161,188, 94,131,181,158, 26, 45, 10,133, 66,161, 80, 40,148, 63, 25,106,180, 40, 20, 10,133, 66,161, 80,254, 36, 24,148, 60,114, -224,116, 57,116, 94,102,244,193,105,170, 73, 53,169, 38,213,164,154, 84,147,106,254,231, 52,203,210, 62,141,127, 30, 69, 51,195, - 31,197, 31, 29,225,215,255,127,252, 99, 58,244,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255,118,198, 63,247,253, 4,218, -116, 72,161, 80, 40, 20, 10,133,242,122,205, 22, 93,130,135, 66,161, 80, 40, 20, 10,229, 53, 81, 98, 51, 33,141,104, 81, 40, 20, - 10,133, 66,161,188, 26, 37, 46, 42, 77,141, 22,133, 66,161, 80, 40, 20,202,159, 99,184,168,209,162, 80, 40, 20, 10,133, 66,121, -141, 38,107,124,177,191, 13, 13, 13, 37,244, 26, 81, 40, 20, 10,133, 66,249,171,248,215,122,145,162, 19,163,102,139, 66,161, 80, - 40, 20, 10,245, 34,229,198, 15,127,140, 54, 28, 95,184, 13,128,142, 58,164, 80, 40, 20, 10,133, 66,121, 85,122,227,217,145,135, -227,139,182,169,209,162, 80, 40, 20, 10,133, 66,121,117,198,151,250, 91,218,108, 72,161, 80, 40, 20, 10,229,175,228,223,232, 69, - 24,154,173, 20, 10,133, 66,161, 80, 40,175, 68,113,209,172,245,244,178, 80, 40, 20, 10,133, 66,161,252,185,134,139, 66,161, 80, - 40, 20, 10,133,242,103,152,172, 63,123,194, 82,186,178, 57,213,164,154, 84,147,106, 82, 77,170, 73, 53,255, 43, 38,235,233, 41, - 30, 0,208, 81,135, 20, 10,133, 66,161, 80, 40,175, 10, 93, 84,154, 66,161, 80, 40, 20, 10,229, 79,130, 46, 42, 77,161, 80, 40, - 20, 10,133,242,255,108,184,168,209,162, 80, 40, 20, 10,133, 66,121,141, 38,235, 25,179, 69,251,104, 81, 40, 20, 10,133, 66,161, -188, 26, 37,246,209, 98, 80,242,200,129,211,229,248, 7, 47, 51,250,224, 52,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,115, -154,101,105,159,198, 63,159,241,248,127,154,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 13, 58,189, 3, -133, 66,161, 80, 40, 20,202,235, 54, 86,207, 67,141, 22,133, 66,161, 80, 40, 20,202,171, 65,231,209,162, 80, 40, 20, 10,133, 66, -249,147,240,131, 35,170, 85,244,221,132, 26, 45, 10,133, 66,161, 80, 40,148,215, 67,111, 56,162, 90, 69,223,212,104, 81, 40, 20, - 10,133, 66,161,188, 70,138,157, 71,139, 1,128,208,208, 80, 82,184,221,169, 79,159, 62, 23,232,181,162, 80, 40, 20, 10,133,242, -255,201,191,213,139, 60,137,104,245,233,211,135, 1,112,158,102, 53,133, 66,161, 80, 40,148,191,130,127,163, 23, 97,159,115,146, -157,104, 54, 83, 40, 20, 10,133, 66,249, 43,248, 55,122, 17,193,115, 46,146, 66,161, 80, 40, 20, 10,229, 47,225, 31,236, 69,252, -224,232, 8,127,180,240, 27, 40,156,242,129,206,163, 69,161, 80, 40, 20, 10,133,242,106, 20,141, 54,124, 97,233, 29, 26,197,162, - 80, 40, 20, 10,133, 66,121, 53,138,155, 25,126, 61,189, 44, 20, 10,133, 66,161, 80, 40,127, 34, 52,162, 69,161, 80, 40, 20, 10, -133,242,234, 60, 29,213,250,127,139,102,209,149,205,169, 38,213,164,154, 84,147,106, 82, 77,170,249, 95, 50, 89,207,108,211,153, -225, 41, 20, 10,133, 66,161, 80,254, 36,232,168, 67, 10,133, 66,161, 80, 40,148, 87,163,104,196,225,211,219,212,104, 81, 40, 20, - 10,133, 66,161,188, 70,179,245, 2,180,233,144, 66,161, 80, 40, 20, 10,229,213, 24, 95,210, 47,168,209,162, 80, 40, 20, 10,133, - 66,249,147, 12, 23,131,146, 71, 14,156, 46,135,240,203,140, 62, 56, 77, 53,169, 38,213,164,154, 84,147,106, 82,205,255,156,102, - 89,218,167,241,207,227, 47,155,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 22,218,116, 72,161, 80, 40, - 20, 10,133,242, 55, 48, 90,222, 2,129,224,115,153, 76,246,189, 76, 38,251, 81, 32, 16, 44, 5,224, 81,222,127,168, 80, 40,166, -248,250,250, 62,244,245,245, 77,174, 84,169,210, 49, 23, 23,249,212,234, 18,116, 0, 32,124, 77,231, 19, 4, 96,170, 76, 38,123, - 32,149, 74,227, 1,108, 3, 48, 21,128,215,171, 8, 47,240,199, 91,247, 62,234,127,112,129, 63,222,122,238, 87,189,125,124,124, - 46, 1,232,241,186, 50,101,168, 28,221, 6, 41,144, 56, 72,129,196,161,242,151,175, 53,184,184,184,140,244,243,243,187,226,233, -233,153,226,231,231,247,155, 84, 42, 29, 84, 78, 9,149,143,143,207,183,129,129,129, 81,254,254,254, 43,225, 88,157,252,111, 75, -123, 9,218,183,146, 64,221, 90, 12,109, 91, 49,190,111, 45, 70,247,238,128,252, 37,229,218, 1,216,235,234,234,122, 91, 32, 16, -132, 2, 24, 88,120,127, 13, 20, 8, 4,161,174,174,174,183, 1,236, 45, 60,238,101,238,211,111, 1,164, 0,248,186,112,123,114, - 96, 96,160, 54, 56, 56, 56, 62, 56, 56,248,167,154, 53,107,190,227,172,152, 92, 46,239, 30, 24, 24,184,175, 82,165, 74,241,173, - 91,183,206, 9, 8, 8,136,172, 88,177,226, 22,137, 68,210,137, 22,113, 20, 10,133,242,247,167, 47,128,197, 0,214,132,135,135, -135, 17, 66,194, 8, 33, 97,225,225,225, 97, 0,190, 7,176, 4, 37,135, 16,159,217,239,233,233, 57,111,225,194,133,198,180,180, - 52,162, 86,171, 73, 84, 84, 20, 89, 49,123, 6,223,179,130,128, 84,247,246,208,251,249,249, 69, 87,174, 88,241,151,250, 74,118, - 6,128, 26,206,104, 62,133,135, 76, 38,187, 54,123,246,108,221,165, 75,151,116,102,179, 89,199,243,188, 46, 53, 53, 85,119,250, -244,105, 93,219,182,109,117, 0,166, 1,224,202,161,249,132,249,254,184, 64, 54,125, 73,230,251,227,194,211,251,235,212,169,115, -159,231,121,242,214, 91,111,153, 0, 4,148, 71,243,121, 2, 0,105,125, 87,184, 15, 82, 34,195,182,101, 1, 33,107,167,147, 65, - 10, 36,190,140,166, 74,165, 58, 52,101,202,148,252,148,148, 20, 98, 50,153, 72, 98, 98, 34,153, 48, 97,130, 70,165, 82,109,119, -242,220, 61, 27, 54,108,152,113,229,202, 21, 62, 47, 47,143,156, 63,127,158,111,208,160, 65,134,147,102,171,219,115,105, 89,239, -239,239,127,172, 60, 31,149, 74,181,177,188,121,212, 82,130, 68, 75,216, 57, 66,110,156, 34,135,223,106, 77, 86, 52,171, 72, 6, - 86, 16,231,181, 19, 99,114,199,226,167, 50, 41, 73,115,112,199,142, 29, 11,238,222,189,107,207,206,206, 38,247,239,223,231,199, -141, 27,103, 4, 16, 49,110,220, 56,227,253,251,247,249,236,236,108,114,247,238, 93,123,199,142, 29, 11, 0,188, 87,142,116,178, - 0, 54,207,157, 59,151, 16, 66,200,194,133, 11, 73,112,112, 48,233,210,165, 11,209,233,116,132, 16, 18, 79, 8,249,201,102,179, -141,118, 70,211,205,205,109,228,148, 41, 83,116,122,189,158, 20,193,243, 60,201,203,203, 35,107,214,172, 41,240,245,245, 61, 86, - 66, 37,131, 54,121, 80, 77,170, 73, 53,255,110,154,255,100,252,224,232,167, 85,244,113, 58, 48, 49,108,198,140, 25, 69,166,234, -120,187,118,237,174,143, 30, 61, 58,108,244,232,209, 97,237,218,181, 59, 15,224,228,205,155, 55,195, 62,251,236,179, 48, 0,195, -202,200, 8,143, 54,109,218,228,165,167,167,147, 90,181,106,145, 42, 85,170,144,244,244,116, 66, 8, 33, 55, 6, 55, 37,103,234, -130, 36, 93, 60, 78, 78, 29,216, 75,198,249, 9, 72,123, 63, 55,171,159,175,111,182,151,151,215, 34, 60,187, 38, 99,113,153, 59, -160,110,221,186,218,136,136, 8,221,163, 71,143,116,243,230,205,211,117,233,210, 69,215,176, 97, 67,221,192,129, 3,117,171, 87, -175,214, 89, 44, 22,221,198,141, 27,117,174,174,174, 17,197,152,173,151, 54, 90, 2,129, 96, 85,120,120, 56,137,142,142, 38,133, - 81,138,146, 52,221,220,221,221, 67, 60, 60, 60,166,185,187,187,135, 0,112, 3,128, 90,128,178,145, 27, 42, 77,110, 84,189, 78, -232,176,110, 53,214,116,107,222,116,144, 11,155,103,253,110, 58, 33,111, 85,122, 41,163,229,230,230, 54,114,234,212,169, 90,147, -201, 68,244,122, 61,209,233,116, 68,175,215, 19,173, 86, 75,134, 13, 27,150, 47,149, 74, 7,148,165,233,229,229,181,224,226,197, -139,182,244,244,116,114,241,226, 69,114,236,216, 49,178,118,237, 90, 94,165, 82, 45, 47,239, 3,232,235,235,251,235,169, 83,167, -194,110,221,186, 21,118,237,218,181, 48,171,213, 26,102,177, 88,194, 44, 22, 75, 88,104,104,104,216,254,253,251,195,118,237,218, - 21,102, 54,155,195,204,102,115,152,201,100, 10,171, 86,173,218,137,242,230, 81, 11, 9,146,204,151, 14, 19,178,252, 3,162,249, -223, 36,146,247,113, 47,146, 57,161, 3,249,190,121, 69,210, 65,134, 35,120,113,109,207, 98, 53,133, 66,225,133,248,248,120,126, -214,172, 89,230,122,245,234,105,198,140, 25, 99, 52,153, 76,132, 16, 66, 76, 38, 19, 25, 51,102,140,177, 94,189,122,154, 89,179, -102,153,227,226,226,120,129, 64,112,186, 28,233, 92, 82,100,178, 46, 92,184, 64,158, 70,167,211,145, 46, 93,186,196, 7, 7, 7, -255, 84,181,106,213,225,101,105, 42,149,202,254, 51,103,206,212,145, 98,176, 90,173, 68,171,213,146,184,184, 56,190, 74,149, 42, -169, 0, 60,105, 97, 78, 53,169, 38,213,164, 70,235, 79, 99,124, 25,219,197, 95,196,207, 62,251, 44,140, 16, 18,246,197, 23, 95, -132, 21, 70,182, 68, 0,148,133, 31, 1,128,161, 51,103,206, 12, 35,132,132,205,152, 49,163,232,152,146, 50,162,239,158, 61,123, - 44, 43, 87,174, 36, 62, 62, 62,196,215,215,151,172, 90,181,138,240, 60, 79,210, 67,183,147, 51,117, 65, 30,124, 62,138, 16, 66, - 72,212,162, 15,201,153,186, 32, 49,235,230,147, 17, 35, 70,232,229,114,249,176, 82, 50,183, 66,211,166, 77,181, 6,131, 65,183, -101,203, 22,157, 92, 46,191, 1,160, 30, 28, 77,145, 76, 97, 90,223,169, 87,175, 94,254,189,123,247,116, 59,119,238,212, 1,152, -231,228, 13, 83, 3, 64,103,133, 66, 49,112,102,128,240, 17,217,244, 37,153,233,131,187, 0, 26, 0,240, 46, 60,198,127,198,140, - 25,132, 16, 66, 2, 3, 3, 47,150,160,233,214,176, 97,195, 25,143, 30, 61,154, 99,181, 90,231,220,186,117,107, 78,237,218,181, -103,245,171,230,215,250,224,176,238, 77, 52,243, 39, 53, 33,203, 62,110,184,244,141, 22,221,126, 25,210,105,216,187, 85,189, 46, -141, 81, 73,245,111,187,113,218,231,154, 14,157,186,177, 3, 2, 2,174, 37, 38, 38, 62, 49, 87, 90,173,150,164,164,164,144,216, -216, 88,114,233,210, 37,226,231,231,119,166, 44, 77, 95, 95,223,251,137,137,137,100,221,138, 21,228,173, 6,117, 72, 7,119, 23, -210,209,195,133, 52, 83, 74, 11,234, 2,205,202,107,180,110,223,190, 29, 6, 32, 12, 64, 88,118,118,118, 88,118,118,118, 88,110, -110,238,147,125, 0,194, 52, 26, 77,152, 70,163, 9, 51,155,205, 97,213,171, 87, 47,183,209,106, 43, 69,219,150, 82,228,180,150, -192,208, 55,192, 43,117, 82, 53, 47,251,213, 97,173, 73,238, 7, 93,200,202, 38, 1,164,157, 24,147,157,212,236, 43, 22,139,207, - 3,152, 94,104,202, 71,133,132,132,232, 9, 33, 36, 36, 36, 68, 15, 96, 84,225,254,169,133, 38, 43,196,201,116,178, 53,107,214, - 44, 40,138,100, 1,248,189,102,205,154, 5,193,193,193, 36, 56, 56,152, 4, 6, 6,106, 11,181,157, 42,208,106,212,168, 17,101, - 48, 24,158, 24,192,188,188, 60,146,154,154, 74, 98, 98, 98, 72, 68, 68, 4,185,113,227, 6,137,143,143, 39,187,119,239,182,187, -187,187, 31,165,133, 57,213,164,154, 84,147, 26,173, 63,213,104, 61,255,121,150,208,208, 80,242,220,174,255,221,188,121, 51,108, -230,204,153, 97,101, 56,179,241, 95,124,241, 69, 81,212,107,113, 41, 47,255,141, 81, 81, 81,100,212,168, 81, 36, 40, 40,136, 4, - 5, 5,145,209,163, 71, 19,141, 70, 67,116,143,239,145, 51,117, 65,110,188,221,140, 16, 66,254,143,189,239, 14,139,226,106,223, -190,103, 59,236, 46,236,210,151,174, 82, 4, 11, 40, 26, 53, 22,236, 45, 98, 39,118,141, 61,150, 87,163, 49,198, 22, 1,163,198, - 18,123, 76, 52,177, 69, 52, 22, 36,138,216,177, 97, 87, 64, 16, 20, 1, 65,154,148,165, 45, 91,128, 93,182,156,239, 15,132, 16, - 67, 53,121,127,223,155,100,238,235,218,107, 97,231,204, 61,231,204,156, 51,115,207,115,158,243, 60, 68,241, 34,134, 92,111, 3, - 18, 61,185, 59,137,141,141, 37, 14, 14, 14, 87, 27, 56,254,249,123,247,238, 21, 28, 59,118, 44, 15, 85,254, 88,108, 0,221, 0, -236, 50, 54, 54, 62,132,170,233,194, 22, 0,204,220,221,221,139,203,202,202,148, 99,199,142, 85, 2,112,106,128,179,183,135,135, -199,171, 3, 7, 14, 16,169, 84, 74,138,139,139,201,150, 30,173, 9, 57,248, 21, 89,223,185,133,225,135, 31,126, 80, 47, 91,182, - 76,101,110,110, 30, 14,192,110,236,216,177, 58, 66, 8,241,245,245,205,175,139, 76, 44, 22, 15, 73, 78, 78, 14,168,168,168, 8, -144,201,100, 1,197,197,197, 1, 97,103,207, 6, 12,110,223,122, 90,233,186,121, 62,103, 39, 14,244, 25,106,111, 54,102,251,160, - 15, 62,125,179,114,214,216,213,221,219,190,168,216,180,248,230,199,173,108,182,190,207,213,182,178,178,202, 85,171,213, 4,192, - 31, 62,175, 94,189, 34, 22, 22, 22,153,141,113,152,155,155,175,254,108,194,120,253,232, 22,246,228,213,206, 53, 68,123,237, 23, -162,189,120,132,164,108, 94, 74, 70, 72, 44,229,221, 56,140, 21, 77,173,143, 68, 34,185,246,232,209,163,223, 9,173,146,146,146, - 58,133,150, 92, 46,143,214,104, 52,209,110,110,110,151,255,108,175,239,198,133, 75,111, 99,230,147,152,105,189, 72,193,188,126, -100,136,136,157,254, 39,232, 38, 0,184, 5, 96,114, 51,247, 99, 0,216, 84, 45,168, 54,111,222, 76, 8, 33,196,205,205, 77,133, - 63,183, 24, 69,228,233,233,153, 54,107,214, 44, 93,155, 54,109,164, 61,122,244,144, 61,126,252,152,220,190,125,155, 92,188,120, -145,132,132,132,144,248,248,120,242,230,205, 27,146,148,148, 68,134, 13, 27, 38, 3,208,155,190, 23,210,160, 65,227,127, 25,117, -104,145,191, 61, 24,213, 13,243,243,243,163,106, 53, 80, 4,192,168,115,231,206, 5,155, 54,109,218,134,170, 88, 16,148, 23, 19, - 31,247, 51,102,197,246, 51,102,197,122, 49,241,241, 91,139,209,143, 27, 54,108,248,218,219,219, 59, 23,128, 49, 0, 73, 93, 7, - 34,132,244,178,176,176, 64,102,102, 38, 68, 34, 17, 68, 34, 17, 50, 51, 51, 65, 8,129,142, 0, 90, 2,168, 43, 43, 81, 94, 94, -142, 10, 3, 65,185, 1,144, 43,149,144, 72, 36,168,172,172,116,169,167,254, 29,198,141, 27,231,226,229,229, 85,176,124,249,242, - 28, 84,249,202, 28,154, 57,115,230,181,251,247,226,190,220,164, 0, 0, 32, 0, 73, 68, 65, 84,239,123, 41,149,202,226,132,132, -132,138,246,237,219, 15, 1, 32, 73, 78, 78,158,178,103,207, 30, 76,155, 54, 13, 13, 60,116,218, 15, 27, 54,236, 98,124,124,188, -203,228,201,147,113,235,214, 45,108,217,178, 5,133,133,133, 4, 0,212,106, 53,209,235,245,149,221,187,119,175,220,185,115,103, - 23, 95, 95,223, 71,173, 90,181, 98, 2, 64, 90, 90, 90, 74, 93,132, 20, 69,181,118,118,118,134, 90,173, 70, 65, 65, 1,226,227, -227, 97, 34, 18, 33, 46,167,208,166,207,246, 31,138, 86,157,189,198,158,208,197,203,124,201,192, 30,234,141, 87,111,185,183,181, -179,177,209, 84,106, 37, 73,185,249, 57,239,115, 81, 57, 28, 78,102, 97, 97, 33, 52, 26, 13,202,203,203, 33,151,203, 81, 84, 84, -132,194,194, 66,228,228,228,128,195,225,188,106,140,195,180,184, 56, 50,237,222,109,234,212,190,205,112,209, 21,131,117,102, 23, - 88,231,190,135,171,166, 0,251,215,204, 53,209, 88, 88, 5,154,154,152,148,136,197,226, 31, 1,184, 53,198,231,227,227,131,162, -162, 34, 20, 21, 21,193,194,194, 2,102,102,102, 48, 51, 51,131, 76, 38, 67,105,105, 41,228,114, 57,220,221,221,209,161, 67, 7, - 28, 61,122,244, 47,233,220, 15, 53, 72,213, 65, 63,239,218,203, 28,112, 4, 2,180, 50, 19, 58,127, 32,132,121, 3,187,244, 99, -179,217,167,205,205,205,175, 2, 88, 0, 64, 0, 96,129,185,185,249, 85, 54,155, 61, 10,192,122, 0,199,154, 89,141,141,129,129, -129, 95, 38, 39, 39,243, 99, 99, 99,177,124,249,114, 4, 5, 5, 33, 37, 37,229, 59, 0,134,183,101,230, 91, 88, 88,132, 51, 24, -140,159, 0,124, 4, 96,136,173,173,109,255, 70,120, 71, 45, 91,182,172,162, 83,167, 78, 73, 47, 94,188, 24,117,239,222,189,206, - 75,151, 46, 45,205,200,200, 64, 82, 82, 18,108,109,109,225,232,232, 8,165, 82,137,146,146, 18,140, 26, 53, 74,100,106,106, 58, -145,190,141,211,160, 65,227,127, 89,100,189,163, 69,254,110, 22,173, 58,255,175,243,141,154,207,231, 7, 70, 71, 71,127,232,237, -237,205, 2,112, 10, 0,188,152,240, 31,213,189,227,161,179, 63,110,246, 14,221,185,198,123,176,183,251, 33, 47, 38,170, 87,177, -133,119,238,220,217, 44, 58, 58,186, 59,143,199,251, 79, 61,149, 32, 0, 96,102,102, 6,145, 72, 4,177, 88, 12, 51, 51, 51, 24, - 12, 6, 40,203, 42,160,210, 3,138, 10, 13, 74, 75, 75,161,120,251,191, 82, 93, 9,149, 74, 85,179,111, 29,232, 51,107,214,172, -130, 61,123,246, 72,115,115,115, 55, 3,104, 63,109,218,180,145,187,119,239,198,141, 27, 55, 42, 62,242,112,181,216,208,171,227, -215,109,115, 83, 2, 60,216,152, 13, 32, 50, 50, 50, 18,221,187,119, 7, 69, 81,227,235, 34, 52, 54, 54,254,254,196,137, 19,198, - 9, 9, 9,112,117,117, 77, 24, 63,126,252,199,155, 55,111,118, 17, 40,139,239, 2,128,174, 40, 47, 97,225,194,133, 95,109,216, -176,161,160,160,160,160,178,172,172,204,122,196,136, 17,200,204,204,196,155, 55,111,238,215, 35, 50,147, 98, 98, 98, 72,105,105, - 41, 82, 83, 83, 17, 19, 19, 99,252,213, 87, 95,117,209, 51, 24, 35,179, 97, 50,125, 90,143,206, 93, 38,119,235,136, 99, 15, 98, - 57,119, 94,166,137, 59,183,176, 55,123,154,149,219, 82, 75,225,213,251, 92,109,133, 66,177,235,235,175,191, 86, 42,149, 74,100, -103,103,227,217,179,103,120,241,226, 5,210,211,211,177,101,203, 22,101,113,113,241,238,198, 56,236,140, 88,159,111, 93, 58,147, - 98, 61,191, 15,196,222, 6,202, 20, 64,185, 18,234,196,104, 28, 78,204,195,222, 51,191,114, 51, 50, 51,197, 39, 79,158,156,229, -228,228, 20, 13,192,189, 33, 62, 66,170, 46, 33,131,193,120, 87,132,130,193, 96, 40, 0,228, 9, 4,130, 44, 19, 19,147, 44, 6, -131,145, 71, 8, 81,253, 37,111, 18, 58, 84,130,201, 4,184,198, 96,176, 27, 76,237,249,241,248,241,227, 79,100,101,101, 13, 78, - 77, 77,253,112,247,238,221, 95, 27, 25, 25,197,237,222,189,251,235,212,212,212, 15,179,178,178, 6,143, 31, 63,254, 4,128,169, -205, 57,190,155,155,219,194,128,128, 0,108,217,178, 5, 29, 58,116,128,187,187,123, 89, 96, 96,224, 46, 0,107, 0,252,199,205, -205,237,238,194,133, 11,103, 72,165, 82, 73,118,118,118,135,239,190,251,110,238,174, 93,187, 62,200,201,201, 49,106,132,186,231, -160, 65,131,112,233,210, 37, 0,200, 5,144, 90, 84, 84,164,203,201,201,129,167,167, 39,186,116,233, 2,165, 82, 9,165, 82, 9, -153, 76, 6,103,103,103, 24, 12,134, 15,233, 91, 57, 13, 26, 52,104,252,159, 10,174,186,133,150,145,145,145,153,143,143, 15, 90, -181,106,101,134,183,171,181, 44,184,172,149, 75,102, 77,224, 11,163, 47,131,138,185,142,241,189,218,241, 45,184,172,149,111,119, - 97, 57, 59, 59,243,124,124,124, 32, 16, 8,236,235, 57,248,173,188,188, 60,248,248,248, 64, 44, 22, 67, 36, 18,193,199,199, 7, -149,149,149, 40, 85, 40,160,210, 3,101, 90, 3, 74, 75, 75, 81, 92,144,143, 50, 61,160, 51,177, 64,122,122, 58,152, 76,102, 90, - 61,156,182,174,174,174, 5,113,113,113, 5, 0, 34, 1,124, 26, 20, 20,132, 21, 43, 86, 96,237,218,181, 39,248,185,175, 7,157, -184,116,206,226,120,224,124, 43,119, 46, 53, 1, 64,101, 86, 86, 22,196, 98, 49, 4, 2, 65,157,194,192,215,215,183,147, 64, 32, -192,145, 35, 71, 72,118,118,118, 15, 84, 45,225, 79,163,168, 42,177,103,204, 64, 41,128, 93,209,209,209, 93,191,250,234,171,151, - 3, 6, 12, 96,119,235,214, 13,235,215,175, 7,128,240,186, 56,101, 50,217,195,169, 83,167,106,110,222,188,137,196,196, 68,193, -217,179,103,253,215,175, 95,223, 46, 35, 35,131,119,254,226,229,161,193, 89,114,255,205, 87,239, 24,109,184,114,235,161,165,169, -160,109, 75, 75,115,196,100,188,225,232,153,120,220,216, 21,237,202,102,206,234, 99,196,138,233,197, 99,228,246, 49, 98, 69,127, -192,102,206, 84, 40, 20, 39,195,194,194,174, 44, 93,186, 84, 41,149, 74, 97, 98, 98,130,162,162, 34,108,220,184, 81, 25, 19, 19, -115, 70,163,209,156,111,140, 87,111, 32,157, 28, 91, 56, 1,175,226,106,126,171, 52, 16, 60,214,112,224,247,233, 98,120,120,122, - 66,163,209,160,125,251,246, 84, 80, 80,144, 64, 36, 18,125,209,168,232, 97,252,161,187,233, 40,138,202, 35,132,188, 81, 42,149, -217,198,198,198, 25, 28, 14, 39,163,184,184, 56,155, 16,146,255, 87,232, 44,194,192,231,221,219,187, 1, 60, 99,100, 20, 41,115, -158, 40, 81, 92, 87, 65, 19, 19,147,153,123,247,238, 53, 58,120,240,160,118,225,194,133,234,185,115,231,178,203,203,203,173,231, -206,157,203, 94,184,112,161,250,224,193,131,218,189,123,247, 26, 9,133,194, 49,239, 83, 17,173, 86,139,184,184,184,205, 41, 41, - 41, 2, 84,133, 27, 89, 28, 24, 24, 56, 45, 57, 57,217,104,207,158, 61, 8, 9, 9, 65, 72, 72, 8, 70,142, 28,137, 69,139, 22, - 33, 32, 32,160, 33, 58,190,183,183,183,143,133,133, 5,110,223,190,157, 3, 32, 3, 64, 39,161, 80,104, 50,114,228, 72, 12, 30, - 60, 24, 21, 21, 21,168,172,172,172, 17, 90, 76, 38, 19, 98,177,216,130,190, 7,210,160, 65,131,198,127, 93,100,253, 78,108,177, - 0,160,218, 84,231,231,231, 71, 53,244, 96,212,151, 72, 33, 83,149, 33,189,180, 12,153, 37,134,223,109, 51, 24, 12, 13, 30, 61, - 39, 39,231,252,131, 7, 15,102,250,248,248,176,114,114,170,102,196,124,124,124, 80, 86, 86,134,156,216, 71, 80, 25, 0,129,171, - 23, 84, 42, 21, 74, 94, 60,133,208,251, 67, 88, 12,155,140,237,123,246,168,139,138,138,246,213,197,201,229,114,217, 14, 14, 14, - 5,105,105,105, 58, 0,197, 34,145,104,144,147,147, 19,110,221,186, 5, 0,199, 8,176, 21, 49, 55,129,219,161, 32, 85, 38, 21, -161,179,179, 51,164, 82, 41,148, 74,229,173,186, 56, 31, 60,120,144,172,213,106,219,143, 24, 49,130,250,249,231,159, 79,201,229, -242,181, 0,158,169, 13, 96,198,102,229, 67,165,135, 17,128,129,102,102,102,159, 5, 4, 4,244, 95,184,112, 33,194,194,194,112, -245,234,213, 74, 84,249,130, 61,168,131,182, 52, 53, 53,117,255,178,101,203,186, 49, 24,140, 79,175, 93,187,166,115,119,119,151, - 87, 86, 86,234, 91,123,120, 48,214, 6,173,227, 44,248,116,142,184,168, 12,207, 7,183,182,237, 78, 81,192,243, 55,210,140, 20, - 37,138, 26, 58,167,190, 92,102,248,168, 30,222,190, 51,199, 15, 23, 10, 92,219, 66, 21,255, 72,178,255,244,197,237,198, 49,201, -126,183,165,210,145, 97, 97, 97,254,183,110,221, 90,160,209,104, 90,241,120,188, 87, 50,153,108,167, 82,169,108, 84,100, 49,153, -204, 97,106, 91, 7, 51, 89,113, 49,140,222, 90,162,228, 90, 3, 10,213, 58, 36,138,221, 49,209,193,177,102, 26, 52, 47, 47, 15, - 18,137,132,210,235,245,195, 27,226,188,122,245, 42,252,252,252,170,133, 39, 40,138, 2, 69, 81,133, 30, 30, 30,249, 60, 30,175, -136,195,225,200,183,110,221, 90, 81, 81, 81, 1, 22,139,101,164,215,235,153,127,166,183,119,225,195,154, 71,168,239,231,142,232, - 59,160, 67, 91, 79, 18,249, 36,150, 42, 41,171, 56,220,128, 21,240, 59, 55, 55, 55, 86,113,113,241,121, 0,137, 90,173,246,248, -169, 83,167,140,166, 76,153, 82,113,250,244,233, 73, 0, 92,182,109,219,230,175, 84, 42,155,149, 82, 33, 37, 37,229,187, 13, 27, - 54,124,185,122,245,106, 28, 61,122,116, 97, 74, 74,202,138,183,150,174,145, 1, 1, 1,216,186,117, 43,142, 30, 61,106, 72, 76, - 76,188,104, 48, 24, 82,150, 46, 93,234,109, 99, 99, 83,152,155,155,155,210, 0,109,231, 33, 67,134,168,239,222,189,203, 85, 40, - 20,119, 0,124, 54,111,222,188, 89, 93,187,118,149,143, 31, 63, 94, 88, 92, 92, 44,227,243,249,220, 3, 7, 14,152,177, 88, 44, -168, 84, 42, 80, 20, 5,133, 66,161,161,239,131, 52,104,208,248, 95, 69,125, 90,228,111,130,122,159, 13,172,186, 26, 88, 86, 86, -150,159,153,153,233,249,230,205, 27, 29, 0, 29, 0, 20,105,116,223,108, 56, 16,122,112, 76, 55, 55, 65,174, 86,139,179, 79, 18, -202,138, 52,186,106,231,119,221,155, 55,111, 20, 25, 25, 25, 38,229,229,229,202,122,142,117,255,251,239,191, 47,191,121,243,166, - 73,106,106, 42,244,122, 61, 58,117,234,132,164,164, 36,148, 36,198, 65,224,217, 9,130,222,126, 72,136,126,130,152,171, 17,120, -173,212,232, 94,174,217, 80,170, 84,169, 2, 42, 43, 43,207,214, 69,200,102,179,139, 1, 16, 66,136, 30, 0,228,114,249, 51,165, - 82,217,203,198,198, 6,207,159, 63, 23,168,244, 88,228,191,114,251,110, 66,136,158, 83,181,154,107,201,248,241,227, 17, 21, 21, - 5, 0, 81,117,113,202,229,242,133,179,103,207,190,121,228,200, 17, 86,106,106,234,224,131, 7, 15, 14,126,249,242, 37,161,138, - 51,245,119,203,216,112,153,182,232,131, 31,156, 61,174,250,249,249,193,214,214, 22, 7, 14, 28,192,206,157, 59,181,243,231,207, - 79,222,185,115,231, 7, 82,169,244,120, 61,237, 47,149,201,100,151, 45, 44, 44, 22,180,107,215, 78,161, 82,169, 80, 84, 84,132, -156,156, 28,152, 91, 88, 48,116, 96,116,183, 18,139,143,159,207, 83, 8, 88,151, 31,226, 81,118,110,131,214,172,110,108,230,212, - 49,190, 29,125,255,179,122,165, 16,119,207,130,154, 29, 0,114,240,107, 44,254,196,223,164, 66,125,188,183, 42, 54,125, 74,180, - 92, 30, 44,151,203, 67,154,217, 89,134,116,239,222,253,196,134, 13, 27,140, 87,109,217,128,109,158,246,208, 21, 21,161, 64,173, - 71,161, 90, 7,121, 73, 34,158, 63, 79,128,133,133, 37, 94,191,126,141,138,138, 10,188,120,241,130, 48,153,204,243,141, 89,116, -170, 81,107,186, 80,198,227,241,138,216,108,118, 62,139,197, 42, 78, 77, 77, 85, 85, 84, 84,128,193, 96, 8,244,122,189,113, 19, -234,234, 96,105,105,185, 20, 85,193, 68,195, 20,133,133,187,124,216, 16,131,133, 62,206,150, 22, 67,215,204,157, 98,233,100,103, - 45, 75, 77,126,165,221,119,229, 94, 97,133,186,254,197, 26, 0,194,139,139,139,107, 44,146,167, 79,159, 94,124,250,244,233, 89, - 0, 14,161, 42,239, 86,132, 76, 38,251,225, 61, 6,223,154, 51,103,206,124,185,122,245,106, 24, 27, 27,215, 4, 79, 53, 54, 54, - 54, 2,128, 95,126,249, 5,207,159, 63,239,138,183,254, 90, 6,131,225, 68,110,110,110, 99,156, 46, 94, 94, 94,169,161,161,161, - 92, 0,118,243,230,205,251,112,247,238,221,248,228,147, 79, 10, 18, 18, 18,186, 1, 72, 3,224,242,233,167,159, 62, 62,122,244, -168,153,193, 96, 64, 73, 73, 9, 52, 26, 77, 26,125, 43,167, 65,131, 6, 45,182,254, 43,240, 1, 16,131,170,248, 89,195, 0, 92, - 64,149, 91, 71,189,112,124,171,206,174, 0, 24, 81,253,124,172,199, 25, 30,168, 90,145,117, 25,192, 79, 0,108,234, 35,181,176, -176,248, 98,218,180,105,218,236,236,108,146,151,151, 71, 66, 66, 66,200,146,153,211,244, 3, 93,237, 12,174,118, 54, 42, 43, 43, -171, 36, 91, 75,243,195, 29,249, 88, 2,192,161, 9, 13,155,246,242,229,203, 57,211,166, 77,155,249,246,184, 51, 79,156, 56,161, -188,118,237,154,146,201,100,134,163, 42,180, 67,181,160,156, 58,124,248,112,165, 90,173, 86,122,120,120, 20,163,202,113,191, 62, -248,247,233,211,167,228,210,165, 75, 68,175,215,255, 33, 70, 81, 65, 65, 1,185,122,245, 42,233,209,163,135, 12,192,148,254,253, -251,223,186,119,239,222,173,158, 61,123,158,105,172,194,150,150,150, 43, 99, 99, 99,163,210,211,211,163, 47, 92,184, 16,125,252, -248,241,232, 79, 63,253,244,153,183,183,119,121,114,114,178, 65,167,211,145,216,167, 79,137, 71,235,214, 42, 0,206,245,241,244, - 51,102, 61,150, 31,248,154, 84,172,255,132, 84,140,114, 36, 0,136, 98,251, 23, 36,127,225, 0,146,180, 96, 40,233,107,196,124, -240, 62, 61,197,220,220,252, 74, 84, 84, 20, 81, 40, 20, 36, 62, 62,158, 76,245, 27, 76, 30,204, 26, 64, 46, 15,118, 35, 71,123, -183, 36,219, 7,121,147,193,189,123,145,239,191,255,158,132,134,134,146,149, 43, 87, 26, 44, 45, 45, 21,104,192, 71, 75, 34,145, - 92, 59,117,234, 84, 52,128,104, 38,147, 25, 45,151,203,163, 21, 10,197,249,172,172,172,189, 30, 30, 30, 95,182,107,215,110,146, -167,167,103,191,190, 45,157,191,236,111,194, 75, 26, 96,106,244,170,181,144,191, 29,127,140,123, 85, 3, 17,224,236,234,226,162, -184,125,251,182, 65,173, 86,147, 59,119,238, 24,218,180,118,175,216, 54,110,200,153,215, 7, 54,157,169,184,244,243,149,178,115, - 63,222, 59, 61,221, 47,174, 15,159,241,243,135,130,154,112, 28,239,139, 9, 0,206,226,183, 85,135,211, 0,156, 67,195,171, 16, - 25, 0, 14,173, 95,191,190,246, 74, 67, 0, 96,120,123,123, 71, 19, 66,162,189,189,189,163,155, 91, 17, 62,159,191, 52, 44, 44, - 44,208,201,201,105,203,248,241,227, 15,200,100,178, 11,147, 38, 77,138, 67,213, 98, 16, 10, 85,217, 17,134, 59, 56, 56, 20,196, -196,196,144, 91,183,110,145,177, 99,199, 42, 56, 28,206,100,250, 54, 78,131, 6, 13, 26,255, 21,204,169,231,187, 65,108,136,139, -139,171,142,161, 53,175, 33,242, 21, 43, 86, 68, 71, 69, 69, 69,163, 42, 74,124,131, 96,177, 88,191,206,159, 63,159,216,216,216, - 40,173,173,173,127,101, 51,153,179, 28,141,225,131,247, 91,234,222, 43, 56, 56,120,228,119,223,125, 55, 12, 64, 87, 0,108,123, -123,251,156,188,188, 60,229,189,123,247,148, 61,122,244, 80, 90, 90, 90, 74,189,188,188,148,219,182,109, 83,106,181, 90,229,210, -165, 75,149,248, 99,188,175,186, 96, 4, 96, 1,151,203,253,181, 77,155, 54,113,107, 70,244,211,110, 89, 52,139, 76,115,179, 82, - 2,248, 14,192,124, 0, 98, 0,108,127,127,255,235, 47, 94,188,184,226,229,229,181,191, 9,188,118,237,218,181,187,113,226,196, -137,168,208,208,208,232, 47,190,248, 34,202,194,194, 34, 59, 57, 57,217, 80, 81, 81, 65, 74, 74, 74,136, 76, 38, 35, 23, 46, 92, -208,155,155,155,239,169,183,225, 60,102, 46,185,122,172,206, 16, 14, 89,171, 39,147, 30, 92,198,155,247,233, 41, 2,129,160,184, -168,168,136,228,229,229,145,212,212, 84,114,230,204, 25, 50,164,123, 23,114,242,211, 49,228,216,204,145,100,235,144, 46,164,171, -137,145, 74, 98, 34,140, 50, 49, 49,145, 54,101,213,161, 68, 34,185,166, 86,171,107,194, 55, 56, 56, 56, 68,123,120,120,132,122, -121,121,109, 15, 11, 11, 91,188, 99,199,142,145,125, 91, 58,127,185,113,112,247,242,178,136,211, 68,113,234, 59,178,162,147,123, -197, 91, 49, 95, 39,236, 45,204,131,111,223,186,101,168, 22,191, 58,157,142,156,253,245, 87, 50,110,232,192,184,210,203,191,252, -116, 39, 96,225,137,165,157,220,207,246, 48,194,132,134, 4, 91,205,171,136, 16, 22,190,166,140,189, 31, 57,153,231,246, 18, 49, -190,235,102,242,187,244, 82,227,220,221,221, 83, 9, 33,185,158,158,158,169, 0,142,121,122,122,214,254,127,122, 61,180, 53,193, - 73, 3, 3, 3,201,219,241,193, 0,176,118,195,134, 13,209,132,144,104, 55, 55,183,187, 0,208, 65, 0,203,222, 34,198, 79, 35, - 92,108,138,122,139, 24, 63,117, 16,212,157, 50,202,153,131,214,189,172,248,119, 70,186,217, 42,250,216,139, 34,143, 29, 62,184, -229,163,143, 62, 58, 0, 96, 15,128,175, 45, 44, 44,238, 76,152, 48,225,249,209,163, 71,159,111,219,182,173, 50, 57, 57,153,204, -152, 49, 67,197,227,241,190,166,239,131, 52,104,208,160,241, 95, 67,117,100,120,219,230, 8,173,225, 95,126,249,101, 52, 33,164, - 58,150,214,148, 58,202,140, 88,189,122,117, 52, 33,164, 58, 58,252,187, 1,204,234, 10,104, 22,184,119,239, 94,194,227,241,126, -122,207,198,212,230,148,140, 26, 53,170,155, 92, 46,255,192,198,198,230,131,183,150, 43, 71, 75, 75,203,212,227,199,143, 43,203, -203,203,149,132, 16,165, 78,167, 83, 70, 69, 69, 41,251,244,233,163,172,245,214,223, 88, 61,127,135, 85, 18,220,125,178,102, 38, - 89, 37,193,221,119, 54, 77, 62,116,232,208,165,180,180,180,243,166,166,166,203,155,200,233,104,101,101,181,214,220,220,252,138, -165,165,229, 42,115,115,243,220,202,202, 74, 82, 82, 82, 66,146,146,146,200,173, 91,183,200,131, 7, 15,136,185,185,121,118,125, -245,236,111,204,122, 88,178,101, 1, 49, 28,218, 64, 52,187, 87, 18, 0, 68,182, 99, 5, 41,252, 62,136, 60,153, 61,152,244, 49, - 98,222,127,143,243, 9,177, 88,252,227,175,191,254,106, 72, 73, 73, 33,225,225,225,228,194,133, 11,100,209,162, 69,164,181,157, -173,186, 27,151,145,223,139,199,186,242, 62, 1, 75,213,106,117,180, 92, 46,143, 86, 42,149,209,109,218,180,137,238,210,165, 75, -104,183,110,221,182,159, 62,125,122,241,198,141, 27, 71,246, 55,225, 37,149, 69,156, 38,228,139,161,132, 44,232, 73, 94,205,234, - 67,250, 25,179, 98,235,229,180,177,201,174,142,214,174, 82,169, 72,100,100, 36,185,113,227, 6,145, 88, 90,202,125,141,153,115, -122,240,208,187,135, 41,196, 77,173,103, 95, 17,227,240,195,239,191,209,151, 95, 58, 74,126,153, 54, 84,215, 71,204,216, 91,171, -220, 73, 66, 72,238,216,177, 99, 95, 19, 66,114,207,156, 57,147, 69, 8,201, 29, 51,102,204,107, 66, 72, 46,128, 19,117,113,190, - 19,156,244,208, 91,145,181, 32, 48, 48, 48,154, 16, 18, 29, 24, 24, 24, 13, 84, 5, 81,237, 45, 98, 28,121,180,127,171, 65,125, -225, 8, 57, 61, 99,152,190,183,136,113,164,206,122,138, 89,231, 99, 14,237, 32,154, 43,199,200,175,139, 38,233,123, 74, 76,111, -187,187,187,111, 93,188,120,113,232,131, 7, 15,158,233,245,250,231,169,169,169,207,247,236,217,243,252,195, 15, 63,188,107, 97, - 97, 17,199,229,114,231, 55,118,141,254, 34,208,156, 52, 39,205, 73,115,210,120,215,192,212,192,182,243,155, 55,111, 22, 16, 66, -150,250,251,251, 99,211,166, 77,227,218,181,107, 55,193,222,222,222, 10, 0,114,114,114,202,226,227,227,229,254,254,254, 88,187, -118, 45,182,108,217,178, 29, 85,190, 44,255,151,200, 59,123,246,172,195,194,133, 11,165, 27, 55,110, 52,204,152, 49,195, 19, 64, -124, 97, 97, 97,235, 73,147, 38, 45, 96,177, 88,254,206,206,206, 94,185,185,185, 5,229,229,229,199, 0,236, 71, 35,115,166,245, -129,199,128,190,115, 11, 91, 92, 97, 64, 95,235,231,161,107,215,174, 29, 63,102,204,152,202, 29, 59,118,232,228,114,121, 88, 19, -233,178, 10, 10, 10,214, 85,255, 99,110,110, 46,137,141,141,157,111,109,109,205, 72, 77, 77,133, 90,173, 70, 74, 74,138, 1, 85, - 83, 83,117, 66,169, 35,187,126, 56,115,205, 99,233,100, 63,211,178,196,167,224, 48,153,208,178,185,200,123,120, 5,135, 34, 19, -229,170, 74,236,126,159,118,202,100,178,111, 23, 45, 90, 52,105,249,242,229, 70,206,206,206,212,253,251,247,113,234,212, 41,181, - 84, 42, 29, 2,224,246,111,161,159,154, 7,131,193, 0, 46,151, 11, 0, 88,177, 98, 5, 24, 12, 6, 91, 42,149,114, 41,138,226, - 81, 20,197,167, 40,138,169, 77,123, 14,131,188, 4,249, 37, 50,100,229,203, 26,228,211, 27, 12,167, 30, 61,122,180,164, 99,199, -142,140, 39, 79,158,160,160,160, 0, 41, 41, 41, 68, 79,200,137,200,114,125,149, 83,162,186,233,245,227,155, 91,140,234, 96,198, - 99,112, 15,175,133,175,134,193,220,103,192, 88, 84,197,210, 2,128, 67, 20, 69,113, 0, 20,181,105,211,166,239,139, 23, 47,140, -219,180,105, 83,158,152,152,120,137,162, 40,123, 0, 71,234,226, 52, 54, 54, 46, 4, 80,120,230,204, 25, 0,152,141,170,147,215, - 41, 32, 32, 32, 55, 50, 50, 18,129,129,129,249, 0,246, 2,128,208,204, 98,132,151,136, 67,113,127, 14,196,135,106, 48,118, 27, - 72,157, 86, 87,161,181, 77,191,118, 2, 6,216, 7,191,194, 7, 18, 15, 6, 87, 87,217, 62, 40, 40, 40, 82,169, 84,170, 79,158, - 60,169,153, 62,125, 58, 51, 57, 57,249, 49,128, 59, 0,206,224,173,143, 37, 13, 26, 52,104,208,248,175,226, 93, 11, 86,163, 62, - 90,239,170,214, 77, 0,126,120,249,242,101, 77, 82,233,151, 47, 95, 70, 3,216,135,170,104,240,195,155,161,120,215,188,181,104, -237,127,207,198,188,203,105,228,227,227, 99,252,226,197, 11, 14,234, 78,226, 72,189, 7,231, 31, 80, 87,174, 67,119,119,247,157, - 90,173, 54,116,223,190,125,167,153, 76,230,164, 63,161,246,157,221,220,220, 74,142, 31, 63,110, 8, 15, 15, 39,107,214,172,209, -219,218,218,150,224,143, 62, 90,191,227,244,229, 50, 67,150,121,218,203,163,166,244, 36,175, 22,143, 32,119, 38,247, 33,115,236, -133,114, 95, 35,230,169, 63,249, 86,226, 38, 18,137, 14, 25, 27, 27,203, 77, 77, 77,175, 1,232,254,103,174,145,133,133,197, 81, -137, 68,114,173,246,199,198,198, 38,212,202,202,234, 59, 75, 75,203, 53, 98,177,120,174,139, 17,119,199,226,214,118, 21,113,163, -218,144,136, 30, 86,100,178, 37,247,221,169,195,119,235,105,235,226,226, 82, 20, 28, 28,108, 56,127,254, 60, 89,185,114,165,161, - 69,139, 22,114, 52,224,215,214,160, 69, 75,204, 60, 21, 50,166,155, 33,127,152, 61,217,228,105, 98,232,107,198,172,111,133,226, -228,183, 2,120, 90, 99,156,174,174,174,251, 8, 33,135,215,175, 95,127, 24,191,229, 2, 29, 24, 20, 20, 20, 64, 8, 9, 8, 10, - 10, 10, 0, 48, 24, 0,124, 69,140,224, 99, 35, 59,235,115, 62,178, 35,223,120, 10,245,190, 34, 70,112,157,150, 76,115,214,217, -115,179,134, 25,114,103,245, 32,107,221, 4,250,110,230,188,235, 92, 46,119, 49,170, 44,206, 93, 0,112,233,183,102,154,147,230, -164, 57,105,139,214,255,156,240,106, 18, 36,230,230,230,135, 90,181,106,117,218,217,217,249,180, 80, 40,220,142, 42,167,249,230, - 94, 8,151, 13, 27, 54,200, 69, 34, 81,135,191,240,226, 90, 3,176,199, 31, 19,231,254,101, 29,102,157, 45, 22, 38, 47, 31, 23, -187,206, 22, 11,107,253,220,197,211,211,243, 27, 84, 69,243,254,179,157,208,217,220,220,124,143,185,185,121,246, 91,223, 44,231, -166,112,118,102, 50, 39,245, 53, 98,222,239,206,101,228,245, 53, 98,221,251,128,201,156,248, 55, 29,128, 13, 45,182,168,143,211, -193,210,210,114,135,185,185,121,142,165,165,229,158,102,138,172,223,113,118, 48,134,109, 63, 49,243,108,119, 19, 74,213, 79,196, - 60,211,153, 95,255,162,142,102,180,221, 39, 48, 48,240, 19, 66,200, 39,118,118,118,254,181,132,191,215,218,181,107,253, 8, 33, -126,213, 17,224,187,240, 97,221, 71,204, 60,222,195,148,146,245, 17, 51,143,119,225,195,186,190,122,246, 21, 51, 79,245, 48,165, -100,190,166,140,227, 78, 60,180,160,111,230, 52, 39,205, 73,115,210, 66,235,159, 33,180,232, 14, 67,115,210,156, 52, 39,205, 73, -115,210,156, 52, 39, 45,180,234, 22, 86,181, 63, 53, 51,108, 44,250,220,208,160, 65,131, 6, 13, 26, 52,104,252, 41,212, 27,176, -148,106, 64,149, 54,199,177,253,125,148,109, 4,205, 73,115,210,156, 52, 39,205, 73,115,210,156,255, 58,206,198,184,255,175, 23, -214,253,173, 65,155, 85,105, 78,154,147,230,164, 57,105, 78,154,147,230,252,215,130, 65,159, 2, 26, 52,104,208,160, 65,131, 6, -141, 63, 5,159,183,223,239, 6, 46,173,219, 71,139,213,101,125,190, 78,167,179, 6, 0, 22,139, 37,213, 62, 94, 99,219, 16, 59, - 27,232,175,171, 74,191, 3, 22, 48, 91, 7, 92,171,131,243,154, 78,167, 51,123,203, 89,162,125,188,102,112,131,156, 93,214, 95, -169, 93, 94,247,120,205,192,119,203, 16,128,201,238,178, 62,231,157,186,218, 53,245,172, 80,248, 93, 76,172,255, 90, 61,255, 46, -156,255,102,176,187,174,207,215,106,171,250, 17,155,205,146, 86, 62,106,184, 31,113,186,174,207,169, 93, 94,251,104,141, 77, 67, -156,124, 99, 94,145,171,189,213,246,134, 56, 83,115, 10,151,170,202, 42, 44, 26,226,108,238,216,116,180,181,237,175,127, 59, 54, -153,192,236,236,220,220,107,255, 99,125,169, 51,128, 53, 0, 76,107,253, 22, 7,224, 51,186, 87,210,160, 65,227,111, 38,180, 98, - 80,149,231,240,199,183, 98,235,199,122,133,150, 78,167,179,142,254, 53, 0, 42, 53,208,127,234,122,107,151, 81,251,255,144, 40, - 89, 87, 81,194,149, 37,156,244, 98,106,229,102, 86,172, 74,211,156,156, 28, 10, 0, 40,138,250, 9,128, 83, 29,156,102,209,191, - 6,160, 76, 3,248, 78, 8, 50,115, 2, 76, 11, 56,156,207,141, 5,130,190,229,229,229,237, 0,192,216,216, 56,161, 92,165,186, -105, 85, 89,185,237,221,242,245,181,172,118, 93,251, 77, 89,111,237, 57,106,255, 34,189,193,192,125,243,100,159,111, 69, 97, 50, -139,173, 83,239, 93, 5, 92, 10,168, 67, 84,213,195,247,219,113, 63, 94,105,193, 6,250,113,141,140, 58,136,205,204,122, 25, 8, -105, 99, 48, 24, 40,189, 78,247, 92, 94, 90,122,199,160,211,197,234, 52, 42,139,232,176,111, 12, 13,213,243,221,182,124, 12,176, -126, 5,252, 5, 66, 97, 95, 38,155,221, 29, 0,244, 90,237,125,149, 82,121,115, 52, 16,210,148,182, 55,245,252,188,111,249,127, - 27,180, 90,157,117,218,149, 0,168,181,128,207,216,111,172,189, 39,253,124, 28, 0, 52,210, 88, 27,101,114, 88, 87, 0, 16,184, -250, 61,226, 73,124,242, 1,128,149,145,107,157, 20,190, 26,106, 45,208,198, 47,200,186, 49,206,233,107, 79, 89, 44,159, 51,134, - 7, 0, 87,207,124,215,250, 70,232, 15, 67, 1,160,223,152,121,151, 6,141, 93,152, 4, 0, 91,126, 12,181, 56,241,205,184, 6, - 57,155, 54, 54, 75, 57,165,201,225,110, 26,121,174,216, 81,192,146, 36, 39, 39, 51, 0,192,206,206,174, 73, 99,211, 1, 16,229, - 2, 11, 24, 76,102, 47, 87, 55, 55, 31, 0, 36,245,213,171, 24,189, 78,119,215, 22,216,251, 23,247,165, 69,132,252, 62, 56, 43, - 69, 81,116,135,164, 65,131,198,223, 13, 23,222,138,171, 11,127,120,153,173,111, 15,149, 26,184,157, 2,244,238,230,141, 57,147, - 62, 18,214,222, 22,178, 63,200, 41,249,201, 57,207,131, 63,111, 99,120,123,123, 35, 45, 45,173, 73,181, 40,211, 0,183,146, 1, -200, 94,152,148, 8, 4,175,118,108,221,106, 58,112,224, 64,150,157,157, 29, 40,138, 66, 94, 94, 94,183,136,136,136,206, 75,150, - 44,249, 20,178, 23, 37,101, 26, 40,110, 37, 55,206, 91, 93,215,118,173, 91, 96,205,194,113, 34, 0, 88, 53,117,111,231, 39, 47, -243,205, 95,189,122,213,255,203, 47,191, 44, 98,222,188,249,131, 37,112, 56, 31,200,106, 74, 61,143,158,127,100, 36,202,253,197, -101,242,194,133,103,220,220,220,132,206,206,206,148,137,137, 9,152, 76, 38, 74, 74, 74,156,226,227,227,135, 62,126,252, 88, 21, -113,251, 39,110,212,227, 17,169, 82,163,174, 21, 77,106,123,121,142,209, 85, 19,147,132, 41,163, 71, 59,140, 27, 55,206,200,213, -213, 21, 0,240,234,213, 43,247,144,144,144, 9,103,206,156, 89,139,242, 28, 93,153, 6, 21,141,181,189,134, 19,128, 17,208, 93, -108,109, 61,153,201,102,183,211,233,116,246,111,173, 13,111,244, 90,109,130, 76, 42, 61,246,110,121, 26,127,132, 90, 11,188,200, - 5, 6,244,242,193,148, 49, 3, 4, 0,240,229,248, 13,221, 50, 94,167,112, 52, 26, 13, 90,123,180,233,241,245, 55,219,175,128, -193, 64,112,104, 68, 77,249,166,112,198,189, 72, 67,192,215, 59,144,243, 44,164,155,190, 52,165,175, 66, 94,202, 4, 0, 83,145, -104, 76,200,201, 95,110,218,121,249, 63, 76, 41,172,108, 18,103, 67, 99,243,242,201, 61,182,217,241, 55,219,126,127,245, 16,219, -201,201, 9,207,158, 61,107,222,216, 44,125,105, 98,176,181,125,190,237,139, 47, 36,190,190,190, 16, 10,133, 96,177, 88,208,233, -116, 3,238,222,189, 59, 32, 32, 32, 96, 30, 74, 95,170,154, 58, 54,155,128,109, 20, 69,245,157, 62,103,145,237, 71, 35,253, 49, -102, 72, 15,186, 35,210,160, 65,227,239,134,106,235, 85,237,149,135, 63, 54, 40,180, 88, 44,150,116,224,180,141,214,189,186,182, -199,147,216,164,210,244,204, 92,101,245,182,226,132,144,214, 35,123,216,183,141,140,188, 13,181, 90,141,251,247,239, 35, 54, 54, - 22,175, 95,191,198,220,185,115,213,111,167, 14,235,226, 44,241,157, 16,100,134,210,100,161, 59,247,101,203,136,196, 68,102, 69, - 69, 5, 34, 35, 35, 81, 82, 82, 2, 46,151, 11, 7, 7, 7, 12, 26, 52,136,149,152,152,104,222,127,224, 16,145,239,144,137,105, - 16,185, 43, 89, 44, 86, 73,125,121, 68, 88, 44,150,180,255,212,245,214,109,221, 91,224, 85,122, 78,233,154,111, 14, 42, 13, 6, -194, 74,125,157, 81,121,251,246,109,248,248,248,224,218,181,107, 22,197,197,197, 95,237,221,187,119, 13,123,243,247,187,180,154, -162,101,168,159,175,196,119, 66,144,153,133,244,180,243,141,203,103, 57, 9, 9, 9,156,125,251,246,161,168,168, 8, 92, 46, 23, - 98,177, 24, 18,137, 4,173, 91,183,166, 86,173, 90, 37,244,243, 75,192,127,102,251, 59, 87,186,204,122, 89, 95, 61,107,218,174, -204,224, 91,202,175,186,134, 94,184,192,232,217,179,231,239, 94,219, 91,181,106,133,193,131, 7, 27, 77,158, 60,217,117,220,132, - 73, 6,223, 97,211, 95, 65,232, 92,214, 40,167, 42,203,216,162,236,129,221,128, 9, 19,194,130,130,130,196, 18,137, 4, 2,129, - 0, 0, 80, 90, 90,234,144,158,158,222,109,237,218,181, 99, 31,197,157,100,249,250,101,229, 64,224, 88,222,208,249,252,183,130, -205,102, 73,171,173, 72, 38, 2,227,146,172,236,124, 21, 0,104, 52, 26,104, 52, 26,168,213,106,204,159, 55,151, 57,123,108, 23, - 55,231, 94,139,158,190,126,147, 95,220, 38,226,161,121,245,190,218, 70, 56, 89,101,175,101,178,204,235,179, 3,190,248, 66, 98, - 99,243,219,140, 96,240,209,163,204,226,226,226, 1, 1, 1, 1,109, 9,191,143,172,141, 95,144,184, 33,206,134,198,166, 44,233, - 66,203,175, 23, 14,238,176,255,155,112,232,245,122, 60,120,240, 0,145,145,145,216,190,125, 59,185,116,233, 82,169,169, 64, 48, - 27, 13,142,205,151, 38, 61,109,243, 92, 54,111, 62, 67,241,120, 60,156, 59,119, 14,137,137,137, 96, 48, 24,240,246,246,198,148, - 41, 83, 48, 96,192, 0,201,156, 57,115,137,239,144,241,169, 16,121, 40,254,100, 95, 98, 0, 88,180, 50, 96,179,237,212, 89, 11, -176,229,235, 85,180,208,162, 65,131,198,223,217,154, 85,111,136, 7,132,135,135,147,183,159,222, 0, 64, 0, 70,171, 81,251, 79, -156,142, 50, 92,104, 53,106,255, 9, 2, 48, 8,192, 48, 5, 90,116,236,216, 81, 43,147,201,200,227,199,143,201,252,249,243, 85, -187,118,237,186,121,225,194,133, 16, 93,101,229, 1, 59, 91,219,111, 73, 61, 14,246, 4, 96, 56, 3, 34, 62,159, 95,144,153,153, - 73, 46, 94,188, 72, 2, 3, 3,201,177, 99,199,200,165, 75,151, 72, 68, 68, 4,185,116,233, 18, 57,113,226, 4,137,139,139, 35, - 73, 73, 73, 68, 32, 16, 20, 56, 3,162, 6, 56,153, 4, 96,182, 30,181,111,217,153, 39,218, 32,143, 81,251,151, 16,128,105, 6, -120,118,236,216, 81, 31, 18, 18, 66,130,131,131,201,207, 63,255, 76,226,226,226, 72, 97, 97, 33, 97,241, 4, 5,213,251,213, 87, - 79, 2, 48,236,237,237, 11,100, 50, 25,113,116,116, 36, 92, 46,151,216,216,216,144,214,173, 91,147,110,221,186,145,161, 67,135, -146, 73,147, 38,145,175,190,250,138,200,100, 50, 98,100,100,148, 95,189, 95,125,156, 62,128,177, 64, 32,200,140,142,142, 38,245, -161,188,188,156, 20, 22, 22,146, 43, 87,174, 16,129, 64,144,233, 3, 24, 55,196,105, 12,116,242,242,242, 42, 40, 44, 44, 36,149, -149,149, 36, 51, 51,147,196,199,199,147,196,196, 68,146,153,153, 73,202,203,203,107,184,147,146,146,136,139,139, 75,129, 49,208, -137,208,139, 32,234,237, 75,239,126,156,108,108,134, 74, 36,146,242, 51,103,206,144, 55,111,222,144, 35, 71,142, 16, 6,176,225, -221,114, 13,113,114,129, 65, 61,123,246,212, 63,120,240,128, 60,125,250,148,172, 88,177,130, 12, 30, 60,152, 12, 25, 50,132, 4, - 4, 4,144,236,236,108,146,157,157, 77,134, 14, 29,170,231, 2,131, 26,235,159,117,141, 77, 17,224,228,231,231, 87, 94, 89, 89, - 73, 82, 83, 83, 73,187,118,237,178,153,192,100, 1,208,182, 55,192,107,172,127,218, 3,102,182,182,182,185, 15, 30, 60, 32,161, -161,161,196,217,217,185,128, 9, 76, 55, 5, 90,153, 2,173,152,192,244, 86,173, 90, 21, 60,120,240,128, 20, 21, 21, 17, 39, 39, -167, 92,123,192,236, 79,244, 37, 6,128, 67, 43, 3, 54,147,151,217, 42,178, 50, 96, 51, 1,144, 73, 8, 33,168,195,199,147, 6, - 13, 26,255,124,188,171, 69,254, 41,168,185, 73,250,249,249, 81, 0,110, 53, 84,184,156,201,220,184,101,203, 22, 86, 69, 69, 5, - 14, 30, 60,168,248,120,236,216,211,189,123,245, 74,109,233,236, 44,163, 24,140, 70,179, 13, 23,240,120,139,183,108,217, 34,214, -104, 52,136,138,138, 66,231,206,157, 33,145, 72, 32, 20, 10, 33, 20, 10, 97,109,109, 13, 15, 15, 15, 72,165, 82,152,152,152, 96, -249,242,229,162, 2, 30,111,113, 99,188, 6, 3, 97, 1,128,222, 96,224,114,128, 57, 46, 31,124, 16,181,118,237, 90,134,133,133, - 5,204,205,205, 33, 20, 10,145,152,152, 8,141, 70, 3,190, 49,191, 73, 65, 90, 25, 12, 6, 67, 40, 20,226,198,141, 27, 88,180, -104, 17,186,119,239, 14,177, 88, 12, 19, 19, 19,180,107,215, 14,131, 6, 13,194,236,217,179,145,154,154, 10,170, 9, 78, 37,207, - 89,172, 5,179,103,207,182,246,241,241,169,115,123, 69, 69, 5,100, 50, 25, 10, 10, 10,224,224,224, 0,127,127,127,235,231, 44, -214,130,250,248, 44, 0,137,131,187,123,216,227,199,143, 45, 5, 2, 1,130,131,131,113,246,236, 89, 92,190,124, 25, 23, 47, 94, - 68,120,120, 56,206,157, 59,135,130,130, 2, 0,128,187,187, 59, 78,157, 58,101, 41,180,182, 14,183, 0, 36,244,144,110, 26, 50, -242,243,175,182,203,203,179,156, 60,105,210, 29,165, 82,137,201,147, 39, 99,227,166, 77,171,216,192,146,166,236,239, 1,136,204, -109,109, 15,111,222,188,153,145,151,151,135,209,163, 71, 23,110,219,180,105,102,204,149, 43,174,209,151, 47,187,110, 12, 10,154, -217,187,119,239,194,236,236,108, 28, 61,122,148, 97,227,228,116,216, 3, 16, 53,183,158, 10, 96,209,206,157, 59,141, 42, 42, 42, - 48,112,224,192, 84, 67, 66,130,135, 14,248, 69, 9, 36,222, 2, 42, 27,219, 63, 23, 88,176,124,249,114, 9,143,199,195,231,159, -127, 94, 88,150,145,209, 94, 7,252, 92, 10,164,151, 2,233, 58,224,103, 69, 90, 90,251,169, 83,167, 22,242,120, 60,236,216,177, - 67,146,251, 91,210,237,166,162, 51,128, 48, 0,183, 1,228, 76,159,179,104,186, 79,151, 15,113,244,192, 94,124, 19,244,229, 97, - 0, 31, 83, 20,117, 12,192, 50,186,231,209,160,241,239, 68, 83,180,200,255, 40,234, 77,185,195,224,199, 26, 86, 0, 0, 32, 0, - 73, 68, 65, 84,170,173, 36, 1,244,105,136,197,204,194,162,115,251,246,237, 17, 25, 25, 9, 47, 47,175,199, 98,177, 88,199,225, -241,192,102,179, 65, 12,141,234, 44, 24, 11, 4,253, 7, 12, 24,192,122,248,240, 33, 92, 92, 92, 96,108,108, 12, 54,155,253,187, - 15,135,195,129,173,173, 45,228,114, 57,250,247,239,207,222,189,123,119,127,168,213, 95, 55,250, 64, 76,142, 23, 22, 60,220, 60, -233,167, 35,135, 91,249,250,250,162,180, 84, 14,131,193, 0, 62,159, 15,141, 70, 3, 22,139, 85, 53, 5,164, 37,242,166,156, 49, -189, 94,175,103, 50,153,112,113,113,193,198,141, 27, 81, 81, 81, 1, 14,135, 3, 0,144,203,229,144,201,100,136,143,143, 71,122, -122, 58,222,190,133, 55, 8, 19,145,232,163,113,227,198,213,153,240, 87,173, 86,163,180,180, 20,165,165,165,144,201,100,168,168, -168,192,135, 31,126,200,189, 16, 30,254, 17,138,138,182,213,185,143,145,209,216,163, 71,143, 90,115,185, 92,148,151,151, 67,161, - 80, 32, 43, 43, 11, 25, 25, 25, 21, 82,169, 84,103, 98, 98,194,112,118,118,102,240,120, 60,222,168, 81,163, 40,185, 92, 14,138, -162,224,231,231,103,113, 60, 56,120, 28, 52,154,237,244,144,110, 26,174, 2,234, 78, 26,205,240,174, 93,186,220,120,252,228,137, -207,226,197,139, 17, 23, 23,183,153,127,242,228,237, 50, 32,182,161,125, 83,129, 5,223,214, 18, 48, 36, 35,195,171, 18, 40,168, - 85, 36,221, 57, 45,237,242,212,169, 83,159,197,197,197, 89,238,216,177, 67,242,241,232,209, 11, 0,108,104, 78, 29, 77, 68,162, - 15,108,109,109,113,233,210, 37,100,190,126,253,165, 14, 40,111,214, 27, 23,147,217,211,215,215, 23,231,206,157, 67,118, 70,198, -151,186,223,215,177,234, 69, 9, 40, 96,165,166,126,121,248,240,225, 67, 51,102,204, 0,147,197,234, 9, 93,179, 38, 14,255,224, -248, 62, 99,238, 98, 28,254,113,247, 97, 0,179, 0, 24, 0, 60,166,123, 28, 13, 26,255,110,171, 86, 99, 90,228,111, 36,182,126, -108,182, 69,203,218,218,218, 94, 40, 20, 34, 39, 39, 7,109, 60, 61,165, 60, 30, 15, 92, 54, 27, 70, 92,110,147,106, 80, 86, 86, -230,101,103,103,135,210,210, 82, 88, 90, 90,130,195,225,212,124,184, 92,110,205,223, 38, 38, 38, 96, 48, 24,112,114,114, 66, 89, - 89,153, 87,163,188,249,241,214, 39,119,207,155,255,224,246,165, 86,163, 71,143,129,153,153, 57, 28, 29, 29, 96,109,109, 13, 99, - 99, 99, 56, 58, 58,194,213,213,149,108,219,182, 13,124,107,239, 38,221,200,107,139, 39, 22,139, 5,189, 94,143,252,252,124,188, -124,249, 18,113,113,113,120,240,224, 1,158, 62,125, 10,133, 66,129, 38,232, 44,148,149,151,119, 96,177, 88,117,138, 44,153, 76, - 6,153, 76, 86, 35,180, 10, 10, 10,144,158,158, 14,165, 74,213,177, 1,209, 59,166,125,251,246, 76, 0, 48, 54, 54, 70,199,142, - 29,177,127,255,126,221,249,179,103,199,183,125,240,192,220,241,202, 21,241, 79,251,246,141,247,247,247,215, 63,124,248, 16,114, -185, 28, 47, 94,188,128,149,149, 21,139,107,100, 52,142, 30,206,205, 67, 52,160,178, 84, 40,134,116,239,222, 61,173,180,180, 20, - 91,183,110,101,176, 77, 76,126, 12,170,103,138,175, 6, 76,102, 15, 95, 95, 95,132,133,133, 33, 39, 35, 99, 69, 70, 29, 2, 38, - 3, 40,200, 76, 77, 93,113,248,240, 97, 12, 26, 52, 8, 20,139,213,108, 71,165,110,221,186,181, 55, 24, 12,120,246,236, 25,196, -192,163,230,238,239,234,230,230, 83,109,249, 21, 0,119,234, 43, 39, 0,238,196,196,196,192,216,216, 24,109,218,182,237,212,204, -195,108,163, 40, 42,119,198,220,197, 8,189,124, 15, 0,112,248,199,221,249,181, 68, 22, 13, 26, 52,104,139,214,223,213,162, 85, - 45,172,106,127,240, 59,161,213, 68,241, 1, 0, 96,179,217,224,242,120,224,114,185, 85, 2,137,199,107, 50, 7, 69, 81, 48, 50, - 50,170, 17, 86,181, 5, 86,237,191,249,124,126,147, 4, 12, 0,148,164, 92,238, 53,107,230, 12, 46,143,199,131, 70,163, 6, 33, - 4, 60,158, 17,196, 98, 49, 92, 92, 92, 32,151,203,209,189, 71,111,117,150,140, 19,110,209,102, 84,220,251,156, 61,157, 78, 7, -149, 74,133,146,146, 18, 20, 23, 23, 67, 46,151,163,188,188,188,201, 75,209, 13, 6, 3, 51, 43, 43, 11,191,252,242, 11,138,138, -138, 0, 84, 57, 90, 87,139,171,234,239,180,180, 52, 4, 7, 7,227,245,235,215,205,186, 62,189,122,245, 66,120,120, 56,179, 79, -255,254, 7,174, 57, 59,231, 92,115,118,206,233,211,191,255,129,176,176, 48,166,189,189, 61,210,211,211, 17, 21, 21,133,146,146, - 18, 16, 66,232,245,243,239,129, 87, 64, 73, 89,113,241,140, 85,171, 86, 17,161, 80,136,173,223,126,219, 97, 3, 48,177,169, 2, - 70,212,128,128, 17,253, 57, 1, 3, 66, 8, 12, 6, 3,244,122,253,123,181,141,162, 40,138,205,102, 55, 55,180, 66,115, 10,215, - 56,190, 47,255,106, 35, 46,158, 11,169,254, 61,153, 22, 89, 52,104,208,248, 7,160, 94, 71,120, 86, 45, 5, 89,243, 93, 31,242, -243,243,223,168, 84,170, 86,206,206,206,200,206,206,182,118,114,114,202,224,178,217,224,112,185,160, 24,141,107, 2, 62,159,255, - 44, 39, 39,167,135,189,189, 61,116, 58, 93,141,168,122,119,234,176,218, 74,243,244,233, 83,240,249,252,103,168,104, 48,114, 2, -244,154,146, 22,157, 58,117,170,177, 12,137,197, 98,136,197, 34,240,120, 70, 88,189,122,181, 97,199,182,109,123,157,250, 5,149, -126,178,100, 21, 89,181,225,192, 95,122,102,155,250, 96,226,243,249,207, 28, 29, 29, 63, 20,137, 68, 8, 13, 13, 69,122,122, 58, - 74, 74, 74, 80, 86, 86, 6,181, 90,141,178,178, 50,104, 52, 26, 24, 25, 25,161,109,219,182, 48, 53, 53, 69, 68, 68,196, 51,168, -213,117,139,203,162,162,208,103,207,158,125,216,165, 75,151, 26,139, 74,223,190,125,169,190,125,251, 90,214, 88,209,202,202, 80, - 88, 88,136,199,143, 31, 35, 34, 34, 2, 20, 69, 33, 57, 57, 89,175, 46, 47, 63, 65,143,137,247, 67, 5,112,159,121,248,240,161, - 79, 63,253,116,102,143, 30, 61,160, 7,134, 2, 8,254,255, 40, 96, 0, 0, 15, 30, 60,136,215,235,245, 61, 90,183,110, 13, 25, -208, 21,192,185,102,137,200,148,148, 24,157, 78,215,191, 67,135, 14, 8, 61,125,186, 23,128,244,186,202,169,128, 94, 62, 62, 62, - 40, 47, 47,199,139,231,207,163,155, 33,178, 14,172, 12,216, 60,125,234,172, 5, 56,122, 96, 47, 14,255,184, 59,235,208,254, 93, -142,104,130,255, 24, 13, 26, 52,254, 85,214,172, 70,181,200,255, 40,230,212, 39,190, 88,205, 97, 41, 45, 41,137,142,137,137,105, -213,169, 83, 39, 28, 56,112,160, 75,247, 15, 63,124,195,225,114,117, 92, 14, 7,140, 38, 60, 72,202, 85,170,235,215,175, 95,239, - 58,106,212, 40,214,195,135, 15, 33,145, 72,106,132, 86,245, 55,139,197, 2, 33, 4,124, 62, 31,191,254,250,107,101,185, 74,117, -189, 81,107,145,222,160,103,188, 21,122,132, 16,200,100, 50,112, 56, 28,108,223,190, 3,123,182,109,155,164, 7, 66,220, 5, 86, - 95, 0, 48,250,255,246,128, 46, 43,187,113,241,226,197,206,107,215,174,101, 59, 56, 56, 64, 38,147,161,164,164, 4, 69, 69, 69, -144,203,229,144,203,229, 40, 41, 41,129, 76, 38,131,145,145, 17,226,226,226,180, 21,101,101, 55,234,227,227, 85, 84,156,153, 54, -109,218,242,152,152, 24, 91, 22,139, 5,173, 86, 11,131,193, 0,131,193,128,202,202, 74,164,164,164, 32, 33, 33, 1,137,137,137, - 40, 46, 46, 6,155,205, 6,147,201,196,211,167, 79, 75, 4, 90,237,105, 13, 61,166,223, 27,108, 32,244,238,221,187, 51,167, 76, -153, 2, 59, 7,135,222,200,206,110,146,128, 57,219,128,128, 41,125, 63, 1,243,155, 0, 82, 40,158,164,165,165,245,232,211,167, - 15,108, 29, 28, 54,183,205,206,190,246,188, 25,126, 90,122,157,238,206,221,187,119,251, 79,157, 58, 21, 7, 14, 28,216,108,149, -150,118,185,224,157,105, 78, 43,192,170,165,171,235,230,233,211,167,227,234,213,171,208,235,116,119, 26,160,172, 29,241,189,197, -244, 57,139, 28,223,113,124,223, 79, 81,212, 66, 0, 91,233, 30, 69,131, 6,141,127,178, 69,171, 89, 83,135,198,122,253,202,101, -203,150,105, 25, 12, 6,198,140, 25, 99,114, 46, 44,204,255,105,108,172,139, 84, 42, 21,235,245,250, 70,185,172,212,234, 93,203, -150, 45,147,105, 52, 26,120,120,120,160,184,184, 24,122,189, 30, 44, 22, 11, 44, 22, 11, 20, 69,129,193, 96, 64, 40, 20, 34, 38, - 38, 6,135, 14, 29,146, 91,169,213,187, 26,125, 72,232,245,207,130,131,131,193,100, 50,137,145,145, 17, 40,138, 2,139,197,194, -142, 29, 59,164,123,128, 80, 0, 96, 50, 24, 26, 0, 96, 48,168,166,122,239, 54, 58,111,201,229,114, 97,168, 90, 4,208,104, 89, - 51,181,122,231,150, 45, 91, 20, 47, 94,188,128, 74,165,170,177,190, 41,149,202, 26,231,122,153, 76, 6,138,162,160, 82,169, 16, - 22, 22,166, 48, 83,171,119,214,199, 87, 4,228,101, 39, 39,143,232,210,165, 75, 81, 90, 90, 26, 74, 75, 75,241,236,217, 51, 68, - 68, 68,224,212,169, 83,184,122,245, 42, 82, 82, 82,160,211,233, 96,111,111, 15, 66, 8,206,158, 61, 91,170, 83, 40,134, 22, 1, -121,244,152,168, 31, 45, 36,146,254, 54,214,214,153, 86,150,150,217, 45, 36,146,254,239,110, 23, 1, 73, 73, 73, 73,208,233,116, -112,113,113, 49,111,200, 79,139,232,116,119,239,222,189,139,169, 83,167,194,177, 85,171, 77,206,128,213,187,101,156, 1, 43,103, - 87,215, 77,213, 2,134,232,116,119,155, 91,103, 19, 96,247, 23, 95,124, 81,206,225,112,112,242,228, 73, 23,173,155, 91, 34, 11, -152, 40, 4, 60,251, 0,156,198,246,183, 5,246,126,245,213, 87,121, 20, 69,225,216,177, 99,150, 34, 87,215,120, 22, 48, 77, 4, -180, 16, 1, 45, 88,192, 52,145,171,107,252,201,147, 39, 45,117, 58, 29,150, 44, 89,146,103, 11,236,109,128,114, 17, 33,100, 56, - 33,196,151, 16,226,120,104,255, 46, 92, 60, 23, 82, 45,178,102,161,202,233,125, 10,128,120,186,199,209,160, 65,227,159,140, 58, -205, 80,172, 46,235,243, 1, 98,221,187,155, 55,158,196,190, 44,181, 52, 51,189, 82,189,173, 56, 33,164,117, 63, 47, 83,239,239, -191,255, 30,108, 54, 27, 89, 89, 89,120,254,252, 57, 76, 77, 77, 49,105,210, 36,117,185, 66, 49,162, 86,174,195, 1, 0, 34,222, -114, 86,229, 83, 43, 77, 22,186,178,226, 90, 93,190, 24,206, 20,137, 68, 80, 42,149, 96, 48, 24, 48, 50, 50, 2,159,207,135,177, -177, 49,162,162,162, 48,108,248, 72,125, 1,223,247,183,128,165,191,229, 83,171,225,172,142, 53,212, 21,224,199, 0,159, 91,219, -217, 45, 91,179,102,141,241,224,193,131,193,225,112,224,208,194, 61,207,101,200,214,221, 12, 6,165,203, 46,146,175,118,109, 97, - 39,122,158,156, 14,128,146,106, 31,175,177,171,149,235,240, 15,245,116,210,220,118,249,245,231,109,166, 29, 59, 86,249,163,203, -100, 50,228,231,231, 67, 42,149, 66, 38,147, 65,165, 82, 1, 0,194,195,195,113, 49, 50, 81, 94,238,224,159, 90, 95, 61,127,107, -251, 75, 19,187,202, 71, 45,143, 7,255,204,180,178,178, 66,126,126, 62, 10, 10, 10, 32,147,201, 80, 94, 94, 14,189, 94,143,226, -226, 98, 28, 60,252,179,190, 72,232,251,186, 38, 32,100, 67,156,170, 44, 99,115,229, 61,123,159,182,206,100,230,204,153, 38,166, -166,166, 48, 24, 12, 40, 41, 41, 65,102,102, 38,210,210,210, 16, 25, 25,169,146,202, 52, 80, 89, 14,204,174, 9, 88, 90, 7,231, - 95,136,191, 29,103,237,184, 85,118,182,182, 57, 25, 25, 25,214,122,189, 30,246,246,246, 58, 89,113,241, 38, 46,112,213, 4,200, - 5, 64, 10,129, 53, 59,119,239,158, 49,114,228, 72,124,240,193, 7, 89,121,249,249, 45,235,234, 75, 4, 96,122, 0,162, 50, 7, -135,132,199,143, 31, 75, 50, 51, 51, 49,117,234,212,194,140, 87,175, 86, 84,251,107,149, 2,189,156, 93, 93, 55,157, 60,121,210, -178, 85,171, 86,240,242,242,202, 51,202,204,108,247, 18, 40,173,167,127,214, 59, 54,101, 73, 23, 90,206, 27,221,254,131,249,243, -231, 67,167,211, 33, 50, 50, 18,143, 30, 61, 66, 70, 70, 6,238,221,187, 39, 51, 21, 8,198,215,202,117, 88,103,255, 28,234,174, -114, 57,118, 44,152,226,112, 56, 56,124,248, 48, 98, 98, 98, 0, 0, 62, 62, 62,152, 62,125, 58,116, 58, 29, 38, 79,158, 66, 46, -188, 52, 78,109,168,127, 2,104, 15,224, 91, 84,137,188, 15, 8, 33, 70, 20, 69,229, 0,112, 68,243,124,178,232,254, 73,115,210, -156,255, 30,206,127, 36, 26,205,117,184,254, 7,136,126,159,230, 99,118, 78,200,254, 32, 86,207, 94,190,158, 65,129, 1,140, 46, - 93,186,192,209,209, 17, 62, 62, 62,200,204,204,228,137,197,226,198,242,169, 41,125,135, 76, 76,243,246,246, 22,175, 88,177, 66, - 52,104,208, 32,182,163,163, 35, 8, 33,136,137,137, 65,104,104,104,229,129, 3, 7,228,101, 54,195,101,209, 55,127, 81, 54, 37, -159,218, 35,160, 12,192, 58,135,156,156, 31, 23,204,155, 23,208,177, 83,167,153,129,129,129, 12, 33,223,152,189,113,245, 44, 35, - 0, 88,255,221, 41,209, 72,255, 73,216,233, 6,244,158, 88,119, 30,185,218,245,204,204,158,157,241,209,232,254,110,159, 47,156, -161, 31, 55,110,156,192,212,212, 20,142,142,142, 48, 51, 51, 67,106,106, 42,178,179,179,201,249,243,231,149, 15,158, 38,177,207, - 94,125,146, 97, 36,178,109, 74, 94, 66,133,239,224,143, 95,127,244,209, 71,102,211,166, 77, 51,233,220,185, 51,155,199,227,129, -199,227, 33, 63, 63, 31, 41, 41, 41,149,231,207,159, 87,150, 89, 15, 45,137,190,121, 82,209,196, 92,135,229,190, 19,130, 82,238, - 92, 11, 92,146,240,236,217, 20, 3,208,161,178,178,210, 94,175,215, 83, 12, 6, 35,215, 96, 48, 60,171, 84, 40, 14,169,125, 2, -119,208,185, 14,155, 6,189, 94,207,209,235,245,144,201,100,184,118,237, 26,235,213,171, 87,107, 98, 99, 99,215,228,228,228, 64, -171,213, 98,236,216,177,240,241,241,193,205,155, 55, 81,144,159,127,190, 33,174,151, 64, 41, 47, 59,123,250,236,217,179, 47, 5, - 7, 7, 51, 98, 99, 99, 45, 15, 31, 62,124,176, 46, 1, 51,101,202, 20, 67,126,102,230,116, 53, 80,218, 64,255,108,104,108, 22, - 94, 62,185, 39,118,212, 24,255,182,129,107,215,176,187,119,239, 14, 75, 75, 75,244,234,213, 11,149,149,149,226, 54,109,218, 52, - 54, 54, 21,190, 67,198,167,118,232,208, 65,176, 99,199, 14,201,140, 25, 51,176,112,225, 66, 0, 64,121,121, 57,174, 94,189,138, - 37, 75,150,228,101,178,186,170, 26,235,159,111, 45, 85,213, 2,236, 54, 0, 95, 0,169,160, 29,223,105,208,160,241,207, 68,117, - 82,105, 91, 84, 37,150,190,128,170,151,243,198,115, 29,222,121, 20,143,218,105, 62,170, 96,251, 92,231, 52,237,213,220,101,155, -188,152, 90,185, 25,155,170, 48, 77, 78, 74,162, 26,203,121, 88,147, 79, 77,228,174,180, 72, 59,209,101,227,250,245,139,119,238, -220,217,191, 58,132, 3,159,207,127, 86,174, 82, 93,183, 82,171,119,149,137,220,175, 55, 55, 55, 95, 54,144, 15, 96,158, 89,116, -244,110,191,145, 99,183, 24,153,187,176, 87,109, 56, 80,193,100, 48, 52, 41, 57, 5,216,233, 6, 8,154,176, 64,178, 76, 3, 36, -200,108,117,249, 22,254, 47,191,250,226,139,207,215,175, 91,215, 69, 40, 20,246,174,212,233,220, 13, 6, 3, 96, 48, 36,151,169, - 84,183, 73,101,229, 99,181,207,218,109, 70, 34, 91,210,228,188,132,226, 54, 10,243,215, 33, 93,142, 28, 58,180,232,244,233,211, -127,104,187,133, 90,189,187, 76,220, 38,162, 41,109,175, 93,166, 2,184, 15,169,244,126, 67,166, 75, 58,215, 97, 19,223, 62, 12, -134, 57,102,102,102, 71,251,247,239,111, 52, 96,192, 0, 12, 27, 54, 12,221,187,119,135,193, 96, 0, 33, 4, 10,133, 2,167, 78, -157,194,150, 45, 91,146, 91, 2,235, 26,227, 83, 3,215,121, 23, 47, 14,237,208,161,195,225,134, 4,204, 91,145,213,168, 79, 98, -195, 99,147,151,172, 19,141, 72,159,176, 96,163,155, 70,158, 43,182,224,235, 36, 9,241,207, 24, 77, 31,155, 30, 10,125,204,169, -174, 99, 71,143, 94,192,100,177,122,189, 93, 1, 73, 94, 60,127, 30, 93,157, 84, 26, 62,211,175, 53,179, 47, 85,199,174,163, 29, -223,105,208,160,241, 79, 23, 90,195, 80,229,175, 85,147,146,167,222, 92,135,213, 86, 31, 22,139, 37, 77, 61, 59,119, 82, 67,236, -108,160,255, 91, 75, 22, 26,205,117,248,246,239,116, 64, 1,181,250,235,223, 5, 35,173,181,186,144,253, 78,249,230,132, 69, 44, - 1, 94, 66,167,246,131,244, 57, 16, 54,175,138,175,203,250, 47,107,183,169,222,135,236,239,142,203, 41,174, 0,238, 64,169,188, - 3,165,178, 78,167, 93, 54,139, 83,220, 88, 61,223,109,123, 38, 32,255,179,109,127,151,179, 81,241,240, 39,206,231,191, 13,111, - 10, 11,207, 2, 16, 58,132,135,219, 92, 14, 15, 31,247,249,210,165, 99,109,237,236, 92, 45, 45, 45,205, 76, 76, 76, 24, 15, 31, - 62, 76,211, 85, 84,236,238, 8, 28,121,107, 77,109, 20,106,224,186, 71,102,102,187,143, 71,143, 94, 64,177, 88, 61,107, 11, 24, -162,211,221,115, 1,246, 54,100,201,122,223,177,233,200,179,237,255,214,146, 5, 38, 48,187, 41,125, 35,187,170, 30, 27,160,211, -109, 64, 92, 92, 29,125,190,217,125,105, 61, 69, 81, 10,208,142,239, 52,104,208,248,231,162, 58,223,225,133,255,235, 3, 15,160, - 57,105,206,127, 16, 39, 19, 85,171,232,232,243, 73,115,210,156, 52, 39,205, 73,163, 73, 96,209,167,128, 6,141, 38, 67,143,223, -166,193,104,208,160, 65,131, 6,141,106, 84,251,102,213,198,143, 64,149,235, 78,125,170,180, 57,171, 9,222, 71,217, 70,208,156, - 52, 39,205, 73,115,210,156, 52, 39,205,249,175,227,108,140,251,239,184,154,177,218, 39,171,198, 55,235,255, 10,180, 89,149,230, -164, 57,105, 78,154,147,230,164, 57,105,206,127, 58,108,223,138,172,218, 31, 0,205, 12, 88, 74,131, 6, 13, 26,255, 84, 4, 6, -130, 65, 8, 40, 66, 2, 25,132,156,102, 18,226,207, 36, 4,127, 42, 21,136,191,127,221,193,108,255, 51,201,204,132, 62,227, 52, -104,252,163,144,139,122,146, 74,211, 62, 90,255,127,225, 36,145, 72,246, 3,160,242,242,242,230, 0,200,164, 79,201,255, 30,204, -205,205,251,235,116, 58,200,229,242,235,255,196,246,181,117,197,104,194, 64,155,154, 31, 8, 50, 95,164,224,104, 93,101,219,184, - 97, 42,168,223, 98,113, 81, 6,188,120,254, 10,191, 54,227,112,140,161, 3, 28,247, 2,192,165,136,172, 5,248,239,196,213,106, -109,101,101,117,133,197, 98,177,244,122,253, 60,169, 84, 26, 94,191, 16,242,103, 2, 0,155,220, 92, 41,203,179, 94,241,217,167, - 20,187, 76,125, 72,166, 46, 87,149, 50,217,204,215, 60,182,228,238,220, 25,140, 75, 37,202, 15,159,215,181,127, 72, 72, 72,189, - 89,188,219,185, 97, 40, 67,223,118,184, 79,251,180,212,111,119,117,217,217,219,197,146,157,150,245, 84,184,121, 95,233,126,174, -216,121,248,212,113, 84, 56,139, 79, 77, 57,116,168, 72, 73,143,178,166, 99, 35, 96, 94, 9,120,177,121, 60, 71,189, 78,103, 67, - 1,132,201, 98,229,107,213,234, 44, 14, 16,183, 18,144,253,211, 57, 57, 60,158,131, 94,167,179, 1,128,255,197,122,210,248, 61, -234, 21, 90, 66,161, 48,138,193, 96, 56,212, 78,134, 91,157, 79,176,250,183,218,219, 40,138,130, 94,175,207, 46, 41, 41,233,220, -140,227,155, 2, 24, 7,160,122,137,250,113, 0,167,240,254, 14,199,166, 28, 14,103,153, 64, 32,232, 87, 94, 94,222, 14, 0,140, -141,141, 19, 84, 42,213,141,202,202,202,111,223,147,151, 5,224, 99,161, 80,216,151,193, 96,244, 37,132, 80,132,144,155, 74,165, -242, 6,128,211, 0,222, 39, 82,130,177,181,181,245, 6,115,115,243,137, 43, 87,174, 44,178,176,176,240, 88,178,100,201,147,226, -226,226, 95, 10, 11, 11, 87,163, 25, 57,234,254,203,112,149, 72, 36,199,217,108, 54, 51, 43, 43,171, 47, 0, 56, 58, 58,222,212, -104, 52,122,169, 84, 58, 9,192,171,102,242, 9, 0,116, 19, 10,133,157,133, 66,161,175, 94,175,111,243, 54, 63,227, 11,165, 82, - 25, 89, 89, 89, 25, 5,224, 33, 0,213,255,208, 24, 49, 97,177, 88,193,111,251,186, 59, 0,197, 63,237, 38, 64, 24,104,243, 60, - 33,209,163, 70,120,181,243,172,191, 48, 5,167, 58,202, 54, 89,104,245,235,109, 59,124,196,136,129, 12, 0,208,104, 47, 13,191, -113, 59,247,220, 95,220,156,214, 99,198,140,185, 31, 28, 28,108,166, 86,171, 49,103,206,156,227, 17, 17, 17,123,229,114,249,202, - 6,111, 28, 66,179, 37, 91,119, 92,229, 83, 20, 3, 0,172, 13, 6,189,245,155, 55,175,220,159,199,223, 31,146,144,240, 96, 99, -121,226,141,135, 6,138, 61,183, 18,189, 18,155, 82,137, 54, 46,240, 27, 62,118,244,176,117,235, 2, 49,113,252,196, 22, 9, 9, - 21,198,246,166,169,220,226,114,129,155,133,149,245,136,117,235, 67,168,187,119,206,142, 8, 62, 28,116, 99,198, 12,139,126,180, -216,106, 18,168,245, 44, 86, 55,145,155,155,239,248,179,103, 33,116,116,100,177,120, 60, 6, 0,232,212,106, 71,101, 86,150,237, -201, 17, 35,186, 6, 38, 37,221, 10, 4, 30,209,156,255, 95, 56,105, 52, 71,104, 49, 24, 12,135, 55,111,222, 88, 11, 4,130,170, -155, 49, 33,208,235,245,208,235,245, 53,201,139, 9, 33, 53,223, 58,157, 14,158,158,158, 77,122,163, 5,208, 15,192, 39,125,250, -244,241,255,246,219,111,217, 94, 94, 94,213, 41, 67,122,173, 90,181,234,187,152,152,152, 51, 0,142,160, 42,120, 99, 83,223,120, - 7, 11, 4,130, 99, 91,183,110, 53, 29, 56,112, 32,203,206,206, 14, 20, 69, 33, 47, 47,175, 91, 68, 68, 68,231, 37, 75,150,204, - 83,169, 84,147, 1, 92,105,198,249,105,111, 98, 98, 18, 50,122,244,104,135,222,189,123, 27,181,109,219, 22,122,189, 30, 79,159, - 62,157, 17, 21, 21, 53,225,204,153, 51, 1, 10,133,194, 31, 77,207,215, 70, 9,133,194,105,166,166,166, 27,214,174, 93,107, 62, -121,242,100,110,124,124,124,137,139,139, 11,117,247,238, 93,171, 83,167, 78,205,219,180,105,211,199,114,185,124,181, 82,169,252, - 25, 77,200,161,104, 98, 98, 18,197, 96, 48, 28,154, 34,132, 1, 52, 71, 12,119,108,217,178,229,169, 59,119,238,180, 76, 79, 79, -215,143, 26, 53,234, 40, 0,220,184,113,195, 75,171,213, 82,131, 6, 13,186,148,157,157, 61, 14,192,211, 38,182,221,219,220,220, -252,220,196,137, 19,205, 93, 93, 93,249, 45, 91,182,164, 4, 2, 1,152, 76, 38, 74, 75, 75,237,226,227,227, 7, 60,122,244,168, - 60, 34, 34,162, 88,173, 86,143, 0, 16,215,140,235,212,221,218,218,122, 10,155,205,110,175,211,233,236, 1,128,197, 98,189,209, -106,181,241, 82,169, 52, 24,192,253,247, 29, 32, 54, 54, 54,123, 54,108,216, 96, 41,149, 74,201,166, 77,155,246, 40, 20,138,105, -255,212,155,193,241, 95, 78, 35,234,201, 35,160, 42,109, 14, 85, 71,255,163, 0,112, 62,251,108, 41, 58,127,208, 21,147, 38,126, -220, 40,231, 71,253, 29,182,178,185, 28,139,138,138,138,251,165,101,234,211, 2,190,209,184,137, 19,252,146, 1,224,210,229, 91, -227,186,116, 49,187, 41,226,243, 62, 54, 50, 50,234,174,213, 84, 22, 93,188,158,253, 69,115, 68,149,189,189,253, 21, 51, 51, 51, -126,113,113,113, 94, 65, 65,193, 15,195,135, 15, 95,127,228,200, 17,179,180,180, 52,100,101,101, 97,241,226,197,194,236,236,236, - 5,113,113,113, 15, 52, 26, 77,189,150, 45,133,162,120,215,170, 21, 35,215,138, 68,150, 76, 1,223, 20, 38, 34,115,184,184,118, - 64,183,238,195, 49,116,216, 76,164, 36,199,116, 59,114,120, 93,204,155, 55, 17,223, 8,205, 91,173,151,201, 90,214,123, 95,106, -219, 26,189, 71,140,174, 18, 89,107,215, 6, 34, 41, 49, 81,145,254,154,241,159, 11,103, 89,252,161,253, 61,121, 58, 77, 94,250, -221, 59,103, 91,246,236, 53, 10, 0, 58, 7, 31, 14,186,241,159, 73,102,253,247, 28, 47, 81,208,143,164,250,239,157,235,216,236, -105,131,119,236,176,246,153, 55,143,163,124,253,186, 50,117,223,190,178,252,200, 72, 61,139,199, 35,142, 67,134, 80, 86,125,251, - 26,205,123,241,130,115,111,211, 38, 95,118, 80,144,203,234,202,202, 99, 52,231,255, 41,231,191, 29,213, 78,240,181, 87, 31,254, -216,160,208,162, 40, 10, 2,129, 0, 39, 79,158, 4,155,205, 6,139,197, 2,155,205,174,247,111, 39, 39,167,166, 84,100,140, 68, - 34,249,110,239,222,189, 54,131, 7, 15,134,145,145, 81,205, 6, 38,147,137,129, 3, 7, 98,192,128, 1,236,156,156,156, 9, 39, - 79,158,156,176,113,227,198,124,153, 76,182, 16,111, 19, 67, 55,128,190, 30, 30, 30,161, 87,175, 94, 53,174,168,168, 64,100,100, - 36, 74, 74, 74,192,229,114,225,224,224,128, 65,131, 6,177, 18, 19, 19,205, 7, 14, 28, 24,154,148,148,228, 7,224,102, 19,234, -218,217,218,218,250,246,233,211,167,141, 58,116,232, 64,165,164,164,192,199,199, 7, 0, 80, 90, 90,138, 81,163, 70, 25, 77,158, - 60,217,117,194,132, 9, 15,165, 82,105,111, 0, 81,141,240,117,146, 72, 36, 63,143, 30, 61,218,110,227,198,141,166, 38, 38, 38, - 72, 79, 79,207,149, 72, 36,238,213,231,123,194,132, 9,220,225,195,135,219,110,217,178,101, 87, 72, 72,200, 23, 82,169,116, 26, -128,232, 6, 85,235, 91, 65,204,231,243,145,159,159,143,227,199,143, 99,193,130, 5, 96, 50,153,144, 74,165, 56,117,234, 20,254, -243,159,255, 84, 11,154, 38,137, 97, 62,159, 63,192,205,205,237,224,141, 27, 55, 28,196, 98, 49,236,236,236, 24, 95,125,245, 85, -123, 23, 23, 23,227, 22, 45, 90, 48,115,115,115, 17, 26, 26,234, 50,101,202,148,115,153,153,153, 51,212,106,117,163, 83,106, 54, - 54, 54,135, 46, 92,184,224,148,144,144,128,125,251,246,161,184,184, 24, 92, 46, 23, 98,177, 24, 18,137, 4,238,238,238,212,138, - 21, 43,248,195,135, 15,231, 47, 92,184,240,144, 70,163,233,216,132,107,212,193,218,218,122,127,223,190,125, 93,130,130,130,196, - 18,137, 4,213, 47, 6,165,165,165, 14,233,233,233,221,214,174, 93,235, 31, 21, 21,149, 38,149, 74,231, 2,136,109,230,192,233, -216,182,109, 91,191, 81,163, 70, 49,115,115,115, 17, 28, 28,236,167, 80, 40, 58, 54, 67, 92,254,173, 16,245,228, 17,230,204, 95, -172,180,115,116,228, 92,189,114,112, 76,200,175,173,159,136,141,171, 18, 82,203,202, 81,233, 63, 58,233,131, 65,131,103,114, 62, - 26, 54, 74,249,227,247,187,132, 77, 17, 90,108, 46,199,226,248,177,237,153,119,238, 70,181,191, 22,241,104,200,152, 17, 35, 8, -135, 35,118, 1,128, 47,150,124,198, 14, 13, 11, 59, 60,112, 64,215,156, 94, 61, 59,103, 78,154,188,212,169, 25,213,109,221,186, -117,235, 91, 49, 49, 49, 54, 60, 30, 15,197,197,197, 22, 63,254,248,227,246,158, 61,123, 50, 82, 83, 83,145,152,152,136,215,175, - 95,163,180,180, 20, 3, 7, 14, 20, 70, 71, 71,255, 0,160, 94,161, 85,201,232,183,193,174,133,118,183,133,177,160,101,165, 94, -110, 77,180,185,109,175, 93,184,230,125, 34,184,220,199,198,214,211,253,147,233, 1, 88,183,254, 12,251,151,227,155,215, 94,143, - 56, 1, 48, 90,214,159, 17,128,160,251,170,213, 43, 33, 87,168, 49,121,226,108, 76,153, 56,219,130, 64, 99, 75,244, 21, 2, 77, -121,137,216,132,243, 34,124,239,129,237,163, 1, 56,212, 18, 91,215,105,177, 85, 63,214,177, 88, 93,253,190,251,206,170,253,172, - 89,188,216,160, 32, 85, 97,100,100,185,219, 71, 31,149,248,124,250,169, 26, 0, 20,175, 95,115,146, 2, 2,248, 86,190,190,198, - 31, 46, 91,102,166,215,104, 36,235,214,173,235,178,182, 42,121,121,179, 56,157,198,141,211,175, 61,124,248,131,200,165, 75,251, - 80, 90, 45,115,200,135, 31, 62,221, 20, 28,252,230,207,112,254,149,245,204,185,125, 91, 93,236,226, 2,159, 81,163,138,156,172, -173,213,127,101,219,255, 76, 61,105,212,160,218, 87,107, 78,237, 55, 84,132,135,135,247, 6,112, 11, 64,144,159,159, 95, 32, 0, -136, 68,162,124,153, 76,102, 29, 26, 26,218,168,200, 98,179,217,176,181,181,133,187,187,187, 84, 42,149,218, 52, 80,129, 44,131, -193,224, 64, 8,169,177,190,212, 7,181, 90,141,228,228,100,120,123,123,103,163, 42, 17,109,189, 70, 29, 62,159,159,154,152,152, -104,249,252,249,115, 68, 69, 69,193,197,197, 5,102,102,102, 96,179,217,208,106,181,144,203,229,240,240,240, 0,143,199, 67,167, - 78,157, 10, 85, 42,149, 75, 35, 83, 64, 60,129, 64,144,124,251,246,109, 71, 31, 31, 31, 60,126,252, 24,142,142,142,144, 72, 36, - 0,128,215,175, 95,227,238,221,187,248,232,163,143, 16, 19, 19,131,177, 99,199,102,169, 84, 42,119, 0,234,250, 8,205,205,205, -115,111,220,184,145,237,229,229, 85,161, 82,169, 24,249,249,249,236,200,200, 72,157, 66,161, 16,150,150,150,178,101, 50, 25, 91, - 46,151,179, 84, 42, 21,155,193, 96,112,202,203,203,217,215,175, 95,103, 86, 86, 86, 54, 24, 32,179,250, 58,133,133,133,193,203, -203, 11,161,161,161,248,252,243,207,113,239,222, 61, 56, 58, 58,226,244,233,211, 88,182,108, 25, 94,190,124, 9, 75, 75, 75,180, -109,219,182,177,107, 4, 87, 87,215,148,103,207,158,185,114, 56,156,234,188,142,213,249,242, 80, 80, 80,128, 87,175, 94,225,205, -155, 55,112,115,115,195,196,137, 19, 95,189,121,243,198,173,177,158,103,111,111, 95,144,144,144, 96,233,237,237,141,252,252,124, -136,197, 98,136, 68, 34,136,197,226,154,191, 93, 92, 92,176,116,233, 82, 72, 36, 18,105, 69, 69,133, 77, 99, 34,200,203,203,235, -202,245,235,215, 45, 77, 77, 77,145,151,151, 7,185, 92, 14, 22,139, 5, 62,159, 15, 75, 75,203, 26, 33,159,156,156,140, 97,195, -134, 21,166,166,166, 14,110,134, 72, 98,216,216,216, 36,198,197,197,185, 19, 66,144,153,153,137,151, 47, 95, 98,254,252,249,201, - 21, 21, 21,158,248, 7,229,236,171,229,119,197,153, 54,125, 14,103,244,200,238,154, 23, 9,225, 20,207,240, 18, 29,219,155,150, - 2,192,211,120,185, 72,205,240, 64,155,118,126,228,215,115,247,185, 63, 31,249,145, 13, 3,108, 64,225,229,139,100,124, 93, 31, -247,160,190,182,179, 62,251,108, 70,251, 62, 61,123, 51, 20, 42,149,245, 15, 63,236,232,148,154,250,194, 26, 0, 92, 92,218, 72, -231,205, 91, 18,109, 34, 16, 72,111,221,189,109,216,185,243, 80,252,213,155,185, 7,154, 80,101, 23,119,119,247, 7, 97, 97, 97, -150,214,214,214, 16,137, 68, 80,169, 84,168,172,172,196,243,231,207, 43, 78,158, 60,169, 53, 53, 53, 53,201,203,203,131, 76, 38, - 3, 69, 81, 8, 11, 11,203, 4,224,252, 46, 81,181,143, 22, 0,204, 31,218,134,221,182,159,187, 25,135,167, 51, 54,102, 39,217, -130,210,243, 40, 34,180,185,116,229,169,247,165,107,143, 39,141, 30,243,185, 85,175,222,163,177,118,141,191, 54, 39, 39,211,167, - 18,189, 18,235,242,209,242,116, 67,191, 81, 99, 71,127,188,110, 93, 32, 2,215, 6, 33, 60,236,108,169, 80,192, 80,155,138,217, - 34,223,110, 61, 42,150, 46, 24,153,165, 84,230, 56,174,219,114,114,226,176,145, 75, 29,122,246, 26,133,187,119,206, 34,248,112, - 80, 20,101, 76,232,105,196,119, 16, 8,152,137, 93, 92,230, 46, 74, 78,230,196, 6, 6, 42,117, 57, 57, 37,157,151, 44, 41,172, -171,108,246,181,107, 2,174,157,157,169,217,136, 17,230,187,156,157,137, 86, 42,221, 95,151,143, 81, 93,156, 17, 66,161,248,196, -165, 75,253, 9,155,221,123,249,151, 95, 26,251,249,249, 65, 46,151,227,204,153, 51,216,191,111,159,218,214,214,246,153, 93,124, -124, 76,123,185,124, 77, 83, 57, 59, 47, 89, 82,168,215,235,169,143,151, 45, 27,152,240,250,117,191, 60,169,180, 5, 0,216,154, -155,103,117,118,113,137, 58, 20, 30,254,114, 79,203,150,134,166,214,243,167,203,151,109, 66,210,211,103,153,155,155, 27,231, 75, -165, 44, 30,151, 91,212,173,109,219,211,223,175, 94,125, 75, 23, 23,199, 49,114,112, 48, 21,249,249, 53,187,237,157,151, 44, 41, - 44, 86, 40, 88,139,214,175,239,145,145,159,223, 66,169, 86,187,201, 20, 10,137, 94,171,101,152,242,249, 69,173, 60, 60,164,229, -145,145,185,173,202,202, 22, 31, 0,164,255,173,107, 93,151, 22,249, 27,225,221, 56, 90,127,200,117,120,203,207,207,239, 15,171, -107, 8, 33, 77,178,102,177,217,236,223, 77, 83, 53, 0, 14, 69, 81,136,142,142,134,133,133, 5, 36, 18, 9,120,188,223, 39, 31, - 44, 40, 40,192,189,123,247,240,226,197, 11,116,232,208,161,122, 26,163,126, 69,196,227,125,182,101,203, 22,177, 70,163, 65, 84, - 84, 20, 58,119,238, 12, 30,143, 7, 14,135,243, 59, 17, 40,149, 74,209,174, 93, 59, 44, 95,190, 92,180,113,227,198,207,212,106, -117,189,111,164, 44, 22,107,225,236,217,179,173,171, 45, 88, 89, 89, 89,232,212,169, 83,205,118, 43, 43, 43, 60,125,250, 20,157, - 59,119,134,131,131, 3,252,253,253,173,131,131,131, 23,234,116,186,111,235,227,228,114,185, 12, 47, 47,175, 15, 0, 64, 32, 16, -128,193, 96, 36,153,154,154, 90,217,216,216, 8, 76, 77, 77,255,208,198,195,135, 15,203, 24, 12,134,182, 81, 53,192, 96, 32, 47, - 47, 15,237,219,183, 71,105,105, 85, 6, 23,149, 74, 5, 55, 55, 55,200,229,242, 26,209,106,103,103,135,242,242,134, 93,191,188, -189,189, 3, 61, 61, 61, 7, 9, 4, 2, 30,155,205, 70,108,108, 44,124,124,124,112,242,228, 73, 56, 57, 57,129,207,231, 35, 57, - 57, 25, 94, 94, 94,184,125,251, 54,172,172,172,208,174, 93, 59,158,181,181,245,157,226,226,226,155, 25, 25, 25,129, 13,212,147, - 33, 20, 10,113,251,246,109, 28, 58,116, 8,175, 95,191, 70, 78, 78, 14, 76, 76, 76,208,177, 99, 71,180,109,219, 22,221,187,119, - 71,114,114, 50,168,198, 59,147,196,221,221, 61,252,241,227,199,150,132, 16, 4, 7, 7, 67,169, 84, 66,163,209,128,193, 96,192, -200,200, 8,102,102,102,232,215,175, 31,172,172,172,224,238,238,142, 83,167, 78, 89, 14, 29, 58,244,162, 84, 42,237, 8, 32,175, -177,243,106,102,102,182, 56, 32, 32,192,209,218,218, 26,233,233,233, 40, 45, 45,133,141,141, 13,250,244,233, 99, 31, 17, 17,177, - 88,171,213,238,248,167, 60,200,106, 57,190, 83, 87,175, 28, 28,227,222,170,196,171,131, 7,223, 49, 52,220,198,241,100,184,180, - 29, 0,180,111, 99,147, 48,198,143,159, 21,155, 16,158,117,245,202,217,168, 23, 73, 8, 69, 19,166,182, 75,203,212,167,175, 69, - 60, 26,226,211,161,147, 97,203,230,101,195, 22,204,159,197,179,182,153,137,252,204,179,136,184, 17,237,180,236,243,217, 86,223, -110,251,233,210,181,136, 71,140,210, 50,245,154,166,153,178,156,246, 28,249,190,187,165,162, 48, 4, 41,137, 92, 24,155,180,135, -139, 75,107,200,229,114, 24, 25, 25, 25, 77,156, 56, 81,191,114,229,202, 50, 83, 83, 83, 62, 69, 81,184,121,243,166, 20,192,224, -198,120, 43,172,205,136,190, 82,171, 35, 92,166,129, 80, 38,229,148,190,152, 27,255, 60, 13,131, 6,244,205,239,217,181,253,198, -149,235,182,173,114,111,237, 99, 53, 99, 86, 16,123,125,224,164,125,160,208,171, 46,158,196, 20,220,160, 78,255,106, 12, 96,216, -186,175, 3,145,154,154,108, 54,231, 19, 89, 16,139,103,108,231,233,220,195,100,223,161,155, 67,220,220, 90,182, 88,186,208,255, -194,246,239,182, 15,171,109,217, 58,114, 56,224, 28,128,254, 77, 57,183,255, 34,120, 79, 9, 15,135, 50, 51, 83, 91,124,231, 78, - 69,255,239,190, 43,116, 28, 60,120,135,166,178,210,178,250, 86,193,160, 40, 80,213,174, 19, 6, 3,197, 90,190,156, 65, 88, 44, -104,205,204, 62, 65, 73, 73,235,198, 56, 63,207,205, 29, 51,105,214,172, 97,231, 46, 95, 70,203,150, 45,107,158,103, 98,177, 24, -203,150, 45,195,146, 37, 75,120, 79,159, 62,237, 18, 18, 18,210,229,219,173, 91,109, 0,140,105, 74, 61,175, 62,124,104,246,233, -186,117,171, 59,116,238,236,116,244,248,113,158,171,171, 43, 0,224,213,171, 87,238,155, 55,109,114,110,239,229,149,191,241,179, -207,142, 36,172, 92,217, 14,192,157,134, 56,243, 34, 35, 53, 33,233,233,179,110,220,188, 41,110,223,190, 61, 0,224,229,203,151, -214,187,118,237,154,221,206,223,127,242,186,121,243,214,248, 85, 84,200, 76, 11, 10,120,126,123,246,176, 78,124,252,113,163,156, -213,245, 4,128,255,199,222,117,135, 71, 81,181,223, 51,219, 75,122, 37,133,132, 18, 33,157, 38, 69, 74,168, 9, 37, 69,144, 38, - 10,130,162,128,136,162,130, 8,162,160,168, 95, 0, 65, 1, 5,105, 42, 96, 16, 16, 8, 37,212, 0, 9,136, 20, 41,161,164, 67, - 72,207, 38,155,186,155,108,159,246,251,131, 36,134,152,100, 55, 1,191,159,248,205,121,158,125,118,102,246,206,217,123,231,222, -153,123,230,189, 81,158,174,206, 0, 0, 32, 0, 73, 68, 65, 84,239,125,239,208,215, 94,123, 55,100,216,176,192,241,175,191,238, -232,237,237, 77, 88, 91, 91,195,100, 50,161,168,168,200, 33, 57, 57,249,153,184,234,106,117,236,149, 43, 63,131,166,195,254,198, -186,110, 82,139, 60,101,150,172,191,106,138,218,239,161,113,113,113, 44,128,161,145,145,145,231,235, 58,112,154,166, 45, 18, 89, - 2,129, 0, 4, 65, 88, 42,182,192,178, 44,202,202,202, 80, 86, 86, 86, 63,116,164, 84, 42,113,238,220, 57,100,102,102, 66, 40, - 20, 66, 36, 18,193,100, 50,191, 6,173,149,149, 85,104,104,104,168,224,202,149, 43,240,241,241,129, 76, 38,171,207, 87,221, 71, - 36, 18,193,221,221, 29,106,181, 26, 35, 70,140, 16,110,216,176, 33,180, 37,161,101,103,103, 23, 62,121,242,100,113,221,126, 77, - 77, 13,248,124,126,189,104,169,169,169, 65, 69, 69, 5,170,170,170,160,215,235,209,191,127,127,113, 92, 92, 92,120,121,121,249, - 26, 75,202,175,213,106,107,148, 74,165,125, 72, 72,136,195,142, 29, 59,210,251,247,239,239,247, 72, 75, 75, 76,212,235,245,122, - 33,143,199,179,104, 29,189,152,152,152,250,107, 95, 88, 88,136,205,155, 55,215,255,150,153,153,137, 13, 27, 54,128,101, 89,176, - 44,219, 98, 29,249,251,251,143,249,249,231,159,123,239,218,181,171,146,207,231, 35, 61, 61, 29,187,119,239, 6,203,178,112,113, -113,129, 86,171, 69, 73, 73, 9, 18, 18, 18, 64, 81, 20,172,173,173,225,233,233, 41,157, 55,111,222,160,207, 62,251, 76,216,146, -208,162,105,154,230,243,249,232,208,161, 3,150, 45, 91, 6,189, 94, 15,145,232,161,190, 84,171,213,168,170,170,194,205,155, 55, -145,147,147, 3,150,101, 91,236,100,164, 82,233,196, 93,187,118,185,138,197, 98,232,116, 58, 84, 87, 87, 35, 63, 63, 31,185,185, -185,122,165, 82, 73,217,216,216,240, 58,116,232,192,147, 72, 36,146,113,227,198, 17,117,130, 51, 50, 50,210,233,231,159,127,126, -209,104, 52,154, 19, 73, 46,110,110,110, 31,189,241,198, 27,210,134,109,182,184,184, 24,227,199,143,151, 95,186,116,105,137, 90, -173,222, 13,160,244, 95,214,161,177,251, 99,125,175, 93, 63,147,222,237, 96, 92, 59,175,220, 2,122,224,194, 15,214, 10, 0, 96, -235,150,232,129, 7,227, 10,127,247,239, 84,146,191, 63,214,247,154,131, 67,170, 57, 33,192, 27, 62,196, 61,202, 74, 46,157, 60, -254,249,231,217,239,191,255,230,217,183,230,190, 46,233,224,187,240,161,133, 83,232,138, 17,212,231,132, 86,119, 95,250,253,247, -223, 60, 59,254,249, 9, 55,179,179,115,182, 12, 31, 34,217,119,238,188,226,104, 75, 22, 67, 87, 39,169,167, 92,162,129,167, 79, - 32,252, 2,172,144,116, 43, 29, 7,126,189,140,128,160,231, 96, 48, 24, 64, 81,148, 85, 84, 84,148,118,239,222,189,250,140,140, -140,106,157, 78, 55, 4, 64,134,185,194, 23, 20,164, 48,126,110,207,153, 68, 50, 9, 85,173, 18,105, 23,127,188,127,210,179,253, - 70,246,118,112,247, 20,186, 88, 49, 71,199,132,245,221,253,227,246,101,239,125,188,124, 55,250,244, 29,217, 63, 53,253,183, 64, - 0,119,154, 20,175, 89,136,227, 29,136,165,178,238,221,139,200,205,201, 41,240,109,231,102,188, 95,197,146,243, 23,111, 11, 11, - 25, 50,177,251, 51, 1,131,197,169, 41,231,137,101,139, 94,252,101,197,234,175, 95,170, 19, 91,103,227,127, 25, 50, 99,198,101, -241,142, 29,205, 91,199,255,215, 32,146, 72,218, 91,119,232, 32,200,222,177, 67,231, 19, 21, 85, 9, 0, 70,147,201, 57, 59, 39, -199, 78, 46,151,131,101, 89,144, 36,249,136, 15,113,157,223,112,176,159, 95, 59, 75, 56,179, 63,249,164,251,162, 69,139, 80, 92, - 92, 12,138,162, 32, 20, 10, 27, 63,179,161,209,104, 48, 99,198, 12,124,251,213, 87,207, 89,194, 73,211, 52, 49,103,197,138,165, - 31, 46, 93,250,204,236,217,179,121, 13,159,189,142,142,142,216,127,224,128,120,227,198,141,237, 63,250,246,219, 25, 47, 75, 36, - 89, 48, 24, 90,228, 44,235,210, 5,142, 37, 37,178, 58,145, 5, 0,126,126,126,216,188,121,179,100,230,204,153,226,168,168,168, -181, 73, 61,122,172,255,102,208,160,123, 78,190,190,182, 98,137,164,189, 57,206,186,235, 9, 0,213,122,125,240, 55,235,215, 59, - 92,189,122, 21, 37, 37, 37, 40, 46,126,248, 62, 74, 16, 4,250,244,233, 67, 76,155, 54,205,174,179,151, 87, 95,208,244,223, 89, -221,127,209, 34, 79, 17,102, 53,113,236, 79, 31,173,218, 2, 17,181, 5, 36, 26,116,142,143, 8, 22,115, 66,171, 45,168,170,170, - 66, 85, 85, 21,182,111,223, 14,145, 72, 84,223,249, 2,128,209,104,180, 68,180,116,243,240,240,128, 74,165,130,175,175,239, 35, -150, 44,145, 72, 4,129, 64, 0,145, 72, 4,137, 68, 2,131,193, 0,111,111,111,104,181,218,110, 45,113,234,116,186,158,142,142, -142,245, 29,172,161,182,177, 26, 12,134,250,252, 26,141, 70, 84, 86, 86,162,166,166, 6,213,213,213,208,104, 52,189, 44, 41, 47, -195, 48,184,123,247,238,125, 63, 63,191,158,124, 62, 31,214,214,214, 86, 26,141,166,222,183,168,162,162, 2, 59,119,238,212,188, -242,202, 43,206, 71,142, 28, 49, 43,180, 8,130,192,219,111,191, 13,137, 68, 2,173, 86,139,239,191,255, 30,239,188,243, 14, 68, - 34, 17,170,171,171,177,121,243,102,188,255,254,251, 16, 8, 4, 48, 26,141, 88,191,126,125,179, 92, 41, 41, 41,217, 87,174, 92, -233,245,236,179,207, 58,196,198,198,150,134,133,133,185,140, 26, 53, 10, 50,153, 12, 58,157, 14, 36, 73,226,185,231,158,131,191, -191, 63,148, 74, 37, 78,156, 56, 81,214,181,107, 87,231,171, 87,175, 50,197,197,197,185,102,196, 53,219,192, 98, 8,154,166, 81, - 82, 82,130,170,170, 42,148,150,150,162,168,168, 8, 5, 5, 5, 16, 8, 4, 48,163,179,224,228,228, 52, 33, 56, 56,152, 15, 0, - 50,153, 12, 61,123,246,196,210,165, 75, 41,157, 78, 55, 25,192,137,218,100, 99,182,109,219, 22,123,241,226, 69,129,135,135, 7, -210,210,210,224,226,226, 34,144, 74,165,102,133,150,155,155,219, 79, 71,143, 30,117,172, 19,215,117,215, 89,171,125, 88, 29,227, -199,143,119,220,181,107,215, 79, 20, 69,133,255,219, 58, 53,123, 25, 68, 61,131,109, 85,123,227,148, 65, 11, 63, 88, 43,240, 15, -126,248,242, 58,107, 54, 4,107,190, 90, 16, 52,117,172,237, 49,123,153, 90,100,142,103, 76,168,215,198,231,159, 15,227,189, 52, - 37, 50, 83, 36,178,247,217,178,245, 51, 87,215,118, 51, 27,200, 48, 91, 56, 57,219,194,167,131,152,216,127, 44,213,117,241,146, -207, 13, 49,187,190,206,250,101, 79,220,104,177, 48,126,228,137, 51,249,111, 54,199,157,113,191,234,136,214, 32, 13, 80,151,223, - 38, 28,219, 13, 68,207, 30,126,112,117,169,196,182,159,246,162, 83,231, 62, 48, 24, 12,176,181,181,149,211, 52,109,226,243,249, - 49,150,136, 44, 0, 56,123,182,138, 9, 10,170, 50,242,171, 25,234,173,119,214,188, 16, 54,230,249,192,225,195, 67,153,211,241, -167, 77, 3,123,153, 20, 99, 70,245, 44, 57, 25,191, 49, 83, 81,244,160,107, 80,183, 65, 72, 73, 78, 24,205,178,184, 75, 16, 77, - 91,159,146,239,225,164,158, 73, 73,216,187,119, 22,163, 99,110,202,190,248,242,206,152,136,136,233,193,131, 67, 6, 51,241,103, -206, 25,197, 40, 75,181, 29, 52,160,240,173,215,199,196,254, 16,179,126,228,201, 19, 63,117, 81,169,115,227, 56,145,213,232, 37, -141,162,218, 9, 36, 18, 94,105, 66, 2,213,109,230, 76, 67,221,253, 40,151,203,113,248,240, 97,136,197,226,250,143, 72, 36,170, -223,110,215,174, 29,136,218,105,164,150,112, 2,128, 66,161, 64,113,113, 49,236,236,236,224,226,226,130,226,226, 98, 92,186,116, - 9, 25, 25, 25, 16, 10,133, 24, 61,122, 52,120,205,248, 54, 55,230,156,180,112, 97, 88, 64,183,110,222,141, 69, 22, 0,152, 76, - 38, 84, 84, 84, 96,236,216,177,188, 19, 39, 78,184,157,204,203,123, 30, 64, 76, 75,156,189, 34, 34,202, 75,246,239,111,242,191, -159,125,246, 89,226,247,223,127,151,140, 30, 53,234,189, 5, 95,126,185,241,219, 93,187,242,105,138,114,107, 77,217,121, 60, 30, -143, 32, 8,120,121,121,161,162,162, 2, 53, 53, 15, 71,176,173,173,173,225,224,224, 0,146, 36,193,176,172,240,239,172,235,230, -180,200, 83,130,173, 13, 4,215,214,191, 88,180,106, 11, 5, 0, 67, 27,118, 44, 12,195, 88, 36,178,132, 66,161, 89,159, 43, 75, -172, 92,141, 97,137,208,170,203,171, 84, 42,173,191,209, 26, 10,172,186,124,242,120, 60,240,249,124,179,157,120,173, 24,226, 87, - 87, 87,227,192,129, 3, 24, 50,100, 72,253,176,148, 74,165, 66, 85, 85, 21, 84, 42, 21,244,122, 61,178,179,179,113,246,236, 89, -116,233,210, 5,176, 48,248,107, 86, 86,214,245, 78,157, 58,245,174,235,196,135, 13, 27,214,126,199,142, 29, 69,225,225,225, 30, - 44,203,226,227,143, 63, 46,123,238,185,231,156, 27,118,242,230,192,231,243,113,233,210, 37,116,233,210, 5, 44,203, 66, 36, 18, - 33, 61, 61, 29,174,174,174, 96, 24, 6, 2,129, 0,165,165,165,176,177,105, 57, 70,226,221,187,119, 95,125,237,181,215,138,236, -236,236,186,151,151,151, 43, 36, 18, 73,200,133, 11, 23,188, 76, 38, 19,108,109,109, 97,107,107,139,227,199,143,195,222,222, 30, -239,190,251,110,158, 78,167,187,100,101,101,213, 78,167,211,221, 46, 46, 46,254,184, 53,245, 77, 81, 20, 52, 26, 13, 42, 43, 43, - 81, 81, 81, 1,181, 90, 13,189, 94,111, 54,143, 77, 33, 36, 36, 4,113,113,113,252,232,232,232, 31,178,178,178, 0, 0, 62, 62, - 62,120,247,221,119,249,158,158,158,200,206,206,198,245,235,215, 97, 50,153,192,178,108,139, 55,175, 64, 32, 24,246,202, 43,175, - 12,242,246,246, 38, 76, 38, 19, 24,134,129,193, 96, 64,221,118, 94, 94, 30, 2, 2, 2,120, 29, 58,116,232,159,149,149, 53, 12, -150, 77,172,224, 0,160, 36,239, 16, 60,133,174, 0,207, 22,172,238, 16,202,203,218, 22,197, 69,169, 84,126,185,232,147,223,103, -126,187,218,212,174, 64, 1,248, 5,143, 67,215,192, 17,120,117, 26,133,232,175, 14,192,187,131, 31,114,115,115, 49,108,216, 48, - 81, 81, 81,209,107, 53, 53, 53, 11, 45,229,142,143,191, 66,159, 62,126, 98,226,164, 23,167,247, 14, 13, 13,167, 78,157, 58,142, -187,183, 79, 37,191,246,226, 4, 37,203,212, 16,142,246,178,155,233,105,215,186,118,239, 57, 20, 70,138, 14, 1, 62, 93, 13,124, -202, 54,127,191,195,120,236,152, 59,239,216,161,159,166,189, 52,117, 70,143, 17, 35, 70,146,167,226,143,226,250,229,248, 91,107, - 87,191,113, 62,122,253,190, 97, 97,163, 39, 4,185,180,187,116, 60,216,215,240,186,151,147,221,253,109, 59, 42,184,198,210,212, -189, 41,149, 50,168,125, 46,242, 8, 2, 44,203, 62, 34,178, 26, 11, 45, 30,143,103,214, 0,208,144,179, 97, 95, 84,247, 66,189, -101,203, 22, 72, 36, 18,136,197, 98, 8,133, 66,179,238, 23, 13, 57,147,179,179,135,239,140,137,145, 52, 37,178,202,203,203, 81, - 94, 94,142,154,154, 26, 76,153, 50, 69,244,217,181,107,207,162,214,245,163, 57, 78,111,119,119,131,149, 76, 86,146,146,146,226, - 17, 24, 24,248, 72,126,213,106, 53,100, 50, 25, 98,118,239, 22, 69, 70, 68,204, 29,113,252,248, 90,152,137,127,213, 84,217, 9, -130,128,171,171, 43, 28, 28, 28, 64, 16, 4, 40,138, 66,113,113, 49,146,147,147,113,237,218, 53,240, 9,130,250, 59,235,184, 41, - 45,242, 20, 90,181,182, 54, 57,116,216,220,152,104,107,132, 22,159,207,111,179, 85,171, 57, 88, 50,116, 40,151,203,239, 20, 21, - 21, 13,244,244,244, 4, 69, 81,245, 66,171,241,208, 97,157,245, 35, 41, 41, 9,114,185,252,142, 94,175,111,145,147,101,217,254, -125,251,246,197,193,131, 7,145,144,144,128, 7, 15, 30, 64,171,213,194, 96, 48, 64,167,211, 33, 57, 57, 25, 12,195, 32, 56, 56, - 24, 86, 86, 86,144,203,229,119, 12,134,150, 95, 68, 53, 26,141, 66, 40, 20,250,201,100,178,250, 99,238,238,238, 40, 47, 47,103, - 72,146,196,206,157, 59,213,110,110,110, 86, 50,153,204, 98,225, 74, 16, 4,148, 74, 37,218,183,111, 95,239,163, 85, 93, 93, 13, - 87, 87,215, 58, 97, 1,131,193, 0, 27, 27, 27,179, 67,135, 0,244,247,238,221, 91,208, 96,191,207,164, 73,147,126,217,187,119, -111,231, 51,103,206,224,234,213,171,112,113,113,193,127,254,243,159, 7, 57, 57, 57, 47, 1,184,166, 84, 62, 89,191, 72, 75,218, - 80,121,121,249,129, 59,119,238,244,239,219,183,111,253, 83, 98,216,176, 97,196,176, 97,195,156, 27,154,250, 75, 75, 75,241,199, - 31,127,224,204,153, 51, 32, 8, 2,153,153,153,180, 78,167,251,165,165, 81, 10, 79, 79,207, 29, 75,151, 46,181,166, 40,170,190, -109,203,100, 50, 72,165, 82,136, 68, 34,240,249,124,228,228,228, 96,236,216,177,118,223,125,247,221, 79, 6,131,225, 25, 0, 38, -252, 75, 80,165,131, 41,233,174,218, 46, 56,160, 93,242,214, 45,209, 3,103,205, 70,221,208, 33, 21, 28,224,154,156,116,183,196, -174,183,171,249,242,158, 56,147,255,150,145, 60, 17,117,226,100,226,228, 15,222,123, 87,232,227, 19,160, 60,115,238,134,247, 8, -234,115,194,201,217, 22,229,101,106,228,228,149, 32, 43,215,200,250,248, 4, 40,175,255,113, 71,242,213, 55,235,186,106,180,250, -186,161,195, 22,219,233,111,151, 30,140, 91,187, 65,114,126,250,107,125,196, 50,153, 7, 42,202,238,192,219,219, 5, 99, 35,187, -227,199, 93,151, 96,103,231,136,118,237,218,129,199,227, 89, 89, 90,246,178,178, 50,226,192,158,223,102,190, 50,227,141,231, 70, -141,140,160, 78,158, 58, 38, 72, 56,125,228,210, 79, 91, 63,138,101,249, 26, 57,193, 86,203, 58,118,114,187,125,255, 94,210, 75, -195, 67,167, 64, 38,178,233, 2,248, 55,217, 96,235, 39, 24,176,200, 59,184,247, 83,233, 43, 51,102, 13, 24, 53,234,121,234,212, -169, 67, 56,117,124,215,149,229,203, 59, 30,127, 80,184, 91,116,249, 90,129,116,220,196, 55, 43,227, 78,164, 26, 39, 68,117,202, -240,176,234,169, 3, 30,112,170,170,225,139,164, 64, 80, 66, 25, 12, 94,237, 71,141,226,107,115,115,133,214,237,218, 81, 0, 64, -146,164, 89,161,133,102,134,160, 27,115, 90,154, 23,173, 86, 11,166,153,216,137,141, 57,139,149,202,142,181, 47,225,245, 32, 73, -178, 94,100,149,151,151,163,170,170, 10, 86, 86, 86, 40, 53, 24,218, 89,194, 57,178, 95,191,157,159,125,250,233,194,253, 7, 14, -136, 26,138,172,186,143, 80, 40,196,170,213,171, 69,239,124,240,193,155,115, 5,130,249,160, 40,139,175,103,221, 75, 59,159,207, -135, 64, 32, 64,110,110, 46,242,242,242,144,155,155,139,220,220, 92,200,100, 50,176,127,243, 36,160,167,216, 63,171, 78,100, 53, -252,174,183,114,181, 24,222,161, 53,206,240,150, 10, 3,186, 21,227,187,150, 8, 45,141, 70,115,230,236,217,179,253,198,141, 27, - 39,184,114,229, 10,220,220,220,234,133, 86,221,119,221,112,148, 92, 46, 71,108,108,172, 73,163,209,156, 49,115, 51,157, 61,126, -252,120,239,101,203,150, 9, 95,125,245, 85,164,164,164, 96,246,236,217,168,170,170,130, 90,173, 70,121,121, 57,180, 90, 45,250, -245,235, 7,169, 84,138,219,183,111,147, 90,173,246,172, 25,139, 29,171, 84, 42,107, 92, 92, 92,220, 27,255, 54,113,226,196,118, -155, 54,109,210,166,165,165,145, 3, 7, 14,180,181, 84,112,212, 97,207,158, 61,245,150,186,140,140, 12,108,218,180,169,222, 39, -235,198,141, 27, 88,179,102, 77,125,236,179, 86,226, 90, 89, 89, 25, 69,146, 36,186,116,233, 2, 79, 79, 79,232,245,122,172, 91, -183,142, 2,112,237,255,171, 53,235,245,250,253,211,167, 79,255,240,230,205,155,238, 2,129,224,161, 73,187,182,124, 38,147, 9, -247,238,221, 67,114,114, 50,210,210,210, 80, 81, 81, 81,255, 34,144,148,148, 84, 73,146,228,190,230,120, 93, 92, 92, 62,254,241, -199, 31,221,228,114,249, 35,237,185,206, 26, 90,103, 37, 45, 45, 45,133,189,189, 61, 70,140, 24,225,122,246,236,217,143, 13, 6, -195,178,127, 73,159, 70, 76,124, 33,163,207, 59,111,141,195,248, 72,121,254,193,184,194,223,215,124,181,160,214, 25,222, 53,121, -124,164,103,254,173,116,123, 76,124,225, 80, 31, 0, 5,104,217, 97,155, 57,119, 94,113,184,111, 95,135,132,131, 71,142,252,180, -100,209,123, 55, 22, 46,120,195, 69,171,187, 47,245,233, 32, 38, 0, 32, 43,215,200,222, 78, 97,244,107,214,190,119, 35,122,245, -119,188,146,242,170,217,127,252,209,124,120,131,134,226,133,199,131,212,199,127, 72, 81, 87,223, 65,157,174, 92,138,129,181, 92, - 7, 63,255, 62, 24, 53,178, 63, 18, 18,147, 80, 92,170,135, 66,161,128,193, 96,104, 49, 92, 66,218,237,216,105, 44,193,122, 19, - 44,145, 71,240, 88,233,180,233,175,135, 68, 68, 60,207,198,197, 29,161, 14,197,198, 92,220,247,243,134,253, 60,145, 80,160, 51, -218, 25, 9, 66,175, 2,239,110, 74,141,230,225, 11,141, 80, 34,106,222,252, 90, 27,216, 53, 48,200,223,109,218,244,217,118,225, - 99,198,178,199,143, 31, 98,246,237,221,153,176,111,123,183, 24,134,167, 22, 41,242,181, 18,149,154, 84,177,132,216,190, 70,205, -104, 75,178,158,209,123, 68, 76, 52, 1,251, 57,117,213,176, 31, 48, 24, 10,106,242,243,221, 29,135, 12,145,220,251,244, 83,121, -187,126,253,244, 68,173, 15,113, 75, 66,139,207,231, 3, 60, 30, 99, 9,167,165,121,209,233,116, 96, 0,178, 45,156, 20, 69, 61, - 34,178,234,132, 86,221,253, 98, 9,231,214,229,203,175,120,143, 26, 85,145,152,152,216,110,232,208,161, 68,117,117, 53,170,171, -171, 31, 17, 91, 30, 30, 30, 68, 96,112,176,124, 79, 66,130,143,165,215,211,146,178,243,120,188,191, 93,104, 61,229,104,118, 33, -233, 22,151,224,169,179,104, 89, 34,180, 44,180,104,145, 36, 73,194,213,213, 21,101,101,101,205,118,252, 60, 30, 15, 50,153,172, -110,140,184,197,153,119, 6,131, 97,221,194,133, 11,231,141, 25, 51,198,217,207,207, 15,165,165,165,104,215,174, 29,164, 82,105, -189,239, 88, 29,223,141, 27, 55,240,227,143, 63,170, 13, 6,195, 58, 51,156,223,172, 94,189,250,173,241,227,199, 59,186,185,185, -193,193,193, 1,183,111,223,134,131,131, 3,212,106, 53,210,211,211, 97, 99, 99, 83,239,183,115,228,200,145,106,131,193,240,141, - 25,241,198, 94,184,112,193,100, 99, 99,115,187,180,180,148, 95, 81, 81, 33,168,172,172, 20,168,213,106,161, 74,165, 18,158, 60, -121,210,217,206,206, 78,123,238,220,185, 82,111,111,111,254,131, 7, 15,248, 36, 73,154, 85,175, 4, 65, 96,254,252,249, 16,137, - 68, 48, 24, 12, 88,183,110, 29, 22, 46, 92, 88,239,147,181,122,245,106, 44, 93,186,180, 94, 56,111,219,182,173, 85, 45,135,101, - 89,152, 76, 38,144, 36, 9,146, 36, 45, 18,191,143, 3, 11, 5,123,113,102,102,102,100,223,190,125, 79,255,250,235,175, 78,181, - 49,201, 80, 82, 82,130,146,146, 18,148,150,150,162,166,166, 6, 20, 69,193,211,211, 19, 37, 37, 37, 56,116,232,144,170,186,186, -122, 20, 90,152,113,200,231,243,167,135,132,132, 8, 26,231,161,238, 45,175, 78,188, 75, 36, 18, 20, 21, 21, 97,216,176, 97,226, -196,196,196,233, 0,158,106,161,213, 48,188,195,200, 81, 51, 69, 1, 65, 3,140,183,146,227,242,253, 59,149,228, 79, 29,107,123, - 12, 0,146,238,150,216,221, 74,183, 71, 64, 80, 36, 59,114,148, 67,239,146,226,173,221, 0,152, 90, 90,174, 7, 0,236,228,146, - 73, 97,161,253,138,108,172,172,120,107,214,110, 59,241,253,247,223, 60,187,255,216,159,225, 29,214,172,125, 24,222, 33, 44,180, - 31,147,150,154, 54, 9,192,118, 75,197, 75,100,100,212,205, 31,119,252,136,180,228,115, 30, 31,206,239, 46,174, 40, 33, 33,179, -246, 66,239,158,237,176,117,199, 29,220,186,117,171,216,104, 52, 14,107,177,125, 19,172,119,114,202, 93,223,110, 65,129,110,211, -166,207,178,141,140, 28,139,184,184,195,248,121,231,246, 11, 19,166,140,255,161,176, 82,205,119, 21,202, 69,114,150, 17,243, 69, -118, 2,145, 68,166, 52, 26, 31,206,129, 16, 10,165,182,192,164, 22, 59,158, 57,179,166,218, 13, 15, 29,139, 99,199, 15,227,231, -157, 91,207,127, 18, 52,113,123,167, 94, 1, 68,191,103,191,122,179, 83,231, 78, 29, 52, 53, 37,106, 30, 33, 54,233,245,140,205, - 87, 59,115,190,206, 90, 58, 61, 11,192, 90,112,179, 14, 27,226,246,207,225,225,125,223,185,127, 95,228, 50,104,144,172, 40, 33, - 65, 94,187, 18, 73,139, 66, 75, 32, 16,128,109,126,168,235, 17, 78, 98,215, 46, 30,128, 22, 39, 97,137, 68, 34,104,181, 90,144, -205, 91,176, 31,225,116, 63,117, 42,255,254,253,251, 93, 29, 29, 29, 31, 17, 89, 21, 21, 21,245,219,122,189, 30, 90,173, 22, 50, -153, 44, 89,215,244,136,200, 35,156, 37, 23, 46,232, 87,206,159,191,236,165, 41, 83, 54,156, 57,123, 86,234,228,228, 4,149, 74, -245,136,208, 50, 26,141, 24, 62, 98,132,104,245,205,155,211,160, 86, 47,183,228,122,182, 27, 54,204,172, 63, 48,159,207, 7,243, - 55, 15, 29,254, 11, 48,171, 41,225,197, 51, 55,132, 99,233,172,195,102, 58,200,198,171,123, 47,237,221,187,183, 62, 35, 35, 3, -222,222,222,245, 98,165,225,127,218,218,218,194,222,222, 30, 55,110,220,192,151, 95,126,169, 3,176,212, 12,103,181, 86,171,125, - 49, 44, 44, 76, 39, 16, 8,224,239,239, 95, 31, 63,139, 97, 24,136,197, 98, 88, 89, 89,225,230,205,155,136,138,138,210,106,181, -218, 23,241,215, 24, 90,141, 57, 85, 90,173,246,229,145, 35, 71,106, 83, 82, 82, 16, 18, 18,130, 91,183,110,161,166,166, 6, 53, - 53, 53,200,206,206, 70, 96, 96, 32,180, 90, 45, 54,109,218,164,211,106,181, 47, 3, 80,181,196, 89, 93, 93, 29,181,112,225, 66, -254, 47,191,252,210,201,211,211, 51,168, 79,159, 62,126, 35, 70,140,120,230,133, 23, 94,232, 16, 30, 30,238,222,181,107, 87,253, -168, 81,163, 92,198,140, 25,227,162,213,106,133,191,255,254,187,130, 36,201, 49,102,242, 89, 47, 78, 50, 50, 50,234,135, 10, 5, - 2, 1,202,202,202,234, 35,247,215, 61,148,154, 17,194,161,230,196,118,157,192,170, 19, 92, 22,248,185, 53,197,105,246, 36,177, - 88, 92,103,241,100, 45,224, 76, 74, 77, 77, 13, 27, 50,100, 72,210,204,153, 51,171,139,139,139, 97, 99, 99, 3, 31, 31, 31,248, -250,250,194,217,217, 25, 38,147, 9,177,177,177,154, 67,135, 14,221, 81,169, 84,195,240,215, 24, 90,161,141,174, 99,118, 83, 15, -217, 58,107, 86,157,208,146, 74,165,240,244,244,172,187,182,217,173,185,158,109,196,223,203, 89, 43, 96, 70, 12, 31,213, 57, 60, - 98,156, 93,236,225, 75,226, 13, 27, 15,221,233, 29,138,109, 78, 29,213, 71,156, 58,170,143,244, 14,197,182, 13, 27, 15,221,137, - 61,124, 73, 28, 30, 49,206,110,196,240, 81,157, 83,146,211,252, 26,174,123,216, 84, 62,165, 82,233,128,144, 65,189, 43, 19, 47, -158,103,162, 87,127,199, 27, 62,108,194,205,237, 63,196,198,110,255, 33, 54,118,248,176, 9, 55,163, 87,127,199, 75,188,120,158, - 9, 25,212,187, 82, 42,149, 14,176,164,236,115,102, 77,181,139, 8, 31,139,184,184, 88,106,255,158, 77,171,247, 30,200, 28,242, -250,188, 11, 37, 25, 25,183, 88,101,193, 41, 8,121,185, 72, 77, 77, 85,213,138,172, 12, 75, 56,103,191, 49,181,161,200,250,205, -201, 45,100, 91,106, 42,232,248,248,163,228,217,179, 55,117,191, 37, 41, 85,215, 83,202, 42,138, 74, 43, 30,168,213,229, 70,134, -161, 65,211, 52,255,179,207,234, 29,118,155,172,163,129, 3,135,226,220,153,221,216,185, 99,139,138, 97,160,159,180,127, 63, 61, -105,210,167,108,135,142, 29, 59,196,236,217, 77, 68, 62, 63,206,142, 5,152,168,241, 99,237,127,217,251, 11,209,185, 75,231,142, - 62, 62,245, 33,109,158,190,182,244, 55,112,126, 10, 84,170,115,115,207,223,248,238, 59, 67,187, 23, 95,116, 20,183,107,103, 11, -154, 38,234,158,239,205,125, 4, 2, 65, 99, 11, 76,179,156,158,206,206,133, 71,142, 28,129,175,175, 47, 60, 61, 61,209,208, 71, -182, 46, 32,183,147,147, 19, 14, 28, 56, 0,246,209,224,212,205,114,246,234,212,233,198,170,149, 43,141, 12,195,160,178,178,242, - 47,214,172,202,202, 74, 48, 12,131,227,199,142, 25,213, 15, 87, 2,177,168,236,195,248,252,154,151, 6, 15,142,142,136,136, 48, -221,191,127, 31, 12,195,160,161,101, 75,169, 84,194,218,218, 26,122,131,193, 11,128,220, 18, 78,229,201,147, 86, 48,243, 92,111, -194,162,245,119,212,251,211, 46,178, 26, 46, 40, 61,203, 34,139, 22, 69, 81,240,242,242,122,100, 73, 23, 30,143,247,200,167,149, - 51, 14,119,165,164,164,156, 26, 53,106,212,178,231,158,123,110,206,178,101,203,248,126,126,126, 80,169, 84,112,112,112,128,171, -171, 43,210,211,211,113,228,200, 17,186,172,172,108, 51,128, 21,176,108, 10,125, 66,102,102,102,100,247,238,221,247, 46, 94,188, -216,110,228,200,145, 66, 47, 47, 47,176, 44,139,155, 55,111,226,224,193,131,166,237,219,183,171,107, 69,150,165,206,203,167,139, -138,138, 38,140, 25, 51, 38,102,250,244,233, 54, 52, 77, 11,179,179,179, 97, 48, 24, 64,146, 36,242,242,242, 76,113,113,113, 53, - 90,173,118, 42,128,211, 22,240,221,168,170,170, 10,140,143,143,159,254,251,239,191,127, 57,115,230, 76,167, 17, 35, 70,136, 40, -138,194,197,139, 23, 75,123,245,234,229,170, 84, 42, 77, 7, 14, 28, 40,215,235,245, 75,105,154,182,104, 9, 30,130, 32,160, 86, -171,225,236,236, 12,131,193, 0,134, 97, 96, 52, 26, 97,109,109, 93,191,108, 18,203,178,104,141,115,125,163, 54,192, 55,153, 76, -152, 50,101, 10, 24,134,193,186,117,235, 64, 81, 84,171,201,236,236,236,174, 39, 37, 37, 69,246,236,217,179, 94,188,212,181, 33, -137, 68, 2,103,103,103, 56, 57, 57, 33, 46, 46, 14, 66,161,240,186, 57,127,183, 90,220, 42, 43, 43,235, 21, 31, 31, 63,224,206, -157, 59,175, 0,232,105, 50,153, 60,105,154, 38,120, 60,158,130,101,217,219,106,181,250, 7, 88,184, 4,143, 82,169,252,114,198, -140, 25,189,118,239,222,109, 45, 16,252,121,107, 8, 4, 2, 72, 36, 18,212, 5,199,100, 89, 22, 70,163, 17, 31,127,252,177, 90, -163,209,124,249,111,121, 74,244,238,211, 15, 91, 55,173,183, 62,123,238, 84,105,106, 38, 14, 54, 17,194,161,160,164,120,107,183, -162,252,124,235,222,125,250, 89,196, 73, 26, 77,229, 47, 79,125,223,187,118, 9,158,143,179,179,115,182,196,236,250, 58, 11, 0, -190,250,102, 93,215,146,242,170,217,105,169,105,147,182,108,217, 51,128, 52,154,202, 45,225,252, 83,188,196,168,192, 66, 15,224, -234,205, 59, 37,157,162, 94, 60,185,180, 75,103,219,231,149,229,186,194,154, 26,237,219, 0,178, 44, 45,251,160,129, 67,112,238, -244, 47,248,121,103,140,154,101,248,122,103,103,103, 22, 0, 82, 83,157,217,212,212, 42,246, 79,191, 98,123,141,144,189,181,226, -253,183, 71,188,175, 82, 87,124,179,110, 83,203, 67, 41,221,123, 60,135,238, 61,158,195,188,183, 63,178, 11, 12,242,247, 6,128, -253,251, 65, 7,117, 73, 57,186,236,147, 79,159, 95,177,226, 83,168,171, 13,168, 91,174, 39,253,110,202,177,172, 44, 24,185, 62, -235, 81, 44,163,168,171,120,255,253,174,218,138, 10,151, 65, 31,126,232, 44,248,224, 3, 94, 75,206,240, 13,239, 95, 75, 56,175, -221,190,125,108,246,235,175, 23, 46, 95,182,108,212,230, 45, 91,100,221,186,117, 67,113,113, 49,252,253,253,225,233,233,137,248, -248,120, 28,216,183, 79, 83, 85, 93,189, 20,192,247,150,112,238, 58,126, 60,221, 47, 40,168,108,203,150, 45, 30, 17, 17, 17,132, - 70,163,129, 74,165,130, 74,165,130,193, 96, 64,109, 64,104, 54, 35, 51, 51,149, 36,201,205,150,150,157, 46, 45,149,174,232,215, -175, 64,196, 48,171, 38,140, 31,191,112,197,231,159, 75, 58,119,238, 76, 24, 12,134,122,171,150,201,100,130,181,181,181,201,104, - 52, 58, 1,208, 90,194, 41,217,190,157, 42, 45, 45,133,139,139, 75,125,184,166,134,113, 9,171,171,171,193,178, 44, 23, 76,183, - 13,104, 86, 33, 57, 56, 56, 92, 23, 8, 4,237, 27, 90,183,154, 90, 59,175,225, 49,146, 36, 11,202,202,202,122, 55, 82,188,205, -249, 67,249, 0,248,207,240,225,195, 39, 44, 88,176,128, 72, 76, 76,196,161, 67,135,216,172,172,172,253,181, 86,172,172, 22,222, -116,154,227,180,145, 72, 36,239, 90, 89, 89,133,214,133,112,144,203,229,119, 52, 26,205,153,218,225,194,234, 54,112,218, 74, 36, -146,249, 86, 86, 86, 97,181,203,175,192,198,198, 38, 73,163,209,196, 27, 12,134,245,104,126,161,234,150, 56,101,118,118,118, 95, - 58, 59, 59,191,252,193, 7, 31, 56, 93,184,112, 65,113,238,220, 57, 81, 85, 85,213,110,163,209,216,210,162,210,127,225,116,116, -116,188,206,231,243,219,255, 77,117,132,238,221,187,199, 69, 69, 69, 69, 76,157, 58, 21, 36, 73,226,251,239,191, 71,124,124,252, -177,123,247,238, 69,154,121, 27,109,204,233,220,190,125,251,196, 57,115,230,116,152, 50,101,138,220,193,193, 1, 2,129, 0, 26, -141, 6,247,238,221,195,205,155, 55,217,195,135, 15,215,220,184,113,163, 64,171,213, 14, 5, 80,214,138,235,249, 56,111,205,143, -112, 10, 4,130, 33, 94, 94, 94,123,150, 47, 95,110, 19, 22, 22, 38,115,114,114, 2,159,207, 7, 73,146, 80, 40, 20,184,123,247, - 46, 78,157, 58,165,217,191,127,191,166,188,188,124, 10,128,243,255, 31,249,124,146,156, 1, 93,241, 73,163,133,162,155,141,246, -110, 38,173,217,124, 14, 31,226, 62,118,210,132, 49,163, 1,224,215, 3, 39, 78, 90,176,168,116,179,249, 52,151, 87, 75, 56,253, -187,240,150, 39,167,220,125, 36,160,101, 80, 96,112, 70, 64,183,241, 95, 88, 66,212, 32, 50,252, 35,101,111, 48, 28,219,208,166, -251,200, 48,107,128, 15, 34,199, 78,122, 33,226,163,165, 75,240,159, 47,163,113,248,215,216, 99,169, 89,143, 44, 19,244,212,181, -165,191,153,147,248, 66, 32,120, 78,238,238, 62,120, 29,195, 44,185,117,247,174,117,195, 23,182, 58,203,115,195,151, 74, 15, 15, - 15,165, 66,161,104,103, 9,103,228,183,223,154,180, 86, 86,146, 37,171, 86, 13,169,209,235,135,172, 88,177, 66,112,237,218, 53, -108,250,238, 59, 74, 95, 80, 16, 83, 10,204,111,102, 52,164, 89,206, 14,243,231, 75, 23,109,218,244,170, 79,151, 46,174,175,188, -242,138, 80, 40, 20, 66,163,209, 32, 63, 63, 31,167, 79,157, 50,166,164,166,166,168,213,234,231, 1, 20, 89,202, 25,249,237,183, - 38,123, 31, 31,200, 93, 92,216,179, 9, 9,118,179,223,125,119, 78,199, 78,157,236, 70,141, 30, 45,180,181,181, 69,101,101, 37, -178,179,179, 17, 27, 27,171,172,169,169,241, 0, 64, 91,194, 25,243,251,239,221,143,159, 63, 63,241,139, 47,190, 16, 7, 7, 7, -195,206,206, 14,213,213,213,184,123,247, 46,206,159, 63,111,216,188,121,179, 74,165, 82,205,161,105,250,200,223, 88,239,255, 6, -171, 86, 29,182,154, 21, 90,255,197, 27,176, 55,128, 79,106,183, 63,135,249, 53, 3,255, 77, 15, 31,111, 71, 71,199,173,122,189, -158,213,233,116,179, 1,228,253, 3,243, 41,232,221,187,247, 38,165, 82, 57,128,101, 89,216,217,217, 93, 74, 78, 78,158,139,102, -102,222,152,225,228, 3, 24, 96,109,109,221,207,198,198,102,136,193, 96, 8,168, 29,126, 75,213,104, 52,231, 77, 38,211,213, 90, -235, 19,253,255, 92,118, 62,128, 48, 15, 15,143,215, 25,134,233, 66, 16,132, 61, 77,211, 32, 73,178,138, 97,152,123, 42,149,106, - 59,128,248,127, 64, 62,159, 8,103,224, 51,120,129,229, 33,160, 57, 65,240,136,208,106, 36, 32, 8, 6,169, 41,247, 17,219,138, -124,242,198,132,122,109, 4, 30,206, 76,132,121,231,218, 63,133,150, 5,226,165,213, 34,243, 25,254, 12,150, 96, 31,225, 36, 88, - 34,207,191,251, 11, 63, 63,142,208,178, 20,129,190, 24, 2, 22, 3, 24, 22, 87,211,238,225,220,191,248, 89,247,196, 56,255, 3, - 56,126,231,224,112,137, 39, 16,184, 1,224,213, 90, 95, 24,134, 32,104,150, 32,168,134,195, 91,141, 94, 44, 91,228, 52, 1,221, -132, 18,137, 23, 77, 81,237,138, 1,235,227, 52,253,172,158,101,107,218, 3,159, 36, 1,233,109,201,167, 9,232,198,151, 72,188, -143,179,236,216, 82, 43,171,238, 74,157,206, 5, 0,107,109,101,149,170,214,104,118,234,245,250,141,248,235,200,133, 89, 78,145, - 68,210,158,166,168,118, 0,192, 19, 8,148,123, 13, 6,175, 2, 91,219, 87,244, 6, 67, 7,107,107,107,210,104, 52,170,245,122, -253, 84,138,162,206,182,166,236,247, 40, 42,240,119, 30, 47,196,100,101,229,100, 34, 8, 43, 35, 69,153,140, 38, 83,190, 94,175, -191, 3,224,107, 0,247,255,230,122,231,208,198,155,133,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,191,159, 83, 14,192,187, -246,101,241,105, 44,251,191, 9,150,249,104,113,224,192,129, 3, 7, 14, 28,158, 26,104,209,132, 79, 22,135,255, 95, 16, 45,168, -210,214,152, 4,219,162,108,207,112,156, 28, 39,199,201,113,114,156, 28, 39,199,249, 63,199,105,142,251,105, 28,146,108,118,173, -195,191, 27,156,249,151,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,255, 89,240,184, 75,208, 44,218,213,126,158,116, 90, 14, -255,238,182,208, 24,158,181,159,214,164,119,231, 46, 57, 7, 14, 28, 56,112, 66,235,239,238,180, 30,167,115,123, 92,225, 19, 77, - 16, 40, 34, 8, 20, 1,136,126,130,105,205,193,195,217,217,249,157,192,192,192,152,118,237,218,205, 3,224,218,202,243,187,202, -229,242,245, 86, 86, 86,137, 86, 86, 86,137,114,185,124, 61,128,174, 79,168,222, 8, 0,179, 37, 18, 73,130,187,187,123,161, 88, - 44, 78, 0, 48, 7,109,159,185,234,135,135,113,210, 62, 7,208,189, 53, 39,186, 6,141,221,231, 18, 52,246,182, 75,208,216,187, - 78,193, 81, 93, 93,130,198,222,117, 9, 26,123,219, 53,104,236,190,191,161,189, 62, 78,253, 70, 19, 4,242, 8, 2,121, 22,158, -251, 53, 1,228, 19, 4, 10,158, 64, 91,226,192,129, 3, 7, 14, 79, 27, 60, 60, 60, 38,184,187,187,159,113,119,119,143,247,240, -240,152, 96,193, 41,161, 77,116, 60, 52, 65,128, 54,211,145,180,148,206,156,185,178,225,185,107, 44, 44, 90, 67,206,118, 4, 1, -154,173, 5, 65,128,113,117,117,221,224,238,238, 30,221,248,227,234,234,186,129, 32,192, 52, 72, 75, 55, 16,120,173, 53,171,182, -155, 54,109,218,175,149,149,149,113, 70,163, 49, 46, 51, 51, 51,110,232,208,161,123, 27, 89, 55,154,229,148, 74,165, 47,245,237, - 55,224,198,249,139, 87, 51, 51,238,229, 20,165,164, 63,200, 57,122,242,236,181,224,110,221,255,144, 74,165, 47,181,162,142, 8, - 0,179, 5, 2, 65,130,181,181,117,129, 64, 32, 72, 0,240, 38,159,207, 63,178,114,229,202,156,228,228,228,146,223,127,255,189, -234,252,249,243,133, 51,103,206,188, 71, 16,196,209, 38, 4,123,104, 19, 86,154,198, 86,157,101,185,185,185, 39, 21, 10,197, 41, -153, 76,246,165, 5,233,235, 57, 93,130,198,222, 86,170, 76,172, 82,101, 98, 93,130,198,178, 13,182,111,183,242,154,155,171,163, -191,180, 5,137, 68,226,109, 70,208,135, 54,119, 46, 0,183,218,223,122, 3,248,182,246, 83, 55,245,220, 77, 42,145, 60,169,182, -244, 36,202,206,113,114,156, 28, 39,199,249,223,230,124,154,209,171,246,219, 29, 15,253,181,234,251,238,214,206, 58,124, 43, 51, - 51,211, 26, 0,124,125,125,231, 2, 56,208, 26, 33, 65, 16, 88,196, 48, 44, 15, 0,120, 60,226,195, 97,195,134,247,146,201,100, -143, 68, 65,214,233,116,226,132,132,115, 35, 24,134, 37,106,211, 45, 98, 89,172, 7, 80, 98,233,127, 24,141, 6,158, 80, 40, 6, -143, 71,188, 31, 28,220,173, 99, 89, 89,217, 5, 30,143, 23, 83, 88, 88, 88,217,106, 51, 14, 65, 96,219,182,109,190,238,238,238, -127,137,214,172, 80, 40,196, 99,199, 62,223, 42,190, 25,128,196, 32,145,244, 19, 17,132, 59, 77, 81,246, 0, 32, 16, 8, 42,175, -137,197,189,255,243,197, 23,114,130, 32,152,242,242,114,232,116, 58,188,247,222,123,178,148,148,148,113,101,101,101, 27,205,208, -250,118,239,209,235,189, 83,167, 78, 6,168, 43, 42,245,219,190,217,114, 67, 39, 16,105, 59, 5,250,139, 54,109,221,233, 48,235, -213,169,111,167,165, 37, 39,161,233,229, 72, 26,130, 7, 32,246,221,119,223, 13,138,140,140, 20, 87, 87, 87, 75,117, 58, 93,199, -152,152,152,143,123,247,238,109,221,179,103, 79,241,158, 61,123, 8,149, 74, 5,150,101,229,254,254,254,236,228,201,147,245,123, -247,238,157, 7, 96, 67, 11,194,119,209,195,107,201, 91,231,231,231,183, 28, 0, 50, 51, 51, 69, 13,174,177, 48, 32, 32,192, 10, - 0,210,211,211, 63, 99, 89,230, 93, 0, 96, 89,172, 6,176,164, 56,216, 47,198, 0, 0, 32, 0, 73, 68, 65, 84, 9,211, 90,102, -208,160, 73, 0,129, 46,201, 23,127,149, 6,133, 76,210,131,197, 61, 2,200,172,125, 33, 88, 1, 52,136, 11,245, 40, 82,139,138, -138,218,180, 54, 97, 68, 68, 36, 65, 16,196,254, 27, 55,110, 28, 80, 42,149,157, 24,134,126,163,165,124, 54,106, 71,132,147,147, -211,140,178,178,178,104, 0,175,167,166,166,246, 2,128,128,128, 0, 17,128,235,182,182,182, 3, 77, 70, 35,193, 61,171, 56,112, -224,192,225,169, 21, 90, 55, 1, 68,224,207, 37,120,182,182, 69,104,137, 1,224,194,133, 11, 0, 32,105, 67, 70,136,134, 2,102, -254,252,249,112,119,119,111, 44, 94,144,152,152,240, 56,133,125,228, 63, 62,255,252,115,235,170,170,170,208, 31,126,248, 97, 48, -203,178,107,138,138,138,174,152, 57,191,132,101,177,154,199, 35, 62, 36, 8, 2, 18,137, 52, 99,206,156, 57, 55,107,127,235,120, -244,232, 81,121, 84, 84,148, 22, 64, 14, 0, 72, 36, 82, 79, 62,159,231,203,178,108, 93,135,219,172, 32,156, 8,248, 80, 98,241, -240,217,223,126, 75, 61, 27, 21, 37,176,114,113, 33, 0, 32, 39, 45,205,105,245, 87, 95, 13,172,204,202, 18,235,156,156,202,203, - 53, 26, 93, 70, 70, 6, 36, 18, 9,193,231,243,159, 53, 87, 96, 43, 43,171,119,190,248,207, 42, 43,117, 69,149, 78,175,174, 54, -242, 41,210, 96, 35,147,211, 37,197,202,114,107,153,149,246,195, 79, 62, 21,191,245,198,244,119, 52, 26,205, 92, 51, 84,243,222, -127,255,253,128,190,125,251,122,238,219,183,143, 80,169, 84, 16, 8, 4,214, 61,123,246, 68,239,222,189,233,115,231,206, 17,157, - 58,117, 66,112,112, 48, 46, 94,188,136, 75,151, 46, 17,189,122,245,146, 31, 60,120,112, 26, 73,146, 27,204,137,107, 62,159,247, -158,191,191,127, 79, 43, 43, 43,163,175,175, 47,222,120,227, 13,176, 44,139,208,208,208, 96,107,107,235, 3, 26,141, 70,156,158, -158, 54,216,156,200, 86, 38, 31,158, 92,103,217, 2,208, 13, 44,238,149, 38, 31,110, 56,252, 24,144,158,158,254, 92,101,101, 37, - 30,214, 11, 91,191,128,249,224,193,131, 91,211,150, 74, 88, 22,171,163,162, 34, 63, 4, 8, 34, 52, 52,180,106,222,188,121,188, -180,180,180,151, 95,120, 97, 92,112,102,230, 61,180,144,207,134,237,136,152, 49,227,213, 18,107,107,235,241,251,247,239, 79, 87, - 40, 20, 2,145,168, 94,103,242, 93, 93, 93, 93,124,125,125,223,116,116,116, 84,242,121, 60, 87, 22, 44,107,174, 45,113,224,192, -129, 3,135,127, 20,142,213,138,171, 99,141,127, 16, 0, 64, 92, 92, 92,125,100,218,200,200,200,102,223,170, 89,150, 45,185,117, -235,150,151, 86,171, 5,203,178,150,116, 2, 13,167,104,150, 16, 4,111, 19,143, 71,204, 37, 8, 2,193,193,221, 30,172, 91,183, -174,169, 53,189,140,193,193,221, 30,240,249,188,206, 44,203,130, 32,120,223,179, 44, 83,210, 12,103,147, 29,163, 88, 44, 89, 4, - 0,110,110,238, 89, 39, 78,156, 48, 78,156, 56, 17, 95,125,245,149,104,241,226,197, 11, 5, 2,193,188,188,188,188,226, 22,242, - 9, 0, 75, 92, 92, 92,229,219,182,109,243,157, 51,103,206, 77,133, 66,177, 4, 0,220,221,221,163, 1, 4, 2,200,105,112, 12, -155, 55,239, 45,124,227,141, 55, 50,148, 74,229,146,230, 56,199, 3,207,120,249,251, 15, 95,113,225, 2,203, 51, 24,136,178,223, -126, 83,151,150,148,144,247, 75, 75,229, 59,174, 95,143,252, 56, 58, 90,232,229,237,141,196, 35, 71,156,203,180,218, 82,149,193, -160, 47, 41, 41, 97, 41,138,186,100, 65,217,131, 92, 93, 92,229, 91,190,254,254,154,141,144,207,184,182,247, 36,132,142,142, 2, -158,220, 86,204, 23,240, 12,157, 59,118, 21, 3, 8, 50, 87, 71, 34,145,104,218,200,145, 35,229,123,247,238, 37,130,131,131, 97, -111,111,143,223,126,251, 13, 73, 73, 73,168,172,172,228,145, 36,137, 62,125,250, 96,213,170, 85,240,246,246, 70, 85, 85, 21,242, -242,242,156,197, 98,177, 11, 73,146,205, 93,207, 71,218,211,162, 69,139,224,238,238, 14,138,162, 80, 81, 81, 1,138,162, 96,109, -109, 13, 0, 40, 40, 40,192,145, 35,135, 45,105, 75,102,193,178, 44,250,247,239, 95, 77, 16, 68,106, 99,139, 86,107, 56, 61, 61, - 61,247,148,150,150,141, 25, 62,124, 56, 42, 43, 43,201, 79, 63,253, 20,221,187,119,135,175,175,175, 37,249, 92, 34, 18,137,127, -232,208,161,195,215,243,231,207,119,119,116,116,132,193, 96,248,184,184,184, 24,111,190,249, 38, 0, 32, 60, 60,188,187, 80, 40, - 60, 49,115,230, 76,116,234,212,169,176,162,162, 34,239,198,141, 27,111,104,181,218,187,109, 45,187,133,224, 56, 57, 78,142,147, -227,252, 71,113, 90,170, 69,254,161, 80,224,209,112, 14, 91, 31, 17, 90,145,145,145, 68, 92, 92, 28,107, 65,193,202,219,183,111, -239, 37,147,201, 0,160,188,181,185, 96, 24,102,158,147,147,147,114,201,146, 37,131,124,125,125,141,243,230,205,187,155,147,147, -179,180, 97,154,142, 29, 59,126,249,221,119,223, 33, 35, 35, 35, 39, 58, 58,250, 98,121,121,121,107,215, 49, 91,204,178, 88, 87, -107, 29, 43, 59,114,228, 72,247, 11, 23, 46,204,253,230,155,111, 92,222,122,235, 45,209, 59,239,188, 51, 21,192, 87,230, 72,248, -124,190,182,169,225,194,166,224,238,238,110,228,243,249,205, 6,137,139, 4,100, 82,177,120,216,138, 11, 23, 88, 99, 78,142,246, -199,181,107,109,182,252,241,199,114,146,101,219,185,186,186, 34,100,224,192, 26, 41,159, 95,166, 44, 46,102, 92,159,121,134,159, -125,226,132,179, 78, 44, 46,218,187,119,175,170,188,188,252,144, 89, 19, 30, 65,168, 25,150, 53, 90,183,247, 38, 39,142, 11, 11, -190,118, 53, 41,205,198,213,153,215,171,103,112,247,180,140,156, 27, 96, 24, 19, 65, 16,106,115, 60,118,118,118,190,229,229,229, - 80,171,213,112,113,113,193,186,117,235,224,230,230, 6,173, 86,139,228,228,100,182,125,251,246,196,133, 11, 23,208,190,125,123, -148,150,150,194,104, 52,162,186,186, 90,105, 48, 24,154, 91,155,177,132,199,227,255,196,227, 17,175, 18, 4,129,206,157,125,114, - 55,110,220,104,100, 24, 6, 1, 1, 1,120,225,133, 23,112,240,224, 65, 36, 39, 39,215, 89,158,140, 29, 58,116,204,229,241,136, - 14,181, 90,169,205, 86,157,186,165,125,138,138,138,198,183,241,166,225,121,120,120, 76,237,210,165,203,220,151, 94,122,137, 20, -139,197,208,104, 52,117,215,130, 28, 51, 38,188, 42, 42, 42,210,238,216,177, 99, 45,230,211,104, 52,102,169, 84,170,215,223,127, -255,253,152,205,155, 55, 59, 44, 93,186, 20, 12,195,128,101, 89, 80, 20, 85,191,232, 55,195, 48,136,141,141,197,253,251,247,191, -108, 36,178, 56,112,224,192,225,127, 2,173,208, 34,255, 68,184,227,225,176, 33, 26,139,173,255,122,100,120, 62,159,191,229,244, -233,211, 61, 7, 15, 30, 44, 24, 49, 98, 68,240,201,147, 39,131, 11, 11, 11,239,214, 90, 15,130, 71,140, 24, 17,236,234,234,138, -245,235,215,107,249,124,254,150, 54,254, 77,125,167, 87, 92, 92,124, 19,192,154,131, 7, 15,174,158, 61,123, 54,220,220,220, 2, - 21, 10,197,127,181,204,182, 18, 73,175,153,235,214, 81, 66,146,228,125,187,102,141,237,218,132,132,213,251,126,253, 85,208,191, -127,127,130,101, 89,220,185,125, 91,182,106,195, 6,249,148,113,227,114,210,179,178,168,195,167, 78,145, 37,133,133, 21,133,165, -165,203, 0, 84,152,227, 39, 73,242,114,102,102,166, 71,200,144,254,158,231,255,184,155, 52,113, 92,248,112,161,128, 71,220,203, - 41,184,238,238,230,108,151,152,112, 70, 71,146,228,101,115, 60, 26,141, 38,155,162, 40, 71,150,101, 93, 18, 19, 19,225,226,226, -130,202,202, 74,144, 36, 9,163,209,104,212,106,181,210,242,242,114,232,245,122, 24, 12, 6,216,218,218,226,206,157, 59, 37, 20, - 69,157,107,142,147,166,233,153, 18,137,228,115,161, 80, 40, 22,137, 68, 69,215,175, 95,135, 90,173,238,104,111,111,255, 21, 69, - 81, 40, 42, 42,194,133, 11, 23, 62,176,181,181,205, 1, 0,169, 84, 10,177, 88,226,100, 48, 24, 40, 0,133,109,189,230, 44,203, -182,185,190,220,220,220,188,101, 50,217,138, 15, 63, 92, 20,208,163, 71, 79,148,150,150,130, 97, 24, 88, 89, 89, 65,171,213,194, -214,214, 22, 3, 6, 12,200, 94,177, 98,133,130,101, 49,203,156, 24, 84, 42,149,165, 2,129, 96,222,236,217,179, 63,247,245,245, -237,204,178, 44,186,118,237,138,145, 35, 71,226,196,137, 19,200,200,200,128, 70,163,161,175, 92,185,242,139, 66,161, 56,202, 61, -110, 57,112,224,192,225,169,195, 95,124,179, 30,177,104,253, 55,161, 84, 42, 75,211,210,210, 78,222,184,113, 35,114,242,228,201, - 72, 76, 76,156, 1,224,125, 0,144, 72, 36, 51, 38, 79,158,140, 27, 55,110, 32, 45, 45,237,164, 82,169, 44,125, 18,255, 41, 22, -139,245, 70,227, 67,227,148, 84, 42,149,182,242,244,142,181, 67,134, 0,208,177,133, 99,205,155, 70, 4, 2,247,110,163, 71, 11, - 42,147,146,212,219,174, 94,253, 60, 38, 38, 70, 48,104,208, 32,130, 52,153, 64, 51, 12,124,124,124,136, 17,161,161, 86, 63,197, -196, 56,210, 26,205,133, 47, 62,252,240,183,173, 51,103,214,100,214,250,129,153,131,193, 96,216, 48,247,205,215, 67, 19, 18,127, -243, 12,244,127,198,241,228,233,132,155, 78, 78,118,114,223, 46, 93,172,202, 43, 43,232,165,139, 63, 16, 24, 12,134,111,205,241, -232,116,186,216, 51,103,206,140,243,242,242,114,185,123,247, 46,140, 70, 35,104,154,198,136, 17, 35,192,178,172, 4, 0, 35, 16, - 8,144,150,150, 6,147,201,164,204,204,204, 44,186,119,239,158, 4,192, 74, 51,249,203, 53, 24, 12, 72, 77,125, 56,106,215,190, -125,251,176,136,136, 8, 80, 20,133,209,163, 71,227,240,225,195, 97,169,169,169,107, 27,106,190,199,173,243, 90, 11, 89,128,135, -135,199,193,218, 67, 22, 57,193,123,122,122, 6,251,248,248,108, 94,185,114,165,168,125,251,246, 96, 89, 22, 14, 14,246,208,106, -181, 40, 43, 43, 71, 96, 96, 32,188,188,188,176,114,229, 74, 0,248,197, 82,139, 91, 81, 81,209,189,162,162,162,201, 74,165, 82, - 84, 85, 85,213, 59, 44, 44,108,125,104,104, 40,110,222,188,137,223,126,251,109,138, 68, 34, 81,154, 76, 38,202,205,205,109, 22, - 65, 16,182, 38,147,105,119,121,121,185,130,123,118,113,224,192,129,195, 83,129, 58, 31, 45, 52,248,110,157, 69, 43, 32, 32,192, - 42, 39, 39,231,149,142, 29, 59,138, 1, 64, 38,147, 5,250,248,248, 44,204,202,202,170,110,109,110,180, 90,237,190,152,152,152, -145, 95,127,253,181, 40, 60, 60,252,153,131, 7, 15,246, 5,128,240,240,240,103,108,108,108, 16, 19, 19, 99,210,106,181, 79, 44, - 38, 18, 73,146,131,251,244,233,131,138,138, 10,228,228,228,180,106, 88,230,232,209,163,114, 60,244,203,106,241, 88, 75,160,140, - 70, 7,123, 79, 79, 94, 97, 66,130,169, 66,173,118, 31, 60,100, 8, 65,154, 76,224,241,120, 40, 47, 47, 71, 94, 94, 30,236,236, -237,137,180,204, 76,235,237,139, 22, 29,237,216,163,135,152, 54, 26,157, 90,145, 77, 77,153,178,228,213,183,231,189, 21,187,123, -247, 47, 46, 85,106,245,125,153, 76,110,144, 72, 68,110,243,223,126,155,174,168,168,152, 14,160,198, 2,158,149,187,119,239, 30, - 61,122,244,232,219,222,222,222,174,165,165,165,110, 85, 85, 85,116, 69, 69, 5, 31, 15,125,173, 8, 0, 72, 72, 72,128, 90,173, -166,104,154,190,128,135,177,176,140,150,102,180, 67,135, 14,118,189,123,247, 30,234,226,226, 2,149, 74, 5, 39, 39, 39,244,236, -217,115, 40,159,207,255, 33, 55, 55, 87,245, 36, 91,125,124,124,188, 13,203,178,207,177, 44,139,209,163, 71, 91,116, 14, 77,211, -175, 69, 68, 68,136, 8,130,128, 78,167,133, 84, 42,131,149,149, 53,108,108,108,225,235,235,135,162,162, 34,140, 26, 53,202,120, -255,254,253, 77, 10,133,162,213,109, 84,165, 82,141, 29, 48, 96,192,130, 55,223,124, 19, 20, 69, 97,236,216,177,200,207,207, 95, -155,157,157,189,215,195,195, 99,234,107,175,189,230,226,228,228,132, 5, 11, 22,200, 0,124,198, 61,187, 56,112,224,192,225,169, - 64, 99, 31,173,191, 90,180, 90, 26, 19,117,115,115, 11, 33, 8,226, 99,157, 78, 39,174, 27,146, 33, 8, 66,236,226,226,114, 88, -167,211, 69, 43, 20,138, 86, 57,197, 85, 85, 85,169, 31, 60,120,112,248,242,229,203,147,198,143, 31,143,248,248,248,233, 0, 48, -126,252,120, 92,190,124, 25, 15, 30, 60, 56, 92, 85, 85,165,126, 18, 37,247,244,244, 28, 51,100,200,144,241,125,250,244, 65, 92, - 92, 28,104,154,190,212,154,243, 27,206, 48, 68, 19,179, 14,235,142, 89, 68,198,231,131, 32, 8, 80, 20, 5, 0, 40, 43, 45, 69, - 70,122, 58, 42, 42, 43, 97,208,235,161,209,106,105,223, 78,157,116, 42,163, 81, 72, 0,173, 29,251,202,189,113,237, 74,158, 86, -163,113,117,114,112,212,201,229, 18, 84,169, 85,162,235,215,174,212, 0,184,111, 33,135,145,101,217, 33, 39, 78,156, 88,198,231, -243, 39, 91, 91, 91, 99,238,220,185,252,161, 67,135, 66, 36, 18,193, 96, 48,160,170,170, 10, 49, 49, 49,165, 52, 77,119,174, 61, -199, 90, 46,151,239,228,243,249, 5,213,213,213, 31,155,253, 3,163, 49, 60, 50, 50, 82, 96, 52, 26,241,197, 23, 95, 96,249,242, -229, 24, 61,122,180,224,218,181,107,225, 0,118, 63,169, 22,207, 48, 12,194,194,194, 26, 58,195,167, 90,114,158, 80, 40, 12,238, -210,165, 11, 74, 75, 75, 81, 90, 90, 10, 23, 23, 23,120,120,120,192,205,205, 13,107,215,174,101,215,175, 95,127,210,100, 50,109, - 42, 43, 43, 43,105, 67, 91,156, 53,125,250,244, 89,147, 38, 77, 66, 77, 77, 13, 46, 95,190,140,129, 3, 7, 98,245,234,213,238, - 23, 46, 92,120,191, 79,159, 62, 16, 10,133, 72, 76, 76, 4, 69, 81,249,220,115,139, 3, 7, 14,255,107,120, 74,253,179, 90, 68, -139, 22, 45, 47, 47, 47,123,154,166, 63,136,136,136, 8, 27, 55,110, 28, 70,141, 26,245,200,239,187,119,239,182, 57,112,224, 64, -244,134, 13, 27, 70,155, 76,166,149,173, 25,234, 99, 24, 38,118,247,238,221,225,253,251,247,151, 15, 27, 54,204, 7, 0, 36, 18, -137,113,247,238,221, 90,134, 97, 98,219, 80,150,186,224,142, 37, 0,224,225,225,209, 93, 32, 16,140, 31, 51,102, 76,247, 87, 95, -125, 21,201,201,201,136,137,137,185,231,235,235,123,177,164,164, 85,125,100,142,153, 89,135,209,230,172, 91,124,177,184,188,170, -184,216,222,218,219, 91,232, 96, 99,163,136,139,139,243, 10, 13, 13, 37,242,243,243, 81, 89, 89, 9,189, 94,143,107,215,174, 49, - 2, 32, 87,224,224, 64,228, 94,190, 76,240,197,226,114, 60, 58,147,207, 44,188,220, 29,186,126,178,120, 78, 71,189, 65, 31,164, - 82,169, 40,129, 80, 40,108,239,102,159,159,126,191, 85, 35,113, 6,185, 92,222, 27,128,128, 97, 24,173,163,163,163,252,244,233, -211, 16,139,197, 32, 8, 2,221,186,117,131, 84, 42, 21,177, 44,155, 7, 0, 54, 54, 54,226, 45, 91,182,216, 77,157, 58,245, 55, -115,196,189,122,245, 18, 74, 36,146,231,125,125,125,113,249,242,101,220,189,123, 55,247,242,229,203, 29,122,245,234, 5,111,111, -239,231,221,221,221,127,189,121,243, 38,249, 36, 26,246,195, 25,171,173,119,134,167,105,154, 33, 8, 2, 60, 30, 15, 12,195,160, -180,180, 20,157, 59,119,198,198,141, 27,177,110,221,186, 47, 20, 10,197,145,182,228, 39, 32, 32, 64,212,185,115,231,233,147, 38, - 77, 66, 86, 86, 22,162,163,163,203, 20, 10, 69,194,169, 83,167, 38,188,249,230,155,252,129, 3, 7,162,188,188, 28, 63,253,244, - 19,117,253,250,245, 31,139,139,139,119,113,143, 92, 14, 28, 56,112,248, 23, 11, 45, 47, 47,175, 73, 34,145,104,193,139, 47,190, -200,247,243,243, 67, 73, 73, 9,108,109,109, 73,130, 32,132, 0, 96,111,111, 79,202,100, 50,204,153, 51, 7, 61,122,244, 8, 89, -180,104,209, 64,129, 64,176,177,168,168,104,167, 37,127,172, 84, 42,181, 60, 30,111,255,220,185,115, 87, 38, 37,221,236, 12, 0, -127,252,241,199,131,162,162,162,197, 74,165, 82,219,202,114,212, 5,197, 36, 36, 18,233,213,174, 93,187,102,247,238,221,219,118, -220,184,113,112,113,113,193,141, 27, 55,176,106,213,170, 76,163,209,184,236,252,249,243,212,127,251, 34, 83, 6, 67,241,245, 67, -135,108,134,190,252,178,237,252,136,136, 53,111,205,157,251,245, 39,159,124, 34,240,243,243, 35,180, 90, 45,174, 94,189,202, 30, - 56,112,128,252,233,243,207,215,193,202, 74,120,249,192, 1,177,209,104,204,109,165,181,100,200,160,193, 33,126,107,190,222, 0, -189,174, 6, 87, 47, 29, 67,101,101, 41,182,108, 61,232,231,233,201, 14, 41, 44, 44, 60,111, 41, 23, 65, 16,190,241,241,241,174, - 44,203, 66, 44, 22, 99,197,138, 21,240,240,240,128,173,173, 45,170,171,171,241,254,251,239,219,189,251,238,187,118, 0,144,156, -156, 92, 31,158,193, 28,138,138,138, 6,204,153, 51,199,134,162, 40,156, 60,121,210, 72, 16,196,199,103,206,156,249,161, 91,183, -110,226,144,144, 16,155, 93,187,118, 13, 4,144,248,164,132, 86, 27,207,187,119,250,244,233, 62,147, 39, 79,102,133, 66, 33, 81, - 85, 85, 5,123,123,123,108,220,184, 81,163, 80, 40,142,181,185, 13, 80,148, 88, 46,151,139, 89,150,197,254,253,251,145,155,155, -251, 90,121,121,121, 49, 77,211, 7, 63,248,224,131,133,126,126,126,157,210,211,211,115,171,171,171, 87, 43,149,202,108,238,209, -196,129, 3, 7, 14, 79, 21,234,156,224,235,102, 31, 30,195,195,225,196,230,133, 22, 77,211,115, 78,157, 58,197,103, 24, 6, 91, -183,110,197,245,235,215, 89,185, 92,254,177, 92, 46,255, 78, 38,147,209, 58,157,110,246, 27,111,188, 49,117,249,242,229,188,144, -144, 16, 92,190,124,153,215,185,115,231,233, 0, 26, 10,173, 80,180, 16,107, 67,165, 82, 93, 43, 41, 41,238,220, 32, 64,101,103, -137, 68,122,205, 76, 97, 26,115, 54, 14,138,217,111,197,138, 21, 26,119,119,119,227,221,187,119,177,121,243,102,230,250,245,235, - 9, 98,177,120,139, 66,161, 48, 88,200,249, 36, 80,207, 41,166,168, 27, 63, 47, 92, 24,240,236,216,177,204,235, 11, 22,212,136, -100,178,119,214,108,216,176,168,170,186,218, 3, 4,193, 58,217,217,229,110, 93,177, 34,122,244,243,207,215, 36,159, 63, 47, 77, -138,143, 23,186,144,228,173,214,228,179,176,176,240,124, 98,226,111,216,177,237,107,152, 76, 6, 40, 10, 31,234,180,178,114, 21, -204,136,172,191,112, 82, 20,165,154, 48, 97,130, 8,128,108,218,180,105, 98,165, 82,137,103,158,121, 6, 0,160, 86,171,113,236, -216, 49,248,251,251, 3, 0,238,220,185, 83,191,109, 46,159, 86, 86, 86,207, 15, 28, 56, 16,185,185,185, 72, 78, 78, 62,171, 80, - 40,202, 1,156,205,207,207, 15,239,211,167, 15, 98, 99, 99,163, 90, 16, 90,173,170, 35, 11,133,214, 95, 56,101, 50,217,226,131, - 7, 15,190,118,233,210,165,201, 11, 23, 46, 20,142, 24, 49, 2, 0, 80, 93, 93,173, 5, 64,183,133,179, 97,158, 72,146, 4,195, - 48,112,116,116,212,148,151,151, 67,169, 84,102, 43,149,202,185,247,239,223,111, 19,231,147,104,159, 28, 39,199,201,113,114,156, -255, 16,206,127, 3, 44,143, 12,207,178, 44,197, 48, 12, 18, 19, 19,113,240,224, 65,218,100, 50,205, 82, 40, 20,119, 26, 36,217, -112,227,198,141,248, 9, 19, 38,236, 76, 79, 79,231,167,164,164,128,101, 89,186, 53,185,209,235,245, 36, 65,252,245,216,227,150, -114,199,142, 29, 40, 46, 46, 54,229,231,231,159,161, 40, 42,246, 49,103, 47, 62,246,172,195, 29,128,225, 37,163,241,204,242, 65, -131,194,150,197,199, 75, 94,255,232, 35,195,140, 87, 95,253,128, 54, 26, 73,190, 72,196,136,173,172,120,180, 68, 34, 76, 62,127, - 94,186,254,205, 55, 29,117, 6,195,201,152, 86, 56,152,215, 89,180,134, 14, 13,193,140,215,223,131,174,129, 69,235,242,181, 12, - 24, 76,104,149, 69,203, 96, 48, 4, 41, 20, 10, 72,165,210, 60, 0,110,175,188,242, 10, 24,134,129, 78,167, 67,117,117, 53,138, -138,138, 84,175,190,250, 42, 93, 43,158, 4,227,199,143,183,181,132,215,199,199,199, 67, 40, 20,226,228,201,147, 16, 10,133,199, - 0, 64, 40, 20, 30,139,143,143, 15,159, 50,101, 10, 60, 61, 61,125,178,178,178, 8,152,241, 79,115, 13, 26,187,143, 5,186,130, - 64,151,135, 38, 56,116,113, 9, 26,123,155, 0, 50,107,163,198,167,246,234,213, 11,176,208, 47,171, 33,106, 39,119,172, 35, 73, -242,215, 69,139, 22,205,237,215,175,223,200,229,203,151, 19, 0,248, 79,226, 14,164, 40,234,177, 66, 79,112,224,192,129, 3,135, -127,180, 85,235, 47,104, 86,104, 17, 4,177,117,200,144, 33,179, 0,240, 9,130,216, 92, 84, 84,116,167,113, 26,133, 66,145,225, -225,225,241, 85,167, 78,157,102, 3, 96, 9,130,216,218,202, 76,149,176, 44, 86,241,120,196,162,135,226,174, 77, 1, 42,235,150, - 58, 89, 4,128,224,241,248, 59,111,222,188,249, 81, 94, 94, 94,169,133, 22,136, 22,241, 36,102, 29, 2,192, 47, 64,246,139,185, -185,167, 22, 4, 7,135,142,126,243, 77,116, 31, 61,218,214,163, 67, 7, 90,103, 50, 49,119, 46, 94, 36, 46,237,223, 47, 74,138, -143, 23,234, 12,134,147,177, 64, 94,107,243, 89, 88, 88,120,254, 92,194,249,211, 19,199,135,143,244,233,228,241, 80, 52,100, 23, -161,172, 66,117,186, 53, 34,171,145,232, 29,187,113,227,198, 35, 34,145, 72,208,112, 41, 27,147,201, 84, 97, 48, 24,130, 0,160, -178,178,210, 99,235,214,173,123,120, 60, 94,174, 57,190,148,148,148,195,203,150, 45, 27,159,147,147,115, 58, 63, 63, 63, 7, 0, -242,242,242,114, 72,146,220,169, 80, 40,198,231,230,230, 30,128, 5,147, 0, 88,160,107,242,197, 95,187, 1, 64,208,160, 73, 72, -190,248,171, 20, 64,183,160, 65,147, 0, 0,109, 93,203,176, 33,106, 67, 43,124,124,249,242,229,221, 35, 71,142,124, 3,143, 17, -211, 11, 0,140, 70, 35,169,211,233, 40,154,166, 5, 38,147,137, 53, 26,141, 36,247, 76,226,192,129, 3, 7,203,193,178,108, 31, - 0, 46,181,187,117, 6, 20,151, 70,219, 70,212, 46, 23, 88,247,248,173,221, 47, 37, 8,226, 90, 3,142,250,227, 22,156, 11, 0, -101, 0,110, 19, 4,209,156, 17,100,107,115,251,205, 10,173,162,162,162, 3,176, 96,209,104, 75,211,181,128, 37,181,235,196, 1, -109, 95,219,173,158,131,166,233,146,188,188,188,199,174, 80, 30,143,151, 29, 21, 21,213,170,244,230,210,236, 5,114,223, 54, 24, -118,197,125,251,109,207,147,155, 55,123,210, 20,229, 68, 0, 44, 95, 44, 46, 55, 26,141, 57, 46, 36,121,171,181,150,172, 71,172, - 49, 15, 10, 71,101, 61, 40, 68,151, 46, 93,216,123,247,238, 61,180,245, 60, 30,110,105, 52, 26, 47,115, 77, 64,171,213,134, 88, - 40, 6,127, 41, 44, 44,252,165, 9,193,190, 71,161, 80,236,177, 52, 83,245,139, 74, 3, 60,134, 96, 38, 6, 13,154,180, 31, 0, - 83,183,168,244,147, 68,113,113,113, 58,106,227,188, 61, 14,114,115,115, 13, 4, 65,252,188,106,213,170,105, 73, 73, 73,123,139, -138,138, 12,220, 99,147, 3, 7, 14, 28, 90, 39,178, 8,130,136,171,221,143,172, 53, 10,197, 53,222,174, 75, 83,151,174, 97,154, - 58,142,198,199, 91, 58, 23, 0, 22, 47, 94,252, 81,116,116,180, 28,128,165,139, 49,183,121, 81,233,191, 11, 37,255, 16,142,134, -162, 96,219,223, 81,208,111, 1, 35, 40,234, 10,168, 6, 62,249,228,147, 53,110,220,187,119,143,248, 55,223,112,117,139, 74, 55, - 64,240,211,144,239,156,156,156,141,222,222,222, 91,138,138,138, 40,112,224,192,129, 3,135,214,192,165, 41, 97,212,140, 40,139, -108,233,247, 71, 94,220,155, 72,215,212, 62, 65, 16,113,209,209,209,145,173,200,111,189, 69,139,199,213, 29, 7, 14,255, 61,252, -127,204,122,229,192,129, 3, 7, 14, 77,163,177, 21,171, 78,124, 53,222, 95,188,120,241, 71,104,121,196,201, 29, 15,173, 88,238, -181,251,245,254, 90, 4, 30,206, 28,104, 10,173,153, 77, 16,218,134,242,157,225, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, -127,142,211, 28,247,153, 38, 4, 81, 68,115, 67,125, 45, 13, 35, 54,222, 54,119,174,185,180, 4, 65, 52, 23,230,167,110,168,176, -241,247,223,142, 80,142,147,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,199, 1,203,178,125, 88,150,141,192,195, 9, 83, 44, -203,178, 17, 44,203,142, 94,188,120,241,146,186, 99,139, 23, 47, 94,194,178,236,136,186,116,181,105,234,207,169, 59,214,248,187, -241,177,150,210,182,144,197, 89,141,182,235,247,255, 41, 62, 90, 28, 56,112,224,192,129, 3, 7, 14, 77,162,110,198, 96, 3,107, - 83, 41,128, 59,209,209,209,149, 13,124,167, 74, 1,220, 2,208,163, 54, 93,105,173, 72,107,232, 91,101,172,221, 55, 54,145,198, -104, 73,218,102,176,181,153,109, 78,104, 53,135, 30,110,188,207,189,219,187,246,174,173, 0,176, 12, 3, 0, 96,106, 99, 32,177, -117,193,144, 24, 6, 44,203,162, 72, 89,117,227,142, 18,159,180,245,255,124, 61,224,232, 42,149,174, 99, 88,118, 80,237,161,243, -170,114,195,123,201,106, 84, 89,202,225,223, 14, 1, 82, 30, 62, 96, 88,116, 7, 0, 30,129,219,122, 6, 95,165,149,180, 62,158, - 84, 83,237, 60,200, 5,179,196, 50,249,139,118,246, 14, 93, 42, 43,203, 50, 77,122,195,175, 41,165,216,130,214,175,203, 8, 31, - 7, 60,199,176,248, 8, 0, 79,200,195,218,204, 10,139,103,114,112,224,192,129,195,227, 90, 71, 30, 43, 46, 30, 65, 16,116, 19, -156,196, 99,114,114, 1,246, 44, 16, 91, 77, 28,254,163,137, 99,215,254, 73,249,110,149,208, 10,116,193,155, 32,240, 41, 0, 22, - 44, 62, 75, 41,197,247,173, 58,223, 29,161, 82, 62,127, 59, 0,190,222, 68, 47, 96, 25, 92,104,242, 98,242, 48, 88, 42,226,175, - 5,192,232,105,122,102,138,194,114,127,177, 32, 79,140, 22, 48,188,159, 25,150, 21,210, 12,187, 19, 44,226,172, 69,248,253, 74, - 33,244,173,201,171,119,123,215,222,135,254, 80,140, 76,248,126, 62,250,117,127, 6, 44, 77, 1, 12, 9,121,200, 7, 56,251,205, - 43,232, 23,224, 13,150, 33, 1,134,130,245,152, 53, 24, 19,108,199,222, 81,182,109, 29,108, 95, 15, 56,118,112,118,189,187,109, -219,118, 55, 15,159, 64,130,161, 76, 72,255,227,244,212,119, 23, 45, 27, 30, 4, 85,176, 37, 98,171,187, 59, 94,247,238,232,247, -193,123,159,126,205,119,247,240,178, 98, 72, 3, 85,156,157,218,107,195,234,101, 7, 68,188,220,181,183, 21,216,110,105, 91, 14, -116,193,108,129, 68, 60, 73, 38,181,234,162,213, 86,223,163, 77,228,175, 60,161, 96,244, 87,107,214,245, 28, 26, 22,110, 77, 87, - 23,243, 72, 6,129,251,246,238,233,240,237,198, 77,225,119, 21,244,243, 0,152,214,148,153, 97,177, 40, 99,215,172,112,161,128, - 79, 4,188,182,141, 15, 80,109, 18, 90, 1,174,120,137, 96, 97, 54,188, 4, 75,224,183, 84, 37,126,105,203,127,248,187,226, 7, -130,133, 47, 8,236, 39, 88,236, 73, 41,133,146,123,228,113,224,240,239, 2,143,199, 75, 96, 24,102,216, 19, 22, 6,207,177, 44, -123,133,187,186,255,219,104,157, 69,139,192, 23,201,247,243, 29, 64,155, 16,228,235,243, 57,208, 58,161, 37,229,243,119, 94,203, - 44,113, 3,101,194,182, 47,231,238, 53,146, 0, 69,154, 64, 83, 36,104,138, 4, 69,153, 64,147, 36, 88,210,128,101, 63, 38, 0, -198,106,244, 14,238,186, 19,160,221, 45,253, 15, 33,203,251,249,198,197,211,142,132, 81,133, 95,190,143,126, 59,191,180,230,237, - 51,183,139,202, 2, 93,117, 75, 82,148,248,169, 53,130, 32, 97,243,124,196,196, 30, 43, 88,255,131, 38,141, 97, 89, 56,218,202, -252,166, 70, 38,123,237, 58,156,144,191,110,167, 62, 13, 0,236,172,196,126,211,111,103,122, 63, 78, 37,184, 74,165,235,182,108, -250,214,205,221, 73, 70, 80,151, 86,130,162,105,120,117,136,224, 47,153, 55,213,253,139,111,182,127, 3,181, 97, 70, 75,231,251, -185, 34,176, 99,167,128, 5, 59,143, 93,242,214,168,149,198,211,187, 63,186, 15, 3, 72, 55,207, 0,225,231,209, 95,243,151,126, - 56,255,125, 35, 93,112, 53, 93,137, 20,115,207,154, 0, 87, 28,142, 94,185,166,251,240, 49,145,214, 76, 77, 41, 95,175,169,241, -221,246,227,246, 79,253,187,247,149,135, 4,183, 23, 41,127,157, 67,232,170, 43, 96,226, 73, 37,195,131, 66,109,117,211,166,144, -219,118,196,204, 75, 81, 98, 67,107,202, 76,179,127,182, 61,134,105,123,212,117,130, 69, 72,210,149,132,217,116,209, 53,176, 52, - 9,208,166,250,111,208, 36, 88,230,225,119,191, 57, 63, 2,104,155,208,226,177, 24,121,230,226, 53,247,146, 98, 69,159,111,214, -252,103, 9,123,237,218, 9,208,248, 57,181, 2,231, 91, 43, 48, 57,112,224,240,143,182,152, 80, 44,203, 10,158, 48,103, 56,203, -178,199, 31,147,230, 3, 0,175,215,110,111, 7,240,213, 19,200, 90,123, 0,110,181,219,197, 0, 10,184, 22,240, 88,104,236,252, -222,230, 56, 90, 82,176, 12,176,127, 28, 0,200, 90,155, 11, 22,144,130,224, 3,164, 6, 99,199,132,193,217,213, 13, 32,181,128, - 73, 11,144, 58,128,212, 0,164, 14,101,138, 92,192,164, 1,178, 78,128, 98, 89, 73,171,139,107, 80, 1, 25,191, 98, 68, 47,111, -184,216, 73, 49,127,108,160,243,214,147, 25,219,183,159, 78, 15, 77, 81,226, 69,139,242,202,178,232,215,173, 11,214,111,215,164, - 29,189, 89, 58, 10, 0,194,123, 56,157,236, 23,216,193,107,221, 78,125,218,241, 59,149,163, 1, 96,116,144,237,137,190,126,238, -222, 12,218,110,245,101, 88, 54,196,163, 99, 23,130, 78,218, 2, 70, 93, 0,181, 90,135,130,236, 93,112,240,124,150, 71, 51, 24, - 98,238,124, 25, 31,139,223, 89,186, 74,168, 85,151, 24, 25, 83, 41,237,194,175,228, 11,196, 12,129,194,243,134, 26,166,138,126, -111,214, 43,212,130, 79,190, 92, 12, 96,106, 75, 60,129,174,152,183,118,237,186,110, 3,123,251,187, 22, 31,152, 79,212, 84,150, -128,226,203, 37, 99,251, 15,132,125,215, 64,166, 36,113, 45, 33,246, 9,133,189,147, 15, 10, 47,237, 70,206,149,131,196,160, 94, -227, 37, 63,253, 34,154, 6,152,154, 20, 90, 93,156, 49,104,212,224,190,123,125,188, 61,220, 89,150, 1,195,176, 96, 25, 26, 53, -122, 18, 75,246,101,129,166,105, 76, 24, 53,104,132,149,152, 96, 25,134, 1,203, 50,200, 47, 46,215,158,187,154, 54, 34,171, 18, - 87, 45,177, 84,245,120,110,216,160,219, 55,174,248,147, 25, 71,209,123,106,116, 26, 1, 92,108,208,230, 6,221, 60,245,147, 63, -240, 99,219,181, 28, 1, 58,231,228, 74,120, 15,158,197,223,242,203, 73, 23, 85,105,225,244, 3,187, 54, 77,252,126,203,150,152, - 52, 37,230,112,207, 23, 14, 28,254, 29, 96, 89,246,137,139,173,220,220,220,162,199, 17, 91,158,158,158,131, 11, 11, 11, 87,215, -121,171, 16, 4,177,186, 99,199,142,203,254,124, 81,125,228, 93, 79, 69,211,244,212,194,194,194, 11, 45,113, 70, 68, 68,120, 28, - 59,118,172, 83, 3,206, 78, 0, 58, 53,149,214,222,222,158, 30, 48, 96, 64,206,177, 99,199,138,184, 22,210, 38,193,213,106,161, -149,150,247,235,252, 94, 6, 69, 13, 0,164, 89,144,254,145, 33, 63, 61, 73,175,220,241,233, 43, 43,131, 58, 58,162, 90, 99,196, -233,235, 57,160,105, 18, 52, 69,213, 90,182, 40,208, 20,137, 81, 61,156, 49, 64, 63, 7, 27,226,210, 65,209, 76,116, 75,156,141, - 97, 98,153,151,122,134, 78,222,199, 48,172, 88, 34,228,169,124,189,156, 92, 23, 76,232,193,155, 63, 54, 8, 58, 19, 53,121,119, -226,253,115,169, 74,108,179,136,147,249,107,200, 35,182,169, 99, 52,101,182,236, 45, 88,163,250,133, 14, 13,177,101, 13, 42,144, -101, 89,168,214,146,200, 42, 39, 81,172,175,130,132, 80, 88,196,201,176,232,222,222,211, 93,254,251,222, 15,179,157,248,106,129, - 43,159, 18,137,121, 20,104,134,229,179, 85, 41, 6, 71,255, 48, 97,157,223, 86, 75,249,148,201,109, 94, 25, 60, 50,194, 46,111, -247, 44, 66,230, 59, 10,174,189,188,144,125, 97, 7,148,215,227, 80, 94,148, 67,216,234,171,208,206,233, 25,140,153,250, 34,190, -122,177, 15,170,213,213,224, 43,238,219,137,133, 18,123,192,212, 36, 39, 75, 99,234,218, 85, 95,186, 11,248,188,135,215,179,238, - 67,147,208, 25, 12, 0, 77, 65, 42, 96, 64,176,117,191,145,160, 73,147,188,251,248, 15,231, 2,244, 85,115,101, 79, 85,226,151, - 64, 23,132,128, 33,253, 89, 82, 7, 2,184,152, 82,250,167,248, 9,112,197, 75,207,142,122, 53,132, 37,240, 91, 91,234, 40,216, - 9,145,189, 59, 89, 91, 89,169,211, 80,176,255,109,220,135,148,109, 55,240,117,188,244,218, 60,249,214,173, 91,163, 0,246, 77, - 60,234,163,246,119, 44,178,202,113,114,156, 79, 37,167,173,173,109,231,142, 29, 59, 46, 35, 73,114,176, 72, 36,106,103, 50,153, -192, 48, 76,177, 88, 44,254, 45, 39, 39,103,133, 90,173,126,240, 79, 43,251,237,219,183, 91, 35,182,204,114, 10,133, 66,164,167, -167,223,107,133,216, 58,211,232,252,159, 47, 94,188,136,125,251,246, 1, 0, 50, 50, 50,208,181,107, 87,171,166, 78,204,206,206, -182, 26, 58,116,232,207, 0,188, 90,226,188,115,231, 78,231,163, 71,143, 98,255,254,253, 0,128,244,244,116,248,250,250, 54,153, -153,139, 23, 47,242, 95,126,249,229,206, 0,138,254, 11,117,244,111, 16, 89, 13,191,255, 20, 90,113,113,113,108,100,100, 36,209, -120,187, 9,100,121, 59,136,123, 65, 79, 3, 64, 86,107,115,144, 90,130, 85,235,119,157, 26,125,118,255,198,193, 82, 17, 15,203, -183, 45,200, 47,173,168,126, 78, 64, 60, 28,126,161, 88,240, 28,172,197,151,163,167,247,240,174,172,209,227,200, 31,133, 23, 82, -148,173, 51,145,166, 40, 16, 15, 48,246, 15,247,104,232,117, 74,223,233, 95,197,239,217,179,120,116,247,247,198,118,199,225, 75, - 57,239, 1,148,217,168,239, 44,195,128,101,168,122,231,247,218, 87, 7,128,121,116, 81, 96, 6,236,195, 99, 76,235, 44, 90, 67, - 0, 65,165, 43,198,216,200,197,223,205,158,253,134, 45, 89,154,137, 10,163, 8,249,149,122, 20,235,132,168, 17,184,162, 48,237, - 14,205, 35, 16,111,214,228, 66, 64,205, 82,122,123, 7,177, 53, 47, 56,108,174,167,250,228, 71,149, 98,130,226,219,190,240,133, -125,217,217,175,115, 40, 77,169,134, 32, 96, 54,252,188,157,157,125, 87,125,121, 14, 95, 85, 89, 6,123,183, 32,140,158, 28,137, -207, 34, 2, 81,173,214,160,180,226, 50,219,197,221,150,200,253, 45, 6, 75,199, 4,160,188, 68, 1, 3, 9, 16, 26, 67,133,222, -168,175,105,246, 58,242,176,229,221,133,139, 94,234,224,238, 98, 85, 55,169,128,101,104,244, 8,240, 65,216,224,126,136,191,248, - 59,174,221,201, 0, 83, 59,169,128,101, 24, 20, 40, 43, 75,244, 38,122, 71,171, 46, 40, 77,129, 37,245, 77, 10, 49,180, 97,200, - 48,216, 21,114, 26,248,164, 79,103,155,153,139, 35, 59,216, 88, 73, 8,232, 73, 26,122, 35,137,234,223,191,131, 83,199,110,144, - 75,165, 68, 47,232, 4, 55, 1,110,221, 66, 14, 28, 26, 96,226,196,137,210,146,146,146, 68, 47, 47,175,192,176,176, 48,121, 72, - 72, 8, 52, 26, 13, 78,159, 62, 13,141, 70,211,193,203,203,171,195,233,211,167,199,231,229,229,165,180,111,223,126,232,254,253, -251, 45,246,161,173, 21, 64,252,250, 71, 48, 64, 17, 4,129,218, 99, 68,237,177, 54,175,115, 43, 22,139,145,155,155,251,196, 45, - 91,133,133,133,247,218, 98,217,170,169,169, 17,121,122,122,194,197,197, 5, 52, 77, 67,163,209,224,208,161, 67, 80,169, 84, 96, - 24, 6, 50,153, 12, 95,172,221,134,180,155,137,184,122,245, 42, 84, 42,149,200, 28,103, 65, 65, 1,209,163, 71, 15, 24, 12, 6, - 80, 20, 5,189, 94,143, 51,103,206,212,239, 11, 4, 2, 44,250,252, 27,100, 92, 79, 68, 82, 82, 18, 10, 10, 10,254, 43,171,141, -180, 66,139,252, 19,209,108,204,172,255,250,172, 67,154,166,150,108,221,185,231,242,146, 57, 47, 98,222,148, 80,175, 21, 27, 15, -134,166,150, 97, 39, 0, 4, 56, 99,250,180, 97, 93,188,237,229, 66,124,182,251, 58,192,178, 75, 30,247,255,146, 43,144, 17,216, -142,121, 47,246,106,110,226, 71, 47,246,130,143,187,109,215, 74,113,133, 56, 43,203,130, 53, 5, 25, 10, 14,214, 18,191,240, 30, - 78, 39,193, 48,176,183,145,248,131,166, 96,111, 45,241, 27, 29,100,123, 2, 0,108,229, 66,255,166, 44, 95,205,161,183,151,112, -150, 92, 34,152,101,101, 99,239, 61, 35, 42, 76, 22, 30, 53, 94,102, 45,164, 80,126,245, 52,212,194,246, 32, 29, 59,192, 64, 86, -160,224,193,125,250,236,149,212,194,178,106,195, 2,179,217,100,113,161,240, 65,186, 75,231,238, 97, 14,101,113, 75,149,157, 95, -221,221,137, 7,134, 87, 29,243, 66,137,149,107, 95,217, 31, 89, 15,106, 24,182, 73,139,206, 35, 80,171, 84, 57, 20, 43, 30,252, - 0, 0, 32, 0, 73, 68, 65, 84, 36, 13,119, 29, 45,176,185,159,240, 19, 22,143,233,134,202, 10, 37,244, 38, 10, 42, 29,101,114, -179,151, 74, 12, 15,238,194, 96,162, 96, 36, 25, 8,237, 61,113,250,242,157, 50,134, 36, 79, 52,199,153, 85,142,164,172, 67, 73, -214, 13,143,249, 56,163,199,135,182,178, 36,144, 58,228, 22, 20, 97,231,177,203,189,178,202,145,244, 56,245,204, 50,212,195,225, -231, 6,150, 44,130, 69, 72, 91,156,224,253, 93,209, 87, 36, 21,125,187,250,189,151, 3,251,251, 58, 74,152,130,203, 32, 24, 19, -172,104, 1,116, 98, 26,118, 94, 62, 96,140,213,172, 86,175,175, 74, 6,184, 72,239, 28, 56, 52,128,159,159,159, 91, 97, 97, 97, -242,194,133, 11, 29, 95,120,225, 5,196,198,198, 66,173, 86, 99,199,142, 29, 88,183,110, 29, 62,253,244, 83,144, 36,137,173, 91, -183,202, 15, 28, 56,208,119,211,166, 77, 5,222,222,222, 65,121,121,121,197,102, 4, 22, 1, 64, 2, 64, 88,219,119, 17, 0,152, -227,199,143, 35, 60, 60, 28,199,143, 31,103,106,143,209,120,248,242,211,166,245, 68,197, 98, 49,196, 98, 49, 84, 42,213, 19, 17, - 91, 66,161, 16,214,214,214, 16,139,197,168,174,174,110,181,216,162, 40,138, 95, 80, 80, 0,149, 74,133,176,168, 40,124, 19, 29, -141, 97,195,134, 33, 44, 44, 12, 44,203,226,204,153, 51, 8, 29, 24,140, 23,159, 31,138,212,212, 84, 80, 20,101, 81,126,139,139, -139, 81, 82, 82,130,209, 81, 81,216,182,105, 19,250,245,235, 7, 63, 63, 63, 80, 20,133,196,196, 68, 76, 28, 53, 16,210,113,161, -200,200,200,224, 26,181,229,214,172, 39,226,163,245,216, 72, 46,197, 21,230,240,249,184, 41,163,250, 70, 70, 13, 10,196,182,189, -103,191,132,139,122, 15, 0, 56, 25, 36, 95,188, 50,204, 7, 41,121,149, 56,155, 84, 20,151, 90,134, 39, 50, 91,131,161,225,236, -100, 43, 7,248, 98,232, 76, 12,101,155,101,222,129,153, 97, 89,200, 7,127,136,105, 81, 41, 94,253, 2,189,188,234,102, 29, 90, -135,127,141,233,119,238,121,247,241,115,243, 6, 77, 2, 52, 9,219, 23,119, 3,159, 91,153,205,199,192, 78,226,248,119,231,207, - 31, 48,102,220,100,153, 88,110, 7, 90,157, 15,178,248, 14,202, 51, 47, 64, 35,239,138,226,220, 44,236, 59,117, 85,149, 89, 80, -174,230,241,112,186, 68,101,248, 32,171, 18, 53,230,120,245, 36,162,151, 45, 93, 16,177,111,207, 94, 27,137,207, 32,226,254,119, -225, 42,177,128,146,184,116,122,150,167,149, 58,179,255,217,177,215, 86, 99,196, 74,115, 60, 90,141,250,224,153,211, 39, 95,236, -210,121,144, 77,246,181, 99,208,233, 13, 48,144, 64, 80,223,161,160,105, 86, 76,240, 8,198,150,207, 39,148,229,149, 32, 72,186, -228,183, 91,217,138,139,183,178,248, 6, 27,172,108, 49,186, 72, 99,117, 79,240,223,137, 26,218, 19, 32,117,120,126,112, 55,124, - 19,115,246,109,128,126,245,241, 42,249,161, 69,139, 5, 6, 5,186, 96, 51,203, 98,208,245, 67,235,252,123,143,123, 23,173,177, -104, 5, 57, 99, 76, 64,103,143,159,190,249,226, 67, 71,167,246, 93,249, 4, 67,130,117,235, 14,168, 11, 88,162,224, 50,236, 60, -251,129,246, 24,136,173, 27,214,212, 48, 12,187, 7, 0, 55, 37,155, 3,135,134,207, 35,189,254,224,170, 85,171, 28, 35, 35, 35, -235, 44, 50,184,124,249, 50,182,111,223, 14, 43,171, 71,159,147,225,225,225, 96, 89,214,113,249,242,229, 7, 1,244,111,142,115, -192,128, 1, 81, 73, 73, 73, 69, 61,123,246,204,170, 21, 91, 34, 0,188,187,119,239,242,242,243,243, 9, 7, 7, 7,214,195,195, -131, 44, 42, 42, 98, 0,208,175,189,246, 26,255,215, 95,127,237,162,209,104,206,183, 85,104,137,197,226, 39,226,179, 37, 20, 10, - 65, 16, 4,196, 98, 49, 68, 34, 17, 88,150,109,149,216,162,105,250,255,216, 59,235,240, 40,174, 53,140,191, 35,107,217,184,123, -130, 38, 33, 16,220,221, 41, 37, 20, 41, 90, 40,118,209,210, 2,165,197, 41,148,182, 56, 69,138, 21,104, 47,238, 20, 9, 20, 73, -139, 75,128, 32, 9, 73, 8, 4, 9,113,247,172,206,204,185,127, 68,110, 2,145,221,132, 26,157,223,243,204, 51, 43,179,239,206, -204,153,153,243,206,119,206,249,134, 61,115,230, 12,238,222,189,139,197, 77,154, 96,134,171, 43,108,108,108,112,233,210, 37, 16, - 66, 96,106,106,138,244,244,116, 28, 56,112, 0, 93,187,118, 5,199,113, 82, 67,116,143, 28, 57,130,224,224, 96,124,211,188, 57, -102, 88, 90,194,204,204, 12,129,129, 5,173,129,114,185, 28,209,209,209, 8, 12, 12, 68,231,206,157,197,131,186,154, 24,124,240, -116, 2,216,116, 10, 78, 58,173, 10,132, 35, 0, 5, 23, 95, 95, 72,195,195, 75,119,206, 49, 4,154,198,252, 13,187, 2,250,124, - 63,189, 47, 53,161, 95, 83,151, 37,255,189, 56, 25, 0,198,125,232,237,170,148,179, 88,127, 34,140,208, 52,230,191,141, 13,244, -245,133,148, 74,195,228, 30,173,124, 16,159,169, 69, 84,124,230,239,225, 6, 54,245,252,246,253, 72,236, 62,121, 41,102,221,110, -117, 4, 33, 4, 86,102,114,159, 81, 15,163, 60,254,123, 38,248,213,154, 67,234, 8, 34, 16, 88, 41, 37,245,198,132,183,171,116, -212, 97,115,119,201,132,207,103,206,108,215,111,204, 23, 10, 46,226, 48,180, 81,231, 32,232, 84,200,214, 73,145,201, 56, 33,246, -213, 43, 44,221, 22, 16,147,157,167, 29,250, 40,197, 56,131,249, 36, 13,185, 44,149, 61, 96,233,215,243, 46, 44,251,118,145,153, -234,217,165, 92,134,226, 84, 76,141, 78,236,183,139,191,167,114, 52,218, 33,207, 50,144, 83,153,142,198, 28,203, 87,172,217,208, -103,252,136,129, 17,222, 94,157,108,249,248,231,182,234,236,236,228,125,103,131,157, 10,239, 20, 41, 0,136,138, 77, 67, 74, 86, - 30,199,115,250,203,230, 18, 44, 9, 51, 36, 58, 88, 72, 45, 7,216,251,183,111,240,145,189,185, 20,170,220, 76, 56,152, 75,208, -171, 85,157,143,244,183, 35,103, 63, 79, 54,198,174,189,110,180,244, 32,122, 21,110, 45,239, 90,143,240,250,122,224,245,208, 61, -220, 99,124,100,140,194,140,169, 29,205, 44,172,181, 47,104,228,153, 2, 38,118,160, 44, 60, 1,203,154,148,196,119, 8,226,159, - 61,226, 62,253,104, 68,218,243,151,177, 63,217,153,188,149,145, 63, 34, 34,239, 20,209,209,209, 31,207,157, 59,247, 90,171, 86, -173, 28,237,236,236,208,176, 97, 67,156, 60,121, 18, 95,124,241, 69,241, 50, 77,154, 52, 1, 33, 4,233,233,233, 88,177, 98, 69, - 98,124,124,252,199, 21,222,160, 63,122, 20,177,123,247,238,142,245,235,215,215, 73,165,210, 76, 0,242,204,204, 76, 69,122,122, - 58,165, 86,171, 33, 8,130, 96,105,105,201,199,199,199,235,135, 14, 29,170,185,113,227, 70,157,188,188,188,232,234, 68,180,220, -221,221, 67,211,210,210,178, 40,138,170,118,234,135, 34,147,101,103,103,103,159,155,155, 43, 0,200,168, 74,234, 7,142,227,208, -188,121,115,156,187,114, 15,103,126,187,129,236,248,199,152, 60,254, 99, 52,108,216, 16,231,206,157,171,114,153, 53,110,220, 24, -103, 3,175,225,218,221, 7,136,142,124,136, 79, 39,143, 71,131, 6, 13,112,246,236, 89,241,128, 54,156,211, 40,221, 55,235,244, -235, 70,171,115, 64, 64, 64,209,157,249, 27,246,181,158, 29, 26, 75,172,100,123, 22,245,174,227, 43,233,177, 8,148,196, 4,135, -189,206,182,155,191,116, 99, 4,227, 16, 61, 34, 52,185,242,209, 97,165, 78,154,100, 60, 34, 65, 17,251, 31,132,215,251,232,131, - 86,238,216,126, 82,185, 16, 0,134,116,168,133,219, 79, 82, 16, 20,153,188, 63, 44, 5,143,170,187,213,126, 14, 80,242,169,216, -191,226,179,126,157, 61,221,156,176,227,151,107,160, 40, 28, 51,168,194, 37,132,180,170,239,137,117,187, 95, 31, 97,232,228,177, -230,144, 58,226,252,163,156,222, 0,208,163,158,242,215, 22,117,172, 61, 72,201,142, 91,101, 96, 34, 99, 39,246, 30, 56, 82,193, - 69,158, 4, 94, 6,130,226, 52, 80,233, 4, 36,164,230, 32,223,210, 29,151,110, 62, 80,101,169,181,211,195, 82,170, 22,197, 11, - 79,197, 51,233,157, 7,175,114,243, 84,206, 74,251, 58,106,134, 22,132, 92, 13,193,237,176,151,217, 97,137,120,108,136,198,179, -103,208,182,118,229, 58,108,221,117,232, 43,137, 84, 54,132,161, 64, 57, 88,153,218,111,253,254, 27,152,155,155, 65,208,230, 2, -121, 41, 24,240,201,210,148,208,120,125, 45, 0,240,178,133, 89,135, 90,146, 93, 44, 77,197, 94,140,210, 45,168,236, 63, 40, 61, - 38,141,232,213, 68, 34,104,243,240,217,138,131,248,113,118, 63,140,236,230, 43, 57,125, 61,114, 18,128, 37, 85, 45,107,194,115, - 32,122, 21,218,204,187, 18, 65, 1,215, 8,208,254,238,161,111,235, 1,247, 12,214,104, 10, 72,120,150,242,109,228, 97, 42, 21, - 98,175, 67,136,189, 78, 24,247,118,160, 60, 58, 82,148, 83,115,242,195,202,197,121,219,183,239, 56, 47,208,248,218,128, 84, 25, - 34, 34,255, 86,158,197,199,199,191,247,254,251,239,255,118,238,220, 57, 27, 63, 63, 63, 0,192,221,187,119, 11,110, 58,155, 55, -135,183,183, 55,146,146,146, 48,108,216,176,212,132,132,132,247, 80, 73,159,223,156,156,156,231, 71,142, 28,113,204,203,203,107, -178, 96,193,130,100, 79, 79,207,108,181, 90, 77,101,102,102, 10, 28,199,193,218,218, 90,214,164, 73, 19,180,109,219, 54,247,230, -205,155, 53, 98, 98, 98,114, 0,188,172,202,202,247,235,215, 15, 87,174, 20, 12,218,123, 27,121,181,164, 82, 41,252,252,252, 92, -159, 61,123, 22, 87, 88,183, 24,125,141, 47, 89,189, 60,120,240, 0,151,239,197,130,213,170, 32, 75,137,199,173, 95,142,160,239, -196, 41,224,184,170,247, 98,120,240,224, 1,142, 7,222,130,169,156,197,227,199,143,112,228,200, 17, 76,158, 60,185, 90,154, 85, -164, 66, 47,242, 55, 39, 1,229,244,211, 98, 1,192,223,223,255,114, 81,180,162, 36,181,107, 67, 38,207,197,162, 30, 77, 93,103, - 13,105, 95,135,209,103,199, 67,224, 5, 48, 18,192,193,206, 2,123,246,236,175,181,255,224,193,155,155, 55,109,222, 32,112,220, -252,208,100,228, 27,177, 82,139,190, 63,120,109,200,158,153,157,217,201,189,235,217, 0,128,148,165,177,254,228, 35, 14,192,162, -234,108,109,107, 87, 40,114,245,152,224, 96,107,185,112,238,127,250,216,116,110,238,141,203, 65,161,216,112,228,230, 21, 89, 50, -118, 27,124,112, 11,122,188,238,159,202, 26,117, 8,161,242,126,151, 60, 79,156,164,166,214,208,189,188, 8,232,212, 80,107,116, -136, 73,227, 17,147,174, 6,171,148,226,110,100,172,202, 54, 17, 1,213,216,108,202, 84,169,112,249,234,187, 53,110,106, 85, 46, -151,157,145,202, 73,101,183, 36, 74, 19,121,130, 49, 93, 21,110,197, 65,221,177,166,164, 25, 32, 48, 50, 5,201,159,247,249,104, -211,184,176,115,168, 75,199,131, 34, 4, 38,190,125, 96,110,194, 72,219,215,144,188, 2, 0, 83, 83,165,108,197,215, 95, 88, 78, -159,253,117,165,125,192,124, 1,169,119,109,167,233,126,158,214,184, 18, 28,129, 43, 33,209,143,174,220,125,220,160, 75, 67, 23, -120,187, 89, 77,147,101,100, 46, 15,135,241, 17,210,130,130,225, 0,189,186,120,212,161,175, 3,134,183, 24,178,160,188,209,134, -101, 82, 19, 16, 34,121, 2,138, 97, 0,138, 46, 24, 1, 25,115, 29,172, 85,109,178,255,208,241,252, 29, 59,118,127, 19,158, 42, - 70,177, 68, 68, 42, 35, 43, 43,235, 97,120,120,120,175, 70,141, 26,237,252,236,179,207,204, 71,140, 24,225, 50,126,252,120, 26, - 0,146,146,146,132,117,235,214,197,255,240,195, 15, 89,169,169,169, 99,244,122,125,136, 33,103,120, 66, 66,194,141,159,126,250, - 41,229,234,213,171, 13, 90,182,108, 41,111,214,172,153, 96,109,109,205,202,229,114, 94,171,213,170, 35, 35, 35,249,103,207,158, - 57,103,102,102, 62, 5, 16,133, 42, 52,235, 23, 70,175,150, 48, 12,243, 21, 33,196,239,109,244,209, 82, 42,149, 46, 0,158, 82, - 20, 85,215,216,102,195, 55, 42,108,150, 69, 70, 70, 6,242, 19, 31, 65, 17,251, 4,141, 76,105,212,183, 54,131,133,133, 69,181, - 76, 81, 86, 86, 22,144, 23,135,107,215, 30, 0, 28, 7, 75, 75, 75, 88, 90, 90,254,233, 70,171, 60, 47,242, 15, 97, 66, 25,159, - 85,220, 71,171,190, 61, 38,155,104,177,110, 98,159, 58,210,154, 30,110,208,196,222,197,131,152, 92,204,111,221, 50,140,145,155, -171, 39,126,220,175,249,192, 65, 53,208,185,109, 11,170,166,179,229,180,229,223,111,249,164, 62, 82,191, 8, 75,198,122, 67,214, - 40, 44, 5,207, 5, 36,239,184,248, 48,118,146,155, 82, 5, 65, 32,184, 24,146,128,144,151, 25, 59, 34, 82,240,220,152,173,171, -239,140,238, 44,232,131,132, 16,133,165,169,105, 78,125,111, 55,187,238,109, 26,211,239,117,106, 14, 41, 3, 92,187,253, 0, 51, -190, 63,118, 75, 16, 72, 31,131, 71,136, 9,194, 27, 6,170, 96,132,161,190,212, 8, 67, 66, 8, 41, 24,117, 88,113,183, 47,134, -161, 18,243,163,239, 56, 73,108,189,160,138,186,136,151, 25, 2,162,147,115,144,205, 58, 65, 19, 23, 7, 16,225,213,229,106,116, -172,182,179,179,115,168, 85,223,187,206,198, 93, 71,160,203,207,194,243, 75, 59,145,155,145,128,111,183,158,172,227,234,106,219, - 41, 46, 46,238,178, 17, 23, 27,239,223, 2,246, 59,128, 0,140, 68,142,211,155, 15, 33,213,214, 4,118, 74, 41, 4, 85, 10, 38, - 78, 31, 97,217,187,199, 8, 75, 0,136,126,124, 31,158, 74,149, 65,186, 58, 91, 12, 28,210,197,199, 10,122, 21,118,157,189,175, -166,129,247,118,159,127, 20,213,165,158,149, 98, 72,123, 79,235, 37,241,153, 31, 34,173,106, 73, 69,139, 34, 90,197, 17,190, 42, -140, 54, 60, 2,240,245, 4, 68, 29,188,145,108, 58,168, 71, 51,165,148,165, 40,146, 27, 7, 98, 98,135, 45,187, 14,231,202,244, -127,206,147,216, 69, 68,222, 5, 84, 42, 85,176, 74,165,106,248,229,151, 95, 14,159, 55,111, 94, 71, 83, 83,211, 90, 0,144,151, -151,247, 92,175,215, 95, 41, 60, 63,141, 25, 29, 72, 0, 60,141,138,138,122, 30, 21, 21,229,184,119,239, 94, 43, 0,138,194,239, -212, 0, 50, 1, 36,161, 26, 35, 14,139, 76, 21, 69, 81, 95,189,173,253, 80,100,170, 40,138,170, 91,149,223,211, 52,205, 83, 20, - 5,138,162, 32,151,203,113,245,234, 85, 12,238,211, 3,225,167, 51,225,103,101,134,150, 99, 38,226,224,133, 11, 96, 24, 6, 20, - 69,129, 97, 24,163,234, 17,150,101,113,237,218, 53,140, 28, 54, 8,114, 22,176,180,180,196,151, 95,126,137, 19, 39, 78,128,101, -197,167,244, 25,193,182, 18,134,203,192, 60, 90, 20,150, 92,216,185, 84, 10, 94,143, 83, 59, 87, 35, 32, 52, 87,251, 56, 5,243, -125, 82,176,238, 8,114,132,148,239,119, 79,186,112, 45,116,213,216,161,254,202,174, 93,122,160,107,231, 46,108,131, 22,157, 22, - 2,165,140, 86,119, 84,144,107,131, 23,240,205,182,179, 17, 19, 15, 94,138,164,160,203,193,208,158, 45, 8, 47,224,155, 74, 54, -230, 13, 77, 75, 19,179,131,215,110,222,180,134, 46, 23, 47,239,255,174,168, 81,171, 14,192,235,240,244,233, 19,252,176,235, 23, -225,210,237,199,123,180, 28, 62,123,150,129, 60, 67, 53, 11,156, 21, 7, 75, 83,153,207,123, 13, 44,126, 21, 64, 96,165,148,214, - 35, 2, 15, 43,165,164, 94,143,122,202, 95, 9, 33,196,220, 68, 82,143,240,250, 74, 53, 85, 90,238,199, 93, 63,239, 88, 51,110, -220, 56,211,212,216, 68,196,103,135, 34, 87,230, 10,189,210, 29, 81,247,175,168,242, 53,156, 33,149,120,185,251, 51, 53, 53, 53, - 57, 56, 40, 29, 7,183, 46,131, 94,171, 65,114,108,129, 87,141, 79,205,134,133,157,235,205,184,184, 56,131, 53,117,156,144, 53, -112,196, 4,169,137, 57, 76, 70, 14,244,151, 69,165,105,208,212,197,188,224,162,145,155,130,240,192,107,232, 92,216,199,244, 89, - 12, 13,207,198, 46, 6,173,167,185, 66,250, 89,239,102,174,120,254, 42, 1, 87, 31,197,237,122,158,142,120, 62, 34, 97, 87, 84, -124,230,164,126,173, 61,176,246, 68,216,167,128,126,191, 49,219,238,235,128,225,132,160,125, 65,103,120, 21, 8,208,222,215, 1, -195, 13, 28,105,248,134, 38, 43,197, 71,107,126,141, 94,112,248, 78,106,191, 89, 31,117,176,104,219,246,125, 25, 56, 45,114, 84, - 26,125,120, 38,178,171, 83, 70,213, 64,212, 20, 53,255,169,154, 60,128, 61,122,189,126, 79,102,102,230,219,212,140,199,155,121, -157,170,181,237, 37,155, 9, 9, 33,108, 97, 52,171,178,206,240, 21,106,150,108, 38, 36,132,156, 41,140,102, 85, 22,213, 42,165, - 41, 8, 66,124,243,230,205,109,250,246,237, 11,158,231,241,228,201, 19, 68,199,196,160,251,164, 79, 97,101,101,133, 43, 15, 31, -226,241,227,199,248,234,171,175,160,215,235,113,252,248,241,216,202, 52, 89,150,213,213,169, 83, 71,218,191,127,127,112, 28,135, -103,207,158, 33, 46, 46, 14, 51,102,204,128,165,165, 37,130,131,131,139, 53, 83, 83, 83,193,178,172,174,140,232,214, 31,113, 44, -253,211,121,195,100, 85,108,180, 0, 30,188, 30, 89, 23, 22, 97,253, 85,232,116,122,212, 11, 75,193,139,176,255, 71,164,182, 48, - 65, 15, 79, 61, 12,141,120, 30,124,189,171, 12,201, 33, 48,246, 78,226, 73, 26, 18,204, 21, 57, 57,208,229, 88,224,217,175,120, -145,148,147,251, 36, 13, 9, 70,223, 49, 8, 60, 5, 93, 62,144,112, 23, 55,174, 92,198,165, 91, 15,112, 39, 36,130,191, 17, 28, -121,144, 22,240, 77,120, 26,158, 84,225, 46, 4,102,125,214, 98,116,200, 83,143, 22,222,142, 30,224, 57, 16, 65, 15,203,161,251, - 49, 38,172,173, 71,139,218, 86, 30, 5,145, 44, 61,172,255,243, 59,176, 70, 81,161,222,221, 24,253, 54,217,137,115, 31,230,100, -166,181,238,214,169,141,169,165,111,111,164, 62,141,196,147, 7,215, 84,193,161, 81, 55,238,198,232,171, 21, 45,113,117,117,237, -216,173,147, 15,134, 78,156, 11, 93,126, 22,158, 93,250, 25,185,233,137,184,122,211, 12, 17,217,217,109, 0, 24, 28,209,186,249, -138,107,128, 87, 25,104, 87, 67,242,202, 28, 26,167,143,253,251, 66, 78,169, 33,104,178, 65,229,167, 34, 42, 78,155,245,225,214, - 24, 30, 0,148,114,138, 53, 37, 89, 22, 6, 69, 30, 61,109,189,148,140, 30,187, 47, 60,130, 32, 20, 60,190, 73, 16,176,101,247, -239, 81,147,190, 25,217, 20,245, 61,172, 27,223,143, 75,166, 96, 68,200,159, 34,232,112,231,224,215,245,212,191, 45, 4, 4, 29, -174, 77,179,169,215, 97,125,122, 7, 84,241,113, 59,161,241,136, 3, 48, 9,108,254,143,211,214,159, 93,216,252, 66, 88,251,153, -255,233,103, 1, 34, 62,128, 93, 68, 68,228,207, 39, 55, 55,119,226,152, 49, 99,126,148, 72, 36,246, 0, 40, 65, 16, 32, 8, 2, -187,106,213, 42, 9,207,243, 52, 77,211, 60,195, 48,220,153, 51,103,244, 60,207,167,168,213,234,137,149,105,114, 28, 23, 53,101, -202,148, 58,149,141, 80, 60,112,224, 64,145,201,138, 18, 75,194, 32,147, 85,114, 94, 28,229, 42,191,242, 32,248,186,221,200, 69, -139, 0, 80, 32, 88, 28,150,130, 23,175, 47, 18,146,142,248,250,140,110, 70,131, 22,157, 22, 21,253,198,216, 53, 83,243,252,160, - 22, 13,189, 15, 0,128,134,240, 35,171,178,117,217, 26,213,144, 38, 45,218, 28, 20, 8, 97, 57, 66,118,208, 2,142,170, 57,132, - 27, 50,210,174, 60,226,147, 51,131,123,251, 89, 18,160,160,201,176,184,185,176, 48,141, 3, 33,132, 20, 55, 23,174, 86, 32, 53, - 75, 83,105, 30,168,235, 47,180, 61,180,220,157, 9,231,175,223,159,200,243,196,137, 97,168, 68,149,150,251,177,186, 38, 11, 0, -226,226,226, 46, 7, 94,136, 59,255,176,177, 99, 79, 59,101, 97,148, 43, 31, 72,205,199,249,184,148,220,203, 85,209,204,200,211, -247,155,183,238,196, 73,153,132, 97, 65, 72, 65, 66, 81, 66,160,214,241,233, 55, 95,113, 13, 0,160,161, 13, 92,190, 60,206, 29, - 96, 24, 42,186, 50,189,160,199, 9,107,135, 46, 15,252,226,209,203,140, 29, 47, 51, 17, 10, 0, 47, 51, 17,122,232,218,139,133, - 81,137, 57, 95,132, 70,103,172,134,145,253, 42, 8,133,171, 45,134, 46,122,227,179,234,238,207,136, 4, 60, 0, 48, 0,136,237, - 49,116,230, 15, 51, 41, 10,226,227, 39, 68, 68,254, 69, 20, 69,181,104,154, 94,242, 22, 53,207, 80, 20,245, 62,128,167, 70,252, - 44, 40, 55, 55,183,225, 91,222,188, 52,142,227,210, 12, 89,240, 47,232, 16,255, 79,229, 47,235, 90,210, 93,212,252,243, 53,235, -214,173, 75,140, 48, 44,226,254, 20, 53, 69, 77, 81,243, 95,165, 73, 8, 97,170, 51,149,163, 73, 85,103, 18,203,232, 31,207,132, -242,222,139,205, 33,239, 32, 79,159, 62,165,196,189, 32, 34, 34, 34, 82, 54, 20, 69,241,127,128,166,152,188, 88,164,200, 96,149, -138,110,209,226, 62, 17, 17, 17, 17, 17, 17, 17, 17,121, 43, 38,171,228,188,192,132,163,252,240,159, 49,163, 9,170, 18, 66, 12, - 20, 53, 69, 77, 81, 83,212, 20, 53, 69, 77, 81,243, 95,167, 89,153,182, 56,154,241, 15, 54, 96,162,166,168, 41,106,138,154,162, -166,168, 41,106,254,251, 52,255,201,148,219, 71, 75,108, 58, 20, 17, 17, 17, 17, 17, 17, 17,249,131, 16, 59,195,139,136,136,136, -136,136,136,136, 84,143, 74, 31, 42, 45, 34, 34, 34, 34, 34, 34, 34, 34, 82, 53, 42,126,168,180,136,136,136,136,136,136,136,136, - 72,149, 49,254,161,210, 34, 34, 34, 34, 34, 34, 34, 34, 34, 6,177, 77,220, 5, 34, 34, 34, 34, 34, 34, 34, 34,127, 14,165, 71, - 29, 6, 4, 4,144,146,115, 17, 17, 17, 17, 17, 17, 17,145, 63,147,119,213,139,136, 77,135, 34, 34, 34, 34, 34, 34, 34, 34,213, - 99,130,104,180, 68, 68, 68, 68, 68, 68, 68, 68,254, 24,202,237,163, 85,148,176,180,115, 97,168,174,179,184,175, 68, 68, 68, 68, - 68, 68, 68,254, 2,222,109, 47, 34,246,207, 18, 17, 17, 17, 17, 17, 17, 17,189,136,136,136,136,136,136,136,136,136,200,223, 9, -241, 89,135, 34, 34, 34, 34, 34, 34, 34, 34,127,178,225,250,195,141,150,248,100,115, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, - 53,255, 77, 38,171,148,217, 18, 71, 29,138,136,136,136,136,136,136,136, 84,143, 74, 71, 29,138,136,136,136,136,136,136,136,136, - 84,141, 9, 0,252, 11, 95,251,163, 68, 84, 75,140,104,137,136,136,136,136,136,136,136, 84,143,109, 0,156, 11, 13,214,105, 0, - 9,162,209, 18, 17, 17, 17, 17, 17, 17, 17,121, 59,148,236,151,213,167,132,249, 18,141,150,136,136,136,136,136,136,136, 72, 53, - 41,183,143, 22,133,242, 71, 14, 4, 26,241, 7, 85, 25,125, 16, 40,106,138,154,162,166,168, 41,106,138,154,162,230,191, 78,179, - 50,237, 64,252,243,152, 96,140,249,122,155,136, 67, 95, 69, 77, 81, 83,212, 20, 53, 69, 77, 81, 83,212,252,215,242,214, 71, 29, - 54, 5, 76,196,221,250, 78,226, 88, 56,137,136,136,136,136,136,136, 84,204, 31, 51,234,208, 23,248,207, 8, 63,251,173,250,208, - 20,139, 80, 32,191,162,101,237,237,237,127, 84, 42,149, 35,242,243,243,243, 40,138, 18,138, 62, 39,132, 0, 64,201,103, 29, 61, - 75, 73, 73,233, 80,217,127,203,100,178,117,142,142,142,255,201,205,205,205,167, 40,138, 80, 20, 5,138,162, 0,224,141, 57,207, -243,177,105,105,105,205,255,209, 69, 72, 8, 99,231,232,120, 91,194, 48,174,198,254,148, 23,132, 23,201, 73, 73,109,140,248,201, - 50,138,194,172,130,191,197, 74, 0,115,223,181, 51,130, 0,140, 33,203,249, 1,230,145,192, 80,158,166, 63,149, 0,155, 52,130, -176, 21, 0, 40,128,175,234,127,107,130, 80,135, 34,104, 76, 81,176, 36, 4, 89,132,194, 3,121, 43, 68,253, 69,187, 98,160, 68, - 34,233,103, 97, 97, 97,150,150,150,118, 25,192, 1, 0,195,108,109,109, 59,101,103,103,231,234,245,250, 19, 0,142, 85, 69,184, - 67, 99,204,150, 73, 37, 99,213, 58,253,138,235, 15,240,115,167,166,176,229, 4, 44, 87, 72,217, 14, 26, 45,183,242,218, 67,236, - 48, 82,146, 42,156,138,174, 25, 70, 63, 35,237,176,129,229, 14, 0,199,173,173,189,229,246, 22,191, 73,100,204,139,204,164,220, - 17,131,146,147, 99, 6, 87,163,220,255,142,216,217,217,141,166,105,250, 59, 66, 8,120,158,159,159,158,158,190,243, 45, 73,207, - 7, 96, 85,248, 58, 19,192,119,213,212,139, 6,224, 81,248,250, 21, 0, 79,177, 94,175, 50, 91,126,249,229,151, 73, 93,186,116, -193,218,181,107,177,101,203,150,151, 41, 41, 41,203, 1,236, 2,160,253, 11,116, 68,202,163, 62,240,254,170, 94,173,120,253,127, -191, 17, 74,124,220,189,156,147,249,167,143, 63,254, 88, 71, 8, 33,143, 31, 63, 38, 90,173,150,232,245,122,194,113, 28,225, 56, -142,232,245,250,226,201,213,213, 53,238,181,159,191,161, 73,211,244,250, 15, 63,252, 48,135, 16, 66,238,222,189, 75, 84, 42, 21, -209,104, 52, 68,171,213, 18,181, 90, 77, 84, 42, 85,169,201,209,209, 49,169, 34, 77, 11, 11,139,187,214,214,214, 73,214,214,214, - 73, 54, 54, 54, 73, 54, 54, 54, 73,182,182,182,197,147,157,157, 93,241,100,111,111,159,100,111,111,159,100, 99, 99,115,183,178, -245, 44,164, 23,128,203, 6, 76,189,202,248,109,247,146, 70,203,217,217, 57,137, 84, 1, 55, 55,183, 24, 3,214,179, 8, 71,138, - 2, 95,244, 91,138,130, 32,151,203, 61, 74,126,143, 55, 35, 93,149,134,148, 93, 92, 92, 62,116,118,118, 14,116,118,118,190,224, -226,226,242,161, 1,135, 88, 41, 77,115,115,243,187,118,118,118, 73, 78, 78, 78,201, 69,147,179,179,115,169,201,197,197,165,120, -114,116,116, 76,178,182,182, 46,183,140, 8,192,148, 55, 93, 2, 88, 57,208,149,101,152, 0, 71, 71,199,236,144,144, 16,158, 16, - 66,104,154,142, 43, 90,198,152,109,127,221,100,229, 95,195,252,212,139,242,160,220, 23,203,179, 82, 47,202,131,242,175, 97,190, - 38, 8,117,170,170,105, 32,101,105,142, 26, 53,106,212,131,164,164,164,184,204,204,204,132,173, 91,183, 70, 42, 20,138,107, 91, -183,110,141,204,204,204, 76, 72, 74, 74,138, 27, 53,106,212, 3, 0, 83,140,208, 4, 0,180,105,140,214,227, 6, 58,231, 63, 56, - 62, 50,191,107, 11,246,126, 59, 63,248,247,104, 35,141,219, 56,199, 55,255,202,246,246,249, 93,154,209,161, 70,106, 82, 44,203, -182,245,240,240, 24,107,111,111,255,113,225, 52,178,104,114,114,114, 26,233,228,228, 52,210,218,218,122,112, 69,154,135, 1,198, -144,201, 93,161,104, 59,184,150, 71,126,244,146,197, 36,100,250,167,100,108,109,247,236, 65, 14, 14, 53,254,130, 50,250, 67, 53, - 29, 28, 28,226,245,122, 61,209,233,116,196,214,214, 54,254, 45,174,231,106, 66,200,106, 66,200,106, 0,171,223,130,102,241,245, -204, 8,131, 93,145,166,130,165,233,153, 74,153,236,130,156,101,147,229, 44,155,172,148,201, 46,176, 52,253, 5, 0,197,223,169, -140,254, 0, 77, 51,123,123,251,231,235,214,173, 35,249,249,249, 36, 63, 63,159,172, 91,183,142,216,219,219, 63, 7, 96,102,132, -102, 85,117,222,165, 8,214,235,211,219,139,104,249, 2,205,187, 54,174,123,116,218,232,161, 16,142,172,163, 42,185, 99,250,169, - 77,243,230, 99,119,237,218, 5, 0, 24,209,175, 31,122,182,108, 9,115, 51, 83,200,100, 5,171, 67, 17, 10, 82,137, 20,253,103, -124,110,200,223,175,236,223,191,255, 71, 71,142, 28, 49, 3,128, 45, 91,182, 96,224,192,129,176,177,177,129, 82,169,132, 84, 42, -133, 68, 34, 41, 53,175, 12,134, 97,220,226,226,226, 28, 20, 10, 69,113,148, 77, 16,132, 82, 19, 33,164, 40,250, 6,142,227,224, -229,229,101,232,238,154,147,149,149,213, 49, 47, 47,175, 88,163,172,169, 86,173, 90, 0,112,206, 16,193,239,190,253, 6, 2,151, - 7,150, 5, 56, 14,208,232,104, 8,164, 76,115,131, 41, 83,166, 20,175,119, 85,232,211,199,159,162, 40,234, 72,112,112,240,209, -228,228,228,154,130,192,143,175, 98,164,235,147, 39, 79,158,152, 1,128,183,183,247, 20, 0, 71,141, 89, 15,150,101,221, 30, 62, -124,232, 32,151,203,203,141, 92,150,136, 96, 66,167,211,161,105,211,166,156, 49,255,225, 8,120,164,211,244,248, 38,205,154, 77, - 88,212,191,191,226,246,237,219, 10,154,166,193,113, 28, 86,173, 90,197, 17, 66,172,234, 3, 22, 97, 64,118, 5, 50,243, 0,140, - 46,172, 12,118, 0, 88, 85,202, 45, 16, 52, 86,233,229,254,207,114,251,183,108, 85, 99, 54,194, 30,133,180,172,109,118, 28,230, -172, 38, 10,248,115,163, 90, 22, 22, 22,253,214,174, 93,107,191, 99,199,142,236,199,143, 31,235,182,110,221,106, 63,113,226, 68, -115,157, 78,135, 73,147, 38,165,248,248,248, 72,215,174, 93,107,127,236,216,177,174,121,121,121,155,141, 42, 47, 10,223, 12,235, -215, 19,106, 61, 13,189,158,179,119,182, 55,223, 51,109, 84,103, 9, 33, 90,236, 62, 17, 12, 61, 39,252,108,100, 36,171,205,160, - 65,131,106,239,223,191,159,141,136,136, 96,235,213,171, 7, 65, 16,192,243, 60,244,122, 61, 0, 64, 16, 4,212,173, 91,183,218, -251,101, 44,224,109,231,104,115,161,205,251,189, 77,156, 21,114,216,100,164, 96,156,148, 53,223,169,212,236, 5,208,246,157,138, -236, 18, 2,150,101, 17, 19, 19, 3, 7, 7, 7, 19, 65, 16, 18, 0, 44,206,200,200,216,134,119,151,150, 50,150, 61,186,251,231, -245, 78,173,218,182,101, 28,157, 29, 16,249,228, 21, 88,138,239,254,240, 78,112,231,177,147,103, 78,211,114,220,135, 0,110,191, -107, 27,238,212,118,202, 0,138,102,182, 80, 68,192,215, 27, 79,230, 44, 91,185, 78, 57,105,252, 40,102,198,140, 25,112,119,119, -175, 57, 96,192,128,149, 0, 38, 87,170,211,106,202, 0, 48,244, 22, 16,130, 69, 63,156,204, 89,186,114,157,114,114, 21,116,254, -225,148,123,142, 84,219,104,249, 2,181, 27,184, 59,156, 95, 54,107,178,132,252,250, 95, 58, 63, 45,185,220,101,237,237,237,127, -124,239,189,247, 70,236,220,249,255,104,116, 27, 63, 63, 12,232,218, 30, 14,182,150, 80,154,202, 10,170, 35,129,194,131,199, 47, - 12, 50, 4,238,238,238,147,142, 30, 61,106, 86,210, 76, 72,165,210,226,169,164,201, 42,154,138, 42,224,138, 80, 40, 20, 8, 12, - 12, 4,203,178, 96, 24, 6, 44,203, 22, 79, 37,223, 51, 12, 3, 71, 71,163,186, 46, 45,183,180,180,108,148,147,147, 99,145,153, -153, 9, 15, 15,143,108, 0, 15, 75,124,223, 40, 37, 37,197,194, 24, 65,129,203,195,140,113,190,144,104,111, 65, 43,105, 9, 21, -219, 14, 55,238,132, 35,224,220,101,196,197, 39,162,125,235, 38,248,120,248, 32, 92,184,112, 1, 60,111,116, 75, 71, 18, 33, 88, -217,183,175,255,108,128,162,186,119,239,158, 57,117,234, 84, 58, 34, 34,226,163, 1, 3,250,251, 61,121,242,180, 48,170, 72,205, - 34, 4,235, 1, 36, 25,168, 43, 3,128, 43, 87,174, 0,128,188, 42,199,158, 92, 46,199,205,155, 55, 81,212, 76, 76,211, 52,104, -154, 6,195, 48, 56,245,212, 14,121, 90, 26,249, 73,161,248,212,223, 3,181,106,213, 2, 77, 87,222, 37,177, 51,160,184, 1, 12, -160, 36,146, 25,206, 46, 46, 53, 59,213,174,173, 12, 12, 12,100, 0,192,211,211,147, 36, 36, 36,100,158, 56,113, 34,135, 5,182, -120, 18,178,171, 34,147,229,238,238,222, 46, 46, 46,238,187,162,125, 78, 81,212,202, 26, 53,106,124, 85, 92,110,130,128,197, 63, -231, 73,166, 77,155, 46,109,213,121, 1, 0,160, 85,223,253,200,126,182,204,151, 74,159,103,249,103, 95, 37,178,179,179, 15,214, -173, 91,151, 73, 75, 75,187, 1, 32, 90,175,215,207,217,179,103,143,195,184,113,227,146,247,238,221,187, 28,128,203,138, 21, 43, - 58,231,229,229, 29, 50, 70,183,125, 35,188,223,172,145, 95,107, 15,119,119, 92,190,113, 27, 82,153,196,106,202,104,127,152,153, -177, 88,189,227,180, 16, 29,155, 62,245,218, 67,236, 50,194,100,181, 28, 52,104, 80,205,253,251,247,203, 0,224,225,195,135, 72, - 76, 76,132,189,189, 61, 76, 76, 76, 32,145, 72,192, 48, 12, 36, 18,201, 91, 49, 89,150,238,182, 65,199,143,159, 48,177,177,177, -194,198,207,167,225,227,228, 36, 88,153,155, 65,159,155, 87,243, 29,171, 40,188, 59,116,232,160,224,121, 30,121,121,121,184,116, -233,146,165,137,137,137,165,155,155,219, 34, 24, 49,122, 74,161, 80, 36,169,213,106,135,194,215,201,106,181,218, 17, 64,182, 92, - 46, 47,186, 78,231, 22,206, 13,109, 78,140,198,155,205,132,175, 40,138, 42,249, 89, 85,105,209,178, 69,163,192, 99, 71,246,153, -101,229, 36,194,202, 58, 25, 52,178,176,109,219, 38,152,152, 88, 96,209,162,121,236,139,238, 93, 93,123,189,255, 97,224,163,240, -200,238,239,156,217, 34,212,182,238,125, 71,216,152, 40,205, 11,235, 18, 61,118,110,159, 6,154,166,241,213, 87, 95,161, 65,131, - 6, 19, 30, 61,122,180, 0, 64,122,197, 50,216,214,176,227, 16, 27,153,162,160,136, 5, 94,143,173, 7,190, 40,208,153, 59, 17, -195,250,214,154,240,229,160,231,103, 27,212, 70, 78,225,141,185, 74, 66,227, 21,213, 10,197,134, 33, 32, 32,160,147,191,191,255, -229,242,222,255, 3,112,198,255,243,103,149, 50, 95,108, 64, 64, 0,241,247,247,167, 74,108, 92,169,247, 21,209, 24,176,179,182, - 84, 6,110, 89, 60,205,140,189,117,154, 81,189,122,138,120,117,169,138,188,212, 16, 77,165, 82, 57, 98,231,206,157,165, 66, 74, - 30,142, 14,144, 74, 37,144, 72, 41, 88,117, 40,200, 94,159,121, 53, 0, 20, 85,174,201, 42,165,153,151,151,167,190,127,255,190, -217,142, 29, 59,224,224,224,128,154, 53,107, 66,169, 84, 66,161, 80,148, 50, 87, 37, 13, 87, 25, 70,171,148,102,209,247, 44,203, -130,166,105, 92,184,112, 1, 28,199, 97,208,160, 65,111,152, 44,150,101,203, 51,110,229, 13, 79, 61, 7,224, 33, 33,164, 99, 97, - 5,252, 16, 64,167, 18,223,247,178,183,183,159, 3, 96,185,161,154, 12, 67,192,168,111, 64,112, 91, 7, 54,102, 26,180,146,198, -184,120, 45, 24, 59,127, 92, 11, 0,168, 89,175, 5, 6, 15,240, 47,142,198, 25,184,158,197,184,186,186, 30, 72, 73, 73,237,221, -181,107, 87,100,100,100,232, 23, 47, 94,140, 70,141, 26,193,219,219,219,160, 50, 42,231,206, 57,233,225,195,135,238, 42,149, 10, -132, 16, 67,204,217, 27,154, 20, 69, 97,207,158, 61, 80,171,213,111, 44,108,221,105, 41,190, 24,232,137, 49,159,238,194,202,199, -135,176,121,243,230, 10,183, 93, 9, 52, 82, 91,214, 93, 47, 99,184, 70,203,231,125, 34,255,248,227,143,153, 49, 99,198,224,213, -171, 87, 24, 55,110,156,250,194,133, 11,218,196,132,132, 19, 50, 65,216,168, 43,109,140,203,213,148,203,229,187,207,157, 59,135, - 67,135, 10,124, 73,100,100, 36,188,188,188, 76, 75,153,228,244,195,200,137,222,136,160, 83, 17,104,213,119, 63,130, 78, 13, 7, -159,121, 90,210,220, 11, 89,198,236,207, 42, 80,150,230,161,180,180,180, 98, 19,181,119,239, 94,147,189,123,247,246, 7,112, 18, -192, 33, 0, 72, 79, 79,255,222, 72, 77,128,194,152, 33, 3,251,131,149,154, 35,226,105, 44, 58,181,105, 10, 71, 7, 7, 60, 12, -143, 66,116, 92,122, 18, 69, 97,116,175,182,178,229, 42,149,118,193,213, 7,248,169, 18, 77,202,205,205,205,251,240,225,195,210, - 18, 17,232,226,115,156, 97,152,226,247, 69,198,187, 42,199,103,145,201, 50,119, 51, 11,250,102, 83, 59,211,160,144,189,240,242, -124, 31,214,239,251,227,167,243,231,241,228, 81,152, 90,155,207,117,251, 11,202,232,143,210,244, 30, 56,112,224,141,125,251,246, - 89,197,196,196,224,202,149, 43,168, 89,179, 38,242,243,243, 13,185,225, 45,165,169, 86,171, 29,138,126, 67, 81,148, 67, 81,224, - 93,171,213, 22, 21, 70,209,137,104, 85, 98, 57,171, 10, 52, 61, 74, 44, 87,100,174, 60,223,194,182,203, 20, 82,233,225,227,199, - 14,152,133, 69, 92, 65,147,198,173, 97,102, 89, 31, 2,159,136,180,244, 92,100, 60,141,199,183,223,174,196,162,197,243,113,242, -151, 35,102, 62,190,141,143,106, 57,174, 46, 0,245, 59, 83,238, 20,153, 16,120,106,239, 22,138, 8, 80, 37, 69,200, 37,121,207, -149, 35,134,127,200, 12, 29, 58, 20, 39, 79,158,196,163, 71,143,182, 84, 96,178, 2, 75, 68,230, 39,132, 94, 57,180, 5,132, 64, -149, 28, 33,151,170,158, 43, 71,125, 52,152,249,120, 88, 79,220,250,125, 61,122, 54,121, 30,234,226,128, 1, 25,133, 22,155,101, -144, 38, 87,224, 58, 9,194,173, 18,102,235, 18, 0,170,132,193,186,132,255,247,193,252, 39,208,167,208, 88, 77,120,253,198,132, -173,138,193, 2, 0, 47,192,140,146, 73,131,118, 46,250,196, 69,249,234, 17,171, 9,189,137,120,141, 64,182,190,228,132,166,128, -201, 61, 64,245,250,111,242,243,243,243,162,162,162, 76, 70, 15, 24,128,182,126,126,112,182,181, 69, 93, 55, 55,152,200,101,144, - 73, 37,165,110, 89, 13,110, 67,160, 40,226,227,227,131,190,125,251, 66, 34,145, 64,169, 84,194,204,204, 12, 50,153,172,204,104, -150,161,119,185,132, 16, 48, 12, 93, 40, 28,138, 0, 0, 32, 0, 73, 68, 65, 84,131,208,208, 80, 68, 71, 71,195,202,202, 10,215, -175, 95, 71,183,110,221,222,136,106,149, 52,103,198,132,232,203,168,248,139,140,216, 57, 99,180,120,158, 66, 46,105, 12,197,203, -169,200,167,154, 66,163,225,160,209,104,240,211, 53, 29,110, 71,229, 65,167,211, 66,163,209, 84,244,159,229, 65,187,184,184,140, -168, 91,183,238,148,225,195,135,235,101, 50, 25,242,242,242,144,159,159,143, 71,143, 30,233,123,247,126, 63,179,111, 95,127,203, -211,167, 79,147,194,166,195, 36, 35,180,211, 92, 93, 93,221, 11,155,103,211,170,114, 84, 83, 20, 85,108, 98, 94,103,244,247, 97, - 96,153,130, 50,217,178,101, 11,120,158, 7, 33,164,220, 66, 82, 83,212,111,139,151,174,177, 92,177,238,103, 88,218, 56,226,242, -229,203,252,217,179,103,115, 40, 32,242,201,163, 71,223,127, 0,156, 57, 12,232,140, 89,191,140,140, 12,147,154, 53,107,194,205, -205, 13,130, 32, 64,175,215, 23, 71, 95,210,210,210,160, 82,169, 96, 99,154,137, 58,182,110,224,114, 46, 33, 33,244,107, 56,155, - 69, 96,215, 57,173,190,153, 55, 30,252, 13, 46, 28,255, 45,156,170,121,215, 12, 87, 7, 39,119,208, 68,143,248,228, 52,244,239, -211, 19,140,212, 12, 47, 98, 82,209,184,126,109,231,143, 62,104,231,204, 80, 28,102, 45,223, 63, 5, 16,126,170, 76, 46, 55, 55, -151,143,136,136,192,195,135, 5,126,215,194,194, 2,166,166,166,165,206,113,154,166,171, 21,209, 42, 50, 89, 75,183,116, 51,165, - 37,121,200,230, 3,177, 99, 79, 48, 26,251,248, 99,107,208, 29, 53,159,148,222,125,181, 90, 29,121,224, 31, 28,204,112,114,114, -154, 40, 8,194, 34, 66, 72,102,251,246,237, 29,247,239,223,111, 29, 23, 23,135,224,224, 96,124,245,213, 87, 41, 60,207,115,132, - 16,138, 16,242,245, 91,248, 59,161,132,193,122,155, 72,148, 10,124,106,103, 65,245, 99,105,139,154, 92,118,238,139, 84, 45, 57, -145,207, 9, 63, 0,208, 87,120,113,163,233,255, 28, 57,184,197,197,206, 94, 64,103,251,174, 72, 72,210, 97,233,231,163,144,150, -150,131,159,182, 47, 3, 32,131,142, 99,208,177,243,135,112,112,112,197,132,241, 19,156,182,252,184,245, 19, 78, 16, 86,227, 29, - 33,241,198,230, 95, 0, 4,218,219,219, 63,250,100,194, 4,251,154, 53, 71, 66,161, 80,224,192,129, 3,216,191,113, 35,191, 14, - 24, 44, 7, 46, 78, 2,126,169, 80, 39,232,255, 58,211, 38, 77,178,247,245,157, 4,185, 92,142,223,207,254, 23,234,196, 61, 57, -125,218, 66,151,175, 70,159, 26,125,137,205,203, 83, 84,186, 68,130,167, 0, 32, 81, 32, 1,192,235,205, 96,255, 52,131, 85,196, -105,252,191, 95,214,132, 82, 17,173, 42, 95, 59, 37,178,144,237,211,135,121, 58, 66, 67,105,175,157, 66,156, 70,224, 87, 60,209, - 49,247,178,200, 23,225,101,152,172,194, 3, 91,240,240,240, 64,215,230,205, 49,160, 67, 7,176, 44, 11,133, 76, 10,115,133, 9, - 8, 95, 16,201, 42,106, 58,172,160, 78, 68, 89,209, 39, 91, 91, 91, 72,165,210, 98,131,101, 68, 52,171, 76, 77, 65, 16,192,178, - 44, 30, 62,124,136,246,237,219,195,221,221, 29,135, 14, 29, 66,175, 94,189,222,104, 74, 52,214,100, 21, 25,173,215,154,241,122, - 1, 40,138,100, 25,101,180,212, 90, 10,169,218,198,160, 40, 63,112, 28,192, 19, 64,163, 86,131, 16,128, 16, 64,175,211, 66,173, - 86, 23,255,167, 33, 77,178, 78, 78, 78, 30, 38, 38, 38, 75,102,207,158,229,219,184,113, 19,164,164,164, 64, 16, 4,152,154,154, - 34, 63, 63, 31, 22, 22, 22,104,219,182,237,139, 37, 75,150, 36, 16,130, 9, 70,154,172,106, 83,180,207,207,159, 63, 95,170,217, -176,104,202, 75,136,197,152,207,246, 66,198, 22, 52, 45, 21,245,225,169,232,186,219,165, 99, 59,220,184, 23,201,253,103,214,122, -141, 36, 45,120,185,147, 32,236,140,173,198,118, 17, 66,144,154,154,138,164,164, 36,244,235,223, 31,251,247,237,195,203,151, 47, - 81,191,126,125,116,233,210, 5, 14, 14, 14,120,249,242, 37,110, 95,213, 64,147,145,142,116,109, 48,148,230,173,112,252,114,148, -230,171, 45,186,168,191,240,130,209, 15,192, 40, 11, 11,139, 90,249,249,249, 9, 28,199, 29, 6,112, 24,192, 96,150,101, 7, 43, -149, 74,231,236,236,236,231, 40, 24, 77,116,162, 50, 49, 19,133,194, 86,174,176,128,192,105,192,178, 44,220,221,107,130,240, 90, -100,100,171, 48,122,104, 95,220,123, 24,142,179, 23,111,113,122,189,176,193,144,221,202, 48, 12,241,246,246, 70,114,114, 50, 36, - 18, 9, 76, 76, 76, 96,102,102,134,185,115,231, 98,227,198,141,197, 38,171,170, 70,107, 44,224,109,225, 97,118,235,187, 77, 5, - 38, 43, 49, 62, 1, 73,177, 18,216,219, 58, 98,195,198,117,121, 25, 47, 19, 91,253, 12, 68,254,211, 43, 89, 65, 16,190,142,139, -139,115, 96, 89,214,137,227, 56,196,196,196,224,238,221,187,152, 58,117,106, 82, 90, 90, 90,103, 84,113, 27, 21, 10, 69,114, 81, - 36,171,176,233,176,188,230,196,204, 18,145,172,204, 10, 36,203,107, 38,172, 93,211,205,252,194,246,181, 51, 60, 90,180,106, 75, - 43, 89,139,140,220,167,137,237,175, 93,185,220,118,234,218,159, 62,137,206,200,237, 9,224, 89,121,162,114,137,164,119,235,118, -237, 88,144, 36,176,178,246, 88,185, 98, 40, 82, 82,179,145,145,158, 3,169,212, 20, 90, 61, 3, 94,160,208,182,125, 7,252,119, -215, 65, 52, 24, 63,142,145, 73, 36, 61, 56,173,246,157, 49, 90,133, 44,251,225,135, 31, 60,124,124,124,176,115,231, 78, 92,220, -189, 27, 31,103,101,225, 50, 77, 51,122,137,196,238,140, 94,191, 13,149, 24,173,146, 58, 13, 26, 52,192,207, 63,255,140, 61,123, -246,188, 26,209, 45,249,232,140, 17,112,208,233,240, 94,240, 99,216,212,232, 11, 4, 63,134, 77, 51, 31,212,229, 88, 60,165,168, -210,233,160, 2, 2, 2, 58,149,156,255,195, 72, 64, 57, 77,236, 44,128,206, 1, 1, 1,164,228,188,210, 11,167,189,215,164,101, - 61,107,121,250,213,241,160,244,135,214, 35, 38,143,211, 46,120,172,147, 61,201, 37, 51,194,129,117, 21,220, 65, 16,134, 97, 96, -110, 98, 2,123, 43,171,130, 48, 63, 77, 3, 2, 32,232, 1,138, 47, 48, 0, 68,160, 64,120,163, 46, 24,144,201,100,101,118,124, - 55,182,111, 86, 73,205,156,156, 28,188,120,241, 2, 19, 38, 76,128, 82,169, 44,112,238,137,137,240,244,244, 4,203,178,136,139, -139,195,239,191,255,142, 90,181,106, 65, 46,151, 27,229,182, 74, 68,151, 26,161, 96,148, 97,163,132,132, 4, 11,103,103,103, 24, - 29,209, 18, 8,242, 53, 20,180, 90, 30, 79,158, 60, 65,124,124, 60, 94, 60,127,138, 22,121,217, 32, 96, 64, 8, 49, 42,162,229, -234,234,234, 87,187,118,237,173,203,151, 47,151,186,185,185,129, 16, 2,107,107, 43,228,231,231, 35, 53, 53, 13,245,235,215,135, -187,187, 59,150, 47, 95, 14, 0,251,255,108,147,245,218, 49, 85,108,180, 74, 26,174,207, 62,240, 64,122,186, 25, 24,134, 46, 54, -206,149,244,209,146, 2, 64,231,158, 3,217, 11,103,207,152,114,192,146, 68,134, 89,194, 86, 94,142,122, 94, 16,148,229,125, 31, - 19, 19, 3,137, 68,130, 35,135, 15, 35, 61, 41, 9,141, 27, 55, 70,203,150, 45,241,244,233, 83,220,187,119, 15,182,182,182,176, -119,107,131,203,207,117, 8,139, 87,193,210,210, 18, 81,177,244, 95,153, 50, 96,124,247,238,221,191,250,254,251,239, 29,156,156, -156, 36, 41, 41, 41, 62,155, 54,109,106,188,105,211,166,105,159,124,242,137,227, 39,159,124, 98,109,111,111,207, 38, 38, 38,122, -127,254,249,231,205, 2, 3, 3,107, 1, 88, 83,145,160,169,169,185, 13, 35, 53, 5, 69,177,176,178,180, 6, 43, 51,133,192,177, -224, 5,192,194,210, 30, 55,238, 29,193,245,144,156,137,201,105, 56,108, 80,124,172,176,220,109,109,109,223,136, 84, 79,157, 58, - 21,219,183,111, 47,110, 70,172,170,201, 90,186,169,155, 25, 85,104,178, 18, 99, 88, 80,154, 90, 56,245,203,205,204,140,151,137, -237,223, 5,147, 85,116,141, 35,132,224,249,243,231,200,207,207,199,213,171, 87,241,245,215, 95,167,188,110,178, 28, 28, 28,198, - 91, 88, 88, 44,206,205,205, 93,153,152,152,184,190,210, 27,191, 2, 19, 85,244,186,104, 94,102,115,162,129,171,234, 89, 86, 36, -203,221, 89,113,238,222,213,189,158,150,228, 1,133,232, 9,192,147,236, 71,230, 65, 14, 29,223,111,209,135,110,186,249,155, 26, - 45, 39,206, 61, 23,147,173,246, 41, 47,178, 37,240,124, 83, 83, 51,115, 0,201, 8,190,123,169,216,100,165,165,103, 65,163, 99, -160,209, 82, 80,235,104,116,237,254, 30, 54,110,221,131,184,228,116,240, 60,223,240, 29, 51, 89, 54,126,126,126,147, 6, 15, 30, -140, 37, 75,150, 32,240,251,239,181,147, 41, 42,155, 5,200,105,158,135, 64, 8, 69, 27,214,137,189,148,206,234,213,171,127, 1, - 48,108,249, 84,180,201,200,197,104,151,190,196,166, 70,223,130, 5, 7,205, 38, 0, 96,147, 18, 88,186,202,244,247,247,167,138, - 90,214,140,109, 97,251,187,195,250,251,251, 95, 14, 8, 8, 64,201,121, 69, 63, 48,119,244,121,255,203,153, 83, 86,180,232,213, -129, 74,152,217, 3,233,217,106,110, 94,152, 78, 22,171,170,216,100,149,228,203, 77,155,112, 47,178,224, 60,118,115,112,192,172, -143, 62, 2,225,128,235,143,194,112, 48, 48, 16, 67,187,119,135,169, 66, 97,112,100, 67, 16,132, 50,163, 88, 37,163, 89,198, 70, -157, 50, 51, 51,113,248,240, 97,180,108,217, 18, 74,165, 18, 44,203,162, 81,163, 70, 8, 15, 15, 71,237,218,181, 65, 81, 20,142, - 31, 63,142, 1, 3, 6,224,217,179,103,104,211,166,141, 89,116,116,180,209, 70, 43, 44, 44,204,130, 16,210,177, 40,250, 81, 85, - 52, 26, 13, 34, 34, 34,208,183,111, 95, 88, 91, 91,195,213,117, 63, 2,207,237,133,210,239, 99, 80, 20,140, 50, 90, 60,207,143, -237,211,167,143,148,162, 40,168, 84,249, 80, 40, 76, 96,106,106, 6,115,115, 11,120,123,251, 32, 62, 62, 30,189,122,245,210, 70, - 69, 69,109, 78, 72, 72, 56,100,236,186,250,250,250,154,190,124,249,242,227, 26, 53,106,200, 0,192,196,196,164,126,237,218,181, -191,120,246,236, 89,142,177, 81,173, 34,131, 69, 81, 20, 24,134, 41, 54, 90, 44, 77,195,217,201,161,248,125, 97,255, 52,170, 2, -173,236,184, 52,141, 28, 0, 60, 60, 60,176,241,199,147,116,159, 62,125, 48,109,218, 52,232,245,122,108,222, 92, 48,200,110,248, -240,225,208,233,116, 56,122,180, 96,144, 36,203,178, 21,134, 77,238,222,189,139,224,224, 96,232,245,122,100,101,101,225,215, 95, -127,197,229, 43, 87,112,224,248,111,120,249,252, 41, 26,249,120, 98,220,184,177,144, 72, 36,216,181,107, 23,218,183,111,255,151, - 94, 16, 36, 18,201,136,237,219,183, 59,239,220,185, 51,243,248,241,227,121,173, 91,183,150,175, 91,183,206, 97,227,198,141,246, - 90,173, 22,211,167, 79, 79,190,117,235,150,166,127,255,254,166,219,182,109,115,174, 83,167, 78, 15,142,227,202, 50, 90,166, 0, -134, 2, 24,153,145,163,101, 51,115, 84, 16, 56, 45,158,191,124,129,172, 92, 45, 4, 94,135, 87,177,241,200, 85,243, 72, 75,207, - 65,163,166, 61,127,184,116,233,210,124,157, 78, 55, 15, 64, 64,101,235,249,232,209, 35,220,186,117, 11, 47, 95,190,196,243,231, -207, 75, 59,197,241,227,177,103,207, 30,163, 35, 90,101,155, 44, 6,148,166, 54, 2,142, 7,101, 38, 63, 77,120,103, 76, 86,225, - 53,104,145,179,179,243, 34,103,103,103,197,249,243,231, 45,107,212,168, 1,142,227,180,175, 71,178, 58,119,238,188, 96,251,246, -237,206,181,107,215,158, 10, 96,253,223, 97,221,105, 26,227, 87,110,153,100,103, 46,123, 21,143, 39,107, 10,115, 9, 50, 64,126, - 54,112,105, 31,216,118, 11, 95, 76,237, 63,219,122,206,206, 37,227, 5, 8,229,142,144,141,122, 22,131, 45, 91, 54, 98,198,244, -209,248,239, 79, 43, 33, 8, 44, 52,122, 6, 30, 53, 91, 67,163, 19, 64,209, 44, 26, 55,109,142,139,151,174, 66, 66, 3,135,119, -110,121,199,124, 22,210, 67, 67, 67, 55, 31, 63,126,252,211,105,211,166, 65, 16, 4,217,226, 45, 91, 84, 41, 41, 41,203, 96, 92, -254,171,215,117, 6,108,217,178, 37,114,206,198,148, 95,102,140, 0,243,242, 20,149, 30,252, 24, 54,131,102, 19, 28, 89, 65,161, -153, 15,210,149,101, 87,241, 87, 94,155,191, 27, 70,171,200, 73,150,156,151, 69, 83,175, 90,223, 88,218, 88,143,165,205, 93,237, -102, 77,155,204, 62, 75, 84,227,104,141,143,114,127,223,189,193, 52,145,147,255, 16, 5,245, 58, 99,254,248,224,239,191, 23,191, - 94,181,127,127,153,223, 37, 12, 26,100,240,157, 89,121, 81, 44, 99, 35, 89, 0,160, 84, 42,173,122,244,232,129,110,221,186,225, -195, 15, 63, 44,238,147,213,164, 73, 19, 28, 56,112, 0, 3, 7, 14,196,253,251,247,225,236,236,140,122,245,234,161, 94,189,122, - 56,115,230,140,177, 23, 57,240, 60, 15, 63, 63,191,162, 81,135,141, 98, 99, 99, 45,170, 90,144, 26,141, 6,105,105,105,176,177, -177,129, 76, 38, 67,171, 86, 45,241,233,103,173, 96,231,252, 51,252,124,125,144,151,151, 87, 60,252,221,128,202,214,175,110,221, -186, 72, 73, 73, 65, 74, 74, 10,236,237,237,225,226,226, 2, 39, 39, 39,172, 89,179,134,172, 95,191,254,172, 78,167,219,156,154, -154,106,116, 36,203,201,201,169, 3, 69, 81, 11, 84, 42,149,172,196, 29,174,204,222,222,254,132, 74,165, 90,150,144,144, 96,112, - 71, 80,138,162,160,211,233, 64, 81, 20, 78, 63,119, 65,158,150, 66,118,108, 48,166,125,224, 89,202,120, 73, 36,146, 74,155, 75, - 9, 33,121,195,134, 13,115,112,119,119, 67, 76,212, 35, 28, 57, 66,240,253,247,223, 23,141,138, 68,100,225,141, 65,209,251, 46, - 93,186,160,102,205,154, 32, 70,228,202, 16, 4, 1, 15, 31, 62,196,254, 19,151,225,236,233,139, 87, 79, 34,112,239,204, 41,212, -176,183, 65,131,166,205,161,215,235,171,149,122,227,109,160,215,235,119,120,121,121, 17,173, 86,123, 25,192,198,144,144,144,209, - 9, 9, 9,211, 79,158, 60,233, 50,120,240,224,248, 83,167, 78,173, 3,176, 51, 36, 36,100,210,183,223,126,219,141,227,184, 50, - 71, 11, 50, 12,243,223,207, 63,255,188,243,224,193,131, 41, 41,173,215,158, 63,183,139,229, 56, 61,245,229,188, 29,252,165,107, -151,105,142,211, 83, 31, 14,251, 92, 56,243,123, 8, 61,241,179, 85,124,147,214,125, 16, 26, 26,234,228,239,239,255,173, 94,175, -175,208,104, 21, 69,170,202,139, 80, 50, 12,131,209,163, 71,227,192, 1,195,123, 80,141, 3,106, 91,120,154,221, 90,186,169,187, - 25,197,230,150, 48, 89,117, 16,112, 60, 40, 51,233, 73,252, 59,101,178, 0, 32, 45, 45,237, 71, 0, 63, 10,130,144,100,106,106, -138,156,156,156,178,142, 63, 69, 72, 72,136, 66, 38,147,161,103,207,158, 54,129,129,129,145, 52, 77,175,143,143,143, 47,215,113, -148,213, 76, 88, 86,115, 34,170, 49,234,208,218, 30,254,173, 58, 52, 53,127,108,185,196, 92,193,170,239,215,136, 84, 88, 80, 0, -178, 52,142,207,111, 68, 15,205,166,146,229, 77,154,119,105, 6, 11,214,212, 63,147,203, 41,211,104,209, 12,115, 47, 43, 35,179, -119,118,142, 22,215,174,135, 98,216,208,186,208,232, 40, 8, 2,141,220, 60, 13,192, 72, 64, 3, 24,254,209, 40, 16,138, 69,122, - 82, 60, 24,134, 9, 1,199,225, 29, 99,238,164, 73,147,122,207,155, 55,175,214,172, 89,179, 48,107,214, 44,207,237,219,183,255, -184,116,233,210, 89, 41, 41, 41, 13, 81, 73,242,241, 10,116,106,156, 58,176,112,230,137,171, 91,179,250,180, 85, 61,105,230, 83, - 16,249,106,230,131,116,137, 4, 79, 89, 6,105,132,148,238,102,228,239,239,223,169,228,252, 31,198,235,157,224,139,223, 27,212, - 71,171,110, 45,215,247,154, 54,241,251,108,254,188,249,230,225, 55, 46, 97,206, 55, 27,137, 87,243, 30, 57, 63, 94,189,167,205, - 53,173,217, 59, 55,245,233,117, 67,253, 5, 0,188,215,117, 32, 26,213,111,249,198,151,237,187, 20, 36,107,191,118,241, 46,146, - 82,226, 12,174,108, 11,205, 65,153,125,178, 12, 25,210,255, 58, 42,149, 42, 51, 52, 52,212, 33, 54, 54,182, 84,199,247,154, 53, -107,130,162, 40, 4, 5, 5,225,214,173, 91, 24, 54,108, 24, 88,150,133, 68, 34,193,229,203,151,141,138,198,148,136, 46, 21,141, - 58,236,229,230,230, 86,222,104,195, 74,181, 84, 42, 21,178,178,178,112,238,220, 57,212,173, 91, 23, 75,151, 46,133,139,179, 35, -230,207,159, 9, 65, 16,144,157,157, 13,158,231, 13,141,104, 9, 69,209, 34, 65, 16,144,146,146,130, 90,181,106, 97,211,166, 77, - 88,183,110,221,183, 9, 9, 9, 39,141, 93, 71,119,119,119, 43,158,231,191,236,211,167, 79,143,254,253,251,163, 87,175,210,249, - 88,247,237,219,103,126,244,232,209,101, 27, 54,108,120, 79,167,211, 45, 79, 78, 78, 78, 49, 68,247,231,159, 11,210, 47, 41, 91, - 47,194,156,193, 53, 48,114,202, 46,172, 89,115, 12,114,185,188, 84,197,187,100,201,146, 10, 77,140, 64,136,151, 52,245, 70,252, -204,217,171, 29,150, 45, 11, 68, 96, 96, 50,104,154,134,179,179, 51,104,154,198,139, 23, 47, 64,211, 52, 60, 61, 61, 65,211, 52, -226,226,226,138,250, 4,102,160,140, 81,143,101,223,133,211, 80,171,213,136,121,245, 18,177, 81,145, 48,203, 78,132,189,133, 18, - 25,143, 30,162,209,184,241,197,249,159,254, 98,246,104,181,218, 61, 37,222,175, 62,117,234,148,150,162,168, 15, 81,208, 79,163, - 40,162,241, 45,199,113,223,150, 39,210,186,117,235, 38,243,230,205,147, 20,165,219,112,241,248,142,211,233,116, 2, 0,248, 52, -234, 88,202,237, 63,125,250, 20,107,214,172, 65, 94, 94, 30,164, 82,169,212,144,253, 32, 8, 66,241, 8,195,178, 76,152, 49, 38, - 11, 0,108, 61,221,126, 8, 10,190,204, 63,136,218,170, 10,121,252,171, 73,194, 43, 26,180,246,221, 53, 89,175, 71,182,220,220, -220, 22, 9,130, 64, 8, 33, 11, 75,124, 37,247,240,240,184,122,254,252,121, 91,142,227,176, 97,195, 6,171,196,196, 68,171,142, - 29, 59,206, 1, 80,174,209, 42,171,153,176,172,230, 68,148, 24,117, 40,151,203,109,180,218,114,131, 39,111,140, 58,228,121,120, - 91,152, 91, 33, 3,177,208,216,233,155,100,218,114,233, 23, 18,198,223,119,137,110, 90,223,148,215,215,162,179,181,112, 85, 90, - 65, 32,164,220,161,209, 26,189,254,215,251,193,247,122,122,184,215,101, 78, 6, 92, 65,191, 1,131,161,209,208, 80,235, 41, 80, -140, 4, 20, 35, 69,195, 70, 77, 81,175, 65, 35, 16, 0,119,111,223,224,180,122,253,133,119,169,236,157,219,125, 58,140,162,176, - 30, 68, 32,101,228,209,170, 53, 96,192,128,101, 0, 62,171, 76,199,161,245,167,195,104,186, 64,167,100, 30,173,207, 63,157,132, - 71,183, 37,150, 87,130, 87, 72,123,181,198,233,148, 64, 10, 74,197,255, 71, 29, 74,232,106,165,230,248,167, 24,174,202,141,150, -187,187,187,149,133, 92,241,243, 39,227,198,154, 71, 63,184,137,196,176, 32, 92,191, 18,153,113,240,232,177,244,188,180,228,113, - 70,152,172,226,102, 62, 91,167, 26,168,233,251,166,209, 82,152,217, 3, 0,106,250,182, 4, 99,106, 92, 26,161,178,162, 89, 85, - 49, 89, 37, 47,216,101,229,208,154, 56,113, 34,182,111,223,142,118,237,218,193,203,203,171,248, 98,111,108,212,172,140,232,146, -209,163, 13, 75,146,147,147, 3, 79, 79, 79,108,219,182, 13, 33, 33, 33, 48, 55, 55,199,176, 97,195,144,147,147, 83,108,176, 12, -237, 12, 79, 8,121,122,254,252,249, 22, 67,134, 12, 33, 18,137,132,202,204,204,132,149,149, 21, 54,109,218,148,151,144,144,112, -186, 10, 38,107,176, 84, 42,157, 57,116,232, 80,198,199,199, 7, 73, 73, 73,176,176,176,208, 83, 20, 37, 1, 0, 43, 43, 43,189, -137,137, 9, 38, 77,154,132,198,141, 27,119,152, 53,107, 86, 59,150,101, 55,197,199,199,239,170,232, 88,162, 40,170,184, 66, 29, -183, 62, 2, 90,109, 65, 5,189,121,243,102, 20,246,117,251,127, 19, 65, 84, 20, 96,192, 72, 22, 51, 51, 51,120,121,121,149, 89, -246, 29, 58,116,192,221,187,119, 11,154, 38, 89, 22, 14, 14, 14,184,126,253,186, 65, 35,169,138, 18, 65,134,134,134,194,183,166, - 29, 66, 2,207,195, 78, 41, 65, 99, 23, 39,184,117,232,132,200,200,200,191, 50,154, 69,161,160, 31, 70,247,194, 99,112, 7,128, -137, 37,222,111, 2,240,131, 49,130, 28,199, 17,154,166,169,152,152, 24,157, 82,169,164,108,108,108, 88,185, 92, 14,141, 70, 83, -108,184,158, 62,125,138,128,128, 0,196,198,198,194,198,198,134,182,180,180,132, 78,167,203, 48, 68,223,219,219, 27, 78, 78, 78, -165, 58,190,143, 27, 55,174, 74, 38,107, 52,224,183,253,187,229, 53,228, 52, 99,233,107,247, 30,158, 71,188, 80,211, 90, 40,254, - 13, 38, 11, 0, 50, 51, 51,127, 4,240, 99,209,123, 59, 59,187, 49, 12,195,204,215,104, 52,150,151, 47, 95,182,178,183,183,167, -118,237,218,165, 95,184,112, 97, 38,195, 48, 25, 20, 69,173,253,235,205, 33,194, 82,179,162, 60, 37,214, 46,194, 3, 53,185, 49, - 61,102, 78,189, 12, 73, 93,123,170,129, 31, 6, 36,135, 95, 27,195, 69,181, 77, 74, 72,164, 9,132,176, 10,174,193, 59,230,204, - 91,242,101,100,196, 61, 15,133,133, 2, 19, 39,205,195,233,179, 23, 65,209, 18, 92,189, 17, 4,173,142, 71,106,122, 22,134, 14, - 31, 1, 55,103, 59,132,221, 58,151,194, 9,194,166,119,203,100, 11, 27,123,246, 27, 99, 45, 55, 81, 22,238, 19, 30,123,126,154, - 9,154, 94,143,175,190,250, 10,126,126,126, 83, 66, 67, 67,191, 70, 37,121,180, 40, 74,216,216,176,211,112,107,169,188, 64,135, - 8, 60,182, 29,158, 83,152, 71,107, 6, 54,253,120,180, 97,131,154,207, 23, 87,148, 71,235, 29, 50, 89, 37,231, 21, 27, 45, 79, - 79, 79,185,169, 4, 19, 36, 12, 59,235,147,143,250,219, 39, 71, 61, 66,108,248,189,130,230, 5,157, 74,151,248, 36,220,144, 84, -232,221, 81, 58,127, 7,169,168,233, 74,173, 54,232,142,190,148,102, 81,133,251,122, 52,203, 72,147,245,134,102, 73,179, 85, 50, -111,150,187,187, 59,150, 45, 91,102, 72, 30,173,215,183,189,136, 94, 40,232, 0, 95,178, 51,124, 47, 3, 77, 86,153,154,246,246, -246, 72, 75, 43,200,144,208,185,115,103,116,238,252,255,241, 12, 58,157,174, 56,138,101,110,110, 94, 86, 68,235, 13, 77, 19, 19, -147, 57,199,142, 29, 27,123,227,198,141, 33, 95,124,241,133,164, 91,183,110, 69,102, 46, 31,134, 61,219,173,148, 38,207,243,147, -206,157, 59,199, 8,130,128,109,219,182,225,238,221,187, 68,169, 84, 46, 80, 42,149, 27, 77, 76, 76,120,149, 74, 53,113,252,248, -241, 35, 22, 47, 94, 76,119,232,208, 1, 55,111,222,164,107,213,170, 53, 10, 40,149,196,178,204,109, 15, 10, 10, 2, 77,211,224, -210, 95, 97,202,156,131, 48, 53, 97, 17, 17, 17,129,244,244,244, 55,146,152, 26,178, 63, 75, 70, 74,138,166, 14, 29, 58, 20, 55, - 67,182,106,213, 10, 12,195,224,254,253,251,229, 53,195,150,212, 36,182,182,182,197,199,135, 84, 42,197,197,139, 23,241,205, 55, -223,192,195,198, 10, 25,225, 33,112,234,220, 21, 61,198,142,199,176, 97,195,192, 48, 12,108,108,108,138, 35,191, 6, 28, 75,213, -161,164,230, 88, 95, 95,223, 81, 97, 97, 97,110, 13, 27, 54,116, 14, 13, 13,237,226,231,231,231, 25, 18, 18, 82,244, 94, 14,195, -250,230, 20,107,222,185,115,231,200,198,141, 27, 39,141, 30, 61, 90, 42, 8, 2, 31, 29, 29,173, 7, 64, 57, 57, 57, 49,119,238, -220, 17, 78,158, 60, 9,149, 74, 5, 55, 55, 55,218,213,213,149,186,112,225,130, 16, 30, 30, 30, 68, 8,153,103,200,182,243, 60, - 95, 42,141, 67,209,235,125,251,246, 25,125,190,215,168,231,189,180, 91, 71, 31,247,212,248,251, 72,136,139, 2,159,101,175, 11, - 56,126, 74, 99,164,201,250,163,203,232,207,212, 92,242,228,201, 19, 87,141, 70, 3,153, 76,134,205,155, 55,235,150, 45, 91, 22, -150,154,154,218, 30,101,143, 40, 47,165, 89,197, 81,135,233, 21,104,190, 49,234, 48, 43, 13,167,143,159,184,211,194,108,192, 14, - 76,137, 79, 41,238,216, 72, 40,202,230,152, 99,253,246,202,150, 13,227,232, 51,139,232, 28, 62,255,116, 5,219,174, 85,105,181, -131, 7, 12, 28,254,219,129, 3,251,205, 22, 46, 90,132,235, 65, 33, 72,203,204,133, 64, 24, 8, 20,133,249,243, 23,194,201,206, - 6,217,241, 79,242, 53, 58,221, 0,148,206,161,245,143, 47,119,138,162,167, 94, 56,185,107, 61, 77, 65,200, 75,122, 44,103,114, -162,148, 35,135, 13, 96, 7, 15, 30,140, 99,199,142, 33, 52, 52,116,107, 5, 38,171, 88,147, 16,122,106,200,229,131,235, 41, 64, - 80,165, 60,150,179,185,207,149,163, 62, 26,192, 14, 27, 54, 12,191, 4,220,192,129, 83,207,183, 28, 56,133, 83,120,183, 49, 62, - 51,188, 57,139,208,246,245,107,187,118,104,218, 64,193,242, 42,196,134, 71, 33, 61, 79,141, 11,143,162, 51,105, 66, 87, 57,183, - 78,193, 5, 82,138, 87,175,158,148,113,103,165, 40,172,208,213, 70,105,210, 52, 93, 42,154, 85,157, 72, 86,201,245,116,116,116, - 44,245, 56,151,146, 21,119, 81, 31,160, 42,164,118,152,243,234,213, 43,139, 87,175, 94,129, 16,130,160,160, 32,139, 86,173, 90, -205,169, 78, 52,107,230,204,153,197, 81,171,215,231,101,125, 86, 25,133,157,210,215,233,245,250,195,179,102,205,154,210,170, 85, -171,158,139, 22, 45,162, 96,196, 3,120, 95,139,230,112,130, 32,224,210,165, 75, 56,118,236, 24,175,211,233, 38, 36, 36, 36,132, -148, 88,100, 67,112,112,240,133,129, 3, 7,238,122,252,248, 49, 19, 22, 22, 6, 66, 42, 31,119,170, 82,169,224,229,229, 5,142, -227,176, 98,138, 59,114,114, 26,130,227, 56,240, 60, 15, 83, 83,211,226, 40, 94, 73,243, 92,217,113,196,243,252, 27, 70, 43, 40, - 40, 8, 12,195,160,125,251,246,184,119,239, 94,113, 68,171,178, 8,148, 78,167,123,229,232,232,232,184,100,201,146,226,245, 74, - 73, 73,193,249,243,231,209,186, 77, 91,212,159, 48, 17,241,241,241, 88,187,118, 45, 92, 92, 92,176,116,233, 82,164,167,167,131, -227,184, 63, 59,156,222, 59, 44, 44,204,237,163,143, 62, 74, 14, 9, 9,113, 11, 8, 8,176,242,247,247, 55, 29, 62,124,120,114, - 72, 72,136, 27, 69, 81,109, 97,100, 39,104, 65, 16,230,206,159, 63,255,236,210,165, 75,231,124,246,217,103,173, 70,143, 30, 45, -145, 72, 36, 66, 92, 92, 28,183,127,255,126,202,203,203,139,150, 74,165,212,185,115,231,132,219,183,111,223,226, 56,110, 5,128, -171,198, 68,156, 75,154, 44,134, 97, 12, 53, 89,165,152,238, 32, 31,101, 78,167,180,223,184,121, 25,237, 83,211, 77,183,123,255, -249,152,171, 55,159, 60, 99, 52,220,244,159, 43, 72, 13,240, 46,195, 48,204, 33, 95, 95,223, 49, 83,167, 78, 53,233,213,171,151, -124,241,226,197, 89, 57, 57, 57,229,153,172, 50,110,152,255,148, 81,135, 63,205,253, 34, 96,250,231, 13,199,212,254,143, 83, 13, - 4,230, 37, 35,131,101,104, 11, 43, 26, 77, 61, 25,228,164, 62,181, 63,245,219,206, 23, 0, 42,203,203,118, 39,248, 97,104,247, - 6, 13,155, 28, 93,177,116,133,195,130,217,179, 36, 71, 3,126, 5,225,116, 8,186,124, 25,102, 82,158,132, 7, 7, 38,105,116, -218,254,120, 7, 31,193,147,112,253,135, 3, 0, 78,216,216,216, 60, 24, 59,122,180,151,175,239,112, 40,149, 74, 28, 57,114, 4, -123, 54,108,224,215, 1, 67,228,192,189, 73,149,228,211, 75,190, 85,172,115,127,252,216,177,222, 77,155,254, 7, 74,165, 18,135, - 15, 31,198,174,117,235, 12,214,249,135, 83,148, 25,254, 52,254,159, 33,190,146, 62, 90, 52,149,115,235, 73,116,110,208,147,232, - 92, 8,132, 8,132,104,104, 26, 49,121, 58,221,210, 39,207,227,170,100, 10,138,154, 14,191,253,110,234,219,107,243, 40, 97,126, -170, 58,164,187, 12,147, 21, 91,242, 25,105, 37, 43,233,242, 94,235,245,250, 88, 3,229,151,123,120,120,188,241, 89,213, 67,191, -196, 40,147,101,104, 30, 45, 0, 72, 75, 75, 75, 0,176,224,230,205,155,251,122,246,236, 57, 30, 64, 92, 21,203,104, 91,167, 78, -157, 38, 0, 96, 40,138,218, 26, 31, 31, 31,242,198, 9,159,144, 16,233,226,226,178,170,102,205,154, 19, 11,110, 76,169,109,149, - 84,228,207, 27, 54,108,168, 43,171, 44,202,123, 47, 8, 66,165,101,148,153,153,137,150, 45, 91,190,241, 76, 75, 66, 8,162,163, -163,139, 34, 78,197,251,190, 34, 3,151,155,155, 59,241,211, 79, 63,253, 81, 34,145,120, 0,160,138, 76, 46,207,243,204, 15, 63, -252,160,224,121,158, 1, 64,209, 52,205, 73, 36, 18,245,177, 99,199, 56,142,227, 94,105, 52,154,137,127,242, 5,226, 48, 85,240, - 40,134,188,176,176, 48,159,194, 72, 86,108,104,104,232,253, 3, 7, 14,216, 3, 56, 88, 69,221,171,249,249,249, 87,151, 45, 91, -214, 97,243,230,205,115, 39, 78,156,216,114,216,176, 97,108,231,206,157,113,250,244,105,254,210,165, 75, 65, 42,149,106,185, 49, - 6,171,176, 44,179,220,221,221,139, 13, 87, 37,231,114,133, 29,121,109, 61,229, 27, 71, 76,118, 81,108, 91,126, 62, 55, 53, 94, -123, 67,159,171,157,183, 19, 8,197,191,152,164,164,164, 47, 0, 44, 92,187,118,109,124,227,198,141,229, 82,169, 84,107,168,201, -250, 19,225,132,204,220,247,191,239, 49,232, 68,167,249,159,214,236,209,165,189,210,189,134,131,107,120, 84, 18,158,222, 60,157, -247,224,212,119, 47,137, 38,163, 31, 0, 67,122,174,223,214,232,116,117,103,206,154, 57, 69, 38,145,244,228,121,190, 81,183, 11, -199, 9,195, 48, 33, 90,189,254, 66, 97,115,161,250, 29, 46,242,111, 87,173, 90,229,229,235,235,139, 35, 71,142,224,194,222,189, - 24,154,154,138,139, 12,195,208, 82,169,237, 41,157,110, 53, 12, 51, 72,223,174, 89,179,198,219,207,207, 15,135, 14, 29,194,185, - 93,187, 48,164,106, 58,229,213,117, 45, 0,216, 23,190, 77, 5,240, 24, 64, 51, 0, 38, 0, 52, 40,120,180,147, 93,201, 42,172, -240,187,162,239,175, 80, 20,245, 71,118,132,173, 60, 51,252,235,132, 62,125,217,236,109,175,133, 74,165, 74,247,242,242, 50,106, -204,181, 94,175,175,176, 13,151,227,184,216,218,181,107, 27, 28,181, 48,196, 20,165,167,167, 55,255, 3, 11,163, 90,125,177, 74, - 85, 34,130,240,210,217,217, 89, 40,170,244,203, 50, 97,101,125, 70,128, 23,198,252, 79, 98, 98,226, 99, 0,159, 87,117, 61,227, -227,227,143,194,128,135, 70, 27,186, 28, 0,100,100,100,188,245,135,249, 82,132,196, 45, 94,188,216, 40,131, 13, 66, 42, 50,159, - 33,185,185,185,173, 12,249,111,157, 78,135,191,144, 67,133, 19, 29, 26, 26, 58,158,162,168, 94, 40,104, 18,216,138,183,147,205, -251,106,118,118,246,213,149, 43, 87,118,216,182,109,219,116, 66, 8,178,179,179,215, 25,107,176,138,239,158,147,147, 79,191,173, - 13, 79, 79,210,254,190,127,107,108, 87, 85,166,110,250,246, 92,237, 46,136, 20, 7,163, 8, 33,255, 29, 57,114,100,107, 0, 59, -171, 43, 86,206,168,195,234,242, 66,200,200,106,124,113,230, 55, 99, 47, 90,153,247, 1,207,250, 64, 75,159,130, 54,237, 52,128, -159, 97, 88, 55,135,226,237,229, 4, 97, 13,167,213,174, 41, 81,185,252, 27,202,217,198,207,207,111,250,152, 49, 99,176,112,225, - 66,156, 91,189, 90, 55,153,162,178, 36, 0, 57, 91,112,163, 73, 83,192,108, 67,117, 70,141, 26,133,133, 11, 23,226,204,138, 21, - 85,213,169, 8,123,138,162, 2, 0, 96,206,156, 57,243,150, 45, 91,102, 61,119,238,220, 70,203,151, 47, 95, 90,248,254, 81,209, -247,133,117,157,255,220,185,115, 27,148,248, 62, 7,192,157, 63,120,127,150,153, 25,254,143,166,187,168, 41,106,138,154,162,166, -168, 41,106,138,154,162,102,117, 32,132,244, 41,152,149, 63, 47,239,117,137,249, 95, 2, 11, 17, 17, 17, 17, 17, 17, 17,145,127, - 32, 37,163, 88, 85,249,254, 45, 82,212, 71,171, 36,219,128,130, 97,221,229,185, 82, 99, 70, 61, 84,197,217, 6,138,154,162,166, -168, 41,106,138,154,162,166,168,249,175,211,172, 76,251,141,223, 19, 66,250, 80, 20, 21, 64, 8,241, 47,111, 94,100,172, 94,127, - 93, 98,254,214,186, 29,148, 65, 81,223,172, 55,250,104,253,209,136, 97, 85, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, 53,171, - 69, 81, 19, 32, 0, 50,103,206,156,185,127,195,166, 67,231, 66,147, 85,114, 2, 80, 65,211, 33, 33,135,153,184, 56, 88,200,100, - 74, 41, 0,104,181,249, 58, 87, 87,100, 83,212,224,191,242,129,183, 34,255, 76,138,134,123, 39,189,229,101, 69, 68, 68, 68, 68, -254, 29,164, 20, 69,170, 0,164, 0,160, 10,223,107, 11,231, 41,133,134,236,245,215,165,190,255, 3, 73, 64, 57,145, 44,182, 60, -147,149,154,170,180, 99,217, 12,111,158, 87,215, 3, 0,150,165, 35, 82, 83,173, 35, 9, 57,156, 90, 21,179,101,231,224, 16, 44, - 97, 24, 87, 67,150,213,243,124, 92,106, 82, 82,233,212,241, 20,245, 46, 24, 60, 67, 77, 68,117,204,198, 31,110, 84,236,236,236, - 28, 29, 29, 29, 63,176,176,176,104,147,153,153,121, 59, 37, 37,229,151, 10,158,123,184,140,162, 48,171,224,184,194, 74, 0,115, - 43,144, 54,102,217,215,241, 82, 42,149, 83, 40,138,242, 43, 60,193, 66,243,243,243, 55, 3,120,242, 47,188, 32,153, 0,232,207, -178,236, 40, 59, 59,187,150,137,137,137,139, 1, 84, 53,155, 55, 11, 96,166,149,149,213, 80, 43, 43,171,218,233,233,233,207,178, -179,179, 15, 1, 88, 3,160,210,161,210,139, 63,115,110,211,185, 87,231, 5,151,206, 93,250,118,241,134,132,155,111,124, 63,211, -217,182,103,143,118, 11, 47,157,186,177,100,222,166,248,116, 35,215,141, 46,156,128,130,209,145, 4,111, 38,123,173, 46, 18, 0, -125, 1,116, 6,112, 9,192, 41, 67,182,187, 28, 90, 3,152, 87,184,206,107, 0, 92,252,155, 31, 71,166,142,142,142, 43, 0,244, -101, 89, 54, 44, 46, 46,110, 2,128,216,191,120,157, 88, 0, 45, 0,248,161, 32, 13,199, 29, 24,150,194,161, 82,108,109,109,253, - 89,150,157, 82,152,218,101,115, 90, 90, 90,192,223,181, 96,100, 50,217, 58, 39, 39,167,255,168, 84,170,124,138,162, 72,201,124, -143, 28,199,197,166,166,166, 54,127,215, 46,106, 20, 69,221,249,155,175,226,132, 50, 62, 43, 63,143, 86, 92, 28, 44, 88, 54,195, - 59, 57, 49,100,104,124,194,195, 33, 0,224,226,220,232,144,131, 83,195,131,113,113, 50,157,147,207, 0, 51,137,146,221,204, 48, -146, 38,106,173,198, 78,194, 74, 82,117,156,254, 62,173, 37, 83, 18, 31,255, 82,102,178, 69, 9,195,184,190,140,188,232,192,233, -210, 33, 81,184, 64, 98,226, 81,238,218,186,184,184, 84,105, 43,173,173,107,155,235,228,138,233, 18, 9,211, 67, 32,156, 31, 17, - 0,154,146,132,114,188,254, 55,169, 70,243,125, 70,198,179,156,170,238, 65, 31, 91, 56, 17, 96, 24, 40,244, 0,193, 5, 10, 56, -240, 56, 13,137, 70, 72, 24,106, 34,170, 99, 54, 74,254,118, 45,128, 47,222,246,145,228,234,234,106,237,239,239,191,238,155,111, -190, 49, 49, 51, 51,163, 94,189,122,213,107,246,236,217, 29,239,222,189,251,121, 92, 92, 92,252,235,166,143,162, 48, 75, 16, 8, - 13, 0, 52, 77,205,182,183,119, 80, 50, 12,243, 70,110, 35,158,231,149, 41, 41,201, 83, 5,129, 80,133,203,206, 34, 4,235, 13, - 49,140, 10,133, 98,184, 95,195, 38,159,175, 88,181,198,204,209,193,193,148,227, 5,221,139,232,151,202, 5,115,190,104, 21,245, -244,201,122,181, 90,189,191, 42,231, 53,195, 48, 67,229,114,185, 63, 0,223,194,207,194, 53, 26, 77, 0,207,243, 7, 13,173,208, - 29, 29, 29,175, 48, 12, 83,195,152, 63,230,121,254, 85, 82, 82, 82,251, 42, 22,209, 96, 15, 15,143,159, 59,117,234,164,108,217, -178, 37,100, 50, 25, 22, 46, 92, 56, 51, 33, 33,161, 50,163,197, 2,152,169, 84, 42,135,154,154,154,214,206,205,205,141, 82,169, - 84, 71,101, 50, 89,247,245,235,215,187,183,107,215,206, 60, 41, 41,137, 98, 24,198,241,204,153, 51, 31,175, 91,183,174, 23,199, -113,221, 42,171,228,178,162,200, 2,121, 95,223, 14, 89, 81, 23, 23, 0,232,253,250,247,156, 90, 49,138, 48,238,254, 42,114, 47, -166,208,124, 24,108,178, 36, 18,201,122, 39, 39,167, 49,234,130, 92, 1,228,245, 10, 7, 0,180, 90,109, 70,102,102,166, 79, 85, - 78,121, 0,227,172,172,172,198,124,249,229,151,214,189,123,247,198,222,189,123, 63,217,190,125,123, 70,118,118,246,127, 81,144, - 8,243,177,145,154,179, 18, 19, 19,223,151, 72, 36,148,187,187, 59,163, 82,169,140, 49, 90,222, 40,120, 8,243, 29, 0,155, 81, -144,186,160, 11, 80,112,190, 3, 88, 89,100,220,104,154,222,236,227,227,243, 65,120,120,248, 22, 0,223, 86,245, 92,119,114,114, -250,113,211,166, 77, 67,250,245,235,199,164,164,164,184, 54,110,220,120, 95, 98,241, 88,179, 9, 0, 0, 32, 0, 73, 68, 65, 84, - 98, 98,135,183,112, 25, 25, 43,151,203,103, 52,106,212,168,254,227,199,143, 35,179,179,179,215, 20,238,207,138,206, 41, 55, 0, -221,173,172,172,186,205,159, 63,223,204,223,223, 31,219,182,109,123,127,251,246,237,185, 57, 57, 57,191,161,160, 79, 79,181, 76, - 32,203,178, 83, 98, 99, 99,237, 8, 33,112,118,118,158, 2,224,111,105,180,104,154, 94, 63,112,224,192, 49,251,246,237, 83,190, -124,249, 82,233,234,234, 90,156, 60,155,162,168, 42,215,159, 34,213,102, 91, 9,195, 85,121, 30, 45,153, 76, 41,229,121,117,189, -248,132,135, 67, 58,118,250,193, 18, 0,174, 92,254,116,136,131, 83,131, 80,153, 76, 25, 41,183, 80, 28, 27,216,183,123,147, 65, -254,157, 40, 55,103, 7,196, 38, 36, 59,254,116,224,220,123, 1,231, 46, 30, 67, 65, 2,177, 50,225,116,233, 48,209, 5,226,241, -181, 13,176,235, 28,143,141,103, 98,113,243,193, 11,228,103,165,162,134,147, 9, 86, 77,239, 9, 39,107,101,213,110,189, 28,188, -186,112,172,252,224, 71,195, 71, 90,126,208,223, 87,226,233,228, 4, 66,228,136,140,202,109,251,235,249,139, 45,142, 30,222, 63, -197, 84,226, 53, 52, 47,249,137,193, 23,183,166,206, 48,201,211,161, 63,203, 80, 31,183,107, 94,191,219,240,247, 59,208,245,125, -235, 34,236, 81,120,207, 19,191, 7,173,162,111, 60,250,141,227,201,110, 83, 41,142,223, 75,168, 48,161,223, 27,134,163, 91,183, -238, 29,228,114,121,169,228, 73, 26,141, 70,250,219,111,129,173,171, 98, 54,138,254, 67,171,213,208, 18,137, 12, 52, 77,125,238, -231,215,208, 55, 53, 53,245, 34, 69, 81, 63,199,199, 27, 23, 45,248, 20,144,101,176,108, 51, 90, 46,119,230,181, 90, 91, 0,160, -100,178,140, 23, 52,221,112,254,188,121,102, 12,195, 8,105,105,105,200,207,207,167,198,143, 31,175,136,138,138, 26, 24, 23, 23, -183,161,146, 59, 18,108,223,190,221,219,217,217,249,141,167,199, 38, 36, 36,200,250,245,251,160, 42, 69,239,221,168,113,211, 25, -231,206,157,245,205, 78,207, 80,111, 95,251, 99,176, 94,161,212,212,242,245,145,108,222,182,203,114,194,152, 17,159, 70, 68, 60, -186, 15,227,158, 87,231, 97, 98, 98,114,108,245,234,213,126, 93,186,116,145, 56, 56, 56, 32, 41, 41, 9,225,225,225,126,191,255, -254,123,255, 93,187,118,205, 84,169, 84, 3, 1,131, 30,136,234,245,219,238,159, 29, 76,109,108,193,235,245,112,105,212,180, 56, -191,217,211,223,207,131,211,233, 32,232,245,240,245,239, 95, 24, 77, 38,240,245,245,173,106,214, 93,151, 6, 13, 26,236, 89,186, -116,169, 84,163,209, 32, 40, 40, 8, 23, 47, 94, 20, 18, 18, 18, 42, 75,136,203, 82, 20,117,126,209,162, 69,110,237,219,183, 55, - 79, 77, 77, 5,207,243,118,199,143, 31,159,210,164, 73, 19, 11,119,119,119,217,238,221,187,145,155,155, 11,142,227,108,106,215, -174,109, 51,124,248,112,237,238,221,187,103, 2, 88, 81, 94, 36, 43, 59,138, 44, 72,160,106,191,231,211,108, 20, 18,169,179,239, -205,120, 15,191, 90,212,161,138, 35, 91,239,213,174,109,158, 29,167,156,109,102,209,208, 38, 59, 46,112,246,123,181,107,111, 63, -251,204,160,155, 33,186,176,178,249,232,192,129, 3,202,240,240,112,165,175,175, 47, 4, 65, 40,206,192, 95,148,112,214,203,203, -171, 42,251,113,249,164, 73,147,102, 15, 25, 50, 4,141, 26, 53, 42, 78,138,250,213, 87, 95, 97,246,236,217,214, 87,174, 92,153, -185,127,255,254,153,191,252,242,203, 10, 0,115,140,140,198, 20, 97,108, 25,127,253,252,249,243,193,199,142, 29, 27, 49,107,214, - 44, 47, 0, 83, 1, 44, 76, 75, 75,235, 84, 24,141,145, 21, 26,173,177, 51,103,206,156, 60,103,206, 28,188,255,254,251, 11,131, -130,130,190,171, 98,148,143,225, 56,238,253,126,253,250, 49,122,189, 30,166,166,166,208,235,245,117,170, 27,148, 0,176,105,226, -196,137,147, 39, 77,154, 4,107,107,107,232,245,122,239, 3, 7, 14,108, 95,184,112, 97, 27, 0,227,202, 89,215, 81,147, 39, 79, -254,112,228,200,145,104,222,188, 57, 88,182, 96, 55,174, 94,189, 26, 75,150, 44, 49, 59,127,254,124,255,221,187,119,247, 63,113, -226,196, 81,148,126,108,151, 81, 8,130, 0,150,101, 17, 19, 19, 3, 7, 7, 7,185, 32, 8,231, 40,138,218,150,158,158,254,203, -223,168, 50, 95, 57,120,240,224,143,246,237,219,103, 6, 0,171, 86,173,194,140, 25, 51,224,232,232, 8, 51, 51, 51,209,234,252, -125, 34, 90, 19, 42,141,104, 85, 70,126,126,126,211,185,159,125, 12,154, 46,184,107,172, 91,203, 3,203,230, 77,160, 78, 4,156, -107, 90, 97, 12, 94,225,130,199,215, 54, 64,238, 62, 29, 26, 61,135, 91, 15,158,227,194,170, 94, 5,181,101,239,249,208,232,186, - 21, 85, 54, 54, 50, 19,147,149, 90,158,191, 14, 39,167, 32, 68, 71,167, 84,102,178,236,157, 28, 3,182,110, 93, 97,226, 87,199, - 7, 58, 78,143,184,228, 56, 80,148, 28,110,174,230, 24, 59,170,183,164, 83, 39, 23,187,175,191,254,241,116,162,128, 1,249,169, - 79, 42, 77, 24,234,109,135,157, 77,253,188,134, 12,239,211, 94,222,208,175, 1,164,114,147,226,239,154, 53,111,142,102,205,155, -211,115,114,115,122,220,190, 19,220,227,200,249, 91,154,124,125,244,161,200, 84,140,174,228, 34, 83,108, 56,166, 77,155, 6, 71, - 71,199, 82, 11, 36, 37, 37,225,247,223,127, 43,243, 55, 70, 92,200,138,255,227,187,239,190, 51,207,200,200,232,189, 99,199,142, -174,130, 32,124,151,152,152,120,205, 16,145,145, 64,141, 44,185,188,219,152, 53,107,132, 38, 31,124,192, 88, 57, 57,209, 2,207, - 83,241,207,158,217,174,221,176,161,115,250,211,167, 38,121, 54, 54,233, 25, 42, 85,126,100,100, 36, 20, 10, 5,197,178,108,139, - 50,164,146, 8,193, 74,154,166,102, 83, 20, 5,185, 92, 17, 57,105,210,164,123,133,223,213, 56,117,234,148,178,111,223,190,249, - 0, 94, 2,128, 92,174,112,101, 24,218,187, 32, 19, 59, 86, 26, 98, 48, 77, 77, 77, 63,251,118,233, 10,211,236,244, 76,149, 46, - 47, 79,111,111, 97, 70, 81,102,230, 76,118, 86, 78, 78, 92, 66,138,102,254,226, 37,204,196,177, 35, 63,203,203,203,155, 98,168, -201,106,220,184,241,237, 99,199,142, 57,216,218,218, 34, 51, 51, 19,105,105,105,184,125,251, 54, 4, 65,192,192,129, 3,229,109, - 91,181,108, 58,111,254,130,155, 49,113,113,109, 12, 49, 91,166, 54,118, 88,213,190, 73, 65,101,253, 50,173,184,124,182, 13,246, - 47, 94,102, 73,108, 86, 81,116,174, 58,143,144,106,211,173, 91, 55, 41, 0,140, 27, 55, 46, 59, 39, 39,103, 25,128,125,168, 60, -163,255,204, 5, 11, 22,184,214,170, 85,203,115,223,190,125,200,205,205, 5, 0,135, 90,181,106,193,219,219,155,191,116,233, 18, -188,189,189, 97,110,110,142, 43, 87,174,224,230,205,155,104,222,188,185,185, 84, 42, 29,162,211,233,202, 52, 90,157,123,117, 94, - 32,239,235,219,193,167,217, 40,152, 89, 56, 99,251,254,131,120, 28,188,171,131, 70, 23,190, 64,202, 95, 30,169, 34,242,209, 41, -175,204,230,212,104,222,201,182,110,131, 15,224,217,236,158,157,154,191,250,124, 65,143, 90,203, 89,133,122,215,226, 53, 9,105, -229,153, 44, 0,171, 6, 14, 28, 56,248,192,129, 3, 86, 0, 16, 18, 18,130,164,164, 36,216,219,219, 67,161, 80, 64, 34,145, 20, - 63,159,180,138,140,222,188,121,115,177,105,227, 56,174,248, 41, 0, 74,165, 18, 29, 59,118, 68,147, 38, 77,240,203, 47,191,140, - 46,199,104,181,111,213,170,213, 94, 79, 79, 79,247,146, 31,230,229,229, 97,216,176, 97, 0,128, 78,157, 58,117, 51, 49, 49, 33, - 69,134, 48, 33, 33, 33,247,206,157, 59, 61, 0, 4,149,227, 44, 85,113,113,113,248,242,203, 47,241,226,197,139, 79,182,110,221, - 26, 13, 64, 33,147,201,138,239,143, 1,120, 55,104,208, 96,253,140, 25, 51, 16, 21, 21,133,176,176,176,219,168,122, 83, 42,111, -106,106,250, 84,175,215, 55,231, 56, 14, 42,149, 10, 3, 6, 12, 80, 28, 61,122, 52,137, 97,152,136,212,212,212, 17, 40,232,147, - 98, 40, 10, 0,107, 38, 77,154, 52,121,214,172, 89,248,237,183,223,112,226,196, 9,140, 28, 57, 18,211,167, 79,135,153,153,217, -152,233,211,167,223, 68,193, 3,205, 95,167,219,230,205,155,241, 63,246,174, 59, 44,138,171,253,158,217, 93,150,101, 11, 77,186, -128,136, 5,236,189,139, 81,108,216, 19,187,209,196,222,177,198,130, 26,107,172, 81,163,177, 98, 55,216,187, 17,187,168, 88,176, -211,165,136,244,222,219,246,221,217,185,191, 63, 40, 65,164, 44,104,242,251,190,124,123,158,103,159,101,102,103, 14,239,220,123, -103,238,153,247,222,251,190, 26,141,230,179,123,195,192,192, 0, 46, 46, 46,104,222,188, 57,174, 95,191,222,231, 11,132,150,131, -139,139,139, 62,195, 48,144, 72, 36,120,252,248,177,136,207,231,139,236,236,236,166, 3,248,143, 17, 90, 14, 14, 14,179,206,157, - 59, 39, 42, 59,250,195,227,241, 80,166, 29,232,240,255,239,209,170,242, 13,171, 20, 74,165, 84,197,225,176,194,235,218,180,190, -240,196,119, 94,233,208, 33,192, 10, 87, 42,165, 42, 0,208, 48, 4, 5, 82, 26,124, 30, 11,113,105,133, 8,141,206,170,136,234, -147, 37,154,122,252,122,224,117,138, 3, 33, 4, 74,149, 6,138,252, 52,108,185, 41, 69, 88,146, 28, 74, 73, 46,148,170,162,105, - 88,230,230,230,156,187,119,111, 47,122,240,224,225,236, 19, 39, 78,176,147,140,141,223, 23, 2,237, 42,226, 52, 53,109,104,200, -232,235, 95, 56,232,185,154, 79,216,209,136, 76,144,160,177, 93, 39,152,155,216, 35, 45, 75,130,231,239,111, 33,252,131, 55, 26, -216, 56, 96,225,252, 1, 6, 27, 55,159, 57,207,165, 29,235,229,229,197, 22, 84,102,103,201, 91,212,161, 59,145,160,115,162,161, -201,254, 8, 77, 97,202,103, 7,136, 44,234,161,189,171, 45, 44,236, 27,241, 38, 45,220, 48, 17,248, 68,104,149,229, 76,167, 40, -214, 65, 22,139,154, 77, 81, 20, 90,183,110,147,180,115,231,206,138, 66,129,171, 90,183,110,147,196,102,179,236,138, 30,236,172, - 3,132, 48,233,213,216,249,137,168,209,215,231, 45, 43,114,251,219, 36,222,188,121, 83, 53,122,244,104,236,216,177, 67,127,249, -242,229,171,216,108,246,212, 10,134,247, 62,225, 28, 14,212, 51,105,212,168,255,166,231,207,137,158, 90, 77,229,188,126, 93,144, -151,154, 74,167, 21, 22,234, 95, 12, 15, 31, 52,109,201, 18,125,123,123,123, 60,243,246, 54,203,148, 72, 72,158, 66, 33,203,203, -203, 35, 52, 77,191,174,132,115,133,133,133,165,224,200,145, 35,206,179,102,205,242, 79, 77, 77, 93, 1, 0, 54, 54, 54, 91, 0, - 52, 7, 16, 87,102, 31, 60, 61,207, 39, 79,159, 62, 61, 50, 35, 35, 99, 69, 85,118,150, 65, 11, 75, 11, 75,193,217, 67, 94, 65, -117, 12,249, 44, 11,187,186, 44, 61, 19, 19, 14,173,207,231, 50,128,172,129,125, 35, 33,128, 22,149,156, 91,158,147,226,243,249, - 87,254,252,243, 79, 75, 61, 61, 61,104, 52, 26, 88, 88, 88, 32, 54, 54, 22,121,121,121, 40, 44, 44, 68, 76,120, 24, 28,237,237, -177,222, 99,185,141,251,114,143, 43, 82,169,180, 67,185,206,236,243, 4,200,106,213,103,158,189,138,178, 24,148, 31,246,210,178, -222,203, 34, 54, 33, 33, 1, 34,145, 8, 45, 91,182, 20, 61,127,254,252,105, 21, 34,171,108, 18,224, 49,221,187,119, 55, 60,115, -230, 12, 58,116,232, 0, 99, 99, 99, 60,126,252, 24,193,193,193, 80,169, 84, 44,177, 88, 12,145, 72,132,173, 91,183,162, 94,189, -122, 40, 44, 44, 68, 92, 92,156,153,158,158,158,121,185,136,246,165,156,143,239, 62,222,152,255,241,209,207,105,212,157, 1, 71, -206,158,199,244,239,199,194,154, 68, 63, 53,110, 68,109,236, 63,180,251, 26,194,182, 31, 34, 52,108,109,234,212,114, 40,184,250, - 34,184, 47,219,128,200,144, 27,166,210,194,160,185,148, 38,209,126,221,206,139, 11, 42,184,118, 10, 0,203,222,222,126,218,197, -139, 23, 13, 75, 93, 47,108,118,105,206,195,178, 73,224,171, 72,248, 94,109,121, 82, 20,133,216,216, 88, 88, 90, 90, 66, 36, 18, -149, 38, 16, 15, 11, 11,195,203,151, 47, 81,146,141,162, 18,206, 9, 15, 30, 60,176, 23, 10,133,159, 28, 64, 8, 65, 86, 86, 22, -104,154,134, 64, 32,128, 70,163,129, 74,165,130, 90,173,134, 92, 46, 23, 53,111,222,124,142, 90,173,126, 85, 17, 39,195, 48,139, -199,140, 25,211,253,213,171, 87, 13,247,236,217, 3,165, 82,185, 61, 45, 45, 13, 35, 71,142, 4,195, 48,232,211,167, 79, 23, 66, - 72,196,170, 85,171, 0, 0,139, 22, 45, 82, 75, 36,146, 89,181,185,246, 98, 52,111,223,190,125, 67, 31, 31, 31,244,232,209, 3, - 10,133, 2, 59,118,236, 48,242,244,244, 52,242,242,242,178, 88,182,108,217,241,204,204, 76,183,106, 56, 41, 0,219,173,173,173, -103,247,234,213,139, 95,156,195, 20,127,252,241, 7,214,175, 95,127, 14,192,170,219,183,111,175,189,126,253,250,196,105,211,166, - 97,253,250,245, 11,243,242,242,142, 86,198, 25, 19, 19, 3, 11, 11, 11, 24, 25, 25, 21, 61, 44, 85, 42, 4, 4, 4,224,254,253, -251,104,218,180,169, 54,215, 84,153,157, 14, 35, 70,140, 56,126,246,236, 89,195,196,196, 68, 60,121,242, 4,142,142,142,144, 74, -165,218,228,134,125,240, 55,116,216,149,114,202,100, 50,121, 66, 66,130,104,219,182,109,176,177,177,129,131,131, 3, 12, 12, 12, - 64, 81, 20,212,106,117, 85,233,213,170,181,179,103, 79,112,178,146, 77,191, 53, 54, 49,157, 75, 8,225,228,231,231, 30, 82, 33, -239, 82,116, 52,148,255,224,181,255, 55,163, 29, 0,127,124,154,243, 48,181, 84,104,121,123,123,147, 33, 67,134, 80, 37,223,182, -182, 40,200,202, 50,141,180,180,110,117,222,210,186, 69,113,222, 47, 86, 56,155,109, 26,105,101, 37, 45, 0, 0, 21, 77,224, 23, -158,135,160,168, 52, 4, 71,165, 65,200,211,206,249,162, 80,209, 69, 51, 86, 9,129, 92,252,215, 75,171, 74,154, 11,133,170,104, -186,135, 82, 33, 69,126,230,123,106,244,240,126, 6,179,103,207,132,141,141,173, 69,101,124, 42,158,193, 66,247, 69,131, 76,234, -152,232,193,251,249, 29,116,105, 58, 28, 6, 60, 61,100,231,203, 1, 10,248, 16,125, 31, 96, 12, 17, 18,153,128,206, 45, 4,112, -235,223, 76,116,245, 82,196, 18, 0,171,181,177,151, 78,122, 13,174,211, 64,232,105,212, 80,103, 69,128,201,139, 7,132,214,144, - 81, 34,100,167,198, 35,252,233,101,173,222, 25, 25,134,153,107,110,110,158,183,106,213,170, 94,141, 27, 55, 86,205,153, 51, 39, - 48, 62, 62,126,113,185,183,149,223, 14, 28, 56,128,168,168,168,228, 77,155, 54, 61,206,202,202,250,185,134, 21,237, 65, 8,118, - 23, 15,197,101, 93,187,118,173,189,175,175,239,194,221,187,119, 91,205,155, 55, 79,127,222,188,121, 83, 0,252, 82,213,112, 97, - 1,143,215,119,211,147, 39,132, 78, 74, 82,156,218,187, 87,127,191,159,223, 42, 21,195,212, 53,183,180,164,186,117,238, 44, 17, -176, 88, 89,217,233,233,180, 69,195,134,236,216,251,247,205, 8,159,159,114,251,246,237, 2,177, 88, 92,105,234, 28, 54,155, 45, -173,104,184,176, 34,216,216,216, 40, 43,154,195, 85, 69,135, 88,192, 16,162, 50,105,208,128,244,239,211,181,113, 84, 68,116,180, -129,137, 9,219,169,177, 99,147,208,240,216,215, 68,163,145, 83, 20, 85,160,213, 88, 9,155, 61,118,247,238,221,173,140,140,140, -192, 48, 12,140,141,141,145,153,153, 9,165, 82,137,130,130, 2, 40, 11,243,161,204,207, 71,112,124, 44,186,247,234,133,209, 3, -250, 55,243,186,246,231, 88,141, 70,115,174,202,241,188,214,237, 74, 61, 89, 27,234,155,253, 53, 22,148,152, 87, 42,186,182,181, -115, 2, 87, 36, 66,191,197, 30, 95,114,163,251,223,188,121,243,214,136, 17, 35, 6, 45, 89,178,132,149,154,154,122, 39, 54, 54, -182, 59,128,247, 85,157, 36, 18,137, 26,101,101,101, 65, 44, 22,195,216,216, 24,187,119,239,134,149,149, 21,164, 82, 41,222,188, -121, 67,236,236,236,168,199,143, 31,195,206,206, 14,217,217,217, 80,169, 84,144,201,100,105, 74,165,178,210,225,242,226,225,193, -129,139, 6,224,118,196,187, 63,122,216, 82, 49,111,198,252,212, 51, 42, 34, 56, 60,225,222,253,231,191,208,114,131,196,188,164, - 7,203, 27,116,244, 55,159,187,116, 61,246,109, 95,139,136, 87, 79,114,172,234, 21,236,231, 83,138,147, 85,217, 43,145, 72,228, -225,225,225,134,129,129,129,160, 40, 10,198,198,198, 16, 8, 4, 21,138,173, 90,128, 85,214, 3, 37,145, 72,192,229,114, 97,102, -102,134,163, 71,143,150,118,188,142,142,142, 85,113, 28,234,215,175,223,216,122,245,234, 25,150,221,217,177, 99, 71,204,156, 57, - 19, 7, 15, 30,132,159,159,223, 39,249, 52,211,210,210, 82,213,106,117, 85,215,157,151,158,158, 62, 96,248,240,225,239,158, 62, -125,106,116,244,232, 81,208, 52, 93,225,231,200,145, 35,120,249,242,229,106, 0,225,181,108, 71, 77, 71,142, 28,249,228,244,233, -211, 38,153,153,153, 40,105, 27, 18,137, 4, 26,141, 6, 77,154, 52,161,104,154,174,110,222, 27,139,205,102, 95,219,187,119,239, -208,233,211,167,131,195,225, 64,169, 84, 98,239,222,189, 88,190,124,121,122,241, 75,169, 10,192,170,147, 39, 79, 78, 28, 54,108, - 24,218,180,105,211,236,209,163,202,103,118,136,197, 98,136,197, 98,232,233,233,193,218,218, 26, 27, 55,110,132, 82, 89,244, 88, -113,118,118, 46,189,141, 1, 28,114,118,118, 30, 26, 25, 25,185, 3, 69,115,215, 62,131,181,181,245,112, 66,200, 12,141, 70, 83, -216,163, 71, 15,179,179,103,207, 26, 38, 39, 39,227,221,187,119, 88,189,122,117, 46,195, 48, 26,134, 97, 40,153, 76, 22, 99,105, -105,249,142,199,227,241,165, 82,105, 78,118,118,246,102, 0,119,254,191,122,114,138,162, 40, 61, 61, 61, 76,157, 58, 21, 28, 14, - 7,124, 62, 31,114,185, 28,106,181,186, 84,204,163,134,195,210,141, 27,139,204, 56,224, 78, 55, 53,108,190,112,244,130, 33, 22, - 54,117,109, 97, 98,196, 67, 88,216,251,238, 15,125,238,239,213,231, 68,120, 50, 74,181,103, 68, 92,254,223,158,236,190,188, 22, -249, 47, 21, 90,159,229, 60,228, 84, 92,153,163, 53,132, 92,204, 74, 78,214, 87,233,235, 11, 34, 75,188, 92, 86, 86,210, 2,138, - 26,173,177,104,241, 45,104,149,186,248, 65, 65,138, 63, 90, 10, 45,181, 6, 81, 17, 33,120,122,239, 79,152, 75,147,145, 21,211, - 22,224,182,130, 82,150, 15,185, 82, 85, 44, 74, 52, 8,124,231,131,130,252, 28,180,236, 48, 4, 96,177, 94, 86,198,103,108, 70, - 13,233,214,190, 53, 59, 42, 33, 4, 29,157, 71,161,161, 93, 15,196,167, 22, 32, 79,172, 64,110,129, 28,109, 91,122, 32, 51, 87, -134, 2,169, 28,239,163,188, 96, 91,183, 33,139,226, 68,247,209, 86,104, 41,222, 95,129, 34,252, 58,184, 14,221,161,223,100, 24, -216, 14, 46, 72, 8,122,132,192,219,187,144, 20,250, 12,132,209,192,198,185,147,182, 55,201,222, 59,119,238,116,234,222,189, 59, -167,111,223,190,109,110,221,186,213, 38, 53, 53, 53,176, 88, 96,180,233,219,183,111, 27, 11, 11, 11,252,254,251,239, 50,138,162, -246,214,178,178, 75, 61, 96, 25, 25, 25,175, 1,108,186,114,229,202,222,153, 51,103,194,210,210,178, 85, 74, 74, 74,165, 39,102, -234,233,181,153,180,121, 51,209, 99,179,201,185,125,251,184,235,239,220,217,121,226,228, 73,110,111, 87, 87,138, 16,130,128,128, - 0,193,182,125,251, 4,227,191,253, 54, 46, 62, 35,131,246,245,243, 83,165, 38, 37, 21,102, 72, 36,235, 83, 83, 83,211,254, 63, - 90,182, 90,173,126, 17, 19, 27, 99,219,161,115, 91, 11,255,176,152, 80,183,222,221,186,177, 88, 44, 86, 68,116,188,159,133,133, -145,224,254,189,251, 42,181, 90,253, 66, 27, 46, 30,143, 55,164,119,239,222,156,220,220, 92,212,173, 91, 23,153,153,153, 72, 78, - 78, 46,242, 56,228,231, 66,149,159, 15,117, 65, 30, 52, 18, 49, 98,222,188, 70,219,134, 13,120, 23,121,188, 33, 82,169,180, 74, -161, 85,242,150, 89, 81,162,235,146,125,250,134,134,208, 23,137, 64,213,124,216,240, 91, 19, 19,147,229,121,121,121,183, 0,108, - 84,169, 84,238,203,151, 47,239,184,103,207, 30,243, 77,155, 54, 25,205,152, 49,227,162, 88, 44,110,139,162,164,170,149,117, 96, - 31,105,154, 54, 3, 96,229,227,227, 3, 75, 75, 75,228,231,231,151,120, 90,148, 82,169,212, 32, 59, 59, 27, 10,133, 2, 74,165, - 18, 70, 70, 70,120,251,246,109, 14, 77,211, 55,170, 51,206,168, 17,181, 81,161, 10,251,217,172,153, 48, 69, 69,155,246,204,200, - 97,114,215,237, 76,221, 0, 96,231,128,134, 13,143,168,152, 39, 49, 31, 66,110,152,198,190,121,156,147,242, 65,210,240,232,173, -152,170,230,104, 17, 0, 12, 69, 81,196,217,217, 25,153,153,153, 96,179,217, 16, 8, 4, 16,137, 68, 88,177, 98, 5,246,238,221, - 91, 27,161,101, 32, 20, 10, 55,179, 88,172,177, 44, 22,203, 66,163,209,192,195,195, 3, 67,135, 14,133,190,190, 62, 84, 42, 85, -169, 71,179,196, 75, 85,141,167, 35,224,229,203,151, 70, 47, 95,126,242,216,114, 53, 55, 55,127,168, 80, 40, 16, 29, 29,141,107, -215,174,245, 2,224, 91,195,186,142, 14, 8, 8, 24,224,226,226,242, 71,251,246,237, 27, 17, 66,208,170, 85, 43,140, 27, 55, 14, - 94, 94, 94, 8, 12, 12, 68,126,126, 62,115,255,254,253, 19, 0,118,212,180, 15, 47, 46,223, 38, 35, 71,142,124,118,230,204, 25, -211,236,236,108,200,100, 50, 72, 36, 18, 92,188,120, 17,221,187,119,135,185,185, 57, 78,159, 62, 77, 19, 66,170,170,123, 22,139, -197, 58,234,233,233, 57,116,218,180,105,216,191,127, 63,206,157, 59,135, 97,195,134, 97,236,216,177,200,204,204,180,218,190,125, -251,196,226, 97,194,181,227,198,141,131, 88, 44,198,155, 55,111,194,180,188,231,145,151,151,135,188,188, 60,240,249,252,178,247, - 24, 5,192,107,215,174, 93,223, 47, 92,184, 16, 13, 27, 54, 92, 27, 19, 19,179, 11, 21,172, 18,101, 24,102, 86,114,114,178, 41, -135,195, 49,163,105, 26,137,137,137,120,251,246, 45,230,206,157,155,147,147,147, 51, 19, 64, 60,128, 85, 83,167, 78,221,184,120, -241,226,210,182,180,120,241, 98,239, 91,183,110, 13,248,167,189, 57,206,206, 38, 45,244,217,188, 5,185,133,108,179,220,220,220, -210,103,135, 82,169,132, 66,161,248,196,147,197,229,234,153,117,108, 91,239,166, 76, 90,184,242,253,135,188, 74, 19,164, 55,107, -100,220, 90, 32, 52, 94,216,189, 71,239, 9,253, 7,124,199,166,213,106,220,189,123, 3,199,142, 29,128,171,139, 51, 26, 54,110, -133,121,243, 23, 24, 43,148,180,199,253,251,119,150,155,188,124,122,167,176, 32,111, 69, 85,156,255,227,184, 89, 44,174,110, 86, - 56,116, 88,145,130, 44, 14,225,144, 91,188,105,110,106,106,186, 79,163,209,184, 26, 25, 25,129,201,139,196,251,183,175,144,147, -171, 7,133, 76, 3,134, 20,137, 45,173,132,139, 66,137, 39,119,175, 99,247,174,157,200,206,206,134,203, 55,189, 32,230,216,163, -158,125, 61,200,101,210,226,155, 6, 80, 41,213,176,176,114,128,191,127,160,186, 64, 34,169,244,129,196, 53, 80, 53,171,103,229, - 12,133,170, 43, 12,244,245,145, 95,168, 68,110,177,200, 58,125,105, 12, 20, 82, 25,104,165, 10,180, 82, 13,139,122, 35,209,212, -170, 55, 24,205,141, 22, 53, 42, 62, 70, 3, 85,236, 19,168, 98,159,128,223,117, 62,254,220,242,125,185,142, 84,187,188,187,153, -153,153, 25,161,161,161, 55, 2, 2, 2,134,143, 25, 51, 6,143, 30, 61,154, 1, 96,118,241,240,205,140, 49, 99,198, 32, 32, 32, - 0,161,161,161, 55, 50, 51, 51, 51,190, 70,205,235,235,235,203, 20,138,162, 62, 86, 32, 16, 24, 84,115,172,109,199, 17, 35, 88, -249,254,254, 5,187,158, 63, 95,123,228,232, 81,110,223, 62,125, 40, 53, 77,131,209,104,208,216,201,137,234,223,191,191,208,235, -194, 5, 51,182, 90,253,114,169,187,187,207,193, 31,126, 40,124, 45,145,104, 59,209,188,126,241,144, 33, 0,212,175, 98,159,214, - 80, 40, 20,123,102, 77,159,220,215,247,201, 51,251,122,246,182, 70,119,239,251, 6,242,248,250,172,134,142,141,216,185,249, 57, -156, 13,107, 87,242, 21, 10,133,182,162,181,153,185,185, 57,210,210,210, 16, 21, 21, 5,133, 66, 1,181, 90, 13, 70, 42,129, 50, - 55, 15,202,252, 28, 80,114, 25,120, 26, 13,228, 89,233,168,223,176, 1,240,215,138,196,106,135,162, 42, 18, 90, 37,223, 6, 70, - 70,224, 10, 69, 96,233,233,105,157, 28, 29, 64,251, 78,157, 58, 93,184,124,249, 50,119,202,148, 41,157, 31, 60,120,176, 15, 64, -124,114,114,114,159,213,171, 87,191,222,183,111, 31,111,230,204,153, 77,118,236,216, 49, 17,192,161,202, 72,228,114,249,133,155, - 55,111,142,119,112,112,176, 10, 14, 14,134, 92, 46, 7,195, 48, 24, 56,112, 32, 80, 52,183, 6, 0, 16, 17, 17, 33,147,203,229, - 25, 33, 33, 33, 5,241,241,241, 42,104,177, 74,112,221,158,212, 23, 5,105, 79, 70, 88, 89,219,190, 52,224,215,119, 36, 98,255, -225,139, 70,217,110,223,117, 41, 89,126, 39, 58,186,240,231,126, 13,182, 74, 10,131,230,154,216,137,247,223,241,142,209,102, 34, -124,233,234, 66, 51, 51, 51,112, 56, 28,232,233,233,129,203,229,130,162, 40,204,159, 63, 31,135, 15, 31,174,110,232,240, 19,145, -101,104,104, 24,186,126,253,122,187,153, 51,103,114, 13, 12, 12,144,155,155,139,211,167, 79, 99,234,212,169, 56,118,236, 88,133, -243, 95,180, 24, 82, 42,239, 45, 93,248,195, 15, 63, 64,169, 84, 98,220,184,113, 56,114,228,200, 66,141, 70,227, 91,139, 91,250, -101, 96, 96,160, 83, 96, 96,160, 17,128, 97, 99,199,142, 61, 57,114,228, 72,248,250,250,226,198,141, 27,189, 80,180,232, 67, 6, - 96, 11, 0,203,226,239,170,238, 79,161,149,149,213, 1,134, 97,134, 89, 88, 88, 4, 58, 59, 59,183, 60,115,230,140, 73, 70, 70, - 70,201,226, 7,196,198,198,226,248,241,227,169, 71,143, 30, 45,208,104, 52,102, 44, 22,235,102, 94, 94,222,138, 42, 4,219,209, - 93,187,118, 77, 46, 30, 14,196,229,203,151,201,206,157, 59,169,213,171, 87, 35, 55, 55, 23,174,174,174,240,244,244, 92, 32, 22, -139,219,236,220,185,115,250,232,209,163,177, 97,195, 6, 72, 36,146, 93,213,189,172, 84, 33,190, 40, 0,221,118,237,218,229,176, -112,225, 66, 92,190,124, 25,237,219,183,231,199,196,196, 28, 4, 48,173,162,250, 35,132, 32, 38, 38, 6, 82,169, 20,207,158, 61, -195,218,181,107,115,203,136,172, 5,179,103,207,222,184, 96,193, 2,108,222,188,153, 4, 7, 7,103,140, 28, 57,210,234,240,225, -195,236,198,141, 27, 47,144, 74,165,255,152,208,106,210,184,206,214,142,237,123, 44,183,177,109,140,211,103,206, 34, 39, 39,167, -180, 76, 74,202,133, 16,130,194,194, 66,164,165,165,193,216,200, 16,219,119,108, 28, 52,103,198,100,123, 20,133,193,248,220,101, -217,208,116,199,200,177, 83,126, 26, 55,126, 50,130, 3,223,193,235,228, 33,132, 4, 7,148,242,209,106, 21, 34,195,222, 34, 50, -236, 45,172,172, 29,208,191,111, 47,234,251,239,191, 31,248,195,248,177, 22, 0,254,182,208, 17,255,197,222, 44,224,243, 56, 90, -135, 63, 17, 90,213,184,235,204, 77, 77, 77, 67,207,159, 63,111,230,226,226,194,166,105, 26,119,238,222,197,220,217, 63, 98,226, - 15, 30, 80,193, 20,180,146, 11,134,107,160,149, 37, 50,153, 20, 4, 4, 18,137, 4,126,126,126, 32, 12, 13,175,195, 59, 65, 8, - 83, 42,180, 0, 2,165, 74, 5,219,122, 77,112,224,200, 38, 26,122,122,175,161,174, 56,116, 77, 65, 54, 91,163,166, 9,146, 51, - 18,144,144, 26, 2, 99,195,122,224,232,213, 67,118,158, 20, 28,150, 53,212,242, 8,104,138,207,149, 74,146, 32, 83,125, 89,253, -105, 42,240,158,146, 26, 60,116,101, 50,217,169, 83,167, 78, 13,250,237,183,223,244, 7, 15, 30,236,124,233,210,165,110, 0, 48, -120,240, 96,103, 35, 35, 35,156, 58,117, 74, 41,147,201, 78,125, 69,143, 79,239, 78,157, 58, 33, 55, 55, 23,177,177,177,129, 85, - 94,155, 82,105, 38,178,180,100,103, 60,122,164,206,204,205,181,239,221,187, 55,165,166,105,176, 40, 10, 57,249,249,136,143,139, -131,137,137, 9, 21, 26, 17, 33,218, 59,111,222, 85,231,150, 45, 57, 37, 43, 18,181,193,141, 27, 55, 4, 40,154,151, 85,229,190, - 26, 66,146,145,158, 54,217,221,221,253,234,169, 83,167,141,211, 51,210, 35,121,250,250,180, 72,100, 80,247,135, 9,115, 56,121, -121,121,227, 1,136,181, 37,203,205,205, 69, 76, 76, 12,248,124, 62,184,122,122, 96,100, 82,104, 36, 98,200,115, 50,193, 86, 41, -161,175,209,160,142,128, 7,123, 43, 43,212,179, 48,215,138, 51,234,225,189,210,137,239,101,135, 11,183,119,106, 6,125,161, 8, -250,134, 34,204,241,126, 92,252, 54,202, 5, 86,255,162, 13,173,185,173,173,237,159,103,206,156,225,102,102,102, 34, 32, 32, 32, - 16, 64, 62, 0, 67, 0, 76, 88, 88,216,131,144,144,144, 33,197,171,238,170, 91, 45,182,243,202,149, 43,253, 92, 92, 92,104, 71, - 71, 71, 97, 70, 70,134,125,110,110, 46,147,154,154,250,137, 75,232,222,189,123,188,194,194, 66, 9,195, 48, 87,139, 69, 86,181, -241,139, 22,141,178, 53,240,243,199,252,158,110,245, 91, 25,153,183, 70, 14,237,223,234,101, 96,234,252, 69,163,108,247,236,186, -148, 44,231, 83,138,147,148, 38,209,158, 99, 32,215,118, 18, 51, 1,138,230, 74,249,249,249, 33, 62, 62, 30, 49, 49, 49,159, 8, -170, 25, 51,102,192,203,203, 75, 43,143,150, 80, 40,220,188,110,221, 58,187,133, 11, 23,114,203,136, 34,184,187,187, 35, 63, 63, - 31, 71,142, 28,129,187,187,123,141, 59,254,114,104,208,187,119,239,193, 54, 54, 54,200,206,206,134,181,181, 53, 92, 92, 92,134, -250,250,250, 58, 2,136,173,101,187,159,227,230,230,182,113,253,250,245, 80,171,213,152, 58,117, 42, 62,124,248,112,225,195,135, - 15,187,235,213,171, 55,127,217,178,101, 86, 86, 86, 86, 24, 51,102,140,144,166,233, 17,149,145,212,169, 83,103,203,161, 67,135, -198, 15, 30, 60,152,165, 82,169,190,121,248,240, 33,226,226,226,160, 84, 42, 65,211, 52, 62,126,252, 8,119,119,247,212,226,213, -141, 31,181,176,107,202,170, 85,171, 38,207,159, 63, 31,219,182,109,195,186,117,235, 78, 24, 27, 27,183,108,219,182,109,187,117, -235,214, 97,233,210,165,112,112,112,128,153,153, 89,211,213,171, 87, 55, 91,188,120, 49,246,236,217,131,181,107,215,158, 0,112, -188, 54, 5,193, 48, 12,181,117,235,214, 54,187,118,237,178, 41, 17, 89, 44, 22, 11,231,207,159,135,191,191,255,208,232,232,232, -138,206,241,180,182,182,158, 97, 99, 99,163,127,255,254,125,145,131,131, 3,104,154, 86, 23,139,172,189,245,234,213,155,251,241, -227, 71, 12, 30, 60, 24,209,209,209,167, 0, 76, 52, 54, 54,150, 44, 94,188, 88,192,231,243,141,165, 82,233, 63,213,121,131,205, -162, 38,109,222,176, 20,111,252, 35,112,229, 10, 23,111,222,188,129,149,149, 21,120, 60, 30, 8, 33, 80, 40, 20,200,204,204,132, - 90,165, 64,171, 22, 13,240,199,209,173,200,200,200, 4, 88, 84,165, 83,110, 40, 22, 53, 97,242,143,195,241,244,217, 93, 28, 60, -120, 8, 98,177,164,146,151,111, 3, 52,118,110, 6,219,186,150, 72, 76, 74, 4,197,130,249,223,121,173,255,229, 67,135,165,143, - 32,104, 19,222,161, 44, 76, 76, 76,118,159, 59,119,206,204,213,213,149, 45,145, 72,192, 48, 12,122,184,184, 96,254,194,133,184, -113,230, 12,156, 58,143, 3,165, 20,129, 22,104,183,234, 65, 46,147,162,121,187,110, 24, 61,102, 44, 18,226,227,225, 54,100, 36, -228,114,105,233, 27, 70,137, 71, 75,169, 84,193,220,210, 30,247,238,221, 99, 99,234,212,247,216, 91,177, 83, 66,163,210, 15,138, -252, 40,239,158, 39,243,135,223, 27, 47,168, 20, 42,180,106,181, 26, 42,198, 12,150,118, 51,160, 86, 95, 67, 65,230,195,162, 97, - 12, 51, 87, 36, 37, 36,128,197,230,134,214,182, 4, 25, 73,230, 23, 61,116,243,243,243,243, 99, 98, 98, 46,249,249,249, 77, 24, - 49, 98, 4,238,221,187, 55, 29, 0, 70,140, 24, 1, 63, 63, 63,196,196,196, 92,202,207,207,207,255, 26,181,109, 99, 99, 51,172, - 87,175, 94,227, 58,118,236, 8,111,111,111, 16, 66,158,106,117, 99,235,233, 17, 22,139, 5,134, 97, 64, 1,200,206,203,195,135, - 15, 31,144,157,149, 5,181, 90, 13,137, 88,204, 52,115,118, 22, 19,134, 49,172,137, 61,101, 87, 24,162,130, 85,135, 37,251,106, -113,169,241,175, 95, 62, 79, 40, 20,139, 45, 76, 77, 76, 11,245,245,245, 53,185,121,121,249,239, 67,131,149, 90,118, 14, 37, 8, - 11, 9, 9,105,153,146,146,130,132,132, 4,208,146, 66,176, 21, 74,176, 20, 82,244,233,214, 21,124, 16, 24,128,129, 30,163,134, - 30, 91, 15,133, 69,171,243,170, 29,238,208,148,121, 73, 40, 17, 89, 20, 69, 21, 13, 23, 10,133,208, 23, 25,126,226,225,210,166, - 61,241,120,188, 51, 23, 47, 94,180,177,181,181,197,134, 13, 27, 96,103,103,215,180,110,221,186, 82, 99, 99, 99,190,149,149, 21, -154, 55,111,142,110,221,186,225,246,237,219,208,162, 12,104, 66, 72,255,167, 79,159,254,244,252,249,243,209, 66,161,144,154, 55, -111, 30,103,224,192,129,224,241,120,144, 74,165,200,205,205,197,217,179,103,179, 24,134, 41, 89,148, 98, 38, 16, 8,142, 83, 20, - 21, 43,145, 72, 22,150, 39,252,227,183, 86,117, 51,114,152,169, 68, 44, 24,222,211,173,126,171,222,110,125,209,192,169, 55,122, -187, 37, 0,192,214, 58,156,184,113,191,174, 50,185,106, 98, 72, 29,191,119,231,254, 90,151,158,189, 87, 45, 23, 63,218,184,237, -112, 94,181,243,233, 40,138, 2,195, 48,159,196, 14, 42,255,251,196,137, 19,113,254,252,249,106,203,145,197, 98,141,157, 57,115, - 38,183,156,231, 25,201,201,201, 24, 50,100, 8, 70,140, 24,241,137,208, 50, 55, 55,135,181,181, 53,226,226,226, 0, 32, 91,203, -118, 53,127,202,148, 41,148, 76, 38,195,180,105,211,112,228,200, 17,140, 27, 55,142,242,245,245,157, 15, 96, 97, 77, 27, 59,139, -197,218,190,108,217,178,159,220,221,221,145,147,147,131, 91,183,110, 97,224,192,129, 56,127,254,188,197,173, 91,183, 54,187,186, -186,130,205,102,195,219,219, 27, 52, 77, 87, 25,235,139,203,229, 14, 27, 60,120, 48, 43, 49, 49, 17, 92, 46, 23, 29, 58,116, 64, - 82, 82, 18,164, 82, 41,146,147,147,177, 96,193,130,180,236,236,236, 94,218,222, 71, 92, 46,119,225,252,249,243,113,238,220, 57, -120,120,120,156, 4, 48, 45, 63, 63,127,244,243,231,207,207,125,251,237,183, 72, 78, 78,198,213,171, 87,177,118,237, 90,106,226, -196,137,216,191,127, 63, 22, 44, 88,112,162,216,235, 84, 89,195, 47,204,200,200, 48,110,212,168, 17,210,211,211, 33, 22,139,113, -245,234, 85,203,219,183,111, 59,218,218,218, 26,197,196,196,104,126,249,229, 23,253,133, 11, 23, 98,247,238,221, 8, 8, 8,128, -151,151, 23,122,247,238, 77, 71, 71, 71, 87,232, 37, 43, 14,217,112,149, 16,114, 95, 40, 20,162,176,176,176,228,190, 91,226,225, -225,225,190,101, 75,145,147, 61, 37, 37, 5,147, 38, 77,250,193,199,199,135,113,117,117, 21,112,185, 92,200,229,114,201, 63,217, -107, 51, 26, 6, 0, 3, 71,123, 17,238,222, 56,138,119,129,209,120, 23, 24, 2,125, 94,209, 36,120,153, 76,138,118,173, 26,163, -115,135, 78, 72, 73, 77,198, 41,175,163,168, 99,110, 91,229,115,132, 16, 2, 46, 71,131,102,206,214, 56,227,117, 8,222,183,124, -224,117,234,108,233,156, 55, 14, 71, 15,109,219,117, 70,135, 14, 46,136,142,249,136,163, 71, 15,194,194,210, 94, 55, 56, 88, 75, -148, 14, 29,150,253, 46,167,252,123,187,184,184,176,197, 98, 49,228,114, 57,210,210,210, 16, 23, 23, 7, 19, 83, 19, 68,167,196, -162,151, 64,133, 52,166, 0, 97,129,161, 26,138,173, 23, 80,221, 63, 28,220,179, 45,208,179, 45,230, 78, 25, 87,197, 43, 43,129, -208,200,188,104,232,134,166,163,176,103, 15, 93,153,208,162, 53,234, 7,119,239, 63,236, 52,101,226, 48,189,123, 15,143, 64,173, -100, 32, 83, 27, 67, 34, 87, 66,162,210, 3,203,120, 32,144,229, 11, 54,135,135, 46,109, 26,227,234,149,219, 42, 66,171,125,180, - 46, 32,171,150,160,211, 67,202, 8,173,140,114,227, 14,117,180, 30, 58, 44,237,120, 53,154,243,167, 79,159,254,174,107,215,174, - 2, 87, 87,215, 70,197, 29,167,234,244,233,211,210,226, 96,152, 53,197, 39,209,224,173,173,173,219,113,185,220,113, 3, 7, 14, -108, 55,121,242,100,188,127,255, 30,167, 78,157,138,108,220,184,241,163,212,212,202, 87,100,179,245,245,179,197, 25, 25, 38, 34, - 71, 71,142,169,161, 97,202,237, 91,183, 28,250,246,235, 71, 37, 36, 36, 32, 59, 59, 27,114,185, 28, 1,129,129, 68,143,205, 78, - 48,106,131,190, 0, 0, 32, 0, 73, 68, 65, 84,162,140,140, 88, 17,254,254, 44,182,190,126,118,101,222,198, 10, 16, 87,205,170, -195, 45,181,245,110,217,219,152, 54, 90,235, 49,171,129, 92, 33,111, 89, 80, 80, 64,115,244,244,244,236,172, 77,226, 35, 62,106, -255, 76, 84, 40, 20,222, 15, 30, 60,248,174,111,223,190,188,200,160, 0,208,249,249, 80,230,231,130,203,104, 80,167, 93, 27,176, - 85, 10, 64,169,134,109, 51, 2,121,158, 0,190,175, 34,212, 10,133,162,218,160,134, 37, 66,139, 85, 78, 24,232,139, 68,224, 25, - 26,129, 39, 18,149, 23, 12,213,189,201, 9,250,247,239,223,167, 75,151, 46, 32,132,224,240,225,195, 80,169, 84,250, 42,149, 10, - 74,165, 18, 42,149, 10, 5, 5, 5,240,242,242,194,129, 3, 7,158, 3, 56,161,197,229,211,124, 62,255, 91,138,162, 44, 57, 28, -142,212,194,194, 66,120,254,252,249,210,112, 19,109,219,182,133,161,161, 33, 23,197, 65, 33, 45, 45, 45,245,142, 29, 59,102, 50, -116,232,208, 39, 21, 14,119,180,106,186,180, 1,109,218,211,128, 95,223,209,200,188, 53, 26, 56,245, 6, 0,244, 27, 50, 5, 13, - 26,215, 67, 65, 86,144,163, 92, 22, 55,156,203,201, 53, 13,221,147,252,158, 63,184,229,100, 73,198,227, 15,168,120,121,127,133, - 29, 5,139,197,170,116, 56, 86, 27,145, 85,164, 89, 88, 22, 37,243,124, 0, 32, 59, 59, 27,169,169,169, 8, 11, 11, 67,147, 38, - 77,144,147,147, 3, 91, 91, 91, 40,149, 74,116,236,216, 17, 50,153, 12,187,118,237,194,179,103,207,158, 3, 88,160,197,255,224, - 59, 57, 57, 77,106,215,174, 29,110,221,186,133, 55,111,222, 36,223,189,123,215,214,197,197, 5,142,142,142,147, 99, 99, 99, 87, - 22, 15,245,105, 11,161,139,139,203, 60,119,119,119,132,132,132, 96,214,172, 89,217,137,137,137, 87, 47, 92,184, 48,109,237,218, -181, 44, 55, 55, 55,164,166,166, 98,251,246,237,154,103,207,158,237, 0,176,161,154,114, 12, 79, 76, 76,180,147,203,229,200,201, -201, 1, 77,211,144, 74,165,184,125,251, 54,188,188,188,210,139, 69, 86,148,182,198,181,105,211,166, 57,139,197,194,185,115,231, - 0,224,103, 20, 69,236,191, 58,124,248,240,228, 95,126,249,197,118,197,138, 21,152, 62,125, 58, 84, 42, 21,182,109,219,134, 21, - 43, 86,220, 44, 22, 89, 85, 61, 68,127,179,182,182,158, 49,107,214,172,166,139, 23, 47,134,159,159,159,229,219,183,111, 59, 4, - 4, 4,192,222,222, 30,217,217,217, 28, 51, 51, 51,236,222,189, 27,139, 22, 45,186, 12, 32,235,197,139, 23, 99, 99, 98, 98,182, - 0,216, 94,141,104,247,180,181,181,157, 65, 8, 33, 82,169, 52,206,195,195, 99,251,166, 77,155,176,104,209, 34,132,134,134, 34, - 63, 63, 31,134,134,134,212,178,101,203, 38,253,252,243,207,152, 58,117, 42,145, 72, 36, 7,254,233,142,154, 16, 13,164,185, 33, -208, 40, 76,209,182, 85, 19,180,109, 89, 31,119, 31,190, 3, 0,244, 25,233, 2,169,164, 16, 39, 79, 30, 70, 84,212, 7,112,244, -244, 96, 82,199, 90, 27, 79, 32,148, 5,225,200, 83,165,162,175,107, 7, 12,116,235,133, 19,127,156, 7,173, 86, 97,218,148,241, -200,205,203,195, 31,127, 28, 69,116,204, 71,112,244,244, 96,102,254,247, 7, 66,173, 74,139,252,215, 11, 45, 45,134,159,192, 48, - 12,146,147,147,241,246,237, 91,196,198,198, 66, 32, 16, 64, 70,107,152,131, 15,158, 49, 20,197, 77, 98, 8,121, 78,232,210, 40, -197,159,115,104, 52,201,101, 34,214, 26,155,154,154,234, 43, 20, 50,208,180,186, 76,175, 66, 1, 20,192,229, 0, 54,117, 27, 32, - 49, 33,145,200,229,242,199, 85,190, 65, 41,228,187,175, 95,189,232,222,173,187,139,249,192, 62,235,113,245,218,106,228, 22, 20, - 64,174,210,131, 68,174,130, 84, 14,152,212,113, 70,199, 86,173,145,146,146,141,160, 55,190, 98,142, 66,170,205, 68,209, 15,123, - 87, 77,113,154, 50,119, 41,248, 14,221,161, 8,187, 10, 70,156, 94,234,209, 50, 16,153,162, 78,189,102,200,147, 40,112,209,231, - 29, 80,131, 84, 47, 25, 25, 25, 82, 54,155,125,218,221,221,125,219,187,119,111,237, 0,224,221,187,119, 73,169,169,169,203, 51, - 50, 50,106,234,147, 46,137, 6, 79, 25, 24,240,223, 53,110,220, 56,165, 67,135, 14,198,195,135, 15,135,185,185, 57, 2, 2, 2, -176,101,203,150,112,149, 74,181,212,215,215,183,202,161, 30,165, 82,153,252,238,218, 53,163, 94, 63,254,104,178,116,232,208,237, -238,238,238,187, 55,108,216,160,231,228,228, 68,169, 85, 42, 4, 7, 7,147, 51,167, 79,171, 15,172, 88,177, 75, 95, 40,228,188, -190,126, 93,143, 86, 40,146,255,191, 27,177,173,173,109, 79,151,111,122, 52,219,241,219, 30,200,101, 98,188,242,187,137,220,220, - 76, 28, 58,124,165,153,173, 45,233,153,156,156,236,171,173, 0, 62,126,252,248, 79,157,219,181,107,215,208,222, 30,193,241,177, -208,103, 52,224,210, 52,216, 42, 5, 88,180, 28,246, 45, 9, 40,150, 33, 82,211, 10,176,233,220,165, 16,109,132,113,211, 65,195, -176, 33, 41, 31, 20, 69, 97,103,215,150,208, 55, 20,129, 43, 20, 97,206,159, 15, 75,133,129,247,134, 21,208, 23,137,208,168,179, - 86, 1,225,165,143, 30, 61,122, 27, 28, 28,220,177,101,203,150,248,233,167,159, 16, 23, 23, 7,134, 97,144,158,158, 46, 79, 77, - 77, 77,206,204,204,140, 67, 81,252,159, 35,213,116, 98,101, 85,135,173,175,175,111,233,112,131,143,143, 15,234,214,173, 11, 99, - 99, 99, 20, 20, 20, 96,230,204,153, 38,107,214,172, 1, 0,188,125,251, 22,101, 5, 74,121, 4,191, 11,219,145, 87, 72,114,137, -216,127,120, 14,237,223,170,183, 91, 34,250, 13,153,140,251,222, 39,240,240,238, 3,212,225,196,197, 66, 88,120, 59, 43, 54,171, - 32, 73,226,228,217,172,253, 52,118,170,228,174,231,188, 97,145,108, 27, 27,230,226,138,131, 5,121, 85,217,234,228,228, 4, 43, - 43,171,210, 57, 90, 28, 14, 7, 83,167, 78, 5, 33, 68, 91,145, 85,220,215, 48,153,114,185,220,202,192,192, 0,105,105,105,248, -248,241, 35,162,163,163, 75, 67, 7, 48, 12,163, 94,178,100,137,222,188,121,243,112,240,224, 65, 60,126,252,248, 57,128,245, 0, -180,125, 89, 27, 63,102,204, 24, 67,165, 82,137,179,103,207,210, 0,134, 92,188,120,241,109,199,142, 29, 57, 3, 6, 12, 48,220, -191,127,255,248,226, 58,210, 90,104, 25, 25, 25,113, 85, 42, 21,246,239,223,143,196,196,196,158, 0,194, 94,191,126,237, 57,102, -204,152, 3, 45, 91,182,108, 28, 18, 18,242, 65, 44, 22,207, 1, 16, 84, 29, 89,122,122,250,148, 14, 29, 58, 92,100, 24,198,161, -111,223,190,194,223,126,251,205, 40, 34, 34, 2,118,118,118, 96, 24, 38, 24, 53, 76, 97,245,225,195,135,176,212,212,212,102,189, -122,245,194,237,219,183,183,106, 52,154,205, 0,182,205,158, 61,219, 54, 62, 62, 30,237,218,181, 67,157, 58,117, 16, 17, 17, 81, -152,154,154,122, 0, 69, 41,137,170,115,225,198, 0, 88,238,233,233,217,218,211,211,115, 92,157, 58,117,186, 4, 4, 4,224,233, -211,167,216,177, 99, 7,214,172, 89,131, 30, 61,122,224,167,159,126,202, 2, 48, 14, 0, 29, 19, 19,163, 85,220,188, 18,207, 22, - 0,180,111,223, 62,101,203,150, 45,152, 54,109, 26, 57,118,236,216,239,167, 79,159, 94, 56,126,252,248,210, 62,112,210,164, 73, -228,212,169, 83,147, 80,148,134,233,159,132, 90,165, 82,194,168, 78, 3,136,243, 18,144,153,232, 7,129,161, 53,220,122,183,129, - 84,166,196,141,235,151, 17, 20, 28, 8, 22,139, 5, 43,107,123,152,152,154, 35, 50,242, 3, 80,245,106, 99,181, 74,165,130,161, -105,125,136,243, 19,161,204,120, 7,190,200, 18,147,127, 28, 14,169, 76,133, 43, 87, 47, 35, 36, 36, 8,108, 54, 27,214, 54,246, - 48, 54, 41,226,164, 72,213, 43,152,117, 0, 80, 65, 60,173,106,133, 22,155,205,126,116,231,206,157, 81,157, 59,119,230, 68, 69, - 69, 33, 42,170,232,229, 38, 55, 55,151,166,160,185,148, 17,124,253,251, 42, 78,239,139,226,213, 25,101,115, 23,138, 12, 13,147, - 35,194,195,172,114,115,210, 17,232,255, 12, 81,145,193,136,141, 14,131, 74, 37, 7,155,197, 2,139,205, 66,253, 6, 45,240,236, -185,159, 82, 78,211,126,149,113, 22,217, 17, 93, 40,180,116, 26,187,113,195, 74,239, 69, 75,215,241, 71,143, 58,136,160,136,247, - 16,211,214, 32, 4,176, 54, 19,162,109,195,101, 72, 78,201,196,185, 19,251,165,140, 74, 53,161, 92, 12,173,207, 56, 1,192, 42, - 11,205, 15, 28, 62, 49,245,136,215,153,117, 75,231,205,180,250,118,196, 4,232,231,188,135, 58,229, 29, 26,116, 28, 8,138,103, -130, 91,247, 30,194,247,237,251,116, 70, 67,214, 89,101,227, 88,100, 53,156,101,145,151,151,247, 34, 45, 45,213,174, 76, 20,120, - 59, 30,207,160,186,213,113,229, 57, 63,137, 56,207,102,179,218,111,220,184, 81,109,101,101,165, 10, 9, 9,193,193,131, 7,153, -119,239,222,221, 99,177, 88,123, 83, 83, 83,229,213,113, 90,168,213,129,103, 60, 60,154,119, 26, 49,130,124, 63,111,158, 20, 60, -222,252,237, 59,119,122,100,230,230,214, 37, 12, 3,139, 58,117,146,182,175, 88,177,101,212,152, 49,185,161,207,158,241,253,174, - 93,227,235,211,244, 59, 45,236,252, 26,168,148, 51, 57, 57,217,247,241,227,167, 56,121,228, 55,168, 84, 10,164, 38,199, 3, 0, -178,178,243, 81,141,200, 42,207, 73,164, 82,233,136,159,215,172,121,249,243,162,133,214,223,244,233,139,132,192, 0,168,114, 50, - 65,169,105,232, 81, 28, 72, 50, 4,200, 72, 23, 99,249,169, 11, 25, 98,169,116, 68, 5,157, 68,133,118,150,120,172,120, 70,134, -224, 10, 69,208, 23, 25,126,226,197, 50, 48, 50,130,190, 80, 4,142,190,126, 69, 19,184, 63,227, 20,139,197, 35, 71,141, 26, 21, -244,250,245,107,211,105,211,166,161, 91,183,110,254, 50,153,204, 21, 64, 97,109,203,147, 97,152,228,111,190,249,134, 69, 81,148, -104,194,132, 9,188,204,204,204,210,200,234, 98,177, 24,183,111,223, 70,147, 38, 69,171,250, 67, 67, 67,209,162, 69,139, 74, 57, -167, 47, 15, 73, 6,176, 97,209, 40,219,237, 47, 3, 83,231, 3,216,218,160,177, 61, 30,222,125,128,167, 15,253, 60,186,180,100, -246, 12,154,208,241, 23,129,235,152,165,205,218, 79, 99,139,140,108,240,199,149,203,236,176,119, 71, 55, 73,165,193,141,112,240, -234,146,202,236,164, 40, 10,132,144,207, 66, 57,176,217,108,156, 62,125,186,166,215,126,225,200,145, 35,179,103,205,154,197, 77, - 77, 77, 69,120,120, 56, 36, 18, 9, 12, 12, 12,112,247,238, 93, 26,192,254,211,167, 79,223, 61,125,250,244, 0, 20,173, 38,242, -169, 73,251, 20, 10,133,238,110,110,110, 8, 15, 15,199,155, 55,111, 46, 3, 8,242,247,247,191, 28, 21, 21, 53,182, 71,143, 30, - 56,113,226,132,187, 76, 38, 59, 82, 19, 78,134, 97,202,198, 76, 42,201,248, 16, 40, 22,139,187,248,249,249,213,180,222, 83,179, -179,179,187, 23, 11,235, 68, 43, 43, 43,163,192,192, 64,212,171, 87, 15, 42,149,170,115, 77,219, 82,126,126,254,111,123,247,238, - 61, 54,101,202, 20,252,242,203, 47, 19, 46, 92,184, 48, 97,208,160, 65, 24, 60,120, 48,142, 31, 63,142,160,160,160,173,208, 46, -173, 88, 69,215, 30, 4, 32,200,202,202,106,174,189,189, 61,118,236,216,129,224,224,224, 45, 27, 54,108, 88, 17, 20, 20,132, 38, - 77,154,240,194,194,194,232,218, 60, 67, 0,192,200,200,200, 72,173, 86,227,218,181,107,175, 0, 44,154, 48, 97,130,229,238,221, -187,199,137, 68, 34,228,228,228,200, 66, 66, 66,198, 3,184,254, 79, 63,235, 8, 69,173,154, 54,125,190,231,244,105,227, 13, 58, -180,111, 11,105, 65, 18,100,226,116, 72, 11,211,176,247,200, 61, 80, 20, 11, 22, 22, 54,176,180,182, 67,124,124, 2,158,223,188, -165,148, 72,101,187,245,213,204,214,170, 57,231, 21,113,182, 43,226,148, 74, 50, 32, 19,103,148,114, 90, 90,214, 45,230,140,199, - 51,191, 91,114,153, 68,242,155,146, 80,191,254,205,215,254,223,140,154,229, 58, 44,139,220,220,220, 5, 51,103,206,116, 93,190, -124,185, 25, 77,211,236, 58,117,234, 32, 62, 62,158,190,116,233, 82,142, 88, 44, 94, 80, 27,107, 56,122,122, 65, 78,206, 77, 92, -191,253,246, 91,122,216,176,161,220, 31,166, 12,224, 88, 88, 90, 34, 63, 47, 27,145,225, 1,136,120,255, 14, 78, 77,218, 96,237, -134, 93,128,137, 73,181,137, 36,139,211,234, 12, 89,255,243,146,243,221,123,246, 55,106,210,162, 13,183,109, 35, 99,168,212, 52, -146,146,146,112,253, 90,160, 42,228,237,211, 2,134, 86,142,149,102,105,151,130,199, 23,160,145,141, 67, 45, 45, 85,167, 55,111, -223,251,211,254, 67, 39,151, 46,159, 63, 77,216,195,165, 31,130, 31,156,192,101,239,243, 18,185, 66,185,157,203,198,206,144,108, - 72, 35,107, 88, 6,114,185, 92, 85,190, 63,149,203,229,170, 47,173,233,227,199,143, 35, 61, 61, 93, 25, 23, 23,119,135,166,233, - 11, 85, 36,123,254, 12,123, 1,229,112,133,226,193,207, 46, 46, 3,126,190,123,215, 96,210,178,101,202, 9, 63,252,176, 4, 10, -133, 10,250,250,132, 35, 20,178,192,227,233,133, 62,123,198,255,125,246,236, 58,148, 82,121,255,100, 21, 97, 3, 42,192, 87, 95, -117, 88,226,209,234,213,171, 7, 38, 77, 91, 4, 89, 25,143,214,139, 55,145, 80,168,160,181, 71,171, 24, 9,113,137,137, 93,230, -175,250,249,202, 88,183, 62,205, 90, 58,212,231, 89, 56,214,135,200,218, 26,217,153,153,120,246, 38, 66,189,225,252,149,144, 98, -145,165, 85, 92, 25,134, 97,138, 38,185, 3,232,179, 96, 57, 40, 54, 27, 40, 14,227, 80,178,114,200,177, 99, 55, 80, 28, 14, 52, -132,129, 66,161,208,102,210, 95,210,199,143, 31, 71, 78,152, 48,193,199,219,219,155,229,230,230,214,246,234,213,171,204,151,180, - 29,153, 76,214, 5, 0, 12, 12, 12, 98, 77, 76, 76,108,167, 76,153, 2,181, 90, 13,169, 84,138,252,252,124, 36, 37, 37,229, 77, -153, 50, 69, 5, 0,124, 62, 95,127,212,168, 81, 70,213,113,238,186,148, 44, 95, 52,202,118, 79, 29, 78,220,184,130,172, 32,199, - 58,156,184,216, 46, 45,153, 61,187, 46, 37,203,141,234, 74, 54,102,197,249, 70,166, 74,238,122,254,113,229, 50,123,226,240,145, - 26, 59,209, 7, 15, 3, 75,114,169, 58, 94,138,162, 62, 11, 78,170,165,200,250, 4,133,133,133, 43, 86,175, 94, 61, 56, 55, 55, -215,110,192,128, 1,220,102,205,154,225,229,203,151,240,246,246,166, 95,188,120,145, 40,145, 72, 86, 2,144, 3,184, 87,155, 50, -117,118,118,118,228,112, 56, 37, 67,105,251,138,119,239,187,122,245,234,216,105,211,166,161,126,253,250,205,195,194,194,120,168, -193,125, 68, 8, 41, 29,101,248,154,160, 40, 42,250,247,223,127,183,181,182,182,166,110,223,190, 77,179,217,236,218,120,110,142, - 31, 61,122,180,179, 90,173,158, 62, 99,198, 12,244,236,217, 19, 52, 77,227,212,169, 83, 56,122,244,168,182, 34,171, 74, 68, 70, - 70,190, 75, 76, 76,252,102,201,146, 37,216,177, 99,199,138, 37, 75,150, 32, 49, 49, 17,145,145,145, 1, 95,194, 91, 80, 80, 32, - 75, 72, 72, 16,116,237,218,181, 67, 72, 72, 72,136,171,171,107,139,105,211,166, 97,235,214,173,228,241,227,199,163, 0,220,254, -255,232,189, 35,162,114,188,244, 52,156,187, 27, 54,254,182,166, 81, 67,199, 89, 83, 39,143, 97, 59, 59,181,128, 36, 63, 9,102, -230, 86,176,179,111,128,204,140, 44,220,185,115, 91,147,149,149,119, 92,195,162,214, 71, 69,229,164,124, 9,167,173, 93, 3,100, -100,100,224,214,173, 91,154,188,220,130,195, 80,179, 54,132,197,231,165, 67, 7,109, 60, 89, 51, 80, 69,148,248,170, 96,110,106, -106,122,214,200,200, 40,221,200,200, 40,221,212,212,244, 44,160,213,234,131,190,101,158, 14,236, 79, 62,163, 70, 25,192,192,160, - 11, 56,156,197, 38,166,166,183,141,141,141,179,123,245,234,165,244,244,244,148,135,133,133, 50,201,201,137,196,216,216, 56,191, -244,248,138, 56,203,193,212,180,161,161,208,166,197, 26, 99,187,182,207, 68, 54,205, 11, 69, 54,205, 11,141,237,218, 60, 23,218, - 52, 95,103,106,218,208, 80, 43, 59, 43, 65, 3, 75, 88, 56,153, 99,127, 19, 11, 74,230,100,142,253, 13, 44, 97,161,245,181, 87, - 61,236,167,161, 40,104, 80,180, 12, 27,181,224, 44,225, 96,216,108,246, 73, 59, 59, 59, 27,212, 44, 96,221,103,156, 63, 0,245, -127,224,241,166, 95,244,240,152, 20,251,248,241,132,130,152,152,239,243,163,163,199, 4,156, 63, 63,118,223,216,177, 63,124,207, -227,205, 24, 5, 52,212,150,211,198,198,102,203,187,119,239,188,181,253,148, 17, 94, 90,151,103,195, 6,182,119,221,250,118, 38, -238, 51, 71, 16,247,153, 35,136, 91,223,206,164, 97, 3,219,187, 95, 80, 71, 20,155,205, 30, 39, 16, 8,206, 10, 5,130, 96,161, - 64, 16, 44, 16, 8,206,178,217,236,113,168,122, 14,213, 39,156,102,102,102,111,173,172,172,210,107,242, 49, 55, 55,247,175,129, -157,223, 59, 58, 58, 38,178, 88,172, 93, 53,188,167,171,226,116,226,243,249,209, 66,161, 48,169,236,135,207,231,151, 13, 12,101, - 38, 16, 8,110, 8,133,194,221,218,112,254,186,170,197,154,231,247,230, 6,253,186,170,197,154,242,191,205,251,206,116,202, 75, -159,245,217,243,190, 51,157,162,141,157,150,150,150,143, 45, 45, 45, 83, 45, 45, 45, 83,173,172,172,170,252,152,155,155,191,213, -130,211,192,208,208,112,183,161,161, 97,186, 80, 40,212,136, 68,162,116,161, 80,184, 11,101, 66, 91,212,182, 60, 89, 44,214,214, -230,205,155,203,217,108,246,177,114, 63,237,104,212,168,145,156,195,225,108,175, 33,167, 81,143, 30, 61, 52,129,129,129,164,103, -207,158, 4,128,233, 87,172,119,107, 83, 83,211,219, 70, 70, 70, 9,134,134,134,123, 1, 8,107,201, 73, 1, 24,103,107,107, 27, -208,187,119,111,169,173,173,173, 31,128,111,191,162,157,131,191,251,238, 59, 38, 33, 33,129, 16, 66, 72, 66, 66, 2,249,238,187, -239, 24, 20, 5,138,252,146,103,242,170,217,179,103,147, 23, 47, 94,144, 23, 47, 94, 16, 63, 63, 63, 50,120,240, 96, 6,192,143, - 95,248,156,199,215,186,246,102, 13,204, 27, 54,109,108,122, 97,252, 72, 23,230,222,245, 93,100,237,202, 89,164, 95,207, 22,164, - 73, 35,211, 43, 78, 78,102, 78, 95,131,115,205,202,153,164,239, 55,205,153,102, 13, 77,207, 55,107, 96,222,240, 31,190,246,127, -163, 87, 11,127,247,132,179,191, 92,139,159,138,165,138, 81,183,110, 93,100,103,119, 54,224,112, 92,120, 60,158, 43,139,205,126, -148,147,153,185,176,248,117, 75,243, 79,185,106,171,236,208, 27, 66,191,138,148, 4,181,225,252,100, 34,123, 45, 57,107,194,161, - 21,103,101, 73,165, 25,133, 34,197,140,166,223,238, 69,149,101,240, 9,167,173,173,237,116,134, 97, 28,181, 53,136,197, 98,197, - 38, 39, 39, 31,169, 77,121, 54,110,220,152, 20, 15,111, 83, 95,179,222,255,142,182,244,191,196,249,199,111,173,234, 54,105,213, -116,105,240,187,176, 29,197,195,138,165, 88, 55,207,212,208,165,119,175,213,207, 30, 62,254,101,221,222,220,194,255,231,107,103, - 65,203, 57,109, 95,129,179, 36, 72,104,141, 56,245,244,244, 60, 59,117,234, 52,253,229,203,151,199, 52, 26,205,140,255,209,246, - 57,152,205,102, 47,113,118,118,110, 27, 25, 25, 25,160,209,104,118,160,130, 64,145,181,176,115,165,163,163,227, 28, 46,151,203, - 19,139,197,185, 41, 41, 41,171, 1, 92,248, 79, 43,207,102,141,235,116, 32,164, 52,232,246,166,240,143, 57,175,191, 26, 39, 97, - 52, 12, 97,111,140,140,201,246,255,127,168,247,127,155,200, 58,252, 79,252,227,190, 58, 78, 29,167,142, 83,199,169,227,252,234, -156,124, 93,121,234, 56,255,133,156,255, 74,112,116, 69,160,131, 14, 58,232,240, 95, 7,153,174, 8,116,208,225, 63, 14,101,189, - 90,165,222, 44,170, 10, 85, 90, 19,151, 96,109,148,237, 3, 29,167,142, 83,199,169,227,212,113,234, 56,117,156,255,115,156,255, - 86,145,117,184,138,237,191, 13, 58,183,170,142, 83,199,169,227,212,113,234, 56,117,156, 58,206,255, 5,161, 85,225,182,110,232, - 80,135,191, 29,123,134,195, 22, 0,230, 95, 69,242,223,113,188, 14, 58,232,160,131, 14, 58,252, 63,227, 48, 42, 25, 58,252, 79, - 16, 90,117, 1,116, 65, 81,226,219, 8, 0, 79, 1,228,126, 1,159, 57,128, 49, 20, 69,141, 6, 0, 66,200, 69, 20,173, 26,201, -210,230,100, 3, 3,131,116,185, 92,110, 89,252,119,134, 92, 46, 47,155,203,128,194,231,171,217, 72,153, 79,133,112,116,116, 76, - 87, 40, 20,150, 90,252,251,124, 66, 72, 16,139,197, 10, 22,137, 68, 15, 35, 35, 35,189,107,114,225,174,174,174,147,216,108,246, - 38, 0,208,104, 52,171, 30, 61,122,116,242,111,172,183,206,246,117,173, 79,168,212, 42, 58, 61, 51,103, 53, 62, 15,228, 7, 0, -216, 63, 4, 91, 40, 26, 75,139,255,222, 62,215,187,234, 56, 58, 53, 61,190, 10,116,208,211,211,115,183,178,178, 26,152,148,148, -244, 22,192, 50,160,250,168,198,246,246,246, 63,114, 56,156, 9, 26,141,166, 33,155,205,142,166,105,250,116, 98, 98,162,151,238, - 25,162,131, 14, 58,232,160,131, 22, 98,235, 51,212, 72,104, 53, 49,131, 53, 1,198,129, 66, 63, 16,220,167,128,115, 17,217, 72, -211,246,252, 65, 77,160, 86,211, 69,255,147,203,130,230,246, 71,214,225,129, 3, 7,218,205,155, 55, 15,221,186,117,195,203,151, - 47,187, 30, 63,126,124,202,133, 11, 23,130, 24,134,121, 4,224, 37,160, 85, 40, 5, 33,138,226,180,140, 31, 56,112, 96,223, 77, -155, 54,177, 91,180,104, 1,153, 76,134,199,143, 31,187,108,223,190,125,247,243,231,207, 31, 0, 56, 83, 44, 8, 42, 77,128, 39, -151,203, 45, 75,146,113, 82, 20,101, 57,106,212,168,215,101,197, 85,113,126, 53,138, 16,242,130,162, 40, 63,141, 70,243,242,210, -165, 75,137, 77,128,206, 51, 29,185,151, 22,198,170,236,202,115, 42, 20, 10,203,107,191,110, 6,135,199,131,162,176, 0, 93, 39, -255, 37,122,239,175, 89, 10,138,161,193, 6,201,117,221,184, 59, 8, 64,112, 74, 74, 74, 80,207,158, 61, 99,107, 90,195,108, 54, -123,211,157, 59,119,108, 8, 33,112,115,115,219, 4,224,239, 18, 90,188, 46, 29,218, 60,186,113,249,172,129, 56, 39, 29, 3,190, - 29,123,250, 67, 98,198, 36, 0,151, 63, 17, 77, 3, 97, 69, 81, 88, 58,123,243, 25, 54, 0, 28, 88, 57,126,217,174,254,216,179, -232, 30,210, 0,184, 22,139, 31, 0,248, 21,192,163,253, 3, 97, 5, 96,249,236,205,103, 40, 0, 56,184,114,252,210,253, 3,241, -251,220,219, 53, 14, 91, 49,103,210,164, 73,123, 54,109,218,196,182,177,177, 65,114,114,242,128,230,205,155, 59, 23, 20, 20, 52, - 71, 21,147,136,235,215,175,127,190, 71,239,161, 13, 70,140, 30, 39,176, 48, 55, 69, 74,106,150,209,249,179,199,102,178, 95, 60, - 30, 24, 23, 23, 55, 86,247, 12,209, 65, 7, 29,116,208,161, 18,212, 62, 50,124, 59, 27,240, 37, 42,124,199, 97, 83, 63,118,239, -208,188,207,247,131,122,176,154, 55,107,140,247,161, 97,253,175, 63,124,181,157,229, 23,234, 67,107,136,151,144,139,107,254,169, - 85,175,132, 81,211,224,220,187,118,166,168, 39,156, 50,158,253,250,245,235,198,237,219,183, 47, 77, 13,211,167, 79, 31,244,233, -211,135, 58,112,224, 64,155,123,247,238,181, 57,122,244,168,202,199,199,231, 4,170,142,143,226,222,168, 81,163,237,123,246,236, -225,245,236,217, 19, 60, 30,175,244, 7,145, 72,132,161, 67,135, 98,232,208,161,236,148,148, 20,183, 27, 55,110,184,253,250,235, -175,202,248,248,248, 37,248, 43, 74,115,149, 88,189,122,117,135, 10,118,223,161, 40,234, 35, 77,211, 1,109,218,180, 73,116, 6, - 26,207, 28,212,237,254,156,238, 78,194,133, 43,142, 87,200,195,209,215,199, 31,147,138,250,234,178, 66, 43,246,225,109,136,140, - 12,179, 5,134,134, 65, 0,130, 1, 4, 17, 66,130,163,163,163,195,154, 2,109,186,152,178, 78, 28,203,101, 90,215, 64,108, 33, - 49, 49, 17,198,198,198,252,158, 61,123,166, 82, 20,181,238,241,227,199, 95,123, 66, 94,231,117, 75,231,112,115,227,130,144, 22, -254, 2,139, 71,187, 8, 22,238,253,243, 23,185, 82,125,185,170,147, 40,138,197,250,213,143,241, 64, 81, 50,222,213,217,217,217, - 61, 1,192,204,204, 76, 31,192,163, 93,175, 48,104, 81,119,234, 75, 98,187,113,217,108,246,254,227,199,143, 79,251,241,199, 31, -139, 82, 71, 60,123, 6,145, 72,132, 13, 27, 54,212,255,233,167,159,182,208, 52,189,160, 50, 79, 86,143,222, 67, 27,252,190,227, -151,230,133, 57,249,138, 67,251, 47,188,169,219,178, 9,107,182,251, 79,134,191,171, 20,214, 26,141,230, 71,157,103, 75, 7, 29, -116,208, 65,135,154,120,179,170, 21, 90,206,230, 56,217,174,165,211,152,239, 7,187,240, 90,181,108, 1, 46,239,175,208, 45,237, - 59,116, 64,251, 14, 29, 88, 30,226,194,126,175,223,188,235,119,233,222, 75,133, 84, 29,127, 33, 50, 11,147,180,181,170, 36, 41, -237,166,111,173,122, 75,242, 50, 12, 0, 64,104, 98, 41, 95,121, 45,237, 97,247,238,221, 97,103,103,199,245,241,241,153, 90,141, -208, 90, 25, 17, 17,193, 99,179,171,142,135, 90,183,110, 93,140, 26, 53, 10, 77,154, 52,209,239,213,171,215,202,202,132,150,129, -129, 65, 6, 69, 81,150, 0, 80,167, 78, 29,205,186,117,235, 2, 72, 17, 0,128, 16, 66, 94,176, 88,172,151, 12,195,188,250,243, -207, 63,147,154, 3,150, 3,218, 55,121, 58,231,135, 81, 2,114,105,119,165, 34, 65, 94, 80, 80,225,126,129, 72,152,201, 23, 10, -131,120, 2,131, 96, 20,229,242, 10,182,179,179, 11,107, 14,216,117,106,226,120,239,192,162,241,134,199,102,252, 82,109, 89,182, -107,215,206,185,117,235,214, 6, 26,141, 6, 18,137, 4, 7, 15, 30, 52,230,243,249,198, 3, 7, 14, 92, 91,182, 1, 52, 3, 90, -141,172,203,158,177, 62, 69, 51,183, 22, 13,201,164, 71,215, 14,113,163,134, 14, 52,234,208,165, 7, 62, 60, 58,133,156,156, 66, -228,231,137,193, 48,204,103,113,125,230,222, 70,250,254, 33,216,126, 96,197,248,229, 20,139, 69,181, 25,190, 12,195,172,243,231, -123,122,122,134, 2,208,211,215,215, 47,219, 14,235,242,109, 91,110,111,220,191, 7, 14,174,250, 1,132, 97, 8,128,237, 53,240, -102, 89, 26, 26, 26, 94,191,119,239, 94,231,142, 29, 59,226,229,203,151,136,137,137,193,156, 57,115,148,115,231,206,229, 78,156, - 56,145, 90,188,120,241,188, 95,127,253,245, 18,128,231,159,221, 8, 28,206,132,111, 71,140,213, 23,231, 21,200,149, 10,149,178, -142,185, 9,163,144,200,165, 89,185, 5,242,177,227,167, 43, 67,253, 95, 77, 0,240,153,208,250,194,242,212, 65, 7, 29,116,208, - 65, 11, 16, 66, 58, 2,176, 0,144, 73, 81,212,155,178,219,197,135,148,100,107, 41,191,157,133,162, 81, 41,179, 50,116, 89, 40, -154,238, 99, 1, 64, 3,224, 53, 69, 81,185, 95,104, 98,213,171, 12,189,189,189, 73,217,239, 50, 66,139, 16, 66,136, 58,251, 35, - 81, 68,222, 38,210, 55, 71, 62,251,200, 66, 47,147,212,215, 23,200,171, 51,107,136,179,121,213, 89,216, 7, 53,129,122,124,107, -144,217, 29, 65, 22,244, 50,145,191,126,253,218,135, 97, 24,111,143, 30, 32,228,253, 25, 66,222,159, 33,139,186,130, 92,186,116, -233,206,150, 45, 91,188,189,188,188,188, 1, 84, 55, 79, 41,189,240,141, 31,121,101, 9, 82, 25, 34, 34, 34,136,167,167, 39, 89, -177, 98, 5, 57,118,236, 24, 65, 53, 17,212,221,220,220, 30,135,132,132,144,137, 19, 39, 6,160,138,192,128,205, 0,225,132,250, -214,225,138,243,187, 85,202, 31, 91,145,220,111, 12, 42,188,126, 27, 27,155, 79,236,217,234,100, 77,246,117,114, 34, 39,251,181, - 79, 35,132,220, 33,132,108, 37,132,140, 37,132, 52, 1,128,118,128,209,183, 54,102, 81,242, 11,191,203,148, 51,186, 84,155,247, -174, 93,187,118,206, 75,150, 44,201, 81, 42,149, 36, 54, 54,150, 28, 58,116,136,220,191,127,159, 92,187,118,141,184,184,184,164, -148,177,215,106, 74, 19,135,116,229,209,245,138,218,180, 34, 61, 54,123,223,155,251,151, 72,212,211,139,228,245,185, 45,228,244, -207,223,147,121,223,118, 86, 25,241,121,114, 0,189, 43, 59,111,110,119, 52,110, 82,223, 34, 50, 62, 62,158,168, 84, 42, 50,121, -242,100,226,230,230, 70,250,247,239, 79,250,246,237, 75,250,244,233, 67,122,247,238, 77, 30, 62,124, 72, 82, 82, 82, 72,223, 30, -237, 37, 67,154,161, 67, 13, 76,107,233,224,224,144, 22, 27, 27, 75, 84, 42, 21,241,241,241, 33,167, 78,157, 34, 62, 62, 62,196, -195,195,131, 0, 56, 57,123,246,108, 89,110,110, 46,113,115,115, 75, 66, 5, 81,227, 29, 28, 28,194, 66, 34, 19, 19,119,109, 62, -242,240,143,125,103, 31, 94,185,116,255,225,245,187,175,111, 94,187,251,230,194,171,192,232,107, 14, 14, 14, 97, 21,212,255, 23, -149,167, 14, 58,232,160,131, 14,213,107,145, 98,161, 53,184,216,217, 49,152, 16,210,183,220,246,224, 98,225,244,217,182,135,135, -199,138,178,219, 37,199,120,120,120,172, 0, 64,186,118,237,122,150, 16,210,248, 43,152, 63,163,130, 79,245, 30,173, 18,208, 73, -175,193,117, 26, 8, 61,141, 26,234,172, 8, 48,121,241,128,208, 26, 50, 74,132,236,212,120,132, 63,189, 92,117, 34,137, 98,220, -138,128, 30, 0,159,176,176, 48,132,135,135, 35, 49, 49, 17, 2,129,224,179,227,158, 61,123, 6, 62,159, 15, 27, 27, 27,237,148, -174,242,211,126, 46,168,189, 3, 68, 93,123, 34,235,251, 89,240,241,241, 65, 70, 70, 6,184, 92, 46,244,245,245, 65,211,116,181, -124, 44, 86, 81,198,223, 18, 47, 86, 69,199,244, 4, 56,188, 58,162, 27, 7,214, 46,112,100,189,240,214,147, 37, 68, 33, 69,174, -209,206,147, 39, 18, 66, 32, 20,164,242,249,130,210,225, 66, 0,193, 20, 69,125,104, 7,232, 9, 69, 6, 55, 78,108, 92,108,205, -246,247, 49,144, 69, 5, 85,200,209,183,111,223,153, 0,214, 18, 66,242, 90,183,110,109,181,105,211, 38,211,228,228,100,188,127, -255, 30, 23, 46, 92,200,164,139, 46,148, 34,132,172, 7,128, 46,128,129,137,133,201,221,125,107, 22, 24,226,209,121,253,218,180, - 34,227,102, 67,111,142,156, 56,123,238,158, 5, 67, 33, 41,148,225,204,125,127,220,121,247,113, 24,128,103,168, 98,222,219,254, -231,136, 2, 50,251,140, 24, 49, 34,224,201,147, 39,230, 71,143, 30, 5, 77,211, 21,126,142, 30, 61,138, 7, 79,223,205, 7,240, - 86, 75,179,234, 58, 58, 58, 62,120,245,234,149,133, 64, 32,192,253,251,247,145,151,151, 87,234,201,154, 52,105, 18,149,151,151, - 55,238,224,193,131, 35,227,226,226,118, 60,125,250, 52, 27, 69,185, 32, 63,105, 8,108, 54,251, 35, 77,171,154,218, 52,107,204, - 25, 61,180, 71, 15,113,118, 16, 68,102,173,241, 34,240,227,141,188,220,108, 25,155,205,254, 88,246,248,175, 81,158, 58,232,160, -131, 14, 58,212, 12, 20, 69,121, 19, 66,134, 80, 20,229, 93,126, 95,249,191, 75,142,219,178,101, 75,233,118,201, 57, 91,183,110, -221, 92,102, 91,250,149,204,171,114, 50,124,175, 98, 5,217,171,162,131, 20,239,175, 64, 17,126, 29, 92,135,238,208,111, 50, 12, -108, 7, 23, 36, 4, 61, 66,224,237, 93, 72, 10,125, 6,194,104, 96,227,220, 73, 91, 67,228, 77,155, 54,133, 92, 94, 52, 53, 75, -161, 80,128, 43, 52,149, 47,158, 49,222, 0, 0, 24,142,129,162,140,130,213,138,208,176,187, 43, 58,165, 19,188,182, 42,114, 84, -116, 74, 47, 58,111,227,228,201,224,114,185,224,114,185,160,138,167,254,104, 35,180,168,226,131,153,162,225,171,138,140,160,164, - 60,189, 51,231,214,186,119,226,197, 5,235, 43, 66, 94, 32, 69,193,144, 27,233,154,155,218,216, 43, 16, 10,146,249, 2, 65, 48, - 95, 36, 44, 21, 90, 20, 69,125, 4, 0,162,167,231,117,106,189,123,107, 97,122,180, 80,254,198, 7,169,114, 70, 85, 9,205,250, -219,183,111, 91,114, 56, 28,107,141, 70,131,132,132, 4,132,134,134,226,247,223,127, 79, 47, 44, 44,236,229,239,239, 31, 89, 86, - 59,106,248,250, 23,188, 54, 44,104,192, 9,242, 53, 80,124, 12,169,113,235, 49,111,249,157,219,176, 94,109,110,206,252, 97, 21, -190, 27,212, 31, 19,123, 53, 39,177, 41, 57,114, 0,247,139, 93,175,213, 33,217,223,223,191,223, 55,223,124,115,186,109,219,182, -205, 8, 33,104,213,170, 21,198,141, 27, 7, 47, 47, 47, 4, 6, 6,162,160,160, 64,117,239,222,189,221, 0,142,107,105,150,192, -212,212,244,206,195,135, 15, 45, 4, 2, 1,238,221,187, 7,153, 76, 6, 27, 27, 27,204,157, 59, 87,127,235,214,173,127, 20, 20, - 20,140,222,178,101,139, 65,108,108,236,190,187,119,239,214, 71, 81,222,185,207, 26,129, 82,169, 60,124,198,235,228,158,185,238, -243,108, 31,190,124,239,163, 16, 23, 26, 59, 56, 36, 22, 88,152,138, 12,119,111, 91, 95, 79,169, 84,206,172,184, 60, 31,215,170, - 60,117,208, 65, 7, 29,116,248, 12, 85,106,145,178,226,169,188,216,170,137, 72, 3, 32,243,240,240, 88, 73, 81,148,183,135,135, -199,202, 45, 91,182,200, 0,164,252, 29, 34,171, 84,104, 13, 25, 50,196,215,219,219, 27, 67,134, 12,241,173,148,130,209, 64, 21, -251, 4,170,216, 39,224,119,157,143, 63,183,124, 95,238,226,153, 90, 91, 55,116,195,253,135, 10,133,130,115,242,228,201,210,121, - 91, 0,160,209,104,190,122, 45,214, 68,104, 21, 11,189,207,140,112,228,137,124, 15, 47, 26,221,197, 76, 35,213, 83, 62,187,129, -100, 5, 67,239,136, 82, 73,223,228,145, 95, 43,227,188,182,112, 38, 18,159, 62,128, 64, 36, 74,156,246, 36,184,212,139, 85, 44, -178, 98, 0,160, 62,207,208,199,115,193,119, 46,214, 92,112,149, 55, 47, 34, 69,193, 40, 60,227,212,199, 43,105,108, 32,132, 32, - 38, 38, 6, 82,169, 20,126,126,126,184,124,249,114,102, 5, 34, 11,142, 60,209,227, 99,203, 38,116, 54, 42, 76,227, 42,223, 60, - 64,138,130,209,106,168,203,188,213,119,221,185, 44,234, 30,197, 98,243,251,116,113,198,194,233,195,177,235,216,159,180,210,178, -199,144, 61,215,111,141, 17, 43, 84, 43,181, 20, 89,165,206, 70,127,127,255,230,254,254,254, 60, 0,174,227,198,141,187, 53,114, -228, 72,248,250,250,226,198,141, 27, 78, 0, 82,139,143,219,128,162, 68,217,191, 2,136,174,204,241,200,229,114,207, 61,120,240, -160, 69,221,186,117,241,224,193, 3,200,100, 50,204,158, 61, 91,233,238,238,206,157, 52,105, 18,149,159,159, 95,234,201,242,243, -243,203,174, 76,100, 1, 64,114,114,242,237,203, 23, 78,117,251,230,155,111,134, 55,112,106, 98, 20, 93, 88,144, 33, 16, 24,240, -159,250, 62,226,190,121,245,124, 95,114,114,242,235,138,203,211, 71,235,242,212, 65, 7, 29,116,208,161,114,104,165, 69,202,121, -166,106,130, 50,231,233,109,217,178, 37,116,203,150, 45,159,120,188,190, 16,229, 87, 29,222, 44,233,211,106, 21, 71, 75,147,159, -240,249, 5, 48, 76, 77, 46,246,179,125,166,166,166, 52,159,207,255, 68,104, 49, 90,114,230, 92, 61,139,232, 57,227, 75, 61, 89, - 37,158, 45, 12,152,244, 69, 66,139, 97, 24, 63, 0,159, 24, 33,176,116,254,126,247,208,102,221,155, 55,176,101,169, 47,252,142, - 36, 41, 45, 95, 27,161,146,135, 23,146, 97, 97, 21, 76,178, 46,229,164,213, 48, 16,242,227,249, 34, 97,121,145, 21, 7, 0, 66, - 43,167,145, 59, 6, 54,233,213,166, 73, 35, 22,125,254, 55, 36, 75,213, 98,143, 48,149, 42, 90, 66,174, 84, 82,134,107,251,247, -239,191,214,204,204,204, 96,207,158, 61,198, 14, 14, 14,160,105, 90, 89, 94,100, 9, 44,157,191,255,253,187,150,221,157,173, 77, - 89,234, 75,123,145, 40,211, 72,127,143, 86,255,161,141,200, 50, 55, 22,221,245,220, 60,135, 47,224,233, 65, 46,151, 99,235,129, - 75,184,247, 60,100, 72, 86,200,181,187, 0,238,126, 65,131,156, 54,100,200,144, 93, 27, 54,108,128, 90,173,198,212,169, 83,241, -241,227,199,123, 17, 17, 17,191,215,171, 87,111,201,178,101,203,234, 90, 91, 91, 99,204,152, 49, 92,181, 90, 61,169, 18,142,109, -103,206,156, 25,210,166, 77, 27,248,250,250, 34, 47, 47, 15, 54, 54, 54,112,119,119,215,223,178,101,203, 31, 5, 5, 5,163, 55, -111,222,108, 16, 19, 19, 83,165, 39,235,147,118,173,209,108, 60,180,107,206,146,142, 93, 92, 88, 81, 81,145,116, 66,167,158,172, - 71, 15,110, 60, 49, 51, 51,251, 35, 33, 33,225,175,242, 28,222,170,198,229,169,131, 14, 58,232,160,195,215, 1, 69, 81, 55,139, -231, 93,125,226,229, 42, 47,194, 74, 60, 86,101,183,203, 31, 95,252,251,215,120, 89, 62, 92,129,240,250, 52,188,195,144, 33, 67, -180, 94, 86,207, 72, 50,181, 18, 79,229, 49,168, 9,212,182, 34,112, 86,246,100,129, 43, 52,149, 15,221,112,255, 97,101,199, 10, -133, 66,173, 61, 90,140, 66, 94, 93,165,212, 72,232,240, 90,243, 0, 0, 32, 0, 73, 68, 65, 84,104, 21,207,209,186, 67, 8,249, - 68,104, 25, 91, 57,247, 92,190,108,193,110,151,145, 3, 88,233,211,187, 34, 79,172, 80, 44,123, 79, 51, 73,210,170, 69, 86, 81, - 47,174,142, 21, 8, 69,193, 6, 66, 65, 89,145,149, 0, 0, 6,150,141, 58, 45, 93, 56,247, 64,239,239,135, 82,153,179, 93,144, -155, 39, 83, 44, 9,165,169,100, 25, 25, 29, 6, 60,170,136,238,225,195,135,135, 0, 28,234,217,179,103,186, 80, 40,132, 88, 44, -254,172, 14, 74,236,237, 62,114, 0, 43,125, 90,103,228, 72, 84,138,101,161, 52, 82,100,204,185,234, 68,150,133,137,225, 93,207, - 77,115, 4, 41, 73,113,224,114,185, 16,137, 68,184,255, 44, 24, 89,161,215,191, 68, 96,129,197, 98,173,243,240,240, 88, 59,119, -238, 92,100,103,103,227,198,141, 27, 24, 52,104, 16,206,158, 61,235,112,235,214,173, 93,174,174,174, 96,179,217,240,246,246,134, - 90,173,254, 80, 9,205,240, 25, 51,102, 44, 25, 57,114, 36, 94,191,126,141,212,212,212, 79, 60, 89,121,121,121,227, 14, 28, 56, - 48, 50, 54, 54,182, 90, 79, 86, 57,116,114,108,212,142,187, 98,245, 78, 40,164, 25,156,204,228,151,190, 62,247, 89, 47,114,114, -114, 4, 0,242,107, 91,158, 58,232,160,131, 14, 58,104,237,213,170, 76,139,100, 22,139,168,204,138,182,203, 8,172,138,182,169, -114, 94, 48,101,185,223, 3,255,206,107,210,202,163,197,177,106, 9, 58, 61,164,140,208,202,248,228,119, 3,195, 58, 90, 13, 29, -170,105,112, 60,143,151,198,209, 50,200,206,206, 54, 48, 55, 55,151,151, 21, 8, 2,129, 0,117,235,214, 69,110,110, 46, 14, 31, - 62, 12, 84, 63, 41,154, 54, 26,249, 3, 58,125, 63, 21,111,236,244, 65,212,170, 82,207,150,231,228,201,159,136, 45, 46,151, 91, - 50, 55,172,186, 78,247, 85,177,167,233, 5, 0,210,206,169,193, 47, 6, 66,225,100, 3,115,123,243,133,115,166,233,197,102, 40, -240,208,101, 69,222,165,109,203, 69,137, 68, 52, 55, 1,249,207,171,225,139,254,246,224,169,242,158,172,164,182, 78, 13, 86, 25, - 8, 12,166,235,215,169,111,237,177,120,142, 94,108,186,130,122,216,105, 89,193,229, 95,151, 9, 98, 96,184, 36, 9,121,143,180, -168,158,181,131, 6, 13, 90, 75, 8, 33, 12,195,172, 6,128,178,246, 46,118,159,174, 23,157, 38,135,143,203,170,220,203,219,150, - 27, 38,162,106,123,205, 91,125,215,221,202,212,232,174,231,230,185,130,212,228,120,240,120, 60, 24, 26, 26, 34, 49, 61, 31,122, - 28,182,236, 11,219, 27,175, 71,143, 30,203,231,204,153,131,224,224, 96,204,158, 61, 59, 53, 33, 33,225,202,249,243,231,103,175, - 89,179,134,227,230,230,134,212,212, 84,108,223,190, 93,253,236,217,179,205, 0,182, 87,216, 30, 57,156,105,191,252,242, 11, 73, - 73, 73,161, 98, 98, 98, 96, 99, 99,131,121,243,230,233,111,222,188,185,116, 78, 86, 77, 60, 89, 37, 72, 78, 78,246,189,247,224, - 5,134,221,222, 13, 90,173,240,205,203, 78,120, 18, 30,157,235, 91, 71, 95,255, 39,219,118,173,106, 85,158, 58,232,160,131, 14, - 58,124, 21, 47,214,155,170,182,255, 3, 80,209,208,161, 86, 66,235,195,222, 85, 83,156,166,204, 93, 10,190, 67,119, 40,194,174, -130, 17,167,151,122,180, 12, 68,166,168, 83,175, 25,242, 36, 10, 92,244,121, 7, 0, 31,106, 98, 85, 97, 97, 33,218,183,111,143, -253,147,156,123,203, 11,179, 13,248, 0, 20, 60, 35,249, 53,253, 30, 15,111,221,186, 37,101, 24,230, 28,128, 91,213,208,172,107, -209,162,197,190,157, 59,119,234, 55,251,126, 10,196, 47,159,150,247,160,128,207,231,131,199,227, 33, 40, 40, 8, 15, 31, 62, 84, - 2, 88, 87, 77,133,190,162,105, 58,240,252,249,243, 73,141, 27,216, 14,104,223,182,245,252,149, 43, 60, 12,223, 63,189,135,213, -155,247, 49,141, 59,184,229,111, 61,123,173, 48, 95, 84,175,143, 44, 53, 34, 64,139, 75, 13, 44, 39,178, 82,154, 58,218,247,110, -219,178,197,210,213,171, 87, 25,133, 62,189,143, 53,191,122, 18,167, 54,125,243,127,189,124,189, 32, 75, 80,191,191, 60, 35,252, -181, 54,101,232,235,235,123, 8,192,161,146,237,242,246,122,108,248,157,113,238, 56, 32,119,235,217,203,146, 2,195,122,125,171, -178,215,162,217,240,110,118, 22,166,119,247,110,156, 37, 72, 75, 78, 0,143,199,131, 72, 36, 66, 66,106, 30,214,238,190, 32, 81, - 49,204,128, 47, 21, 90,134,134,134, 60,149, 74,133,253,251,247, 35, 33, 33,161, 43,128,132,183,111,223,122,142, 29, 59,118, 79, -171, 86,173,154,134,134,134,126, 16,139,197,115, 1,132, 87, 70, 98, 98, 98,210,213,194,194,130,122,241,226, 5,102,205,154,165, -156, 55,111, 30,119,226,196,137, 84,110,110,110,109, 61, 89, 0, 0, 91, 91,219,158,253,250,116, 65,247,126,179,125,149,242,188, - 39,177,225,127,248,178,200,115,131,218,150,167, 14, 58,232,160,131, 14,255, 51,168, 93, 96,240,158, 0,199,217, 12, 51, 91,216, -114,211,188,182,205, 35,133,209,126, 68,246,250, 16, 41,184, 58,157,220,220, 62,145,220,218,187,144,204, 30,220,130, 52,181,164, -210,156,205, 48,179,231,231,194,237,147,236,222,131,154, 64,221,175, 17, 72,191, 70, 32,131,157,161, 6,176,178, 93,187,118,215, -220, 59,253, 21, 71,203,189, 19, 8,128, 89, 0, 68,149,152, 85, 81,198,112, 27, 0,135,219,183,111, 79, 63,122,244,136, 68,140, -238, 75,252,155,154,147,185,115,231,146, 53,107,214,144,241,227,199, 19, 11, 11, 11,186,184, 32,108,170,227, 28, 54,108,152, 29, - 0,216,219,219,155,116,104,214, 56, 45,200,231, 6,121,226,181,135, 28,115, 31, 65, 58,183,106,150,101,221,244,155, 64,190, 77, -147,182,213, 20, 95, 41,167,181,181,245, 10, 66,200, 0, 66,136, 13, 0, 56, 57,153,137,218, 53,109,156, 18,248,224, 6,121,122, -106, 31, 57,230, 62,130,116,105,221, 60,219,174,153,107,184,129,101,211, 78,218,112, 86,132, 10,237,109,217, 52,203,170,113,183, -128, 42,236, 45,229,108,208,105,204,245,164,148,116,242,234,213, 43,114,235,214, 45,242,244,233, 83,226,117,254, 58,169,215,113, -180,216,188,213,119,221,107,208,116, 42,179,211,120,240,224,193,228,195,135, 15,100,224,192,129, 4,128,113, 45, 57,175,197,198, -198,146,144,144, 16,178,114,229, 74, 2,224,228,156, 57,115,100,249,249,249,164,111,223,190, 9,197, 2,139, 83, 27, 59, 27, 58, -218,110, 29, 62,180,199, 58,247, 89, 35,123,126,105,121,126, 69,232, 56,117,156, 58, 78, 29,231,255, 2,231,127, 51,108,138,189, - 90, 37,223,237,180,242,104,249, 2, 52,178,113,168,165,165,234,244,230,237,123,127,218,127,232,228,210,229,243,167, 9,123,184, -244, 67,240,131, 19,184,236,125, 94, 34, 87, 40,183,115,217,216, 25,146, 13,105,100, 53, 86, 20,199,209,250, 4,254,254,254,130, - 58,141,254,138,193, 20, 85, 20,155,213,179,134, 23,152, 10, 96,198,187,119,239,118,186,186,186,110,154,222,189,211, 8,247,110, -189,161, 86,171,225,229,229,133,248,248,248, 43, 0, 86,105,235,113, 11, 14, 14,206,106,222,200, 97,129, 30,155,179,116,238,248, -225, 22,153, 31,223, 35, 41,204, 31, 0,160, 80,200,212,105, 31,158,180,169,137,113,124, 62,255,149,133,133, 69,132,133,133, 69, -174,115, 3,251, 25, 60,232,173,158, 61,238, 91,203,236,216,112, 36,134, 22,141,140, 42,228, 82, 85,210,135, 71, 77,107, 83,187, - 14, 14, 14, 60,161, 30,102, 86,104,175, 82,174, 78,143, 10,111,171, 13,143, 84,161,220,188,126,151, 87,255,141, 75, 39,243,140, -140,140,240, 46, 36, 10,171,127, 59, 43,145, 41,213, 3,178,130,175,125,149,225, 49, 66, 8,212,106,181,214, 11, 29, 42,193,242, - 54,109,218, 52,217,180,105,147,211,164, 73,147,240,165,158,172,178,136,142, 77,246,176,181,111,216, 60, 42,226,157,107, 29, 62, -247,244,151,148,167, 14, 58,232,160,131, 14,255, 51, 24, 92,236,204,153, 81,230,219,191, 90,161, 85,130,144, 12, 72, 1,108,104, -192, 22,123,174,216,180,107, 45,139,218, 61,153, 33,228, 4,205,194,250,152,108,100,126,161,113, 82, 61, 14,232,254,223,141,231, - 0,128, 30,167,118, 29,100, 49, 62, 0, 24,121,228,249,235,142, 71,158,191,254,185,120,223, 70, 0, 53, 26,203, 53,228, 32,196, -165,121, 67,219, 30,237, 90, 24,176, 53, 50, 36,133,125, 68,142, 68,142,251,161,241,121, 44,194, 58, 81, 83,163, 98, 98, 98, 30, - 3,128,149,177, 32,172, 71,243, 70,245,190,105,223, 66,160, 71, 41,145,244,254, 29,242,101, 74,220, 11,141,207, 7, 69,213,122, - 66,245,215,178, 55, 61,248,250,155, 63, 65,245,165, 40,234,193, 74,247,239,121,107,127, 59,247, 85, 69, 22, 0,105,114,114,114, -182, 84, 42, 53, 75, 73, 73, 81,162,246, 65,226,162, 10, 10, 10, 90, 45, 92,184,112,195,146, 37, 75,150,110,219,182,141, 91,155, - 57, 89,149, 33, 55, 57,254,234, 55, 45,190, 94,253,235,160,131, 14, 58,232,240, 63,129, 25,229,190,161,181,208, 42, 21, 12, 25, -200, 4, 48,183, 97, 67,178, 56, 58, 26,202,175,101, 89, 69,158,174, 47,196, 27, 0, 67,107,125, 54,139, 42,124,249, 33, 94,252, -234, 67,188, 24, 12, 33, 12, 33, 10, 22, 11,137, 18,149,106,243,135,152,228,218,175,186,163, 40,205,155,168, 4,217,219,143,137, -114,194, 48,132, 33, 68, 73, 81, 72, 83,171,153,205,161, 49,241,215,255, 19,236,205, 10,190,246,220,155,166,122, 60,127, 21,178, - 88, 34, 81,237,203, 10,187,230,247, 21,235, 69, 29, 28, 28, 60,161,107,215,174, 83, 52, 26,141, 39, 0,245, 23,112, 41,105,154, - 94,190,117,235,214, 43,193,193,193, 23,252,252,252, 82,191,134,200,250, 91,235, 95, 7, 29,116,208, 65,135,127, 43,106,151, 84, -186, 50,124, 77,145,245,159,136,144,168,184,246,127, 7,111,104, 84, 92,203,255, 6,123,211,195,174,190, 77, 7,198,253, 77,197, -123, 79,163,209,220,251,154,162,250,206,157, 59,142,168, 32,173,206,127, 90,253,235,160,131, 14, 58,232,240,175,197,140,202,196, - 23, 71, 87, 54, 58,252, 11, 64,190,150,200,210, 65, 7, 29,116,208, 65,135, 90,160, 82,143, 22,133,202, 87, 14, 60,168,193, 63, -168,205,234,131, 7, 58, 78, 29,167,142, 83,199,169,227,212,113,234, 56,255,231, 56,255,141,176, 65,209,132,248,155,197,223, 85, -138,175,175, 9,221,210, 87, 29,167,142, 83,199,169,227,212,113,234, 56,117,156,255,118, 84, 56, 17, 30, 40,154, 60,172,131, 14, - 58,232,160,131, 14,127, 23,120,197,159,218,254,174,131, 14,255,141, 98,171, 84,112,213,102,142, 86,227,226,239,168,191,209, 88, -119, 27, 27,155, 25,173, 91,183,110,198,229,114, 89,133,133,133,235, 31, 61,122,180,174,252, 65, 61,154,115,222,178, 89,176,251, -107, 15, 5, 80,108,128,197,130,134, 32,233,105,144,172,131,174,222,255,163,225,192, 55,178,248,147, 98,177,245, 53,180, 10, 26, -181, 10, 69,211,173,138,192, 48,116,188, 70,165,112,171,236,100,235, 54,195,235,209, 26,102, 27, 64,246, 3,172, 57, 0,115,128, - 2,103, 54, 1,125,144, 2,123, 22,216,228, 87,104,168,101, 28, 61,246,138, 84,255, 75,137,255,134, 2,187,120,241, 34,251, 75, -206, 31, 61,122,116,133, 9, 68,235,214,173,235, 45, 16, 8, 26, 85,118,158, 68, 34, 73, 77, 77, 77,117,253,151,183,199,111, 0, -236, 5,208,162,220,254,112, 0, 11, 0,248,124,233, 63,232, 9,112,172,128,153, 92, 96, 25, 0,168,128, 95,211,129, 67,190,255, - 65,115, 12, 45, 44, 44,158,112, 56, 28, 39,137, 68, 34, 41, 44, 44,108,104,104,104, 24, 45, 20, 10,133, 52, 77,127,200,204,204, -252,166,134,116,115,240, 87, 42,173,165, 0, 14,212,240,119, 29,116,248,111,193, 23,173, 58,116, 46,122, 62,160, 39,128,111, 58, -118,236,104, 37,145, 72, 16, 30, 30,158, 14,224, 9, 0,223,226, 79,228,215,176,148,197, 98,237,216,181,107,215, 79,243,230,205, - 43, 77, 6, 29, 20, 20,132, 54,109, 62,143, 17,202,102,193,238,209,141, 7,150,111,130, 35,209,177,239,168, 98,161,197, 2, 36, -169,112,237,215,169,182, 38, 24,154,154,154,174,167, 40,106, 52,139,197,170,182, 83, 99, 24, 70, 67, 8,185,152,155,155,187, 22, - 64, 97, 77,254,145, 80,192, 83,211, 26, 77,133,255,131,195,102,107, 36, 82, 69,165, 97, 47,234,212,169,227,199, 98,177, 26,148, - 77,152, 13,124,154, 64,187,178,223,104,154, 78,202,202,202,210, 70,132, 26,176, 56,220, 5, 20,245,127,236,125,119, 88, 20,215, -254,254, 59,179,125, 89,122, 7, 69, 84, 20,165,137,177, 32,216,176,107, 34, 38,106, 52,198,158,104,226, 77, 98,137, 37, 17, 91, - 52, 26,133,196,110,212,168, 73,140,229,218,136, 29, 91,108,209,196,174, 8, 82, 20, 20, 17, 16, 22, 88,234, 46,108,155,157,242, -251, 3, 88, 17, 97,119, 49,185,191,123,191,247,238,251, 60,251,204,206,206,204,103,207,156, 51,115,206,123,222,207, 57,159, 35, - 28, 8,146,109, 7, 16, 32, 64,166,179,140,254, 60, 75, 83, 27, 1,104,255, 10,201,242,242,241,251, 99,246,162,216,230,201,105, - 15,177,112,250, 56,124,251,253, 46, 44,152,245, 33, 54,238,216,143, 89, 31,143, 69, 80, 80, 48, 76, 45, 43,206, 66,184,106,209, -204,209, 3, 98,182, 28,234,185,224,179,209,226,152, 45,113,189, 22, 78, 31, 35, 90,181,249, 80,175,133,211,223, 19,199,108, 62, -212,115,193,204,209,210, 85, 91,127,101, 1, 76,120,157, 68,142,245,247,174, 34,104,186,193,222, 54,199,231,235,246,103,228,203, -254, 29,111,244,228,201,147, 67, 53, 26,205,189,113, 3, 59,197,190,209,174, 89, 94, 67,231,148, 20,228, 53,203,124,148, 16, 45, - 16, 74, 59,191, 19,189, 43,201,164,228, 32, 22,183,126,248,240,161, 63,203,178, 96, 24, 6, 52, 77, 27,183,122,189, 30,189,123, -247,254,187, 38,206, 12, 3,240,117,245,203,138, 24, 0,135,254,130, 45, 91, 62,159, 63, 91, 36, 18, 69,210, 52, 29, 8, 0, 2, -129, 32, 77,167,211, 93,161,105,122, 61,128,202, 38,218,219,144,151,151, 23,100,107,107, 11,138,162,140, 11,208,243,120,188,128, - 22, 45, 90,108,209,106,181,254,127,245,230, 61,128,105,221,123,246,220, 56,105,238, 92,158,230,234, 85,108,220,185,115, 3,148, - 74, 0,216, 98,238, 90,145, 72,116,142, 36, 73,223,166,252, 31,203,178,217,122,189,126,112, 83,174,225,243,249,254,249,249,249, -238,222,222,222, 80,169, 84,144,201,100,178,218,253,215, 80,178, 86,115, 28, 39,173,169,219, 55,134,135,135, 71, 16, 4, 65, 3, -224, 88,150, 37,111,221,186, 53,150,101, 89,126, 77,253,180, 26,192, 78, 0, 58,107,155,109,197,255, 81, 53,107, 71, 83,137,214, -105, 0,145, 93,187,118,149,190,255,254,251,136,140,140,132,191,191, 63, 36, 18, 73,117, 37, 94, 82,226,113,255,254,253,247,174, - 94,189,250,222,201,147, 39,145,154,154,170, 1,240, 39,128, 6, 95,234,254, 81, 61,103, 72,108,197,155, 0, 64,241,188, 68,254, -252,105,209, 38,185, 92,190, 26, 64,221, 16,225,126, 19, 38, 76,152, 51,115,230, 76,196,199,199, 99,255,254,253,208,233,116, 80, -169, 76,240, 23,117, 17,202, 46,197, 2,178, 44, 32,231, 10, 96,227, 14,200, 60, 94, 59,167,156,156,156,190,158, 53,107,214,231, - 65, 65, 65,198, 40,230, 6,131, 1, 52, 77,195, 96, 48,160,172,172, 12,115,230,204,169,110,104, 57, 14, 44,203,226,204,153, 51, - 51, 62,254,248, 99,148,149,149,205,110,200,102,120,103,159,187, 36, 65, 54,175,213,106, 56,134,121,126,243,254,243, 46, 52,195, -240,180, 90,170,193,149,202, 37, 18,161, 73,146, 39, 16, 8,154,167,158, 56,225, 78,138, 68,224, 24, 6, 96, 89,112, 44, 91,147, -157, 53, 31,174,250, 55,142, 97,193, 25, 24,176, 52, 11, 90,163, 67,216,167,159, 90,146, 21,221, 5, 34,233,254,241, 31,205,245, -236, 22, 30, 46,104,233,227, 13,154, 97,241, 36,235,185,231,189,187, 55,123,196,237,222,242,137, 94,163, 26, 11,224,181,226,108, -137,108,236,127,219,252,195,143,205,239,220, 79,198,197,203, 87,113,225,210, 21, 0,192,185,203,215,107, 9,183,217,162, 2, 93, -217, 97,214,148,225,226,216,205, 7, 4,179,166,140,224,125,187,249,160, 96,230,135,239,240, 98, 55,237, 23,206,252,240, 29, 94, -236,247,251,133, 51,167, 12,231,197,108,252, 57, 20,128, 19,128,178,198,140, 53, 86, 70, 4, 77,139,255,153, 89,200, 3, 0,197, -182,109, 48, 20, 21,193,123,233, 82, 0,192,120, 63, 15,139,221, 29,174,174,174,119, 5, 2, 65,115,115,231, 25, 12, 6,179, 36, -120,242,228,201, 29, 53, 26,205, 93,154,166, 57, 62,159, 31, 61,110,196,160, 99, 67,122,117, 44,169,123, 78, 82, 82,162,203,170, - 85, 39,134, 31,186,167,226,222,235,108,119, 47,126,205,228, 46, 81,243,118, 37,154,104,144, 73,157, 78,135,140,140, 12,212, 93, -228,189, 14,152,215,237, 59, 1,216,232,226,226,210,173,164,164,100, 60,128,133, 74,165, 50,148,199,227,193,217,217,121,161, 94, -175,127,226,224,224,240, 83, 69, 69,197,245, 26,213,200,210, 37, 3,122,219,219,219,239, 57,122,244,168, 83,167, 78,157,200,226, -226, 98,180,106,213, 10,165,165,165, 97, 87,175, 94,237, 60,101,202,148, 41, 42,149,106, 98, 77,103,208, 82,180,183,177,177,225, - 38, 77,154, 68, 48,204,139,219,253,249,231,159, 49, 56,132,110,227,230,104,163,214,234,185,138,139, 25, 14,255, 16, 10,133,127, -102,103,103, 87, 52, 53, 51,132,192,151,147,230,206,229,217, 62,123, 6,219,196, 68,140, 87, 42,249,223, 86,171, 91,102,137, 22, - 73,146,190,123,246,255,226, 47, 18,137, 64,211,180,145, 12,214,214, 81, 6,131, 1, 20, 69,193, 96, 48,128, 97, 24, 24, 40, 3, - 98,190,249,238,181,235, 66, 27, 27, 27, 27, 47, 47,175, 66, 27, 27, 27,155,191,163, 21, 18,139,197,252,221,187,119,143, 21,137, - 68, 0, 0,189, 94,143,144,144, 16,194,218, 62, 91,241, 95, 70,182, 94, 81,185, 76, 17,173, 55,149, 74, 37, 24,134,129,157,157, - 29,120,188,151,219,125, 23, 23, 23, 12, 28, 56, 16,189,123,247,198,251,239,191,143,212,212, 84,233,251,239,191, 63,176, 49, 99, -227,230, 70,193,199,223,163,166, 49, 97,189,174,157,186, 31,251,243,138, 95,221, 10, 10, 10,230,214, 57,109,202,180,105,211,136, -146,146, 18,140, 30, 61,250,170, 78,167,123, 27,128,178, 49,155, 12,139,231,125,223, 31, 15,150, 35,164,235,111,253, 72,232,181, - 26,142, 36, 73, 77,173,235,240,117,114,137, 32,136,209,222,222,222, 56,112,224, 0,244,250, 87,195,133,217,219,219, 35, 37, 37, -229,133,170,198,227, 33, 60, 60,156, 71, 16,196,104, 0,179, 27,182, 73, 54,191,118,231,153,123,237,126,212,192, 96, 97,120,103, -178, 48,191,176,138, 3, 64, 44, 90,180,200, 72,220, 0,224,235,175,191,182, 36,157, 32, 5, 2, 40,174, 92,121, 81, 17,243, 73, -144, 66, 2,132, 0, 32,249,213, 94, 84,112, 0,199, 0, 44, 13,176, 6, 64,226,229, 99, 73, 54,132, 53,107,225, 31,191,106,221, - 86, 71,157,129,195,129,227, 23,145,149,245, 20, 60,146,132, 95, 27,127, 12,234,211, 75,208,185,107,132,207,119,203,230,158,204, -207,121,252, 38,128,219, 77,206,104,150,147,180,105,225,138,159,126,190, 7, 55, 39, 91,140, 30,254, 22,164, 18, 49,190,253,254, - 23,124,179, 96, 58,252,253,124,177,125,195,202, 70, 47,119,112,112, 88, 30,232,223,198,119,235,238, 83, 8, 12, 8,224,109,221, -115, 10,129, 65, 53,219,224, 64,222,214, 61,167, 16, 20, 28,196,219,186,231, 20, 66,131,219,183,188, 43,191,181,188,180,180,116, -122,227,249, 89,175,140, 6, 85,151,145,160,146, 53, 54, 4,207, 62,249, 4, 0,140, 68,171, 41, 16, 8, 4,205,243,243,243,221, -205,157,103, 78, 53,168, 81,178,238,210, 52,141,162,162, 34,162,188,188,156,115,116,116, 28,126,118,251,194,163,131,123,118, 44, - 5,128,196,196, 68,231,152,152, 85,195, 15,222, 85, 66,115,115, 51,241,207, 19, 87,216,241,111, 71,222, 61, 30, 59,185, 51,106, -150,132,168, 15,157, 78,151,245,198, 27,111,112, 53,223,155,137,197, 98, 97,189,231,205,187,109,219,182,175,168,214, 22,184, 20, - 55,222,184,113, 99,122, 80, 80, 16, 2, 2, 2,174,119,235,214,205, 94, 38,147,225,236,217,179, 8, 12, 12, 12,182,183,183,191, - 21, 23, 23, 39,152, 63,127,126,199,157, 59,119, 2,192, 12, 11,178,115, 64,223,190,125, 15,196,199,199, 75,132, 66, 33, 52, 26, - 13, 82, 82, 82,224,224,224, 0,145, 72,132,119,222,121,135,215,163, 71, 15,151, 62,125,250, 28, 78, 79, 79, 31,139, 38,204,128, -210,106,181,220,194,133, 11, 97, 99, 99, 3, 27, 27, 27,200,100, 50,200,100, 50,216, 74, 64,108,155,213, 66, 58,115, 71,185,116, -246,210,109,177,123,182, 46,187,236,227,195,126,149,155,155, 91,222,212,103, 65,115,245, 42,108, 19, 19,129, 58,239,174,165,112, -144, 57, 35, 58, 58,218,156, 34, 5,161, 80,136,238,221,187,155,181,231,236,236,124,132,207,231,191,212, 51,165,105, 90, 18, 29, - 29,205,164,167,167,203, 72,146,148,177, 44,139,232,232,104,134,166,105,137,187,187,251,117,150,101, 11,139,139,139, 71, 90,144, - 92, 29,128, 47, 72,146,220, 40, 22,139,249, 45, 91,182,204, 94,178,100,201,141, 26, 53, 19, 28,199,145, 45, 91,182, 12,147, 74, -165,190, 58,157,142, 70,181,235,208,170,102, 89,209, 32, 56,142,235, 92, 45, 10, 27,161, 7, 32,170,249, 94, 82,221,218,193,181, -222,239, 0, 80, 92,211, 81,244,104,100,191, 4, 64, 42,128,246, 0,220,107,142,221, 33, 8,162,244, 53,146,217,184,162, 21, 31, - 31,111,236,194, 70, 69, 69, 25, 27, 22, 59, 59, 59,220,185,115, 7, 4, 65,192,206,206, 14,246,246,246,112,112,112,128, 82,169, - 68,106,106, 42, 30, 62,124,136,103,207,158,129, 32, 8,248,249,249,161,246, 5,170, 3, 99, 5,183,111,109, 60, 36,182, 98, 16, - 4,208,169, 95, 40, 66,123,135,160,235,237,204, 89,119, 47, 16, 59,228,114,121, 6, 0,126, 72, 72,200,148,240,240,112,172, 91, -183, 14, 58,157,110, 93, 35, 36,203,104,243,143, 84,186, 11, 0,120,121,121,205,219,123,246,137,205,132, 33,109,212,114,185,124, -205,107,100,206, 75, 21,113,113,113,177,197,107,241,177, 44,139,178,178, 50,147, 54,235, 43, 4,235, 55,110,118, 84, 85, 20, 98, -197,183,123, 97, 48, 24, 48,119,238, 92,176, 44,107,252,148,151,151, 91,148, 78,142, 97, 94,213, 14,200,106,239, 41,193, 7, 90, -140,169,230, 21, 57, 7, 54,131,224, 0,130, 1,240,234,125,213,111,132, 36, 60,161,244,224,178,111, 55, 57, 38, 60,124,142,227, - 23, 19, 64, 41,243, 32, 79, 60, 90, 45, 57,118, 31,139, 67, 58, 30,186,133,182,193,231,139,190,115, 90,252,249,196,131,122,141, - 42, 0, 47,187, 17, 47,152,127,105, 24,172, 88,190, 28, 59, 54,173,195,119,235, 54, 65, 89, 81, 14,129,192,181,166,162,103,192, - 48,140,233,123,231,184, 33,209,179, 62, 32,190,253,225, 8,194,130,188,112,248,236,109,244,124,195, 23, 71,127,187,139,222,157, - 91,225,248,133, 4,244,235,214, 6,167,175, 36,227,243,105, 99,137,177,231,118, 14,105, 74, 25,109,216,176,217, 81,165, 44, 68, -252,202,221, 40,218,178, 5,217,211,167, 35,172,230,156,219, 4, 1, 97,243,230,128,208,124, 25,213, 71, 90, 90, 26,116, 58, 93, - 67,189,125, 4, 6, 6,154, 45,119,141, 70,115,143,166,105,174,176,176,144, 40, 44, 44,132, 76, 38, 35, 82, 82,146,153,224,224, -144, 17,220,195, 95,127, 4,128,152,152, 85, 35, 14,221, 83, 66,125,125, 19, 52, 55,190,135,176, 85, 18,185,227,235,105,212,199, - 75,183,223,171,243,142,190,148,206,130,130,130, 55, 11, 10, 10, 0, 0,173, 91,183,126,152,158,158,222,190,214,213, 92,227, 66, - 20,210, 52,237, 95,235, 78,164,105, 26, 58,157, 14, 3, 6, 12,224,153,186,119, 39, 39,167,240,192,192, 64, 36, 36, 36, 96,211, -166, 77,206,125,251,246,197,227,199,143, 65, 16, 4, 86,173, 90, 69, 4, 5, 5, 9,138,139,139, 49,120,240, 96, 28, 57,114,164, -187, 82,169, 52,151,159,118, 50,153,108,231,201,147, 39, 37, 36, 73, 66,165, 82,129,101, 89,244,232,209, 3, 36, 73, 34, 57, 57, - 25,139, 22, 45,194,145, 35, 71,112,236,216, 49,105,231,206,157,119,170,213,234, 64,188,236,214,111,172,140, 56,173, 86,203,137, -197, 98,136,197, 98, 72, 36, 18, 72, 36, 18,136, 68, 34, 84,106,129,143,215,103,235,120, 18, 87, 54,248,141,158,109, 62,152,185, -138, 92,179,228,195, 75, 0,142, 91,250,204, 3,213, 99,178, 54,254,242,203,166,241, 21, 21, 36, 0,252, 68, 16, 44,197,113,223, - 89,242,190, 3, 64,165,182, 2,190,126,205,113,248,224, 49,188, 59,102,120,131, 36, 75, 32, 16, 66, 40, 16,192,222, 89,102,214, -166, 80, 40,244,120,248,240,161,139, 64, 32, 0,199,113, 96, 24, 6, 20, 69, 21, 46, 94,188,216,109,232,208,161,118,103,206,156, - 33,135, 14, 29,202, 58, 57, 57, 85,221,190,125,187,136,166,105,151, 94,189,122, 53,229,153,223, 26, 26, 26,218,233,232,209,163, - 31, 70, 71, 71,223,157, 55,111,222,138,186, 7, 87,175, 94,189,252,244,233,211,190, 35, 70,140,216,147,152,152,184,181, 41,117, -200, 95,173,231,173, 54,255,243,108, 54,198, 69,106,224, 65, 16, 68,124,157, 58, 59,170,118, 63, 58, 58,122, 97, 76, 76, 76, 10, - 65, 16,241,117,127,175, 61,175,166,179, 24,223,208,126,205,181,206, 11, 22, 44, 8,137,141,141, 93, 21, 17, 17,113,224,250,245, -235, 79, 1, 52,149,104,153, 30,163, 85,123, 67,117,111,178, 94,163, 6,165, 82, 9,165, 82,137,220,220, 92,108,219,182,173,230, -133, 22,128,207,231,131,207,231, 27,199, 51, 52,134,139,241,127,126, 15,224,251, 78,157, 58, 9, 30,220,136, 59,243,229,142,153, -253,187, 12,232,196,187,119,241,193, 40, 84,175, 71,248,230,164, 73,147, 92, 1, 96,247,238,221,197, 0,206,252,155, 88,115, 92, - 70, 70,198,231, 94, 94, 94,198, 49, 42,117,221,135, 52, 77, 67, 34,145,160,118, 44,139, 86,171,197,182,109,219,104,142,227,226, - 76,216, 68,122,202, 37,100,164, 92,174,190,142,101,193, 50, 47,174, 95,182,108, 25, 56,142, 51, 54,246,159,212, 40, 39,102, 73, - 94, 67,121,206,213,219,214,251,157, 99, 24, 51,238, 9,225,204, 81, 19,167,123,177, 4, 31, 39, 46,221,135, 64, 32, 0, 91, 71, -205, 20,240,170,123,203, 41,143,243,225,237, 17,140,183,199, 78,243, 60,186,103,243, 76,154,210,126,219,212,188, 14, 8,141,192, -172,207, 63,199,143, 59,118, 96,209,210,229, 70, 6, 64, 51, 12,104,179,233, 36,201, 1, 61, 66, 64, 87,230,131,199,227,161, 95, - 88, 27,240,120, 60, 12,140,104, 7, 30,143,135,193, 61, 2,192,231,243, 49,164,103, 16,218,182,109, 11, 62,159, 79,154, 41,119, -164,167, 92, 68, 70,202,239,117, 72, 47, 7, 14, 0, 37,151,191,114,190, 65, 46, 7,215,194,165,169,207, 22,166, 76,153, 82,158, -155,155, 75,213, 63,230,227,227, 35,188,122,245,170, 99, 35,110, 59, 35,164, 82,105,103, 62,159,127,175,180,180,148,181,177,177, - 33, 89,150, 97,131,131, 67,120,103,183, 47, 60, 90,123,206,130, 5, 11,143,190,215,217,126,196,222,184,120, 78,216,178, 39, 65, - 8,196,244, 71, 75,183, 11, 5, 66,105,103, 64, 99, 73,231,129,212,233,116,120,244,232, 17,204,165,135,227, 56,147,174,159,178, -178,178, 73,129,129,129, 87,191,255,254,123,103,130, 32,240,199, 31,127,128,199,227, 25, 63,153,153,153, 32, 73, 18, 95,126,249, - 37,165, 84, 42,167,154, 75, 27,159,207,255,252,240,225,195, 14, 34,145, 8, 42,149,202,248,222,240,120, 60, 60,124,248, 16,107, -214,172,193,164, 73,147,144,147,147, 3,111,111,111,204,157, 59,215, 54, 54, 54,246,115,138,162,150, 91, 80, 68, 73,122,189,190, -139,141,141, 13, 36, 18, 9,106, 9, 23, 0,252,150, 34, 72,214,104, 52, 29, 92, 92,212,158,110, 87,226, 79,116,239,251,118, 71, - 23, 55,175, 8,185, 92,222,164,165,179,158, 0, 59,178, 24,102,241,155, 71,143,186, 95, 59,122,148,189,121,242,228,115,177, 74, -181,221,226,103,200, 64, 34, 59,243, 57, 58,119,238,140,123,247,238,161,115,231,206,117, 73, 19, 68, 34, 17,132, 66, 33,132, 66, - 33, 92,157, 44, 26, 66,193,145, 36,137,107,215,174,129, 97, 24,232,245,122,232,245,122, 4, 5, 5,149, 94,190,124,217, 22, 0, - 50, 51, 51,185, 9, 19, 38,148,223,186,117, 11,111,188, 97,122, 61,117, 15, 15,143,171, 60, 30,175,101,221,223, 74, 74, 74,156, - 70,142, 28,137,178,178,178,183, 70,142, 28,217,179,230,253,205,251,245,215, 95, 39, 0,128, 72, 36, 2, 73,146, 12,172,248,159, -135, 57, 46, 82,151, 40,213, 39, 92, 49, 49, 49, 81,245,127,171, 75,170, 26,250, 94,247,218,216,216,216, 85,117,108,107, 94, 35, -249,230,199,104,197,199,199,115, 13, 48, 72,139, 97,142,104,213, 34, 33, 33,193,224,237,237,253, 99,198,253,103,253,219,132,250, - 65, 42, 19, 15, 2,240,189, 88, 44,158, 51,113,226, 68,220,188,121, 19,201,201,201, 63,227, 47,206,194, 9, 9, 9, 57, 39, 22, -139,125, 27,113,147,100, 39, 39, 39, 15,110,164, 97, 88,122,242,228, 73,152, 26, 12,127,233,210,165,186,141, 82,221,193,240, 13, - 63, 24, 44, 7, 3,101, 64,149, 90,243,162, 17,175, 33, 90, 85, 85, 85, 24, 51,102,204, 75,138, 86, 81, 81,145,217,251, 35, 8, - 2,107,142, 31,199,249,184, 56,188,213,177, 35,142,220,190,141,216,137,227, 16,224,219, 12, 28, 67,128, 35,128,156,253,155, 81, -162,172,196,190,139,215, 80,170, 82, 99,124,175, 94,240,183,119, 53,109, 87, 32, 28, 24, 22, 30, 33,188,112, 61, 21, 2, 1, 31, - 36, 88,112, 6, 53,188, 3,251,128, 71,146,112,240,104, 5,161, 64, 0,129,128,143,204,220, 98, 4,134,116, 21,197,139, 36, 3, - 95,135,104,249,248,182, 2,195, 48,152, 52,105, 18, 14, 28, 56, 0, 23, 79, 95, 56,248,132,224,155,117, 59,240,214,128, 94,102, -239,191,182, 7,207,231,243,193,227,241, 94,217,214,126,183, 68,157,228, 88, 14, 84,253, 50, 98, 57,128,227,208,124,229, 74, 52, - 95,185, 18,183,107,254, 51,168,170, 10, 26,141, 6,232, 22,220, 36,146,165,215,235,145,155,155, 75, 21, 20, 20,120, 52,112,188, - 80,175,215,155, 37, 54,187,118,237, 74,154, 60,121,114, 23,103,103,231,187, 73,137,137,134,208,142, 29, 5,103,182, 45, 60, 86, -235, 54, 4,128,142, 29, 59,150, 46, 92,184,240,216,132,209, 81,195,183, 70,191,207,124,186,124, 15, 95, 44,149,118,137,154,183, - 43,105,255,232,209,230,253, 61, 58, 93, 86,104,104, 40,103,201,125,169,213,234, 2, 19,135,135, 1,248,186, 83,167, 78,246,125, -251,246,197,213,171, 87,241,238,187,239,234, 40,138,202, 0,128,161, 67,135,182,219,183,111,159, 40, 53, 53, 21,110,110,110,130, -236,236,236,157, 48, 51, 64, 94, 36, 18,245,233,218,181, 43,169,211,233, 94, 33, 89,177,177,177, 24, 59,118, 44,218,181,107, 7, -150,101, 81, 89, 89,137,190,125,251, 10, 54,109,218,212,199, 66,162, 53, 43, 32, 32, 96, 13,170,103, 29,214,173, 11,211, 80,237, -214, 66, 73, 73, 73,193,253, 91, 23, 83,122, 13, 24,217,165,101,219, 16,175,228,164,123, 38, 13,186,187,187, 47, 32, 73,242, 61, -150,101,121, 74,165, 50,247,190, 94,223, 54,200,215,215,163,199,240,225,168, 16, 8,120, 27, 47, 94, 36, 11, 85, 42, 91, 0, 22, -185, 32,181,134, 42,248,250, 85, 15,245,123,119,204,112,220,187,119, 15,163,222, 31, 1,161, 80, 8, 62, 95, 80,253,110, 10,171, - 21, 45, 71, 87,123,139,158, 77,131,193, 96,172,195,107,199,121, 81, 20,133,218,161, 89, 54, 54, 54,198, 99, 58,157, 14, 4, 65, -152,122, 54,252, 15, 45, 95,226, 46,181,119, 0, 99, 48, 32,120,248, 40,227, 51,125,235,167,173, 82,176,172,180, 60, 59, 11, 51, -226, 78, 10, 96,133, 21,141,168, 90,166,184, 72, 93,162,244, 87, 65, 16, 68,124,116,116,244, 66, 0, 92,116,116,244,194,218,253, -152,152, 24, 13,128,188,215, 36, 91,175,168, 92,252,191,131,100,213,186, 23, 76,161,111,223,190, 51,236,236,236, 54,213,238,231, -222,204, 67,238,205, 60, 4,182, 15,238,209,169, 99,151,138,177, 99,199,194,197,197, 5,243,230,205,227, 0,252,220,212,255,207, - 76, 79,177, 5,192,121,121,121,205,171,169,144, 59,222,190,125,219,237,206,157, 59,232,218,181,235, 11,233,158,162,208,179,103, - 79, 83,166, 84, 53,131,218,103,255,125, 42, 25, 11,138,162,160, 86,107,160,215, 83,160, 13, 44,104,154, 70,231, 96, 59,236,217, - 17, 93,253, 27, 93,171,158, 85,171,102,205, 61,237, 96,103, 43, 48,144, 36,161,185,155, 84,208, 96,141,169,215,235,145,148,157, -141,196,103,207, 0, 0,111,199,152, 30,248,186,231,226, 85, 4, 5, 5,153, 75,109,155,230,222,158,200, 63,159, 84, 93,121,107, -114,113,231,207, 67,176,179,179, 5, 0, 4, 71,142,135, 80, 88, 77,180,170, 52, 20, 92,219,251,128,224,184, 70,195, 2,216, 56, -121,158,227, 11, 37,190, 28,195,130,227, 88,112, 44, 3,142, 99,193, 19, 8,109,102,124,242, 33, 88,150, 65, 88, 88, 24, 8, 30, - 15,140, 65,135,209,195, 6,162,172, 66, 5, 23, 71,203, 26, 9,161, 80,136,200,200, 72,105, 99,199, 31, 63,126,172,169, 75,204, - 76,151,145, 1, 85, 85, 26,232,116, 58, 80,122, 26,148,129, 6,211, 90,136, 21,139,199,129,166,104,168,223,143, 0,101,160,193, -126, 62, 2,148,222,128, 28, 27,146, 12, 13,116, 53,144, 32, 52,247,211, 20,246,230,136, 86, 45, 57,104, 12, 13,141, 9,108,132, -108, 37, 78,158, 60,185,115,104,199,142,247,222, 27,208,113,237,131,228,148,252, 7,201, 41,175,156,231,219,174, 99,214,167,177, - 7,230, 10,132,210,206, 81,243, 76,207, 58,172,139,186,110,196,191,136,133, 42,149, 42,212,214,214, 22,233,233,233,224,241,120, - 32, 8,226, 49,128, 80, 0,240,242,242,122,194,231,243,253,120, 60, 30,182,108,217, 66,240,249,252, 14, 17, 17, 17, 11,181, 90, -237, 33, 19, 29,186, 64, 59, 59,187,151,212, 44,161, 80,136,232,232,104, 76,152, 48,193, 72,178,132, 66, 33,118,237,218,133, 46, - 93,186, 64,175,215, 7, 90,152,222, 59, 0,122, 89,160,248, 17, 53,228,220, 44, 25,165,105,122,114,201,123,239,181,197,149, 43, -232,225,231, 23,212,185,115,103, 80,212, 11, 65,211,207,207,207, 71,165, 82, 21,104, 52,154,127,162, 58,180,193,125,147,164, 72, -203, 34, 59,179,122,248,233,189,123,247, 16, 22, 22,102, 84,176,234,170, 89, 66,161, 16, 82,145,109,147,136, 22,203, 86,215, 75, - 42,149,138,188,114,229,138,107, 64, 64, 0, 1, 0, 1, 1, 1,196,253,251,247,157,109,108,108,138,219,180,105, 99,182, 3, 44, -181,119,192,174,201, 99, 0, 0, 95, 13, 24, 98,236, 24,157,253,122, 33, 4, 2, 1,250,207, 91,248,202,115,207,178, 44, 15, 86, - 88, 73,150, 5, 92,228,239, 34, 89,245, 21,173,152,152,152,148,152,152,152, 87,212,177, 38,194,188,162, 85, 87,186,107, 42,106, - 95,214,198,176,110,221, 58,116,232,208,193,100, 67,180,105,211, 38,236,221,187,119, 29,128,204, 38, 75,142,253, 59, 5, 99,253, -209, 20,191,118,193, 4, 0, 44,255,124, 24, 89, 85, 85,133,107,215,174,193,193,193, 1,143, 31, 91, 28,246,203,206,193,193,225, -107,146, 36, 71,243,234,207, 0,104,152, 96, 50, 44,203,198, 85, 84, 84, 52, 26,222,129,227, 0,202, 64,163, 74,173,133, 94,175, -199,231, 95,110, 54,155,136, 24,128,160,244, 42,126,100,239, 8,105, 99,138, 78, 88,135, 62,248,108,162,237, 43,141, 55,143, 4, - 72, 18,120, 35,172, 90,113,185,127, 59, 5, 44, 11, 48, 44,224,234,238,132,159,247,175, 53, 73,242,105,134,173,233, 29, 51,168, -212, 49, 8, 12,143,194,243,180, 43, 70, 5, 73, 36,172,118, 25, 11, 5, 2,176, 28, 81, 29,245,161, 49, 34, 36,146,250,150,201, - 51,253,119,196, 63,192,199, 81, 29,240,235,133, 36,140, 26, 16,138,203,183, 82,209,183, 91, 16, 82, 50,158, 33,216,191, 37,182, -236,140, 3,199, 65,245,195,250,111, 10, 94, 52,104,116,182, 37,138,214,205,155, 55, 53,245, 85,172,186, 91,206,124,123, 8,142, -123,161,104,105,180, 58,204, 91, 96, 81, 56,159,234, 50,234, 21, 46,181,228,100, 83,138,149, 37, 68,172,190,178, 5, 51,225, 89, - 90, 3,232, 2,204,255,119, 86,156, 12,195,224,212,169, 83,198,242,104,168, 28,235,150,157, 5, 36, 7,217,217,217, 72, 73, 73, - 65,120,120, 56, 42, 42, 42, 32, 32, 73,204,125,240, 0, 65, 19, 39, 66, 47, 20,130,101, 89,136, 68, 34, 76,155, 54,205,226,252, -108, 98,237, 92, 51,152,155, 49,103,124,109, 68, 68, 68,219,244,170, 42,164, 60,124,136, 1,203,150, 1, 0, 78,159, 62,253,210, - 51, 49,103,206, 28, 81,106,106,234,148,187,119,239, 78,201,207,207, 95, 7, 96,110,163,245, 44,167, 51,142,209,122,111,220,187, -104, 27,208, 26,123,127,217,111, 60, 62,231,139, 89, 16, 8,132, 16, 8, 5,112,116,112,180,232,129, 38, 13,213, 0, 0, 32, 0, - 73, 68, 65, 84,110, 12, 6,131,145,180,170,213,106,242,244,233,211,205, 7, 14, 28, 40,156, 53,107, 22, 1, 0,123,247,238, 37, -191,255,254,123,217,249,243,231,133,205,154, 53,147,155, 37,151, 20,245, 74, 25, 19, 4, 1,129, 64, 0,161, 72, 8,176, 44, 8, -130,144,173, 94,189,122,121, 74, 74, 74,215,128,128, 0,232,116,186,137,168,158,168, 97,141,163,101, 37, 91, 38,185, 72, 67, 99, -173,106, 84,169,198,160,168, 59,110,171, 49,162, 86,119,204, 22, 94,111, 82,134,101, 99,180, 26, 2,143,199, 51,171, 86,145, 36, -105,214,117, 56,103,206, 28,216,217,217, 53,214, 0,113, 15, 30, 60, 72,149,203,229, 59, 0,108,126,173,194,185,152,144,242,245, -236, 17, 42,212,248, 86, 29, 29, 29,139,251,245,235, 87, 9,128, 58,116,232,229, 14,178, 78,167,107,180, 1,119,112,112,248,250, -167,159,126,154, 57,124,248,112,178,126,136,129,186,238,189,218,143,193, 96,192,161, 67,135,102,206,159, 63, 31, 21, 21, 21,179, - 77, 53,226,234, 42, 13, 52, 53, 3,161,159, 36,255,106,105,165,222,232, 33, 91, 71, 47, 52,111, 29,218,104, 99, 66, 10,171,199, - 16,121,180,120,209,128,217,217, 73,192,152,176, 73, 16,100,230,179,156,252,102, 62,158,206,120,146,171,128, 71,203, 14, 40,203, -123,145, 15,124, 62, 15,130, 26,215,161,163,189, 12,138,162, 34,144, 36,207, 36, 49,254,102, 95, 2,110, 37, 63,195,225, 11,247, - 65,105,171,176,126,247, 89, 80,186, 74, 80,218, 42, 80,218,234,237,170,249, 31,129, 32, 80, 96,208, 85,181,107, 74,185,243,249, -124,116,235,214,173, 81,162,147,151,151,103,161,162,197, 25, 21, 45,141,182,137,101,100, 89,207,201,164, 98, 85,123,252,117,137, - 65,109,200, 7,169, 84,218,101,215,174,198,195, 56, 52, 4, 79, 79,207, 51,182,182,182,173, 44, 61,191, 9,193, 75, 87, 57, 58, - 58,126, 29, 16, 16, 16,184,126,253,122, 1,143,199, 67,255,254,253,219,121,122,122,102, 3, 64,112,112,176,119,109, 29,243,233, -167,159,114, 55,111,222, 76,174,238, 99, 52, 14,145, 72,244,208,193,193,161, 75,223,190,125, 81, 81, 81,129,220,220, 92,200,100, - 50, 4,173, 93,139, 7,159,126,138,142,219,182,129,236,215, 15, 4, 65, 64, 36, 18,225,193,131, 7,144, 74,165, 15,181,218, 70, - 67,190,117, 3,240, 29,128, 30,120,225, 46,228, 0, 92, 67,117,216,133, 91, 13,212,119, 36, 0, 48, 44,107,174,176,198,205,155, - 55, 15,229, 2, 1, 48,116, 40,132,153,153,160, 40, 10,225,225,225, 70,149, 61, 60, 60, 28,124, 62, 31,161,161,161,240,246,246, -198,150, 45, 91,198,153, 34, 90,218, 74, 10,217,153,207, 17, 17, 17, 97, 84,174,134, 14, 29,106, 84,180, 4, 2,129, 81,217, 34, - 24,243,196,149, 32, 8,174,110, 39,153, 97, 24,130,207,231,243,103,207,158, 77,188,251,238,187,156, 94,175,103, 69, 34, 17,121, -248,240, 97,226,242,229,203,252,170,170, 42,179, 29,241,144, 17,163,241,213,192, 55,171,223,253, 86,110, 16, 8, 5, 16, 9,133, -152,247,240,185,177, 92,236,119, 29, 16,197,198,198,142, 10, 8, 8,168,118,195, 3,124,107, 28, 45, 43,204, 8, 61,138,122, 36, - 73, 95,103, 95, 1,128,168,217, 87,212, 33, 84, 10,130, 32,238,112, 28,215,181,222,185,181,199,245,245,182,181,199, 19, 95, 35, -249,181,107, 29,190, 66,190, 76,245,136, 51,110,220,184,225,223,185,115,103,228,228,228,188, 50, 19,174,182,225,146,201,100,144, - 74,165,184,126,253, 58, 0,100, 52,102,236,242,229,203,223,163, 58,234,114,117,138,188,188, 34,250,190,215,231,122,216,144,174, -216, 23,179,191, 66, 46,151,135,226, 69, 12, 29,194,219,219,123,130, 64,196, 31,227, 23,210, 34, 18, 44,251,221,197,147,215,150, -153,186, 67,191,118,193,149, 0, 52,181,179, 14, 95,115,246, 33, 72,146, 28, 61,124,248,112, 50, 53, 53, 21, 99,198,140,193,222, -189,123, 27, 61,119,194,132, 9, 56,112,224, 0,134, 15, 31, 78, 46, 88,176,160,209,240, 14, 47,171, 37,250,191,237,161, 76,127, -156,136, 61, 7,126,106,116, 12,146,187,123,245,120,172,162,162, 98,227,111, 93, 59,155,246,140,176,180,254,124,194,221,219, 17, -221,123,247, 23,230, 22,150,131,165,117,208,170, 94, 92,175, 46, 47, 4, 71,107, 33,180,113,134,167,171, 3,238,221,248, 77, 79, -233,181,231, 77,217,156, 57, 60, 24,159, 14, 11, 4, 56, 22, 35,230,254,140,248,205, 51,140, 61,232,158,239,206,194,197, 67, 27, - 45, 30,227, 87, 31, 2,129, 0, 15, 30, 60,208, 52,166,102,241,120, 60, 75, 98,114,213,168,142, 6,168,213, 26,168, 53,218,191, -179,238,112,243,240,240,248,193,201,201, 73,210, 8,145,114,115,115,115,251,193,197,197, 69, 98,169,235,176, 49,146, 85, 19, 87, -235,238,228,201,147,155, 68,182,196, 98,113,171,140,140, 12, 99,176, 82, 83, 91,189, 94,143,190,125,251, 90, 26,188,244, 36,128, -167, 94, 94, 94,215,130,130,130, 28,158, 60,121,130,253,251,247, 11, 5, 2, 65,139,218,250, 67,165, 82,129,199,227,161,168,168, -200, 0,224, 67,152,113,157,233,116,186, 43, 87,174, 92,121, 99,216,176, 97,188,135, 15, 31,130,199,227, 85,167, 43, 34, 2, 29, -183,109, 67,242,236,217,136,124,246, 12, 90,138,130, 68, 34,193,185,115,231, 40,181, 90,125,165, 49,123, 82,169,116, 71, 86, 86, - 86,176, 68, 34, 1, 69, 81, 96, 89, 22, 36, 73, 18,124, 62,191,167,163,163,227, 38, 0, 93,235, 21,150,123,199,174,125,219, 51, - 52,205,200,115,158, 40,204,101, 64, 73, 73, 9, 78,158, 60,137,240,240,112, 68, 70, 70, 34, 47, 47, 15,153,153,153,120,235,173, -183,140,231, 36, 38, 38, 34, 33, 33, 1,109,218,180, 49,175,232,145, 6,180,105,223, 10, 66,161,176, 90, 33, 18, 8,107, 58, 62, - 2,163,146, 37, 20, 8, 33,224, 11, 32,145, 74, 44, 86,180, 8,130, 0, 73,146, 32, 8, 2, 82,169,180,182,147,205, 54,111,222, - 92, 94, 90, 90,234, 5,128, 39,149, 74,193, 48,140, 69,157,150,218, 54,162,150,100, 9, 69, 66,163,178, 5, 0,229,229,229,218, -225,195,135,255, 83,167,211,125,128,215, 91,161,196,138,255, 49, 16, 4,113,231,223,113,109, 19, 48,180,134, 88,189, 50, 40,222, -212, 3,254, 86,247,238,221,183,141, 29, 59,182,255,134, 13, 27, 96,107,107, 11,185, 92,110,108, 16, 69, 34, 17,124,124,124, 80, - 90, 90,138,237,219,183,227,249,243,231,151, 0, 76,179, 52, 69,114,185,252,230,227,251, 25, 37,125, 71,117,119, 9,238,222,222, - 49, 55,227,121,184, 92, 46,191, 94, 67,178,126, 30, 59,231,173, 15,250,142, 12,131, 80, 36, 64,238,227, 2, 92, 60,121,237,255, - 75, 97,242,120, 60, 30, 65, 16, 24, 51,102,140, 69,231,191,255,254,251,184,114,229, 10, 76,185, 25,217, 90, 69, 75,173, 69,149, -230,239,235,172,125, 54, 99, 2, 62,155, 49,193, 72, 38, 44,113,189, 0,128,183,247, 65, 19, 68,139,218, 16,127,112,251,199,157, -194, 34,124,187, 4,183,194,173,187,247,177,111,219, 11,145, 97,231,247,203,241,237,206, 75,240,241,112, 2,165,171,194,153, 95, -127, 44,160,116,234, 13,175, 41,202, 85,147, 91,130, 0,199,177, 77,186,247, 90,242, 36, 16, 8, 16, 18, 18,210,168,162, 85, 90, - 90,170, 49,215, 48, 24,203, 72,111, 64,101,149, 6, 26,245,223, 70,180, 58,246,236,217,243,124, 92, 92,156,139,187,187, 59,242, -243,243,235, 19,173,142, 61,122,244, 56, 31, 23, 23,231,226,225,225,129,220,220, 92,139,195,138, 52, 64,178,160, 80, 40,136,178, -178, 50,214,201,201,169, 73,100,139, 36, 73,232,116, 58,164,165,165, 89,250,183, 22,207, 16,115,112,112,216,117,224,192, 1,135, -226,226, 98,240,120, 60,164,165,165,189, 52,235,176,246,243,243,207, 63, 11, 71,140, 24,241, 83,121,121,185,201,105,109, 52, 77, -175,155, 48, 97,194,148,188,188, 60, 39,119,119,119,200,229,114,136, 68, 34,112, 28, 7,162,111, 95,244,122,250, 20, 20,195, 64, - 42,149, 34, 61, 61, 29, 59,118,236,168,170, 9, 21,211,160, 64, 70, 16,132,191, 80, 40,196,248,241,227, 95, 58,176,123,247,110, -188,221,133,215,197,205,129, 95, 73, 67,162, 43,148,190,121,134,199,227, 17, 29,187,245,107,215,173,247,208,144, 71,201,183,158, - 40, 10,159,155,171,148, 12,122,189, 30, 1, 1, 1,184,115,231, 14, 46, 92,184,128,126,253,250, 33, 50, 50, 18, 73, 73, 73,248, -237,183,223,144,144,144, 0,130, 32,224,226,226, 82, 59,252,194,228, 24, 12,189,154, 70, 81,126,201, 43,234, 85,253,125,161, 80, - 8,157,134,178,168,140, 30, 62,124,136, 59,119,238, 24, 67,203,240,120, 60,122,226,196,137,224, 56,142,203,202,202,130,157,157, - 29, 55,121,242,100,134,207,231,211,121,121,150,141, 15,174, 37, 85,181, 36,139, 47, 20,188, 68,208, 88,150, 85, 37, 37, 37,125, - 12, 32,169, 70,201, 2,172,113,180,172,248,191,141, 83,120,117, 97,105,179,138,214, 83, 0, 3,246,239,223, 63,238,216,177, 99, -235, 54,109,218,228, 22, 21, 21,133,178,178, 50,248,250,250,194,203,203, 11,241,241,241, 56,125,250,116, 49,195, 48,115, 1, 52, - 36,253, 12,128,137,152, 53,121, 79,228,113,186,202,202, 79, 59, 71, 6,226,210,161, 63, 98, 60, 61, 61,167,241,120,188,207, 39, - 47,124,231,131, 62,195,187, 34, 61, 33, 11, 55,127,123,128,194,156, 98,179, 54,235, 15,134,119,116,116,156, 98, 99, 99, 35, 2, - 64, 53,208, 43,174, 63,235,208,104,147, 97, 24, 70,175,215,227,224,193,131, 22,145,173,253,251,247, 67,171,213,130,121,213,191, -106,180,201,177, 28,193, 23,136,225,237, 19, 0,138,170, 2,203,190,246,132, 74,163,205,218, 30,232, 19,145, 8,238,197,197,184, -117,235,150,101,148,123,232, 80,115,101,164,213,107, 85,227, 55,174,156, 23, 63, 61,250, 59,199,126,221,223,192, 87,107,119,131, -162,118,130,228,145,144,138,133,232, 28,214, 3, 60,232,240, 67,236, 23,229,106,101,217,120,188,186, 20,207, 75, 54, 57, 83, 30, - 22, 14, 96, 88, 22, 23,174,222,182,248,222,141,173, 61,195,128,207,231,227,241,227,199,154,134,102, 27,242,120,213,110,206,218, -158,186, 41,155, 28,203, 18, 2,161, 4, 62,190, 65,208,235, 42,255,150, 50,114,119,119,255,226,232,209,163, 46,181,161, 18,146, -146,146, 64, 16, 68,218, 11,197,177,250,184, 70,163, 65,114,114, 50,146,146,146,128,234, 25,110, 22,191, 71,181, 74,150, 66,161, - 32,228,114, 57,108,108,108,200,164,164, 36, 93,104,104,232, 93, 51,239,183,209,166, 86,171,125,214,216,248, 73,173, 86,219, 76, - 34,145, 8,234, 53,162,222,109,219,182, 77,111,192,133,248, 74, 58, 43, 42, 42,110,205,159, 63,191,243,144, 33, 67,240,197, 23, - 95,148, 58, 57, 57,217,253,240,195, 15,124, 30,143, 71, 76,159, 62,157, 41, 42, 42,170,252,241,199, 31, 29,142, 29, 59,134,242, -242,242,235, 22,220,187, 74,171,213,126,220,189,123,247,221,103,207,158,181,241,247,247,135, 82,169, 4,199,113,216,181,107, 23, -166, 79,159, 14,137, 68,130,244,244,116,188,253,246,219,106,181, 90,253, 49, 94, 29, 59, 89,107,147, 32, 8,130, 99, 89, 22, 75, -150, 44, 49, 6, 39,173, 13, 86,106, 39, 37,176, 99, 78,107,217,172, 31, 43,100,227,190,250,113, 34, 0, 48, 52,205, 60, 74,190, -245,100,215,230,175, 46, 11,133,194,171,102,202,104,209,172, 89,179,126, 24, 58,116,168,212,214,214, 22,165,165,165,184,118,237, - 26,110,220,184,129,155, 55,111, 66,175,215,195,197,197, 5, 78, 78, 78,144,203,229,120,248,240,161, 6,192, 34, 83, 54, 69, 54, - 2,248,181,171,157,249, 91,173, 96, 9,234,204, 54,172,171,110, 9, 5, 2,139,222,163,222,189,123,163, 91,183,110,181, 4,136, -201,206,206,150,235,116, 58,162, 14,233,207,171, 37,228, 45, 90,180,160,247,238,221,203,153,178,121,115,199, 22,156, 93,177, 8, - 34,161, 16,115,211,114,141,164,107,119,191, 78, 16,136,132, 8, 28,246,110,221,107,183,162,218, 93,136,122, 36,203, 84,219,241, -151,223, 77,171,205,255, 88,155,255,151, 33,199,107, 44,193, 83,139,125, 90,173,246,204, 71, 31,125, 20,219,177, 99,199,143,214, -175, 95, 79, 8,133, 66, 44, 91,182,140,203,207,207,255,165,166, 23, 82,246, 58,169,226, 56,238,151,223,143, 92,255,100, 82,244, -112, 98,206,134,201, 61,239, 94, 76,126,216,161,187, 63, 58,116,247,199,221, 75,169,216,188,112,255, 94,198,192, 44, 41, 40, 40, -200, 49, 99, 74, 55,160, 71,251,250,131,225, 93,174, 92,190,232,210,212, 89,135, 44,203,198,237,223,191,127,230,200,145, 35,201, -219,183,111,191, 50, 38,171,118,217, 29,150,101,113,254,252,121, 80, 20,133, 95,126,249,133,101, 89,182,241, 56, 90,224,142,111, -220, 16, 59,233,151, 61,199, 69, 34, 33,129, 27, 87, 15,163,162,204,244,172, 46,161, 80,128,159,119, 29,161,132, 66,193,163,134, -142, 83, 20,149,123,241,226, 69,143,193, 12, 35, 32, 73,178, 33, 2,213, 32,226,226,226, 12, 44,203,102,155, 57,237,122,225,243, -156, 97,223,124,241,225,254,161,239,125,228,209,189,123, 79,129,171,187, 7, 8,130, 64, 81, 97, 17,210,147,111, 27,206, 28,254, -169,176, 74,109,217, 18, 60, 31,174,249,221, 56, 38, 11, 0,162,166,111, 50,142,207, 2,128, 97,147,231,163,111,120, 48, 8, 75, -164,167, 23, 36,139,165,105, 26, 50,153, 12, 52, 77, 55, 24,226,193,193,193, 65,170,213,106, 53, 53,129, 24, 77, 74, 69, 28,240, -183,151, 17,195, 48,129,101,101,101,168,170,170,194,141, 27, 55,184,149, 43, 87, 42, 20, 10,133,113,208,166,193, 96, 8, 44, 45, - 45, 69,101,101, 37,174, 95,191,206,197,198,198, 42, 74, 74, 74, 22, 54,229, 29,146, 74,165, 93,248,124,254,221,178,178, 50,214, -198,198,134, 52, 24, 12,134,208,208, 80,177, 84, 42,181,120, 65,117,185, 92, 62,164,177, 99,126,126,126, 25, 25, 25, 25,109, 25, -134,169,187, 6,162, 80,171,213,250,119,239,222,221,146,250, 99,214,206,157, 59,113,228,200,145, 48,165, 82, 57, 33, 59, 59,123, - 55,128, 48, 62,159,143,251,247,239,167,105,181,218,177, 35, 71,142,220, 85, 86, 86,118, 11,213, 75,240, 88,130,179,233,233,233, -227, 3, 3, 3,119,126,253,245,215,182,145,145,145,124,111,111,111,116,237,218, 21,233,233,233, 56,117,234,148, 97,235,214,173, - 85,106,181,250, 67, 0,231, 77, 23, 59, 8,154,166, 33, 18,137,140, 31,177, 88, 12,161, 80, 8,149,134,195,212,181,153, 26, 26, - 82,205,186,101, 31,159,226, 0,162, 32, 55,179,184,168, 32,247, 22, 65, 16, 87,229,114,121, 69, 35,121, 38,210,106,181,111,112, - 28,199, 35, 8, 98, 3, 69, 81,147,103,204,152,225,181,106,213, 42,180,111,223, 30,197,197,197,144,201,100,240,247,247,135, 66, -161,192,237,219,183, 25,181, 90,189, 13,192,114,212,140, 31,105, 12,229,197, 74, 52,247,108,241,146,242,201,113, 28, 56, 6, 48, -232, 24, 48, 20, 7, 61, 97,128, 64, 96,128, 80, 40,180, 68,121,226, 88,150, 69,153,151, 23,216,228,100,220,188,121, 19, 28,199, - 53,170,170, 5, 4, 4, 88, 80,177,179, 16,137, 69, 47,185, 11, 9,130,128, 80, 36,130, 64, 36,108,104,230,140, 85,197,178,226, -191, 26,150,250,198,203, 1, 76, 75, 76, 76,220,221,167, 79,159,120,142,227, 4,168,246, 71,254,241, 87,254,188,160,160,224,222, -245, 83,247, 22,120, 52,119,138,125,115, 66, 79,180,127,195, 23, 12,205,224,218,233,251,248,101,213,177, 3,121,185,121,147, 97, -193,218,103, 44,203, 94,238,209,165, 61,137, 58,177,186,189,189,189,217,215,153,117, 88, 81, 81,177,116,238,220,185,248,226,139, - 47, 94,103,214, 97,131,120,240, 80, 49,141, 0,215,124,216,155,189, 6,131, 32, 57,189, 94,103,162,226,131, 49,114,169, 80, 40, -120,116, 39, 73, 30,218,208,121, 10,133, 98,240, 7, 31,124,112,158,207,231,183,106, 74,158,179, 44,155, 93, 88, 88,216,223,252, -153,244, 53,157, 70,233,127,242,192,246,217,103,143,236, 28,204,178, 76, 27, 2, 0,143, 47,124, 98,160,168,115, 58,141,114, 61, - 44, 92, 84,122,245,180, 8,204,218,248, 27,182,124, 49, 12, 51, 98, 15,225,167, 37, 83,177, 96,237,126,124,247,197, 44,172,220, -244, 79,124, 53,107, 60, 70,141,251,128,229, 8,242, 79, 75,239,131,199,227,157,221,190,125,251,164,169, 83,167, 26, 39, 45,112, - 28,247, 82,197,110, 48, 24, 52, 44,203, 98,219,182,109, 44,128,179,166,236,189, 92, 70, 4,103,106,188,148,165,101,164, 84, 42, - 63,140,136,136,216, 5, 64,204,113,220,227,178,178,178,127, 0, 47,150,134,170,172,172,252,176,123,247,238,187, 56,142, 19, 19, - 4,241,202,113, 75, 80, 19,234,161,139,147,147,211,221, 26, 37, 75,252, 58, 3,226, 77,101,181, 9,183,162, 37, 46, 68, 22,192, -140, 58, 17,223, 87,133,133,133,213, 93, 84, 58,173,172,172,172,203,107,164,235,188, 70,163, 9, 94,178,100,201,108,137, 68,210, - 87,173, 86,183, 3, 0,153, 76,150,174,211,233, 46,107, 52,154,245, 48, 31,155, 74,207,178,108, 58, 77,211, 33,110,110,110,213, - 51,106,107,200, 22, 0,156,184,203,220, 5,152,174,213,162,248, 62,139, 19,118,250,244,233,150, 78, 78, 78,131, 8,130, 24,197, -113, 92,128, 74,165,210, 45, 89,178,228,122, 92, 92, 92, 69,171, 86,173,222, 28, 58,116, 40,225,236,236,140, 59,119,238,112, 37, - 37, 37,135, 1, 44,132, 5, 51,173, 89,150,205, 94,189,122, 53,154,250,190,155, 58, 78, 81, 84,193,233,211,167, 93,135, 20, 21, -241, 89,150,197,176, 97,195, 94, 34,112,245,241,232,209, 35,232,116, 58,147,193, 28,117, 21,101,232, 55,123, 62, 80, 51,251,179, - 22,213, 74, 22, 7, 78,111,229, 85, 86,252,111,225, 95,189,160,167, 69,210,162,151,151,215, 24,137, 76,252,153,111, 59,175,208, -252,204,162, 84, 85,133,122,175, 92, 46,223,222, 72, 69,110,145,205, 38, 6, 44,181,202,191,255, 34,155, 47,226,104, 49,224, 56, - 6, 28,203,129,227, 88,176, 44, 83,189,224, 53,199,130, 99, 24,130, 32,240,167, 94, 99, 50, 50,120,253,116, 58,185,186,186, 46, -231, 56,110, 8,143,199, 35,235,138, 97,117,191,215, 40, 89,103, 21, 10,197, 87, 13, 40,175,255,231,242, 51, 46, 46,174, 65,242, -111,233,172,195,209,163, 71, 51, 77,124, 55, 47,203,100, 50,175,134,142, 85, 85, 85,229,200,229,242, 65,255, 33,249, 89,119,198, - 96, 83,108, 54,121,214,161, 57,155,190,190,190, 98,138,162, 58, 1,240, 39, 8,194, 17, 64, 41, 69, 81,231,138,139,139, 11, 1, -116, 1,176,164,230,154, 21, 0,238,254,155,223,119,169,171,171,235, 78,146, 36,155, 91,114, 49, 77,211,250,210,210,210, 73,245, - 58, 4, 70,155, 46, 46, 46,119,249,124,126,115, 11,236, 60, 47, 41, 41,233, 98,173, 63,173, 54,255,139, 80,127, 16,124,163,145, -226,255, 21, 68,203,106,211,106,211,106,211,106,211,106,211,106,211,106,211,106,243,191,157,104, 53,184,111,157, 86,107,133, 21, - 86, 88, 97,133, 21, 86, 88,241,215,112,170, 30,217, 58, 85,251,133, 48,193, 74,155, 34, 9,190, 14,179,189, 96,181,105,181,105, -181,105,181,105,181,105,181,105,181,249, 63,103,211,138,191, 17, 86, 89,213,106,211,106,211,106,211,106,211,106,211,106,211,106, -243,191, 29,141,186, 14, 73,107,222, 88, 97,133, 21, 86, 88, 97,133, 21, 86,252,107, 96, 49,209,146,121, 4, 4,186,250,134,238, -114,106,222, 33,201,169,121,135, 36, 87,223,208, 93, 50,143,128,192,255,209,124,147, 2, 24,199,231,243,207,123,122,122, 42,209, -200,210, 59,255, 5,176, 7, 48, 10,213,241,125, 70, 0,176,249, 59,141, 71, 2,252, 49,192,103, 19,129,156,137, 64,206, 24,224, -179,200,255,194,113,131,203,102,122, 69, 92, 61, 51,238,204,178,153, 94, 17, 13, 30,159,235,229,114,243,183,209, 27, 87,125,230, -237,252, 55,253,165,157,187,187,251, 14, 15, 15,143,103,238,238,238,217,238,238,238, 59, 1, 56, 88,171, 59, 43,172,176,194,138, -127, 25,106,199,104,213,126,140, 99,180,248, 0, 16, 31, 31, 31, 9,224,119, 0,125,162,162,162,174,212,191,218,169, 69,200,212, - 54,173,219,124,241,205,178,133,132,167,187,171, 13,205,176, 84,214,179,220,160,165,223,196,254,154, 47,226,175, 43,203, 73,254, -233, 53, 18, 69,240,120,188, 49, 98,177, 56, 10, 64, 45, 97, 75,211,233,116,241, 12,195, 28,132,101,211,180,225,225,225,113,149, -199,227,181,108,202, 31, 51, 12,147, 83, 88, 88,216,243, 53, 51,115,116,139, 22, 45,118, 70, 70, 70,218,132,133,133, 65, 36, 18, - 97,201,146, 37,115,229,114,249,122, 75, 13, 56, 57,249,217, 81, 98,201,231,124,145,104, 32,103,208,135,112,224, 0, 82,156,204, -210,186,139, 66,157,110, 93, 89, 89,166,202, 66, 83, 11, 1, 76,174,201,171,159, 0,172,254, 43, 79,201,164, 55, 96, 48, 48,213, -207,132,144, 15,230,248, 83,135,223, 23, 45, 90,196,143,138,138,194, 79, 63,253,212,115,199,142, 29, 31,171, 84,170,139, 0, 78, - 0,120,242, 87,159, 74, 15, 96, 90,247,158, 61, 55, 78,154, 59,151,167,185,122, 21, 27,119,238,220,128,234,120, 75, 91,154,250, - 44, 9,133, 24,229,234, 42,136,226, 56,116, 34, 0,130, 0,238, 43, 74,216,211, 20,197, 28,132, 5,177,216, 76, 96, 28, 94,158, -142,191,175,169, 6, 42,158,112,139,197,195, 2,123, 85, 60,185,188, 24,192,155,245,143,211, 90,201, 36,142,231, 19,165,225, 18, -114, 1,172,253,139,217,106,227,230,230,150,116,252,248,241,230, 97, 97, 97,124, 0,184,123,247,238,196,168,168,168,126, 10,133, - 34, 4,128,242,223, 84, 9, 73,248, 36,249,153, 72, 32, 24,200, 48, 76, 7, 0,224,241,120, 15,244, 6,195,121,154,101,183,192, -194,152,108, 86, 88, 97,197,127, 47,204,113,145,255,112, 52, 26, 25,190,246,230,184,186,219,186,144,185,183, 15, 10,239,255,238, -163, 10,149, 90,251,236, 89, 94,217,156,207, 86,158,255,120,214,154, 99,107,127,140, 63,125,229, 86,218,205,192,176, 65,169, 50, -247,246, 65,141,152,110,204,135,219, 66, 42,149,222,219,186,117, 43,149,158,158,206,149,151,151,115,143, 30, 61,226, 14, 31, 62, -204,125,242,201, 39, 90,169, 84,122, 15, 64, 11, 75,108,122,120,120, 20, 62,186,244, 27,247, 60, 41,129,203,190,123,139, 51, 24, - 12, 28, 69, 81, 28, 69, 81, 92,234,217,120, 46,233,196, 17,238,254,225,131,156, 94,175,231,244,122, 61,167,211,233,184,214,173, - 91,231, 91,152,206,250,240, 14, 14, 14,214,199,199,199,115,191,254,250, 43, 55,119,238, 92,174, 99,199,142, 12,128,233,150,222, -187,204,221,191,175, 93,179, 80,197,212,232, 45,212,169,235,231,184,148,167,247,185,148,167, 25, 92,220,133, 52,110,242,188, 77, -148, 93,179,142, 10,153,187,127, 95,115,247,238,228,228, 20, 78, 16, 4, 87, 11, 0, 92,203,150, 45, 43,235,126, 90,180,104,241, -210,199,199,199,167,178, 85,171, 86, 79, 92, 92, 92, 58, 53,100,115,108, 7,112, 92,234, 62,142, 75,221,199, 45,234, 13, 46, 37, - 37,229, 38,199,113,191,215,126, 52, 26,205,239, 71,143, 30,253,253,157,119,222,249, 29,192,219, 38,242,201,162,252,156, 8,228, -168,142, 31,231,184,245,235, 57, 46, 50,146, 75, 3,184,137, 64, 78, 19,109,182,246,244, 20,220, 95,179,250, 99,253,241,227,191, -112,103,206,156,226, 78,159,142,231,142, 29,221,201,109, 88,255, 25,229,225, 33, 72, 6,208,182, 9, 54,249, 0, 86, 2, 88,135, -106,229, 50, 93,161, 80,112, 5, 5, 5, 28,128,244,154,223,214,185,185,185,173, 69,195,234,219,128,186, 74,214,236, 33,158,103, -222,123,179, 39,167,170,200,231,222,123,179, 39, 55,123,136,231, 75,202,214, 16, 63, 63,187, 25,195, 58, 40, 82,238,238,101,102, - 12,235,160, 24,226,231,103,247,154,249, 73,160,122,157,208,173,151, 46, 93,162,185, 58, 48, 24, 12,220,238,221,187, 25, 39, 39, -167, 95,154, 96,179,157,155,155, 91,182,179,179,115,122,221, 31,221, 66, 71,116, 15,232, 53,113,169, 75,208, 59,145, 77, 72,103, -152, 68, 40,124,126,254,208, 15, 76, 73,206, 3, 78,175, 41,228, 42, 30, 39,112,207,211,110,114,187,183,175, 51,136,248,252,231, - 0,194,254,202,179,212, 68, 88,109, 90,109, 90,109,254, 7,218, 52,197, 69,254, 47,131, 95,255, 6,235, 67, 44, 22, 69, 47, 93, - 52,159, 40, 47, 41,215,104,149, 42,189, 65,171,213,146, 66, 78,251, 32,245,105, 17,201,231,149,207,158, 53,211, 46,122,193,162, -232, 42, 96,188,133,255,217,162, 99,199,142,183,143, 28, 57,226,238,236,236,140,138,138, 10,148,148,148,224,246,237,219,224, 56, - 14, 35, 71,142, 20,119,235,218,181,211,226, 37, 75,110, 60,207,203,139, 64,227, 13,239, 11,242,226,236,138,213, 61,171,215,162, -253,234, 89, 73,117,171, 67, 16,216, 49, 58,202,120,206,242,231,213,171,101, 72, 36, 18,227,130,196,175,129,136,254,253,251, 11, - 1, 96,202,148, 41, 74,149, 74, 21, 83,163,112, 88,180,210,170,204,221,191,175,171,151,119,252, 15,219, 86, 75, 59,180,241, 7, -101,160,145, 93,144, 15,190,192, 17,205,155, 11,241,193,248,129,130,222,221,157, 93, 87,174,216,113,170,128,197, 8,117,113,198, -185,198,108, 57, 58, 58,238, 62,120,240, 32, 14, 29, 58, 4, 0, 72, 79, 79,135,191,191,191,204, 92, 26,146,147,147,253,222,126, -251,237, 3, 37, 37, 37,109,205,157, 91, 63, 48,190, 88, 44, 70,207,158, 61, 17, 20, 20,132,227,199,143,247,169, 81,182,254, 18, - 52, 87,175,194, 54, 49, 17,184,242, 90,157,151,214,157, 59,251,222, 60,125,106,175,235,169,211,105, 88,187,118, 39,158, 60,169, - 22,218,252,252,252, 48,110,236,104,193,131, 7,215,131, 71,141, 26,119,253,143, 63,158,244,172, 33, 74,230,240,245,143, 63,254, -184,176, 85,171, 86, 24, 53,106,212,232,224,224, 96, 79,123,123,123,108,223,190, 29, 94, 94, 94,126,122,189,254,241,241,227,199, -189, 11, 10, 10, 48,115,230, 76, 20, 22, 22,206,109,204, 80,159,193,125, 22,139,135, 5,246,106,223,121, 18,108,237,189,240,227, -254,131,120,116,111,119, 47, 29,149,182, 88,200, 92,153,160,225,196,147, 21, 57,182,209, 45,187, 68,186,180, 13,126, 27,190,157, - 19, 92,181,204, 31, 79, 23, 15,108, 29,203,151,104,119, 47, 91, 43, 47,121,197,232,168, 56, 94,136,242,161,115,242,121,148, 0, -203,216, 90,130,101, 84,107, 57,188,221,187,119,111, 99,193, 61,123,246, 12, 58,157, 14,129,129,129,164, 94,175,239,107, 97,190, -182, 27, 52,104,208,159,167, 79,159,118,105,215,174,157,162,180,180,212,120,192,211,197,113,240,149, 35, 27,102,174,220,248,207, -128, 61, 28, 81,174, 72, 59,246,192,140,173,176, 30,225,157, 47,156, 57,178,215,150,168,204,133,200,177, 24, 96, 75,144,121,224, -103, 16, 54,206, 24,243,201, 28,126,223,254,253,154, 13,124,243,221, 11,143, 50,158,244, 7,112,199,218,175,183,194,138,255,105, - 85,139,251,111,187, 39, 35,209,138,138,138, 34, 26,186, 65,150, 99, 67, 61,220, 93,164, 27,214,236,186,195,163,244,122,153,163, -131, 94,224, 96,207, 18,118, 14, 60, 74,111,168,244,245,243, 21,177, 28, 27,218,136,253,250, 83, 60, 9,169, 84,122,228,196,137, - 19,238, 2,129, 0, 44,203,194,205,205, 13, 89, 89, 89, 40, 47, 47,135, 74,165,194,147,180, 52,180,106,225,131,101,209,243,189, -102,206,143, 62,162, 86,171,187,224,101, 55,226, 43,211, 70, 25,195,203,235, 70,215, 46,193,242, 74,151,191,230,183, 6,142, 89, - 58, 21, 53, 43, 39, 39, 7,182,182,182, 8, 9, 9,177,189,118,237,218, 31, 38, 72,214, 75, 54,157,156,252,236, 88,177,232,208, -214, 31,150, 72, 41, 67, 50, 82, 51, 75,209,190, 85, 47,120,184,180, 64,126,169, 30, 55,111,159, 64,114,210, 62,180,105,214, 2, -211, 63,233, 39,137, 93,253,235, 65, 33,221,170, 69,121,121,150,178, 33,155, 74,165,210,182,117,235,214,104,209,162,122,221, 51, -134, 97,144,154,154, 10,134, 97,140,251,117,183,187, 14, 95, 2,173,204,198,164,137, 19, 81, 82, 82, 98,219,144, 77, 1, 15,244, -156,143,199,241,165, 2, 64, 36,115,214, 87, 86, 86, 26,151,225,160, 40, 10,247,239,223, 71, 68, 68, 68,100, 92, 92,156, 57, 86, -100, 81,126, 82,192,119, 27,127,249,101,211,248,138, 10, 18, 0,126, 34, 8,150,226,184,239, 44,125,150,220,221, 5,135,207,158, -217,227,202, 35, 31,194,217,225, 91,220,190,157, 13,138,170, 78,111, 73, 73, 17,102,124,166,132, 80, 96,135,227,199,255,233, 18, - 24,216,243,112, 65, 1, 21,130,151,221,136, 13,165, 83,114,230,204, 25,204,152, 49, 3,169,169,169,222, 60, 30, 15,183,110,221, -130, 84, 42,197,154, 53,107,120,129,129,129,222, 50,153, 12,103,207,158, 69, 97, 97, 33, 97, 42,157,191,159,251,253,155,138, 39, -151, 23, 23, 16,103,135,252,184,255, 32, 62, 26, 59, 6,158, 92,230, 31, 14,109,136,111, 6, 13,235,241, 21,199,243,137,146,217, -133, 58,249,135, 12,131, 80,100,139,233, 95, 46, 71,122,242, 73, 39,181, 42,233, 51,130,201,245, 89,182, 54,110,214, 43,233,252, -117, 52, 51,101,223,181,206,231, 91,220,241, 77,188,255,241, 45,121,194,142,164, 23, 68,203,143, 79,144,140, 3, 80,189,124,202, -227,199,143,241,228,201, 19,240,249,124,104, 52, 26,208, 52,221, 96, 58,189,189,189,167,209, 52,253, 85, 77, 57,239,146, 72, 36, - 31,238,221,187,215,165, 46,209,118, 11, 29,209,221,197, 78,214,191,176,168,164,236,250,157,148, 71,115,166,141,234,115,245,102, -114, 46, 37,120, 39,167, 34,233,120, 69, 35,249, 41,145,138, 68,135,207, 30,253,167,173,225,233, 37,200, 2,251, 64, 96,235, 15, -198,144, 7,117, 89, 21, 84, 79,228,208,253,176, 25,111,124, 54, 27, 39,143,253,106, 27,220,161, 75,156,206, 96,240, 7,160,127, -141,119,179, 41,176,218,180,218,180,218,252,207,180,217, 40, 23,225, 56,174, 51, 0,143,154,221,146, 26, 94,224, 10,160, 24,213, -171,200,120,212,212, 29,162, 58,151,213,223,175,123,110,253,253,186,223, 75,106,190,187,215,108,239, 16, 4, 81,106, 38,233, 94, -168, 94,154,240, 84,205, 22,168,113, 37,154, 29,120, 76, 16,164,146, 97, 88,177,208,205, 93, 59,229,189,254, 29,126,187,112,247, -190,141,171, 61,127,112,159, 78,145,183, 31, 60,189, 65,144,132,129, 32, 72,139,198,125,240,120,188, 49, 27, 54,108,232, 96,111, -111, 15,150,101,225,224,224, 0,133, 66, 1,189, 94,143,138,138, 10,232, 84, 74, 80, 42, 37, 18,115,159,161, 71,100, 31,188, 59, -100, 80,224, 63,143,157, 24,195, 48,204, 1, 83,118,189, 67, 59, 25,149,172,229, 45, 93, 94, 72, 19,185,229, 70,210,245,109, 39, -127, 8,109,109, 49,112, 78,244, 95,121, 6, 18, 78,157, 58,117,102,228,200,145,111,206,155, 55,143,148,203,229,103,179,178,178, -122, 0, 72, 53, 75, 42,196,146,207, 63,253, 60,202,201,201,150, 67,220,249, 19,232,221,105, 44,108, 68, 60,148, 40, 41, 16, 4, -144,150,114, 4, 4,225,140,164,116, 57,122,189, 97,143, 65,131, 3,109,143,253,154, 54, 15, 47,198, 7,189, 82, 52,101,101,101, - 40, 42, 42,130,193, 96,128,193, 96,192,168,209,163,177,103,247,110, 84, 85, 85, 65,163,209, 64,175,215,131, 97, 24,144, 36,137, -243,241,113,200,125,154,134,238, 17, 17, 64, 35, 75, 47,237,190, 15, 1,128,155,143, 30, 61, 66, 90, 90, 26,158, 63,127, 14,137, - 68, 2, 79, 79, 79, 44, 95,190, 28, 58, 93,245, 26,101,163, 71,143,142, 4,240,224,175,190, 80, 79,128, 29, 89, 12,179,248,205, -163, 71,221,175, 29, 61,202,222, 60,121,242,185, 88,165,218,110,201,181, 66, 33, 70,173,254,238,147,246, 50,153, 12,207,115, 54, - 32, 32, 64,136,185,179, 93, 16,243,109, 49, 0, 96,230,140,230,232,218,197, 21,202,242, 95,225,234,190, 16,155, 54,205,106, 51, -121,242,186,137,106, 53,179,203,140,233,197, 39, 78,156,120,215,223,223,191, 89, 66, 66, 2, 33, 18,137, 32,149, 74, 33,149, 74, - 33,145, 72, 80, 84, 84,132,172,172, 44,110,245,234,213,121, 0, 22,155, 50,180,108,147,252, 6,128, 55,103, 15,193,153, 71,247, -118,247,106,198,123,154,248,238,244,158,207,146,110, 38,168,126, 59,127,109, 5,173,149,228,150, 63,191, 48,191,117,215, 4,215, -207,190,248, 26,155, 87, 47,197,163, 91, 87, 75, 61, 90, 40,183, 72, 9, 93,131,233,140,140, 92,198,247,242,112,166,167, 77,126, -215,241,164,199,245,105,167,249,132,162,160,248,222, 26,100, 37,104,196,109, 59, 77,104,231, 71,234, 47, 93,186, 36,237,221,187, - 55,180, 90,173, 81,153,220,187,119, 47, 75,211,244,229, 6,159, 77,138,250, 42, 47, 47,207, 75,163,209, 96,200,144, 33, 51,215, -172, 89, 35,171, 93,163,142, 97,152,151,148,172,111,214,239, 57,247,249, 87, 91, 46,159, 59,240,173,247, 55,209, 31,246, 25, 63, -125,229,101, 52,178,142, 36,159, 36, 63, 59,121,116,167,167,196,201, 0,169,243, 32,104, 11, 53,120,180,227, 35,168,149, 90,116, -253,230,107, 0, 34,232, 13, 36,182, 15, 27, 5,129,139, 55,150, 78,253,208,123,209,246, 31, 63, 97, 89,118,131,181, 95,111,133, - 21, 86,212,131, 7, 65, 16,241, 0, 16, 29, 29,189, 48, 38, 38, 38,133, 32,136,120,142,227,162,106, 4,148,120,142,227,162,106, -207,169, 33,103,175,236,215,158, 91,127,191,254,247, 5, 11, 22, 4,199,198,198,174,138,136,136, 56,112,253,250,245,167, 0,204, - 17,173,161, 53,196,234,149,165,119,200, 90, 6, 89,119,251,146,162,197,178, 87, 31, 63,125,166, 30, 52,160, 91,243,248, 43, 15, -238,124,240,193,208,254, 99,134,245, 30,156,149, 83,146,214,198,215,211, 53, 37,229,129, 61,203,178, 87, 45,201, 37,177, 88, 28, -213,175, 95, 63,126, 89, 89, 25,108,108,108,160, 80, 40,144,151,151, 7,138,162,160,173, 40,135,174,162, 28,218,242, 50, 80, 21, -101,120,114,247, 54, 66,219,248,137,107, 6,203,155, 68,173,234, 82, 95,169,170,171,108,137,236,236, 32,182,179, 3,209,116,183, -225, 59,142,142,142, 55,107, 27, 85,138,162, 62,155, 63,127,126, 49,203,178, 88,185,114,165,189,173,173,109, 28, 0,177, 57, 35, -118,110,188,168,136, 55, 66,200,135, 89, 73,232,217,113, 18,218,181,126, 11, 89,133, 26, 20,171, 40, 20,149, 83,232,218,251,123, -180,236,248, 53,124,222,136, 65, 90,118, 41,188,155,249,147,224,139, 77, 46,254,156,155,155,251,210,254,129,253,251,161, 86,171, -209,166, 77, 27,140, 29, 59, 22,243,231,207,199,216,177, 99,225,237,237,141,241,239,189,141,165, 75,151,162,160,160,192, 92, 82, -117,237,218,181,211,249,250,250,234,124,125,125,117, 20, 69,161,178,178, 18,229,229,229,245,243,123, 86, 83, 51,210,221,221,125, -129,167,167,103,146,187,187,123,138, 88, 44, 62,125,159, 32, 30,106,125,125, 61,122, 12, 31, 78, 4,189,247, 30, 47, 91, 42, 37, -174, 0,182,150,216,114,117, 22, 12,237,219,239, 77, 81,121,217, 78,163, 72,245,225, 7,110,248,243, 74, 48,174,253,209, 5, 51, - 62,107, 3,130,148,128, 32, 69, 80, 87, 93, 66,183,176, 8,161,163, 35, 97,238, 89, 26, 7,224,126,143, 30, 61,188,167, 79,159, - 78,136,197, 98,204,156, 57,147,154, 58,117,106,198,216,177, 99, 51, 46, 94,188,200,248,250,250,194,199,199,135,240,241,241,241, - 2,112,191,230, 26,147,176,111, 67,124,163,163,210,254,112,244,151, 61,101,224,218,189,210, 32, 30,181,108,173,188,228,155,173, - 79,215,102, 61, 82,251, 61,186,117,181, 36, 35,249, 36,155,117,231,247,226,252, 12,149,223, 55, 91,159,174, 93,184, 37,191,193, -151,250,202, 21,176, 71,226,175, 80,234, 42, 53,127,248,176,190,234,105, 83,198,180,115,182, 13,222,139,102,131, 58,182,108,209, -124,252,210, 85,155,168,169,159,124, 78,253,244,243, 78, 78,165, 82, 65,169, 84, 98,211,166, 77,244,201,147, 39,243, 24,134,249, -188,177, 62, 16, 0, 24, 12, 6, 76,155, 54, 77,102,111,111,143,220,220, 92,163, 34, 10, 0,114, 69,201,131,107,119,146, 31,206, -249,199,232,200, 42,157, 78,119,238,247,187,105, 65,254,190,205, 9,130,107,116, 34,138, 72, 32, 24,216,165, 91, 55, 30,199,149, -131,224,183,192,147,221,171,161, 44, 40,133,178,168, 20, 60,129, 12, 52,196, 48,176, 34, 56,134,134, 33,253, 78, 2,154,185,121, -240,197, 2,193, 96,107,123, 98,133, 21,255,155, 48,197, 69,234,146,165,216,216,216, 85,166,142,215,217,234,235,237, 27,137, 84, -125, 18, 86,247, 59, 0,196,198,198,174,226, 56, 46,234,250,245,235,251, 1,104, 44,188,133,143,235,108, 45,143,163,197,211,234, - 99,230,205, 95, 12, 39, 7,169, 67, 88, 39,127,207,227,103,175,220,189,122,253,110, 90, 75, 31, 87, 55,206,160,119,250,110,221, -230,230,132, 90, 19,107, 97, 34, 2, 93, 93, 93, 65, 81, 20, 30, 63,126,140,231,207,159,131,162, 40,208, 85, 85,208,149,151, 67, - 91, 86, 6,166, 74, 5, 33,195, 64,163, 40,130,139,141, 4,120, 49, 35,209,140,242, 70, 52, 72,180,106,183, 18,123,123,136,237, -236, 65, 10, 4,117,201, 95,116, 0, 0, 32, 0, 73, 68, 65, 84, 13,186, 21, 27, 65,231,176,176,176, 67,201,201,201,221, 6, 12, - 24,176, 2,213, 83,228,179,243,242,242,250, 47, 89,178, 68,231,225,225,129,105,211,166,181, 7, 48,201, 44,201, 20,233, 3,125, - 61,219,163,157,223, 36,180,244,233,135,242, 42, 3, 20, 74, 3,138,202, 41,108,255, 62, 2,135,127, 10,195,159,135,123, 33,249, -220, 64,148, 27, 60, 97,235,253, 14, 56, 70, 31,108,202,230,249,243,231,177,124,249,114,172, 88,177, 2, 43, 87,174,196,138, 21, - 43,144,151,151,135,144,144, 16,228,228,228,224,204,153, 51,144,203,229,112,117,117,197,237,219,183,177,126,253,122,252,249,231, -159,102,111,186,150,184, 90,112, 78,147,124,233, 52, 77, 79,150, 15, 31,222,161,208,217, 57,168, 83,167, 78,111,206,156, 57,211, -175, 71,143, 30,198,227,126,126,126, 45,164, 82,105, 1,170,103, 80,190, 97,202, 22, 11,116,114,115, 11,129, 94,247,176,166,140, - 5, 32, 8, 9,250, 13, 76, 67,143, 94,119, 65, 25,132, 32, 9, 49, 72, 82, 2,154, 46,129,147,147, 55, 56,142, 8, 49,147,196, - 37, 10,133,194,255,194,133, 11,100, 86, 86, 22, 36, 18, 9, 0, 60, 91,182,108,217,230,181,107,215,166,186,184,184, 48,241,241, -241, 56,118,236, 24,162,162,162,120, 83,167, 78,245,247,241,241,217,102,238,190,151,109,146,223,216,183,238,204,251, 2,131,211, - 27, 18,105,203, 86,168,178,125,231,211, 72, 87, 25, 0,156,205,204, 84,185,183, 80,198, 86,169,146,114, 28,155, 87,126,123, 54, -211,220,140,211,101,236,189,140,135, 55,247, 29, 61, 91, 81, 84, 88, 38,232,212, 33, 88, 19,179,252, 11, 97,203, 86,109,191, 91, - 58,255, 31,158,121, 74, 73,249,192,153,103, 30, 30, 57,123,187,114,194, 7, 31,209, 83, 62,158,174, 61,115,246,252, 81,150,101, - 59,160,145, 25,135, 44,203, 66, 46,151, 35, 37, 37, 5,153,153,153, 80, 40, 20, 40, 46, 46,134, 74,165, 50,186, 27,109, 84,202, - 83,155,127, 57,153, 40,147, 74,109,186,117,240,111,113, 43, 33,181, 72, 38,149,218,248,183,106,209, 14, 88,214, 96, 61,194, 48, - 76, 7,137,141, 20, 0,129,242,228,171,168, 44,171, 68,101,121, 37, 84,165,149,208, 81, 60,104,117, 36, 52,122, 18,190,145,131, - 80, 89,165, 69,101, 73, 5, 88,134,233,104,109,110,172,176,194, 10, 19,109,125,124,116,116,244, 66, 11,207,181,216,189, 89,159, -120, 69, 71, 71, 47, 36, 8, 34,126,193,130, 5,193,104,124, 66, 85, 93,236,104,224, 3,192,130,240, 14, 37, 37, 25,149,118, 68, -224,200,217, 95,126,117,102,255,207,223,187,235,116,234, 28, 23, 39, 91,198,214, 70,228, 58,101,218, 74,168, 42,203, 70, 84, 89, - 30,142, 0,101,101,101,120,250,244, 41,164, 82, 41,132, 2, 1, 24,141, 6,140,166, 10,154,178, 18,144,148, 14, 66,134,129,179, -141, 20,190,222,158,104,233,225,105,145,205,199,151,126, 51, 14,124,175,235, 46, 92, 29, 22, 8,145,204, 22, 34, 59, 91,124, 26, -255, 59, 0, 64, 40, 20, 2, 75, 86, 88, 36,154, 52,107,214,236,196,190,125,251,132, 10,133, 2,247,239,223, 79, 4, 80, 1,192, - 14, 0,155,150,150,118, 33, 57, 57, 57,202,223,223, 31, 0,218,152, 51,166, 44, 38, 25, 3,205, 33,183,224, 25,178,158, 39,192, -217,161, 53, 4, 54,237, 80, 84, 78, 65, 44,109, 13,131,238,133,247, 81,171,204,134,134,226, 89,116,239,122,189, 30, 52, 77,131, -166,105,232,245,122,124,252,241,199,184,118,253, 58, 14, 28,187,136,167, 79,210,209,190,149, 39, 38, 78,156,128,176,176, 48, 92, -191,126,221,164,173, 73,111,192,208,204, 22,252,117,111,146, 16,217,186,232,194,231,159,187,101,142,108, 17, 4,193,161, 17, 87, -100, 61,172,141,136,136,104,155, 94, 85,133,148,135, 15, 49, 96,217, 50, 0,192,233,211,167, 95,186,151, 57,115,230,136, 82, 83, - 83,167,220,189,123,119, 74,126,126,254, 58, 0, 13, 15, 54,231,128, 83,167,110,224, 31,255, 72,133, 66,161, 0, 0, 28,220,255, -130,151,102, 61,165, 48,100,104,181, 71,203,209,209, 17,235,214,133, 88,148,159, 12,195, 96,199,142, 29, 70,119, 33, 0,240,249, -252, 30,115,230,204, 25,217,208,249,109,219,182, 21,154,179, 57,123, 84, 51,201,159,137,220,103, 14,109, 91, 6,219,187,134,162, -196,144, 16,146,144, 39,159, 49,123, 84,179, 13,235,127,205,211, 74, 9,221, 46,130,201,245,225, 75,180,187, 45, 73, 99,230,217, -239,245, 37,190,147,119, 23, 40,148,139,166,127, 52,206,197,222,209,189,234,167,205, 49, 78, 36,143,228, 78,220,165,202,131,253, - 92, 28,223, 9,223, 88,249,143,217, 75, 18,244,116,238,116,228,158, 72,135,137, 16, 23, 12,195, 32, 63, 63, 31, 10,133, 2, 57, - 57, 57, 40, 46,174,118,191, 22, 23, 23,131,101,217,191, 82, 33, 66,147,147,131,236,163, 63,161,229,132, 9,232,186, 98, 57, 24, -150, 15,141,154,193,186,238,253, 81, 86,161,129,142, 37,224,221,185, 59, 62, 58,253, 7, 72,142, 1,182,111,177,182, 36, 86, 88, -241, 63, 10, 75,194, 59,212, 18,162,152,152,152,168,191,251,255,235,146,173,152,152,152,148,152,152,152,166,252, 87,125,151,161, -113,191,118,140,214,239,117, 6,160,189,210,104,170,138,211, 50, 83, 83,249,249, 85,154, 42, 27, 15,119, 55,157,141, 68,204, 86, - 40, 85,188,132, 7,137, 84, 85,193,147, 71, 77,184,143,180,228,228,228,144,252,252,124,228,100,103,131,214, 84,129,212,233,193, -105,213, 24,208,179, 59, 36, 0, 36, 36, 1, 33, 75,129,207, 19, 65, 85,169, 4,128, 52,179,141,163,193,240,138,178, 69, 16, 4, - 68,118,118, 16,201,100, 16,217,218,189,164,112, 89,162,216,136,197,226,125,113,113,113, 94,205,154, 53,195,242,229,203,209,188, -121,243, 0,111,111,111,181,131,131,131,212,195,195, 3, 65, 65, 65,232,222,189, 59,206,156, 57, 3, 88, 16, 83,202, 64, 75,146, - 30, 61, 67,143,226,210,235,248,227,247, 31,160,215,232,208, 41,242, 7, 80,252,150,112, 11,254, 26,236,227,189, 80, 23, 28,175, - 86, 15, 60,135,225,121,206, 51, 16, 60, 81,138,165,202, 83,237,247,196,196, 68,236, 63,126, 5, 94,190,129,200,201,120,136,135, -151, 47,224,154,155, 11,124, 3,131,140,110,160, 70,211,200,128,255,205,150,234, 48, 81,139, 63, 27, 39, 46, 45, 45, 21, 59, 59, - 59,235,106,243,206,203,203,235,175,144,173,113,243,230,205, 67,185, 64, 0, 12, 29, 10, 97,102, 38, 40,138, 66,120,120, 56,186, -118,237, 10, 0, 8, 15, 15, 7,159,207, 71,104,104, 40,188,189,189,177,101,203,150,113,141, 17, 45,146,192,125,154, 46, 9,240, -243,243, 51, 18,173,221,123, 20, 72,184, 59, 16, 4, 68,216,180,249,177,241,220, 22, 45, 90,160, 64,158, 9,130,224,146,205,164, -113,133,167,167,231, 18, 47, 47, 47,191,181,107,215,242, 36, 18, 9, 62,249,228,147,214,149,149,149, 45,107,164,100, 44, 88,176, - 0, 0,176,116,233, 82, 44, 91,182, 12, 58,157, 78,221,152,177,221,235, 58,120, 23,149,178, 83,184, 74,155, 17,125, 93, 91,118, -232, 55,120, 0, 90,251,247, 67,191,193, 57, 0,176,202,153,255,236,189,239, 22, 57, 30,117,180, 35,118,254,118,246,252,210,158, -145,253, 22,205,175,188,252,205,183, 59,202,205,142,121,172,200,222,165,122, 36, 26,179,254,251,109,123,214,127,181, 96,150, 36, - 71,161, 47,203, 43,227, 42,109,197,124,219, 54, 30,132,237,140, 47, 87, 60,205,207,207,156,139,220,179,102,103, 90,178, 44,139, -204,204, 76,227,152, 62,173, 86,139,170,170, 42,228,230,230, 26,159, 25,141,204,126,200,244, 15,134,117,172,210,104,212,183, 30, -100,228, 44,158, 57, 62,162, 74,163, 81,103,100,229,164, 3,155, 26,100, 99, 36, 73, 62, 80,171,212, 3,212,229, 90, 40,238, 63, - 66,243,254,190, 48,208, 4,244, 52, 3, 69,137, 10, 58, 26, 96, 72, 1,130,223,155, 8,134,224,163, 56, 63, 15, 36,143,151,136, -151, 7,237, 91, 97,133, 21,255, 59, 48,201, 69,106, 21,173,136,136,136, 3,117, 85,167,218,239, 0,116, 48, 61,148, 71, 81,151, - 76,213,186, 19, 27,251,159,122,118, 45,197, 43, 99,180,204,134,119,168,253, 79, 31, 7,165,247,234,165,227,155,179, 52,221,190, -168,184,144,230,243,197, 2, 31, 7,141,188, 52,199,242,127,215,233,116,241, 23, 46, 92, 24, 62,112,224, 64,113,198,131, 68,232, - 43, 42,160,175, 40,135,128,165,225, 44,237, 2,146,210,129,208,235,209, 44,128,133, 86, 37,197,149,107,201, 6,157, 78, 23,111, - 41,209, 34,121,188,151,199,101,217,218, 66,108,103, 15,177,173,109,125,215,162, 57, 82, 96, 51,104,208,160,254,225,225,225,224, - 56, 14, 59,118,236, 0, 69, 81, 34,138,162,160,215,235, 65, 81, 20,148, 74, 37,246,236,217,131,173, 91,183, 94, 3,240,139,217, -198,140,214, 95, 56,119,254, 82,216,135,227,163, 4,167,227,215,129,214, 51,208, 16,205, 81, 85,101, 64,165,222, 6,140,203, 4, -160,240, 20,120,124, 9, 34, 66, 91,227,248,175, 71, 40,208,186,139, 22,178,240,151, 84,161,220,156,103,120,254, 36, 29,182,202, - 2,184,217,219, 64,157,153,142, 78, 19, 39,189,150, 58,225,227,227, 3,150,101,209,183,111, 95,227,224,234,215, 37, 91, 37, 37, - 37, 56,121,242, 36,194,195,195, 17, 25, 25,137,188,188, 60,100,102,102,226,173,183,222, 50,158,147,152,152,136,132,132, 4,180, -105, 99, 90, 36, 44, 46, 53,156,126,158,123,127,244, 59,239,188, 35,188,121,243, 38, 56,142,131,191,191, 61,236,237,100, 32, 72, - 49, 2, 3,221, 1, 84,247, 1,250,244,233, 3,165, 50,147, 46, 43,227, 78,155,185,221,125, 0,142,233,245,250,199,189,123,247, -246,126,242,228, 9,102,207,158,205, 63,120,240, 96,173,148,140,232,232,151, 39, 83,104, 52,141,187,238,219,119, 8,248,162, 53, -237, 20, 41,145,182,108,101,239, 26,138,214,254,253, 0, 0, 3,163, 62, 68,235,182, 45,160, 44, 78,106,165,213, 60, 27, 33,228, -151, 57, 37,109,202, 75,149, 14, 13,249, 64, 91,244,123, 6,170, 93,167,102,139, 93,147,113,176, 48, 71, 48,225,208,177, 19,103, -166,189, 21,245,182,192,192,208,116,136,175,192, 49,238,232,169,162,188,236,156,141,200, 57,155,252, 66,255, 51,169,226, 49, 74, -165, 18, 50,153, 12,201,201,201,186,161, 67,135,138, 73,146,196,227,199,143,141, 68,203,221,213, 57,168, 71,215,144,128,111,214, -239, 57, 39, 19,139,197,131,251,116, 9, 76,205,200,126,206,113,196,179, 70,213, 86,131,225,252,131,251,137,125,221,188,219,242, - 50,127,191, 9,151, 94,111, 65,167, 35,161,209,179,208,209, 0,205, 19,194,235,141,110,112,108, 19, 8, 14,192,157,155,215, 12, - 58,131,225,156,181,173,177,194,138,255,105, 85,139, 51, 69,146,106,190,151, 2,120, 22, 19, 19, 83, 92, 71,109, 82, 0, 72, 4, -208,177,230, 60, 69,189,235, 20, 4, 65,220,225, 56,174,107, 29, 59,138, 58,132,171,238,119,125,189,115, 18,155, 64,178,234,110, - 95, 38, 90,141, 77,169, 4, 0, 87, 87, 87,247, 78,157,186,180,249,241,231, 67,224, 56, 14,143, 18,214,160,172,232, 33,150,172, -186,209,166, 89,179,102,145,121,121,121, 87, 44, 73, 1,195, 48, 7,119,238,220, 57,183, 91,231, 78,157, 90, 53,111,142,196,103, - 89, 16,114, 12,132, 12, 3,146,210,129,207,232,209, 60,132, 1, 73,216, 34, 63,191, 2,177,251, 14, 37,215, 68,137, 55,137,128, -183,222,198,242,231, 21, 32, 8, 2,107, 35, 66, 32,178,179,133, 80,102,139, 79, 79, 92, 50,146,171,248,229, 11, 32,178,181, 69, -155,110, 22, 5,132, 87, 95,190,124,249,238,131, 7, 15,186,134,132,132, 96,238,220,185,120,246,236, 25, 88,150, 69, 97, 97,161, - 86, 46,151,231, 41, 20,138,103, 0,142, 2,248, 17, 22, 68, 30, 23,234,180, 27,226, 15,239,158, 30,209, 51,210,245,157, 17, 91, -113,236,215, 57, 40,175, 80, 66, 77, 75, 81,165,165, 81,165,227,193,217,165, 3,186,133,134, 34, 63,175, 8, 41, 55,207, 85,242, -117,234, 53, 77,121, 64, 9,130, 64, 66, 66, 2,252,188,237,144,254,199, 21,184,218, 8,208,209,219, 19,222, 61,122, 26,227, 75, -153,130,128, 7,122,220,184,113,198,200,240,131, 6, 13,202,154, 48, 97,130,215,156, 57,115,240,243,207, 63,227,218,181,107,175, - 12,208,142,140,140,196,213,171, 87,191, 6,176,212,156,168,167,215,235, 17, 16, 16,128, 59,119,238,224,194,133, 11,232,215,175, - 31, 34, 35, 35,145,148,148,132,223,126,251, 13, 9, 9, 9, 32, 8, 2, 46, 46, 46, 48, 84,147,103, 67, 99,198, 40, 10,113,223, -126,183,115,225,250,245, 91,131,199,143, 31,143,195,135, 15,224,195, 15,218,131, 32,197, 32, 8, 49,222, 30,214, 30,203, 87,220, - 65,183,110,125,224,234, 42,192,250,117,199,159,106, 52,204, 30, 11,178,241,155,223,126,251,205, 91,171,213,162,188,188,156,179, -181,181, 37, 74, 74,170,103,180, 54,164,104,169,213,106, 73, 99,134, 30,220, 75, 91, 83,174,226,202,184,202,132, 17,165,116, 66, -135,126,131,115, 49, 48,234, 3,156,143,255, 5,151,206, 93,128, 51,255, 89, 22,100,170, 51,197, 89,197, 74,121,149,255,182,192, -206, 83,121,207,171,206,109,155,241,118, 58,207,203,139,141, 91,240,131,178,220, 20,209, 2, 64,148,166,238, 61,113,148,195,219, -221, 35,186,181, 13,105,225, 37, 42, 43, 46,226,126, 61,126, 38,153,202, 58,124,178, 14,193,226,204, 16,245,229,209,209,209, 95, -213,124,223,181,120,241,226,169,177,177,177,110, 5, 5, 5,198, 49, 90, 69,197,165,151,186, 15,157,193,148,148, 87,232,119,174, -255,114,148, 84, 34, 22, 45,142,221,249,187,129,135,155,141,217,165, 89,118,203,123,179,151,204,202,120,148,208,172,165, 84,132, -227, 95, 46, 69,226,111,151, 97, 32,133,248,199,133, 91,208, 81, 12,202,139, 75,112,113,202,103,176,245,112,194,214,223, 15, 23, -178, 44,251,131,181,169,177,194,138,255, 93, 52,198, 69, 8,130,104, 40,198, 94, 97, 3,191,221, 49,117, 93, 35,118,254, 14, 52, - 26, 21,222,162, 41,120,197,197,197, 69, 87,175,222,194,239,241,223,224, 74,252, 55, 72, 73, 72, 68,126,158, 30,121,133, 90,216, -219,219,223, 48,113,105,253,200,177,156, 90,173, 30,185,120,201, 87, 5, 18,169, 13,122,247,239, 15, 79, 55,119,216, 8, 5,224, -209, 44,120,132, 0,149, 10, 71,164, 39,169, 49,127,231,222,162, 74,181,122,100, 3,141,196,128,198, 72, 6, 65, 16, 16,219,219, - 65,100,107, 7,177,157,253, 75,110, 68,137,189, 61, 36,118,246,224,139, 68, 13, 13,134,127,197,102,101,101,229,187,163, 70,141, - 42,171,168,168,192,212,169, 83,113,229,202,149,132,115,231,206,217, 39, 37, 37, 73, 21, 10, 69, 91, 0,131, 0,108, 55, 65,178, - 94,178, 89, 86,150,169,226,104,221,152,152,175, 62,215,104,105, 23,140,158,116, 16, 50, 50, 23, 52,195,130, 3,224,237, 44, 66, -143, 1, 43, 80,164,239,142,131,219, 86,170, 89, 74, 59,190, 94, 12,173,151,108,114, 28,199,121,120,120,188,146, 7, 23, 46, 92, -192,232, 81,239, 98,240,136,225,112,107,229, 7,247, 1,111, 97,240,212,127, 96,219,182,109, 32, 73, 18,174,174,174,245, 27, 94, -163,205,221,247, 33,216,255, 0,196,254, 7, 32,118, 37,128, 15, 96,226,222,189,123,191,237,216,177,227,229,107,215,174,173, 1, - 48,166,238,127,213,193,178,122,106, 86, 67,101,180,104,214,172, 89,154,140,140, 12,200,100, 50,208, 52,141,107,215,174, 97,235, -214,173, 88,187,118, 45, 18, 18, 18,224,226,226,130, 54,109,218, 64,167,211,225,206,157, 59, 26, 0,139, 76,216,100, 21, 10,250, -221, 77,155, 98, 75,162,162,122, 97,231,206,205,240,244,236, 14, 1,223, 19,124,129, 27,100,182, 1,248,233,199,111,241,230,155, -157,112,226,248,161,210,226, 18,250, 93, 0,180, 5,207,146,246,214,173, 91,216,182,109, 27, 70,141, 26,149, 55,122,244,104,166, -162,162,194,168,104,113, 28, 7,142,227,176,172,102,140,153, 78,167, 19, 55,102,243,163,249,201,121, 95,174, 76, 89, 94, 88,144, - 23,126,229,242,141,113,151,206, 93,192,211,140, 75,184,116,238, 2,254,184,116, 61,186,176, 32, 47,188, 83, 88, 59,225,200,169, -211,191,216,125,228, 48,207,214,222, 11,187,143, 28,230,141,157,241,249,202, 46,131,251, 45, 50,247,204,215,148, 35,247,255,216, -187,238,184, 40,174,182,123,102,182, 87, 96,233, 44,160, 2, 10, 34,130, 64, 64,196, 22, 81, 19, 99,175, 88, 98,143, 45,177, 37, -198, 24, 53,154,216, 53,190, 38,198,150, 88, 98,111,177, 96, 84, 52,246,222, 21, 27, 42, 10,210,123,135,133, 93,182,206,204,247, - 7, 37,168,148, 93, 52,121,147,247,219,243,251,141,235, 14,187,103,239,189, 51,115,239,185,207,125,238,243,148,230,100,207, 89, -182,106, 93,169, 65,167, 38,255,179,102, 67, 70, 89,110,230, 55,213,238, 75,166,190,251,179,172,172,108,147, 90,173,150,171,213, -106,185, 70,163,249, 38, 41, 41,169,227,151, 95,126,153, 75, 81, 84,149,181, 52,247,233,177,155, 49,215,118, 44,179,183,149, 9, -219, 6,183,108,254,227,166, 67,151, 82, 82,179,247, 84,139,161, 85, 83, 57,213,165,101,234,129,253, 6,140, 80, 22, 21,106, 16, -250,249,108,208, 2, 9, 52, 20,160,103, 88, 48, 16,108, 60, 94,242, 35,132,214, 82,236, 77,140, 82, 21,235,117, 3,241,106, 12, -173,186,234,254, 54, 48,115,154, 57,205,156,255, 76,206,127, 51,156,240,106,174, 67,167, 87, 44, 90,245,109,169,116,118,118,238, -216,183, 79, 87,116,234, 53, 15, 12,195, 32, 38,106, 37, 10,115,159,195,217,145,143,248, 20, 69, 40,128,203, 38, 20, 38, 37, 41, - 53,181,205,244,111,230, 69,132,127,216,165,133,175,155, 27,191, 73,147,198, 16,219,219, 35, 47, 47, 23,215,110, 61,213, 47,221, -119, 48,186, 66,100, 25,181, 48, 73,211,116,185,147, 59,128, 46,211,191, 6,193, 98, 1, 21, 97, 28, 42, 7, 70,183,224,182, 32, -216,108, 80, 12, 13,141, 70, 99,204,110,185,180,151, 47, 95, 14, 28, 62,124,248,249,200,200, 72,178, 91,183,110, 1, 71,142, 28, -121,155,156,121, 80,230,196, 94, 4,208,107,233,156,137,191,181,233,220,207,194,179,101, 16, 55,168, 9, 11, 58, 61,129,140,244, -100, 68, 70,220,209, 61,189,125, 90,193, 24,212, 67, 84,121,177, 23,235,226,210,233,116, 41,205,154, 53,115,216,184,113, 99,149, - 51, 60, 69, 81,200,203,203,195,205,155, 55,225, 23, 28,130, 22, 99, 62, 65,110,110, 46,214,174, 93,139, 70,141, 26,161,119,239, -222, 40, 40, 40,128,193, 96, 48,118,193,151, 2,112,186,226,192,107, 34,139,168, 72, 1, 84,231,178,161,135,135, 7, 79,173, 86, - 7, 48, 12,195, 34, 8,226, 39,173, 86, 59,122,206,156, 57, 78,203,150, 45, 67,243,230,205,145,151,151, 7,177, 88, 12, 79, 79, - 79,228,230,230,226,206,157, 59,148, 74,165,218,136,242, 68,214,185,245,148, 47,238,206,157,196, 54,211,166,125, 22,241,253,138, -137,158,106, 77, 39,158,181,117,123, 48,140, 1,185,185, 73, 40, 81, 92,215, 45, 94,180,253,101,118,142,126, 0,128, 88, 35,235, -252,221,148, 41, 83, 0, 64, 0, 96, 94,124,124,252,131, 22, 45, 90,120,214,102,209, 50, 6,171, 15,165,171, 1,236, 27,216, 77, -254,133, 34,239,145,167, 53, 59, 41,177,141, 47,189,118,245,161,116,181,133, 92,185, 36, 47,233,242,139, 76,229,233,141, 59, 35, - 14,179, 70,245, 31, 72,185, 72, 98,103, 11,236,153, 67, 70, 80, 51,254,254,254,174, 4, 81,224,158,147,255,252,222,216,113, 19, - 7, 91,114,203, 78,250,187,228, 55, 37, 27, 5, 10,238,223,191,159, 8, 19,119,134, 86,224, 69,122,122,122,199, 57,115,230,156, -102, 24,230, 21,223,132,156,188,130, 11,161,189,166, 48, 69, 69,197, 15,114,159, 29, 51, 38,150,218,157, 59, 81,247,187,248,250, - 5, 30,254,126,217, 10,135, 78,211,191,100,191,184,120, 9,160,244, 72,190,124, 9, 20, 95, 75,255,120,227,108,118,177, 78,215, - 31,230,168,240,102,152,241,255,222,154, 85,151, 22,249,135,163, 39,106,113,134, 55,186, 50, 30,238,206,167,155,123, 54,249,176, -145,139, 29, 0, 32, 62, 49, 3,241,137,233,103,226, 19,210,187,213,163,120,107,219, 94, 89,149, 84,154,168, 8,225,192, 24,151, - 84,250, 21, 78, 27, 27,155,123,108, 54,219,197,148,214,160, 40, 42, 35, 47, 47, 47,208,200,114, 14,115,115,115, 91,145,156,156, - 28, 65,211,244, 23, 38,170,253, 26, 57, 43,147, 74,147,108, 94, 87,198,160,245, 3, 0,130,205, 51, 38,169,116,117, 78, 63,137, - 68,178,137,195,225, 52,170,188,142,149, 62, 88, 20, 69,177,116, 58,157,128,162, 40, 22, 0,130, 36, 73, 3,135,195, 81, 19, 4, - 97, 48, 24, 12, 41, 26,141,102, 34,254, 12, 56, 90, 87,221,235, 29,232, 43,132, 22,106,176,104,157, 3,128,216,216, 88, 47,153, - 76, 54,132, 32,136, 65, 12,195,120,151,148,148,104,230,207,159,127,255,224,193,131, 10, 55, 55,183,143,122,246,236, 73, 60,122, -244, 8,209,209,209, 76,126,126,254,161, 10, 43, 86,188,137,247, 18,201,231,179,134, 90, 91,147, 61, 25, 6,254, 96, 64, 16, 36, - 30, 23, 23,211, 39, 85, 42,106, 79,133, 96, 52,245,254,172,196,199, 77,154, 52,217,158,152,152,200,169,205,146, 90, 91,221, 95, -199,202,111, 90,206, 11,237,208, 97,224,205,171, 87,143,204, 90,250,100, 81,245,191, 77,237, 39, 27, 59,108,242,244,149,251, 54, -172,153,181,238,247,194,109,198,148, 51, 32, 32,192,131, 32,136, 33, 0,124, 25,134,105,198, 48,132,128, 32,152, 66,130, 32,158, - 0,120,164,213,106, 35,159, 62,125,154,246, 22,117,111,200, 12,183, 54,206,170,164,210,160,168, 86, 20,192, 24,153, 84,250,239, - 46,167,153,211,204,105,230,252,239,113,254,155, 49,161,134,115,198, 69,134,175, 68,124, 66,122,183,248,132,116, 52,107,214,140, -137,139,139, 51, 73,164,213, 54, 72, 83, 20,181, 95,165, 82,237,127, 27,146,252,252,252,160,191,184,241,246, 37, 38, 38,238,123, -151,132, 21, 66,106, 81,197,209, 80, 60, 46, 45, 45, 13, 49,246,195, 58,157,238,175,104, 27,162,194,154,181,176,182, 15,124,248, -225,135,201, 58,157,238, 28,128, 84,130, 32,172, 0, 20,232,116,186,211, 6,131, 33, 59, 46, 46, 46,232,199, 31,127,172,140,124, -191, 24,192,189, 6,150,131,214,104,168,189, 25, 25,212,222,191,160,142,123,181, 90,237, 12, 27, 27,155,166,106,181,154,167, 86, -171,185,213, 55, 31, 8,133,194,220,186, 28,226,171,195, 74, 74,236,224,178, 11,109,172,164,196,235, 66, 10,214,206, 56, 92,166, -140,110,110,237,140,195,198, 22,236,193,131, 7,241,254,254,254,187, 73,146,116, 99, 24,198, 1, 96, 44, 25, 6,185, 12,195,228, -177,217,236,244,167, 79,159,166,255,131, 58, 33,181,129,166, 87, 25,180,218, 63,253, 14,205,187, 11,205, 48,195,140,255, 29,212, -234,163,197, 54,149, 41, 46, 46,142, 48,183,167, 25,213,197, 86, 93,127, 76, 78, 78,214, 0,184, 81,113,188,142,123, 0,122,255, -211, 43,152,153,153, 25, 88,219,223,140, 21, 89, 64,185,207, 22, 16, 93, 99,116,246, 5,235, 10, 75,176, 46,226, 43, 83,203,246, -240,225,195, 20, 24,185,196,110,134, 25,102,152, 97,198, 95,134,183,183,104,153, 97,134, 25,102,152, 97,134, 25,102,152, 81, 35, - 54, 87, 19, 92,175, 88,183, 8,212,190,115,192,148,181,215,134,236, 62, 56,103,230, 52,115,154, 57,205,156,102, 78, 51,167,153, -243,255, 29,231,255, 42,222, 16, 89,127, 7,204, 91, 95,205,156,102, 78, 51,167,153,211,204,105,230, 52,115,254,127, 16, 89,175, - 31, 0,204, 75,135,102,152, 97,198,255, 99, 28, 60,120,208,168,164,162, 67,103,253,218, 75, 34,145,205, 47, 85, 20,175,216,191, -106,236,145,202,243,225,225,225,148,185, 21,205, 48,195, 12, 52,196, 25,222,221,221,197,135,164,232,118, 12, 67,178, 24,146,209, - 19,138,178,223,226, 11, 11, 95, 9, 59,224,234,234,106,197, 33,209,155, 96, 24, 49, 65,208, 20,205, 34,175, 39, 36,164, 61, 53, -161, 96, 60,153, 76, 54,133,203,229,118,213,106,181, 46, 36, 73,166,105, 52,154,115, 42,149,106, 61,222, 12, 92,248, 95,131,151, -151,215,176, 75,151, 46, 89,181,111,223, 94, 35, 20, 10, 13,101,101,101,236, 83,167, 78,241,187,119,239, 94,244,242,229,203, 6, -237, 72,148,203,229,157,127,253,245, 87,247,110,221,186,161, 89,179,102,202, 33, 67,134,112, 67, 67, 67,185,227,198,141, 75,200, -200,200,184, 96, 34,157, 15, 65, 16,187, 8,130, 96,209, 52, 61, 18,127,134,110,120,215, 32, 73,146,156, 72, 16, 68,127,134, 97, - 60, 8,130,136,103, 24,230, 8, 77,211,117, 5,110,173, 11, 3, 1,244, 32, 73, 50, 16, 0,104,154,190, 15,224, 36, 96,252,206, -187,191,147, 83, 36, 18, 5, 0,128, 74,165,122,240,174, 56, 9,130, 8, 0, 0,134, 97, 26,202, 57, 70, 40, 20,142, 7,128,178, -178,178, 45, 48, 34, 29,212,235, 96, 54,122, 51,129, 11, 99, 0, 0,247,191,243, 6, 0,152,242,158,152, 20, 67,152,242, 91, 53, -241,153,194, 81, 3,122, 12, 31, 62,124,217,158, 61,123,190, 3,112,244,175,184,241, 29, 29, 93,215,255,176,102,179,252,243, 41, -159,172, 64,121, 70,136,186, 31, 72,224, 3, 30,139,213, 71, 75, 81, 87,159, 2, 7, 1,176,173,173,173,135,241,120,188,142, 90, -173,214,137,205,102,103,106,181,218, 43,197,197,197,251, 80, 71, 6, 4,163,219,245, 25,100, 58, 21, 28, 9,250,207, 60,111, 12, - 9, 13, 87,132, 44,162, 5, 10,255, 1,221, 40, 9, 96,122, 69, 93,183,162,246,112, 30,117,117, 62,159,203,229,242,254, 10,133, - 66,197, 98,177, 24,148,239,122, 46,255,167,252,239, 4, 77,211, 57, 5, 5, 5, 35,235,227, 18, 55, 66,115,158,152,216, 69,233, - 81,102,208, 48,159, 42, 83, 17, 35,113, 69, 91, 6, 24,201, 0,110, 36,139,180,163,105, 58, 19,192, 5,210,128,227,165, 25,136, -251,135, 14,238,141, 43,218,181, 73,197,123, 14, 0, 7, 0,143, 0,124, 14,160,212,172,127,254, 54,188,238, 12,127, 2, 64,102, -149,208,170, 22,238,190, 83,175, 94,189, 46,187,187,187,248, 12,234, 55, 96,217,164,137,159, 18, 44, 22,137,232, 39, 79,216, 31, -143, 28,243,161, 76, 38,115,150,104, 52, 45, 64, 16,180, 74, 32,136, 86, 40,138,211, 15,238,219, 35,245,110,222,156,162, 40, 26, - 27, 55,253,210,253,208,239, 17,115,141, 20, 91, 94,142,142,142,187,102,207,158,237,216,167, 79, 31,150,163,163, 35,146,146,146, -172,246,239,223,223,124,221,186,117,131, 11, 11, 11, 71, 2,120,209,128,202,118,112,180, 38, 63,148, 10,137, 46, 40,161, 80,162, -199,249,172, 50,156, 1,112,181,161,173,167, 82,169,166,170, 84,170,144,224,224, 96,102,235,214,173,196,232,209,163, 25,130, 32, -136,178,178,178, 29, 0, 26, 36,180,196, 98,241,134,110,221,186,121,122,122,122,198,191,124,249,178,199,129, 3, 7, 78,142, 26, - 53,202, 67, 44, 22,199, 2,240, 50,145,110,123,126,126,190,127, 89, 89, 25, 92, 92, 92,182, 2,120,239, 47,184,137, 8, 22,139, -117,196,217,217,153, 89,185,114,229, 81,127,127,127,135,130,130, 2,195, 87, 95,125,213,245,214,173, 91,221, 41,138,234, 99,130, -216,146, 17, 4,177,201,193,193,193,118,197,138, 21,113, 65, 65, 65,143,248,124, 62, 47, 54, 54, 86, 52, 99,198,140, 47, 94,188, -120, 49,152, 97,152,137,128, 73, 3,132,140, 32,136, 77,114,185,220,118,217,178,101, 73,129,129,129,209, 92, 46,151, 27, 27, 27, - 43,254,250,235,175, 63,143,137,137,105, 16, 39, 73,146, 27, 67, 66, 66,100,223,125,247,221,179,230,205,155,223, 96,177, 88,188, -180,180, 52,114,193,130, 5, 83,206,158, 61, 27, 78,211,244,164,134,148,211,222,222, 94,182, 96,193,130,103,161,161,161,183,184, - 92, 46,247,249,243,231,228,236,217,179,167,196,197,197, 25, 93, 78,107,107,235, 48,130, 32, 54,103,101,101,177, 1,192,201,201, -169,181,133,133,197,186,234, 57, 45, 43, 67, 81,232,245,250, 18,181, 90, 61,188,160,160,160,198, 64,184,163,231,172,237, 13, 0, -235,116,149,239,203, 95,235,123, 15,108, 60,110, 76,165, 3, 28,203,227,226,253,160, 28,219, 15, 0,134, 85,164, 10,255, 65, 9, -176,217,108, 58,192,241,115,230, 65,150, 73, 33, 99,250,118,238,220,121,193,133, 11, 23,126,233,212,169,211,215,187,119,239,182, - 79, 77, 77,253,254,234,213,171,174, 67,135, 14, 29,125,254,252,249,229,121,121,121,135,222,213,205,207,227,242,249, 4, 73, 64, - 40, 16, 89, 24,243,121, 14, 73,246,186,209,183,239,248, 45,207,159, 7,174,139,137,113, 87, 58, 57,133, 76,155, 54,205, 97,192, -128, 1,164,171,171, 43,226,226,226,108,118,239,222,221, 98,203,150, 45,253,139,138,138,166, 3, 72,126, 27,145,165, 44,130,159, - 70,139, 64,134,129, 85,213, 3, 75,160,136,175,195,125,230, 25, 30,255, 3,196,214,183,219,183,111,255, 46, 46, 46, 14,203,151, - 47, 7,128,245, 38,126,127, 70,223,190,125,123, 70, 68, 68, 8, 15, 30, 60, 40, 12, 14, 14,134,163,163, 35, 42, 38, 83, 85,129, -169,221,221,221,141,107, 51, 26, 63,252,116,114,236,123,209, 5,127, 96,195,128,172,229, 66, 23, 24,218,246,245,236,223,107,116, - 32, 44,237, 68, 16, 72,216, 40,202, 87,248, 62,191,159,218,237,226,129,184,239,227,162,114, 87, 40, 83,240, 45,106,143,201,247, - 95,129,141,141,205,214,132,132,132, 48,177, 88,252,202,249,248,248,248, 0, 79, 79,207, 98, 0, 95,154, 42,220,236,236,236,246, -210, 52,173,201,207,207,255, 4, 0,164, 82,233, 30,177, 88, 44,203,204,204,156,251, 87, 77,100, 42,241,186, 22,249,151, 91,180, -170,252,181,106,202,117, 72,144, 20,221,110,210,196, 79,137, 33,195,134,102,197,197, 39,208,108, 14,111,216,169,211,167, 69, 62, - 62, 62,164,102,253,122, 24,114,115,161,255,226,139,182,231,206,157,211,135, 15, 27, 81,198, 97, 17,219, 61,220,221, 68,191,237, -219,239, 24,113,248, 80, 59, 0,245, 9, 45,158,163,163,227,174, 75,151, 46, 57,187,187,187,163,168,168, 8, 73, 73, 73, 80, 42, -149, 24, 60,120, 48,167, 93,187,118,206,131, 6, 13,218, 85, 92, 92,220,222, 4,203,150, 67, 51, 23,118,228,196, 49, 3,188,186, -127,216, 78,236,236,218, 20, 76,150, 26,169, 47, 99,130, 35, 47,221,154,182,253,240,201, 23,113,197, 76, 47,212,156, 27,169, 78, -228,229,229,205,234,223,191,255,225,176,176, 48, 59, 62,159, 15,185, 92, 78,244,233,211, 39, 39, 35, 35, 99, 97,131, 85, 75, 69, - 10, 27,146, 36,169,234,175, 53,164, 7, 50, 6, 46, 50,153, 12, 50,153, 12, 0,156,223,118,230,105,101,101,181, 94, 42,149, 14, - 82, 40, 20,101, 36, 73, 50, 4, 65, 48, 90,173, 86, 40,147,201, 30, 62,139,121, 33,215,104, 52,205, 86,253,180,101, 77,231, 14, -254, 22,103,207,158,197,128, 1, 3,152, 51,103,206, 76, 52, 54, 79, 29, 65, 16,155,250,247,239,175,154, 63,127,190, 58, 46, 62, -201,249,217,139,120, 66, 44,224,209,182,182,182,156, 59,119,238,176, 87,175, 94, 45, 88,176, 96,193, 38,134, 97, 6,153,208,158, -155,134, 14, 29,170,155, 57,115,102,230,243,184, 4,251,199,207,226, 24,137,128, 99,176,181,181, 97,221,186,117,139,110, 8, 39, - 73,146, 27,103,205,154,165,152, 56,113, 98, 97,126, 65,177, 99,161,162,148,225,115, 88,122, 71, 71, 71,246,209,163, 71, 53,123, -247,238, 37,199,143, 31,191,145,166,233,112, 19,218,119, 99,159, 62,125, 74,102,207,158, 93, 20, 27,159,232,248,248,233, 11,136, -248, 28,189,131,131, 61,235,238,221,187,186, 85,171, 86,145, 75,150, 44, 49,170,156, 98,177,120,231,129, 3, 7,216, 71,143,150, -247,125, 55,111,222, 36, 61, 60, 60, 68,213, 63, 83,166,214,128, 36,128,188,188, 60, 81,104,104,232, 78, 0,111, 4,247, 13, 92, - 24,131,209,115,128,169, 83,167,102,154,122,179, 4, 58, 77,171,247, 51,212, 47,222,204,106,213,216,126,108, 54,155, 30, 63,126, -124,214,235,127, 87,171,213, 4,128, 62,248,222,120,177,213,163, 71,143,111, 78,156, 56,209,116,247,238,221, 63,238,221,187, 87, - 11, 0, 2,129,192,118,255,254,253,203, 7, 15, 30,140,193,131, 7,207, 63,116,232,208, 59, 19, 90, 20, 67,233, 0,128, 47,224, -243, 99, 98, 98, 8,111,111,239, 58, 35,238,235,104,250,222,150,231,207,131, 62,243,246, 14, 46,160,233,102,220,238,221, 75,103, -204,152,145,167, 80, 40,144,148,148, 4,157, 78,135,209,163, 71,179, 58,117,234, 36, 31, 60,120,240,218,146,146,146,129, 0,116, - 70,220,147,171,156,157,157, 39, 20, 23, 23,151, 86, 90,117,218,143,164,216, 29, 3, 12,252, 86,205,244, 60, 46,203,192,237,253, - 5, 77,156, 89, 79, 40,189,221,113, 13, 0,184, 42,228,154, 56, 25,168, 17, 22, 46,112,167, 56, 88, 98,231, 34,236,156,155, 92, -182, 72,153, 82,167, 88, 26, 40, 22,139,251, 41,149,202, 67, 21,131,179, 87,175, 94,189,112,235,214, 45, 0,104, 87, 33,180, 58, -147, 36,249, 49, 77,211,191, 2,168, 43,149,219,180,190,125,251,126, 16, 17, 17, 33, 5,128, 67,135, 14, 65,175,215,195,195,195, - 3, 92, 46, 23, 60, 30, 15, 28, 14,167, 42, 59,136,145,112,178,179,179,133,173, 37, 7, 50,107,113,247,175,127,238,203,110,228, - 99,129, 28,234, 9, 10,152, 34, 24, 24, 13,184, 54, 98, 52,239,102,133,192, 15, 59,147,199, 55, 70,207, 61,190,225, 89,144,138, - 68,111, 36, 67,243, 79, 25,217, 73,146,228, 63,122,244, 8,114,185,252,149,243, 44, 22, 11, 0, 58, 54,128,114,126,124,124,124, -104, 84, 84, 20,194,194,194,230,251,249,249,125,116,249,242,101,199,252,252,124,132,133,133,173, 77, 75, 75, 59,250, 87,215,169, -186, 22,249, 95, 49,117,145,175, 41,201, 78,229,179, 96,146,197, 98,145, 72,136, 79,210,135,133,117, 25,149,146,146, 34, 9, 9, - 9, 33, 57, 28, 14,148, 23, 46, 64,125,247, 46, 36, 18, 9,250,247,239,207,185,114,229,138,133,133,196, 98, 92, 98, 66, 98, 9, -139, 69,130, 97,200,122,125, 30,100, 50,217,148,185,115,231, 58,122,122,122,194, 96, 48, 84, 69, 52, 55, 24, 12, 72, 77, 77,133, - 68, 34,193,200,145, 35,237, 69, 34,209, 20, 35,235,209,196,203,195,254,254,165,147,155,222,155, 49,169,135,216, 75,116, 22,226, -212,233,144, 28,250, 12, 45, 50, 78, 97,118,191, 16,241,153, 13,243, 3,155,202,173,239, 87, 51,177, 26, 13,141, 70,115, 45, 58, - 58,122,220,229,203,151,105, 0,184,120,241, 34,243,236,217,179,137,111, 51, 11,165,105, 26, 69, 69, 69,160,105,154, 85,241,190, -242,245,191,122, 63, 88, 88, 88,108,252,232,163,143,134, 38, 39, 39, 11,255,248,227, 15,155,148,148, 20,219,196,196, 68, 59, 47, - 47, 47,246,242,229,203, 79,168, 53, 58,150,158, 98,180, 6, 74, 95,146,249,228, 73,124, 97,118,246,253,109,219,182,149, 17, 4, -209,223,200,223, 24,232,228,228,100, 51,103,206, 28, 16, 28, 81,235,230, 45,252, 60, 89, 28,161, 37,201,225, 89,150,149,169,169, -132,132,132,212, 57,115,230,184,249,251,251,203, 81,190,188,102, 20,167, 92, 46,183,157, 57,115, 38,216,124,105, 64, 43,255,192, -166, 60,190, 88,202,226, 8,165, 33, 33, 33,157,226,227,227, 51,102,207,158,237, 20, 28, 28,108, 18,103,112,112,176,108,252,248, -241, 6,129, 80, 26,234,238,238,209,162, 85,203, 22, 61,189,188,188,250,177,217,108, 67,110,110,110,242,200,145, 35,157,122,247, -238,237, 96, 10,167,189,189,189,108,246,236,217, 6,215,198, 30,221,186,125,240, 97, 27,174, 80,106,201,230,137,173, 84, 42, 53, -245,252,249,243,228,121,243,230, 57, 5, 4, 4,216, 27,195,169, 82,169, 56,182,182,182,240,245,245,133,143,135, 7,138,139,139, - 17, 17, 17,129,237,219,183,227,215, 95,127,197,190,125,251, 16,212,254, 67, 72,165, 82,100,100,100, 64,161, 80,112,254,238, 27, -138,250,197,155, 89,167,157,208,231,211, 79, 63,205, 24, 63,126,124,150, 80, 40,164, 95, 63,172,173,173,169,225,195,135,103,143, -252,250,167, 62,149, 75,139,245, 88,178, 30,157, 60,121,242,229,238,221,187,225,227,227,131,110,221,186,241, 0, 96,202,148, 41, -188,193,131, 7,227,192,129, 3, 56,116,232,208, 83, 79, 79,207,235, 0,250, 26, 83,206,145, 35, 71,182, 15, 15, 15,191, 26, 30, - 30,254, 96,200,144, 33,155, 39, 78,156,248,202,200,149,153,145,118, 79,171,213,194, 63, 48, 88,180,120,235,237,225,245,241, 61, - 3,118,111,142,137,217,190,226,201,147,228,249, 62, 62, 86,141, 19, 19,173,119,172, 90,101, 91,153,164, 91,175,215, 35, 53, 53, - 21, 50,153, 12,195,135, 15,183,229,243,249, 35,141, 40,230,234,190,125,251,142, 73, 73, 73,145,108,217,178,197,233,193,131, 7, -242,204,204, 76,167,243,231, 78,219,125,245,229, 20,169,165,132,199,203,200,101, 8, 0, 72,204,128, 56, 38, 1,237, 25, 6, 86, -213,151, 19, 27, 4, 39, 8,133, 46, 88,215,180,189,213,139,153, 7, 2,134,204,142, 12,180,149, 57,241,231,212,241,141, 86, 43, - 87,174, 60,120,252,248,241, 97,237,219,183, 63, 12, 64, 88,195, 71,236,253,209, 0, 0, 32, 0, 73, 68, 65, 84,103, 4, 65, 65, - 65, 17, 7, 14, 28, 24,211,161, 67,135,107, 0,124,107,157, 69,186,184,244,255,253,247,223,109, 42,223,219,218,218, 66, 32, 16, -188, 33,178,184, 92, 46, 72,146, 52,185,122, 75,247, 15, 99, 91,183,208, 32,186,240, 36, 14,172,124,132,149,221,159,211,203,218, - 38,106,214,143,140,193,153, 3,143,144,131, 71,232,241, 89, 83, 12,155,231,223, 85, 68, 97,201, 63,105, 0,207,205,205,253,184, - 99,199,142, 7,123,244,232,161,137,138,138, 66,110,110, 46,156,157,171,230,218, 89, 13,160,180, 22,137, 68,112,117,117,133,167, -167,231,176, 43, 87,174, 56,234,245,122, 36, 38, 38, 34, 39, 39,231,254,223, 81,167,234, 90,228, 95,134,215, 29,225, 79,188, 33, -180, 42,114, 11, 93, 2, 0,134, 32,148,143,162,163, 57, 44, 30,111,196,158,189,123,249, 92, 46, 23,201,201,201,120,250,244, 41, - 84,231,207,163,236,198, 13,100,103,103,163,180,180, 20, 14, 14, 14,216,180,117,171, 88, 75, 49, 99,159,191,120,193, 98, 72,166, -186,191, 65,141, 91, 60,249,124,126,215, 1, 3, 6,212, 42,200, 50, 50, 50,208,163, 71, 15, 14,139,197,170,105, 87,195,235,156, -132,220,142, 56,126,254,240, 98, 39, 39,222, 83, 32,110, 6, 80,114, 31, 96, 52,128, 65, 11,164, 63, 6, 78, 44, 68,227,210, 24, -226,244,226, 81,142,206, 34,246,241, 26,148,114,125, 91, 81, 61,188,189,189,127, 29, 49, 98, 4, 9, 0,157, 59,119, 38,188,189, -189, 55, 3,240,168,227, 59,231,234, 25, 36,111, 21, 22, 22, 98,240,224,193, 54, 77,155, 54, 61, 55,120,240, 96,155,202,243, 13, -229,172,180, 38,251,248,248,228, 11, 4,130,125,128, 81, 29,108, 21,167,149,149,213,250, 30, 61,122, 12,218,187,119, 47, 23, 0, - 46, 93,186,132,227,199,143,227,201,147, 39,136,141,141,165, 3, 3, 3,237,126,250,245,224,198,245,191,236, 92,221,175,157,191, -188, 83,235,192, 22,146,210,194, 82, 7, 7,135,118, 12,195,120, 24, 89,206, 30, 11, 23, 46,124,250,236,101,178, 37,201,230,176, -185, 28, 54,223,194, 66,236, 32,147,138, 93,172, 69, 2,103, 62, 73, 72, 84, 42, 85,214,190,125,251,104, 0, 61,140,229, 92,188, -120,113,194,179,184,100, 43,130,100,179, 57,108, 14, 87, 34, 17, 89,117,239, 22, 22, 12, 0, 92, 48, 92,133, 66,145,189,125,251, -118,157, 41,156,223,125,247, 93,116, 65, 81,169,140,205,225,112,216,108, 86, 85, 91,138,133, 66, 59, 17,159,207,211,104, 52,233, -107,214,172, 41, 51,133,115,225,194,133, 79,159,191, 76,177, 38, 9,130, 69, 16, 36,219, 66, 42,182,177,177, 20,217,217, 73,132, -182, 34, 54,139,167, 80, 40,210,119,237,218,101, 20,167, 78,167,227,102,103,103,227,217,179,103,112, 13, 14,198,217,179,103,209, -168, 81, 35, 12, 30, 60, 24, 67,135, 14,133, 80, 40, 68,231, 80, 63,204,153, 51, 7, 47, 95,190,132, 78,167,227,215,196, 89,233, - 39,245, 58,228,114,121, 84,125, 55,207,107,223,125,165,156, 1,142, 96,214,105, 39,244,169, 46,176,106,227,183,182,182,166,106, -178,118,189,206,217,163, 71,143,111,206,159, 63,223,116,215,174, 93,125, 70,142, 28,121,109,215,174, 93,104,211,166, 13,158, 61, -123, 6, 55, 55, 55,236,216,177, 3, 67,135, 14,189,182,118,237,218, 62, 81, 81, 81,254,238,238,238,115,235,227, 28, 50,100,200, -228,128,128,128, 11, 89, 89, 89,161, 5, 5, 5,190, 17, 17, 17, 99,251,247,239,159, 48,108,216,176, 46, 85,130, 81,175,223,123, -226,216, 97,244,236, 51, 0,205, 91,250,110, 28, 61,119,183, 95, 61,207, 38,243, 4,216,188, 61, 51, 51,119,175, 90,173, 26,204, -225,136, 68,183,111, 91, 31,250,229, 23,219,234,153, 5,210,211,211,209,187,119,111, 14,151,203,237, 80, 79, 57, 87,246,235,215, -111,112, 68, 68,132,172,210,170,115,227,198, 13, 60,126,252, 24, 73, 73, 73, 40, 42, 42, 66,151,137,165,248,116,121, 57,247,167, -203, 25,124, 56,133, 17, 55,176, 15,169,130,176, 17, 28,109, 44,216,215,199,174,105, 62,101,194, 70, 31,182,196,154,131, 61, 95, -199, 34, 47, 81,115,168, 22, 78, 34, 52, 52,116,119,120,120, 56,161,213,106,161,213,106,181, 0,106,140,234,235,236,236, 44,104, -213,170, 21, 38, 78,156, 72, 90, 88, 88,172,173,173,156, 74,165, 82,115,242,228, 73,140, 28, 57, 18,211,167, 79, 71,179,102,205, - 32,147,201,192,225,112,176,115,247,111,182, 67,199, 78,242,122,175,125, 71,127,159,247,218,180, 42,209,176,130, 57, 66,217,248, - 90,172, 33, 53,214,189,212, 62, 10,209,137, 55,177,174, 79, 26,125,103,135,170,244,171,143,255, 19,243,252,114,246,147,185,225, -155,163,153,155,109,243,118,127,158,130,108,253, 51,116, 24,220, 24,238, 1,178, 47,196,174,240,110,104,123, 26, 9,147, 56,253, -252,252,218,223,185,115,135,223,177, 99, 71, 36, 39, 39,131,195,169,154, 79, 81,111, 83,206,133, 11, 23,242,213,106, 53, 30, 62, -124,136, 81,163, 70,165,235,116,186, 47,222,166,156,166, 88,180, 42,181,200,191, 12,155, 95, 59, 50,107,179,104, 45, 4, 0, 61, -141,227, 35, 70,141, 85, 69, 70, 70,138,120, 60, 30,146,147,147,145,153,153,137,157,219,183, 83,157,237,237, 75,186, 57, 59, 43, -118,110,223,206,104,181, 90, 48, 12, 3,111,111,111, 12, 26, 52, 72, 56,112,240,176, 28, 66, 81,246,155, 17,203, 60, 78,149,235, -235, 99,199,142,125,227,239, 95,125,245, 21, 44, 44, 44, 64, 16,132,163, 17,149, 11,159,182,176,159,139,204,221, 42,155,201,218, - 89, 0,150, 0, 96, 75, 1,182, 5, 32,176, 4,248, 82,128, 39,130, 38,234, 66, 1,201,116, 75, 26,208,225, 19,103, 0,166, 44, -245, 64, 46,151,207,191,112,225,130, 93, 84, 84, 20,163, 80, 40,144,153,153,201, 44, 91,182,204, 78, 46,151,207,111,232, 21,201, -200,200, 88,220,179,103,207,236, 81,163, 70, 89,158, 58,117,202,117,212,168, 81,150, 61,123,246,204,206,200,200, 88,252, 54, 87, -154,203,229,178,158, 60,121, 98,189,100,201,146,161, 0,238,181,108,217, 50,223,217,217,249, 30,202,157, 38,235,132, 84, 42,173, - 18, 89,149,214, 53, 54,155, 13, 14,135, 3,185, 92,174, 45, 40, 40,160, 58,188,231, 33,244,182, 36,245,114, 62, 87,104, 45, 20, -184, 72, 45, 44, 67,242,243,243, 31, 17, 4, 17,111,228, 18, 95, 64,235,214,173, 57, 20,195,161, 63, 29,209, 89, 62,101, 76,152, -253,207, 75,198, 55, 90,179,120,130,243,202, 5,227,188, 23,207, 26, 30, 70,210,180,218,205,205,205,177,210,161,221, 8,243,121, - 96, 80, 80, 16,155, 6, 7,207, 94, 36,101, 39,167,165,151,124,208, 41,180,202,114,233, 19, 16,216,205,206,206,174,163,183,183, -119, 16, 65, 16, 70,109, 73, 22, 10,133, 1,205,155, 55,103,147, 44, 14, 97, 35,147,186, 74, 37, 66,135,170, 37, 20, 43,171,182, -214,118,118,225, 36,195, 20, 59, 57, 57,217, 11,133,194, 0, 19,234,206,166,193,133,131,189,181,165,157,173,149,164, 91, 88,187, -102,161,109, 67,189,252, 66,218,132,182,124, 47,104, 32, 97, 48, 40, 60, 60, 60,236, 43,157,228,235,177,180, 10,246,238,221,139, - 37, 75,150,160, 85,227,198,112,118,118,134,189,189, 61,110,220,184,129, 59,119,238, 64, 38,147, 33, 39, 39, 7,171, 86,173,194, -145, 35, 71,160,211,233,164,166,222, 79,198,136,173,186, 96, 48, 24,200,215, 5, 86,109,252, 66,161,144,174,116,146,175, 13, 39, - 79,158,220, 93,105,201,250,252,243,207,219,255,244,211, 79,215, 98, 98, 98, 32,145, 72,112,231,206, 29,140, 29, 59,246,218,218, -181,107,219, 79,154, 52, 9,219,183,111, 71, 66, 66,194,214,186,248,134, 12, 25,178, 96,220,184,113,107, 46, 95,190, 76, 58, 56, - 56, 64, 38,147,161, 95,191,126,216,186,117, 43,219, 96, 48,108, 11, 15, 15,127, 16, 30, 30,254,128, 74, 61,243,205,193, 95,151, -221,136,126,244, 0,147,167,205,228,105, 13,250,217, 70, 84,159, 41,147, 72, 74, 12, 29, 59, 22, 28,208,235, 85, 67,184, 92,145, -229,131, 7,214,199,183,109,171, 18, 91,115,230,204,129,165,165, 37, 80,238,192,140, 58,172, 58, 19,142, 28, 57, 82,213, 31,218, -216,216,128,199,227,129,203,229,130,195,225,128,197, 98,225,220, 70, 49,126,153, 83,174, 47,126,153, 67,224,204,122, 66,249, 54, -215, 78,228, 12, 95,153, 3,239,193,103, 59, 90,250,251,118,177,193,141,253, 89, 88,214, 51, 42,237,206,129,220, 25,234, 28,252, - 80,203,215,222,251,234,171,175,124,114,114,114,112,247,238, 93,220,189,123,183, 54, 11,144,250,216,177, 99,223,151,150,150,194, -221,221, 29,125,251,246,237, 8, 32,184,150,231, 6, 65, 65, 65,232,221,187, 55,194,194,194,208,170, 85, 43,104,117, 6, 78,248, -136, 9,205,159, 36,228, 58, 47, 91,181, 76,116,225, 98, 4,121,237,218,101,214,238,195,103, 44, 67,195, 62, 92,195,149, 58,221, -130,208,198,201,152,122,170,168,124, 4, 56,117,199,230,243,211,200,117,151, 70, 73,118, 30, 95,231, 33,149, 74,137,251,119, 31, -232,119,110, 56,144,226, 43,238,155,115,107,127, 62, 84, 68, 22,186,140,113, 39,105, 96,208, 63,101,100, 23, 8, 4, 63, 93,190, -124,217, 81,167,211, 33, 58, 58, 26,211,167, 79, 87,191, 37,101,149, 1,196,213,213, 21,151, 46, 93,194,240,225,195,213,217,217, -217, 55,255,174, 58, 85,215, 34,255, 43, 96, 87, 83,144, 85, 72, 77, 77, 45,146,201,100,206,205,155, 55, 39,181, 90,109,249,146, -196,161, 67,212,175,219,182,157, 80,171,213,211, 0,112,215,255,252,243, 70,103, 23,151,176, 17, 35, 71, 18,122,189, 30, 61,123, -246,228, 69, 70, 70,218,196,231,228,148, 24, 49,224,188,242,123,163, 71,143,198, 79, 63,253, 4, 0,152, 58,117,106,149,105,157, - 48,194, 97, 73, 98,137, 30,221,122, 5, 89,164,138,215, 89,232,218,234, 75,155,188,148,222, 18,151, 10,131, 64,242,216, 16,176, - 64,235,244,134,216,156,254,247, 94,198,182,240, 17, 22,228,187,117,109,249, 62,126, 61,187,171,135,138, 82, 31, 48,186,195, 17, -137, 90, 75, 36, 18,220,187,119,175, 32, 40, 40,168,136, 97, 24,203,197,139, 23,219,138, 68,162,214,111,209,246,137, 47, 94,188, -232,216,174, 93,187, 41, 36, 73,118,165,105,250, 92,118,118,246,122, 0,137, 70,126,255, 83, 0,223, 1,168,154, 89,106,181, 90, -144, 36, 9,134, 97, 48,100,200, 16,204,153, 51,199,231,241,227,199,184,112,225,130,117,215,174, 93,111, 1, 40, 2,240, 9,128, - 26,173,102, 10,133,162,236,206,157, 59,194, 11, 23, 46,128,166,105, 88, 91, 91,195,194,194, 2,124, 62, 31,253,250,245,147,204, -158, 61,187,203,233,211,167,115, 20, 77, 26,177, 4,153,233, 74,190, 68, 34,133,163,115,135, 73,195, 62,142, 97, 24,230,136, 9, -157, 3, 79,200, 54,168, 9, 74, 67,174,252,118, 45, 41,226,114, 9, 1,151, 13, 62,173,194, 55,223, 47, 37,184, 12,197,134,137, -235,243, 92, 46,151, 43,229, 67,203,226,177,244, 34, 2,204,187,120, 56, 88, 44, 22, 79,192,173,221, 31,131, 67,146, 36, 73,146, - 92, 0, 70, 39,237,227,243,249, 92, 41,159,169,149, 83,200, 34, 88, 4, 65,240, 80,203, 78,180, 0, 71, 48,149, 86, 36,222,180, -120, 77,117, 81,220,161, 67, 7,156,184,112, 15,135,142,159, 67, 94,242, 35,204,251,250,115, 4, 7, 7, 35, 50, 50,178,206, 50, - 85,250,104,213,102, 93,150,203,229, 81, 25, 25, 25,239,213,246,221,186,150, 12,107,177, 82,189,201,255,173, 37, 2, 23,198,160, - 30, 31,173,190, 29, 58,116,152,188,119,239, 94,237, 71, 31,125,196, 27, 50,100, 8,124,125,125,219,143, 25, 51, 6, 0,208,181, -107, 87,252,244,211, 79,237,199,140, 25,131,223,126,251, 13, 17, 17, 17,154, 78,157, 58,125,125,233,210,165,116,148,239,232,124, - 3, 52, 77,247,222,180,105,211,235,150, 66, 24, 12, 6,232,245,122, 39,131,193,224, 84,209, 23, 97,205,154,181,121,103, 78, 71, -226,235,185, 11, 97,111,231, 24, 96,228, 61, 68,140,158, 57, 51,111,199,170, 85, 88,245,219,111,152,233,230, 38,218,245,244, 41, -206,168,213, 56,112,225, 66, 94,197,239,212,235,155,169, 84, 42,203, 78,158, 60,105,113,224,192, 1, 88, 89, 89,161, 89,179,102, -176,182,182, 6,135,195, 1,201, 18,130,197,149,161,121,203,214, 0,238, 0, 0,220,228, 80,122,187,227, 26, 65,160,136, 33, 77, -247, 41,226, 55, 66, 19, 91, 23,193,229,201,219,125,173, 44,236,185, 56,181, 62, 5,167,215,165, 30, 81,231,225, 71, 24,240, 28, -181,251,124, 5,185,187,187, 35, 39, 39, 7, 39, 79,158, 84, 2,181, 10, 50,208, 52,253,253,207, 63,255,252,213,220,185,115,249, -222,222,222, 0, 16, 0,224,110, 77,159, 21,139,197,112,118,118,174, 18,150, 67, 70, 77,242,152, 56, 99,146,176,255,135, 97, 96, -179,109, 81,164,212, 35,191, 68, 15,153,173, 4, 95,207, 8, 23,156, 11,114, 14,222,180,118,207,177,178, 50, 4, 3,111,246, 7, - 4,129,187,183, 31, 93,243, 19,120, 3, 4, 9,164,146, 23, 65,128, 64, 41,161, 7,193, 98, 49, 20, 69, 33, 37, 37, 5, 12,195, - 96,120,255,177,169, 19,150, 69,216,183, 31,174,128,107,115, 57, 8, 6,239,255, 83,132,128,141,141, 77, 64,126,126, 62, 18, 19, - 19, 49,106,212,168,244,188,188,188,179, 74,165,114,108, 70, 70, 6, 0, 20, 52,128,178, 74,204, 7, 4, 4,160,117,235,214, 24, - 60,120,176, 64,165, 82,133,123,120,120, 56,231,230,230,182,253, 43,235,243,186, 22,249,159, 18, 90, 53, 62,104,122,125,115,205, -198,141, 80,158, 59, 7,222,153, 51, 56, 32,151,151,170,213,234, 47, 1,164, 86, 60,248,159,111,223,177,227,122,159,155, 55, 45, -180, 49, 49,240,120,252, 24, 28, 43,171, 0, 83, 11,176,109,219, 54, 40, 20, 10, 20, 23, 23, 3, 0,214,173, 91, 7,133, 66, 1, -131,145, 9,103,217, 92,180,119,180,119, 67, 22, 98, 65,179, 73, 73, 82,115, 85, 27,137, 90,154,225,156,226,160, 44, 38,157, 17, -147, 28, 34, 46,203,215,182, 33, 88, 90,168,243, 84,112,110,215, 12,108,176,219,155, 82,198,202,117,127, 54,155, 93,240,226,197, -139,222, 94, 94, 94,199, 1,216, 54,196, 31,224, 53,196,101,103,103, 79,107,200, 23, 89, 44,214,119, 9, 9, 9,246, 91,183,110, -157,178,120,241, 98,166,186,208,170,252, 63,155,205, 6,195, 48,176,180,180, 4,135,195,113,184,113,227,134, 67, 72, 72,200, 6, -154,166, 3,106,169, 39,227,235,235,139,132,132, 4,176,217,108, 88, 90, 90,130, 54,232,176,112,198, 36, 80, 44, 62,123,214,172, - 89, 1, 3, 6, 12,136,222,186,117,171,222, 34,180, 93,219,252,252,252, 39,147,135,143,136, 62,122,244,168,182, 34,196, 67,253, - 83,124,134,121, 16, 27, 27,203,114,145, 59,176, 24,131,138, 22,115, 1,193,163, 53, 12, 79,226, 8, 1,155,197,112, 9, 18,124, -129,208, 50, 49, 45, 45,159,166,233,103,198,112,210, 52,125, 63, 33, 33, 65,232, 96,111,195, 86,149,105, 75,133, 28,134,151,116, -255, 94,124,147,192, 32, 15, 0, 80,223,191,115,137,223,188,133, 48, 41, 59, 87,236,230,230,102, 20,103, 89, 89,217,131,244,244, -116,150,131,131, 3, 59, 57, 53,237,152,149, 68,108,103, 97,101,213, 6, 0,116, 37,197,119, 72,141, 38,151,197, 97, 59,228,230, -231, 23,148,149,149, 37, 24, 91,247,151, 47, 95,178,157,156,236, 89,167,206,156, 63,238, 32,226,219, 75,121,108, 11, 62, 65, 16, - 34, 22,161,224, 26,232, 60,129, 72,100,159,152,150, 86,192, 48, 76,173, 22,194, 21, 69, 35,250,151, 95,175,133,191, 85,227,198, -163, 71,143,240,199,181,103, 16, 51, 90, 16,234, 98,156,217,190, 5,195,103,205,125,107,191,191,250,196, 86,131,172, 89,155, 90, - 68,189,198,143,204,122, 28,225,135, 15, 31,190,112,247,238,221, 85, 14, 40,207,158, 61, 67,231,206,157, 43,151, 57,208,173, 91, - 55,132,132,132,224,217,179,103,240,244,244,196,133, 11, 23,248, 44, 22,139, 63, 98,196,136,101,123,246,236, 57, 89,175,221,127, -243,102,140, 29, 59,182, 38,199,234,151, 0,212,132,204,187,116,206,138,157,182, 5,249,121,200,201,205,122, 96,108, 59, 16, 4, -129,209, 51,103,230,109,210,106,177,247,246,109,140, 20,139, 69, 59,226,226,208, 51, 36, 4,126,157, 59,231, 25,211,215, 85, 90, -117,212,106, 53, 56, 28, 14, 44, 44, 44, 96, 99, 99, 3, 46,151, 11, 22, 71, 14, 54,207, 31, 36,151,139,192, 14,254, 88,245,165, - 88, 53,170, 59,214, 18, 4,138,248, 60,220,231,138,106,245,213, 33,196,141,208,143, 97,160, 80,165,226, 98,165, 32,177,108, 12, - 75,142,148,115,102,220, 6,111, 43, 11,123, 46,254, 88,155,140, 51, 27,210, 14,171,179, 48,175,162, 45,232, 58, 38, 18,126, 86, - 86, 86, 72, 77, 77, 69, 74, 74,202, 83,212,237,224,175,122,246,236, 89, 60,159,207,247,177,179,179, 3, 0,247,218, 38,230, 52, - 77, 87,249, 97,237,218,123,208, 54,160,163,135,224,131,246, 62,216,121,124, 41, 62, 11, 95, 11, 14,139, 0, 69,233,240,227, 79, -189, 64,105, 74, 17,222,103, 2,241,126, 87, 79,255,115,199,181,227,244,101,133, 91,222,152, 8,176,177,228, 63, 67,111, 88,241, - 37,164, 31,104,194,202,214,214, 94,204,229,114, 97, 99,225,164,157, 59,241,139, 76,134, 97,170,158, 27, 14,139,171, 39, 75,172, -203,242,179, 74,133, 86,156, 50,128, 33,155, 52, 44,154,205,187, 71, 90, 90,218,180,142, 29, 59, 46, 43, 41, 41, 41, 84, 42,149, -195, 1,192,221,221,189, 49, 73,146,124, 0,117,173,142, 52, 70,205, 97, 33,184,143, 31, 63,134, 84, 42, 69,122,122,122,117,227, - 11,104,154,254,199,108, 2,248,135, 34, 16,192,125, 0, 78, 0,122,162, 90,120, 7,178,194, 84,247,126,100,100, 36, 19, 25, 25, -249,126,213,224,197, 48,180,161,160, 0,140,166,188,109, 57, 28, 14, 3,160,250,142, 38,145,149,149, 21,193,113,113, 1,193, 47, -119,253, 96,222,225,214, 87,189,222,184,208, 50, 52, 5, 22, 8, 29,152,106,147, 22,165,128,192, 82,219, 46,152,198,155,143, 44, -158, 85,245,145, 14, 48, 48,160, 64,179, 76, 44, 14,163, 84, 42, 97, 48, 24,100, 77,155, 54, 61, 97, 48, 24,100, 21,131, 27,243, -223,186,162, 20, 69,197,179, 88, 44, 76,153, 50, 5,149,214, 31,173, 86,139,172,172, 44,104, 52, 26,104,181, 90, 36, 36, 36,160, -184,184, 24, 90,173, 22, 79,158, 60,129,187,187, 59, 88, 44,150, 83, 29,157, 57,195, 48, 12, 92, 93, 93,209,164, 73, 19,176, 8, - 6,191,174, 92,128,111,166, 79,194, 80,119, 26,219,214,255,136, 78,157, 58,181,112,115,115, 11,101,179,217,148,163,163, 35, 55, - 34, 34,226, 24, 69, 81,253, 96,124,207,115,114,206,156, 57, 77, 90,182,108,105,111,101, 33,213,243,121, 44,240,244, 74,134,175, -201,103,216,170, 60,184,186, 54, 54, 64, 40,242, 28, 57,114, 36, 85,155, 21,162, 38,206, 47,191,252,210,201,219,219,219, 82,102, - 37, 85,242, 56,172, 28, 46,152,188,226, 71,119,111, 1, 0,207,206, 94, 13,129,200,103,212,168, 81, 6, 83, 56,231,207,159,239, -110,103,103,103, 69,130, 41,161,116,186, 63,215,219, 53,218,124,130,195, 41, 3,151, 23, 52,117,234, 84,194, 20,206,175,190,250, -202,205,199,199,199,202,202, 66, 92,202,230,176, 50,185, 52,157, 41, 0,157,197,209,234, 10, 5,118,182, 42,136, 36,129, 35, 71, -142,172,149,179,210,154, 53,123,246,236,212,215,132, 55, 10, 10, 10,160,206,138, 6, 55, 61, 6,254, 18, 14,130,237,100,224,243, -249, 85, 91,223,107,187, 93,107,243,209,170, 73,108, 25,251,221,160, 69,117, 44, 1,110,106, 17,245,122,220,172,140,140, 12, 56, - 57, 57,213,249, 60,237,217,179,103,110, 88, 88, 88, 78,183,110,221,180, 39, 78,156, 0, 65, 16,184,112,225, 2,210,211,211,209, -173, 91, 55, 48, 12, 83,185,171, 13, 15, 30, 60, 64,215,174, 93,181, 29, 59,118, 76,175,136,175, 85, 47,198,142, 29, 11,189, 94, -143,210,210, 82, 20, 20, 20, 32, 50, 50, 18,254,254,254,140, 72, 36, 26,192,114,253,112,105,248,184,185,109,125, 91, 5, 96,195, -218, 85, 90, 30,155,179,194,148,231,149, 32, 8,140,250,242,203,188,226,192,192,130, 93, 74,165,106,180,133,133,168,105,106,170, -245,189,211,167,109,117, 58,157, 81, 28,149, 86, 29, 23, 23,151, 42,145,197,229,114,193,230,217,129, 37,246, 3,207,166, 27, 68, -142, 3,112,241, 62, 95, 99, 41,198, 17,169, 4,167,196, 86,181,135,118, 16,185, 98,105,219, 33, 78, 17,237,134, 58,157, 23, 53, -194,214,138,241,128,100,216, 68,196,152, 31,189,154,218, 53, 17,226,230,193, 44,156,217,144,246,187, 58, 11, 11, 0,196,213,247, -156,235,116, 58, 53, 69, 81, 32, 73, 18,108, 54,187,186, 79,224,245,223,127,255, 29,247,238,221, 3,170,133,237, 41, 41, 41,161, - 88, 44, 22, 4, 2, 1, 0, 72,234,232,239,192,225,112,192,225,112,112,233,214, 21,155,161, 3,123, 17, 55, 30,158, 69, 59,255, - 97,200, 47,213, 33,187, 88,135, 34, 21,208, 50,120, 30,124,187, 30,193,163,132, 18, 4,180,242,101,177,120,226, 81, 53,241,169, - 19,145,170, 76,193,160,252,167,116, 51,109,154,240,143,155, 71,159, 61,189,114,232,209,147,253, 63, 31,143,107, 27,220, 81, 89, - 97, 76, 64,105,105, 41, 67, 16, 4,243,197,248,185,241,187,198, 22, 82,107,135, 63,162,217, 26,193,203,191,177,171,111,108,103, -103,119,195,198,198,230, 66,133, 56,106, 44,149, 74,175, 59, 57, 57,197,160,124,163,199,209,204,204, 76,111,165, 82,217, 14,229, -155,179,146,243,243,243, 59, 87, 88,158,146,235,176,132,109, 85, 40, 20,159, 83, 20,213,167,226,232, 78, 81, 84, 64,108,108,172, - 79, 64, 64,192, 83, 15, 15,143, 7, 30, 30, 30,127,120,120,120, 28,243,240,240, 56, 22, 22, 22,246, 83,101,184,135,191,120,217, -240, 13, 45,242, 47, 19, 90,168, 16, 89,155, 43, 94, 81, 37,180, 0, 92,122,221, 1,205,192,231, 63, 49, 76,158, 12,171, 99,199, -192,137,141,197,152, 81,163, 44, 68, 34,209, 90,148,199,104,106, 39,145, 72, 54, 44, 88,176, 64,106,187,124, 57,228, 87,174, 32, - 41, 50, 18,122, 14,231,110, 67, 74, 87, 86, 86, 6, 54,155, 93,101,137, 17,139,197,160, 40, 10, 53,153,124,223,120, 0, 13,184, -153,158, 29, 3, 30,154,128, 6, 83,122, 74,209,241,246,176,248,121,246,145, 10,119,207, 56, 37,215,115,145, 93, 27,251,181,141, -219,223, 86, 18,236, 82,158,149, 0, 41, 41,169,160, 64,155,180,222,172, 86,171,139,149, 74, 37, 2, 2, 2,108,238,221,187,215, -212,223,223,223,186,226,252,157,183,188, 48,161,114,185,252,160,179,179,115,162, 92, 46, 63, 8, 32,212,132,239,110,189,122,245, - 42, 88, 44, 22, 22, 44, 88,128,146,146, 18,232,116, 58,228,231,231, 35, 37, 37, 5, 90,173, 22,105,105,105,120,254,252, 57,180, - 90, 45,146,146,146,160,209,212, 63, 33,161,105, 26, 22, 22, 22, 80,151,149,226,151,165,223, 96,254,236, 25, 40,126, 25,133,180, -140,108, 88, 89,138, 49,109,218, 52,150, 76, 38,163,105,154,110, 66, 81, 84, 87,154,166, 55, 26,115,157,170,221,111,215, 92, 93, - 93,125, 87,174, 92,233,243,205,210,141, 92, 11,118, 41,195,151, 10,104,158,148,207,240, 90,180,193,216,121,107,185,107, 86,255, -240,226,230,205,155,233, 48, 46,120, 39, 9,224, 90, 96, 96,160, 87,122,122,186,191,183,183,119,115,219,198,110,124,190,147,115, - 17,215,169,145,130,209,168,111, 19,206,141, 58,108,220,184, 49,250,250,245,235, 25,166,112,138,197,226, 22, 59,119,238,244,117, -112,112,240,229, 8,133, 2, 85,113,241, 1,131, 74,121,144,101, 37, 19,144, 22, 86,221,143, 28, 57, 18,117,248,240,225, 44, 83, - 56, 61, 61, 61,189,151, 46, 93,218,210,207,207,175,165,163,123, 83,190,208,217, 53, 95,224,210, 56, 95,232,231,207,135, 75,147, -143, 54,108,216,240,224,230,205,155, 70,113,178, 88, 44, 3, 73,146,224,112, 56, 16,137, 68, 56,117,234, 20, 38,143, 27, 6, 87, -103, 27, 52,247,246, 70,151,207, 62,199,225,195,135,171,124,120, 88, 44, 86,173, 35,250,142,229,211,142, 7, 58, 17, 81,216,212, - 34, 10,155, 90, 68, 5, 58, 17, 81,181,138,173,138,191,215,244, 25,163,122,163, 90,150, 27,141, 16, 91, 39, 47, 93,186,244,253, -232,209,163,121, 61,122,244,192,237,219,183, 49,118,236,216,107, 17, 17, 17, 0,128,219,183,111,227,139, 47,190,184,118,254,252, -121, 76,154, 52, 9,157, 59,119,230, 93,189,122,117, 3,140,136,253, 99, 48, 24,176,109,219, 54, 24, 12, 6, 72, 36, 18, 88, 91, - 91,163, 87,175, 94,136,142,142,158,180,125,251,246, 24, 22,135,243,113,207, 62, 3,113,226, 88, 4,158, 63,137,158,180, 99,217, - 8,147,131, 2,147, 36,137, 30,163, 70,229,229,181,108, 89,176, 67,161, 80,125, 34,147,137,188,179,178,172, 47, 30, 60,104,107, -132, 80, 35, 40,138,170, 18, 87,149,162,163,242, 96,243,236,192, 22,251,130, 45, 13,198,163, 56,174,158, 27,130,251,188, 96, 60, -171, 43,126, 22,135, 71,142, 29,240,141, 59, 6,124,227,142,190,179,220,198,136, 26,225, 87,113, 35,124,218, 99,122,147, 48,143, - 96, 75, 40,114,116,136,252, 49, 41, 89,157,143,229, 0,158, 27,243,156,211, 52,253, 52, 61, 61, 29, 60, 30, 15,141, 26, 53,242, - 2, 80,233, 23,184,117,252,248,241, 83, 23, 45, 90, 52, 3,192,162,138,115,146,176,176,176,150,165,165,165,136,141,141, 5,128, -123,117, 88,131,171,118, 25, 22, 40,146,248,110,114, 63,248,183,152, 8,153,172, 21,210, 11,180,200, 40,208,226,215, 95,250, 33, -234,234, 18,220, 59, 51, 18,201, 89, 89, 16, 58,246, 7,101,208,248, 26, 49,169,151, 63,124,248,144,184,122,245, 42, 65,211, 52, -244,122, 61, 83,162, 80, 48,247,175, 93, 67,217,229,203,132,133,133, 5,209,190,117,199,210, 29, 75, 78,220, 57,178,254,218, 61, -157,202,228,137,250,219, 96,126,124,124,124,232,193,131, 7,195, 0,204,247,243,243,187,153,146,146,210,246,202,149, 43,205, 93, - 92, 92,214, 54,148,180, 50, 44, 68, 82, 82,210, 43, 71, 69, 88, 8,109,133,104,232, 81, 33,230,250, 2,248, 2,111,177,203,222, - 4, 92,250, 23, 59,195,159,192,107,187, 13, 95, 23, 90,213, 3,133,193, 67, 38,147,234,245,186,180,179,103,207,234, 72,146,132, - 72, 36,194,232,177, 99,201, 95,126,254,185,195,176,208,208, 11, 19, 62,248,224,143, 11,231,207, 7,134,132,132,128, 97, 24,144, - 36,137,223,126,251,173, 76,173, 46,203,119,117,117,181, 50,166,211,168,254, 0, 41, 20,138, 42,161, 85, 92, 92, 12, 7, 7, 7, -163,151, 14,149, 10,156, 59,127, 42,170,144,161, 62, 75,233, 17,183, 90,183, 34,171, 95, 72, 17, 77,177,139, 41, 61,138,203, 24, -148,168,193,190, 77, 90,135,140,246,236,175, 75,232, 26,242,252,114,204,141,124, 53,165, 54,105,183, 68, 78, 78,206, 55,225,225, -225,249, 78, 78, 78,132,133,133, 5,156,157,157,201,190,125,251,230,165,166,166, 46,106,232, 21,177,177,177, 25, 26, 22, 22,118, - 60, 61, 61,125,208,229,203,151,155, 92,185,114,101, 80, 88, 88,216,113, 27, 27,155,161, 70, 82, 28,152, 59,119,174,146,199,227, -161, 77,155, 54, 40, 41, 41, 65,197, 46,159, 58, 15, 99,150, 72,185, 92, 46, 54,173,252, 14,243,103,207, 64, 65,204,109, 60,186, -118, 22,151,178, 8,204, 91,250, 3,184, 92,110,131, 98,125, 53,179, 19,249,249,201,165,207,190, 24, 59, 36, 99,206,236,217,210, - 7, 15, 30,112,166, 78,255,130, 73,202, 44, 0,175,199, 42, 22,222,255,134,124,168,180, 67,207,238, 93,176, 96,254, 76,191,138, -160,157,117,162,133,157,200,207, 87, 46,125, 58,115,194,176,248,233,211,167, 11, 87,172, 88,161, 14, 13, 13, 45,203,206,206, 22, -138,101,214,222,108, 75, 43,223,164,204, 44, 73,104,104,104,194,103,159,125, 86,100, 42,231,188,121,243, 68,167, 79,159,102,135, -135,135, 27, 10, 11, 11, 37, 28,161, 48,128,224, 11, 90,231, 22, 22, 90, 14, 10, 15,143, 27, 52,104,144,170, 34, 96,169,209,156, -223,126,251,173,232,249,243,231,236,208,208, 80,125, 86, 86,150, 84,108, 99,235,207,178,178, 14, 78,204,204,182,104, 29, 18,242, -114,234,212,169,202,186,202, 89, 93,164, 72,165,210,244,118,237,218,225,199, 31,127,196,154, 53,107,240,209, 71, 31, 33,250, 73, - 52,122, 78,157, 1,159, 79,191,192,177, 27,183,144,158,158,142,197,139, 23,195,223,223, 31, 92, 46,247,121,141,207,227,164, 24, -226, 65, 22,136, 7, 89, 32,136, 73, 49, 68,229,251, 90, 45, 91,139,138, 81,253,243, 53,125,238,222,183, 53, 91,186, 2,157,136, -168,186,252,176,234, 19, 91,131, 6, 13,154, 92, 25,194,225,147, 79, 62,185,182,118,237,218,246,159,124, 82, 62,209,110,211,166, - 13,150, 44, 89,210,126,222,188,121,215,150, 46, 93,138, 46, 93,186,192,195,195,163,222,141, 47, 20, 69,193, 96, 48, 96,216,176, - 97, 48, 24, 12,200,205,205,197,139, 23, 47,176,121,243,102, 48, 12, 35, 0, 0, 39,185, 75, 16,143,199,195,195,251,119, 85,243, - 63, 9,217, 99,130, 37,139,168, 62,137, 41, 45, 45,197,160, 79, 63,205, 75,107,214,172, 96, 99, 94,158,106,156, 76, 38,114, 75, - 78,182,150,106,181,206,168,195, 47,145, 32, 8,208, 52, 93, 37,172, 42, 5,215,235, 71,197, 64,105, 20,116, 42,250,228,149,221, - 25, 0,128,142, 35,228,232, 59,203,109,140,147,167,104, 93,135,225,229, 70,239,195, 75,226,153,146, 12,106, 5,244,120,106,130, -197,250,246,237,219,183, 97,101,101,133,240,240,112, 62, 73,146,203, 43,231,171, 40,143,157,181,186,146,139,207,231,175, 26, 57, -114, 36, 89, 84, 84,132, 71,143, 30, 1,192,249,218,250, 37,134, 97,170,234, 94, 90, 64,128,162,121,184,126,255, 20,206, 92, 57, -132,196,244, 92, 36,231,168, 1,182, 37,212,202, 52,232,202,210,161, 45,186, 15,133, 70,100, 84,129,185, 92,110,174,159,159, 31, - 19, 28, 28,204, 48, 12,131,151, 47, 95, 26,146,146,147, 13,119,127,250,137,121, 60,113, 34, 33,125,241,130, 43, 20, 10, 9,119, -119,119, 8, 4, 2, 90, 32, 16,228,255,141,131,247, 95, 18,110,225, 47, 8, 11,241, 46,173, 90, 12,254,157,200,196,171,187, 13, -171, 2,152,214, 20,176, 20,140,133,112,200,161, 13,191, 88,134, 15, 27,161,244,247,247,151, 57, 59, 59,131, 32, 8,244,235,223, -159, 8,187,124, 89,202,145,203, 97,243,222,123, 85,203, 17,231,206,158,197,169, 83,167,148, 39,126, 63,226, 60,118,220,184,222, - 0,118,214, 81, 24, 54,159,207,175,250,221,204,204, 76,240,249,252, 42,159, 8,133, 66, 1, 59, 59, 59,100,102,102,194,200,149, -185, 93,115,102,223,154,157, 19,242,141,123,136,148, 67,252,161,204, 2,197, 48,224, 16, 20, 80,198, 64, 79, 1, 26, 61,131, 32, - 55,150,245,153, 50,131, 44,242,118, 68, 2,128, 93,166,180,158, 70,163,185,248,224,193,131,137, 52, 77, 31, 2, 64, 94,190,124, -153,126,250,244,233,100, 24,239,184,254,166,217, 94, 36,154,117,225,194, 5,235, 89,179,102, 21, 70, 70, 70, 22,247,234,213,203, -114,243,230,205,214,157, 59,119,158,149,159,159,191,223, 24, 67, 96, 74, 74,202,206,212,212,212,201,193,193,193, 40, 40, 40,128, - 78,167, 67, 84, 84, 20, 60, 61, 61,113,239,222, 61,120,121,121,225,238,221,187,104,222,188, 57, 40,138,130, 90,173, 6, 77,211, - 84,125,157,121, 65, 94, 46,144,159,130,140,219,127,224,197,227, 40, 92,200, 32,176,126,255,113, 52,106,226,222,160, 56, 53, 94, -246,162,150, 78,118, 54,103, 86, 44,252,214, 62,233,226,111,136,216,182,158,190,244,199, 31, 62, 60, 41, 38,190, 63,236,243,129, - 90, 61, 26, 3,224,181, 13, 9, 70, 15,217,115, 74,212, 4, 89, 23,158,214, 29, 96,209,203, 94,212,210,193,214,230,244,127,150, - 47,146,190, 60,181, 3, 7, 54,253,200, 28,222,189,207, 95, 13,132,180,108,217,178, 7, 73,146, 86, 0,212, 21,126, 94, 70,165, -182,169,137,243,220,241,227,129,106, 32,228,232,209,163, 61, 68, 34,145, 35, 0,189, 74,165,138,127, 27,206,243,145,145,129,149, -229, 36, 8,194, 30,128,142, 97,152,151, 48, 49, 5,207,224,193,131,151,124,241,197, 23,179, 41,138,178,171, 54, 59,103,173, 90, -181,138, 77,211, 52,139, 97, 24, 29, 73,146,186,211,167, 79, 83, 6,131, 33, 67,173, 86,127,250, 54,189,200,192,129, 3,113,235, -214,173,133, 40,223,132, 97,172,181,250, 21, 63,173,138,148, 61, 13,230,191,124,249,242,226,143, 63,254,120,206,254,253,251, 95, -172, 93,187,182,207,164, 73,147,240,219,111,191,161, 89,179,102,120,248,240, 33,190,249,230, 27, 0,104, 63,111,222,188, 99, 91, -183,110,245, 72, 74, 74, 90,101,132, 69, 3, 6,131, 1,251,246,237, 67,191,126,253, 96,103,103, 7,185, 92, 14,130, 32, 46,142, - 27, 55,238,103, 0, 96, 17, 44, 46, 0,104,212, 26,141,183,119,176,209, 22, 92, 46,151, 91,213,215,101,101,101, 85,237, 20,252, -240,227,143,243,126, 93,177, 2,123,202,202, 48, 78, 38, 19,165,185,184, 56, 29,123,249,114,194,147,242,206,153,169,203,170, 83, -159,200, 50,214,165,161, 44, 19,115,127, 95,150,232, 8,224,163,142, 35,228,232, 56, 66,142,224,190,246, 4,201, 34,240,248, 76, - 62,162,207, 21, 28,214, 43,112, 17,166,165,203,121,186,124,249,242, 99,239,191,255,126,159, 22, 45, 90, 96,252,248,241,159,109, -219,182,141,171,215,235,167,227,207, 48, 15,150, 36, 73, 46,218,180,105,211, 4,107,107,107, 92,189,122, 21, 87,174, 92,185, 8, - 32,165,182,126, 9, 64, 85,204,172, 70,174, 94,234,231, 73,165,162,156,244,235,184,118,245,119, 52,243,255, 28, 66,199,222,176, -246, 94, 10, 93,204, 26,104,243,207,192,218,181, 23,210,146, 94,130,197,230, 71,215,231,132,194, 48,204,147,180,180, 52, 15, 15, - 15, 15, 34, 49, 49,209, 0,128,161, 40,138,209,117,232,160,247, 89,177,130, 19,253,217,103, 68,219,231,207, 89, 12, 65,208, 81, - 81, 81, 0,240,236,191, 49,138, 87,134, 91,136,142,142,174, 45,220,130, 73,240,243,243,107,127,229,202, 21,190, 90,173,198,165, - 75,151,208,186,117,213,222,174,255,106,244,251,234, 90,228, 95,134, 9, 53,156,219,252,138, 69,235,149, 27,155, 38, 56,205,189, -188, 40, 46,137,237,253,122,247, 86, 61,120,240,160,106,214,167,190,115, 7,202, 83,167, 64, 81, 20, 24,134,193,149,203,151, 49, -114,196,136, 82, 14,139,248,213,205,173, 9, 67, 48,175,196,110,233, 90,195,236, 33, 60, 60, 60,188,170,243, 73, 77, 77,133, 88, - 44, 6,143,199, 3, 77,211, 48, 24, 12, 96,177, 88,176,180,180,132,193, 96,168,201, 4,243, 58,167,158, 42, 80, 14,218,218,115, -120,166,188, 84,199, 76,180,114, 67, 99,174,176,234,225,116,180, 32,208,199,159, 3, 91,118, 14,115,126,213, 7, 25,180, 38,127, - 16,222,220,209, 85,223,150,127,175, 86,173, 90,253, 60,114,228, 72, 18, 0,186,118,237, 74,182,106,213,106, 29,234, 78,149, 83, - 39,167, 64, 32,224, 3,192,241,227,199, 11, 94,188,120,241,209,241,227,199, 11,170,159, 55,146,115,243,202,149, 43, 33, 18,137, - 96, 48, 24,160,213,106,171,252,179,170,191,234,116, 58,216,218,218,226,196,137, 19,160, 40,234, 68,125,229,116,109,220, 4,132, - 93, 83,236, 60,126, 1, 87,242,184, 13, 17, 89, 85,156, 77, 29,197,205, 29,109,109,206,254,103,217, 98,187,194,184, 40,164,165, -165, 49,167, 79,157,184,169, 6,210,139, 75, 48,191, 72,137,230,101, 90, 8, 90,123, 32,229,236,166,175,153,121, 29,161, 71,205, -187, 6,171, 56,125, 28,197,205,157,237,108, 78,255,240,159,101,210,162,184, 40,100,102,101,225,228,137,227, 15,212, 64,229,114, -227, 24,154,166,125,105,154,246, 5, 48,166, 14,241, 98, 18,167, 74,165,242, 83,169, 84,126,239,146,147, 97, 24, 63,134, 97,140, -230,172,238, 19,181,122,245,234,152,204,204,204,145, 57, 57, 57,221, 42,143,194,194,194,174,165,165,165,157, 84, 42, 85,135,178, -213, 77, 44, 85, 42,149,125,105,105,169,147, 90,173, 14, 2, 16,101,194, 61, 95,133,234, 81,167, 51, 51, 51, 23,100,102,102, 18, -245,149,147,245,105, 12,177,247,135,153,191,111,218,180,201,233, 45,249, 95, 41,103, 94, 94,222,161,253,251,247, 7,184,187,187, -123,140, 25, 51, 6, 27, 55,110,196,218,181,107, 53, 0,176,117,235, 86, 77, 53, 75,150,107, 82, 82, 82,112, 45,203,134, 93,171, - 89, 75,118,125,248,225,135,204,149, 43, 87,208,175, 95,191,170, 64,162, 91,182,108,129,193, 96, 80,116,233,210,133, 6,128, 50, -181, 74,193,208, 12,180,186, 90,215,223,223,104, 79, 30,143,215,189,122,188,192,202, 96,204, 60, 30, 15, 12,195,160,121,251,246, -121, 69,254,254, 5,219,138,139, 85, 11,252,252, 44, 38,120,123,143,105, 1,140,168,137,147, 32,136, 87,172, 58,175, 31, 38, 88, -178,170,151, 51,167, 44, 3,227,127, 95,150,120,170,210,178, 37,144,176,161, 46, 49,224,200,138,196, 92,117, 46,182,212, 38,126, -234,170,123, 65, 65,193,212, 21, 43, 86,104,100, 50, 25, 6, 14, 28,136,165, 75,151,142,107,223,190,125,177,189,240, 71, 94, 63, - 0, 0, 32, 0, 73, 68, 65, 84,189,253,173,102,205,154, 61, 30, 50,100, 72,102, 84, 84,212,212,176,176, 48,196,198,198,226,135, - 31,126, 40, 42, 44, 44, 28, 94, 23, 39, 65, 16, 85,150,188,190, 61,187, 22,252,178,238, 71,186,203,251,147, 33, 18, 90, 64,207, -113, 69, 65,169, 30,133, 74, 6, 90,126, 8,120, 92, 62,186,133,182,196,173,211, 59, 84,148, 86,185,179,190,123,190,180,180,244, -240,232,209,163, 21, 92, 46, 23, 90,173,150,225,112, 56,224,151,251, 29,211,156,143, 62,210,181,125,250,212, 64, 49, 12, 77, 16, - 4,190,252,242, 75,101, 97, 97,225,254,134, 60, 71, 38,160, 58,231,187, 10,183,208,245,181,241,231, 93,132,133,248, 43,234,254, -111,198,230, 26,142, 63, 45, 90,149, 91, 42, 43, 95, 9,130,166, 40,138,134,155,187,155, 52, 41, 49,101,253,224,193,225,159,244, -232,209, 83,212,179,103, 79, 65,203,152,242,217,232,241,227,199, 17, 17, 17,161, 58,115,230,140,130,207, 97,109,117,109,228,234, - 64, 81, 52, 8,130,174, 83, 13, 75,165,210,233,115,231,206, 21, 22, 23, 23, 99,237,218,181,116, 64, 64, 0, 41, 22,139,161,211, -233,176,117,235, 86,125,203,150, 45, 57, 36, 73,162,184,184, 24, 36, 73, 62, 55,178,130,143,138, 83,210,187,253, 28, 54, 32, 34, -120,202, 88, 27,159,176,182,178, 78,174,206,208,191,199, 32, 35, 53, 17, 47,206,159, 41,124,114,250,167,124,168,179, 7,160,254, -244, 64, 53, 13, 4,223,157, 57,115,198,126,234,212,169,140, 90,173, 38, 82, 82, 82,152,101,203,150,217,143, 31, 63,254,187,140, -140,140,161, 13,188, 40, 68, 81, 81, 17, 8,130,160, 43, 58,146,202, 89,191, 41,235,114,209, 59,119,238, 60,218,191,127,255,190, - 93,186,116, 65, 76, 76, 76,213, 18, 97,117,161, 85,185,251,112,249,242,229, 69, 0,230,212, 71,202,225,112,176,118,231, 33, 20, - 21,230,193,193, 65, 14,129, 80,136,134,238,176,228,145,228,130,239, 23,127,107,159,247,236, 22, 17,125,243, 2,125,240, 81,118, -142,129, 98,106,142,248, 95,146,193, 84,168,255,186,103, 51, 36,107,193,247,203, 22, 89, 86, 46,107,238,191,159,169, 32, 40,102, -234, 91, 61, 34,255, 22,206,191, 25,114,185, 28,153,153,153,132, 92, 46,103, 42,124,180,152, 58,132,214,171, 55,120,249,114, 25, - 81,215,178, 97, 67,249, 19, 18, 18,150,189,247,222,123, 51, 99, 99, 99, 15,250,248,248, 76, 2,208, 72,163,209, 20,205,155, 55, -239, 63, 91,183,110,253,196, 24, 75, 22, 0,252,246,219,111, 63,141, 29, 59,246, 84,239,222,189,191,166,105,186, 85,181,129, 61, -193,222,222,190,106, 9, 55, 55, 59,107,246,196, 79,134,205, 46, 45, 45, 52, 58,206,157, 68, 34,153, 48,111,222, 60,129, 82,169, -196,134, 13, 27,232,150, 45, 91,146,149,147,162,221,187,119, 27,188,188,188,216,225,147, 39,231,173,206,202,194,146,171, 87,149, -179,125,125, 3,182,189,120, 17, 4,154,222, 85,155, 85,167, 38, 75, 86,165,219, 69, 3,145, 81, 33,182,182, 0,248,168,237, 96, - 71, 28, 93,153,136,194, 36,237,127, 96,192, 75, 24,145, 22,168, 6,164, 29, 62,124,184, 91,118,118,246,209,111,191,253,214, 50, - 40, 40, 8,190,190,190, 28,137, 68, 18, 82, 25, 46,166,184,184, 24,231,206,157,195,198,141, 27,181, 79,158, 60,233, 95,215,114, - 21, 69, 81, 57, 94, 94, 94,149,237,192, 16, 4,145,175,208, 16,150, 7, 90,132, 72,198, 76, 60, 72, 92,187,123, 3, 25, 58, 26, - 26, 61, 13, 55,247, 64,116,250,104, 53,142,253,241,152,202, 72,122,250, 84, 95, 86,248,171, 17,229,125, 25, 23, 23,119,100,241, -226,197,131,191,254,250,107, 97, 94, 94, 30,165,209,104,232, 67,135, 14,177,198,140, 25, 67, 49,108, 54,205,101,179, 49,125,250, -244,178,162,162,162,223,129,191, 53,193,244, 95, 18,110,225, 47, 8, 11,241,206,172, 89,213, 95,255, 87, 80,227, 19, 74,179,200, -235, 27, 55,253,210,253,183,125,251, 29, 89, 44,210,241,101,124,252,221, 62, 3, 6,165,159, 61,123,214,154,107,105,217, 26, 0, -173,157, 52,233,166, 78, 83, 86, 16,121,244,104, 99, 55,183, 38,254, 21, 73,165, 25,154, 69, 94,175,235, 7, 75, 75, 75,149, 87, -175, 94, 85,205,153, 51,135, 72, 77, 77,221,235,224,224, 48,228,143, 63,254,144, 12, 24, 48,160, 44, 38, 38,230,176,163,163, 99, -223,176,176, 48,233,204,153, 51, 53,165,165,165,166, 36, 30,125,202,228, 22,182,184,243,237,170,143,239,172,252,229, 3,176, 89, -237,160,225, 0,180,254, 58,116, 37,103, 1,236,133, 9,241,142,170, 67, 44, 22,251,139, 68, 34, 60,120,240,160, 48, 36, 36, 68, -171, 86,171,185, 75,151, 46,181, 17,139,197,254, 13,109,120,134, 97,152,194,194, 66,208, 52,205, 6, 64, 84,188,130, 54,125, 47, -254,208, 62,125,250, 28, 61,112,224,192,135, 61,123,246,132,135,135, 7,244,122, 61,188,188,188,160,213,106,225,233,233, 9,141, - 70,131,133, 11, 23,162,184,184,120, 6,234,200,121, 70, 16, 4, 12, 6, 67,149,179,173,179, 75,227,242, 56, 61,111, 17,198, 66, -204, 33, 61,158, 71,110, 67, 78,126, 30,125,224, 97,118,182, 74, 71,117,139,203, 85, 61,121,253,115, 42, 10,202,176, 49,211,210, - 1, 64, 67,215,157,113, 94,204,131,199,139, 19, 91,144,157,147,135,223,238,103, 22, 41,117,244, 71, 47,106,224, 52,169,156,255, - 18,206,192,133, 49, 24, 52,205,248,207,190, 13,140, 21, 84,181,225, 65, 22,136,123,162,109, 12, 54,109,171, 49, 70,214, 91,242, - 31,141,141,141, 61, 10, 0, 79,159, 62, 77, 29, 54,108,216,236,196,196,196,197, 0, 78, 38, 37, 37,109, 50,133,104,219,182,109, -177, 0,198,214,245,153,253,171,198, 30, 1,112,196, 20,222,146,146, 18,117, 84, 84,148,122,230,204,153, 68,106,106,234, 31,142, -142,142, 31,158, 58,117, 74, 52, 96,192, 0, 77,116,116,244,121,185, 92,222,177,107,215,174,146,147,183,111,167,171, 94,190,140, -140, 76, 76,116,209,211,116,100, 93,207,231, 59, 22, 89,175,136,173, 35, 75, 18,191, 63,250,125, 98, 87, 90,131,195,218, 66,220, - 4,144,246, 22,156, 87,174, 95,191,238, 51, 98,196,136, 3,189,122,245,106,235,227,227,131, 70,141, 26,225,197,139, 23,200,205, -205,197,163, 71,143,112,252,248,241,227,106,181,186,222,132,218, 5, 5, 5,111,166, 39, 18, 88,203,119,108, 88,112,252,238,181, -214, 94, 29,122,142, 22,250,202,105,104,117, 12, 82,147, 95, 98,225,252, 95, 85,153,201,177, 79,117, 6, 93,127, 24,185, 81,167, -172,172,108,243,154, 53,107, 56,145,145,145, 61,215,175, 95, 47,109,220,184, 49,139,203,229,146, 0,152,123,247,238, 49,211,166, - 77, 83,230,229,229,157, 80, 40, 20,155,255,230, 49,250, 74,124,124,124, 32,139,197,122,167,225, 22,222, 34, 44,132, 25,239, 18, -238,238, 46, 62, 77, 27,203, 39,121, 52,114,153,236,222,216,117, 84, 77, 78,238, 30, 50,153,212,189,137,243, 4,143, 70, 46,147, -155, 54,150, 79,114,119,119,241, 49,194,180,232, 97, 97, 97,241,135,147,147, 83, 0, 0, 88, 90, 90,246,181,178,178,122, 98,105, -105,217,183, 98, 22,216, 87, 34,145, 60,107,217,178,229,248,191,209, 92, 89, 39,167,151,151,215,176,210,210,210,207,188,188,188, -134, 85,190,127,249,242,101,213,251,134,112,186,186,186,118,185,119,239,222,208, 85,171, 86, 13,108,214,172, 89,223,101,203,150, - 13,252,253,247,223,135,186,184,184, 4, 53,128,147, 15, 96, 15,135,195,201,230,241,120, 57, 28, 14, 39,187,242, 96,179,217,217, - 44, 22, 43, 27,192,166, 90,172,101, 93,171,205,114,174, 57, 56, 56, 36, 57, 56, 56, 36, 57, 58, 58, 38, 57, 58, 58, 38, 57, 57, - 57,189,113,216,218,218, 94, 51,182, 61,189, 29, 37,237, 67, 26, 73,175,251, 57, 73,174,181,112, 16,123,191,139,107,228,237, 40, -105,223,186,145,229,117, 63, 39,233,213,255,111,156, 1,142, 96,152,141,222, 12,179,209,155, 9,112, 4, 83,223,251,119,105,246, -119,114,114, 98,156,156,156, 22,252, 85, 75, 9,181,240,255,237,207,251, 59,228,244,144, 74,165,251, 27, 53,106, 84,217,215,245, -182,176,176,184, 40,145, 72,122, 87,244,117,189,197, 98,241,229,150, 45, 91,142,174,143,211,218,218,250,158,189,189,125, 86,197, -145,233,224,224,144,233,224,224,144,105,111,111,159, 97,111,111,159, 97,103,103,151, 94,121, 88, 89, 89,221,106, 96,221,237, 1, -180, 1, 16, 4,192,226, 29,182,167, 59,128,137, 21,125,208, 10, 0,227, 1,180,122, 7,215,136,224, 8,173, 63,229, 91,185, 94, -231, 72,236, 74, 56, 18,187, 18,190,165,203,245, 58, 82,240, 24,195,217,220,218,218,122,169,133,133,197,239, 82,169,244,170, 84, - 42, 61,106,107,107,187, 12, 64,243,255,210,189, 36, 1,176, 21,229,241,153, 78,162,124, 41,252, 40,202, 55, 21, 52,254, 7,222, -243,255,159, 49,225,191,245,195, 93,205,156,102, 78, 51,167,153,211,204,105,230,252, 23,114,146,230,246, 52, 11, 45, 19,133,214, -235, 7,128, 58, 34,195,155, 97,134, 25,102,152, 97,198,255, 99,208,230, 38, 48,195, 68,212,184,180, 76,212,161, 74, 77,137, 53, -213, 16,101,123,206,204,105,230, 52,115,154, 57,205,156,102, 78, 51,231,255, 59, 78, 51,222, 33,204,102, 85, 51,167,153,211,204, -105,230, 52,115,154, 57,205,156,255,235, 48, 47, 29,154, 97,134, 25,102,152, 97,134, 25,102,252, 69,216, 92, 77,112,189,178,132, -104, 22, 90,166,131, 4,240, 25,128, 65, 0,154,162, 60,155,253, 33, 0, 63,163, 97,107,250, 22, 0,102, 3,104,135,242,221, 57, - 9, 0,174,162,124,119, 78,169,185,185,107,134,173,173,237, 92, 14,135, 99, 5,148,167, 54,169,124,173,254,127,138,162,138, 20, - 10,197,178,191,168, 8, 44, 24, 25, 65,185,178,172,213,203, 86,253, 85,175,215,255,149,229, 52,227,159, 9, 47,107,107,235, 61, - 5, 5, 5,195, 81, 45,201,178, 25,102,252, 47,192,206,206,110,146, 78,167,155,199,229,114,151,230,230,230,254,242,255,168,234, -111,136,172, 87,132, 86,100,100,228,101, 0,232,213,171,215,251, 0, 96,101,101,117,131, 36, 73,119, 83,126,129,166,233,132,162, -162,162, 90, 3,168, 89, 89, 89,221, 96,177, 88,111,112,234,245,122, 41,155,205, 46,169,233, 59, 6,131, 33, 77,161, 80, 4,253, - 67, 26,145, 0, 16, 41,147,201,212,139, 23, 47,254,185, 83,167, 78,174, 25, 25, 25,134, 89,179,102,117,124,248,240, 97, 79, 0, -221, 77, 20, 91,161, 4, 65,236, 8, 8, 8, 56, 50,106,212,168, 3, 33, 33, 33,188,252,252,124,233,161, 67,135,156,119,238,220, - 25, 69,211,244,112,212,145,104,245,255, 51, 56, 28,142, 85, 90, 90,154, 20, 40, 79, 77, 82, 33,172,160,215,235,161,215,235,161, - 84, 42,225,239,239,255,206,127,215,209,209, 49,144, 32,136,245, 18,137, 36,168,180,180,244, 46,128,201,153,153,153, 15, 77, 41, -171,193, 96, 0,195, 48, 85,229,244,241,241, 49, 95, 80,211, 48,142,199,227,125,228,233,233,217, 90,163,209, 20, 38, 36, 36,220, -161, 40,234, 91,188,187, 28,109,150, 0,190,229,243,249, 33, 77,155, 54,117,141,141,141, 77,213,233,116,183, 81,158, 12,185,248, - 93,136,172,247,223,127,255,218,134, 13, 27,108, 62,253,244,211,107, 87,175, 94,109,111, 22, 91,102,252,183,224,234,234,106,165, - 84, 42,127, 5, 16,200,225,112, 28, 5, 2, 1,132, 66, 97, 22,159,207,127, 32, 20, 10, 63,185,126,253,122,145,169,156, 20, 69, -125,155,148,148,228,216,166, 77,155,149,246,246,246, 11,243,242,242,212, 58,157,238,124, 97, 97,225, 12, 0,138,186,190,251,186, - 22,249,151,137,172,234,175,168, 20, 93,236,138,138, 49, 0, 58,189,162,192,216,108,151,228,228,100,123,129, 64, 0,154,166,171, - 6,179,215,143,202,243, 90,173, 22,190,190,190,186,122, 6, 28,215,212,212, 84,123, 30,143, 87,117, 78,171,213,194,217,217,153, - 78, 75, 75,179,175, 72,123, 80, 5,141, 70, 3, 23, 23,151,127, 82,206,163,207,172,173,173,139, 83, 82, 82,253,213, 26,221,162, -241, 83,231,204, 29, 62,232, 3,217,141, 27, 55,232,238,221,187,107, 46, 95,190,252, 25,202, 19,167, 26,213,153, 19, 4,177,115, -214,172, 89, 11, 5, 34, 11,155, 11, 55,158,106,118, 30, 58,145, 30,224,229, 70,204,152, 49,131, 53,109,218,180, 43,129,129,129, -123,104,154,126, 15, 38, 88,182,100, 50,217, 41, 62,159,223,164,162,253, 82, 10, 11, 11, 63,252, 7,222,144,108,188, 25, 60,182, -166,115,245, 34, 63, 63, 31,101,101,101,111, 28, 62, 62, 62,198,230,202, 52,169,220, 28, 14,231,232,242,229,203,157,179, 50, 51, -241,227,234,213,109, 80,110,201,108, 99,204,151,115,114,114,222, 40,167,183,183, 55,204, 48, 9,179, 23, 46, 92,184,252,227,143, - 63, 6, 69, 81, 40, 43, 43,147,199,197,197,181,156, 55,111, 94,255,151, 47, 95,182, 6, 16,255,182,147,113, 79, 79,207,152,207, - 63,255,220,186,117,235,214,168,200, 82, 33,191,122,245,106,155,173, 91,183,142, 76, 73, 73,241, 6,144,251, 54, 63, 96,109,109, -189,103,203,150, 45, 54, 34,145, 8,199,142, 29,179,233,210,165,203,213,251,247,239,119,120, 11,177, 69,218,216,216, 76, 3,208, -153,166,105, 30,128,219,133,133,133, 75, 96,122, 84,119, 39,137, 68,114,152, 36, 73, 55,224,207,104,244, 36, 73,218, 18, 4,145, - 87,121,142, 32, 8,123,154,166,111, 22, 20, 20,180, 53,223,142,255,110,216,216,216,140,203,206,206,222,192,231,243,185, 50,153, - 12, 34,145, 8,108, 54, 27,108, 54,187, 17,159,207,111,196,231,243,123,132,133,133, 77,190,120,241, 98,157, 17,246, 67, 3, 28, -198,128, 36, 22,177, 8,146, 5, 0, 36, 71,108, 97,105,105,137, 69,139, 22,137,251,246,237, 43, 6,128,107,215,174,141, 26, 61, -122,116,151,180,180, 52,223,218,196, 86, 77, 90,228, 95,132,205,117, 13,120,168, 80,143,151, 95,121,114, 73, 18, 60, 30, 15,183, -110,221,130, 49,193,202, 43, 83, 36,212,217, 27, 84, 68, 24,127,248,240, 79, 3, 64,229, 64,195,227,241,112,253,250,171, 65,229, - 67, 67, 67,171, 30,246,191, 11,131,124,202,131, 60, 30,156, 82, 94,174,240,245,229,209,181, 15, 78,241, 70,199, 31,146, 49,104, -218,130, 33, 42,181, 46, 24,128,178,168,176,176,240,110, 68, 68, 70,128,151, 23,119,207,158, 61,173,157,157,157, 7,153, 32,180, -102,191,247,222,123,135, 89, 66, 75,219, 81,163,199,140,250,132, 77,234, 70, 78,156,185, 52, 53, 51, 79, 57, 97,194,132,136, 99, -199,142,141,250,254,251,239,159,125,245,213, 87,179, 1,124, 99,108,249, 5, 2, 65,147,231,207,159,123, 82, 20, 5, 31, 31,159, -127, 98, 26,131, 0,148, 7,223,251, 24,192,190,138,115,195, 80, 30,185, 63, 16,192, 3, 83,200, 42, 45, 88, 53, 29,239, 26,206, -206,206,222, 35, 70,140,176, 45,200,203,195,143,171, 87, 87,158, 14, 66, 61,203,136,149,207,143, 86,171,197,192,129, 3, 71, 80, - 20,197,174, 20,129, 26,141, 70, 91, 92, 92,172,198,159,142,165,185, 0, 62, 48,162, 56,238, 98,177,248, 63, 0, 2,203,202,202, -156, 1, 64, 44, 22,167,211, 52,125, 68,169, 84,126,131, 63, 19,248,154, 60,193, 5,208, 18,181,167,130, 98,150, 47, 95, 30, 59, -103,206,156,248,255, 2,103, 19, 7, 7,135,101,225,225,225, 56,113,226, 4, 78,158, 60,169, 23, 10,133,236,209,163, 71, 19,147, - 39, 79,150,125,254,249,231, 61, 0,172,121,203,203,220, 99,225,194,133,214, 45, 90,180,192,161, 67,135,240,232,209,163, 50, 79, - 79, 79, 97,167, 78,157,192,102,179,173,231,206,157,219, 29,192,142,183,249,129,130,130,130, 37, 51,103,206,220,185,111,223, 62, -105, 66, 66, 2,214,175, 95,111, 59,100,200,144,203, 41, 41, 41,239,155, 32,182,248, 0,166, 1, 8, 99,177, 88, 29, 70,143, 30, -109,152, 58,117, 42,135, 36, 73,253,234,213,171,237,182,110,221, 58,132,195,225, 4,230,231,231, 27, 51, 73, 35, 1, 44,250,228, -147, 79,198, 94,188,120, 81,118,231,206, 29,158,141,141, 13, 40,138,170,178, 20,211, 52,109, 95,121,207, 26, 12, 6,120,123,123, -187, 84,251,190,240,223, 42, 52, 72,146,212,209, 52,205, 1, 32, 0,160,169,239,253,255,146,200,178,182,182,254,180,160,160,224, -103, 71, 71, 71, 56, 56, 56,188, 49,214,106, 52, 26, 8, 4, 2,174,163,163,227,150,190,125,251,114,142, 30, 61, 90,235, 18, 32, -193, 34,190, 61,182,127,177,179,181, 76, 10, 0,248,105,227,105, 21, 0,252,254,251,239,200,200,200,128, 76, 38,131,175,175, 47, -107,241,226,197, 78, 51,102,204,248,177,176,176,240,147,218,184, 94,215, 34,255, 50,139,214,230,154,222,215,233,163,197, 48, 76, - 85,158, 60, 35,111,218,215, 79,157,123,141,143,208,106,181,120,221,162, 85,249,240,114, 56,156,215,205,143, 32, 8,130,169,139, -179, 6,140, 22,139,197,254, 74,165,114,157, 9,179,219, 42,206,131, 83,188,177,147, 63,107, 88,101, 38,210, 30, 51,203, 95,119, - 2,184,145,248,201,250, 13,239,191,239, 60,109,254,218, 5,101,249, 25,121,115, 71,244,110,226,233,104, 35, 20, 23,229, 20, 91, - 55,111,222,237, 53,139, 76,125,229,236, 56,106,212,168, 93,103,110, 37, 17, 2, 1,151,203,102,177, 56,237,253,188,108, 92, 45, - 89,150, 82,192, 50, 53, 62,246,198,152, 49, 99,252,190,250,234,171, 14, 38,112,162, 98,192,197,238,221,187, 65, 16, 4,105, 74, -221,223, 33,206,213, 37,178, 24,134, 1, 65, 16,123,171, 13, 42,123, 43,206,221,175, 38,182,216,117,181,103,165, 53,181, 82, 84, -141, 30, 61,122,132,193, 96, 96, 87,235, 36, 94, 23, 48, 53,137, 24,163,234,238,228,228,116, 6,192, 7, 4, 65, 64,171, 86,107, -255,243,195, 15,213,255,124,239, 53,145,117,174,182,103, 73,175,215,131,162, 40,246,253,251,247, 57,213,238,117, 14, 0, 49, 0, - 91,134, 97, 64,146,228, 99, 35,218,211, 91, 36, 18,221, 56,126,252,184, 69, 80, 80, 16,193,227,241, 96, 48, 24, 16, 29, 29,237, -250,253,247,223, 79, 60,119,238, 92,119,165, 82,233,131, 55,147,167, 27,115,141, 90, 94,189,122, 85,233,225,225, 81,163,112, 84, - 40, 20,108, 47, 47,175,247,107, 17, 69,127, 53,103, 90,118,118,118,191, 15, 62,248, 96, 82, 86, 86, 86,140,193, 96,248, 26,128, -175,173,173,237,253, 1, 3, 6, 64, 40, 20,134,149,149,149,173,121,155,123,222,222,222,190,111,219,182,109,177,126,253,122,124, -255,253,247, 93, 1,156, 7,208, 69,161, 80,156,235,211,167, 15,172,172,172,250, 21, 21, 21,237,120,139,231,200,171, 99,199,142, - 91, 22, 45, 90, 36, 61,113,226, 4, 60, 61, 61, 81, 82, 82,130, 47,191,252,210,254,187,239,190,187, 84, 84, 84,212,169,218,115, - 81, 27,167, 15,159,207,223,177,111,223, 62,137,135,135,135, 7,151,203, 37, 61, 60, 60, 80, 80, 80, 0,181, 90,205, 95,186,116, -169,159, 80, 40,124,184,102,205,154, 29, 0, 6,212, 83, 78, 18,192,146, 77,155, 54, 77,154, 48, 97,130,213,136, 17, 35, 40,173, - 86,139, 3, 7, 14,128,197, 98,129,195,225, 64, 36, 18, 85, 37,175,230,114,185,104,222,252,141, 32,233,199,234,168,111, 49,202, -253, 80,173, 96,218,178,235,185, 58,248,170,150, 62, 56, 28, 14, 4, 2, 1, 4, 2, 1,248,124, 62,158, 63,127, 62, 95, 32, 16, -172, 38, 8,194, 96, 12, 39,241,167,186,240, 7,112,167,190,247,120,211, 53,228,239,236, 63, 43,225, 66, 16,196, 79, 0,194,202, -135, 93,242,178,173,173,237,244,236,236,236,100, 99, 57,157,156,156,108,242,243,243,215, 56, 57, 57,193,193,193,161,106,252,118, -118,118,134, 94,175, 71,118,118, 54, 24,134, 65, 81, 81, 17, 68, 34, 17,228,114,249,154, 9, 19, 38, 28,218,188,121,115,126,141, -156, 52,190,239, 51,100,222,183, 44, 22,139, 4, 0, 22, 91, 34,249,124, 14,208,164, 73, 19,180,111,223, 30,106,181, 26,197,197, -197,104,217,178, 37,155, 32,136, 81, 4, 65, 88, 48, 12,243, 11,128, 11,255,131,134,194, 90,157,225, 23,190,190, 46, 90,153, 45, -158,203,229, 26, 37,180, 42, 62, 95,159, 5,133,212,235,245,224,114,185,175, 88, 36, 8,130, 0, 69, 81,175,156,175, 20, 90, 13, - 17,234,147, 39, 79,166,183,108,217, 50,169,176,176,112, 35, 26,184,148, 48,106,212,168, 55,252, 61,102,204,152,145,150,147,147, -195, 12,236,230, 47,142,249, 35, 35,179,169, 76, 34,180,147, 74,221, 4, 50,107,171,252,252,252,155, 21,157,137,177,104,246,222, -123,239, 9,119, 70, 92, 77, 27,255,197,242,197, 65, 30, 54, 22,173, 92,108,101,142,150, 66,158,132, 36,148, 2,131, 62,205,218, -218,218,211,212,114, 87,246, 11, 34,145, 8, 36, 73,254,147, 44, 90,236, 74,145, 85, 80, 80,128, 19, 39, 78,160,103,207,158,247, - 43, 69,136, 66,161, 64,102,102, 38,156,156,156,238, 87, 88, 62,234, 93, 70,164,105, 26, 58,157, 14, 58,157,174, 74,192, 84,187, -135,170, 4, 76,229,103, 89, 44,214,227, 6,150,125,177, 76, 38,235, 24, 22, 22,198,219,127,224, 0,143, 97, 24, 37,202,115,168, -149, 50,255,215,222,117,135, 69,113,173,239,119,102,182, 23, 22, 88, 58,130,160,198,142, 13,123,175, 81,163,230,154, 24,203, 77, -172, 87,131, 49,166,168,137, 38,185,166, 24, 98,137, 70,175, 38, 26, 11,209,196, 18, 83,108,177,107, 44, 17, 37,118,176, 32, 32, -150, 40,189, 45,203, 46,187,203,178,101,102,231,247, 7,187,155, 5, 41,187,176, 88,242,227,125,158,121,216,217, 25,222, 61,115, -230,148,247,124,231, 59,223, 97,171,216, 32,187, 2,104,154,182, 91,217,184, 92, 46,210,211,211,237, 29,151,109,111, 73,161, 80, -232,156, 41, 67, 32,120,255,151, 95,126,145,117,235,214,141, 40, 44, 44,132,197, 98,177, 55,146,235,215,175, 23,142, 29, 59,182, - 81,124,124,252,127, 13, 6,195,231,181,120, 86,162, 42, 65, 4, 0, 50,153,140,134,115, 17,179,107,228,164,105,154,232,221,187, -247,124,133, 66,209, 94,175,215, 47,113, 38, 27, 1, 28,200,204,204,116,236,216,175,167,164,164,232,199,143, 31, 47,106,210,164, - 73,247,164,164,164, 58, 21,210,150, 45, 91,246,228,114,185,184,116,233,146, 1,128,109,100, 29,123,227,198, 13,195,152, 49, 99, - 4,161,161,161, 61, 85, 42,167, 93, 86, 90,182,110,221,250,132,191,191,191,200,214,134,250,249,249,113, 99, 98, 98, 60,178,178, -178, 96, 50,153,240,225,135, 31, 98,212,168, 81,240,245,245,197,188,121,243, 2, 86,172, 88,241,163, 86,171,237, 92,157,209,154, -207,231,111,191,123,247,110,139,160,160, 32,209,197,139, 23,209,161, 67, 7, 40, 20, 10,228,230,230, 66,171,213, 34, 55, 55, 23, -211,167, 79,247,255,223,255,254, 23,236,132, 37,203, 46,178, 98, 98, 98, 84,123,246,236,161, 54,111,222,236,193,229,114,237, 66, -139,195,225,216,133,150,109,111,197, 90,204, 52,168,172,162,205, 75,173, 86,215,197,207, 77, 0,128,239, 40,178, 4, 2, 1, 4, - 2, 1,132, 66, 97,157,246,101,125, 70,208,136, 32,136, 36, 30,143, 39, 16,139,197, 60,146, 36, 33, 16, 8,134,201,229,242, 91, -237,218,181,107,119,226,196,137,135,206,144,148,150,150,110, 23, 8, 4, 92,127,127,127, 0, 64,139, 22, 45,208,161, 67, 7,232, -116, 58,139, 90,173,134,151,151, 23,153,150,150, 6,189, 94,143,156,156, 28,132,133,133,113, 73,146,220,142, 50, 63,228, 71,112, - 62, 33,119, 35,128,141,182,115, 95, 95,223, 60, 71, 75,167, 80, 40, 68,163, 70,141,144,149,149, 5, 15, 15, 15,234,179,207, 62, - 27,243,235,175,191,190,124,254,252,249, 41, 0,118, 56, 80,125,254, 12,251,104,217, 68,150,227,223,191,133,214,168, 81,163, 22, - 29, 58,116,168,127,101,163,112, 46,151,235, 54, 95, 23,155,160,146,201,100, 21,173, 86,176, 88, 44, 85, 89,180, 92,254, 29,161, - 80, 40,154, 53,107,150,102,195,134, 13, 46,139,173,113,235, 82,236, 86,172, 71,134,145,109,219,158,255,239,127,255, 59,250,143, - 63,254,200,234,210,172, 9, 71,146,157,166, 21,202,188,188, 16,210,120,228,212,151,198,220, 64,217,234, 67,103,113, 87,163,209, -136,158, 11, 17, 27, 73,178,148,104, 44,224,120, 4, 73,120,130, 64,111,239, 70, 60,163, 33, 95,230,237,205, 55, 24, 12, 42, 84, -179, 9, 52, 0, 4, 4, 4, 28, 23,137, 68, 97,182,115,111,111,111, 79,150,101, 33, 22,139, 17, 20, 20, 36,165, 40, 42,213,161, -114,165,229,229,229, 13,171, 41, 97, 94, 94, 94,199, 5, 2, 65, 24, 73,146, 32, 8, 2, 20, 69,129, 36, 73,144, 36,105,255, 76, - 81, 20, 8,130, 64, 73, 73, 73,218,195,135, 15,135, 57,241,188, 52,128, 72,130, 32, 18, 14, 31, 62,140,238,221,187,227,232,209, -163, 24, 62,124, 56,212,106, 53, 18, 19, 19,209,175, 95, 63,160,108, 74,209, 41, 56, 58,191,219, 6, 5,183,111,223,182, 11, 23, -199,195,195,195,163, 46, 38,246,184,113,227,198,225,187,239,190, 99,173,131, 9, 9, 65, 16, 29, 60, 61, 61,111, 39, 39, 39, 59, -229, 7,195,178, 44, 76,166,191,111,181,117, 94, 86,127, 8,151, 54, 7,166, 40,106, 88,231,206,157, 9,181, 90,109, 19,144,224, -112, 56,160, 40, 10, 20, 69,225,219,111,191, 21,117,235,214,237, 99,129, 64, 48,159,199,227, 21,155,205,230,159, 75, 75, 75,151, - 0, 80, 61, 77, 45, 82,223,190,125,231,102,100,100,140, 10, 11, 11, 59, 88, 7, 26,214,108, 54, 27, 1,136, 40,138,226,186,161, -141,162,172,101,171,212, 65,236,211,214,115, 1,202,166,137,157,130,175,175,239,143, 71,142, 28, 9, 9, 11, 11,131,217,108, 6, - 77,211,208,106,181,136,141,141,133,193, 96, 0, 77,211,104,209,162, 5, 62,253,244,211,210,119,223,125, 87,184,105,211,166,124, -173, 86, 59,177, 6,218,119,119,239,222, 45, 9, 10, 10, 18,233,245,122,220,191,127, 31,157, 59,119,134, 70,163,129, 78,167, 67, - 73, 73, 9, 76, 38, 19,138,139,139,189, 24,134, 49,214,192,245,137,163,200,154, 57,115,230, 77, 62,159,223,249,237,183,223, 70, -102,102,166,189,206,191,254,250,235, 8, 8, 8,176,215, 37,107,155,236, 82,195,204,225,112, 32, 16, 8,192,227,241, 84,141, 27, - 55, 6, 65, 16,194,180,180,180,218, 76,197,201, 0, 20,115,185, 92,190,163,192, 18, 8, 4,184,116,233,210,127,249,124,126, 85, -214,172,170,234, 37,235,202,249,147, 6, 65, 16,107,120, 60,158, 64, 46,151,243, 28, 6,156, 60,169, 84, 10,127,127,255,117, 0, - 70, 56,249,220,157,228,114,185,189,125,239,216,177, 35, 50, 50, 50,246,169,213,234,201,249,249,249, 32, 73,114, 59, 73,146, 47, -219, 6,169, 69, 69, 69, 8, 13, 13,237, 84, 21, 95,175,200,192, 55, 64,176,229, 44, 90, 21, 6,104,144,201,100,120,240,224, 1, -116, 58, 29,123,231,206, 29, 98,214,172, 89,132,209,104,252, 33, 62, 62,254, 2,202, 86,219, 87,169, 69,158, 17,184,238,163,101, -179,104, 57,219, 1, 16, 4, 81,227,104,194,108, 54, 75, 35, 34, 34, 42,115,248, 34, 42, 19, 90,214,233,164, 90, 21,116, 46,151, -235, 81, 91,177, 85, 17, 7,247,252, 20,176,252,211, 15, 63,149, 7, 55,121,110,254,252, 79, 56, 47,190,248,226,197,109,219,182, - 49,242, 54, 35, 6,159, 62,190, 35,224,235,247, 22, 28, 61,114,228, 8, 80,230, 24,237, 44,226, 14, 29, 58, 20, 56,239,157,217, -248,244,253,119,143,201, 90,248,242,165,132, 92, 34, 52,232, 10,164, 96,245,130,230,173, 71,237, 61,120, 48, 7, 64,124,117, 36, - 98,177, 56, 44, 41, 41,169,133,227, 66, 2,163,209, 8,177, 88,140,211,167, 79,251,137, 68, 34, 63, 0,208,235,245,104,215,174, -157,179, 22,147,176,212,212,212, 22, 30, 30, 30, 40, 41, 41,129,193, 96,128,217,108,134,197, 98, 1, 65, 16,224,114,185,224,243, -249,144, 72, 36,174,174,236,187, 6,224,181,145, 35, 71,238, 60,122,244, 40, 34, 34, 34, 80, 84, 84,132,148,148, 20,155,200,114, -201, 71,203,102, 37,114,244,199,226,112, 56,248,177, 89, 51,188,158,157,109, 23, 48,107, 60, 61,241,169,165,118,187,105,180,107, -215,142,141,139,139,195,177, 99,199,240,175,127,253,139,216,191,127,191,137, 97, 24, 94,118,118,246,205,236,236,108,167, 56, 44, - 22,139, 61,173,182,118,219, 81, 96,185, 42,180,104,154,246,224,243,249, 40, 45, 45,133,205,242,224,120, 52,109,218, 20, 74,165, -146, 83, 92, 92,204,201,206,206, 22, 47, 94,188,248,237, 51,103,206, 4,105, 52,154, 87,159,100, 43,180, 97,195,134,176,215, 95, -127, 61,157,195,225,176,195,135, 15,159,148,150,150,246, 82, 80, 80,208,169, 63,254,248, 99, 21,128,150,174,242,249,250,250, 94, -229,112, 56, 33,197,197,197,188, 93,187,118,153, 53, 26, 13,207,207,207, 47,207,214,118,216,242,218,108, 54, 59,181,114,217,215, -215,247,170, 66,161,224,173, 93,187,214, 92, 88, 88,200, 11, 8, 8,200,179,241,168, 84, 42,222,174, 93,187,204,197,197,197, 60, - 79, 79,207,171,106,181,186, 70, 62,133, 66, 49,113,202,148, 41,231, 78,157, 58,229, 75, 81, 20,210,210,210, 80, 88, 88, 8, 47, - 47, 47,108,223,190, 29, 97, 97, 97,216,189,123,183, 82,169, 84,206,248,234,171,175, 62,182,138,172,154,124,180,250,117,239,222, - 61, 76,165, 82,193,203,203, 11, 58,157, 14, 87,175, 94, 69,219,182,109,145,157,157, 13,146, 36,225,229,229,133,245,235,215,151, - 16, 4,161,172,142, 72, 36, 18,189, 20, 21, 21,229, 5, 0, 81, 81, 81, 94, 81, 81, 81,149,118,112, 61,123,246,196,186,117,235, - 42, 10, 45, 87, 6, 6,118,171,147,131, 56, 42,237,209,163, 7,206,156, 57,179,192, 69,113,100,180,137,182,138,214, 44,129, 64, -224,242, 98, 26,139,197,194, 67,153, 75, 3,225,204,249, 83,128,254, 34,145,136, 87,241,203,146,146, 18, 94, 80, 80, 80, 95, 23, -132,175,143, 72, 84,102,112, 10, 11, 11,131, 90,173,102,140, 70,227,132, 29, 59,118,152, 1, 32, 50, 50,114, 2,195, 48,165, 52, - 77, 83,124, 62, 31, 58,157, 14,254,254,254, 62,213,216, 70, 63, 56,240,243,226,192,138, 62, 90, 65, 65, 65,136,140,140,132,193, - 96, 64, 78, 78, 14, 98, 99, 99,205, 12,195,236,220,176, 97,131,197,207,207,239, 63,175,188,242, 10, 21, 31, 31,255, 22,128,185, - 85,105,145,103,204,154, 21, 83,165,208,178, 42,200, 51, 0, 6, 84,124,200,138,226,167, 58,161, 85,211,212, 33,159,207, 87,165, -167,167, 75, 28, 59, 21,154,166, 17, 28, 28,108, 97, 89,150,168, 76,104,213,197, 20,204,229,114, 61, 62,250,232, 35,213,134, 13, - 27, 38, 62,120,240, 96,145, 51,255,179,235,173,214,216, 86, 65,100,109, 92, 30,189,110,237,242,197,242,123,199,126,192,230,111, - 86, 50, 12,131,248,246,237,219,247,213,106,181, 28, 79,137, 25, 10, 21,142, 90, 69,150,179,162,144, 4,240,253,229,203,151,227, - 71,140, 24,241,231,247,191,236,149,103,223,191,127, 65, 80,172,200,145, 53,111,193,225, 53, 10,123, 89, 83, 90,202,155, 48, 97, -130, 31,128, 87,106,106,196, 84, 42, 21,114,115,115, 43, 10, 48,220,190,125,251,145,123,157, 74, 28, 73,130, 97, 24,236,217,179, - 7, 98,177, 24, 18,137,164,220, 97, 19, 89,181, 92,168,144, 10, 0,195,135, 15,135, 82,169,132, 84, 42,117, 58, 93, 21,197, 11, -203,178, 48, 26,141, 48, 26,141, 48,153, 76, 12, 0, 46,135,195,193,244,204, 76,187,149,199, 21, 1, 83, 17,237,219,183,103,207, -159, 63,143, 63,255,252, 19, 58,157, 14,107,215,174, 69, 80, 80,208, 32, 0,159,184,202,229,224,164,207, 20, 23, 23,115,139,139, -139,237,214, 65, 46,151,107,183, 30, 56,105,201,227,113, 56, 28,251,104,212,118, 56, 90,181, 40,138, 66, 64, 64, 0, 2, 3, 3, -177,113,227, 70, 94,147, 38, 77, 70, 61,201, 22,104,197,138, 21,205,215,172, 89,179,101,219,182,109, 71, 39, 78,156,248,107, 98, - 98,226, 52, 79, 79,207,155,167, 79,159, 94, 44, 16, 8, 44,181,172,223, 33,217,217,217,254,142, 95, 89, 44, 22, 49, 77,211,118, - 97, 91, 82, 82,226,244, 0,131,203,229,134, 36, 37, 37,137, 1, 96,241,226,197, 92, 0, 98,155, 51,184,141,179,164,164,132,219, -182,109,219, 16,103,203,250,185,115,231,250, 14, 25, 50,228,252,137, 19, 39,188,195,194,194,144,149,149,133,172,172, 44, 52,111, -222, 28, 75,151, 46,213, 21, 23, 23,247, 6,144,170,213,106,247, 59,201, 25,236,237,237,205, 77, 79, 79, 7, 77,211,232,212,169, - 19,214,175, 95,143, 9, 19, 38,160, 93,187,118, 40, 46, 46, 70, 82, 82, 18,182,110,221,234,205,227,241,170,109, 59,244,122,253, -254,152,152,152,208,138, 22,173, 73,147, 38, 73,242,242,242,236,101, 50, 58, 58,186,220, 20,162, 43,109,178,117,106,171,202,163, - 54,160,105, 90, 38, 20, 10,139, 5, 2, 1,223,230,159, 21, 27, 27,235,178, 53,171,194, 0,208,149,243, 39, 6,155,104,173,164, -111, 69, 96, 96,160,211, 60, 2,129,128,176,181,141, 52, 77, 67,173, 86, 51, 65, 65, 65,246,233,253,132,132, 4, 38, 60, 60,156, -161, 40,138,226,243,249, 32, 8, 2, 98,177,184,202, 6,159,101,216,232, 23, 39,124, 82,110,213,225,156,143, 0,147,201,132,132, -132, 4,152, 76, 38,196,198,198,154,191,250,234,171,108,149, 74, 53, 7, 0,231,248,241,227, 83, 22, 44, 88, 64,249,251,251, 15, -201,207,207, 71, 77, 90,228, 25, 18, 91,143, 88,185,108,189,208,153, 81,163, 70, 17,214,165,149,132, 77, 56,185, 34,180,172,149, -175,198,158,151, 32, 8,228,228,228,216,207,253,253,253, 93,254, 45,103,225,227,227,163,235,217,179,167,135, 66,161,216,191, 98, -197,138, 90, 89,178, 54, 46,143, 94,183,236,139,207,228,202,228,139,200,204,206,129, 50,223, 28, 31,119,243,193, 62, 0,251, 0, - 0,155,218,156, 33,222, 72,249,214, 89,206,214,190,162,142, 92, 30,103,223,243, 35, 70,133,142,143,154, 75,190,249,230,155,125, -166, 76,153,162,158, 56,113,226, 59, 82,169,180,165,201,100, 42,218,123,248,240,195,241,227,199, 55, 97, 24,102, 10,106,136, 57, -162,215,235,211, 6, 12, 24,224,152,159,178,147, 39, 79, 6, 60,124,248, 16,179,103,207, 46,200,202,202, 82, 57,222,235, 76, 26, - 77, 38, 83, 90,199,142, 29,171,156, 46,180, 77, 41, 2,128, 70,163, 73,115, 33, 75, 95,133,213,241,189,176,176, 16,183,111,223, - 6,135,195, 65,143, 30, 61, 16, 23, 23,135, 62,125,250, 36,184, 98,213, 42, 45, 45, 69, 88, 88, 24, 74, 75, 75,161,211,233, 74, - 0, 8,182, 55,105, 2, 0,120,171,176, 16, 87,191,250, 10, 23,151, 45,131, 99,121,118, 22, 29, 58,116, 96, 47, 94,188,136,155, - 55,111,194, 96, 48, 96,198,140, 25, 0, 64, 88,203,174, 43, 33, 51,154, 81, 20, 53,124,196,136, 17,193, 0,160,211,233,136,203, -151, 47, 67, 40, 20,218,235,194,193,131, 7,145,149,149, 5,130, 32,224,237,237, 29, 82, 84, 84,212, 4,192,131,106,204,254,196, -131, 7, 15,240,229,151, 95,194, 98,177, 96,193,130, 5,104,209,162,133, 93, 96,165,165,165, 97,241,226,197, 96, 24, 6,159,125, -246, 25,154, 55,111, 14,179,217, 44, 68, 45, 67,104,184, 3,243,230,205,187,183,111,223,190,163, 25, 25, 25, 47, 44, 95,190,188, - 63, 65, 16,150,249,243,231,127, 41,147,201,152,186,240, 22,169, 53,184,125, 55,205, 46,132, 42, 30,126,190,114,151,249,238,220, -207,176,255, 63,195, 56,242, 49,240,145,123,187,154,196, 18,179,217,172,123,249,229,151,189,246,236,217, 67, 52,111,222, 28,127, -253,245,151,205, 50, 84, 2,215, 67, 58,100, 41,149,202, 22, 20, 69,241,238,222,189,139,240,240,112,116,239,222, 29, 75,150, 44, -129, 66,161, 0, 77,211,240,247,247,183,152,205,230, 4,147,201,116,182, 6,174,232,153, 51,103,242, 0,188, 97,181,108,181,159, - 51,103,142,101,229,202,149, 72, 72, 72,176, 91,176, 28,157,225, 93,157, 58,116,180, 58, 57, 30,177,177,177, 11,248,124, 62, 11, -224, 18, 92, 15,244,108,172,104,209,170,141, 53,171,190, 80,159, 43, 25,131,130,130, 98, 61, 60, 60, 70, 21, 21, 21,149,179,106, -245,238,221,219, 20, 16, 16,112,206, 89, 30,169, 84, 90, 68, 81,148, 15, 0,100,101,101, 65, 34,145,240,238,223,191,191, 12,101, -193,179,209,164, 73,147,101, 74,165,146,215,196,218,158, 6, 6, 6,194,104, 52, 86,233,198,114,225, 90,222, 15, 0,126,176,157, -203,229,242, 28,181, 90, 45, 90,185,114,165,118,217,178,101,122,134, 97, 12, 0, 78,171, 84, 42,123, 28,173,220,220, 92, 53,151, -203,149,123,121,121, 53,178, 9,173,202,180,200, 51,134,170, 45, 90, 86, 37,201, 86, 20, 68, 4, 65, 60,226,160, 94,131,208,170, - 81,100, 49, 12, 83,206,202, 96,115,120,175,236,183,172,157,122,173,166, 14,173, 34, 75,184,119,239,222,237, 43, 86,172,184,228, -236,255, 57,250,104,109, 90,245,197,114,155,200,186,241,231, 9,236, 79, 81, 43, 22, 44, 91,189,166,182,111,160,141,175,184, 67, - 64,128,207,153,175,150, 70,203,238, 29,219,138, 95, 55,253,143,189,113,229, 74,183, 43, 87,174, 76,158, 61,123,118, 99,107,193, - 82, 2,184, 14, 96, 60,156, 88,165,147,149,149, 53,172, 66, 39,156,202,227,241, 2,196, 98, 49,178,178,178,180,119,238,220,113, -121, 74, 70,161, 80, 12,171,135, 16,227, 56,105, 0, 0, 32, 0, 73, 68, 65, 84, 2,200,177,137, 44,133, 66,129,164,164, 36, 12, - 28, 56, 16, 0, 16, 23, 23,135,222,189,123, 35, 62, 62, 30,157, 59,119, 78, 0,208, 21, 53, 4,106, 53,155,205,170, 54,109,218, -216,173, 91,106,181,218, 2, 0, 81, 57, 57,136, 9, 10, 2,135,195,193,197,101,203,176,208,108,198, 18, 23, 5,124,199,142, 29, -217,203,151, 47,227,225,195,135,160,105, 26,163, 71,143, 70, 45, 43,125,187,214,173, 91,159, 60,125,250,180,159, 84, 42,133, 78, -167,131, 86,171,197,212,169, 83, 49, 97,194, 4, 24, 12, 6,236,218,181, 11, 7, 14, 28,128,135,135, 7,116, 58, 29,116, 58,157, -247,200,145, 35,207,167,166,166,246, 3,112,183, 10,161,197, 14, 27, 54, 12,231,206,157, 3, 69, 81,232,214,173, 27, 10, 11,255, - 94, 12, 20, 16, 16, 80,217, 53,234, 73, 10, 45, 14,135,195,198,198,198, 46,239,223,191, 63, 50, 50, 50, 94,232,220,185,243,218, -105,211,166,101,213,149,215,219,211, 3, 29,219, 54,131,193, 96,128,193, 96, 64,112,112, 48, 52, 26, 13,238,221,187, 7,131,193, -128, 0,127, 47,151,249, 34,219, 53,183,243,249,251,251, 67,167,211,225,193,131, 7, 48, 26,141,240,245,117, 73,104,133, 14, 27, - 54,236,143,157, 59,119,250,108,221,186,213, 56, 96,192, 0,254,218,181,107, 9,153, 76, 6,135,142,197, 85,196,198,197,197,133, - 13, 25, 50,164, 85,114,114, 50, 98, 99, 99, 97, 52, 26, 17, 25, 25,137, 59,119,238,160,103,207,158,208,106,181,151,174, 92,185, -114,192, 25,195, 48,128,143,103,206,156, 9,155,216, 58,119,238, 28,114,114,114,224,225,225,241,136,208,178,249, 62, 90, 87,141, - 7, 59,147, 88,155, 32,114,176, 60, 45,244,242,242, 50, 1, 88, 83, 75,235, 19, 0, 32, 35, 35, 67,208,190,125,123,131, 80, 40, -228, 91, 69,219,234,186,240,185, 19,110, 88,201, 88, 37, 2, 3, 3,231,248,250,250, 14,105,218,180, 41,242,242,242,120,124, 62, - 31,189,123,247, 54,117,237,218,213, 20, 24, 24,248,150,179, 60, 2,129, 32,153,199,227,245, 43, 27, 76, 48, 72, 79, 79, 7,203, -178, 11,218,181,107,247,174, 70,163, 65, 97, 97, 33, 95, 38,147,217, 7,213,173, 90,181,130,193, 96, 72,118,193,242, 22, 29, 30, - 30,254, 49,143,199, 91,162, 80, 40, 42, 11, 11,193,247,242,242,146,241,120, 60,152, 76,166,114, 98,179,162, 22,121,214, 69, 86, - 57,161,229,160, 34,203, 9, 29, 87, 44, 90,206, 88, 13,108, 14,246,142,231, 54, 81, 87,241,183,106, 27, 67,203,211,211,211, 96, - 19, 89, 75,150, 44,185, 84, 27,142,221, 59,119, 4,121, 90, 74, 66,179, 47, 29, 65,234,205,120,236, 75, 82, 41, 22, 44, 91,253, -206,139,175,188,154, 87, 81,152, 57,131, 22,126,226,118, 1,254, 62,103, 86,173, 88, 38, 83, 38, 95, 68, 78,110, 46,142, 92,186, - 18,111, 2,146, 0, 44,112,167,105, 25, 40,155, 58,164, 40,234,105, 42,176,118,103,248,156,156, 28,155,200,138, 4,128, 62,125, -250, 36, 88, 69, 22,156,181,104,169, 84,170,138, 91,214, 12, 1,224,107,123,126, 14,135,131,222, 31,127,236,178,200, 2,192,198, -199,199, 67,169, 84,218, 70,138,181, 21, 89, 8, 12, 12,124,255,244,233,211,126,223,127,255,125,241,182,109,219, 10, 45, 22, 11, -183, 99,199,142, 33, 93,186,116, 33,182,111,223, 14, 0, 24, 63,126, 60, 22, 44, 88,128, 91,183,110, 65, 34,145,160, 79,159, 62, -204,162, 69,139,252,231,204,153,243, 86, 94, 94,222, 59,149,246,142, 22, 11, 79, 40, 20,158, 2, 48, 40, 57, 57, 25, 0,206,163, -108, 11, 39,155, 21,161,202,107,206,116,190, 26,141,134,235,225,225, 81,105,104, 8, 94,217,104,200, 85, 11,132,157,243,207, 63, -255,252,114,213,170, 85,251,222,123,239,189,187,117,228,172,212,162, 53,106,212, 40,232, 13, 38,100,230,169,193, 48, 52,244,166, -124,151,249, 28, 45, 90,163, 70,141, 66, 73,169, 17,233, 57, 74,208, 52, 3,141,222,233,190, 92,252,252,243,207, 31,255,249,231, -159, 3, 47, 92,184, 0,134, 97, 44,119,238,220,121,240,242,203, 47,203,230,207,159,239, 83,135, 69, 70,223,188,250,234,171, 99, -255,252,243, 79,101,171, 86,173,228,151, 46, 93, 66,126,126, 62,104,154,198,160, 65,131,192,231,243,211,151, 45, 91,198, 3,240, -141,179,239,198, 42,182, 76, 87,174, 92,121,253,226,197,139,114,185, 92,206,183,180,110,141,156, 19, 39,176,103,207,158, 71,254, - 97,211,166, 77,128,147, 81,248,109, 22,167,203,151, 47,187, 69, 96,149,235,169,249,252, 90, 79, 63, 62,171,184,124,249,114,214, -155,111,190,217, 86, 38,147,173,233,219,183,239, 64, 31, 31, 31,210,219,219, 59,182, 81,163, 70,239,118,236,216,209,233,217, 5, - 46,151, 59, 77, 34,145,220,163,105,154,210,106,181,208,233,116,101,141, 52, 77,243, 73,146, 68,147, 38, 77,236,125, 73,183,110, -221, 16, 24, 24,200,164,164,164, 76,115,150,191,160,160,160,220, 42,196, 74, 48,179,119,239,222, 28,131,193,128,135, 15, 31,198, - 57, 94,168, 76,139, 60, 35,136,170, 86,124,217, 30,202,241,225, 26, 53,106,148, 97, 54,155,217, 36,128,189,126,253, 58, 27, 21, - 21, 85,237, 81, 90, 90,202,250,251,251,231, 84,210,249,193,145,211, 96, 48,148,251, 63,131,193,192, 6, 4, 4, 48,122,189,254, - 17, 78,189, 94,207,134,132,132,100, 85,199, 89, 9,166, 94,187,118,109,195,194,133, 11,187,187,144, 65,118, 78,118, 99,107,118, -235,214,173,255,102, 89,182,127,223,182, 97, 55,199,117, 12, 96,123,183,240,207, 62,176,123,231, 4,150,101,251, 87, 60,108, 1, - 78,171,227,108, 29, 32,105, 51, 56,162,113,209,141, 99, 63,177,167, 87,190,205,174, 26,221,130,237, 28,226,161,106,237, 43,114, -117,143,152, 26,119, 75,143,136,136, 72,181, 88, 44,172,209,104,100, 35, 34, 34,238,184,131,179, 22,168,142,179, 19,202,124,217, - 94,173,228,187, 78,117, 72,231, 13,150,101, 89,165, 82,201,106,181, 90,214, 96, 48,176, 12,195,176,142, 0,112,195, 9, 78,214, -100, 50,177, 69, 69, 69, 44,156,247,185,171,148, 51, 40, 40,232,193,253,251,247,217,231,158,123, 46,195,106,142,159,163,211,233, -216,138,208,233,116,236,192,129, 3,217, 59,119,238,176,225,225,225,165,119,238,220, 97,131,130,130,110,215,144,206,166,161,161, -161,167,124,125,125, 99, 1,180,112,225, 90,181,249,185,107,215,174,102, 44,203,206, 96, 89, 54,170,138, 99, 6,203,178,173,159, - 52,167, 53,127,243, 88,150,101, 75, 74, 74, 88,165, 82,201,102,103,103,179, 37, 37, 37,172, 86,171,101,175, 93,187,198, 94,184, -112,129,189,121,243, 38, 43,151,203,243,156,225,180,241, 25,141, 70,182,184,184,152,205,207,207,103,245,122, 61,171,211,233,216, -196,196, 68,246,234,213,171,108,114,114,114,101,124,143,112,250,248,248,108,202,205,205,213,158, 63,127,190,100,227,198,141, 37, -129,129,129,201, 0,194, 0,180,244,246,246,206,125,251,237,183, 89,169, 84,154, 86,203,122,212,150,203,229, 94, 91,190,124,249, -229, 67,135, 14,229, 29, 56,112,192,184,101,203,150,204,217,179,103,159,229,112, 56,215, 0,180,173,101, 61,242,247,242,242, 58, -127,233,210, 37,186,168,168,136, 85,169, 84,108,113,113, 49,171,211,233, 88,189, 94,207, 26,141, 70,214,108, 54,179,103,207,158, -101, 3, 2, 2, 28,167, 37, 63,168,102, 96, 61,151,101,217,247, 89,150,229,184,187,173,115,224,238,235, 46, 78,119,180,117, 36, - 73,154,172,109, 71,143,178,211,234,207,159, 84, 58, 7, 15, 30,252,217,132, 9, 19,216,225,195,135,179,145,145,145,143, 28,157, - 59,119,102,103,205,154,197, 30, 58,116,136,253,234,171,175, 62,115, 67, 58, 57, 40, 91,244,178,116,240,224,193,230,115,231,206, -177,227,199,143,103, 1, 12,171, 78,139,252, 19, 4,151, 45,188, 3,225,248, 23, 0, 76, 38, 83, 70,106,106,106, 80, 43,154,166, - 0,224,219,111,191,125,196, 50,229,136,115,231,206,209, 4, 65,220,171,238,215, 77, 38, 83,198,233,211,167, 3,214,173, 91,199, -117, 48, 1,131,166,105, 75,118,118, 54,185,118,237,218,114,247,159, 57,115,134,166,105, 58,221,197,135,220,218,169, 83,167,173, -238,200,173,179,183, 30,190,123,252,200,111,190, 61,186,247, 85,201,228,242, 74, 71, 97,187,222,106, 13,226,141,234,173, 90, 4, -135, 92,178,124,105,180,151,109, 10,242,151,132, 92, 85,169,129, 25,152,162,208,223,112,247, 27,214,106,181, 15,109, 43, 1,117, - 58, 93,250, 83, 88, 8,175,161, 44,198, 21, 93,225,187,174,168,163,211,169,197, 98,129,167,167,167,221, 26, 90, 11,139, 40,107, -179,176,218, 94, 93, 93,210,195,178,236,159,137,137,137,225, 83,167, 78,245,216,182,109,219,125,134, 97,184,211,167, 79, 55, 5, - 6, 6,242,226,226,226,204, 0,136,254,253,251,115,114,115,115,217,172,172, 44,229,191,254,245, 47,205,235,175,191,238,115,253, -250,117,190,197, 98,169, 41,104,225, 95, 25, 25, 25,131,107,113,173, 90,140, 27, 55,238, 62,234,190,141, 77,189,115,218,160, 84, - 21,227,254,195, 44,107, 4,115, 11,152,180, 60,187, 95,149,217, 76, 67, 89, 92,232,178, 69,235,222,131, 44,235, 22, 99, 12, 24, - 38,219,202, 87,230, 16,207, 22,149,212,220,155,112, 56,125, 22, 45, 90, 52,130, 36, 73,242,226,197,139,134, 21, 43, 86,100, 20, - 20, 20,140, 6,144, 14, 0, 69, 69, 69, 3,182,110,221,250,163, 19,161, 28,170, 66,146,217,108,238,249,193, 7, 31,188, 3,160, - 15,128,198, 86,238, 56,171, 37,171,182, 17,204,243, 85, 42,213,208, 17, 35, 70,156,160, 40,170,137, 67, 61,242, 5,160,176,213, - 11,150,101,253,243,242,242, 94,112,134,144, 32,136,213,245,213,144,212, 39,119, 29,219,161,103, 98, 37,227,169, 83,167, 62, 31, - 61,122, 52, 39, 44, 44,236,191, 97, 97, 97,100, 81, 81, 17,180, 90, 45, 72,146, 68, 96, 96, 32, 34, 34, 34, 16, 24, 24,104, 73, - 78, 78, 94,250,225,135, 31,214, 24,147,175, 77,155, 54,205,204,102,243,115, 36, 73, 54, 3,208,140,101,217,102, 4, 65, 52, 3, - 32, 7, 0,153, 76, 38, 11, 15, 15,231,244,232,209, 3,221,187,119,199,153, 51,103,176,123,247,238, 31, 0, 28,119,180,102, 85, -212, 34, 79, 3,146, 58,129,109,123, 13,196,173,206,232, 79, 88,112,134, 37, 49, 32, 34,222, 30,103,175,162,200,170,122, 83,233, - 74, 76,127,195, 6, 13, 26,100,175,112, 78,116, 42, 15,107,170,124, 5, 5, 5,195,166, 77,155, 86,142,147, 97, 24, 67, 97, 97, -225,155,189,122,245, 90, 79, 81,148,160, 66,129, 77,203,207,207,127,172,123,245, 85,140,163, 53,108,196, 75,138,186,114, 74,121, -228,115,169,135,191, 67, 94,190, 2,191, 36,228, 22,105,140,204,128, 59,138,146,196,250, 72,127, 90, 90,218,240,103, 64,241, 87, - 38, 90,235,186,121,118,129, 19, 1, 73,107,218,163,142,176,134, 19,113, 75, 37,207,205,205, 93,249,241,199, 31, 15, 93,186,116, -169,223,209,163, 71,101,182, 1,202,152, 49, 99,242, 19, 19, 19,251, 2, 16,148,150,150,158, 92,186,116,169, 95,116,116,180, 15, - 0, 31, 0, 24, 57,114,100, 94, 94, 94,222, 58, 52,160, 90,152,205,230,204,136, 54,173,236, 3, 63,199,144, 14,142,159,105,154, -206,116,133,175, 50, 30,199,115,134, 97,170,229,163, 40,234,189,238,221,187, 83,239,189,247, 94,222,209,163, 71,109, 27,233, 58, - 42,180,212, 26,130,146, 58, 3, 3,128, 21,214,195,157,208, 41,149,202,158, 46,254, 15,211, 80, 26, 43, 29, 80,186,114,254, 68, -176,127,255,254, 79,198,143, 31,191, 85, 46,151,239,104,214,172, 89,171,128,128, 0,153, 72, 36,130,193, 96,208, 24,141,198,219, -169,169,169, 19, 63,249,228,147,191,156,178,112,108,221, 74, 1,224, 89, 44, 22, 33, 73,146, 18, 0, 50,130, 32,188,109, 66,139, - 32, 8,152, 76, 38, 60,124,248, 16, 11, 23, 46,100, 78,157, 58,245, 21,128,207, 92, 24,184,118, 5,224,231,208,142,251, 1, 48, -162, 44,128,109, 1, 65, 16, 87,234, 59,191, 8, 11,206,180,189, 6, 34,169, 19, 42,235, 39,170,223, 84,186,170, 10, 87, 80, 80, -208,211,221,149,184, 42,206,130,130,130,176,167,165,134, 76, 49,172,248, 9,155, 86,148,219,231,208, 38,194, 42, 59,175, 9,106, - 61, 61,251,155,227,183, 86, 26,104,214, 98,162, 45,255,185, 83, 80,146,212,208, 14,185, 29,207,187,171, 46,185, 49, 77,137, 41, - 41, 41,189,102,207,158,253,137, 88, 44,238, 6, 0, 37, 37, 37, 23,179,179,179,191,128,117, 85, 97, 77,215, 27, 80, 53, 20, 10, - 69,151,167,145,207,104, 52,190,219,171, 87,175,175, 25,134, 89, 69,211,116,220,255,131, 87, 81,218, 80, 26,159, 93,252,250,235, -175,127, 1,232, 9, 0, 99,199,142,165, 0, 96,247,238,221, 46,139,231,169, 83,167, 50, 44,203,154,172,229, 65,135,178,213,133, - 69,182, 54, 85,167,211, 21,101,103,103, 39, 51, 12,147, 12,224, 71,184,190,226,214,143, 32,136, 67, 44,203,142,178, 10,183, 67, - 44,203,142,114,252,174,190,173, 90, 53,220, 82,179, 51,124, 3,202,176, 59, 9, 68,197,169,192,154,206,107, 66,106,158, 46, 22, - 64,231,134,220,253,127,137,251,217,217,217, 83,234,112,189, 1,207, 30,210,141, 70,227,232,255, 71,207,171,110,120,229,255,144, -254,175, 22, 2,203,134,228,228,228,122,115, 17,120,210,104,123,173,252, 0,188,226,185, 3,162, 42, 19, 94, 13, 66,171, 1, 13, -104, 64, 3, 26, 80, 23,168, 26,178,160, 1,255,100,216,124,179,108,231, 85,248,104, 85,244,207,178,159, 19,168,122,229,128, 43, -187,146,215,102,149,196,201, 6,206, 6,206, 6,206, 6,206, 6,206, 39,206,233, 5, 32, 28,192,242, 26,238,171,184,186, 48, 15, -128, 2,128,185, 33, 63, 27, 56,235,160, 31,156, 2,203,178, 35,171,155, 58, 36, 8,226,112,125, 9, 45,187, 51,124, 39, 44,138, -184,134, 69,182,115,103,133, 86,125, 99, 72, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 3,103, 29,133,214,192, 15, - 63,252,240, 35,148,133,198, 96, 63,252,240,195,143, 88,150, 29, 89,118,137, 29, 89,159,191,125,171, 51,250, 39,117, 2,107, 59, -110,117, 70,255, 42,110,141,114, 56,236,104,152, 58,108, 64, 3, 26,208,128, 6, 52,160, 1, 79, 59,206, 47, 91,182,172,100,217, -178,101, 54,199,247, 2, 0,132,213,194, 85, 80,159, 63,108,157, 38,116,102,161, 84,245, 91,240, 60, 1, 4,147, 28,222, 36, 46, - 79, 48, 16,172, 37, 2, 0, 64, 82,183, 24, 99,233, 31, 52,109,218, 1, 32,187,182,196,173,129, 54,205,189, 68, 7, 12, 12,195, -203,208, 24,199,166,148,109,115,224, 50,198, 2,189, 5,124,254,239, 2, 47, 47, 81,101,215, 13, 42,149,222, 96, 52, 14,221, 13, -252,217, 80, 7, 26,208,128, 6, 52,160, 1,207, 8, 36,222,222,222,167, 72,146, 12,179,125,225, 24,119,176, 98, 12, 66,134, 97, -114,148, 74,229, 80,148, 77, 21, 63, 78, 78,199,255, 55,162,150,125,185,187,225,234,212, 33, 7, 40, 23,133,245,177,236,152, 77, -113, 5,175,123,120,122, 45,249,247,180,119,125, 90,180,108, 69,132,134, 54, 2, 88, 32, 61, 35, 51,224,222,221, 59,131,127,221, -246,205,188, 98,181,114,161,217, 96,248,206, 85,238, 54,128,164,177, 84, 16,247,221,135,175,121,113, 64,227,213,197, 59,143, 17, - 90, 83,104,114,217,114, 83,151, 68,150,151,143,207,241,101, 39, 79,138,188, 59,116, 40,119,141,101,217,178,253,245,110,220, 16, -253,119,232,208,227, 99,149,202, 97, 13, 98,235, 31,137, 64,153, 76, 54,135,203,229, 14, 48,153, 76, 97,124, 62, 63,131, 97,152, -216,162,162,162, 53, 0,178, 26,178,231,159,141, 86,129,146,190,173,154,133,237,204,206,205, 75, 40, 46, 53, 78, 79,205,214, 42, - 27,114,197,101, 84,183,191,230, 19,219,123, 19, 0,164, 82,233, 85,146, 36, 67, 28, 69,128,109,207, 94,219,121,197,191, 22,139, -229, 47,165, 82,217,171, 26,218,102,114,185,124, 61,128,174, 53, 5, 76,182,198,102,187,162, 84, 42,223, 68,213,171,245, 60,188, -189,189, 63, 39, 8, 98, 28, 73,146, 84, 77,207,100,177, 88, 24,150,101,119, 21, 21, 21,125, 6, 64, 83,213,125,222,222,222, 39, - 83, 82, 82,186,250,251,251,215,104,165,161,105, 26,233,233,233,126,221,186,117, 59,171, 84, 42, 91,215, 39,231,227,214, 34,181, - 69, 53,171, 14,171, 44,232, 0,202,237, 47, 84,175, 17, 89,121, 66,233,129,158,253,134, 13,156,245,206,123,146,107,137,183,241, -251,153, 11, 40,214, 25, 64,145, 36,188, 60,196,104,217,242, 57, 98,117,204, 30,223, 31, 54,174, 94,117,241,220,137,145,165, 58, -245,191, 92,146,233, 98,206,194, 5, 47,119,147,248,200, 25,192,194,224,253, 17, 29, 37,255, 61,148,176, 16, 37,244, 71, 46,139, -172, 83,167,196,249,121,121,136, 14, 14, 6,135,166, 33, 36, 73, 8, 9, 2, 66,146,132, 68, 40,196,240, 45, 91,240,197,209,163, -226, 79, 94,120,161, 65,108,253,195, 32,149, 74,167, 5, 7, 7,175,216,188,121,179, 79,211,166, 77, 33,145, 72,160, 84, 42,125, - 83, 83, 83, 59,205,157, 59,119, 74, 78, 78,206,199,197,197,197,155, 26,114,234,159, 11,139, 5,147,190, 95,242,102,163,156,180, -187,141,102, 46,253,169, 37,225,195, 12,184, 93,168,207,109,200, 25,167,209, 9, 64, 2, 42,223,191,180,186,107, 85, 66, 40, 20, -230,149,150,150,250, 87,119, 15,159,207,207, 55, 26,141, 1, 53,113,145, 36, 25,146,149,149,229, 47, 22,139,193, 48,140,117, 55, - 0,139,125, 32,237,184,251,137, 53, 80, 45, 90,183,110,109,170,142,211,195,195,227,219,252,252,252, 33,182,125, 2, 29, 4, 85, -165,200,202,202, 26,210,182,109,219,111, 53, 26,205,208, 42,196,203,231,239,188,243,206,156,118,237,218,217,172, 64,214, 93, 16, -202,254, 42, 20, 10,204,158, 61,219,254, 27, 22,139, 5, 39, 78,156,120,103,218,180,105, 40, 42, 42,154, 91,205,179,135,249,251, -251, 19,214, 13,197,171,196,162, 69,139,176,104,209, 34,124,243,205, 55, 4,151,203,245,170, 33, 63,221,194,249,184,180, 72,109, - 44, 88, 53, 68,134, 63,140,242,190, 89,135, 31, 17, 90,143, 3, 20, 87,240,159,174,189,134, 12,152, 61,103,129,228,167,223, 78, - 35, 53,249, 6, 82,226,126, 46,119, 79,151,161,211,144,171,208, 96,218,172,247,165, 4,197, 25,112,238,228,254,255,152, 13,250, -239,157,180,102, 5,132, 9,248,111,247,232, 22,193,205, 18,165, 34,208, 91,132, 62,157,155,115, 67,143,223,124, 91, 7,250,235, -228,178, 85, 50, 46,137,172,205,175,189,134,190,102, 51,252, 41, 10, 20, 65,128, 2, 64, 18, 4, 74, 13, 6, 92,153, 52, 9,221, -182,111,199,103, 7, 15,138, 63,127,241, 69,151,196,150, 68, 34,185, 70, 16,132,183, 86,171, 29,137,178,141,165,159, 5,180,149, - 74,165,135, 89,150, 45,210,233,116,157,158,162,116, 5,161,108,142,190,226,232,152,135,178, 21, 85, 46,237, 44, 44, 16, 8, 94, - 31, 59,118,236,234,117,235,214,137,243,242,242,144,157,157, 13,134, 97, 32, 20, 10,209,162, 69, 11,226,228,201,147, 62, 11, 22, - 44, 88,121,248,240, 97,129, 70,163,249,218,149,129, 13,151,203,141,145,203,229, 47, 4, 4, 4, 72,242,243,243, 75, 84, 42,213, - 9,131,193,240, 58,106,191,109, 10,201,229,114, 39,134,135,135,191, 20, 28, 28, 28,144,149,149,165,200,204,204, 60, 96, 48, 24, -126, 64, 45, 55,106,118,200,211, 14,176, 70,171, 7,144, 19, 30, 30,126,235,225,195,135,249,110,228,204, 14, 15, 15, 79,170, 5, -167, 4,192,175, 0,130,107,184, 47, 27,192,120,184,104,205,182,103, 44,107, 57,178,120,205,230,233,209, 83,251, 16,223,207, 29, -210,226,141,111, 78, 94, 32,121,108,191,228,156,210,140, 6, 13,229,156,200,178,110,105, 85, 81, 80, 85,119,173, 90, 24, 12, 6, - 63,147,201, 4,110, 21,155,197,235,116, 58,120,120,120,248, 57,155, 72,145, 72,132,159,127,254, 25, 92, 46, 23, 92, 46, 23, 69, - 69, 69, 8, 9, 9,177,159,243,120, 60,251,231,198,141, 27,215,200,199, 48, 76, 55,138,162,160,213,106,193, 48,140,253, 80,169, - 84, 96, 89, 22, 2,129, 0, 12, 83,182,157,147,195,245,110, 85,241, 17, 4, 49, 46, 56, 56, 24, 63,253,244, 19,140, 70,227, 35, -215,101, 50, 25, 18, 19,255,222,100,132,162, 40,116,239,222,157, 36, 8, 98, 28,128,185,213,240,178, 0, 16, 21, 21, 5,138,162, - 64, 81, 20, 72,146,180,127,182, 29, 12,195, 96,209,162, 69,168,176, 53,217, 99,227,124,218, 80, 67,100,248, 28, 84,225,163, 69, -214,115,186, 28,151,120, 6,139, 37,178, 47,223,124,247,125,233,225,179, 55,145,158,145,254,136,200, 2,128,171,191,255,128,156, -236, 44, 36,164,100, 98,226,127,222,146,202,100, 94, 95, 86,104, 80,171, 92, 54,234,233,193,251,234,195,241,125,132, 90,115, 54, - 52,222, 0,213,140, 15,174, 88,135, 5,163, 58, 8,100, 30,188, 21,206,164, 83,192,231,255,190,236,228, 73,187,200,234,109, 48, - 64,192, 48,160, 25,198, 46,178,140, 52, 13,189,209,136, 32,173, 22,247,166, 77, 3,107, 54,227,227,125,251,196, 2, 62,255,119, -103,210, 9, 0, 60, 30, 47,232,192,129, 3,141,219,183,111,127, 6,206, 7, 51, 61, 89,207,239,168, 58,116,238,216,177, 99,236, -246,237,219, 27,243,120,188, 32,119,112, 10,133,194, 87, 36, 18, 73,129, 80, 40,124,165,150,233, 36, 1, 44,158, 62,125,122,252, -115,207, 61,119,218, 42,172,236,162,230,185,231,158, 59, 57,125,250,244,107, 0, 22, 85, 81,214, 43,227,108, 20, 28, 28,188,100, -221,186,117,226, 59,119,238, 32, 43, 43, 11,102,179, 25,175,190,250, 42, 24,134,129, 94,175,135,209,104,196,242,229,203, 37, 62, - 62, 62, 11, 81,182, 81,176, 51,207,206,243,244,244,188,179,109,219,182,177, 15, 30, 60,144,158, 62,125,154, 72, 76, 76,148,172, - 92,185,114,180,143,143, 79, 42, 0, 65, 45,242,147, 12, 10, 10,250,126,255,254,253,111, 38, 38, 38,134,236,221,187,151,123,241, -226,197,160,141, 27, 55,206, 8, 10, 10,218, 14,128,170,229, 59,234, 36, 22,139, 7,207,159, 63,223,114,254,252,249,172,243,231, -207,103,173, 94,189, 26,125,251,246,237, 29, 29, 29, 29, 89, 75,206,206, 30, 30, 30,131,230,207,159,111, 57,119,238, 92,246,165, - 75,151, 50, 87,174, 92, 73, 14, 26, 52,168,207,146, 37, 75, 58,184,200,249,235,249,243,231,251,103,100,100, 52,205,204,204,108, -146,153,153, 25,158,153,153, 25,158,149,149, 21,150,147,147,211, 56, 55, 55, 55, 52, 63, 63, 63, 52, 54, 54,182, 15,128,157,206, -112,182, 10,144,188, 57,247,213, 33, 37, 11,255, 51,130,253,104,242,243,236,130, 87,251,179, 47,244,107,255, 27,197,225, 16,151, -146,210, 17,226, 9,252, 48,187,107, 88,168,175, 36, 49, 66, 46,109,249,148,213,205,167,141,147, 99, 19, 82, 74,165, 18,135, 15, - 31,134,213,122,213,201, 81,100, 21, 23, 23, 35, 39, 39,199,118,141,227, 76, 58,101, 50,217,169,205,155, 55,179,165,165,165, 80, -171,213,200,207,207, 71, 70, 70, 6,238,221,187,135,194,194, 66,220,190,125, 27, 98,177,248,148, 51,233, 36, 8, 2, 12,195,216, -133,212,137, 19, 39, 48,125,250,116, 40,149, 74,251,119, 28, 14,199,254,217,246, 63, 53,113,218, 44, 79, 12,195,224,210,165, 75, -152, 57,115, 38, 86,175, 94,141,157, 59,119,226,208,161, 67, 80, 42,149,118,177, 69,211,116,141,156, 10,133, 2, 22,139,115, 99, - 38,150,101,161, 86,171,157,126,239,142, 2,136,195,225, 60, 34,138,108,135, 43,101,169,142,156, 79, 45,156,136, 12, 95,245, 8, -219,246,193,106,170, 27, 80, 95,137, 36, 57,188,137,227,166,190,227,147,153, 95,140,172, 60, 53, 40,242,239,126, 47,114,200, 84, -112, 40, 18,151,143,151, 25,174, 72,138,130, 90,103,128, 74,107,194,216,169,115,228,223,173,254,116, 34,109, 42,173, 54,198, 75, - 59,160, 69,132, 84,250,114,219,182,141,201,100, 65, 10, 34, 95,136, 3, 99, 1,216,115, 47,162, 83,145, 63,213,250,119,254,203, - 58,141,105, 73, 34,112,167, 90,107,134,151,151,200,187, 67, 7, 68, 7, 7,163,159,217, 12, 30,203,226,249,188, 60,220,152, 51, - 7,134, 61,123, 64, 2,224,189,242, 10, 6,174, 89,131,179,193,193, 8,212,235,161,154, 55, 15,126,199,142,129, 39,147,137, 80, -224,220,226, 7,130, 32, 48, 96,192, 0,156, 60,121,210,103,248,240,225,199,111,222,188, 57,134,166,233,179,181,201, 91, 79, 79, -207,171, 28, 14, 39,164,166,251,104,154,206, 84,171,213, 46,111, 51,194,225,112,250,117,239,222,125,223,222,189,123,189, 77, 38, -147, 91, 70, 33,124, 62,127,248,232,209,163, 55,111,216,176, 65, 54, 99,198,140,205,135, 14, 29, 42, 49, 26,141,199, 92, 41, 82, - 0, 22,111,218,180,233,141,168,168, 40,175, 25, 51,102,176,247,238,221,115,180, 94,249,245,237,219,247,185,205,155, 55, 7,118, -237,218,245,157,153, 51,103,242, 0,124, 92,147,149, 71, 42,149,206,218,188,121,179,175, 66,161,128, 86,171,181, 55,178,153,153, -153, 16,137, 68, 32, 73, 18, 36, 73,130,203,229,226,203, 47,191,244,153, 53,107,214, 28,165, 82, 57,199, 9, 43, 89,204,250,245, -235,253,134, 14, 29, 74, 62,120,240, 0, 36, 73, 66, 40, 20,226,181,215, 94, 35,245,122,189,119,116,116,244, 86,157, 78, 55,193, -149, 60,228,114,185, 19, 99, 98, 98, 90,246,238,221,155,147,146,146,130,158, 61,123,226,242,229,203,120,229,149, 87,184, 26,141, -166,201,130, 5, 11,166, 27, 12, 6, 87,227,184, 4,137,197,226,118,127,252,241, 71, 70,104,104,168,189, 97,105,210,164, 9, 51, -114,228, 72,101, 74, 74, 74,171,243,231,207, 23,246,234,213,203,149, 13,203, 27,137,197,226,214, 71,142, 28,201,137,142,142, 30, -188,105,211,166,209, 0,208,173, 91,183, 3, 95,124,241,197,105,165, 82, 25,113,246,236, 89,101,191,126,253, 50,157,228, 11, 14, - 10, 10, 98,102,207,158, 45,173,238,166, 45, 91,182,168, 80,182,225,114, 83, 0,213,238,215,214, 42, 60,112,225,138, 57,227, 68, - 96, 76, 96,205,122,192, 84, 2,152,180,176, 24, 75, 64,240, 68,128, 89, 15, 63,129, 18,191,206,106, 37,251,224,167,251,201,204, -109, 98,100,138, 66,115, 12, 13,168,180,169, 1, 16, 73, 16, 68,194,225,195,135,209,189,123,119, 28, 62,124, 24, 35, 71,142, 76, -112, 20, 3,137,137,137,232,215,175, 31,172, 22, 45,167,124,181,212,106,245,135,139, 22, 45, 58, 55,113,226, 68,113,185,198,128, - 36,225,229,229,133, 17, 35, 70,148,234,116,186, 15,157, 77, 40,195, 48,224,112, 56,200,204,204,196,150, 45, 91,176,116,233, 82, -180,104,209, 2,102,179,249, 17,177,101,109,247,156,106,252,104,154,198,149, 43, 87,176, 99,251,118,124,188,112, 33, 60, 60, 60, - 0, 0, 38,147, 9,202,162, 34, 8,133, 66,187, 24,171, 65, 56,237,186,123,247,238,156,144,144,144,114, 83,134,182,191,214, 54, - 11, 22,139, 5, 52, 77,163,180,180, 20,171, 87,175,166, 89,150,221, 85, 83,255, 99, 19, 69,115,230,204,129,193,240,183, 65,189, -131,213, 39, 57, 60, 60, 28, 29, 59,118,180,159,147, 36,201, 58,203,249, 93,175,118,208, 59,220,221,106,209, 74, 0, 64, 72, 72, - 8, 90,181,106,133,160,160,160, 42, 57,235, 91,139,212, 6, 46, 68,134,175, 90,104, 61,142,157,178,185, 60,225,192,102,205, 91, - 18,233, 57, 74,112, 56, 28, 72, 60,125,209,235,165,185,160, 40, 18, 82, 47, 95, 16,140,254,111, 69, 76, 82,224, 80, 28, 40, 53, -122,132, 55,109, 78, 10,132,162,129,186, 26,132,150,204,147,187,126,254,132, 94,194, 66, 58, 19,162,198, 66, 48,182,238, 52,152, - 15,210, 71,131,247,134,183, 16, 69, 29,184,185, 30,106,243, 32,103,210, 75,209, 52,252, 41, 10, 38,150,197,141, 57,115, 16, 25, - 19,131, 4,155, 48,140,137, 65, 66, 84, 20,228, 92, 46, 4, 36, 9,214,108,126,100, 78,223, 25,161, 5, 0, 25, 25, 25,216,179, -103,143,124,220,184,113,251, 18, 19, 19, 39,186, 40, 54,108, 92,190,151, 46, 93,242,111,218,180,105,149,247,252,245,215, 95,232, -210,165,139,203,211, 83,124, 62,127,248,160, 65,131,126,218,179,103,143,103, 82, 82, 18,252,253,253,235, 44,180, 4, 2, 65,191, - 33, 67,134,252,180,109,219, 54, 89, 65, 65, 1, 98, 98, 98,100, 47,190,248,226,206,248,248,248,151, 12, 6,131, 51, 98,179,156, -200,138,137,137, 81,109,217,178,229, 59,148,159, 34,204,217,178,101,203,247, 93,187,118,125, 51, 42, 42,202, 11,192, 27, 86,223, -129,106,197,150, 64, 32, 24,208,172, 89,179,114,163, 90,129,160,204,216, 36,145, 72,224,233,233, 9, 30,143, 7,131,193,128,200, -200, 72,130,207,231,247,113,230,153, 61, 60, 60,134,188,252,242,203,100, 92, 92, 28,114,115,115,225,229,229, 5,169, 84, 10,134, - 97, 48, 99,198, 12,106,245,234,213, 3,116, 58,215,102,184, 66, 67, 67, 71, 15, 30, 60,152,115,235,214, 45, 60,120,240, 0, 6, -131, 1,169,169,169,144,201,100,152, 60,121, 50,111,197,138, 21, 47,102,101,101,185, 42,180,218, 69, 69, 69,229, 57,138, 44, 27, - 36, 18, 9,209,178,101, 75,165,143,143, 79,103, 0,174, 8,173,118,111,189,245, 86,254,178,101,203,250,157, 60,121,210, 30,244, -242,228,201,147, 11, 0,224,235,175,191, 62,231,231,231,215, 25,128,179, 66, 11, 44,203, 90,254,253,239,127,167,241,249,124,112, -185, 92,240,249,252,114, 7,143,199, 3, 73,146, 30,182,234, 92, 19, 95,242,131,220,229, 51, 22,172, 92, 41, 17, 82,220,119, 95, -106,143,198, 94, 60, 64, 36, 7,175,223, 7, 32,188,202,140,150,172,242, 47,224,247, 15,176,234,101, 37, 25,245, 99,233,111, 38, -198,219,239,126, 81,145,230, 9,247, 1, 93, 1,252, 15,101,155,235, 46, 4,112,233, 41,233,155,174, 1,136, 28, 57,114,164, 93, -108, 29, 61,122, 20,195,135, 15,135, 74,165,194,173, 91,183, 28, 69,150, 43, 27, 44, 95, 51,155,205,215,127,254,249,231, 94,227, -198,141, 35, 28,234, 23,146,146,146,112,251,246,237, 4,103,249, 72,146,132,197, 98, 1,151,203,197,202,149, 43, 97, 50,153,240, -227,143, 63, 98,247,238,221, 32, 73, 18, 4, 65,128, 32, 8,200,100, 50,124,243,205, 55, 46,181,123, 12,195, 96,235,214,173,248, - 96,193, 2,187,200,178,206,100, 32, 48, 32, 0, 62,190,190,184,127,255,126,141, 66,171,168,168,232,179,131, 7, 15,162, 58,103, -248,131, 7, 15,218, 63, 87,112,134,175,185,159,163, 40, 24, 12, 6, 60,255,252,223, 91,197,190,245,214, 91,246,207, 74,165, 18, - 20, 69,217,242,130,112,150, 83,207, 2, 47, 9,255,254,110,196,123,239,149,179,208, 85,197,249, 56,180,136,187,172, 91,149,136, -173, 72,171,117, 54, 8,192, 72,148,249,104,229, 0,143,209, 71,139,101, 45,173, 67, 26, 5,227,250,189, 68,112, 40, 10,124, 79, - 95,120,202, 3, 96,161,141, 80,231, 63,192,153,189,223, 2, 0, 54,109,221, 5,146, 36,193,225, 80, 48, 24, 25,180,104, 28, 12, -139,197,210,186, 58,238, 54, 64,175, 1, 1,190,221, 67,195,188,136, 91,222, 15,208,210,223,167,194, 68,136, 0, 45,178,165, 68, - 79,169,168, 91,145,186,184, 87, 50,112,190, 70, 49, 64,146, 32, 9, 2, 98, 30, 15,134, 61,123,202,188, 54, 99,202,250,172,132, -168, 40,144,191,253, 6, 15,129, 0, 20, 65,128, 99, 53, 65,215, 6,197,197,197, 32, 8, 2, 59,118,236,240,158, 60,121,242,206, - 91,183,110, 69,149,150,150,238,113,133, 67,165, 82,141,236,221,187,247,233,173, 91,183,250, 5, 6, 6, 62,114, 61, 55, 55, 23, - 83,167, 78, 45, 80,169, 84, 46, 5,117, 19, 10,133,175,140, 30, 61,122,243, 15, 63,252, 32,187,123,247, 46,180, 90, 45,252,252, -252,234, 90, 20, 58,247,232,209, 99,223,158, 61,123, 60,115,115,115,161, 86,171, 97, 48, 24,176, 99,199, 14,175, 17, 35, 70,236, - 73, 73, 73, 25, 14, 32,190, 6,142, 79, 28, 69,214,204,153, 51,111, 2,240, 7,176,190,162, 6,181, 94,107,239, 32,182,212, 0, - 86, 84, 51, 18, 13,147, 72, 36,200,207,207,199,212,169, 83,113,231,206,223, 6,208,224,224, 96,251, 72,239,254,253,251,240,243, -243, 3, 65, 16,254,206, 60,180,159,159,159,212,104, 52, 98,250,244,233,200,200,200, 40,199,153,153,153, 9,130, 32,196,174,102, -100, 64, 64, 64,128, 94,175, 71,223,190,125, 81, 90, 90,182,175,239,248,241,227,193,229,114,145,159,159, 15, 46,151,235, 91,139, -247,227, 59,114,228,200, 42, 67,171,200,100, 50,147,183,183,119, 27, 23, 57,125, 94,124,241,197,172,152,152,152, 71, 22,182, 92, -190,124,249, 95,114,185,252,164, 92, 46,111,233, 34,167,197, 81, 84,241,120,188,114, 66,139,203,229,130, 36, 73,167,125,212,238, -228,235,214,113,136,156,142,203,102, 15,157,218,216,223, 19,172, 54, 15,188, 65,159,225,122,129, 8, 43, 87, 31, 1, 0,188,255, - 90, 23,116, 24,178, 24,198, 31,134, 98, 78, 79,138, 63, 41,211, 48, 31,192, 39, 79,184,205,255, 10,128,109, 21,220, 6, 0, 29, -159,162,254,200, 46,182,142, 30, 61,138,136,136, 8, 20, 21, 21, 33, 37, 37,165,182, 34,203,214,222,125,240,249,231,159,255, 62, -102,204, 24,137,109,208, 42, 18,137, 48,111,222, 60,189, 86,171,253,192,165, 66,100,177,128,195,225,216, 7,201, 66,161, 16,145, -145,145,118,145, 69, 16, 4, 74, 74, 74,192,225,112,108, 43, 18, 9, 39,211,136,160,192, 64,120,120,120,160,121,139, 22,184,107, -109, 71,108,159, 5, 2, 1, 8,130, 0, 77,215,104,200,211, 88,157,218,231,186,187, 75,182,137,162,106, 77,199,193,193,176, 88, - 44, 54,145,201,186,131,211,215,215, 23, 90,173,214, 89,206,167, 18, 85, 88,180,108, 66,107, 36,202,124,181, 30, 9,239,208, 31, -192, 25,212,227,146, 74, 2, 44, 97, 97, 89,112, 40,210, 58,119, 75,129,162, 72, 40, 11,114,176,230,179, 55,172, 34,107, 55, 14, -159, 75, 65, 72,179,136,191,231,113, 9, 2, 96,171, 47,220,126,158,188,152, 89, 99,122,136,242,136, 28,120, 5,139, 33, 20, 86, -208,143,222, 60, 16,225, 36,102, 15, 8, 17, 95, 57, 88, 26,147,172, 54,213,216, 81, 8, 73,178,204,249,157, 32, 42,117,238, 33, -173,215, 40,130, 0,203,178, 96, 45,174,249, 29,219,132,188, 72, 36,130,201,100, 2, 69, 81, 88,187,118,173,215,144, 33, 67,214, -187, 42,180, 0, 36,229,229,229,141,152, 49, 99,198,209, 93,187,118,249,250,250,250,150, 27, 61,204,152, 49, 67,145,151,151, 55, - 2, 46, 58,221,115,185,220,245, 27, 54,108,144, 61,124,248, 16, 37, 37, 37, 16,137, 68,246,198,167,182,229,179, 91,183,110,199, -143, 29, 59,230,173, 86,171, 97, 50,153, 32, 18,137,192,178, 44, 40,138,194, 47,191,252,226, 51,106,212,168, 35,233,233,233,131, -170, 75,171, 72, 36,122,201, 42,156, 16, 21, 21,229, 21, 21, 21,213, 31,168, 50, 82,175, 29, 81, 81, 81, 94,115,231,206,125, 81, -175,215,175,168,230,153, 51,148, 74,101,160, 72, 36,194,222,189,123, 33,149, 74, 33, 22,139, 17, 28, 28, 12,165, 82, 9,177, 88, - 12,150,101, 97, 54,155,109,141, 69,161, 51, 15, 94, 80, 80,160,165,105,218,243,232,209,163, 40, 44,252,251, 95, 26, 55,110, 12, -149, 74, 5,139,197, 82,226,106,102,102,103,103,231, 17, 4, 17,122,253,250,117, 60,124,248, 16,195,135, 15,199,111,191,253,134, - 46, 93,202,102,135,141, 70, 99,109,130,248, 49, 20, 69,177,213,148, 91, 2,128,183, 59, 57,173,157,151, 75,156, 22,139,197, 98, - 19, 89,142,127, 29,197, 87, 13,191, 89,174, 58,183, 9,144,110, 89, 54,107,240,212,161, 17,190,208, 23, 60,128,208,195, 23,132, - 87, 56, 86,174, 62,130, 91,127,149,189,175,149, 59,175,226,167,232, 17,128, 72,142, 86,158, 10, 4,122,112, 94,190,157,255,196, -133,150,167,227, 56,225,105,237,152,134, 15, 31, 14,165, 82, 9,169, 84,234, 14,255,156, 11,122,189, 62,117,255,254,253,157, 71, -142, 28, 9, 62,159,143,212,212, 84,196,199,199,167, 0,184,224,170,208,226,114,185,248,252,243,207,241,198, 27,111, 32, 32, 32, - 0, 31,124,240, 1, 56, 28,142,253, 32, 8,194,110,225,114, 5,254, 1,213, 47,124,180, 57,196,215,100, 12,247,244,244,252,156, - 36,201,113,148, 19, 25,199, 48, 12, 99,177, 88,118,169,213,234,106,195, 59,216, 28,215,157,121, 23,142,121, 80, 67,159, 86,103, -206,199,161, 69,106,131,138,171, 13,171,176,104,217, 86, 29, 62,178, 21,144,237, 41,207, 88, 77,118,103,234, 43,161, 4, 73,221, -206,204,202,134,143,183,212, 42,178,172, 7, 73,162, 67, 68,217, 96,246,240,185, 20,132, 52,141, 0,135,162,192,161, 40, 72, 69, - 2,228,229,230,128,195, 33,111, 87,197,219,142,194,152, 49, 45, 67,195,189,125,184, 80,248, 25, 17, 20, 80,133, 97,160,179, 7, - 66,130,248, 24,230, 35, 12,107, 71, 97, 76,245,214, 55,214, 46,180, 76, 52, 13,222, 43,175,216,167, 11, 19,162,162, 16, 25, 19, - 3,102,244,104,232, 76,166,114,166,226,218, 10, 45,145, 72, 4,141, 70,131,137, 19, 39, 42,205,102,243,155,181,204,226,248,194, -194,194,177,147, 38, 77, 42,180, 9, 24,147,201,132, 73,147, 38, 21, 22, 22, 22, 10, 46,156,216, 0, 0, 14,208, 73, 68, 65, 84, -142,117,194, 74,244, 8,204,102,243,155, 93,186,116, 81, 42, 20, 10,123, 58,107,211,224,216, 32,151,203, 15,111,217,178, 69,110, - 48, 24, 64,211,180,157, 83, 36, 18,129,162, 40,248,249,249,225,167,159,126,242,147,203,229,213,238, 89,165,215,235,247,199,196, -196,168, 0, 32, 38, 38, 70, 69, 16, 68, 44, 65, 16, 27, 9,130,216, 80,225,216, 72, 16, 68,172,227,189,122,189,126, 95,117,220, - 70,163, 49, 54, 37, 37,133, 21,139,197,160, 40, 10, 38,147, 9, 66,161,208,110, 18, 47, 46, 46,134, 94, 95, 54,205, 29, 31, 31, - 15,179,217, 28,231,204,179,107, 52,154, 83, 91,183,110,181, 52,110,220, 24, 17, 17, 17,136,140,140, 68,143, 30, 61, 16, 22, 22, -134, 47,190,248,130,209,233,116, 46,215,189,236,236,236,195,191,254,250,171, 57, 52, 52, 20,157, 59,119,134, 64, 32, 64,135, 14, - 29, 16, 28, 28,140,165, 75,151, 26,213,106,245,209, 90,188,166,244,196,196, 68,170, 26,145, 43,131, 19,171,119, 43, 32,227,202, -149, 43, 84,143, 30, 61, 14, 84,188,208,173, 91,183, 3, 82,169,212,211,102, 98,119,101, 68,238, 40,174, 4, 2,129,253,176,125, -207,225,112,156, 25,253,144,109, 2,164, 91,190,124, 99,224,212,161, 17,222, 56,112,234, 18,120, 38, 21, 96,172,102, 70,144, 49, -131,224, 73, 16,224,201, 13,121, 10,250,128, 57, 0,110,162, 44, 14,211, 7,120,186, 96,119,124, 47, 44, 44, 68, 74, 74, 10,226, -227,227,209,163, 71, 15,196,197,197, 1,127, 59,200,187, 12,181, 90,253, 65,116,116,180,206,182,146,111,225,194,133,122,141, 70, -243,129,171,109, 48,203,178,224,114,185,104,213,170, 21,230,206,157,139, 35, 71,142, 32, 53, 53, 21,102,179,217, 46,132,108, 62, -153,174, 88,180,120, 60, 30, 2, 2, 2, 96, 54,155,237,214, 44, 0,184,123,231, 14, 56, 28, 14, 44, 22, 11,140, 70, 99,141, 22, - 45, 79, 79,207,207, 55,111,222,252,142, 66,161, 8, 42, 40, 40,240,119, 60,242,242,242,252,115,114,114,252,179,178,178,252, 51, - 50, 50,252,211,210,210,252, 31, 60,120, 16,180,124,249,242,119, 60, 61, 61, 63,119, 38,157, 20, 69,161, 67,135, 14,120,235,173, -183,236,199,186,117,235,236,199,153, 51,103, 92,118, 94,167, 40, 10,173, 22,173,196,136, 2,214,126, 28,241, 35,236,199,173,247, -103, 86,199, 89,239, 90,164, 86,250,197,186,218,208,113, 99,233, 74, 96, 91,117,104,107,203,236,110, 27, 21,157,225,235, 13,180, -177,244,244, 95,247,238, 12,108,213,174, 43,153,171,208,150, 91,254, 25, 57, 96, 44, 8,130, 64,163,166, 17,160, 56, 28, 80, 20, - 9, 14, 69,193, 75, 38, 68,202,245,235, 22,131, 94,127,186, 50,206,254, 0,135, 47,226,175,123,109, 88, 7, 97, 54, 63, 31,126, - 65, 18,240,184,101,218,145,253,107,108,133, 30,130, 3,180,243,192,180, 44, 31,209,233,188,210,117,222, 58,211,129,216, 42, 70, -128, 22,139, 5, 82,129, 0,165, 6, 3,244, 52,141, 1,107,214,216,167, 11, 73,130,192, 53, 0,237,215,172,193,249, 61,123, 32, -227,243, 1,129,192,233, 85, 33,149, 9, 45,133, 66,129, 41, 83,166, 20,230,228,228, 76,174,141,143,150, 13, 6,131,225,108,110, -110,238,228,177, 99,199,238,216,187,119,175,124,236,216,177,202,220,220,220,201, 78,250, 61, 61,130,210,210,210, 61, 25, 25, 25, - 37, 83,166, 76,217,190,115,231, 78, 31, 95, 95, 95,251, 72,164, 86,133,149, 32, 20,131, 7, 15, 22, 56,115, 95, 13,183, 68, 91, -157,219,223,176, 90,182,218,207,156, 57,243, 60,202,252,175, 28,177,104,211,166, 77,227, 29,166, 24, 55, 2, 88, 83, 29,113,113, -113,241,134,185,115,231,254,231,236,217,179,190, 66,161, 16, 4, 65,128,199,227,161,121,243,230,246, 85, 52, 92, 46, 23, 44,203, -226,189,247,222, 83,228,231,231,127,237,228,187,153, 25, 29, 29,221,175,180,180,212,123,202,148, 41,148, 80, 40, 68, 94, 94, 30, - 86,175, 94,205,252,240,195, 15, 42,157, 78, 55,181, 22, 66,120,235,167,159,126, 58, 64,171,213, 54,157, 49, 99, 6, 79,173, 86, - 67,175,215, 99,254,252,249,198,239,191,255, 62, 83,175,215,187, 28,240,183,103,207,158,247,210,210,210,250,148,148,148, 20,137, -197,226,138,214, 62, 66, 34,145,116, 5,176,221, 21,206,200,200,200,251,233,233,233, 61, 22, 47, 94, 28,107, 54,155,185,151, 47, - 95,182, 59,195,175, 93,187,246,140, 80, 40, 28, 12, 23, 55, 95, 37, 8,194, 34, 16, 8,202, 89,176, 42,126,230,112, 56, 53,182, -105,173, 3,197,139,191,124,189,223,212,231,219,120, 98,255,169,171,136,222,247,215,237, 22, 83,253, 90, 61,231, 93, 0, 75, 65, - 10,222,127,173, 11, 86,238,188, 10,160,108,234,208,146,127, 11,108,209,125,176, 30,161,120,160, 84,100, 63, 5,125,192, 25,148, -133,204,120,218, 80, 78,100,221,186,117, 11, 3, 7, 14, 4, 0,196,197,197,161,119,239,222,136,139,139, 67,159, 62,125, 92,142, -165,101,197, 31,197,197,197,105,103,206,156,105, 27, 26, 26,138, 11, 23, 46, 60, 0,240,135,171,137,180, 9, 45, 14,135,131, 87, - 95,125, 21, 67,134, 12, 65,227,198,141,203,173, 54,180,125,118, 69,108,208, 52,141,118,237,218,193, 96, 52,130,199,227,217,167, - 38, 57, 28, 14,252,252,253,113,239,222, 61,167, 44, 90, 36, 73,142,123,233,165,151,200,164,164, 36, 76,152, 48, 1, 59,118,236, -168,242,222, 73,147, 38,225,231,159,127,198, 75, 47,189, 68,126,244,209, 71,213,134,119,176, 57,161, 59,243, 76,182,126,186,166, -118,223, 93,156,245,173, 69,234, 2,135,208, 14,149, 78,154, 84,242, 93, 76, 57,161,229, 16, 36,172,126,132, 22,109,218,241,219, -143,223,206,237,177,190,143, 95,144,191, 39,148,106,189, 93,108, 37,156,217, 13, 0, 24, 51,115, 9, 56, 84,217,148,162, 76, 42, -132,136, 71, 97,207,182,175, 21, 38, 83,105,165,165, 75,195, 37,223,248,168, 87,115, 79,190,196,140,226, 64, 22, 17,126,127,239, -148, 67, 52,221,253,168,224,234,228, 13,223, 91, 69,120,237, 57,169,236,235, 36,213, 27, 48, 91,214, 61,210, 33,170, 84,122,213, -245,235,162,225,155, 55,227,242,228,201,104,196, 48,136, 13, 14,134,156,203,133,167, 64, 0,146, 32,160, 63,116, 8,231,247,238, - 69,128, 64, 0,120,120,128,254,226, 11, 24, 82, 82, 96,214,104,244,181, 24,153, 97,252,248,241, 10,133, 66, 49,214,104, 52,158, -173,107, 62,235,245,250, 99, 25, 25, 25,111,244,236,217,115,189,217,108,126, 83,175,215,215,105,101,148,209,104, 60,150,155,155, -251,202,248,241,227,119,239,219,183,207,215,203,203,171,214, 92,133,133,133, 93,220, 84,156, 44, 0, 62,182, 58,183,191, 17, 21, - 21,229,117,229,202,149,255,108,217,178,101,189,195,104,194,127,250,244,233,175, 87, 16, 89, 53,174, 58, 4,144,158,159,159,255, -197,188,121,243,150,172, 90,181, 74,106,115,124,191,113,227, 6,104,154, 6,151,203, 5,195, 48,152, 62,125,186,182,176,176,112, - 37,170,142,232,252, 72,209, 42, 46, 46,110,190,120,241,226, 45,107,214,172, 25, 66, 81,148,132, 97, 24, 93, 73, 73, 73,108,105, -105,233, 84,212, 46,142,150,165,160,160, 96,202, 39,159,124, 50,101,245,234,213, 47,145, 36,233, 79,211,180, 66,163,209, 28,212, -235,245,223,163, 22, 83, 73, 23, 46, 92, 40,120,237,181,215,254, 42, 40, 40,104, 29, 18, 18,162,150, 74,165, 70,163,209, 72,137, - 68, 34,153, 68, 34,137, 4,112,129, 32,136,100, 87, 56, 19, 18, 18,114,103,204,152,241,208, 96, 48,180,218,184,113,227, 57,153, - 76,118,138, 32, 8,130,199,227,121,139, 68,162,129, 0, 98, 9,130,184,235, 10, 39, 73,146, 22, 71,235, 85, 69,255, 44, 62,159, -239,148,143, 86, 83, 63,241,180, 33,205, 57,216,127,250, 42,162,247,167,111,101, 88,118,239,222,132,162, 67, 31,244, 6, 76,187, - 94, 67,135,177,219,203,166, 11, 1, 88,242,111,193,180,107, 18, 8,177, 47,206,101,113,161,214,155, 14,163, 1,149,193, 30,222, - 65,161, 80, 32, 41, 41,201, 38,178, 34, 1,160, 79,159, 62, 9, 54,177, 21, 31, 31,143,206,157, 59, 39, 0,224,186, 90, 94,139, -139,139,231, 77,156, 56,241,152,117,112, 60,175, 22, 3, 63,187,208,178, 9,170,198,141, 27,219,207, 29, 15, 7, 31, 45,167,192, - 48, 12,120, 60, 30, 56, 28, 14,130,130,131,237,191,197,178, 44,238,221,187, 7,165, 82,233,148,208,162, 40,138, 34, 8, 2, 19, - 38, 56,183, 32,249,223,255,254, 55, 98, 99, 99, 65, 57,169, 10, 41,138, 66,120,120,120,141,247,216,116,169,179,156, 33, 33, 33, -181,230,172,111, 45, 82, 91,129, 85,217,231,202, 68, 85, 85, 21,226,113, 33, 91,171, 85,127,188,109,243,218, 85,211,103,189, 39, -189,117, 63, 15,106,173, 1, 20, 69, 58, 54,158,224,112, 40,200, 36, 66,132, 6,122, 98,231,119,255,211,104,138, 85,159,160,138, -125, 15, 27,123,240,102, 14,238,250,156,128, 23,164, 67,171,246,227, 65, 9,255, 22, 1,108,110, 21,179,131,189,127,199, 11,233, - 58,225,111,233,186,153,215,138,140,143, 10, 45,163,113,232,194, 97,195,142, 71, 31, 57, 34,238,182,117, 43,238, 79,159,142, 96, -189, 30, 2,235, 84, 34, 73, 16,144,242,120,144,242,120,101, 34,107,245,106,232,105, 26,107, 38, 79, 46, 49, 24,141,195, 92,169, -228,133,133,133, 24, 61,122,116, 65,118,118,246, 8,212, 98,106,175, 42,232,116,186, 61, 0,246,184,139,207, 96, 48,156,205,204, -204,124, 97,244,232,209, 71,142, 29, 59,230,247,148, 4,153,179,137, 45,211,149, 43, 87, 94, 63,119,238,220,125,148,223, 88, 84, -117,238,220,185,251, 51,102,204, 32,182,108,217,242, 61,128, 79,225,100, 0, 79,157, 78,183,246,196,137, 19,232,215,175,223,167, -203,150, 45,243,233,210,165, 11,252,253,253,161,209,104, 16, 31, 31,143, 57,115,230, 40,139,139,139,151,169, 84,170, 85, 46,166, -217,100, 48, 24, 38, 57, 46,165,118, 71, 62, 24, 12,134, 31,114,114,114,126,112, 23,225,236,217,179,111,220,187,119,175,208,207, -207,175, 59,143,199,107,143, 50, 63,160, 92, 0,223,187, 42,136,108,152, 53,107,214,245,123,247,238, 41, 26, 53,106,212,195,202, -233,133,178,109,140, 54,215,130, 51,251,234,213,171, 33, 93,187,118, 37,185, 92, 46, 75, 81, 20,184, 92, 46,203,225,112, 88,171, - 95, 13, 11, 0, 7, 15, 30, 20, 0,168,118,219,156,251,249,250,197,147,254,247,231, 71,201,185,165,123, 83,242, 74,230, 2, 96, -119,221, 18,255,222,193,143, 26, 58,180,101, 38, 12, 49,125, 64,200,202, 2, 85,178,218, 28, 16,146, 0,100, 90, 26, 97,209,129, -219,185, 52,136, 21, 13,154,170,242,113, 53,172,225, 29,114,114,114, 28, 69,150,205,106, 21,217,167, 79,159, 4,171,200,178, 93, -171,141,127,217, 73,139,197, 82,167, 62,140,101, 89, 68, 71, 71, 99,211,166, 77,168, 41,162,185,117,117, 31, 81, 19,159,205,162, -197, 48, 12, 76, 38, 19,110,221,186,101,143,217,101,155, 46,180,133,118,160,105,186,218,213,234, 12,195, 48, 70,163, 17,191,252, -242,139, 83, 98,235,167,159,126, 66,105,105, 41,152, 26, 20,156, 99, 40,134,142, 29, 59, 66,169, 84,218, 23,251, 68, 70,254, 29, - 42,207,100, 50,185, 36, 92,109,156,173, 90,181,130, 66,161,128,205, 95, 56,116,242,223,198, 30, 90,167,251,167,150,251, 42, 45, - 90,143,189,199, 20,136,101,199,186,244, 26,210,123,242,235,115, 36, 90, 3,131,135, 15,211, 80,144,159, 3,146, 32, 17,212, 40, - 4, 97, 97,225, 16,241, 73,236,136, 89,165, 75, 56,127,234, 79,173,166,104,120, 85, 92, 35, 61,121,231, 87,191,210,187, 71,179, -102, 30, 4,104, 51,192,152, 1,218, 12, 88,172,127,109,223, 89,202,151,185,164, 36, 21,251,209, 53,229,197,195,106, 83,165,123, - 86,141, 5,122,123,201,229,199, 23, 29, 60, 40,182,152, 76, 40,156, 55, 15, 98,154,134,208, 58, 42, 41,123, 16, 1,232, 47,190, - 40, 19, 89,147, 38,149,168, 85, 42,151,182,224,241,245,245,189, 74, 16,132,111, 65, 65,193, 51, 21, 25,222,207,207,239, 48,203, -178, 10,133, 66,209,229, 41, 74,151, 63, 0, 21, 0, 83, 37, 3, 9, 63,184,238,255, 99, 67,184,159,159,223, 71, 36, 73,246,100, - 89,214,135, 36,201, 34,139,197,114, 33, 63, 63,127, 57,128,123, 13,253,233, 19,131, 45, 50,124,147, 26,238,203, 7,240, 46,202, -156,130, 31, 58, 75,222,193,211,211,211,192, 55,239,251, 87,132, 96,192,184, 72, 79, 52, 13,244, 0,151, 39, 68,118, 49,141,147, -201,197,216,124, 38, 55, 67,111,102, 70,221, 41, 40, 73,108,120, 21,213,194,237, 91,240,184, 19,114,185,252,210,241,227,199,187, - 52,109,218,148,116,116,120,183,197,202,179, 77,111,113, 56,101, 90,238,236,217,179,244,132, 9, 19, 46,228,229,229,245,171,138, -211,195,195,227,247,155, 55,111, 62,175, 86,171, 31, 17, 84,142,145,226,109,231, 58,157, 14,179,102,205, 58, 81,213, 22, 60,158, -158,158,171, 87,173, 90,245,206,152, 49, 99, 72, 91, 56, 10,199,195,182, 93,144,237, 48,153, 76,216,190,125,187,229,235,175,191, -254, 70,173, 86, 87, 57,117, 24, 20, 20,148,145,157,157, 29, 98, 11,181,224, 76, 80,209,240,240,240,156,180,180,180,224,199,201, -249, 12, 11,174,114,214,173, 39, 98,154,224,138, 68,179, 61,164,222,159,141,153,248,150, 79,120,179, 22, 68, 64, 80, 35, 16, 32, -145,151,155,133,180,191,238,176,251,126,252,182, 80, 87,172,252, 92,175,215,125, 91, 29, 79, 27,160, 89, 19, 25,111, 23,159, 65, - 75,216, 4, 80,133,253,169, 30, 25,113, 0, 48,113,201,219, 15, 53,230,241,201,213, 76,251,216,196,214,199,251,246,137,249, 45, - 91, 62, 18, 40,206, 98,177,192,144,146,130, 53,147, 39,187, 44,178, 26,208,128, 6,184, 5, 77, 81,115,140, 44, 51,202,226,115, -185,106, 49, 33, 90,249, 75,198,179,192, 56, 18,150,118, 36, 65,240,105, 22,169, 96,241,187,152, 83,178, 62, 33, 7,250,134,236, -119, 10, 79,237,166,210, 0, 36,114,185,252, 20, 69, 81, 97, 54,139,140,163,181,190,146, 13,165, 31,230,229,229, 13, 6, 80,221, - 10,225,102, 30, 30, 30,223, 50, 12,211,205,153, 77,165, 41,138,186,172,209,104,102,163,154, 77,165,235, 99,213,161,143,143,207, -189,180,180,180,102,182, 85,212,142,125,101,101, 43,203,239,222,189,139,254,253,251,167,229,230,230,134, 63, 78,206,167, 21, 85, -172, 58,124,122, 44, 90, 14, 8,230, 9,164, 83,248, 34,225, 32,139,153,110, 5, 2,224,112,185,183,141,165,250,211, 6,189,118, - 27,170,152, 46,124,156, 24, 11,244, 22,240,249,191,243,100, 50, 81,101,162,205,172,209,232, 13, 70,227,208, 6,145,213,128, 6, - 52,160, 1, 13,120,134,208, 82, 46,151, 31,231,114,185, 2, 71, 49, 89,241,179, 13, 52, 77,151, 22, 20, 20, 12, 7,144,250,152, - 57,255,127,194, 69, 39,181, 33,206,114, 90,143,254, 79, 59,103, 61, 62, 59,235, 70,206,254, 86,206, 69,207, 72, 58,251, 63,173, -156,182,231,117,129,119,136, 43,229,200, 93,249,233,144, 78,214,221,233,172, 47, 78,119,213,163, 74,210,201,214,195,123, 95,244, -140,164,179,255,211,198, 89,177,252, 56,201,235, 18,167,147,101,202,213,116,178,238, 78,103,125,113,214,181, 30, 85,147, 78,182, -174,101,169,138,119,191, 8,207, 32,146, 58,129, 77,234, 4,246, 86,231, 74,227, 54, 70, 85,245,127, 46, 57, 18,214,215, 74, 0, - 91,216,125, 43, 63,241,180,114, 58,230,131, 59,183, 10,168,135,109, 7,206,184,155,179, 66,126,186, 11,139,172, 43, 76, 98,225, - 68,192, 81, 87,158,221, 29,239,189,194,179,186,133,183, 22, 34,203, 37, 78,119,149,251,250,230,116, 87, 93,170,200,233,142,114, - 95,217,123,175,199,119,228,174,116,186,165, 46,213, 71,153,175,164,252,212,153,183, 34,167, 59,234, 82, 69, 78,119,148,251,199, -193,233,142,186, 84, 25,167, 59,202,125, 85,239,254, 89, 53, 52,217,166, 11,173, 33, 30, 8, 39,196, 86, 12, 0,144,181,201,180, -122,180,148, 13,112, 55,167,187,211, 92, 31, 98,211, 5, 11,204, 19,231,116,243, 59, 90,100,229,116,231,232,102,128,187,222, 81, -125,148,119, 71, 78,119,241, 87,228,113,199,123,170,140,179,174,233,173, 34,157,110,127,246,186,150,251,199,197,233,230,119,228, -150,186, 84,129,115,128,155, 7, 3, 3, 28,206, 23,185,147,211, 93,117,169,146,116,214,249, 61, 85,198, 89,215,244, 86,145, 78, -183, 63,187, 59,250,144,250,226,125,146, 22, 45,150,172,178, 76,196, 84, 56, 30,139,208,120, 98, 83,114, 46,114,255,163, 56, 93, -156,158, 25, 82, 15,239,254,137,166,211,157,156, 21,211,232,206,233,158,250, 76,167, 59, 57, 93, 72,235, 63,142,243, 89,123,239, - 79, 99,126, 86,197, 87,151,105,169,170,172,163,245,145, 78,119,114, 58,201,253,143,224,172,195,187,255,199,129,243,180, 36,196, -150,241,110, 30,153,192,205, 22,152,122,123,110, 55,167,115, 64,125, 88, 8,235, 1,110, 79,167,117,164,252, 89, 61, 60,251,179, -146,167, 13,117,169,161, 46, 61,117,117,169, 66,153, 28,224, 70, 75,145, 91, 45,207, 21, 57,221,241, 27,142, 28,238, 42,163,245, -253,236,238,172, 75,245,241,238,159, 53,252, 31,113, 30,155,128,236, 62, 28, 59, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, + 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,104, +111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247, +222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, + 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225, +123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, + 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, + 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8, +128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39, +127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, + 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, + 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120, +153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121, +153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234, +191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37, +238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229, +228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93, +129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, + 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, + 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128, +104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, + 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100, +128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, + 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, + 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, + 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100, +116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196, +108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, + 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, + 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, + 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201, +218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83, +226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161, +182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17, +221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, + 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, + 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83, +227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89, +195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205, +217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156, +116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72, +171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, + 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, + 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, + 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15, +140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, + 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184, +101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17, +167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23, +103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58, +222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, + 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245, +157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229, +209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97, +239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67, +127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101, +246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, + 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119, +209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63, +198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, + 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22, +140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236, +145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, + 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7, +201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, + 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57, +178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77, +107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, + 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207, +102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151, +205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, + 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73, +251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29, +210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233, +247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, + 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103, +242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139, +231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187, +156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61, +221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65, +217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, + 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203, +174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, + 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83, +208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160, +189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, + 7,219, 7, 12, 5, 5, 6,222, 4,182,127, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213,226, 61, 51, 59,179, +187,217,146, 77, 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, 86,132,167,207,103,197,134, 5, 84, 68, 68, 32, + 54, 64,240, 39,242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201, 38,219,203,220,223, 31,217, + 89, 55,203,182, 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239,156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, 64, 57, 29,219,128,191, 59,103, 11,198,157, 52, + 35,231, 0, 7,231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166,228,163,230, 74, 79,151,112,146,230, 14,103, 75, +113, 54, 87, 57,242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221,243, 79,128,188, 77,226, 12, 48, 79, 53, 53,156, +164,185,195,217, 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197,117, 4,174, 5, 69, 86,192,200,204,204,100, 92, +248,153,191, 43,167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207,230,194,187,153,153,153,204,234,213,171,183, 2, + 24,208,156,113,111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202,247, 45,205,217, 92,101,201,157,179, 57,242,189, +167,251,222,130,247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188,238,156,205, 81,150,220, 57,155, 35,223,255, 25, +156,205, 81,150, 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129,123, 1, 31,248,119, 22, 68, 45, 37, 54,155,224, +192,252,229,156,205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145,223, 93, 57,155,139,223,157,167, 57,238,147, 39, +206,171, 13,175,151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, 44,185,113, 14,108,230,151,129,129, 46,191,223, +109, 78,206,230, 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, 61,238,205,241, 12,105, 41,222,107, 26, 45,213, +124,214,220,156, 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206,230,228,116, 15, 99,115, 54,247,180,100, 56,155, +147,179, 9, 97,189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202,155, 59,218, 18,225,108, 78,206, 0,185,175, 9, +206,171,184,247,215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211,146,194,181, 57,195, 57,176, 37, 28,194, 22, 64, +179,135,211,241,166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, 37,183, 60, 57,176, 25,157,162,102,117,158,221, + 57,155,227, 26,174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92,133, 11, 65, 57, 41, 39,229,164,156,148,147,114, + 82,206,235,150,243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,226, 31, 5,175,237,187, +113,113,113,171,149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147,240,175, 3,189, 71, 20,255, 32,176,248,195, 65, + 23, 0, 16,199, 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228,201, 14,130, 32,192,110,183,195,102,179, 57, 63, +205,102, 51,250,247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231,216,237,246,243,101,101,101,125,125, 28,178, 19, + 64, 10,195,252,161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, 73,113,231,243,194, 37,126,247,201, 25, 18, 18, +178,159,227,184, 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71,215, 51,162,163,163,115, 56,142,107,114,254, 44, + 45, 45,245,154, 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, 47, 94,236,235, 67,136,236, 4,144,226,243, 13, +202, 45, 63, 49, 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, 78,145,197,113, 92, 86, 84, 84,212, 51,122,189, +222, 8,128, 72, 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, 38, + 19,242,242,242, 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81,209,176, 89, 44, 80,181,138,116,114,151,157, 56, + 6,155,213, 2,155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, 62,248,224,131,168,224,224, 96, 24,141, 70, 24, +141, 70,152, 76, 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22,216,108, 54,152, 76, 38,100,103,103,219,173, 86, +171, 79,206,105,211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133,209,104,196,166, 77,155,124,114,114, 28,151, 80, + 82, 82, 18, 37,149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91,139,175, 64,182,208, 61,186,158,209, 97,218,210, + 53, 81, 33, 10, 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, 96,179,161,253,243,163,157,251, 59,117,234,228, + 51,127, 18, 66, 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37,104,112,155,189, 9,173, 4,131,193, 16,229,224, +191, 76, 16,177, 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, 95,142,178, 90,173, 48,155,205, 48,153, 76,176, + 90,173,176,217,108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100,125,112,219,109,183, 61,190,102,205, 26,213,207, + 63,255,172, 74, 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, 14, 55,223,124, 51, 67,179, 32, 5, 5,197,117, + 35,180, 76, 38, 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184,246,237,219,231,186,159,231,175,185, 42, 56, 42, + 26, 19, 91,135, 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93,168, 5, 0, 40, 20, 10, 48,174,175,209, 94,160, + 82,169,112,219,109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74,193,243,188,223, 68, 97, 24, 6,106,181, 26, 83, +166, 76, 17, 69, 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, 4, 28,199, 57,183, 64, 56,165, 82, 41,142, 30, + 61, 10,142,227, 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, 14, 10,133, 2,240, 51,115,176,235, 61, 50,155, +205,177, 50,153,204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81,200, 49,102,222, 79, 0,128,162, 89,207, 59,239, +221,158,103,223,113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, 89, 93, 93,109,120,232,161,135,182, 7, 7, 7, +175,215,106,181,240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115,230, 76,156, 57,115, 38,160,184, 27,141, 70, 44, + 88,176, 0,118,187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, 94,179,102, 77, 24,195, 48,248,236,179,207, 32, +149, 74, 49,124,248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215,105,230,163,160,160,240, 85,231,241, 0,110, 4, + 16,233, 48, 17,234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, 79, 47,199, 49, 21, 12,195,236,115,249,109, 6, + 32,243,176,191, 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174,203, 1, 13,235, 15, 1,216, 2, 96, 96,102,102, +230, 86, 0, 40, 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183,163,168,121, 28,205, 83, 82,155,205,214, 65,108, +170, 18,221,162, 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83,115,133, 55, 1, 99,177, 88,240,192, 3, 15, 0, +128,215,135,142,235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195,210,113, 19,177, 66, 87,207,192, 86,171,195, 61, +106, 43, 78,118,238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193,171,200,146, 72, 36,152, 55,111, 30, 30,122,232, + 33, 72, 36,146,128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76,142,123, 36,183,217,108, 26,155,205, 22, 97,183, +219, 35,154,114,143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, 86, 87, 87, 27, 50, 51, 51,119,203,229,242,133, +209,209,209, 37,197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48,103,206, 28, 12, 26, 52, 40,160,112,154, 76, 38, + 48, 12,131,249,243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, 23, 23,247,236,186,117,235, 52,226,177,173, 90, +181, 2,207,243,232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, 37, 5, 5,197,181, 11, 79, 90,196, 5,253, 39, + 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106,151, 58, 49,211, 81,191,174, 22,127, 19, 66,122, +185,138, 30,135, 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, 76,252, 61,113,226,196,180,172,172,172,233, 19, + 38, 76,120,115,198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, 56, 60, 57, 90, 62,215,158, 18,155,168, 78,157, + 58,229,173,137,202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56,247, 79, 41,174,113, 62,192,230,246,104, 7,149, + 74,133, 97,239,125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129,114, 42, 21, 65,200,126,185, 11,138,170,100,120, +119, 87, 53,214, 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101,120,249,116, 33,172, 36,176, 62,189,132, 16,143, + 2, 75,252, 46, 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, 8, 13, 15,118, 5, 33, 36,140, 97,152, 58,135, +203, 21, 27,232, 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164,238,168,243,158,140,159,247, 33, 0, 96, 80,247, +155,253,150,135, 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61,122,116,193,230,205,155, 21,129,132,213,147,208, + 18, 93, 91, 81,100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, 74,175,196,209,130, 78,167, 51,175, 92,185, 18, +115,231,206, 69, 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, 60,255,252,243, 80, 40, 20,162,123, 77, 51, 32, + 5,197,245, 13, 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,165,249,121,254,175,118, 23, 79, +226,117, 25,134, 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, 50,153, 10,186,117,235, 22,144,154,208,235,245, +165,254,196,134,167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, 90,173, 78,161,178,113,227, 70, 40, 20, 10, 12, + 31, 62,252,170, 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85,157,193,249,128,217,146, 95,128,131,101,229,120, + 57, 99, 48, 84,138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, 3, 15, 60,224,116, 19, 92,251,173,192, 71,211, + 97, 68, 68,196,126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, 16,132,250,208,208,208, 31, 1,196, 17, 66, 18, + 0, 4, 7,114,143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85,134,204,204,204,221,118,131,249,155, 11, 23, 46, +236, 6, 16,116,211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115,230,204,113,254, 31,168,208,178,217,108,141, 4, +212,233,211,167, 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, 56,207,137,137,137, 65,104,104, 40, 4, 65,128, + 32, 8, 8, 10, 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, 76,152, 48,225, 77,134, 97, 86, 59,156,165, 99, + 62, 4,149, 39,237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98,226,196,137,105,238,225,240,212, 92,233,172, 85, +221,166,221,111, 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84,144, 72, 88, 48, 12, 67,252,113, 89, 44, 22,103, +197,255,204, 51,207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, 50,236,236, 54,231,185,226,198,114, 60,206,197, +116,132,228,212, 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0,203,178,206, 52,225, 56, 14,237,219,183, 71, 65, + 65,129, 79, 46,142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110,183,163,109,219,182,198,188,188,188, 23,105,209, +189, 58,145,229,109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212,168,173,181,181,181,223,220,112,195, 13,167,209, +120, 10, 4,191,124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171,213, 26,208,139,128,213,106,189, 76,240,124,252, +241,199,141, 62, 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226,182,219,110, 67,215,174, 93,241,243,207, 63, 67, + 16, 4, 60,247,220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3,234,104, 81, 80, 80,248,210, 34,166, 25, 51,102, + 28,155, 49, 99,134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, 1, 48,121, 18, 68,158, 92, 50,119, 1,230,186, + 47, 43, 43,107,186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, 91,210, 1, 52,110, 46,156,119,115, 71,168,212, + 42,168,130,213, 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170,170,242, 41,178,154,226,104,177, 50, 14, 43, 18, + 46,129,200,120,112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236,182,128, 56, 9, 33,151, 53, 21,142, 29, 59, 22, + 12,195, 56, 71,136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158,123,115,236, 7,149, 70, 90, 98,175, 36,127,238, +255, 18, 39,127,120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235,232, 86,167,251,248, 30, 94,189, 34,206,170,170, + 42,195, 77,157,210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, 24,218,173, 91,183,128,202,164, 56,184,194, 93, +100,185, 58, 89,226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200,243, 68,204,219, 26,141, 6,106,181,218, 57,226, + 54, 40, 40, 8, 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, 58, 14,177,212,200,105,114,244,173,202,116,253, +237,201,241,114, 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206,106,111, 34,141, 19, 21,164,235,103, 76, 76,204, +175,106,181, 58, 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, 96, 53, 20,106, 21, 20,193,106,175,174,151, 47, +161, 37, 58, 69,226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, 90, 78,161, 37,101,177, 65,190, 9, 18, 25,215, + 72,100,113, 28, 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107,107,193,113, 28, 38, 77,154,228,124,131,119, 21, + 89, 77,137,179, 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, 36,157, 78, 39,191,120,241,226,173,180,188,250, + 80, 6,118,235,101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199,142, 29,157, 78,150, 82,169, 20, 71,155,250,191, +199, 44,235, 81,100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205,152, 49,195,201,235,234,100,137,104, 74, 57, 18, +195,186,117,235, 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3,155,205,134,169, 83,167, 66,161, 80, 64, 38,147, +209,204, 71, 65, 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, 73, 96,185, 54, 19,138,223, 25,134,177,122,224, + 53,187, 53, 41,186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10,135, 95, 71, 75, 46,151, 39,231,229,229, 57, 39, +194,244,245,105, 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, 11,101,176, 26, 74, 77, 48, 20,106,181,187,224, + 96,252, 85,226,226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, 0,175,190,250,106,192,125,180, 68, 78,216, 25, + 20,147,179, 72,159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, 32,220, 52, 18,122,133, 26,156,221, 22,240,168, +195,234,234,106, 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72,182,141, 27, 55,250,141,187, 39, 39,107,242,249, +106, 39,143, 66,161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125,250, 8,180, 40,251, 17, 69,130, 45, 32, 81, 21, +104,254,116,231, 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, 71,135, 42,149, 74,124,245,213, 87,122, 0,178, +229,203,151, 43,252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, 26, 79, 89,226,175, 99,124, 32,121, 94, 12, 43, +195, 48,176,219,237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, 40, 40,252,213, 37,251, 2,174,199, 9,233,229, + 34,170,246, 93, 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, 64,121, 2,158, 24,179,117,207,155,241,222,133, + 90, 48, 12,131,255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, 31,157,254, 42,228, 42, 53,226,250, 13, 13,168, + 34, 23,155, 14, 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241,193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196,242, +229,203, 3,114,180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176,219, 38,227,130,153,195, 78,163, 18,253,141,199, + 33,219,240, 41,204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238,236, 83,101,179,217, 96,181, 90, 97,177, 88,240, +193, 7, 31, 4, 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35,182, +247,243,136,236,249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252,182, 97, 1,128,142, 73, 67,155,196, 89, 85, 85, +101,184,125, 80,159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227,248, 29,144, 93,198,178, 44, 36, 18,201,101,205, +133,222,196, 86, 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122,226,137, 39, 16, 27, 27,235,116,178,222,123,239, + 61, 40, 20, 10, 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20,127,186, 40,251, 51,224,177, 38, 53, 26,141,133, + 93,187,118,133,151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, 19,226, 16, 0,217,158, 42,117,134, 97, 16,172, + 9, 70,144, 90, 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95,198, 41,246, 45,113, 21, 90,226, 86, 91, 91, 11, +158,231, 49,119,238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, 95, 84,135,147,211,179, 33, 11,218,137,118, 67, + 31, 66, 44,175,128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14,120,231,157,119, 46,155,214,193, 27,226,227,227, +253,198,221,221,201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60,244,208, 67, 2, 0, 3,128, 10,131,193,112, 62, +144,244,108, 6,252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116,178,140, 2,255,117, 65, 65,129,232,100,133, 40, +149, 74,124,241,197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, 68, 34,193,172, 89,179, 60,246,201,242, 36,186, +154, 82,142, 92,207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, 68, 68, 56,157, 44,187,221,238, 28,109, 40,206, + 62,239,227,165,130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, 47,222,238,237,132,182,109,219,230,229,229,229, +181, 23,151,226,112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, 32,151,203, 65, 8,193,173,239,100,129, 97, 1, + 22,141, 31, 98, 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193,208,232,225,224,105,171,175,175,135,201,100, 10, +120, 54,111,163,209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91,160,253,118,130,130,130, 26, 53,253,248,113,172, +152, 64, 28, 45,215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71,209,108, 30, 56,196, 1, 11, 0,144,218,103, 56, + 4,193, 14, 98,183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147,201,223,180, 39, 76,101,101,165, 97,212,168, 81, + 91, 1,252,239,158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, 84, 3, 32,151, 46, 93, 10,185,112,225,130, 96, + 52, 26,219,248, 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80,162, 43,234, 58,187,123, 32,249, 83,108, 46,247, + 52, 35,188, 55, 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, 67, 42,149, 66,169, 84, 2, 0, 62,253,244, 83, +231,228,171, 20, 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104,179,217,138, 19, 19, 19,155,116, 49,187,221, 94, +230, 71,184, 21, 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22,175, 90,181, 74,234,201,221,240,182,192,180, 63, + 78,187,221, 94,156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, 48, 52, 18, 9,227,143, 23,121, 93, 59,145,194, +111, 94,243,145, 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232,232,232,170, 29, 59,118, 68,244,234,213, 43,194, +245,152, 94,189,122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220,227, 49,207,139,162,201, 67,254, 44,246,151,231, +247,238,221, 43,117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, 93,121,188,229,125,171,213, 90, 65,115, 33, 5, + 5,197,117, 47,180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170,170,170,158,205, 29, 1,171,213,218,231,159,192, + 89, 89, 89,217,172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119,143, 0,160,188,188,252, 38, 0,208,233,116,240, +183,172, 78, 19, 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131,230, 44, 10, 10, 10, 42,180,154, 0,186, 24,241, +223, 3, 45, 33, 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,150, 1,131,134,145, 3,158, +208,148,209, 4, 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188,238, 56,253,113,211,209,140, 45, 44,192, 40, + 39,229,164,156,148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, 95, + 6, 9,154, 48,163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43,224,100, 0, 72, 29,155, 56,209,145, 21,128, 5, +128,133, 97, 24,226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65,192,225, 54,109, 90, 31, 98,152, 59,204, 0,160, +138,238,212, 89,173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84,158, 87, 72,179, 7, 5,197, 95,130,187, 0, 76, + 65, 67,183,146, 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44,155,224,111,126, 30, 17,142,181,204,138, 47, 93, +186,212,179, 9,215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245,245,245,155, 1, 44, 7, 96,187,194, 56,105, 0, + 60, 0,224, 17,199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121,158, 84, 86, 86,246, 6,128,136,136,136,221, 86, +171,149,209,106,181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191,109,219,182,255, 1,152,219, 76,247, 82,206,178, +172, 71,129, 34, 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, 56,189,184,184,184, 11, 0, 36, 36, 36, 28, 29, + 61,122,244,161,113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, 43, 47,205,127,166,172,252,196, 3, 0, 16, 19, +219,101,153, 68,194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, 87,115,165, 73,201,173,177,105,231,193, 27,199, +189,248,102,218, 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, 25,247, 84,230,237,118,123,113,117,117,117, 79, +111,156, 28,199, 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, 26,141,102, 23,199,113,201,129,114,137,159, 54, +155,173,216,219, 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65,200,175,168,168,240, 22,206,203,226,222, 28,225, +188, 18, 78, 95,225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, 55,181, 90,109, 55,137, 68,130,240,240,240, 55, +205,102,243,153,144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130,162,185,160,209,104,202,234,235,235,137, 8, 65, + 16,136,213,106, 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106,181,164,182,182,150, 84, 85, 85,145,200,200, 72, +247,201, 27,189,181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, 88,136,197, 98, 33,133,133,133,228,163,143, 62, + 50,105, 52,154, 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233,230, 53,107,214, 16,163,209, 72,116, 58, 29, 89, +182,108, 25,185,225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, 49,197,103,207,158,181,111,220,184,209, 18, 18, + 18,146, 29, 18, 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0,125,155, 16, 78, 0, 24, 57,126,252,248,178,194, +194, 66, 50, 96,192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, 67, 8,137, 69,195, 36,151,151,109,132,144, 88, +199, 49, 97, 1,114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, 24,198, 28, 29, 29,157,149,159,159,223,154, 16, +162,242,197, 89,124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145,255,125, 61, 80,251,212,184, 71,151,198,182,237, +190, 32, 52, 33,109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231,191,206,191,119,220,236, 47, 34, 18,211,159,106, + 66,122, 94, 13, 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19,139,197, 66, 76, 38, 19,209,235,245,164,190,190, +158,212,213,213, 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, 86,102, 48, 24, 26,213, 29,102,179,217, 89,127, +232,245,122,162,215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, 56, 47,138,225, 20, 4,129,216,108, 54, 98,177, + 88,156,188, 70,163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, 16, 78,163,209, 72, 18, 18, 18, 74,188,113,134, +135,135,151, 25,141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, 51,144,112,250, 74, 79, 7,230,230,230,230, 18, +131,193, 64,226,227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233,233,233,194,192,129, 3, 45,149,149,149,228, 95, +255,250, 23,241,241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42,124,255,253,247, 94,151,227,112,253,222,166, 77, +155, 64,175,217, 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54,155, 17, 22, 22,134,231,158,123, 78,118,215, 93, +119,181, 31, 58,116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145,159, 77,154, 52, 41,250,193, 7, 31, 68, 68, 68, +163, 73,183, 49,106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248,208,188,121,243, 74,235,235,235,199, 1,248,209, + 23,169, 66,161,184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37,133,125,253,245,215,219,119,232,208, 65,145,144, +144,192, 94,188,120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105,139,197,178, 50,128,184,203, 34, 34, 34,222,124, +250,233,167, 91,105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, 70,175, 45, 91,182,124, 11,224,203, 43,113,178, + 8, 33, 90,252,209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, 60, 35, 35,227, 71,147,201,212,253,153,103,158, + 57, 63,125,250,116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103,207,158,253, 70,231,206,157, 7,239,218,181,235, + 62, 66,136,213, 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246,206,196, 87, 19, 62,156,150,124,110,223,241, 34, +129, 83,104,240, 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229,124, 90, 72,252, 13, 3,106, 47, 28,207,129,143, + 25,210, 41,154, 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, 90,113, 28,135,208,208, 80,191,171, 27, 4, 5, + 5, 97,227,198,141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12,131,160,160, 32,236,216,177, 3, 44,203,122, 92, + 26,200,125,159, 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, 86,171,129,134,166,127,239,133, 82, 46,199,246, +237,219,189,198,217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203,125, 73, 48,215,223, 42,149, 10,140, 31,210,176, +176,176,222, 9, 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, 79,131, 97, 24, 76,159, 62,157,185,225,134, 27, +248,210,210, 82,244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, 2, 66, 8, 15,224, 70, 0,145,104,232,118, 83, + 7, 32, 20, 13, 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, 87, 58,234, 22, 87,129, 80,225,186,248, 52, 33, +164,151,131, 91, 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0,176,122,245,106,241, 97, 54, 48, 51, 51,115,171, +107,228, 2, 17, 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247,238,221,138,200,200, 63,226, 96, 50,153, 80, 87, + 87,135,250,250,122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248,135,186,186,186, 14,142, 68,243,198, 57,235,226, +197,139,209, 54,155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, 55, 49,108,216,176,152, 65,131, 6,205,114, 19, + 90,151, 13, 37, 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197,197,197, 24, 63,126,124,107, 65, 16, 80, 84, 84, +132,211,167, 79,227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, 60, 13, 79,125,230,229,151, 95,238, 24, 22, 22, +198,126,244,209, 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251,247,143,250,247,191,255, 77,118,236,216,177,216, +113,227,188,166,167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, 7, 33, 36, 6,128,137, 97,152, 26, 15,156, 12, +128,144,161, 67,135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8,224,162,152,249, 66, 66, 66, 84,179,102,205,138, +206,204,204,204,189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, 10,151, 62, 91, 78, 78, 65,192,225,152,216, 46, +203,114,118,141,123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, 94,181,253,120,126, 5,234, 12, 54,220,123,107, +195, 2,230,189,187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253,103, 8, 84,245, 37,199,215,248, 72,207,171, 5, +229,132,179,137, 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60,118,237,218,133, 91,111,189, 21, 60,207,227,137, + 39,158, 8,136,147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, 9,178,221, 42, 91,112, 28, 7,150,101,189, 46, +164,237,206,233,175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176,200, 10,148, 83, 12, 39,199,113,232,211,167, 15, + 14, 29, 58,228, 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200,153, 59,119,110, 56, 0, 84, 85, 85, 57, 23,188, +151, 72, 36, 56,117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, 71,148,179, 37, 57,125,105, 17, 0,253, 39, 78, +156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, 72,166,248, 57,113,226,196,180,172,172,172,233, + 19, 38, 76,120,115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166,155,136,139, 20,121, 28,101,174,209,177,158,126, +187,127,122,226,110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,126,250,244,233,209,190, + 68, 86,125,125, 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185,207,219,108,182,143,125,208, 74, 37, 18, 9,246, +238,221,139,242,242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214,174, 93,139,154,154, 26,244,232,209, 3,104,232, +220,237, 17,221,186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62,124, 24,221,187,119,199,247,223,127,143, 54,109, +218, 64,169, 84, 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244,244,116,155, 86,171,221, 86, 93, 93,189,249,220, +185,115,239,122, 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243,205, 55,219, 1,108, 7,240,252, 91,111,189,245, +248,176, 97,195,162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, 50, +153,172, 44,203, 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, 89, 89,249,220, 75, 47,189, 84,224, 16, 89,167, +208,208, 1, 30, 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126,248,204,210,165, 75,159, 27, 59,118,236,242,111, +190,249,166, 30,128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95,177,252,203,151,215,174,122,190,117, 81,209,133, +246, 17,173, 34,117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200,217, 82,240,188, 4, 39,138,106,209,255,246, 81, +252,153,188,105,125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22,159,142,214,174, 93,187,192,243, 60, 20, 10, 5, +102,207,158,237,147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, 65,112, 46,244,238,190,253,223,255,253, 31, 94, +122,233,165, 70,215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172,209,190, 64, 22,165,183,219,237,224,121, 30, 11, + 22, 44, 64,102,102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144,244,236,211,167, 15, 44, 22,139, 51,204,167, 78, +157,242,200, 59,111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26,132,156,156, 28,220,127,255,253, 38,139,197,146, + 7, 0,119,222,121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254,252,249,255,129,118,144,167,104, 97,120,210, 34, +226, 51, 47, 43, 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145,233, 42,138, 92,127,139,174,147,155,136, 75,115, +117,164, 92, 69,148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160,171, 11, 36, 86,190,254, 68,150,143, 55,199, 70, + 8, 9, 9, 25,126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191,115,115,115,209,179,103, 79,105, 72, 72,200,240, +170,170,170,143, 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, 68, 88,173, 86,172, 95,191, 30,181,181,181,224, +121, 30, 82,169, 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185,104,209,162, 75,226, 27,221,146, 37, 75, 64, 8, + 65,100,100, 36,244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106,164,164,164,200,238,185,231,158,190, 83,166, 76, +225,125, 8,173, 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, 12,199,190,201,227,198,141,139, 40, 44, 44, 52, + 63,249,228,147,123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150,213,106, 21,211,180,160,190,190, 30,173, 90,181, + 74,116,117,182,188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50,215, 48,152,205,102,212,215,215, 67,167,211, 89, +107,107,107,203, 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12,115,135, 89,163, 81,202, 8,145,188, 53,127,254, +124,245,176, 97,195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234,155, 50, 61,235,195, 13,154,132,174,101, 59, 14, +231,227, 66,105, 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139,211,209,114, 21, 21, 57, 57, 57,184,253,246,219, +157,101, 93, 42,149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103,203,150, 45, 30,221, 39,127,112, 21, 69,238,226, +200,147, 0, 99, 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, 95, 51, 7, 56,142,195,184,113,227,192,243, 60, + 94,127,253,117,112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91,111,189,181,201,113,223,189,123, 55,186,119,239, +238, 12, 83,122,122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, 67,135, 6,194,249,102, 93, 93, 93, 55,181, 90, +141,220,220, 92, 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6,111,130,189, 0, 0, 32, 0, 73, 68, 65, 84,215, +235,219, 26,141, 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, 26,169,208,162,104, 49,184,107, 17, 23, 24, 38, + 76,152,240, 38,195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80,251, 28,101,181,151,155,136,171, 96, 24,102, 31, + 33,228, 78,111,231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177,242, 13, 84,104,249,131,209,104,188, 49, 42, 42, +202,171,200,114,253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216,216, 88, 88, 44, 22,124,249,229,151,144, 74,165, +144, 74,255,208, 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, 71,143,176,159,126,250,169, 98,192,128, 1,145, +195,134, 13,131, 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, 20, 23, 23,227,215, 95,127,173,236,208,161, 67, +171, 61,123,246, 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117,235,214, 85, 2,216, 39,151,203,215, 78,155, 54, + 45,204,108, 54, 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, 96,192,128,140,236,236,236,111, 5, 65,152,221, +212,140,234,158,182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, 0,149, 74, 21, 14,224,140, 51,135, 27, 12,141, +196,176,217,108, 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138,115,231,242,131, 93,251,207,133,134,134,226,145, +135, 31,102,111,233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52,230,148,184, 8, 88,237, 86,100,111, 88, 47, 16, +193,186,129, 86, 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122,217, 62,169, 84,138,255,254,247,191, 1, 9, 3, + 81, 84,121,107, 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, 2, 8,130,128,151, 95,126,185, 81,115,162, 43, +127, 64,118,158,139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58,206, 9,200, 37,155, 59,119,110, 64,142,214,157, +119,222,233, 87,184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, 55, 61,237,118, 59,214,172, 89,227, 20,169, 34, +222,126,251,237,167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250,250,122,244,238,221, 59,133,101,217,195,165,165, +165,133, 39, 78,156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, 25, 51, 60, 58, 86,238,206,146, 47,231, 73, 20, + 88, 14, 65, 20, 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, 70,144,155,138,156,226,169,242, 13,164,249, 48, + 64, 59,157, 99, 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213,176,219,237, 87, 60,215,151,167, 55, 89,127, 66, +235,232,209,163,255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130,112,235,174, 93,187, 34, 57,142,131, 70,163,129, + 70,163,193,218,181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, 28, 97, 48, 24,126, 47, 45, 45,125,219,171,130, +225,249,161,253,250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244,209,219, 91,183,110,205, 76,155, 54,205,120,246, +236,217,217, 0,202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209,163,177,117,235,214,249, 0,140,129,198, 89,167, +211, 53, 18, 88, 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, 12, 65, 8,113,222, 27,135,155, 37,222, 31,194, +113,156, 56,170,209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187,221,142,178,178, 50,104, 52, 26, 76,122,251,109, +233,123,227,255,221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93,217,131,219,128,119,105,205,243, 39, 64, 20, 6, +119,223,125,247,101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, 61,122,244,240,251,114, 37, 10,131,187,238,186, +203,233, 12,173, 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, 5,112, 28,135,207, 62,251, 12,175,188,242, 10, + 88,150,197,204,153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252,176,225, 51,225, 21, 45,170,230, 69, 3, 0,130, + 53, 26, 49, 66, 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, 70, 6, 56,142,115, 58, 89,195,135, 15,119, 77, + 71, 18, 8, 39,199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28,238,188,243,206, 64,130, 57, 61, 52, 52,116, 74, +167, 78,157, 58,207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57,155,205, 22, 49,117,234, 84,165,135,115, 20, 0, +186,117,238,220, 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, 9, 47,146,171, 93,143, 23, 57,220,197,145,195, + 33,203,241,199,229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103,159, 23, 83, 42,149, 71,202,203,203, 51, 20, 10, + 69, 35,145,229, 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205,118, 19,253, 53, 29, 2, 48,158, 62,125,122,188, +203,239, 33,195,135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, 35, 35, 49,119,238,220,139,101,101,101,255, 2, +176,177,178,178,210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, 21,192,191,159,123,238, 57,198,106,181, 98,222, +188,121, 58, 0,235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217,217,218, 61,123,246,252, 22,160,200,178, 11,130, +112,153,192,114, 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59,202, 96, 48,104,229,114,121,176, 86,171, 53,185, + 10, 44,145,159,227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230,228, 56,110,240,224,193,131, 57,247,123, 80, 86, + 86,134,210,210, 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110,211, 58, 80,145,245, 39, 57, 90, 68, 44,235,226, + 40, 65, 79, 35, 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209,198,141, 27,125,118, 88,119,107, 58,244,107,141, +139,199,127,254,249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, 76,155, 54, 13, 19, 38, 76, 0,199,113,126,155, + 14, 93, 5, 76,210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, 98, 2, 21,111,190,220,188, 64, 90, 2, 92, 57, +197,243,130,130,130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238,200,200,200, 8,217,191,127, 63,102,206,156, 41, + 53,153, 76,109,178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75,184, 89, 62,254,174,112,235, 95,197,184, 54,227, +249,248,116, 63, 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229,126, 13,215, 99, 42,188, 58, 90,254, 42, 11,127, +130, 43, 16, 71, 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, 80,167,211, 33, 58, 58, 26,199,142, 29,179,233, +245,250,223, 2,112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190,125,123,196,199,199,195,104, 52,162,166,166, 70, + 2, 96, 99,128, 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, 14, 29,112,224,192, 1, 84, 87, 87,255, 8, 96, +216,148, 41, 83,122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, 86,107, 64, 74, 67, 16, 4,179,205,102, 75,102, + 89,214, 82, 83, 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, 13, 68,104,117,235,214,109,239,249,243,231, 49, +117,234,212,138,233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70,163,145,109,213,170,149,124,222,188,121, 10, 0, +232,214,173,219, 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, 45, 45, 69,105,105, 41,202,202,202, 80, 87, 87, +135,148,148, 20,232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118,125,144, 55,165,172,187, 10,152,187,239,190,219, +217,183, 75,116,200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, 94,120,225, 5, 4, 5, 5, 97,214,172, 89,141, +154, 14,221,197,129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, 17,207,148, 53,106,162,243, 32, 56, 2, 10,231, +244,233,211,155,165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141,194,182,109,219,174,184,233, 48, 45, 45,109,201, +234,213,171, 67,142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23,123,109, 21,112,212,229, 65,180,228, 80,252,201, +245,212,190, 63,147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38,211,172, 23, 95,124,241,185, 33, 67,134,132, 7, + 7, 7,163,164,164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, 86,105, 77, 38,211, 44,127,226,192,106,181, 34, + 42, 42, 10,149,149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128,159, 78,230,158, 30, 24, 22,139, 5, 86,171, 21, + 86,171, 21, 22,139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184,184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, 70, +246, 13,185,253,246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223,179,227,155,115,114,114,146, 1, 64,161, 80,228, + 2, 64,113,113,177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, 33,200,201,201, 73,150, 74,165, 4,222, 71, 53, + 26, 87,174, 92,121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116,233,146,172,211,233,202, 13, 6,131,193,104, 52, + 18,137, 68, 34, 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, 75, 87,174, 92,121,220,155,243,166, 82,169,138, +245,122,125,146,120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, 60,239,175, 89,151,162,229, 32,190, 84,185, 59, + 47,238,251, 2, 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20,189,242,202, 43,152, 51,103,206,101,142,214,180, +105,211, 0, 0,111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168,110, 20,118, 0, 96,196,240, 53,173,204,131,227, + 56, 76,157, 58,245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, 56,142, 67,120,120, 56, 30,121,228, 17, 12, 29, + 58,212,217, 4,217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225,253,247,223,175, 14, 13, 13, 13,254,207,127,254, +195,213,212,212, 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81,135, 94, 42,203, 33,104, 60,215, 70,173, 94,175, +127,228,182,219,110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174,174,134,217,108,134, 84, 42, 69,108,108, 44,106, +106,106,240,245,215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, 47, 62,254,248,227,160,244,244,116, 84, 87, 87, +163,190,190,222, 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126,253,122, 3,128,183,252,112,122, 82,115,176, 88, + 44, 78,193, 21,128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82,166, +180,109,219,150, 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, 66, 46, 1,136, 49,155,205, 82, 0,168,173,173, +181,180,106,213, 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, 54,155, 77, 10, 0,253,250,245, 51, 3, 40,117, + 91,163,208,149, 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, 73,123,246,217,103,143, 62,249,228,147,108,124, +124,124, 88, 93, 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15,225,121,254,220,252,249,243,167, 0,208, 50, 12, + 35,120,226,180,217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202,202,202,156, 34,171,172,172, 12,157, 58,117,194, +174, 93,187,236, 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235,222, 4,150,248, 50, 21, 40,167,171, 40, 26, 53, +106, 84, 35, 23, 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, 58,199,215, 27,111,188,209, 72,180, 77,154, 52, +201,107,117,230, 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41,214,157, 60,207, 99,210,164, 73, 1, 59, 90,184, +188,143,214,101,156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127,233,105,183,219, 95,152, 51,103, 14,209,104, 52, + 55,107,181,218, 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50,153, 76,114, 90,142, 40, 39, 90,102,126,174,235, + 71,104, 57, 30,146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, 3, 27,242,242,242,238,187,229,150, 91,190,125, +225,133, 23,130,211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, 99,182,149, 43, 87,106,245,122,253,163, 0, 2, + 25,117,182,232,248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121,178, 36, 53, 53, 21,181,181,181, 8, 11, 11, 67, + 84, 84, 20, 78,157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180,161,250,123,225,183, 88, 44,120,232,161,135, 32, + 8, 2,102,207,158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151,222, 49,187, 52, 78,159, 62, 13, 0,231,146,147, +147,131, 1, 32, 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234,212,169, 83,129,123,229, 40, 58, 89,162, 11,230, + 47,220, 12,195, 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127,254,240,231,159,127,126,217,113, 26,141,102,233, +204,153, 51,223,123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102,204,152, 7,142, 28, 57, 18, 28, 20, 20, 4,157, + 78,135,170,170, 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, 24, 12,239,210,226,248,215,192, 85, 24,120,115, +181, 2, 16, 89, 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129,206,109,229,235,165, 72,156,150,198,211,148, 17, + 77,172,215, 46,227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, 8, + 2,238,188,243,206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, 83,167, 78,169, 0,228,174,105,208, 68, 23,159, +130,130,194,159,208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106,181, 22, 7,120,221,245, 58,157, 46,101,230,204, +153, 47,170, 84,170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211,167,104,218, 34,208, 21, 0,158,223,189,123,247, +236, 97,195,134, 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121,228,236,217,179, 43, 28, 46,214,217, 43, 73,164, +240,240,240,227, 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20,193,193,193,199,171,171,171, 3,165, 40,223,180, +105,211, 55,125,250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125,251,246, 29,179,107,215,174, 37, 0,142,109,222, +188,121, 97,239,222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150,205,230,185,165,209,139,147,229,139, 83, 75, 8, +177, 60,254,248,227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, 0, 8, 13, 13, 61,210,171, 87,175,189,203,150, + 45, 59,229,112,178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239,191,175, 74, 75, 75,227,218,183,111,143,194,194, + 66, 28, 61,122,212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127,157,208, 34,132, 32, 52, 52,180,209, 75,148, 56, +228,191,169,205,133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, 86,171,157,147,155, 6,210,101, 65, 16,124,207, +199, 70, 8,113,114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50,189,131, 74,165,130,213,106,117,242, 6, 48,242, +179,169,106,241, 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66,235,210,165, 75, 61, 91,248,218, 90,147,201,244, +158,201,100,122, 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241,166, 77,155,196,118,132,169,240,191, 94,162, 79, +156, 60,121, 50,147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, 11, 11,255,211, 20, 14,187,221,254,248,174, 93, +187,158,131,163, 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237,246,199,247,236,217,227,252,221,196, 7, 37, 33, +132,152, 8, 33,113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, 28,198, 31,243,100, 89, 29,155,209,173,185,208, + 23, 54,235,116,186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, 85,100,179,217,126,211,235,245,111,161, 97,141, + 42,138,191, 8,102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94,172,236,118,123,113,135, 14, 29,252,190,156,121, +224,188,224, 67, 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, 37, 37, 5, 77,229,244, 23,247,228,228,100,143, +113,247, 35, 8,189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, 50, 50,178,222,104, 52,242, 38,147,137,183,217, +108,141,236, 71,133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199,126, 52, 44, 47,209, 92, 48, 29, 57,114,228, 49, +167, 61, 85, 94,126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, 66, 74,223, 76,116,149,245,245,245, 79,138, 63, +196, 62, 32, 20,127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171,172,172,204,104,129,184,247,188, 94, 57,125,161, +164,164,228,102, 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160,160,160,160,104, 25, 48,104, 24, 57,224, 9, 77, + 25, 77, 48,228, 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235,142,211, 31, 55, 29,205,216,194, 2,140,114, 82, + 78,202, 73, 57, 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, + 5, 5, 5, 21, 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, 0,198,182,240,181, 30,233,221,187,119,149, 92, + 46,223, 0, 32,149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218,181,235,246,147, 39, 79,118,202,206,206,142,139, +143,143,255,176, 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, 98, 98, 98,114,174, 80,108,165,182,105,211,230, + 68,106,106,106, 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, 4, 41,174, 3,116, 1,208,149, 10, 45, 10, 10, + 10,138, 22, 20, 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14,181,228, 5,115,115,115, 47,237,220,185, 19, 9, + 9, 9, 88,178,100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63,113,226, 68,167,236,236,236,248,168,168,168, 79, +154, 51,124, 55,221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228,149, 10, 65, 10,138,191, 51,228, 0, 30, 99, 24, +102,111,151, 46, 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, 25, 24, 86,175, 94,189,117,245,234,213, 91,105, + 30,161,160,160,104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125,246, 25, 9, 15, 15,183, 0,248, 13,192, 74, 15, +219,155, 0, 52, 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159,145,252,252,124,114,252,248,113,146,154,154,106, + 8, 80,208,164,118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, 81, 52, 26,205,177,156,156, 28,114,246,236, 89, +178, 97,195, 6, 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234,234,187,238,186,139,124,245,213, 87,100,213,170, + 85,228,199, 31,127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, 1,132, 94, 79, 90,132,113, 68,140, 0, 24, 8, + 0,153,153,153, 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186,186, 58,180,110,221, 26, 60,207,123, 60,176,188, +188, 28, 59,118,236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186,119,239,190,115,243,230,205,169,193,193,193,206, +157,130, 32,192, 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38,147, 65,161, 80, 32, 60, 60,252, 40,124, 55, 97, + 56,221, 55,131,193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, 54, 99,186,164, 70, 69, 69,229, 44, 90,180, 40, + 50, 37, 37, 5,231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, 10,138, 63, 19, 19,238,187,239,190,105,209,209, +209,108,151, 46, 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, 33, 4,181,181,181,200,201,201,193,230,205,155, + 77,151, 46, 93,250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, 51,147,161,121,133,130,130,162,153,112,164,182, +182,182,139,201,100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105,105,233, 45,240,188,168,188,166,123,247,238,123, +114,114,114, 82,141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, 34, 98, 23,128, 62,222,222,196,187,116,233,178, +127,215,174, 93,225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, 14,192, 91,224,171,209,176,142,234, 57, 15,255, + 37, 2,120,209,241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, 22,122,189, 30,163, 70,141,170,206,205,205,237, + 5,160,128,102, 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, 38,147, 9,122,189,222, 41,180, 36, 18, 9, 8, + 33,176,217,108,206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148,165,107, 86,139, 80,161, 69, 65, 65,209, 18, 72, +237,208,161,195,161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178,181,186,186,122,155,187,120,137,142,142, 78, 91, +184,112, 97,114, 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129,243, 77,173, 86, 59,205, 98,177,224,208,161, 67, + 24, 51,102, 76, 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225,123,244,232, 1,173, 86,139,145, 35, 71,234, 79, +157, 58,213, 27,192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, 36, 36, 36, 64, 42,149,250,140,156,193, 96, 64, + 82, 82,210,174,138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, 20, 62, 57, 44, 22, 11,138,139,139, 33,147,201, + 96, 50,153,208,174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124,184,195,119,223,125,135,238,221,187,163,115,231, +206,168,175,175,119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191,252,114, 30, 28,205,231,215,170, 22, 17, 59,166, + 77, 17,219, 68, 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94,250,144, 33, 67,182,173, 88,177,162,213,240,225, +195,209,174, 93, 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, 27, 51,102,204,254,162,162,162,100,199,174, 94, + 94, 56,123, 5, 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, 31, 62,124,152,151,201,100,216,183,111, 31,198, +142, 29, 91, 89, 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139,139,253, 70,238,252,249,243, 16, 4,193,228,233, + 63,150,101,229, 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, 54, 20,255, 80, 88,205,102, 51,122,246,236,137, +130,130, 2, 28, 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123,247,226,224,193,131,232,223,191,191, 59,207, 53, +169, 69,156,202,113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, 53, 46, 46, 46,103,209,162, 69,145,177,177,177, + 24, 52,104, 80, 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182,109,219,174, 2,112,207,149, 28,147,152,152, 88, +177,111,223,190, 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83,114,167, 78,157,246,109,216,176, 33,156,101, 89, + 28, 59,118, 44,144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132,123, 57, 87,213,161, 67,135,190,251,247,239,151, + 50, 12,131,194,194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113,255,123,238,185,231, 66,122,247,238,141,226,226, + 98, 92,184,112, 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, 66, + 2,212, 75,191,195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45,169, 84,186, 62, 62, 62,190, 28,158,231,165, 10, + 27, 57,114,100,137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, 61,123,150, 68, 71, 71,231, 3, 8,243,112,204, +216,152,152,152, 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, 34, 69, 69, 69,100,221,186,117, 36, 34, 34,162, + 37, 70, 4,166,118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, 96, +106, 74, 74,138,241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, 35,227,199,143, 39, 25, 25, 25, 36, 35, 35,131, +140, 26, 53,138,188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52,233, 40, 40, 40, 40,154, 23,137, 0,102, 57, 4, +213,202,145, 35, 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76,221,224, 9,111,150,150,150,146,210,210, 82,113, +106,132,124,252, 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, 39,133,133,133,100,237,218,181,196, 33,216,154, + 13, 10,133, 98,131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, 34, 10,192,220, 27,110,184,193, 58,123,246,108, +178,114,229, 74,242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224,131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77,174, +171, 7, 93,217,156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59,185,112,225, 2,217,176, 97, 3,137,137,137, 57, +134,198,243,105,185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, 98,177, 56, 57, 78,158, 60, 73, 0,108,109,134, +112,166,198,199,199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103,220,147,146,146,202, 43, 42, 42,200,166, 77,155, + 72,100,100,164, 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15,251,156, 57,115,200,211, 79, 63, 77, 18, 19, 19, +237,142,151,162,248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222,189, 27,114,185,220,185,227,247,223,127,119,157, + 71,203,219,188, 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, 58,138,105,203,150, 45, 0, 96,106,134,176,229, + 94,184,112,161,255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140,120, 97, 97,225, 43, 93,187,118,157, 94, 87, 87, +167,213,235,245,163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60,112,224,192, 91, 0, 8,128,247, 1,156,184,222, + 18,130, 10, 45, 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252,159, 15,145, 37,226, 82, 65, 65, 65,159, 59,239, +188,243, 57, 52, 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, 9, 75, 74, 75, 75,151,208, 44, 64,113, 29,225, + 24,128, 7,175,231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, 90,120,158,103,139,130,130,130,226,111, 7,186, +168, 52, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20,255, 44, 48,240, 62,114, 32,187, 9, 60, 87, 50, +162, 33,155,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, 80,180,168, 0,163,156,148,147,114, 82, 78,202, +249,207,230,100, 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156,215, 36,254,170,206,240,226,141, 16,208, 48,228, +147,226,239, 7,215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, 29, 27,254,134,117,137,171, 40, 16,174,242,185, +212, 18,113,191,158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134,177,235,116,186, 35, 38,147,105, 62,128, 93, 87, +121,205,175,162,163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150,101,193,243,188,161,182,182, 86,115, 37,164,145, + 93, 70,188,202, 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, 24,169, 84,122, 95,120,120,120,104, 69, 69, 5, + 97,217,134,174,124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, 97,123,195,195,195, 67,197,243, 25,134, 65, 85, + 85, 85, 77,121,121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85,117, + 11,189, 21,255, 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, 34, 8, 76,173,141, 81,252,190,254,194, 87,103, + 2, 57,127,212,168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215,215,215,235, 25,134, 33, 12,195,128, 97, 26,222, +179,220, 63,237,118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137,137, 25,163,215,235,245, 14, 62,143,188, 0, 96, +181, 90,139, 43, 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, 29,195, 48,130,235,127,132, 16,215,135,249,217, +202,202,202,126,254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121,181,113,143,142,142, 30,163,211,233, 2,226,244, + 17,247,203, 56, 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207,158, 14, 60,207, 3, 0,140, 70, 99,215,185,115, +231, 62,246,198, 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114,114,216,149, 43, 87,178,189,122,245, 2,195, 48, +176,219,237,176,219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241,191, 65, 55, 14,121,242,133,114, 96,154,191,253, +190, 4, 38,128,183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89,182, 73,156,130, 32,228, 95,186,116,169,143, 15, + 1,211,236,156, 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70,161, 80, 64, 16, 4,216,237,118, 88,173, 86,220, +112,195, 13, 77,114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, 31,126,192, 99,143, 61,134,190,125,251,230,149, +151,151, 3, 0, 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182,182, 22,183,221,118, 27,170,170,170,254,209,133, +235,230,244,132,247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181,188,225,225,225, 7,229,114,121,180, 95,181,236, +242, 32, 51, 26,141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158,227,184,142, 0,146,108, 54, 91, 52, 0, 72,165, +210, 50,137, 68, 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135,197, 63,209,142,177,233, 71,214,153,132,225,202, +182, 89,169,250,179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, 72, 5,176, 12, 13, 11, 74, 63,141,134,121,128, +174, 6,241, 0,238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, 85, +213, 19,240,176, 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, 62, 80,220, 44, 15, 40,150,101, 63,205,204,204, +252,215,138, 21, 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26,107, 23, 32, 57, 57,217,159,171,193,177, 44, 59, +123,228,200,145, 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85,108,137,136,139,139, 11, 52,239,127, 53,116,232, +208,209,139, 22, 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, 47, 59,246,150, 91,110, 17,252, 71,157,253,244, +158,123,238, 25,253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, 85,199,125,196,136, 17, 15,127,247,221,119,202, + 35, 71,142, 40,219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136,243,238,187,239,126,120,217,178,101,202,131, 7, + 15, 42, 59,118,236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50,139,197,130,173, 91,183,130,101, 89,132,135,135, + 99,236,216,177,216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200,226, 1,224,199, 71, 71, 32,159, 7,198,149,155, + 33,149, 74,113,246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146,254,194, 62,185,193, 96,133,177,100,191, 82,161, + 80, 56, 31, 0,250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, 95,191,208, 27, 95,251,246,237,191, 61,118,236, + 88, 39, 79, 5,215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, 60,207, 39,156, 59,119, 46, 74, 38,147,129, 16, +226, 44,196,238,159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, 54, 27,130,130,130, 32,186, 81,102,179, 25,245, +245,245,254, 56, 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, 80, + 72, 36, 18, 12, 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170,104,121,158, 71,120,120, 56,214,173, 91, 7,141, + 70,131,196,196, 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237,237,183,118,226,110,238,206,125,238,120, 84,130, +101, 1, 65,104,120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51,174,176,176, 48, 42,208, 52,178,217,108,136,139, +139,147,248, 57,108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, 42, 5,199,113,224, 56, 78, 20,232,137,132,144, + 68, 65, 16, 6,150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, 88,177, 16, 67,183, 58,147, 48,124,219, 33,220, + 52,114,200, 27, 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, 86,106, 90, 90,218,161, 61,123,246, 4, 89, 44, + 22,244,238,221,123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113,226,232,103,159,125, 86, 18, 26, 26, 10,153, 76, +134,186,186, 58,156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, 92, 88, 88,152,177,119,239, 94, 12, 26, 52,232, + 69, 0, 47, 95,174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209,147, 45,107,112,113,220,143, 38, 16,236, 66,241, +222,195, 23, 2, 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188,121,184,239,190,251, 16, 30, 30, 14,165, 82, 9, +169, 84, 10,158,231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188,120,113, 48, 0, 44, 94,188, 24, 35, 70,140, 64, + 68, 68, 4,130,131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245,189,233,166,199, 23, 45, 90, 4, 0,120,235,165, +151,112,199,205, 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94,240,171, 47, 1,124,124,223,125,247, 61,240,253, +247,223, 7, 3,192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, 50,103,156, 25,134,129, 66,161, 8, 40,238,247, +221,119,223,200,239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46,151,203, 33,149, 74, 27,109,238,162,211, 19,231, +189,247,222, 59,114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, 11,115,166,167,200,213,148,123,244, 55,231,188, + 62,132,214,161, 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126,184,245,227,143, 63,142, 7, 31,124, 16,155, 54, +109,122,170,137, 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130,169,201, 15,112, 7, 38,237,127,234,169,152,172, + 51,245,216,189,247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51,222, 59, 91,215,176,223, 70,152,173,175,140,139, +185,113,246,255, 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32,138,138,138, 32, 8,130,201,151,187, 32,149, 74, +113,244,232,209,203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143,241,227,199,227,212,169, 83, 16,151, 42, 9,128, +147, 9, 15, 15, 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196,166, 61, 71,225, 10, 72, 24,179, 44,139,111,191, +253, 22, 31,124,240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19,114, 28,180, 90, 45,194,194,194, 16, 22, 22,214, + 72, 32,254,147,225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, 2, 2,129, 8, 40,187,112, 6,147,223,253, 40, +224,167, 15,207,243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164,164, 36,191,121, 73, 42,149, 78,249,249,231,159, +101,223,126,251, 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, 80, 68, 68, 68, 56,183,132,132, 4,230,127, 61, +184,254,121, 0, 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, 90,237, 90,207,247,156,132, 40,219,102,165,142, + 28,242, 6, 0, 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54,181,107,215,174,219,119,238,220, 25,164,215,235, + 33, 8, 2,214,174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, 73, 73,171,118,238,220,121, 75,100,100, 36,106, +107,107,161,213,106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185,231,158,123,158, 31, 51,102,140, 81,161, 80,136, +206, 70,146,231,188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163,207,234,242, 66,188,244,202,228,128,194,216,186, +117,235,167,127,248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6,108,155, 54,109, 30, 95,178,100,137,147,179, 85, +171, 86,224, 56, 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, 8,139,140,195,156,207,230,249, 13,103,100,100, +228,252, 97,195,134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35,170,149, 6,173,194,130, 27,210, 73, 96,240,251, +169, 2,191,207, 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140,171,248,242, 44,186,248,102,179, 25, 61,123,246, + 12, 40,238,174,156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, 23,133,176, 67,112, 54,226,224,121, 30,203,215, + 45,242,234,102, 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241,165,205,181,171, 80,124,124, 60,230,204,153,227, +183, 94,114, 43, 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207,195,113,226,126,222,209, 98, 21,137,134,126, 99, +117, 0, 66, 61,240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107,245,234,213, 98, 41, 30,152,153,153,185,213,241, +189, 70, 46,151, 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56,172,213,187, 67, 66, 66,142,121,112,117, 14,153, + 76,166, 55, 0,148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226,123,135,194, 76,128,244, 73, 51, 48, 44, 51, 19, +235,227,101,144, 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60,244,221,202,118,203, 80,146, 32,142, 67,239,237, +107, 48,126,251, 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175,106,133,215, 30,217,136, 62, 26, 57,100, 38, 29, + 88,150,245,148,179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249,104, 88,199, 9, 94,194, 9, 66, 8,186,117,235, + 6,134, 97,156,110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, 4, 7,149, 74,133,223,126,251,205,121,204,224, +193,131, 97, 52, 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, 94, 12,158,231, 17, 17, 17, 1,165, 82,201, 44, + 90,180,104,162, 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31,142,227,116, 90,173, 54,194, 27,167, 68, 34,193, +179,207, 62,139, 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, 26,209,170, 85, 43,167,216,242, 80, 0, 91, 98, +184,111,203,114, 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33,118, 8, 54,224,192,198,221, 29, 46,230,151,196, + 19,144,134,174,183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207,246, 23, 78,142,227, 96, 52, 26,241,243,207, 63, +227,228,201,147, 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124,243,205, 24, 51,102, 12,146,146,146,252,198,157, + 16,178,176,168,168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, 96,183,219, 97,179,217,192,113, 28,130,130,130, +160, 80, 40, 16, 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234,207, 78,200, 93,183,124,194, 77, 35,223, 32, 88, +241, 1,131,118,109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, 90, 11,196,106, 23, 42, 95,157,248,201,243,127, +250, 61,186, 92,100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88,209,234,174,187,238,202, 41, 41, 41,233,239, 67, +108, 93,198, 25, 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237,183,223, 80, 86, 86,118, 41, 46, 46, 46,100,224, +192,129,236, 75, 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40,204,219,134,194,211,219, 33, 8, 13,174,117,195, +230,249, 59, 9, 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168,209, + 67,214,245,193,235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, 68, 4,146,146,146,160, 84, 42, 33,147,201,192, +113, 28, 24,134,193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155,223,112, 42,149,202, 71, 23, 46, 92,216,200, 2, +137, 14, 11, 3,199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, 67,186,114, 50,117,117,117,198, 61,123,246,168, +247,239,223, 15, 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, 27,113,207, 61,247,224,219,111,191, 69, 70, 70, +134,223,184,215,215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186,117,107,103,220,197,141,231,121, 72, 36, 18,164, +164,164,160,182,182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, 11, 11, 67, 66, 66,130,211,113, 19,197,209, 7, +159,191,219,136, 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93,187,118,208,104, 52, 80,169, 84, 78,110, 95,156, + 94,180,136, 83,111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113,142,175,253, 39, 78,156,216, 51, 43, 43,107,122, + 70, 70,198,119, 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178,166,187, 30,239,225, 58,222, 29,173,204,204, 76, +198, 17, 73, 6, 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240,249,243,231, 81, 83, 83,131,224,224, 96,205,204, +153, 51, 53, 3, 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, 45, 0,119,223, 86, 96, 89, 22,125,250,244,193, + 49, 71,107,199,176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159,103,198,143, 31,207,137,110, 6, 33, 4, 6,131, + 1,177,177,177, 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127,112, 47,164, 50, 6,172,132, 65,119, 82,133, 95, + 7,245, 7, 3,192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51,103,206, 4,228,104, 57,226,197, 92, 41,167,232, +104,236,220,185, 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, 80, 40,160, 84, 42,153,239,190,251,238,237,228, +228,228,216,241,227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108,226, 76, 75, 75,243, 27,151,173, 91,183,226,139, + 47,190,192, 83, 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, 32, 0,176,216,172,208,215, 27,156, 77,186,118, +187, 29, 71,182, 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147,235,105,177,247,125,190, 44,117, 64, 24,191,103, +235, 37,235, 30, 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71,177,118,237, 90,188,243,206, 59,248,247,191,255, +125,153,171,229,239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29,223,120,227, 13, 86,116,180,148, 74, 37, 24,134, +129,209,104,132,201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, 54,255,215,107,115, 37,163,248, 93, 41,215,175, +109,155,192,182,211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, 38, +147, 14,207, 63,255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58,116, +232,128, 69,139, 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, 57, 50,241,198, 27,111,252,180,190,190,190,186, +190,190,254, 83, 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191,190,223,228,201,147, 37,110,125,116, 36,222,236, + 81,171,213, 6,131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99,199,142,184,235,174,187,192,243, 60,148, 74, 37, +212,106,117,163,102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, 31, 62, 28, 82,169,180, 17,167,152, 15,135, 15, + 31,142, 23,222,155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156,122,189,190,126,243,230,205,138, 87,159,122, 10, + 55,182,111,143, 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147,157, 0, 16, 36, 18, 9,186,116,233,130,178,178, + 50, 20, 20, 20,160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211,120,239,189,247, 96, 50,153, 2,142,123,251,246, +237,113,235,173,183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14,237,218,181,195,202,149, 43,145,154,154,234,151, +179, 83,167, 78, 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234,157,215,136,143,143,111, 18,231,134,189,231,241, +229,198,205, 48,153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138,187,200,185, 96,193, 2,212,212,212, 56,141, 3, +241,165, 92, 52, 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, 51,192,231,173,120,156,152,185,228, 89, 89, 89, +211,221,207,247,199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92,254,230,230,205,155,195,107,107,107,113,250,244, +105,176, 44,235,108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202,203,203, 33,151,203, 33,145, 72, 96, 54,155, 1, +160,187,183, 7, 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, 26, 10,134,216, 33,254,135, 31,126,128, 90,173, + 70,112,112,176,243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, 1,150, 1, 24, 9,192,178, 4, 44,195,128,221, +149, 3,134, 1, 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228,201,197,114,255,190,101,203, 22, 4,202,217,174, + 93, 59,168,213,106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32,156,164,193,141, 16, 16, 21, 21, 5,158,231,153, + 69,139, 22, 77, 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, 54, 61, 33, 33,148, 0, 82, 34, 77,225,194,165, +151, 0, 66,104, 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73,147, 42,200, 37, 32, 72,151, 46, 69,164,131, 5, + 20, 36,129, 64, 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, 33,194, 5,231,125,158,121,118,167,189,115,206, +156, 51,103,222,243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235,215,175, 35, 33, 33, 1,245,235,215,119,219,103, +171,168,168, 40,235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138,138,114,237,251, 53, 26, 77,126,159, 62,125,202, +248,109,228,229,229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, 82,235, 80,110,102,142,234,227, 15, 63, 16, 45, +155,250, 6, 0,224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191,220, 53, 19,192,224,202,248,117, 58, 29, 76, 38, + 19, 34, 34, 34,112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16,173, 6, 44, 25, 25, 25,157,162,163,163,127, 93, +177, 98, 69, 68,243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, 59,119,238, 76, 49, 24, 12,255,182,153,206, 93, +226, 68,198, 55,201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, 4,157,159, 33,213,107,140,119, 76, 12,151, 0, +142, 1, 24,176,224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, 63,147,201,132,107,215,174, 97,204,152, 49,150, +188,188, 60, 9, 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219,182, 45,224,213, 87, 95,221,163,215,235, 95,116, +147,250,219,172,172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, 31,154,166, 75,147,227,242,193,100, 1,138,162, + 96, 52,154, 81, 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182,118, 84, 34, 22,122,181,125, 49, 88,199,113, 28, + 72,130, 40,186,246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236,179,204,252,252,252, 32, 18,137,240,237,183,223, +226,198,165, 19,144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241,250, 3, 68, 53,243,114, 75, 16,250,251,251, 99, + 64,199,142,136,238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, 5,128, 99, 72,119,131, 8,176,246,116, 6, 5, + 5,225,183,223,126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183,111,223,198,238,221,187, 17, 21, 21, 85,237,188, +219, 45,120, 51,103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, 8, 69, 69, 69,248,247,191,255,141,156,156, 28, +183, 56, 29,135,247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, 18,130, 67,151,118,130, 0,129,171, 59, 62, 40, + 35, 10,215,239,186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100,117,170,242, 56,130, 32,174,217,141,173, 51,103, +206,156, 69, 16,196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, 65, 28,181,137,176, 1, 14,219,174, 85, 75,104, + 41, 20,138,246,158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18,137, 68, 77,242,242,242,164,185,185,185, 48, 24, + 12,186,249,243,231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61,194,246,237,219, 1,224,128,107,159, 13, 18, 44, +203,150, 86, 10,231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205,155, 55, 87,249,194,120,245,251,195,184,126,253, + 58, 28,195, 3,216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248,170, 28,224, 93,193, 93,223, 47, 87, 51,115, 42, + 66, 70, 70, 70,133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, 32,151,203, 9,177, 88, 76,136,197,226, 48,187, +200, 18, 8, 4,165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, 61, 50, 51, 51, 43,220,175, 86,171, 59,169,213, +106, 60,143,176, 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, 51,128,159, 59,189, 51, 13,147,251, 70,245,172, +238, 48,181,253,126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183,183, 55,250,246,237, 11,165, 82,137,153, 51,103, + 98,248,240,225,213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, 52,188,110,221,186,176, 88, 44,176, 90,173,176, + 88, 44, 72, 78, 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145,241, 77,242,254,243, 31,102,246, 30,249,170,241, +118,206, 15,200,206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160,105, 6, 98,177, 64,185,244,139, 15, 78,177,224, + 64,146,132, 5,192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, 19, 19,147,157,159,159,159, 8,160, 23, 0,228, +231,231, 95, 28, 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169,215,235,171,162,244, 4, 48, 25, 64, 31,148,248, +129,216, 81, 0, 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0,248,217,117, 15,200,102,209, 50,153,160,206, 47, +196,132,119,230,252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, 39, 25,111, 76,152, 38,173,170, 67,224,234, 69, + 88, 13, 31,157, 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191,124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, 29, + 88,139, 1,132, 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84,224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, 16, + 12, 81, 42, 72, 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242,100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, 38, +147, 9, 70,163, 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, 98,177, 24, 31,124,240, 1, 94,126,249,101,204, +155, 55, 15,177,177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50,178, 42, 94,206,177,140,236,247,211, 46,182, 28, +135,248, 0, 84,187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155,115,209,162, 69, 80,171,213,229, 44, 89,246,255, +161,161,161, 88,183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, 56,142,107,103,243,157, 50,199,197,197,221,138, +139,139,139, 38, 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253,210, 18, 58,141,141,118,119,220,105,191,209,190, +190,190,130,240,240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30,169, 80, 40, 62,251,238,187,239, 26,233,116, 58, +220,190,125, 27,171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102,201,114, 92, 31, 56,112, 32, 26, 52,104, 80,198, +154, 37,151,203, 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, 73, 73, 49,138,197, 98,132,133,133,201,179,179, +179,141, 98,177,184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, 93, 25, 11,150,227,175,227,255, 67,135, 14, 85, + 57,116,104,231,108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, 31, 88,150,133,191,191,191, 91,156,118, 81,107, +115,128,135,201,100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149,250,234,200,100,178, 82,107, 38, 15, 87, 13, 2, + 11, 11, 69,193,104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53,230,183, 55,176, 5, 5, 5, 56,113,226, 4,126, +248,225, 7,188,252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, 51,174, 46, 88,176,160,142,175,175, 47,172, 86, + 43, 30, 62,124,136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69,195,100, 48,163, 88,163,197,103, 95,108,173,176, +234, 1, 64, 65,238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206,157,191,208,106,181, 69, 6,131, 97, 56,128,101, +142,253,169,252,252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, 55, 40,103,166,166,166,206,170, 87,175, 94,153, +141,102,179, 25,245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175,195,110, 47, 0, 39, 1,172,171,168, 46,217,135, + 14,117, 58, 35,148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, 13,177,119,128, 43, 90,170,152, 25, 87, 46,169, +246, 99,237, 47,236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, 85, 0,228,190, 16,119,253, 24,132,202,118,143, + 38, 31,118,139, 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, 10,184,156,144,128, 93, 63,253,132,145, 61,122, + 64, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, 53,107,134,123,247,238,149, 9, 67,193,113,156, +187,249, 47,205,187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139,177,117,235, 86,156, 59,119, 14, 51,102,204,192, +248,241,227,209,189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195,185,213, 45, 35,103, 78,231,247,126, 77,202,221, +206,185, 96,193, 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100,183, 60, 57, 10, 35,231,117, 0, 62,246,109, 51, +103,206,156,229,238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116,153,156, 23, 20, 20, 92,189,122,245,106, 11, 15, + 15, 15,220,185,115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175,254,253,251,159, 90,182,108, 89, 24,203,178,200, +201,201,193, 71, 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195,135,203, 63,108, 7, 15, 30,116,107, 8,196, 46, +164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49,137,191,102, 42, 84, +101,125,170,202, 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, 90,158,154,154, 90, 97, 67,114,238,220, 57,176, +182,134,214, 93, 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82,200,229,242, 50, 34, 75, 42,149, 86,249,224, 84, + 21,144, 84, 38,147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, 5, 5,237,159,233,161, 67,112,160,173, 52,140, + 70, 19,116, 90, 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, 66,135, 14, 29,202,137,172, 26,154,231,211, 11, + 10, 10,186,175, 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45,214,233,116,221, 1,164, 87, 75,108,178, 28, 40, +171, 21, 6,147, 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206,222, 89,201,254,251, 52, 77, 71,219,227,190,185, +129,127,213,171, 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226,100,189,233,104, 72,198, 95,209,179, 43,234,197, +151, 88, 71,141,102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228,147, 85,147, 58, 68, 16, 68,169,211,247,212,169, + 83,113,243,198, 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63,212,114, 44, 91,113,172,218,220,187, 29, 92, 32, +150,237,222,237,114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, 83,238,125, 83,221,252, 59, 10,152, 21, 43, 86, + 96,198,140, 25,216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200,205,205,197,141, 27, 55, 96, 54,155,221, 78,167, +163,223, 92, 82, 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119,228,116, 22, 90,251, 79,255,142, 97, 81,109,107, +196,249,217,103,159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69,156,144,231,228, 11,101, 95,183, 56,137, 30,231, +117,231,227, 1, 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, 52, +120,240,224, 65,171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51,102, 32, 34, 34, 2,254,254,254,161, 42,149, 10, +249,249,249, 88,188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, 11,137,228,175, 14,171,221,178, 5, 0,227,199, +143, 47,103,209,178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, 24, 50,100,136,224,207, 63,255,100,250,246,237, +139,161, 67,135, 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212,236,223,191,255, 67, 0, 95,186, 33,182,106,205, + 49,222, 94,201,220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133,194, 82, 71,121,119, 56,237, 67,135,142, 15, 32, + 73,146, 80,169, 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, 80, 40,239,220,185,211,200, 62,241, 34, 47, 47, + 15, 61,123,246,188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, 25, 13,181, 70,107,127, 30, 54,110,220,136,196, +196, 68,152, 76, 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, 92,206,246,235,215, 15, 87,175, 94,133, 84, 42, +165, 80,131,248, 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, 84, 85, 39, 38, 38,194, 98,177, 96,222,188,121, +204,175,191,254,122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225,161, 58,122,244,232,123, 0,182, 86,246,242,166, +104,155,104,175,197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44,203, 98,226, 91,111,161,119, 29, 13,134,190, 20, + 0,125,214, 93, 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, 7, 0,253,186, 13, 70,171,102,229,195,131,117, +238, 85,210, 39,187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171,106, 88,180, 74,159, 57,251,253,107,211,166, 13, +154, 52,105,130,179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212,212, 84,220,188,121, 19,133,133,133,213, 46,163, +239, 79,238, 66,161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224,199, 46,119, 59,154, 14,248, 12, 0, 80, 39,192, +187, 90, 66,203,145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202,214,171,123,254,147, 68, 69, 66,235,129, 90,173, +238, 48,114,228,200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129,129, 61, 58,118,236, 40,148, 72, 36,184,124,249, + 50,246,239,223,191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43,162,253, 65, 84, 42,149,130,197,139, 23, 19,155, + 55,111,174,208,202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, 21,253,250,245, 99, 18, 19, 19, 33, 22,139, 49, +104,208, 32, 38, 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, 63,244, 1,208,181, 26,247,202,238, 24,239, 9, + 55, 29,224, 43,234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, 98, 49,109,143,252, 78,146, 36,172, 86, 43,218, +182,109,139,220,220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, 42, 20, 10, 97,177, 88,208,181,107, 87, 16, 4, +129, 53,107,214, 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, 2,203,214,238, 87,101, 98, 99, 99,203,136, 41, + 87,145,151,237,247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55,247, +160,211,230, 2, 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, 63,126, 92,112,224,192,129, 94,135, 14, 29, 74, +184,123,247,238,163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, 30, 94,122,233,165,207, 51, 50, 50, 42, 17, 90, +182,251,104, 50, 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238,220,255, 67,239,144, 34, 12,105,237,141,248, 35, +151, 48,186,141, 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220,126,169,178, 36,150,107,253,200, 14, 32, 31,221, +171,118,222, 29,211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31,127,140, 62,125,250,224,222,189,123, 56,127,254, + 60,238,221,187,135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211,123,161,209, 21,131, 36, 72, 20, 20,231,195,100, + 54, 34,118,210,220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, 57,123,246,108,100,103,103,151,177,100, 61,142, + 95,214,179,142,202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94,148,191,191, 63, 8,130,192,138, 21, 43,224,235, +235,219, 9,192, 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200,201,201,113, 57,111, 95,175,215, 91,163,162,162, + 68, 33, 33, 33,101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26,177,177,177, 88,184,112, 33,194,195,195, 49, 96, +192, 0, 68, 71, 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169,196,199,143, 31,239, 70,146,100,130,195, 11,164, + 12,167, 43,216, 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, 11, 23, 46,196,172, 89,149,187,122,108,216,176, + 1, 40,239, 79,245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26,162, + 50,156, 85, 5, 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224,224, 96, 87,129,252,170, 44,163, 26,224,111,229, +100, 56,246,218,210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, 20,150, 29, 78, 50, 91,255,154, 74, 45,105,219, + 11,150,235, 63,186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, 54,110,220,248,216,121,119, 83,108,149,231,100, + 57, 66,225,225, 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126,253,229,151, 95, 6,249,249,249, 33, 61, 61, 61, + 64, 36, 18, 13, 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226,156, 54,109,154,121,206,156, 57,210, 81,163, 70, + 97,232,208,161, 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233,233,248,241,199, 31,161, 86,171,111, 87,150, 78, +150,227, 8,185, 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171,184,163, 53,171,154, 34,203,101,253, 4,128, 95, +127, 60,136,185, 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80,131, 85,223,198, 71,163, 95,198,178, 29,191, 1, + 0,206,159,171,178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175,227,134,143, 86, 57, 78,123, 39, 81,171,213,162, +168,168, 8,241,241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, 23,223,125,247, 29, 20, 10, 69,141,202,232,195, +183,102, 99,206,178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241,177,203,221, 25,110, 88,179, 42,228, 92,185,114, +101, 77,235,210, 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, 25, +194, 11, 13, 13,221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199,190, 0,192,192,129, 3,113,248,240,225, 42,123, + 20,193,193,193,168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229,114, 28, 61,122, 52,187,160,160,160,128,227,184, +106, 77,115,179, 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239,222, 13,217,184,113,163,160,146,151, 95, 41,206, +159, 63, 79,163,138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, 4,170, 10, 72, 42, 20, 10,145,148,148,132,185, +115,231,130, 32, 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159,129,175,116,110, 9,130,128,213, 82,126,164,218, +179, 80, 87, 42,178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130,239,198,141, 27,133,238,148,251,133, 11, 23,104, +142,227,170, 61,236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57,238,139, 57, 81,219,190, 61, 38, 34, 8, 11,174, +156,219,135,226, 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, 46,186,181, 67,134, 12, 25,245,213, 87, 95,181, +112,181,211,141, 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, 19,235,177, 99,199,222,124,245,213, 87,209,186, +117,107,132,132,132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, 23,192,148, 42,238,227,193, 69, 95,204,137,137, +223,113, 76, 66, 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182,238,183,138,197,162, 59, 85, 89,139, 28,173, 89, +181,249, 98, 28, 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243,197,112, 44,239, 39,134,117,207,104,180,122,109, + 27,118,206,235, 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138,101, 54,113, 83, 61,171,169, 61,239,149, 89,174, +170,107,209, 34, 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219,162, 71,143, 30,184,113,227, 6,110,220,184,129, +105,211,166, 85, 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56,151,123,109,192,157,186, 52,121,242,100, 0,248, + 71, 89,183,170, 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165,251,210,210,210,192,178,172,161,186, 5, 99,177, + 88,236,193, 49,203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, 91,183,110,232,210,165, 75,233,240,137,227,226, + 32, 76,112,224,192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, 0,185,185,185,125,187,118,237,122, 74, 40, 20, +186,245, 21, 77,150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, 60, + 60, 60,240,253,247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191,155,159,228, 28,128,128,161, 95,238,122,120, 46, +223, 90,111,232,151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, 57,242,184,187,229, 78,211,244,131,236,236,236, +106,135, 75,224, 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36,255, 51,231,174, 94,190,240,243,169,126,253,162, + 58,180, 3, 9, 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214,240,225,195,159,102,177,105,178,179,179, 59, 13, + 27, 54,108, 10,254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, 69,129, 64, 32, 5, 48, 23, 64,218,165, 75,151, +214, 94,186,116,169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0,254,168,186, 30,229,190, 13,142, 13,235,215,251, + 95,125, 65, 16,156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222,200,106, 85, 89, 71,202,225, 11, 28,181, 62,100, + 63,101,202, 20, 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90,165,195,252,117,103, 16,202,112,183, 59,124, 0, + 48,251,255, 38,212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, 16, 32, 47, 47, 15, 73, 73, 73,200,201,201,129, +193, 96, 64, 98, 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, 85, 70, 79,147,243,159, 56,124, 88,109,161,101, +181, 90, 63,109,208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, 38,106,170, 61, 11, 79, 36, 18,153,154, 52,105, + 66,184,154,157, 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8,130, 16, 84,212, 11,177,255,103, 89,150, 17, 10, +133,113, 53,188, 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231,242,209, 55,107,214,172,244,139,246,206, 49, 81, +108, 31, 91,213, 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238,119, 12,104,250, 92,131,224,210,250,143,122,179, +222,185,124,107, 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253,221, 73, 75, 73, 73,177,252,235, 95,255,250, 86, +171,213, 78, 6, 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26,158,155,150,159,159,223,211,105,219, 31,118, 65, +101,143,107, 87,109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45,203, 13, 69, 81,233, 85,237,119,142, 17,230,136, + 91,240,198,172,171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69,213,204, 91,174,187,121, 15, 9, 9, 65,157, 58, +117, 74,127,237,112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, 17,223,157,125,178,220,225,172,237, 50,170,140, +179, 78,157,109,181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, 57, 5,252,253,228, 57,121, 78,158,243, 9,114, + 62,151,224,189,212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129,168, 68,149, 86,103,166, 79, 77,148,237,105,158, +147,231,228, 57,121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227,231, 26,188, 89,149,231,228, 57,121, 78,158,147, +231,228, 57,121,206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240, 66, +139, 7, 15, 30, 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, 30, 60,120,161,197,131, 7, 15, 30, 60,120,240, +224,193,131, 7, 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72,233, 7, 1,163,163,163, 9,254,182,240,224,193, +131, 7, 15, 30, 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, 7, 15, 94,139,212, 14, 72, 94,108,241,224,193, +131, 7, 15, 30, 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172,103, 10,101, 44, 90,188,224,226,193,131, 7, 15, + 30, 60,120, 60, 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, 30, 60,120,240,120, 76,129, 85,217, 47, 15, 30, + 60,120,240,224,193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158,243, + 31, 11, 33,127, 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30,181, + 39,178, 8, 87,235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143,199, + 3, 1,126,232,144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, 52,115,224,116, 53,200,107, 50,251,224, 52,207, +201,115,242,156, 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, 55, 0,103, 1,116,183,253, 86, 40,188,106, 27, +252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168,148,119,134,231, 81, 21,132,168,124,136,185,170, +253, 60,120,240,224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, 22, + 0,111,135,109,191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247,170, 76, 13,199,137,109,252, 82,219,194, 2, 48, + 1, 48, 3,208, 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87,170,185,255,185, 66, 72, 72,136,220,199,199,167, +207,245,235,215, 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225,201,172,172, 44, 35, 95, 93,158, 11,244, 5, 48, +211,246,127, 17,128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, 29,154,166, 9,131,193,144,169,215,235, 79,209, + 52,253,165,173,221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, 25,153,153,153, 59, 0,236, 1, 48,188, 78,157, + 58,163,235,215,175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211,201,131,199, 63, 9, 68,101,214, 8, 87,152,203, +113,220,232, 50, 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, 23,185, 92, 78, 3, 24, 87,133,200,242,187,124, +249,114,189,201,147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241,115, 96, 96,224,175,171, 86,173,250,142,227,184, +116,130, 32,180,213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28,199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81,212, + 55, 0,106, 34,222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10,133, 55,205,102,243, 9,154,166,215, 2,176,212, +128, 83, 38,145, 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, 70,115,202, 98,177,172,181, 9,206,167, 13, 33, +128,104,142,227, 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, 28,199,113,196,207, 63,255,220,134, 97, 24,210, + 86, 63,162, 1,252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180,208,100,178,151,175, 95,191,222,116,247,238,221, +204,215, 95,127, 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, 43,235, 61,231,227,253,252,252,150,147, 36,233, +239,206,245, 89,150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142,143,151, 53, 2,144, 94,195,250,253,247,113,154, + 98, 56, 0,136,151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59,173,237,202,113,192,148, 40, 47,242,113,133, 86, +104,104,104,124, 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, 77,175, 92,185,210,125,223,190,125, 47,107,181, +218,225,213,164,124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20,213,104,247,238,221,109,223,126,251,237,247, 55, +110,220, 88,119,196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0,190,124, 10,233,228,193,227,159,134,110, 40,235, +163,245, 57,128,207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, 57,115,230,144, 80, 40,180, 91,180,218,235,245, +250, 32, 39, 43,152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, 17,217, 10,133,162,201,171,175,190,170, 37, 8, + 66,176,123,247,238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28,199, 93, 32, 8, 66,237,102, 38, 91,248,250,250, +238, 95,178,100, 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67,143, 30, 61,218,239,243,207, 63,255,176,160,160, + 96, 8,128,132,106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, 97,112,112, 48, 76, 38, 19, 18, 19, 19,123,159, + 56,113,162,235,198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237,189,239,191, 31,127, 28,212,225,141, 55,132,190, +190,190,224, 56, 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226,226, 97,174,238,247,211,132, 68, 34, 33,183,111, +223,222, 90, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, 44, 51, 51,211, 91, 44, 22,187,220,207, 48, 12, +186,118,237,218, 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87,215,119,238,220,233,191,118,237,218,215, 0,148, + 19, 90, 36, 73,250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98,177,160,121,243,230, 79, 53,255,241,241,178, 48, + 0,211, 99, 98, 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, 78,199,250,182,220,225,255, 99,167,213, 1,245, + 0,224,216, 13, 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213,106, 53, 68, 34, 17,172, 86, 43,178,179,179, 17, + 25, 25, 41,248,246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224,216,177, 99,214,237,219,183, 91,162,162,162, 68, +227,199,143, 87,118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167,168, 49, 99,198, 72,226,226,226, 2,142, 30, 61, + 58, 48, 33, 33,225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18,181, + 9, 10, 10,138,167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109,199, 30,100, 89,118, 80, 85,150,172, 49, 99,198, +116, 60,126,252,248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225,135, 31,166, 2, 64, 74, 74, 74,195,129, 3, 7, +134, 78,157, 58, 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130,208, 87, 37,178, 34, 35, 35, 47,159, 63,127,222, + 75,165, 82,149,217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234,213,235, 82,114,114,114, 23, 0,127,186, 35,136, + 26, 55,110,124,250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, 6, 3,148, 74, 37, 70,140, 24, 33,238,214,185, + 83,221,169,211,222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119,198,197,121, 82, 15, 31, 66, 46,151, 67,167,211, + 1, 0,188,188,188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215,164,164,222, 79, 73,108, 73,109,191,102, 0, 71, + 4, 2,193, 96,137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102,221,161, 7, 15, 30, 12,185, 92, 14,139,197,194, +162,100,232,144,126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212,106, 53,242,243,243, 97, 54,155, 81, 84, 84, 4, +150,101, 9,185, 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, 74, 42,179,141,166,105,232,245,122,152,205,102, + 88,173, 86,104,181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10,190,204,201,201, 73,123,194,217,207,179, 11,162, +248,120,217,125, 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, 15,143,252,110, 10,183, 89,199, 30,212, 2, 31, + 11, 0, 23, 46, 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142,227,170, 61, 28,151,156,156,188,238,197, 23, 95, + 36,110,221,186,117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12,223,165, 75,151, 22,196,198,198, 46, 2,176,117, +247,238,221,239, 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219,224, 56,174, 29,128, 0,123,219, 98,107,119,253, + 28,214,111, 16, 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130,248,213,225, 60, 53, 65, 16,191,214, 52,153, 78, +191, 37,157,110, 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207,158,203,174, 93,187,214, 60, 43, 43,203, 39, 43, + 43,203,231,218,181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62,245,180,195, 62,241,229,203,151,235,237,223,191, +127,209,233,211,167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, 11,154,238,211,167, 79,238, 79, 63,253,196,116, +232,208, 65,126,252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4,174, 56,109, 16,169, 84,170,239,207,157, 59, 87, + 78,100, 57,162,110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, 54,200,100, 50,217,190,159,126,250,201,211,203, +203, 11,185,185,185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118,247, 46, 72,139, 5, 43,190,152,239, 37,151,203, +247,186,104,236,203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99,193, 2, 88,173,214,210, 33, 87,171,213,138, 75, +147, 39, 67,253,227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, 3,142,156,147, 1, 20,216,150,201, 0,174, 68, + 70, 70, 94, 75, 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, 99,198,140,201,123,246,236,105,213,165, 75, 23, + 36, 38, 38, 34, 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41,179,176,236, 95,239,152, 58,117,234,228,238,223, +191, 31, 35, 70,140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34,211,237,116,154, 76, 38, 24,141, 70,232,245,122, +164,164,164,200,151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179,102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, 9, +231,221,234,244,127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49,173, 29, 26,216,234,242, 86,118, 63,179,109,105, +213, 3, 72,123,156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10,197, 77,193,138, 85, 96,197, 42, 48,126,237,144, + 44,121, 5,225,225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151,173,167,156, 15, 96, 89,108,108,236,231, 4, 65, + 92,136,141,141,157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165,243,153,120,222,121,206,255, 45,206, 42,180, 72, + 0, 65, 16, 71, 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, 0, 72, 92,253,218, 23,135,237, 1, 28,199, 13, +112, 56, 47,160,134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163,237, 59,126, 33, 8,226, 16,128, 95, 68, 34, 81, +155,214,173, 91, 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238,221,235,213,162, 69,139,193, 34,145,168, 13,128, + 95,148, 74,229,161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, 54, 0, 80,148,144,144,160,232,208,161,131,158, +166,105,130,166,105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218,121,244,234,213, 43,117,250,244,233, 99, 92, 8, + 14, 71,188,190,120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, 48,121,242,228, 96,145, 72,244,102,101,119, 75, + 40, 20, 78, 89,188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88,144,148,148, 4,147, 94, 7, 74,171, 1,165, 41, +130,250,254, 61,168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, 77,108,108,144, 37, 53, 21, 41,123,246,128,161, +203, 27,127,104,171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, 83,158,176, 37,107, 41,199,113,114,142,227,228, + 4, 65,172,234,216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, 59,127,254,124,119,154,166, 69, 52, 77,139, 46, + 92,184,208,197,100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98,177, 24,114,185, 28,157, 59,119,190,191,121,243, +102, 42, 44, 44, 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171,213, 46,118,151,207,106,181,194,108, 54,195,104, + 52,194,100, 50,225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, 11, 40,138, 50,199,198,198, 42,125,125,125, 63, +124,146,249,140,137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, 56, 1, 88,108, 62, 89,118,248,219,184, 45,181, +116, 43,104, 0, 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104,227, 55,223,124, 19, 70, 74, 85,184,104,233,143, +239,216,207,113,210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199,113,107,106, 33,205, 95, 1,232, 10, 96, 85, 77, + 78,126, 2,233,172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134,103, 31, 7, 81,141,208,123, 80, 51, 50, 61, 42, + 2,220,160,102,100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113,209, 28,199, 69, 47, 90,180,104,161,195,251,221, +190, 46,119,211, 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, 41,209, 20,142, 74,210, 33,115,165,179, 11,131, +130,130,226,227,227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175,177, 99,199,190,151,158,158, 30, 83, 69, 34, 36, +217,217,217,109, 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237,237,205,216, 15,240,246,246,102,138,139,139, 69, +122,189, 94,192, 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, 64, 64, 64, 84,255,254,253, 43, 28, 58,160, 40, + 10,122,189, 30,122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110,110,238,250, 10, 21,135, 84, 26, 21, 21, 21, 37, + 42, 40, 40,128,183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, 88,117, 90,208, 90, 13, 56, 77, 49,242,239,221, + 65,135,102, 77,197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195,184,113, 66, 15, 15, 15,116, 31, 93, 50,207,224, +120,179,102,224, 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18,237, 10, 10,132,202,109,219,162,212,106,245,178, +167, 81,217,165, 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22,156, 60,121,242, 31,247,208, 75, 36, 18,200,100, + 50, 88,173, 86,212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, 30, 98,177,248,135,252,252,252,133, 89, 89, 89, + 41,238,242, 81, 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55,104,208,128,152, 60,121, 50, 99, 48, 24, 26,174, + 94,189, 58,249,228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, 83, 51, 0,205,226,227,101, 98,155,229,215,242, + 63,198,201,161,196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225,126, 66,189, 72, 0, 29, 0, 47,155, 40,120,149, + 32,136, 14,205,155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, 70,198,178, 44,193,178, 44,222,110, 95,132,201, + 29, 5,160,168, 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, 62,155,111,122,122,122,246,145,201,100,245,105, +154, 38,117, 58, 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, 29, 30, 30, 30, 75,102,205,154,213,201,219,219, + 27,191,255,254,123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91,150,175, 92, 19, 26, 26,168,194,141,243,135, 67, + 23,110,216,189, 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, 27, 64, 16,196, 17,103,161, 84, 45,179,211, 99, +158, 95,133, 69,203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86,171, +225,227,227, 3,171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34,145,217,104, 52, 66,161, 80,176, 34,145,136,179, + 93,135,176,205, 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, 20,149,248,146,113, 28,215,222,207,207,207,229, + 62,179,217, 12,157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, 52,221,182,210, 46, 45, 77,183, 12, 8, 8, 64, +102,102, 38,228,114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138,139,193,106, 52, 96,245, 26, 80, 22, 3, 66,155, + 52,131,125, 70, 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56,155,192,162,105, 26,180,205, 57,218, 62,156,232, +239,239, 15,251,140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, 38, 33, 43, 43,171, 76,157,152, 52,105, 82,169, + 79, 86,215,174, 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127,127, +125, 94, 94,222,207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70,112, 28,135,223,127,255, 29, 50,153, 76,196, 48, +204, 45,154,166, 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, 54, 11,209,155, 40,113, 56,207,112,209,144,184, +117,235,220,228,172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111,170,146, 44,143,235, 16,168,106, 61,208, 67,175, +144, 8,244,108, 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87,207,223,223, 95,150,156,156,108,154, 63,127,126, +131,237,219,183, 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254,253,251, 55,148, 74,165, 68,113,113, 49,212,106, + 53,114,114,114,240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, 36, 36,100,243,235,175,191, 62,246,165,151, 94, + 18,217, 45,164,122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175,118,189,124,244,232,209,158,217,179,103,123,188, +242,202, 43, 77,165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125,250, 52, 84, 42, 21, 72,146, 12,122,220,250,106, +178,178,161,117,130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242,252, 88,180, 42,120,215,183,179, 91,164,170, 16, + 75,198,153, 51,103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50,142,199, 57, 28,111,174,109,177, 85,173, 64,147, + 44,203, 34, 35, 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199,113,238,204, 62,227, 8,130, 96, 79,157, 58,229, +115,249,242,101,125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, 24, 34, 45, 45, 77,124,241,226, 69,213,237,219, +183,131,108,189, 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, 50,247, 84,135,237, 69,248,251,181,107, 37, 34, + 75,167,181, 13, 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25,220,190,127,142,176,139, 44,171, 77,104, 89, 44, + 22, 80, 20, 5,150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, 96,124, 70, 70,249,119,225,144, 33, 67,240,238, +187,239, 98,234,212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88,150,109, 13,160, 24,192,241,231,237,161, 55,155, +205,165, 22, 40,147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, 77,219,185,137, 3, 7,246,227,194,133, 11,100, + 66,194,173,176, 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, 40, 44, 40,241,127,170, 40,164, 66, 4, 42, 31, +178,227, 42,227,124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41,143,105,209,122, 69, 66, 18, 95, 79,107,233, 43, +251,176,149,159, 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, 97, 13, 84,117, 22, 46,252, 34,228,246,237, 59, +230, 57,115,230, 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38,147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26,116, + 53, 48, 48,176,193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101,245,122,253, 3,163,209,120,218,106,181,158, 6, +112,173, 58,137,245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, 86, 43,114,115,115,209,169, 83, 39,193,161, 67, +135, 90,212,228, 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82,169,124, 73, 42,149, 6, 3, 96,180, 90,109,142, + 94,175,255,163, 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, 62,124, 8,134, 97,114, 30,183, 14,200,196,228, +163,155,231, 15,213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61,247,176,251, 80,193, 81, 64,185, 16, 72,151,227, +226,226,228,139, 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187,101, 63,206,225,248,243,143,145,198,138, 45, 90, + 21, 41, 72,160,100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153,153,153,144, 72, 36, 72, 75, 75,131, 68, 34,201, +114,167, 19, 34,151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215,189,118,237,154,178, 83,167, 78, 47,202,229,114, +134,227, 56,152, 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180,111,223,254,250,238,221,187,141,168, 36,254, 21, + 65, 16,191,100,101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, 25,242, 20, 10,133,215, 43, 75,168, 80, 40,188, +153,148,148,212, 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, 46, +147, 33, 35, 61, 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, 74, 85,250, 18,165,104,186,100, 97, 24, 88,104, +186,212,162, 37, 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201,216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, 58, +116,192,148, 41, 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116, 40, + 44, 44, 20,202,229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240,224,129,166, 34, 78,155, 48, 43, 21, 93, 44,203, +130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136,223,178,157, 27, 52,104, 16,113,232,208, 33,176, + 44,155,254,132,179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, 21,113, 58,246,254, 28,183, 17, 46,142, 41,135, + 15, 62,248,224, 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25,104, 70,111, 62,183, 83,247,237, 93,141,126,222, +183, 43,127,179, 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174,223,184, 42,127,199,246,189,201, 15, 31, 62,212, +172, 93,187,182,227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69,227, 55,223,124,115, 92, 97, 97,161, 56, 62, 62, +126,119, 86, 86,214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100,107,231, 46, 2,152, 95, 89,127,141, 32, 8,252, +244,211, 79,229,102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, 39, 39,103,152,243, 78,177, 88, 60,175, 73,147, + 38,125,111,221,186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, 16, 8,234, 48, 12,147,105, 52, 26, 99, 31,219, +162, 69,177, 19,226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226,117,200,243,107,205,178, 65,237, 96,141, 82, 3, + 32,156,214,255,176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, 87,251,212,143, 17, 44,157,171,168,141,171,200, +162,245, 9,128,246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240,210,104, 52,200,201,201, 65,110,110, 46,132, 66, + 33,148, 74, 37,214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0,147,191,191,255,111,219,183,111, 15,254,250,235, +175,133, 49, 49, 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, 67,152,205,102,226,237,183,223,142, 88,177, 98, + 69,170, 64, 32, 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213,167,190,255,254,251,161,211,167, 79,151, 90, 44, + 22,151,150, 44,251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, 56,245,195,177,163, 93,255, 51,114,164,152,210, +106, 64,105, 53,160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,127,253,131, 50,155,205, +149, 6, 54,212,104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, 7, + 91,182, 4, 67, 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, 55,110,220,200, 29, 61,122,244, 53,150,101,219, +226, 9,125, 52,243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3,201,209,163, 71,187, 38, 38, 38,138,255,252,243, + 79, 92,184,112,161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170,196,155,171,160,191,176,249, 31,238,222,185, 7, +239,188,243, 14,145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,117,225,228,247,228, 34,164,194, +239,112, 51,164, 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, 56, 80, 22, 95,165,165, 12, 49,166, 24,141,205, + 33, 62,171, 22, 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140,243, 1,156,128,137,225,238, 93,231,110,188,244, +146,143, 63, 0,152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122,190,228,231,231,183, 46, 63, 63,191,179,171, 50, +141,142,142,238, 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179,243, 65, 17, 17, 17,115,110,223,190,221, 78, 36, + 18, 17, 85,212, 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35,110, 4, 78, 80, 12, 8,101, 96, 84,173,144, 38, +110,142,176,176,171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58,116,232,150,248,248,248,176,110,221,186,113,215, +175, 95, 39,157, 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97,215,174, 93,147, 81,118,166,109, 85, 72,179,197, + 27,172, 53,156, 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92,120,140,240, 12,143,149,196, 10, 13, 24, 21,108, +111,111,139,137,213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252,124,248,249,249,161,126,253,250, 32, 8, 2,235, +214,173, 51, 62,120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10,218,213,171, 87,239,218,182,109,155,234,218,181, +107, 2,154,166,149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152,189,118,237,154, 34, 34, 34,194, 68, 16,132,244, +199, 31,127,204,191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, 96,193,130,140,148,148, 20,152,205,102,104, 52, + 26, 20, 23, 23,151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246,239,223,159,101,139, 18, 95,153,101, 99,237,154, +117,235,213, 89, 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, 71, +163, 67,252,229, 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, 22,139, 81,111,248,112, 88,109, 67,133,142, 66, +139, 33, 8,132,247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, 79, + 76, 76,220, 5,224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153,162, 40,204,157, 59, 23, 98,177, 24,115,231,206, +197,167,159,126,138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, 6, 23, 47, 94, 20,159, 63,127,158,139,139,139, +203,139,136,136, 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, 94, 94,136,141,141,197,146, 37, 75,176,121,243, +102, 28, 60,120, 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, 87,175,206, 56,120,240,160,113,213,170, 85, 16, + 10,133,196, 83,106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81,181,111, 84, 69,156,144,197,199,215,181,137,163, +100, 7, 65,116, 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150,143,254,191, 68,213,166, 59,247,175,100, 25,103, + 3,248,193,158, 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148,148,228,253,253,247,223,203, 2, 3, 3,241,237, +183,223,202,228,114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, 9,253,218,181,107,247,190,173, 35,218, 11, 64, + 11,148,204, 94,140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, 32,173, 86,251,205,214,173, 91,235, 23, 48,190, + 56,166, 31,138,120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191,254,122, 29,134, 97, 54, 85,179,220, 95, 31, 50, +100,200,214,248,248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237,142,203,237,219,183,243,198,142, 29,155,181,105, +211,166,144, 17, 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, 29,186,120,225,150,254,207,205,205, 93, 93, 88, + 88,120,233,222,189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147,179,202, 33, 96,169, 43,191,146,222,176,197,218, + 32, 8,130,226, 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152,186,119,239,142,189,123,247,250,247,232,209,195, +192,178, 44,119,236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183,155, 54,105,210,100, 98,108,108,172,154, 32, 8, +214, 21,167,253, 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, 84,160,105, 26, 6,131, 1, 6,131, 1, 28,199, +193,219,219, 27,106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, 77, 38,147,105,216,228,247,167,159, 90,245,249, + 92,175,240, 6, 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37,114,220, 75,210,226,163, 93, 7,180, 70,147,233, + 53, 23,189,229,114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, 4, 5, 65, 32, 16,192,108, 54,131, 97, 24,136, + 68, 34, 68,198,196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20,143, 51,103,109,192,145,115,242,141, 27, 55,198, + 54,107,214, 12,147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250,245, 48,155,205, 99, 1, 92, 7,176, 14, 37, 67, + 29,112, 18, 89,127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, 9,171,213,138,207, 63,255, 28,118,193,105,175, +215, 83,166, 76,169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, 37,103,182,111,223,238,255,205, 55,223,188, 14, + 32,214,153,147,101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, 47, 47, 55, 60, 57,126,252,120, 88,173, 20, 4, + 2,161,197,100, 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188,159,161, 40, 9, 97,224,232,248,110,113,244,207, + 66,197, 33, 21,170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, 49,123,237, 38,253,106,112,218, 5, 97, 77, 56, + 79,217,150, 42, 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, 84,148, 78,179,217,252,231, 71, 31,125,116, 99, +211,166, 77,189,175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75,163, 41,138,226, 66, 66, 66,132,157, 59,119,150, +245,239,223,223, 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135,205, 57,239, 2,130, 32,240, 97, 87, 45, 98,123, + 8, 96,177, 88, 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56,142,172, 70,185,251, 1,152,253,221,119,223,133, + 74, 36, 18, 98,215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118,239,222, 61,207, 54,122,145,254, 44, 62,239, 60, +231,255, 44,231,179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148,162,168, 95, 92,132,112,248, 4,192, 92, 7, 43, + 88, 85,230, 60, 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233,147,149,149,149,213,112,249,242,229, 97, 52, 77, + 91, 19, 18, 18,200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190,125,251, 28, 65, 16, 86, 55, 50,152,144,156,156, +220,169, 71,143, 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, 68, 74, 74, 10,254,248,227, 15,203,238,221,187, +211,139,138,138,170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, 3,253,255,213,244, 5, 73, 72, 72, 8, 96, 52, +226,206,195,108, 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130,231,151,223,238,221,235,221,115,198,140,125,243, +254,243,159, 32,100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44,189,120,227,198, 28,155,200,122,210, 81,225,165, + 0,150,178, 44, 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96,203, +179,110,197,178,163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235,227,227, 3,173, 86, 11,154,166,153,140,140,140, + 59, 62, 62, 62, 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, 11, 72,146,172,200,242, 1,165, 82,153,118,230, +204,153,198,111,189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, 48, 28,199,237,127,210,247,160, 75,151,157,192, +134,152,215, 0,188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, 3,254,226,116, 28,198,179, 11, 34,155, 21,170, +185, 44, 62,126, 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221,129,163,246,213,235,245, 96, 24,166, 50,107,222, +239,123,247,238, 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101,143, 30, 61, 60, 29, 15, 48, 26,141,236,225,195, +135,245,235,215,175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, 31, 30, 93,184,112,161,119,255,254,253,155, 0, + 40,245,207, 82,171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, 75,249, 0,230,141, 26, 53,106,233,182,109,219, +234, 76,152, 48, 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105,185,109,219,182,144, 9, 19, 38,100,163,196,143, + 44, 29, 60,120,240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38,147,137, 51, 24, 12,156, 78,167,227,224,250, 43, +240, 7, 51, 51, 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, 39,197,235,170,193,242,216,177, 99, 71,163,208, +208,208,207, 21, 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 23, 47, 14,229, 56, 78, 92,137,138, +174, 8, 66,145, 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192,192,192,131, 34,145,232, 29, 0,162, 42,148,121, + 69,144, 9,133,194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225,113, 74, 40, 20,126,132,202, 3,169, 86,202, 41, +145, 72, 62, 10, 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, 68,242, 56,156,143,211, 43,177, 11, 45, 3,103, + 3, 65, 16, 84,235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213,234,107,155, 85,146,179, 89, 91, 12,168, 56,120, +227,223,153,206,167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77,154, 52, 41,152, 51,103,142,102,219,182,109,108, +100,100,228,246,154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148,148,196,109,218,180,137,142,140,140, 44,112,138, + 12,255, 36,242, 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68,140, 41,134,179,205, 62, 60, 1,160, 79, 5,101, +239, 46,103,152, 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191,158, 4,167, 75,180,104,209,226, 30,231, 0,139, +197,194,169,213,106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, 63, 0,111, 3, 56, 28, 28, 28,124,187, 99,199, +142, 15, 59,117,234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218,150,165, 0,154, 84,193,217, 81,165, 82, 45, 12, + 11, 11, 59,212,184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45,194, 95,145,177,171, 91,231,123, 12, 29, 58, 52, + 77,167,211, 49, 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70,142, 28,153, 14, 32,250,159,240,188,243,156, 79, +133,243, 31,133,198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118,110,149, 5,193,113,156,128,227, 56, 15,142,227, +188, 57,142,243,229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254,251, 56, 39,219, 4,148,193,246,223, 25, 85,237, +127,174,239,103,104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239,127,116,224,192,129,143,218,181,107, 55, 53, 52, + 52,212,231,113,210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121,243,230, 95, 57,137,172, 39,153,119,137, 77,196, + 52,179, 45, 13,109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195,105,231, 59, 4,160,175,109, 57,100,219, 22,246, + 20, 56,203,161, 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181,186,215,162, 69,139,123, 77,155, 54,189, 23, 17, + 17,113,175,110,221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103,192,158,118,157,239, 30, 25, 25,121, 85, 38,147, +185,140, 13, 38, 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, 11,173,255, 33,240,149,240,217,227,148,162,242, +207,140, 84,181,159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145,212, 2,167, 35,159,189, 78, 69, 56,136,166,167, +193,201,215, 37,158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230,126, 30,207,197,104, 60,126, 0, 0, 32, 0, 73, + 68, 65, 84, 54,170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, 81, 91,109,103,119, 0,231,236,189,194,138, 84, +105,117,102, 19,212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31,199,105,199,138, 10,182,223,113, 90,255, +250, 25, 21, 94, 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, 78,158,179,166,152,248,140,138,172,110,246, 21, +126,232,144, 7, 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, 8,236,255, 71,141, 26, 53,158, 97,152,169,246, +117,129, 64,176,230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, 85, 93,199, 21,103,139, 38,202, 73,126,222,138, +247,138,138, 13, 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178,101,203,221,218, 78,231,248,241,227,155, 56, 95, +167,126,152,168,187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236,169,192, 31, 64,180,151, 76, 60,168,133, 74,220, +241,207,124,211,101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, 42,149,202, 49, 0, 90, 24, 12,134, 64,133, 66, +145, 11, 32, 65,163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, 91,125,120, 46, 21,245,220,217, 87, 21,250, 68, +192,196, 1, 82,130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247,105, 4, 11,199, 65, 76, 0,230,147,247, 33,123, +142,138, 74, 9, 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120,174,224, 60, 84, 88,186, 46,172, 64, 76,116, 21, + 11,137,175, 56,112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66,190,246,237, 9,227, 63, 7,137, 34,138,198,187, + 91,182,108,169,241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123,248, 99,159,174, 3, 22, 47,178, 60,200,139,213, +106,181,164, 84, 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56,139, 88,236,113,121,197,138, 21,217, 53, 77,231, + 7, 31,124, 16,108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, 88,124,246,240,199,138,110,209,139, 62, 7,120, +161,245, 20, 32,169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, 76, 22,235,160,179,233,186, 65,159, 94,201,156, +158,174,179,182, 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70,110,220,184, 81,220,176, 97, 67,200,100, 50, 24, +141,198,144,251,247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22,238,125, 8, 46,252,236,214,255, 3, 0,116, 26, + 51, 63, 28, 37, 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, 44,148,132, 80,112,213,234, 72,142,108, 91,134, + 65, 99, 63, 18, 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, 9, 14,194,195,219,150, 33,122,236, 71, 21,126, + 71,177,111, 99,130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12,231,160, 36, 6, 88, 57, 74,148,124,208,217,229, +241, 3,154, 10,114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, 76, 27, 80, 20, 83,210,182,138,133, 96, 14,166, +120,159,157, 61,123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212,106,181, 63,218,238, 91, 50,255,248,242,224,241, + 92, 11, 46,215, 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, 98,231,206,157, 40, 44, 44,132,143,143, 15, 36, + 98,177,104,229,210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169,169,230,117, 26, 59,159, 79,216, 62,165, 35, 20, +144, 34,137, 68, 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, 69,159,200,149, 74, 79,249,155,147,103,118, 70, + 73,252,159, 26,193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112,190,142, 88, 44,102,236, 47, 22,190,142, 61, 21, +204,222,248,238,216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, 80, 0, 1,129,230, 49, 39, 82,103, 1,248,244, +121,201,108,195,134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, 78,175,215,195,104, 52, 34, 52, 52, 20,103,207, +158, 21,207,153, 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, 86,253,240,240,112, 19, 0, 12,108,233,229,188, +175,158,125, 31, 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253,188, 41,189, 66,153, 10,182,155, 0, 40, 42,227, + 98, 89, 78,120,242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54,108,104,116,220,238,233,233, 89,209, 41, 65, 58, +157, 46,220,121,163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, 6,194, 29, 59,118, 0, 0,190,252,104,180, 96, +211,207,121, 66,161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68,255,109,219,182,245, 63,120,240,224,202,138,132, + 42, 15, 30, 60,158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, 94,127, 27,199,143,255,128,174, 93,187,150,238, +107,208,160, 1,134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167,176, 88,255,105,191,145, 95,205,127,152,173,187, +114,228,200, 17,116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68,153,119, 11, 4, 71,138,189,148, 30, 24, 21,243, + 14, 92, 93,103,226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, 30,141,130,253,250,180,108,214, 20,133,251,215, +226,143, 34, 19,142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135,168,103,182,158,122, 46,132, 86,112,112,112,211, +128,128,128, 50, 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73,196,198,198,138,207,157, 59, 55, 50, 56, 56,248, +180, 27,195,136, 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, 40, 20,156, 80, 44,213,118, 31, 55,223, 11, 0, + 72,161, 88,187,114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210,157, 52,155,205,102,206,145,211, 98, 49,151,110, + 95,188,120,177, 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5,144,138, 5,144,138, 5,144, 73, 68,240,170,223, + 14,210,194, 63, 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34,145,136,167, 77,155, 86,101, 58,199,143, 31,207, +169, 84, 42,171, 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136,160,144, 10,209,184, 65, 24,164,156,209,237,180, + 10, 4,101,189, 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221,121,161,197,131,199,115,129, 10,103, 24, 10, 1, +224,200,145, 35,221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24,222, 28, 55, 10, 12,195,150,126,231,139, 32, 9, + 76,126,163, 63, 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, 0,160, 81,189, 16,110,226,155,255, 1,195,178, +127, 13,148, 8,128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133,171,235, 52,109, 84,135,164,173, 38, 16,101, 63, +246,248,119,124,108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, 59, 5,198, 83, 25,250, 64, 82,149,170, 94,245, + 90, 7,153, 64,157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179,113,227,198,114, 34, 43, 39, 39,135,212,233,116, +176, 90,173,172, 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179,179,231,217, 53,143, 43, 78,155,223,213,140, 91, +183,110,213,155, 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, 9, 9, 89, 21, 21, 21,229,187, 96,193, 2,107, +255,254,253, 83, 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155,119, 71,206, 45,103,214,112, 0, 64, 16, 4,162, +162,162,210, 26, 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, 52, 9,245,182, 53, 34, 4, 32,247, 44,245,196, +139,138,138, 74,111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85,142, 83, 46,151, 83,175,191,254,250,195, 59,119, +238,184, 58, 30, 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, 18,128,158, 51,101,180, 80, 37, 3,164, 94,254, +102,141, 70, 3,165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221,246,236,217,115,142,127,222,121, 78,158,243, 47, +184,210, 34,207,160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, 8, 15,194,226,255, 27, 15,134, 97,193, 48, 12, +104,219, 47,195, 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174,119,125,122, 14, 89,218, 43,110,246,184, 83, 12, + 3,176, 44, 5,138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245,194,130, 17, 55,123, 28,156,175,179,253,187, 61, + 3,207, 28,138, 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, 82, 33, 39,148,193, 98,161,161,181,176, 22, 0, +122, 19,197, 90, 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134,101, 68,214,178,101,203,252,215,173, 91, 23, 10, + 0,195,134, 13,203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, 1, 0,222,179,157, 59, 3,192,186, 10,120,245, +225,225,225,166,128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, 96, 96,160,185,113,227,198,122,177, 88, 12,146, + 36, 97, 23,122,110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, 16, 9,201,242,205,155, 3, 39, 73,146, 46,175, + 87, 97, 29,146,201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, 67, 4,224, 44,199,113,184,126,253, 58, 82, 82, + 82, 32, 22,139, 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, 6,224, 38,255, 4,243,224, 81,138,179,207,160, +192,114,182,106, 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68,236,184, 16, 63, 20, 13,138,178, 2, 28, 87, 43, + 66,171,162,235, 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, 77, 81,181,114,247, 88,134, 2,203, 82,112,117, + 29,130, 32, 25, 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23,104, 19, 66,253,164, 18,228, 25,209,240,133,102, +130,223, 13, 20, 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201,160,215,235, 75, 45, 89,235,214,173, 11,181, 88, + 44, 36, 0, 8,133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63,142,227, 8,155,224, 89, 10, 96, 11, 42,137,238, + 47, 22,139, 75, 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44,118,185,221,121,120,173, 42,136, 29,133, 22,184, + 18,171,150,147,216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, 10, 28,174, 39,168,190, 43,166,213,106,133, 78, +167, 67, 81, 81, 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, 49, 15, 30,174,181,200, 51, 44,182, 92, 11, 45, +148,152,236, 8, 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, 23,112,213,140,122, 58,114,228,200,173, 33, 33, + 33, 29,236,235, 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152,126,101, 68, 86,137, 69,203, 82,225, 55, 65, 10, +139,245,159,246, 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161,198, 28, 70,146,191,162,144, 8, 97,134,191,253, +217,120,135,198,253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77,228,132,158,205, 21,164,246,252,199,227,254,117, +192, 81,204,249,250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151,183,138, 12,123,185, 59, 94,126,239, 43,156,249, +228, 99, 14, 40,132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, 5, 10,158,139,188, 42, 20,138, 92,131,193, 16, + 98, 52, 26,161,209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, 88, 2,202,106,193,241,237, 95, 84,201,105, 15, +225, 48,176,165, 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240,218,143,223,219,191,252, 93, 47, 0,184,113,100, +173,102, 84,236,154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153,205,102,147, 77,160,217,133, 31, 30, 60,120, 80, +215,108, 54, 27, 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169,169,169,117, 40,138, 50, 8,133, 66, 88, 44, 22, +183, 84, 17, 73,146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224,150,128,196,219,237, 60,115,110,116, 68,109, 98, +235,137, 69,144,230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213,253,200,145, 35,156, 99, 15,145,166, 40,155,200, +250, 75,244, 48, 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145,247,130, 5, 11,164,115,230,204, 49,143, 28, 57, +114, 57,203,178,173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107,215, 26,218,215, 41,138,130,151,151, 23,188,188, +188,208,180,113, 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, 40,138, 1,195,178,165,226,167, 80, 99, 14, 59, +116,250,122, 35,135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124,236, 90, 63,119,250,130,205,155,165,133, 76,192, +180, 81,175,189, 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201,177, 84,233,245, 64,130,131,179,143, 22,143, 39, +132,228, 34, 61, 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191,200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77,212, +115,148,221,132,228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, 97, 25, 66,161, 40, 76, 40, 18, 17,209,163,166, +178,217,217,153, 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, 66,163,100,232,208,149, 53,203, 49,132,131, 87, + 84, 84,148,175,125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142,179, 14,221,180, 22, 17, 35, 71,142,148,135,135, +135, 19, 0,240,235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254,143,107,223,117,155,211, 95,193, 1,197, 15,128, +226,212,114,150,172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97,236, 46, 15, 33, 13,100, 95,119,139, 43,166, 13, +168, 80, 79, 8,151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131,135, 91,112,210, 34,207, 20,186,217, 4, 98,119, +219,111,169,224, 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, 6, 34,194,140,149, 43, 87,226,253,247,223, 7, + 0,241,244,233,211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68,101,189,198,179, 33, 33, 33, 57, 28,199,137, 72, +146,236,178,118,237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12,195,194,106,181, 84,248,153, 91, 31,165,124,193, + 15,123,166,249,244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, 41, 63, 55, 3, 39,143, 31,196,134,245, 27, 10, + 65,112,183,193,129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205,177, 96,243,102,233,173,107, 89, 7,166,126, 48, + 43,114,248,168, 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11,243, 6,254,196,251,104, 61, 45,248,158, 60,117, +138, 24, 51,102, 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153,247,223,127,159,204,206,206,134, 70,171, 19, 2, +240,197,115, 96,214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36,161,209,104,208,163, 71,143, 60, 53, 27, 42,155, +248,206, 84,255,204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, 71, 27, 71,141,127,191,206,251,179,227, 54,102, + 93, 94,191,206,157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, 42,149, 74,198,141, 27,231,214,248,161,197, 98, +225, 22, 47, 94,108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204,114,185,156,163,168,170,253, 62, 73,146,160,223, + 90,176,131,166,105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176,176, 48,139, 66,161,224,164, 82,169,216,157,116, + 78,157, 58,149,243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, 64,184, 96,109,105,120, 7,169,151,151, 23,180, + 90,109,105, 90, 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206,189, 56, 90, 44,160,203,201,205, 11,244, 15,170, + 15,154,166,109, 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173,168,233,211,167, 31, 0, 80,101, 99,182,107,215, +174,249,211,167, 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99,198, 12, 44, 93,186, 20, 34,137, 12,190, 1,117, + 75,175, 99,191,110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, 65, + 73,214, 78, 30, 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229,144,161,115, 38, 76, 48,187, 97, 4, 36,111, 93, +203, 58, 48,245,253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, 8, 75,175, 67,177, 44, 72, 82,192,251,104, 61, + 37,145, 37,149, 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162,144,151,151,135, 3, 7, 14, 36,112, 28, 7, 31, + 31, 31, 28, 59,118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179,179,239,200,229,242, 93,179,102,205, 26, 53,115, +230, 76, 17,203,178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16,197,197, 26, 86,225,169,202,178,114, 2,133, 72, + 44, 1, 41, 16, 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22,139,113,117,207, 50, 77,247,113,243,149, 0, 32, +150,202, 11,251,244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, 58, 63,159,244,144,113,177, 2,133, 92,166,143, +138,138,122,104,231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209,105,145,145,145,122,129, 64,128,196,131, 75, 52, + 67,198,197,202,136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, 5,213,191,127,255, 71,118,127,177,212,212,212, + 58, 3, 6, 12,144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, 69, + 81, 20,112,139, 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74,221,168,117,214, 90,220, 84,171,162,214, 81, 23, + 42, 46, 16, 7, 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, 65, 91,107,127,121, 62,159,124,146,220,189,247, +220,123,251,185,239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, 6, 70, 70, 70,138, 9, 19, 38,188,123,254,252, +121,109,163, 14,171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, 45, 3, 12,248,111,162, 98, 30,173,170, 51,195, + 43,148,138,111,167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223,127,255,157, 9, 0, 35,141,216,154, 59,119,110, +141,101, 78,180, 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248,227,143,140,248, 87,137,242,177,211, 87, 20, 84, + 88, 15,104,208,197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166,101,150,220, 25, 59,109,105,217,221, 75, 5,160, +144,224,171, 0, 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157,219,130,206,172,193,129,154,197, 22, 77,120,124, + 59,119,129,149, 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246,122, 0,192,218, 12,103,124,191,218,208, 59, 43, + 79,180,221,112,158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228,230,230, 66,165, 42, 61, 34,114,185, 28, 66,161, + 16, 69, 69, 69,144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174,150,201,100,211, 63,247,237,126,251,246,237,174, +115,231,206,225,214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9,133, 92, 6,128,166,179,179,179, 41, 99, 83, 75, +129,173,131,243,187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222,225,251, 23, 47, 94,212,219,180,105,147, 76, 59, + 18,112,248,130,157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198,121, 93, 23,103,248, 43,111, 48,251,197,139,103, +205, 42,114,250, 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106,100,237,233,233,153, 92, 29,111,131, 6, 13,196, +124, 62, 95,214,164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, 57, 56, 56,200,154, 54,109, 90,172,175,211,190, +145,145, 17,173,177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195,127,223,168,145, 96,212,168, 81,252,121,243,230, +225,224,193,131,184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252,135, 18,235, 26, 96,192,255, 25,170,207,163, 85, + 17,135, 14,133,252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206,156, 57, 16,139,197, 86,149, 52,235, 1,117,174, +141,202, 68, 86, 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28,234, 86,213,250,134, 12, 25,242, 30, 39, 77,144, + 12,146, 36,138, 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, 60,221,185, 45, 72, 12,160,103, 69,177,133,191, +202,140,148,113,106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, 89, 58,113,117,165,226,108,245,138, 41, 38, 36, + 73,116,172,224,163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227,227, 67,106,139, 44,153, 76, 86,150,184, 83,227, + 44,158,150,150,134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85,206,233,115,221,118,213,219,183,111,119, 56, 58, + 58, 94, 91,190,124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, 33,211,136,174,125, 71,136,100, 52,147,151, 42, +200,108,114,243,226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, 84,228, 44,209,164,113,104,210,164,137, 72, 91, +168,212,173, 91, 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219,174, 47,167,218,255, 75, 84,211,254,212,136,182, +138,105, 35,140,141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81,135,101,156,234,244, 14,229,116, 90, 72, 72, 72, +143,144,144,144, 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84,127, 12,215,187,129,243,255,149,243,115, 70, 87, +252,229,155, 5,148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220,185,249, 98,177,216,106,212,168, 81,213, 46,147, +145,145,113,240,240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202,202,170,213, 86, 89,153, 27,173,185,117,126,161, + 85,215,126, 27,230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, 42,136,173, 95, 1, 12,170, 74,149,246,250,114, + 32,142, 30,218,169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90,154,114, 87,169,251, 49,207,224,163,245,207,128, +205,102,251, 45, 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, 62,125,138,177, 99,199,114,163,163,163,253,228, +114,249,141,255,194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25,177, 71,140,159,227, 92, 22,117,120, 98, 23,164, + 18, 49, 0, 48,117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46,231,106,166, 63,126,252,216, 85,147, 91, 75, 34, +145,232, 28,117,248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153,236,200,200, 72,103, 13,167, 84, 42,213, 41,234, +144,195,225,176,163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, 88,174,214,162,218,183,140, 32, 8,130, 54, 12, + 27, 26, 96,192,103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97,186,184,184,244, 26, 62,124,120, 57,145,229,239, +239,175, 58,125,250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194,123,111,144, 32, 73,242,105,231,182, 77, 65,146, +228,211,165, 19, 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, 75, 51, 0, 54,246,117, 16, 48,238, 91, 4,140, +251,214, 10, 64, 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, 19, + 88, 69, 69, 69, 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, 4,241,159,246,163,147,203,229,202, 69, 43, 55, + 29,102, 48,217, 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84,226,123, 53,115,230,204, 74,167,127, 42,206, 37, + 75,150, 84, 26, 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, 14,117,191,125, 25, 96,128, 1,255, 49, 84, 26, +186, 87, 43,161, 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114,160,124,247,238,221, 74, 75, 75,203, 41, 34,145, +232,143, 65,131, 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104,133, 95,255,141,243, 10,138,165,193, 21,231, 85, +180, 60,105,196,214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, 85, 37,168,170,138, 86, 20, 22,138, 87,250,245, +223, 56, 39,191, 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98,202,218,214,171,194,194, 66,148,148,148, 64, 93, +146, 6, 0, 80, 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230,171,173, 85, 0, 48, 63,241,230, 14,237,115,251, +153,246,188,106,172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, 10, 68, 87,135, 76, 61,249, 50, 1,128,205, 98, +100, 85, 85, 60,154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184,178, 13, 48,224,243,125,255,255, 84, 43,238, 97, +224, 52,112, 26, 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13,156,255, 54,206,202, 48,249, 51, 17, 90,116, 37, + 31, 0,181,180,104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192,128, 15,199,123,197,164,181,103, 84,165, 74,245, +137, 38,168,141,178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,255,142,179, 38,110,237,229, 39, 3,216,247,153, +136,173, 79, 18,208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,172, 45, 12, 67,135, 6, 24, 96,128, 1, 6, + 24, 96,128, 1,255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, 59,131,144,114, 54,240,191,182,137,254,254,254, + 12,125,218, 39, 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, 43,130,107, 58, 17,109, 27,180, 26,109,204, 51, +158, 46,147,201,234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27,243, 7, 15, 30,240,125,124,124,210, 1, 20,105, +189, 41, 24, 96,128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138,142,129, 48,238, 80,185,118, 22, 30,227, 64, 18, +205,180,166,136, 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108,216, 48, 25, 64, 65,197,181, 87, 50,207,112,157, + 27,240, 57,163, 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, 12,104,140, 4,129,104, 36,134, 14,174, 21,143, +219, 55,117, 64, 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69,211,163,241,230,228, 19,189,249,234,251, 79, 67, +213,229, 44, 86, 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, 52,108, 61,104, 1,202,103,112,174, 45, 56, 0, +124, 73,146,108,102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249,181,228, 36, 1, 76, 48, 53, 49,233,227,106,198, +105,245, 46, 71,152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150,227,190, 57, 35,124,198, 6,205,234, 1, 75,191, +141, 11, 74,128,234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214,180,142,157, 41, 4, 57, 34,155,159, 14,134,108, + 10, 9, 57,218,111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, 48, 24,137,203,150, 45,251,117,197,138, 21, 52, + 81,117,165,114,190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, 40,159,101,188, 54,248, 44, 56,235,212,169,227, + 68, 81,212, 68, 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, 83,222,117,104,154,222, 75, 16,196,100,154,166, +247,233,241, 61, 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, 28,254,174,237,249, 39,215,245, 15,189,127, 79, +186,114,231, 69, 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75,249,118,158,170, 42,238,129, 4, 77,211, 88,185, +114, 37,177,106,213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169,111, 42,206,211,186,206, 13, 98,203,128,207, 21, +250, 21,149,174, 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25,221,159,160, 25, 60,140,152,180, 80,169, 55,151, +235, 88, 46, 24,226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, 22, 0,201,194,222,139, 73, 54,193, 65,203,118, + 3,240,169, 69, 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, 40,150, 80,232,245,245,152, 21, 0,126,210,243, +174, 68, 90, 26, 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, 61,123,182,137,167,167,167, 37,143,199,227, 72, + 36, 18,135,132,132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89,183,161,179,211,201,224,185, 19,218, 53,111,224, + 10,150,172, 24,148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, 71, 45, 74, 38,228,228,228, 16, 0, 96,107,107, + 75,151, 23, 89,237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14,235,122, 45, 70,125,243,205, 64,191,181, 63,204, + 52, 77,203,149, 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118,255, 26, 50,121,231,134,133,251, 85, 42,213, 23, + 0,218,168, 84,170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79,232,163, 12, 6,227,106,183,110,221,234, 79,156, + 56,145,104,221,186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, 42,213, 51, 0, 47,161, 46,123,162, 3, 88, 0, + 26, 51, 24, 12,239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119,236,216,209,187,127,255,254, 68,227,198,141, 17, + 31, 31,223,250,210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, 5, 2,129,248, 31,127,142, 19,196,100, 0, 78, +106,157,188, 82,135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, 67, 16,132,253,223,185, 61,122,174, 43,150, 32, + 8,107,117, 91, 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88,253, 34,165,179,214, 5, 80, 93, 34,104, 35, 0, +232,213,169, 89, 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93,185, 27, 99, 93,206, 10, 86,241, 45,118,229, 74, + 98,197,138, 21, 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, 41,170,108,222,138, 21, 43,182, 87,115,157, 27, + 96,192,231, 2, 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27,123,255, 89, 19,135, 26,121,122, 52,132, 4,166, + 72,202, 81,225, 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40,112,126, 19,223,118,158,120,158,166,192,227, 52, + 21, 74, 18, 21, 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231,165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, 90, +146, 81,178, 87,171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187,187,251,168, 85,171, 86, 89,102,100,100,152, 68, + 70, 70,130,203,229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107,214, 87,114,185, 60, 9, 64,142,142,156, 30,125, +219,120,223,219, 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98,138,250, 70, 70,184,244, 77, 67,107,255,176,196, +211, 15, 51, 69, 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230,237, 89, 44,150, 3,207,170, 30,149,206,108,147, +155, 77, 52,120,155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87,176,237,216,253, 95, 90, 33, 99,121,117,121,179, +141,141, 77,167,204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198,248,154, 97,238,151, 22, 8, 24, 49,204,228,212, +111,161, 83, 0,236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, 96,161, 76, 38, 35,217,108, 54,193,227,241, 70, +173, 93,187, 86, 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, 69, 13,110,220,184,209, 32, 36, 36, 68, 25, 17, + 17, 17, 11,224,108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238,221,155,187,116,233, 66,113,185,127,165,159,170, + 13, 39, 0, 88, 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213,171,119,165, 93,187,118,221,122,245,234,197,236, +212,169, 19,156,156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, 30, 30,190,251,202,149, 43, 59,158, 60,121,114, + 35, 41, 41,169,215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194,116,239,222,189,246,154,154,140, 10,133, 2, 42, +149,170,236, 91,243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246,145, 72,235,173, 89,243,161, 42,251,230,112, 56, +182,154,132,189, 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174,209,194,242, 13, 74,223,159, 69, 34, 81,178, 64, +106, 25, 3,160, 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, 61,100,200,144,138,101,175,188,213,223, 34,130, + 32,110,146, 36,121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128,157,214, 36, 25, 74, 71,133,160,126, 78, 18, 0, +108, 42, 76,215,110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241,168,150, 93,188,133, 42,252,180,152, 0, 16, 22, + 22, 70,247,235,215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, 59,130,228, 89,225, 85, 22, 16,241,142, 6,147, + 84,128, 4,141, 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239,188, 61, 61, 54, 30, 8,154,205,136,205, 98,226, + 80,120, 9,228,146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, 51,128, 88,161, 51,231,123, 7, 6, 80, 81,234, +119, 64, 10,168, 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144,139,226,116, 88,125, 85,156, 94,141, 26, 53, 26, +241,195, 15, 63, 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, 36,115, 62,159,159, 55,109,218,180, 70, 78, 78, + 78,230,131, 6, 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251,150, 17, 7,119,108, 53,201, 61, 21, 12, 89,194, + 83, 92, 20,136,112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, 59, 57,153,246, 61,147,176, 81, 65, 81, 1,213, +113,222,187,119,143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, 75,102,104, 68,174,197,194,221, 17, 78, 37, 82, + 57, 99, 68,183,122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, 81, 81, 85,115, 42,228,242,250,206,246,230,136, + 78, 18,227,208,237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53,133, 82,174,104, 60,100,200,144,195,234,183,246, + 71, 0,190, 30, 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242,234, 41, 86, 86, 86,232,218,181, 43, 60, 60, 60, +152, 93,186,116,241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51,178,177,177,177, 50, 51, 51,203,173,236, 65,165, + 15, 39, 0, 88, 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, 70,140, 24,241,214,220,220,188,156,245,215,196, +196, 4,141, 26, 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, 72, 72, 8, 8,130, 40,123,104,191,103, 44,118, +117,133,163,163, 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71,122,224, 90, 37, 22,173,149, 21,142, 83,149,195, +111,149,181,215,225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143,199, 43,179, 66, 85,178,174,247, 56, 73,146,196, +210,165, 75, 65, 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51,133, 32, 8,146,205,102, 47,100, 50,153, 19,165, + 82,169, 51,143,199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, 33,178, 42,229, 52, 49, 49,113,125,245,234,149, +123, 85, 29,145, 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205,205,173, 49, 0, 77,137,182,219, 52, 77,119,209, +250,175,141,219, 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255,167,206, 79, 3,231,191,143,179, 6, 45, 98, 71, + 16, 68,152,113, 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243,127,209,162, 69, 75,214,175, 95,255,130, 32,136, + 48,237,233,218,237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195,134, 13,235, 52,109,255, 14,145,168,143, 69,203, + 60, 91, 98,130,240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, 4, 20, 21, 22,220, 65,226,233, 68,221, 44, 89, +254,157, 90,180,240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185,137, 71, 55,127,207, 80, 41, 85,191,131,160, 31, + 3,100, 36,222, 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57,177,245,201,208,188, 73,147, 38,195,150, 45, 91, +102, 27, 21, 21,197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, 39, 39, 55,217,190,125, 59, 39, 40, 40,200,203, +203,203,139,127,242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, 57,188,216,147,187,192,137,141,196,210,167, 57, +170, 63, 5, 37, 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122,102,108, 52,180,228,248,197,229, 73,170,181,100, + 25, 27, 27,111, 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, 35,156, 46,175,239, 68,116,106,102,131,172, 2, + 41,102,239,138,198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, 21, 58,216,152,242, 48,186,179, 41,186,175, 77, +135,127, 27, 46,184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90,100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, 74, + 10,223,199,199, 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109,219,104, 47, 47,175, 98, 43, 43, 43,136,197, 98, + 72,165, 82,176,217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210,235, 64, 21, 23, 23,195,204,204, 12, 20, 69,125, + 48,167, 74,165, 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115,231,230, 54,109,218,244,241,176, 97,195, 94,219, +219,219, 75,159, 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, 38,147,129,201,100, 66, 44, 22,131,203,229,130, +201,100, 66,169, 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108,200,100,178, 79,241, 6,250,158,133,170,186,225, +183,218, 88,180,180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70,150,150,150, 11, 1, 8,106, 90, 23, 65, 16, 96, + 48, 24, 96,179,217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, 36, 36,224,248,241,227,120,244,232, 17, 88, 44, + 86, 89,123,157,199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, 7, 94,189,122,245, 16, 27, 27, 91,119,195,134, + 13, 11,175, 93,187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75,135, 11,251, 74,165, 82,196,198,198,234,179,204, +123,104,216,176, 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, 46,161,212, 47, 81, 27, 34,154,166,191, 36, 8, +162, 16,192, 51,146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197,255, 4, 65,132,173, 95,191,190, 95,101,226,170, +146,107,179,220,244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239,167,182,114,253, 37,180,194,194,194,170, 87, 32, + 20, 6,133,157, 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, 3, 64,255,162, 83, 87,248,253,140, 72, 6,243, +151, 61,235,102,146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33,128,158,139,196,208,194, 15, 62, 18,245, 6,121, +217,219,216, 90, 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, 71, 68, 68,216, 74, 36, 18,222,157, 59,119, 74, + 66, 66, 66, 50,228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9,131,201,100,114,228,114,121,117,190, 11,173,230, + 79, 28,115,103,227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55,179,196, 95, 3,208, 40,250,235, 81, 57,226, 52, + 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116,196,200,145, 35,249, 26,145, 5, 0, 57, 69, 10, +102,137, 84,193,232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, 4, +123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126,202, +231,243,195, 0,124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, 42, + 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, 45, + 90,232,117,176,114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, 43,107, 27,209,157,240,219,155,106,195, 73, 81, + 20, 1, 0,158,158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89,179,230,157,171,171,235, 81,177, 88, 92,206,114, +160,171,208,210,136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, 38,138,138, 74,131, 54, 45, 45, 45, 63,137,208, +170,194, 66,245,209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234,184, 45, 80, 42,149, 96,179,217,240,241,241, 65, +112,112, 48, 30, 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, 36, 94,188,120,161,111, 23,169,136,136,136,133, + 95,127,253,181,231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130,131,131,185,147, 39, 79,110,120,227,198,141,229, + 40, 13,126,169, 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, 90, 92,190,124,217,190, 76,128, 85,140, 72,124, + 31, 5,203,151, 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191,208,208, 80, 2, 0,252,253,253,105,130, 32, 52, + 15,164,103,167, 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74,139, 76,214, 92,147, 85, 9, 40,125,132,154,182, +197, 75,131,197,139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35,182,202, 30,166, 85, 14, 25,150,217,190, 72,190, +163,189,141,245,162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62,127, 84, 2, 30, 17,170, 83,119,184,156,160, 53, + 63,204,105, 16,157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, 53,254,227,136,172,161,222,142, 14,246,183,142, +237, 93, 77, 62,122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179,179, 11,184,127,255,190, 29,151,203,229,189,122, +245,138, 58,117,234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148,166,166,166, 16,137, 68,114,185, 92, 46,169, 70, +100, 57,251,181,106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, 69,145, 5, 0, 29,187,185,215,169, 67,240,204, + 64, 3, 72, 42,148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186,120,182,102, 44,165, 49,151,165,186, 27,147, 67, + 69,222, 56,133,240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, 99,246,252,126, 46,236,234,119,203,130,138, 75, + 68, 69,112,115, 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119,106,135, 83,167, 78,109, 64,169, 51, 56, 0,188, + 60,117,234,212,152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106,179,102,205,132, 30, 30, 30,194,220,220, 92,196, +196,196, 32, 63, 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, 23, 72,200,207,207, 51,165,105, 26,249,121,185, + 38, 63,252,240,131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, 26,187,164,164,196,242,221,187,119,230,218,243, +116,229,148,201,100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195,235,215,175,203, 68,150,122,253,159,204,162,165, +249,205,227,241, 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, 46, 90,253, 91, 95,113, 88,227,246,232,120,220, +193,102,179, 49, 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, 40, 41, 41, 65,207,158, 61,193,225,112,244,181, +104,209,108, 54,123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67,165, 82, 97,238,220,185, 70, 92, 46,119,164,190, +166,123,129, 64,208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, 69,104,104, 40,225,239,239, 79,251,251,251,211, + 26,193,101,128, 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, 80, 7,136,212, 2, 26,145,213, 85, 75,120, 17, + 26, 11,151,110, 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, 2,169, 41, 73,200, 22, 36,163, 77, 7, 63,196, + 62,143, 6,165, 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222,181,131, 23,130,194,138,241, 42,242, 50, 10,178, + 5, 59,145,116,234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149,229,165, 24, 18, 41, 41, 73, 56,251,235, 86, 90, + 33,151, 22,160,124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, 60,178,132,167,231, 32, 69, 6,128,240,173, 91, +183,118,111,223,190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154,185,187,187,247, 13, 14, 14,118, 72, 73, 73,193, +181,107,215, 50, 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, 53,104,130,237, 75,190, 83,134, 62,138, 25, 0, +224,146, 86, 27,143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38,222, 10,165,127, 86, 69,152,147,147, 67,148,148, +148,184, 90, 90, 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, 73, 34, 87,129,203, 34,233,217, 3, 93,211, 31, +158, 13,181,201,145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, 14, 11,187, 48, 93, 46,149,120, 53,105,210,152, +126, 28,113,227,233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24,229, 4,186,182,133, 72, 95, 75,145, 62,208,149, +179,162,208,210, 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50,193,248,119,108,191, 62, 22, 42,237, 33, 67,141, + 63,157, 68, 34,177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, 79,255, 72,146, 4, 69, 81, 96,179,217,104,209, +162, 5,194,194,194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, 54, 54,101, 66,139, 36,117,142,210,161,165, 82, +105,221,186,117,235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79,136, 68,162, 58,248,148,182,123, 3, 12,248,123, +239, 43, 97,218, 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, 84,102,225,250, 64,193, 85,206,186,197,212, 86, +144,149, 42, 73,181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, 81,164,144,203,242, 41, 74,225,250, 54, 62, 26, + 32,241,139, 78, 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, 31, 95, 78,130,152,179,248,163,137, 44, 7,219, + 27,135,119,173,180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, 32, 49,244,241,135, 80,143,100,179, 7,178, 93, +222,245,155,232,155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250,200, 48,109,100,103,103,159,221,186,117, 43,241, +227,143, 63,118,149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111,159,117, 74, 74, 10,235,206,157, 59,162, 27, 55, +110,208, 0,206,215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, 13, 0,240,135,214,108,207,126,173,155,221, 61, +184,126,185,153,226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, 80, 64, 40, 20, 66, 81,156,171,108,195, 23, 9, + 3,135,216, 75, 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, 54, 54,214,107, 95,238, 90, 63, 63, 4, 64,200, +144, 33, 67, 14, 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8,195,170,176, 10,192,220,142, 29, 59, 18, 62, 62, + 62, 15,182,109,219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178,138,253, 75,212,150, 83,219,162, 85,147,208,250, +148, 22,173,202, 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253,211,248,201,177,217,108, 68, 71, 71,195,197,197, + 5,114,185, 28,102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177,160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, 99, + 59, 59, 59,168, 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197,231,243, 47,171,163, 14,203,193,209,209,209,226, + 99,236, 87,109, 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, 43, 88,162,100, 90,255,179, 81,154,195,173,159, +250, 55, 42,249, 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38,104, 82, 60,148,139,112, 97,214,100,201,178,183, +182,186,113, 96,123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, 23,160,104, 65,196,181,211,161, 32, 80,130,183, +161,183,116,187, 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, 33,100,133,148,124,240,209,113, 27,212,194,222, +218,246,198,161,224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81,210, 29,137,167, 35,107, 75, 59, 1,176, 98,152, +240,118, 15,246,107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243,101, 84,201,239,225, 60,225, 73,170,152,154,158, +118, 95, 55, 7,186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52,116,247,238,221,118,169,169,169,188,168,168, 40, +241,222,189,123,179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124,190,156,230,243,199, 7, 68, 4,140,155,200, 75, +188, 22, 2,171,196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182,182,182,116, 78, 78, 78,114, 65, 65, 65, 99, 19, + 19, 19,228,230,230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, 40,243,192, 98,177,144,149,162,128, 74,165,202, +208,213,154, 5,192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, 78,115, 62, 52, 30, 50,100,200, 97,173,168, 67, +109,103,120, 77,122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212,202,196, 10,151,203,213,219, 81,186,170, 40,198, +218,112, 86,101,209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, 12, 6, 40,138,130, 14, 65, 21,127,171,104,209, +142, 14,172,141,200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, 11, 54,155,141,115,231,206, 97,220,184,113, 80, +169, 84, 48, 54, 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232,163, 95, 21, 10,197,145,245,235,215, 47,217,179, +103,143, 17, 77,211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36,180, 52, 25,223, 41, 58,198,196, 68, 89,109,212, + 97,101,203, 84,225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21,218,149, 75,253, 96, 72,239, 96,128, 14,247,147, + 71,255,226,238,105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242,198,254,237,129,230, 71, 31, 17, 72,124,251, 22, + 55,127,219, 81, 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, 58,191, 61, 17, 68, 43, 39,123, 75,228,137, 40, + 20,230,188, 3,104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, 72, 36, 38, 38,226,234,201, 29, 66,165, 82,242, +197,135,136,172,145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, 54,239,226,112,126,236, 80,172, 62,254, 13,204, +236, 24,104,215,215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212,218, 34,171, 85,253,250,245,135,222,191,127,223, +214,219,219,155, 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, 78,109,145,213,106,209,228,177, 17, 27,247, 31, +230,145,108, 14,130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, 82, 72,165,210,107,193,193,193, 82,146, 36,145, +151,151,135,156,156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245,235,178,194,194,194,251,186,118,240,222,189,123, +245,211,210,210, 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, 4,130,174, 0, 30,105,166,167,166,166,214,123, +240,224, 1,191, 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, 7, 40,149, 74,156, 56,113, 2, 0,242,170,227, + 96,179, 57, 2,146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15,167, 26,169, 95,126,249,165, 36, 50, 50,178, 82, +139, 86,109, 56,105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, 48, +101,202, 20,208, 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133,208,123,126, 90,186,250, 64,105,134, 6,105,154, +134, 70,112, 85,152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177,180, 59,244,222, 10,223,251,244,120, 40,148, 9, +173,216,216, 88, 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, 7, 17, 19, 19, 3, 14,135, 3,205,190,208, 85, +191,249,248,248,108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24,209,209,209,232,221,187,183,228,238,221,187, 9, + 98,177,120, 21,116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170,244, 83,213, 50, 21,145,144,144,224,170, 82,169, + 26,211, 52,237, 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, 52,237,171, 82,169, 26, 37, 36, 36,184, 26,228, +132, 1,159, 41,110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118,172, 52, 63,242,144, 68, 74,114, 2, 30, 95,220, + 45, 84, 81,138, 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26,206, 92,152,147, 2,208,140,218, 8,173,114,156, +160,200,224,131, 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149,210,238,120, 27, 26, 85, 27,206,145,108,246, 50, + 22,131, 88,218,171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196,102,231, 37,228, 75, 39,222, 37,228, 72,126, 35, + 61,208,119,146,181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18,201,105, 57,189, 94,112,183,172, 44, 69,249,126, +190, 15, 71, 51, 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246,238,221,155, 43, 22,139, 47, 2,136,208,105,219, +223,135,115, 91,119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224,171,206, 68, 60, 31,140,170, 19, 96,150,227,228, +114,185,199,142, 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138,139,139,203,156,171,237,236,236, 16, 27, 27, 75, + 37, 38, 38,166,115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135,209,226, 81, 33,186, 80,171,105, 99,129, 64,208, +150,207,231,223, 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196,163,232,232,232,226, 62,125,250,192,200,200, 8, + 34,145, 8,117,235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, 86, 37,226,181, 92, 63, 37, 18,113, 93, 0,164, +184,164,164,197,152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173,173,245,226, 4,128,188,188,188,166,127,252,241, +199,156,232,232,232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82,169,200,218,114,230,231,231, 91, 68, 69, 69,109, +234,220,185,243,140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, 25, 25,161,176,176, 16,171, 86,173,194,157, 59, +119,148, 52, 77,239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85,165,100,168,162,253,223,222,207, 10, 62, 93, 80, +167,112, 88, 88, 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246,238,221,251, 94, 30, 45, 77,250,135, 42,184, 43, +219,118,250,230,205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, 68, 34,103, 19, 19,147,116,133, 66,241,139, 88, + 44, 94,139, 82,127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128,101,181,156, 21,210, 59,148, 75,225, 80, 97,153, +114,169, 31, 42, 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, 44,125, 15,173, 38,179, 88, 98,133,119,120, 2, +241, 33, 34,235,125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204,151, 72, 58,145,245, 65,155,165,238,231,237, 4, + 2, 73,137,111,240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75,161,108,194,194, 26, 79,231,140, 67,122,129, 8, +151,222,230,159,164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50,118,251, 14,178, 24,106, 91,135,133, 45,243,127, + 1,111,145, 13,187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239,225,235,235,203, 29, 50,100, 72,101, 14,242,250, + 34,245,209,171, 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44,226,121,197, 40,196,106,225,225,225,161,186,119, +239,222,188, 41, 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5,151,203,197,155, 55,111, 16, 30, 30, 46,123,251, +246,109,122, 73, 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213,235, 32,212,195,133,109,160,142, 46,212, 52, 82, + 39, 45,109, 3,192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76,154,166, 51, 66, 66, 66, 58,156, 61,123,182,195, +220,185,115,217,125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, 11, 87, 93, 75,229, 80, 0,162,148, 74,229,243, +160,160,160, 14, 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37,128, 77,153,153,153, 63,133,132,132, 44,191,118, +237,218,248, 49, 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, 80, 40,156, 99,107,107,187,244,226,197,139,191, + 92,185,114,229,235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, 74,165, 82,157,101,177, 88, 99,114,114,114, 68, +159,226,174,163, 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, 74,160,217, 14, 63, 63,191, 50, 43,163,198, 10, +167,221,134, 32, 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, 89,225, 25,248, 43,115,188,174,140,205, 4, 82, +203, 24, 72, 17, 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117,197,138, 21, 91, 43,166,112,208,110, 84, 49,245, +195,202,149, 43, 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, 75,182,175, 91,176, 66,169,144, 9,105,200,253, +241,230,116,244,135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46,252,224,222,255, 77,253, 36, 44,172, 81,180,106, + 26,126,123,145, 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, 55, 36,249, 39,172,156, 88,103,230,124, 97, 67, + 92,200, 27,173,247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146,146,146,138, 14,242,181,197,130,254, 51, 23, 49, +218, 53,114,157,249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197,197, 5, 92,185,114,101,196,237,219,183,123,136, + 68, 34, 87,130, 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, 0,192,138, 21, 43,232,149, 43, 87, 18,113,113, +113, 52,131,193,248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, 48, 80,151, 7,226,237,226,226,226,200, 85,171, + 86,117, 89,181,106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217,108, 78, 58, 65, 16,206,108, 14, 87,116,239,222, +189,107, 31,200, 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19,147,182, 49, 49, 49,127,126, 8,167, 90, 68, 13, +182,182,182,118, 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, 34, 20, 10, 63,105, 81,105,117,129,232,149,122, +212, 58,212,137,247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, 69,225, 85,209,122,165,249,175, 78,229,162,203, + 62,213, 39,138,178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, 6, 32,174,233, 58, 39, 73,242, 44,128,151, 36, + 73,190,174, 24,232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, 59, 91, 32, 9, 4,214,214,147,246, 31, 52, 87, +126,156,126, 6,176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, 65,199,142, 88, 75, 19,152,171,222,153,235, 50, +238, 98, 77, 45,182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78,127,127,127, 70, 21, 15,243,114, 69,165,171, 66, +104,104, 89, 22,255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128,242, 78,255,149, 77,167,245,220,118, 6, 0,213, + 71,222,159,159, 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, 87,114, 90, 54,117, 1,129, 73,208,206, 29, 84, +173, 69, 75, 75,160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33,193,181, 97,195,134,201, 0, 10, 42,244,163,178, +121,180,225, 24,253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3, +103,109,133,214,103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, 32,170, 81,165,250,152, 4,107,163,108,175, 25, + 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249,207,117,232,240, 31,235,183,193,172,106,224, 52, +112, 26, 56, 13,156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, 0, 3, 12, 48,192,128,207, 6, 61,220,193,103, +170, 64,254,241, 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, 15,224, 43,173,255, 23,160,142,140, 55, 8,173, +207, 23,141, 0, 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, 80,132,210, 58,129,175,245, 89, 25, 73,146,235, +187,116,233, 50,253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, 51, +215, 43,149,202, 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, 36,100,102,102,174, 81, 42,149, 55, 63,128,211, +204,193,193,161, 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, 91,201, 63, 48,150, 93, 40, 82,178, 0,192,220, +132,169, 8, 13,108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201,229,208,219, 13,107,105, 37,190, 87, 1, 68,175, +250,216,113, 57, 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, 75, 57,122,185, 97,211,229, 55,168, 54,210, 94, + 23, 78, 13,246, 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, 21,150, 13, 29, 86, 43,180,134,185,131,175, 98, +130, 25, 26, 11, 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192,206,125, 46,156,255, 54, 44,167,105, 58,160,220, +201, 90, 73, 30,162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130,145,145,145, 18,192, 88, 61,214,101, 63,108,216, +176, 69, 7, 14, 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, 86, 86,254,150,150,150,193,251,247,239,183,107, +223,190, 3,193,225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102,101,101, 77,212,119,227,173,173,173, 71, 90, 90, + 90,110,217,187,119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153,211,226,221,187,119,199, 51, 51, 51,103,232,203, +105, 99, 99,227,110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67,116,116,180,233,212,169, 83, 29,211,210,210, 98, + 51, 51, 51,111,233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93,208,126, 75,196,249,103, 55,206,247,175,105,154, +127, 96,236,239, 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252,188,140, 4,128, 94,227, 87,207, 26,233,132,205, + 71,210,171,174, 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, 0,114, 14,147, 57,171,157,143,143,237,183,119, +239, 38,200,129, 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89,106, 49, 33,250, 52,196,241,171,137,140,240, 47, +190,248,162,225,132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, 93,184,112, 33, 65,165, 82, 69, 2,120, 1,221, +179, 90,179, 0,120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, 37, 58,125, 47,225,233,245,235,215,207, 49,153, + 76,141, 69,171,157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, 65,146, 36, 11, 64,125,188, 95, 82,163, 42, 56, + 27, 27, 27,239,142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, 3,135, 66,172,231,205,158, 49,248,230,205,155, +225, 69, 69, 69,191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, 12,138,162, 80, 84, 84, 4, 71, 71, 71,236,223, +191,223,114,222,188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11,139,110,207,159, 63, 55,210, 20,148,150,201,100, +112,118,118,198,209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222,234, 74, 88, 40, 82,178,148,114,105,208,225, 93, +129, 46, 0, 48,102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, 66,203,128,127, 26,173,109,109,109, 67,115,114, +114,110, 1,152,136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, 6, 35, 67, 36, 18, 61, 5,240,170,182,132, 54, +110,126,253,193, 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251,234,230,249, 15,226,228, 24,141, 7,232, 22, 36, + 64, 17, 36,249,148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216,205, 81,247,194,152, 31,131,111,120, 3,240, 73, + 10,228,209, 36,221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220,216,177,141,110,221,185, 67,116,213,167, 90,193, +231,137, 42, 29,223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, 6, 49, 98,246,250,128,131,187, 54,145, 61,251, + 15, 41, 27, 62,241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108,116,244,232, 81,101, 68, 68,196, 83, 0, 39,170, + 90, 89,111, 55,136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, 46, 23, 31,194, 9, 0, 61, 27,146,111, 89,214, + 13,158,142,152,185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106,109,229,226,226,210, 73,169, 84,242, 0,128,201, +100, 74, 82, 82, 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, 21, 3, 6, 12, 88,250,237,183,223,162,110,221, +186,152, 53,107, 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123,123,251,229,187,119,239,182,102,114, 76,208,106, + 97, 34, 4, 5, 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126,188, 70, 31,161,101,111,111,191,106,255,254,253, +214,198,198,198,160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12,243,216,216,216,141,250, 8, 45, 7, 7,135, 78, + 59,119,238, 52,226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, 37,180, 76, 38,147,207,156, 57,147,251,226,197, + 11, 63,129, 64,240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, 54,175, 95,191,126,162, 84, 42, 79, 3, 56,253, + 17, 94,166,186, 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, 56,156,190,119,239,158,203,238,221,187,199,110, +222,188,249, 34,128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38,154, +159, 60,121,210, 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96,154, 31,239,208,177, 83,231,161,131,191, 49,115, +176,177,128, 88,166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, 11,135,231,190,186, 87,172, 47,103,183,110,221, + 59,247,232,222,221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239,203,100, 26,221,166, 8,197,168,172,231, 87, 75, + 62,229,177,153, 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, 77,131,164,177,163,162, 53,107, 22,192,220, 81, + 90,246, 75, 47, 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, 65,130,232, 93,195, 48,165, 6,189, 0,174,165, +181,181,207,212,201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128,125,155, 68,189,179, 41,181, 23,219,255, 82,107, + 86,165, 67,135, 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134,245,235,215, 51, 1,180,174, 48,187,124,145, 85, +128, 27,182,103, 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, 64, 83,245, 59,214,165,191,124,244,235,146,177, +215,142,110,241, 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, 82,221, 56, 63, 28,255, 40,167,163,163, 99, 19, + 95, 95,223,214,215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110,217,161, 67,135,214,142,142,142, 77,202,118, 21, + 77,235,211,207,213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86,232,214,173, 27, 46, 94,188,200,220,188,121,243, + 58, 0, 75,107,234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88,223, 4,209,155, 60, 80, 36,161,145, 39, 44,132, + 88, 44,129,177,177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202,196, 85, 81, 81,233,167,184, 88, 4,153, 76, 14, + 46,151,107, 6,128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, 55,188,130,130, 2, 66, 40, 20, 66, 38,147,129, +197, 98,177, 81,179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, 84, +233, 50,205,220,132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36,121, 24,128,227, 7,114,182, 5,176,206,200,200, +232,154,135,135, 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241,245,117,235,214,157,122,242,228,201,208, 63,255, +252,179,254,179,103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189,175,205,250,245,235, 31,124,240,224, 65,219,142, + 29, 59, 30, 0,192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, 86,173, 90,185,240,120, 60,244,232,209, 3, 0, +252, 62,132,147,205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215,175, 95,199,195,135, 15,161, 84, 42, 49,109,218, + 52,238,152, 49, 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, 51,127,214, 36,179,167,239,228, 56,116,237, 29, +126,143, 16, 32,171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, 95,206, 69, 11, 23,246,153, 60, 62,192, 44, 70, + 64,225,220,253, 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, 21, 19,172, 95, 62,245, 49,218, 15,180,159, 61, +123,182,221,130, 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96,105,109, 98,242, 77,124,215,174,147,140, 74,235, +197, 86,203, 89,142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, 97, 69,198,149,159,151,145, 52,129, 89, 35,157, +202,221, 7, 42,237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23,164, 34, 81, 57,159,217,238, 46,232,115,205,152, +153,218,192,195, 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44,140,238,215,175, 31, 1, 0,161,177,200, 31,220, + 20, 27,135,125,187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108,108, 80, 82, 82, 2,169, 84, 10, 54,155, 13,137, + 68,130,119,239,222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, 53,133,169,169,233, 71,225, 92, 60,182, 7,247, + 77, 74, 54,247,242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205,122,110,110,231, 36,121,246,236, 25,238,221,187, +135,252,252,124,248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, 54,116,190,124,237,182, 85,177,132, 50, 79,202, + 84,176, 40,138,130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, 22,128,135,106,113, 91, 83, 77, 69, 30,128, 38, +254,254,254,139,166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220,142, 29, 59,218,236,223,191,223,104,222,188,121, +184,117,235,214,138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155,205,134, 82, 45, 27,228, 42,170, 76,223, 23, 22, + 22,130, 22,231,131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, 76,100,189,203, 44,196,187,172, 18, 20, 22,203, + 32, 22, 43, 33, 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, 60, + 30,148, 74, 37,138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, 83, 0,230, 0,242,116, 33, 84, 59,185,255,174, + 30, 6,196,163, 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41,195,198,185,197,157,150, 67,127,241, 40,155,246, +105,253,179,184,118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, 24, 50,100,136,143, 64, 32,104, 9,253,107, 50, + 26,147, 36,185,113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66,169, 84, 58, 39, 36, 36,116, 59,121,242,228,194, +131, 7, 15,238, 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62,164, +218,182,109, 75,142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246,173,165,101,203,181, 67,135, 14, 46, 12, 6, 3, + 29, 59,118,100,223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249,249,249,181,188,118,237, 90, 84, 70, 70,134,159, + 30,219, 11, 0, 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165,125, 15, 32, 84,199, 69,218,183,110,221, 26,201, +201,201,104,210,164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136,213,163,191,238,221,187,119,119,241,243,243, 35, + 66, 67, 67,203,252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200,200,200, 58,143, 30, 61,114,135, 14,195,136, 54, +110,126,253, 59,118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, 18, 76,130, 2,165,224,130,203,102,192,221,179, + 13, 35,254,197, 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211,183,105, 19,119,114,251,239,111, 80,144, 22,171, + 74,139,187,157, 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172,244,196, 23,221, 36,146, 46, 61,242, 19,110, 95, +251, 20, 23,228, 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201,208,243,207, 75, 20,184, 15, 0,183, 0,162, 47, +208,220,187, 93,187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, 69, 69,161,138,161,223,149, 0,195,214,209,177, +199,212,169, 83, 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110,238,236,209, 15,162,120,189,134, 41,251, 3, 28, + 7, 71,199,166, 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21,235, 28, 3, 59,155,185, 57,142, 91, 48,113, 0, +225,194,183,197,212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159,177,200,154, 92,169,208,170,136,223, 98,177,220, +140,141,250, 39, 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231,195,194,194, 2, 49, 49, 49,184,126,253, 58, 94, +190,124, 9,138,162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202,202,234,163,113,186,185,216,225, 91, 23, 59,118, +102,110, 33,251,218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, 38,147,225, 63,130,178,232, 66, 23, 23,151, 78, +135, 14, 29, 98, 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, 20, 25,212,248,187,213,171, 87,139,198,143, 31, +239,145,146,146,178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246,108, 0,192,152, 49, 99, 10,239,223,191,239, 14, + 32,235,250,245,235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, 74,101, 12,147,201,164,195,194,194, 86, 1, 8, +124,239,137, 72,146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, 75,111,112,198, 20, 82,147,222, 32,238,217, 67, + 56, 58, 58, 90,240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187,134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, 92, + 92,140,212,236, 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, 51, 34,101, 15,179,178,178,228, 50,153,108,153, + 80, 40, 60, 84, 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72,232,188,188, 60, 66, 36, 18,161,168,168,136,184, +112,225,194,215, 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156,150,150, 54, 73,151,161, 73,181, 96, 82, 49,153, +204,205,147, 39, 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120,122,122, 94,110,222,188,153, 83,200, 38,239, 29, + 0,126,252, 23,156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202,149, 43,177,124,249,242, 70, 83,167, 78,157, 12, + 96,171, 30, 60, 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, 17,199,142, 29,195,219,183,111,149,245,235,215, +103,250,248,248, 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79,111,165,163,248, 24,191, 98,197,138,129,157, 59, +119,198,216,177, 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, 86,232,145, 35, 71,140,214,173, 91,215, 99,222, +188,121, 83, 1, 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, 20,212,251, 3,133, 22,199,198,198,230,194,225, +195,135, 91, 54,110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, 1,232,116, 67,170, 83,167,206,198,179,103,207, + 54,172,106,100,161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66,235,232,209,163,248,254,251,239,209,162, 69,139, +230,237,219,183,223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212,114,141,224,241,120,205,135, 15, 31,206,121,240, +224, 1, 0,192,211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, 10, 7, 7, 7, 12, 26, 52,136,151,148,148,212, + 60, 39, 39,167, 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, 18,109, 26,154,195,199,195, 30,241,169,133,136, +140, 77,133, 74,198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80,179,191, 22,215,120,220,160,129, 95,153,158,139, + 72, 71, 65,122, 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, 71, 27,163,158,238,173,219, 48,252,122, 14,176, + 58,125, 44, 99, 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, 1,190, 52,203,202,249,161,153, 66,177, 83, 51, +175, 55,208,107,225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240,105, 84, 84,252,100,128,154, 82, 5,223, 78,192, +117,232,192,129, 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116,159, 51,127,126,167, 25, 51,102, 24,237, 89, 53, +253,113,239, 9,107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, 64,152,153,155, 99,246,236,217, 32,228,242,203, +101, 2,138,137, 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215,201,217,207,110, 8,240,230,115, 85, 85, 21, 80, +165,143, 86,181, 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, 70, 69,185,185,185,120,254,252, 57,242,243,243, + 17, 28, 28,140,184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56,216,152, 99, 84,223,118, 76,169, 68,196,203,206, +206, 46, 55,124,244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97,137,194, 52,227,104, 23, 34,227,104, 23, 66, 88, +162, 48,149,201,100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57,255,204,153, 51,172,181,107,215,194,203,203, 11, +114,185, 28,247,239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94,191,126, 61, 78,159, 62, 77,244,232,209, 99, 97, +101,231,147, 64, 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168,108,252, 60,240, 45, 70,216,156, 66, 94,230, 59, +236,219,183, 15, 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125,181,163, 78,157, 58, 97,213,117, 50, 61, 61,125, +237,140, 25, 51, 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, 83, 60,219,210, 20, 18,202, 8,187,118,238, 38, +159, 61,123,102,251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, 75, 75,123,240,237,183,223, 74, 10, 11, 11, 33, +147,201,228, 42,149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226,197,139,172,171, 87,175, 49,111,222,188,197,190, +126,253,186, 69,183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, 9, 9, 25,183,107,215, 46, 7, 31, 31,159,102, + 21,134,162,248, 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0,148, 79, 10, 91, 91,219,153, 3, 7, 14,196,174, + 93,187,112,254,252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161,251,176, 23, 0,252,184,117,235, 86, 15, 15, 15, + 15,140, 25, 51, 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, 47,191,212,155, 58,117,234,236,128,128, 0, 73, +131, 6, 13, 16, 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24,129, 77,155, 54,225,230,205,155,131, 81,250, 64, +149, 1,184,116,247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, 54,150,167,166, 77,155, 46,235,211,167, 15,194, +195,195,209,170, 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244,196,161, 67,135,124,235,213,171,135, 53,107,214, +192,205,205, 13, 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76,141,141,141,177,112,225, 66,122,240,224,193,121, + 53,125,230,205,155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58,122,121,121,225,254,253,251,184,122,245, 42,150, + 46, 93,138,185,115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219,219,217,217,161,176,176,180, 46,188,151,151, 23, +158, 60,121,130,236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, 49, 40,138,178,215,141,146,246,178,181,182, 64, + 86,190, 20, 76, 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200,200,202, 70, 29, 27, 30, 92, 92,234,130,166, 41, + 47,157, 20, 48,131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, 74, 65,226,221,148,130,196,187, 41,114,169,100, +202,227, 59, 87,115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144,186,112, 49, 49, 98,142,185,250,243, 50, 34,108, +255, 98, 66,154,251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191,251,238, 59, 94,102,102, 38, 21, 48,108, 88,222, +218,192,192,107,127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, 34,202, 0, 82, 1,192, 1,112, 25,240,205, 55, + 93,150, 44, 90,100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161,190, 46,254, 89, 42,192, 91,195,123,249,242,101, + 90, 12, 60, 6, 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199,236,181, 63, 99,207,201, 91,151, 45, 20,244, 23, +255,161, 71,241,228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, 1,243,119,112, 86,134,255,162,208,210, 64,161, + 40, 29, 37,145, 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, 31,158, 53,107, 22,182,108,217,130, 87,175, 94, +129,205,102,195,203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136,143,143,199,230,205,155, 49,126,252,120,250,222, +189,123, 7, 81,121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, 10,113, 62,178,210,222, 64, 42, 42,192,154,245, + 27, 81,162, 96, 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54,109,218,135,193, 96,244,171,166,159,247, 51, 51, + 51,247, 79,155, 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213,216,216, 24,219,182,109,179,112,119,119, 31,200, +100, 50,187, 85,195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, 16,231,206,157,235, 95,175, 94, 61,171, 13, 63, +110, 33, 68,114, 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71,142, + 28, 25, 61,108,216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144,248,109,219,182,157, 60,113,226, 68,209,252,249, +243,173,131,130,130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83,167,158, 1,216,122,230,204,153, 71, 82,169, 20, +195,135, 15,175,175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, 57,242,107,215,174,181, 6,176, 5,165, 67,185, + 52,128,100, 0, 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216,177,227, 1,248,214,192,219,113,196,136, 17, 30, + 20, 69,225,248,241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134,145, 35, 71, 54, 0,160,207,141,156,205,229,114, + 79,173, 94,189,218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208,200,194,194,226,162,214, 53,160, 51,184, 92,238, +190,159,126,250,105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211,167,203, 90,183,110,141, 93,187,118, 13,228,112, + 56,122,149,232, 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120,190,177,169,169,105,132,167,167,103,161,151,151, + 87, 27,165, 82,137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, 11, + 45, 6,131, 1,185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6,108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35,144, + 36,169, 83, 52, 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, 87, 80,224,177, 25, 96, 49, 9,128,166, 96,105, +194, 2,143,195, 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, 84,170,140,202, 30,142, 76,149,145,145, 17,135, +176, 53,231,130,199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135,110,218,188,153, 83, 88, 92,140,193,131, 7,231, + 37, 61,122, 20, 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, 84, 20,138,242,243, 95, 3,165,206,241, 28, 39, +167, 97,219,182,109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, 17,118, 60,185, 84,136,213,120,220,217,108, 71, + 13,175, 48, 63, 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72,176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, 95, +157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149,137,196, + 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245,198,223,177, 0, 0,107, 83,166, 80,174, 82, + 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136,213,136, + 17, 35, 18, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170,204,227, +146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, 92, 22, +137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94,189,218, + 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62,221, 42, + 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, 8, +137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, 92,233, +205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17, 35, 71,142,124, 14,192,107,254,252,249,214, + 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, 64, 97, + 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47,135, 15, 31,142, 75,151, 46, +225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,136, 17, 35,240,243,207, 63,247, 1, 80,157,131, +108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95,191,190, + 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254,249, 99, +199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,193,207,207, 15,243,230, +205, 83, 94,190,124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166, 9,179,103,207,206,166, + 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118,163, 70, +141, 86,203,100,178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98,162,165, +133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38,180,172, +229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, 19,103, + 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100,135,152, + 55,232, 52,153,201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, 33,165, +171, 27,239, 73,175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, 32,128, +202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96,129,141, +189,163, 35,198, 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, 0, 95, +174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54,174, 86, +172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,194,132, 9, +114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, 41, 41, + 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234,249,243, +231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156,220,208, +210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70,134, 59, +101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103,103,131, + 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16,189,201, + 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 54,108,152, 25, 0, +168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, 73,147, + 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153,160,203, + 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107,104, 91, +223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,176, 87,175, 94,207,110,220, +184,209,182, 99,199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, 73,183,145, 35, 71,138,220,221,221,113,235,214, + 45,143,145, 35, 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175,191,198,170, 85,171,232,147, 39, 79, 6, 0,184, +162,158,119,249,248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82,169, 32, + 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, 46, +147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194,194, 2, +174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21,233, +148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211,186,232, +218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220,196, 19, + 35, 39,204,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, 88, +120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232,251,229, +151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,175,190,250, + 10,217, 57, 57, 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, 6, 65,161, 80, 8, 2, 40, 4, 0,130,137,190, +237,188, 26, 33, 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35,124,237,124,180, 0,228,204,155, 55, 15, 92, 46, + 23,124, 62,191, 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227,199, 1, 32,167,218, 55, 60, 64, 58, 96,218,122, + 74,170,160, 75, 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94,229, 65, 49,181,225,252, 12,208, 78,157, 19,171, + 29,128,252,164,164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133,185, 41,130,148,183,207, 51,150, 44,156, 39, 76, + 77, 77, 77, 65,105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, 25, +137,177, 99,199,210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, 33,114, 21, 85, 54,228, 87, 88, 88,136,244,244, +116,200,100, 50,157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211,213, 4, 30, 46,198, 32,148,197,101, 34, 43, 59, + 59, 91,243,230, 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11,145,145,145, 1,149, 74, 85,213,131,140, 74, 75, + 75,187,124,226,196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, 42,249,236, 97, 50,153,119, 53,109, 55,109,218, +148,135,247,135,196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207,198,158, 61,123, 32, 16, 8, 22,225,175, 92, 60, + 84, 78, 78,206,130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, 21, 2, 24, 89, 21,161,157,157,157, 51,147,201, + 68, 84, 84, 84, 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124,183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, 90, + 90, 26,160,126, 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, 54,222,202,202,106,193,129, 3, 7,152, 47, 94, +188, 64,247,238,221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, 91,183,110, 47,175, 94,189,138,141, 27, 55, 18, + 45, 90,180,152, 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247,238,157, 6,224, 84,133, 38,199,118,237,218, 53, +107,239,222,189,152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126,126,126,145,175, 94,189,210,169,226,129,142,237, +187,249,248,248, 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234,212, 60,188,255,192,254,253,244,233,211, 24, 53, +106, 20, 90,180,104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83,108, 54, 27,174,174,174,232,215,175, 31, 2, 2, + 2,208,188,121,115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, 41,151, 82,238,171,155,231, 19, 19,255,199,222, +121,135, 71, 81,181, 81,252,204,246,190,155,222, 73, 8, 45,149, 22, 32,244, 18, 8, 65, 32,132, 34,138, 8,162,162,136, 20, 81, + 64,177, 0, 54, 16,164, 11, 34, 69, 44,124, 8, 8,138,180,208, 4, 20,164,147, 0, 33,129, 36, 64,122,221,244,178,217,190, 51, +247,251, 35, 4, 67, 76,217, 77,176,160,243,123,158,121, 54,185,179,115,246, 78,187,123,246,189,247,190,147,124,254,218,229,179, +102, 30,151, 3,111,119, 7,140, 13,239,138,151,198,247, 69,183, 0, 79,100, 20,232,112,250,244,207,230,180,180,148,139,214,204, + 56,172,209, 76,188, 21,119, 33,225,218, 57, 11,159, 71, 33,192,191, 3, 22,190,251,150,253,210,247, 23,216,117,104,235,141,184, +212,114,252,124,226,168, 57, 55, 59,235,151,191,107,198,225, 25, 64, 32, 23, 81, 50, 46,135, 3,154, 35,170,226,222,159, 72,211, + 49, 40,200,207,213,205, 13,209,209,209,224,216, 48, 35,244, 12, 32,144,203,171,123,193, 53, 26, 13,106,244,218,249,251,251,123, +251,248,224, 72,116, 52,184, 12,115,123,160,141, 9, 70,147,170,187,161, 31,232, 82,128,126, 70, 43, 40,218,181,114,241,183, 87, +201,112, 57,238, 46, 12,102,114,229,187, 82,252,173,249,200,254, 68,166,161,153, 93,135, 43, 55,111,222, 28,186,109,219,182,161, +115,231,206,149, 79,153, 50, 5, 98,177, 24, 90,173, 22, 94, 94, 94,160,105, 26,199,142, 29, 67, 76, 76,140,134, 97,152,159,241, +199,180, 1,225,168, 53, 75,227,120, 10, 36,213,126, 75, 27,122,224,169,167, 30,137, 38, 0,200,239, 50,202,226,214,198, 29,235, +247,158, 27,183,243,248, 53,234,245,137, 3, 57,221,252, 91, 1, 0, 92, 93, 93,161, 84, 42,109,214,124, 4,252,233,154,181,187, +117,243,243,243,147,242,243,243, 11, 94,126,249,229,128,154,129,239, 34,145, 72,127, 63,146, 85, 90,223, 54, 86,212,211, 4, 96, +198,182,109,219, 14,150,151,151, 31,127,243,205, 55,177,116,233, 82, 28, 58,116,168, 63,128,243,205,220,119,186,180,180,180,236, +202,149, 43,174,237, 3, 67,208,198,133,143, 1,139,238,128, 16, 2, 71, 41, 65,101, 89, 9,174, 95,191,134,202,202,202,203,182, +212,211,100, 50,149, 21, 20, 20, 56,185,184,184,160,164,164, 4, 69, 69, 69, 15, 76, 86,105,105, 41, 74, 74, 74, 8, 69,253, 33, +103, 75, 99,154, 85, 5, 5, 5,218,196,196, 68,161,107,171,246,104,235, 34, 64,207,119,147, 0, 66,224,237,192, 65,101, 69, 25, + 46, 94,188,136,242,242,242, 95, 27,210,100, 24,102,222,164, 73,147,184, 0,158,123,243,205, 55, 29, 0,116,121,235,173,183,126, + 70,157,153,133, 60, 30,111,237,142, 29, 59, 58,214,116, 49, 46, 88,176, 96, 13,128,109,127,213,181,228,232,232, 56, 47, 58, 58, + 90, 97, 50,153,176,126,253,122,172, 89,179,230, 43,252, 49, 81,101,244,231,159,127,190,145,195,225,204,156, 53,107, 22, 94,121, +229, 21,105,247,238,221,231,230,229,229,125, 87,159,102, 78, 78,206,194,110,221,186, 45, 46, 40, 40,248,196, 42,179,124,231,206, +180,110,221,186, 45, 44, 40, 40, 88,209,216, 57,146,201,100, 50,154,166,145,150,150, 86, 10, 52, 56,190, 67,159,150,150,150, 67, +211,180,151, 84, 42,117,104,234,250, 44, 45, 45,253,164,123,247,238, 31,168,213,234, 19, 0,150,212, 99,200,111,228,229,229, 5, +207,153, 51,103,246,242,229,203,199,229,231,231,239,110, 74, 51, 35, 35,227,147,176,176,176, 69,201,201,201,223,162,225, 46,224, +207, 63,252,240, 67,211,142, 29, 59, 94, 77, 75, 75, 91,214,132,230,225,162,162,162,195, 54,156,223,134,222,255, 64,147,203,229, +190,181,124,249,114,206,230,205,155, 65, 8, 89, 69,211,116, 67,245,140,219,191,127,255,246,190,125,251, 78,217,187,119,175, 56, + 56, 56,248, 21,131,193,176,171,169,235, 83,171,213,238,219,187,119,239,184,184,184, 56,175, 41, 83,166,136,253,252,252, 96, 50, +153,144,151,151,135,205,155, 55,235,227,227,227,179,203,202,202,246,217,210,134, 88,140, 21, 19, 47,156, 62,176, 43,253, 78,124, +239, 65, 79,140,182, 55,154,188, 32, 42,230,162,172, 56, 31,199, 14,239, 43, 77, 75, 75,185,168,213,150, 77,180, 69,211,100, 40, +127,230,226, 47, 7,119,103,167, 37,246, 26, 16, 54,194, 94,111,244,129, 72,192, 65,177, 58, 7,199,162, 15,148,164,165,165,254, +166, 55, 27,158,255,187,218,121,174, 47,150,112,243, 99, 94,158, 62,170, 43, 36,246, 94,215,249,192,250,190,128,196,201,213, 85, +112,255,222,129,188,122,204,163, 85,154,106, 64,216,254,126, 47,149, 86,171, 5, 31, 48,190, 0,240,157,157,157, 37, 0,144,156, +156, 12,105,117,175,134, 77,245,212, 0, 50,105, 45, 93, 14,160, 45,230,193,179,157, 82, 70, 1, 64,118,126, 49,140,230, 70,191, + 55, 30,119,182,214, 50, 92, 91,155, 35, 32, 0, 16, 46,151,203,151, 46, 94,188,120,213,229,203,151, 87, 69, 70, 70,174, 18,137, + 68, 75,239, 31,108, 65, 35, 39,226, 47,211,236,225, 1,135,176,182,212,217,136,118, 20, 51,189,191, 61,253,124, 79,153,113,240, +224,193, 27, 91, 88,207,150,220, 44,127,166,230, 1,179,217, 76, 80,221,109,119, 0, 13,119, 9,190, 83,107,125,126,102,102, 38, +185,255,183, 45,245,116,154, 48, 97, 2, 83, 89, 89, 73,158,126,250,105,130,166, 31,225,211,168,166, 72, 36, 10, 27, 48, 96,128, + 89, 93, 88, 66,146, 82,115,200,165,216, 91,228,248,233, 11,100,247,190,104,178, 97,227, 22,210,185,115,103, 35, 0, 31, 91, 52, +121, 60,222,224,176,176,176, 98,181, 90, 77, 18, 19, 19,201,217,179,103,201, 15, 63,252, 64,182,108,217, 66, 54,109,218, 68, 90, +181,106,165, 6,224,106,139,166, 68, 34, 25, 61,124,248,112,115, 89,133,150,164,229, 20,147,155,137,105,228,252,149,155,228,216, +233,243,228,187, 93,123, 73, 80, 80,144,222, 10, 77, 46,151,203,221,176,123,247,238, 10, 66, 8, 25, 61,122,116, 54, 30, 78,164, +218,102,222,188,121, 5,132, 16,178, 98,197,138, 98,212, 63, 16,254,207,190,150,158,240,244,244, 76, 18, 8, 4,209, 0,158,107, + 98,187,103,120, 60,222, 33, 55, 55,183,171, 0,198,254, 13,247, 81,164,139,139,203, 37, 0, 77, 61,225,160,230,125, 99,254, 37, +247,251,159,161, 57,152,199,227,157, 5, 26,127,136,112,173,246,250, 99, 46,151,123, 4,192, 16, 27,235,217,193,201,201,233,105, +123,123,251,215,237,237,237, 95,119,113,113,121, 90, 40, 20,118,104,201,190, 59,118, 8, 31,229, 29, 18,181,191, 85,151,145, 25, +222, 93, 35, 51,124,187,141,222,239,216, 33,124, 84, 75, 53,125,186,141, 62,224,221, 53, 50,211,187,235,168,244, 54, 61, 70,239, +119,242, 15, 31,254,119,158,163,231, 60,225, 49,180, 13, 44,228,236, 34, 66,206, 46, 34,225,109,192,244,182, 67, 80, 40,160, 24, + 22, 30,190,154,208,244,234,113, 99,198,172,110, 15, 56, 18,128, 91,119,169, 79, 51, 4, 80, 62,216,118,244,232,213,109, 1,167, +161,128,116, 96,255,254,171, 8, 77,175,158,244,204, 51,171,189, 1,183,250,244, 26,210, 36, 0,215, 19,240,168,173,235, 4,180, + 27,239,139,224,119, 70,249, 18,114,118, 17,249,240, 41, 63,210,205, 21,207, 53,161,217, 80,164,232,177,142,104,217,138,236,126, +227,186,236,254,171,236, 17, 92,132,143, 92,179,151, 59,252,194,219, 81,137, 35,252,121, 37,168,158,146, 44,251, 23, 54,146,223, + 26,141, 70,162,215,235,137, 86,171, 37, 26,141,166,174,129,122, 96,200,114,115,115, 73,118,118, 54,201,204,204, 36,233,233,233, + 4,191,143,189,177,186,158, 74,165,114,219, 83, 79, 61, 69,243,249,252, 13,143, 98,223, 29, 28, 28,150,245,236,217,211,244,217, +103,159,145,253,251,247,147, 47,191,252,146,204,154, 53,139,116,236,216,209, 96,103,103, 55,177, 57,154,110,110,110, 11,253,253, +253,139,191,250,234, 43,242,221,119,223,145,117,235,214,145,247,222,123,143,246,242,242,202, 87, 40, 20,195,154,163,233,226,226, +178,181, 95,191,126,166,173, 91,183,146,159,127,254,153,236,220,185,147,204,155, 55,143, 4, 4, 4, 24,100, 50,217,147, 86,106, +114,121, 60,222,234,233,211,167,231,123,120,120, 68,215, 89, 39, 13, 10, 10,186, 58,105,210,164, 92, 0, 11,254, 69,215, 39,171, +201,106,178,154,127,130,209,122,214, 3,158, 4,224, 74, 5,130,103, 6,246,239,191, 74, 0, 60, 99,171, 41, 18,115,185,227,251, +246,236,185, 74, 0, 76,172,121,175,152,203, 29, 63,176,127,255, 85,124, 46,119,114, 67,122,141,105, 18,128, 43,224,241, 22,244, +237,221,123, 53, 15,120,183,166,108,112, 27,234,246,188, 39, 90,145,254, 62,212,221,201, 46,144,254,139,141,214, 35,135,247, 39, + 92,132,143,139,230, 63,229,166,110,127,223, 48, 29,176, 33,162,117, 0,213, 79, 81,111,223,204,122, 74, 30,241,190,119,114,114, +114, 58,218,190,125,251,194,214,173, 91,231,218,219,219,239, 2,224,213, 66,205, 96, 55, 55,183,255,185,186,186,222,113,119,119, +143,115,114,114, 90,139,234,172,243,205,214,228,243,249, 61, 93, 93, 93,127,245,245,245, 45,243,241,241, 81, 59, 57, 57,237,174, + 39,146,101,141,166, 59,234,111, 84, 4,247,215,177, 95, 58,172, 38,171,201,106, 62,100, 96, 34,218, 98,249,208, 54,176, 12,109, + 3, 58,194, 23,107,107, 27,148, 72, 64,210, 92, 83,244, 60, 32,170,251,254,166,244,154,210, 36, 0,183, 15, 32,175,187,205, 8, + 47, 4, 89,169,249,184, 71,180,106,218,121,219,210, 59, 52,128,229, 79,168,228,227,162,249, 79,225, 46, 26, 25,140, 92,139,101, +143,240, 51,117,143,120, 31,110, 22, 21, 21, 13, 47, 42,122,164,115, 19, 18,242,243,243,159,123,148,130,102,179,249,178, 90,173, + 30,244, 8,164, 26,154,122,109,130,149,211,178, 89, 88, 88,254, 59, 80, 0,141, 20,188, 29,222, 1,235,121, 52, 56,199, 82,145, + 83,103, 74,158,142,106,142,102, 53,244,183,245,180,241, 84,115,235,249, 59,154, 63,104,100,227, 22,245,223, 57,109,121,168, 30, +163,213, 98,163,197,194,194,194,194,194,194,242, 23,112,242, 14,251, 67,236, 49, 32, 26, 15, 71,223,162,107, 25,209, 6, 67,159, +182,204,164,104, 78,248,244, 36,171,201,106,178,154,172, 38,171,201,106,178,154,255, 57,205, 26, 26,122,118,106, 82,157,255,155, + 53,139,239,191, 2,219,207,206,106,178,154,172, 38,171,201,106,178,154,172,230,191,157,102,231,209, 98, 97, 97, 97, 97, 97, 97, + 97, 97,105,156, 6,163,110,172,209, 98, 97, 97, 97, 97, 97, 97, 97,105, 25,238,168,126, 68, 85, 52,126,127, 84,213, 86,160,233, + 71,240, 60,196,242,229,203, 57,237,219,183,151, 11,133,194,142, 41, 41, 41,156, 25, 51,102,180,120, 34,193,170,181, 27, 56, 62, + 62, 62,114, 0, 29,139, 75, 43, 57, 47,190,244, 38,197,158, 47, 22, 22, 22, 22, 22, 22,150,199,136,145,247,141, 85,205,235,131, + 8,151, 77, 17,173, 37, 75,150,192,108, 54,203, 0, 76, 8, 14, 14,254, 88,175,215,235,247,236,217, 67,221,207, 22,222, 44,222, + 93, 48, 15, 38,147, 73, 6, 96,130,139,147,221,199, 52, 77,235,247, 30, 58, 71, 61, 53,170, 31, 97,207, 27, 11, 11, 11, 11, 11, + 11,203, 99,194,180, 58,175, 91,109, 54, 90, 60, 30,143,203,225,112,218,154,205,230,225, 98,177,248,132, 94,175, 63,219, 18,147, + 85,163, 73,113, 56,109, 45,102,243,112,145, 72,124, 66,171,173, 58,203,154, 44, 22, 22, 22, 22, 22, 22,150,199, 8,235,102, 70, + 30, 62,124,184, 65,131, 35, 20, 10, 57,193,193,193,253,124,124,124,206, 7, 6, 6, 26,189,188,188,126,144, 74,165,178, 22, 86, +140,211,222, 47,160,159,135,187,235,249,174,109,221,141, 46, 46, 46, 63,240,249,124, 25,123,190, 88, 88, 88, 88, 88, 88,254,155, + 52,230, 69,254,193,212,204, 52,252,195, 83, 62,108, 25,163,213, 69,173, 86,111, 28, 51,102, 76,175, 57,115,230, 8,184, 92,110, + 43,153, 76,214,209,201,201,233,161,168,216, 11, 47,188, 64,217,164,153,159,183,113,233,248, 46,189,206,191,219, 67,192,231,162, +149, 76, 38,235,168, 84, 42, 31,210,156,244,226, 43,236,184, 45, 22, 22, 22, 22, 22, 22,150,127, 42, 53,227,178, 70,194,150,244, + 14, 61,122,244, 16,101,101,101,117,213,233,116, 46, 2,129, 96, 65, 84, 84, 84,240,184,113,227,112,253,250,117, 58, 56, 56,216, +163,184,184,120,118,105,105,233,201,170,170,170,235, 12,195, 4,139, 68,162,211,187,118,237,146, 3,184,211,144,102,167, 46,221, + 69, 89, 25,169, 15, 52,167,143, 31, 28,252,220,220,225, 96,142,174,167, 7,119,246,246,200, 40,210,206, 46, 90, 11, 62,147, 0, + 0, 32, 0, 73, 68, 65, 84, 40, 46, 63,169,173,210, 92,167, 25, 18, 44, 18,137, 78,127,247,245,150, 70, 53, 89, 88, 88, 88, 88, + 88, 88, 88,254, 70,106,140, 85, 52,234, 60, 82,141, 7, 84,135,233, 34, 35, 35, 31,138, 26, 9,133,194, 47,146,147,147,251, 58, + 56, 56,180,229,243,249,244, 51,207, 60, 35,154, 52,105, 18, 10, 11, 11, 25,141, 70,195, 13, 9, 9,113,189,122,245,234,112,139, +197,210,223,206,206, 78, 91, 86, 86,230,100, 48, 24,238, 2,152,221, 72, 69,190,184,147, 20,223,215,209,222,161,173,144,207,165, +103, 77,157, 36,122,119,193, 19,160, 12,177, 12, 93, 80,204,253,184,155,157,235,218, 11, 85,195,147, 77,116,255, 42,149, 88,155, + 95,110,176, 70,147,133,133,133,133,133,133,229, 49,167, 62, 47,242, 24,209,100, 30,173, 65,247,251, 68,107, 63, 56,119,187,179, +179,179,155, 92, 46, 15,156, 54,109, 26,199,201,201, 9, 49, 49, 49, 76, 85, 85, 21,135,207,231,131,207,231,115, 7, 15, 30, 44, +183, 88, 44,210, 35, 71,142, 80,247,238,221, 43, 52,155,205, 31, 23, 23, 23, 95,109,164, 34,219,219,217,137,220, 36,118,194,192, + 67,111, 14,224, 56,183, 47, 6,142,127,200, 16, 77, 1,135,199, 16, 56,201, 24,238,234,254,148, 60, 95,229, 43,157,181,187,144, +250,237, 94, 89,161,217,108,254,184,178,178,242, 42,123, 9,178,176,176,176,176,176,252,171,169,207,139, 60, 46,212,206,163,245, + 80, 68,171, 65,231,232,234,234, 74,233,245,122, 55, 95, 95,223,105,206,206,206,147,165, 82,169,235,128, 1, 3, 36, 52, 77,131, + 16, 2,149, 74,197,180,110,221,154,217,181,107,151,229,220,185,115,217,175,189,246,218,152,153, 51,103,222, 30, 49, 98, 4,231, +200,145, 35, 76,125,154,118,246, 14,148, 69, 91,225,230,221, 54,112, 90, 39,103, 50,217, 87,101,114, 93, 20, 37,149,240,210,138, + 64,156,120,128,139, 47,195,233, 24,193, 44, 91,125,194,242,229,201,212,236,183, 22, 45, 27,243,234,212, 9,183,195, 35, 70,112, + 78,158,168, 95,147,133,133,133,133,133,133,133,229,111,102, 26,170,163, 90, 53,175, 77, 27,173,190,125,251, 82, 9, 9, 9,148, +143,143,143,180,184,184, 56, 8,192,218,249,243,231,135, 18, 66,104,137, 68,194,149, 72, 36,244, 47,191,252,162,253,241,199, 31, +207,153,205,230,231,140, 70, 99,169,175,175, 47,149,150,150,214,224,108,129, 30,189,122, 83,183,226,174, 83,222, 62,109,165,197, + 69,234, 32, 10,100,109,206,187, 30,161,124, 77, 41, 13, 15,103, 46, 20, 46,244,170,125,165,218,119,127,186,113,206,108, 54, 61, + 7,160,212,203,195,157,202,206,205, 99,211, 61,176,176,176,176,176,176,176,252,147,141, 86, 93, 26,207,163,117,254,252,121, 2, +128,228,228,228,208,102,179, 89, 57,112,224, 64,123, 46,151, 11, 71, 71, 71,174, 86,171,101,170,170,170,184, 78, 78, 78,185,124, + 62,255,187,170,170,170,210, 49, 99,198, 80,251,247,239,111,212, 16, 93,189,116,145, 0, 32,217,217, 89, 52, 99,214, 43,103,244, +107,109,207,179,152,192,132,244,229,106, 42, 41, 70,174, 75,227, 6,184,139,114, 5, 2,254,119,102,179,169,116,108,228, 72,234, +167,195,209,172,201, 98, 97, 97, 97, 97, 97, 97,249, 39,211,224, 24,173, 38,211, 59,104,181, 90,123,129, 64, 16, 30, 26, 26,218, +186,170,170,138, 89,178,100, 73,214,103,159,125,182,227,238,221,187,102, 59, 59,187,182, 18,137,228,245, 9, 19, 38, 56,237,223, +191,159,244,239,223,191,110,132,172,222,167,123,235,116, 26,123,145,128, 31,254,122, 79, 69,235, 44,147, 61, 19,248,250,149,172, +129,139, 47,236,248, 41,129,103,238,228,160,107,235, 32,164, 94,159, 48,225,105,167,159, 14, 71,147,222,189,123, 89,165,217, 66, + 88, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,123, 53, 31,119,166,161, 78,106, 7,192,138,204,240, 34,145,104,128,183,183, +119,191,132,132, 4,250,226,197,139,229, 28, 14,103,211,136, 17, 35,126,216,183,111, 95, 79, 7, 7, 7,151, 86,173, 90,185,158, + 58,117, 42, 12,192,158,223,126,251,205,170,232,147, 68, 36, 24,208,213, 75,213,111,235, 13, 66,127, 29,115,167,156,230,138, 54, + 13,126,242,201, 31, 94,219,177,179,167,135,147,194,165,171,187,210,245,200,145, 99, 97, 0,246, 92,188,120,137,141,104,177,176, +176,176,176,176,176,252,211, 77,214,214,250,254,111, 52,162, 37, 20, 10, 61,185, 92,110, 80,118,118,118,198,145, 35, 71, 18,122, +244,232, 49, 60, 35, 35, 99, 57, 33, 36, 93, 42,149, 78,203,202,202,186,147,149,149,101,212,233,116,211,109,168,140, 39, 56,130, +160,152, 92, 93,198,167,167,110, 37,116,234, 61,108,120,126,126,238,114,154,144,116,161, 84, 57, 45, 57,179,240,206,165, 2,131, + 81,175,183, 73,147,133,133,133,133,133,133,133,229, 31, 71, 83, 17, 45, 19, 77,211, 43, 13, 6,131,253, 79, 63,253,148, 19, 17, + 17, 97, 0,128, 47,190,248,130,153, 58,117,234,185,148,148,148, 33,183,111,223, 30,238,230,230,118, 26, 0,149,154,154,106, 77, +244,201,196, 48,244, 74,163,209, 96,127,234,151,216,156, 1,253, 58, 25, 0, 96,243,231,235,153,103,166,205, 57,151,146,152, 48, + 36, 57,254,218,112, 55, 55,183,211,180,133, 71,229,229,167,179, 17, 45, 22, 22, 22, 22, 22, 22,150,127, 50, 53, 51, 14,107,255, +223,180,209, 50, 26,141,133, 70,163, 17, 0, 74, 35, 34, 34, 30, 90,247,213, 87, 95, 17, 0, 85, 0,246, 22, 23, 23,219, 82,153, + 66,157, 78, 7, 0,165, 3,250,117,122,104,197,238,173,159, 61,208,212, 84, 86,176,167,141,133,133,133,133,133,133,229,113, 50, + 91,127,128,195, 30, 23, 22, 22, 22, 22, 22, 22, 22,150, 22, 49,173,161,255, 41, 52, 60,115,224,164, 13, 31,208,156,217, 7, 39, + 89, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,207,105, 54,165,125, 18,143, 31, 13, 14,134,255,179, 97,167,190,178,154,172, + 38,171,201,106,178,154,172, 38,171,249,111,199, 29, 15,167,119,112,175, 89,193, 99,143, 13, 11,203,227, 13,217, 11, 46, 74,253, +125, 65,136, 7,184,194, 60,228,221, 76,161, 62, 0,211, 98, 77,117,144, 15, 36,102, 87, 88,196,133, 80,199,165,182, 84,147,133, +133,229,223,135, 91,159, 25, 99, 41, 14,119, 19, 69, 24,232,212,137, 34,129, 46, 93, 90,144,151,241, 95,244, 22,121,104, 32,130, +197, 26, 45, 22,150,199,157,194, 0, 63,240,176, 12, 28,184,131,152,238,193, 57,104, 25,112, 43,190,197,154, 2,102, 9,104,142, + 23,136, 41, 25, 46,254,203,129,164, 91,236,193,254,247, 49,123,214,171,228,118,252,101,100,102,230,162,109, 59,119,248, 5,244, +193,103,235, 55, 82,236,145, 97,177,238, 87, 25,181, 53,124,212, 36, 7,137, 84, 1, 0, 96, 44,102,124, 53,183,235,207, 22,139, +101, 59,128,253, 0,116,255,245, 67,244,151, 15,134,231,243,249,106, 0,140, 88, 44,222,135, 90,161, 53, 22,150, 63, 1,247,251, +215, 25,115,255,186,179, 5, 57,143,199, 91, 44,149, 74,127, 17,137, 68, 5, 34,145,168, 64, 38,147,253,194,227,241, 22, 3,144, +255, 99,218,184,255,117,148,130, 67, 15, 55,154, 25,207, 99, 55,203, 92,180, 6,218, 15, 28,203, 8,242, 85, 7,121,139, 52,121, + 84,132,222,196,120,127,119, 69,235, 90,101,180, 4,130,160, 69,154,181,176, 19, 8, 4,199, 0, 56,177,151,231, 63,131,140,212, +120, 28, 57,188, 26, 75, 62,154,130,111,182, 78, 71,210,237, 75, 45,210, 11, 4,186,119,231,241,230, 7, 0,131,209,200,243,116, + 89,254, 37, 80,100,218,201, 67,223, 21, 30,218,245,121,225,247,171,167,147, 3,203, 34,177,126,253,250,240, 41, 83,166,124,231, +237,237, 93, 8,224, 41,214,104,253,197,152,205,102,151,162,162, 34,106,251,246,237, 81, 42,149,234, 30,143,199,123, 7,128,224, +191,114,192,229,114,249, 5,165, 82,169, 86,169, 84,106,165, 82,121,173,169,242,127, 41,126,206,206,206, 25, 14, 14, 14,201,181, + 11,157, 59,143,237,211,190,239,115,239, 59, 6,141, 30,216, 66,125, 1,143,199,123, 71,165, 82,221,219,190,125,123, 84, 78, 78, + 14,101, 54,155, 93,108,216,126,128,189,189,253,237,203,151, 47, 47, 42, 42, 42, 26,152,117,233, 43,231,252,203, 91,156, 51,126, + 93, 61, 40,230,200,134, 69,118,118,170, 91, 0, 6,252, 35,142,164,158,113, 5,135, 27,150,144,167,149,230, 85,152, 93, 99,211, +181, 10,128, 59, 8,198, 22,252,136, 41,103, 92, 1, 50,248, 70,182, 78,118,161,196,217,245,183, 20,131, 18, 28, 78, 24,244,148, + 91,139, 27, 28, 14,231, 85,134, 97,134, 10, 4,130,215,217,111,168,127, 6, 34,145, 0, 32, 4,114,153, 24, 0, 1,167,133,214, + 72,200,225,244,189, 16, 21,181,100, 65,231,206,179, 3,128, 81, 13,152, 45, 10,192,107, 1, 1, 1, 71, 1, 60,243, 8,119,231, + 83,127,127,255, 28, 0,115, 30, 85,187,212,173, 91,183, 62, 97, 97, 97,239,119,237,218,117,224,163,210,252, 55,145,127,225,139, +159,242,206,109,112,201, 61,191,209,165, 44,245,236,107,238,174,246, 76,106,106, 42, 70,142, 28,137,207, 63,255, 92, 26, 28, 28, +188, 3,128,199,127,224, 86, 10,169,249,129,143, 58, 99,180,172, 54, 90,227,125,209,119, 98, 27,156,121,218, 23,149, 19,218, 64, + 51,185, 13,206, 61,233,139,193,205,169,141,163,163, 35, 6, 12, 24,192,205,201,201,145,204,155, 55,239,125,177, 88,156, 6, 96, + 88,115,180, 36, 18, 73,140, 84, 42,205,226,241,120, 15,213, 69, 42,149,198,200,100,178, 44, 30,143, 55,164,118,185, 66,161,184, +160, 84, 42,213, 10,133,226, 90, 3, 70, 40, 70,169, 84,170,229,114,121, 76,237,114, 30,143, 55, 68, 46,151,103, 43, 20,138,186, +229,131, 21, 10, 69, 86,221,242,134,224,243,249, 94, 89, 89, 89, 46,217,217,217, 46, 66,161,208,181,118,121,102,102,166, 75, 86, + 86,214, 67,229,182,192,227,241, 6,203,100,178, 44,169, 84, 26, 83, 95,121,221,125,106,136, 90,199,110,176, 53,229,182, 54, 60, + 17, 17, 17,231,242,242,242,188,237,236,236,236,106,175,112, 80,217, 13,251,223, 87, 27,231,142, 30, 17,241,170,115,224,152, 78, +205,212, 31, 38, 22,139,211,230,205,155,247,126, 78, 78,142,164,119,239,222, 92, 14,199,166,223, 19,225,163, 71,143, 62,160, 86, +171, 61,187,116,233,194,181, 88, 44, 72, 56,184, 24,210,184,215, 33, 78,219,140, 86,146, 66,222,189,159,151,123, 69, 12,234,126, + 0,127,243, 96, 80,178, 55, 80, 0,138, 25,192, 16,226,124, 59, 71,239, 60, 50,234, 41,222,245, 44,157,179,153,166, 29, 0,238, + 32,242,141,143,168, 89,154, 60,115,127,134, 16,215, 83,233,124,231,176,167,103,115, 79,167,243,156,205, 52,237, 8, 14, 6, 54, + 71,179,246,229,207,229,114,231,174, 94,189,154, 3, 96, 22, 0,225,127,201,208,132,122,192,115,112, 59,238,149, 16,119,244,125, +132,178,193,247,239,119,191,150, 10,109,251,230, 40,166,190,178, 21, 29, 2,122,181, 72,199,200, 48, 73,187, 83, 83,143, 79,110, +215, 46,114, 65,231,206, 47,212, 99,182, 40, 0, 11,150, 47, 95,254, 92, 66, 66,130,115,155, 54,109, 94,121, 68, 63,250,215, 45, + 95,190,252,173,132,132, 4, 15, 95, 95,223, 15,109,212,108,176, 93,178,183,183, 31,182,109,219,182,185, 35, 71,142,124,181, 91, +183,110,157, 30,133,230,191,152,207,111,220,184,225,189,122,245,234,183,167, 78,157, 90, 1, 0, 67,134, 12, 17, 0,232,221,226, +246,142, 16, 33, 33, 36,140, 16, 50,146, 16, 50,132, 16, 18,122,255,239, 30,247,151,145,132,144,240, 58,175, 61,238,111, 91,179, +190,103, 3, 26, 35,235,110, 87,107,155,186,255, 63,244,119, 61, 70,107, 36,170,199,106,141,124,104, 7, 14, 31, 62, 76,106,191, +214,101,130, 47, 62,152,221,199, 83,123,251,208, 78,162,201, 74, 37,165,137,215,201,245,173,159,144,217, 61,156,181,207,182,193, +167,182, 31, 47, 66,206,159, 63, 79, 18, 18, 18,136, 70,163, 33,119,238,220, 33, 61,123,246,212, 73,165,210, 83, 0,124,109, 17, + 83, 40, 20,234, 83,167, 78,145,136,136,136,114,185, 92,190,170,230,230, 82, 42,149,234,243,231,207,147,136,136,136,114,133, 66, +177, 14, 0, 23, 0,158,124,242,201, 2, 66, 8,113,118,118,206,173, 79,111,244,232,209,165,132, 16,162, 82,169,106,186,154,184, + 10,133, 98,221,204,153, 51, 53, 87,175, 94, 37,246,246,246, 53,229, 28,165, 82,185,106,214,172, 89,154,216,216,216,218,229,141, +226,224,224,144, 69,211, 52, 57,116,232, 16,113,113,113,201,173,117, 51,103,209, 52, 77, 14, 28, 56,208, 96,221, 26, 11, 20,200, +229,242,149,147, 39, 79,174, 76, 79, 79, 39,142,142,142,234, 90,229,171,166, 76,153, 82,153,153,153, 73,156,156,156,172,170,163, +163,163,163,250,194,133, 11,100,220,184,113, 21,181,143,169,163,163,163,250,226,197,139, 53,229, 43,173,105,200, 60, 60, 60, 94, +113,113,113,201,117,113,113,201,181,179,179, 91,234,238,238,158, 95, 88, 88, 72, 8, 33,164,109,219,182, 5,181, 35, 89, 46,193, + 81,111,108,222,123,241,242,217,248,226,194,206, 67, 95, 93,169,234, 60, 90,101,195, 49,240,149, 74,165,167, 6, 14, 28,168,203, +202,202, 34, 85, 85, 85, 36, 46, 46,142,156, 63,127,158,220,189,123,151, 0,176,230, 9, 3, 10,185, 92,158, 99, 48, 24, 24,131, +193,192, 20, 22, 22,210, 5, 5, 5,116,226, 42,119, 66,190,230, 63, 88,202, 14,140, 34,249,103,151, 49, 74,185, 52, 27,128,226, +111, 51, 90, 27,131,188,200, 22,255,221,183, 22,123, 39,158, 93,254,132,153,164,159, 38, 59, 95,112, 54,159,121,195,243, 30,217, + 20,240, 35,217, 18,216,170, 89,154,155, 2,119,198,189,231,157,180,225,195,215,204, 25, 25, 25,100,254,148, 39, 44, 39,102,123, +166,144,205, 1,123,155,163, 89,139,137, 99,199,142,213,100,102,102,146,160,160,160, 42, 46,151, 59,245,191,100,178,194,253,132, + 57,113,223,205,103, 70, 5, 75,139, 31,145,217, 10,118,113,113, 41,250,246,219,111,137, 66,161, 40,104,174,217, 26, 63,102, 16, +209,149,159, 34, 99, 34, 67, 27,189, 71,158,126,250,105, 18, 22, 22, 70,102,207,158,221,212,189, 68, 5, 0, 81,219, 59,119, 62, +192,140, 31, 79,111,239,220,249, 64, 0, 16,117,223, 96, 81, 0,222, 94,177, 98, 69,172,217,108,142,253,230,155,111, 98,163,162, +162, 98, 1,204,111,225,177,248,236,211, 79, 63, 37,102,179,153,124,243,205, 55, 36, 42, 42,138, 0, 88,223,146,118,169, 38,146, + 21, 18, 18,242,198,254,253,251, 47, 39, 37, 37, 21, 70, 70, 70,174,236,220,185,179,170,185,154,255, 68,228,114,121,251, 78,157, + 58,237, 8, 10, 10,202,236,210,165,139, 49, 48, 48, 80,239,231,231,151, 30, 28, 28,252,173, 72, 36,242,109,166,108,175,190,125, +251,210,103,206,156, 33, 99,199,142, 37,181, 76, 72,163, 52,230, 69, 8, 33,161,111,191,253,246, 59, 0,200,219,111,191,253, 14, + 33,100,228,125, 63, 49,178,246,223,117, 95,107,204, 83,205,255,245,105,212, 44,245,105,214,247, 25,117, 62, 7, 13, 68,178,166, +253, 97,231, 14, 31, 62, 60,240,240,225,195,103,234,238,220, 83,109,208,103,118, 31, 79,157,174, 48,143,196,127,242, 58,249, 37, +204,139,156, 31,228, 70,146,231,142, 37,121,223,173, 35, 51,186,218,107,199,183, 65,152,173, 70, 43, 54, 54,150,196,198,198,146, +107,215,174,145,180,180, 52, 82, 94, 94, 78,190,255,254,123,218,209,209, 81, 39, 18,137,150, 3,144, 88, 35,166, 84, 42,213,132, + 16, 98, 48, 24,200,210,165, 75,245,247, 35, 85,174, 42,149, 74, 77, 8, 33,101,101,101,100,249,242,229,122,149, 74, 21, 7,192, +195,201,201, 41, 43, 53, 53,149,184,186,186,214,107,102,236,237,237,213, 73, 73, 73, 53,198,201,211,222,222, 62,254,224,193,131, + 38, 66, 8,201,206,206, 38, 14, 14, 14,106, 0,174,142,142,142,215, 15, 31, 62,108, 34,132,144,220,220,220,154,114,171,140,150, + 78,167, 35, 39, 78,156,120,168, 14, 53,229, 71,143, 30,125,200,128, 89,129,171, 74,165,138,253,254,251,239,141, 52, 77,147,248, +248,248, 26,147,232,106,103,103,119,109,239,222,189, 70,154,166, 73, 98, 98,162,213,102,176,117,235,214, 5,132, 16, 98,177, 88, +200,230,205,155, 13, 53,199,180,166,220,104, 52,146, 47,190,248,194,160, 84, 42, 99, 1, 52, 26,125,115,114,114,202, 53, 26,141, +164,172,172,140,244,236,217, 83,115,254,252,121, 82, 81, 81, 65, 8, 33,164,117,235,214, 5, 0,224, 63,112,234,199,151,239,104, + 42, 94,124,107,227, 30,223,208,103, 63, 57,126, 37, 39,123,219,254,152, 88,167,224,209, 79, 88, 19,212, 20,137, 68,203,221,221, +221,245,191,253,246, 27,109, 50,153, 72,102,102, 38,185,118,237,218,131,107,236,230,205,155, 86, 25, 45, 30,143,183,248,242,229, +203, 38,154,166,153,162,162, 34,186,160,160,128, 46, 40, 40,176,212, 53, 90,228,107, 62, 41, 58,250, 50,137,222, 58,199, 40, 16, + 8, 22,255, 61,209, 44,112,201, 22,255,209,100,139,127,236,183,147,157,138, 42,175,237, 34,228,231, 57, 36,229,227, 54,100,241, + 19,138, 74,102,139,127, 44,217, 18, 48,158,124, 48,144,103,147,230,214,192, 81,100,139,127,236,167, 79,249, 20, 95,143,189, 74, +206,156, 57, 67,190, 88,183,130,204, 14,247,172, 98,182,248,199,146, 77,129,227,108,209,172,141, 72, 36,186,115,238,220, 57,114, +246,236, 89,242,225,135, 31, 18,169, 84,154,249, 40,162,122,100,147,159, 15,249,210,111, 32,249,170,131, 59,249,117,224, 63,110, +130, 79,168, 7, 60,135,250, 9,179,139,174,239, 39,164,228, 46,201, 95, 21, 68,158,240,231,183,212,108, 5,187,184,184, 20,166, +167,167,147,252,252,124,178,102,205, 26,162, 84, 42,155,101,182,198,143, 25, 68,116,101, 39, 27, 53, 90,163, 71,143, 38,107,215, +174, 37,102,179,153,244,234,213,203,154, 31, 45,127, 48, 91,254,192,104, 0,239,172, 92,185,242,129,201,218,184,113, 99,236,205, +155, 55, 99,189,189,189,143,180,224, 88,172, 95,185,114,229, 3,147,181,113,227, 70,114,243,230, 77,226,227,227,147,213,146,118, +105,232,208,161, 31,167,165,165, 85, 44, 92,184,112,207,128, 1, 3, 62,185,126,253,122,118,116,116,116,108, 72, 72,200, 19,205, +213,124, 4, 81, 29,222,253,200,142,144, 16,194, 39,132,212,152, 87, 30, 0,126, 77, 64,193, 26, 38, 79,158, 44,237,211,167, 79, +236,164, 73,147,180,223,126,251, 45, 73, 79, 79, 39,113,113,113,100,229,202,149,228,253,247,223, 39, 95,127,253, 53, 25, 55,110, + 92, 85,207,158, 61, 47,143, 31, 63, 94,108, 67, 53,131,124,125,125,203, 15, 28, 56, 64,118,238,220, 73, 4, 2, 65,180,181, 27, + 54,230, 69, 26, 50, 83, 13, 25,172,186,235, 26, 49, 98,141, 26, 54, 43, 62,239,143,166,170,110, 36,164,214,223,191, 70, 70, 70, + 14,252,195,151, 15,193, 71,211,230,125, 44, 78,251,118, 13,212,223,127, 14,110,153, 26,252,202, 98, 24,206, 69,195,124,238, 32, +158,235,221, 91, 34,161,168, 37,182, 94, 48, 66,161, 16, 66,161, 16, 2,129, 0, 90,173, 22,185,185,185,232,215,175, 31,231,218, +181,107,226, 87, 94,121,101,142, 68, 34,201, 4, 48,166,201,187,153,170,142, 72, 95,184,112, 1, 47,191,252,178,104,199,142, 29, + 93,156,157,157,111,208, 52, 45, 4,128,196,196, 68, 76,152, 48, 65,180,107,215,174,142, 30, 30, 30,215, 76, 38,147, 84, 36, 18, +129,203,229, 54,168, 39, 20, 10, 97, 54,155, 69, 29, 58,116,136,187,113,227, 70,112,100,100, 36, 63, 35, 35, 3,169,169,169, 48, +155,205, 66, 63, 63,191,155,215,174, 93,235, 50,114,228, 72,126, 86, 86, 22, 50, 50, 50, 30,212,195,154,250, 26,141, 70,136, 68, + 34,212,238,210,162, 40, 10, 6,131, 1, 66,161,208,106, 45, 30,143, 55, 56, 32, 32,224,230,141, 27, 55, 66, 70,143, 30, 45,184, +122,245, 42,178,179,179, 65,211,180, 48, 48, 48,240,230,141, 27, 55,186, 70, 69, 69, 9,226,226,226,160, 86,171, 97,109, 23, 90, +205,251,110,220,184,129, 73,147, 38, 9,143, 29, 59,214,213,221,221, 61,206, 98,177, 8, 1,224,230,205,155,152, 48, 97,130,240, +248,241,227, 33,173, 90,181,138,107,162, 43,145, 11, 0,102,179, 25,175,188,242,138, 76,169, 84, 34, 43, 43, 11, 12,195,128,166, +105, 0, 64,113,105,241,205, 27, 55,227, 19,159,155,248,212, 64,157,201, 96,184,120, 37,230,118,219,214, 62, 94, 20, 69, 90, 55, + 81,213, 49, 50,153, 44,115,213,170, 85,111,164,167,167,139, 2, 2, 2, 56, 41, 41, 41,168,172,172,132, 64, 32,120,112,141, 89, +187,223, 66,161,112, 80, 80, 80, 16, 79,175,215,131, 97, 24, 0, 32, 28, 78,253, 35, 86,196,101,231, 16,232,106,225, 75, 36,146, + 65,127,203,183,119, 69,144, 35, 24, 12,205, 40, 52,138, 68,118, 94, 10,185,187, 31,144,121, 22,109,156, 69,224,114,184,226,171, +169, 90, 25, 64,134,194,187,200,209, 54, 77,102,104,106,129, 81,100,118,232, 40,247,240,242, 70,113,113, 49, 90,181, 13,128, 94, +232, 44,188,112,183, 74, 14,202, 70,205,223,233,223,161, 67, 7,183,246,237,219,163,168,168, 8, 33, 33, 33,176,183,183,183, 7, + 48,180,217, 95, 58,223,248,136, 80,129,190, 0,103, 21,104,234, 67,152,121,203,112,183, 48,132,108, 9,225,255,147, 76,150, 82, + 46,188,180,107,247,247,158,142,222,129, 64,244,139,112,181, 19,225,171, 87, 67, 28,156, 85,162, 3,205, 52, 91,193,174,174,174, +167, 47, 95,190,236, 36, 22,139,113,237,218, 53, 4, 5, 5, 97,205,154, 53,206,246,246,246,103,155, 23,217, 34, 32, 84,195, 38, +107,192,128, 1,152, 53,107, 22,118,236,216, 1, 7, 7, 7, 76,154, 52,169, 41,179, 69, 18,129, 67,159,198,197,125,179,227,222, +189,195,147,219,181,139,156,228,231,183,116,250, 51,207, 76,125,237,181,215,176, 98,197, 10, 28, 56,112, 0,125,251,246,197,180, +105,211,204,153,153,153,219,155,219, 85,181,106,213,170,217,115,230,204,169,171,105,202,200,200,248,180, 69,237, 82,113,241,205, +184,184,184,196,137, 19, 39, 14,212,235,245,134, 43, 87,174,220,246,245,245,245, 2,208,186,185,154, 45, 48, 88, 20, 33, 68, 12, + 64,122,127,145, 1,144,238,218,181, 75, 53,122,244,104,229,253, 50,201,253,165,201,238,253,160,160, 32,175, 59,119,238,228,204, +157, 59, 55,100,199,142, 29, 18,169, 84,138,178,178, 50,124,249,229,151,120,231,157,119, 64, 81, 20, 8, 33,248,250,235,175,165, + 47,188,240, 66,232,189,123,247,114,124,124,124,172, 25,210, 34,146,203,229,123,151, 46, 93,170,100, 24, 6, 11, 22, 44, 40, 50, +153, 76,179,238,175, 91,104,103,103,119, 9,213,134,187, 49,234,245, 34,181,190, 43, 15,215, 57, 54,145,117,203,234,174, 35,132, + 68, 54,166, 97,227,185,168,239,243,162, 27, 51, 91,181,191,129, 6,213,235, 34,129,206,110,190,254, 40,255,121, 47, 36, 60, 10, + 18,238,253,133, 71,129,147,114, 19,173,196,124,152, 9, 9,110,174,209,170, 89,248,124, 62,180, 90, 45,104,154,198, 59,239,188, + 35, 58,113,226,132, 35,135,195,249,177, 41,157,218,134, 41, 57, 57, 25,129,129,129,212,161, 67,135, 92,103,205,154, 37,169,249, +156,242,242,114,180,111,223,158, 58,122,244,168,203,123,239,189, 39,111,204,204, 80, 20, 5,129, 64,128, 57,115,230, 72,174, 92, +185,226,224,225,225,129,148,148, 20,148,148,148, 64, 46,151, 99,206,156, 57,146,203,151, 47, 59,123,120,120, 32, 61, 61, 29,229, +229,229,144,203,229, 54, 27, 45,129, 64,240,208, 54, 20, 69,193,100, 50,217,100, 12, 84, 42,213,206,216,216, 88,103,149, 74,133, +184,184, 56, 88, 44, 22,168, 84, 42,204,158, 61, 91, 18, 27, 27,235,108,103,103,135,196,196, 68, 16, 66,160, 84, 42,109,170, 35, + 0, 48, 12,131,196,196, 68,180,110,221, 26,103,207,158,117,153, 62,125,186,184,166,252,238,221,187,240,242,242,194,217,179,103, + 93,100, 50,217,206,134,180, 24,134, 65, 94, 94, 30, 18, 18, 18,144,146,146,130,194,194, 66, 20, 21, 21,161,178,178, 18, 22,139, + 5, 0, 32,173,172,136,222,181,231,208, 13,137, 68, 34, 13,242,235,224,125, 51,254, 86,129, 68, 34,145,250,120,123,251, 1, 31, +112, 26, 49,132, 63,102,100,100, 56,190,240,194, 11,130,252,252,124,148,150,150,130,199,227,253,225,218, 18, 10,173, 27, 10,100, +177, 88, 2,197, 98, 49,101, 50,153, 30, 68,192,132, 66, 33,222,216,169, 69,208, 98, 60,180, 60,179,174, 0,132, 54,195,104, 52, + 6,254,229,209, 44,128, 2,101,236, 0,138, 10,185,148, 82,229,208, 63,114,162, 0,169,199, 0,198, 12,112,120, 24,212,217,139, +119,224,102,149, 43, 8, 58,195,128, 0, 66,154,158,249, 69, 0, 10, 48,181, 7,168,238, 39,238, 88, 28,251,142,125, 85,144,147, +147, 3,129, 64, 0,145, 72,132,144,193, 79,242,118,221, 48,187,129, 66, 23,152,224,111,141,230, 67, 97, 71,137,100,209,251,239, +191, 47,171,173, 57,117,234, 84,153, 74,165,122,191,217, 38,171, 74,218, 27, 22, 50, 39, 33, 71,219,122,105,116,126,224,189, 2, +157, 63, 8,153, 11,152,187, 62, 2,179, 53, 72, 36, 18,165, 2,232,215, 34,147,165, 16, 94,220,189,251,123, 79,135, 86,213, 38, + 11, 22, 61,192,151,192,205,217, 14, 95,189, 17,230,224,108, 39,177,213,108, 5,187,186,186,158,186,116,233,146,147, 88, 44, 70, +108,108, 44, 4, 2, 1,196, 98, 49, 58,117,234,132, 45, 91,182, 56, 59, 56, 56,216,108,182, 8, 72,189, 49,223, 49, 99,198,144, + 1, 3, 6, 96,230,204,153,216,190,125, 59,140, 70, 35,150, 46, 93,138,140,140, 12,171,100, 19,129, 67,203,227,226,190, 93,150, +144,144,252,118,112,112,192, 24,153,204, 97,230,164, 73,170,247,222,123,239,240,193,131, 7,191, 25, 57,114,100,209,149, 43, 87, +214, 2,216,107,227,225,165, 0,108, 92,189,122,245,204, 26,227,246,222,123,239,125,125,240,224,193,101, 35, 71,142,204,187,114, +229,202, 92, 0, 27, 91,210, 46, 49, 12, 19,253,227,143, 63,222,144, 72, 36, 82,127,127,127,239,248,248,248, 2,137, 68, 34,245, +246,246,246, 27, 56,112, 32,167, 57,154,205,193,197,197,101,200,165, 75,151,130, 80, 61,105, 76, 84, 99,180,226,227,227,237, 42, + 42, 42,236,228,114,185,157,187,187,187,162,198,108,141, 29, 59,214,142,199,227, 53,122,221,106, 52,154,131, 11, 23, 46, 84,141, + 29, 59,182,230,127,156, 59,119, 14,219,183,111,135, 76, 38,123,232,189, 81, 81, 81,120,249,229,151,237,141, 70,227,143, 86, 84, +119,202, 43,175,188,226,239,234,234,138, 69,139, 22, 25,114,114,114,134, 0,200, 0,160, 10, 15, 15,255, 56, 62, 62,190,103,104, +104,232, 30, 0,221, 26,187,247,234,243, 34,181,141,142, 53,101,205,125,191,181,102,171, 78, 81,131, 57,180, 30, 50, 90,145,145, +145,103,208,192, 76, 42, 83,137, 26, 34,208,144,112, 41, 72,185,181,204, 22, 24,240,202, 11, 64, 53, 99,150, 74,125, 95,134, 66, +161, 16, 92, 46, 23, 70,163, 17,214, 62,168,186,198, 20, 40,149, 74,200,229,114,232,116, 58, 88, 44, 22,136,197,226, 26, 51, 2, +165, 82, 9, 62,159, 15, 62,159, 15,177, 88,252,135,104, 82,221,104,142, 64, 32,128, 76, 38, 67, 94, 94, 30, 50, 50, 50,192, 48, + 12,228,114, 57,100, 50, 25,132, 66, 33,114,115,115,145,155,155, 11, 66, 8,100, 50, 25,100, 50, 25,108, 25,112, 77,211,116,189, + 95,254,102,179,217,166,136,150,197, 98,193,237,219,183,145,153,153, 9,177, 88,252, 96, 95, 69, 34, 17,238,222,189,139,252,252, +124, 72,165, 82, 40,149, 74,168, 84, 42,171,117,107,246, 69,161, 80, 64, 34,145,160,180,180, 20, 90,173,246,193, 49, 85, 42,149, +144,201,100, 40, 47, 47, 71, 65, 65, 65,163,251, 78,211, 52,114,115,115, 81, 88, 88,136,172,172, 44, 20, 21, 21, 61,104,128,238, + 71,141, 90, 22,216,169,168, 64,113,113,241,131, 72,100, 67,139, 53, 48, 12,131,202,202, 74, 92,186,116,137, 98, 24, 6,101,101, +101, 76, 97,126, 62, 61, 35, 87,136, 3, 31,108, 34,223, 31,187,174,223,117, 36, 86,183,239, 84,130,110,227,190,155, 58,113,207, + 15, 45,248, 59,248, 34, 88, 5, 51, 63,162, 72, 99, 22, 21,154, 4, 42,215,224,112, 32,245, 40,192,225, 1, 98,123,244,234,216, + 6, 25,165,180, 44, 73,109, 20,131,194, 48,108,244,179,183, 74,147,230, 15, 45,172, 52,139,210, 77,206,202,192,206,221,160, 86, +171, 33, 18,137, 32, 18,137,208,189,111, 56, 82,139,105,233,173, 28,157, 20, 4, 17, 86,105,254, 78, 91,185, 92,222,187, 95,191, +126, 84,109,205, 17, 35, 70,128,162,168, 78, 0, 2,108,106,228,214,183, 21,194, 36,237, 5, 30,153,115, 43, 79,235,113, 32, 94, +239, 55,106,204,147, 14,159,157, 44, 8,188,157,111,240, 5, 49,207, 3, 49,117,107,129,217, 26,168, 80, 40, 14,111,216,176,193, + 87, 44, 22, 31, 5,208,191, 57, 34,114, 9,119,243,162,153, 19, 61,237,107, 76,150, 89, 11,240, 36, 0, 95, 2,240, 36,112,115, +113,194,146,151,135, 58, 72,197,252,125, 54, 24,214, 93, 27, 55,110,116,174,107,178,106,150,144,144, 16, 44, 94,188,216,217,193, +193, 97,167, 53,122,171, 86,174, 32,101,229,229, 0, 1, 42, 42, 52, 88,181,114, 69,105,205,186,177, 99,199,146,254,253,251, 99, +230,204,153, 88,182,108, 25,142, 28, 57,130, 94,189,122, 97,218,180,105, 8, 13, 13,109, 74, 58, 66,165, 82,237, 8, 15, 15,191, +148,171, 80,188,156,215,173,155,240,148, 74, 85, 62,164,188, 92,229, 19, 31,111,242, 7,110, 2,248, 34, 59, 59,251, 9, 27, 76, +214, 51, 74,165, 50,118,200,144, 33, 38,133, 66,145,185,102,205,154, 25,179,102,205,194,138, 21, 43,176,112,225,194, 47, 1,188, + 4,224,221,236,236,108,143,198, 76,214,159,213, 46,253, 89,109, 29, 77,211, 89,123,247,238, 13, 53,153, 76, 94,247,187, 7, 69, +101,101,101,202,146,146, 18,133,201,100,146, 49, 12, 35,179,179,179,147, 3,144, 62,247,220,115,188, 91,183,110, 5, 90, 44,150, +156,198, 52,243,243,243,159, 93,176, 96, 65, 81, 81, 81, 17, 0,160, 83,167, 78, 40, 43, 43,195,252,249,243,241,250,235,213, 19, +130,187,118,237, 10, 66, 8,212,106, 53, 86,173, 90,165,206,207,207,127,222,138,234,182,235,208,161, 3,226,227,227,113,251,246, +237,147, 0, 24, 84,143, 99, 45,191,126,253,250,141,194,194, 66,236,220,185, 83,224,233,233,121, 16, 13,164,120,105,204,139, 52, + 7,138,162,162,155,179, 93, 77,228,170,190,136, 88, 3, 52, 30,209,138,140,140,164,106,191, 62, 20, 49,162, 16,151, 25,115, 22, + 14,193,221, 30,138,102, 73,185, 20, 36, 74, 21, 82,179, 50, 32, 0,149,240,168,140, 86,105,105, 41,102,204,152,161,123,246,217, +103,139, 25,134,121,210, 90, 83,160, 82,169,160, 82,169,112,235,214, 45, 50,110,220, 56,245,154, 53,107,116,181,141, 86,114,114, + 50,137,136,136, 40,120,255,253,247, 53,141, 25,173,154,136,214,242,229,203,117,131, 6, 13, 42, 76, 72, 72, 32, 53,102, 74, 46, +151, 99,213,170, 85,186,176,176, 48,245,213,171, 87, 73, 77,153, 45, 17, 45, 14,135,243,192,104,213,222,134,195,225,128, 97, 24, +155,140, 86, 85, 85,213,179, 35, 71,142, 84, 39, 38, 38,146,154,253, 84,169, 84, 88,179,102,141,110,232,208,161,234,132,132, 4, + 82, 83,166, 84, 42,173, 54,131, 53,159,175, 80, 40,160, 84, 42,113,235,214, 45, 18, 17, 17,161, 94,191,126,189,190,118,249,237, +219,183, 73, 84, 84,148,186,178,178,242,217,198,204, 75, 77,119,158,197, 98,129, 94,175, 71, 81, 81, 17,178,178,178, 30,132,211, +117, 50,229, 19, 19,159, 30,213, 69,167,211,105,111, 37,223,201,236,212, 49,200, 69,167,211,105, 51, 50, 51,147,129, 15,152, 70, +180,159, 12, 14, 14, 46,158, 49, 99,134,174,180,180,180,197, 70, 75, 40, 20, 38,242,120, 60,210,191,127,127, 98, 52, 26, 73, 86, + 86,150,185,168,180,212, 18,240,201, 39, 36,225,141, 55, 40, 73, 76,140, 72, 46,151, 83,247, 53, 57, 41, 41, 41,140, 68, 34, 73, +252,203,141, 22,135,113, 3, 69,250,253,118, 71, 99, 55,116,212, 4, 33,149,127, 5, 48,105, 0,145, 61, 32,178, 7, 79,230,136, +225,253,187,114,191,189, 84,225, 6,194,244,129, 64,228,213,164, 38,159,184, 2, 76,255,159,147,245,246,253,198,207, 22,150,148, +148,128,203,229, 62, 48, 69, 82,153, 12, 67,198, 60,199,249,250,138,193, 13, 32,125, 65,113,189,108,184,215,223, 90,180,104,145, +160,180,180, 20, 28, 14,231,119, 77,169, 20,211,167, 79, 23, 41,149,202,133, 86, 55,126,123, 3, 5,224,139,122, 1,228,245,164, +124,189,199,193,155, 58,255,121,203,191,146, 4,119, 13,197, 43,131, 92, 36,203,163, 11,130,111,100,233,218, 0,244, 27,176, 24, +187, 55,195,108,245, 87, 40, 20,209, 49, 49, 49,210, 17, 35, 70, 96,213,170, 85, 50,137, 68,114,180, 57, 13,127,149,134,158,245, +209,250,255,169,227,214, 14, 3, 76, 85,213, 6,171,214, 82,160, 97,176,248,171,211,229,102, 51,153,104,173,166, 78,167,155,242, +210, 75, 47, 21,239,219,183,239, 15, 38, 75, 44, 22, 35, 45, 45, 13, 75,151, 46, 45, 41, 41, 41,105,242, 75,113,205,234, 85,177, +241, 55,126,193,215, 95,126, 4,128, 96,195,154, 87,113,241,183,221,118,131, 6, 14, 32,173, 91,183, 38,161,161,161,152, 49, 99, + 6,150, 44, 89,130,164,164, 36, 56, 57, 57,225,213, 87, 95,197,192,129, 3,177,122,245,234,198, 26,169,136, 89,179,102, 45,205, +206,206,246,255,249,231,159,121,133,133,133, 46,171,183,109, 43,255,161,188,188,100, 89,124,124,210,187, 29, 59,118,120,187,115, +231,231, 27, 73,253, 80,175,201,154, 57,115,230,174,236,236,236,144,147, 39, 79,242, 11, 11, 11,189,102,206,156,137,149, 43, 87, + 98,225,194,133, 91, 0,188, 2,235, 38,188, 88,221, 46,113,185,220, 39,158,124,242,201, 46, 58,157, 78,155,148,148,148,217,177, + 99, 71, 23,157, 78,167,205,204,204, 76, 62,115,230, 12,211, 28,205,230, 80, 92, 92,124,111,231,206,157,201,179,103,207, 14,201, +206,206, 14, 4,224, 88, 89, 89, 41,171,172,172, 20, 25,141, 70,137,189,189,189,125,215,174, 93,157,166, 77,155, 38,191,126,253, +122, 96,118,118,182,230,126, 20,169, 65, 76, 38, 83, 82,105,105,105,228,176, 97,195,202, 74, 75, 75,209,185,115,103,140, 26, 53, + 10,110,110,110,240,240,240,192,232,209,163,225,231,231,135,226,226, 98, 76,156, 56,177,164,176,176,112, 24,128, 20, 43,170,123, + 47, 63, 63, 31,125,250,244,193, 71, 31,125, 20,249,212, 83, 79, 37,244,239,223,191,162, 99,199,142, 90, 47, 47,175,128,207, 62, +251, 12,158,158,158,216,187,119,175,187, 72, 36,218, 89,143,201,106,208,139, 0, 40,188,111,120,140,117, 94, 11,155, 88,103,237, +182,245,254,109,197,251,234,154,173,218,203, 31,186, 14,235, 63, 33,192,226,237,123,191,213, 11,189,219, 67,229,223, 5, 82,177, + 24, 18,161, 16, 18,123, 71, 24, 24, 6,219,210,242,181, 85,132, 44,180,245,226,169,251, 69, 72, 81, 20, 62,255,252,115, 75,239, +222,189,245,167, 79,159,222,160,211,233,188, 81,157, 85,214,106, 83,176,126,253,122,237,156, 57,115,110, 20, 20, 20,116, 17,139, +197,198,154,242, 13, 27, 54,104,159,123,238,185,248,236,236,236, 16,169, 84,170,109,104,124, 86,109,163, 37, 18,137, 12, 5, 5, + 5,161, 83,167, 78, 77,252,226,139, 47,170,164, 82, 41,100, 50, 25, 68, 34,145,177,160,160,160,203,140, 25, 51,110,172, 92,185, + 82, 43,145, 72, 32,147,201,108,234,150, 35,132,252,193, 80,213, 46,183, 22,139,197,114,186,160,160,160,203,156, 57,115,174,127, +246,217,103, 85, 53, 6,168,118, 29, 87,175, 94,173,149,203,229, 54, 69,180,106,222, 39,147,201,176,110,221, 58,237,236,217,179, +111, 20, 20, 20,116, 17,137, 68,198, 90,229, 85,179,102,205,186, 94, 80, 80,208,197, 98,177,156,110,228,215, 24, 93, 81, 81, 1, + 30,143,135,248,248,120,131, 64, 32, 0,135,195,193,221,187,119, 31, 52, 62, 14, 14, 14, 65, 93, 58,117, 12,248,223,174,189,103, + 36, 2,145,168,119,104,247,192,148,244,140,108, 66,168,244, 38,170,186, 95,167,211,121,159, 62,125,122, 67,239,222,189,245,159, +127,254,185,165,161,200,150, 53, 24, 12,134, 51,215,174, 93, 51,139,197, 98, 42, 47, 47,207,194,229,114, 65,211, 52, 49,132,134, + 26, 58,125,246, 25,185,245,246,219,148, 82, 38,227, 9, 4, 2, 72,165, 82,234,216,177, 99, 70,173, 86,123,230,175, 55, 90,144, +130,130,228, 78,129, 65, 33,230, 88, 40, 36,239,175, 54, 89, 98, 59, 64,108, 15,136,237,225,233,233,133, 43,105, 90, 5, 56, 16, +130,182, 34,135, 24, 33, 50, 80,144,198,171,161,224, 11, 37, 84,126,126,254, 3, 67, 84,179,248,182, 15,196,181, 12,141, 28, 20, + 17,129, 11, 91, 82,144, 68, 58, 58, 58,242,242,242,242,254,160, 25, 20, 20,196, 53,155,205,214,167,118,201,165,221, 1,102,102, +114,190,222,253,167, 27, 85,254,111, 44,251, 90, 34,161,203,128,152,245, 8,110,235,129, 55,198,119, 21,190,119,176, 48,248,106, +186,182, 45,184,228, 21, 48,132,239,189, 76, 0, 0, 32, 0, 73, 68, 65, 84, 26,103, 27,234,217, 79,161, 80, 28,189,122,245,170, + 84,161, 80, 32, 37, 37, 5,161,161,161,216,186,117,171, 84, 42,149, 30, 1, 96,211,120,188,203,106,100,104, 42,233,222,111,237, +205,204,143,203,179, 60,100,178, 10,171, 8, 94,250,244, 96, 89,105,133,254,201, 75, 89, 13,223, 63,245,112,189,172,172, 44, 98, +225,194,133,197,133,133,133, 15,153,172,140,140,140,154, 47,197, 65, 0,154,252,241,251,235, 47,199, 67, 62, 89, 50, 7, 87, 99, + 18, 48, 60,242,117, 92,139,187,135,119, 23,140,129,157, 82,130,211,167, 79, 99,236,216,177,248,232,163,143,112,247,238, 93,124, +255,253,247,212,214,173, 91,169, 75,151, 46, 81,159,126,250, 41,213,196,144,134, 73,203,150, 45,195,213,171, 87, 49, 98,196, 8, +156, 61,123, 22, 37, 37, 37,216,125,244,232,157,157,119,238,188, 91, 51,102,171,129,212, 15,245,162, 84, 42,231, 45, 91,182, 12, + 49, 49, 49, 15, 52,139,139,139,177,108,217,178,108, 0,175,218, 98,178,108,105,151, 58,119,238, 28,176,107,215,174, 51, 98,177, + 88, 20, 26, 26, 26,152,150,150,150, 13, 32,189, 25,154, 21, 45,233,169, 42, 42, 42,186,176,117,235,214, 75,131, 7, 15,150, 78, +153, 50,197,249,192,129, 3,142, 90,173,214, 67, 36, 18,185, 24,141, 70,225,237,219,183,185, 63,252,240,131,219,173, 91,183,210, +244,122,253, 21,107,142, 71, 65, 65,193,149,164,164,164, 97,157, 59,119,190,189, 97,195,134,108,119,119,119,102,218,180,105,120, +233,165,151,224,236,236, 76,175, 91,183, 46,179,127,255,254,241,247,238,221, 11,215,106,181, 55,173,172,235, 55,159,124,242,201, +249, 93,187,118, 97,212,168, 81,248,244,211, 79,177,123,247,110,252,242,203, 47,146,223,126,251, 77,184,117,235, 86, 8, 4, 2, +244,234,213, 11, 17, 17, 17, 67,238,119,119, 90,251,189,116,149,162,168,104,138,162, 78,214,121,189,218,216, 58, 27,182,109,232, +239, 70,223, 87,167,154, 91,235, 44,214, 51,169, 45, 62,152,222, 81,161,189, 48,185, 23,201,159,214,143,168, 39, 4,146,115, 3, + 29,200,212,118, 84,213,148,102,166,119,208,233,116, 15,150,125,251,246, 17, 55, 55,183, 42,133, 66, 97,115,122, 7, 55, 55, 55, +117, 69, 69, 5,233,209,163, 71,137,179,179,243,131, 84, 4,238,238,238,234,170,170, 42,210,171, 87,175, 18, 23, 23,151, 7,233, + 29,188,188,188,178, 8, 33,196,199,199, 39,183, 33, 61,139,197, 66,220,220,220,106,102,232,241, 29, 28, 28, 54,245,236,217,179, + 68,173, 86, 19,119,119,247, 7,169, 19,156,157,157, 87,133,134,134,214, 45,111,170,190, 89,217,217,217, 36, 59, 59,155,180,106, +213, 42,183,118,121, 70, 70, 6,201,200,200, 32, 94, 94, 94, 54,167,119,112,118,118, 94, 89, 79, 93,154, 85, 71,111,111,111,181, + 78,167, 35,125,250,244,121,232,152,122,123,123,171,245,122,125, 77,185, 85,233, 29, 36, 18,201, 43, 98,177, 56, 87, 44, 22,231, +138, 68,162,165,173, 91,183, 46,216,179,103, 15, 89,183,110, 93,205,148,116, 56, 7, 69,245,110,223,231,249,119,157,131, 70,207, +107, 73,122, 7,133, 66,113,202,205,205,173,106,223,190,125, 15, 93, 95, 58,157,206,234,244, 14, 18,137, 36, 91,163,209, 48,106, +181,218,124,254,252,121,109, 76, 76,140, 54, 62, 62, 94,155,150,150,166, 43, 46, 40, 48,169,213,106, 93,121,121,185,225,198,141, + 27, 6,169,244,239, 73,239, 64,182,250,181, 39,155, 2, 14,222,251,200,247,214,156, 1, 82,253,205, 37, 93, 8,249,113, 44, 33, + 71, 94, 34,228,244, 91,228,202,150,105,164,143,175,136, 62, 63,191, 85, 50,217,236,255,147, 53, 41, 25,200,214, 78,237,201,166, +128, 35,119, 62,244,189, 53,165,191,135,126,219, 23,235,200,229,203,151, 73,124,124, 60, 73, 73, 73, 33, 71,246,239, 33,125,218, + 74,171, 53, 55, 5, 28,180, 49,205, 67, 95,145, 72,164, 89,179,102, 13,185,116,233,210, 3,205,131, 7, 15, 18,169, 84,170, 5, +172,155,181, 76, 0,138,108, 10, 26, 99,249,194,255,183,247,134,202, 43,139, 15,191, 69,200,205,111, 9,217, 26, 76,200, 55, 61, + 9,217, 51,146,144, 67,207,147, 75,235,198,147,190,190, 2, 51,217,236,127,150,108, 9,178,122,176, 61,159,207,175,216,183,111, + 31,201,205,205, 37,103,207,158, 37, 49, 49, 49, 36, 49, 49,145,100,102,102,146,232,232,104,194,231,243,245,104,198, 99,203,122, +186,194, 39,188,131, 32,239,198,242,190,132, 28,152, 72, 10,119, 78, 34,145, 29, 21, 37,189, 90,181, 40, 31, 93, 87, 71, 71,199, +162,232,232,104,146,150,150, 70,206,156, 57, 67, 92, 92, 92,138, 0, 88, 61, 94, 54,114,120,127, 66,140, 55, 72,216,128,142,164, +115,231,142,100, 96,223, 14, 36,231,222,122, 18,218,173, 53,217,180,105, 19, 81,171,213,164,117,235,214,196,214,138,133,135,135, + 95, 38,132,196,142, 24, 49, 34, 22,192,177,240,240,240,216,212,212,212,216,208,208,208, 75,104, 60,245, 67,131, 12, 25, 50,196, + 68, 8, 33, 35, 70,140, 32, 0,114,195,195,195, 73,106,106, 42, 9, 13, 13, 53, 54,231,224, 89,211, 46,133,132,132,244, 30, 60, +120,240,187, 33, 33, 33,243,172, 73,239,208,132,230,163, 74, 66,205, 69,117,242,207, 32, 0,221,239, 47,129,247,203,184, 45,208, +124,158,207,231,111,115,112,112,248,197,222,222,254, 52,151,203,221, 10, 96, 50,154,151,223,140,115, 63,194,120,194,217,217,249, +110,231,206,157,117,195,134, 13, 35,195,135, 15, 39, 51,103,206, 36, 12,195,144, 61,123,246,144,143, 62,250,136,180,115,116,180, +172, 3,138, 54, 3, 47,128,165, 58, 97,233, 11,109,169, 51,207,182, 65,229,196, 54,208,188,216,142,178, 38, 97,105,120, 67, 70, +139, 97, 24,146,156,156, 76,194,194,194,170,100, 50, 89, 14,172, 79, 88,250,144,166,147,147, 83,140,139,139,203, 31,146,104,214, + 42,127, 40, 97,169,139,139,203, 5,119,119,119,181,179,179,243,181,250, 52,157,156,156, 98,220,221,221,213, 78, 78, 78, 15, 37, +247,228,114,185, 35,156,156,156,114,234,150,243,120,188,193, 46, 46, 46, 89,117,203, 27,216,119,184,185,185,101,229,230,230,146, +194,194, 66,226,237,237,157, 91,215,128,229,231,231, 63,100,192,172,209,108,170, 46,141,212,177, 94, 77, 43,142,105,115,206,123, + 13,126,158,158,158, 5,171, 87,175, 38,114,185,252,161, 41,207,254, 3, 94, 92,116,249,142,166,226,165, 5,155,246,212,147,176, +212,218,228,160,195,100, 50, 89, 78, 88, 88, 88, 85,114,114, 50, 97, 24,134, 48, 12,211,144,209,170, 79,243,137,238,221,187, 23, + 23, 21, 21,209,149,149,149,150,172,172, 44, 67,106,106,170,110,201,146, 37,166,194,194, 66,189, 70,163, 49,198,197,197, 25,220, +221,221, 11, 1, 60, 97,235, 57,106, 38,225,117,187,207,200,150,192,190,100,115, 96,116,226,251, 62,183,159,239, 41, 51,196,174, + 30, 65,200,233,183,200,165, 77, 47,145,222,190,194,106, 67,180, 37,224, 40,249,218,111, 0, 89,223, 86,104,149,230,182,118,253, +201,150,128,163,183, 22,251,220, 30,219,205,217,184,235,219, 45,228,238,221,187,228,224, 15, 59, 73,175, 54,247, 77,214,230,192, + 19,100, 83, 96,152, 53,154,245,153,173,175,190,250,138,220,189,123,151,252,244,211, 79,214,154,172,240,250,140,214, 59,225,242, +178,151,122,138, 13, 19,187, 10,141,163,131, 5,166,136,246, 2, 75, 31, 31, 30,221,197,157,195, 4, 58,131, 68,248, 75, 12,100, +179,255, 89,178, 57,112,152,181,245, 20, 10,133,153,168,149, 83,167,238, 34, 18,137, 10, 27, 49, 90,225, 77,154, 45, 63, 81,222, +169,143, 6,147, 81,157, 21,197, 86,154,172,166,174,165,174, 78, 78, 78, 69,223,124,243, 13,113,117,117, 45,180,210,100, 61,208, +140,138,140, 32, 25,247,142,144,159,246, 44, 35, 97, 3, 2,201,142,175,230,144,203,103,223, 39, 35,135,135,145,240,240,112, 82, + 84, 84, 68, 6, 15, 30, 76,108,173,167, 74,165,218,161,209,104, 98,143, 31, 63, 30, 27, 30, 30, 30,187, 99,199,142,216,115,231, +206,197, 74,165,210, 29, 53,193,137,186,102, 43,240,143,237,127,120,157,136, 86,108,101,101, 37, 57,126,252, 56, 9, 15, 15, 39, + 59,118,236, 32,231,206,157, 35, 82,169, 52,182,185,247,145,181,237,210,208,161, 67, 23,165,165,165, 85, 44, 94,188,120, 79, 61, + 9, 75,173,213,188,251,136,234,249, 72,218,144,191, 65, 83, 33,145, 72, 98,111,220,184, 65, 74, 75, 75, 73, 71, 87, 87,242, 9, +151, 75,178, 5, 2,146, 43, 16,144, 77, 64,201,191,192, 38, 77,107,168,235,240,207,166, 94,163,165,215,235,201,252,249,243,141, + 98,177, 88, 43, 16, 8,108,125, 4,207, 99,125, 17, 58, 57, 57, 93,112,117,117, 85,187,186,186, 62,100,246,106,151, 59, 57, 57, + 93,251,151,223,128,126, 2,129, 32,131,207,231, 63,252, 8,158,160,168,222,237,250, 78, 89,232, 26, 28, 53,188,133,245, 20, 8, + 4,130,119,196, 98,177,118,254,252,249, 70,141, 70, 99,139,209, 2,128,161, 82,169, 52,103,251,246,237,186, 59,119,238,152, 75, + 74, 74, 44,151, 47, 95, 54,199,196,196, 24, 63,248,224,131, 74,169, 84,154,131,134,211, 18,252, 37,199,147,172,111, 43,172, 49, + 91, 55, 23,250, 36,142,234, 40, 53,109,157, 27, 65,122,183,174, 99,178, 26,206,228, 94,191,230,125,179,117,253, 61,239,196, 48, + 63,185,101,217,194, 55, 72,175, 54,146,135, 77,150, 13,154,117,205,150, 84, 42,173,124,255,253,247,109,137,100, 61,108, 8,183, +249,123,147, 45, 1, 59,170, 77, 84, 19,203, 38,255, 47,201,231,254,222,255,148,251,168,167, 43,124,134,248,137, 18,108,136,100, + 89, 83,207,174,246,246,246,183,109,136,100, 61,208,252,252,243, 13,100,210,132,161,228,222,237,125, 68, 83,124,132, 92,187,184, +134,140,139, 10, 33,189,122,133,146, 45, 91,182,144,164,164, 36,210,163, 71, 15,210,140,122, 70, 76,159, 62, 61, 54, 53, 53, 53, + 54, 37, 37, 37,246,220,185,115,177, 99,198,140,137, 5, 16, 81,187, 39,168,198,108,153,198,141, 51,116,229,112,222,104, 66,243, +153,233,211,167,147,212,212, 84,146,146,146, 66,206,157, 59, 71,198,140, 25, 67, 96,219,227,123,154,213, 46,133,132,132,244, 14, + 11, 11, 91,216,173, 91,183,225,143, 74,243, 63,104,180,100, 99,199,142,101,104,154, 38,195,135, 15,167, 63, 3,202,182, 82,148, +122, 43, 69,169,183, 0,133,255,246,136,214,159,253,192,207,112, 0, 39,107, 23,136,197, 98,181, 94,175,119,150,203,229,251, 53, + 26,205,108, 84, 79,139,108,145,230,159, 81, 79, 86,243, 95,161,233, 46,151,203, 55,104, 52,154, 49, 98,177,184, 80,175,215,187, +218,160,105, 39, 18,137,222, 16,139,197, 97, 90,173,214, 15, 0,100, 50, 89,178,193, 96,248, 69,167,211,173, 5, 80,246,119,239, + 59, 89,223, 86, 8,161,176, 59, 8,222,142,205,172,106,179,236,120,137,207,220,193,246,153,125,218,201,210,192,103, 62, 5,101, +184, 66,189,144, 97,176, 89, 83, 66,133,130,230,191,125, 37, 93,219,250,211,159, 43,125,230,133,201, 51,251,180,149,103,130,224, + 83,136,180, 23,109,213,172,107,182,100, 50,217,246,170,170,170,151, 1,252, 98,235,190,147,189,129, 2, 84,153, 61, 97,230,118, + 4,105,228, 17, 62,132,104,193,225,198, 35, 31,106,234,131,219, 38,246, 62,170, 95,243,139, 47, 54,146,147, 63, 31,129, 65, 91, +130,188,130, 10, 76,154,252, 34,186,118, 13,129,147,147, 19, 62,249,228, 19,180,111,223, 30, 31,125,244, 17,213,140,122, 70,200, +229,242, 73, 1, 1, 1,109,111,221,186,149,162,213,106,191, 3,112,162,238,247, 79, 0, 16, 38,229,241,186,232, 44,150,179,183, +129,152, 38, 52,159,145,203,229,243, 2, 2, 2,130,111,221,186,149,160,213,106, 87, 3,216,205,182,117,143,135, 38,135,195, 89, +235,227,227, 51, 46, 45, 45,237,109, 0,187,240, 31,226, 47, 55, 90,172, 38,171,249, 24,106,214,220, 39,228,159, 86,207,223,205, + 22, 51, 27, 20,218,128, 80,217, 16, 48,235,154, 48, 89, 77,107, 74,168, 80, 88,120,175,131, 66, 43, 16,228,131,112,214, 54, 97, +178,254, 90,147, 9, 80,248,160,145,246,235, 3, 16,170,225,243,197, 94,243,245,176,104,209, 34,114,236,216, 49, 72,165, 82,232, +116, 58, 12, 27, 54, 12, 31,127,252, 49,197,182, 33,172,230, 95,168,249,175,132,199, 30, 2, 22,150, 38, 33,255,212,138, 81,175, +165, 24,201,222,192,171, 40,226,206, 7, 7,109, 0, 75, 6,170, 44,249,212,107, 25,198, 22,106, 94, 70, 17, 53, 7, 92,248, 65, +104,185, 7,141, 49,159,122,181,249,154,127,194, 47, 68,130, 15,254,185,231,229,113,164,174,169,138,137,137, 97, 15, 10, 11,139, +245, 76,195,195, 51, 13, 31,252,207, 26, 45, 22,150,199, 28,234,169,219, 38, 0,217,247,151,127,172, 38, 11, 11, 11,203,127,208, +112,129, 66,195, 3,218,108, 9, 9, 54,103,160,221, 73, 86,179, 89,154, 92, 0, 42, 0,118,168,206, 65, 82, 51,165,183,169, 52, + 27,195, 1,152,217,227,201,106,178,154,172, 38,171,201,106,254,205,154, 77,105, 63,142, 93,146,245,205, 50,220,250, 87,124,112, + 56,171,249, 72, 25,198, 30, 79, 86,147,213,100, 53, 89, 77, 86,243, 95,170,249,175,132,195, 30,130,199, 10, 49,123, 8, 88, 88, + 88, 88, 88, 88,254,113,132,220,127,117, 71,117,116,203,189,102,197,223, 58, 70, 75,226,216,193, 29, 60, 78,103,138, 33, 1, 0, + 64, 56, 84, 34, 44, 76,156,174,248, 78, 94, 75,181,229, 30,126, 14, 4,194,189, 20,140, 79,105,114,147, 91,156, 12,173,163,159, +114,156,171,147, 98, 82,126,113,249,246,132, 36,205, 1, 91,182, 85,169,124, 84, 98, 7,251,241, 6,147,185,163, 80, 32,200, 52, +149, 85,108, 45, 45, 77,169,108, 70, 53, 28, 26, 91,249,193, 7,132, 58,156,119,141, 18, 72, 77, 28, 71,165,128,210, 64, 67, 52, +121,114,198,183, 44,141,252,240,195, 83,196,214,115, 67,113, 48, 72,166, 80,116, 19,137,165,161, 82,133,125, 7,134, 0, 37,234, +156,116,163,217,114,142, 54,106, 99, 9,131, 95, 31,197,185, 98, 97, 97, 97, 97, 97,249, 23, 24,173,107, 0, 70,162,186,203,176, +233,193,240, 62, 65,253,174,138,197, 18, 95, 0, 96, 8, 1, 67,128,170,138,178,216,252,148,152, 97, 0,224,212, 58,228, 56, 95, +172,236,198,144,234,245, 52, 3, 88, 76,250,180,138,140,203, 61,172,169,145,204,217,111,236,224,240, 33,227, 34, 35, 71,250,119, +234,216,169, 29, 0,220,140,191,121,239,240,225,232,164,211, 39,169,125, 85,133,201, 63,181,100,143, 9,196, 31,119,239,222,181, + 95, 76,204,181,143, 0,204,108,233, 17,116,116,148,207, 62,241,227,252, 1, 67,198,173,146, 1,182, 25, 45,177,131,253,248,209, +163,158,232,250,230,107,211, 57, 47,205,255,196,247,234,249, 95, 87,200,221,131,203, 8, 99, 62, 81,165,158,240, 91, 99, 15, 78, +174,235, 31, 27, 50, 88,223,149, 28,227,172,251,166,183,189,174,228,222, 4,194,208, 19, 40,138, 2, 87, 40,253,193,185,109,191, + 61,118,131,230,150, 2,176,122,198,152,210, 61, 40,220,197,221,107,223,132, 23,223, 16, 75, 85,174, 60,112, 5, 0, 40,228,166, +223,198,233,221,203,236, 95,255,240,171,144,243,113, 25,150, 83, 63,110,212, 83, 2,254, 56,109,222, 45,118,138, 47, 11, 11, 11, + 11,203,127,153,232,251,230, 42,186,238,138, 6,141,150, 88, 44,241,189,244,235, 97,135,159,206,101, 1, 0,194, 67,220,240,238, +146, 13, 17, 59,214,199, 36, 1, 64,239,193,145,126, 31,189,243, 26, 46, 36, 20,128, 16,130,174,237, 29, 49,124,244, 83,214, 25, + 15,215,192, 30,227,199, 63,249,236,252,249,243,162,238,222,189,155,190,107,215,174,223, 0,160,255,128, 1,237, 63,249,228,147, +167, 87,217, 59,136,190,255,225,199, 28,189,250,246,213,230,236,173,216,163,173,167,127,135, 54,147,190,255,122, 3,103,208,176, + 39, 39,166,163,106,153, 62, 55, 37,199,154,109,157,156,156,230,240,249,124, 21, 80,253, 52,246, 26, 76, 38,226, 6, 0, 22,154, + 81,216,123,248, 87,114, 5, 98, 90, 36, 18,220,170,212,104,182, 87,228,220,222,214,152,166,193,108, 14,126,253,213, 23, 56,215, + 83,138,225, 27,220,159,187,110,217,123, 96,104,179,253, 27,239, 44, 25, 31,115,249,123, 84,169,113,198,202, 93,227,215, 45,240, +244,236,197,253,120,153,124, 40, 69,225,121,159,222, 47,142,249,232,219, 31,248,221,219, 43, 97, 48, 51, 56, 26, 91,220,123,211, +218,143, 87,158,223, 52,242, 16,128, 45, 0, 78, 1,104,210,212, 57, 56, 58,124, 55,103,225, 90,121,149,241,247,217,222,247, 77, + 22,190,220,190, 23, 55,178, 24, 4,248, 7,240,220,230,172,144,111, 89, 50,237, 91,109,245,115,182, 88, 88, 88, 88, 88, 88,254, +171,228,225,225,193,239, 91,155, 52, 90, 0, 32,151,240,144,148,154, 15, 0,176,147, 0,179, 95,153,130,226,162, 66, 63,163,133, +193,139, 83, 38,227, 90, 98, 30,146,210, 10, 65, 8,129,159,151,213, 15,225, 6, 23, 76,247, 23,167,190, 56,240,248,137, 19, 87, + 22, 45, 92,244, 63,138,194, 69, 0,216,178,245,203,222,139,223, 95,252,242,228, 41,147,135,254,240,195, 15, 9, 0,154,101,180, +120,148, 98,195,202,229, 75,133,217, 69,122,253,156,249,111, 51,243,230,206, 89, 7,224, 73,171,156, 12,159,175,202,206,206,150, +115, 56, 15, 15, 95,251,116,233,219,103,135,142, 91,117, 39, 61,179,236,250,241,131, 7,123, 4, 5, 5, 33, 59, 39,191,239,138, +207, 54,119, 57,122, 92,242, 66,101,133,110,156,182,232,118,189, 15,109, 22,241,249, 9, 31,174,216,212,149,177,107,207,121,247, +229, 17, 8,110,231,129,156,130, 50, 12, 24, 22,197,139,189,122, 53, 2,176,218,104,213, 77, 30, 56,222,200, 20,116,249,100,251, +229, 33, 99,250,120,116,231,112,184,208,232,204, 40, 44, 55,128,102,128,254,129, 42, 60,177,227, 51, 94, 73,149,121,236,146, 31, +179,198, 94, 92, 31,169,214,151,231,206, 2,176,175,241,143, 33, 14, 94, 46, 74, 36,101, 85,214,107,178,170,244, 22, 0,128,128, + 75,131, 2,113,100,239, 47, 22, 22, 22, 22,150,255, 56, 13,206, 58,228, 0,192,225,195,135,235, 29,191, 67,211, 4, 73,105,121, + 72, 74,203,195,149,196, 66,152, 8, 31,235, 86,124,136,213,203,222, 71,137,142,131,159, 46,100, 33, 57, 45, 31,201,105,249, 40, + 42,213,212, 39,241, 80,151,210,170,101,146,144,181,107,149, 43, 35, 6,200, 6, 57,216,219,219,223, 73,248, 95,213,226,185,234, +192, 15, 95,207, 18,240,141,162,108,153, 92,214,103,239,222, 61, 65,174,206, 46, 50,185, 92,241,150,212,179,203, 87, 42,213, 31, +158,148,222,104, 55,149,196, 37, 32, 42,106,228, 19,131,221,220, 92,153,233,235, 98, 19, 59, 6, 6,152, 59,180,239,208, 87,226, +210, 33,170,145,205, 30,104, 50, 12, 3, 14,135, 3,181, 90,141,220,220, 92,164,166,166, 34, 57, 57, 25, 89, 89,233,106,134, 16, + 62, 13,134,227,238,238, 5, 30, 79, 8,223,214, 62,216,180,110,153,116,201, 7,239,134,138,101,194, 3,117,140,208, 3, 77,125, + 73,233, 15, 71,142,157,200, 57,186,107, 19, 13, 0, 5,165, 26,156,190,122, 23,215,110,101,217,122, 34,235,166,112,104,157,147, +113,183,194,146, 22,205,253,232,189,121, 89,231,206,157, 79, 47,175, 52,162, 82,107,130, 86,111,134,193, 72,195, 76, 51,240,113, + 22, 99,255,219, 29,113,240,151, 56, 87,138,162,214, 54,117, 60, 13, 6, 51,221, 47, 64,134,137, 97,173, 16,224, 37, 67, 78,210, + 69,204, 89,184, 22, 49,169, 6,148,150,150,193, 92, 85, 4, 70,147,141,162,180,107,176,208, 52,105,234,188, 63, 34, 88, 77, 86, +147,213,100, 53, 89,205,127,177,102, 67, 94,228, 49, 97,107, 61, 11, 30, 24,173,134,184,151, 85,130,164,212,124,116, 11,240, 68, +187,214,238,184,146, 92,138,239, 78,103,225,171,227, 25, 56,125,163, 16, 12, 79,129,252, 10,224, 78,186, 26,119, 50,138,154,204, +159,205, 21,241, 39,188,254,122,249,252, 78, 65, 21,189,126, 61, 58, 27,158,206,119,130, 22, 44, 40,155,205, 21,241, 39,216,183, + 82,236,122,123,254, 27,147, 20, 82,169,208,104, 48,162,109, 27, 31,241,107,179,102,191, 64,217,139,172,126, 38,146,194, 51,208, + 94, 36,145,108, 91,242,193, 91,162,181, 63,221,201,172, 50,162,106,223, 69,117,202,188,183, 23,151,240,248,226, 77, 10,207, 64, +123,107,181,204,102, 51, 12, 6, 3,140, 70, 35, 76, 38, 19,114,178,110, 71,157,250,233,205, 97,109, 90, 57, 12, 19,137,197, 32, + 0, 42,116, 22,164,230,105, 17, 54,100, 40,183, 91, 72, 72,176,220, 61,112,106,125, 90,229,229, 25,229, 12,225, 42, 14,239,223, +201,221,243,243,117,252,239,240, 85, 28,248,229, 58,174,156, 57,106, 33,140,249,193,243,191,228,238,237,253,228,238,157, 50,228, + 30,157,213, 15, 22,207,142,141,166,103,230,114, 57, 36,108, 72,248,201, 87,102,190,246,171,182,178,184, 96,219,134, 15,115, 10, +115,211,111,139, 4,148, 69, 42,226, 66,163,183,224,219, 83,185, 24,191,236, 6,110,101,106, 64, 8,105,242, 1,222, 12, 48,119, +194,212, 55,105,179,201, 4,127,111, 57,118,110, 93,142,168,176, 46, 24,220,201, 30, 61,218,201, 32,229, 25,144,144,152,132,221, + 59,191,181, 48, 12,103, 30,251, 67,134,133,133,133,133,133,141,104, 61, 88,220,107,175,104,176,235, 80,175,215,165, 61, 57, 97, + 50,220, 93,220,228,163, 7, 61, 47,136,189, 87,134,194,188, 12,220, 77,142,135, 86,111,134,192,190, 13, 32,118, 67,107, 95, 31, +196, 37, 29, 48,173, 95, 25,173, 97, 44,134,180,134,244,162,162,220,189,238, 38, 82,156,149, 43,188, 47, 37, 39,149,118,219,185, +240, 27, 60,251,172,220,105,229, 10,239, 75,233, 41, 50,142, 84, 76,250,188, 48,101, 34,197,161, 8, 22, 44,152,143,209,145, 79, +224,197, 23,158,163,182,111,255,182, 87,153,149,123,201,128,255,249, 59,239,125, 40, 84,151, 89,140, 87,146, 53, 6,169, 76, 34, + 57,127, 71, 83, 21,236,235, 45, 25, 49,238,249,220,232,189,219,214, 2,152, 98,141, 86,141,193, 50,155,205, 48,153, 76, 0, 64, + 3, 0,135, 83,253, 90, 92,105, 68, 65,153, 1,234, 50, 3, 44, 52,131,113, 19,166, 72,174,198,220,152, 2,160,129,241, 90, 12, + 99,182,152,177,239,231,107,200,185,250, 3, 67,113,184,229,181, 6,195, 67,238,222,222,207,205,205,251,108,228,184,231,156,133, +226,234,110,216,202, 42, 3,182,111, 94,209,104, 61, 57, 20, 69, 24,218, 82,102, 49,155,171,218,182,105,155, 19, 16,212, 69,124, +238,215,227, 81,231, 79,238,211, 88,218, 62,103,119, 47, 61, 15, 92,190, 8, 92,129, 24, 6,147,117, 63, 22,212,119, 47,109, 4, + 64, 77,157, 49,127,221, 27,111,190,203,157,187,254, 55, 24,245, 90, 24,116, 85,168, 40, 47,133,132,103, 70,194,133,131, 22, 66, +155,223,168,202,187,190,145,189,191, 88, 88, 88, 88, 88,254,227,212,125,252,206,131,178, 6,141, 86,198,173,115, 61, 0,192,175, +123, 68,177, 92,204,115,224,113, 40,168,179,239, 97,251,170, 57, 96, 24,130, 17, 47,175,132,194,215, 13, 18, 1, 23, 6, 77,177, +166,228,222,153, 70,199,234, 80,148,121,232,198, 45, 57,190, 51, 94,109,171,220,185, 83,195, 7,128,157, 59, 53,252, 87,167,183, + 82,126,177, 37,205,183,103,191,110, 32, 52,141,200,209, 79, 98,194, 51, 19,144,158,175,197,143,103, 51, 81,165, 51, 90, 53, 91, + 78,226, 20,208,197,201,209,249,137,215,159,127, 66,198,227, 82, 84, 7, 31, 21, 55,171,208,108,225,114,249,244,161,171,229,185, +227,198, 61,227,116,250,200,158,193,180, 83, 64, 23, 93, 81,226,141,166,244, 12, 6, 3,104,154,134,193, 96,128,217,108,134,131, + 83,155, 35, 67,159, 92,149,157,151, 95, 25,157, 95,170,239, 89,101,182, 64, 93,102, 64, 65,153, 1,101, 85, 38,184, 41,236, 97, + 49, 27, 59, 53,164, 71, 8,249,223,152, 39, 39, 63, 7,128, 67,113, 44,223,104,242, 18,147,171,215,252,110,178,158, 24,253,172, +243,217,216,123,184, 27,115,180,148, 48,150,234, 44,238, 20,147,221,248,113, 5,225, 82, 96, 4, 60,202,204,229,112, 24,147, 73, + 99,118,113,113, 62,125,230,244,177, 81,122, 75, 10,184, 2,209,131,247,234,140,180,213, 87,140,250,238,165,207, 1,224,179,245, +235, 86,247, 25,250,172,224,204,181, 52,232,204, 64,239, 16, 63,236,255,254, 75, 3, 33,230, 55,171,242,174,127,206,222, 91, 44, + 44, 44, 44, 44, 44, 15, 25,172,104, 84, 15,142,127, 56,162, 85,211, 55, 26, 25, 25,249,135,167,181,231,168, 75,224, 40,231,193, +217,195, 23,147,230,172,198,255,214,206, 5, 77,155, 65, 8, 96,161,173,203, 76, 64, 8,255,231,153,175,250, 6,180,246,229, 58, + 79,122, 86,170,251,110,167, 86, 50,233, 89,169,174, 99, 39,199,242,153,175,250,166, 85,234,189,251, 90,104, 26,231, 19, 10, 16, +159, 86,142,248,244, 10,200, 37,214,167,249,226, 10, 5,175,174, 88,190, 76,192,227, 82, 84, 66,134, 70,147, 93,108,209,112,249, +124,147, 84, 34, 36, 70,194, 51,164, 23,145,226, 33, 99, 94,208, 29,218,241,217, 84, 0,179, 26,210,169,153,105, 88, 19,201,170, +121, 37,132, 16, 10, 96, 24,138,166,179,139,244,208,152,204, 80,151,254,110,180, 40, 75,195, 61,167,114,247,246,126, 74,133,252, + 24,151,203, 21, 17, 2,152, 77,150,167,225,222,126,152, 38,239,110,114,109,147,117, 41, 33, 23,247,174,159, 84,211, 38,237,100, +109, 65,210, 41,107,247,157,162, 64,184, 92, 48, 92, 14,197, 80, 20, 24, 62,135, 24, 65, 8, 83,183, 70, 90, 27,140, 86,141,217, + 18,242,185, 11, 79,236, 94,235,242,226,200, 64,124,127,182,218,243,233, 43, 11, 43,170,114, 88,147,197,194,194,194,194,242,104, +105,204,139, 60, 70, 81,173, 63, 70,180, 26,219, 33, 66,128, 59, 25, 69,104,237,229, 12,175,214,237,144,124, 59,238,247,117, 0, + 44,180,117,221, 81, 7, 15,230,101,175, 94,173,100,230,206, 45,239,189, 98,133,247,197, 87,167,183, 82,117,236,228, 88,254,214, + 91,153,189,215,172, 81, 93,252,249, 18,159, 38,247,243,117,213,228,230, 34,196,150,113,113,156,208, 46, 65,109,184, 31,238,188, +147,121,234,102,101,129, 64, 32, 48,187,217,139, 41,133, 92,200,229,114,248, 66,131,153, 99,240, 11, 14,225, 30,226, 80, 33,141, +169,212, 24,173,186, 93,135,197,133,247,162, 78,252, 56,191,227,160, 49, 43, 29,114, 10,117, 40, 55,114, 31,116, 29,114, 57, 20, +110,222,206, 0,184,130,248,250, 52,149, 10,135,227,187,190,251,159,247,154, 21, 75, 97,178,208,152, 57,119, 17, 94,152, 50,249, + 56,220,219, 15,243,246,245,143,253,237,208, 55,210, 97,211, 55, 33, 35, 41, 38,223, 98,168,216,109,139,201,122, 96,182, 0, 66, + 19,134, 83, 82, 90, 33, 55, 88, 32, 70, 61,190,207, 96, 98,154,117,229,104,116, 22, 28,186,156,143,195, 63,237,134, 74, 33, 99, + 91, 2, 22, 22, 22, 22,150, 71,206, 99,106,174, 80,199, 92, 1, 13, 69,180, 26,195,199,203, 21,151,227,211,208, 41,160, 13, 84, + 74, 5, 18,239,101,131,203,225,131, 67, 1,102,139,245,102,136,152,204,223,175, 89,163, 66, 70,154,140,243,197,166, 52,223,153, +175,250,166,173, 89,163,186, 72, 76,230,239, 1, 76, 38, 4,168, 54, 91,213,134,139,182,193, 23, 16,198,220,202,213, 65,202,141, + 73,169, 42,230,112,184, 6, 71,149,152,113, 84,137, 56,142, 10, 33, 95,192,231, 50, 22,194, 49,121,185,248,234, 9,195,116,177, + 70,175,118,215, 33, 77,211,160, 40, 14,125,223,136,201,178,138,117, 40,215,115,161, 46, 51,160,180,210,132, 14,158, 50,156, 60, +253,131,150, 54,235,118,214,167,197,229, 11, 84,237,124,189,240,238,199,107,160, 51,208,184,147,163,129, 64, 36,114,115,117, 11, +190, 49,121,198,219,162,215,182,222,195,212,193,142,152,251,219,189, 28,173, 90,252,182, 45,103,150,166,105,232,244, 70,129,186, +168,212,190,162,178, 74, 41, 17,139,116,206, 14,170,162,250,222,171,183, 49,162, 85,131, 84,204,195,168, 94,110,208,155, 38, 66, +103,176,224,194,169,125,108,139,192,194,194,194,194,194,242, 59, 13, 62, 64,218, 42,163, 37,151,138, 65,184, 98,252, 22,123, 15, +254, 65,157,241,237,193, 43,104,223,169, 23,242, 42, 45, 32,224, 52, 57,219,176,134,249,239,232,174, 1,184, 22, 21, 37,245, 26, + 59,214,115, 40, 33,252,159, 55,109,169,200, 6,128, 54, 29,171,101, 24,134,128, 16,128, 48,213,134,203,106, 40, 94, 70, 90, 94, + 69,107, 95, 55, 25,110,101,155, 12, 50,145,128, 99, 47, 19,114,157, 85, 66,129,128,199, 3, 77, 40, 67, 94,222, 61, 3, 5,164, + 91, 35, 87,183,235, 80, 42,119, 63, 50,100,204,202,194,244,204,242,152, 14, 37,218, 46,229, 38, 33, 8, 1, 58,120,202, 16,127, + 41,154, 86,231,220,189,163, 83, 39,109,174, 79,139, 97,192, 53, 89, 24,220, 72, 41, 71, 89,149, 25,101, 26, 19,250,134,141, 18, +244, 13,143,194,111,241, 69, 96, 44,102,172,248, 50,186,146, 38,230, 9,192,109,179, 13, 59,205,185,124, 45,193,171,176,180, 74, +196,231,241,202, 2,218,251,164, 10, 5,124, 75, 69, 69,133,240,225,119,113, 33,147, 8, 81,162, 49, 3,128,217,214,171,167,188, +202,140,131,151,242,113,104,223, 46, 72, 36, 18, 16,246,134, 98, 97, 97, 97, 97, 97,169,141, 59,170, 31,191, 19,125,255,245,129, +249,250, 63,123,231, 29, 30, 69,181,134,241,119,102,182,151,244,100,211, 72,232, 36,244, 14, 9,189, 19,169,130, 32, 69, 4,165, + 90, 64, 17, 16, 84, 84, 58, 92,122, 21,165,137,244,222,171, 16,186,244, 18, 8,144, 0,105,164,103, 83,119, 55,219,119,102,238, + 31,155, 80, 83, 54, 4,175, 94, 61,191,231,201,179,153,205,238,155,153, 51, 51,103,222,243,157,239,156,227,208,162,210, 44,199, +195,211,195, 29, 82,133, 51,226,210, 45,208, 82, 42,228,232,121,176,172, 61,162, 85, 66,224,169,200,213,189, 15, 30, 76, 77, 58, +112, 32,115,253,193,131,169, 47, 36,122, 63,143,100, 61,123,229,120,135, 53, 41,158, 61,117,240,216,217,188, 94,205,189,220,104, +134, 49,136,132,180, 73, 32, 98, 44, 34, 1,109, 21, 9,104,179,183,179,144, 57,123,104,187,152,167,112,182, 52, 77,163,209,136, + 78,157, 58,161, 91,183,110,232,221,187, 55,250,247,239,143,160,160, 90, 42,154,161,204, 60,197,113, 94, 98, 45,170,121, 81, 16, + 24, 19,113,122,251,127,244,247, 46,237,191,195,154,140, 61,241,178,229,124,174,201,243, 92,118,158, 9, 70, 11,139, 28,157, 5, + 57,249, 22,216,188, 66,177,255,143, 20, 24,204, 44, 18,110,238, 54,168,211,146,190, 48,101, 60,142, 43,229, 84, 76,126,121,147, + 79, 26,241,241, 80,181,147,148,126,220,186, 69, 83,181,167,135,187,141,162,158, 71, 94, 41,138,130,212, 89, 5, 55, 87, 39,196, +221, 58,134,147,243, 59, 26, 0,124,231, 72,121,190,136,179, 92,128, 94,205,125,208,179,239, 32,212, 11,233,234,136,177, 38, 43, +218, 19, 77,162, 73, 52,137, 38,209,252, 55, 81,184,198, 97,225,171, 99, 51,195, 23, 26,160,170,190, 10, 84,247, 87,192,104, 81, +193,104,102,145,111,100,161,209, 91,160,209, 91, 17,151,166,199,189,131,229,223, 67,123, 20,203, 62,227, 39,207, 3,160,236, 6, +207,209,232,137,216, 98,158,185,104,254,156,247,183, 55,106,104, 30,215,221, 55, 32, 34,206,156, 66, 81,180,129,102, 4, 86,119, + 39,129,240,225,195, 8,245,229,243, 71,219, 72,109,236,135,250, 18,116,108, 54, 91,158,191,191, 63,128,151,151,224,169, 85, 77, +214,251,210,145,201, 85,218,246,154,239,181,100,246, 68, 61,205,136, 56, 74, 32,186,199, 90, 13,219, 12,233, 81,171, 81,130,253, +160, 69,210, 7, 87,111,223, 15,113,117, 15,192,227,228,124,228, 27,109,176,216, 56,184, 41, 69, 72,186,123,194, 18,247,240,198, + 78, 93, 74,196,198, 55, 40,182,173,209, 15,238, 85, 8, 11,235,250, 94, 72, 72, 40,243,195, 15,223, 35, 56, 56, 24, 6,131, 1, + 52, 77, 35,160, 82, 53,196, 69,223,198,149, 35, 51, 89,125, 86,252,207, 0,102, 0, 80,151,245,159,100,106,204, 56,118, 35, 3, + 71,246,237, 0, 35, 20,147,219,137, 64, 32, 16, 8,132,215, 25,245,202,235, 26,135,140,150,209,104,140,107,213,169, 39, 56,142, + 7,203, 3, 28, 91, 16,121,226,158, 71,159, 88,171, 49,174,188,123,199,113,236,181,149,107,214,119,107,212,172, 45, 83, 59, 80, + 9, 77, 86, 26,174, 92, 58, 99, 3,199, 95,118,228,251, 89, 89,143,116, 50,239,234,239,189,223,175,207,174,161, 31,143,201,109, +211,190,189, 66,165,242, 49, 37, 37, 39,233, 55,108,222, 98, 61,113,244, 64, 27, 14,182,129, 89, 89,143,117, 37,233,228,229,229, + 45, 43,234,125,137, 88,217, 18, 64, 21, 70, 64,153, 13,234, 71,101,202, 8,207, 76, 78,236, 59,103,230,180,248,193, 35,199,139, +171,250, 87, 67, 70, 30,131,184,164, 52, 60, 60,127,192,148, 28,125,125,159, 38,233,214,112, 7,165, 82,139,120, 47, 9,192,146, + 43, 87, 46,215, 9, 11, 11,235,218,161, 67, 7,126,212,168, 81,224,121,224,244,154, 79,248,236,184, 43,187, 97,143, 98,197,188, +225,121, 73, 56,127,249,182,123,255, 54, 77, 4, 30, 78,195,177,126,199, 81, 43,120, 46,129,220, 79, 4, 2,129, 64, 32, 60,227, +205,115,180, 18, 31,216,231,211,250,179,209,166,101, 12,217,184,113,211,172, 77,155,183,183, 52,154,205,254, 60, 68,137,172,205, +124, 78,199,226, 7, 71, 53, 12,233,143,111,120,120,212,168,187, 97,237,202,239, 54,172,255,169, 45, 56,182, 38, 5,196,243, 20, +206, 74,173,236,208,210, 76, 86,137,102, 41, 83,251, 75,231,247, 22, 26,178,178,116,155,202,250, 93, 67, 86, 84, 26,205, 88, 2, +126, 89, 58,115, 1, 77, 51, 93, 88,150, 19,114,172,245, 49,107, 49,254,199,160,142, 58, 8,135,179,220,144, 93,194,223, 34, 1, + 68,134,135,135,183, 14, 15, 15,111, 6, 96, 25,236,107, 40,222, 40,207,121, 49,101,105, 59, 78,154, 56,233,244, 4, 80, 21, 57, +142,135,141,229, 18, 68, 6,125, 71,114, 79, 17, 8, 4, 2,129,240,140, 81,120,125,210, 82,199, 34, 90,255, 43,114,114, 98,180, +200,193,184,242,234,100,101, 61,210, 1,120,109,228,158,190,156,186,247, 30,105,246,224,145,102,207,155,126, 63, 63, 35, 86, 13, +196, 14, 45,231,110, 56,146,200,126,161,224,231,173,144,153,249, 32, 31,153,104, 78,238, 33, 2,129, 64, 32, 16,202,108,184, 28, + 75,134, 39, 16, 8, 4, 2,129, 64, 32,148,106,178, 94,124, 5, 96,207, 61, 47,110,228, 64, 89, 86,230,126,147,209, 7,167,136, +102,185, 53,133, 0,196, 0,148, 0, 74,235,210,236,138,130,245, 26, 73,121, 18, 77,162, 73, 52,137, 38,209,252, 11, 53, 75,211, + 62, 5,194,159,106,192,136, 38,209, 36,154, 68,147,104, 18, 77,162,249,239,211,252,127,102, 84, 17, 63, 0,254, 70, 57, 90, 4, + 2,129, 64, 32,252,175,240,240,168,161, 4,158,229,245,150,138,220,179,150, 55, 0,232, 51, 31,164,147,210, 35, 20,193,139,235, + 28,190,149, 28, 45, 33, 45, 16, 79,146, 59,121, 60, 80,184,120, 36,255,203, 11,151, 10,170,164, 24,219,185, 77,229,253,193, 85, +100,189,203,242, 69,185, 87,208,175, 62,213,154, 63, 85,168,130,198,194,183,145,172, 60, 59,161, 80, 85,241, 82, 6, 52,185,228, +228, 95,231,157, 63,225, 24, 37,181,107,215, 14,173, 93,187,118, 40, 0,201,219, 16,148,171,130, 6, 85,168, 30,114, 94, 85,181, +225, 25,133,119,141,126,111,123,135,149,190,213, 61,148, 1,141,247, 40,253,234,231, 40,125,235,107,148, 21, 26,159,115,242,172, + 85,181,180,239, 5,244,154, 83,115,250,182,123,219, 2,122,205,169, 89,212,223,221,194,150, 59,253,184,253,209,108,143,158,255, + 81,146,122,229,205, 8,104, 57,200,213,183,237, 4,143,178,126,207, 63, 40, 36,178, 82,157,214, 25,126, 53,154,223,115,244, 59, + 21,130, 67,111, 85,172,221, 50,189, 66, 80,232, 13, 82,242,142, 33,245,170, 18, 42,117, 11, 60, 34,113, 11, 60, 42,113,175,210, +190,188,122,190,190,190,178,154, 53,107,134,133,132,132,140,238,216,177,227,151, 13, 27, 54, 28, 85,177, 98,197, 46,127,101, 67, + 95,174, 10,250,198, 36,164, 50, 77, 66, 42, 83,174, 10,250,166,244,250, 53,120, 22, 69,179, 41, 20,205,166, 40, 84,193,179,254, + 46,231, 74,226, 29, 84, 81,174, 10, 90,236,228, 83,251,154, 76, 85,163,103, 89,191,239,230,230,214,197,203,203,235,221,194, 31, + 55, 55,183, 46,228, 14,120, 99, 94,140, 98,149, 59,162,197, 8, 37,242,139,131, 63,254,172,238,188,105, 83,164, 75,215,239,199, +210,217, 19,239,155,242,115,107,255, 29,143,220,179, 74,179, 27, 12,205, 84,120,241, 61,150, 99,147, 50, 99,175, 53,121, 27,250, +193,149,100,195,191,251,122,200, 87,131,222,239, 84,177, 83,143, 47,168,168, 88,195, 1,199, 45, 26, 26,236,220,179, 47,224,252, +217, 51,203,215,175, 95, 51, 67,109, 11, 94, 44,148, 8, 86,106, 18, 35,115,203,178, 15,206, 94, 85,171, 8, 20,158,231, 91,245, +254,204,231,230,169, 45, 27, 89, 51,215, 89,159,249,194,234,223,111,142, 87, 50,102,230,242, 0, 0, 32, 0, 73, 68, 65, 84,181, +106,213,154, 50, 12,227, 49,118,236, 88, 17, 0, 44, 89,178,164, 58,203,178, 89, 79,158, 60,185,142, 55,152,252,212,110, 48,131, +135, 44, 91, 48,125,211, 59,239,116, 67, 74,102, 62,230, 47, 94,213,238,248,225,157,253,243,211, 31,237,126, 27,231,196,213,181, +178, 51, 68, 78,119,191,248,122,134, 42,172, 93, 83, 70,103,180,225,248,249,219,173,183,172,154,113, 13,168,213, 76,155,249,160, +216, 57,197, 56,125,222, 84,111, 37, 31,198,233,243, 0, 96,208,107, 15,123,165,181,147,151,140, 13,243,149, 8,110,103, 1,165, + 46,250,232, 90,169,229, 9,161, 68, 82,145,166,105,208, 20, 64,211, 20, 24,138,178,175, 19,106, 49, 36, 36, 63,188,208,245,239, +112,159, 56, 5, 54, 75, 3, 35,240,160,169,231,251, 71,209, 5,175, 60,175, 73,123,116,209,227, 45,252, 27,151,186,213, 93,235, +180,172,158,191,225, 92,108,182, 66,208,230,203, 35, 20, 79,255,244,244,194,226, 59, 14, 25, 0,169,212,237,208,161, 67, 94, 97, + 97, 97, 46,170, 58,189,207, 57,242, 29, 49,163,171,125,248,240, 65, 81, 88, 88,215, 50, 92,159, 65,157, 65,211,155, 41, 64,200, +113,252, 18,134,227,119,234,178,162,159, 0,101, 91,125, 74,166, 10, 30, 78,131,119,184,158,225, 64,221, 48,100, 68,173,127,211, +194, 21, 72,156, 59, 10, 69,162, 47,171, 4,213,107,148, 28,255,248, 70,190, 78,187,216,102,202, 59, 87,102, 33,171,109,210,169, + 11, 55,223, 17, 8,133, 84, 88,199,230,140, 9, 56, 83,158,147,238,237,237,253,238,138, 21, 43,170,134,134,134, 2, 0,108, 54, +155,243,174, 93,187,124,102,206,156,169,136,142,142,126,211,133, 83,253,189,188,188, 2,197, 98,177, 63, 0,152,205,230,100,181, + 90,253, 20, 64,169, 13,127,133,119, 85, 79,240,152,113,225,252,121, 1, 0,180,110,221,102, 86, 96,171,207,221, 24,145,210, 80, +100,113,152,181,138,220, 39,103,198, 95,185,122,153, 2,128,144,230,161, 83,228,158,181, 86,254,149,145, 45,169, 42,184, 57, 13, +124, 21,210,186, 83,223, 1, 3,135,208,117,106, 4,162, 75,231, 14,147, 13,192,161, 50, 93, 51, 2,129,236,218,181,107,213,104, +154,102,108, 54,155, 49, 36, 36,228,105,121,246,203, 47, 40,244, 15, 10,116,128,197,102, 94,171,142,185, 49, 11,120,109,225, 24, +198, 37,160,209,119, 96, 4, 35, 57,142, 75,212, 62,189,209,226, 31, 24,209,122,189,156,203,170, 68, 11,196, 95, 14,250,232,211, +186,227, 39,124, 43,253, 98,105, 56,142,172,154,146,249,119, 53, 89, 0,192,208, 76,133, 19, 39, 79,168,228, 98, 6, 0,160, 51, +218,240, 78, 88, 88,233, 79,132, 74,205,206,210, 20, 21, 92,184,160, 13,107,179, 72, 5, 66,177,145,178, 27, 36, 80, 0, 60,253, + 42,133,123,219, 46,202, 7,189,223,169,226,230,237,191, 39, 61, 77,202, 42,115,165, 70, 49, 34,132,180,233,130, 78,157,187,186, + 92,187,250,199,140, 53, 63,175,254,198,102,177,174,230,172,220, 98, 99,246,227,148, 82, 43,115,159, 26,141,197, 74,207,227,125, + 71,207,244, 48,210,238,248, 97,246, 50,207,243,199,182,158, 75, 78,108,192, 37, 36, 36, 26,121,138,186,159,147,157,250,101,126, +218,147, 40, 71,139, 76,169, 84, 86, 85, 42,149, 13,234,215,175, 47,157, 56,113,162,176, 93,187,118,207, 45,251,168, 81,162,179, +103,207,250, 46, 92,184,176, 91, 68, 68,132, 81,167,211,221,209,233,116, 49, 40, 67,162,189,143,143,215,231,239,245,233,137, 14, +125, 63, 3,203, 81, 24,245,233,120,156, 56,182,119, 12,128,183, 98,180,172,114,231,153, 35, 71, 79,244, 10,105,218,144,153,177, + 53, 10, 50,177, 0, 93,155, 4, 83, 31,141,157,234,186,126,249,140,117,200, 68,219,162, 34, 89,156, 62,111,106, 93, 79,243,192, + 94,161, 85,112,112,155,121, 32, 58,126, 13, 90,238, 50, 43,241,224,183, 15, 1,160,106,216, 88, 39, 9,171, 94,225,231,202,168, + 36,172,122, 69,213,176,177,167, 98,142,175,208,150,180, 47, 66,137,164,226,182,173, 91,107,184, 57,137, 32,160, 41, 48, 12, 5, + 1, 67,195,104,102,209,255,253,129,111,237, 50,151,169,106,116,163,129,143,236, 15,108,252,106,200,120,116,180, 44,231,132, 98, + 68, 30,135, 15,238, 19,168, 92, 36, 96, 24, 10, 12, 13, 48, 52,133,248,116, 3,134, 15,255,200,165,188,134,253,157,150,170,166, +147, 6, 4,119, 13,169,235, 94,127,199,101,202, 37,228,157, 1, 30,153, 70,249,176,237, 7,206, 12,228, 91,143,191,202,243,220, +130,164,139,203, 78,150, 36, 98, 50,153,210,187,134,189,227, 76, 9, 20,242, 83,251, 55,182, 17,208, 20,172, 44, 15, 27,203,131, + 45, 88, 27,149, 42,104,193,208, 52, 5,158,227, 49,114,228,112,116, 13,123, 71,207,217,184, 36,199, 43, 57,122,243,241, 83,151, +188, 76, 86, 14, 11, 87,172,159,145,159,167,158, 17,251,208, 35, 94,151,151, 57,222,144,241,200,225,117, 48,104,240, 77, 18, 99, +238,141,222,122,248, 10,234,214,174, 5,150,179,239,103,112, 5, 5,182, 30,185,130,154,193, 53,237,251,205,241, 8, 10, 80,162, +105,147,166, 0,240, 70, 70, 75, 32,113,250,161,109,247, 33,211,123,244,255, 24, 42, 47, 47,208,188,181,199,169, 35, 91,123,252, +250,211,130, 73, 54,163,102, 97,153,196,120,246,217,115,129,231,184,114, 71,157,252,252,252,188,154, 54,125, 62, 29,163,205,102, + 67,229,202,149,145,156,156, 28,252, 38,237, 52, 95, 95,223,238, 63,254,248,163,170, 91,183,110, 66, 31, 31, 31, 0, 64, 90, 90, +154,255,241,227,199, 27,253,248,227,143, 25,169,169,169, 71, 80,194,140, 62,172,149, 22,209, 2, 48, 82,169,220,126,140,160,232, +137,159,127, 88,223,219,215,207, 84,212,231,213,234, 52,241,215,159,157,161, 4, 2, 81,193,231, 65,243, 60, 71,149, 16, 37,234, + 36, 20, 10,139,236,161,176, 48,206, 33,188,208,101, 4,205,208,246,139,213,102, 85,231, 60,189, 85,171, 12,145,184, 58, 66,177, +104,245,123, 3, 62,110,209,175,111,111,248,122,185,224,212,197, 8,140,249,252, 43,171,205, 98, 93,252, 70,149, 7,195, 8, 50, + 50, 50,226,221,220,220,124,202,255,188,165,170,252,126,226,152,234,212,233,240, 41,139,150, 46,255,196, 98,182, 89, 57,158,127, +182,142,177, 76, 38, 17,118,238,241,190,179,170, 90,136,116,249,143, 35,132,255,192,136,214,154,183, 98,180,196, 50,167,247,191, +255,122,172,116,230,150, 43, 56,178,106, 76,166, 94,147,233,245,172,165,224,236,122, 43, 95,147,219,232, 77,246, 80,233, 21, 20, + 74, 49,130,209, 20,195, 40, 40,154, 18,115, 44,151,104, 51,155,103, 25,178, 30,165,150,247,232, 57,142,199,158, 63, 50,202,102, +128,120, 84,223,188, 99,159,202,219, 85, 2,163,133,197,128, 65, 67,176,105,211, 38, 39, 47, 23, 49,140,102, 27, 22, 44, 90,164, +213,197, 31, 81,197, 39,230, 36,119,234,249,213,201,152,184,140,123, 79, 83,141, 59,203,186,111, 38, 11, 11,141,222, 6,189,137, + 70,141, 58, 77,177, 96,113, 77,233,211,132,216,175, 54,254,186,110,220,253,251,204, 38,142,161,167, 27, 83, 31, 36, 22,121,211, +249,212,237,234,236,230,177,173,207,232,217,174,143, 50, 4,224, 97,193, 19,103, 41,222, 31, 54,206,185,170,143, 12, 10, 41,227, + 26,155,144,236, 59,113,210,164,139, 49, 44,223, 76,163,142,137, 45,109,127, 42, 85,170,212,183, 71,143, 30,242, 9, 19, 38, 8, + 3, 2, 2,240,235,214, 93, 21, 91,119,237,223, 51, 37, 53, 61,128,231,121,120,171, 84,137, 35, 63,234,127,232,232,209,163, 9, +137,137,137,194,249,243,231, 55,223,183,111, 95,237,180,180, 52,135, 91,166, 44,207,195,104, 98,193, 22, 60, 32,213,121,166, 50, +251, 83,127,127,127, 73,114,114,178,233,133, 40, 3,245, 60, 80, 72,117,237,216,182,185,224,151, 99,113,208, 25, 89, 40,164, 66, +196,165,235,209,164, 97, 61,106, 45,107,107, 80,148,224,240,247,187, 79,245, 86,242, 97,189, 66,171, 64,229, 38,199,134,149,179, +113,240,114,108, 88,186,142,194, 10,158, 25,237, 43, 17,116, 86,112,169, 43,218, 53,169,230,211,161,113, 69, 92,111, 82,205,231, +252,205,168,104, 89,255, 69, 99,147,117,194, 83, 57,199,199,105,139,174,120,104,184, 59,137,176,254, 68, 2,228, 82, 1, 20, 82, + 1, 20, 18,251, 43, 77, 83,229,107,213,250,214, 10, 96, 56,118, 56,195, 8,134, 15,124,191,191,223,224,129,253,121, 48, 52,118, +237, 57,212,123,203,150,205,169, 86,139,121, 29, 75, 51,235,139,187,126, 94, 42, 80, 26, 80,185,136, 49,105,221, 61, 56,203,132, +112,146, 11,225, 44, 23,162, 67,125, 47, 48,111, 62, 9,140,219,152,222, 85,187,141,233, 83,169,125,112,160,178,198,157, 39,121, +247,135,207,186,177,244,108,110,251, 47, 87, 46,169,237,161,203, 53, 11,126,152, 56, 82,144,148,146,210,126,215,161,115, 29, 88, +243,199, 81, 54, 75,254,183,234,136, 93, 69, 70,133,147,162, 46, 55,242, 15,233, 39,181,232,172,119,239, 68, 37, 85,203, 49, 73, + 16, 25,175,129, 66, 42,128,178,176,108,165, 2, 40,164, 66, 40,165, 2,164, 36,197, 33, 59,159,185,152,236, 65,183,199,185,203, +182,178,236,184,209,194,226,118,172, 14,149,130, 27,194,215,215, 15,230,110, 31, 84,186, 26,190,231,192,181,115,251,231,234,211, + 30,126,235,168,206,214,195, 87, 48,101,252,232,155, 20,112,171,224, 33,221,232,135,121,171, 26,207,152,242,217, 75,239, 77,156, +190,188,241,155, 71,178,156,166,118,232,243,233,244,214,157,251, 64,155,157,142, 63, 78,238, 68,215, 30,239,225,131,143,191,128, +171,171,231,130,197,179,190,190, 99, 51,105,194, 95,171,115,125,106,182,170, 87,183,214, 22,127, 63,191, 0,142,179,175,242,193, +243,128, 78,155,135,175,191, 28, 9,142,231,209,160, 81,179, 14,210,214,157,121,190, 96, 53,144,204,172,204,252,168,135,247, 59, + 25, 51,162,174, 58, 92,150, 70,163, 85,173, 86,227,246,237,219,136,142,142, 70,100,100, 36,178,178,178,224,226,226,162,203,207, +207, 47, 83,240,190,126,253,250,131,195,195,195,165,110,110,110,207,222, 52,155,205,112,114,114,194,224,193,131,133, 93,186,116, +241,239,222,189,251,208,123,247,238,109, 5,160, 41,114,127,178, 31,167, 56,121, 7,255,220,182, 93,219, 79, 0, 64,230,236, 27, +187,226,215, 67,145, 37, 54,104, 93,252, 42,182,104,209,178, 26,120, 30, 20,248,101,250,172,232,180, 18,162, 68,138, 43, 87,174, + 84,101, 24, 70,240,252, 25,196,225,167, 13, 59,106,254,126,225,110,223,121, 11, 22, 74,157, 21, 18,168,243,204, 24,241, 65, 31, +135,159,193, 50,239,224,110, 45, 90,180, 57, 48, 99,250,247, 2,165, 66,129,147, 87, 99, 48,246,203, 73,198,212,248,123, 11,121, + 78,184, 74,175,142,206, 40,231,163,146,199, 91,160, 70, 5, 37,156,122,117,149,142,249,176,151,212,108,101,145,155,111,133,201, +194,130,229,120,228,229, 91,113,255,169, 22,158,206,101, 95,202,141,231,249,166, 0,188, 0,168, 41,138,186,254,226,118, 97,131, +174,208, 27,191,178,157, 89,240,124,240, 0, 96,134,125,164,254,179,203,167, 96,187,184,247, 11,191,127, 31, 64,173, 2, 77, 22, +192, 53,138,162,114,138, 49, 91,175, 69,185, 4,135, 15, 31,230,123,244,232,241,172,198,127,117,251, 85, 36, 34,161,159,194,197, + 11, 60,255, 0, 47, 46, 96,172,242,241,207, 90,184,120,169,251,231,159,142, 78,208,228,102, 87, 44,120,251,148, 35, 15, 11, 1, +197, 44,110,219, 50,164,203, 39,159,126,138,224,170, 21, 68, 44,203,242,247,162, 99,173, 27,215,111, 24,118,254,178,120,169, 38, +233,222,212, 23, 66,144,101, 26,246,201,114,108,210,171, 17, 44,150, 99, 95,109,221,190,166, 73, 81,128,171, 82,140,159,143,197, +129,231, 1, 10, 60, 92, 20, 66,108, 63,155,132,216,155,123, 53, 61, 26,104,242, 7,207,155,214,161,125,183,113,225,247,159, 24, +119,102,100, 24, 79, 0, 72, 43, 73,179,232, 10,157,131,201,194,194,106,179, 97,247,161, 67, 8,235,208, 28, 45, 90, 52, 71,155, +214, 45, 4, 55,110, 70,124,252,233, 39, 35, 3,240,124,116,199, 51, 77,169,119,245,166, 74, 23,207,157,125, 63,153,239,116, 55, +201, 6, 1, 3, 84,241,145,193,221, 73, 4,179,141, 66,188,218, 82,112,231,184, 98,236,196,233,238, 83,190,250,228,168, 70, 45, +174, 11, 60,176,148,116,236,122,189, 94, 60,100,200, 16,161,213,106,181, 12, 30,241, 69,151,180, 52,117,239,159,150,253, 71,162, + 82,121, 67,111,180,225,102,228,227, 90, 51,102, 76,175,114,232,248,217,253,211, 38,141, 57, 16, 22, 22,230,178, 99,199, 14,174, +180,242,124,169,133,152,158,185,114,195,150,221,155,150, 44,156,131,168,132, 28,172,255,101, 21,120,214,246,115, 41, 69,245,162, + 38, 63,100,200, 16,217,254,253,251, 43, 36, 37, 37,105,244,122,189,250,165,120, 4, 77, 9,210,179,245,240,116, 18, 67, 36,160, +225,237, 38,133,202, 69, 2, 33, 3,208, 20,197, 22,165,185,126,231,145, 89,156, 62, 15, 7,183,153, 7,110, 88, 57, 27, 31,127, +254, 29,238,101,138,143,211,114,151, 89,159, 13,236, 59,197, 75,198,134,249,185,210,170, 14,141, 43, 65, 33, 21,225,155,113, 67, +208,236,102,188, 42, 57,151,251, 78,109, 96, 26, 78, 63,254,108,177,238, 83, 47, 7, 71,236, 17, 44, 39,185, 16,199,183, 44,200, +200,207, 83,231, 21,118,201,153, 77,198, 4, 7, 47,227, 83, 69,180,108,167, 52,172, 87,103,246, 39,163,134,211, 45, 67,155,241, + 52, 45, 68,166,214, 76,241, 60,240,229,216, 49,248,108,204, 72,159,196,148,140, 31, 86,173,250,121,106,248,239,252,204,124,245, +195,105, 37,105,210,148, 61, 10,164,148, 10,160,148,217,141,139, 82, 42,128,209,204,130,162,192,184, 6, 54,202,163,236,145,220, +148,236,132, 98, 91,224, 47,105,186, 7,214, 57,253,123,172, 83,205,156,157, 57,151,227, 82, 34,103,221,140, 72,191, 6, 32, 59, +160,141,235, 80,139,141,135,206,104, 67, 92,186, 30, 54, 11, 79,125,252, 78, 69, 84,238, 71, 5,207,217,112,107,211,177, 8, 56, +191, 80,233,191,164,153,124,101,183,209,163,110,159, 1, 75,150,255,114,125,225,236,239,152,204, 60, 51, 56,158,135, 84,204, 64, + 38, 22, 20,252, 48, 48,228,231, 97,213,234,181,105, 54, 80,125,113,238,156,173, 44,215, 39, 56,254,131, 62,221,218,108,167, 0, + 49, 69,139,146,252, 42, 86,170,216,177,231, 48,105,199, 94, 67,192,218,204, 83,110, 94,224,207,232, 51,162, 78, 59,162, 89,183, +118, 45, 80,192,173,252,140,232, 49, 0,160, 80, 5,253, 92, 51,184,102,227, 87,223,171, 94, 61,184,177, 35,231,253, 89,164, 84, +234,244,185,155,187,215,119,193,117, 26,170,210,115, 76,148,147, 71, 5,196, 61,186,141,109,171,127,216,204, 25,205,211, 79, 31, +217, 57,123,233,250,125,239,119, 12,235,131, 13, 63,253,231,155,172,212,103, 70,235,212, 11,209,170, 15, 54,174, 91, 19, 32, 20, + 75, 96,181,113,176,178,188,253,213,198, 34, 59, 59, 7, 86, 27, 7,169,220, 9, 54,142,130,149,229, 96,181,113, 48,153,109,138, + 49, 67,186,127,106, 4,174, 22,181,159,254, 53,219,158, 16, 73, 36, 21,121,216,215,174,229,121, 30,113,105, 6,218,215,215,119, + 43, 0, 72, 36, 18, 72, 36, 18,112, 28,135,155, 81,234,207, 61,131,131, 62, 65,129,193, 99, 45,230,132,220,248, 75, 93,139, 59, +118, 31, 31,159,158,175,154, 44,163,209, 8,157, 78,135, 11,151,175,187,172,219,180, 59, 44, 46, 33,169, 42,199,187,152,156, 84, + 85,187,106, 51, 98,122, 22, 87,158,218,244,168, 79,157, 67, 70,210, 19, 62, 27, 90,125,249,198,195,215, 30,159,152, 85, 98,158, + 86,229,142,147,205, 19, 70,191,215,100,222,178,245,143,114, 46,253, 60,190,180,115, 36, 16, 8,132,106,181,250,217,253,189, 98, +237,182, 38,183,162,146,223, 93,186,100,169,244,102,140, 22,119,227, 82, 48,180, 83,160,189,133,227,192,121, 87,120, 87,245,172, + 82,173,218,214, 85,203,230, 9, 30,165, 24,177,114,239, 53,132, 31,248,249, 66, 90,198,213, 48,164,167, 26,222,164, 14,121, 11, + 70,171, 88,205, 51, 17,153,208, 25,109, 48,153,109,176,114, 60, 52,122, 43, 50,114,205,208,232, 45,208, 25,108, 24,218, 57,176, +200,239,149,226, 71,188, 40,138, 58,204,243,124, 15,158,231, 59, 1, 16, 23,110,219,159,217,212,225, 2, 67,246,210,246,148, 41, + 83,190,157, 59,119,110,100,225,103, 11,223, 47,252,108, 73,239,191,240,125,143,111,190,249,166,238,188,121,243,230,132,134,134, +110,255,227,143, 63, 98, 1,228, 56,218,125, 40,120,241, 96, 14, 31, 62, 92, 90, 65, 87,181, 88, 45, 18,103,153, 16, 85, 42, 7, +226,163,111, 55,120,254, 54,111,120,134, 84, 44, 96,142, 29, 59,230,158,101, 86,130,166, 25,135,155, 40, 74,175, 26, 45, 68, 34, +241,145, 69,139, 22, 97, 96,207,214,178,167,153, 86, 93,196, 83, 67,122,190, 25, 54,149, 87,144,120,214,156,121,202,121,243, 23, +124,118,248, 32,151,171, 75,191,191,160,232, 46,190, 38, 55, 24,234,133, 28, 44,138, 2,207,177, 73, 57,241,215,155, 0, 64,121, +114,177,116, 70, 43,152,130,220, 26,138, 2,244, 70, 27, 24,134,202,200,141,218,121,127,240,204, 89, 29, 54,111,255, 61,133,167, + 93,181,249,249,113,114,216,215, 28, 44, 51, 70, 51, 11,147,149, 69,228,157,155,104, 19, 82, 27, 45,154,212,132,222,200, 66,111, +178,161,114,181, 96, 0,240, 44,242,196, 49,116, 44,207, 90,141, 60,207, 58,245,104,234, 5,149,171, 24,190,110, 18, 72,196, 2, + 88,109,128,193,204,193,104,102, 17,159, 97,128,214, 32, 67,189,182,253,171,120,248,222, 48,165,197,203,246,103, 63,189,209,183, + 68,115,202,178,216,184,117,119,245,148,148,244,222, 71,247,111,145,168, 53, 86, 68,196,231, 35, 35,215, 4, 48, 94,248,113,206, + 74,201,228,241,163,222,221,184,109, 79, 66,199,214,205, 19,202,122,204,122,117,212,230,157,187,118,255,220,163,199,187,178,200, +171, 71,241,232,246,233,217,249, 25,101,202,207,162, 27, 52,104, 96, 27, 53,106,148,118,206,156, 57, 1, 7, 15, 30,172,172, 86, +171,111, 3,176,186,186,186,214, 12,170, 94,241,206,201,227,199,252,187,191,219, 95,152,148,105,128,139, 92,132,138, 42, 57, 46, + 95, 56, 97, 21,139,133, 69,230,155, 20,116, 15, 14, 66,199,175,113,240,114,108, 88,100,150,244,236,200,225, 67, 19, 78,158,143, +202, 90,177,233,228,127,252,149,214,219, 82, 78,189,226, 70,147,106, 62, 83,198, 14,193,220,229,155,113,238,102, 84, 70, 62,237, + 59, 59,213,100,251,189,248, 80, 58, 32, 96, 40, 56,201,132,200,215,168,243,158,220, 58, 30,244,150,194,212, 67, 79,238,223, 76, +103,107,173, 72,204, 52, 82, 41,217, 90,176, 28, 15, 87,185, 8, 54,142, 71,110,118, 38,181,101,243, 38, 92,191,126,153, 6, 67, +143, 0, 48,173,196, 2,165,236, 93,133, 74,169,208, 30, 17,146,217, 95,173, 44,135,224,234,213,176,102,197, 98,103, 79,149, 55, + 90,181,113, 60, 55,218,201,163, 98,131,237,191,174,192,217, 63,110,181, 59,183,116,101, 83,165,159,215,114,138, 98, 23,130,135, +209,100, 97,145,151,155, 3,177, 57, 17,205,252,213,112,151,179,136,215,248,226, 94,218, 35,101,105, 21,126,214,189,125,183, 41, +254,221,169,187, 15,133,207,237,218,185, 29,238,197,107, 32, 19, 11, 32, 21, 51,144,138, 25, 8, 41, 22,139, 87,255,108,205,201, +211,246,200,138, 60,144,249, 6,215,231,169,130,214,175,221,220,177, 58,175,205,203,167,254, 54,242,235,249, 93,195,250, 12,163, +238, 93, 63,243,173, 30, 56,237, 88, 67,143,119,232, 61,142,115,252, 25, 39,117,242, 92, 54,110,242,172,113, 93,122,244, 7,195, + 8, 96,181, 90,177,103,199,102,252,186,242,199,135,102, 93,214, 48, 0,156, 57,131, 25,181,115,243,234,254, 95,255,176,152,170, +219,160, 89,243, 51,169,175, 47, 71,203, 49,212, 47, 31, 14, 31, 61,192,219,219,219,233,121, 68,139, 71, 80,112,109,116,235,245, + 30, 78, 28,216,135,251,145, 17,224,120,187, 97,226, 56, 30,185, 57, 89,105, 54,171,121, 99,177, 61, 30, 82,105,197, 13,191,110, +170, 65,211, 20, 44, 86, 14,102, 27,135,241,159,126,100, 30,243,229,183,173,186,117,105, 27, 41,102,160,137,127,154,234,122,249, +214,131,122,156, 80, 25, 48,124,226, 98,145,209,196, 34, 79,111,197,209,245,197,123, 29,169, 91, 96,104,165,198,221,134,143,249, +126,141, 68,194,208,150, 58, 65, 1,177,109, 67,234, 36, 6,250,121,106,103,204, 91,217,236,226,213, 91,221,222, 31, 60, 92, 58, +180,102, 99,202,207, 67,230,244,209,224, 62,245, 89,155,229, 67,125,118, 98,177,243, 11, 10,229,110,185,129,149,171,235,159, 71, +140,130,246, 82, 60,170,188,228, 60, 40,196, 26,210,163,251, 2,128,175, 95,160, 81, 40,113,214,150, 33, 2,195, 3,192,242,181, +219,154,220,137, 78, 25,185,100,201, 82,249,205, 24, 45,110,199,228, 65, 34,162, 97,177,114,160, 28, 12,106,115, 60, 51,250,187, +111,166, 56,231,228,179, 56, 27,161, 70,228,141, 51,188, 89,103, 28, 44,183, 57,247,133,202,233, 67, 0,213, 0, 60,161, 40,254, +151,252,116,159, 3,192, 57, 91, 89,175,123,142,179,183,151,157,189,170, 86, 97, 5,146,110, 66,177, 34,148,162,248, 58, 20, 15, + 55,128, 79,206, 46,120,166, 58,234,212,242,211,163, 49,127,206, 15, 88,182,110, 31, 82,178,140,112, 97, 19,113, 96,253, 44, 76, +152,187, 21, 6, 83,241, 89, 13,165,249,145,162,140,209,171,134,171,240,247,194,207,205,157, 59,183,199, 43,231,166, 71, 49,231, +236,181,207, 21,126,127,222,188,121,115, 94,248,187,222, 81,147,245,204,104, 21, 30, 84, 41,102, 43,200,203,183,226, 31, 7,246, +239,117,203,209, 89, 32, 21, 49, 8,172, 92, 29,211, 86, 28,240,122,167,137, 39, 50, 45, 46,216,182,102, 97,182, 81,175,221,225, + 80,101,161, 10,110, 46, 83, 42,142,238,221,179, 15, 85, 3, 85,162, 45, 23,178,227,110,197, 26,158,133,122, 53,234, 4,113,101, +103,189,160,111,159, 62,242,211,225,103,190,212, 1, 69, 26, 45,134, 98, 42,172,221,180, 71,229, 36, 19,130,162, 0,173,193,134, +145, 31,190, 87,254,199, 24,207, 49,195,135, 13, 5, 85, 96,178, 52, 89,105,248,118,242,167, 70,133,245,209,253,167,241, 79,147, + 59,245,156,112, 90,163,163,140, 3,134,124,122,253,126,244,220, 28,189,254,205, 22,249, 49,153, 89,152, 44, 28, 98, 98,158, 96, +252,208,206, 16, 50, 52, 24,134,179, 39, 75,219,138,191, 24,117, 41,209,217,240, 17,245,219,188,232,243,181,126,222, 42, 15,165, + 66,198, 43,229, 18,170, 78,205, 26,162,144,144, 22,226,202,193,245, 69, 23, 30, 24,240, 84,109, 64,108, 74, 30, 36,222, 13, 5, + 3, 59,188,131,205, 75, 39,182,203,126,122,131,198,235, 73,138, 47,241,251,217, 43, 61,215,173, 94, 34, 73,207,181,224,225, 83, + 29,210,114,140, 72,205, 49, 33, 45,219, 8,165, 76,136, 54,189, 70, 73,142, 28,248,165,103,199,214,205,151,191,201,113,199,198, +198, 29,137, 79, 78,237, 95,191, 81, 51,108,254,237,215,214,174,174,149,157,115,115,227, 52,142,158,157, 89,179,102,137,231,205, +155, 39, 88,177, 98,133, 38, 36, 36,196,231,155,111,190,233,154,145,145,113,173, 82,165, 74,193, 39,246,110, 12,111,216,166,119, + 83,112, 22,175,214,109,219,139, 36,156, 0, 39, 15, 31,182,236,220,177, 37,203, 96,208,142, 41,209,112,200, 93,102,165,235, 40, +120,249,251, 71, 42,197,108,103, 1,157, 27,157,115,124,220,166, 28, 96,111,213,176,177,167,206,220,136,138,110,114, 51, 94, 21, +126,243,113, 70,182,222, 18, 20,115,124, 66,137, 21, 47, 67, 81, 16, 50, 52,156,100, 2,208, 5,181,170,210,175,254, 99, 80,148, + 87, 97,228,148, 2, 85,240, 10, 80, 20, 82,114,158,222,118, 32,103,131,226, 57, 30,136, 74,202,135,206,104, 15,205, 87,240,148, + 67,157,158,132,159,150,111,196,173, 27,215,209,229,157, 94, 88,181,118, 11, 70,126,216,223, 88, 90,235,135,166, 11, 34, 90, 47, + 68,179,148, 50, 1, 0, 10,185,249, 86,236,185,152,136,106, 85,104,135, 31, 12, 0,224,164,148, 35, 79,107, 0, 45,114,194,147, +155, 71,229,199,206, 92,253,102,234,204, 37,147,114, 82, 35,158, 62,190,123, 1,193,158,121,168,226,111, 65,100,154, 51,110,100, + 85, 70,112,245,170,160, 69,215, 29,210,206,140,172, 55,255, 0,189,167, 71,147,134,181, 67, 43,170, 92, 97, 48,179, 5, 81, 45, + 6,191,110,216,132,248,184,164,225, 89,247, 15,220,122, 27,142, 54, 63, 35, 86, 45, 81, 85,255,236,238,213,211,177,125, 6,127, + 6, 95,255,192, 6,185, 79,111, 59,156,182,224,200,123,172,131, 70, 75, 36,119,253,102,252,119,255, 25,215,165,123, 63, 92,185, +112, 26,183, 35,159,160,121,243,166,120,231,221,129,208,106,178,107,238,218,180,180,179, 77,175, 61, 33,144,216,198, 53,107,209, +129,226, 88, 22,143, 30,222,123, 82,148,150, 33, 53,234,246,229,212, 40,231,151,186,167, 60,107, 54, 80,186,184,223, 54, 89, 88, + 36, 39, 39,225,210, 31,103, 27, 25, 82,163,110,151,165,188, 36, 34, 6, 39,111,101,192, 98,229, 96,177,113,104,211,182,179, 89, + 68,155, 90,207, 94,178, 33, 36, 53, 37,149, 86, 56,123,114,238,254,181, 68,190, 18,139,233, 78, 76,158,200, 98,229, 80,213, 79, + 81,162,166,151, 95,245, 57, 19, 39,142,175,197,136,100,208,230,155,204,169, 41,201, 62,107,182,157,209, 61,120,120,215,191,130, +202,197,249, 63, 75,127, 17,105,140, 20, 50,242, 76,200,214,106,168,193,163,191,246, 91,183,114,238, 7, 37, 25,173, 34,210, 69, +170, 28, 57,121,161,166,155,147,136,210, 25,109, 92,150,198,194, 14,126,183,124,131, 46, 11, 76,214,168, 37,139,151,202,111,197, +104,113, 39, 38, 15, 82, 17, 3,177,136,134,217,202,193,193,219,137,246, 81,249,140,105,209,164, 30, 78,220,206, 4,195,208, 48, +104,115,244, 2,100, 69, 55,105,215, 69,222,184, 89, 8,218,183,107,139,199,209, 81,129,135, 15,238,233,120,249,210,185, 52,155, + 37,232,243,124,117,244,190, 50, 5, 22,244,122,198, 42,246,249,200,215,191, 82,203,190, 3, 63,114,169, 24,232, 79,169, 60, 61, + 96,227, 5, 24,245,225,123, 14,223,249,118, 99, 14,204,155,249, 13, 76, 38, 51,188, 92,197,224,121, 96,195,242,105, 48,155,205, +240,243,144, 32, 47,191,248,213,228, 74,243, 35,197, 69,161,202,148,123,242,130, 25, 43,233,125,138,162, 14, 79,153, 50,229, 91, + 0,252,148, 41, 83,190, 45,220,158, 59,119,174, 1, 64, 74, 41, 93,135,107, 94, 50, 90,133, 7, 87,252,221, 45, 10,246,244,240, +189,124,242,196,113,151,253,119, 56, 92,217,119, 3,221,155,251, 66, 36,160, 33,119,241,195,157,184, 60, 28,217,187, 58,247,192, +246, 95,146, 77, 38,211,130,210,251,154,171, 55, 81,202, 21, 39,126,219,188,131,243,244,240,160,127, 58,169,142,201,210,218,158, +117,105, 69, 95, 61,200,221, 56,177,198,151, 7,117, 92, 42,149, 86, 55,155,205,110,165,157,216, 13, 39, 19, 10,146,120,169,183, + 81,183,130, 98, 24,118,243,150,205,240,116, 22,195,100,229, 48,101,210, 23,134,161, 93,148,185,131,223, 31,216,161,125,183,113, +225, 66, 69,141,211, 45, 26,213,224, 27, 54,108,152,203, 48,140, 67,169, 20, 42,149,106, 26, 77,211,131,196, 98,177,147,217,108, +214,154, 57,163, 60,223,104,134,209, 2,232,245, 70, 8, 69,118,179, 40,100, 40, 24,140,102,232, 13,230,146,111,140,180,123, 23, + 1, 4,105, 94,136, 41,157,126, 80, 85,188,117,215,129, 47,250,189, 63, 96,170,127,131,119,149,113,169,121, 16, 81, 22, 52,173, +229,139, 51,199,247,241, 73,241,209,227, 75, 51, 89, 0,144,161,206, 14,240,242,242,198,173, 88, 29,146,179, 12, 72, 43, 48, 89, +169, 57, 38,104, 13, 90,212,175,232,135,220,188,188,128, 55, 46, 95, 96,223,137, 19, 39,250,119,235, 61, 0,227, 38, 77,111,181, +126,245,194, 8,133, 88,248,113,126,250,163,179,142, 24,173,123,247,238,101, 79,158, 60,185,218,218,181,107,233, 15, 62,248,192, + 80,175, 94, 61,233,144, 33, 67, 90,109,218,180, 73, 42,151, 75, 13,119, 46, 28,156, 58, 98,236,148,222,107,150,205,106,144,147, +147, 67,217,172,214, 99,150,156,156, 41,186, 82,204, 92,226,193,111, 31,254, 24, 99, 25,214,185,181,215, 65,119, 57, 93, 71,194, +155, 7,162,214,180, 29,120, 48,205, 18,115,124,133, 86,214,127,209,216,148, 92,238, 59, 35,173,154, 93,154,201, 2, 0,154,161, + 96,182,177,112,146, 9, 65,211,116,161,137,247,253,117,199, 49,185,151,139, 24, 66,134,134,128,161,160,209, 91,145,169,177,224, +179,143, 28,157, 33,132,231,108, 44, 15,131,217, 6,125, 65,235, 80,171,201,196, 55,147,190,194, 59, 61,251, 96,196,152,175,144, + 99, 0,110,196,106, 97,177, 90, 75,189, 41,104,138,134,222,100,195,199, 93, 42, 34, 91,103, 65,190,193, 6,179,141,131, 92, 44, +128, 80, 64, 67, 33, 21,192, 89, 46, 4,120, 94, 84, 88,153, 8,133, 66,163,213,106,221, 92, 66,139, 30,149, 3,188, 97,176,210, +104, 54, 96, 33, 58,133, 6, 33,242,226, 30,193,185, 43,119,171,124, 57,233, 59,124, 49,178, 39,118, 63,172, 6,119, 85, 69, 40, + 21, 50, 88,121, 26, 0,239, 96,194,222, 52,142,182,244, 25,244,243,218, 13, 81, 51,126,152, 34,205,205,167, 32, 17, 49, 8, 63, +125, 10,151,175,222, 88,150,121,255,192,102,188, 69,132, 60,237,237,236,236, 12,169,152,129,217, 98, 50, 59,158,186,192,131, 7, + 26, 41, 84, 65, 63, 23,180,248, 27,177, 28,138,120,175,116,163, 37,144, 58, 79,249,124,210,140, 57, 93,186,247,195,201,195,187, +177,107,247, 14, 54, 52,108, 56,179,229,215,213,104,213,169, 23, 90,117, 25,128, 99,251, 54,125,149,207, 81,181, 71,141,155, 58, +179, 77,135,110, 56,121,100, 55,210,211,146, 22, 57,186,191,140,144, 26,215,161,115, 79, 24,205, 44, 90,119,236,129,227,135,246, +141, 69,193, 32, 11,199, 31, 98,175,212,207,160,109, 95,141, 31, 39,204,200, 53, 11,213, 26, 51,146,212,122,196,165,235,113, 96, +251,122,222,241,250,194,220,180, 77,253, 10,194, 81,243,195, 19, 3, 42,248,154,132, 38,131, 44,250, 73, 76,205, 17, 31, 13, 21, + 86,169, 94,147,206,200, 51, 65,157,103, 66,102,158, 9, 58,163, 13,213, 43,212,160,173, 54, 42,180,172,231,217,211, 69, 44, 92, +117, 40, 22,206, 10, 33, 90,212,124,243,129,182, 28,199, 61, 55, 89, 75,236, 38, 43, 34, 54, 15, 18, 17, 3,137,136,134, 68,196, +192,198,242, 14, 53, 92,100,170,160,110,159,125,254,169,159,217, 6,100,229,153, 33, 96, 40,168, 60,221, 20, 77, 27, 12,194,134, +133, 99, 1, 0, 35, 39,255,132, 17, 31, 15, 65,173, 58,245,144,155,147,227, 51,168, 95,183, 37, 0,246, 57,186,175, 71, 79,158, + 13, 60,121,254,214,228,207, 38,254,168,124,191,103,123,230,118, 76, 30, 82,179, 77,120, 18,173, 45, 83,228, 13, 0,108, 44, 7, + 30, 60, 54,238, 56, 12,153, 88, 0,117,158, 5, 60,207, 99,214,138,157,112,146, 9,145,154, 99,239,238, 47,137, 18,253, 72, 9, + 17,169, 50, 68, 27,123,192,158,203,229,229,104, 68,107,238,220,185,145,115,231,206, 45, 50, 66,246,130,201,122,179, 69,165, 69, + 34, 69, 77,103, 15,207, 43, 39,143, 31,117,218,119,135,197,153, 59, 89,232,215,186, 2,116,217, 79,177, 96,210,251,217, 20,120, + 51,205, 48,185, 38,131,126,175,193,144, 63, 27,128,165,196,139,198, 39,168,145, 66,170, 60,181,106,205,111, 54, 79,149, 10,155, + 47,100, 39,229,228,219,172,207,187,173,172,212,141, 19,107,170,216, 56,107,152, 49,253,241,245,210, 90,226, 28, 15,209,220,213, + 7, 0,240,224, 56, 14, 60,199, 65, 40, 85, 42, 60,171,134,164, 23, 84,116, 82, 1, 77, 25, 95,172, 1,120,206,150,148, 25, 91, +114, 24,148, 2,224, 34, 23, 98,199,185,100, 0, 72,103,180, 55, 31, 12,126,223,222, 93,104, 52, 75, 53,117,170, 85,227,155, 54, +109,154, 43,147, 57, 52,253, 21,227,237,237,125,109,234,212,169, 53, 71,140, 24, 33, 17,139,197,176,217,108,238,191,172, 89,195, +173,153, 61, 18,125,199,174,130, 72, 44,129,193,104,129, 80, 40, 64, 78,158, 14,185, 26, 61,180,122,107,217,175,160,152, 24,179, + 26,152,191,127,159,184, 79, 87,101,253,102, 98, 90,132,198,193,190, 56,115, 98, 63,127,229,248,134,145,134,140,232,223, 28,188, + 16,161, 51, 90,145,146,101, 68,114,150, 17,105, 57, 70,164,101,155,144,150, 99, 4, 69, 81, 48,154,109,229,122,112,229,103, 68, +237,218,252,219,186, 94, 38, 11, 6,182,233,210, 7, 95,253,184,170,226,230,159,231,157,138,229,233,150, 14, 38,218,178,145,145, +145,241, 31,125,244, 81,131,109,219,182, 49,117,235,214, 53, 60,120,240, 64, 94, 96, 34, 45, 74,165, 92,182,126,229,220, 19,205, +154, 53,219,158, 28,253, 48,188,160, 63,189,212,138,189, 98,219, 97, 18,153,229,214,168, 64, 69,139,174, 85,125,228, 8, 84,104, +187,214, 84,222, 89,144,213,225,139, 57,234,240,101, 25,169, 38,219,239,106, 3,211, 48, 89, 39,116, 40, 7,207,106, 50, 38,244, +237, 55, 16, 12, 69,195, 98,212, 39, 20, 94, 92, 42, 23, 49,166,109,121, 8,165, 84, 8, 39,153, 0, 74,153, 16,173,106,187,163, + 12,245, 25,111,101, 57,232, 77, 44, 12, 38, 27,140,102, 27, 60, 3,220,176,118,243, 46, 60,205, 48,224,192,245, 76, 68, 37,104, + 81,163,130, 2, 60, 95,122, 53,201,177,214,252,158,239,125,224,196,208, 20, 24,154,162,107,215, 12, 66,182,206, 2,145,128,134, + 72, 42,131, 66, 34,128,179, 76, 8,145, 72,136,140,140, 12,152, 76, 38, 4, 6, 6, 74, 75,182,130, 60,156,148, 50,212,168,226, + 7,139,213,134,163,231,239, 99,246,248,190,232,220,166, 9, 40,161, 18, 15, 77,141,224,228,238, 4,142,166, 97,177,113, 48, 91, + 88, 0,180,177, 56,189,128,128,128, 14, 10,133, 66,161,215,235,181, 79,159, 62, 61,155, 22,181,239, 41,203,244, 30,117,252,100, +248,230, 30,239,116,198,173,136, 72,236,222,119,240, 66,166, 71,222,196,194,239,212,169, 83, 39,196,211,211, 83,153,149,149,165, +185,119,239,222,181, 55,109, 23,240, 52,253,101,104,171,118,208,229,102, 32, 61, 49,206,225, 86,116,173,138, 78,248,126,238,170, +198,193, 65,193,141, 89,222,110,188,106, 7, 58, 97,194,143,203, 27, 87,171, 17,212,184,112, 64, 72,173,192,146,167,101, 19,200, +157,186,124, 56,226,171,185,189,250, 13, 67,248,201,131, 88, 60,123,210,102,133,139, 87, 45,119, 55,151,134,117, 67,186,224,194, +169,131,144, 58,249,192,205,195,167,213, 7, 31,127,222,169,223, 7,163,113,249,194, 41, 44,155,247,237, 38,214,164,221,234,200, +190, 42, 84, 85,188, 26, 52,106, 54,216,201,221, 27,185,121, 90, 56,185,169, 80,171,126,211,193,247,239,152, 38,231,103,196,170, +223,216,116,240, 60, 76, 22, 30, 57, 58, 11, 18,213, 6,196,167,217,141, 22,199,149, 33, 39,136,229, 40,165, 84, 32,112,183, 62, + 14,188,123, 42,156,175, 24,224, 77,205,159, 57,137,177, 64, 10,117,174,221,100,169, 53,102,168,243,204,208, 25,173,112, 87, 8, +192,177, 92,153, 91,221, 57, 58, 11,156,228, 66,184,200, 69, 14, 71, 25,139, 98,245,175, 59,130,239, 68,167,188,187,120,241, 82, +249,237,216, 23, 76,150,208, 30,205,146,136, 24,176, 28, 7, 56,112,199, 11, 5,194,113,189,187,117, 66, 98,166,193, 62,106,153, +166, 80,163, 94, 51,120,202, 56,116, 28, 48, 5, 0,208,179,155, 61,181, 45, 54, 53, 31,135,174,168,129,151, 19,187, 75,174,139, + 13, 6,102,205,150, 35, 95,238,218,185,221,197,200, 10,240,203,177,120,232, 77, 54, 72, 69, 12, 36, 34, 6, 50, 17,243, 82, 62, +118,233, 70,203,158,115,247, 52,211, 10,189,209, 8,141,193, 10, 30,192,181,199, 58, 24,204, 54,228,229, 91, 17, 82,211,173,124, +129, 16,138, 58,194,243,124,247, 87, 13,209,171,102,233,133,136, 84, 81, 26,215, 95,212, 40,252,124,113, 70,238,197,156, 45, 0, +101, 26,193, 37,120,213, 57,190,184, 45, 82,184,213,114,113,114,185,114,252,216, 97,229,190, 59, 28,206, 70,216, 77,150,213,144, +137, 69,147, 7, 37,105,114, 51,219, 3,136,113,244,159,201, 61,107,213,151,138, 37,225,255, 89,250,139, 69,229,237,207,237,189, +146,155,145,167,103, 95,114, 19,172,201, 68,243, 28, 47, 50,166, 63,118,168, 15,129,166, 41,203,143, 99,251,128,227,121, 76, 91, +186, 11,115, 38, 14,128, 82,246,129,156,162, 40,121,190,209,134,241,211,215, 97,209,247,195,157,228, 18, 1, 40,202,158, 19,245, +225,192, 62,142, 93,128, 70, 27,158, 92,221,166,211,198, 30,126,240, 98,119, 97,243, 86,239,220,104,222,188,121,174,155,155, 27, +100, 50,217,243, 72, 69, 49,120,123,123,127,255,227,143, 63, 6,143, 25, 51,230,217,100,159, 2,129, 0,159,125,250, 41,205,178, + 60,142, 29,219, 0,175, 74,141,112,240,247, 43, 8,235,208, 20, 58,189, 17,217,185, 90,112, 96,222,248, 66,212,230,102,134,225, +190,186,164, 0, 0, 32, 0, 73, 68, 65, 84,167,197,223,109,214,178,125, 79,156, 61,177,159,191,114,108,253,200,178,204,209,227, +230,238,150,120,243,238,147, 90, 20,229,110,143,104, 21,152, 44,179,149, 67, 69,111, 57, 18,227,159,192,213,197, 37,209, 81, 61, +153, 87,112,111,138,230,199, 80,224, 55,228,167, 63,218, 5,128,207, 79,125, 48,104,215,214, 53, 17,145,247,110,207,238, 49,120, +156,160, 75,191, 79,153,159,231,126,254, 45, 0, 71, 39,222,179, 68, 69, 69,221, 31, 62,124,120,139,203,151, 47,179, 0,244, 20, + 69, 89, 25,134,145,155,205,102, 81,251,246,237,243, 30, 62,124,120, 14, 69, 39, 45,190, 68,171,143,118,121, 82, 18,237, 59, 98, +206, 50,168,162,147,182,115,251,214,161, 8,173, 19,128,196,214,161, 0, 48, 46, 65,167, 12, 54, 86, 91,183,195,106,147, 29,253, +249,215, 67,115, 70, 14,232, 52,126,179, 96,218,226,212,195,211, 74, 76, 68, 77,124,112,174,107, 81, 54, 94,192,208,112,146, 9, +161,148, 9,224, 36, 19,194, 73, 42,132,213,198,151,165,229,200, 91,109,156, 61,162,101,182, 65,103,176, 33,252,118, 58,210,242, +204,200,213, 90, 96,176,176,224,193,219, 91,163, 14,212,230,234,199,151, 92, 11,159,164,174,129,141,242,214,172, 88,232,188,231, + 98,210,179, 17,125, 46,114, 49,156,228,246,209,216,231,207,159,135,135, 71,233,173,125,142,227,176,251,248, 53, 44,222, 24,142, +227, 27,190,134, 84,196,160,126,239,233, 24,246,110,115,112, 60,135, 39, 81,145,233, 53,106, 55,240,166,105, 25,104,138,130,201, +202, 1,224,139, 45, 79,179,217,236,241,244,233, 83, 77,245,234,213,125,252,252,252,250, 49, 12,195, 67,123,219,180,127,123,182, +254,244,225,173,242,124,131,137,149,219,242, 54, 84, 79, 53,116, 71,245,234,160, 40,138,119,118,118, 22,133,135,135,235,234,213, +171,231,245,134,183, 18, 45, 83, 5, 45, 27,241,201,151,253,170, 85,173,138, 93, 91, 55,128,231,169, 61,142,126,121,203,161,203, +152,249,205,203, 35, 12, 39,252,184,188,241,162,233,227, 94,122,239,147,111, 22,151, 56,234, 80, 38, 81, 78,236, 59,104, 20,110, + 92,251, 3, 11,166, 79,216,110,210,101, 15,179,218,172,253,179, 83, 99,183, 87,169,221, 28,188, 69,139,147, 59, 23, 98,192,144, +145,146, 46, 61,250,225,242,133, 83,152,243,237, 39, 91,244,185, 25, 31,193,193, 36,103,142, 23,142,105,223,245, 93,161,193,100, +193,242,249, 63, 96,244,196,217, 8,233,208, 83,120,239,246,149, 49, 0,102, 56,156, 14, 97, 97,209,190,158,167,221, 60, 91, 57, + 28,140,101, 4, 69, 93,129, 2,134,162, 27, 86,117,133,193,108,131,166,148, 70,165, 64, 36, 76,203,205,211, 84, 90, 57,231, 75, + 38,223,104,131, 58,207,140,140, 60, 19, 50,115,159, 27,172,204, 60, 19,212,121,102, 8, 5, 20,162, 99, 18, 64, 11, 5,101,206, +207,203,209, 89,209, 44,200,205,126,143,190, 97,239,136, 85,224,220,252,248,185, 59,125, 23, 47, 94, 34,189, 19,167, 69, 68,172, +166, 32,146,197, 64, 34,164, 33, 46,248,157,229,236,185,145, 37,225,236, 85,181,202,208, 15, 63,232,232,172,148, 33,229, 81, 6, + 4,140,125,138, 24, 23, 85, 0, 92, 36, 70,124,254,201, 40,120,122,184,226,105,166, 9,203,246, 69, 35,226,254, 99,112,134,178, + 29,246,242, 95,182,135,141,248,108,130, 43, 45, 20, 99,211,137, 56,251,126, 50, 44, 30, 94, 57,100, 76,121,114, 55, 95,167,201, +226,193,179, 14,230, 32, 83,188,141,181, 95,110,115,166, 77,193,246,141, 63,225,196,205,140,103, 87,224,197, 61,139,240,229, 55, +179,144,169, 49,163,168,235,178, 36, 63, 2, 64,253, 66, 36,234,181,237, 23,204, 81, 81,219, 84,193,182,185, 24, 13,243, 43,230, +202,252,202,251,230, 87,244,138,154,251,111, 77,169, 93,135,175,153, 34, 87,175,186,114,169,226,143, 99,199, 14, 41,246, 71,240, +207, 76,150, 69,159,201,207, 30,215, 51, 73,147,171,238, 82, 38,147,229, 85,163,174, 68, 46, 57, 55,117,214, 50,147,183,127, 37, +219,209,219,154, 44,173,145,181,189,158,131,160, 96, 21, 46, 94, 70,129, 88,178, 88,104, 48,255,144,153,249, 32,191,180,200, 19, +199,243, 56,124, 53, 13, 60,111,111, 34,237, 60,159,140,130,150, 57, 88,206,222,173,242,251,237, 12, 8, 10,242, 80, 28, 13,127, +175,254,229, 39, 77,247,122,121,249,131,231, 76,123,214, 93, 24,210,192, 30,201,114,118,118,134,171,171, 43,148, 74, 37, 74,235, + 58,164, 40,234,195, 17, 35, 70,188,214,250,207,200,200, 64,167,142,237,177,226,167,181,104,208,113, 40,126,191,116, 2, 22, 43, +135,250,181,171,162,146,159, 27, 18,211,181,111,116,163, 43,188,131, 63,107,214,254,221,111, 91,117,232,137,240,227,123,249, 43, +199,127, 29, 85,214,137, 16,187,119,106,113,104,230,204,105, 85,166,206, 94, 41,113,146, 10,240, 64,103, 6, 77, 81,168,232, 45, +135,135,130,198,217,253,155,140, 3,122,182,112,120,114,188,128, 0,255,205,139, 86,172, 81, 44,154, 55,189,253,141,155, 84,184, + 46, 37, 58, 27, 0,244,233, 81,243, 31, 2,247, 43,252,113,242,104,131,182,125,224,237, 87,181,115,108,250, 67,135,205, 6, 0, +125, 76, 76, 76,236,212,169, 83,131,231,205,155,199, 51, 12,195, 1,144, 44, 93,186, 84,255,232,209,163,219,176, 15,205, 69,105, + 15,155,142,157,235,140, 87,138,217, 16,119, 57, 93,167,170,143, 28,161,117,236,189,162, 3,186,183, 66, 64, 96, 32, 98,210,244, + 13,179,245,156, 80,103,102,170,174,250, 37,226,122,101, 79,102,164,205, 96,190, 15,224, 64, 89,207, 15,133,231, 9,242,133,209, + 44, 39,153, 16,156,253, 90, 41,147,209, 50, 89, 88, 24, 76, 44, 12,102, 27,242,205, 44,244,102, 22, 28,111,191, 39, 40,138,130, +197,198,193,161,102,243, 43,215,190,179,187, 39,170, 86,166,224, 44,183,239,155,115,193,116, 15, 20, 0, 15, 15, 15,168, 84, 42, +135,162,162,102,139,253, 22, 55, 91,185,103,221,250,102,139, 13, 60,207, 35, 58, 58,234,235,248,216,216,222,213,107, 84,111, 83, +187,126, 3,119,185,132, 6,128, 98,141,150, 94,175,103,157,156,156, 84,238,238,238,116,114,114,242, 51,243, 92,189, 97,123,219, +190,189,123,208,183,111, 31,221,131,107,119,158, 13,113, 55, 24, 12, 84,203,150, 45,157, 3, 2, 2,104,147,201,164, 41,235,105, + 82,120, 5,189,235,230,225, 62,251,195,143, 70, 7,181,239, 20,134, 51,167, 79,226,192,222,109,191,233,213,209, 39, 29, 21, 9, + 14,174,249,218,168,195,106, 53,130, 94, 27,117, 88,169, 74,141, 18,141, 86,237,250, 77,155,243,148, 0, 39, 14,239,228,141,180, +229, 19, 0, 28,107,212,238,220,177,250,251, 25,131,198,124, 83,173, 91,175, 65,248,112,200, 48, 8, 4, 12,206,254,126, 8,139, +166,127,117, 68,151,151, 49,212,145, 52, 1,123,232,173,150,200, 95, 22,240, 69, 96,181,186,184,121,229, 2,158, 68,223,139,188, +115,253,114,157,234,245, 66,224,229, 87,241,139, 4, 79,102, 30, 30, 60,176,148, 38, 99, 54, 26, 19,134, 13, 29,130, 23, 71, 29, +134, 54, 10,246,160, 94,189, 1, 0,232,181, 25,150,245, 11,199, 63, 42, 28,117,200, 89,204, 9,197,233,230,229,168,119,159,189, +116,117, 98,239,238, 97,116,166,198,108,143, 96,229,153, 11,126, 76,200, 44,252, 93, 99, 66, 13, 63, 37,162, 34,111,114,198,188, +204, 61,101,188, 47,141,195,250,119,189, 95,120,237,114, 28, 15, 10, 48,150,185, 91, 74,232, 60,106,254,130,197,210, 59,177, 58, + 68,196,105,236, 93,133, 66,198,110,176,132,244, 51,211,101, 31,205, 94, 74,116,136, 98,230,124, 60,116, 32, 50, 53, 22,112, 28, + 32, 96,232,130, 31, 17,158,106, 41, 36,106,245,200,204, 81, 35, 54, 62, 1,185,105, 79, 64,211, 52, 60,253,130, 28,158, 73,154, +229,197,190,122, 51, 95,175, 95,247, 54,130,189,127,164, 66, 46, 17,192,164, 77,199,177, 29, 11,213, 38,157,102,182, 65,175,219, +235,200,124,142,207, 83, 16, 40,181, 70,103,244,150, 8, 25,236,218,184, 18,253,135,125,242, 82,237,251,245,119, 51, 1,154, 66, +118,142, 22, 20, 69,169,203, 86, 47, 81,215, 75,218,126,195,200, 88,185, 53,138, 48, 91,175, 55, 20,138,111,141,242,199, 78, 30, + 63,164,184, 24, 47,193,181,168,212, 2,147,165,230,102,141,237,158,164,205,203,238, 10, 32,186,108,237, 66,186,235,128,143, 39, + 70, 86, 13,170,109, 58,115, 79, 23,151,155,111, 45, 54,207, 33,180,223,212,200, 27, 71, 86,116,203,179,198,124,170,240,173,205, +114, 54,219,124,131, 58,122,122, 49, 93,135,226,233,203,118, 61,235, 54,156, 60,111,147,253,119,150, 5,203,115,224, 57,224,243, +239, 87,195,198,177,224, 88, 22, 28,203,195,202,242,242,210,118, 87,229, 87,105,111,206,195,157, 53, 7,207,120,189,187,208,213, +213, 21, 30, 30, 30,240,240,240,128,179,179,115,169, 70, 75, 40, 20, 42, 5,130,151,139, 58, 33, 33, 1,241,241,241,112,118,118, + 6,207, 89, 97,182, 2,117, 67,186,224,238,147,123, 56,117,241, 54,120,142,133, 66, 89,246, 85, 94, 20,222,193,159, 54,109,215, +123,101,135, 94,195,241,251,222, 95,248,235,231, 15,141, 54,100, 68,175,115, 56, 66,207,178,148,213,106, 69,247, 46,237, 18,110, + 69, 62, 62,254,221,196, 49, 97, 45,122,140,150,132, 6,251,195,104,102,145, 20,255, 4,103,247,255,106, 12,170,226,123,162, 99, +235,230, 9, 86,171, 21, 44,203,150,250, 32, 55,154, 45,153,140, 80,166, 24, 56,112,176,240,250,181,107,123, 20, 94, 53,118,177, + 20,125,135,226,185,250, 20,207,247,173, 95,191, 22, 44, 86, 14,122,189, 38,167,172,199,172,213,106, 99, 55,108,216, 80,101,232, +208,161,242,218,181,107, 11,159, 60,121,130, 69,139, 22,101,105,181,218, 88, 71, 53, 78,158,143, 90, 42,160,114, 30, 21, 70,180, +158,182, 10,197,192, 30,173,176,253,200, 69,156,189,112, 25, 9, 58,229,109,157, 77,176, 63, 49, 33,197, 84,199, 93,179,167, 87, +104, 37,102,215,198,156, 61,145,237,166,188,207,243,146,147,153,231,166,229, 59,126,115, 3, 90,131, 21,206,114,251,124, 79,133, +145, 45,134,162, 28,118, 68, 20, 16,123,225,242,205,186, 77,106,212,198,173,216, 60,100,228,154, 96, 48,217,192,113, 60, 56,240, +240,112, 18, 67, 42,162,241, 52, 62, 22, 28,111,137, 43,227,163, 66,221,182, 77, 91, 1, 64,129,162,120,129, 80, 32, 0, 15,251, +252,138, 50,153, 76,167, 82,169, 28,138,104, 89,108, 54,244, 13,107,142,144,166,245,209,123,180,125,206,204,211,191, 77,129,155, + 82,136,237,155,215, 33,241,252,210,205, 85, 66,199,156,188,119, 55,242,189,200, 91,127, 12,126,167,177,172,161,143, 32, 69, 84, + 92,152, 52, 63, 63,127, 15, 0,177, 72, 36, 10,107,211,166,141,251,158, 61,123,114, 61, 61, 61, 57,177, 72,164,238,213,179, 7, + 39, 20,137,178, 11, 63,123,233,210, 37,225,232,209,163,157,114,114,114,158,166,167,167, 95, 6, 96, 45,185, 33, 24,220, 9, 52, +182,129,162,164, 74,153, 60,161,114,229,170,126, 77, 67,154,187,188,219,183, 63, 36, 98, 9,126, 63,121, 28,203,151,204,219,169, + 75,125,240,113, 89, 74,242,109,141, 58, 76,122, 26, 23,171, 55,152,234,213,109,210,142,186,112,114,255, 56, 11, 60,151, 48, 18, +203,194, 78,125, 63,169, 22,155,162,195,242,185, 95,195,205, 69,129,184, 39, 15, 13,143, 30,220, 93,109, 53,106,190,118,216,100, + 1,144,103,177,239,133, 14, 9,115, 51, 89, 88,156, 15, 63, 98,228,108, 92,216,229,115, 71,159, 84, 8,106, 42,173,219,180,163, + 91,230,129,117,125,245,192,246,210,116,146, 31,190, 30,193,229,205,185,113,167,195, 79,185,120, 87,172,195, 80,160, 96, 49, 25, +161,142,185,110,211,167, 63,212,104,146,239, 57, 52, 10, 55, 43, 17,223,127,243,227,127, 62,109,218,164,137,130,135,244,165, 8, + 86,161,193,202,212,152,225,233, 36,134, 65,163,198,163,235,199,141,122, 53, 83,226,124,103, 54,115,190, 60, 51, 35, 93,252, 60, +157, 33, 58,164,164,207,103,102,164,139,109,230,124,121,233,143, 58, 6,206, 10, 49,238,198, 37, 63, 75,124,151, 8,237,185, 89, + 98, 33,243, 44, 79,171,176, 46, 40,133,118, 34,169, 43,146,179,140,160,192,131, 99,109,176, 89,205,208,106, 52, 72, 78, 73, 67, +122, 90, 58,180,218, 92,200,149,110,168,219,176, 25,156, 20, 82,220, 57,187, 19, 60,207, 59, 52,175,161,149, 18, 6, 55, 13,105, + 45,185, 23,111,207,197,146, 10,121, 28,218, 54, 47, 75,167,201,104,173, 75,125,244,168,172,117,177,141,101, 79, 69,220,127, 84, +167,130,111,101,234,246,147, 60,108, 94,187, 2,230,130,200,166,213,202,226,222,211,124,164,102,235,241, 52,230, 1,207,177,236, + 41,252, 75, 16, 20, 31, 0,132,160,126,221, 90,232,242,193,187,248,233,167,213,136,137,141,231,102,143,235,246, 84,167,205,125, +167, 12, 38,171, 19, 10,230,218,208,167, 71,205, 55,184, 53, 77, 58,120, 43,155, 54,152,249, 18, 19,124,164, 94, 21,209,250,227, + 69, 39, 12,218,108, 49,107,210, 11, 14,109,254,120, 91, 81,154,118, 7, 13,243,236, 9, 3,160,148, 9, 64, 81, 20, 10,187, 11, + 87,205, 28, 5,185,196,222,183,108, 48,217,240,193,248,197,216,188,248, 43,240, 0, 6,245,191,168, 47,110, 63, 97, 95,187,240, +115, 95, 92,171,144, 16,159,145,220,169,231,132,211, 70,139,196,212,163,207,208, 27, 77,154, 52,201,149,201,100,144,201,100,112, +118,118,134,155,155, 27, 92, 93, 93, 75, 61,118,171,213,170, 51,155,205, 30, 98,177, 24, 28,199, 33, 46, 46, 14,113,113,113,200, +203,203,131, 90,173, 70,190, 78, 99,187,118,122,151,160,110,104, 55,248, 85,173,135,138, 53, 26, 64,200, 80, 16, 8,104,156, 61, +184,182,184,253, 44,218,100,181,237,181,170, 99,239, 17,248,125,239, 26,254,250,249, 67, 99, 12, 25,209,107, 29, 61, 71, 5,221, + 61,119,250,246,237, 91,111,244,232,209,162, 31, 39,142, 62,113,228,228,217,232, 93,135,215,244,204,201,201, 13,224,121, 30,174, + 46, 46,137, 3,122,182, 56,212,190,101,211,132,211,167, 79,115,219,182,109, 51, 81, 20,117,183, 36, 77,123, 37,149,241,219,233, + 83,225,211, 90,183,109,135,117, 27,183,181,141,188,255,160,237,147, 39,143, 16, 80,177, 42, 42, 87,169, 1, 61,229,134,240,115, + 23,160,203,205,248,205,145,253,124, 37,170, 69,229,228,228,252, 49, 96,192,128, 46, 23, 47, 94,164, 7, 12, 24,160,207,204,204, +188,244, 66, 20,139, 47, 77,243,242,207,125,212, 0,126,171,216,118,216,206,100, 75,238, 23, 0,230, 5, 86, 12,196,217, 11,151, +113,249,226,213,213,153,242,192,233, 31,127,240,209,168, 74,189,152, 17,189, 66, 43, 49, 42, 55, 57,182,174, 89,196, 28,188, 28, +191, 56, 62,139, 93, 55,239,220,180,153,142,156,163,103, 15, 14,173, 5, 45,107,185,195,202,242,224,120,123,133,235, 36, 21, 22, + 87,241,190,166, 41, 48, 75, 62, 30, 51,122,244,147,186,245, 27,126,249,193, 71, 99, 68, 13,171, 6,224,218,227, 92,128,162,224, +238,163, 64,106,106, 42,206,239, 94, 99,203, 73,126,184,154, 97,184, 25,101, 40, 79,228, 36,220,174,254,194,230,168,204,204, 76, +156, 61,123, 22,133, 6,203,203,203,171, 56,163,245,146,102, 86,122,202,165,153, 11,126,105, 57,242,195, 62,232,209,174, 14,206, + 93,127, 2,115,193,124, 77,133, 67,201, 99, 47,255, 44,254, 98, 64, 85,243,167,125,131, 52, 6,171, 56,254,251,184,188,243,176, +175,193,202, 21,179,159,230,236,236,236,131, 81, 81, 81,173, 26, 52,104, 80,233,232,209,163,217,145, 87, 79,140,123,113, 39, 38, + 76,152,160,252,233,167,159,228, 60,207, 95, 50,155,205, 49, 14, 29, 59,141,173, 55,111,220,240,176, 88, 57, 92,184,122,167, 86, +199,150, 13,193,241,192,245,235,215,177,110,253, 58,227,221,136,219, 11,243,211,125,102,148, 96, 94,138, 44, 79,182,124,163, 14, +159,105,166, 38,199, 47,252,253,200,238,205, 77,219,246,196,224,207,103,204, 56,123,100,219,180,198,173,123,208,181,154,118,193, +205,203,225, 56,117,244,248,127, 44,186,236,105, 40, 61,119,164,200,253,148,200,228, 99,107, 55,110,139,167, 9,241,136,123,116, +239, 55, 99,246,227,148,132, 39,204,111, 41, 73, 9, 99,170,212,105,137,139, 39,182,143, 43,193,104,149,120,205, 7,120,201,214, + 28, 61,124,112, 96, 82,210,207, 62,249, 6,163,132,231,121,163, 68, 44, 72, 83,210,218, 29, 26,135,247,243,129, 69,157, 82,169, +111,255, 15,198, 28, 89,190,124,137,208,219, 85,142,180, 28, 35, 52, 6, 11,180,122, 11,104,138, 66,117, 63, 5,244,218,108,156, +219,189,192,106,214,229, 12, 0,158, 88,138,211, 84,168,130,103,229, 60, 14,255,124,194, 39,103, 32,118, 9,240,171,220,225,155, + 18,163,117,218,228,219, 61, 39,124,114, 40,152,231,249,142, 10, 85,176, 54, 63, 35,106,106,113,199, 78, 81,246,251,123,112,251, + 0, 88,108,246,249,199,108, 28,192,114, 92, 65,148, 15,224,159,245,231, 83,165, 28, 59,197,237, 56,114, 9, 41,233,185, 48,152, +173, 48,153,109,176, 88, 89,208, 12, 3, 87, 55, 87,212,168,220, 8, 46,174,206, 72, 79, 75,193,229,211, 7, 17, 29,113,238, 18, +197, 99,186, 65,253,232,180, 35,231, 72, 36,115, 13,246,245,243,161, 83, 53,102,200,196, 12,110,159, 59,106,177,154, 77, 11, 29, + 52, 89,175,105,230,102,101, 47,254,114,226,164, 65,191,110,216,232, 83,175,138, 51,146, 50, 13, 72, 82, 27,161, 53, 90, 11,140, + 24, 7,147, 46, 19, 17,225, 27,211, 88,163,118, 49,254, 37, 20,107,180,108, 22,163,118,207,241,107, 30, 83,166, 45, 96, 30, 63, +137,177,206,250,162,123,146, 65,167,233, 86,230, 72,214, 11,252,250, 89,149,237,127,198, 65,188,214, 93,200,115,224,120, 30,135, +174,166, 61,235, 46,228, 10, 50, 47,111, 61, 41,121, 25,193, 23,215, 46,108,215,109,220,239, 17, 81,218, 45, 6, 67,186,203,195, +199, 11,115, 0,128, 97,152,103, 63,133,185, 89, 70,163,209, 92, 74, 23,202,166,181,107,215, 78, 30, 51,102,140, 36, 49, 49, 17, + 79,158, 60, 65,110,110, 46,164, 82, 41,142, 31, 63,110, 5,103, 91, 24,113,113, 95, 92,212,205,147, 63, 4, 55,233, 82,161, 94, +104, 55,200,229, 10, 8,120,199,147, 49,229,170,160,129, 77,218,246, 90,217,241,221,145, 56,181,111, 45,127,253,220,193, 79, 12, +234,232, 53,101, 45,203,220,220,220, 72, 0,143, 22, 46, 92,216,112,221,186,117, 85, 38, 78,156, 24,179,105,229,180,229, 0,144, +149,149, 5, 0,184,117,235, 22,255,201, 39,159,152,140, 70, 99,108, 78, 78,206, 77,148, 50, 0, 2, 0, 12,106,249,156,117,171, +230,213, 77, 76, 78,237, 83,181,110, 51,120, 85,105, 6,159,234,205,145,163,181,224,218,227, 20,196, 60, 56,141, 7, 23,118, 31, +213, 43,109,211, 80,198,249,141, 27, 52,104, 16, 64,211,116,101,157, 78,231, 83,187,118,237, 6, 10,133,226, 86,131, 6, 13, 26, + 9, 4,130,164, 27, 55,110,196,151, 69, 43,225,220, 70, 83,197,182,195,150, 37,104,157,218,199,164,233, 27, 37,104,157,110,233, + 37, 46, 95,169,195,151,153,126,101,252, 23,243,150,204,200, 93, 27, 53,123,182,174, 89,196,124, 48,106, 2,123, 47,207,237, 11, +129, 76,252,123,217,194,213,116,234,167, 67,123, 63,159,222,161, 32,146, 85,240,187, 67, 97,250,188,188,136, 60, 0,147, 35,238, + 11, 87,222,251, 98,244,204,250, 77, 91, 14,105,243,206, 0,218, 38, 82,226,196,190,159,249,216,136,240, 93, 2,158,253,206,224, +192,106, 0,165,118, 7,153,205,142,152,172,215,247, 49, 81,209,110,215,182,245,195,246,236,219, 59,247,221, 94,189, 61, 86,125, +255, 62, 22,252,178, 31, 10,153, 4, 60,199,225,253,246, 1,253,126, 24, 81,179,103,128,183,212,127,207,153,164,243,159, 47,185, + 55, 89,175,183, 68, 59, 16,137,225, 51, 51, 51, 47, 40,149, 74,117,171, 86,173, 66, 36, 18, 9,149,153,153, 41, 80,169, 84, 54, + 23, 23, 23,115, 82, 82,146,222,100, 50,237, 1, 80,166,105,199, 45, 86, 14,113,233, 70, 28,216,187, 7,119,174,158,198,131, 7, + 81,218, 7,247, 31,172,160, 4,252,146,252,244, 71,217, 64,153, 27,248,224,138, 28,117,200,151,121,212, 33,107,210,110,221,180, +122, 86, 7,189,209, 52,172, 65,139,238,168, 84,171, 37,109,177,178,184,123,253, 12,206,236, 94,178,192,162,203,158, 82,158,115, +236, 87,161, 74, 13,158, 17,227,143,179, 71,192,115,220,106, 0,224, 57,110,245,173,139, 71,199, 52,239, 54, 2,238,170, 74, 13, +114,159,222,162,240, 6,179,135,139, 4,116,254,177, 61,191,238,139,139,139,195,195,135, 15,241,248,241, 99,100,103,103, 99,235, +214,184, 50,157, 31,125, 78,252,239,209,247,233,174,239,189, 63,248, 80,191,129, 31, 74,171,212,168, 71, 7, 87,112,131,135, 82, +128,168,199,241,136,190, 17,193, 69, 93, 59,106,180,104, 50,222, 53,228,196, 23,107,252,228,158,181,188, 1,118, 74,225,218,133, +161,161, 45,131, 39,205,158, 27,226,225,165, 42,178, 30,207, 82,103,136,191,254,252, 96,240,229, 43,127, 56,180,214, 33,199,178, + 89,163,134, 13,224, 24,251, 66,161,120, 22,167, 46, 40, 61,123, 99,202,254, 62,207,217, 74,141,224,127,212,167, 53,108, 28,135, +124,131, 5,154,124, 19,242,180, 70,164,102,100,225, 78, 68, 4,206, 29, 58,136, 39, 81,119, 98,173,102,243, 73,154,166,118, 27, +210,163,207,149,173,167, 73, 80,197,195,221, 29,177,217, 58, 72,197, 2,196, 71,223, 48,229,107,242,182,188,233,117,100,200,122, +148,154,193, 80, 93, 6, 12, 24,120,188, 67,215, 94, 46, 77, 91,116,146,123, 58,187, 66, 36,224,241, 40, 46, 5, 55, 47, 29,207, +143,185,115, 94, 99, 53,235,194,222,198,170, 47,127,115, 74, 31,117,104, 49,229,247, 28,212,187,237, 94,134, 17,136, 57,206,102, +178,152, 77,239,149,199,100,253, 89,240, 60,155, 52,108, 80,159,151,218, 6, 54,142,151, 13,234,127,194,240, 98, 91,193,202,242, +242, 65,253, 47,233,237, 21, 72,241,137,125,190,190,238,221, 11,215, 46, 76, 72,200,186,158,157,109, 58, 3, 32,201,104, 52,190, +241, 62,166,167,167,207,156, 61,123,118, 15,189, 94, 95,179, 93,187,118, 18,103,103,103,100,101,101,225,228,201,147,214,195,135, + 15,223,207,200,200,248, 1,200,176, 25,208,232,183, 8,227,190,161, 81, 55, 78,254, 80,179, 73,215, 10,245, 90,116,115,188, 50, +147,200, 70,118,232, 53,156, 58,181,127, 45,127,237,236,254, 79, 13,234, 71,191,148,163, 88, 45, 70,163,241,170,209,104,188,247, +221,119,223, 53,245,246,246,246,254,225,135, 31,164, 26,141, 70,184,106,213, 42, 99,102,102,102,154, 70,163,185,140, 18,242,105, + 94,231,150, 53, 47, 25,125,143,237, 89,219,158,223,179,182,179,171,167,127, 23, 23,175, 10,213,114,213,201,177,121,234,148,147, + 0, 78, 21, 76, 20, 89, 38, 26, 54,108, 88,149,162,168, 1, 0,234, 42, 20,138,234, 74,165, 82,194,243,124, 77,138,162, 34, 57, +142,139,168, 93,187,246,225,251,247,239,151,105, 50,217,132,115, 27, 77, 1,193, 45,183,101,235, 57,145,153, 22,109, 75, 56,183, +209, 4, 0, 25,191, 79,210, 3, 56,112,191,221,228,190, 7, 47,199, 47,143,204,113, 25,167, 62, 59,247, 96, 89,247, 57, 47,233, + 78,245,183,117,253, 27, 83,239, 39, 1, 24, 22,113, 3,139,238,222,186,252, 35,197, 67,200,194, 54,203,144,241,248,198,219,208, + 23, 10,133, 70,127,127,255, 34, 71, 23, 74, 36, 18,163,201, 84, 82, 0,229,156, 77,151,138,117, 64,219,141,123,119,110, 28,182, +255,224,129,185,109, 58,190,235, 33,173, 80, 1,149, 85, 20, 54, 78,105, 60,238,244, 45,245,181, 94,147,206,255, 20,147, 98,140, + 64, 25,243, 97,116, 58, 93, 52,128, 28,157, 78,215,155,231,249, 68,138,162, 2,114,114,114,110, 91,173,214,187,101, 54, 4, 28, + 6,135,134, 54,219, 74, 81,148,128,183,113,243, 47, 11,153,109,198,212, 7, 73, 40,231,178, 36,245, 42, 59, 99,252, 15,203, 26, + 87,171, 30,212,184,112,173,195, 58,149,156, 48,122,242,162,198,149,170,212,104,252,124,253,195, 82,211, 4,120,171, 62,231,227, +189,235,231,159,191,117,229,204,183,158,190,149, 42,165, 37,197, 60, 72,124,124,123, 38,107,212,236, 45,239,121,142,123, 28,185, +100,221,194,201, 19, 83,147, 99,215,233,213,143,238, 1,128, 94,253,232,222,131,155,248, 62, 51, 45,105, 98, 86, 70,204,194, 55, + 45,139,252,252,252,148, 45, 91,182,184,182,108,217,146,246,246,246,134, 90,173,198,153, 51,103, 56,142,227,146,203,172,149, 29, +123, 38, 63,155,114,255,237,151,149,243, 69, 10,167,110, 54,155,205,143,231, 1,129, 64,144,106,214,107,142,107,105,197, 36,228, +196, 27, 75,126,102,112, 20, 0,186,112,237, 66,142,227,168,249,203, 55,198, 11,165, 78, 69, 78,134,104, 53,106,229, 28,199, 57, +188,214, 97,238,211,155,213,222,214,253, 77,241,252,244, 6, 77, 66,190,181, 90, 45,198,130,251,195, 8,192,200,243,200,162,105, +234, 28,195, 89, 79,104,202,209,152,162, 40, 56,243,148, 0, 78, 50, 1, 40, 80,208,229,101,243,101,201,201, 42,210, 16,103, 68, + 71,234, 51,218, 86, 60,102,222, 57, 52,252,247,163,253, 89,150,173, 92, 16, 51,136, 51, 25,242,119,233, 82,221,126, 3,110,216, +240,207,231, 72,161,217,162,254,228,127,228, 80, 55,202,223, 73, 51,184,138,172,119, 5,127,239,161,113,241, 25,215, 98, 18,245, +191,225,229,101,117,202,179,159,140,183,183,247,247, 20, 69, 13, 17,139,197, 74,179,217,156,207,243,252,166,244,244,244,153,120, +109,241,223, 70, 66,153,202, 48, 84, 44,149, 79,181, 24,243,255,208,103, 68, 15, 46,237,216,229, 94, 65, 93,164, 10,197,100,163, + 33,127,147, 62, 61,122,227, 91, 46, 79, 23,137, 68,210, 72,169, 84, 10, 51, 51, 51,175, 2,200,251, 59,157,247, 6, 13, 26, 4, +210, 52, 93,153,227, 56,111, 0, 46,176,143, 10,201, 20, 8, 4,201, 5, 17, 45,190,172,154,173, 62,218,229,217,177,115,157,241, + 39,207, 71, 45, 45,232, 86,124,134,127,191,197,210, 33,221,218, 79,248,109,239,129,162, 70, 29,254,223, 93,243,255, 59,205,182, + 2,165,111,230, 48, 90,236, 50,171, 99,176, 81,159,153,146,252,201,133,187,234,171, 0,180,229,217, 79,145, 72,244,129,197, 98, +145,137, 68, 34,131,197, 98,217,242,119, 57,118,153, 42,120, 56, 13,222,225,149, 41, 56, 80, 55, 94, 25,180,242, 79,185,150,152, +122,245,234,181, 22,137, 68,129, 44,203,202,205,102,179,222, 96, 48,196,197,199,199,255,129,226, 23, 62,255, 83,247, 83,161,170, +177, 68, 36,146,124, 1, 0, 22,139,105, 89,126,198,163,241, 37,125,177,132,207,255, 95,159, 35,207,202, 77, 30, 9, 24,161, 23, + 10, 38,230,230,108, 54,117,122,236,245, 26,127,225,126, 18,222,240,228, 18, 77,162, 73, 52,137,230,171,208,164, 60,137,230, 95, +169, 41,245,173, 21, 32,245,173,229,240,164,203,197,124,158,148, 39,161,144, 81, 69,252, 0,112, 96,194, 82, 2,129, 64,248, 19, +224, 72, 17, 16,254, 74,140,169, 15, 18,255,204,207, 19,254,117, 20,155, 19, 77,149,224, 74,203, 18, 18,124, 19,103,123,138,104, + 18, 77,162, 73, 52,137, 38,209, 36,154,255, 58,205,210,180,255, 31,187, 36, 71,189,178,125, 4,192,255, 36,225,159,132, 85,137, + 38,209, 36,154, 68,147,104, 18, 77,162,249,111,227,153,241,162, 73, 89, 16, 8, 4, 2,129, 64, 32,252, 57,144, 28, 45, 2,129, + 64, 32, 16, 8,132,242, 81, 84,215, 33, 49, 90, 4, 2,129, 64, 32, 16, 8,111,129, 98,147,225, 73,215, 33,129, 64, 32, 16, 8, + 4, 66,249, 40,140,104,249,226,149,233, 29,136,209, 34, 16, 8, 4, 2,129, 64,120, 59,164,162,168,232,214,225,195,135,249,162, +126, 39, 16, 8, 4, 2,129, 64,248, 95,240,127,238, 69, 94,140,100,141, 42,216, 6,240, 66, 68,139, 24, 44, 2,129, 64, 32, 16, + 8,127, 23,179,245,127, 70, 97, 36,171,240, 39,245, 53,163,213,163, 71, 15,138,152, 45, 2,129, 64, 32, 16, 8,127, 21,255, 68, + 47, 66,191,122,128,228, 52, 19, 8, 4, 2,129, 64,248, 43,205,214, 63,233,120,200,244, 14, 4, 2,129, 64, 32, 16, 8,229,195, + 23, 64,247, 23,182,255,103, 75,240, 16, 8, 4, 2,129, 64, 32,252,211, 25, 85,220, 54,137,104, 17, 8, 4, 2,129, 64, 32,188, +125,179, 69, 32, 16, 8, 4, 2,129, 64,248,127,134,172,108, 78, 52,137, 38,209, 36,154, 68,147,104, 18,205,127, 58,133,243,104, + 1,197,205,163, 69, 32, 16, 8, 4, 2,129, 64,120, 35,186,195, 62,127,214,168,130,215,238,196,104, 17, 8, 4, 2,129, 64, 32, +188, 93, 94, 91,126,135, 24, 45, 2,129, 64, 32, 16, 8,132,183,107,176,214, 16,163, 69, 32, 16, 8, 4, 2,129,240, 39, 67,140, + 22,129, 64, 32, 16, 8, 4,194,159, 4,133,226, 71, 14,156, 42,131,206,155,140, 62, 56, 69, 52,137, 38,209, 36,154, 68,147,104, + 18,205,127,157,102,105,218,167,240,255, 71,225,204,240, 71,240, 60, 17,126,205,255,226, 31,147,161,175, 68,147,104, 18, 77,162, + 73, 52,137, 38,209,252,167, 51,234,149,215,103,144,174, 67, 2,129, 64, 32, 16, 8,132,183,107,182,200, 18, 60, 4, 2,129, 64, + 32, 16, 8,111,137, 98,187, 9, 73, 68,139, 64, 32, 16, 8, 4, 2,161,124, 20,187,168, 52, 49, 90, 4, 2,129, 64, 32, 16, 8, +127,142,225, 34, 70,139, 64, 32, 16, 8, 4, 2,225, 45,154,172, 81, 69,254,245,240,225,195, 60, 41, 35, 2,129, 64, 32, 16, 8, +127, 21,255, 88, 47, 82,120, 96,196,108, 17, 8, 4, 2,129, 64, 32, 94,164,204,248,226,249,104,195, 81, 5,219, 0,200,168, 67, + 2,129, 64, 32, 16, 8,132,242,210, 29, 47,143, 60, 28, 85,184, 77,140, 22,129, 64, 32, 16, 8, 4, 66,249, 25, 85,226, 95, 73, +183, 33,129, 64, 32, 16, 8,132,191,146,127,162, 23,161,200,105, 37, 16, 8, 4, 2,129, 64, 40, 23, 69, 69,179,214,144, 98, 33, + 16, 8, 4, 2,129, 64,248,115, 13, 23,129, 64, 32, 16, 8, 4, 2,225,207, 48, 89,127,246,132,165,100,101,115,162, 73, 52,137, + 38,209, 36,154, 68,147,104,254, 91, 76,214,139, 83, 60, 0, 32,163, 14, 9, 4, 2,129, 64, 32, 16,202, 11, 89, 84,154, 64, 32, + 16, 8, 4, 2,225, 79,130, 44, 42, 77, 32, 16, 8, 4, 2,129,240, 63, 54, 92,196,104, 17, 8, 4, 2,129, 64, 32,188, 69,147, +245,146,217, 34, 57, 90, 4, 2,129, 64, 32, 16, 8,229,163,216, 28, 45, 10,197,143, 28, 56, 85,134,127,240, 38,163, 15, 78, 17, + 77,162, 73, 52,137, 38,209, 36,154, 68,243, 95,167, 89,154,246, 41,252,255, 51, 10,255,163, 9, 75,201,208, 87,162, 73, 52,137, + 38,209, 36,154, 68,147,104,254,219, 32,211, 59, 16, 8, 4, 2,129, 64, 32,188,109, 99,245, 42,196,104, 17, 8, 4, 2,129, 64, + 32,148, 15, 50,143, 22,129, 64, 32, 16, 8, 4,194,159,132, 47,236, 81,173,194,215, 70,196,104, 17, 8, 4, 2,129, 64, 32,188, + 29,186,195, 30,213, 42,124, 37, 70,139, 64, 32, 16, 8, 4, 2,225, 45, 82,228, 60, 90, 20, 0, 28, 62,124,152, 47,216,110,215, +163, 71,143,115,164,172, 8, 4, 2,129, 64, 32,252, 47,249,167,122,145,103, 17,173, 30, 61,122, 80, 0,206,146, 83, 77, 32, 16, + 8, 4, 2,225,175,224,159,232, 69,232, 87,156,100, 59,114,154, 9, 4, 2,129, 64, 32,252, 21,252, 19,189,136,224, 21, 23, 73, + 32, 16, 8, 4, 2,129,240,151,240,127,236, 69,124, 97, 79,132, 63, 82,240, 10, 20, 76,249, 64,230,209, 34, 16, 8, 4, 2,129, + 64, 40, 31,133,163, 13, 95, 91,122,135, 68,177, 8, 4, 2,129, 64, 32, 16,202, 71, 81, 51,195,175, 33,197, 66, 32, 16, 8, 4, + 2,129,240, 39, 66, 34, 90, 4, 2,129, 64, 32, 16, 8,229,231,197,168,214,255, 44,154, 69, 86, 54, 39,154, 68,147,104, 18, 77, +162, 73, 52,137,230,191,201,100,189,180, 77,102,134, 39, 16, 8, 4, 2,129, 64,248,147, 32,163, 14, 9, 4, 2,129, 64, 32, 16, +202, 71,225,136,195, 23,183,137,209, 34, 16, 8, 4, 2,129, 64,120,139,102,235, 53, 72,215, 33,129, 64, 32, 16, 8, 4, 66,249, + 24, 85,220, 31,136,209, 34, 16, 8, 4, 2,129, 64,248,147, 12, 23,133,226, 71, 14,156, 42,131,240,155,140, 62, 56, 69, 52,137, + 38,209, 36,154, 68,147,104, 18,205,127,157,102,105,218,167,240,255,199, 95, 54, 97, 41, 25,250, 74, 52,137, 38,209, 36,154, 68, +147,104, 18,205,127, 45,164,235,144, 64, 32, 16, 8, 4, 2,225,111, 96,180,188, 4, 2,193,183, 50,153,236, 39,153, 76,246,139, + 64, 32, 88, 8,192,173,172,255, 80,161, 80,140,243,241,241,121,232,227,227,147, 20, 24, 24,120,212,201, 73,254,101, 85, 9,218, + 0, 16,190,165,227, 9, 6,240,165, 76, 38,123, 32,149, 74,227, 1,108, 6,240, 37, 0,207,242, 8,207,244,195,123,247,190,232, +189,127,166, 31,222,123,229, 79,221,189,189,189, 47, 0,232,242,182, 78,202, 64, 57, 58,245, 83,224,105, 63, 5,158, 14,148,191, +121,171,193,201,201,105,136,175,175,239,101, 15, 15,143,100, 95, 95,223, 75, 82,169,180, 95, 25, 37, 84,222,222,222, 11, 2, 2, + 2,162,253,252,252,150,194,190, 58,249,223,150,214, 18,180, 14,145, 64, 29, 42,134,182,165, 24, 63,133,138,209,185, 51, 32,127, + 67,185, 86, 0,118, 59, 59, 59,223, 22, 8, 4,135, 1,244, 45,184,190,250, 10, 4,130,195,206,206,206,183, 1,236, 46,248,220, +155, 92,167, 11, 0, 36, 3,152, 83,176, 61, 54, 32, 32, 64, 91,191,126,253,248,250,245,235,255, 90,189,122,245, 15, 29, 21,147, +203,229,157, 3, 2, 2,246, 4, 6, 6,198,135,134,134,102,251,251,251, 71, 85,168, 80, 97,163, 68, 34,105, 71,170, 56, 2,129, + 64,248,251,211, 19,192, 92, 0, 43, 34, 34, 34,110,242, 60,127,147,231,249,155, 17, 17, 17, 55, 1,252, 4, 96, 30,138, 15, 33, +190,244,190,135,135,199,244, 89,179,102, 25, 83, 83, 83,121,181, 90,205, 71, 71, 71,243, 75,166, 78,230,186,186, 11,248,170, 94, +110,122, 95, 95,223, 39, 21, 43, 84,216, 94, 71, 73, 79, 6, 80,205, 17,205, 23,112,147,201,100, 87,167, 78,157,170,251, 47,123, +215, 29, 22,197,213,126,207, 54,118,151,221,133, 93,250,210, 85,138, 96, 1,197,222,176,119,236,198,174,177,199, 18,141,198,216, + 21, 48,106, 44,177,199, 36,250,217, 34, 26, 43,177, 96,239,216,149, 69, 17, 16, 1, 65,164,119,182, 2,219,239,239, 15, 74,136, +161,154,124,223, 47,101,206,243,204,179,176,123,231,204,189, 51,247,206,156,121,239,123,223,247,254,253,251, 74,141, 70,163, 52, + 26,141,202,204,204, 76,229,205,155, 55,149, 93,186,116, 81, 2, 88, 4,128,209, 0,206, 74,172,115,192, 61,114,112, 13, 89,231, +128,123, 85,191,247,246,246,142, 53, 26,141,100,212,168, 81,106, 0,142, 13,225,252, 16,142, 0,183,133, 57, 68,163, 5,200,209, + 31,249,154,144,189, 75,200,104, 62, 82, 63,134,211,214,214,246,252,130, 5, 11,228, 25, 25, 25, 68,173, 86,147,212,212, 84, 50, +123,246,108,153,173,173,237,177,122,182,221,202,199,199, 39,231,241,227,199, 70,169, 84, 74,238,222,189,107,108,217,178,101, 78, + 61,197, 86,159, 15,234,178,223,193,193,225,114, 67, 54, 91, 91,219, 3, 13,189, 70, 29, 56, 72,213, 74,238, 16,242,252, 58,185, + 48,170, 19,217,209,214,137,140,180,100, 75,187,178,241,121,247,234, 67,153,212,196,249, 73,247,238,221, 85,175, 94,189, 50, 20, + 20, 20,144,216,216, 88,227,204,153, 51, 75, 1,196,204,156, 57,179, 52, 54, 54,214, 88, 80, 80, 64, 94,189,122,101,232,222,189, +187, 10,192,140, 6,212,147, 14,224, 80, 80, 80, 16, 33,132,144,245,235,215, 19, 95, 95, 95,210,171, 87, 47,162, 84, 42, 9, 33, + 36,133, 16,114, 88,175,215,127, 90, 31, 78,161, 80, 56,105,193,130, 5,202,226,226, 98, 82, 1,163,209, 72,164, 82, 41,217,179, +103,143, 74, 44, 22, 95,174,225, 37,131,154,242,160, 56, 41, 78,138,243,175,198,249,119,134, 61,202,252,180, 42,182,122, 27, 38, +198, 47, 91,182,172, 66, 84, 93,233,218,181,235,179, 79, 63,253, 84,242,233,167,159, 74,186,118,237,122, 23,192,181,136,136, 8, +201,210,165, 75, 37, 0,198,215,113, 33, 44, 58,119,238, 44,205,206,206, 38,158,158,158,164, 81,163, 70, 36, 59, 59,155, 16, 66, +200,243, 79,218,144, 91,205, 64,210,194,175,144,235,191,156, 33, 51,237,153,164,155,189, 80,103, 47, 22, 23, 88, 91, 91,111,192, +111,115, 50, 86,119,113, 71, 52,107,214, 76, 17, 19, 19,163, 76, 72, 72, 80, 6, 7, 7, 43,123,245,234,165,244,241,241, 81,142, + 28, 57, 82,185,123,247,110,165, 86,171, 85, 30, 56,112, 64,105,110,110, 30, 83,141,216,250,104,161,197,100, 50,119, 69, 69, 69, +145,183,111,223,146,114, 43, 69, 77,156, 66,145, 72, 52,192,194,194, 98,145, 72, 36, 26, 0, 64, 8, 0,158,128,160,149, 16, 46, +159,183,114,243, 14, 27,223,199,125, 79,159,118,109, 70,155,209,165,186,239,150, 16, 50,202,229,163,132,150, 80, 40,156,244,197, + 23, 95, 40,212,106, 53, 41, 46, 46, 38, 74, 26,233, 44, 13, 0, 0, 32, 0, 73, 68, 65, 84,165,146, 20, 23, 23, 19,133, 66, 65, +198,143, 31, 47,231,114,185, 35,234,226,180,182,182,254, 58, 60, 60, 92,159,157,157, 77,194,195,195,201,229,203,151,201,222,189, +123,141,182,182,182,219, 27, 58, 0,197, 98,241,141,235,215,175, 75, 34, 35, 35, 37, 79,159, 62,149,232,116, 58,137, 86,171,149, +104,181, 90, 73, 88, 88,152, 36, 52, 52, 84,114,242,228, 73,137, 70,163,145,104, 52, 26,137, 90,173,150, 52,105,210,228,106, 67, +175, 81,123, 14,210, 52,247, 47, 16,178,125, 30,145,109,158, 67,164,139, 7,145,220,217,254,228,251,118, 78,196,223, 20, 23,241, +251,220,158,213,114,178, 88,172,123, 41, 41, 41,198, 21, 43, 86,104,154, 55,111, 46,155, 54,109, 90,169, 90,173, 38,132, 16,162, + 86,171,201,180,105,211, 74,155, 55,111, 46, 91,177, 98,133,230,221,187,119, 70, 38,147,121,179, 1,245,220, 84, 33,178,238,221, +187, 71,170, 66,169, 84,146, 94,189,122,165,248,250,250, 30,110,220,184,241,132,186, 56, 5, 2,193,176,229,203,151, 43, 73, 53, +208,233,116, 68,161, 80,144,119,239,222, 25, 27, 53,106,148, 9,192,138,186,153, 83,156, 20, 39,197, 73, 9,173,255, 26,102,213, +241,127,245, 39,113,233,210,165, 18, 66,136,100,213,170, 85,146,114,203,150, 9, 0, 65,249,198, 4, 48,110,249,242,229, 18, 66, +136,100,217,178,101, 21,101,106,186, 16, 67, 78,159, 62,173,221,185,115, 39,177,179,179, 35, 98,177,152,236,218,181,139, 24,141, + 70,146, 29,118,140,220,106, 6,242,122,229, 20, 66, 8, 33,241, 27,230,147, 91,205, 64,146,126, 88, 71, 38, 78,156, 88,204,227, +241,198,215,114,113, 45,219,180,105,163, 40, 41, 41, 81, 30, 57,114, 68,201,227,241,158, 3,104,142,178,169, 72, 90,121, 93, 39, + 55,111,222, 92, 30, 29, 29,173,252,249,231,159,149, 0,130,235,217, 97,220, 1,244,228,243,249, 35,151, 59,178, 18,200,193, 53, +100,185, 29, 94, 1,104, 9,192,166,188,140,195,178,101,203, 8, 33,132, 56, 59, 59,135,215,192, 41,244,241,241, 89,150,144,144, + 16,168,211,233, 2, 35, 35, 35, 3,155, 54,109,186, 98,104, 19,251, 78,231,198,247,245,147,173,155,227, 71,182, 45,246,249,118, + 96,251, 62, 39,198,246, 24, 63,181,177,245,253,105,182,220,226, 49, 66,134,226,131,169,195,122,117,108, 71, 71,199,167,169,169, +169,149,226, 74,161, 80,144,140,140, 12,146,156,156, 76,238,223,191, 79,236,237,237,111,213,197, 41, 22,139, 99, 83, 83, 83,201, + 15, 59,118,144, 81, 45,189,137,191,200,140,116,183, 48, 35,109, 5, 92, 85, 51,160,109, 67,133,214,139, 23, 47, 36, 0, 36, 0, + 36, 5, 5, 5,146,130,130, 2, 73, 81, 81, 81,229,119, 0, 36, 50,153, 76, 34,147,201, 36, 26,141, 70,226,230,230,214, 96,161, +213,133,139, 46, 29,184, 40,236,196, 65,201, 16, 71,235,204, 57, 77,172, 13, 79,198,119, 34, 69,243,122,145,157,126,142,164, 43, + 27,159,215,147,115, 8,155,205,190, 11, 96, 73,185, 40,159, 50, 96,192,128, 98, 66, 8, 25, 48, 96, 64, 49,128, 41,229,223,127, + 81, 46,178, 6,212,179,158,116, 15, 15, 15, 85,133, 37, 11,192, 35, 15, 15, 15,149,175,175, 47,241,245,245, 37,206,206,206,138, +114,238,122,221,208,220,221,221,227, 75, 74, 74, 42, 5,160, 84, 42, 37,153,153,153, 36, 41, 41,137,196,196,196,144,231,207,159, +147,148,148, 20,114,234,212, 41,131, 72, 36,186, 68,221,204, 41, 78,138,147,226,164,132,214,127, 85,104,125,184,253, 22, 97, 97, + 97,228,131,175, 54, 71, 68, 68, 72,150, 47, 95, 46,169, 67,153,205, 90,181,106, 85,133,213,235,155, 90, 30,254, 7,226,227,227, +201,148, 41, 83,136,151,151, 23,241,242,242, 34,159,126,250, 41,145,201,100, 68,153, 24, 77,110, 53, 3,121, 62,166, 45, 33,132, + 16,197,235, 72,114,171, 25,136,100, 98,103,242,242,229, 75,226,228,228,116,189,150,227, 95,124,248,240, 97,222,177, 99,199,178, + 81,230,143,197, 2,208, 17,192, 46, 83, 83,211, 67, 40,155, 46,108, 4,192,194,211,211,179,176,184,184, 88, 57,106,212, 40, 37, + 0,151, 90, 56,187,123,121,121,189, 61,112,224, 0,201,205,205, 37,133,133,133,100, 75,151,166,132, 28, 92, 67,214,183,109,100, +252,225,135, 31,212, 75,150, 44, 81, 89, 90, 90,134, 1,112, 24, 53,106,148,158, 16, 66,252,253,253,115,170, 35, 19,137, 68, 3, + 18, 18, 18, 2, 75, 75, 75, 3,165, 82,105, 96, 97, 97, 97,224,133,115,231, 2,251,183,108, 58, 69,182,110,142,223,185,241,125, +253, 6, 58, 90,140,220,222,175,221,103, 25, 43,102,140, 90,213,185,249,235,210, 77, 11,239,124,210,196,110,235,199, 92,109, 27, + 27,155, 44,181, 90, 77, 0,252,110,123,251,246, 45,177,178,178, 74,173,139,195,210,210,114,213, 23,227,198, 26, 70, 52,114, 36, +111,119,174, 38,186, 27, 63, 19,221,229, 35, 36,113,243, 98, 50, 84,108, 45,239,104, 66, 95, 94,223,250,136,197,226, 27, 79,159, + 62,253,141,208, 42, 42, 42,170, 86,104,201,229,114,137, 70,163,145,120,120,120, 92,253,163,189,190, 35, 27,110,221, 77, 25,207, + 35,167,116, 35,121,115,122,145, 1, 66, 86,202, 31,160, 27, 7,224, 46,128,137, 13,220,143, 14, 96, 83,133,160,218,188,121, 51, + 33,132, 16, 15, 15, 15, 21,254,216, 98, 20,161,183,183,119,242,140, 25, 51,244,205,154, 53,203,237,210,165,139,244,217,179,103, +228,222,189,123,228,242,229,203,228,204,153, 51, 36, 58, 58,154,100,100,100,144,248,248,120, 50,120,240, 96, 41,128,238,212,189, +144, 2, 5, 10,127,101, 84,163, 69,254,246,160, 87, 52, 44, 32, 32,128, 86,165,129, 66, 0,220,182,109,219,230,109,218,180,105, + 27,202, 98, 65,208,124, 24,248,164,151, 41,243,101, 47, 83,230, 75, 31, 6, 62, 41,183, 24,237,223,176, 97,195,215,190,190,190, + 89, 0, 76, 1,136,171, 59, 16, 33,164,155,149,149, 21, 82, 83, 83, 33, 20, 10, 33, 20, 10,145,154,154, 10, 66, 8,244, 4,208, + 17, 64,173,213,162,164,164, 4,165, 70,130, 18, 35, 32, 87, 42, 33, 22,139,161,213,106,221,106,168,127,171, 49, 99,198,184,249, +248,248,228, 45, 93,186, 52, 19,101,190, 50,135,166, 79,159,126,227,209,163, 71, 62, 74,165,178, 48, 38, 38,166,180,101,203,150, + 3, 0,136, 19, 18, 18, 38,237,217,179, 7, 83,166, 76, 65, 45, 15,157,150,131, 7, 15,190, 28, 29, 29,237, 54,113,226, 68,220, +189,123, 23, 91,182,108, 65,126,126, 62, 1, 0,181, 90, 77, 12, 6,131,182,115,231,206,218,157, 59,119,182,247,247,247,127,218, +164, 73, 19, 6, 0, 36, 39, 39, 39, 86, 71, 72,163,209,154,186,186,186, 66,173, 86, 35, 47, 47, 15,209,209,209, 48, 19, 10, 17, +149,153,111,215, 99,251, 15, 5, 43,207,221, 96,141,107,239, 99,185,168,111, 23,245,198,235,119, 61,155, 59,216,217,105,180, 58, +113,124, 86, 78,230,199, 92, 84, 19, 19,147,212,252,252,124,104, 52, 26,148,148,148, 64, 46,151,163,160,160, 0,249,249,249,200, +204,204,132,137,137,201,219,186, 56,204, 11, 11,195,147, 31,222,163,157,250,113, 51,220,244,133, 96,158,221, 5,230,249,239,225, +174,201,195,190,213,179,205, 52, 86, 54, 65,230,102,102, 69, 34,145,104, 63, 0,143,186,248,252,252,252, 80, 80, 80,128,130,130, + 2, 88, 89, 89,193,194,194, 2, 22, 22, 22,144, 74,165,144,201,100,144,203,229,240,244,244, 68,171, 86,173,112,244,232,209, 63, +165,115, 63,209, 32, 73, 15,195,156, 27,111, 50, 97,194,231,163,137,133,192,181,157, 0,150,181,236,210,139,197, 98,157,182,180, +180,188, 14, 96, 30, 0, 62,128,121,150,150,150,215, 89, 44,214,112, 0,235, 1, 28,107, 96, 53, 54, 6, 5, 5, 45, 75, 72, 72, +224,189,124,249, 18, 75,151, 46, 69,112,112, 48, 18, 19, 19,191, 3, 96, 44, 47, 51,215,202,202, 42,140, 78,167,255, 7,192, 32, + 0, 3,236,237,237,123,215,193, 59,124,201,146, 37,165,109,218,180,137,127,253,250,245,240,135, 15, 31,182, 93,188,120,177,236, +253,251,247,136,143,143,135,189,189, 61,156,157,157,161, 84, 42, 81, 84, 84,132,225,195,135, 11,205,205,205,199, 83,183,113, 10, + 20, 40,252,149, 69,214, 7, 90,228,239,102,209,170,246,255,106,223,168,121, 60, 94,144, 68, 34,233,228,235,235,203, 4,112, 10, + 0,124, 24, 24, 61,188,115,235, 67,231,246,111,246, 13,221,185,218,183,191,175,231, 33, 31, 6, 42, 86,177,133,181,109,219,214, + 66, 34,145,116,230,112, 56,159,215, 80, 9, 2, 0, 22, 22, 22, 16, 10,133, 16,137, 68,176,176,176,128,209,104,132,178,184, 20, + 42, 3,160, 40,213, 64, 38,147, 65, 81,254,191, 82,173,133, 74,165,170,220,183, 26,244,152, 49, 99, 70,222,158, 61,123,114,179, +178,178, 54, 3,104, 57,101,202,148, 97,187,119,239,198,237,219,183, 75, 7,121,185, 91,109,232,214,250,235,230, 89,137,129, 94, + 44,204, 4, 16, 30, 30, 30,142,206,157, 59,131, 70,163,141,173,142,208,212,212,244,251, 19, 39, 78,152,198,196,196,192,221,221, + 61,102,236,216,177,159,108,222,188,217,141,175, 44,124, 0, 0,250,130,236,152,249,243,231,175,217,176, 97, 67, 94, 94, 94,158, +182,184,184,216,118,232,208,161, 72, 77, 77, 69, 70, 70,198,163, 26, 68,102,124,100,100, 36,145,201,100, 72, 74, 74, 66,100,100, +164,233,154, 53,107,218, 27,232,244, 97,233, 48,155, 58,165, 75,219,246, 19, 59,182,198,177,199, 47, 77,238,191, 73, 22,181,109, +228,104,241, 34, 45,171,177,142,134,183, 31,115,181, 21, 10,197,174,175,191,254, 90,169, 84, 42,145,158,158,142, 87,175, 94,225, +245,235,215, 72, 73, 73,193,150, 45, 91,148,133,133,133,187,235,226,112,224, 50,191,220,186,120, 58,141, 25,251, 8,120,121, 15, + 40, 86, 0, 37, 74,168,227, 36, 56, 28,151,141,189,103,127, 97,191, 79, 77, 21,157, 60,121,114,134,139,139,139, 4,128,103,109, +124,132,148, 93, 66, 58,157,254,161, 8, 5,157, 78, 87, 0,200,230,243,249,105,102,102,102,105,116, 58, 61,155, 16,162,250, 83, +222, 36,244,208,130,193, 0,216,166,160,179,106, 77,237,249,201,216,177, 99, 79,164,165,165,245, 79, 74, 74,234,180,123,247,238, +175,185, 92,110,212,238,221,187,191, 78, 74, 74,234,148,150,150,214,127,236,216,177, 39, 0, 76,110,200,241, 61, 60, 60,230, 7, + 6, 6, 98,203,150, 45,104,213,170, 21, 60, 61, 61,139,131,130,130,118, 1, 88, 13,224,115, 15, 15,143, 7,243,231,207,159,150, +155,155, 43, 78, 79, 79,111,245,221,119,223,205,222,181,107, 87,187,204,204, 76,110, 29,212, 93,251,245,235,135, 43, 87,174, 0, + 64, 22,128,164,130,130, 2,125,102,102, 38,188,189,189,209,190,125,123, 40,149, 74, 40,149, 74, 72,165, 82,184,186,186,194,104, + 52,118,162,110,229, 20, 40, 80,160,240, 63, 21, 92,213, 11, 45, 46,151,107,225,231,231,135, 38, 77,154, 88,160,124,181,150, 21, +155,185, 98,209,140,113, 60,129,228, 42,104,145,183, 48,182, 91, 11,158, 21,155,185,162,124, 23,166,171,171, 43,199,207,207, 15, +124, 62,223,177,134,131,223,205,206,206,134,159,159, 31, 68, 34, 17,132, 66, 33,252,252,252,160,213,106, 33, 83, 40,160, 50, 0, +197, 58, 35,100, 50, 25, 10,243,114, 80,108, 0,244,102, 86, 72, 73, 73, 1,131,193, 72,174,129,211,222,221,221, 61, 47, 42, 42, + 42, 15, 64, 56,128,207,130,131,131,177,124,249,114,172, 93,187,246, 4, 47,235, 93,191, 19, 87,206, 91, 29, 15,154,107,227,201, +166,141, 3,160, 77, 75, 75,131, 72, 36, 2,159,207,175, 86, 24,248,251,251,183,225,243,249, 56,114,228, 8, 73, 79, 79,239,130, +178, 37,252,201, 52, 90,153,216, 51,165, 67, 6, 96,151, 68, 34,233,176,102,205,154, 55,125,250,244, 97,117,236,216, 17,235,215, +175, 7,128,176,234, 56,165, 82,233,147,201,147, 39,107,238,220,185,131,184,184, 56,254,185,115,231, 70,175, 95,191,190,197,251, +247,239, 57, 23, 47, 95, 29, 24,146, 38, 31,189,249,250,125,238,134,107,119,159, 88,155,243,155, 55,182,182, 68,228,251, 12, 19, + 3, 3,207,234,186,162, 29, 88,140, 25, 61,184,204,200,110, 28,122, 86, 15, 46, 83,210,142,197,152,174, 80, 40, 78, 94,184,112, +225,218,226,197,139,149,185,185,185, 48, 51, 51, 67, 65, 65, 1, 54,110,220,168,140,140,140, 60,171,209,104, 46,214,197,107, 48, +146, 54,206,141, 92,128,183, 81,149,223,105,141, 4,207, 52, 38, 8,248,108, 33,188,188,189,161,209,104,208,178,101, 75, 90,112, +112, 48, 95, 40, 20,126, 85,167,232,161,255,174,187,233,105, 52, 90, 54, 33, 36, 67,169, 84,166,155,154,154,190, 55, 49, 49,121, + 95, 88, 88,152, 78, 8,201,249, 51,116, 22,161,227,203,206, 45, 61, 0,142, 41,222, 23, 40, 51,159, 43, 81, 88, 93, 65, 51, 51, +179,233,123,247,238,229, 30, 60,120, 80, 55,127,254,124,245,236,217,179, 89, 37, 37, 37,182,179,103,207,102,205,159, 63, 95,125, +240,224, 65,221,222,189,123,185, 2,129, 96,228,199, 84, 68,167,211, 33, 42, 42,106,115, 98, 98, 34, 31,101,225, 70, 22, 6, 5, + 5, 77, 73, 72, 72,224,238,217,179, 7,103,206,156,193,153, 51,103, 48,108,216, 48, 44, 88,176, 0,129,129,129,181,209,241,124, +125,125,253,172,172,172,112,239,222,189, 76, 0,239, 1,180, 17, 8, 4,102,195,134, 13, 67,255,254,253, 81, 90, 90, 10,173, 86, + 91, 41,180, 24, 12, 6, 68, 34,145, 21,117, 15,164, 64,129, 2,133,255,186,200,250,141,216, 98, 2, 64,133,169, 46, 32, 32,128, + 86,219,131,209, 80,148, 11,169,170, 24, 41,178, 98,164, 22, 25,127,243,155,209,104,172,245,232,153,153,153, 23, 31, 63,126, 60, +221,207,207,143,153,153, 89, 54, 35,230,231,231,135,226,226, 98,100,190,124, 10,149, 17,224,187,251, 64,165, 82,161,232,245, 11, + 8,124, 59,193,106,240, 68,108,223,179, 71, 93, 80, 80,240, 99,117,156,108, 54,155,229,228,228,148,151,156,156,172, 7, 80, 40, + 20, 10,251,185,184,184,224,238,221,187, 0,112,140, 0, 91, 17,121, 7,184, 23, 10, 82,102, 82, 17,184,186,186, 34, 55, 55, 23, + 74,165,242,110,117,156,143, 31, 63, 78,208,233,116, 45,135, 14, 29, 74,251,233,167,159, 78,201,229,242,181, 0, 94,169,141, 96, +188, 76,203,129,202, 0, 46,128,190, 22, 22, 22, 95, 4, 6, 6,246,158, 63,127, 62, 46, 92,184,128,235,215,175,107, 81,230, 11, +246,184, 26, 90, 89, 82, 82,210,190, 37, 75,150,116,164,211,233,159,221,184,113, 67,239,233,233, 41,215,106,181,134,166, 94, 94, +244,181,193,235, 76,230,125, 54, 75, 84, 80,140,216,254, 77,237, 59,211,104, 64,108, 70,238,251, 68, 37, 10,106, 59,167,254,108, + 70,216,240, 46,190,254,211,199, 14, 17,240,221,155, 67, 21,253, 84,188,239,244,229,237,166,145, 9, 1,247,114,115,135, 93,184, +112, 97,244,221,187,119,231,105, 52,154, 38, 28, 14,231,173, 84, 42,221,169, 84, 42,235, 20, 89, 12, 6, 99,176,218,222,201, 66, + 90, 88, 8,110,185, 37, 74,174, 51, 34, 95,173, 71,156,200, 19,227,157,156, 43,167, 65,179,179,179, 33, 22,139,105, 6,131, 97, + 72,109,156,215,175, 95, 71, 64, 64, 64,133,240, 4,141, 70, 3,141, 70,203,247,242,242,202,225,112, 56, 5, 38, 38, 38,242,173, + 91,183,150,150,150,150,130,201,100,114, 13, 6, 3,227,143,244,246,246, 60,216,114, 8,237,251,217, 67,123,246,105,213,220,155, +132, 63,127, 73, 43, 42, 46, 61, 92,139, 21,240, 59, 15, 15, 15,102, 97, 97,225, 69, 0,113, 58,157,238,248,169, 83,167,184,147, + 38, 77, 42, 61,125,250,244, 4, 0,110,219,182,109, 27,173, 84, 42, 27,148, 82, 33, 49, 49,241,187, 13, 27, 54, 44, 91,181,106, + 21,142, 30, 61, 58, 63, 49, 49,113,121,185,165,107, 88, 96, 96, 32,182,110,221,138,163, 71,143, 26,227,226,226, 46, 27,141,198, +196,197,139, 23,251,218,217,217,229,103,101,101, 37,214, 66,219,118,192,128, 1,234, 7, 15, 30,176, 21, 10,197,125, 0, 95,204, +153, 51,103, 70,135, 14, 29,228, 99,199,142, 21, 20, 22, 22, 74,121, 60, 30,251,192,129, 3, 22, 76, 38, 19, 42,149, 10, 52, 26, + 13, 10,133, 66, 67,221, 7, 41, 80,160,240, 87, 69, 77, 90,228,111,130, 26,159, 13,204,234, 26, 88, 92, 92,156,147,154,154,234, +157,145,145,161, 7,160, 7,128, 2,141,254,155, 13, 7, 66, 15,142,236,232,193,207,210,233,112,238,121, 76,113,129, 70, 95,225, +252,174,207,200,200, 80,188,127,255,222,172,164,164, 68, 89,195,177, 30,125,255,253,247, 37,119,238,220, 49, 75, 74, 74,130,193, + 96, 64,155, 54,109, 16, 31, 31,143,162,184, 40,240,189,219,128,223, 61, 0, 49,146,231,136,188,126, 19,239,148, 26,253,155,213, + 27,100, 74,149, 42, 80,171,213,158,171,142,144,197, 98, 21, 2, 32,132, 16, 3, 0,200,229,242, 87, 74,165,178,155,157,157, 29, + 98, 99, 99,249, 42, 3, 22,140, 94,177,125, 55, 33,196, 96, 82,182,154,107,209,216,177, 99, 17, 17, 17, 1, 0, 17,213,113,202, +229,242,249, 51,103,206,188,115,228,200, 17,102, 82, 82, 82,255,131, 7, 15,246,127,243,230, 13,161, 21,166, 26, 30, 20,179,224, + 54,101, 65,187, 31, 92,189,174, 7, 4, 4,192,222,222, 30, 7, 14, 28,192,206,157, 59,117,115,231,206, 77,216,185,115,103,187, +220,220,220,227, 53,180, 95, 38,149, 74,175, 90, 89, 89,205,107,209,162,133, 66,165, 82,161,160,160, 0,153,153,153,176,180,178, +162,235, 65,239,108, 35, 18, 29,191,152,173,224, 51,175, 62,193,211,244,172, 90,173, 89, 29, 89,140,201, 35,253, 91,251,127,190, +106,133, 0, 15,206,129, 54, 51, 16,228,224,215, 88,248,233,104,179, 82,245,241,238,170,151, 41,147, 36,114,121,136, 92, 46, 63, +211,192,206, 50,160,115,231,206, 39, 54,108,216, 96,186,114,203, 6,108,243,118,132,190,160, 0,121,106, 3,242,213,122,200,139, +226, 16, 27, 27, 3, 43, 43,107,188,123,247, 14,165,165,165,120,253,250, 53, 97, 48, 24, 23,235,178,232, 84,160,202,116,161,148, +195,225, 20,176, 88,172, 28, 38,147, 89,152,148,148,164, 42, 45, 45, 5,157, 78,231, 27, 12, 6,211,122,212,213,201,218,218,122, + 49,202,130,137, 94, 80,228,231,239,242, 99, 65, 4, 38,122,184, 90, 91, 13, 92, 61,123,146,181,139,131,173, 52, 41,225,173,238, +199,107, 15,243, 75,213, 53, 47,214, 0, 16, 86, 88, 88, 88,105,145, 60,125,250,244,194,211,167, 79,207, 0,112, 8,101,121,183, +110, 74,165,210, 31, 62, 98,240,173, 62,123,246,236,178, 85,171, 86,193,212,212,180, 50,120,170,169,169, 41, 23, 0,126,254,249, +103,196,198,198,118, 64,185,191,150,209,104, 60,145,149,149, 85, 23,167,155,143,143, 79, 82,104,104, 40, 27,128,195,156, 57,115, + 58,237,222,189, 27,159,126,250,105, 94, 76, 76, 76, 71, 0,201, 0,220, 62,251,236,179,103, 71,143, 30,181, 48, 26,141, 40, 42, + 42,130, 70,163, 73,166,110,229, 20, 40, 80,160,196,214,127, 5,126, 0, 34, 81, 22, 63,107, 48,128, 75, 40,115,235,168, 17,206, +229,234,236, 26,128,161, 21,207,199, 26,156,225,129,178, 21, 89, 87, 1,252, 7,128, 93, 77,164, 86, 86, 86, 95, 77,153, 50, 69, +151,158,158, 78,178,179,179,201,153, 51,103,200,162,233, 83, 12,125,221, 29,140,238, 14,118, 42, 27, 27,155,120,123,107,203,195, +173,121, 88, 4,192,169, 30, 13,155,242,230,205,155, 89, 83,166, 76,153, 94,126,220,233, 39, 78,156, 80,222,184,113, 67,201, 96, + 48,194, 80, 22,218,161, 66, 80, 78, 30, 50,100,136, 82,173, 86, 43,189,188,188, 10, 81,230,184, 95, 19, 70,247,232,209,163,232, +202,149, 43,196, 96, 48,252, 46, 70, 81, 94, 94, 30,185,126,253, 58,233,210,165,139, 20,192,164,222,189,123,223,125,248,240,225, +221,174, 93,187,158,173,171,194,214,214,214, 43, 94,190,124, 25,145,146,146, 34,185,116,233,146,228,248,241,227,146,207, 62,251, +236,149,175,175,111, 73, 66, 66,130, 81,175,215,147,151, 47, 94, 16,175,166, 77, 85, 0, 92,107,226,233,101,202,124, 38, 63,240, + 53, 41, 93,255, 41, 41, 29,238, 76, 0, 16,197,246,175, 72,206,252, 62, 36,126,222, 64,210,147,203,120,252, 49, 61,197,210,210, +242, 90, 68, 68, 4, 81, 40, 20, 36, 58, 58,154, 76, 14,232, 79, 30,207,232, 67,174,246,247, 32, 71,187, 55, 38,219,251,249,146, +254,221,187,145,239,191,255,158,132,134,134,146, 21, 43, 86, 24,173,173,173, 21,168,197, 71, 75, 44, 22,223, 56,117,234,148, 4, +128,132,193, 96, 72,228,114,185, 68,161, 80, 92, 76, 75, 75,219,235,229,229,181,172, 69,139, 22, 19,188,189,189,123,245,108,236, +186,172,183, 25, 39,190,143, 57,247,109, 83, 1,111, 59,126, 31,247,170, 18, 66,192,213,221,205, 77,113,239,222, 61,163, 90,173, + 38,247,239,223, 55, 54,107,234, 89,186,109,204,128,179,239, 14,108, 58, 91,122,229,167,107,197,231,247, 63, 60, 61, 53, 32,170, + 7,143,254, 83, 39,126,101, 56,142,143,197, 56, 0,231,240,235,170,195, 41, 0,206,163,246, 85,136,116, 0,135,214,175, 95, 95, +117,165, 33, 0,208,125,125,125, 37,132, 16,137,175,175,175,164,161, 21,225,241,120,139, 47, 92,184, 16,228,226,226,178,101,236, +216,177, 7,164, 82,233,165, 9, 19, 38, 68,161,108, 49, 8, 13,101,217, 17,134, 56, 57, 57,229, 69, 70, 70,146,187,119,239,146, + 81,163, 70, 41, 76, 76, 76, 38, 82,183,113, 10, 20, 40, 80,248,175, 96, 86, 13,159,181, 98, 67, 84, 84, 84, 69, 12,173, 57,181, +145, 47, 95,190, 92, 18, 17, 17, 33, 65, 89,148,248, 90,193,100, 50,127,153, 59,119, 46,177,179,179, 83,218,218,218,254,194, 98, + 48,102, 56,155,194, 15, 31,183,212,189, 91, 72, 72,200,176,239,190,251,110, 48,128, 14, 0, 88,142,142,142,153,217,217,217,202, +135, 15, 31, 42,187,116,233,162,180,182,182,206,245,241,241, 81,110,219,182, 77,169,211,233,148,139, 23, 47, 86,226,247,241,190, +170, 3, 23,192, 60, 54,155,253, 75,179,102,205,162, 86, 15,237,165,219,178, 96, 6,153,226, 97,163, 4,240, 29,128,185, 0, 68, + 0, 88,163, 71,143,190,245,250,245,235,107, 62, 62, 62,251,234,193,235,208,162, 69,139,219, 39, 78,156,136, 8, 13, 13,149,124, +245,213, 87, 17, 86, 86, 86,233, 9, 9, 9,198,210,210, 82, 82, 84, 84, 68,164, 82, 41,185,116,233,146,193,210,210,114, 79,141, + 13,231, 48,178,200,245, 99,213,134,112, 72, 91, 53,145,116, 97,211, 51, 62,166,167,240,249,252,194,130,130, 2,146,157,157, 77, +146,146,146,200,217,179,103,201,128,206,237,201,201,207, 70,146, 99,211,135,145,173, 3,218,147, 14,102, 92,149,216, 76, 16, 97, +102,102,150, 91,159, 85,135, 98,177,248,134, 90,173,174, 12,223,224,228,228, 36,241,242,242, 10,245,241,241,217,126,225,194,133, +133, 59,118,236, 24,214,179,177,235,178,141,253, 59,151, 20,223, 60, 77, 20,167,190, 35,203,219,120,150,150,139,249,106,225,104, +101, 25,114,239,238, 93, 99,133,248,213,235,245,228,220, 47,191,144, 49, 3,251, 70,201,174,254,252,159,251,129,243, 79, 44,110, +227,121,174, 11, 23,227,106, 19,108,149,175, 34, 2, 88,249,155,211,247, 14,114,177,204,234, 38,164,127,215,209,236, 55,233,165, +198,120,122,122, 38, 17, 66,178,188,189,189,147, 0, 28,243,246,246,174,250,255,212, 26,104, 43,131,147, 6, 5, 5,145,242,241, + 65, 7,176,118,195,134, 13, 18, 66,136,196,195,195,227, 1, 0,180,226,195,186,187,144,254,159,161,110,118, 5,221,133,244,255, +180,226, 87,159, 50,202,213, 4, 77,187,217,240,238, 15,243,176, 87,244,112, 20,134, 31, 59,124,112,203,160, 65,131, 14, 0,216, + 3,224,107, 43, 43,171,251,227,198,141,139, 61,122,244,104,236,182,109,219,180, 9, 9, 9,100,218,180,105, 42, 14,135,243, 53, +117, 31,164, 64,129, 2,133,255, 26, 42, 34,195,219, 55, 68,104, 13, 89,182,108,153,132, 16, 82, 17, 75,107, 82, 53,101,134,174, + 90,181, 74, 66, 8,169,136, 14,255, 97, 0,179,234, 2,154, 5,237,221,187,151,112, 56,156,255,124,100, 99,170,114,138,135, 15, + 31,222, 81, 46,151,183,179,179,179,107, 87,110,185,114,182,182,182, 78, 58,126,252,184,178,164,164, 68, 73, 8, 81,234,245,122, +101, 68, 68,132,178, 71,143, 30,202, 42,111,253,117,213,243, 55, 88, 41,198,131,231,171,167,147,149, 98, 60,248,224,167,137,135, + 14, 29,186,146,156,156,124,209,220,220,124,105, 61, 57,157,109,108,108,214, 90, 90, 90, 94,179,182,182, 94,105,105,105,153,165, +213,106, 73, 81, 81, 17,137,143,143, 39,119,239,222, 37,143, 31, 63, 38,150,150,150,233, 53,213,179,183, 41,243, 73,209,150,121, +196,120,104, 3,209,236, 94, 65, 0, 16,233,142,229, 36,255,251, 96,242,124,102,127,210,131,203,120,244, 17,231, 19, 34,145,104, +255, 47,191,252, 98, 76, 76, 76, 36, 97, 97, 97,228,210,165, 75,100,193,130, 5,164,169,131,189,186, 35,155,158,211,141,195,188, +246, 49, 1, 75,213,106,181, 68, 46,151, 75,148, 74,165,164, 89,179,102,146,246,237,219,135,118,236,216,113,251,233,211,167, 23, +110,220,184,113, 88,111, 51, 78,124,241,205,211,132,124, 53,144,144,121, 93,201,219, 25, 61, 72, 47, 83,230,203, 26, 57,237,236, +210, 43,162,181,171, 84, 42, 18, 30, 30, 78,110,223,190, 77,196,214,214,114,127, 83,198,172, 46, 28,116,239, 98, 14, 81,125,235, +217, 83, 72, 63,252,228,251,111, 12, 37, 87,142,146,159,167, 12,212,247, 16,209,247, 86, 41,119,146, 16,146, 53,106,212,168,119, +132,144,172,179,103,207,166, 17, 66,178, 70,142, 28,249,142, 16,146, 5,224, 68,117,156, 31, 4, 39, 61, 84, 46,178,230, 5, 5, + 5, 73, 8, 33,146,160,160, 32, 9, 80, 22, 68,181,187,144,126,228,233,190,173, 70,245,165, 35,228,244,180,193,134,238, 66,250, +145,106,235, 41, 98, 94,140, 60,180,131,104,174, 29, 35,191, 44,152, 96,232, 42, 54,191,231,233,233,185,117,225,194,133,161,143, + 31, 63,126,101, 48, 24, 98,147,146,146, 98,247,236,217, 19,219,169, 83,167, 7, 86, 86, 86, 81,108, 54,123,110, 93,215,232, 79, + 2,197, 73,113, 82,156, 20, 39,133, 15, 13, 76,181,252,118,113,243,230,205,124, 66,200,226,209,163, 71, 99,211,166, 77, 99, 90, +180,104, 49,206,209,209,209, 6, 0, 50, 51, 51,139,163,163,163,229,163, 71,143,198,218,181,107,177,101,203,150,237, 40,243,101, +249, 95, 34,251,220,185,115, 78,243,231,207,207,221,184,113,163,113,218,180,105,222, 0,162,243,243,243,155, 78,152, 48, 97, 30, +147,201, 28,237,234,234,234,147,149,149,149, 87, 82, 82,114, 12,192, 62,212, 49,103, 90, 19, 56,116, 24,218, 54,178,199, 53, 58, + 12, 85,190, 30,184,118,237,218,177, 35, 71,142,212,238,216,177, 67, 47,151,203, 47,212,147, 46, 45, 47, 47,111, 93,197, 63,150, +150,150,226,151, 47, 95,206,181,181,181,165, 39, 37, 37, 65,173, 86, 35, 49, 49,209,136,178,169,169,106,161,212,147, 93, 63,156, +189,225,181,120, 98,128,121,113,220, 11,152, 48, 24,208,177,216,200,126,114, 13,135,194,227,228, 42, 45,118,127, 76, 59,165, 82, +233,183, 11, 22, 44,152,176,116,233, 82,174,171,171, 43,237,209,163, 71, 56,117,234,148, 58, 55, 55,119, 0,128,123,191,134,126, +106, 24,140, 70, 35,216,108, 54, 0, 96,249,242,229,160,211,233,172,220,220, 92, 54,141, 70,227,208,104, 52, 30,141, 70, 99,232, +146, 99, 97,148, 23, 33,167, 72,138,180, 28,105,173,124, 6,163,241,212,211,167, 79, 23,181,110,221,154,254,252,249,115,228,229, +229, 33, 49, 49,145, 24, 8, 57, 17, 94, 98, 40,115, 74, 84,215,191,126, 60, 75,171,225,173, 44, 56,116,246,225,181,240,215,208, + 25, 63, 26, 49, 10,101,177,180, 0,224, 16,141, 70, 51, 1, 80,208,172, 89,179,158,175, 95,191, 54,109,214,172, 89, 73, 92, 92, +220, 21, 26,141,230, 8,224, 72,117,156,166,166,166,249, 0,242,207,158, 61, 11, 0, 51, 81,118,242,218, 4, 6, 6,102,133,135, +135, 35, 40, 40, 40, 7,192, 94, 0, 16, 88, 88, 13,245, 17,154,208,216, 63, 5,161,147, 26,244,221, 70, 82,173,213, 85, 96,107, +215,171, 5,159, 14,214,193, 53,104, 39,246,162,179,245,218,150,193,193,193,225, 74,165, 82,125,242,228, 73,205,212,169, 83, 25, + 9, 9, 9,207, 0,220, 7,112, 22,229, 62,150, 20, 40, 80,160, 64,225,191,138, 15, 45, 88,117,250,104,125,168, 90, 55, 1,248, +225,205,155, 55,149, 73,165,223,188,121, 35, 1,240, 35,202,162,193, 15,105,128,226, 93, 93,110,209,218,247,145,141,249,144,147, +235,231,231,103,250,250,245,107, 19, 84,159,196,145,246, 17,156,191, 67,117,185, 14, 61, 61, 61,119,234,116,186,208, 31,127,252, +241, 52,131,193,152,240, 7,212,190,171,135,135, 71,209,241,227,199,141, 97, 97, 97,100,245,234,213, 6,123,123,251, 34,252,222, + 71,235, 55,156,254,108,198,153, 37,222,142,242,136, 73, 93,201,219,133, 67,201,253,137, 61,200, 44, 71,129,220,159,203, 56,245, + 7,223, 74, 60,132, 66,225, 33, 83, 83, 83,185,185,185,249, 13, 0,157,255,200, 53,178,178,178, 58, 42, 22,139,111, 84,221,236, +236,236, 66,109,108,108,190,179,182,182, 94, 45, 18,137,102,187,113,217, 59, 22, 54,117, 40,141, 26,222,140,220,236, 98, 67, 38, + 90,179, 63,156, 58,252,176,158,246,110,110,110, 5, 33, 33, 33,198,139, 23, 47,146, 21, 43, 86, 24, 27, 53,106, 36, 71, 45,126, +109,181, 90,180, 68,140, 83,103, 70,118, 52,230, 12,118, 36,155,188,205,140, 61, 45, 24, 53,173, 80,156, 88, 46,128,167,212,197, +233,238,238,254, 35, 33,228,240,250,245,235, 15,227,215, 92,160,125,131,131,131, 3, 9, 33,129,193,193,193,129, 0,250, 3,128, +191,144, 30,114,108, 88, 91, 67,230, 32, 7,242,141,183,192,224, 47,164,135, 84,107,201,180,100,158, 59, 63, 99,176, 49,107, 70, + 23,178,214,131,111,232,104,201,185,197,102,179, 23,162,204,226,220, 30, 0,155,122,107,166, 56, 41, 78,138,147,178,104,253,229, +132, 87,189, 32,182,180,180, 60,212,164, 73,147,211,174,174,174,167, 5, 2,193,118,148, 57,205, 55,244, 66,184,109,216,176, 65, + 46, 20, 10, 91,253,137, 23,215, 22,128, 35,126,159, 56,247, 79,235, 48,235,236, 49, 63, 97,233,152,151,235,236, 49,191,202,215, +237,189,189,189,191, 65, 89, 52,239, 63,218, 9, 93, 45, 45, 45,247, 88, 90, 90,166,151,251,102,185,214,135,179, 45,131, 49,161, + 39,151,241,168, 51,155,158,221,147,203,124,216,142,193, 24,255, 55, 29,128,181, 45,182,168,137,211,201,218,218,122,135,165,165, +101,166,181,181,245,158, 6,138,172,223,112,182, 50,133,125, 47, 17,227, 92,103, 51,154,170,151,144,113,182, 45,175,230, 69, 29, + 13,104,187, 95, 80, 80,208,167,132,144, 79, 29, 28, 28, 70, 87, 17,254, 62,107,215,174, 13, 32,132, 4, 84, 68,128,111,207,131, +109, 15, 17,227,120, 23,115,154,180,135,136,113,188, 61, 15,182, 53,213,179,167,136,113,170,139, 57, 77,234,111, 78, 63,238,194, + 65, 35,234,102, 78,113, 82,156, 20, 39, 37,180,254, 25, 66,139,234, 48, 20, 39,197, 73,113, 82,156, 20, 39,197, 73,113, 82, 66, +171,122, 97, 85,117,171,156, 97, 99, 82,231,134, 2, 5, 10, 20, 40, 80,160, 64,225, 15,161,198,128,165,180, 90, 84,105, 67, 28, +219, 63, 70,217,222,164, 56, 41, 78,138,147,226,164, 56, 41, 78,138,243, 95,199, 89, 23,247,255,122, 97,221,223, 26,148, 89,149, +226,164, 56, 41, 78,138,147,226,164, 56, 41,206,127, 45,232,212, 41,160, 64,129, 2, 5, 10, 20, 40, 80,248, 67,240, 43,255,252, + 48,112,105,245, 62, 90,204,246,235,115,244,122,189, 45, 0, 48,153,204, 92,221,179,213,246,181,177,179,128,222,250,178,244, 59, + 96, 2, 51,245,192,141,106, 56,111,232,245,122,139,114,206, 34,221,179,213,253,107,229,108,191,254, 90,213,242,250,103,171,251, +126, 88,134, 0, 12, 86,251,245,153, 31,212,213,161,190,103,133,134,223,196,196,250,175,213,243,239,194,249,111, 6,171,195,250, + 28,157,174,172, 31,177, 88,204, 92,237,211,218,251,145, 73,135,245,153, 85,203,235,158,174,182,171,141,147,103,202, 41,112,119, +180,217, 94, 27,103, 82,102,254, 98, 85,113,169, 85,109,156, 13, 29,155,206,246,246,189, 13,229, 99,147, 1,204, 76,207,202,186, +241, 23,235, 75,109, 1,172, 6, 96, 94,229,187, 40, 0, 95, 80,189,146, 2, 5, 10,127, 51,161, 21,137,178, 60,135,251,203,197, +214,254, 26,133,150, 94,175,183,149,252, 18, 8,149, 26,232, 61,121,189,173,219,240,125,191, 75,148,172, 47, 45, 98, 75, 99, 78, +250, 48,116,114, 11, 27,166,214, 60, 51, 51,147, 6, 0, 52, 26,237, 63, 0, 92,170,225,180,144,252, 18,136, 98, 13,224, 63, 46, +216,194, 5, 48,207, 51, 49,249,210,148,207,239, 89, 82, 82,210, 2, 0, 76, 77, 77, 99, 74, 84,170, 59, 54, 90,237,182, 15,203, +215,212,178,170,117,237, 53,105,189,173,247,240,125, 11, 12, 70, 35, 59,227,249,143,254,165,249, 9, 76,150, 94,189,119, 37,112, + 37,176, 26, 81, 85, 3,223,175,199,253,100,133, 21, 11,232,197,230,114, 91,137, 44, 44,186, 25, 9,105,102, 52, 26,105, 6,189, + 62, 86, 46,147,221, 55,234,245, 47,245, 26,149,149,228,194, 55,198,218,234,249, 97, 91, 62, 1,152,191, 0,163,249, 2, 65, 79, + 6,139,213, 25, 0, 12, 58,221, 35,149, 82,121,103, 4,112,166, 62,109,175,239,249,249,216,242,255, 54,232,116,122,219,228,107, +129, 80,235, 0,191, 81,223,216,250, 78,248,233, 56, 0,104,114, 95,218, 41, 19, 46,116, 0, 0,190,123,192, 83,142,216, 47, 7, + 0,152,239,179,108,227,195, 86, 65,173, 3,154, 5, 4,219,214,197, 57,117,237, 41,171,165,179, 70,114, 0,224,250,217,239,154, +222, 14,253, 97, 32, 0,244, 26, 57,231, 74,191, 81,243,227, 1, 96,203,254, 80,171, 19,223,140,169,149,179,126, 99, 83,102, 34, + 75, 8,243,208,200,179, 68,206,124,166, 56, 33, 33,129, 14, 0, 14, 14, 14,245, 26,155, 78,128, 48, 11,152, 71,103, 48,186,185, +123,120,248, 1, 32, 73,111,223, 70, 26,244,250, 7,246,192,222, 63,185, 47, 45, 32,228,183,193, 89,105, 52, 26,213, 33, 41, 80, +160,240,119,195,165,114,113,117,233,119, 47,179, 53,237,161, 82, 3,247, 18,129,238, 29,125, 49,107,194, 32, 65,213,223,206,236, + 11,118, 73,120,126,222,251,224, 79,219,232,190,190,190, 72, 78, 78,174, 87, 45,138, 53,192,221, 4, 0,210,215,102, 69,124,254, +219, 29, 91,183,154,247,237,219,151,233,224,224, 0, 26,141,134,236,236,236,142, 55,111,222,108,187,104,209,162,207, 32,125, 93, + 84,172,129,226,110, 66,221,188, 21,117,109,209,180, 17, 86,207, 31, 35, 4,128,149,147,247,182,125,254, 38,199,242,237,219,183, +189,151, 45, 91, 86,192,184,115,231, 7,107,224,112, 14,144, 86,159,122, 30,189,248,148, 43,204,250,217,109,226,252,249,103, 61, + 60, 60, 4,174,174,174, 52, 51, 51, 51, 48, 24, 12, 20, 21, 21,185, 68, 71, 71, 15,124,246,236,153,234,230,189,255,176, 35,158, + 13, 77,202,229,118, 40,173, 87,219, 75, 50,185,215,205,204, 98, 38,141, 24,225, 52,102,204, 24,174,187,187, 59, 0,224,237,219, +183,158,103,206,156, 25,119,246,236,217,181, 40,201,212, 23,107, 80, 90, 87,219, 43, 57, 1,112,129,206, 34, 91,219,137, 12, 22, +171,133, 94,175,119, 44,183, 54,100, 24,116,186, 24,105,110,238,177, 15,203, 83,248, 61,212, 58,224,117, 22,208,167,155, 31, 38, +141,236,195, 7,128,101, 99, 55,116,124,255, 46,209, 68,163,209,160,169, 87,179, 46, 95,127,179,253, 26,232,116,132,132,222,172, + 44, 95, 31,206,168,215,201, 8,252,122, 7, 50, 95,157,233,104,144, 37,246, 84,200,101, 12, 0, 48, 23, 10, 71,158, 57,249,243, + 29, 7,159,209, 79, 18,243,181,245,226,172,109,108, 94, 61,185,199, 62, 61,250, 78,243,239,175, 31, 98,185,184,184,224,213,171, + 87, 13, 27,155,178, 55,102, 70,123,251,216,109, 95,125, 37,246,247,247,135, 64, 32, 0,147,201,132, 94,175,239,243,224,193,131, + 62,129,129,129,115, 32,123,163,170,239,216,172, 7,182,209,104,180,158, 83,103, 45,176, 31, 52,108, 52, 70, 14,232, 66,117, 68, + 10, 20, 40,252,221, 80, 97,189,170,186,242,112,127,173, 66,139,201,100,230,246,157,178,209,182, 91,135,150,120,254, 50, 94,150, +146,154,165,172,248,173, 48,230, 76,211, 97, 93, 28,155,135,135,223,131, 90,173,198,163, 71,143,240,242,229, 75,188,123,247, 14, +179,103,207, 86,151, 79, 29, 86,199, 89,228, 63, 46,216, 2,178, 4,129, 39,251, 77,227,155,113,113,140,210,210, 82,132,135,135, +163,168,168, 8,108, 54, 27, 78, 78, 78,232,215,175, 31, 51, 46, 46,206,178,119,223, 1, 66,255, 1,227,147, 33,244, 84, 50,153, +204,162,154,242,136, 48,153,204,220,222,147,215,219, 54,247,108,132,183, 41,153,178,213,223, 28, 84, 26,141,132,153,244,238,189, +246,222,189,123,240,243,243,195,141, 27, 55,172, 10, 11, 11,215,236,221,187,119, 53,107,243,172, 73, 9,238, 0, 0, 32, 0, 73, + 68, 65, 84,247,187,116,154,130, 37,168,153,175,200,127, 92,176,133, 85,238,105,215,219, 87,207,153,196,196,196,152,252,248,227, +143, 40, 40, 40, 0,155,205,134, 72, 36,130, 88, 44, 70,211,166, 77,105, 43, 87,174, 20, 4, 4,196,224,243,153,163, 93,181,110, + 51,222,212, 84,207,202,182, 43,223,243,172,229,215,221, 67, 47, 93,162,119,237,218,245, 55,175,237, 77,154, 52, 65,255,254,253, +185, 19, 39, 78,116, 31, 51,110,130,209,127,240,212,183, 16,184, 22,215,201,169, 74, 51,181, 42,126,236,208,103,220,184, 11,193, +193,193, 34,177, 88, 12, 62,159, 15, 0,144,201,100, 78, 41, 41, 41, 29,215,174, 93, 59,234,105,212, 73,166,127, 64, 90, 38,248, +206, 37,181,157,207,127, 43, 88, 44,102,110,133, 21,201,140,111, 90,148,150,158,163, 2, 0,141, 70, 3,141, 70, 3,181, 90,141, +185,115,102, 51,102,142,106,239,225,218,109,193,139,119, 25, 57,133,205,110, 62,177,172,216, 87, 87, 7, 39,179,248,157, 84,154, +122,107,102,224, 87, 95,137,237,236,126,157, 17, 12, 57,122,148, 81, 88, 88,216, 39, 48, 48,176, 57,225,245,144, 54, 11, 8, 22, +213,198, 89,219,216,148,198, 95,106,252,245,252,254,173,246,125, 19, 6,131,193,128,199,143, 31, 35, 60, 60, 28,219,183,111, 39, + 87,174, 92,145,153,243,249, 51, 81,235,216,124, 99,214,213, 62,219,109,243,230,179, 52, 14,135,131,243,231,207, 35, 46, 46, 14, +116, 58, 29,190,190,190,152, 52,105, 18,250,244,233, 35,158, 53,107, 54,241, 31, 48, 54, 9, 66, 47,197, 31,236, 75,116, 0, 11, + 86, 4,110,182,159, 60, 99, 30,182,124,189,146, 18, 90, 20, 40, 80,248, 59, 91,179,106, 12,241,128,176,176, 48, 82,190,117, 7, + 0, 2,208,155, 12,223,119,226,116,132,241, 82,147,225,251, 78, 16,128, 78, 0,186, 57,208,168,117,235,214, 58,169, 84, 74,158, + 61,123, 70,230,206,157,171,218,181,107,215,157, 75,151, 46,157,209,107,181, 7, 28,236,237,191, 37, 53, 56,216, 19,128,238, 10, + 8,121, 60, 94, 94,106,106, 42,185,124,249, 50, 9, 10, 10, 34,199,142, 29, 35, 87,174, 92, 33, 55,111,222, 36, 87,174, 92, 33, + 39, 78,156, 32, 81, 81, 81, 36, 62, 62,158,240,249,252, 60, 87, 64, 88, 11, 39,131, 0,140,166,195,127, 92,114,246,185, 46,216, +107,248,190, 69, 4, 96, 88, 0,222,173, 91,183, 54,156, 57,115,134,132,132,132,144,159,126,250,137, 68, 69, 69,145,252,252,124, +194,228,240,243, 42,246,171,169,158, 4,160, 59, 58, 58,230, 73,165, 82,226,236,236, 76,216,108, 54,177,179,179, 35, 77,155, 54, + 37, 29, 59,118, 36, 3, 7, 14, 36, 19, 38, 76, 32,107,214,172, 33, 82,169,148,112,185,220,156,138,253,106,226,244, 3, 76,249, +124,126,170, 68, 34, 33, 53,161,164,164,132,228,231,231,147,107,215,174, 17, 62,159,159,234, 7,152,214,198,105, 10,180,241,241, +241,201,203,207,207, 39, 90,173,150,164,166,166,146,232,232,104, 18, 23, 23, 71, 82, 83, 83, 73, 73, 73, 73, 37,119,124,124, 60, +113,115,115,203, 51, 5,218, 16,106, 17, 68,141,125,233,195,205,197,206,110,160, 88, 44, 46, 57,123,246, 44,201,200,200, 32, 71, +142, 28, 33,116, 96,195,135,229,106,227,100, 3,253,186,118,237,106,120,252,248, 49,121,241,226, 5, 89,190,124, 57,233,223,191, + 63, 25, 48, 96, 0, 9, 12, 12, 36,233,233,233, 36, 61, 61,157, 12, 28, 56,208,192, 6,250,213,213, 63,171, 27,155, 66,192, 37, + 32, 32,160, 68,171,213,146,164,164, 36,210,162, 69,139,116, 6, 48,145, 15, 52,239, 14,112,234,234,159,142,128,133,189,189,125, +214,227,199,143, 73,104,104, 40,113,117,117,205, 99, 0, 83,205,129, 38,230, 64, 19, 6, 48,181, 73,147, 38,121,143, 31, 63, 38, + 5, 5, 5,196,197,197, 37,203, 17,176,248, 3,125,137, 14,224,208,138,192,205,228, 77,186,138,172, 8,220, 76, 0,164, 18, 66, + 8,170,241,241,164, 64,129,194, 63, 31, 31,106,145,127, 10, 42,111,146, 1, 1, 1, 52, 0,119,107, 43, 92,194, 96,108,220,178, +101, 11,179,180,180, 20, 7, 15, 30, 84,124, 50,106,212,233,238,221,186, 37, 53,118,117,149,210,232,244, 58,179, 13,231,113, 56, + 11,183,108,217, 34,210,104, 52,136,136,136, 64,219,182,109, 33, 22,139, 33, 16, 8, 32, 16, 8, 96,107,107, 11, 47, 47, 47,228, +230,230,194,204,204, 12, 75,151, 46, 21,230,113, 56, 11,235,226, 53, 26, 9, 19, 0, 12, 70, 35,219, 4,152,229,214,174, 93,196, +218,181,107,233, 86, 86, 86,176,180,180,132, 64, 32, 64, 92, 92, 28, 52, 26, 13,120,166,188,122, 5,105,165,211,233,116,129, 64, +128,219,183,111, 99,193,130, 5,232,220,185, 51, 68, 34, 17,204,204,204,208,162, 69, 11,244,235,215, 15, 51,103,206, 68, 82, 82, + 18,104,245,112, 42,137,101, 50,231,205,156, 57,211,214,207,207,175,218,223, 75, 75, 75, 33,149, 74,145,151,151, 7, 39, 39, 39, +140, 30, 61,218, 54,150,201,156, 87, 19,159, 21, 32,118,242,244,188,240,236,217, 51,107, 62,159,143,144,144, 16,156, 59,119, 14, + 87,175, 94,197,229,203,151, 17, 22, 22,134,243,231,207, 35, 47, 47, 15, 0,224,233,233,137, 83,167, 78, 89, 11,108,109,195,172, + 0, 49, 53,164,235,135,247, 57, 57,215, 91,100,103, 91, 79,156, 48,225,190, 82,169,196,196,137, 19,177,113,211,166,149, 44, 96, + 81,125,246,247, 2,132,150,246,246,135, 55,111,222, 76,207,206,206,198,136, 17, 35,242,183,109,218, 52, 61,242,218, 53,119,201, +213,171,238, 27,131,131,167,119,239,222, 61, 63, 61, 61, 29, 71,143, 30,165,219,185,184, 28,246, 2,132, 13,173,167, 2, 88,176, +115,231, 78,110,105,105, 41,250,246,237,155,100,140,137,241,210, 3, 63, 43,129,184,187,128,182,174,253,179,128,121, 75,151, 46, + 21,115, 56, 28,124,249,229,151,249,197,239,223,183,212, 3, 63,201,128, 20, 25,144,162, 7,126, 82, 36, 39,183,156, 60,121,114, + 62,135,195,193,142, 29, 59,196, 89,191, 38,221,174, 47,218, 2,184, 0,224, 30,128,204,169,179, 22, 76,245,107,223, 9, 71, 15, +236,197, 55,193,203, 14, 3,248,132, 70,163, 29, 3,176,132,234,121, 20, 40,252, 59, 81, 31, 45,242, 23, 69,141, 41,119,152, 85, +149, 36,128, 30,181,177, 88, 88, 89,181,109,217,178, 37,194,195,195,225,227,227,243, 76, 36, 18,233, 77, 56, 28,176, 88, 44, 16, + 99,157, 58, 11,166,124,126,239, 62,125,250, 48,159, 60,121, 2, 55, 55, 55,152,154,154,130,197, 98,253,102, 51, 49, 49,129,189, +189, 61,228,114, 57,122,247,238,205,218,189,123,119,111,168,213, 95,215,249, 64, 76,136, 22,228, 61,217, 60,225, 63, 71, 14, 55, +241,247,247,135, 76, 38,135,209,104, 4,143,199,131, 70,163, 1,147,201, 44,155, 2,210, 17,121,125,206,152,193, 96, 48, 48, 24, + 12,184,185,185, 97,227,198,141, 40, 45, 45,133,137,137, 9, 0, 64, 46,151, 67, 42,149, 34, 58, 58, 26, 41, 41, 41, 40,127, 11, +175, 21,102, 66,225,160, 49, 99,198, 84,155,240, 87,173, 86, 67, 38,147, 65, 38,147, 65, 42,149,162,180,180, 20,157, 58,117, 98, + 95, 10, 11, 27,132,130,130,109,213,238,195,229,142, 58,122,244,168, 45,155,205, 70, 73, 73, 9, 20, 10, 5,210,210,210,240,254, +253,251,210,220,220, 92,189,153,153, 25,221,213,213,149,206,225,112, 56,195,135, 15,167,201,229,114,208,104, 52, 4, 4, 4, 88, + 29, 15, 9, 25, 3,141,102, 59, 53,164,235,135,235,128,186,141, 70, 51,164, 67,251,246,183,159, 61,127,238,183,112,225, 66, 68, + 69, 69,109,230,157, 60,121,175, 24,120, 89,219,190, 73,192,188,111,171, 8, 24,242,254,189,143, 22,200,171, 82, 36,197, 53, 57, +249,234,228,201,147, 95, 69, 69, 69, 89,239,216,177, 67,252,201,136, 17,243, 0,108,104, 72, 29,205,132,194,118,246,246,246,184, +114,229, 10, 82,223,189, 91,166, 7, 74, 26,244,198,197, 96,116,245,247,247,199,249,243,231,145,254,254,253, 50,253,111,235, 88, +246,162, 4,228, 49,147,146,150, 29, 62,124,248,208,180,105,211,192, 96, 50,187, 66,223,160,137,195,223, 57,190, 79,155,189, 16, +135,247,239, 62, 12, 96, 6, 0, 35,128,103, 84,143,163, 64,225,223,109,213,170, 75,139,252,141,196,214,254, 6, 91,180,108,109, +109, 29, 5, 2, 1, 50, 51, 51,209,204,219, 59,151,195,225,128,205, 98,129,203,102,215,171, 6,197,197,197, 62, 14, 14, 14,144, +201,100,176,182,182,134,137,137, 73,229,198,102,179, 43,255, 54, 51, 51, 3,157, 78,135,139,139, 11,138,139,139,125,234,228,205, +137,182, 61,185,123,206,220,199,247,174, 52, 25, 49, 98, 36, 44, 44, 44,225,236,236, 4, 91, 91, 91,152,154,154,194,217,217, 25, +238,238,238,100,219,182,109,224,217,250,214,235, 70, 94, 85, 60, 49,153, 76, 24, 12, 6,228,228,228,224,205,155, 55,136,138,138, +194,227,199,143,241,226,197, 11, 40, 20, 10,212, 67,103,161,184,164,164, 21,147,201,172, 86,100, 73,165, 82, 72,165,210, 74,161, +149,151,151,135,148,148, 20, 40, 85,170,214,181,136,222,145, 45, 91,182,100, 0,128,169,169, 41, 90,183,110,141,125,251,246,233, + 47,158, 59, 55,182,249,227,199,150,206,215,174,137,254,243,227,143, 99, 71,143, 30,109,120,242,228, 9,228,114, 57, 94,191,126, + 13, 27, 27, 27, 38,155,203, 29, 67, 13,231,134, 65, 2,168,172, 21,138, 1,157, 59,119, 78,150,201,100,216,186,117, 43,157,101, +102,182, 63,184,134, 41,190, 74, 48, 24, 93,252,253,253,113,225,194, 5,100,190,127,191,252,125, 53, 2,230, 61,144,151,154,148, +180,252,240,225,195,232,215,175, 31,104, 76,102,131, 29,149, 58,118,236,216,210,104, 52,226,213,171, 87, 16, 1, 79, 27,186,191, +187,135,135, 95,133,229,151, 15,220,175,169, 28, 31,184, 31, 25, 25, 9, 83, 83, 83, 52,107,222,188, 77, 3, 15,179,141, 70,163, +101, 77,155,189, 16,161, 87, 31, 2, 0, 14,239,223,157, 83, 69,100, 81,160, 64,129,178,104,253, 93, 45, 90, 21,194,170,234,134, +223, 8,173,122,138, 15, 0, 0,139,197, 2,155,195, 1,155,205, 46, 19, 72, 28, 78,189, 57,104, 52, 26,184, 92,110,165,176,170, + 42,176,170,254,205,227,241,234, 37, 96, 0,160, 40,241,106,183, 25,211,167,177, 57, 28, 14, 52, 26, 53, 8, 33,224,112,184, 16, +137, 68,112,115,115,131, 92, 46, 71,231, 46,221,213,105, 82,147, 48,171,102,195,163, 62,230,236,233,245,122,168, 84, 42, 20, 21, + 21,161,176,176, 16,114,185, 28, 37, 37, 37,245, 94,138,110, 52, 26, 25,105,105,105,248,249,231,159, 81, 80, 80, 0,160,204,209, +186, 66, 92, 85,124, 38, 39, 39, 35, 36, 36, 4,239,222,189,107,208,245,233,214,173, 27,194,194,194, 24, 61,122,247, 62,112,195, +213, 53,243,134,171,107,102,143,222,189, 15, 92,184,112,129,225,232,232,136,148,148, 20, 68, 68, 68,160,168,168, 8,132, 16,106, +253,252, 71,224, 45, 80, 84, 92, 88, 56,109,229,202,149, 68, 32, 16, 96,235,183,223,182,218, 0,140,175,175,128, 17,214, 34, 96, +132,127, 76,192,128, 16, 2,163,209, 8,131,193,240, 81,109,163,209,104, 52, 22,139,213,208,208, 10, 13, 41, 92,233,248,190,116, +205, 70, 92, 62,127,166,226,251, 4, 74,100, 81,160, 64,225, 31,128, 26, 29,225,153, 85, 20,100,229,103, 77,200,201,201,201, 80, +169, 84, 77, 92, 93, 93,145,158,158,110,235,226,226,242,158,205, 98,193,132,205, 6,141, 94,183, 38,224,241,120,175, 50, 51, 51, +187, 56, 58, 58, 66,175,215, 87,138,170, 15,167, 14, 43,172, 52, 47, 94,188, 0,143,199,123,133,210, 90, 35, 39,192,160, 41,106, +212,166, 77,155, 74,203,144, 72, 36,130, 72, 36, 4,135,195,197,170, 85,171,140, 59,182,109,219,235,210, 43, 88,246,233,162,149, +100,229,134, 3,127,234,153,173,239,131,137,199,227,189,114,118,118,238, 36, 20, 10, 17, 26, 26,138,148,148, 20, 20, 21, 21,161, +184,184, 24,106,181, 26,197,197,197,208,104, 52,224,114,185,104,222,188, 57,204,205,205,113,243,230,205, 87, 80,171,171, 23,151, + 5, 5,161,175, 94,189,234,212,190,125,251, 74,139, 74,207,158, 61,105, 61,123,246,180,174,180,162, 21, 23, 35, 63, 63, 31,207, +158, 61,195,205,155, 55, 65,163,209,144,144,144, 96, 80,151,148,156,160,198,196,199,161, 20,120,196, 56,124,248,208,103,159,125, + 54,189, 75,151, 46, 48, 0, 3, 1,132,252, 63, 10, 24, 0,192,227,199,143,163, 13, 6, 67,151,166, 77,155, 66, 10,116, 0,112, +190, 65, 34, 50, 49, 49, 82,175,215,247,110,213,170, 21, 66, 79,159,238, 6, 32,165,186,114, 42,160,155,159,159, 31, 74, 74, 74, +240, 58, 54, 86,210, 0,145,117, 96, 69,224,230,169,147,103,204,195,209, 3,123,113,120,255,238,180, 67,251,118, 57,163, 30,254, + 99, 20, 40, 80,248, 87, 89,179,234,212, 34,127, 81,204,170, 73,124, 49, 27,194, 34, 43, 42,146, 68, 70, 70, 54,105,211,166, 13, + 14, 28, 56,208,190,115,167, 78, 25, 38,108,182,158,109, 98, 2,122, 61, 30, 36, 37, 42,213,173, 91,183,110,117, 24, 62,124, 56, +243,201,147, 39, 16,139,197,149, 66,171,226,147,201,100,130, 16, 2, 30,143,135, 95,126,249, 69, 91,162, 82,221,170,211, 90,100, + 48, 26,232,229, 66,143, 16, 2,169, 84, 10, 19, 19, 19,108,223,190, 3,123,182,109,155, 96, 0,206,120,242,109,190, 2,192,253, +127,123, 64, 23, 23,223,190,124,249,114,219,181,107,215,178,156,156,156, 32,149, 74, 81, 84, 84,132,130,130, 2,200,229,114,200, +229,114, 20, 21, 21, 65, 42,149,130,203,229, 34, 42, 42, 74, 87, 90, 92,124,187, 38, 62, 78,105,233,217, 41, 83,166, 44,141,140, +140,180,103, 50,153,208,233,116, 48, 26,141, 48, 26,141,208,106,181, 72, 76, 76, 68, 76, 76, 12,226,226,226, 80, 88, 88, 8, 22, +139, 5, 6,131,129, 23, 47, 94, 20,241,117,186,211, 26,106, 76,127, 52, 88, 64,232,131, 7, 15,166, 79,154, 52, 9, 14, 78, 78, +221,145,158, 94, 47, 1,115,174, 22, 1, 35,251, 56, 1,243,171, 0, 82, 40,158, 39, 39, 39,119,233,209,163, 7,236,157,156, 54, + 55, 79, 79,191, 17,219, 0, 63, 45,131, 94,127,255,193,131, 7,189, 39, 79,158,140, 3, 7, 14,108,182, 73, 78,190,154,247,193, + 52,167, 13, 96,211,216,221,125,243,212,169, 83,113,253,250,117, 24,244,250,251,181, 80, 86,141,248,222,104,234,172, 5,206, 31, + 56,190,239,163,209,104,243, 1,108,165,122, 20, 5, 10, 20,254,201, 22,173, 6, 77, 29,154, 26, 12, 43,150, 44, 89,162,163,211, +233, 24, 57,114,164,217,249, 11, 23, 70,191,120,249,210, 45, 55, 55, 87,100, 48, 24,234,228,178, 81,171,119, 45, 89,178, 68,170, +209,104,224,229,229,133,194,194, 66, 24, 12, 6, 48,153, 76, 48,153, 76,208,104, 52,208,233,116, 8, 4, 2, 68, 70, 70,226,208, +161, 67,114, 27,181,122, 87,157, 15, 9,131,225, 85, 72, 72, 8, 24, 12, 6,225,114,185,160,209,104, 96, 50,153,216,177, 99, 71, +238, 30, 32, 20, 0, 24,116,186, 6, 0,232,116, 90,125,189,119,235,156,183,100,179,217, 48,150, 45, 2,168,179,172,133, 90,189, +115,203,150, 45,138,215,175, 95, 67,165, 82, 85, 90,223,148, 74,101,165,115,189, 84, 42, 5,141, 70,131, 74,165,194,133, 11, 23, + 20, 22,106,245,206,154,248, 10,128,236,244,132,132,161,237,219,183, 47, 72, 78, 78,134, 76, 38,195,171, 87,175,112,243,230, 77, +156, 58,117, 10,215,175, 95, 71, 98, 98, 34,244,122, 61, 28, 29, 29, 65, 8,193,185,115,231,100,122,133, 98, 96, 1,144, 77,141, +137,154,209, 72, 44,238,109,103,107,155,106, 99,109,157,222, 72, 44,238,253,225,239, 66, 32, 62, 62, 62, 30,122,189, 30,110,110, +110,150,181,249,105, 17,189,254,193,131, 7, 15, 48,121,242,100, 56, 55,105,178,201, 21,176,249,176,140, 43, 96,227,234,238,190, +169, 66,192, 16,189,254, 65, 67,235,108, 6,236,254,234,171,175, 74, 76, 76, 76,112,242,228, 73, 55,157,135, 71, 28, 19, 24, 47, + 0,188,123, 0, 38,117,237,111, 15,236, 93,179,102, 77, 54,141, 70,195,177, 99,199,172,133,238,238,209, 76, 96,138, 16,104, 36, + 4, 26, 49,129, 41, 66,119,247,232,147, 39, 79, 90,235,245,122, 44, 90,180, 40,219, 30,216, 91, 11,229, 2, 66,200, 16, 66,136, + 63, 33,196,249,208,190, 93,184,124,254, 76,133,200,154,129, 50,167,247, 73, 0,162,169, 30, 71,129, 2,133,127, 50,170, 53, 67, + 49,219,175,207, 1,136,109,247,142,190,120,254,242,141,204,218,194,252, 90,197,111,133, 49,103,154,246,242, 49,247,253,254,251, +239,193, 98,177,144,150,150,134,216,216, 88,152,155,155, 99,194,132, 9,234, 18,133, 98,104,149, 92,135,125, 0,220, 44,231, 44, +203,167, 38, 75, 16,184, 51,163,154, 92,189, 28,198, 16, 10,133, 80, 42,149,160,211,233,224,114,185,224,241,120, 48, 53, 53, 69, + 68, 68, 4, 6, 15, 25,102,200,227,249,255, 26,176,244,215,124,106,149,156, 21,177,134, 58, 0,188, 72,224, 75, 91, 7,135, 37, +171, 87,175, 54,237,223,191, 63, 76, 76, 76,224,212,200, 51,219,109,192,214,221,116, 58, 77,159, 94, 32, 95,229,222,200, 65, 24, +155,144, 2,128,150,171,123,182,218,161, 74,174,195,223,213,211, 69,115,207,237,151,159,182,153,183,110, 93,230,143, 46,149, 74, +145,147,147,131,220,220, 92, 72,165, 82,168, 84, 42, 0, 64, 88, 88, 24, 46,135,199,201, 75,156, 70, 39,213, 84,207, 95,219,254, +198,204, 65,251,180,241,241,144,159, 24, 54, 54, 54,200,201,201, 65, 94, 94, 30,164, 82, 41, 74, 74, 74, 96, 48, 24, 80, 88, 88, +136,131,135,127, 50, 20, 8,252,223, 85, 6,132,172,141, 83,149,102,106,169,124,232,232,215,220,149, 76,159, 62,221,204,220,220, + 28, 70,163, 17, 69, 69, 69, 72, 77, 77, 69,114,114, 50,194,195,195, 85,185, 82, 13, 84,214,125,211, 43, 3,150, 86,195,249, 39, +226,111,199, 89, 53,110,149,131,189,125,230,251,247,239,109, 13, 6, 3, 28, 29, 29,245,210,194,194, 77,108,224,186, 25,144, 5, +128,228, 3,171,119,238,222, 61,109,216,176, 97,104,215,174, 93, 90,118, 78, 78,227,234,250, 18, 1, 24, 94,128,176,216,201, 41, +230,217,179,103,226,212,212, 84, 76,158, 60, 57,255,253,219,183,203, 43,252,181,100, 64, 55, 87,119,247, 77, 39, 79,158,180,110, +210,164, 9,124,124,124,178,185,169,169, 45,222, 0,178, 26,250,103,141, 99, 83, 26,127,169,241,156, 17, 45,219,205,157, 59, 23, +122,189, 30,225,225,225,120,250,244, 41,222,191,127,143,135, 15, 31, 74,205,249,252,177, 85,114, 29, 86,219, 63, 7,122,170,220, +142, 29, 11,161,153,152,152,224,240,225,195,136,140,140, 4, 0,248,249,249, 97,234,212,169,208,235,245,152, 56,113, 18,185,244, +198, 52,169,182,254, 9,160, 37,128,111, 81, 38,242,218, 17, 66,184, 52, 26, 45, 19,128, 51, 26,230,147, 69,245, 79,138,147,226, +252,247,112,254, 35, 81,103,174,195,245, 63, 64,248,219, 52, 31, 51, 51,207,236, 11,102,118,237,230,239, 29, 28, 20, 72,111,223, +190, 61,156,157,157,225,231,231,135,212,212, 84,142, 72, 36,170, 43,159,154,210,127,192,248,100, 95, 95, 95,209,242,229,203,133, +253,250,245, 99, 57, 59, 59,131, 16,130,200,200, 72,132,134,134,106, 15, 28, 56, 32, 47,182, 27, 34,149,220,249, 89, 89,159,124, +106, 79,129, 98, 0,235,156, 50, 51,247,207,155, 51, 39,176,117,155, 54,211,131,130,130,232, 2,158, 41,107,227,170, 25, 92, 0, + 88,255,221, 41,225,176,209, 19,176,211, 3,232, 62,190,250, 60,114, 85,235,153,154, 62,243,253,160, 17,189, 61,190,156, 63,205, + 48,102,204, 24,190,185,185, 57,156,157,157, 97, 97, 97,129,164,164, 36,164,167,167,147,139, 23, 47, 42, 31,191,136,103,157,187, +254,252, 61, 87,104, 95,159,188,132, 10,255,254,159,188, 27, 52,104,144,197,148, 41, 83,204,218,182,109,203,226,112, 56,224,112, + 56,200,201,201, 65, 98, 98,162,246,226,197,139,202, 98,219,129, 69,146, 59, 39, 21,245,204,117, 88,226, 63, 46, 56,241,254,141, +160, 69, 49,175, 94, 77, 50, 2,173,180, 90,173,163,193, 96,160,209,233,244, 44,163,209,248, 74,171, 80, 28, 82,251, 5,237,160, +114, 29,214, 15, 6,131,193,196, 96, 48, 64, 42,149,226,198,141, 27,204,183,111,223,174,126,249,242,229,234,204,204, 76,232,116, + 58,140, 26, 53, 10,126,126,126,184,115,231, 14,242,114,114, 46,214,198,245, 6,144,113,210,211,167,206,156, 57,243, 74, 72, 72, + 8,253,229,203,151,214,135, 15, 31, 62, 88,157,128,153, 52,105,146, 49, 39, 53,117,170, 26,144,213,210, 63,107, 27,155,249, 87, + 79,238,121, 57,124,228,232,230, 65,107, 87,179, 58,119,238, 12,107,107,107,116,235,214, 13, 90,173, 86,212,172, 89,179,186,198, +166,194,127,192,216,164, 86,173, 90,241,119,236,216, 33,158, 54,109, 26,230,207,159, 15, 0, 40, 41, 41,193,245,235,215,177,104, +209,162,236, 84,102, 7, 85, 93,253,179,220, 82, 85, 33,192,238, 1,240, 7,144, 4,202,241,157, 2, 5, 10,255, 76, 84, 36,149, +182, 71, 89, 98,233, 75, 40,123, 57,175, 59,215,225,253,167,209,168,154,230,163, 12,246,177,122,151, 41,111,103, 47,217,228,195, +208,201, 45, 88,180, 82,243,132,248,120, 90, 93, 57, 15, 43,243,169, 9, 61,149, 86,201, 39,218,111, 92,191,126,225,206,157, 59, +123, 87,132,112,224,241,120,175, 74, 84,170, 91, 54,106,245,174, 98,161,231,173,134,230,230, 75, 7,114, 0,204,177,144, 72,118, + 7, 12, 27,181,133,107,233,198, 90,185,225, 64, 41,131, 78,215, 36,102,230, 97,167, 7,192,175,199, 2,201, 98, 13, 16, 35,181, +215,231, 88,141,126,179,230,171,175,190, 92,191,110, 93,123,129, 64,208, 93,171,215,123, 26,141, 70,192,104, 76, 40, 86,169,238, + 17,173,246,153,218,111,237, 54,174,208,158,212, 59, 47,161,168,153,194,242,221,153,246, 71, 14, 29, 90,112,250,244,233,223,181, +221, 74,173,222, 93, 44,106,118,179, 62,109,175, 90,166, 20,120,132,220,220, 71,181,153, 46,169, 92,135,245,124,251, 48, 26,103, + 89, 88, 88, 28,237,221,187, 55,183, 79,159, 62, 24, 60,120, 48, 58,119,238, 12,163,209, 8, 66, 8, 20, 10, 5, 78,157, 58,133, + 45, 91,182, 36, 52, 6,214,213,197,167, 6,110,113, 46, 95, 30,216,170, 85,171,195,181, 9,152,114,145, 85,167, 79, 98,237, 99, +147,147,160, 23, 14, 77, 25, 55,111,163,135, 70,158, 37,178,226,233,197, 49,209,175,232,245, 31,155, 94, 10, 67,228,169, 14,163, + 70,140,152,199, 96, 50,187,149,175,128, 36,175, 99, 99, 37, 21, 73,165,225, 55,245, 70, 3,251, 82, 69,236, 58,202,241,157, 2, + 5, 10,255,116,161, 53, 24,101,254, 90,149, 41,121,106,204,117, 88, 97,245, 97, 50,153,185, 73,231,102, 79,168,141,157, 5,244, + 46,183,100,161,206, 92,135,229,127,167, 0, 10,168,213, 95,255, 38, 24,105,149,213,133,172, 15,202, 55, 36, 44, 98, 17,240, 6, +122,117, 0,114, 99,129, 11,115,202,248,218,175, 95, 86,181, 77, 53, 62,100,127,115, 92,147,194, 82,224, 62,148,202,251, 80, 42, +171,117,218,101, 49, 77, 10,235,170,231,135,109, 79, 5,228,127,180,237, 31,114,214, 41, 30,254,192,249,252,183, 33, 35, 63,255, + 28, 0,129, 83, 88,152,221,213,176,176, 49, 95, 46, 94, 60,202,222,193,193,221,218,218,218,194,204,204,140,254,228,201,147,100, +125,105,233,238,214,192,145,114,107,106,157, 80, 3,183,188, 82, 83, 91,124, 50, 98,196, 60, 26,147,217,181,170,128, 33,122,253, + 67, 55, 96,111,109,150,172,143, 29,155,206, 28,251,222,229,150, 44, 48,128,153,245,233, 27,233,101,245,216, 0,189,126, 3,162, +162,170,233,243, 13,238, 75,235,105, 52,154, 2,148,227, 59, 5, 10, 20,254,185,168,200,119,120,233,127,125,224, 62, 20, 39,197, +249, 15,226,100,160,108, 21, 29,117, 62, 41, 78,138,147,226,164, 56, 41,212, 11, 76,234, 20, 80,160, 80,111, 24,240,235, 52, 24, + 5, 10, 20, 40, 80,160, 80,129, 10,223,172,170,216, 15,148,185,238,212,164, 74, 27,178,154,224, 99,148,237, 77,138,147,226,164, + 56, 41, 78,138,147,226,164, 56,255,117,156,117,113,255, 29, 87, 51, 86,248,100, 85,250,102,253,175, 64,153, 85, 41, 78,138,147, +226,164, 56, 41, 78,138,147,226,252,167,195,190, 92,100, 85,221, 0, 52, 48, 96, 41, 5, 10, 20, 40,252, 83, 17, 20, 4, 58, 33, +160, 17, 18, 68, 39,228, 52,131,144,209, 12, 66,240,135, 82,129,140, 30, 93,125, 48,219,207, 39, 88,152, 81,103,156, 2,133,127, + 20,178, 80, 67, 82,105,202, 71,235,255, 23, 46, 98,177,120, 31, 0, 90,118,118,246, 44, 0,169,212, 41,249,235,193,210,210,178, +183, 94,175,135, 92, 46,191,245, 79,108, 95,115,119,140, 32,116, 52,171,252,130, 32,245,117, 34,142, 86, 87,182,153, 7, 38,131, +246,107, 44, 46,154, 17,175, 99,223,226,151, 6, 28,142, 62,176,143,243, 94, 0,184,114, 51,109, 30,254, 59,113,181,154,218,216, +216, 92, 99, 50,153, 76,131,193, 48, 39, 55, 55, 55,172,102, 33, 52,154, 1, 0, 44,114,103,133, 52,219,118,249, 23,159,209, 88, +197,234, 67, 82,117,137, 74,198, 96, 49,222,113, 88,226, 7,179,167,209,175, 20, 41, 59,197, 86,183,255,153, 51,103,106,204,226, +221,194, 3, 3,233,134,230, 67,252, 90, 38, 39,125,187,171,253,206,238,110,214,172,228,180, 23,130,205, 63,202,246,177, 69,174, + 67, 38,143,161,133, 49,121,180, 73,135, 14, 21, 40,169, 81, 86,127,108, 4, 44,181,128, 15,139,195,113, 54,232,245,118, 52,128, + 48,152,204, 28,157, 90,157,102, 2, 68,173, 0,164,255,116, 78, 19, 14,199,201,160,215,219, 1,192, 95,177,158, 20,126,139, 26, +133,150, 64, 32,136,160,211,233, 78, 85,147,225, 86,228, 19,172,248,174,234,111, 52, 26, 13, 6,131, 33,189,168,168,168,109, 3, +142,111, 14, 96, 12,128,138, 37,234,199, 1,156,194,199, 59, 28,155,155,152,152, 44,225,243,249,189, 74, 74, 74, 90, 0,128,169, +169,105,140, 74,165,186,173,213,106,191,253, 72, 94, 38,128, 79, 4, 2, 65, 79, 58,157,222,147, 16, 66, 35,132,220, 81, 42,149, +183, 1,156, 6,240, 49,145, 18, 76,109,109,109, 55, 88, 90, 90,142, 95,177, 98, 69,129,149,149,149,215,162, 69,139,158, 23, 22, + 22,254,156,159,159,191, 10, 13,200, 81,247, 95,134,187, 88, 44, 62,206, 98,177, 24,105,105,105, 61, 1,192,217,217,249,142, 70, +163, 49,228,230,230, 78, 0,240,182,129,124,124, 0, 29, 5, 2, 65, 91,129, 64,224,111, 48, 24,154,149,231,103,124,173, 84, 42, +195,181, 90,109, 4,128, 39, 0, 84,127,161, 49, 98,198,100, 50, 67,202,251,186, 39, 0,197, 63,237, 38, 64,232,104, 22, 27, 19, +231, 85, 41,188, 90,120,215, 92,152, 6,151,106,202,214, 91,104,245,234,110, 63,100,232,208,190,116, 0,208,232,174, 12,185,125, + 47,235,252,159,220,156,166, 35, 71,142,124, 20, 18, 18, 98,161, 86,171, 49,107,214,172,227, 55,111,222,220, 43,151,203, 87,212, +122,227, 16, 88, 44,218,186,227, 58,143, 70,163, 3,128,173,209,104,176,205,200,120,235, 25, 27,253,104, 64, 76,204,227,141, 37, +113,183,159, 24,105,172,217, 90,116,139,171, 79, 37,154,185, 33, 96,200,168, 17,131,215,173, 11,194,248,177,227, 27,197,196,148, +154, 58,154, 39,177, 11, 75,248, 30, 86, 54,182, 67,215,173, 63, 67,123,112,255,220,208,144,195,193,183,167, 77,179,234, 69,137, +173,122,129,182,158,201,236, 40,244,240,240, 31,123,238, 28, 4,206,206, 76, 38,135, 67, 7, 0,189, 90,237,172, 76, 75,179, 63, + 57,116,104,135,160,248,248,187, 65,192, 83,138,243,255,133,147, 66, 67,132, 22,157, 78,119,202,200,200,176,229,243,249,101, 55, + 99, 66, 96, 48, 24, 96, 48, 24, 42,147, 23, 19, 66, 42, 63,245,122, 61,188,189,189,235,245, 70, 11,160, 23,128, 79,123,244,232, + 49,250,219,111,191,101,249,248,248, 84,164, 12,233,182,114,229,202,239, 34, 35, 35,207, 2, 56,130,178,224,141,245,125,227,237, +207,231,243,143,109,221,186,213,188,111,223,190, 76, 7, 7, 7,208,104, 52,100,103,103,119,188,121,243,102,219, 69,139, 22,205, + 81,169, 84, 19, 1, 92,107,192,249,105,105,102,102,118,102,196,136, 17, 78,221,187,119,231, 54,111,222, 28, 6,131, 1, 47, 94, +188,152, 22, 17, 17, 49,238,236,217,179,129, 10,133, 98, 52,234,159,175,141, 38, 16, 8,166,152,155,155,111, 88,187,118,173,229, +196,137, 19,217,209,209,209, 69,110,110,110,180, 7, 15, 30,216,156, 58,117,106,206,166, 77,155, 62,145,203,229,171,148, 74,229, + 79,168, 71, 14, 69, 51, 51,179, 8, 58,157,238, 84, 31, 33, 12,160, 33, 98,184,117,227,198,141, 79,221,191,127,191,113, 74, 74, +138, 97,248,240,225, 71, 1,224,246,237,219, 62, 58,157,142,214,175, 95,191, 43,233,233,233, 99, 0,188,168,103,219,125, 45, 45, + 45,207,143, 31, 63,222,210,221,221,157,215,184,113, 99, 26,159,207, 7,131,193,128, 76, 38,115,136,142,142,238,243,244,233,211, +146,155, 55,111, 22,170,213,234,161, 0,162, 26,112,157, 58,219,218,218, 78, 98,177, 88, 45,245,122,189, 35, 0, 48,153,204, 12, +157, 78, 23,157,155,155, 27, 2,224,209,199, 14, 16, 59, 59,187, 61, 27, 54,108,176,206,205,205, 37,155, 54,109,218,163, 80, 40, +166,252, 83,111, 6,199,127, 62,141,136,231, 79,129,178,180, 57,180,106,250, 31, 13,128,201, 23, 95, 44, 70,219,118, 29, 48, 97, +252, 39,117,114, 14,234,237,180,149,197, 54,177, 42, 45, 45,125, 36, 43, 86,159,230,243,184, 99,198,143, 11, 72, 0,128, 43, 87, +239,142,105,223,222,226,142,144,199,249,132,203,229,118,214,105,180, 5,151,111,165,127,213, 16, 81,229,232,232,120,205,194,194, +130, 87, 88, 88,152,157,151,151,247,195,144, 33, 67,214, 31, 57,114,196, 34, 57, 57, 25,105,105,105, 88,184,112,161, 32, 61, 61, +125, 94, 84, 84,212, 99,141, 70, 83,163,101, 75,161, 40,220,181,114,249,176,181, 66,161, 53,131,207, 51,135,153,208, 18,110,238, +173,208,177,243, 16, 12, 28, 60, 29,137, 9,145, 29,143, 28, 94, 23,153,145,113,243, 27,129,101,147,245, 82,105,227, 26,239, 75, +205,155,162,251,208, 17,101, 34,107,237,218, 32,196,199,197, 41, 82,222,209, 63,191,116,142,201, 27,216,219,155,163,215,100,167, + 60,184,127,174,113,215,110,195, 1,160,109,200,225,224,219,159, 79,176,232,189,231,120,145,130,122, 36,213,124,239, 92,199, 98, + 77,233,191, 99,135,173,223,156, 57, 38,202,119,239,180, 73, 63,254, 88,156, 19, 30,110, 96,114, 56,196,121,192, 0,154, 77,207, +158,220, 57,175, 95,155, 60,220,180,201,159, 21, 28,236,182, 74,171, 61, 70,113,254, 79, 57,255,237,168,112,130,175,186,250,112, +127,173, 66,139, 70,163,129,207,231,227,228,201,147, 96,177, 88, 96, 50,153, 96,177, 88, 53,254,237,226,226, 82,159,138,140, 20, +139,197,223,237,221,187,215,174,127,255,254,224,114,185,149, 63, 48, 24, 12,244,237,219, 23,125,250,244, 97,101,102,102,142, 59, +121,242,228,184,141, 27, 55,230, 72,165,210,249, 40, 79, 12, 93, 11,122,122,121,121,133, 94,191,126,221,180,180,180, 20,225,225, +225, 40, 42, 42, 2,155,205,134,147,147, 19,250,245,235,199,140,139,139,179,236,219,183,111,104,124,124,124, 0,128, 59,245,168, +107, 91, 91, 91,219,123,167, 79,159,230,182,106,213,138,150,152,152, 8, 63, 63, 63, 0,128, 76, 38,195,240,225,195,185, 19, 39, + 78,116, 31, 55,110,220,147,220,220,220,238, 0, 34,234,224,107, 35, 22,139,127, 26, 49, 98,132,195,198,141, 27,205,205,204,204, +144,146,146,146, 37, 22,139, 61, 43,206,247,184,113,227,216, 67,134, 12,177,223,178,101,203,174, 51,103,206,124,149,155,155, 59, + 5,128,164, 86,213, 90, 46,136,121, 60, 30,114,114,114,112,252,248,113,204,155, 55, 15, 12, 6, 3,185,185,185, 56,117,234, 20, + 62,255,252,243, 10, 65, 83, 47, 49,204,227,241,250,120,120,120, 28,188,125,251,182,147, 72, 36,130,131,131, 3,125,205,154, 53, + 45,221,220,220, 76, 27, 53,106,196,200,202,202, 66,104,104,168,219,164, 73,147,206,167,166,166, 78, 83,171,213,117, 78,169,217, +217,217, 29,186,116,233,146, 75, 76, 76, 12,126,252,241, 71, 20, 22, 22,130,205,102, 67, 36, 18, 65, 44, 22,195,211,211,147,182, +124,249,114,222,144, 33, 67,120,243,231,207, 63,164,209,104, 90,215,227, 26,181,178,181,181,221,215,179,103, 79,183,224,224, 96, +145, 88, 44, 70,197,139,129, 76, 38,115, 74, 73, 73,233,184,118,237,218,209, 17, 17, 17,201,185,185,185,179, 1,188,108,224,192, +105,221,188,121,243,128,225,195,135, 51,178,178,178, 16, 18, 18, 18,160, 80, 40, 90, 55, 64, 92,254,173, 16,241,252, 41,102,205, + 93,168,116,112,118, 54,185,126,237,224,200, 51,191, 52,125, 46, 50, 45, 75, 72, 45, 45,129,118,244,136,248,118,253,250, 79, 55, + 25, 52,120,184,114,255,247,187, 4,245, 17, 90, 44,182,137,213,241, 99,219, 83,239, 63,136,104,121,227,230,211, 1, 35,135, 14, + 37, 38, 38, 34, 55, 0,248,106,209, 23,172,208, 11, 23, 14,247,237,211, 33,179, 91,215,182,169, 19, 38, 46,118,105, 64,117,155, + 54,109,218,244,110,100,100,164, 29,135,195, 65, 97, 97,161,213,254,253,251,183,119,237,218,149,158,148,148,132,184,184, 56,188, +123,247, 14, 50,153, 12,125,251,246, 21, 72, 36,146, 31, 0,212, 40,180,180,244, 94, 27, 28, 26,233,118, 91,153,242, 27,107, 13, +114, 91,162,203,106,126,227,210, 13,223, 19, 33, 37,126,118,246,222,158,159, 78, 13,196,186,245,103, 89, 63, 31,223,188,246,214, +205, 19, 0,189,113,205, 25, 1, 8, 58,175, 92,181, 2,114,133, 26, 19,199,207,196,164,241, 51,173, 8, 52,246,196, 80,202,215, +148, 20,137,204, 76, 94,135,237, 61,176,125, 4, 0,167, 42, 98,235, 22, 37,182,106,198, 58, 38,179, 67,192,119,223,217,180,156, + 49,131,243, 50, 56, 88,149, 31, 30, 94,226, 49,104, 80,145,223,103,159,169, 1, 64,241,238,157, 73,124, 96, 32,207,198,223,223, +180,211,146, 37, 22, 6,141, 70,188,110,221,186,246,107,203,146,151, 55,136,211,101,204, 24,195,218,195,135,219,133, 47, 94,220, +131,166,211, 49, 6,116,234,244, 98, 83, 72, 72,198, 31,225,252, 51,235,153,121,239,158,186,208,205, 13,126,195,135, 23,184,216, +218,170,255,204,182,255,145,122, 82,168, 68,133,175,214,172,170,111,168, 8, 11, 11,235, 14,224, 46,128,224,128,128,128, 32, 0, + 16, 10,133, 57, 82,169,212, 54, 52, 52,180, 78,145,197, 98,177, 96,111,111, 15, 79, 79,207,220,220,220, 92,187, 90, 42,144,102, + 52, 26,157, 8, 33,149,214,151,154,160, 86,171,145,144,144, 0, 95, 95,223,116,148, 37,162,173,209,168,195,227,241,146,226,226, +226,172, 99, 99, 99, 17, 17, 17, 1, 55, 55, 55, 88, 88, 88,128,197, 98, 65,167,211, 65, 46,151,195,203,203, 11, 28, 14, 7,109, +218,180,201, 87,169, 84,110,117, 76, 1,113,248,124,126,194,189,123,247,156,253,252,252,240,236,217, 51, 56, 59, 59, 67, 44, 22, + 3, 0,222,189,123,135, 7, 15, 30, 96,208,160, 65,136,140,140,196,168, 81,163,210, 84, 42,149, 39, 0,117, 77,132,150,150,150, + 89,183,111,223, 78,247,241,241, 41, 85,169, 84,244,156,156, 28, 86,120,120,184, 94,161, 80, 8,100, 50, 25, 75, 42,149,178,228, +114, 57, 83,165, 82,177,232,116,186, 73, 73, 73, 9,235,214,173, 91, 12,173, 86, 91,107,128,204,138,235,116,225,194, 5,248,248, +248, 32, 52, 52, 20, 95,126,249, 37, 30, 62,124, 8,103,103,103,156, 62,125, 26, 75,150, 44,193,155, 55,111, 96,109,109,141,230, +205,155,215,117,141,224,238,238,158,248,234,213, 43,119, 19, 19,147,138,188,142, 21,249,242,144,151,151,135,183,111,223, 34, 35, + 35, 3, 30, 30, 30, 24, 63,126,252,219,140,140, 12,143,186,122,158,163,163, 99, 94, 76, 76,140,181,175,175, 47,114,114,114, 32, + 18,137, 32, 20, 10, 33, 18,137, 42,255,118,115,115,195,226,197,139, 33, 22,139,115, 75, 75, 75,237,234, 18, 65, 62, 62, 62,215, +110,221,186,101,109,110,110,142,236,236,108,200,229,114, 48,153, 76,240,120, 60, 88, 91, 91, 87, 10,249,132,132, 4, 12, 30, 60, + 56, 63, 41, 41,169,127, 3, 68, 18,221,206,206, 46, 46, 42, 42,202,147, 16,130,212,212, 84,188,121,243, 6,115,231,206, 77, 40, + 45, 45,245,198, 63, 40,103, 95, 21,191, 43,147, 41, 83,103,153,140, 24,214, 89,243, 58, 38,140,198, 49,190, 65,235,150,230, 50, + 0,120, 17, 45, 23,170,233, 94,104,214, 34,128,252,114,254, 17,251,167, 35,251, 89, 48,194, 14, 52,188,121,157,240,127,236, 93, +119, 88, 20, 87,251, 61,179,189,209, 97,151, 38, 88, 8, 29,172, 88,162, 98,197, 10, 70, 99, 75, 49,209,196,110, 76,172, 49, 26, +141, 26, 83, 52,150,196, 18,141, 45,137, 5,163,198, 46, 86, 84,236, 37,138,149,174, 72,147, 93,216,165,237,194,246,157,157,249, +253, 33,240, 33, 1,118,177,124,191,152,111,207,243,236,179, 51,179,119,206,222, 59,247,206,220, 51,239,125,239,123,241, 77,125, +220,125,123,240,143,182,248, 0, 0, 32, 0, 73, 68, 65, 84,122,142,155, 62,253,227,240, 30, 93,187, 51,202,213,106,201, 47,191, +252,212, 46, 51, 51, 69, 2, 0,126,126, 33,242,201,147,103, 36,218,139, 68,242,243,151, 47, 80,171, 87,255,246,224,116,130,108, +171, 21, 89,246, 11, 8, 8,184,118,228,200, 17, 55,137, 68, 2, 71, 71, 71,168,213,106, 24,141, 70, 36, 39, 39,235,246,236,217, + 99,114,112,112,176, 47, 40, 40, 64, 89, 89, 25, 8,130,192,145, 35, 71,114, 1, 52,173, 77, 84,229,163, 5, 0, 83, 6,132,176, + 67,123, 5, 56,115,120,164, 64,192, 78,247, 4, 97,230, 17,180,157,251,137, 83,119, 90,157,136,255,235,253,183,135,206, 18, 71, +118,127, 27, 11, 23, 12, 55, 73,165,185,109,141,136, 76,173,203, 71, 43,216, 31,189,134, 12,123,123,196,146, 37,139,177,120,225, +215,136, 59,114, 72,105, 39, 98,232, 29,156,216,142,221, 58,117,209,205,252,100,112, 94, 69,133,212,103,201,242, 61,239, 69, 15, +158,217,164,107,228, 16, 92,190,116, 8, 59,127,255,250, 22, 33,160,109,195,136,181,176, 24,112,118,242,243,155,248, 89, 70, 6, +231,238,226,197, 21,164, 84, 90, 26, 49, 99, 70, 81, 93,105,159,196,199,139,184, 94, 94, 14,206,111,189,229,178,166,105, 83,218, + 36,151,111,170,203,199,168, 46,206, 51,118,118, 78,187, 79,156,232, 77,179,217,221,231,124,241,133, 32, 38, 38, 6, 42,149, 10, +251,247,239,199,166,141, 27,245,158,158,158,247,189, 30, 60,184, 29,174, 82, 45,176,150, 51, 98,198,140, 34,179,217, 76,140,152, + 61,187, 79, 82, 86, 86,175, 2,185,188, 25, 0,120,186,184,228, 69,248,249,221,250, 45, 46, 46,109, 93,243,230,148,181,249,220, +114,242,164,251,190,236,236,113, 46, 46, 46,130, 66,185,156,197,227,114,139, 59,133,134,254,185, 97,254,252,243,228,189,123, 28, +126,147, 38, 14,142, 49, 49,141, 46,123,196,140, 25, 69, 37,229,229,172,207,190,253,182, 75, 78, 97, 97,179, 10,189,222,191,172, +188,220,195,108, 50, 49, 28,132,194,226, 22, 65, 65,114,237,197,139,178, 22, 26,205,180,173,128,252, 85,213,117, 93, 90,228, 53, + 66,237, 56, 90,127, 91,235,240,124, 76, 76,204,223,102,215,208, 52,109,149, 53,139,205,102, 63, 51, 76,213, 0, 56, 4, 65, 32, + 49, 49, 17,174,174,174,240,240,240, 0,143,247,236,226,131, 10,133, 2, 87,174, 92, 65, 74, 74, 10, 90,183,110, 93, 53,140, 81, +191, 34,226,241,166, 47, 95,190,220,201, 96, 48,224,214,173, 91,136,136,136, 0,143,199, 3,135,195,121, 70, 4,202,229,114,132, +133,133, 97,206,156, 57,142,223,127,255,253,116,189, 94, 95,239, 27, 41,139,197,154, 58,126,252,120, 73,149, 5, 43, 47, 47, 15, +237,218,181,171,254, 93, 44, 22,227,206,157, 59,136,136,136, 64,147, 38, 77, 48,124,248,112,201,206,157, 59,167,146, 36,185,178, + 62, 78, 46,151,203,104,217,178,101,123, 0, 16,137, 68, 96, 48, 24,233, 14, 14, 14, 98,119,119,119,145,131,131,195,223,202,248, +251,239,191,151, 49, 24, 12,147, 69, 53,192, 96,160,160,160, 0,225,225,225, 80, 42,159,174,224,162, 86,171,225,239,239, 15,149, + 74, 85, 45, 90,189,188,188,160,213, 54,236,250,213,170, 85,171,197,193,193,193,125, 69, 34, 17,143,205,102,227,238,221,187,104, +219,182, 45,246,236,217, 3, 95, 95, 95, 8,133, 66,100,100,100,160,101,203,150,184,112,225, 2,196, 98, 49,194,194,194,120, 18, +137,228, 82, 73, 73, 73, 66, 78, 78,206,226, 6,242,201,176,179,179,195,133, 11, 23,240,219,111,191, 33, 43, 43, 11, 82,169, 20, +246,246,246,104,211,166, 13, 66, 67, 67,209,185,115,103,100,100,100,128,176,220,152, 60, 2, 2, 2,226,254,250,235, 47, 55,154, +166,177,115,231, 78, 84, 84, 84,192, 96, 48,128,193, 96,128,207,231,195,217,217, 25,189,122,245,130, 88, 44, 70, 64, 64, 0,246, +238,221,235, 54, 96,192,128,227,114,185,188, 13,128, 2, 75,215,213,217,217,121,218,162, 69,139,124, 36, 18, 9,178,179,179,161, + 84, 42,225,238,238,142, 30, 61,122,120,159, 57,115,102,154,201,100,250,233,223,210,145,213,112,124, 39, 78,159,250,117,104, 64, +139,210,150,173,131,132, 62, 7,226,220,125,246,196,201,195, 0, 32, 60,196, 61,105,104,140, 48,239,110, 82, 92,222,233, 83,135, +110,165,164,227, 0,172, 24,218, 86,106,244,127,198,159,185,209,191,109,235,118,212,242, 31,102, 71,127, 50,101, 28, 79,226, 62, + 22,133,185,135,112,230, 92,162,239,236, 89,227,197, 43, 87,109, 57, 17,127,230, 6, 67,169,209, 47,176,206,148,229,187,110,219, +134,206,110,229, 69,251,240, 48,149, 11,129,125, 56,252,252, 2,161, 82,169,192,231,243,249,239,189,247,158,121,222,188,121, 26, + 7, 7, 7, 33, 65, 16, 72, 72, 72,144, 3,232,103,137, 87, 39,113,166,205, 70, 19, 73,115,153, 20, 77,216,107, 9,115, 9,247, + 65,242, 99,244,141,234, 89,216,181, 99,248,247,243,150,172,250, 50, 32,176,173,248,227,113, 95,179,191, 93,252,254, 70, 16,136, +172,139, 39,245, 33,206, 17,127, 30, 20, 0,136, 94,242,205, 98,100,102,102, 56, 79, 24, 83,246, 53,139, 39,240, 10,110,218,197, +126,227,111, 9,253,253,253,155, 55,155, 57,117,248,177, 31,127,254, 49,186,166,101,107,219,239,139, 14, 3,232,109,205,181,253, + 31, 66,171, 15,226,226, 80,145,155,107, 42,185,116, 73,215,251,231,159,139,124,250,245,251,201, 96, 52,186, 85, 61, 42, 24, 4, + 1,162,202,117,130,162, 8,214,156, 57, 12,154,197,130,201,217,121, 12, 74, 75, 3, 45,113,206,146,201,134,190, 63,110, 92,244, +225,147, 39,209,188,121,243,234,254,204,201,201, 9,179,103,207,198,140, 25, 51,120,119,238,220,233,176,111,223,190, 14, 43, 87, +172,112, 7, 48,212,154,124,158,190,126,221,121,210,146, 37,243, 91, 71, 68,248,238,216,181,139,247,198, 27,111, 0, 0, 30, 61, +122, 20,240,195,178,101, 77,195, 91,182, 44,252,126,250,244,109, 73,243,230,133, 1,184,212, 16,103,193,197,139,134,125,217,217, +227,206, 37, 36, 56,133,135,135, 3, 0,210,210,210, 36,107,214,172, 25, 31, 54,124,248,168, 37,147, 39, 47,136,209,233,202, 28, + 20, 10, 94,204,186,117,172,221, 35, 70, 88,228,172,202, 39, 0,244,248,248,227,233,145, 61,123,134, 14, 29, 55,206,197,215,215, +151,176,179,179,131,209,104,132, 84, 42,117, 78, 74, 74,122, 35,174,188, 92,117,240,250,245,157, 48,155,251,188,194,186,174, 83, +139,188,102,150,172,191,107,138,202,239, 30,113,113,113, 52,128, 30, 49, 49, 49, 23,170, 58,112,179,217,108,149,200, 98,177, 88, + 32, 8,194, 90,177, 5,154,166, 81, 84, 84,132,162,162,162,234,161, 35,185, 92,142,115,231,206, 33, 35, 35, 3,108, 54, 27, 28, + 14, 7, 70,163,229, 53,104, 69, 34, 81, 84, 84, 84, 20,235,250,245,235,240,243,243,131, 64, 32,168,206, 87,213,135,195,225,192, +211,211, 19, 42,149, 10,189,123,247,102,175, 93,187, 54,170, 33,161,229,232,232, 56,112,228,200,145,220,170,253,138,138, 10, 48, +153,204,106,209, 82, 81, 81,129,146,146, 18,148,149,149, 65,167,211,225,205, 55,223,228,198,197,197, 13, 44, 46, 46, 94,105, 77, +249, 53, 26, 77,133, 92, 46,119,138,140,140,116,222,182,109, 91,218,155,111,190, 25,244, 76, 75, 59,127, 94,167,211,233,216, 12, + 6,195,170,117,244, 98, 99, 99,171,175,125,126,126, 62, 54,110,220, 88,253, 91, 70, 70, 6,214,174, 93, 11,154,166, 65,211,116, +131,117, 20, 28, 28, 60, 96,231,206,157, 17, 59,118,236, 40,101, 50,153, 72, 75, 75,195,174, 93,187, 64,211, 52,196, 98, 49, 52, + 26, 13, 10, 11, 11,145,144,144, 0,146, 36, 97,103,103, 7,111,111,111,254,212,169, 83,187,126,253,245,215,236,134,132,150,217, +108, 54, 51,153, 76, 52,109,218, 20, 11, 23, 46,132, 78,167, 3,135,243, 84, 95,170, 84, 42,148,149,149,225,246,237,219,200,206, +206, 6, 77,211, 13,118, 50,124, 62,127,248,142, 29, 59, 36, 92, 46, 23, 90,173, 22,229,229,229,200,203,203, 67, 78, 78,142, 78, + 46,151,147,246,246,246,140,166, 77,155, 50,120, 60, 30,111,200,144, 33, 68,149,224,140,137,137,113,221,185,115,231, 59, 6,131, +193,146, 72, 18,123,120,120,124, 57,126,252,120,126,205, 54, 91, 80, 80,128,161, 67,135, 10,175, 94,189, 58, 79,165, 82,237, 2, +160,248,151,117,104,244,190,131,129, 55,111,157, 73,107,121, 32,206,221, 39,231,137,185,203,236,207, 87,177, 0, 96,243,166,165, + 93, 14,196,229, 95, 9,110, 94,152,183,239, 96,224, 77,103,231, 20, 75, 66,128,209,171,187,231, 32,145,144, 63,114,232, 91,111, +209,191,252,242, 83,187, 79,166,140,227, 53, 13,156,253,212,194,201,150,160, 55,249, 13,161,209, 62,226,255,242,203, 79,237,134, +190, 53,236,118, 86, 86,246,166, 94,221,121,123,207, 93,144, 29,109,200, 98, 40,113,229,123, 11,121,106,120,251,133, 34, 40, 68, +132, 59,119,211,176,255,207,107, 8, 9,235, 4,189, 94, 15,146, 36, 69,131, 6, 13,210,236,217,179, 71,151,158,158, 94,174,213, +106,187, 3, 72,183, 84,248, 39, 79,146,169, 32,143, 78, 70,142,128, 71,150, 43, 57,154,185, 11,246,141,104,215,177,111,132,179, +167, 55, 91, 44,162,142, 14,232,211, 97,215,111, 91, 23,206, 88,176,104, 23,218,119,232,251,102, 74,218,165, 80, 0,247,235, 20, +175,153,136, 99,236, 63, 72,102, 62,124, 24,157,147,157,253, 36,208,221,195,240,168,140, 54, 77,155,187,165, 79,100,247,225,173, +222, 8,233,198, 77, 73,190, 64, 44,156,243,206, 31, 75,150,255,248, 94,149,216, 58, 27,255, 71,247, 49, 99,174,113,183,109,171, +223, 58,254,191, 6, 14,143,215,196,174,105, 83, 86,214,182,109, 90,191, 65,131, 74, 1,192, 96, 52,186,101,101,103, 59, 10,133, + 66,208, 52, 13,147,201,244,140, 15,113,149,223,112,120, 80,144,187, 53,156, 89, 95,125,213,106,206,156, 57, 40, 40, 40, 0, 73, +146, 96,179,217,181,159,217, 80,171,213, 24, 51,102, 12,214,173, 88,209,201, 26, 78,179,217, 76, 76, 90,178,100,254, 23,243,231, +191, 49,113,226, 68, 70,205,103,175,139,139, 11,246,237,223,207, 93,191,126,125,147, 47,215,173, 27,243, 62,143,151, 9,189,190, + 65,206, 34,127,127,184, 20, 22, 10,170, 68, 22, 0, 4, 5, 5, 97,227,198,141,188,177, 99,199,114, 7, 13, 26,180,234, 78,235, +214,107,126,234,218,245,161,107, 96,160, 3,151,199,107, 98,137,179,234,122, 2, 64,185, 78, 23,254,211,154, 53,206, 55,110,220, + 64, 97, 97, 33, 10, 10,158,190,143, 18, 4,129,246,237,219, 19, 31,124,240,129, 99, 11, 31,159, 14, 48,155, 95,101,117,255, 77, +139,188, 70,152, 80,199,177,255,248,104, 85, 22,136,168, 44, 32, 81,163,115,124, 70,176, 88, 18, 90,207,131,178,178, 50,148,149, +149, 97,235,214,173,224,112, 56,213,157, 47, 0, 24, 12, 6,107, 68, 75, 75, 47, 47, 47, 40,149, 74, 4, 6, 6, 62, 99,201,226, +112, 56, 96,177, 88,224,112, 56,224,241,120,208,235,245,240,245,245,133, 70,163,105,217, 16,167, 86,171,109,227,226,226, 82,221, +193,234, 43, 27,171, 94,175,175,206,175,193, 96, 64,105,105, 41, 42, 42, 42, 80, 94, 94, 14,181, 90,221,214,154,242, 82, 20,133, + 7, 15, 30, 60, 10, 10, 10,106,195,100, 50, 97,103,103, 39, 82,171,213,213,190, 69, 37, 37, 37,216,190,125,187,250,195, 15, 63, +116, 59,114,228,136, 69,161, 69, 16, 4, 62,253,244, 83,240,120, 60,104, 52, 26,252,242,203, 47,248,236,179,207,192,225,112, 80, + 94, 94,142,141, 27, 55, 98,230,204,153, 96,177, 88, 48, 24, 12, 88,179,102, 77,189, 92,201,201,201, 89,215,175, 95,111,219,174, + 93, 59,231,131, 7, 15, 42,250,244,233, 35,238,215,175, 31, 4, 2, 1,180, 90, 45, 76, 38, 19, 58,117,234,132,224,224, 96,200, +229,114,156, 56,113,162, 40, 32, 32,192,237,198,141, 27, 84, 65, 65, 65,142, 5,113, 77,215,176, 24,194,108, 54,163,176,176, 16, +101,101,101, 80, 40, 20,144, 74,165,120,242,228, 9, 88, 44, 22, 44,232, 44,184,186,186, 14, 11, 15, 15,103, 2,128, 64, 32, 64, +155, 54,109, 48,127,254,124, 82,171,213,142, 4,112,162, 50,217,128, 45, 91,182, 28,188,124,249, 50,203,203,203, 11,169,169,169, + 16,139,197, 44, 62,159,111, 81,104,121,120,120,252,126,244,232, 81,151, 42,113, 93,117,157, 53,154,167,213, 49,116,232, 80,151, + 29, 59,118,252, 78,146,228,192,127, 91,167,230, 36, 0,167, 77,184,131,114, 79,156, 60,108,246,231,171, 88,193,225, 79, 95, 94, + 39, 76, 4,107,229,138, 89, 97,163, 6, 59, 28,115, 18,168, 56,150,120, 6, 68,249,172,127,235,173, 62,140,247,222,141,201,224, +112,156,252, 54,109,254, 90, 34,113, 31, 91, 67,134, 57,192,213,205, 1,126, 77,185,196,190, 99, 41,146,185,243,190,209,199,238, +248, 49,243,143,221,113,253,185,236,248,190, 39,206,228, 77,174,143, 59,253, 81,217, 17,141,158, 31,162, 42,190, 71,184,184,119, + 65,155,214, 65,144,136, 75,177,229,247, 61,104,222,162, 61,244,122, 61, 28, 28, 28,132,102,179,217,200,100, 50, 99,173, 17, 89, + 0,112,246,108, 25, 21, 22, 86,102, 96,150, 83,228, 39,159,173,124,187,207,128,183, 66,123,245,138,162, 78,199,159, 54,118,105, +107,148, 13,232,215,166,240,100,252,250, 12,153,244,113, 64, 88,203,174, 72, 78, 74,232, 79,211,120, 64, 16,117, 91,159,146, 30, +226,164,142, 74, 78,216,179,103, 2,165,165,110, 11,190,253,238,254,128,232,232,209,225,221, 34,187, 81,241,103,206, 25,184, 40, + 74,113,232,218, 57,255,147,113, 3, 14,254, 26,187,166,239,201, 19,191,251, 43, 85, 57,113, 54,145, 85,235, 37,141, 36,221, 89, + 60, 30, 67,145,144, 64,182, 28, 59, 86, 95,117, 63, 10,133, 66, 28, 62,124, 24, 92, 46,183,250,195,225,112,170,183,221,221,221, + 65, 84, 78, 35,181,134, 19, 0,100, 50, 25, 10, 10, 10,224,232,232, 8,177, 88,140,130,130, 2, 92,189,122, 21,233,233,233, 96, +179,217,232,223,191, 63, 24,245,248, 54,215,230, 28, 49,123,118,159,144,150, 45,125,107,139, 44, 0, 48, 26,141, 40, 41, 41,193, +224,193,131, 25, 39, 78,156,240, 56,153,155,251, 22,128,216,134, 56,219, 70, 71, 23, 23,238,219, 87,231,127,183,107,215,142,184, +114,229, 10,175,127,191,126, 51,102,125,247,221,250,117, 59,118,228,153, 73,210,163, 49,101,103, 48, 24, 12,130, 32,224,227,227, +131,146,146, 18, 84, 84, 60, 29,193,182,179,179,131,179,179, 51, 76, 38, 19, 40,154,102,191,202,186,174, 79,139,188, 38,216, 92, + 67,112,109,254,155, 69,171,178, 80, 0,208,163,102,199, 66, 81,148, 85, 34,139,205,102, 91,244,185,178,198,202, 85, 27,214, 8, +173,170,188,242,249,252,234, 27,173,166,192,170,202, 39,131,193, 0,147,201,180,216,137, 87,138, 33,102,121,121, 57,246,239,223, +143,238,221,187, 87, 15, 75, 41,149, 74,148,149,149, 65,169, 84, 66,167,211, 33, 43, 43, 11,103,207,158,133,191,191, 63, 96,101, +240,215,204,204,204, 91,205,155, 55,143,168,234,196,123,246,236,217,100,219,182,109,210,129, 3, 7,122,209, 52,141, 5, 11, 22, + 20,117,234,212,201,173,102, 39,111, 9, 76, 38, 19, 87,175, 94,133,191,191, 63,104,154, 6,135,195, 65, 90, 90, 26, 36, 18, 9, + 40,138, 2,139,197,130, 66,161,128,189,125,195, 49, 18, 31, 60,120,240,209,199, 31,127, 44,117,116,116,108, 85, 92, 92, 44,227, +241,120,145, 23, 47, 94,244, 49, 26,141,112,112,112,128,131,131, 3,142, 31, 63, 14, 39, 39, 39, 76,159, 62, 61, 87,171,213, 94, + 21,137, 68,238, 90,173,246, 94, 65, 65,193,130,198,212, 55, 73,146, 80,171,213, 40, 45, 45, 69, 73, 73, 9, 84, 42, 21,116, 58, +157,197, 60,214,133,200,200, 72,196,197,197, 49,151, 46, 93,250,107,102,102, 38, 0,192,207,207, 15,211,167, 79,103,122,123,123, + 35, 43, 43, 11,183,110,221,130,209,104, 4, 77,211, 13,222,188, 44, 22,171,231,135, 31,126,216,213,215,215,151, 48, 26,141,160, + 40, 10,122,189, 30, 85,219,185,185,185, 8, 9, 9, 97, 52,109,218,244,205,204,204,204,158,176,110, 98,133, 13, 0, 10,115, 15, +193,155, 45, 1, 24, 14,160,181,135, 80, 92,244,124, 81, 92,228,114,249,119,115,190,186, 50,118,221,114,163,251, 19, 25, 16, 20, + 62, 4, 1,161,189,241,209, 7, 36,150,174,216, 15,223,166, 65,200,201,201, 65,207,158, 61, 57, 82,169,244,227,138,138,138,217, +214,114,199,199, 95, 55,159, 62,126, 98,248,136,119, 70, 71, 68, 69, 13, 36, 79,157, 58,142, 7,247, 78, 37,125,252,206, 48, 57, + 77, 85, 16, 46, 78,130,219,105,169, 55, 3, 90,181,233, 1, 3,105,142, 4, 22, 47, 7, 22,211,245,223,239, 48, 28, 59,230,201, + 56,118,232,247, 15,222, 27, 53,166,117,239,222,125, 77,167,226,143,226,214,181,248,187,171,150,143,191,176,116,205,222,158,125, +250, 15, 11, 19,187, 95, 61, 30, 30,168, 31,231,227,234,248,104,203,182, 18, 91, 99,169,235,222,228,243, 41, 84, 62, 23, 25, 4, + 1,154,166,159, 17, 89,181,133, 22,131,193,176,104, 0,168,201, 89,179, 47,170,122,161,222,180,105, 19,120, 60, 30,184, 92, 46, +216,108,182, 69,247,139,154,156, 73, 89, 89,189,182,199,198,242,234, 18, 89,197,197,197, 40, 46, 46, 70, 69, 69, 5,222,125,247, + 93,206,215, 55,111,182, 67,165,235, 71,125,156,190,158,158,122,145, 64, 80,152,156,156,236, 21, 26, 26,250, 76,126, 85, 42, 21, + 4, 2, 1, 98,119,237,226,196, 68, 71, 79,233,125,252,248, 42, 88,136,127, 85, 87,217, 9,130,128, 68, 34,129,179,179, 51, 8, +130, 0, 73,146, 40, 40, 40, 64, 82, 82, 18,110,222,188, 9, 38, 65,144,175,178,142,235,210, 34,175,161, 85,107,115,157, 67,135, +245,141,137, 54, 70,104, 49,153,204,231,182,106,213, 7,107,134, 14,133, 66,225,125,169, 84,218,197,219,219, 27, 36, 73, 86, 11, +173,218, 67,135, 85,214,143, 59,119,238, 64, 40, 20,222,215,233,116, 13,114,210, 52,253,102,135, 14, 29,112,224,192, 1, 36, 36, + 36,224,241,227,199,208,104, 52,208,235,245,208,106,181, 72, 74, 74, 2, 69, 81, 8, 15, 15,135, 72, 36,130, 80, 40,188,175,215, + 55,252, 34,170, 86,171,101,108, 54, 59, 72, 32, 16, 84, 31,243,244,244, 68,113,113, 49,101, 50,153,176,125,251,118,149,135,135, +135, 72, 32, 16, 88, 45, 92, 9,130,128, 92, 46, 71,147, 38, 77,170,125,180,202,203,203, 33,145, 72,170,132, 5,244,122, 61,236, +237,237, 45, 14, 29, 2,208, 61,124,248,112, 86,141,253,246, 35, 70,140,248, 99,207,158, 61, 45,206,156, 57,131, 27, 55,110, 64, + 44, 22,227,251,239,191,127,156,157,157,253, 30,128,155,114,249,203,245,139,180,166, 13, 21, 23, 23,239,191,127,255,254,155, 29, + 58,116,168,126, 74,244,236,217,147,232,217,179,167, 91, 77, 83,191, 66,161,192, 95,127,253,133, 51,103,206,128, 32, 8,100,100, +100,152,181, 90,237, 31, 13,141, 82,120,123,123,111,155, 63,127,190, 29, 73,146,213,109, 91, 32, 16,128,207,231,131,195,225,128, +201,100, 34, 59, 59, 27,131, 7, 15,118,252,249,231,159,127,215,235,245,111, 0, 48,226, 95,130, 50, 45,140,119, 30,168, 28,195, + 67,220,147, 54,111, 90,218,101,194, 68, 84, 13, 29,146,225, 33,146,164, 59, 15, 10, 29, 35, 36,150,203,123,226, 76,222, 39, 6, +211,137, 65, 39, 78,158, 31,249,249,140,233,108, 63,191, 16,249,153,115,137,190,189,201,111, 8, 87, 55, 7, 20, 23,169,144,157, + 91,136,204, 28, 3,237,231, 23, 34,191,245,215,125,222,138,159, 86, 7,168, 53,186,170,161,195, 6,219,233,165,171,143,135,172, + 90,203,187, 48,250,227,246, 92,129,192, 11, 37, 69,247,225,235, 43,198,224,152, 86,248,109,199, 85, 56, 58,186,192,221,221, 29, + 12, 6, 67,100,109,217,139,138,138,136,253,187, 47,141,253,112,204,248, 78,253,250, 70,147, 39, 79, 29, 99, 37,156, 62,114,245, +247,205, 95, 30,164,153,106, 33, 65,151, 11,154, 53,247,184,247,232,225,157,247,122, 69,189, 11, 1,199,222, 31, 8,174,179,193, + 86, 79, 48,160,145,123, 96,207, 98,254,135, 99, 38,116,238,215,239, 45,242,212,169, 67, 56,117,124,199,245, 69,139,154, 29,127, +156,191,139,115,237,230, 19,254,144,225,147, 75,227, 78,164, 24,134, 13,106,158,238, 37,106,163, 5, 30,219, 84, 85,205, 23, 73, + 22,171,144,212,235,125,154,244,235,199,212,228,228,176,237,220,221, 73, 0, 48,153, 76, 22,133, 22,234, 25,130,174,205,105,109, + 94, 52, 26, 13,168,122, 98, 39,214,230, 44,144,203,155, 85,190,132, 87,195,100, 50, 85,139,172,226,226, 98,148,149,149, 65, 36, + 18, 65,161,215,187, 91,195,217,183, 99,199,237, 95, 47, 94, 60,123,223,254,253,156,154, 34,171,234,195,102,179,241,195,242,229, +156,207, 62,255,124,242, 20, 22,107, 26, 72,210,234,235, 89,245,210,206,100, 50,193, 98,177,144,147,147,131,220,220, 92,228,228, +228, 32, 39, 39, 7, 2,129, 0,244, 43,158, 4,244, 26,251,103, 85,137,172,154,223,213, 86,174, 6,195, 59, 52,198, 25,222, 90, + 97, 96,110,196,248,174, 53, 66, 75,173, 86,159, 57,123,246,108,199, 33, 67,134,176,174, 95,191, 14, 15, 15,143,106,161, 85,245, + 93, 53, 28, 37, 20, 10,113,240,224, 65,163, 90,173, 62, 99,225,102, 58,123,252,248,241,136,133, 11, 23,178, 63,250,232, 35, 36, + 39, 39, 99,226,196,137, 40, 43, 43,131, 74,165, 66,113,113, 49, 52, 26, 13, 58,118,236, 8, 62,159,143,123,247,238,153, 52, 26, +205, 89, 11, 22, 59, 90, 46,151, 87,136,197, 98,207,218,191, 13, 31, 62,220,125,195,134, 13,154,212,212, 84, 83,151, 46, 93, 28, +172, 21, 28, 85,216,189,123,119,181,165, 46, 61, 61, 29, 27, 54,108,168,246,201, 74, 76, 76,196,202,149, 43,171, 99,159, 53, 18, + 55,139,138,138, 72,147,201, 4,127,127,127,120,123,123, 67,167,211, 97,245,234,213, 36,128,155,255, 95,173, 89,167,211,237, 27, + 61,122,244, 23,183,111,223,246,100,177, 88, 79, 77,218,149,229, 51, 26,141,120,248,240, 33,146,146,146,144,154,154,138,146,146, +146,234, 23,129, 59,119,238,148,154, 76,166,189,245,241,138,197,226, 5,191,253,246,155,135, 80, 40,124,166, 61, 87, 89, 67,171, +172,164, 10,133, 2, 78, 78, 78,232,221,187,183,228,236,217,179, 11,244,122,253,194,127, 73,159, 70, 12,127, 59,189,253,103,159, + 12,193,208, 24, 97,222,129,184,252, 43, 43, 87,204,170,116,134,151, 36, 13,141,241,206,187,155,230,132,225,111, 31,106, 15,224, + 9, 26,118,216,166,206, 93,144, 29,238,208,193, 57,225,192,145, 35,191,207,155, 51, 35,113,246,172,241, 98,141,246, 17,223,175, + 41,151, 0,128,204, 28, 3,125, 47,153,210,173, 92, 53, 35,113,233,242,159, 25,133,197,101, 19,255,250,171,254,240, 6, 53,197, + 11,131, 1,190, 95,112,119,105, 64, 96,215,230,215,175,198,194, 78,168, 69, 80,112,123,244,235,251, 38, 18,206,223, 65,129, 66, + 7,153, 76, 6,189, 94,223, 96,184,132,212,123, 7, 63,160, 9,218,151,160,137, 92,130, 65,243, 63, 24, 61, 46, 50, 58,250, 45, + 58, 46,238, 8,121,232, 96,236,229,189, 59,215,238, 99,112,216, 44,173,193,209, 64, 16, 58, 37, 24, 15,146, 43,212, 79, 95,104, +216, 60, 78,253,230,215,202,192,174,161, 97,193, 30, 31,140,158,232, 56,112,192, 96,250,248,241, 67,212,222, 61,219, 19,246,110, +109, 25, 75, 49, 84, 28, 89,158,134,167, 84,153,148, 52,193,117,170, 80, 81,154,194,204, 55,116, 94,209,195,141,192, 62,155,186, +170,217, 15,232,245, 79, 42,242,242, 60, 93,186,119,231, 61, 92,188, 88,232,222,177,163,142,168,244, 33,110, 72,104, 49,153, 76, +128,193,160,172,225,180, 54, 47, 90,173, 22, 20, 96,122, 30, 78,146, 36,159, 17, 89, 85, 66,171,234,126,177,134,115,243,162, 69, +215,125,251,245, 43, 57,127,254,188,123,143, 30, 61,136,242,242,114,148,151,151, 63, 35,182,188,188,188,136,208,240,112,225,238, +132, 4, 63,107,175,167, 53,101,103, 48, 24,175, 92,104,189,230,168,119, 33,233, 6,151,224,169,178,104, 89, 35,180,172,180,104, +153, 76, 38, 19, 36, 18, 9,138,138,138,234,237,248, 25, 12, 6, 4, 2, 65,213, 24,113,131, 51,239,244,122,253,234,217,179,103, + 79, 29, 48, 96,128, 91, 80, 80, 16, 20, 10, 5,220,221,221,193,231,243,171,125,199,170,248, 18, 19, 19,241,219,111,191,169,244, +122,253,106, 11,156, 63, 45, 95,190,252,147,161, 67,135,186,120,120,120,192,217,217, 25,247,238,221,131,179,179, 51, 84, 42, 21, +210,210,210, 96,111,111, 95,237,183,115,228,200,145,114,189, 94,255,147, 5,241, 70, 95,188,120,209,104,111,111,127, 79,161, 80, + 48, 75, 74, 74, 88,165,165,165, 44,149, 74,197, 86, 42,149,236,147, 39, 79,186, 57, 58, 58,106,206,157, 59,167,240,245,245,101, + 62,126,252,152,105, 50,153, 44,170, 87,130, 32, 48,109,218, 52,112, 56, 28,232,245,122,172, 94,189, 26,179,103,207,174,246,201, + 90,190,124, 57,230,207,159, 95, 45,156,183,108,217,210,168,150, 67,211, 52,140, 70, 35, 76, 38, 19, 76, 38,147, 85,226,247, 69, + 96,165, 96, 47,200,200,200,136,233,208,161,195,233, 63,255,252,211,181, 50, 38, 25, 10, 11, 11, 81, 88, 88, 8,133, 66,129,138, +138, 10,144, 36, 9,111,111,111, 20, 22, 22,226,208,161, 67,202,242,242,242,126,104, 96,198, 33,147,201, 28, 29, 25, 25,201,170, +157,135,170,183,188, 42,241,206,227,241, 32,149, 74,209,179,103, 79,238,249,243,231, 71, 3,120,173,133, 86,205,240, 14,125,251, +141,229,132,132,117, 54,220, 77,138,203, 11,110, 94,152, 55,106,176,195, 49, 0,184,243,160,208,241,110,154, 19, 66,194, 98,232, +190,253,156, 35, 10, 11, 54,183, 4, 96,108,104,185, 30, 0,112, 20,242, 70,244,137,234, 40,181, 23,137, 24, 43, 87,109, 57,241, +203, 47, 63,181,219,119,236, 63,225, 29, 86,174,122, 26,222,161, 79, 84, 71, 42, 53, 37,117, 4,128,173,214,138,151,152,152, 65, +183,127,219,246, 27, 82,147,206,121,125, 49,173, 21,183,164,208, 4,129,157, 15, 34,218,184, 99,243,182,251,184,123,247,110,129, +193, 96,232,217, 96,251, 38,104,223,164,228, 7,129, 45,195, 66, 61, 62, 24, 61,193, 33, 38,102, 48,226,226, 14, 99,231,246,173, + 23,135,189, 59,244,215,252, 82, 21, 83,194, 22,114,132, 52,197,101,114, 28, 89, 28,158, 64,110, 48, 60,157, 3,193,102,243, 29, +128, 17, 13,118, 60,147, 38,140,114,236, 21, 53, 24,199,142, 31,198,206,237,155, 47,124, 21, 54,124,107,243,182, 33, 68,199,118, + 43, 38, 55,111,209,188,169,186,162, 80,197, 32,184, 70,157,142,178, 95,177, 61,251,199,204,249,163, 51, 1,172,130,109,214, 97, + 77,220,219, 57,112, 96,135,207, 30, 61,226,136,187,118, 21, 72, 19, 18,132,149, 43,145, 52, 40,180, 88, 44, 22,232,250,135,186, +158,225, 36,118,236, 96, 0,104,112, 18, 22,135,195,129, 70,163,129,169,126, 11,246, 51,156,158,167, 78,229, 61,122,244, 40,192, +197,197,229, 25,145, 85, 82, 82, 82,189,173,211,233,160,209,104, 32, 16, 8,146,180,117,143,136, 60,195, 89,120,241,162,110,217, +180,105, 11,223,123,247,221,181,103,206,158,229,187,186,186, 66,169, 84, 62, 35,180, 12, 6, 3,122,245,238,205, 89,126,251,246, + 7, 80,169, 22, 89,115, 61,221,123,246,180,232, 15,204,100, 50, 65,189,226,161,195,127, 1, 38,212, 37,188, 24,150,134,112,172, +157,117, 88, 79, 7, 89,123,117,239,249, 17, 17, 17,186,244,244,116,248,250,250, 86,139,149,154,255,233,224,224, 0, 39, 39, 39, + 36, 38, 38,226,187,239,190,211, 2,152,111,129,179, 92,163,209,188,211,167, 79, 31, 45,139,197, 66,112,112,112,117,252, 44,138, +162,192,229,114, 33, 18,137,112,251,246,109, 12, 26, 52, 72,163,209,104,222,193,223, 99,104,213,230, 84,106, 52,154,247,251,246, +237,171, 73, 78, 78, 70,100,100, 36,238,222,189,139,138,138, 10, 84, 84, 84, 32, 43, 43, 11,161,161,161,208,104, 52,216,176, 97, +131, 86,163,209,188, 15, 64,217, 16,103,121,121,249,160,217,179,103, 51,255,248,227,143,230,222,222,222, 97,237,219,183, 15,234, +221,187,247, 27,111,191,253,118,211,129, 3, 7,122, 6, 4, 4,232,250,245,235, 39, 30, 48, 96,128, 88,163,209,176,175, 92,185, + 34, 51,153, 76, 3, 44,228,179, 90,156,164,167,167, 87, 15, 21,178, 88, 44, 20, 21, 21, 85, 71,238,175,122, 40,213, 35,132,163, + 44,137,237, 42,129, 85, 37,184,172,240,115,171,139,211,226, 73, 92, 46,183,202,226, 73, 91,193,121, 39, 37, 37,165, 79,247,238, +221,239,140, 29, 59,182,188,160,160, 0,246,246,246,240,243,243, 67, 96, 96, 32,220,220,220, 96, 52, 26,113,240,224, 65,245,161, + 67,135,238, 43,149,202,158,248,123, 12,173,168, 90,215, 49,171,174,135,108,149, 53,171, 74,104,241,249,124,120,123,123, 87, 93, +219,172,198, 92,207,231,196,171,229,172, 20, 48,189,123,245,107, 49, 48,122,136,227,193,195, 87,185,107,215, 31,186, 31, 17,133, + 45,174,205, 84, 71, 92,155,169,142, 68, 68, 97,203,218,245,135,238, 31, 60,124,149, 59, 48,122,136, 99,239, 94,253, 90, 36, 39, +165, 6,213, 92,247,176,174,124,242,249,252,206,145, 93, 35, 74,207, 95,190, 64, 45, 93,254, 51,163, 87,207, 97,183,183,254,122, +240,224,214, 95, 15, 30,236,213,115,216,237,165,203,127,102,156,191,124,129,138,236, 26, 81,202,231,243, 59, 91, 83,246, 73, 19, + 70, 57, 70, 15, 28,140,184,184,131,228,190,221, 27,150,239,217,159,209,125,220,212,139,133,233,233,119,105,249,147, 83, 96, 51, +114,144,146,146,162,172, 20, 89,233,214,112, 78, 28, 63,170,166,200,186,228,234, 17,185, 37, 37, 5,230,248,248,163,166,179,103, +111,107, 47,221,145, 43,111, 37, 23,149, 72, 21, 37,143, 85,170, 98, 3, 69,153, 97, 54,155,153, 95,127, 93,237,176, 91,103, 29, +117,233,210, 3,231,206,236,194,246,109,155,148, 20, 5,221,136,125,251,204, 35, 70, 44,166,155, 54,107,214, 52,118,247, 46, 34, +230,173, 33,142, 52, 64, 13, 26, 58,216,233,143, 61,127, 16, 45,252, 91, 52,243,243,171, 14,105,243,250,181,165, 87,192,185, 24, + 40, 85,229,228, 92, 72,252,249,103,189,251, 59,239,184,112,221,221, 29, 96, 54, 19, 85,207,247,250, 62, 44, 22,171,182, 5,166, + 94, 78,111, 55,183,252, 35, 71,142, 32, 48, 48, 16,222,222,222,168,233, 35, 91, 21,144,219,213,213, 21,251,247,239, 7,253,108, +112,234,122, 57,219, 54,111,158,248,195,178,101, 6,138,162, 80, 90, 90,250, 55,107, 86,105,105, 41, 40,138,194,241, 99,199, 12, +170,167, 43,129, 88, 85,246,158, 76,102,197,123,221,186, 45,141,142,142, 54, 62,122,244, 8, 20, 69,161,166,101, 75, 46,151,195, +206,206, 14, 58,189,222, 7,128,208, 26, 78,249,201,147, 34, 88,120,174,215, 97,209,122, 21,245,254,186,139,172,154, 11, 74, 79, +176,202,162, 69,146, 36,124,124,124,158, 89,210,133,193, 96, 60,243,105,228,140,195, 29,201,201,201,167,250,245,235,183,176, 83, +167, 78,147, 22, 46, 92,200, 12, 10, 10,130, 82,169,132,179,179, 51, 36, 18, 9,210,210,210,112,228,200, 17,115, 81, 81,209, 70, + 0, 75, 96,221, 20,250,132,140,140,140,152, 86,173, 90,237,153, 59,119,174, 99,223,190,125,217, 62, 62, 62,160,105, 26,183,111, +223,198,129, 3, 7,140, 91,183,110, 85, 85,138, 44,107,157,151, 79, 75,165,210, 97, 3, 6, 12,136, 29, 61,122,180,189,217,108, +102,103,101,101, 65,175,215,195,100, 50, 33, 55, 55,215, 24, 23, 23, 87,161,209,104, 70, 1, 56,109, 5, 95, 98, 89, 89, 89,104, +124,124,252,232, 43, 87,174,124, 55,118,236, 88,215,222,189,123,115, 72,146,196,229,203,151, 21,109,219,182,149,200,229,114,227, +254,253,251,139,117, 58,221,124,179,217,108,213, 18, 60, 4, 65, 64,165, 82,193,205,205, 13,122,189, 30, 20, 69,193, 96, 48,192, +206,206,174,122,217, 36,154,166,209, 24,231,250, 90,109,128,105, 52, 26,241,238,187,239,130,162, 40,172, 94,189, 26, 36, 73, 54, +154,204,209,209,241,214,157, 59,119, 98,218,180,105, 83, 45, 94,170,218, 16,143,199,131,155,155, 27, 92, 93, 93, 17, 23, 23, 7, + 54,155,125,203,146,191, 91, 37,238, 22, 21, 21,181,141,143,143,239,124,255,254,253, 15, 1,180, 49, 26,141,222,102,179,153, 96, + 48, 24, 50,154,166,239,169, 84,170, 95, 97,229, 18, 60,114,185,252,187, 49, 99,198,180,221,181,107,151, 29,139,245,159, 91,131, +197, 98,129,199,227,161, 42, 56, 38, 77,211, 48, 24, 12, 88,176, 96,129, 74,173, 86,127,247,111,121, 74, 68,180,239,136,205, 27, +214,216,157, 61,119, 74,145,146,129, 3,117,132,112,120, 82, 88,176,185,165, 52, 47,207, 46,162,125, 71,171, 56, 77, 6, 99,241, +251,163,102,250, 86, 46,193,179, 32, 43, 43,123, 83,236,142, 31, 51, 1, 96,197, 79,171, 3, 10,139,203, 38,166,166,164,142,216, +180,105,119,103,147,193, 88,108, 13,231,127,196, 75,172, 18, 52,116, 0,110,220,190, 95,216,124,208, 59, 39,231,251,183,112,120, + 75, 94,172,205,175,168,208,124, 10, 32,211,218,178,119,237,210, 29,231, 78,255,129,157,219, 99, 85, 52,197,212,185,185,185,209, + 0,144,146,226, 70,167,164,148,209,255,241, 43,118, 82,179,233,187, 75,102,126,218,123,166, 82, 85,242,211,234, 13, 13, 15,165, +180,106,221, 9,173, 90,119,194,212, 79,191,116, 12, 13, 11,246, 5,128,125,251, 96, 14,243, 79, 62,186,240,171,197,111, 45, 89, +178, 24,170,114, 61,170,150,235, 73,123,144,124, 44, 51, 19, 6, 91,159,245, 44, 22,146,228, 13,204,156, 25,160, 41, 41, 17,119, +253,226, 11, 55,214,231,159, 51, 26,114,134,175,121,255, 90,195,121,243,222,189, 99, 19,199,141,203, 95,180,112, 97,191,141,155, + 54, 9, 90,182,108,137,130,130, 2, 4, 7, 7,195,219,219, 27,241,241,241,216,191,119,175,186,172,188,124, 62,128, 95,172,225, +220,113,252,120, 90, 80, 88, 88,209,166, 77,155,188,162,163,163, 9,181, 90, 13,165, 82, 9,165, 82, 9,189, 94,143,202,128,208, +116,122, 70, 70,138,201,100,218,104,109,217,205, 10, 5,127, 73,199,142, 79, 56, 20,245,195,176,161, 67,103, 47,249,230, 27, 94, +139, 22, 45, 8,189, 94, 95,109,213, 50, 26,141,176,179,179, 51, 26, 12, 6, 87, 0, 26,107, 56,121, 91,183,146, 10,133, 2, 98, +177,184, 58, 92, 83,205,184,132,229,229,229,160,105,218, 22, 76,247, 57, 80,175, 66,114,118,118,190,197, 98,177,154,212,180,110, +213,181,118, 94,205, 99, 38,147,233, 73, 81, 81, 81, 68, 45,197, 91,159, 63,148, 31,128,239,123,245,234, 53,108,214,172, 89,196, +249,243,231,113,232,208, 33, 58, 51, 51,115, 95,165, 21, 43,179,129, 55,157,250, 56,237,121, 60,222,116,145, 72, 20, 85, 21,194, + 65, 40, 20,222, 87,171,213,103, 42,135, 11,203,159,131,211,129,199,227, 77, 19,137, 68,125, 42,151, 95,129,189,189,253, 29,181, + 90, 29,175,215,235,215,160,254,133,170, 27,226, 20, 56, 58, 58,126,231,230,230,246,254,231,159,127,238,122,241,226, 69,217,185, +115,231, 56,101,101,101,187, 12, 6, 67, 67,139, 74,255,141,211,197,197,229, 22,147,201,108,242,138,234, 8,173, 90,181,138, 27, + 52,104, 80,244,168, 81,163, 96, 50,153,240,203, 47,191, 32, 62, 62,254,216,195,135, 15, 99, 44,188,141,214,230,116,107,210,164, +201,249, 73,147, 38, 53,125,247,221,119,133,206,206,206, 96,177, 88, 80,171,213,120,248,240, 33,110,223,190, 77, 31, 62,124,184, + 34, 49, 49,241,137, 70,163,233, 1,160,168, 17,215,243, 69,222,154,159,225,100,177, 88,221,125,124,124,118, 47, 90,180,200,190, + 79,159, 62, 2, 87, 87, 87, 48,153, 76,152, 76, 38,200,100, 50, 60,120,240, 0,167, 78,157, 82,239,219,183, 79, 93, 92, 92,252, + 46,128, 11,255, 31,249,124,153,156, 33, 1,248,170,214, 66,209,245, 70,123,183,144,214, 98, 62,123,117,247, 28, 60, 98,216,128, +254, 0,240,231,254, 19, 39,173, 88, 84,186,222,124, 90,202,171, 53,156,193,254,140, 69, 73,201, 15,158, 9,104, 25, 22, 26,158, + 30,210,114,232,183,214, 16,213,136, 12,255, 76,217,107, 12,199,214,180,233, 62, 51,204, 26,226,135,152,193, 35,222,142,254,114, +254, 60,124,255,221, 82, 28,254,243,224,177,148,204,103,150, 9,122,237,218,210, 43,230, 36,190,101,177, 58, 9, 61, 61,187,173, +166,168,121,119, 31, 60,176,171,249,194, 86,101,121,174,249, 82,233,229,229, 37,151,201,100,238,214,112,198,172, 91,103,212,136, + 68,188,121, 63,252,208,189, 66,167,235,190,100,201, 18,214,205,155, 55,177,225,231,159, 73,221,147, 39,177, 10, 96, 90, 61,163, + 33,245,114, 54,157, 54,141, 63,103,195,134,143,252,252,253, 37, 31,126,248, 33,155,205,102, 67,173, 86, 35, 47, 47, 15,167, 79, +157, 50, 36,167,164, 36,171, 84,170,183, 0, 72,173,229,140, 89,183,206,232,228,231, 7,161, 88, 76,159, 77, 72,112,156, 56,125, +250,164,102,205,155, 59,246,235,223,159,237,224,224,128,210, 96,253, 38,115, 0, 0, 32, 0, 73, 68, 65, 84,210, 82,100,101,101, +225,224,193,131,242,138,138, 10, 47, 0,102,107, 56, 99,175, 92,105,117,252,194,133,225,223,126,251, 45, 55, 60, 60, 28,142,142, +142, 40, 47, 47,199,131, 7, 15,112,225,194, 5,253,198,141, 27,149, 74,165,114,146,217,108, 62,242, 10,235,253,223, 96,213,170, +194,102,139, 66,235,191,120, 3, 70, 0,248,170,114,251, 27, 88, 94, 51,240,223,244,240,241,117,113,113,217,172,211,233,104,173, + 86, 59, 17, 64,238, 63, 48,159,172,136,136,136, 13,114,185,188, 51, 77,211,112,116,116,188,154,148,148, 52, 5,245,204,188,177, +192,201, 4,208,217,206,206,174,163,189,189,125,119,189, 94, 31, 82, 57,252,150,162, 86,171, 47, 24,141,198, 27,149,214, 39,243, +255,115,217,153, 0,250,120,121,121,141,163, 40,202,159, 32, 8, 39,179,217, 12,147,201, 84, 70, 81,212, 67,165, 82,185, 21, 64, +252, 63, 32,159, 47,133, 51,244, 13,188, 77, 51, 16, 82,159, 32,120, 70,104,213, 18, 16, 4,133,148,228, 71, 56,216,136,124, 50, + 6, 68,249,172, 7,158,206, 76,132,101,231,218,255, 8, 45, 43,196, 75,163, 69,230, 27,204, 49, 52, 65, 63,195, 73,208, 68,110, +112,171,183,119,190,136,208,178, 22,161,129,232, 14, 26,157, 41, 26, 55, 82, 31,226,220,191,248, 89,247,210, 56,191, 7, 92,126, +118,118,190,202, 96,177, 60, 0, 48, 42,173, 47, 20, 69, 16,102,154, 32,200,154,195, 91,181, 94, 44, 27,228, 52, 2, 45,217, 60, +158,143,153, 36,221, 11, 0,187,227,102,115, 59, 29, 77, 87, 52, 1,190,186, 3,164, 61, 79, 62,141, 64, 75, 38,143,231,123,156, +166, 7, 43, 68,162, 86,114,173, 86, 12,128,182, 19,137, 82, 84,106,245,118,157, 78,183, 30,127, 31,185,176,200,201,225,241,154, +152, 73,210, 29, 0, 24, 44,150,124,143, 94,239,243,196,193,225, 67,157, 94,223,212,206,206,206,100, 48, 24, 84, 58,157,110, 20, + 73,146,103, 27, 83,246,135, 36, 25,122,133,193,136, 52,138, 68,174, 70,130, 16, 25, 72,210,104, 48, 26,243,116, 58,221,125, 0, + 63, 2,120,244,138,235,221,134,231,188, 89,108,156, 54, 78, 27,167,141,211,198,105,227,180,113,190,122, 78, 33, 0,223,202,151, +197,215,177,236,255, 38, 88,231,163,101,131, 13, 54,216, 96,131, 13, 54,188, 54,208,160, 14,159, 44, 27,254,127, 65, 52,160, 74, + 27, 99, 18,124, 30,101,123,198,198,105,227,180,113,218, 56,109,156, 54, 78, 27,231,255, 28,167, 37,238,215,113, 72,178,222,181, + 14, 95, 53,108,230, 95, 27,167,141,211,198,105,227,180,113,218, 56,109,156,255,179, 96,216, 46, 65,189,112,175,252,188,236,180, + 54,252,187,219, 66,109,120, 87,126, 26,147,222,211,118,201,109,176,193, 6, 27,108, 66,235, 85,119, 90, 47,210,185,189,168,240, + 89, 74, 16,144, 18, 4,164, 0,150,190,196,180,150,224,229,230,230,246, 89,104,104,104,172,187,187,251, 84, 0,146, 70,158, 31, + 32, 20, 10,215,136, 68,162,243, 34,145,232,188, 80, 40, 92, 3, 32,224, 37,213, 27, 1, 96, 34,143,199, 75,240,244,244,204,231, +114,185, 9, 0, 38,225,249,103,174, 6,225,105,156,180,111, 0,180,106,204,137,146,176,193,123,197, 97,131,239,137,195, 6, 63, +112, 13, 31, 20, 32, 14, 27,252, 64, 28, 54,248,158, 36,108,240,222, 87,208, 94, 95,164,126,151, 18, 4,114, 9, 2,185, 86,158, +251, 35, 1,228, 17, 4,158,188,132,182,100,131, 13, 54,216, 96,195,235, 6, 47, 47,175, 97,158,158,158,103, 60, 61, 61,227,189, +188,188,134, 89,113, 74, 84, 29, 29,143,153, 32, 96,182,208,145, 52,148,206,146,185,178,230,185, 43,173, 44, 90, 77, 78,119,130, +128,153,174, 4, 65,128,146, 72, 36,107, 61, 61, 61,151,214,254, 72, 36,146,181, 4, 1,170, 70, 90,115, 13,129,215, 88,179,170, +251, 7, 31,124,240,103,105,105,105,156,193, 96,136,203,200,200,136,235,209,163,199,158, 90,214,141,122, 57,249,124,254,123, 29, + 58,118, 78,188,112,249, 70, 70,250,195,108,105,114,218,227,236,163, 39,207,222, 12,111,217,234, 47, 62,159,255, 94, 35,234,136, + 0, 48,145,197, 98, 37,216,217,217, 61, 97,177, 88, 9, 0, 38, 51,153,204, 35,203,150, 45,203, 78, 74, 74, 42,188,114,229, 74, +217,133, 11, 23,242,199,142, 29,251,144, 32,136,163,117, 8,246,168, 58,172, 52,181,173, 58, 11,115,114,114, 78,202,100,178, 83, + 2,129,224, 59, 43,210, 87,115,138,195, 6,223,147, 43,141,180, 92,105,164,197, 97,131,233, 26,219,247, 26,121,205, 45,213,209, +223,218, 2,143,199,243,181, 32,232,163,234, 59, 23,128, 71,229,111, 17, 0,214, 85,126,170,166,158,123,240,121,188,151,213,150, + 94, 70,217,109,156, 54, 78, 27,167,141,243,191,205,249, 58,163,109,229,183, 39,158,250,107, 85,247,221,141,157,117,248, 73, 70, + 70,134, 29, 0, 4, 6, 6, 78, 1,176,191, 49, 66,130, 32, 48,135,162,104, 6, 0, 48, 24,196, 23, 61,123,246,106, 43, 16, 8, +158,137,130,172,213,106,185, 9, 9,231,122, 83, 20, 77, 84,166,155, 67,211, 88, 3,160,208,218,255, 48, 24,244, 12, 54,155, 11, + 6,131,152, 25, 30,222,178, 89, 81, 81,209, 69, 6,131, 17,155,159,159, 95,218,104, 51, 14, 65, 96,203,150, 45,129,158,158,158, +127,139,214, 44,147,201,184,131, 7,191,213, 40,190, 49, 0, 79,207,227,117,228, 16,132,167,153, 36,157, 0,128,197, 98,149,222, +228,114, 35,190,255,246, 91, 33, 65, 16, 84,113,113, 49,180, 90, 45,102,204,152, 33, 72, 78, 78, 30, 82, 84, 84,180,222, 2,109, + 96,171,214,109,103,156, 58,117, 50, 68, 85, 82,170,219,242,211,166, 68, 45,139,163,105, 30, 26,204,217,176,121,187,243,132,143, + 70,125,154,154,154,116, 7,117, 47, 71, 82, 19, 12, 0, 7,167, 79,159, 30, 22, 19, 19,195, 45, 47, 47,231,107,181,218,102,177, +177,177, 11, 34, 34, 34,236,218,180,105,195,221,189,123, 55,161, 84, 42, 65,211,180, 48, 56, 56,152, 30, 57,114,164,110,207,158, + 61, 83, 1,172,109, 64,248,206,121,122, 45, 25,171,131,130,130, 22, 1, 64, 70, 70, 6,167,198, 53,102,135,132,132,136, 0, 32, + 45, 45,237,107,154,166,166, 3, 0, 77, 99, 57,128,121,117,152,214, 50,194,186,142, 0, 8,248, 39, 93,254,147, 31, 22, 57, 66, + 7, 26, 15, 9, 32,163,242,133, 96, 9, 80, 35, 46,212,179, 72,145, 74,165,207,181, 54, 97,116,116, 12, 65, 16,196,190,196,196, +196,253,114,185,188, 57, 69,153,199, 55,148,207, 90,237,136,112,117,117, 29, 83, 84, 84,180, 20,192,184,148,148,148,182, 0, 16, + 18, 18,194, 1,112,203,193,193,161,139,209, 96, 32,108,207, 42, 27,108,176,193,134,215, 86,104,221, 6, 16,141,255, 44,193,179, +249,121,132, 22, 23, 0, 46, 94,188, 8, 0,188,231,200, 8, 81, 83,192, 76,155, 54, 13,158,158,158,181,197, 11,206,159, 79,120, +145,194, 62,243, 31,223,124,243,141, 93, 89, 89, 89,212,175,191,254,218,141,166,233,149, 82,169,244,186,133,243, 11,105, 26,203, + 25, 12,226, 11,130, 32,192,227,241,211, 39, 77,154,116,187,242,183,102, 71,143, 30, 21, 14, 26, 52, 72, 3, 32, 27, 0,120, 60, +190, 55,147,201, 8,164,105,186,170,195,173, 87, 16, 14, 7,252, 72, 46,183,215,196,117,235,200,118,131, 6,177, 68, 98, 49, 1, + 0,217,169,169,174,203, 87,172,232, 82,154,153,201,213,186,186, 22, 23,171,213,218,244,244,116,240,120, 60,130,201,100,182,179, + 84, 96,145, 72,244,217,183,223,255, 32, 82,149,148,105,117,170,114, 3,147, 52,233,237, 5, 66,115, 97,129,188,216, 78, 32,210, +124,241,213, 98,238, 39,227, 71,127,166, 86,171,167, 88,160,154, 58,115,230,204,144, 14, 29, 58,120,239,221,187,151, 80, 42,149, + 96,177, 88,118,109,218,180, 65, 68, 68,132,249,220,185,115, 68,243,230,205, 17, 30, 30,142,203,151, 47,227,234,213,171, 68,219, +182,109,133, 7, 14, 28,248,192,100, 50,173,181, 36,174,153, 76,198,140,224,224,224, 54, 34,145,200, 16, 24, 24,136,241,227,199, +131,166,105, 68, 69, 69,133,219,217,217,237, 87,171,213,220,180,180,212,110,150, 68,182, 60,233,240,200, 42,203, 22,128,150,160, +241, 80,145,116,184,230,240, 99, 72, 90, 90, 90,167,210,210, 82, 60,173, 23,186,122, 1,243,110,221,186, 53,166, 45, 21,210, 52, +150, 15, 26, 20,243, 5, 64, 16, 81, 81, 81,101, 83,167, 78,101,164,166,166,190,255,246,219, 67,194, 51, 50, 30,162,129,124,214, +108, 71,196,152, 49, 31, 21,218,217,217, 13,221,183,111, 95,154, 76, 38, 99,113, 56,213, 58,147, 41,145, 72,196,129,129,129,147, + 93, 92, 92,228, 76, 6, 67, 66,131,166, 45,181, 37, 27,108,176,193, 6, 27,254, 81, 56, 86, 41,174,142,213,254,129, 5, 0,113, +113,113,213,145,105, 99, 98, 98,234,125,171,166,105,186,240,238,221,187, 62, 26,141, 6, 52, 77, 91,211, 9,212,156,162, 89, 72, + 16,140, 13, 12, 6, 49,133, 32, 8,132,135,183,124,188,122,245,234,186,214,244, 50,132,135,183,124,204,100, 50, 90,208, 52, 13, +130, 96,252, 66,211, 84, 97, 61,156,117,118,140, 92, 46,111, 14, 0,120,120,120,102,158, 56,113,194, 48,124,248,112,172, 88,177, +130, 51,119,238,220,217, 44, 22,107,106,110,110,110, 65, 3,249, 4,128,121, 98,177, 68,184,101,203,150,192, 73,147, 38,221,150, +201,100,243, 0,192,211,211,115, 41,128, 80, 0,217, 53,142, 97,227,198, 61,249,227,199,143, 79,151,203,229,243,234,227, 28, 10, +188,225, 19, 28,220,107,201,197,139, 52, 67,175, 39,138, 46, 93, 82, 41, 10, 11, 77,143, 20, 10,225,182, 91,183, 98, 22, 44, 93, +202,246,241,245,197,249, 35, 71,220,138, 52, 26,133, 82,175,215, 21, 22, 22,210, 36, 73, 94,181,162,236, 97, 18,177, 68,184,233, +199, 95,110,218,179,153,148,164,137, 55,193,118,113, 97, 49,132, 14, 92, 38,139,161,111,209, 44,128, 11, 32,204, 82, 29,113, 56, +156, 15,250,246,237, 43,220,179,103, 15, 17, 30, 30, 14, 39, 39, 39, 92,186,116, 9,119,238,220, 65,105,105, 41,195,100, 50,161, +125,251,246,248,225,135, 31,224,235,235,139,178,178, 50,228,230,230,186,113,185, 92,177,201,100,170,239,122, 62,211,158,230,204, +153, 3, 79, 79, 79,144, 36,137,146,146, 18,144, 36, 9, 59, 59, 59, 0,192,147, 39, 79,112,228,200, 97,107,218,146, 69,208, 52, +141, 55,223,124,179,156, 32,136,148,218, 22,173,198,112,122,123,123,239, 86, 40,138, 6,244,234,213, 11,165,165,165,166,197,139, + 23,163, 85,171, 86, 8, 12, 12,180, 38,159,243, 56, 28,238,175, 77,155, 54,253,113,218,180,105,158, 46, 46, 46,208,235,245, 11, + 10, 10, 10, 48,121,242,100, 0,192,192,129, 3, 91,177,217,236, 19, 99,199,142, 69,243,230,205,243, 75, 74, 74,114, 19, 19, 19, +199,107, 52,154, 7,207, 91,118, 43, 97,227,180,113,218, 56,109,156,255, 40, 78,107,181,200, 63, 20, 50, 60, 27,206, 97,243, 51, + 66, 43, 38, 38,134,136,139,139,163,173, 40, 88,113,147, 38, 77,124, 4, 2, 1, 0, 20, 55, 54, 23, 20, 69, 77,117,117,117,149, +207,155, 55,175,107, 96, 96,160, 97,234,212,169, 15,178,179,179,231,215, 76,211,172, 89,179,239,126,254,249,103,164,167,167,103, + 47, 93,186,244,114,113,113,113, 99,215, 49,155, 75,211, 88, 93,105, 29, 43, 58,114,228, 72,171,139, 23, 47, 78,249,233,167,159, +196,159,124,242, 9,231,179,207, 62, 27, 5, 96,133, 37, 18, 38,147,169,169,107,184,176, 46,120,122,122, 26,152, 76,102,189, 65, +226, 98, 0, 1,159,203,237,185,228,226, 69,218,144,157,173,249,109,213, 42,251, 77,127,253,181,200, 68,211,238, 18,137, 4,145, + 93,186, 84,240,153,204, 34,121, 65, 1, 37,121,227, 13,102,214,137, 19,110, 90, 46, 87,186,103,207, 30,101,113,113,241, 33,139, + 38, 60,130, 80, 81, 52,109,176,107,226,107, 26, 62,164, 79,248,205, 27,119, 82,237, 37,110,140,182,109,194, 91,165,166,103, 39, +130,162,140, 4, 65,168, 44,241, 56, 58, 58, 6, 22, 23, 23, 67,165, 82, 65, 44, 22, 99,245,234,213,240,240,240,128, 70,163, 65, + 82, 82, 18,221,164, 73, 19,226,226,197,139,104,210,164, 9, 20, 10, 5, 12, 6, 3,202,203,203,229,122,189,190,190,181, 25, 11, + 25, 12,230,239, 12, 6,241, 17, 65, 16,104,209,194, 47,103,253,250,245, 6,138,162, 16, 18, 18,130,183,223,126, 27, 7, 14, 28, + 64, 82, 82, 82,149,229,201,208,180,105,179, 28, 6,131,104, 90,169,149,158,219,170, 83,181,180,143, 84, 42, 29,250,156, 55, 13, +195,203,203,107,148,191,191,255,148,247,222,123,207,196,229,114,161, 86,171,171,174,133,105,192,128,129,101,131, 6,197, 56, 30, + 59,118,172,193,124, 26, 12,134, 76,165, 82, 57,110,230,204,153,177, 27, 55,110,116,158, 63,127, 62, 40,138, 2, 77,211, 32, 73, +178,122,209,111,138,162,112,240,224, 65, 60,122,244,232,187, 90, 34,203, 6, 27,108,176,225,127, 2,141,208, 34,255, 68,120,226, +233,176, 33,106,139,173,255,122,100,120, 38,147,185,233,244,233,211,109,186,117,235,198,234,221,187,119,248,201,147, 39,195,243, +243,243, 31, 84, 90, 15,194,123,247,238, 29, 46,145, 72,176,102,205, 26, 13,147,201,220,244,156,127, 83,221,233, 21, 20, 20,220, + 6,176,242,192,129, 3,203, 39, 78,156, 8, 15, 15,143, 80,153, 76,246, 95, 45,179, 3,143,215,118,236,234,213, 36,219,100, 98, +172, 91,185,210, 97, 85, 66,194,242,189,127,254,201,122,243,205, 55, 9,154,166,113,255,222, 61,193, 15,107,215, 10,223, 29, 50, + 36, 59, 45, 51,147, 60,124,234,148,169, 48, 63,191, 36, 95,161, 88, 8,160,196, 18,191,201,100,186,150,145,145,225, 21,217,253, + 77,239, 11,127, 61,184, 51,124,200,192, 94,108, 22,131,120,152,253,228,150,167,135,155,227,249,132, 51, 90,147,201,116,205, 18, +143, 90,173,206, 34, 73,210,133,166,105,241,249,243,231, 33, 22,139, 81, 90, 90, 10,147,201, 4,131,193, 96,208,104, 52,252,226, +226, 98,232,116, 58,232,245,122, 56, 56, 56,224,254,253,251,133, 36, 73,158,171,143,211,108, 54,143,229,241,120,223,176,217,108, + 46,135,195,145,222,186,117, 11, 42,149,170,153,147,147,211, 10,146, 36, 33,149, 74,113,241,226,197,207, 29, 28, 28,178, 1,128, +207,231,131,203,229,185,234,245,122, 18, 64,254,243, 94,115,154,166,159,187,190, 60, 60, 60,124, 5, 2,193,146, 47,190,152, 19, +210,186,117, 27, 40, 20, 10, 80, 20, 5,145, 72, 4,141, 70, 3, 7, 7, 7,116,238,220, 57,107,201,146, 37, 50,154,198, 4, 75, + 98, 80, 46,151, 43, 88, 44,214,212,137, 19, 39,126, 19, 24, 24,216,130,166,105, 4, 4, 4,160,111,223,190, 56,113,226, 4,210, +211,211,161, 86,171,205,215,175, 95,255, 67, 38,147, 29,181, 61,110,109,176,193, 6, 27, 94, 59,252,205, 55,235, 25,139,214,127, + 19,114,185, 92,145,154,154,122, 50, 49, 49, 49,102,228,200,145, 56,127,254,252, 24, 0, 51, 1,128,199,227,141, 25, 57,114, 36, + 18, 19, 19,145,154,154,122, 82, 46,151, 43, 94,198,127,114,185, 92,157,193,240,212, 56,197,231,243,249,141, 60,189, 89,229,144, + 33, 0, 52,107,224, 88,253,166, 17, 22,203,179,101,255,254,172,210, 59,119, 84, 91,110,220,248, 38, 54, 54,150,213,181,107, 87, +194,100, 52,194, 76, 81,240,243,243, 35,122, 71, 69,137,126,143,141,117, 49,171,213, 23,191,253,226,139, 75,155,199,142,173,200, +168,244, 3,179, 4,189, 94,191,118,202,228,113, 81, 9,231, 47,121,135, 6,191,225,114,242,116,194,109, 87, 87, 71, 97,160,191, +191,168,184,180,196, 60,127,238,231, 44,189, 94,191,206, 18,143, 86,171, 61,120,230,204,153, 33, 62, 62, 62,226, 7, 15, 30,192, + 96, 48,192,108, 54,163,119,239,222,160,105,154, 7,128, 98,177, 88, 72, 77, 77,133,209,104,148,103,100,100, 72, 31, 62,124,200, + 3,176,204, 66,254,114,244,122, 61, 82, 82,158,142,218, 53,105,210,164, 79,116,116, 52, 72,146, 68,255,254,253,113,248,240,225, + 62, 41, 41, 41,171,106,106,190, 23,173,243, 74, 11, 89,136,151,151,215,129,202, 67, 86, 57,193,123,123,123,135,251,249,249,109, + 92,182,108, 25,167, 73,147, 38,160,105, 26,206,206, 78,208,104, 52, 40, 42, 42, 70,104,104, 40,124,124,124,176,108,217, 50, 0, +248,195, 90,139,155, 84, 42,125, 40,149, 74, 71,202,229,114, 78, 89, 89, 89, 68,159, 62,125,214, 68, 69, 69,225,246,237,219,184, +116,233,210,187, 60, 30, 79,110, 52, 26, 73, 15, 15,143, 9, 4, 65, 56, 24,141,198, 93,197,197,197, 50,219,179,203, 6, 27,108, +176,225,181, 64,149,143, 22,106,124, 55,206,162, 21, 18, 18, 34,202,206,206,254,176, 89,179,102, 92, 0, 16, 8, 4,161,126,126, +126,179, 51, 51, 51,203, 27,155, 27,141, 70,179, 55, 54, 54,182,239,143, 63,254,200, 25, 56,112,224, 27, 7, 14, 28,232, 0, 0, + 3, 7, 14,124,195,222,222, 30,177,177,177, 70,141, 70,243,210, 98, 34,153, 76,166,110,237,219,183, 71, 73, 73, 9,178,179,179, + 27, 53, 44,115,244,232, 81, 33,158,250,101, 53,120,172, 33,144, 6,131,179,147,183, 55, 35, 63, 33,193, 88,162, 82,121,118,235, +222,157, 48, 25,141, 96, 48, 24, 40, 46, 46, 70,110,110, 46, 28,157,156,136,212,140, 12,187,173,115,230, 28,109,214,186, 53,215, +108, 48,184, 54, 34,155,234, 34,121,225, 71,159, 78,253,228,224,174, 93,127,136,203, 84,170, 71, 2,129, 80,207,227,113, 60,166, +125,250,169,185,164,164,100, 52,128, 10, 43,120,150,237,218,181,171,127,255,254,253,239,249,250,250, 74, 20, 10,133, 71, 89, 89, +153,185,164,164,132,137,167,190, 86, 4, 0, 36, 36, 36, 64,165, 82,145,102,179,249, 34,158,198,194, 50, 88,155,209,166, 77,155, + 58, 70, 68, 68,244, 16,139,197, 80, 42,149,112,117,117, 69,155, 54,109,122, 48,153,204, 95,115,114,114,148, 47,179,213,199,199, +199,219,211, 52,221,137,166,105,244,239,223,223,170,115,204,102,243,199,209,209,209, 28,130, 32,160,213,106,192,231, 11, 32, 18, +217,193,222,222, 1,129,129, 65,144, 74,165,232,215,175,159,225,209,163, 71, 27,100, 50, 89,163,219,168, 82,169, 28,220,185,115, +231, 89,147, 39, 79, 6, 73,146, 24, 60,120, 48,242,242,242, 86,101,101,101,237,241,242,242, 26,245,241,199, 31,139, 93, 93, 93, + 49,107,214, 44, 1,128,175,109,207, 46, 27,108,176,193,134,215, 2,181,125,180,254,110,209,106,104, 76,212,195,195, 35,146, 32, +136, 5, 90,173,150, 91, 53, 36, 67, 16, 4, 87, 44, 22, 31,214,106,181, 75,101, 50, 89,163,156,226,202,202,202, 84,143, 31, 63, + 62,124,237,218,181, 17, 67,135, 14, 69,124,124,252,104, 0, 24, 58,116, 40,174, 93,187,134,199,143, 31, 31, 46, 43, 43, 83,189, +140,146,123,123,123, 15,232,222,189,251,208,246,237,219, 35, 46, 46, 14,102,179,249,106, 99,206,175, 57,195, 16,117,204, 58,172, + 58,102, 21, 25,147, 9,130, 32, 64,146, 36, 0,160, 72,161, 64,122, 90, 26, 74, 74, 75,161,215,233,160,214,104,204,129,205,155, +107,149, 6, 3,155, 0, 26, 59,246,149,147,120,243,122,174, 70,173,150,184, 58,187,104,133, 66, 30,202, 84, 74,206,173,155,215, + 43, 0, 60,178,146,195, 64,211,116,247, 19, 39, 78, 44,100, 50,153, 35,237,236,236, 48,101,202, 20,102,143, 30, 61,192,225,112, +160,215,235, 81, 86, 86,134,216,216, 88,133,217,108,110, 81,121,142,157, 80, 40,220,206,100, 50,159,148,151,151, 47,176,248, 7, + 6,195,192,152,152, 24,150,193, 96,192,183,223,126,139, 69,139, 22,161,127,255,254,172,155, 55,111, 14, 4,176,235,101,181,120, +138,162,208,167, 79,159,154,206,240, 41,214,156,199,102,179,195,253,253,253,161, 80, 40,160, 80, 40, 32, 22,139,225,229,229, 5, + 15, 15, 15,172, 90,181,138, 94,179,102,205, 73,163,209,184,161,168,168,168,240, 57,218,226,132,209,163, 71, 79, 24, 49, 98, 4, + 42, 42, 42,112,237,218, 53,116,233,210, 5,203,151, 47,247,188,120,241,226,204,246,237,219,131,205,102,227,252,249,243, 32, 73, + 50,207,246,220,178,193, 6, 27,254,215,240,154,250,103, 53,136, 6, 45, 90, 62, 62, 62, 78,102,179,249,243,232,232,232, 62, 67, +134, 12, 65,191,126,253,158,249,125,215,174, 93,246,251,247,239, 95,186,118,237,218,254, 70,163,113, 89, 99,134,250, 40,138, 58, +184,107,215,174,129,111,190,249,166,176,103,207,158,126, 0,192,227,241, 12,187,118,237,210, 80, 20,117,240, 57,202, 82, 21,220, +177, 16, 0,188,188,188, 90,177, 88,172,161, 3, 6, 12,104,245,209, 71, 31, 33, 41, 41, 9,177,177,177, 15, 3, 3, 3, 47, 23, + 22, 54,170,143,204,182, 48,235,112,169, 37,235, 22,147,203, 45, 46, 43, 40,112,178,243,245,101, 59,219,219,203,226,226,226,124, +162,162,162,136,188,188, 60,148,150,150, 66,167,211,225,230,205,155, 20, 11,200, 97, 57, 59, 19, 57,215,174, 17, 76, 46,183, 24, +207,206,228,179, 8, 31, 79,231,128,175,230, 78,106,166,211,235,194,148, 74, 37,201, 98,179,217, 77, 60,156,242,210, 30, 53,106, + 36, 78, 47, 20, 10, 35, 0,176, 40,138,210,184,184,184, 8, 79,159, 62, 13, 46,151, 11,130, 32,208,178,101, 75,240,249,124, 14, + 77,211,185, 0, 96,111,111,207,221,180,105,147,227,168, 81,163, 46, 89, 34,110,219,182, 45,155,199,227,189, 21, 24, 24,136,107, +215,174,225,193,131, 7, 57,215,174, 93,107,218,182,109, 91,248,250,250,190,229,233,233,249,231,237,219,183, 77, 47,163, 97, 63, +157,177,218,120,103,120,179,217, 76, 17, 4, 1, 6,131, 1,138,162,160, 80, 40,208,162, 69, 11,172, 95,191, 30,171, 87,175,254, + 86, 38,147, 29,121,158,252,132,132,132,112, 90,180,104, 49,122,196,136, 17,200,204,204,196,210,165, 75,139,100, 50, 89,194,169, + 83,167,134, 77,158, 60,153,217,165, 75, 23, 20, 23, 23,227,247,223,127, 39,111,221,186,245, 91, 65, 65,193, 14,219, 35,215, 6, + 27,108,176,225, 95, 44,180,124,124,124, 70,112, 56,156, 89,239,188,243, 14, 51, 40, 40, 8,133,133,133,112,112,112, 48, 17, 4, +193, 6, 0, 39, 39, 39,147, 64, 32,192,164, 73,147,208,186,117,235,200, 57,115,230,116, 97,177, 88,235,165, 82,233,118,107,254, + 88, 46,151,107, 24, 12,198,190, 41, 83,166, 44,187,115,231,118, 11, 0,248,235,175,191, 30, 75,165,210,185,114,185, 92,211,200, +114, 84, 5,197, 36,120, 60,254,141,128,128,128,172,136,136, 8,135, 33, 67,134, 64, 44, 22, 35, 49, 49, 17, 63,252,240, 67,134, +193, 96, 88,120,225,194, 5,242,191,125,145, 73,189,190,224,214,161, 67,246, 61,222,127,223, 97, 90,116,244,202, 79,166, 76,249, +241,171,175,190, 98, 5, 5, 5, 17, 26,141, 6, 55,110,220,160,247,239,223,111,250,253,155,111, 86, 67, 36, 98, 95,219,191,159, +107, 48, 24,114, 26,105, 45,233,222,181, 91,100,208,202, 31,215, 66,167,173,192,141,171,199, 80, 90,170,192,166,205, 7,130,188, +189,233,238,249,249,249, 23,172,229, 34, 8, 34, 48, 62, 62, 94, 66,211, 52,184, 92, 46,150, 44, 89, 2, 47, 47, 47, 56, 56, 56, +160,188,188, 28, 51,103,206,116,156, 62,125,186, 35, 0, 36, 37, 37, 85,135,103,176, 4,169, 84,218,121,210,164, 73,246, 36, 73, +226,228,201,147, 6,130, 32, 22,156, 57,115,230,215,150, 45, 91,114, 35, 35, 35,237,119,236,216,209, 5,192,249,151, 37,180,158, +243,188,135,167, 79,159,110, 63,114,228, 72,154,205,102, 19,101,101,101,112,114,114,194,250,245,235,213, 50,153,236,216,115,183, + 1,146,228, 10,133, 66, 46, 77,211,216,183,111, 31,114,114,114, 62, 46, 46, 46, 46, 48,155,205, 7, 62,255,252,243,217, 65, 65, + 65,205,211,210,210,114,202,203,203,151,203,229,242, 44,219,163,201, 6, 27,108,176,225,181, 66,149, 19,124,213,236,195, 99,120, + 58,156, 88,191,208, 50,155,205,147, 78,157, 58,197,164, 40, 10,155, 55,111,198,173, 91,183,104,161, 80,184, 64, 40, 20,254, 44, + 16, 8,204, 90,173,118,226,248,241,227, 71, 45, 90,180,136, 17, 25, 25,137,107,215,174, 49, 90,180,104, 49, 26, 64, 77,161, 21, +133, 6, 98,109, 40,149,202,155,133,133, 5, 45,106, 4,168,108,193,227,241,111, 90, 40, 76,109,206,218, 65, 49, 59, 46, 89,178, + 68,237,233,233,105,120,240,224, 1, 54,110,220, 72,221,186,117, 43,129,203,229,110,146,201,100,122, 43, 57, 95, 6,170, 57,185, + 36,153,184,115,246,236,144,118,131, 7, 83,227,102,205,170,224, 8, 4,159,173, 92,187,118, 78, 89,121,185, 23, 8,130,118,117, +116,204,217,188,100,201,210,254,111,189, 85,145,116,225, 2,255, 78,124, 60, 91,108, 50,221,109, 76, 62,243,243,243, 47,156, 63, +127, 9,219,182,252, 8,163, 81, 15, 89,254, 83,157, 86, 84,172,132, 5,145,245, 55, 78,146, 36,149,195,134, 13,227, 0, 16,124, +240,193, 7, 92,185, 92,142, 55,222,120, 3, 0,160, 82,169,112,236,216, 49, 4, 7, 7, 3, 0,238,223,191, 95,189,109, 41,159, + 34,145,232,173, 46, 93,186, 32, 39, 39, 7, 73, 73, 73,103,101, 50, 89, 49,128,179,121,121,121, 3,219,183,111,143,131, 7, 15, + 14,106, 64,104, 53,170,142,172, 20, 90,127,227, 20, 8, 4,115, 15, 28, 56,240,241,213,171, 87, 71,206,158, 61,155,221,187,119, +111, 0, 64,121,121,185, 6,128,249,121, 56,107,230,201,100, 50,129,162, 40,184,184,184,168,139,139,139, 33,151,203,179,228,114, +249,148, 71,143, 30, 61, 23,231,203,104,159, 54, 78, 27,167,141,211,198,249, 15,225,252, 55,192,250,200,240, 52, 77,147, 20, 69, +225,252,249,243, 56,112,224,128,217,104, 52, 78,144,201,100,247,107, 36, 89,155,152,152, 24, 63,108,216,176,237,105,105,105,204, +228,228,100,208, 52,109,110, 76,110,116, 58,157,137, 32,254,126,236, 69, 75,185,109,219, 54, 20, 20, 20, 24,243,242,242,206,144, + 36,121,240, 5,103, 47,190,240,172,195,109,128,254, 61,131,225,204,162,174, 93,251, 44,140,143,231,141,251,242, 75,253,152,143, + 62,250,220,108, 48,152,152, 28, 14,197, 21,137, 24,102, 30,143,157,116,225, 2,127,205,228,201, 46, 90,189,254,100,108, 35, 28, +204,171, 44, 90, 61,122, 68, 98,204,184, 25,208,214,176,104, 93,187,153, 14,189, 17,141,178,104,233,245,250, 48,153, 76, 6, 62, +159,159, 11,192,227,195, 15, 63, 4, 69, 81,208,106,181, 40, 47, 47,135, 84, 42, 85,126,244,209, 71,230, 74,241,196, 26, 58,116, +168,131, 53,188,126,126,126, 94,108, 54, 27, 39, 79,158, 4,155,205, 62, 6, 0,108, 54,251, 88,124,124,252,192,119,223,125, 23, +222,222,222,126,153,153,153, 4, 44,248,167, 73,194, 6,239,165,129, 0, 16,240,127,106,130,131,191, 56,108,240, 61, 2,200,168, +140, 26,159,210,182,109, 91,192, 74,191,172,154,168,156,220,177,218,100, 50,253, 57,103,206,156, 41, 29, 59,118,236,187,104,209, + 34, 2, 0,243,101,220,129, 36, 73,190, 80,232, 9, 27,108,176,193, 6, 27,254,209, 86,173,191,161, 94,161, 69, 16,196,230,238, +221,187, 79, 0,192, 36, 8, 98,163, 84, 42,189, 95, 59,141, 76, 38, 75,247,242,242, 90,209,188,121,243,137, 0,104,130, 32, 54, + 55, 50, 83,133, 52,141, 31, 24, 12, 98,206, 83,113,247, 92, 1, 42,171,150, 58,153, 3,128, 96, 48,152,219,111,223,190,253,101, +110,110,174,194, 74, 11, 68,131,120, 25,179, 14, 1,224, 15, 32,235,157,156,156, 83,179,194,195,163,250, 79,158,140, 86,253,251, + 59,120, 53,109,106,214, 26,141,212,253,203,151,137,171,251,246,113,238,196,199,179,181,122,253,201,131, 64,110, 99,243,153,159, +159,127,225, 92,194,133,211,195,135, 14,236,235,215,220,235,169,104,200,146,162,168, 68,121,186, 49, 34,171,150,232, 29,188,126, +253,250, 35, 28, 14,135, 85,115, 41, 27,163,209, 88,162,215,235,195, 0,160,180,180,212,107,243,230,205,187, 25, 12, 70,142, 37, +190,228,228,228,195, 11, 23, 46, 28,154,157,157,125, 58, 47, 47, 47, 27, 0,114,115,115,179, 77, 38,211,118,153, 76, 54, 52, 39, + 39,103, 63,172,152, 4, 64, 3, 1, 73,151,255,108, 9, 0, 97, 93, 71, 32,233,242,159,124, 0, 45,195,186,142, 0, 0, 60,239, + 90,134, 53, 81, 25, 90, 97,193,181,107,215,118,245,237,219,119, 60, 94, 32,166, 23, 0, 24, 12, 6,147, 86,171, 37,205,102, 51, +203,104, 52,210, 6,131,193,100,123, 38,217, 96,131, 13, 54, 88, 15,154,166,219, 3, 16, 87,238, 86, 25, 80,196,181,182, 13,168, + 92, 46,176,234,241, 91,185,175, 32, 8,226,102, 13,142,234,227, 86,156, 11, 0, 69, 0,238, 17, 4, 81,159, 17,100,115,125,251, +245, 10, 45,169, 84,186, 31, 86, 44, 26,109,109,186, 6, 48,175,114,157, 56,224,249,215,118,171,230, 48,155,205,133,185,185,185, + 47, 92,161, 12, 6, 35,107,208,160, 65,141, 74,111, 41,205, 30, 32,231, 83,189,126, 71,220,186,117,109, 78,110,220,232,109, 38, + 73, 87, 2,160,153, 92,110,177,193, 96,200, 22,155, 76,119, 27,107,201,122,198, 26,243, 56,191, 95,230,227,124,248,251,251,211, + 15, 31, 62,124,106,235,121, 49,220, 85,171,213, 62,150,154,128, 70,163,137,180, 82, 12,254,145,159,159,255, 71, 29,130,125,183, + 76, 38,219,109,109,166,170, 23,149, 6, 24, 20, 65, 13, 15,235, 58, 98, 31, 0,170,106, 81,233,151,137,130,130,130, 52, 84,198, +121,123, 17,228,228,228,232, 9,130,216,249,195, 15, 63,124,112,231,206,157, 61, 82,169, 84,111,123,108,218, 96,131, 13, 54, 52, + 78,100, 17, 4, 17, 87,185, 31, 83,105, 20,138,171,189, 93,149,166, 42, 93,205, 52, 85, 28,181,143, 55,116, 46, 0,204,157, 59, +247,203,165, 75,151, 10, 1, 88,187, 24,243,115, 47, 42,253,170, 80,248, 15,225,168, 41, 10,182,188,138,130,174, 3, 12, 32,201, +235, 32,107,248,228,155, 94,174,113,227,225,195,135,196,191,249,134,171, 90, 84,186, 6,194, 95,135,124,103,103,103,175,247,245, +245,221, 36,149, 74, 73,216, 96,131, 13, 54,216,208, 24,136,235, 18, 70,245,136,178,152,134,126,127,230,197,189,142,116,117,237, + 19, 4, 17,183,116,233,210,152, 70,228,183,218,162,197,176,213,157, 13, 54,252,247,240,255, 49,235,213, 6, 27,108,176,193,134, +186, 81,219,138, 85, 37,190,106,239,207,157, 59,247, 75, 52, 60,226,228,137,167, 86, 44,207,202,253,106,127, 45, 2, 79,103, 14, +212,133,198,204, 38,136,122,142,242,157,177,113,218, 56,109,156, 54, 78, 27,167,141,211,198,249, 63,199,105,137,251, 76, 29,130, + 40,186,190,161,190,134,134, 17,107,111, 91, 58,215, 82, 90,130, 32,234, 11,243, 83, 53, 84, 88,251,251,149, 35,202,198,105,227, +180,113,218, 56,109,156, 54, 78, 27,167,141,243, 69, 64,211,116,123,154,166,163,241,116,194, 20, 77,211,116, 52, 77,211,253,231, +206,157, 59,175,234,216,220,185,115,231,209, 52,221,187, 42, 93,101,154,234,115,170,142,213,254,174,125,172,161,180, 13,100,113, + 66,173,237,234,253,127,138,143,150, 13, 54,216, 96,131, 13, 54,216, 96, 67,157,168,154, 49, 88,195,218,164, 0,112,127,233,210, +165,165, 53,124,167, 20, 0,238, 2,104, 93,153, 78, 81, 41,210,106,250, 86, 25, 42,247, 13,117,164, 49, 88,147,182, 30,108,174, +103,219, 38,180,234, 67,107, 15,198, 55,190, 77, 36, 17,149, 21, 0,154,162, 0, 0, 84,101, 12, 36,186, 42, 24, 18, 69,129,166, +105, 72,229,101,137,247,229,248,234,121,255, 47,208, 11, 46, 18, 62,127, 53, 69,211, 93, 43, 15, 93, 80, 22,235,103, 36,169, 80, +102, 45, 71,176, 59, 66,248, 12,124, 78,209,104, 5, 0, 12, 2,247,116, 20, 86,164, 22, 54, 62,158, 84, 93,237, 60, 76,140, 9, + 92,129,240, 29, 71, 39,103,255,210,210,162, 12,163, 78,255,103,178, 2,155,208,248,117, 25,225,231,140, 78, 20,141, 47, 1, 48, +216, 12,172,202, 40,177,122, 38,135, 13, 54,216, 96,195,139, 90, 71, 94, 40, 46, 30, 65, 16,230, 58, 56,137, 23,228,180, 5,216, +179, 66,108,213,113,248,175, 58,142,221,252, 39,229,187, 81, 66, 43, 84,140,201, 32,176, 24, 0, 13, 26, 95, 39, 43,240, 75,163, +206,247, 68, 20,159,201,220, 10,128,169, 51,154,103,209, 20, 46,214,121, 49, 25,232,198,231, 48, 87, 1,160,116,102,243,216,100, +153,245,254, 98, 97,222,232,207,162, 24, 59, 41,154,102,155, 41,122, 59,104,196,217,113,112,229,122, 62,116,141,201,171,111, 19, + 73,196,161,191,100,125, 19,126,153,134,142,173,222, 0,109, 38, 1,202, 4, 97,228,231, 56,251,211,135,232, 24,226, 11,154, 50, + 1, 20, 9,187, 1, 43, 49, 32,220,145,190, 47,127,190,117,176, 3,189,224,210,212, 77,242, 96,203,150,173, 30, 94,126,161, 4, + 69, 26,145,246,215,233, 81,211,231, 44,236, 21, 6,101,184, 53, 98,171,149, 39,198,249, 54, 11,250,124,198,226, 31,153,158, 94, + 62, 34,202,164, 39, 11,178, 82,218,174, 93,190,112, 63,135,145,179,234,158, 12, 91,173,109,203,161, 98, 76,100,241,184, 35, 4, +124,145,191, 70, 83,254,208,108, 52,253,201, 96,179,250,175, 88,185,186, 77,143, 62, 3,237,204,229, 5, 12, 19,133,208,189,123, +118, 55, 93,183,126,195,192, 7, 50,243, 91, 0,168,198,148,153,162, 49, 39,125,199,132,129,108, 22,147, 8,249,120, 11, 19, 32, +159, 75,104,133, 72,240, 30, 65,195, 98,120, 9,154,192,165, 20, 57,254,120,158,255, 8,150,224, 87,130, 70, 32, 8,236, 35,104, +236, 78, 86, 64,110,123,228,217, 96,195,191, 11, 12, 6, 35,129,162,168,158, 47, 89, 24,116,162,105,250,186,237,234,254,111,163, +113, 22, 45, 2,223, 38, 61,202,115,134,217,136,176, 64,191,111,128,198, 9, 45, 62,147,185,253,102, 70,161, 7, 72, 35,182,124, + 55,101,143,193, 4,144, 38, 35,204,164, 9,102,210, 4,146, 52,194,108, 50,129, 54,233,177,240,183, 4,192, 80,142,136,240,128, +237,128,217,211,218,255, 96,211,140,157,137,151, 79,187, 16, 6, 37,254,248,101,233,167,121,138,138, 79,207,220,147, 22,133, 74, +180,243,146,229,248,189, 49,130, 32, 97,227, 52,196, 30, 60,246,100,205,175,234, 84,138,166,225,226, 32, 8, 26, 21,147,228,179, +227,112, 66,222,234,237,186, 84, 0,112, 20,113,131, 70,223,203,240,125,145, 74,144,240,249,171, 55,109, 88,231,225,233, 42, 32, +200,171,203, 64,154,205,240,105, 26,205,156, 55,117,148,231,183, 63,109,253, 9, 42,253,152,134,206, 15,146, 32,180, 89,243,144, + 89,219,143, 93,245, 85,171,228,134,211,187,190,124, 4, 61, 76, 30,222, 33,236,111,150,254,200,156,255,197,180,153, 6,243,147, + 27,105,114, 36, 91,122,214,132, 72,112,120,233,178,149,173,122, 13,136,177,163, 42, 20, 76,157,186, 34,112,203,111, 91, 23, 7, +183,234, 32,140, 12,111,194,145,255, 57,137,208,150,151,192,200,224,243,122,133, 69, 57,104, 63,120,215,180,101, 91,236,212,100, + 57,214, 54,166,204,102,250, 63,109,143,162,158, 63,234, 58, 65, 35,242,206,245,132,137,102,233, 77,208,102, 19, 96, 54, 86,127, +195,108, 2, 77, 61,253,238, 56,233, 55, 0,207, 39,180, 24, 52,250,158,185,124,211,179,176, 64,214,254,167,149,223,207,163,111, +222, 60, 1, 51,118,166,148,224, 66, 99, 5,166, 13, 54,216,240,143,182,152,144, 52, 77,179, 94, 50,231, 64,154,166,143,191, 32, +205,231, 0,198, 85,110,111, 5,176,226, 37,100,173, 9, 0,143,202,237, 2, 0, 79,108, 45,224,133, 80,219,249,253,185,227,104, +241, 65, 83,192,190, 33, 0, 32,104,108, 46,104,128, 15,130, 9,152,212, 24, 60,160, 15,220, 36, 30,128, 73, 3, 24, 53,128, 73, + 11,152,212,128, 73,139, 34, 89, 14, 96, 84, 3,153, 39, 64,210, 52,175,209,197,213, 43,129,244, 63,209,187,173, 47,196,142,124, + 76, 27, 28,234,182,249,100,250,214,173,167,211,162,146,229,120,199,170,188,210, 52, 58,182,244,199,154,173,234,212,163,183, 21, +253, 0, 96, 96,107,215,147, 29, 67,155,250,172,222,174, 75, 61,126,191,180, 63, 0,244, 15,115, 56,209, 33,200,211,151,194,243, + 91,125, 41,154,142,244,106,230, 79,152,239,108, 2,165,122, 2,149, 74,139, 39, 89, 59,224,236,221,142, 97,166,208,221,210,249, + 2, 38,230,126, 54,255, 7,182, 70, 85,104,160,140, 10,179,152, 89,202,100,113, 41, 2,249, 23,244, 21, 84,153,121,198,132, 15, +201, 89, 95,125, 55, 23,192,168,134,120, 66, 37,152,186,106,213,234,150, 93, 34,130, 37, 5,251,167, 17, 21,165,133, 32,153, 66, +222,224, 55,187,192, 41, 32,148, 42, 60,191,138,224,250, 69,193,201,213, 15,249, 87,119, 33,251,250, 1,162,107,219,161,188,223, +255,224,124, 0, 24,235, 20, 90,254,110,232,218,175, 91,135, 61,126,190, 94,158, 52, 77,129,162,104,208,148, 25, 21, 58, 19,230, +237,205,132,217,108,198,176,126, 93,123,139,184, 4, 77, 81, 20,104,154, 66, 94, 65,177,230,220,141,212,222,153,165,184, 97,141, +165,170,117,167,158, 93,239, 37, 94, 15, 54,165, 31, 69,196,168,165,169, 4,112,185, 70,155,235,122,251,212,239,193,192,111,207, +175,229, 8,152,179, 79, 46,131,111,183, 9,204, 77,127,156, 20, 43, 21,249,163,247,239,216, 48,252,151, 77,219, 30, 52,118, 0, + 0, 32, 0, 73, 68, 65, 84,155, 98, 83,229,152,100,123,190,216, 96,195,191, 3, 52, 77,191,116,177,149,147,147, 35,125, 17,177, +229,237,237,221, 45, 63, 63,127,121,149,183, 10, 65, 16,203,155, 53,107,182,240, 63, 47,170,207,188,235, 41,205,102,243,168,252, +252,252,139, 13,113, 70, 71, 71,123, 29, 59,118,172,121, 13,206,230, 0,154,215,149,214,201,201,201,220,185,115,231,236, 99,199, +142, 73,109, 45,228,185, 4, 87,163,133, 86,106,238,159,211,218,234,101, 21, 0,144,106, 69,250,103,134,252,116, 38,243,178,109, +139, 63, 92, 22,214,204, 5,229,106, 3, 78,223,202,134,217,108,130,153, 36, 43, 45, 91, 36,204,164, 9,253, 90,187,161,179,110, + 18,214,198,165,129, 52, 83, 75, 27,226,172, 13, 35, 77,189,215, 38,106,228, 94,138,162,185, 60, 54, 67, 25,232,227, 42,153, 53, +172, 53, 99,218,224, 48,104,141,228,200, 93,231, 31,157, 75,145, 99,139, 85,156,212,223, 67, 30,209,117, 29, 51,147, 22,203,222, +128, 53,170, 99, 84,143, 72, 7, 90,175,132,169, 40, 19,229, 26, 19, 50,139, 77, 40,208,149,129, 71,200,172,226,164,104,180,106, +226,237, 41,188,178,231,139, 44, 87,166,138, 37, 97,146, 28, 46,131,132,153,162,153,116, 89,178,222, 37,184, 15,187,202,111,171, +161,124, 10,132,246, 31,118,235, 27,237,152,187,107, 2, 33, 8,236, 7, 73, 91, 31,100, 93,220, 6,249,173, 56, 20, 75,179, 9, + 7, 93, 25,220, 93,223,192,128, 81,239, 96,197, 59,237, 81,174, 42, 7, 83,246,200,145,203,230, 57, 1,198, 58, 57,105, 51, 70, +173,250,225, 59, 79, 22,147,241,244,122, 86,125,204, 38,104,245,122,192, 76,130,207,162, 64,208, 85,191,153, 96, 54, 25,133,173, +134,126, 49, 5, 48,223,176, 84,246, 20, 57,254, 8, 21, 35, 18,148, 41,152, 54,105, 65, 0,151,147, 21,255, 17, 63, 33, 18,188, +215,174,223, 71,145, 52,129, 75,207, 83, 71,225,174,136,137,104,110, 39, 18,169, 82,241,100,223,167,120, 4, 62,237,222,101, 28, +222,251,120,170,112,243,230,205,131, 0,122, 50,158,245, 81,123, 21,139,172,218, 56,109,156,175, 37,167,131,131, 67,139,102,205, +154, 45, 52,153, 76,221, 56, 28,142,187,209,104, 4, 69, 81, 5, 92, 46,247, 82,118,118,246, 18,149, 74,245,248,159, 86,246,123, +247,238, 53, 70,108, 89,228,100,179,217, 72, 75, 75,123,216, 8,177,117,166,214,249, 59, 47, 95,190,140,189,123,247, 2, 0,210, +211,211, 17, 16, 16, 32,170,235,196,172,172, 44, 81,143, 30, 61,118, 2,240,105,136,243,254,253,251, 45,142, 30, 61,138,125,251, +246, 1, 0,210,210,210, 16, 24, 24, 88,103,102, 46, 95,190,204,124,255,253,247, 91, 0,144,254, 23,234,232,223, 32,178,106,126, +255, 71,104,197,197,197,209, 49, 49, 49, 68,237,237, 58,144,233,235,204,109, 11,157, 25, 0, 50, 27,155,131,148, 66,252,176,102, +199,169,254,103,247,173,239,198,231, 48,176,104,203,172, 60, 69, 73,121, 39, 22,241,116,248,133,164,193,112,182,227, 94, 91, 58, +186,181,111,105,133, 14, 71,254,202,191,152, 44,111,156,137, 52, 89,134,120,128,114,122,186,103,134, 78, 43, 15, 28,189, 34,126, +247,238,185,253, 91,205, 24,220, 10,135,175,102,207, 0, 72,139, 81,223,105,138, 2, 77,145,213,206,239,149,175, 14, 0,245,236, +162,192, 20,232,167,199,168,198, 89,180,186, 3,172, 82, 9, 6,216, 11,185, 63, 79,156, 56,222,193,164,200, 64,137,129,131,188, + 82, 29, 10,180,108, 84,176, 36,200, 79,189,111,102, 16,136,183,104,114, 33,160,162, 73,157,147, 51,215,142, 17,222,103,138,183, +234,228,151,165, 92,130,100, 58,188,253,173, 83,209,217, 31,179, 73,181, 66, 77, 16,176, 24,126,222,209,209, 41, 64, 87,156,205, + 84,150, 22,193,201, 35, 12,253, 71,198,224,235,232, 80,148,171,212, 80,148, 92,163,253, 61, 29,136,156, 75,177,152, 63, 32, 4, +197,133, 50,232, 77, 0,161,214,151,232, 12,186,138,122,175, 35, 3,155,166,255, 31,123,231, 29, 30, 69,181,134,241,119,202,182, +108,122,217,244, 66, 64, 66, 8, 4, 2,210,123, 71, 32, 92,138, 84, 81,218,165,136, 40, 32,136, 20, 17, 4,164,168, 72, 80,154, +128, 10,130,116,164, 4, 20,136,210, 75,164,167, 65, 32, 1,210,123, 47, 91,103,230,220, 63, 82,110, 2, 41,187, 9, 54,156,223, +243,204, 51, 91,102,223,157,153, 51, 51,231,157,239,156,243,205,188,249, 99,189, 92, 84,230,101,131, 10,136,192, 35,192,175, 17, +250,118,107,143,179,151,175,224, 70, 88, 52,132,210, 65, 5, 68, 16,144,152,158,147,166,209,243, 59, 77,218,161, 60, 7, 98,208, + 84,105,196, 80,135, 38, 67,127, 71, 40,121, 96, 73,219,134,150,147, 23, 4,122, 89,154,203, 41,104, 12, 60, 52, 58, 3, 10,174, +108,132,125,131, 22, 80, 42, 20, 84,107,168,217,219,128,248,220, 66, 17,145, 10,140, 24, 49, 66,145,150,150,118,222,195,195,163, + 89,223,190,125,149, 93,187,118, 69, 81, 81, 17,206,156, 57,131,162,162, 34, 47, 15, 15, 15,175, 51,103,206, 12,143,143,143,143, +116,119,119,239,113,232,208, 33,163,251,208,150, 26, 32,166,252, 18, 12,112, 20, 69,161,244, 51,170,244,179, 58, 63,231, 86, 38, +147, 33, 46, 46,238,133, 71,182,146,146,146, 30,213, 37,178, 85, 88, 88, 40,117,115,115,131, 74,165, 2,207,243, 40, 42, 42,194, +209,163, 71,145,151,151, 7, 65, 16, 96,102,102,134,149,235,182,227,254,237,243, 8, 13, 13, 69, 94, 94,158,180, 54,205,196,196, + 68, 42, 32, 32, 0, 90,173, 22, 28,199, 65,163,209, 32, 36, 36,164,252, 61,203,178,152,191, 98, 61,162,111,158,199,157, 59,119, +144,152,152,248,167, 60,109,196, 4, 47,242,119,164,218,156, 89,127,250,168, 67,158,231, 22,110,219,181,239,218,194,233,163, 49, +115, 76, 31,143,229,155,142,244,137,202,196, 46, 0,240,115,192,248, 55,123, 54,246,180, 81, 74,240,201,143, 55, 1, 66, 22,214, +247,255, 34,178, 17,221,204, 73,152,243, 83,104,220,249, 69,163, 91,163,145,139,149, 79,142, 44, 91, 22, 27,107,196, 51, 5, 5, + 14,182, 22,114,223,129, 1,246,191, 64, 16, 96, 99, 41,111, 10,158,131,141,133,220,247,181,230, 86, 63, 3,128,149, 82,210,180, +170,200, 87,117,180,241,144, 76, 85,202,217,169,230,150, 54,158, 19, 6,247, 53, 27, 56,120,184,153,133,132, 67, 86,232, 25,228, + 75,220, 97,176,243,130,214,144,141,196,199, 49,252,175,215,163,146, 50, 11,180,115,107, 93, 77,130,139, 73,143, 31,168, 26,182, +236,107,155, 25,188, 56,189,225,196, 31,189,105, 8,116,193,158, 97,105,230,142,237,204,126,143,125, 92, 40,144, 42, 35, 58,149, +200,207,203,123,106,224,225,162,230, 89,203,152,115,223, 99,193,128, 22,200,201, 78,135, 70,207, 33, 79,205,233,157,109, 20,114, +237,227,112,104,245, 28,116, 6, 1, 18, 27, 55,156,185, 22,150, 41, 24, 12, 63, 87,167, 25,155,133, 59,177, 71,239, 88, 84,252, +172,145, 3, 2, 62,180, 50,187, 3,131, 26,113,137,201,216,117,242, 90,235,216, 44,220,169, 79, 57, 19,129, 43,105,126,174, 16, +201,162, 8,186,214,165, 19,124, 83, 71,180,147, 42,164, 95,127, 54,231,141,102, 29,155,216,201,133,196,107,160, 4, 61,204,121, + 22,106, 25, 15,107,143, 70, 16,116, 5,164, 88,163,201,141, 0,196, 76,239, 34, 34, 21,240,245,245,117, 78, 74, 74,138,152, 55, +111,158,221,176, 97,195,240,211, 79, 63, 33, 63, 63, 31, 59,119,238, 68, 80, 80, 16,150, 45, 91, 6,131,193,128,109,219,182, 41, + 15, 31, 62,220,110,243,230,205,137,158,158,158,205,227,227,227, 83,107, 49, 88, 20, 0, 57, 0, 73,105,221, 69, 1, 16, 78,157, + 58,133,129, 3, 7,226,212,169, 83, 66,233,103, 60, 74,110,126,234,244, 60, 81,153, 76, 6,153, 76,134,188,188,188, 23, 98,182, + 36, 18, 9, 44, 44, 44, 32,147,201, 80, 80, 80, 96,178,217,226, 56,142, 73, 76, 76, 68, 94, 94, 30,250, 14, 30,140,245,171, 87, +163,103,207,158,232,219,183, 47, 8, 33, 8, 9, 9, 65,159,206,254, 24,253,159, 30,136,138,138, 2,199,113, 70,173,111,106,106, + 42,210,210,210,240,218,224,193,216,190,121, 51,218,183,111, 15, 95, 95, 95,112, 28,135,243,231,207, 99, 68,255,206, 80, 12,237, +131,232,232,104,241,160, 54, 62,154,245, 66,250,104,213,155,136, 12, 92, 23,142, 93, 8, 30,211,191, 93,224,224, 46,205,176,125, +255,175,159, 66,149,191, 15, 0,236,181,242,149,111,245,108,132,200,248, 28,252,122, 39, 57, 56, 42, 19, 47,100,180,134,192,195, +193,222, 74, 9, 48, 50,168,245, 2,103, 21, 91,123, 7,102,129, 16, 40,187,125,136, 55, 7, 71,122,180,111,230,225, 81, 54,234, +208, 98,224,151, 24, 31,246,200,179,173,175,179, 39,120, 3,192, 27, 96, 53,250, 71, 96,133,121,173,235,209,217, 91,118,118,246, +172, 89,157, 6, 12, 29,101, 38, 83, 90,131,207, 79,128, 33, 53, 12, 89, 15, 47,162, 72,233,131,212,184, 88, 28, 56, 29,154,247, + 48, 49, 43,159,166,113, 38, 45, 79,251, 65,108, 14, 10,107,211,213, 24,176,250,227,197,115, 7, 29,216,183,223, 82,222,168, 11, + 21,179,113, 96,158,140,229,228, 42,239, 87,233, 98,133, 3, 89,181,115,191, 85,145, 14,107,106,211, 41, 46,202, 63, 18,114,230, +151,209,141, 27,118,177,124,114,227, 36,212, 26, 45,180, 6,160,121,187, 30,224,121, 34,163,104, 74,176, 98, 24, 42, 61, 43, 7, +148,129, 79,187,116,247, 73,202,229,187,177,140,214, 18,107,106,204, 46,242,172,187,167,152,247, 6,247,104, 5, 24,212,248, 79, +183, 22, 88,191,231,215,119, 1,126, 98,253, 10,185, 36,162, 69,128, 46,205, 84,216, 74, 8,186,220, 60, 26,212,180,205,208,217, + 48, 37,162,213,220, 1, 3,252, 26,186,126,191,126,229,135,118,246,238, 62, 12, 37, 24, 64,156, 91, 2,249,137,132, 74,188, 6, +107,183,246,224, 93, 59, 99,219, 87, 95, 20, 10, 2,217, 7, 64, 28,146, 45, 34, 82,241,122,164,209, 28, 89,187,118,173, 93, 96, + 96, 96, 89, 68, 6,215,174, 93,195,142, 29, 59, 96,110, 94,249, 58, 57,112,224, 64, 16, 66,236,150, 46, 93,122, 4, 64,199,234, + 52, 59,117,234, 52,248,206,157, 59,201,173, 90,181,138, 45, 53, 91, 82, 0,116,120,120, 56,157,144,144, 64,217,218,218, 18, 87, + 87, 87, 67,114,114,178, 0,128,159, 52,105, 18,115,240,224,193,198, 69, 69, 69, 23,234,106,180,100, 50,217, 11,233,179, 37,145, + 72, 64, 81, 20,100, 50, 25,164, 82, 41, 8, 33, 38,153, 45,158,231,217, 83,167, 78,225,230,205,155, 88,214,170, 21,230,184,185, +193,206,206, 14,231,207,159, 7, 33, 4,230,230,230,200,206,206,198,190,125,251,208,171, 87, 47,112, 28, 39, 53, 70,247,208,161, + 67,184,117,235, 22, 86,180,105,131, 57,214,214,176,176,176, 64, 72, 72, 73,107,160, 92, 46, 71, 92, 92, 28, 66, 66, 66,208,163, + 71, 15,241,160,174, 39, 70, 31, 60,221, 1, 54,155,130,179, 94,167, 6,225, 8, 64,193,213,207, 15,210,168,168,202,157,115,140, +129,166,177,248,171, 93,193,131,190,156, 61,152,154, 58,164,181,235,242,239,207,189, 13, 0,147, 95,111,226,166,148,179,216,112, + 44,146,208, 52, 22,191,136, 13,244,243,131,148,202,194,219,125,219,251, 34, 57, 87,135,152,228,220,223,162,140,108,234,249,245, +203, 55,241,195,241,243, 9, 65, 63,104,238, 19, 66, 96, 99, 33,247, 29,127, 47,198,243,251, 83,183,226,215, 29,208,220, 39, 2, +129,141, 82,210,116, 98, 84,231, 90, 71, 29,182,241,144, 76,125,127,238,220,206, 67, 38,206, 83,112,247, 15, 66, 23,115, 26,130, + 94,141,124,189, 20,185,140, 51, 18,227,227,177,106, 91,112, 66,126,145,110,116, 68,134,105, 6,243, 97, 22, 10, 89, 42,127,216, +170, 79, 22,157, 93,189,114,169,133, 58,246,124, 33, 67,113,106,166, 65,119,118,229,178, 47,169, 2,173,110, 84,108, 14, 10,106, +211,209, 90, 98,205,218,117, 95, 13,154, 50,110,248,253, 38, 62,221,237,249,228,199,246,154,252,252,244, 31,127,185,229, 92,122, +167, 72, 1, 64, 76, 98, 22, 50,242,138, 56,158, 51, 92,176,148, 96,121,164, 49,209,193, 82, 26, 58, 66, 21,216,165,249, 27, 42, + 75, 41,212,133,185,112,180,148,160,127,251, 87,222, 48,252, 30,253,225,227,116, 83,236,218,179, 70,203, 0, 98, 80,227,250,154, + 94, 77, 9,111,104, 10,222, 0,253,189,221,166, 71,198, 40,204,153,217,205,194,202, 86,247,132, 70,145, 57, 96,230, 0,202,202, + 11,176,246,166, 36,126,163,144, 28, 27,193,189,251,198,184,172,199, 79, 19,191,117, 48,123, 33, 35,127, 68, 68, 94, 42,226,226, +226,222, 90,184,112,225,229,246,237,219, 59, 57, 56, 56,160, 69,139, 22, 56,126,252, 56,230,205,155, 87,190, 76,171, 86,173, 64, + 8, 65,118,118, 54,214,174, 93,155,154,156,156,252, 86,141, 55,232, 17, 17,247,127,248,225,135,110,205,154, 53,211, 75,165,210, + 92, 0,242,220,220, 92, 69,118,118, 54,165,209,104, 32, 8,130, 96,109,109,205, 39, 39, 39, 27, 70,143, 30,173,189,122,245,234, + 43, 69, 69, 69,113,245,137,104,121,120,120,132,103,101,101,229, 81, 20, 85,239,212, 15,101, 38,203,193,193, 65, 85, 88, 88, 40, + 0,200,169, 75,234, 7,142,227,208,166, 77, 27,156,190,120, 27,167,126,189,138,252,228, 7,120,123,202, 91,104,209,162, 5, 78, +159, 62, 93,231, 50, 11, 8, 8,192, 47, 33,151,113,249,230, 93,196, 69,223,195,187,111, 79, 65,243,230,205,241,203, 47,191,136, + 7,180,241,156, 68,229,190, 89, 39,159, 53, 90, 61,130,131,131,203,238,204,159,179,175, 77, 29, 16, 32,177,145,237, 94, 58,224, + 21, 63, 73,223,165,160, 36,102, 56,232,243, 75,231,197,171, 54,222,103, 28,227,198,133,167,215, 62, 58,172,210, 73,147,142, 8, + 18,122,127,239,221,168,166,111,252,167,189, 7,182, 31, 87, 46, 1,128, 81, 93, 27,226,247,135, 25, 8,141, 78,223, 27,153,129, +136,250,110,181,191, 35,148,124, 38,246,174,125,111, 72, 15, 47,119,103,236,248,233, 50, 40, 10, 71,140,170,112, 9, 33,237,155, +121, 33,232,135,103, 71, 24, 58,123,174, 59,160,185,127, 38,162, 96, 0, 0,244,109,170,252,185,237, 43,182,158,164, 98,199,173, + 42, 48,147,177,211, 6, 12,127, 83,193, 69, 31, 7,158,134,128,226,180, 80,235, 5,164,100, 22,160,216,218, 3,231,175,221, 85, +231,105,116,179, 35, 51,234, 22,197,139,202, 68,172,244,198,221,248,194, 34,181,139, 82,245,138,134,161, 5,161, 80, 75,240,123, +228,211,252,200, 84, 60, 48, 70, 35, 54, 22,186, 14,110, 92,215,173,187, 14,124, 44,145,202, 70, 49, 20, 40, 71, 27,115,213,214, + 47, 87,192,210,210, 2,130,174, 16, 40,202,192,176,119, 86,101,132, 39, 27, 26, 2,128,143, 61, 44,186, 54,148,236, 98,105, 42, +241, 92,140,254,163,218,254,131, 50, 96,250,184,254,173, 36,130,174, 8,239,173,221,143,111, 62, 28,130, 55,123,251, 73, 78, 94, +137,158, 14, 96,121, 93,203,154,240, 28,136, 65,141,142,139, 46,222,167,128,203, 4,232,114,243,192,202,166,192,109,163, 53, 90, + 3, 18,158,165,252, 90,122,154, 75,133,196, 43, 16, 18,175, 16,198,163, 51, 40,207,110, 20,229,220,134,124,253,217,178,162,237, +219,119,156, 17,104,124, 98, 68,170, 12, 17,145,127, 43,177,201,201,201,175, 13, 28, 56,240,215,211,167, 79,219,249,251,251, 3, + 0,110,222,188, 89,114,211,217,166, 13,154, 52,105,130,180,180, 52,140, 25, 51, 38, 51, 37, 37,229, 53,212,210,231,183,160,160, +224,241,161, 67,135,156,138,138,138, 90,125,244,209, 71,233, 94, 94, 94,249, 26,141,134,202,205,205, 21, 56,142,131,173,173,173, +172, 85,171, 86,232,212,169, 83,225,181,107,215, 26, 36, 36, 36, 20, 0,120, 90,151,149, 31, 50,100, 8, 46, 94, 44, 25,180,247, + 34,242,106, 73,165, 82,248,251,251,187,197,198,198, 38,149,214, 45, 38, 95,227, 43, 86, 47,119,239,222,197,133,219,137, 96,117, +106,200, 50,146,113,253,167, 67, 24, 60,109, 6, 56,174,238,189, 24,238,222,189,139,163, 33,215, 97, 46,103,241,224, 65, 4, 14, + 29, 58,132,183,223,126,187, 94,154,117,164, 70, 47,242, 55, 39, 5,213,244,211, 98, 1, 32, 48, 48,240, 66, 89,180,162, 34,141, + 26, 65, 38, 47,196,210,190,173,221,230,143,234,242, 10, 99,200, 79,134,192, 11, 96, 36,128,163,131, 21,118,239,222,219,112,239, +254,253,215, 54,111,218,252,149,192,113,139,195,211, 81,108,194, 74, 45,253,114,255,229, 81,187,231,246, 96,223, 30,208,212, 14, + 0,164, 44,141, 13,199, 35, 56, 0, 75,235,179,181, 29,220,160, 40, 52, 96,170,163,189,245,146,133,255, 29,100,215,163, 77, 19, + 92, 8, 13,199, 87,135,174, 93,148,165,227, 7,163, 15,110,193,128,103,253, 83, 85,163, 14, 33,212,222,239,146,231,137,179,212, +220, 22,250,167,231, 0,189, 6, 26,173, 30, 9, 89, 60, 18,178, 53, 96,149, 82,220,140, 78, 84,219,167, 34,184, 30,155, 77,153, + 43, 21,174, 31,127,186,206, 93,163, 46,228,242,115, 50, 57,169,236,186, 68,105, 38, 79, 49,165,171,194,245, 36,104,186,121, 75, + 94, 5, 4, 70,166, 32,197,139,222,159, 96,158, 20,121, 26,141,233,100, 80,132,192,204,111, 16, 44,205, 24,105,151, 6,146,120, + 0, 48, 55, 87,202,214,126, 50,207,122,246,135,159,212,218, 7,204, 15,144, 54,105,228, 60,219,223,203, 22, 23,111,221,199,197, +176,184,136,139, 55, 31, 52,239,217,194, 21, 77,220,109,102,201,114,114,215, 68,193,244, 8,105, 73,193,112,128, 65, 83, 62,234, +208,207, 17, 99,219,142,250,168,186,209,134, 85,226, 13, 8,209, 60, 1,197, 48, 0, 69,151,140,128, 76,184, 2,214,166, 17,217, +123,224,104,241,142, 29, 63,172,136,202, 20,163, 88, 34, 34,181,145,151,151,119, 47, 42, 42,170,127,203,150, 45,119,190,247,222, +123,150,227,198,141,115,157, 50,101, 10, 13, 0,105,105,105, 66, 80, 80, 80,242,215, 95,127,157,151,153,153, 57,209, 96, 48,132, + 25,115,134,167,164,164, 92,253,246,219,111, 51, 46, 93,186,212,188, 93,187,118,242, 87, 95,125, 85,176,181,181,101,229,114, 57, +175,211,233, 52,209,209,209,124,108,108,172, 75,110,110,238, 35, 0, 49,168, 67,179,126,105,244,106, 57,195, 48, 31, 19, 66,252, + 95, 68, 31, 45,165, 82,233, 10,224, 17, 69, 81,141, 77,109, 54,124,174,194,102, 89,228,228,228,160, 56, 53, 2,138,196,135,104, +105, 78,163,153,173, 5,172,172,172,234,101,138,242,242,242,128,162, 36, 92,190,124, 23,224, 56, 88, 91, 91,195,218,218,250, 79, + 55, 90,213,121,145,127, 8, 83,171,248,172,230, 62, 90,205, 84,120,219, 76,135,160,105,131, 94,145,122,123,186, 67,155,120, 19, +119, 19, 10,177,184, 67,187, 72, 70,110,169,153,246,214,144, 54,195, 71, 52, 64,143, 78,109, 41,111, 23,235, 89,107,190,220,242, + 78, 51,100,206,139, 76,199, 6, 99,214, 40, 50, 3,143, 5,164,239, 56,119, 47,113,186,187, 82, 13, 65, 32, 56, 23,150,130,176, +167, 57, 59,238,103,224,177, 41, 91,215,204, 5,125, 88,208,251, 9, 33, 10,107,115,243,130,102, 77,220, 29,250,116, 12,160, 95, +235,222, 6, 82, 6,184,252,251, 93,204,249,242,200,117, 65, 32,131,140, 30, 33, 38, 8,207, 25,168,146, 17,134,134, 74, 35, 12, + 9, 33,164,100,212, 97,205,221,190, 24,134, 74, 45,142,187,225, 44,177,247,129, 58,230, 28,158,230, 8,136, 75, 47, 64, 62,235, + 12,109, 82, 18, 64,132,248, 11,245,232, 88,237,224,224,224,216,176, 89,147, 87, 54,238, 58, 4,125,113, 30, 30,159,223,137,194, +156, 20,172,220,122,252, 21, 55, 55,251,238, 73, 73, 73, 23, 76,184,216, 52,249, 53,120,175, 35, 8,192, 72,228, 56,185,249, 0, + 50,237,205,224,160,148, 66, 80,103, 96,218,236,113,214, 3,250,142,179, 6,128,184, 7,119,224,165, 84, 27,165,171,183,199,240, + 81, 61,125,109, 96, 80, 99,215, 47,119, 52, 52,240,218, 15,103, 34, 98,122, 54,181, 81,140,234,226,101,187, 60, 57,247,117,100, +213, 45,169,104, 89, 68,171, 60,194, 87,135,209,134,135, 0,190,169,128,152,253, 87,211,205, 71,244,125, 85, 41,101, 41,138, 20, + 38,129,152, 57, 96,203,174,131,133, 50,195,159,243, 36,118, 17,145,151, 1,181, 90,125, 75,173, 86,183,248,224,131, 15,198, 46, + 90,180,168,155,185,185,121, 67, 0, 40, 42, 42,122,108, 48, 24, 46,150,158,159,166,140, 14, 36, 0, 30,197,196,196, 60,142,137, +137,113,218,179,103,143, 13, 0, 69,233,119, 26, 0,185, 0,210, 80,143, 17,135,101,166,138,162,168,143, 95,212,126, 40, 51, 85, + 20, 69, 53,174,203,239,105,154,230, 41,138, 2, 69, 81,144,203,229,184,116,233, 18, 70, 14,234,139,168,147,185,240,183,177, 64, +187,137,211,176,255,236, 89, 48, 12, 3,138,162,192, 48,140, 73,245, 8,203,178,184,124,249, 50,222, 28, 51, 2,114, 22,176,182, +182,198, 7, 31,124,128, 99,199,142,129,101,197,167,244,153,192,182, 10,134,203,200, 60, 90, 20,150,159,221,185, 74, 10,222,128, + 19, 59,191, 64,112,120,161,238, 65, 6, 22,251,102, 32,232, 16, 10,132,140, 47,127,152,126,246,114,248,231,147, 70, 7, 42,123, +245,236,139, 94, 61,122,178,205,219,118, 95, 2, 84, 50, 90,125, 80, 67,174, 13, 94,192,138,109,191,220,159,182,255,124, 52, 5, +125, 1, 70,247,107, 75,120, 1, 43,106,217,152,231, 52,173,205, 44,246, 95,190,118,205, 22,250, 66, 60,189,243,155,162, 65,195, + 87, 0, 94,143, 71,143, 30,226,235, 93, 63, 9,231,127,127,176, 91,199,225,189,216, 28, 20, 25,171, 89,226,172, 56, 88,155,203, +124, 95,107,110,245,179, 0, 2, 27,165,180, 41, 17,120,216, 40, 37, 77,251, 54, 85,254, 76, 8, 33,150,102,146,166,132, 55,212, +170,169,214,113,223,236,250,110,199,186,201,147, 39,155,103, 38,166, 34, 57, 63, 28,133, 50, 55, 24,148, 30,136,185,115, 81, 93, +172,229,140,169,196,171,221,159,153,153,153,233,183, 66,179,177,127,235,106, 24,116, 90,164, 39,150,120,213,228,204,124, 88, 57, +184, 93, 75, 74, 74, 50, 90, 83,207, 9,121,195,199, 77,149,154, 89,194,236,205,225,129,178,152, 44, 45, 90,187, 90,150, 92, 52, + 10, 51, 16, 21,114, 25, 61, 74,251,152,198, 38,208,240, 10,112, 53,106, 61, 45, 21,210,247, 6,188,234,134,199,241, 41,184, 20, +145,180,235,113, 54,146,249,251, 41,187, 98,146,115,167, 15,233,224,137,245,199, 34,223, 5, 12,123, 77,217,118, 63, 71,140, 37, + 4, 93, 74, 58,195,171, 65,128, 46,126,142, 24,107,228, 72,195,231, 52, 89, 41,222, 88,247,115,220, 71, 7,111,100, 14,153,255, + 70, 87,171, 78,157, 6,202,192,233, 80,160,214, 26,162,114,145, 95,159, 50,170, 7,162,166,168,249, 79,213,228, 1,236, 54, 24, + 12,187,115,115,115, 95,164,102, 50,158,207,235, 84,175,109,175,216, 76, 72, 8, 97, 75,163, 89,181,117,134,175, 81,179, 98, 51, + 33, 33,228, 84,105, 52,171,182,168, 86, 37, 77, 65, 16,146,219,180,105, 99, 55,120,240, 96,240, 60,143,135, 15, 31, 34, 46, 33, + 1,125,166,191, 11, 27, 27, 27, 92,188,119, 15, 15, 30, 60,192,199, 31,127, 12,131,193,128,163, 71,143, 38,214,166,201,178,172, +254,149, 87, 94,145, 14, 29, 58, 20, 28,199, 33, 54, 54, 22, 73, 73, 73,152, 51,103, 14,172,173,173,113,235,214,173,114,205,204, +204, 76,176, 44,171,175, 34,186,245, 71, 28, 75,255,116,158, 51, 89, 53, 27, 45,128, 7,111, 64,222,217,165,216,112, 9,122,189, + 1, 77, 35, 51,240, 36,242,255, 17,169, 45, 76,232,189, 19,247,194,239, 63,190,117,165,151, 12,233, 97, 48,245, 78,226, 97, 22, + 82, 44, 21, 5, 5,208, 23, 88, 33,246,103, 60, 73, 43, 40,124,152,133, 20,147,239, 24, 4,158,130,190, 24, 72,185,137,171, 23, + 47,224,252,245,187,184, 17,118,159,191,122, 43,122, 63, 45, 96, 69, 84, 22, 30,214,225, 46, 4, 22,131,214, 99, 66,216, 35,207, +182, 77,156, 60,193,115, 32,130, 1,214,163,247, 98, 98,100, 39,207,182,141,108, 60, 75, 34, 89, 6,216,254,247, 55, 96,157,162, + 70,189,155, 9,134,109,178, 99,167, 95, 47,200,205,234,208,187,123, 71,115,107,191, 1,200,124, 20,141,135,119, 47,171,111,133, +199, 92,189,153, 96,168, 87,180,196,205,205,173, 91,239,238,190, 24, 61,109, 33,244,197,121,136, 61,255, 29, 10,179, 83,113,233, +154, 5,238,231,231,119, 4, 96,116, 68,235, 90, 60,215, 28,241, 57,232,220, 64, 18,111, 9,173,243, 91,129,131, 33,167, 52, 16, +180,249,160,138, 51, 17,147,164,203,123,125,107, 2, 15, 0, 74, 57,197,154,147, 60, 43,163, 34,143, 94,246, 62, 74,198,128, 31, +206, 70, 64, 16, 74, 30,223, 36, 8,216,242,195,111, 49,211, 87,188,217, 26,205, 60,109, 3,238, 36,165, 83, 48, 33,228, 79, 17, +116,189,177,255,147,166,154, 95,151, 0,130, 30,151,103,217, 53,237,186, 33,187, 43,234,248,184,157,240,100, 36, 1,152, 14,182, +248,155, 89, 27,126, 89,210,230,108,100,151,185,255, 29, 98, 5, 34, 62,128, 93, 68, 68,228,207,167,176,176,112,218,196,137, 19, +191,145, 72, 36, 42, 0,148, 32, 8, 16, 4,129,253,252,243,207, 37, 60,207,211, 52, 77,243, 12,195,112,167, 78,157, 50,240, 60, +159,161,209,104,166,213,166,201,113, 92,204,140, 25, 51, 94,169,109,132,226,190,125,251,202, 76, 86,140, 88, 18, 70,153,172,138, +243,242, 40, 87,245,149, 7,193, 39,157,223, 92,186, 20, 0, 5,130,101,145, 25,120,242,236, 34, 97,217, 72,110,198,232,231, 52, +111,219,125,105,217,111, 76, 93, 51, 13,207,143,104,219,162,201, 62, 0,208, 18,254,205,186,108, 93,190, 86, 61,170, 85,219,142, +251, 5, 66, 88,142,144, 29,180,128,195, 26, 14, 81,198,140,180,171,142,228,244,220, 91, 3,252,173, 9, 80,210,100, 88,222, 92, + 88,154,198,129, 16, 66,202,155, 11,191, 80, 32, 51, 79, 91,107, 30,168, 43, 79,116,125,117,220,141,169,103,174,220,153,198,243, +196,153, 97,168, 84,181,142,251,166,190, 38, 11, 0,146,146,146, 46,132,156, 77, 58,115, 47,192,169,159,131,178, 52,202, 85, 12, +100, 22,227, 76, 82, 70,225,133,186,104,230, 20, 25,134, 44, 10, 58,118, 92, 38, 97, 88, 16, 82,146, 80,148, 16,104,244,124,246, +181,120,174, 57, 0,180,176,131,235, 7, 71,185,125, 12, 67,197,213,166, 23,250, 32,101,253,232, 53, 33,243, 34,158,230,236,120, +154,139,112, 0,120,154,139,240, 3,151,159, 44,137, 73, 45,152, 23, 30,151,243, 5, 76,236, 87, 65, 40, 92,106, 59,122,233,115, +159,213,119,127,222, 79,193, 93, 0,195,128,196,190,163,231,126, 61,151,162, 32, 62,126, 66, 68,228, 95, 68, 89, 84,139,166,233, +229, 47, 80,243, 20, 69, 81, 3, 1, 60, 50,225,103,161,133,133,133, 45, 94,240,230,101,113, 28,151,101,204,130,127, 65,135,248, +127, 42,127, 89,215,146, 62,162,230,159,175,217,184,113, 99, 98,130, 97, 17,247,167,168, 41,106,138,154,255, 42, 77, 66, 8, 83, +159,169, 26, 77,170, 62,147, 88, 70,255,120,166, 86,247, 94,108, 14,121, 9,121,244,232, 17, 37,238, 5, 17, 17, 17,145,170,161, + 40,138,255, 3, 52,197,228,197, 34,101, 6,171, 82,116,139, 22,247,137,136,136,136,136,136,136,136,200, 11, 49, 89, 21,231, 37, + 38, 28,213,135,255, 76, 25, 77, 80,151, 16, 98,136,168, 41,106,138,154,162,166,168, 41,106,138,154,255, 58,205,218,180,197,209, +140,127,176, 1, 19, 53, 69, 77, 81, 83,212, 20, 53, 69, 77, 81,243,223,167,249, 79,166,218, 62, 90, 98,211,161,136,136,136,136, +136,136,136,200, 31,132,216, 25, 94, 68, 68, 68, 68, 68, 68, 68,164,126,212,250, 80,105, 17, 17, 17, 17, 17, 17, 17, 17,145,186, + 81,243, 67,165, 69, 68, 68, 68, 68, 68, 68, 68, 68,234,140,233, 15,149, 22, 17, 17, 17, 17, 17, 17, 17, 17, 49,138,109,226, 46, + 16, 17, 17, 17, 17, 17, 17, 17,249,115,168, 60,234, 48, 56, 56,152, 84,156,139,136,136,136,136,136,136,136,252,153,188,172, 94, + 68,108, 58, 20, 17, 17, 17, 17, 17, 17, 17,169, 31, 83, 69,163, 37, 34, 34, 34, 34, 34, 34, 34,242,199, 80,109, 31,173,178,132, +165, 61, 74, 67,117, 61,196,125, 37, 34, 34, 34, 34, 34, 34,242, 23,240,114,123, 17,177,127,150,136,136,136,136,136,136,136,232, + 69, 68, 68, 68, 68, 68, 68, 68, 68, 68,254, 78,136,207, 58, 20, 17, 17, 17, 17, 17, 17, 17,249,147, 13,215, 31,110,180,196, 39, +155,139,154,162,166,168, 41,106,138,154,162,166,168,249,111, 50, 89,149,204,150, 56,234, 80, 68, 68, 68, 68, 68, 68, 68,164,126, +212, 58,234, 80, 68, 68, 68, 68, 68, 68, 68, 68,164,110, 76, 5, 16, 88,250, 58, 16, 21,162, 90, 98, 68, 75, 68, 68, 68, 68, 68, + 68, 68,164,126,108, 3,224, 82,106,176, 78, 2, 72, 17,141,150,136,136,136,136,136,136,136,200,139,161, 98,191,172, 65, 21,204, +151,104,180, 68, 68, 68, 68, 68, 68, 68, 68,234, 73,181,125,180, 40, 84, 63,114, 32,196,132, 63,168,203,232,131, 16, 81, 83,212, + 20, 53, 69, 77, 81, 83,212, 20, 53,255,117,154,181,105,135,224,159,199, 84, 83,204,215,139, 68, 28,250, 42,106,138,154,162,166, +168, 41,106,138,154,162,230,191,150, 23, 62,234,176, 53, 96, 38,238,214,151, 18,167,210, 73, 68, 68, 68, 68, 68, 68,164,102,254, +152, 81,135,126,192,127,199,249,171,182, 26,194, 51,172,194,129,226,154,150, 85,169, 84,223, 40,149,202,113,197,197,197, 69, 20, + 69, 9,101,159, 19, 66, 0,160,226,179,142, 98, 51, 50, 50,186,214,246,223, 50,153, 44,200,201,201,233,191,133,133,133,197, 20, + 69, 17,138,162, 64, 81, 20, 0, 60, 55,231,121, 62, 49, 43, 43,171,205, 63,186, 8, 9, 97, 28,156,156,126,151, 48,140,155,169, + 63,229, 5,225, 73,122, 90, 90, 71, 19,126,178,154,162, 48,191,228,111,241, 25,128,133, 47,219, 25, 65, 0,198,152,229,252, 1, +203,104, 96, 52, 79,211,239, 74,128, 77, 90, 65,216, 10, 0, 20,192,215,245,191,181,161,120,133, 34, 8,160, 40, 88, 19,130, 60, + 66,225,174,188, 61, 98,254,162, 93, 49, 92, 34,145, 12,177,178,178,178,200,202,202,186, 0, 96, 31,128, 49,246,246,246,221,243, +243,243, 11, 13, 6,195, 49, 0, 71,234, 34,220, 53, 0, 31,202,164,146, 73, 26,189, 97,237,149,187,248,174,123,107,216,115, 2, +214, 40,164,108, 87,173,142,251,236,242, 61,236, 48, 81,146, 42,157,202,174, 25, 38, 63, 35,237,160,145,229, 14, 0, 71,109,109, +155,200, 85, 86,191, 74,100,204,147,220,180,194,113, 35,210,211, 19, 70,214,163,220,255,142, 56, 56, 56, 76,160,105,250, 83, 66, + 8,120,158, 95,156,157,157,189,243, 5, 73, 47, 6, 96, 83,250, 58, 23,192,167,245,212,139, 3,224, 89,250, 58, 30,128,151, 88, +175,215,153, 45, 63,253,244,211,244,158, 61,123, 98,253,250,245,216,178,101,203,211,140,140,140, 53, 0,118, 1,208,253, 5, 58, + 34,213,209, 12, 24,248,121,255,246,188,225,251, 21, 66,133,143,251, 84,115, 50,127,251,214, 91,111,233, 9, 33,228,193,131, 7, + 68,167,211, 17,131,193, 64, 56,142, 35, 28,199, 17,131,193, 80, 62,185,185,185, 37, 61,243,243,231, 52,105,154,222,240,250,235, +175, 23, 16, 66,200,205,155, 55,137, 90,173, 38, 90,173,150,232,116, 58,162,209,104,136, 90,173,174, 52, 57, 57, 57,165,213,164, +105,101,101,117,211,214,214, 54,205,214,214, 54,205,206,206, 46,205,206,206, 46,205,222,222,190,124,114,112,112, 40,159, 84, 42, + 85,154, 74,165, 74,179,179,179,187, 89,219,122,150,210, 31,192, 5, 35,166,254, 85,252,182, 79, 69,163,229,226,226,146, 70,234, +128,187,187,123,130, 17,235, 89,134, 19, 69,129, 47,251, 45, 69, 65,144,203,229,158, 21,191,199,243,145,174, 90, 67,202,174,174, +174,175,187,184,184,132,184,184,184,156,117,117,117,125,221,136, 67,172,146,166,165,165,229, 77, 7, 7,135, 52,103,103,231,244, +178,201,197,197,165,210,228,234,234, 90, 62, 57, 57, 57,165,217,218,218, 86, 91, 70, 4, 96,170,155,206, 3,172, 28,232,197, 50, + 76,176,147,147, 83,126, 88, 88, 24, 79, 8, 33, 52, 77, 39,149, 45, 99,202,182, 63,107,178,138, 47, 99,113,230, 57,121,104,225, +147, 53,121,153,231,228,161,197,151,177, 88, 27,138, 87,234,170,105, 36, 85,105,142, 31, 63,126,252,221,180,180,180,164,220,220, +220,148,173, 91,183, 70, 43, 20,138,203, 91,183,110,141,206,205,205, 77, 73, 75, 75, 75, 26, 63,126,252, 93, 0, 51, 76,208, 4, + 0,116, 12, 64,135,201,195, 93,138,239, 30,125,179,184, 87, 91,246, 78,103,127, 4,246,237, 40, 77,218,184,192,175,248,226,246, + 46,197, 61, 95,165,195, 77,212,164, 88,150,237,228,233,233, 57, 73,165, 82,189, 85, 58,189, 89, 54, 57, 59, 59,191,233,236,236, +252,166,173,173,237,200,154, 52, 15, 2,140, 49,147,135, 66,209,105,100, 67,207,226,184,229,203, 72,216,236,119,201,164, 70, 30, +249, 35, 28, 29, 27,252, 5,101,244,135,106, 58, 58, 58, 38, 27, 12, 6,162,215,235,137,189,189,125,242, 11, 92,207, 47, 8, 33, + 95, 16, 66,190, 0,240,197, 11,208, 44,191,158,153, 96,176,107,210, 84,176, 52, 61, 87, 41,147,157,149,179,108,186,156,101,211, +149, 50,217, 89,150,166,231, 1, 80,252,157,202,232, 15,208,180, 80,169, 84,143,131,130,130, 72,113,113, 49, 41, 46, 46, 38, 65, + 65, 65, 68,165, 82, 61, 6, 96, 97,130,102, 93,117, 94,166, 8,214,179,211,139,139,104,249, 1,109,122, 5, 52, 62, 60,107,194, +104, 8,135,130,168, 90,238,152,190,237,216,166,205,164, 93,187,118, 1, 0,198, 13, 25,130,126,237,218,193,210,194, 28, 50, 89, +201,234, 80,132,130, 84, 34,197,208, 57,239, 27,243,247,159, 13, 29, 58,244,141, 67,135, 14, 89, 0,192,150, 45, 91, 48,124,248, +112,216,217,217, 65,169, 84, 66, 42,149, 66, 34,145, 84,154,215, 6,195, 48,238, 73, 73, 73,142, 10,133,162, 60,202, 38, 8, 66, +165,137, 16, 82, 22,125, 3,199,113,240,241,241, 49,118,119, 45,200,203,203,235, 86, 84, 84, 84,174, 81,213,212,176, 97, 67, 0, + 56,109,140,224,167, 43, 87, 64,224,138,192,178, 0,199, 1, 90, 61, 13,129, 84,105,110, 48, 99,198,140,242,245,174, 11,131, 6, + 5, 82, 20, 69, 29,186,117,235,214,225,244,244,116,111, 65,224,167,212, 49,210,245,206,195,135, 15, 45, 0,160, 73,147, 38, 51, + 0, 28, 54,101, 61, 88,150,117,191,119,239,158,163, 92, 46,175, 54,114, 89, 33,130, 9,189, 94,143,214,173, 91,115,166,252,135, + 19,224,153, 77,211, 83, 90,189,250,234,212,165, 67,135, 42,126,255,253,119, 5, 77,211,224, 56, 14,159,127,254, 57, 71, 8,177, +105, 6, 88, 69, 2,249, 53,200, 44, 2, 48,161,180, 50,216, 1,224,243, 74,110,129, 32, 64,109,144, 7,198, 22, 14,109,215,190, +193,135,136,140, 8,107,215,200,226, 40, 44, 89,109, 12,240,231, 70,181,172,172,172,134,172, 95,191, 94,181, 99,199,142,252, 7, + 15, 30,232,183,110,221,170,154, 54,109,154,165, 94,175,199,244,233,211, 51,124,125,125,165,235,215,175, 87, 29, 57,114,164, 87, + 81, 81,209,102,147,202,139,194,138, 49, 67,250, 65, 99,160, 97, 48,112, 42, 23,149,229,238, 89,227,123, 72, 8,209,225,135, 99, +183, 96,224,132,239, 76,140,100,117, 28, 49, 98, 68,163,189,123,247,178,247,239,223,103,155, 54,109, 10, 65, 16,192,243, 60, 12, + 6, 3, 0, 64, 16, 4, 52,110,220,184,222,251,101, 18,208,196,193,201,238,108,199,129, 3,204, 92, 20,114,216,229,100, 96,178, +148,181,220,169,212,238, 1,208,233,165,138,236, 18, 2,150,101,145,144,144, 0, 71, 71, 71, 51, 65, 16, 82, 0, 44,203,201,201, +217,134,151,151,118, 50,150, 61,252,195,119, 27,156,219,119,234,196, 56,185, 56, 34,250, 97, 60, 88,138,239,115,239,198,173, 30, +147,222,158, 59, 75,199,113,175, 3,248,253,101,219,112,231, 78, 51,134, 81, 52,179,133, 34, 2, 62,217,120,188, 96,245,103, 65, +202,233, 83,198, 51,115,230,204,129,135,135,135,247,176, 97,195, 62, 3,240,118,173, 58,237,103, 12, 3, 67,111, 1, 33, 88,250, +245,241,130, 85,159, 5, 41,223,174,131,206, 63,156,106,207,145,122, 27, 45, 63,160, 81,115, 15,199, 51,171,231,191, 45, 33, 63, +127, 79, 23,103,165, 87,187,172, 74,165,250,230,181,215, 94, 27,183,115,231,255,163,209, 29,253,253, 49,172, 87, 23, 56,218, 91, + 67,105, 46, 43,169,142, 4, 10,119, 31, 60, 49,202, 16,120,120,120, 76, 63,124,248,176, 69, 69, 51, 33,149, 74,203,167,138, 38, +171,108, 42,171,128,107, 66,161, 80, 32, 36, 36, 4, 44,203,130, 97, 24,176, 44, 91, 62, 85,124,207, 48, 12,156,156, 76,234,186, +180,198,218,218,186,101, 65, 65,129, 85,110,110, 46, 60, 61, 61,243, 1,220,171,240,125,203,140,140, 12, 43, 83, 4, 5,174, 8, +115, 38,251, 65,162,187, 14,157,164, 29,212,108,103, 92,189, 17,133,224,211, 23,144,148,156,138, 46, 29, 90,225,173,177, 35,112, +246,236, 89,240,188,201, 45, 29,105,132,224,179,193,131, 3, 63, 4, 40,170, 79,159, 62,185, 51,103,206,164,239,223,191,255,198, +176, 97, 67,253, 31, 62,124,116,176,126,228, 0, 0, 32, 0, 73, 68, 65, 84, 84, 26, 85,164,230, 19,130, 13, 0,210,140,212,149, + 1,192,197,139, 23, 1, 64, 94,151, 99, 79, 46,151,227,218,181,107, 40,107, 38,166,105, 26, 52, 77,131, 97, 24,156,120,228,128, + 34, 29,141,226,180,112,188, 27,232,137,134, 13, 27,130,166,107,239,146,216, 3, 80, 92, 5,134, 81, 18,201, 28, 23, 87, 87,239, +238,141, 26, 41, 67, 66, 66, 24, 0,240,242,242, 34, 41, 41, 41,185,199,142, 29, 43, 96,129, 45, 94,132,236,170,201,100,121,120, +120,116, 78, 74, 74,250,180,108,159, 83, 20,245, 89,131, 6, 13, 62, 46, 47, 55, 65,192,178,239,138, 36,179,102,205,150,182,239, +241, 17, 0,160,253,224,189,200,143, 93,237, 71,101, 47,178,254,179,175, 18,249,249,249,251, 27, 55,110,204,100,101,101, 93, 5, + 16,103, 48, 24, 22,236,222,189,219,113,242,228,201,233,123,246,236, 89, 3,192,117,237,218,181, 61,138,138,138, 14,152,162,219, +165, 37, 6,190,218,210,191,131,167,135, 7, 46, 92,253, 29, 82,153,196,102,198,132, 64, 88, 88,176,248, 98,199, 73, 33, 46, 49, +123,230,229,123,216,101,130,201,106, 55, 98,196, 8,239,189,123,247,202, 0,224,222,189,123, 72, 77, 77,133, 74,165,130,153,153, + 25, 36, 18, 9, 24,134,129, 68, 34,121, 33, 38,203,218,195, 62,244,232,209, 99,102,118,118, 54,216,248,254, 44,188,149,158, 6, + 27, 75, 11, 24, 10,139,188, 95,178,138,162, 73,215,174, 93, 21, 60,207,163,168,168, 8,231,207,159,183, 54, 51, 51,179,118,119, +119, 95, 10, 19, 70, 79, 41, 20,138, 52,141, 70,227, 88,250, 58, 93,163,209, 56, 1,200,151,203,229,101,215,233,194,210,185,177, +205,137,113,120,190,153, 48,158,162,168,138,159,213,149,182,237,218,182, 12, 57,114,232, 71,139,188,130, 84,216,216,166,131, 70, + 30,182,109,219, 4, 51, 51, 43, 44, 93,186,136,125,210,167,151, 91,255,129,175,135, 68, 68, 69,247,121,233,204, 22,161,182,245, + 25, 60,206,206, 76,105, 89, 90,151, 24,176,115,251, 44,208, 52,141,143, 63,254, 24,205,155, 55,159, 26, 17, 17,241, 17,128,236, +154,101,176,173, 69,183, 81,118, 50, 69, 73, 17, 11,188, 1, 91,247,205, 43,209, 89, 56, 13, 99, 6, 55,156,250,193,136,199,191, + 52,111,132,130,210, 27,115,181,132, 70, 60,213, 30,229,134, 33, 56, 56,184,123, 96, 96,224,133,234,222,255, 3,112,193,255,243, +103, 85, 50, 95,108,112,112, 48, 9, 12, 12,164, 42,108, 92,165,247, 53, 17, 0, 56,216, 90, 43, 67,182, 44,155,101,193, 94, 63, +201,168,227, 31, 33, 89, 83,169, 34,175, 52, 68, 83,169, 84,142,219,185,115,103,165,144,146,167,147, 35,164, 82, 9, 36, 82, 10, + 54, 93, 75,178,215,231, 94, 10, 6, 69, 85,107,178, 42,105, 22, 21, 21,105,238,220,185, 99,177, 99,199, 14, 56, 58, 58,194,219, +219, 27, 74,165, 18, 10,133,162,146,185,170,104,184,170, 48, 90,149, 52,203,190,103, 89, 22, 52, 77,227,236,217,179,224, 56, 14, + 35, 70,140,120,206,100,177, 44, 91,157,113,171,110,120,234,105, 0,247, 8, 33,221, 74, 43,224,123, 0,186, 87,248,190,191, 74, +165, 90, 0, 96,141,177,154, 12, 67,192,104,174, 66,112, 15, 2,155, 48, 11, 58, 73, 0,206, 93,190,133,157,223,172, 7, 0,120, + 55,109,139,145,195, 2,203,163,113, 70,174,103, 57,110,110,110,251, 50, 50, 50, 7,244,234,213, 11, 57, 57, 57,134,101,203,150, +161,101,203,150,104,210,164,137, 81,101, 84,205,157,115,218,189,123,247, 60,212,106, 53, 8, 33,198,152,179,231, 52, 41,138,194, +238,221,187,161,209,104,158, 91,216,182,251, 42,204, 27,238,133,137,239,238,194,103, 15, 14, 96,243,230,205, 53,110,187, 18,104, +169,177,110,188, 65,198,112, 45,215, 44,122, 71,254,214, 91,111, 49, 19, 39, 78, 68,124,124, 60, 38, 79,158,172, 57,123,246,172, + 46, 53, 37,229,152, 76, 16, 54,234, 43, 27,227,106, 53,229,114,249, 15,167, 79,159,198,129, 3, 37,190, 36, 58, 58, 26, 62, 62, + 62,230,149, 76,114,246, 65, 20,196,109, 68,232,137,251,104, 63,120, 47, 66, 79,140, 5,159,123, 82,210,198, 7,121,166,236,207, + 58, 80,149,230,129,172,172,172,114, 19,181,103,207, 30,179, 61,123,246, 12, 5,112, 28,192, 1, 0,200,206,206,254,210, 68, 77, +128,194,196, 81,195,135,130,149, 90,226,254,163, 68,116,239,216, 26, 78,142,142,184, 23, 21,131,184,164,236, 52,138,194,132,254, +157,100,107,212,106,221, 71,151,238,226,219, 90, 52, 41,119,119,247, 38, 7, 15, 30,148, 86,136, 64,151,159,227, 12,195,148,191, + 47, 51,222,117, 57, 62,203, 76,150,165,187, 69,232,138, 77,157,205, 67,195,246,192,199,107, 32,108, 7, 6,226,219, 51,103,240, + 48, 34, 82,163, 43,230,122,255, 5,101,244, 71,105, 54, 25, 62,124,248,213, 31,127,252,209, 38, 33, 33, 1, 23, 47, 94,132,183, +183, 55,138,139,139,141,185,225,173,164,169,209,104, 28,203,126, 67, 81,148, 99, 89,224, 93,167,211,149, 21, 70,217,137,104, 83, + 97, 57,155, 26, 52, 61, 43, 44, 87,102,174,188, 94,192,182,203, 20, 82,233,193,163, 71,246, 89, 68,222,191,136, 86, 1, 29, 96, + 97,221, 12, 2,159,138,172,236, 66,228, 60, 74,198,202,149,159, 97,233,178,197, 56,254,211, 33, 11, 95,191,128,195, 58,142,107, + 12, 64,243,210,148, 59, 69,166,134,156,216,179,133, 34, 2,212,105,247,229,146,162,199,202,113, 99, 95,103, 70,143, 30,141,227, +199,143, 35, 34, 34, 98, 75, 13, 38, 43,164, 66,100,126,106,248,197, 3, 91, 64, 8,212,233,247,229, 82,245, 99,229,248, 55, 70, + 50,111,141,233,135,235,191,109, 64,191, 86,143,195, 93, 29, 49, 44,167,212, 98,179, 12,178,228, 10, 92, 33,161,184, 94,193,108, +157, 7, 64, 85, 48, 88,231,241,255, 62,152,255, 4, 6,149, 26,171,169,207,222,152,176,117, 49, 88, 0,224, 3, 88, 80, 50,105, +232,206,165,239,184, 42,227, 35, 88,109,248, 53, 36,107, 5,178,245, 41, 39,180, 6,204,110, 3,234,103,127, 83, 92, 92, 92, 20, + 19, 19, 99, 54, 97,216, 48,116,242,247,135,139,189, 61, 26,187,187,195, 76, 46,131, 76, 42,169,116,203,106,116, 27, 2, 69, 17, + 95, 95, 95, 12, 30, 60, 24, 18,137, 4, 74,165, 18, 22, 22, 22,144,201,100, 85, 70,179,140,189,203, 37,132,128, 97, 24,132,135, +135, 35, 46, 46, 14, 54, 54, 54,184,114,229, 10,122,247,238,253, 92, 84,171,162, 57, 51, 37, 68, 95, 69,197, 95,102,196, 78,155, +162,197,243, 20, 10, 73, 0, 20, 79,103,162,152,106, 13,173,150,131, 86,171,197,183,151,245,248, 61,166, 8,122,189, 14, 90,173, +182,166,255,172, 14,218,213,213,117, 92,227,198,141,103,140, 29, 59,214, 32,147,201, 80, 84, 84,132,226,226, 98, 68, 68, 68, 24, + 6, 12, 24,152, 59,120,112,160,245,201,147, 39, 73,105,211, 97,154, 9,218, 89,110,110,110, 30,165,205,179, 89,117, 57,170, 41, +138, 42, 55, 49,207, 50,225,203, 72,176, 76, 73,153,108,217,178, 5, 60,207,131, 16, 82,109, 33,105, 40,234,215,101,171,214, 89, +175, 13,250, 14,214,118, 78,184,112,225, 2,255,203, 47,191, 20, 80, 64,244,195,136,136, 47,255, 3,156, 58, 8,232, 77, 89,191, +156,156, 28, 51,111,111,111,184,187,187, 67, 16, 4, 24, 12,134,242,232, 75, 86, 86, 22,212,106, 53,236,204,115,241,138,189, 59, +184,130,243, 72, 9,255, 4, 46, 22,247,177,235,180,206,240,106, 19,220,253, 27, 92, 56,190, 47,157,234,121,215, 12, 55, 71,103, + 15,208,196,128,228,244, 44, 12, 29,212, 15,140,212, 2, 79, 18, 50, 17,208,172,145,203, 27,255,233,236,194, 80, 28,230,175,217, + 59, 3, 16,190,173, 77,174,176,176,144,191,127,255, 62,238,221, 43,241,187, 86, 86, 86, 48, 55, 55,175,116,142,211, 52, 93,175, +136, 86,153,201, 90,181,165,183, 57, 45, 41, 66, 62, 31,130, 29,187,111, 33,192, 55, 16, 91, 67,111,104,248,180,236, 62, 95,104, + 52,209,251,254,193,193, 12,103,103,231,105,130, 32, 44, 37,132,228,118,233,210,197,105,239,222,189,182, 73, 73, 73,184,117,235, + 22, 62,254,248,227, 12,158,231, 57, 66, 8, 69, 8,249,228, 5,252,157, 80,193, 96,189, 72, 36, 74, 5,222,117,176,162,134,176, +180,149, 55,151, 95,248, 36, 83, 71,142, 21,115,194,215, 0, 12, 53, 94,220,104,250,191,135,246,111,113,117, 80, 9,232,161,234, +133,148, 52, 61, 86,189, 63, 30, 89, 89, 5,248,118,251,106, 0, 50,232, 57, 6,221,122,188, 14, 71, 71, 55, 76,157, 50,213,121, +203, 55, 91,223,225, 4,225, 11,188, 36,164, 94,221,252, 19,128, 16,149, 74, 21,241,206,212,169, 42,111,239, 55,161, 80, 40,176, +111,223, 62,236,221,184,145, 15, 2, 70,202,129,115,211,129,159,106,212, 9,253,191,206,172,233,211, 85,126,126,211, 33,151,203, +241,219, 47,223, 67,147,186,187, 96, 80, 39,232,139, 53, 24,212, 96, 48,177,123,122,130,202,150, 72,240, 8, 0, 36, 10,164, 0, +120,182, 25,236,159,102,176,202, 56,137,255,247,203,154, 90, 41,162, 85,231,107,167, 68, 22,182,125,246, 24, 47, 39,104, 41,221, +229, 19, 72,210, 10,252,218,135,122,230,118, 30,153, 23, 85,133,201, 42, 61,176, 5, 79, 79, 79,244,106,211, 6,195,186,118, 5, +203,178, 80,200,164,176, 84,152,129,240, 37,145,172,178,166,195, 26,234, 68, 84, 21,125,178,183,183,135, 84, 42, 45, 55, 88, 38, + 68,179,170,212, 20, 4, 1, 44,203,226,222,189,123,232,210,165, 11, 60, 60, 60,112,224,192, 1,244,239,223,255,185,166, 68, 83, + 77, 86,153,209,122,166, 25,175, 63,128,178, 72,150, 73, 70, 75,163,163,144,169, 11, 0, 69,249,131,227, 0,158, 0, 90,141, 6, +132, 0,132, 0, 6,189, 14, 26,141,166,252, 63,141,105,146,117,118,118,246, 52, 51, 51, 91,254,225,135,243,253, 2, 2, 90, 33, + 35, 35, 3,130, 32,192,220,220, 28,197,197,197,176,178,178, 66,167, 78,157,158, 44, 95,190, 60,133, 16, 76, 53,209,100,213,155, +178,125,126,230,204,153, 74,205,134,101, 83, 81, 74, 34, 38,190,183, 7, 50,182,164,105,169,172, 15, 79, 77,215,221,158,221, 58, +227,234,237,104,238,191,243, 55,104, 37, 89,183,214, 56, 11,194,206,196,122,108, 23, 33, 4,153,153,153, 72, 75, 75,195,144,161, + 67,177,247,199, 31,241,244,233, 83, 52,107,214, 12, 61,123,246,132,163,163, 35,158, 62,125,138,223, 47,105,161,205,201, 70,182, +238, 22,148,150,237,113,244, 66,140,246,227, 45,250,152,191,240,130, 49, 4,192,120, 43, 43,171,134,197,197,197, 41, 28,199, 29, + 4,112, 16,192, 72,150,101, 71, 42,149, 74,151,252,252,252,199, 40, 25, 77,116,172, 54, 49, 51,133,194, 94,174,176,130,192,105, +193,178, 44, 60, 60,188, 65,120, 29,114,242,213,152, 48,122, 48,110,223,139,194, 47,231,174,115, 6,131,240,149, 49,187,149, 97, + 24,210,164, 73, 19,164,167,167, 67, 34,145,192,204,204, 12, 22, 22, 22, 88,184,112, 33, 54,110,220, 88,110,178,234,106,180, 38, + 1, 77,172, 60, 45,174,127,186,169,196,100,165, 38,167, 32, 45, 81, 2,149,189, 19,190,218, 24, 84,148,243, 52,181,253,119, 64, +244, 63,189,146, 21, 4,225,147,164,164, 36, 71,150,101,157, 57,142, 67, 66, 66, 2,110,222,188,137,153, 51,103,166,101,101,101, +245, 64, 29,183, 81,161, 80,164,151, 69,178, 74,155, 14,171,107, 78,204,173, 16,201,202,173, 65,178,186,102,194, 70,222,238,150, +103,183,175,159,227,217,182,125, 39, 90,201, 90,229, 20, 62, 74,237,114,249,226,133, 78, 51,215,127,251, 78, 92, 78, 97, 63, 0, +177,213,137,202, 37,146, 1, 29, 58,119,102, 65,210,192,202,186,224,179,181,163,145,145,153,143,156,236, 2, 72,165,230,208, 25, + 24,240, 2,133, 78, 93,186,226,251, 93,251,209,124,202,100, 70, 38,145,244,229,116,186,151,198,104,149,178,250,235,175,191,246, +244,245,245,197,206,157, 59,113,238,135, 31,240, 86, 94, 30, 46,208, 52, 99,144, 72, 28, 78, 25, 12,219, 80,139,209,170,168,211, +188,121,115,124,247,221,119,216,189,123,119,252,184,222,233,135,231,140,131,163, 94,143,215,110, 61,128, 93,131,193,192,173, 7, +176,123,213, 23,141, 57, 22,143, 40,170,114, 58,168,224,224,224,238, 21,231,255, 48, 82, 80, 77, 19, 59, 11,160, 71,112,112, 48, +169, 56,175,245,194,169,242,153,190,186, 95, 67, 47,255, 87, 60, 41,195,129, 13, 72, 40,226,116, 31, 61,208,203, 30, 22,146, 57, + 81, 64, 80, 13,119, 16,132, 97, 24, 88,154,153, 65,101, 99, 83, 18,230,167,105, 64, 0, 4, 3, 64,241, 37, 6,128, 8, 20, 8, +111,210, 5, 3, 50,153,172,202,142,239,166,246,205,170,168, 89, 80, 80,128, 39, 79,158, 96,234,212,169, 80, 42,149, 37,206, 61, + 53, 21, 94, 94, 94, 96, 89, 22, 73, 73, 73,248,237,183,223,208,176, 97, 67,200,229,114,147,220, 86,133,232, 82, 75,148,140, 50, +108,153,146,146, 98,229,226,226, 2,147, 35, 90, 2, 65,177,150,130, 78,199,227,225,195,135, 72, 78, 78,198,147,199,143,208,182, + 40, 31, 4, 12, 8, 33, 38, 69,180,220,220,220,252, 27, 53,106,180,117,205,154, 53, 82,119,119,119, 16, 66, 96,107,107,131,226, +226, 98,100,102,102,161, 89,179,102,240,240,240,192,154, 53,107, 0, 96,239,159,109,178,158, 57,166,202,141, 86, 69,195,245,222, +127, 60,145,157,109, 1,134,161,203,141,115, 45,125,180,164, 0,208,163,223,112,246,236, 47,167,204, 57, 96,121, 42,195, 44,103, +107, 47, 71, 3, 47, 8,202,234,190, 79, 72, 72,128, 68, 34,193,161,131, 7,145,157,150,134,128,128, 0,180,107,215, 14,143, 30, + 61,194,237,219,183, 97,111,111, 15,149,123, 71, 92,120,172, 71,100,178, 26,214,214,214,136, 73,164,255,202,148, 1, 83,250,244, +233,243,241,151, 95,126,233,232,236,236, 44,201,200,200,240,221,180,105, 83,192,166, 77,155,102,189,243,206, 59, 78,239,188,243, +142,173, 74,165, 98, 83, 83, 83,155,188,255,254,251,175,134,132,132, 52, 4,176,174, 38, 65,115,115, 75, 59, 70,106, 14,138, 98, + 97, 99,109, 11, 86,102, 14,129, 99,193, 11,128,149,181, 10, 87,111, 31,194,149,176,130,105,233, 89, 56,104, 84,124,172,180,220, +237,237,237,159,139, 84,207,156, 57, 19,219,183,111, 47,111, 70,172,171,201, 90,181,169,183, 5, 85,106,178, 82, 19, 88, 80,218, +134, 56,241,211,181,220,156,167,169, 93, 94, 6,147, 85,118,141, 35,132,224,241,227,199, 40, 46, 46,198,165, 75,151,240,201, 39, +159,100, 60,107,178, 28, 29, 29,167, 88, 89, 89, 45, 43, 44, 44,252, 44, 53, 53,117, 67,173, 55,126, 37, 38,170,236,117,217,188, +202,230, 68, 35, 87,213,171,170, 72,150,135,139,226,244,237, 75,123,188,172,201, 93, 10,113, 83,129,135,249, 17,150,161,142,221, + 6,182, 29, 68,183,222,188,162, 65,187,105, 11, 79, 39,228,107,124,171,139,108, 9, 60,223,218,220,194, 18, 64, 58,110,221, 60, + 95,110,178,178,178,243,160,213, 51,208,234, 40,104,244, 52,122,245,121, 13, 27,183,238, 70, 82,122, 54,120,158,111,241,146,153, + 44, 59,127,127,255,233, 35, 71,142,196,242,229,203, 17,242,229,151,186,183, 41, 42,159, 5,200, 73,158,135, 64, 8, 69, 27,215, +137,189,146,206, 23, 95,124,241, 19,128, 49,107,102,162, 99, 78, 33, 38,184, 14, 38,118, 13, 6,151, 44, 56,226, 67, 2, 0,118, + 25, 33,149,171,204,192,192, 64,170,172,101,205,212, 22,182,191, 59,108, 96, 96,224,133,224,224, 96, 84,156,215,244, 3, 75, 39, +223,129, 31,204,157,177,182,109,255,174, 84,202,220,190,200,206,215,112,139, 34,245,178, 68,117,205, 38,171, 34, 31,108,218,132, +219,209, 37,231,177,187,163, 35,230,191,241, 6, 8, 7, 92,137,136,196,254,144, 16,140,238,211, 7,230, 10,133,209,145, 13, 65, + 16,170,140, 98, 85,140,102,153, 26,117,202,205,205,197,193,131, 7,209,174, 93, 59, 40,149, 74,176, 44,139,150, 45, 91, 34, 42, + 42, 10,141, 26, 53, 2, 69, 81, 56,122,244, 40,134, 13, 27,134,216,216, 88,116,236,216,209, 34, 46, 46,206,100,163, 21, 25, 25, +105, 69, 8,233, 86, 22,253,168, 43, 90,173, 22,247,239,223,199,224,193,131, 97,107,107, 11, 55,183,189, 8, 57,189, 7, 74,255, +183, 64, 81, 48,201,104,241, 60, 63,105,208,160, 65, 82,138,162,160, 86, 23, 67,161, 48,131,185,185, 5, 44, 45,173,208,164,137, + 47,146,147,147,209,191,127,127, 93, 76, 76,204,230,148,148,148, 3,166,174,171,159,159,159,249,211,167, 79,223,106,208,160,129, + 12, 0,204,204,204,154, 53,106,212,104, 94,108,108,108,129,169, 81,173, 50,131, 69, 81, 20, 24,134, 41, 55, 90, 44, 77,195,197, +217,177,252,125,105,255, 52,170, 6,173,252,164, 44,173, 28, 0, 60, 61, 61,177,241,155,227,244,160, 65,131, 48,107,214, 44, 24, + 12, 6,108,222, 92, 50,200,110,236,216,177,208,235,245, 56,124,184,100,144, 36,203,178, 53,134, 77,110,222,188,137, 91,183,110, +193, 96, 48, 32, 47, 47, 15, 63,255,252, 51, 46, 92,188,136,125, 71,127,197,211,199,143,208,210,215, 11,147, 39, 79,130, 68, 34, +193,174, 93,187,208,165, 75,151,191,244,130, 32,145, 72,198,109,223,190,221,101,231,206,157,185, 71,143, 30, 45,234,208,161,131, + 60, 40, 40,200,113,227,198,141, 42,157, 78,135,217,179,103,167, 95,191,126, 93, 59,116,232, 80,243,109,219,182,185,188,242,202, + 43,125, 57,142,171,202,104,153, 3, 24, 13,224,205,156, 2, 29,155, 91,160,134,192,233,240,248,233, 19,228, 21,234, 32,240,122, +196, 39, 38,163, 80,195, 35, 43,187, 0, 45, 91,247,251,250,252,249,243,139,245,122,253, 34, 0,193,181,173,103, 68, 68, 4,174, + 95,191,142,167, 79,159,226,241,227,199,149,157,226,148, 41,216,189,123,183,201, 17,173,170, 77, 22, 3, 74,219, 8,193, 71, 67, +115,211, 31,165,188, 52, 38,171,244, 26,180,212,197,197,101,169,139,139,139,226,204,153, 51,214, 13, 26, 52, 0,199,113,186,103, + 35, 89, 61,122,244,248,104,251,246,237, 46,141, 26, 53,154, 9, 96,195,223, 97,221,105, 26, 83, 62,219, 50,221,193, 82, 22,159, +140,135,235, 74,115, 9, 50, 64,113, 62,112,254, 71,176,157,151, 60,153, 57,244, 67,219, 5, 59,151, 79, 17, 32, 84, 59, 66, 54, + 38, 54, 1, 91,182,108,196,156,217, 19,240,253,183,159, 65, 16, 88,104, 13, 12, 60,189, 59, 64,171, 23, 64,209, 44, 2, 90,183, +193,185,243,151, 32,161,129,131, 59,183,188,100, 62, 11,217,225,225,225,155,143, 30, 61,250,238,172, 89,179, 32, 8,130,108,217, +150, 45,234,140,140,140,213, 48, 45,255,213,179, 58,195,182,108,217, 18,189, 96, 99,198, 79,115,198,129,121,122,130,202,190,245, + 0,118, 35, 62, 36, 56,180,150,194,171,190,200, 86, 86, 93,197, 95,124,102,254,114, 24,173, 50, 39, 89,113, 94, 21,173,125, 26, +174,176,182,179,157, 68, 91,186, 57,204,159,245, 54, 27,155,170,193,225, 6,111, 20,254,246,195, 87,230,169,156,252,235, 24,104, +130, 76,249,227,253,191,253, 86,254,250,243,189,123,171,252, 46,101,196, 8,163,239,204,170,139, 98,153, 26,201, 2, 0,165, 82, +105,211,183,111, 95,244,238,221, 27,175,191,254,122,121,159,172, 86,173, 90, 97,223,190,125, 24, 62,124, 56,238,220,185, 3, 23, + 23, 23, 52,109,218, 20, 77,155, 54,197,169, 83,167, 76,189,200,129,231,121,248,251,251,151,141, 58,108,153,152,152,104, 85,215, +130,212,106,181,200,202,202,130,157,157, 29,100, 50, 25,218,183,111,135,119,223,107, 15, 7,151,239,224,239,231,139,162,162,162, +242,225,239, 70, 84,182,254,141, 27, 55, 70, 70, 70, 6, 50, 50, 50,160, 82,169,224,234,234, 10,103,103,103,172, 91,183,142,108, +216,176,225, 23,189, 94,191, 57, 51, 51,211,228, 72,150,179,179,115, 87,138,162, 62, 82,171,213,178, 10,119,184, 50,149, 74,117, + 76,173, 86,175, 78, 73, 73, 49,186, 35, 40, 69, 81,208,235,245,160, 40, 10, 39, 31,187,162, 72, 71, 33, 63,241, 22,102,253,199, +171,146,241,146, 72, 36,181, 54,151, 18, 66,138,198,140, 25,227,232,225,225,142,132,152, 8, 28, 58, 68,240,229,151, 95,150,141, +138, 68,116,233,141, 65,217,251,158, 61,123,194,219,219, 27,196,132, 92, 25,130, 32,224,222,189,123,216,123,236, 2, 92,188,252, + 16,255,240, 62,110,159, 58,129, 6, 42, 59, 52,111,221, 6, 6,131,161, 94,169, 55, 94, 4, 6,131, 97,135,143,143, 15,209,233, +116, 23, 0,108, 12, 11, 11,155,144,146,146, 50,251,248,241,227,174, 35, 71,142, 76, 62,113,226, 68, 16,128,157, 97, 97, 97,211, + 87,174, 92,217,155,227,184, 42, 71, 11, 50, 12,243,253,251,239,191,223, 99,228,200,145,148,148, 54,232,206,156,222,197,114,156, +129,250, 96,209, 14,254,252,229, 11, 52,199, 25,168,215,199,188, 47,156,250, 45,140,158,246,222,231,124,171, 14,131, 16, 30, 30, +238, 28, 24, 24,184,210, 96, 48,212,104,180,202, 34, 85,213, 69, 40, 25,134,193,132, 9, 19,176,111,159,241, 61,168, 38, 3,141, +172,188, 44,174,175,218,212,199,130, 98, 11, 43,152,172, 87, 16,124, 52, 52, 55,237, 97,242, 75,101,178, 0, 32, 43, 43,235, 27, + 0,223, 8,130,144,102,110,110,142,130,130,130,170,142, 63, 69, 88, 88,152, 66, 38,147,161, 95,191,126,118, 33, 33, 33,209, 52, + 77,111, 72, 78, 78,174,214,113, 84,213, 76, 88, 85,115, 34,234, 49,234,208, 86,133,192,246, 93, 91, 91, 62,176, 94,110,169, 96, + 53,119, 26, 68, 43,172, 40, 0,121, 90,167,199, 87,227, 70,231, 83,233,242, 86,109,122,190, 10, 43,214, 60, 48,151, 43,168,210, +104,209, 12,115, 59, 47, 39,119, 64,126,129, 14,151,175,132, 99,204,232,198,208,234, 41, 8, 2,141,194, 34, 45,192, 72, 64, 3, + 24,251,198,120, 16,138, 69,118, 90, 50, 24,134, 9, 3,199,225, 37, 99,225,244,233,211, 7, 44, 90,180,168,225,252,249,243, 49, +127,254,124,175,237,219,183,127,179,106,213,170,249, 25, 25, 25, 45, 80, 75,242,241, 26,116, 26,156,216,183,100,238,177, 75, 91, +243, 6,117, 82, 63,124,213,183, 36,242,245,170, 47,178, 37, 18, 60, 98, 25,100, 17, 82,185,155, 81, 96, 96, 96,247,138,243,127, + 24,207,118,130, 47,127,111, 84, 31,173,198, 13,221, 94,107,221,202,255,189,197,139, 22, 91, 70, 93, 61,143, 5, 43, 54, 18,159, + 54,125, 11,190,185,116, 91, 87,104,238, 61,160, 48,243,209, 21, 99,253, 5, 0,188,214,107, 56, 90, 54,107,247,220,151, 93,122, +150, 36,107,191,124,238, 38,210, 50,146,140,174,108, 75,205, 65,149,125,178,140, 25,210,255, 44,106,181, 58, 55, 60, 60,220, 49, + 49, 49,177, 82,199,119,111,111,111, 80, 20,133,208,208, 80, 92,191,126, 29, 99,198,140, 1,203,178,144, 72, 36,184,112,225,130, + 73,209,152, 10,209,165,178, 81,135,253,221,221,221,171, 27,109, 88,171,150, 90,173, 70, 94, 94, 30, 78,159, 62,141,198,141, 27, + 99,213,170, 85,112,117,113,194,226,197,115, 33, 8, 2,242,243,243,193,243,188,177, 17, 45,161, 44, 90, 36, 8, 2, 50, 50, 50, +208,176, 97, 67,108,218,180, 9, 65, 65, 65, 43, 83, 82, 82,142,155,186,142, 30, 30, 30, 54, 60,207,127, 48,104,208,160,190, 67, +135, 14, 69,255,254,149,243,177,254,248,227,143,150,135, 15, 31, 94,253,213, 87, 95,189,166,215,235,215,164,167,167,103, 24,163, +251,221,119, 37,233,151,148, 29,150, 98,193,200, 6,120,115,198, 46,172, 91,119, 4,114,185,188, 82,197,187,124,249,242, 26, 77, +140, 64,136,143, 52,243,106,242,220, 15,191,112, 92,189, 58, 4, 33, 33,233,160,105, 26, 46, 46, 46,160,105, 26, 79,158, 60, 1, + 77,211,240,242,242, 2, 77,211, 72, 74, 74, 42,235, 19,152,131, 42, 70, 61, 86,125, 23, 78, 67,163,209, 32, 33,254, 41, 18, 99, +162, 97,145,159, 10,149,149, 18, 57, 17,247,208,114,242,148,242,252, 79,127, 49,187,117, 58,221,238, 10,239,191, 56,113,226,132, +142,162,168,215, 81,210, 79,163, 44,162,177,146,227,184,149,213,137,116,232,208,161,213,162, 69,139, 36,101,233, 54, 92, 61, 63, +229,244,122,189, 0, 0,190, 45,187, 85,114,251,143, 30, 61,194,186,117,235, 80, 84, 84, 4,169, 84, 42, 53,102, 63, 8,130, 80, + 62,194,176, 42, 19,102,138,201, 2, 0,123, 47,247,175, 67,111, 93,224,239,198,108, 85,135, 61,248,217, 44, 37,158, 6,173,123, +121, 77,214,179,145, 45,119,119,247,165,130, 32, 16, 66,200,146, 10, 95,201, 61, 61, 61, 47,157, 57,115,198,158,227, 56,124,245, +213, 87, 54,169,169,169, 54,221,186,117, 91, 0,160, 90,163, 85, 85, 51, 97, 85,205,137,168, 48,234, 80, 46,151,219,233,116,213, + 6, 79,158, 27,117,200,243,104, 98,101,105,131, 28, 36, 66,235, 96,104,149,107,207,101,159, 77,153,114,199, 53,174,117, 51,115, +222,208,144,206,215,193, 77,105, 3,129,144,106,135, 70,107, 13,134,159,239,220,186,221,207,211,163, 49,115, 60,248, 34,134, 12, + 27, 9,173,150,134,198, 64,129, 98, 36,160, 24, 41, 90,180,108,141,166,205, 91,130, 0,184,249,251, 85, 78,103, 48,156,125,153, +202,222,165,243,187, 99, 40, 10, 27, 64, 4, 82, 69, 30,173,134,195,134, 13, 91, 13,224,189,218,116, 28, 59,188, 59,134,166, 75, +116, 42,230,209,122,255,221,233,136,248, 93, 98,125,241,214, 90,105,255, 14, 56,153, 17, 66, 65,169,248,255,168, 67, 9, 93,175, +212, 28,255, 20,195, 85,187,209,242,240,240,176,177,146, 43,190,123,103,242, 36,203,184,187,215,144, 26, 25,138, 43, 23,163,115, +246, 31, 62,146, 93,148,149, 62,217, 4,147, 85,222,204,103,239,220, 0,222,126,207, 27, 45,133,133, 10, 0,224,237,215, 14,140, +185,105,105,132,170,138,102,213,197,100, 85,188, 96, 87,149, 67,107,218,180,105,216,190,125, 59, 58,119,238, 12, 31, 31,159,242, +139,189,169, 81,179, 42,162, 75, 38,143, 54,172, 72, 65, 65, 1,188,188,188,176,109,219, 54,132,133,133,193,210,210, 18, 99,198, +140, 65, 65, 65, 65,185,193, 50,182, 51, 60, 33,228,209,153, 51,103,218,142, 26, 53,138, 72, 36, 18, 42, 55, 55, 23, 54, 54, 54, +216,180,105, 83, 81, 74, 74,202,201, 58,152,172,145, 82,169,116,238,232,209,163, 25, 95, 95, 95,164,165,165,193,202,202,202, 64, + 81,148, 4, 0,108,108,108, 12,102,102,102,152, 62,125, 58, 2, 2, 2,186,206,159, 63,191, 51,203,178,155,146,147,147,119,213, +116, 44, 81, 20, 85, 94,161, 78,222,112, 31, 58, 93, 73, 5,189,121,243,102,148,246,117,251,127, 19, 65, 76, 12, 96,196, 72, 22, + 11, 11, 11,248,248,248, 84, 89,246, 93,187,118,197,205,155, 55, 75,154, 38, 89, 22,142,142,142,184,114,229,138, 81, 35,169,202, + 18, 65,134,135,135,195,207,219, 1, 97, 33,103,224,160,148, 32,192,213, 25,238, 93,187, 35, 58, 58,250,175,140,102, 81, 40,233, +135,209,167,244, 24,220, 1, 96, 90,133,247,155, 0,124,109,138, 32,199,113,132,166,105, 42, 33, 33, 65,175, 84, 42, 41, 59, 59, + 59, 86, 46,151, 67,171,213,150, 27,174, 71,143, 30, 33, 56, 56, 24,137,137,137,176,179,179,163,173,173,173,161,215,235,115,140, +209,111,210,164, 9,156,157,157, 43,117,124,159, 60,121,114,157, 76,214, 4,192,127,251,167,107, 26,200,105,198,218,207,225, 53, + 60,190,255, 68, 67,235,160,248, 55,152, 44, 0,200,205,205,253, 6,192, 55,101,239, 29, 28, 28, 38, 50, 12,179, 88,171,213, 90, + 95,184,112,193, 70,165, 82, 81,187,118,237, 50, 44, 89,178, 36,151, 97,152, 28,138,162,214,255,245,230, 16,145,153,121, 49, 94, + 18, 91, 87,225,174,134, 92,157,157,176,160,105,142,164,177,138,106,238,143, 97,233, 81,151, 39,114, 49,157,210, 82, 82,105, 2, + 33,178,134,107,240,142, 5,139,150,127, 16,125,255,182,167,194, 74,129,105,211, 23,225,228, 47,231, 64,209, 18, 92,186, 26, 10, +157,158, 71,102,118, 30, 70,143, 29, 7,119, 23, 7, 68, 94, 63,157,193, 9,194,166,151,203,100, 11, 27,251, 13,153,104, 43, 55, + 83,150,238, 19, 30,187,191,157, 11,154,222,128,143, 63,254, 24,254,254,254, 51,194,195,195, 63, 65, 45,121,180, 40, 74,216,216, +162,251, 88, 91,169,188, 68,135, 8, 60,182, 29, 92, 80,154, 71,107, 14, 54,125,115,184, 69,115,239,199,203,106,202,163,245, 18, +153,172,138,243,154,141,150,151,151,151,220, 92,130,169, 18,134,157,255,206, 27, 67, 85,233, 49, 17, 72,140,186, 93,210,188,160, + 87,235, 83, 31, 70, 25,147, 10,189, 15, 42,231,239, 32, 53, 53, 93,105, 52, 70,221,209, 87,210, 44,171,112,159,141,102,153,104, +178,158,211,172,104,182, 42,230,205,242,240,240,192,234,213,171,141,201,163,245,236,182,151,209, 31, 37, 29,224, 43,118,134,239, +111,164,201,170, 82, 83,165, 82, 33, 43,171, 36, 67, 66,143, 30, 61,208,163,199,255,199, 51,232,245,250,242, 40,150,165,165,101, + 85, 17,173,231, 52,205,204,204, 22, 28, 57,114,100,210,213,171, 87, 71,205,155, 55, 79,210,187,119,239, 50, 51, 87, 12,227,158, +237, 86, 73,147,231,249,233,167, 79,159,102, 4, 65,192,182,109,219,112,243,230, 77,162, 84, 42, 63, 82, 42,149, 27,205,204,204, +120,181, 90, 61,109,202,148, 41,227,150, 45, 91, 70,119,237,218, 21,215,174, 93,163, 27, 54,108, 56, 30,168,148,196,178,202,109, + 15, 13, 13, 5, 77,211,224,178,227, 49, 99,193,126,152,155,177,184,127,255, 62,178,179,179,159, 75, 98,106,204,254,172, 24, 41, + 41,155,186,118,237, 90,222, 12,217,190,125,123, 48, 12,131, 59,119,238, 84,215, 12, 91, 81,147,216,219,219,151, 31, 31, 82,169, + 20,231,206,157,195,138, 21, 43,224,105,103,131,156,168, 48, 56,247,232,133,190,147,166, 96,204,152, 49, 96, 24, 6,118,118,118, +229,145, 95, 35,142,165,250, 80, 81,115,146,159,159,223,248,200,200, 72,247, 22, 45, 90,184,132,135,135,247,244,247,247,247, 10, + 11, 11, 43,123, 47,135,113,125,115,202, 53,111,220,184,113,104,227,198,141,211, 39, 76,152, 32, 21, 4,129,143,139,139, 51, 0, +160,156,157,157,153, 27, 55,110, 8,199,143, 31,135, 90,173,134,187,187, 59,237,230,230, 70,157, 61,123, 86,136,138,138, 10, 37, +132, 44, 50,102,219,121,158,175,148,198,161,236,245,143, 63,254,104,242,249,222,160,105,147, 85,189,187,249,122,100, 38,223, 65, + 74, 82, 12,248, 60,149, 62,248,232, 9,173,137, 38,235,143, 46,163, 63, 83,115,249,195,135, 15,221,180, 90, 45,100, 50, 25, 54, +111,222,172, 95,189,122,117,100,102,102,102, 23, 84, 61,162,188,146,102, 29, 71, 29,102,215,160,249,220,168,195,188, 44,156, 60, +122,236, 70, 91,139, 97, 59, 48, 35, 57,163,188, 99, 35,161, 40,187, 35, 78,205,186, 40,219,181, 72,162, 79, 45,165, 11,248,226, +147, 53,108,187, 78,173,211,141, 28, 54,124,236,175,251,246,237,181, 88,178,116, 41,174,132,134, 33, 43,183, 16, 2, 97, 32, 80, + 20, 22, 47, 94, 2,103, 7, 59,228, 39, 63, 44,214,234,245,195, 80, 57,135,214, 63,190,220, 41,138,158,121,246,248,174, 13, 52, + 5,161, 40,237,129,156, 41,136, 81,190, 57,102, 24, 59,114,228, 72, 28, 57,114, 4,225,225,225, 91,107, 48, 89,229,154,132,208, + 51,195, 46,236,223, 64, 1,130, 58,227,129,156, 45,124,172, 28,255,198, 48,118,204,152, 49,248, 41,248, 42,246,157,120,188,101, +223, 9,156,192,203,141,233,153,225, 45, 89,132,119,105,214,200,173,107,235,230, 10,150, 87, 35, 49, 42, 6,217, 69, 26,156,141, +136,203,165, 9, 93,231,220, 58, 37, 23, 72, 41,226,227, 31, 86,113,103,165, 40,173,208, 53, 38,105,210, 52, 93, 41,154, 85,159, + 72, 86,197,245,116,114,114,170,244, 56,151,138, 21,119, 89, 31,160, 58,164,118, 88, 16, 31, 31,111, 21, 31, 31, 15, 66, 8, 66, + 67, 67,173,218,183,111,191,160, 62,209,172,185,115,231,150, 71,173,158,157, 87,245, 89,109,148,118, 74, 15, 50, 24, 12, 7,231, +207,159, 63,163,125,251,246,253,150, 46, 93, 74,193,132, 7,240, 62, 19,205,225, 4, 65,192,249,243,231,113,228,200, 17, 94,175, +215, 79, 77, 73, 73, 9,171,176,200, 87,183,110,221, 58, 59,124,248,240, 93, 15, 30, 60, 96, 34, 35, 35, 65, 72,237,227, 78,213, +106, 53,124,124,124,192,113, 28,214,206,240, 64, 65, 65, 11,112, 28, 7,158,231, 97,110,110, 94, 30,197,171,104,158,107, 59,142, +120,158,127,206,104,133,134,134,130, 97, 24,116,233,210, 5,183,111,223, 46,143,104,213, 22,129,210,235,245,241, 78, 78, 78, 78, +203,151, 47, 47, 95,175,140,140, 12,156, 57,115, 6, 29, 58,118, 66,179,169,211,144,156,156,140,245,235,215,195,213,213, 21,171, + 86,173, 66,118,118, 54, 56,142,251,179,195,233, 3, 34, 35, 35,221,223,120,227,141,244,176,176, 48,247,224,224, 96,155,192,192, + 64,243,177, 99,199,166,135,133,133,185, 83, 20,213, 9, 38,118,130, 22, 4, 97,225,226,197,139,127, 89,181,106,213,130,247,222, +123,175,253,132, 9, 19, 36, 18,137, 68, 72, 74, 74,226,246,238,221, 75,249,248,248,208, 82,169,148, 58,125,250,180,240,251,239, +191, 95,231, 56,110, 45,128, 75,166, 68,156, 43,154, 44,134, 97,140, 53, 89,149,152,237, 40, 31,111, 73,103,116,217,184,121, 53, +237,235,237,174,255, 97,239,153,132, 75,215, 30,198, 50, 90,110,246,119, 53,164, 6,120,153, 97, 24,230,128,159,159,223,196,153, + 51,103,154,245,239,223, 95,190,108,217,178,188,130,130,130,234, 76, 86, 21, 55,204,127,202,168,195,111, 23,206, 11,158,253,126, +139,137,141,254,235,220, 0, 33, 69,233,200, 97, 25,218,202,134, 70,107, 47, 6, 5,153,143, 84, 39,126,221,249, 4, 64,109,121, +217,110,220,186, 23,222,167,121,139, 86,135,215,174, 90,235,248,209,135,243, 37,135,131,127, 6,225,244, 8,189,112, 1, 22, 82, +158, 68,221, 10, 73,211,234,117, 67,241, 18, 62,130, 39,229,202,215,251, 0, 28,179,179,179,187, 59,105,194, 4, 31, 63,191,177, + 80, 42,149, 56,116,232, 16,118,127,245, 21, 31, 4,140,146, 3,183,167,215,146, 79, 47,253,122,185,206,157, 41,147, 38, 53,105, +221,250,191, 80, 42,149, 56,120,240, 32,118, 5, 5, 25,173,243, 15,167, 44, 51,252, 73,252, 63, 67,124, 45,125,180,104,170,224, +250,195,184,194,208,135,113,133, 16, 8, 17, 8,209,210, 52, 18,138,244,250, 85, 15, 31, 39,213,201, 20,148, 53, 29,174,252,116, +230,139,107,243,168, 96,126,234, 58,164,187, 10,147,149, 88,241, 25,105, 21, 43,233,234, 94, 27, 12,134, 68, 35,229,215,120,122, +122, 62,247, 89,221, 67,191,196, 36,147,101,108, 30, 45, 0,200,202,202, 74, 1,240,209,181,107,215,126,236,215,175,223, 20, 0, + 73,117, 44,163,109,221,187,119,159, 10,128,161, 40,106,107,114,114,114,216,115, 39,124, 74, 74,180,171,171,235,231,222,222,222, +211, 74,110, 76,169,109,181, 84,228,143, 91,180,104,161,175,170, 44,170,123, 47, 8, 66,173,101,148,155,155,139,118,237,218, 61, +247, 76, 75, 66, 8,226,226,226,202, 34, 78,229,251,190, 38, 3, 87, 88, 88, 56,237,221,119,223,253, 70, 34,145,120, 2,160,202, + 76, 46,207,243,204,215, 95,127,173,224,121,158, 1, 64,209, 52,205, 73, 36, 18,205,145, 35, 71, 56,142,227,226,181, 90,237,180, + 63,249, 2,113,144, 42,121, 20, 67, 81,100,100,164,111,105, 36, 43, 49, 60, 60,252,206,190,125,251, 84, 0,246,215, 81,247, 82, +113,113,241,165,213,171, 87,119,221,188,121,243,194,105,211,166,181, 27, 51,102, 12,219,163, 71, 15,156, 60,121,146, 63,127,254, +124,168, 90,173, 94, 99,138,193, 42, 45,203, 60, 15, 15,143,114,195, 85,203,185, 92, 99, 71, 94,123, 47,249,198,113,111,187, 42, +182,173, 57, 83,152,153,172,187,106, 40,212, 45,218, 9,132,227, 95, 76, 90, 90,218, 60, 0, 75,214,175, 95,159, 28, 16, 16, 32, +151, 74,165, 58, 99, 77,214,159, 8, 39,228, 22, 14,252,178,239,136, 99,221, 23,191,235,221,183,103, 23,165, 71, 3, 71,183,168, +152, 52, 60,186,118,178,232,238,137, 79,159, 18,109,206, 16, 0,198,244, 92,255, 93,171,215, 55,158, 59,127,238, 12,153, 68,210, +143,231,249,150,189,207, 30, 37, 12,195,132,233, 12,134,179,165,205,133,154,151,184,200, 87,126,254,249,231, 62,126,126,126, 56, +116,232, 16,206,238,217,131,209,153,153, 56,199, 48, 12, 45,149,218,159,208,235,191,128,113, 6,105,229,186,117,235,154,248,251, +251,227,192,129, 3, 56,189,107, 23, 70,213, 77,167,186,186,174, 45, 0, 85,233,219, 76, 0, 15, 0,188, 10,192, 12,128, 22, 37, +143,118,114,168, 88,133,149,126, 87,246,253, 69,138,162,254,200,142,176,181,103,134,127,150,240, 71, 79, 95,125,209,107,161, 86, +171,179,125,124,124, 76, 26,115,109, 48, 24,106,108,195,229, 56, 46,177, 81,163, 70, 70, 71, 45,140, 49, 69,217,217,217,109,254, +192,194,168, 87, 95,172, 74,149,136, 32, 60,117,113,113, 17,202, 42,253,170, 76, 88, 85,159, 17,224,137, 41,255,147,154,154,250, + 0,192,251,117, 93,207,228,228,228,195, 48,226,161,209,198, 46, 7, 0, 57, 57, 57, 47,252, 97,190, 20, 33, 73,203,150, 45, 51, +201, 96,131,144,154,204,103, 88, 97, 97, 97,123, 99,254, 91,175,215,227, 47,101, 63,176,208, 0, 0, 32, 0, 73, 68, 65, 84,228, + 64,233, 68,135,135,135, 79,161, 40,170, 63, 74,154, 4,182,226,197,100,243,190,148,159,159,127,233,179,207, 62,235,186,109,219, +182,217,132, 16,228,231,231, 7,153,106,176,202,239,158,211,211, 79,190,168, 13,207, 78,211,253,182,119,107, 98, 47,117,174,126, +246,246, 66,221, 46,136,148, 7,163, 8, 33,223,191,249,230,155, 29, 0,236,172,175, 88, 53,163, 14,235,203, 19, 33, 39, 47,224, +220,220, 21,147,206,217, 88, 14, 2,207,250, 66, 71,159,128, 46,235, 36,128,239, 96, 92, 55,135,242,237,229, 4, 97, 29,167,211, +173,171, 80,185,252, 27,202,217,206,223,223,127,246,196,137, 19,177,100,201, 18,156,254,226, 11,253,219, 20,149, 39, 1,200, 47, + 37, 55,154, 52, 5,124,104,172,206,248,241,227,177,100,201, 18,156, 90,187,182,174, 58, 53,161,162, 40, 42, 24, 0, 22, 44, 88, +176,104,245,234,213,182, 11, 23, 46,108,185,102,205,154, 85,165,239, 35,202,190, 47,173,235, 2, 23, 46, 92,216,188,194,247, 5, + 0,110,252,193,251,179,202,204,240,127, 52,125, 68, 77, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, 53,235, 3, 33,100, 80,201, +172,250,121,117,175, 43,204,255, 18, 88,136,136,136,136,136,136,136,136,252, 3,169, 24,197,170,203,247, 47,144,178, 62, 90, 21, +217, 6,148, 12,235,174,206,149,154, 50,234,161, 46,206, 54, 68,212, 20, 53, 69, 77, 81, 83,212, 20, 53, 69,205,127,157,102,109, +218,207,253,158, 16, 50,136,162,168, 96, 66, 72, 96,117,243, 50, 99,245,236,235, 10,243, 23,214,237,160, 10,202,250,102, 61,215, + 71,235,143, 70, 12,171,138,154,162,166,168, 41,106,138,154,162,166,168, 89, 47,202,154, 0, 1,144, 5, 11, 22, 44,252, 27, 54, + 29,186,148,154,172,138, 19,128, 26,154, 14, 9, 57,200, 36, 37,193, 74, 38, 83, 74, 1, 64,167, 43,214,187,185, 33,159,162, 70, +254,149, 15,188, 21,249,103, 82, 54,220, 59,237, 5, 47, 43, 34, 34, 34, 34,242,239, 32,163, 44, 82, 5, 32, 3, 0, 85,250, 94, + 87, 58,207, 40, 53,100,207,190,174,244,253, 31, 72, 10,170,137,100,177,213,153,172,204, 76,165, 3,203,230, 52,225,121, 77, 83, + 0, 96, 89,250,126,102,166,109, 52, 33, 7, 51,235, 98,182, 28, 28, 29,111, 73, 24,198,205,152,101, 13, 60,159,148,153,150, 86, + 57,117, 60, 69,189, 12, 6,207, 88, 19, 81, 31,179,241,135, 27, 21, 7, 7, 7, 39, 39, 39,167,255, 88, 89, 89,117,204,205,205, +253, 61, 35, 35,227,167, 26,158,123,184,154,162, 48,191,228,184,194,103, 0, 22,214, 32,109,202,178,207,226,163, 84, 42,103, 80, + 20,229, 95,122,130,133, 23, 23, 23,111, 6,240,240, 95,120, 65, 50, 3, 48,148,101,217,241, 14, 14, 14,237, 82, 83, 83,151, 1, +168,107, 54,111, 22,192, 92, 27, 27,155,209, 54, 54, 54,141,178,179,179, 99,243,243,243, 15, 0, 88, 7,160,214,161,210,203,222, +115,233,216,163,127,143,143,206,159, 62,191,114,217, 87, 41,215,158,251,126,174,139,125,191,190,157,151,156, 63,113,117,249,162, + 77,201,217, 38,174, 27, 93, 58, 1, 37,163, 35, 9,158, 79,246, 90, 95, 36, 0, 6, 3,232, 1,224, 60,128, 19,198,108,119, 53, +116, 0,176,168,116,157,215, 1, 56,247, 55, 63,142,204,157,156,156,214, 2, 24,204,178,108,100, 82, 82,210, 84, 0,137,127,241, + 58,177, 0,218, 2,240, 71, 73, 26,142, 27, 48, 46,133, 67,173,216,219,219, 7,178, 44, 59,163, 52,181,203,230,172,172,172,224, +191,107,193,200,100,178, 32,103,103,231,255,170,213,234, 98,138,162, 72,197,124,143, 28,199, 37,102,102,102,182,121,217, 46,106, + 20, 69,221,248,155,175,226,212, 42, 62,171, 62,143, 86, 82, 18,172, 88, 54,167, 73,122,106,216,232,228,148,123,163, 0,192,213, +165,229, 1, 71,231, 22,251,147,146,100,122,103,223, 97, 22, 18, 37,187,153, 97, 36,173, 52, 58,173,131,132,149,100,234, 57,195, + 29, 90, 71,102,164, 62,248,169,202,100,139, 18,134,113,123, 26,125,206,145,211,103, 67,162,112,133,196,204,179,218,181,117,117, +117,173,211, 86,218,218, 54,178,212,203, 21,179, 37, 18,166,175, 64, 56,127, 34, 0, 52, 37, 9,231,120,195,175, 82,173,246,203, +156,156,216,130,186,238, 65, 95,123, 56, 19, 96, 12, 40,244, 5,193, 89, 10,216,247, 32, 11,169, 38, 72, 24,107, 34,234, 99, 54, + 42,254,118, 61,128,121, 47,250, 72,114,115,115,179, 13, 12, 12, 12, 90,177, 98,133,153,133,133, 5, 21, 31, 31,223,255,195, 15, + 63,236,118,243,230,205,247,147,146,146,146,159, 53,125, 20,133,249,130, 64,104, 0,160,105,234, 67,149,202, 81,201, 48,204,115, +185,141,120,158, 87,102,100,164,207, 20, 4, 66,149, 46, 59,159, 16,108, 48,198, 48, 42, 20,138,177,254, 45, 90,189,191,246,243, +117, 22, 78,142,142,230, 28, 47,232,159,196, 61, 85,126,180, 96, 94,251,152, 71, 15, 55,104, 52,154,189,117, 57,175, 25,134, 25, + 45,151,203, 3, 1,248,149,126, 22,165,213,106,131,121,158,223,111,108,133,238,228,228,116,145, 97,152, 6,166,252, 49,207,243, +241,105,105,105, 93,234, 88, 68, 35, 61, 61, 61,191,235,222,189,187,178, 93,187,118,144,201,100, 88,178,100,201,220,148,148,148, +218,140, 22, 11, 96,174, 82,169, 28,109,110,110,222,168,176,176, 48, 70,173, 86, 31,150,201,100,125, 54,108,216,224,209,185,115, +103,203,180,180, 52,138, 97, 24,167, 83,167, 78,189, 21, 20, 20,212,159,227,184,222,181, 85,114,121, 49,228, 35,249, 96,191,174, +121, 49,231, 62, 2, 48,224,217,239, 57,141, 98, 60, 97, 60, 2,213,228,118, 66,169,249, 48,218,100, 73, 36,146, 13,206,206,206, + 19, 53, 37,185, 2,200,179, 21, 14, 0,232,116,186,156,220,220, 92,223,186,156,242, 0, 38,219,216,216, 76,252,224,131, 15,108, + 7, 12, 24,128, 61,123,246,188,179,125,251,246,156,252,252,252,239, 81,146, 8,243,129,137,154,243, 83, 83, 83, 7, 74, 36, 18, +202,195,195,131, 81,171,213,166, 24,173, 38, 40,121, 8,243, 13, 0,155, 81,146,186,160, 39, 80,114,190, 3,248,172,204,184,209, + 52,189,217,215,215,247, 63, 81, 81, 81, 91, 0,172,172,235,185,238,236,236,252,205,166, 77,155, 70, 13, 25, 50,132,201,200,200, +112, 11, 8, 8,248, 49, 53, 53,181,235, 11,184,140, 76,146,203,229,115, 90,182,108,217,236,193,131, 7,209,249,249,249,235, 74, +247,103, 77,231,148, 59,128, 62, 54, 54, 54,189, 23, 47, 94,108, 17, 24, 24,136,109,219,182, 13,220,190,125,123, 97, 65, 65,193, +175, 40,233,211, 83, 47, 19,200,178,236,140,196,196, 68, 7, 66, 8, 92, 92, 92,102, 0,248, 91, 26, 45,154,166, 55, 12, 31, 62, +124,226,143, 63,254,168,124,250,244,169,210,205,205,173, 60,121, 54, 69, 81,117,174, 63, 69,234,205,182, 10,134,171,246, 60, 90, + 50,153, 82,202,243,154,166,201, 41,247, 70,117,235,254,181, 53, 0, 92,188,240,238, 40, 71,231,230,225, 50,153, 50, 90,110,165, + 56, 50,124,112,159, 86, 35, 2,187, 83,238, 46,142, 72, 76, 73,119,250,118,223,233,215,130, 79,159, 59,130,146, 4, 98, 85,194, +233,179, 97,166, 15,193,131,203, 95,193,161, 71, 50, 54,158, 74,196,181,187, 79, 80,156,151,137, 6,206,102,248,124,118, 63, 56, +219, 42,235,118,235,229,232,211,147, 99,229,251,223, 24,251,166,245,127,134,250, 73,188,156,157, 65,136, 28,209, 49,133,157,126, + 62,115,174,237,225,131,123,103,152, 75,124, 70, 23,165, 63, 52,250,226,214,218, 5,102, 69,122, 12,101, 25,234,173,206,109,154, +245, 30, 59,176, 43,221,204,175, 49, 34, 35,162,250, 29,251, 45,244,115,250,106,196,175, 28, 79,126, 48,151,226,232,237,148, 26, + 19,250, 61,103, 56,122,247,238,211, 85, 46,151, 87, 74,158,164,213,106,165,191,254, 26,210,161, 46,102,163,236, 63,116, 58, 45, + 45,145,200, 64,211,212,251,254,254, 45,252, 50, 51, 51,207, 81, 20,245, 93,114,178,105,209,130,119, 1, 89, 14,203,190, 74,203, +229, 46,188, 78,103, 15, 0,148, 76,150,243,132,166, 91, 44, 94,180,200,130, 97, 24, 33, 43, 43, 11,197,197,197,212,255,216,187, +238,176, 40,174,245,253,206,238,178,125,233, 93, 64,196, 2, 4,187,162,198,136,193,142,221,216,107,236, 29,123,195, 24,107,172, + 81,163,209,168, 88, 98, 20,123, 55, 98, 67, 65,177, 96, 7, 4, 69, 80,233, 44, 75,103,129,237,187,179, 51,191, 63, 40, 23,149, +178,104,146,123,239,239,238,251, 60,251,192,204,206,188,123,230,156, 51,115,222,249,190,115,190,111,234,212,169,188,247,239,223, + 15, 17,139,197,187,106,121, 35,193,193,131, 7, 61, 28, 29, 29, 63,201, 30, 43,145, 72, 56,131, 6, 13,252,156,166,247,104,217, +170,205,130,155, 55,111,120, 21, 23, 20,170, 14,238,216,255, 66,199, 19,168, 27,122,121,154,236, 61,112,212,124,218,196,177,115, +222,188,121, 21,133,186,229,171,171,207,231,243, 47,108,219,182,173,121,215,174, 93, 77,236,236,236,144,157,157,141,184,184,184, +230, 97, 97, 97,223, 29, 61,122,116,145, 82,169, 28, 2, 24,148, 16,213, 61, 52,232,176,157,208,202, 26,122,157, 14,245, 90,182, +169,136,111,246, 46, 44, 4,164, 86, 11, 74,167,131, 87,255,239,202,172,201, 52,188,188,188, 62, 55,234,110,189,102,205,154, 29, +219,184,113, 35, 91,173, 86,227,201,147, 39,184,115,231, 14, 37,145, 72,106, 11,136,203, 34, 8, 34,100,245,234,213,206, 62, 62, + 62,166,121,121,121,208,235,245, 54,151, 46, 93,154,213,186,117,107, 51, 23, 23, 23, 78, 80, 80, 16,100, 50, 25, 72,146,180,106, +212,168,145,213,232,209,163, 53, 65, 65, 65,139, 0,108,169,206,146, 85,252,158,254, 81, 66, 52,234,237,217,118, 60,178,136, 27, +189, 23,244,198,117,179,198, 68,133,101,171,119,163, 70,166,197, 98,193, 50,145, 89, 11,171, 98,241,237,101,189, 27, 53, 58,120, + 35,209,160,151, 33, 70,217, 96, 51,230,212,169, 83,130,184,184, 56,129,151,151, 23, 40,138,170,136,192, 95, 30,112,214,221,221, +253,115,234,113,243,140, 25, 51,150,141, 24, 49, 2, 45, 91,182,172, 8,138,186,106,213, 42, 44, 91,182,204,242,222,189,123,139, + 78,158, 60,185,232,226,197,139, 91, 0, 4,212,209, 26, 83,142,186,182,241,218,164,164,164,225, 23, 46, 92, 24,187,116,233, 82, +119, 0,254, 0, 86,230,231,231,251,150, 89, 99, 56,101, 66,107,210,162, 69,139,102, 6, 4, 4,160,111,223,190, 43,159, 60,121, +178,225, 51,173,124, 76,146, 36,251, 14, 26, 52,136,169,211,233, 32, 20, 10,161,211,233, 26,127,169, 81, 2,192,158,233,211,167, +207,156, 49, 99, 6, 44, 45, 45,161,211,233, 60, 78,157, 58,117,112,229,202,149, 29, 1, 76,174,166,172,227,103,206,156, 57,116, +220,184,113,240,246,246, 6,139, 85, 90,141,219,182,109,195,186,117,235, 68, 33, 33, 33,223, 5, 5, 5,125,119,249,242,229,243, +248, 48,109, 87,157, 64, 81, 20, 88, 44, 22,210,211,211, 97,103,103,199,165, 40,234, 38, 65, 16, 7, 10, 10, 10, 46,254, 7, 13, +230, 63, 15, 31, 62,124,204,137, 19, 39, 68, 0,176,117,235, 86, 44, 88,176, 0,246,246,246, 16,137, 68, 70,169,243,159, 99,209, +154, 86,171, 69,171, 54, 40, 20,138, 54,203,231,126, 15, 6,163,244,173,177, 73,195,250,216,244,195, 52,226,114,240,205, 54, 53, +218,224,121,245, 16,255, 96, 23,184, 46,243,161,214,145,120, 28,157,132, 91, 91,253, 74, 71,203, 62, 43,160,214,118, 47, 31,108, +172, 56,124,254,207, 26,189,254, 33, 28, 28,158, 32, 53, 53,183, 54,145,101,235, 96, 31, 28, 24,184,133,223,188,177, 39,180,164, + 14,226, 28, 49, 8,130, 11,103, 39, 83, 76, 26,223,199,196,215,183,158,205,218,181,251,175,102, 81, 24,172,200,123, 91,107,192, + 80, 15, 27, 28,105,211,220,125,196,232,126, 62,220, 22,205,155,129,205,229, 87,124,215,214,219, 27,109,189,189, 25, 1,178,146, +158, 79,159,189,232,121, 46,228,177, 90,161, 75, 61,147,144,135, 9,181, 60,100, 42, 4,199,188,121,243, 96,111,111,255,193, 1, +217,217,217, 8, 11, 11,173,242,156, 58, 60,200, 42,126, 99,195,134, 13,166,133,133,133,125, 14, 29, 58,212,141,162,168, 13, 89, + 89, 89, 15, 12, 33, 25, 7, 52, 40,226,114,187, 79,220,190,157,106, 61,112, 32,211,194,193,129, 65,233,245, 68,102, 98,162,245, +142, 93,187,186, 20,188,123,199,151, 91, 89, 21, 20, 42,149,138,132,132, 4,240,120, 60,130,197, 98,181,171,130, 42,155,166,241, + 51,131, 65, 44, 35, 8, 2, 92, 46, 47, 97,198,140, 25,145,101,223, 53,184,114,229,138, 96,192,128, 1, 10, 0, 41, 0,192,229, +242,156,152, 76,134, 71,105, 36,118,252,108,136,192, 20, 10,133,115,215,111,220, 34, 44, 46,144, 42,181,114,185,206,214, 76, 68, + 16, 34, 83,102,113, 81, 73,137, 88,146,171, 94,177,102, 29,115,250,164,113,115,229,114,249, 44, 67, 69, 86,171, 86,173,158, 94, +184,112,193,206,218,218, 26, 82,169, 20,249,249,249,120,250,244, 41, 40,138,194,144, 33, 67,184,223,116,104,223,230,135, 21, 63, + 62, 74, 23,139, 59, 26, 34,182,132, 86, 54,216,234,211,186,116,176, 78,201,175,104,159, 3,195,251, 87, 28,179, 46,163,168,220, + 58,247, 37, 41,164, 58,118,239,222,157, 13, 0,147, 39, 79, 46, 46, 41, 41,217, 4,224, 4,106,143,232,191,232,199, 31,127,116, +106,216,176,161,235,137, 19, 39, 32,147,201, 0,192,174, 97,195,134,240,240,240,208,223,189,123, 23, 30, 30, 30, 48, 53, 53,197, +189,123,247,240,232,209, 35,120,123,123,155,178,217,236, 17, 90,173,182, 74,161,213,197,175,203,143,220, 1, 94,157, 61,219,142, +135,200,204, 17, 7, 79,158, 70,252,139,163,157,213,218,184, 31,217,250,240,113, 74,154, 59, 33, 55, 77, 20,208,192,219,215,186, + 73,179,129,112,109, 27,105,163,210,223, 79,250,177,103,195,205, 44,158,234,232,154,237,146,252,234, 68, 22,128,173, 67,134, 12, + 25,126,234,212, 41, 11, 0,136,137,137, 65,118,118, 54,108,109,109,193,227,241, 96, 98, 98, 82,145,159,244, 51, 49, 97,239,222, +189, 21,162,141, 36,201,138, 44, 0, 2,129, 0,223,126,251, 45, 90,183,110,141,139, 23, 47, 78,168, 70,104,249,116,232,208,225, +184,171,171,171, 75,229,157,114,185, 28,163, 70,141, 2, 0,248,250,250,118,231,243,249,116,185, 32,148, 72, 36,178,103,207,158, +245, 4,240,164, 26,101,169, 20,139,197, 88,178,100, 9,146,147,147,103, 7, 6, 6,166, 2,224,113, 56,156,138,247, 99, 0, 30, +205,154, 53,251,117,193,130, 5,120,255,254, 61, 94,191,126,253, 20,159,239, 74,213, 11,133,194,119, 58,157,206,155, 36, 73, 40, +149, 74, 12, 30, 60,152,119,254,252,249,108, 38,147,249, 38, 47, 47,111, 44, 74,231,164, 24, 10, 30,128,237, 51,102,204,152,185, +116,233, 82,132,134,134,226,242,229,203, 24, 55,110, 28,230,207,159, 15,145, 72, 52,113,254,252,249,143, 80,154,208,252, 99,116, +223,187,119, 47,244,122,253, 39,247, 6,143,199,131,143,143, 15,154, 54,109,138,203,151, 47,119,255, 2,161,229,234,227,227,195, +161, 40, 10,114,185, 28,119,239,222, 21,241,249,124,145,179,179,243, 84, 0,255, 49, 66,203,213,213,117,198,169, 83,167, 68,149, +189, 63, 92, 46, 23,149,250,129, 17,255,126,139, 86,141,111, 88, 21,208,104, 20, 90, 22,139,241,166,158, 99,203, 51,247,194,231, + 84,184, 14, 1,198, 27,141, 70,161, 5, 0, 61, 69,163, 88, 65,130,207,101, 32, 37,171, 4,175, 18,243,170,162,250, 96,137,166, + 9,191, 62,184,237, 83, 64,211, 52, 52, 90, 61,212, 69, 89,216,116, 85,129,184, 12, 21, 52,242, 66,104,180,165,211,176,108,108, +108, 88, 55,111, 94, 95,112,251,118,216,204, 63,254,248,131,153, 97,110,254,186, 4,104, 83, 21,167,165,101, 35, 83,138,195, 57, +179, 47,112, 37,159,102, 38, 34, 33, 77,142, 38,206,237, 97, 99,225,130,172, 60, 57, 30,190,190,134, 55,111,131,209,208,209, 21, +243,231,246,230,173,223,120,226, 52,155,116,171, 47,149, 38, 23, 87, 87,206,242,183,168,253, 55, 18, 64, 22, 36, 66,159,255, 30, +250,146,204, 79, 14, 16,217,214, 71,219,174, 78,176,117,105,204,157, 48,127,221,120,224, 3,161, 85,153, 51,155, 32, 24,251, 24, + 12, 98, 38, 65, 16,104,217,178, 85,198,246,237,219,171, 10, 5,174,109,217,178, 85, 6,147,201,112, 46,125,176, 51,246,210, 52, +149, 93, 75, 57, 63, 16, 53, 28, 14,119,105,169,217,223, 49,253,234,213,171,218,225,195,135, 99,219,182,109,156,101,203,150,173, + 96, 50,153,147,171,112,239,125,192, 57, 24,168,111,209,184,113,175, 13, 15, 31,210, 38, 58, 29, 81,240,244,105,177, 84, 34, 33, +179, 74, 74, 56,103,223,188,233, 59,101,241, 98,142,139,139, 11, 30, 4, 7, 91,231,202,229,180, 84,173, 86, 74,165, 82,154, 36, +201,167,213,112, 46,183,181,181, 19, 28, 60,120,208, 99,198,140, 25,145, 18,137,100, 57, 0, 56, 58, 58,110, 2,208, 20, 64, 74, +165,125, 8, 12, 60, 45,158, 58,117,106, 66, 78, 78,206,242,154,202, 89, 9,205,236,108,237, 4, 39,247, 7,189,180, 50,229, 51, +108,157,235, 49, 76, 44, 44, 88, 36,135,207,166, 0,101, 67,151,198, 66, 0,205,170, 57,247, 99, 78,130,207,231, 95,248,243,207, + 63,237, 76, 76, 76,160,215,235, 97,107,107,139,228,228,100, 72,165, 82,148,148,148, 32,233, 77, 28,220, 92, 92,176, 54, 96,153, +163,255,178,128, 11, 10,133,194,251,163,193,236,211, 4,200, 58,237, 39,150,189,170,178, 24,124,236,246, 50,176,221, 43, 35, 57, + 45, 45, 13, 34,145, 8,205,155, 55, 23, 61,124,248,240,126, 13, 34,171,114, 18,224, 17,157, 58,117, 50, 61,113,226, 4,188,189, +189, 97,110,110,142,187,119,239, 34, 38, 38, 6, 90,173,150, 33,147,201, 32, 18,137,176,121,243,102,212,175, 95, 31, 37, 37, 37, + 72, 73, 73,177, 54, 49, 49,177,249, 40,162,125, 5,231,221,155,119,215, 23,189,191,243, 99, 22,113,163,247,193,147,167, 49,117, +244, 72, 56,208,137,247,205, 27, 19,235,123, 13,232,180,138,102,186,244, 23,154,182,180,116,111, 62, 0,108,142, 8,254, 75,215, + 33, 33,246,138,165,162,228,229,108, 66,159,238,178,102,251,217,121, 85, 92, 59, 1,128,225,226,226, 50,229,236,217,179,166, 21, +166, 23, 38,179, 34,231, 97,229, 36,240, 53, 36,124,175,181, 62, 9,130, 64,114,114, 50,236,236,236, 32, 18,137, 42, 18,136,199, +197,197,225,241,227,199, 40,207, 70, 81, 13,231,216,219,183,111,187, 8,133,194, 15, 14,160,105, 26,121,121,121, 32, 73, 18, 2, +129, 0,122,189, 30, 90,173, 22, 58,157, 14, 42,149, 74,212,180,105,211, 89, 58,157,238, 73, 85,156, 20, 69, 45, 28, 49, 98, 68, +167, 39, 79,158, 52,218,181,107, 23, 52, 26,205,214,172,172, 44, 12, 29, 58, 20, 20, 69,161,123,247,238, 95,211, 52, 29,191, 98, +197, 10, 0,192,130, 5, 11,116,114,185,124,198,231, 92,123, 25,154,182,109,219,182, 81,104,104, 40, 58,119,238, 12,181, 90,141, +109,219,182,153, 5, 6, 6,154, 5, 5, 5,217, 46, 93,186,244,112,110,110,174, 95, 45,156, 4,128,173, 14, 14, 14, 51,187,116, +233,194, 47,203, 97,138,163, 71,143, 98,237,218,181,167, 0,172,184,126,253,250,234,203,151, 47,143,159, 50,101, 10,214,174, 93, + 59, 95, 42,149, 30,170,142, 51, 41, 41, 9,182,182,182, 48, 51, 51, 43,125, 88,106,181,136,138,138,194,173, 91,183,240,213, 87, + 95, 25,114, 77,213,149,211,117,200,144, 33,135, 79,158, 60,105,154,158,158,142,123,247,238,193,205,205, 13, 10,133,194,144,220, +176,183,255,134, 1,187, 90, 78,165, 82,169, 74, 75, 75, 19,109,217,178, 5,142,142,142,112,117,117, 5,143,199, 3, 65, 16,208, +233,116, 53,165, 87,171,181,156,190,190, 96,229,137, 45, 7,153, 91, 88,206,166,105,154, 85, 84, 84,184, 95, 11,233,185,196, 68, +104,254,193,107,255,111, 70, 27, 0,145,248, 48,231,161,164, 66,104, 5, 7, 7,211,253,251,247, 39,202,255, 58, 57,161, 56, 47, +207, 50,193,206,161,197,105, 59,135,102,101,121,191, 24,111,152, 76,203, 4,123,123, 69, 49, 0,104, 73, 26, 17,111,164,120,249, + 46, 11, 49,239,178, 32,228, 26,102,124, 81,107,201,210, 25,171, 52, 13,149,236, 95, 47,173, 90, 69, 33,212,218,210,233, 30, 26, +181, 2, 69,185,175,137,225,131,123,242,102,206,156, 14, 71, 71, 39,219,234,248,180, 92,222,124,255, 5,125, 45,172, 44, 76, 16, +252,240, 6,190,254,106, 48,120, 92, 19,228, 23,169, 0, 2,120,155,120, 11,160, 76, 17,155,144,134, 14,205, 4,240,235,229, 37, +186,120, 46,126, 49,128,149,134,148,151,204,120, 10,182,123, 31,152,232,117,208,229,197,131,146,166, 2, 66, 7, 40, 9, 17,242, + 37,169,120,115,255,188, 65,239,140, 20, 69,205,182,177,177,145,174, 88,177,162, 75,147, 38, 77,180,179,102,205,138, 78, 77, 77, + 93,248,209,219,202, 47,123,247,238,197,187,119,239,196, 27, 54,108,184,155,151,151,247, 99, 29, 27, 58,128,166,177,179,204, 21, +151,119,233,210,165,182,225,225,225,243,119,238,220,105, 63,103,206, 28,206,156, 57,115, 38, 1,248,169, 38,119, 97, 49,151,219, + 99,195,189,123, 52,153,145,161, 62,182,123, 55,103, 79, 68,196, 10, 45, 69,213,179,177,179, 35,190,233,208, 65, 46, 96, 48,242, +242,179,179, 73,219, 70,141,152,201,183,110, 89,211,124,126,230,245,235,215,139,101, 50, 89,181,169,115,152, 76,166,162, 42,119, + 97, 85,112,116,116,212, 84, 53,135,171,134, 1,177,152,162,105,173, 69,195,134,116,175,238, 29,155,188,139, 79, 76,228, 89, 88, + 48,221,155,184,121,190,122,147,252,148,214,235, 85, 4, 65, 20, 27,228, 43, 97, 50, 71,238,220,185,179,133,153,153, 25, 40,138, +130,185,185, 57,114,115,115,161,209,104, 80, 92, 92, 12, 77, 73, 17, 52, 69, 69,136, 73, 77, 70,167, 46, 93, 48,188,119, 47,175, +160, 75,127,142,212,235,245,167,106,244,231,181,108, 83, 97,201, 90,215,192,250, 95,190,160,116,105,133,232,218,210,198, 29,108, +145, 8, 61, 23, 6,124,201,141, 30,121,245,234,213,107, 67,134, 12,233,187,120,241, 98,134, 68, 34,185,145,156,156,220, 9,192, +235,154, 78, 18,137, 68,141,243,242,242, 32,147,201, 96,110,110,142,157, 59,119,194,222,222, 30, 10,133, 2,207,158, 61,163,157, +157,157,137,187,119,239,194,217,217, 25,249,249,249,208,106,181, 80, 42,149, 89, 26,141,166, 90,119,121,153,123,176,207,130,222, +184, 30,255,226,104,103, 39, 34,233,217,136, 69,190,239,226, 99,222,164,133,220,122,248, 19,169,226,165, 75, 51,110, 47,107,216, + 46,210,102,246,146,181,248,109,235,106,196, 63,185, 87, 96, 95,191,120, 15,159, 80, 31,169,169,188,114,185, 92,245,230,205, 27, +211,232,232,104, 16, 4, 1,115,115,115, 8, 4,130, 42,197,214,103,128, 81,217, 2, 37,151,203,193,102,179, 97,109,109,141, 67, +135, 14, 85, 12,188,110,110,110, 53,113,236,239,217,179,231,200,250,245,235,155, 86,222,217,174, 93, 59, 76,159, 62, 29,251,246, +237, 67, 68, 68,196, 7,249, 52,179,178,178, 36, 58,157,174,166,235,150,102,103,103,247, 30, 60,120,240,139,251,247,239,155, 29, + 58,116, 8, 36, 73, 86,249, 57,120,240, 32, 30, 63,126,188, 18,192,155,207,236, 71, 95, 13, 29, 58,244,222,241,227,199, 45,114, +115,115, 81,222, 55,228,114, 57,244,122, 61, 60, 61, 61, 9,146, 36,107,155,247,198, 96, 50,153,151,118,239,222, 61, 96,234,212, +169, 96,177, 88,208,104, 52,216,189,123, 55,150, 45, 91,150, 93,246, 82,170, 5,176,226,200,145, 35,227, 7, 14, 28,136, 86,173, + 90,121,221,185, 83,253,204, 14,153, 76, 6,153, 76, 6, 19, 19, 19, 56, 56, 56, 96,253,250,245,208,104, 74, 31, 43, 30, 30, 30, + 21,183, 49,128,253, 30, 30, 30, 3, 18, 18, 18,182,161,116,238,218, 39,112,112,112, 24, 76,211,244, 52,189, 94, 95,210,185,115, +103,235,147, 39, 79,154,138,197, 98,188,120,241, 2, 43, 87,174, 44,164, 40, 74, 79, 81, 20,161, 84, 42,147,236,236,236, 94,112, +185, 92,190, 66,161, 40,200,207,207,223, 8,224,198,191,107, 36, 39, 8,130, 48, 49, 49,193,228,201,147,193, 98,177,192,231,243, +161, 82,169,160,211,233, 42,196, 60,234,232,150,110,210, 68,100,205, 2,123,170,165,105,211,249,195,231,245,183,117,172,231, 4, + 11, 51, 46,226,226, 94,119, 10, 11,189,181,155,195,138, 15,164, 52,186,192,248,148,162,191, 61,217,253,199, 90,228,191, 84,104, +125,146,243,144, 85,117, 99, 14,215,211,244,217, 60,177,152,163,229,112, 4, 9,229, 86, 46,123,123, 69, 49, 65, 12,215,219, 54, + 27, 4, 82,171, 43,123, 80,208,101, 31, 3,133,150, 78,143,119,241,177,184, 31,242, 39,108, 20, 98,228, 37,181, 6,216, 45,160, + 81, 22, 65,165,209,150,137, 18, 61,162, 95,132,162,184,168, 0,205,189,251, 3, 12,198,227,234,248,204,173,137,254,223,180,109, +201,124,151, 22,139,118, 30,195,208,200,185, 51, 82, 37,197,144,202,212, 40, 44, 86,161,117,243, 0,228, 22, 42, 81,172, 80,225, +245,187, 32, 56,213,107,196, 32, 88,137,221, 13, 21, 90,234,215, 23,160,126,115, 25,108,215, 78,224,120, 14, 4,211,213, 7,105, + 47,239, 32,250,250, 14,100,188,122, 0,154,210,195,209,163,189,161, 55,201,238, 27, 55,110,180,239,212,169, 19,171, 71,143, 30, +173,174, 93,187,214, 74, 34,145, 68,151, 9,140, 86, 61,122,244,104,101,107,107,139, 95,127,253, 85, 73, 16,196,238,207,108,236, + 10, 11, 88, 78, 78,206, 83, 0, 27, 46, 92,184,176,123,250,244,233,176,179,179,107,145,153,153, 89,237,137,185, 38, 38,173, 38, +108,220, 72,155, 48,153,244,169,223,126, 99,175,189,113, 99,251, 31, 71,142,176,187,117,237, 74,208, 52,141,168,168, 40,193,150, +223,126, 19,140, 25, 52, 40, 37, 53, 39,135, 12,143,136,208, 74, 50, 50, 74,114,228,242,181, 18,137, 36,235,223,209,179,117, 58, +221,163,164,228, 36, 39,239, 14,173,109, 35,227,146, 94,249,117,251,230, 27, 6,131,193,136, 79, 76,141,176,181, 53, 19,220, 10, +185,165,213,233,116,143, 12,225,226,114,185,253,187,117,235,198, 42, 44, 44, 68,189,122,245,144,155,155, 11,177, 88, 92,106,113, + 40, 42,132,182,168, 8,186, 98, 41,244,114, 25,146,158, 61, 69,235, 70, 13,185,103,185,220,254, 10,133,162, 70,161, 85,254,150, + 89, 85,162,235,242,125, 28, 83, 83,112, 68, 34, 16,117,119, 27, 14,178,176,176, 88, 38,149, 74,175, 1, 88,175,213,106,253,151, + 45, 91,214,110,215,174, 93, 54, 27, 54,108, 48,155, 54,109,218, 89,153, 76,214, 26,165, 73, 85,171, 27,192,222,147, 36,105, 13, +192, 62, 52, 52, 20,118,118,118, 40, 42, 42, 42,183,180,104, 20, 10, 5, 47, 63, 63, 31,106,181, 26, 26,141, 6,102,102,102,120, +254,252,121, 1, 73,146, 87,106, 43,156, 89, 99, 98,189, 90, 27,247,163,181,151, 48, 83, 75, 90,250,230, 20, 80,133,107,182, 75, +214, 1,216,222,187, 81,163,131, 90,234, 94,210,219,216, 43,150,201,207,238, 22,100,190,149, 55, 58,116, 45,169,166, 57, 90, 52, + 0,138, 32, 8,218,195,195, 3,185,185,185, 96, 50,153, 16, 8, 4, 16,137, 68, 88,190,124, 57,118,239,222,253, 57, 66,139, 39, + 20, 10, 55, 50, 24,140,145, 12, 6,195, 86,175,215, 35, 32, 32, 0, 3, 6, 12, 0,135,195,129, 86,171,173,176,104,150, 91,169, +106,177,116, 68, 61,126,252,216,236,241,227, 15, 30, 91, 93,109,108,108,194,212,106, 53, 18, 19, 19,113,233,210,165, 46, 0,194, +235,216,214,137, 81, 81, 81,189,125,124,124,142,182,109,219,182, 49, 77,211,104,209,162, 5, 70,141, 26,133,160,160, 32, 68, 71, + 71,163,168,168,136,186,117,235,214, 31, 0,182,213,117, 12, 47,171, 95,207,161, 67,135, 62, 56,113,226,132,101,126,126, 62,148, + 74, 37,228,114, 57,206,158, 61,139, 78,157, 58,193,198,198, 6,199,143, 31, 39,105,154,174,169,237, 25, 12, 6,227, 80, 96, 96, +224,128, 41, 83,166, 96,207,158, 61, 56,117,234, 20, 6, 14, 28,136,145, 35, 71, 34, 55, 55,215,126,235,214,173,227,203,220,132, +171, 71,141, 26, 5,153, 76,134,103,207,158,197, 25,120,207, 67, 42,149, 66, 42,149,130,207,231, 87,190,199, 8, 0, 65, 59,118, +236, 24, 61,127,254,124, 52,106,212,104,117, 82, 82,210, 14, 84,177, 74,148,162,168, 25, 98,177,216,146,197, 98, 89,147, 36,137, +244,244,116, 60,127,254, 28,179,103,207, 46, 40, 40, 40,152, 14, 32, 21,192,138,201,147, 39,175, 95,184,112, 97, 69, 95, 90,184, +112, 97,240,181,107,215,122,255,211,214, 28, 15, 15,139,102, 28, 38,119, 94, 97, 9,211,186,176,176,176,226,217,161,209,104,160, + 86,171, 63,176,100,177,217, 38,214,237, 90,215,191,170, 84,148,252,240,250,173,180,218, 4,233, 94,141,205, 91, 10,132,230,243, + 59,117,238, 54,182, 87,239,239,152,164, 78,135,155, 55,175,224,247,223,247,162,171,143, 7, 26, 53,105,129, 57,115,231,153,171, + 53,100,192,173, 91, 55,150, 89, 60,190,127,163,164, 88,186,188, 38,206,255,113, 92, 45, 19, 87, 87,171,116, 29, 86,165, 32,203, + 66, 56, 20,150,109,218, 88, 90, 90,254,166,215,235,187,154,153,153,129,146, 38,224,245,243, 39, 40, 40, 52,129, 90,169, 7, 69, +151,138, 45,131,132,139, 90,131,123, 55, 47, 99,231,142,237,200,207,207,135,207,183, 93, 32, 99,185,160,190, 75,125,168,148,138, +178,155, 6,208,106,116,176,181,119, 69,100,100,180,174, 88, 46,175,246,129,196,230,105,189,234,219,123, 64,173,237, 8, 30,135, +131,162, 18, 13, 10,203, 68,214,241,115, 35,160, 86, 40, 65,106,180, 32, 53, 58,216,214, 31,138,175,236,187,129,210, 95,105, 86, +167,234,163,244,208, 38,223,131, 54,249, 30,248, 29,231,226,207, 77,163, 63, 26, 72, 13,203,187,155,155,155,155,243,234,213,171, + 43, 81, 81, 81,131, 71,140, 24,129, 59,119,238, 76, 3, 48,179,204,125, 51,109,196,136, 17,136,138,138,194,171, 87,175,174,228, +230,230,230,252, 21, 45,207,225,112,148,106,117,233, 24, 43, 16, 8,120,181, 28,235,212,110,200, 16, 70, 81,100,100,241,142,135, + 15, 87, 31, 60,116,136,221,163,123,119, 66, 71,146,160,244,122, 52,113,119, 39,122,245,234, 37, 12, 58,115,198,154,169,211, 61, + 94,226,239, 31,186,111,220,184,146,167,114,185,161, 19,205, 27,148,185, 12, 1,160, 65, 13,251, 12,134, 90,173,222, 53, 99,234, +196, 30,225,247, 30,184,212,119,113, 50,187,121, 43, 60,154,203,231, 48, 26,185, 53,102, 22, 22, 21,176,214,173,254,129,175, 86, +171, 13, 21,173, 94, 54, 54, 54,200,202,202,194,187,119,239,160, 86,171,161,211,233, 64, 41,228,208, 20, 74,161, 41, 42, 0,161, + 82,130,171,215, 67,149,151,141, 6,141, 26, 2,255, 90,145, 88,171, 43,170, 42,161, 85,254,151,103,102, 6,182, 80, 4,134,137, +137,193,201,209, 1,180,109,223,190,253,153,243,231,207,179, 39, 77,154,212,225,246,237,219,191, 1, 72, 21,139,197,221, 87,174, + 92,249,244,183,223,126,227, 78,159, 62,221,115,219,182,109,227, 1,236,175,142, 68,165, 82,157,185,122,245,234, 24, 87, 87, 87, +251,152,152, 24,168, 84, 42, 80, 20,133, 62,125,250, 0,165,115,107, 0, 0,241,241,241, 74,149, 74,149, 19, 27, 27, 91,156,154, +154,170,133, 1,171, 4,215,236,146, 60, 42,206,186, 55,196,222,193,233, 49,143,223,192,141,150, 69, 14, 94, 48,204,105,235,142, +115, 98,213,141,196,196,146, 31,123, 54,220, 44, 47,121, 57,219,194, 89,182,231, 70,112,146, 33, 19,225, 43, 86, 23, 90, 91, 91, +131,197, 98,193,196,196, 4,108, 54, 27, 4, 65, 96,238,220,185, 56,112,224, 64,109,174,195, 15, 68,150,169,169,233,171,181,107, +215, 58, 79,159, 62,157,205,227,241, 80, 88, 88,136,227,199,143, 99,242,228,201,248,253,247,223,171,156,255, 98,128, 75,233, 99, +107,233,252,113,227,198, 65,163,209, 96,212,168, 81, 56,120,240,224,124,189, 94, 31,254, 25,183,244,227,232,232,104,247,232,232, +104, 51, 0, 3, 71,142, 28,121,100,232,208,161, 8, 15, 15,199,149, 43, 87,186,160,116,209,135, 18,192, 38, 0,118,101,127,107, +186, 63,133,246,246,246,123, 41,138, 26,104,107,107, 27,237,225,225,209,252,196,137, 19, 22, 57, 57, 57,229,139, 31,144,156,156, +140,195,135, 15, 75, 14, 29, 58, 84,172,215,235,173, 25, 12,198, 85,169, 84,186,188, 6,193,118,104,199,142, 29, 19,203,220,129, + 56,127,254, 60,189,125,251,118, 98,229,202,149, 40, 44, 44, 68,215,174, 93, 17, 24, 24, 56, 79, 38,147,181,218,190,125,251,212, +225,195,135, 99,221,186,117,144,203,229, 59,106,123, 89,169, 65,124, 17, 0,190,217,177, 99,135,235,252,249,243,113,254,252,121, +180,109,219,150,159,148,148,180, 15,192,148,170,218,143,166,105, 36, 37, 37, 65,161, 80,224,193,131, 7, 88,189,122,117, 97, 37, +145, 53,111,230,204,153,235,231,205,155,135,141, 27, 55,210, 49, 49, 49, 57, 67,135, 14,181, 63,112,224, 0,179, 73,147, 38,243, + 20, 10,197, 63, 38,180, 60,155, 88,109,110,215,182,243, 50, 71,167, 38, 56,126,226, 36, 10, 10, 10, 42,234,164,188, 94,104,154, + 70, 73, 73, 9,178,178,178, 96,110,102,138,173,219,214,247,157, 53,109,162, 11, 74,195, 96,124,106,178,108,100,185,109,232,200, + 73,139, 70,141,153,136,152,232, 23, 8, 58,178, 31,177, 49, 81, 21,124,164, 78,139,132,184,231, 72,136,123, 14,123, 7, 87,244, +234,209,133, 24, 61,122,116,159,113, 99, 70,218, 2,248,219, 66, 71,252, 23, 91,179,128, 79,227,104, 29,248, 64,104,213, 98,174, +179,177,180,180,124,117,250,244,105,107, 31, 31, 31, 38, 73,146,184,113,243, 38,102,207,252, 30,227,199, 5, 64, 11, 75,144, 26, + 54, 40, 54,207,160,146, 40,149, 10,208,160, 33,151,203, 17, 17, 17, 1,154, 34, 17,116, 96, 59,104,154,170, 16, 90, 0, 13,141, + 86, 11,167,250,158,216,123,112, 3, 9, 19,147,167,208, 85, 29,186,166, 56,159,169,215,145, 52,196, 57,105, 72,147,196,194,220, +180, 62, 88, 38,245,145, 47, 85,128,197,112,128, 78, 21, 15,125,217,185, 10,121, 6,148,218, 47,107, 63,125, 21,214, 83,186, 14, + 15, 93,165, 82,121,236,216,177, 99,125,127,249,229, 23, 78,191,126,253, 60,206,157, 59,247, 13, 0,244,235,215,207,195,204,204, + 12,199,142, 29,211, 40,149,202, 99,127,161,197,167, 91,251,246,237, 81, 88, 88,136,228,228,228,232, 26,175, 77,163,177, 22,217, +217, 49,115,238,220,209,229, 22, 22,186,116,235,214,141,208,145, 36, 24, 4,129,130,162, 34,164,166,164,192,194,194,130,120, 21, + 31, 47,218, 61,103,206, 69,143,230,205, 89,229, 43, 18, 13,193,149, 43, 87, 4, 40,157,151, 85,227,190, 58, 66,158,147,157, 53, +209,223,223,255,226,177, 99,199,205,179,115,178, 19,184, 28, 14, 41, 18,241,234,141, 27, 59,139, 37,149, 74,199, 0,144, 25, 74, + 86, 88, 88,136,164,164, 36,240,249,124,176, 77, 76, 64, 41, 21,208,203,101, 80, 21,228,130,169,213,128,163,215,195, 74,192,133, +139,189, 61,234,219,218, 24,196,249, 46, 44,164, 98,226,123,101,119,225,214,246, 94,224, 8, 69,224,152,138, 48, 43,248,110,217, +219, 40, 27, 88,249,147, 33,180, 54, 78, 78, 78,127,158, 56,113,130,157,155,155,139,168,168,168,104, 0, 69, 0, 76, 1, 80,113, +113,113,183, 99, 99, 99,251,151,173,186,171,109,181,216,246, 11, 23, 46,244,244,241,241, 33,221,220,220,132, 57, 57, 57, 46,133, +133,133,148, 68, 34,249,192, 36, 20, 18, 18,194, 45, 41, 41,145, 83, 20,117,177, 76,100,213, 26,191,104,193, 48, 39, 94, 68, 36, +230,250,250, 53,104, 97,102,211, 18, 5,100,100,139,199,209,146,185, 11,134, 57,237,218,113, 78,172,226, 19,234, 35,132, 62,221, +133,197, 83, 25, 58,137,153, 6, 74,231, 74, 69, 68, 68, 32, 53, 53, 21, 73, 73, 73, 31, 8,170,105,211,166, 33, 40, 40,200, 32, +139,150, 80, 40,220,184,102,205, 26,231,249,243,231,179, 43,137, 34,248,251,251,163,168,168, 8, 7, 15, 30,132,191,191,127,157, + 7,254,143,208,176, 91,183,110,253, 28, 29, 29,145,159,159, 15, 7, 7, 7,248,248,248, 12, 8, 15, 15,119, 3,144,252,153,253, +126,150,159,159,223,250,181,107,215, 66,167,211, 97,242,228,201,120,251,246,237,153,183,111,223,238,172, 95,191,254,220,165, 75, +151,218,219,219,219, 99,196,136, 17, 66,146, 36,135, 84, 71, 98,101,101,181,105,255,254,253, 99,250,245,235,199,208,106,181,223, +134,133,133, 33, 37, 37, 5, 26,141, 6, 36, 73,226,253,251,247,240,247,247,151,148,173,110,124,111, 64,185, 38,173, 88,177, 98, +226,220,185,115,177,101,203, 22,172, 89,179,230, 15,115,115,243,230,173, 91,183,110,179,102,205, 26, 44, 89,178, 4,174,174,174, +176,182,182,254,106,229,202,149, 94, 11, 23, 46,196,174, 93,187,176,122,245,234, 63, 0, 28,254,156,138,160, 40,138,216,188,121, +115,171, 29, 59,118, 56,150,139, 44, 6,131,129,211,167, 79, 35, 50, 50,114, 64, 98, 98, 98, 85,231, 4, 58, 56, 56, 76,115,127, +237,254,178, 0, 0, 32, 0, 73, 68, 65, 84,116,116,228,220,186,117, 75,228,234,234, 10,146, 36,117,101, 34,107,119,253,250,245, +103,191,127,255, 30,253,250,245, 67, 98, 98,226, 49, 0,227,205,205,205,229, 11, 23, 46, 20,240,249,124,115,133, 66,241, 79, 13, +222, 96, 50,136, 9, 27,215, 45,193,179,200,120, 92,184,192,198,179,103,207, 96,111,111, 15, 46,151, 11,154,166,161, 86,171,145, +155,155, 11,157, 86,141, 22,205, 26,226,232,161,205,200,201,201, 5, 24, 68,181, 83,110, 8, 6, 49,118,226,247,131,113,255,193, + 77,236,219,183, 31, 50,153,188,154,151,111, 30,154,120,120,193,169,158, 29,210, 51,210, 65, 48, 96,243,119, 94,235,127,185,235, +176,226, 17, 4, 67,194, 59, 84,134,133,133,197,206, 83,167, 78, 89,119,237,218,149, 41,151,203, 65, 81, 20, 58,251,248, 96,238, +252,249,184,114,226, 4,220, 59,140, 2,161, 17,129, 20, 24,182,234, 65,165, 84,160,105,155,111, 48,124,196, 72,164,165,166,194, +175,255, 80,168, 84,138,138, 55,140,114,139,150, 70,163,133,141,157, 11, 66, 66, 66,152,152, 60,249, 53,118, 87,109,148,208,107, + 57, 47, 19,222,171, 58, 73,149,145,136,120, 22, 4,173, 90,139, 22, 45, 86, 66, 75, 89,195,206,121, 26,116,186, 75, 40,206, 13, + 43,117, 99, 88,119, 69, 70, 90, 26, 24, 76,246,171,207,173, 65, 74,158,251, 69, 15,221,162,162,162,162,164,164,164,115, 17, 17, + 17, 99,135, 12, 25,130,144,144,144,169, 0, 48,100,200, 16, 68, 68, 68, 32, 41, 41,233, 92, 81, 81, 81,209, 95,209,218,142,142, +142, 3,187,116,233, 50,170, 93,187,118, 8, 14, 14, 6, 77,211,247, 13,186,177, 77, 76,104, 6,131, 1,138,162, 64, 0,200,151, + 74,241,246,237, 91,228,231,229, 65,167,211, 65, 46,147, 81, 94, 30, 30, 50,154,162, 76,235, 82,158,202, 43, 12, 81,197,170,195, +242,125,159,113,169,169, 79, 31, 63, 76, 43,145,201,108, 45, 45, 44, 75, 56, 28,142,190, 80, 42, 45,122,253, 42, 70, 99,224,224, + 80,142,184,216,216,216,230,153,153,153, 72, 75, 75, 3, 41, 47, 1, 83,173, 1, 67,173, 64,247,111, 58,130, 15, 26, 60, 80, 48, +161,116, 48, 97,154,160,164,116,117, 94,173,238, 14,125,165,151,132,114,145, 69, 16, 68,169,187, 80, 40, 4, 71,100,250,129,133, +203,144,254,196,229,114, 79,156, 61,123,214,209,201,201, 9,235,214,173,131,179,179,243, 87,245,234,213, 83,152,155,155,243,237, +237,237,209,180,105, 83,124,243,205, 55,184,126,253, 58, 12,168, 3,146,166,233, 94,247,239,223, 95,244,240,225,195,225, 66,161, +144,152, 51,103, 14,171, 79,159, 62,224,114,185, 80, 40, 20, 40, 44, 44,196,201,147, 39,243, 40,138, 42, 95,148, 98, 45, 16, 8, + 14, 19, 4,145, 44,151,203,231,127, 76,120,244,151, 22,245,114, 10,168,201,180, 76, 48,216,215,175, 65,139,110,126, 61,208,208, +189, 27,186,249,165, 1,192,102, 43, 86,202,168,159, 87, 88, 92,180, 48, 37, 14,135,220,184,181,218,199,183,219,138,101,178, 59, +235,183, 28,144,214, 58,159,142, 32, 8, 80, 20,245, 65,236,160,143,191, 31, 63,126, 60, 78,159, 62, 93,107, 61, 50, 24,140,145, +211,167, 79,103,127,100,121,134, 88, 44, 70,255,254,253, 49,100,200,144, 15,132,150,141,141, 13, 28, 28, 28,144,146,146, 2, 0, +249, 6,246,171,185,147, 38, 77, 34,148, 74, 37,166, 76,153,130,131, 7, 15, 98,212,168, 81, 68,120,120,248, 92, 0,243,235,218, +217, 25, 12,198,214,165, 75,151, 46,242,247,247, 71, 65, 65, 1,174, 93,187,134, 62,125,250,224,244,233,211,182,215,174, 93,219, +216,181,107, 87, 48,153, 76, 4, 7, 7,131, 36,201, 26, 99,125,177,217,236,129,253,250,245, 99,164,167,167,131,205,102,195,219, +219, 27, 25, 25, 25, 80, 40, 20, 16,139,197,152, 55,111, 94, 86,126,126,126, 23, 67,239, 35, 54,155, 61,127,238,220,185, 56,117, +234, 20, 2, 2, 2,142, 0,152, 82, 84, 84, 52,252,225,195,135,167, 6, 13, 26, 4,177, 88,140,139, 23, 47, 98,245,234,213,196, +248,241,227,177,103,207, 30,204,155, 55,239,143, 50,171, 83,117, 29,191, 36, 39, 39,199,188,113,227,198,200,206,206,134, 76, 38, +195,197,139, 23,237,174, 95,191,238,230,228,228,100,150,148,148,164,255,233,167,159, 56,243,231,207,199,206,157, 59, 17, 21, 21, +133,160,160, 32,116,235,214,141, 76, 76, 76,172,210, 74, 86, 22,178,225, 34, 77,211,183,132, 66, 33, 74, 74, 74,202,239,187,197, + 1, 1, 1,254,155, 54,149, 26,217, 51, 51, 51, 49, 97,194,132,113,161,161,161, 84,215,174, 93, 5,108, 54, 27, 42,149, 74,254, + 79,142,218,148,158, 2, 64,193,205, 69,132,155, 87, 14,225, 69,116, 34, 94, 68,199,130,195, 45,157, 4,175, 84, 42,208,166, 69, + 19,116,240,110,143, 76,137, 24,199,130, 14,193,202,198,169,198,231, 8, 77,211, 96,179,244,240,242,112,192,137,160,253, 8,190, + 22,138,160, 99, 39, 43,230,188,177, 88, 38,104,221,166, 3,188,189,125,144,152,244, 30,135, 14,237,131,173,157,139,209, 57,248, +153,168,112, 29, 86,254,251,145,242,239,230,227,227,195,148,201,100, 80,169, 84,200,202,202, 66, 74, 74, 10, 44, 44, 45,144,152, +153,140, 46, 2, 45,178,168, 98,196, 69,191,210, 19, 76,147,168,218,126,176,159,111,107,192,183, 53,102, 79, 26, 85,195, 43, 43, + 13,161,153, 77,169,235,134, 36,223, 97,215, 46,178, 58,161, 69,234,117,183,111,222, 10,107, 63,105,252, 64,147,144,176,131,208, +105, 40, 40,117,230,144,171, 52,144,107, 77,192, 48,239, 3,228,133,131,201,226,226,235, 86, 77,112,241,194,117, 45, 77,234, 66, + 13,174, 32,251,230, 32,179, 99, 43, 9,173,156,143,252, 14, 86, 6,187, 14, 43, 6, 94,189,254,244,241,227,199,191,235,216,177, +163,160,107,215,174,141,203, 6, 78,237,241,227,199, 21,101,193, 48,235,138, 15,162,193, 59, 56, 56,180, 97,179,217,163,250,244, +233,211,102,226,196,137,120,253,250, 53,142, 29, 59,150,208,164, 73,147, 59, 18, 73,245, 43,178,153, 28, 78,190, 44, 39,199, 66, +228,230,198,178, 52, 53,205,188,126,237,154,107,143,158, 61,137,180,180, 52,228,231,231, 67,165, 82, 33, 42, 58,154, 54, 97, 50, + 51, 8, 51, 51, 70,124,100, 36,131,201,225,228, 87,103,109,172, 2, 41,181,172, 58,220,244,185,214, 45, 23, 71,203,198,171, 3, +102, 52, 84,169, 85,205,139,139,139, 73,150,137,137,137,179,131, 69,106,252,123,195,159,137,106,181, 58,248,246,237,219,223,245, +232,209,131,155,240, 50, 10,100, 81, 17, 52, 69,133, 96, 83,122, 88,181,105, 5,166, 86, 13,104,116,112,242,162,161,146, 10, 16, +254, 36, 94,167, 86,171,107, 13,106, 88, 46,180, 24, 31, 9, 3,142, 72, 4,174,169, 25,184, 34,209,199,130,161,182, 55, 57, 65, +175, 94,189,186,127,253,245,215,160,105, 26, 7, 14, 28,128, 86,171,229,104,181, 90,104, 52, 26,104,181, 90, 20, 23, 23, 35, 40, + 40, 8,123,247,238,125, 8,224, 15, 3, 46,159,228,243,249,131, 8,130,176, 99,177, 88, 10, 91, 91, 91,225,233,211,167, 43,194, + 77,180,110,221, 26,166,166,166,108,148, 5,133,180,179,179, 51,249,253,247,223, 45, 6, 12, 24,112,175, 74,119, 71,139,175,150, + 52, 36, 45,125,121,252, 6,110,102, 54, 45,209,208,189, 27, 0,160,103,255, 73,104,216,164, 62,138,243, 94,186,169,148, 41,131, +217,172, 66,203, 87,187,196,175,249,253,154, 79,148,231,220,125,139,170,151,247, 87, 57, 80, 48, 24,140,106,221,177,134,136,172, + 82,205,194,176, 45,159,231, 3, 0,249,249,249,144, 72, 36,136,139,139,131,167,167, 39, 10, 10, 10,224,228,228, 4,141, 70,131, +118,237,218, 65,169, 84, 98,199,142, 29,120,240,224,193, 67, 0,243, 12,248, 13,190,187,187,251,132, 54,109,218,224,218,181,107, +120,246,236,153,248,230,205,155, 78, 62, 62, 62,112,115,115,155,152,156,156,252, 67,153,171,207, 80, 8,125,124,124,230,248,251, +251, 35, 54, 54, 22, 51,102,204,200, 79, 79, 79,191,120,230,204,153, 41,171, 87,175,102,248,249,249, 65, 34,145, 96,235,214,173, +250, 7, 15, 30,108, 3,176,174,150,122,124,147,158,158,238,172, 82,169, 80, 80, 80, 0,146, 36,161, 80, 40,112,253,250,117, 4, + 5, 5,101,151,137,172,119,134, 22,174, 85,171, 86, 77, 25, 12, 6, 78,157, 58, 5, 0, 63,162, 52, 98,255,197,193,131, 7,139, +127,250,233, 39,167,229,203,151, 99,234,212,169,208,106,181,216,178,101, 11,150, 47, 95,126,181, 76,100,213,244, 16,253,197,193, +193, 97,218,140, 25, 51,190, 90,184,112, 33, 34, 34, 34,236,158, 63,127,238, 29, 21, 21, 5, 23, 23, 23,228,231,231,179,172,173, +173,177,115,231, 78, 44, 88,176,224, 60,128,188, 71,143, 30,141, 76, 74, 74,218, 4, 96,107, 45,162, 61,208,201,201,105, 26, 77, +211,180, 66,161, 72, 9, 8, 8,216,186, 97,195, 6, 44, 88,176, 0,175, 94,189, 66, 81, 81, 17, 76, 77, 77,137,165, 75,151, 78, +248,241,199, 31, 49,121,242,100, 90, 46,151,239,253,167, 7,106,154,214, 67, 81, 24, 11,189,218, 18,173, 91,120,162,117,243, 6, +184, 25,246, 2, 0,208,125,168, 15, 20,242, 18, 28, 57,114, 0,239,222,189, 5,203,196, 4, 22, 86, 14,134, 88, 2,161, 41,126, + 3,169, 86,130, 30, 93,189,209,199,175, 11,254, 56,122, 26,164, 78,139, 41,147,198,160, 80, 42,197,209,163,135,144,152,244, 30, + 44, 19, 19, 88,219,252,253,129, 80,107,210, 34,255,245, 66,203, 0,247, 19, 40,138,130, 88, 44,198,243,231,207,145,156,156, 12, +129, 64, 0, 37,169,167,246,221,126, 64, 17, 4, 59,131,162,233,135, 52, 89, 17,165,248, 83, 14,189, 94, 92, 41, 98,173,185,165, +165, 37, 71,173, 86,130, 36,117,149, 70, 21, 2, 32, 0, 54, 11,112,172,215, 16,233,105,233,180, 74,165,186, 91,227, 27,148, 90, +181,243,242,197,179,254,223,116,242,177,233,211,125, 45, 46, 94, 90,137,194,226, 98,168,180, 38,144,171,180, 80,168, 0, 11, 43, + 15,180,107,209, 18,153,153,249,120,249, 44, 92,198, 82, 43, 12,153, 40,250,118,247,138, 73,238,147,102, 47, 1,223,181, 19,212, +113, 23, 65,201,178, 43, 44, 90, 60,145, 37,172,234,123, 65, 42, 87,227,108,232, 11,160, 14,169, 94,114,114,114, 20, 76, 38,243, +184,191,191,255,150, 23, 47,158, 59, 3,192,139, 23, 47, 50, 36, 18,201,178,156,156,156,186,218,164,203,163,193, 19, 60, 30,255, + 69,147, 38, 77, 50,189,189,189,205, 7, 15, 30, 12, 27, 27, 27, 68, 69, 69, 97,211,166, 77,111,180, 90,237,146,240,240,240, 26, + 93, 61, 26,141, 70,252,226,210, 37,179, 46,223,127,111,177,100,192,128,173,254,254,254, 59,215,173, 91,103,226,238,238, 78,232, +180, 90,196,196,196,208, 39,142, 31,215,237, 93,190,124, 7, 71, 40,100, 61,189,124,217,132, 84,171,197,255,238, 78,236,228,228, +228,235,243,109,103,175,109,191,236,130, 74, 41,195,147,136,171, 40, 44,204,197,254, 3, 23,188,156,156,104, 95,177, 88, 28,110, +168, 0, 62,124,248,240,162, 14,109,218,180,105,228,226,130,152,212,100,112, 40, 61,216, 36, 9,166, 86, 13, 6,169,130, 75,115, + 26, 4,195, 20,146,172, 98,108, 56,117, 46,214, 16, 97,252, 85,223,129, 88,151, 81, 4,130, 32,176,189, 99,115,112, 76, 69, 96, + 11, 69,152,245,103, 88,133, 48, 8, 94,183, 28, 28,145, 8,141, 59, 24, 20, 16, 94,113,231,206,157,231, 49, 49, 49,237,154, 55, +111,142, 69,139, 22, 33, 37, 37, 5, 20, 69, 33, 59, 59, 91, 37,145, 72,196,185,185,185, 41, 40,141,255,115,176,150, 65,172,178, +234,112, 10, 15, 15,175,112, 55,132,134,134,162, 94,189,122, 48, 55, 55, 71,113,113, 49,166, 79,159,110,177,106,213, 42, 0,192, +243,231,207, 81, 89,160,124,140,152, 23,113,219,164, 37,116, 33, 45,139, 28, 92, 64, 70,182,232,230,151,142,158,253, 39,226, 86, +240, 31, 8,187,121, 27, 86,172,148,100, 8, 75,174,231, 37,231, 21,103,200,221, 3,189,218, 78, 97, 74,228, 55, 3,231, 12, 76, + 96, 58, 58, 82,103,151,239, 43,150,214, 84, 86,119,119,119,216,219,219, 87,204,209, 98,177, 88,152, 60,121, 50,104,154, 54, 84, +100,149,141, 53, 84,174, 74,165,178,231,241,120,200,202,202,194,251,247,239,145,152,152, 88, 17, 58,128,162, 40,221,226,197,139, + 77,230,204,153,131,125,251,246,225,238,221,187, 15, 1,172, 5, 96,232,203,218,152, 17, 35, 70,152,106, 52, 26,156, 60,121,146, + 4,208,255,236,217,179,207,219,181,107,199,234,221,187,183,233,158, 61,123,198,148,181,145,193, 66,203,204,204,140,173,213,106, +177,103,207, 30,164,167,167,251, 2,136,123,250,244,105,224,136, 17, 35,246, 54,111,222,188, 73,108,108,236, 91,153, 76, 54, 11, +192,203,218,200,178,179,179, 39,121,123,123,159,165, 40,202,181, 71,143, 30,194, 95,126,249,197, 44, 62, 62, 30,206,206,206,160, + 40, 42, 6,117, 76, 97,245,246,237,219, 56,137, 68,226,213,165, 75, 23, 92,191,126,125,179, 94,175,223, 8, 96,203,204,153, 51, +157, 82, 83, 83,209,166, 77, 27, 88, 89, 89, 33, 62, 62,190, 68, 34,145,236, 69,105, 74,162,218, 76,184, 73, 0,150, 5, 6, 6, +182, 12, 12, 12, 28,101,101,101,245,117, 84, 84, 20,238,223,191,143,109,219,182, 97,213,170, 85,232,220,185, 51, 22, 45, 90,148, + 7, 96, 20, 0, 50, 41, 41,201,160,184,121,229,150, 45, 0,104,219,182,109,230,166, 77,155, 48,101,202, 20,250,247,223,127,255, +245,248,241,227,243,199,140, 25, 83, 49, 6, 78,152, 48,129, 62,118,236,216, 4,148,166, 97,250, 39,161,211,106, 53, 48,179,106, + 8,153, 52, 13,185,233, 17, 16,152, 58,192,175, 91, 43, 40,148, 26, 92,185,124, 30, 47, 99,162,193, 96, 48, 96,239,224, 2, 11, + 75, 27, 36, 36,188, 5,106, 94,109,172,211,106,181, 48,181,108, 0, 89, 81, 58, 52, 57, 47,192, 23,217, 97,226,247,131,161, 80, +106,113,225,226,121,196,198,190, 4,147,201,132,131,163, 11,204, 45, 74, 57, 9,186,230, 21,204, 70, 0,168, 34,158, 86,173, 66, +139,201,100,222,185,113,227,198,176, 14, 29, 58,176,222,189,123,135,119,239, 74, 95,110, 10, 11, 11, 73, 2,250,115, 57, 49,151, + 71,215,112,122, 15,148,173,206,168,156,187, 80,100,106, 42,142,127, 19,103, 95, 88,144,141,232,200, 7,120,151, 16,131,228,196, + 56,104,181, 42, 48, 25, 12, 48,152, 12, 52,104,216, 12, 15, 30, 70,104, 84, 36, 25, 81, 29,103,105, 57, 18, 75,132,118,238, 35, +215,175,251, 33,120,193,146, 53,252,225,195,246,225,101,252,107,200, 72, 7,208, 52,224, 96, 45, 68,235, 70, 75, 33,206,204,197, +169, 63,246, 40, 40,173,118,236, 71, 49,180, 62,225, 4, 0,251, 60, 52,221,123,224,143,201, 7,131, 78,172, 89, 50,103,186,253, +160, 33, 99,193, 41,120, 13, 93,230, 11, 52,108,215, 7, 4,215, 2,215, 66,194, 16,254,252,117, 54,165,167,215,216,231,227,247, +132, 90, 56, 43, 67, 42,149, 62,202,202,146, 56, 87,138, 2,239,204,229,242,106, 91, 29,247, 49,231, 7, 17,231,153, 76, 70,219, +245,235,215,235,236,237,237,181,177,177,177,216,183,111, 31,245,226,197,139, 16, 6,131,177, 91, 34,145,168,106,227,180,213,233, +162, 79, 4, 4, 52,109, 63,100, 8, 61,122,206, 28, 5,184,220,185, 91,183,111, 15,200, 45, 44,172, 71, 83, 20,108,173,172, 50, +182, 46, 95,190,105,216,136, 17,133,175, 30, 60,224, 71, 92,186,196,231,144,228, 11, 3,202,249, 87,160, 90, 78,177, 88, 28,126, +247,238,125, 28, 57,248, 11,180, 90, 53, 36,226, 84, 0, 64, 94,126, 17,106, 17, 89, 31,115,210, 10,133, 98,200,143,171, 86, 61, +254,113,193,124,135,111,187,247, 64, 90,116, 20,180, 5,185, 32,116, 36, 76, 8, 22,228, 57, 2,228,100,203,176,236,216,153, 28, +153, 66, 49,164,138, 65,162,202,114,150, 91,172,184,102,166, 96, 11, 69,224,136, 76, 63,176, 98,241,204,204,192, 17,138,192,226, +112,170,154,192,253, 9,167, 76, 38, 27, 58,108,216,176,151, 79,159, 62,181,156, 50,101, 10,190,249,230,155, 72,165, 82,217, 21, + 64,201,231,214, 39, 69, 81,226,111,191,253,150, 65, 16,132,104,236,216,177,220,220,220,220,138,200,234, 50,153, 12,215,175, 95, +135,167,103,233,170,254, 87,175, 94,161, 89,179,102,213,114, 78, 93, 22, 43, 6,176,110,193, 48,167,173,143,163, 37,115, 1,108, +110,216,196, 5, 97, 55,111,227,126, 88, 68,192,215,205,169, 93,125,199,182,251, 73,208,117,196, 18,175,182, 83,152, 34, 51, 71, + 28,189,112,158, 25,247,226,208, 6,133, 34,166, 49,246, 93, 92, 92, 93, 57, 9,130, 0, 77,211,159,132,114, 96, 50,153, 56,126, +252,120, 93,175,253,204,193,131, 7,103,206,152, 49,131, 45,145, 72,240,230,205, 27,200,229,114,240,120, 60,220,188,121,147, 4, +176,231,248,241,227, 55,143, 31, 63,222, 27,165,171,137, 66,235,210, 63,133, 66,161,191,159,159, 31,222,188,121,131,103,207,158, +157, 7,240, 50, 50, 50,242,252,187,119,239, 70,118,238,220, 25,127,252,241,135,191, 82,169, 60, 88, 23, 78,138,162, 42,199, 76, + 42,207,248, 16, 45,147,201,190,142,136,136,168,107,187, 75,242,243,243, 59,149, 9,235,116,123,123,123,179,232,232,104,212,175, + 95, 31, 90,173,182, 67, 93,251, 82, 81, 81,209, 47,187,119,239,254,125,210,164, 73,248,233,167,159,198,158, 57,115,102,108,223, +190,125,209,175, 95, 63, 28, 62,124, 24, 47, 95,190,220, 12,195,210,138, 85,117,237, 47, 1,188,180,183,183,159,237,226,226,130, +109,219,182, 33, 38, 38,102,211,186,117,235,150,191,124,249, 18,158,158,158,220,184,184, 56,242,115,158, 33, 0, 96,102,102,102, +166,211,233,112,233,210,165, 39, 0, 22,140, 29, 59,214,110,231,206,157,163, 68, 34, 17, 10, 10, 10,148,177,177,177, 99, 0, 92, +254,167,159,117, 52, 65,172,152, 50,117,110,224,212, 41, 99,120,222,109, 91, 67, 81,156, 1,165, 44, 27,138,146, 44,236, 62, 24, + 2,130, 96,192,214,214, 17,118, 14,206, 72, 77, 77,195,195,171,215, 52,114,133,114, 39, 71, 71,109,174,153,115, 78, 41,103,155, + 82, 78,133, 60, 7, 74, 89, 78, 5,167,157, 93,189, 50,206, 84, 60,136,184,166, 82,202,229,191,104,104,226,231,191,249,218,255, +155, 81,183, 92,135,149, 81, 88, 88, 56,111,250,244,233, 93,151, 45, 91,102, 77,146, 36,211,202,202, 10,169,169,169,228,185,115, +231, 10,100, 50,217,188,207, 41, 13,203,196,228,165,187,135,103,215, 65,131, 6,145, 3, 7, 14, 96,143,155,212,155,101,107,103, +135, 34,105, 62, 18,222, 68, 33,254,245, 11,184,123,182,194,234,117, 59, 0, 11,139, 90, 19, 73,150,165,213,233,191,246,199,197, +167, 59,249,246, 50,243,108,214,138,221,186,177, 57,180, 58, 18, 25, 25, 25,184,124, 41, 90, 27,251,252,126, 49, 69,106, 70, 42, +242, 12, 75,193, 19, 14,144,200,199,254,230,118,218,227, 27,183,238, 94,180,103,255,145, 37,203,230, 78, 17,118,246,233,137,152, +219,127,224,124,240,105,185, 74,173,217,202,102, 98,123,108, 62, 20, 9,117,172, 3,149, 74,165,253,120, 60, 85,169, 84,218, 47, +109,233,195,135, 15, 35, 59, 59, 91,147,146,146,114,131, 36,201, 51, 53, 36,123,254, 4,187, 1,205, 96,181,250,246,143, 62, 62, +189,127,188,121,147, 55, 97,233, 82,205,216,113,227, 22, 67,173,214,130,195,161, 89, 66, 33, 3, 92,174,201,171, 7, 15,248,191, +206,156,105, 69,104, 52,183,142,212, 16, 54,160, 10,252,229,171, 14,203, 45, 90, 93,186,116,198,132, 41, 11,160,172,100,209,122, +244, 44, 1,106, 45, 12,182,104,149, 33, 45, 37, 61,253,235,185, 43,126,188, 48,210,175,187, 87,115,215, 6, 92, 91,183, 6, 16, + 57, 56, 32, 63, 55, 23, 15,158,197,235,214,157,190, 16, 91, 38,178, 12,138, 43, 67, 81, 84,233, 36,119, 0,221,231, 45, 3,193, +100, 2,101, 97, 28,202, 87, 14,185,181,251, 6, 4,139, 5, 61, 77, 65,173, 86, 27, 50,233, 47,227,253,251,247, 67,199,142, 29, + 27, 26, 28, 28,204,240,243,243,107,125,241,226, 69,234, 75,250,142, 82,169,252, 26, 0,120, 60, 94,178,133,133,133,211,164, 73, +147,160,211,233,160, 80, 40, 80, 84, 84,132,140,140, 12,233,164, 73,147,180, 0,192,231,243, 57,195,134, 13, 51,171,141,115,199, + 57,177,106,193, 48,167, 93, 86,172,148, 81,197,121, 47,221,172, 88, 41,201, 95, 55,167,118,237, 56, 39, 86,153,213,147,175,207, + 75, 9, 79,144,200,111, 6, 30,189,112,158, 57,126,240, 80,189,179,232,109, 0,207,142, 62, 87, 27, 47, 65, 16,159, 4, 39, 53, + 80,100,125,128,146,146,146,229, 43, 87,174,236, 87, 88, 88,232,220,187,119,111,182,151,151, 23, 30, 63,126,140,224,224, 96,242, +209,163, 71,233,114,185,252, 7, 0, 42, 0, 33,159, 83,167, 30, 30, 30,110, 44, 22,171,220,149,246, 91,217,238,223, 46, 94,188, + 56,114,202,148, 41,104,208,160, 65,211,184,184, 56, 46,234,112, 31,209, 52, 93,225,101,248, 43, 65, 16, 68,226,175,191,254,234, +228,224,224, 64, 92,191,126,157,100, 50,153,159, 99,185, 57,124,232,208,161, 14, 58,157,110,234,180,105,211,224,235,235, 11,146, + 36,113,236,216, 49, 28, 58,116,200, 80,145, 85, 35, 18, 18, 18, 94,164,167,167,127,187,120,241, 98,108,219,182,109,249,226,197, +139,145,158,158,142,132,132,132,168, 47,225, 45, 46, 46, 86,166,165,165, 9, 58,118,236,232, 29, 27, 27, 27,219,181,107,215,102, + 83,166, 76,193,230,205,155,233,187,119,239, 14, 3,112,253,223, 49,122,199,191, 43, 8, 50,209,179,110,174, 91,255,203,170,198, +141,220,102, 76,158, 56,130,233,225,222, 12,242,162, 12, 88,219,216,195,217,165, 33,114,115,242,112,227,198,117,125, 94,158,244, +176,158, 65,172,125,247,174, 32,243, 75, 56,157,156, 27, 34, 39, 39, 7,215,174, 93,211, 75, 11,139, 15, 64,199, 88, 23,151, 42, +205,134, 17,134, 88,178,166,161,134, 40,241, 53,193,198,210,210,242,164,153,153, 89,182,153,153, 89,182,165,165,229, 73,192,160, +213, 7, 61, 42, 61, 29,152, 31,124,134, 13,227,129,199,251, 26, 44,214, 66, 11, 75,203,235,230,230,230,249, 93,186,116,209, 4, + 6, 6,170,226,226, 94, 81, 98,113, 58,109,110,110, 94, 84,113,124, 85,156, 31,193,210,178,145,169,208,177,217, 42,115,231,214, + 15, 68,142, 77, 75, 68,142, 77, 75,204,157, 91, 61, 20, 58, 54, 93, 99,105,217,200,212,160,114, 86,131,134,118,176,117,183,193, + 30, 79, 91, 66,233,110,131, 61, 13,237, 96,107,240,181,215,236,246,211, 19, 4,244, 40, 93,134,141,207,224, 44,231,160,152, 76, +230, 17,103,103,103, 71,212, 45, 96,221, 39,156,227,128, 6,227,184,220,169,103, 3, 2, 38, 36,223,189, 59,182, 56, 41,105,116, + 81, 98,226,136,168,211,167, 71,254, 54,114,228,184,209, 92,238,180, 97, 64, 35, 67, 57, 29, 29, 29, 55,189,120,241, 34,216,208, + 79, 37,225,101,112,125, 54,106,232,116,211,175, 71, 7,218,127,250, 16,218,127,250, 16,218,175, 71, 7,186, 81, 67,167,155, 95, +208, 70, 4,147,201, 28, 37, 16, 8, 78, 10, 5,130, 24,161, 64, 16, 35, 16, 8, 78, 50,153,204, 81,168,121, 14,213, 7,156,214, +214,214,207,237,237,237,179,235,242,177,177,177,137,172, 67, 57, 71,187,185,185,165, 51, 24,140, 29,117,188,167,107,226,116,231, +243,249,137, 66,161, 48,163,242,135,207,231, 87, 14, 12,101, 45, 16, 8,174, 8,133,194,157,134,112,254,188,162,217,170,135, 33, +179, 95,254,188,162,217,170,143,191,155,243,157,229,164,199,161,107,243,231,124,103, 57,201,144,114,218,217,217,221,181,179,179, +147,216,217,217, 73,236,237,237,107,252,216,216,216, 60, 55,128,147,103,106,106,186,211,212,212, 52, 91, 40, 20,234, 69, 34, 81, +182, 80, 40,220,129, 74,161, 45, 62,183, 62, 25, 12,198,230,166, 77,155,170,152, 76,230,239, 31,125,181,173,113,227,198, 42, 22, +139,181,181,142,156,102,157, 59,119,214, 71, 71, 71,211,190,190,190, 52, 0,203,191,176,221, 29, 44, 45, 45,175,155,153,153,165, +153,154,154,238, 6, 32,252, 76, 78, 2,192, 40, 39, 39,167,168,110,221,186, 41,156,156,156, 34, 0, 12,250, 11,203,217,239,187, +239,190,163,210,210,210,104,154,166,233,180,180, 52,250,187,239,190,163, 80, 26, 40,242, 75,158,201, 43,102,206,156, 73, 63,122, +244,136,126,244,232, 17, 29, 17, 17, 65,247,235,215,143, 2,240,253, 23, 62,231,241, 87, 93,187, 87, 67,155, 70, 95, 53,177, 60, + 51,102,168, 15, 21,114,121, 7,189,250,135, 25,116, 79,223,102,180,103, 99,203, 11,238,238,214,238,127, 5,231,170, 31,166,211, + 61,190,109, 74,121, 53,178, 60,237,213,208,166,209, 63,124,237,255, 31,173, 90,248,187, 39,156,253,203,180,248,161, 88,170, 26, +245,234,213, 67,126,126, 7, 30,139,229,195,229,114,187, 50,152,204, 59, 5,185,185,243,203, 94,183,244,255,148,169,182,198, 1, +189, 17, 56, 53,164, 36,248, 28,206, 15, 38,178,127, 38,103, 93, 56, 12,226,172, 46,169, 52,165, 86,103, 90,147,228,243,221,168, +177, 14, 62,224,116,114,114,154, 74, 81,148,155,161, 5, 98, 48, 24,201, 98,177,248,224,231,212,103,147, 38, 77,232, 50,247, 54, +241, 87,182,251,223,209,151,254,151, 56,143,254,210,162,158,103,139,175,150,196,188,136,219, 86,230, 86,172,192,154, 57,150,166, + 62,221,186,172,124, 16,118,247,167, 53,187, 11, 75,254,205,215,206,128,129,115,218,254, 2,206,242, 32,161,117,226, 52, 49, 49, + 9,108,223,190,253,212,199,143, 31,255,174,215,235,167,253,143,246,207,126, 76, 38,115,177,135,135, 71,235,132,132,132, 40,189, + 94,191, 13, 85, 4,138,252,140,114,254,224,230,230, 54,139,205,102,115,101, 50, 89, 97,102,102,230, 74, 0,103,254,211,234,211, +171,137,149, 55, 77, 87, 4,221,222,240,230,125,193,211,191,140,147,166,244, 20,205, 92,159,144,148, 31,249,111,104,247,255,111, + 34,235,192, 63,241,195, 61,140,156, 70, 78, 35,167,145,211,200,249,151,115,242,141,245,105,228,252,127,200,249,255, 18, 44, 99, + 21, 24, 97,132, 17, 70,252,215, 65,105,172, 2, 35,140,248,143, 67,101,171, 86,133, 53,139,168, 65,149,214,197, 36,248, 57,202, +246,182,145,211,200,105,228, 52,114, 26, 57,141,156, 70,206,255, 57,206,255,175, 34,235, 64, 13,219,127, 27,140,102, 85, 35,167, +145,211,200,105,228, 52,114, 26, 57,141,156,255, 11, 66,171,202,109,163,235,208,136,191, 29,187, 6,195, 9, 0,230, 94,132,248, +239, 56,222, 8, 35,140, 48,194, 8, 35,254,205, 56,128,106, 92,135,255, 9, 66,171, 30,128,175, 81,154,248, 54, 30,192,125, 0, +133, 95,192,103, 3, 96, 4, 65, 16,195, 1,128,166,233,179, 40, 93, 53,146,103,200,201, 60, 30, 47, 91,165, 82,217,149,253,159, +163, 82,169, 42,231, 50, 32,240,233,106, 54,186,210,167, 74,184,185,185,101,171,213,106, 59, 3,126,190,136,166,233,151, 12, 6, + 35, 70, 36, 18,133, 37, 36, 36, 4,215,229,194,187,118,237, 58,129,201,100,110, 0, 0,189, 94,191,226,206,157, 59, 71,254,198, +118,235,224, 82,207,225, 15,173, 78, 75,102,231, 22,172,196,167,129,252, 0, 0,123,250, 99, 19, 65, 98, 73,217,255, 91,103, 7, +215, 28, 71,167,174,199,215, 0,111, 19, 19, 19,127,123,123,251, 62, 25, 25, 25,207, 1, 44, 5,106,143,106,236,226,226,242, 61, +139,197, 26,171,215,235, 27, 49,153,204, 68,146, 36,143,167,167,167, 7, 25,159, 33, 70, 24, 97,132, 17, 70, 24, 32,182, 62, 65, +157,132,150,167, 53, 28,104, 96, 20, 8,244, 4,141, 91, 4,112, 42, 62, 31, 89,134,158,223,215, 19, 58, 29, 89,250,155,108, 6, +244,215,223, 51, 14,244,233,211,199,121,206,156, 57,248,230,155,111,240,248,241,227,142,135, 15, 31,158,116,230,204,153,151, 20, + 69,221, 1,240, 24, 48, 40,148,130, 16,165,113, 90,198,244,233,211,167,199,134, 13, 27,152,205,154, 53,131, 82,169,196,221,187, +119,125,182,110,221,186,243,225,195,135,183, 1,156, 40, 19, 4,213, 38,192, 83,169, 84,118,229,201, 56, 9,130,176, 27, 54,108, +216,211,202,226,170, 44,191, 26, 65,211,244, 35,130, 32, 34,244,122,253,227,115,231,206,165,123, 2, 29,166,187,177,207,205, 79, +214, 58,127,204,169, 86,171,237, 46,253,188, 17, 44, 46, 23,234,146, 98,116,156,248, 47,209,123,107,213, 18, 16, 20, 9, 38,232, +194,174,235,119,190, 4, 16,147,153,153,249,210,215,215, 55,185,174, 45,204,100, 50, 55,220,184,113,195,145,166,105,248,249,249, +109, 0,240,119, 9, 45,238,215,222,173,238, 92, 57,127,146, 39, 43,200, 70,239, 65, 35,143,191, 77,207,153, 0,224,252, 7,162, +169, 15,236, 9, 2, 75,102,110, 60,193, 4,128,189, 63,140, 89,186,163, 23,118, 45, 8, 65, 22,128,174,101,226, 7, 0,126, 6, +112,103, 79, 31,216, 3, 88, 54,115,227, 9, 2, 0,246,253, 48,102,201,158, 62,248,117,246,245, 58,135,173,152, 53, 97,194,132, + 93, 27, 54,108, 96, 58, 58, 58, 66, 44, 22,247,110,218,180,169, 71,113,113,113, 83,212, 48,137,184, 65,131, 6,167, 59,119, 27, +208,112,200,240, 81, 2, 91, 27, 75,100, 74,242,204, 78,159,252,125, 58,243,209,221, 62, 41, 41, 41, 35,141,207, 16, 35,140, 48, +194, 8, 35,170,193,231, 71,134,111,227, 8,190, 92,139,239, 88, 76,226,251, 78,222, 77,187,143,238,219,153,209,212,171, 9, 94, +191,138,235,117, 57,236,201, 86, 70,196,171, 80, 82, 79, 7, 9,217,184, 20, 41,169,121, 37,140,142, 4, 43,228,210,137,210,145, +112,210, 24,230,211,167, 79,155,180,109,219,182, 34, 53, 76,247,238,221,209,189,123,119, 98,239,222,189,173, 66, 66, 66, 90, 29, + 58,116, 72, 27, 26, 26,250, 7,106,142,143,226,223,184,113,227,173,187,118,237,226,250,250,250,130,203,229, 86,124, 33, 18,137, + 48, 96,192, 0, 12, 24, 48,128,153,153,153,233,119,229,202, 21,191,159,127,254, 89,147,154,154,186, 24,255,138,210, 92, 35, 86, +174, 92,233, 93,197,238, 27, 4, 65,188, 39, 73, 50,170, 85,171, 86,233, 30, 64,147,233,125,191,185, 53,171,147,187,112,254,242, +195, 85,242,176, 56, 28, 28,157, 80, 58, 86, 87, 22, 90,201, 97,215, 33, 50, 51,205, 23,152,154,190, 4, 16, 3,224, 37, 77,211, + 49,137,137,137,113, 95, 1,173,190,182,100,252,241,123, 33,213,178, 14, 98, 11,233,233,233, 48, 55, 55,231,251,250,250, 74, 8, +130, 88,115,247,238,221,191,122, 66, 94,135, 53, 75,102,177, 11, 83, 94, 34,235,205, 35, 44, 28,238, 35,152,191,251,207,159, 84, + 26,221,249,154, 78, 34, 8, 6,227,231, 8, 42, 0,165,201,120, 87,230,231,231,251, 2,128,181,181, 53, 7,192,157, 29, 79,208, +119, 65, 39,226, 75, 98,187,177,153, 76,230,158,195,135, 15, 79,249,254,251,239, 75, 83, 71, 60,120, 0,145, 72,132,117,235,214, + 53, 88,180,104,209, 38,146, 36,231, 85,103,201,234,220,109, 64,195, 95,183,253,212,180,164,160, 72,189,127,207,153,103,245,154, +123, 50,102,250, 47, 50,253, 85,171,118,208,235,245,223, 27, 45, 91, 70, 24, 97,132, 17, 70,212,197,154, 85,171,208,242,176,193, +145, 54,205,221, 71,140,238,231,195,109,209,188, 25,216,220,127,133,110,105,235,237,141,182,222,222,140, 0, 89, 73,207,167,207, + 94,244, 60, 23,242, 88,173,208,165,158, 73,200,195, 4, 67, 75, 85,158,148,118,195, 32,251,110,114,105, 14, 15, 0,132, 22,118, +170, 31, 46,101,133,117,234,212, 9,206,206,206,236,208,208,208,201,181, 8,173, 31,226,227,227,185, 76,102,205,241, 80,235,213, +171,135, 97,195,134,193,211,211,147,211,165, 75,151, 31,170, 19, 90, 60, 30, 47,135, 32, 8, 59, 0,176,178,178,210,175, 89,179, + 38,138, 46, 5, 0,208, 52, 77, 63, 98, 48, 24,143, 41,138,122,242,231,159,127,102, 52, 5,236,122,183,245,188, 63,107,220, 48, + 1,125,110,103,181, 34, 65, 85, 92, 92,229,126,129, 72,152,203, 23, 10, 95,114, 5,188, 24,148,230,242,138,113,118,118,142,107, + 10, 56,183,247,116, 11,217,187, 96,140,233,239,211,126,170,181, 46,219,180,105,227,209,178,101, 75,158, 94,175,135, 92, 46,199, +190,125,251,204,249,124,190,121,159, 62,125, 86, 87,238, 0, 94, 64,139,161,245,152,211,214,102,234,103,127, 70, 71,178,232,220, +209, 59,101,216,128, 62,102,222, 95,119,198,219, 59,199, 80, 80, 80,130, 34,169, 12, 20, 69,125, 18,215,103,246,117,100,239,233, +143,173,123,151,143, 89, 70, 48, 24, 68,171,193, 75, 49,208,161,104,110, 96, 96,224, 43, 0, 38, 28, 14,167,114, 63,172,199,119, +106,190,181, 73,175,206,216,183, 98, 28,104,138,162, 1,108,173,131, 53,203,206,212,212,244,114, 72, 72, 72,135,118,237,218,225, +241,227,199, 72, 74, 74,194,172, 89,179, 52,179,103,207,102,143, 31, 63,158, 88,184,112,225,156,159,127,254,249, 28,128,135,159, +220, 8, 44,214,216, 65, 67, 70,114,100,210, 98,149, 70,173,213, 88,217, 88, 80,106,185, 74,145, 87, 88,172, 26, 57,102,170,230, + 85,228,147,177, 0, 62, 17, 90, 95, 88,159, 70, 24, 97,132, 17, 70, 24, 0,154,166,219, 1,176, 5,144, 75, 16,196,179,202,219, +101,135,148,103,107,249,120, 59, 15,165, 94, 41,235, 74,116,121, 40,157,238, 99, 11, 64, 15,224, 41, 65, 16,133, 95, 88,196,154, + 87, 25, 6, 7, 7,211,149,255, 86, 18, 90, 52, 77,211,180, 46,255, 61,173, 78,184, 78, 43,158, 29,252,228,163,124,117,158,150, + 60, 61, 67, 63, 57,177,138,246,176,169, 57, 11,123, 95, 79,232,198,180, 4, 61,179, 29,232,121, 93, 44, 84, 79,159, 62, 13,165, + 40, 42, 56,160, 51,104,250,245, 9,154,126,125,130, 94,208, 17,244,185,115,231,110,108,218,180, 41, 56, 40, 40, 40, 24, 64,109, +243,148,178, 75,158, 69,208, 79,236, 64, 87,135,248,248,120, 58, 48, 48,144, 94,190,124, 57,253,251,239,191,211,168, 37,130,186, +159,159,223,221,216,216, 88,122,252,248,241, 81,168, 33, 48,160, 23, 32, 28,219,192,225,141,250,244, 78,173,230,251, 22,116,225, +183,188, 42,175,223,209,209,241,131,242,108,118,119,160,127,107,239, 78, 31,233,217, 54,139,166,233, 27, 52, 77,111,166,105,122, + 36, 77,211,158, 0,208, 6, 48, 27,228,104,253, 78,117,230, 87,165,102,218,215,181,230,189,107,211,166,141,199,226,197,139, 11, + 52, 26, 13,157,156,156, 76,239,223,191,159,190,117,235, 22,125,233,210, 37,218,199,199, 39,179, 82,121,237, 39,121,186,102,107, + 14,173, 85,127, 78, 47, 50, 97, 50,127,123,118,235, 28,253,238,254, 89,250,233,169, 77,244,241, 31, 71,211,115, 6,117,208,154, +241,185, 42, 0,221,170, 59,111,118, 39, 52,241,108, 96,155,144,154,154, 74,107,181, 90,122,226,196,137,180,159,159, 31,221,171, + 87, 47,186, 71,143, 30,116,247,238,221,233,110,221,186,209, 97, 97, 97,116,102,102, 38,221,163,115, 91,121,127, 47,120,215,161, +104,205, 93, 93, 93,179,146,147,147,105,173, 86, 75,135,134,134,210,199,142, 29,163, 67, 67, 67,233,128,128, 0, 26,192,145,153, + 51,103, 42, 11, 11, 11,105, 63, 63,191, 12, 84, 17, 53,222,213,213, 53, 46, 54, 33, 61,125,199,198,131, 97, 71,127, 59, 25,118, +225,220,173,176,203, 55,159, 94,189,116,243,217,153, 39,209,137,151, 92, 93, 93,227,170,104,255, 47,170, 79, 35,140, 48,194, 8, + 35,106,215, 34,101, 66,171, 95,153,177,163, 31, 77,211, 61, 62,218,238, 87, 38,156, 62,217, 14, 8, 8, 88, 94,121,187,252,152, +128,128,128,229, 0,232,142, 29, 59,158,164,105,186,201, 95, 80,252,105, 85,124,106,183,104,149,131,204,120, 10,182,123, 31,152, +232,117,208,229,197,131,146,166, 2, 66, 7, 40, 9, 17,242, 37,169,120,115,255,124,205,137, 36,202,112, 45, 30, 38, 0, 66,227, +226,226,240,230,205, 27,164,167,167, 67, 32, 16,124,114,220,131, 7, 15,192,231,243,225,232,232,104,152,210,213,124, 56,206,189, +108,235, 10, 81, 71, 95,228,141,158,129,208,208, 80,228,228,228,128,205,102,131,195,225,128, 36,201, 90,249, 24,140,210,140,191, +229, 86,172,170,142,241, 5, 88, 92, 43,209,149,189,171,231,185, 49, 30, 5,155, 40,211,222, 33, 83,165, 55,204,146, 39, 18, 66, + 32, 20, 72,248,124, 65,133,187, 16, 64, 12, 65, 16,111,219, 0, 38, 66, 17,239,202, 31,235, 23, 58, 48, 35, 67,121,202,119, 47, +171,228,232,209,163,199,116, 0,171,105,154,150,182,108,217,210,126,195,134, 13,150, 98,177, 24,175, 95,191,198,153, 51,103,114, +201,210, 11, 37,104,154, 94, 11, 0, 95, 3, 60, 11, 91,139,155,191,173,154,103,138, 59,167, 57,159,211,139,204,189, 6, 92, 29, + 58,126,230,236, 93,243, 6, 64, 94,162,196,137, 91,145,184,241,226,253, 64, 0, 15, 80,195,188,183, 61, 15,241, 14,200,237, 62, +100,200,144,168,123,247,238,217, 28, 58,116, 8, 36, 73, 86,249, 57,116,232, 16,110,223,127, 49, 23,192,115, 3,139, 85,207,205, +205,237,246,147, 39, 79,108, 5, 2, 1,110,221,186, 5,169, 84, 90, 97,201,154, 48, 97, 2, 33,149, 74, 71,237,219,183,111,104, + 74, 74,202,182,251,247,239,231,163, 52, 23,113,136, 88,194, 0, 0, 32, 0, 73, 68, 65, 84,228, 7, 29,129,201,100,190, 39, 73, +237, 87,142, 94, 77, 88,195, 7,116,238, 44,203,127, 9,145,117, 75, 60,138,126,127, 69, 90,152,175,100, 50,153,239, 43, 31,255, + 87,212,167, 17, 70, 24, 97,132, 17,117, 3, 65, 16,193, 52, 77,247, 39, 8, 34,248,227,125, 31,255, 95,126,220,166, 77,155, 42, +182,203,207,217,188,121,243,198, 74,219,138,191,168,120, 53, 78,134,239, 82,166, 32,187, 84,117,144,250,245, 5,168,223, 92, 6, +219,181, 19, 56,158, 3,193,116,245, 65,218,203, 59,136,190,190, 3, 25,175, 30,128,166,244,112,244,104,111,104, 65, 84, 95,125, +245, 21, 84,170,210,169, 89,106,181, 26,108,161,165,106,225,180, 49, 60, 0,160, 88, 60,117, 37, 5,107, 16,161,105,167,174,104, +159, 77,227,169,125,169,161,162,125,118,233,121,235, 39, 78, 4,155,205, 6,155,205, 6, 81, 54,245,199, 16,161, 69,148, 29, 76, +149,186,175,170, 42, 4,161,224,154,156, 56,181,218,191, 61, 55, 37,134,163,142,125,132, 76, 53, 69, 95,201,214, 95, 53,164,188, + 2,161, 64,204, 23, 8, 98,248, 34, 97,133,208, 34, 8,226, 61, 0,208, 38, 38, 65,199,214,250,183, 20,102, 39, 10, 85,207, 66, + 33, 81, 81,218,106,104,214, 94,191,126,221,142,197, 98, 57,232,245,122,164,165,165,225,213,171, 87,248,245,215, 95,179, 75, 74, + 74,186, 68, 70, 70, 38, 84,214,142,122, 62,231, 76,208,186,121, 13, 89, 47,195,121,234,247,177,117,238, 61, 54,205,191,243, 27, +216,165,213,213,233,227, 86,224,187,190,189, 48,190, 75, 83, 58, 57,179, 64, 5,224, 86,153,233,181, 54,136, 35, 35, 35,123,126, +251,237,183,199, 91,183,110,237, 69,211, 52, 90,180,104,129, 81,163, 70, 33, 40, 40, 8,209,209,209, 40, 46, 46,214,134,132,132, +236, 4,112,216,192, 98, 9, 44, 45, 45,111,132,133,133,217, 10, 4, 2,132,132,132, 64,169, 84,194,209,209, 17,179,103,207,230, +108,222,188,249,104,113,113,241,240, 77,155, 54,241,146,147,147,127,187,121,243,102, 3,148,230,157,251,164, 19,104, 52,154, 3, + 39,130,142,236,154,237, 63,199, 41,236,241,235, 80,181,172,196,220,213, 53,189,216,214, 82,100,186,115,203,218,250, 26,141,102, +122,213,245,121,247,179,234,211, 8, 35,140, 48,194,136, 79, 80,163, 22,169, 44,158, 62, 22, 91,117, 17,105, 0,148, 1, 1, 1, + 63, 16, 4, 17, 28, 16, 16,240,195,166, 77,155,148, 0, 50,255, 14,145, 85, 33,180,250,247,239, 31, 30, 28, 28,140,254,253,251, +135, 87, 75, 65,233,161, 77,190, 7,109,242, 61,240, 59,206,197,159,155, 70,127,116,241,212,103,151,110,192,186, 91, 97,106,181, +154,117,228,200,145,138,121, 91, 0,160,215,235,255,242, 86,172,139,208, 42, 19,122,159, 20,194,141, 43, 10, 63,176, 96,248,215, +214,122,133,137,230,193, 21,136,213, 20,185,237,157, 86,241, 76, 74,255, 92, 29,231,165,249,211,145,126,255, 54, 4, 34, 81,250, +148,123, 49, 21, 86,172, 50,145,149, 4, 0, 13,184,166,161,129,243,190,243,113, 96,131,173,185,122, 22,153,106, 74, 29,152,162, + 59, 92, 77,103, 3, 77,211, 72, 74, 74,130, 66,161, 64, 68, 68, 4,206,159, 63,159, 91,133,200,130, 27, 87,116,247,247,165, 99, + 59,152,149,100,177, 53,207,110, 35, 83, 77, 25,228,234,178,105,241, 93, 39, 54,131, 8, 33, 24, 76,126,247,175, 61, 48,127,234, + 96,236,248,253, 79, 82, 99,215,185,255,174,203,215, 70,200,212,218, 31, 12, 20, 89, 21,198,198,200,200,200,166,145,145,145, 92, + 0, 93, 71,141, 26,117,109,232,208,161, 8, 15, 15,199,149, 43, 87,220, 1, 72,202,142, 91,135,210, 68,217, 63, 3, 72,172,206, +240,200,102,179, 79,221,190,125,187, 89,189,122,245,112,251,246,109, 40,149, 74,204,156, 57, 83,227,239,239,207,158, 48, 97, 2, + 81, 84, 84, 84, 97,201,138,136,136,200,175, 78,100, 1,128, 88, 44,190,126,254,204,177,111,190,253,246,219,193, 13,221, 61,205, + 18, 75,138,115, 4, 2, 30,255,126,248, 29,246,179, 39, 15,127, 19,139,197, 79,171,174,207, 80,131,235,211, 8, 35,140, 48,194, +136,234, 97,144, 22,249,200, 50, 85, 23, 84, 58,207,100,211,166, 77,175, 54,109,218,244,129,197,235, 11,241,241,170,195,171,229, + 99,218,103,197,209,210, 23,165,125,122, 1, 20, 85,151,139,253,100,159,165,165, 37,201,231,243, 63, 16, 90,148,129,156, 5, 23, + 79, 34,113,214,152, 10, 75, 86,185,101, 11,189, 39,124,145,208,162, 40, 42, 2,192, 7,133, 16,216,121,140,222, 57,192,171, 83, +211,134, 78, 12,221,153, 95,145,161, 32, 85,171,227,181,170, 55, 37,244,192,184, 42, 38, 89, 87,112,146, 58,240,132,252, 84,190, + 72,248,177,200, 74, 1, 0,161,189,251,208,109,125, 60,187,180,242,108,204, 32, 79,255, 2,177, 66, 39, 11,136,211,106, 19,229, +244,133,106,234,112,117,175, 94,189, 86, 91, 91, 91,243,118,237,218,101,238,234,234, 10,146, 36, 53, 31,139, 44,129,157,199,232, + 95,191,107,222,201,195,193,146,161, 59,183, 27,233, 74,189,226,215, 68,221, 81, 67, 68,150,141,185,232,102,224,198, 89,124, 1, +215, 4, 42,149, 10,155,247,158, 67,200,195,216,254,121,177,151,110, 2,184,249, 5, 29,114, 74,255,254,253,119,172, 91,183, 14, + 58,157, 14,147, 39, 79,198,251,247,239, 67,226,227,227,127,173, 95,191,254,226,165, 75,151,214,115,112,112,192,136, 17, 35,216, + 58,157,110, 66, 53, 28, 91, 78,156, 56,209,191, 85,171, 86, 8, 15, 15,135, 84, 42,133,163,163, 35,252,253,253, 57,155, 54,109, + 58, 90, 92, 92, 60,124,227,198,141,188,164,164,164, 26, 45, 89, 31,244,107,189,126,253,254, 29,179, 22,183,251,218,135,241,238, + 93, 2,153,214,222,151,113,231,246,149,123,214,214,214, 71,211,210,210,254, 85,159,131, 91,212,185, 62,141, 48,194, 8, 35,140, +248,107, 64, 16,196,213,178,121, 87, 31, 88,185, 62, 22, 97,229, 22,171,202,219, 31, 31, 95,246,253, 95,241,178,124,160, 10,225, +245, 97,120,135,254,253,251, 27,188,172,158,146,231, 26, 36,158, 62, 70, 95, 79,232,156, 68, 96,253,224,203, 0, 91,104,169, 26, +176,238, 86, 88,117,199, 10,133, 66,131, 45, 90,148, 90, 85, 91,163,212, 73,104,149,205,209,186, 65,211,244, 7, 66,203,220,222, +195,119,217,210,121, 59,125,134,246,102,100, 79,237, 8,169, 76,173, 94,250,154,164, 50, 20, 53,139,172,210, 81, 92,151, 44, 16, +138, 98,120, 66, 65,101,145,149, 6, 0, 60,187,198,237,151,204,159,189,183,219,232, 1, 68,238, 76, 31, 20, 74,149,234,197,175, + 72, 66,172,164,135,199, 1,119,170,162, 11, 11, 11,219, 15, 96,191,175,175,111,182, 80, 40,132, 76, 38,251,164, 13,202,203,219, +105,104,111, 70,246,148, 14, 40,144,107,213, 75, 95,145,200, 84, 82,167,106, 19, 89,182, 22,166, 55, 3, 55,204, 18,100,102,164, +128,205,102, 67, 36, 18,225,214,131, 24,228,189,186,252, 37, 2, 11, 12, 6, 99, 77, 64, 64,192,234,217,179,103, 35, 63, 63, 31, + 87,174, 92, 65,223,190,125,113,242,228, 73,215,107,215,174,237,232,218,181, 43,152, 76, 38,130,131,131,161,211,233,222, 86, 67, + 51,120,218,180,105,139,135, 14, 29,138,167, 79,159, 66, 34,145,124, 96,201,146, 74,165,163,246,238,221, 59, 52, 57, 57,185, 86, + 75,214, 71,104,239,214,184, 13,123,249,202,237, 80, 43,114, 88,185,226,199,225,161,183, 24,143, 10, 10, 10, 4, 0,138, 62,183, + 62,141, 48,194, 8, 35,140, 48,216,170, 85,157, 22,201, 45, 19, 81,185, 85,109, 87, 18, 88, 85,109, 19, 31, 89,193, 52, 31,125, + 31,253,119, 94,147, 65, 22, 45,150,125,115,144,217,177,149,132, 86,206, 7,223,243, 76,173, 12,114, 29,234, 72,176, 2, 15, 87, +196,209,226,229,231,231,243,108,108,108, 84,149, 5,130, 64, 32, 64,189,122,245, 80, 88, 88,136, 3, 7, 14, 0,181, 79,138, 38, +205,134,142, 67,251,209,147,241,204,153, 3, 90,167,173,176,108, 5, 78,156,248,129,216, 98,179,217,229,115,195,106, 27,116,159, +148, 89,154, 30, 1,160,219,184, 55,252,137, 39, 20, 78,228,217,184,216,204,159, 53,197, 36, 57, 71,141, 48,159,229,210,115, 91, +150,137,210,105,209,236, 52, 20, 61,172,133, 47,113,208,190, 99, 31, 91,178, 50, 90,187, 55, 92,193, 19,240,166,114,172, 26, 56, + 4, 44,156,101,146,156,173, 38,194,218, 47, 45, 62,255,243, 82, 65, 18, 76, 23,103, 64,122,199,128,230, 89,221,183,111,223,213, + 52, 77,211, 20, 69,173, 4,128,202,229, 93,232, 63,213, 36, 49, 75,133, 80,159, 21,133,231,183, 44, 51, 77, 71,205,229,181,105, +241, 93, 39,123, 75,179,155,129, 27,103, 11, 36,226, 84,112,185, 92,152,154,154, 34, 61,187, 8, 38, 44,166,242, 11,251, 27,183, +115,231,206,203,102,205,154,133,152,152, 24,204,156, 57, 83,146,150,150,118,225,244,233,211, 51, 87,173, 90,197,242,243,243,131, + 68, 34,193,214,173, 91,117, 15, 30, 60,216, 8, 96,107,149,253,145,197,154,242,211, 79, 63,209,153,153,153, 68, 82, 82, 18, 28, + 29, 29, 49,103,206, 28,206,198,141, 27, 43,230,100,213,197,146, 85, 14,177, 88, 28, 30,114,251, 17, 6, 94,223, 9, 82,167, 14, +151,230,167,221,123,147, 88, 24,110,197,225, 44,114,106,211,226,179,234,211, 8, 35,140, 48,194,136,191,196,138,245,172,166,237, +255, 0, 84,229, 58, 52, 72,104,189,221,189, 98,146,251,164,217, 75,192,119,237, 4,117,220, 69, 80,178,236, 10,139, 22, 79,100, + 9,171,250, 94,144,202,213, 56, 27,250, 2, 0,222,214,165, 84, 37, 37, 37,104,219,182, 45,246, 76,240,232,166, 42,201,231,241, + 1,168,185,102,170, 75,156,206, 97,215,174, 93, 83, 80, 20,117, 10,192,181, 90,104,214, 52,107,214,236,183,237,219,183,115,188, + 70, 79,130,236,241,253,143, 45, 40,224,243,249,224,114,185,120,249,242, 37,194,194,194, 52, 0,214,212,210,160, 79, 72,146,140, + 62,125,250,116, 70,147,134, 78,189,219,182,110, 57,247,135,229, 1,166,175,239,135, 96,229,198,223,168, 38,222,126, 69,155, 79, + 94, 42, 41, 18,213,239,174,148,196, 71, 25,112,169,209, 31,137,172,204,175,220, 92,186,181,110,222,108,201,202,149, 43,204, 94, +221,191,133, 85, 63, 7,210,238,173,122, 20,253,124,254,114,113,158,160, 65, 47, 85,206,155,167,134,212, 97,120,120,248,126, 0, +251,203,183, 63, 46,111,192,186, 95, 41,143,118,189, 11, 55,159, 60, 47, 47, 54,173,223,163,166,242,218,122, 13,254,198,217,214, +242,230,238,245, 51, 4, 89,226, 52,112,185, 92,136, 68, 34,164, 73,164, 88,189,243,140, 92, 75, 81,189,191, 84,104,153,154,154, +114,181, 90, 45,246,236,217,131,180,180,180,142, 0,210,158, 63,127, 30, 56,114,228,200, 93, 45, 90,180,248,234,213,171, 87,111, +101, 50,217,108, 0,111,170, 35,177,176,176,232,104,107,107, 75, 60,122,244, 8, 51,102,204,208,204,153, 51,135, 61,126,252,120, +162,176,176,240,115, 45, 89, 0, 0, 39, 39, 39,223,158,221,191, 70,167,158, 51,195, 53, 42,233,189,228, 55, 71,195, 25,244, 67, +222,231,214,167, 17, 70, 24, 97,132, 17,255, 51,248,188,192,224,190, 0,203,195, 26,211,155, 57,177,179,130,182,204,161, 75, 18, + 35,104,229,211,253,116,241,197,169,244,213,173,227,233,107,187,231,211, 51,251, 53,163,191,178, 35,178, 60,172, 49,221,247, 83, +225,246, 65,118,239,190,158,208,245,108, 12,186,103, 99,208,253, 60,160, 3,240, 67,155, 54,109, 46,249,183,255, 87, 28, 45,255, +246,160, 1,204, 0, 32,170,166, 88, 85,101, 12,119, 4,112,160,109,219,182,228,157, 59,119,232,248,225, 61,232,200,175,108,232, +217,179,103,211,171, 86,173,162,199,140, 25, 67,219,218,218,146,101, 21,225, 88, 27,231,192,129, 3,157, 1,224,255,216,251,238, +240, 40,170,246,237,123,102,251,166,247, 6, 73,128, 64, 32,141,132, 22, 18, 90, 8, 69, 65,130, 2,130, 72, 87, 20, 94,149, 34, + 69, 9, 32, 82, 20, 18, 69,138, 8, 8,168, 72, 81, 74,164,135,162, 52, 65, 65, 74, 8,164,147, 64, 8,169,155, 94,118,147,109, +179, 83,190, 63,146, 44, 33, 36,217, 77,224,253,126,190,186,247,117,237, 53, 59, 59, 51,207,158, 57,103,230,156,251,220,207,115, +206,113,119,119,183,233,237,219,165, 48,225,226, 41,238,234,190, 45,220, 15,115,198,113,125,187,251,150,186,248, 12,186, 39,117, +237,214,195, 64,246,233,109,186,184,184, 44,229, 56,110, 4,199,113,174, 0,224,237,109,111,209,211,167, 75,193,189, 11,167,184, + 63,246,111,229,126,152, 51,142, 11, 9,244, 43,107,239, 27,158, 38,113,242, 9, 54,198,102, 83,104, 50,189, 1, 62,165,206, 93, +250,221,109, 33,189,122,155,157,130,223, 56,145, 87, 80,196,221,188,121,147, 59,115,230, 12,247,199, 31,127,112,251, 14,157,224, + 60,250, 76,168,118,232, 62,166,127, 43, 30,157,230,210,105, 61,106,212, 40, 46, 35, 35,131, 27, 57,114, 36, 7,192,186,141, 54, +143,103,101,101,113, 73, 73, 73,220,178,101,203, 56, 0,123,222,127,255,125, 85, 85, 85, 21, 55,108,216,176,156, 58,130,197,111, + 75, 58,189, 58,182,139, 30, 59,122,224,170, 57,255,121, 61,236,121,243,243, 5,194,100,211,100,211,100,211,100,243,223, 96,243, +127, 25,174,117,170, 86,253,182,167, 81,138,214, 21,128, 70, 25,118, 6, 56, 81, 63,173, 91,255,205,162,109, 59,247,124,180,100, +222, 59,230, 3, 7, 12, 71,226,133, 31,113, 36,246, 80,141, 90,163, 93, 47,228, 97, 67, 82, 25,148,233, 6, 82, 81, 55,143,214, + 83,136,143,143, 55,179,235,252,100, 14,166, 7,181,115,179,238,104,229, 13,202, 0,204,186,115,231,206,134,240,240,240,181,239, +246, 15, 30, 55,167,223, 16,232,116, 58,236,219,183, 15,217,217,217, 71, 1, 44, 55, 86,113, 75, 76, 76, 44,245,235,236, 57, 95, +192,227,127,244,193,228,177,142, 37, 15, 83,144,151, 26, 15, 0,208,104, 84,186,194,140,171, 65,173, 73,156, 84, 42,189,233,232, +232,120,223,209,209,177,162,107, 39,247, 89, 98, 8, 86,188,247,230,107, 78,101, 89,105,200, 77,174,245,140,106,212, 74, 42, 47, +227,178, 79, 91, 74,215,211,211, 83,108, 46,192,236, 38,211,171, 85,235,138, 30,164,245, 48,198,142, 82,163, 93,183,122,211,190, +151, 62,255,232, 45,177,149,149, 21,238, 36, 61,192,138,141, 7,106, 84, 90,221,136,210,196,227, 47,196, 61,198,113, 28,116, 58, +157,209, 3, 29,154,193,146,160,160,160,110,107,215,174,245,158, 49, 99, 6,158, 87,201,106,136,204,172,252,200,118,238, 94,126, + 15,238,223, 9,183,147, 10,127,122,158,252, 52,193, 4, 19, 76, 48,225, 95,131, 81,117, 98,206,172, 6,219,120,131, 68,171, 30, + 73,197, 80, 2, 88,211,137, 87,189, 99,233,218, 77, 43, 73, 98,243, 91, 44,199,253, 72,147, 88,253,168, 12, 37,207,153, 56,165, +128, 15,250,165, 49,147,249, 0, 32,224,183,173,129,172, 67, 6,128,215,191,187,118,171,207,119,215,110,125, 82,247,219,231, 0, + 90,229,203,181,228, 35,105,128,159, 87,187,129, 61,253, 37, 60, 70,133,188,212,135, 40,175, 81,227,124,114,118, 37,201,145, 63, +182, 54, 81,143, 30, 61,250, 29, 0,156,173,205, 82, 7,250,117,246, 24,212,203,223, 76, 64,104,145,151,114, 7, 85, 42, 45,126, + 75,206,174, 2, 65,180, 57,160,250, 69,165,183, 40,241,196,237,147, 32,134, 17, 4,113, 97,217,156, 73,226,149, 27, 15,190, 80, +146, 5, 64,153,159,159, 95,166, 84, 42,237, 11, 10, 10,180,104,251, 36,113, 15,228,114,121,247, 15, 63,252,112,205,226,197,139, + 63,250,226,139, 47,132,109,137,201,106, 14, 21,249,217,199, 6,249,191,184,242, 55,193, 4, 19, 76, 48,225, 95,129, 89,141,182, + 48,154,104,233, 9, 67, 49, 74, 0,124,224,229,197, 45,204,204,132,246, 69,165,172, 41,165,235, 57,113, 27,192,232, 54, 95, 77, + 18,138, 27, 25,217,213, 55, 51,178,171,193,114, 28,203,113, 26,146, 68,110, 13, 69,173,203,120,148,223,246, 81,119, 4,193,220, +126,144,163,138,123,152,171,230, 88,150, 99, 57, 78, 75, 16, 40,212,233,216,117,201,143,178, 79,252, 29,210, 91,154,120,252, 90, + 44, 77, 12,188,118, 51,105, 97, 77, 13,181,181, 52,245,248,245, 23, 88, 46,186,196,196,196, 41,161,161,161,111, 51, 12,179, 3, +128,238, 57,108,105,105,154, 94, 18, 29, 29,125, 52, 49, 49,241,240,245,235,215,101, 47,130,100,253, 87,203,223, 4, 19, 76, 48, +193,132,127, 42,218,182,168,116,115,120,145, 36,235,239,136,164, 7,143,123,253, 55,236, 38, 63,120, 28,240,191,144,222,162,212, + 99,113, 69,192,155,255,165,236,253,141, 97,152,223, 94, 36,169, 62,119,238, 92, 71, 52,177,172,206,223,173,252, 77, 48,193, 4, + 19, 76,248,199, 98, 86,115,228,139,111,202, 27, 19,254, 1,224, 94, 20,201, 50,193, 4, 19, 76, 48,193,132, 54,160, 89, 69,139, + 64,243, 35, 7, 46,180,226, 15,218, 50,250,224,130,201,166,201,166,201,166,201,166,201,166,201,166,201,230,191,206,230, 63, 17, +174,168, 13,136, 63, 93,183,109,145,124,189, 72,152,134,190,154,108,154,108,154,108,154,108,154,108,154,108,154,108,254,211,209, +100, 32, 60, 80, 27, 60,108,130, 9, 38,152, 96,130, 9,255, 45,136,235, 62,109, 61,110,130, 9,255,139,100, 75, 79,184,218, 18, +163,213,165,110,251,224,191,152,216, 57,174,174,174,179, 2, 3, 3,125,133, 66, 33,169, 80, 40, 86, 95,190,124,121, 85,227,147, + 6,250,241,227,120, 36,218, 63,249,133, 0, 8, 30, 64,146, 96, 56,228,253,145,160,234,109, 42,247,191, 53, 60,165, 86,142, 39, + 9,146, 39, 98,104, 10,140,142, 66,109,184, 85, 45, 88,150,206,102, 40,205,203,205, 93,236, 18, 52,214,131,102,216, 47, 0,110, + 27, 64,190, 15,176,219, 9,240,223,227, 64,127, 75,128,247, 31,240,184, 47,193, 16, 31,243, 5,188,165,178,248, 95,114,255, 9, + 25, 22, 19, 19,195,123,158,235, 39, 76,152,208,228, 2,162,110,110,110,177,102,102,102,157,155,187,174,166,166, 70, 38,147,201, +194,255,225,207,227, 32, 0,223, 0,240,111,244,123, 26,128,249, 0, 46, 62,239, 31,132, 1,124,103, 96,182, 16,248, 24, 0, 40, +224,203, 34, 96,231,149,191, 81,140,161,163,163,227, 85, 62,159,239, 93, 83, 83, 83,163, 80, 40,188, 44, 45, 45, 51,205,205,205, +205,105,154,206, 40, 41, 41, 25,212, 74,115,239,227,201, 82, 90, 31, 1,216,222,202,227, 38,152,240,191,130,231, 26,117,216,181, +182,126, 64, 24,128, 65,125,250,244,113,174,169,169, 65, 90, 90, 90, 17,128,171, 0,174,212,125,210, 95, 68, 74, 73,146,252,106, +211,166, 77,139,230,206,157,171, 95, 12, 58, 33, 33, 1, 65, 65,207,206, 17,202, 35,209,254,242,169, 11, 78,183, 19,211,209,103, +216,248, 58,162, 69, 2, 53, 50,132, 15, 15,110,107, 18, 44,109,109,109, 87, 19, 4, 49,129, 36, 73,131,141, 26,203,178, 12,199, +113, 49, 21, 21, 21, 43, 1, 40, 90,243, 71,230,102, 98, 29,205, 48, 77,254, 7,159,199, 99,106,148,154,102,167,189,176,179,179, +187, 78,146,100,167,134, 11,102, 3, 79, 47,160,221,220, 49,154,166,243, 74, 75, 75,141, 33,161, 18,146, 47,156, 79, 16,194,225, + 32,217,174, 0, 1, 2,100, 58,203,104,207,179, 52,245, 53, 0,245,243,144, 44, 87,119,175, 63, 22, 44,143,110,159,148,154,134, +101,115, 38,227,139,111,246, 96,233,252,183,241,245,174, 3,152, 63,107, 18,252,252,252,209,210,178,226, 44,132,235,150,207,155, + 48, 44,106,219,225, 1, 75, 63,152, 32,142,218, 22, 51,112,217,156,137,162,117, 91, 15, 15, 92, 54,231, 13,113,212,214,195, 3, +150,206,155, 32, 93,183,253, 23, 22,192,212,182, 36,114,146,183, 91, 13, 65,211, 77,246,182, 57, 62, 95,115, 32,163,192,252,255, +226,141,158, 49, 99, 70,160, 74,165,186, 51,121,120,207,232, 30, 93,219,229, 55,117, 78, 89, 97,126,187,204,251,241,145, 2,161, +180,215,107,145,123, 18, 90,148, 28,196,226, 78,105,105,105,222, 44,203,130, 97, 24,208, 52,173,223,106,181, 90, 12, 26, 52,232, + 69, 13,156, 25, 13, 96,117,237,203,138, 40, 0,135,159,195,150, 5,159,207, 95, 32, 18,137,194,104,154,246, 5, 0,129, 64,144, +170,209,104,174,208, 52,189, 9, 64,117, 43,237,109,206,207,207,247,179,176,176, 0, 69, 81,250, 5,232,121, 60,158,143,135,135, +199, 54,181, 90,237,253,188, 55,239, 12,204,238, 55, 96,192,215,211, 23, 45,226,169,174, 94,197,215,187,119,111,134, 92, 14, 0, +219, 12, 93, 43, 18,137,126, 37, 73,210,179, 53,255,199,178,108,182, 86,171,125,185, 53,215,240,249,124,239,130,130, 2, 39, 55, + 55, 55, 40, 20, 10,152,155,155,155,215,239,183, 65,201, 90,207,113,156,180,174,110,255, 58, 36, 36, 36,148, 32, 8, 26, 0,199, +178, 44,121,243,230,205, 73, 44,203,242,235,234,167,245, 0,118, 3,208,152,218,108, 19,254, 71,213,172, 93,173, 37, 90,103, 0, +132,245,233,211, 71,250,230,155,111, 34, 44, 44, 12,222,222,222,144, 72, 36,181,149,120, 89,153,243,221,187,119,223,184,122,245, +234, 27,167, 78,157, 66, 74, 74,138, 10,192,159, 0,154,124,169,135, 70, 12,152, 43,177, 16,111, 1,128,146,188, 50, 89,222,163, +226, 45, 50,153,108, 61,128,134, 83,132,123, 77,157, 58,117,225,188,121,243, 16, 27, 27,139, 3, 7, 14, 64,163,209, 64,161,104, +129,191, 40,139, 81,113, 41, 26, 48,207, 2,114,174, 0,102, 78,128,185,115,155,115,202,214,214,118,245,252,249,243, 63,244,243, +243,211,207, 98,174,211,233, 64,211, 52,116, 58, 29, 42, 42, 42,176,112,225,194,218,134,150,227,192,178, 44,206,158, 61, 59,119, +214,172, 89,168,168,168, 88,208,148,205,144, 94,238,113, 36, 65,182,175,215,106, 56,134,201,187,113, 55,175, 55,205, 48, 60,181, +154,106,114,165,114,137, 68,216, 34,201, 19, 8, 4,237, 83, 78,158,116, 34, 69, 34,112, 12, 3,176, 44, 56,150,173,203,206,186, + 15, 87,251, 27,199,176,224,116, 12, 88,154, 5,173,210, 32,248,253,247,141,201,138,126, 2,145,244,192,148,119, 23,185,244, 13, + 9, 17,116,112,119, 3,205,176,120,152,149,231,114, 39,238, 70,255,152,189,219,222,211,170, 20,147, 0,180,105,158, 45,145,153, +213,111, 91,191,253,174,253,237,187, 73,184,120,249, 42, 46, 92,186, 2, 0,248,245,242,245,122,194,109,176,168, 64, 87,119,159, + 63,115,140, 56,122,235, 65,193,252,153, 99,121, 95,108, 61, 36,152,247,246,107,188,232, 45, 7,132,243,222,126,141, 23,253,205, + 1,225,188,153, 99,120, 81, 95,255, 16, 8,192, 22, 64, 69,115,198,154, 43, 35,130,166,197, 63,101, 22,241, 0,160,100,199, 14, +232,138,139,225,182,114, 37, 0, 96,138,151,179,209,238, 14, 7, 7,135, 56,129, 64,208,222,208,121, 58,157,206, 32, 9,158, 49, + 99, 70,144, 74,165,138,163,105,154,227,243,249,145,147,199,190,116,124,196,192,160,178,134,231, 36, 36,220,179, 95,183,238,228, +152,195,119, 20,220, 27,189, 44,239,196,126, 53,163,119,196,226, 61,247, 90,104,144, 73,141, 70,131,140,140, 12, 52, 92,228,189, + 1,152,182,246,157, 0,124,109,111,111,223,183,172,172,108, 10,128,101,114,185, 60,144,199,227,193,206,206,110,153, 86,171,125, +104,109,109,253,125, 85, 85,213,245, 58,213,200,216, 37, 3, 6, 89, 89, 89,237, 59,118,236,152,109,207,158, 61,201,210,210, 82, +116,236,216, 17,229,229,229,193, 87,175, 94,237, 53,115,230,204,153, 10,133, 98, 90, 93,103,208, 88,116, 51, 51, 51,227,166, 79, +159, 78, 48,204,147,219,253,225,135, 31,240,114, 0,221,217,209,198, 76,169,214,114, 85, 23, 51,172,255, 35, 20, 10,255,204,206, +206,174,106,109,102, 8,129,143,167, 47, 90,196,179,120,252, 24, 22,247,238, 97,138, 92,206,255,162, 86,221, 50, 72,180, 72,146, +244,220,119,224, 71,111,145, 72, 4,154,166,245,100,176,190,142,210,233,116,160, 40, 10, 58,157, 14, 12,195, 64, 71,233, 16,245, +249,151,109,174, 11,205,204,204,204, 92, 93, 93,139,204,204,204,204, 94, 68, 43, 36, 22,139,249,123,247,238,157, 36, 18,137, 0, + 0, 90,173, 22, 1, 1, 1,132,169,125, 54,225, 31, 70,182,158, 81,185, 90, 34, 90, 35,229,114, 57, 24,134,129,165,165, 37,120, +188,167,219,125,123,123,123, 12, 31, 62, 28,131, 6, 13,194,155,111,190,137,148,148, 20,233,155,111,190, 57,188, 57, 99,147, 23, + 69,192,221,219,185,174, 49, 97, 93,175,157,190, 27,253,195,103,191, 56, 22, 22, 22, 46,106,112,218,204,217,179,103, 19,101,101, +101,152, 48, 97,194, 85,141, 70,243, 42, 0,121,115, 54, 25, 22,121,225,111, 78, 1,203, 17,210, 77, 55,191, 35,180,106, 21, 71, +146,164,170,222,117,216,150, 92, 34, 8, 98,130,155,155, 27, 14, 30, 60, 8,173,246,217,233,194,172,172,172,144,156,156,252, 68, + 85,227,241, 16, 18, 18,194, 35, 8, 98, 2,128, 5, 77,219, 36,219, 95,187,253,216,169,126, 63, 98,184,191, 48,164, 23, 89, 84, + 80, 84,195, 1, 32,150, 47, 95,174, 39,110, 0,176,122,245,106, 99,210, 9, 82, 32, 64,201,149, 43, 79, 42, 98, 62, 9, 82, 72, +128, 16, 0, 36,191,214,139, 10, 14,224, 24,128,165, 1, 86, 7, 72, 92,221,141,201,134,224,118, 30,222,177,235, 54,110,183,209, +232, 56, 28, 60,113, 17, 89, 89,143,192, 35, 73,120,117,246,198, 75,131, 7, 10,122,245, 9,117,255,114,213,162, 83, 5, 57, 15, + 70, 2,184,213,234,140,102, 57, 73,103, 15, 7,124,255,195, 29, 56,218, 90, 96,194,152, 87, 32,149,136,241,197, 55, 63,226,243, +165,115,224,237,229,137,157,155,215, 54,123,185,181,181,245, 26, 95,239,206,158,219,247,158,134,175,143, 15,111,251,190,211,240, +245,171,219,250,251,242,182,239, 59, 13, 63,127, 63,222,246,125,167, 17,232,223,173, 67,156,236,230,154,242,242,242, 57,205,231, +103,163, 50,122,169,182,140, 4,213,172,190, 33,120,252,222,123, 0,160, 39, 90,173,129, 64, 32,104, 95, 80, 80,224,100,232, 60, + 67,170, 65,157,146, 21, 71,211, 52,138,139,139,137,202,202, 74,206,198,198,102,204,185,157,203,142,189, 60, 32,168, 28, 0,238, +221,187,103, 23, 21,181,110,204,161, 56, 57, 84, 55,182, 18, 63,157,188,194, 78,121, 53, 44,238, 68,244,140, 94,168, 91, 18,162, + 49, 52, 26, 77, 86,143, 30, 61,184,186,239,237,196, 98,177,176,209,243,230,214,165, 75,151,103, 84,107, 35, 92,138, 95,255,245, +215, 95,115,252,252,252,224,227,227,115,189,111,223,190, 86,230,230,230, 56,119,238, 28,124,125,125,253,173,172,172,110,198,196, +196, 8,150, 44, 89, 18,180,123,247,110, 0,152,107, 68,118, 14, 11, 15, 15, 63, 24, 27, 27, 43, 17, 10,133, 80,169, 84, 72, 78, + 78,134,181,181, 53, 68, 34, 17, 94,123,237, 53, 94,255,254,253,237, 7, 15, 30,124, 36, 61, 61,125, 18, 90, 49, 2, 74,173, 86, +115,203,150, 45,131,153,153, 25,204,204,204, 96,110,110, 14,115,115,115, 88, 72, 64,236,152,239, 33,157,183,171, 82,186, 96,229, +142,232,125,219, 87, 93,118,119,103, 63,205,205,205,173,108,237,179,160,186,122, 21, 22,247,238, 1, 13,222, 93, 99, 97,109,110, +135,200,200, 72, 67,138, 20,132, 66, 33,250,245,235,103,208,158,157,157,221, 81, 62,159,255, 84,207,148,166,105, 73,100,100, 36, +147,158,158,110, 78,146,164, 57,203,178,136,140,140,100,104,154,150, 56, 57, 57, 93,103, 89,182,168,180,180,116,156, 17,201,213, + 0,248,136, 36,201,175,197, 98, 49,191, 67,135, 14,217, 43, 86,172,248,171, 78,205, 4,199,113,100,135, 14, 29,130,165, 82,169, +167, 70,163,161, 81,235, 58, 52,169, 89, 38, 52, 9,142,227,122,213,138,194,122,104, 1,136,234,190,151,213,182,118,112,104,244, + 59, 0,148,214,117, 20,157,155,217, 47, 3,144, 2,160, 27, 0,167,186, 99,183, 9,130, 40,111, 67, 50,155, 87,180, 98, 99, 99, +245, 93,216,136,136, 8,125,195, 98,105,105,137,219,183,111,131, 32, 8, 88, 90, 90,194,202,202, 10,214,214,214,144,203,229, 72, + 73, 73, 65, 90, 90, 26, 30, 63,126, 12,130, 32,224,229,229,133,250, 23,168, 1,244, 21,220,207, 27, 98, 33,177, 16,131, 32,128, +158, 67, 2, 17, 56, 40, 0,125,110,101,206,143,187, 64,236,146,201,100, 25, 0,248, 1, 1, 1, 51, 67, 66, 66,176,113,227, 70, +104, 52,154,141,205,144, 44,189,205, 63, 82,232,222, 0,224,234,234,186,120,255,185,135,102, 83, 71,116, 86,202,100,178,175,218, +144, 57, 79, 85,196,165,165,165, 70,175,197,199,178, 44, 42, 42, 42, 90,180,217, 88, 33,216,244,245, 86, 27, 69, 85, 17, 62,251, + 98, 63,116, 58, 29, 22, 45, 90, 4,150,101,245,159,202,202, 74,163,210,201, 49,204,179,218, 1, 89,235, 61, 37,248,128,199,196, + 90, 94,145,115,112, 43, 8, 14, 32, 24, 0,207,222, 87,227, 70, 72,194, 19, 74, 15,173,250, 98,139, 77,124, 90, 30, 78, 92,140, + 7, 37,207,135,236,222,177, 90,201,177,223, 36, 28,214,240,208, 55,176, 51, 62, 92,254,165,237, 39, 31, 78, 59,164, 85, 41,124, +240,180, 27,241,130,225,151,134,193,103,107,214, 96,215,150,141,248,114,227, 22,200,171, 42, 33, 16, 56,212, 85,244, 12, 24,134, +105,249,222, 57,110, 68,228,252,183,136, 47,190, 61,138, 96, 63, 87, 28, 57,119, 11, 3,122,120,226,216,111,113, 24,212,171, 35, + 78, 92,136,199,144,190,157,113,230, 74, 18, 62,156, 61,137,152,244,235,238, 17,173, 41,163,205,155,183,218, 40,228, 69,136, 93, +187, 23,197,219,182, 33,123,206, 28, 4,215,157,115,139, 32, 32,108,223, 30, 16, 26, 46,163,198, 72, 77, 77,133, 70,163,105,170, +183, 15, 95, 95, 95,131,229,174, 82,169,238,208, 52,205, 21, 21, 21, 17, 69, 69, 69, 48, 55, 55, 39,146,147,147, 24,127,255,128, +177, 92,218, 47,223, 1, 64, 84,212,186,177,135,239,200,161,188,190, 5,170,191,190,129,176, 99, 2,185,107,245,108,106,214,202, +157,119, 26,188,163, 79,165,179,176,176,112,100, 97, 97, 33, 0,160, 83,167, 78,105,233,233,233,221,234, 93,205,117, 46, 68, 33, + 77,211,222,245,238, 68,154,166,161,209,104, 48,108,216, 48, 94, 75,247,110,107,107, 27,226,235,235,139,248,248,120,108,217,178, +197, 46, 60, 60, 28, 15, 30, 60, 0, 65, 16, 88,183,110, 29,225,231,231, 39, 40, 45, 45,197,203, 47,191,140,163, 71,143,246,147, +203,229,134,242,211,210,220,220,124,247,169, 83,167, 36, 36, 73, 66,161, 80,128,101, 89,244,239,223, 31, 36, 73, 34, 41, 41, 9, +203,151, 47,199,209,163, 71,113,252,248,113,105,175, 94,189,118, 43,149, 74, 95, 60,237,214,111,174,140, 56,181, 90,205,137,197, + 98,136,197, 98, 72, 36, 18, 72, 36, 18,136, 68, 34, 84,171,129, 89,155,178, 53, 60,137, 3,235,223, 99, 64,231,183,230,173, 35, +191, 90,241,246, 37, 0, 39,140,125,230,129,218,152,172,175,127,252,113,203,148,170, 42, 18, 0,190, 39, 8,150,226,184, 47,141, +121,223, 1,160, 90, 93, 5, 79,175,246, 56,114,232, 56, 94,159, 56,166, 73,146, 37, 16, 8, 33, 20, 8, 96,101,103,110,208,166, + 80, 40,116, 78, 75, 75,179, 23, 8, 4,224, 56, 14, 12,195,128,162,168,162, 79, 62,249,196,113,212,168, 81,150,103,207,158, 37, + 71,141, 26,197,218,218,218,214,220,186,117,171,152,166,105,251,129, 3, 7,182,230,153,223, 30, 24, 24,216,243,216,177, 99,111, + 71, 70, 70,198, 45, 94,188,248,179,134, 7,215,175, 95,191,230,204,153, 51,158, 99,199,142,221,119,239,222,189,237,173,169, 67, +158,183,158, 55,217,252,251,217,108,142,139,212,193,153, 32,136,216, 6,117,118, 68,253,126,100,100,228,178,168,168,168,100,130, + 32, 98, 27,254, 94,127, 94, 93,103, 49,182,169,253,186,107,237,150, 46, 93, 26, 16, 29, 29,189, 46, 52, 52,244,224,245,235,215, + 31, 1,104, 45,209,106, 57, 70,171,254,134, 26,222,100,163, 70, 13,114,185, 28,114,185, 28,185,185,185,216,177, 99, 71,221, 11, + 45, 0,159,207, 7,159,207,215,199, 51, 52,135,139,177,127,126, 3,224,155,158, 61,123, 10, 18,255,138, 57,251,241,174,121, 67, +123, 15,235,201,187,115, 49,113, 60,106,215, 35, 28, 57,125,250,116, 7, 0,216,187,119,111, 41,128,179,255, 71,172, 57, 38, 35, + 35,227, 67, 87, 87, 87,125,140, 74, 67,247, 33, 77,211,144, 72, 36,168,143,101, 81,171,213,216,177, 99, 7,205,113, 92, 76, 11, + 54,145,158,124, 9, 25,201,151,107,175, 99, 89,176,204,147,235, 87,173, 90, 5,142,227,244,141,253,123,117,202,137, 65,146,215, + 84,158,115,141,182,141,126,231, 24,198,128,123, 66, 56,111,252,180, 57,174, 44,193,199,201, 75,119, 33, 16, 8,192, 54, 80, 51, + 5,188,218,222,114,242,131, 2,184, 57,251,227,213, 73,179, 93,142,237,219, 58,143,166,212, 95,180, 54,175,125, 2, 67, 49,255, +195, 15,241,221,174, 93, 88,190,114,141,158, 1,208, 12, 3,218, 96, 58, 73,114, 88,255, 0,208,213, 5,224,241,120, 24, 18,220, + 25, 60, 30, 15,195, 67,187,130,199,227,225,229,254, 62,224,243,249, 24, 49,192, 15, 93,186,116, 1,159,207, 39, 13,148, 59,210, +147, 47, 34, 35,249,247, 6,164,151, 3, 7,128,146,201,158, 57, 95, 39,147,129,243,176,111,237,179,133,153, 51,103, 86,230,230, +230, 82,141,143,185,187,187, 11,175, 94,189,106,211,140,219, 78, 15,169, 84,218,139,207,231,223, 41, 47, 47,103,205,204,204, 72, +150,101, 88,127,255, 0,222,185,157,203,142,213,159,179,116,233,178, 99,111,244,178, 26,187, 63, 38,150, 19,118, 24, 64, 16, 2, + 49,253,238,202,157, 66,129, 80,218, 11, 80, 25,211,121, 32, 53, 26, 13,238,223,191, 15, 67,233,225, 56,174, 69,215, 79, 69, 69, +197,116, 95, 95,223,171,223,124,243,141, 29, 65, 16,248,227,143, 63,192,227,241,244,159,204,204, 76,144, 36,137,143, 63,254,152, +146,203,229,239, 24, 74, 27,159,207,255,240,200,145, 35,214, 34,145, 8, 10,133, 66,255,222,240,120, 60,164,165,165,225,171,175, +190,194,244,233,211,145,147,147, 3, 55, 55, 55, 44, 90,180,200, 34, 58, 58,250, 67,138,162,214, 24, 81, 68, 9, 90,173,182,183, +153,153, 25, 36, 18, 9,234, 9, 23, 0,252,150, 44, 72, 82,169, 84,221,237,237,149, 46,142, 87, 98, 79,246, 11,127, 53,200,222, +209, 53, 84, 38,147,181,106,233,172,135,192,174, 44,134,249,100,228,177, 99, 78,215,142, 29, 99,111,156, 58,149, 39, 86, 40,118, + 26,253, 12,233, 72,100,103,230,161, 87,175, 94,184,115,231, 14,122,245,234,213,144, 52, 65, 36, 18, 65, 40, 20, 66, 40, 20,194, +193,214,168, 16, 10,142, 36, 73, 92,187,118, 13, 12,195, 64,171,213, 66,171,213,194,207,207,175,252,242,229,203, 22, 0,144,153, +153,201, 77,157, 58,181,242,230,205,155,232,209,163,229,245,212,157,157,157,175,242,120,188, 14, 13,127, 43, 43, 43,179, 29, 55, +110, 28, 42, 42, 42, 94, 25, 55,110,220,128,186,247, 55,255,151, 95,126,153, 10, 0, 34,145, 8, 36, 73, 50, 48,225, 95, 15, 67, + 92,164, 33, 81,106, 76,184,162,162,162, 34, 26,255,214,144, 84, 53,245,189,225,181,209,209,209,235, 26,216, 86,181, 33,249,134, + 99,180, 98, 99, 99,185, 38, 24,164,209, 48, 68,180,234, 17, 31, 31,175,115,115,115,251, 46,227,238,227,161,157, 3,189, 32, 53, + 23,191, 4,224, 27,177, 88,188,112,218,180,105,184,113,227, 6,146,146,146,126,192,115,142,194, 9, 8, 8,248, 85, 44, 22,123, + 54,227, 38,201, 78, 74, 74,122,185,153,134, 97,229,169, 83,167,208, 82, 48,252,165, 75,151, 26, 54, 74, 13,131,225,155,126, 48, + 88, 14, 58, 74,135, 26,165,234, 73, 35, 94, 71,180,106,106,106, 48,113,226,196,167, 20,173,226,226, 98,131,247, 71, 16, 4,190, + 58,113, 2,231, 99, 98,240, 74, 80, 16,142,222,186,133,232,105,147,225,227,217, 14, 28, 67,128, 35,128,156, 3, 91, 81, 38,175, +198,207, 23,175,161, 92,161,196,148,129, 3,225,109,229,208,178, 93,129,112,120,112, 72,168,240,194,245, 20, 8, 4,124,144, 96, +193,233,148,112,243, 29, 12, 30, 73,194,218,185, 35,132, 2, 1, 4, 2, 62, 50,115, 75,225, 27,208, 71, 20, 43,146, 12,111, 11, +209,114,247,236, 8,134, 97, 48,125,250,116, 28, 60,120, 16,246, 46,158,176,118, 15,192,231, 27,119,225,149, 97, 3, 13,222,127, +125, 15,158,207,231,131,199,227, 61,179,173,255,110,140, 58,201,177, 28,168,198,101,196,114, 0,199,161,253,218,181,104,191,118, + 45,110,213,253,167, 95, 77, 13, 84, 42, 21,208,215,191, 85, 36, 75,171,213, 34, 55, 55,151, 42, 44, 44,116,110,226,120,145, 86, +171, 53, 72,108,246,236,217,147, 48, 99,198,140,222,118,118,118,113, 9,247,238,233, 2,131,130, 4,103,119, 44, 59, 94,239, 54, + 4,128,160,160,160,242,101,203,150, 29,159, 58, 33, 98,204,246,200, 55,153,247,215,236,227,139,165,210,222, 17,139,247, 36, 28, +152, 48,193,176,191, 71,163,201, 10, 12, 12,228,140,185, 47,165, 82, 89,216,194,225,209, 0, 86,247,236,217,211, 42, 60, 60, 28, + 87,175, 94,197,235,175,191,174,161, 40, 42, 3, 0, 70,141, 26,213,245,231,159,127, 22,165,109, 11, 20,172, 0, 0, 32, 0, 73, + 68, 65, 84,164,164,192,209,209, 81,144,157,157,189, 27, 6, 2,228, 69, 34,209,224, 62,125,250,144, 26,141,230, 25,146, 21, 29, + 29,141, 73,147, 38,161,107,215,174, 96, 89, 22,213,213,213, 8, 15, 15, 23,108,217,178,101,176,145, 68,107,190,143,143,207, 87, +168, 29,117,216,176, 46, 76, 69,173, 91, 11,101,101,101,133,119,111, 94, 76, 30, 56,108, 92,239, 14, 93, 2, 92,147, 18,238,180, +104,208,201,201,105, 41, 73,146,111,176, 44,203,147,203,229,185,119,181,218, 46,126,158,158,206,253,199,140, 65,149, 64,192,251, +250,226, 69,178, 72,161,176, 0, 96,148, 11, 82,173,171,129,167, 87,109,168,223,235, 19,199,224,206,157, 59, 24,255,230, 88, 8, +133, 66,240,249,130,218,119, 83, 88,171,104,217, 56, 88, 25,245,108,234,116, 58,125, 29, 94, 31,231, 69, 81, 20,234, 67,179,204, +204,204,244,199, 52, 26, 13, 8,130,104,233,217,240, 62,188,102,133,147,212,202, 26,140, 78, 7,255, 49,227,245,207,244,205,239, +183, 75,193,178,210,202,236, 44,204,141, 57, 37,128, 9, 38, 52,163,106,181,196, 69, 26, 18,165,231, 5, 65, 16,177,145,145,145, +203, 0,112,145,145,145,203,234,247,163,162,162, 84, 0,242,219, 72,182,158, 81,185,248, 47,130,100,213,187, 23, 90, 66,120,120, +248, 92, 75, 75,203, 45,245,251,185, 55,242,145,123, 35, 31,190,221,252,251,247, 12,234, 93, 53,105,210, 36,216,219,219, 99,241, +226,197, 28,128, 31, 90,251,255,153,233,201, 22, 0, 56, 87, 87,215,197,117, 21,114,208,173, 91,183, 28,111,223,190,141, 62,125, +250, 60,145,238, 41, 10, 3, 6, 12,104,201,148,162, 46,168,125,193,139, 83,201, 88, 80, 20, 5,165, 82, 5,173,150, 2,173, 99, + 65,211, 52,122,249, 91, 98,223,174,200,218,223,232,122,245,172, 86, 53,107,239, 98, 9, 75, 11,129,142, 36, 9, 85, 92, 66, 97, +147, 53,166, 86,171, 69, 66,118, 54,238, 61,126, 12, 0,120, 53,170,229,192,215,125, 23,175,194,207,207,207, 80,106, 59,183,119, +115, 65,193,249,132,218,202, 91,149,139,219,127, 30,134,165,165, 5, 0,192, 63,108, 10,132,194, 90,162, 85,163,162,224,208,205, + 29, 4,199, 53, 59, 45,128,153,173,203,175,124,161,196,147, 99, 88,112, 28, 11,142,101,192,113, 44,120, 2,161,217,220,247,222, + 6,203, 50, 8, 14, 14, 6,193,227,129,209,105, 48, 97,244,112, 84, 84, 41, 96,111, 99, 92, 35, 33, 20, 10, 17, 22, 22, 38,109, +238,248,131, 7, 15, 84, 13,137, 89,203,101,164, 67, 77,141, 10, 26,141, 6,148,150, 6,165,163,193,116, 18,226,179, 79, 38,131, +166,104, 40,223, 12, 5,165,163,193,126, 56, 22,148, 86,135, 28, 51,146, 12,244,117,208,145, 32, 84,119, 83, 75,172, 12, 17,173, +122,114,208, 28,154,138, 9,108,134,108,221,155, 49, 99, 70,175,192,160,160, 59,111, 12, 11,218,144,152,148, 92,144,152,148,252, +204,121,158, 93,131,178,222,143, 62,184, 72, 32,148,246,138, 88,220,242,168,195,134,104,232, 70,124, 78, 44, 83, 40, 20,129, 22, + 22, 22, 72, 79, 79, 7,143,199, 3, 65, 16, 15, 0, 4, 2,128,171,171,235, 67, 62,159,239,197,227,241,176,109,219, 54,130,207, +231,119, 15, 13, 13, 93,166, 86,171, 15,183,208,161,243,181,180,180,124, 74,205, 18, 10,133,136,140,140,196,212,169, 83,245, 36, + 75, 40, 20, 98,207,158, 61,232,221,187, 55,180, 90,173,175,145,233,189, 13, 96,160, 17,138, 31, 81, 71,206, 13,146, 81,154,166, +103,148,189,241, 70, 23, 92,185,130,254, 94, 94,126,189,122,245, 2, 69, 61, 17, 52,189,188,188,220, 21, 10, 69,161, 74,165,250, + 9,181, 83, 27,220,109,145, 20,169, 89,100,103,214,134,159,222,185,115, 7,193,193,193,122, 5,171,161,154, 37, 20, 10, 33, 21, + 89,180,138,104,177,108,109,189,164, 80, 40,200, 43, 87,174, 56,248,248,248, 16, 0,224,227,227, 67,220,189,123,215,206,204,204, +172,180,115,231,206, 6, 59,192, 82, 43,107,236,153, 49, 17, 0,240,233,176, 17,250,142,209,185,213,203, 32, 16, 8, 48,116,241, +178,103,158,123,150,101,121, 48,193, 68,178,140,224, 34, 47,138,100, 53, 86,180,162,162,162,146,163,162,162,158, 81,199, 90, 9, +195,138, 86, 67,233,174,181,168,127, 89,155,195,198,141, 27,209,189,123,247, 22, 27,162, 45, 91,182, 96,255,254,253, 27, 1,100, +182, 90,114, 28,218,211, 31,155,142, 37,123,117,245, 39, 0, 96,205,135,163,201,154,154, 26, 92,187,118, 13,214,214,214,120,240, +192,232,105,191, 44,173,173,173, 87,147, 36, 57,129,215,120, 4, 64,211, 4,147, 97, 89, 54,166,170,170,170,217,233, 29, 56, 14, +160,116, 52,106,148,106,104,181, 90,124,248,241, 86,131,137,136, 2, 8, 74,171,224,135, 13, 10,149, 54,167,232, 4,119, 31,140, + 15,166, 89, 60,211,120,243, 72,128, 36,129, 30,193,181,138,203,221, 91,201, 96, 89,128, 97, 1, 7, 39, 91,252,112, 96, 67,139, + 36,159,102,216,186,222, 49,131,106, 13, 3,223,144, 8,228,165, 94,209, 43, 72, 34, 97,173,203, 88, 40, 16,128,229,136,218, 89, + 31,154, 35, 66, 34,169,103,133, 44,211,123, 87,108, 34,102, 69,116,199, 47, 23, 18, 48,126, 88, 32, 46,223, 76, 65,120, 95, 63, + 36,103, 60,134,191,119, 7,108,219, 29, 3,142,131,226,219, 77,159, 23, 62,105,208,232,108, 99, 20,173, 27, 55,110,168, 26,171, + 88, 13,183,156,225,246, 16, 28,247, 68,209, 82,169, 53, 88,188,212,168,233,124,106,203,104, 96,136,212,152,147, 91, 82,172,140, + 33, 98,141,149, 45, 24,152,158,165, 19,128,222,192,146,255,203,138,147, 97, 24,156, 62,125, 90, 95, 30, 77,149, 99,195,178, 51, +130,228, 32, 59, 59, 27,201,201,201, 8, 9, 9, 65, 85, 85, 21, 4, 36,137, 69,137,137,240,155, 54, 13, 90,161, 16, 44,203, 66, + 36, 18, 97,246,236,217, 70,231,103, 43,107,231,186, 96,110,198,144,241, 13,161,161,161, 93,210,107,106,144,156,150,134, 97,171, + 86, 1, 0,206,156, 57,243,212, 51,177,112,225, 66, 81, 74, 74,202,204,184,184,184,153, 5, 5, 5, 27, 1, 44,106,182,158,229, + 52,250, 24,173, 55, 38,191,142, 46, 62,157,176,255,199, 3,250,227, 11, 63,154, 15,129, 64, 8,129, 80, 0, 27,107, 27,163,238, + 70,167,211,233, 73,171, 82,169, 36,207,156, 57,211,126,248,240,225,194,249,243,231, 19, 0,176,127,255,126,242,155,111,190, 49, + 63,127,254,188,176, 93,187,118, 50,131,228,146,162,158, 41, 99,130, 32, 32, 16, 8, 32, 20, 9, 1,150, 5, 65, 16,230,235,215, +175, 95,147,156,156,220,199,199,199, 7, 26,141,102, 26,106, 7,106,152,230,209, 50,145,173, 22,185, 72, 83,177, 86,117,170, 84, +115, 40,105, 24,183,213, 28, 81,107, 24,179,133,182, 13,202, 48, 46, 70,171, 41,240,120, 60,131,106, 21, 73,146, 6, 93,135, 11, + 23, 46,132,165,165,101,115, 13, 16,151,152,152,152, 34,147,201,118, 1,216,218,166,194,185, 24,159,188,122,193, 88, 5,234,124, +171, 54, 54, 54,165, 67,134, 12,169, 6, 64, 29, 62,252,116, 7, 89,163,209, 52,219,128, 91, 91, 91,175,254,254,251,239,231,141, + 25, 51,134,108, 60,197, 64, 67,247, 94,253, 71,167,211,225,240,225,195,243,150, 44, 89,130,170,170,170, 5, 45, 53,226,202, 26, + 21, 84,117,129,208, 15,147,126, 49,182, 82,111,246,144,133,141, 43,218,119, 10,108,182, 49, 33,133,181, 49, 68,206, 30, 79, 26, + 48, 75, 75, 9,152, 22,108, 18, 4,153,249, 56,167,160,157,187,139, 29, 30,230,150,192,185, 67,119, 84,228, 63,201, 7, 62,159, + 7, 65,157,235,208,198,202, 28, 37,197,197, 32, 73, 94,139,196,248,243,159,227,113, 51,233, 49,142, 92,184, 11, 74, 93,131, 77, +123,207,129,210, 84,131, 82,215,128, 82,215,110,215, 45,121, 23, 4,129, 66,157,166,166,107,107,202,157,207,231,163,111,223,190, +205, 18,157,252,252,124, 35, 21, 45, 78,175,104,169,212,173, 44, 35,227,122, 78, 45, 42, 86,245,199,219, 74, 12,234,167,124,144, + 74,165,189,247,236,105,126, 26,135,166,224,226,226,114,214,194,194,162,163,177,231,183, 98,242,210,117, 54, 54, 54,171,125,124, +124,124, 55,109,218, 36,224,241,120, 24, 58,116,104, 87, 23, 23,151,108, 0,240,247,247,119,171,175, 99,222,127,255,125,238,198, +141, 27, 73,181,125,140,230, 33, 18,137,210,172,173,173,123,135,135,135,163,170,170, 10,185,185,185, 48, 55, 55,135,223,134, 13, + 72,124,255,125, 4,237,216, 1,114,200, 16, 16, 4, 1,145, 72,132,196,196, 68, 72,165,210, 52,181,186,217, 41,223,250, 2,248, + 18, 64,127, 60,113, 23,114, 0,174,161,118,218,133,155, 77,212,119, 36, 0, 48, 44,107,168,176, 38, 47, 94,188, 24,149, 2, 1, + 48,106, 20,132,153,153,160, 40, 10, 33, 33, 33,122,149, 61, 36, 36, 4,124, 62, 31,129,129,129,112,115,115,195,182,109,219, 38, +183, 68,180,212,213, 20,178, 51,243, 16, 26, 26,170, 87,174, 70,141, 26,165, 87,180, 4, 2,129, 94,217, 34, 24,195,196,149, 32, + 8,174, 97, 39,153, 97, 24,130,207,231,243, 23, 44, 88, 64,188,254,250,235,156, 86,171,101, 69, 34, 17,121,228,200, 17,226,242, +229,203,252,154,154, 26,131, 29,241,128,177, 19,240,233,240,145,181,239,126, 71, 71, 8,132, 2,136,132, 66, 44, 78,203,211,151, +139,213,158,131,162,232,232,232,241, 62, 62, 62,181,110,120,128,111,154, 71,203, 4, 3, 66, 79, 73, 35,146,164,109,176, 95, 2, +128,168,219, 47,105, 64,168, 74, 8,130,184,205,113, 92,159, 70,231,214, 31,215, 54,218,214, 31,191,215,134,228,215,175,117,248, + 12,249,106,169, 71,156,241,215, 95,127,121,247,234,213, 11, 57, 57, 57,207,140,132,171,111,184,204,205,205, 33,149, 74,113,253, +250,117, 0,200,104,206,216,229,203,151,191, 65,237,172,203,181, 41,114,117, 13, 13,127, 99,240,245,224, 17,125,240,115,212,129, + 42,153, 76, 22,136, 39,115,232, 16,110,110,110, 83, 5, 34,254, 68,175, 0,143, 48,176,236,151, 23, 79, 93, 91,213,210, 29,122, +117,245,175, 6,160,170, 31,117,216,198,209,135, 32, 73,114,194,152, 49, 99,200,148,148, 20, 76,156, 56, 17,251,247,239,111,246, +220,169, 83,167,226,224,193,131, 24, 51,102, 12,185,116,233,210,102,167,119,120, 90, 45,209,190,176,135, 50,253,193, 61,236, 59, +248,125,179, 49, 72, 78, 78,181,241, 88,197,197,165,250,223,250,244,106,217, 51,194,210,218,243,241,113,183, 66,251, 13, 26, 42, +204, 45,170, 4, 75,107,160, 86, 60,185, 94, 89, 89, 4,142, 86, 67,104,102, 7, 23, 7,107,220,249,235, 55, 45,165, 85,159,111, +201,230,188, 49,254,120,127,180, 47,192,177, 24,187,232, 7,196,110,157,171,239, 65, 15,120,125, 62, 46, 30,254,218,232, 24,191, +198, 16, 8, 4, 72, 76, 76, 84, 53,167,102,241,120, 60, 99,230,228,170, 83, 29,117, 80, 42, 85, 80,170,212, 47,178,238,112,116, +118,118,254,214,214,214, 86,210, 12,145,114,116,116,116,252,214,222,222, 94, 98,172,235,176, 57,146, 85, 55,175, 86,220,140, 25, + 51, 90, 69,182,196, 98,113,199,140,140, 12,253,100,165, 45,109,181, 90, 45,194,195,195,141,157,188,244, 20,128, 71,174,174,174, +215,252,252,252,172, 31, 62,124,136, 3, 7, 14, 8, 5, 2,129, 71,125,253,161, 80, 40,192,227,241, 80, 92, 92,172, 3,240, 54, + 12,184,206, 52, 26,205,149, 43, 87,174,244, 24, 61,122, 52, 47, 45, 45, 13, 60, 30,175, 54, 93,161,161, 8,218,177, 3, 73, 11, + 22, 32,236,241, 99,168, 41, 10, 18,137, 4,191,254,250, 43,165, 84, 42,175, 52,103, 79, 42,149,238,202,202,202,242,151, 72, 36, +160, 40, 10, 44,203,130, 36, 73,130,207,231, 15,176,177,177,217, 2,160, 79,163,194,114, 10,234, 19,222,141,161,105, 70,150,243, +176,196, 80, 6,148,149,149,225,212,169, 83, 8, 9, 9, 65, 88, 88, 24,242,243,243,145,153,153,137, 87, 94,121, 69,127,206,189, +123,247, 16, 31, 31,143,206,157, 59, 27, 86,244, 72, 29, 58,119,235, 8,161, 80, 88,171, 16, 9,132,117, 29, 31,129, 94,201, 18, + 10,132, 16,240, 5,144, 72, 37, 70, 43, 90, 4, 65,128, 36, 73, 16, 4, 1,169, 84, 90,223,201,102,219,183,111, 47, 43, 47, 47, +119, 5,192,147, 74,165, 96, 24,198,168, 78, 75,125, 27, 81, 79,178,132, 34,161, 94,217, 2,128,202,202, 74,245,152, 49, 99,126, +210,104, 52,111,161,109, 43,148,152,240, 47, 3, 65, 16,183,255, 47,174,109, 5, 70,213, 17,171,103,130,226, 91,122,192, 95,233, +215,175,223,142, 73,147, 38, 13,221,188,121, 51, 44, 44, 44, 32,147,201,244, 13,162, 72, 36,130,187,187, 59,202,203,203,177,115, +231, 78,228,229,229, 93, 2, 48,219,216, 20,201,100,178, 27, 15,238,102,148,133,143,239,103,239,223,175,155, 77,110, 70, 94,136, + 76, 38,187, 94, 71,178,126,152,180,240,149,183,194,199, 5, 67, 40, 18, 32,247, 65, 33, 46,158,186,246,255,165, 48,121, 60, 30, +143, 32, 8, 76,156, 56,209,168,243,223,124,243, 77, 92,185,114, 5, 45,185, 25,217,122, 69, 75,169, 70,141,234,197,117,214, 62, +152, 59, 21, 31,204,157,170, 39, 19,198,184, 94, 0,192,205,237, 80, 11, 68,139,218, 28,123,104,231,172,158,193,161,158,189,253, + 59,226,102,220, 93,252,188,227,137,200,176,251,155, 53,248, 98,247, 37,184, 59,219,130,210,212,224,236, 47,223, 21, 82, 26,229, +230, 54,138,114,181,228,150, 32,192,113,108,171,238,189,158, 60, 9, 4, 2, 4, 4, 4, 52,171,104,149,151,151,171, 12, 53, 12, +250, 50,210,234, 80, 93,163,130, 74,249,194,136, 86,208,128, 1, 3,206,199,196,196,216, 59, 57, 57,161,160,160,160, 49,209, 10, +234,223,191,255,249,152,152, 24,123,103,103,103,228,230,230, 26, 61,173, 72, 19, 36, 11, 37, 37, 37, 68, 69, 69, 5,107,107,107, +219, 42,178, 69,146, 36, 52, 26, 13, 82, 83, 83,141,253, 91,163, 71,136, 89, 91, 91,239, 57,120,240,160,117,105,105, 41,120, 60, + 30, 82, 83, 83,159, 26,117, 88,255,249,225,135, 31,132, 99,199,142,253,190,178,178,178,197, 97,109, 52, 77,111,156, 58,117,234, +204,252,252,124, 91, 39, 39, 39,200,100, 50,136, 68, 34,112, 28, 7, 34, 60, 28, 3, 31, 61, 2,197, 48,144, 74,165, 72, 79, 79, +199,174, 93,187,106,234,166,138,105, 82, 32, 35, 8,194, 91, 40, 20, 98,202,148, 41, 79, 29,216,187,119, 47, 94,237,205,235,237, +104,205,175,166, 33,209, 20, 73, 71,158,229,241,120, 68, 80,223, 33, 93,251, 14, 26, 21,112, 63,233,230,195,146,162, 60, 67,149, +146, 78,171,213,194,199,199, 7,183,111,223,198,133, 11, 23, 48,100,200, 16,132,133,133, 33, 33, 33, 1,191,253,246, 27,226,227, +227, 65, 16, 4,236,237,237,235,195, 47, 90,140,193,208, 42,105, 20, 23,148, 61,163, 94, 53,222, 23, 10,133,208,168, 40,163,202, + 40, 45, 45, 13,183,111,223,214, 79, 45,195,227,241,232,105,211,166,129,227, 56, 46, 43, 43, 11,150,150,150,220,140, 25, 51, 24, + 62,159, 79,231,231, 27, 23, 31, 92, 79,170,234, 73, 22, 95, 40,120,138,160,177, 44,171, 72, 72, 72,152, 5, 32,161, 78,201, 2, + 76,243,104,153,240,191,141,211,120,118, 97,105,131,138,214, 35, 0,195, 14, 28, 56, 48,249,248,241,227, 27,183,108,217,226, 24, + 17, 17,129,138,138, 10,120,122,122,194,213,213, 21,177,177,177, 56,115,230, 76, 41,195, 48,139, 0, 52, 37,253, 12, 67, 11,115, +214,228, 63,148,197,104,170,171,223,239, 21,230,139, 75,135,255,136,114,113,113,153,205,227,241, 62,156,177,236,181,183, 6,143, +233,131,244,248, 44,220,248, 45, 17, 69, 57,165, 6,109, 54, 14,134,183,177,177,153,105,102,102, 38, 2, 64, 53,209, 43,110, 60, +234, 80,111,147, 97, 24, 70,171,213,226,208,161, 67, 70,145,173, 3, 7, 14, 64,173, 86,131,121,214,191,170,183,201,177, 28,193, + 23,136,225,230,238, 3,138,170, 1,203,182,121, 64,165,222,102,125, 15,244,161, 72, 4,167,210, 82,220,188,121,211, 56,202, 61, +106,148,161, 50, 82,107,213,138, 41, 95,175, 93, 28, 59, 39,242, 75,155, 33,253,122,224,211, 13,123, 65, 81,187, 65,242, 72, 72, +197, 66,244, 10,238, 15, 30, 52,248, 54,250,163, 74,165,188, 98, 10,158, 93,138,231, 41,155, 92, 75, 30, 22, 14, 96, 88, 22, 23, +174,222, 50,250,222,245,173, 61,195,128,207,231,227,193,131, 7,170,166, 70, 27,242,120,181,110,206,250,158,122, 75, 54, 57,150, + 37, 4, 66, 9,220, 61,253,160,213, 84,191,144, 50,114,114,114,250,232,216,177, 99,246,245, 83, 37, 36, 36, 36,128, 32,136,212, + 39,138, 99,237,113,149, 74,133,164,164, 36, 36, 36, 36, 0,181, 35,220,140,126,143,234,149,172,146,146, 18, 66, 38,147,193,204, +204,140, 76, 72, 72,208, 4, 6, 6,198, 25,120,191,245, 54,213,106,245,227,230,226, 39,213,106,117, 59,137, 68, 34,104,212,136, +186,117,233,210, 37,189, 9, 23,226, 51,233,172,170,170,186,185,100,201,146, 94, 35, 70,140,192, 71, 31,125, 84,110,107,107,107, +249,237,183,223,242,121, 60, 30, 49,103,206, 28,166,184,184,184,250,187,239,190,179, 62,126,252, 56, 42, 43, 43,175, 27,113,239, + 10,181, 90, 61,171, 95,191,126,123,207,157, 59,103,230,237,237, 13,185, 92, 14,142,227,176,103,207, 30,204,153, 51, 7, 18,137, + 4,233,233,233,120,245,213, 87,149, 74,165,114, 22,158,141,157,172,183, 73, 16, 4,193,177, 44,139, 21, 43, 86,232, 39, 39,173, +159,172,212, 82, 74, 96,215,194, 78,230,243,191,171, 50,159,252,233,119,211, 0,128,161,105,230,126,210,205,135,123,182,126,122, + 89, 40, 20, 94, 53, 80, 70,203,231,207,159,255,237,168, 81,163,164, 22, 22, 22, 40, 47, 47,199,181,107,215,240,215, 95,127,225, +198,141, 27,208,106,181,176,183,183,135,173,173, 45,100, 50, 25,210,210,210, 84, 0,150,183,100, 83,100, 38,128, 87,215,250,145, +191,181, 10,150,160,193,104,195,134,234,150, 80, 32, 48,234, 61, 26, 52,104, 16,250,246,237, 91, 79,128,152,236,236,108,153, 70, +163, 33, 26,144,254,252,122, 66,238,225,225, 65,239,223,191,159,107,201,230,141, 93,219,112,238,179,229, 16, 9,133, 88,148,154, +171, 39, 93,123,135,244,132, 64, 36,132,239,232,215, 27, 94,187, 29,181,238, 66, 52, 34, 89, 45,181, 29,207,253,110,154,108,254, +109,109,254, 47, 67,134, 54, 44,193, 83,143,159,213,106,245,217,119,223,125, 55, 58, 40, 40,232,221, 77,155, 54, 17, 66,161, 16, +171, 86,173,226, 10, 10, 10,126,172,235,133, 84,180, 37, 85, 28,199,253,248,251,209,235,239, 77,143, 28, 67, 44,220, 60, 99, 64, +220,197,164,180,238,253,188,209,189,159, 55,226, 46,165, 96,235,178, 3,251, 25, 29,179,162,176,176, 48,199,128, 41,205,176,254, +221, 26, 7,195,219, 95,185,124,209,190,181,163, 14, 89,150,141, 57,112,224,192,188,113,227,198,145,183,110,221,122, 38, 38,171, +126,217, 29,150,101,113,254,252,121, 80, 20,133, 31,127,252,145,101, 89,182,249,121,180,192,157,248,122,115,244,244, 31,247,157, + 16,137,132, 4,254,186,122, 4, 85, 21, 45,143,234, 18, 10, 5,248, 97,207, 81, 74, 40, 20,220,111,234, 56, 69, 81,185, 23, 47, + 94,116,126,153, 97, 4, 36, 73, 54, 69,160,154, 68, 76, 76,140,142,101,217,108, 3,167, 93, 47,202,203, 25,253,249, 71,111, 31, + 24,245,198,187,206,253,250, 13, 16, 56, 56, 57,131, 32, 8, 20, 23, 21, 35, 61,233,150,238,236,145,239,139,106,148,198, 45,193, +243,246, 87,191,235, 99,178, 0, 32, 98,206, 22,125,124, 22, 0,140,158,177, 4,225, 33,254, 32,140,145,158,158,144, 44,150,166, +105,152,155,155,131,166,233, 38,167,120,176,182,182,150,170,213,106, 85,221, 68,140, 45, 74, 69, 28,240,194,203,136, 97, 24,223, +138,138, 10,212,212,212,224,175,191,254,226,214,174, 93, 91, 82, 82, 82,162, 15,218,212,233,116,190,229,229,229,168,174,174,198, +245,235,215,185,232,232,232,146,178,178,178,101,173,121,135,164, 82,105,111, 62,159, 31, 87, 81, 81,193,154,153,153,145, 58,157, + 78, 23, 24, 24, 40,150, 74,165, 70, 47,168, 46,147,201, 70, 52,119,204,203,203, 43, 35, 35, 35,163, 11,195, 48, 13,215, 64, 20, +170,213,106,239,126,253,250, 25, 83,127,204,223,189,123, 55,142, 30, 61, 26, 44,151,203,167,102,103,103,239, 5, 16,204,231,243, +113,247,238,221, 84,181, 90, 61,105,220,184,113,123, 42, 42, 42,110,162,118, 9, 30, 99,112, 46, 61, 61,125,138,175,175,239,238, +213,171, 87, 91,132,133,133,241,221,220,220,208,167, 79, 31,164,167,167,227,244,233,211,186,237,219,183,215, 40,149,202,183, 1, +156,111,185,216, 65,208, 52, 13,145, 72,164,255,136,197, 98, 8,133, 66, 40, 84, 28,222,217,144,169,162, 33, 85,109, 92, 53,235, + 52, 7, 16,133,185,153,165,197,133,185, 55, 9,130,184, 42,147,201,170,154,201, 51,145, 90,173,238,193,113, 28,143, 32,136,205, + 20, 69,205,152, 59,119,174,235,186,117,235,208,173, 91, 55,148,150,150,194,220,220, 28,222,222,222, 40, 41, 41,193,173, 91,183, + 24,165, 82,185, 3,192, 26,212,197,143, 52,135,202, 82, 57,218,187,120, 60,165,124,114, 28, 7,142, 1,116, 26, 6, 12,197, 65, + 75,232, 32, 16,232, 32, 20, 10,141, 81,158, 56,150,101, 81,225,234, 10, 54, 41, 9, 55,110,220, 0,199,113,205,170,106, 62, 62, + 62, 70, 84,236, 44, 68, 98,209, 83,238, 66,130, 32, 32, 20,137, 32, 16, 9,155, 26, 57, 99, 82,177, 76,248, 71,195, 88,223,120, + 37,128,217,247,238,221,219, 59,120,240,224, 88,142,227, 4,168,245, 71,254,241, 60,127, 94, 88, 88,120,231,250,233, 59, 75,157, +219,219, 70,143,156, 58, 0,221,122,120,130,161, 25, 92, 59,115, 23, 63,174, 59,126, 48, 63, 55,127, 6,140, 88,251,140,101,217, +203,253,123,119, 35,209, 96,174,110, 55, 55, 55,182, 45,163, 14,171,170,170, 86, 46, 90,180, 8, 31,125,244, 81, 91, 70, 29, 54, +137,196,180,146,217, 4,184,246,163, 71, 14,124, 25, 4,201,105,181,154, 22, 42, 62,232,103, 46, 21, 10, 5,247,111, 39,200, 2, +155, 58,175,164,164,228,229,183,222,122,235, 60,159,207,239,216,154, 60,103, 89, 54,187,168,168,104,168,225, 51,233,107, 26,149, +220,251,212,193,157, 11,206, 29,221,253, 50,203, 50,157, 9, 0, 60,190,240,161,142,162,126,213,168,228,155, 96,228,162,210,235, +103,135, 98,254,215,191, 97,219, 71,163, 49, 55,250, 48,190, 95,241, 14,150,110, 56,128, 47, 63,154,143,181, 91,126,194,167,243, +167, 96,252,228,183, 88,142, 32,255, 52,246, 62,120, 60,222,185,157, 59,119, 78,127,231,157,119,244,131, 22, 56,142,123,170, 98, +215,233,116, 42,150,101,177, 99,199, 14, 22,192,185,150,236, 61, 93, 70, 4,215, 82,188,148,177,101, 36,151,203,223, 14, 13, 13, +221, 3, 64,204,113,220,131,138,138,138,255, 0, 79,150,134,170,174,174,126,187, 95,191,126,123, 56,142, 19, 19, 4,241,204,113, + 99, 80, 55,213, 67,111, 91, 91,219,184, 58, 37, 75,220,150,128,248,150,178,186, 5,183,162, 49, 46, 68, 22,192,220, 6, 51,190, +175, 11, 14, 14,110,184,168,116,106, 69, 69, 69,239, 54,164,235,188, 74,165,242, 95,177, 98,197, 2,137, 68, 18,174, 84, 42,187, + 2,128,185,185,121,186, 70,163,185,172, 82,169, 54,193,240,220, 84, 90,150,101,211,105,154, 14,112,116,116,172, 29, 81, 91, 71, +182, 0,224,100, 28, 19, 7, 48,125,106, 69,241,159,141, 78,216,153, 51,103, 58,216,218,218,190, 68, 16,196,120,142,227,124, 20, + 10,133,102,197,138, 21,215, 99, 98, 98,170, 58,118,236, 56,114,212,168, 81,132,157,157, 29,110,223,190,205,149,149,149, 29, 1, +176, 12, 70,140,180,102, 89, 54,123,253,250,245,104,237,251,222,210,113,138,162, 10,207,156, 57,227, 48,162,184,152,207,178, 44, + 70,143, 30,253, 20,129,107,140,251,247,239, 67,163,209,180, 56,153,163,166,170, 2, 67, 22, 44, 1,234, 70,127,214,163, 86,201, +226,192,105, 77,188,202,132,127, 23,254,219, 11,122, 26, 37, 45,186,186,186, 78,148,152,139, 63,240,236,234, 26, 88,144, 89,156, +162,168, 82,238,151,201,100, 59,155,169,200,141,178,217,202, 9, 75, 77,242,239,127,201,230,147,121,180, 24,112, 28, 3,142,229, +192,113, 44, 88,150,169, 93,240,154, 99,193, 49, 12, 65, 16,248, 83,171,106,113,102,240,198,233,180,117,112,112, 88,195,113,220, + 8, 30,143, 71, 54, 20,195, 26,126,175, 83,178,206,149,148,148,124,218,132,242,250, 63,151,159, 49, 49, 49, 77,146,127, 99, 71, + 29, 78,152, 48,129,105,229,187,121,217,220,220,220,181,169, 99, 53, 53, 53, 57, 50,153,236,165,191, 73,126, 54, 28, 49,216, 26, +155,173, 30,117,104,200,166,167,167,167,152,162,168,158, 0,188, 9,130,176, 1, 80, 78, 81,212,175,165,165,165, 69, 0,122, 3, + 88, 81,119,205,103, 0,226,254,143,223,119,169,131,131,195,110,146, 36,219, 27,115, 49, 77,211,218,242,242,242,233,141, 58, 4, +122,155,246,246,246,113,124, 62,191,189, 17,118,242,202,202,202,122,155,234, 79,147,205,127, 16, 26, 7,193, 55, 59, 83,252,127, +131,104,153,108,154,108,154,108,154,108,154,108,154,108,154,108,154,108,254,211,137, 86,147,251,166, 97,181, 38,152, 96,130, 9, + 38,152, 96,130, 9,207,135,211,141,200,214,233,250, 47, 68, 11,172,180, 53,146, 96, 91,152,237, 5,147, 77,147, 77,147, 77,147, + 77,147, 77,147, 77,147,205,127,157, 77, 19, 94, 32, 76,178,170,201,166,201,166,201,166,201,166,201,166,201,166,201,230, 63, 29, +205,186, 14, 73, 83,222,152, 96,130, 9, 38,152, 96,130, 9, 38,252,119, 96, 52,209, 50,119,246,241,117,240, 12,220, 99,219,190, +123,130,109,251,238, 9, 14,158,129,123,204,157,125,124,255,165,249, 38, 5, 48,153,207,231,159,119,113,113,145,163,153,165,119, +254, 1,176, 2, 48, 30,181,243,251,140, 5, 96,246, 34,141,135, 1,252,137,192, 7,211,128,156,105, 64,206, 68,224,131,176,127, + 96,220,224,170,121,174,161, 87,207, 78, 62,187,106,158,107,104,147,199, 23,185,218,223,248,109,194,215,235, 62,112,179,123, 65, +127,105,233,228,228,180,203,217,217,249,177,147,147, 83,182,147,147,211,110, 0,214,166,234,206, 4, 19, 76, 48,225,191,134,250, + 24,173,250,143, 62, 70,139, 15, 0,177,177,177, 97, 0,126, 7, 48, 56, 34, 34,226, 74,227,171,109, 61, 2,222,233,220,169,243, + 71,159,175, 90, 70,184, 56, 57,152,209, 12, 75,101, 61,206,245, 91,249,121,244, 47, 5, 34,254,198,138,156,164,239,219,144, 40, +130,199,227, 77, 20,139,197, 17, 0,234, 9, 91,170, 70,163,137,101, 24,230, 16,140, 27,166, 13,103,103,231,171, 60, 30,175, 67, +107,254,152, 97,152,156,162,162,162, 1,109,204,204, 9, 30, 30, 30,187,195,194,194,204,130,131,131, 33, 18,137,176, 98,197,138, + 69, 50,153,108,147,177, 6,108,109,189, 44, 41,177,228, 67,190, 72, 52,156,211,105, 3, 56,112, 0, 41, 78, 98,105,205, 69,161, + 70,179,177,162, 34, 83, 97,164,169,101, 0,102,212,229,213,247, 0,214, 63,207, 83, 50,189, 7,116, 58,166,246,153, 16,242,193, +156,120,100,253,251,242,229,203,249, 17, 17, 17,248,254,251,239, 7,236,218,181,107,150, 66,161,184, 8,224, 36,128,135,207,251, + 84, 58, 3,179,251, 13, 24,240,245,244, 69,139,120,170,171, 87,241,245,238,221,155, 81, 59,223,210,182,214, 62, 75, 66, 33,198, + 59, 56, 8, 34, 56, 14, 61, 9,128, 32,128,187, 37,101,236, 25,138, 98, 14,193,136,185,216, 90,192,100, 60, 61, 28,255,231,214, + 26,168,122,200,125, 34, 30,237, 59,176,234,225,229, 79, 0,140,108,124,156, 86, 75,166,115, 60,247, 8, 21, 23,159, 11, 96,195, +115,102,171,153,163,163, 99,194,137, 19, 39,218, 7, 7, 7,243, 1, 32, 46, 46,110, 90, 68, 68,196,144,146,146,146, 0, 0,242, +255,163, 74, 72,194, 39,201, 15, 68, 2,193,112,134, 97,186, 3, 0,143,199, 75,212,234,116,231,105,150,221, 6, 35,231,100, 51, +193, 4, 19,254,185, 48,196, 69,254,230,104,118,102,248,250,155,227, 26,110, 27,194,220,169,155, 95,200,208,215,239, 87, 41,148, +234,199,143,243, 43, 22,126,176,246,252,172,249, 95, 29,223,240, 93,236,153, 43, 55, 83,111,248, 6,191,148, 98,238,212,205,175, + 25,211,205,249,112, 61,164, 82,233,157,237,219,183, 83,233,233,233, 92,101,101, 37,119,255,254,125,238,200,145, 35,220,123,239, +189,167,150, 74,165,119, 0,120, 24, 99,211,217,217,185,232,254,165,223,184,188,132,120, 46, 59,238, 38,167,211,233, 56,138,162, + 56,138,162,184,148,115,177, 92,194,201,163,220,221, 35,135, 56,173, 86,203,105,181, 90, 78,163,209,112,157, 58,117, 42, 48, 50, +157,141,225,230,239,239,175,141,141,141,229,126,249,229, 23,110,209,162, 69, 92, 80, 80, 16, 3, 96,142,177,247,110,238,228, 29, +110,217, 46,176,228,157,200,109,212,233,235,191,114,201,143,238,114,201,143, 50,184,152, 11,169,220,140,197, 91, 40,203,118, 65, + 37,230, 78,222,225,134,238,221,214,214, 54,132, 32, 8,174, 30, 0,184, 14, 29, 58, 84, 55,252,120,120,120, 60,245,113,119,119, +175,238,216,177,227, 67,123,123,251,158, 77,217,156,212, 29, 28,151,242, 51,199,165,252,204, 45, 31, 4, 46, 57, 57,249, 6,199, +113,191,215,127, 84, 42,213,239,199,142, 29,251,253,181,215, 94,251, 29,192,171, 45,228,147, 81,249, 57, 13,200, 81,156, 56,193, +113,155, 54,113, 92, 88, 24,151, 10,112,211,128,156, 86,218,236,228,226, 34,184,251,213,250, 89,218, 19, 39,126,228,206,158, 61, +205,157, 57, 19,203, 29, 63,182,155,219,188,233, 3,202,217, 89,144, 4,160, 75, 43,108,242, 1,172, 5,176, 17,181,202,101,122, + 73, 73, 9, 87, 88, 88,200, 1, 72,175,251,109,163,163,163,227, 6, 52,173,190, 13,107,168,100, 45, 24,225,114,246,141,145, 3, + 56, 69, 85, 1,247,198,200, 1,220,130, 17, 46, 79, 41, 91, 35,188,188, 44,231,142,238, 94,146, 28,183,159,153, 59,186,123,201, + 8, 47, 47,203, 54,230, 39,129,218,117, 66,183, 95,186,116,137,230, 26, 64,167,211,113,123,247,238,101,108,109,109,127,108,133, +205,174,142,142,142,217,118,118,118,233, 13,127,116, 12, 28,219,207,103,224,180,149,246,126,175,133,181, 34,157,193, 18,161, 48, +239,252,225,111,153,178,156, 68, 78,171, 42,226,170, 30,196,115,121,169, 55,184,189, 59, 55,234, 68,124,126, 30,128,224,231,121, +150, 90, 9,147, 77,147, 77,147,205,191,161,205,150,184,200,255, 50,248,141,111,176, 49,196, 98, 81,228,202,229, 75,136,202,178, + 74,149, 90,174,208,234,212,106, 53, 41,228,212,137, 41,143,138, 73, 62,175,114,193,252,121,150,145, 75,151, 71,214, 0, 83,140, +252, 79,143,160,160,160, 91, 71,143, 30,117,178,179,179, 67, 85, 85, 21,202,202,202,112,235,214, 45,112, 28,135,113,227,198,137, +251,246,233,211,243,147, 21, 43,254,202,203,207, 15, 69,243, 13,239, 19,242, 98,231,128,245, 3,106,215,162,253,244,113, 89,109, +171, 67, 16,216, 53, 33, 66,127,206,154,188,218,213, 50, 36, 18,137,126, 65,226, 54, 32,116,232,208,161, 66, 0,152, 57,115,166, + 92,161, 80, 68,213, 41, 28, 70,173,180,106,238,228, 29,238,224,234, 22,251,237,142,245,210,238,157,189, 65,233,104,100, 23, 22, +128, 47,176, 65,251,246, 66,188, 53,101,184, 96, 80, 63, 59,135,181,159,237, 58, 93,200, 98,172,178, 52,227,215,230,108,217,216, +216,236, 61,116,232, 16, 14, 31, 62, 12, 0, 72, 79, 79,135,183,183,183,185,161, 52, 36, 37, 37,121,189,250,234,171, 7,203,202, +202,186, 24, 58,183,241,196,248, 98,177, 24, 3, 6, 12,128,159,159, 31, 78,156, 56, 49,184, 78,217,122, 46,168,174, 94,133,197, +189,123,192,149, 54,117, 94, 58,245,234,229,121,227,204,233,253, 14,167,207,164, 98,195,134,221,120,248,176, 86,104,243,242,242, +194,228, 73, 19, 4,137,137,215,253,199,143,159,124,253,143, 63, 30, 14,168, 35, 74,134,176,250,187,239,190, 91,214,177, 99, 71, +140, 31, 63,126,130,191,191,191,139,149,149, 21,118,238,220, 9, 87, 87, 87, 47,173, 86,251,224,196,137, 19,110,133,133,133,152, + 55,111, 30,138,138,138, 22, 53,103,104,240,203,131, 63, 17,143,246, 29,216,173,215,116, 88, 88,185,226,187, 3,135,112,255,206, +222,129, 26, 42,245, 19, 33,115,101,170,138, 19,207, 40,201,177,136,236,208, 59,204,190,139,255,171,240,236, 21,239,160,102,254, +120,244,201,240, 78,209,124,137,122,239,170, 13,178,178,103,140,142,143,225, 5,200,211,236,146,206,163, 12, 88,197,214, 19, 44, +189, 90,203,225,213, 65,131, 6,233, 11,238,241,227,199,208,104, 52,240,245,245, 37,181, 90,109,184,145,249,218,245,165,151, 94, +250,243,204,153, 51,246, 93,187,118, 45, 41, 47, 47,215, 31,112,177,183,121,249,202,209,205,243,214,126,253,147,207, 62,142,168, + 44, 73, 61,158,104,192, 86,112,255,144, 94, 23,206, 30,221,111, 65, 84,231, 66,100, 83, 10,176,101,200, 60,248, 3, 8, 51, 59, + 76,124,111, 33, 63,124,232,144,118,195, 71,190,126,225,126,198,195,161, 0,110,155,250,245, 38,152,240,175, 86,181,184,127,218, + 61,233,137, 86, 68, 68, 4,209,212, 13,178, 28, 27,232,236,100, 47,221,252,213,158,219, 60, 74,171, 53,183,177,214, 10,172,173, + 88,194,210,154, 71,105,117,213,158, 94,158, 34,150, 99, 3,155,177,223,120,136, 39, 33,149, 74,143,158, 60,121,210, 73, 32, 16, +128,101, 89, 56, 58, 58, 34, 43, 43, 11,149,149,149, 80, 40, 20,120,152,154,138,142, 30,238, 88, 21,185,196,117,222,146,200,163, + 74,165,178, 55,158,118, 35, 62, 51,108,148,209, 61,189,110,116,253, 18, 44,207,116,249,235,126,107,226,152,177, 67, 81,179,114, +114,114, 96, 97, 97,129,128,128, 0,139,107,215,174,253,209, 2,201,122,202,166,173,173,151, 37, 43, 22, 29,222,254,237, 10, 41, +165, 75, 66, 74,102, 57,186,117, 28, 8,103,123, 15, 20,148,107,113,227,214, 73, 36, 37,252,140,206,237, 60, 48,231,189, 33,146, +232,245,191, 28, 18,210, 29, 61, 42, 43,179,228, 77,217,148,203,229, 22,157, 58,117,130,135, 71,237,186,103, 12,195, 32, 37, 37, + 5, 12,195,232,247, 27,110,247, 28,185, 4, 90,158,141,233,211,166,161,172,172,204,162, 41,155, 2, 30,232,133,179, 38,243,165, + 2, 64,100,110,167,173,174,174,214, 47,195, 65, 81, 20,238,222,189,139,208,208,208,176,152,152, 24, 67,172,200,168,252,164,128, + 47,191,254,241,199, 45, 83,170,170, 72, 0,248,158, 32, 88,138,227,190, 52,246, 89,114,114, 18, 28, 57,119,118,159, 3,143, 76, +131,157,245, 23,184,117, 43, 27, 20, 85,155,222,178,178, 98,204,253, 64, 14,161,192, 18, 39, 78,252,100,239,235, 59,224, 72, 97, + 33, 21,128,167,221,136, 77,165, 83,114,246,236, 89,204,157, 59, 23, 41, 41, 41,110, 60, 30, 15, 55,111,222,132, 84, 42,197, 87, + 95,125,197,243,245,245,117, 51, 55, 55,199,185,115,231, 80, 84, 84, 68,180,148,206,223,127,253,253,243,170,135,151, 63, 41, 36, +206,141,248,238,192, 33,188, 59,105, 34, 92,184,204, 63,172, 59, 19,159,191, 52,186,255,167, 28,207, 61,194,220, 50,208,214, 59, + 96, 52,132, 34, 11,204,249,120, 13,210,147, 78,217, 42, 21, 9, 31, 16, 76,174,251,170, 13, 49,243,159, 73,231, 47, 19,152,153, + 63, 95,235,117,222,227,182,231,189,187,179,110,202,226,119, 37, 60, 33, 90, 94,124,130,100,172,129,218,229, 83, 30, 60,120,128, +135, 15, 31,130,207,231, 67,165, 82,129,166,233, 38,211,233,230,230, 54,155,166,233, 79,235,202,121,143, 68, 34,121,123,255,254, +253,246, 13,137,182, 99,224,216,126,246,150,230, 67,139,138,203, 42,174,223, 78,190,191,112,246,248,193, 87,111, 36,229, 82,130, +215,114,170, 18, 78, 84, 53,147,159, 18,169, 72,116,228,220,177,159, 44,116,143, 46,193,220,119, 48, 4, 22,222, 96,116,249, 80, + 86,212, 64,241, 80, 6,205,183, 91,209,227,131, 5, 56,117,252, 23, 11,255,238,189, 99, 52, 58,157, 55, 0,109, 27,222,205,214, +192,100,211,100,211,100,243,239,105,179, 89, 46,194,113, 92, 47, 0,206,117,187,101,117,188,192, 1, 64, 41,106, 87,145,113,174, +171, 59, 68, 13, 46,107,188,223,240,220,198,251, 13,191,151,213,125,119,170,219,222, 38, 8,162,220, 64,210, 93, 81,187, 52,225, +233,186, 45, 80,231, 74, 52, 24,120, 76, 16,164,156, 97, 88,177,208,209, 73, 61,243,141,161,221,127,187, 16,119,215,204,193,138, +255,242,224,158, 97,183, 18, 31,253, 69,144,132,142, 32, 72,163,226, 62,120, 60,222,196,205,155, 55,119,183,178,178, 2,203,178, +176,182,182, 70, 73, 73, 9,180, 90, 45,170,170,170,160, 81,200, 65, 41,228,184,151,251, 24,253,195, 6,227,245, 17, 47,249,254, +116,252,228, 68,134, 97, 14,182,100,215, 45,176,167, 94,201, 90,211,193,254,137, 52,145, 91,169, 39, 93, 95,244,244,134,208,194, + 2,195, 23, 70, 62,207, 51, 16,127,250,244,233,179,227,198,141, 27,185,120,241, 98, 82, 38,147,157,203,202,202,234, 15, 32,197, + 32,169, 16, 67,242,131,130, 0, 0, 32, 0, 73, 68, 65, 84, 75, 62,124,255,195, 8, 91, 91, 11, 14, 49,231, 79, 98, 80,207, 73, + 48, 19,241, 80, 38,167, 64, 16, 64,106,242, 81, 16,132, 29, 18,210,101, 24,216,195, 10, 47,189,236,107,113,252,151,212,197,120, + 18, 31,244, 76,209, 84, 84, 84,160,184,184, 24, 58,157, 14, 58,157, 14,227, 39, 76,192,190,189,123, 81, 83, 83, 3,149, 74, 5, +173, 86, 11,134, 97, 64,146, 36,206,199,198, 32,247, 81, 42,250,133,134, 2,205, 44,189,180,247, 46, 4, 0,110,220,191,127, 31, +169,169,169,200,203,203,131, 68, 34,129,139,139, 11,214,172, 89, 3,141,166,118,141,178, 9, 19, 38,132, 1, 72,124,222, 23,234, + 33,176, 43,139, 97, 62, 25,121,236,152,211,181, 99,199,216, 27,167, 78,229,137, 21,138,157,198, 92, 43, 20, 98,252,250, 47,223, +235,102,110,110,142,188,156,205,240,241, 17, 98,209, 2,123, 68,125, 81, 10, 0,152, 55,183, 61,250,244,118,128,188,242, 23, 56, + 56, 45,195,150, 45,243, 59,207,152,177,113,154, 82,201,236, 49, 96,250,147,147, 39, 79,190,238,237,237,221, 46, 62, 62,158, 16, +137, 68,144, 74,165,144, 74,165,144, 72, 36, 40, 46, 46, 70, 86, 86, 22,183,126,253,250,124, 0,159,180,100,104,213, 22,217, 95, + 0, 70, 46, 24,129,179,247,239,236, 29,216,142,247,232,222,235,115, 6, 60, 78,184, 17,175,248,237,252,181,207,104,181, 36,183, + 50,239,194,146, 78,125,226, 29, 62,248,104, 53,182,174, 95,137,251, 55,175,150, 59,123,200,183, 73, 9, 77,147,233, 12, 11, 91, +197,119,117,182,163,103,207,120,221,230,148,243,245,217,103,248, 68, 73, 97,233,157,175,144, 21,175, 18,119,233, 57,181,171, 23, +169,189,116,233,146,116,208,160, 65, 80,171,213,122,101,114,255,254,253, 44, 77,211,151,155,124, 54, 41,234,211,252,252,124, 87, +149, 74,133, 17, 35, 70,204,251,234,171,175,204,235,215,168, 99, 24,230, 41, 37,235,243, 77,251,126,253,240,211,109,151,127, 61, +248,133,219,231,145,111, 15,158, 50,103,237,101, 52,179,142, 36,159, 36, 63, 56,117,108,183,139,196, 86, 7,169,221, 75, 80, 23, +169,112,127,215,187, 80,202,213,232,243,249,106, 0, 34,104,117, 36,118,142, 30, 15,129,189, 27, 86,190,243,182,219,242,157,223, +189,199,178,236,102, 83,191,222, 4, 19, 76,104, 4,103,130, 32, 98, 1, 32, 50, 50,114, 89, 84, 84, 84, 50, 65, 16,177, 28,199, + 69,212, 9, 40,177, 28,199, 69,212,159, 83, 71,206,158,217,175, 63,183,241,126,227,239, 75,151, 46,245,143,142,142, 94, 23, 26, + 26,122,240,250,245,235,143, 0, 24, 34, 90,163,234,136,213, 51, 75,239,144,245, 12,178,225,246, 41, 69,139,101,175, 62,120,244, + 88,249,210,176,190,237, 99,175, 36,222,126,235,173, 81, 67, 39,142, 30,244,114, 86, 78, 89,106,103, 79, 23,135,228,228, 68, 43, +150,101,175, 26,147, 75, 98,177, 56, 98,200,144, 33,252,138,138, 10,152,153,153,161,164,164, 4,249,249,249,160, 40, 10,234,170, + 74,104,170, 42,161,174,172, 0, 85, 85,129,135,113,183, 16,216,217, 75, 92, 23, 44,223, 34,234, 85,151,198, 74, 85, 67,101, 75, +100,105, 9,177,165, 37,136,214,187, 13, 95,179,177,177,185, 81,223,168, 82, 20,245,193,146, 37, 75, 74, 89,150,197,218,181,107, +173, 44, 44, 44, 98, 0,136, 13, 25,177,116,228, 69,132,246, 8, 32,211,178, 18, 48, 32,104, 58,186,118,122, 5, 89, 69, 42,148, + 42, 40, 20, 87, 82,232, 51,232, 27,116, 8, 90, 13,247, 30, 81, 72,205, 46,135, 91, 59,111, 18,124,113,139,139, 63,231,230,230, + 62,181,127,240,192, 1, 40,149, 74,116,238,220, 25,147, 38, 77,194,146, 37, 75, 48,105,210, 36,184,185,185, 97,202, 27,175, 98, +229,202,149, 40, 44, 44, 52,148, 84, 77,215,174, 93, 53,158,158,158, 26, 79, 79, 79, 13, 69, 81,168,174,174, 70,101,101,101,227, +252,158,223,218,140,116,114,114, 90,234,226,226,146,224,228,228,148, 44, 22,139,207,220, 37,136, 52,181,167,167,115,255, 49, 99, + 8,191, 55,222,224,101, 75,165,196, 21,192,194, 24, 91, 14,118,130, 81,225, 67, 70,138, 42, 43,118,235, 69,170,183,223,114,196, +159, 87,252,113,237,143,222,152,251, 65,103, 16,164, 4, 4, 41,130,178,230, 18,250, 6,135, 10,109,108, 8, 67,207,210,100, 0, +119,251,247,239,239, 54,103,206, 28, 66, 44, 22, 99,222,188,121,212, 59,239,188,147, 49,105,210,164,140,139, 23, 47, 50,158,158, +158,112,119,119, 39,220,221,221, 93, 1,220,173,187,166, 69, 88,117, 38, 62,215, 80,169,127,216,120,155, 63, 98,224,208,175, 90, + 39, 30,191,106,131,172,236,243,237,143, 54,100,221, 87,122,221,191,121,181, 44, 35,233, 20,155,117,251,247,210,130, 12,133,215, +231,219, 31,109, 88,182,173,160,201,151,250,202, 21,176, 71, 99,175, 80,202, 26, 37,127,204,232,112,229,236,153, 19,187,218, 89, +248,239, 71,187,151,130, 58,120,180,159,178,114,221, 22,234,157,247, 62,164,190,255, 97, 55,167, 80, 40, 32,151,203,177,101,203, + 22,250,212,169, 83,249, 12,195,124,216, 92, 31, 8, 0,116, 58, 29,102,207,158,109,110,101,101,133,220,220, 92,189, 34, 10, 0, +178,146,178,196,107,183,147,210, 22,254,103, 66, 88,141, 70,163,249,245,247,184, 84, 63,111,207,246, 4,193, 53, 59, 16, 69, 36, + 16, 12,239,221,183, 47,143,227, 42, 65,240, 61,240,112,239,122,200, 11,203, 33, 47, 46, 7, 79, 96, 14, 26, 98,232, 88, 17,108, + 2,131,145,126, 59, 30,237, 28,157,249, 98,129,224,101, 83,123, 98,130, 9,255, 78,180,196, 69, 26,146,165,232,232,232,117, 45, + 29,111,176,213, 54,218,215, 19,169,198, 36,172,225,119, 0,136,142,142, 94,199,113, 92,196,245,235,215, 15, 0, 80, 25,121, 11, +179, 26,108,141,159, 71,139,167,214, 70, 45, 94,242, 9,108,173,165,214,193, 61,189, 93, 78,156,187, 18,119,245,122, 92,106, 7, +119, 7, 71, 78,167,181,253,114,227,214,246,132, 82, 21,109,100, 34,124, 29, 28, 28, 64, 81, 20, 30, 60,120,128,188,188, 60, 80, + 20, 5,186,166, 6,154,202, 74,168, 43, 42,192,212, 40, 32,100, 24,168, 74,138, 97,111, 38, 1,158,140, 72, 52,160,188, 17, 77, + 18,173,250,173,196,202, 10, 98, 75, 43,144, 2, 65,147,110,197,102,208, 43, 56, 56,248,112, 82, 82, 82,223, 97,195,134,125,134, +218, 33,242,217,249,249,249, 67, 87,172, 88,161,113,118,118,198,236,217,179,187, 1,152,110,144,100,138,180,190,158, 46,221,208, +213,107, 58, 58,184, 15, 65,101,141, 14, 37,114, 29,138, 43, 41,236,252, 38, 20, 71,190, 15,198,159, 71, 6, 34,233,215,225,168, +212,185,192,194,237, 53,112,140,214,191, 37,155,231,207,159,199,154, 53,107,240,217,103,159, 97,237,218,181,248,236,179,207,144, +159,159,143,128,128, 0,228,228,228,224,236,217,179,144,201,100,112,112,112,192,173, 91,183,176,105,211, 38,252,249,231,159, 6, +111,186,158,184, 26,113, 78,171,124,233, 52, 77,207,144,141, 25,211,189,200,206,206,175,103,207,158, 35,231,205,155,231,213,191, +127,127,253,113, 47, 47, 47, 15,169, 84, 90,136,218, 17,148, 61, 90,178,197, 2, 61, 29, 29, 3,160,213,164,213,149,177, 0, 4, + 33,193,144,225,169,232, 63, 48, 14,148, 78, 8,146, 16,131, 36, 37,160,233, 50,216,218,186,129,227,136, 0, 3, 73, 92, 81, 82, + 82,226,125,225,194, 5, 50, 43, 43, 11, 18,137, 4, 0, 30,175, 90,181,106,235,134, 13, 27, 82,236,237,237,153,216,216, 88, 28, + 63,126, 28, 17, 17, 17,188,119,222,121,199,219,221,221,125,135,161,251, 94,181, 69,246,215,207, 27,207,190, 41,208,217,246,144, + 72, 59,116, 68,141,197,107,239,135, 57,152, 3,192,185,204, 76,133,147,135, 60,186, 70,145,144, 99,211,190,250,139,115,153,134, + 70,156,174, 98,239,100,164,221,248,249,216,185,170,226,162, 10, 65,207,238,254,170,168, 53, 31, 9, 59,116,236,242,229,202, 37, +255,113,201,151, 75, 42,135,207, 59,155,118,244,220,173,234,169,111,189, 75,207,156, 53, 71,125,246,220,249, 99, 44,203,118, 71, + 51, 35, 14, 89,150,133, 76, 38, 67,114,114, 50, 50, 51, 51, 81, 82, 82,130,210,210, 82, 40, 20, 10,189,187,209, 76, 33, 63,189, +245,199, 83,247,204,165, 82,179,190,221,189, 61,110,198,167, 20,155, 75,165,102,222, 29, 61,186, 2,171,154,172, 71, 24,134,233, + 46, 49,147, 2, 32, 80,153,116, 21,213, 21,213,168,174,172,134,162,188, 26, 26,138, 7,181,134,132, 74, 75,194, 51,236, 37, 84, +215,168, 81, 93, 86, 5,150, 97,130, 76,205,141, 9, 38,152,208, 66, 91, 31, 27, 25, 25,185,204,200,115,141,118,111, 54, 38, 94, +145,145,145,203, 8,130,136, 93,186,116,169, 63,154, 31, 80,213, 16,187,154,248, 0, 48, 98,122,135,178,178,140,106, 75,194,119, +220,130,143, 63, 61,123,224,135,111,156, 52, 26,101,142,189,173, 5, 99, 97, 38,114,152, 57,123, 45, 20,213, 21, 99,107,140,159, +142, 0, 21, 21, 21,120,244,232, 17,164, 82, 41,132, 2, 1, 24,149, 10,140,170, 6,170,138, 50,144,148, 6, 66,134,129,157,153, + 20,158,110, 46,232,224,236, 98,148,205, 7,151,126,211, 7,190, 55,116, 23,174, 15,246,133,200,220, 2, 34, 75, 11,188, 31,251, + 59, 0, 64, 40, 20, 2, 43, 62, 51, 74, 52,105,215,174,221,201,159,127,254, 89, 88, 82, 82,130,187,119,239,222, 3, 80, 5,192, + 18, 0,155,154,154,122, 33, 41, 41, 41,194,219,219, 27, 0, 58, 27, 50, 38, 47, 37, 25, 29,205, 33,183,240, 49,178,242,226, 97, +103,221, 9, 2,179,174, 40,174,164, 32,150,118,130, 78,243,196,251,168,150,103, 67, 69,241,140,186,119,173, 86, 11,154,166, 65, +211, 52,180, 90, 45,102,205,154,133,107,215,175,227,224,241,139,120,244, 48, 29,221, 58,186, 96,218,180,169, 8, 14, 14,198,245, +235,215, 91,180, 53,189, 7,116,237, 44,192,223, 56,146,132,200,194, 94, 19,178,228,215,155,134,200, 22, 65, 16, 28,154,113, 69, + 54,194,134,208,208,208, 46,233, 53, 53, 72, 78, 75,195,176, 85,171, 0, 0,103,206,156,121,234, 94, 22, 46, 92, 40, 74, 73, 73, +153, 25, 23, 23, 55,179,160,160, 96, 35,128,166,131,205, 57,224,244,233,191,240,159,255,164,160,164,164, 4, 0,112,232,192, 19, + 94,154,245,136,194,136, 81,181, 30, 45, 27, 27, 27,108,220, 24, 96, 84,126, 50, 12,131, 93,187,118,233,221,133, 0,192,231,243, +251, 47, 92,184,112, 92, 83,231,119,233,210, 69,104,200,230,130,241,237, 36,127,222,227, 62,176,238,210,193,223,202, 33, 16,101, +186,248,128,248,124,217,220, 5,227,219,109,222,244, 75,190, 90, 74,104,246, 16, 76,174, 59, 95,162,222,107, 76, 26, 51,207,125, +163, 45,243,156,177,183,176, 68,190,124,206,187,147,237,173,108,156,106,190,223, 26,101, 75,242, 72,238,100, 28, 85,233,239,101, +111,243, 90,200,215,213,255, 89,176, 34, 94, 75,231,206, 65,238,201,116,180, 48,197, 5,195, 48, 40, 40, 40, 64, 73, 73, 9,114, +114,114, 80, 90, 90,235,126, 45, 45, 45, 5,203,178,207, 83, 33, 66,149,147,131,236, 99,223,163,195,212,169,232,243,217, 26, 48, + 44, 31, 42, 37,131,141,253,134,162,162, 74, 5, 13, 75,192,173, 87, 63,188,123,230, 15,144, 28, 3,236,220,102,106, 73, 76, 48, +225, 95, 10, 99,166,119,168, 39, 68, 81, 81, 81, 17, 47,250,255, 27,146,173,168,168,168,228,168,168,168,214,252, 87, 99,151,161, +126,191, 62, 70,235,247, 6, 1,104,207, 52,154,138,210,212,204,148, 20,126, 65,141,170,198,204,217,201, 81, 99, 38, 17,179, 85, +114, 5, 47, 62,241, 30, 85, 83,248,240,126, 43,238, 35, 53, 41, 41, 41,160,160,160, 0, 57,217,217,160, 85, 53, 32, 53, 90,112, +106, 37,134, 13,232, 7, 9, 0, 9, 73, 64,200, 82,224,243, 68, 80, 84,203, 1, 32,213, 96,227,168,211, 61,163,108, 17, 4, 1, +145,165, 37, 68,230,230, 16, 89, 88, 62,165,112, 25,163,216,136,197,226,159, 99, 98, 98, 92,219,181,107,135, 53,107,214,160,125, +251,246, 62,110,110,110, 74,107,107,107,169,179,179, 51,252,252,252,208,175, 95, 63,156, 61,123, 22, 48, 98, 78, 41, 29, 45, 73, +184,255, 24,253, 75,203,175,227,143,223,191,133, 86,165, 65,207,176,111, 65,241, 59,192,209,127, 53,216, 7,251,161, 44, 60, 81, +171, 30,184,140, 70, 94,206, 99, 16, 60, 81,178,177,202, 83,253,247,123,247,238,225,192,137, 43,112,245,244, 69, 78, 70, 26,210, + 46, 95,192, 53, 71,123,120,250,250,233,221, 64,205,166,145, 1,255,243,109,181,211, 68,125,242,193,100,113,121,121,185,216,206, +206, 78, 83,159,119,174,174,174,207, 67,182, 38, 47, 94,188, 24,149, 2, 1, 48,106, 20,132,153,153,160, 40, 10, 33, 33, 33,232, +211,167, 15, 0, 32, 36, 36, 4,124, 62, 31,129,129,129,112,115,115,195,182,109,219, 38, 55, 71,180, 72, 2,119,105,186,204,199, +203,203, 75, 79,180,246,238, 43, 65,124,220,112, 16, 16, 97,203,214, 7,250,115, 61, 60, 60, 80, 40,203, 4, 65,112, 73, 6,210, +248,153,139,139,203, 10, 87, 87, 87,175, 13, 27, 54,240, 36, 18, 9,222,123,239,189, 78,213,213,213, 29,234,164,100, 44, 93,186, + 20, 0,176,114,229, 74,172, 90,181, 10, 26,141, 70,217,156,177,189, 27,187,187, 21,151,179, 51,185,106,179,177,225, 14, 29,186, + 15,121,121, 24, 58,121, 15,193,144,151,115, 0, 96,157, 29,255,241, 27, 95, 46,183, 57,102, 99, 73,236,254,237,220,249,149, 3, +194,134, 44, 95, 82,125,249,243, 47,118, 85, 26,140,121,172,202,222,163,184, 47,154,184,233,155, 29,251, 54,125,186,116,190, 36, +167, 68, 91,145, 95,193, 85, 91,136,249, 22,157,157, 9,139,185, 31,127,246,168,160, 32,115, 17,114,207, 25, 28,105,201,178, 44, + 50, 51, 51,245, 49,125,106,181, 26, 53, 53, 53,200,205,205,213, 63, 51, 42,115,171, 17,115,222, 26, 29, 84,163, 82, 41,111, 38, +102,228,124, 50,111, 74,104,141, 74,165,204,200,202, 73, 7,182, 52,201,198, 72,146, 76, 84, 42,148,195,148,149,106,148,220,189, +143,246, 67, 61,161,163, 9,104,105, 6, 37,101, 10,104,104,128, 33, 5,240,127, 99, 26, 24,130,143,210,130,124,144, 60,222, 61, + 60, 29,180,111,130, 9, 38,252,123,208, 34, 23,169, 87,180, 66, 67, 67, 15, 54, 84,157,234,191, 3,208,160,229, 80,158,146,134, +100,170,222,157,216,220,255, 52,178,107, 44,158,137,209, 50, 56,189, 67,253,127,186, 91,203,221,214,175,156,210,158,165,233,110, +197,165, 69, 52,159, 47, 22,184, 91,171,100,229, 57,198,255,187, 70,163,137,189,112,225,194,152,225,195,135,139, 51, 18,239, 65, + 91, 85, 5,109, 85, 37, 4, 44, 13, 59,105,111,144,148, 6,132, 86,139,118, 62, 44,212, 10, 41,174, 92, 75,210,105, 52,154, 88, + 99,137, 22,201,227, 61, 29,151,101, 97, 1,177,165, 21,196, 22, 22,141, 93,139,134, 72,129,217, 75, 47,189, 52, 52, 36, 36, 4, + 28,199, 97,215,174, 93,160, 40, 74, 68, 81, 20,180, 90, 45, 40,138,130, 92, 46,199,190,125,251,176,125,251,246,107, 0,126, 52, +216,152,209,218, 11,191,158,191, 20,252,246,148, 8,193,153,216,141,160,181, 12, 84, 68,123,212,212,232, 80,173, 53, 3, 99, 63, + 21, 40, 58, 13, 30, 95,130,208,192, 78, 56,241,203, 81, 10,180,230,162,145, 44,252, 41, 85, 40, 55,231, 49,242, 30,166,195, 66, + 94, 8, 71, 43, 51, 40, 51,211,209,115,218,244, 54,169, 19,238,238,238, 96, 89, 22,225,225,225,250,224,234,182,146,173,178,178, + 50,156, 58,117, 10, 33, 33, 33, 8, 11, 11, 67,126,126, 62, 50, 51, 51,241,202, 43,175,232,207,185,119,239, 30,226,227,227,209, +185,115,203, 34, 97,105,185,238, 76, 94,238,221, 9,175,189,246,154,240,198,141, 27,224, 56, 14,222,222, 86,176,178, 52, 7, 65, +138,225,235,235, 4,160,182, 15, 48,120,240, 96,200,229,153,116, 69, 5,119,198,192,237,254, 12,224,184, 86,171,125, 48,104,208, + 32,183,135, 15, 31, 98,193,130, 5,252, 67,135, 14,213, 75,201,136,140,124,122, 48,133, 74,213,188,235,190, 91,119,159,143, 58, +209,182, 97, 18,105,135,142, 86, 14,129,232,228, 61, 4, 0, 48, 60,226,109,116,234,226, 1,121,105, 66, 71,181,234,241, 88, 33, +191,194, 54, 97, 75,126,138,116, 84,192, 91,234,226,223, 51, 80,235, 58, 53, 88,236,170,140, 67, 69, 57,255,143,189,235,142,139, +226,106,187,103,102, 43,219,128,165,179,128, 10, 40,136, 8, 2, 17, 17, 59,106, 52,246,138, 37,246,104, 52,137, 37, 49,198,168, +209,196,174,241, 51,177, 39,150, 96,141,177, 98, 84, 52, 86, 20,123, 3, 84, 84,148,222,123, 93,216,101,235,204,124,127, 80, 94, + 84,202,162, 38,111,242,102,207,239, 55,174,187,236,156,189,247,206,204,189,231, 62,247,185,207,195, 25,127,228,247, 83,127, 76, +239, 63,112, 48, 71, 71,233,245, 94,205, 57,230, 71, 79,156,201,203, 76, 77,219,132,180,115, 49,255,177,255, 53,104,197,163,228, +114, 57, 68, 34, 17, 98, 98, 98,212, 3, 6, 12,224,147, 36,137,248,248,248, 26,161,101, 99,101,225,217,217,223,203, 99,229,134, +253,231, 69,124, 62,191,111,143,246,109,158,198,165,102, 48, 12,145, 82,175,181, 85,167,187,248, 56,250, 97,144,181,172, 21, 43, +241,234, 29, 88,118,237, 15,181,154, 68,133,134,134, 90, 15,232, 89, 92,216,251, 6,192,188,101, 27, 48, 0,238,223,185,169, 83, +235,116,231,141, 99,141, 17, 70,252,171,173, 90, 76, 67, 34,169,234,255, 69, 0, 82,214,172, 89, 83, 80,203,218,148, 15,224, 33, + 0,159,170,239,229,191,114, 94, 62, 65, 16,247, 25,134,241,175,197,147, 95, 75,112,213,254,191,230,149,239, 60,108,130,200,170, +253,250,178,208,170,111, 75, 37, 0, 88, 89, 89,217,248,249,181,111,185, 43,228, 8, 24,134,193,243,168,245, 40,206,139,197,146, +213,183, 91, 58, 56, 56,116,207,204,204,140, 48,164, 4, 20, 69, 29,222,189,123,247,151, 1,239,249,249, 57, 59, 58,226, 97, 74, + 50,184, 12, 5, 46, 69,129,212,170,193,166, 52,112,244,162, 64, 18, 98,100,101,149, 98,237,193, 35, 49, 85, 81,226, 27,132, 71, +255,193, 88,158, 81, 10,130, 32,240, 67,160, 23,120, 18, 49,184, 34, 49, 62, 61, 21, 94, 35,174,194,150, 47, 4, 79, 44, 70,203, + 0,131, 2,194, 43,175, 92,185,242,224,241,227,199,254, 94, 94, 94,248,242,203, 47,145,146,146, 2,154,166,145,155,155,171,202, +206,206,206,204,207,207, 79, 1,112, 2,192, 46, 24, 16,121,156,171, 86,109, 12, 59,190,111,102, 96,151,238, 86, 67,134,253,132, +223,143,205, 69, 73,169, 28, 74,189, 0, 10,149, 30, 10, 53, 11, 22,150,222, 8,104,215, 14, 89,153,121,120,114,231,124, 57, 91, +173, 92,223,148, 27,148, 32, 8, 68, 69, 69,193, 85, 38,193,139,235, 17,176, 18,114,224, 35,179,131,172,115,151,154,248, 82, 13, +129,195,130,254,195, 15, 63,172,137, 12,223,167, 79,159,228,241,227,199,219,207,157, 59, 23, 33, 33, 33,184,121,243,230,107, 14, +218,221,187,119,199,181,107,215,150, 1,248,174, 49,163,158, 70,163,129,135,135, 7,238,223,191,143, 75,151, 46,161,103,207,158, +232,222,189, 59, 30, 61,122,132, 11, 23, 46, 32, 42, 42, 10, 4, 65,192,210,210, 18,186, 74,241,172,171,143, 76,171,197,209,239, +215,237, 94,180, 97,195, 79,109,199,141, 27,135,227,199, 15, 97,202,228,214, 32, 72, 62, 8,130,143,193,131, 90, 99,249,138,251, + 8, 8,232, 1, 43, 43, 14, 54,252,120, 50,169,162,130,218,111, 64, 51,174,188,112,225,130, 76,165, 82,161,164,164,132, 17,139, +197, 68, 97, 97,229,142,214,186, 44, 90, 74,165,210,164, 62,162,199,145,207,214,151,148, 49,197, 76,121,212,176, 34,125,148,119, +207,190,233,120,127,224,100, 92, 12,219,131,240,243,151, 96,193, 78, 73,134,168,236,143,130,228, 2,121,182,194,109,123,155,247, +166,178, 50, 20,231,183,207, 26,252,130,101,111, 79, 31, 93,248,179,188,164, 33,161, 5,128, 40,122,122,224,212, 9, 6,131, 59, + 5, 6,180,242,106,102,207, 43, 46,200, 99,142,157,252, 35, 70,155,124,252,116, 45,129,197, 52, 34,212,151, 47, 88,176,224,219, +170,255,239, 93,188,120,241,212,181,107,215, 90,231,228,228,212,248,104,229, 21, 20,133,119, 26, 48,139, 42, 44, 41,213,236,222, + 48,127,164,192,132,207, 91,188,118,247, 85, 29, 11,119,234,227,213,211,244,182, 81, 95, 44,153, 19,247, 60,202,161,133,128,135, +147,243,191,195,195, 11, 87,160, 35,185,152,113,233, 46,212, 90, 10, 37, 5,133,184,252,209,103, 16,219, 74,241,211,213,227,185, + 52, 77,255,108, 28,106,140, 48,226,223,139,250,180, 8, 65, 16,117,197,216,203,173,227,179,251, 13,157, 87, 15,207,187, 64,189, + 81,225, 13,218,130, 87, 80, 80,144,119,237,218, 93, 92, 13, 91,137,136,176,149,120, 18,245, 16, 89,153, 26,100,230,170, 96,106, +106,122,187,129, 83, 95,141, 28,203, 40,149,202,225,139,151,124,155, 99, 34, 16,162, 91,175, 94,176,179,182,129,144,203, 1, 75, + 79,131, 69,112, 80,158,111,142, 23,143,148,248,122,247,129,188,114,165,114,120, 29,131, 68,239,250, 68, 6, 65, 16,224,155, 74, +192, 19, 75,192,151,152,190,180,140,104, 98,106, 10, 19,137, 41,216, 60, 94, 93,206,240,175,113,150,151,151,143, 24, 57,114,100, +113,105,105, 41,166, 78,157,138,136,136,136,168,243,231,207,155, 62,122,244, 72,144,159,159,223, 10, 64, 31, 0, 59, 26, 16, 89, + 47,113, 22, 23, 39,150, 49,122,245,232, 53,223,126, 94,161,210, 91, 34,120,226, 97,136,200,116,232, 41, 26, 12, 0,153, 5, 15, +157,123,175, 64,158,166, 19, 14,111, 95,165,164,181,170,113,175,196,208,122,137,147, 97, 24,198,214,214,246,181, 54,184,116,233, + 18,130, 71,142, 64,223, 97, 67, 97,237,236, 10,155,222,253,209,119,234, 12,108,223,190, 29, 36, 73,194,202,202,234,213,129,183, +134,115, 95, 52, 56,191, 61, 6,241,219, 99, 16,123,163,192, 6, 48,225,192,129, 3,223,251,248,248, 92,185,121,243,230,122, 0, +163,107,255, 86, 45, 44,125,197,154, 85,215, 53,250,102,206,156, 57, 21,113,113,113, 16,137, 68,208,235,245,184,121,243, 38,126, +250,233, 39,252,240,195, 15,136,138,138,130,165,165, 37, 90,182,108, 9,181, 90,141,251,247,239, 87, 0,248,166, 1, 78, 58, 63, + 95, 63, 98,243,230,181,133, 3, 7,118,197,238,221, 91, 97,103,215, 9, 28,182, 29,216, 28,107,136,196, 30,248,101,215,247,232, +215,207, 15,167, 78, 30, 41, 42, 40,212,143, 0,160, 55,224, 94, 82,221,189,123, 23,219,183,111,199,200,145, 35, 51,131,131,131, +169,210,210,210, 26,139, 22,195, 48, 96, 24, 6, 75,171,124,204,212,106, 53,191, 62,206,105, 95,199,100,206, 95,245,100,121,110, + 78,102,199,136, 43,183, 63, 12, 63,127, 9, 73,113,225, 8, 63,127, 9,215,195,111, 45,200,205,201,236,232,215,193,157, 59,124, +234,204,175,246,133, 30,103,137, 77,237,177, 47,244, 56,107,236,172,207, 87,181,239,219,243,155,198,238,249,170,235,200,148,231, +229, 46, 92,189,126, 75,185, 94,171, 34,255,111,211,182,172,138,252,236,111,106,221,151, 76, 99,247,103, 69, 69,197, 14,149, 74, + 37, 83,169, 84, 50,181, 90,253, 77, 74, 74, 74,183, 47,191,252, 50,159,162,168, 26,107,105,254,211, 83,183, 99,111,236, 93,109, + 99, 37, 21,116,242,111,219,250,199, 29,199,174,166,165,231,254, 90, 43,134, 86, 93,229, 84,149, 87,168, 70, 12, 29, 62, 94, 81, + 82,172, 70,224,231, 11, 64,155,136,161,166, 0, 29,195,130,158, 96,227,241,202, 31, 33,176,144,224, 96,114,164,178, 84,167, 29, +129,151, 99,104, 53, 84,247,183,129,145,211,200,105,228,252,123,114,254,147, 97,143,151,115, 29,218,191,100,209,106,108, 75,165, +131,131, 67,183, 33,131,123,163,199,192,197, 96, 24, 6,177,145,235, 80,156,255, 28, 14,118,124, 36,166,201, 3, 1, 68, 52,161, + 48,105, 41,233,233, 29,231,124,179, 56, 52,184, 79,175, 54, 94,206,206,252, 22, 45,154, 67,100, 99,131,130,130,124,220,184,243, + 84,183,234,183,163, 49, 85, 34,203,160,133, 73,154,166, 43,157,220, 1,244,154,243, 53, 8, 22, 11,168, 10,227, 80, 61, 48, 58, +251,119, 2,193,102,131, 98,104,168,213,106, 67,118,203,101, 36, 36, 36,140, 24, 55,110,220,229,176,176, 48,178,111,223,190,190, + 39, 78,156,120,155,156,121, 80,228,197, 93, 1, 48,112,213,194,233,135, 59,246, 28,106,234,214,182, 61,183,125, 11, 22,180, 58, + 2, 89,153,169, 8, 11,189,167,125,122,247,188,156,209,171, 70, 43, 11,226,174, 52,196,165,213,106,211, 90,181,106,101,187,125, +251,246, 26,103,120,138,162, 80, 80, 80,128,219,183,111,195,219, 63, 0,109, 38,127,132,252,252,124,108,222,188, 25,205,154, 53, +195,160, 65,131, 80, 84, 84, 4,189, 94,111,232,130, 47, 5,224,124,213,129, 87, 68, 22, 81,149, 2,168,193,101, 67, 87, 87, 87, +158, 74,165,242,101, 24,134, 69, 16,196, 70,141, 70, 51,105,225,194,133,246,171, 87,175, 70,235,214,173, 81, 80, 80, 0,145, 72, + 4, 55, 55, 55,228,231,231,227,222,189,123,148, 82,169,220,142,202, 68,214,249,141,148, 47,254,222,189,228,142,179,103,127, 26, +250,253,218,233,110, 42,117, 15,158,133, 69, 23, 48,140, 30,249,249, 41, 40,147,223,212,174, 88,190, 39, 33, 55, 79, 55, 28, 64, +156,129,117,254,110,230,204,153, 0, 96, 2, 96,113, 98, 98, 98,116,155, 54,109,220,234,179,104, 25,130, 13,199, 50, 85, 0,126, + 27,209, 87,246,133,188,224,145,155, 5, 59, 37,185,163, 23,189,121,195,177, 76,149,169, 76,177,178, 32, 37,226, 69,182,226,252, +246,125,161,199, 89, 19,135,141,160, 28,197,113, 11, 76,108,152, 99, 6, 80, 51, 62, 62, 62, 78, 4, 81,228,146, 87,248,252,193, +148,169,211, 71,153,113, 43,206,250, 56, 22,182, 36,155,249,153, 68, 69, 69, 37,163,137, 59, 67,171,240, 34, 51, 51,179,219,194, +133, 11,207, 51, 12,243,146,111, 66, 94, 65, 81,120,224,192,153, 76, 73, 73,105,116,254,179, 83,134,196, 82,187,119, 47, 50,170, +151,151,183,223,241,239, 87,175,181,237, 49,231, 75,246,139, 43, 87, 1, 74,135,212,136,171,160,248, 26,250,199, 91, 23,115, 75, +181,218, 97, 48, 70,133, 55,194,136,127,189, 53,171, 33, 45,242, 55,199, 0,212,227, 12,111,112,101, 92, 93, 28,206,183,118,107, +209,167,153,163, 53, 0, 32, 49, 57, 11,137,201,153, 23, 18,147, 50,251, 54,162,120,235,219, 94, 89,147, 84,154,168, 10,225,192, + 24,150, 84,250, 37, 78, 75, 75,203, 7,108, 54,219,177, 41,173, 65, 81, 84, 86, 65, 65,129,159,129,229, 28,235,236,236,188, 54, + 53, 53, 53,148,166,233, 47,154,168,246,235,228,172, 78, 42, 77,178,121,189, 25,189,198, 27, 0, 8, 54,207,144,164,210,181, 57, +189,197, 98,241, 14, 14,135,211,172,250, 58, 86,251, 96, 81, 20,197,210,106,181, 38, 20, 69,177, 0, 16, 36, 73,234, 57, 28,142, +138, 32, 8,189, 94,175, 79, 83,171,213,211,241,159,128,163, 13,213,189,209,129,190, 74,104,161, 14,139,214, 37, 0,136,139,139, +115,151, 74,165,163, 9,130, 24,201, 48,140, 71, 89, 89,153,122,201,146, 37, 81, 71,143, 30,149, 59, 59, 59,127, 48, 96,192, 0, +226,209,163, 71,136,137,137, 97, 10, 11, 11,143, 85, 89,177, 18,155,120, 47,145,124, 62,107,140,133, 5, 57,128, 97,224, 3, 6, + 4, 65,226,113,105, 41,125, 86,169,164,126,173, 18,140, 77,189, 63,171,241, 97,139, 22, 45,246, 36, 39, 39,115,234,179,164,214, + 87,247, 87,177,238,155,182,139, 3,187,118, 29,113,251,250,245, 19,243, 87, 61, 89, 94,251,111,179,134, 74,167,140,253,108,206, +186,223,182,109,154,191,229,247,226,221,134,148,211,215,215,215,149, 32,136,209, 0,188, 24,134,105,197, 48,132, 9, 65, 48,197, + 4, 65, 60, 1,240, 72,163,209,132, 61,125,250, 52,227, 45,234,254, 38, 51,220,250, 56,107,146, 74,131,162,218, 81, 0, 99, 96, + 82,233,191,186,156, 70, 78, 35,167,145,243,191,199,249, 79,198,199,117,124,102, 88,100,248,106, 36, 38,101,246, 77, 76,202, 68, +171, 86,173,152,248,248,248, 38,137,180,250, 6,105,138,162, 14, 41,149,202, 67,111, 67, 82, 88, 88,216,254, 79,110,188,223,146, +147,147,127,123,151,132, 85, 66,106,121,213,241,166,120, 92, 94, 94, 30, 96,232,151,181, 90,237,159,209, 54, 68,149, 53,107, 89, +125, 95,232,211,167, 79,170, 86,171,189, 4, 32,157, 32, 8,115, 0, 69, 90,173,246,188, 94,175,207,141,143,143,111,255,227,143, + 63, 86, 71,190, 95, 1,224,193, 27,150,131, 86,171,169,131, 89, 89,212,193, 63,161,142, 7, 53, 26,205, 92, 75, 75,203,150, 42, +149,138,167, 82,169,184,181, 55, 31, 8, 4,130,252,134, 28,226,107,195, 92, 66,236,229,178,139, 45,205, 37,196,171, 66, 10, 22, + 14, 56, 94,161,136,105,109,225,128,227,134, 22, 44, 58, 58, 58,209,199,199,231, 0, 73,146,206, 12,195,216, 2,140, 25,195, 32, +159, 97,152, 2, 54,155,157,249,244,233,211,204,191, 81, 39,164,210,211,244,122,189, 70,243, 31,191, 67,227,238, 66, 35,140, 48, +226,127, 7,245,250,104,177,155,202, 20, 31, 31, 79, 24,219,211,136,218, 98,171,161, 63,166,166,166,170, 1,220,170, 58, 94,197, + 3, 0,131,254,238, 21,204,206,206,246,171,239,111,134,138, 44,160,210,103, 11,136,169, 51, 58,251,210, 45,197,101,216, 18,250, + 85, 83,203,246,240,225,195, 52, 24,184,196,110,132, 17, 70, 24, 97,196,159,134,183,183,104, 25, 97,132, 17, 70, 24, 97,132, 17, + 70, 24, 81, 39,118,214, 18, 92, 47, 89,183, 8,212,191,115,160, 41,107,175,111,178,251,224,146,145,211,200,105,228, 52,114, 26, + 57,141,156, 70,206,127, 29,231,255, 42, 94, 19, 89,127, 5,140, 91, 95,141,156, 70, 78, 35,167,145,211,200,105,228, 52,114,254, + 27, 68,214,171, 7, 0,227,210,161, 17, 70, 24,241, 47,198,209,163, 71, 13, 74, 42, 58,102,254, 47, 3,197, 98,233,146,114,121, +233,218, 67,235,167,156,168,254, 60, 56, 56,152, 50,182,162, 17, 70, 24,129, 55,113,134,119,113,113,244, 36, 41,186, 51,195,144, + 44,134,100,116,132,188,226,112, 98,113,241, 75, 97, 7,156,156,156,204, 57, 36, 6, 17, 12, 35, 34, 8,154,162, 89,228,205,164, +164,140,167, 77, 40, 24, 79, 42,149,206,228,114,185,189, 53, 26,141, 35, 73,146, 25,106,181,250,146, 82,169,220,138,215, 3, 23, +254,215,224,238,238, 62,246,234,213,171,230, 93,186,116, 81, 11, 4, 2,125, 69, 69, 5,251,220,185,115,252,126,253,250,149, 36, + 36, 36,188,209,142, 68,153, 76,214,243,151, 95,126,113,233,219,183, 47, 90,181,106,165, 24, 61,122, 52, 55, 48, 48,144, 59,117, +234,212,164,172,172,172,240, 38,210,121, 18, 4,177,159, 32, 8, 22, 77,211, 19,240,159,208, 13,239, 26, 36, 73,146,211, 9,130, + 24,198, 48,140, 43, 65, 16,137, 12,195,156,160,105,186,161,192,173, 13, 97, 4,128,254, 36, 73,250, 1, 0, 77,211, 81, 0,206, + 2,134,239,188,251, 43, 57,133, 66,161, 47, 0, 40,149,202,232,119,197, 73, 16,132, 47, 0, 48, 12,243,166,156,147, 5, 2,193, + 52, 0,168,168,168,216, 5, 3,210, 65,189, 10,102,187, 7,227,183, 44, 22, 0, 16,245,157, 7, 0,160, 41,239,137, 25,177, 68, + 83,126,171, 46,190,166,112,212,129,254,227,198,141, 91,253,235,175,191,126, 7,224,228,159,113,227,219,217, 57,109,253, 97,211, + 78,217,231, 51, 63, 90,139,202,140, 16, 13, 63,144,192,251, 60, 22,107,176,134,162,174, 63, 5,142, 2, 96, 91, 88, 88,140,229, +241,120,221, 52, 26,141, 61,155,205,206,214,104, 52,215, 74, 75, 75,127, 67, 3, 25, 16, 12,110,215,103,144,106,149,176, 35,232, +255,228,121, 99, 72,168,185, 66,228, 16,109, 80,252, 55,232, 70, 73, 0,115,170,234, 26,130,250,195,121, 52,212,249,124, 46,147, +201,134,201,229,114, 37,139,197, 98, 80,185,235,185,242,159,202,191, 19, 52, 77,231, 21, 21, 21, 77,104,140, 75,212, 12,173,121, + 34, 98, 63,165, 67,133, 94,205,124,162, 72, 71,172,216, 9,157, 24, 96, 2, 3, 56,147, 44,210,154,166,233,108, 0,225,164, 30, +167,203,179, 16,255, 55, 29,220,155, 87,181,107,139,170,247, 28, 0,182, 0, 30, 1,248, 28, 64,185, 81,255,252,101,120,213, 25, +254, 12,128,236, 26,161, 85, 43,220,125,143,129, 3, 7, 70,184,184, 56,122,142, 28, 58,124,245,140,233,159, 16, 44, 22,137,152, + 39, 79,216, 31, 78,152,220, 71, 42,149, 58,136,213,234, 54, 32, 8, 90,105, 98, 18, 35,151,151,102, 30,253,237, 87,137, 71,235, +214, 20, 69,209,216,190,227,231,126,199,126, 15, 93,100,160,216,114,183,179,179,219,191, 96,193, 2,187,193,131, 7,179,236,236, +236,144,146,146, 98,126,232,208,161,214, 91,182,108, 25, 85, 92, 92, 60, 1,192,139, 55,168,108, 87, 59, 11,178,143, 68, 64,244, + 66, 25,133, 50, 29, 46,231, 84,224, 2,128,235,111,218,122, 74,165,114,150, 82,169, 12,240,247,247,103, 66, 66, 66,136, 73,147, + 38, 49, 4, 65, 16, 21, 21, 21,123, 1,188,145,208, 18,137, 68,219,250,246,237,235,230,230,230,150,152,144,144,208,255,200,145, + 35,103, 39, 78,156,232, 42, 18,137,226, 0,184, 55,145,110, 79, 97, 97,161, 79, 69, 69, 5, 28, 29, 29, 67, 0,188,247, 39,220, + 68, 4,139,197, 58,225,224,224,192,172, 91,183,238,164,143,143,143,109, 81, 81,145,254,171,175,190,234,125,231,206,157,126, 20, + 69, 13,110,130,216,146, 18, 4,177,195,214,214,214,106,237,218,181,241,237,219,183,127,196,231,243,121,113,113,113,194,185,115, +231,126,241,226,197,139, 81, 12,195, 76, 7,154, 52, 64, 72, 9,130,216, 33,147,201,172, 86,175, 94,157,226,231,231, 23,195,229, +114,185,113,113,113,162,175,191,254,250,243,216,216,216, 55,226, 36, 73,114,123, 64, 64,128,244,187,239,190,123,214,186,117,235, + 91, 44, 22,139,151,145,145, 65, 46, 93,186,116,230,197,139, 23,131,105,154,158,241, 38,229,180,177,177,145, 46, 93,186,244, 89, + 96, 96,224, 29, 46,151,203,125,254,252, 57,185, 96,193,130,153,241,241,241, 6,151,211,194,194, 34,136, 32,136,157, 57, 57, 57, +108, 0,176,183,183,239, 96,106,106,186,165,118, 78,203,234, 80, 20, 58,157,174, 76,165, 82,141, 43, 42, 42,170, 51, 16,238,164, +133,155, 7, 1,192, 22,109,245,251,202,215,198,222, 3,219, 79, 27, 82,105, 95,187,202,184,120, 63, 40,166, 12, 5,128,177, 85, +169,194,127, 80, 0,108, 54,155,246,181,251,156,137,206,105, 82,200,152, 33, 61,123,246, 92, 26, 30, 30,254,115,143, 30, 61,190, + 62,112,224,128, 77,122,122,250,247,215,175, 95,119, 26, 51,102,204,164,203,151, 47,175, 41, 40, 40, 56,246,174,110,126, 30,151, +207, 39, 72, 2, 2, 19,161,169, 33,223,231,144,228,192, 91, 67,134, 76,219,245,252,185,223,150,216, 88, 23,133,189,125,192,236, +217,179,109,135, 15, 31, 78, 58, 57, 57, 33, 62, 62,222,242,192,129, 3,109,118,237,218, 53,172,164,164,100, 14,128,212,183, 17, + 89,138, 18,120,171, 53,240, 99, 24,152,215, 60,176, 4, 74,248, 90, 68, 49,207,240,248,111, 32,182,190,221,179,103,207,119,241, +241,241, 88,179,102, 13, 0,108,109,226,249,115,135, 12, 25, 50, 32, 52, 52, 84,112,244,232, 81,129,191,191, 63,236,236,236, 80, + 53,153,170, 9, 76,237,226,226, 98, 88,155,209,248, 97,227,217, 41,239,197, 20,253,129,109,195,115,214, 8, 28,161,239, 52,196, +109,216,192, 73,126, 48,179, 22,194, 68,204, 70, 73,161,220,235,121, 84,122,223, 43, 71,226,191,143,143,204, 95,171, 72,195,183, +168, 63, 38,223,127, 5,150,150,150, 33, 73, 73, 73, 65, 34,145,232,165,207, 19, 19, 19,125,221,220,220, 74, 1,124,217, 84,225, +102,109,109,125,144,166,105,117, 97, 97,225, 71, 0, 32,145, 72,126, 21,137, 68,210,236,236,236, 69,127,214, 68,166, 26,175,106, +145,127,184, 69,171,198, 95,171,174, 92,135, 4, 73,209,157,103, 76,255,132, 24, 61,118, 76, 78,124, 98, 18,205,230,240,198,158, + 59,127, 94,232,233,233, 73,170,183,110,133, 62, 63, 31,186, 47,190,232,116,233,210, 37, 93,240,216,241, 21, 28, 22,177,199,213, +197, 89,120,248,183, 67,118,161,199,143,117, 6,208,152,208,226,217,217,217,237,191,122,245,170,131,139,139, 11, 74, 74, 74,144, +146,146, 2,133, 66,129, 81,163, 70,113, 58,119,238,236, 48,114,228,200,253,165,165,165, 93,154, 96,217,178,109,229,200, 14,155, + 62,121,184,123,191, 62,157, 69, 14, 78, 45,193,228,168,144,158, 16,235, 31,118,245,206,236, 61,199,207,190,136, 47,101, 6,162, +238,220, 72, 13,162,160,160, 96,254,176, 97,195,142, 7, 5, 5, 89,243,249,124,200,100, 50, 98,240,224,193,121, 89, 89, 89,203, +222, 88,181, 84,165,176, 33, 73,146,170,253, 90, 71,122, 32, 67,224, 40,149, 74, 33,149, 74, 1,192,225,109,103,158,230,230,230, + 91, 37, 18,201, 72,185, 92, 94, 65,146, 36, 67, 16, 4,163,209,104, 4, 82,169,244,225,179,216, 23, 50,181, 90,221,106,253,198, + 93,155,122,118,245, 49,189,120,241, 34,134, 15, 31,206, 92,209, 15, 19,103, 0, 0, 32, 0, 73, 68, 65, 84,184,112, 97,186,161, +121,234, 8,130,216, 49,108,216, 48,229,146, 37, 75, 84,241,137, 41, 14,207, 94, 36, 18, 34, 19, 30,109,101,101,197,185,119,239, + 30,123,195,134, 13, 38, 75,151, 46,221,193, 48,204,200, 38,180,231,142, 49, 99,198,104,231,205,155,151,253, 60, 62,201,230,241, +179,120, 70,108,194,209, 91, 89, 89,178,238,220,185, 67,191, 9, 39, 73,146,219,231,207,159, 47,159, 62,125,122,113, 97, 81,169, + 93,177,188,156,225,115, 88, 58, 59, 59, 59,246,201,147, 39,213, 7, 15, 30, 36,167, 77,155,182,157,166,233,224, 38,180,239,246, +193,131, 7,151, 45, 88,176,160, 36, 46, 49,217,238,241,211, 23, 16,242, 57, 58, 91, 91, 27,214,253,251,247,181,235,215,175, 39, + 87,174, 92,105, 80, 57, 69, 34,209,190, 35, 71,142,176, 79,158,172,236,251,110,223,190, 77,186,186,186, 10,107,127,167, 66,165, + 6, 73, 0, 5, 5, 5,194,192,192,192,125, 0, 94, 11,238,235,183, 44, 22,147, 22, 2,179,102,205,202,110,234,205,226,103, 63, +187,209,239, 80, 63,123, 48, 27,148, 83,134,178,217,108,122,218,180,105, 57,175,254, 93,165, 82, 17, 0, 6,227,123,195,197, 86, +255,254,253,191, 57,115,230, 76,203, 3, 7, 14,252,120,240,224, 65, 13, 0,152,152,152, 88, 29, 58,116,104,205,168, 81,163, 48, +106,212,168, 37,199,142, 29,123,103, 66,139, 98, 40, 45, 0,240, 77,248,252,216,216, 88,194,195,195,163,193,136,251, 90,154,126, +176,235,249,243,246,159,122,120,248, 23,209,116, 43,110,191,126,229,115,231,206, 45,144,203,229, 72, 73, 73,129, 86,171,197,164, + 73,147, 88, 61,122,244,144,141, 26, 53,106,115, 89, 89,217, 8, 0, 90, 3,238,201,245, 14, 14, 14, 31,151,150,150,150, 87, 91, +117,186, 76,160,216,221,124,245,252,118,173,116, 60, 46, 75,207, 29,244, 5, 77, 92,216, 74, 40, 60, 92,112, 3, 0,184, 74,228, + 55,113, 50, 80, 39, 76, 29,225, 66,113,176,210,218, 81,208, 51, 63,181, 98,185, 34,173, 65,177, 52, 66, 36, 18, 13, 85, 40, 20, +199,170, 6,103,247,129, 3, 7,226,206,157, 59, 0,208,185, 74,104,245, 36, 73,242, 67,154,166,127, 1,208, 80, 42,183,217, 67, +134, 12,121, 63, 52, 52, 84, 2, 0,199,142, 29,131, 78,167,131,171,171, 43,184, 92, 46,120, 60, 30, 56, 28, 78, 77,118, 16, 3, + 97,111,109,109, 5, 43, 51, 14,164, 22,162,126, 95,255, 52,132,221,204,211, 20,121,212, 19, 20, 49, 37,208, 51,106,112, 45, 69, +104,221,215, 28,126,125,122,146,167,183,199, 44, 58,189,237, 89,123, 37,137, 65, 72,133,250,239, 50,178,147, 36,201,127,244,232, + 17,100, 50,217, 75,159,179, 88, 44, 0,232,246, 6,148, 75, 18, 19, 19, 3, 35, 35, 35, 17, 20, 20,180,196,219,219,251,131,136, +136, 8,187,194,194, 66, 4, 5, 5,109,206,200,200, 56,249,103,215,169,182, 22,249, 95, 49,117,145,175, 40,201, 30,149,179, 96, +146,197, 98,145, 72, 74, 76,209, 5, 5,245,154,152,150,150, 38, 14, 8, 8, 32, 57, 28, 14, 20,225,225, 80,221,191, 15,177, 88, +140, 97,195,134,113,174, 93,187,102,106, 42, 54,157,154,156,148, 92,198, 98,145, 96, 24,178, 81,159, 7,169, 84, 58,115,209,162, + 69,118,110,110,110,208,235,245, 53, 17,205,245,122, 61,210,211,211, 33, 22,139, 49, 97,194, 4, 27,161, 80, 56,211,192,122,180, +112,119,181,137,186,122,118,199,123,115,103,244, 23,185, 11, 47, 66,148, 62, 7,226, 99,159,162, 77,214, 57, 44, 24, 26, 32,186, +176,109,137, 95, 75,153, 69, 84, 45, 19,171,193, 80,171,213, 55, 98, 98, 98,166, 70, 68, 68,208, 0,112,229,202, 21,230,217,179, +103,211,223,102, 22, 74,211, 52, 74, 74, 74, 64,211, 52,171,234,125,245,235,127,245,126, 48, 53, 53,221,254,193, 7, 31,140, 73, + 77, 77, 21,252,241,199, 31,150,105,105,105, 86,201,201,201,214,238,238,238,236, 53,107,214,156, 81,169,181, 44, 29,197,104,244, +148,174, 44,251,201,147,196,226,220,220,168,221,187,119, 87, 16, 4, 49,204,192,223, 24, 97,111,111,111,185,112,225, 66, 16, 28, + 97,135,214,109,188,221, 88, 28,129, 25,201,225,153, 85, 84,168,168,164,164,164,244,133, 11, 23, 58,251,248,248,200, 80,185,188, +102, 16,167, 76, 38,179,154, 55,111, 30,216,124,137,111, 59, 31,191,150, 60,190, 72,194,226, 8, 36, 1, 1, 1, 61, 18, 19, 19, +179, 22, 44, 88, 96,239,239,239,223, 36, 78,127,127,127,233,180,105,211,244, 38, 2, 73,160,139,139,107,155,118,109,219, 12,112, +119,119, 31,202,102,179,245,249,249,249,169, 19, 38, 76,176, 31, 52,104,144,109, 83, 56,109,108,108,164, 11, 22, 44,208, 59, 53, +119,237,219,247,253, 62, 29,185, 2,137, 25,155, 39, 50, 87, 42, 85,212,243,231,207, 83, 23, 47, 94,108,239,235,235,107, 99, 8, +167, 82,169,228, 88, 89, 89,193,203,203, 11,158,174,174, 40, 45, 45, 69,104,104, 40,246,236,217,131, 95,126,249, 5,191,253,246, + 27,218,119,233, 3,137, 68,130,172,172, 44,200,229,114,206, 95,125, 67, 81, 63,123, 48, 91, 52, 31, 15,254,228,147, 79,178,166, + 77,155,150, 35, 16, 8,232, 87, 15, 11, 11, 11,106,220,184,113,185, 19,190,222, 56,184,122,105,177, 17, 75,214,163,179,103,207, + 38, 28, 56,112, 0,158,158,158,232,219,183, 47, 15, 0,102,206,156,201, 27, 53,106, 20,142, 28, 57,130, 99,199,142, 61,117,115, +115,187, 9, 96,136, 33,229,156, 48, 97, 66,151,224,224,224,235,193,193,193,209,163, 71,143,222, 57,125,250,244,151, 70,174,236, +172,140, 7, 26,141, 6, 62,126,254,194, 21, 33,119,199, 53,198,247, 12, 56,176, 51, 54,118,207,218, 39, 79, 82,151,120,122,154, + 55, 79, 78,182,216,187,126,189, 85,117,146,110,157, 78,135,244,244,116, 72,165, 82,140, 27, 55,206,138,207,231, 79, 48,160,152, + 27,134, 12, 25, 50, 57, 45, 45, 77,188,107,215, 46,251,232,232,104, 89,118,118,182,253,229, 75,231,173,191,250,114,166,196, 76, +204,227,101,229, 51, 4, 0, 36,103, 65, 20,155,132, 46, 12, 3,243,218,203,137,111, 4,123, 8, 4,142,216,210,178,139,249,139, +121, 71,124, 71, 47, 8,243,179,146,218,243, 23, 54,112, 70,187,117,235,214, 29, 61,125,250,244,216, 46, 93,186, 28, 7, 32,168, +227, 59, 38,237,219,183, 15, 61,114,228,200,228,174, 93,187,222, 0,224, 85,239, 44,210,209,113,216,239,191,255,110, 89,253,222, +202,202, 10, 38, 38, 38,175,137, 44, 46,151, 11,146, 36,155, 92,189, 85,135,198,178, 45,218,168, 17, 83,124, 22, 71,214, 61,194, +186,126,207,233,213,157,146,213, 91, 39,196,226,194,145, 71,200,195, 35,244,255,180, 37,198, 46,246,233, 45,164,176,242,239, 52, +128,231,231,231,127,216,173, 91,183,163,253,251,247, 87, 71, 70, 70, 34, 63, 63, 31, 14, 14, 53,115,237,156, 55,160,180, 16, 10, +133,112,114,114,130,155,155,219,216,107,215,174,217,233,116, 58, 36, 39, 39, 35, 47, 47, 47,234,175,168, 83,109, 45,242, 15,195, +171,142,240,103, 94, 19, 90, 85,185,133,174, 2, 0, 67, 16,138, 71, 49, 49, 28, 22,143, 55,254,215,131, 7,249, 92, 46, 23,169, +169,169,120,250,244, 41,148,151, 47,163,226,214, 45,228,230,230,162,188,188, 28,182,182,182,216, 17, 18, 34,210, 80,204,148,231, + 47, 94,176, 24,146,169,237,111, 80,231, 22, 79, 62,159,223,123,248,240,225,245, 10,178,172,172, 44,244,239,223,159,195, 98,177, +234,218,213,240, 42, 39, 33,179, 38, 78, 95, 62,190,194,222,158,247, 20,136,159, 11,148, 69, 1,140, 26,208,107,128,204,199,192, +153,101,104, 94, 30, 75,156, 95, 49,209,206, 65,200, 62, 93,135, 82,110,108, 43,170,171,135,135,199, 47,227,199,143, 39, 1,160, +103,207,158,132,135,135,199, 78, 0,174, 13,156,115,169,145, 65,242, 78,113,113, 49, 70,141, 26,101,217,178,101,203, 75,163, 70, +141,178,172,254,252, 77, 57,171,173,201,158,158,158,133, 38, 38, 38,191, 1, 6,117,176, 53,156,230,230,230, 91,251,247,239, 63, +242,224,193,131, 92, 0,184,122,245, 42, 78,159, 62,141, 39, 79,158, 32, 46, 46,142,246,243,243,179,222,248,203,209,237, 91,127, +222,183, 97,104,103, 31, 89,143, 14,126,109,196,229,197,229,182,182,182,157, 25,134,113, 53,176,156,253,151, 45, 91,246,244, 89, + 66,170, 25,201,230,176,185, 28, 54,223,212, 84,100, 43,149,136, 28, 45,132, 38, 14,124,146, 16, 43,149,202,156,223,126,251,141, + 6,208,223, 80,206, 21, 43, 86, 36, 61,139, 79, 53, 39, 72, 54,155,195,230,112,197, 98,161,121,191,190, 65,254, 0,192, 5,195, +149,203,229,185,123,246,236,209, 54,133,243,187,239,190,139, 41, 42, 41,151,178, 57, 28, 14,155,205,170,105, 75,145, 64, 96, 45, +228,243,121,106,181, 58,115,211,166, 77, 21, 77,225, 92,182,108,217,211,231, 9,105, 22, 36, 65,176, 8,130,100,155, 74, 68,150, +150,102, 66,107,107,177,192, 74,200,102,241,228,114,121,230,254,253,251, 13,226,212,106,181,220,220,220, 92, 60,123,246, 12, 78, +254,254,184,120,241, 34,154, 53,107,134, 81,163, 70, 97,204,152, 49, 16, 8, 4,232, 25,232,141,133, 11, 23, 34, 33, 33, 1, 90, +173,150, 95, 23,103,181,159,212,171,144,201,100,145,141,221, 60,175,156,251, 82, 57,125,237,192,108,209,124, 60,184,182,192,170, +143,223,194,194,130,170,203,218,245, 42,103,255,254,253,191,185,124,249,114,203,253,251,247, 15,158, 48, 97,194,141,253,251,247, +163, 99,199,142,120,246,236, 25,156,157,157,177,119,239, 94,140, 25, 51,230,198,230,205,155, 7, 71, 70, 70,250,184,184,184, 44, +106,140,115,244,232,209,159,249,250,250,134,231,228,228, 4, 22, 21, 21,121,133,134,134, 78, 25, 54,108, 88,210,216,177, 99,123, +213, 8, 70,157,238,224,153, 83,199, 49, 96,240,112,180,110,235,181,125,210,162, 3,222,141, 60,155,204, 19, 96,231,158,236,236, +252,131, 42,149,114, 20,135, 35, 20,222,189,107,113,236,231,159,173,106,103, 22,200,204,204,196,160, 65,131, 56, 92, 46,183,107, + 35,229, 92, 55,116,232,208, 81,161,161,161,210,106,171,206,173, 91,183,240,248,241, 99,164,164,164,160,164,164, 4,189,166,151, +227,147, 53,149,220,159,172, 97,208,103, 38, 35,122,195, 62,164, 6,130,102,176,179, 52,101,223,156,178,169,245,204,143,183,123, +178,197, 22, 28,252,250,117, 28, 10,146,213,199,234,225, 36, 2, 3, 3, 15, 4, 7, 7, 19, 26,141, 6, 26,141, 70, 3,160,206, +168,190, 14, 14, 14, 38,237,218,181,195,244,233,211, 73, 83, 83,211,205,245,149, 83,161, 80,168,207,158, 61,139, 9, 19, 38, 96, +206,156, 57,104,213,170, 21,164, 82, 41, 56, 28, 14,246, 29, 56,108, 53,102,202, 12,247,247,186,116,243,241,124,175, 99,187, 50, + 53,203,159, 35,144, 78,171,199, 26, 82,103,221,203,109, 34, 17,147,124, 27, 91, 6,103,208,247,246, 42,203,191,250,240,255, 98, +159, 71,228, 62, 89, 20,188, 51,134,185,221,169,224,192,231,105,200,213, 61, 67,215, 81,205,225,226, 43,253, 66,228, 4,143, 55, +109, 79, 3,209, 36, 78,111,111,239, 46,247,238,221,227,119,235,214, 13,169,169,169,224,112,106,230, 83,212,219,148,115,217,178, +101,124,149, 74,133,135, 15, 31, 98,226,196,137,153, 90,173,246,139,183, 41,103, 83, 44, 90,213, 90,228, 31,134,157,175, 28,217, +245, 89,180,150, 1,128,142,198,233,241, 19,167, 40,195,194,194,132, 60, 30, 15,169,169,169,200,206,206,198,190, 61,123,168,158, + 54, 54,101,125, 29, 28,228,251,246,236, 97, 52, 26, 13, 24,134,129,135,135, 7, 70,142, 28, 41, 24, 49,106,108, 30, 33,175, 56, +108,192, 50,143,125,245,250,250,148, 41, 83, 94,251,251, 87, 95,125, 5, 83, 83, 83, 16, 4, 97,103, 64,229,130,103, 47, 27,234, + 40,117, 49,207,101,114,246, 21,129,101, 2,176, 37, 0,219, 20, 48, 49, 3,248, 18,128, 39,132, 58, 50,188,136,100,250,166, 12, +239,250,145, 3,128,166, 44,245, 64, 38,147, 45, 9, 15, 15,183,142,140,140,100,228,114, 57,178,179,179,153,213,171, 87, 91,203, +100,178, 37,111,122, 69,178,178,178, 86, 12, 24, 48, 32,119,226,196,137,102,231,206,157,115,154, 56,113,162,217,128, 1, 3,114, +179,178,178, 86,188,205,149,230,114,185,172, 39, 79,158, 88,172, 92,185,114, 12,128, 7,109,219,182, 45,116,112,112,120,128, 74, +167,201, 6, 33,145, 72,106, 68, 86,181,117,141,205,102,131,195,225, 64, 38,147,105,138,138,138,168,174,239,185, 10, 60,204, 72, +157,140,207, 21, 88, 8, 76, 28, 37,166,102, 1,133,133,133,143, 8,130, 72, 52,112,137,207,183, 67,135, 14, 28,138,225,208,159, +140,239, 41,155, 57, 57,200,230,167,149,211,154,109, 90,241,177,195,186,165, 83, 61, 86,204, 31, 23, 68,210,180,202,217,217,217, +174,218,161,221, 0,243,185, 95,251,246,237,217, 52, 56,120,246, 34, 37, 55, 53, 35,179,236,253, 30,129, 53,150, 75, 79, 95,191, +190,214,214,214,221, 60, 60, 60,218, 19, 4, 97,208,150,100,129, 64,224,219,186,117,107, 54,201,226, 16,150, 82,137,147, 68, 44, +176,173, 89, 66, 49, 55,239,100, 97,109, 29, 76, 50, 76,169,189,189,189,141, 64, 32,240,109, 66,221,217, 52,184,176,181,177, 48, +179,182, 50, 23,247, 13,234,220, 42,176, 83,160,187,119, 64,199,192,182,239,181, 31, 65,232,245,114, 87, 87, 87,155,106, 39,249, + 70, 44,173, 38, 7, 15, 30,196,202,149, 43,209,174,121,115, 56, 56, 56,192,198,198, 6,183,110,221,194,189,123,247, 32,149, 74, +145,151,151,135,245,235,215,227,196,137, 19,208,106,181,146,166,222, 79,134,136,173,134,160,215,235,201, 87, 5, 86,125,252, 2, +129,128,174,118,146,175, 15,103,207,158, 61, 80,109,201,250,252,243,207,187,108,220,184,241, 70,108,108, 44,196, 98, 49,238,221, +187,135, 41, 83,166,220,216,188,121,115,151, 25, 51,102, 96,207,158, 61, 72, 74, 74, 10,105,136,111,244,232,209, 75,167, 78,157, +186, 41, 34, 34,130,180,181,181,133, 84, 42,197,208,161, 67, 17, 18, 18,194,214,235,245,187,131,131,131,163,131,131,131,163,169, +244, 11,223, 28,253,101,245,173,152, 71,209,248,108,246, 60,158, 70,175, 91, 96, 64,245,153, 10,177,184, 76,223,173, 91,209, 17, +157, 78, 57,154,203, 21,154, 69, 71, 91,156,222,189,187, 70,108, 45, 92,184, 16,102,102,102, 64,165, 3, 51, 26,176,234,124,124, +226,196,137,154,254,208,210,210, 18, 60, 30, 15, 92, 46, 23, 28, 14, 7, 44, 22, 11,151,182,139,240,243,194, 74,125,241,243, 66, + 2, 23,182, 18,138,183,185,118, 66, 7,120, 73,109,121,209,159,238,109,235,227,213,203, 18,183, 14,229, 96,245,128,200,140,123, + 71,242,231,170,242,240, 67, 61,167,189,247,213, 87, 95,121,230,229,229,225,254,253,251,184,127,255,126,125, 22, 32,213,169, 83, +167,190, 47, 47, 47,135,139,139, 11,134, 12, 25,210, 13,128,127, 61,207, 13,218,183,111,143, 65,131, 6, 33, 40, 40, 8,237,218, +181,131, 70,171,231, 4,143,255,184,245,147,164,124,135,213,235, 87, 11,195,175,132,146, 55,110, 68,176, 14, 28,191, 96, 22, 24, +212,103, 19, 87, 98,127, 7, 2, 75,123, 67,234,169,164, 10,225,107,223, 15, 59, 47,207, 38,183, 92,157, 40,222,119,122,139,171, + 68, 34, 33,162,238, 71,235,246,109, 59,146,230, 37, 26,146,119,231, 80, 33,148, 68, 14,122, 77,118, 33,105, 96,228,223,101,100, + 55, 49, 49,217, 24, 17, 17, 97,167,213,106, 17, 19, 19,131, 57,115,230,168,222,146,178,198, 0,226,228,228,132,171, 87,175, 98, +220,184,113,170,220,220,220,219,127, 85,157,106,107,145,255, 21,176,107, 41,200, 26,164,167,167,151, 72,165, 82,135,214,173, 91, +147, 26,141,166,114, 73,226,216, 49,234,151,221,187,207,168, 84,170,217, 0,184, 91,127,250,105,187,131,163, 99,208,248, 9, 19, + 8,157, 78,135, 1, 3, 6,240,194,194,194, 44, 19,243,242,202, 12, 24,112, 94,250,189, 73,147, 38, 97,227,198,141, 0,128, 89, +179,102,213,152,214, 9, 3, 28,150,196,102,232,223,119, 96,123,211,116,209, 22, 83,109, 39, 93,121,139, 4,201, 29, 81,185,160, + 61, 72, 30, 27, 38, 44,208, 90,157, 62, 46,111,216,131,132,184, 54,158,130,162, 66,231,222,109,187,227,151,139,251,251, 43, 41, +213, 17,131, 59, 28,161,176,131, 88, 44,198,131, 7, 15,138,218,183,111, 95,194, 48,140,217,138, 21, 43,172,132, 66, 97,135,183, +104,251,228, 23, 47, 94,116,235,220,185,243, 76,146, 36,123,211, 52,125, 41, 55, 55,119, 43,128,100, 3,207,255, 4,192,119, 0, +106,102,150, 26,141, 6, 36, 73,130, 97, 24,140, 30, 61, 26, 11, 23, 46,244,124,252,248, 49,194,195,195, 45,122,247,238,125, 7, + 64, 9,128,143, 0,212,105, 53,147,203,229, 21,247,238,221, 19,132,135,135,131,166,105, 88, 88, 88,192,212,212, 20,124, 62, 31, + 67,135, 14, 21, 47, 88,176,160,215,249,243,231,243,228, 45,154,177, 76,178, 51, 21,124,177, 88, 2, 59,135,174, 51,198,126, 24, +203, 48,204,137, 38,116, 14, 60, 1, 91,175, 34, 40, 53,185,238,219,205,164,144,203, 37, 76,184,108,240,105, 37,190,249,126, 21, +193,101, 40, 54,154,184, 62,207,229,114,185, 18, 62, 52, 44, 30, 75, 39, 36,192,188,139,135,131,197, 98,241, 76,184,245,251, 99, +112, 72,146, 36, 73,146, 11,192,224,164,125,124, 62,159, 43,225, 51,245,114, 10, 88, 4,139, 32, 8, 30,234,217,137,230,107, 7, +166,218,138,196,155,157,168,174, 45,138,187,118,237,138, 51,225, 15,112,236,244, 37, 20,164, 62,194,226,175, 63,135,191,191, 63, +194,194,194, 26, 44, 83,181,143, 86,125,214,101,153, 76, 22,153,149,149,245, 94,125,231, 54,180,100, 88,143,149,234,117,254,111, +205,224,183, 44, 22,141,248,104, 13,233,218,181,235,103, 7, 15, 30,212,124,240,193, 7,188,209,163, 71,195,203,203,171,203,228, +201,147, 1, 0,189,123,247,198,198,141, 27,187, 76,158, 60, 25,135, 15, 31, 70,104,104,168,186, 71,143, 30, 95, 95,189,122, 53, + 19,149, 59, 58, 95, 3, 77,211,131,118,236,216,241,170,165, 16,122,189, 30, 58,157,206, 94,175,215,219, 87,245, 69,216,180,105, +115,193,133,243, 97,248,122,209, 50,216, 88,219,249, 26,120, 15, 17,147,230,205, 43,216,187,126, 61,214, 31, 62,140,121,206,206, +194,253, 79,159,226,130, 74,133, 35,225,225, 5, 85,191,211,168,111,166, 66,161,168, 56,123,246,172,233,145, 35, 71, 96,110,110, +142, 86,173, 90,193,194,194, 2, 28, 14, 7, 36, 75, 0, 22, 87,138,214,109, 59, 0,184, 7, 0,112,150, 65,225,225,130, 27, 4, +129, 18,134,108,186, 79, 17,191, 25, 90, 88, 57,154, 68,124,182,199,203,220,212,134,139,115, 91,211,112,126, 75,250, 9, 85, 1, +126,132, 30,207, 81,191,207, 87,123, 23, 23, 23,228,229,229,225,236,217,179, 10,160, 94, 65, 6,154,166,191,255,233,167,159,190, + 90,180,104, 17,223,195,195, 3, 0,124, 1,220,175,235,187, 34,145, 8, 14, 14, 14, 53,194,114,244,196, 25,174,211,231,206, 16, + 12,235, 19, 4, 54,219, 10, 37, 10, 29, 10,203,116,144, 90,137,241,245,220, 96,147, 75,237, 29,252,119,108,254,245, 84, 69, 5, +252,129,215,251, 3,130,192,253,187,143,110,120,155,120, 0, 4, 9,164,147, 87, 64,128, 64, 57,161, 3,193, 98, 49, 20, 69, 33, + 45, 45, 13, 12,195, 96,220,176, 41,233, 31,175, 14,181,233, 50, 78, 14,167,214, 50, 16, 12,186,255, 93,132,128,165,165,165,111, + 97, 97, 33,146,147,147, 49,113,226,196,204,130,130,130,139, 10,133, 98, 74, 86, 86, 22, 0, 20,189, 1,101,141,152,247,245,245, + 69,135, 14, 29, 48,106,212, 40, 19,165, 82, 25,236,234,234,234,144,159,159,223,233,207,172,207,171, 90,228,127, 74,104,213,249, +160,233,116,173,213,219,183, 67,113,233, 18,120, 23, 46,224,136, 76, 86,174, 82,169,190, 4,144, 94,245,224,127,190,103,239,222, +155,131,111,223, 54,213,196,198,194,245,241, 99,112,204,205,125,155, 90,128,221,187,119, 67, 46,151,163,180,180, 20, 0,176,101, +203, 22,200,229,114,232, 13, 76, 56,203,230,162,139,157,141, 51,114, 16, 7,154, 77,138, 83, 90, 43, 59,138, 85,146, 44,135, 52, + 91, 69, 41,233,128,216,212, 0, 81, 69,161,166, 35,193,210, 64, 85,160,132, 67,231, 86, 96,131,221,165, 41,101,172, 94,247,103, +179,217, 69, 47, 94,188, 24,228,238,238,126, 26,128,213,155,248, 3,188,130,248,220,220,220,217,111,114, 34,139,197,250, 46, 41, + 41,201, 38, 36, 36,100,230,138, 21, 43,152,218, 66,171,250,255,108, 54, 27, 12,195,192,204,204, 12, 28, 14,199,246,214,173, 91, +182, 1, 1, 1,219,104,154,246,173,167,158,140,151,151, 23,146,146,146,192,102,179, 97,102,102, 6, 90,175,197,178,185, 51, 64, +177,248,236,249,243,231,251, 14, 31, 62, 60, 38, 36, 36, 68,103, 26,216,185, 83, 97, 97,225,147,207,198,141,143, 57,121,242,164, +166, 42,196, 67,227, 83,124,134,137,142,139,139, 99, 57,202,108, 89,140, 94, 73,139,184,128,201,163, 77, 12, 79,108, 7, 19, 54, +139,225, 18, 36,248, 38, 2,179,228,140,140, 66,154,166,159, 25,194, 73,211,116, 84, 82, 82,146,192,214,198,146,173,172,208,148, + 11, 56, 12, 47, 37,234, 65, 98, 11,191,246,174, 0,160,138,186,119,149,223,186,141, 32, 37, 55, 95,228,236,236,108, 16,103, 69, + 69, 69,116,102,102, 38,203,214,214,150,157,154,158,113,202, 92, 44,178, 54, 53, 55,239, 8, 0,218,178,210,123,164, 90,157,207, +226,176,109,243, 11, 11,139, 42, 42, 42,146, 12,173,123, 66, 66, 2,219,222,222,134,117,238,194,229,211,182, 66,190,141,132,199, + 54,229, 19, 4, 33,100, 17,114,174,158, 46, 48, 17, 10,109,146, 51, 50,138, 24,134,169,215, 66,184,182,100,252,176,202,235,181, +236,112, 45,110, 60,122,244, 8,127,220,120, 6, 17,163, 1,161, 42,197,133, 61,187, 48,110,254,162,183,246,251,107, 76,108,189, +145, 53,107, 71,155,200, 87,248,145,221,136, 35,252,184,113,227,150, 29, 56,112,160,198, 1,229,217,179,103,232,217,179,103,245, + 50, 7,250,246,237,139,128,128, 0, 60,123,246, 12,110,110,110, 8, 15, 15,231,179, 88, 44,254,248,241,227, 87,255,250,235,175, +103, 27,181,251,239,220,137, 41, 83,166,212,229, 88,157, 0, 64, 69, 72, 61,202, 23,174,221,103, 85, 84, 88,128,188,252,156,104, + 67,219,129, 32, 8, 76,154, 55,175, 96,135, 70,131,131,119,239, 98,130, 72, 36,220, 27, 31,143, 1, 1, 1,240,238,217,179,192, +144,190,174,218,170,163, 82,169,192,225,112, 96,106,106, 10, 75, 75, 75,112,185, 92,176, 56, 50,176,121, 62, 32,185, 92,248,117, +245,193,250, 47, 69,202,137,253,176,153, 32, 80,194,231, 33,138, 43,172,215, 87,135, 16, 53,195, 80,134,129, 92,153,142, 43,213, +130,196,172, 57,204, 56, 18,206,133,169,219, 60,204, 77,109,184,248, 99,115, 42, 46,108,203, 56,174,202,193,226,170,182,160, 27, +152, 72,120,155,155,155, 35, 61, 61, 29,105,105,105, 79,209,176,131,191,242,217,179,103,137,124, 62,223,211,218,218, 26, 0, 92, +234,155,152,211, 52, 93,227,135,181,255,224, 81, 43,223,110,174, 38,239,119,241,196,190,211,171,240,105,240,102,112, 88, 4, 40, + 74,139, 31, 55, 14, 4,165, 46, 71,240,224,143,137,238,189,221,124, 46,157,214, 76,213, 85, 20,239,122,109, 34,192,198,202,255, + 27,115,203,156, 47, 38,189, 65, 19,230, 86, 86, 54, 34, 46,151, 11, 75, 83,123,205,162,233, 95,100, 51, 12, 83,243,220,112, 88, + 92, 29, 89,102, 81, 81,152, 83, 46, 48,231, 84, 0, 12,217,226,205,162,217,188,123,100,100,100,204,238,214,173,219,234,178,178, +178, 98,133, 66, 49, 14, 0, 92, 92, 92,154,147, 36,201, 7,208,208,234, 72,115,212, 29, 22,130,251,248,241, 99, 72, 36, 18,100, +102,102,214, 54,190,128,166,233,191,205, 38,128,191, 41,252, 0, 68, 1,176, 7, 48, 0,181,194, 59,144, 85,166,186,238, 97, 97, + 97, 76, 88, 88, 88,247,154,193,139, 97,104,125, 81, 17, 24,117,101,219,114, 56, 28, 6, 64,237, 29, 77, 66,115,115,115,130,227, +232, 8,130, 95,233,250,193,188,195,173,175, 58,157, 97,161,101,104, 10, 44, 16, 90, 48,181, 38, 45, 10, 19, 2,171,172,122, 97, + 54,111, 9,114,120,230,181, 71, 58, 64,207,128, 2,205,106, 98,113, 24,133, 66, 1,189, 94, 47,109,217,178,229, 25,189, 94, 47, +173, 26,220,152,255,214, 21,165, 40, 42,145,197, 98, 97,230,204,153,168,182,254,104, 52, 26,228,228,228, 64,173, 86, 67,163,209, + 32, 41, 41, 9,165,165,165,208,104, 52,120,242,228, 9, 92, 92, 92,192, 98,177,236, 27,232,204, 25,134, 97,224,228,228,132, 22, + 45, 90,128, 69, 48,248,101,221, 82,124, 51,103, 6,198,184,208,216,189,245, 71,244,232,209,163,141,179,179,115, 32,155,205,166, +236,236,236,184,161,161,161,167, 40,138, 26, 10,195,123,158,179, 11, 23, 46,108,209,182,109, 91, 27,115, 83,137,142,207, 99,129, +167, 83, 48,124,117, 33,195, 86, 22,192,201,169,185, 30, 2,161,219,132, 9, 19,168,250,172, 16,117,113,126,249,229,151,246, 30, + 30, 30,102, 82,115,137,130,199, 97,229,113,193, 20,148, 62,186,127, 7, 0,120,214, 54, 42,152, 8, 61, 39, 78,156,168,111, 10, +231,146, 37, 75, 92,172,173,173,205, 73, 48,101,148, 86,251,159,245,118,181,166,144,224,112, 42,192,229,181,159, 53,107, 22,209, + 20,206,175,190,250,202,217,211,211,211,220,220, 84, 84,206,230,176,178,185, 52,157,109, 2, 58,135,163,209, 22,155, 88, 91, 41, + 33, 20,251, 77,152, 48,161, 94,206,106,107,214,130, 5, 11,210, 95, 17,222, 40, 42, 42,130, 42, 39, 6,220,204, 88,248,136, 57, +240,183,150,130,207,231,215,108,125,175,239,118,173,207, 71,171, 46,177,101,232,185,237,151, 55,176, 4,184,163, 77,228,171,113, +179,178,178,178, 96,111,111,223,224,243,244,235,175,191, 46, 10, 10, 10,202,235,219,183,175,230,204,153, 51, 32, 8, 2,225,225, +225,200,204,204, 68,223,190,125,193, 48, 76,245,174, 54, 68, 71, 71,163,119,239,222,154,110,221,186,101, 86,197,215,106, 20, 83, +166, 76,129, 78,167, 67,121,121, 57,138,138,138, 16, 22, 22, 6, 31, 31, 31, 70, 40, 20, 14,103, 57,245, 89, 21, 60,117, 81, 39, +175,118,190,216,182,121,189,134,199,230,172,109,202,243, 74, 16, 4, 38,126,249,101, 65,169,159, 95,209,126,133, 66, 57,201,212, + 84,216, 50, 61,221,226,193,249,243, 86, 90,173,214, 32,142,106,171,142,163,163, 99,141,200,226,114,185, 96,243,172,193, 18,121, +131,103,217, 23, 66,187,225,184, 18,197, 87,155,137,112, 66, 34,198, 57,145,121,253,161, 29,132, 78, 88,213,105,180,125,104,231, + 49,246,151,133,205, 16, 82, 53, 30,144, 12,155, 8,157,252,163,123, 75,235, 22, 2,220, 62,154,131, 11,219, 50,126, 87,229, 96, + 41,128,248,198,158,115,173, 86,171,162, 40, 10, 36, 73,130,205,102,215,246, 9,188,249,251,239,191,227,193,131, 7, 64,173,176, + 61,101,101,101, 20,139,197,130,137,137, 9, 0,136, 27,232,239,192,225,112,192,225,112,112,245,206, 53,203, 49, 35, 6, 18,183, + 30, 94, 68,103,159,177, 40, 44,215, 34,183, 84,139, 18, 37,208,214,127, 49,188,122,159,192,163,164, 50,248,182,243, 98,177,120, +162,137,117,241,169,146,145,174, 72,195,200,194,167,116, 43, 77,134,224,143,219, 39,159, 61,189,118,236,209,147, 67, 63,157,142, +239,228,223, 77, 81,101, 76, 64,121,121, 57, 67, 16, 4,243,197,180, 69,137,251,167, 20, 83,155,199, 61,162,217,106,147,132,191, +176,171,111,110,109,109,125,203,210,210, 50,188, 74, 28, 53,151, 72, 36, 55,237,237,237, 99, 81,185,209,227,100,118,118,182,135, + 66,161,232,140,202,205, 89,169,133,133,133, 61,171, 44, 79,169, 13, 88,194, 66,228,114,249,231, 20, 69, 13,174, 58,250, 81, 20, +229, 27, 23, 23,231,233,235,235,251,212,213,213, 53,218,213,213,245, 15, 87, 87,215, 83,174,174,174,167,130,130,130, 54, 86,135, +123,248,147,151, 13, 95,211, 34,255, 48,161,133, 42,145,181,179,234, 21, 53, 66, 11,192,213, 87, 29,208,244,124,254, 19,253,103, +159,193,252,212, 41,112,226,226, 48,121,226, 68, 83,161, 80,184, 25,149, 49,154, 58,139,197,226,109, 75,151, 46,149, 88,173, 89, + 3,217,181,107, 72, 9, 11,131,142,195,185,255, 38,165,171,168,168, 0,155,205,174,177,196,136, 68, 34, 80, 20,133,186, 76,190, +175, 61,128,122,220,206,204,141, 5, 15, 45, 64,131, 41, 63, 39,239,118,119,108,226, 98,155, 48,185,139, 91,188,130,235,182,220, +186,163,205,230,230, 93,238, 42, 8,118, 57,207,220, 4,105,105,233,160, 64, 55,105,189, 89,165, 82,149, 42, 20, 10,248,250,250, + 90, 62,120,240,160,165,143,143,143, 69,213,231,247,222,242,194, 4,202,100,178,163, 14, 14, 14,201, 50,153,236, 40,128,192, 38, +156, 27,114,253,250,117,176, 88, 44, 44, 93,186, 20,101,101,101,208,106,181, 40, 44, 44, 68, 90, 90, 26, 52, 26, 13, 50, 50, 50, +240,252,249,115,104, 52, 26,164,164,164, 64,173,110,124, 66, 66,211, 52, 76, 77, 77,161,170, 40,199,207,171,190,193,146, 5,115, + 81,154, 16,137,140,172, 92,152,155,137, 48,123,246,108,150, 84, 42,165,105,154,110, 65, 81, 84,111,154,166,183, 27,114,157,106, +221,111, 55,156,156,156,188,214,173, 91,231,249,205,170,237, 92, 83,118, 57,195,151,152,208, 60, 9,159,225,181,233,136, 41,139, + 55,115, 55,109,248,225,197,237,219,183, 51, 97, 88,240, 78, 18,192, 13, 63, 63, 63,247,204,204, 76, 31, 15, 15,143,214, 86,205, +157,249,124,123,135, 18,174,125, 51, 57,163, 86,221, 37, 28,154,117,221,190,125,123,204,205,155, 55,179,154,194, 41, 18,137,218, +236,219,183,207,203,214,214,214,139, 35, 16,152, 40, 75, 75,143,232,149,138,163, 44,115,169, 9,105,106,222,239,196,137, 19,145, +199,143, 31,207,105, 10,167,155,155,155,199,170, 85,171,218,122,123,123,183,181,115,105,201, 23, 56, 56, 21,154, 56, 54, 47, 20, +120,251,240,225,216,226,131,109,219,182, 69,223,190,125,219, 32, 78, 22,139,165, 39, 73, 18, 28, 14, 7, 66,161, 16,231,206,157, +195,103, 83,199,194,201,193, 18,173, 61, 60,208,235,211,207,113,252,248,241, 26, 31, 30, 22,139, 85,239,136,190,119,205,236,211, +126,246, 68, 36,118,180,137,196,142, 54,145,126,246, 68,100,189, 98,171,234,239,117,125,199,160,222,168,158,229, 70, 3,196,214, +217,171, 87,175,126, 63,105,210, 36, 94,255,254,253,113,247,238, 93, 76,153, 50,229, 70,104,104, 40, 0,224,238,221,187,248,226, +139, 47,110, 92,190,124, 25, 51,102,204, 64,207,158, 61,121,215,175, 95,223, 6, 3, 98,255,232,245,122,236,222,189, 27,122,189, + 30, 98,177, 24, 22, 22, 22, 24, 56,112, 32, 98, 98, 98,102,236,217,179, 39,150,197,225,124, 56, 96,240, 8,156, 57, 21,138,231, + 79, 98,102,236, 93, 61,190,201, 65,129, 73,146, 68,255,137, 19, 11, 10,218,182, 45,218, 43,151, 43, 63,146, 74,133, 30, 57, 57, + 22, 87,142, 30,181, 50, 64,168, 17, 20, 69,213,136,171,106,209, 81,125,176,121,214, 96,139,188,192,150,248,227, 81, 60, 87,199, + 13, 64, 20,207, 31,207, 26,138,159,197,225,145, 83,134,127,227,130,225,223,184, 96,200,124,231,201,194,102,248, 69,212, 12,159, +244,159,211, 34,200,213,223, 12,242, 60, 45,194,126, 76, 73, 85, 21, 98, 13,128,231,134, 60,231, 52, 77, 63,205,204,204, 4,143, +199, 67,179,102,205,220, 1, 84,251, 5,134, 76,155, 54,109,214,242,229,203,231, 2, 88, 94,245,153, 56, 40, 40,168,109,121,121, + 57,226,226,226, 0,224, 65, 3,214,224,154, 93,134, 69,242, 20,190,179,204, 27, 62,109,166, 67, 42,109,135,204, 34, 13,178,138, + 52,248,229,231,161,136,188,190, 18, 15, 46, 76, 64,106, 78, 14, 4,118,195, 64,233,213, 94, 6, 76,234,101, 15, 31, 62, 36,174, + 95,191, 78,208, 52, 13,157, 78,199,148,201,229, 76,212,141, 27,168,136,136, 32, 76, 77, 77,137, 46, 29,186,149,239, 93,121,230, +222,137,173, 55, 30,104,149, 77,158,168,191, 13,150, 36, 38, 38, 6, 30, 61,122, 52, 8,192, 18,111,111,239,219,105,105,105,157, +174, 93,187,214,218,209,209,113,243,155,146, 86,135,133, 72, 73, 73,121,233,168, 10, 11,161,169, 18, 13,253,171,196,220, 16, 0, + 95,224, 45,118,217, 55, 1, 87,255,193,206,240,103,240,202,110,195, 87,133, 86,237, 64, 97,112,149, 74, 37, 58,157, 54,227,226, +197,139, 90,146, 36, 33, 20, 10, 49,105,202, 20,242,231,159,126,234, 58, 54, 48, 48,252,227,247,223,255, 35,252,242,101,191,128, +128, 0, 48, 12, 3,146, 36,113,248,240,225, 10,149,170,162,208,201,201,201,220,144, 78,163,246, 3, 36,151,203,107,132, 86,105, +105, 41,108,109,109, 13, 94, 58, 84,200,113,233,242,185,200, 98,134,250, 52,173,127,252, 6,237,218,156,161, 1, 37, 52,197, 46, +165,116, 40,173, 96, 80,166, 2,251, 46,105, 17, 48,201,109,152, 54,169,119,192,243,136,216, 91,133, 42, 74,213,164,221, 18,121, +121,121,223, 4, 7, 7, 23,218,219,219, 19,166,166,166,112,112,112, 32,135, 12, 25, 82,144,158,158,190,252, 77,175,136,165,165, +229,152,160,160,160,211,153,153,153, 35, 35, 34, 34, 90, 92,187,118,109,100, 80, 80,208,105, 75, 75,203, 49, 6, 82, 28, 89,180, +104,145,130,199,227,161, 99,199,142, 40, 43, 43, 67,213, 46,159, 6, 15, 67,150, 72,185, 92, 46,118,172,251, 14, 75, 22,204, 69, + 81,236, 93, 60,186,113, 17, 87,115, 8, 44, 94,245, 3,184, 92,238, 27,197,250,106,101, 45,244,246,150, 73,158,125, 49,101,116, +214,194, 5, 11, 36,209,209,209,156, 89,115,190, 96, 82,178,139,192,235,191,158,133,238,223,144, 15, 21,214, 24,208,175, 23,150, + 46,153,231, 93, 21,180,179, 65,180,177, 22,122,123,201, 36, 79,231,125, 60, 54,113,206,156, 57,130,181,107,215,170, 2, 3, 3, + 43,114,115,115, 5, 34,169,133, 7,219,204,220, 43, 37, 59, 71, 28, 24, 24,152,244,233,167,159,150, 52,149,115,241,226,197,194, +243,231,207,179,131,131,131,245,197,197,197, 98,142, 64,224, 75,240, 77, 58,228, 23, 23,155,141, 12, 14,142, 31, 57,114,164,178, + 42, 96,169,193,156,223,126,251,173,240,249,243,231,236,192,192, 64, 93, 78, 78,142, 68,100,105,229,195, 50,183,240, 79,206,206, + 53,237, 16, 16,144, 48,107,214, 44, 69, 67,229,172, 45, 82, 36, 18, 73,102,231,206,157,241,227,143, 63, 98,211,166, 77,248,224, +131, 15, 16,243, 36, 6, 3,102,205,133,231, 39, 95,224,212,173, 59,200,204,204,196,138, 21, 43,224,227,227, 3, 46,151,251,188, +206,231,113, 70, 44, 17,157, 3, 34, 58, 7, 4, 49, 35,150,168,126, 95,175,101,107,121, 41,106,127,191,174,239, 61,248,182,110, + 75,151,159, 61, 17,217,144, 31, 86, 99, 98,107,228,200,145,159, 85,135,112,248,232,163,143,110,108,222,188,185,203, 71, 31, 85, + 78,180, 59,118,236,136,149, 43, 87,118, 89,188,120,241,141, 85,171, 86,161, 87,175, 94,112,117,117,109,116,227, 11, 69, 81,208, +235,245, 24, 59,118, 44,244,122, 61,242,243,243,241,226,197, 11,236,220,185, 19, 12,195,152, 0,128,189,204,177, 61,143,199,195, +195,168,251,202, 37, 31, 5,252,218, 4, 75, 22, 81,123, 18, 83, 94, 94,142,145,159,124, 82,144,209,170, 85,209,246,130, 2,229, + 84,169, 84,232,156,154,106, 33,209,104, 28,208,128, 95, 34, 65, 16,160,105,186, 70, 88, 85, 11,174, 87,143,170,129,210, 32,104, +149,244,217,107, 7,178, 0, 0,221,198,203, 48,100,190,243,100,123, 55,225,150,174,227, 42,141,222,199, 87, 38, 50,101, 89,212, + 90,232,240,180, 9, 22,235,187,119,239,222,133,185,185, 57,130,131,131,249, 36, 73,174,169,158,175,162, 50,118,214,134,106, 46, + 62,159,191,126,194,132, 9,100, 73, 73, 9, 30, 61,122, 4, 0,151,235,235,151, 24,134,169,169,123,121, 17, 1,138,230,225,102, +212, 57, 92,184,118, 12,201,153,249, 72,205, 83, 1,108, 51,168, 20, 25,208, 86,100, 66, 83, 18, 5,185, 90,104, 80,129,185, 92, +110,190,183,183, 55,227,239,239,207, 48, 12,131,132,132, 4,125, 74,106,170,254,254,198,141,204,227,233,211, 9,201,139, 23, 92, +129, 64, 64,184,184,184,192,196,196,132, 54, 49, 49, 41,252, 11, 7,239, 63, 37,220,194,159, 16, 22,226, 93, 90,181, 24,252, 51, +145,141,151,119, 27,214, 4, 48,173, 43, 96, 41, 24, 83,193,232, 99,219,126, 54, 11, 30, 59, 94,225,227,227, 35,117,112,112, 0, + 65, 16, 24, 58,108, 24, 17, 20, 17, 33,225,200,100,176,124,239,189,154,229,136, 75, 23, 47,226,220,185,115,138, 51,191,159,112, +152, 50,117,234, 32, 0,251, 26, 40, 12,155,207,231,215,252,110,118,118, 54,248,124,126,141, 79,132, 92, 46,135,181,181, 53,178, +179,179, 97,224,202,220,254,133, 11,238, 44,200, 11,248,198, 37, 64,194, 33,254, 80,228,128, 98, 24,112, 8, 10,168, 96,160,163, + 0,181,142, 65,123,103,150,197,133, 10,189, 52,236,110,104, 18,128,253, 77,105, 61,181, 90,125, 37, 58, 58,229,226, 60, 97, 0, + 0, 32, 0, 73, 68, 65, 84,122, 58, 77,211,199, 0,144, 17, 17, 17,244,211,167, 79, 63,131,225,142,235,175,155,237,133,194,249, +225,225,225, 22,243,231,207, 47, 14, 11, 11, 43, 29, 56,112,160,217,206,157, 59, 45,122,246,236, 57,191,176,176,240,144, 33,134, +192,180,180,180,125,233,233,233,159,249,251,251,163,168,168, 8, 90,173, 22,145,145,145,112,115,115,195,131, 7, 15,224,238,238, +142,251,247,239,163,117,235,214,160, 40, 10, 42,149, 10, 52, 77, 83,141,117,230, 69, 5,249, 64, 97, 26,178,238,254,129, 23,143, + 35, 17,158, 69, 96,235,161,211,104,214,194,229,141,226,212,184,219, 8,219,218, 91, 91, 94, 88,187,236, 91,155,148, 43,135, 17, +186,123, 43,125,245,143, 63, 60,121, 18, 76,239, 62,246,243, 17, 26, 29,154, 3,224,117, 10,240, 71,127,233,115, 74,216, 2, 57, +225, 79, 27, 14,176,232,110, 35,108,107,107,101,121,254,255,214, 44,151, 36,156,219,139, 35, 59,126,100,142, 31,248,205, 71, 5, + 4,180,109,219,182, 63, 73,146,230, 0, 84, 85,126, 94, 6,165,182,169,139,243,210,233,211,126, 42, 32,224,228,201,147,253,133, + 66,161, 29, 0,157, 82,169, 76,124, 27,206,203, 97, 97,126,213,229, 36, 8,194, 6,128,150, 97,152, 4, 52, 49, 5,207,168, 81, +163, 86,126,241,197, 23, 11, 40,138,178,174, 53, 59,103,173, 95,191,158, 77,211, 52,139, 97, 24, 45, 73,146,218,243,231,207, 83, +122,189, 62, 75,165, 82,125,242, 54,189,200,136, 17, 35,112,231,206,157,101,168,220,132, 97,168,181,250, 37, 63,173,170,148, 61, +111,204, 31, 17, 17,177,226,195, 15, 63, 92,120,232,208,161, 23,155, 55,111, 30, 60, 99,198, 12, 28, 62,124, 24,173, 90,181,194, +195,135, 15,241,205, 55,223, 0, 64,151,197,139, 23,159, 10, 9, 9,113, 77, 73, 73, 89,111,128, 69, 3,122,189, 30,191,253,246, + 27,134, 14, 29, 10,107,107,107,200,100, 50, 16, 4,113,101,234,212,169, 63, 1, 0,139, 96,113, 1, 64,173, 82,171, 61, 60,252, + 13,182,224,114,185,220,154,190, 46, 39, 39,167,102,167, 96,159, 15, 63, 44,248,101,237, 90,252, 90, 81,129,169, 82,169, 48,195, +209,209,254, 84, 66,194,199, 79, 42, 59,103,166, 33,171, 78, 99, 34,203, 80,151,134,138,108, 44,250,125,117,178, 29,128, 15,186, +141,151,161,219,120, 25,252,135,216, 16, 36,139,192,227, 11,133,136,185, 84,116, 92, 39,199, 21, 52, 45, 93,206,211, 53,107,214, +156,234,222,189,251,224, 54,109,218, 96,218,180,105,159,238,222,189,155,171,211,233,230,224, 63, 97, 30,204, 72,146, 92,190, 99, +199,142,143, 45, 44, 44,112,253,250,117, 92,187,118,237, 10,128,180,250,250, 37, 0, 53, 49,179,154, 57,185,171,158,167,148, 11, +243, 50,111,226,198,245,223,209,202,231,115, 8,236, 6,193,194, 99, 21,180,177,155,160, 41,188, 0, 11,167,129,200, 72, 73, 0, +139,205,143,105,204, 9,133, 97,152, 39, 25, 25, 25,174,174,174,174, 68,114,114,178, 30, 0, 67, 81, 20,163,237,218, 85,231,185, +118, 45, 39,230,211, 79,137, 78,207,159,179, 24,130,160, 35, 35, 35, 1,224,217,127, 99, 20,175, 14,183, 16, 19, 19, 83, 95,184, +133, 38,193,219,219,187,203,181,107,215,248, 42,149, 10, 87,175, 94, 69,135, 14, 53,123,187,254,171,209,239,107,107,145,127, 24, + 62,174,227,179,157, 47, 89,180, 94,186,177,105,130,211,218,221,157,226,146,216, 51,116,208, 32,101,116,116,116,205,172, 79,117, +239, 30, 20,231,206,129,162, 40, 48, 12,131,107, 17, 17,152, 48,126,124, 57,135, 69,252,226,236,220,130, 33,152,151, 98,183,244, +174, 99,246, 16, 28, 28, 28, 92,211,249,164,167,167, 67, 36, 18,129,199,227,129,166,105,232,245,122,176, 88, 44,152,153,153, 65, +175,215,215,101,130,121,149, 83, 71, 21, 41, 70,134, 12, 24,151, 45, 43,215, 50,211,205,157,209,156, 43,168,121, 56,237, 76, 9, + 12,246,225,192,138,157,199, 92, 94,255,126, 22,173, 46, 28,137,215,119,116, 53,182,229,223,189, 93,187,118, 63, 77,152, 48,129, + 4,128,222,189,123,147,237,218,181,219,130,134, 83,229, 52,200,105, 98, 98,194, 7,128,211,167, 79, 23,189,120,241,226,131,211, +167, 79, 23,213,254,220, 64,206,157,235,214,173,131, 80, 40,132, 94,175,135, 70,163,169,241,207,170,253,170,213,106, 97,101,101, +133, 51,103,206,128,162,168, 51,141,149,211,169,121, 11, 16,214, 45,177,239,116, 56,174, 21,112,223, 68,100,213,112,182,180, 19, +181,182,179,178,188,248,127,171, 87, 88, 23,199, 71, 34, 35, 35,131, 57,127,238,204,109, 21,144, 89, 90,134, 37, 37, 10,180,174, +208,192,164,131, 43,210, 46,238,248,154, 89,220, 13, 58,212,189,107,176,134,211,211, 78,212,218,193,218,242,252, 15,255,183, 90, + 82, 18, 31,137,236,156, 28,156, 61,115, 58, 90, 5, 84, 47, 55, 78,166,105,218,139,166,105, 47, 0,147, 27, 16, 47, 77,226, 84, + 42,149,222, 74,165,210,251, 93,114, 50, 12,227,205, 48,140,193,156,181,125,162, 54,108,216, 16,155,157,157, 61, 33, 47, 47,175, +111,245, 81, 92, 92,220,187,188,188,188,135, 82,169,236, 90,177,161,133,153, 82,169,180, 41, 47, 47,183, 87,169, 84,237, 1, 68, + 54,225,158,175, 65,237,168,211,217,217,217, 75,179,179,179,137,198,202,201,250, 36,150, 56,248,195,188,223,119,236,216, 97,255, +150,252, 47,149,179,160,160,224,216,161, 67,135,124, 93, 92, 92, 92, 39, 79,158,140,237,219,183, 99,243,230,205,106, 0, 8, 9, + 9, 81,215,178,100, 57,165,164,164,248,215,179,108,216,187,150,181,100,127,159, 62,125,152,107,215,174, 97,232,208,161, 53,129, + 68,119,237,218, 5,189, 94, 47,239,213,171, 23, 13, 0, 21, 42,165,156,161, 25,104,180,245,174,191,191,214,158, 60, 30,175, 95, +237,120,129,213,193,152,121, 60, 30, 24,134, 65,235, 46, 93, 10, 74,124,124,138,118,151,150, 42,151,122,123,155,126,236,225, 49, +185, 13, 48,190, 46, 78,130, 32, 94,178,234,188,122, 52,193,146, 85,187,156,121, 21, 89,152,246,251,234,228,115,213,150, 45, 19, + 49, 27,170, 50, 61, 78,172, 77,206, 87,229, 99, 87,125,226,167,161,186, 23, 21, 21,205, 90,187,118,173, 90, 42,149, 98,196,136, + 17, 88,181,106,213,212, 46, 93,186,148,218,216,216,220,105,213,170,213,227,209,163, 71,103, 71, 70, 70,206, 10, 10, 10, 66, 92, + 92, 28,126,248,225,135,146,226,226,226,113, 13,113, 18, 4, 81, 99,201, 27, 50,160,119,209,207, 91,126,164,123,117,255, 12, 66, +129, 41,116, 28, 39, 20,149,235, 80,172, 96,160,225, 7,128,199,229,163,111, 96, 91,220, 57,191, 87, 73,105, 20,251, 26,187,231, +203,203,203,143, 79,154, 52, 73,206,229,114,161,209,104, 24, 14,135, 3,126,165,223, 49,205,249,224, 3,109,167,167, 79,245, 20, +195,208, 4, 65,224,203, 47,191, 84, 20, 23, 23, 31,122,147,231,168, 9,168,205,249,174,194, 45,244,126,101,252,121, 23, 97, 33, +254,140,186,255,147,177,179,142,227, 63, 22,173,234, 45,149,213,175, 4, 65, 83, 20, 69,195,217,197, 89,146,146,156,182,117,212, +168,224,143,250,247, 31, 32, 28, 48, 96,128, 73,219,216,202,217,232,233,211,167, 17, 26, 26,170,188,112,225,130,156,207, 97,133, + 56, 53,115,178,165, 40, 26, 4, 65, 55,168,134, 37, 18,201,156, 69,139, 22, 9, 74, 75, 75,177,121,243,102,218,215,215,151, 20, +137, 68,208,106,181, 8, 9, 9,209,181,109,219,150, 67,146, 36, 74, 75, 75, 65,146,228,115, 3, 43,248,168, 52, 45,179,239, 79, + 65,195, 67,253,103, 78,177,244, 12,234, 36,237,225,228, 0,221,123, 12,178,210,147,241,226,242,133,226, 39,231, 55, 22, 66,149, + 59, 28,141,167, 7,170,107, 32,248,238,194,133, 11, 54,179,102,205, 98, 84, 42, 21,145,150,150,198,172, 94,189,218,102,218,180, +105,223,101,101,101,141,121,195,139, 66,148,148,148,128, 32, 8,186,170, 35,169,158,245, 55,101, 93, 46,102,223,190,125, 39,135, + 13, 27, 54,164, 87,175, 94,136,141,141,173, 89, 34,172, 45,180,170,119, 31,174, 89,179,166, 4,192,194,198, 72, 57, 28, 14, 54, +239, 59,134,146,226, 2,216,218,202, 96, 34, 16,224, 77,119, 88,242, 72,114,233,247, 43,190,181, 41,120,118,135,136,185, 29, 78, + 31,125,148,155,167,167,152,186, 35,254,151,101, 49, 85,234,191,225,217, 12,201, 90,250,253,234,229,102,213,203,154,135,162,178, +229, 4,197,204,122,171, 71,228,159,194,249, 23, 67, 38,147, 33, 59, 59,155,144,201,100, 76,149,143, 22,211,128,208,122,249, 6, +175, 92, 46, 35, 26, 90, 54,124, 83,254,164,164,164,213,239,189,247,222,188,184,184,184,163,158,158,158, 51, 0, 52, 83,171,213, + 37,139, 23, 47,254,191,144,144,144,143, 12,177,100, 1,192,225,195,135, 55, 78,153, 50,229,220,160, 65,131,190,166,105,186, 93, +173,129, 61,201,198,198,166,102, 9, 55, 63, 55,103,193,244,143,198, 46, 40, 47, 47, 54, 56,206,157, 88, 44,254,120,241,226,197, + 38, 10,133, 2,219,182,109,163,219,182,109, 75, 86, 79,138, 14, 28, 56,160,119,119,119,103, 7,127,246, 89,193,134,156, 28,172, +188,126, 93,177,192,203,203,119,247,139, 23,237, 65,211,251,235,179,234,212,101,201,170,118,187,120, 67,100, 85,137,173, 93, 0, + 62,232, 52,202, 14, 39,215, 37,163, 56, 69,243,127,208, 35, 1, 6,164, 5,170, 3, 25,199,143, 31,239,155,155,155,123,242,219, +111,191, 53,107,223,190, 61,188,188,188, 56, 98,177, 56,160, 58, 92, 76,105,105, 41, 46, 93,186,132,237,219,183,107,158, 60,121, + 50,172,161,229, 42,138,162,242,220,221,221,171,219,129, 33, 8,162, 80,174, 38,204,142,180, 9, 16, 79,158,126,148,184,113,255, + 22,178,180, 52,212, 58, 26,206, 46,126,232,241,193, 6,156,250,227, 49,149,149,242,244,169,174,162,248, 23, 3,202,155, 16, 31, + 31,127, 98,197,138, 21,163,190,254,250,107, 65, 65, 65, 1,165, 86,171,233, 99,199,142,177, 38, 79,158, 76, 49,108, 54,205,101, +179, 49,103,206,156,138,146,146,146,223,129,191, 52,193,244,159, 18,110,225, 79, 8, 11,241,206,172, 89,181, 95,255, 87, 80,231, + 19, 74,179,200,155,219,119,252,220,239,240,111,135,236, 88, 44,210, 46, 33, 49,241,254,224,225, 35, 51, 47, 94,188,104,193, 53, + 51,235, 0,128,214,204,152,113, 91,171,174, 40, 10, 59,121,178,185,179,115, 11,159,170,164,210, 12,205, 34,111, 54,244,131,229, +229,229,138,235,215,175, 43, 23, 46, 92, 72,164,167,167, 31,180,181,181, 29,253,199, 31,127,136,135, 15, 31, 94, 17, 27, 27,123, +220,206,206,110, 72, 80, 80,144,100,222,188,121,234,242,242,242,166, 36, 30,125,202,228, 23,183,185,247,237,250, 15,239,173,251, +249,125,176, 89,157,161,230, 0,180,238, 38,180,101, 23, 1, 28, 68, 19,226, 29,213,134, 72, 36,242, 17, 10,133,136,142,142, 46, + 14, 8, 8,208,168, 84, 42,238,170, 85,171, 44, 69, 34,145,207,155, 54, 60,195, 48, 76,113,113, 49,104,154,102, 3, 32,170, 94, + 65, 55,125, 47,254,152,193,131, 7,159, 60,114,228, 72,159, 1, 3, 6,192,213,213, 21, 58,157, 14,238,238,238,208,104, 52,112, +115,115,131, 90,173,198,178,101,203, 80, 90, 90, 58, 23, 13,228, 60, 35, 8, 2,122,189,190,198,217,214,193,177,121,101,156,158, +183, 8, 99, 33,226,144,174,207,195,118, 35,175,176,128, 62,242, 48, 55, 87,169,165,250,198,231, 43,159,188,250, 61, 37, 5, 69, +208,228,217,153, 0,160,166, 27,206, 56, 47,226,193,245,197,153, 93,200,205, 43,192,225,168,236, 18,133,150,254,224, 69, 29,156, + 77, 42,231, 63,132,211,111, 89, 44, 70,206, 54,252,187,111, 3, 67, 5, 85,125,136,206, 1,241, 64,184,155,193,142,221,117,198, +200,122, 75,254,147,113,113,113, 39, 1,224,233,211,167,233, 99,199,142, 93,144,156,156,188, 2,192,217,148,148,148, 29, 77, 33, +218,189,123,119, 28,128, 41, 13,125,231,208,250, 41, 39, 0,156,104, 10,111, 89, 89,153, 42, 50, 50, 82, 53,111,222, 60, 34, 61, + 61,253, 15, 59, 59,187, 62,231,206,157, 19, 14, 31, 62, 92, 29, 19, 19,115, 89, 38,147,117,235,221,187,183,248,236,221,187,153, +202,132,132,176,176,228,100, 71, 29, 77,135, 53,244,124,190, 99,145,245,146,216, 58,177, 50,249,251,147,223, 39,247,166,213, 56, +174, 41,198,109, 0, 25,111,193,121,237,230,205,155,158,227,199,143, 63, 50,112,224,192, 78,158,158,158,104,214,172, 25, 94,188, +120,129,252,252,124, 60,122,244, 8,167, 79,159, 62,173, 82,169, 26, 77,168, 93, 84, 84,244,122,122, 34, 19, 11,217,222,109, 75, + 79,223,191,209,193,189,235,128, 73, 2, 47, 25, 13,141,150, 65,122,106, 2,150, 45,249, 69,153,157, 26,247, 84,171,215, 14,131, +129, 27,117, 42, 42, 42,118,110,218,180,137, 19, 22, 22, 54, 96,235,214,173,146,230,205,155,179,184, 92, 46, 9,128,121,240,224, + 1, 51,123,246,108, 69, 65, 65,193, 25,185, 92,190,243, 47, 30,163,175, 37, 38, 38,250,177, 88,172,119, 26,110,225, 45,194, 66, + 24,241, 46,225,226,226,232,217,178,185,108,134,107, 51,199,207, 92,154, 59, 77,172,203,201,221, 85, 42,149,184,180,112,248,216, +181,153,227,103, 45,155,203,102,184,184, 56,122, 26, 96, 90,116, 53, 53, 53,253,195,222,222,222, 23, 0,204,204,204,134,152,155, +155, 63, 49, 51, 51, 27, 82, 53, 11, 28, 34, 22,139,159,181,109,219,118,218, 95,104,174,108,144,211,221,221,125,108,121,121,249, +167,238,238,238, 99,171,223, 39, 36, 36,212,188,127, 19, 78, 39, 39,167, 94, 15, 30, 60, 24,179,126,253,250, 17,173, 90,181, 26, +178,122,245,234, 17,191,255,254,251, 24, 71, 71,199,246,111,192,201, 7,240, 43,135,195,201,229,241,120,121, 28, 14, 39,183,250, + 96,179,217,185, 44, 22, 43, 23,192,142,122,172,101,189,107,205,114,110,216,218,218,166,216,218,218,166,216,217,217,165,216,217, +217,165,216,219,219,191,118, 88, 89, 89,221, 48,180, 61, 61,236,196, 93, 2,154, 73,110,122,219,139,111,180,177, 21,121,188,139, +107,228, 97, 39,238,210,161,153,217, 77,111,123,201,245,127, 27,167,175, 29, 24,102,187, 7,195,108,247, 96,124,237,192, 52,246, +254, 93,154,253,237,237,237, 25,123,123,251,165,127,214, 82, 66, 61,252,127,249,243,254, 14, 57, 93, 37, 18,201,161,102,205,154, + 85,247,117,131, 76, 77, 77,175,136,197,226, 65, 85,125,221, 32,145, 72, 20,209,182,109,219, 73,141,113, 90, 88, 88, 60,176,177, +177,201,169, 58,178,109,109,109,179,109,109,109,179,109,108,108,178,108,108,108,178,172,173,173, 51,171, 15,115,115,243, 59,111, + 88,119, 27, 0, 29, 1,180, 7, 96,250, 14,219,211, 5,192,244,170, 62,104, 45,128,105, 0,218,189,131,107, 68,112, 4, 22,159, +240,205,157,110,114,196,214,101, 28,177,117, 25,223,204,241,102, 3, 41,120, 12,225,108,109, 97, 97,177,202,212,212,244,119,137, + 68,114, 93, 34,145,156,180,178,178, 90, 13,160,245,127,233, 94, 18, 3, 8, 65,101,124,166,179,168, 92, 10, 63,137,202, 77, 5, +205,255,134,247,252,191, 25, 31,255,183,126,184,183,145,211,200,105,228, 52,114, 26, 57,141,156,255, 64, 78,210,216,158, 70,161, +213, 68,161,245,234, 1,160,129,200,240, 70, 24, 97,132, 17, 70, 24,241, 47, 6,109,108, 2, 35,154,136, 58,151,150,137, 6, 84, +105, 83, 98, 77,189,137,178,189,100,228, 52,114, 26, 57,141,156, 70, 78, 35,167,145,243, 95,199,105,196, 59,132,209,172,106,228, + 52,114, 26, 57,141,156, 70, 78, 35,167,145,243,127, 29,198,165, 67, 35,140, 48,194, 8, 35,140, 48,194,136, 63, 9, 59,107, 9, +174,151,150, 16,141, 66,171,233, 32, 1,124, 10, 96, 36,128,150,168,204,102,127, 12,192, 79,120,179, 53,125, 83, 0, 11, 0,116, + 70,229,238,156, 36, 0,215, 81,185, 59,167,220,216,220,117,195,202,202,106, 17,135,195, 49, 7, 42, 83,155, 84,191,214,254, 63, + 69, 81, 37,114,185,124,245,159, 84, 4, 22, 12,140,160, 92, 93,214,218,101,171,253,170,211,233,254,204,114, 26,241,247,132,187, +133,133,197,175, 69, 69, 69,227, 80, 43,201,178, 17, 70,252, 47,192,218,218,122,134, 86,171, 93,204,229,114, 87,229,231,231,255, +252, 47,170,250,107, 34,235, 37,161, 21, 22, 22, 22, 1, 0, 3, 7, 14,236, 14, 0,230,230,230,183, 72,146,116,105,202, 47,208, + 52,157, 84, 82, 82, 82,111, 0, 53,115,115,243, 91, 44, 22,235, 53, 78,157, 78, 39, 97,179,217,101,117,157,163,215,235, 51,228, +114,121,251,191, 73, 35, 18, 0,194,164, 82,169,106,197,138, 21, 63,245,232,209,195, 41, 43, 43, 75, 63,127,254,252,110, 15, 31, + 62, 28, 0,160, 95, 19,197, 86, 32, 65, 16,123,125,125,125, 79, 76,156, 56,241, 72, 64, 64, 0,175,176,176, 80,114,236,216, 49, +135,125,251,246, 69,210, 52, 61, 14, 13, 36, 90,253, 55,131,195,225,152,103,100,100, 72,128,202,212, 36, 85,194, 10, 58,157, 14, + 58,157, 14, 10,133, 2, 62, 62, 62,239,252,119,237,236,236,252, 8,130,216, 42, 22,139,219,151,151,151,223, 7,240, 89,118,118, +246,195,166,148, 85,175,215,131, 97,152,154,114,122,122,122, 26, 47,104,211, 48,149,199,227,125,224,230,230,214, 65,173, 86, 23, + 39, 37, 37,221,163, 40,234, 91,188,187, 28,109,102, 0,190,229,243,249, 1, 45, 91,182,116,138,139,139, 75,215,106,181,119, 81, +153, 12,185,244, 93,136,172,238,221,187,223,216,182,109,155,229, 39,159,124,114,227,250,245,235, 93,140, 98,203,136,255, 22,156, +156,156,204, 21, 10,197, 47, 0,252, 56, 28,142,157,137,137, 9, 4, 2, 65, 14,159,207,143, 22, 8, 4, 31,221,188,121,179,164, +169,156, 20, 69,125,155,146,146, 98,215,177, 99,199,117, 54, 54, 54,203, 10, 10, 10, 84, 90,173,246,114,113,113,241, 92, 0,242, +134,206,125, 85,139,252,195, 68, 86,237, 87, 84,139, 46,118, 85,197, 24, 0, 61, 94, 82, 96,108,182, 99,106,106,170,141,137,137, + 9,104,154,174, 25,204, 94, 61,170, 63,215,104, 52,240,242,242,210, 54, 50,224, 56,165,167,167,219,240,120,188,154,207, 52, 26, + 13, 28, 28, 28,232,140,140, 12,155,170,180, 7, 53, 80,171,213,112,116,116,252, 59,229, 60,250,212,194,194,162, 52, 45, 45,221, + 71,165,214, 46,159, 54,107,225,162,113, 35,223,151,222,186,117,139,238,215,175,159, 58, 34, 34,226, 83, 84, 38, 78, 53,168, 51, + 39, 8, 98,223,252,249,243,151,153, 8, 77, 45,195,111, 61, 85,239, 59,118, 38,211,215,221,153,152, 59,119, 46,107,246,236,217, +215,252,252,252,126,165,105,250, 61, 52,193,178, 37,149, 74,207,241,249,252, 22, 85,237,151, 86, 92, 92,220,231,111,120, 67,178, +241,122,240,216,186, 62,107, 20,133,133,133,168,168,168,120,237,240,244,244, 52, 52, 87,102,147,202,205,225,112, 78,174, 89,179, +198, 33, 39, 59, 27, 63,110,216,208, 17,149,150,204,142,134,156,156,151,151,247, 90, 57, 61, 60, 60, 96, 68,147,176, 96,217,178, +101,107, 62,252,240, 67, 80, 20,133,138,138, 10, 89,124,124,124,219,197,139, 23, 15, 75, 72, 72,232, 0, 32,241,109, 39,227,110, +110,110,177,159,127,254,185, 69,135, 14, 29, 80,149,165, 66,118,253,250,245,142, 33, 33, 33, 19,210,210,210, 60, 0,228,191,205, + 15, 88, 88, 88,252,186,107,215, 46, 75,161, 80,136, 83,167, 78, 89,246,234,213,235,122, 84, 84, 84,215,183, 16, 91,164,165,165, +229,108, 0, 61,105,154,230, 1,184, 91, 92, 92,188, 18, 77,143,234,110, 47, 22,139,143,147, 36,233, 12,252, 39, 26, 61, 73,146, + 86, 4, 65, 20, 84,127, 70, 16,132, 13, 77,211,183,139,138,138, 58, 25,111,199,127, 54, 44, 45, 45,167,230,230,230,110,227,243, +249, 92,169, 84, 10,161, 80, 8, 54,155, 13, 54,155,221,140,207,231, 55,227,243,249,253,131,130,130, 62,187,114,229, 74,131, 17, +246, 3,125,109, 39,131, 36,150,179, 8,146, 5, 0, 36, 71,100,106,102,102,134,229,203,151,139,134, 12, 25, 34, 2,128, 27, 55, +110, 76,156, 52,105, 82,175,140,140, 12,175,250,196, 86, 93, 90,228, 31,132,157, 13, 13,120,168, 82,143, 17, 47, 61,185, 36, 9, + 30,143,135, 59,119,238,192,144, 96,229,213, 41, 18, 26,236, 13,170, 34,140, 63,124,248, 31, 3, 64,245, 64,195,227,241,112,243, +230,203, 65,229, 3, 3, 3,107, 30,246,191, 10, 35, 61, 43,131, 60, 30,157, 89, 89,174,224,173,149,209,181,143,206,244, 64,183, + 31, 82, 49,114,246,210,209, 74,149,214, 31,128,162,164,184,184,248,126,104,104,150,175,187, 59,247,255,219,187,238,248,166,170, +254,253,220,123,179,147, 54,109,211,153, 82,104, 1, 41,171,172,150,189, 17, 20, 4, 20,101,190,202,124,193, 34,226, 0, 20, 28, +168, 96, 89,130,240,130,130,140, 10,202, 16, 84,150,108,144, 33, 5,100,183, 8,165,148, 41,148,238, 54, 77,147, 52,105,230,189, +185,191, 63,154,196,180,116, 36,109,202,240,215,231,243,185,159,230,230,222, 62, 57,247,220, 51,158,243, 61,223,243, 61, 63,253, +244, 83,199,122,245,234, 13,119, 67,104,125, 28, 19, 19,179,147, 18,249, 4,140, 27, 63, 97,220, 68, 14,105, 30, 59,249,195, 5, +233,217, 10, 93,108,108,236,174,189,123,247,142, 91,188,120,241,141,153, 51,103,126, 12, 96,182,171,233, 23, 10,133, 17, 55,111, +222,140,100, 24, 6, 45, 91,182,124, 26,183, 49,104,135,146,224,123,111, 0,216,102,251,238,117,148, 68,238,143, 6,112,197, 29, + 50,187, 5,171,188,195,211,168, 87,175, 94,243, 49, 99,198, 4, 40, 21, 10,252,111,249,114,251,215,237, 81,197, 52,162,189,254, +152, 76, 38, 12, 27, 54,108, 12,195, 48, 28,187, 8, 52, 26,141, 38,181, 90,109,192, 63,142,165,249, 0, 94,112, 33, 57,141, 36, + 18,201,215, 0,162,245,122,125, 61, 0,144, 72, 36,153, 86,171,117,183, 78,167,155,141,127, 54,240,117,123,128, 11, 32, 10, 21, +111, 5,197, 46, 90,180,232,246, 39,159,124,114,239, 9,112, 70, 4, 7, 7, 47, 28, 49, 98, 4, 14, 28, 56,128,131, 7, 15, 90, + 68, 34, 17,103,252,248,241,196,212,169, 83,253,166, 77,155, 54, 16,192, 55, 53,124,205, 3,191,252,242, 75, 89,139, 22, 45,176, + 99,199, 14, 92,189,122, 85, 31, 25, 25, 41,234,221,187, 55, 56, 28,142,236,211, 79, 63,125, 9,192,198,154,252,128, 82,169,156, +255,225,135, 31,110,218,182,109,155,247,223,127,255,141, 85,171, 86, 5,140, 26, 53, 42,225,225,195,135,189,220, 16, 91, 2, 0, +239, 1,232, 67, 81, 84,143,241,227,199,211,239,190,251, 46,151, 36, 73,203,242,229,203, 3, 55,108,216, 48,138,203,229, 70, 23, + 20, 20,184, 50, 72, 35, 1,196, 77,156, 56,241,191,127,252,241,135,223,197,139, 23,249,254,254,254, 96, 24,198, 97, 41,182, 90, +173, 65,246, 50, 75,211, 52,154, 55,111, 30,230,244,255,162,103, 85,104,144, 36,105,182, 90,173, 92, 0, 66, 0,198,170,206,255, + 77, 34, 75, 38,147, 77, 81, 42,149,171, 67, 66, 66, 16, 28, 28,252, 72, 95,107, 52, 26, 33, 20, 10,121, 33, 33, 33,223, 15, 25, + 50,132,187,103,207,158, 10,167, 0, 9,138,248, 98,239,207,243,234,201,252,188, 1, 0, 43,214, 30, 41, 6,128,223,126,251, 13, + 89, 89, 89,240,243,243, 67,171, 86,173,168,121,243,230,201,103,204,152,241,191,194,194,194,137, 21,113,149,213, 34,207,152, 69, + 43,190,188,243, 74,125,180, 88,150,117,236,147,231, 98,161, 45,251,213,177, 50,124,132,201,100, 66, 89,139,150,189,242,114,185, +220,178,230, 71, 16, 4,193, 86,198, 89, 14,198, 75, 36,146,182, 58,157,110,165, 27,163, 91, 7,231,246,119,154, 99,147, 96,214, +235,246,157, 72, 7,126, 88,242,119, 19,128,179,247, 39,174,250,174, 87,175,122,239,125,254,237, 92,125, 65,150,226,211, 49, 47, + 71, 68,134,248,139, 36,170, 60,181,172, 89,179,254,101, 44, 50, 85,165,179,231,184,113,227, 54,255,126,254, 1, 33, 20,242,120, + 28,138,226,118,111,221,212,191,190, 15,229,227, 13,248,164,223,187,125,118,194,132, 9,173,103,206,156,217,195, 13, 78,216, 58, + 92,108,217,178, 5, 4, 65,144,238, 60,187, 7,113,172, 50,145,197,178, 44, 8,130,216,234,212,169,108,181,125,151,228, 36,182, + 56,149,229,167,221,154,106, 23, 85,227,199,143, 31, 67,211, 52,199,169,145, 40, 43, 96,202, 19, 49, 46, 61,187, 92, 46,255, 29, +192, 11, 4, 65,192,100, 48,152,190, 94,182,204,249,242,229, 50, 34,235, 88, 69,117,201, 98,177,128, 97, 24, 78, 82, 82, 18,215, +169,172,115, 1, 72, 0, 4,176, 44, 11,146, 36,175,185,144,159,205,197, 98,241,217,125,251,246, 73,219,183,111, 79,240,249,124, +208, 52,141,228,228,228,250,139, 23, 47,158,124,236,216,177,151,116, 58, 93, 75, 60,186,121,186, 43,239, 40,234,244,233,211,186, +198,141, 27,151, 43, 28, 53, 26, 13,167,105,211,166,189, 42, 16, 69,181,205,153,145,155,155,251,234, 11, 47,188,240, 86, 78, 78, + 78, 42, 77,211, 31, 1,104, 21, 16, 16,144, 52,116,232, 80,136, 68,162, 62,122,189,254,155,154,148,249,160,160,160, 33, 93,187, +118,197,170, 85,171,176,120,241,226,126, 0,142, 3,232,171,209,104,142,189,242,202, 43,240,245,245,125, 85,165, 82,109,172, 65, + 61,106,218,179,103,207,239,227,226,226,188, 15, 28, 56,128,200,200, 72, 20, 21, 21,225,131, 15, 62, 8,154, 51,103,206, 73,149, + 74,213,219,169, 94, 84,196,217, 82, 32, 16,108,220,182,109,155, 87,227,198,141, 27,243,120, 60,178,113,227,198, 80, 42,149, 48, + 24, 12,130, 5, 11, 22,180, 22,137, 68,127,125,243,205, 55, 27, 1, 12,173, 34,157, 36,128,249,235,214,173,123, 43, 54, 54,214, +119,204,152, 49,140,201,100,194,175,191,254, 10,138,162,192,229,114, 33, 22,139, 29,155, 87,243,120, 60, 52,107,246, 72,144,244, +189,149, 60,175, 26, 37,126,168,190,112,111,218,245, 88, 37,124,142,169, 15, 46,151, 11,161, 80, 8,161, 80, 8,129, 64,128,155, + 55,111,126, 46, 20, 10,151, 19, 4, 65,187,194, 73,252,163, 46,218, 2,184, 88,213, 57, 30,117, 13,121,156,237,167, 29, 97, 4, + 65,172, 0,208,167,164,219, 37, 19, 2, 2, 2,222,207,205,205, 77,115,149, 83, 46,151,251, 23, 20, 20,124, 35,151,203, 17, 28, + 28,236,232,191,235,213,171, 7,139,197,130,220,220, 92,176, 44, 11,149, 74, 5,177, 88,140,208,208,208,111, 98, 99, 99,119,196, +199,199, 23,148,203,105,197,226, 87, 70,125,246, 5, 69, 81, 36, 0, 80, 28, 47,175,105,159, 0, 17, 17, 17,232,222,189, 59, 12, + 6, 3,212,106, 53,162,162,162, 56, 4, 65,140, 35, 8, 66,202,178,236, 26, 0, 39,254,133,134,194, 10,157,225,191, 44, 59, 47, +106,223, 45,158,199,227,185, 36,180,108,247, 87,101, 65, 33, 45, 22, 11,120, 60, 94, 41,139, 4, 65, 16, 96, 24,166,212,247,118, +161, 85, 29,161, 62,117,234, 84,235,247,223,127,255, 86, 97, 97,225, 90, 84,115, 42, 97,220,184,113,143,248,123,204,152, 49, 35, + 35, 47, 47,143, 29,214,191,173, 36,245, 80, 86,246,115,126, 94,162, 64,111,239,134, 66, 63,153,111, 65, 65,193, 57, 91, 99,226, + 42,154,196,196,196,136, 54,237, 58,157,241,230,244, 69,243,218, 55,246,151,182, 9, 11,240, 11,241, 17,241,189, 72, 66, 39,164, + 45, 25, 50,153, 44,210,221,116,219,219, 5,177, 88, 12,146, 36,159, 38,139, 22,199, 46,178,148, 74, 37, 14, 28, 56,128, 65,131, + 6, 37,217, 69,136, 70,163, 65,118,118, 54,228,114,121,146,205,242, 81,229, 52,162,213,106,133,217,108,134,217,108,118, 8, 24, +167, 50,228, 16, 48,246,123, 41,138,186, 86,205,180,207,243,243,243,235,217,167, 79, 31,254,207,191,254,202,103, 89, 86,135,146, + 61,212,180, 44, 91,193, 6,217,101, 64,211,180,195,202,198,229,114,241,240,225, 67, 71,199,101,223, 91, 82, 40, 20,186,102,202, + 16, 8, 62,252,229,151, 95,164, 29, 59,118, 36, 10, 10, 10, 96,181, 90, 29,141,228,234,213,171,133,195,135, 15,175,151,152,152, +248,169,209,104,252,178, 26,207, 74, 84, 36,136, 0, 64, 42,149,210,112, 45, 98,118,149,156, 52, 77, 19,221,186,117,155,169, 80, + 40, 90,235,245,250, 5,174,100, 35,128,189, 25, 25, 25,206, 29,251, 95,169,169,169,250,145, 35, 71,138, 26, 54,108,216, 41, 37, + 37,165, 70,133,180,105,211,166, 93,184, 92, 46, 46, 92,184, 96, 4, 96, 31, 89, 39, 92,189,122,213, 56,116,232, 80, 65,253,250, +245,187,168, 84, 46,187,172, 52,109,222,188,249,209,160,160, 32,145,189, 13, 13, 12, 12,228,198,199,199,123,103,102,102,194,108, + 54,227,227,143, 63,198,224,193,131, 17, 16, 16,128, 25, 51,102, 4, 47, 89,178,228, 39,173, 86, 27, 83,153,209,154,207,231,111, +190,115,231, 78,164, 92, 46, 23,157, 63,127, 30,109,218,180,129, 66,161, 64, 78, 78, 14,180, 90, 45,114,114,114, 48,113,226,196, +160,255,253,239,127,161, 46, 88,178, 28, 34, 43, 62, 62, 94,181,115,231, 78,106,253,250,245,222, 92, 46,215, 33,180, 56, 28,142, + 67,104,217,247, 86,172,198, 76,131,202, 38,218,124,213,106,117, 77,252,220, 4, 0,248,206, 34, 75, 32, 16, 64, 32, 16, 64, 40, + 20,214,104, 95,214,103, 4,245, 8,130, 72,225,241,120, 2,177, 88,204, 35, 73, 18, 2,129,160,191, 76, 38,187,222,170, 85,171, + 86, 71,143, 30,125,224, 10,137,193, 96,216, 44, 16, 8,184, 65, 65, 65, 0,128,200,200, 72,180,105,211, 6, 58,157,206,170, 86, +171,225,235,235, 75,166,165,165, 65,175,215, 35, 59, 59, 27,225,225,225, 92,146, 36, 55,163,196, 15,249, 17,156, 77,202, 89, 11, + 96,173,253, 60, 32, 32, 32,215,217,210, 41, 20, 10, 81,175, 94, 61,100,102,102,194,219,219,155,154, 51,103,206,208, 95,127,253, +245,181,179,103,207,142, 3,176,197,137,234,203,103,216, 71,203, 46,178,156,255,254, 35,180, 6, 15, 30, 60,119,255,254,253,189, +202, 27,133,115,185, 92,143,249,186,216, 5,149, 84, 42, 45,107,181,130,213,106,173,200,162,229,246,239, 8,133, 66,209,148, 41, + 83,138,214,172, 89,227,182,216, 26,177, 42,213, 97,197,122,100, 24,217,178,229,217, 79, 63,253,116,200, 31,127,252,145,217,190, +113, 67,142, 36, 43, 77, 43,148,250,250, 34,172,193,160,241,175, 14,189,138,146,213,135,174,226, 78, 81, 81,145,232,185, 48,177, +137, 36, 13, 68, 3, 1,199, 91, 46,225, 9, 66,252,252,234,241, 76,198, 60,169,159, 31,223,104, 52,170, 80,201, 38,208, 0, 16, + 28, 28,124, 68, 36, 18,133,219,207,253,252,252,124, 88,150,133, 88, 44,134, 92, 46,247,162, 40,234,150, 83,229, 74,203,205,205, +237, 95, 85,194,124,125,125,143, 8, 4,130,112,146, 36, 65, 16, 4, 40,138, 2, 73,146, 32, 73,210,241,153,162, 40, 16, 4,129, +226,226,226,180, 7, 15, 30,244,119,225,121,105, 0,209, 4, 65, 36, 29, 56,112, 0,157, 58,117,194,161, 67,135, 48, 96,192, 0, +168,213,106, 36, 39, 39,163,103,207,158, 64,201,148,162, 75,112,118,126,183, 15, 10,110,222,188,233, 16, 46,206,135,183,183,119, + 77, 76,236,103, 70,140, 24,129,239,191,255,158,181, 13, 38, 36, 4, 65,180,241,241,241,185,121,227,198, 13,151,252, 96, 88,150, +133,217,252,207,173,246,206,203,230, 15,225,214,230,192, 20, 69,245,143,137,137, 33,212,106,181, 93, 64,130,195,225,128,162, 40, + 80, 20,133,239,190,251, 78,212,177, 99,199,207, 4, 2,193, 76, 30,143,167,177, 88, 44, 63, 27, 12,134, 5, 0, 84, 79, 83,139, +212,163, 71,143,233,233,233,233,131,195,195,195,247,213,128,134,181, 88, 44, 38, 0, 34,138,162,184, 30,104,163, 40, 91,217, 50, + 56,137,125,218,118, 46, 64,201, 52,177, 75, 8, 8, 8,248,233,224,193,131, 97,225,225,225,176, 88, 44,160,105, 26, 90,173, 22, + 9, 9, 9, 48, 26,141,160,105, 26,145,145,145,248,226,139, 47, 12,239,191,255,190,112,221,186,117,121, 90,173,118,116, 21,180, +239,239,216,177, 67, 34,151,203, 69,122,189, 30,247,238,221, 67, 76, 76, 12,138,138,138,160,211,233, 80, 92, 92, 12,179,217, 12, +141, 70,227,203, 48,140,169, 10,174,207,157, 69,214,228,201,147,175,241,249,252,152,119,223,125, 23, 25, 25, 25,142, 58,255,230, +155,111, 34, 56, 56,216, 81,151,108,109,178, 91, 13, 51,135,195,129, 64, 32, 0,143,199, 83, 53,104,208, 0, 4, 65, 8,211,210, +210,170, 51, 21, 39, 5,160,225,114,185,124,103,129, 37, 16, 8,112,225,194,133, 79,249,124,126, 69,214,172,138,234, 37,235,206, +249,147, 6, 65, 16, 43,120, 60,158, 64, 38,147,241,156, 6,156, 60, 47, 47, 47, 4, 5, 5,173, 2, 48,208,197,231,110, 39,147, +201, 28,237,123,219,182,109,145,158,158,190, 91,173, 86,143,205,203,203, 3, 73,146,155, 73,146,124,205, 62, 72, 45, 44, 44, 68, +253,250,245,219, 85,196,215, 53, 58,228, 45, 16,108, 41,139, 86,153, 1, 26,164, 82, 41,238,223,191, 15,157, 78,199,222,190,125, +155,152, 50,101, 10, 97, 50,153,126, 76, 76, 76, 60,135,146,213,246, 21,106,145,103, 4,238,251,104,217, 45, 90,174,118, 0, 4, + 65, 84, 57,154,176, 88, 44, 94, 81, 81, 81,229, 57,124, 17,229, 9, 45,219,116, 82,181, 10, 58,151,203,245,174,174,216, 42,139, +125, 59,183, 5, 47,254,226,227, 47,100,161, 13,159,155, 57,243,115,206,203, 47,191,124,126,211,166, 77,140,172,197,192,190, 39, +142,108, 9,254,230,131, 89,135, 14, 30, 60, 8,148, 56, 70,187,138, 51,251,247,239, 15,153,241,222, 84,124,241,225,251,135,165, +145, 1,124, 47, 66, 38, 17, 26,117,249, 94, 96,245,130, 38,205, 7,239,218,183, 47, 27, 64, 98,101, 36, 98,177, 56, 60, 37, 37, + 37,210,121, 33,129,201,100,130, 88, 44,198,137, 19, 39, 2, 69, 34, 81, 32, 0,232,245,122,180,106,213,202, 85,139, 73,248,173, + 91,183, 34,189,189,189, 81, 92, 92, 12,163,209, 8,139,197, 2,171,213, 10,130, 32,192,229,114,193,231,243, 33,145, 72,220, 93, +217,119, 5,192, 27,131, 6, 13,218,122,232,208, 33, 68, 69, 69,161,176,176, 16,169,169,169,118,145,229,150,143,150,221, 74,228, +236,143,197,225,112,240, 83,227,198,120, 51, 43,203, 33, 96, 86,248,248,224, 11,107,245,118,211,104,213,170, 21,123,230,204, 25, + 28, 62,124, 24,175,188,242, 10,177,103,207, 30, 51,195, 48,188,172,172,172,107, 89, 89, 89, 46,113, 88,173, 86, 71, 90,237,237, +182,179,192,114, 87,104,209, 52,237,205,231,243, 97, 48, 24, 96,183, 60, 56, 31,141, 26, 53,130, 82,169,228,104, 52, 26, 78, 86, + 86,150,120,254,252,249,239,158, 60,121, 82, 94, 84, 84,244,250,147,108,133,214,172, 89, 19,254,230,155,111, 62,228,112, 56,236, +128, 1, 3,198,164,165,165,189, 42,151,203,143,255,241,199, 31,203, 0, 52,117,151, 47, 32, 32,224, 50,135,195, 9,211,104, 52, +188,237,219,183, 91,138,138,138,120,129,129,129,185,246,182,195,158,215, 22,139,197,165,149,203, 1, 1, 1,151, 21, 10, 5,111, +229,202,149,150,130,130, 2, 94,112,112,112,174,157, 71,165, 82,241,182,111,223,110,209,104, 52, 60, 31, 31,159,203,106,181,186, + 74, 62,133, 66, 49,122,220,184,113,167,143, 31, 63, 30, 64, 81, 20,210,210,210, 80, 80, 80, 0, 95, 95, 95,108,222,188, 25,225, +225,225,216,177, 99,135, 82,169, 84, 78,250,250,235,175, 63,179,137,172,170,124,180,122,118,234,212, 41, 92,165, 82,193,215,215, + 23, 58,157, 14,151, 47, 95, 70,203,150, 45,145,149,149, 5,146, 36,225,235,235,139,213,171, 87, 23, 19, 4,161,172,140, 72, 36, + 18,189, 26, 27, 27,235, 11, 0,177,177,177,190,177,177,177,229,118,112, 93,186,116,193,170, 85,171,202, 10, 45,119, 6, 6, 14, +171,147,147, 56, 50,116,238,220, 25, 39, 79,158,156,229,166, 56, 50,217, 69, 91, 89,107,150, 64, 32,112,123, 49,141,213,106,229, +161,196,165,129,112,229,252, 41, 64, 47,145, 72,196, 43,251,101,113,113, 49, 79, 46,151,247,112, 67,248,250,139, 68, 37, 6,167, +240,240,112,168,213,106,198,100, 50,141,218,178,101,139, 5, 0,162,163,163, 71, 49, 12, 99,160,105,154,226,243,249,208,233,116, + 8, 10, 10,242,175,196, 54,250,209,222,159,231,135,148,245,209,146,203,229,136,142,142,134,209,104, 68,118,118, 54, 18, 18, 18, + 44, 12,195,108, 93,179,102,141, 53, 48, 48,240,191,195,134, 13,163, 18, 19, 19,223, 1, 48,189, 34, 45,242,140, 89,179,226, 43, + 20, 90, 54, 5,121, 18, 64,239,178, 15, 89, 86,252, 84, 38,180,170,154, 58,228,243,249,170,135, 15, 31, 74,156, 59, 21,154,166, + 17, 26, 26,106,101, 89,150, 40, 79,104,213,196, 20,204,229,114,189, 63,249,228, 19,213,154, 53,107, 70,223,191,127,127,174, 43, +255,179,253,157,230,216, 84, 70,100,173, 93, 28,183,106,229,226,249,178,187,135,127,196,250,111,151, 50, 12,131,196,214,173, 91, +247,208,106,181, 28, 31,137, 5, 10, 21, 14,217, 68,150,171,162,144, 4,240,195,197,139, 23, 19, 7, 14, 28,248,231, 15,191,236, +146,101,221,187,119, 78,160, 81,100, 75,155, 68,114,120,245,194, 95, 43, 50, 24,120,163, 70,141, 10, 4, 48,172,170, 70, 76,165, + 82, 33, 39, 39,167,172, 0,210,107, 91, 69, 0, 0, 32, 0, 73, 68, 65, 84,195,205,155, 55, 31,185,215,165,196,145, 36, 24,134, +193,206,157, 59, 33, 22,139, 33,145, 72, 74, 29,118,145, 85,205,133, 10,183, 0, 96,192,128, 1, 80, 42,149,240,242,242,114, 57, + 93,101,197, 11,203,178, 48,153, 76, 48,153, 76, 48,155,205, 12, 0, 46,135,195,193,196,140, 12,135,149,199, 29, 1, 83, 22,173, + 91,183,102,207,158, 61,139, 63,255,252, 19, 58,157, 14, 43, 87,174,132, 92, 46,127, 30,192,231,238,114, 57, 57,233, 51, 26,141, +134,171,209,104, 28,214, 65, 46,151,235,176, 30,184,104,201,227,113, 56, 28,199,104,212,126, 56, 91,181, 40,138, 66,112,112, 48, + 66, 66, 66,176,118,237, 90, 94,195,134, 13, 7, 63,201, 22,104,201,146, 37, 77, 86,172, 88,177, 97,211,166, 77,135, 70,143, 30, +253,107,114,114,242, 4, 31, 31,159,107, 39, 78,156,152, 47, 16, 8,172,213,172,223, 97, 89, 89, 89, 65,206, 95, 89,173, 86, 49, + 77,211, 14, 97, 91, 92, 92,236,242, 0,131,203,229,134,165,164,164,136, 1, 96,254,252,249, 92, 0, 98,187, 51,184,157,179,184, +184,152,219,178,101,203, 48, 87,203,250,233,211,167,123,244,235,215,239,236,209,163, 71,253,194,195,195,145,153,153,137,204,204, + 76, 52,105,210, 4, 11, 23, 46,212,105, 52,154,110, 0,110,105,181,218, 61, 46,114,134,250,249,249,113, 31, 62,124, 8,154,166, +209,174, 93, 59,172, 94,189, 26,163, 70,141, 66,171, 86,173,160,209,104,144,146,146,130,141, 27, 55,250,241,120,188, 74,219, 14, +189, 94,191, 39, 62, 62,190,126, 89,139,214,152, 49, 99, 36,185,185,185,142, 50, 25, 23, 23, 87,106, 10,209,157, 54,217, 54,181, + 85,225, 81, 29,208, 52, 45, 21, 10,133, 26,129, 64,192,183,251,103, 37, 36, 36,184,109,205, 42, 51, 0,116,231,252,137,193, 46, + 90,203,233, 91, 17, 18, 18,226, 50,143, 64, 32, 32,236,109, 35, 77,211, 80,171,213,140, 92, 46,119, 76,239, 39, 37, 37, 49, 17, + 17, 17, 12, 69, 81, 20,159,207, 7, 65, 16, 16,139,197, 21, 54,248, 44,195,198,189, 60,234,243, 82,171, 14,167,125, 2,152,205, +102, 36, 37, 37,193,108, 54, 35, 33, 33,193,242,245,215, 95,103,169, 84,170,105, 0, 56, 71,142, 28, 25, 55,107,214, 44, 42, 40, + 40,168, 95, 94, 94, 30,170,210, 34,207,144,216,122,196,202,101,239,133, 78, 14, 30, 60,152,176, 45,173, 36,236,194,201, 29,161, +101,171,124, 85,246,188, 4, 65, 32, 59, 59,219,113, 30, 20, 20,228,246,111,185, 10,127,127,127, 93,151, 46, 93,188, 21, 10,197, +158, 37, 75,150, 84,203,146,181,118,113,220,170, 69,243,230,200,148, 55,206, 35, 35, 43, 27,202, 60, 75,226,153,107,247,119, 3, +216, 13, 0, 88,215,226, 36,241, 86,234,119,174,114, 54, 15, 16,181,229,242, 56,187, 95, 24, 56,184,254,200,216,233,228,219,111, +191,221,125,220,184,113,234,209,163, 71,191,231,229,229,213,212,108, 54, 23,238, 58,112,224,193,200,145, 35, 27, 50, 12, 51, 14, + 85,196, 28,209,235,245,105,189,123,247,118,206, 79,233,177, 99,199,130, 31, 60,120,128,169, 83,167,230,103,102,102,170,156,239, +117, 37,141,102,179, 57,173,109,219,182, 21, 78, 23,218,167, 20, 1,160,168,168, 40,205,141, 44,125, 29, 54,199,247,130,130, 2, +220,188,121, 19, 28, 14, 7,157, 59,119,198,153, 51,103,208,189,123,247, 36,119,172, 90, 6,131, 1,225,225,225, 48, 24, 12,208, +233,116,197, 0, 4,155, 27, 54, 4, 0,188, 83, 80,128,203, 95,127,141,243,139, 22,193,185, 60,187,138, 54,109,218,176,231,207, +159,199,181,107,215, 96, 52, 26, 49,105,210, 36, 0, 32,108,101,215,157,144, 25,141, 41,138, 26, 48,112,224,192, 80, 0,208,233, +116,196,197,139, 23, 33, 20, 10, 29,117, 97,223,190,125,200,204,204, 4, 65, 16,240,243,243, 11, 43, 44, 44,108, 8,224,126, 37, +102,127,226,254,253,251,248,234,171,175, 96,181, 90, 49,107,214, 44, 68, 70, 70, 58, 4, 86, 90, 90, 26,230,207,159, 15,134, 97, + 48,103,206, 28, 52,105,210, 4, 22,139, 69,136,106,134,208,240, 4,102,204,152,113,119,247,238,221,135,210,211,211, 95, 90,188, +120,113, 47,130, 32,172, 51,103,206,252, 74, 42,149, 50, 53,225, 45, 84, 23,225,230,157, 52,135, 16, 42,123, 4, 6,200,220,230, +187,125, 47,221,241,255, 12,227,204,199,192, 95,230,231,110, 18,139, 45, 22,139,238,181,215, 94,243,221,185,115, 39,209,164, 73, + 19,252,253,247,223,118,203, 80, 49,220, 15,233,144,169, 84, 42, 35, 41,138,226,221,185,115, 7, 17, 17, 17,232,212,169, 19, 22, + 44, 88, 0,133, 66, 1,154,166, 17, 20, 20,100,181, 88, 44, 73,102,179,249, 84, 21, 92,113,147, 39, 79,230, 1,120,203,102,217, +106, 61,109,218, 52,235,210,165, 75,145,148,148,228,176, 96, 57, 59,195,187, 59,117,232,108,117,114, 62, 18, 18, 18,102,241,249, +124, 22,192, 5,184, 31,232,217, 84,214,162, 85, 29,107, 86,109,161, 54, 87, 50,202,229,242, 4,111,111,239,193,133,133,133,165, +172, 90,221,186,117, 51, 7, 7, 7,159,118,149,199,203,203,171,144,162, 40,127, 0,200,204,204,132, 68, 34,225,221,187,119,111, + 17, 74,130,103,163, 97,195,134,139,148, 74, 37,175,161,173, 61, 13, 9, 9,129,201,100,170,208,141,229,220,149,220, 31, 1,252, +104, 63,151,201,100,217,106,181, 90,180,116,233, 82,237,162, 69,139,244, 12,195, 24, 1,156, 80,169, 84,142, 56, 90, 57, 57, 57, +106, 46,151, 43,243,245,245,173,103, 23, 90,229,105,145,103, 12, 21, 91,180,108, 74,146, 45, 43,136, 8,130,120,196, 65,189, 10, +161, 85,165,200, 98, 24,166,148,149,193,238,240, 94,222,111,217, 58,245,106, 77, 29,218, 68,150,112,215,174, 93,155,151, 44, 89, +114,193,213,255,115,246,209, 90,183,108,222, 98,187,200,186,250,231, 81,236, 73, 85, 43,102, 45, 90,190,162,186,111,160, 69,128, +184, 77,112,176,255,201,175, 23,198, 73,239, 30,222,136, 95,215,253,143,189,122,233, 82,199, 75,151, 46,141,157, 58,117,106, 3, + 91,193, 82, 2,248, 11,192, 72,184,176, 74, 39, 51, 51,179,127,153, 78,248, 22,143,199, 11, 22,139,197,200,204,204,212,222,190, +125,219,237, 41, 25,133, 66,209,191, 22, 10, 32,199, 46,178, 20, 10, 5, 82, 82, 82,208,167, 79, 31, 0,192,153, 51,103,208,173, + 91, 55, 36, 38, 38, 34, 38, 38, 38, 9, 64, 7, 84, 17,168,213, 98,177,168, 90,180,104,225,176,110,169,213,106, 43, 0,196,102, +103, 35, 94, 46, 7,135,195,193,249, 69,139, 48,219, 98,193, 2, 55, 5,124,219,182,109,217,139, 23, 47,226,193,131, 7,160,105, + 26, 67,134, 12, 65, 53, 43,125,171,230,205,155, 31, 59,113,226, 68,160,151,151, 23,116, 58, 29,180, 90, 45,198,143, 31,143, 81, +163, 70,193,104, 52, 98,251,246,237,216,187,119, 47,188,189,189,161,211,233,160,211,233,252, 6, 13, 26,116,246,214,173, 91, 61, + 1,220,169, 64,104,177,253,251,247,199,233,211,167, 65, 81, 20, 58,118,236,136,130,130,127, 22, 3, 5, 7, 7,151,119,141,122, +146, 66,139,195,225,176, 9, 9, 9,139,123,245,234,133,244,244,244,151, 98, 98, 98, 86, 78,152, 48, 33,179,166,188,126, 62,222, +104,219,178, 49,140, 70, 35,140, 70, 35, 66, 67, 67, 81, 84, 84,132,187,119,239,194,104, 52, 34, 56,200,215,109,190,232, 86, 77, + 28,124, 65, 65, 65,208,233,116,184,127,255, 62, 76, 38, 19, 2, 2,220, 18, 90,245,251,247,239,255,199,214,173, 91,253, 55,110, +220,104,234,221,187, 55,127,229,202,149,132, 84, 42,133, 83,199,226, 46, 18,206,156, 57, 19,222,175, 95,191,102, 55,110,220, 64, + 66, 66, 2, 76, 38, 19,162,163,163,113,251,246,109,116,233,210, 5, 90,173,246,194,165, 75,151,246,186, 98, 24, 6,240,217,228, +201,147, 97, 23, 91,167, 79,159, 70,118,118, 54,188,189,189, 31, 17, 90,118,223, 71,219,170,241, 80, 87, 18,107, 23, 68, 78,150, +167,217,190,190,190,102, 0, 43,170,105,125, 2, 0,164,167,167, 11, 90,183,110,109, 20, 10,133,124,155,104, 91, 94, 19, 62, 79, +194, 3, 43, 25, 43, 68, 72, 72,200,180,128,128,128,126,141, 26, 53, 66,110,110, 46,143,207,231,163, 91,183,110,230, 14, 29, 58, +152, 67, 66, 66,222,113,149, 71, 32, 16,220,224,241,120, 61, 75, 6, 19, 12, 30, 62,124, 8,150,101,103,181,106,213,234,253,162, +162, 34, 20, 20, 20,240,165, 82,169, 99, 80,221,172, 89, 51, 24,141,198, 27,110, 88,222,226, 34, 34, 34, 62,227,241,120, 11, 20, + 10, 69,121, 97, 33,248,190,190,190, 82, 30,143, 7,179,217, 92, 74,108,150,213, 34,207,186,200, 42, 37,180,156, 84,100, 41,161, +227,142, 69,203, 21,171,129,221,193,222,249,220, 46,234,202,254, 86,117, 99,104,249,248,248, 24,237, 34,107,193,130, 5, 23,170, +195,177, 99,235, 22,185,143,181,184,126,214,133,131,184,117, 45, 17,187, 83, 84,138, 89,139,150,191,247,242,176,215,115,203, 10, + 51, 87, 16, 25, 40,110, 21, 28,228,127,114,217,146, 69, 82,229,141,243,200,206,201,193,193, 11,151, 18,205, 64, 10,128, 89,158, + 52, 45, 3, 37, 83,135, 20, 69, 61, 77, 5,214,225, 12,159,157,157,109, 23, 89,209, 0,208,189,123,247, 36,155,200,130,171, 22, + 45,149, 74, 85,118,203,154,126, 0, 2,236,207,207,225,112,208,237,179,207,220, 22, 89, 0,216,196,196, 68, 40,149, 74,251, 72, +177,186, 34, 11, 33, 33, 33, 31,158, 56,113, 34,240,135, 31,126,208,108,218,180,169,192,106,181,114,219,182,109, 27,214,190,125, +123, 98,243,230,205, 0,128,145, 35, 71, 98,214,172, 89,184,126,253, 58, 36, 18, 9,186,119,239,206,204,157, 59, 55,104,218,180, +105,239,228,230,230,190, 87,110,239,104,181,242,132, 66,225,113, 0,207,223,184,113, 3, 0,206,162,100, 11, 39,187, 21,161,194, +107,174,116,190, 69, 69, 69, 92,111,111,239,114, 67, 67,240, 74, 70, 67,238, 90, 32, 28,156,127,254,249,231, 87,203,150, 45,219, +253,193, 7, 31,220,169, 33,103,185, 22,173,193,131, 7, 67,111, 52, 35, 35, 87, 13,134,161,161, 55,231,185,205,231,108,209, 26, + 60,120, 48,138, 13, 38, 60,204, 86,130,166, 25, 20,233, 93,238,203,197, 47,188,240,194,145,159,127,254, 57,228,220,185,115, 96, + 24,198,122,251,246,237,251,175,189,246,154,116,230,204,153,254, 53, 88,100,244,237,235,175,191, 62,252,207, 63,255, 84, 54,107, +214, 76,118,225,194, 5,228,229,229,129,166,105, 60,255,252,243,224,243,249, 15, 23, 45, 90,196, 3,240,173,171,239,198, 38,182, +204,151, 46, 93,122,243,252,249,243, 50,153, 76,198,183, 54,111,142,236,163, 71,177,115,231,206, 71,254, 97,221,186,117,128,139, + 81,248,237, 22,167,139, 23, 47,122, 68, 96,149,234,169,249,252,106, 79, 63, 62,171,184,120,241, 98,230,219,111,191,221, 82, 42, +149,174,232,209,163, 71, 31,127,127,127,210,207,207, 47,161, 94,189,122,239,183,109,219,214,229,217, 5, 46,151, 59, 65, 34,145, +220,165,105,154,210,106,181,208,233,116, 37,141, 52, 77,243, 73,146, 68,195,134, 13, 29,125, 73,199,142, 29, 17, 18, 18,194,164, +166,166, 78,112,149, 63, 63, 63,191,212, 42,196,114, 48,185, 91,183,110, 28,163,209,136, 7, 15, 30,156,113,190, 80,158, 22,121, + 70, 16, 91,169,248,178, 63,148,243,195,213,171, 87, 47,221, 98,177,176, 41, 0,251,215, 95,127,177,177,177,177,149, 30, 6,131, +129, 13, 10, 10,202, 46,167,243,131, 51,167,209,104, 44,245,127, 70,163,145, 13, 14, 14,102,244,122,253, 35,156,122,189,158, 13, + 11, 11,203,172,140,179, 28,140,191,114,229,202,154,217,179,103,119,114, 35,131, 28,156,236,218,230,236,198,141, 27,255,195,178, +108,175, 30, 45,195,175,141,104, 27,204,118,139, 12,202,218,187, 99,235, 40,150,101,123,149, 61,236, 1, 78, 43,227,108, 30, 44, +105,209, 55,170, 65,225,213,195,219,216, 19, 75,223,101,151, 13,137,100, 99,194,188, 85,205, 3, 68,238,238, 17, 83,229,110,233, + 81, 81, 81,183,172, 86, 43,107, 50,153,216,168,168,168,219,158,224,172, 6, 42,227,108,135, 18, 95,182,215,203,249,174, 93, 13, +210,121,149,101, 89, 86,169, 84,178, 90,173,150, 53, 26,141, 44,195, 48,172, 51, 0, 92,117,129,147, 53,155,205,108, 97, 97, 33, + 11,215,125,238,202,229,148,203,229,247,239,221,187,199, 62,247,220,115,233, 54,115,252, 52,157, 78,199,150,133, 78,167, 99,251, +244,233,195,222,190,125,155,141,136,136, 48,220,190,125,155,149,203,229, 55,171, 72,103,163,250,245,235, 31, 15, 8, 8, 72, 0, + 16,233,198,181, 74,243,115,251,246,237,141, 89,150,157,196,178,108,108, 5,199, 36,150,101,155, 63,105, 78, 91,254,230,178, 44, +203, 22, 23, 23,179, 74,165,146,205,202,202, 98,139,139,139, 89,173, 86,203, 94,185,114,133, 61,119,238, 28,123,237,218, 53, 86, + 38,147,229,186,194,105,231, 51,153, 76,172, 70,163, 97,243,242,242, 88,189, 94,207,234,116, 58, 54, 57, 57,153,189,124,249, 50, +123,227,198,141,242,248, 30,225,244,247,247, 95,151,147,147,163, 61,123,246,108,241,218,181,107,139, 67, 66, 66,110, 0, 8, 7, +208,212,207,207, 47,231,221,119,223,101,189,188,188,210,170, 89,143, 90,114,185,220, 43,139, 23, 47,190,184,127,255,254,220,189, +123,247,154, 54,108,216,144, 49,117,234,212, 83, 28, 14,231, 10,128,150,213,172, 71, 65,190,190,190,103, 47, 92,184, 64, 23, 22, + 22,178, 42,149,138,213,104, 52,172, 78,167, 99,245,122, 61,107, 50,153, 88,139,197,194,158, 58,117,138, 13, 14, 14,118,158,150, +252,168,146,129,245,116,150,101, 63,100, 89,150,227,233,182,206,137,187,135,167, 56, 61,209,214,145, 36,105,182,181, 29,157, 75, + 78, 43, 63,127, 82,233,236,219,183,239,156, 81,163, 70,177, 3, 6, 12, 96,163,163,163, 31, 57, 98, 98, 98,216, 41, 83,166,176, +251,247,239,103,191,254,250,235, 57, 30, 72, 39, 7, 37,139, 94, 22,246,237,219,215,114,250,244,105,118,228,200,145, 44,128,254, +149,105,145,127,131,224,178,135,119, 32,156,255, 2,128,217,108, 78,191,117,235,150,188, 25, 77, 83, 0,240,221,119,223, 61, 98, +153,114,198,233,211,167,105,130, 32,238, 86,246,235,102,179, 57,253,196,137, 19,193,171, 86,173,226, 58,153,128, 65,211,180, 53, + 43, 43,139, 92,185,114,101,169,251, 79,158, 60, 73,211, 52,253,208,205,135,220,216,174, 93,187,141,158,200,173, 83,215, 31,188, +127,228,224,111, 1,157, 59,245, 80, 73,101,178,114, 71, 97,219,223,105, 14,226,173,202,173, 90, 4,135, 92,176,120, 97,156,175, +125, 10,242,151,164, 28,149,193,200,244, 73, 85,232,175,122,250, 13,107,181,218, 7,246,149,128, 58,157,238,225, 83, 88, 8,175, +160, 36,198, 21, 93,230,187, 14,168,161,211,169,213,106,133,143,143,143,195, 26, 90, 13,139, 40,107,183,176,218, 95, 93, 77,210, +195,178,236,159,201,201,201, 17,227,199,143,247,222,180,105,211, 61,134, 97,184, 19, 39, 78, 52,135,132,132,240,206,156, 57, 99, + 1, 64,244,234,213,139,147,147,147,195,102,102,102, 42, 95,121,229,149,162, 55,223,124,211,255,175,191,254,226, 91,173,214,170, +130, 22,254,157,158,158,222,183, 26,215, 42,197,136, 17, 35,238,161,230,219,216,212, 58,167, 29, 74,149, 6,247, 30,100,218, 34, +152, 91,193,164,229, 58,252,170, 44, 22, 26, 74, 77,129,219, 22,173,187,247, 51,109, 91,140, 49, 96,152, 44, 27, 95,137, 67, 60, + 91, 88, 92,117,111,194,225,116,159, 59,119,238, 64,146, 36,201,243,231,207, 27,151, 44, 89,146,158,159,159, 63, 4,192, 67, 0, + 40, 44, 44,236,189,113,227,198,159, 92, 8,229, 80, 17, 82, 44, 22, 75,151,143, 62,250,232, 61, 0,221, 1, 52,176,113,159,177, + 89,178,170, 27,193, 60, 79,165, 82,189, 56,112,224,192,163, 20, 69, 53,116,170, 71, 1, 0, 20,246,122,193,178,108, 80,110,110, +238, 75,174, 16, 18, 4,177,188,182, 26,146,218,228,174, 97, 59,244, 76,172,100, 60,126,252,248,151, 67,134, 12,225,132,135,135, +127, 26, 30, 30, 78, 22, 22, 22, 66,171,213,130, 36, 73,132,132,132, 32, 42, 42, 10, 33, 33, 33,214, 27, 55,110, 44,252,248,227, +143,171,140,201,215,162, 69,139,198, 22,139,229, 57,146, 36, 27, 3,104,204,178,108, 99,130, 32, 26, 3,144, 1,128, 84, 42,149, + 70, 68, 68,112, 58,119,238,140, 78,157, 58,225,228,201,147,216,177, 99,199,143, 0,142, 56, 91,179,202,106,145,167, 1, 41,237, +192,182,188, 2,226,122, 12,122, 17, 86,156,100, 73,244,142, 74,116,196,217, 43, 43,178, 42,222, 84,186, 28,211, 95,255,231,159, +127,222, 81,225, 92,232, 84, 30, 84, 85,249,242,243,243,251, 79,152, 48,161, 20, 39,195, 48,198,130,130,130,183,187,118,237,186, +154,162, 40, 65,153, 2,155,150,151,151,247, 88,247,234, 43, 27, 71,171,255,192, 87, 21, 53,229,244,226,145,207,221, 58,240, 61, +114,243, 20,248, 37, 41,167,176,200,196,244,190,173, 40, 78,174,141,244,167,165,165, 13,120, 6, 20,127,121,162,181,166,155,103, +231,187, 16,144,180,170, 61,234, 8, 91, 56, 17,143, 84,242,156,156,156,165,159,125,246,217,139, 11, 23, 46, 12, 60,116,232,144, +212, 62, 64, 25, 58,116,104, 94,114,114,114, 15, 0, 2,131,193,112,108,225,194,133,129,113,113,113,254, 0,252, 1, 96,208,160, + 65,185,185,185,185,171, 80,135, 74, 97,177, 88, 50,162, 90, 52,115, 12,252,156, 67, 58, 56,127,166,105, 58,195, 29,190,242,120, +156,207, 25,134,169,148,143,162,168, 15, 58,117,234, 68,125,240,193, 7,185,135, 14, 29,178,111,164,235,172,208,110, 85, 17,148, +212, 21, 24, 1, 44,177, 29,158,132, 78,169, 84,118,113,243,127,152,186,210, 88,238,128,210,157,243, 39,130, 61,123,246,124, 62, +114,228,200,141, 50,153,108, 75,227,198,141,155, 5, 7, 7, 75, 69, 34, 17,140, 70, 99,145,201,100,186,121,235,214,173,209,159, +127,254,249,223, 46, 89, 56, 54,110,164, 0,240,172, 86,171,144, 36, 73, 9, 0, 41, 65, 16,126,118,161, 69, 16, 4,204,102, 51, + 30, 60,120,128,217,179,103, 51,199,143, 31,255, 26,192, 28, 55, 6,174, 29, 0, 4, 58,181,227,129, 0, 76, 40, 9, 96,155, 79, + 16,196,165,218,206, 47,194,138,147, 45,175,128, 72,105,135,242,250,137,202, 55,149,174,168,194,229,231,231,119,241,116, 37,174, +136, 51, 63, 63, 63,252,105,169, 33,227,140, 75,182, 97,221,146, 82,251, 28,218, 69, 88,121,231, 85, 65,173,167,167,126,123,228, +250, 82, 35,205, 90,205,180,245,191,183,243,139, 83,234,218, 33,143,227, 5, 79,213, 37, 15,166, 41, 57, 53, 53,181,235,212,169, + 83, 63, 23,139,197, 29, 1,160,184,184,248,124, 86, 86,214, 60,216, 86, 21, 86,117,189, 14, 21, 67,161, 80,180,127, 26,249, 76, + 38,211,251, 93,187,118,253,134, 97,152,101, 52, 77,159,249,127,240, 42, 12,117,165,241,217,197,175,191,254,250, 55,128, 46, 0, + 48,124,248,112, 10, 0,118,236,216,225,182,120, 30, 63,126, 60,195,178,172,217, 86, 30,116, 40, 89, 93, 88,104,111, 83,117, 58, + 93, 97, 86, 86,214, 13,134, 97,110, 0,248, 9,238,175,184, 13, 36, 8, 98, 63,203,178,131,109,194,109, 63,203,178,131,157,191, +171,109,171, 86, 21,183, 84,237, 12, 95,135, 18,236, 72, 1, 81,118, 42,176,170,243,170,112, 43, 87,151, 0, 32,166, 46,119,255, + 95,226, 94, 86, 86,214,184, 26, 92,175,195,179,135,135, 38,147,105,200,255,163,231, 85,215,189,242,127, 73,255, 87, 13,129,101, +199,141, 27, 55,106,205, 69,224, 73,163,229,149,210, 3,240,178,231, 78,136, 45, 79,120,213, 9,173, 58,212,161, 14,117,168, 67, + 77,160,170,203,130, 58,252,155, 97,247,205,178,159, 87,224,163, 85,214, 63,203,113, 78,160,226,149, 3,238,236, 74, 94,157, 85, + 18,199,234, 56,235, 56,235, 56,235, 56,235, 56,159, 56,167, 47,128, 8, 0,139,171,184,175,236,234,194, 92, 0, 10, 0,150,186, +252,172,227,172,129,126,112, 9, 44,203, 14,170,108,234,144, 32,136, 3,181, 37,180, 28,206,240,237, 48, 55,234, 10,230,218,207, + 93, 21, 90,181,141,126,117,156,117,156,117,156,117,156,117,156,117,156,117,156,117,156, 53, 20, 90,125, 62,254,248,227, 79, 80, + 18, 26,131,253,248,227,143, 63, 97, 89,118, 80,201, 37,118, 80,109,254,246,245, 24,244, 74,105, 7,214,126, 92,143, 65,175, 10, +110,141,117, 58, 28,168,155, 58,172, 67, 29,234, 80,135, 58,212,161, 14, 79, 59,206, 46, 90,180,168,120,209,162, 69,118,199,247, +124, 0,132,205,194,149, 95,155, 63,108,155, 38,116,101,161, 84,229, 91,240, 60, 1,132,146, 28,222, 24, 46, 79,208, 7,172, 53, + 10, 0, 64, 82,215, 25,147,225, 15,154, 54,111, 1,144, 85, 93,226,230, 64,139, 38,190,162,189, 70,134,225,165, 23,153,134,167, +150,108,115,224, 54,134, 3,221, 4,124,254,239, 2, 95, 95, 81,121,215,141, 42,149,222,104, 50,189,184, 3,248,179,174, 14,212, +161, 14,117,168, 67, 29,158, 17, 72,252,252,252,142,147, 36, 25,110,255,194, 57,238, 96,217, 24,132, 12,195,100, 43,149,202, 23, + 81, 50, 85,252, 56, 57,157,255,223,132,106,246,229,158,134,187, 83,135, 28,160, 84, 20,214,199,178, 99, 54,197, 21,188,233,237, +227,187,224, 63, 19,222,247,143,108,218,140,168, 95,191, 30,192, 2, 15,211, 51,130,239,222,185,221,247,215, 77,223,206,208,168, +149,179, 45, 70,227,247,238,114,183, 0, 36, 13,188, 4,103,190,255,248, 13, 95, 14,104,188, 62,127,235, 97, 66,107,174,127,163, +100,185,169, 91, 34,203,215,223,255,200,162, 99,199, 68,126,109,218,148,186,198,178,108,201,254,122, 87,175,138, 62,125,241,197, + 35,195,149,202,254,117, 98,235, 95,137, 16,169, 84, 58,141,203,229,246, 54,155,205,225,124, 62, 63,157, 97,152,132,194,194,194, + 21, 0, 50,235,178,231,223,141,102, 33,146, 30,205, 26,135,111,205,202,201, 77,210, 24, 76, 19,111,101,105,149,117,185,226, 54, + 42,219, 95,243,137,237,189, 9, 0, 94, 94, 94,151, 73,146, 12,115, 22, 1,246, 61,123,237,231,101,255, 90,173,214,191,149, 74, +101,215, 74,104, 27,203,100,178,213, 0, 58, 84, 21, 48,217, 22,155,237,146, 82,169,124, 27, 21,175,214,243,246,243,243,251,146, + 32,136, 17, 36, 73, 82, 85, 61,147,213,106,101, 88,150,221, 94, 88, 88, 56, 7, 64, 81, 69,247,249,249,249, 29, 75, 77, 77,237, + 16, 20, 20, 84,165,149,134,166,105, 60,124,248, 48,176, 99,199,142,167,148, 74,101,243,218,228,124,220, 90,164,186,168,100,213, + 97,133, 5, 29, 64,169,253,133,106, 53, 34, 43, 79,232,181,183, 75,207,254,125,166,188,247,129,228, 74,242, 77,252,126,242, 28, + 52, 58, 35, 40,146,132,175,183, 24, 77,155, 62, 71, 44,143,223, 25,240,227,218,229,203,206,159, 62, 58,200,160, 83,191,226,150, + 76, 23,115,102,207,122,173,163,196, 95,198, 0, 86, 6, 31, 14,108, 43,249,116,127,210,108, 20,211,159,184, 45,178,142, 31, 23, +231,229,230, 34, 46, 52, 20, 28,154,134,144, 36, 33, 36, 8, 8, 73, 18, 18,161, 16, 3, 54,108,192,188, 67,135,196,159,191,244, + 82,157,216,250,151,193,203,203,107, 66,104,104,232,146,245,235,215,251, 55,106,212, 8, 18,137, 4, 74,165, 50,224,214,173, 91, +237,166, 79,159, 62, 46, 59, 59,251, 51,141, 70,179,174, 46,167,254,189,176, 90, 49,230,135, 5,111,215,203, 78,187, 83,111,242, +194,109, 77, 9,127,166,247,205, 2,125, 78, 93,206,184,140,118, 0,146, 80,254,254,165,149, 93,171, 16, 66,161, 48,215, 96, 48, + 4, 85,118, 15,159,207,207, 51,153, 76,193, 85,113,145, 36, 25,150,153,153, 25, 36, 22,139,193, 48,140,109, 55, 0,171, 99, 32, +237,188,251,137, 45, 80, 45,154, 55,111,110,174,140,211,219,219,251,187,188,188,188,126,246,125, 2,157, 4, 85,185,200,204,204, +236,215,178,101,203,239,138,138,138, 94,172, 64,188,124,249,222,123,239, 77,107,213,170,149,221, 10,100,219, 5,161,228,175, 66, +161,192,212,169, 83, 29,191, 97,181, 90,113,244,232,209,247, 38, 76,152,128,194,194,194,233,149, 60,123,120, 80, 80, 16, 97,219, + 80,188, 66,204,157, 59, 23,115,231,206,197,183,223,126, 75,112,185, 92,223, 42,242,211, 35,156,143, 75,139, 84,199,130, 85, 69, +100,248, 3, 40,237,155,117,224, 17,161,245, 56, 64,113, 5,255,237,208,181, 95,239,169,211,102, 73,182,253,118, 2,183,110, 92, + 69,234,153,159, 75,221,211,254,197, 9,200, 81, 20, 97,194,148, 15,189, 8,138,211,251,244,177, 61,255,181, 24,245, 63,184,104, +205, 10, 14, 23,240,223,237,220, 49,138,155, 41,186,133, 16, 63, 17,186,199, 52,225,214, 63,114,237, 93, 29,232,111,110,148,172, +146,113, 75,100,173,127,227, 13,244,176, 88, 16, 68, 81,160, 8, 2, 20, 0,146, 32, 96, 48, 26,113,105,204, 24,116,220,188, 25, +115,246,237, 19,127,249,242,203,110,137, 45,137, 68,114,133, 32, 8, 63,173, 86, 59, 8, 37, 27, 75, 63, 11,104,233,229,229,117, +128,101,217, 66,157, 78,215,238, 41, 74,151, 28, 37,115,244,101, 71,199, 60,148,172,168,114,107,103, 97,129, 64,240,230,240,225, +195,151,175, 90,181, 74,156,155,155,139,172,172, 44, 48, 12, 3,161, 80,136,200,200, 72,226,216,177, 99,254,179,102,205, 90,122, +224,192, 1, 65, 81, 81,209, 55,238, 12,108,184, 92,110,188, 76, 38,123, 41, 56, 56, 88,146,151,151, 87,172, 82,169,142, 26,141, +198, 55, 81,253,109, 83, 72, 46,151, 59, 58, 34, 34,226,213,208,208,208,224,204,204, 76, 69, 70, 70,198, 94,163,209,248, 35,170, +185, 81,179, 83,158,182,129, 45, 90, 61,128,236,136,136,136,235, 15, 30, 60,200,243, 32,103, 86, 68, 68, 68, 74, 53, 56, 37, 0, +126, 5, 16, 90,197,125, 89, 0, 70,194, 77,107,182, 35, 99, 89,235,193,249, 43,214, 79,140, 27,223,157,248, 97,122,191,200,183, +190, 61,118,142,228,177, 61,111,100, 27,210,235, 52,148,107, 34,203,182,165, 85, 89, 65, 85,217,181, 74, 97, 52, 26, 3,205,102, + 51,184, 21,108, 22,175,211,233,224,237,237, 29,232,106, 34, 69, 34, 17,126,254,249,103,112,185, 92,112,185, 92, 20, 22, 22, 34, + 44, 44,204,113,206,227,241, 28,159, 27, 52,104, 80, 37, 31,195, 48, 29, 41,138,130, 86,171, 5,195, 48,142, 67,165, 82,129,101, + 89, 8, 4, 2, 48, 76,201,118, 78, 78,215, 59, 86,196, 71, 16,196,136,208,208, 80,108,219,182, 13, 38,147,233,145,235, 82,169, + 20,201,201,255,108, 50, 66, 81, 20, 58,117,234, 68, 18, 4, 49, 2,192,244, 74,120, 89, 0,136,141,141, 5, 69, 81,160, 40, 10, + 36, 73, 58, 62,219, 15,134, 97, 48,119,238, 92,148,217,154,236,177,113, 62,109,168, 34, 50,124, 54, 42,240,209, 34,107, 57, 93, +206, 75, 60, 67,197, 18,233, 87,111,191,255,161,215,129, 83,215,240, 48,253,225, 35, 34, 11, 0, 46,255,254, 35,178,179, 50,145, +148,154,129,209,255,125,199, 75, 42,245,253,170, 76,131, 90,225,178, 81, 31,111,222,215, 31,143,236, 46,212, 90,178, 80,228, 7, + 80,141,249,224,138,117,152, 53,184,141, 64,234,205, 91,226, 74, 58, 5,124,254,239,139,142, 29,115,136,172,110, 70, 35, 4, 12, + 3,154, 97, 28, 34,203, 68,211,208,155, 76,144,107,181,184, 59, 97, 2, 88,139, 5,159,237,222, 45, 22,240,249,191,187,146, 78, + 0,224,241,120,242,189,123,247, 54,104,221,186,245, 73,184, 30,204,244, 88, 45,191,163,202, 16,211,182,109,219,132,205,155, 55, + 55,224,241,120,114, 79,112, 10,133,194, 97, 18,137, 36, 95, 40, 20, 14,171,102, 58, 73, 0,243, 39, 78,156,152,248,220,115,207, +157,176, 9, 43,135,168,121,238,185,231,142, 77,156, 56,241, 10,128,185, 21,148,245,242, 56,235,133,134,134, 46, 88,181,106,149, +248,246,237,219,200,204,204,132,197, 98,193,235,175,191, 14,134, 97,160,215,235, 97, 50,153,176,120,241, 98,137,191,191,255,108, +148,108, 20,236,202,179,243,124,124,124,110,111,218,180,105,248,253,251,247,189, 78,156, 56, 65, 36, 39, 39, 75,150, 46, 93, 58, +196,223,223,255, 22, 0, 65, 53,242,147,148,203,229, 63,236,217,179,231,237,228,228,228,176, 93,187,118,113,207,159, 63, 47, 95, +187,118,237, 36,185, 92,190, 25, 0, 85,205,119,212, 78, 44, 22,247,157, 57,115,166,245,236,217,179,153,103,207,158,205, 92,190, +124, 57,122,244,232,209, 45, 46, 46, 46,186,154,156, 49,222,222,222,207,207,156, 57,211,122,250,244,233,172, 11, 23, 46,100, 44, + 93,186,148,124,254,249,231,187, 47, 88,176,160,141,155,156,191,158, 61,123,182, 87,122,122,122,163,140,140,140,134, 25, 25, 25, + 17, 25, 25, 25, 17,153,153,153,225,217,217,217, 13,114,114,114,234,231,229,229,213, 79, 72, 72,232, 14, 96,171, 43,156,205,130, + 37,111, 79,127,189, 95,241,236,255, 14,100, 63, 25,251, 2, 59,235,245, 94,236, 75, 61, 91,255, 70,113, 56,196,133,148,135, 8, +243, 1,126,156,218, 33,188,126,128, 36, 57, 74,230,213,244, 41,171,155, 79, 27, 39,199, 46,164,148, 74, 37, 14, 28, 56, 0,155, +245,170,157,179,200,210,104, 52,200,206,206,182, 95,227,184,146, 78,169, 84,122,124,253,250,245,172,193, 96,128, 90,173, 70, 94, + 94, 30,210,211,211,113,247,238, 93, 20, 20, 20,224,230,205,155, 16,139,197,199, 93, 73, 39, 65, 16, 96, 24,198, 33,164,142, 30, + 61,138,137, 19, 39, 66,169, 84, 58,190,227,112, 56,142,207,246,255,169,138,211,110,121, 98, 24, 6, 23, 46, 92,192,228,201,147, +177,124,249,114,108,221,186, 21,251,247,239,135, 82,169,116,136, 45,154,166,171,228, 84, 40, 20,176, 90, 93, 27, 51,177, 44, 11, +181, 90,237,242,123,119, 22, 64, 28, 14,231, 17, 81,100, 63,220, 41, 75, 53,228,124,106,225, 66,100,248,138, 71,216,246, 15, 54, + 83, 93,239,218, 74, 36,201,225,141, 30, 49,254, 61,255,140, 60, 13, 50,115,213,160,200,127,250,189,232,126,227,193,161, 72, 92, + 60, 82, 98,184, 34, 41, 10,106,157, 17, 42,173, 25,195,199, 79,147,125,191,252,139,209,180,217, 80,105,140,151, 86, 64,100,148, +151,215,107, 45, 91, 54, 32,111, 8, 82, 17,253,210, 25, 48, 86,128, 61,253, 50,218, 21, 6, 81,205,127,231,191,166, 43, 50, 47, + 72, 6,110, 87,106,205,240,245, 21,249,181,105,131,184,208, 80,244,180, 88,192, 99, 89,188,144,155,139,171,211,166,193,184,115, + 39, 72, 0,188, 97,195,208,103,197, 10,156, 10, 13, 69,136, 94, 15,213,140, 25, 8, 60,124, 24, 60,169, 84,132,124,215, 22, 63, + 16, 4,129,222,189,123,227,216,177, 99,254, 3, 6, 12, 56,114,237,218,181,161, 52, 77,159,170, 78,222,250,248,248, 92,230,112, + 56, 97, 85,221, 71,211,116,134, 90,173,118,123,155, 17, 14,135,211,179, 83,167, 78,187,119,237,218,229,103, 54,155, 61, 50, 10, +225,243,249, 3,134, 12, 25,178,126,205,154, 53,210, 73,147, 38,173,223,191,127,127,177,201,100, 58,236, 78,145, 2, 48,127,221, +186,117,111,197,198,198,250, 78,154, 52,137,189,123,247,174,179,245, 42,176, 71,143, 30,207,173, 95,191, 62,164, 67,135, 14,239, + 77,158, 60,153, 7,224,179,170,172, 60, 94, 94, 94, 83,214,175, 95, 31,160, 80, 40,160,213,106, 29,141,108, 70, 70, 6, 68, 34, + 17, 72,146, 4, 73,146,224,114,185,248,234,171,175,252,167, 76,153, 50, 77,169, 84, 78,115,193, 74, 22,191,122,245,234,192, 23, + 95,124,145,188,127,255, 62, 72,146,132, 80, 40,196, 27,111,188, 65,234,245,122,191,184,184,184,141, 58,157,110,148, 59,121,200, +229,114, 71,199,199,199, 55,237,214,173, 27, 39, 53, 53, 21, 93,186,116,193,197,139, 23, 49,108,216, 48,110, 81, 81, 81,195, 89, +179,102, 77, 52, 26,141,238,198,113,145,139,197,226, 86,127,252,241, 71,122,253,250,245, 29, 13, 75,195,134, 13,153, 65,131, 6, + 41, 83, 83, 83,155,157, 61,123,182,160,107,215,174,238,108, 88, 94, 79, 44, 22, 55, 63,120,240, 96,118, 92, 92, 92,223,117,235, +214, 13, 1,128,142, 29, 59,238,157, 55,111,222, 9,165, 82, 25,117,234,212, 41,101,207,158, 61, 51, 92,228, 11,149,203,229,204, +212,169, 83,189, 42,187,105,195,134, 13, 42,148,108,184,220, 8, 64,165,251,181, 53,139, 8,153,189,100,218, 8, 17, 24, 51, 88, +139, 30, 48, 23, 3,102, 45,172,166, 98, 16, 60, 17, 96,209, 35, 80,160,196,175, 83,154, 73, 63,218,118,239, 6,115,147, 24,148, +170, 40, 58,140, 58,148,219,212, 0,136, 38, 8, 34,233,192,129, 3,232,212,169, 19, 14, 28, 56,128, 65,131, 6, 37, 57,139,129, +228,228,100,244,236,217, 19, 54,139,150, 75,190, 90,106,181,250,227,185,115,231,158, 30, 61,122,180,184, 84, 99, 64,146,240,245, +245,197,192,129, 3, 13, 58,157,238, 99, 87, 19,202, 48, 12, 56, 28, 14, 50, 50, 50,176, 97,195, 6, 44, 92,184, 16,145,145,145, +176, 88, 44,143,136, 45, 91,187,231, 82,227, 71,211, 52, 46, 93,186,132, 45,155, 55,227,179,217,179,225,237,237, 13, 0, 48,155, +205, 80, 22, 22, 66, 40, 20, 58,196, 88, 21,194,105,251,157, 59,119,166,133,133,133,149,154, 50,180,255,181,181, 89,176, 90,173, +160,105, 26, 6,131, 1,203,151, 47,167, 89,150,221, 94, 85,255, 99, 23, 69,211,166, 77,131,209,248,143, 65,189,141,205, 39, 57, + 34, 34, 2,109,219,182,117,156,147, 36,201,186,202,249,125,215, 86,208, 59,221,221,108,238, 82, 0, 64, 88, 88, 24,154, 53,107, + 6,185, 92, 94, 33,103,109,107,145,234,192,141,200,240, 21, 11,173,199,177, 83, 54,151, 39,236,211,184, 73, 83,226, 97,182, 18, + 28, 14, 7, 18,159, 0,116,125,117, 58, 40,138,132,151,111, 0, 8, 70,255,143, 34, 38, 41,112, 40, 14,148, 69,122, 68, 52,106, + 66, 10,132,162, 62,186, 42,132,150,212,135,187,122,230,168,174,194, 2, 58, 3,162, 6, 66, 48,246,238, 52,148, 15,210,191, 8, + 31, 12,136, 20,197,238,189,182, 26,106,203,243,174,164,151,162,105, 4, 81, 20,204, 44,139,171,211,166, 33, 58, 62, 30, 73,118, + 97, 24, 31,143,164,216, 88,200,184, 92, 8, 72, 18,172,197,242,200,156,190, 43, 66, 11, 0,210,211,211,177,115,231, 78,217,136, + 17, 35,118, 39, 39, 39,143,118, 83,108,216,185, 2, 46, 92,184, 16,212,168, 81,163, 10,239,249,251,239,191,209,190,125,123,183, +167,167,248,124,254,128,231,159,127,126,219,206,157, 59,125, 82, 82, 82, 16, 20, 20, 84, 99,161, 37, 16, 8,122,246,235,215,111, +219,166, 77,155,164,249,249,249,136,143,143,151,190,252,242,203, 91, 19, 19, 19, 95, 53, 26,141,174,136,205, 82, 34, 43, 62, 62, + 94,181, 97,195,134,239, 81,122,138, 48,123,195,134, 13, 63,116,232,208,225,237,216,216, 88, 95, 0,111,217,124, 7, 42, 21, 91, + 2,129,160,119,227,198,141, 75,141,106, 5,130, 18, 99,147, 68, 34,129,143,143, 15,120, 60, 30,140, 70, 35,162,163,163, 9, 62, +159,223,221,149,103,246,246,246,238,247,218,107,175,145,103,206,156, 65, 78, 78, 14,124,125,125,225,229,229, 5,134, 97, 48,105, +210, 36,106,249,242,229,189,117, 58,247,102,184,234,215,175, 63,164,111,223,190,156,235,215,175,227,254,253,251, 48, 26,141,184, +117,235, 22,164, 82, 41,198,142, 29,203, 91,178,100,201,203,153,153,153,238, 10,173, 86,177,177,177,185,206, 34,203, 14,137, 68, + 66, 52,109,218, 84,233,239,239, 31, 3,192, 29,161,213,234,157,119,222,201, 91,180,104, 81,207, 99,199,142, 57,130, 94, 30, 59, +118,108, 22, 0,124,243,205, 55,167, 3, 3, 3, 99, 0,184, 42,180,192,178,172,245, 63,255,249, 79, 26,159,207, 7,151,203, 5, +159,207, 47,117,240,120, 60,144, 36,233,109,175,206, 85,241,221,184,159,179,120,210,172,165, 75, 37, 66,138,251,254,171,173,209, +192,151, 7,136,100,224,245,252, 8,132,111,137,209,146, 85,254, 13,252,254, 17,150,189,166, 36, 99,127, 50,252,102,102,252, 2, +239, 21, 22, 22, 61,225, 62,160, 3,128,255,161,100,115,221,217, 0, 46, 60, 37,125,211, 21, 0,209,131, 6, 13,114,136,173, 67, +135, 14, 97,192,128, 1, 80,169, 84,184,126,253,186,179,200,114,103,131,229, 43, 22,139,229,175,159,127,254,185,235,136, 17, 35, + 8,167,250,133,148,148, 20,220,188,121, 51,201, 85, 62,146, 36, 97,181, 90,193,229,114,177,116,233, 82,152,205,102,252,244,211, + 79,216,177, 99, 7, 72,146, 4, 65, 16, 32, 8, 2, 82,169, 20,223,126,251,173, 91,237, 30,195, 48,216,184,113, 35, 62,154, 53, +203, 33,178,108, 51, 25, 8, 9, 14,134,127, 64, 0,238,221,187, 87,165,208, 42, 44, 44,156,179,111,223, 62, 84,230, 12,191,111, +223, 62,199,231, 50,206,240, 85,247,115, 20, 5,163,209,136, 23, 94,248,103,171,216,119,222,121,199,241, 89,169, 84,130,162, 40, +123, 94, 16,174,114,234, 89,224, 85,225, 63,223, 13,252,224,131, 82, 22,186,138, 56, 31,135, 22,241,148,117,171, 28,177, 21,109, +179,206,202, 1, 12, 66,137,143, 86, 54,240, 24,125,180, 88,214,218, 60,172, 94, 40,254,186,155, 12, 14, 69,129,239, 19, 0, 31, + 89, 48,172,180, 9,234,188,251, 56,185,235, 59, 0,192,186,141,219, 65,146,150,243,244,219, 0, 0, 20, 49, 73, 68, 65, 84, 36, + 56, 28, 10, 70, 19,131,200, 6,161,176, 90,173,205, 43,227,110, 1,116,237, 29, 28,208,169,126,184, 47,113,221,239, 62,154, 6, +249,151,153, 8, 17, 32, 50,203,139,232,226, 37,234, 88,168,214,116,189, 1,156,173, 82, 12,144, 36, 72,130,128,152,199,131,113, +231,206, 18,175,205,248,146, 62, 43, 41, 54, 22,228,111,191,193, 91, 32, 0, 69, 16,224,216, 76,208,213,129, 70,163, 1, 65, 16, +216,178,101,139,223,216,177, 99,183, 94,191,126, 61,214, 96, 48,236,116,135, 67,165, 82, 13,234,214,173,219,137,141, 27, 55, 6, +134,132,132, 60,114, 61, 39, 39, 7,227,199,143,207, 87,169, 84,110, 5,117, 19, 10,133,195,134, 12, 25,178,254,199, 31,127,148, +222,185,115, 7, 90,173, 22,129,129,129, 53, 45, 10, 49,157, 59,119,222,189,115,231, 78,159,156,156, 28,168,213,106, 24,141, 70, +108,217,178,197,119,224,192,129, 59, 83, 83, 83, 7, 0, 72,172,130,227,115,103,145, 53,121,242,228,107, 0,130, 0,172, 46,171, + 65,109,215, 90, 59,137, 45, 53,128, 37,149,140, 68,195, 37, 18, 9,242,242,242, 48,126,252,120,220,190,253,143, 1, 52, 52, 52, +212, 49,210,187,119,239, 30, 2, 3, 3, 65, 16, 68,144, 43, 15, 29, 24, 24,232,101, 50,153, 48,113,226, 68,164,167,167,151,226, +204,200,200, 0, 65, 16, 98,119, 51, 50, 56, 56, 56, 88,175,215,163, 71,143, 30, 48, 24, 74,246,245, 29, 57,114, 36,184, 92, 46, +242,242,242,192,229,114, 3,170,241,126, 2, 6, 13, 26, 84, 97,104, 21,169, 84,106,246,243,243,107,225, 38,167,255,203, 47,191, +156, 25, 31, 31,255,200,194,150,139, 23, 47,190, 34,147,201,142,201,100,178,166,110,114, 90,157, 69, 21,143,199, 43, 37,180,184, + 92, 46, 72,146,116,217, 71,237,118,158,110, 21,135,200,110,187,104,234,139,227, 27, 4,249,128,213,230,130,247,252, 28,252,149, + 47,194,210,229, 7, 1, 0, 31,190,209, 30,109,250,205,135,233,199, 23, 49,173, 11,197, 31,147, 97,156, 9,224,243, 39,220,230, +127, 13,192,190, 10,110, 13,128,182, 79, 81,127,228, 16, 91,135, 14, 29, 66, 84, 84, 20, 10, 11, 11,145,154,154, 90, 93,145,101, +111,239, 62,250,242,203, 47,127, 31, 58,116,168,196, 62,104, 21,137, 68,152, 49, 99,134, 94,171,213,126,228, 86, 33,178, 90,193, +225,112, 28,131,100,161, 80,136,232,232,104,135,200, 34, 8, 2,197,197,197,224,112, 56,246, 21,137,132,139,105,132, 60, 36, 4, +222,222,222,104, 18, 25,137, 59,182,118,196,254, 89, 32, 16,128, 32, 8,208,116,149,134,188, 34,155, 83,251,116, 79,119,201,118, + 81, 84,169,233, 56, 52, 20, 86,171,213, 46, 50, 89, 79,112, 6, 4, 4, 64,171,213,186,202,249, 84,162, 2,139,150, 93,104, 13, + 66,137,175,214, 35,225, 29,122, 1, 56,137, 90, 92, 82, 73,128, 37,172, 44, 11, 14, 69,218,230,110, 41, 80, 20, 9,101,126, 54, + 86,204,121,203, 38,178,118,224,192,233, 84,132, 53,142,250,103, 30,151, 32, 0,182,242,194, 29,232,195,139,159, 50,180,179, 40, +151,200,134,111,168, 24, 66, 97, 25,253,232,199, 3, 17, 65, 98,106,239, 48,241,165,125,134,248, 27,106,115,149, 29,133,144, 36, + 75,156,223, 9,162, 92,231, 30,210,118,141, 34, 8,176, 44, 11,214,234,158,223,177, 93,200,139, 68, 34,152,205,102, 80, 20,133, +149, 43, 87,250,246,235,215,111,181,187, 66, 11, 64, 74,110,110,238,192, 73,147, 38, 29,218,190,125,123, 64, 64, 64, 64,169,209, +195,164, 73,147, 20,185,185,185, 3,225,166,211, 61,151,203, 93,189,102,205, 26,233,131, 7, 15, 80, 92, 92, 12,145, 72,228,104, +124,170, 91, 62, 59,118,236,120,228,240,225,195,126,106,181, 26,102,179, 25, 34,145, 8, 44,203,130,162, 40,252,242,203, 47,254, +131, 7, 15, 62,248,240,225,195,231, 43, 75,171, 72, 36,122,213, 38,156, 16, 27, 27,235, 27, 27, 27,219, 11,168, 48, 82,175, 3, +177,177,177,190,211,167, 79,127, 89,175,215, 47,169,228,153,211,149, 74,101,136, 72, 36,194,174, 93,187,224,229,229, 5,177, 88, +140,208,208, 80, 40,149, 74,136,197, 98,176, 44, 11,139,197, 98,111, 44, 10, 92,121,240,252,252,124, 45, 77,211, 62,135, 14, 29, + 66, 65,193, 63,255,210,160, 65, 3,168, 84, 42, 88,173,214, 98,119, 51, 51, 43, 43, 43,151, 32,136,250,127,253,245, 23, 30, 60, +120,128, 1, 3, 6,224,183,223,126, 67,251,246, 37,179,195, 38,147,169, 58, 65,252, 24,138,162,216, 74,202, 45, 1,192,207,147, +156,182,206,203, 45, 78,171,213,106,181,139, 44,231,191,206,226,171,138,223, 44, 85,157, 91, 4,123,109, 88, 52,165,239,248, 23, +163, 2,160,207,191, 15,161,119, 0, 8,223, 8, 44, 93,126, 16,215,255, 46,121, 95, 75,183, 94,198,182,184,129,128, 72,134,102, + 62, 10,132,120,115, 94,187,153,247,196,133,150,143,243, 56,225,105,237,152, 6, 12, 24, 0,165, 82, 9, 47, 47, 47, 79,248,231, +156,211,235,245,183,246,236,217, 19, 51,104,208, 32,240,249,124,220,186,117, 11,137,137,137,169, 0,206,185, 43,180,184, 92, 46, +190,252,242, 75,188,245,214, 91, 8, 14, 14,198, 71, 31,125, 4, 14,135,227, 56, 8,130,112, 88,184,220, 65, 80,112,229, 11, 31, +237, 14,241, 85, 25,195,125,124,124,190, 36, 73,114, 4,229, 66,198, 49, 12,195, 88,173,214,237,106,181,186,210,240, 14,118,199, +117, 87,222,133,115, 30, 84,209,167,213,152,243,113,104,145,234,160,236,106,195, 10, 44, 90,246, 85,135,143,108, 5,100,127,202, +147, 54,147,221,201,218, 74, 40, 65, 82, 55, 51, 50,179,224,239,231,101, 19, 89,182,131, 36,209, 38,170,100, 48,123,224,116, 42, +194, 26, 69,129, 67, 81,224, 80, 20,188, 68, 2,228,230,100,131,195, 33,111, 86,196,219,138,194,208,161, 77,235, 71,248,249,115, +161, 8, 52, 65, 30, 92,129, 97, 32,198, 27, 97,114, 62,250,251, 11,195, 91, 81, 24, 90,185,245,141,117, 8, 45, 51, 77,131, 55, +108,152, 99,186, 48, 41, 54, 22,209,241,241, 96,134, 12,129,206,108, 46,101, 42,174,174,208, 18,137, 68, 40, 42, 42,194,232,209, +163,149, 22,139,229,237,106,102,113, 98, 65, 65,193,240, 49, 99,198, 20,216, 5,140,217,108,198,152, 49, 99, 10, 10, 10, 10,134, +187, 96, 37,122, 4, 22,139,229,237,246,237,219, 43, 21, 10,133, 35,157,213,105,112,236,144,201,100, 7, 54,108,216, 32, 51, 26, +141,160,105,218,193, 41, 18,137, 64, 81, 20, 2, 3, 3,177,109,219,182, 64,153, 76, 86,233,158, 85,122,189,126, 79,124,124,188, + 10, 0,226,227,227, 85, 4, 65, 36, 16, 4,177,150, 32,136, 53,101,142,181, 4, 65, 36, 56,223,171,215,235,119, 87,198,109, 50, +153, 18, 82, 83, 83, 89,177, 88, 12,138,162, 96, 54,155, 33, 20, 10, 29, 38,113,141, 70, 3,189,190,100,154, 59, 49, 49, 17, 22, +139,229,140, 43,207, 94, 84, 84,116,124,227,198,141,214, 6, 13, 26, 32, 42, 42, 10,209,209,209,232,220,185, 51,194,195,195, 49, +111,222, 60, 70,167,211,185, 93,247,178,178,178, 14,252,250,235,175,150,250,245,235, 35, 38, 38, 6, 2,129, 0,109,218,180, 65, +104,104, 40, 22, 46, 92,104, 82,171,213,135,170,241,154, 30, 38, 39, 39, 83,149,136, 92, 41, 92, 88,189, 91, 6,233,151, 46, 93, +162, 58,119,238,188,183,236,133,142, 29, 59,238,245,242,242,242,177,155,216,221, 25,145, 59,139, 43,129, 64,224, 56,236,223,115, + 56, 28, 87, 70, 63,100,139, 96,175, 13, 95,189,213,103,252,139, 81,126,216,123,252, 2,120,102, 21, 96,170,100, 70,144,177,128, +224, 73, 16,236,195, 13,123, 10,250,128,105, 0,174,161, 36, 14,211, 71,120,186,224,112,124, 47, 40, 40, 64,106,106, 42, 18, 19, + 19,209,185,115,103,156, 57,115, 6,248,199, 65,222,109,168,213,234,143,226,226,226,116,246,149,124,179,103,207,214, 23, 21, 21, +125,228,110, 27,204,178, 44,184, 92, 46,154, 53,107,134,233,211,167,227,224,193,131,184,117,235, 22, 44, 22,139, 67, 8,217,125, + 50,221,177,104,241,120, 60, 4, 7, 7,195, 98,177, 56,172, 89, 0,112,231,246,109,112, 56, 28, 88,173, 86,152, 76,166, 42, 45, + 90, 62, 62, 62, 95,174, 95,191,254, 61,133, 66, 33,207,207,207, 15,114, 62,114,115,115,131,178,179,179,131, 50, 51, 51,131,210, +211,211,131,210,210,210,130,238,223,191, 47, 95,188,120,241,123, 62, 62, 62, 95,186,146, 78,138,162,208,166, 77, 27,188,243,206, + 59,142, 99,213,170, 85,142,227,228,201,147,110, 59,175, 83, 20,133,102,115,151, 98, 96, 62,235, 56, 14, 6, 18,142,227,250,135, +147, 43,227,172,117, 45, 82, 45,253, 98, 91,109,232,188,177,116, 57,176,175, 58,180,183,101, 14,183,141,178,206,240,181, 6,218, +100, 56,241,247,221,219,125,154,181,234, 64,230, 40,180,165,150,127, 70,247, 30, 14,130, 32, 80,175, 81, 20, 40, 14, 7, 20, 69, +130, 67, 81,240,149, 10,145,250,215, 95, 86,163, 94,127,162, 60,206, 94, 0,135, 47,226,175,122,163,127, 27, 97, 22, 63, 15,129, +114, 9,120,220, 18,237,200,254, 61,188, 76, 15,193, 1, 90,121, 99, 66,166,191,232, 68,174, 97,149,159,206,188, 55,161,130, 17, +160,213,106,133,151, 64, 0,131,209, 8, 61, 77,163,247,138, 21,142,233, 66,146, 32,112, 5, 64,235, 21, 43,112,118,231, 78, 72, +249,124, 64, 32,112,121, 85, 72,121, 66, 75,161, 80, 96,220,184,113, 5,217,217,217, 99,171,227,163,101,135,209,104, 60,149,147, +147, 51,118,248,240,225, 91,118,237,218, 37, 27, 62,124,184, 50, 39, 39,103,172,139,126, 79,143,192, 96, 48,236, 76, 79, 79, 47, + 30, 55,110,220,230,173, 91,183,250, 7, 4, 4, 56, 70, 34,213, 42,172, 4,161,232,219,183,175,192,149,251,170,184, 37,206,230, +220,254,150,205,178,213,122,242,228,201,103, 81,226,127,229,140,185,235,214,173, 27,233, 52,197,184, 22,192,138,202,136, 53, 26, +205,154,233,211,167,255,247,212,169, 83, 1, 66,161, 16, 4, 65,128,199,227,161, 73,147, 38,142, 85, 52, 92, 46, 23, 44,203,226, +131, 15, 62, 80,228,229,229,125,227,226,187,153, 28, 23, 23,215,211, 96, 48,248,141, 27, 55,142, 18, 10,133,200,205,205,197,242, +229,203,153, 31,127,252, 81,165,211,233,198, 87, 67, 8,111,252,226,139, 47,122,107,181,218, 70,147, 38, 77,226,169,213,106,232, +245,122,204,156, 57,211,244,195, 15, 63,100,232,245,122,183, 3,254,118,233,210,229,110, 90, 90, 90,247,226,226,226, 66,177, 88, + 92,214,218, 71, 72, 36,146, 14, 0, 54,187,195, 25, 29, 29,125,239,225,195,135,157,231,207,159,159, 96,177, 88,184, 23, 47, 94, +116, 56,195,175, 92,185,242,164, 80, 40,236, 11, 55, 55, 95, 37, 8,194, 42, 16, 8, 74, 89,176,202,126,230,112, 56, 85,182,105, +205, 67,196,243,191,122,179,231,248, 23, 90,248, 96,207,241,203,136,219,253,247,205,200,241,129,205,158,243,203,135, 53, 63, 21, + 31,190,209, 30, 75,183, 94, 6, 80, 50,117,104,205,187, 14,182,240, 30, 88,239,250,184,175, 84,100, 61, 5,125,192, 73,148,132, +204,120,218, 80, 74,100, 93,191,126, 29,125,250,244, 1, 0,156, 57,115, 6,221,186,117,195,153, 51,103,208,189,123,119,183, 99, +105,217,240,135, 70,163, 73, 59,121,242,100,203,250,245,235,227,220,185,115,247, 1,252,225,110, 34,237, 66,139,195,225,224,245, +215, 95, 71,191,126,253,208,160, 65,131, 82,171, 13,237,159,221, 17, 27, 52, 77,163, 85,171, 86, 48,154, 76,224,241,120,142,169, + 73, 14,135,131,192,160, 32,220,189,123,215, 37,139, 22, 73,146, 35, 94,125,245, 85, 50, 37, 37, 5,163, 70,141,194,150, 45, 91, + 42,188,119,204,152, 49,248,249,231,159,241,234,171,175,146,159,124,242, 73,165,225, 29,236, 78,232,174, 60,147,189,159,174,170, +221,247, 20,103,109,107,145,154,192, 41,180, 67,185,147, 38,229,124, 23, 95, 74,104, 57, 5, 9,171, 29,161, 69,155,183,252,246, +211,119,211, 59,175,238, 30, 40, 15,242,129, 82,173,119,136,173,164,147, 59, 0, 0, 67, 39, 47, 0,135, 42,153, 82,148,122, 9, + 33,226, 81,216,185,233, 27,133,217,108, 40,183,116, 21,113,201,183, 62,233,218,196,135, 47,177, 64, 19,194, 34, 42,240,159,157, +114,136, 70, 59, 30, 21, 92,237,252, 16,112,189, 16,111, 60,231, 37,253, 38, 69,245, 22, 44,214, 85,143,116,136, 42,149, 94,245, +215, 95,162, 1,235,215,227,226,216,177,168,199, 48, 72, 8, 13,133,140,203,133,143, 64, 0,146, 32,160,223,191, 31,103,119,237, + 66,176, 64, 0,120,123,131,158, 55, 15,198,212, 84, 88,138,138,244,213, 24,153, 97,228,200,145, 10,133, 66, 49,220,100, 50,157, +170,105, 62,235,245,250,195,233,233,233,111,117,233,210,101,181,197, 98,121, 91,175,215,215,104,101,148,201,100, 58,156,147,147, + 51,108,228,200,145, 59,118,239,222, 29,224,235,235, 91,109,174,130,130,130,246, 30, 42, 78, 86, 0,159,217,156,219,223,138,141, +141,245,189,116,233,210,127, 55,108,216,176,218,105, 52, 17, 52,113,226,196, 55,203,136,172, 42, 87, 29, 2,120,152,151,151, 55, +111,198,140, 25, 11,150, 45, 91,230,101,119,124,191,122,245, 42,104,154, 6,151,203, 5,195, 48,152, 56,113,162,182,160,160, 96, + 41, 42,142,232,252, 72,209,210,104, 52, 77,230,207,159,191, 97,197,138, 21,253, 40,138,146, 48, 12,163, 43, 46, 46, 78, 48, 24, + 12,227, 81,189, 56, 90,214,252,252,252,113,159,127,254,249,184,229,203,151,191, 74,146,100, 16, 77,211,138,162,162,162,125,122, +189,254, 7, 84, 99, 42,233,220,185,115,249,111,188,241,198,223,249,249,249,205,195,194,194,212, 94, 94, 94, 38,147,201, 68,137, + 68, 34,169, 68, 34,137, 6,112,142, 32,136, 27,238,112, 38, 37, 37,229, 76,154, 52,233,129,209,104,108,182,118,237,218,211, 82, +169,244, 56, 65, 16, 4,143,199,243, 19,137, 68,125, 0, 36, 16, 4,113,199, 29, 78,146, 36,173,206,214,171,178,254, 89,124, 62, +223, 37, 31,173, 70,129,226, 9,253,154,112,176,231,196,101,196,237,121,184,145, 97,217, 93,187,146, 10,247,127,212, 13, 48,111, +127, 3,109,134,111, 46,153, 46, 4, 96,205,187, 14,243,246, 49, 32,196, 1, 56,157,201,133, 90,111, 62,128, 58,148, 7, 71,120, + 7,133, 66,129,148,148, 20,187,200,138, 6,128,238,221,187, 39,217,197, 86, 98, 98, 34, 98, 98, 98,146, 0,112,221, 45,175, 26, +141,102,198,232,209,163, 15,219, 6,199, 51,170, 49,240,115, 8, 45,187,160,106,208,160,129,227,220,249,112,242,209,114, 9, 12, +195,128,199,227,129,195,225, 64, 30, 26,234,248, 45,150,101,113,247,238, 93, 40,149, 74,151,132, 22, 69, 81, 20, 65, 16, 24, 53, +202,181, 5,201,255,249,207,127,144,144,144, 0,202, 69, 85, 72, 81, 20, 34, 34, 34,170,188,199,174, 75, 93,229, 12, 11, 11,171, + 54,103,109,107,145,234, 10,172,242, 62,151, 39,170, 42,170, 16,143, 11, 89, 90,173,250,179, 77,235, 87, 46,155, 56,229, 3,175, +235,247,114,161,214, 26, 65, 81,164,115,227, 9, 14,135,130, 84, 34, 68,253, 16, 31,108,253,254,127, 69, 69, 26,213,231,168, 96, +223,195, 6,222,188,201,125, 59, 60, 39,224,201,117,104,214,122, 36, 40,225, 63, 34,128,205,169, 96,118,176,219,239,120,233,161, + 78,248,219, 67,221,228, 43,133,166, 71,133,150,201,244,226,236,254,253,143,196, 29, 60, 40,238,184,113, 35,238, 77,156,136, 80, +189, 30, 2,219, 84, 34, 73, 16,240,226,241,224,197,227,149,136,172,229,203,161,167,105,172, 24, 59,182,216,104, 50,245,119,167, +146, 23, 20, 20, 96,200,144, 33,249, 89, 89, 89, 3, 81,141,169,189,138,160,211,233,118, 2,216,233, 41, 62,163,209,120, 42, 35, + 35,227,165, 33, 67,134, 28, 60,124,248,112,224, 83, 18,100,206, 46,182,204,151, 46, 93,122,243,244,233,211,247, 80,122, 99, 81, +213,233,211,167,239, 77,154, 52,137,216,176, 97,195, 15, 0,190,128,139, 1, 60,117, 58,221,202,163, 71,143,162,103,207,158, 95, + 44, 90,180,200,191,125,251,246, 8, 10, 10, 66, 81, 81, 17, 18, 19, 19, 49,109,218, 52,165, 70,163, 89,164, 82,169,150,185,153, +102,179,209,104, 28,227,188,148,218, 19,249, 96, 52, 26,127,204,206,206,254,209, 83,132, 83,167, 78,189,122,247,238,221,130,192, +192,192, 78, 60, 30,175, 53, 74,252,128,114, 0,252,224,174, 32,178, 99,202,148, 41,127,221,189,123, 87, 81,175, 94,189,206, 54, + 78, 95,148,108, 99,180,190, 26,156, 89,151, 47, 95, 14,235,208,161, 3,201,229,114, 89,138,162,192,229,114, 89, 14,135,195,218, +252,106, 88, 0,216,183,111,159, 0, 64,165,219,230,220,203,211,207, 31,243,191, 63, 63,185,145, 99,216,149,154, 91, 60, 29, 0, +187,253,186,248,247, 54,129,212,139, 47, 54,205,128, 49,190, 59, 8,105, 73,160, 74, 86,155, 13, 66, 18,140, 12,107, 61,204,221, +123, 51,135, 6,177,164, 78, 83,149, 63,174,134, 45,188, 67,118,118,182,179,200,178, 91,173,162,187,119,239,158,100, 19, 89,246, +107,213,241, 47, 59,102,181, 90,107,212,135,177, 44,139,184,184, 56,172, 91,183, 14, 85, 69, 52,183,173,238, 35,170,226,179, 91, +180, 24,134,129,217,108,198,245,235,215, 29, 49,187,236,211,133,246,208, 14, 52, 77, 87,186, 90,157, 97, 24,198,100, 50,225,151, + 95,126,113, 73,108,109,219,182, 13, 6,131, 1, 76, 21, 10,206, 57, 20, 67,219,182,109,161, 84, 42, 29,139,125,162,163,255, 9, +149,103, 54,155,221, 18,174,118,206,102,205,154, 65,161, 80,192,238, 47, 92,127,236, 63,198, 30, 90,167,251,183,150,251, 10, 45, + 90,143,189,199, 20,136,165,135,219,119,237,215,109,236,155,211, 36, 90, 35,131, 7, 15,210,144,159,151, 13,146, 32, 33,175, 23, +134,240,240, 8,136,248, 36,182,196, 47,211, 37,157, 61,254,167,182,168,112, 64, 69, 92,131,124,120,103,151, 15,235,214,185,113, + 99,111, 2,180, 5, 96, 44, 0,109, 1,172,182,191,246,239,172,165,203, 92, 74,138,138,253,228,138,242,252, 1,181,185,220, 61, +171,134, 3,221,124,101,178, 35,115,247,237, 19, 91,205,102, 20,204,152, 1, 49, 77, 67,104, 27,149,148, 60,136, 0,244,188,121, + 37, 34,107,204,152, 98,181, 74,229,214, 22, 60, 1, 1, 1,151, 9,130, 8,200,207,207,127,166, 34,195, 7, 6, 6, 30, 96, 89, + 86,161, 80, 40,218, 63, 69,233, 10, 2,160, 2, 96, 46,103, 32, 17, 8,247,253,127,236,136, 8, 12, 12,252,132, 36,201, 46, 44, +203,250,147, 36, 89,104,181, 90,207,229,229,229, 45, 6,112,183,174, 63,125, 98,176, 71,134,111, 88,197,125,121, 0,222, 71,137, + 83,240, 3, 87,201,219,248,248,248, 24,249,150,221,175, 68, 9,122,143,136,246, 65,163, 16,111,112,121, 66,100,105,104, 28,187, +161,193,250,147, 57,233,122, 11, 51,248,118,126,113,114,221,171,168, 20, 30,223,130,199,147,144,201,100, 23,142, 28, 57,210,190, + 81,163, 70,164,179,195,187, 61, 86,158,125,122,139,195, 41,209,114,167, 78,157,162, 71,141, 26,117, 46, 55, 55,183,103, 69,156, +222,222,222,191, 95,187,118,237, 5,181, 90,253,136,160,114,142, 20,111, 63,215,233,116,152, 50,101,202,209,138,182,224,241,241, +241, 89,190,108,217,178,247,134, 14, 29, 74,218,195, 81, 56, 31,246,237,130,236,135,217,108,198,230,205,155,173,223,124,243,205, +183,106,181,186,194,169, 67,185, 92,158,158,149,149, 21,102, 15,181,224, 74, 80,209,136,136,136,236,180,180,180,208,199,201,249, + 12, 11,174, 82,214,173, 39, 98,154,224,138, 68, 83,189,189,252,230, 12, 29,253,142,127, 68,227, 72, 34, 88, 94, 15, 4, 72,228, +230,100, 34,237,239,219,236,238,159,190, 43,208,105,148, 95,234,245,186,239, 42,227,105, 1, 52,110, 40,229,109,231, 51,104, 10, +187, 0, 42,179, 63,213, 35, 35, 14, 0,102, 46,121,243, 65,145,101,228,141, 74,166,125,236, 98,235,179,221,187,197,252,166, 77, + 31, 9, 20,103,181, 90, 97, 76, 77,197,138,177, 99,221, 22, 89,117,168, 67, 29, 60,130, 70,168, 58, 70,150, 5, 37,241,185,220, +181,152, 16,205,130, 36, 35, 89, 96, 4, 9,107, 43,146, 32,248, 52,139, 91, 96,241,187,152, 83,188, 58, 41, 27,250,186,236,119, + 9, 79,237,166,210, 0, 36, 50,153,236, 56, 69, 81,225,118,139,140,179,181,190,156, 13,165, 31,228,230,230,246, 5, 80,217, 10, +225,198,222,222,222,223, 49, 12,211,209,149, 77,165, 41,138,186, 88, 84, 84, 52, 21,149,108, 42, 93, 27,171, 14,253,253,253,239, +166,165,165, 53,182,175,162,118,238, 43,203, 91, 89,126,231,206, 29,244,234,213, 43, 45, 39, 39, 39,226,113,114, 62,173,168, 96, +213,225,211, 99,209,114, 66, 40, 79,224, 53,142, 47, 18, 62,111,181,208,205, 64, 0, 28, 46,247,166,201,160, 63, 97,212,107, 55, +161,130,233,194,199,137,225, 64, 55, 1,159,255, 59, 79, 42, 21,149, 39,218, 44, 69, 69,122,163,201,244, 98,157,200,170, 67, 29, +234, 80,135, 58, 60, 67,104, 42,147,201,142,112,185, 92,129,179,152, 44,251,217, 14,154,166, 13,249,249,249, 3, 0,220,122,204, +156,255, 63,225,166,147, 90, 63, 87, 57,109, 71,175,167,157,179, 22,159,157,245, 32,103, 47, 27,231,220,103, 36,157,189,158, 86, + 78,251,243,186,193,219,207,157,114,228,169,252,116, 74, 39,235,233,116,214, 22,167,167,234, 81, 57,233,100,107,225,189,207,125, + 70,210,217,235,105,227, 44, 91,126, 92,228,117,139,211,197, 50,229,110, 58, 89, 79,167,179,182, 56,107, 90,143, 42, 73, 39, 91, +211,178, 84,193,187,159,139,103, 16, 41,237,192,166,180, 3,123, 61,166,220,184,141,177, 21,253,159, 91,142,132,181,181, 18,192, + 30,118,223,198, 79, 60,173,156,206,249,224,201,173, 2,106, 97,219,129,147,158,230, 44,147,159,158,194, 92,219, 10,147, 4,184, + 16,112,212,157,103,247,196,123, 47,243,172, 30,225,173,134,200,114,139,211, 83,229,190,182, 57, 61, 85,151,202,114,122,162,220, +151,247,222,107,241, 29,121, 42,157, 30,169, 75,181, 81,230,203, 41, 63, 53,230, 45,203,233,137,186, 84,150,211, 19,229,254,113, +112,122,162, 46,149,199,233,137,114, 95,209,187,127, 86, 13, 77,246,233, 66, 91,136, 7,194, 5,177, 21, 15, 0,100,117, 50,173, + 22, 45,101,189, 61,205,233,233, 52,215,134,216,116,195, 2,243,196, 57, 61,252,142,230,218, 56, 61, 57,186,233,237,169,119, 84, + 27,229,221,153,211, 83,252,101,121, 60,241,158,202,227,172,105,122, 43, 72,167,199,159,189,166,229,254,113,113,122,248, 29,121, +164, 46,149,225,236,237,225,193, 64,111,167,243,185,158,228,244, 84, 93, 42, 39,157, 53,126, 79,229,113,214, 52,189, 21,164,211, +227,207,238,137, 62,164,182,120,159,164, 69,139, 37, 43, 44, 19,241,101,142,199, 34, 52,158,216,148,156,155,220,255, 42, 78, 55, +167,103,250,213,194,187,127,162,233,244, 36,103,217, 52,122,114,186,167, 54,211,233, 73, 78, 55,210,250,175,227,124,214,222,251, +211,152,159, 21,241,213,100, 90,170, 34,235,104,109,164,211,147,156, 46,114,255, 43, 56,107,240,238,255,117,224, 60, 45, 9,177, +103,188,135, 71, 38,240,176, 5,166,214,158,219,195,233,236, 93, 27, 22,194, 90,128,199,211,105, 27, 41,207,169,133,103,127, 86, +242,180,174, 46,213,213,165,167,174, 46,149, 41,147,189, 61,104, 41,242,168,229,185, 44,167, 39,126,195,153,195, 83,101,180,182, +159,221,147,117,169, 54,222,253,179,134,255, 3, 32,187, 36, 94,196,121,194,218, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index 3e27fa48dab..b4fad1f849a 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -641,10 +641,11 @@ DEF_ICON(VISIBLE_IPO_OFF) DEF_ICON(VISIBLE_IPO_ON) DEF_ICON(DRIVER) + /* ANIMATION */ +DEF_ICON(SOLO_OFF) +DEF_ICON(SOLO_ON) #ifndef DEF_ICON_BLANK_SKIP /* available */ - DEF_ICON(BLANK184) - DEF_ICON(BLANK185) DEF_ICON(BLANK186) DEF_ICON(BLANK187) DEF_ICON(BLANK188) diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 43056e0c28c..1fa0dd886c1 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -645,9 +645,9 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie * - need special icons for these */ if (nlt->flag & NLATRACK_SOLO) - special= ICON_SPACE2; + special= ICON_SOLO_ON; else - special= ICON_SPACE3; + special= ICON_SOLO_OFF; /* if this track is active and we're tweaking it, don't draw these toggles */ // TODO: need a special macro for this... -- cgit v1.2.3 From d0e4fb393bb97aa5357b95fe065396c9b711eb66 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 12 Jul 2011 09:30:40 +0000 Subject: RNA: fix some text datablock property UI names. --- source/blender/makesrna/intern/rna_curve.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index f2811e7320b..260d483b9d2 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -980,19 +980,19 @@ static void rna_def_font(BlenderRNA *brna, StructRNA *srna) prop= RNA_def_property(srna, "font_bold", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "vfontb"); - RNA_def_property_ui_text(prop, "Font", ""); + RNA_def_property_ui_text(prop, "Font Bold", ""); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); prop= RNA_def_property(srna, "font_italic", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "vfonti"); - RNA_def_property_ui_text(prop, "Font", ""); + RNA_def_property_ui_text(prop, "Font Italic", ""); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); prop= RNA_def_property(srna, "font_bold_italic", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "vfontbi"); - RNA_def_property_ui_text(prop, "Font", ""); + RNA_def_property_ui_text(prop, "Font Bold Italic", ""); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); @@ -1004,7 +1004,7 @@ static void rna_def_font(BlenderRNA *brna, StructRNA *srna) /* flags */ prop= RNA_def_property(srna, "use_fast_edit", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", CU_FAST); - RNA_def_property_ui_text(prop, "Fast", "Don't fill polygons while editing"); + RNA_def_property_ui_text(prop, "Fast Editing", "Don't fill polygons while editing"); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); } -- cgit v1.2.3 From 8d78e10b69313eba178acf4e010c6709a3dbe1a9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 11:27:35 +0000 Subject: NLA Drawing - More prominent communication of the "solo" feature * When a track is being solo'd, all other channels for that block are drawn darker * Strips in non-solo tracks are drawn flat shaded instead of with shading * Mute toggles are hidden (they wouldn't affect the result) --- source/blender/editors/space_nla/nla_draw.c | 83 +++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 1fa0dd886c1..ffccc4af30a 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -81,7 +81,6 @@ */ static void nla_action_get_color (AnimData *adt, bAction *act, float color[4]) { - // TODO: if tweaking some action, use the same color as for the tweaked track (quick hack done for now) if (adt && (adt->flag & ADT_NLA_EDIT_ON)) { // greenish color (same as tweaking strip) - hardcoded for now color[0]= 0.30f; @@ -105,6 +104,10 @@ static void nla_action_get_color (AnimData *adt, bAction *act, float color[4]) color[3]= 0.3f; } } + + /* when an NLA track is tagged "solo", action doesn't contribute, so shouldn't be as prominent */ + if (adt && (adt->flag & ADT_NLA_SOLO_TRACK)) + color[3] *= 0.15f; } /* draw the keyframes in the specified Action */ @@ -125,9 +128,12 @@ static void nla_action_draw_keyframes (AnimData *adt, bAction *act, View2D *v2d, /* draw a darkened region behind the strips * - get and reset the background color, this time without the alpha to stand out better + * (amplified alpha is used instead) */ nla_action_get_color(adt, act, color); - glColor3fv(color); + color[3] *= 2.5f; + + glColor4fv(color); /* - draw a rect from the first to the last frame (no extra overlaps for now) * that is slightly stumpier than the track background (hardcoded 2-units here) */ @@ -286,15 +292,18 @@ static void nla_draw_strip_curves (NlaStrip *strip, float yminc, float ymaxc) } /* main call for drawing a single NLA-strip */ -static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt), NlaStrip *strip, View2D *v2d, float yminc, float ymaxc) +static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *nlt, NlaStrip *strip, View2D *v2d, float yminc, float ymaxc) { + short nonSolo = ((adt && (adt->flag & ADT_NLA_SOLO_TRACK)) && (nlt->flag & NLATRACK_SOLO)==0); float color[3]; /* get color of strip */ nla_strip_get_color_inside(adt, strip, color); - /* draw extrapolation info first (as backdrop) */ - if (strip->extendmode != NLASTRIP_EXTEND_NOTHING) { + /* draw extrapolation info first (as backdrop) + * - but this should only be drawn if track has some contribution + */ + if ((strip->extendmode != NLASTRIP_EXTEND_NOTHING) && (nonSolo == 0)) { /* enable transparency... */ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); @@ -347,10 +356,23 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt) glDisable(GL_BLEND); } + /* draw 'inside' of strip itself */ - glColor3fv(color); - uiSetRoundBox(15); /* all corners rounded */ - uiDrawBoxShade(GL_POLYGON, strip->start, yminc, strip->end, ymaxc, 0.0, 0.5, 0.1); + if (nonSolo == 0) { + /* strip is in normal track */ + glColor3fv(color); + uiSetRoundBox(15); /* all corners rounded */ + + uiDrawBoxShade(GL_POLYGON, strip->start, yminc, strip->end, ymaxc, 0.0, 0.5, 0.1); + } + else { + /* strip is in disabled track - make less visible */ + glColor4f(color[0], color[1], color[2], 0.1f); + + glEnable(GL_BLEND); + glRectf(strip->start, yminc, strip->end, ymaxc); + glDisable(GL_BLEND); + } /* draw strip's control 'curves' @@ -359,6 +381,7 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt) if ((snla->flag & SNLA_NOSTRIPCURVES) == 0) nla_draw_strip_curves(strip, yminc, ymaxc); + /* draw strip outline * - color used here is to indicate active vs non-active */ @@ -420,8 +443,9 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt) } /* add the relevant text to the cache of text-strings to draw in pixelspace */ -static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int index, View2D *v2d, float yminc, float ymaxc) +static void nla_draw_strip_text (AnimData *adt, NlaTrack *nlt, NlaStrip *strip, int index, View2D *v2d, float yminc, float ymaxc) { + short notSolo = ((adt && (adt->flag & ADT_NLA_SOLO_TRACK)) && (nlt->flag & NLATRACK_SOLO)==0); char str[256]; char col[4]; float xofs; @@ -445,7 +469,12 @@ static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int ind else { col[0]= col[1]= col[2]= 255; } - col[3]= 255; + + /* text opacity depends on whether if there's a solo'd track, this isn't it */ + if (notSolo == 0) + col[3]= 255; + else + col[3]= 128; /* determine the amount of padding required - cannot be constant otherwise looks weird in some cases */ if ((strip->end - strip->start) <= 5.0f) @@ -547,7 +576,7 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar) nla_draw_strip(snla, adt, nlt, strip, v2d, yminc, ymaxc); /* add the text for this strip to the cache */ - nla_draw_strip_text(nlt, strip, index, v2d, yminc, ymaxc); + nla_draw_strip_text(adt, nlt, strip, index, v2d, yminc, ymaxc); /* if transforming strips (only real reason for temp-metas currently), * add to the cache the frame numbers of the strip's extents @@ -630,7 +659,9 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie if ( IN_RANGE(yminc, v2d->cur.ymin, v2d->cur.ymax) || IN_RANGE(ymaxc, v2d->cur.ymin, v2d->cur.ymax) ) { - short indent= 0, offset= 0, sel= 0, group= 0; + AnimData *adt = ale->adt; + + short indent= 0, offset= 0, sel= 0, group= 0, nonSolo= 0; int expand= -1, protect = -1, special= -1, mute = -1; char name[128]; short doDraw=0; @@ -641,9 +672,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie { NlaTrack *nlt= (NlaTrack *)ale->data; - /* FIXME: 'solo' as the 'special' button? - * - need special icons for these - */ + /* 'solo' as the 'special' button? */ if (nlt->flag & NLATRACK_SOLO) special= ICON_SOLO_ON; else @@ -663,6 +692,15 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie else protect = ICON_LOCKED; } + + /* is track enabled for solo drawing? */ + if ((adt) && (adt->flag & ADT_NLA_SOLO_TRACK)) { + if ((nlt->flag & NLATRACK_SOLO) == 0) { + /* tag for special non-solo handling; also hide the mute toggles */ + nonSolo= 1; + mute = 0; + } + } sel = SEL_NLT(nlt); strcpy(name, nlt->name); @@ -743,18 +781,19 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie /* draw backing strip behind channel name */ if (group == 5) { /* Action Line */ - AnimData *adt= ale->adt; - // TODO: if tweaking some action, use the same color as for the tweaked track (quick hack done for now) if (adt && (adt->flag & ADT_NLA_EDIT_ON)) { // greenish color (same as tweaking strip) - hardcoded for now glColor3f(0.3f, 0.95f, 0.1f); } else { + /* if a track is being solo'd, action is ignored, so draw less boldly (alpha lower) */ + float alpha = (adt && (adt->flag & ADT_NLA_SOLO_TRACK))? 0.3f : 1.0f; + if (ale->data) - glColor3f(0.8f, 0.2f, 0.0f); // reddish color - hardcoded for now + glColor4f(0.8f, 0.2f, 0.0f, alpha); // reddish color - hardcoded for now else - glColor3f(0.6f, 0.5f, 0.5f); // greyish-red color - hardcoded for now + glColor4f(0.6f, 0.5f, 0.5f, alpha); // greyish-red color - hardcoded for now } offset += 7 * indent; @@ -771,10 +810,8 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie group = 0; } else { - /* for normal channels - * - use 3 shades of color group/standard color for 3 indention level - */ - UI_ThemeColorShade(TH_HEADER, ((indent==0)?20: (indent==1)?-20: -40)); + /* NLA tracks - darker color if not solo track when we're showing solo */ + UI_ThemeColorShade(TH_HEADER, ((nonSolo == 0)? 20 : -20)); indent += group; offset += 7 * indent; -- cgit v1.2.3 From 7dd6926b22c77b4d77f64eccb7b8d4dab4dd5a7d Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 12:04:27 +0000 Subject: Bugfix [#27548] Timeline view - 2D drawing issues * Keyframe lines were being drawn too short when frame number box was enabled. The code for drawing this was modifying the View2D view-space to get it's stuff in the right place, but the timeline code was not accounting for this. * In order to make the time ticks more visible outside the frame range, I've moved the start/end frame drawing stuff in timeline to occur after the grid drawing, and to draw semi-transparent, just like the preview range curtains in the other animation editors --- source/blender/editors/animation/anim_draw.c | 6 ++--- source/blender/editors/space_time/space_time.c | 36 +++++++++++++++----------- 2 files changed, 24 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c index 9c923d3492b..d9027930041 100644 --- a/source/blender/editors/animation/anim_draw.c +++ b/source/blender/editors/animation/anim_draw.c @@ -243,13 +243,13 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag) // XXX ob->ipoflag is depreceated! if ((ob->ipoflag & OB_OFFS_OB) && (timeoffset != 0.0f)) { vec[0]-= timeoffset; /* could avoid calling twice */ - + UI_ThemeColorShade(TH_CFRAME, -30); - + glBegin(GL_LINE_STRIP); /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included glVertex2fv(vec); - + vec[1]= v2d->cur.ymin; glVertex2fv(vec); glEnd(); diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index b4cd4a5abdd..524ff60d48d 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -71,16 +71,20 @@ static void time_draw_sfra_efra(Scene *scene, View2D *v2d) { /* draw darkened area outside of active timeline - * frame range used is preview range or scene range */ - UI_ThemeColorShade(TH_BACK, -25); - - if (PSFRA < PEFRA) { - glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax); - glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); - } - else { - glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); - } + * frame range used is preview range or scene range + */ + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glColor4f(0.0f, 0.0f, 0.0f, 0.4f); + + if (PSFRA < PEFRA) { + glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax); + glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); + } + else { + glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); + } + glDisable(GL_BLEND); UI_ThemeColorShade(TH_BACK, -60); /* thin lines where the actual frames are */ @@ -303,8 +307,8 @@ static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel) (ak) && (ak->cfra <= v2d->cur.xmax); ak=ak->next ) { - glVertex2f(ak->cfra, v2d->cur.ymin); - glVertex2f(ak->cfra, v2d->cur.ymax); + glVertex2f(ak->cfra, v2d->tot.ymin); + glVertex2f(ak->cfra, v2d->tot.ymax); } glEnd(); // GL_LINES @@ -457,9 +461,6 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) glClear(GL_COLOR_BUFFER_BIT); UI_view2d_view_ortho(v2d); - - /* start and end frame */ - time_draw_sfra_efra(scene, v2d); /* grid */ unit= (stime->flag & TIME_DRAWFRAMES)? V2D_UNIT_FRAMES: V2D_UNIT_SECONDS; @@ -467,11 +468,16 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) UI_view2d_grid_draw(v2d, grid, (V2D_VERTICAL_LINES|V2D_VERTICAL_AXIS)); UI_view2d_grid_free(grid); + /* start and end frame */ + time_draw_sfra_efra(scene, v2d); + /* current frame */ if ((stime->flag & TIME_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS; if (stime->flag & TIME_CFRA_NUM) flag |= DRAWCFRA_SHOW_NUMBOX; ANIM_draw_cfra(C, v2d, flag); + UI_view2d_view_ortho(v2d); + /* keyframes */ if(!G.rendering) /* ANIM_nla_mapping_apply_fcurve() modifies curve data while rendering, possible race condition */ time_draw_keyframes(C, stime, ar); -- cgit v1.2.3 From 9132754dc1ed77429a6e870c479b69ac8829d845 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 12 Jul 2011 12:13:23 +0000 Subject: Timeline Drawing - Time cursor draws extra wide in timeline so that keyframe lines are wrapped up nicely by it Ideally it could be made so that it only became wide when it is on a frame with a keyframe, though that could end up causing performance problems, so this will have to do (if a bit "chunky" looking at times). --- source/blender/editors/animation/anim_draw.c | 5 ++++- source/blender/editors/include/ED_anim_api.h | 4 +++- source/blender/editors/space_time/space_time.c | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c index d9027930041..22ab419de2e 100644 --- a/source/blender/editors/animation/anim_draw.c +++ b/source/blender/editors/animation/anim_draw.c @@ -225,7 +225,10 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag) vec[0]= (float)(scene->r.cfra * scene->r.framelen); UI_ThemeColor(TH_CFRAME); - glLineWidth(2.0); + if (flag & DRAWCFRA_WIDE) + glLineWidth(3.0); + else + glLineWidth(2.0); glBegin(GL_LINE_STRIP); vec[1]= v2d->cur.ymin-500.0f; /* XXX arbitrary... want it go to bottom */ diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index bd86dcfc82f..0b99c256183 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -458,7 +458,9 @@ enum { /* time indication in seconds or frames */ DRAWCFRA_UNIT_SECONDS = (1<<1), /* show time-offset line */ - DRAWCFRA_SHOW_TIMEOFS = (1<<2) + DRAWCFRA_SHOW_TIMEOFS = (1<<2), + /* draw indicator extra wide (for timeline) */ + DRAWCFRA_WIDE = (1<<3) } eAnimEditDraw_CurrentFrame; /* main call to draw current-frame indicator in an Animation Editor */ diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 524ff60d48d..09842870dff 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -472,6 +472,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) time_draw_sfra_efra(scene, v2d); /* current frame */ + flag = DRAWCFRA_WIDE; /* this is only really needed on frames where there's a keyframe, but this will do... */ if ((stime->flag & TIME_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS; if (stime->flag & TIME_CFRA_NUM) flag |= DRAWCFRA_SHOW_NUMBOX; ANIM_draw_cfra(C, v2d, flag); -- cgit v1.2.3 From b724c7f27e5876c70c7cc2a42a16ba4e85c9dfc3 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 12 Jul 2011 18:59:54 +0000 Subject: Add delete with reconnect feature. this will reconnect nodes as if the deleted node is muted. Operation is added to the space_node node menu and to the keymap as CTRL-X to test this just add some nodes to the space_node select one or multiple nodes and press CTRL-X It should reconnect the nodes as they were muted limitations: 1. it performs a delete and reconnect per node. It does not evaluate all selected nodes as one whole 2. mute only supports Value, Vector and Color data types, so does this feature 3. not usable for nodes where input and output does not match (like colorToBW) Where reconnect could not be preformed the links will be removed from the model. Undo works with this delete with reconnect. --- source/blender/editors/space_node/node_draw.c | 1 + source/blender/editors/space_node/node_edit.c | 111 ++++++++++++++++++++++++ source/blender/editors/space_node/node_intern.h | 1 + source/blender/editors/space_node/node_ops.c | 7 +- source/blender/nodes/intern/CMP_util.c | 2 +- 5 files changed, 118 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 5f8ab0dded5..cd1fa5c16a7 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -461,6 +461,7 @@ static void node_update_group(const bContext *C, bNodeTree *UNUSED(ntree), bNode } /* note: in cmp_util.c is similar code, for node_compo_pass_on() */ +/* note: in node_edit.c is similar code, for untangle node */ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node) { bNodeSocket *valsock= NULL, *colsock= NULL, *vecsock= NULL; diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index a6a60035aa7..e760c9021c2 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2906,6 +2906,117 @@ void NODE_OT_delete(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* ****************** Delete with reconnect ******************* */ + +/* note: in cmp_util.c is similar code, for node_compo_pass_on() */ +/* used for disabling node (similar code in node_draw.c for disable line) */ +static void node_delete_reconnect(bNodeTree* tree, bNode* node) { + bNodeLink *link, *next; + bNodeSocket *valsocket= NULL, *colsocket= NULL, *vecsocket= NULL; + bNodeSocket *deliveringvalsocket= NULL, *deliveringcolsocket= NULL, *deliveringvecsocket= NULL; + bNode *deliveringvalnode= NULL, *deliveringcolnode= NULL, *deliveringvecnode= NULL; + bNodeSocket *sock; + + /* test the inputs */ + for(sock= node->inputs.first; sock; sock= sock->next) { + int type = sock->type; + if(type==SOCK_VALUE && valsocket==NULL) valsocket = sock; + if(type==SOCK_VECTOR && vecsocket==NULL) vecsocket = sock; + if(type==SOCK_RGBA && colsocket==NULL) colsocket = sock; + } + // we now have the input sockets for the 'data types' + // now find the output sockets (and nodes) in the tree that delivers data to these input sockets + for(link= tree->links.first; link; link=link->next) { + if (valsocket != NULL) { + if (link->tosock == valsocket) { + deliveringvalnode = link->fromnode; + deliveringvalsocket = link->fromsock; + } + } + if (vecsocket != NULL) { + if (link->tosock == vecsocket) { + deliveringvecnode = link->fromnode; + deliveringvecsocket = link->fromsock; + } + } + if (colsocket != NULL) { + if (link->tosock == colsocket) { + deliveringcolnode = link->fromnode; + deliveringcolsocket = link->fromsock; + } + } + } + // we now have the sockets+nodes that fill the inputsockets be aware for group nodes these can be NULL + // now make the links for all outputlinks of the node to be reconnected + for(link= tree->links.first; link; link=next) { + next= link->next; + if (link->fromnode == node) { + sock = link->fromsock; + switch(sock->type) { + case SOCK_VALUE: + if (deliveringvalsocket) { + link->fromnode = deliveringvalnode; + link->fromsock = deliveringvalsocket; + } + break; + case SOCK_VECTOR: + if (deliveringvecsocket) { + link->fromnode = deliveringvecnode; + link->fromsock = deliveringvecsocket; + } + break; + case SOCK_RGBA: + if (deliveringcolsocket) { + link->fromnode = deliveringcolnode; + link->fromsock = deliveringcolsocket; + } + break; + } + } + } + if(node->id) + node->id->us--; + nodeFreeNode(tree, node); + +} + +static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceNode *snode= CTX_wm_space_node(C); + bNode *node, *next; + + ED_preview_kill_jobs(C); + + for(node= snode->edittree->nodes.first; node; node= next) { + next= node->next; + if(node->flag & SELECT) { + node_delete_reconnect(snode->edittree, node); + } + } + + node_tree_verify_groups(snode->nodetree); + + snode_notify(C, snode); + snode_dag_update(C, snode); + + return OPERATOR_FINISHED; +} + +void NODE_OT_delete_reconnect(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Delete with reconnect"; + ot->description = "Delete nodes; will reconnect nodes as if deletion was muted"; + ot->idname= "NODE_OT_delete_reconnect"; + + /* api callbacks */ + ot->exec= node_delete_reconnect_exec; + ot->poll= ED_operator_node_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + /* ****************** Show Cyclic Dependencies Operator ******************* */ static int node_show_cycles_exec(bContext *C, wmOperator *UNUSED(op)) diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index a1c0f5535fe..9122235f33c 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -114,6 +114,7 @@ int node_render_changed_exec(bContext *, wmOperator *); void NODE_OT_duplicate(struct wmOperatorType *ot); void NODE_OT_delete(struct wmOperatorType *ot); +void NODE_OT_delete_reconnect(struct wmOperatorType *ot); void NODE_OT_resize(struct wmOperatorType *ot); void NODE_OT_link(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 11e7949791d..4d181a34894 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -70,12 +70,13 @@ void node_operatortypes(void) WM_operatortype_append(NODE_OT_duplicate); WM_operatortype_append(NODE_OT_delete); + WM_operatortype_append(NODE_OT_delete_reconnect); WM_operatortype_append(NODE_OT_resize); WM_operatortype_append(NODE_OT_link); WM_operatortype_append(NODE_OT_link_make); WM_operatortype_append(NODE_OT_links_cut); - + WM_operatortype_append(NODE_OT_group_make); WM_operatortype_append(NODE_OT_group_ungroup); WM_operatortype_append(NODE_OT_group_edit); @@ -108,8 +109,7 @@ void ED_operatormacros_node(void) ot= WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer", OPTYPE_UNDO); WM_operatortype_macro_define(ot, "NODE_OT_select"); WM_operatortype_macro_define(ot, "NODE_OT_link_viewer"); - -} + } void node_keymap(struct wmKeyConfig *keyconf) { @@ -167,6 +167,7 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "NODE_OT_select_border", BKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_delete", XKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_delete", DELKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", XKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "NODE_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_select_linked_to", LKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c index b73a46c7d7d..a763f34a644 100644 --- a/source/blender/nodes/intern/CMP_util.c +++ b/source/blender/nodes/intern/CMP_util.c @@ -132,7 +132,7 @@ void compbuf_set_node(CompBuf *cbuf, bNode *node) if (cbuf) cbuf->node = node; } -/* used for disabling node (similar code in drawnode.c for disable line) */ +/* used for disabling node (similar code in node_draw.c for disable line and node_edit for untangling nodes) */ void node_compo_pass_on(bNode *node, bNodeStack **nsin, bNodeStack **nsout) { CompBuf *valbuf= NULL, *colbuf= NULL, *vecbuf= NULL; -- cgit v1.2.3 From a557773f46fb11ae7c99e96b292182275b27de4b Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 12 Jul 2011 19:21:38 +0000 Subject: Bokeh blur in the blur node is wronlgy calculated. when using the node on a single white pixel on black background, the output should look like as the bokeh image. being a round image, but it looked like a donut. the make_gausstab used dist/rad and bokeh used (dist/rad)*2 - 1 I changed it to reflect the correct bokeh circular image --- source/blender/nodes/intern/CMP_nodes/CMP_blur.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c index 2b33126b3a7..718578a921b 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c @@ -387,7 +387,7 @@ static void bokeh_single_image(bNode *node, CompBuf *new, CompBuf *img, float fa float dist= sqrt(fj*fj + fi*fi); //*dgauss= hexagon_filter(fi, fj); - *dgauss= RE_filter_value(nbd->filtertype, 2.0f*dist - 1.0f); + *dgauss= RE_filter_value(nbd->filtertype, dist); val+= *dgauss; } -- cgit v1.2.3 From cf485cd9638825ab911d8eb4cf06f02ae189c864 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 08:15:06 +0000 Subject: Advanced CMake option to build the player without blender: WITH_BLENDER --- source/blender/editors/CMakeLists.txt | 73 +++++++++++----------- source/blender/editors/datafiles/CMakeLists.txt | 82 ++++++++++++++----------- 2 files changed, 83 insertions(+), 72 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/CMakeLists.txt b/source/blender/editors/CMakeLists.txt index 651cb66833d..abda4f11a2c 100644 --- a/source/blender/editors/CMakeLists.txt +++ b/source/blender/editors/CMakeLists.txt @@ -19,39 +19,42 @@ # # ***** END GPL LICENSE BLOCK ***** -add_subdirectory(animation) -add_subdirectory(armature) -add_subdirectory(curve) +if(WITH_BLENDER) + add_subdirectory(animation) + add_subdirectory(armature) + add_subdirectory(curve) + add_subdirectory(gpencil) + add_subdirectory(interface) + add_subdirectory(mesh) + add_subdirectory(metaball) + add_subdirectory(object) + add_subdirectory(physics) + add_subdirectory(render) + add_subdirectory(screen) + add_subdirectory(sculpt_paint) + add_subdirectory(sound) + add_subdirectory(space_action) + add_subdirectory(space_api) + add_subdirectory(space_buttons) + add_subdirectory(space_console) + add_subdirectory(space_file) + add_subdirectory(space_graph) + add_subdirectory(space_image) + add_subdirectory(space_info) + add_subdirectory(space_logic) + add_subdirectory(space_nla) + add_subdirectory(space_node) + add_subdirectory(space_outliner) + add_subdirectory(space_script) + add_subdirectory(space_sequencer) + add_subdirectory(space_sound) + add_subdirectory(space_text) + add_subdirectory(space_time) + add_subdirectory(space_userpref) + add_subdirectory(space_view3d) + add_subdirectory(transform) + add_subdirectory(util) + add_subdirectory(uvedit) +endif() + add_subdirectory(datafiles) -add_subdirectory(gpencil) -add_subdirectory(interface) -add_subdirectory(mesh) -add_subdirectory(metaball) -add_subdirectory(object) -add_subdirectory(physics) -add_subdirectory(render) -add_subdirectory(screen) -add_subdirectory(sculpt_paint) -add_subdirectory(sound) -add_subdirectory(space_action) -add_subdirectory(space_api) -add_subdirectory(space_buttons) -add_subdirectory(space_console) -add_subdirectory(space_file) -add_subdirectory(space_graph) -add_subdirectory(space_image) -add_subdirectory(space_info) -add_subdirectory(space_logic) -add_subdirectory(space_nla) -add_subdirectory(space_node) -add_subdirectory(space_outliner) -add_subdirectory(space_script) -add_subdirectory(space_sequencer) -add_subdirectory(space_sound) -add_subdirectory(space_text) -add_subdirectory(space_time) -add_subdirectory(space_userpref) -add_subdirectory(space_view3d) -add_subdirectory(transform) -add_subdirectory(util) -add_subdirectory(uvedit) diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt index ae86905a91d..080673d6e54 100644 --- a/source/blender/editors/datafiles/CMakeLists.txt +++ b/source/blender/editors/datafiles/CMakeLists.txt @@ -27,50 +27,58 @@ set(INC_SYS ) +# blender and player set(SRC Bfont.c bfont.ttf.c - bmonofont.ttf.c - startup.blend.c - preview.blend.c ) -if(NOT WITH_HEADLESS) +if(WITH_BLENDER) + # blender only list(APPEND SRC - splash.png.c - blenderbuttons.c - - # brushes - add.png.c - blob.png.c - blur.png.c - clay.png.c - clone.png.c - crease.png.c - darken.png.c - draw.png.c - fill.png.c - flatten.png.c - grab.png.c - inflate.png.c - layer.png.c - lighten.png.c - mix.png.c - multiply.png.c - nudge.png.c - pinch.png.c - prvicons.c - scrape.png.c - smear.png.c - smooth.png.c - snake_hook.png.c - soften.png.c - subtract.png.c - texdraw.png.c - thumb.png.c - twist.png.c - vertexdraw.png.c + startup.blend.c + preview.blend.c + bmonofont.ttf.c ) + + if(NOT WITH_HEADLESS) + # blender UI only + list(APPEND SRC + splash.png.c + blenderbuttons.c + + # brushes + add.png.c + blob.png.c + blur.png.c + clay.png.c + clone.png.c + crease.png.c + darken.png.c + draw.png.c + fill.png.c + flatten.png.c + grab.png.c + inflate.png.c + layer.png.c + lighten.png.c + mix.png.c + multiply.png.c + nudge.png.c + pinch.png.c + prvicons.c + scrape.png.c + smear.png.c + smooth.png.c + snake_hook.png.c + soften.png.c + subtract.png.c + texdraw.png.c + thumb.png.c + twist.png.c + vertexdraw.png.c + ) + endif() endif() blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}" "${INC_SYS}") -- cgit v1.2.3 From 83ca561b6283b20c23b8ae453b91e6bfdfc6836d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 13 Jul 2011 11:52:37 +0000 Subject: Fix #27951: armature edit mode transform panel shows "nothing selected" even when something is selected. --- source/blender/editors/space_view3d/view3d_buttons.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index 549a547b846..ef7ada85843 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -966,13 +966,13 @@ static void v3d_editarmature_buts(uiLayout *layout, Object *ob) ebone= arm->act_edbone; - if (!ebone || (ebone->layer & arm->layer)==0) + if (!ebone || (ebone->layer & arm->layer)==0) { + uiItemL(col, "Nothing selected", ICON_NONE); return; - + } // row= uiLayoutRow(layout, 0); RNA_pointer_create(&arm->id, &RNA_EditBone, ebone, &eboneptr); - col= uiLayoutColumn(layout, 0); uiItemR(col, &eboneptr, "head", 0, "Head", ICON_NONE); if (ebone->parent && ebone->flag & BONE_CONNECTED ) { @@ -1256,7 +1256,7 @@ static void view3d_panel_object(const bContext *C, Panel *pa) if(ob==obedit) { if(ob->type==OB_ARMATURE) v3d_editarmature_buts(col, ob); - if(ob->type==OB_MBALL) v3d_editmetaball_buts(col, ob); + else if(ob->type==OB_MBALL) v3d_editmetaball_buts(col, ob); else v3d_editvertex_buts(col, v3d, ob, lim); } else if(ob->mode & OB_MODE_POSE) { -- cgit v1.2.3 From 49d01fb30de6ed5c6d68cb204de52f5db2f7e649 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 13 Jul 2011 16:53:36 +0000 Subject: Fixed Color animation import( support for Maya ) --- source/blender/collada/AnimationImporter.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index c84cf3d9ee4..3faad447e9a 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -103,6 +103,7 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) switch (dim) { case 1: // X, Y, Z or angle case 3: // XYZ + case 4: case 16: // matrix { for (i = 0; i < dim; i++ ) { @@ -684,8 +685,10 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::AnimationList: modify_fcurve(curves, rna_path, 2 ); break; case COLLADAFW::AnimationList::COLOR_RGB: + case COLLADAFW::AnimationList::COLOR_RGBA: modify_fcurve(curves, rna_path, -1 ); break; + default: fprintf(stderr, "AnimationClass %d is not supported for %s.\n", binding->animationClass, "COLOR" ); @@ -885,6 +888,21 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = xmag->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "ortho_scale"); } + + if ((animType->camera & CAMERA_ZFAR) != 0 ) + { + const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane()); + const COLLADAFW::UniqueId& listid = zfar->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "clipend"); + } + + if ((animType->camera & CAMERA_ZNEAR) != 0 ) + { + const COLLADAFW::AnimatableFloat *znear = &(camera->getNearClippingPlane()); + const COLLADAFW::UniqueId& listid = znear->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "clipsta"); + } + } } } -- cgit v1.2.3 From 91a6e434855621eb53a29c9c2d5d95350732b566 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 13 Jul 2011 17:20:20 +0000 Subject: Adding Child Of constraint "inverse parent matrix" to rna, so it can be set via Python. --- source/blender/makesrna/intern/rna_constraint.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index a75ff601d08..0163dd5db32 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -357,6 +357,7 @@ static void rna_def_constrainttarget(BlenderRNA *brna) static void rna_def_constraint_childof(BlenderRNA *brna) { + static int rna_matrix_dimsize_4x4[]= {4, 4}; StructRNA *srna; PropertyRNA *prop; @@ -419,6 +420,13 @@ static void rna_def_constraint_childof(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", CHILDOF_SIZEZ); RNA_def_property_ui_text(prop, "Scale Z", "Use Z Scale of Parent"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "inverse_matrix", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "invmat"); + RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, "Inverse Matrix", "Transformation matrix to apply before"); + } static void rna_def_constraint_python(BlenderRNA *brna) -- cgit v1.2.3 From 5e841e4b4a30bbb242290407740b5ca3afbab972 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 17:24:33 +0000 Subject: fix for animation playback and build error when compiling without WITH_AUDASPACE --- source/blender/blenkernel/intern/sound.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index f2e3537762f..1c61646a3d8 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -36,9 +36,6 @@ #include "BKE_animsys.h" -static int force_device = -1; - - struct bSound* sound_new_file(struct Main *bmain, const char *filename) { bSound* sound = NULL; @@ -94,6 +91,8 @@ void sound_free(struct bSound* sound) #ifdef WITH_AUDASPACE +static int force_device = -1; + #ifdef WITH_JACK static void sound_sync_callback(void* data, int mode, float time) { @@ -537,7 +536,7 @@ void sound_play_scene(struct Scene *UNUSED(scene)) {} void sound_stop_scene(struct Scene *UNUSED(scene)) {} void sound_seek_scene(struct bContext *UNUSED(C)) {} float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } -int sound_scene_playing(struct Scene *UNUSED(scene)) { return 0; } +int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; } int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } int sound_get_channels(struct bSound* UNUSED(sound)) { return 1; } -- cgit v1.2.3 From 74536efa9180da90daf651b162296a474e5bfde8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 13 Jul 2011 17:52:23 +0000 Subject: Fix #26704: activating a texture node inside material nodes did not show that texture in the texture properties. --- source/blender/editors/space_buttons/buttons_context.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index f91e830d52e..8e1a4b2d16c 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -218,7 +218,7 @@ static int buttons_context_path_modifier(ButsContextPath *path) return 0; } -static int buttons_context_path_material(ButsContextPath *path) +static int buttons_context_path_material(ButsContextPath *path, int for_texture) { Object *ob; PointerRNA *ptr= &path->ptr[path->len-1]; @@ -236,6 +236,9 @@ static int buttons_context_path_material(ButsContextPath *path) ma= give_current_material(ob, ob->actcol); RNA_id_pointer_create(&ma->id, &path->ptr[path->len]); path->len++; + + if(for_texture && give_current_material_texture_node(ma)) + return 1; ma= give_node_material(ma); if(ma) { @@ -432,7 +435,7 @@ static int buttons_context_path_texture(ButsContextPath *path) } } /* try material */ - if(buttons_context_path_material(path)) { + if(buttons_context_path_material(path, 1)) { ma= path->ptr[path->len-1].data; if(ma) { @@ -524,7 +527,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma found= buttons_context_path_particle(path); break; case BCONTEXT_MATERIAL: - found= buttons_context_path_material(path); + found= buttons_context_path_material(path, 0); break; case BCONTEXT_TEXTURE: found= buttons_context_path_texture(path); -- cgit v1.2.3 From 1fd33b6e777d54a3702e58253dabf94a752783e2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 18:40:21 +0000 Subject: cmake option to build without smoke sim: WITH_MOD_SMOKE --- source/blender/blenkernel/CMakeLists.txt | 4 ++++ source/blender/blenkernel/SConscript | 2 ++ source/blender/blenkernel/intern/pointcache.c | 6 ++++++ source/blender/blenkernel/intern/smoke.c | 17 +++++++++++++++++ source/blender/gpu/CMakeLists.txt | 4 ++++ source/blender/gpu/SConscript | 2 ++ source/blender/gpu/intern/gpu_draw.c | 6 ++++++ source/blender/render/CMakeLists.txt | 4 ++++ source/blender/render/SConscript | 2 ++ source/blender/render/intern/source/voxeldata.c | 9 ++++++++- 10 files changed, 55 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index a19d48daa75..92c50242e74 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -306,6 +306,10 @@ if(NOT WITH_MOD_FLUID) add_definitions(-DDISABLE_ELBEEM) endif() +if(WITH_MOD_SMOKE) + add_definitions(-DWITH_SMOKE) +endif() + if(WITH_JACK) add_definitions(-DWITH_JACK) endif() diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index b5f845acacb..36afce7946c 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -21,6 +21,8 @@ incs += ' ' + env['BF_ZLIB_INC'] defs = [ 'GLEW_STATIC' ] +defs.append('WITH_SMOKE') # TODO, make optional + if env['WITH_BF_PYTHON']: incs += ' ../python' incs += ' ' + env['BF_PYTHON_INC'] diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 6b92c6e9540..b8f4b2d302f 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -516,6 +516,7 @@ static int ptcache_cloth_totpoint(void *cloth_v, int UNUSED(cfra)) return clmd->clothObject ? clmd->clothObject->numverts : 0; } +#ifdef WITH_SMOKE /* Smoke functions */ static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) { @@ -652,6 +653,11 @@ static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) } } } +#else // WITH_SMOKE +static int ptcache_smoke_totpoint(void *UNUSED(smoke_v), int UNUSED(cfra)) { return 0; }; +static void ptcache_smoke_read(PTCacheFile *UNUSED(pf), void *UNUSED(smoke_v)) {} +static int ptcache_smoke_write(PTCacheFile *UNUSED(pf), void *UNUSED(smoke_v)) { return 0; } +#endif // WITH_SMOKE /* Creating ID's */ void BKE_ptcache_id_from_softbody(PTCacheID *pid, Object *ob, SoftBody *sb) diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index 4405bce3d51..6ab1574ca80 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -140,6 +140,19 @@ static void fill_scs_points(Object *ob, DerivedMesh *dm, SmokeCollSettings *scs) #define TRI_UVOFFSET (1./4.) +/* Stubs to use when smoke is disabled */ +#ifndef WITH_SMOKE +struct WTURBULENCE *smoke_turbulence_init(int *UNUSED(res), int UNUSED(amplify), int UNUSED(noisetype)) { return NULL; } +struct FLUID_3D *smoke_init(int *UNUSED(res), float *UNUSED(p0)) { return NULL; } +void smoke_free(struct FLUID_3D *UNUSED(fluid)) {} +void smoke_turbulence_free(struct WTURBULENCE *UNUSED(wt)) {} +void smoke_initWaveletBlenderRNA(struct WTURBULENCE *UNUSED(wt), float *UNUSED(strength)) {} +void smoke_initBlenderRNA(struct FLUID_3D *UNUSED(fluid), float *UNUSED(alpha), float *UNUSED(beta), float *UNUSED(dt_factor), float *UNUSED(vorticity), int *UNUSED(border_colli)) {} +long long smoke_get_mem_req(int UNUSED(xres), int UNUSED(yres), int UNUSED(zres), int UNUSED(amplify)) { return 0; } +void smokeModifier_do(SmokeModifierData *UNUSED(smd), Scene *UNUSED(scene), Object *UNUSED(ob), DerivedMesh *UNUSED(dm)) {} +#endif // WITH_SMOKE + + static int smokeModifier_init (SmokeModifierData *smd, Object *ob, Scene *scene, DerivedMesh *dm) { if((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain && !smd->domain->fluid) @@ -805,6 +818,9 @@ void smokeModifier_copy(struct SmokeModifierData *smd, struct SmokeModifierData // forward decleration static void smoke_calc_transparency(float *result, float *input, float *p0, float *p1, int res[3], float dx, float *light, bresenham_callback cb, float correct); static float calc_voxel_transp(float *result, float *input, int res[3], int *pixel, float *tRay, float correct); + +#ifdef WITH_SMOKE + static int get_lamp(Scene *scene, float *light) { Base *base_tmp = NULL; @@ -1646,3 +1662,4 @@ static void smoke_calc_transparency(float *result, float *input, float *p0, floa } } +#endif // WITH_SMOKE diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index ce3150476f9..76e347270ba 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -56,6 +56,10 @@ set(SRC intern/gpu_codegen.h ) +if(WITH_MOD_SMOKE) + add_definitions(-DWITH_SMOKE) +endif() + add_definitions(-DGLEW_STATIC) blender_add_lib(bf_gpu "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/gpu/SConscript b/source/blender/gpu/SConscript index 515c7166c2a..b48e1d5a8e2 100644 --- a/source/blender/gpu/SConscript +++ b/source/blender/gpu/SConscript @@ -13,4 +13,6 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_OPENGL_INC'] +defs.append('WITH_SMOKE') # TODO, make optional + env.BlenderLib ( 'bf_gpu', sources, Split(incs), defines = defs, libtype=['core','player'], priority=[160,110] ) diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 87d25ac850a..9878d83ff5a 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -822,12 +822,18 @@ void GPU_free_smoke(SmokeModifierData *smd) void GPU_create_smoke(SmokeModifierData *smd, int highres) { +#ifdef WITH_SMOKE if(smd->type & MOD_SMOKE_TYPE_DOMAIN && !smd->domain->tex && !highres) smd->domain->tex = GPU_texture_create_3D(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2], smoke_get_density(smd->domain->fluid)); else if(smd->type & MOD_SMOKE_TYPE_DOMAIN && !smd->domain->tex && highres) smd->domain->tex = GPU_texture_create_3D(smd->domain->res_wt[0], smd->domain->res_wt[1], smd->domain->res_wt[2], smoke_turbulence_get_density(smd->domain->wt)); smd->domain->tex_shadow = GPU_texture_create_3D(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2], smd->domain->shadow); +#else // WITH_SMOKE + (void)highres; + smd->domain->tex= NULL; + smd->domain->tex_shadow= NULL; +#endif // WITH_SMOKE } static ListBase image_free_queue = {NULL, NULL}; diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index a2d698b739e..003f0b839f8 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -120,6 +120,10 @@ if(WITH_IMAGE_OPENEXR) add_definitions(-DWITH_OPENEXR) endif() +if(WITH_MOD_SMOKE) + add_definitions(-DWITH_SMOKE) +endif() + if(WITH_CODEC_QUICKTIME) list(APPEND INC ../quicktime) list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index a402139b927..bff7797e0c7 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -14,6 +14,8 @@ cxxflags_raytrace = env['CXXFLAGS'] defs = [] defs_raytrace = [] +defs.append('WITH_SMOKE') # TODO, make optional + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): if env['WITH_BF_RAYOPTIMIZATION']: cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c index b8cb5c21337..232f7fdeede 100644 --- a/source/blender/render/intern/source/voxeldata.c +++ b/source/blender/render/intern/source/voxeldata.c @@ -220,6 +220,7 @@ static int read_voxeldata_header(FILE *fp, struct VoxelData *vd) static void init_frame_smoke(VoxelData *vd, float cfra) { +#ifdef WITH_SMOKE Object *ob; ModifierData *md; @@ -300,7 +301,13 @@ static void init_frame_smoke(VoxelData *vd, float cfra) } vd->ok = 1; - return; + +#else // WITH_SMOKE + (void)vd; + (void)cfra; + + vd->dataset= NULL; +#endif } static void cache_voxeldata(struct Render *re, Tex *tex) -- cgit v1.2.3 From c3fcd6c4c7ec1aebff5bd386328023010d9c48d5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 19:16:25 +0000 Subject: reuse USER_SAVE_PREVIEWS to not save thumbnails into blend file header --- source/blender/windowmanager/intern/wm_files.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index aabaf6d4055..27fc0caeccc 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -725,8 +725,10 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re /* blend file thumbnail */ /* save before exit_editmode, otherwise derivedmeshes for shared data corrupt #27765) */ - ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); - + if(U.flag & USER_SAVE_PREVIEWS) { + ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); + } + BLI_exec_cb(G.main, NULL, BLI_CB_EVT_SAVE_PRE); /* operator now handles overwrite checks */ -- cgit v1.2.3 From 6551d4a2657696f37a79f96d58e5eb05d6422d5f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 19:20:50 +0000 Subject: use linked duplicates in preview.blend to save some space. --- source/blender/editors/datafiles/preview.blend.c | 28820 ++++++++++----------- 1 file changed, 12989 insertions(+), 15831 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/preview.blend.c b/source/blender/editors/datafiles/preview.blend.c index b27fbd328bd..77749fd6592 100644 --- a/source/blender/editors/datafiles/preview.blend.c +++ b/source/blender/editors/datafiles/preview.blend.c @@ -1,805 +1,823 @@ -/** \file blender/editors/datafiles/preview.blend.c - * \ingroup eddatafiles - */ -/* DataToC output of file */ +/* DataToC output of file */ -int datatoc_preview_blend_size= 586384; +int datatoc_preview_blend_size= 495540; char datatoc_preview_blend[]= { - 66, 76, 69, 78, 68, 69, 82, 95,118, 50, 53, 48, 82, 69, 78, 68, - 32, 0, 0, 0, 16,244, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0,112,114,101,118,105,101,119, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 32, 0, 0, 0,160,243, 34, 0,186, 0, 0, 0, - 1, 0, 0, 0, 32, 32, 32, 48, 0, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, 32, 95,178, 3,160, 63,179, 3, 0, 0, 0, 0, - 64, 0, 0, 0, 87, 77, 0, 0,140, 0, 0, 0,152, 93,178, 3, 76, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 94,178, 3,240,207, 72, 1, 88, 94,178, 3, 88, 94,178, 3, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 84, 72, 1, -216, 15,158, 3, 68, 65, 84, 65,148, 0, 0, 0, 88, 94,178, 3, 77, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 15, 75, 1, 1, 0, 0, 0, 0, 0, 0, 0, 32, 95,178, 3, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,120, 7,149, 4, 0, 0, 0, 0, - 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0,200,110, 72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,222,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 16, 79,156, 3,136, 37,159, 3,128, 85, 72, 1,248, 50, 72, 1,184,117, 74, 1, - 56, 20,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,140, 0, 0, 0, 32, 95,178, 3,178, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82,115, 99,114,101,101,110, 0, 45, 83, 99,114,105,112,116, -105,110,103, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,225,155, 3, 88,217,155, 3,120,225,154, 3, -224,239,157, 3,224,225,153, 3,112, 13,179, 3, 0, 0, 0, 0, 0, 0, 0, 0,160, 63,179, 3, 0, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24,225,155, 3,179, 0, 0, 0, 1, 0, 0, 0, - 8, 2,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 8, 2,156, 3, -179, 0, 0, 0, 1, 0, 0, 0, 80, 16,156, 3, 24,225,155, 3, 0, 0, 0, 0, 0, 0,149, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 20, 0, 0, 0, 80, 16,156, 3,179, 0, 0, 0, 1, 0, 0, 0, 48,225,154, 3, 8, 2,156, 3, 0, 0, 0, 0,120, 7,149, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48,225,154, 3,179, 0, 0, 0, 1, 0, 0, 0, 48, 11,156, 3, 80, 16,156, 3, - 0, 0, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48, 11,156, 3,179, 0, 0, 0, 1, 0, 0, 0, -224,239,156, 3, 48,225,154, 3, 0, 0, 0, 0, 0, 0,120, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,224,239,156, 3, -179, 0, 0, 0, 1, 0, 0, 0,232,206,159, 3, 48, 11,156, 3, 0, 0, 0, 0,120, 7,120, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 20, 0, 0, 0,232,206,159, 3,179, 0, 0, 0, 1, 0, 0, 0,136, 3,156, 3,224,239,156, 3, 0, 0, 0, 0, 8, 6, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,136, 3,156, 3,179, 0, 0, 0, 1, 0, 0, 0, 0,219,155, 3,232,206,159, 3, - 0, 0, 0, 0, 8, 6,120, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 0,219,155, 3,179, 0, 0, 0, 1, 0, 0, 0, - 0,177,154, 3,136, 3,156, 3, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 0,177,154, 3, -179, 0, 0, 0, 1, 0, 0, 0,144, 72,160, 3, 0,219,155, 3, 0, 0, 0, 0,192, 3,120, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 20, 0, 0, 0,144, 72,160, 3,179, 0, 0, 0, 1, 0, 0, 0,216, 12,156, 3, 0,177,154, 3, 0, 0, 0, 0,192, 3, 44, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216, 12,156, 3,179, 0, 0, 0, 1, 0, 0, 0, 40,175,163, 3,144, 72,160, 3, - 0, 0, 0, 0, 8, 6, 44, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 40,175,163, 3,179, 0, 0, 0, 1, 0, 0, 0, - 88,217,155, 3,216, 12,156, 3, 0, 0, 0, 0,192, 3,100, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,217,155, 3, -179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,175,163, 3, 0, 0, 0, 0, 8, 6,100, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 24, 0, 0, 0,120,225,154, 3,180, 0, 0, 0, 1, 0, 0, 0,224, 7,156, 3, 0, 0, 0, 0, 8, 2,156, 3, 80, 16,156, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224, 7,156, 3,180, 0, 0, 0, 1, 0, 0, 0,160, 31,160, 3, -120,225,154, 3, 8, 2,156, 3, 48, 11,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160, 31,160, 3, -180, 0, 0, 0, 1, 0, 0, 0, 8, 5,156, 3,224, 7,156, 3, 80, 16,156, 3,224,239,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 24, 0, 0, 0, 8, 5,156, 3,180, 0, 0, 0, 1, 0, 0, 0,224,112,155, 3,160, 31,160, 3, 48, 11,156, 3, -224,239,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,112,155, 3,180, 0, 0, 0, 1, 0, 0, 0, - 8, 64,158, 3, 8, 5,156, 3, 48,225,154, 3,232,206,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, - 8, 64,158, 3,180, 0, 0, 0, 1, 0, 0, 0,144,215,163, 3,224,112,155, 3,136, 3,156, 3,224,239,156, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,215,163, 3,180, 0, 0, 0, 1, 0, 0, 0, 16, 74,160, 3, 8, 64,158, 3, -136, 3,156, 3,232,206,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16, 74,160, 3,180, 0, 0, 0, - 1, 0, 0, 0,136, 9,156, 3,144,215,163, 3, 48,225,154, 3,224,239,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 24, 0, 0, 0,136, 9,156, 3,180, 0, 0, 0, 1, 0, 0, 0, 16, 71,160, 3, 16, 74,160, 3, 24,225,155, 3, 48, 11,156, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16, 71,160, 3,180, 0, 0, 0, 1, 0, 0, 0,184,240,159, 3, -136, 9,156, 3, 0,219,155, 3, 24,225,155, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,240,159, 3, -180, 0, 0, 0, 1, 0, 0, 0,136,128,154, 3, 16, 71,160, 3, 0,219,155, 3,232,206,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 24, 0, 0, 0,136,128,154, 3,180, 0, 0, 0, 1, 0, 0, 0,168,220,155, 3,184,240,159, 3, 0,177,154, 3, - 48, 11,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,220,155, 3,180, 0, 0, 0, 1, 0, 0, 0, -248, 17,156, 3,136,128,154, 3, 0,177,154, 3,136, 3,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, -248, 17,156, 3,180, 0, 0, 0, 1, 0, 0, 0,136, 46,155, 3,168,220,155, 3, 0,177,154, 3, 0,219,155, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136, 46,155, 3,180, 0, 0, 0, 1, 0, 0, 0, 32,205,155, 3,248, 17,156, 3, - 0,219,155, 3,144, 72,160, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,205,155, 3,180, 0, 0, 0, - 1, 0, 0, 0,224, 95,178, 3,136, 46,155, 3,216, 12,156, 3,232,206,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 24, 0, 0, 0,224, 95,178, 3,180, 0, 0, 0, 1, 0, 0, 0,224,111,159, 3, 32,205,155, 3,216, 12,156, 3,144, 72,160, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,111,159, 3,180, 0, 0, 0, 1, 0, 0, 0,224,239,157, 3, -224, 95,178, 3, 0,177,154, 3,144, 72,160, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,239,157, 3, -180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224,111,159, 3,136, 3,156, 3,216, 12,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,112, 0, 0, 0,224,225,153, 3,184, 0, 0, 0, 1, 0, 0, 0, 16,102,155, 3, 0, 0, 0, 0, 48, 11,156, 3, - 8, 2,156, 3, 80, 16,156, 3,224,239,156, 3, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0,121, 4, 0, 0,149, 4, 0, 0, - 7, 7,121, 7, 29, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248,193, 65, 1, 64, 63,179, 3, 64, 63,179, 3,216, 56,155, 3, 40, 96,178, 3, 0, 0, 0, 0, 0, 0, 0, 0,200, 89,154, 3, -128,144, 74, 1, 68, 65, 84, 65,236, 0, 0, 0,216, 56,155, 3,185, 0, 0, 0, 1, 0, 0, 0, 40, 96,178, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,103, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,239, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,213, 68, 0, 0,200, 65, 0,192,213, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,121, 7, 26, 0,121, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0,121, 4, 0, 0,146, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,121, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32,195, 65, 1, 8,235,154, 3, 8,235,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 88,204,163, 3, 8,153, 71, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 40, 96,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 56,155, 3, - 0, 0, 0, 0, 0,240,107, 69, 0,128,206,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 69, 0, 0, 32,192, 0, 0, 0,191, -104, 7, 0, 0,121, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,103, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,103, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,121, 7, 3, 0,104, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 0, 0,147, 4, 0, 0,149, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,121, 7, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,194, 65, 1, 32,142, 78, 1,136,236,154, 3, 72, 97,178, 3, 24,100,178, 3,128,153, 71, 1,112,154, 71, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 72, 97,178, 3,181, 0, 0, 0, 1, 0, 0, 0,176, 98,178, 3, 0, 0, 0, 0, -128,118,159, 3, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,176, 98,178, 3,181, 0, 0, 0, - 1, 0, 0, 0, 24,100,178, 3, 72, 97,178, 3,224,166,160, 3, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,208, 14, 98, 1, 0, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 56, 82, 69, 78, 68, 32, 0, 0, 0, + 0,117,192,137,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0,112,114,101,118,105,101,119, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 32, 1, 0, 0, 16,116,192,137,255,127, 0, 0, +199, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,248,239, 48, 3, 0, 0, 0, 0, + 40,147, 49, 3, 0, 0, 0, 0, 0, 0, 0, 2, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,100,115,107, 47,100, 97,116, + 97, 47,115,114, 99, 47, 98,108,101,110,100,101,114, 47, 98,108,101,110,100,101,114, 47,115,111,117,114, 99,101, 47, 98,108,101, +110,100,101,114, 47,101,100,105,116,111,114,115, 47,100, 97,116, 97,102,105,108,101,115, 47,112,114,101,118,105,101,119, 49, 46, + 98,108,101,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 24, 1, 0, 0, 40,217, 31, 3, 0, 0, 0, 0,106, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,239, 16, 3, 0, 0, 0, 0,200,239, 16, 3, 0, 0, 0, 0,200,239, 16, 3, 0, 0, 0, 0, +200,239, 16, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,136, 85, 3, 2, 0, 0, 0, 0,136, 85, 3, 2, 0, 0, 0, 0,136, 85, 3, 2, 0, 0, 0, 0, + 72, 26,251, 2, 0, 0, 0, 0, 72, 26,251, 2, 0, 0, 0, 0, 72, 26,251, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, +200,239, 16, 3, 0, 0, 0, 0,107, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,162,211, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,239, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 6, 0,126, 7, 28, 4, 0, 0, 0, 0, 1, 0, 5, 0,238, 3, 5, 0, 1, 0, 0, 0,168,128, 3, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,104,169, 3, 3, 0, 0, 0, 0, + 40, 31, 17, 3, 0, 0, 0, 0, 40, 31, 17, 3, 0, 0, 0, 0,104, 29,251, 2, 0, 0, 0, 0,200, 27,251, 2, 0, 0, 0, 0, +152, 28,251, 2, 0, 0, 0, 0,152, 28,251, 2, 0, 0, 0, 0,184, 50,251, 2, 0, 0, 0, 0,248,253, 57, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0,248,239, 48, 3, 0, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82,115, 99,114,101,101,110, 0, 45, 83, 99,114,105,112,116,105,110,103, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0,248,241, 48, 3, 0, 0, 0, 0, +104,242, 48, 3, 0, 0, 0, 0, 72,250, 48, 3, 0, 0, 0, 0,184,250, 48, 3, 0, 0, 0, 0, 88,135, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,147, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 85,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88, 11,223, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 88, 11,223, 1, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,248,196, 20, 3, 0, 0, 0, 0, 88, 11,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 28, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,196, 20, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +120,181, 20, 3, 0, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,120,181, 20, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, +248,196, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +248,152,192, 1, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0,120,181, 20, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 1, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,248,137, 17, 3, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,137, 17, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 40,148, 17, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 1, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 40,148, 17, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, +248,137, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +168,185, 3, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0, 40,148, 17, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 1, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 24,241, 48, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +196, 3,216, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,241, 48, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +136,241, 48, 3, 0, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6,216, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,136,241, 48, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,241, 48, 3, 0, 0, 0, 0, + 24,241, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 12, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +248,241, 48, 3, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,241, 48, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 12, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,242, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,216,242, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0, + 88, 11,223, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,242, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 72,243, 48, 3, 0, 0, 0, 0,104,242, 48, 3, 0, 0, 0, 0, 88, 11,223, 1, 0, 0, 0, 0, +120,181, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,243, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,184,243, 48, 3, 0, 0, 0, 0,216,242, 48, 3, 0, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0, +248,152,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,243, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 40,244, 48, 3, 0, 0, 0, 0, 72,243, 48, 3, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, +120,181, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,244, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,152,244, 48, 3, 0, 0, 0, 0,184,243, 48, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, +248,196, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,244, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 8,245, 48, 3, 0, 0, 0, 0, 40,244, 48, 3, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, +248,137, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,245, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,120,245, 48, 3, 0, 0, 0, 0,152,244, 48, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, +248,137, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,245, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,232,245, 48, 3, 0, 0, 0, 0, 8,245, 48, 3, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, +248,196, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,245, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 88,246, 48, 3, 0, 0, 0, 0,120,245, 48, 3, 0, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0, +120,181, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,246, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200,246, 48, 3, 0, 0, 0, 0,232,245, 48, 3, 0, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0, + 40,148, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,246, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 56,247, 48, 3, 0, 0, 0, 0, 88,246, 48, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, + 40,148, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,247, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,168,247, 48, 3, 0, 0, 0, 0,200,246, 48, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, +120,181, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,247, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 24,248, 48, 3, 0, 0, 0, 0, 56,247, 48, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, +248,137, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,248, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,136,248, 48, 3, 0, 0, 0, 0,168,247, 48, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, + 40,148, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,248, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,248,248, 48, 3, 0, 0, 0, 0, 24,248, 48, 3, 0, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0, + 40,148, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,248, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,104,249, 48, 3, 0, 0, 0, 0,136,248, 48, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, + 24,241, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,249, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,216,249, 48, 3, 0, 0, 0, 0,248,248, 48, 3, 0, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0, + 24,241, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,249, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 72,250, 48, 3, 0, 0, 0, 0,104,249, 48, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0, +248, 34, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,250, 48, 3, 0, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,249, 48, 3, 0, 0, 0, 0,248,137, 17, 3, 0, 0, 0, 0, + 24,241, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,250, 48, 3, 0, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,104, 3, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,181, 20, 3, 0, 0, 0, 0, + 88, 11,223, 1, 0, 0, 0, 0, 24,145,192, 1, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 2, 4, 0, 0, 28, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, +184, 96,194, 1, 0, 0, 0, 0, 40,214,222, 1, 0, 0, 0, 0, 40,214,222, 1, 0, 0, 0, 0,168,251, 48, 3, 0, 0, 0, 0, + 24,253, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 75, 8, 2, 0, 0, 0, 0, +104,103, 7, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,251, 48, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 24,253, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,156, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0, 2, 4, 0, 0, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +127, 7, 26, 0, 16, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 98,194, 1, 0, 0, 0, 0, 56,178, 56, 3, 0, 0, 0, 0, 56,178, 56, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,146, 49, 3, 0, 0, 0, 0,216,165, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,253, 48, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,251, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,107, 69, 0,128,206,195, 0, 0, 0, 0, + 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0,192,121, 68,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, + 0, 0, 0, 0,103, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, + 2, 0, 0, 4, 10, 0,127, 7,231, 3,110, 7,231, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 4, 0, 0, 28, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 97,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,254, 48, 3, 0, 0, 0, 0, +200, 1, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,254, 48, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 40, 0, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,220,255,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 40, 0, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200, 1, 49, 3, 0, 0, 0, 0,136,254, 48, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,208, 14, 98, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0, 24,100,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176, 98,178, 3,176,159,155, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 1, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95, 98,111,116,116,111,109, 98, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95, 98,111,116,116,111,109, 98, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 86,254,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 16,102,155, 3,184, 0, 0, 0, 1, 0, 0, 0,144,214, 76, 1, -224,225,153, 3,232,206,159, 3,136, 3,156, 3,224,239,156, 3, 48,225,154, 3, 0, 0, 0, 0, 9, 6, 0, 0,120, 7, 0, 0, - 0, 0, 0, 0,119, 4, 0, 0, 4, 4,112, 1,120, 4, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128,191, 65, 1,232,232,160, 3, 56,186,178, 3,128,101,178, 3,160,102,178, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 50,155, 3, 72,155, 71, 1, 68, 65, 84, 65,236, 0, 0, 0,128,101,178, 3,185, 0, 0, 0, 1, 0, 0, 0, -160,102,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,184, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, - 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,112, 1, - 26, 0,112, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 6, 0, 0,120, 7, 0, 0, 94, 4, 0, 0,119, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 1, 26, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104,193, 65, 1,144,128,163, 3,144,128,163, 3, 0, 0, 0, 0, 0, 0, 0, 0,168,155, 71, 1, -152,156, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,160,102,178, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,128,101,178, 3, 0, 0, 0, 0, 0,128,177, 67, 0,160,143,196, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12,186, 67, -116,195,145,196, 0, 0, 0, 0, 95, 1, 0, 0,112, 1, 0, 0, 18, 0, 0, 0, 93, 4, 0, 0, 0, 0, 0, 0, 94, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 94, 1, 0, 0, 18, 0, 0, 0, 93, 4, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, - 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,112, 1, - 94, 4, 95, 1, 76, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 6, 0, 0,120, 7, 0, 0, 0, 0, 0, 0, 93, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 1, 94, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24,192, 65, 1,240,146,203, 3,112, 73,163, 3,192,103,178, 3, 88,147,178, 3, 96,158, 71, 1, - 80,159, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,103,178, 3,181, 0, 0, 0, 1, 0, 0, 0, - 40,105,178, 3, 0, 0, 0, 0,168,192, 65, 1, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, -120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, -120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,116, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, - 40,105,178, 3,181, 0, 0, 0, 1, 0, 0, 0,144,106,178, 3,192,103,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,255, -240, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 86,254,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,144,106,178, 3,181, 0, 0, 0, 1, 0, 0, 0,248,107,178, 3, 40,105,178, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +104, 3, 49, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 79, 49, 3, 0, 0, 0, 0,184,250, 48, 3, 0, 0, 0, 0, +184,154, 3, 2, 0, 0, 0, 0,248,137, 17, 3, 0, 0, 0, 0,248,152,192, 1, 0, 0, 0, 0,248,196, 20, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 4,110, 1, 1, 4, 2, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 88, 92,194, 1, 0, 0, 0, 0,184, 78, 49, 3, 0, 0, 0, 0,184, 78, 49, 3, 0, 0, 0, 0, + 88, 4, 49, 3, 0, 0, 0, 0,200, 5, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,142, 25, 3, 0, 0, 0, 0,184, 10, 25, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 4, 49, 3, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0,200, 5, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,183, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,182, 67, 0, 0,200, 65, 0,128,182, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,110, 1, 26, 0,110, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 0, 0,126, 7, 0, 0,231, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,110, 1, 26, 0, 17, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200, 95,194, 1, 0, 0, 0, 0,248,170, 28, 3, 0, 0, 0, 0,248,170, 28, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,148,243, 3, 0, 0, 0, 0,184,236, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 5, 49, 3, 0, 0, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 4, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, + 0, 96,132,196, 0, 0, 0, 0, 0, 0, 0, 0,180,252,184, 67, 55, 97,132,196, 0, 0, 0, 0, 93, 1, 0, 0,110, 1, 0, 0, + 0, 0, 0, 0,230, 3, 0, 0, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, + 0, 0, 0, 0,230, 3, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,110, 1,231, 3, 93, 1,231, 3, 0, 0, 88,234, 3, 3, 0, 0, 0, 0, + 5, 0, 0, 0, 4, 0, 0, 0, 17, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,110, 1,231, 3, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120, 93,194, 1, 0, 0, 0, 0, 88,111, 27, 3, 0, 0, 0, 0,136,197, 56, 3, 0, 0, 0, 0, + 56, 7, 49, 3, 0, 0, 0, 0, 88,237, 6, 2, 0, 0, 0, 0, 72, 82, 3, 2, 0, 0, 0, 0,200, 43, 26, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 7, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 8, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 94,194, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,113, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 8, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 10, 49, 3, 0, 0, 0, 0, + 56, 7, 49, 3, 0, 0, 0, 0,120, 3,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, + 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, + 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,255,113, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 10, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 12, 49, 3, 0, 0, 0, 0,216, 8, 49, 3, 0, 0, 0, 0,232, 6,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,255,240, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,255,113, 1,136, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,248,107,178, 3,181, 0, 0, 0, - 1, 0, 0, 0, 96,109,178, 3,144,106,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,108, 97,109,112, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 12, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 13, 49, 3, 0, 0, 0, 0, +120, 10, 49, 3, 0, 0, 0, 0, 24, 10,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,254,113, 1,171, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,254,240, 0,149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0, 96,109,178, 3,181, 0, 0, 0, 1, 0, 0, 0,200,110,178, 3,248,107,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 13, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 88, 15, 49, 3, 0, 0, 0, 0, 24, 12, 49, 3, 0, 0, 0, 0, 72, 16,131, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47,254,240, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,254,113, 1, 36, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200,110,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 48,112,178, 3, - 96,109,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 88, 15, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 16, 49, 3, 0, 0, 0, 0, +184, 13, 49, 3, 0, 0, 0, 0,184, 22,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,112,111,116, 32, 83,104, 97, +112,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155,253,113, 1,102, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199,253, 62, 1, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 16, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,152, 18, 49, 3, 0, 0, 0, 0, 88, 15, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,113, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 48,112,178, 3, -181, 0, 0, 0, 1, 0, 0, 0,152,113,178, 3,200,110,178, 3, 48,234,160, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,116, 1, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,152, 18, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56, 20, 49, 3, 0, 0, 0, 0, +248, 16, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,254,113, 1,203, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 56, 1, 0, 0,152,113,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 0,115,178, 3, 48,112,178, 3,184,216,160, 3, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 20, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 21, 49, 3, 0, 0, 0, 0,152, 18, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,189,254,116, 1,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,254,113, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0,115,178, 3,181, 0, 0, 0, 1, 0, 0, 0, -104,116,178, 3,152,113,178, 3, 96,218,160, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, -105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, -105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,254,116, 1, 58, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, -104,116,178, 3,181, 0, 0, 0, 1, 0, 0, 0,208,117,178, 3, 0,115,178, 3, 8,220,160, 3, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, -114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,254, -116, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 21, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 23, 49, 3, 0, 0, 0, 0, + 56, 20, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,251,113, 1, 44, 2, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,208,117,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 56,119,178, 3,104,116,178, 3, -104,188,159, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 23, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 25, 49, 3, 0, 0, 0, 0,216, 21, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,253,116, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,113, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 56,119,178, 3,181, 0, 0, 0, - 1, 0, 0, 0,160,120,178, 3,208,117,178, 3, 16,190,159, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,253,116, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0,160,120,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 8,122,178, 3, 56,119,178, 3,184,191,159, 3, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 25, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 26, 49, 3, 0, 0, 0, 0, +120, 23, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,253,113, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,165,253,116, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 26, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 88, 28, 49, 3, 0, 0, 0, 0, 24, 25, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 8,122,178, 3,181, 0, 0, 0, 1, 0, 0, 0,112,123,178, 3, -160,120,178, 3, 24,174,159, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,253,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,253,116, 1,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,123,178, 3, -181, 0, 0, 0, 1, 0, 0, 0,216,124,178, 3, 8,122,178, 3,104,177,159, 3, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 88, 28, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 29, 49, 3, 0, 0, 0, 0, +184, 26, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,253,116, 1, 0, 0, - 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,252,113, 1,130, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 56, 1, 0, 0,216,124,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 64,126,178, 3,112,123,178, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 29, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,152, 31, 49, 3, 0, 0, 0, 0, 88, 28, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170,252,113, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,184,255,240, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64,126,178, 3,181, 0, 0, 0, 1, 0, 0, 0, -168,127,178, 3,216,124,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,152, 31, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56, 33, 49, 3, 0, 0, 0, 0, +248, 29, 49, 3, 0, 0, 0, 0,184, 45,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, + 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, + 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,255,113, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,255,240, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, -168,127,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 16,129,178, 3, 64,126,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101, -114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,254, -240, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 33, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 34, 49, 3, 0, 0, 0, 0,152, 31, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16,129,178, 3,181, 0, 0, 0, 1, 0, 0, 0,120,130,178, 3,168,127,178, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,255,240, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 34, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 36, 49, 3, 0, 0, 0, 0, + 56, 33, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101,114,105, 97,108, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,254,240, 0,126, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 36, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 38, 49, 3, 0, 0, 0, 0,216, 34, 49, 3, 0, 0, 0, 0, 40, 55,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,101,120, 32, 71,114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,254,240, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234,254,113, 1, 76, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,120,130,178, 3,181, 0, 0, 0, - 1, 0, 0, 0,224,131,178, 3, 16,129,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,112, -101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,112, -101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,112,101, 32, 75,101,121,115, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 38, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 39, 49, 3, 0, 0, 0, 0, +120, 36, 49, 3, 0, 0, 0, 0,104, 58,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,112,101, 32, 75,101, +121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,254,113, 1, 76, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,253,240, 0,126, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 39, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 88, 41, 49, 3, 0, 0, 0, 0, 24, 38, 49, 3, 0, 0, 0, 0,168, 61,131, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0,224,131,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 72,133,178, 3,120,130,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 32, 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 32, 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,254,113, 1, 94, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,234,252,240, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 88, 41, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 42, 49, 3, 0, 0, 0, 0, +184, 39, 49, 3, 0, 0, 0, 0, 40, 68,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,101,120, 32, 67, +111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,253,113, 1, 94, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 72,133,178, 3,181, 0, 0, 0, 1, 0, 0, 0,176,134,178, 3, -224,131,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,101,120, 32, 67,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 42, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,152, 44, 49, 3, 0, 0, 0, 0, 88, 41, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109, 97,116,101, +114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109, 97,116,101, +114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,252,240, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,176,134,178, 3, -181, 0, 0, 0, 1, 0, 0, 0, 24,136,178, 3, 72,133,178, 3,248,225,160, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, - 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, - 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,255,113, 1,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,255,116, 1,151, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,152, 44, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56, 46, 49, 3, 0, 0, 0, 0, +248, 42, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190,254,113, 1,136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 56, 1, 0, 0, 24,136,178, 3,181, 0, 0, 0, 1, 0, 0, 0,128,137,178, 3,176,134,178, 3, 0,210,160, 3, - 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 46, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 47, 49, 3, 0, 0, 0, 0,152, 44, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,165,254,116, 1,136, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,254,116, 1, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,128,137,178, 3,181, 0, 0, 0, 1, 0, 0, 0, -232,138,178, 3, 24,136,178, 3,168,211,160, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101, -114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101, -114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,254,116, 1, 86, 0, 0, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 47, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 49, 49, 3, 0, 0, 0, 0, + 56, 46, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, -232,138,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 80,140,178, 3,128,137,178, 3,176,181,159, 3, 0, 0, 0, 0, 77, 65, 84, 69, - 82, 73, 65, 76, 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, - 82, 73, 65, 76, 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,102,102, -117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,253, -116, 1,179, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103,254,113, 1, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,140,178, 3,181, 0, 0, 0, 1, 0, 0, 0,184,141,178, 3,232,138,178, 3, - 88,183,159, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,112,101, 99,117,108, 97,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 49, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 51, 49, 3, 0, 0, 0, 0,216, 47, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,112,101, 99,117,108, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,112,101, 99,117,108, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,112,101, 99,117,108, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,252,116, 1,111, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,253,113, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,184,141,178, 3,181, 0, 0, 0, - 1, 0, 0, 0, 32,143,178, 3, 80,140,178, 3, 96,167,159, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, -114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, -114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 97,121, 32, 77,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,252,116, 1, 0, 0, 24, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0, 32,143,178, 3,181, 0, 0, 0, 1, 0, 0, 0,136,144,178, 3,184,141,178, 3, 8,169,159, 3, 0, 0, 0, 0, - 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 51, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 52, 49, 3, 0, 0, 0, 0, +120, 49, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 97,121, 32, 77,105,114,114, +111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,252,116, 1, 0, 0, + 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 97,121, 32, 84,114, 97,110,115,112, 97,114,101,110, 99,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 52, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 88, 54, 49, 3, 0, 0, 0, 0, 24, 51, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,181,252,116, 1, 0, 0, 24, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 97,121, 32, 84,114, 97,110,115,112, 97,114,101,110, 99,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,136,144,178, 3,181, 0, 0, 0, 1, 0, 0, 0,240,145,178, 3, - 32,143,178, 3, 40,208,156, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,252,116, 1, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,117, 98,115,117,114,102, 97, 99,101, 32, 83, 99, 97,116,116,101,114,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157,252,116, 1, 0, 0, 24, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,240,145,178, 3, -181, 0, 0, 0, 1, 0, 0, 0, 88,147,178, 3,136,144,178, 3, 64, 70,156, 3, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, - 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 88, 54, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 55, 49, 3, 0, 0, 0, 0, +184, 52, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, - 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114, 97,110,100, 0, 0, + 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,117, 98,115,117,114,102, 97, + 99,101, 32, 83, 99, 97,116,116,101,114,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,252,113, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,133,252,116, 1, 0, 0, - 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 55, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,152, 57, 49, 3, 0, 0, 0, 0, 88, 54, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 56, 1, 0, 0, 88,147,178, 3,181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,145,178, 3,232, 71,156, 3, - 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225,252,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,131,251,116, 1,234, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,232,232,160, 3,151, 0, 0, 0, 1, 0, 0, 0, - 8,154,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,193, 0, 0,163, 67, 0, 64,180,196, - 0, 0,104, 67, 0, 0, 0,193, 0, 0,163, 67, 0, 64,180,196, 30,209,118, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,152, 57, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56, 59, 49, 3, 0, 0, 0, 0, +248, 55, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 0, 53, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, - 0, 0, 4, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,150, 1, 0, 0, 48, 1, 0, 0, 72, 61,154, 3,255, 20, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,192,148,178, 3,185, 0, 0, 0, 1, 0, 0, 0,224,149,178, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,251,113, 1,208, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 59, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 60, 49, 3, 0, 0, 0, 0,152, 57, 49, 3, 0, 0, 0, 0, 40, 49,131, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78,111,114,109, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,224,149,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -192,148,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,255,113, 1, 58, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 60, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 62, 49, 3, 0, 0, 0, 0, + 56, 59, 49, 3, 0, 0, 0, 0,232, 51,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, +116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,117,114,101, 32, + 83,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,255,113, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,151,178, 3, 68, 65, 84, 65,216, 2, 0, 0, 0,151,178, 3,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 62, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 64, 49, 3, 0, 0, 0, 0,216, 60, 49, 3, 0, 0, 0, 0, 24, 71,131, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 95,109,101,115, +104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 95,109,101,115, +104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,253,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 64, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 65, 49, 3, 0, 0, 0, 0, +120, 62, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, + 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,113, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 65, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 88, 67, 49, 3, 0, 0, 0, 0, 24, 64, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,252,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 88, 67, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 68, 49, 3, 0, 0, 0, 0, +184, 65, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72, 89, 83, 73, 67, 83, 95, + 80, 84, 95, 97,100,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72, 89, 83, 73, 67, 83, 95, + 80, 84, 95, 97,100,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,255,113, 1,105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 99, 92, 63, - 43, 35, 2,191,188,238, 46,188, 94, 32,148,188, 23,240, 25, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 77, 68, 64,228, 66,111, 64,230, 97,205,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 68, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,152, 70, 49, 3, 0, 0, 0, 0, 88, 67, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 82, 84, 73, 67, 76, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,112, 97,114,116, +105, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 82, 84, 73, 67, 76, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,112, 97,114,116, +105, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,255,113, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 8,154,178, 3, -146, 0, 0, 0, 1, 0, 0, 0,240,250,157, 3,232,232,160, 3,192,148,178, 3,224,149,178, 3, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 99, 92, 63, 43, 35, 2,191,188,238, 46,188, 94, 32,148,188, - 23,240, 25, 66, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,119,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67,201, 77, 68, 64,228, 66,111, 64,230, 97,205,191,128,191,149, 60, -116,109, 77,191,248,165,230, 63, 20, 0, 0, 0, 7, 0, 10, 0, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, - 40,155,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 72,156,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,152, 70, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56, 72, 49, 3, 0, 0, 0, 0, +248, 68, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,253,113, 1, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 72, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,216, 73, 49, 3, 0, 0, 0, 0,152, 70, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, - 72,156,178, 3,185, 0, 0, 0, 1, 0, 0, 0,104,157,178, 3, 40,155,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,116,114, 97,110,115,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,112, 97,114,101,110, 99,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,253,113, 1, 83, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -104,157,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72,156,178, 3, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189, -205,204,140, 63, 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, -235, 2, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0, -235, 2, 0, 0, 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, - 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,196, 0, 0, 0, -240,250,157, 3,150, 0, 0, 0, 1, 0, 0, 0,200,160,178, 3, 8,154,178, 3, 40,155,178, 3,104,157,178, 3, 2, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189, -205,204,140, 63, 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, -235, 2, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0, -235, 2, 0, 0, 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,216, 73, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 75, 49, 3, 0, 0, 0, 0, + 56, 72, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,109,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,109,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,136,158,178, 3,185, 0, 0, 0, - 1, 0, 0, 0,168,159,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,253,113, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 75, 49, 3, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 24, 77, 49, 3, 0, 0, 0, 0,216, 73, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168,159,178, 3,185, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,136,158,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225,251,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, - 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,124, 2, 0, 0,200,160,178, 3,158, 0, 0, 0, - 1, 0, 0, 0,184,165,178, 3,240,250,157, 3,136,158,178, 3,168,159,178, 3, 9, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 45, 96, 1, 0, 0, 0, 0, 62, 0, 0, 0, 32, 0, 1, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 5, 0, 0, 0, 17, 0, 0, 0, -225, 2, 0, 0,227, 2, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0,207, 2, 0, 0,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 24, 77, 49, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88,237, 6, 2, 0, 0, 0, 0, +120, 75, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80, +114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,251,113, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,237, 6, 2, 0, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 77, 49, 3, 0, 0, 0, 0,184, 28,131, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 95,108, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 95,108, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,253,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,184, 78, 49, 3, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 0, 0,163, 67, + 0, 64,180,196, 0, 0,104, 67, 0, 0, 0,193, 0, 0,163, 67, 0, 64,180,196, 30,209,118, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 0, 53, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 8,212, 3, 3, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 79, 49, 3, 0, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 56,117, 49, 3, 0, 0, 0, 0,104, 3, 49, 3, 0, 0, 0, 0, 40,148, 17, 3, 0, 0, 0, 0, +248, 34, 4, 3, 0, 0, 0, 0, 24,241, 48, 3, 0, 0, 0, 0,184,154, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0, 15, 6, 0, 0, 0, 0, 0, 0,215, 2, 0, 0, 6, 6, 75, 2,216, 2, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, +152, 75,194, 1, 0, 0, 0, 0,200, 83, 49, 3, 0, 0, 0, 0,200, 83, 49, 3, 0, 0, 0, 0,232, 80, 49, 3, 0, 0, 0, 0, + 88, 82, 49, 3, 0, 0, 0, 0,216, 55, 24, 3, 0, 0, 0, 0,216, 55, 24, 3, 0, 0, 0, 0,200,133,192, 1, 0, 0, 0, 0, + 8, 20, 26, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 80, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 88, 82, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192, 18, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128, 18, 68, 0, 0,200, 65, 0,128, 18, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0, 75, 2, 26, 0, 75, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0, 15, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 2, 26, 0, 19, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 83,194, 1, 0, 0, 0, 0,104, 71, 8, 2, 0, 0, 0, 0,104, 71, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168, 56, 24, 3, 0, 0, 0, 0, 40, 28, 25, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 82, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 80, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 67, 0, 0, 0, 0, 0, 0, 22, 67, + 12,116,186,191, 6, 58, 29, 64, 29,133,235,191,143,194, 53, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0,190, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0, 15, 6, 0, 0, 26, 0, 0, 0,215, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 2,190, 2, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184, 76,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 28, 25, 3, 0, 0, 0, 0,104,241, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0,200, 83, 49, 3, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 1, 0, 0,136,187, 49, 3, 0, 0, 0, 0, 40,147, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0, +154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0,120,163,178, 3,185, 0, 0, 0, 1, 0, 0, 0,152,164,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0,152,164,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120,163,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,136, 0, 0, 0,184,165,178, 3,156, 0, 0, 0, 1, 0, 0, 0,176,168,178, 3,200,160,178, 3,120,163,178, 3, -152,164,178, 3, 6, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,112,166,178, 3,185, 0, 0, 0, 1, 0, 0, 0,144,167,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,144,167,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,166,178, 3, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0,176,168,178, 3,155, 0, 0, 0, 1, 0, 0, 0, 24,172,178, 3,184,165,178, 3,112,166,178, 3,144,167,178, 3, - 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,216,169,178, 3,185, 0, 0, 0, 1, 0, 0, 0,248,170,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,248,170,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -216,169,178, 3, 0, 0,128,192, 0, 0,122, 67, 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, - 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, - 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,184, 0, 0, 0, 24,172,178, 3,250, 0, 0, 0, 1, 0, 0, 0, 96,176,178, 3, -176,168,178, 3,216,169,178, 3,248,170,178, 3, 11, 0, 0, 0, 51, 51, 51, 63,248,150,127, 3, 0, 0,128,192, 0, 0,122, 67, - 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, - 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 0,173,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 32,174,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 32,174,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 64,175,178, 3, 0,173,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 64,175,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32,174,178, 3, 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, - 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, -196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, - 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0, 96,176,178, 3, -157, 0, 0, 0, 1, 0, 0, 0,176,180,178, 3, 24,172,178, 3, 0,173,178, 3, 64,175,178, 3, 13, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0, -124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0, -108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, - 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 80,177,178, 3,185, 0, 0, 0, 1, 0, 0, 0,112,178,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,112,178,178, 3,185, 0, 0, 0, 1, 0, 0, 0,144,179,178, 3, 80,177,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,144,179,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,178,178, 3, - 0, 0,160,193, 0, 0, 85, 67, 0,160,134,196, 0, 0, 0, 0, 0, 0,160,193, 0, 0, 85, 67, 0,160,134,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, - 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176,180,178, 3, 4, 1, 0, 0, 1, 0, 0, 0, 56,186,178, 3, 96,176,178, 3, - 80,177,178, 3,144,179,178, 3, 12, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,191, 0, 0, 2, 66, 0, 0,122,196, 0, 0, 0, 0, 0, 0, 0,191, 0, 0, 2, 66, 0, 0,150,194, 0, 0,160, 64, -108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0,128, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, -128, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 70, 0, 0,122, 68, - 10,215, 35, 60, 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,184,181,178, 3,185, 0, 0, 0, - 1, 0, 0, 0,216,182,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,216,182,178, 3,185, 0, 0, 0, - 1, 0, 0, 0,248,183,178, 3,184,181,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,248,183,178, 3,185, 0, 0, 0, - 1, 0, 0, 0, 24,185,178, 3,216,182,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 24,185,178, 3,185, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,248,183,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, - 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 52, 0, 0, 0, 56,186,178, 3,154, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,176,180,178, 3,184,181,178, 3, 24,185,178, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, -144,214, 76, 1,184, 0, 0, 0, 1, 0, 0, 0,184,227,178, 3, 16,102,155, 3, 0,219,155, 3,144, 72,160, 3,216, 12,156, 3, -232,206,159, 3, 0, 0, 0, 0,193, 3, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 43, 3, 0, 0, 6, 6, 71, 2, 44, 3, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,183, 65, 1,224,188,178, 3, - 80,227,178, 3,160,186,178, 3,192,187,178, 3, 0, 0, 0, 0, 0, 0, 0, 0,200,159, 71, 1,136, 0,158, 3, 68, 65, 84, 65, -236, 0, 0, 0,160,186,178, 3,185, 0, 0, 0, 1, 0, 0, 0,192,187,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 5, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 17, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 3, 68, 0, 0,200, 65, 0,128, 3, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 71, 2, 26, 0, 71, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 3, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 2, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,188, 65, 1,144, 58,199, 3, -144, 58,199, 3, 0, 0, 0, 0, 0, 0, 0, 0, 56, 2,158, 3, 40, 3,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,192,187,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160,186,178, 3, 0, 0, 0, 0, 0, 0, 22, 67, - 0, 0, 0, 0, 0, 0, 22, 67, 36,191,184,191,146, 95, 28, 64, 19,174, 7,192, 19,174, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, - 0, 0, 0, 0, 18, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 3, 0, 0, 7, 6, 0, 0, 26, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 2, 18, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,184, 65, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 5,158, 3,104, 6,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -136, 0, 0, 0,224,188,178, 3,156, 0, 0, 0, 1, 0, 0, 0,224,194,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 83,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63,179, 3, - 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -152,189,178, 3,185, 0, 0, 0, 1, 0, 0, 0,184,190,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -184,190,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,189,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0, -111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,191,178, 3, 68, 65, 84, 65,216, 2, 0, 0, -216,191,178, 3,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -815,97 +833,39 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,252, 83, 63,104, 25,223,190,115, 52, 40, 62,119,211,159, 62, 96,183,198, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,146, 22,189,174, 51,122,190, 29,244, 58,192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,224,194,178, 3,146, 0, 0, 0, 1, 0, 0, 0, 32,241,154, 3,224,188,178, 3, -152,189,178, 3,184,190,178, 3, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84,252, 83, 63,104, 25,223,190,115, 52, 40, 62,119,211,159, 62, 96,183,198, 65, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -232,119,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, -163,146, 22,189,174, 51,122,190, 29,244, 58,192, 0, 0,224, 54, 56,146, 88, 63,198, 37, 71, 64, 20, 0, 0, 0, 7, 0, 10, 0, -115, 0, 0, 0, 1, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 0,196,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 32,197,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 32,197,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0,196,178, 3, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, 0, 0,100, 67,197,197,136, 55,118,209, 78, 68, 40,222,231,195, -172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, - 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3, -235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, 32,241,154, 3,151, 0, 0, 0, 1, 0, 0, 0,160,201,178, 3, -224,194,178, 3, 0,196,178, 3, 32,197,178, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, 0, 0,100, 67, -197,197,136, 55,118,209, 78, 68, 40,222,231,195,172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 3, 0, - 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,150, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 64,198,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 96,199,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 96,199,178, 3,185, 0, 0, 0, 1, 0, 0, 0,128,200,178, 3, 64,198,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,128,200,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,199,178, 3, - 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, - 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,196, 0, 0, 0,160,201,178, 3,150, 0, 0, 0, 1, 0, 0, 0,216,204,178, 3, 32,241,154, 3, - 64,198,178, 3,128,200,178, 3, 2, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,152,202,178, 3,185, 0, 0, 0, 1, 0, 0, 0,184,203,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,184,203,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,202,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -124, 2, 0, 0,216,204,178, 3,158, 0, 0, 0, 1, 0, 0, 0,200,209,178, 3,160,201,178, 3,152,202,178, 3,184,203,178, 3, - 9, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 45, 96, 1, 0, 0, 0, 0, - 62, 0, 0, 0, 32, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205,204,204, 61, 5, 0, 0, 0, 17, 0, 0, 0,225, 2, 0, 0,227, 2, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0,207, 2, 0, 0, -227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -913,6 +873,7 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -921,297 +882,85 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,136,207,178, 3,185, 0, 0, 0, 1, 0, 0, 0, -168,208,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168,208,178, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,136,207,178, 3, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 0, 6, 0, 0, 0, - 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200,209,178, 3,155, 0, 0, 0, 1, 0, 0, 0, - 48,213,178, 3,216,204,178, 3,136,207,178, 3,168,208,178, 3, 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -240,210,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 16,212,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, - 16,212,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,210,178, 3, 0, 0,128,192, 0, 0,122, 67, 0, 0,128,192, - 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 16, 0, 0, 0, -124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, 73, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0, -111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,184, 0, 0, 0, - 48,213,178, 3,250, 0, 0, 0, 1, 0, 0, 0,120,217,178, 3,200,209,178, 3,240,210,178, 3, 16,212,178, 3, 11, 0, 0, 0, - 51, 51, 51, 63, 0,226,127, 3, 0, 0,128,192, 0, 0,122, 67, 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, - 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, - 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 24,214,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 56,215,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 56,215,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 88,216,178, 3, 24,214,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 88,216,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,215,178, 3, - 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67, -108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, -196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68, -205,204,204, 61, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0,120,217,178, 3,157, 0, 0, 0, 1, 0, 0, 0,200,221,178, 3, 48,213,178, 3, - 24,214,178, 3, 88,216,178, 3, 13, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,160,192, - 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,196, 0, 0, 0, -108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,104,218,178, 3, -185, 0, 0, 0, 1, 0, 0, 0,136,219,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,136,219,178, 3, -185, 0, 0, 0, 1, 0, 0, 0,168,220,178, 3,104,218,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168,220,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,219,178, 3, 0, 0,160,193, 0,128,167, 67, 0,160,134,196, 0, 0, 0, 0, - 0, 0,160,193, 0,128,167, 67, 0,160,134,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, - 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,221,178, 3, - 4, 1, 0, 0, 1, 0, 0, 0, 80,227,178, 3,120,217,178, 3,104,218,178, 3,168,220,178, 3, 12, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 0, 0, 2, 66, 0, 0,122,196, 0, 0, 0, 0, - 0, 0, 0,191, 0, 0, 2, 66, 0, 0,150,194, 0, 0,160, 64,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, -128, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,128, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0, 14, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 70, 0, 0,122, 68, 10,215, 35, 60, 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0,208,222,178, 3,185, 0, 0, 0, 1, 0, 0, 0,240,223,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0,240,223,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 16,225,178, 3,208,222,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0, 16,225,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 48,226,178, 3,240,223,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,236, 0, 0, 0, 48,226,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16,225,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 52, 0, 0, 0, 80,227,178, 3,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200,221,178, 3,208,222,178, 3, - 48,226,178, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0,184,227,178, 3,184, 0, 0, 0, 1, 0, 0, 0,112, 13,179, 3, -144,214, 76, 1, 24,225,155, 3, 48, 11,156, 3, 0,177,154, 3, 0,219,155, 3, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, - 0, 0, 0, 0,119, 4, 0, 0, 1, 1,192, 3,120, 4, 1, 0, 0, 0, 0, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,172, 65, 1,160,233,178, 3, 8, 13,179, 3, 88,228,178, 3,120,229,178, 3, 0, 0, 0, 0, - 0, 0, 0, 0,224, 6,158, 3,160, 7,158, 3, 68, 65, 84, 65,236, 0, 0, 0, 88,228,178, 3,185, 0, 0, 0, 1, 0, 0, 0, -120,229,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,112, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 84, 68, 0, 0,200, 65, - 0,192, 84, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,192, 3, - 26, 0,192, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 26, 0, 8, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72,178, 65, 1,112,168, 78, 1,112,168, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 80, 9,158, 3, -184, 10,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,120,229,178, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 88,228,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 26, 0, 0, 0,119, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 94, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8,173, 65, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 12,158, 3, - 96, 16,158, 3, 0, 0, 0, 0,152,230,178, 3, 68, 65, 84, 65,216, 2, 0, 0,152,230,178, 3,145, 0, 0, 0, 1, 0, 0, 0, -170, 10,163, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, -197, 56, 16, 63,181,165,214,190,216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,179,248,135, 62,228,147,254,190, 0, 0, 0, 0, -155,199,158, 60, 68, 64, 94, 63,111,229,253, 62, 0, 0, 0, 0,239,219,254,191,167, 80,144,192,255, 66, 63,194, 0, 0,128, 63, -229, 56, 16, 63, 90,115, 83, 63,158,201,158, 60, 0, 0, 0, 0,200,165,214,190,182,248,135, 62, 77, 64, 94, 63, 0, 0, 0, 0, -225, 65, 54, 63, 0,148,254,190,119,229,253, 62, 0, 0, 0, 0,110, 23, 5, 66, 18,118,167,193, 59, 82,221, 65, 0, 0,128, 63, - 79,180, 55, 63, 62,197,234,190,182, 67, 54,191,216, 65, 54,191, 74,171,134, 63, 4,184,148, 62,128,150,254, 62,228,147,254, 62, -106, 63,202, 60, 74, 22,115, 63, 9,232,253,190,111,229,253,190,167, 80, 34,192, 55,216,157,192,122, 48, 63, 66,255, 66, 63, 66, - 76,111,226, 62,122, 2, 38, 63,246,229,120, 60, 0, 84,115,181, 62,141,196,190,172, 3,121, 62, 71, 19, 75, 63, 0, 8,149,183, - 77, 79,208,196, 76, 13,131, 68,171, 51,173,196, 68, 87, 72,194,156, 58,208, 68,179,254,130,196,138, 37,173, 68, 71, 89, 72, 66, -197, 56, 16, 63,181,165,214,190,216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,179,248,135, 62,228,147,254,190, 0, 0, 0, 0, -155,199,158, 60, 68, 64, 94, 63,111,229,253, 62, 0, 0, 0, 0, 62,101,214,192,129, 55, 88,192, 98, 89, 45,194, 0, 0,128, 63, - 79,180, 55, 63, 62,197,234,190,182, 67, 54,191,216, 65, 54,191, 74,171,134, 63, 4,184,148, 62,128,150,254, 62,228,147,254, 62, -106, 63,202, 60, 74, 22,115, 63, 9,232,253,190,111,229,253,190,101,139, 8,193,181,124,108,192,174, 70, 45, 66, 98, 89, 45, 66, -180, 25,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 25,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,180, 25,170, 64, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 0, 0,128, 63, -153, 42, 67, 63,246, 62,229,190,251,142,104,190,131, 17,209,190,141, 8, 56, 66,223,139, 15, 66, 0, 0, 0, 0, 0, 0, 0, 0, -251, 91,214, 58, 80,127, 4,191,250,204,248,191, 74, 51,155,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, -160,233,178, 3,146, 0, 0, 0, 1, 0, 0, 0, 0,237,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,139, 48, 63,240,151, 31,191,155, 98,151,190, - 77, 45, 97,190,141, 8, 56, 66, 0, 0, 0, 0,255, 13, 0, 0, 1, 0, 0, 0,232,119,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 24, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 80,127, 4,191,250,204,248,191, 74, 51,155,192, - 96,199, 41,188,225,230, 30,193,216,129,230, 63, 20, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 1, 0, 3, 0,255,255, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,192,234,178, 3,185, 0, 0, 0, 1, 0, 0, 0,224,235,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 55, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,213, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,174, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192,213, 68, 0, 0,200, 65, 0,192,213, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,175, 6, 26, 0,175, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,174, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -175, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,224,235,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,234,178, 3, 0, 0, 0, 0, 0, 0, 22, 67, - 0, 0, 0, 0, 0, 0, 22, 67,181,129,166,192,181,129,198, 64,218, 64, 71,192,109,160,131, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,175, 6, 0, 0, - 0, 0, 0, 0, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,174, 6, 0, 0, 26, 0, 0, 0, 85, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -175, 6, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -136, 0, 0, 0, 0,237,178, 3,156, 0, 0, 0, 1, 0, 0, 0,192, 78,174, 3,160,233,178, 3,192,234,178, 3,224,235,178, 3, - 6, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 83,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -184,237,178, 3,185, 0, 0, 0, 1, 0, 0, 0,216,238,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -216,238,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,237,178, 3, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, - 0, 0,100, 67,197,197,136, 55,118,209, 78, 68, 40,222,231,195,172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 2, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, -192, 78,174, 3,151, 0, 0, 0, 1, 0, 0, 0, 88,243,178, 3, 0,237,178, 3,184,237,178, 3,216,238,178, 3, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, 0, 0,100, 67,197,197,136, 55,118,209, 78, 68, 40,222,231,195,172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, - 0, 0, 0, 63, 72,225,154, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3,235, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,150, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,248,239,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 24,241,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 24,241,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 56,242,178, 3,248,239,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 56,242,178, 3, -185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24,241,178, 3, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, - 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, - 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, - 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,196, 0, 0, 0, 88,243,178, 3, -150, 0, 0, 0, 1, 0, 0, 0,144,246,178, 3,192, 78,174, 3,248,239,178, 3, 56,242,178, 3, 2, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, - 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, - 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 80,244,178, 3,185, 0, 0, 0, 1, 0, 0, 0, -112,245,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,112,245,178, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 80,244,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,124, 2, 0, 0,144,246,178, 3,158, 0, 0, 0, 1, 0, 0, 0, -128,251,178, 3, 88,243,178, 3, 80,244,178, 3,112,245,178, 3, 9, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 45, 96, 1, 0, 0, 0, 0, 62, 0, 0, 0, 32, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 5, 0, 0, 0, 17, 0, 0, 0,225, 2, 0, 0, -227, 2, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0,207, 2, 0, 0,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1227,279 +976,402 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0, 64,249,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 96,250,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0, 96,250,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,249,178, 3, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0,128,251,178, 3,155, 0, 0, 0, 1, 0, 0, 0,232,254,178, 3,144,246,178, 3, 64,249,178, 3, 96,250,178, 3, - 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168,252,178, 3,185, 0, 0, 0, 1, 0, 0, 0,200,253,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,200,253,178, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -168,252,178, 3, 0, 0,128,192, 0, 0,122, 67, 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, - 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, - 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,184, 0, 0, 0,232,254,178, 3,250, 0, 0, 0, 1, 0, 0, 0, 48, 3,179, 3, -128,251,178, 3,168,252,178, 3,200,253,178, 3, 11, 0, 0, 0, 51, 51, 51, 63,248,254,127, 3, 0, 0,128,192, 0, 0,122, 67, - 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, - 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,208,255,178, 3, -185, 0, 0, 0, 1, 0, 0, 0,240, 0,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,240, 0,179, 3, -185, 0, 0, 0, 1, 0, 0, 0, 16, 2,179, 3,208,255,178, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 16, 2,179, 3, -185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 0,179, 3, 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, - 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, -196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, - 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0, 48, 3,179, 3, -157, 0, 0, 0, 1, 0, 0, 0,128, 7,179, 3,232,254,178, 3,208,255,178, 3, 16, 2,179, 3, 13, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0, -124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0, -108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, - 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 32, 4,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 64, 5,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 64, 5,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 96, 6,179, 3, 32, 4,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,117, 49, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 88,135, 49, 3, 0, 0, 0, 0,248, 79, 49, 3, 0, 0, 0, 0, 8,146,192, 1, 0, 0, 0, 0,120,181, 20, 3, 0, 0, 0, 0, +168,185, 3, 2, 0, 0, 0, 0, 40,148, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 1, 1,196, 3, 1, 4, 1, 0, 0, 0, 0, 0, 7, 0, 9, 0,136, 52,194, 1, 0, 0, 0, 0, +184,124, 49, 3, 0, 0, 0, 0,248,131, 49, 3, 0, 0, 0, 0, 40,118, 49, 3, 0, 0, 0, 0,152,119, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,239, 19, 3, 0, 0, 0, 0,232, 69, 8, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 40,118, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,152,119, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 79, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,112, 68, 0, 0,200, 65, + 0,192,112, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,196, 3, + 26, 0,196, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, 13, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 62,194, 1, 0, 0, 0, 0, + 8, 70, 20, 3, 0, 0, 0, 0, 8, 70, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,188, 24, 3, 0, 0, 0, 0,120,181, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,152,119, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40,118, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, + 26, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3,231, 3, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 53,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 96, 6,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 5,179, 3, - 0, 0,160,193, 0, 0, 8, 68, 0,160,134,196, 0, 0, 0, 0, 0, 0,160,193, 0, 0, 8, 68, 0,160,134,196, 0, 0, 0, 0, +200,132,252, 2, 0, 0, 0, 0, 40,200,251, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,121, 49, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 3, 0, 0, 8,121, 49, 3, 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 63, 21,145, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0,197, 56, 16, 63,181,165,214,190, +216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,179,248,135, 62,228,147,254,190, 0, 0, 0, 0,155,199,158, 60, 68, 64, 94, 63, +111,229,253, 62, 0, 0, 0, 0,239,219,254,191,166, 80,144,192,255, 66, 63,194, 0, 0,128, 63,215, 56, 16, 63,100,115, 83, 63, + 74,200,158, 60, 0, 0, 0, 0,200,165,214,190,182,248,135, 62, 79, 64, 94, 63, 0, 0, 0, 0,215, 65, 54, 63,242,147,254,190, +103,229,253, 62, 0, 0, 0, 0,102, 23, 5, 66, 7,118,167,193, 47, 82,221, 65, 0, 0,128, 63, 63,120, 35, 63, 62,197,234,190, +182, 67, 54,191,216, 65, 54,191,212,171,111, 63, 4,184,148, 62,128,150,254, 62,228,147,254, 62,120,248,179, 60, 74, 22,115, 63, + 9,232,253,190,111,229,253,190,185,111, 16,192, 54,216,157,192,122, 48, 63, 66,255, 66, 63, 66,209, 21,254, 62,120,173, 58, 63, + 87,211,134, 60, 96,147,194,183, 0, 34,196,190,184,124,120, 62,223, 63, 75, 63, 0, 0,229, 54,196,159,207,196,222,158,130, 68, +181,161,172,196,110,174, 71,194, 37,139,207, 68, 80,144,130,196,162,147,172, 68,129,176, 71, 66,197, 56, 16, 63,181,165,214,190, +216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,179,248,135, 62,228,147,254,190, 0, 0, 0, 0,155,199,158, 60, 68, 64, 94, 63, +111,229,253, 62, 0, 0, 0, 0, 62,101,214,192,127, 55, 88,192, 97, 89, 45,194, 0, 0,128, 63, 63,120, 35, 63, 62,197,234,190, +182, 67, 54,191,216, 65, 54,191,212,171,111, 63, 4,184,148, 62,128,150,254, 62,228,147,254, 62,120,248,179, 60, 74, 22,115, 63, + 9,232,253,190,111,229,253,190, 70, 2,243,192,180,124,108,192,174, 70, 45, 66, 97, 89, 45, 66, 20, 97,190, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 97,190, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 97,190, 64, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 0, 0,128, 63,153, 42, 67, 63,246, 62,229,190, +251,142,104,190,131, 17,209,190,141, 8, 56, 66,223,139, 15, 66, 0, 0, 0, 0, 0, 0, 0, 0, 31,234,239, 58, 80,127, 4,191, +250,204,248,191, 74, 51,155,192, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 46,219, 35, 66, 48,203,139, 66,250, 65, 96, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, +184,124, 49, 3, 0, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,248,131, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17,139, 48, 63,240,151, 31,191,155, 98,151,190, 77, 45, 97,190,141, 8, 56, 66, 0, 0, 0, 0, +255, 13, 0, 0, 1, 0, 0, 0,248,251, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 8, 24, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 80,127, 4,191, +250,204,248,191, 74, 51,155,192, 96,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0, 20, 0, 10, 0, 7, 1, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,126, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, +168,127, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 80, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 0, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0,231, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216,102,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,127, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 24,129, 49, 3, 0, 0, 0, 0, 56,126, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 67, 0,192,121,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 95, 67, 0,192,121,196, 0, 0, 0, 0,223, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,240, 0,231, 3,223, 0,231, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0,230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 0,231, 3, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184,104,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 34, 26, 3, 0, 0, 0, 0, +120,165, 56, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,129, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, +136,130, 49, 3, 0, 0, 0, 0,168,127, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,209, 68, 0, 0, 0, 0, 0, 0,112, 66, + 0, 0,128, 56, 0,224,209, 68, 0, 0, 0, 0, 0, 0,112, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 0,192,209, 68, 0, 0,108, 66, 0,192,209, 68, 0, 0,108, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 0, 4, 10, 0,143, 6, 60, 0,143, 6, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 0, 0, 0,126, 7, 0, 0,171, 3, 0, 0,230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +143, 6, 60, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,103,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,130, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,129, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 67, 0,128,105,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,209, 68, 0, 64,102,196, 0, 0, 0, 0,126, 6, 0, 0,143, 6, 0, 0, 18, 0, 0, 0,170, 3, 0, 0, + 0, 0, 0, 0,142, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 6, 0, 0, 18, 0, 0, 0,170, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, + 4, 0, 0, 4, 6, 0,143, 6,171, 3,143, 6,153, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,170, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +143, 6,171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,101,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,248,131, 49, 3, 0, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,124, 49, 3, 0, 0, 0, 0, 56,126, 49, 3, 0, 0, 0, 0,136,130, 49, 3, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0,168,132, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,170, 17, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,251, 6, 2, 0, 0, 0, 0, + 7, 0,255,255,255,255, 0, 0, 68, 65, 84, 65, 96, 2, 0, 0,168,132, 49, 3, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 79,112,101,110, 32, 66,108,101,110,100,101,114, 32, 70,105,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47,100,115,107, 47,100, 97,116, 97, 47,115,114, 99, 47, 98,108,101,110,100,101,114, 47, 98,108,101,110,100,101,114, 47,115,111, +117,114, 99,101, 47, 98,108,101,110,100,101,114, 47,101,100,105,116,111,114,115, 47,100, 97,116, 97,102,105,108,101,115, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,114,101,118,105,101,119, 49, 46, 98,108,101,110,100, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8, 1, 0, 0, 1, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 88,135, 49, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,117, 49, 3, 0, 0, 0, 0,248, 34, 4, 3, 0, 0, 0, 0,168,185, 3, 2, 0, 0, 0, 0,248,137, 17, 3, 0, 0, 0, 0, + 24,241, 48, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0, 15, 6, 0, 0,217, 2, 0, 0, 0, 4, 0, 0, + 3, 3, 75, 2, 40, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 46,194, 1, 0, 0, 0, 0, 40,139, 49, 3, 0, 0, 0, 0, + 40,139, 49, 3, 0, 0, 0, 0, 72,136, 49, 3, 0, 0, 0, 0,184,137, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 58, 7, 2, 0, 0, 0, 0,216,155, 24, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 72,136, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,137, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 18, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 18, 68, 0, 0,200, 65, 0,128, 18, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 75, 2, 26, 0, 75, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0, 15, 6, 0, 0,217, 2, 0, 0,242, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 26, 0, 21, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 48,194, 1, 0, 0, 0, 0, 72,150, 26, 3, 0, 0, 0, 0, + 72,150, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 83,251, 2, 0, 0, 0, 0, + 24, 42,251, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +184,137, 49, 3, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,136, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,241, 67, 0, 0, 94,195, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 14, 68, 0, 0,124,195, 0, 0, 0, 0, + 58, 2, 0, 0, 75, 2, 0, 0, 18, 0, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 57, 2, 0, 0, 18, 0, 0, 0, 13, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 75, 2, 14, 1, 58, 2,252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0, 15, 6, 0, 0,243, 2, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 14, 1, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 47,194, 1, 0, 0, 0, 0, 56,218, 24, 3, 0, 0, 0, 0, + 56,218, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 42,251, 2, 0, 0, 0, 0, + 40, 48,251, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, + 40,139, 49, 3, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, + 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 34,251, 2, 0, 0, 0, 0, +120, 34,251, 2, 0, 0, 0, 0, 88,171, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 12, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 88,171, 20, 3, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, +218, 0, 0, 0,101, 0, 0, 0,136,243, 55, 3, 0, 0, 0, 0, 68, 65, 84, 65, 80, 6, 0, 0,136,243, 55, 3, 0, 0, 0, 0, +219, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,147, 49, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, + 40,147, 49, 3, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 40,147, 49, 3, 0, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, + 56,248, 49, 3, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 40,147, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +216,239, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 72, 59, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 53, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +168, 47, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216, 41, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 8, 36, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 56, 30, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104, 24, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,152, 18, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248,251, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,206, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,184, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 40,208, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 40, 13, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216, 6, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +248, 43, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,146, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 56,108, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 72, 23, 52, 3, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 8,146, 50, 3, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, + 8,146, 50, 3, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 8,146, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 24, 98, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 40,236, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +168, 92, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,228, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 56, 87, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,224, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +248,139, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,227, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,128, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 72,212, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,133, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 72,218, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24, 16, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +120,189, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,202, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136, 7, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72, 23, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +104,122, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,135, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +168,238, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,103, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 88,192, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72, 23, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +232, 70, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,216, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 88,116, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +200, 81, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,232, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +152,109, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,200,104, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 72, 23, 52, 3, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0,152,109, 50, 3, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, +152,109, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88, 76, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +136,220, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104, 1, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 88,207, 49, 3, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 1, 0, +160,214,107, 1, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 1, 0, +160,214,107, 1, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 1, 0, +160,214,107, 1, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 1, 0, +160,214,107, 1, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 1, 0, +160,214,107, 1, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 1, 0,160,214,107, 1, 0, 0, 0, 0, 83, 67, 0, 0,184, 5, 0, 0, + 40,147, 49, 3, 0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67,112,114,101,118,105,101,119, 0, 0, 99,101,110,101, 46, + 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,251, 49, 3, 0, 0, 0, 0,216,239, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,153, 49, 3, 0, 0, 0, 0, +104,165, 49, 3, 0, 0, 0, 0,104,158, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 81,122, 61,230,224,239,192, +116, 34, 53,192,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,113, 36,122, 61, +157, 24,186,192, 28, 38, 71, 64, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,165, 49, 3, 0, 0, 0, 0, 56,199, 58, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 25, 0, +141, 0, 88, 2, 88, 2, 4, 0, 4, 0, 24, 0, 4, 0, 0, 0, 90, 0, 1, 0, 16, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 5, 0, 25, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,167, 49, 3, 0, 0, 0, 0,232,167, 49, 3, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, + 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63, +173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,110,224, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, + 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 88, 2, 88, 2,205,204,204, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,153, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +152,153, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,101, 1,187, 1, + 56, 30, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,153, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 8,154, 49, 3, 0, 0, 0, 0, 40,153, 49, 3, 0, 0, 0, 0, 14, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,113, 1,204, 1, +104, 24, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,154, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +120,154, 49, 3, 0, 0, 0, 0,152,153, 49, 3, 0, 0, 0, 0, 14, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,131, 1,183, 1, +152, 18, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,154, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +232,154, 49, 3, 0, 0, 0, 0, 8,154, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224, 46,162, 0, + 72, 59, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,154, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 88,155, 49, 3, 0, 0, 0, 0,120,154, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 25, 1, 84, 2, + 24, 65, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,155, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +200,155, 49, 3, 0, 0, 0, 0,232,154, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,105, 1, 77, 2, +120, 53, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,155, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 56,156, 49, 3, 0, 0, 0, 0, 88,155, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,142, 3,183, 0, +168, 47, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,156, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +168,156, 49, 3, 0, 0, 0, 0,200,155, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,135, 2,121, 1, +216, 41, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,156, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 24,157, 49, 3, 0, 0, 0, 0, 56,156, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,164, 1, 33, 2, + 8, 36, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,157, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +136,157, 49, 3, 0, 0, 0, 0,168,156, 49, 3, 0, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 42, 2, 90, 2, +248,251, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,157, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +248,157, 49, 3, 0, 0, 0, 0, 24,157, 49, 3, 0, 0, 0, 0, 0, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,152, 3, 67, 3, + 8,184, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,157, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +104,158, 49, 3, 0, 0, 0, 0,136,157, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,251, 1,225, 1, + 40, 13, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,158, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +216,158, 49, 3, 0, 0, 0, 0,248,157, 49, 3, 0, 0, 0, 0, 14, 4, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,141, 1,200, 1, +216, 6, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,158, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 72,159, 49, 3, 0, 0, 0, 0,104,158, 49, 3, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 6, 3,138, 2, + 8,146, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,159, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +184,159, 49, 3, 0, 0, 0, 0,216,158, 49, 3, 0, 0, 0, 0, 32, 0, 0, 0, 14, 0, 0, 0, 0, 16, 0, 0,224, 1, 10, 2, + 24, 98, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,159, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 40,160, 49, 3, 0, 0, 0, 0, 72,159, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 20, 0, 0, 70, 1,168, 1, +168, 92, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,160, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +152,160, 49, 3, 0, 0, 0, 0,184,159, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 20, 0, 0,115, 1,186, 1, + 56, 87, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,160, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 8,161, 49, 3, 0, 0, 0, 0, 40,160, 49, 3, 0, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 78, 1, +248,139, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,161, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +120,161, 49, 3, 0, 0, 0, 0,152,160, 49, 3, 0, 0, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 44, 3,140, 3, +120,128, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,161, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +232,161, 49, 3, 0, 0, 0, 0, 8,161, 49, 3, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,224, 46,119, 1, +232,133, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,161, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 88,162, 49, 3, 0, 0, 0, 0,120,161, 49, 3, 0, 0, 0, 0, 32, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 55, 2, 51, 2, +120,189, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,162, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +200,162, 49, 3, 0, 0, 0, 0,232,161, 49, 3, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 1,187, 1, +104,122, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,162, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 56,163, 49, 3, 0, 0, 0, 0, 88,162, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,194, 1,205, 1, +136,103, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,163, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +168,163, 49, 3, 0, 0, 0, 0,200,162, 49, 3, 0, 0, 0, 0, 30, 4, 0, 0, 5, 0, 0, 0, 0, 20, 0, 0, 96, 2, 23, 1, +232, 70, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,163, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 24,164, 49, 3, 0, 0, 0, 0, 56,163, 49, 3, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,209, 1,211, 1, + 88,116, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,164, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +136,164, 49, 3, 0, 0, 0, 0,168,163, 49, 3, 0, 0, 0, 0, 30, 4, 0, 0, 7, 0, 0, 0, 0, 20, 0, 0, 2, 1, 33, 2, +200, 81, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,164, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +248,164, 49, 3, 0, 0, 0, 0, 24,164, 49, 3, 0, 0, 0, 0, 8, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0,180, 1,213, 1, +152,109, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,164, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, +104,165, 49, 3, 0, 0, 0, 0,136,164, 49, 3, 0, 0, 0, 0, 30, 4, 0, 0, 8, 0, 0, 0, 0, 20, 0, 0, 22, 1,126, 1, + 88, 76, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,165, 49, 3, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,164, 49, 3, 0, 0, 0, 0,223, 13, 0, 0, 9, 0, 0, 0, 0, 4, 0, 0, 93, 1,170, 1, +104, 1, 50, 3, 0, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0,216,165, 49, 3, 0, 0, 0, 0,150, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0, +205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, + 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 23,183,209, 56, +205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, + 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, + 68, 65, 84, 65, 88, 0, 0, 0,232,167, 49, 3, 0, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,248, 49, 3, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, +255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0,240, 1, 0, 0,136,168, 49, 3, 0, 0, 0, 0, + 23, 0, 0, 0, 1, 0, 0, 0,136,187, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 73,109, 97,103,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,116,105,116,108,101,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, - 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128, 7,179, 3, 4, 1, 0, 0, 1, 0, 0, 0, 8, 13,179, 3, 48, 3,179, 3, - 32, 4,179, 3, 96, 6,179, 3, 12, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,191, 0, 0, 2, 66, 0, 0,122,196, 0, 0, 0, 0, 0, 0, 0,191, 0, 0, 2, 66, 0, 0,150,194, 0, 0,160, 64, -108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0,128, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, -128, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 70, 0, 0,122, 68, - 10,215, 35, 60, 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,136, 8,179, 3,185, 0, 0, 0, - 1, 0, 0, 0,168, 9,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168, 9,179, 3,185, 0, 0, 0, - 1, 0, 0, 0,200, 10,179, 3,136, 8,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,200, 10,179, 3,185, 0, 0, 0, - 1, 0, 0, 0,232, 11,179, 3,168, 9,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,232, 11,179, 3,185, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,200, 10,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, - 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 52, 0, 0, 0, 8, 13,179, 3,154, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,128, 7,179, 3,136, 8,179, 3,232, 11,179, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, -112, 13,179, 3,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,227,178, 3,144, 72,160, 3, 0,177,154, 3,136, 3,156, 3, -216, 12,156, 3, 0, 0, 0, 0,193, 3, 0, 0, 7, 6, 0, 0, 45, 3, 0, 0,119, 4, 0, 0, 3, 3, 71, 2, 75, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 65, 1, 80, 16,179, 3, -216, 62,179, 3, 16, 14,179, 3, 48, 15,179, 3, 0, 0, 0, 0, 0, 0, 0, 0,216, 16,158, 3,152, 17,158, 3, 68, 65, 84, 65, -236, 0, 0, 0, 16, 14,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 48, 15,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 17, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 3, 68, 0, 0,200, 65, 0,128, 3, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 71, 2, 26, 0, 71, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 3, 0, 0, 7, 6, 0, 0, 45, 3, 0, 0, 70, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 2, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,170, 65, 1,112,145,203, 3, -112,145,203, 3, 0, 0, 0, 0, 0, 0, 0, 0, 72, 19,158, 3,192, 19,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0, 48, 15,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16, 14,179, 3, 0, 0, 0, 0, 0,128,241, 67, - 0, 0,210,195, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 13, 68, 0,128,143,195, 0, 0, 0, 0, 54, 2, 0, 0, 71, 2, 0, 0, - 18, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0, - 18, 0, 0, 0, 48, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 71, 2, 49, 1, 54, 2, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 3, 0, 0, 7, 6, 0, 0, 71, 3, 0, 0,119, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 2, 49, 1, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,169, 65, 1,240,149,203, 3, -240,149,203, 3, 0, 0, 0, 0, 0, 0, 0, 0,136, 21,158, 3,120, 22,158, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0, 80, 16,179, 3,155, 0, 0, 0, 1, 0, 0, 0,184, 26,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, - 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, 67,199, 3,184, 67,199, 3,136,177,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 12, 0, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,136,177,163, 3,208, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, -164, 0, 0, 0,232, 21,199, 3, 68, 65, 84, 65,176, 7, 0, 0,232, 21,199, 3,207, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 63,179, 3, 19, 0, 0, 0, 1, 0, 0, 0,160, 63,179, 3, 20, 0, 0, 0, 1, 0, 0, 0,160, 63,179, 3, - 23, 0, 0, 0, 1, 0, 0, 0,168,141,156, 3, 21, 0, 1, 0, 1, 0, 0, 0,160, 63,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 24,112,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,203,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,112,104,184, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,199,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 64, 91,184, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 80,195,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 16, 78,184, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 80,191,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,224, 64,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,187,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0,176, 51,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, -104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,183,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,128, 38,184, 3, 0, 0, 0, 0, - 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,179,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80, 25,184, 3, - 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,175,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 32, 12,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,171,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,240,254,183, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80,167,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0,192,241,183, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 80,163,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,144,228,183, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 80,159,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 96,215,183, 3, 0, 0, 0, 0, 1, 0, 0, 0,136,155,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 80,173,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, -104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,248,151,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 40,130,183, 3, 0, 0, 0, 0, - 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,104,148,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 87,183, 3, - 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,216,144,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, -240, 44,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 72,141,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,224, 2,183, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,184,137,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0,184,215,182, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, -232,119,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 85,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 8, 57,181, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 8, 87,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 40,134,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,168,181,182, 3, - 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,152,130,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, -112, 96,182, 3, 0, 0, 0, 0, 1, 0, 0, 0,184, 4,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, 8,208,182, 3, 0, 0, 0, 0, - 1, 0, 0, 0,232, 71,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,208, 91,181, 3, 9, 0, 0, 0, 1, 0, 0, 0,184, 4,180, 3, - 10, 0, 0, 0, 1, 0, 0, 0,184, 4,180, 3, 29, 0, 0, 0, 1, 0, 0, 0,184, 4,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 32,225,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 40,109,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,176,228,179, 3, 0, 0, 0, 0, - 1, 0, 0, 0,216,194,182, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, - 0, 0, 0, 0, 1, 0, 0, 0,144,221,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,248,102,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0,218,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 8,100,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,184, 0,180, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 64,193,186, 3, 0, 0, 0, 0, 1, 0, 0, 0, 8,127,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152,139,182, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, 40,249,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 72, 90,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,184,252,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,144,185,186, 3, 0, 0, 0, 0, - 1, 0, 0, 0,168, 85,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 60,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,160,170,186, 3, - 0, 0, 0, 0, 1, 0, 0, 0,200, 78,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,208, 91,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 40,245,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,160,117,184, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 0, 0, 0, 0, - 1, 0, 0, 0,176,232,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,216,162,186, 3, 0, 0, 0, 0, 1, 0, 0, 0,208, 91,181, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 80,207,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,136, 93,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 40,241,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,112,214,179, 3, 0, 0, 0, 0, - 1, 0, 0, 0,232,105,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,176,236,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,176, 94,181, 3, - 0, 0, 0, 0, 1, 0, 0, 0,208, 91,181, 3, 9, 0, 0, 0, 1, 0, 0, 0,176,236,179, 3, 10, 0, 0, 0, 1, 0, 0, 0, -176,236,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,224,210,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,200, 96,179, 3, 0, 0, 0, 0, - 1, 0, 0, 0,120,123,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 80, 86,179, 3, 30, 0,255,255, 0, 0, 1, 0,112,152,230, 0, - 31, 0, 0, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 1, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 2, 0, 1, 0, 1, 0, -112,152,230, 0, 31, 0, 3, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 4, 0, 0, 0, 1, 0,112,152,230, 0, 31, 0, 5, 0, - 1, 0, 1, 0,112,152,230, 0, 31, 0, 6, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 7, 0, 1, 0, 1, 0,112,152,230, 0, - 31, 0, 8, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 9, 0, 1, 0, 1, 0,112,152,230, 0, 30, 0,255,255, 0, 0, 1, 0, -112,152,230, 0, 31, 0, 0, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 1, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 2, 0, - 1, 0, 1, 0,112,152,230, 0, 31, 0, 3, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 10, 0, 1, 0, 1, 0,112,152,230, 0, - 31, 0, 11, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 12, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 13, 0, 1, 0, 0, 0, -112,152,230, 0, 31, 0, 14, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 15, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 16, 0, - 1, 0, 0, 0,112,152,230, 0, 31, 0, 17, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 18, 0, 1, 0, 0, 0,112,152,230, 0, - 31, 0, 19, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 20, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 21, 0, 1, 0, 0, 0, -112,152,230, 0, 31, 0, 22, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 23, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 24, 0, - 1, 0, 0, 0,112,152,230, 0, 31, 0, 25, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 26, 0, 1, 0, 0, 0,112,152,230, 0, - 31, 0, 27, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 28, 0, 1, 0, 0, 0,112,152,230, 0, 31, 0, 29, 0, 1, 0, 0, 0, -112,152,230, 0, 31, 0, 4, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 5, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 6, 0, - 1, 0, 1, 0,112,152,230, 0, 31, 0, 7, 0, 1, 0, 1, 0,112,152,230, 0, 31, 0, 8, 0, 1, 0, 1, 0,112,152,230, 0, - 31, 0, 9, 0, 1, 0, 1, 0,112,152,230, 0, 68, 65, 84, 65,236, 0, 0, 0,120, 24,179, 3,185, 0, 0, 0, 1, 0, 0, 0, -152, 25,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,217, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 3, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 3, 68, 0, 0,200, 65, - 0,128, 3, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 15, 2, - 26, 0, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 3, 0, 0, 99, 5, 0, 0, 17, 3, 0, 0, 42, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,152, 25,179, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,120, 24,179, 3, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,254,127, 7,191,255,191,195, 63, -247,255,163,189,255, 63,138, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 3, 0, 0, 99, 5, 0, 0, 43, 3, 0, 0, 83, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 0, 0, 0,184, 26,179, 3,156, 0, 0, 0, 1, 0, 0, 0, -184, 32,179, 3, 80, 16,179, 3,120, 24,179, 3,152, 25,179, 3, 6, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,112, 27,179, 3,185, 0, 0, 0, 1, 0, 0, 0,144, 28,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,170, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0,184,117, 30, 78, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, +200,170, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 56,171, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, + 56,171, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,144, 28,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -112, 27,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176, 29,179, 3, 68, 65, 84, 65,216, 2, 0, 0,176, 29,179, 3,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1515,97 +1387,34 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,252, 83, 63, -104, 25,223,190,115, 52, 40, 62,119,211,159, 62, 96,183,198, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163,146, 22,189,174, 51,122,190, 29,244, 58,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,184, 32,179, 3, -146, 0, 0, 0, 1, 0, 0, 0, 24, 36,179, 3,184, 26,179, 3,112, 27,179, 3,144, 28,179, 3, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,252, 83, 63,104, 25,223,190,115, 52, 40, 62,119,211,159, 62, - 96,183,198, 65, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,119,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67,163,146, 22,189,174, 51,122,190, 29,244, 58,192, 0, 0,224, 54, - 56,146, 88, 63,198, 37, 71, 64, 20, 0, 0, 0, 7, 0, 10, 0,115, 0, 0, 0, 1, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -216, 33,179, 3,185, 0, 0, 0, 1, 0, 0, 0,248, 34,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -248, 34,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 33,179, 3, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, - 0, 0,100, 67,197,197,136, 55,118,209, 78, 68, 40,222,231,195,172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0, -111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, - 24, 36,179, 3,151, 0, 0, 0, 1, 0, 0, 0,144, 40,179, 3,184, 32,179, 3,216, 33,179, 3,248, 34,179, 3, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 46,196, 0, 0,100, 67,197,197,136, 55,118,209, 78, 68, 40,222,231,195,172,158, 25, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, - 0, 0, 0, 63, 72,225,154, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 3,235, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,150, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 48, 37,179, 3, -185, 0, 0, 0, 1, 0, 0, 0, 80, 38,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 80, 38,179, 3, -185, 0, 0, 0, 1, 0, 0, 0,112, 39,179, 3, 48, 37,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,112, 39,179, 3, -185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 38,179, 3, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, - 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, - 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, - 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,196, 0, 0, 0,144, 40,179, 3, -150, 0, 0, 0, 1, 0, 0, 0,200, 43,179, 3, 24, 36,179, 3, 48, 37,179, 3,112, 39,179, 3, 2, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67,205,204,204,189,205,204,140, 63, - 0, 0,128, 63, 0, 0,122, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, - 16, 0, 0, 0,168, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0,168, 3, 0, 0, 16, 0, 0, 0,235, 2, 0, 0, - 10,215, 35, 60, 10,215, 35, 60, 0, 96,106, 70, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,136, 41,179, 3,185, 0, 0, 0, 1, 0, 0, 0, -168, 42,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,168, 42,179, 3,185, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,136, 41,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,124, 2, 0, 0,200, 43,179, 3,158, 0, 0, 0, 1, 0, 0, 0, -184, 48,179, 3,144, 40,179, 3,136, 41,179, 3,168, 42,179, 3, 9, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 45, 96, 1, 0, 0, 0, 0, 62, 0, 0, 0, 32, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 5, 0, 0, 0, 17, 0, 0, 0,225, 2, 0, 0, -227, 2, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0,207, 2, 0, 0,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1621,240 +1430,54 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,120, 46,179, 3,185, 0, 0, 0, 1, 0, 0, 0,152, 47,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -236, 0, 0, 0,152, 47,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120, 46,179, 3, 0, 0,128,192, 0, 0,122, 67, - 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, 0, 0, 72, 66, 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, - 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, 0,128,129, 67, 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, - 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -184, 0, 0, 0,184, 48,179, 3,250, 0, 0, 0, 1, 0, 0, 0, 0, 53,179, 3,200, 43,179, 3,120, 46,179, 3,152, 47,179, 3, - 11, 0, 0, 0, 51, 51, 51, 63, 0,226,127, 3, 0, 0,128,192, 0, 0,122, 67, 0, 0,128,192, 0, 0,127, 67, 0, 0,128,192, - 0, 0, 72, 66, 0, 0,128,192, 0, 0,127, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0,128, 63, - 0,128,129, 67, 0, 0,250, 70, 0,128,129, 67,205,204,204, 61, 0, 0, 32, 65, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,160, 49,179, 3,185, 0, 0, 0, 1, 0, 0, 0,192, 50,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,192, 50,179, 3,185, 0, 0, 0, 1, 0, 0, 0,224, 51,179, 3, -160, 49,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,224, 51,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -192, 50,179, 3, 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, - 0, 0,182, 67,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, - 0, 0,122, 68,205,204,204, 61, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0, 0, 53,179, 3,157, 0, 0, 0, 1, 0, 0, 0, 80, 57,179, 3, -184, 48,179, 3,160, 49,179, 3,224, 51,179, 3, 13, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,122, 68, 0, 0, 0, 0, 0, 0,122, 68, - 0, 0,160,192, 0, 0,130, 66, 0, 0, 0, 0, 0, 0,182, 67,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, -196, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,196, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0,124, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0, 0,122, 68,205,204,204, 61, 0, 0, 72, 66, 10, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, -240, 53,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 16, 55,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, - 16, 55,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 48, 56,179, 3,240, 53,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, - 48, 56,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16, 55,179, 3, 0, 0,160,193, 0,128,167, 67, 0,160,134,196, - 0, 0, 0, 0, 0, 0,160,193, 0,128,167, 67, 0,160,134,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0, -111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 80, 57,179, 3, 4, 1, 0, 0, 1, 0, 0, 0,216, 62,179, 3, 0, 53,179, 3,240, 53,179, 3, 48, 56,179, 3, 12, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 0, 0, 2, 66, 0, 0,122,196, - 0, 0, 0, 0, 0, 0, 0,191, 0, 0, 2, 66, 0, 0,150,194, 0, 0,160, 64,108, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, - 14, 2, 0, 0,128, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,128, 0, 0, 0,108, 1, 0, 0, 16, 0, 0, 0, - 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 70, 0, 0,122, 68, 10,215, 35, 60, 0, 0, 72, 66, 10, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0, 88, 58,179, 3,185, 0, 0, 0, 1, 0, 0, 0,120, 59,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,120, 59,179, 3,185, 0, 0, 0, 1, 0, 0, 0,152, 60,179, 3, 88, 58,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,152, 60,179, 3,185, 0, 0, 0, 1, 0, 0, 0,184, 61,179, 3,120, 59,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,236, 0, 0, 0,184, 61,179, 3,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152, 60,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 2, 0, 0,111, 3, 0, 0, 0, 0, 0, 0, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 52, 0, 0, 0,216, 62,179, 3,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 57,179, 3, - 88, 58,179, 3,184, 61,179, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,220, 4, 0, 0,160, 63,179, 3,143, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67,112,114,101,118,105,101,119, 0, 0, 99,101,110,101, 46, - 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,119,179, 3, 24,112,179, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 93,178, 3,144, 80,179, 3,240, 74,179, 3, 0, 0, 0, 0,167,253,243, 64,112,165, 81, 63, -136, 56, 93, 65,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,113, 36,122, 61, -157, 24,186,192, 28, 38, 71, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 80,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 25, 0,141, 0, 88, 2, 88, 2, 4, 0, 4, 0, 0, 0, 24, 0, 4, 0, 0, 0, 0, 0, - 90, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 5, 0, 25, 0, 10, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,203,159, 3,120,203,159, 3, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, -205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 6, 0, 0, 0, - 16, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, -180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,103, 75, 1, 1, 0, 0, 0, 1, 0, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 28, 0, 0, 0, 72, 93,178, 3,125, 0, 0, 0, 1, 0, 0, 0,176, 68,179, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,183, 1,208, 0, 80,203,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,176, 68,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 0, 69,179, 3, 72, 93,178, 3, 33, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,183, 1,208, 0, 80,199,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 0, 69,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 80, 69,179, 3,176, 68,179, 3, 33, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0,224, 46, 43, 1, 80,195,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 80, 69,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -160, 69,179, 3, 0, 69,179, 3, 33, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,224, 46, 43, 1, 80,191,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,160, 69,179, 3,125, 0, 0, 0, 1, 0, 0, 0,240, 69,179, 3, 80, 69,179, 3, 33, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0,224, 46, 66, 2, 80,187,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,240, 69,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 64, 70,179, 3,160, 69,179, 3, 33, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,224, 46, 66, 2, 80,183,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 64, 70,179, 3,125, 0, 0, 0, 1, 0, 0, 0,144, 70,179, 3,240, 69,179, 3, 33, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0,153, 1, 33, 1, 80,179,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,144, 70,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -224, 70,179, 3, 64, 70,179, 3, 33, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,153, 1, 33, 1, 80,175,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,224, 70,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 48, 71,179, 3,144, 70,179, 3, 33, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 36, 1, 92, 1, 80,171,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 48, 71,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -128, 71,179, 3,224, 70,179, 3, 33, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 36, 1, 92, 1, 80,167,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,128, 71,179, 3,125, 0, 0, 0, 1, 0, 0, 0,208, 71,179, 3, 48, 71,179, 3, 33, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 57, 0,210, 1, 80,163,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,208, 71,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 32, 72,179, 3,128, 71,179, 3, 33, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 57, 0,210, 1, 80,159,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 32, 72,179, 3,125, 0, 0, 0, 1, 0, 0, 0,112, 72,179, 3,208, 71,179, 3, 14, 4, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 84, 1,240, 1,136,155,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,112, 72,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -192, 72,179, 3, 32, 72,179, 3, 14, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 84, 1,240, 1,248,151,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,192, 72,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 16, 73,179, 3,112, 72,179, 3, 14, 4, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0,118, 1,235, 1,104,148,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 16, 73,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 96, 73,179, 3,192, 72,179, 3, 14, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,118, 1,235, 1,216,144,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 96, 73,179, 3,125, 0, 0, 0, 1, 0, 0, 0,176, 73,179, 3, 16, 73,179, 3, 14, 4, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 97, 1, 3, 2, 72,141,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,176, 73,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 0, 74,179, 3, 96, 73,179, 3, 14, 4, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 97, 1, 3, 2,184,137,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 0, 74,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 80, 74,179, 3,176, 73,179, 3, 0, 8, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 15, 1, 76, 1,232,119,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 80, 74,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -160, 74,179, 3, 0, 74,179, 3, 0, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,188, 0, 90, 1, 8, 57,181, 3, 68, 65, 84, 65, - 28, 0, 0, 0,160, 74,179, 3,125, 0, 0, 0, 1, 0, 0, 0,240, 74,179, 3, 80, 74,179, 3, 33, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0,174, 0,151, 1, 40,134,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,240, 74,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 64, 75,179, 3,160, 74,179, 3, 14, 4, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,129, 1,255, 1,152,130,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 64, 75,179, 3,125, 0, 0, 0, 1, 0, 0, 0,144, 75,179, 3,240, 74,179, 3, 0, 4, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0,217, 0,233, 0,184, 4,180, 3, 68, 65, 84, 65, 28, 0, 0, 0,144, 75,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -224, 75,179, 3, 64, 75,179, 3, 32, 0, 0, 0, 14, 0, 0, 0, 0, 16, 0, 0,116, 0, 27, 1, 32,225,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,224, 75,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 48, 76,179, 3,144, 75,179, 3, 33, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0,174, 0,151, 1,176,228,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 48, 76,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -128, 76,179, 3,224, 75,179, 3, 1, 0, 0, 0, 15, 0, 0, 0, 0, 20, 0, 0, 12, 0,160, 0,144,221,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,128, 76,179, 3,125, 0, 0, 0, 1, 0, 0, 0,208, 76,179, 3, 48, 76,179, 3, 1, 0, 0, 0, 16, 0, 0, 0, - 0, 20, 0, 0,175, 0,161, 0, 0,218,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,208, 76,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 32, 77,179, 3,128, 76,179, 3, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,163, 1,254, 1,184, 0,180, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 32, 77,179, 3,125, 0, 0, 0, 1, 0, 0, 0,112, 77,179, 3,208, 76,179, 3, 14, 4, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0,129, 1,255, 1, 8,127,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,112, 77,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -192, 77,179, 3, 32, 77,179, 3, 64, 0, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0,238, 0,122, 1, 40,249,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,192, 77,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 16, 78,179, 3,112, 77,179, 3, 64, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0,237, 0,119, 1,184,252,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 16, 78,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 96, 78,179, 3,192, 77,179, 3, 32, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,152, 0,114, 1,152, 60,181, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 96, 78,179, 3,125, 0, 0, 0, 1, 0, 0, 0,176, 78,179, 3, 16, 78,179, 3, 16, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 22, 1,185, 1, 40,245,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,176, 78,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 0, 79,179, 3, 96, 78,179, 3, 1, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,123, 0, 26, 1,176,232,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 0, 79,179, 3,125, 0, 0, 0, 1, 0, 0, 0, 80, 79,179, 3,176, 78,179, 3, 30, 4, 0, 0, 9, 0, 0, 0, - 0, 20, 0, 0,109, 2, 57, 1, 80,207,179, 3, 68, 65, 84, 65, 28, 0, 0, 0, 80, 79,179, 3,125, 0, 0, 0, 1, 0, 0, 0, -160, 79,179, 3, 0, 79,179, 3, 2, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,205, 1, 11, 2, 40,241,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0,160, 79,179, 3,125, 0, 0, 0, 1, 0, 0, 0,240, 79,179, 3, 80, 79,179, 3, 30, 4, 0, 0, 11, 0, 0, 0, - 0, 20, 0, 0,230, 0, 99, 2,112,214,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,240, 79,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 64, 80,179, 3,160, 79,179, 3, 8, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 4, 1,185, 1,176,236,179, 3, 68, 65, 84, 65, - 28, 0, 0, 0, 64, 80,179, 3,125, 0, 0, 0, 1, 0, 0, 0,144, 80,179, 3,240, 79,179, 3, 30, 4, 0, 0, 12, 0, 0, 0, - 0, 20, 0, 0,252, 0,171, 1,224,210,179, 3, 68, 65, 84, 65, 28, 0, 0, 0,144, 80,179, 3,125, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 64, 80,179, 3,223, 13, 0, 0, 13, 0, 0, 0, 0, 4, 0, 0, 75, 1,221, 1,120,123,179, 3, 68, 65, 84, 65, - 36, 1, 0, 0,224, 80,179, 3,141, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, - 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 50, 0, - 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, - 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,183,209, 56,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0, -205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,120,203,159, 3, -130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,141,156, 3,255,255, 15, 0, 0, 0, 0, 0, -255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0,128, 1, 0, 0, 56, 82,179, 3, 32, 0, 0, 0, - 1, 0, 0, 0,232, 83,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 73,109, 97,103,101, 46, 48, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,116,105,116,108,101,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1862,3800 +1485,4144 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,110,134, 68, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, - 0, 0,128, 63, 73, 77, 0, 0,128, 1, 0, 0,232, 83,179, 3, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56, 82,179, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 82,101,110,100,101,114, 32, 82,101,115,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0,240, 1, 0, 0,136,187, 49, 3, 0, 0, 0, 0, + 23, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,168, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 82,101,110,100,101,114, 32, 82,101,115,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,116, 41, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 67, 65, 0, 0,136, 0, 0, 0, -152, 85,179, 3, 30, 0, 0, 0, 1, 0, 0, 0, 80, 86,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97, -109,101,114, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 0,205,204, 76, 62,117,148, 96, 66, 0, 0,128, 63, 0, 0,112, 66, 0, 0,240, 65, 0, 0,192, 64, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0, 80, 86,179, 3, - 30, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152, 85,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, - 65,116,109,111, 0, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 0,205,204, 76, 62,145,137, 68, 66, 0, 0,128, 63,210, 69,112, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,132, 1, 0, 0, 8, 87,179, 3, 40, 0, 0, 0, - 1, 0, 0, 0, 72, 90,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 46, 48, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63,192, 88,179, 3, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, - 0, 2, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, -111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 32, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 89,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,192, 88,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191, -243, 4, 53, 63, 80,160,153, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,160,153, 3, 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 89,179, 3, 19, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 0, 0,132, 1, 0, 0, 72, 90,179, 3, 40, 0, 0, 0, 1, 0, 0, 0,136, 93,179, 3, 8, 87,179, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,160, 65,182,152,143, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 92,179, 3, 1, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,189, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 94,122, 30, 78, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, +200,189, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 56,190, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, + 56,190, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 93,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 8, 1, 0, 0, 0, 92,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, - 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,152, 93,155, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, -152, 93,155, 3, 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 93,179, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,132, 1, 0, 0, -136, 93,179, 3, 40, 0, 0, 0, 1, 0, 0, 0,200, 96,179, 3, 72, 90,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112, -111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 64, 95,179, 3, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, - 0, 0,128, 63, 0, 0, 64, 64, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 96,179, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 64, 95,179, 3, 55, 1, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191, -242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,136,164,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,164,154, 3, 53, 1, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -120, 96,179, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,132, 1, 0, 0,200, 96,179, 3, 40, 0, 0, 0, 1, 0, 0, 0, - 8,100,179, 3,136, 93,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, -128, 98,179, 3, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 64, 11, 3, 0, - 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 99,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,128, 98,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, - 32,253,157, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 24, 0, 0, 0, 32,253,157, 3, 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 99,179, 3, 19, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 65, 0, 0,132, 1, 0, 0, 8,100,179, 3, 40, 0, 0, 0, 1, 0, 0, 0,248,102,179, 3,200, 96,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, - 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63,192,101,179, 3, 1, 0, 0, 0, 46, 26,128, 63, - 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, -192,101,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 56,121,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,121,154, 3, - 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 65, 0, 0,132, 1, 0, 0,248,102,179, 3, 40, 0, 0, 0, 1, 0, 0, 0,232,105,179, 3, 8,100,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 62,247,255,239, 65, - 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63,176,104,179, 3, 1, 0, 0, 0, 46, 26,128, 63, - 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, -176,104,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 24,171,153, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24,171,153, 3, - 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 65, 0, 0,132, 1, 0, 0,232,105,179, 3, 40, 0, 0, 0, 1, 0, 0, 0, 40,109,179, 3,248,102,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0, 52, 66, - 0, 0, 72, 66,171,156, 8, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,160,107,179, 3, 2, 0, 0, 0, 78,207, 68, 65, - 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,108,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, -160,107,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 64,198,153, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,198,153, 3, - 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,216,108,179, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,132, 1, 0, 0, 40,109,179, 3, - 40, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,105,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63,224,110,179, 3, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, - 0, 0, 64, 64, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,224,110,179, 3, 55, 1, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63, -242, 4, 53,191,243, 4, 53, 63, 96,241,157, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,241,157, 3, 53, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,112, 1, 0, 0, 24,112,179, 3, -124, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,141, 47, 79, 62, 64, 19,209, 62, 73, 23, 14, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 1, 0, 32, 0,128, 0, 5, 0, - 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, - 0, 0,128, 62, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,113,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -184,113,179, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,120, 0, 0, 0,224, 45, 96, 1, 28, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, - 0, 89,155, 3, 0, 89,155, 3, 0, 89,155, 3, 0, 89,155, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,114,179, 3,255,255,255,255, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, - 0, 89,155, 3, 26, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,127,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0,240,127,159, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 71, 82, 0, 0, - 76, 0, 0, 0,168,141,156, 3,252, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 82, 79,118,101,114,114,105,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,122, 74, 1,160,119,179, 3,255,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 24, 0, 0, 0,104,122, 74, 1,251, 0, 0, 0, 1, 0, 0, 0, 56,118,179, 3, 0, 0, 0, 0, 32,225,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,118,179, 3,251, 0, 0, 0, 1, 0, 0, 0,128,118,179, 3, -104,122, 74, 1,144,221,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128,118,179, 3, -251, 0, 0, 0, 1, 0, 0, 0,200,118,179, 3, 56,118,179, 3, 0,218,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 24, 0, 0, 0,200,118,179, 3,251, 0, 0, 0, 1, 0, 0, 0, 16,119,179, 3,128,118,179, 3, 40,249,179, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16,119,179, 3,251, 0, 0, 0, 1, 0, 0, 0, - 88,119,179, 3,200,118,179, 3, 80,207,179, 3,192, 36,203, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, - 88,119,179, 3,251, 0, 0, 0, 1, 0, 0, 0,160,119,179, 3, 16,119,179, 3,112,214,179, 3,200,104,155, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,119,179, 3,251, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,119,179, 3, -224,210,179, 3,136, 77,156, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,232,119,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,120,123,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 85,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33,162, 51, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193, -216,129,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 64, 90,136, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 40, 19,212, 50, - 63,252, 17,180, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 92, 3, 0, 0,120,123,179, 3,115, 0, 0, 0, 1, 0, 0, 0, 8,127,179, 3,232,119,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 65,116,109,111, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 86,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -173, 47,244, 63,162,155,113, 37, 40, 80,170, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 40, 80,170, 37, -162,155,113,165, 0, 0, 0, 0, 39, 80,170, 37,157, 64,169,190,163,155,113, 63, 0, 0, 0, 0,165,155,113, 37,163,155,113,191, -157, 64,169,190, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,187, 35, 58,154, -139, 2,174, 25, 0, 0, 0, 0,151, 29,171, 37, 1, 0,128, 63, 33,110, 77, 51, 0, 0, 0, 0,135,255,255, 45,158, 64,169, 50, - 0, 0,128, 63, 0, 0, 0, 0, 30, 0,128, 48, 5, 80, 56, 53,157,216,128, 52, 0, 0,128, 63, 0, 0,128, 63, 39, 80,170, 37, -166,155,113, 37, 0, 0, 0, 0,162,155,113,165,164,155,113, 63,158, 64,169,190, 0, 0, 0, 0, 40, 80,170,165,159, 64,169, 62, -162,155,113, 63, 0, 0, 0, 0,144, 57, 41, 26,134,234,185,178,154,138, 18,180, 0, 0,128, 63,223, 13, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,210, 32, 80, 63, - 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 8,127,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,152,130,179, 3,120,123,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 49, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248,188,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,139,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 71,158, 3,240, 71,158, 3, 1, 0, 0, 0, 1, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192, - 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 38, 13, 49,213,214,162, 50, - 0, 0,128, 63, 0, 0, 0, 0, 72, 95,202, 47,255,255,127,191,162,181,187, 51, 0, 0, 0, 0, 34, 75,146,189, 36,181,131,192, - 95,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248,164,206, 3,248,176,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,184, 71,158, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -240, 71,158, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,152,130,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 40,134,179, 3, 8,127,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,254,198, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 96,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40,163,160, 3,240,159,160, 3, 1, 0, 0, 0, 1, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192, - 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 38, 13, 49,213,214,162, 50, - 0, 0,128, 63, 0, 0, 0, 0, 72, 95,202, 47,255,255,127,191,162,181,187, 51, 0, 0, 0, 0, 34, 75,146,189, 36,181,131,192, - 95,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,244,206, 3,120,243,198, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 40,163,160, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -240,159,160, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 40,134,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,184,137,179, 3,152,130,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,181,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,159,163, 3, 8,207,156, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, 24,211,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, - 24,211,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,252,118,143,165, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40,155, 0, 0, 0, 53, - 0, 0, 0, 0, 0, 0,128, 63,231,126,201, 61,219,145,171, 48, 32, 19, 70, 29, 0, 0, 0, 0, 65,209,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,235, 66,172, 48,231,126,201,189, 79,216,251, 49, 0, 0, 0, 0, 18,136, 29,187,203,200,189,191, -139,139, 9, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,240,159,163, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 8,207,156, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,184,137,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 72,141,179, 3, 40,134,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,164,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,215,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,144, 74, 1,104,206,160, 3, 1, 0, 0, 0, 1, 0, 0, 0, 38, 84,207,191, 0,225,239,192, 15,169, 70, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33,162, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 38, 84,207,191, 0,225,239,192, - 15,169, 70, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,105, 33,162, 51, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,136, 93,191,179,218, 88,190,180, - 0, 0,128, 52, 0, 0,128, 63, 91,184, 22, 52, 0, 0,128,191, 28,112, 97, 51, 0, 0, 0, 0,104, 33,162, 51,176, 22,140, 39, - 0, 0,128, 63, 0, 0, 0, 0,255,255,127,191, 0,152, 86,179, 0, 58, 50, 51, 0, 0, 0, 0,131,217, 27,192,152, 0,206,191, - 70,208,166,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,140,206, 3, 56,152,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,144, 74, 1, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -104,206,160, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 72,141,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,216,144,179, 3,184,137,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120,139,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 2,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,114,155, 3,152,178,155, 3, 1, 0, 0, 0, 1, 0, 0, 0, 38, 84,207,191, 0,225,239,192, 15,169, 70, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33,162, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 38, 84,207,191, 0,225,239,192, - 15,169, 70, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,105, 33,162, 51, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,136, 93,191,179,218, 88,190,180, - 0, 0,128, 52, 0, 0,128, 63, 91,184, 22, 52, 0, 0,128,191, 28,112, 97, 51, 0, 0, 0, 0,104, 33,162, 51,176, 22,140, 39, - 0, 0,128, 63, 0, 0, 0, 0,255,255,127,191, 0,152, 86,179, 0, 58, 50, 51, 0, 0, 0, 0,131,217, 27,192,152, 0,206,191, - 70,208,166,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120,115,206, 3,120,127,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,136,114,155, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -152,178,155, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,216,144,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,104,148,179, 3, 72,141,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,114,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 44,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 60,158, 3,144, 64,158, 3, 1, 0, 0, 0, 1, 0, 0, 0, 93, 0,223, 63,205,220,239,192,222,170, 70, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,105, 33,162, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 93, 0,223, 63,205,220,239,192, -222,170, 70, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,105, 33,162,179,105, 33, 34,167, 0, 0, 0, 0, 64, 90,136, 48, 0, 0,128, 63, - 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 66, 72,191, 51, 87, 98,185,180, - 0, 0, 0, 53, 0, 0,128, 63,223,139, 24, 52, 0, 0,128, 63,138, 8, 26,179, 0, 0, 0, 0,104, 33,162,179, 91, 81,180, 39, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2,184,145,179,211, 40, 97, 51, 0, 0, 0, 0,231,225, 27, 64,237, 83,224,191, -227,211,166,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 90,206, 3,224,102,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,136, 60,158, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -144, 64,158, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,104,148,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,248,151,179, 3,216,144,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 59,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176,127,153, 3,232, 15,160, 3, 1, 0, 0, 0, 1, 0, 0, 0, 93, 0,223, 63,205,220,239,192,222,170, 70, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,105, 33,162, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 93, 0,223, 63,205,220,239,192, -222,170, 70, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,105, 33,162,179,105, 33, 34,167, 0, 0, 0, 0, 64, 90,136, 48, 0, 0,128, 63, - 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 66, 72,191, 51, 87, 98,185,180, - 0, 0, 0, 53, 0, 0,128, 63,223,139, 24, 52, 0, 0,128, 63,138, 8, 26,179, 0, 0, 0, 0,104, 33,162,179, 91, 81,180, 39, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2,184,145,179,211, 40, 97, 51, 0, 0, 0, 0,231,225, 27, 64,237, 83,224,191, -227,211,166,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 73,206, 3, 0, 82,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,176,127,153, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -232, 15,160, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,248,151,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,136,155,179, 3,104,148,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 61,195, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,130,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,232,160, 3, 96, 76,154, 3, 1, 0, 0, 0, 1, 0, 0, 0,185,115,122, 61, 28,209, 18,193, 27, 38, 71, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15, 73,192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33, 34,180, 0, 0, 0, 0, 0, 0, 0, 0,105, 33, 34, 52, 0, 0,128,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,185,115,122, 61, 28,209, 18,193, - 27, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128,167, 0, 0, 0, 0, 0,164, 5, 47, 0, 0,128, 63, - 0,164, 5,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,146,243,109, 49, 0,157, 30, 50, -146,243,109,153, 0, 0,128, 63, 0, 0,128,191,106, 33, 34, 52,203,167,116, 28, 0, 0, 0, 0,112, 57,108, 48, 6, 39,170,179, - 0, 0,128, 63, 0, 0, 0, 0,106, 33, 34, 52, 1, 0,128, 63,255,255,159, 51, 0, 0, 0, 0,213,114,146, 61, 78, 92, 65, 63, - 93,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,114,155, 3, 16,158,155, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,168,232,160, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 96, 76,154, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,136,155,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,159,179, 3,248,151,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,137,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,173,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,223,154, 3, 24,159,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,185,115,122, 61, 28,209, 18,193, 27, 38, 71, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15, 73,192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33, 34,180, 0, 0, 0, 0, 0, 0, 0, 0,105, 33, 34, 52, 0, 0,128,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,185,115,122, 61, 28,209, 18,193, - 27, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128,167, 0, 0, 0, 0, 0,164, 5, 47, 0, 0,128, 63, - 0,164, 5,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,146,243,109, 49, 0,157, 30, 50, -146,243,109,153, 0, 0,128, 63, 0, 0,128,191,106, 33, 34, 52,203,167,116, 28, 0, 0, 0, 0,112, 57,108, 48, 6, 39,170,179, - 0, 0,128, 63, 0, 0, 0, 0,106, 33, 34, 52, 1, 0,128, 63,255,255,159, 51, 0, 0, 0, 0,213,114,146, 61, 78, 92, 65, 63, - 93,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 6,154, 3, 40, 1,155, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,112,223,154, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,159,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,159,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,163,179, 3,136,155,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,215,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,162,179, 3, 24,163,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,227,252,129,193, 14,112,164, 64, - 9,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 17, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40, 27, 0, 0, 0,181, - 0, 0, 0, 52, 0, 0,128, 63,231,126,201, 61, 54,219, 4,178,204,187,104, 43, 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,219,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0,148,126,204, 63,204,200,189,191, - 75,156, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,162,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,163,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,163,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,167,179, 3, 80,159,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,228,183, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0,136,206, 49, 3, 0, 0, 0, 0, + 21, 0, 0, 0, 1, 0, 0, 0, 88,207, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,205,204, 76, 62, + 0, 0,128, 63, 0, 0,112, 66, 0, 0,240, 65, 0, 0,192, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,136, 0, 0, 0, 88,207, 49, 3, 0, 0, 0, 0, + 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,206, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 65,116,109,111, 0, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0,205,204, 76, 62, + 0, 0,128, 63,210, 69,112, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, 40,208, 49, 3, 0, 0, 0, 0, + 33, 0, 0, 0, 1, 0, 0, 0, 72,212, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 72,210, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, +205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,166,179, 3, 24,167,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,227,252,129,193, 14,112,164, 64, - 9,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 17, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40, 27, 0, 0, 0,181, - 0, 0, 0, 52, 0, 0,128, 63,231,126,201, 61, 54,219, 4,178,204,187,104, 43, 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,219,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0,148,126,204, 63,204,200,189,191, - 75,156, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,211, 49, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0, 72,210, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63, +242, 4, 53,191,243, 4, 53, 63,248, 80, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,166,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,167,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,167,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,171,179, 3, 80,163,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,241,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,170,179, 3, 24,171,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, - 35,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, 15, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, - 0, 0, 0, 0, 0, 0,128, 63,230,126,201, 61, 91, 75,181,177, 58,240,226,171, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,217,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0,127, 30,205,191,203,200,189,191, -211,135, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +248, 80, 20, 3, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,211, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, 72,212, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, +104,216, 49, 3, 0, 0, 0, 0, 40,208, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 76, 97,109,112, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,160, 65,182,152,143, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,104,214, 49, 3, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,170,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,171,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,171,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,175,179, 3, 80,167,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,215, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +104,214, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, +120,136,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,254,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,174,179, 3, 24,175,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, - 35,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, 15, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, - 0, 0, 0, 0, 0, 0,128, 63,230,126,201, 61, 91, 75,181,177, 58,240,226,171, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,217,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0,127, 30,205,191,203,200,189,191, -211,135, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,136,192, 1, 0, 0, 0, 0, + 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,248,215, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 0, 0,216, 1, 0, 0,104,216, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0,136,220, 49, 3, 0, 0, 0, 0, + 72,212, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66, +154,153, 25, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,136,218, 49, 3, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, + 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,174,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,175,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,175,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,179,179, 3, 80,171,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 12,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,178,179, 3, 24,179,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, 46,149,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, - 46,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,120,137,214,177,176,159,162,177, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, -177,159, 34, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,254,255,127, 54,255,255,255, 52, -255,255,127, 52, 0, 0,128, 63,231,126,201, 61,224,158,198, 48,128, 51,197,170, 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,160,222,251, 49, 0, 0, 0, 0,125,242, 76,192,203,200,189,191, -246, 70, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,220, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,136,218, 49, 3, 0, 0, 0, 0, + 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,168,135,192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,178,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,179,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,179,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,183,179, 3, 80,175,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 25,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,182,179, 3, 24,183,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, 46,149,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, - 46,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,120,137,214,177,176,159,162,177, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, -177,159, 34, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,254,255,127, 54,255,255,255, 52, -255,255,127, 52, 0, 0,128, 63,231,126,201, 61,224,158,198, 48,128, 51,197,170, 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,160,222,251, 49, 0, 0, 0, 0,125,242, 76,192,203,200,189,191, -246, 70, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,135,192, 1, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 24,220, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, +136,220, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0,168,224, 49, 3, 0, 0, 0, 0,104,216, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63,168,222, 49, 3, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, + 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,182,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,183,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,183,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,187,179, 3, 80,179,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,224, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168,222, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, +243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 72,151, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 38,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,186,179, 3, 24,187,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,237, 10, 2,194, 14,112,164, 64,184,147,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,237, 10, 2,194, 14,112,164, 64, -184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, - 0, 0, 0, 0, 0, 0,128, 63,231,126,201, 61, 24, 67,144,176, 48,212, 86, 43, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0, 98,165, 76, 64,203,200,189,191, - 86,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0, 72,151, 17, 3, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,224, 49, 3, 0, 0, 0, 0, + 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0,168,224, 49, 3, 0, 0, 0, 0, + 33, 0, 0, 0, 1, 0, 0, 0, 88,228, 49, 3, 0, 0, 0, 0,136,220, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63, +200,226, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64, +205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,186,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,187,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,187,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,191,179, 3, 80,183,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 51,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,190,179, 3, 24,191,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,237, 10, 2,194, 14,112,164, 64,184,147,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,237, 10, 2,194, 14,112,164, 64, -184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, - 0, 0, 0, 0, 0, 0,128, 63,231,126,201, 61, 24, 67,144,176, 48,212, 86, 43, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0, 98,165, 76, 64,203,200,189,191, - 86,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,200,226, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63, +242, 4, 53,191,243, 4, 53, 63,248,172, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,190,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,191,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,191,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,195,179, 3, 80,187,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 64,184, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +248,172, 16, 3, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, 88,228, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, + 8,232, 49, 3, 0, 0, 0, 0,168,224, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 83,112,111,116, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 62, +247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63,120,230, 49, 3, 0, 0, 0, 0, + 1, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,194,179, 3, 24,195,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 13,134, 34,194, 58, 92, 63,192,184,147,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,252, 77, 53,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34,193,144,252, 77, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 13,134, 34,194, 58, 92, 63,192, -184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 34,187,154, 49,225,149,196, 23, 0, 0, 0, 0, 16, 58,194, 39, 0, 0,128, 63, -177,159,162, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 56,150, 2, 50,231,126,201,189, 48, 48, 63,171, 0, 0, 0, 0, 51, 57,255, 49,130,163, 33, 38, -232,126,201, 61, 0, 0, 0, 0,231,126,201,189, 54, 57,255,177,162,222,251, 49, 0, 0, 0, 0,240,212, 46,191,239,198,127,192, - 86,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +120,230, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, +120,165, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,194,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,195,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,195,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,199,179, 3, 80,191,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 49, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 78,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,198,179, 3, 24,199,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 13,134, 34,194, 58, 92, 63,192,184,147,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,252, 77, 53,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34,193,144,252, 77, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 13,134, 34,194, 58, 92, 63,192, -184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 34,187,154, 49,225,149,196, 23, 0, 0, 0, 0, 16, 58,194, 39, 0, 0,128, 63, -177,159,162, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 56,150, 2, 50,231,126,201,189, 48, 48, 63,171, 0, 0, 0, 0, 51, 57,255, 49,130,163, 33, 38, -232,126,201, 61, 0, 0, 0, 0,231,126,201,189, 54, 57,255,177,162,222,251, 49, 0, 0, 0, 0,240,212, 46,191,239,198,127,192, - 86,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,165, 16, 3, 0, 0, 0, 0, + 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 0, 0,216, 1, 0, 0, 8,232, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 40,236, 49, 3, 0, 0, 0, 0, + 88,228, 49, 3, 0, 0, 0, 0, 56, 33, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, + 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0, 52, 66, 0, 0, 72, 66, +171,156, 8, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 40,234, 49, 3, 0, 0, 0, 0, 2, 0, 0, 0, 78,207, 68, 65, + 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,198,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,199,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,199,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,203,179, 3, 80,195,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,235, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 40,234, 49, 3, 0, 0, 0, 0, + 79, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,136,149, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 91,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,202,179, 3, 24,203,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,176,160, 34, 66, 28, 67, 63,192, 45,149,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,252, 77, 53,178,159, 34,193, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,144,252, 77, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,176,160, 34, 66, 28, 67, 63,192, - 45,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 34,187,154,177, 0, 0, 0, 0, 0, 0, 0, 0, 16, 58,194,167, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 16, 58,194,156, 0, 0,128, 52, - 0, 0, 0, 0, 0, 0,128, 63, 28,240,238, 49,231,126,201, 61,240, 90, 33,171, 0, 0, 0, 0, 51, 57,255,177,130,163, 33, 38, -232,126,201, 61, 0, 0, 0, 0,231,126,201, 61, 54, 57,255,177,163,222,251, 49, 0, 0, 0, 0,210,222, 46, 63, 34, 9,128,192, -191, 71, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,149, 16, 3, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +184,235, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,216, 1, 0, 0, + 40,236, 49, 3, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,232, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 72,238, 49, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, + 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,202,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,203,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,203,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 80,207,179, 3, 80,199,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, - 50, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,104,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,206,179, 3, 24,207,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,176,160, 34, 66, 28, 67, 63,192, 45,149,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,252, 77, 53,178,159, 34,193, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,144,252, 77, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,176,160, 34, 66, 28, 67, 63,192, - 45,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 34,187,154,177, 0, 0, 0, 0, 0, 0, 0, 0, 16, 58,194,167, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 16, 58,194,156, 0, 0,128, 52, - 0, 0, 0, 0, 0, 0,128, 63, 28,240,238, 49,231,126,201, 61,240, 90, 33,171, 0, 0, 0, 0, 51, 57,255,177,130,163, 33, 38, -232,126,201, 61, 0, 0, 0, 0,231,126,201, 61, 54, 57,255,177,163,222,251, 49, 0, 0, 0, 0,210,222, 46, 63, 34, 9,128,192, -191, 71, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 72,238, 49, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, +243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,184,141, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,224,206,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, - 24,207,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 80,207,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,224,210,179, 3, 80,203,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,184,141, 16, 3, 0, 0, 0, 0, 77, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0,216,239, 49, 3, 0, 0, 0, 0, +129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,170,159, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +233,150, 10, 61,119, 32, 14, 62, 31,130,137, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, +205,204, 28, 65, 0, 0, 0, 0, 1, 0, 32, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, + 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, + 0, 0, 5, 0, 3, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 93,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170, 77,152, 65,248,108, 90,191, 90,202,168,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61, -176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,170, 77,152, 65,248,108, 90,191, - 90,202,168,191, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,220, 19,149,176,206,185,149,179, 0, 0, 0, 0,101, 61, 84, 51, 1, 0,128, 63, - 45,173,146, 51, 0, 0, 0, 0,180,106, 15, 51, 67, 91, 19,178, 0, 0,128, 63, 0, 0, 0, 0,229,162, 50, 53,251, 88,214, 52, -187,255,179, 53, 0, 0,128, 63,136,247,255, 62,164, 21, 44,191,251,203, 11, 63, 0, 0, 0, 0,138, 26,182, 62,176,248, 59, 63, - 46, 7, 20, 63, 0, 0, 0, 0, 36, 39, 74,191, 26, 67,194,189,218, 45, 27, 63, 0, 0, 0, 0, 4, 80,121,193,162,189, 99, 65, - 13, 24, 70,192, 0, 0,128, 63, 30, 4, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,242, 49, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,242, 49, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0,120,242, 49, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,120,243, 49, 3, 0, 0, 0, 0, +120,243, 49, 3, 0, 0, 0, 0,120,243, 49, 3, 0, 0, 0, 0,120,243, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,243, 49, 3, 0, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,243, 49, 3, 0, 0, 0, 0, + 17, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,180, 16, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0, 40,180, 16, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 71, 82, 0, 0,104, 0, 0, 0, 56,248, 49, 3, 0, 0, 0, 0, 7, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71, 82, 79,118,101,114,114,105,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,248, 49, 3, 0, 0, 0, 0,136,251, 49, 3, 0, 0, 0, 0,255,255, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,248, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0, 88,249, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 98, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,249, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0,200,249, 49, 3, 0, 0, 0, 0,232,248, 49, 3, 0, 0, 0, 0,168, 92, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,249, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0, 56,250, 49, 3, 0, 0, 0, 0, 88,249, 49, 3, 0, 0, 0, 0, 56, 87, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,250, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0,168,250, 49, 3, 0, 0, 0, 0,200,249, 49, 3, 0, 0, 0, 0,120,128, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,250, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0, 24,251, 49, 3, 0, 0, 0, 0, 56,250, 49, 3, 0, 0, 0, 0,232, 70, 50, 3, 0, 0, 0, 0, 40,181,151, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,251, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0,136,251, 49, 3, 0, 0, 0, 0,168,250, 49, 3, 0, 0, 0, 0,200, 81, 50, 3, 0, 0, 0, 0,168,218,225, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,251, 49, 3, 0, 0, 0, 0, 6, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,251, 49, 3, 0, 0, 0, 0, 88, 76, 50, 3, 0, 0, 0, 0, 40, 6,154, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,248,251, 49, 3, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0,104, 1, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,206, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 92, 3, 0, 0,224,210,179, 3,115, 0, 0, 0, 1, 0, 0, 0,112,214,179, 3, 80,207,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,199, 41,188, +225,230, 30,193,216,129,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0, 0,128, + 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33,162, 51, 0, 0, 0, 0, + 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 64, 90,136, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200, 96,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63, -138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, - 47, 7, 20, 63, 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 12, 73,149, 51, -183,223, 34,179, 0, 0, 0, 0,180, 66, 41, 50, 0, 0,128, 63,176, 27,138, 49, 0, 0, 0, 0,201, 75, 13, 50, 76, 10,177, 50, - 1, 0,128, 63, 0, 0, 0, 0, 41,189, 56,179,113,162,231,180, 67,151,100,180, 0, 0,128, 63,139,247,255, 62,165, 21, 44,191, -252,203, 11, 63, 0, 0, 0, 0,141, 26,182, 62,176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0, 36, 39, 74,191, 19, 67,194,189, -216, 45, 27, 63, 0, 0, 0, 0, 42,133, 74, 65, 29, 20,102, 63,116,194, 34, 65, 0, 0,128, 63, 30, 4, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, - 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,112,214,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 0,218,179, 3,224,210,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,105,179, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 56,183,192, 61, 86, 90,193,242,190, 40, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,143,104,191, 93, 33, 11,191,232, 45, 17, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,134,194, 12,191, 1,236, 39, 63,180, 97, 4, 63, 0, 0, 0, 0, 37,182, 59,191,170, 20,169,189, - 65,200, 44,191, 0, 0, 0, 0, 11,208,204,190, 93, 18, 64,191,215,191, 6, 63, 0, 0, 0, 0,111, 56,183,192, 61, 86, 90,193, -242,190, 40, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,238,165, 47,180,227,129, 13, 50, 0, 0, 0, 0,163, 29,131,178, 1, 0,128, 63, - 76,221,150,177, 0, 0, 0, 0, 14, 36, 14,179,106,112,163, 48, 0, 0,128, 63, 0, 0, 0, 0,255,187,156,179, 91, 51,158,181, -179,247,156,180, 0, 0,128, 63,135,194, 12,191, 35,182, 59,191, 12,208,204,190, 0, 0, 0, 0,181, 97, 4, 63, 65,200, 44,191, -213,191, 6, 63, 0, 0, 0, 0, 0,236, 39,191,162, 20,169, 61, 92, 18, 64, 63, 0, 0, 0, 0,135, 79,167,192, 33,228,179, 63, - 21,212, 26,193, 0, 0,128, 63, 30, 4, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,104, 1, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,216, 6, 50, 3, + 0, 0, 0, 0,248,251, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97, +109,101,114, 97, 65,116,109,111, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,207, 49, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 92, 3, 0, 0, 0,218,179, 3,115, 0, 0, 0, 1, 0, 0, 0,144,221,179, 3,112,214,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8,100,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 47,244, 63,162,155,113, 37, 40, 80,170, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 40, 80,170, 37,162,155,113,165, 0, 0, 0, 0, 39, 80,170, 37,157, 64,169,190, +163,155,113, 63, 0, 0, 0, 0,165,155,113, 37,163,155,113,191,157, 64,169,190, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193, +216,129,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,187, 35, 58,154,139, 2,174, 25, 0, 0, 0, 0,151, 29,171, 37, 1, 0,128, 63, + 33,110, 77, 51, 0, 0, 0, 0,135,255,255, 45,158, 64,169, 50, 0, 0,128, 63, 0, 0, 0, 0, 30, 0,128, 48, 5, 80, 56, 53, +157,216,128, 52, 0, 0,128, 63, 0, 0,128, 63, 38, 80,170, 37,163,155,113, 37, 0, 0, 0, 0, 0, 0, 0, 0,158, 64,169,190, +162,155,113,191, 0, 0, 0, 0, 0, 0, 0,174,164,155,113, 63,157, 64,169,190, 0, 0, 0, 0, 77,199, 41, 60,158,113,159,192, +150,113, 12,193, 0, 0,128, 63, 0, 0,128, 63, 40, 80,170, 37,166,155,113, 37, 0, 0, 0, 0,162,155,113,165,164,155,113, 63, +158, 64,169,190, 0, 0, 0, 0, 40, 80,170,165,159, 64,169, 62,162,155,113, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,223, 13, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, +187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,210, 32, 80, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176,147,104, 64, 42, 84, 23,193,116, 77,171, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63, -138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, - 47, 7, 20, 63, 0, 0, 0, 0,176,147,104, 64, 42, 84, 23,193,116, 77,171, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,197,201, 17,180, - 99,220,102, 50, 0, 0, 0, 0,123,165,191, 50,254,255,127, 63, 10,194,140, 50, 0, 0, 0, 0, 41,160,180,178, 91,103, 73, 50, -254,255,127, 63, 0, 0, 0, 0,254,255,127, 52,254,255,127,181,253,255,255, 52, 0, 0,128, 63,136,247,255, 62,164, 21, 44,191, -251,203, 11, 63, 0, 0, 0, 0,138, 26,182, 62,175,248, 59, 63, 45, 7, 20, 63, 0, 0, 0, 0, 37, 39, 74,191, 18, 67,194,189, -217, 45, 27, 63, 0, 0, 0, 0, 88, 99, 93,192,122, 98, 80,190,223,119,112,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, - 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,144,221,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 32,225,179, 3, 0,218,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, + 32, 5, 0, 0,216, 6, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 40, 13, 50, 3, 0, 0, 0, 0,104, 1, 50, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, + 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,102,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,147,251,192,206, 0, 24,193, 67,131,104,192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61, -176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,249,147,251,192,206, 0, 24,193, - 67,131,104,192, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, 55,105,222, 50,186,168, 17, 51, 0, 0, 0, 0,243,228, 47,178, 0, 0,128, 63, - 81, 76,155,178, 0, 0, 0, 0,170,191, 22, 50,214, 89, 50, 51,254,255,127, 63, 0, 0, 0, 0,254,255,127,181, 0, 0,128,181, - 35, 5,136,168, 0, 0,128, 63,139,247,255, 62,165, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0,140, 26,182, 62,175,248, 59, 63, - 45, 7, 20, 63, 0, 0, 0, 0, 36, 39, 74,191, 20, 67,194,189,217, 45, 27, 63, 0, 0, 0, 0,147,142,176, 64,101, 22,170,191, - 27, 28,246, 64, 0, 0,128, 63, 1, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,152, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 43, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,233, 19, 3, 0, 0, 0, 0, 56, 90, 17, 3, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122,189,157, 24,186, 64, 28, 38, 71,192, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,127,191, 0, 0,192, 51, 0, 0, 0, 0, 34, 75,146,189, 36,181,131,192, 95,202,167,191, 0, 0,128, 63, + 14, 4, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63, +205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, + 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 0, 0, 92, 3, 0, 0, 32,225,179, 3,115, 0, 0, 0, 1, 0, 0, 0,176,228,179, 3,144,221,179, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40,109,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 12, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,137, 3, 3, + 0, 0, 0, 0,200,144, 3, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -218, 15,201, 63, 0, 0,128, 37,255,255,127, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,255,255,127, 37, - 0, 0,128,165, 0, 0, 0, 0,255,255,127, 37,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 37, 0, 0,128,191, -105, 33,162, 51, 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, 44,197,107, 53, - 4,147, 81,180, 0, 0, 0, 0,253,255,127, 37, 0, 0,128, 63, 64, 90,136, 48, 0, 0, 0, 0,254,255,127,165, 44,197,107,155, - 0, 0,128, 63, 0, 0, 0, 0,254,255,255, 51,255,255,255,181,254,255,127, 52, 0, 0,128, 63, 0, 0,128, 63, 25, 58,194,178, - 67,191,128,179, 0, 0, 0, 0, 4, 0,128,165, 0, 0,128, 63,254,255,255, 39, 0, 0, 0, 0,156, 90,241, 49,220, 13,171,177, -255,255,127, 63, 0, 0, 0, 0, 33,159,189,191, 47,164,188,191,151,188,153,192, 0, 0,128, 63, 32, 0, 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, - 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,120,233, 19, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 4, 0, 0, 0, 56, 90, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, + 72, 12, 50, 3, 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,176,228,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,176,232,179, 3, 32,225,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 0, 0, -108, 97,110,101, 46, 48, 48, 51, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,104, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 40, 13, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, +152, 18, 50, 3, 0, 0, 0, 0,216, 6, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,194,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,232,179, 3,120,232,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, 24,211,229, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, -177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, - 24,211,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,252,118,143,165, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40,155, 0, 0, 0, 53, - 0, 0, 0, 0, 0, 0,128, 63,231,126,201, 61,219,145,171, 48, 32, 19, 70, 29, 0, 0, 0, 0, 65,209,217,164, 51, 57,255, 49, -232,126,201, 61, 0, 0, 0, 0,235, 66,172, 48,231,126,201,189, 79,216,251, 49, 0, 0, 0, 0, 18,136, 29,187,203,200,189,191, -139,139, 9, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 64,232,179, 3, 0, 0, 0, 0, 1, 0, 0, 0,152, 64,181, 3, 68, 65, 84, 65, 4, 0, 0, 0, -120,232,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,176,232,179, 3,115, 0, 0, 0, - 1, 0, 0, 0,176,236,179, 3,176,228,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 56,225, 20, 3, 0, 0, 0, 0,200,105, 17, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, + 24,211,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65, +178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52, +178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 0,131,102, 60, + 14,112,164, 64, 24,211,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,252,118,143,165, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40,155, + 0, 0, 0, 53, 0, 0, 0, 0, 0, 0,128, 63,231,126,201, 61,218,145,171, 48, 0, 0, 0, 0, 0, 0, 0, 0,218,145,171,176, +231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,232,110,181,186, +127,109, 1,191,172,228, 52,190, 0, 0,128, 63,231,126,201, 61,219,145,171, 48, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,218,164, + 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0, 0, 0,172, 48,231,126,201,189, 0,192,251, 49, 0, 0, 0, 0, 18,136, 29,187, +203,200,189,191,180,139, 9, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, + 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, + 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,162,186, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,236,179, 3,120,236,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,100, 82, 7,189, 21,204,103,191,241,165,230, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,153, 39,155, 64, -153, 39,155, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0,192, 37,255,255,255, 36, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,152, 39, 27, 38,102,187,232,166, 0, 0, 0, 0,102,187,232, 38,157,134,196, 52, -153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38,153, 39,155,192,157,134,196, 52, 0, 0, 0, 0,100, 82, 7,189, 21,204,103,191, -241,165,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,236, 48,206,152, 9, 66, 41, 24, 0, 0, 0, 0,216, 55, 60,152, 0, 0,128, 63, - 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, 64,218, 93, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 27, 50,211, 35, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62, - 59,119,189, 38, 0, 0, 0, 0, 0, 94,204,173, 16, 58, 97,175, 25, 50, 83, 62, 0, 0, 0, 0,135, 62,153, 59,184, 97,110,185, -118, 71,238, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 0, 0, 0, 56,225, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,200,105, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,152, 18, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,104, 24, 50, 3, + 0, 0, 0, 0, 40, 13, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104, +101, 99,107,101,114,115, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 64,236,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -120,236,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,176,236,179, 3,115, 0, 0, 0, - 1, 0, 0, 0, 40,241,179, 3,176,232,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, - 50, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,136, 3, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 43, 52, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 94,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,240,179, 3, -176,240,179, 3, 64,240,179, 3,120,240,179, 3, 1, 0, 0, 0, 1, 0, 0, 0,242,187,213,191,194,145,134, 63,254,100, 35, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 0, 28, 65,246, 0, 28, 65, -243, 0, 28, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,110,135, 63,180,169, 59, 62,138,115, 1,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,198, 49, 6, 65,115,154,148,192, 3,113,227,191, 0, 0, 0, 0,159,250,106, 64,189,207, 91, 64, - 80,170, 5, 65, 0, 0, 0, 0, 46,151, 86,192,125, 94,251,192,188,127,150, 64, 0, 0, 0, 0,242,187,213,191,194,145,134, 63, -254,100, 35, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 24, 50, 3, + 0, 0, 0, 0,232,138, 16, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,179,243,222, 63,139,224,239,192, 28, 38, 71, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15,201,191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,105, 33,162, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,179,243,222, 63,139,224,239,192, + 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,220,198, 33,177, 33, 91, 79,179, 0, 0, 0, 0,132, 62,152, 49, 0, 0,128, 63, - 52,168,172, 50, 0, 0, 0, 0, 31, 6, 96,177,234,190, 21, 51, 0, 0,128, 63, 0, 0, 0, 0,212, 90,228, 50,171,224,143,179, -223, 27,189,175, 0, 0,128, 63,143,174,180, 61,160, 48, 30, 61,223,118, 16,189, 0, 0, 0, 0,162, 29,153,188, 38,248,179, 61, -115,162, 74, 61, 0, 0, 0, 0, 15, 21, 72, 61,160,250, 19,189, 88, 57,169, 61, 0, 0, 0, 0, 4,107, 50, 63, 88, 46,204,190, -177,206, 79, 63, 0, 0,128, 63, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 0, 0,160, 51, + 0, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,139,224,239,192,174,243,222,191, + 28, 38, 71,192, 0, 0,128, 63, 0, 0, 0, 0, 1, 0,128, 63, 0, 0,128, 51, 0, 0, 0, 0,104, 33,162,179, 0, 0,128, 39, + 0, 0,128, 63, 0, 0, 0, 0,255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0,109,218, 27, 64, 67, 71,224,191, + 96,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, 169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 64,240,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -120,240,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,176,240,179, 3, 79, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 31, 0, 0, 0, 83,117, 98,115,117,114,102, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 40,241,179, 3,115, 0, 0, 0, 1, 0, 0, 0, - 40,245,179, 3,176,236,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,120, 3, 3, 0, 0, 0, 0,152,128, 3, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0, 8, 24, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,232,138, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0,104, 24, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 56, 30, 50, 3, 0, 0, 0, 0, +152, 18, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101, +114,115, 46, 48, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,243,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,117,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,120, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 43, 52, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,244,179, 3,240,244,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 56,135, 72, 63, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 29, 50, 3, 0, 0, 0, 0, + 56,209, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,149, 78,207,191, 65,225,239,192, 28, 38, 71, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,228,203,150,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46,222, 76, 50, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 46,222, 76, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,149, 78,207,191, 65,225,239,192, 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 57,135,200, 47, 57,135,200,178, 1, 0,128, 63, 0, 0, 0, 0,180,192,175,176, 32,132,146, 51,193, 40, 10,179, - 0, 0,128, 63,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 33, 52, 34,252,250,206, 51,144,104,163, 63, - 0, 0, 0, 0, 60,240,202,173,144,104,163,191,130, 64,204, 51, 0, 0, 0, 0,105, 93,173,187,172,176, 88,193,178, 56,118,186, - 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0,128, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0,128,179, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 66,225,239, 64,149, 78,207,191, 29, 38, 71,192, + 0, 0,128, 63, 0, 0, 0, 0,255,255,127,191, 0, 0, 0, 0, 0, 0, 0, 0,104, 33,162, 51, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,255,255,127,191, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0, 0, 2,217, 27,192, 5,251,205,191, 97,202,167,191, + 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,189,206, 3, -176, 1,206, 3, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 4, 0, 0, 0,184,244,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,240,244,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 40,245,179, 3,115, 0, 0, 0, 1, 0, 0, 0, - 40,249,179, 3, 40,241,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,117,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,248,179, 3,240,248,179, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 31, 10, 58, 59, 94,236, 63,236, 84,231, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110, 63, 91,188,110, 63, 91,188,110, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 50,151, 51, 91,188,110, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110,191, 90, 50,151, 51, 0, 0, 0, 0, 0, 31, 10, 58, 59, 94,236, 63,236, 84,231, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255,127, 63,226, 53, 25,179, - 0, 0, 0, 0, 0, 0, 0, 0,167,120,247,166, 1, 0,128, 63, 0, 0, 0, 0,183,132, 39,174,239,106,181,179,116,226,155,179, - 0, 0,128, 63,160, 65,137, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,204,221,150,160, 65,137, 63,194,226, 40, 40, - 0, 0, 0, 0,248,127, 14, 45,115,141,149,176,161, 65,137, 63, 0, 0, 0, 0, 29, 80, 63,188,103, 95,226,187, 87, 19, 74, 65, - 0, 0,128, 63, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, - 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 65,253, 2, 0, 0, 0, 0,104,112, 3, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, +216, 29, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 4, 0, 0, 0, 56,209, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, + 32, 5, 0, 0, 56, 30, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 8, 36, 50, 3, 0, 0, 0, 0,104, 24, 50, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, + 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 4, 0, 0, 0,184,248,179, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,240,248,179, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 40,249,179, 3,115, 0, 0, 0, 1, 0, 0, 0, -184,252,179, 3, 40,245,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 53, 0, 48, 48, - 51, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 23, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 43, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 90,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 35, 50, 3, 0, 0, 0, 0,200,210, 3, 2, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,142,127,122, 61,152,212, 18,193, 28, 38, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,218, 15, 73,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128,191,105, 33, 34,180, 0, 0, 0, 0, 0, 0, 0, 0,105, 33, 34, 52, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,142,127,122, 61,152,212, 18,193, 28, 38, 71, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128,191,105, 33, 34, 52, 0, 0,128, 39, 0, 0, 0, 0, 0, 0, 34,180, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 27,126,122, 61,152,212, 18,193, 28, 38, 71,192, 0, 0,128, 63, + 0, 0,128,191,106, 33, 34, 52, 95,202,167, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179, 0, 0,128, 63, 0, 0, 0, 0, +106, 33, 34, 52, 1, 0,128, 63, 0, 0,160, 51, 0, 0, 0, 0,192,120,146, 61,145, 36, 65, 63, 95,202,167,191, 0, 0,128, 63, + 14, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63, +205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, + 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,155,195,189, 20,145,188, 64, 94,220, 88, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,221,180,134, 63, 48,190,141, 37,253, 55, 57, 35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,253, 55, 57, 35, 48,190,141,165, 0, 0, 0, 0,219,128,112, 37, 52,177,253, 62, 94, 93, 94, 63, - 0, 0, 0, 0, 52,133, 22, 37, 94, 93, 94,191, 52,177,253, 62, 0, 0, 0, 0,128,155,195,189, 20,145,188, 64, 94,220, 88, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63,118, 42, 31, 25,242,108,131,153, 0, 0, 0, 0, 0, 0, 0,176, 0, 0,128, 63,210, 21, 66,178, - 0, 0, 0, 0, 5, 0, 0,176, 25,245,158, 50, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 50,118, 42,159, 11,242,108, 3,140, - 0, 0,128, 63, 0, 0,128, 63,219,128,112, 37, 53,133, 22, 37, 0, 0, 0, 0, 80, 90,231,174, 94, 93, 94, 63, 52,177,253, 62, - 0, 0, 0, 0, 0, 68,239,172, 50,177,253,190, 95, 93, 94, 63, 0, 0, 0, 0,150, 98,174, 61, 85,101,144,193,196,124,253, 64, - 0, 0,128, 63, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, - 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, - 92, 3, 0, 0,184,252,179, 3,115, 0, 0, 0, 1, 0, 0, 0,184, 0,180, 3, 40,249,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50,253, 2, + 0, 0, 0, 0,232, 57,253, 2, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,168, 35, 50, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 4, 0, 0, 0,200,210, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, + 8, 36, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,216, 41, 50, 3, 0, 0, 0, 0, 56, 30, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,185,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,180, 3,128, 0,180, 3, 1, 0, 0, 0, 1, 0, 0, 0, - 94, 52,252,190,174,101,228, 65,141,116, 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,235,239, 30, 66,236,239, 30, 66,235,239, 30, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138,174, 95, 63, - 98,132,123, 37, 61, 56, 87,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,239, 30, 66,105,158, 5,168,108, 39, 28,168, - 0, 0, 0, 0,212,129, 77, 40, 66, 15,204, 65,158,186,243, 65, 0, 0, 0, 0, 55, 89, 13,165,156,186,243,193, 65, 15,204, 65, - 0, 0, 0, 0, 94, 52,252,190,174,101,228, 65,141,116, 17, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,151,169,232, 24,151,190,157, 25, - 0, 0, 0, 0, 21, 24,149, 24, 0, 0,128, 63,109,157, 59,178, 0, 0, 0, 0,191,231, 64,153, 1,158,199,178, 1, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,101, 43,206, 60, 25, 74, 5, 35,141, 90,183,159, - 0, 0, 0, 0, 41,143,202,162,101, 20,158, 60,193, 89,132, 60, 0, 0, 0, 0,188, 83,173, 34,192, 89,132,188,103, 20,158, 60, - 0, 0, 0, 0, 11,215, 70, 60, 61, 43, 67,191,185,241, 31, 63, 0, 0,128, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 41, 50, 3, 0, 0, 0, 0,184,226, 19, 3, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65, +151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 17, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40, 27, 0, 0, 0,181, 0, 0, 0, 52, 0, 0,128, 63,231,126,201, 61, + 0, 0,128, 49, 0, 0, 0, 0, 0, 0, 0, 0,218,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,252,159,204, 63,126,109, 1,191,156,217, 52,190, 0, 0,128, 63,231,126,201, 61, + 0, 0, 0,178, 0, 0,128, 44, 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,219,145,171, 48, +231,126,201,189,161,222,251, 49, 0, 0, 0, 0,148,126,204, 63,204,200,189,191,117,156, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, +236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,120, 41, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, +184,226, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,216, 41, 50, 3, + 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,168, 47, 50, 3, 0, 0, 0, 0, 8, 36, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 72, 0,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,128, 0,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, - 92, 3, 0, 0,184, 0,180, 3,115, 0, 0, 0, 1, 0, 0, 0,184, 4,180, 3,184,252,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66,112,114,101,118,105,101,119, 99,117, 98,101, 0,117, 98,101, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,193,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 4,180, 3,128, 4,180, 3, 1, 0, 0, 0, 1, 0, 0, 0, -128,253, 88, 59,220,118,160, 63, 0, 15, 37, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 88, 68, 64, 84, 88, 68, 64, 83, 88, 68, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,190,237, 62, -108,230,217,190, 20,151, 52, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 38, 8, 64,191,228,231, 63,186, 31,162, 63, - 0, 0, 0, 0, 35,118, 13,192, 2, 61,220, 63, 31, 44,160, 63, 0, 0, 0, 0,166, 52,234, 60,102,223,227,191, 55,229, 31, 64, - 0, 0, 0, 0,128,253, 88, 59,220,118,160, 63, 0, 15, 37, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 47, 50, 3, 0, 0, 0, 0,232,160, 17, 3, 0, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,187,122,172,178,103,144, 8, 50, - 0, 0, 0, 0, 7,239, 27,179, 0, 0,128, 63,247,131,152,178, 0, 0, 0, 0,149,110,134, 50,189,195,169, 50, 1, 0,128, 63, - 0, 0, 0, 0,255,223,172, 50, 56, 88,136,179,159,134, 16,180, 0, 0,128, 63, 10,115,103, 62,201,122,112,190,191, 17, 71, 59, - 0, 0, 0, 0,116,205, 9, 62,205, 36, 8, 62,136,232,135, 62, 0, 0, 0, 0, 1, 27, 69,190,224, 50, 59,190, 25,176, 65, 62, - 0, 0, 0, 0,110,176, 16,192,158, 71, 9,192,115, 90,244, 63, 0, 0,128, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, + 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +177,159, 34, 65, 0, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, 15, 66,216,178, + 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63,232,126,201, 61, 0, 0,128, 49, + 0, 0, 0, 0, 0, 0, 0, 0,219,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,126,201, 61, 0, 0, 0, 0, 23,253,204,191,128,109, 1,191,176,217, 52,190, 0, 0,128, 63,230,126,201, 61, 0, 0, 0,178, + 0, 0,128,172, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,217,145,171, 48,231,126,201,189, +161,222,251, 49, 0, 0, 0, 0,127, 30,205,191,203,200,189,191,254,135, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, + 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 72, 47, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,232,160, 17, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,168, 47, 50, 3, 0, 0, 0, 0, +116, 0, 0, 0, 1, 0, 0, 0,120, 53, 50, 3, 0, 0, 0, 0,216, 41, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 72, 4,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,128, 4,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, - 92, 3, 0, 0,184, 4,180, 3,115, 0, 0, 0, 1, 0, 0, 0, 8, 57,181, 3,184, 0,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66,112,114,101,118,105,101,119,104, 97,105,114, 0,108, 97,110,101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8,208,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,137,156, 3, 16,137,156, 3, 72, 8,180, 3,128, 8,180, 3, 1, 0, 0, 0, 1, 0, 0, 0, - 86, 92,200, 63, 7,205,227, 63,149,199, 9,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,234,126, 47, 64,234,126, 47, 64,236,126, 47, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225, 80, 2, 63, - 5,211, 15,191, 92,219, 18, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,254, 18, 64, 23,209,169, 62, 27,251,186, 63, - 0, 0, 0, 0, 71,254,133,191,207, 40, 17, 64,229,194,144, 63, 0, 0, 0, 0, 78, 38,137,191, 48,162,192,191,125,176, 1, 64, - 0, 0, 0, 0, 86, 92,200, 63, 7,205,227, 63,149,199, 9,189, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 53, 50, 3, 0, 0, 0, 0,248, 37, 19, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, +176, 38, 2, 66, 14,112,164, 64, 46,149,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, + 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, + 0, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, 46,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,225,128, 25,179,157,103, 88,179, - 0, 0, 0, 0,249,162,132, 50, 1, 0,128, 63, 89,156,139, 51, 0, 0, 0, 0,225,204,139,179,160, 96,185,178, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 52, 1, 0, 0,180, 1, 0, 84,180, 0, 0,128, 63,244,100,156, 62,135,143, 14,190, 52,235, 17,190, - 0, 0, 0, 0,175,239, 70, 62,102, 4, 26, 62, 72,251,137, 62, 0, 0, 0, 0,174,172, 52,189,211,112,154,190, 67,243, 76, 62, - 0, 0, 0, 0,149, 56, 36,191,139, 98, 66,192,168, 5, 68, 64, 0, 0,128, 63, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,120,137,214,177,176,159,162,177, + 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63,177,159, 34, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,254,255,127, 54,255,255,255, 52,255,255,127, 52, 0, 0,128, 63,232,126,201, 61, 0, 0, 0, 49, 0, 0, 0, 48, + 0, 0, 0, 0,219,145,171,176,231,126,201, 61, 0, 0,128,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, + 0, 0, 0, 0,202,225, 76,192,128,109, 1,191,242,179, 52,190, 0, 0,128, 63,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,160,222,251, 49, + 0, 0, 0, 0,125,242, 76,192,203,200,189,191, 33, 71, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, +143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168, 90,154, 3,168, 90,154, 3,184, 8,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 72, 8,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,128, 8,180, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -128, 0, 0, 0,184, 8,180, 3,117, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 76, 1, 0, 0,168, 90,154, 3, 66, 1, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,203,186, 3,104, 9,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -244,100,156, 62,134,143, 14,190, 52,235, 17,190, 0, 0, 0, 0,172,172, 52, 61,211,112,154, 62, 69,243, 76,190, 0, 0, 0, 0, -176,239, 70, 62,102, 4, 26, 62, 73,251,137, 62, 0, 0, 0, 0,188,211, 12,191,198,176,160,190, 56,156, 22, 63, 0, 0,128, 63, - 0, 0, 0, 64, 0, 0, 0, 0, 17, 2, 0, 0,150, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 24, 53, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,248, 37, 19, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,120, 53, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0, 72, 59, 50, 3, 0, 0, 0, 0,168, 47, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 55,181, 3, 68, 65, 84, 65,168,147, 0, 0,104, 9,180, 3, 64, 1, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 20,135, 17,192, 36,121, 97,192,112, 32,141, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,157,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 96, 32, 63,185,201,160, 62,160, 3, 6, 63, 11, 34,248,190, -206, 53,185, 60,192,197,178, 61,174,184, 53, 63,223,172,162,190,109,136,224, 62,142,173, 61,191,180, 96, 10, 60,200,196,163, 61, - 78,182, 99, 63,165,242,180, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -248,112,150, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111, 46, 7,192,143, 26, 60,192, 28,147,207, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,158,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,121,229,190,108, 50, 41,191,136,152, 7,191,156,100,146,190,146,141, 25,191, - 39, 92,142, 62,212,104, 18, 63,227,105,105,190,113,156, 96, 62,137,226, 69,191,147,247, 17, 61, 51,172, 44, 62, 17,125, 54, 63, - 69,195,169, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,144, 63,245, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,103,174,189, 60, 88, 17,192,230, 35, 76, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190, -200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,159,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,101,160,155, 62, 59, 87,152, 62,118,199, 84,191, 86, 89,183, 62,118,103,231, 62,110, 47,177,189, -155, 8, 4,191,100, 60,199, 62,197, 40,177,189, 2, 14, 46, 62,102, 96, 39, 62,101,119,242, 61,189,168,146, 62, 55, 9,221, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,135, 36, 87, 61, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,102,131,192, -196,241, 26, 63,140,198, 76, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,160,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 80, 39, 63,171, 26,218,190, 89,118, 16, 63,130, 72,138,190,169,255,122,190,185,111, 14,191, 21,207, 38, 63, - 73,252,211, 61,198,177, 80,191, 43,154,203,189,227,146, 53, 61, 63,180,115, 63,216,113, 42, 59,125, 63,144, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,175, 95,142, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 43,226,189,253, 85,220,191, -225,104,101, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,161,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 97, 45, 63,119, 47,205,190, 35,117, 19, 63,166,125, 98, 62,242,195, 73, 62,124,228,243, 62,119, 86, 11, 63, 70,156, 89, 62, -230,232, 88, 63,130, 53,204,190,250,120,128, 62, 19,194, 20, 62, 61, 15, 90, 62, 92, 30,200, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 53,129,253, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,159,129,191, 8,210, 6, 63, 35,221,152, 64, -190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,162,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,167,210,190, -194,172,139, 62,250,220, 35, 63, 30,182, 22,191,122, 3,136, 61,109,164,176,190, 30,153,147,190,255,248, 10,188,234, 90,160,190, - 89,241,205,190,148,235, 25, 63,206,172,146, 62,137,195, 52, 61, 99,142,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 37,227, 77, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,167,189,191,217, 59,104,192,184,179,184, 63,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,163,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 45,121, 62,120,126, 98, 63, - 60,171,135,189,139,174,200,190,220,142, 21, 63, 77, 70, 40,191,118, 70,150, 62, 4,245, 92, 61,159,118,174,190,176,217, 49, 63, -120,167,104, 60,166,104,235, 60,218,251, 73, 63, 13, 25, 44, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,217, 2,247, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,112, 30, 63,111, 69, 82,192, 59,191, 51, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,164,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,227,137,190,206,195, 71,191, 70, 31, 96,190, -127, 46, 5, 63, 99, 51,214,189,228, 61, 67,191,134, 90, 2, 62,120,214,146,190, 34,111, 33, 62,136,229,187,190, 27,112,241, 60, - 0,187,177, 60, 4,134,171, 62,164, 35, 29, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,130,192, 56, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118,148,176,191, 88,200, 1, 63, 89, 48,146, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,169, 82,190,102,214, 57, 63, 55,112, 36,191, 59,205, 9, 62, -184,139, 5, 63,105, 32, 43,190,120, 62, 37,191,220,215, 15, 63,180, 2, 8, 63,198,170,163, 62,160,178, 8, 63,185,164,184, 62, - 68, 72, 63, 61, 16,104,112, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 97,249,192, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 80,168,191, 8,154,165,191,229,248, 80, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,166,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,145, 5,191, 83, 77,126, 62, 14,133, 63,191,190, 5,167, 62,123,212, 96,190, -233,136,176, 62, 25,193, 80,189,147, 49, 18, 62,222, 40, 25, 62, 59,204, 10,191,177, 46,104, 62, 36,106,150, 62, 2, 61,138, 62, - 4,131, 86, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 39, 27, 19, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,190,246,189,233,129, 90,192,224,155, 20, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190, -206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,167,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 77, 14,191,231, 81,154, 62, 41,220, 22,191,104,189, 0,191,214,167,160,190,140, 60, 22,190, - 37, 85, 74, 63, 32,253, 8,191, 96,146, 23, 61,196, 30,177,190, 79, 25,187, 60,207,244,194, 60, 53,234,253, 62,233, 52,234, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,218, 21, 79, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,231, 67,190, -144,105, 11,189,210,111,153, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,168,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 74,110,205, 62,146,226, 27,191, 73, 95,219, 61, 75, 3, 45, 63,222,109,147,190,152,196, 40, 63, 36,136,116,190, -181, 21,190,190,211, 38,213,190,114,230,183, 62,206,217, 24, 63, 59,222, 25, 62, 0, 50,134, 61,139,161, 63, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,180, 67,127, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,217,158, 63,122,225, 17,192, -213,158,120, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,169,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 95, 22, 63,172, 95,210,190,114, 70, 46,191, 67, 71, 26, 62,188,164,234, 61,121,120, 78,191,186,229,108,188,144,225, 72,190, -197,218, 42,190, 83,104,114,191, 34,213, 73, 62,217,230, 49, 61,217,117,187, 61,143,253, 42, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,226,144, 95, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,205,127,191,231,116,142,191,116, 64,100, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,170,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 25,132,189, - 67,167, 41,191,249,145,174,190,171,227, 41, 63, 84,208, 94, 62, 98, 21, 50, 63,138,162, 46,191,136, 53, 56,191, 9, 44,160, 62, - 15, 42,188,190,109,124,145, 62, 47, 84,135, 62, 95, 56, 95, 62,104, 38,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,183,116, 87, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,106, 67,192,239, 1,236, 62,230,139,105, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,171,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62, 72, 62,147,226,176, 62, - 67,185, 48,191,255,215, 26,191,242,158,254,187, 89,238,201,190, 99,166, 39, 63,102,238, 3,191,206,229, 10, 62,165, 53,230, 62, - 37,227,100, 62,230, 38, 54, 63, 87, 4, 43, 61,166, 1,190, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,213, 26,126, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 63, 58,191,242, 44,102,191,239,155,119, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,172,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,238,131, 61, 49, 99, 58,191, 63,180, 26, 63, -201, 92,162,190,113,254,209, 62,151, 67, 12, 63, 80,138,197, 62,197,116, 72,191,117,129,182,190,180,137, 76, 62,232,134,178, 62, - 23,134,113, 62,235,242, 46, 62, 45,121,122, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,248, 12,169, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,244,173,175, 62,136,194,141, 61, 0,239,164, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,173,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 38, 28, 63, 66,248,166, 60,227,199, 67,191,127,123, 83,190, -122,119,224,190, 73, 46,149, 62,135, 43, 62, 62, 30,175,199, 62, 97,224, 2, 63,180,198,250, 62,211, 97, 48, 63, 38,134,130, 61, -167, 53, 8, 61, 56, 40, 91, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 93,115,157, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,127,188, 36,192, 83,192, 42,192, 20, 24,202, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0,232, 58, 50, 3, 0, 0, 0, 0,216,171, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,237, 10, 2,194, + 14,112,164, 64,184,147,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, +166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0, +151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, +237, 10, 2,194, 14,112,164, 64,184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, +138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, +138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63,232,126,201, 61, 0, 0, 0,177, 0, 0, 0, 0, 0, 0, 0, 0, +219,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0, + 22,182, 76, 64,127,109, 1,191,202,178, 52,190, 0, 0,128, 63,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, + 94, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0, + 98,165, 76, 64,203,200,189,191,129,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,174,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,121, 82,190,233,142,216,190, 94,156, 83,191,222, 73,158, 62,170,207, 3, 63, - 63, 41, 39,191, 2,164,147, 62, 36,187, 38,191, 0, 1,218, 62,145,119, 32,191,191,242,154, 60, 14,165,130, 62,127,236, 49, 63, -163, 44,253, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 13,194,130, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -191,117, 51, 63, 40,247, 44,192, 84, 59, 82, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,175,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89,176, 71, 59,214, 55, 18,191, 67, 82,223,190,142, 2, 50, 63,235, 17,202, 61, 51,118,199, 62, -129,125, 72, 63, 86,250, 36,191, 70, 99, 90, 61,125, 38, 25, 63,218, 50,227, 61, 48,152,110, 61,166, 58,104, 62,121,161, 26, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 21, 69, 35, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,218, 44,192, -131,112,159,190, 68,196, 80, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,176,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 65, 39,191,175,203,203,190, 24, 58, 8,191,132,178,185,190, 48,133, 27, 63,166,150, 35, 63,195,164,174,189, -146, 20,209,189,124, 43, 3,191,219,188, 54, 63, 23,126, 53, 62, 93,113, 22, 63, 29,104, 42, 62,166,168,140, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 90,122,222, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,253, 61,191,212,216, 43,190, -219,239,140, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,177,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 59, 62,251,190,154,207,132, 62,191,198, 19,191,122, 82, 25,191,179,114,169,190,242, 80, 46,191,161, 92,100,189,125,103,188, 62, - 0,234, 23,191, 12,140, 22, 63, 24, 36,252, 62,191,130,121, 62, 96,245,198, 61, 98,186, 42, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 62,205, 89, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,168,212,191, 47,175, 30,192, 94,228, 12, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232,178,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,136, 6, 62, -240,135, 58,191, 89,198,233, 61, 57,148, 41, 63,151,188,189,190,156, 72,189,190,184, 14, 86, 63,185, 54,165,190,131,220, 49, 62, - 60, 87,189,189,118,198,167, 61, 92,200, 80, 62,157,210, 10, 63,240, 9, 48, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,186,132,181, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,184,238,190,237,206,230,191,208,122, 85, 64,190, 81, 55,191, -107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,179,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165, 30, 63,161, 50,249,190, -180,213, 86,189,178, 10, 29,191,227,247, 49,191,215,139, 7,189,222,249,154,189,153, 77, 23,191,160, 58, 14, 63, 72, 47, 15, 61, -138,132, 94, 62,167,190, 48, 62,203, 41,136, 62,157, 52,176, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 38,177,233, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 19,104, 63,179,122,254,191,115, 37,123, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,180,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,231,181, 62, 36, 19, 51, 63,126, 5, 6,191, -231, 27,170,190,128,253, 35,189,182, 11,151,189, 74,171,178, 62,127,231, 49, 63,204,146,128, 62, 88,100, 17, 62,197,245,124, 62, - 30,108,130, 61,201,152,229, 61,242,193, 19, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 56,156, 79, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,172,106,191, 63,110,225, 42,192, 2,170,110, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63, -236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,227, 27,191, 17, 83, 26, 63, 27,229, 2,191, 83, 48,135, 61, -199,244,134, 62, 55, 37,151,190,210,195,237,189,249, 39, 17, 63,154, 1, 76, 61, 75,194, 79,191,240, 99,249, 61,190, 88,249, 60, -174, 20,183, 61, 39, 38, 66, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -150, 40,178, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,121, 3, 12,192, 63, 11,252,190,146,136, 89, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,183,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 59, 20,191, 30, 36, 17, 63,112, 57,252,190, 32,101,162, 62,139, 6,160, 62, - 57,160, 80, 61,109,243,245, 61, 41, 18,224,190,182,154,227,188,238,196,139,190,173, 28,108, 62,191,152,246, 62,199, 50, 61, 62, - 31,254,210, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 20,166, 56, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -250,104,187,191, 56, 86,139,189,145, 23,131, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190, -203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,184,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228, 80, 19,191,118,138, 16,191,122,210, 6,191,139, 14,138, 62, 73, 65,189, 62, 19, 89,244,189, -205, 5, 83, 62, 94,159,107,190, 19,199,255, 62, 14,124, 48,190, 15, 67,208, 62,184, 57,190, 62,119,154,219, 61,111,114,234, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,203, 51,223, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 56,161, 62, -255,221,207,191,202,110,120, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,185,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,138,124, 47, 63, 12,193, 0, 63,124, 39,176, 62, 68, 3,204,190,132,180, 43, 61, 66,184,104,189, 69,173, 54,191, - 24,239,116,189,191,183, 53,190,120, 91,198,190,123, 33,150, 62, 68, 30,226, 61,224,121, 27, 62, 4,154,227, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,117, 22, 35, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 89, 41,192,117,107, 25,192, -174,245,222, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,186,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66,202,207, 62,211, 32, 47, 63,139,219, 0,191,197,212,172,190,195, 68, 65, 63,105,152,217,190,159,218,214,190, 85,113, 84,190, -194,108,158,190,229,217,235, 61, 82,179,202, 60,197,106,157, 62,211,197, 33, 63, 9,243, 18, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 1,162,102, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,238,220,191, 91, 70,150,191,203,192, 72, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40,187,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 95, 22, 63, -172, 95,210,190,114, 70, 46,191, 67, 71, 26, 62,188,164,234, 61,121,120, 78,191,186,229,108,188,144,225, 72,190,197,218, 42,190, - 83,104,114,191, 13,183, 77, 62,158,153,182, 62, 65, 59,143, 62, 52,159, 38, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,226,144, 95, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,234,116,192,224,101,238,188,165, 20, 56, 64,190, 81, 55,191, -107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,188,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,136, 6, 62,240,135, 58,191, - 89,198,233, 61, 57,148, 41, 63,151,188,189,190,156, 72,189,190,184, 14, 86, 63,185, 54,165,190,131,220, 49, 62, 60, 87,189,189, - 31,255,242, 60,231,194, 83, 63,189, 56, 5, 62, 68,188, 85, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,186,132,181, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,209,240,189,178,183, 95, 63, 5, 67,176, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,189,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,114, 86,191,137,141, 2,191,227,140,105, 61, - 70,121, 63,190,130,242,218, 62,237,163,132,190,219,235, 16, 60, 85,203,248, 62, 79,244, 80,191,103, 0,148, 62,153,189, 85, 63, -151,104,200, 61,246, 55,142, 60, 74, 57, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 31,252, 33, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,206, 54, 25,192,171,197,162, 62, 6, 16,121, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63, -236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,190,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,100,244,190,182, 69, 91,191, 60,137,144,189,161,126, 59, 62, - 28,228,200,190, 60, 49,170, 62,225,139,250,189,244,143,111, 62,252,103,100,191,148, 32, 79, 62,104,246,163, 62, 91,201, 16, 63, - 24,104,136, 61,227,230, 66, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -182, 88, 41, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 57, 61,192,236, 53, 39,191,173,221, 55, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, -198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,191,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 43, 35,190,242,210,225, 61,197, 58, 30, 63,229, 8, 67, 63,215,176,222, 61, - 70, 15, 12, 63, 80,195,165, 62,218, 72,227, 61,188, 66, 87,191,145,213,195, 62, 39,218,212, 61,242, 20, 25, 63,122, 70,118, 62, -159,226,107, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,173, 74, 64, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -249, 62, 40,191, 16,113, 26, 63, 50,179,160, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,192,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,190, 29,224,190,239, 44, 4, 63,125,217, 49, 63,107, 25,121,190,117,172,217, 62,242, 98,116,190, -148,162, 42, 63,142,178,199,190, 54,105, 13,191, 83,107,163,190, 64,186, 45, 63,109,122, 91, 62, 32,134, 21, 61, 21,118,144, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,113,107, 73, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 51,138,191, -199, 14,110,192, 18, 66,203, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,193,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 78, 39, 63,128, 50,251,190,139,185,189,190,175, 4,226, 62,118, 23,153,190, 67,228,120,190, 50,226, 42,191, -239,243, 86,191, 37, 42,189,190, 66, 1,190,190,235,223,153, 59, 21,174,243, 59,231,160, 60, 63,251,135,128, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,167,245,105, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 75,186,191,170,205,204,191, -132,169, 61, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,194,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118,223,155, 62,249,196, 3,191,115, 12,163,190,212, 73, 60,191, 59,208, 85, 62, 65, 11,155, 62, 28, 17,173,189, 20, 16,254,190, -213,229, 32, 63,216,221, 28,189, 79, 19, 52, 62,229, 52,146, 62,191,228,171, 62,106,185, 79, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 45,184, 37, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,119,219, 63,231, 73, 28,192, 83,117,128, 64, -188, 81, 55,191,109,243, 71,191,100,237, 42, 63,233,163,214, 62,202,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,195,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,109,254, 62, -210,146, 4, 63,232,131, 23, 63, 66,212,187, 62, 9,109,158,190, 71, 12,216, 62, 64, 20,153, 59, 11, 2, 7, 62, 92,134, 91, 62, - 43,128, 33,191,186, 75, 51, 62,206,251,144, 60,198, 49, 19, 61, 22,114, 69, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,221,100,115, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 59,194,191, 35, 29, 13,192, 13,208, 30, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,196,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,223,155, 62,249,196, 3,191, -115, 12,163,190,212, 73, 60,191, 59,208, 85, 62, 65, 11,155, 62, 28, 17,173,189, 20, 16,254,190,213,229, 32, 63,216,221, 28,189, - 97, 31,227, 61,168,207,104, 62, 38, 89,237, 62, 93,238, 74, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 45,184, 37, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,197,190, 82,192,251,148,174, 62, 29,189, 91, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,197,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170,132, 10,191, 82, 61,237, 62,127,191,223,190, - 11,148, 12, 63,236,142, 92, 62, 17,199, 32, 63,157,206,242,189,199,114, 15, 63, 91, 82, 33,191, 3,247,167,190,210, 10, 37, 62, -124,152, 65, 63, 28,110,106, 61,179,189,207, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 40, 23,140, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120,157,163,190, 44,219, 33, 63,250, 25,167, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63, -237,163,214, 62,199,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,175, 4,191,160,200, 50,190,248,214, 77, 63,226,194,110,190, -138, 10,198, 61,210,213, 62, 62,141,163,253, 61,106,130,160, 61,201,229,101,191,103,145, 50, 62, 52,192, 61, 63, 16, 50, 23, 62, - 40, 56, 1, 61, 43,254,162, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 89, 81,220, 60, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,131, 63, 79, 63, 22,225,203,191,183, 83,133, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,199,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,155,194,190, 82, 93, 3,191, 23,133, 19,191,179,146, 2,191,131,198,104, 62, - 15,189, 93, 63, 77,226,209,190,159,122, 21,191,169,192,234,190, 16,128, 35, 63, 9,188,167, 62,141,167,138, 61,186,163,185, 61, -147,152, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 25,249,236, 59, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20,218, 89, 62,169, 21, 81,192, 50,226, 38, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190, -206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,200,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,139,169, 52, 63, 97,163,156, 62, 26,132,184,190, 82, 25, 7, 63,127,117,151, 62,254,206,247, 62, - 27,144, 76, 63,150, 57,204, 62,184,181,246,188,196,222, 19, 63,175,237, 18, 61, 50, 0, 0, 61,180, 45,208, 62, 72,186, 6, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 61,195,186, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 91,166,190, -203,138,151, 62,232, 4,159, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,201,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,212,240, 7, 63,213, 2, 18,191,228, 90, 5,191,221, 92,178, 62, 8,236, 16, 63, 90,216,151, 62,155,193,128, 62, - 56, 60,245,188,118,129,160,190, 47,157,113,191,114,117, 40, 63,164, 92, 37, 62, 72,198, 78, 61, 6, 28, 5, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,137, 96,226, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,137,191,191,143,156,208,190, -234,245,116, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,202,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -173,218, 49,191,113,109, 23,191, 32, 16, 55, 62, 54,117,188,190, 25, 20,208, 62,118,245, 46,191, 72,158,236,186, 55, 10, 97,191, -140,128,183, 62,177,230,146,190,121,217,174, 62, 45, 55,188, 62, 41, 76, 25, 62,138,146, 16, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 96, 85, 48, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 6, 78,191,240,247, 2,191, 2,181,131, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,203,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 25,236,189, -127,158, 27, 63,123,235,239, 62, 59,108, 33, 63,244,198,103,190,251,192,187, 62,179, 39,101,190,110,210,138, 62,145,168, 54,191, -208, 20, 63,190,237,209,211, 62, 1,168,129, 62,108,237, 7, 62,188, 30, 77, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 2,210,109, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,181,251,191,160, 67, 79, 63, 83,115,143, 64,190, 81, 55,191, -109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,204,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,243,237, 61, 11,234,169,190, -211,226, 55,191,184,175, 25,191, 24,201, 39, 63,204, 23, 71,190, 87, 61,218, 62, 31,211, 39, 63,108,101,215,190, 35,125,244,189, - 31, 56,250, 62,174,208,248, 62, 50, 43, 79, 60,252,186, 79, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 83,130,186, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,166,143, 16,192,219, 40, 31,192,188,165,240, 63,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,205,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,157, 15,191, 47, 51,205,190,152, 40,136,190, -128,122, 44, 63,194,144, 92, 63,235, 36, 99,190,244, 22,206,190,143, 32,220, 62,169,244, 19, 63,160,205,238,189, 93,255, 69, 61, -131,237,129, 62,199,113, 29, 63, 16,188,169, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,249,139,151, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 16, 46,192,234,135, 17, 62,196,174,101, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63, -235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,206,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,110,162,190,145,104,105,190,247,168,239, 62, 3,235, 74, 63, -140, 77,178,190, 80, 49, 72, 63,164, 45,112, 62, 43,101, 44, 63, 95,162,173, 62,180,215,104,190,132,185,112, 62, 76,198, 31, 63, - 82,148,186, 61,149,140, 75, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -161,174,120, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,221, 76, 34,192,195, 63,220,191,101, 92, 19, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,207,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 89, 32, 62,234, 91, 82, 63,243, 78, 86, 60, 22, 61, 12, 63,249,120,178,190, -203, 19, 37,191,128, 65, 24, 63,196,226, 52, 63,219,214, 0,191,203,228,210,190,191, 5,144, 61, 27,251,203, 62, 8,217,232, 62, -185,169,156, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 7,165,113, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,209,208,191,175, 98, 57,192,214, 39,244, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,208,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,242,136, 6, 62,240,135, 58,191, 89,198,233, 61, 57,148, 41, 63,151,188,189,190,156, 72,189,190, -184, 14, 86, 63,185, 54,165,190,131,220, 49, 62, 60, 87,189,189, 40,142,100, 61,206, 81, 18, 62, 52,238, 34, 63,214,209, 40, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,186,132,181, 61, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,156,146, 19,192, -132,169, 38, 63,119,240,133, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,209,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,123,191,104,191, 91, 12,172,190,100, 97,112, 62,240, 67,150, 61,237,234,241, 61,121, 15, 65,190,224, 2, 61, 62, -159, 38,233,190,118, 62,191,187,107,119, 29, 63,177, 98,202, 62,157,134, 14, 63,246,140,213, 60, 97,116,179, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,159,173, 69, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,209,211, 63, 80, 57, 64,192, -239, 52,100, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,210,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 46,157,190,239,142, 47,191, 7,129,219, 60,124,203, 40, 63, 5,175,122,189,180, 33,139, 62,162, 8, 63, 61, 75,191, 26,191, - 52,191,189, 61,125,188,100,190,131,222,112, 61,150,149,161, 60,127,188,202, 61,219,141, 82, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 34, 78, 58, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 40,195, 62,169, 66, 22,192, 56, 69, 88, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232,211,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 69, 25, 63, - 76,123,124, 62,100,238, 32,191,234,140,220, 62, 84,159,120, 61,187,254,244, 61,103,215, 59, 63,244,235, 71,190, 9,172, 73,191, - 94,228,165,190,237,198, 39, 62,232,166,180, 61, 33, 45,106, 62, 32,238, 4, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,128,255,104, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 41,124, 63,215, 52, 92,192, 1,194, 56, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,212,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,191,175, 62, 72,210, 67, 63, - 91, 44,255,190, 36,232, 97, 62,183, 89, 70,191, 58, 37,246,190,112,174,211, 61,231,174,119,189,237, 2,119,191,180,205, 35, 62, -225,119,158, 59, 62,185, 89, 59, 58, 41,150, 62,186,212, 50, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 78,102, 32, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,215, 66,192, 16,102, 17,189,251, 64, 82, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,213,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 15,158,190, 97, 48, 27,191, 48,181, 41,191, - 31, 19,160,190, 91, 23,153,189,100,243,110,190,182,169,164,190, 97,129,120,191,145,101, 90, 60,193, 53,186, 61, 94, 65, 31, 62, -152, 57, 45, 63,117,240,248, 61, 59,128, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,196, 79,137, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,243,234,243, 63, 12,199, 50,192,246,173,118, 64,192, 81, 55,191,107,243, 71,191, 98,237, 42, 63, -235,163,214, 62,197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,137,136, 62,101, 7,106,191,249,249,155,190,146,218,155, 60, -179,212,184,188, 68,215,201,189, 40,244, 61,191,114,234, 70, 61,154,226, 1,191,119,139, 91, 63,202, 64,207, 61, 46,106, 89, 60, - 30, 53, 13, 61,236,222, 89, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 6, 40, 87, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,174,176, 54,191, 99,173,187,191,209, 31, 93, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,216,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,176, 71, 59,214, 55, 18,191, 67, 82,223,190,142, 2, 50, 63,235, 17,202, 61, - 51,118,199, 62,129,125, 72, 63, 86,250, 36,191, 70, 99, 90, 61,125, 38, 25, 63,101,144,129, 62,185, 1, 91, 62, 60, 67,121, 62, - 32, 77,148, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 21, 69, 35, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -238,131,100,192,222,185, 81,191, 40, 50, 27, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,217,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,167, 43, 35,190,242,210,225, 61,197, 58, 30, 63,229, 8, 67, 63,215,176,222, 61, 70, 15, 12, 63, - 80,195,165, 62,218, 72,227, 61,188, 66, 87,191,145,213,195, 62,197,146, 70, 60, 83,125, 44, 63, 64,124,156, 62,125,144, 10, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,173, 74, 64, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, 77,248,190, - 12,109,103,190,230,231,143, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,199,206,183,190,204,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,218,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 62,251,190,154,207,132, 62,191,198, 19,191,122, 82, 25,191,179,114,169,190,242, 80, 46,191,161, 92,100,189, -125,103,188, 62, 0,234, 23,191, 12,140, 22, 63, 53,173, 3, 63,187,233, 78, 62, 77,225,187, 61,203,112, 68, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 62,205, 89, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 80, 10, 64,253,130, 74,192, -124,179,109, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,219,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89,176, 71, 59,214, 55, 18,191, 67, 82,223,190,142, 2, 50, 63,235, 17,202, 61, 51,118,199, 62,129,125, 72, 63, 86,250, 36,191, - 70, 99, 90, 61,125, 38, 25, 63,215, 2,202, 60, 38,116,181, 59,240,167,204, 60,193,223,113, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 21, 69, 35, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 37, 55,192, 92, 44,210,191,134, 20, 12, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40,220,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 7, 15, 63, -135,194, 46,190, 36, 82,148, 62,185, 22, 66,191,211,135, 53, 63,111, 29,172,190,200, 68,229, 62,253,167,140, 62,181,223, 99,190, - 35,226,176,190,144,158, 50, 61, 53,247,230, 62,253, 25,236, 62,226,215, 52, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,202,199,214, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,163,152,191,233,189, 16,192,148, 29, 39, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,221,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 25,236,189,127,158, 27, 63, -123,235,239, 62, 59,108, 33, 63,244,198,103,190,251,192,187, 62,179, 39,101,190,110,210,138, 62,145,168, 54,191,208, 20, 63,190, -113,136,250, 61,109, 45, 71, 62,248,240,222, 62,108,172,125, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 2,210,109, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,219,213, 63,119,221, 77,192, 98,157, 90, 64,192, 81, 55,191,107,243, 71,191, - 98,237, 42, 63,235,163,214, 62,197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,222,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,225, 4,191,239,172, 35, 63, 92, 44, 4,191, - 88,166,112,190,229,149,176,190,233,184, 6, 63, 91,120, 44,191,208, 36, 20, 63,165, 84, 79, 63,190,145, 89, 61,154,154,192, 60, -206,233, 43, 60, 68, 13, 0, 62, 51, 72, 87, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 34,131, 32, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,118, 39,106,191,130, 29,114, 63,156,123,164, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63, -235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,223,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 97, 45, 63,119, 47,205,190, 35,117, 19, 63,166,125, 98, 62, -242,195, 73, 62,124,228,243, 62,119, 86, 11, 63, 70,156, 89, 62,230,232, 88, 63,130, 53,204,190,149, 27, 54, 63,243, 38,133, 62, -232, 55, 53, 60, 91,130,143, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 53,129,253, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 71,102,192,241,109,194,190,108, 39, 47, 64,192, 81, 55,191,107,243, 71,191,100,237, 42, 63,233,163,214, 62, -198,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,232, 58, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,216,171, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 72, 59, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, + 24, 65, 50, 3, 0, 0, 0, 0,120, 53, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,224,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,157,105,188,148, 8,184, 62,181,109, 7,191,177,194, 68,191,163, 77,220,190, - 58,120,101, 63,241,105, 25, 61, 69,197, 86, 62,214, 78,236,190,126,136, 46, 63,152,203, 22, 61,132,161, 61, 63, 67,196, 79, 62, - 79, 22,160, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,112,148, 93, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12,224,214, 63,225,182, 5,192,246, 59,136, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,225,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 46, 24,191, 41, 20, 43,191,186,184,183, 62, 42,173,136, 62, 75, 75, 50, 63, 40, 83,126, 62, -188,195, 8, 63,234,211,238, 62, 69, 36,152, 61,235,106,145, 62,211, 28,131, 62, 24,255, 46, 60, 11,165,139, 60,113, 88, 55, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 93,122, 57, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,158, 92, 63, -117,243, 67,192, 16,154, 70, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,226,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,102,175, 4,191,160,200, 50,190,248,214, 77, 63,226,194,110,190,138, 10,198, 61,210,213, 62, 62,141,163,253, 61, -106,130,160, 61,201,229,101,191,103,145, 50, 62,112, 55,104, 61, 14, 23, 9, 61,208, 82,129, 62,176, 65, 40, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 89, 81,220, 60, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,234, 31,192,204,234, 65,192, -110,200,172, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,227,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162,180, 99, 63,127,169,145, 62,114, 95,174, 62,169,121,223,189,173,190, 73, 63,118, 72, 51,190,116, 48,162,190, 59, 98,139,189, - 77,245,191, 62, 75,124,253, 61,197,252, 48, 60,163,176, 62, 62,216, 93, 72, 63, 94, 65,166, 60, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 81, 69, 12, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,122,189,191,238,243,102,191,158,253, 93, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,228,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,139,218,189, -160, 81,222,190, 75, 71,151,190, 47, 33, 88,191,152,174,128,190, 43,218,107,190, 40, 96, 66,190,219, 29,113,190, 89,240,184,190, -153, 92,204, 62,101,159,135, 62,253,216,174, 62,217, 99, 96, 62,104,171, 50, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 5, 27,207, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 75, 67, 63, 48,124, 78, 61,200,150,171, 64,190, 81, 55,191, -107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,229,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 19,190,190,188,203,147, 62, - 19,242, 2, 62,223,138, 95, 63,144, 50, 24, 60,148,174, 64, 63,196,158, 11,191,220, 22, 64, 63, 98, 35, 19,190,217, 93, 44, 62, -191,115, 58, 63,121,198, 2, 60,254,102,167, 59,178,100,132, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,189,176, 27, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 37,139, 62, 4,231, 62, 63,174,205,179, 64,188, 81, 55,191,107,243, 71,191, -102,237, 42, 63,235,163,214, 62,200,206,183,190,206,137, 61,190,156, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,230,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,220,239, 60,168,204, 46,191, 78, 95, 84, 61, - 8,105, 58,191,231,245, 43, 63, 91,254,151, 62, 77,143,206, 61,177,139, 42, 63, 26,107,196,190,150,211,139,190, 50, 23, 92, 63, -169, 27, 15, 61, 8, 43, 83, 60, 59, 83,189, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,121,221, 49, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,247,225,191, 37,175, 81,192,248,254,198, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,132,130, 62,131,166,120,190, 15,191,109,191,170,164,238, 61, - 20, 93, 78,190,245,164,231,189,254,254, 16, 62, 61,189,234,190,116,167,116,189, 67,175, 16, 63, 66,132, 2, 61,191, 37,189, 61, -173, 5, 64, 63, 91,181, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -129, 93, 2, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,110,165, 61,183, 43,239, 62,129,243,169, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,232,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173,218, 49,191,113,109, 23,191, 32, 16, 55, 62, 54,117,188,190, 25, 20,208, 62, -118,245, 46,191, 72,158,236,186, 55, 10, 97,191,140,128,183, 62,177,230,146,190, 62,109, 66, 63,244,159,170, 61, 79,150,243, 60, - 69,136, 2, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 96, 85, 48, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12,158,243,191,244,237,104,192,138, 34,155, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,233,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,155, 22, 49,191,223,232,165, 62,133,208, 6,191, 93,253,190,190,190,234,194,190,239, 89, 29,191, -134,110, 23,191, 8,217, 30,191,107,159,205,190, 18, 94,185,190,228,106, 92, 60, 23, 25, 35, 61,136,111, 93, 63,211,105,167, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,252,153,132, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 74, 8, 63, - 0,240, 1,192, 28,123,108, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,234,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217,155,104, 63,215,164, 29,190,175, 60,179,190,201,201, 43, 62,100, 60, 67, 61,171, 42, 90,189, 68, 85, 4,191, - 67,249,130, 62,230,199,133,190,149, 14,107, 63,233,242,101, 62,181,120,181, 61,231,136, 43, 62,245,241, 4, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,252,179,108, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 24,231,191, 44,105, 21,191, -186, 32, 98, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,235,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 52, 49,191,201, 9, 43, 63,166,234, 96,190,182,210, 37,190,206, 58, 54, 61,231, 1, 63, 63,133,173, 34,191, 5,154,170,190, - 93,112, 51, 63, 18, 61, 23,191, 66,189,138, 62,114,103,210, 62,117,128, 62, 62, 35, 54, 7, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 33,132,126, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 52, 5,191, 10,103, 49,192,230,154, 37, 64, -190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,236,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 96, 32, 63, -185,201,160, 62,160, 3, 6, 63, 11, 34,248,190,206, 53,185, 60,192,197,178, 61,174,184, 53, 63,223,172,162,190,109,136,224, 62, -142,173, 61,191,132, 47,184, 61,244,157,207, 61,168, 0,225, 62,249, 11,189, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,248,112,150, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 45,177,191, 22,253, 99, 63, 8, 58,155, 64,190, 81, 55,191, -109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,237,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,202, 55, 63,249,235, 89,190, -127, 18, 92,190,146,129, 32,191, 7,212, 8,190,167, 50,171,190, 97,120,123, 62,232,152,249,189,140, 18,149, 62, 37,111, 13, 61, -147,253, 28, 63,231,184,184, 62, 48, 48, 58, 60, 59, 78,111, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,115, 61, 18, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,255, 57,191,235, 4, 65,192, 77, 7, 19, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,238,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,218,133,189,116, 10,176,189,186,237, 10, 63, - 14, 61, 85, 63,182,219, 38,190,174,175,206, 62, 47,240, 10, 63, 31,232,114,190, 91,162,207,190,173, 85,193,190,228,255,128, 61, - 76, 32,172, 61,147,152, 5, 63,205,134,169, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 62, 38,212, 60, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184, 68,137,191,204,177,226, 61,196,247,141, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,133,138,146, 61,133, 75, 8,187, 28,235, 68, 62,122,141,122, 63, -116,117, 92, 63, 7,147,125,190, 87, 49,147,190, 9, 88, 41, 63, 63,255, 2, 63, 71, 44,126, 61,107,166, 0, 63, 23, 29,154, 62, - 34,214,165, 61, 42,130,236, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -241,170,103, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 22,103, 82,192, 73, 75,201,191, 1,247, 0, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,240,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231,120,168, 62,179,154, 7,191, 41,180, 48, 63,239,232,187,190, 9, 35,104,191, -222, 8,114, 62, 76,143,177,190,107, 29, 28,191,210,112,234, 62, 9,249, 92,190, 73,109,118, 59,168,155, 4, 63, 73, 2,243, 62, -186,198,108, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 74, 4,184, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -194,241,246,191, 87,130,236, 62, 50,209,135, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,241,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,124,197,223, 62, 32,243,189,190,199,213,140,190, 13,149, 69,191,221,235,199,190,159, 79,240, 62, -113,202, 14,190,186,168, 60,190, 5,145,220,190, 42, 8,148, 62, 49, 99,219, 62, 85, 73,242, 62,127, 14, 79, 61, 68,141, 67, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,157,236,192, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,228,149,189, -233, 13,221,190,210,251,145, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,199,206,183,190,204,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,242,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 19,190,190,188,203,147, 62, 19,242, 2, 62,223,138, 95, 63,144, 50, 24, 60,148,174, 64, 63,196,158, 11,191, -220, 22, 64, 63, 98, 35, 19,190,217, 93, 44, 62,198,141, 4, 63, 3, 71, 19, 62, 60,186,174, 61, 99,146,129, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,189,176, 27, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 89, 62,164,169,120,190, - 26, 78,155, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,243,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118,201, 94, 63,192,189,213, 62,142, 27, 67, 62,214, 93, 55,190, 6,154,131,190,133, 48,178,190,139, 11,192,190, 39,123,147,189, - 29,130, 57,191, 46,253, 33,190,224, 89, 24, 63,189,174,198, 61, 2,152,101, 61,143,237,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 59,122,117, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 80, 26,192,232, 3,239,189,182,210, 99, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232,244,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 16,153,190, -224, 1, 33,191, 43,253,168, 62,254, 36, 35, 63,124,255, 19,191, 70, 97,138,190,188,109, 6, 62, 64, 58,223,190,154,121,189,189, - 9,126,170, 62,115,248,126, 62, 84, 41, 12, 63,153, 55, 4, 62, 62, 85,152, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 74,244,106, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,245, 70,190,136,148, 37,192, 41,107, 57, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,245,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,246,249, 62,200,102,140, 62, -154,199, 10, 63, 40,102, 32, 63, 78, 10, 19,191,224,238,250,190, 0, 13,111,190,243,232,187, 61,106, 10, 99, 62,163, 96,221, 62, -208,237,239, 61, 10, 34,210, 61, 62,101,181, 62,205, 22,218, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 35,143, 25, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,172, 25,191, 68,234,249,191, 59,217, 73, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,246,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,109,230, 62, 67, 47,189,190,205,119,155,189, -238, 53, 79,191,223,144, 88,191, 88,163,146, 62, 63, 99,208,190,236,235,130, 62, 72, 10, 17,190,124,223, 15, 63, 12,172, 64, 62, -160, 24, 51, 62,145, 49,156, 62, 26,236,169, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,254,237, 72, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 63, 60,192,192, 70,245,191,246,177,248, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,180, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,162, 16, 63, 33,180,219,190, 24,166,177,190,234, 8, 29,191, - 24, 26, 48,190,240, 70,115,190, 0,197, 54, 63, 69,201, 75, 62, 28,174, 10,189, 81,128, 78, 63,172,109,175, 60, 7,135,214, 62, - 59, 12, 9, 63,150,154,198, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 34, 50,138, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6,125,162, 63, 63,233, 64,192,147,167, 86, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,249,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234,120, 11, 63,200, 35,253,190, 2,152,233,190, 0, 38, 0,191,214, 3, 36,191, - 3,239, 45,190,135,175, 9,191, 18,130, 42,190,156,197, 38, 63,181, 37,238,190, 4, 49,119, 61,119,251,224, 60, 94, 5, 47, 62, -188,195, 61, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 89,162,191, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, 96, 27,192,251, 23,179,191,193, 77, 38, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,250,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,177,231, 32,191,150, 89,239, 62,128,156,188,190,225, 45, 0,191,247,133,210, 62, 51,169, 40, 63, -146,184, 26, 63,209, 39,223,190,182,238, 15,191, 75, 63,146,190,166,161,213, 61,217,242,218, 62, 39, 18,191, 62, 89, 74,194, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 81,236,129, 61, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,185, 0, 21,191, -137,241, 14,192,206, 27, 61, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,251,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214, 79,213,190, 95, 19, 10, 63, 60, 25, 56,191,193,193, 10, 62,127,232, 10,190,162,126, 93,190, 25,169, 7, 63, - 38,209,221,190, 52,214,186, 62, 21, 63, 41,191, 58, 36, 27, 62,245,151, 28, 62, 82, 23,179, 62,148, 10,177, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 98,241, 41, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 80, 57,189,193, 80,166,191, -242,172,123, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,252,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,174,232, 62, 64, 99,164, 61, 41,108, 12, 63,106,126, 50,191, 66,117,124, 62,134, 54, 82, 63, 38, 55,191, 62,121,232,197,190, -188,203, 70,189, 26, 88, 51,191,199,225,170, 62,114, 67, 23, 62,202, 56, 33, 62, 26,224,184, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,216,213,138, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,202,106,219,190, 17,216,127, 63,140,251,173, 64, -190, 81, 55,191,110,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40,253,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 79,213,190, - 95, 19, 10, 63, 60, 25, 56,191,193,193, 10, 62,127,232, 10,190,162,126, 93,190, 25,169, 7, 63, 38,209,221,190, 52,214,186, 62, - 21, 63, 41,191, 10,203, 79, 63,104, 14, 32, 62,252,238, 44, 60, 55,180,175, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 98,241, 41, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 39, 91,192, 64, 81,150,191, 89, 68, 15, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,254,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,212, 0,191, 15,161, 38,191, -131,203,123,190,207, 48, 3,191,112, 6, 64, 63,137, 53, 34,190,175,202, 6,191, 66,241, 19, 62,119,105, 85,190,149,246,146, 61, - 25, 88, 25, 60, 85, 74, 25, 63,199,185,196, 62,210,179,249, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,198,223, 90, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 17, 40, 63,141, 44,153,190, 68,123,161, 64,190, 81, 55,191,107,243, 71,191, -102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,255,180, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,219, 68, 63,190, 75, 74, 62,250,129,229, 62, -198, 78,210,190, 65, 63, 59,188,173,173,214, 62, 18,159, 85, 62, 25,160,185,189,169,193, 46,191,177, 21, 77,190,202,133, 32, 63, - 25,163, 36, 61, 45,136,225, 60,133, 71,156, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 22,208,141, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 95,160, 63, 34,101,249,191,176, 96,132, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 25,236,189,127,158, 27, 63,123,235,239, 62, 59,108, 33, 63, -244,198,103,190,251,192,187, 62,179, 39,101,190,110,210,138, 62,145,168, 54,191,208, 20, 63,190, 62, 45,138, 62, 35,142, 30, 61, -173, 78,128, 61,170,246, 32, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, - 2,210,109, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111,133, 6,192,167,152,225,191, 84, 16, 32, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, +120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 57,241, 62,209,244,173, 62,202,195,188, 61,229, 10, 79, 63, 15,223, 34,191, -171, 65, 40,190,158,228, 38, 61,187,225, 12, 63,198,196, 13,189,185,253, 14,191,245,107,217, 61,253,147,174, 62,227,232,218, 62, - 70, 80, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 8,168,183, 62, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 99,228,190, 44, 59, 51,191,221, 75,133, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190, -202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 2,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52,191, 23, 63,247,209, 82, 62, 34, 21,204, 62, 21, 58, 43, 63, 1, 3,139, 61, 52,159,135, 61, - 30,117, 36,189,230,123,244, 62, 79,104,185, 62, 17, 73, 33, 63,117,208,213, 62,118,118, 76, 62, 32,254, 5, 62, 65,245,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,179,246, 4, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,101, 74,192, -166,185,105,191, 18,141, 36, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 3,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,221,157, 3, 63, 67, 81,215, 62,135, 46, 5, 63,121,108, 9,191, 37, 83, 16,190, 37,244,130,190,191, 18,216, 62, -221, 44, 53, 63,153,136,162,189, 80,138,252,190,221,214,102, 61, 50, 22, 25, 63,139, 42,157, 62,164,113, 30, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,145,208, 26, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,234,218,191, 50,177,232,191, -108,174, 42, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 4,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 98, 41, 59,191,236, 70,252, 61, 77, 96, 25,191, 33,195,154,190, 31,119,242,190,125, 79,204,190, 23, 53, 18,190,102, 31,214,190, -165,174,199,190, 48,105,169,188,229, 50, 8, 62,227,251,148, 62,133, 65,206, 62, 75, 82, 49, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 44,230, 5, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,106,206,191,205, 36,150, 62, 96, 42,137, 64, -190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 5,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,191, 23, 63, -247,209, 82, 62, 34, 21,204, 62, 21, 58, 43, 63, 1, 3,139, 61, 52,159,135, 61, 30,117, 36,189,230,123,244, 62, 79,104,185, 62, - 17, 73, 33, 63, 87, 15,231, 62, 49,237,207, 62,254, 43,141, 61,226,225,150, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,179,246, 4, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 61,167, 63,119, 5,171,191, 86,214,147, 64,190, 81, 55,191, -109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 6,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 39, 70, 63, 91,103,218,188, - 44, 24, 30, 63, 28, 81, 12, 62, 26,129, 16, 63,215,153,162, 61, 11,203, 31,191,222,132, 2, 63, 26, 4,154,190,202,112,100, 62, -216, 36,214, 62,172, 85,122, 60, 44,247,142, 60,132,140, 12, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 48, 61,115, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 14,251,191, 44,213,105,190,165,188,109, 64,190, 81, 55,191,107,243, 71,191, -100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 49, 3,191,178,133, 9, 63,104, 18, 16, 63, -159, 16,186, 62,183,147,245, 62,220, 88,111, 62,220, 25, 2, 63, 80, 44, 77,191, 76,136,152, 62,126,242,176, 61,239, 13,155, 62, - 40, 17,234, 62, 92,128, 13, 62,226,130,208, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 65,147,208, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,102, 47, 46,192, 64,212, 45, 63, 61, 35,127, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,164, 48, 63, 32,100, 38,191,163,157,157,190, 10, 78,167, 61, - 4, 8, 54, 59,139,155,147,190, 11, 41, 50, 63, 27,101,140, 62,241,237,110, 63, 18,188,179, 59, 74, 31,165, 62,207,208, 37, 63, - 74,227,141, 60, 8, 28, 76, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -129, 24, 80, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,203, 83,191,133, 15, 29,192,237, 82, 42, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 9,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,194,232,190,156,110, 35, 63,233,200, 75,190,170,158, 22,191, 83,122,193,189, -217, 58,149,189, 80, 15, 18,191, 66, 37,145,189, 98,184,219,189, 70,185, 86,191, 21,150,239, 61,130,193, 24, 62, 46, 71,217, 62, -141,114,158, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,122,231, 75, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 71,102, 63, 16, 13, 44,191, 24,187,156, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190, -201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 10,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 40, 61,190,150,196, 15,191,159,219, 54,191,234,195,191, 62,104, 96,122,190,193, 71, 74,191, - 15,230, 56,190, 61,156,203, 61,227, 39,177, 61, 25,222,193,190,178,206, 13, 63,144,101,237, 60, 16,227,198, 60, 16, 30,201, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 74,137,189, 61, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,210,252, 62, -216, 58, 44,191, 98,217,149, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 11,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86,152, 38, 63,169,225, 17,191, 57,217,140,189, 67,124,254,190, 13, 65, 17, 62,229,204, 15, 63,180,148,241, 62, -175,210, 73,191,182,161, 21, 63,186,222,169,188,235,174, 4, 63,125,216,156, 61,114,228,115, 61,124,239,176, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 86,104,165, 61, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,210, 46,192, 59, 4,135,191, -164, 99, 44, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 12,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 97, 45, 63,119, 47,205,190, 35,117, 19, 63,166,125, 98, 62,242,195, 73, 62,124,228,243, 62,119, 86, 11, 63, 70,156, 89, 62, -230,232, 88, 63,130, 53,204,190,154, 69,201, 61, 74,143, 3, 63,155, 10,162, 62,186, 21,146, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 53,129,253, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,235, 64, 60,203,210,147, 63,205, 32,185, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168, 13,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,137,136, 62, -101, 7,106,191,249,249,155,190,146,218,155, 60,179,212,184,188, 68,215,201,189, 40,244, 61,191,114,234, 70, 61,154,226, 1,191, -119,139, 91, 63,135,168,109, 63, 87, 44,112, 61,106, 72,115, 59,214, 90, 24, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 6, 40, 87, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,185, 0,192,197,235, 38,192,182,221,245, 63,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 14,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 54,241, 62, 25, 75, 60,190, -137, 31,166,190, 26,162, 76, 63,214, 23,180, 62,134, 28, 22,191,189,125,184, 62,170,143, 49, 63, 42,100,208, 62,201,182, 12, 63, - 85,123,103, 61,230, 65, 90, 62, 33,215, 29, 63,124, 5,233, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,233, 6, 78, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,132,118,247,191, 87, 66, 8,192, 93, 88, 20, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 15,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,183,149,157, 62,169,241,150, 62,210, 72, 5, 63, -196, 98, 61,191, 94, 43,103,191,141,249, 13, 62,108, 40, 28,190,180,143, 89,189,159,169,180, 62, 50,210,102, 63, 15,245,186, 61, -252,211,140, 62,237,184,252, 62,164,107, 15, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,234, 53,126, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,252, 2,190,189, 32, 63,192,249,176, 40, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63, -235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 16,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,185,185, 62, 69, 55,133,190, 76,101,246, 62,146, 32, 65,191, - 11,142, 47,190,207,240, 16,191,178, 47,250, 60,147, 12,135, 62,250,130,192,190,182,224, 63, 63,109,251,141, 61,209, 15,135, 61, -152,122,212, 62,150, 66,230, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -194, 22,201, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,186, 37, 60,192,209, 36, 19,192,200,102,212, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 17,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,133,116,253,190,160,178, 23, 63,114, 78, 32,191, 57, 97,221, 61,191,244,236,189, -206, 56,214, 62, 77,142, 40,191, 31, 48,161, 61, 82, 95, 7, 63,244, 70, 62,190,144,146,141, 59, 24,189,182, 62, 12, 24, 34, 63, -242, 33,183, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 51, 4, 90, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62,165,155, 63, 35,188,200,191,156,201,140, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 18,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,198,205, 62, 50, 21, 99, 63, 18,246, 86,190,237, 24,178,189,229,177, 74, 62,233, 94,174,190, - 14,113, 17,189,144,148,211, 62,157,182, 80,190, 18,214, 66,191, 54,112,182, 62,156,202, 2, 61, 65,146, 40, 61, 24, 18, 18, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,229, 84,124, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 48, 1, 63, -133, 14,211, 62,120,209,175, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 19,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0,181, 60,183, 21, 39, 63,174, 28, 42,191,206,254,185, 62, 60,101,180, 61,224,164,162, 62,169, 22, 78,191, - 15,164,146,190, 66, 47,188, 62,233,255, 63,191, 26, 61, 76, 63,214,234,171, 60,230,187, 47, 60,126,146, 46, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,113,195, 41, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,144, 98, 62, 62,190,112,191, -153,224,138, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 20,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 80,148,190, 17,138, 5, 63,171, 16, 38, 62,107, 50, 73,191,214,126, 32, 63,143, 14,148, 62,183, 31, 4,191, 70,152,145, 62, - 21, 32, 89,189, 63,239,100, 62, 51,212,220, 62, 49, 96,238, 61, 1,246,205, 61, 64, 22,180, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,247, 33, 76, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,243, 2,192, 18, 84, 91,191,110, 0, 77, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 21,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,146, 69,191, -236,123, 69,190,179,188, 26,191,207,182, 47,189, 96, 14,105,191, 55,120, 31,190,138, 41, 18, 62,210, 73,183,189,105, 99, 57,189, - 32,155,137,190,112,143, 79, 62, 13, 36,220, 62,207,171,119, 62,168,124, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,184,151,199, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 81, 34, 62,178, 55, 39,192, 87, 36, 68, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 22,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230,148, 3, 63,224, 68,239, 62, - 72, 64,241, 62, 71, 35, 11,191,248,202, 31,191, 68, 98,182, 62, 18,127, 48,191,158,108, 26,189,145, 93,173,190,161,155, 16,191, -144, 72,244, 61,152, 98,173, 61, 16,243,154, 62, 38,162,252, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63, 69,111,245, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,206,132,191,153,157,254,191, 61, 78, 57, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 23,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 64,217, 62,151, 24,213,190, 94,174,187, 61, -102,136, 76, 63, 27, 1, 32, 63,236, 95,162,189,124, 18, 29,191, 75, 78,155,190,124,134, 43,191,174,202,184,190, 49,138, 35, 62, -237,209, 85, 62,126, 75,186, 62,113, 6,137, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,111,100, 76, 61, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228,163,237, 62, 55, 20, 58,192, 9,122, 64, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 95, 55,189, 43, 21,181,190,230, 3,101,191, 87,248,137, 62, - 4,208, 75, 62, 0,115,115, 59,100,196, 95,190,191, 15, 83, 62, 84,222, 81,191, 36, 58,169, 62,187,215,163, 61, 90,207, 92, 61, -188,248,152, 62,182, 59, 17, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -230,119,112, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,202, 59,148,191,188,242, 56,191,189,111,113, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, +184, 64, 50, 3, 0, 0, 0, 0,104, 80, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 16,173, 34, 66,220,133, 63,192, +216,147,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65, +178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,210, 83,251,192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99,102,182,178,159, 34,193, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65, + 98, 99,102,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 16,173, 34, 66, +220,133, 63,192,216,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, + 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 14,179,230,126,201, 61, 0, 0, 0,176, 0, 0, 0, 0,231,126,201,189, +153,186, 14,179, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,221,190,150,190, +133, 10,128,192,227,178, 52,190, 0, 0,128, 63, 0, 0, 24,179,232,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 51, 57,255,177, +106,201, 52,167,232,126,201, 61, 0, 0, 0, 0,231,126,201, 61,154,186, 14, 51,163,222,251, 49, 0, 0, 0, 0,169,196, 46, 63, +223, 18,128,192, 64, 84, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, + 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, + 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 26,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 21,192, 61,216, 22, 8, 63,188, 84, 66, 63,158, 70,186, 62,240,211, 98, 62, -124, 7,155, 62, 10,134,246, 62,110, 16, 79,190,248,197,252,189, 81,188, 39, 63, 42,204,169, 62,204,195,154, 62,146,225, 51, 62, -125,254, 66, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,123, 26, 81, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34,179,252,191, 86,102,184,191,169,174, 51, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 27,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 50,144,190,207, 31, 50,191,179,203, 40,191,214, 99, 45,189,109,153, 34,190,239, 94, 10,191, -115,186,212,190, 42,234, 19,190, 72, 26, 97,191,122,105, 99, 61, 46,210, 21, 62,250, 32,186, 62,195,126,178, 62, 85,238, 16, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,131,240,124, 60, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,244, 77,192, - 51, 52,163,190, 30,234, 62, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190, -157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 28,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 41,112, 63, 56,166,164, 61, 91, 4,240, 61, 15,172,161, 62,106,126,191,190,117, 33, 64, 63,130,227,184, 62, - 92, 20,244,190,210,168,180,189, 60, 25, 43,191, 89,246,198, 61, 30,130, 46, 63,223,241, 54, 62,221, 41, 46, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,190,196,107, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 27,122, 63,179,229,133,191, - 66, 39,149, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 29,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 46, 24,191, 41, 20, 43,191,186,184,183, 62, 42,173,136, 62, 75, 75, 50, 63, 40, 83,126, 62,188,195, 8, 63,234,211,238, 62, - 69, 36,152, 61,235,106,145, 62,216, 4,239, 62,235,100, 21, 61,174, 73, 20, 61, 83,197,235, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 93,122, 57, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 66,151,191,208,139, 62,192, 98,118, 5, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 30,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,160, 32,190, -190, 39, 52,191,142,138, 9,191,138, 13,224, 62,166,218,242, 62, 93, 71, 26, 63, 36, 22, 52, 62,231, 52,124, 62,165, 91,192,190, -148,111, 86,191,212,101,120, 61, 72, 26,221, 61,158, 82, 22, 63,241, 14,122, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,195, 96, 22, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 63, 46,190,222,105,107,191,198,191,132, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 31,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,202, 55, 63,249,235, 89,190, -127, 18, 92,190,146,129, 32,191, 7,212, 8,190,167, 50,171,190, 97,120,123, 62,232,152,249,189,140, 18,149, 62, 37,111, 13, 61, - 89,238,204, 62, 10, 90, 39, 62,123,156, 6, 62, 98, 22,156, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,115, 61, 18, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,148,234,190, 11,179, 97,192, 16,215, 3, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 32,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,227,248,190,160,134,192,190,155,159,184, 62, -105,157, 51, 63, 2, 56, 54, 63, 88,126,182, 62,108,207, 4,187, 38,216,198, 62,140, 66, 73,191,139,126,248, 61,251, 26,119, 60, - 34,207,150, 60,170,176, 20, 63,225,120,197, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,208,234,216, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,202,177,135,191,150,220, 86,192,144, 9,239, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 33,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,122, 18,191,155, 68,163,190,236, 36, 39,191,221,182,194,190, -217, 47, 98,190, 97, 46,230,190,197,236,134, 62,216, 40,187, 60,111, 92,179,189, 71, 17, 54, 63, 87,169, 5, 61,120,116, 92, 61, -179,253, 38, 63,225,192,133, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -100, 58,154, 60, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,213,105,108,192,125,145,223, 62,192,182, 82, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, -198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 34,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,244, 32,190,174,189,218,190,163, 11, 55, 62,157, 75, 95,191, 33,155,243,190, -180, 86, 90,191, 57,237, 86, 62,226,198,126,190, 30, 34,101, 61, 93,239,180,190,206, 82,204, 61, 44,113, 89, 63, 63, 63, 23, 61, -220, 33,100, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 6, 63, 50, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 23,243, 62, 46,133,166,191, 78,153,134, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190, -202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 35,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,173,218, 49,191,113,109, 23,191, 32, 16, 55, 62, 54,117,188,190, 25, 20,208, 62,118,245, 46,191, - 72,158,236,186, 55, 10, 97,191,140,128,183, 62,177,230,146,190,159, 2,190, 62, 29,141,193, 61,214, 93,214, 61,164, 2,220, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 96, 85, 48, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,192,214,190, -182, 57, 73,192,175, 83, 23, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 36,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,206,172, 34,191, 64, 79,187, 62,140,197, 11, 62,199,135, 42, 63,100, 91,148, 61,123, 75, 25, 60, 54,126,232,189, -210,190,220,189, 9,158,186, 62,182, 62,225,190,211,103, 84, 61, 92,194,115, 61,148,216,253, 62, 41, 34,201, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 38,103,162, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 4,133,192,109,136,128, 62, -136, 58, 58, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 37,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147,206,137, 62,234,207, 11, 63,195,144,225, 62,162,225, 40, 63, 24, 69,148,190, 50,238,190, 61, 13, 31, 86,191,217,106, 71, 63, -247, 60, 1, 62,162,250,136, 62, 70, 80,156, 58,142,100,108, 63, 15, 72,153, 61,116, 35, 17, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,174,199, 41, 60, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 40, 12, 62,102, 32, 1,192,222,178, 95, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 38,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 57, 95, 63, -238,148,214, 62, 87,249,109, 62,227,220,204,189,238,118,221,189,121,162, 19,191,203, 50, 48,191, 58,232, 80,190,141,100, 8,191, -229,142, 19, 63,223,196, 88, 62,134, 94,237, 61,141, 5, 97, 62, 43,195,231, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 75, 11, 15, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,109, 80, 63, 96,210, 20,192,246,253,103, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 39,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 32,133, 62, 13,201,189,190, - 55, 43, 66, 63, 76,254,239, 62,254,163,179, 62, 15,181,171,188,130, 8,196, 60,214, 27, 14,191, 86, 32,128,190,190, 27,208,190, - 69,196, 53, 62,136,184,135, 61,240,250, 35, 62, 34,153, 24, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,224, 93,234, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,142,147,191, 43, 7,166,190, 61, 69,130, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 40,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,246,249, 62,200,102,140, 62,154,199, 10, 63, - 40,102, 32, 63, 78, 10, 19,191,224,238,250,190, 0, 13,111,190,243,232,187, 61,106, 10, 99, 62,163, 96,221, 62, 56,243,206, 62, -109,170,159, 62,224,145, 2, 62,211, 50, 32, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63, 35,143, 25, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2,254, 89,191,195,197, 85,192,176,197,254, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 41,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,125,204, 62, 37, 10, 46, 63, 69, 71, 26,190,130,168, 24, 63, -117,105, 36,190,144,220, 32, 63, 11,167,231, 62,151,145,179, 62, 33, 72, 36,190, 42, 67, 50,191,111, 3, 11, 61,241, 2, 76, 61, -231,181, 28, 63,103,179,155, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -244,186,188, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 46,253,191,200,126,214, 61,248, 1,125, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, -197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 42,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,218,181,190,162,100, 80, 63, 86, 18,175,190,142, 51,157,190, 18, 35, 4,191, -207,113,210, 62, 0,170, 11, 63,134,126,165,190,141, 47, 59, 62,104,163, 62,191, 18,251,181, 62,225,163,242, 62, 90, 98,191, 61, -220, 33,158, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 83, 76,104, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 18, 94,192,112, 61, 49, 61, 90,153, 71, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190, -202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 43,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 41,112, 63, 56,166,164, 61, 91, 4,240, 61, 15,172,161, 62,106,126,191,190,117, 33, 64, 63, -130,227,184, 62, 92, 20,244,190,210,168,180,189, 60, 25, 43,191,141,188,190, 61,118,157, 68, 63,105,119,224, 61,112,129,239, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,190,196,107, 62, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 34,141,191, -222,140, 39,192,182, 55, 25, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 44,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,193, 40, 85, 63,120, 79,146,190, 68,249,203,190,207,217,131, 62,229, 65, 22, 63,120,104, 63, 63,173,135,124,189, -131,179,190,190,208, 81,171, 62,211,132, 69, 63,122, 6,189, 61, 58,195, 23, 62, 6,114,254, 62,189,106,134, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,179,102, 20, 63, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 14, 63,192, 64,204,165,191, - 12, 96, 24, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 45,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 81, 30,191,157, 39,223, 62,214, 30, 11, 63, 76, 51,186, 62,206,228, 83, 62,209,146, 0, 61, 22,106,121, 63, 44,124, 6,187, -128,233, 71,187,218,190,173, 62, 14, 67, 83, 61,192,186, 4, 63, 39,206,197, 62,178,159, 50, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,208, 19, 52, 60, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,183,180, 22,192,126,173, 4,192,240,189, 8, 64, -190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168, 46,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 59, 20,191, - 30, 36, 17, 63,112, 57,252,190, 32,101,162, 62,139, 6,160, 62, 57,160, 80, 61,109,243,245, 61, 41, 18,224,190,182,154,227,188, -238,196,139,190,133, 49,131, 61,130, 33,167, 62,160,225, 5, 63,124, 59,177, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 20,166, 56, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,160, 97, 63,129,220,163,191,194,248,141, 64,190, 81, 55,191, -109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 47,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,183,149,157, 62,169,241,150, 62, -210, 72, 5, 63,196, 98, 61,191, 94, 43,103,191,141,249, 13, 62,108, 40, 28,190,180,143, 89,189,159,169,180, 62, 50,210,102, 63, - 78,174,206, 62, 68,159, 93, 61,160, 84,118, 61, 54,211,246, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0,128, 63,234, 53,126, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,223, 18,192,155,169,140,191,151, 18, 57, 64,190, 81, 55,191,109,243, 71,191, -100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 48,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 63, 44, 63,134,104,136, 62, 44,117, 32, 63, -178,227,147,190,254, 77, 90, 63, 0,117,175,190,119, 69,167, 62,238, 73,138, 61, 58,211,189, 62,210, 28, 37,191,245, 96, 21, 62, - 35,104,227, 62, 83, 62,154, 62, 64,164,222, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0,128, 63,130, 27,151, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100,193,179,191,251,111, 78,192,166, 64,228, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63, -234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 49,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,101, 4,191,237, 90, 0, 63,104,125,239,190,131, 31, 3, 63, -200,160,212,190,115,217, 27, 63, 55,189, 6,190,131,223, 22,190, 4,241,223,190, 4, 70, 0,190, 37,242, 35, 61,204,214,171, 61, -175, 25, 46, 63, 82,177, 72, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, -184,249,202, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 90,124,191,113, 48,212,191, 56,208, 74, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, -200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 50,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 25,236,189,127,158, 27, 63,123,235,239, 62, 59,108, 33, 63,244,198,103,190, -251,192,187, 62,179, 39,101,190,110,210,138, 62,145,168, 54,191,208, 20, 63,190,187,178, 81, 62,176, 57,108, 62, 93,177,153, 62, -108, 88,135, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 2,210,109, 63, - 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -251,231, 33,192,132, 2, 59,191, 78,162, 66, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190, -199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 51,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 46, 24,191, 41, 20, 43,191,186,184,183, 62, 42,173,136, 62, 75, 75, 50, 63, 40, 83,126, 62, -188,195, 8, 63,234,211,238, 62, 69, 36,152, 61,235,106,145, 62,217, 15, 30, 62,227,209, 4, 63,178,148,117, 62,218, 39,178, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 93,122, 57, 63, 0, 0, 0, 0, -255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,185,138, 63, -191,128, 41,192,139,193, 97, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190, -158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 52,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,231,120,168, 62,179,154, 7,191, 41,180, 48, 63,239,232,187,190, 9, 35,104,191,222, 8,114, 62, 76,143,177,190, -107, 29, 28,191,210,112,234, 62, 9,249, 92,190, 0,196,250, 61, 79,120, 62, 61,195, 12, 31, 62,202,252, 44, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 74, 4,184, 62, 0, 0, 0, 0,255,255,255,255, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,242, 63,243,190, 86,176,159,191, -245,150,111, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 53,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, 26, 58,191, 1, 70,159, 62,113,111, 2, 63,235,187,173,190,116, 51,237, 62,130, 53,247, 62,243,199, 26,190,235, 88,172,189, -118,115,244, 62, 34,147, 5,191,217, 77,158, 62, 43,131, 72, 62,119,208, 68, 62, 86, 8,155, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63,253,152,110, 63, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,178, 48,191,138, 39, 52, 62, 39,252,149, 64, -190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 54,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,167,210,190, -194,172,139, 62,250,220, 35, 63, 30,182, 22,191,122, 3,136, 61,109,164,176,190, 30,153,147,190,255,248, 10,188,234, 90,160,190, - 89,241,205,190, 62, 71, 19, 63,111,215,107, 62, 63, 71,138, 61,243,231, 1, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0,128, 63, 37,227, 77, 62, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 64,157,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, - 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, -231, 84,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 15, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 72,158,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, -255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, - 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, - 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, - 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,185,177,216, 63, - 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 80,159,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, 63,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,251,223,124, 61, -125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 59,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 88,160,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186, -255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,255,223,124, 60,186, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,255, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,199, 84,145,188, 15,224,124, 61,123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, - 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 15, 62, 14, 62,163,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0,255, 84,145,189, 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 96,161,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,243, 61, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188,251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -180,127, 35,189, 8, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,142,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,162,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,200,126, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,135, 84,145,188, - 7,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0,251,137, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,231, 84,145,189, - 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,112,163,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62, -165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,120,164,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, -247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,251,223,124, 61,125,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 8, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -142,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128,165,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 18,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,152,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 31, 85,145,189, 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -136,166,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,223, 84,145,187, -255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,132,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, - 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,252, 84,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, - 0, 0, 0, 0,207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,169,127, 35,189, - 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 50,138, 94,189,147,155, 65, 62,185,177,216, 63, - 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,144,167,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,143,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,250, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 4,224,124, 61, -124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 43,138, 94,189,146,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 26,224,124, 62, -140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,152,168,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186, -255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 85,145,187,255,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, - 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 11, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,160,169,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61, -221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,239,223,124, 61,127,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,135,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,170,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 84,145,186,239,223,124, 59, 58,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,120,127, 35,188, 2, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, - 17,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,165,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 48,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, - 28,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176,171,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, - 43, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62, -165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,186,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,184,172,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, - 3, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 17,224,124, 61,125,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 53,138, 94,189, -148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, 29,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,192,173,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 71, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -200,174,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, -255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, - 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, - 0, 0, 0, 0,219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, - 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, - 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,208,175,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,247,223,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 59,138, 94,189,138,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216,176,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, -255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, - 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 11, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,224,177,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 71, 85,145,187,223,223,124, 60,189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61, -221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 7,224,124, 61,127,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,178,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, - 7,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 82, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 43,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, - 25,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,240,179,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, -135, 84,145,186, 63,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 55,224,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 17, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 30,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -203, 20,227,188, 24,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 18, 62, 14, 62, -163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 55,138, 94,189,155,155, 65, 62,183,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 36,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,248,180,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, -239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189, -139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 0,182,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 39, 85,145,188, 15,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, - 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 31, 85,145,189, 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 8,183,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 0, 0, 0,184, 64, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,104, 80, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 24, 65, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,232, 70, 50, 3, + 0, 0, 0, 0, 72, 59, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104, +101, 99,107,101,114,115, 46, 48, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,117, 53, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 70, 50, 3, + 0, 0, 0, 0, 56,220, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 77,145, 34,194,220,133, 63,192,216,147,229, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65, +177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,203,150,192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,102, 36, 2, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34,193,102, 36, 2, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 77,145, 34,194,220,133, 63,192, +216,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,192, 48,231,126,201,189, 0, 0, 0,176, 0, 0, 0, 0,231,126,201, 61, 0, 64,161, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0, 12,191,150, 62, 88,233,127,192, +228,178, 52,190, 0, 0,128, 63, 0, 0, 0, 49,231,126,201,189, 0, 0, 0, 0, 0, 0, 0, 0, 51, 57,255, 49, 23, 63,204, 36, +232,126,201, 61, 0, 0, 0, 0,231,126,201,189, 1, 64,161,176,162,222,251, 49, 0, 0, 0, 0,145,196, 46,191,164,216,127,192, + 63, 84, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, +169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0,136, 70, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 56,220, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0,232, 70, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 88, 76, 50, 3, 0, 0, 0, 0, + 24, 65, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,216, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170, 77,152, 65,248,108, 90,191, 90,202,168,191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, + 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,170, 77,152, 65,248,108, 90,191, 90,202,168,191, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63,220, 19,149,176,206,185,149,179, 0, 0, 0, 0,101, 61, 84, 51, 1, 0,128, 63, 45,173,146, 51, + 0, 0, 0, 0,180,106, 15, 51, 67, 91, 19,178, 0, 0,128, 63, 0, 0, 0, 0,229,162, 50, 53,251, 88,214, 52,187,255,179, 53, + 0, 0,128, 63,138,247,255, 62,164, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 35, 39, 74, 63, 24, 67,194, 61,217, 45, 27,191, + 0, 0, 0, 0,137, 26,182, 62,176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0,214,255, 5,193,149,139, 93, 65, 72,106, 34,193, + 0, 0,128, 63,136,247,255, 62,164, 21, 44,191,250,203, 11, 63, 0, 0, 0, 0,139, 26,182, 62,175,248, 59, 63, 46, 7, 20, 63, + 0, 0, 0, 0, 36, 39, 74,191, 24, 67,194,189,218, 45, 27, 63, 0, 0, 0, 0, 4, 80,121,193,162,189, 99, 65, 13, 24, 70,192, + 0, 0,128, 63, 30, 4, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, + 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, + 88, 76, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,200, 81, 50, 3, 0, 0, 0, 0,232, 70, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,220, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, + 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63, +217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 12, 73,149, 51,183,223, 34,179, 0, 0, 0, 0,180, 66, 41, 50, 0, 0,128, 63,176, 27,138, 49, 0, 0, 0, 0,201, 75, 13, 50, + 76, 10,177, 50, 1, 0,128, 63, 0, 0, 0, 0, 41,189, 56,179,113,162,231,180, 67,151,100,180, 0, 0,128, 63,135,247,255, 62, +164, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 37, 39, 74, 63, 28, 67,194, 61,217, 45, 27,191, 0, 0, 0, 0,136, 26,182, 62, +175,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0,172,234,158, 65, 79,243, 2, 63,195,120, 71, 64, 0, 0,128, 63,138,247,255, 62, +165, 21, 44,191,251,203, 11, 63, 0, 0, 0, 0,140, 26,182, 62,176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0, 35, 39, 74,191, + 17, 67,194,189,217, 45, 27, 63, 0, 0, 0, 0, 41,133, 74, 65, 29, 20,102, 63,115,194, 34, 65, 0, 0,128, 63, 30, 4, 0, 0, + 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, +236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,200, 81, 50, 3, 0, 0, 0, 0, +116, 0, 0, 0, 1, 0, 0, 0, 56, 87, 50, 3, 0, 0, 0, 0, 88, 76, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,232, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +111, 56,183,192, 61, 86, 90,193,242,190, 40, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,143,104,191, + 93, 33, 11,191,232, 45, 17, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,194, 12,191, 1,236, 39, 63,180, 97, 4, 63, + 0, 0, 0, 0, 37,182, 59,191,170, 20,169,189, 65,200, 44,191, 0, 0, 0, 0, 11,208,204,190, 93, 18, 64,191,215,191, 6, 63, + 0, 0, 0, 0,111, 56,183,192, 61, 86, 90,193,242,190, 40, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,238,165, 47,180,227,129, 13, 50, + 0, 0, 0, 0,163, 29,131,178, 1, 0,128, 63, 76,221,150,177, 0, 0, 0, 0, 14, 36, 14,179,106,112,163, 48, 0, 0,128, 63, + 0, 0, 0, 0,255,187,156,179, 91, 51,158,181,179,247,156,180, 0, 0,128, 63,132,194, 12,191, 36,182, 59,191, 15,208,204,190, + 0, 0, 0, 0, 0,236, 39, 63,171, 20,169,189, 92, 18, 64,191, 0, 0, 0, 0,180, 97, 4, 63, 65,200, 44,191,215,191, 6, 63, + 0, 0, 0, 0,124,180,178, 62,111,139,229, 63, 27,164,144,193, 0, 0,128, 63,133,194, 12,191, 38,182, 59,191, 7,208,204,190, + 0, 0, 0, 0,181, 97, 4, 63, 66,200, 44,191,214,191, 6, 63, 0, 0, 0, 0,255,235, 39,191,164, 20,169, 61, 92, 18, 64, 63, + 0, 0, 0, 0,133, 79,167,192, 33,228,179, 63, 21,212, 26,193, 0, 0,128, 63, 30, 4, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, + 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, +143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 56, 87, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, +168, 92, 50, 3, 0, 0, 0, 0,200, 81, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 76, 97,109,112, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,224, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,147,104, 64, 42, 84, 23,193, +116, 77,171, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, + 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,176,147,104, 64, + 42, 84, 23,193,116, 77,171, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,197,201, 17,180, 99,220,102, 50, 0, 0, 0, 0,123,165,191, 50, +254,255,127, 63, 10,194,140, 50, 0, 0, 0, 0, 41,160,180,178, 91,103, 73, 50,254,255,127, 63, 0, 0, 0, 0,254,255,127, 52, +254,255,127,181,253,255,255, 52, 0, 0,128, 63,141,247,255, 62,165, 21, 44,191,250,203, 11, 63, 0, 0, 0, 0, 38, 39, 74, 63, + 28, 67,194, 61,218, 45, 27,191, 0, 0, 0, 0,138, 26,182, 62,176,248, 59, 63, 47, 7, 20, 63, 0, 0, 0, 0, 97,221,111, 64, +113, 57, 23,191, 59, 2, 45,193, 0, 0,128, 63,137,247,255, 62,165, 21, 44,191,251,203, 11, 63, 0, 0, 0, 0,142, 26,182, 62, +176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0, 37, 39, 74,191, 20, 67,194,189,217, 45, 27, 63, 0, 0, 0, 0, 91, 99, 93,192, +135, 98, 80,190,223,119,112,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, + 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, + 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0,168, 92, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 24, 98, 50, 3, 0, 0, 0, 0, + 56, 87, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, + 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,228, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,147,251,192,206, 0, 24,193, 67,131,104,192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, + 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,249,147,251,192,206, 0, 24,193, 67,131,104,192, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,254,255,127, 63, 55,105,222, 50,186,168, 17, 51, 0, 0, 0, 0,243,228, 47,178, 0, 0,128, 63, 81, 76,155,178, + 0, 0, 0, 0,170,191, 22, 50,214, 89, 50, 51,254,255,127, 63, 0, 0, 0, 0,254,255,127,181, 0, 0,128,181, 35, 5,136,168, + 0, 0,128, 63,137,247,255, 62,166, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 38, 39, 74, 63, 28, 67,194, 61,217, 45, 27,191, + 0, 0, 0, 0,137, 26,182, 62,176,248, 59, 63, 47, 7, 20, 63, 0, 0, 0, 0,121,151, 75, 65,207,166,219,191,181,156, 34, 63, + 0, 0,128, 63,140,247,255, 62,165, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0,140, 26,182, 62,176,248, 59, 63, 45, 7, 20, 63, + 0, 0, 0, 0, 36, 39, 74,191, 22, 67,194,189,218, 45, 27, 63, 0, 0, 0, 0,148,142,176, 64, 97, 22,170,191, 27, 28,246, 64, + 0, 0,128, 63, 1, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, + 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, + 24, 98, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,136,103, 50, 3, 0, 0, 0, 0,168, 92, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,236, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,218, 15,201, 63, 0, 0,128, 37,255,255,127, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +255,255,127, 37, 0, 0,128,165, 0, 0, 0, 0,255,255,127, 37,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 37, + 0, 0,128,191,105, 33,162, 51, 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63, + 44,197,107, 53, 4,147, 81,180, 0, 0, 0, 0,253,255,127, 37, 0, 0,128, 63, 64, 90,136, 48, 0, 0, 0, 0,254,255,127,165, + 44,197,107,155, 0, 0,128, 63, 0, 0, 0, 0,254,255,255, 51,255,255,255,181,254,255,127, 52, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,165, 0, 0,128, 63,255,255,255, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 32,159,189,191, 47,164,188,191,150,188,153,192, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,165, 0, 0,128, 63,255,255,255, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 32,159,189,191, 47,164,188,191,150,188,153,192, 0, 0,128, 63, 32, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, +236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,136,103, 50, 3, 0, 0, 0, 0, +116, 0, 0, 0, 1, 0, 0, 0,152,109, 50, 3, 0, 0, 0, 0, 24, 98, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,192, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,108, 50, 3, 0, 0, 0, 0, 72,109, 50, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, +100, 82, 7,189, 21,204,103,191,241,165,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153, 39,155, 64,153, 39,155, 64,153, 39,155, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, + 0, 0,192, 37,255,255,255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,152, 39, 27, 38,102,187,232,166, + 0, 0, 0, 0,102,187,232, 38,157,134,196, 52,153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38,153, 39,155,192,157,134,196, 52, + 0, 0, 0, 0,100, 82, 7,189, 21,204,103,191,241,165,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,236, 48,206,152, 9, 66, 41, 24, + 0, 0, 0, 0,216, 55, 60,152, 0, 0,128, 63, 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, 64,218, 93, 38, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 26, 50,211, 35, + 0, 0, 0, 0, 24, 50,211, 35, 68,193,133, 50, 25, 50, 83,190, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62, 68,193,133, 50, + 0, 0, 0, 0,199, 70,223, 59,232, 71,190,190,148, 58, 63,190, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 27, 50,211, 35, + 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175, 25, 50, 83, 62, + 0, 0, 0, 0,135, 62,153, 59,217, 94,110,185,118, 71,238, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, +143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 4, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,248,108, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 72,109, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,152,109, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 88,116, 50, 3, + 0, 0, 0, 0,136,103, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114, +101,118,105,101,119, 46, 48, 48, 50, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,104, 52, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,115, 50, 3, 0, 0, 0, 0,168,115, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,115, 50, 3, + 0, 0, 0, 0, 88,115, 50, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,242,187,213,191,194,145,134, 63,254,100, 35, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 0, 28, 65,246, 0, 28, 65, +243, 0, 28, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,110,135, 63,180,169, 59, 62,138,115, 1,191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,198, 49, 6, 65,115,154,148,192, 3,113,227,191, 0, 0, 0, 0,159,250,106, 64,189,207, 91, 64, + 80,170, 5, 65, 0, 0, 0, 0, 46,151, 86,192,125, 94,251,192,188,127,150, 64, 0, 0, 0, 0,242,187,213,191,194,145,134, 63, +254,100, 35, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,220,198, 33,177, 33, 91, 79,179, 0, 0, 0, 0,132, 62,152, 49, 0, 0,128, 63, + 52,168,172, 50, 0, 0, 0, 0, 31, 6, 96,177,234,190, 21, 51, 0, 0,128, 63, 0, 0, 0, 0,212, 90,228, 50,171,224,143,179, +223, 27,189,175, 0, 0,128, 63,144,174,180, 61,160, 48, 30, 61,223,118, 16,189, 0, 0, 0, 0,164, 29,153,188, 38,248,179, 61, +113,162, 74, 61, 0, 0, 0, 0, 15, 21, 72, 61,160,250, 19,189, 88, 57,169, 61, 0, 0, 0, 0, 4,107, 50, 63, 88, 46,204,190, +177,206, 79, 63, 0, 0,128, 63,144,174,180, 61,160, 48, 30, 61,223,118, 16,189, 0, 0, 0, 0,164, 29,153,188, 38,248,179, 61, +113,162, 74, 61, 0, 0, 0, 0, 15, 21, 72, 61,160,250, 19,189, 88, 57,169, 61, 0, 0, 0, 0, 4,107, 50, 63, 88, 46,204,190, +177,206, 79, 63, 0, 0,128, 63, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, +169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 8, 0, 0, 0, 8,115, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 4, 0, 0, 0, 88,115, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0, +168,115, 50, 3, 0, 0, 0, 0, 74, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,117, 98,115,117,114,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, + 88,116, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,104,122, 50, 3, 0, 0, 0, 0,152,109, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,168, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,135, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,121, 50, 3, 0, 0, 0, 0, 24,122, 50, 3, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 56,135, 72, 63, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 57,135,200, 47, + 57,135,200,178, 1, 0,128, 63, 0, 0, 0, 0,180,192,175,176, 32,132,146, 51,193, 40, 10,179, 0, 0,128, 63,144,104,163, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, + 0, 0, 0, 51,143,104,163, 63, 0, 0, 0, 0,203, 15, 2, 60,184, 77, 93,191, 54, 50, 19,192, 0, 0,128, 63,144,104,163, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 34,252,250,206, 51,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0, +144,104,163,191, 0, 64,204, 51, 0, 0, 0, 0,105, 93,173,187,172,176, 88,193, 95, 52,118,186, 0, 0,128, 63, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, +236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,153, 3, 3, 0, 0, 0, 0, +248,160, 3, 3, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,200,121, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24,122, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,104,122, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0,120,128, 50, 3, 0, 0, 0, 0, 88,116, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,135, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,127, 50, 3, 0, 0, 0, 0, 40,128, 50, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 31, 10, 58, + 59, 94,236, 63,236, 84,231, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91,188,110, 63, 91,188,110, 63, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0, 0,128, + 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 90, 50,151, 51, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110,191, 90, 50,151, 51, 0, 0, 0, 0, + 0, 31, 10, 58, 59, 94,236, 63,236, 84,231, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,254,255,127, 63,226, 53, 25,179, 0, 0, 0, 0, 0, 0, 0, 0,167,120,247,166, 1, 0,128, 63, 0, 0, 0, 0, +183,132, 39,174,239,106,181,179,116,226,155,179, 0, 0,128, 63,160, 65,137, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 65,137, 63,157, 46, 19, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,176,161, 65,137, 63, 0, 0, 0, 0, + 29, 80, 63,188, 62, 95,226,187, 87, 19, 74, 65, 0, 0,128, 63,160, 65,137, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 65,137, 63,157, 46, 19, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,176,161, 65,137, 63, 0, 0, 0, 0, + 29, 80, 63,188, 62, 95,226,187, 87, 19, 74, 65, 0, 0,128, 63, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,216,127, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 40,128, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0,120,128, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,232,133, 50, 3, 0, 0, 0, 0, +104,122, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101, +119, 46, 48, 48, 53, 0, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,212, 49, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,155,195,189, 20,145,188, 64, 94,220, 88, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,221,180,134, 63, 48,190,141, 37,253, 55, 57, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,253, 55, 57, 35, 48,190,141,165, 0, 0, 0, 0,219,128,112, 37, 52,177,253, 62, 94, 93, 94, 63, + 0, 0, 0, 0, 52,133, 22, 37, 94, 93, 94,191, 52,177,253, 62, 0, 0, 0, 0,128,155,195,189, 20,145,188, 64, 94,220, 88, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63,118, 42, 31, 25,242,108,131,153, 0, 0, 0, 0, 0, 0, 0,176, 0, 0,128, 63,210, 21, 66,178, + 0, 0, 0, 0, 5, 0, 0,176, 25,245,158, 50, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 50,118, 42,159, 11,242,108, 3,140, + 0, 0,128, 63, 0, 0,128, 63,219,128,112, 37, 52,133, 22, 37, 0, 0, 0, 0, 0, 0, 0, 48, 94, 93, 94, 63, 52,177,253, 62, + 0, 0, 0, 0, 0, 0,128,175, 50,177,253,190, 96, 93, 94, 63, 0, 0, 0, 0,149, 98,174, 61, 85,101,144,193,196,124,253, 64, + 0, 0,128, 63, 0, 0,128, 63,219,128,112, 37, 52,133, 22, 37, 0, 0, 0, 0, 0, 0, 0, 48, 94, 93, 94, 63, 52,177,253, 62, + 0, 0, 0, 0, 0, 0,128,175, 50,177,253,190, 96, 93, 94, 63, 0, 0, 0, 0,149, 98,174, 61, 85,101,144,193,196,124,253, 64, + 0, 0,128, 63, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, + 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, +232,133, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,248,139, 50, 3, 0, 0, 0, 0,120,128, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,218, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,139, 50, 3, 0, 0, 0, 0,168,139, 50, 3, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 94, 52,252,190,174,101,228, 65,141,116, 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,239, 30, 66,236,239, 30, 66,235,239, 30, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,138,174, 95, 63, 98,132,123, 37, 61, 56, 87,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,239, 30, 66, +105,158, 5,168,108, 39, 28,168, 0, 0, 0, 0,212,129, 77, 40, 66, 15,204, 65,158,186,243, 65, 0, 0, 0, 0, 55, 89, 13,165, +156,186,243,193, 65, 15,204, 65, 0, 0, 0, 0, 94, 52,252,190,174,101,228, 65,141,116, 17, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, +151,169,232, 24,151,190,157, 25, 0, 0, 0, 0, 21, 24,149, 24, 0, 0,128, 63,109,157, 59,178, 0, 0, 0, 0,191,231, 64,153, + 1,158,199,178, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,101, 43,206, 60, + 25, 74, 5, 35,141, 90,183,159, 0, 0, 0, 0, 42,143,202,162,100, 20,158, 60,192, 89,132, 60, 0, 0, 0, 0,187, 83,173, 34, +192, 89,132,188,102, 20,158, 60, 0, 0, 0, 0, 11,215, 70, 60, 61, 43, 67,191,184,241, 31, 63, 0, 0,128, 63,101, 43,206, 60, + 25, 74, 5, 35,141, 90,183,159, 0, 0, 0, 0, 42,143,202,162,100, 20,158, 60,192, 89,132, 60, 0, 0, 0, 0,187, 83,173, 34, +192, 89,132,188,102, 20,158, 60, 0, 0, 0, 0, 11,215, 70, 60, 61, 43, 67,191,184,241, 31, 63, 0, 0,128, 63, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, +236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 88,139, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,168,139, 50, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,248,139, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0, 8,146, 50, 3, 0, 0, 0, 0,232,133, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 99,117, 98,101, 0,117, 98,101, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,227, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,145, 50, 3, 0, 0, 0, 0,184,145, 50, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,128,253, 88, 59, +220,118,160, 63, 0, 15, 37, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 88, 68, 64, 84, 88, 68, 64, 83, 88, 68, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,190,237, 62,108,230,217,190, + 20,151, 52, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 38, 8, 64,191,228,231, 63,186, 31,162, 63, 0, 0, 0, 0, + 35,118, 13,192, 2, 61,220, 63, 31, 44,160, 63, 0, 0, 0, 0,166, 52,234, 60,102,223,227,191, 55,229, 31, 64, 0, 0, 0, 0, +128,253, 88, 59,220,118,160, 63, 0, 15, 37, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,187,122,172,178,103,144, 8, 50, 0, 0, 0, 0, + 7,239, 27,179, 0, 0,128, 63,247,131,152,178, 0, 0, 0, 0,149,110,134, 50,189,195,169, 50, 1, 0,128, 63, 0, 0, 0, 0, +255,223,172, 50, 56, 88,136,179,159,134, 16,180, 0, 0,128, 63, 11,115,103, 62,200,122,112,190,232, 17, 71, 59, 0, 0, 0, 0, + 4, 27, 69, 62,226, 50, 59, 62, 24,176, 65,190, 0, 0, 0, 0,114,205, 9, 62,203, 36, 8, 62,136,232,135, 62, 0, 0, 0, 0, +188,208, 22,191, 23, 64, 18,191,174, 28,229,190, 0, 0,128, 63, 10,115,103, 62,201,122,112,190, 0, 18, 71, 59, 0, 0, 0, 0, +116,205, 9, 62,204, 36, 8, 62,136,232,135, 62, 0, 0, 0, 0, 1, 27, 69,190,224, 50, 59,190, 25,176, 65, 62, 0, 0, 0, 0, +110,176, 16,192,158, 71, 9,192,115, 90,244, 63, 0, 0,128, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,104,145, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,184,145, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 0, 0, 32, 5, 0, 0, 8,146, 50, 3, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, 8,184, 51, 3, 0, 0, 0, 0, +248,139, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101, +119,104, 97,105,114, 0,108, 97,110,101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,108, 53, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,183, 51, 3, 0, 0, 0, 0, 72,183, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,151, 50, 3, 0, 0, 0, 0, +200,151, 50, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 86, 92,200, 63, 7,205,227, 63,149,199, 9,189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234,126, 47, 64,234,126, 47, 64,236,126, 47, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225, 80, 2, 63, 5,211, 15,191, 92,219, 18, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224,254, 18, 64, 23,209,169, 62, 27,251,186, 63, 0, 0, 0, 0, 71,254,133,191,207, 40, 17, 64,229,194,144, 63, + 0, 0, 0, 0, 78, 38,137,191, 48,162,192,191,125,176, 1, 64, 0, 0, 0, 0, 86, 92,200, 63, 7,205,227, 63,149,199, 9,189, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63,225,128, 25,179,157,103, 88,179, 0, 0, 0, 0,249,162,132, 50, 1, 0,128, 63, 89,156,139, 51, + 0, 0, 0, 0,225,204,139,179,160, 96,185,178, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 52, 1, 0, 0,180, 1, 0, 84,180, + 0, 0,128, 63,244,100,156, 62,133,143, 14,190, 54,235, 17,190, 0, 0, 0, 0,174,239, 70, 62,100, 4, 26, 62, 74,251,137, 62, + 0, 0, 0, 0,176,172, 52,189,213,112,154,190, 70,243, 76, 62, 0, 0, 0, 0,151, 56, 36,191,142, 98, 66,192,171, 5, 68, 64, + 0, 0,128, 63,244,100,156, 62,133,143, 14,190, 54,235, 17,190, 0, 0, 0, 0,174,239, 70, 62,100, 4, 26, 62, 74,251,137, 62, + 0, 0, 0, 0,176,172, 52,189,213,112,154,190, 70,243, 76, 62, 0, 0, 0, 0,151, 56, 36,191,142, 98, 66,192,171, 5, 68, 64, + 0, 0,128, 63, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, + 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,152, 50, 3, 0, 0, 0, 0,248,152, 50, 3, 0, 0, 0, 0, 24,152, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, +120,151, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, +200,151, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 24,152, 50, 3, + 0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 16, 2, 0, 0,248,152, 50, 3, 0, 0, 0, 0, 97, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 55, 3, 0, 0, 0, 0, 88,155, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,244,100,156, 62,134,143, 14,190, 52,235, 17,190, 0, 0, 0, 0,172,172, 52, 61,211,112,154, 62, 69,243, 76,190, + 0, 0, 0, 0,176,239, 70, 62,102, 4, 26, 62, 73,251,137, 62, 0, 0, 0, 0,188,211, 12,191,198,176,160,190, 56,156, 22, 63, + 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,150, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,180, 51, 3, + 0, 0, 0, 0,232,180, 51, 3, 0, 0, 0, 0,232,180, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,103, 16, 3, 0, 0, 0, 0, 68, 65, 84, 65,128,112, 0, 0, 88,155, 50, 3, 0, 0, 0, 0, 94, 1, 0, 0, +150, 0, 0, 0, 20,135, 17,192, 36,121, 97,192,112, 32,141, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 12, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,180, 96, 10, 60,200,196,163, 61, 78,182, 99, 63,165,242,180, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,111, 46, 7,192,143, 26, 60,192, 28,147,207, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 13, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,147,247, 17, 61, 51,172, 44, 62, 17,125, 54, 63, 69,195,169, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,224,103,174,189, 60, 88, 17,192,230, 35, 76, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 14, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,102, 96, 39, 62,101,119,242, 61,189,168,146, 62, 55, 9,221, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 75,102,131,192,196,241, 26, 63,140,198, 76, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 15, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,227,146, 53, 61, 63,180,115, 63,216,113, 42, 59,125, 63,144, 58, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 64, 43,226,189,253, 85,220,191,225,104,101, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 16, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,250,120,128, 62, 19,194, 20, 62, 61, 15, 90, 62, 92, 30,200, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,108,159,129,191, 8,210, 6, 63, 35,221,152, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 17, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,148,235, 25, 63,206,172,146, 62,137,195, 52, 61, 99,142,139, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,114,167,189,191,217, 59,104,192,184,179,184, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 18, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,120,167,104, 60,166,104,235, 60,218,251, 73, 63, 13, 25, 44, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 86,112, 30, 63,111, 69, 82,192, 59,191, 51, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 20, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 27,112,241, 60, 0,187,177, 60, 4,134,171, 62,164, 35, 29, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,118,148,176,191, 88,200, 1, 63, 89, 48,146, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 21, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,160,178, 8, 63,185,164,184, 62, 68, 72, 63, 61, 16,104,112, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,200, 80,168,191, 8,154,165,191,229,248, 80, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 22, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,177, 46,104, 62, 36,106,150, 62, 2, 61,138, 62, 4,131, 86, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 0,190,246,189,233,129, 90,192,224,155, 20, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 23, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 79, 25,187, 60,207,244,194, 60, 53,234,253, 62,233, 52,234, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,176,231, 67,190,144,105, 11,189,210,111,153, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 24, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,206,217, 24, 63, 59,222, 25, 62, 0, 50,134, 61,139,161, 63, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 58,217,158, 63,122,225, 17,192,213,158,120, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 25, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 34,213, 73, 62,217,230, 49, 61,217,117,187, 61,143,253, 42, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 29,205,127,191,231,116,142,191,116, 64,100, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 26, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,109,124,145, 62, 47, 84,135, 62, 95, 56, 95, 62,104, 38,111, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,143,106, 67,192,239, 1,236, 62,230,139,105, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 27, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 37,227,100, 62,230, 38, 54, 63, 87, 4, 43, 61,166, 1,190, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,114, 63, 58,191,242, 44,102,191,239,155,119, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 29, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,232,134,178, 62, 23,134,113, 62,235,242, 46, 62, 45,121,122, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,244,173,175, 62,136,194,141, 61, 0,239,164, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 30, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,211, 97, 48, 63, 38,134,130, 61,167, 53, 8, 61, 56, 40, 91, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,127,188, 36,192, 83,192, 42,192, 20, 24,202, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 31, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,191,242,154, 60, 14,165,130, 62,127,236, 49, 63,163, 44,253, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,191,117, 51, 63, 40,247, 44,192, 84, 59, 82, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 32, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,218, 50,227, 61, 48,152,110, 61,166, 58,104, 62,121,161, 26, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 23,218, 44,192,131,112,159,190, 68,196, 80, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 33, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 23,126, 53, 62, 93,113, 22, 63, 29,104, 42, 62,166,168,140, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,222,253, 61,191,212,216, 43,190,219,239,140, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 34, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 24, 36,252, 62,191,130,121, 62, 96,245,198, 61, 98,186, 42, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,192,168,212,191, 47,175, 30,192, 94,228, 12, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 35, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,118,198,167, 61, 92,200, 80, 62,157,210, 10, 63,240, 9, 48, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,114,184,238,190,237,206,230,191,208,122, 85, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 36, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,138,132, 94, 62,167,190, 48, 62,203, 41,136, 62,157, 52,176, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 67, 19,104, 63,179,122,254,191,115, 37,123, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 38, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,197,245,124, 62, 30,108,130, 61,201,152,229, 61,242,193, 19, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,172,106,191, 63,110,225, 42,192, 2,170,110, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 39, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,240, 99,249, 61,190, 88,249, 60,174, 20,183, 61, 39, 38, 66, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,121, 3, 12,192, 63, 11,252,190,146,136, 89, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 40, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,173, 28,108, 62,191,152,246, 62,199, 50, 61, 62, 31,254,210, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,250,104,187,191, 56, 86,139,189,145, 23,131, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 41, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 15, 67,208, 62,184, 57,190, 62,119,154,219, 61,111,114,234, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 52, 56,161, 62,255,221,207,191,202,110,120, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 42, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,123, 33,150, 62, 68, 30,226, 61,224,121, 27, 62, 4,154,227, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 63, 89, 41,192,117,107, 25,192,174,245,222, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 43, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 82,179,202, 60,197,106,157, 62,211,197, 33, 63, 9,243, 18, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 94,238,220,191, 91, 70,150,191,203,192, 72, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 44, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 13,183, 77, 62,158,153,182, 62, 65, 59,143, 62, 52,159, 38, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 61,234,116,192,224,101,238,188,165, 20, 56, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 45, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 31,255,242, 60,231,194, 83, 63,189, 56, 5, 62, 68,188, 85, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,128,209,240,189,178,183, 95, 63, 5, 67,176, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 47, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,153,189, 85, 63,151,104,200, 61,246, 55,142, 60, 74, 57, 76, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,206, 54, 25,192,171,197,162, 62, 6, 16,121, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 48, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,104,246,163, 62, 91,201, 16, 63, 24,104,136, 61,227,230, 66, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 29, 57, 61,192,236, 53, 39,191,173,221, 55, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 49, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 39,218,212, 61,242, 20, 25, 63,122, 70,118, 62,159,226,107, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,249, 62, 40,191, 16,113, 26, 63, 50,179,160, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 50, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 64,186, 45, 63,109,122, 91, 62, 32,134, 21, 61, 21,118,144, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 90, 51,138,191,199, 14,110,192, 18, 66,203, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 51, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,235,223,153, 59, 21,174,243, 59,231,160, 60, 63,251,135,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 44, 75,186,191,170,205,204,191,132,169, 61, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 52, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 79, 19, 52, 62,229, 52,146, 62,191,228,171, 62,106,185, 79, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 4,119,219, 63,231, 73, 28,192, 83,117,128, 64,188, 81, 55,191,109,243, 71,191,100,237, 42, 63,233,163,214, 62, +202,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 53, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,186, 75, 51, 62,206,251,144, 60,198, 49, 19, 61, 22,114, 69, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,172, 59,194,191, 35, 29, 13,192, 13,208, 30, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 54, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 97, 31,227, 61,168,207,104, 62, 38, 89,237, 62, 93,238, 74, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,197,190, 82,192,251,148,174, 62, 29,189, 91, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 56, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,210, 10, 37, 62,124,152, 65, 63, 28,110,106, 61,179,189,207, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,120,157,163,190, 44,219, 33, 63,250, 25,167, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,237,163,214, 62, +199,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 57, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 52,192, 61, 63, 16, 50, 23, 62, 40, 56, 1, 61, 43,254,162, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,131, 63, 79, 63, 22,225,203,191,183, 83,133, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 58, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 9,188,167, 62,141,167,138, 61,186,163,185, 61,147,152, 3, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 20,218, 89, 62,169, 21, 81,192, 50,226, 38, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 59, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,175,237, 18, 61, 50, 0, 0, 61,180, 45,208, 62, 72,186, 6, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,192, 91,166,190,203,138,151, 62,232, 4,159, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 60, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,114,117, 40, 63,164, 92, 37, 62, 72,198, 78, 61, 6, 28, 5, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,104,137,191,191,143,156,208,190,234,245,116, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 61, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,121,217,174, 62, 45, 55,188, 62, 41, 76, 25, 62,138,146, 16, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,218, 6, 78,191,240,247, 2,191, 2,181,131, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 62, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,237,209,211, 62, 1,168,129, 62,108,237, 7, 62,188, 30, 77, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,100,181,251,191,160, 67, 79, 63, 83,115,143, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 63, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 31, 56,250, 62,174,208,248, 62, 50, 43, 79, 60,252,186, 79, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,166,143, 16,192,219, 40, 31,192,188,165,240, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 65, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 93,255, 69, 61,131,237,129, 62,199,113, 29, 63, 16,188,169, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 47, 16, 46,192,234,135, 17, 62,196,174,101, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 66, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,132,185,112, 62, 76,198, 31, 63, 82,148,186, 61,149,140, 75, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,221, 76, 34,192,195, 63,220,191,101, 92, 19, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,191, 5,144, 61, 27,251,203, 62, 8,217,232, 62,185,169,156, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 0,209,208,191,175, 98, 57,192,214, 39,244, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 68, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 40,142,100, 61,206, 81, 18, 62, 52,238, 34, 63,214,209, 40, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,156,146, 19,192,132,169, 38, 63,119,240,133, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 69, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,177, 98,202, 62,157,134, 14, 63,246,140,213, 60, 97,116,179, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,100,209,211, 63, 80, 57, 64,192,239, 52,100, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 70, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,131,222,112, 61,150,149,161, 60,127,188,202, 61,219,141, 82, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,204, 40,195, 62,169, 66, 22,192, 56, 69, 88, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 71, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,237,198, 39, 62,232,166,180, 61, 33, 45,106, 62, 32,238, 4, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,179, 41,124, 63,215, 52, 92,192, 1,194, 56, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 72, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,225,119,158, 59, 62,185, 89, 59, 58, 41,150, 62,186,212, 50, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 78,215, 66,192, 16,102, 17,189,251, 64, 82, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 74, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 94, 65, 31, 62,152, 57, 45, 63,117,240,248, 61, 59,128, 61, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,243,234,243, 63, 12,199, 50,192,246,173,118, 64,192, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 75, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,202, 64,207, 61, 46,106, 89, 60, 30, 53, 13, 61,236,222, 89, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,174,176, 54,191, 99,173,187,191,209, 31, 93, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 76, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,101,144,129, 62,185, 1, 91, 62, 60, 67,121, 62, 32, 77,148, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,238,131,100,192,222,185, 81,191, 40, 50, 27, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 77, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,197,146, 70, 60, 83,125, 44, 63, 64,124,156, 62,125,144, 10, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,226, 77,248,190, 12,109,103,190,230,231,143, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +199,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 78, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 53,173, 3, 63,187,233, 78, 62, 77,225,187, 61,203,112, 68, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,129, 80, 10, 64,253,130, 74,192,124,179,109, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 79, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,215, 2,202, 60, 38,116,181, 59,240,167,204, 60,193,223,113, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 73, 37, 55,192, 92, 44,210,191,134, 20, 12, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 80, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,144,158, 50, 61, 53,247,230, 62,253, 25,236, 62,226,215, 52, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 4,163,152,191,233,189, 16,192,148, 29, 39, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 81, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,113,136,250, 61,109, 45, 71, 62,248,240,222, 62,108,172,125, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 83,219,213, 63,119,221, 77,192, 98,157, 90, 64,192, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 83, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,154,154,192, 60,206,233, 43, 60, 68, 13, 0, 62, 51, 72, 87, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,118, 39,106,191,130, 29,114, 63,156,123,164, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 84, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,149, 27, 54, 63,243, 38,133, 62,232, 55, 53, 60, 91,130,143, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 4, 71,102,192,241,109,194,190,108, 39, 47, 64,192, 81, 55,191,107,243, 71,191,100,237, 42, 63,233,163,214, 62, +198,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 85, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,152,203, 22, 61,132,161, 61, 63, 67,196, 79, 62, 79, 22,160, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 12,224,214, 63,225,182, 5,192,246, 59,136, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 86, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,211, 28,131, 62, 24,255, 46, 60, 11,165,139, 60,113, 88, 55, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 95,158, 92, 63,117,243, 67,192, 16,154, 70, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 87, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,112, 55,104, 61, 14, 23, 9, 61,208, 82,129, 62,176, 65, 40, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 87,234, 31,192,204,234, 65,192,110,200,172, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 88, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,197,252, 48, 60,163,176, 62, 62,216, 93, 72, 63, 94, 65,166, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 76,122,189,191,238,243,102,191,158,253, 93, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 89, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,101,159,135, 62,253,216,174, 62,217, 99, 96, 62,104,171, 50, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,227, 75, 67, 63, 48,124, 78, 61,200,150,171, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 90, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,191,115, 58, 63,121,198, 2, 60,254,102,167, 59,178,100,132, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 24, 37,139, 62, 4,231, 62, 63,174,205,179, 64,188, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,206,137, 61,190,156, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 92, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 50, 23, 92, 63,169, 27, 15, 61, 8, 43, 83, 60, 59, 83,189, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 32,247,225,191, 37,175, 81,192,248,254,198, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 93, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 66,132, 2, 61,191, 37,189, 61,173, 5, 64, 63, 91,181, 0, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,200,110,165, 61,183, 43,239, 62,129,243,169, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 94, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 62,109, 66, 63,244,159,170, 61, 79,150,243, 60, 69,136, 2, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 12,158,243,191,244,237,104,192,138, 34,155, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 95, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,228,106, 92, 60, 23, 25, 35, 61,136,111, 93, 63,211,105,167, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,118, 74, 8, 63, 0,240, 1,192, 28,123,108, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 96, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,233,242,101, 62,181,120,181, 61,231,136, 43, 62,245,241, 4, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 26, 24,231,191, 44,105, 21,191,186, 32, 98, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 97, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 66,189,138, 62,114,103,210, 62,117,128, 62, 62, 35, 54, 7, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,141, 52, 5,191, 10,103, 49,192,230,154, 37, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 98, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,132, 47,184, 61,244,157,207, 61,168, 0,225, 62,249, 11,189, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,136, 45,177,191, 22,253, 99, 63, 8, 58,155, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 99, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,147,253, 28, 63,231,184,184, 62, 48, 48, 58, 60, 59, 78,111, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 42,255, 57,191,235, 4, 65,192, 77, 7, 19, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,101, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,228,255,128, 61, 76, 32,172, 61,147,152, 5, 63,205,134,169, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,184, 68,137,191,204,177,226, 61,196,247,141, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,102, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,107,166, 0, 63, 23, 29,154, 62, 34,214,165, 61, 42,130,236, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 22,103, 82,192, 73, 75,201,191, 1,247, 0, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,103, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 73,109,118, 59,168,155, 4, 63, 73, 2,243, 62,186,198,108, 59, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,194,241,246,191, 87,130,236, 62, 50,209,135, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,104, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 49, 99,219, 62, 85, 73,242, 62,127, 14, 79, 61, 68,141, 67, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,224,228,149,189,233, 13,221,190,210,251,145, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +199,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,105, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,198,141, 4, 63, 3, 71, 19, 62, 60,186,174, 61, 99,146,129, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 0,120, 89, 62,164,169,120,190, 26, 78,155, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,106, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,224, 89, 24, 63,189,174,198, 61, 2,152,101, 61,143,237,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 92, 80, 26,192,232, 3,239,189,182,210, 99, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,107, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,115,248,126, 62, 84, 41, 12, 63,153, 55, 4, 62, 62, 85,152, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 80,245, 70,190,136,148, 37,192, 41,107, 57, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,108, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,208,237,239, 61, 10, 34,210, 61, 62,101,181, 62,205, 22,218, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,253,172, 25,191, 68,234,249,191, 59,217, 73, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,110, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 12,172, 64, 62,160, 24, 51, 62,145, 49,156, 62, 26,236,169, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 77, 63, 60,192,192, 70,245,191,246,177,248, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,111, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,172,109,175, 60, 7,135,214, 62, 59, 12, 9, 63,150,154,198, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 6,125,162, 63, 63,233, 64,192,147,167, 86, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,112, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 4, 49,119, 61,119,251,224, 60, 94, 5, 47, 62,188,195, 61, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,184, 96, 27,192,251, 23,179,191,193, 77, 38, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,113, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,166,161,213, 61,217,242,218, 62, 39, 18,191, 62, 89, 74,194, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,185, 0, 21,191,137,241, 14,192,206, 27, 61, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,114, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 58, 36, 27, 62,245,151, 28, 62, 82, 23,179, 62,148, 10,177, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 64, 80, 57,189,193, 80,166,191,242,172,123, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,115, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,199,225,170, 62,114, 67, 23, 62,202, 56, 33, 62, 26,224,184, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,202,106,219,190, 17,216,127, 63,140,251,173, 64,190, 81, 55,191,110,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,116, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 10,203, 79, 63,104, 14, 32, 62,252,238, 44, 60, 55,180,175, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,111, 39, 91,192, 64, 81,150,191, 89, 68, 15, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,117, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 25, 88, 25, 60, 85, 74, 25, 63,199,185,196, 62,210,179,249, 59, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,231, 17, 40, 63,141, 44,153,190, 68,123,161, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,119, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,202,133, 32, 63, 25,163, 36, 61, 45,136,225, 60,133, 71,156, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 50, 95,160, 63, 34,101,249,191,176, 96,132, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,120, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 62, 45,138, 62, 35,142, 30, 61,173, 78,128, 61,170,246, 32, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,111,133, 6,192,167,152,225,191, 84, 16, 32, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,121, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,245,107,217, 61,253,147,174, 62,227,232,218, 62, 70, 80, 0, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 80, 99,228,190, 44, 59, 51,191,221, 75,133, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,122, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,117,208,213, 62,118,118, 76, 62, 32,254, 5, 62, 65,245,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 85,101, 74,192,166,185,105,191, 18,141, 36, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,123, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,221,214,102, 61, 50, 22, 25, 63,139, 42,157, 62,164,113, 30, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,122,234,218,191, 50,177,232,191,108,174, 42, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,124, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,229, 50, 8, 62,227,251,148, 62,133, 65,206, 62, 75, 82, 49, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,254,106,206,191,205, 36,150, 62, 96, 42,137, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,125, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 87, 15,231, 62, 49,237,207, 62,254, 43,141, 61,226,225,150, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,200, 61,167, 63,119, 5,171,191, 86,214,147, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,216, 36,214, 62,172, 85,122, 60, 44,247,142, 60,132,140, 12, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,194, 14,251,191, 44,213,105,190,165,188,109, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,128, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,239, 13,155, 62, 40, 17,234, 62, 92,128, 13, 62,226,130,208, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,102, 47, 46,192, 64,212, 45, 63, 61, 35,127, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,129, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 74, 31,165, 62,207,208, 37, 63, 74,227,141, 60, 8, 28, 76, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 10,203, 83,191,133, 15, 29,192,237, 82, 42, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,130, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 21,150,239, 61,130,193, 24, 62, 46, 71,217, 62,141,114,158, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 47, 71,102, 63, 16, 13, 44,191, 24,187,156, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,131, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,178,206, 13, 63,144,101,237, 60, 16,227,198, 60, 16, 30,201, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,140,210,252, 62,216, 58, 44,191, 98,217,149, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,132, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,235,174, 4, 63,125,216,156, 61,114,228,115, 61,124,239,176, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,181,210, 46,192, 59, 4,135,191,164, 99, 44, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,133, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,154, 69,201, 61, 74,143, 3, 63,155, 10,162, 62,186, 21,146, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 64,235, 64, 60,203,210,147, 63,205, 32,185, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,134, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,135,168,109, 63, 87, 44,112, 61,106, 72,115, 59,214, 90, 24, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,160,185, 0,192,197,235, 38,192,182,221,245, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,135, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 85,123,103, 61,230, 65, 90, 62, 33,215, 29, 63,124, 5,233, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,132,118,247,191, 87, 66, 8,192, 93, 88, 20, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,137, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 15,245,186, 61,252,211,140, 62,237,184,252, 62,164,107, 15, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 96,252, 2,190,189, 32, 63,192,249,176, 40, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,138, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,109,251,141, 61,209, 15,135, 61,152,122,212, 62,150, 66,230, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,186, 37, 60,192,209, 36, 19,192,200,102,212, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,139, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,144,146,141, 59, 24,189,182, 62, 12, 24, 34, 63,242, 33,183, 59, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 62,165,155, 63, 35,188,200,191,156,201,140, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,140, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 54,112,182, 62,156,202, 2, 61, 65,146, 40, 61, 24, 18, 18, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,150, 48, 1, 63,133, 14,211, 62,120,209,175, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,141, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 26, 61, 76, 63,214,234,171, 60,230,187, 47, 60,126,146, 46, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,196,144, 98, 62, 62,190,112,191,153,224,138, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,142, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 51,212,220, 62, 49, 96,238, 61, 1,246,205, 61, 64, 22,180, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 80,243, 2,192, 18, 84, 91,191,110, 0, 77, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,143, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,112,143, 79, 62, 13, 36,220, 62,207,171,119, 62,168,124, 0, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,228, 81, 34, 62,178, 55, 39,192, 87, 36, 68, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,144, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,144, 72,244, 61,152, 98,173, 61, 16,243,154, 62, 38,162,252, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,226,206,132,191,153,157,254,191, 61, 78, 57, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,146, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 49,138, 35, 62,237,209, 85, 62,126, 75,186, 62,113, 6,137, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,228,163,237, 62, 55, 20, 58,192, 9,122, 64, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,147, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,187,215,163, 61, 90,207, 92, 61,188,248,152, 62,182, 59, 17, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,202, 59,148,191,188,242, 56,191,189,111,113, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,148, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 42,204,169, 62,204,195,154, 62,146,225, 51, 62,125,254, 66, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 34,179,252,191, 86,102,184,191,169,174, 51, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,149, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 46,210, 21, 62,250, 32,186, 62,195,126,178, 62, 85,238, 16, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 1,244, 77,192, 51, 52,163,190, 30,234, 62, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,150, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 89,246,198, 61, 30,130, 46, 63,223,241, 54, 62,221, 41, 46, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,255, 27,122, 63,179,229,133,191, 66, 39,149, 64,190, 81, 55,191,107,243, 71,191,102,237, 42, 63,235,163,214, 62, +200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,151, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,216, 4,239, 62,235,100, 21, 61,174, 73, 20, 61, 83,197,235, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 20, 66,151,191,208,139, 62,192, 98,118, 5, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,152, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,212,101,120, 61, 72, 26,221, 61,158, 82, 22, 63,241, 14,122, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,224, 63, 46,190,222,105,107,191,198,191,132, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,153, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 89,238,204, 62, 10, 90, 39, 62,123,156, 6, 62, 98, 22,156, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,250,148,234,190, 11,179, 97,192, 16,215, 3, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,155, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,251, 26,119, 60, 34,207,150, 60,170,176, 20, 63,225,120,197, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,202,177,135,191,150,220, 86,192,144, 9,239, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,156, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 87,169, 5, 61,120,116, 92, 61,179,253, 38, 63,225,192,133, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,213,105,108,192,125,145,223, 62,192,182, 82, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,157, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,206, 82,204, 61, 44,113, 89, 63, 63, 63, 23, 61,220, 33,100, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 76, 23,243, 62, 46,133,166,191, 78,153,134, 64,192, 81, 55,191,109,243, 71,191, 98,237, 42, 63,234,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,158, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,159, 2,190, 62, 29,141,193, 61,214, 93,214, 61,164, 2,220, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,130,192,214,190,182, 57, 73,192,175, 83, 23, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,159, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,211,103, 84, 61, 92,194,115, 61,148,216,253, 62, 41, 34,201, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,122, 4,133,192,109,136,128, 62,136, 58, 58, 64,190, 81, 55,191,107,243, 71,191, 98,237, 42, 63,235,163,214, 62, +198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,160, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 70, 80,156, 58,142,100,108, 63, 15, 72,153, 61,116, 35, 17, 58, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,132, 40, 12, 62,102, 32, 1,192,222,178, 95, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,161, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,223,196, 88, 62,134, 94,237, 61,141, 5, 97, 62, 43,195,231, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,211,109, 80, 63, 96,210, 20,192,246,253,103, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,162, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 69,196, 53, 62,136,184,135, 61,240,250, 35, 62, 34,153, 24, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,240,142,147,191, 43, 7,166,190, 61, 69,130, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,164, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 56,243,206, 62,109,170,159, 62,224,145, 2, 62,211, 50, 32, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 2,254, 89,191,195,197, 85,192,176,197,254, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,165, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,111, 3, 11, 61,241, 2, 76, 61,231,181, 28, 63,103,179,155, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 24, 46,253,191,200,126,214, 61,248, 1,125, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,166, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 18,251,181, 62,225,163,242, 62, 90, 98,191, 61,220, 33,158, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,115, 18, 94,192,112, 61, 49, 61, 90,153, 71, 64,190, 81, 55,191,109,243, 71,191, 98,237, 42, 63,236,163,214, 62, +197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,167, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,141,188,190, 61,118,157, 68, 63,105,119,224, 61,112,129,239, 60, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 38, 34,141,191,222,140, 39,192,182, 55, 25, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,168, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,122, 6,189, 61, 58,195, 23, 62, 6,114,254, 62,189,106,134, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,149, 14, 63,192, 64,204,165,191, 12, 96, 24, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,169, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 14, 67, 83, 61,192,186, 4, 63, 39,206,197, 62,178,159, 50, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,183,180, 22,192,126,173, 4,192,240,189, 8, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,170, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,133, 49,131, 61,130, 33,167, 62,160,225, 5, 63,124, 59,177, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 35,160, 97, 63,129,220,163,191,194,248,141, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,171, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 78,174,206, 62, 68,159, 93, 61,160, 84,118, 61, 54,211,246, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 4,223, 18,192,155,169,140,191,151, 18, 57, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,173, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,245, 96, 21, 62, 35,104,227, 62, 83, 62,154, 62, 64,164,222, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,100,193,179,191,251,111, 78,192,166, 64,228, 63,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,174, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 37,242, 35, 61,204,214,171, 61,175, 25, 46, 63, 82,177, 72, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 93, 90,124,191,113, 48,212,191, 56,208, 74, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,175, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,187,178, 81, 62,176, 57,108, 62, 93,177,153, 62,108, 88,135, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,251,231, 33,192,132, 2, 59,191, 78,162, 66, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,176, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,217, 15, 30, 62,227,209, 4, 63,178,148,117, 62,218, 39,178, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 2,185,138, 63,191,128, 41,192,139,193, 97, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,177, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 0,196,250, 61, 79,120, 62, 61,195, 12, 31, 62,202,252, 44, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,242, 63,243,190, 86,176,159,191,245,150,111, 64,190, 81, 55,191,109,243, 71,191,100,237, 42, 63,234,163,214, 62, +200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,178, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255,217, 77,158, 62, 43,131, 72, 62,119,208, 68, 62, 86, 8,155, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0,198,178, 48,191,138, 39, 52, 62, 39,252,149, 64,190, 81, 55,191,107,243, 71,191,100,237, 42, 63,235,163,214, 62, +198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,179, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0, +255,255,255,255, 62, 71, 19, 63,111,215,107, 62, 63, 71,138, 61,243,231, 1, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 1, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 12, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 13, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, + 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 14, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, 63,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, +251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 15, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, +255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,255, 61, 14, 61,218,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 15,224,124, 61,123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,171, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, + 15, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,151,155, 65, 62,182,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 16, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188,243, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, +251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 8, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 17, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, +223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,126, 35,188,247, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,135, 84,145,188, 7,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189,145,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,231, 84,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 18, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 20, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,247, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 8, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,142,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 21, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 18,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,152,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 22, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,223, 84,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,132,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,252, 84,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,169,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 50,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 23, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,143,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,250, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 4,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 43,138, 94,189,146,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, + 26,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 24, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 87,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,145,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 25, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, +239,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,135,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 17,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 26, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 71, 84,145,186,239,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,120,127, 35,188, 2, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 17,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,165,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 48,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 28,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 27, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 7,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 23,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 29, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, +255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 3, 62, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 17,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 53,138, 94,189,148,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 30, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 83,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 31, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 32, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, +247,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,138,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 33, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,143,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 34, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,223,223,124, 60,189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, + 7,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 35, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 7,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,145,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 25,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 36, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186, 63,224,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 55,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,152,127, 35,188, 17, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, + 30,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 24,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 18, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 55,138, 94,189,155,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, + 36,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 38, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 39, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 15,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 40, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, 255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 23,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 16,184,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,247,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, - 72,127, 35,188, 0, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 14,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,251, 84,145,189, 27,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 24,185,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, -127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,223,223,124, 60,186, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,184,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 31, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,243, 20,227,188, - 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,188,127, 35,189, 7, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 17, 85,145,189, 22,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 32,186,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,255, 61, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,187,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 84,145,186,255,223,124, 59, 58,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, - 23,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 19,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,170,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 56,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, - 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 48,188,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, 63,224,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -171, 20,227,188, 7,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62, -163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 19,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0, 56,189,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, -255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188,255,223,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,216,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189, -143,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,143, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 64,190,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 27,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 19, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 31, 85,145,189, 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 72,191,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 41, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,191,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,247,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 72,127, 35,188, 0, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 14,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 13,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,251, 84,145,189, + 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 42, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187, +223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,184,127, 35,188,247, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 31, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,243, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,188,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,141,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 17, 85,145,189, 22,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 43, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 44, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 71, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 23,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,211, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,170,127, 35,189, + 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 56,138, 94,189,147,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 45, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 72,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, + 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 7,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, + 19,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 47, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188,255,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, + 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,186,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 48, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 27,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 19, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 49, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 80,192,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61, -128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 29,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 88,193,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,231, 84,145,188, 23,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, - 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 96,194,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -215, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188, 7, 62, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -166,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 45,138, 94,189,147,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 8, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,195,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, -255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188,255,142,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 91,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, - 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,112,196,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 13, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,120,197,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, -255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128,198,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, - 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 83,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,126, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, -135, 84,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 20,227,188,255,142,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, 88,127, 35,189,255, 61, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0,219,137, 94,189,135,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, -223, 84,145,189, 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -136,199,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 50, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 15,224,124, 61,128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 51, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 23,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,149,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 52, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,144,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,166,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 45,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 8, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 53, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,139,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 54, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 56, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 57, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 83,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,126, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,135, 84,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, 88,127, 35,189,255, 61, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0,219,137, 94,189,135,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,223, 84,145,189, + 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 58, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,144,200,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 3,224,124, 61, -124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 8,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 10, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 27,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 24,224,124, 62, -140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,152,201,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, -255,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 63,224,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 15, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 71, 85,145,188, 31,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, - 27,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 23, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,157,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 31, 85,145,189, 37,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,160,202,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186, 15,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -135, 85,145,187, 19,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,232,127, 35,188, 12, 62, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 28,224,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 25,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -200,127, 35,189, 19, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,203,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, 63,224,124, 59, 58,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,168,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, - 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 51,138, 94,189,148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, - 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176,204,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186, 33,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 29,224,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 11, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 24,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, - 43, 21,227,188, 24,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 18, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,157,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 37,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,184,205,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, -255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,192,206,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, -167, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188, 15,143,197, 61, - 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, -247, 84,145,189, 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -200,207,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 59, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,127,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 3,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 8,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 10, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 27,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, + 24,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 60, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, + 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 15, 62, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 31,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 27,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, + 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,157,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 37,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 61, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186, 15,224,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 19,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,232,127, 35,188, 12, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 28,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 25,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 19, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 62, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186, 63,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,148,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 63, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, 33,224,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 29,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 11, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 24,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 24,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 18, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,157,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 37,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 65, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 66, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, + 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188, 15,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 11,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, + 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 67, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187, 191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 57,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 12, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,208,208,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61, -127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 75,138, 94,189,147,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62, -143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216,209,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, -191,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, - 17,143,197, 61, 83, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 14, 62, 14, 62,165,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,146,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 26,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,224,210,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,211,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, -255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,251, 20,227,188, 3,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 6, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 67,138, 94,189,140,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, - 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,240,212,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 84,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,248,213,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, - 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 0,215,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,224,124, 59, - 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 47, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, -231, 84,145,188, 63,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 47,143,197, 61, - 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,167,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, -255, 84,145,189, 51,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 8,216,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 68, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 69, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, + 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 17,143,197, 61, 83, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, + 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,146,155, 65, 62,186,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 26,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 70, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 71, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,251, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, + 6, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,140,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 72, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 74, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 75, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,224,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 72,127, 35,188, 47, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 63,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 47,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 43,138, 94,189,167,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, + 51,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 76, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186, 31,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 16, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,215, 20,227,188, 22,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,172,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 53,138, 94,189,151,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 32,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 16,217,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188,255,223,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 59,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 23,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 24,218,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,231, 84,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, - 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 7, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,145,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0,255, 84,145,189, 26,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 32,219,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,220,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,191, 84,145,186,255,222,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,229, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,154,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, -255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,232, 20,227,188, 7,143,197, 61, 82, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,182,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 65,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, - 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 48,221,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 31,224,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0, 56,222,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,135, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, - 47, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 47,224,124, 61,125,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 47,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,152,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189, -167,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 49,224,124, 62,139, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 64,223,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, - 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, -167, 84,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, - 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, 9, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, -239, 84,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 72,224,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 77, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 78, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, +191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188,239, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,171, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,145,155, 65, 62,183,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 26,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 79, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 80, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,191, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,229, 84,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,154,127, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,232, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,182,127, 35,189, + 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 65,138, 94,189,139,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 81, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, + 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 83, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, + 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 47, 62, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 47,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,171, 20,227,188, 47,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, + 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,167,155, 65, 62,183,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 49,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 84, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, 9, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0,251,137, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 85, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 31,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,159,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 39,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 80,225,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61, -125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 19,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 88,226,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 7, 85,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, -255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 5, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,138,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 96,227,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -135, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -168,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,228,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 15,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, - 19,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 17,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 51,138, 94,189,148,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, - 30,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,112,229,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 83,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 84,145,187,191,223,124, 60, -186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 40,127, 35,188,223, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,239,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -155, 20,227,188,255,142,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,128,127, 35,189,255, 61, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,131,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0,243, 84,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,120,230,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, -239, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,255,223,124, 61,124,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,120,127, 35,189,255, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189, -131,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128,231,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 39, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 23,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 39, 85,145,189, 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -136,232,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 86, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, + 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 87, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,138,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 88, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 89, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, + 15,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 19,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, + 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,148,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 30,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 90, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 83,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 40,127, 35,188,223, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, +239,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,155, 20,227,188,255,142,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,128,127, 35,189,255, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 11,138, 94,189,131,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,243, 84,145,189, + 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8, 92, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, +191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,239, 61, 14, 61,218,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,255,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,139, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189, +255, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189,131,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 93, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 23,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 39, 85,145,189, + 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72, 94, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188,255,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188,255,142,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 3, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,135,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 19,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,144,233,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 91,138, 94,189,151,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 27,224,124, 62, -143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,152,234,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, -127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,191,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,231, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,215, 84,145,188,231,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, -247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 1, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,135,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0,251, 84,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,160,235,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 83,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -135, 84,145,187,239,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188, 3, 62, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -152,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,145,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,236,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, 63,224,124, 59, 56,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 47,224,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,136,127, 35,188, 15, 62, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, - 29,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 24,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 59,138, 94,189,155,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, - 35,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176,237,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60, -188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, - 43, 21,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 15, 62, 14, 62, -166,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,150,155, 65, 62,186,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 30,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,184,238,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, - 11, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 23,224,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,192,239,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, - 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 39, 85,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 17,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 23, 85,145,189, 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -200,240,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 95, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,151,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 96, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,231, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,215, 84,145,188,231,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,171, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, + 1, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,135,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,251, 84,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 97, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 83,145,186,191,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,239,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,104,127, 35,188, 3, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, + 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 35,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, + 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 98, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186, 63,224,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 47,224,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 15, 62, 14, 61,218,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 29,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 24,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,155,155, 65, 62,183,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 35,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 99, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 23,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 15, 62, 14, 62,166,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,150,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 30,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,101, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 11, 62, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,102, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 17,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,103, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,103, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,191, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 3, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 63,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,208,241,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 3,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, - 8,128, 35,188, 4, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 18,224,124, 61, -128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 91,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 26,224,124, 62, -143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216,242,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,191,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,247, 84,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, - 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,160,127, 35,189, 7, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 7, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,224,243,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -199, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 40,128, 35,188, 15, 62, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0, 27, 21,227,188, 31,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -208,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,163,155, 65, 62, -183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 43,224,124, 62,140, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,244,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, - 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, - 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,240,245,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,207,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,244, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,254,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, - 11, 21,227,188, 5,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 9, 62, 14, 62, -165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 25,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,248,246,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,241,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, -253, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 11,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,176,127, 35,189, 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189, -146,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 0,248,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,222,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,160,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 11, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,231, 20,227,188, 15,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 61,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 14, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 8,249,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,104, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 59,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 3,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 4, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 18,224,124, 61,128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 26,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,105, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188,247,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,160,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,106, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 40,128, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 27, 21,227,188, 31,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,208,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,163,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, + 43,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,107, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,108, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,127,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,207,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188,244, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, +254,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 5,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 9, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 25,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,110, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +241,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,253, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 11,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,219, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, + 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,146,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,111, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,160,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 11, 85,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,231, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 61,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 14, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,112, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 16,250,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -140,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, 15,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 61,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 24,251,180, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, - 13,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,188, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 9, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 23, 85,145,188, 22,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, - 16,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 14, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 32,252,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -231, 84,145,187,159,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188,231, 61, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,217, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -175,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 56,138, 94,189,140,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 21,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,253,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,224,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 63,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0, 72,128, 35,188, 31, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188, - 47,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 39,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,248,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0,139,138, 94,189,163,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 55, 85,145,189, - 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 48,254,180, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62, -165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0, 56,255,180, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 71, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, -239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,125,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,152,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189, -139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 19,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 64, 0,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 23, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,251, 20,227,188, 7,143,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 19, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 72, 1,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,113, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,140,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 61,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,114, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186, 13,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 9, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 22,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 16,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, + 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,148,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,115, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,159,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,144,127, 35,188,231, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, +239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,217, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,175,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 56,138, 94,189,140,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, + 21,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,116, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, + 63,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,128, 35,188, 31, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188, 47,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 75, 21,227,188, 39,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,248,127, 35,189, + 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,139,138, 94,189,163,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 55, 85,145,189, 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,117, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,119, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 84,145,187, +191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,239, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,187, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, + 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,139,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,120, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,251, 20,227,188, 7,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, + 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,121, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 3, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 63,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 80, 2,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 39,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,227, 20,227,188, 33,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 24, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 67,138, 94,189,162,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 17, 85,145,189, 45,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 88, 3,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, -255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, - 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 96, 4,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -231, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 7, 62, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 5,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,223,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,235,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,200,126, 35,188,251, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, - 9,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0,251,137, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, - 28,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,112, 6,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,255,222,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,191,223,124, 60, -186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, - 3, 21,227,188, 7,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,196,127, 35,189, 7, 62, 14, 62, -163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 87,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 29, 85,145,189, 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,120, 7,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 84,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, -251, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 11,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,155, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,136,127, 35,189, 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 19,138, 94,189, -144,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 24,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128, 8,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 71, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 11,143,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 31, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -136, 9,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,122, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, + 39,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,227, 20,227,188, 33,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 24, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,162,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 17, 85,145,189, + 45,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,123, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, + 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,143,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,124, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,152,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,125, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 82,145,186,223,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, +235,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,126, 35,188,251, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, 9,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189,145,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 28,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,126, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 3, 21,227,188, 7,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,196,127, 35,189, 7, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 87,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 29, 85,145,189, + 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,128, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, +223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,251, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 11,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,155, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, + 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 19,138, 94,189,144,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 24,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,129, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 11,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,130, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 239,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,149,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,144, 10,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -248,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 55, 85,145,188, 15,224,124, 61, -125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 35, 21,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,220,127, 35,189, 15, 62, 14, 62,162,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, -107,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 37, 85,145,189, 31,224,124, 62, -139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,152, 11,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 86,145,186, -255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187,255,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,184,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, - 31,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 23, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 71,138, 94,189,159,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 18, 85,145,189, 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,160, 12,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 39, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,243, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -184,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,151,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 25, 85,145,189, 27,224,124, 62,140, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 13,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 58,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0, 8,128, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, -255,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0,107,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, - 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176, 14,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62, -165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,184, 15,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, -255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189, -147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 31,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,192, 16,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,143,223,124, 59, - 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 39, 85,145,188, 2,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, - 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,145,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 7, 85,145,189, 27,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -200, 17,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,131, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,248,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 55, 85,145,188, + 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 35, 21,227,188, 15,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,220,127, 35,189, 15, 62, 14, 62,162,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0,107,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 37, 85,145,189, + 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,132, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,184,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 31,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, + 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 71,138, 94,189,159,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 18, 85,145,189, 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,133, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, + 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,243, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 83,138, 94,189,151,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 25, 85,145,189, + 27,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,134, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,239, 61, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, + 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,107,138, 94,189,143,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,135, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, + 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,137, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, + 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,138, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,143,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, + 2,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 11,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 43,138, 94,189,145,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, + 27,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,139, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,208, 18,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -152,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188,255,223,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 75,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 23,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216, 19,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,239, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,199, 84,145,188,239,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188, -247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189,251, 61, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,131,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,224, 20,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, - 39, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61, -219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188,239,223,124, 61,125,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,231, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -179,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 65,138, 94,189,139,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 21,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,104,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,239, 84,145,188, - 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, - 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,240, 22,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,207,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,243, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,251,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,248, 23,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, - 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189, -147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 0, 25,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 7, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 6, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 23, 85,145,189, 22,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 8, 26,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,140, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,141, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, +191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,239, 61, 14, 61,218,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,239,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,139, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189, +251, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,131,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,142, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188, +239,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,231, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,179,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 65,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, + 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,143, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,239, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,144, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,127,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,207,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,243, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, +251,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,146, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,147, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, +255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 6, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 22,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,148, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, 13,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 5, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 19,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,227, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 16, 27,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,151, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0,219, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -140,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,249, 84,145,188, 15,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,205, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, 27,224,124, 62, -142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 24, 28,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, -255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, - 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 32, 29,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,175, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -224, 84,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,142,127, 35,188,239, 61, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 1, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,207, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -164,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 42,138, 94,189,135,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 4, 85,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 30,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, - 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,149, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,151, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,219, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,140,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,249, 84,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,205, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, - 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 48, 31,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,223,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -231, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 9, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 63,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 24,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0, 56, 32,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, - 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189, -151,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 64, 33,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, - 72, 34,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, + 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,150, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,151, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,175, 84,145,186,255,222,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,224, 84,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,142,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 1, 85,145,188, +239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,207, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 42,138, 94,189,135,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 4, 85,145,189, + 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,152, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,186,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,153, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,231, 20,227,188, 3,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 9, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 63,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, + 24,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,155, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, + 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,186,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,156, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,157, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,255, 61, 14, 61,217,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 27,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 80, 35,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 85,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -144,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 31,224,124, 61, -125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 31,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 63,138, 94,189,161,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 14, 85,145,189, 43,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 88, 36,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 15,224,124, 60,188, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, - 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,150,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 30,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0, 96, 37,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -135, 84,145,187,255,223,124, 60,185, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,255, 61, 14, 61, -217,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,123,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -152,127, 35,189, 7, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,143,155, 65, 62, -184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 38,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 56,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,158, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 85,145,186,255,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,144,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, + 31,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 31,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 63,138, 94,189,161,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 14, 85,145,189, + 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,159, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, + 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,150,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 30,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,160, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,185, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 72,127, 35,188,255, 61, 14, 61,217,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, +255,223,124, 61,123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 80, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 7, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 43,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,161, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, + 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,141,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,162, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 59,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, - 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,112, 39,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,120, 40,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, - 1, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 16,224,124, 61,127,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,184,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189, -147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,142, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128, 41,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 7, 85,145,188, 7,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, - 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 23, 85,145,189, 29,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -136, 42,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,164, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, +255,223,124, 60,189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 1, 62, 14, 61,221,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 16,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, + 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,165, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 7,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 29,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,166, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 11, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 21,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 17, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,153,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 33,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,144, 43,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 86,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, - 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, -107,138, 94,189,147,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 39, 85,145,189, 27,224,124, 62, -140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,152, 44,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, -255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, - 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 15, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,160, 45,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61, -220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,215, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 57,138, 94,189,143,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 46,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,167, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 86,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0,107,138, 94,189,147,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 39, 85,145,189, + 27,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,168, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,147,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,169, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, - 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 23,143,197, 61, 82, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, - 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,176, 47,181, 3, - 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,191,223,124, 60, -187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, - 0, 0, 32, 63, 0, 0, 0, 0, 11, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, -227, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 7, 62, 14, 62, -164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 73,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, - 0, 0, 0, 62, 0, 0, 0, 0, 20, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,216, 0, 0, 0,184, 48,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, - 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, -255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, - 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, - 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 55,138, 94,189, -147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 12, 85,145,189, 27,224,124, 62,141, 17,245, 63, - 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,192, 49,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, - 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, - 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, - 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 23,143,197, 61, - 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, - 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, - 23, 85,145,189, 35,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, -200, 50,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,215, 20,227,188, 7,143,197, 61, 82, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 57,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, + 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,170, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, +255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,211, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,171, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 11, 85,145,188, +255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,227, 20,227,188,255,142,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 73,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 20, 85,145,189, + 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 8,173, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, +255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 55,138, 94,189,147,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 12, 85,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,174, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, + 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 23,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, + 35,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 72,175, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186, 15,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 251,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 8, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 22,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,172,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,148,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 30,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,208, 51,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, - 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, -168,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61, -126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, - 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, - 67,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62, -141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,216, 52,181, 3, 60, 1, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186, -255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, - 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, - 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, -255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 3, 62, 14, 62,164,172,187, 63, - 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, - 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -216, 0, 0, 0,224, 53,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0,111, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, -173, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,116,127, 35,188,255, 61, 14, 61, -221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,245, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, - 0, 0, 0, 63, 0, 0, 0, 0,199, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, -163,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 47,138, 94,189,147,155, 65, 62, -185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 6, 85,145,189, 28,224,124, 62,142, 17,245, 63, 0, 0,200, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 54,181, 3, 60, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,127,223,124, 59, 57,146,131, 62, - 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, - 0, 0, 0, 0, 8,127, 35,188,247, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, - 7,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188, 7,143,197, 61, 81, 2,158, 63, - 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, - 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, - 28,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,240, 55,181, 3, -119, 0, 0, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 16,137,156, 3,105, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 23, 0, 0, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116, -101,109, 32, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 90,154, 3, - 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0, 8, 57,181, 3, -115, 0, 0, 0, 1, 0, 0, 0,152, 60,181, 3,184, 4,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101, -119,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 97,109,112, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,176, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,168,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, + 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, + 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,177, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, +191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,203, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, + 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,137,155, 65, 62,184,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,178, 51, 3, 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,111, 84,145,186,255,223,124, 59, 57,146,131, 62, + 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,173, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, + 0, 0, 0, 0,116,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,245, 84,145,188, + 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,199, 20,227,188, 13,143,197, 61, 81, 2,158, 63, + 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,163,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, + 0, 0, 0, 0, 47,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 6, 85,145,189, + 28,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200,179, 51, 3, + 0, 0, 0, 0, 87, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 7, 82,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, +223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,247, 61, 14, 61,218,123, 65, 63, + 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 7,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, + 0, 0, 0, 0,139, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, + 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,183,177,216, 63, + 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 28,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 16, 2, 0, 0,232,180, 51, 3, 0, 0, 0, 0,123, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 72,183, 51, 3, 0, 0, 0, 0,101, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 32, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,152, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0, 8,184, 51, 3, + 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0,120,189, 51, 3, 0, 0, 0, 0, 8,146, 50, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 0, 97,109,112, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,208, 49, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192,197,211,188, 76,229, 59, 65,208,106,184, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +247,215, 98,191, 71, 11, 72, 63,230,248, 6, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 14, 29, 63,149,225,182, 62, + 84, 76, 52,191, 0, 0, 0, 0, 22, 40, 74,191,201, 74,139, 62,228,198, 12,191, 0, 0, 0, 0, 84,213,157,187,151,190,100, 63, +145,223,229, 62, 0, 0, 0, 0,192,197,211,188, 76,229, 59, 65,208,106,184, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,147, 39, 25, 51, + 43, 47, 63,179, 0, 0, 0, 0, 9,108,247, 50, 0, 0,128, 63, 26, 92,142,178, 0, 0, 0, 0, 43, 4,114,179, 32, 59,141,178, + 1, 0,128, 63, 0, 0, 0, 0,135,255,127,177,130,214, 10, 40, 1, 0, 0,181, 0, 0,128, 63,214, 14, 29, 63, 22, 40, 74,191, +113,210,157,187, 0, 0, 0, 0, 85, 76, 52,191,228,198, 12,191,137,223,229, 62, 0, 0, 0, 0,154,225,182,190,205, 74,139,190, +157,190,100,191, 0, 0, 0, 0,213, 36,158,192,107,186,110,192,102, 43,169,193, 0, 0,128, 63,214, 14, 29, 63, 22, 40, 74,191, +113,210,157,187, 0, 0, 0, 0, 85, 76, 52,191,228,198, 12,191,137,223,229, 62, 0, 0, 0, 0,154,225,182,190,205, 74,139,190, +157,190,100,191, 0, 0, 0, 0,213, 36,158,192,107,186,110,192,102, 43,169,193, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 32, 5, 0, 0,120,189, 51, 3, 0, 0, 0, 0,116, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,184, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66,116,101,120,116,117,114,101, 0,114,101,118,105,101,119, 46, 48, 48, 53, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,202, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 87,179, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,197,211,188, 76,229, 59, 65, -208,106,184, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,215, 98,191, 71, 11, 72, 63,230,248, 6, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 14, 29, 63,149,225,182, 62, 84, 76, 52,191, 0, 0, 0, 0, 22, 40, 74,191, -201, 74,139, 62,228,198, 12,191, 0, 0, 0, 0, 84,213,157,187,151,190,100, 63,145,223,229, 62, 0, 0, 0, 0,192,197,211,188, - 76,229, 59, 65,208,106,184, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,194, 51, 3, 0, 0, 0, 0, 56,195, 51, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 61, 16,183,188, + 21,204,103,191, 48,234,228, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 39,155, 64,153, 39,155, 64,153, 39,155, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 15,201, 63, 0, 0,192, 37, +255,255,255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,147, 39, 25, 51, 43, 47, 63,179, 0, 0, 0, 0, 9,108,247, 50, - 0, 0,128, 63, 26, 92,142,178, 0, 0, 0, 0, 43, 4,114,179, 32, 59,141,178, 1, 0,128, 63, 0, 0, 0, 0,135,255,127,177, -130,214, 10, 40, 1, 0, 0,181, 0, 0,128, 63,213, 14, 29, 63, 23, 40, 74,191,254,211,157,187, 0, 0, 0, 0, 83, 76, 52,191, -227,198, 12,191,148,223,229, 62, 0, 0, 0, 0,149,225,182,190,202, 74,139,190,152,190,100,191, 0, 0, 0, 0,208, 36,158,192, -100,186,110,192, 99, 43,169,193, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, - 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, - 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,152, 39, 27, 38,102,187,232,166, 0, 0, 0, 0, +102,187,232, 38,157,134,196, 52,153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38,153, 39,155,192,157,134,196, 52, 0, 0, 0, 0, + 61, 16,183,188, 21,204,103,191, 48,234,228, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,236, 48,206,152, 9, 66, 41, 24, 0, 0, 0, 0, +216, 55, 60,152, 0, 0,128, 63, 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, 64,218, 93, 38, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 27, 50,211, 35, 0, 0, 0, 0, +147,101,158,164, 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175, 25, 50, 83, 62, 0, 0, 0, 0, +236,251, 33, 59,135, 37, 40, 59,118, 71,238, 63, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 27, 50,211, 35, 0, 0, 0, 0, +147,101,158,164, 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175, 25, 50, 83, 62, 0, 0, 0, 0, +236,251, 33, 59,135, 37, 40, 59,118, 71,238, 63, 0, 0,128, 63, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 4, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 0, 0, 92, 3, 0, 0,152, 60,181, 3,115, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 57,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,116,101,120,116,117,114,101, 0,114,101,118,105,101,119, 46, 48, 48, 53, 0, 0, 0, 0, - 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,170,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 64,181, 3, 96, 64,181, 3, - 1, 0, 0, 0, 1, 0, 0, 0, 61, 16,183,188, 21,204,103,191, 48,234,228, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,153, 39,155, 64,153, 39,155, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,218, 15,201, 63, 0, 0,192, 37,255,255,255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64, -152, 39, 27, 38,102,187,232,166, 0, 0, 0, 0,102,187,232, 38,157,134,196, 52,153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38, -153, 39,155,192,157,134,196, 52, 0, 0, 0, 0, 61, 16,183,188, 21,204,103,191, 48,234,228, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, -236, 48,206,152, 9, 66, 41, 24, 0, 0, 0, 0,216, 55, 60,152, 0, 0,128, 63, 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, - 64,218, 93, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62, -147,101,158, 36, 27, 50,211, 35, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62, 59,119,189, 38, 0, 0, 0, 0, 0, 24, 44,173, - 0,179,115,175, 25, 50, 83, 62, 0, 0, 0, 0,236,251, 33, 59, 88, 37, 40, 59,118, 71,238, 63, 0, 0,128, 63, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62, -236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 4, 4, 1, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 40, 64,181, 3, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 96, 64,181, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 77, 65, 0, 0,112, 2, 0, 0,152, 64,181, 3, 42, 0, 0, 0, 1, 0, 0, 0, 64, 68,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104,101, 99,107,101,114,100, 97,114,107, 0, 0, 0, 97,116,101,114,105, 97, 0, 0, - 11, 0, 0, 0, 22, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,124, 36, 57, 62,187, 31, 57, 62,187, 31, 57, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63,154,153, 89, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, - 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 64, 1, 3, 0, 64, 1, 1, 0, 4, 0, - 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63, -205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 56, 67,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67,181, 3, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,232,194, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 56,195, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 77, 65, 0, 0, 32, 3, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104,187,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104,101, 99,107,101, +114,100, 97,114,107, 0, 0, 0, 97,116,101,114,105, 97, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128,192,224, 60,224,181,224, 60,224,181,224, 60, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +154,153, 89, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, + 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 4, 0, 67, 0, 64, 1, 67, 0, 64, 1, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 16, 8, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, +248,198, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 0, 0, 0, 56, 67,181, 3, 33, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,192, 63, - 1, 0,192, 63, 1, 0,192, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,183,209, 56,184,177,209, 56, -184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0,128, 63,205,204, 76, 62, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 67,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0,112, 2, 0, 0, - 64, 68,181, 3, 42, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3,152, 64,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104, -101, 99,107,101,114,108,105,103,104,116, 0, 0, 0, 97,116,101,114,105, 0, 0, 11, 0, 0, 0, 23, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,158, 56, 23, 63,187, 52, 23, 63,187, 52, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,154,153, 89, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, - 2, 0, 2, 0, 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 64, 1, 3, 0, 64, 1, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, - 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,224, 70,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 71,181, 3, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 63,205,204, 76, 63, -205,204, 76, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -136, 0, 0, 0,224, 70,181, 3, 33, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 93,181, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,183,209, 56,184,177,209, 56,184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -152, 71,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0,112, 2, 0, 0,232, 71,181, 3, 42, 0, 0, 0, 1, 0, 0, 0, -200, 78,181, 3, 64, 68,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,112,114,101,118,105,101,119, 0, 0, 97,116,101,114,105, - 97,108, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 61,232, 54, 63,184,161, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,188,248, 68, 62, - 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,121,130, 63, 0, 0,160, 63, - 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 3, - 3, 0, 17, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63, -205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 16, 8, 1, 0, 64, 75,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,136, 74,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 78,181, 3, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 61,205,204,204, 61, -102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,200, 51, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, +205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, +248,198, 51, 3, 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,192, 63, 1, 0,192, 63, + 1, 0,192, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,183,209, 56, +184,177,209, 56,184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 88,200, 51, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,200,200, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,200,200, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 51, 1, 1, 1, 51, 2, 2, 2,153, 2, 2, 2,153, + 3, 3, 3,153, 2, 2, 2,102, 2, 2, 2,102, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 51, 2, 2, 2,153, 3, 3, 3,204, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, + 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 51, + 2, 2, 2,153, 4, 4, 4,255, 5, 5, 5,255, 5, 5, 5,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, + 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,255, 4, 4, 4,204, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 4, 4, 4,204, + 5, 5, 5,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, + 5, 5, 5,255, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,153, 5, 5, 5,255, 6, 6, 6,255, + 6, 6, 6,255, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, + 6, 6, 6,255, 6, 6, 6,255, 3, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 5, 5, 5,255, 6, 6, 6,255, 6, 6, 6,255, + 7, 7, 7,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, + 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 3, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 5, 5, 5,255, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,204, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 6, 6, 6,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 2, 2, 2,102, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,204, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 5, 5,204, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 0, 0, 0, 0, + 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 3, 3, 3,102, + 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 4, 4, 4,153, + 3, 3, 3,102, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 5, 5, 5,204, + 4, 4, 4,153, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 5, 5, 5,204, + 4, 4, 4,153, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 5, 5, 5,204, + 4, 4, 4,153, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 4, 4, 4,153, + 3, 3, 3,102, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 4, 4, 4,153, + 2, 2, 2, 51, 9, 9, 9,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 3, 3, 3,102, + 0, 0, 0, 0, 9, 9, 9,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 1, 1, 1, 51, + 0, 0, 0, 0, 5, 5, 5,153, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 4, 4, 4,153, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 51, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 4, 4, 4,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,204, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, + 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 6, 6, 6,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, + 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,102, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, + 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 4, 4, 4,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, + 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 5, 5, 5,153, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 11, 11, 11,255, 11, 11, 11,255, + 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 8, 8, 8,255, 6, 6, 6,204, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 8, 8, 8,255, 5, 5, 5,153, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 7, 7, 7,204, + 3, 3, 3,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6,153, 8, 8, 8,204, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 7, 7, 7,204, 3, 3, 3,102, 1, 1, 1, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,102, 6, 6, 6,153, 6, 6, 6,153, 8, 8, 8,204, + 8, 8, 8,204, 8, 8, 8,204, 5, 5, 5,153, 4, 4, 4,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 65, 0, 0, 32, 3, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, +136,195, 51, 3, 0, 0, 0, 0,168, 1,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104,101, 99,107,101, +114,108,105,103,104,116, 0, 0, 0, 97,116,101,114,105, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 15,153,157, 62, 40,144,157, 62, 40,144,157, 62, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +154,153, 89, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 2, 0, 2, 0, + 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 4, 0, 67, 0, 64, 1, 67, 0, 64, 1, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 16, 8, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, +136,220, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 0, 0, 0,136, 74,181, 3, 33, 0, 0, 0, - 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 91,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 68, 65, 84, 65, 8, 3, 0, 0, 64, 75,181, 3, 36, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232,221, 51, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, +205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, +136,220, 51, 3, 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,183,209, 56, +184,177,209, 56,184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,232,221, 51, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 88,222, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 88,222, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 51, 6, 6, 6, 51, 18, 18, 18,153, 19, 19, 19,153, + 19, 19, 19,153, 13, 13, 13,102, 13, 13, 13,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 51, 18, 18, 18,153, 26, 26, 26,204, 34, 34, 34,255, 35, 35, 35,255, 37, 37, 37,255, 38, 38, 38,255, + 38, 38, 38,255, 38, 38, 38,255, 38, 38, 38,255, 37, 37, 37,255, 36, 36, 36,255, 15, 15, 15,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 51, + 18, 18, 18,153, 33, 33, 33,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 43, 43, 43,255, 44, 44, 44,255, 44, 44, 44,255, + 45, 45, 45,255, 44, 44, 44,255, 43, 43, 43,255, 43, 43, 43,255, 42, 42, 42,255, 41, 41, 41,255, 40, 40, 40,255, 29, 29, 29,204, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12,102, 28, 28, 28,204, + 38, 38, 38,255, 42, 42, 42,255, 45, 45, 45,255, 47, 47, 47,255, 48, 48, 48,255, 49, 49, 49,255, 50, 50, 50,255, 50, 50, 50,255, + 50, 50, 50,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 47, 47, 47,255, 46, 46, 46,255, 45, 45, 45,255, 44, 44, 44,255, + 41, 41, 41,255, 16, 16, 16,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18,153, 36, 36, 36,255, 42, 42, 42,255, + 45, 45, 45,255, 48, 48, 48,255, 51, 51, 51,255, 53, 53, 53,255, 54, 54, 54,255, 55, 55, 55,255, 55, 55, 55,255, 56, 56, 56,255, + 56, 56, 56,255, 55, 55, 55,255, 55, 55, 55,255, 54, 54, 54,255, 53, 53, 53,255, 52, 52, 52,255, 50, 50, 50,255, 48, 48, 48,255, + 46, 46, 46,255, 44, 44, 44,255, 24, 24, 24,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,102, 38, 38, 38,255, 44, 44, 44,255, 48, 48, 48,255, + 52, 52, 52,255, 54, 54, 54,255, 56, 56, 56,255, 58, 58, 58,255, 59, 59, 59,255, 60, 60, 60,255, 60, 60, 60,255, 61, 61, 61,255, + 61, 61, 61,255, 60, 60, 60,255, 60, 60, 60,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, + 51, 51, 51,255, 48, 48, 48,255, 46, 46, 46,255, 25, 25, 25,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 39, 39, 39,255, 46, 46, 46,255, 50, 50, 50,255, 54, 54, 54,255, + 57, 57, 57,255, 59, 59, 59,255, 61, 61, 61,255, 63, 63, 63,255, 64, 64, 64,255, 65, 65, 65,255, 65, 65, 65,255, 66, 66, 66,255, + 66, 66, 66,255, 65, 65, 65,255, 65, 65, 65,255, 64, 64, 64,255, 63, 63, 63,255, 62, 62, 62,255, 60, 60, 60,255, 58, 58, 58,255, + 56, 56, 56,255, 53, 53, 53,255, 50, 50, 50,255, 47, 47, 47,255, 17, 17, 17,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32,204, 46, 46, 46,255, 52, 52, 52,255, 56, 56, 56,255, 59, 59, 59,255, + 62, 62, 62,255, 64, 64, 64,255, 66, 66, 66,255, 67, 67, 67,255, 69, 69, 69,255, 70, 70, 70,255, 70, 70, 70,255, 70, 70, 70,255, + 70, 70, 70,255, 70, 70, 70,255, 69, 69, 69,255, 68, 68, 68,255, 68, 68, 68,255, 66, 66, 66,255, 65, 65, 65,255, 63, 63, 63,255, + 60, 60, 60,255, 58, 58, 58,255, 54, 54, 54,255, 51, 51, 51,255, 47, 47, 47,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16,102, 46, 46, 46,255, 52, 52, 52,255, 57, 57, 57,255, 61, 61, 61,255, 64, 63, 63,255, + 66, 66, 66,255, 69, 69, 69,255, 71, 70, 70,255, 72, 72, 72,255, 73, 73, 73,255, 74, 74, 74,255, 75, 75, 75,255, 75, 75, 75,255, + 75, 75, 75,255, 75, 74, 74,255, 73, 73, 73,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, + 65, 65, 65,255, 62, 62, 62,255, 59, 59, 59,255, 55, 55, 55,255, 52, 52, 52,255, 38, 38, 38,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43,255, 52, 52, 52,255, 57, 57, 57,255, 61, 61, 61,255, 65, 65, 65,255, 68, 68, 68,255, + 71, 71, 71,255, 73, 73, 73,255, 75, 75, 75,255, 77, 77, 77,255, 78, 78, 78,255, 79, 78, 78,255, 79, 79, 79,255, 79, 79, 79,255, + 79, 79, 79,255, 79, 79, 79,255, 78, 78, 78,255, 77, 77, 77,255, 76, 76, 76,255, 75, 75, 75,255, 73, 73, 73,255, 71, 71, 71,255, + 70, 70, 70,255, 67, 67, 67,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 51, 51, 51,255, 18, 18, 18,102, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 17, 17,102, 50, 50, 50,255, 56, 56, 56,255, 62, 61, 61,255, 66, 66, 66,255, 69, 69, 69,255, 73, 73, 73,255, + 75, 75, 75,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 82, 82, 82,255, 83, 83, 83,255, 84, 84, 84,255, 84, 84, 84,255, + 84, 84, 84,255, 83, 83, 83,255, 83, 83, 83,255, 82, 82, 82,255, 80, 80, 80,255, 79, 79, 79,255, 78, 78, 78,255, 77, 77, 77,255, + 74, 74, 74,255, 71, 71, 71,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 40, 40, 40,204, 0, 0, 0, 0, + 0, 0, 0, 0, 37, 37, 37,204, 55, 55, 55,255, 61, 61, 61,255, 66, 66, 66,255, 70, 70, 70,255, 73, 73, 73,255, 77, 77, 77,255, + 79, 79, 79,255, 81, 81, 81,255, 84, 84, 84,255, 85, 85, 85,255, 87, 87, 87,255, 87, 87, 87,255, 88, 88, 88,255, 89, 89, 89,255, + 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 88, 88, 88,255, 84, 84, 84,255, 83, 83, 83,255, 83, 83, 83,255, 81, 81, 81,255, + 79, 79, 79,255, 76, 76, 76,255, 72, 72, 72,255, 68, 68, 68,255, 63, 63, 63,255, 57, 57, 57,255, 52, 52, 52,255, 0, 0, 0, 0, + 14, 14, 14,102, 50, 50, 50,255, 59, 59, 59,255, 65, 65, 65,255, 70, 70, 70,255, 74, 74, 74,255, 78, 78, 78,255, 81, 81, 81,255, + 84, 84, 84,255, 86, 86, 86,255, 88, 88, 88,255, 90, 90, 90,255, 91, 91, 91,255, 92, 92, 92,255, 92, 92, 92,255, 93, 93, 93,255, + 94, 94, 94,255, 93, 93, 93,255, 93, 93, 93,255, 95, 95, 95,255, 90, 90, 90,255, 90, 90, 90,255, 89, 89, 89,255, 86, 86, 86,255, + 83, 83, 83,255, 80, 80, 80,255, 77, 77, 77,255, 72, 72, 72,255, 67, 67, 67,255, 61, 61, 61,255, 55, 55, 55,255, 20, 20, 20,102, + 18, 18, 18,102, 54, 54, 54,255, 63, 63, 63,255, 69, 69, 69,255, 74, 74, 74,255, 78, 78, 78,255, 82, 82, 82,255, 85, 85, 85,255, + 87, 87, 87,255, 90, 90, 90,255, 92, 92, 92,255, 93, 93, 93,255, 95, 95, 95,255, 96, 96, 96,255, 97, 97, 97,255, 98, 98, 98,255, +100,100,100,255, 99, 99, 99,255, 98, 98, 98,255, 96, 96, 96,255, 95, 95, 95,255, 93, 93, 93,255, 91, 91, 91,255, 89, 89, 89,255, + 87, 87, 87,255, 85, 85, 85,255, 81, 81, 81,255, 76, 76, 76,255, 70, 70, 70,255, 64, 64, 64,255, 58, 58, 58,255, 31, 31, 31,153, + 20, 20, 20,102, 59, 59, 59,255, 66, 66, 66,255, 73, 73, 73,255, 77, 77, 77,255, 82, 81, 81,255, 85, 85, 85,255, 88, 88, 88,255, + 91, 91, 91,255, 94, 94, 94,255, 96, 96, 96,255, 98, 98, 98,255,100,100,100,255,101,101,101,255,102,102,102,255,103,103,103,255, +103,103,103,255,102,102,102,255,100,100,100,255, 99, 99, 99,255, 97, 97, 97,255, 95, 95, 95,255, 93, 93, 93,255, 91, 91, 91,255, + 89, 89, 89,255, 87, 87, 87,255, 84, 84, 84,255, 79, 79, 79,255, 74, 74, 74,255, 67, 67, 67,255, 61, 61, 61,255, 43, 43, 43,204, + 32, 32, 32,153, 62, 62, 62,255, 70, 70, 70,255, 76, 76, 76,255, 81, 81, 81,255, 85, 85, 85,255, 89, 89, 89,255, 92, 92, 92,255, + 95, 95, 95,255, 98, 97, 97,255,100,100,100,255,102,102,102,255,104,104,104,255,105,105,105,255,107,107,107,255,107,107,107,255, +106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 99, 99, 99,255, 97, 97, 97,255, 95, 95, 95,255, 93, 93, 93,255, + 91, 91, 91,255, 88, 88, 88,255, 86, 86, 86,255, 83, 83, 83,255, 77, 77, 77,255, 70, 70, 70,255, 63, 63, 63,255, 44, 44, 44,204, + 32, 32, 32,153, 64, 64, 64,255, 72, 72, 72,255, 79, 79, 79,255, 84, 84, 84,255, 88, 88, 88,255, 92, 92, 92,255, 96, 95, 95,255, + 98, 98, 98,255,101,101,101,255,103,103,103,255,106,106,106,255,107,107,107,255,109,109,109,255,111,111,111,255,109,109,109,255, +108,108,108,255,106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 98, 98, 98,255, 96, 96, 96,255, 94, 94, 94,255, + 92, 92, 92,255, 90, 90, 90,255, 87, 87, 87,255, 85, 85, 85,255, 79, 79, 79,255, 73, 73, 73,255, 65, 65, 65,255, 45, 45, 45,204, + 33, 33, 33,153, 67, 67, 67,255, 75, 75, 75,255, 81, 81, 81,255, 87, 87, 87,255, 91, 91, 91,255, 95, 95, 95,255, 98, 98, 98,255, +102,102,102,255,104,104,104,255,107,107,107,255,109,109,109,255,111,111,111,255,113,113,113,255,113,113,113,255,111,111,111,255, +109,109,109,255,108,108,108,255,106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 98, 98, 98,255, 96, 96, 96,255, + 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 86, 86, 86,255, 81, 81, 81,255, 74, 74, 74,255, 67, 67, 67,255, 35, 35, 35,153, + 22, 22, 22,102, 68, 68, 68,255, 77, 77, 77,255, 84, 84, 84,255, 89, 89, 89,255, 94, 94, 94,255, 98, 98, 98,255,101,101,101,255, +105,105,105,255,108,108,108,255,110,110,110,255,112,112,112,255,115,114,114,255,116,116,116,255,115,115,115,255,113,113,113,255, +111,111,111,255,110,110,110,255,108,108,108,255,106,106,106,255,104,104,104,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, + 95, 95, 95,255, 92, 92, 92,255, 90, 89, 89,255, 87, 87, 87,255, 83, 83, 83,255, 76, 76, 76,255, 68, 68, 68,255, 36, 36, 36,153, + 11, 11, 11, 51, 68, 68, 68,255, 78, 78, 78,255, 86, 86, 86,255, 91, 91, 91,255, 96, 96, 96,255,101,101,101,255,104,104,104,255, +107,107,107,255,110,110,110,255,113,113,113,255,115,115,115,255,117,117,117,255,118,118,118,255,117,117,117,255,115,115,115,255, +113,113,113,255,111,111,111,255,109,109,109,255,107,107,107,255,105,105,105,255,103,103,103,255,101,101,101,255, 98, 98, 98,255, + 96, 96, 96,255, 93, 93, 93,255, 90, 90, 90,255, 88, 87, 87,255, 84, 84, 84,255, 77, 77, 77,255, 68, 68, 68,255, 23, 23, 23,102, + 0, 0, 0, 0, 68, 68, 68,255, 79, 79, 79,255, 87, 87, 87,255, 93, 93, 93,255, 98, 98, 98,255,103,103,103,255,106,106,106,255, +110,110,110,255,113,113,113,255,115,115,115,255,118,118,118,255,120,120,120,255,120,120,120,255,119,119,119,255,117,117,117,255, +115,115,115,255,113,113,113,255,111,111,111,255,109,109,109,255,106,106,106,255,104,104,104,255,102,102,102,255, 99, 99, 99,255, + 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 77, 77, 77,255, 67, 67, 67,255, 11, 11, 11, 51, + 0, 0, 0, 0, 41, 41, 41,153, 79, 79, 79,255, 88, 88, 88,255, 94, 94, 94,255,100,100,100,255,104,104,104,255,108,108,108,255, +112,112,112,255,115,115,115,255,118,118,118,255,120,120,120,255,122,122,122,255,122,122,122,255,120,120,120,255,119,119,119,255, +117,117,117,255,115,115,115,255,112,112,112,255,110,110,110,255,108,108,108,255,105,105,105,255,103,103,103,255,100,100,100,255, + 98, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 85, 84, 84,255, 76, 76, 76,255, 41, 41, 41,153, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 14, 14, 51, 78, 78, 78,255, 88, 88, 88,255, 95, 95, 95,255,101,101,101,255,106,106,106,255,110,110,110,255, +114,114,114,255,117,117,117,255,120,119,119,255,122,122,122,255,124,124,124,255,124,124,124,255,122,122,122,255,120,120,120,255, +118,118,118,255,116,116,116,255,114,114,114,255,111,111,111,255,109,109,109,255,106,106,106,255,104,104,104,255,101,101,101,255, + 98, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 84, 84, 84,255, 75, 75, 75,255, 37, 37, 37,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59,204, 87, 87, 87,255, 95, 95, 95,255,101,101,101,255,106,106,106,255,111,111,111,255, +114,114,114,255,118,118,118,255,121,121,121,255,123,123,123,255,125,125,125,255,125,125,125,255,124,124,124,255,122,122,122,255, +120,120,120,255,117,117,117,255,115,115,115,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,102,102,102,255, + 99, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 82, 82, 82,255, 57, 57, 57,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 51, 84, 84, 84,255, 93, 93, 93,255,101,101,101,255,106,106,106,255,111,111,111,255, +115,115,115,255,118,118,118,255,121,121,121,255,124,124,124,255,126,126,126,255,126,126,126,255,125,125,125,255,123,123,123,255, +121,121,121,255,118,118,118,255,116,116,116,255,113,113,113,255,111,111,111,255,108,108,108,255,105,105,105,255,102,102,102,255, + 99, 99, 99,255, 95, 95, 95,255, 92, 92, 92,255, 88, 88, 88,255, 78, 78, 78,255, 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32,102, 91, 91, 91,255, 99, 99, 99,255,106,106,106,255,111,111,111,255, +115,115,115,255,119,119,119,255,122,122,122,255,124,124,124,255,126,126,126,255,127,127,127,255,126,126,126,255,124,124,124,255, +121,121,121,255,119,119,119,255,117,116,116,255,114,114,114,255,111,111,111,255,108,108,108,255,105,105,105,255,102,102,102,255, + 98, 98, 98,255, 95, 95, 95,255, 91, 91, 91,255, 84, 84, 84,255, 45, 45, 45,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, 51,153, 95, 95, 95,255,103,103,103,255,109,109,109,255, +114,114,114,255,118,118,118,255,121,121,121,255,124,124,124,255,126,126,126,255,128,128,128,255,126,126,126,255,124,124,124,255, +122,122,122,255,119,119,119,255,117,117,117,255,114,114,114,255,111,111,111,255,108,108,108,255,104,104,104,255,101,101,101,255, + 98, 98, 98,255, 94, 94, 94,255, 88, 88, 88,255, 49, 49, 49,153, 12, 12, 12, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,153, 98, 98, 98,255,106,106,106,255, +112,112,112,255,116,116,116,255,119,119,119,255,122,122,122,255,125,125,125,255,127,127,127,255,126,126,126,255,124,124,124,255, +122,122,122,255,119,119,119,255,116,116,116,255,113,113,113,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, + 96, 96, 96,255, 91, 91, 91,255, 66, 66, 66,204, 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,153,100,100,100,255, +107,107,107,255,113,113,113,255,117,117,117,255,120,120,120,255,122,122,122,255,124,124,124,255,125,125,125,255,123,123,123,255, +121,121,121,255,118,118,118,255,116,115,115,255,112,112,112,255,109,109,109,255,105,105,105,255,102,102,102,255, 97, 97, 97,255, + 92, 92, 92,255, 51, 51, 51,153, 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97, 97, 97,255,106,106,106,255,112,112,112,255,115,115,115,255,118,118,118,255,121,121,121,255,122,122,122,255,121,121,121,255, +119,119,119,255,117,117,117,255,114,114,114,255,111,111,111,255,107,107,107,255,103,103,103,255, 98, 98, 98,255, 74, 74, 74,204, + 35, 35, 35,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 56, 56,153, 80, 80, 80,204,106,106,106,255,111,111,111,255,114,114,114,255,116,116,116,255,117,117,117,255, +116,116,116,255,113,113,113,255,110,110,110,255,106,106,106,255,102,102,102,255, 78, 78, 78,204, 38, 38, 38,102, 15, 15, 15, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39,102, 62, 62, 62,153, 64, 64, 64,153, 86, 86, 86,204, + 86, 86, 86,204, 84, 84, 84,204, 61, 61, 61,153, 40, 40, 40,102, 19, 19, 19, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 65, 0, 0, 32, 3, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0,136, 7, 52, 3, 0, 0, 0, 0, + 24,217, 51, 3, 0, 0, 0, 0,168, 1,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,112,114,101,118,105,101, +119, 0, 0, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 30, 18,240, 62,246,137,158, 62, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,188,248, 68, 62, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, +198,121,130, 63, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 2, 0, 2, 0, + 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 4, 0, 67, 0, 16, 3, 67, 0, 16, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 16, 8, 1, 0, +120,243, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 24,242, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,246, 51, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, +205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, + 24,242, 51, 3, 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 23, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 3, 0, 0,120,243, 51, 3, 0, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, 0, 0, 0, 0, -164,112,125, 63, 0, 0,128, 63,106,214, 24, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 3, 55,122, 63, 0, 0,128, 63, 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, @@ -5678,36 +5645,229 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 78,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, -112, 2, 0, 0,200, 78,181, 3, 42, 0, 0, 0, 1, 0, 0, 0,168, 85,181, 3,232, 71,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 65,116,101,120,116,117,114,101, 0,114,101,118,105,101,119, 46, 48, 48, 49, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,246, 51, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 56,247, 51, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 56,247, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 51, 2, 1, 1, 51, 6, 3, 4,153, 6, 2, 4,153, + 5, 1, 4,153, 3, 1, 3,102, 3, 0, 3,102, 2, 0, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 3, 1, 51, 8, 7, 3,153, 11, 9, 5,204, 13, 9, 6,255, 12, 8, 7,255, 11, 6, 7,255, 11, 5, 7,255, + 10, 4, 7,255, 9, 3, 6,255, 9, 2, 7,255, 10, 2, 7,255, 10, 2, 8,255, 4, 1, 3,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 51, + 11, 10, 4,153, 20, 16, 8,255, 23, 15, 12,255, 25, 13, 15,255, 25, 11, 18,255, 24, 9, 18,255, 22, 7, 17,255, 20, 7, 15,255, + 17, 6, 12,255, 14, 5, 9,255, 11, 4, 6,255, 10, 4, 5,255, 10, 4, 5,255, 11, 4, 5,255, 12, 4, 5,255, 9, 3, 5,204, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 3,102, 23, 17, 8,204, + 33, 22, 14,255, 37, 20, 21,255, 38, 16, 26,255, 39, 13, 30,255, 38, 11, 31,255, 36, 9, 30,255, 34, 9, 27,255, 31, 9, 22,255, + 28, 9, 17,255, 24, 9, 13,255, 21, 9, 10,255, 17, 8, 7,255, 14, 6, 5,255, 11, 5, 3,255, 11, 5, 4,255, 12, 6, 4,255, + 13, 6, 4,255, 5, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 13, 5,153, 36, 26, 12,255, 45, 28, 19,255, + 48, 25, 26,255, 51, 20, 33,255, 51, 16, 39,255, 51, 12, 42,255, 48, 10, 42,255, 46, 10, 39,255, 44, 10, 34,255, 41, 12, 28,255, + 38, 13, 22,255, 34, 14, 16,255, 31, 14, 12,255, 27, 13, 9,255, 23, 11, 7,255, 19, 9, 6,255, 14, 7, 5,255, 12, 5, 4,255, + 13, 6, 4,255, 13, 6, 4,255, 7, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 11, 5,102, 45, 31, 15,255, 54, 34, 20,255, 59, 31, 28,255, + 61, 26, 36,255, 61, 20, 44,255, 61, 15, 50,255, 60, 11, 52,255, 58, 10, 52,255, 56, 10, 48,255, 53, 12, 41,255, 51, 15, 33,255, + 48, 17, 25,255, 44, 19, 18,255, 40, 19, 14,255, 37, 18, 11,255, 32, 15, 10,255, 28, 12, 10,255, 24, 9, 10,255, 19, 7, 9,255, + 14, 5, 7,255, 13, 5, 6,255, 13, 5, 5,255, 7, 4, 2,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 9, 7,102, 50, 33, 17,255, 61, 39, 20,255, 67, 37, 26,255, 70, 32, 36,255, + 71, 26, 46,255, 72, 19, 54,255, 71, 14, 60,255, 69, 10, 62,255, 68, 9, 61,255, 66, 10, 56,255, 63, 13, 48,255, 60, 17, 39,255, + 56, 21, 28,255, 53, 23, 21,255, 49, 23, 16,255, 46, 22, 15,255, 42, 18, 16,255, 37, 14, 17,255, 33, 10, 18,255, 28, 7, 17,255, + 22, 5, 14,255, 15, 3, 10,255, 13, 3, 8,255, 12, 5, 6,255, 5, 3, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 26, 18,204, 66, 41, 21,255, 73, 43, 25,255, 78, 40, 33,255, 80, 34, 43,255, + 80, 26, 53,255, 80, 19, 62,255, 80, 13, 69,255, 78, 10, 71,255, 76, 8, 71,255, 74, 10, 65,255, 71, 13, 57,255, 68, 18, 45,255, + 65, 24, 32,255, 61, 27, 23,255, 57, 27, 18,255, 53, 25, 18,255, 49, 19, 22,255, 45, 14, 25,255, 41, 9, 27,255, 36, 5, 28,255, + 30, 4, 25,255, 23, 2, 20,255, 16, 2, 13,255, 12, 2, 9,255, 12, 5, 6,255, 3, 3, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 11, 12,102, 68, 38, 26,255, 78, 46, 25,255, 83, 46, 28,255, 84, 42, 36,255, 84, 35, 45,255, + 84, 27, 55,255, 84, 20, 64,255, 83, 14, 71,255, 82, 9, 75,255, 81, 7, 75,255, 79, 8, 72,255, 78, 12, 63,255, 76, 19, 51,255, + 73, 25, 39,255, 69, 30, 26,255, 65, 31, 20,255, 61, 27, 22,255, 57, 19, 29,255, 53, 11, 36,255, 48, 6, 39,255, 43, 3, 39,255, + 37, 1, 36,255, 31, 1, 30,255, 24, 1, 23,255, 15, 1, 14,255, 12, 2, 9,255, 10, 5, 5,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 29, 35,255, 81, 44, 29,255, 85, 49, 27,255, 86, 48, 29,255, 87, 43, 36,255, 87, 37, 45,255, + 87, 29, 55,255, 86, 22, 64,255, 86, 15, 72,255, 85, 11, 77,255, 83, 8, 78,255, 82, 7, 76,255, 81, 10, 70,255, 79, 15, 59,255, + 77, 22, 47,255, 76, 31, 31,255, 72, 34, 23,255, 68, 30, 24,255, 64, 21, 33,255, 60, 8, 48,255, 55, 2, 52,255, 50, 1, 49,255, + 44, 0, 44,255, 38, 0, 38,255, 31, 0, 30,255, 22, 0, 22,255, 12, 1, 12,255, 12, 4, 9,255, 6, 5, 2,102, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 8, 19,102, 79, 34, 41,255, 86, 46, 31,255, 88, 50, 28,255, 89, 50, 30,255, 90, 46, 36,255, 90, 41, 44,255, + 90, 34, 53,255, 89, 27, 62,255, 89, 20, 69,255, 87, 14, 76,255, 86, 10, 79,255, 85, 8, 80,255, 83, 8, 75,255, 82, 12, 67,255, + 80, 20, 54,255, 78, 31, 35,255, 77, 36, 24,255, 75, 33, 27,255, 71, 20, 42,255, 66, 5, 60,255, 61, 0, 61,255, 56, 1, 55,255, + 51, 3, 47,255, 44, 2, 41,255, 37, 1, 35,255, 29, 1, 28,255, 18, 0, 18,255, 12, 2, 10,255, 11, 6, 6,204, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 15, 43,204, 85, 36, 43,255, 89, 47, 33,255, 91, 52, 29,255, 93, 53, 30,255, 93, 51, 34,255, 94, 47, 41,255, + 93, 41, 49,255, 93, 34, 58,255, 92, 26, 66,255, 91, 20, 73,255, 89, 14, 79,255, 88, 10, 81,255, 86, 9, 79,255, 85, 10, 74,255, + 83, 16, 62,255, 81, 26, 45,255, 79, 34, 31,255, 78, 24, 43,255, 76, 11, 61,255, 73, 2, 71,255, 68, 3, 63,255, 63, 8, 51,255, + 56, 9, 43,255, 50, 9, 37,255, 43, 6, 33,255, 35, 4, 30,255, 25, 1, 23,255, 13, 1, 13,255, 13, 6, 9,255, 0, 0, 0, 0, + 17, 2, 15,102, 79, 18, 60,255, 88, 37, 46,255, 92, 49, 35,255, 95, 56, 31,255, 96, 58, 30,255, 97, 57, 33,255, 98, 54, 39,255, + 98, 49, 46,255, 97, 42, 54,255, 96, 35, 61,255, 95, 28, 68,255, 93, 22, 74,255, 91, 16, 79,255, 89, 12, 82,255, 88, 10, 81,255, + 86, 9, 78,255, 84, 14, 67,255, 82, 18, 58,255, 80, 2, 78,255, 78, 1, 77,255, 77, 9, 64,255, 74, 19, 46,255, 68, 21, 37,255, + 62, 19, 34,255, 55, 18, 29,255, 48, 14, 27,255, 40, 9, 28,255, 30, 4, 25,255, 19, 2, 17,255, 12, 4, 10,255, 7, 5, 3,102, + 28, 3, 26,102, 84, 19, 65,255, 92, 39, 50,255, 96, 52, 39,255, 99, 60, 33,255,101, 64, 32,255,102, 65, 33,255,103, 63, 37,255, +102, 58, 42,255,102, 53, 47,255,100, 47, 54,255, 99, 40, 61,255, 97, 33, 66,255, 95, 26, 72,255, 93, 19, 78,255, 91, 14, 81,255, + 89, 11, 82,255, 87, 8, 81,255, 84, 8, 76,255, 82, 20, 55,255, 81, 35, 31,255, 79, 31, 35,255, 77, 34, 27,255, 74, 34, 24,255, + 67, 31, 22,255, 61, 27, 21,255, 53, 21, 22,255, 46, 15, 24,255, 35, 8, 23,255, 24, 3, 19,255, 13, 3, 11,255, 10, 6, 5,153, + 31, 3, 29,102, 88, 22, 68,255, 96, 42, 54,255,101, 56, 44,255,104, 65, 37,255,107, 70, 34,255,108, 73, 34,255,108, 72, 36,255, +108, 70, 39,255,107, 66, 43,255,106, 60, 48,255,105, 54, 54,255,102, 47, 59,255,100, 39, 64,255, 98, 32, 69,255, 95, 25, 73,255, + 92, 20, 76,255, 90, 17, 74,255, 87, 28, 53,255, 85, 41, 30,255, 83, 34, 35,255, 81, 31, 37,255, 79, 35, 28,255, 77, 31, 31,255, + 73, 30, 28,255, 66, 30, 21,255, 58, 26, 19,255, 50, 21, 20,255, 40, 13, 21,255, 29, 6, 20,255, 17, 3, 14,255, 12, 7, 7,204, + 48, 5, 44,153, 92, 24, 72,255,100, 44, 60,255,106, 60, 50,255,111, 72, 42,255,113, 78, 38,255,115, 82, 37,255,115, 82, 37,255, +115, 81, 38,255,115, 78, 41,255,114, 74, 45,255,112, 69, 49,255,110, 63, 53,255,107, 55, 56,255,103, 50, 57,255,100, 42, 59,255, + 96, 36, 61,255, 93, 33, 59,255, 90, 40, 42,255, 87, 46, 27,255, 85, 33, 42,255, 83, 18, 59,255, 81, 8, 71,255, 78, 12, 61,255, + 76, 21, 45,255, 70, 29, 27,255, 63, 29, 20,255, 55, 25, 17,255, 45, 18, 19,255, 33, 9, 20,255, 21, 4, 16,255, 11, 6, 7,204, + 47, 6, 42,153, 95, 26, 76,255,105, 48, 65,255,112, 66, 56,255,118, 79, 48,255,121, 87, 43,255,122, 91, 41,255,123, 93, 40,255, +124, 94, 40,255,124, 93, 42,255,124, 91, 45,255,124, 88, 48,255,122, 83, 51,255,118, 76, 52,255,112, 69, 49,255,106, 62, 46,255, +102, 54, 46,255, 98, 51, 41,255, 94, 52, 31,255, 90, 48, 30,255, 87, 31, 49,255, 85, 17, 65,255, 82, 6, 75,255, 80, 4, 75,255, + 77, 14, 57,255, 74, 24, 39,255, 67, 28, 25,255, 59, 27, 18,255, 49, 21, 17,255, 37, 13, 18,255, 25, 5, 18,255, 11, 5, 8,204, + 47, 8, 40,153, 99, 31, 78,255,111, 53, 70,255,119, 72, 62,255,125, 86, 55,255,129, 96, 50,255,131,102, 46,255,133,105, 45,255, +134,107, 45,255,137,110, 49,255,142,113, 55,255,143,113, 59,255,142,110, 60,255,136,101, 58,255,126, 91, 51,255,117, 80, 44,255, +108, 70, 38,255,102, 64, 33,255, 98, 56, 34,255, 93, 44, 43,255, 90, 29, 57,255, 87, 16, 70,255, 84, 6, 79,255, 81, 4, 77,255, + 79, 11, 64,255, 76, 19, 49,255, 71, 26, 32,255, 62, 28, 20,255, 52, 24, 17,255, 40, 15, 18,255, 27, 7, 19,255, 9, 3, 7,153, + 31, 8, 24,102,102, 34, 79,255,116, 58, 75,255,126, 80, 67,255,133, 95, 61,255,138,106, 57,255,141,113, 53,255,144,117, 52,255, +148,123, 55,255,155,130, 62,255,166,140, 73,255,174,147, 83,255,173,144, 85,255,163,133, 79,255,147,115, 66,255,131, 97, 53,255, +118, 83, 43,255,108, 70, 39,255,102, 56, 44,255, 96, 42, 54,255, 92, 28, 65,255, 89, 16, 75,255, 86, 8, 80,255, 83, 5, 78,255, + 80, 8, 69,255, 77, 17, 53,255, 74, 25, 37,255, 65, 28, 23,255, 55, 26, 17,255, 43, 17, 18,255, 29, 8, 19,255, 10, 3, 7,153, + 16, 5, 11, 51,103, 39, 76,255,121, 65, 77,255,133, 88, 72,255,142,105, 67,255,148,117, 63,255,152,125, 60,255,156,131, 61,255, +164,140, 67,255,178,155, 80,255,198,174,101,255,213,188,119,255,215,189,124,255,201,173,113,255,175,144, 91,255,149,116, 70,255, +129, 93, 55,255,115, 74, 49,255,106, 58, 52,255,100, 42, 62,255, 95, 27, 72,255, 91, 17, 79,255, 87, 11, 79,255, 84, 7, 79,255, + 81, 8, 72,255, 78, 15, 57,255, 75, 23, 41,255, 68, 28, 26,255, 57, 27, 18,255, 45, 18, 18,255, 30, 7, 20,255, 6, 2, 5,102, + 0, 0, 0, 0,101, 43, 67,255,126, 72, 77,255,140, 97, 75,255,151,116, 71,255,158,129, 68,255,162,138, 66,255,168,145, 68,255, +179,157, 78,255,199,178, 98,255,227,205,127,255,251,228,154,255,255,232,163,255,238,210,149,255,203,172,119,255,167,132, 89,255, +140,101, 69,255,122, 77, 62,255,111, 58, 63,255,103, 43, 69,255, 97, 29, 76,255, 93, 20, 79,255, 89, 15, 77,255, 85, 9, 78,255, + 82, 9, 72,255, 79, 14, 59,255, 75, 22, 43,255, 69, 29, 26,255, 59, 27, 18,255, 46, 18, 19,255, 29, 7, 20,255, 3, 1, 2, 51, + 0, 0, 0, 0, 61, 30, 36,153,126, 76, 75,255,146,105, 76,255,158,127, 74,255,167,142, 71,255,173,151, 71,255,179,159, 74,255, +191,172, 85,255,214,195,107,255,245,225,141,255,255,251,172,255,255,255,183,255,255,233,171,255,222,190,138,255,180,143,104,255, +148,106, 81,255,127, 79, 73,255,115, 60, 72,255,107, 45, 75,255,100, 33, 78,255, 95, 24, 78,255, 90, 18, 77,255, 86, 12, 77,255, + 82, 12, 69,255, 79, 16, 57,255, 76, 24, 41,255, 71, 30, 27,255, 60, 28, 19,255, 46, 17, 20,255, 18, 4, 13,153, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 11, 9, 51,124, 78, 67,255,148,110, 74,255,164,136, 74,255,175,154, 73,255,182,164, 73,255,187,172, 75,255, +199,183, 86,255,219,202,107,255,245,228,137,255,255,249,164,255,255,254,176,255,255,233,167,255,222,191,138,255,183,146,107,255, +152,109, 86,255,131, 82, 77,255,119, 64, 76,255,110, 49, 77,255,103, 38, 78,255, 97, 30, 75,255, 92, 25, 71,255, 87, 15, 75,255, + 83, 15, 66,255, 79, 19, 53,255, 76, 26, 37,255, 71, 31, 25,255, 60, 28, 19,255, 43, 14, 22,255, 11, 2, 8,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 58, 40,204,147,112, 70,255,168,143, 73,255,181,164, 73,255,189,176, 73,255,194,183, 74,255, +202,190, 81,255,215,203, 96,255,233,219,118,255,249,233,139,255,252,232,147,255,237,213,141,255,209,179,121,255,178,143,101,255, +152,111, 86,255,134, 87, 79,255,122, 69, 77,255,113, 55, 77,255,105, 44, 74,255, 98, 37, 69,255, 93, 33, 62,255, 87, 30, 54,255, + 83, 21, 59,255, 79, 23, 49,255, 76, 30, 33,255, 71, 33, 23,255, 58, 25, 21,255, 30, 8, 18,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 12, 6, 51,136,104, 58,255,165,142, 69,255,184,169, 72,255,194,184, 72,255,199,192, 73,255, +204,197, 76,255,210,202, 83,255,218,208, 96,255,225,213,109,255,224,207,114,255,212,190,111,255,192,166,101,255,170,138, 89,255, +151,112, 81,255,136, 92, 77,255,125, 75, 76,255,116, 61, 74,255,107, 51, 70,255,100, 44, 63,255, 93, 39, 55,255, 87, 36, 46,255, + 83, 31, 44,255, 79, 27, 42,255, 75, 32, 29,255, 68, 32, 22,255, 51, 18, 25,255, 8, 2, 5, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 36, 17,102,155,132, 61,255,180,167, 68,255,194,187, 70,255,202,198, 70,255, +206,203, 72,255,207,205, 75,255,209,204, 80,255,209,201, 86,255,204,192, 89,255,194,177, 88,255,180,157, 84,255,165,136, 79,255, +150,115, 76,255,138, 97, 74,255,127, 81, 72,255,117, 68, 68,255,108, 58, 63,255,100, 50, 55,255, 93, 46, 46,255, 87, 43, 36,255, + 82, 31, 43,255, 78, 32, 34,255, 74, 34, 24,255, 63, 26, 24,255, 28, 8, 17,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 64, 27,153,164,148, 60,255,187,179, 66,255,199,197, 68,255, +205,205, 69,255,206,207, 70,255,205,204, 71,255,202,197, 73,255,195,186, 75,255,186,172, 75,255,175,155, 74,255,162,137, 72,255, +150,119, 70,255,139,102, 69,255,128, 87, 66,255,118, 75, 60,255,108, 64, 54,255, 99, 56, 45,255, 92, 51, 37,255, 86, 41, 37,255, + 81, 33, 38,255, 76, 35, 27,255, 70, 31, 24,255, 34, 12, 17,153, 3, 0, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 70, 27,153,167,155, 58,255,188,183, 64,255, +200,199, 67,255,203,204, 68,255,202,202, 68,255,199,196, 69,255,192,186, 69,255,183,172, 69,255,173,156, 68,255,162,140, 67,255, +150,123, 65,255,138,107, 62,255,127, 92, 58,255,116, 79, 52,255,106, 68, 45,255, 97, 60, 37,255, 90, 53, 30,255, 84, 40, 35,255, + 79, 37, 28,255, 73, 33, 25,255, 47, 16, 23,204, 9, 1, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 68, 25,153,161,150, 54,255, +182,177, 62,255,191,189, 64,255,194,193, 65,255,192,189, 65,255,186,181, 65,255,179,169, 64,255,169,155, 63,255,158,139, 61,255, +147,123, 59,255,136,108, 55,255,124, 93, 49,255,113, 81, 43,255,103, 70, 37,255, 94, 59, 30,255, 86, 48, 29,255, 80, 40, 28,255, + 73, 33, 26,255, 39, 14, 19,153, 9, 1, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +139,121, 46,255,163,154, 54,255,174,168, 58,255,176,170, 59,255,174,166, 59,255,168,158, 59,255,160,146, 56,255,150,132, 53,255, +139,118, 50,255,128,104, 45,255,117, 90, 40,255,107, 77, 35,255, 97, 64, 31,255, 88, 51, 29,255, 80, 42, 26,255, 59, 27, 22,204, + 26, 9, 13,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 55, 25,153,106, 89, 37,204,142,127, 46,255,148,134, 48,255,147,132, 48,255,141,124, 46,255,134,115, 44,255, +125,103, 41,255,115, 89, 37,255,106, 76, 34,255, 96, 60, 35,255, 86, 42, 39,255, 64, 25, 33,204, 30, 14, 11,102, 7, 0, 7, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 30, 18,102, 69, 52, 25,153, 70, 54, 24,153, 88, 63, 33,204, + 82, 54, 33,204, 76, 42, 35,204, 52, 23, 29,153, 34, 14, 19,102, 16, 4, 11, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 65, 0, 0, 32, 3, 0, 0,136, 7, 52, 3, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 24, 16, 52, 3, 0, 0, 0, 0, +168,238, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,116,101,120,116,117,114, +101, 0,114,101,118,105,101,119, 46, 48, 48, 49, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, -205,204,204, 61, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 1, 3, 67, 0, 1, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, 2, 0, 2, 0, + 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 4, 0, 71, 0, 1, 3, 67, 0, 1, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 1, 8,129, 0, + 88, 12, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, +248, 10, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168, 15, 52, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, +205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, +248, 10, 52, 3, 0, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 23, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 3, 0, 0, 88, 12, 52, 3, 0, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, 0, 0, 0, 0, + 3, 55,122, 63, 0, 0,128, 63, 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 15, 52, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 24, 16, 52, 3, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,136, 7, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 65,116,101,120,116,117,114,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 0, 3, 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, - 0, 0,128, 63, 1, 8,129, 0, 32, 82,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, -104, 81,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0,136, 19, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 85,181, 3, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 63, -205,204, 76, 63,205,204, 76, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,136, 0, 0, 0,104, 81,181, 3, 33, 0, 0, 0, 1, 0, 0, 0, 1, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 91,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 68, 65, 84, 65, - 8, 3, 0, 0, 32, 82,181, 3, 36, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, 0, 0, 0, 0,164,112,125, 63, 0, 0,128, 63,106,214, 24, 63, 0, 0,128, 63, - 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 22, 52, 3, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63, +111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 3, 0, 0,136, 19, 52, 3, 0, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, 0, 0, 0, 0, 3, 55,122, 63, 0, 0,128, 63, + 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, @@ -5717,7 +5877,6 @@ char datatoc_preview_blend[]= { 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5729,46 +5888,983 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 88, 85,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0,112, 2, 0, 0,168, 85,181, 3, 42, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,200, 78,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,116,101,120,116,117,114,101, 46, 48, 48, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, - 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 3, - 3, 0, 1, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63, -205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 72, 88,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216, 22, 52, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 69, 0, 0,112, 1, 0, 0, 72, 23, 52, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69,112,114,101,118,105,101, +119, 0,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 25, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 25, 52, 3, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,112, 1, 0, 0,120, 25, 52, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 23, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 69,102, 97,107,101,115,104, 97,100,111,119, 0, 0, 76,101,110,100, 0,101,120, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 40, 0, 5, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 27, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 27, 52, 3, 0, 0, 0, 0, + 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, +168, 27, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,168, 27, 52, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,155,155,155,255,155,154,154,255,155,155,155,255,157,157,157,255,158,158,158,255,158,158,158,255, +159,159,159,255,159,159,159,255, 43, 43, 43,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 15, 15, 15,255, + 15, 15, 15,255, 15, 15, 15,255,147,147,147,255,147,147,147,255,147,147,147,255,148,148,148,255,150,150,150,255,153,153,153,255, +157,157,157,255,159,159,159,255, 43, 43, 43,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,159,159,159,255, 14, 14, 14,255, 15, 15, 15,255, 15, 15, 15,255, 16, 16, 16,255, 17, 17, 17,255, 18, 18, 18,255, + 18, 18, 18,255, 19, 19, 19,255,141,141,141,255,141,141,141,255,141,141,141,255,142,142,142,255,143,143,143,255,146,146,146,255, +149,149,149,255,153,153,153,255, 43, 43, 43,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +157,157,157,255,152,152,152,255, 15, 15, 15,255, 17, 17, 17,255, 18, 18, 18,255, 20, 20, 20,255, 21, 21, 21,255, 22, 22, 22,255, + 23, 23, 23,255, 24, 24, 24,255,137,137,137,255,137,137,137,255,137,137,137,255,137,137,137,255,138,138,138,255,140,140,140,255, +143,143,143,255,147,147,147,255, 42, 42, 42,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,156,156,156,255, +150,150,150,255,146,146,146,255, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 25, 25, 25,255, 27, 27, 27,255, 29, 29, 29,255, + 30, 30, 30,255, 31, 31, 31,255,135,135,135,255,135,135,135,255,135,134,134,255,135,135,135,255,135,135,135,255,137,137,137,255, +139,139,139,255,141,141,141,255, 42, 42, 42,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,156,156,156,255,150,150,150,255, +145,145,145,255,142,142,142,255, 22, 22, 22,255, 25, 25, 25,255, 28, 28, 28,255, 32, 32, 32,255, 35, 35, 35,255, 37, 37, 37,255, + 39, 39, 39,255, 40, 40, 40,255,135,135,135,255,135,135,135,255,134,134,134,255,134,134,134,255,134,134,134,255,134,134,134,255, +136,136,136,255,138,138,138,255, 43, 43, 43,255, 16, 16, 16,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,157,157,157,255,150,150,150,255,145,145,145,255, +141,141,141,255,138,138,138,255, 27, 27, 27,255, 31, 31, 31,255, 36, 36, 36,255, 40, 40, 40,255, 44, 44, 44,255, 47, 47, 47,255, + 50, 50, 50,255, 51, 51, 51,255,137,137,137,255,136,136,136,255,136,135,135,255,135,135,135,255,134,134,134,255,134,134,134,255, +134,134,134,255,135,135,135,255, 45, 45, 45,255, 19, 19, 19,255, 16, 16, 16,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,159,159,159,255,152,152,152,255,146,146,146,255,142,142,142,255, +138,138,138,255,137,136,136,255, 32, 32, 32,255, 38, 38, 38,255, 44, 44, 44,255, 50, 50, 50,255, 55, 55, 55,255, 59, 59, 59,255, + 62, 62, 62,255, 64, 64, 64,255,141,141,141,255,140,140,140,255,139,139,139,255,137,137,137,255,136,136,136,255,135,135,135,255, +134,134,134,255,134,134,134,255, 49, 49, 49,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 22, 22, 22,255, + 27, 27, 27,255, 33, 33, 33,255,136,136,136,255,137,137,137,255,138,138,138,255,141,141,141,255,143,143,143,255,145,145,145,255, +147,147,147,255,147,147,147,255, 79, 79, 79,255, 77, 77, 77,255, 73, 73, 73,255, 67, 67, 67,255, 61, 61, 61,255, 53, 53, 53,255, + 46, 46, 46,255, 39, 39, 39,255,114,114,114,255,137,137,137,255,139,139,139,255,143,143,143,255,148,148,148,255,155,155,155,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 17, 17, 17,255, 20, 20, 20,255, 25, 25, 25,255, + 31, 31, 31,255, 38, 38, 38,255,137,137,137,255,139,139,139,255,142,142,142,255,145,145,145,255,148,148,148,255,152,152,152,255, +154,154,154,255,155,155,155,255, 96, 96, 96,255, 93, 93, 93,255, 88, 88, 88,255, 81, 81, 81,255, 73, 73, 73,255, 64, 64, 64,255, + 55, 55, 55,255, 46, 46, 46,255,116,116,116,255,136,136,136,255,137,137,137,255,140,140,140,255,145,145,145,255,151,151,151,255, +159,159,159,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 23, 23, 23,255, 28, 28, 28,255, + 36, 36, 36,255, 44, 44, 44,255,138,138,138,255,142,142,142,255,146,146,146,255,151,151,151,255,155,155,155,255,160,160,160,255, +163,163,163,255,165,165,165,255,114,114,114,255,111,111,111,255,104,104,104,255, 95, 95, 95,255, 85, 85, 85,255, 75, 75, 75,255, + 64, 64, 64,255, 53, 53, 53,255,117,117,117,255,136,135,135,255,136,136,136,255,139,139,139,255,142,142,142,255,148,148,148,255, +156,156,156,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 16, 16, 16,255, 20, 20, 20,255, 25, 25, 25,255, 32, 32, 32,255, + 40, 40, 40,255, 50, 50, 50,255,141,141,141,255,145,145,145,255,151,151,151,255,157,157,157,255,163,163,163,255,169,169,169,255, +174,174,174,255,177,177,177,255,135,135,135,255,130,130,130,255,122,122,122,255,111,111,111,255, 98, 98, 98,255, 85, 85, 85,255, + 73, 73, 73,255, 61, 61, 61,255,119,119,119,255,136,136,136,255,136,136,136,255,137,137,137,255,141,141,141,255,146,146,146,255, +153,153,153,255,161,161,161,255, 14, 14, 14,255, 15, 15, 15,255, 17, 17, 17,255, 21, 21, 21,255, 27, 27, 27,255, 35, 35, 35,255, + 44, 44, 44,255, 55, 55, 55,255,143,143,143,255,149,149,149,255,156,156,156,255,163,163,163,255,172,172,172,255,180,180,180,255, +186,186,186,255,190,190,190,255,158,158,158,255,151,151,151,255,140,140,140,255,126,126,126,255,111,111,111,255, 95, 95, 95,255, + 81, 81, 81,255, 67, 67, 67,255,122,121,121,255,136,136,136,255,136,136,136,255,137,137,137,255,139,139,139,255,144,144,144,255, +151,151,151,255,159,159,159,255, 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 23, 23, 23,255, 29, 29, 29,255, 38, 38, 38,255, + 48, 48, 48,255, 60, 60, 60,255,145,145,145,255,152,152,152,255,160,160,160,255,170,170,170,255,180,180,180,255,191,191,191,255, +200,200,200,255,206,206,206,255,182,182,182,255,173,173,173,255,158,158,158,255,140,140,140,255,122,122,122,255,104,104,104,255, + 88, 88, 88,255, 73, 73, 73,255,123,123,123,255,137,137,137,255,136,136,136,255,136,136,136,255,139,139,139,255,143,143,143,255, +149,149,149,255,157,157,157,255, 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 24, 24, 24,255, 31, 31, 31,255, 39, 39, 39,255, + 50, 50, 50,255, 63, 63, 63,255,147,147,147,255,154,154,154,255,164,164,164,255,175,175,175,255,187,187,187,255,200,200,200,255, +213,213,213,255,223,223,223,255,208,208,208,255,193,193,193,255,173,173,173,255,151,151,151,255,130,130,130,255,111,111,111,255, + 93, 93, 93,255, 77, 77, 77,255,125,125,125,255,137,137,137,255,136,136,136,255,136,136,136,255,138,138,138,255,142,142,142,255, +148,148,148,255,156,156,156,255, 14, 14, 14,255, 16, 16, 16,255, 19, 19, 19,255, 24, 24, 24,255, 31, 31, 31,255, 40, 40, 40,255, + 52, 52, 52,255, 65, 65, 65,255,148,148,148,255,156,156,156,255,166,166,166,255,177,177,177,255,191,191,191,255,206,206,206,255, +223,223,223,255,240,240,240,255,232,232,232,255,208,208,208,255,182,182,182,255,158,158,158,255,135,135,135,255,114,114,114,255, + 96, 96, 96,255, 79, 79, 79,255,126,126,126,255,138,138,138,255,136,136,136,255,136,136,136,255,138,138,138,255,142,142,142,255, +148,148,148,255,155,155,155,255,155,155,155,255,147,147,147,255,141,141,141,255,138,138,138,255,136,136,136,255,136,136,136,255, +138,138,138,255,142,142,142,255, 80, 80, 80,255, 97, 97, 97,255,116,116,116,255,137,137,137,255,159,159,159,255,184,184,184,255, +210,210,210,255,235,235,235,255,240,240,240,255,223,223,223,255,205,205,205,255,190,190,190,255,176,176,176,255,164,164,164,255, +154,154,154,255,147,147,147,255, 79, 79, 79,255, 51, 51, 51,255, 40, 40, 40,255, 31, 31, 31,255, 24, 24, 24,255, 19, 19, 19,255, + 15, 15, 15,255, 14, 14, 14,255,156,155,155,255,148,148,148,255,142,142,142,255,138,138,138,255,136,136,136,255,136,136,136,255, +138,138,138,255,141,141,141,255, 78, 78, 78,255, 94, 94, 94,255,112,112,112,255,132,132,132,255,153,153,153,255,175,175,175,255, +195,195,195,255,210,210,210,255,224,224,224,255,213,213,213,255,200,200,200,255,186,186,186,255,173,173,173,255,162,162,162,255, +153,153,153,255,146,146,146,255, 78, 78, 78,255, 50, 50, 50,255, 39, 39, 39,255, 30, 30, 30,255, 23, 23, 23,255, 18, 18, 18,255, + 15, 15, 15,255, 14, 14, 14,255,157,157,157,255,149,149,149,255,142,142,142,255,138,138,138,255,136,136,136,255,136,136,136,255, +137,137,137,255,140,140,140,255, 74, 74, 74,255, 89, 89, 89,255,106,106,106,255,124,124,124,255,142,142,142,255,160,160,160,255, +175,175,175,255,184,184,184,255,206,206,206,255,200,200,200,255,190,190,190,255,179,179,179,255,169,169,169,255,159,159,159,255, +151,151,151,255,144,144,144,255, 75, 75, 75,255, 47, 47, 47,255, 37, 37, 37,255, 29, 29, 29,255, 22, 22, 22,255, 18, 18, 18,255, + 15, 15, 15,255, 14, 14, 14,255,158,158,158,255,150,150,150,255,144,144,144,255,139,139,139,255,136,136,136,255,136,135,135,255, +136,136,136,255,139,139,139,255, 68, 68, 68,255, 82, 82, 82,255, 97, 97, 97,255,112,112,112,255,128,128,128,255,142,142,142,255, +153,153,153,255,159,159,159,255,191,191,191,255,187,187,187,255,180,180,180,255,171,171,171,255,162,162,162,255,154,154,154,255, +148,147,147,255,142,142,142,255, 72, 72, 72,255, 44, 44, 44,255, 35, 35, 35,255, 27, 27, 27,255, 21, 21, 21,255, 17, 17, 17,255, + 15, 15, 15,255, 14, 14, 14,255,161,161,161,255,152,152,152,255,145,145,145,255,140,140,140,255,137,137,137,255,136,136,136,255, +136,136,136,255,138,138,138,255, 62, 62, 62,255, 74, 74, 74,255, 87, 87, 87,255,100,100,100,255,112,112,112,255,124,124,124,255, +132,132,132,255,137,137,137,255,177,177,177,255,174,174,174,255,169,169,169,255,163,163,163,255,156,156,156,255,150,150,150,255, +144,144,144,255,140,140,140,255, 67, 67, 67,255, 40, 40, 40,255, 32, 32, 32,255, 25, 25, 25,255, 20, 20, 20,255, 16, 16, 16,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,155,155,155,255,148,148,148,255,142,142,142,255,138,138,138,255,136,136,136,255, +136,136,136,255,136,136,136,255, 54, 54, 54,255, 65, 65, 65,255, 76, 76, 76,255, 87, 87, 87,255, 97, 97, 97,255,106,106,106,255, +112,112,112,255,116,116,116,255,165,165,165,255,163,163,163,255,159,159,159,255,155,155,155,255,150,150,150,255,145,145,145,255, +141,141,141,255,137,137,137,255, 62, 62, 62,255, 36, 36, 36,255, 28, 28, 28,255, 22, 22, 22,255, 18, 18, 18,255, 15, 15, 15,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,158,158,158,255,151,151,151,255,144,144,144,255,140,140,140,255,137,137,137,255, +136,136,136,255,136,136,136,255, 47, 47, 47,255, 56, 56, 56,255, 65, 65, 65,255, 74, 74, 74,255, 82, 82, 82,255, 89, 89, 89,255, + 94, 94, 94,255, 97, 97, 97,255,155,155,155,255,154,154,154,255,151,151,151,255,148,148,148,255,144,144,144,255,140,140,140,255, +138,138,138,255,136,136,136,255, 58, 58, 58,255, 31, 31, 31,255, 25, 25, 25,255, 20, 20, 20,255, 17, 17, 17,255, 15, 15, 15,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,154,154,154,255,148,148,148,255,142,142,142,255,139,139,139,255, +137,137,137,255,136,136,136,255, 40, 40, 40,255, 47, 47, 47,255, 54, 54, 54,255, 62, 62, 62,255, 68, 68, 68,255, 74, 74, 74,255, + 78, 78, 78,255, 80, 80, 80,255,147,147,147,255,146,146,146,255,144,144,144,255,142,142,142,255,139,139,139,255,137,137,137,255, +135,135,135,255,135,135,135,255, 53, 53, 53,255, 27, 27, 27,255, 22, 22, 22,255, 18, 18, 18,255, 15, 15, 15,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255, 44, 44, 44,255, 44, 44, 44,255, 43, 43, 43,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, + 46, 46, 46,255, 49, 49, 49,255,115,115,115,255,116,116,116,255,118,118,118,255,120,120,120,255,122,122,122,255,124,124,124,255, +126,126,126,255,126,126,126,255, 80, 80, 80,255, 79, 79, 79,255, 76, 76, 76,255, 72, 72, 72,255, 67, 67, 67,255, 62, 62, 62,255, + 58, 58, 58,255, 53, 53, 53,255,136,136,136,255,115,115,115,255,117,117,117,255,120,120,120,255,124,124,124,255,130,130,130,255, +132,132,132,255,132,132,132,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 16, 16, 16,255, + 19, 19, 19,255, 23, 23, 23,255,137,137,137,255,136,136,136,255,136,136,136,255,136,136,136,255,136,136,136,255,137,137,137,255, +138,138,138,255,138,138,138,255, 52, 52, 52,255, 50, 50, 50,255, 48, 48, 48,255, 44, 44, 44,255, 40, 40, 40,255, 36, 36, 36,255, + 31, 31, 31,255, 27, 27, 27,255,115,115,115,255,141,141,141,255,145,145,145,255,150,150,150,255,157,157,157,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, + 16, 16, 16,255, 19, 19, 19,255,139,139,139,255,137,137,137,255,136,136,136,255,136,136,136,255,136,135,135,255,136,136,136,255, +136,136,136,255,136,136,136,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 35, 35, 35,255, 32, 32, 32,255, 29, 29, 29,255, + 25, 25, 25,255, 22, 22, 22,255,116,116,116,255,145,145,145,255,150,150,150,255,156,156,156,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 15, 15, 15,255, 16, 16, 16,255,142,142,142,255,140,140,140,255,138,138,138,255,137,137,137,255,136,136,136,255,136,136,136,255, +136,136,136,255,136,136,136,255, 31, 31, 31,255, 31, 31, 31,255, 29, 29, 29,255, 27, 27, 27,255, 25, 25, 25,255, 23, 23, 23,255, + 20, 20, 20,255, 18, 18, 18,255,119,119,119,255,150,150,150,255,156,156,156,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,148,148,148,255,144,144,144,255,142,142,142,255,140,140,140,255,139,139,139,255,138,138,138,255, +138,138,138,255,138,138,138,255, 24, 24, 24,255, 24, 24, 24,255, 23, 23, 23,255, 21, 21, 21,255, 20, 20, 20,255, 18, 18, 18,255, + 17, 17, 17,255, 15, 15, 15,255,124,124,124,255,157,157,157,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,154,154,154,255,151,151,151,255,148,148,148,255,145,145,145,255,144,144,144,255,142,142,142,255, +142,142,142,255,141,141,141,255, 19, 19, 19,255, 19, 19, 19,255, 18, 18, 18,255, 17, 17, 17,255, 16, 16, 16,255, 15, 15, 15,255, + 15, 15, 15,255, 14, 14, 14,255,129,129,129,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,158,158,158,255,155,155,155,255,152,152,152,255,150,150,150,255,149,149,149,255, +148,148,148,255,147,147,147,255, 16, 16, 16,255, 15, 15, 15,255, 15, 15, 15,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,131,131,131,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,158,158,158,255,157,157,157,255, +155,155,155,255,155,155,155,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, + 14, 14, 14,255, 14, 14, 14,255,131,131,131,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, +161,161,161,255,161,161,161,255, 77, 69, 0, 0,152, 1, 0, 0,248, 43, 52, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, +200,104, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 69, 99,111,114,110,101,114, 95, 99,104,101, 99,107,101,114,115, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216, 45, 52, 3, 0, 0, 0, 0, 8, 71, 52, 3, 0, 0, 0, 0, 40, 79, 52, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 47, 52, 3, 0, 0, 0, 0,248, 58, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 98, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 46, 52, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 57, 52, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 69, 52, 3, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +116, 0, 0, 0,215, 0, 0, 0,100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, + 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 83, 0, 30, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, +216, 45, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0, + 68, 65, 84, 65,104, 1, 0, 0, 56, 46, 52, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 47, 52, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 9, 0, 0,232, 47, 52, 3, 0, 0, 0, 0, 52, 0, 0, 0,116, 0, 0, 0,214, 28,215, 63, 77, 31, 87, 65, + 74, 36,190,192, 1,192, 1,192,129, 90, 0, 0,173, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192,129, 90, 0, 0, +204,194,135,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 24, 33,215,191,147, 87, 33, 65, 68, 36,190,192, + 0, 0, 0, 0,255,127, 0, 0, 9, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,195, 87,161,192, +179, 31,215, 64, 66, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,202, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0, +255,127, 0, 0, 71,248,139,184,181,115, 6, 65, 70, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 41, 33,215,191,175, 31,215, 64, + 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 15, 32, 87,192,244, 87,161, 64, 66, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, +223, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,220,160,141,184,242, 87,161, 64, 68, 36,190,192, + 0, 0, 0, 0,255,127, 0, 0,172, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,218, 29, 87, 64, +240, 87,161, 64, 70, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,123, 31,215,192,180,115, 6, 65,136, 43,100,192,129, 90,127,165, + 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,113, 59, 60, 65, +147, 43,100,192,129, 90,127,165, 0, 0, 0, 0, 45, 33,215,191, 81, 31, 87, 65,153, 43,100,192,129, 90,127,165, 0, 0, 0, 0, +123, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65, 8, 29,152,191, +129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,113, 59, 60, 65, 19, 29,152,191,129, 90,127,165, 0, 0, 0, 0, 45, 33,215,191, + 81, 31, 87, 65, 30, 29,152,191,129, 90,127,165, 0, 0, 0, 0,123, 31,215,192,180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, + 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65, 1, 29,152, 63,129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,113, 59, 60, 65, +245, 28,152, 63,129, 90,127,165, 0, 0, 0, 0, 45, 33,215,191, 81, 31, 87, 65,234, 28,152, 63,129, 90,127,165, 0, 0, 0, 0, +122, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,193, 87,161,192,148, 87, 33, 65,133, 43,100, 64, +129, 90,127,165, 0, 0, 0, 0, 9, 32, 87,192,114, 59, 60, 65,128, 43,100, 64,129, 90,127,165, 0, 0, 0, 0, 41, 33,215,191, + 81, 31, 87, 65,128, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,123, 31,215,192,180,115, 6, 65, 72, 36,190,192,255, 63, 1,192, +129, 90, 0, 0,194, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90, 0, 0, 11, 32, 87,192,113, 59, 60, 65, + 76, 36,190,192,255, 63, 1,192,129, 90, 0, 0, 45, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192,129, 90, 0, 0, +183,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,184,115, 6,193,127, 31,215, 64,232, 28,152, 63, +129, 90,127,165, 0, 0, 0, 0,184,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0, 0, 0,184,115, 6,193, +127, 31,215, 64,154, 43,100,192,129, 90,127,165, 0, 0, 0, 0,222, 33,215,191,210,189,135, 56, 72, 36,190,192, 0, 0, 0, 0, +255,127, 0, 0,103, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,241, 87,161,192, 2, 32, 87, 64, + 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,171, 31,215,192,190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, +235,192,138,184, 43, 3,114, 65,134, 43,100,192, 0, 0, 1,128, 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65,140, 43,100,192, +127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,112, 59, 60, 65,146, 43,100,192,127,165,127,165, 0, 0, 0, 0,175, 86,161, 64, +146, 87, 33, 65,151, 43,100,192,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65,248, 28,152,191, 0, 0, 1,128, + 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65, 4, 29,152,191,127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,112, 59, 60, 65, + 15, 29,152,191,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65, 16, 29,152, 63, 0, 0, 1,128, 0, 0, 0, 0, +190, 28,215, 63, 78, 31, 87, 65, 4, 29,152, 63,127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,112, 59, 60, 65,249, 28,152, 63, +127,165,127,165, 0, 0, 0, 0,175, 86,161, 64,146, 87, 33, 65,237, 28,152, 63,127,165,127,165, 0, 0, 0, 0,235,192,138,184, + 43, 3,114, 65,142, 43,100, 64, 0, 0, 1,128, 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65,136, 43,100, 64,127,165,127,165, + 0, 0, 0, 0,221, 29, 87, 64,110, 59, 60, 65,130, 43,100, 64,127,165,127,165, 0, 0, 0, 0,175, 86,161, 64,146, 87, 33, 65, +131, 43,100, 64,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65, 72, 36,190,192, 0, 0,126,151,230, 73, 0, 0, +213, 29, 87, 64,112, 59, 60, 65, 76, 36,190,192, 1,192, 1,192,129, 90, 0, 0,149, 30,215, 64,151,115, 6, 65, 72, 36,190,192, + 1,192, 1,192,129, 90, 0, 0, 42,115, 6, 65,117, 31,215, 64,137, 43,100, 64,127,165,127,165, 0, 0, 0, 0,149, 30,215, 64, +151,115, 6, 65,143, 43,100, 64,127,165,127,165, 0, 0, 0, 0, 42,115, 6, 65,117, 31,215, 64, 6, 29,152, 63,127,165,127,165, + 0, 0, 0, 0,149, 30,215, 64,151,115, 6, 65, 18, 29,152, 63,127,165,127,165, 0, 0, 0, 0, 42,115, 6, 65,117, 31,215, 64, + 2, 29,152,191,127,165,127,165, 0, 0, 0, 0,149, 30,215, 64,151,115, 6, 65,246, 28,152,191,127,165,127,165, 0, 0, 0, 0, + 42,115, 6, 65,117, 31,215, 64,139, 43,100,192,127,165,127,165, 0, 0, 0, 0, 3, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, + 0, 0, 0, 0,254,127, 0, 0,126, 31,215, 64,217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,254,127, 0, 0,158,115, 6, 65, +146, 30,215, 64, 72, 36,190,192, 1,192, 1,192,130, 90, 0, 0,158,115, 6, 65,146, 30,215, 64,244, 35,190, 64, 1,192, 1,192, +130, 90, 0, 0,126, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,192, 87,161, 64, 62, 30, 87, 64, +248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 3, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, + 15, 33,215, 63, 24, 2, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,149, 30,215, 64,151,115, 6, 65,244, 35,190, 64, + 1,192, 1,192,129, 90, 0, 0,213, 29, 87, 64,112, 59, 60, 65,240, 35,190, 64, 1,192, 1,192,129, 90, 0, 0,235,192,138,184, + 43, 3,114, 65,244, 35,190, 64, 0, 0,126,151,230, 73, 0, 0,171, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0, +255,127, 0, 0,241, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,103, 32, 87,192, 14, 33,215, 63, +244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,222, 33,215,191,210,189,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, + 45, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90, 0, 0, 11, 32, 87,192,113, 59, 60, 65,240, 35,190, 64, +255, 63, 1,192,129, 90, 0, 0,194, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90, 0, 0,123, 31,215,192, +180,115, 6, 65,244, 35,190, 64,255, 63, 1,192,129, 90, 0, 0,254,226,142,184,239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0, +255,127, 1, 0,189, 28,215, 63,107, 32, 87, 64,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,218, 29, 87, 64,240, 87,161, 64, +246, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,172, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, + 46, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,220,160,141,184,242, 87,161, 64,248, 35,190, 64, + 0, 0, 0, 0,255,127, 0, 0,197, 28,215, 63,172, 31,215, 64,246, 35,190, 64, 0, 0, 0, 0,254,127, 0, 0,223, 29, 87, 64, +179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 15, 32, 87,192,244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0, +255,127, 0, 0, 41, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 71,248,139,184,181,115, 6, 65, +246, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,202, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, +195, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 9, 32, 87,192,182,115, 6, 65,248, 35,190, 64, + 0, 0, 0, 0,255,127, 0, 0, 24, 33,215,191,147, 87, 33, 65,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,204,194,135,184, +112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,173, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192, +129, 90, 0, 0,214, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90, 0, 0,183,115, 6,193,127, 31,215, 64, +238, 35,190, 64,255, 63, 1,192,129, 90, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, +193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, + 0, 0, 0, 0,255,127, 0, 0, 98,234, 53, 56, 38, 33,215,191, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,150, 30,215, 64, +151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191,127,165,127,165, + 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 78, 36,190,192,255, 63, 1,192,129, 90, 0, 0,222,158,142,184,239, 33,215, 63, + 67, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, + 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, + 0, 0, 0, 0,255,127, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 72, 57, 52, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248, 58, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 10, 0, 0,248, 58, 52, 3, 0, 0, 0, 0, 49, 0, 0, 0,215, 0, 0, 0, + 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, + 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 34, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, + 17, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 34, 0, 14, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, + 15, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 34, 0, 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, + 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, + 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, + 4, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, + 18, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 34, 0, 5, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, + 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 34, 0, 43, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, + 46, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, + 47, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 34, 0, 52, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, + 49, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 56, 0, 0, 0, + 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, + 63, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 64, 0, 0, 0, + 0, 0, 34, 0, 1, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, + 1, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, + 59, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, + 59, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 34, 0, 73, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, + 89, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, + 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 89, 0, 0, 0, + 0, 0, 34, 0, 75, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, +103, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, + 79, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 34, 0, 78, 0, 0, 0, 79, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 81, 0, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, + 82, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 85, 0, 0, 0, + 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, + 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,102, 0, 0, 0, + 0, 0, 34, 0, 93, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, + 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,101, 0, 0, 0, + 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, + 94, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, + 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, + 70, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, + 54, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0,102, 0, 0, 0, + 0, 0, 34, 0, 26, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, + 83, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, +107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,114, 0, 0, 0, + 0, 0, 34, 0, 9, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, +115, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, + 11, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,115, 0, 0, 0, + 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 35, 0, 0, 0, + 36, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, + 30, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0,114, 0, 0, 0, + 0, 0, 34, 0, 45, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 45, 0, 0, 0, +110, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, + 60, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0,109, 0, 0, 0, + 0, 0, 34, 0, 64, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, + 38, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,113, 0, 0, 0, + 0, 0, 34, 0, 81, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 73, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, + 71, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, + 85, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,104, 0, 0, 0, + 0, 0, 34, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, +107, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65,104, 1, 0, 0, 88, 69, 52, 3, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 71, 52, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 79, 52, 3, 0, 0, 0, 0, 6, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 98, 52, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 7, 0, 0, 8, 71, 52, 3, + 0, 0, 0, 0, 48, 0, 0, 0,100, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, + 33, 0, 0, 0, 32, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 41, 0, 0, 0, 40, 0, 0, 0, + 9, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 6, 0, 0, 0, 58, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0,114, 0, 0, 0, 11, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0,115, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0,114, 0, 0, 0, 39, 0, 0, 0, + 38, 0, 0, 0,112, 0, 0, 0, 1, 0, 0, 0,115, 0, 0, 0, 11, 0, 0, 0,113, 0, 0, 0, 13, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 59, 0, 0, 0, 1, 0, 0, 0,113, 0, 0, 0,112, 0, 0, 0,107, 0, 0, 0, + 67, 0, 0, 0, 1, 0, 0, 0,106, 0, 0, 0, 68, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 1, 0, 0, 0, 17, 0, 0, 0, + 16, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 46, 0, 0, 0, 21, 0, 0, 0, 17, 0, 0, 0, 42, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, + 15, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 18, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0, + 25, 0, 0, 0, 24, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 18, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 0, 0, 53, 0, 0, 0, 29, 0, 0, 0, 25, 0, 0, 0, 49, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, + 27, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 26, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 22, 0, 0, 0, + 1, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, + 26, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 58, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 42, 0, 0, 0, 1, 0, 0, 0, 48, 0, 0, 0, 47, 0, 0, 0, 43, 0, 0, 0, + 44, 0, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 51, 0, 0, 0, 48, 0, 0, 0,110, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0, + 49, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, + 1, 0, 0, 0,102, 0, 0, 0, 76, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 1, 0, 0, 0,103, 0, 0, 0, 77, 0, 0, 0, + 53, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 70, 0, 0, 0, 75, 0, 0, 0, 61, 0, 0, 0, 60, 0, 0, 0, 1, 0, 0, 0, + 61, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 65, 0, 0, 0, + 64, 0, 0, 0, 1, 0, 0, 0, 65, 0, 0, 0,110, 0, 0, 0, 45, 0, 0, 0,109, 0, 0, 0, 1, 0, 0, 0, 66, 0, 0, 0, +109, 0, 0, 0, 59, 0, 0, 0, 69, 0, 0, 0, 1, 0, 0, 0, 72, 0, 0, 0, 71, 0, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, + 1, 0, 0, 0, 87, 0, 0, 0, 86, 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 1, 0, 0, 0,102, 0, 0, 0, 93, 0, 0, 0, + 89, 0, 0, 0, 75, 0, 0, 0, 1, 0, 0, 0, 92, 0, 0, 0, 91, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 1, 0, 0, 0, + 90, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 86, 0, 0, 0, 1, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, 92, 0, 0, 0, + 93, 0, 0, 0, 1, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 1, 0, 0, 0,103, 0, 0, 0, +101, 0, 0, 0, 97, 0, 0, 0, 76, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, + 1, 0, 0, 0, 98, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 94, 0, 0, 0, 1, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, +100, 0, 0, 0,101, 0, 0, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 1, 0, 0, 0, + 85, 0, 0, 0,104, 0, 0, 0, 78, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 99, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0,101, 0, 0, 0,103, 0, 0, 0, 77, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 98, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0,101, 0, 0, 0,100, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 94, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 95, 0, 0, 0, + 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 97, 0, 0, 0, 93, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, + 91, 0, 0, 0, 90, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 92, 0, 0, 0, 88, 0, 0, 0, + 89, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 81, 0, 0, 0,105, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, + 87, 0, 0, 0, 73, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 70, 0, 0, 0, 75, 0, 0, 0, 89, 0, 0, 0, + 0, 0, 0, 0,109, 0, 0, 0, 45, 0, 0, 0, 1, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, +109, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 52, 0, 0, 0,110, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 60, 0, 0, 0, 61, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,102, 0, 0, 0, 56, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,103, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 53, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 55, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, 50, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 46, 0, 0, 0, + 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 48, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 0, 0, 0, 44, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0,104, 0, 0, 0, 34, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, + 82, 0, 0, 0, 29, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 26, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 35, 0, 0, 0, + 36, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 14, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 37, 0, 0, 0,111, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 57, 0, 0, 0, 42, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, + 59, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,113, 0, 0, 0, 67, 0, 0, 0,106, 0, 0, 0, 0, 0, 0, 0, +112, 0, 0, 0, 38, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,115, 0, 0, 0, 13, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, + 6, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0,115, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 40, 0, 0, 0, 39, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 4, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,111, 0, 0, 0, 41, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +192, 18, 0, 0, 40, 79, 52, 3, 0, 0, 0, 0, 59, 0, 0, 0,100, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189, +120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,190,188, 0, 63, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63,128,106,188,189, +176, 20,186, 62,144, 82,104, 61,128,223, 91, 62, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,188,188, 0, 63, +120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,190,188, 0, 63, +102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, + 0, 21,186, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63,188,188, 0, 63, +120, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,122, 84,181, 62, 32,224, 91, 62,138, 94, 82, 62, 48, 43,135, 61, 61, 84,181, 62,176,104,169,189,185,188, 0, 63, + 96, 44,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63,185,188, 0, 63, + 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 99,131,140, 63, + 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62,185,188, 0, 63, + 96, 44,135, 61,248,207, 38, 63,144,109,169,189,112,226, 76, 63, 64, 38,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,240,244,114, 63, 4,221, 91, 62,180,131,140, 63,116, 19,186, 62, 42,244,114, 63,244, 28, 3, 63,174,225, 76, 63, + 0, 21,186, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, +102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, +242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, +113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190, +216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62, +113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189, +120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63, +173,188,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61, +242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189, +120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, +102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,200, 84,104, 61,244, 65, 79, 63, 96,105,188,189,120, 47, 41, 63, 96,105,188,189,120, 47, 41, 63,200, 84,104, 61, +242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63, +102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 56,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63, +173,188,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, +111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63, +236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63, +173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63, +102, 84,117, 63,174,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,190,188, 0, 63,171,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63, +111,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,162,140,159, 63,210, 28, 3, 63, 99,131,140, 63, + 72, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, + 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, + 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, + 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, + 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 22,172,131, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, + 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,176,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59,174,131,185, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,144,128, 81, 63, + 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 24,172,131, 63, + 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,227,151,158, 63, + 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 24,172,131, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, + 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,225,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,227,151,158, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,146,128, 81, 63, 96,211, 93, 59,250,168, 27, 63, + 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,250,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59,251,168, 27, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,146,128, 81, 63, + 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,225,151,158, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59,251,168, 27, 63, + 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59,226,151,158, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 86,162,203, 62, + 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 21,172,131, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,226,151,158, 63, + 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 21,172,131, 63, + 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,248,168, 27, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,144,128, 81, 63, + 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,224,151,158, 63, + 96,211, 93, 59, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63, +236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63, +210, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63, +236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63, +210, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 72, 47, 41, 63, 44,244,114, 63, +236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,174,225, 76, 63, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63, +173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63, +236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, +111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63, +111,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63, +102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, +111,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190, +220, 28, 3, 63, 56,127,118,190,220, 28, 3, 63, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61,244, 65, 79, 63,200, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63,122, 84,181, 62, +113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,200, 84,104, 61,242, 65, 79, 63, 96,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, +242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, +102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189, +120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61, +242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63, +173,188,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189, +120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62, +113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190, +216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, +102, 84,117, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,188,188, 0, 63, +173,188,160, 63,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,180,131,140, 63,116, 19,186, 62,244,140,159, 63, 50, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 42,244,114, 63, +244, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 51,207, 38, 63, + 24,224, 91, 62,112,226, 76, 63, 64, 38,135, 61,240,244,114, 63, 4,221, 91, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 61, 84,181, 62,176,104,169,189, 93,189, 0, 63, 80, 1,109,190,248,207, 38, 63, +144,109,169,189, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 52,207, 38, 63, +248, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, 96, 44,135, 61, 51,207, 38, 63, + 24,224, 91, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, +236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,188,188, 0, 63,120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 52,207, 38, 63, +248, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62,144, 82,104, 61, +128,223, 91, 62,138, 94, 82, 62, 48, 43,135, 61,122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, 52,207, 38, 63, +236, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63,160, 84,104, 61, + 0, 29, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 56,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, +113,179,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61, +242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, + 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63,128,106,188,189,176, 20,186, 62,160, 84,104, 61, + 0, 29, 3, 63, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 6, 0, 0, 56, 98, 52, 3, + 0, 0, 0, 0, 53, 0, 0, 0,144, 1, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0,200,104, 52, 3, 0, 0, 0, 0, 46, 0, 0, 0, + 1, 0, 0, 0, 56,108, 53, 3, 0, 0, 0, 0,248, 43, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69, 67,117, 98,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,106, 52, 3, 0, 0, 0, 0, 56,199, 52, 3, 0, 0, 0, 0,152,238, 52, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,108, 52, 3, 0, 0, 0, 0, 24,150, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 76, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,106, 52, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,148, 52, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,197, 52, 3, + 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 1, 0, 0,237, 3, 0, 0,244, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,192,133, 88, 61,184, 45, 85,189, +196,181, 24,190,185, 71, 35, 63,153, 31,235, 62,130,102,203, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, + 30, 0, 4, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 8, 0, 0, 0,168,106, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65, +104, 1, 0, 0,248,106, 52, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,108, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 91,181, 3, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 61,205,204,204, 61, -102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 3, 0, 0, 72, 88,181, 3, 36, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, - 0, 0, 0, 0,164,112,125, 63, 0, 0,128, 63,106,214, 24, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +116, 39, 0, 0,168,108, 52, 3, 0, 0, 0, 0, 52, 0, 0, 0,249, 1, 0, 0,140,144,131, 62,119,163,200, 60,156, 9, 85, 62, + 36, 93, 58,172, 64, 26, 0, 0, 50,222, 26,190,119,163,200, 60,156, 9, 85, 62,220,162, 58,172, 64, 26, 0, 0, 61,126,146, 62, +223, 37, 8,188, 99,183, 47, 62, 80, 77,177,190, 91, 78, 2, 0,147,185, 56,190,223, 37, 8,188, 99,183, 47, 62,176,178,177,190, + 91, 78, 2, 0,129,176,157, 62,211, 91,217,188,244,238,246, 61,106, 87,237,185,228, 61, 2, 0, 28, 30, 79,190,211, 91,217,188, +244,238,246, 61,150,168,237,185,228, 61, 2, 0,115, 19, 94, 62,103,251,128,189,150, 32, 14, 62,213, 14, 8,145, 9, 62, 2, 0, + 26,161,227,189,103,251,128,189,150, 32, 14, 62, 43,241, 8,145, 9, 62, 2, 0,115, 19, 94, 62,251,118, 25,189, 20,165, 62, 62, +146, 12,225,159,148, 83, 2, 0, 26,161,227,189,251,118, 25,189, 20,165, 62, 62,110,243,225,159,148, 83, 2, 0,115, 19, 94, 62, +232,107, 34, 60,116,128, 92, 62,205, 4,122,132, 46, 33, 0, 0, 26,161,227,189,232,107, 34, 60,116,128, 92, 62, 51,251,122,132, + 46, 33, 0, 0, 58,193, 56, 62,119,163,200, 60, 77,247, 99, 62, 30,172, 83,167,129, 38, 0, 0,168,252,152,189,119,163,200, 60, + 77,247, 99, 62,226, 83, 83,167,129, 38, 0, 0,109, 42, 23, 62,223, 37, 8,188, 88,215, 73, 62, 41,217, 14,206, 67,111, 0, 0, +229,197, 0, 62,211, 91,217,188, 71, 14, 29, 62,114,185,159,174, 37, 69, 2, 0,249, 23,164,188,211, 91,217,188, 71, 14, 29, 62, +142, 70,159,174, 37, 69, 2, 0, 88,231,182, 61,159,154,121, 61,179,201, 32, 62,182,151,132,255, 51, 74, 2, 0,207,121,134, 60, +159,154,121, 61,179,201, 32, 62, 74,104,132,255, 51, 74, 2, 0, 25,158,242, 61,159,154,121, 61, 88,215, 73, 62, 44,167,141,255, + 38, 92, 2, 0,110,194, 80,188,159,154,121, 61, 88,215, 73, 62,212, 88,141,255, 38, 92, 2, 0,138,211, 41, 62,159,154,121, 61, + 77,247, 99, 62,233,134, 91,254,110, 41, 0, 0,143, 66,118,189,159,154,121, 61, 77,247, 99, 62, 23,121, 91,254,110, 41, 0, 0, + 58,193, 56, 62,154,232,206, 61, 77,247, 99, 62, 63,171,127, 88,251, 36, 0, 0,168,252,152,189,154,232,206, 61, 77,247, 99, 62, +193, 84,127, 88,251, 36, 0, 0,109, 42, 23, 62,173, 79, 5, 62, 88,215, 73, 62,191,197, 53, 67, 11, 92, 2, 0, 31,158, 43,189, +173, 79, 5, 62, 88,215, 73, 62, 65, 58, 53, 67, 11, 92, 2, 0,229,197, 0, 62, 54,180, 27, 62, 71, 14, 29, 62, 49,188, 51, 80, + 41, 73, 2, 0,249, 23,164,188, 54,180, 27, 62, 71, 14, 29, 62,207, 67, 51, 80, 41, 73, 2, 0,115, 19, 94, 62,111, 6, 65, 62, +150, 32, 14, 62,171, 15, 44,107, 51, 68, 2, 0, 26,161,227,189,111, 6, 65, 62,150, 32, 14, 62, 85,240, 44,107, 51, 68, 2, 0, +115, 19, 94, 62, 14, 43, 35, 62, 20,165, 62, 62, 10, 13,188, 94, 19, 85, 2, 0, 26,161,227,189, 14, 43, 35, 62, 20,165, 62, 62, +246,242,188, 94, 19, 85, 2, 0,115, 19, 94, 62,250,195,236, 61,116,128, 92, 62, 27, 4, 73,124, 81, 30, 0, 0, 26,161,227,189, +250,195,236, 61,116,128, 92, 62,229,251, 73,124, 81, 30, 0, 0,140,144,131, 62,154,232,206, 61,156, 9, 85, 62,179, 93,140, 83, +243, 24, 0, 0, 50,222, 26,190,154,232,206, 61,156, 9, 85, 62, 77,162,140, 83,243, 24, 0, 0, 61,126,146, 62,173, 79, 5, 62, + 99,183, 47, 62,225, 77, 89, 63,101, 79, 2, 0,147,185, 56,190,173, 79, 5, 62, 99,183, 47, 62, 31,178, 89, 63,101, 79, 2, 0, +129,176,157, 62, 54,180, 27, 62,244,238,246, 61, 10, 86,225, 68, 20, 65, 2, 0, 28, 30, 79,190, 54,180, 27, 62,244,238,246, 61, +246,169,225, 68, 20, 65, 2, 0,157, 89,176, 62,159,154,121, 61, 67, 1,232, 61, 39,111,149,255,117, 63, 2, 0, 84,112,116,190, +159,154,121, 61, 67, 1,232, 61,217,144,149,255,117, 63, 2, 0,237,107,161, 62,159,154,121, 61,139, 64, 40, 62,169,102,145,255, +112, 76, 2, 0,244,148, 86,190,159,154,121, 61,139, 64, 40, 62, 87,153,145,255,112, 76, 2, 0,100, 7,139, 62,159,154,121, 61, + 48, 78, 81, 62, 36,125,151,254,216, 26, 0, 0,227,203, 41,190,159,154,121, 61, 48, 78, 81, 62,220,130,151,254,216, 26, 0, 0, + 26,229,140, 62,159,154,121, 61, 8,197, 88, 62,162,124,112,254, 23, 29, 2, 0, 79,135, 45,190,159,154,121, 61, 8,197, 88, 62, + 94,131,112,254, 23, 29, 2, 0, 66,110,133, 62,114, 95,214, 61,116,128, 92, 62,105, 92, 46, 83,100, 30, 2, 0,158,153, 30,190, +114, 95,214, 61,116,128, 92, 62,151,163, 46, 83,100, 30, 2, 0,115, 19, 94, 62,170,177,251, 61,185,178,103, 62,203, 4,126,119, +158, 45, 2, 0, 26,161,227,189,170,177,251, 61,185,178,103, 62, 53,251,126,119,158, 45, 2, 0,206, 5, 53, 62,114, 95,214, 61, +145, 41,111, 62,213,175,209, 82,166, 55, 2, 0,208,133,145,189,114, 95,214, 61,145, 41,111, 62, 43, 80,209, 82,166, 55, 2, 0, +178, 92, 34, 62,159,154,121, 61,145, 41,111, 62, 93,139,110,254,175, 52, 2, 0, 48,103, 88,189,159,154,121, 61,145, 41,111, 62, +163,116,110,254,175, 52, 2, 0,206, 5, 53, 62, 22,200,170, 60,145, 41,111, 62,226,176, 82,172,220, 55, 2, 0,208,133,145,189, + 22,200,170, 60,145, 41,111, 62, 30, 79, 82,172,220, 55, 2, 0,115, 19, 94, 62,159,154,121, 61,253,228,114, 62,128, 23, 82,255, +209,125, 2, 0, 26,161,227,189,159,154,121, 61,253,228,114, 62,128,232, 82,255,209,125, 2, 0,115, 19, 94, 62,149,249, 43, 59, +185,178,103, 62,186, 4, 80,136, 27, 45, 2, 0, 26,161,227,189,149,249, 43, 59,185,178,103, 62, 70,251, 80,136, 27, 45, 2, 0, + 66,110,133, 62, 22,200,170, 60,116,128, 92, 62,134, 91,236,171,153, 30, 2, 0,158,153, 30,190, 22,200,170, 60,116,128, 92, 62, +122,164,236,171,153, 30, 2, 0,203,133, 88, 61,202,248, 23, 62, 88,215, 73, 62, 0, 0,209,122, 10, 36, 0, 0,203,133, 88, 61, + 34, 77,229, 61,145, 41,111, 62, 0, 0,235,252,245,127, 0, 0,203,133, 88, 61,150,254,188,190,236, 27, 70, 62, 0, 0,159,251, +235,127, 0, 0,203,133, 88, 61,191, 79, 78,190,116,128, 92, 62, 0, 0, 65,146,221, 65, 2, 0,203,133, 88, 61,146,221, 14,190, + 77,247, 99, 62, 0, 0,125,100, 70, 79, 0, 0,203,133, 88, 61, 30, 99,211,190, 20,165, 62, 62, 0, 0,104,140,246, 54, 2, 0, +203,133, 88, 61,133,198, 12, 62,190,169, 6, 62, 0, 0,143,112,238, 60, 0, 0,203,133, 88, 61, 99, 38, 91, 62, 28,120,239, 61, + 0, 0,104, 79, 98,100, 0, 0,203,133, 88, 61, 16,243,187, 62,170,250,206,190, 0, 0,144,106, 25,185, 2, 0,203,133, 88, 61, +247,106, 87, 62,178,224, 11,191, 0, 0, 51, 40,124,134, 3, 0,203,133, 88, 61, 18,165,157,188, 33, 20, 9,191, 0, 0,140,217, +235,133, 2, 0,203,133, 88, 61, 32, 43,108,190,227, 83,160,190, 0, 0,143,135,174,212, 2, 0,109, 42, 23, 62,146,221, 14,190, + 67, 1,232, 61,224,115, 50,206,203, 21, 0, 0, 31,158, 43,189,146,221, 14,190, 67, 1,232, 61, 32,140, 50,206,203, 21, 0, 0, + 87,106, 75, 62,138, 37,131,190, 28,120,239, 61,136,123, 6, 28, 94, 18, 2, 0,225, 78,190,189,138, 37,131,190, 28,120,239, 61, +120,132, 6, 28, 94, 18, 2, 0,115, 19, 94, 62, 2,186,192,190, 28,120,239, 61,229,124, 36, 12, 56, 25, 0, 0, 26,161,227,189, + 2,186,192,190, 28,120,239, 61, 27,131, 36, 12, 56, 25, 0, 0, 75,138,101, 62,200, 96,239,190,227, 37,202, 61, 26,124, 38,237, + 2, 25, 2, 0,203,142,242,189,200, 96,239,190,227, 37,202, 61,230,131, 38,237, 2, 25, 2, 0, 47,225, 82, 62,195,112,252,190, + 10,175,194, 61,185, 83, 15,161,241, 18, 2, 0,146, 60,205,189,195,112,252,190, 10,175,194, 61, 71,172, 15,161,241, 18, 2, 0, + 41,248, 11, 62,242, 4, 1,191,107,138,224, 61, 45, 20, 69,131,109, 20, 2, 0, 27,170,253,188,242, 4, 1,191,107,138,224, 61, +211,235, 69,131,109, 20, 2, 0,203,133, 88, 61,168,226, 2,191,244,238,246, 61, 0, 0,219,130,219, 26, 2, 0,140,144,131, 62, + 18,242,240,189,227, 37,202, 61, 38, 46,194,136,209, 5, 2, 0, 50,222, 26,190, 18,242,240,189,227, 37,202, 61,218,209,194,136, +209, 5, 2, 0, 83, 55,178, 62, 23,233,143,189,187,156,209, 61, 96, 75,200,154, 89, 21, 2, 0,193, 43,120,190, 23,233,143,189, +187,156,209, 61,160,180,200,154, 89, 21, 2, 0, 26,222,224, 62,182,236,140, 60, 49, 21,112, 61,208,116,116,204, 17,247, 2, 0, +167,188,170,190,182,236,140, 60, 49, 21,112, 61, 48,139,116,204, 17,247, 2, 0,243, 84,232, 62,202,248, 23, 62, 82,238, 2, 62, +167,112, 64, 54, 93, 27, 2, 0,128, 51,178,190,202,248, 23, 62, 82,238, 2, 62, 89,143, 64, 54, 93, 27, 2, 0,112,224,196, 62, +190, 24, 50, 62, 2,220, 17, 62, 70, 65,159,106,113, 27, 0, 0,253,190,142,190,190, 24, 50, 62, 2,220, 17, 62,186,190,159,106, +113, 27, 0, 0,134,160,144, 62, 20, 20,106, 62, 99,183, 47, 62,131, 76, 82,100,139, 21, 0, 0, 39,254, 52,190, 20, 20,106, 62, + 99,183, 47, 62,125,179, 82,100,139, 21, 0, 0,195, 37, 79, 62, 67, 92,154, 62,236, 27, 70, 62, 56, 29,185,122,159, 21, 2, 0, +186,197,197,189, 67, 92,154, 62,236, 27, 70, 62,200,226,185,122,159, 21, 2, 0,229,197, 0, 62,181, 7,145, 62, 48, 78, 81, 62, + 95,179,127, 99,180, 24, 2, 0,249, 23,164,188,181, 7,145, 62, 48, 78, 81, 62,161, 76,127, 99,180, 24, 2, 0,168,249,167, 61, + 42,212, 53, 62,196,146, 77, 62,169,154,155, 74, 94, 23, 0, 0,144, 48,194, 60, 42,212, 53, 62,196,146, 77, 62, 87,101,155, 74, + 94, 23, 0, 0, 81,129, 4, 62,241,129, 16, 62, 8,197, 88, 62,248, 33,229,229,156,120, 0, 0, 89,243,193,188,241,129, 16, 62, + 8,197, 88, 62, 8,222,229,229,156,120, 0, 0,105,176,227, 61, 17,132,184, 61,156, 9, 85, 62,162, 3,150,230,100,125, 0, 0, +214,169,178,187, 17,132,184, 61,156, 9, 85, 62, 94,252,150,230,100,125, 0, 0, 31,158, 43,189,223, 37, 8,188, 88,215, 73, 62, +215, 38, 14,206, 67,111, 0, 0,184, 69,105, 62, 92, 82, 55,189, 59, 46, 55, 62,194, 39,112,212,152,113, 0, 0,163, 5,250,189, + 92, 82, 55,189, 59, 46, 55, 62, 62,216,112,212,152,113, 0, 0,134,160,144, 62,115,128,187,188,139, 64, 40, 62,176, 53,101,207, +137,105, 0, 0, 39,254, 52,190,115,128,187,188,139, 64, 40, 62, 80,202,101,207,137,105, 0, 0,157, 89,176, 62,205, 26, 17, 61, + 71, 14, 29, 62,129, 56,167,229,200,111, 0, 0, 84,112,116,190,205, 26, 17, 61, 71, 14, 29, 62,127,199,167,229,200,111, 0, 0, + 9, 21,180, 62, 57, 13,177, 61, 71, 14, 29, 62,117, 46,213,228, 33,116, 0, 0, 45,231,123,190, 57, 13,177, 61, 71, 14, 29, 62, +139,209,213,228, 33,116, 0, 0,123,192,170, 62,170,177,251, 61, 31,133, 36, 62,228, 30,190,216,216,117, 0, 0, 16, 62,105,190, +170,177,251, 61, 31,133, 36, 62, 28,225,190,216,216,117, 0, 0,214,178,129, 62, 54,180, 27, 62, 20,165, 62, 62, 82, 25,170,254, +117,125, 0, 0,198, 34, 23,190, 54,180, 27, 62, 20,165, 62, 62,174,230,170,254,117,125, 0, 0,246,142, 45, 62,230,161, 42, 62, + 48, 78, 81, 62, 13, 34,233,239, 84,122, 0, 0, 32,152,130,189,230,161, 42, 62, 48, 78, 81, 62,243,221,233,239, 84,122, 0, 0, +203,133, 88, 61,104,133,209,190,236, 27, 70, 62, 0, 0,130,201,209,115, 0, 0,185,194,212, 61, 36, 83,198,190,236, 27, 70, 62, +244, 19, 41,234,135,124, 0, 0,191,196,240, 58, 36, 83,198,190,236, 27, 70, 62, 12,236, 41,234,135,124, 0, 0,145, 57,220, 61, +207, 80,226,190,167,233, 58, 62,102, 11,172,214,154,120, 0, 0, 77,241,236,186,207, 80,226,190,167,233, 58, 62,154,244,172,214, +154,120, 0, 0,168,249,167, 61, 19,131,237,190,207,114, 51, 62,198,252, 75,203,152,116, 0, 0,144, 48,194, 60, 19,131,237,190, +207,114, 51, 62, 58, 3, 75,203,152,116, 0, 0,203,133, 88, 61,200, 96,239,190, 99,183, 47, 62, 0, 0,154,213,196,120, 0, 0, +203,133, 88, 61,254,152, 18,190,196,146, 77, 62, 0, 0, 46, 97, 76, 83, 0, 0,203,133, 88, 61, 18,242,240,189, 88,215, 73, 62, + 0, 0,220, 72, 59,105, 0, 0,225, 75,205, 61,235,104,248,189, 88,215, 73, 62, 91, 32,137, 44,141,115, 0, 0,179,158,179, 59, +235,104,248,189, 88,215, 73, 62,165,223,137, 44,141,115, 0, 0,105,176,227, 61,174,134, 33,190,196,146, 77, 62, 91, 92, 85,209, + 85, 75, 0, 0,214,169,178,187,174,134, 33,190,196,146, 77, 62,165,163, 85,209, 85, 75, 0, 0, 48, 94,190, 61, 15, 98, 63,190, + 88,215, 73, 62,153, 63, 63,200, 17, 96, 0, 0,220, 60, 81, 60, 15, 98, 63,190, 88,215, 73, 62,103,192, 63,200, 17, 96, 0, 0, +252,119,116, 62,239, 95,151,189,139, 64, 40, 62,192, 48,194,189, 17, 98, 0, 0, 22, 53, 8,190,239, 95,151,189,139, 64, 40, 62, + 64,207,194,189, 17, 98, 0, 0,231,123,174, 62,211, 91,217,188, 2,220, 17, 62,214, 63,168,204, 87, 98, 2, 0,232,180,112,190, +211, 91,217,188, 2,220, 17, 62, 42,192,168,204, 87, 98, 2, 0,220,155,200, 62, 45,246, 46, 61,190,169, 6, 62, 66, 70, 51,214, +123, 98, 0, 0,105,122,146,190, 45,246, 46, 61,190,169, 6, 62,190,185, 51,214,123, 98, 0, 0, 72, 87,204, 62,170,177,251, 61, +179,201, 32, 62,103, 62, 46,237, 39,110, 0, 0,213, 53,150,190,170,177,251, 61,179,201, 32, 62,153,193, 46,237, 39,110, 0, 0, + 78, 71,191, 62,241,129, 16, 62,128, 96, 66, 62,188, 43,214,251, 56,120, 2, 0,219, 37,137,190,241,129, 16, 62,128, 96, 66, 62, + 68,212,214,251, 56,120, 2, 0,140,144,131, 62, 31,244, 79, 62, 77,247, 99, 62, 53, 40, 29,252,116,121, 0, 0, 50,222, 26,190, + 31,244, 79, 62, 77,247, 99, 62,203,215, 29,252,116,121, 0, 0, 87,106, 75, 62, 48,189,124, 62,105,160,118, 62,180, 34, 68, 27, + 37,120, 0, 0,225, 78,190,189, 48,189,124, 62,105,160,118, 62, 76,221, 68, 27, 37,120, 0, 0,109, 42, 23, 62,236,138,113, 62, + 65, 23,126, 62,250,234, 91, 20,154,124, 0, 0, 31,158, 43,189,236,138,113, 62, 65, 23,126, 62, 6, 21, 91, 20,154,124, 0, 0, +225, 75,205, 61,202,248, 23, 62,213, 91,122, 62,170,246, 84,252,154,127, 0, 0,179,158,179, 59,202,248, 23, 62,213, 91,122, 62, + 86, 9, 84,252,154,127, 0, 0,105,176,227, 61,217,159,203,189, 37,110,107, 62,125, 8, 79,231, 77,125, 0, 0,214,169,178,187, +217,159,203,189, 37,110,107, 62,131,247, 79,231, 77,125, 0, 0,218,229, 26, 62, 64, 3,133,190,167,233, 58, 62, 41, 75, 84, 14, +155,102, 2, 0,207,139, 58,189, 64, 3,133,190,167,233, 58, 62,215,180, 84, 14,155,102, 2, 0,246,142, 45, 62,184,151,194,190, + 99,183, 47, 62,174, 72,200,251, 69,105, 2, 0, 32,152,130,189,184,151,194,190, 99,183, 47, 62, 82,183,200,251, 69,105, 2, 0, +206, 5, 53, 62, 99,149,222,190, 31,133, 36, 62, 39, 71, 91,228,189,102, 2, 0,208,133,145,189, 99,149,222,190, 31,133, 36, 62, +217,184, 91,228,189,102, 2, 0, 30, 24, 38, 62,234,249,244,190,111,151, 21, 62,118, 46,217,176, 53, 89, 2, 0,224, 84,103,189, +234,249,244,190,111,151, 21, 62,138,209,217,176, 53, 89, 2, 0, 81,129, 4, 62, 86,181,248,190,111,151, 21, 62,124, 21,143,159, + 92, 81, 2, 0, 89,243,193,188, 86,181,248,190,111,151, 21, 62,132,234,143,159, 92, 81, 2, 0,203,133, 88, 61,195,112,252,190, +219, 82, 25, 62, 0, 0,155,154, 28, 78, 2, 0,203,133, 88, 61, 52, 55,247,188,128, 96, 66, 62, 0, 0,185, 1,252,127, 0, 0, +203,133, 88, 61,222,227, 61, 61,156, 9, 85, 62, 0, 0,102,227,194,124, 0, 0, 47,225, 82, 62, 82, 93, 46, 62, 88,215, 73, 62, + 20, 17,134,243, 60,126, 0, 0,146, 60,205,189, 82, 93, 46, 62, 88,215, 73, 62,236,238,134,243, 60,126, 0, 0, 81,129, 4, 62, +170, 34, 94, 60,196,146, 77, 62, 69,216, 70,234,183,119, 0, 0, 89,243,193,188,170, 34, 94, 60,196,146, 77, 62,187, 39, 70,234, +183,119, 0, 0, 65, 39,235, 61,222,227, 61, 61, 48, 78, 81, 62, 55,235,111,230,174,123, 0, 0,173, 11, 21,188,222,227, 61, 61, + 48, 78, 81, 62,201, 20,111,230,174,123, 0, 0,145, 57,220, 61, 76,220,190,190,236, 27, 70, 62, 18, 23,153,248,174,125, 0, 0, + 77,241,236,186, 76,220,190,190,236, 27, 70, 62,238,232,153,248,174,125, 0, 0, 88,231,182, 61, 64, 3,133,190,196,146, 77, 62, +190, 17, 95, 0,194,126, 2, 0,207,121,134, 60, 64, 3,133,190,196,146, 77, 62, 66,238, 95, 0,194,126, 2, 0,203,133, 88, 61, + 64, 3,133,190,196,146, 77, 62, 0, 0,122,255,254,127, 0, 0,203,133, 88, 61, 43, 11, 82,190, 88,215, 73, 62, 0, 0,111,197, +207,113, 0, 0, 8,213,197, 61, 55,235, 55,190,116,128, 92, 62, 71, 74,123,162, 9, 46, 2, 0, 27,134, 21, 60, 55,235, 55,190, +116,128, 92, 62,185,181,123,162, 9, 46, 2, 0, 65, 39,235, 61,174,134, 33,190, 77,247, 99, 62, 88,118,191,228,110, 40, 2, 0, +173, 11, 21,188,174,134, 33,190, 77,247, 99, 62,168,137,191,228,110, 40, 2, 0,185,194,212, 61, 57,123,233,189,116,128, 92, 62, +150, 79, 31, 99,242, 14, 2, 0,191,196,240, 58, 57,123,233,189,116,128, 92, 62,106,176, 31, 99,242, 14, 2, 0, 31,149,145, 61, + 97, 4,226,189,116,128, 92, 62, 95,217,134,120, 24, 19, 2, 0, 89,225, 13, 61, 97, 4,226,189,116,128, 92, 62,161, 38,134,120, + 24, 19, 2, 0,203,133, 88, 61,106, 84, 22,190,253,228,114, 62, 0, 0,137, 14, 42,127, 0, 0,247, 11,153, 61,235,104,248,189, + 37,110,107, 62,130,230, 5, 77,255, 98, 2, 0, 82,231,253, 60,235,104,248,189, 37,110,107, 62,126, 25, 5, 77,255, 98, 2, 0, + 8,213,197, 61,195,223,255,189, 37,110,107, 62,229, 46,209, 60,101,102, 2, 0, 27,134, 21, 60,195,223,255,189, 37,110,107, 62, + 27,209,209, 60,101,102, 2, 0,185,194,212, 61,174,134, 33,190,253,228,114, 62,254, 54, 84,232, 32,113, 2, 0,191,196,240, 58, +174,134, 33,190,253,228,114, 62, 2,201, 84,232, 32,113, 2, 0, 88,231,182, 61,243,184, 44,190,185,178,103, 62, 59, 28,209,183, +219,101, 2, 0,207,121,134, 60,243,184, 44,190,185,178,103, 62,197,227,209,183,219,101, 2, 0,203,133, 88, 61, 15, 98, 63,190, +185,178,103, 62, 0, 0, 89,188,167,108, 2, 0, 98, 74, 49, 62, 83,148, 74,190,107,138,224, 61, 32,120,156, 41,218, 14, 0, 0, +248, 14,138,189, 83,148, 74,190,107,138,224, 61,224,135,156, 41,218, 14, 0, 0, 81,129, 4, 62,134,253, 40,190,167,233, 58, 62, + 27, 95,200, 3,147, 85, 0, 0, 89,243,193,188,134,253, 40,190,167,233, 58, 62,229,160,200, 3,147, 85, 0, 0, 41,248, 11, 62, + 83,148, 74,190,167,233, 58, 62,188, 82, 59, 18,241, 95, 0, 0, 27,170,253,188, 83,148, 74,190,167,233, 58, 62, 68,173, 59, 18, +241, 95, 0, 0, 30, 24, 38, 62,243,184, 44,190,107,138,224, 61, 9,122, 11, 36,207, 13, 0, 0,224, 84,103,189,243,184, 44,190, +107,138,224, 61,247,133, 11, 36,207, 13, 0, 0,203,133, 88, 61, 93,165,235,190, 99,183, 47, 62, 0, 0,198, 82,160, 97, 0, 0, +247, 11,153, 61,167,199,233,190, 99,183, 47, 62,149,208,194, 69, 69, 96, 0, 0, 82,231,253, 60,167,199,233,190, 99,183, 47, 62, +107, 47,194, 69, 69, 96, 0, 0, 8,213,197, 61, 99,149,222,190,167,233, 58, 62,197,172,223, 7,235, 96, 0, 0, 27,134, 21, 60, + 99,149,222,190,167,233, 58, 62, 59, 83,223, 7,235, 96, 0, 0, 8,213,197, 61, 70,236,203,190,128, 96, 66, 62,104,241, 70,177, +219, 99, 0, 0, 27,134, 21, 60, 70,236,203,190,128, 96, 66, 62,152, 14, 70,177,219, 99, 0, 0,203,133, 88, 61,212, 64,213,190, +179,201, 32, 62, 0, 0,141,166,141, 91, 0, 0, 8,213,197, 61,252,201,205,190, 31,133, 36, 62,233,189,224,165, 99, 62, 0, 0, + 27,134, 21, 60,252,201,205,190, 31,133, 36, 62, 23, 66,224,165, 99, 62, 0, 0, 8,213,197, 61,173,183,220,190,219, 82, 25, 62, +160,169,174, 14, 78, 93, 0, 0, 27,134, 21, 60,173,183,220,190,219, 82, 25, 62, 96, 86,174, 14, 78, 93, 0, 0,247, 11,153, 61, + 59, 12,230,190,111,151, 21, 62, 30,214,188, 60,151,104, 0, 0, 82,231,253, 60, 59, 12,230,190,111,151, 21, 62,226, 41,188, 60, +151,104, 0, 0,203,133, 88, 61,241,233,231,190,111,151, 21, 62, 0, 0,177, 67,161,108, 0, 0,189, 60, 8, 62,142,209, 76, 61, +116,128, 92, 62, 27, 21,134,244,184,125, 0, 0,186,206,223,188,142,209, 76, 61,116,128, 92, 62,229,234,134,244,184,125, 0, 0, +149,179, 15, 62, 22,200,170, 60, 8,197, 88, 62,210,253, 49,248,189,127, 0, 0,190,194, 13,189, 22,200,170, 60, 8,197, 88, 62, + 46, 2, 49,248,189,127, 0, 0,155,156, 86, 62,202,248, 23, 62, 48, 78, 81, 62, 53, 21,115, 14,101,125, 0, 0,106,179,212,189, +202,248, 23, 62, 48, 78, 81, 62,203,234,115, 14,101,125, 0, 0, 58,193, 56, 62, 94, 61, 20, 62, 8,197, 88, 62,103, 23,178, 4, +192,125, 2, 0,168,252,152,189, 94, 61, 20, 62, 8,197, 88, 62,153,232,178, 4,192,125, 2, 0, 64,170,127, 62, 25, 11, 9, 62, + 8,197, 88, 62, 38, 22,205,241, 67,125, 2, 0, 90,103, 19,190, 25, 11, 9, 62, 8,197, 88, 62,218,233,205,241, 67,125, 2, 0, +237,107,161, 62, 34, 77,229, 61,207,114, 51, 62, 51, 39, 96, 4,196,121, 0, 0,244,148, 86,190, 34, 77,229, 61,207,114, 51, 62, +205,216, 96, 4,196,121, 0, 0, 15, 5,167, 62, 97,150,169, 61, 99,183, 47, 62,238, 23,158,247,117,125, 0, 0, 56,199, 97,190, + 97,150,169, 61, 99,183, 47, 62, 18,232,158,247,117,125, 0, 0, 89, 39,165, 62,125, 8, 32, 61,247,251, 43, 62, 69, 38, 13,244, +142,121, 0, 0,204, 11, 94,190,125, 8, 32, 61,247,251, 43, 62,187,217, 13,244,142,121, 0, 0, 26,229,140, 62, 60,222,152,187, + 20,165, 62, 62,148, 36,144,250,137,122, 0, 0, 79,135, 45,190, 60,222,152,187, 20,165, 62, 62,108,219,144,250,137,122, 0, 0, +184, 69,105, 62,115,128,187,188, 88,215, 73, 62,146, 25,123,229,148,122, 0, 0,163, 5,250,189,115,128,187,188, 88,215, 73, 62, +110,230,123,229,148,122, 0, 0,178, 92, 34, 62,226,194,133,186,116,128, 92, 62,166, 1, 8,236,106,126, 0, 0, 48,103, 88,189, +226,194,133,186,116,128, 92, 62, 90,254, 8,236,106,126, 0, 0, 41,248, 11, 62, 57, 13,177, 61,116,128, 92, 62, 48, 30, 16,242, +153,123, 0, 0, 27,170,253,188, 57, 13,177, 61,116,128, 92, 62,208,225, 16,242,153,123, 0, 0,218,229, 26, 62,170,177,251, 61, +116,128, 92, 62,232, 20, 76,245,210,125, 0, 0,207,139, 58,189,170,177,251, 61,116,128, 92, 62, 24,235, 76,245,210,125, 0, 0, + 30, 24, 38, 62,250,195,236, 61, 48, 78, 81, 62, 31, 64,221,206, 71, 99, 0, 0,224, 84,103,189,250,195,236, 61, 48, 78, 81, 62, +225,191,221,206, 71, 99, 0, 0, 1,111, 19, 62, 57, 13,177, 61, 48, 78, 81, 62,138, 95,174,228,172, 80, 0, 0,110,176, 28,189, + 57, 13,177, 61, 48, 78, 81, 62,118,160,174,228,172, 80, 0, 0,138,211, 41, 62, 77,106,205, 59, 48, 78, 81, 62, 84, 54,203, 71, +250, 90, 0, 0,143, 66,118,189, 77,106,205, 59, 48, 78, 81, 62,172,201,203, 71,250, 90, 0, 0,184, 69,105, 62,161,220, 67,188, +128, 96, 66, 62, 14, 19,134, 78, 67, 99, 0, 0,163, 5,250,189,161,220, 67,188,128, 96, 66, 62,242,236,134, 78, 67, 99, 0, 0, +174, 41,137, 62,149,249, 43, 59, 59, 46, 55, 62, 93,245, 83, 69, 17,107, 0, 0,118, 16, 38,190,149,249, 43, 59, 59, 46, 55, 62, +163, 10, 83, 69, 17,107, 0, 0,129,176,157, 62,222,227, 61, 61,139, 64, 40, 62, 97,223,176, 28,101,120, 0, 0, 28, 30, 79,190, +222,227, 61, 61,139, 64, 40, 62,159, 32,176, 28,101,120, 0, 0, 55,142,159, 62,137, 31,162, 61,139, 64, 40, 62,148,210,138,239, +134,118, 0, 0,136,217, 82,190,137, 31,162, 61,139, 64, 40, 62,108, 45,138,239,134,118, 0, 0, 21,245,153, 62,114, 95,214, 61, +247,251, 43, 62, 33,231, 38,177,180, 97, 0, 0, 67,167, 71,190,114, 95,214, 61,247,251, 43, 62,223, 24, 38,177,180, 97, 0, 0, +212,238,123, 62,173, 79, 5, 62,196,146, 77, 62, 18,238,118,158,234, 80, 2, 0,238,171, 15,190,173, 79, 5, 62,196,146, 77, 62, +238, 17,118,158,234, 80, 2, 0,166,124, 60, 62, 25, 11, 9, 62,156, 9, 85, 62, 52, 39, 21,212,166,113, 2, 0,129,115,160,189, + 25, 11, 9, 62,156, 9, 85, 62,204,216, 21,212,166,113, 2, 0,155,156, 86, 62,133,198, 12, 62,196,146, 77, 62, 69, 0,155,192, + 49,111, 0, 0,106,179,212,189,133,198, 12, 62,196,146, 77, 62,187,255,155,192, 49,111, 0, 0,109, 42, 23, 62,216,126,230, 60, +196,146, 77, 62,255, 87, 17, 38,203, 84, 0, 0, 31,158, 43,189,216,126,230, 60,196,146, 77, 62, 1,168, 17, 38,203, 84, 0, 0, + 1,111, 19, 62, 63,191, 91, 61,196,146, 77, 62, 16,103,234, 1,224, 75, 0, 0,110,176, 28,189, 63,191, 91, 61,196,146, 77, 62, +240,152,234, 1,224, 75, 0, 0,185,194,212, 61,122,230, 38, 62, 42,101, 10, 62,106,191, 91,110,188, 5, 0, 0,191,196,240, 58, +122,230, 38, 62, 42,101, 10, 62,150, 64, 91,110,188, 5, 0, 0, 1,111, 19, 62,186,247,131, 62,150, 32, 14, 62,242,194, 70, 65, + 98,164, 2, 0,110,176, 28,189,186,247,131, 62,150, 32, 14, 62, 14, 61, 70, 65, 98,164, 2, 0,155,156, 86, 62,220,144,137, 62, + 82,238, 2, 62,171, 14,231, 83,118,160, 2, 0,106,179,212,189,220,144,137, 62, 82,238, 2, 62, 85,241,231, 83,118,160, 2, 0, +208,194,142, 62,139,175, 83, 62,107,138,224, 61,121, 39,247,116, 47,222, 0, 0,187, 66, 49,190,139,175, 83, 62,107,138,224, 61, +135,216,247,116, 47,222, 0, 0,152,105,189, 62, 14, 43, 35, 62,170,211,164, 61,252, 44, 81,116, 54,227, 0, 0, 37, 72,135,190, + 14, 43, 35, 62,170,211,164, 61, 4,211, 81,116, 54,227, 0, 0, 66,103,217, 62,133,198, 12, 62, 73,248,134, 61,158, 94,220, 76, +251,216, 0, 0,207, 69,163,190,133,198, 12, 62, 73,248,134, 61, 98,161,220, 76,251,216, 0, 0, 32,206,211, 62,119,163,200, 60, +252,115,211, 60, 59,120,187,216, 97,236, 0, 0,173,172,157,190,119,163,200, 60,252,115,211, 60,197,135,187,216, 97,236, 0, 0, +123,192,170, 62,188, 45, 85,189,112, 94, 52, 61,213, 73, 49,152,144,243, 0, 0, 16, 62,105,190,188, 45, 85,189,112, 94, 52, 61, + 43,182, 49,152,144,243, 0, 0,140,144,131, 62, 0, 41,196,189, 33,111,142, 61, 61, 56,195,141,255,242, 0, 0, 50,222, 26,190, + 0, 41,196,189, 33,111,142, 61,195,199,195,141,255,242, 0, 0,203,133, 88, 61, 16,243,187, 62, 89,242,105,188, 0, 0,207,105, + 5, 72, 2, 0,203,133, 88, 61,226,121,208, 62,254, 7, 62,190, 0, 0,246,127,248, 2, 2, 0,203,133, 88, 61,254,152, 18,190, + 11,214,236,190, 0, 0,213,166, 46,164, 3, 0,203,133, 88, 61,173,190,136,190,139,142,124,189, 0, 0,195,129,226,234, 0, 0, +203,133, 88, 61,205,243, 1,191, 73,248,134, 61, 0, 0, 26,147,190,188, 2, 0,203,133, 88, 61,247,217,218,190,241, 12, 56, 60, + 0, 0,226,217,208,133, 2, 0,203,133, 88, 61,161,222,162,190,147, 21,157, 57, 0, 0, 83,215,164,134, 0, 0,203,133, 88, 61, +207, 87,142,190,141,212,146,188, 0, 0,243,152, 22,180, 0, 0, 61,119,230, 62,239,172,106, 61,161, 43,253,189,243,124, 39,230, + 19, 10, 0, 0,202, 85,176,190,239,172,106, 61,161, 43,253,189, 13,131, 39,230, 19, 10, 0, 0,243, 84,232, 62,194,113,199, 61, + 78, 26, 47,190,220,127, 45,250,202, 0, 0, 0,128, 51,178,190,194,113,199, 61, 78, 26, 47,190, 36,128, 45,250,202, 0, 0, 0, + 32,206,211, 62,216, 49,147, 61,181,218,180,190, 32, 80,174,252, 62,156, 1, 0,173,172,157,190,216, 49,147, 61,181,218,180,190, +224,175,174,252, 62,156, 1, 0,174, 41,137, 62, 54,180, 27, 62,226, 76,244,190, 9, 58, 51, 25,189,144, 3, 0,118, 16, 38,190, + 54,180, 27, 62,226, 76,244,190,247,197, 51, 25,189,144, 3, 0,146,121,202, 62,239, 95,151,189,240, 61,238,189,139, 91, 11,167, +108, 9, 2, 0, 31, 88,148,190,239, 95,151,189,240, 61,238,189,117,164, 11,167,108, 9, 2, 0,197,226,168, 62, 97, 4,226,189, +163, 21,103,190, 32, 35, 32,133,239,248, 0, 0,164,130,101,190, 97, 4,226,189,163, 21,103,190,224,220, 32,133,239,248, 0, 0, + 9, 21,180, 62,109, 27,100,189,255,252,178,190,117, 51, 16,177, 97,169, 1, 0, 45,231,123,190,109, 27,100,189,255,252,178,190, +139,204, 16,177, 97,169, 1, 0,155,156, 86, 62,211, 91,217,188, 85,248,234,190, 58, 54,135,214,188,147, 2, 0,106,179,212,189, +211, 91,217,188, 85,248,234,190,198,201,135,214,188,147, 2, 0, 30, 24, 38, 62,112, 61, 93,190,191,112, 37, 61,229,122,202,255, + 60,220, 0, 0,224, 84,103,189,112, 61, 93,190,191,112, 37, 61, 27,133,202,255, 60,220, 0, 0, 41,248, 11, 62,209, 24,123,190, +176,102,236,188,236, 92,238,180, 10,210, 0, 0, 27,170,253,188,209, 24,123,190,176,102,236,188, 20,163,238,180, 10,210, 0, 0, + 19, 56, 64, 62,110,117,196,190, 92, 79,241, 60,138, 77,170, 2, 52,154, 2, 0, 89,234,167,189,110,117,196,190, 92, 79,241, 60, +118,178,170, 2, 52,154, 2, 0,246,142, 45, 62, 59, 19,146,190, 95,149, 7, 61,103, 99,206,254, 97,175, 0, 0, 32,152,130,189, + 59, 19,146,190, 95,149, 7, 61,153,156,206,254, 97,175, 0, 0, 47,225, 82, 62,234,249,244,190, 15,131, 22, 61,129, 71, 28,196, + 90,168, 2, 0,146, 60,205,189,234,249,244,190, 15,131, 22, 61,127,184, 28,196, 90,168, 2, 0, 25,158,242, 61,178,167,207,190, +155,152,181, 60,141, 16, 26,233, 42,131, 0, 0,110,194, 80,188,178,167,207,190,155,152,181, 60,115,239, 26,233, 42,131, 0, 0, +105,176,227, 61,201,103,155,190, 58,189,151, 60, 50, 43,143,223,247,139, 0, 0,214,169,178,187,201,103,155,190, 58,189,151, 60, +206,212,143,223,247,139, 0, 0, 81,129, 4, 62,195,112,252,190,129, 39, 97, 61,181, 12,181,157, 3,175, 0, 0, 89,243,193,188, +195,112,252,190,129, 39, 97, 61, 75,243,181,157, 3,175, 0, 0, 70,161, 30, 62,163,166, 59,190,208, 57, 82, 61,142,124,137,226, + 5, 0, 0, 0,127,121, 73,189,163,166, 59,190,208, 57, 82, 61,114,131,137,226, 5, 0, 0, 0,218,229, 26, 62,174,134, 33,190, + 33,111,142, 61, 18,122,107,230,193, 28, 0, 0,207,139, 58,189,174,134, 33,190, 33,111,142, 61,238,133,107,230,193, 28, 0, 0, +109, 42, 23, 62,186,102, 7,190,130, 74,172, 61, 49,104, 11,185, 42, 22, 0, 0, 31,158, 43,189,186,102, 7,190,130, 74,172, 61, +207,151, 11,185, 42, 22, 0, 0,218,229, 26, 62,140,230,111,190,206,171,148,189, 91, 75,146,152,161,253, 0, 0,207,139, 58,189, +140,230,111,190,206,171,148,189,165,180,146,152,161,253, 0, 0,127,243, 67, 62, 83,148, 74,190, 16,205,139,190,187, 66, 88,150, + 83,228, 2, 0, 49, 97,175,189, 83,148, 74,190, 16,205,139,190, 69,189, 88,150, 83,228, 2, 0, 7, 88, 90, 62,235,104,248,189, +244, 28,205,190,113, 66, 21,172,210,185, 3, 0, 66, 42,220,189,235,104,248,189,244, 28,205,190,143,189, 21,172,210,185, 3, 0, +248, 75,135, 62, 55,124,180, 62,187,202,167,190,129, 54,206,102,175,202, 2, 0, 10, 85, 34,190, 55,124,180, 62,187,202,167,190, +127,201,206,102,175,202, 2, 0,248, 75,135, 62,232,105,195, 62,146, 76, 58,190,186, 53, 22,116,118, 4, 2, 0, 10, 85, 34,190, +232,105,195, 62,146, 76, 58,190, 70,202, 22,116,118, 4, 2, 0,248, 75,135, 62,203,192,176, 62,105,252, 34,189, 3, 59,236, 93, +221, 63, 2, 0, 10, 85, 34,190,203,192,176, 62,105,252, 34,189,253,196,236, 93,221, 63, 2, 0,174, 41,137, 62,219,193, 68, 62, +208, 57, 82, 61, 32, 50,252,105, 90, 51, 0, 0,118, 16, 38,190,219,193, 68, 62,208, 57, 82, 61,224,205,252,105, 90, 51, 0, 0, +220,155,200, 62,133,198, 12, 62, 95,172,248, 59,242, 97,236, 79, 9, 20, 0, 0,105,122,146,190,133,198, 12, 62, 95,172,248, 59, + 14,158,236, 79, 9, 20, 0, 0, 83, 55,178, 62, 14, 43, 35, 62,141,212,146,188,108, 60,141, 99, 28, 53, 0, 0,193, 43,120,190, + 14, 43, 35, 62,141,212,146,188,148,195,141, 99, 28, 53, 0, 0, 9, 21,180, 62, 72, 76,141, 62,161, 43,253,189, 96, 83, 57, 87, +177, 42, 0, 0, 45,231,123,190, 72, 76,141, 62,161, 43,253,189,160,172, 57, 87,177, 42, 0, 0, 66,103,217, 62,247,106, 87, 62, + 7,254,185,189,174, 95, 44, 68,204, 50, 2, 0,207, 69,163,190,247,106, 87, 62, 7,254,185,189, 82,160, 44, 68,204, 50, 2, 0, + 66,103,217, 62,236,138,113, 62, 26,177, 80,190,105,109, 79, 66, 37,252, 2, 0,207, 69,163,190,236,138,113, 62, 26,177, 80,190, +151,146, 79, 66, 37,252, 2, 0, 9, 21,180, 62,141,126,152, 62, 83, 3,118,190,226, 86,170, 93, 43,248, 0, 0, 45,231,123,190, +141,126,152, 62, 83, 3,118,190, 30,169,170, 93, 43,248, 0, 0, 9, 21,180, 62, 38,179,135, 62,107,184,182,190,111, 82,219, 68, +100,186, 2, 0, 45,231,123,190, 38,179,135, 62,107,184,182,190,145,173,219, 68,100,186, 2, 0, 66,103,217, 62,179, 56, 76, 62, +153, 49,162,190,218,111, 76, 39,195,207, 2, 0,207, 69,163,190,179, 56, 76, 62,153, 49,162,190, 38,144, 76, 39,195,207, 2, 0, +231,123,174, 62,154,232,206, 61, 56, 79,216,190, 2, 75, 5,254, 79,152, 3, 0,232,180,112,190,154,232,206, 61, 56, 79,216,190, +254,180, 5,254, 79,152, 3, 0,208,194,142, 62,171,100, 40,189,170,250,206,190,171, 69,136,192,101,169, 1, 0,187, 66, 49,190, +171,100, 40,189,170,250,206,190, 85,186,136,192,101,169, 0, 0,100, 0,223, 62,154,232,206, 61,191,190,121,190,190,114,245, 38, + 55, 41, 0, 0,241,222,168,190,154,232,206, 61,191,190,121,190, 66,141,245, 38, 55, 41, 0, 0,104, 51,120, 62,186,102, 7,190, +127,153,163,189, 89, 73, 32,153,123, 20, 0, 0,130,240, 11,190,186,102, 7,190,127,153,163,189,167,182, 32,153,123, 20, 0, 0, +214,178,129, 62,254,152, 18,190, 44,122,125,190, 90, 74,132,153, 69,237, 0, 0,198, 34, 23,190,254,152, 18,190, 44,122,125,190, +166,181,132,153, 69,237, 0, 0,202,203,239, 62,133,198, 12, 62, 56, 86,132,190, 43,219,144, 94, 0, 78, 2, 0, 88,170,185,190, +133,198, 12, 62, 56, 86,132,190,213, 36,144, 94, 0, 78, 2, 0, 32,206,211, 62, 18,242,240,189,135,108, 84,190, 98,250, 11,173, + 79, 97, 2, 0,173,172,157,190, 18,242,240,189,135,108, 84,190,158, 5, 11,173, 79, 97, 2, 0, 38,160, 9, 63,217,159,203,189, +192,186,154,190,102, 60, 54,156,176, 52, 0, 0,219, 30,221,190,217,159,203,189,192,186,154,190,154,195, 54,156,177, 52, 0, 0, +172,140, 38, 63,211, 91,217,188,255,252,178,190, 40, 86, 6,192,194, 69, 0, 0,244,123, 11,191,211, 91,217,188,255,252,178,190, +216,169, 6,192,194, 69, 0, 0, 95,242, 46, 63,194,113,199, 61, 73, 31,177,190, 16,101,233, 22, 32, 75, 2, 0,167,225, 19,191, +194,113,199, 61, 73, 31,177,190,240,154,233, 22, 32, 75, 2, 0,138,243, 32, 63, 3, 75, 61, 62, 73, 31,177,190, 32, 46, 37,110, + 20, 46, 0, 0,209,226, 5,191, 3, 75, 61, 62, 73, 31,177,190,224,209, 37,110, 20, 46, 0, 0,112,194, 7, 63, 82, 93, 46, 62, + 84,255,150,190, 21, 2,210,111, 62, 62, 0, 0,111, 99,217,190, 82, 93, 46, 62, 84,255,150,190,235,253,210,111, 62, 62, 0, 0, +149,211, 6, 63,241,129, 16, 62, 50,102,145,190, 97, 69, 95,247, 54,107, 0, 0,185,133,215,190,241,129, 16, 62, 50,102,145,190, +159,186, 95,247, 54,107, 0, 0,104, 90, 27, 63, 54,180, 27, 62,113,168,169,190,159, 40, 26,244,203,120, 0, 0,175, 73, 0,191, + 54,180, 27, 62,113,168,169,190, 97,215, 26,244,203,120, 0, 0,246,174, 36, 63, 97,150,169, 61,221, 99,173,190,162,240,132,244, +140,126, 0, 0, 62,158, 9,191, 97,150,169, 61,221, 99,173,190, 94, 15,132,244,140,126, 0, 0,249, 38, 30, 63, 98,147,127,188, +221, 99,173,190,238,252, 16, 35, 15,123, 0, 0, 64, 22, 3,191, 98,147,127,188,221, 99,173,190, 18, 3, 16, 35, 15,123, 0, 0, + 75,177, 8, 63, 23,233,143,189,158, 33,149,190,255, 62, 10, 35,196,105, 0, 0, 37, 65,219,190, 23,233,143,189,158, 33,149,190, + 1,193, 10, 35,196,105, 0, 0, 26,222,224, 62,120,196,173,189,243, 39, 88,190,176, 43, 36, 45,132,111, 2, 0,167,188,170,190, +120,196,173,189,243, 39, 88,190, 80,212, 36, 45,132,111, 2, 0,162, 66,247, 62,250,195,236, 61,204,154,128,190,191, 58,236,247, +109,113, 2, 0, 48, 33,193,190,250,195,236, 61,204,154,128,190, 65,197,236,247,109,113, 2, 0,196,219,252, 62, 17,132,184, 61, + 50,102,145,190, 9, 88, 45,185, 34, 60, 0, 0, 82,186,198,190, 17,132,184, 61, 50,102,145,190,247,167, 45,185, 34, 60, 0, 0, + 21,238,237, 62,103,251,128,189, 44,122,125,190,210, 29,124,112, 75, 53, 0, 0,162,204,183,190,103,251,128,189, 44,122,125,190, + 46,226,124,112, 75, 53, 0, 0, 38,160, 9, 63,188, 45, 85,189, 79, 15,164,190,175,234, 24,122,245, 31, 0, 0,219, 30,221,190, +188, 45, 85,189, 79, 15,164,190, 81, 21, 24,122,245, 31, 0, 0,104, 90, 27, 63,223, 37, 8,188,107,184,182,190,141,158,211, 82, + 28, 5, 0, 0,175, 73, 0,191,223, 37, 8,188,107,184,182,190,115, 97,211, 82, 28, 5, 0, 0,138,243, 32, 63, 40, 68,132, 61, +107,184,182,190,111,130, 12,244,188, 21, 0, 0,209,226, 5,191, 40, 68,132, 61,107,184,182,190,145,125, 12,244,188, 21, 0, 0, +178,124, 25, 63,250,195,236, 61,181,218,180,190,245,237, 22,157, 52, 79, 0, 0,242,215,252,190,250,195,236, 61,181,218,180,190, + 11, 18, 22,157, 52, 79, 0, 0,112,194, 7, 63, 74,214,221, 61,153, 49,162,190,132, 71,190,171,144, 64, 0, 0,111, 99,217,190, + 74,214,221, 61,153, 49,162,190,124,184,190,171,144, 64, 0, 0,135,153,228, 62, 97,150,169, 61, 44,122,125,190, 16, 95,148,222, +236, 78, 0, 0, 20,120,174,190, 97,150,169, 61, 44,122,125,190,240,160,148,222,236, 78, 0, 0,209,187,226, 62,216,126,230, 60, +198,170,141,190,194, 95,198,181, 68, 41, 0, 0, 93,154,172,190,216,126,230, 60,198,170,141,190, 62,160,198,181, 68, 41, 0, 0, +180, 18,208, 62,223, 37, 8,188,198,170,141,190,238,109,193, 4, 98, 65, 0, 0, 65,241,153,190,223, 37, 8,188,198,170,141,190, + 18,146,193, 4, 98, 65, 0, 0,100, 0,223, 62,161,220, 67,188,198,170,141,190, 91, 73,245, 92,148, 48, 2, 0,241,222,168,190, +161,220, 67,188,198,170,141,190,165,182,245, 92,148, 48, 2, 0,135,153,228, 62, 92, 82, 55,189,198,170,141,190, 27,113, 2,248, + 97, 59, 2, 0, 20,120,174,190, 92, 82, 55,189,198,170,141,190,229,142, 2,248, 97, 59, 2, 0,174, 34,221, 62, 29, 9,115,189, +198,170,141,190,241, 75,125, 72, 55, 73, 0, 0, 59, 1,167,190, 29, 9,115,189,198,170,141,190, 15,180,125, 72, 55, 73, 0, 0, +220,155,200, 62,188, 45, 85,189,146, 76, 58,190, 69,110,138,193, 22,238, 0, 0,105,122,146,190,188, 45, 85,189,146, 76, 58,190, +187,145,138,193, 22,238, 0, 0, 38,190,198, 62,103,251,128,189, 15,209,106,190, 93, 95,240, 10,170, 84, 0, 0,179,156,144,190, +103,251,128,189, 15,209,106,190,163,160,240, 10,170, 84, 0, 0, 38,190,198, 62, 74,137, 10,189,231, 71,114,190,226,117,157,233, +140, 44, 0, 0,179,156,144,190, 74,137, 10,189,231, 71,114,190, 30,138,157,233,140, 44, 0, 0, 66,103,217, 62, 45,246, 46, 61, + 44,122,125,190,156,111,186,201, 79, 31, 0, 0,207, 69,163,190, 45,246, 46, 61, 44,122,125,190,100,144,186,201, 79, 31, 0, 0, +202,203,239, 62,159,154,121, 61, 16,205,139,190, 32, 89,187,186, 87, 60, 0, 0, 88,170,185,190,159,154,121, 61, 16,205,139,190, +224,166,187,186, 87, 60, 0, 0,202,203,239, 62,239,172,106, 61, 10,221,152,190, 91, 85, 90,200,118, 77, 0, 0, 88,170,185,190, +239,172,106, 61, 10,221,152,190,165,170, 90,200,118, 77, 0, 0,174, 34,221, 62, 29, 9,115,189, 10,221,152,190,123, 84,188, 44, + 29, 85, 0, 0, 59, 1,167,190, 29, 9,115,189, 10,221,152,190,133,171,188, 44, 29, 85, 0, 0, 61,119,230, 62, 92, 82, 55,189, + 10,221,152,190,219, 47, 50, 47,237,108, 0, 0,202, 85,176,190, 92, 82, 55,189, 10,221,152,190, 37,208, 50, 47,237,108, 0, 0, + 26,222,224, 62, 98,147,127,188, 10,221,152,190,236, 56,223, 47, 42,104, 0, 0,167,188,170,190, 98,147,127,188, 10,221,152,190, + 20,199,223, 47, 42,104, 0, 0,106,240,209, 62,223, 37, 8,188, 10,221,152,190, 79,100, 44, 32,179, 72, 0, 0,247,206,155,190, +223, 37, 8,188, 10,221,152,190,177,155, 44, 32,179, 72, 0, 0,135,153,228, 62,216,126,230, 60, 10,221,152,190, 35, 73,126,201, +202, 89, 0, 0, 20,120,174,190,216,126,230, 60, 10,221,152,190,221,182,126,201,202, 89, 0, 0, 38,160, 9, 63,154,232,206, 61, +147, 65,175,190, 1, 62,211,212, 80,103, 0, 0,219, 30,221,190,154,232,206, 61,147, 65,175,190,255,193,211,212, 80,103, 0, 0, +104, 90, 27, 63, 74,214,221, 61,249, 12,192,190, 51,224,110,181, 12, 99, 0, 0,175, 73, 0,191, 74,214,221, 61,249, 12,192,190, +205, 31,110,181, 12, 99, 0, 0, 27,192, 35, 63,159,154,121, 61,175,234,193,190,220,160,139,243,182, 84, 0, 0, 98,175, 8,191, +159,154,121, 61,175,234,193,190, 36, 95,139,243,182, 84, 0, 0,249, 38, 30, 63,161,220, 67,188,249, 12,192,190,253,186,174, 57, + 16, 91, 0, 0, 64, 22, 3,191,161,220, 67,188,249, 12,192,190, 3, 69,174, 57, 16, 91, 0, 0, 1,143, 10, 63,188, 45, 85,189, + 73, 31,177,190, 44, 11,185, 94, 90, 85, 0, 0,145,252,222,190,188, 45, 85,189, 73, 31,177,190,212,244,185, 94, 90, 85, 0, 0, + 21,238,237, 62, 29, 9,115,189, 16,205,139,190,131,249,213,121,178, 38, 0, 0,162,204,183,190, 29, 9,115,189, 16,205,139,190, +125, 6,213,121,178, 38, 0, 0,122,185,254, 62, 97,150,169, 61, 45,118,158,190, 97, 81,161,203,196, 83, 0, 0, 8,152,200,190, + 97,150,169, 61, 45,118,158,190,159,174,161,203,196, 83, 0, 0,202,203,239, 62,226,194,133,186,192,186,154,190, 99, 25,168, 0, +115,125, 0, 0, 88,170,185,190,226,194,133,186,192,186,154,190,157,230,168, 0,115,125, 0, 0, 14,254,250, 62,115,128,187,188, +119,152,156,190, 86, 49,224, 14, 41,117, 0, 0,156,220,196,190,115,128,187,188,119,152,156,190,170,206,224, 14, 41,117, 0, 0, +223,245, 4, 63, 77,106,205, 59, 79, 15,164,190, 60, 55,195,251, 98,115, 0, 0, 76,202,211,190, 77,106,205, 59, 79, 15,164,190, +196,200,195,251, 98,115, 0, 0,152, 75, 0, 63,216,126,230, 60,227, 83,160,190,255, 41, 6, 0,232,120, 0, 0,190,117,202,190, +216,126,230, 60,227, 83,160,190, 1,214, 6, 0,232,120, 0, 0,149,211, 6, 63,239,172,106, 61, 5,237,165,190,174, 40,253, 11, +196,120, 0, 0,185,133,215,190,239,172,106, 61, 5,237,165,190, 82,215,253, 11,196,120, 0, 0,220,125, 11, 63,205, 26, 17, 61, +187,202,167,190, 32, 44, 47,246,191,119, 0, 0, 71,218,224,190,205, 26, 17, 61,187,202,167,190,224,211, 47,246,191,119, 0, 0, +218, 5, 18, 63,222,227, 61, 61,113,168,169,190,222, 55, 67,254, 37,115, 2, 0, 65,234,237,190,222,227, 61, 61,113,168,169,190, + 34,200, 67,254, 37,115, 2, 0, 73, 57, 15, 63,176,168,154, 61,113,168,169,190,188, 45, 37, 38, 75,113, 2, 0, 31, 81,232,190, +176,168,154, 61,113,168,169,190, 68,210, 37, 38, 75,113, 2, 0,112,194, 7, 63, 54,180, 27, 62,249, 12,192,190,139,202,127, 71, + 71,164, 3, 0,111, 99,217,190, 54,180, 27, 62,249, 12,192,190,117, 53,127, 71, 71,164, 3, 0, 64,209, 34, 63,230,161, 42, 62, +170,250,206,190, 2, 39,153, 79,172,163, 3, 0,135,192, 7,191,230,161, 42, 62,170,250,206,190,254,216,153, 79,172,163, 3, 0, + 21,208, 48, 63, 57, 13,177, 61,102,200,195,190, 49,118,245, 10, 30,208, 3, 0, 93,191, 21,191, 57, 13,177, 61,102,200,195,190, +207,137,245, 10, 30,208, 3, 0, 24, 72, 42, 63,211, 91,217,188, 62, 63,203,190,182, 78, 54,193,251,176, 3, 0, 96, 55, 15,191, +211, 91,217,188, 62, 63,203,190, 74,177, 54,193,251,176, 3, 0, 38,160, 9, 63, 40,178,188,189,175,234,193,190,165,250,140,166, +156,164, 3, 0,219, 30,221,190, 40,178,188,189,175,234,193,190, 91, 5,140,166,156,164, 3, 0,140,137,215, 62, 97, 4,226,189, +192,186,154,190,203,245,207,147, 96,188, 1, 0, 25,104,161,190, 97, 4,226,189,192,186,154,190, 53, 10,207,147, 96,188, 1, 0, +243, 84,232, 62, 65,148, 1, 62,187,202,167,190, 3,172, 39, 73,240,192, 1, 0,128, 51,178,190, 65,148, 1, 62,187,202,167,190, +253, 83, 39, 73,240,192, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,104,148, 52, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,150, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5776,441 +6872,8 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 91,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 69, 0, 0, 24, 1, 0, 0,208, 91,181, 3, 38, 0, 0, 0, 1, 0, 0, 0,104, 93,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69,112,114,101,118,105,101,119, 0,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 93,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 93,181, 3, 19, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 69, 0, 0, 24, 1, 0, 0,104, 93,181, 3, 38, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 91,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69,102, 97,107,101,115,104, 97,100,111,119, 0, 0, 76,101,110,100, 0,101,120, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 40, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 24, 1, 0, 0,176, 94,181, 3, 52, 0, 0, 0, 1, 0, 0, 0, -112, 96,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 95,181, 3,160,195,181, 3,224,234,181, 3, 0, 0, 0, 0,184, 97,181, 3,200,146,181, 3, - 0, 0, 0, 0, 0, 65,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 96,181, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,145,181, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24,194,181, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -249, 1, 0, 0,237, 3, 0, 0,244, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,192,133, 88, 61,184, 45, 85,189, -196,181, 24,190,185, 71, 35, 63,153, 31,235, 62,130,102,203, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -248, 95,181, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 68, 65, 84, 65, 84, 1, 0, 0, 48, 96,181, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 97,181, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 47, 0, 0, -184, 97,181, 3, 58, 0, 0, 0,249, 1, 0, 0,140,144,131, 62,119,163,200, 60,156, 9, 85, 62,125, 92, 70,170,228, 21,255, 0, - 0, 0, 0, 0, 50,222, 26,190,119,163,200, 60,156, 9, 85, 62,131,163, 70,170,228, 21,255, 0, 0, 0, 0, 0, 61,126,146, 62, -223, 37, 8,188, 99,183, 47, 62,247, 76,191,194,228, 81,255, 0, 2, 0, 0, 0,147,185, 56,190,223, 37, 8,188, 99,183, 47, 62, - 9,179,191,194,228, 81,255, 0, 2, 0, 0, 0,129,176,157, 62,211, 91,217,188,244,238,246, 61, 31, 84,226,181,191, 61,255, 0, - 2, 0, 0, 0, 28, 30, 79,190,211, 91,217,188,244,238,246, 61,225,171,226,181,191, 61,255, 0, 2, 0, 0, 0,115, 19, 94, 62, -103,251,128,189,150, 32, 14, 62,241, 9,155,144, 64, 62,255, 0, 2, 0, 0, 0, 26,161,227,189,103,251,128,189,150, 32, 14, 62, - 15,246,155,144, 64, 62,255, 0, 2, 0, 0, 0,115, 19, 94, 62,251,118, 25,189, 20,165, 62, 62,184, 14,144,163, 76, 87,255, 0, - 2, 0, 0, 0, 26,161,227,189,251,118, 25,189, 20,165, 62, 62, 72,241,144,163, 76, 87,255, 0, 2, 0, 0, 0,115, 19, 94, 62, -232,107, 34, 60,116,128, 92, 62, 3, 3,121,131,110, 29,255, 0, 0, 0, 0, 0, 26,161,227,189,232,107, 34, 60,116,128, 92, 62, -253,252,121,131,110, 29,255, 0, 0, 0, 0, 0, 58,193, 56, 62,119,163,200, 60, 77,247, 99, 62, 56,171,117,167,206, 36,255, 0, - 0, 0, 0, 0,168,252,152,189,119,163,200, 60, 77,247, 99, 62,200, 84,117,167,206, 36,255, 0, 0, 0, 0, 0,109, 42, 23, 62, -223, 37, 8,188, 88,215, 73, 62,152,217,122,203, 56,110,255, 0, 0, 0, 0, 0,229,197, 0, 62,211, 91,217,188, 71, 14, 29, 62, -179,184, 93,175, 66, 69,255, 0, 2, 0, 0, 0,249, 23,164,188,211, 91,217,188, 71, 14, 29, 62, 77, 71, 93,175, 66, 69,255, 0, - 2, 0, 0, 0, 88,231,182, 61,159,154,121, 61,179,201, 32, 62,181,151,104,255, 51, 74,255, 0, 2, 0, 0, 0,207,121,134, 60, -159,154,121, 61,179,201, 32, 62, 75,104,104,255, 51, 74,255, 0, 2, 0, 0, 0, 25,158,242, 61,159,154,121, 61, 88,215, 73, 62, - 78,171,150,255,246, 95,255, 0, 2, 0, 0, 0,110,194, 80,188,159,154,121, 61, 88,215, 73, 62,178, 84,150,255,246, 95,255, 0, - 2, 0, 0, 0,138,211, 41, 62,159,154,121, 61, 77,247, 99, 62,152,133,153,254, 98, 37,255, 0, 0, 0, 0, 0,143, 66,118,189, -159,154,121, 61, 77,247, 99, 62,104,122,153,254, 98, 37,255, 0, 0, 0, 0, 0, 58,193, 56, 62,154,232,206, 61, 77,247, 99, 62, - 24,170, 13, 88, 89, 35,255, 0, 0, 0, 0, 0,168,252,152,189,154,232,206, 61, 77,247, 99, 62,232, 85, 13, 88, 89, 35,255, 0, - 0, 0, 0, 0,109, 42, 23, 62,173, 79, 5, 62, 88,215, 73, 62,249,200,221, 65,244, 94,255, 0, 2, 0, 0, 0, 31,158, 43,189, -173, 79, 5, 62, 88,215, 73, 62, 7, 55,221, 65,244, 94,255, 0, 2, 0, 0, 0,229,197, 0, 62, 54,180, 27, 62, 71, 14, 29, 62, - 51,186, 86, 78, 78, 73,255, 0, 2, 0, 0, 0,249, 23,164,188, 54,180, 27, 62, 71, 14, 29, 62,205, 69, 86, 78, 78, 73,255, 0, - 2, 0, 0, 0,115, 19, 94, 62,111, 6, 65, 62,150, 32, 14, 62, 2, 11,152,107,114, 68,255, 0, 2, 0, 0, 0, 26,161,227,189, -111, 6, 65, 62,150, 32, 14, 62,254,244,152,107,114, 68,255, 0, 2, 0, 0, 0,115, 19, 94, 62, 14, 43, 35, 62, 20,165, 62, 62, -201, 14,180, 91, 14, 88,255, 0, 2, 0, 0, 0, 26,161,227,189, 14, 43, 35, 62, 20,165, 62, 62, 55,241,180, 91, 14, 88,255, 0, - 2, 0, 0, 0,115, 19, 94, 62,250,195,236, 61,116,128, 92, 62,134, 2, 29,125,228, 26,255, 0, 0, 0, 0, 0, 26,161,227,189, -250,195,236, 61,116,128, 92, 62,122,253, 29,125,228, 26,255, 0, 0, 0, 0, 0,140,144,131, 62,154,232,206, 61,156, 9, 85, 62, - 54, 93, 67, 85,154, 20,255, 0, 0, 0, 0, 0, 50,222, 26,190,154,232,206, 61,156, 9, 85, 62,202,162, 67, 85,154, 20,255, 0, - 0, 0, 0, 0, 61,126,146, 62,173, 79, 5, 62, 99,183, 47, 62,241, 76,161, 60, 97, 82,255, 0, 2, 0, 0, 0,147,185, 56,190, -173, 79, 5, 62, 99,183, 47, 62, 15,179,161, 60, 97, 82,255, 0, 2, 0, 0, 0,129,176,157, 62, 54,180, 27, 62,244,238,246, 61, -179, 83,157, 71, 45, 65,255, 0, 2, 0, 0, 0, 28, 30, 79,190, 54,180, 27, 62,244,238,246, 61, 77,172,157, 71, 45, 65,255, 0, - 2, 0, 0, 0,157, 89,176, 62,159,154,121, 61, 67, 1,232, 61, 40,111,113,255,117, 63,255, 0, 2, 0, 0, 0, 84,112,116,190, -159,154,121, 61, 67, 1,232, 61,216,144,113,255,117, 63,255, 0, 2, 0, 0, 0,237,107,161, 62,159,154,121, 61,139, 64, 40, 62, - 48,100,154,255,167, 79,255, 0, 2, 0, 0, 0,244,148, 86,190,159,154,121, 61,139, 64, 40, 62,208,155,154,255,167, 79,255, 0, - 2, 0, 0, 0,100, 7,139, 62,159,154,121, 61, 48, 78, 81, 62,117,126,181,254,185, 19,255, 0, 0, 0, 0, 0,227,203, 41,190, -159,154,121, 61, 48, 78, 81, 62,139,129,181,254,185, 19,255, 0, 0, 0, 0, 0, 26,229,140, 62,159,154,121, 61, 8,197, 88, 62, -160,120,106,254,198, 42,255, 0, 2, 0, 0, 0, 79,135, 45,190,159,154,121, 61, 8,197, 88, 62, 96,135,106,254,198, 42,255, 0, - 2, 0, 0, 0, 66,110,133, 62,114, 95,214, 61,116,128, 92, 62,173, 93,126, 74, 93, 45,255, 0, 2, 0, 0, 0,158,153, 30,190, -114, 95,214, 61,116,128, 92, 62, 83,162,126, 74, 93, 45,255, 0, 2, 0, 0, 0,115, 19, 94, 62,170,177,251, 61,185,178,103, 62, - 9, 11, 31,115,216, 54,255, 0, 2, 0, 0, 0, 26,161,227,189,170,177,251, 61,185,178,103, 62,247,244, 31,115,216, 54,255, 0, - 2, 0, 0, 0,206, 5, 53, 62,114, 95,214, 61,145, 41,111, 62, 9,181,184, 80, 43, 65,255, 0, 2, 0, 0, 0,208,133,145,189, -114, 95,214, 61,145, 41,111, 62,247, 74,184, 80, 43, 65,255, 0, 2, 0, 0, 0,178, 92, 34, 62,159,154,121, 61,145, 41,111, 62, -116,146, 57,254, 43, 66,255, 0, 2, 0, 0, 0, 48,103, 88,189,159,154,121, 61,145, 41,111, 62,140,109, 57,254, 43, 66,255, 0, - 2, 0, 0, 0,206, 5, 53, 62, 22,200,170, 60,145, 41,111, 62, 34,182,181,173,115, 64,255, 0, 2, 0, 0, 0,208,133,145,189, - 22,200,170, 60,145, 41,111, 62,222, 73,181,173,115, 64,255, 0, 2, 0, 0, 0,115, 19, 94, 62,159,154,121, 61,253,228,114, 62, - 74, 24,139,255,171,125,255, 0, 2, 0, 0, 0, 26,161,227,189,159,154,121, 61,253,228,114, 62,182,231,139,255,171,125,255, 0, - 2, 0, 0, 0,115, 19, 94, 62,149,249, 43, 59,185,178,103, 62,218, 10,140,140, 45, 54,255, 0, 2, 0, 0, 0, 26,161,227,189, -149,249, 43, 59,185,178,103, 62, 38,245,140,140, 45, 54,255, 0, 2, 0, 0, 0, 66,110,133, 62, 22,200,170, 60,116,128, 92, 62, -141, 92,203,179,210, 44,255, 0, 2, 0, 0, 0,158,153, 30,190, 22,200,170, 60,116,128, 92, 62,115,163,203,179,210, 44,255, 0, - 2, 0, 0, 0,203,133, 88, 61,202,248, 23, 62, 88,215, 73, 62, 0, 0, 43,124, 17, 31,255, 0, 0, 0, 0, 0,203,133, 88, 61, - 34, 77,229, 61,145, 41,111, 62, 0, 0, 63,249,209,127,255, 0, 0, 0, 0, 0,203,133, 88, 61,150,254,188,190,236, 27, 70, 62, - 0, 0,204,251,237,127,255, 0, 0, 0, 0, 0,203,133, 88, 61,191, 79, 78,190,116,128, 92, 62, 0, 0, 33,150,238, 71,255, 0, - 2, 0, 0, 0,203,133, 88, 61,146,221, 14,190, 77,247, 99, 62, 0, 0, 28,100,192, 79,255, 0, 0, 0, 0, 0,203,133, 88, 61, - 30, 99,211,190, 20,165, 62, 62, 0, 0,184,142,147, 59,255, 0, 2, 0, 0, 0,203,133, 88, 61,133,198, 12, 62,190,169, 6, 62, - 0, 0,143,103, 57, 75,255, 0, 0, 0, 0, 0,203,133, 88, 61, 99, 38, 91, 62, 28,120,239, 61, 0, 0,115, 78, 34,101,255, 0, - 0, 0, 0, 0,203,133, 88, 61, 16,243,187, 62,170,250,206,190, 0, 0,190,110,212,191,255, 0, 2, 0, 0, 0,203,133, 88, 61, -247,106, 87, 62,178,224, 11,191, 0, 0,144, 35, 12,133,255, 0, 3, 0, 0, 0,203,133, 88, 61, 18,165,157,188, 33, 20, 9,191, - 0, 0,194,214,213,134,255, 0, 2, 0, 0, 0,203,133, 88, 61, 32, 43,108,190,227, 83,160,190, 0, 0,154,134,113,215,255, 0, - 2, 0, 0, 0,109, 42, 23, 62,146,221, 14,190, 67, 1,232, 61,144,113,122,198, 79, 13,255, 0, 0, 0, 0, 0, 31,158, 43,189, -146,221, 14,190, 67, 1,232, 61,112,142,122,198, 79, 13,255, 0, 0, 0, 0, 0, 87,106, 75, 62,138, 37,131,190, 28,120,239, 61, -196,122, 19, 31,152, 18,255, 0, 2, 0, 0, 0,225, 78,190,189,138, 37,131,190, 28,120,239, 61, 60,133, 19, 31,152, 18,255, 0, - 2, 0, 0, 0,115, 19, 94, 62, 2,186,192,190, 28,120,239, 61,167,125,146, 12,226, 20,255, 0, 0, 0, 0, 0, 26,161,227,189, - 2,186,192,190, 28,120,239, 61, 89,130,146, 12,226, 20,255, 0, 0, 0, 0, 0, 75,138,101, 62,200, 96,239,190,227, 37,202, 61, -113,124,142,242,196, 26,255, 0, 2, 0, 0, 0,203,142,242,189,200, 96,239,190,227, 37,202, 61,143,131,142,242,196, 26,255, 0, - 2, 0, 0, 0, 47,225, 82, 62,195,112,252,190, 10,175,194, 61,159, 79, 44,159,210, 25,255, 0, 2, 0, 0, 0,146, 60,205,189, -195,112,252,190, 10,175,194, 61, 97,176, 44,159,210, 25,255, 0, 2, 0, 0, 0, 41,248, 11, 62,242, 4, 1,191,107,138,224, 61, -143, 19, 13,131,178, 19,255, 0, 2, 0, 0, 0, 27,170,253,188,242, 4, 1,191,107,138,224, 61,113,236, 13,131,178, 19,255, 0, - 2, 0, 0, 0,203,133, 88, 61,168,226, 2,191,244,238,246, 61, 0, 0, 75,130, 21, 24,255, 0, 2, 0, 0, 0,140,144,131, 62, - 18,242,240,189,227, 37,202, 61,114, 47,117,137,232, 8,255, 0, 2, 0, 0, 0, 50,222, 26,190, 18,242,240,189,227, 37,202, 61, -142,208,117,137,232, 8,255, 0, 2, 0, 0, 0, 83, 55,178, 62, 23,233,143,189,187,156,209, 61, 25, 77,198,154,214, 13,255, 0, - 2, 0, 0, 0,193, 43,120,190, 23,233,143,189,187,156,209, 61,231,178,198,154,214, 13,255, 0, 2, 0, 0, 0, 26,222,224, 62, -182,236,140, 60, 49, 21,112, 61,216,113,247,198,255, 12,255, 0, 2, 0, 0, 0,167,188,170,190,182,236,140, 60, 49, 21,112, 61, - 40,142,247,198,255, 12,255, 0, 2, 0, 0, 0,243, 84,232, 62,202,248, 23, 62, 82,238, 2, 62,104,113, 31, 51, 32, 30,255, 0, - 2, 0, 0, 0,128, 51,178,190,202,248, 23, 62, 82,238, 2, 62,152,142, 31, 51, 32, 30,255, 0, 2, 0, 0, 0,112,224,196, 62, -190, 24, 50, 62, 2,220, 17, 62,216, 64,225,106,121, 27,255, 0, 0, 0, 0, 0,253,190,142,190,190, 24, 50, 62, 2,220, 17, 62, - 40,191,225,106,121, 27,255, 0, 0, 0, 0, 0,134,160,144, 62, 20, 20,106, 62, 99,183, 47, 62,137, 75, 82,101, 70, 20,255, 0, - 0, 0, 0, 0, 39,254, 52,190, 20, 20,106, 62, 99,183, 47, 62,119,180, 82,101, 70, 20,255, 0, 0, 0, 0, 0,195, 37, 79, 62, - 67, 92,154, 62,236, 27, 70, 62,241, 38, 19,119, 54, 26,255, 0, 2, 0, 0, 0,186,197,197,189, 67, 92,154, 62,236, 27, 70, 62, - 15,217, 19,119, 54, 26,255, 0, 2, 0, 0, 0,229,197, 0, 62,181, 7,145, 62, 48, 78, 81, 62, 21,175, 54, 96, 12, 24,255, 0, - 2, 0, 0, 0,249, 23,164,188,181, 7,145, 62, 48, 78, 81, 62,235, 80, 54, 96, 12, 24,255, 0, 2, 0, 0, 0,168,249,167, 61, - 42,212, 53, 62,196,146, 77, 62,174,155,128, 76,151, 21,255, 0, 0, 0, 0, 0,144, 48,194, 60, 42,212, 53, 62,196,146, 77, 62, - 82,100,128, 76,151, 21,255, 0, 0, 0, 0, 0, 81,129, 4, 62,241,129, 16, 62, 8,197, 88, 62, 0, 25, 4,237, 22,124,255, 0, - 0, 0, 0, 0, 89,243,193,188,241,129, 16, 62, 8,197, 88, 62, 0,231, 4,237, 22,124,255, 0, 0, 0, 0, 0,105,176,227, 61, - 17,132,184, 61,156, 9, 85, 62,160,255,126,232,209,125,255, 0, 0, 0, 0, 0,214,169,178,187, 17,132,184, 61,156, 9, 85, 62, - 96, 0,126,232,209,125,255, 0, 0, 0, 0, 0, 31,158, 43,189,223, 37, 8,188, 88,215, 73, 62,104, 38,122,203, 56,110,255, 0, - 0, 0, 0, 0,184, 69,105, 62, 92, 82, 55,189, 59, 46, 55, 62,106, 34,119,200, 16,110,255, 0, 0, 0, 0, 0,163, 5,250,189, - 92, 82, 55,189, 59, 46, 55, 62,150,221,119,200, 16,110,255, 0, 0, 0, 0, 0,134,160,144, 62,115,128,187,188,139, 64, 40, 62, -161, 55, 60,207,115,104,255, 0, 0, 0, 0, 0, 39,254, 52,190,115,128,187,188,139, 64, 40, 62, 95,200, 60,207,115,104,255, 0, - 0, 0, 0, 0,157, 89,176, 62,205, 26, 17, 61, 71, 14, 29, 62,181, 58,123,226,214,109,255, 0, 0, 0, 0, 0, 84,112,116,190, -205, 26, 17, 61, 71, 14, 29, 62, 75,197,123,226,214,109,255, 0, 0, 0, 0, 0, 9, 21,180, 62, 57, 13,177, 61, 71, 14, 29, 62, -157, 49, 61,230, 36,115,255, 0, 0, 0, 0, 0, 45,231,123,190, 57, 13,177, 61, 71, 14, 29, 62, 99,206, 61,230, 36,115,255, 0, - 0, 0, 0, 0,123,192,170, 62,170,177,251, 61, 31,133, 36, 62,206, 39,175,234,196,119,255, 0, 0, 0, 0, 0, 16, 62,105,190, -170,177,251, 61, 31,133, 36, 62, 50,216,175,234,196,119,255, 0, 0, 0, 0, 0,214,178,129, 62, 54,180, 27, 62, 20,165, 62, 62, - 62, 24, 85,255,173,125,255, 0, 0, 0, 0, 0,198, 34, 23,190, 54,180, 27, 62, 20,165, 62, 62,194,231, 85,255,173,125,255, 0, - 0, 0, 0, 0,246,142, 45, 62,230,161, 42, 62, 48, 78, 81, 62,251, 31, 40,247,158,123,255, 0, 0, 0, 0, 0, 32,152,130,189, -230,161, 42, 62, 48, 78, 81, 62, 5,224, 40,247,158,123,255, 0, 0, 0, 0, 0,203,133, 88, 61,104,133,209,190,236, 27, 70, 62, - 0, 0,148,210,170,119,255, 0, 0, 0, 0, 0,185,194,212, 61, 36, 83,198,190,236, 27, 70, 62, 39, 19, 65,222,248,121,255, 0, - 0, 0, 0, 0,191,196,240, 58, 36, 83,198,190,236, 27, 70, 62,217,236, 65,222,248,121,255, 0, 0, 0, 0, 0,145, 57,220, 61, -207, 80,226,190,167,233, 58, 62,134, 2,132,217, 12,122,255, 0, 0, 0, 0, 0, 77,241,236,186,207, 80,226,190,167,233, 58, 62, -122,253,132,217, 12,122,255, 0, 0, 0, 0, 0,168,249,167, 61, 19,131,237,190,207,114, 51, 62, 13,252,169,214, 18,121,255, 0, - 0, 0, 0, 0,144, 48,194, 60, 19,131,237,190,207,114, 51, 62,243, 3,169,214, 18,121,255, 0, 0, 0, 0, 0,203,133, 88, 61, -200, 96,239,190, 99,183, 47, 62, 0, 0,150,219,180,122,255, 0, 0, 0, 0, 0,203,133, 88, 61,254,152, 18,190,196,146, 77, 62, - 0, 0, 46, 97, 76, 83,255, 0, 0, 0, 0, 0,203,133, 88, 61, 18,242,240,189, 88,215, 73, 62, 0, 0,197,104,134, 73,255, 0, - 0, 0, 0, 0,225, 75,205, 61,235,104,248,189, 88,215, 73, 62, 52, 36, 2, 53,187,110,255, 0, 0, 0, 0, 0,179,158,179, 59, -235,104,248,189, 88,215, 73, 62,204,219, 2, 53,187,110,255, 0, 0, 0, 0, 0,105,176,227, 61,174,134, 33,190,196,146, 77, 62, -187, 95, 14,212,182, 72,255, 0, 0, 0, 0, 0,214,169,178,187,174,134, 33,190,196,146, 77, 62, 69,160, 14,212,182, 72,255, 0, - 0, 0, 0, 0, 48, 94,190, 61, 15, 98, 63,190, 88,215, 73, 62,117, 64,117,207, 90, 99,255, 0, 0, 0, 0, 0,220, 60, 81, 60, - 15, 98, 63,190, 88,215, 73, 62,139,191,117,207, 90, 99,255, 0, 0, 0, 0, 0,252,119,116, 62,239, 95,151,189,139, 64, 40, 62, -103, 49,157,196, 13,102,255, 0, 0, 0, 0, 0, 22, 53, 8,190,239, 95,151,189,139, 64, 40, 62,153,206,157,196, 13,102,255, 0, - 0, 0, 0, 0,231,123,174, 62,211, 91,217,188, 2,220, 17, 62,142, 59,107,204,223,100,255, 0, 2, 0, 0, 0,232,180,112,190, -211, 91,217,188, 2,220, 17, 62,114,196,107,204,223,100,255, 0, 2, 0, 0, 0,220,155,200, 62, 45,246, 46, 61,190,169, 6, 62, -102, 66, 11,217, 65,102,255, 0, 0, 0, 0, 0,105,122,146,190, 45,246, 46, 61,190,169, 6, 62,154,189, 11,217, 65,102,255, 0, - 0, 0, 0, 0, 72, 87,204, 62,170,177,251, 61,179,201, 32, 62, 87, 54,142,228,151,112,255, 0, 0, 0, 0, 0,213, 53,150,190, -170,177,251, 61,179,201, 32, 62,169,201,142,228,151,112,255, 0, 0, 0, 0, 0, 78, 71,191, 62,241,129, 16, 62,128, 96, 66, 62, - 82, 42, 97,247,125,120,255, 0, 2, 0, 0, 0,219, 37,137,190,241,129, 16, 62,128, 96, 66, 62,174,213, 97,247,125,120,255, 0, - 2, 0, 0, 0,140,144,131, 62, 31,244, 79, 62, 77,247, 99, 62,192, 41,216,254,253,120,255, 0, 0, 0, 0, 0, 50,222, 26,190, - 31,244, 79, 62, 77,247, 99, 62, 64,214,216,254,253,120,255, 0, 0, 0, 0, 0, 87,106, 75, 62, 48,189,124, 62,105,160,118, 62, -217, 28, 53, 7,126,124,255, 0, 0, 0, 0, 0,225, 78,190,189, 48,189,124, 62,105,160,118, 62, 39,227, 53, 7,126,124,255, 0, - 0, 0, 0, 0,109, 42, 23, 62,236,138,113, 62, 65, 23,126, 62,125,255, 44, 5,227,127,255, 0, 0, 0, 0, 0, 31,158, 43,189, -236,138,113, 62, 65, 23,126, 62,131, 0, 44, 5,227,127,255, 0, 0, 0, 0, 0,225, 75,205, 61,202,248, 23, 62,213, 91,122, 62, -130,238, 89, 2,197,126,255, 0, 0, 0, 0, 0,179,158,179, 59,202,248, 23, 62,213, 91,122, 62,126, 17, 89, 2,197,126,255, 0, - 0, 0, 0, 0,105,176,227, 61,217,159,203,189, 37,110,107, 62,115, 23, 27,230, 34,123,255, 0, 0, 0, 0, 0,214,169,178,187, -217,159,203,189, 37,110,107, 62,141,232, 27,230, 34,123,255, 0, 0, 0, 0, 0,218,229, 26, 62, 64, 3,133,190,167,233, 58, 62, -212, 74, 28, 14,225,102,255, 0, 2, 0, 0, 0,207,139, 58,189, 64, 3,133,190,167,233, 58, 62, 44,181, 28, 14,225,102,255, 0, - 2, 0, 0, 0,246,142, 45, 62,184,151,194,190, 99,183, 47, 62,235, 72, 17,252, 31,105,255, 0, 2, 0, 0, 0, 32,152,130,189, -184,151,194,190, 99,183, 47, 62, 21,183, 17,252, 31,105,255, 0, 2, 0, 0, 0,206, 5, 53, 62, 99,149,222,190, 31,133, 36, 62, -179, 66,197,225,249,104,255, 0, 2, 0, 0, 0,208,133,145,189, 99,149,222,190, 31,133, 36, 62, 77,189,197,225,249,104,255, 0, - 2, 0, 0, 0, 30, 24, 38, 62,234,249,244,190,111,151, 21, 62, 62, 44, 4,183, 98, 95,255, 0, 2, 0, 0, 0,224, 84,103,189, -234,249,244,190,111,151, 21, 62,194,211, 4,183, 98, 95,255, 0, 2, 0, 0, 0, 81,129, 4, 62, 86,181,248,190,111,151, 21, 62, -155, 19, 52,158, 54, 80,255, 0, 2, 0, 0, 0, 89,243,193,188, 86,181,248,190,111,151, 21, 62,101,236, 52,158, 54, 80,255, 0, - 2, 0, 0, 0,203,133, 88, 61,195,112,252,190,219, 82, 25, 62, 0, 0,201,154, 88, 78,255, 0, 2, 0, 0, 0,203,133, 88, 61, - 52, 55,247,188,128, 96, 66, 62, 0, 0, 2,252,239,127,255, 0, 0, 0, 0, 0,203,133, 88, 61,222,227, 61, 61,156, 9, 85, 62, - 0, 0,112,227,196,124,255, 0, 0, 0, 0, 0, 47,225, 82, 62, 82, 93, 46, 62, 88,215, 73, 62, 58, 21,234,254, 56,126,255, 0, - 0, 0, 0, 0,146, 60,205,189, 82, 93, 46, 62, 88,215, 73, 62,198,234,234,254, 56,126,255, 0, 0, 0, 0, 0, 81,129, 4, 62, -170, 34, 94, 60,196,146, 77, 62, 37,214,110,232,163,118,255, 0, 0, 0, 0, 0, 89,243,193,188,170, 34, 94, 60,196,146, 77, 62, -219, 41,110,232,163,118,255, 0, 0, 0, 0, 0, 65, 39,235, 61,222,227, 61, 61, 48, 78, 81, 62,150,232,127,230, 57,123,255, 0, - 0, 0, 0, 0,173, 11, 21,188,222,227, 61, 61, 48, 78, 81, 62,106, 23,127,230, 57,123,255, 0, 0, 0, 0, 0,145, 57,220, 61, - 76,220,190,190,236, 27, 70, 62,117, 20,197,248, 36,126,255, 0, 0, 0, 0, 0, 77,241,236,186, 76,220,190,190,236, 27, 70, 62, -139,235,197,248, 36,126,255, 0, 0, 0, 0, 0, 88,231,182, 61, 64, 3,133,190,196,146, 77, 62, 43, 19,128, 0,141,126,255, 0, - 2, 0, 0, 0,207,121,134, 60, 64, 3,133,190,196,146, 77, 62,213,236,128, 0,141,126,255, 0, 2, 0, 0, 0,203,133, 88, 61, - 64, 3,133,190,196,146, 77, 62, 0, 0,122,255,254,127,255, 0, 0, 0, 0, 0,203,133, 88, 61, 43, 11, 82,190, 88,215, 73, 62, - 0, 0,121,184, 36,106,255, 0, 0, 0, 0, 0, 8,213,197, 61, 55,235, 55,190,116,128, 92, 62,167, 66,139,160, 45, 53,255, 0, - 2, 0, 0, 0, 27,134, 21, 60, 55,235, 55,190,116,128, 92, 62, 89,189,139,160, 45, 53,255, 0, 2, 0, 0, 0, 65, 39,235, 61, -174,134, 33,190, 77,247, 99, 62,133,118,215,224,239, 36,255, 0, 2, 0, 0, 0,173, 11, 21,188,174,134, 33,190, 77,247, 99, 62, -123,137,215,224,239, 36,255, 0, 2, 0, 0, 0,185,194,212, 61, 57,123,233,189,116,128, 92, 62,167, 81,141, 95, 49, 24,255, 0, - 2, 0, 0, 0,191,196,240, 58, 57,123,233,189,116,128, 92, 62, 89,174,141, 95, 49, 24,255, 0, 2, 0, 0, 0, 31,149,145, 61, - 97, 4,226,189,116,128, 92, 62,189,200,160,108, 26, 39,255, 0, 2, 0, 0, 0, 89,225, 13, 61, 97, 4,226,189,116,128, 92, 62, - 67, 55,160,108, 26, 39,255, 0, 2, 0, 0, 0,203,133, 88, 61,106, 84, 22,190,253,228,114, 62, 0, 0, 42, 23,225,125,255, 0, - 0, 0, 0, 0,247, 11,153, 61,235,104,248,189, 37,110,107, 62,186,231, 89, 78, 66, 98,255, 0, 2, 0, 0, 0, 82,231,253, 60, -235,104,248,189, 37,110,107, 62, 70, 24, 89, 78, 66, 98,255, 0, 2, 0, 0, 0, 8,213,197, 61,195,223,255,189, 37,110,107, 62, - 88, 43,134, 62,237,102,255, 0, 2, 0, 0, 0, 27,134, 21, 60,195,223,255,189, 37,110,107, 62,168,212,134, 62,237,102,255, 0, - 2, 0, 0, 0,185,194,212, 61,174,134, 33,190,253,228,114, 62,247, 46, 89,233,228,116,255, 0, 2, 0, 0, 0,191,196,240, 58, -174,134, 33,190,253,228,114, 62, 9,209, 89,233,228,116,255, 0, 2, 0, 0, 0, 88,231,182, 61,243,184, 44,190,185,178,103, 62, - 46, 31,198,181,128, 99,255, 0, 2, 0, 0, 0,207,121,134, 60,243,184, 44,190,185,178,103, 62,210,224,198,181,128, 99,255, 0, - 2, 0, 0, 0,203,133, 88, 61, 15, 98, 63,190,185,178,103, 62, 0, 0,185,191,175,110,255, 0, 2, 0, 0, 0, 98, 74, 49, 62, - 83,148, 74,190,107,138,224, 61, 23,120, 34, 41, 99, 16,255, 0, 0, 0, 0, 0,248, 14,138,189, 83,148, 74,190,107,138,224, 61, -233,135, 34, 41, 99, 16,255, 0, 0, 0, 0, 0, 81,129, 4, 62,134,253, 40,190,167,233, 58, 62,251, 80, 26,250,241, 98,255, 0, - 0, 0, 0, 0, 89,243,193,188,134,253, 40,190,167,233, 58, 62, 5,175, 26,250,241, 98,255, 0, 0, 0, 0, 0, 41,248, 11, 62, - 83,148, 74,190,167,233, 58, 62,215, 83,153, 16, 71, 95,255, 0, 0, 0, 0, 0, 27,170,253,188, 83,148, 74,190,167,233, 58, 62, - 41,172,153, 16, 71, 95,255, 0, 0, 0, 0, 0, 30, 24, 38, 62,243,184, 44,190,107,138,224, 61, 24,122, 67, 35, 64, 15,255, 0, - 0, 0, 0, 0,224, 84,103,189,243,184, 44,190,107,138,224, 61,232,133, 67, 35, 64, 15,255, 0, 0, 0, 0, 0,203,133, 88, 61, - 93,165,235,190, 99,183, 47, 62, 0, 0,139, 86, 77, 94,255, 0, 0, 0, 0, 0,247, 11,153, 61,167,199,233,190, 99,183, 47, 62, -144,206,200, 70,125, 94,255, 0, 0, 0, 0, 0, 82,231,253, 60,167,199,233,190, 99,183, 47, 62,112, 49,200, 70,125, 94,255, 0, - 0, 0, 0, 0, 8,213,197, 61, 99,149,222,190,167,233, 58, 62,253,164,109, 17, 75, 88,255, 0, 0, 0, 0, 0, 27,134, 21, 60, - 99,149,222,190,167,233, 58, 62, 3, 91,109, 17, 75, 88,255, 0, 0, 0, 0, 0, 8,213,197, 61, 70,236,203,190,128, 96, 66, 62, -141,225, 87,168, 39, 88,255, 0, 0, 0, 0, 0, 27,134, 21, 60, 70,236,203,190,128, 96, 66, 62,115, 30, 87,168, 39, 88,255, 0, - 0, 0, 0, 0,203,133, 88, 61,212, 64,213,190,179,201, 32, 62, 0, 0, 20,159,153, 83,255, 0, 0, 0, 0, 0, 8,213,197, 61, -252,201,205,190, 31,133, 36, 62, 5,230,250,177, 20, 98,255, 0, 0, 0, 0, 0, 27,134, 21, 60,252,201,205,190, 31,133, 36, 62, -251, 25,250,177, 20, 98,255, 0, 0, 0, 0, 0, 8,213,197, 61,173,183,220,190,219, 82, 25, 62, 18,152, 8, 24,188, 70,255, 0, - 0, 0, 0, 0, 27,134, 21, 60,173,183,220,190,219, 82, 25, 62,238,103, 8, 24,188, 70,255, 0, 0, 0, 0, 0,247, 11,153, 61, - 59, 12,230,190,111,151, 21, 62, 26,222,242, 49,221,112,255, 0, 0, 0, 0, 0, 82,231,253, 60, 59, 12,230,190,111,151, 21, 62, -230, 33,242, 49,221,112,255, 0, 0, 0, 0, 0,203,133, 88, 61,241,233,231,190,111,151, 21, 62, 0, 0, 18, 60, 5,113,255, 0, - 0, 0, 0, 0,189, 60, 8, 62,142,209, 76, 61,116,128, 92, 62, 4, 30, 93,244,225,123,255, 0, 0, 0, 0, 0,186,206,223,188, -142,209, 76, 61,116,128, 92, 62,252,225, 93,244,225,123,255, 0, 0, 0, 0, 0,149,179, 15, 62, 22,200,170, 60, 8,197, 88, 62, - 71, 9, 34,251,144,127,255, 0, 0, 0, 0, 0,190,194, 13,189, 22,200,170, 60, 8,197, 88, 62,185,246, 34,251,144,127,255, 0, - 0, 0, 0, 0,155,156, 86, 62,202,248, 23, 62, 48, 78, 81, 62, 81, 17, 74, 2,204,126,255, 0, 0, 0, 0, 0,106,179,212,189, -202,248, 23, 62, 48, 78, 81, 62,175,238, 74, 2,204,126,255, 0, 0, 0, 0, 0, 58,193, 56, 62, 94, 61, 20, 62, 8,197, 88, 62, -218, 25,177,253, 86,125,255, 0, 2, 0, 0, 0,168,252,152,189, 94, 61, 20, 62, 8,197, 88, 62, 38,230,177,253, 86,125,255, 0, - 2, 0, 0, 0, 64,170,127, 62, 25, 11, 9, 62, 8,197, 88, 62,182, 21,210,240, 57,125,255, 0, 2, 0, 0, 0, 90,103, 19,190, - 25, 11, 9, 62, 8,197, 88, 62, 74,234,210,240, 57,125,255, 0, 2, 0, 0, 0,237,107,161, 62, 34, 77,229, 61,207,114, 51, 62, -143, 28,249,237,117,123,255, 0, 0, 0, 0, 0,244,148, 86,190, 34, 77,229, 61,207,114, 51, 62,113,227,249,237,117,123,255, 0, - 0, 0, 0, 0, 15, 5,167, 62, 97,150,169, 61, 99,183, 47, 62,209, 15,217,246,175,126,255, 0, 0, 0, 0, 0, 56,199, 97,190, - 97,150,169, 61, 99,183, 47, 62, 47,240,217,246,175,126,255, 0, 0, 0, 0, 0, 89, 39,165, 62,125, 8, 32, 61,247,251, 43, 62, -177, 24,190,253,146,125,255, 0, 0, 0, 0, 0,204, 11, 94,190,125, 8, 32, 61,247,251, 43, 62, 79,231,190,253,146,125,255, 0, - 0, 0, 0, 0, 26,229,140, 62, 60,222,152,187, 20,165, 62, 62, 20, 33, 75, 2,160,123,255, 0, 0, 0, 0, 0, 79,135, 45,190, - 60,222,152,187, 20,165, 62, 62,236,222, 75, 2,160,123,255, 0, 0, 0, 0, 0,184, 69,105, 62,115,128,187,188, 88,215, 73, 62, - 85, 26,238,248, 14,125,255, 0, 0, 0, 0, 0,163, 5,250,189,115,128,187,188, 88,215, 73, 62,171,229,238,248, 14,125,255, 0, - 0, 0, 0, 0,178, 92, 34, 62,226,194,133,186,116,128, 92, 62, 8, 7,142,250,175,127,255, 0, 0, 0, 0, 0, 48,103, 88,189, -226,194,133,186,116,128, 92, 62,248,248,142,250,175,127,255, 0, 0, 0, 0, 0, 41,248, 11, 62, 57, 13,177, 61,116,128, 92, 62, -169, 34, 2,240, 43,122,255, 0, 0, 0, 0, 0, 27,170,253,188, 57, 13,177, 61,116,128, 92, 62, 87,221, 2,240, 43,122,255, 0, - 0, 0, 0, 0,218,229, 26, 62,170,177,251, 61,116,128, 92, 62,126, 27,108,239,231,123,255, 0, 0, 0, 0, 0,207,139, 58,189, -170,177,251, 61,116,128, 92, 62,130,228,108,239,231,123,255, 0, 0, 0, 0, 0, 30, 24, 38, 62,250,195,236, 61, 48, 78, 81, 62, -226, 64, 13,207,224, 98,255, 0, 0, 0, 0, 0,224, 84,103,189,250,195,236, 61, 48, 78, 81, 62, 30,191, 13,207,224, 98,255, 0, - 0, 0, 0, 0, 1,111, 19, 62, 57, 13,177, 61, 48, 78, 81, 62, 29, 96,169,229, 81, 80,255, 0, 0, 0, 0, 0,110,176, 28,189, - 57, 13,177, 61, 48, 78, 81, 62,227,159,169,229, 81, 80,255, 0, 0, 0, 0, 0,138,211, 41, 62, 77,106,205, 59, 48, 78, 81, 62, - 36, 55,122, 71,188, 90,255, 0, 0, 0, 0, 0,143, 66,118,189, 77,106,205, 59, 48, 78, 81, 62,220,200,122, 71,188, 90,255, 0, - 0, 0, 0, 0,184, 69,105, 62,161,220, 67,188,128, 96, 66, 62, 76, 21, 90, 78,241, 98,255, 0, 0, 0, 0, 0,163, 5,250,189, -161,220, 67,188,128, 96, 66, 62,180,234, 90, 78,241, 98,255, 0, 0, 0, 0, 0,174, 41,137, 62,149,249, 43, 59, 59, 46, 55, 62, - 85,245, 69, 69, 25,107,255, 0, 0, 0, 0, 0,118, 16, 38,190,149,249, 43, 59, 59, 46, 55, 62,171, 10, 69, 69, 25,107,255, 0, - 0, 0, 0, 0,129,176,157, 62,222,227, 61, 61,139, 64, 40, 62,232,223,211, 29, 67,120,255, 0, 0, 0, 0, 0, 28, 30, 79,190, -222,227, 61, 61,139, 64, 40, 62, 24, 32,211, 29, 67,120,255, 0, 0, 0, 0, 0, 55,142,159, 62,137, 31,162, 61,139, 64, 40, 62, -148,210,123,238, 95,118,255, 0, 0, 0, 0, 0,136,217, 82,190,137, 31,162, 61,139, 64, 40, 62,108, 45,123,238, 95,118,255, 0, - 0, 0, 0, 0, 21,245,153, 62,114, 95,214, 61,247,251, 43, 62,216,229,108,179, 43, 99,255, 0, 0, 0, 0, 0, 67,167, 71,190, -114, 95,214, 61,247,251, 43, 62, 40, 26,108,179, 43, 99,255, 0, 0, 0, 0, 0,212,238,123, 62,173, 79, 5, 62,196,146, 77, 62, -202,237,179,158, 35, 81,255, 0, 2, 0, 0, 0,238,171, 15,190,173, 79, 5, 62,196,146, 77, 62, 54, 18,179,158, 35, 81,255, 0, - 2, 0, 0, 0,166,124, 60, 62, 25, 11, 9, 62,156, 9, 85, 62, 24, 39,118,212,214,113,255, 0, 2, 0, 0, 0,129,115,160,189, - 25, 11, 9, 62,156, 9, 85, 62,232,216,118,212,214,113,255, 0, 2, 0, 0, 0,155,156, 86, 62,133,198, 12, 62,196,146, 77, 62, -213, 1,189,193,208,111,255, 0, 0, 0, 0, 0,106,179,212,189,133,198, 12, 62,196,146, 77, 62, 43,254,189,193,208,111,255, 0, - 0, 0, 0, 0,109, 42, 23, 62,216,126,230, 60,196,146, 77, 62,226, 84,192, 42,187, 85,255, 0, 0, 0, 0, 0, 31,158, 43,189, -216,126,230, 60,196,146, 77, 62, 30,171,192, 42,187, 85,255, 0, 0, 0, 0, 0, 1,111, 19, 62, 63,191, 91, 61,196,146, 77, 62, -235,102,196, 2, 11, 76,255, 0, 0, 0, 0, 0,110,176, 28,189, 63,191, 91, 61,196,146, 77, 62, 21,153,196, 2, 11, 76,255, 0, - 0, 0, 0, 0,185,194,212, 61,122,230, 38, 62, 42,101, 10, 62,183,182,118,104, 5,246,255, 0, 0, 0, 0, 0,191,196,240, 58, -122,230, 38, 62, 42,101, 10, 62, 73, 73,118,104, 5,246,255, 0, 0, 0, 0, 0, 1,111, 19, 62,186,247,131, 62,150, 32, 14, 62, -208,192,221, 66, 3,167,255, 0, 2, 0, 0, 0,110,176, 28,189,186,247,131, 62,150, 32, 14, 62, 48, 63,221, 66, 3,167,255, 0, - 2, 0, 0, 0,155,156, 86, 62,220,144,137, 62, 82,238, 2, 62, 59, 9, 89, 90,208,165,255, 0, 2, 0, 0, 0,106,179,212,189, -220,144,137, 62, 82,238, 2, 62,197,246, 89, 90,208,165,255, 0, 2, 0, 0, 0,208,194,142, 62,139,175, 83, 62,107,138,224, 61, -165, 37,104,114,176,212,255, 0, 0, 0, 0, 0,187, 66, 49,190,139,175, 83, 62,107,138,224, 61, 91,218,104,114,176,212,255, 0, - 0, 0, 0, 0,152,105,189, 62, 14, 43, 35, 62,170,211,164, 61, 67, 45, 40,116, 1,227,255, 0, 0, 0, 0, 0, 37, 72,135,190, - 14, 43, 35, 62,170,211,164, 61,189,210, 40,116, 1,227,255, 0, 0, 0, 0, 0, 66,103,217, 62,133,198, 12, 62, 73,248,134, 61, -100, 94,237, 79, 18,223,255, 0, 0, 0, 0, 0,207, 69,163,190,133,198, 12, 62, 73,248,134, 61,156,161,237, 79, 18,223,255, 0, - 0, 0, 0, 0, 32,206,211, 62,119,163,200, 60,252,115,211, 60,247,120,255,221,165,231,255, 0, 0, 0, 0, 0,173,172,157,190, -119,163,200, 60,252,115,211, 60, 9,135,255,221,165,231,255, 0, 0, 0, 0, 0,123,192,170, 62,188, 45, 85,189,112, 94, 52, 61, -155, 76,106,154, 19,242,255, 0, 0, 0, 0, 0, 16, 62,105,190,188, 45, 85,189,112, 94, 52, 61,101,179,106,154, 19,242,255, 0, - 0, 0, 0, 0,140,144,131, 62, 0, 41,196,189, 33,111,142, 61,204, 56, 26,142,138, 13,255, 0, 0, 0, 0, 0, 50,222, 26,190, - 0, 41,196,189, 33,111,142, 61, 52,199, 26,142,138, 13,255, 0, 0, 0, 0, 0,203,133, 88, 61, 16,243,187, 62, 89,242,105,188, - 0, 0,155,106,214, 70,255, 0, 2, 0, 0, 0,203,133, 88, 61,226,121,208, 62,254, 7, 62,190, 0, 0,243,127, 82, 3,255, 0, - 2, 0, 0, 0,203,133, 88, 61,254,152, 18,190, 11,214,236,190, 0, 0, 54,164,204,166,255, 0, 3, 0, 0, 0,203,133, 88, 61, -173,190,136,190,139,142,124,189, 0, 0,179,129, 65,235,255, 0, 0, 0, 0, 0,203,133, 88, 61,205,243, 1,191, 73,248,134, 61, - 0, 0,182,151,204,181,255, 0, 2, 0, 0, 0,203,133, 88, 61,247,217,218,190,241, 12, 56, 60, 0, 0,231,221,162,132,255, 0, - 2, 0, 0, 0,203,133, 88, 61,161,222,162,190,147, 21,157, 57, 0, 0, 16,212,201,135,255, 0, 0, 0, 0, 0,203,133, 88, 61, -207, 87,142,190,141,212,146,188, 0, 0,245,147, 97,187,255, 0, 0, 0, 0, 0, 61,119,230, 62,239,172,106, 61,161, 43,253,189, -164,125,181,235,156, 13,255, 0, 0, 0, 0, 0,202, 85,176,190,239,172,106, 61,161, 43,253,189, 92,130,181,235,156, 13,255, 0, - 0, 0, 0, 0,243, 84,232, 62,194,113,199, 61, 78, 26, 47,190,174,126, 23,238, 66,252,255, 0, 0, 0, 0, 0,128, 51,178,190, -194,113,199, 61, 78, 26, 47,190, 82,129, 23,238, 66,252,255, 0, 0, 0, 0, 0, 32,206,211, 62,216, 49,147, 61,181,218,180,190, - 70, 81,148, 13, 15,158,255, 0, 1, 0, 0, 0,173,172,157,190,216, 49,147, 61,181,218,180,190,186,174,148, 13, 15,158,255, 0, - 1, 0, 0, 0,174, 41,137, 62, 54,180, 27, 62,226, 76,244,190,123, 58,228, 21, 70,144,255, 0, 3, 0, 0, 0,118, 16, 38,190, - 54,180, 27, 62,226, 76,244,190,133,197,228, 21, 70,144,255, 0, 3, 0, 0, 0,146,121,202, 62,239, 95,151,189,240, 61,238,189, - 76, 89,139,164,161, 6,255, 0, 2, 0, 0, 0, 31, 88,148,190,239, 95,151,189,240, 61,238,189,180,166,139,164,161, 6,255, 0, - 2, 0, 0, 0,197,226,168, 62, 97, 4,226,189,163, 21,103,190, 93, 38, 34,134,182, 7,255, 0, 0, 0, 0, 0,164,130,101,190, - 97, 4,226,189,163, 21,103,190,163,217, 34,134,182, 7,255, 0, 0, 0, 0, 0, 9, 21,180, 62,109, 27,100,189,255,252,178,190, -106, 43,219,170,222,170,255, 0, 1, 0, 0, 0, 45,231,123,190,109, 27,100,189,255,252,178,190,150,212,219,170,222,170,255, 0, - 1, 0, 0, 0,155,156, 86, 62,211, 91,217,188, 85,248,234,190,168, 55,109,213,229,148,255, 0, 2, 0, 0, 0,106,179,212,189, -211, 91,217,188, 85,248,234,190, 88,200,109,213,229,148,255, 0, 2, 0, 0, 0, 30, 24, 38, 62,112, 61, 93,190,191,112, 37, 61, -197,120, 36,255,158,213,255, 0, 0, 0, 0, 0,224, 84,103,189,112, 61, 93,190,191,112, 37, 61, 59,135, 36,255,158,213,255, 0, - 0, 0, 0, 0, 41,248, 11, 62,209, 24,123,190,176,102,236,188,188, 84, 20,181, 24,196,255, 0, 0, 0, 0, 0, 27,170,253,188, -209, 24,123,190,176,102,236,188, 68,171, 20,181, 24,196,255, 0, 0, 0, 0, 0, 19, 56, 64, 62,110,117,196,190, 92, 79,241, 60, -131, 79, 86,254,183,155,255, 0, 2, 0, 0, 0, 89,234,167,189,110,117,196,190, 92, 79,241, 60,125,176, 86,254,183,155,255, 0, - 2, 0, 0, 0,246,142, 45, 62, 59, 19,146,190, 95,149, 7, 61, 5, 99, 8, 1,231,174,255, 0, 0, 0, 0, 0, 32,152,130,189, - 59, 19,146,190, 95,149, 7, 61,251,156, 8, 1,231,174,255, 0, 0, 0, 0, 0, 47,225, 82, 62,234,249,244,190, 15,131, 22, 61, - 65, 62,227,185,224,168,255, 0, 2, 0, 0, 0,146, 60,205,189,234,249,244,190, 15,131, 22, 61,191,193,227,185,224,168,255, 0, - 2, 0, 0, 0, 25,158,242, 61,178,167,207,190,155,152,181, 60,133, 16,208,232, 55,131,255, 0, 0, 0, 0, 0,110,194, 80,188, -178,167,207,190,155,152,181, 60,123,239,208,232, 55,131,255, 0, 0, 0, 0, 0,105,176,227, 61,201,103,155,190, 58,189,151, 60, - 7, 48,163,224,149,141,255, 0, 0, 0, 0, 0,214,169,178,187,201,103,155,190, 58,189,151, 60,249,207,163,224,149,141,255, 0, - 0, 0, 0, 0, 81,129, 4, 62,195,112,252,190,129, 39, 97, 61, 68, 12,218,158,147,173,255, 0, 0, 0, 0, 0, 89,243,193,188, -195,112,252,190,129, 39, 97, 61,188,243,218,158,147,173,255, 0, 0, 0, 0, 0, 70,161, 30, 62,163,166, 59,190,208, 57, 82, 61, -195,124,106,227,203,255,255, 0, 0, 0, 0, 0,127,121, 73,189,163,166, 59,190,208, 57, 82, 61, 61,131,106,227,203,255,255, 0, - 0, 0, 0, 0,218,229, 26, 62,174,134, 33,190, 33,111,142, 61, 29,120,105,231,193, 36,255, 0, 0, 0, 0, 0,207,139, 58,189, -174,134, 33,190, 33,111,142, 61,227,135,105,231,193, 36,255, 0, 0, 0, 0, 0,109, 42, 23, 62,186,102, 7,190,130, 74,172, 61, -160,101,164,182,240, 25,255, 0, 0, 0, 0, 0, 31,158, 43,189,186,102, 7,190,130, 74,172, 61, 96,154,164,182,240, 25,255, 0, - 0, 0, 0, 0,218,229, 26, 62,140,230,111,190,206,171,148,189,120, 84,221,159,198,253,255, 0, 0, 0, 0, 0,207,139, 58,189, -140,230,111,190,206,171,148,189,136,171,221,159,198,253,255, 0, 0, 0, 0, 0,127,243, 67, 62, 83,148, 74,190, 16,205,139,190, -255, 67, 42,151, 73,228,255, 0, 2, 0, 0, 0, 49, 97,175,189, 83,148, 74,190, 16,205,139,190, 1,188, 42,151, 73,228,255, 0, - 2, 0, 0, 0, 7, 88, 90, 62,235,104,248,189,244, 28,205,190,201, 63, 25,176, 0,179,255, 0, 3, 0, 0, 0, 66, 42,220,189, -235,104,248,189,244, 28,205,190, 55,192, 25,176, 0,179,255, 0, 3, 0, 0, 0,248, 75,135, 62, 55,124,180, 62,187,202,167,190, - 34, 56,160, 95, 17,192,255, 0, 2, 0, 0, 0, 10, 85, 34,190, 55,124,180, 62,187,202,167,190,222,199,160, 95, 17,192,255, 0, - 2, 0, 0, 0,248, 75,135, 62,232,105,195, 62,146, 76, 58,190, 54, 55,120,115,239, 0,255, 0, 2, 0, 0, 0, 10, 85, 34,190, -232,105,195, 62,146, 76, 58,190,202,200,120,115,239, 0,255, 0, 2, 0, 0, 0,248, 75,135, 62,203,192,176, 62,105,252, 34,189, -239, 63,164, 92,238, 60,255, 0, 2, 0, 0, 0, 10, 85, 34,190,203,192,176, 62,105,252, 34,189, 17,192,164, 92,238, 60,255, 0, - 2, 0, 0, 0,174, 41,137, 62,219,193, 68, 62,208, 57, 82, 61,123, 49,255,102,170, 57,255, 0, 0, 0, 0, 0,118, 16, 38,190, -219,193, 68, 62,208, 57, 82, 61,133,206,255,102,170, 57,255, 0, 0, 0, 0, 0,220,155,200, 62,133,198, 12, 62, 95,172,248, 59, -142, 98,198, 73, 6, 35,255, 0, 0, 0, 0, 0,105,122,146,190,133,198, 12, 62, 95,172,248, 59,114,157,198, 73, 6, 35,255, 0, - 0, 0, 0, 0, 83, 55,178, 62, 14, 43, 35, 62,141,212,146,188,129, 61,254,106,241, 33,255, 0, 0, 0, 0, 0,193, 43,120,190, - 14, 43, 35, 62,141,212,146,188,127,194,254,106,241, 33,255, 0, 0, 0, 0, 0, 9, 21,180, 62, 72, 76,141, 62,161, 43,253,189, -234, 76,151, 87,221, 52,255, 0, 0, 0, 0, 0, 45,231,123,190, 72, 76,141, 62,161, 43,253,189, 22,179,151, 87,221, 52,255, 0, - 0, 0, 0, 0, 66,103,217, 62,247,106, 87, 62, 7,254,185,189,187,101, 28, 66,199, 40,255, 0, 2, 0, 0, 0,207, 69,163,190, -247,106, 87, 62, 7,254,185,189, 69,154, 28, 66,199, 40,255, 0, 2, 0, 0, 0, 66,103,217, 62,236,138,113, 62, 26,177, 80,190, -183,113, 68, 58,119,248,255, 0, 2, 0, 0, 0,207, 69,163,190,236,138,113, 62, 26,177, 80,190, 73,142, 68, 58,119,248,255, 0, - 2, 0, 0, 0, 9, 21,180, 62,141,126,152, 62, 83, 3,118,190,235, 86,238, 93,205,253,255, 0, 0, 0, 0, 0, 45,231,123,190, -141,126,152, 62, 83, 3,118,190, 21,169,238, 93,205,253,255, 0, 0, 0, 0, 0, 9, 21,180, 62, 38,179,135, 62,107,184,182,190, -232, 85,154, 70,157,192,255, 0, 2, 0, 0, 0, 45,231,123,190, 38,179,135, 62,107,184,182,190, 24,170,154, 70,157,192,255, 0, - 2, 0, 0, 0, 66,103,217, 62,179, 56, 76, 62,153, 49,162,190,166,110,177, 42,222,207,255, 0, 2, 0, 0, 0,207, 69,163,190, -179, 56, 76, 62,153, 49,162,190, 90,145,177, 42,222,207,255, 0, 2, 0, 0, 0,231,123,174, 62,154,232,206, 61, 56, 79,216,190, - 58, 75, 57, 1,116,152,255, 0, 3, 0, 0, 0,232,180,112,190,154,232,206, 61, 56, 79,216,190,198,180, 57, 1,116,152,255, 0, - 3, 0, 0, 0,208,194,142, 62,171,100, 40,189,170,250,206,190, 73, 70,147,187,200,173,255, 0, 1, 0, 0, 0,187, 66, 49,190, -171,100, 40,189,170,250,206,190,183,185,147,187,200,173,255, 0, 0, 0, 0, 0,100, 0,223, 62,154,232,206, 61,191,190,121,190, -194,114, 80, 41,207, 38,255, 0, 0, 0, 0, 0,241,222,168,190,154,232,206, 61,191,190,121,190, 62,141, 80, 41,207, 38,255, 0, - 0, 0, 0, 0,104, 51,120, 62,186,102, 7,190,127,153,163,189,232, 74,153,154, 28, 22,255, 0, 0, 0, 0, 0,130,240, 11,190, -186,102, 7,190,127,153,163,189, 24,181,153,154, 28, 22,255, 0, 0, 0, 0, 0,214,178,129, 62,254,152, 18,190, 44,122,125,190, - 89, 71,115,151, 1,237,255, 0, 0, 0, 0, 0,198, 34, 23,190,254,152, 18,190, 44,122,125,190,167,184,115,151, 1,237,255, 0, - 0, 0, 0, 0,202,203,239, 62,133,198, 12, 62, 56, 86,132,190, 72,220,207, 93,106, 79,255, 0, 2, 0, 0, 0, 88,170,185,190, -133,198, 12, 62, 56, 86,132,190,184, 35,207, 93,106, 79,255, 0, 2, 0, 0, 0, 32,206,211, 62, 18,242,240,189,135,108, 84,190, - 30, 15, 34,150, 84, 70,255, 0, 2, 0, 0, 0,173,172,157,190, 18,242,240,189,135,108, 84,190,226,240, 34,150, 84, 70,255, 0, - 2, 0, 0, 0, 38,160, 9, 63,217,159,203,189,192,186,154,190,164, 67,138,166,172, 61,255, 0, 0, 0, 0, 0,219, 30,221,190, -217,159,203,189,192,186,154,190, 92,188,138,166,172, 61,255, 0, 0, 0, 0, 0,172,140, 38, 63,211, 91,217,188,255,252,178,190, -179, 83,223,206,114, 83,255, 0, 0, 0, 0, 0,244,123, 11,191,211, 91,217,188,255,252,178,190, 77,172,223,206,114, 83,255, 0, - 0, 0, 0, 0, 95,242, 46, 63,194,113,199, 61, 73, 31,177,190, 54, 92,232, 12,210, 87,255, 0, 2, 0, 0, 0,167,225, 19,191, -194,113,199, 61, 73, 31,177,190,202,163,232, 12,210, 87,255, 0, 2, 0, 0, 0,138,243, 32, 63, 3, 75, 61, 62, 73, 31,177,190, -247, 62,221, 83, 97, 73,255, 0, 0, 0, 0, 0,209,226, 5,191, 3, 75, 61, 62, 73, 31,177,190, 9,193,221, 83, 97, 73,255, 0, - 0, 0, 0, 0,112,194, 7, 63, 82, 93, 46, 62, 84,255,150,190,181, 5, 80,111,236, 62,255, 0, 0, 0, 0, 0,111, 99,217,190, - 82, 93, 46, 62, 84,255,150,190, 75,250, 80,111,236, 62,255, 0, 0, 0, 0, 0,149,211, 6, 63,241,129, 16, 62, 50,102,145,190, -236, 69,117,239,236,105,255, 0, 0, 0, 0, 0,185,133,215,190,241,129, 16, 62, 50,102,145,190, 20,186,117,239,236,105,255, 0, - 0, 0, 0, 0,104, 90, 27, 63, 54,180, 27, 62,113,168,169,190, 34, 24,205,231, 89,123,255, 0, 0, 0, 0, 0,175, 73, 0,191, - 54,180, 27, 62,113,168,169,190,222,231,205,231, 89,123,255, 0, 0, 0, 0, 0,246,174, 36, 63, 97,150,169, 61,221, 99,173,190, - 69,223, 16,252,173,123,255, 0, 0, 0, 0, 0, 62,158, 9,191, 97,150,169, 61,221, 99,173,190,187, 32, 16,252,173,123,255, 0, - 0, 0, 0, 0,249, 38, 30, 63, 98,147,127,188,221, 99,173,190,171,239, 0, 39,207,120,255, 0, 0, 0, 0, 0, 64, 22, 3,191, - 98,147,127,188,221, 99,173,190, 85, 16, 0, 39,207,120,255, 0, 0, 0, 0, 0, 75,177, 8, 63, 23,233,143,189,158, 33,149,190, - 9, 51, 56, 45, 82,108,255, 0, 0, 0, 0, 0, 37, 65,219,190, 23,233,143,189,158, 33,149,190,247,204, 56, 45, 82,108,255, 0, - 0, 0, 0, 0, 26,222,224, 62,120,196,173,189,243, 39, 88,190,147, 38,224, 62,153,104,255, 0, 2, 0, 0, 0,167,188,170,190, -120,196,173,189,243, 39, 88,190,109,217,224, 62,153,104,255, 0, 2, 0, 0, 0,162, 66,247, 62,250,195,236, 61,204,154,128,190, -218, 62,152,243,206,110,255, 0, 2, 0, 0, 0, 48, 33,193,190,250,195,236, 61,204,154,128,190, 38,193,152,243,206,110,255, 0, - 2, 0, 0, 0,196,219,252, 62, 17,132,184, 61, 50,102,145,190, 10, 87, 73,182, 19, 58,255, 0, 0, 0, 0, 0, 82,186,198,190, - 17,132,184, 61, 50,102,145,190,246,168, 73,182, 19, 58,255, 0, 0, 0, 0, 0, 21,238,237, 62,103,251,128,189, 44,122,125,190, -232, 15,106,121, 64, 37,255, 0, 0, 0, 0, 0,162,204,183,190,103,251,128,189, 44,122,125,190, 24,240,106,121, 64, 37,255, 0, - 0, 0, 0, 0, 38,160, 9, 63,188, 45, 85,189, 79, 15,164,190,157,239, 89,122,212, 33,255, 0, 0, 0, 0, 0,219, 30,221,190, -188, 45, 85,189, 79, 15,164,190, 99, 16, 89,122,212, 33,255, 0, 0, 0, 0, 0,104, 90, 27, 63,223, 37, 8,188,107,184,182,190, - 8,158,202, 81,185, 9,255, 0, 0, 0, 0, 0,175, 73, 0,191,223, 37, 8,188,107,184,182,190,248, 97,202, 81,185, 9,255, 0, - 0, 0, 0, 0,138,243, 32, 63, 40, 68,132, 61,107,184,182,190, 60,131,145,239, 95, 23,255, 0, 0, 0, 0, 0,209,226, 5,191, - 40, 68,132, 61,107,184,182,190,196,124,145,239, 95, 23,255, 0, 0, 0, 0, 0,178,124, 25, 63,250,195,236, 61,181,218,180,190, - 27,228, 22,153,206, 70,255, 0, 0, 0, 0, 0,242,215,252,190,250,195,236, 61,181,218,180,190,229, 27, 22,153,206, 70,255, 0, - 0, 0, 0, 0,112,194, 7, 63, 74,214,221, 61,153, 49,162,190, 65, 68,253,168,113, 64,255, 0, 0, 0, 0, 0,111, 99,217,190, - 74,214,221, 61,153, 49,162,190,191,187,253,168,113, 64,255, 0, 0, 0, 0, 0,135,153,228, 62, 97,150,169, 61, 44,122,125,190, -113, 86,190,222, 87, 88,255, 0, 0, 0, 0, 0, 20,120,174,190, 97,150,169, 61, 44,122,125,190,143,169,190,222, 87, 88,255, 0, - 0, 0, 0, 0,209,187,226, 62,216,126,230, 60,198,170,141,190,196, 95,107,182,100, 42,255, 0, 0, 0, 0, 0, 93,154,172,190, -216,126,230, 60,198,170,141,190, 60,160,107,182,100, 42,255, 0, 0, 0, 0, 0,180, 18,208, 62,223, 37, 8,188,198,170,141,190, - 42,111, 21, 14,220, 61,255, 0, 0, 0, 0, 0, 65,241,153,190,223, 37, 8,188,198,170,141,190,214,144, 21, 14,220, 61,255, 0, - 0, 0, 0, 0,100, 0,223, 62,161,220, 67,188,198,170,141,190, 3, 79, 4, 91, 19, 43,255, 0, 2, 0, 0, 0,241,222,168,190, -161,220, 67,188,198,170,141,190,253,176, 4, 91, 19, 43,255, 0, 2, 0, 0, 0,135,153,228, 62, 92, 82, 55,189,198,170,141,190, -207,107,198,254,250, 68,255, 0, 2, 0, 0, 0, 20,120,174,190, 92, 82, 55,189,198,170,141,190, 49,148,198,254,250, 68,255, 0, - 2, 0, 0, 0,174, 34,221, 62, 29, 9,115,189,198,170,141,190, 7, 82,225, 64,200, 73,255, 0, 0, 0, 0, 0, 59, 1,167,190, - 29, 9,115,189,198,170,141,190,249,173,225, 64,200, 73,255, 0, 0, 0, 0, 0,220,155,200, 62,188, 45, 85,189,146, 76, 58,190, - 38,117, 66,207, 47,239,255, 0, 0, 0, 0, 0,105,122,146,190,188, 45, 85,189,146, 76, 58,190,218,138, 66,207, 47,239,255, 0, - 0, 0, 0, 0, 38,190,198, 62,103,251,128,189, 15,209,106,190,150, 97,139, 18,184, 80,255, 0, 0, 0, 0, 0,179,156,144,190, -103,251,128,189, 15,209,106,190,106,158,139, 18,184, 80,255, 0, 0, 0, 0, 0, 38,190,198, 62, 74,137, 10,189,231, 71,114,190, - 17,116, 66,240,154, 51,255, 0, 0, 0, 0, 0,179,156,144,190, 74,137, 10,189,231, 71,114,190,239,139, 66,240,154, 51,255, 0, - 0, 0, 0, 0, 66,103,217, 62, 45,246, 46, 61, 44,122,125,190,112,113,245,204, 39, 30,255, 0, 0, 0, 0, 0,207, 69,163,190, - 45,246, 46, 61, 44,122,125,190,144,142,245,204, 39, 30,255, 0, 0, 0, 0, 0,202,203,239, 62,159,154,121, 61, 16,205,139,190, -105, 90, 61,185,146, 56,255, 0, 0, 0, 0, 0, 88,170,185,190,159,154,121, 61, 16,205,139,190,151,165, 61,185,146, 56,255, 0, - 0, 0, 0, 0,202,203,239, 62,239,172,106, 61, 10,221,152,190,191, 82,102,204,230, 82,255, 0, 0, 0, 0, 0, 88,170,185,190, -239,172,106, 61, 10,221,152,190, 65,173,102,204,230, 82,255, 0, 0, 0, 0, 0,174, 34,221, 62, 29, 9,115,189, 10,221,152,190, -246, 29, 64, 98, 94, 76,255, 0, 0, 0, 0, 0, 59, 1,167,190, 29, 9,115,189, 10,221,152,190, 10,226, 64, 98, 94, 76,255, 0, - 0, 0, 0, 0, 61,119,230, 62, 92, 82, 55,189, 10,221,152,190,150, 77,111, 17, 75,100,255, 0, 0, 0, 0, 0,202, 85,176,190, - 92, 82, 55,189, 10,221,152,190,106,178,111, 17, 75,100,255, 0, 0, 0, 0, 0, 26,222,224, 62, 98,147,127,188, 10,221,152,190, -239, 60,190, 60,195, 94,255, 0, 0, 0, 0, 0,167,188,170,190, 98,147,127,188, 10,221,152,190, 17,195,190, 60,195, 94,255, 0, - 0, 0, 0, 0,106,240,209, 62,223, 37, 8,188, 10,221,152,190,199, 83,178, 23,209, 93,255, 0, 0, 0, 0, 0,247,206,155,190, -223, 37, 8,188, 10,221,152,190, 57,172,178, 23,209, 93,255, 0, 0, 0, 0, 0,135,153,228, 62,216,126,230, 60, 10,221,152,190, - 98, 73, 1,200,170, 88,255, 0, 0, 0, 0, 0, 20,120,174,190,216,126,230, 60, 10,221,152,190,158,182, 1,200,170, 88,255, 0, - 0, 0, 0, 0, 38,160, 9, 63,154,232,206, 61,147, 65,175,190, 23, 68,166,223,112,103,255, 0, 0, 0, 0, 0,219, 30,221,190, -154,232,206, 61,147, 65,175,190,233,187,166,223,112,103,255, 0, 0, 0, 0, 0,104, 90, 27, 63, 74,214,221, 61,249, 12,192,190, -165, 18,156,216, 89,120,255, 0, 0, 0, 0, 0,175, 73, 0,191, 74,214,221, 61,249, 12,192,190, 91,237,156,216, 89,120,255, 0, - 0, 0, 0, 0, 27,192, 35, 63,159,154,121, 61,175,234,193,190, 25,185, 29,231,157,103,255, 0, 0, 0, 0, 0, 98,175, 8,191, -159,154,121, 61,175,234,193,190,231, 70, 29,231,157,103,255, 0, 0, 0, 0, 0,249, 38, 30, 63,161,220, 67,188,249, 12,192,190, - 43,209, 0, 64,119,100,255, 0, 0, 0, 0, 0, 64, 22, 3,191,161,220, 67,188,249, 12,192,190,213, 46, 0, 64,119,100,255, 0, - 0, 0, 0, 0, 1,143, 10, 63,188, 45, 85,189, 73, 31,177,190, 52, 26,240, 92, 3, 84,255, 0, 0, 0, 0, 0,145,252,222,190, -188, 45, 85,189, 73, 31,177,190,204,229,240, 92, 3, 84,255, 0, 0, 0, 0, 0, 21,238,237, 62, 29, 9,115,189, 16,205,139,190, - 58, 8,116,111,101, 62,255, 0, 0, 0, 0, 0,162,204,183,190, 29, 9,115,189, 16,205,139,190,198,247,116,111,101, 62,255, 0, - 0, 0, 0, 0,122,185,254, 62, 97,150,169, 61, 45,118,158,190,198, 80,102,213,175, 89,255, 0, 0, 0, 0, 0, 8,152,200,190, - 97,150,169, 61, 45,118,158,190, 58,175,102,213,175, 89,255, 0, 0, 0, 0, 0,202,203,239, 62,226,194,133,186,192,186,154,190, -136, 25,130, 0,108,125,255, 0, 0, 0, 0, 0, 88,170,185,190,226,194,133,186,192,186,154,190,120,230,130, 0,108,125,255, 0, - 0, 0, 0, 0, 14,254,250, 62,115,128,187,188,119,152,156,190, 2, 27, 58, 30,104,121,255, 0, 0, 0, 0, 0,156,220,196,190, -115,128,187,188,119,152,156,190,254,228, 58, 30,104,121,255, 0, 0, 0, 0, 0,223,245, 4, 63, 77,106,205, 59, 79, 15,164,190, -218, 55,126,253, 35,115,255, 0, 0, 0, 0, 0, 76,202,211,190, 77,106,205, 59, 79, 15,164,190, 38,200,126,253, 35,115,255, 0, - 0, 0, 0, 0,152, 75, 0, 63,216,126,230, 60,227, 83,160,190,164, 41,199,255, 8,121,255, 0, 0, 0, 0, 0,190,117,202,190, -216,126,230, 60,227, 83,160,190, 92,214,199,255, 8,121,255, 0, 0, 0, 0, 0,149,211, 6, 63,239,172,106, 61, 5,237,165,190, -237, 39,191, 9, 55,121,255, 0, 0, 0, 0, 0,185,133,215,190,239,172,106, 61, 5,237,165,190, 19,216,191, 9, 55,121,255, 0, - 0, 0, 0, 0,220,125, 11, 63,205, 26, 17, 61,187,202,167,190,208, 46, 41,244,137,118,255, 0, 0, 0, 0, 0, 71,218,224,190, -205, 26, 17, 61,187,202,167,190, 48,209, 41,244,137,118,255, 0, 0, 0, 0, 0,218, 5, 18, 63,222,227, 61, 61,113,168,169,190, - 70, 53, 84, 3, 85,116,255, 0, 2, 0, 0, 0, 65,234,237,190,222,227, 61, 61,113,168,169,190,186,202, 84, 3, 85,116,255, 0, - 2, 0, 0, 0, 73, 57, 15, 63,176,168,154, 61,113,168,169,190, 99, 44, 36, 38,212,113,255, 0, 2, 0, 0, 0, 31, 81,232,190, -176,168,154, 61,113,168,169,190,157,211, 36, 38,212,113,255, 0, 2, 0, 0, 0,112,194, 7, 63, 54,180, 27, 62,249, 12,192,190, -249,198, 3, 72,222,166,255, 0, 3, 0, 0, 0,111, 99,217,190, 54,180, 27, 62,249, 12,192,190, 7, 57, 3, 72,222,166,255, 0, - 3, 0, 0, 0, 64,209, 34, 63,230,161, 42, 62,170,250,206,190,198, 37,123, 68,174,154,255, 0, 3, 0, 0, 0,135,192, 7,191, -230,161, 42, 62,170,250,206,190, 58,218,123, 68,174,154,255, 0, 3, 0, 0, 0, 21,208, 48, 63, 57, 13,177, 61,102,200,195,190, - 3,121,201, 17, 73,218,255, 0, 3, 0, 0, 0, 93,191, 21,191, 57, 13,177, 61,102,200,195,190,253,134,201, 17, 73,218,255, 0, - 3, 0, 0, 0, 24, 72, 42, 63,211, 91,217,188, 62, 63,203,190, 59, 82, 75,200, 70,175,255, 0, 3, 0, 0, 0, 96, 55, 15,191, -211, 91,217,188, 62, 63,203,190,197,173, 75,200, 70,175,255, 0, 3, 0, 0, 0, 38,160, 9, 63, 40,178,188,189,175,234,193,190, -134,249,184,165,129,165,255, 0, 3, 0, 0, 0,219, 30,221,190, 40,178,188,189,175,234,193,190,122, 6,184,165,129,165,255, 0, - 3, 0, 0, 0,140,137,215, 62, 97, 4,226,189,192,186,154,190,126,249,122,163,205,167,255, 0, 1, 0, 0, 0, 25,104,161,190, - 97, 4,226,189,192,186,154,190,130, 6,122,163,205,167,255, 0, 1, 0, 0, 0,243, 84,232, 62, 65,148, 1, 62,187,202,167,190, - 93,193,224, 65,229,165,255, 0, 1, 0, 0, 0,128, 51,178,190, 65,148, 1, 62,187,202,167,190,163, 62,224, 65,229,165,255, 0, - 1, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 64,145,181, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,146,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 28, 47, 0, 0,200,146,181, 3, 55, 0, 0, 0,237, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 28, 47, 0, 0, 24,150, 52, 3, 0, 0, 0, 0, 49, 0, 0, 0,237, 3, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, @@ -6552,1258 +7215,1119 @@ char datatoc_preview_blend[]= { 207, 1, 0, 0, 0, 0, 34, 0,167, 1, 0, 0,207, 1, 0, 0, 0, 0, 34, 0,168, 1, 0, 0,208, 1, 0, 0, 0, 0, 34, 0, 206, 1, 0, 0,208, 1, 0, 0, 0, 0, 34, 0,207, 1, 0, 0,209, 1, 0, 0, 0, 0, 34, 0,165, 1, 0, 0,209, 1, 0, 0, 0, 0, 34, 0,166, 1, 0, 0,210, 1, 0, 0, 0, 0, 34, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 34, 0,209, 1, 0, 0, -211, 1, 0, 0, 0, 0, 34, 0,163, 1, 0, 0,211, 1, 0, 0, 0, 0, 34, 0,164, 1, 0, 0,212, 1, 0, 0, 0, 0, 34, 0, -210, 1, 0, 0,212, 1, 0, 0, 0, 0, 34, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 34, 0,161, 1, 0, 0,213, 1, 0, 0, - 0, 0, 34, 0,162, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,213, 1, 0, 0, -215, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 34, 0,197, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0, -219, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0,199, 1, 0, 0,219, 1, 0, 0, 0, 0, 34, 0,198, 1, 0, 0,222, 1, 0, 0, - 0, 0, 34, 0,200, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,221, 1, 0, 0, -223, 1, 0, 0, 0, 0, 34, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 32, 0,219, 1, 0, 0,225, 1, 0, 0, 0, 0, 34, 0, -222, 1, 0, 0,224, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,226, 1, 0, 0, - 0, 0, 32, 0,223, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,225, 1, 0, 0, -227, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,226, 1, 0, 0,228, 1, 0, 0, 0, 0, 34, 0, -228, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,229, 1, 0, 0,231, 1, 0, 0, 0, 0, 34, 0,231, 1, 0, 0,233, 1, 0, 0, - 0, 0, 34, 0,227, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,228, 1, 0, 0, -234, 1, 0, 0, 0, 0, 34, 0,232, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,217, 1, 0, 0,227, 1, 0, 0, 0, 0, 34, 0, -205, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,218, 1, 0, 0,228, 1, 0, 0, 0, 0, 34, 0,206, 1, 0, 0,234, 1, 0, 0, - 0, 0, 34, 0,193, 1, 0, 0,225, 1, 0, 0, 0, 0, 34, 0,194, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,203, 1, 0, 0, -219, 1, 0, 0, 0, 0, 34, 0,204, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,215, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0, -216, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,213, 1, 0, 0,223, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,224, 1, 0, 0, - 0, 0, 34, 0,211, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,209, 1, 0, 0, -231, 1, 0, 0, 0, 0, 34, 0,210, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,207, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0, -208, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,131, 1, 0, 0,245, 1, 0, 0, 0, 0, 34, 0,243, 1, 0, 0,245, 1, 0, 0, - 0, 0, 39, 0,133, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,132, 1, 0, 0,246, 1, 0, 0, 0, 0, 34, 0,134, 1, 0, 0, -244, 1, 0, 0, 0, 0, 34, 0,244, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 39, 0, -135, 1, 0, 0,241, 1, 0, 0, 0, 0, 34, 0,136, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0,242, 1, 0, 0,244, 1, 0, 0, - 0, 0, 39, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 39, 0,137, 1, 0, 0,239, 1, 0, 0, 0, 0, 34, 0,138, 1, 0, 0, -240, 1, 0, 0, 0, 0, 34, 0,240, 1, 0, 0,242, 1, 0, 0, 0, 0, 39, 0,237, 1, 0, 0,239, 1, 0, 0, 0, 0, 39, 0, -139, 1, 0, 0,237, 1, 0, 0, 0, 0, 34, 0,140, 1, 0, 0,238, 1, 0, 0, 0, 0, 34, 0,238, 1, 0, 0,240, 1, 0, 0, - 0, 0, 39, 0,235, 1, 0, 0,237, 1, 0, 0, 0, 0, 39, 0,141, 1, 0, 0,235, 1, 0, 0, 0, 0, 34, 0,142, 1, 0, 0, -236, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 39, 0,235, 1, 0, 0,247, 1, 0, 0, 0, 0, 39, 0, -129, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,130, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,248, 1, 0, 0, - 0, 0, 39, 0,235, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0, -244, 1, 0, 0, 0, 0, 34, 0,246, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,237, 1, 0, 0,241, 1, 0, 0, 0, 0, 34, 0, -238, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0,247, 1, 0, 0, 0, 0, 39, 0, 56, 1, 0, 0,248, 1, 0, 0, - 0, 0, 39, 0, 63, 1, 0, 0,245, 1, 0, 0, 0, 0, 39, 0, 64, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0, 14, 0, 0, 0, -249, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,178, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, - 14, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0,112, 0, 0, 0, - 0, 0, 34, 0, 9, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 24,194,181, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,195,181, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,234,181, 3, 6, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 16, 39, 0, 0,160,195,181, 3, 54, 0, 0, 0,244, 1, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0, 0, 0, 46, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 1, - 43, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 3, 0, 0, 0, 44, 0, 0, 0, - 42, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 7, 0, 0, 0, - 9, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 1, 9, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 10, 0, 0, 0, 12, 0, 0, 0, - 14, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1,112, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, - 8, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1, 16, 0, 0, 0,112, 0, 0, 0, 9, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0, 19, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 18, 0, 0, 0, - 20, 0, 0, 0,112, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 1, 20, 0, 0, 0, 22, 0, 0, 0, 13, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 1, 21, 0, 0, 0, 23, 0, 0, 0, - 25, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 1, 26, 0, 0, 0, 24, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, - 19, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 28, 0, 0, 0, 26, 0, 0, 0, 20, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 1, 25, 0, 0, 0, 31, 0, 0, 0, 29, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 1, 30, 0, 0, 0, - 32, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 23, 0, 0, 0, 33, 0, 0, 0, 31, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 1, 32, 0, 0, 0, 34, 0, 0, 0, 24, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 1, 33, 0, 0, 0, 35, 0, 0, 0, - 37, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 36, 0, 0, 0, 34, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 1, - 31, 0, 0, 0, 37, 0, 0, 0, 39, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 38, 0, 0, 0, 32, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 1, 37, 0, 0, 0, 43, 0, 0, 0, 41, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 1, 42, 0, 0, 0, - 44, 0, 0, 0, 38, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 1, 35, 0, 0, 0, 45, 0, 0, 0, 43, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 1, 44, 0, 0, 0, 46, 0, 0, 0, 36, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 45, 0, 0, 0, 35, 0, 0, 0, - 49, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 36, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 1, - 35, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 1, 52, 0, 0, 0, 34, 0, 0, 0, 36, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 1, 33, 0, 0, 0, 23, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 54, 0, 0, 0, - 24, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 1, 23, 0, 0, 0, 21, 0, 0, 0, 55, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 1, 56, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 1, 21, 0, 0, 0, 12, 0, 0, 0, - 57, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 1, 58, 0, 0, 0, 13, 0, 0, 0, 22, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 1, - 12, 0, 0, 0, 10, 0, 0, 0, 61, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 1, 62, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, - 58, 0, 0, 0, 0, 0, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, - 1, 0, 0, 0, 11, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 45, 0, 0, 0, 47, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 1, 48, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 63, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 48, 0, 0, 0, 64, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 61, 0, 0, 0, 63, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60, 0, 0, 0, 64, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 62, 0, 0, 0, - 58, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 55, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 58, 0, 0, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 53, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 54, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 59, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 54, 0, 0, 0, 52, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 49, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 52, 0, 0, 0, - 50, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 50, 0, 0, 0, 48, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 87, 0, 0, 0,171, 0, 0, 0, -173, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 1,173, 0, 0, 0,172, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 1, - 85, 0, 0, 0,169, 0, 0, 0,171, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 1,172, 0, 0, 0,170, 0, 0, 0, 86, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 0, 1, 83, 0, 0, 0,167, 0, 0, 0,169, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 1,170, 0, 0, 0, -168, 0, 0, 0, 84, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0,165, 0, 0, 0,167, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 1,168, 0, 0, 0,166, 0, 0, 0, 82, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0,163, 0, 0, 0, -165, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1,166, 0, 0, 0,164, 0, 0, 0, 80, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 1, - 77, 0, 0, 0, 90, 0, 0, 0,143, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 1,144, 0, 0, 0, 91, 0, 0, 0, 78, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 1, 90, 0, 0, 0, 92, 0, 0, 0,145, 0, 0, 0,143, 0, 0, 0, 0, 0, 0, 1,146, 0, 0, 0, - 93, 0, 0, 0, 91, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 1, 92, 0, 0, 0, 94, 0, 0, 0,147, 0, 0, 0,145, 0, 0, 0, - 0, 0, 0, 1,148, 0, 0, 0, 95, 0, 0, 0, 93, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 1, 94, 0, 0, 0, 96, 0, 0, 0, -149, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 1,150, 0, 0, 0, 97, 0, 0, 0, 95, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 1, - 96, 0, 0, 0, 98, 0, 0, 0,151, 0, 0, 0,149, 0, 0, 0, 0, 0, 0, 1,152, 0, 0, 0, 99, 0, 0, 0, 97, 0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 1, 98, 0, 0, 0,100, 0, 0, 0,153, 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 1,154, 0, 0, 0, -101, 0, 0, 0, 99, 0, 0, 0,152, 0, 0, 0, 0, 0, 0, 1,100, 0, 0, 0,102, 0, 0, 0,155, 0, 0, 0,153, 0, 0, 0, - 0, 0, 0, 1,156, 0, 0, 0,103, 0, 0, 0,101, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 1,102, 0, 0, 0,104, 0, 0, 0, -157, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 1,158, 0, 0, 0,105, 0, 0, 0,103, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 1, -104, 0, 0, 0,106, 0, 0, 0,159, 0, 0, 0,157, 0, 0, 0, 0, 0, 0, 1,160, 0, 0, 0,107, 0, 0, 0,105, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 1,106, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 1, 66, 0, 0, 0, - 65, 0, 0, 0,107, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0,125, 0, 0, 0,157, 0, 0, 0,159, 0, 0, 0, - 0, 0, 0, 1,158, 0, 0, 0,126, 0, 0, 0,109, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 0,176, 0, 0, 0, -155, 0, 0, 0,157, 0, 0, 0, 0, 0, 0, 1,156, 0, 0, 0,177, 0, 0, 0,126, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 1, -123, 0, 0, 0,153, 0, 0, 0,155, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 1,156, 0, 0, 0,154, 0, 0, 0,124, 0, 0, 0, -177, 0, 0, 0, 0, 0, 0, 1,121, 0, 0, 0,151, 0, 0, 0,153, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 1,154, 0, 0, 0, -152, 0, 0, 0,122, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 1,119, 0, 0, 0,149, 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, - 0, 0, 0, 1,152, 0, 0, 0,150, 0, 0, 0,120, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0,147, 0, 0, 0, -149, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 1,150, 0, 0, 0,148, 0, 0, 0,118, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 1, -115, 0, 0, 0,145, 0, 0, 0,147, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 1,148, 0, 0, 0,146, 0, 0, 0,116, 0, 0, 0, -118, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 1,146, 0, 0, 0, -144, 0, 0, 0,114, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0,161, 0, 0, 0,143, 0, 0, 0,113, 0, 0, 0, - 0, 0, 0, 1,144, 0, 0, 0,162, 0, 0, 0,112, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0,178, 0, 0, 0, -174, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 1,174, 0, 0, 0,179, 0, 0, 0,112, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 1, -108, 0, 0, 0,159, 0, 0, 0, 66, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 1, 66, 0, 0, 0,160, 0, 0, 0,109, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 1,110, 0, 0, 0, 66, 0, 0, 0,175, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 1,175, 0, 0, 0, - 66, 0, 0, 0,111, 0, 0, 0,181, 0, 0, 0, 0, 0, 0, 1,174, 0, 0, 0,178, 0, 0, 0,180, 0, 0, 0,175, 0, 0, 0, - 0, 0, 0, 1,181, 0, 0, 0,179, 0, 0, 0,174, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 1,132, 0, 0, 0,134, 0, 0, 0, -173, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 1,173, 0, 0, 0,134, 0, 0, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 1, -130, 0, 0, 0,132, 0, 0, 0,171, 0, 0, 0,169, 0, 0, 0, 0, 0, 0, 1,172, 0, 0, 0,133, 0, 0, 0,131, 0, 0, 0, -170, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,130, 0, 0, 0,169, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 1,170, 0, 0, 0, -131, 0, 0, 0,129, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 1,163, 0, 0, 0,184, 0, 0, 0,182, 0, 0, 0,165, 0, 0, 0, - 0, 0, 0, 1,183, 0, 0, 0,185, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,167, 0, 0, 0, -165, 0, 0, 0,182, 0, 0, 0, 0, 0, 0, 1,166, 0, 0, 0,168, 0, 0, 0,129, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 1, -141, 0, 0, 0,187, 0, 0, 0,186, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 1,186, 0, 0, 0,187, 0, 0, 0,142, 0, 0, 0, -185, 0, 0, 0, 0, 0, 0, 1,182, 0, 0, 0,184, 0, 0, 0,186, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,186, 0, 0, 0, -185, 0, 0, 0,183, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,127, 0, 0, 0,128, 0, 0, 0,182, 0, 0, 0, 67, 0, 0, 0, - 0, 0, 0, 1,183, 0, 0, 0,129, 0, 0, 0,127, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,139, 0, 0, 0,190, 0, 0, 0, -188, 0, 0, 0,141, 0, 0, 0, 0, 0, 0, 1,189, 0, 0, 0,191, 0, 0, 0,140, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 1, -137, 0, 0, 0,192, 0, 0, 0,190, 0, 0, 0,139, 0, 0, 0, 0, 0, 0, 1,191, 0, 0, 0,193, 0, 0, 0,138, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 1,136, 0, 0, 0,194, 0, 0, 0,192, 0, 0, 0,137, 0, 0, 0, 0, 0, 0, 1,193, 0, 0, 0, -195, 0, 0, 0,136, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 1,135, 0, 0, 0, 69, 0, 0, 0,194, 0, 0, 0,136, 0, 0, 0, - 0, 0, 0, 1,195, 0, 0, 0, 69, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 1,187, 0, 0, 0,141, 0, 0, 0, -188, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 1,189, 0, 0, 0,142, 0, 0, 0,187, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 1, - 68, 0, 0, 0,188, 0, 0, 0,203, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 1,204, 0, 0, 0,189, 0, 0, 0, 68, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 0,196, 0, 0, 0,197, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 1,198, 0, 0, 0, -196, 0, 0, 0, 69, 0, 0, 0,195, 0, 0, 0, 0, 0, 0, 1,194, 0, 0, 0,197, 0, 0, 0,199, 0, 0, 0,192, 0, 0, 0, - 0, 0, 0, 1,200, 0, 0, 0,198, 0, 0, 0,195, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 1,192, 0, 0, 0,199, 0, 0, 0, -201, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 1,202, 0, 0, 0,200, 0, 0, 0,193, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 1, -190, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 1,204, 0, 0, 0,202, 0, 0, 0,191, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 1,196, 0, 0, 0,201, 0, 0, 0,199, 0, 0, 0,197, 0, 0, 0, 0, 0, 0, 1,200, 0, 0, 0, -202, 0, 0, 0,196, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 1,196, 0, 0, 0,205, 0, 0, 0,203, 0, 0, 0,201, 0, 0, 0, - 0, 0, 0, 1,204, 0, 0, 0,205, 0, 0, 0,196, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 1,136, 0, 0, 0,137, 0, 0, 0, -161, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 1,162, 0, 0, 0,138, 0, 0, 0,136, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 1, -137, 0, 0, 0,139, 0, 0, 0,208, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0,140, 0, 0, 0,138, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 1,139, 0, 0, 0,141, 0, 0, 0,210, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 1,211, 0, 0, 0, -142, 0, 0, 0,140, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0,184, 0, 0, 0,163, 0, 0, 0,210, 0, 0, 0, - 0, 0, 0, 1,164, 0, 0, 0,185, 0, 0, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0,206, 0, 0, 0, -210, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 1,211, 0, 0, 0,207, 0, 0, 0, 80, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 1, -206, 0, 0, 0,212, 0, 0, 0,208, 0, 0, 0,210, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0,213, 0, 0, 0,207, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0,161, 0, 0, 0,208, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0, -162, 0, 0, 0, 78, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,127, 0, 0, 0, 70, 0, 0, 0,219, 0, 0, 0, - 0, 0, 0, 1, 70, 0, 0, 0,127, 0, 0, 0,129, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,130, 0, 0, 0,128, 0, 0, 0, -219, 0, 0, 0,217, 0, 0, 0, 0, 0, 0, 1,220, 0, 0, 0,129, 0, 0, 0,131, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 1, -132, 0, 0, 0,130, 0, 0, 0,217, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 1,218, 0, 0, 0,131, 0, 0, 0,133, 0, 0, 0, -216, 0, 0, 0, 0, 0, 0, 1,134, 0, 0, 0,132, 0, 0, 0,215, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 1,216, 0, 0, 0, -133, 0, 0, 0,134, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 1,214, 0, 0, 0,215, 0, 0, 0,226, 0, 0, 0,228, 0, 0, 0, - 0, 0, 0, 1,227, 0, 0, 0,216, 0, 0, 0,214, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 1,215, 0, 0, 0,217, 0, 0, 0, -224, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 1,225, 0, 0, 0,218, 0, 0, 0,216, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 1, -217, 0, 0, 0,219, 0, 0, 0,222, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 1,223, 0, 0, 0,220, 0, 0, 0,218, 0, 0, 0, -225, 0, 0, 0, 0, 0, 0, 1,219, 0, 0, 0, 70, 0, 0, 0,221, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 1,221, 0, 0, 0, - 70, 0, 0, 0,220, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 1,221, 0, 0, 0,228, 0, 0, 0,226, 0, 0, 0,222, 0, 0, 0, - 0, 0, 0, 1,227, 0, 0, 0,228, 0, 0, 0,221, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 1,222, 0, 0, 0,226, 0, 0, 0, -224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,225, 0, 0, 0,227, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -180, 0, 0, 0,178, 0, 0, 0,231, 0, 0, 0,229, 0, 0, 0, 0, 0, 0, 1,232, 0, 0, 0,179, 0, 0, 0,181, 0, 0, 0, -230, 0, 0, 0, 0, 0, 0, 1,110, 0, 0, 0,180, 0, 0, 0,229, 0, 0, 0,251, 0, 0, 0, 0, 0, 0, 1,230, 0, 0, 0, -181, 0, 0, 0,111, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0,110, 0, 0, 0,251, 0, 0, 0,253, 0, 0, 0, - 0, 0, 0, 1,252, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 1,178, 0, 0, 0, 14, 0, 0, 0, -249, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 1,250, 0, 0, 0,112, 0, 0, 0,179, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 1, - 14, 0, 0, 0,113, 0, 0, 0,247, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 1,248, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0, -250, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0,115, 0, 0, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 1,246, 0, 0, 0, -116, 0, 0, 0,114, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 1,115, 0, 0, 0,117, 0, 0, 0,243, 0, 0, 0,245, 0, 0, 0, - 0, 0, 0, 1,244, 0, 0, 0,118, 0, 0, 0,116, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0,119, 0, 0, 0, -241, 0, 0, 0,243, 0, 0, 0, 0, 0, 0, 1,242, 0, 0, 0,120, 0, 0, 0,118, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 1, -119, 0, 0, 0,121, 0, 0, 0,239, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 1,240, 0, 0, 0,122, 0, 0, 0,120, 0, 0, 0, -242, 0, 0, 0, 0, 0, 0, 1,121, 0, 0, 0,123, 0, 0, 0,237, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 1,238, 0, 0, 0, -124, 0, 0, 0,122, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 1,123, 0, 0, 0,176, 0, 0, 0,233, 0, 0, 0,237, 0, 0, 0, - 0, 0, 0, 1,234, 0, 0, 0,177, 0, 0, 0,124, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 1,176, 0, 0, 0,125, 0, 0, 0, -235, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 1,236, 0, 0, 0,126, 0, 0, 0,177, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 1, -125, 0, 0, 0,108, 0, 0, 0,253, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 1,254, 0, 0, 0,109, 0, 0, 0,126, 0, 0, 0, -236, 0, 0, 0, 0, 0, 0, 1,235, 0, 0, 0,253, 0, 0, 0,255, 0, 0, 0, 17, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, -254, 0, 0, 0,236, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 1,233, 0, 0, 0,235, 0, 0, 0, 17, 1, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 1, 18, 1, 0, 0,236, 0, 0, 0,234, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1,237, 0, 0, 0,233, 0, 0, 0, - 19, 1, 0, 0, 15, 1, 0, 0, 0, 0, 0, 1, 20, 1, 0, 0,234, 0, 0, 0,238, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0, 1, -239, 0, 0, 0,237, 0, 0, 0, 15, 1, 0, 0, 13, 1, 0, 0, 0, 0, 0, 1, 16, 1, 0, 0,238, 0, 0, 0,240, 0, 0, 0, - 14, 1, 0, 0, 0, 0, 0, 1,241, 0, 0, 0,239, 0, 0, 0, 13, 1, 0, 0, 11, 1, 0, 0, 0, 0, 0, 1, 14, 1, 0, 0, -240, 0, 0, 0,242, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 1,243, 0, 0, 0,241, 0, 0, 0, 11, 1, 0, 0, 9, 1, 0, 0, - 0, 0, 0, 1, 12, 1, 0, 0,242, 0, 0, 0,244, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 1,245, 0, 0, 0,243, 0, 0, 0, - 9, 1, 0, 0, 7, 1, 0, 0, 0, 0, 0, 1, 10, 1, 0, 0,244, 0, 0, 0,246, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 1, -247, 0, 0, 0,245, 0, 0, 0, 7, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 8, 1, 0, 0,246, 0, 0, 0,248, 0, 0, 0, - 6, 1, 0, 0, 0, 0, 0, 1,249, 0, 0, 0,247, 0, 0, 0, 5, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 1, 6, 1, 0, 0, -248, 0, 0, 0,250, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 1,231, 0, 0, 0,249, 0, 0, 0, 3, 1, 0, 0, 21, 1, 0, 0, - 0, 0, 0, 1, 4, 1, 0, 0,250, 0, 0, 0,232, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1,253, 0, 0, 0,251, 0, 0, 0, - 1, 1, 0, 0,255, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0,252, 0, 0, 0,254, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, -251, 0, 0, 0,229, 0, 0, 0, 23, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 24, 1, 0, 0,230, 0, 0, 0,252, 0, 0, 0, - 2, 1, 0, 0, 0, 0, 0, 1,229, 0, 0, 0,231, 0, 0, 0, 21, 1, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 22, 1, 0, 0, -232, 0, 0, 0,230, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 1, 65, 0, 0, 0,106, 0, 0, 0, 25, 1, 0, 0, 71, 0, 0, 0, - 0, 0, 0, 1, 26, 1, 0, 0,107, 0, 0, 0, 65, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 1,106, 0, 0, 0,104, 0, 0, 0, - 27, 1, 0, 0, 25, 1, 0, 0, 0, 0, 0, 1, 28, 1, 0, 0,105, 0, 0, 0,107, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 1, -104, 0, 0, 0,102, 0, 0, 0, 29, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 1, 30, 1, 0, 0,103, 0, 0, 0,105, 0, 0, 0, - 28, 1, 0, 0, 0, 0, 0, 1,102, 0, 0, 0,100, 0, 0, 0, 31, 1, 0, 0, 29, 1, 0, 0, 0, 0, 0, 1, 32, 1, 0, 0, -101, 0, 0, 0,103, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 1,100, 0, 0, 0, 98, 0, 0, 0, 33, 1, 0, 0, 31, 1, 0, 0, - 0, 0, 0, 1, 34, 1, 0, 0, 99, 0, 0, 0,101, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 1, 98, 0, 0, 0, 96, 0, 0, 0, - 35, 1, 0, 0, 33, 1, 0, 0, 0, 0, 0, 1, 36, 1, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 1, - 96, 0, 0, 0, 94, 0, 0, 0, 37, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 1, 38, 1, 0, 0, 95, 0, 0, 0, 97, 0, 0, 0, - 36, 1, 0, 0, 0, 0, 0, 1, 94, 0, 0, 0, 92, 0, 0, 0, 39, 1, 0, 0, 37, 1, 0, 0, 0, 0, 0, 1, 40, 1, 0, 0, - 93, 0, 0, 0, 95, 0, 0, 0, 38, 1, 0, 0, 0, 0, 0, 1, 92, 0, 0, 0, 90, 0, 0, 0, 41, 1, 0, 0, 39, 1, 0, 0, - 0, 0, 0, 1, 42, 1, 0, 0, 91, 0, 0, 0, 93, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 49, 1, 0, 0, 50, 1, 0, 0, - 69, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 1, 70, 1, 0, 0, 50, 1, 0, 0, 49, 1, 0, 0, 80, 1, 0, 0, 0, 0, 0, 1, - 48, 1, 0, 0, 49, 1, 0, 0, 79, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 1, 80, 1, 0, 0, 49, 1, 0, 0, 48, 1, 0, 0, - 78, 1, 0, 0, 0, 0, 0, 1, 47, 1, 0, 0, 48, 1, 0, 0, 77, 1, 0, 0, 81, 1, 0, 0, 0, 0, 0, 1, 78, 1, 0, 0, - 48, 1, 0, 0, 47, 1, 0, 0, 82, 1, 0, 0, 0, 0, 0, 1, 87, 0, 0, 0, 89, 0, 0, 0, 47, 1, 0, 0, 81, 1, 0, 0, - 0, 0, 0, 1, 47, 1, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 87, 0, 0, 0, - 81, 1, 0, 0, 75, 1, 0, 0, 0, 0, 0, 1, 82, 1, 0, 0, 88, 0, 0, 0, 86, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 1, - 83, 0, 0, 0, 85, 0, 0, 0, 75, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 1, 76, 1, 0, 0, 86, 0, 0, 0, 84, 0, 0, 0, - 72, 1, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0, 83, 0, 0, 0, 71, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 1, 72, 1, 0, 0, - 84, 0, 0, 0, 82, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 1, 71, 1, 0, 0, 77, 1, 0, 0, 79, 1, 0, 0, 73, 1, 0, 0, - 0, 0, 0, 1, 80, 1, 0, 0, 78, 1, 0, 0, 72, 1, 0, 0, 74, 1, 0, 0, 0, 0, 0, 1, 71, 1, 0, 0, 75, 1, 0, 0, - 81, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 1, 82, 1, 0, 0, 76, 1, 0, 0, 72, 1, 0, 0, 78, 1, 0, 0, 0, 0, 0, 1, - 67, 1, 0, 0, 73, 1, 0, 0, 79, 1, 0, 0, 69, 1, 0, 0, 0, 0, 0, 1, 80, 1, 0, 0, 74, 1, 0, 0, 68, 1, 0, 0, - 70, 1, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0, 81, 0, 0, 0, 73, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 1, 74, 1, 0, 0, - 82, 0, 0, 0, 80, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 1,206, 0, 0, 0, 83, 1, 0, 0, 85, 1, 0, 0,212, 0, 0, 0, - 0, 0, 0, 1, 86, 1, 0, 0, 84, 1, 0, 0,207, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0, 67, 1, 0, 0, - 83, 1, 0, 0,206, 0, 0, 0, 0, 0, 0, 1, 84, 1, 0, 0, 68, 1, 0, 0, 80, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 1, - 77, 0, 0, 0,212, 0, 0, 0, 85, 1, 0, 0, 87, 1, 0, 0, 0, 0, 0, 1, 86, 1, 0, 0,213, 0, 0, 0, 78, 0, 0, 0, - 88, 1, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 87, 1, 0, 0, 41, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0, 1, 42, 1, 0, 0, - 88, 1, 0, 0, 78, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 1, 75, 0, 0, 0, 65, 1, 0, 0, 93, 1, 0, 0, 45, 1, 0, 0, - 0, 0, 0, 1, 94, 1, 0, 0, 66, 1, 0, 0, 75, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 45, 1, 0, 0, 93, 1, 0, 0, - 91, 1, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 92, 1, 0, 0, 94, 1, 0, 0, 45, 1, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, - 76, 0, 0, 0, 91, 1, 0, 0, 89, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 1, 90, 1, 0, 0, 92, 1, 0, 0, 76, 0, 0, 0, - 46, 1, 0, 0, 0, 0, 0, 1, 46, 1, 0, 0, 89, 1, 0, 0, 69, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 1, 70, 1, 0, 0, - 90, 1, 0, 0, 46, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 1, 67, 1, 0, 0, 69, 1, 0, 0, 89, 1, 0, 0, 83, 1, 0, 0, - 0, 0, 0, 1, 90, 1, 0, 0, 70, 1, 0, 0, 68, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 1, 37, 1, 0, 0, 39, 1, 0, 0, - 59, 1, 0, 0, 51, 1, 0, 0, 0, 0, 0, 1, 60, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 1, - 74, 0, 0, 0, 57, 1, 0, 0, 65, 1, 0, 0, 75, 0, 0, 0, 0, 0, 0, 1, 66, 1, 0, 0, 58, 1, 0, 0, 74, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 1, 43, 1, 0, 0, 99, 1, 0, 0, 97, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 1, 98, 1, 0, 0, -100, 1, 0, 0, 43, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 1, 44, 1, 0, 0, 97, 1, 0, 0, 95, 1, 0, 0, 73, 0, 0, 0, - 0, 0, 0, 1, 96, 1, 0, 0, 98, 1, 0, 0, 44, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 95, 1, 0, 0, - 57, 1, 0, 0, 74, 0, 0, 0, 0, 0, 0, 1, 58, 1, 0, 0, 96, 1, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 1, - 33, 1, 0, 0, 35, 1, 0, 0,103, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 1,104, 1, 0, 0, 36, 1, 0, 0, 34, 1, 0, 0, -106, 1, 0, 0, 0, 0, 0, 1,105, 1, 0, 0,103, 1, 0, 0,109, 1, 0, 0,107, 1, 0, 0, 0, 0, 0, 1,110, 1, 0, 0, -104, 1, 0, 0,106, 1, 0, 0,108, 1, 0, 0, 0, 0, 0, 1,107, 1, 0, 0,109, 1, 0, 0,111, 1, 0, 0,113, 1, 0, 0, - 0, 0, 0, 1,112, 1, 0, 0,110, 1, 0, 0,108, 1, 0, 0,114, 1, 0, 0, 0, 0, 0, 1,113, 1, 0, 0,111, 1, 0, 0, -117, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 1,118, 1, 0, 0,112, 1, 0, 0,114, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 1, - 55, 1, 0, 0,119, 1, 0, 0,115, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 1,116, 1, 0, 0,120, 1, 0, 0, 56, 1, 0, 0, -118, 1, 0, 0, 0, 0, 0, 1, 57, 1, 0, 0, 95, 1, 0, 0,115, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 1,116, 1, 0, 0, - 96, 1, 0, 0, 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 1, 95, 1, 0, 0, 97, 1, 0, 0,113, 1, 0, 0,115, 1, 0, 0, - 0, 0, 0, 1,114, 1, 0, 0, 98, 1, 0, 0, 96, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 1, 97, 1, 0, 0, 99, 1, 0, 0, -107, 1, 0, 0,113, 1, 0, 0, 0, 0, 0, 1,108, 1, 0, 0,100, 1, 0, 0, 98, 1, 0, 0,114, 1, 0, 0, 0, 0, 0, 1, - 99, 1, 0, 0,101, 1, 0, 0,105, 1, 0, 0,107, 1, 0, 0, 0, 0, 0, 1,106, 1, 0, 0,102, 1, 0, 0,100, 1, 0, 0, -108, 1, 0, 0, 0, 0, 0, 1, 31, 1, 0, 0, 33, 1, 0, 0,105, 1, 0, 0,101, 1, 0, 0, 0, 0, 0, 1,106, 1, 0, 0, - 34, 1, 0, 0, 32, 1, 0, 0,102, 1, 0, 0, 0, 0, 0, 1, 72, 0, 0, 0,101, 1, 0, 0, 99, 1, 0, 0, 43, 1, 0, 0, - 0, 0, 0, 1,100, 1, 0, 0,102, 1, 0, 0, 72, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 1, 25, 1, 0, 0, 27, 1, 0, 0, - 29, 1, 0, 0, 31, 1, 0, 0, 0, 0, 0, 1, 30, 1, 0, 0, 28, 1, 0, 0, 26, 1, 0, 0, 32, 1, 0, 0, 0, 0, 0, 1, - 25, 1, 0, 0, 31, 1, 0, 0,101, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 1,102, 1, 0, 0, 32, 1, 0, 0, 26, 1, 0, 0, - 72, 0, 0, 0, 0, 0, 0, 1, 71, 0, 0, 0, 25, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 72, 0, 0, 0, - 26, 1, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35, 1, 0, 0, 37, 1, 0, 0, 51, 1, 0, 0,103, 1, 0, 0, - 0, 0, 0, 1, 52, 1, 0, 0, 38, 1, 0, 0, 36, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 1, 51, 1, 0, 0, 53, 1, 0, 0, -109, 1, 0, 0,103, 1, 0, 0, 0, 0, 0, 1,110, 1, 0, 0, 54, 1, 0, 0, 52, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 1, - 53, 1, 0, 0,123, 1, 0, 0,111, 1, 0, 0,109, 1, 0, 0, 0, 0, 0, 1,112, 1, 0, 0,124, 1, 0, 0, 54, 1, 0, 0, -110, 1, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0,117, 1, 0, 0,111, 1, 0, 0,123, 1, 0, 0, 0, 0, 0, 1,112, 1, 0, 0, -118, 1, 0, 0, 56, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 1, 89, 1, 0, 0, 91, 1, 0, 0,127, 1, 0, 0,125, 1, 0, 0, - 0, 0, 0, 1,128, 1, 0, 0, 92, 1, 0, 0, 90, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 1, 59, 1, 0, 0,125, 1, 0, 0, -127, 1, 0, 0, 61, 1, 0, 0, 0, 0, 0, 1,128, 1, 0, 0,126, 1, 0, 0, 60, 1, 0, 0, 62, 1, 0, 0, 0, 0, 0, 1, - 39, 1, 0, 0, 41, 1, 0, 0,125, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1,126, 1, 0, 0, 42, 1, 0, 0, 40, 1, 0, 0, - 60, 1, 0, 0, 0, 0, 0, 1, 41, 1, 0, 0, 85, 1, 0, 0, 83, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 1, 84, 1, 0, 0, - 86, 1, 0, 0, 42, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 1, 83, 1, 0, 0, 89, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1,126, 1, 0, 0, 90, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 1, 0, 0, 87, 1, 0, 0, - 85, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 86, 1, 0, 0, 88, 1, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 55, 1, 0, 0, 63, 1, 0, 0,121, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0, 64, 1, 0, 0, 56, 1, 0, 0, -120, 1, 0, 0, 0, 0, 0, 1, 57, 1, 0, 0,119, 1, 0, 0,121, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0, -120, 1, 0, 0, 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 1, 61, 1, 0, 0,127, 1, 0, 0,121, 1, 0, 0, 63, 1, 0, 0, - 0, 0, 0, 1,122, 1, 0, 0,128, 1, 0, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 1, 91, 1, 0, 0, 93, 1, 0, 0, -121, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0,128, 1, 0, 0, 0, 0, 0, 1, - 65, 1, 0, 0,121, 1, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 1, 0, 0,122, 1, 0, 0, 66, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1,141, 1, 0, 0,129, 1, 0, 0,155, 1, 0, 0,143, 1, 0, 0, 0, 0, 0, 1,156, 1, 0, 0, -130, 1, 0, 0,142, 1, 0, 0,144, 1, 0, 0, 0, 0, 0, 1,141, 1, 0, 0,143, 1, 0, 0,145, 1, 0, 0,139, 1, 0, 0, - 0, 0, 0, 1,146, 1, 0, 0,144, 1, 0, 0,142, 1, 0, 0,140, 1, 0, 0, 0, 0, 0, 1,139, 1, 0, 0,145, 1, 0, 0, -147, 1, 0, 0,137, 1, 0, 0, 0, 0, 0, 1,148, 1, 0, 0,146, 1, 0, 0,140, 1, 0, 0,138, 1, 0, 0, 0, 0, 0, 1, -137, 1, 0, 0,147, 1, 0, 0,149, 1, 0, 0,135, 1, 0, 0, 0, 0, 0, 1,150, 1, 0, 0,148, 1, 0, 0,138, 1, 0, 0, -136, 1, 0, 0, 0, 0, 0, 1,135, 1, 0, 0,149, 1, 0, 0,151, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 1,152, 1, 0, 0, -150, 1, 0, 0,136, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 1,133, 1, 0, 0,151, 1, 0, 0,153, 1, 0, 0,131, 1, 0, 0, - 0, 0, 0, 1,154, 1, 0, 0,152, 1, 0, 0,134, 1, 0, 0,132, 1, 0, 0, 0, 0, 0, 1,151, 1, 0, 0,161, 1, 0, 0, -159, 1, 0, 0,153, 1, 0, 0, 0, 0, 0, 1,160, 1, 0, 0,162, 1, 0, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 1, -149, 1, 0, 0,163, 1, 0, 0,161, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 1,162, 1, 0, 0,164, 1, 0, 0,150, 1, 0, 0, -152, 1, 0, 0, 0, 0, 0, 1,147, 1, 0, 0,165, 1, 0, 0,163, 1, 0, 0,149, 1, 0, 0, 0, 0, 0, 1,164, 1, 0, 0, -166, 1, 0, 0,148, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 1,145, 1, 0, 0,167, 1, 0, 0,165, 1, 0, 0,147, 1, 0, 0, - 0, 0, 0, 1,166, 1, 0, 0,168, 1, 0, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 1,143, 1, 0, 0,169, 1, 0, 0, -167, 1, 0, 0,145, 1, 0, 0, 0, 0, 0, 1,168, 1, 0, 0,170, 1, 0, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 0, 1, -143, 1, 0, 0,155, 1, 0, 0,157, 1, 0, 0,169, 1, 0, 0, 0, 0, 0, 1,158, 1, 0, 0,156, 1, 0, 0,144, 1, 0, 0, -170, 1, 0, 0, 0, 0, 0, 1, 59, 1, 0, 0, 61, 1, 0, 0,185, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 1,186, 1, 0, 0, - 62, 1, 0, 0, 60, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 1, 61, 1, 0, 0,131, 1, 0, 0,153, 1, 0, 0,185, 1, 0, 0, - 0, 0, 0, 1,154, 1, 0, 0,132, 1, 0, 0, 62, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 1, 51, 1, 0, 0, 59, 1, 0, 0, -183, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 1,184, 1, 0, 0, 60, 1, 0, 0, 52, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 1, -123, 1, 0, 0,171, 1, 0, 0,155, 1, 0, 0,129, 1, 0, 0, 0, 0, 0, 1,156, 1, 0, 0,172, 1, 0, 0,124, 1, 0, 0, -130, 1, 0, 0, 0, 0, 0, 1,153, 1, 0, 0,159, 1, 0, 0,181, 1, 0, 0,185, 1, 0, 0, 0, 0, 0, 1,182, 1, 0, 0, -160, 1, 0, 0,154, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 1,179, 1, 0, 0,187, 1, 0, 0,185, 1, 0, 0,181, 1, 0, 0, - 0, 0, 0, 1,186, 1, 0, 0,188, 1, 0, 0,180, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 1,175, 1, 0, 0,187, 1, 0, 0, -179, 1, 0, 0,177, 1, 0, 0, 0, 0, 0, 1,180, 1, 0, 0,188, 1, 0, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 1, -173, 1, 0, 0,189, 1, 0, 0,187, 1, 0, 0,175, 1, 0, 0, 0, 0, 0, 1,188, 1, 0, 0,190, 1, 0, 0,174, 1, 0, 0, -176, 1, 0, 0, 0, 0, 0, 1,171, 1, 0, 0,189, 1, 0, 0,173, 1, 0, 0,191, 1, 0, 0, 0, 0, 0, 1,174, 1, 0, 0, -190, 1, 0, 0,172, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 1,155, 1, 0, 0,171, 1, 0, 0,191, 1, 0, 0,157, 1, 0, 0, - 0, 0, 0, 1,192, 1, 0, 0,172, 1, 0, 0,156, 1, 0, 0,158, 1, 0, 0, 0, 0, 0, 1, 53, 1, 0, 0,189, 1, 0, 0, -171, 1, 0, 0,123, 1, 0, 0, 0, 0, 0, 1,172, 1, 0, 0,190, 1, 0, 0, 54, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 1, - 53, 1, 0, 0,183, 1, 0, 0,187, 1, 0, 0,189, 1, 0, 0, 0, 0, 0, 1,188, 1, 0, 0,184, 1, 0, 0, 54, 1, 0, 0, -190, 1, 0, 0, 0, 0, 0, 1,183, 1, 0, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,188, 1, 0, 0, -186, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,157, 1, 0, 0,191, 1, 0, 0,193, 1, 0, 0,217, 1, 0, 0, - 0, 0, 0, 1,194, 1, 0, 0,192, 1, 0, 0,158, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 1,191, 1, 0, 0,173, 1, 0, 0, -203, 1, 0, 0,193, 1, 0, 0, 0, 0, 0, 1,204, 1, 0, 0,174, 1, 0, 0,192, 1, 0, 0,194, 1, 0, 0, 0, 0, 0, 1, -173, 1, 0, 0,175, 1, 0, 0,201, 1, 0, 0,203, 1, 0, 0, 0, 0, 0, 1,202, 1, 0, 0,176, 1, 0, 0,174, 1, 0, 0, -204, 1, 0, 0, 0, 0, 0, 1,175, 1, 0, 0,177, 1, 0, 0,199, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 1,200, 1, 0, 0, -178, 1, 0, 0,176, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 1,177, 1, 0, 0,179, 1, 0, 0,197, 1, 0, 0,199, 1, 0, 0, - 0, 0, 0, 1,198, 1, 0, 0,180, 1, 0, 0,178, 1, 0, 0,200, 1, 0, 0, 0, 0, 0, 1,179, 1, 0, 0,181, 1, 0, 0, -195, 1, 0, 0,197, 1, 0, 0, 0, 0, 0, 1,196, 1, 0, 0,182, 1, 0, 0,180, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 1, -181, 1, 0, 0,159, 1, 0, 0,215, 1, 0, 0,195, 1, 0, 0, 0, 0, 0, 1,216, 1, 0, 0,160, 1, 0, 0,182, 1, 0, 0, -196, 1, 0, 0, 0, 0, 0, 1,169, 1, 0, 0,157, 1, 0, 0,217, 1, 0, 0,205, 1, 0, 0, 0, 0, 0, 1,218, 1, 0, 0, -158, 1, 0, 0,170, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 1,167, 1, 0, 0,169, 1, 0, 0,205, 1, 0, 0,207, 1, 0, 0, - 0, 0, 0, 1,206, 1, 0, 0,170, 1, 0, 0,168, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 1,165, 1, 0, 0,167, 1, 0, 0, -207, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 1,208, 1, 0, 0,168, 1, 0, 0,166, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 1, -163, 1, 0, 0,165, 1, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 1,210, 1, 0, 0,166, 1, 0, 0,164, 1, 0, 0, -212, 1, 0, 0, 0, 0, 0, 1,161, 1, 0, 0,163, 1, 0, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 1,212, 1, 0, 0, -164, 1, 0, 0,162, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 1,159, 1, 0, 0,161, 1, 0, 0,213, 1, 0, 0,215, 1, 0, 0, - 0, 0, 0, 1,214, 1, 0, 0,162, 1, 0, 0,160, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 1,199, 1, 0, 0,197, 1, 0, 0, -221, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,198, 1, 0, 0,200, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 1, -219, 1, 0, 0,221, 1, 0, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 0, 1,224, 1, 0, 0,222, 1, 0, 0,220, 1, 0, 0, -226, 1, 0, 0, 0, 0, 0, 1,225, 1, 0, 0,223, 1, 0, 0,229, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 1,230, 1, 0, 0, -224, 1, 0, 0,226, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 1,227, 1, 0, 0,229, 1, 0, 0,231, 1, 0, 0,233, 1, 0, 0, - 0, 0, 0, 1,232, 1, 0, 0,230, 1, 0, 0,228, 1, 0, 0,234, 1, 0, 0, 0, 0, 0, 1,205, 1, 0, 0,217, 1, 0, 0, -227, 1, 0, 0,233, 1, 0, 0, 0, 0, 0, 1,228, 1, 0, 0,218, 1, 0, 0,206, 1, 0, 0,234, 1, 0, 0, 0, 0, 0, 1, -193, 1, 0, 0,225, 1, 0, 0,227, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 1,228, 1, 0, 0,226, 1, 0, 0,194, 1, 0, 0, -218, 1, 0, 0, 0, 0, 0, 1,193, 1, 0, 0,203, 1, 0, 0,219, 1, 0, 0,225, 1, 0, 0, 0, 0, 0, 1,220, 1, 0, 0, -204, 1, 0, 0,194, 1, 0, 0,226, 1, 0, 0, 0, 0, 0, 1,199, 1, 0, 0,219, 1, 0, 0,203, 1, 0, 0,201, 1, 0, 0, - 0, 0, 0, 1,204, 1, 0, 0,220, 1, 0, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 1,195, 1, 0, 0,215, 1, 0, 0, -221, 1, 0, 0,197, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,216, 1, 0, 0,196, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 1, -213, 1, 0, 0,223, 1, 0, 0,221, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,224, 1, 0, 0,214, 1, 0, 0, -216, 1, 0, 0, 0, 0, 0, 1,211, 1, 0, 0,229, 1, 0, 0,223, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 1,224, 1, 0, 0, -230, 1, 0, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 1,209, 1, 0, 0,231, 1, 0, 0,229, 1, 0, 0,211, 1, 0, 0, - 0, 0, 0, 1,230, 1, 0, 0,232, 1, 0, 0,210, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 1,207, 1, 0, 0,233, 1, 0, 0, -231, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 1,232, 1, 0, 0,234, 1, 0, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 1, -205, 1, 0, 0,233, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,208, 1, 0, 0,234, 1, 0, 0,206, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1,133, 1, 0, 0,131, 1, 0, 0,245, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0, -132, 1, 0, 0,134, 1, 0, 0,244, 1, 0, 0, 0, 0, 0, 1,135, 1, 0, 0,133, 1, 0, 0,243, 1, 0, 0,241, 1, 0, 0, - 0, 0, 0, 1,244, 1, 0, 0,134, 1, 0, 0,136, 1, 0, 0,242, 1, 0, 0, 0, 0, 0, 1,137, 1, 0, 0,135, 1, 0, 0, -241, 1, 0, 0,239, 1, 0, 0, 0, 0, 0, 1,242, 1, 0, 0,136, 1, 0, 0,138, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 1, -139, 1, 0, 0,137, 1, 0, 0,239, 1, 0, 0,237, 1, 0, 0, 0, 0, 0, 1,240, 1, 0, 0,138, 1, 0, 0,140, 1, 0, 0, -238, 1, 0, 0, 0, 0, 0, 1,141, 1, 0, 0,139, 1, 0, 0,237, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 1,238, 1, 0, 0, -140, 1, 0, 0,142, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 1,129, 1, 0, 0,141, 1, 0, 0,235, 1, 0, 0,247, 1, 0, 0, - 0, 0, 0, 1,236, 1, 0, 0,142, 1, 0, 0,130, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1,235, 1, 0, 0,243, 1, 0, 0, -245, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0,244, 1, 0, 0,236, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1, -235, 1, 0, 0,237, 1, 0, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 1,242, 1, 0, 0,238, 1, 0, 0,236, 1, 0, 0, -244, 1, 0, 0, 0, 0, 0, 1,237, 1, 0, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,242, 1, 0, 0, -240, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0,123, 1, 0, 0,129, 1, 0, 0,247, 1, 0, 0, - 0, 0, 0, 1,130, 1, 0, 0,124, 1, 0, 0, 56, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0,247, 1, 0, 0, -245, 1, 0, 0, 63, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0,248, 1, 0, 0, 56, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 1, - 61, 1, 0, 0, 63, 1, 0, 0,245, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0, 64, 1, 0, 0, 62, 1, 0, 0, -132, 1, 0, 0, 0, 0, 0, 1, 68, 65, 84, 65,240, 85, 0, 0,224,234,181, 3, 65, 0, 0, 0,244, 1, 0, 0, 3,112, 28, 63, -185,178,236, 62,224,124, 27, 63,235, 65,232, 62,144, 63, 30, 63,233,195,226, 62,118,152, 32, 63, 37,167,236, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0, 2,232,209, 62,222, 21,226, 62,102,109,215, 62,222,147,231, 62, 28,135,213, 62,172, 4,236, 62, - 56, 54,205, 62, 22,249,235, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,118,152, 32, 63, 37,167,236, 62,144, 63, 30, 63, -233,195,226, 62,108,235, 33, 63,197,235,220, 62,209,151, 37, 63, 89,161,236, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, - 76,144,202, 62,186, 61,220, 62, 2,232,209, 62,222, 21,226, 62, 56, 54,205, 62, 22,249,235, 62,128, 55,195, 62, 70,243,235, 62, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,144, 63, 30, 63,233,195,226, 62, 20, 55, 25, 63, 1, 35,223, 62,200,178, 25, 63, - 77,233,214, 62,108,235, 33, 63,197,235,220, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,146, 1,219, 62, 66, 59,214, 62, -248,248,219, 62,246,116,222, 62, 2,232,209, 62,222, 21,226, 62, 76,144,202, 62,186, 61,220, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0,224,124, 27, 63,235, 65,232, 62, 87,252, 24, 63, 93,111,230, 62, 20, 55, 25, 63, 1, 35,223, 62,144, 63, 30, 63, -233,195,226, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,248,248,219, 62,246,116,222, 62,118,110,220, 62, 78,193,229, 62, -102,109,215, 62,222,147,231, 62, 2,232,209, 62,222, 21,226, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 87,252, 24, 63, - 93,111,230, 62, 22,195, 22, 63,195, 90,232, 62,191, 91, 20, 63,193, 18,227, 62, 20, 55, 25, 63, 1, 35,223, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0,162,175,229, 62,178,100,226, 62,248,224,224, 62,182,172,231, 62,118,110,220, 62, 78,193,229, 62, -248,248,219, 62,246,116,222, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 20, 55, 25, 63, 1, 35,223, 62,191, 91, 20, 63, -193, 18,227, 62,187,165, 17, 63,225, 6,221, 62,200,178, 25, 63, 77,233,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, -170, 27,235, 62,214, 88,220, 62,162,175,229, 62,178,100,226, 62,248,248,219, 62,246,116,222, 62,146, 1,219, 62, 66, 59,214, 62, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,191, 91, 20, 63,193, 18,227, 62,164, 18, 18, 63,173,201,236, 62,157,231, 13, 63, - 89,161,236, 62,187,165, 17, 63,225, 6,221, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,232,151,242, 62, 70,243,235, 62, -216, 65,234, 62,158, 27,236, 62,162,175,229, 62,178,100,226, 62,170, 27,235, 62,214, 88,220, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0, 22,195, 22, 63,195, 90,232, 62, 11,202, 21, 63, 1,189,236, 62,164, 18, 18, 63,173,201,236, 62,191, 91, 20, 63, -193, 18,227, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,216, 65,234, 62,158, 27,236, 62, 12,211,226, 62,246, 14,236, 62, -248,224,224, 62,182,172,231, 62,162,175,229, 62,178,100,226, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 11,202, 21, 63, - 1,189,236, 62,215,202, 22, 63,237,124,241, 62,125,105, 20, 63, 1, 71,246, 62,164, 18, 18, 63,173,201,236, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0, 42,148,229, 62,246,152,245, 62,112,209,224, 62,226,206,240, 62, 12,211,226, 62,246, 14,236, 62, -216, 65,234, 62,158, 27,236, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,164, 18, 18, 63,173,201,236, 62,125,105, 20, 63, - 1, 71,246, 62, 44,173, 17, 63,231,149,252, 62,157,231, 13, 63, 89,161,236, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, -206, 12,235, 62,218,231,251, 62, 42,148,229, 62,246,152,245, 62,216, 65,234, 62,158, 27,236, 62,232,151,242, 62, 70,243,235, 62, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,125,105, 20, 63, 1, 71,246, 62, 37, 59, 25, 63, 49, 73,250, 62,108,178, 25, 63, -218,108, 1, 63, 44,173, 17, 63,231,149,252, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 76, 2,219, 62,213, 21, 1, 63, -216,240,219, 62, 38,155,249, 62, 42,148,229, 62,246,152,245, 62,206, 12,235, 62,218,231,251, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0,215,202, 22, 63,237,124,241, 62,195, 1, 25, 63,169,102,243, 62, 37, 59, 25, 63, 49, 73,250, 62,125,105, 20, 63, - 1, 71,246, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,216,240,219, 62, 38,155,249, 62,156, 99,220, 62,154,184,242, 62, -112,209,224, 62,226,206,240, 62, 42,148,229, 62,246,152,245, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,195, 1, 25, 63, -169,102,243, 62,176,125, 27, 63,149,145,241, 62,167, 74, 30, 63, 3,153,246, 62, 37, 59, 25, 63, 49, 73,250, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0,212,209,209, 62,246,234,245, 62,192,107,215, 62,138,227,240, 62,156, 99,220, 62,154,184,242, 62, -216,240,219, 62, 38,155,249, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 37, 59, 25, 63, 49, 73,250, 62,167, 74, 30, 63, - 3,153,246, 62,204,230, 33, 63,107,232,252, 62,108,178, 25, 63,218,108, 1, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, -132,153,202, 62, 94, 58,252, 62,212,209,209, 62,246,234,245, 62,216,240,219, 62, 38,155,249, 62, 76, 2,219, 62,213, 21, 1, 63, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,167, 74, 30, 63, 3,153,246, 62,118,152, 32, 63, 37,167,236, 62,209,151, 37, 63, - 89,161,236, 62,204,230, 33, 63,107,232,252, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,128, 55,195, 62, 70,243,235, 62, - 56, 54,205, 62, 22,249,235, 62,212,209,209, 62,246,234,245, 62,132,153,202, 62, 94, 58,252, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0,176,125, 27, 63,149,145,241, 62, 3,112, 28, 63,185,178,236, 62,118,152, 32, 63, 37,167,236, 62,167, 74, 30, 63, - 3,153,246, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 56, 54,205, 62, 22,249,235, 62, 28,135,213, 62,172, 4,236, 62, -192,107,215, 62,138,227,240, 62,212,209,209, 62,246,234,245, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 3,112, 28, 63, -185,178,236, 62,176,125, 27, 63,149,145,241, 62, 42, 39, 27, 63, 57, 1,241, 62,140,249, 27, 63,115,186,236, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0,206, 24,216, 62, 46, 83,240, 62,192,107,215, 62,138,227,240, 62, 28,135,213, 62,172, 4,236, 62, - 8,116,214, 62,102, 12,236, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,176,125, 27, 63,149,145,241, 62,195, 1, 25, 63, -169,102,243, 62, 6,248, 24, 63,185, 91,242, 62, 42, 39, 27, 63, 57, 1,241, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, - 22,119,220, 62,174,173,241, 62,156, 99,220, 62,154,184,242, 62,192,107,215, 62,138,227,240, 62,206, 24,216, 62, 46, 83,240, 62, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,195, 1, 25, 63,169,102,243, 62,215,202, 22, 63,237,124,241, 62,157, 38, 23, 63, -225,173,240, 62, 6,248, 24, 63,185, 91,242, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,234, 25,224, 62,214,255,239, 62, -112,209,224, 62,226,206,240, 62,156, 99,220, 62,154,184,242, 62, 22,119,220, 62,174,173,241, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0,215,202, 22, 63,237,124,241, 62, 11,202, 21, 63, 1,189,236, 62, 13, 89, 22, 63,247,196,236, 62,157, 38, 23, 63, -225,173,240, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 8,181,225, 62,234, 22,236, 62, 12,211,226, 62,246, 14,236, 62, -112,209,224, 62,226,206,240, 62,234, 25,224, 62,214,255,239, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 11,202, 21, 63, - 1,189,236, 62, 22,195, 22, 63,195, 90,232, 62, 88, 33, 23, 63, 69, 47,233, 62, 13, 89, 22, 63,247,196,236, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0,112, 36,224, 62, 58,129,232, 62,248,224,224, 62,182,172,231, 62, 12,211,226, 62,246, 14,236, 62, - 8,181,225, 62,234, 22,236, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 22,195, 22, 63,195, 90,232, 62, 87,252, 24, 63, - 93,111,230, 62,100,243, 24, 63, 5,123,231, 62, 88, 33, 23, 63, 69, 47,233, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, - 90,128,220, 62,248,204,230, 62,118,110,220, 62, 78,193,229, 62,248,224,224, 62,182,172,231, 62,112, 36,224, 62, 58,129,232, 62, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0, 87,252, 24, 63, 93,111,230, 62,224,124, 27, 63,235, 65,232, 62,169, 37, 27, 63, - 35,211,232, 62,100,243, 24, 63, 5,123,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,206, 27,216, 62, 22, 37,232, 62, -102,109,215, 62,222,147,231, 62,118,110,220, 62, 78,193,229, 62, 90,128,220, 62,248,204,230, 62, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,240, 0,224,124, 27, 63,235, 65,232, 62, 3,112, 28, 63,185,178,236, 62,140,249, 27, 63,115,186,236, 62,169, 37, 27, 63, - 35,211,232, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 8,116,214, 62,102, 12,236, 62, 28,135,213, 62,172, 4,236, 62, -102,109,215, 62,222,147,231, 62,206, 27,216, 62, 22, 37,232, 62, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,240, 0,138,242, 24, 63, - 21,194,236, 62,169, 37, 27, 63, 35,211,232, 62,140,249, 27, 63,115,186,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,112, 0, 8,116,214, 62,102, 12,236, 62,206, 27,216, 62, 22, 37,232, 62, 16,130,220, 62, 6, 20,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,100,243, 24, 63, 5,123,231, 62,169, 37, 27, 63, - 35,211,232, 62,138,242, 24, 63, 21,194,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, - 16,130,220, 62, 6, 20,236, 62,206, 27,216, 62, 22, 37,232, 62, 90,128,220, 62,248,204,230, 62, 0, 0,128, 63, 0, 0,128, 63, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, 21,194,236, 62, 88, 33, 23, 63, 69, 47,233, 62,100,243, 24, 63, - 5,123,231, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, 90,128,220, 62,248,204,230, 62, -112, 36,224, 62, 58,129,232, 62, 16,130,220, 62, 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,112, 0,138,242, 24, 63, 21,194,236, 62, 13, 89, 22, 63,247,196,236, 62, 88, 33, 23, 63, 69, 47,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0,112, 36,224, 62, 58,129,232, 62, 8,181,225, 62,234, 22,236, 62, - 16,130,220, 62, 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, - 21,194,236, 62,157, 38, 23, 63,225,173,240, 62, 13, 89, 22, 63,247,196,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,112, 0, 8,181,225, 62,234, 22,236, 62,234, 25,224, 62,214,255,239, 62, 16,130,220, 62, 6, 20,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, 21,194,236, 62, 6,248, 24, 63, -185, 91,242, 62,157, 38, 23, 63,225,173,240, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, -234, 25,224, 62,214,255,239, 62, 22,119,220, 62,174,173,241, 62, 16,130,220, 62, 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, 21,194,236, 62, 42, 39, 27, 63, 57, 1,241, 62, 6,248, 24, 63, -185, 91,242, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, 22,119,220, 62,174,173,241, 62, -206, 24,216, 62, 46, 83,240, 62, 16,130,220, 62, 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, - 0, 0,112, 0,138,242, 24, 63, 21,194,236, 62,140,249, 27, 63,115,186,236, 62, 42, 39, 27, 63, 57, 1,241, 62, 0, 0,128, 63, - 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0,206, 24,216, 62, 46, 83,240, 62, 8,116,214, 62,102, 12,236, 62, - 16,130,220, 62, 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 61, 0, 5, 0, 0, 0,112, 0,174,254, 16, 63, - 94, 45, 34, 62, 79,190, 13, 63,160,193, 46, 62,220,199, 3, 63, 89,219, 24, 62,219,199, 3, 63, 18, 28,229, 61, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 16, 0,220,199, 3, 63, 89,219, 24, 62, 14,150,243, 62,204, 79, 47, 62,140,248,236, 62,182,202, 34, 62, -219,199, 3, 63, 18, 28,229, 61, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,184,152, 21, 63,182, 47, 53, 62,250,104, 16, 63, - 16,113, 55, 62, 79,190, 13, 63,160,193, 46, 62,174,254, 16, 63, 94, 45, 34, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0, - 14,150,243, 62,204, 79, 47, 62,200, 68,238, 62, 76, 62, 56, 62,183,207,227, 62,250, 75, 54, 62,140,248,236, 62,182,202, 34, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0,137, 57, 22, 63, 81, 93, 61, 62,206,186, 16, 63, 85,129, 72, 62,250,104, 16, 63, - 16,113, 55, 62,184,152, 21, 63,182, 47, 53, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, -192,187,237, 62,194,118, 73, 62,122,152,226, 62,190,166, 62, 62,183,207,227, 62,250, 75, 54, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,250,249, 22, 63,160,251, 88, 62,222, 32, 16, 63, 34,106, 93, 62,206,186, 16, 63, 85,129, 72, 62,137, 57, 22, 63, - 81, 93, 61, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 21, 19,239, 62,121,110, 94, 62, - 90, 83,225, 62, 21,153, 90, 62,122,152,226, 62,190,166, 62, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, - 17, 56,132, 62,206,243, 15, 63,182,207,136, 62,222, 32, 16, 63, 34,106, 93, 62,250,249, 22, 63,160,251, 88, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 92,193,239, 62,113, 61,137, 62, 54, 42,221, 62,209, 25,133, 62, - 90, 83,225, 62, 21,153, 90, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62, 91, 94, 37, 63, -107,120,187, 62, 66, 21, 30, 63,178,139,200, 62,158,237, 12, 63, 38,241,187, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -139,125,211, 62,170,171,200, 62,156, 28,197, 62,166,130,187, 62,115, 21,216, 62, 14,177,166, 62, 15,175,245, 62,188, 14,188, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 91, 94, 37, 63,107,120,187, 62, 87, 57, 43, 63,222, 58,206, 62, 24,163, 39, 63, -174, 95,216, 62, 66, 21, 30, 63,178,139,200, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, -130,207,184, 62, 42, 27,206, 62,156, 28,197, 62,166,130,187, 62,139,125,211, 62,170,171,200, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 87, 57, 43, 63,222, 58,206, 62, 38,229, 50, 63,169, 32,226, 62,177, 79, 43, 63,202,194,231, 62, 24,163, 39, 63, -174, 95,216, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62,196, 39,168, 62,206, 11,226, 62, -130,207,184, 62, 42, 27,206, 62, 98,194,191, 62, 42, 94,216, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 38,229, 50, 63, -169, 32,226, 62, 62,134, 48, 63, 37,107,249, 62,154,190, 43, 63,192, 0,249, 62,177, 79, 43, 63,202,194,231, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62,172,229,172, 62,116,127,249, 62,196, 39,168, 62,206, 11,226, 62, - 60,201,183, 62, 82,218,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 62,134, 48, 63, 37,107,249, 62,238, 88, 46, 63, -146,223, 2, 63,123,207, 40, 63,218,175,254, 62,154,190, 43, 63,192, 0,249, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 2,184,188, 62,140, 0,255, 62,173, 87,177, 62,102, 9, 3, 63,172,229,172, 62,116,127,249, 62,138,190,182, 62, 35, 49,249, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,238, 88, 46, 63,146,223, 2, 63,220,158, 34, 63,175, 23, 10, 63,126, 77, 30, 63, -156, 88, 5, 63,123,207, 40, 63,218,175,254, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, -124,109,201, 62, 72,121, 10, 63,173, 87,177, 62,102, 9, 3, 63, 2,184,188, 62,140, 0,255, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,220,158, 34, 63,175, 23, 10, 63, 28,105, 26, 63,242,194, 11, 63,244,120, 25, 63, 78,242, 7, 63,126, 77, 30, 63, -156, 88, 5, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63,220, 73,218, 62,169, 31, 12, 63, -124,109,201, 62, 72,121, 10, 63, 89, 65,210, 62, 56,158, 5, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 28,105, 26, 63, -242,194, 11, 63,173,244, 22, 63,236,215, 11, 63,202, 47, 22, 63,156, 60, 8, 63,244,120, 25, 63, 78,242, 7, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63,220, 89,225, 62, 77, 42, 12, 63,220, 73,218, 62,169, 31, 12, 63, - 0, 39,220, 62,252, 58, 8, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,173,244, 22, 63,236,215, 11, 63, 67,169, 11, 63, - 18,197, 11, 63,106,252, 12, 63,180,173, 3, 63,202, 47, 22, 63,156, 60, 8, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 35,114,245, 62,233,196, 3, 63, 55, 72,248, 62, 91,232, 11, 63,220, 89,225, 62, 77, 42, 12, 63, 11,221,226, 62, 90,125, 8, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 67,169, 11, 63, 18,197, 11, 63,148,232, 3, 63,164, 17, 11, 63,162,220, 3, 63, - 45, 88, 0, 63,106,252, 12, 63,180,173, 3, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, -148,232, 3, 63,164, 17, 11, 63, 55, 72,248, 62, 91,232, 11, 63, 35,114,245, 62,233,196, 3, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62,240, 81, 22, 63,114, 70, 1, 63,202, 47, 22, 63,156, 60, 8, 63,106,252, 12, 63, -180,173, 3, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63,106,128,226, 62,198,111, 1, 63, -209,213,236, 62, 4,250,255, 62, 35,114,245, 62,233,196, 3, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,240, 81, 22, 63, -114, 70, 1, 63,151,182, 25, 63,130, 9, 1, 63,244,120, 25, 63, 78,242, 7, 63,202, 47, 22, 63,156, 60, 8, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63,213,150,219, 62, 50, 55, 1, 63,106,128,226, 62,198,111, 1, 63, - 11,221,226, 62, 90,125, 8, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 96, 49, 30, 63,121,229,254, 62,126, 77, 30, 63, -156, 88, 5, 63,244,120, 25, 63, 78,242, 7, 63,151,182, 25, 63,130, 9, 1, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 0, 39,220, 62,252, 58, 8, 63, 89, 65,210, 62, 56,158, 5, 63,176,116,210, 62,227, 62,255, 62,213,150,219, 62, 50, 55, 1, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 25,113, 37, 63, 35,157,247, 62,123,207, 40, 63,218,175,254, 62,126, 77, 30, 63, -156, 88, 5, 63, 96, 49, 30, 63,121,229,254, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, - 2,184,188, 62,140, 0,255, 62,189,165,195, 62,139,232,247, 62,176,116,210, 62,227, 62,255, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 92, 62, 39, 63,121, 75,240, 62,154,190, 43, 63,192, 0,249, 62,123,207, 40, 63,218,175,254, 62, 25,113, 37, 63, - 35,157,247, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62,138,190,182, 62, 35, 49,249, 62, -222, 10,192, 62,163,128,240, 62,189,165,195, 62,139,232,247, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,140,149, 38, 63, - 38, 95,229, 62,177, 79, 43, 63,202,194,231, 62,154,190, 43, 63,192, 0,249, 62, 92, 62, 39, 63,121, 75,240, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 60,201,183, 62, 82,218,231, 62,168,140,193, 62, 94,129,229, 62, -222, 10,192, 62,163,128,240, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 14,120, 33, 63,166,238,214, 62, 24,163, 39, 63, -174, 95,216, 62,177, 79, 43, 63,202,194,231, 62,140,149, 38, 63, 38, 95,229, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 60,201,183, 62, 82,218,231, 62, 98,194,191, 62, 42, 94,216, 62,168, 75,204, 62, 62, 7,215, 62,168,140,193, 62, 94,129,229, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,165,178, 27, 63,128, 17,208, 62, 66, 21, 30, 63,178,139,200, 62, 24,163, 39, 63, -174, 95,216, 62, 14,120, 33, 63,166,238,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, -139,125,211, 62,170,171,200, 62, 6, 24,216, 62,128, 57,208, 62,168, 75,204, 62, 62, 7,215, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 15, 97, 17, 63,220, 34,214, 62,158,237, 12, 63, 38,241,187, 62, 66, 21, 30, 63,178,139,200, 62,165,178, 27, 63, -128, 17,208, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 15,175,245, 62,188, 14,188, 62, -217,200,236, 62,134, 49,214, 62, 6, 24,216, 62,128, 57,208, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 15, 97, 17, 63, -220, 34,214, 62,149,244, 14, 63, 4, 42,221, 62,147,230, 3, 63, 78, 47,208, 62,158,237, 12, 63, 38,241,187, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62,141,144,241, 62,244, 52,221, 62,217,200,236, 62,134, 49,214, 62, - 15,175,245, 62,188, 14,188, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62,106,252, 12, 63, -180,173, 3, 63,162,220, 3, 63, 45, 88, 0, 63, 71, 25, 13, 63,116,163,243, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -162,220, 3, 63, 45, 88, 0, 63, 35,114,245, 62,233,196, 3, 63,209,213,236, 62, 4,250,255, 62, 0, 45,245, 62,206,185,243, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 71, 25, 13, 63,116,163,243, 62,162,220, 3, 63, 45, 88, 0, 63,215,220, 3, 63, -148,189,231, 62, 64, 2, 13, 63, 52,215,230, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,215,220, 3, 63,148,189,231, 62, -162,220, 3, 63, 45, 88, 0, 63, 0, 45,245, 62,206,185,243, 62,219,100,245, 62,184,230,230, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62,149,244, 14, 63, 4, 42,221, 62, 64, 2, 13, 63, 52,215,230, 62,215,220, 3, 63, -148,189,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,219,100,245, 62,184,230,230, 62,141,144,241, 62,244, 52,221, 62, -147,230, 3, 63, 78, 47,208, 62,215,220, 3, 63,148,189,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 7, 63, -148, 31, 54, 62,193,202, 3, 63,214,174, 49, 62,220,199, 3, 63, 89,219, 24, 62, 79,190, 13, 63,160,193, 46, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62,193,202, 3, 63,214,174, 49, 62,175, 87, 0, 63,251, 90, 54, 62, - 14,150,243, 62,204, 79, 47, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 68,214, 9, 63,246,237, 66, 62,250, 61, 7, 63, -148, 31, 54, 62, 79,190, 13, 63,160,193, 46, 62,250,104, 16, 63, 16,113, 55, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 14,150,243, 62,204, 79, 47, 62,175, 87, 0, 63,251, 90, 54, 62,104,137,251, 62,179, 92, 67, 62,200, 68,238, 62, 76, 62, 56, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62, 68,214, 9, 63,246,237, 66, 62,250,104, 16, 63, - 16,113, 55, 62,206,186, 16, 63, 85,129, 72, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, -104,137,251, 62,179, 92, 67, 62, 39,153,253, 62, 27,195, 91, 62,192,187,237, 62,194,118, 73, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,206,243, 15, 63,182,207,136, 62, 77, 32, 8, 63, 10, 39,139, 62, 22,117, 9, 63,146,203, 97, 62,222, 32, 16, 63, - 34,106, 93, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62,219, 89,255, 62,116, 79,139, 62, - 92,193,239, 62,113, 61,137, 62, 21, 19,239, 62,121,110, 94, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,237,221, 8, 63, -218, 90, 91, 62,206,186, 16, 63, 85,129, 72, 62,222, 32, 16, 63, 34,106, 93, 62, 22,117, 9, 63,146,203, 97, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62,192,187,237, 62,194,118, 73, 62, 39,153,253, 62, 27,195, 91, 62, -192,110,252, 62, 79, 68, 98, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62, 70,233, 3, 63, - 88, 27,154, 62,235,229, 3, 63, 97,108,139, 62, 77, 32, 8, 63, 10, 39,139, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -235,229, 3, 63, 97,108,139, 62, 70,233, 3, 63, 88, 27,154, 62,165,179,252, 62,163,140,158, 62,219, 89,255, 62,116, 79,139, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 22,117, 9, 63,146,203, 97, 62, 77, 32, 8, 63, 10, 39,139, 62,235,229, 3, 63, - 97,108,139, 62,246,215, 3, 63,143, 56,101, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, -219, 89,255, 62,116, 79,139, 62,192,110,252, 62, 79, 68, 98, 62,246,215, 3, 63,143, 56,101, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,147,210, 3, 63,221, 95, 86, 62,237,221, 8, 63,218, 90, 91, 62, 22,117, 9, 63,146,203, 97, 62,246,215, 3, 63, -143, 56,101, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62, 39,153,253, 62, 27,195, 91, 62, -147,210, 3, 63,221, 95, 86, 62,246,215, 3, 63,143, 56,101, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 5, 54, 12, 63, -188,183,167, 62,250, 61, 9, 63,252,214,168, 62,152,143, 8, 63, 45,107,163, 62,119,125, 9, 63, 7,112,158, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62,110, 39,253, 62,103,224,168, 62, 98, 68,247, 62,146,206,167, 62, -165,179,252, 62,163,140,158, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,135,196, 10, 63, 52,208,178, 62, 25,233, 8, 63, -116,110,175, 62,250, 61, 9, 63,252,214,168, 62, 5, 54, 12, 63,188,183,167, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -110, 39,253, 62,103,224,168, 62,102,195,253, 62,184,102,175, 62, 98, 14,250, 62,149,202,178, 62, 98, 68,247, 62,146,206,167, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 69, 17, 4, 63,105,176,182, 62, 69,138, 6, 63, 80,180,177, 62, 25,233, 8, 63, -116,110,175, 62,135,196, 10, 63, 52,208,178, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,102,195,253, 62,184,102,175, 62, - 14, 49, 1, 63, 62,150,177, 62, 69, 17, 4, 63,105,176,182, 62, 98, 14,250, 62,149,202,178, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,209,124, 3, 63, 70, 0,177, 62, 11,232, 3, 63,140, 4,174, 62, 69,138, 6, 63, 80,180,177, 62, 69, 17, 4, 63, -105,176,182, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 14, 49, 1, 63, 62,150,177, 62, 11,232, 3, 63,140, 4,174, 62, -209,124, 3, 63, 70, 0,177, 62, 69, 17, 4, 63,105,176,182, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 70,233, 3, 63, - 88, 27,154, 62,119,125, 9, 63, 7,112,158, 62,152,143, 8, 63, 45,107,163, 62,212,232, 3, 63, 58,152,158, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62,165,179,252, 62,163,140,158, 62, 70,233, 3, 63, 88, 27,154, 62, -212,232, 3, 63, 58,152,158, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,212,232, 3, 63, 58,152,158, 62,152,143, 8, 63, - 45,107,163, 62,121, 91, 7, 63,134, 51,166, 62,205,231, 3, 63, 58,149,162, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 44,116, 0, 63,255, 56,166, 62,100,136,254, 62, 38,123,163, 62,212,232, 3, 63, 58,152,158, 62,205,231, 3, 63, 58,149,162, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 11,232, 3, 63,140, 4,174, 62,214,233, 3, 63,198,154,170, 62,233,110, 6, 63, - 94,152,174, 62, 69,138, 6, 63, 80,180,177, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,228, 82, 1, 63, 95,140,174, 62, -214,233, 3, 63,198,154,170, 62, 11,232, 3, 63,140, 4,174, 62, 14, 49, 1, 63, 62,150,177, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 69,138, 6, 63, 80,180,177, 62,233,110, 6, 63, 94,152,174, 62, 59,236, 7, 63, 19,123,173, 62, 25,233, 8, 63, -116,110,175, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62,228, 82, 1, 63, 95,140,174, 62, - 14, 49, 1, 63, 62,150,177, 62,102,195,253, 62,184,102,175, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 25,233, 8, 63, -116,110,175, 62, 59,236, 7, 63, 19,123,173, 62, 85,249, 7, 63, 92, 52,169, 62,250, 61, 9, 63,252,214,168, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62,217,185,255, 62, 92,116,173, 62,102,195,253, 62,184,102,175, 62, -110, 39,253, 62,103,224,168, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 9, 63,252,214,168, 62, 85,249, 7, 63, - 92, 52,169, 62,121, 91, 7, 63,134, 51,166, 62,152,143, 8, 63, 45,107,163, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 44,116, 0, 63,255, 56,166, 62,160,169,255, 62, 6, 57,169, 62,110, 39,253, 62,103,224,168, 62,100,136,254, 62, 38,123,163, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62, 85,249, 7, 63, 92, 52,169, 62, 59,236, 7, 63, - 19,123,173, 62,233,110, 6, 63, 94,152,174, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62, -160,169,255, 62, 6, 57,169, 62,214,233, 3, 63,198,154,170, 62,228, 82, 1, 63, 95,140,174, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62,205,231, 3, 63, 58,149,162, 62,121, 91, 7, 63,134, 51,166, 62, 85,249, 7, 63, - 92, 52,169, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62,205,231, 3, 63, 58,149,162, 62, -214,233, 3, 63,198,154,170, 62,160,169,255, 62, 6, 57,169, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 69, 17, 4, 63, -105,176,182, 62,135,196, 10, 63, 52,208,178, 62,158,237, 12, 63, 38,241,187, 62,147,230, 3, 63, 78, 47,208, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 98, 14,250, 62,149,202,178, 62, 69, 17, 4, 63,105,176,182, 62, -147,230, 3, 63, 78, 47,208, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,135,196, 10, 63, 52,208,178, 62, 5, 54, 12, 63, -188,183,167, 62,112, 0, 16, 63,254,246,164, 62,158,237, 12, 63, 38,241,187, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -207,187,239, 62, 19, 42,165, 62, 98, 68,247, 62,146,206,167, 62, 98, 14,250, 62,149,202,178, 62, 15,175,245, 62,188, 14,188, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 5, 54, 12, 63,188,183,167, 62,119,125, 9, 63, 7,112,158, 62, 44,250, 15, 63, -109, 0,154, 62,112, 0, 16, 63,254,246,164, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62, -165,179,252, 62,163,140,158, 62, 98, 68,247, 62,146,206,167, 62,207,187,239, 62, 19, 42,165, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62, 77, 32, 8, 63, 10, 39,139, 62,206,243, 15, 63,182,207,136, 62, 44,250, 15, 63, -109, 0,154, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 92,193,239, 62,113, 61,137, 62,219, 89,255, 62,116, 79,139, 62, -165,179,252, 62,163,140,158, 62, 56,205,239, 62, 8, 71,154, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, - 17, 56,132, 62,208, 46, 27, 63,149, 35,148, 62, 44,250, 15, 63,109, 0,154, 62,206,243, 15, 63,182,207,136, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62,238,166,217, 62,229,221,148, 62, 54, 42,221, 62,209, 25,133, 62, - 92,193,239, 62,113, 61,137, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,208, 46, 27, 63,149, 35,148, 62, 36,177, 27, 63, -158,151,156, 62,112, 0, 16, 63,254,246,164, 62, 44,250, 15, 63,109, 0,154, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -207,187,239, 62, 19, 42,165, 62, 0,160,216, 62,127, 44,157, 62,238,166,217, 62,229,221,148, 62, 56,205,239, 62, 8, 71,154, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62,158,237, 12, 63, 38,241,187, 62,112, 0, 16, 63, -254,246,164, 62, 36,177, 27, 63,158,151,156, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, - 15,175,245, 62,188, 14,188, 62,115, 21,216, 62, 14,177,166, 62, 0,160,216, 62,127, 44,157, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62,147,210, 3, 63,221, 95, 86, 62,129,211, 3, 63,248,168, 83, 62,170, 33, 8, 63, -254,149, 86, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62,147,210, 3, 63,221, 95, 86, 62, - 39,153,253, 62, 27,195, 91, 62, 8, 14,255, 62, 58,232, 86, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 68,214, 9, 63, -246,237, 66, 62,237,221, 8, 63,218, 90, 91, 62,170, 33, 8, 63,254,149, 86, 62, 20,180, 8, 63, 94, 29, 69, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 8, 14,255, 62, 58,232, 86, 62, 39,153,253, 62, 27,195, 91, 62,104,137,251, 62,179, 92, 67, 62, - 19,210,253, 62, 55,114, 69, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 7, 63,148, 31, 54, 62, 68,214, 9, 63, -246,237, 66, 62, 20,180, 8, 63, 94, 29, 69, 62,168, 82, 6, 63, 80, 43, 57, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 19,210,253, 62, 55,114, 69, 62,104,137,251, 62,179, 92, 67, 62,175, 87, 0, 63,251, 90, 54, 62, 48, 68, 1, 63,166, 84, 57, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,193,202, 3, 63,214,174, 49, 62,250, 61, 7, 63,148, 31, 54, 62,168, 82, 6, 63, - 80, 43, 57, 62,205,202, 3, 63, 8, 22, 54, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 48, 68, 1, 63,166, 84, 57, 62, -175, 87, 0, 63,251, 90, 54, 62,193,202, 3, 63,214,174, 49, 62,205,202, 3, 63, 8, 22, 54, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,205,202, 3, 63, 8, 22, 54, 62,168, 82, 6, 63, 80, 43, 57, 62,246, 24, 5, 63, 26,150, 66, 62,213,205, 3, 63, -220,232, 64, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 48, 68, 1, 63,166, 84, 57, 62, -205,202, 3, 63, 8, 22, 54, 62,213,205, 3, 63,220,232, 64, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,168, 82, 6, 63, - 80, 43, 57, 62, 20,180, 8, 63, 94, 29, 69, 62, 39, 83, 6, 63,191,114, 70, 62,246, 24, 5, 63, 26,150, 66, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 19,210,253, 62, 55,114, 69, 62, 48, 68, 1, 63,166, 84, 57, 62, - 29,131, 2, 63, 22,172, 66, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 20,180, 8, 63, 94, 29, 69, 62,170, 33, 8, 63, -254,149, 86, 62, 4,111, 6, 63, 40,172, 76, 62, 39, 83, 6, 63,191,114, 70, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -157, 51, 1, 63,158,218, 76, 62, 8, 14,255, 62, 58,232, 86, 62, 19,210,253, 62, 55,114, 69, 62,185, 75, 1, 63,222,160, 70, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,170, 33, 8, 63,254,149, 86, 62,129,211, 3, 63,248,168, 83, 62,234,208, 3, 63, -146, 43, 75, 62, 4,111, 6, 63, 40,172, 76, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62, -129,211, 3, 63,248,168, 83, 62, 8, 14,255, 62, 58,232, 86, 62,157, 51, 1, 63,158,218, 76, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62,213,205, 3, 63,220,232, 64, 62,246, 24, 5, 63, 26,150, 66, 62, 4,111, 6, 63, - 40,172, 76, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62,213,205, 3, 63,220,232, 64, 62, -234,208, 3, 63,146, 43, 75, 62,157, 51, 1, 63,158,218, 76, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 4,111, 6, 63, - 40,172, 76, 62,246, 24, 5, 63, 26,150, 66, 62, 39, 83, 6, 63,191,114, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 29,131, 2, 63, 22,172, 66, 62,157, 51, 1, 63,158,218, 76, 62, - 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 64, 2, 13, 63, 52,215,230, 62,149,244, 14, 63, - 4, 42,221, 62, 4,216, 16, 63,160, 24,224, 62,120,200, 15, 63, 84,255,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -119,193,237, 62,190, 38,224, 62,141,144,241, 62,244, 52,221, 62,219,100,245, 62,184,230,230, 62, 21,211,239, 62,185, 18,232, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 71, 25, 13, 63,116,163,243, 62, 64, 2, 13, 63, 52,215,230, 62,120,200, 15, 63, - 84,255,231, 62,184,171, 16, 63, 40,133,241, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 21,211,239, 62,185, 18,232, 62, -219,100,245, 62,184,230,230, 62, 0, 45,245, 62,206,185,243, 62,218,252,237, 62, 62,160,241, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62, 71, 25, 13, 63,116,163,243, 62,184,171, 16, 63, 40,133,241, 62, 55, 44, 19, 63, - 86, 21,250, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,218,252,237, 62, 62,160,241, 62, 0, 45,245, 62,206,185,243, 62, -209,213,236, 62, 4,250,255, 62,153,228,232, 62,154, 67,250, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,149,244, 14, 63, - 4, 42,221, 62, 15, 97, 17, 63,220, 34,214, 62,217, 53, 19, 63, 16,211,218, 62, 4,216, 16, 63,160, 24,224, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 8, 14,233, 62, 66,226,218, 62,217,200,236, 62,134, 49,214, 62,141,144,241, 62,244, 52,221, 62, -119,193,237, 62,190, 38,224, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 15, 97, 17, 63,220, 34,214, 62,165,178, 27, 63, -128, 17,208, 62,205,198, 26, 63,124,184,214, 62,217, 53, 19, 63, 16,211,218, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -216,214,217, 62,218,224,214, 62, 6, 24,216, 62,128, 57,208, 62,217,200,236, 62,134, 49,214, 62, 8, 14,233, 62, 66,226,218, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,165,178, 27, 63,128, 17,208, 62, 14,120, 33, 63,166,238,214, 62,156,136, 31, 63, -194,138,219, 62,205,198, 26, 63,124,184,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,254, 30,208, 62,204,177,219, 62, -168, 75,204, 62, 62, 7,215, 62, 6, 24,216, 62,128, 57,208, 62,216,214,217, 62,218,224,214, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 14,120, 33, 63,166,238,214, 62,140,149, 38, 63, 38, 95,229, 62, 79, 9, 36, 63, 94,224,229, 62,156,136, 31, 63, -194,138,219, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,148,192,198, 62,182, 11,230, 62,168,140,193, 62, 94,129,229, 62, -168, 75,204, 62, 62, 7,215, 62,254, 30,208, 62,204,177,219, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,140,149, 38, 63, - 38, 95,229, 62, 92, 62, 39, 63,121, 75,240, 62, 14, 49, 36, 63,253, 88,239, 62, 79, 9, 36, 63, 94,224,229, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 97, 71,198, 62,192,149,239, 62,222, 10,192, 62,163,128,240, 62,168,140,193, 62, 94,129,229, 62, -148,192,198, 62,182, 11,230, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 92, 62, 39, 63,121, 75,240, 62, 25,113, 37, 63, - 35,157,247, 62,243, 33, 35, 63, 80,143,245, 62, 14, 49, 36, 63,253, 88,239, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 87, 99,200, 62,172,217,245, 62,189,165,195, 62,139,232,247, 62,222, 10,192, 62,163,128,240, 62, 97, 71,198, 62,192,149,239, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 25,113, 37, 63, 35,157,247, 62, 96, 49, 30, 63,121,229,254, 62,223, 49, 29, 63, -199,140,250, 62,243, 33, 35, 63, 80,143,245, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,147,124,212, 62,146,215,250, 62, -176,116,210, 62,227, 62,255, 62,189,165,195, 62,139,232,247, 62, 87, 99,200, 62,172,217,245, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 96, 49, 30, 63,121,229,254, 62,151,182, 25, 63,130, 9, 1, 63, 50,181, 25, 63,118,111,253, 62,223, 49, 29, 63, -199,140,250, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 52,151,219, 62, 68,186,253, 62,213,150,219, 62, 50, 55, 1, 63, -176,116,210, 62,227, 62,255, 62,147,124,212, 62,146,215,250, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,151,182, 25, 63, -130, 9, 1, 63,240, 81, 22, 63,114, 70, 1, 63,241,188, 22, 63, 28,149,253, 62, 50,181, 25, 63,118,111,253, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,212,163,225, 62, 91,215,253, 62,106,128,226, 62,198,111, 1, 63,213,150,219, 62, 50, 55, 1, 63, - 52,151,219, 62, 68,186,253, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,240, 81, 22, 63,114, 70, 1, 63,103, 59, 17, 63, -120,195,255, 62, 55, 44, 19, 63, 86, 21,250, 62,241,188, 22, 63, 28,149,253, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -153,228,232, 62,154, 67,250, 62,209,213,236, 62, 4,250,255, 62,106,128,226, 62,198,111, 1, 63,212,163,225, 62, 91,215,253, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,241,188, 22, 63, 28,149,253, 62, 55, 44, 19, 63, 86, 21,250, 62, 9,165, 20, 63, -248, 99,247, 62, 20, 0, 23, 63, 6, 57,251, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,232,232,229, 62, 74,142,247, 62, -153,228,232, 62,154, 67,250, 62,212,163,225, 62, 91,215,253, 62,145, 26,225, 62,114,116,251, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 50,181, 25, 63,118,111,253, 62,241,188, 22, 63, 28,149,253, 62, 20, 0, 23, 63, 6, 57,251, 62,130,144, 25, 63, -128, 7,251, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,145, 26,225, 62,114,116,251, 62,212,163,225, 62, 91,215,253, 62, - 52,151,219, 62, 68,186,253, 62,177,225,219, 62, 67, 75,251, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,223, 49, 29, 63, -199,140,250, 62, 50,181, 25, 63,118,111,253, 62,130,144, 25, 63,128, 7,251, 62, 80,195, 28, 63, 55,166,248, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,177,225,219, 62, 67, 75,251, 62, 52,151,219, 62, 68,186,253, 62,147,124,212, 62,146,215,250, 62, -233, 95,213, 62, 20,237,248, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,243, 33, 35, 63, 80,143,245, 62,223, 49, 29, 63, -199,140,250, 62, 80,195, 28, 63, 55,166,248, 62, 22,164, 33, 63,102, 75,243, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -233, 95,213, 62, 20,237,248, 62,147,124,212, 62,146,215,250, 62, 87, 99,200, 62,172,217,245, 62, 65,114,203, 62,159,143,243, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 14, 49, 36, 63,253, 88,239, 62,243, 33, 35, 63, 80,143,245, 62, 22,164, 33, 63, -102, 75,243, 62, 30,160, 34, 63,169, 47,238, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 65,114,203, 62,159,143,243, 62, - 87, 99,200, 62,172,217,245, 62, 97, 71,198, 62,192,149,239, 62,188,128,201, 62,126,110,238, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 79, 9, 36, 63, 94,224,229, 62, 14, 49, 36, 63,253, 88,239, 62, 30,160, 34, 63,169, 47,238, 62,131,144, 34, 63, -253, 87,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,188,128,201, 62,126,110,238, 62, 97, 71,198, 62,192,149,239, 62, -148,192,198, 62,182, 11,230, 62,141,190,201, 62,124,140,231, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,156,136, 31, 63, -194,138,219, 62, 79, 9, 36, 63, 94,224,229, 62,131,144, 34, 63,253, 87,231, 62, 21,208, 30, 63,174,182,221, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,141,190,201, 62,124,140,231, 62,148,192,198, 62,182, 11,230, 62,254, 30,208, 62,204,177,219, 62, -168,133,209, 62, 51,221,221, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,205,198, 26, 63,124,184,214, 62,156,136, 31, 63, -194,138,219, 62, 21,208, 30, 63,174,182,221, 62,128,218, 26, 63, 68,206,217, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -168,133,209, 62, 51,221,221, 62,254, 30,208, 62,204,177,219, 62,216,214,217, 62,218,224,214, 62, 11,157,217, 62, 64,243,217, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217, 53, 19, 63, 16,211,218, 62,205,198, 26, 63,124,184,214, 62,128,218, 26, 63, - 68,206,217, 62,103, 53, 20, 63,236, 84,221, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 11,157,217, 62, 64,243,217, 62, -216,214,217, 62,218,224,214, 62, 8, 14,233, 62, 66,226,218, 62, 68, 5,231, 62,234,101,221, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 4,216, 16, 63,160, 24,224, 62,217, 53, 19, 63, 16,211,218, 62,103, 53, 20, 63,236, 84,221, 62, 81, 87, 18, 63, - 33,175,226, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 68, 5,231, 62,234,101,221, 62, 8, 14,233, 62, 66,226,218, 62, -119,193,237, 62,190, 38,224, 62,180,187,234, 62,249,190,226, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 55, 44, 19, 63, - 86, 21,250, 62,184,171, 16, 63, 40,133,241, 62, 98, 68, 18, 63,150,197,240, 62, 9,165, 20, 63,248, 99,247, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 35,197,234, 62,215,226,240, 62,218,252,237, 62, 62,160,241, 62,153,228,232, 62,154, 67,250, 62, -232,232,229, 62, 74,142,247, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,184,171, 16, 63, 40,133,241, 62,120,200, 15, 63, - 84,255,231, 62,161, 4, 18, 63,138,184,232, 62, 98, 68, 18, 63,150,197,240, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -154, 85,235, 62, 92,206,232, 62, 21,211,239, 62,185, 18,232, 62,218,252,237, 62, 62,160,241, 62, 35,197,234, 62,215,226,240, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120,200, 15, 63, 84,255,231, 62, 4,216, 16, 63,160, 24,224, 62, 81, 87, 18, 63, - 33,175,226, 62,161, 4, 18, 63,138,184,232, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,180,187,234, 62,249,190,226, 62, -119,193,237, 62,190, 38,224, 62, 21,211,239, 62,185, 18,232, 62,154, 85,235, 62, 92,206,232, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,148,232, 3, 63,164, 17, 11, 63, 67,169, 11, 63, 18,197, 11, 63,216,120, 13, 63,160, 81, 23, 63,147, 15, 4, 63, -227,248, 23, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 64, 27,245, 62,100,166, 23, 63, 55, 72,248, 62, 91,232, 11, 63, -148,232, 3, 63,164, 17, 11, 63,147, 15, 4, 63,227,248, 23, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 67,169, 11, 63, - 18,197, 11, 63,173,244, 22, 63,236,215, 11, 63, 94,233, 23, 63,186, 60, 16, 63,216,120, 13, 63,160, 81, 23, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,109,130,223, 62,118,165, 16, 63,220, 89,225, 62, 77, 42, 12, 63, 55, 72,248, 62, 91,232, 11, 63, - 64, 27,245, 62,100,166, 23, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,173,244, 22, 63,236,215, 11, 63, 28,105, 26, 63, -242,194, 11, 63,220, 56, 28, 63, 66,250, 14, 63, 94,233, 23, 63,186, 60, 16, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -157,161,214, 62,219,110, 15, 63,220, 73,218, 62,169, 31, 12, 63,220, 89,225, 62, 77, 42, 12, 63,109,130,223, 62,118,165, 16, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 28,105, 26, 63,242,194, 11, 63,220,158, 34, 63,175, 23, 10, 63,109, 44, 39, 63, -107,221, 19, 63,220, 56, 28, 63, 66,250, 14, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,156, 26,192, 62, 31,139, 20, 63, -124,109,201, 62, 72,121, 10, 63,220, 73,218, 62,169, 31, 12, 63,157,161,214, 62,219,110, 15, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,220,158, 34, 63,175, 23, 10, 63,238, 88, 46, 63,146,223, 2, 63,242, 80, 56, 63, 44,244, 6, 63,109, 44, 39, 63, -107,221, 19, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 61,208,156, 62,204, 16, 7, 63,173, 87,177, 62,102, 9, 3, 63, -124,109,201, 62, 72,121, 10, 63,156, 26,192, 62, 31,139, 20, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0,238, 88, 46, 63, -146,223, 2, 63, 62,134, 48, 63, 37,107,249, 62,195,173, 54, 63,239,106,252, 62,242, 80, 56, 63, 44,244, 6, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,128, 0,202, 36,160, 62, 94, 51,252, 62,172,229,172, 62,116,127,249, 62,173, 87,177, 62,102, 9, 3, 63, - 61,208,156, 62,204, 16, 7, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0, 62,134, 48, 63, 37,107,249, 62, 38,229, 50, 63, -169, 32,226, 62,154, 88, 53, 63,240,146,221, 62,195,173, 54, 63,239,106,252, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, -128,172,162, 62, 17,169,221, 62,196, 39,168, 62,206, 11,226, 62,172,229,172, 62,116,127,249, 62,202, 36,160, 62, 94, 51,252, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, 38,229, 50, 63,169, 32,226, 62, 87, 57, 43, 63,222, 58,206, 62,240,117, 49, 63, -164,138,198, 62,154, 88, 53, 63,240,146,221, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0,147,137,172, 62,148, 19,198, 62, -130,207,184, 62, 42, 27,206, 62,196, 39,168, 62,206, 11,226, 62,128,172,162, 62, 17,169,221, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0,128, 0, 87, 57, 43, 63,222, 58,206, 62, 91, 94, 37, 63,107,120,187, 62,156,160, 41, 63, 56,175,182, 62,240,117, 49, 63, -164,138,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62,156, 28,197, 62,166,130,187, 62, -130,207,184, 62, 42, 27,206, 62,147,137,172, 62,148, 19,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,165,252, 48, 63, -133, 33, 85, 62,112, 54, 48, 63, 20, 19, 96, 62,172, 36, 46, 63,208, 7,129, 62,240, 17, 42, 63,129, 84, 97, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62,117,121,175, 62,183,185,106, 62,217, 24,172, 62, 21,237, 92, 62, -138, 81,187, 62, 59, 40,103, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,204, 89, 48, 63,134,194, 4, 62,165,252, 48, 63, -133, 33, 85, 62,240, 17, 42, 63,129, 84, 97, 62,160,125, 37, 63, 50,211, 46, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, -138, 81,187, 62, 59, 40,103, 62,217, 24,172, 62, 21,237, 92, 62, 94,197,172, 62,109,200, 4, 62, 25,121,195, 62, 46,253, 48, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 11, 44, 20, 63, 20, 26,163, 61,204, 89, 48, 63,134,194, 4, 62,160,125, 37, 63, - 50,211, 46, 62, 40, 92, 24, 63,214,184, 21, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0, 25,121,195, 62, 46,253, 48, 62, - 94,197,172, 62,109,200, 4, 62,140,122,230, 62,202,248,161, 61,216, 13,222, 62,222,116, 22, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 32, 0,174,254, 16, 63, 94, 45, 34, 62,219,199, 3, 63, 18, 28,229, 61, 11, 44, 20, 63, 20, 26,163, 61, 40, 92, 24, 63, -214,184, 21, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0,140,122,230, 62,202,248,161, 61,219,199, 3, 63, 18, 28,229, 61, -140,248,236, 62,182,202, 34, 62,216, 13,222, 62,222,116, 22, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,184,152, 21, 63, -182, 47, 53, 62,174,254, 16, 63, 94, 45, 34, 62, 40, 92, 24, 63,214,184, 21, 62,209, 52, 25, 63, 76,140, 51, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 32, 0,216, 13,222, 62,222,116, 22, 62,140,248,236, 62,182,202, 34, 62,183,207,227, 62,250, 75, 54, 62, -229,137,220, 62,185,228, 52, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0,137, 57, 22, 63, 81, 93, 61, 62,184,152, 21, 63, -182, 47, 53, 62,209, 52, 25, 63, 76,140, 51, 62,193,166, 30, 63,114,168, 73, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -229,137,220, 62,185,228, 52, 62,183,207,227, 62,250, 75, 54, 62,122,152,226, 62,190,166, 62, 62, 54,198,209, 62, 18,240, 75, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,250,249, 22, 63,160,251, 88, 62,137, 57, 22, 63, 81, 93, 61, 62,193,166, 30, 63, -114,168, 73, 62, 75, 0, 36, 63,229, 47,116, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62, -122,152,226, 62,190,166, 62, 62, 90, 83,225, 62, 21,153, 90, 62,211,231,199, 62,216,237,119, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,193,166, 30, 63,114,168, 73, 62,160,125, 37, 63, 50,211, 46, 62,240, 17, 42, 63,129, 84, 97, 62, 75, 0, 36, 63, -229, 47,116, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 25,121,195, 62, 46,253, 48, 62, - 54,198,209, 62, 18,240, 75, 62,211,231,199, 62,216,237,119, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,193,166, 30, 63, -114,168, 73, 62,209, 52, 25, 63, 76,140, 51, 62, 40, 92, 24, 63,214,184, 21, 62,160,125, 37, 63, 50,211, 46, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62,229,137,220, 62,185,228, 52, 62, 54,198,209, 62, 18,240, 75, 62, - 25,121,195, 62, 46,253, 48, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 37,163, 36, 63,191,168,140, 62, 75, 0, 36, 63, -229, 47,116, 62,240, 17, 42, 63,129, 84, 97, 62,172, 36, 46, 63,208, 7,129, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -138, 81,187, 62, 59, 40,103, 62,211,231,199, 62,216,237,119, 62, 6, 64,199, 62,105, 6,142, 62, 76, 71,181, 62,204,200,131, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, 17, 56,132, 62,250,249, 22, 63,160,251, 88, 62, 75, 0, 36, 63, -229, 47,116, 62, 37,163, 36, 63,191,168,140, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,211,231,199, 62,216,237,119, 62, - 90, 83,225, 62, 21,153, 90, 62, 54, 42,221, 62,209, 25,133, 62, 6, 64,199, 62,105, 6,142, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,208, 46, 27, 63,149, 35,148, 62, 91, 60, 36, 63,221,222,150, 62,222,170, 33, 63, 74,126,158, 62, 36,177, 27, 63, -158,151,156, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62,150,245,199, 62, 85, 15,152, 62, -238,166,217, 62,229,221,148, 62, 0,160,216, 62,127, 44,157, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, - 17, 56,132, 62, 37,163, 36, 63,191,168,140, 62, 91, 60, 36, 63,221,222,150, 62,208, 46, 27, 63,149, 35,148, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 6, 64,199, 62,105, 6,142, 62, 54, 42,221, 62,209, 25,133, 62, -238,166,217, 62,229,221,148, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62, 36,177, 27, 63, -158,151,156, 62,222,170, 33, 63, 74,126,158, 62,102,212, 31, 63,144,192,164, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 72,234,204, 62, 56, 63,159, 62, 0,160,216, 62,127, 44,157, 62,115, 21,216, 62, 14,177,166, 62, 17,119,208, 62,201, 65,165, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62,102,212, 31, 63,144,192,164, 62,156,160, 41, 63, - 56,175,182, 62, 91, 94, 37, 63,107,120,187, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, - 17,119,208, 62,201, 65,165, 62,115, 21,216, 62, 14,177,166, 62,156, 28,197, 62,166,130,187, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,104,119,194, 62,164,189, 82, 63, 23, 73,212, 62,152,239, 90, 63,100,192,205, 62, 46,238, 97, 63, 38, 56,185, 62, - 72,154, 91, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,228, 94,141, 62, 86,234,100, 63, 84, 66,150, 62,114,154, 94, 63, -230, 86,173, 62, 79, 66, 98, 63, 20,143,162, 62, 44,173,106, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 72,122, 87, 63, -216, 8, 62, 62,202,106, 84, 63,137,185,113, 62,226, 77, 72, 63,204, 21,121, 62,158,225, 71, 63,113, 34, 68, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 16, 0,132, 32,137, 62,181, 65,121, 62,168,179,107, 62,139,127,103, 62,210,147,114, 62,212,116, 61, 62, -248,125,142, 62, 30, 4, 80, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,158,225, 71, 63,113, 34, 68, 62,226, 77, 72, 63, -204, 21,121, 62, 8, 7, 51, 63, 5,186,130, 62, 3,166, 49, 63,232, 57, 96, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 18,197,172, 62, 41,112,133, 62,132, 32,137, 62,181, 65,121, 62,248,125,142, 62, 30, 4, 80, 62,121,228,174, 62, 52, 79,109, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 3,166, 49, 63,232, 57, 96, 62, 8, 7, 51, 63, 5,186,130, 62,172, 36, 46, 63, -208, 7,129, 62,112, 54, 48, 63, 20, 19, 96, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62, - 18,197,172, 62, 41,112,133, 62,121,228,174, 62, 52, 79,109, 62,117,121,175, 62,183,185,106, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 37,163, 36, 63,191,168,140, 62,172, 36, 46, 63,208, 7,129, 62, 8, 7, 51, 63, 5,186,130, 62, 91, 60, 36, 63, -221,222,150, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62, 76, 71,181, 62,204,200,131, 62, - 6, 64,199, 62,105, 6,142, 62,150,245,199, 62, 85, 15,152, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,154, 88, 53, 63, -240,146,221, 62,240,117, 49, 63,164,138,198, 62,224, 19, 69, 63, 24, 68,190, 62, 53, 64, 74, 63,171, 31,224, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 16, 0,250, 78,134, 62,148,213,186, 62,147,137,172, 62,148, 19,198, 62,128,172,162, 62, 17,169,221, 62, -184,112,114, 62,248,169,220, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 54, 74,214, 62, 20, 55, 70, 63, 48,130,233, 62, -188, 69, 83, 63, 23, 73,212, 62,152,239, 90, 63,104,119,194, 62,164,189, 82, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, - 84, 66,150, 62,114,154, 94, 63, 66, 1,153, 62,245,149, 81, 63, 38, 56,185, 62,102,110, 83, 63,230, 86,173, 62, 79, 66, 98, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,106,242, 66, 63,202, 94, 25, 63,190,100, 70, 63,222,234, 15, 63, 90,189, 77, 63, -233, 88, 17, 63, 8,206, 74, 63, 88,118, 27, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 22, 32, 96, 62, 66, 60, 16, 63, - 86, 87,125, 62,174, 5, 15, 63, 78,187,132, 62,180, 44, 24, 63, 26, 79,108, 62,124, 1, 26, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 8,206, 74, 63, 88,118, 27, 63, 90,189, 77, 63,233, 88, 17, 63, 72,139, 85, 63,103, 51, 19, 63,220,119, 85, 63, - 77, 71, 31, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 64,199, 64, 62, 26, 40, 18, 63, 22, 32, 96, 62, 66, 60, 16, 63, - 26, 79,108, 62,124, 1, 26, 63, 44,191, 67, 62, 90, 89, 30, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,220,119, 85, 63, - 77, 71, 31, 63, 72,139, 85, 63,103, 51, 19, 63,228,213,100, 63, 72,156, 20, 63, 18, 82, 96, 63,128,133, 34, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,128, 0,226, 50, 1, 62,184, 68, 20, 63, 64,199, 64, 62, 26, 40, 18, 63, 44,191, 67, 62, 90, 89, 30, 63, -194,204, 24, 62, 32,186, 34, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0,242, 80, 56, 63, 44,244, 6, 63,195,173, 54, 63, -239,106,252, 62,115,205, 60, 63,213,150,253, 62,166, 14, 64, 63, 81, 80, 4, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, -190, 85,147, 62, 91,176,252, 62,202, 36,160, 62, 94, 51,252, 62, 61,208,156, 62,204, 16, 7, 63,160,121,140, 62, 74,197, 3, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,166, 14, 64, 63, 81, 80, 4, 63,115,205, 60, 63,213,150,253, 62, 68,103, 73, 63, -233,248, 0, 63,248, 12, 75, 63, 64,206, 8, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62, -190, 85,147, 62, 91,176,252, 62,160,121,140, 62, 74,197, 3, 63, 78,135,107, 62, 88,182, 7, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,248, 12, 75, 63, 64,206, 8, 63, 68,103, 73, 63,233,248, 0, 63,239,151, 82, 63, 86,223, 3, 63,181,227, 82, 63, -189,102, 11, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,144, 59,115, 62,102,143,255, 62, - 78,135,107, 62, 88,182, 7, 63,202, 98, 75, 62,108, 43, 10, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,181,227, 82, 63, -189,102, 11, 63,239,151, 82, 63, 86,223, 3, 63, 92,224, 91, 63,239,144, 5, 63,161,148, 90, 63,146, 95, 13, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,178, 40, 38, 62, 14,230, 3, 63, 82, 17, 77, 62,162, 98, 2, 63,202, 98, 75, 62,108, 43, 10, 63, - 10,162, 43, 62, 8, 50, 12, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120, 89,103, 63,105, 76, 2, 63,170,179,103, 63, -142,105, 12, 63,161,148, 90, 63,146, 95, 13, 63, 92,224, 91, 63,239,144, 5, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 10,162, 43, 62, 8, 50, 12, 63,168, 41,231, 61,158, 83, 11, 63,116,128,234, 61,200, 39, 0, 63,178, 40, 38, 62, 14,230, 3, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,228,213,100, 63, 72,156, 20, 63, 72,139, 85, 63,103, 51, 19, 63,161,148, 90, 63, -146, 95, 13, 63,170,179,103, 63,142,105, 12, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, - 64,199, 64, 62, 26, 40, 18, 63,226, 50, 1, 62,184, 68, 20, 63,168, 41,231, 61,158, 83, 11, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 72,139, 85, 63,103, 51, 19, 63, 90,189, 77, 63,233, 88, 17, 63,181,227, 82, 63,189,102, 11, 63,161,148, 90, 63, -146, 95, 13, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 22, 32, 96, 62, 66, 60, 16, 63, - 64,199, 64, 62, 26, 40, 18, 63, 10,162, 43, 62, 8, 50, 12, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 90,189, 77, 63, -233, 88, 17, 63,190,100, 70, 63,222,234, 15, 63,248, 12, 75, 63, 64,206, 8, 63,181,227, 82, 63,189,102, 11, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 86, 87,125, 62,174, 5, 15, 63, 22, 32, 96, 62, 66, 60, 16, 63, -202, 98, 75, 62,108, 43, 10, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,190,100, 70, 63,222,234, 15, 63, 82,235, 60, 63, - 27, 12, 12, 63,166, 14, 64, 63, 81, 80, 4, 63,248, 12, 75, 63, 64,206, 8, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -160,121,140, 62, 74,197, 3, 63, 78,230,145, 62,148,225, 11, 63, 86, 87,125, 62,174, 5, 15, 63, 78,135,107, 62, 88,182, 7, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 31,118, 57, 63,230, 79, 12, 63,242, 80, 56, 63, 44,244, 6, 63,166, 14, 64, 63, - 81, 80, 4, 63, 82,235, 60, 63, 27, 12, 12, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0,160,121,140, 62, 74,197, 3, 63, - 61,208,156, 62,204, 16, 7, 63, 0,199,152, 62, 13,133, 12, 63, 78,230,145, 62,148,225, 11, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 32, 0,195,240, 57, 63, 10,138, 23, 63, 82,235, 60, 63, 27, 12, 12, 63,190,100, 70, 63,222,234, 15, 63,106,242, 66, 63, -202, 94, 25, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 86, 87,125, 62,174, 5, 15, 63, 78,230,145, 62,148,225, 11, 63, -247, 7,150, 62, 96, 12, 23, 63, 78,187,132, 62,180, 44, 24, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,216,120, 13, 63, -160, 81, 23, 63, 94,233, 23, 63,186, 60, 16, 63,220, 56, 28, 63, 66,250, 14, 63,109, 44, 39, 63,107,221, 19, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63,109,130,223, 62,118,165, 16, 63, 64, 27,245, 62,100,166, 23, 63, -156, 26,192, 62, 31,139, 20, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,176, 29, 56, 63, 88,206, 20, 63, 31,118, 57, 63, -230, 79, 12, 63, 82,235, 60, 63, 27, 12, 12, 63,195,240, 57, 63, 10,138, 23, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 78,230,145, 62,148,225, 11, 63, 0,199,152, 62, 13,133, 12, 63,239,211,153, 62,220,159, 20, 63,247, 7,150, 62, 96, 12, 23, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 48,148, 54, 63,220,206, 22, 63,176, 29, 56, 63, 88,206, 20, 63,195,240, 57, 63, - 10,138, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,247, 7,150, 62, 96, 12, 23, 63, -239,211,153, 62,220,159, 20, 63,108,106,156, 62,146,154, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,195,173, 54, 63,239,106,252, 62,154, 88, 53, 63,240,146,221, 62, 53, 64, 74, 63,171, 31,224, 62,115,205, 60, 63, -213,150,253, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0,184,112,114, 62,248,169,220, 62,128,172,162, 62, 17,169,221, 62, -202, 36,160, 62, 94, 51,252, 62,190, 85,147, 62, 91,176,252, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0, 53, 64, 74, 63, -171, 31,224, 62,217,106, 81, 63, 14,214,232, 62, 68,103, 73, 63,233,248, 0, 63,115,205, 60, 63,213,150,253, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62, 88, 93, 84, 62, 50,105,228, 62,184,112,114, 62,248,169,220, 62, -190, 85,147, 62, 91,176,252, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, 14,214,232, 62,106,154, 93, 63, -226, 26,233, 62,239,151, 82, 63, 86,223, 3, 63, 68,103, 73, 63,233,248, 0, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 82, 17, 77, 62,162, 98, 2, 63,128, 1, 33, 62, 70,210,226, 62, 88, 93, 84, 62, 50,105,228, 62,144, 59,115, 62,102,143,255, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120, 89,103, 63,105, 76, 2, 63, 92,224, 91, 63,239,144, 5, 63,239,151, 82, 63, - 86,223, 3, 63,106,154, 93, 63,226, 26,233, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63, -178, 40, 38, 62, 14,230, 3, 63,116,128,234, 61,200, 39, 0, 63,128, 1, 33, 62, 70,210,226, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62,226, 77, 72, 63,204, 21,121, 62,154,254, 73, 63,178, 82,140, 62, 90,188, 56, 63, -103,207,159, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62,132, 32,137, 62,181, 65,121, 62, - 18,197,172, 62, 41,112,133, 62,192, 5,161, 62,228, 40,159, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,224, 19, 69, 63, - 24, 68,190, 62, 90,188, 56, 63,103,207,159, 62,154,254, 73, 63,178, 82,140, 62,216,217, 77, 63, 7,228,157, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,128, 0,249,249,130, 62,246,175,137, 62,192, 5,161, 62,228, 40,159, 62,250, 78,134, 62,148,213,186, 62, -154,118,111, 62,120,108,152, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0,240,117, 49, 63,164,138,198, 62,156,160, 41, 63, - 56,175,182, 62, 90,188, 56, 63,103,207,159, 62,224, 19, 69, 63, 24, 68,190, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -192, 5,161, 62,228, 40,159, 62,202,212,188, 62,245,163,182, 62,147,137,172, 62,148, 19,198, 62,250, 78,134, 62,148,213,186, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62,222,170, 33, 63, 74,126,158, 62, 91, 60, 36, 63, -221,222,150, 62, 90,188, 56, 63,103,207,159, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, - 72,234,204, 62, 56, 63,159, 62,202,212,188, 62,245,163,182, 62,192, 5,161, 62,228, 40,159, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 91, 60, 36, 63,221,222,150, 62, 8, 7, 51, 63, 5,186,130, 62, 90,188, 56, 63,103,207,159, 62, 0, 0,128, 63, - 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62, 18,197,172, 62, 41,112,133, 62, -150,245,199, 62, 85, 15,152, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,156,160, 41, 63, - 56,175,182, 62,102,212, 31, 63,144,192,164, 62,222,170, 33, 63, 74,126,158, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 17,119,208, 62,201, 65,165, 62,202,212,188, 62,245,163,182, 62, - 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,226, 44,245, 62,129,140, 96, 63, 42,135,227, 62, - 58, 2,101, 63,136,168,219, 62, 30,236, 95, 63,135, 30,238, 62,200, 41, 90, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, -216,240,137, 62, 90,226, 93, 63,110,103,122, 62,236,255, 92, 63, 74, 84,120, 62,104, 32, 83, 63, 32,193,138, 62, 16, 3, 83, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, 48,130,233, 62,188, 69, 83, 63,135, 30,238, 62,200, 41, 90, 63,136,168,219, 62, - 30,236, 95, 63, 23, 73,212, 62,152,239, 90, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,216,240,137, 62, 90,226, 93, 63, - 32,193,138, 62, 16, 3, 83, 63, 66, 1,153, 62,245,149, 81, 63, 84, 66,150, 62,114,154, 94, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0,240, 0,216,217, 77, 63, 7,228,157, 62,154,254, 73, 63,178, 82,140, 62, 33, 61, 90, 63,195,207,124, 62,160,225, 90, 63, -110,121,137, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, 98,207, 81, 62,109, 1,110, 62,249,249,130, 62,246,175,137, 62, -154,118,111, 62,120,108,152, 62,166,125, 74, 62,252, 30,130, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,226, 77, 72, 63, -204, 21,121, 62,202,106, 84, 63,137,185,113, 62, 33, 61, 90, 63,195,207,124, 62,154,254, 73, 63,178, 82,140, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 98,207, 81, 62,109, 1,110, 62,168,179,107, 62,139,127,103, 62,132, 32,137, 62,181, 65,121, 62, -249,249,130, 62,246,175,137, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 23, 73,212, 62,152,239, 90, 63,136,168,219, 62, - 30,236, 95, 63,100,192,205, 62, 46,238, 97, 63, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, -228, 94,141, 62, 86,234,100, 63,216,240,137, 62, 90,226, 93, 63, 84, 66,150, 62,114,154, 94, 63, 0, 0,128, 63, 0, 0,128, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, 31,178,109, 63,224, 68,228, 62, 46,178,102, 63,100,184,232, 62,100,251,101, 63, -238,198,227, 62, 94,173,107, 63,168,130,225, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62, -120,216,242, 61,124, 40,225, 62, 28, 27,177, 61, 42,240,219, 62, 76,131,196, 61,196, 97,216, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 31,178,109, 63,224, 68,228, 62, 94,173,107, 63,168,130,225, 62,144,102,114, 63,198, 23,220, 62, 41, 76,116, 63, -139,153,222, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 56,163,120, 61, 58,252,208, 62, 76,131,196, 61,196, 97,216, 62, - 28, 27,177, 61, 42,240,219, 62,128,183, 73, 61, 84,108,213, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 41, 76,116, 63, -139,153,222, 62,144,102,114, 63,198, 23,220, 62, 84, 87,117, 63,221,255,211, 62,183,115,119, 63,140, 49,215, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,144, 29, 55, 61,207,183,194, 62, 56,163,120, 61, 58,252,208, 62,128,183, 73, 61, 84,108,213, 62, -224,111,231, 60,100,142,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,183,115,119, 63,140, 49,215, 62, 84, 87,117, 63, -221,255,211, 62,150, 20,118, 63, 60,110,196, 62, 49, 12,122, 63,246, 8,197, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 96,197,103, 61, 15,206,170, 62,144, 29, 55, 61,207,183,194, 62,224,111,231, 60,100,142,198, 62,240, 54, 16, 61,120, 4,167, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 49, 12,122, 63,246, 8,197, 62,150, 20,118, 63, 60,110,196, 62, 17,155,108, 63, -130,201,178, 62, 84,190,110, 63,223, 77,172, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,148,252,246, 61,164,116,160, 62, - 96,197,103, 61, 15,206,170, 62,240, 54, 16, 61,120, 4,167, 62, 8, 66,246, 61, 28,161,152, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 84,190,110, 63,223, 77,172, 62, 17,155,108, 63,130,201,178, 62, 21,180, 92, 63,202, 95,173, 62,151, 5, 90, 63, -138, 61,167, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62,148,252,246, 61,164,116,160, 62, - 8, 66,246, 61, 28,161,152, 62,194,251, 66, 62,163,102,158, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 17,155,108, 63, -130,201,178, 62,198,132,109, 63,182,157,186, 62, 68, 32, 97, 63,192, 12,178, 62, 21,180, 92, 63,202, 95,173, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 48,185, 36, 62, 16, 7,166, 62, 40, 91,221, 61, 4,194,167, 62,148,252,246, 61,164,116,160, 62, -144,216, 54, 62, 35, 76,163, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,150, 20,118, 63, 60,110,196, 62, 84,225,115, 63, -208, 85,198, 62,198,132,109, 63,182,157,186, 62, 17,155,108, 63,130,201,178, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 40, 91,221, 61, 4,194,167, 62,244,221,134, 61,121,164,175, 62, 96,197,103, 61, 15,206,170, 62,148,252,246, 61,164,116,160, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 84, 87,117, 63,221,255,211, 62,222, 48,116, 63,169, 8,209, 62, 84,225,115, 63, -208, 85,198, 62,150, 20,118, 63, 60,110,196, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,244,221,134, 61,121,164,175, 62, -160,108, 93, 61, 17,207,190, 62,144, 29, 55, 61,207,183,194, 62, 96,197,103, 61, 15,206,170, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,144,102,114, 63,198, 23,220, 62,174,151,113, 63, 26,229,214, 62,222, 48,116, 63,169, 8,209, 62, 84, 87,117, 63, -221,255,211, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,160,108, 93, 61, 17,207,190, 62, 12,155,135, 61,166, 39,201, 62, - 56,163,120, 61, 58,252,208, 62,144, 29, 55, 61,207,183,194, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 94,173,107, 63, -168,130,225, 62,228,239,107, 63, 62, 59,218, 62,174,151,113, 63, 26,229,214, 62,144,102,114, 63,198, 23,220, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 12,155,135, 61,166, 39,201, 62,128, 47,195, 61, 6, 11,207, 62, 76,131,196, 61,196, 97,216, 62, - 56,163,120, 61, 58,252,208, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 94,173,107, 63,168,130,225, 62,100,251,101, 63, -238,198,227, 62, 71,205,102, 63,132, 94,219, 62,228,239,107, 63, 62, 59,218, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -192,157,244, 61,157,137,209, 62, 68,209,249, 61, 70,134,219, 62, 76,131,196, 61,196, 97,216, 62,128, 47,195, 61, 6, 11,207, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,224, 19, 69, 63, 24, 68,190, 62,216,217, 77, 63, 7,228,157, 62,236, 35, 85, 63, -164,201,181, 62, 56, 92, 78, 63,177,114,188, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 32, 0,122, 91, 80, 62, 72, 18,174, 62, -154,118,111, 62,120,108,152, 62,250, 78,134, 62,148,213,186, 62,162,163,104, 62,150,180,182, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 32, 0,216,217, 77, 63, 7,228,157, 62,151, 5, 90, 63,138, 61,167, 62, 21,180, 92, 63,202, 95,173, 62,236, 35, 85, 63, -164,201,181, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0,144,216, 54, 62, 35, 76,163, 62,194,251, 66, 62,163,102,158, 62, -154,118,111, 62,120,108,152, 62,122, 91, 80, 62, 72, 18,174, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 53, 64, 74, 63, -171, 31,224, 62,224, 19, 69, 63, 24, 68,190, 62, 56, 92, 78, 63,177,114,188, 62,217,106, 81, 63, 14,214,232, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,162,163,104, 62,150,180,182, 62,250, 78,134, 62,148,213,186, 62,184,112,114, 62,248,169,220, 62, - 88, 93, 84, 62, 50,105,228, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,106,154, 93, 63,226, 26,233, 62,196,229, 94, 63, -128,195,224, 62,100,251,101, 63,238,198,227, 62, 46,178,102, 63,100,184,232, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 68,209,249, 61, 70,134,219, 62,108,187, 28, 62, 48, 86,217, 62,128, 1, 33, 62, 70,210,226, 62,120,216,242, 61,124, 40,225, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 21,180, 92, 63,202, 95,173, 62, 68, 32, 97, 63,192, 12,178, 62, 9,215, 94, 63, - 4, 54,186, 62,236, 35, 85, 63,164,201,181, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, - 48,185, 36, 62, 16, 7,166, 62,144,216, 54, 62, 35, 76,163, 62,122, 91, 80, 62, 72, 18,174, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,230, 78, 95, 63, 4,233,189, 62, 32,188, 86, 63, 44, 62,190, 62,236, 35, 85, 63,164,201,181, 62, 9,215, 94, 63, - 4, 54,186, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 78,118, 71, 62, 27, 49,182, 62, - 52,225, 37, 62, 40, 12,179, 62, 60,122, 41, 62, 16, 58,175, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 70,166, 92, 63, - 0,166,197, 62, 32,188, 86, 63, 44, 62,190, 62,230, 78, 95, 63, 4,233,189, 62,226, 13, 95, 63, 37,152,194, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 78,118, 71, 62, 27, 49,182, 62,142,143, 45, 62,237, 37,188, 62, -106,230, 36, 62,222, 27,184, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,248, 90, 95, 63,100,122,207, 62,108,249, 90, 63, - 58,199,212, 62, 32,188, 86, 63, 44, 62,190, 62, 70,166, 92, 63, 0,166,197, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 78,118, 71, 62, 27, 49,182, 62,110, 56, 48, 62,230, 43,205, 62,174,250, 30, 62, 26, 12,198, 62,142,143, 45, 62,237, 37,188, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,196,229, 94, 63,128,195,224, 62,108,249, 90, 63, 58,199,212, 62,248, 90, 95, 63, -100,122,207, 62, 92,104, 98, 63,197,136,215, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62, -110, 56, 48, 62,230, 43,205, 62,108,187, 28, 62, 48, 86,217, 62,212, 59, 15, 62,224, 50,206, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,100,251,101, 63,238,198,227, 62,196,229, 94, 63,128,195,224, 62, 92,104, 98, 63,197,136,215, 62, 71,205,102, 63, -132, 94,219, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62,108,187, 28, 62, 48, 86,217, 62, - 68,209,249, 61, 70,134,219, 62,192,157,244, 61,157,137,209, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, - 14,214,232, 62,108,249, 90, 63, 58,199,212, 62,196,229, 94, 63,128,195,224, 62,106,154, 93, 63,226, 26,233, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,108,187, 28, 62, 48, 86,217, 62,110, 56, 48, 62,230, 43,205, 62, 88, 93, 84, 62, 50,105,228, 62, -128, 1, 33, 62, 70,210,226, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, 14,214,232, 62, 56, 92, 78, 63, -177,114,188, 62, 32,188, 86, 63, 44, 62,190, 62,108,249, 90, 63, 58,199,212, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 78,118, 71, 62, 27, 49,182, 62,162,163,104, 62,150,180,182, 62, 88, 93, 84, 62, 50,105,228, 62,110, 56, 48, 62,230, 43,205, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 56, 92, 78, 63,177,114,188, 62,236, 35, 85, 63,164,201,181, 62, 32,188, 86, 63, - 44, 62,190, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62, -122, 91, 80, 62, 72, 18,174, 62,162,163,104, 62,150,180,182, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 71,205,102, 63,132, 94,219, 62, 92,104, 98, 63,197,136,215, 62,182,109,100, 63,149,255,210, 62, 54, 86,104, 63, -209,241,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,160,107, 7, 62, 34,103,200, 62,212, 59, 15, 62,224, 50,206, 62, -192,157,244, 61,157,137,209, 62, 8, 2,232, 61, 20,214,203, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 92,104, 98, 63, -197,136,215, 62,248, 90, 95, 63,100,122,207, 62,112,206, 97, 63, 10,202,204, 62,182,109,100, 63,149,255,210, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62,174,250, 30, 62, 26, 12,198, 62,212, 59, 15, 62,224, 50,206, 62, -160,107, 7, 62, 34,103,200, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,248, 90, 95, 63,100,122,207, 62, 70,166, 92, 63, - 0,166,197, 62, 82,241, 94, 63, 40,103,198, 62,112,206, 97, 63, 10,202,204, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 20,225, 35, 62, 39, 50,188, 62,142,143, 45, 62,237, 37,188, 62,174,250, 30, 62, 26, 12,198, 62, 64, 68, 21, 62,107, 55,194, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 70,166, 92, 63, 0,166,197, 62,226, 13, 95, 63, 37,152,194, 62,118, 1, 97, 63, - 47,226,195, 62, 82,241, 94, 63, 40,103,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 12, 43, 28, 62,186,177,184, 62, -106,230, 36, 62,222, 27,184, 62,142,143, 45, 62,237, 37,188, 62, 20,225, 35, 62, 39, 50,188, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,226, 13, 95, 63, 37,152,194, 62,230, 78, 95, 63, 4,233,189, 62, 51,113, 97, 63, 92,151,189, 62,118, 1, 97, 63, - 47,226,195, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,104, 67, 29, 62, 58,199,177, 62, 52,225, 37, 62, 40, 12,179, 62, -106,230, 36, 62,222, 27,184, 62, 12, 43, 28, 62,186,177,184, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,230, 78, 95, 63, - 4,233,189, 62, 9,215, 94, 63, 4, 54,186, 62, 96, 69, 96, 63,152,133,187, 62, 51,113, 97, 63, 92,151,189, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,140, 14, 35, 62, 33, 19,176, 62, 60,122, 41, 62, 16, 58,175, 62, 52,225, 37, 62, 40, 12,179, 62, -104, 67, 29, 62, 58,199,177, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 9,215, 94, 63, 4, 54,186, 62, 68, 32, 97, 63, -192, 12,178, 62,112, 91, 98, 63,149,128,182, 62, 96, 69, 96, 63,152,133,187, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -228,107, 29, 62, 95,230,169, 62, 48,185, 36, 62, 16, 7,166, 62, 60,122, 41, 62, 16, 58,175, 62,140, 14, 35, 62, 33, 19,176, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,228,239,107, 63, 62, 59,218, 62, 71,205,102, 63,132, 94,219, 62, 54, 86,104, 63, -209,241,214, 62, 34, 27,109, 63,155,254,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 8, 2,232, 61, 20,214,203, 62, -192,157,244, 61,157,137,209, 62,128, 47,195, 61, 6, 11,207, 62, 36,174,184, 61,216,130,202, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,174,151,113, 63, 26,229,214, 62,228,239,107, 63, 62, 59,218, 62, 34, 27,109, 63,155,254,214, 62, 69,134,113, 63, -156, 82,212, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 36,174,184, 61,216,130,202, 62,128, 47,195, 61, 6, 11,207, 62, - 12,155,135, 61,166, 39,201, 62, 60,114,138, 61, 28, 61,197, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,222, 48,116, 63, -169, 8,209, 62,174,151,113, 63, 26,229,214, 62, 69,134,113, 63,156, 82,212, 62, 42,143,114, 63, 24,168,207, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62, 12,155,135, 61,166, 39,201, 62,160,108, 93, 61, 17,207,190, 62, -184, 85,132, 61, 22,211,189, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 84,225,115, 63,208, 85,198, 62,222, 48,116, 63, -169, 8,209, 62, 42,143,114, 63, 24,168,207, 62,203,125,114, 63, 96,114,200, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -184, 85,132, 61, 22,211,189, 62,160,108, 93, 61, 17,207,190, 62,244,221,134, 61,121,164,175, 62, 16,152,145, 61, 84,214,179, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,198,132,109, 63,182,157,186, 62, 84,225,115, 63,208, 85,198, 62,203,125,114, 63, - 96,114,200, 62,177,192,109, 63,152,240,190, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 16,152,145, 61, 84,214,179, 62, -244,221,134, 61,121,164,175, 62, 40, 91,221, 61, 4,194,167, 62, 64,226,208, 61,232, 58,172, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 68, 32, 97, 63,192, 12,178, 62,198,132,109, 63,182,157,186, 62,177,192,109, 63,152,240,190, 62,112, 91, 98, 63, -149,128,182, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 64,226,208, 61,232, 58,172, 62, 40, 91,221, 61, 4,194,167, 62, - 48,185, 36, 62, 16, 7,166, 62,228,107, 29, 62, 95,230,169, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,118, 1, 97, 63, - 47,226,195, 62, 51,113, 97, 63, 92,151,189, 62,215,139,102, 63, 15,109,193, 62, 54, 47,100, 63,186,115,198, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,104, 67, 29, 62, 58,199,177, 62, 12, 43, 28, 62,186,177,184, 62, - 50, 97, 13, 62, 50, 42,186, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 54, 47,100, 63,186,115,198, 62,215,139,102, 63, - 15,109,193, 62,174,241,105, 63,204, 8,200, 62, 71,233,103, 63,178, 42,204, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -228,171,229, 61, 41, 42,185, 62, 92,169, 5, 62,168,115,179, 62, 50, 97, 13, 62, 50, 42,186, 62, 92,248,243, 61, 96, 22,191, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 71,233,103, 63,178, 42,204, 62,174,241,105, 63,204, 8,200, 62, 51, 37,108, 63, -249, 3,205, 62, 56,212,106, 63, 96,238,208, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62, -228,171,229, 61, 41, 42,185, 62, 92,248,243, 61, 96, 22,191, 62,160,209,211, 61,108,159,195, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 56,212,106, 63, 96,238,208, 62, 51, 37,108, 63,249, 3,205, 62, 56, 73,110, 63,186,119,206, 62, 46,191,109, 63, - 92, 64,210, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,120, 99,202, 61,192, 49,190, 62, -160,209,211, 61,108,159,195, 62,196,129,181, 61,204, 14,196, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 34, 27,109, 63, -155,254,214, 62, 54, 86,104, 63,209,241,214, 62, 56,212,106, 63, 96,238,208, 62, 46,191,109, 63, 92, 64,210, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62, 8, 2,232, 61, 20,214,203, 62, 36,174,184, 61,216,130,202, 62, -196,129,181, 61,204, 14,196, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,182,109,100, 63,149,255,210, 62, 71,233,103, 63, -178, 42,204, 62, 56,212,106, 63, 96,238,208, 62, 54, 86,104, 63,209,241,214, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -160,209,211, 61,108,159,195, 62, 92,248,243, 61, 96, 22,191, 62,160,107, 7, 62, 34,103,200, 62, 8, 2,232, 61, 20,214,203, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,182,109,100, 63,149,255,210, 62,112,206, 97, 63, 10,202,204, 62, 54, 47,100, 63, -186,115,198, 62, 71,233,103, 63,178, 42,204, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 50, 97, 13, 62, 50, 42,186, 62, - 64, 68, 21, 62,107, 55,194, 62,160,107, 7, 62, 34,103,200, 62, 92,248,243, 61, 96, 22,191, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0,118, 1, 97, 63, 47,226,195, 62, 54, 47,100, 63,186,115,198, 62,112,206, 97, 63, 10,202,204, 62, 82,241, 94, 63, - 40,103,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62, 50, 97, 13, 62, 50, 42,186, 62, - 12, 43, 28, 62,186,177,184, 62, 20,225, 35, 62, 39, 50,188, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 96, 69, 96, 63, -152,133,187, 62,112, 91, 98, 63,149,128,182, 62,215,139,102, 63, 15,109,193, 62, 51,113, 97, 63, 92,151,189, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,228,107, 29, 62, 95,230,169, 62,140, 14, 35, 62, 33, 19,176, 62, -104, 67, 29, 62, 58,199,177, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,177,192,109, 63,152,240,190, 62,174,241,105, 63, -204, 8,200, 62,215,139,102, 63, 15,109,193, 62,112, 91, 98, 63,149,128,182, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 92,169, 5, 62,168,115,179, 62,228,171,229, 61, 41, 42,185, 62, 64,226,208, 61,232, 58,172, 62,228,107, 29, 62, 95,230,169, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,203,125,114, 63, 96,114,200, 62, 51, 37,108, 63,249, 3,205, 62,174,241,105, 63, -204, 8,200, 62,177,192,109, 63,152,240,190, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62, -120, 99,202, 61,192, 49,190, 62, 16,152,145, 61, 84,214,179, 62, 64,226,208, 61,232, 58,172, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 42,143,114, 63, 24,168,207, 62, 56, 73,110, 63,186,119,206, 62, 51, 37,108, 63,249, 3,205, 62,203,125,114, 63, - 96,114,200, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62,244,234,179, 61,240,219,190, 62, -184, 85,132, 61, 22,211,189, 62, 16,152,145, 61, 84,214,179, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 69,134,113, 63, -156, 82,212, 62, 46,191,109, 63, 92, 64,210, 62, 56, 73,110, 63,186,119,206, 62, 42,143,114, 63, 24,168,207, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,196,129,181, 61,204, 14,196, 62, 60,114,138, 61, 28, 61,197, 62, -184, 85,132, 61, 22,211,189, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 34, 27,109, 63,155,254,214, 62, 46,191,109, 63, - 92, 64,210, 62, 69,134,113, 63,156, 82,212, 62, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, - 60,114,138, 61, 28, 61,197, 62,196,129,181, 61,204, 14,196, 62, 36,174,184, 61,216,130,202, 62, 0, 0,128, 63, 0, 0,128, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 84,190,110, 63,223, 77,172, 62,151, 5, 90, 63,138, 61,167, 62, 22, 25, 96, 63, -246,248,149, 62,162,176,122, 63,145,215,161, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0, 64,234, 54, 62,146,219,140, 62, -194,251, 66, 62,163,102,158, 62, 8, 66,246, 61, 28,161,152, 62,172,241,189, 61, 13,107,132, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0, 0, 0, 49, 12,122, 63,246, 8,197, 62, 84,190,110, 63,223, 77,172, 62,162,176,122, 63,145,215,161, 62,188,255,126, 63, -115,248,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0,172,241,189, 61, 13,107,132, 62, 8, 66,246, 61, 28,161,152, 62, -240, 54, 16, 61,120, 4,167, 62, 0, 8,163, 58, 39, 69,162, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0,183,115,119, 63, -140, 49,215, 62, 49, 12,122, 63,246, 8,197, 62,188,255,126, 63,115,248,198, 62, 47, 6,122, 63,248,157,216, 62, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0, 0, 0, 0, 8,163, 58, 39, 69,162, 62,240, 54, 16, 61,120, 4,167, 62,224,111,231, 60,100,142,198, 62, -224,248, 14, 60, 70,141,198, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, 41, 76,116, 63,139,153,222, 62,183,115,119, 63, -140, 49,215, 62, 47, 6,122, 63,248,157,216, 62,134, 98,119, 63,204, 37,225, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, -224,248, 14, 60, 70,141,198, 62,224,111,231, 60,100,142,198, 62,128,183, 73, 61, 84,108,213, 62, 80,210,229, 60, 32,239,218, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0, 31,178,109, 63,224, 68,228, 62, 41, 76,116, 63,139,153,222, 62,134, 98,119, 63, -204, 37,225, 62, 46,185,115, 63, 90,157,234, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,128, 0, 80,210,229, 60, 32,239,218, 62, -128,183, 73, 61, 84,108,213, 62, 28, 27,177, 61, 42,240,219, 62, 56,103,122, 61, 30, 10,230, 62, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0,128, 0, 46,178,102, 63,100,184,232, 62, 31,178,109, 63,224, 68,228, 62, 46,185,115, 63, 90,157,234, 62,244,134,106, 63, -234, 64,246, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 56,103,122, 61, 30, 10,230, 62, 28, 27,177, 61, 42,240,219, 62, -120,216,242, 61,124, 40,225, 62,212,222,209, 61,238,123,240, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0,235,188, 5, 63, -252, 74, 98, 63,200,111,248, 62,197,105,112, 63, 0, 49,231, 62,118,190,107, 63,150, 57,255, 62, 53, 14, 96, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0, 80, 99, 95, 62,149,194, 94, 63, 58, 8, 62, 62, 10,154, 89, 63, 40, 24, 92, 62, 14, 82, 74, 63, -112, 11,112, 62,157,133, 78, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,235,188, 5, 63,252, 74, 98, 63,136,139, 12, 63, -138,233,101, 63,116, 45, 6, 63,112,245,113, 63,200,111,248, 62,197,105,112, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0, - 68,219, 36, 62,249,186, 81, 63, 28,254, 65, 62, 20, 55, 70, 63, 40, 24, 92, 62, 14, 82, 74, 63, 58, 8, 62, 62, 10,154, 89, 63, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,136,139, 12, 63,138,233,101, 63, 5,130, 12, 63,149,216,108, 63,116, 45, 6, 63, -112,245,113, 63, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,112, 0, 68,219, 36, 62,249,186, 81, 63, - 76, 1, 42, 62, 39,178, 73, 63, 28,254, 65, 62, 20, 55, 70, 63, 0, 0,128, 63, 0, 0,128, 63, 56, 82,179, 3, 1, 0, 5, 0, - 0, 0,112, 0,120, 89,103, 63,105, 76, 2, 63,106,154, 93, 63,226, 26,233, 62, 46,178,102, 63,100,184,232, 62,244,134,106, 63, -234, 64,246, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,120,216,242, 61,124, 40,225, 62,128, 1, 33, 62, 70,210,226, 62, -116,128,234, 61,200, 39, 0, 63,212,222,209, 61,238,123,240, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 0, 0,226, 44,245, 62, -129,140, 96, 63,150, 57,255, 62, 53, 14, 96, 63, 0, 49,231, 62,118,190,107, 63, 42,135,227, 62, 58, 2,101, 63, 56, 82,179, 3, - 1, 0, 5, 0, 0, 0,240, 0, 80, 99, 95, 62,149,194, 94, 63,112, 11,112, 62,157,133, 78, 63, 74, 84,120, 62,104, 32, 83, 63, -110,103,122, 62,236,255, 92, 63, 56, 82,179, 3, 1, 0, 5, 0, 0, 0,240, 0,216,217, 77, 63, 7,228,157, 62,160,225, 90, 63, -110,121,137, 62, 22, 25, 96, 63,246,248,149, 62,151, 5, 90, 63,138, 61,167, 62, 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 16, 0, - 64,234, 54, 62,146,219,140, 62,166,125, 74, 62,252, 30,130, 62,154,118,111, 62,120,108,152, 62,194,251, 66, 62,163,102,158, 62, - 56, 82,179, 3, 1, 0, 5, 0, 0, 0, 64, 0, 68, 65, 84, 65, 64, 31, 0, 0, 0, 65,182, 3, 59, 0, 0, 0,208, 7, 0, 0, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +211, 1, 0, 0, 0, 0, 34, 0,163, 1, 0, 0,211, 1, 0, 0, 0, 0, 34, 0,164, 1, 0, 0,212, 1, 0, 0, 0, 0, 34, 0, +210, 1, 0, 0,212, 1, 0, 0, 0, 0, 34, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 34, 0,161, 1, 0, 0,213, 1, 0, 0, + 0, 0, 34, 0,162, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,213, 1, 0, 0, +215, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 34, 0,197, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0, +219, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0,199, 1, 0, 0,219, 1, 0, 0, 0, 0, 34, 0,198, 1, 0, 0,222, 1, 0, 0, + 0, 0, 34, 0,200, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,221, 1, 0, 0, +223, 1, 0, 0, 0, 0, 34, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 32, 0,219, 1, 0, 0,225, 1, 0, 0, 0, 0, 34, 0, +222, 1, 0, 0,224, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,226, 1, 0, 0, + 0, 0, 32, 0,223, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,225, 1, 0, 0, +227, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,226, 1, 0, 0,228, 1, 0, 0, 0, 0, 34, 0, +228, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,229, 1, 0, 0,231, 1, 0, 0, 0, 0, 34, 0,231, 1, 0, 0,233, 1, 0, 0, + 0, 0, 34, 0,227, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,228, 1, 0, 0, +234, 1, 0, 0, 0, 0, 34, 0,232, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,217, 1, 0, 0,227, 1, 0, 0, 0, 0, 34, 0, +205, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,218, 1, 0, 0,228, 1, 0, 0, 0, 0, 34, 0,206, 1, 0, 0,234, 1, 0, 0, + 0, 0, 34, 0,193, 1, 0, 0,225, 1, 0, 0, 0, 0, 34, 0,194, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,203, 1, 0, 0, +219, 1, 0, 0, 0, 0, 34, 0,204, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,215, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0, +216, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,213, 1, 0, 0,223, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,224, 1, 0, 0, + 0, 0, 34, 0,211, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,209, 1, 0, 0, +231, 1, 0, 0, 0, 0, 34, 0,210, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,207, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0, +208, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,131, 1, 0, 0,245, 1, 0, 0, 0, 0, 34, 0,243, 1, 0, 0,245, 1, 0, 0, + 0, 0, 39, 0,133, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,132, 1, 0, 0,246, 1, 0, 0, 0, 0, 34, 0,134, 1, 0, 0, +244, 1, 0, 0, 0, 0, 34, 0,244, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 39, 0, +135, 1, 0, 0,241, 1, 0, 0, 0, 0, 34, 0,136, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0,242, 1, 0, 0,244, 1, 0, 0, + 0, 0, 39, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 39, 0,137, 1, 0, 0,239, 1, 0, 0, 0, 0, 34, 0,138, 1, 0, 0, +240, 1, 0, 0, 0, 0, 34, 0,240, 1, 0, 0,242, 1, 0, 0, 0, 0, 39, 0,237, 1, 0, 0,239, 1, 0, 0, 0, 0, 39, 0, +139, 1, 0, 0,237, 1, 0, 0, 0, 0, 34, 0,140, 1, 0, 0,238, 1, 0, 0, 0, 0, 34, 0,238, 1, 0, 0,240, 1, 0, 0, + 0, 0, 39, 0,235, 1, 0, 0,237, 1, 0, 0, 0, 0, 39, 0,141, 1, 0, 0,235, 1, 0, 0, 0, 0, 34, 0,142, 1, 0, 0, +236, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 39, 0,235, 1, 0, 0,247, 1, 0, 0, 0, 0, 39, 0, +129, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,130, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,248, 1, 0, 0, + 0, 0, 39, 0,235, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0, +244, 1, 0, 0, 0, 0, 34, 0,246, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,237, 1, 0, 0,241, 1, 0, 0, 0, 0, 34, 0, +238, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0,247, 1, 0, 0, 0, 0, 39, 0, 56, 1, 0, 0,248, 1, 0, 0, + 0, 0, 39, 0, 63, 1, 0, 0,245, 1, 0, 0, 0, 0, 39, 0, 64, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0, 14, 0, 0, 0, +249, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,178, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, + 14, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0,112, 0, 0, 0, + 0, 0, 34, 0, 9, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, +104, 1, 0, 0,136,197, 52, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,199, 52, 3, 0, 0, 0, 0, 5, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101, +120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,238, 52, 3, + 0, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 76, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 39, 0, 0, 56,199, 52, 3, 0, 0, 0, 0, 48, 0, 0, 0,244, 1, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 43, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0, 0, 0, 46, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 1, 43, 0, 0, 0, + 2, 0, 0, 0, 4, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 3, 0, 0, 0, 44, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 0, 1, 2, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 7, 0, 0, 0, 9, 0, 0, 0, + 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, + 9, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 10, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 1,112, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 8, 0, 0, 0, + 14, 0, 0, 0, 15, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1, 16, 0, 0, 0,112, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 1, 14, 0, 0, 0, 19, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 18, 0, 0, 0, 20, 0, 0, 0, +112, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 1, + 20, 0, 0, 0, 22, 0, 0, 0, 13, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 1, 21, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 1, 26, 0, 0, 0, 24, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 19, 0, 0, 0, + 25, 0, 0, 0, 27, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 28, 0, 0, 0, 26, 0, 0, 0, 20, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 1, 25, 0, 0, 0, 31, 0, 0, 0, 29, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 1, 30, 0, 0, 0, 32, 0, 0, 0, + 26, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 23, 0, 0, 0, 33, 0, 0, 0, 31, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 1, + 32, 0, 0, 0, 34, 0, 0, 0, 24, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 1, 33, 0, 0, 0, 35, 0, 0, 0, 37, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 36, 0, 0, 0, 34, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 1, 31, 0, 0, 0, + 37, 0, 0, 0, 39, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 38, 0, 0, 0, 32, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 1, 37, 0, 0, 0, 43, 0, 0, 0, 41, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 1, 42, 0, 0, 0, 44, 0, 0, 0, + 38, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 1, 35, 0, 0, 0, 45, 0, 0, 0, 43, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 1, + 44, 0, 0, 0, 46, 0, 0, 0, 36, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 45, 0, 0, 0, 35, 0, 0, 0, 49, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 36, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 1, 35, 0, 0, 0, + 33, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 1, 52, 0, 0, 0, 34, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 1, 33, 0, 0, 0, 23, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 1, 54, 0, 0, 0, 24, 0, 0, 0, + 34, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 1, 23, 0, 0, 0, 21, 0, 0, 0, 55, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 1, + 56, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 1, 21, 0, 0, 0, 12, 0, 0, 0, 57, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 1, 58, 0, 0, 0, 13, 0, 0, 0, 22, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 0, + 10, 0, 0, 0, 61, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 1, 62, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 1, 10, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 1, 0, 0, 0, + 11, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 45, 0, 0, 0, 47, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 1, + 48, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 63, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 48, 0, 0, 0, 64, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 61, 0, 0, 0, + 63, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60, 0, 0, 0, 64, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 59, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 62, 0, 0, 0, 58, 0, 0, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 55, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 58, 0, 0, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 53, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 54, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, + 51, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 54, 0, 0, 0, 52, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 59, 0, 0, 0, 49, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 52, 0, 0, 0, 50, 0, 0, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 0, 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 50, 0, 0, 0, 48, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 87, 0, 0, 0,171, 0, 0, 0,173, 0, 0, 0, + 89, 0, 0, 0, 0, 0, 0, 1,173, 0, 0, 0,172, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, +169, 0, 0, 0,171, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 1,172, 0, 0, 0,170, 0, 0, 0, 86, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 1, 83, 0, 0, 0,167, 0, 0, 0,169, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 1,170, 0, 0, 0,168, 0, 0, 0, + 84, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0,165, 0, 0, 0,167, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 1, +168, 0, 0, 0,166, 0, 0, 0, 82, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0,163, 0, 0, 0,165, 0, 0, 0, + 81, 0, 0, 0, 0, 0, 0, 1,166, 0, 0, 0,164, 0, 0, 0, 80, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, + 90, 0, 0, 0,143, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 1,144, 0, 0, 0, 91, 0, 0, 0, 78, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 1, 90, 0, 0, 0, 92, 0, 0, 0,145, 0, 0, 0,143, 0, 0, 0, 0, 0, 0, 1,146, 0, 0, 0, 93, 0, 0, 0, + 91, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 1, 92, 0, 0, 0, 94, 0, 0, 0,147, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 1, +148, 0, 0, 0, 95, 0, 0, 0, 93, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 1, 94, 0, 0, 0, 96, 0, 0, 0,149, 0, 0, 0, +147, 0, 0, 0, 0, 0, 0, 1,150, 0, 0, 0, 97, 0, 0, 0, 95, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 1, 96, 0, 0, 0, + 98, 0, 0, 0,151, 0, 0, 0,149, 0, 0, 0, 0, 0, 0, 1,152, 0, 0, 0, 99, 0, 0, 0, 97, 0, 0, 0,150, 0, 0, 0, + 0, 0, 0, 1, 98, 0, 0, 0,100, 0, 0, 0,153, 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 1,154, 0, 0, 0,101, 0, 0, 0, + 99, 0, 0, 0,152, 0, 0, 0, 0, 0, 0, 1,100, 0, 0, 0,102, 0, 0, 0,155, 0, 0, 0,153, 0, 0, 0, 0, 0, 0, 1, +156, 0, 0, 0,103, 0, 0, 0,101, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 1,102, 0, 0, 0,104, 0, 0, 0,157, 0, 0, 0, +155, 0, 0, 0, 0, 0, 0, 1,158, 0, 0, 0,105, 0, 0, 0,103, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 1,104, 0, 0, 0, +106, 0, 0, 0,159, 0, 0, 0,157, 0, 0, 0, 0, 0, 0, 1,160, 0, 0, 0,107, 0, 0, 0,105, 0, 0, 0,158, 0, 0, 0, + 0, 0, 0, 1,106, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 1, 66, 0, 0, 0, 65, 0, 0, 0, +107, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0,125, 0, 0, 0,157, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 1, +158, 0, 0, 0,126, 0, 0, 0,109, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 0,176, 0, 0, 0,155, 0, 0, 0, +157, 0, 0, 0, 0, 0, 0, 1,156, 0, 0, 0,177, 0, 0, 0,126, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 1,123, 0, 0, 0, +153, 0, 0, 0,155, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 1,156, 0, 0, 0,154, 0, 0, 0,124, 0, 0, 0,177, 0, 0, 0, + 0, 0, 0, 1,121, 0, 0, 0,151, 0, 0, 0,153, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 1,154, 0, 0, 0,152, 0, 0, 0, +122, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 1,119, 0, 0, 0,149, 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, 0, 0, 0, 1, +152, 0, 0, 0,150, 0, 0, 0,120, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0,147, 0, 0, 0,149, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 1,150, 0, 0, 0,148, 0, 0, 0,118, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 1,115, 0, 0, 0, +145, 0, 0, 0,147, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 1,148, 0, 0, 0,146, 0, 0, 0,116, 0, 0, 0,118, 0, 0, 0, + 0, 0, 0, 1,113, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 1,146, 0, 0, 0,144, 0, 0, 0, +114, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0,161, 0, 0, 0,143, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 1, +144, 0, 0, 0,162, 0, 0, 0,112, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0,178, 0, 0, 0,174, 0, 0, 0, +161, 0, 0, 0, 0, 0, 0, 1,174, 0, 0, 0,179, 0, 0, 0,112, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0, +159, 0, 0, 0, 66, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 1, 66, 0, 0, 0,160, 0, 0, 0,109, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 1,110, 0, 0, 0, 66, 0, 0, 0,175, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 1,175, 0, 0, 0, 66, 0, 0, 0, +111, 0, 0, 0,181, 0, 0, 0, 0, 0, 0, 1,174, 0, 0, 0,178, 0, 0, 0,180, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 1, +181, 0, 0, 0,179, 0, 0, 0,174, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 1,132, 0, 0, 0,134, 0, 0, 0,173, 0, 0, 0, +171, 0, 0, 0, 0, 0, 0, 1,173, 0, 0, 0,134, 0, 0, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 1,130, 0, 0, 0, +132, 0, 0, 0,171, 0, 0, 0,169, 0, 0, 0, 0, 0, 0, 1,172, 0, 0, 0,133, 0, 0, 0,131, 0, 0, 0,170, 0, 0, 0, + 0, 0, 0, 1,128, 0, 0, 0,130, 0, 0, 0,169, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 1,170, 0, 0, 0,131, 0, 0, 0, +129, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 1,163, 0, 0, 0,184, 0, 0, 0,182, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 1, +183, 0, 0, 0,185, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,167, 0, 0, 0,165, 0, 0, 0, +182, 0, 0, 0, 0, 0, 0, 1,166, 0, 0, 0,168, 0, 0, 0,129, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, +187, 0, 0, 0,186, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 1,186, 0, 0, 0,187, 0, 0, 0,142, 0, 0, 0,185, 0, 0, 0, + 0, 0, 0, 1,182, 0, 0, 0,184, 0, 0, 0,186, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,186, 0, 0, 0,185, 0, 0, 0, +183, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,127, 0, 0, 0,128, 0, 0, 0,182, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1, +183, 0, 0, 0,129, 0, 0, 0,127, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 1,139, 0, 0, 0,190, 0, 0, 0,188, 0, 0, 0, +141, 0, 0, 0, 0, 0, 0, 1,189, 0, 0, 0,191, 0, 0, 0,140, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 1,137, 0, 0, 0, +192, 0, 0, 0,190, 0, 0, 0,139, 0, 0, 0, 0, 0, 0, 1,191, 0, 0, 0,193, 0, 0, 0,138, 0, 0, 0,140, 0, 0, 0, + 0, 0, 0, 1,136, 0, 0, 0,194, 0, 0, 0,192, 0, 0, 0,137, 0, 0, 0, 0, 0, 0, 1,193, 0, 0, 0,195, 0, 0, 0, +136, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 1,135, 0, 0, 0, 69, 0, 0, 0,194, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 1, +195, 0, 0, 0, 69, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 1,187, 0, 0, 0,141, 0, 0, 0,188, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 1,189, 0, 0, 0,142, 0, 0, 0,187, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 1, 68, 0, 0, 0, +188, 0, 0, 0,203, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 1,204, 0, 0, 0,189, 0, 0, 0, 68, 0, 0, 0,205, 0, 0, 0, + 0, 0, 0, 1, 69, 0, 0, 0,196, 0, 0, 0,197, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 1,198, 0, 0, 0,196, 0, 0, 0, + 69, 0, 0, 0,195, 0, 0, 0, 0, 0, 0, 1,194, 0, 0, 0,197, 0, 0, 0,199, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 1, +200, 0, 0, 0,198, 0, 0, 0,195, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 1,192, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0, +190, 0, 0, 0, 0, 0, 0, 1,202, 0, 0, 0,200, 0, 0, 0,193, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 1,190, 0, 0, 0, +201, 0, 0, 0,203, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 1,204, 0, 0, 0,202, 0, 0, 0,191, 0, 0, 0,189, 0, 0, 0, + 0, 0, 0, 1,196, 0, 0, 0,201, 0, 0, 0,199, 0, 0, 0,197, 0, 0, 0, 0, 0, 0, 1,200, 0, 0, 0,202, 0, 0, 0, +196, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 1,196, 0, 0, 0,205, 0, 0, 0,203, 0, 0, 0,201, 0, 0, 0, 0, 0, 0, 1, +204, 0, 0, 0,205, 0, 0, 0,196, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 1,136, 0, 0, 0,137, 0, 0, 0,161, 0, 0, 0, +174, 0, 0, 0, 0, 0, 0, 1,162, 0, 0, 0,138, 0, 0, 0,136, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 1,137, 0, 0, 0, +139, 0, 0, 0,208, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0,140, 0, 0, 0,138, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 1,139, 0, 0, 0,141, 0, 0, 0,210, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 1,211, 0, 0, 0,142, 0, 0, 0, +140, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0,184, 0, 0, 0,163, 0, 0, 0,210, 0, 0, 0, 0, 0, 0, 1, +164, 0, 0, 0,185, 0, 0, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0,206, 0, 0, 0,210, 0, 0, 0, +163, 0, 0, 0, 0, 0, 0, 1,211, 0, 0, 0,207, 0, 0, 0, 80, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 1,206, 0, 0, 0, +212, 0, 0, 0,208, 0, 0, 0,210, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0,213, 0, 0, 0,207, 0, 0, 0,211, 0, 0, 0, + 0, 0, 0, 1, 77, 0, 0, 0,161, 0, 0, 0,208, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 1,209, 0, 0, 0,162, 0, 0, 0, + 78, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,127, 0, 0, 0, 70, 0, 0, 0,219, 0, 0, 0, 0, 0, 0, 1, + 70, 0, 0, 0,127, 0, 0, 0,129, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,130, 0, 0, 0,128, 0, 0, 0,219, 0, 0, 0, +217, 0, 0, 0, 0, 0, 0, 1,220, 0, 0, 0,129, 0, 0, 0,131, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 1,132, 0, 0, 0, +130, 0, 0, 0,217, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 1,218, 0, 0, 0,131, 0, 0, 0,133, 0, 0, 0,216, 0, 0, 0, + 0, 0, 0, 1,134, 0, 0, 0,132, 0, 0, 0,215, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 1,216, 0, 0, 0,133, 0, 0, 0, +134, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 1,214, 0, 0, 0,215, 0, 0, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 1, +227, 0, 0, 0,216, 0, 0, 0,214, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 1,215, 0, 0, 0,217, 0, 0, 0,224, 0, 0, 0, +226, 0, 0, 0, 0, 0, 0, 1,225, 0, 0, 0,218, 0, 0, 0,216, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 1,217, 0, 0, 0, +219, 0, 0, 0,222, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 1,223, 0, 0, 0,220, 0, 0, 0,218, 0, 0, 0,225, 0, 0, 0, + 0, 0, 0, 1,219, 0, 0, 0, 70, 0, 0, 0,221, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 1,221, 0, 0, 0, 70, 0, 0, 0, +220, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 1,221, 0, 0, 0,228, 0, 0, 0,226, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 1, +227, 0, 0, 0,228, 0, 0, 0,221, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 1,222, 0, 0, 0,226, 0, 0, 0,224, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1,225, 0, 0, 0,227, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,180, 0, 0, 0, +178, 0, 0, 0,231, 0, 0, 0,229, 0, 0, 0, 0, 0, 0, 1,232, 0, 0, 0,179, 0, 0, 0,181, 0, 0, 0,230, 0, 0, 0, + 0, 0, 0, 1,110, 0, 0, 0,180, 0, 0, 0,229, 0, 0, 0,251, 0, 0, 0, 0, 0, 0, 1,230, 0, 0, 0,181, 0, 0, 0, +111, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0,110, 0, 0, 0,251, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 1, +252, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 1,178, 0, 0, 0, 14, 0, 0, 0,249, 0, 0, 0, +231, 0, 0, 0, 0, 0, 0, 1,250, 0, 0, 0,112, 0, 0, 0,179, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, 0, +113, 0, 0, 0,247, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 1,248, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0,250, 0, 0, 0, + 0, 0, 0, 1,113, 0, 0, 0,115, 0, 0, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 1,246, 0, 0, 0,116, 0, 0, 0, +114, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 1,115, 0, 0, 0,117, 0, 0, 0,243, 0, 0, 0,245, 0, 0, 0, 0, 0, 0, 1, +244, 0, 0, 0,118, 0, 0, 0,116, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0,119, 0, 0, 0,241, 0, 0, 0, +243, 0, 0, 0, 0, 0, 0, 1,242, 0, 0, 0,120, 0, 0, 0,118, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 1,119, 0, 0, 0, +121, 0, 0, 0,239, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 1,240, 0, 0, 0,122, 0, 0, 0,120, 0, 0, 0,242, 0, 0, 0, + 0, 0, 0, 1,121, 0, 0, 0,123, 0, 0, 0,237, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 1,238, 0, 0, 0,124, 0, 0, 0, +122, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 1,123, 0, 0, 0,176, 0, 0, 0,233, 0, 0, 0,237, 0, 0, 0, 0, 0, 0, 1, +234, 0, 0, 0,177, 0, 0, 0,124, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 1,176, 0, 0, 0,125, 0, 0, 0,235, 0, 0, 0, +233, 0, 0, 0, 0, 0, 0, 1,236, 0, 0, 0,126, 0, 0, 0,177, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 0, +108, 0, 0, 0,253, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 1,254, 0, 0, 0,109, 0, 0, 0,126, 0, 0, 0,236, 0, 0, 0, + 0, 0, 0, 1,235, 0, 0, 0,253, 0, 0, 0,255, 0, 0, 0, 17, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,254, 0, 0, 0, +236, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 1,233, 0, 0, 0,235, 0, 0, 0, 17, 1, 0, 0, 19, 1, 0, 0, 0, 0, 0, 1, + 18, 1, 0, 0,236, 0, 0, 0,234, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1,237, 0, 0, 0,233, 0, 0, 0, 19, 1, 0, 0, + 15, 1, 0, 0, 0, 0, 0, 1, 20, 1, 0, 0,234, 0, 0, 0,238, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0, 1,239, 0, 0, 0, +237, 0, 0, 0, 15, 1, 0, 0, 13, 1, 0, 0, 0, 0, 0, 1, 16, 1, 0, 0,238, 0, 0, 0,240, 0, 0, 0, 14, 1, 0, 0, + 0, 0, 0, 1,241, 0, 0, 0,239, 0, 0, 0, 13, 1, 0, 0, 11, 1, 0, 0, 0, 0, 0, 1, 14, 1, 0, 0,240, 0, 0, 0, +242, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 1,243, 0, 0, 0,241, 0, 0, 0, 11, 1, 0, 0, 9, 1, 0, 0, 0, 0, 0, 1, + 12, 1, 0, 0,242, 0, 0, 0,244, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 1,245, 0, 0, 0,243, 0, 0, 0, 9, 1, 0, 0, + 7, 1, 0, 0, 0, 0, 0, 1, 10, 1, 0, 0,244, 0, 0, 0,246, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 1,247, 0, 0, 0, +245, 0, 0, 0, 7, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 8, 1, 0, 0,246, 0, 0, 0,248, 0, 0, 0, 6, 1, 0, 0, + 0, 0, 0, 1,249, 0, 0, 0,247, 0, 0, 0, 5, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 1, 6, 1, 0, 0,248, 0, 0, 0, +250, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 1,231, 0, 0, 0,249, 0, 0, 0, 3, 1, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, + 4, 1, 0, 0,250, 0, 0, 0,232, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1,253, 0, 0, 0,251, 0, 0, 0, 1, 1, 0, 0, +255, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0,252, 0, 0, 0,254, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,251, 0, 0, 0, +229, 0, 0, 0, 23, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 24, 1, 0, 0,230, 0, 0, 0,252, 0, 0, 0, 2, 1, 0, 0, + 0, 0, 0, 1,229, 0, 0, 0,231, 0, 0, 0, 21, 1, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 22, 1, 0, 0,232, 0, 0, 0, +230, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 1, 65, 0, 0, 0,106, 0, 0, 0, 25, 1, 0, 0, 71, 0, 0, 0, 0, 0, 0, 1, + 26, 1, 0, 0,107, 0, 0, 0, 65, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 1,106, 0, 0, 0,104, 0, 0, 0, 27, 1, 0, 0, + 25, 1, 0, 0, 0, 0, 0, 1, 28, 1, 0, 0,105, 0, 0, 0,107, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 1,104, 0, 0, 0, +102, 0, 0, 0, 29, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 1, 30, 1, 0, 0,103, 0, 0, 0,105, 0, 0, 0, 28, 1, 0, 0, + 0, 0, 0, 1,102, 0, 0, 0,100, 0, 0, 0, 31, 1, 0, 0, 29, 1, 0, 0, 0, 0, 0, 1, 32, 1, 0, 0,101, 0, 0, 0, +103, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 1,100, 0, 0, 0, 98, 0, 0, 0, 33, 1, 0, 0, 31, 1, 0, 0, 0, 0, 0, 1, + 34, 1, 0, 0, 99, 0, 0, 0,101, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 1, 98, 0, 0, 0, 96, 0, 0, 0, 35, 1, 0, 0, + 33, 1, 0, 0, 0, 0, 0, 1, 36, 1, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 1, 96, 0, 0, 0, + 94, 0, 0, 0, 37, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 1, 38, 1, 0, 0, 95, 0, 0, 0, 97, 0, 0, 0, 36, 1, 0, 0, + 0, 0, 0, 1, 94, 0, 0, 0, 92, 0, 0, 0, 39, 1, 0, 0, 37, 1, 0, 0, 0, 0, 0, 1, 40, 1, 0, 0, 93, 0, 0, 0, + 95, 0, 0, 0, 38, 1, 0, 0, 0, 0, 0, 1, 92, 0, 0, 0, 90, 0, 0, 0, 41, 1, 0, 0, 39, 1, 0, 0, 0, 0, 0, 1, + 42, 1, 0, 0, 91, 0, 0, 0, 93, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 49, 1, 0, 0, 50, 1, 0, 0, 69, 1, 0, 0, + 79, 1, 0, 0, 0, 0, 0, 1, 70, 1, 0, 0, 50, 1, 0, 0, 49, 1, 0, 0, 80, 1, 0, 0, 0, 0, 0, 1, 48, 1, 0, 0, + 49, 1, 0, 0, 79, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 1, 80, 1, 0, 0, 49, 1, 0, 0, 48, 1, 0, 0, 78, 1, 0, 0, + 0, 0, 0, 1, 47, 1, 0, 0, 48, 1, 0, 0, 77, 1, 0, 0, 81, 1, 0, 0, 0, 0, 0, 1, 78, 1, 0, 0, 48, 1, 0, 0, + 47, 1, 0, 0, 82, 1, 0, 0, 0, 0, 0, 1, 87, 0, 0, 0, 89, 0, 0, 0, 47, 1, 0, 0, 81, 1, 0, 0, 0, 0, 0, 1, + 47, 1, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 87, 0, 0, 0, 81, 1, 0, 0, + 75, 1, 0, 0, 0, 0, 0, 1, 82, 1, 0, 0, 88, 0, 0, 0, 86, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 1, 83, 0, 0, 0, + 85, 0, 0, 0, 75, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 1, 76, 1, 0, 0, 86, 0, 0, 0, 84, 0, 0, 0, 72, 1, 0, 0, + 0, 0, 0, 1, 81, 0, 0, 0, 83, 0, 0, 0, 71, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 1, 72, 1, 0, 0, 84, 0, 0, 0, + 82, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 1, 71, 1, 0, 0, 77, 1, 0, 0, 79, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 1, + 80, 1, 0, 0, 78, 1, 0, 0, 72, 1, 0, 0, 74, 1, 0, 0, 0, 0, 0, 1, 71, 1, 0, 0, 75, 1, 0, 0, 81, 1, 0, 0, + 77, 1, 0, 0, 0, 0, 0, 1, 82, 1, 0, 0, 76, 1, 0, 0, 72, 1, 0, 0, 78, 1, 0, 0, 0, 0, 0, 1, 67, 1, 0, 0, + 73, 1, 0, 0, 79, 1, 0, 0, 69, 1, 0, 0, 0, 0, 0, 1, 80, 1, 0, 0, 74, 1, 0, 0, 68, 1, 0, 0, 70, 1, 0, 0, + 0, 0, 0, 1, 79, 0, 0, 0, 81, 0, 0, 0, 73, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 1, 74, 1, 0, 0, 82, 0, 0, 0, + 80, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 1,206, 0, 0, 0, 83, 1, 0, 0, 85, 1, 0, 0,212, 0, 0, 0, 0, 0, 0, 1, + 86, 1, 0, 0, 84, 1, 0, 0,207, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 1, 79, 0, 0, 0, 67, 1, 0, 0, 83, 1, 0, 0, +206, 0, 0, 0, 0, 0, 0, 1, 84, 1, 0, 0, 68, 1, 0, 0, 80, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, +212, 0, 0, 0, 85, 1, 0, 0, 87, 1, 0, 0, 0, 0, 0, 1, 86, 1, 0, 0,213, 0, 0, 0, 78, 0, 0, 0, 88, 1, 0, 0, + 0, 0, 0, 1, 77, 0, 0, 0, 87, 1, 0, 0, 41, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0, 1, 42, 1, 0, 0, 88, 1, 0, 0, + 78, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 1, 75, 0, 0, 0, 65, 1, 0, 0, 93, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, + 94, 1, 0, 0, 66, 1, 0, 0, 75, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 45, 1, 0, 0, 93, 1, 0, 0, 91, 1, 0, 0, + 76, 0, 0, 0, 0, 0, 0, 1, 92, 1, 0, 0, 94, 1, 0, 0, 45, 1, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, + 91, 1, 0, 0, 89, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 1, 90, 1, 0, 0, 92, 1, 0, 0, 76, 0, 0, 0, 46, 1, 0, 0, + 0, 0, 0, 1, 46, 1, 0, 0, 89, 1, 0, 0, 69, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 1, 70, 1, 0, 0, 90, 1, 0, 0, + 46, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 1, 67, 1, 0, 0, 69, 1, 0, 0, 89, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, + 90, 1, 0, 0, 70, 1, 0, 0, 68, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 1, 37, 1, 0, 0, 39, 1, 0, 0, 59, 1, 0, 0, + 51, 1, 0, 0, 0, 0, 0, 1, 60, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 1, 74, 0, 0, 0, + 57, 1, 0, 0, 65, 1, 0, 0, 75, 0, 0, 0, 0, 0, 0, 1, 66, 1, 0, 0, 58, 1, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, + 0, 0, 0, 1, 43, 1, 0, 0, 99, 1, 0, 0, 97, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 1, 98, 1, 0, 0,100, 1, 0, 0, + 43, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 1, 44, 1, 0, 0, 97, 1, 0, 0, 95, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 1, + 96, 1, 0, 0, 98, 1, 0, 0, 44, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 95, 1, 0, 0, 57, 1, 0, 0, + 74, 0, 0, 0, 0, 0, 0, 1, 58, 1, 0, 0, 96, 1, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 1, 33, 1, 0, 0, + 35, 1, 0, 0,103, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 1,104, 1, 0, 0, 36, 1, 0, 0, 34, 1, 0, 0,106, 1, 0, 0, + 0, 0, 0, 1,105, 1, 0, 0,103, 1, 0, 0,109, 1, 0, 0,107, 1, 0, 0, 0, 0, 0, 1,110, 1, 0, 0,104, 1, 0, 0, +106, 1, 0, 0,108, 1, 0, 0, 0, 0, 0, 1,107, 1, 0, 0,109, 1, 0, 0,111, 1, 0, 0,113, 1, 0, 0, 0, 0, 0, 1, +112, 1, 0, 0,110, 1, 0, 0,108, 1, 0, 0,114, 1, 0, 0, 0, 0, 0, 1,113, 1, 0, 0,111, 1, 0, 0,117, 1, 0, 0, +115, 1, 0, 0, 0, 0, 0, 1,118, 1, 0, 0,112, 1, 0, 0,114, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0, +119, 1, 0, 0,115, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 1,116, 1, 0, 0,120, 1, 0, 0, 56, 1, 0, 0,118, 1, 0, 0, + 0, 0, 0, 1, 57, 1, 0, 0, 95, 1, 0, 0,115, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 1,116, 1, 0, 0, 96, 1, 0, 0, + 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 1, 95, 1, 0, 0, 97, 1, 0, 0,113, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 1, +114, 1, 0, 0, 98, 1, 0, 0, 96, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 1, 97, 1, 0, 0, 99, 1, 0, 0,107, 1, 0, 0, +113, 1, 0, 0, 0, 0, 0, 1,108, 1, 0, 0,100, 1, 0, 0, 98, 1, 0, 0,114, 1, 0, 0, 0, 0, 0, 1, 99, 1, 0, 0, +101, 1, 0, 0,105, 1, 0, 0,107, 1, 0, 0, 0, 0, 0, 1,106, 1, 0, 0,102, 1, 0, 0,100, 1, 0, 0,108, 1, 0, 0, + 0, 0, 0, 1, 31, 1, 0, 0, 33, 1, 0, 0,105, 1, 0, 0,101, 1, 0, 0, 0, 0, 0, 1,106, 1, 0, 0, 34, 1, 0, 0, + 32, 1, 0, 0,102, 1, 0, 0, 0, 0, 0, 1, 72, 0, 0, 0,101, 1, 0, 0, 99, 1, 0, 0, 43, 1, 0, 0, 0, 0, 0, 1, +100, 1, 0, 0,102, 1, 0, 0, 72, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 1, 25, 1, 0, 0, 27, 1, 0, 0, 29, 1, 0, 0, + 31, 1, 0, 0, 0, 0, 0, 1, 30, 1, 0, 0, 28, 1, 0, 0, 26, 1, 0, 0, 32, 1, 0, 0, 0, 0, 0, 1, 25, 1, 0, 0, + 31, 1, 0, 0,101, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 1,102, 1, 0, 0, 32, 1, 0, 0, 26, 1, 0, 0, 72, 0, 0, 0, + 0, 0, 0, 1, 71, 0, 0, 0, 25, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 72, 0, 0, 0, 26, 1, 0, 0, + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35, 1, 0, 0, 37, 1, 0, 0, 51, 1, 0, 0,103, 1, 0, 0, 0, 0, 0, 1, + 52, 1, 0, 0, 38, 1, 0, 0, 36, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 1, 51, 1, 0, 0, 53, 1, 0, 0,109, 1, 0, 0, +103, 1, 0, 0, 0, 0, 0, 1,110, 1, 0, 0, 54, 1, 0, 0, 52, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 1, 53, 1, 0, 0, +123, 1, 0, 0,111, 1, 0, 0,109, 1, 0, 0, 0, 0, 0, 1,112, 1, 0, 0,124, 1, 0, 0, 54, 1, 0, 0,110, 1, 0, 0, + 0, 0, 0, 1, 55, 1, 0, 0,117, 1, 0, 0,111, 1, 0, 0,123, 1, 0, 0, 0, 0, 0, 1,112, 1, 0, 0,118, 1, 0, 0, + 56, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 1, 89, 1, 0, 0, 91, 1, 0, 0,127, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 1, +128, 1, 0, 0, 92, 1, 0, 0, 90, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 1, 59, 1, 0, 0,125, 1, 0, 0,127, 1, 0, 0, + 61, 1, 0, 0, 0, 0, 0, 1,128, 1, 0, 0,126, 1, 0, 0, 60, 1, 0, 0, 62, 1, 0, 0, 0, 0, 0, 1, 39, 1, 0, 0, + 41, 1, 0, 0,125, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1,126, 1, 0, 0, 42, 1, 0, 0, 40, 1, 0, 0, 60, 1, 0, 0, + 0, 0, 0, 1, 41, 1, 0, 0, 85, 1, 0, 0, 83, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 1, 84, 1, 0, 0, 86, 1, 0, 0, + 42, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 1, 83, 1, 0, 0, 89, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, +126, 1, 0, 0, 90, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 1, 0, 0, 87, 1, 0, 0, 85, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 86, 1, 0, 0, 88, 1, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0, + 63, 1, 0, 0,121, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0, 64, 1, 0, 0, 56, 1, 0, 0,120, 1, 0, 0, + 0, 0, 0, 1, 57, 1, 0, 0,119, 1, 0, 0,121, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0,120, 1, 0, 0, + 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 1, 61, 1, 0, 0,127, 1, 0, 0,121, 1, 0, 0, 63, 1, 0, 0, 0, 0, 0, 1, +122, 1, 0, 0,128, 1, 0, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 1, 91, 1, 0, 0, 93, 1, 0, 0,121, 1, 0, 0, +127, 1, 0, 0, 0, 0, 0, 1,122, 1, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0,128, 1, 0, 0, 0, 0, 0, 1, 65, 1, 0, 0, +121, 1, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 1, 0, 0,122, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1,141, 1, 0, 0,129, 1, 0, 0,155, 1, 0, 0,143, 1, 0, 0, 0, 0, 0, 1,156, 1, 0, 0,130, 1, 0, 0, +142, 1, 0, 0,144, 1, 0, 0, 0, 0, 0, 1,141, 1, 0, 0,143, 1, 0, 0,145, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 1, +146, 1, 0, 0,144, 1, 0, 0,142, 1, 0, 0,140, 1, 0, 0, 0, 0, 0, 1,139, 1, 0, 0,145, 1, 0, 0,147, 1, 0, 0, +137, 1, 0, 0, 0, 0, 0, 1,148, 1, 0, 0,146, 1, 0, 0,140, 1, 0, 0,138, 1, 0, 0, 0, 0, 0, 1,137, 1, 0, 0, +147, 1, 0, 0,149, 1, 0, 0,135, 1, 0, 0, 0, 0, 0, 1,150, 1, 0, 0,148, 1, 0, 0,138, 1, 0, 0,136, 1, 0, 0, + 0, 0, 0, 1,135, 1, 0, 0,149, 1, 0, 0,151, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 1,152, 1, 0, 0,150, 1, 0, 0, +136, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 1,133, 1, 0, 0,151, 1, 0, 0,153, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 1, +154, 1, 0, 0,152, 1, 0, 0,134, 1, 0, 0,132, 1, 0, 0, 0, 0, 0, 1,151, 1, 0, 0,161, 1, 0, 0,159, 1, 0, 0, +153, 1, 0, 0, 0, 0, 0, 1,160, 1, 0, 0,162, 1, 0, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 1,149, 1, 0, 0, +163, 1, 0, 0,161, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 1,162, 1, 0, 0,164, 1, 0, 0,150, 1, 0, 0,152, 1, 0, 0, + 0, 0, 0, 1,147, 1, 0, 0,165, 1, 0, 0,163, 1, 0, 0,149, 1, 0, 0, 0, 0, 0, 1,164, 1, 0, 0,166, 1, 0, 0, +148, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 1,145, 1, 0, 0,167, 1, 0, 0,165, 1, 0, 0,147, 1, 0, 0, 0, 0, 0, 1, +166, 1, 0, 0,168, 1, 0, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 1,143, 1, 0, 0,169, 1, 0, 0,167, 1, 0, 0, +145, 1, 0, 0, 0, 0, 0, 1,168, 1, 0, 0,170, 1, 0, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 0, 1,143, 1, 0, 0, +155, 1, 0, 0,157, 1, 0, 0,169, 1, 0, 0, 0, 0, 0, 1,158, 1, 0, 0,156, 1, 0, 0,144, 1, 0, 0,170, 1, 0, 0, + 0, 0, 0, 1, 59, 1, 0, 0, 61, 1, 0, 0,185, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 1,186, 1, 0, 0, 62, 1, 0, 0, + 60, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 1, 61, 1, 0, 0,131, 1, 0, 0,153, 1, 0, 0,185, 1, 0, 0, 0, 0, 0, 1, +154, 1, 0, 0,132, 1, 0, 0, 62, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 1, 51, 1, 0, 0, 59, 1, 0, 0,183, 1, 0, 0, + 53, 1, 0, 0, 0, 0, 0, 1,184, 1, 0, 0, 60, 1, 0, 0, 52, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 1,123, 1, 0, 0, +171, 1, 0, 0,155, 1, 0, 0,129, 1, 0, 0, 0, 0, 0, 1,156, 1, 0, 0,172, 1, 0, 0,124, 1, 0, 0,130, 1, 0, 0, + 0, 0, 0, 1,153, 1, 0, 0,159, 1, 0, 0,181, 1, 0, 0,185, 1, 0, 0, 0, 0, 0, 1,182, 1, 0, 0,160, 1, 0, 0, +154, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 1,179, 1, 0, 0,187, 1, 0, 0,185, 1, 0, 0,181, 1, 0, 0, 0, 0, 0, 1, +186, 1, 0, 0,188, 1, 0, 0,180, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 1,175, 1, 0, 0,187, 1, 0, 0,179, 1, 0, 0, +177, 1, 0, 0, 0, 0, 0, 1,180, 1, 0, 0,188, 1, 0, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 1,173, 1, 0, 0, +189, 1, 0, 0,187, 1, 0, 0,175, 1, 0, 0, 0, 0, 0, 1,188, 1, 0, 0,190, 1, 0, 0,174, 1, 0, 0,176, 1, 0, 0, + 0, 0, 0, 1,171, 1, 0, 0,189, 1, 0, 0,173, 1, 0, 0,191, 1, 0, 0, 0, 0, 0, 1,174, 1, 0, 0,190, 1, 0, 0, +172, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 1,155, 1, 0, 0,171, 1, 0, 0,191, 1, 0, 0,157, 1, 0, 0, 0, 0, 0, 1, +192, 1, 0, 0,172, 1, 0, 0,156, 1, 0, 0,158, 1, 0, 0, 0, 0, 0, 1, 53, 1, 0, 0,189, 1, 0, 0,171, 1, 0, 0, +123, 1, 0, 0, 0, 0, 0, 1,172, 1, 0, 0,190, 1, 0, 0, 54, 1, 0, 0,124, 1, 0, 0, 0, 0, 0, 1, 53, 1, 0, 0, +183, 1, 0, 0,187, 1, 0, 0,189, 1, 0, 0, 0, 0, 0, 1,188, 1, 0, 0,184, 1, 0, 0, 54, 1, 0, 0,190, 1, 0, 0, + 0, 0, 0, 1,183, 1, 0, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,188, 1, 0, 0,186, 1, 0, 0, +184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,157, 1, 0, 0,191, 1, 0, 0,193, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 1, +194, 1, 0, 0,192, 1, 0, 0,158, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 1,191, 1, 0, 0,173, 1, 0, 0,203, 1, 0, 0, +193, 1, 0, 0, 0, 0, 0, 1,204, 1, 0, 0,174, 1, 0, 0,192, 1, 0, 0,194, 1, 0, 0, 0, 0, 0, 1,173, 1, 0, 0, +175, 1, 0, 0,201, 1, 0, 0,203, 1, 0, 0, 0, 0, 0, 1,202, 1, 0, 0,176, 1, 0, 0,174, 1, 0, 0,204, 1, 0, 0, + 0, 0, 0, 1,175, 1, 0, 0,177, 1, 0, 0,199, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 1,200, 1, 0, 0,178, 1, 0, 0, +176, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 1,177, 1, 0, 0,179, 1, 0, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 1, +198, 1, 0, 0,180, 1, 0, 0,178, 1, 0, 0,200, 1, 0, 0, 0, 0, 0, 1,179, 1, 0, 0,181, 1, 0, 0,195, 1, 0, 0, +197, 1, 0, 0, 0, 0, 0, 1,196, 1, 0, 0,182, 1, 0, 0,180, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 1,181, 1, 0, 0, +159, 1, 0, 0,215, 1, 0, 0,195, 1, 0, 0, 0, 0, 0, 1,216, 1, 0, 0,160, 1, 0, 0,182, 1, 0, 0,196, 1, 0, 0, + 0, 0, 0, 1,169, 1, 0, 0,157, 1, 0, 0,217, 1, 0, 0,205, 1, 0, 0, 0, 0, 0, 1,218, 1, 0, 0,158, 1, 0, 0, +170, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 1,167, 1, 0, 0,169, 1, 0, 0,205, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 1, +206, 1, 0, 0,170, 1, 0, 0,168, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 1,165, 1, 0, 0,167, 1, 0, 0,207, 1, 0, 0, +209, 1, 0, 0, 0, 0, 0, 1,208, 1, 0, 0,168, 1, 0, 0,166, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 1,163, 1, 0, 0, +165, 1, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 1,210, 1, 0, 0,166, 1, 0, 0,164, 1, 0, 0,212, 1, 0, 0, + 0, 0, 0, 1,161, 1, 0, 0,163, 1, 0, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 1,212, 1, 0, 0,164, 1, 0, 0, +162, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 1,159, 1, 0, 0,161, 1, 0, 0,213, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 1, +214, 1, 0, 0,162, 1, 0, 0,160, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 1,199, 1, 0, 0,197, 1, 0, 0,221, 1, 0, 0, +219, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,198, 1, 0, 0,200, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 1,219, 1, 0, 0, +221, 1, 0, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 0, 1,224, 1, 0, 0,222, 1, 0, 0,220, 1, 0, 0,226, 1, 0, 0, + 0, 0, 0, 1,225, 1, 0, 0,223, 1, 0, 0,229, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 1,230, 1, 0, 0,224, 1, 0, 0, +226, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 1,227, 1, 0, 0,229, 1, 0, 0,231, 1, 0, 0,233, 1, 0, 0, 0, 0, 0, 1, +232, 1, 0, 0,230, 1, 0, 0,228, 1, 0, 0,234, 1, 0, 0, 0, 0, 0, 1,205, 1, 0, 0,217, 1, 0, 0,227, 1, 0, 0, +233, 1, 0, 0, 0, 0, 0, 1,228, 1, 0, 0,218, 1, 0, 0,206, 1, 0, 0,234, 1, 0, 0, 0, 0, 0, 1,193, 1, 0, 0, +225, 1, 0, 0,227, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 1,228, 1, 0, 0,226, 1, 0, 0,194, 1, 0, 0,218, 1, 0, 0, + 0, 0, 0, 1,193, 1, 0, 0,203, 1, 0, 0,219, 1, 0, 0,225, 1, 0, 0, 0, 0, 0, 1,220, 1, 0, 0,204, 1, 0, 0, +194, 1, 0, 0,226, 1, 0, 0, 0, 0, 0, 1,199, 1, 0, 0,219, 1, 0, 0,203, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 1, +204, 1, 0, 0,220, 1, 0, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 1,195, 1, 0, 0,215, 1, 0, 0,221, 1, 0, 0, +197, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,216, 1, 0, 0,196, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 1,213, 1, 0, 0, +223, 1, 0, 0,221, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 1,222, 1, 0, 0,224, 1, 0, 0,214, 1, 0, 0,216, 1, 0, 0, + 0, 0, 0, 1,211, 1, 0, 0,229, 1, 0, 0,223, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 1,224, 1, 0, 0,230, 1, 0, 0, +212, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 1,209, 1, 0, 0,231, 1, 0, 0,229, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 1, +230, 1, 0, 0,232, 1, 0, 0,210, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 1,207, 1, 0, 0,233, 1, 0, 0,231, 1, 0, 0, +209, 1, 0, 0, 0, 0, 0, 1,232, 1, 0, 0,234, 1, 0, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 1,205, 1, 0, 0, +233, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,208, 1, 0, 0,234, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1,133, 1, 0, 0,131, 1, 0, 0,245, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0,132, 1, 0, 0, +134, 1, 0, 0,244, 1, 0, 0, 0, 0, 0, 1,135, 1, 0, 0,133, 1, 0, 0,243, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 1, +244, 1, 0, 0,134, 1, 0, 0,136, 1, 0, 0,242, 1, 0, 0, 0, 0, 0, 1,137, 1, 0, 0,135, 1, 0, 0,241, 1, 0, 0, +239, 1, 0, 0, 0, 0, 0, 1,242, 1, 0, 0,136, 1, 0, 0,138, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 1,139, 1, 0, 0, +137, 1, 0, 0,239, 1, 0, 0,237, 1, 0, 0, 0, 0, 0, 1,240, 1, 0, 0,138, 1, 0, 0,140, 1, 0, 0,238, 1, 0, 0, + 0, 0, 0, 1,141, 1, 0, 0,139, 1, 0, 0,237, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 1,238, 1, 0, 0,140, 1, 0, 0, +142, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 1,129, 1, 0, 0,141, 1, 0, 0,235, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 1, +236, 1, 0, 0,142, 1, 0, 0,130, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1,235, 1, 0, 0,243, 1, 0, 0,245, 1, 0, 0, +247, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0,244, 1, 0, 0,236, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1,235, 1, 0, 0, +237, 1, 0, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 1,242, 1, 0, 0,238, 1, 0, 0,236, 1, 0, 0,244, 1, 0, 0, + 0, 0, 0, 1,237, 1, 0, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,242, 1, 0, 0,240, 1, 0, 0, +238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0,123, 1, 0, 0,129, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 1, +130, 1, 0, 0,124, 1, 0, 0, 56, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 1, 55, 1, 0, 0,247, 1, 0, 0,245, 1, 0, 0, + 63, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0,248, 1, 0, 0, 56, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 1, 61, 1, 0, 0, + 63, 1, 0, 0,245, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 1,246, 1, 0, 0, 64, 1, 0, 0, 62, 1, 0, 0,132, 1, 0, 0, + 0, 0, 0, 1, 68, 65, 84, 65,192, 93, 0, 0,152,238, 52, 3, 0, 0, 0, 0, 59, 0, 0, 0,244, 1, 0, 0, 3,112, 28, 63, +185,178,236, 62,224,124, 27, 63,235, 65,232, 62,144, 63, 30, 63,233,195,226, 62,118,152, 32, 63, 37,167,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 2,232,209, 62,222, 21,226, 62,102,109,215, 62,222,147,231, 62, 28,135,213, 62, +172, 4,236, 62, 56, 54,205, 62, 22,249,235, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,118,152, 32, 63, + 37,167,236, 62,144, 63, 30, 63,233,195,226, 62,108,235, 33, 63,197,235,220, 62,209,151, 37, 63, 89,161,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 76,144,202, 62,186, 61,220, 62, 2,232,209, 62,222, 21,226, 62, 56, 54,205, 62, + 22,249,235, 62,128, 55,195, 62, 70,243,235, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,144, 63, 30, 63, +233,195,226, 62, 20, 55, 25, 63, 1, 35,223, 62,200,178, 25, 63, 77,233,214, 62,108,235, 33, 63,197,235,220, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,146, 1,219, 62, 66, 59,214, 62,248,248,219, 62,246,116,222, 62, 2,232,209, 62, +222, 21,226, 62, 76,144,202, 62,186, 61,220, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,224,124, 27, 63, +235, 65,232, 62, 87,252, 24, 63, 93,111,230, 62, 20, 55, 25, 63, 1, 35,223, 62,144, 63, 30, 63,233,195,226, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,248,248,219, 62,246,116,222, 62,118,110,220, 62, 78,193,229, 62,102,109,215, 62, +222,147,231, 62, 2,232,209, 62,222, 21,226, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 87,252, 24, 63, + 93,111,230, 62, 22,195, 22, 63,195, 90,232, 62,191, 91, 20, 63,193, 18,227, 62, 20, 55, 25, 63, 1, 35,223, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,162,175,229, 62,178,100,226, 62,248,224,224, 62,182,172,231, 62,118,110,220, 62, + 78,193,229, 62,248,248,219, 62,246,116,222, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 20, 55, 25, 63, + 1, 35,223, 62,191, 91, 20, 63,193, 18,227, 62,187,165, 17, 63,225, 6,221, 62,200,178, 25, 63, 77,233,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,170, 27,235, 62,214, 88,220, 62,162,175,229, 62,178,100,226, 62,248,248,219, 62, +246,116,222, 62,146, 1,219, 62, 66, 59,214, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,191, 91, 20, 63, +193, 18,227, 62,164, 18, 18, 63,173,201,236, 62,157,231, 13, 63, 89,161,236, 62,187,165, 17, 63,225, 6,221, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,232,151,242, 62, 70,243,235, 62,216, 65,234, 62,158, 27,236, 62,162,175,229, 62, +178,100,226, 62,170, 27,235, 62,214, 88,220, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 22,195, 22, 63, +195, 90,232, 62, 11,202, 21, 63, 1,189,236, 62,164, 18, 18, 63,173,201,236, 62,191, 91, 20, 63,193, 18,227, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216, 65,234, 62,158, 27,236, 62, 12,211,226, 62,246, 14,236, 62,248,224,224, 62, +182,172,231, 62,162,175,229, 62,178,100,226, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 11,202, 21, 63, + 1,189,236, 62,215,202, 22, 63,237,124,241, 62,125,105, 20, 63, 1, 71,246, 62,164, 18, 18, 63,173,201,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 42,148,229, 62,246,152,245, 62,112,209,224, 62,226,206,240, 62, 12,211,226, 62, +246, 14,236, 62,216, 65,234, 62,158, 27,236, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,164, 18, 18, 63, +173,201,236, 62,125,105, 20, 63, 1, 71,246, 62, 44,173, 17, 63,231,149,252, 62,157,231, 13, 63, 89,161,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,206, 12,235, 62,218,231,251, 62, 42,148,229, 62,246,152,245, 62,216, 65,234, 62, +158, 27,236, 62,232,151,242, 62, 70,243,235, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,125,105, 20, 63, + 1, 71,246, 62, 37, 59, 25, 63, 49, 73,250, 62,108,178, 25, 63,218,108, 1, 63, 44,173, 17, 63,231,149,252, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 76, 2,219, 62,213, 21, 1, 63,216,240,219, 62, 38,155,249, 62, 42,148,229, 62, +246,152,245, 62,206, 12,235, 62,218,231,251, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,215,202, 22, 63, +237,124,241, 62,195, 1, 25, 63,169,102,243, 62, 37, 59, 25, 63, 49, 73,250, 62,125,105, 20, 63, 1, 71,246, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216,240,219, 62, 38,155,249, 62,156, 99,220, 62,154,184,242, 62,112,209,224, 62, +226,206,240, 62, 42,148,229, 62,246,152,245, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,195, 1, 25, 63, +169,102,243, 62,176,125, 27, 63,149,145,241, 62,167, 74, 30, 63, 3,153,246, 62, 37, 59, 25, 63, 49, 73,250, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,212,209,209, 62,246,234,245, 62,192,107,215, 62,138,227,240, 62,156, 99,220, 62, +154,184,242, 62,216,240,219, 62, 38,155,249, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 37, 59, 25, 63, + 49, 73,250, 62,167, 74, 30, 63, 3,153,246, 62,204,230, 33, 63,107,232,252, 62,108,178, 25, 63,218,108, 1, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,132,153,202, 62, 94, 58,252, 62,212,209,209, 62,246,234,245, 62,216,240,219, 62, + 38,155,249, 62, 76, 2,219, 62,213, 21, 1, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,167, 74, 30, 63, + 3,153,246, 62,118,152, 32, 63, 37,167,236, 62,209,151, 37, 63, 89,161,236, 62,204,230, 33, 63,107,232,252, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,128, 55,195, 62, 70,243,235, 62, 56, 54,205, 62, 22,249,235, 62,212,209,209, 62, +246,234,245, 62,132,153,202, 62, 94, 58,252, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,176,125, 27, 63, +149,145,241, 62, 3,112, 28, 63,185,178,236, 62,118,152, 32, 63, 37,167,236, 62,167, 74, 30, 63, 3,153,246, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 56, 54,205, 62, 22,249,235, 62, 28,135,213, 62,172, 4,236, 62,192,107,215, 62, +138,227,240, 62,212,209,209, 62,246,234,245, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 3,112, 28, 63, +185,178,236, 62,176,125, 27, 63,149,145,241, 62, 42, 39, 27, 63, 57, 1,241, 62,140,249, 27, 63,115,186,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,206, 24,216, 62, 46, 83,240, 62,192,107,215, 62,138,227,240, 62, 28,135,213, 62, +172, 4,236, 62, 8,116,214, 62,102, 12,236, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,176,125, 27, 63, +149,145,241, 62,195, 1, 25, 63,169,102,243, 62, 6,248, 24, 63,185, 91,242, 62, 42, 39, 27, 63, 57, 1,241, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 22,119,220, 62,174,173,241, 62,156, 99,220, 62,154,184,242, 62,192,107,215, 62, +138,227,240, 62,206, 24,216, 62, 46, 83,240, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,195, 1, 25, 63, +169,102,243, 62,215,202, 22, 63,237,124,241, 62,157, 38, 23, 63,225,173,240, 62, 6,248, 24, 63,185, 91,242, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,234, 25,224, 62,214,255,239, 62,112,209,224, 62,226,206,240, 62,156, 99,220, 62, +154,184,242, 62, 22,119,220, 62,174,173,241, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,215,202, 22, 63, +237,124,241, 62, 11,202, 21, 63, 1,189,236, 62, 13, 89, 22, 63,247,196,236, 62,157, 38, 23, 63,225,173,240, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 8,181,225, 62,234, 22,236, 62, 12,211,226, 62,246, 14,236, 62,112,209,224, 62, +226,206,240, 62,234, 25,224, 62,214,255,239, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 11,202, 21, 63, + 1,189,236, 62, 22,195, 22, 63,195, 90,232, 62, 88, 33, 23, 63, 69, 47,233, 62, 13, 89, 22, 63,247,196,236, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,112, 36,224, 62, 58,129,232, 62,248,224,224, 62,182,172,231, 62, 12,211,226, 62, +246, 14,236, 62, 8,181,225, 62,234, 22,236, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 22,195, 22, 63, +195, 90,232, 62, 87,252, 24, 63, 93,111,230, 62,100,243, 24, 63, 5,123,231, 62, 88, 33, 23, 63, 69, 47,233, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 90,128,220, 62,248,204,230, 62,118,110,220, 62, 78,193,229, 62,248,224,224, 62, +182,172,231, 62,112, 36,224, 62, 58,129,232, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0, 87,252, 24, 63, + 93,111,230, 62,224,124, 27, 63,235, 65,232, 62,169, 37, 27, 63, 35,211,232, 62,100,243, 24, 63, 5,123,231, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,206, 27,216, 62, 22, 37,232, 62,102,109,215, 62,222,147,231, 62,118,110,220, 62, + 78,193,229, 62, 90,128,220, 62,248,204,230, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,224,124, 27, 63, +235, 65,232, 62, 3,112, 28, 63,185,178,236, 62,140,249, 27, 63,115,186,236, 62,169, 37, 27, 63, 35,211,232, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 8,116,214, 62,102, 12,236, 62, 28,135,213, 62,172, 4,236, 62,102,109,215, 62, +222,147,231, 62,206, 27,216, 62, 22, 37,232, 62,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,138,242, 24, 63, + 21,194,236, 62,169, 37, 27, 63, 35,211,232, 62,140,249, 27, 63,115,186,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 8,116,214, 62,102, 12,236, 62,206, 27,216, 62, 22, 37,232, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,100,243, 24, 63, + 5,123,231, 62,169, 37, 27, 63, 35,211,232, 62,138,242, 24, 63, 21,194,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 16,130,220, 62, 6, 20,236, 62,206, 27,216, 62, 22, 37,232, 62, 90,128,220, 62, +248,204,230, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62, 88, 33, 23, 63, 69, 47,233, 62,100,243, 24, 63, 5,123,231, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 90,128,220, 62,248,204,230, 62,112, 36,224, 62, 58,129,232, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62, 13, 89, 22, 63,247,196,236, 62, 88, 33, 23, 63, 69, 47,233, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,112, 36,224, 62, 58,129,232, 62, 8,181,225, 62,234, 22,236, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62,157, 38, 23, 63,225,173,240, 62, 13, 89, 22, 63,247,196,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 8,181,225, 62,234, 22,236, 62,234, 25,224, 62,214,255,239, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62, 6,248, 24, 63,185, 91,242, 62,157, 38, 23, 63,225,173,240, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,234, 25,224, 62,214,255,239, 62, 22,119,220, 62,174,173,241, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62, 42, 39, 27, 63, 57, 1,241, 62, 6,248, 24, 63,185, 91,242, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 22,119,220, 62,174,173,241, 62,206, 24,216, 62, 46, 83,240, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,138,242, 24, 63, + 21,194,236, 62,140,249, 27, 63,115,186,236, 62, 42, 39, 27, 63, 57, 1,241, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,206, 24,216, 62, 46, 83,240, 62, 8,116,214, 62,102, 12,236, 62, 16,130,220, 62, + 6, 20,236, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,174,254, 16, 63, + 94, 45, 34, 62, 79,190, 13, 63,160,193, 46, 62,220,199, 3, 63, 89,219, 24, 62,219,199, 3, 63, 18, 28,229, 61,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,220,199, 3, 63, 89,219, 24, 62, 14,150,243, 62,204, 79, 47, 62,140,248,236, 62, +182,202, 34, 62,219,199, 3, 63, 18, 28,229, 61,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,184,152, 21, 63, +182, 47, 53, 62,250,104, 16, 63, 16,113, 55, 62, 79,190, 13, 63,160,193, 46, 62,174,254, 16, 63, 94, 45, 34, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 14,150,243, 62,204, 79, 47, 62,200, 68,238, 62, 76, 62, 56, 62,183,207,227, 62, +250, 75, 54, 62,140,248,236, 62,182,202, 34, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,137, 57, 22, 63, + 81, 93, 61, 62,206,186, 16, 63, 85,129, 72, 62,250,104, 16, 63, 16,113, 55, 62,184,152, 21, 63,182, 47, 53, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62,192,187,237, 62,194,118, 73, 62,122,152,226, 62, +190,166, 62, 62,183,207,227, 62,250, 75, 54, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,250,249, 22, 63, +160,251, 88, 62,222, 32, 16, 63, 34,106, 93, 62,206,186, 16, 63, 85,129, 72, 62,137, 57, 22, 63, 81, 93, 61, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 21, 19,239, 62,121,110, 94, 62, 90, 83,225, 62, + 21,153, 90, 62,122,152,226, 62,190,166, 62, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, + 17, 56,132, 62,206,243, 15, 63,182,207,136, 62,222, 32, 16, 63, 34,106, 93, 62,250,249, 22, 63,160,251, 88, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 92,193,239, 62,113, 61,137, 62, 54, 42,221, 62, +209, 25,133, 62, 90, 83,225, 62, 21,153, 90, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63, +159, 77,166, 62, 91, 94, 37, 63,107,120,187, 62, 66, 21, 30, 63,178,139,200, 62,158,237, 12, 63, 38,241,187, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62,156, 28,197, 62,166,130,187, 62,115, 21,216, 62, + 14,177,166, 62, 15,175,245, 62,188, 14,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 91, 94, 37, 63, +107,120,187, 62, 87, 57, 43, 63,222, 58,206, 62, 24,163, 39, 63,174, 95,216, 62, 66, 21, 30, 63,178,139,200, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62,130,207,184, 62, 42, 27,206, 62,156, 28,197, 62, +166,130,187, 62,139,125,211, 62,170,171,200, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 87, 57, 43, 63, +222, 58,206, 62, 38,229, 50, 63,169, 32,226, 62,177, 79, 43, 63,202,194,231, 62, 24,163, 39, 63,174, 95,216, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62,196, 39,168, 62,206, 11,226, 62,130,207,184, 62, + 42, 27,206, 62, 98,194,191, 62, 42, 94,216, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 38,229, 50, 63, +169, 32,226, 62, 62,134, 48, 63, 37,107,249, 62,154,190, 43, 63,192, 0,249, 62,177, 79, 43, 63,202,194,231, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62,172,229,172, 62,116,127,249, 62,196, 39,168, 62, +206, 11,226, 62, 60,201,183, 62, 82,218,231, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 62,134, 48, 63, + 37,107,249, 62,238, 88, 46, 63,146,223, 2, 63,123,207, 40, 63,218,175,254, 62,154,190, 43, 63,192, 0,249, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62,173, 87,177, 62,102, 9, 3, 63,172,229,172, 62, +116,127,249, 62,138,190,182, 62, 35, 49,249, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,238, 88, 46, 63, +146,223, 2, 63,220,158, 34, 63,175, 23, 10, 63,126, 77, 30, 63,156, 88, 5, 63,123,207, 40, 63,218,175,254, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63,124,109,201, 62, 72,121, 10, 63,173, 87,177, 62, +102, 9, 3, 63, 2,184,188, 62,140, 0,255, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,220,158, 34, 63, +175, 23, 10, 63, 28,105, 26, 63,242,194, 11, 63,244,120, 25, 63, 78,242, 7, 63,126, 77, 30, 63,156, 88, 5, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63,220, 73,218, 62,169, 31, 12, 63,124,109,201, 62, + 72,121, 10, 63, 89, 65,210, 62, 56,158, 5, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 28,105, 26, 63, +242,194, 11, 63,173,244, 22, 63,236,215, 11, 63,202, 47, 22, 63,156, 60, 8, 63,244,120, 25, 63, 78,242, 7, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63,220, 89,225, 62, 77, 42, 12, 63,220, 73,218, 62, +169, 31, 12, 63, 0, 39,220, 62,252, 58, 8, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,173,244, 22, 63, +236,215, 11, 63, 67,169, 11, 63, 18,197, 11, 63,106,252, 12, 63,180,173, 3, 63,202, 47, 22, 63,156, 60, 8, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 35,114,245, 62,233,196, 3, 63, 55, 72,248, 62, 91,232, 11, 63,220, 89,225, 62, + 77, 42, 12, 63, 11,221,226, 62, 90,125, 8, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 67,169, 11, 63, + 18,197, 11, 63,148,232, 3, 63,164, 17, 11, 63,162,220, 3, 63, 45, 88, 0, 63,106,252, 12, 63,180,173, 3, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63,148,232, 3, 63,164, 17, 11, 63, 55, 72,248, 62, + 91,232, 11, 63, 35,114,245, 62,233,196, 3, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,103, 59, 17, 63, +120,195,255, 62,240, 81, 22, 63,114, 70, 1, 63,202, 47, 22, 63,156, 60, 8, 63,106,252, 12, 63,180,173, 3, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63,106,128,226, 62,198,111, 1, 63,209,213,236, 62, + 4,250,255, 62, 35,114,245, 62,233,196, 3, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,240, 81, 22, 63, +114, 70, 1, 63,151,182, 25, 63,130, 9, 1, 63,244,120, 25, 63, 78,242, 7, 63,202, 47, 22, 63,156, 60, 8, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63,213,150,219, 62, 50, 55, 1, 63,106,128,226, 62, +198,111, 1, 63, 11,221,226, 62, 90,125, 8, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 96, 49, 30, 63, +121,229,254, 62,126, 77, 30, 63,156, 88, 5, 63,244,120, 25, 63, 78,242, 7, 63,151,182, 25, 63,130, 9, 1, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63, 89, 65,210, 62, 56,158, 5, 63,176,116,210, 62, +227, 62,255, 62,213,150,219, 62, 50, 55, 1, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 25,113, 37, 63, + 35,157,247, 62,123,207, 40, 63,218,175,254, 62,126, 77, 30, 63,156, 88, 5, 63, 96, 49, 30, 63,121,229,254, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, 2,184,188, 62,140, 0,255, 62,189,165,195, 62, +139,232,247, 62,176,116,210, 62,227, 62,255, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92, 62, 39, 63, +121, 75,240, 62,154,190, 43, 63,192, 0,249, 62,123,207, 40, 63,218,175,254, 62, 25,113, 37, 63, 35,157,247, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62,138,190,182, 62, 35, 49,249, 62,222, 10,192, 62, +163,128,240, 62,189,165,195, 62,139,232,247, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,140,149, 38, 63, + 38, 95,229, 62,177, 79, 43, 63,202,194,231, 62,154,190, 43, 63,192, 0,249, 62, 92, 62, 39, 63,121, 75,240, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 60,201,183, 62, 82,218,231, 62,168,140,193, 62, + 94,129,229, 62,222, 10,192, 62,163,128,240, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 14,120, 33, 63, +166,238,214, 62, 24,163, 39, 63,174, 95,216, 62,177, 79, 43, 63,202,194,231, 62,140,149, 38, 63, 38, 95,229, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62, 98,194,191, 62, 42, 94,216, 62,168, 75,204, 62, + 62, 7,215, 62,168,140,193, 62, 94,129,229, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,165,178, 27, 63, +128, 17,208, 62, 66, 21, 30, 63,178,139,200, 62, 24,163, 39, 63,174, 95,216, 62, 14,120, 33, 63,166,238,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62,139,125,211, 62,170,171,200, 62, 6, 24,216, 62, +128, 57,208, 62,168, 75,204, 62, 62, 7,215, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 15, 97, 17, 63, +220, 34,214, 62,158,237, 12, 63, 38,241,187, 62, 66, 21, 30, 63,178,139,200, 62,165,178, 27, 63,128, 17,208, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 15,175,245, 62,188, 14,188, 62,217,200,236, 62, +134, 49,214, 62, 6, 24,216, 62,128, 57,208, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 15, 97, 17, 63, +220, 34,214, 62,149,244, 14, 63, 4, 42,221, 62,147,230, 3, 63, 78, 47,208, 62,158,237, 12, 63, 38,241,187, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62,141,144,241, 62,244, 52,221, 62,217,200,236, 62, +134, 49,214, 62, 15,175,245, 62,188, 14,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,103, 59, 17, 63, +120,195,255, 62,106,252, 12, 63,180,173, 3, 63,162,220, 3, 63, 45, 88, 0, 63, 71, 25, 13, 63,116,163,243, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 35,114,245, 62,233,196, 3, 63,209,213,236, 62, + 4,250,255, 62, 0, 45,245, 62,206,185,243, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 71, 25, 13, 63, +116,163,243, 62,162,220, 3, 63, 45, 88, 0, 63,215,220, 3, 63,148,189,231, 62, 64, 2, 13, 63, 52,215,230, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,215,220, 3, 63,148,189,231, 62,162,220, 3, 63, 45, 88, 0, 63, 0, 45,245, 62, +206,185,243, 62,219,100,245, 62,184,230,230, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,147,230, 3, 63, + 78, 47,208, 62,149,244, 14, 63, 4, 42,221, 62, 64, 2, 13, 63, 52,215,230, 62,215,220, 3, 63,148,189,231, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,219,100,245, 62,184,230,230, 62,141,144,241, 62,244, 52,221, 62,147,230, 3, 63, + 78, 47,208, 62,215,220, 3, 63,148,189,231, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 7, 63, +148, 31, 54, 62,193,202, 3, 63,214,174, 49, 62,220,199, 3, 63, 89,219, 24, 62, 79,190, 13, 63,160,193, 46, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62,193,202, 3, 63,214,174, 49, 62,175, 87, 0, 63, +251, 90, 54, 62, 14,150,243, 62,204, 79, 47, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68,214, 9, 63, +246,237, 66, 62,250, 61, 7, 63,148, 31, 54, 62, 79,190, 13, 63,160,193, 46, 62,250,104, 16, 63, 16,113, 55, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 14,150,243, 62,204, 79, 47, 62,175, 87, 0, 63,251, 90, 54, 62,104,137,251, 62, +179, 92, 67, 62,200, 68,238, 62, 76, 62, 56, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,237,221, 8, 63, +218, 90, 91, 62, 68,214, 9, 63,246,237, 66, 62,250,104, 16, 63, 16,113, 55, 62,206,186, 16, 63, 85,129, 72, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62,104,137,251, 62,179, 92, 67, 62, 39,153,253, 62, + 27,195, 91, 62,192,187,237, 62,194,118, 73, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,206,243, 15, 63, +182,207,136, 62, 77, 32, 8, 63, 10, 39,139, 62, 22,117, 9, 63,146,203, 97, 62,222, 32, 16, 63, 34,106, 93, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62,219, 89,255, 62,116, 79,139, 62, 92,193,239, 62, +113, 61,137, 62, 21, 19,239, 62,121,110, 94, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,237,221, 8, 63, +218, 90, 91, 62,206,186, 16, 63, 85,129, 72, 62,222, 32, 16, 63, 34,106, 93, 62, 22,117, 9, 63,146,203, 97, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62,192,187,237, 62,194,118, 73, 62, 39,153,253, 62, + 27,195, 91, 62,192,110,252, 62, 79, 68, 98, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,119,125, 9, 63, + 7,112,158, 62, 70,233, 3, 63, 88, 27,154, 62,235,229, 3, 63, 97,108,139, 62, 77, 32, 8, 63, 10, 39,139, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, 70,233, 3, 63, 88, 27,154, 62,165,179,252, 62, +163,140,158, 62,219, 89,255, 62,116, 79,139, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 22,117, 9, 63, +146,203, 97, 62, 77, 32, 8, 63, 10, 39,139, 62,235,229, 3, 63, 97,108,139, 62,246,215, 3, 63,143, 56,101, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62,219, 89,255, 62,116, 79,139, 62,192,110,252, 62, + 79, 68, 98, 62,246,215, 3, 63,143, 56,101, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,147,210, 3, 63, +221, 95, 86, 62,237,221, 8, 63,218, 90, 91, 62, 22,117, 9, 63,146,203, 97, 62,246,215, 3, 63,143, 56,101, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62, 39,153,253, 62, 27,195, 91, 62,147,210, 3, 63, +221, 95, 86, 62,246,215, 3, 63,143, 56,101, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 5, 54, 12, 63, +188,183,167, 62,250, 61, 9, 63,252,214,168, 62,152,143, 8, 63, 45,107,163, 62,119,125, 9, 63, 7,112,158, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62,110, 39,253, 62,103,224,168, 62, 98, 68,247, 62, +146,206,167, 62,165,179,252, 62,163,140,158, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,135,196, 10, 63, + 52,208,178, 62, 25,233, 8, 63,116,110,175, 62,250, 61, 9, 63,252,214,168, 62, 5, 54, 12, 63,188,183,167, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,110, 39,253, 62,103,224,168, 62,102,195,253, 62,184,102,175, 62, 98, 14,250, 62, +149,202,178, 62, 98, 68,247, 62,146,206,167, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 69, 17, 4, 63, +105,176,182, 62, 69,138, 6, 63, 80,180,177, 62, 25,233, 8, 63,116,110,175, 62,135,196, 10, 63, 52,208,178, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,102,195,253, 62,184,102,175, 62, 14, 49, 1, 63, 62,150,177, 62, 69, 17, 4, 63, +105,176,182, 62, 98, 14,250, 62,149,202,178, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,209,124, 3, 63, + 70, 0,177, 62, 11,232, 3, 63,140, 4,174, 62, 69,138, 6, 63, 80,180,177, 62, 69, 17, 4, 63,105,176,182, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 14, 49, 1, 63, 62,150,177, 62, 11,232, 3, 63,140, 4,174, 62,209,124, 3, 63, + 70, 0,177, 62, 69, 17, 4, 63,105,176,182, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 70,233, 3, 63, + 88, 27,154, 62,119,125, 9, 63, 7,112,158, 62,152,143, 8, 63, 45,107,163, 62,212,232, 3, 63, 58,152,158, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62,165,179,252, 62,163,140,158, 62, 70,233, 3, 63, + 88, 27,154, 62,212,232, 3, 63, 58,152,158, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,212,232, 3, 63, + 58,152,158, 62,152,143, 8, 63, 45,107,163, 62,121, 91, 7, 63,134, 51,166, 62,205,231, 3, 63, 58,149,162, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62,100,136,254, 62, 38,123,163, 62,212,232, 3, 63, + 58,152,158, 62,205,231, 3, 63, 58,149,162, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 11,232, 3, 63, +140, 4,174, 62,214,233, 3, 63,198,154,170, 62,233,110, 6, 63, 94,152,174, 62, 69,138, 6, 63, 80,180,177, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228, 82, 1, 63, 95,140,174, 62,214,233, 3, 63,198,154,170, 62, 11,232, 3, 63, +140, 4,174, 62, 14, 49, 1, 63, 62,150,177, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 69,138, 6, 63, + 80,180,177, 62,233,110, 6, 63, 94,152,174, 62, 59,236, 7, 63, 19,123,173, 62, 25,233, 8, 63,116,110,175, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62,228, 82, 1, 63, 95,140,174, 62, 14, 49, 1, 63, + 62,150,177, 62,102,195,253, 62,184,102,175, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 25,233, 8, 63, +116,110,175, 62, 59,236, 7, 63, 19,123,173, 62, 85,249, 7, 63, 92, 52,169, 62,250, 61, 9, 63,252,214,168, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62,217,185,255, 62, 92,116,173, 62,102,195,253, 62, +184,102,175, 62,110, 39,253, 62,103,224,168, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 9, 63, +252,214,168, 62, 85,249, 7, 63, 92, 52,169, 62,121, 91, 7, 63,134, 51,166, 62,152,143, 8, 63, 45,107,163, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62,160,169,255, 62, 6, 57,169, 62,110, 39,253, 62, +103,224,168, 62,100,136,254, 62, 38,123,163, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,214,233, 3, 63, +198,154,170, 62, 85,249, 7, 63, 92, 52,169, 62, 59,236, 7, 63, 19,123,173, 62,233,110, 6, 63, 94,152,174, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62,160,169,255, 62, 6, 57,169, 62,214,233, 3, 63, +198,154,170, 62,228, 82, 1, 63, 95,140,174, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,214,233, 3, 63, +198,154,170, 62,205,231, 3, 63, 58,149,162, 62,121, 91, 7, 63,134, 51,166, 62, 85,249, 7, 63, 92, 52,169, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62,205,231, 3, 63, 58,149,162, 62,214,233, 3, 63, +198,154,170, 62,160,169,255, 62, 6, 57,169, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 69, 17, 4, 63, +105,176,182, 62,135,196, 10, 63, 52,208,178, 62,158,237, 12, 63, 38,241,187, 62,147,230, 3, 63, 78, 47,208, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 98, 14,250, 62,149,202,178, 62, 69, 17, 4, 63, +105,176,182, 62,147,230, 3, 63, 78, 47,208, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,135,196, 10, 63, + 52,208,178, 62, 5, 54, 12, 63,188,183,167, 62,112, 0, 16, 63,254,246,164, 62,158,237, 12, 63, 38,241,187, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 98, 68,247, 62,146,206,167, 62, 98, 14,250, 62, +149,202,178, 62, 15,175,245, 62,188, 14,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 5, 54, 12, 63, +188,183,167, 62,119,125, 9, 63, 7,112,158, 62, 44,250, 15, 63,109, 0,154, 62,112, 0, 16, 63,254,246,164, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62,165,179,252, 62,163,140,158, 62, 98, 68,247, 62, +146,206,167, 62,207,187,239, 62, 19, 42,165, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,119,125, 9, 63, + 7,112,158, 62, 77, 32, 8, 63, 10, 39,139, 62,206,243, 15, 63,182,207,136, 62, 44,250, 15, 63,109, 0,154, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92,193,239, 62,113, 61,137, 62,219, 89,255, 62,116, 79,139, 62,165,179,252, 62, +163,140,158, 62, 56,205,239, 62, 8, 71,154, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, + 17, 56,132, 62,208, 46, 27, 63,149, 35,148, 62, 44,250, 15, 63,109, 0,154, 62,206,243, 15, 63,182,207,136, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62,238,166,217, 62,229,221,148, 62, 54, 42,221, 62, +209, 25,133, 62, 92,193,239, 62,113, 61,137, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,208, 46, 27, 63, +149, 35,148, 62, 36,177, 27, 63,158,151,156, 62,112, 0, 16, 63,254,246,164, 62, 44,250, 15, 63,109, 0,154, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 0,160,216, 62,127, 44,157, 62,238,166,217, 62, +229,221,148, 62, 56,205,239, 62, 8, 71,154, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63, +159, 77,166, 62,158,237, 12, 63, 38,241,187, 62,112, 0, 16, 63,254,246,164, 62, 36,177, 27, 63,158,151,156, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 15,175,245, 62,188, 14,188, 62,115, 21,216, 62, + 14,177,166, 62, 0,160,216, 62,127, 44,157, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,237,221, 8, 63, +218, 90, 91, 62,147,210, 3, 63,221, 95, 86, 62,129,211, 3, 63,248,168, 83, 62,170, 33, 8, 63,254,149, 86, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62,147,210, 3, 63,221, 95, 86, 62, 39,153,253, 62, + 27,195, 91, 62, 8, 14,255, 62, 58,232, 86, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68,214, 9, 63, +246,237, 66, 62,237,221, 8, 63,218, 90, 91, 62,170, 33, 8, 63,254,149, 86, 62, 20,180, 8, 63, 94, 29, 69, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 8, 14,255, 62, 58,232, 86, 62, 39,153,253, 62, 27,195, 91, 62,104,137,251, 62, +179, 92, 67, 62, 19,210,253, 62, 55,114, 69, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,250, 61, 7, 63, +148, 31, 54, 62, 68,214, 9, 63,246,237, 66, 62, 20,180, 8, 63, 94, 29, 69, 62,168, 82, 6, 63, 80, 43, 57, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 19,210,253, 62, 55,114, 69, 62,104,137,251, 62,179, 92, 67, 62,175, 87, 0, 63, +251, 90, 54, 62, 48, 68, 1, 63,166, 84, 57, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,193,202, 3, 63, +214,174, 49, 62,250, 61, 7, 63,148, 31, 54, 62,168, 82, 6, 63, 80, 43, 57, 62,205,202, 3, 63, 8, 22, 54, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 48, 68, 1, 63,166, 84, 57, 62,175, 87, 0, 63,251, 90, 54, 62,193,202, 3, 63, +214,174, 49, 62,205,202, 3, 63, 8, 22, 54, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,205,202, 3, 63, + 8, 22, 54, 62,168, 82, 6, 63, 80, 43, 57, 62,246, 24, 5, 63, 26,150, 66, 62,213,205, 3, 63,220,232, 64, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 48, 68, 1, 63,166, 84, 57, 62,205,202, 3, 63, + 8, 22, 54, 62,213,205, 3, 63,220,232, 64, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,168, 82, 6, 63, + 80, 43, 57, 62, 20,180, 8, 63, 94, 29, 69, 62, 39, 83, 6, 63,191,114, 70, 62,246, 24, 5, 63, 26,150, 66, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 19,210,253, 62, 55,114, 69, 62, 48, 68, 1, 63, +166, 84, 57, 62, 29,131, 2, 63, 22,172, 66, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20,180, 8, 63, + 94, 29, 69, 62,170, 33, 8, 63,254,149, 86, 62, 4,111, 6, 63, 40,172, 76, 62, 39, 83, 6, 63,191,114, 70, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,157, 51, 1, 63,158,218, 76, 62, 8, 14,255, 62, 58,232, 86, 62, 19,210,253, 62, + 55,114, 69, 62,185, 75, 1, 63,222,160, 70, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,170, 33, 8, 63, +254,149, 86, 62,129,211, 3, 63,248,168, 83, 62,234,208, 3, 63,146, 43, 75, 62, 4,111, 6, 63, 40,172, 76, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62,129,211, 3, 63,248,168, 83, 62, 8, 14,255, 62, + 58,232, 86, 62,157, 51, 1, 63,158,218, 76, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,234,208, 3, 63, +146, 43, 75, 62,213,205, 3, 63,220,232, 64, 62,246, 24, 5, 63, 26,150, 66, 62, 4,111, 6, 63, 40,172, 76, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62,213,205, 3, 63,220,232, 64, 62,234,208, 3, 63, +146, 43, 75, 62,157, 51, 1, 63,158,218, 76, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 4,111, 6, 63, + 40,172, 76, 62,246, 24, 5, 63, 26,150, 66, 62, 39, 83, 6, 63,191,114, 70, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 29,131, 2, 63, 22,172, 66, 62,157, 51, 1, 63, +158,218, 76, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64, 2, 13, 63, + 52,215,230, 62,149,244, 14, 63, 4, 42,221, 62, 4,216, 16, 63,160, 24,224, 62,120,200, 15, 63, 84,255,231, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,119,193,237, 62,190, 38,224, 62,141,144,241, 62,244, 52,221, 62,219,100,245, 62, +184,230,230, 62, 21,211,239, 62,185, 18,232, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 71, 25, 13, 63, +116,163,243, 62, 64, 2, 13, 63, 52,215,230, 62,120,200, 15, 63, 84,255,231, 62,184,171, 16, 63, 40,133,241, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 21,211,239, 62,185, 18,232, 62,219,100,245, 62,184,230,230, 62, 0, 45,245, 62, +206,185,243, 62,218,252,237, 62, 62,160,241, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,103, 59, 17, 63, +120,195,255, 62, 71, 25, 13, 63,116,163,243, 62,184,171, 16, 63, 40,133,241, 62, 55, 44, 19, 63, 86, 21,250, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,218,252,237, 62, 62,160,241, 62, 0, 45,245, 62,206,185,243, 62,209,213,236, 62, + 4,250,255, 62,153,228,232, 62,154, 67,250, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,149,244, 14, 63, + 4, 42,221, 62, 15, 97, 17, 63,220, 34,214, 62,217, 53, 19, 63, 16,211,218, 62, 4,216, 16, 63,160, 24,224, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 8, 14,233, 62, 66,226,218, 62,217,200,236, 62,134, 49,214, 62,141,144,241, 62, +244, 52,221, 62,119,193,237, 62,190, 38,224, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 15, 97, 17, 63, +220, 34,214, 62,165,178, 27, 63,128, 17,208, 62,205,198, 26, 63,124,184,214, 62,217, 53, 19, 63, 16,211,218, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,216,214,217, 62,218,224,214, 62, 6, 24,216, 62,128, 57,208, 62,217,200,236, 62, +134, 49,214, 62, 8, 14,233, 62, 66,226,218, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,165,178, 27, 63, +128, 17,208, 62, 14,120, 33, 63,166,238,214, 62,156,136, 31, 63,194,138,219, 62,205,198, 26, 63,124,184,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,254, 30,208, 62,204,177,219, 62,168, 75,204, 62, 62, 7,215, 62, 6, 24,216, 62, +128, 57,208, 62,216,214,217, 62,218,224,214, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 14,120, 33, 63, +166,238,214, 62,140,149, 38, 63, 38, 95,229, 62, 79, 9, 36, 63, 94,224,229, 62,156,136, 31, 63,194,138,219, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,148,192,198, 62,182, 11,230, 62,168,140,193, 62, 94,129,229, 62,168, 75,204, 62, + 62, 7,215, 62,254, 30,208, 62,204,177,219, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,140,149, 38, 63, + 38, 95,229, 62, 92, 62, 39, 63,121, 75,240, 62, 14, 49, 36, 63,253, 88,239, 62, 79, 9, 36, 63, 94,224,229, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 97, 71,198, 62,192,149,239, 62,222, 10,192, 62,163,128,240, 62,168,140,193, 62, + 94,129,229, 62,148,192,198, 62,182, 11,230, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92, 62, 39, 63, +121, 75,240, 62, 25,113, 37, 63, 35,157,247, 62,243, 33, 35, 63, 80,143,245, 62, 14, 49, 36, 63,253, 88,239, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 87, 99,200, 62,172,217,245, 62,189,165,195, 62,139,232,247, 62,222, 10,192, 62, +163,128,240, 62, 97, 71,198, 62,192,149,239, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 25,113, 37, 63, + 35,157,247, 62, 96, 49, 30, 63,121,229,254, 62,223, 49, 29, 63,199,140,250, 62,243, 33, 35, 63, 80,143,245, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,147,124,212, 62,146,215,250, 62,176,116,210, 62,227, 62,255, 62,189,165,195, 62, +139,232,247, 62, 87, 99,200, 62,172,217,245, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 96, 49, 30, 63, +121,229,254, 62,151,182, 25, 63,130, 9, 1, 63, 50,181, 25, 63,118,111,253, 62,223, 49, 29, 63,199,140,250, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 52,151,219, 62, 68,186,253, 62,213,150,219, 62, 50, 55, 1, 63,176,116,210, 62, +227, 62,255, 62,147,124,212, 62,146,215,250, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,151,182, 25, 63, +130, 9, 1, 63,240, 81, 22, 63,114, 70, 1, 63,241,188, 22, 63, 28,149,253, 62, 50,181, 25, 63,118,111,253, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,212,163,225, 62, 91,215,253, 62,106,128,226, 62,198,111, 1, 63,213,150,219, 62, + 50, 55, 1, 63, 52,151,219, 62, 68,186,253, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,240, 81, 22, 63, +114, 70, 1, 63,103, 59, 17, 63,120,195,255, 62, 55, 44, 19, 63, 86, 21,250, 62,241,188, 22, 63, 28,149,253, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,153,228,232, 62,154, 67,250, 62,209,213,236, 62, 4,250,255, 62,106,128,226, 62, +198,111, 1, 63,212,163,225, 62, 91,215,253, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,241,188, 22, 63, + 28,149,253, 62, 55, 44, 19, 63, 86, 21,250, 62, 9,165, 20, 63,248, 99,247, 62, 20, 0, 23, 63, 6, 57,251, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,232,232,229, 62, 74,142,247, 62,153,228,232, 62,154, 67,250, 62,212,163,225, 62, + 91,215,253, 62,145, 26,225, 62,114,116,251, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 50,181, 25, 63, +118,111,253, 62,241,188, 22, 63, 28,149,253, 62, 20, 0, 23, 63, 6, 57,251, 62,130,144, 25, 63,128, 7,251, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,145, 26,225, 62,114,116,251, 62,212,163,225, 62, 91,215,253, 62, 52,151,219, 62, + 68,186,253, 62,177,225,219, 62, 67, 75,251, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,223, 49, 29, 63, +199,140,250, 62, 50,181, 25, 63,118,111,253, 62,130,144, 25, 63,128, 7,251, 62, 80,195, 28, 63, 55,166,248, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,177,225,219, 62, 67, 75,251, 62, 52,151,219, 62, 68,186,253, 62,147,124,212, 62, +146,215,250, 62,233, 95,213, 62, 20,237,248, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,243, 33, 35, 63, + 80,143,245, 62,223, 49, 29, 63,199,140,250, 62, 80,195, 28, 63, 55,166,248, 62, 22,164, 33, 63,102, 75,243, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,233, 95,213, 62, 20,237,248, 62,147,124,212, 62,146,215,250, 62, 87, 99,200, 62, +172,217,245, 62, 65,114,203, 62,159,143,243, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 14, 49, 36, 63, +253, 88,239, 62,243, 33, 35, 63, 80,143,245, 62, 22,164, 33, 63,102, 75,243, 62, 30,160, 34, 63,169, 47,238, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 65,114,203, 62,159,143,243, 62, 87, 99,200, 62,172,217,245, 62, 97, 71,198, 62, +192,149,239, 62,188,128,201, 62,126,110,238, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 79, 9, 36, 63, + 94,224,229, 62, 14, 49, 36, 63,253, 88,239, 62, 30,160, 34, 63,169, 47,238, 62,131,144, 34, 63,253, 87,231, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,188,128,201, 62,126,110,238, 62, 97, 71,198, 62,192,149,239, 62,148,192,198, 62, +182, 11,230, 62,141,190,201, 62,124,140,231, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,156,136, 31, 63, +194,138,219, 62, 79, 9, 36, 63, 94,224,229, 62,131,144, 34, 63,253, 87,231, 62, 21,208, 30, 63,174,182,221, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,141,190,201, 62,124,140,231, 62,148,192,198, 62,182, 11,230, 62,254, 30,208, 62, +204,177,219, 62,168,133,209, 62, 51,221,221, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,205,198, 26, 63, +124,184,214, 62,156,136, 31, 63,194,138,219, 62, 21,208, 30, 63,174,182,221, 62,128,218, 26, 63, 68,206,217, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,168,133,209, 62, 51,221,221, 62,254, 30,208, 62,204,177,219, 62,216,214,217, 62, +218,224,214, 62, 11,157,217, 62, 64,243,217, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217, 53, 19, 63, + 16,211,218, 62,205,198, 26, 63,124,184,214, 62,128,218, 26, 63, 68,206,217, 62,103, 53, 20, 63,236, 84,221, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 11,157,217, 62, 64,243,217, 62,216,214,217, 62,218,224,214, 62, 8, 14,233, 62, + 66,226,218, 62, 68, 5,231, 62,234,101,221, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 4,216, 16, 63, +160, 24,224, 62,217, 53, 19, 63, 16,211,218, 62,103, 53, 20, 63,236, 84,221, 62, 81, 87, 18, 63, 33,175,226, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68, 5,231, 62,234,101,221, 62, 8, 14,233, 62, 66,226,218, 62,119,193,237, 62, +190, 38,224, 62,180,187,234, 62,249,190,226, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 55, 44, 19, 63, + 86, 21,250, 62,184,171, 16, 63, 40,133,241, 62, 98, 68, 18, 63,150,197,240, 62, 9,165, 20, 63,248, 99,247, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 35,197,234, 62,215,226,240, 62,218,252,237, 62, 62,160,241, 62,153,228,232, 62, +154, 67,250, 62,232,232,229, 62, 74,142,247, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,184,171, 16, 63, + 40,133,241, 62,120,200, 15, 63, 84,255,231, 62,161, 4, 18, 63,138,184,232, 62, 98, 68, 18, 63,150,197,240, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,154, 85,235, 62, 92,206,232, 62, 21,211,239, 62,185, 18,232, 62,218,252,237, 62, + 62,160,241, 62, 35,197,234, 62,215,226,240, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120,200, 15, 63, + 84,255,231, 62, 4,216, 16, 63,160, 24,224, 62, 81, 87, 18, 63, 33,175,226, 62,161, 4, 18, 63,138,184,232, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,180,187,234, 62,249,190,226, 62,119,193,237, 62,190, 38,224, 62, 21,211,239, 62, +185, 18,232, 62,154, 85,235, 62, 92,206,232, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,148,232, 3, 63, +164, 17, 11, 63, 67,169, 11, 63, 18,197, 11, 63,216,120, 13, 63,160, 81, 23, 63,147, 15, 4, 63,227,248, 23, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64, 27,245, 62,100,166, 23, 63, 55, 72,248, 62, 91,232, 11, 63,148,232, 3, 63, +164, 17, 11, 63,147, 15, 4, 63,227,248, 23, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 67,169, 11, 63, + 18,197, 11, 63,173,244, 22, 63,236,215, 11, 63, 94,233, 23, 63,186, 60, 16, 63,216,120, 13, 63,160, 81, 23, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,109,130,223, 62,118,165, 16, 63,220, 89,225, 62, 77, 42, 12, 63, 55, 72,248, 62, + 91,232, 11, 63, 64, 27,245, 62,100,166, 23, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,173,244, 22, 63, +236,215, 11, 63, 28,105, 26, 63,242,194, 11, 63,220, 56, 28, 63, 66,250, 14, 63, 94,233, 23, 63,186, 60, 16, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63,220, 73,218, 62,169, 31, 12, 63,220, 89,225, 62, + 77, 42, 12, 63,109,130,223, 62,118,165, 16, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 28,105, 26, 63, +242,194, 11, 63,220,158, 34, 63,175, 23, 10, 63,109, 44, 39, 63,107,221, 19, 63,220, 56, 28, 63, 66,250, 14, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,156, 26,192, 62, 31,139, 20, 63,124,109,201, 62, 72,121, 10, 63,220, 73,218, 62, +169, 31, 12, 63,157,161,214, 62,219,110, 15, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,220,158, 34, 63, +175, 23, 10, 63,238, 88, 46, 63,146,223, 2, 63,242, 80, 56, 63, 44,244, 6, 63,109, 44, 39, 63,107,221, 19, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 61,208,156, 62,204, 16, 7, 63,173, 87,177, 62,102, 9, 3, 63,124,109,201, 62, + 72,121, 10, 63,156, 26,192, 62, 31,139, 20, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,238, 88, 46, 63, +146,223, 2, 63, 62,134, 48, 63, 37,107,249, 62,195,173, 54, 63,239,106,252, 62,242, 80, 56, 63, 44,244, 6, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,202, 36,160, 62, 94, 51,252, 62,172,229,172, 62,116,127,249, 62,173, 87,177, 62, +102, 9, 3, 63, 61,208,156, 62,204, 16, 7, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 62,134, 48, 63, + 37,107,249, 62, 38,229, 50, 63,169, 32,226, 62,154, 88, 53, 63,240,146,221, 62,195,173, 54, 63,239,106,252, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,128,172,162, 62, 17,169,221, 62,196, 39,168, 62,206, 11,226, 62,172,229,172, 62, +116,127,249, 62,202, 36,160, 62, 94, 51,252, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 38,229, 50, 63, +169, 32,226, 62, 87, 57, 43, 63,222, 58,206, 62,240,117, 49, 63,164,138,198, 62,154, 88, 53, 63,240,146,221, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,147,137,172, 62,148, 19,198, 62,130,207,184, 62, 42, 27,206, 62,196, 39,168, 62, +206, 11,226, 62,128,172,162, 62, 17,169,221, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 87, 57, 43, 63, +222, 58,206, 62, 91, 94, 37, 63,107,120,187, 62,156,160, 41, 63, 56,175,182, 62,240,117, 49, 63,164,138,198, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62,156, 28,197, 62,166,130,187, 62,130,207,184, 62, + 42, 27,206, 62,147,137,172, 62,148, 19,198, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,165,252, 48, 63, +133, 33, 85, 62,112, 54, 48, 63, 20, 19, 96, 62,172, 36, 46, 63,208, 7,129, 62,240, 17, 42, 63,129, 84, 97, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62,117,121,175, 62,183,185,106, 62,217, 24,172, 62, + 21,237, 92, 62,138, 81,187, 62, 59, 40,103, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,204, 89, 48, 63, +134,194, 4, 62,165,252, 48, 63,133, 33, 85, 62,240, 17, 42, 63,129, 84, 97, 62,160,125, 37, 63, 50,211, 46, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,138, 81,187, 62, 59, 40,103, 62,217, 24,172, 62, 21,237, 92, 62, 94,197,172, 62, +109,200, 4, 62, 25,121,195, 62, 46,253, 48, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 11, 44, 20, 63, + 20, 26,163, 61,204, 89, 48, 63,134,194, 4, 62,160,125, 37, 63, 50,211, 46, 62, 40, 92, 24, 63,214,184, 21, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 25,121,195, 62, 46,253, 48, 62, 94,197,172, 62,109,200, 4, 62,140,122,230, 62, +202,248,161, 61,216, 13,222, 62,222,116, 22, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,174,254, 16, 63, + 94, 45, 34, 62,219,199, 3, 63, 18, 28,229, 61, 11, 44, 20, 63, 20, 26,163, 61, 40, 92, 24, 63,214,184, 21, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,140,122,230, 62,202,248,161, 61,219,199, 3, 63, 18, 28,229, 61,140,248,236, 62, +182,202, 34, 62,216, 13,222, 62,222,116, 22, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,184,152, 21, 63, +182, 47, 53, 62,174,254, 16, 63, 94, 45, 34, 62, 40, 92, 24, 63,214,184, 21, 62,209, 52, 25, 63, 76,140, 51, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,216, 13,222, 62,222,116, 22, 62,140,248,236, 62,182,202, 34, 62,183,207,227, 62, +250, 75, 54, 62,229,137,220, 62,185,228, 52, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,137, 57, 22, 63, + 81, 93, 61, 62,184,152, 21, 63,182, 47, 53, 62,209, 52, 25, 63, 76,140, 51, 62,193,166, 30, 63,114,168, 73, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,229,137,220, 62,185,228, 52, 62,183,207,227, 62,250, 75, 54, 62,122,152,226, 62, +190,166, 62, 62, 54,198,209, 62, 18,240, 75, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,250,249, 22, 63, +160,251, 88, 62,137, 57, 22, 63, 81, 93, 61, 62,193,166, 30, 63,114,168, 73, 62, 75, 0, 36, 63,229, 47,116, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62,122,152,226, 62,190,166, 62, 62, 90, 83,225, 62, + 21,153, 90, 62,211,231,199, 62,216,237,119, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,193,166, 30, 63, +114,168, 73, 62,160,125, 37, 63, 50,211, 46, 62,240, 17, 42, 63,129, 84, 97, 62, 75, 0, 36, 63,229, 47,116, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 25,121,195, 62, 46,253, 48, 62, 54,198,209, 62, + 18,240, 75, 62,211,231,199, 62,216,237,119, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,193,166, 30, 63, +114,168, 73, 62,209, 52, 25, 63, 76,140, 51, 62, 40, 92, 24, 63,214,184, 21, 62,160,125, 37, 63, 50,211, 46, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62,229,137,220, 62,185,228, 52, 62, 54,198,209, 62, + 18,240, 75, 62, 25,121,195, 62, 46,253, 48, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 37,163, 36, 63, +191,168,140, 62, 75, 0, 36, 63,229, 47,116, 62,240, 17, 42, 63,129, 84, 97, 62,172, 36, 46, 63,208, 7,129, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62,211,231,199, 62,216,237,119, 62, 6, 64,199, 62, +105, 6,142, 62, 76, 71,181, 62,204,200,131, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, + 17, 56,132, 62,250,249, 22, 63,160,251, 88, 62, 75, 0, 36, 63,229, 47,116, 62, 37,163, 36, 63,191,168,140, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,211,231,199, 62,216,237,119, 62, 90, 83,225, 62, 21,153, 90, 62, 54, 42,221, 62, +209, 25,133, 62, 6, 64,199, 62,105, 6,142, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,208, 46, 27, 63, +149, 35,148, 62, 91, 60, 36, 63,221,222,150, 62,222,170, 33, 63, 74,126,158, 62, 36,177, 27, 63,158,151,156, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62,150,245,199, 62, 85, 15,152, 62,238,166,217, 62, +229,221,148, 62, 0,160,216, 62,127, 44,157, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20, 81, 25, 63, + 17, 56,132, 62, 37,163, 36, 63,191,168,140, 62, 91, 60, 36, 63,221,222,150, 62,208, 46, 27, 63,149, 35,148, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 6, 64,199, 62,105, 6,142, 62, 54, 42,221, 62, +209, 25,133, 62,238,166,217, 62,229,221,148, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63, +159, 77,166, 62, 36,177, 27, 63,158,151,156, 62,222,170, 33, 63, 74,126,158, 62,102,212, 31, 63,144,192,164, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 0,160,216, 62,127, 44,157, 62,115, 21,216, 62, + 14,177,166, 62, 17,119,208, 62,201, 65,165, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,111,239, 27, 63, +159, 77,166, 62,102,212, 31, 63,144,192,164, 62,156,160, 41, 63, 56,175,182, 62, 91, 94, 37, 63,107,120,187, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 17,119,208, 62,201, 65,165, 62,115, 21,216, 62, + 14,177,166, 62,156, 28,197, 62,166,130,187, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,104,119,194, 62, +164,189, 82, 63, 23, 73,212, 62,152,239, 90, 63,100,192,205, 62, 46,238, 97, 63, 38, 56,185, 62, 72,154, 91, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,228, 94,141, 62, 86,234,100, 63, 84, 66,150, 62,114,154, 94, 63,230, 86,173, 62, + 79, 66, 98, 63, 20,143,162, 62, 44,173,106, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72,122, 87, 63, +216, 8, 62, 62,202,106, 84, 63,137,185,113, 62,226, 77, 72, 63,204, 21,121, 62,158,225, 71, 63,113, 34, 68, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,132, 32,137, 62,181, 65,121, 62,168,179,107, 62,139,127,103, 62,210,147,114, 62, +212,116, 61, 62,248,125,142, 62, 30, 4, 80, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,158,225, 71, 63, +113, 34, 68, 62,226, 77, 72, 63,204, 21,121, 62, 8, 7, 51, 63, 5,186,130, 62, 3,166, 49, 63,232, 57, 96, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62,132, 32,137, 62,181, 65,121, 62,248,125,142, 62, + 30, 4, 80, 62,121,228,174, 62, 52, 79,109, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 3,166, 49, 63, +232, 57, 96, 62, 8, 7, 51, 63, 5,186,130, 62,172, 36, 46, 63,208, 7,129, 62,112, 54, 48, 63, 20, 19, 96, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62, 18,197,172, 62, 41,112,133, 62,121,228,174, 62, + 52, 79,109, 62,117,121,175, 62,183,185,106, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 37,163, 36, 63, +191,168,140, 62,172, 36, 46, 63,208, 7,129, 62, 8, 7, 51, 63, 5,186,130, 62, 91, 60, 36, 63,221,222,150, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62, 76, 71,181, 62,204,200,131, 62, 6, 64,199, 62, +105, 6,142, 62,150,245,199, 62, 85, 15,152, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,154, 88, 53, 63, +240,146,221, 62,240,117, 49, 63,164,138,198, 62,224, 19, 69, 63, 24, 68,190, 62, 53, 64, 74, 63,171, 31,224, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,250, 78,134, 62,148,213,186, 62,147,137,172, 62,148, 19,198, 62,128,172,162, 62, + 17,169,221, 62,184,112,114, 62,248,169,220, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 54, 74,214, 62, + 20, 55, 70, 63, 48,130,233, 62,188, 69, 83, 63, 23, 73,212, 62,152,239, 90, 63,104,119,194, 62,164,189, 82, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 84, 66,150, 62,114,154, 94, 63, 66, 1,153, 62,245,149, 81, 63, 38, 56,185, 62, +102,110, 83, 63,230, 86,173, 62, 79, 66, 98, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,106,242, 66, 63, +202, 94, 25, 63,190,100, 70, 63,222,234, 15, 63, 90,189, 77, 63,233, 88, 17, 63, 8,206, 74, 63, 88,118, 27, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 22, 32, 96, 62, 66, 60, 16, 63, 86, 87,125, 62,174, 5, 15, 63, 78,187,132, 62, +180, 44, 24, 63, 26, 79,108, 62,124, 1, 26, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 8,206, 74, 63, + 88,118, 27, 63, 90,189, 77, 63,233, 88, 17, 63, 72,139, 85, 63,103, 51, 19, 63,220,119, 85, 63, 77, 71, 31, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64,199, 64, 62, 26, 40, 18, 63, 22, 32, 96, 62, 66, 60, 16, 63, 26, 79,108, 62, +124, 1, 26, 63, 44,191, 67, 62, 90, 89, 30, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,220,119, 85, 63, + 77, 71, 31, 63, 72,139, 85, 63,103, 51, 19, 63,228,213,100, 63, 72,156, 20, 63, 18, 82, 96, 63,128,133, 34, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,226, 50, 1, 62,184, 68, 20, 63, 64,199, 64, 62, 26, 40, 18, 63, 44,191, 67, 62, + 90, 89, 30, 63,194,204, 24, 62, 32,186, 34, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,242, 80, 56, 63, + 44,244, 6, 63,195,173, 54, 63,239,106,252, 62,115,205, 60, 63,213,150,253, 62,166, 14, 64, 63, 81, 80, 4, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,190, 85,147, 62, 91,176,252, 62,202, 36,160, 62, 94, 51,252, 62, 61,208,156, 62, +204, 16, 7, 63,160,121,140, 62, 74,197, 3, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,166, 14, 64, 63, + 81, 80, 4, 63,115,205, 60, 63,213,150,253, 62, 68,103, 73, 63,233,248, 0, 63,248, 12, 75, 63, 64,206, 8, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62,190, 85,147, 62, 91,176,252, 62,160,121,140, 62, + 74,197, 3, 63, 78,135,107, 62, 88,182, 7, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,248, 12, 75, 63, + 64,206, 8, 63, 68,103, 73, 63,233,248, 0, 63,239,151, 82, 63, 86,223, 3, 63,181,227, 82, 63,189,102, 11, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,144, 59,115, 62,102,143,255, 62, 78,135,107, 62, + 88,182, 7, 63,202, 98, 75, 62,108, 43, 10, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,181,227, 82, 63, +189,102, 11, 63,239,151, 82, 63, 86,223, 3, 63, 92,224, 91, 63,239,144, 5, 63,161,148, 90, 63,146, 95, 13, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,178, 40, 38, 62, 14,230, 3, 63, 82, 17, 77, 62,162, 98, 2, 63,202, 98, 75, 62, +108, 43, 10, 63, 10,162, 43, 62, 8, 50, 12, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120, 89,103, 63, +105, 76, 2, 63,170,179,103, 63,142,105, 12, 63,161,148, 90, 63,146, 95, 13, 63, 92,224, 91, 63,239,144, 5, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63,168, 41,231, 61,158, 83, 11, 63,116,128,234, 61, +200, 39, 0, 63,178, 40, 38, 62, 14,230, 3, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228,213,100, 63, + 72,156, 20, 63, 72,139, 85, 63,103, 51, 19, 63,161,148, 90, 63,146, 95, 13, 63,170,179,103, 63,142,105, 12, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, 64,199, 64, 62, 26, 40, 18, 63,226, 50, 1, 62, +184, 68, 20, 63,168, 41,231, 61,158, 83, 11, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72,139, 85, 63, +103, 51, 19, 63, 90,189, 77, 63,233, 88, 17, 63,181,227, 82, 63,189,102, 11, 63,161,148, 90, 63,146, 95, 13, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 22, 32, 96, 62, 66, 60, 16, 63, 64,199, 64, 62, + 26, 40, 18, 63, 10,162, 43, 62, 8, 50, 12, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 90,189, 77, 63, +233, 88, 17, 63,190,100, 70, 63,222,234, 15, 63,248, 12, 75, 63, 64,206, 8, 63,181,227, 82, 63,189,102, 11, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 86, 87,125, 62,174, 5, 15, 63, 22, 32, 96, 62, + 66, 60, 16, 63,202, 98, 75, 62,108, 43, 10, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,190,100, 70, 63, +222,234, 15, 63, 82,235, 60, 63, 27, 12, 12, 63,166, 14, 64, 63, 81, 80, 4, 63,248, 12, 75, 63, 64,206, 8, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,121,140, 62, 74,197, 3, 63, 78,230,145, 62,148,225, 11, 63, 86, 87,125, 62, +174, 5, 15, 63, 78,135,107, 62, 88,182, 7, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 31,118, 57, 63, +230, 79, 12, 63,242, 80, 56, 63, 44,244, 6, 63,166, 14, 64, 63, 81, 80, 4, 63, 82,235, 60, 63, 27, 12, 12, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,160,121,140, 62, 74,197, 3, 63, 61,208,156, 62,204, 16, 7, 63, 0,199,152, 62, + 13,133, 12, 63, 78,230,145, 62,148,225, 11, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,195,240, 57, 63, + 10,138, 23, 63, 82,235, 60, 63, 27, 12, 12, 63,190,100, 70, 63,222,234, 15, 63,106,242, 66, 63,202, 94, 25, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 86, 87,125, 62,174, 5, 15, 63, 78,230,145, 62,148,225, 11, 63,247, 7,150, 62, + 96, 12, 23, 63, 78,187,132, 62,180, 44, 24, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,216,120, 13, 63, +160, 81, 23, 63, 94,233, 23, 63,186, 60, 16, 63,220, 56, 28, 63, 66,250, 14, 63,109, 44, 39, 63,107,221, 19, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63,109,130,223, 62,118,165, 16, 63, 64, 27,245, 62, +100,166, 23, 63,156, 26,192, 62, 31,139, 20, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,176, 29, 56, 63, + 88,206, 20, 63, 31,118, 57, 63,230, 79, 12, 63, 82,235, 60, 63, 27, 12, 12, 63,195,240, 57, 63, 10,138, 23, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 78,230,145, 62,148,225, 11, 63, 0,199,152, 62, 13,133, 12, 63,239,211,153, 62, +220,159, 20, 63,247, 7,150, 62, 96, 12, 23, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 48,148, 54, 63, +220,206, 22, 63,176, 29, 56, 63, 88,206, 20, 63,195,240, 57, 63, 10,138, 23, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,247, 7,150, 62, 96, 12, 23, 63,239,211,153, 62,220,159, 20, 63,108,106,156, 62, +146,154, 22, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,195,173, 54, 63, +239,106,252, 62,154, 88, 53, 63,240,146,221, 62, 53, 64, 74, 63,171, 31,224, 62,115,205, 60, 63,213,150,253, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,184,112,114, 62,248,169,220, 62,128,172,162, 62, 17,169,221, 62,202, 36,160, 62, + 94, 51,252, 62,190, 85,147, 62, 91,176,252, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 53, 64, 74, 63, +171, 31,224, 62,217,106, 81, 63, 14,214,232, 62, 68,103, 73, 63,233,248, 0, 63,115,205, 60, 63,213,150,253, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62, 88, 93, 84, 62, 50,105,228, 62,184,112,114, 62, +248,169,220, 62,190, 85,147, 62, 91,176,252, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, + 14,214,232, 62,106,154, 93, 63,226, 26,233, 62,239,151, 82, 63, 86,223, 3, 63, 68,103, 73, 63,233,248, 0, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,128, 1, 33, 62, 70,210,226, 62, 88, 93, 84, 62, + 50,105,228, 62,144, 59,115, 62,102,143,255, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120, 89,103, 63, +105, 76, 2, 63, 92,224, 91, 63,239,144, 5, 63,239,151, 82, 63, 86,223, 3, 63,106,154, 93, 63,226, 26,233, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,178, 40, 38, 62, 14,230, 3, 63,116,128,234, 61, +200, 39, 0, 63,128, 1, 33, 62, 70,210,226, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 8, 7, 51, 63, + 5,186,130, 62,226, 77, 72, 63,204, 21,121, 62,154,254, 73, 63,178, 82,140, 62, 90,188, 56, 63,103,207,159, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62,132, 32,137, 62,181, 65,121, 62, 18,197,172, 62, + 41,112,133, 62,192, 5,161, 62,228, 40,159, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,224, 19, 69, 63, + 24, 68,190, 62, 90,188, 56, 63,103,207,159, 62,154,254, 73, 63,178, 82,140, 62,216,217, 77, 63, 7,228,157, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,249,249,130, 62,246,175,137, 62,192, 5,161, 62,228, 40,159, 62,250, 78,134, 62, +148,213,186, 62,154,118,111, 62,120,108,152, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,240,117, 49, 63, +164,138,198, 62,156,160, 41, 63, 56,175,182, 62, 90,188, 56, 63,103,207,159, 62,224, 19, 69, 63, 24, 68,190, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62,202,212,188, 62,245,163,182, 62,147,137,172, 62, +148, 19,198, 62,250, 78,134, 62,148,213,186, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,156,160, 41, 63, + 56,175,182, 62,222,170, 33, 63, 74,126,158, 62, 91, 60, 36, 63,221,222,150, 62, 90,188, 56, 63,103,207,159, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 72,234,204, 62, 56, 63,159, 62,202,212,188, 62, +245,163,182, 62,192, 5,161, 62,228, 40,159, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 91, 60, 36, 63, +221,222,150, 62, 8, 7, 51, 63, 5,186,130, 62, 90,188, 56, 63,103,207,159, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62, 18,197,172, 62, 41,112,133, 62,150,245,199, 62, + 85, 15,152, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,156,160, 41, 63, + 56,175,182, 62,102,212, 31, 63,144,192,164, 62,222,170, 33, 63, 74,126,158, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 17,119,208, 62,201, 65,165, 62,202,212,188, 62, +245,163,182, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,226, 44,245, 62, +129,140, 96, 63, 42,135,227, 62, 58, 2,101, 63,136,168,219, 62, 30,236, 95, 63,135, 30,238, 62,200, 41, 90, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216,240,137, 62, 90,226, 93, 63,110,103,122, 62,236,255, 92, 63, 74, 84,120, 62, +104, 32, 83, 63, 32,193,138, 62, 16, 3, 83, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 48,130,233, 62, +188, 69, 83, 63,135, 30,238, 62,200, 41, 90, 63,136,168,219, 62, 30,236, 95, 63, 23, 73,212, 62,152,239, 90, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216,240,137, 62, 90,226, 93, 63, 32,193,138, 62, 16, 3, 83, 63, 66, 1,153, 62, +245,149, 81, 63, 84, 66,150, 62,114,154, 94, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216,217, 77, 63, + 7,228,157, 62,154,254, 73, 63,178, 82,140, 62, 33, 61, 90, 63,195,207,124, 62,160,225, 90, 63,110,121,137, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 98,207, 81, 62,109, 1,110, 62,249,249,130, 62,246,175,137, 62,154,118,111, 62, +120,108,152, 62,166,125, 74, 62,252, 30,130, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,226, 77, 72, 63, +204, 21,121, 62,202,106, 84, 63,137,185,113, 62, 33, 61, 90, 63,195,207,124, 62,154,254, 73, 63,178, 82,140, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 98,207, 81, 62,109, 1,110, 62,168,179,107, 62,139,127,103, 62,132, 32,137, 62, +181, 65,121, 62,249,249,130, 62,246,175,137, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 23, 73,212, 62, +152,239, 90, 63,136,168,219, 62, 30,236, 95, 63,100,192,205, 62, 46,238, 97, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,228, 94,141, 62, 86,234,100, 63,216,240,137, 62, 90,226, 93, 63, 84, 66,150, 62, +114,154, 94, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 31,178,109, 63, +224, 68,228, 62, 46,178,102, 63,100,184,232, 62,100,251,101, 63,238,198,227, 62, 94,173,107, 63,168,130,225, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62,120,216,242, 61,124, 40,225, 62, 28, 27,177, 61, + 42,240,219, 62, 76,131,196, 61,196, 97,216, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 31,178,109, 63, +224, 68,228, 62, 94,173,107, 63,168,130,225, 62,144,102,114, 63,198, 23,220, 62, 41, 76,116, 63,139,153,222, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 56,163,120, 61, 58,252,208, 62, 76,131,196, 61,196, 97,216, 62, 28, 27,177, 61, + 42,240,219, 62,128,183, 73, 61, 84,108,213, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 41, 76,116, 63, +139,153,222, 62,144,102,114, 63,198, 23,220, 62, 84, 87,117, 63,221,255,211, 62,183,115,119, 63,140, 49,215, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,144, 29, 55, 61,207,183,194, 62, 56,163,120, 61, 58,252,208, 62,128,183, 73, 61, + 84,108,213, 62,224,111,231, 60,100,142,198, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,183,115,119, 63, +140, 49,215, 62, 84, 87,117, 63,221,255,211, 62,150, 20,118, 63, 60,110,196, 62, 49, 12,122, 63,246, 8,197, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 96,197,103, 61, 15,206,170, 62,144, 29, 55, 61,207,183,194, 62,224,111,231, 60, +100,142,198, 62,240, 54, 16, 61,120, 4,167, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 49, 12,122, 63, +246, 8,197, 62,150, 20,118, 63, 60,110,196, 62, 17,155,108, 63,130,201,178, 62, 84,190,110, 63,223, 77,172, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,148,252,246, 61,164,116,160, 62, 96,197,103, 61, 15,206,170, 62,240, 54, 16, 61, +120, 4,167, 62, 8, 66,246, 61, 28,161,152, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 84,190,110, 63, +223, 77,172, 62, 17,155,108, 63,130,201,178, 62, 21,180, 92, 63,202, 95,173, 62,151, 5, 90, 63,138, 61,167, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62,148,252,246, 61,164,116,160, 62, 8, 66,246, 61, + 28,161,152, 62,194,251, 66, 62,163,102,158, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 17,155,108, 63, +130,201,178, 62,198,132,109, 63,182,157,186, 62, 68, 32, 97, 63,192, 12,178, 62, 21,180, 92, 63,202, 95,173, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 48,185, 36, 62, 16, 7,166, 62, 40, 91,221, 61, 4,194,167, 62,148,252,246, 61, +164,116,160, 62,144,216, 54, 62, 35, 76,163, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,150, 20,118, 63, + 60,110,196, 62, 84,225,115, 63,208, 85,198, 62,198,132,109, 63,182,157,186, 62, 17,155,108, 63,130,201,178, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 40, 91,221, 61, 4,194,167, 62,244,221,134, 61,121,164,175, 62, 96,197,103, 61, + 15,206,170, 62,148,252,246, 61,164,116,160, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 84, 87,117, 63, +221,255,211, 62,222, 48,116, 63,169, 8,209, 62, 84,225,115, 63,208, 85,198, 62,150, 20,118, 63, 60,110,196, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,244,221,134, 61,121,164,175, 62,160,108, 93, 61, 17,207,190, 62,144, 29, 55, 61, +207,183,194, 62, 96,197,103, 61, 15,206,170, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,144,102,114, 63, +198, 23,220, 62,174,151,113, 63, 26,229,214, 62,222, 48,116, 63,169, 8,209, 62, 84, 87,117, 63,221,255,211, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,108, 93, 61, 17,207,190, 62, 12,155,135, 61,166, 39,201, 62, 56,163,120, 61, + 58,252,208, 62,144, 29, 55, 61,207,183,194, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 94,173,107, 63, +168,130,225, 62,228,239,107, 63, 62, 59,218, 62,174,151,113, 63, 26,229,214, 62,144,102,114, 63,198, 23,220, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 12,155,135, 61,166, 39,201, 62,128, 47,195, 61, 6, 11,207, 62, 76,131,196, 61, +196, 97,216, 62, 56,163,120, 61, 58,252,208, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 94,173,107, 63, +168,130,225, 62,100,251,101, 63,238,198,227, 62, 71,205,102, 63,132, 94,219, 62,228,239,107, 63, 62, 59,218, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,192,157,244, 61,157,137,209, 62, 68,209,249, 61, 70,134,219, 62, 76,131,196, 61, +196, 97,216, 62,128, 47,195, 61, 6, 11,207, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,224, 19, 69, 63, + 24, 68,190, 62,216,217, 77, 63, 7,228,157, 62,236, 35, 85, 63,164,201,181, 62, 56, 92, 78, 63,177,114,188, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,122, 91, 80, 62, 72, 18,174, 62,154,118,111, 62,120,108,152, 62,250, 78,134, 62, +148,213,186, 62,162,163,104, 62,150,180,182, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,216,217, 77, 63, + 7,228,157, 62,151, 5, 90, 63,138, 61,167, 62, 21,180, 92, 63,202, 95,173, 62,236, 35, 85, 63,164,201,181, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,144,216, 54, 62, 35, 76,163, 62,194,251, 66, 62,163,102,158, 62,154,118,111, 62, +120,108,152, 62,122, 91, 80, 62, 72, 18,174, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 53, 64, 74, 63, +171, 31,224, 62,224, 19, 69, 63, 24, 68,190, 62, 56, 92, 78, 63,177,114,188, 62,217,106, 81, 63, 14,214,232, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,162,163,104, 62,150,180,182, 62,250, 78,134, 62,148,213,186, 62,184,112,114, 62, +248,169,220, 62, 88, 93, 84, 62, 50,105,228, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,106,154, 93, 63, +226, 26,233, 62,196,229, 94, 63,128,195,224, 62,100,251,101, 63,238,198,227, 62, 46,178,102, 63,100,184,232, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62,108,187, 28, 62, 48, 86,217, 62,128, 1, 33, 62, + 70,210,226, 62,120,216,242, 61,124, 40,225, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 21,180, 92, 63, +202, 95,173, 62, 68, 32, 97, 63,192, 12,178, 62, 9,215, 94, 63, 4, 54,186, 62,236, 35, 85, 63,164,201,181, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, 48,185, 36, 62, 16, 7,166, 62,144,216, 54, 62, + 35, 76,163, 62,122, 91, 80, 62, 72, 18,174, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,230, 78, 95, 63, + 4,233,189, 62, 32,188, 86, 63, 44, 62,190, 62,236, 35, 85, 63,164,201,181, 62, 9,215, 94, 63, 4, 54,186, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 78,118, 71, 62, 27, 49,182, 62, 52,225, 37, 62, + 40, 12,179, 62, 60,122, 41, 62, 16, 58,175, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 70,166, 92, 63, + 0,166,197, 62, 32,188, 86, 63, 44, 62,190, 62,230, 78, 95, 63, 4,233,189, 62,226, 13, 95, 63, 37,152,194, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 78,118, 71, 62, 27, 49,182, 62,142,143, 45, 62, +237, 37,188, 62,106,230, 36, 62,222, 27,184, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,248, 90, 95, 63, +100,122,207, 62,108,249, 90, 63, 58,199,212, 62, 32,188, 86, 63, 44, 62,190, 62, 70,166, 92, 63, 0,166,197, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62,110, 56, 48, 62,230, 43,205, 62,174,250, 30, 62, + 26, 12,198, 62,142,143, 45, 62,237, 37,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,196,229, 94, 63, +128,195,224, 62,108,249, 90, 63, 58,199,212, 62,248, 90, 95, 63,100,122,207, 62, 92,104, 98, 63,197,136,215, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62,110, 56, 48, 62,230, 43,205, 62,108,187, 28, 62, + 48, 86,217, 62,212, 59, 15, 62,224, 50,206, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,100,251,101, 63, +238,198,227, 62,196,229, 94, 63,128,195,224, 62, 92,104, 98, 63,197,136,215, 62, 71,205,102, 63,132, 94,219, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62,108,187, 28, 62, 48, 86,217, 62, 68,209,249, 61, + 70,134,219, 62,192,157,244, 61,157,137,209, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, + 14,214,232, 62,108,249, 90, 63, 58,199,212, 62,196,229, 94, 63,128,195,224, 62,106,154, 93, 63,226, 26,233, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,108,187, 28, 62, 48, 86,217, 62,110, 56, 48, 62,230, 43,205, 62, 88, 93, 84, 62, + 50,105,228, 62,128, 1, 33, 62, 70,210,226, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,217,106, 81, 63, + 14,214,232, 62, 56, 92, 78, 63,177,114,188, 62, 32,188, 86, 63, 44, 62,190, 62,108,249, 90, 63, 58,199,212, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62,162,163,104, 62,150,180,182, 62, 88, 93, 84, 62, + 50,105,228, 62,110, 56, 48, 62,230, 43,205, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 56, 92, 78, 63, +177,114,188, 62,236, 35, 85, 63,164,201,181, 62, 32,188, 86, 63, 44, 62,190, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62,122, 91, 80, 62, 72, 18,174, 62,162,163,104, 62, +150,180,182, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 71,205,102, 63, +132, 94,219, 62, 92,104, 98, 63,197,136,215, 62,182,109,100, 63,149,255,210, 62, 54, 86,104, 63,209,241,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,107, 7, 62, 34,103,200, 62,212, 59, 15, 62,224, 50,206, 62,192,157,244, 61, +157,137,209, 62, 8, 2,232, 61, 20,214,203, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92,104, 98, 63, +197,136,215, 62,248, 90, 95, 63,100,122,207, 62,112,206, 97, 63, 10,202,204, 62,182,109,100, 63,149,255,210, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62,174,250, 30, 62, 26, 12,198, 62,212, 59, 15, 62, +224, 50,206, 62,160,107, 7, 62, 34,103,200, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,248, 90, 95, 63, +100,122,207, 62, 70,166, 92, 63, 0,166,197, 62, 82,241, 94, 63, 40,103,198, 62,112,206, 97, 63, 10,202,204, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 20,225, 35, 62, 39, 50,188, 62,142,143, 45, 62,237, 37,188, 62,174,250, 30, 62, + 26, 12,198, 62, 64, 68, 21, 62,107, 55,194, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 70,166, 92, 63, + 0,166,197, 62,226, 13, 95, 63, 37,152,194, 62,118, 1, 97, 63, 47,226,195, 62, 82,241, 94, 63, 40,103,198, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 12, 43, 28, 62,186,177,184, 62,106,230, 36, 62,222, 27,184, 62,142,143, 45, 62, +237, 37,188, 62, 20,225, 35, 62, 39, 50,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,226, 13, 95, 63, + 37,152,194, 62,230, 78, 95, 63, 4,233,189, 62, 51,113, 97, 63, 92,151,189, 62,118, 1, 97, 63, 47,226,195, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,104, 67, 29, 62, 58,199,177, 62, 52,225, 37, 62, 40, 12,179, 62,106,230, 36, 62, +222, 27,184, 62, 12, 43, 28, 62,186,177,184, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,230, 78, 95, 63, + 4,233,189, 62, 9,215, 94, 63, 4, 54,186, 62, 96, 69, 96, 63,152,133,187, 62, 51,113, 97, 63, 92,151,189, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,140, 14, 35, 62, 33, 19,176, 62, 60,122, 41, 62, 16, 58,175, 62, 52,225, 37, 62, + 40, 12,179, 62,104, 67, 29, 62, 58,199,177, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 9,215, 94, 63, + 4, 54,186, 62, 68, 32, 97, 63,192, 12,178, 62,112, 91, 98, 63,149,128,182, 62, 96, 69, 96, 63,152,133,187, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228,107, 29, 62, 95,230,169, 62, 48,185, 36, 62, 16, 7,166, 62, 60,122, 41, 62, + 16, 58,175, 62,140, 14, 35, 62, 33, 19,176, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228,239,107, 63, + 62, 59,218, 62, 71,205,102, 63,132, 94,219, 62, 54, 86,104, 63,209,241,214, 62, 34, 27,109, 63,155,254,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 8, 2,232, 61, 20,214,203, 62,192,157,244, 61,157,137,209, 62,128, 47,195, 61, + 6, 11,207, 62, 36,174,184, 61,216,130,202, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,174,151,113, 63, + 26,229,214, 62,228,239,107, 63, 62, 59,218, 62, 34, 27,109, 63,155,254,214, 62, 69,134,113, 63,156, 82,212, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 36,174,184, 61,216,130,202, 62,128, 47,195, 61, 6, 11,207, 62, 12,155,135, 61, +166, 39,201, 62, 60,114,138, 61, 28, 61,197, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,222, 48,116, 63, +169, 8,209, 62,174,151,113, 63, 26,229,214, 62, 69,134,113, 63,156, 82,212, 62, 42,143,114, 63, 24,168,207, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62, 12,155,135, 61,166, 39,201, 62,160,108, 93, 61, + 17,207,190, 62,184, 85,132, 61, 22,211,189, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 84,225,115, 63, +208, 85,198, 62,222, 48,116, 63,169, 8,209, 62, 42,143,114, 63, 24,168,207, 62,203,125,114, 63, 96,114,200, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,184, 85,132, 61, 22,211,189, 62,160,108, 93, 61, 17,207,190, 62,244,221,134, 61, +121,164,175, 62, 16,152,145, 61, 84,214,179, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,198,132,109, 63, +182,157,186, 62, 84,225,115, 63,208, 85,198, 62,203,125,114, 63, 96,114,200, 62,177,192,109, 63,152,240,190, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 16,152,145, 61, 84,214,179, 62,244,221,134, 61,121,164,175, 62, 40, 91,221, 61, + 4,194,167, 62, 64,226,208, 61,232, 58,172, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 68, 32, 97, 63, +192, 12,178, 62,198,132,109, 63,182,157,186, 62,177,192,109, 63,152,240,190, 62,112, 91, 98, 63,149,128,182, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64,226,208, 61,232, 58,172, 62, 40, 91,221, 61, 4,194,167, 62, 48,185, 36, 62, + 16, 7,166, 62,228,107, 29, 62, 95,230,169, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,118, 1, 97, 63, + 47,226,195, 62, 51,113, 97, 63, 92,151,189, 62,215,139,102, 63, 15,109,193, 62, 54, 47,100, 63,186,115,198, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,104, 67, 29, 62, 58,199,177, 62, 12, 43, 28, 62, +186,177,184, 62, 50, 97, 13, 62, 50, 42,186, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 54, 47,100, 63, +186,115,198, 62,215,139,102, 63, 15,109,193, 62,174,241,105, 63,204, 8,200, 62, 71,233,103, 63,178, 42,204, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62, 92,169, 5, 62,168,115,179, 62, 50, 97, 13, 62, + 50, 42,186, 62, 92,248,243, 61, 96, 22,191, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 71,233,103, 63, +178, 42,204, 62,174,241,105, 63,204, 8,200, 62, 51, 37,108, 63,249, 3,205, 62, 56,212,106, 63, 96,238,208, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62,228,171,229, 61, 41, 42,185, 62, 92,248,243, 61, + 96, 22,191, 62,160,209,211, 61,108,159,195, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 56,212,106, 63, + 96,238,208, 62, 51, 37,108, 63,249, 3,205, 62, 56, 73,110, 63,186,119,206, 62, 46,191,109, 63, 92, 64,210, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,120, 99,202, 61,192, 49,190, 62,160,209,211, 61, +108,159,195, 62,196,129,181, 61,204, 14,196, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 34, 27,109, 63, +155,254,214, 62, 54, 86,104, 63,209,241,214, 62, 56,212,106, 63, 96,238,208, 62, 46,191,109, 63, 92, 64,210, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62, 8, 2,232, 61, 20,214,203, 62, 36,174,184, 61, +216,130,202, 62,196,129,181, 61,204, 14,196, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,182,109,100, 63, +149,255,210, 62, 71,233,103, 63,178, 42,204, 62, 56,212,106, 63, 96,238,208, 62, 54, 86,104, 63,209,241,214, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62, 92,248,243, 61, 96, 22,191, 62,160,107, 7, 62, + 34,103,200, 62, 8, 2,232, 61, 20,214,203, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,182,109,100, 63, +149,255,210, 62,112,206, 97, 63, 10,202,204, 62, 54, 47,100, 63,186,115,198, 62, 71,233,103, 63,178, 42,204, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 50, 97, 13, 62, 50, 42,186, 62, 64, 68, 21, 62,107, 55,194, 62,160,107, 7, 62, + 34,103,200, 62, 92,248,243, 61, 96, 22,191, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,118, 1, 97, 63, + 47,226,195, 62, 54, 47,100, 63,186,115,198, 62,112,206, 97, 63, 10,202,204, 62, 82,241, 94, 63, 40,103,198, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62, 50, 97, 13, 62, 50, 42,186, 62, 12, 43, 28, 62, +186,177,184, 62, 20,225, 35, 62, 39, 50,188, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 96, 69, 96, 63, +152,133,187, 62,112, 91, 98, 63,149,128,182, 62,215,139,102, 63, 15,109,193, 62, 51,113, 97, 63, 92,151,189, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,228,107, 29, 62, 95,230,169, 62,140, 14, 35, 62, + 33, 19,176, 62,104, 67, 29, 62, 58,199,177, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,177,192,109, 63, +152,240,190, 62,174,241,105, 63,204, 8,200, 62,215,139,102, 63, 15,109,193, 62,112, 91, 98, 63,149,128,182, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,228,171,229, 61, 41, 42,185, 62, 64,226,208, 61, +232, 58,172, 62,228,107, 29, 62, 95,230,169, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,203,125,114, 63, + 96,114,200, 62, 51, 37,108, 63,249, 3,205, 62,174,241,105, 63,204, 8,200, 62,177,192,109, 63,152,240,190, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62,120, 99,202, 61,192, 49,190, 62, 16,152,145, 61, + 84,214,179, 62, 64,226,208, 61,232, 58,172, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 42,143,114, 63, + 24,168,207, 62, 56, 73,110, 63,186,119,206, 62, 51, 37,108, 63,249, 3,205, 62,203,125,114, 63, 96,114,200, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62,244,234,179, 61,240,219,190, 62,184, 85,132, 61, + 22,211,189, 62, 16,152,145, 61, 84,214,179, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 69,134,113, 63, +156, 82,212, 62, 46,191,109, 63, 92, 64,210, 62, 56, 73,110, 63,186,119,206, 62, 42,143,114, 63, 24,168,207, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,196,129,181, 61,204, 14,196, 62, 60,114,138, 61, + 28, 61,197, 62,184, 85,132, 61, 22,211,189, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 34, 27,109, 63, +155,254,214, 62, 46,191,109, 63, 92, 64,210, 62, 69,134,113, 63,156, 82,212, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62,196,129,181, 61,204, 14,196, 62, 36,174,184, 61, +216,130,202, 62, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 84,190,110, 63, +223, 77,172, 62,151, 5, 90, 63,138, 61,167, 62, 22, 25, 96, 63,246,248,149, 62,162,176,122, 63,145,215,161, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 64,234, 54, 62,146,219,140, 62,194,251, 66, 62,163,102,158, 62, 8, 66,246, 61, + 28,161,152, 62,172,241,189, 61, 13,107,132, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 49, 12,122, 63, +246, 8,197, 62, 84,190,110, 63,223, 77,172, 62,162,176,122, 63,145,215,161, 62,188,255,126, 63,115,248,198, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,172,241,189, 61, 13,107,132, 62, 8, 66,246, 61, 28,161,152, 62,240, 54, 16, 61, +120, 4,167, 62, 0, 8,163, 58, 39, 69,162, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,183,115,119, 63, +140, 49,215, 62, 49, 12,122, 63,246, 8,197, 62,188,255,126, 63,115,248,198, 62, 47, 6,122, 63,248,157,216, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 8,163, 58, 39, 69,162, 62,240, 54, 16, 61,120, 4,167, 62,224,111,231, 60, +100,142,198, 62,224,248, 14, 60, 70,141,198, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 41, 76,116, 63, +139,153,222, 62,183,115,119, 63,140, 49,215, 62, 47, 6,122, 63,248,157,216, 62,134, 98,119, 63,204, 37,225, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,224,248, 14, 60, 70,141,198, 62,224,111,231, 60,100,142,198, 62,128,183, 73, 61, + 84,108,213, 62, 80,210,229, 60, 32,239,218, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 31,178,109, 63, +224, 68,228, 62, 41, 76,116, 63,139,153,222, 62,134, 98,119, 63,204, 37,225, 62, 46,185,115, 63, 90,157,234, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 80,210,229, 60, 32,239,218, 62,128,183, 73, 61, 84,108,213, 62, 28, 27,177, 61, + 42,240,219, 62, 56,103,122, 61, 30, 10,230, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 46,178,102, 63, +100,184,232, 62, 31,178,109, 63,224, 68,228, 62, 46,185,115, 63, 90,157,234, 62,244,134,106, 63,234, 64,246, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 56,103,122, 61, 30, 10,230, 62, 28, 27,177, 61, 42,240,219, 62,120,216,242, 61, +124, 40,225, 62,212,222,209, 61,238,123,240, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,235,188, 5, 63, +252, 74, 98, 63,200,111,248, 62,197,105,112, 63, 0, 49,231, 62,118,190,107, 63,150, 57,255, 62, 53, 14, 96, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 80, 99, 95, 62,149,194, 94, 63, 58, 8, 62, 62, 10,154, 89, 63, 40, 24, 92, 62, + 14, 82, 74, 63,112, 11,112, 62,157,133, 78, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,235,188, 5, 63, +252, 74, 98, 63,136,139, 12, 63,138,233,101, 63,116, 45, 6, 63,112,245,113, 63,200,111,248, 62,197,105,112, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 68,219, 36, 62,249,186, 81, 63, 28,254, 65, 62, 20, 55, 70, 63, 40, 24, 92, 62, + 14, 82, 74, 63, 58, 8, 62, 62, 10,154, 89, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,136,139, 12, 63, +138,233,101, 63, 5,130, 12, 63,149,216,108, 63,116, 45, 6, 63,112,245,113, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 68,219, 36, 62,249,186, 81, 63, 76, 1, 42, 62, 39,178, 73, 63, 28,254, 65, 62, + 20, 55, 70, 63, 0, 0,128, 63, 0, 0,128, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,120, 89,103, 63, +105, 76, 2, 63,106,154, 93, 63,226, 26,233, 62, 46,178,102, 63,100,184,232, 62,244,134,106, 63,234, 64,246, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,120,216,242, 61,124, 40,225, 62,128, 1, 33, 62, 70,210,226, 62,116,128,234, 61, +200, 39, 0, 63,212,222,209, 61,238,123,240, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,226, 44,245, 62, +129,140, 96, 63,150, 57,255, 62, 53, 14, 96, 63, 0, 49,231, 62,118,190,107, 63, 42,135,227, 62, 58, 2,101, 63,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 80, 99, 95, 62,149,194, 94, 63,112, 11,112, 62,157,133, 78, 63, 74, 84,120, 62, +104, 32, 83, 63,110,103,122, 62,236,255, 92, 63,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,216,217, 77, 63, + 7,228,157, 62,160,225, 90, 63,110,121,137, 62, 22, 25, 96, 63,246,248,149, 62,151, 5, 90, 63,138, 61,167, 62,136,168, 49, 3, + 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 64,234, 54, 62,146,219,140, 62,166,125, 74, 62,252, 30,130, 62,154,118,111, 62, +120,108,152, 62,194,251, 66, 62,163,102,158, 62,136,168, 49, 3, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 68, 65, 84, 65, + 64, 31, 0, 0,168, 76, 53, 3, 0, 0, 0, 0, 53, 0, 0, 0,208, 7, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -7851,317 +8375,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 77, 69, 0, 0, 24, 1, 0, 0,112, 96,182, 3, 52, 0, 0, 0, 1, 0, 0, 0,152,139,182, 3,176, 94,181, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 97,182, 3, - 16,123,182, 3, 64,127,182, 3, 0, 0, 0, 0,120, 99,182, 3, 16,112,182, 3, 0, 0, 0, 0, 56,136,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 97,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,110,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,121,182, 3, - 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0,198, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63, -214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,184, 97,182, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,240, 97,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 99,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 10, 0, 0,120, 99,182, 3, 58, 0, 0, 0,116, 0, 0, 0, -223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, -242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, -250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, -250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -127,212,140,184,242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, -250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, -248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192, -129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, - 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, -238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64,238, 35,190, 64,255, 63, 1,192, -129, 90,255, 0, 0, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -102, 32, 87,192, 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, -244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, -217, 29, 87, 64,112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, -244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, -247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -159,115, 6, 65,146, 30,215, 64, 74, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,135, 43,100,192,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -150, 30,215, 64,151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, - 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 14, 29,152, 63,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -150, 30,215, 64,151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, -135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 72, 36,190,192, 1,192, 1,192, -129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, -213, 91,136,184, 43, 3,114, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, -129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65,129, 43,100, 64,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, -234, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,246, 28,152, 63,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, - 30, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 18, 29,152,191,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -213, 91,136,184, 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, -153, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,147, 43,100,192,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -213, 91,136,184, 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -222, 33,215,191,183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, -154, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -182,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, - 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192, -129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,122, 31,215,192,180,115, 6, 65, - 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192,114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -191, 87,161,192,148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65, -139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, - 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, -253, 28,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, -136, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -172,163,138,184,181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192, -129, 90,255, 0, 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0,136,110,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,112,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 9, 0, 0, 16,112,182, 3, 55, 0, 0, 0,198, 0, 0, 0, 21, 0, 0, 0, - 82, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, - 18, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 34, 0, 28, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, - 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, - 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, - 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, - 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 3, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, - 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 34, 0, 9, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, - 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 29, 0, 0, 0, - 0, 0, 34, 0, 6, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, - 23, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 34, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, - 98, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, - 37, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, - 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 86, 0, 0, 0, - 0, 0, 34, 0, 56, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, -114, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, - 52, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,114, 0, 0, 0, - 0, 0, 34, 0, 42, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, - 43, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, - 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 34, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, - 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, - 58, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 34, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, - 63, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, - 46, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 34, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, -102, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, - 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 34, 0, 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, - 81, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0,112, 0, 0, 0, - 0, 0, 34, 0, 78, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, - 85, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, - 85, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 88, 0, 0, 0, - 0, 0, 34, 0, 87, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, - 87, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, - 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 92, 0, 0, 0, - 0, 0, 34, 0, 87, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, - 90, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, - 92, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, - 97, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, - 78, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, - 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0, -103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, -105, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, - 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, -109, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,112, 0, 0, 0, - 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, -112, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,111, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0,111, 0, 0, 0, - 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0,136,121,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,123,182, 3, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,127,182, 3, - 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56,136,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,252, 3, 0, 0, 16,123,182, 3, 54, 0, 0, 0, 51, 0, 0, 0, - 18, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 5, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, - 12, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 16, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 42, 0, 0, 0, 65, 0, 0, 0,114, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, - 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 53, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, - 56, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 58, 0, 0, 0, 57, 0, 0, 0, - 0, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 68, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 51, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, 76, 0, 0, 0, - 85, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 84, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 21, 0, 0, 0, 82, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, - 0, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 87, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 75, 0, 0, 0, - 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 92, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, - 60, 0, 0, 0, 86, 0, 0, 0, 90, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 97, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 73, 0, 0, 0, 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, - 0, 0, 0, 0, 78, 0, 0, 0, 52, 0, 0, 0, 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, - 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 39, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 72, 0, 0, 0, 41, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, -109, 0, 0, 0,105, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, - 0, 0, 0, 0,106, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0,112, 0, 0, 0, -108, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,110, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0,115, 0, 0, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0,111, 0, 0, 0, -112, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 77, 0, 0, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -196, 8, 0, 0, 64,127,182, 3, 65, 0, 0, 0, 51, 0, 0, 0,250,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, - 84,162,203, 62, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, - 96,211, 93, 59,146,128, 81, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, -225,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59,251,168, 27, 63, - 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -227,151,158, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59, 85,162,203, 62, - 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59, -142,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, -247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, - 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59, -248,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63, -236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, - 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, - 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, - 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, - 72, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63, -174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63, -173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63, -111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, -188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63, -236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, -172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189, -120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 56,127,118,190,220, 28, 3, 63, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61,244, 65, 79, 63,200, 84,104, 61,242, 65, 79, 63, - 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63,122, 84,181, 62, -113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -200, 84,104, 61,242, 65, 79, 63, 96,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62, -102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, - 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61, -242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63, -122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190, -216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63, -173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,180,131,140, 63,116, 19,186, 62, -244,140,159, 63, 50, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62,112,226, 76, 63, 64, 38,135, 61,240,244,114, 63, - 4,221, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 61, 84,181, 62,176,104,169,189, - 93,189, 0, 63, 80, 1,109,190,248,207, 38, 63,144,109,169,189, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63, -116, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, 96, 44,135, 61, - 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, -236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -188,188, 0, 63,120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 52,207, 38, 63,248, 28, 3, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62,144, 82,104, 61,128,223, 91, 62,138, 94, 82, 62, - 48, 43,135, 61,122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, -127, 84,181, 62,242, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, -248, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 56,207, 38, 63,111,179,141, 63, -188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63,128,106,188,189,176, 20,186, 62, -160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 3, 0, 0, 56,136,182, 3, - 59, 0, 0, 0,204, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -8186,890 +8399,16 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, -152,139,182, 3, 52, 0, 0, 0, 1, 0, 0, 0,168,181,182, 3,112, 96,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, - 97,110,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,140,182, 3,192,165,182, 3,200,169,182, 3, - 0, 0, 0, 0,160,142,182, 3, 8,155,182, 3, 0, 0, 0, 0,104,178,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,141,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153,182, 3, - 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,164,182, 3, 3, 0, 0, 0, 5, 0, 0, 0, - 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0,192, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,224,140,182, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 24,141,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,142,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,176, 10, 0, 0,160,142,182, 3, 58, 0, 0, 0,114, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65, - 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192, -129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65, - 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -172,163,138,184,181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64, - 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64, - 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64, - 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, -148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, - 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, -244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -191, 87,161,192,148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192,114, 59, 60, 65, -127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, -192, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, - 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192, -129, 90,255, 0, 0, 0, 0, 0,182,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, -183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, - 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192,129, 90,127,165, - 0, 0,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0, -199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, -147, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0, -199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, - 18, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0, -199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, -246, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0, -199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65, -129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 72, 36,190,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, - 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, - 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, - 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, - 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, -135, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64, - 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, -127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, -247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, -239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64,127,165,127,165, - 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, -244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0, - 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, -242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192, -129, 90,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, -245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, -127,212,140,184,242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, -245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, -245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, - 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, -247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0, -255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, -223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191, -245, 35,190, 64, 0, 0, 42,221, 41,123,255, 0, 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191, 74, 36,190,192, 0, 0, 42,221, -215,132,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,128,153,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,155,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 9, 0, 0, 8,155,182, 3, 55, 0, 0, 0, -192, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, - 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, - 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, - 18, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 20, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, - 25, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 34, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, - 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 34, 0, 27, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, - 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 34, 0, 2, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, - 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, - 0, 0, 34, 0, 30, 0, 0, 0, 38, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0, - 13, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 45, 0, 0, 0, - 0, 0, 34, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, - 46, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 34, 0, 48, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, - 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, - 56, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, - 58, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, - 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 68, 0, 0, 0, - 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, - 70, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, - 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, - 33, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, - 71, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 76, 0, 0, 0, - 0, 0, 34, 0, 15, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, - 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 34, 0, 81, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, -105, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, - 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,110, 0, 0, 0, - 0, 0, 34, 0, 86, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, - 98, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, - 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0,107, 0, 0, 0, - 0, 0, 34, 0, 91, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, - 91, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, - 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, - 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, -100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, - 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, -102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, -104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,107, 0, 0, 0, - 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0, -111, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, -106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 34, 0, 58, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, - 31, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, 56,164,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,165,182, 3, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,169,182, 3, - 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104,178,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,212, 3, 0, 0,192,165,182, 3, 54, 0, 0, 0, 49, 0, 0, 0, - 35, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, - 11, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 43, 0, 0, 0, 42, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 12, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, - 76, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 25, 0, 0, 0, - 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 26, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, - 33, 0, 0, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, - 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 0, 48, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, - 46, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 51, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, - 56, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 84, 0, 0, 0, - 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 85, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, - 78, 0, 0, 0, 83, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 61, 0, 0, 0, 57, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 70, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, - 53, 0, 0, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 64, 0, 0, 0, 77, 0, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, - 82, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0,101, 0, 0, 0, 97, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0, -102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0, 84, 0, 0, 0, - 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 86, 0, 0, 0, - 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, - 92, 0, 0, 0, 93, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,108, 8, 0, 0,200,169,182, 3, - 65, 0, 0, 0, 49, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, - 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, -102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -160, 84,104, 61, 0, 29, 3, 63,128,106,188,189,176, 20,186, 62,144, 82,104, 61,128,223, 91, 62, 14, 95, 82, 62, 0, 21,186, 62, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,122, 84,181, 62, -248, 28, 3, 63,188,188, 0, 63,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63, -190,188, 0, 63,102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, - 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, - 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62, - 32,224, 91, 62,138, 94, 82, 62, 48, 43,135, 61, 61, 84,181, 62,176,104,169,189,185,188, 0, 63, 96, 44,135, 61, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62, -174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63, -116, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 51,207, 38, 63, 24,224, 91, 62,185,188, 0, 63, 96, 44,135, 61,248,207, 38, 63,144,109,169,189,112,226, 76, 63, 64, 38,135, 61, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,240,244,114, 63, 4,221, 91, 62,180,131,140, 63,116, 19,186, 62, 42,244,114, 63, -244, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, - 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, -242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63, -128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, -102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62, -113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, -200, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189, -120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, - 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,200, 84,104, 61, -244, 65, 79, 63, 96,105,188,189,120, 47, 41, 63, 96,105,188,189,120, 47, 41, 63,200, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, - 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 56,207, 38, 63, -111,179,141, 63, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63, -102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, -188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63, -174,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63, -111,179,141, 63,190,188, 0, 63,171,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,162,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 72, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63, -161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63, -236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63, -236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, - 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 22,172,131, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, -248,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,176,131,185, 63, - 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, - 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -226,151,158, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, - 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, -227,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 24,172,131, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, - 86,162,203, 62, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,225,151,158, 63, - 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,146,128, 81, 63, 96,211, 93, 59,250,168, 27, 63, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59, -149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 3, 0, 0,104,178,182, 3, - 59, 0, 0, 0,196, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, -168,181,182, 3, 52, 0, 0, 0, 1, 0, 0, 0,216,194,182, 3,152,139,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, - 97,110,101, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,182,182, 3,200,191,182, 3,152,192,182, 3, - 0, 0, 0, 0,176,184,182, 3,144,188,182, 3, 0, 0, 0, 0, 40,194,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40,183,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,187,182, 3, - 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,190,182, 3, 3, 0, 0, 0, 5, 0, 0, 0, - 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,240,182,182, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 40,183,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,184,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,176,184,182, 3, 58, 0, 0, 0, 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, -208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, - 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, -197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, -212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180, -214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, - 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, - 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 8,187,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,188,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,144,188,182, 3, 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, - 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, - 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, - 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 64,190,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,191,182, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,192,182, 3, 6, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,194,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,191,182, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, - 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, - 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0, -152,192,182, 3, 65, 0, 0, 0, 8, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61, -162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, - 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 18,192,137, 62,162,226,125, 63, - 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63, -162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63, -162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, 40,194,182, 3, 59, 0, 0, 0, 32, 0, 0, 0, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 77, 69, 0, 0, 24, 1, 0, 0,216,194,182, 3, 52, 0, 0, 0, 1, 0, 0, 0, 8,208,182, 3,168,181,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,196,182, 3, -248,204,182, 3,200,205,182, 3, 0, 0, 0, 0,224,197,182, 3,192,201,182, 3, 0, 0, 0, 0, 88,207,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,196,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,200,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,203,182, 3, - 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55, -214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 32,196,182, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 88,196,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,197,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,224,197,182, 3, 58, 0, 0, 0, 23, 0, 0, 0, - 47,205,204, 62, 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, -208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, - 47,205,204, 62, 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, -213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, - 0,205, 76, 63, 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, -214,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, - 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, -210,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, - 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, - 0, 0,144,180, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, -216,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, - 0, 0, 0, 0, 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 56,200,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,201,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,192,201,182, 3, 55, 0, 0, 0, - 32, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 34, 0, 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 34, 0, 11, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, - 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0,112,203,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,204,182, 3, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,205,182, 3, - 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88,207,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,204,182, 3, 54, 0, 0, 0, 8, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 11, 0, 0, 0, 14, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, - 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 96, 1, 0, 0,200,205,182, 3, 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63, -162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, - 0,229,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62, -162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, -252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, 88,207,182, 3, - 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 8,208,182, 3, 52, 0, 0, 0, 1, 0, 0, 0,184,215,182, 3, -216,194,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,209,182, 3, 16,215,182, 3, 88,215,182, 3, 0, 0, 0, 0, 16,211,182, 3, 40,213,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,209,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,211,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,213,182, 3, 2, 0, 0, 0, 5, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52, 0, 0, 0, 0, - 0, 0,128, 63, 2, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, - 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 80,209,182, 3, - 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 68, 65, 84, 65, 84, 1, 0, 0,136,209,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,211,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 16,211,182, 3, - 58, 0, 0, 0, 4, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, - 0, 0,128, 63, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 1, 0,128,191,253,255,127,191, - 0, 0, 0, 0, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, -255,127,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,160,211,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,213,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,213,182, 3, 55, 0, 0, 0, - 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,136,213,182, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,215,182, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,215,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 20, 0, 0, 0, 16,215,182, 3, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 2, 68, 65, 84, 65, 44, 0, 0, 0, 88,215,182, 3, 65, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 77, 69, 0, 0, 24, 1, 0, 0,184,215,182, 3, 52, 0, 0, 0, 1, 0, 0, 0,224, 2,183, 3, 8,208,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,217,182, 3, 88,242,182, 3,136,246,182, 3, 0, 0, 0, 0,192,218,182, 3, 88,231,182, 3, 0, 0, 0, 0,128,255,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,217,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,229,182, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,240,182, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0,198, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63, -140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 0,217,182, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 56,217,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,218,182, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 10, 0, 0,192,218,182, 3, 58, 0, 0, 0, -116, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64, -144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192, -179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192, -244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,127,212,140,184,242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191, -113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184, -239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, - 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64,238, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, - 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, - 62, 30, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64, -217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 98,234, 53, 56, - 38, 33,215,191, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,135, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65, -117, 31,215, 64, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 14, 29,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65, -117, 31,215, 64,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 72, 36,190,192, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,177, 86,161, 64, -146, 87, 33, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65,129, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64, -146, 87, 33, 65,234, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,246, 28,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64, -146, 87, 33, 65, 30, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 18, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64, -146, 87, 33, 65,153, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,147, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192, -190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,222, 33,215,191,183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,183,115, 6,193, -127, 31,215, 64,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 32, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,182,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193, -127, 31,215, 64, 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,122, 31,215,192, -180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192,114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,191, 87,161,192,148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192, -181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64, -170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64, -179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63, -146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184, -112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,208,229,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,231,182, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 9, 0, 0, 88,231,182, 3, 55, 0, 0, 0,198, 0, 0, 0, - 21, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 84, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, - 27, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, - 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, - 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, - 1, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 0, 0, 34, 0, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, - 29, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, - 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 34, 0, 23, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, - 40, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,100, 0, 0, 0, - 0, 0, 34, 0, 37, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, - 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,101, 0, 0, 0, - 0, 0, 34, 0, 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, - 50, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,115, 0, 0, 0, - 0, 0, 34, 0, 52, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, -114, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, - 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, - 0, 0, 34, 0, 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, - 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, - 0, 0, 34, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, - 59, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, - 57, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 34, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, - 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, - 0, 0, 34, 0, 63, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, - 52, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 34, 0, 46, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, - 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 34, 0, 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, - 85, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0, - 73, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, 77, 0, 0, 0, - 0, 0, 34, 0, 81, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, -112, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, - 84, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 34, 0, 85, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, - 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, - 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, - 92, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, - 86, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 34, 0, 92, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, - 81, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 34, 0, 78, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0, -101, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, - 99, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,102, 0, 0, 0, - 0, 0, 34, 0,105, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0, -105, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, -103, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, - 0, 0, 34, 0,109, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0, -112, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, -106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,115, 0, 0, 0, - 0, 0, 34, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,111, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0, -111, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0,208,240,182, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,242,182, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,246,182, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,255,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,252, 3, 0, 0, 88,242,182, 3, 54, 0, 0, 0, - 51, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, - 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, - 15, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 65, 0, 0, 0,114, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, - 44, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, - 53, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 55, 0, 0, 0, 56, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 58, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 68, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0,115, 0, 0, 0, 51, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, - 76, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 84, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, - 27, 0, 0, 0, 21, 0, 0, 0, 82, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 89, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 87, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, - 75, 0, 0, 0, 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 92, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 0, 60, 0, 0, 0, 86, 0, 0, 0, 90, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, - 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, - 97, 0, 0, 0, 73, 0, 0, 0, 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 80, 0, 0, 0, - 79, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 52, 0, 0, 0, 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, - 36, 0, 0, 0, 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 39, 0, 0, 0, 38, 0, 0, 0, - 0, 0, 0, 0, 98, 0, 0, 0, 72, 0, 0, 0, 41, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0, -100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, -112, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,110, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, - 0, 0, 0, 0,113, 0, 0, 0,115, 0, 0, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, -111, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 77, 0, 0, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,196, 8, 0, 0,136,246,182, 3, 65, 0, 0, 0, 51, 0, 0, 0,250,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, - 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 21,172,131, 63, 96,211, 93, 59,146,128, 81, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,174,131,185, 63, - 96,211, 93, 59,225,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59, -251,168, 27, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59,226,151,158, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59, - 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 24,172,131, 63, - 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, -176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, - 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -226,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 86,162,203, 62, - 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, -144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,224,151,158, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, - 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63, -210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, - 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, - 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 99,131,140, 63, 72, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63, -111,179,141, 63,174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, -188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63, -236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, - 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63, -111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, - 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,172,225, 76, 63, -102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 56,127,118,190,220, 28, 3, 63, 96,105,188,189,120, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61,244, 65, 79, 63,200, 84,104, 61, -242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63, -122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,200, 84,104, 61,242, 65, 79, 63, 96,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, -242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, - 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189, -120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, - 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, -113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62, -102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, - 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, -188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,180,131,140, 63, -116, 19,186, 62,244,140,159, 63, 50, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62,112,226, 76, 63, 64, 38,135, 61, -240,244,114, 63, 4,221, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 61, 84,181, 62, -176,104,169,189, 93,189, 0, 63, 80, 1,109,190,248,207, 38, 63,144,109,169,189, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -174,225, 76, 63,116, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 42,244,114, 63,244, 28, 3, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, - 96, 44,135, 61, 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, - 52,207, 38, 63,236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,188,188, 0, 63,120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 52,207, 38, 63, -248, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62,144, 82,104, 61,128,223, 91, 62, -138, 94, 82, 62, 48, 43,135, 61,122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63, -102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, 14, 95, 82, 62, 0, 21,186, 62, -122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 56,207, 38, 63, -111,179,141, 63,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,127, 84,181, 62,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63,128,106,188,189, -176, 20,186, 62,160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 3, 0, 0, -128,255,182, 3, 59, 0, 0, 0,204, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -9094,310 +8433,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0,224, 2,183, 3, 52, 0, 0, 0, 1, 0, 0, 0,240, 44,183, 3,184,215,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 4,183, 3, 8, 29,183, 3, - 16, 33,183, 3, 0, 0, 0, 0,232, 5,183, 3, 80, 18,183, 3, 0, 0, 0, 0,176, 41,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 4,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 16,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 27,183, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0,192, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 40, 4,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 96, 4,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,176, 10, 0, 0,232, 5,183, 3, 58, 0, 0, 0,114, 0, 0, 0,223, 28,215, 63, - 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192, -182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191, -175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184, -242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63, -107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,191, 87,161,192,148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192, -114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,182,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193, -127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, - 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,147, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65, 18, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,246, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64, -110, 59, 60, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 72, 36,190,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65, 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65, 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64, -217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, - 62, 30, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, - 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64, -240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,127,212,140,184,242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63, -172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184, -181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191, -147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 10,152, 60, 56, - 16, 33,215,191,245, 35,190, 64, 0, 0, 42,221, 41,123,255, 0, 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191, 74, 36,190,192, - 0, 0, 42,221,215,132,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,200, 16,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 18,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 9, 0, 0, 80, 18,183, 3, - 55, 0, 0, 0,192, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, - 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, - 19, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 34, 0, 25, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, - 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 34, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, - 26, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 34, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 38, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, - 22, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, - 0, 0, 34, 0, 13, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, - 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 34, 0, 46, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, - 47, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, - 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 34, 0, 56, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, - 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, - 69, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 34, 0, 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 34, 0, 33, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, - 6, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0, - 0, 0, 34, 0, 71, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, - 76, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, - 17, 0, 0, 0, 73, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, - 84, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,110, 0, 0, 0, - 0, 0, 34, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, - 88, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, - 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, - 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,101, 0, 0, 0, - 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, - 94, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, - 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0, -100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, - 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, - 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, -109, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, - 0, 0, 34, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, - 60, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 93, 0, 0, 0, - 0, 0, 34, 0, 31, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, - 90, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0,128, 27,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 29,183, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 33,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176, 41,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,212, 3, 0, 0, 8, 29,183, 3, 54, 0, 0, 0, - 49, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, - 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 7, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 43, 0, 0, 0, 42, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, - 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 76, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, - 25, 0, 0, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, - 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 26, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 27, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 91, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 47, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 51, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 50, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, - 84, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 85, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 0, 0, 78, 0, 0, 0, 83, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 61, 0, 0, 0, - 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 70, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 70, 0, 0, 0, 53, 0, 0, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 64, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 94, 0, 0, 0, 82, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0,101, 0, 0, 0, 97, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 88, 0, 0, 0, - 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, - 86, 0, 0, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, - 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,108, 8, 0, 0, - 16, 33,183, 3, 65, 0, 0, 0, 49, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, - 0, 29, 3, 63, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, - 26, 95, 82, 62,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63,128,106,188,189,176, 20,186, 62,144, 82,104, 61,128,223, 91, 62, 14, 95, 82, 62, - 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63, -122, 84,181, 62,248, 28, 3, 63,188,188, 0, 63,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63, -111,179,141, 63,190,188, 0, 63,102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62, -185,188, 0, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63,188,188, 0, 63, -120, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -122, 84,181, 62, 32,224, 91, 62,138, 94, 82, 62, 48, 43,135, 61, 61, 84,181, 62,176,104,169,189,185,188, 0, 63, 96, 44,135, 61, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 51,207, 38, 63, - 24,224, 91, 62,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, -174,225, 76, 63,116, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62,185,188, 0, 63, 96, 44,135, 61,248,207, 38, 63,144,109,169,189,112,226, 76, 63, - 64, 38,135, 61, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,240,244,114, 63, 4,221, 91, 62,180,131,140, 63,116, 19,186, 62, - 42,244,114, 63,244, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62, -113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63, -160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, -113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190, -216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, - 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, -242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,200, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 64,127,118,190,216, 28, 3, 63, -128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, -102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -200, 84,104, 61,244, 65, 79, 63, 96,105,188,189,120, 47, 41, 63, 96,105,188,189,120, 47, 41, 63,200, 84,104, 61,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63, -102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, - 56,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, -172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63, -111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63, -172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63, -102, 84,117, 63,174,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 52,207, 38, 63,111,179,141, 63,190,188, 0, 63,171,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,162,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 72, 47, 41, 63, 99,131,140, 63, - 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, - 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63, -210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, - 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63, -210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, - 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -176,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, - 85,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59,226,151,158, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, -247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, - 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, - 24,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, - 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -225,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,146,128, 81, 63, 96,211, 93, 59,250,168, 27, 63, 96,211, 93, 59,251,168, 27, 63, - 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 3, 0, 0, -176, 41,183, 3, 59, 0, 0, 0,196, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -9421,310 +8456,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0,240, 44,183, 3, 52, 0, 0, 0, 1, 0, 0, 0, 0, 87,183, 3,224, 2,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46,183, 3, 24, 71,183, 3, - 32, 75,183, 3, 0, 0, 0, 0,248, 47,183, 3, 96, 60,183, 3, 0, 0, 0, 0,192, 83,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112, 46,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 58,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 69,183, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0,192, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 56, 46,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0,112, 46,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 47,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,176, 10, 0, 0,248, 47,183, 3, 58, 0, 0, 0,114, 0, 0, 0,223, 28,215, 63, - 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192, -182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191, -175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184, -242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63, -107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,191, 87,161,192,148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192, -114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,182,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193, -127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, - 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,147, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65, 18, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,246, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64, -110, 59, 60, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 72, 36,190,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65, 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65, 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64, -217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, - 62, 30, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, - 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64, -240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,127,212,140,184,242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63, -172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184, -181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191, -147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 10,152, 60, 56, - 16, 33,215,191,245, 35,190, 64, 0, 0, 42,221, 41,123,255, 0, 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191, 74, 36,190,192, - 0, 0, 42,221,215,132,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,216, 58,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 60,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 9, 0, 0, 96, 60,183, 3, - 55, 0, 0, 0,192, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, - 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, - 19, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 34, 0, 25, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, - 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 34, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, - 26, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 34, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 38, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, - 22, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, - 0, 0, 34, 0, 13, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, - 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 34, 0, 46, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, - 47, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, - 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 34, 0, 56, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, - 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, - 69, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 34, 0, 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 64, 0, 0, 0, - 0, 0, 34, 0, 33, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, - 6, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0, - 0, 0, 34, 0, 71, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, - 76, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, - 17, 0, 0, 0, 73, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, - 84, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,110, 0, 0, 0, - 0, 0, 34, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, - 88, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, - 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, - 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,101, 0, 0, 0, - 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, - 94, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, - 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0, -100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, - 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, - 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0, -107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, -109, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, - 0, 0, 34, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, - 60, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 93, 0, 0, 0, - 0, 0, 34, 0, 31, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, - 90, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0,144, 69,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 71,183, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 75,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192, 83,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,212, 3, 0, 0, 24, 71,183, 3, 54, 0, 0, 0, - 49, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, - 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 7, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 43, 0, 0, 0, 42, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, - 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 76, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, - 25, 0, 0, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, - 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 26, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 27, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 91, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 47, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 51, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 50, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, - 84, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 85, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 0, 0, 78, 0, 0, 0, 83, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 61, 0, 0, 0, - 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 70, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 70, 0, 0, 0, 53, 0, 0, 0, 49, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 64, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 94, 0, 0, 0, 82, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0,101, 0, 0, 0, 97, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 88, 0, 0, 0, - 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, - 86, 0, 0, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, - 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,108, 8, 0, 0, - 32, 75,183, 3, 65, 0, 0, 0, 49, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, - 0, 29, 3, 63, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, - 26, 95, 82, 62,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63,128,106,188,189,176, 20,186, 62,144, 82,104, 61,128,223, 91, 62, 14, 95, 82, 62, - 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63, -122, 84,181, 62,248, 28, 3, 63,188,188, 0, 63,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63, -111,179,141, 63,190,188, 0, 63,102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62, -185,188, 0, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63,188,188, 0, 63, -120, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -122, 84,181, 62, 32,224, 91, 62,138, 94, 82, 62, 48, 43,135, 61, 61, 84,181, 62,176,104,169,189,185,188, 0, 63, 96, 44,135, 61, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 51,207, 38, 63, - 24,224, 91, 62,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, -174,225, 76, 63,116, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62,185,188, 0, 63, 96, 44,135, 61,248,207, 38, 63,144,109,169,189,112,226, 76, 63, - 64, 38,135, 61, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,240,244,114, 63, 4,221, 91, 62,180,131,140, 63,116, 19,186, 62, - 42,244,114, 63,244, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62, -113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63, -160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, -113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190, -216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, - 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, -242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,200, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, 64,127,118,190,216, 28, 3, 63, -128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62, -102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -200, 84,104, 61,244, 65, 79, 63, 96,105,188,189,120, 47, 41, 63, 96,105,188,189,120, 47, 41, 63,200, 84,104, 61,242, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63, -102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, - 56,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, -172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63, -111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63, -172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63, -102, 84,117, 63,174,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 52,207, 38, 63,111,179,141, 63,190,188, 0, 63,171,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,162,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 72, 47, 41, 63, 99,131,140, 63, - 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, - 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63, -210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, - 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63, -210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, - 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -176,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, - 85,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59,226,151,158, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, -247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, - 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, - 24,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, - 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -225,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,146,128, 81, 63, 96,211, 93, 59,250,168, 27, 63, 96,211, 93, 59,251,168, 27, 63, - 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 3, 0, 0, -192, 83,183, 3, 59, 0, 0, 0,196, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -9748,318 +8479,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0, 0, 87,183, 3, 52, 0, 0, 0, 1, 0, 0, 0, 40,130,183, 3,240, 44,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 88,183, 3,160,113,183, 3, -208,117,183, 3, 0, 0, 0, 0, 8, 90,183, 3,160,102,183, 3, 0, 0, 0, 0,200,126,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 88,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24,101,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,112,183, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0,198, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 72, 88,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0,128, 88,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 90,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 10, 0, 0, 8, 90,183, 3, 58, 0, 0, 0,116, 0, 0, 0,223, 28,215, 63, - 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192, -182,115, 6, 65,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64,250, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,172,163,138,184,181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191, -175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64,250, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184, -242, 87,161, 64,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64,250, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63, -107, 32, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,239, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,238, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, - 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64, -150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64,247, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64,242, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65, -146, 30,215, 64, 74, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63, -226, 3, 41,184, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,246, 28,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 18, 29,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,147, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222, 33,215,191, -183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,182,115, 6,193, -128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 78, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 72, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 5, 32, 87,192,114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,191, 87,161,192, -148, 87, 33, 65,133, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65,139, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65, 0, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 12, 29,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65, 9, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,253, 28,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,136, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64, -240, 87,161, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,127,212,140,184,242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63, -172, 31,215, 64, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184, -181,115, 6, 65, 71, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191, -147, 87, 33, 65, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 24,101,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,102,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 72, 9, 0, 0,160,102,183, 3, 55, 0, 0, 0,198, 0, 0, 0, 21, 0, 0, 0, 82, 0, 0, 0, - 0, 0, 34, 0, 20, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, - 85, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, - 28, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 34, 0, 29, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, - 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 34, 0, 7, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, - 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 34, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, - 3, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, - 9, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 29, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, - 6, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 34, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, - 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 98, 0, 0, 0, - 0, 0, 34, 0, 39, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0, -101, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, - 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 34, 0, 51, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, - 56, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,114, 0, 0, 0, - 0, 0, 34, 0, 65, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, -115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, - 42, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, - 0, 0, 34, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, - 46, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, - 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, - 60, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, - 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 58, 0, 0, 0, - 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, - 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 34, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 63, 0, 0, 0, - 67, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, - 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 68, 0, 0, 0, - 0, 0, 34, 0, 51, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, - 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0,102, 0, 0, 0, - 0, 0, 34, 0, 72, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, - 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 77, 0, 0, 0, - 0, 0, 34, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, - 78, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 34, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0, - 89, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, - 87, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, - 0, 0, 34, 0, 82, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, - 87, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 34, 0, 93, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, - 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, -100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, - 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0, -114, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, -104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,107, 0, 0, 0, - 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0, -113, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, -107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,107, 0, 0, 0, - 0, 0, 34, 0,106, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0, -113, 0, 0, 0, 0, 0, 34, 0,111, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 24,112,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,113,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,117,183, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,126,183, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,252, 3, 0, 0,160,113,183, 3, 54, 0, 0, 0, 51, 0, 0, 0, 18, 0, 0, 0, - 22, 0, 0, 0, 26, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, - 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, - 13, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, - 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 42, 0, 0, 0, 65, 0, 0, 0,114, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 42, 0, 0, 0, - 43, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 48, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 53, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, - 60, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 58, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 59, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 68, 0, 0, 0, - 67, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, - 51, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, 76, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 84, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, - 82, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 0, 0, 83, 0, 0, 0, 87, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 75, 0, 0, 0, 74, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 92, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, - 86, 0, 0, 0, 90, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 73, 0, 0, 0, - 77, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, - 78, 0, 0, 0, 52, 0, 0, 0, 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 39, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 72, 0, 0, 0, 41, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, - 0, 0, 0, 0,103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0,109, 0, 0, 0, -105, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0,112, 0, 0, 0,108, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,110, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, -115, 0, 0, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0, - 0, 0, 0, 0, 81, 0, 0, 0, 77, 0, 0, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,196, 8, 0, 0, -208,117,183, 3, 65, 0, 0, 0, 51, 0, 0, 0,250,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, 84,162,203, 62, - 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, -146,128, 81, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,225,151,158, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59, -246,168, 27, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,227,151,158, 63, - 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, -247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59,142,128, 81, 63, - 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -174,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, - 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, - 21,172,131, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,248,168, 27, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, -144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, - 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, - 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, - 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, - 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 72, 47, 41, 63, - 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,174,225, 76, 63, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63, -188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63, -236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63, -172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63, -173,188,160, 63,188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63, -102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, - 56,127,118,190,220, 28, 3, 63, 56,127,118,190,220, 28, 3, 63, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61,244, 65, 79, 63,200, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62, -102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63,122, 84,181, 62,113,179,141, 63, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,200, 84,104, 61, -242, 65, 79, 63, 96,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63, -122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190, -216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62, -113,179,141, 63,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, -128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62, -113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, - 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, -122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,180,131,140, 63,116, 19,186, 62,244,140,159, 63, - 50, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -174,225, 76, 63, 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62,112,226, 76, 63, 64, 38,135, 61,240,244,114, 63, 4,221, 91, 62, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 61, 84,181, 62,176,104,169,189, 93,189, 0, 63, - 80, 1,109,190,248,207, 38, 63,144,109,169,189, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, - 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, 96, 44,135, 61, 51,207, 38, 63, - 24,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63, -174,225, 76, 63,116, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63, -120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 52,207, 38, 63,248, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62,144, 82,104, 61,128,223, 91, 62,138, 94, 82, 62, 48, 43,135, 61, -122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63,127, 84,181, 62, -242, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 26, 95, 82, 62,120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62,248, 28, 3, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 56,207, 38, 63,111,179,141, 63,188,188, 0, 63, -173,188,160, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, -160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63,128,106,188,189,176, 20,186, 62,160, 84,104, 61, - 0, 29, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 3, 0, 0,200,126,183, 3, 59, 0, 0, 0, -204, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -10084,317 +8503,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 40,130,183, 3, - 52, 0, 0, 0, 1, 0, 0, 0, 80,173,183, 3, 0, 87,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, - 48, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,131,183, 3,200,156,183, 3,248,160,183, 3, 0, 0, 0, 0, - 48,133,183, 3,200,145,183, 3, 0, 0, 0, 0,240,169,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168,131,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,144,183, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,155,183, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0,198, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,112,131,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, -168,131,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,133,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,224, 10, 0, 0, 48,133,183, 3, 58, 0, 0, 0,116, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191, -147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184, -181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63, -172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64, -240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222,158,142,184,239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192, -147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,222, 33,215,191, -183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,239, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63, -226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65, -146, 30,215, 64,242, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64, -150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 98,234, 53, 56, 38, 33,215,191, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65, -117, 31,215, 64,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,250, 28,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65, -117, 31,215, 64, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,141, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64, -112, 59, 60, 65, 77, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 72, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, - 78, 31, 87, 65,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,141, 43,100, 64, - 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,246, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, - 78, 31, 87, 65, 2, 29,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65, 14, 29,152, 63, - 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 18, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, - 78, 31, 87, 65, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,250, 28,152,191, - 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,147, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, - 78, 31, 87, 65,141, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,135, 43,100,192, - 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, - 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,222, 33,215,191,183,190,135, 56, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193, -127, 31,215, 64,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,182,115, 6,193,128, 31,215, 64,127, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 74, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192, -114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,191, 87,161,192,148, 87, 33, 65,133, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 9, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192, -113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,142, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63, -107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184, -242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191, -175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192, -182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,223, 28,215, 63, - 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 64,144,183, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,145,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 72, 9, 0, 0,200,145,183, 3, 55, 0, 0, 0,198, 0, 0, 0, 21, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, - 22, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 54, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, - 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 34, 0, 4, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, - 17, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 34, 0, 5, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, - 14, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, - 99, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, - 41, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, -109, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, - 64, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 82, 0, 0, 0, - 0, 0, 34, 0, 52, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, -114, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, - 51, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, - 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, - 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 34, 0, 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, - 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 34, 0, 61, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, - 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 63, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, - 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, - 0, 0, 34, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, - 44, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,110, 0, 0, 0, - 0, 0, 34, 0, 70, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, - 98, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, - 75, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 34, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, - 80, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,113, 0, 0, 0, - 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, - 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 88, 0, 0, 0, - 0, 0, 34, 0, 83, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, - 88, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0, - 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, - 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, -101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,104, 0, 0, 0, - 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, - 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, -105, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, - 0, 0, 34, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0, -103, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, -108, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, - 0, 0, 34, 0,107, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, -111, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, - 64,155,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,156,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,160,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,169,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,252, 3, 0, 0,200,156,183, 3, 54, 0, 0, 0, 51, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 25, 0, 0, 0, - 24, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 23, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 65, 0, 0, 0, -114, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 46, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 53, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 58, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, - 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 68, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 62, 0, 0, 0, 66, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, 51, 0, 0, 0, 66, 0, 0, 0, - 67, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 22, 0, 0, 0, 76, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 19, 0, 0, 0, 84, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 82, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 89, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, - 87, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 75, 0, 0, 0, 74, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, - 87, 0, 0, 0, 88, 0, 0, 0, 92, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 86, 0, 0, 0, 90, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 91, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 73, 0, 0, 0, 77, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 52, 0, 0, 0, - 68, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 99, 0, 0, 0, 39, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 72, 0, 0, 0, 41, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0, -102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0,114, 0, 0, 0, - 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 70, 0, 0, 0, - 71, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0,112, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0,110, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0,115, 0, 0, 0, 52, 0, 0, 0, - 78, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, - 77, 0, 0, 0, 69, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,196, 8, 0, 0,248,160,183, 3, 65, 0, 0, 0, - 51, 0, 0, 0,250,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59,251,168, 27, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59,146,128, 81, 63, 96,211, 93, 59, -149,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,227,151,158, 63, - 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,225,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59, -142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59, 22,172,131, 63, - 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -246,168, 27, 63, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, -226,151,158, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, - 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59,176,131,185, 63, - 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, - 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, - 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63, -210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 72, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, - 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63, -102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63, - 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63, -102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63, -173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, -172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, -111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 56,127,118,190,220, 28, 3, 63, - 56,127,118,190,220, 28, 3, 63, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62, -102, 84,117, 63,200, 84,104, 61,244, 65, 79, 63,200, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63, -188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,200, 84,104, 61,242, 65, 79, 63, 96,105,188,189, -120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190, -216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, -160, 84,104, 61,242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63, -173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189,120, 47, 41, 63, -128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62, -113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63, -128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61, -242, 65, 79, 63,160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,180,131,140, 63,116, 19,186, 62,244,140,159, 63, 50, 28, 3, 63, 99,131,140, 63, - 76, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, - 51,207, 38, 63, 24,224, 91, 62,112,226, 76, 63, 64, 38,135, 61,240,244,114, 63, 4,221, 91, 62, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 61, 84,181, 62,176,104,169,189, 93,189, 0, 63, 80, 1,109,190,248,207, 38, 63, -144,109,169,189, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63, -174,225, 76, 63, 0, 21,186, 62, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,185,188, 0, 63, - 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, 96, 44,135, 61, 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63,236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, - 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,120, 47, 41, 63,122, 84,181, 62, -248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 52,207, 38, 63,248, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 14, 95, 82, 62, 0, 21,186, 62,144, 82,104, 61,128,223, 91, 62,138, 94, 82, 62, 48, 43,135, 61,122, 84,181, 62, 32,224, 91, 62, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63,188,188, 0, 63, -120, 47, 41, 63, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63, -160, 84,104, 61, 0, 29, 3, 63, 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 56,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,122, 84,181, 62, -113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63, - 26, 95, 82, 62,120, 47, 41, 63,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189, -120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63,128,106,188,189,176, 20,186, 62,160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 3, 0, 0,240,169,183, 3, 59, 0, 0, 0,204, 0, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -10420,309 +8528,6 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 80,173,183, 3, 52, 0, 0, 0, 1, 0, 0, 0, - 96,215,183, 3, 40,130,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152,174,183, 3,120,199,183, 3,128,203,183, 3, 0, 0, 0, 0, 88,176,183, 3,192,188,183, 3, - 0, 0, 0, 0, 32,212,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,174,183, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,187,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,197,183, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0,192, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,213,204, 76, 63,255,204, 76, 63, - 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -152,174,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,208,174,183, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88,176,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,176, 10, 0, 0, - 88,176,183, 3, 58, 0, 0, 0,114, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,175, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,243,229,133,184, -112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65, 69, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,194, 87,161,192,179, 31,215, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,208, 28,215, 63, -146, 87, 33, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 13, 32, 87,192,244, 87,161, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,226, 29, 87, 64, -179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,173, 86,161, 64, -170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64, 71, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,222,158,142,184,239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65,136, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,142, 43,100,192, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,148, 43,100,192,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 9, 29,152,191, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 20, 29,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65, 12, 29,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 0, 29,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,244, 28,152, 63,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65,232, 28,152, 63,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,121, 31,215,192, -181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,191, 87,161,192,148, 87, 33, 65,133, 43,100, 64, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0, 5, 32, 87,192,114, 59, 60, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 32, 33,215,191, 81, 31, 87, 65,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,122, 31,215,192, -180,115, 6, 65, 72, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,192, 87,161,192,147, 87, 33, 65, 74, 36,190,192, -255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65, 77, 36,190,192,255, 63, 1,192,129, 90,255, 0, - 0, 0, 0, 0, 36, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192,129, 90,255, 0, 0, 0, 0, 0,182,115, 6,193, -128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,232, 28,152, 63, -129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0,255, 0, - 2, 0, 0, 0,183,115, 6,193,127, 31,215, 64,154, 43,100,192,129, 90,127,165, 0, 0,255, 0, 2, 0, 0, 0,222, 33,215,191, -183,190,135, 56, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,170, 31,215,192,190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,135, 43,100,192, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,141, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,147, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,153, 43,100,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,250, 28,152,191, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 6, 29,152,191, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 18, 29,152,191,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65, 14, 29,152, 63, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65, 2, 29,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,246, 28,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,234, 28,152, 63,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65,141, 43,100, 64, 0, 0, 2,128, 0, 0,255, 0, 2, 0, 0, 0,199, 28,215, 63, 78, 31, 87, 65,135, 43,100, 64, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,225, 29, 87, 64,110, 59, 60, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65,129, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,213, 91,136,184, - 43, 3,114, 65, 72, 36,190,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65, 77, 36,190,192, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 72, 36,190,192, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,135, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,141, 43,100, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 2, 29,152, 63, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65, 14, 29,152, 63,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64, 6, 29,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64, -151,115, 6, 65,250, 28,152,191,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0, 43,115, 6, 65,117, 31,215, 64,141, 43,100,192, -127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0,255, 0, - 2, 0, 0, 0, 15, 33,215, 63,226, 3, 41,184, 67, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 4, 32, 87, 64, -150, 29,215, 63, 68, 36,190,192, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,159,115, 6, 65,146, 30,215, 64, 74, 36,190,192,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,159,115, 6, 65, -146, 30,215, 64,242, 35,190, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,127, 31,215, 64,217, 86,161, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,193, 87,161, 64, 62, 30, 87, 64,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 4, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 15, 33,215, 63, -226, 3, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,150, 30,215, 64,151,115, 6, 65,244, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,217, 29, 87, 64,112, 59, 60, 65,239, 35,190, 64, 1,192, 1,192,129, 90,255, 0, - 2, 0, 0, 0,213, 91,136,184, 43, 3,114, 65,244, 35,190, 64,127,165,127,165, 0, 0,255, 0, 2, 0, 0, 0,170, 31,215,192, -190, 87,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,240, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,102, 32, 87,192, 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,222, 33,215,191,183,190,135, 56,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 36, 33,215,191, - 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0, 7, 32, 87,192,113, 59, 60, 65,239, 35,190, 64, -255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,192, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90,255, 0, - 2, 0, 0, 0,122, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192,129, 90,255, 0, 2, 0, 0, 0,222,158,142,184, -239, 33,215, 63,248, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,191, 28,215, 63,107, 32, 87, 64,247, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,220, 29, 87, 64,240, 87,161, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,173, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 44, 33,215,191, -113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,127,212,140,184,242, 87,161, 64,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,201, 28,215, 63,172, 31,215, 64,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,226, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 13, 32, 87,192, -244, 87,161, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 37, 33,215,191,175, 31,215, 64,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,172,163,138,184,181,115, 6, 65,245, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,208, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,194, 87,161,192, -179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 6, 32, 87,192,182,115, 6, 65,248, 35,190, 64, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 18, 33,215,191,147, 87, 33, 65,247, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,243,229,133,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,175, 86,161, 64, -144, 87, 33, 65,242, 35,190, 64, 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0,223, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, - 1,192, 1,192,129, 90,255, 0, 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191,245, 35,190, 64, 0, 0, 42,221, 41,123,255, 0, - 2, 0, 0, 0, 10,152, 60, 56, 16, 33,215,191, 74, 36,190,192, 0, 0, 42,221,215,132,255, 0, 2, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 56,187,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,188,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 9, 0, 0,192,188,183, 3, 55, 0, 0, 0,192, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, - 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 34, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, - 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, - 28, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, - 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 34, 0, 3, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, - 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 38, 0, 0, 0, - 0, 0, 34, 0, 26, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, - 9, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 34, 0, 53, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, - 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 52, 0, 0, 0, - 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, - 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, - 0, 0, 34, 0, 51, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, - 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, - 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, - 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, 68, 0, 0, 0, - 0, 0, 34, 0, 68, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0, - 69, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, - 64, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, - 29, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, - 0, 0, 34, 0, 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, - 76, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, - 64, 0, 0, 0, 77, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 75, 0, 0, 0, - 0, 0, 34, 0, 16, 0, 0, 0, 74, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 73, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, - 79, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 82, 0, 0, 0, - 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, - 97, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, - 84, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0,106, 0, 0, 0, - 0, 0, 34, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, - 93, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0,108, 0, 0, 0, - 0, 0, 34, 0, 90, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, - 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, - 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, -100, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,103, 0, 0, 0, - 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0, -109, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,104, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, -103, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,103, 0, 0, 0, - 0, 0, 34, 0,102, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0, -109, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, - 65, 0, 0, 0, 78, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 34, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, -110, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, - 32, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, -240,197,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,199,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,203,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,212,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,212, 3, 0, 0,120,199,183, 3, 54, 0, 0, 0, 49, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 45, 0, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, - 13, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 43, 0, 0, 0, 42, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 16, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 17, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, - 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 26, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 54, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 38, 0, 0, 0, - 39, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 92, 0, 0, 0, 93, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 63, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, - 51, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 54, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 59, 0, 0, 0, - 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 84, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0, 85, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 83, 0, 0, 0, 66, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 61, 0, 0, 0, 57, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, - 68, 0, 0, 0, 70, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 53, 0, 0, 0, 49, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 64, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 79, 0, 0, 0, - 97, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 82, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0,101, 0, 0, 0, 97, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, -104, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0,102, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, - 0, 0, 0, 0,111, 0, 0, 0,109, 0, 0, 0,105, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0, -103, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, - 90, 0, 0, 0, 91, 0, 0, 0,108, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0,106, 0, 0, 0, -107, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,108, 8, 0, 0,128,203,183, 3, 65, 0, 0, 0, 49, 0, 0, 0,160, 84,104, 61, -242, 65, 79, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61, 0, 29, 3, 63, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63,127, 84,181, 62,242, 65, 79, 63, -190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63,128,106,188,189, -176, 20,186, 62,144, 82,104, 61,128,223, 91, 62, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -127, 84,181, 62,242, 65, 79, 63, 26, 95, 82, 62,120, 47, 41, 63,122, 84,181, 62,248, 28, 3, 63,188,188, 0, 63,120, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63,190,188, 0, 63,102, 84,117, 63, 52,207, 38, 63, -236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, - 14, 95, 82, 62, 0, 21,186, 62,122, 84,181, 62, 32,224, 91, 62,185,188, 0, 63, 0, 21,186, 62, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63,188,188, 0, 63,120, 47, 41, 63, 52,207, 38, 63,248, 28, 3, 63,174,225, 76, 63, -116, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62, 32,224, 91, 62,138, 94, 82, 62, 48, 43,135, 61, - 61, 84,181, 62,176,104,169,189,185,188, 0, 63, 96, 44,135, 61, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63, -248, 28, 3, 63,185,188, 0, 63, 0, 21,186, 62, 51,207, 38, 63, 24,224, 91, 62,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,116, 47, 41, 63, 42,244,114, 63,244, 28, 3, 63, - 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62,185,188, 0, 63, - 96, 44,135, 61,248,207, 38, 63,144,109,169,189,112,226, 76, 63, 64, 38,135, 61, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -240,244,114, 63, 4,221, 91, 62,180,131,140, 63,116, 19,186, 62, 42,244,114, 63,244, 28, 3, 63,174,225, 76, 63, 0, 21,186, 62, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62, -102, 84,117, 63,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, -128,105,188,189,120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63, -173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,160, 84,104, 61,242, 65, 79, 63, -160, 84,104, 61,242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,128,105,188,189, -120, 47, 41, 63, 64,127,118,190,216, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63, -122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,128,105,188,189, -120, 47, 41, 63,128,105,188,189,120, 47, 41, 63,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, -188,188, 0, 63,173,188,160, 63,122, 84,181, 62,113,179,141, 63,122, 84,181, 62,113,179,141, 63,188,188, 0, 63,173,188,160, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,200, 84,104, 61,242, 65, 79, 63,160, 84,104, 61, -242, 65, 79, 63, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, - 56,127,118,190,220, 28, 3, 63, 64,127,118,190,216, 28, 3, 63,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 26, 95, 82, 62,102, 84,117, 63, 26, 95, 82, 62,102, 84,117, 63,122, 84,181, 62, -113,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,200, 84,104, 61,244, 65, 79, 63, 96,105,188,189,120, 47, 41, 63, - 96,105,188,189,120, 47, 41, 63,200, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 44,244,114, 63, -236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 56,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63, -188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 52,207, 38, 63, -111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 44,244,114, 63,236, 65, 79, 63,172,225, 76, 63,102, 84,117, 63,172,225, 76, 63,102, 84,117, 63, 44,244,114, 63,236, 65, 79, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,188,188, 0, 63,173,188,160, 63,188,188, 0, 63, -173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, - 52,207, 38, 63,111,179,141, 63, 52,207, 38, 63,111,179,141, 63,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 60, 0, 1, 0, - 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,174,225, 76, 63,102, 84,117, 63,174,225, 76, 63,102, 84,117, 63, 44,244,114, 63, -236, 65, 79, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,190,188, 0, 63,171,188,160, 63, -188,188, 0, 63,173,188,160, 63, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,162,140,159, 63, -210, 28, 3, 63, 99,131,140, 63, 72, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, - 60, 0, 1, 0, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, - 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, - 76, 47, 41, 63, 99,131,140, 63, 76, 47, 41, 63,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, - 99,131,140, 63, 76, 47, 41, 63, 44,244,114, 63,236, 65, 79, 63, 44,244,114, 63,236, 65, 79, 63, 99,131,140, 63, 76, 47, 41, 63, - 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 99,131,140, 63, 76, 47, 41, 63, 99,131,140, 63, - 76, 47, 41, 63,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, -226,151,158, 63, 96,211, 93, 59,224,151,158, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,248,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,176,131,185, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, -224,151,158, 63, 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 21,172,131, 63, - 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, 85,162,203, 62, 96,211, 93, 59, -247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 24,172,131, 63, - 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -142,128, 81, 63, 96,211, 93, 59,246,168, 27, 63, 96,211, 93, 59,247,168, 27, 63, 96,211, 93, 59,144,128, 81, 63, 96,211, 93, 59, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59,226,151,158, 63, - 96,211, 93, 59,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, -149,128, 81, 63, 96,211, 93, 59,142,128, 81, 63, 96,211, 93, 59, 24,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 84,162,203, 62, 96,211, 93, 59, 86,162,203, 62, 96,211, 93, 59,246,168, 27, 63, - 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,225,151,158, 63, 96,211, 93, 59, 21,172,131, 63, 96,211, 93, 59, - 22,172,131, 63, 96,211, 93, 59,227,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,146,128, 81, 63, - 96,211, 93, 59,250,168, 27, 63, 96,211, 93, 59,251,168, 27, 63, 96,211, 93, 59,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 3, 0, 0, 32,212,183, 3, 59, 0, 0, 0,196, 0, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -10747,4970 +8552,4114 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 96,215,183, 3, 52, 0, 0, 0, 1, 0, 0, 0, -144,228,183, 3, 80,173,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,168,216,183, 3,128,225,183, 3, 80,226,183, 3, 0, 0, 0, 0,104,218,183, 3, 72,222,183, 3, - 0, 0, 0, 0,224,227,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,216,183, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,220,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248,223,183, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -168,216,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,224,216,183, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104,218,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0, -104,218,183, 3, 58, 0, 0, 0, 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,192,220,183, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72,222,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -128, 1, 0, 0, 72,222,183, 3, 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, - 2, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 35, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 35, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 35, 0, 14, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,248,223,183, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,225,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,226,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,227,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -128,225,183, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, - 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, - 16, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 2, 22, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0, 80,226,183, 3, 65, 0, 0, 0, 8, 0, 0, 0, - 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63, -162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 68, 65, 84, 65,128, 0, 0, 0,224,227,183, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,144,228,183, 3, - 52, 0, 0, 0, 1, 0, 0, 0,192,241,183, 3, 96,215,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, - 48, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,229,183, 3,176,238,183, 3,128,239,183, 3, 0, 0, 0, 0, -152,231,183, 3,120,235,183, 3, 0, 0, 0, 0, 16,241,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,230,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,233,183, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,237,183, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,216,229,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, - 16,230,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,231,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 2, 0, 0,152,231,183, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0,240,233,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,235,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,120,235,183, 3, 55, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, - 40,237,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,238,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,239,183, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,241,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,176,238,183, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 14, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,128,239,183, 3, - 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, 16,241,183, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0,192,241,183, 3, 52, 0, 0, 0, 1, 0, 0, 0,240,254,183, 3,144,228,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 49, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,243,183, 3,224,251,183, 3, -176,252,183, 3, 0, 0, 0, 0,200,244,183, 3,168,248,183, 3, 0, 0, 0, 0, 64,254,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,243,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32,247,183, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,250,183, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 8,243,183, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 64,243,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,244,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,200,244,183, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 32,247,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,248,183, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,168,248,183, 3, 55, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, - 11, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 9, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 88,250,183, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,251,183, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,252,183, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,254,183, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,251,183, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, - 14, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 1, 0, 0,176,252,183, 3, 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 18,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, 64,254,183, 3, 59, 0, 0, 0, - 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,240,254,183, 3, 52, 0, 0, 0, 1, 0, 0, 0, 32, 12,184, 3,192,241,183, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0,184, 3, 16, 9,184, 3,224, 9,184, 3, 0, 0, 0, 0,248, 1,184, 3,216, 5,184, 3, 0, 0, 0, 0,112, 11,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 0,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 4,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 7,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,205, 76, 63, -172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 56, 0,184, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,112, 0,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,248, 1,184, 3, 58, 0, 0, 0, - 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 80, 4,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 5,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,216, 5,184, 3, - 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, - 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,136, 7,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9,184, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 9,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112, 11,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16, 9,184, 3, 54, 0, 0, 0, - 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, - 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, - 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0,224, 9,184, 3, 65, 0, 0, 0, 8, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0,229,213, 62, -162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, -112, 11,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 32, 12,184, 3, 52, 0, 0, 0, 1, 0, 0, 0, - 80, 25,184, 3,240,254,183, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104, 13,184, 3, 64, 22,184, 3, 16, 23,184, 3, 0, 0, 0, 0, 40, 15,184, 3, 8, 19,184, 3, - 0, 0, 0, 0,160, 24,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 13,184, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 17,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184, 20,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -104, 13,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,160, 13,184, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 15,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0, - 40, 15,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,128, 17,184, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 19,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -128, 1, 0, 0, 8, 19,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, - 2, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 35, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 35, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 35, 0, 14, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,184, 20,184, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 22,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 23,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 24,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 64, 22,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, - 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, - 16, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 2, 22, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0, 16, 23,184, 3, 65, 0, 0, 0, 8, 0, 0, 0, - 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63, -162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 68, 65, 84, 65,128, 0, 0, 0,160, 24,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 80, 25,184, 3, - 52, 0, 0, 0, 1, 0, 0, 0,128, 38,184, 3, 32, 12,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, - 48, 49, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 26,184, 3,112, 35,184, 3, 64, 36,184, 3, 0, 0, 0, 0, - 88, 28,184, 3, 56, 32,184, 3, 0, 0, 0, 0,208, 37,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 26,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 30,184, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 33,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,152, 26,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, -208, 26,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 28,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 2, 0, 0, 88, 28,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0,176, 30,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 32,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0, 56, 32,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, -232, 33,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 35,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 36,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 37,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,112, 35,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 14, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 64, 36,184, 3, - 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,208, 37,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0,128, 38,184, 3, 52, 0, 0, 0, 1, 0, 0, 0,176, 51,184, 3, 80, 25,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 39,184, 3,160, 48,184, 3, -112, 49,184, 3, 0, 0, 0, 0,136, 41,184, 3,104, 45,184, 3, 0, 0, 0, 0, 0, 51,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 43,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 47,184, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,200, 39,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 0, 40,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 41,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,136, 41,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,224, 43,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 45,184, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,104, 45,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, - 11, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 9, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 24, 47,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 48,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 49,184, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160, 48,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, - 14, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 1, 0, 0,112, 49,184, 3, 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 18,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, 0, 51,184, 3, 59, 0, 0, 0, - 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,176, 51,184, 3, 52, 0, 0, 0, 1, 0, 0, 0,224, 64,184, 3,128, 38,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248, 52,184, 3,208, 61,184, 3,160, 62,184, 3, 0, 0, 0, 0,184, 54,184, 3,152, 58,184, 3, 0, 0, 0, 0, 48, 64,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 53,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 57,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 60,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,205, 76, 63, -172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,248, 52,184, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 48, 53,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 54,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,184, 54,184, 3, 58, 0, 0, 0, - 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 16, 57,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 58,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,152, 58,184, 3, - 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, - 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0, 72, 60,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 61,184, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 62,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 64,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208, 61,184, 3, 54, 0, 0, 0, - 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, - 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, - 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0,160, 62,184, 3, 65, 0, 0, 0, 8, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0,229,213, 62, -162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, - 48, 64,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,224, 64,184, 3, 52, 0, 0, 0, 1, 0, 0, 0, - 16, 78,184, 3,176, 51,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 49, 57, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 66,184, 3, 0, 75,184, 3,208, 75,184, 3, 0, 0, 0, 0,232, 67,184, 3,200, 71,184, 3, - 0, 0, 0, 0, 96, 77,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 66,184, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 70,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 73,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, - 40, 66,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 96, 66,184, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 67,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0, -232, 67,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 64, 70,184, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200, 71,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0, 56,108, 53, 3, + 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0,200,104, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,110, 53, 3, 0, 0, 0, 0,152,116, 53, 3, + 0, 0, 0, 0,248,116, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,112, 53, 3, 0, 0, 0, 0,104,114, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,110, 53, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,112, 53, 3, + 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,114, 53, 3, 0, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128,179, 0, 0, 64, 52, 0, 0, 0, 0, 0, 0,128, 63, 2, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 24,110, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, + 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,104,110, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,112, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -128, 1, 0, 0,200, 71,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, - 2, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 35, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 35, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 35, 0, 14, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,120, 73,184, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208, 75,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 77,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 0, 75,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, - 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, - 16, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 2, 22, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0,208, 75,184, 3, 65, 0, 0, 0, 8, 0, 0, 0, - 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63, -162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 68, 65, 84, 65,128, 0, 0, 0, 96, 77,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 16, 78,184, 3, - 52, 0, 0, 0, 1, 0, 0, 0, 64, 91,184, 3,224, 64,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, - 48, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 79,184, 3, 48, 88,184, 3, 0, 89,184, 3, 0, 0, 0, 0, - 24, 81,184, 3,248, 84,184, 3, 0, 0, 0, 0,144, 90,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 79,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 83,184, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 86,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0, 88, 79,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, -144, 79,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 81,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 24,112, 53, 3, 0, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 0, 0,128, 63, +255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0,254,127, 3, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +255,127, 3, 0, 1, 0,128,191,253,255,127,191, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 3, 0,250,255,127,191, 3, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0,255,127, 3, 0, 68, 65, 84, 65,104, 1, 0, 0,184,112, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, + 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,114, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 2, 0, 0, 24, 81,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 62,182, - 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, 0, 0, 0, 0,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0,112, 83,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 84,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104,114, 53, 3, 0, 0, 0, 0, 49, 0, 0, 0, + 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,232,114, 53, 3, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,116, 53, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,116, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0,248, 84,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, - 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 84, 1, 0, 0, -168, 86,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,116, 53, 3, + 0, 0, 0, 0, 48, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, + 68, 65, 84, 65, 48, 0, 0, 0,248,116, 53, 3, 0, 0, 0, 0, 59, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 0, 1, 0, 0, 0, 0, 0, 77, 69, 0, 0,152, 1, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, +104,135, 53, 3, 0, 0, 0, 0, 56,108, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 69,112,108, 97,110,101, 95, 99,104,101, 99,107,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 88,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 90,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,119, 53, 3, 0, 0, 0, 0, 56,129, 53, 3, 0, 0, 0, 0,200,130, 53, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104,121, 53, 3, 0, 0, 0, 0, 88,125, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,134, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,119, 53, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,123, 53, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,127, 53, 3, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 40, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 83, 0, 30, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, + 88,119, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,217, 51, 3, 0, 0, 0, 0,136,195, 51, 3, 0, 0, 0, 0, + 68, 65, 84, 65,104, 1, 0, 0,184,119, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,121, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 48, 88,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 14, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 0, 89,184, 3, - 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, -152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,144, 90,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0, 64, 91,184, 3, 52, 0, 0, 0, 1, 0, 0, 0,112,104,184, 3, 16, 78,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 80,108, 97,110,101, 46, 48, 50, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 92,184, 3, 96,101,184, 3, - 48,102,184, 3, 0, 0, 0, 0, 72, 94,184, 3, 40, 98,184, 3, 0, 0, 0, 0,192,103,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 92,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 96,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 99,184, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 2,205, 76, 63,172,197, 39, 55,214,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136, 92,184, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 84, 1, 0, 0,192, 92,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 94,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,244, 1, 0, 0,104,121, 53, 3, 0, 0, 0, 0, 52, 0, 0, 0, 25, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, +208,204, 76,191, 0, 0, 2,128, 0, 0, 1, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, + 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 2,128, 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180,200,204,204,190, + 0, 0, 1,128, 0, 0, 1, 0,254,204, 76, 63,176, 90, 19, 51,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 41,205,204, 62, +174,148, 77,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0,254,204, 76, 63,176, 90, 19, 51, 0, 0, 96, 52, 0, 0, 2,128, + 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 47,205,204, 62,174,148, 77,180, +214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, +254,204, 76, 63,176, 90, 19, 51,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 2, 0, 86,182, 3, 0,160, 52,214,204, 76,191, + 0, 0, 1,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 1, 0, 78,182, + 3, 0,160, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 57,205,204,190, 90, 41,155, 51,206,204, 76, 63, 0, 0, 1,128, + 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 2, 0, 86,182, 3, 0,160, 52, +197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,205,204,204, 62, 0, 0, 2,128, 0, 0, 1, 0, + 10,205, 76,191,169, 82,182, 51,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 2, 0, 86,182, 3, 0,160, 52, 0, 0,144,180, + 0, 0, 2,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, 10,205, 76,191, +169, 82,182, 51, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, 2, 0, 86,182, 3, 0,160, 52,224,204,204,190, 0, 0, 1,128, + 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,216,204,204,190, 0, 0, 2,128, 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51, +208,204,204,190, 0, 0, 2,128, 0, 0, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,168,123, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, + 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,125, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0, 72, 94,184, 3, 58, 0, 0, 0, 23, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,200,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,208,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204, 62, - 0, 0,128,180,221,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,214,204, 76,191, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,210,204, 76, 63, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52, 0, 0,144,180, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,216,204,204,190, - 0, 0, 1,128, 0, 0, 0, 0, 2, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 0, 0, - 2, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,160, 96,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 98,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 1, 0, 0, 88,125, 53, 3, 0, 0, 0, 0, 49, 0, 0, 0, + 40, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, + 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 35, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, + 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 23, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 35, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 23, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, + 22, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, + 5, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 35, 0, + 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,136,127, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101, +120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,129, 53, 3, + 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,130, 53, 3, 0, 0, 0, 0, 6, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,134, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0, 40, 98,184, 3, 55, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, - 11, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, - 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 34, 0, 9, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, - 68, 65, 84, 65, 84, 1, 0, 0,216, 99,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,101,184, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,102,184, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,103,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,101,184, 3, 54, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, - 14, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 1, 0, 0, 48,102,184, 3, 65, 0, 0, 0, 8, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 18,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 56,129, 53, 3, 0, 0, 0, 0, 48, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 2, 19, 0, 0, 0, 20, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 2, 17, 0, 0, 0, 18, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 13, 0, 0, 0, 14, 0, 0, 0, + 17, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, + 7, 0, 0, 0, 16, 0, 0, 0, 19, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, + 3, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 2, 22, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 19, 0, 0, 0, + 1, 0, 0, 2, 2, 0, 0, 0, 7, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 2, 8, 0, 0, 0, 13, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 2, 14, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 2, + 16, 0, 0, 0, 17, 0, 0, 0, 20, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 2, 20, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, + 23, 0, 0, 0, 1, 0, 0, 2, 22, 0, 0, 0, 23, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 2, 68, 65, 84, 65, + 0, 3, 0, 0,200,130, 53, 3, 0, 0, 0, 0, 59, 0, 0, 0, 16, 0, 0, 0,144,108,246, 61,162,226,125, 63, 12,192,137, 62, +162,226,125, 63, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,192,103,184, 3, 59, 0, 0, 0, - 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61, +162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63, +162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63, +162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63, +162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63, +162,226,125, 63, 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0,229,213, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63,144,108,246, 61, +162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61, +162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, + 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, +162,226,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 24,134, 53, 3, + 0, 0, 0, 0, 53, 0, 0, 0, 64, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,112,104,184, 3, 52, 0, 0, 0, 1, 0, 0, 0,160,117,184, 3, 64, 91,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 80,108, 97,110,101, 46, 48, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,105,184, 3,144,114,184, 3, 96,115,184, 3, 0, 0, 0, 0,120,107,184, 3, 88,111,184, 3, 0, 0, 0, 0,240,116,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,105,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,109,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,113,184, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 32, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,205, 76, 63, -172,197, 39, 55,214,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 5, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,184,105,184, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,240,105,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,107,184, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0,104,135, 53, 3, 0, 0, 0, 0, 46, 0, 0, 0, + 1, 0, 0, 0, 88,192, 55, 3, 0, 0, 0, 0,120,117, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 0, 0, 0, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,137, 53, 3, 0, 0, 0, 0,104, 27, 54, 3, 0, 0, 0, 0,184,127, 54, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,139, 53, 3, 0, 0, 0, 0,104,191, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,112, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,137, 53, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,189, 53, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 25, 54, 3, + 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,130, 2, 0, 0,128, 7, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,117,224,186, 64, 91, 13,187, 64,160,240,186, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, + 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 8, 0, 0, 0, 72,137, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65, +104, 1, 0, 0,152,137, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,139, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 2, 0, 0,120,107,184, 3, 58, 0, 0, 0, - 23, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, - 0, 0, 0, 0,216,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,224,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52, 0, 0,144,180, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,213,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,205,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 0, 0, 70,182, 0, 0,128, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204,190, - 0, 0, 0, 0,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 62,182, 0, 0,128, 52,206,204, 76, 63, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 55,205,204,190, 0, 0, 0, 0,212,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 70,182, - 0, 0,128, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,206,204, 76,191, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 4,205, 76, 63, 0, 0, 0, 0,210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 53,205,204, 62, 0, 0,128,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,221,204,204, 62, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, 0, 0, 0, 0, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, - 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 0,205, 76, 63, - 0, 0, 0, 0,208,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 47,205,204, 62, 0, 0,128,180,200,204,204,190, - 0, 0, 1,128, 0, 0, 1, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,208,109,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88,111,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 50, 0, 0, 72,139, 53, 3, 0, 0, 0, 0, 52, 0, 0, 0,130, 2, 0, 0, 28,136,141,191, 12,243,244, 62,198, 86,183,192, +212,231,117, 10,191,130, 1, 0,240,102,131,192, 30,183,119, 64,109,169,199,191, 58,166,158, 84,230,221, 1, 0,119,108,239, 63, +213, 85,156, 64,188, 58, 40,192,228, 40,207,106,137,198, 1, 0, 95,135,146, 64, 63, 54, 14,191,241,194,102,192, 27,100,219,243, + 45,177, 1, 0,239, 84,141, 62, 16,220,157,192, 14, 2, 73,192, 8, 6, 39,148, 86,187, 1, 0,132,239,162,192,206,165, 12,192, +150, 45,240,191,175,144,245,207,251,214, 1, 0,239, 84,141,190, 16,220,157, 64, 14, 2, 73, 64,248,249,217,107,170, 68, 1, 0, +132,239,162, 64,206,165, 12, 64,150, 45,240, 63, 81,111, 11, 48, 5, 41, 1, 0,240,102,131, 64, 30,183,119,192,109,169,199, 63, +198, 89, 98,171, 26, 34, 1, 0,119,108,239,191,213, 85,156,192,188, 58, 40, 64, 28,215, 49,149,119, 57, 1, 0, 95,135,146,192, + 63, 54, 14, 63,241,194,102, 64,229,155, 37, 12,211, 78, 1, 0, 28,136,141, 63, 12,243,244,190,198, 86,183, 64, 44, 24,139,245, + 65,125, 1, 0,114, 17, 68,192,226,153, 35, 64,154, 26,137,192, 6,189,226, 55, 85,162, 1, 0,155, 40,230, 62,239,199, 73, 64, +176, 52,157,192,211, 9,237, 68,153,148, 1, 0,124, 55,168,191,224,177,164, 64, 58,144, 29,192, 69,227,132,112, 46,202, 1, 0, + 94, 35,105,192,230, 88,129,191,195, 14,143,192, 93,176,233,233, 68,158, 1, 0, 37, 2,173,192,137,187,123, 63, 56, 68, 1,192, +206,137,127, 21,216,211, 1, 0,234,168, 2, 64,231,158, 57,189, 65,149,175,192,162, 44, 3,255, 11,136, 1, 0, 19,159,114, 64, +254,226, 34, 64,196,133,106,192,225, 82,164, 55,228,175, 1, 0,105,176,249,190, 21,148, 39,192,217,214,166,192, 87,245,194,198, + 5,142, 1, 0,227,163, 54, 64, 86,121, 78,192, 22,202,125,192, 99, 62,120,185, 79,169, 1, 0,241, 40, 53,192,200, 31,134,192, +229,188, 60,192, 30,194, 94,164,136,191, 1, 0, 96,230,181,192, 33, 24,119,191,174, 26,130, 63,186,131,231,234, 56, 22, 1, 0, +103, 93,163,192,136,128, 38, 64, 83,235,153, 63,100,144,224, 56, 74, 26, 1, 0,238,219, 36,192,132,151,165, 64,165,226,109, 63, +176,199, 33,113, 80, 20, 1, 0, 24,237,111, 63,118,174,184, 64,212, 34,154, 62,125, 20, 44,126,148, 6, 1, 0,163,244,130, 64, +157, 58,133, 64,125, 95,226,190,119, 89, 5, 91, 86,246, 1, 0, 96,230,181, 64, 33, 24,119, 63,174, 26,130,191, 70,124, 25, 21, +200,233, 1, 0,103, 93,163, 64,136,128, 38,192, 83,235,153,191,156,111, 32,199,182,229, 1, 0,238,219, 36, 64,132,151,165,192, +165,226,109,191, 80, 56,223,142,176,235, 1, 0, 24,237,111,191,118,174,184,192,212, 34,154,190,131,235,212,129,108,249, 1, 0, +163,244,130,192,157, 58,133,192,125, 95,226, 62,137,166,251,164,170, 9, 1, 0,227,163, 54,192, 86,121, 78, 64, 22,202,125, 64, +157,193,136, 70,177, 86, 1, 0,241, 40, 53, 64,200, 31,134, 64,229,188, 60, 64,226, 61,162, 91,120, 64, 1, 0, 37, 2,173, 64, +137,187,123,191, 56, 68, 1, 64, 50,118,129,234, 40, 44, 1, 0,124, 55,168, 63,224,177,164,192, 58,144, 29, 64,187, 28,124,143, +210, 53, 1, 0, 19,159,114,192,254,226, 34,192,196,133,106, 64, 31,173, 92,200, 28, 80, 1, 0,234,168, 2,192,231,158, 57, 61, + 65,149,175, 64, 94,211,253, 0,245,119, 1, 0,105,176,249, 62, 21,148, 39, 64,217,214,166, 64,169, 10, 62, 57,251,113, 1, 0, + 94, 35,105, 64,230, 88,129, 63,195, 14,143, 64,163, 79, 23, 22,188, 97, 1, 0,114, 17, 68, 64,226,153, 35,192,154, 26,137, 64, +250, 66, 30,200,171, 93, 1, 0,155, 40,230,190,239,199, 73,192,176, 52,157, 64, 45,246, 19,187,103,107, 1, 0, 37,178, 10,192, +138,231,201, 63,149,143,166,192, 31,209,244, 33,216,141, 1, 0, 3,132,110,192,243,203, 85, 64,151,107, 66,192, 67,174, 93, 73, + 73,190, 1, 0,116,161,174,190, 81,152,241, 63,110, 2,177,192, 38,248,149, 40,221,134, 1, 0,138, 91,154, 63,218,179,133, 64, +209,222,122,192,185, 26,201, 91,228,170, 1, 0, 7, 82, 52,192, 82,252,149, 64, 64,202, 5,192,177,193, 36,102,136,210, 1, 0, +179, 12,148, 62,251,221,166, 64,188, 87, 41,192, 34, 7,239,113, 29,198, 1, 0,216,246, 29,192, 17,156,141,190,209,167,169,192, +176,202, 86,250,199,139, 1, 0, 99, 72,145,192, 79,114,213,191,183, 35, 83,192, 97,156, 62,219,138,184, 1, 0,115, 58,158,192, +129,120, 33, 64,198, 41,238,191, 60,148,228, 55,113,215, 1, 0,118,158,174,192,103,148, 33,191,140,156, 1,192,201,136,100,241, +196,211, 1, 0, 55, 14,249, 62, 95,133,102, 62,210,143,186,192,213, 9, 14, 5,124,128, 1, 0,220, 61, 92, 64, 56,230,159,190, + 6, 61,151,192,224, 75, 11,249, 40,153, 1, 0, 7, 86, 60, 64, 60, 48,119, 64, 93, 88, 81,192,216, 63, 8, 85,193,184, 1, 0, +252, 55,139, 64, 62, 95,132, 63,225,216,113,192, 80, 95,209, 21,103,173, 1, 0, 18, 6, 84,191,251, 96,142,191, 76, 4,182,192, +189,237,121,232,133,131, 1, 0,109, 74,225,189, 51, 54,123,192, 34,246,138,192,203,253,153,169,152,161, 1, 0,153, 66,119, 64, +127,154,251,191,161,220,123,192,230, 84,182,213, 15,170, 1, 0,201, 59,208, 63,241,182,135,192,212,101,108,192,232, 34,217,162, +118,175, 1, 0,161,246,169,191,235,196,151,192,170,149, 74,192,196,227, 32,152,192,186, 1, 0, 33,198,131,192,218,137, 84,192, + 37,134, 32,192,102,165,233,183,113,201, 1, 0,176, 61,179,192,138,110,210,191, 24,220,228,190,179,133,191,219,126,245, 1, 0, + 73,182,170,192,136, 16, 90,190, 90,194, 25, 64,168,139,188,251, 46, 53, 1, 0, 75, 55,153,192, 4, 78, 87, 64, 12, 54, 62,190, +149,151,222, 73, 60,251, 1, 0,235, 19,161,192,207, 12,210, 63,210,242, 31, 64, 23,146, 90, 35, 63, 55, 1, 0, 60, 75, 94,192, +189,115,150, 64,186,211,167,190,173,179,116,102, 51,248, 1, 0,186,191,189,191, 63, 32,168, 64,213,100, 7, 64, 46,224,204,114, +208, 46, 1, 0,242,205,186, 63,141, 65,177, 64,127,219,154,191, 36, 32,223,120,206,228, 1, 0, 99,245,175, 62, 97, 12,178, 64, +255,253,228, 63, 52, 7,109,121,213, 39, 1, 0,226, 92, 70, 64, 8,131,150, 64,182, 77,204,191, 49, 67, 2,103,141,220, 1, 0, +200,194,152, 64,180,155, 83, 64,154,217, 62, 63,158,104,199, 71,227, 16, 1, 0, 73,182,170, 64,136, 16, 90, 62, 90,194, 25,192, + 88,116, 68, 4,210,202, 1, 0,176, 61,179, 64,138,110,210, 63, 24,220,228, 62, 77,122, 65, 36,130, 10, 1, 0,235, 19,161, 64, +207, 12,210,191,210,242, 31,192,233,109,166,220,193,200, 1, 0, 75, 55,153, 64, 4, 78, 87,192, 12, 54, 62, 62,107,104, 34,182, +196, 4, 1, 0,186,191,189, 63, 63, 32,168,192,213,100, 7,192,210, 31, 52,141, 48,209, 1, 0, 60, 75, 94, 64,189,115,150,192, +186,211,167, 62, 83, 76,140,153,205, 7, 1, 0, 99,245,175,190, 97, 12,178,192,255,253,228,191,204,248,147,134, 43,216, 1, 0, +242,205,186,191,141, 65,177,192,127,219,154, 63,220,223, 33,135, 50, 27, 1, 0,200,194,152,192,180,155, 83,192,154,217, 62,191, + 98,151, 57,184, 29,239, 1, 0,226, 92, 70,192, 8,131,150,192,182, 77,204, 63,207,188,254,152,115, 35, 1, 0,201, 59,208,191, +241,182,135, 64,212,101,108, 64, 24,221, 39, 93,138, 80, 1, 0,153, 66,119,192,127,154,251, 63,161,220,123, 64, 26,171, 74, 42, +241, 85, 1, 0,161,246,169, 63,235,196,151, 64,170,149, 74, 64, 60, 28,224,103, 64, 69, 1, 0, 33,198,131, 64,218,137, 84, 64, + 37,134, 32, 64,154, 90, 23, 72,143, 54, 1, 0,118,158,174, 64,103,148, 33, 63,140,156, 1, 64, 55,119,156, 14, 60, 44, 1, 0, +115, 58,158, 64,129,120, 33,192,198, 41,238, 63,196,107, 28,200,143, 40, 1, 0, 7, 82, 52, 64, 82,252,149,192, 64,202, 5, 64, + 79, 62,220,153,120, 45, 1, 0,179, 12,148,190,251,221,166,192,188, 87, 41, 64,222,248, 17,142,227, 57, 1, 0, 7, 86, 60,192, + 60, 48,119,192, 93, 88, 81, 64, 40,192,248,170, 63, 71, 1, 0,252, 55,139,192, 62, 95,132,191,225,216,113, 64,176,160, 47,234, +153, 82, 1, 0,220, 61, 92,192, 56,230,159, 62, 6, 61,151, 64, 32,180,245, 6,216,102, 1, 0, 55, 14,249,190, 95,133,102,190, +210,143,186, 64, 43,246,242,250,132,127, 1, 0,109, 74,225, 61, 51, 54,123, 64, 34,246,138, 64, 53, 2,103, 86,104, 94, 1, 0, + 18, 6, 84, 63,251, 96,142, 63, 76, 4,182, 64, 67, 18,135, 23,123,124, 1, 0, 99, 72,145, 64, 79,114,213, 63,183, 35, 83, 64, +159, 99,194, 36,118, 71, 1, 0,216,246, 29, 64, 17,156,141, 62,209,167,169, 64, 80, 53,170, 5, 57,116, 1, 0, 3,132,110, 64, +243,203, 85,192,151,107, 66, 64,189, 81,163,182,183, 65, 1, 0, 37,178, 10, 64,138,231,201,191,149,143,166, 64,225, 46, 12,222, + 40,114, 1, 0,138, 91,154,191,218,179,133,192,209,222,122, 64, 71,229, 55,164, 28, 85, 1, 0,116,161,174, 62, 81,152,241,191, +110, 2,177, 64,218, 7,107,215, 35,121, 1, 0, 36, 76, 19,192, 25,151,129, 64,212,254, 98,192,201,206,101, 88,154,177, 1, 0, + 93,232,175,191,177, 23, 64, 64, 69,186,154,192,229,225,204, 66, 13,151, 1, 0,208,190,232,190, 93,160,139, 64,191, 33,120,192, +216,244,220, 94,204,170, 1, 0,210,126,142,192, 43, 49,238, 63,112, 30, 84,192,185,158,127, 39,203,182, 1, 0,138,165, 97,192, + 92, 9, 80, 63, 20, 74,147,192,212,177,229, 17, 63,156, 1, 0, 98, 61,152,192, 87, 63,106,188, 6, 97, 90,192,114,152,219, 0, +199,180, 1, 0,200,173, 14, 64,155,183, 63, 64,192, 75,144,192,205, 48, 77, 64,172,156, 1, 0, 95,162,167, 63,144, 29,209, 63, + 25,245,174,192,217, 29, 61, 36,238,136, 1, 0,211, 62, 68, 64, 51, 56,168, 63, 13,245,153,192, 12, 66,168, 29,115,150, 1, 0, + 33,182, 36, 64, 34, 38,220,191,150, 5,159,192, 10, 55,224,217,234,146, 1, 0, 16, 34, 81, 63,129, 64,179,191,162, 5,180,192, +215, 18,118,224,100,133, 1, 0,212, 56,159, 63,172,166, 68,192,212,108,154,192,164, 27, 0,190,224,149, 1, 0,204, 76,223,191, +170, 32,101,192, 65, 83,137,192,225,216,170,178,208,161, 1, 0,249,249, 10,192, 62, 52,244,191, 25,236,162,192, 21,208, 32,213, + 85,145, 1, 0, 42,207, 89,192,251, 6, 47,192, 27,165,121,192,179,182, 21,196,221,169, 1, 0,137,215,176,192, 25, 62,241, 63, +179,254,219,190,190,134, 7, 40, 61,247, 1, 0, 28,150,186,192,150, 16, 28, 60,191, 9, 7,191,120,128,100, 1, 57,245, 1, 0, + 34,132,181,192, 99, 60, 92, 63,217, 81,149, 63,188,131,235, 18, 33, 24, 1, 0,175,242, 74,190,164,173,183, 64,227,105,145,191, +146,250,157,125, 8,232, 1, 0,219,227, 2,192, 96,164,173, 64,200, 71, 78,191,131,212, 38,119,214,238, 1, 0,181,140, 92,191, + 75, 38,184, 64,176,148, 37, 63,231,236,234,125,196, 12, 1, 0, 75,104,159, 64,212, 56,236, 63,240,126, 29,192,213,108,134, 41, +245,202, 1, 0,215,159,132, 64, 84,184, 97, 64, 30, 44, 10,192,150, 91, 44, 76, 46,209, 1, 0, 95,122,164, 64,199,143, 44, 64, + 53, 78, 68,191, 25,112, 14, 59,222,237, 1, 0,255,176, 54, 64,243, 84,141,192,237,176, 36,192,159, 63,250,159, 50,200, 1, 0, + 93,229,133, 64,217, 21, 68,192,157,226, 45,192, 6, 91,218,187, 61,197, 1, 0,203, 56,129, 64, 21,211,130,192,187,115,143,191, + 3, 88,190,166, 33,230, 1, 0,189,239,104,192, 82,142,140,192,178,178,168,191,108,177, 13,159,144,227, 1, 0, 50,141,253,191, + 52,155,167,192,170,181,218,191,154,211,162,141,131,219, 1, 0,164, 58, 41,192,172, 34,167,192,206,232,151, 61,239,197,240,141, + 63, 0, 1, 0, 93,229,133,192,217, 21, 68, 64,157,226, 45, 64,250,164, 38, 68,195, 58, 1, 0,203, 56,129,192, 21,211,130, 64, +187,115,143, 63,253,167, 66, 89,223, 25, 1, 0,255,176, 54,192,243, 84,141, 64,237,176, 36, 64, 97,192, 6, 96,206, 55, 1, 0, + 50,141,253, 63, 52,155,167, 64,170,181,218, 63,102, 44, 94,114,125, 36, 1, 0,164, 58, 41, 64,172, 34,167, 64,206,232,151,189, + 17, 58, 16,114,193,255, 1, 0,189,239,104, 64, 82,142,140, 64,178,178,168, 63,148, 78,243, 96,112, 28, 1, 0, 28,150,186, 64, +150, 16, 28,188,191, 9, 7, 63,136,127,156,254,199, 10, 1, 0, 34,132,181, 64, 99, 60, 92,191,217, 81,149,191, 68,124, 21,237, +223,231, 1, 0,137,215,176, 64, 25, 62,241,191,179,254,219, 62, 66,121,249,215,195, 8, 1, 0,219,227, 2, 64, 96,164,173,192, +200, 71, 78, 63,125, 43,218,136, 42, 17, 1, 0,181,140, 92, 63, 75, 38,184,192,176,148, 37,191, 25, 19, 22,130, 60,243, 1, 0, +175,242, 74, 62,164,173,183,192,227,105,145, 63,110, 5, 99,130,248, 23, 1, 0,215,159,132,192, 84,184, 97,192, 30, 44, 10, 64, +106,164,212,179,210, 46, 1, 0, 95,122,164,192,199,143, 44,192, 53, 78, 68, 63,231,143,242,196, 34, 18, 1, 0, 75,104,159,192, +212, 56,236,191,240,126, 29, 64, 43,147,122,214, 11, 53, 1, 0,212, 56,159,191,172,166, 68, 64,212,108,154, 64, 92,228, 0, 66, + 32,106, 1, 0, 33,182, 36,192, 34, 38,220, 63,150, 5,159, 64,246,200, 32, 38, 22,109, 1, 0, 16, 34, 81,191,129, 64,179, 63, +162, 5,180, 64, 41,237,138, 31,156,122, 1, 0, 42,207, 89, 64,251, 6, 47, 64, 27,165,121, 64, 77, 73,235, 59, 35, 86, 1, 0, +208, 76,223, 63,170, 32,101, 64, 65, 83,137, 64, 31, 39, 86, 77, 48, 94, 1, 0,249,249, 10, 64, 62, 52,244, 63, 25,236,162, 64, +235, 47,224, 42,171,110, 1, 0,210,126,142, 64, 43, 49,238,191,112, 30, 84, 64, 71, 97,129,216, 53, 73, 1, 0, 98, 61,152, 64, + 87, 63,106, 60, 6, 97, 90, 64,142,103, 37,255, 57, 75, 1, 0,138,165, 97, 64, 92, 9, 80,191, 20, 74,147, 64, 44, 78, 27,238, +193, 99, 1, 0,208,190,232, 62, 93,160,139,192,191, 33,120, 64, 40, 11, 36,161, 52, 85, 1, 0, 36, 76, 19, 64, 25,151,129,192, +212,254, 98, 64, 55, 49,155,167,102, 78, 1, 0, 93,232,175, 63,177, 23, 64,192, 69,186,154, 64, 27, 30, 52,189,243,104, 1, 0, +211, 62, 68,192, 51, 56,168,191, 13,245,153, 64,244,189, 88,226,141,105, 1, 0,200,173, 14,192,155,183, 63,192,192, 75,144, 64, + 51,207,179,191, 84, 99, 1, 0, 95,162,167,191,144, 29,209,191, 25,245,174, 64, 39,226,195,219, 18,119, 1, 0,158,156,211,191, +185,228,132, 63,190,207,176,192,249,219,152, 22, 71,135, 1, 0, 0, 76, 41,192,190,199, 5, 64, 83,157,153,192, 56,198,174, 45, + 83,151, 1, 0,204, 83,125,192,169, 55,105, 64,244,162, 20,192,132,169,162, 79,100,205, 1, 0,178,215, 91,192,222,235, 62, 64, +190,254,108,192, 26,181, 8, 65, 28,175, 1, 0,242, 63, 59,191,210,237,152, 63,251, 21,182,192,248,239,253, 25,180,131, 1, 0, + 86,230, 94, 61,198, 30, 35, 64,233, 15,169,192, 62, 1,180, 55,197,140, 1, 0,220, 4,199, 63, 7,145,146, 64,104,186, 83,192, + 3, 34, 24,100,216,183, 1, 0, 9,120, 86, 63,149, 91,109, 64, 79,242,142,192, 57, 18,216, 80,117,158, 1, 0,103,243, 95,192, +221, 91,138, 64,186, 15,236,191,121,179, 96, 94,195,215, 1, 0, 46,206, 5,192,121, 41,159, 64,154, 91, 19,192,127,210,143,108, +188,205, 1, 0,169,200,139, 63,198, 78,163, 64,201,146, 42,192,249, 23,113,111,202,197, 1, 0,187,128, 4,191,206,181,167, 64, + 74, 92, 37,192,151,244, 89,114,164,199, 1, 0,151, 16,231,191,160,166,209, 61,167, 95,178,192,173,216, 74, 2, 56,134, 1, 0, +163,200, 69,192,178,143, 38,191,148, 48,158,192,124,188,192,241, 51,148, 1, 0, 43,192,155,192,151, 6,250,191,170, 82, 39,192, +166,149, 76,213, 2,199, 1, 0,233,118,132,192,217,111,173,191, 67,122,123,192,191,165,124,226, 46,170, 1, 0,238, 85,146,192, +178,205, 78, 64, 70, 54,221,191, 47,156,175, 70, 71,218, 1, 0, 76,137,167,192,111, 31,227, 63,158, 57,251,191,187,141,154, 38, + 42,213, 1, 0, 39,143,170,192,167, 15,183,191,251, 85,252,191,157,139,164,224,245,212, 1, 0, 8,214,175,192,177,124, 53, 62, +206,241, 2,192, 28,136,252, 3, 92,211, 1, 0, 77,160,160,190, 9, 20,182, 62,108,232,186,192, 8,249,201, 7,111,128, 1, 0, + 33,144,163, 63,151,144,186, 61, 50, 47,183,192,255, 27,247, 1, 31,131, 1, 0,222,179,129, 64,234,147,224,190, 38,180,134,192, +157, 88,103,246, 37,164, 1, 0,114,138, 49, 64,246, 97, 57,190, 57, 76,165,192,109, 60, 18,252, 60,143, 1, 0,249,158, 27, 64, +197,118,141, 64, 58,196, 62,192, 6, 53,163, 96,242,190, 1, 0, 98,244, 89, 64, 8,120, 79, 64, 65,128, 96,192, 94, 74,162, 70, +111,179, 1, 0, 13,100,144, 64,200,214,118, 62, 64,205,110,192,146, 98, 37, 5,132,174, 1, 0, 42,202,131, 64, 60,161,231, 63, +142,245,112,192,210, 89,152, 39,220,173, 1, 0,149, 51,122,191, 52,151,163,190, 15,157,184,192,162,234, 36,249,253,129, 1, 0, + 5,113, 42,191, 31,112,241,191, 15,119,176,192,128,241,188,214,182,135, 1, 0, 60, 55,172, 61, 22, 64,143,192,164,246,113,192, +221, 1, 37,158,133,173, 1, 0,167,173,154,190,111,224, 83,192,198,169,154,192, 98,249,221,183,123,150, 1, 0,151,133,136, 64, + 9,249,162,191,106,219,115,192, 61, 93, 76,228,206,172, 1, 0,110,124, 89, 64,135, 6, 40,192,223,195,127,192, 18, 74,160,198, +205,168, 1, 0,244,248,117, 63,109, 90,148,192,123, 0, 93,192,225, 20,176,154,159,180, 1, 0,162, 0, 17, 64, 63,196,113,192, + 52,239,119,192,134, 49,167,173,116,171, 1, 0,162,217, 7,191, 21,117,156,192,222,238, 75,192,137,244, 50,149,104,186, 1, 0, +171,144, 6,192,112,158,144,192,198,241, 69,192, 4,210,111,157,136,188, 1, 0,110,238,148,192,115,109, 50,192,187,197, 13,192, + 69,154, 50,195,171,207, 1, 0, 79,252, 96,192,140, 40,115,192,116,165, 48,192,100,179, 10,173,191,195, 1, 0,100,228,172,192, +217,128,248,191, 8, 93,150,191, 8,138,142,213, 59,230, 1, 0, 82,171,182,192,216,250,168,191, 15, 15,147, 62,113,131, 63,227, + 95, 6, 1, 0,215, 73,160,192,124,165, 49, 62,232, 85, 66, 64,167,146,217, 3,105, 66, 1, 0,171, 89,178,192,192,115, 24,191, + 78,116,221, 63, 94,134,244,242,165, 37, 1, 0, 51,206,143,192,133,250,105, 64,119,251, 97,191,230,157,228, 79,157,236, 1, 0, + 62, 32,160,192,163, 38, 65, 64,164,117, 3, 63,203,146,203, 65, 78, 11, 1, 0,216,108,155,192, 59,255,141, 63,189,117, 69, 64, +243,149, 37, 24,120, 67, 1, 0, 85, 27,164,192,244, 78, 9, 64, 87,193,239, 63, 25,144,226, 46,198, 40, 1, 0,134, 35,117,192, + 39,152,138, 64, 73, 86,116,191, 74,172,136, 94, 15,235, 1, 0, 35,220, 67,192, 6,218,159, 64,242,103,155, 62, 75,189, 8,109, +183, 6, 1, 0,130, 79, 99,191,215,182,164, 64, 10, 4, 42, 64,180,236,103,112, 26, 58, 1, 0,161, 86, 3,192, 14,205,168, 64, + 60, 55,197, 63, 37,211, 23,115,135, 33, 1, 0,229,101,215, 63, 84,141,168, 64, 16, 90,248,191,201, 36,255,114,131,213, 1, 0, + 99, 52,155, 63,198, 17,183, 64,232,199,235,190,107, 26,216,124, 17,246, 1, 0,105,179, 10, 61, 25,185,169, 64,120,119, 31, 64, +177, 0,204,115,135, 54, 1, 0,143,198, 37, 63,123,120,183, 64,160,108,135, 63, 44, 14, 29,125,249, 22, 1, 0,180,174, 32, 64, + 65, 13,155, 64,238,167, 8,192,189, 54,216,105, 72,209, 1, 0, 69,199,104, 64,177,135,143, 64, 41, 12,132,191,111, 79,211, 97, +148,233, 1, 0,121,134,159, 64, 49,245, 49, 64,210,166,169, 63,233,108,165, 60, 9, 29, 1, 0, 52,133,143, 64,119,200,113, 64, +186,206, 29, 62,207, 97,126, 82, 70, 3, 1, 0,215, 73,160, 64,124,165, 49,190,232, 85, 66,192, 89,109, 39,252,151,189, 1, 0, +171, 89,178, 64,192,115, 24, 63, 78,116,221,191,162,121, 12, 13, 91,218, 1, 0,100,228,172, 64,217,128,248, 63, 8, 93,150, 63, +248,117,114, 42,197, 25, 1, 0, 82,171,182, 64,216,250,168, 63, 15, 15,147,190,143,124,193, 28,161,249, 1, 0,216,108,155, 64, + 59,255,141,191,189,117, 69,192, 13,106,219,231,136,188, 1, 0, 85, 27,164, 64,244, 78, 9,192, 87,193,239,191,231,111, 30,209, + 58,215, 1, 0, 51,206,143, 64,133,250,105,192,119,251, 97, 63, 26, 98, 28,176, 99, 19, 1, 0, 62, 32,160, 64,163, 38, 65,192, +164,117, 3,191, 53,109, 53,190,178,244, 1, 0,130, 79, 99, 63,215,182,164,192, 10, 4, 42,192, 76, 19,153,143,230,197, 1, 0, +161, 86, 3, 64, 14,205,168,192, 60, 55,197,191,219, 44,233,140,121,222, 1, 0,134, 35,117, 64, 39,152,138,192, 73, 86,116, 63, +182, 83,120,161,241, 20, 1, 0, 35,220, 67, 64, 6,218,159,192,242,103,155,190,181, 66,248,146, 73,249, 1, 0,105,179, 10,189, + 25,185,169,192,120,119, 31,192, 79,255, 52,140,121,201, 1, 0,143,198, 37,191,123,120,183,192,160,108,135,191,212,241,227,130, + 7,233, 1, 0,229,101,215,191, 84,141,168,192, 16, 90,248, 63, 55,219, 1,141,125, 42, 1, 0, 99, 52,155,191,198, 17,183,192, +232,199,235, 62,149,229, 40,131,239, 9, 1, 0,121,134,159,192, 49,245, 49,192,210,166,169,191, 23,147, 91,195,247,226, 1, 0, + 52,133,143,192,119,200,113,192,186,206, 29,190, 49,158,130,173,186,252, 1, 0,180,174, 32,192, 65, 13,155,192,238,167, 8, 64, + 67,201, 40,150,184, 46, 1, 0, 69,199,104,192,177,135,143,192, 41, 12,132, 63,145,176, 45,158,108, 22, 1, 0,244,248,117,191, +109, 90,148, 64,123, 0, 93, 64, 31,235, 80,101, 97, 75, 1, 0,162, 0, 17,192, 63,196,113, 64, 52,239,119, 64,122,206, 89, 82, +140, 84, 1, 0,151,133,136,192, 9,249,162, 63,106,219,115, 64,195,162,180, 27, 50, 83, 1, 0,110,124, 89,192,135, 6, 40, 64, +223,195,127, 64,238,181, 96, 57, 51, 87, 1, 0,162,217, 7, 63, 21,117,156, 64,222,238, 75, 64,119, 11,206,106,152, 69, 1, 0, +171,144, 6, 64,112,158,144, 64,198,241, 69, 64,252, 45,145, 98,120, 67, 1, 0,110,238,148, 64,115,109, 50, 64,187,197, 13, 64, +187,101,206, 60, 85, 48, 1, 0, 79,252, 96, 64,140, 40,115, 64,116,165, 48, 64,156, 76,246, 82, 65, 60, 1, 0, 39,143,170, 64, +167, 15,183, 63,251, 85,252, 63, 99,116, 92, 31, 11, 43, 1, 0, 8,214,175, 64,177,124, 53,190,206,241, 2, 64,228,119, 4,252, +164, 44, 1, 0,238, 85,146, 64,178,205, 78,192, 70, 54,221, 63,209, 99, 81,185,185, 37, 1, 0, 76,137,167, 64,111, 31,227,191, +158, 57,251, 63, 69,114,102,217,214, 42, 1, 0,103,243, 95, 64,221, 91,138,192,186, 15,236, 63,135, 76,160,161, 61, 40, 1, 0, + 46,206, 5, 64,121, 41,159,192,154, 91, 19, 64,129, 45,113,147, 68, 50, 1, 0,169,200,139,191,198, 78,163,192,201,146, 42, 64, + 7,232,143,144, 54, 58, 1, 0,187,128, 4, 63,206,181,167,192, 74, 92, 37, 64,105, 11,167,141, 92, 56, 1, 0,249,158, 27,192, +197,118,141,192, 58,196, 62, 64,250,202, 93,159, 14, 65, 1, 0, 98,244, 89,192, 8,120, 79,192, 65,128, 96, 64,162,181, 94,185, +145, 76, 1, 0, 13,100,144,192,200,214,118,190, 64,205,110, 64,110,157,219,250,124, 81, 1, 0, 42,202,131,192, 60,161,231,191, +142,245,112, 64, 46,166,104,216, 36, 82, 1, 0,222,179,129,192,234,147,224, 62, 38,180,134, 64, 99,167,153, 9,219, 91, 1, 0, +114,138, 49,192,246, 97, 57, 62, 57, 76,165, 64,147,195,238, 3,196,112, 1, 0, 77,160,160, 62, 9, 20,182,190,108,232,186, 64, +248, 6, 55,248,145,127, 1, 0, 33,144,163,191,151,144,186,189, 50, 47,183, 64, 1,228, 9,254,225,124, 1, 0, 60, 55,172,189, + 22, 64,143, 64,164,246,113, 64, 35,254,219, 97,123, 82, 1, 0,167,173,154, 62,111,224, 83, 64,198,169,154, 64,158, 6, 35, 72, +133,105, 1, 0,149, 51,122, 63, 52,151,163, 62, 15,157,184, 64, 94, 21,220, 6, 3,126, 1, 0, 5,113, 42, 63, 31,112,241, 63, + 15,119,176, 64,128, 14, 68, 41, 74,120, 1, 0, 43,192,155, 64,151, 6,250, 63,170, 82, 39, 64, 90,106,180, 42,254, 56, 1, 0, +233,118,132, 64,217,111,173, 63, 67,122,123, 64, 65, 90,132, 29,210, 85, 1, 0,151, 16,231, 63,160,166,209,189,167, 95,178, 64, + 83, 39,182,253,200,121, 1, 0,163,200, 69, 64,178,143, 38, 63,148, 48,158, 64,132, 67, 64, 14,205,107, 1, 0,204, 83,125, 64, +169, 55,105,192,244,162, 20, 64,124, 86, 94,176,156, 50, 1, 0,178,215, 91, 64,222,235, 62,192,190,254,108, 64,230, 74,248,190, +228, 80, 1, 0,158,156,211, 63,185,228,132,191,190,207,176, 64, 7, 36,104,233,185,120, 1, 0, 0, 76, 41, 64,190,199, 5,192, + 83,157,153, 64,200, 57, 82,210,173,104, 1, 0,220, 4,199,191, 7,145,146,192,104,186, 83, 64,253,221,232,155, 40, 72, 1, 0, + 9,120, 86,191,149, 91,109,192, 79,242,142, 64,199,237, 40,175,139, 97, 1, 0,242, 63, 59, 63,210,237,152,191,251, 21,182, 64, + 8, 16, 3,230, 76,124, 1, 0, 86,230, 94,189,198, 30, 35,192,233, 15,169, 64,194,254, 76,200, 59,115, 1, 0,208, 27, 46,192, +124,104, 86, 64, 85, 52,126,192,122,197, 16, 73,183,168, 1, 0, 82,168,234,191, 87, 62,149, 64,118, 12, 67,192,197,216,162,101, +209,188, 1, 0,186, 10, 16,192,249,106, 52, 64,210,253,147,192,231,206,104, 62,158,155, 1, 0, 93, 33,240,190,191,199, 71, 64, +142, 47,158,192,166,245,253, 68,176,148, 1, 0, 19, 46, 71,187,194,240,115, 64,175,166,142,192, 0,255,213, 82,110,158, 1, 0, +188,194,101,191, 17, 84,154, 64,240,193, 77,192,140,235,211,104,117,185, 1, 0,246,246,115,192,183, 86, 15, 64, 51,168,118,192, +208,172,249, 47, 97,171, 1, 0,101, 1,160,192, 47,146,184, 63,153, 38, 45,192,249,146,160, 30, 91,196, 1, 0,215,229, 85,192, +166,178,218, 63,183, 55,144,192, 61,182, 81, 37, 72,158, 1, 0,151,178,104,192,245,107,205,189,175, 60,147,192,218,175,251,253, + 58,156, 1, 0,192, 81,136,192, 55,239, 4,191, 24,222,127,192, 84,163,147,245, 85,168, 1, 0, 70,241,164,192,102,218,251, 62, +143, 82, 48,192,224,143,144, 11, 93,195, 1, 0,209,230,173, 63,231,135, 71, 64, 27,234,152,192,195, 29, 39, 67, 46,151, 1, 0, +158,103, 67, 64, 82,206, 51, 64, 39,168,132,192,158, 66,115, 60,243,164, 1, 0,136,131,100, 63, 16, 95, 27, 64, 4,115,168,192, +106, 20, 79, 53,113,141, 1, 0, 77,154,217, 63,185, 69, 78, 63,221,196,177,192,249, 37, 9, 18, 27,135, 1, 0,107,195, 37, 64, + 4,213, 36, 63, 20, 33,167,192,212, 55,201, 14,199,141, 1, 0,103,139, 94, 64,153,146,250, 63, 72,141,137,192, 32, 75, 91, 43, +225,161, 1, 0,231,195, 21, 64,236, 58,101,191,218,178,169,192, 46, 50, 2,236,247,139, 1, 0,142, 32, 48, 64,155,140, 32,192, +195, 1,145,192, 36, 59,237,200,191,156, 1, 0, 70,155,185, 63, 12,202, 59,191,163, 86,180,192, 83, 32, 66,239, 75,133, 1, 0, + 29, 97, 43, 62,144,118, 2,192,125,231,175,192,109, 4,225,210, 78,136, 1, 0, 97,116,196, 62, 10,176, 56,192,120,239,162,192, +197, 8,225,193,112,144, 1, 0,185, 2, 5, 64,217,105, 76,192,135,173,142,192,159, 45, 45,187, 53,158, 1, 0,163,243,144,191, +252, 41, 73,192,148, 66,154,192,132,230, 16,188,144,150, 1, 0,147,133, 20,192,234, 55,124,192,176, 3,107,192,172,204,182,170, +139,175, 1, 0, 42,186, 60,192,219,128,189,191, 23, 43,155,192, 96,191,203,222,161,150, 1, 0, 52,164,172,191,106,240, 18,192, +141, 58,167,192, 44,226, 15,205,110,142, 1, 0, 12,171,100,192,249, 33,243,191,106,221,135,192,218,178, 99,214,187,162, 1, 0, +195, 78, 74,192,241,206, 96,192, 98, 88, 94,192,207,187, 78,179,131,179, 1, 0, 41,110,177,192, 81, 30,186, 63,105,249,158,191, +171,134,229, 30,109,229, 1, 0, 45,138,172,192,114,149, 17, 64,127,203,200, 62,254,137,191, 48,246, 8, 1, 0, 10, 94,182,192, + 48, 5, 1, 63, 86, 81,165,191,147,131,214, 11,110,228, 1, 0,117,224,186,192, 37,234,247,190,147, 56,126, 62,130,128, 89,246, +234, 5, 1, 0,204, 78,184,192, 19,193, 89,189,187,163,141, 63, 30,130,255,254, 35, 23, 1, 0,105,232,174,192,151,187,224, 63, +156,183,153, 63,130,136, 85, 38, 48, 25, 1, 0, 42,118, 68,191,101,173,176, 64,114,132,233,191,124,238,154,120,225,216, 1, 0, + 81,172,191, 62, 67,208,186, 64,195,163,216,190, 80, 7,126,127, 90,247, 1, 0,113, 2,218,191,172,151,171, 64,114, 25,212,191, +182,219,106,117, 61,220, 1, 0,251,244, 21,192, 28, 12,172, 64, 13,151,128, 61,203,205,185,117,163, 1, 1, 0, 51, 39,223,191, +248, 94,177, 64,104,122, 76, 63,211,217, 16,121,103, 16, 1, 0, 72,208, 28, 61, 91, 13,187, 64, 64,215,245, 62,146, 0,164,127, +121, 9, 1, 0, 45, 93,142, 64, 70,137, 14, 64,147,202, 70,192, 20, 97,115, 49,210,188, 1, 0,106, 23,173, 64,157,131,182, 63, +175,176,225,191,246,117, 6, 32, 7,218, 1, 0, 78,203,128, 64,124, 14, 69, 64, 55, 0, 61,192,146, 88,138, 66,228,191, 1, 0, +133,175,133, 64, 28,149,121, 64, 51,212,168,191,229, 91,100, 84,110,227, 1, 0, 8,211,149, 64, 84,166, 94, 64, 68, 24, 29,191, + 3,102,242, 75,149,241, 1, 0, 31,169,175, 64,138,176,237, 63, 15,168,103,191,147,119,172, 40, 64,235, 1, 0,122, 78, 57, 64, +224, 12,120,192, 7, 56, 84,192, 22, 64,197,171, 7,184, 1, 0, 0, 74, 48, 64,245,165,155,192,208, 87,227,191, 5, 61, 71,150, +132,217, 1, 0, 85,108,100, 64,115, 47, 76,192,149,224, 88,192,154, 77,133,185,145,182, 1, 0,173,191,150, 64,227,233, 55,192, +198,101,254,191,111,102,105,192, 10,213, 1, 0,119, 97,148, 64,200, 33, 89,192, 24,225,150,191,243,100,255,181, 68,229, 1, 0, + 75,171, 86, 64, 36, 83,150,192, 22, 36,133,191, 14, 73,157,153, 72,232, 1, 0,116,251, 81,192,115, 80,139,192, 57,124, 10,192, + 26,185, 78,160, 31,209, 1, 0, 70,239,122,192, 53,220,138,192,113, 86,227,190, 47,171,157,160,134,246, 1, 0, 14, 50, 28,192, +245, 4,153,192,141, 39, 23,192,247,201,182,151, 38,205, 1, 0, 34,123,189,191,203,168,178,192,149,106,130,191,217,222, 73,134, + 91,234, 1, 0,176,127,232,191,177,107,178,192, 47,189,236,189, 27,216,111,134,122,252, 1, 0, 53,168, 90,192,169, 83,152,192, +227,201,133, 62, 78,181, 43,152,172, 4, 1, 0,173,191,150,192,227,233, 55, 64,198,101,254, 63,145,153,151, 63,246, 42, 1, 0, + 85,108,100,192,115, 47, 76, 64,149,224, 88, 64,102,178,123, 70,111, 73, 1, 0,119, 97,148,192,200, 33, 89, 64, 24,225,150, 63, + 13,155, 1, 74,188, 26, 1, 0, 75,171, 86,192, 36, 83,150, 64, 22, 36,133, 63,242,182, 99,102,184, 23, 1, 0, 0, 74, 48,192, +245,165,155, 64,208, 87,227, 63,251,194,185,105,124, 38, 1, 0,122, 78, 57,192,224, 12,120, 64, 7, 56, 84, 64,234,191, 59, 84, +249, 71, 1, 0, 34,123,189, 63,203,168,178, 64,149,106,130, 63, 39, 33,183,121,165, 21, 1, 0, 14, 50, 28, 64,245, 4,153, 64, +141, 39, 23, 64, 9, 54, 74,104,218, 50, 1, 0,176,127,232, 63,177,107,178, 64, 47,189,236, 61,229, 39,145,121,134, 3, 1, 0, + 53,168, 90, 64,169, 83,152, 64,227,201,133,190,178, 74,213,103, 84,251, 1, 0, 70,239,122, 64, 53,220,138, 64,113, 86,227, 62, +209, 84, 99, 95,122, 9, 1, 0,116,251, 81, 64,115, 80,139, 64, 57,124, 10, 64,230, 70,178, 95,225, 46, 1, 0,117,224,186, 64, + 37,234,247, 62,147, 56,126,190,126,127,167, 9, 22,250, 1, 0, 10, 94,182, 64, 48, 5, 1,191, 86, 81,165, 63,109,124, 42,244, +146, 27, 1, 0,204, 78,184, 64, 19,193, 89, 61,187,163,141,191,226,125, 1, 1,221,232, 1, 0,105,232,174, 64,151,187,224,191, +156,183,153,191,126,119,171,217,208,230, 1, 0, 45,138,172, 64,114,149, 17,192,127,203,200,190, 2,118, 65,207, 10,247, 1, 0, + 41,110,177, 64, 81, 30,186,191,105,249,158, 63, 85,121, 27,225,147, 26, 1, 0,251,244, 21, 64, 28, 12,172,192, 13,151,128,189, + 53, 50, 71,138, 93,254, 1, 0,113, 2,218, 63,172,151,171,192,114, 25,212, 63, 74, 36,150,138,195, 35, 1, 0, 51, 39,223, 63, +248, 94,177,192,104,122, 76,191, 45, 38,240,134,153,239, 1, 0, 72,208, 28,189, 91, 13,187,192, 64,215,245,190,110,255, 92,128, +135,246, 1, 0, 81,172,191,190, 67,208,186,192,195,163,216, 62,176,248,130,128,166, 8, 1, 0, 42,118, 68, 63,101,173,176,192, +114,132,233, 63,132, 17,102,135, 31, 39, 1, 0,133,175,133,192, 28,149,121,192, 51,212,168, 63, 27,164,156,171,146, 28, 1, 0, + 78,203,128,192,124, 14, 69,192, 55, 0, 61, 64,110,167,118,189, 28, 64, 1, 0, 31,169,175,192,138,176,237,191, 15,168,103, 63, +109,136, 84,215,192, 20, 1, 0, 8,211,149,192, 84,166, 94,192, 68, 24, 29, 63,253,153, 14,180,107, 14, 1, 0,106, 23,173,192, +157,131,182,191,175,176,225, 63, 10,138,250,223,249, 37, 1, 0, 45, 93,142,192, 70,137, 14,192,147,202, 70, 64,236,158,141,206, + 46, 67, 1, 0,185, 2, 5,192,217,105, 76, 64,135,173,142, 64, 97,210,211, 68,203, 97, 1, 0, 97,116,196,190, 10,176, 56, 64, +120,239,162, 64, 59,247, 31, 62,144,111, 1, 0,142, 32, 48,192,155,140, 32, 64,195, 1,145, 64,220,196, 19, 55, 65, 99, 1, 0, +231,195, 21,192,236, 58,101, 63,218,178,169, 64,210,205,254, 19, 9,116, 1, 0, 70,155,185,191, 12,202, 59, 63,163, 86,180, 64, +173,223,190, 16,181,122, 1, 0, 29, 97, 43,190,144,118, 2, 64,125,231,175, 64,147,251, 31, 45,178,119, 1, 0,195, 78, 74, 64, +241,206, 96, 64, 98, 88, 94, 64, 49, 68,178, 76,125, 76, 1, 0, 12,171,100, 64,249, 33,243, 63,106,221,135, 64, 38, 77,157, 41, + 69, 93, 1, 0,147,133, 20, 64,234, 55,124, 64,176, 3,107, 64, 84, 51, 74, 85,117, 80, 1, 0,164,243,144, 63,252, 41, 73, 64, +148, 66,154, 64,124, 25,240, 67,112,105, 1, 0, 52,164,172, 63,106,240, 18, 64,141, 58,167, 64,212, 29,241, 50,146,113, 1, 0, + 42,186, 60, 64,219,128,189, 63, 23, 43,155, 64,160, 64, 53, 33, 95,105, 1, 0,101, 1,160, 64, 47,146,184,191,153, 38, 45, 64, + 7,109, 96,225,165, 59, 1, 0,246,246,115, 64,183, 86, 15,192, 51,168,118, 64, 48, 83, 7,208,159, 84, 1, 0, 70,241,164, 64, +102,218,251,190,143, 82, 48, 64, 32,112,112,244,163, 60, 1, 0,192, 81,136, 64, 55,239, 4, 63, 24,222,127, 64,172, 92,109, 10, +171, 87, 1, 0,151,178,104, 64,245,107,205, 61,175, 60,147, 64, 38, 80, 5, 2,198, 99, 1, 0,215,229, 85, 64,166,178,218,191, +183, 55,144, 64,195, 73,175,218,184, 97, 1, 0,188,194,101, 63, 17, 84,154,192,240,193, 77, 64,116, 20, 45,151,139, 70, 1, 0, + 19, 46, 71, 59,194,240,115,192,175,166,142, 64, 0, 1, 43,173,146, 97, 1, 0, 82,168,234, 63, 87, 62,149,192,118, 12, 67, 64, + 59, 39, 94,154, 47, 67, 1, 0,208, 27, 46, 64,124,104, 86,192, 85, 52,126, 64,134, 58,240,182, 73, 87, 1, 0,186, 10, 16, 64, +249,106, 52,192,210,253,147, 64, 25, 49,152,193, 98,100, 1, 0, 93, 33,240, 62,191,199, 71,192,142, 47,158, 64, 90, 10, 3,187, + 80,107, 1, 0,103,139, 94,192,153,146,250,191, 72,141,137, 64,224,180,165,212, 31, 94, 1, 0,107,195, 37,192, 4,213, 36,191, + 20, 33,167, 64, 44,200, 55,241, 57,114, 1, 0,158,103, 67,192, 82,206, 51,192, 39,168,132, 64, 98,189,141,195, 13, 91, 1, 0, +209,230,173,191,231,135, 71,192, 27,234,152, 64, 61,226,217,188,210,104, 1, 0, 77,154,217,191,185, 69, 78,191,221,196,177, 64, + 7,218,247,237,229,120, 1, 0,136,131,100,191, 16, 95, 27,192, 4,115,168, 64,150,235,177,202,143,114, 1, 0,139,220, 37,192, +245,135,141, 64,114,173, 54,192, 49,199, 96, 96,209,193, 1, 0,204,119, 84,192, 93, 73,130, 64,212,107, 38,192, 46,183,222, 88, +151,199, 1, 0,208, 76, 67,192, 62,120,111, 64, 14, 89, 85,192, 82,189,194, 81,136,183, 1, 0, 68,147,238,191,166,230,100, 64, +234, 9,136,192,206,215,123, 78, 57,163, 1, 0, 30,149,109,191, 40, 18,111, 64,171,100,141,192, 48,235,197, 81,194,159, 1, 0, +144,237,178,191, 25,136,136, 64,121, 1,113,192,117,225,197, 92, 71,173, 1, 0,214, 82, 66, 63,128,115,152, 64,164, 25, 85,192, + 1, 17, 31,104,135,183, 1, 0,119,155,171,189,138, 40,155, 64,113, 96, 83,192,123,254,195,105,238,183, 1, 0, 67,138,194, 62, +177, 97,138, 64, 75,158,124,192,109, 8,131, 94, 26,170, 1, 0,158,106, 94,191,167,106, 30, 64,254,240,167,192,230,236,191, 53, +107,141, 1, 0, 22,114,229,191,193, 96, 20, 64,253,167,162,192, 20,217, 97, 50,247,144, 1, 0, 45,210,162,191,233,211,224, 63, +184, 67,174,192, 71,228,227, 37,237,136, 1, 0, 37, 61,152,192,230, 9, 14, 64,137,179, 39,192, 84,152,178, 48,225,198, 1, 0, +232,187,140,192, 6, 96, 62, 64,107,247, 30,192, 9,160, 82, 65, 23,202, 1, 0,116,134,132,192, 40,130, 40, 64,237,207, 77,192, +140,165,146, 57, 26,186, 1, 0, 12,129,129,192,231,129,173, 63,159,125,128,192, 68,167, 25, 29,120,168, 1, 0,254,112,134,192, +126,146,207, 62,159, 19,130,192, 18,164,108, 9,113,167, 1, 0,189,121,149,192,142,192,111, 63, 76, 95, 90,192, 88,154,108, 20, +246,180, 1, 0, 12, 65,162,192, 11, 84,149,191,172,202, 44,192, 58,145, 32,230, 85,197, 1, 0, 74,120,165,192, 95, 78,167,190, +139, 51, 48,192, 54,143,145,248,243,195, 1, 0, 61,161,150,192,107,221, 89,191,118,113, 89,192, 42,153, 81,237, 31,182, 1, 0, + 52, 56, 66,192,206, 40,139, 62, 21,116,160,192, 9,190, 18, 6,123,146, 1, 0,245,120, 56,192,118,213,154, 63, 81,227,158,192, + 78,193, 49, 26,136,147, 1, 0,220,104, 22,192,204,221, 40, 63,115,137,170,192, 33,205, 87, 14,110,139, 1, 0,145,143, 39, 64, +190, 49, 94, 64,165, 27,124,192,240, 56,248, 75, 41,170, 1, 0,130,168, 6, 64,190,132,130, 64, 12, 96,105,192,224, 45,104, 89, +186,176, 1, 0, 76,169,222, 63,205,107,104, 64,150,142,136,192, 22, 38,102, 79, 30,163, 1, 0,137,207,229, 63, 30, 63, 22, 64, +207,235,161,192,188, 39,234, 50,127,145, 1, 0,239, 11, 14, 64,175,114,191, 63,254,208,166,192,132, 48, 69, 33, 84,142, 1, 0, +239,222, 43, 64,212,226, 11, 64,227, 71,151,192, 42, 58,144, 47, 97,152, 1, 0, 0,245,124, 64, 27, 32,187, 62, 57, 6,138,192, +148, 86,163, 7, 11,162, 1, 0, 42, 75,112, 64,228, 42,152, 63, 25, 44,139,192,254, 81,163, 25, 31,161, 1, 0,178,218, 82, 64, +178,247, 1, 63,211,129,154,192, 31, 72, 6, 11,214,150, 1, 0,208,203,104, 63,146, 6,113, 63,108, 5,183,192,137, 19,150, 20, + 49,131, 1, 0, 26, 68,251, 62,111, 38,228, 63,114, 48,178,192,142, 10,162, 38,111,134, 1, 0,163, 78,149, 61, 65, 25,137, 63, +234,102,184,192, 37, 1, 44, 23, 32,130, 1, 0, 98,140, 80, 64,169,205,238,191, 83, 69,144,192, 67, 71,141,215,172,157, 1, 0, +177, 39,109, 64,155,213,147,191,238,143,140,192, 71, 81,255,230, 87,160, 1, 0,100,225, 66, 64,146,191,131,191,152, 18,157,192, +173, 66,128,233, 23,149, 1, 0,190, 24,220, 63,163,163,202,191,160,244,171,192,102, 37,211,220,194,138, 1, 0,227,219,133, 63, +172, 47, 17,192, 93,160,169,192,115, 23,161,206, 68,140, 1, 0, 46,202,247, 63, 23,140, 27,192,116,252,158,192,225, 41, 71,203, + 38,147, 1, 0, 36,220, 68, 63, 24,143,132,192, 20,105,130,192,156, 16, 53,165, 84,167, 1, 0, 60,255,185, 63,215,244,108,192, +129, 7,138,192,117, 31, 15,175,249,161, 1, 0,220, 18, 19, 63,168,186, 98,192, 66,136,148,192,154, 12,125,178,238,154, 1, 0, +131,119,172,187,182,209,162,191,170, 73,183,192,211,255,140,228,252,130, 1, 0,165,230, 40, 63,246,111, 24,191, 50,150,185,192, + 24, 14, 16,243,114,129, 1, 0,123, 45, 50,190,213, 16,230,190,160,240,186,192,217,251,137,246,109,128, 1, 0,221, 22,199,191, + 71,211,134,192, 37,161,113,192, 93,222, 1,164,157,173, 1, 0,171,131, 58,191, 57,178,140,192,214,174,115,192,120,240,191,159, + 19,173, 1, 0,228,119,112,191, 49, 46,115,192,186,222,139,192,149,235,225,172,214,160, 1, 0,122, 75,254,191, 18, 36, 50,192, + 84, 70,152,192, 8,212, 46,195, 82,152, 1, 0,190,239, 52,192,193,186, 22,192,166,240,145,192,160,194, 13,204,107,156, 1, 0, + 51, 23, 39,192, 14,245, 76,192,105,248,132,192, 27,199,129,186,208,164, 1, 0,202,137,140,192, 4,234, 33,192,152,117, 60,192, +203,159,220,200, 20,192, 1, 0, 68,176,115,192, 85, 49, 68,192, 65,173, 79,192,182,172, 79,189, 79,185, 1, 0,131,173,128,192, + 50,170, 14,192,247, 71,105,192, 33,168, 65,207,185,176, 1, 0,230, 80, 22,192, 50,155,141,191,108, 95,168,192, 0,205, 3,232, + 21,141, 1, 0, 96,113,194,191,166,184,195,191, 31,160,174,192,205,222,240,222,228,136, 1, 0,249,244,213,191, 10, 33, 52,191, +248, 94,178,192,179,219, 20,241, 44,134, 1, 0, 30, 26,167,192, 62, 11, 42, 64,199,163,159,190, 43,142, 23, 58,240,248, 1, 0, + 15,242,157,192,177, 35, 63, 64,242,230,132,191,125,148,148, 65, 31,233, 1, 0, 58,163,169,192,184,207, 14, 64, 43, 92,148,191, +120,140,246, 48,193,230, 1, 0,241, 83,184,192, 33,241,117, 63,204, 69,248,190, 33,130,245, 20, 10,246, 1, 0, 88,178,186,192, +180, 33,226, 62, 69,211,165, 62,152,128, 54, 10,201, 6, 1, 0,100,194,181,192,227, 37,178, 63, 65, 51,191, 62,202,131,227, 29, +208, 7, 1, 0,140, 68,168,192,162,100, 57, 63, 90, 41, 31, 64, 98,141,193, 15,192, 54, 1, 0,185,114,173,192,147, 11,162, 63, +136,131,237, 63,203,137,109, 27,183, 40, 1, 0, 90, 82,178,192,181, 0,168, 62,125, 64,231, 63,135,134, 77, 7,170, 39, 1, 0, +235, 52,185,192,191,185, 83,191, 39,176,252,190,201,129,214,237,245,244, 1, 0, 95,222,182,192,178, 32,161,190, 48, 92,165,191, + 90,131,213,248,212,227, 1, 0, 52,119,179,192,223,204,147,191,116,141,160,191,174,133, 97,230, 93,228, 1, 0,109, 88, 35, 63, +129,186,182, 64,207, 8,152,191, 3, 14,128,124,207,229, 1, 0,226, 54, 99, 63,172,134,174, 64, 96, 98,250,191,195, 19,238,118, + 3,213, 1, 0,150,195, 60, 61, 46,121,177, 64,174, 6,245,191, 79, 1,250,120, 56,214, 1, 0,228,160,145,191,121, 59,181, 64, +246,252,123,191, 62,231,212,123, 30,235, 1, 0, 29,166,188,191,167,120,181, 64, 4,224,165,189, 72,224,251,123,211,253, 1, 0, + 26,186, 9,191,104,142,186, 64,128, 74,126,190,169,243, 70,127, 92,250, 1, 0,179,205, 19,191, 33,145,175, 64,102,151,253, 63, +129,243,165,119,184, 43, 1, 0,163,114,134,190, 81, 94,183, 64, 73,210,157, 63, 41,250,241,124, 44, 27, 1, 0,253,217,151,191, + 90, 89,178, 64,210,246,178, 63, 86,230,147,121,183, 30, 1, 0,107,200, 50,192, 4, 21,164, 64,143,252, 18,191,232,194,191,111, + 61,243, 1, 0,219,140, 29,192,164,216,163, 64,163,160,187,191, 6,202,150,111, 27,224, 1, 0, 8, 63, 76,192,149, 92,152, 64, +201, 6,157,191,240,185,173,103, 19,229, 1, 0,102, 31,167, 64, 18,113,133, 63,122,150, 29,192,215,113,152, 22, 9,202, 1, 0, +115, 48,157, 64, 74,183, 33, 63, 21,172, 72,192, 47,107, 89, 13, 84,187, 1, 0,250, 48,151, 64,117,157,186, 63,236, 37, 74,192, + 40,103,131, 31, 24,187, 1, 0,118, 31,148, 64,144, 99, 46, 64, 95,237, 21,192, 96,101,140, 59,104,205, 1, 0, 40,177,150, 64, +101,250, 73, 64,104,252,189,191, 9,103,121, 68, 46,223, 1, 0, 59, 67,164, 64,106,116, 19, 64, 96,145,209,191,209,111,213, 50, + 3,220, 1, 0, 9, 99,168, 64,184,173, 32, 64,129, 16, 27, 63,227,114,186, 54,183, 13, 1, 0,225, 1,174, 64, 65,167, 12, 64, +199, 1, 38,190,149,118, 16, 48,190,252, 1, 0,172,156,160, 64, 23,121, 66, 64,220,253, 53,188,154,109, 28, 66,252,255, 1, 0, +230,184,106, 64,117, 83,133, 64, 76, 95,243,191,205, 79,249, 90, 80,214, 1, 0,116,166,101, 64, 67,107,111, 64, 69,233, 47,192, + 26, 78,215, 81, 33,196, 1, 0,109, 20, 68, 64,202, 9,139, 64,124,255, 29,192,122, 66, 31, 95, 3,202, 1, 0, 46,138, 12, 64, +195,168,156,192, 99,240, 23,192,176, 47, 54,149,255,203, 1, 0,110,189,201, 63, 48, 28,154,192,180,148, 60,192,240, 33,192,150, +143,191, 1, 0, 21, 55, 17, 64,125, 67,140,192,118, 8, 75,192, 65, 49, 53,160,221,186, 1, 0, 85,126,100, 64,103,211,114,192, +187,176, 43,192, 56, 78,244,172,248,197, 1, 0, 29,112,133, 64,168, 45,104,192, 95, 44,249,191,163, 90,102,176, 54,213, 1, 0, +192,193, 95, 64,221, 5,138,192, 42,219,239,191,175, 76, 53,162,183,214, 1, 0, 28, 21,134, 64,185,231,130,192,175,210,133, 62, +129, 91,184,166, 51, 6, 1, 0,128,101,115, 64,106,100,142,192,214,174,205,190, 30, 83, 11,159,122,247, 1, 0,187,250,142, 64, +178,123,113,192, 90,120,242,190, 99, 97,143,173,240,245, 1, 0,115, 83,149, 64, 25,118, 24,192, 96, 5, 41,192,195,101, 58,204, + 39,198, 1, 0,236, 97,130, 64,181,248, 34,192, 49,132, 87,192, 15, 89,179,200,144,182, 1, 0,186,103,144, 64, 91, 9,234,191, +150,226, 80,192,155, 98,138,216,146,184, 1, 0,208, 74,136,192,231,117,121,192, 32,193,133,191,251,162, 38,171,252,232, 1, 0, + 31, 84,144,192, 24, 19, 87,192, 53, 65,211,191, 64,157, 8,183,220,219, 1, 0, 7, 90,123,192,107,238,121,192,115,227,247,191, + 25,170,254,170,217,213, 1, 0,161,112, 54,192, 94, 77,156,192,207,107,196,191,198,193, 27,149, 21,223, 1, 0, 24, 41, 22,192, + 1,197,169,192,191, 68, 84,191, 56,204,100,140,176,237, 1, 0, 73,243, 75,192, 86, 16,156,192,180,150, 33,191,208,186, 67,149, +202,241, 1, 0,140,246, 19,192,148, 60,166,192, 11, 70,182, 63,170,205,162,142,144, 31, 1, 0, 17, 21, 58,192,224,209,160,192, +103,100, 88, 63,199,192, 73,146,167, 18, 1, 0,151,252, 4,192, 71, 89,174,192,215, 93, 38, 63,148,210, 55,137,117, 14, 1, 0, + 53,176,150,191,238,252,174,192, 37,172,226,191,112,230,198,136, 24,217, 1, 0,225,105,214,191,211,177,161,192,160,229, 29,192, +193,219,176,145, 39,202, 1, 0, 62,213, 88,191,193, 70,167,192,212,217, 32,192,237,237,235,141,220,200, 1, 0,236, 97,130,192, +181,248, 34, 64, 49,132, 87, 64,241,166, 77, 55,112, 73, 1, 0,186,103,144,192, 91, 9,234, 63,150,226, 80, 64,101,157,118, 39, +110, 71, 1, 0,115, 83,149,192, 25,118, 24, 64, 96, 5, 41, 64, 61,154,198, 51,217, 57, 1, 0, 29,112,133,192,168, 45,104, 64, + 95, 44,249, 63, 93,165,154, 79,202, 42, 1, 0,192,193, 95,192,221, 5,138, 64, 42,219,239, 63, 81,179,203, 93, 73, 41, 1, 0, + 85,126,100,192,103,211,114, 64,187,176, 43, 64,200,177, 12, 83, 8, 58, 1, 0,110,189,201,191, 48, 28,154, 64,180,148, 60, 64, + 16,222, 64,105,113, 64, 1, 0, 21, 55, 17,192,125, 67,140, 64,118, 8, 75, 64,191,206,203, 95, 35, 69, 1, 0, 46,138, 12,192, +195,168,156, 64, 99,240, 23, 64, 80,208,202,106, 1, 52, 1, 0,128,101,115,192,106,100,142, 64,214,174,205, 62,226,172,245, 96, +134, 8, 1, 0,187,250,142,192,178,123,113, 64, 90,120,242, 62,157,158,113, 82, 16, 10, 1, 0, 28, 21,134,192,185,231,130, 64, +175,210,133,190,127,164, 72, 89,205,249, 1, 0,225,105,214, 63,211,177,161, 64,160,229, 29, 64, 63, 36, 80,110,217, 53, 1, 0, + 62,213, 88, 63,193, 70,167, 64,212,217, 32, 64, 19, 18, 21,114, 36, 55, 1, 0, 53,176,150, 63,238,252,174, 64, 37,172,226, 63, +144, 25, 58,119,232, 38, 1, 0, 24, 41, 22, 64, 1,197,169, 64,191, 68, 84, 63,200, 51,156,115, 80, 18, 1, 0, 73,243, 75, 64, + 86, 16,156, 64,180,150, 33, 63, 48, 69,189,106, 54, 14, 1, 0,161,112, 54, 64, 94, 77,156, 64,208,107,196, 63, 58, 62,229,106, +235, 32, 1, 0, 31, 84,144, 64, 24, 19, 87, 64, 53, 65,211, 63,192, 98,248, 72, 36, 36, 1, 0, 7, 90,123, 64,107,238,121, 64, +115,227,247, 63,231, 85, 2, 85, 39, 42, 1, 0,208, 74,136, 64,231,117,121, 64, 32,193,133, 63, 5, 93,218, 84, 4, 23, 1, 0, + 17, 21, 58, 64,224,209,160, 64,103,100, 88,191, 57, 63,183,109, 89,237, 1, 0,151,252, 4, 64, 71, 89,174, 64,215, 93, 38,191, +108, 45,201,118,139,241, 1, 0,140,246, 19, 64,148, 60,166, 64, 11, 70,182,191, 86, 50, 94,113,112,224, 1, 0, 95,222,182, 64, +178, 32,161, 62, 48, 92,165, 63,166,124, 43, 7, 44, 28, 1, 0, 52,119,179, 64,223,204,147, 63,116,141,160, 63, 82,122,159, 25, +163, 27, 1, 0,235, 52,185, 64,191,185, 83, 63, 39,176,252, 62, 55,126, 42, 18, 11, 11, 1, 0, 88,178,186, 64,180, 33,226,190, + 69,211,165,190,104,127,202,245, 55,249, 1, 0,100,194,181, 64,227, 37,178,191, 65, 51,191,190, 54,124, 29,226, 48,248, 1, 0, +241, 83,184, 64, 33,241,117,191,204, 69,248, 62,223,125, 11,235,246, 9, 1, 0, 15,242,157, 64,177, 35, 63,192,242,230,132, 63, +131,107,108,190,225, 22, 1, 0, 58,163,169, 64,184,207, 14,192, 43, 92,148, 63,136,115, 10,207, 63, 25, 1, 0, 30, 26,167, 64, + 62, 11, 42,192,199,163,159, 62,213,113,233,197, 16, 7, 1, 0,185,114,173, 64,147, 11,162,191,136,131,237,191, 53,118,147,228, + 73,215, 1, 0, 90, 82,178, 64,181, 0,168,190,125, 64,231,191,121,121,179,248, 86,216, 1, 0,140, 68,168, 64,162,100, 57,191, + 90, 41, 31,192,158,114, 63,240, 64,201, 1, 0,219,140, 29, 64,164,216,163,192,163,160,187, 63,250, 53,106,144,229, 31, 1, 0, + 8, 63, 76, 64,149, 92,152,192,201, 6,157, 63, 16, 70, 83,152,237, 26, 1, 0,107,200, 50, 64, 4, 21,164,192,143,252, 18, 63, + 24, 61, 65,144,195, 12, 1, 0, 29,166,188, 63,167,120,181,192, 4,224,165, 61,184, 31, 5,132, 45, 2, 1, 0, 26,186, 9, 63, +104,142,186,192,128, 74,126, 62, 87, 12,186,128,164, 5, 1, 0,228,160,145, 63,121, 59,181,192,246,252,123, 63,194, 24, 44,132, +226, 20, 1, 0,226, 54, 99,191,172,134,174,192, 96, 98,250, 63, 61,236, 18,137,253, 42, 1, 0,150,195, 60,189, 46,121,177,192, +174, 6,245, 63,177,254, 6,135,200, 41, 1, 0,109, 88, 35,191,129,186,182,192,207, 8,152, 63,253,241,128,131, 49, 26, 1, 0, +163,114,134, 62, 81, 94,183,192, 73,210,157,191,215, 5, 15,131,212,228, 1, 0,253,217,151, 63, 90, 89,178,192,210,246,178,191, +170, 25,109,134, 73,225, 1, 0,179,205, 19, 63, 33,145,175,192,102,151,253,191,127, 12, 91,136, 72,212, 1, 0,116,166,101,192, + 67,107,111,192, 69,233, 47, 64,230,177, 41,174,223, 59, 1, 0,109, 20, 68,192,202, 9,139,192,124,255, 29, 64,134,189,225,160, +253, 53, 1, 0,230,184,106,192,117, 83,133,192, 76, 95,243, 63, 51,176, 7,165,176, 41, 1, 0, 40,177,150,192,101,250, 73,192, +104,252,189, 63,247,152,135,187,210, 32, 1, 0, 59, 67,164,192,106,116, 19,192, 96,145,209, 63, 47,144, 43,205,253, 35, 1, 0, +118, 31,148,192,144, 99, 46,192, 95,237, 21, 64,160,154,116,196,152, 50, 1, 0,115, 48,157,192, 74,183, 33,191, 21,172, 72, 64, +209,148,167,242,172, 68, 1, 0,250, 48,151,192,117,157,186,191,236, 37, 74, 64,216,152,125,224,232, 68, 1, 0,102, 31,167,192, + 18,113,133,191,122,150, 29, 64, 41,142,104,233,247, 53, 1, 0,225, 1,174,192, 65,167, 12,192,199, 1, 38, 62,107,137,240,207, + 66, 3, 1, 0,172,156,160,192, 23,121, 66,192,220,253, 53, 60,102,146,228,189, 4, 0, 1, 0, 9, 99,168,192,184,173, 32,192, +129, 16, 27,191, 29,141, 70,201, 73,242, 1, 0,220, 18, 19,191,168,186, 98, 64, 66,136,148, 64,102,243,131, 77, 18,101, 1, 0, + 36,220, 68,191, 24,143,132, 64, 20,105,130, 64,100,239,203, 90,172, 88, 1, 0, 60,255,185,191,215,244,108, 64,129, 7,138, 64, +139,224,241, 80, 7, 94, 1, 0, 46,202,247,191, 23,140, 27, 64,116,252,158, 64, 31,214,185, 52,218,108, 1, 0,190, 24,220,191, +163,163,202, 63,160,244,171, 64,154,218, 45, 35, 62,117, 1, 0,227,219,133,191,172, 47, 17, 64, 93,160,169, 64,141,232, 95, 49, +188,115, 1, 0,123, 45, 50, 62,213, 16,230, 62,160,240,186, 64, 39, 4,119, 9,147,127, 1, 0,131,119,172, 59,182,209,162, 63, +170, 73,183, 64, 45, 0,116, 27, 4,125, 1, 0,165,230, 40,191,246,111, 24, 63, 50,150,185, 64,232,241,240, 12,142,126, 1, 0, +100,225, 66,192,146,191,131, 63,152, 18,157, 64, 83,189,128, 22,233,106, 1, 0, 98,140, 80,192,169,205,238, 63, 83, 69,144, 64, +189,184,115, 40, 84, 98, 1, 0,177, 39,109,192,154,213,147, 63,239,143,140, 64,185,174, 1, 25,169, 95, 1, 0,131,173,128, 64, + 50,170, 14, 64,247, 71,105, 64,223, 87,191, 48, 71, 79, 1, 0,202,137,140, 64, 4,234, 33, 64,152,117, 60, 64, 53, 96, 36, 55, +236, 63, 1, 0, 68,176,115, 64, 85, 49, 68, 64, 65,173, 79, 64, 74, 83,177, 66,177, 70, 1, 0, 51, 23, 39, 64, 14,245, 76, 64, +105,248,132, 64,229, 56,127, 69, 48, 91, 1, 0,122, 75,254, 63, 17, 36, 50, 64, 83, 70,152, 64,248, 43,210, 60,174,103, 1, 0, +190,239, 52, 64,193,186, 22, 64,166,240,145, 64, 96, 61,243, 51,149, 99, 1, 0,249,244,213, 63, 10, 33, 52, 63,248, 94,178, 64, + 77, 36,236, 14,212,121, 1, 0,230, 80, 22, 64, 50,155,141, 63,108, 95,168, 64, 0, 51,253, 23,235,114, 1, 0, 96,113,194, 63, +166,184,195, 63, 31,160,174, 64, 51, 33, 16, 33, 28,119, 1, 0,228,119,112, 63, 49, 46,115, 64,186,222,139, 64,107, 20, 31, 83, + 42, 95, 1, 0,221, 22,199, 63, 71,211,134, 64, 37,161,113, 64,163, 33,255, 91, 99, 82, 1, 0,170,131, 58, 63, 58,178,140, 64, +213,174,115, 64,136, 15, 65, 96,237, 82, 1, 0,116,134,132, 64, 40,130, 40,192,237,207, 77, 64,116, 90,110,198,230, 69, 1, 0, +232,187,140, 64, 6, 96, 62,192,107,247, 30, 64,247, 95,174,190,233, 53, 1, 0, 37, 61,152, 64,230, 9, 14,192,137,179, 39, 64, +172,103, 78,207, 31, 57, 1, 0,189,121,149, 64,142,192,111,191, 76, 95, 90, 64,168,101,148,235, 10, 75, 1, 0,254,112,134, 64, +126,146,207,190,159, 19,130, 64,238, 91,148,246,143, 88, 1, 0, 12,129,129, 64,231,129,173,191,159,125,128, 64,188, 88,231,226, +136, 87, 1, 0,220,104, 22, 64,204,221, 40,191,115,137,170, 64,223, 50,169,241,146,116, 1, 0,245,120, 56, 64,118,213,154,191, + 81,227,158, 64,178, 62,207,229,120,108, 1, 0, 52, 56, 66, 64,206, 40,139,190, 21,116,160, 64,247, 65,238,249,133,109, 1, 0, + 61,161,150, 64,107,221, 89, 63,118,113, 89, 64,214,102,175, 18,225, 73, 1, 0, 74,120,165, 64, 95, 78,167, 62,139, 51, 48, 64, +202,112,111, 7, 13, 60, 1, 0, 12, 65,162, 64, 11, 84,149, 63,172,202, 44, 64,198,110,224, 25,171, 58, 1, 0, 67,138,194,190, +177, 97,138,192, 75,158,124, 64,147,247,125,161,230, 85, 1, 0,214, 82, 66,191,128,115,152,192,164, 25, 85, 64,255,238,225,151, +121, 72, 1, 0,119,155,171, 61,138, 40,155,192,113, 96, 83, 64,133, 1, 61,150, 18, 72, 1, 0,144,237,178, 63, 25,136,136,192, +121, 1,113, 64,139, 30, 59,163,185, 82, 1, 0, 68,147,238, 63,166,230,100,192,234, 9,136, 64, 50, 40,133,177,199, 92, 1, 0, + 30,149,109, 63, 40, 18,111,192,171,100,141, 64,208, 20, 59,174, 62, 96, 1, 0, 45,210,162, 63,233,211,224,191,184, 67,174, 64, +185, 27, 29,218, 19,119, 1, 0,158,106, 94, 63,167,106, 30,192,254,240,167, 64, 26, 19, 65,202,149,114, 1, 0, 22,114,229, 63, +193, 96, 20,192,253,167,162, 64,236, 38,159,205, 9,111, 1, 0,208, 76, 67, 64, 62,120,111,192, 14, 89, 85, 64,174, 66, 62,174, +120, 72, 1, 0,139,220, 37, 64,245,135,141,192,114,173, 54, 64,207, 56,160,159, 47, 62, 1, 0,204,119, 84, 64, 93, 73,130,192, +212,107, 38, 64,210, 72, 34,167,105, 56, 1, 0,178,218, 82,192,178,247, 1,191,211,129,154, 64,225,183,250,244, 42,105, 1, 0, + 0,245,124,192, 27, 32,187,190, 57, 6,138, 64,108,169, 93,248,245, 93, 1, 0, 42, 75,112,192,228, 42,152,191, 25, 44,139, 64, + 2,174, 93,230,225, 94, 1, 0,239,222, 43,192,212,226, 11,192,227, 71,151, 64,214,197,113,208,159,103, 1, 0,137,207,229,191, + 30, 63, 22,192,207,235,161, 64, 68,216, 22,205,129,110, 1, 0,239, 11, 14,192,175,114,191,191,254,208,166, 64,124,207,187,222, +172,113, 1, 0,163, 78,149,189, 65, 25,137,191,234,102,184, 64,219,254,212,232,224,125, 1, 0,208,203,104,191,146, 6,113,191, +108, 5,183, 64,119,236,106,235,207,124, 1, 0, 26, 68,251,190,111, 38,228,191,114, 48,178, 64,114,245, 94,217,145,121, 1, 0, + 76,169,222,191,205,107,104,192,150,142,136, 64,234,217,154,176,226, 92, 1, 0,145,143, 39,192,190, 49, 94,192,165, 27,124, 64, + 16,199, 8,180,215, 85, 1, 0,130,168, 6,192,190,132,130,192, 12, 96,105, 64, 32,210,152,166, 70, 79, 1, 0, 68, 65, 84, 65, +104, 1, 0, 0,184,189, 53, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,191, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 1, 0, 0, 88,111,184, 3, - 55, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, - 8, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 35, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 35, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, - 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 35, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0, 8,113,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,114,184, 3, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,115,184, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,116,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,114,184, 3, 54, 0, 0, 0, - 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, - 10, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, - 21, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 2, 68, 65, 84, 65, 96, 1, 0, 0, 96,115,184, 3, 65, 0, 0, 0, 8, 0, 0, 0, 12,192,137, 62,162,226,125, 63, -144,108,246, 61,162,226,125, 63,144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, - 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63,144,108,246, 61,162,226,125, 63, -144,108,246, 61,162,226,125, 63, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0,229,213, 62, -162,226,125, 63, 18,192,137, 62,162,226,125, 63, 12,192,137, 62,162,226,125, 63,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, - 61, 0, 1, 0, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 34, 5, 17, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, -152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62, -162,226,125, 63,252,228,213, 62,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, - 30, 5, 17, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63,152, 23, 55, 63,162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, - 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,252,228,213, 62,162,226,125, 63,252,228,213, 62, -162,226,125, 63, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0, -240,116,184, 3, 59, 0, 0, 0, 32, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,160,117,184, 3, 52, 0, 0, 0, 1, 0, 0, 0, -216,162,186, 3,112,104,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 0, 0, 0, 0,112,104,101, -114,101, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232,118,184, 3, 72, 18,185, 3,120,118,185, 3, 0, 0, 0, 0,168,120,184, 3,144,182,184, 3, - 0, 0, 0, 0,168, 82,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,119,184, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,181,184, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 16,185, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 2, 0, 0,128, 7, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,117,224,186, 64, 91, 13,187, 64,160,240,186, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -232,118,184, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 68, 65, 84, 65, 84, 1, 0, 0, 32,119,184, 3, 58, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,120,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 60, 0, 0, -168,120,184, 3, 58, 0, 0, 0,130, 2, 0, 0, 28,136,141,191, 12,243,244, 62,198, 86,183,192,212,231,117, 10,191,130,255, 0, - 3, 0, 0, 0,240,102,131,192, 30,183,119, 64,109,169,199,191, 58,166,158, 84,230,221,255, 0, 3, 0, 0, 0,119,108,239, 63, -213, 85,156, 64,188, 58, 40,192,228, 40,207,106,137,198,255, 0, 3, 0, 0, 0, 95,135,146, 64, 63, 54, 14,191,241,194,102,192, - 27,100,219,243, 45,177,255, 0, 3, 0, 0, 0,239, 84,141, 62, 16,220,157,192, 14, 2, 73,192, 8, 6, 39,148, 86,187,255, 0, - 3, 0, 0, 0,132,239,162,192,206,165, 12,192,150, 45,240,191,175,144,245,207,251,214,255, 0, 3, 0, 0, 0,239, 84,141,190, - 16,220,157, 64, 14, 2, 73, 64,248,249,217,107,170, 68,255, 0, 3, 0, 0, 0,132,239,162, 64,206,165, 12, 64,150, 45,240, 63, - 81,111, 11, 48, 5, 41,255, 0, 3, 0, 0, 0,240,102,131, 64, 30,183,119,192,109,169,199, 63,198, 89, 98,171, 26, 34,255, 0, - 3, 0, 0, 0,119,108,239,191,213, 85,156,192,188, 58, 40, 64, 28,215, 49,149,119, 57,255, 0, 3, 0, 0, 0, 95,135,146,192, - 63, 54, 14, 63,241,194,102, 64,229,155, 37, 12,211, 78,255, 0, 3, 0, 0, 0, 28,136,141, 63, 12,243,244,190,198, 86,183, 64, - 44, 24,139,245, 65,125,255, 0, 3, 0, 0, 0,114, 17, 68,192,226,153, 35, 64,154, 26,137,192, 6,189,226, 55, 85,162,255, 0, - 3, 0, 0, 0,155, 40,230, 62,239,199, 73, 64,176, 52,157,192,211, 9,237, 68,153,148,255, 0, 3, 0, 0, 0,124, 55,168,191, -224,177,164, 64, 58,144, 29,192, 69,227,132,112, 46,202,255, 0, 3, 0, 0, 0, 94, 35,105,192,230, 88,129,191,195, 14,143,192, - 93,176,233,233, 68,158,255, 0, 3, 0, 0, 0, 37, 2,173,192,137,187,123, 63, 56, 68, 1,192,206,137,127, 21,216,211,255, 0, - 3, 0, 0, 0,234,168, 2, 64,231,158, 57,189, 65,149,175,192,162, 44, 3,255, 11,136,255, 0, 3, 0, 0, 0, 19,159,114, 64, -254,226, 34, 64,196,133,106,192,225, 82,164, 55,228,175,255, 0, 3, 0, 0, 0,105,176,249,190, 21,148, 39,192,217,214,166,192, - 87,245,194,198, 5,142,255, 0, 3, 0, 0, 0,227,163, 54, 64, 86,121, 78,192, 22,202,125,192, 99, 62,120,185, 79,169,255, 0, - 3, 0, 0, 0,241, 40, 53,192,200, 31,134,192,229,188, 60,192, 30,194, 94,164,136,191,255, 0, 3, 0, 0, 0, 96,230,181,192, - 33, 24,119,191,174, 26,130, 63,186,131,231,234, 56, 22,255, 0, 3, 0, 0, 0,103, 93,163,192,136,128, 38, 64, 83,235,153, 63, -100,144,224, 56, 74, 26,255, 0, 3, 0, 0, 0,238,219, 36,192,132,151,165, 64,165,226,109, 63,176,199, 33,113, 80, 20,255, 0, - 3, 0, 0, 0, 24,237,111, 63,118,174,184, 64,212, 34,154, 62,125, 20, 44,126,148, 6,255, 0, 3, 0, 0, 0,163,244,130, 64, -157, 58,133, 64,125, 95,226,190,119, 89, 5, 91, 86,246,255, 0, 3, 0, 0, 0, 96,230,181, 64, 33, 24,119, 63,174, 26,130,191, - 70,124, 25, 21,200,233,255, 0, 3, 0, 0, 0,103, 93,163, 64,136,128, 38,192, 83,235,153,191,156,111, 32,199,182,229,255, 0, - 3, 0, 0, 0,238,219, 36, 64,132,151,165,192,165,226,109,191, 80, 56,223,142,176,235,255, 0, 3, 0, 0, 0, 24,237,111,191, -118,174,184,192,212, 34,154,190,131,235,212,129,108,249,255, 0, 3, 0, 0, 0,163,244,130,192,157, 58,133,192,125, 95,226, 62, -137,166,251,164,170, 9,255, 0, 3, 0, 0, 0,227,163, 54,192, 86,121, 78, 64, 22,202,125, 64,157,193,136, 70,177, 86,255, 0, - 3, 0, 0, 0,241, 40, 53, 64,200, 31,134, 64,229,188, 60, 64,226, 61,162, 91,120, 64,255, 0, 3, 0, 0, 0, 37, 2,173, 64, -137,187,123,191, 56, 68, 1, 64, 50,118,129,234, 40, 44,255, 0, 3, 0, 0, 0,124, 55,168, 63,224,177,164,192, 58,144, 29, 64, -187, 28,124,143,210, 53,255, 0, 3, 0, 0, 0, 19,159,114,192,254,226, 34,192,196,133,106, 64, 31,173, 92,200, 28, 80,255, 0, - 3, 0, 0, 0,234,168, 2,192,231,158, 57, 61, 65,149,175, 64, 94,211,253, 0,245,119,255, 0, 3, 0, 0, 0,105,176,249, 62, - 21,148, 39, 64,217,214,166, 64,169, 10, 62, 57,251,113,255, 0, 3, 0, 0, 0, 94, 35,105, 64,230, 88,129, 63,195, 14,143, 64, -163, 79, 23, 22,188, 97,255, 0, 3, 0, 0, 0,114, 17, 68, 64,226,153, 35,192,154, 26,137, 64,250, 66, 30,200,171, 93,255, 0, - 3, 0, 0, 0,155, 40,230,190,239,199, 73,192,176, 52,157, 64, 45,246, 19,187,103,107,255, 0, 3, 0, 0, 0, 37,178, 10,192, -138,231,201, 63,149,143,166,192,129,209,140, 33,145,141,255, 0, 3, 0, 0, 0, 3,132,110,192,243,203, 85, 64,151,107, 66,192, - 16,174,158, 73,209,190,255, 0, 3, 0, 0, 0,116,161,174,190, 81,152,241, 63,110, 2,177,192,217,247, 15, 40,182,134,255, 0, - 3, 0, 0, 0,138, 91,154, 63,218,179,133, 64,209,222,122,192, 0, 27, 30, 92, 86,171,255, 0, 3, 0, 0, 0, 7, 82, 52,192, - 82,252,149, 64, 64,202, 5,192, 39,193,227,101,181,210,255, 0, 3, 0, 0, 0,179, 12,148, 62,251,221,166, 64,188, 87, 41,192, -192, 7,224,113, 21,198,255, 0, 3, 0, 0, 0,216,246, 29,192, 17,156,141,190,209,167,169,192, 47,203,160,250,137,139,255, 0, - 3, 0, 0, 0, 99, 72,145,192, 79,114,213,191,183, 35, 83,192, 26,156, 3,219, 12,185,255, 0, 3, 0, 0, 0,115, 58,158,192, -129,120, 33, 64,198, 41,238,191,126,148,116, 56,137,215,255, 0, 3, 0, 0, 0,118,158,174,192,103,148, 33,191,140,156, 1,192, -218,136,198,240,203,211,255, 0, 3, 0, 0, 0, 55, 14,249, 62, 95,133,102, 62,210,143,186,192, 56, 9, 40, 5,113,128,255, 0, - 3, 0, 0, 0,220, 61, 92, 64, 56,230,159,190, 6, 61,151,192, 94, 76,242,248,135,153,255, 0, 3, 0, 0, 0, 7, 86, 60, 64, - 60, 48,119, 64, 93, 88, 81,192,119, 63,124, 85,246,184,255, 0, 3, 0, 0, 0,252, 55,139, 64, 62, 95,132, 63,225,216,113,192, -118, 95, 54, 21,107,173,255, 0, 3, 0, 0, 0, 18, 6, 84,191,251, 96,142,191, 76, 4,182,192,158,237, 20,233,109,131,255, 0, - 3, 0, 0, 0,109, 74,225,189, 51, 54,123,192, 34,246,138,192,241,253, 39,169, 1,162,255, 0, 3, 0, 0, 0,153, 66,119, 64, -127,154,251,191,161,220,123,192, 59, 85, 59,214, 34,170,255, 0, 3, 0, 0, 0,201, 59,208, 63,241,182,135,192,212,101,108,192, -103, 34,133,162,160,175,255, 0, 3, 0, 0, 0,161,246,169,191,235,196,151,192,170,149, 74,192, 95,228,253,151,184,186,255, 0, - 3, 0, 0, 0, 33,198,131,192,218,137, 84,192, 37,134, 32,192,247,164, 77,184,167,201,255, 0, 3, 0, 0, 0,176, 61,179,192, -138,110,210,191, 24,220,228,190,210,133,130,219,238,244,255, 0, 3, 0, 0, 0, 73,182,170,192,136, 16, 90,190, 90,194, 25, 64, -224,139, 8,252,174, 53,255, 0, 3, 0, 0, 0, 75, 55,153,192, 4, 78, 87, 64, 12, 54, 62,190,200,151, 29, 74,179,250,255, 0, - 3, 0, 0, 0,235, 19,161,192,207, 12,210, 63,210,242, 31, 64, 50,146,244, 34,182, 55,255, 0, 3, 0, 0, 0, 60, 75, 94,192, -189,115,150, 64,186,211,167,190, 98,179, 49,102,183,247,255, 0, 3, 0, 0, 0,186,191,189,191, 63, 32,168, 64,213,100, 7, 64, -161,224,191,114, 61, 47,255, 0, 3, 0, 0, 0,242,205,186, 63,141, 65,177, 64,127,219,154,191, 82, 32,177,120, 61,228,255, 0, - 3, 0, 0, 0, 99,245,175, 62, 97, 12,178, 64,255,253,228, 63,247, 6, 65,121, 98, 40,255, 0, 3, 0, 0, 0,226, 92, 70, 64, - 8,131,150, 64,182, 77,204,191,193, 66, 37,103, 32,220,255, 0, 3, 0, 0, 0,200,194,152, 64,180,155, 83, 64,154,217, 62, 63, -207,104,101, 71, 87, 17,255, 0, 3, 0, 0, 0, 73,182,170, 64,136, 16, 90, 62, 90,194, 25,192, 32,116,248, 3, 82,202,255, 0, - 3, 0, 0, 0,176, 61,179, 64,138,110,210, 63, 24,220,228, 62, 46,122,126, 36, 18, 11,255, 0, 3, 0, 0, 0,235, 19,161, 64, -207, 12,210,191,210,242, 31,192,206,109, 12,221, 74,200,255, 0, 3, 0, 0, 0, 75, 55,153, 64, 4, 78, 87,192, 12, 54, 62, 62, - 56,104,227,181, 77, 5,255, 0, 3, 0, 0, 0,186,191,189, 63, 63, 32,168,192,213,100, 7,192, 95, 31, 65,141,195,208,255, 0, - 3, 0, 0, 0, 60, 75, 94, 64,189,115,150,192,186,211,167, 62,158, 76,207,153, 73, 8,255, 0, 3, 0, 0, 0, 99,245,175,190, - 97, 12,178,192,255,253,228,191, 9,249,191,134,158,215,255, 0, 3, 0, 0, 0,242,205,186,191,141, 65,177,192,127,219,154, 63, -174,223, 79,135,195, 27,255, 0, 3, 0, 0, 0,200,194,152,192,180,155, 83,192,154,217, 62,191, 49,151,155,184,169,238,255, 0, - 3, 0, 0, 0,226, 92, 70,192, 8,131,150,192,182, 77,204, 63, 63,189,219,152,224, 35,255, 0, 3, 0, 0, 0,201, 59,208,191, -241,182,135, 64,212,101,108, 64,153,221,123, 93, 96, 80,255, 0, 3, 0, 0, 0,153, 66,119,192,127,154,251, 63,161,220,123, 64, -197,170,197, 41,222, 85,255, 0, 3, 0, 0, 0,161,246,169, 63,235,196,151, 64,170,149, 74, 64,161, 27, 3,104, 72, 69,255, 0, - 3, 0, 0, 0, 33,198,131, 64,218,137, 84, 64, 37,134, 32, 64, 9, 91,179, 71, 89, 54,255, 0, 3, 0, 0, 0,118,158,174, 64, -103,148, 33, 63,140,156, 1, 64, 38,119, 58, 15, 53, 44,255, 0, 3, 0, 0, 0,115, 58,158, 64,129,120, 33,192,198, 41,238, 63, -130,107,140,199,119, 40,255, 0, 3, 0, 0, 0, 7, 82, 52, 64, 82,252,149,192, 64,202, 5, 64,217, 62, 29,154, 75, 45,255, 0, - 3, 0, 0, 0,179, 12,148,190,251,221,166,192,188, 87, 41, 64, 64,248, 32,142,235, 57,255, 0, 3, 0, 0, 0, 7, 86, 60,192, - 60, 48,119,192, 93, 88, 81, 64,137,192,132,170, 10, 71,255, 0, 3, 0, 0, 0,252, 55,139,192, 62, 95,132,191,225,216,113, 64, -138,160,202,234,149, 82,255, 0, 3, 0, 0, 0,220, 61, 92,192, 56,230,159, 62, 6, 61,151, 64,162,179, 14, 7,121,102,255, 0, - 3, 0, 0, 0, 55, 14,249,190, 95,133,102,190,210,143,186, 64,200,246,216,250,143,127,255, 0, 3, 0, 0, 0,109, 74,225, 61, - 51, 54,123, 64, 34,246,138, 64, 15, 2,217, 86,255, 93,255, 0, 3, 0, 0, 0, 18, 6, 84, 63,251, 96,142, 63, 76, 4,182, 64, - 98, 18,236, 22,147,124,255, 0, 3, 0, 0, 0, 99, 72,145, 64, 79,114,213, 63,183, 35, 83, 64,230, 99,253, 36,244, 70,255, 0, - 3, 0, 0, 0,216,246, 29, 64, 17,156,141, 62,209,167,169, 64,209, 52, 96, 5,119,116,255, 0, 3, 0, 0, 0, 3,132,110, 64, -243,203, 85,192,151,107, 66, 64,240, 81, 98,182, 47, 65,255, 0, 3, 0, 0, 0, 37,178, 10, 64,138,231,201,191,149,143,166, 64, -127, 46,116,222,111,114,255, 0, 3, 0, 0, 0,138, 91,154,191,218,179,133,192,209,222,122, 64, 0,229,226,163,170, 84,255, 0, - 3, 0, 0, 0,116,161,174, 62, 81,152,241,191,110, 2,177, 64, 39, 8,241,215, 74,121,255, 0, 3, 0, 0, 0, 36, 76, 19,192, - 25,151,129, 64,212,254, 98,192,231,206, 97, 88,131,177,255, 0, 3, 0, 0, 0, 93,232,175,191,177, 23, 64, 64, 69,186,154,192, -227,225,235, 66, 34,151,255, 0, 3, 0, 0, 0,208,190,232,190, 93,160,139, 64,191, 33,120,192,183,244,205, 94,192,170,255, 0, - 3, 0, 0, 0,210,126,142,192, 43, 49,238, 63,112, 30, 84,192,187,158, 95, 39,183,182,255, 0, 3, 0, 0, 0,138,165, 97,192, - 92, 9, 80, 63, 20, 74,147,192,183,177,233, 17, 86,156,255, 0, 3, 0, 0, 0, 98, 61,152,192, 87, 63,106,188, 6, 97, 90,192, -127,152,251, 0,183,180,255, 0, 3, 0, 0, 0,200,173, 14, 64,155,183, 63, 64,192, 75,144,192,206, 48, 45, 64,152,156,255, 0, - 3, 0, 0, 0, 95,162,167, 63,144, 29,209, 63, 25,245,174,192,250, 29, 75, 36,250,136,255, 0, 3, 0, 0, 0,211, 62, 68, 64, - 51, 56,168, 63, 13,245,153,192,241, 65,192, 29,106,150,255, 0, 3, 0, 0, 0, 33,182, 36, 64, 34, 38,220,191,150, 5,159,192, -233, 54,211,217,223,146,255, 0, 3, 0, 0, 0, 16, 34, 81, 63,129, 64,179,191,162, 5,180,192,242, 18, 93,224,111,133,255, 0, - 3, 0, 0, 0,212, 56,159, 63,172,166, 68,192,212,108,154,192,176, 27, 32,190,208,149,255, 0, 3, 0, 0, 0,204, 76,223,191, -170, 32,101,192, 65, 83,137,192,199,216,195,178,198,161,255, 0, 3, 0, 0, 0,249,249, 10,192, 62, 52,244,191, 25,236,162,192, - 9,208, 0,213,102,145,255, 0, 3, 0, 0, 0, 42,207, 89,192,251, 6, 47,192, 27,165,121,192,209,182, 18,196,198,169,255, 0, - 3, 0, 0, 0,137,215,176,192, 25, 62,241, 63,179,254,219,190,179,134,232, 39, 78,247,255, 0, 3, 0, 0, 0, 28,150,186,192, -150, 16, 28, 60,191, 9, 7,191,118,128,131, 1, 77,245,255, 0, 3, 0, 0, 0, 34,132,181,192, 99, 60, 92, 63,217, 81,149, 63, -181,131,238, 18,252, 23,255, 0, 3, 0, 0, 0,175,242, 74,190,164,173,183, 64,227,105,145,191,117,250,160,125, 31,232,255, 0, - 3, 0, 0, 0,219,227, 2,192, 96,164,173, 64,200, 71, 78,191,164,212, 52,119,226,238,255, 0, 3, 0, 0, 0,181,140, 92,191, - 75, 38,184, 64,176,148, 37, 63,224,236,237,125,159, 12,255, 0, 3, 0, 0, 0, 75,104,159, 64,212, 56,236, 63,240,126, 29,192, -211,108,166, 41, 9,203,255, 0, 3, 0, 0, 0,215,159,132, 64, 84,184, 97, 64, 30, 44, 10,192,176, 91, 19, 76, 56,209,255, 0, - 3, 0, 0, 0, 95,122,164, 64,199,143, 44, 64, 53, 78, 68,191, 17,112, 17, 59,185,237,255, 0, 3, 0, 0, 0,255,176, 54, 64, -243, 84,141,192,237,176, 36,192,192, 63, 9,160, 63,200,255, 0, 3, 0, 0, 0, 93,229,133, 64,217, 21, 68,192,157,226, 45,192, -249, 90,187,187, 78,197,255, 0, 3, 0, 0, 0,203, 56,129, 64, 21,211,130,192,187,115,143,191,252, 87,194,166,252,229,255, 0, - 3, 0, 0, 0,189,239,104,192, 82,142,140,192,178,178,168,191,134,177,245,158,155,227,255, 0, 3, 0, 0, 0, 50,141,253,191, - 52,155,167,192,170,181,218,191,125,211,166,141,155,219,255, 0, 3, 0, 0, 0,164, 58, 41,192,172, 34,167,192,206,232,151, 61, -232,197,243,141, 26, 0,255, 0, 3, 0, 0, 0, 93,229,133,192,217, 21, 68, 64,157,226, 45, 64, 7,165, 69, 68,178, 58,255, 0, - 3, 0, 0, 0,203, 56,129,192, 21,211,130, 64,187,115,143, 63, 4,168, 62, 89, 4, 26,255, 0, 3, 0, 0, 0,255,176, 54,192, -243, 84,141, 64,237,176, 36, 64, 64,192,247, 95,193, 55,255, 0, 3, 0, 0, 0, 50,141,253, 63, 52,155,167, 64,170,181,218, 63, -131, 44, 90,114,101, 36,255, 0, 3, 0, 0, 0,164, 58, 41, 64,172, 34,167, 64,206,232,151,189, 24, 58, 13,114,230,255,255, 0, - 3, 0, 0, 0,189,239,104, 64, 82,142,140, 64,178,178,168, 63,122, 78, 11, 97,101, 28,255, 0, 3, 0, 0, 0, 28,150,186, 64, -150, 16, 28,188,191, 9, 7, 63,138,127,125,254,179, 10,255, 0, 3, 0, 0, 0, 34,132,181, 64, 99, 60, 92,191,217, 81,149,191, - 75,124, 18,237, 4,232,255, 0, 3, 0, 0, 0,137,215,176, 64, 25, 62,241,191,179,254,219, 62, 77,121, 24,216,178, 8,255, 0, - 3, 0, 0, 0,219,227, 2, 64, 96,164,173,192,200, 71, 78, 63, 92, 43,204,136, 30, 17,255, 0, 3, 0, 0, 0,181,140, 92, 63, - 75, 38,184,192,176,148, 37,191, 32, 19, 19,130, 97,243,255, 0, 3, 0, 0, 0,175,242, 74, 62,164,173,183,192,227,105,145, 63, -139, 5, 96,130,225, 23,255, 0, 3, 0, 0, 0,215,159,132,192, 84,184, 97,192, 30, 44, 10, 64, 80,164,237,179,200, 46,255, 0, - 3, 0, 0, 0, 95,122,164,192,199,143, 44,192, 53, 78, 68, 63,239,143,239,196, 71, 18,255, 0, 3, 0, 0, 0, 75,104,159,192, -212, 56,236,191,240,126, 29, 64, 45,147, 90,214,247, 52,255, 0, 3, 0, 0, 0,212, 56,159,191,172,166, 68, 64,212,108,154, 64, - 80,228,224, 65, 48,106,255, 0, 3, 0, 0, 0, 33,182, 36,192, 34, 38,220, 63,150, 5,159, 64, 23,201, 45, 38, 33,109,255, 0, - 3, 0, 0, 0, 16, 34, 81,191,129, 64,179, 63,162, 5,180, 64, 14,237,163, 31,145,122,255, 0, 3, 0, 0, 0, 42,207, 89, 64, -251, 6, 47, 64, 27,165,121, 64, 47, 73,238, 59, 58, 86,255, 0, 3, 0, 0, 0,208, 76,223, 63,170, 32,101, 64, 65, 83,137, 64, - 57, 39, 61, 77, 58, 94,255, 0, 3, 0, 0, 0,249,249, 10, 64, 62, 52,244, 63, 25,236,162, 64,247, 47, 0, 43,154,110,255, 0, - 3, 0, 0, 0,210,126,142, 64, 43, 49,238,191,112, 30, 84, 64, 69, 97,161,216, 73, 73,255, 0, 3, 0, 0, 0, 98, 61,152, 64, - 87, 63,106, 60, 6, 97, 90, 64,129,103, 5,255, 73, 75,255, 0, 3, 0, 0, 0,138,165, 97, 64, 92, 9, 80,191, 20, 74,147, 64, - 73, 78, 23,238,170, 99,255, 0, 3, 0, 0, 0,208,190,232, 62, 93,160,139,192,191, 33,120, 64, 73, 11, 51,161, 64, 85,255, 0, - 3, 0, 0, 0, 36, 76, 19, 64, 25,151,129,192,212,254, 98, 64, 25, 49,159,167,125, 78,255, 0, 3, 0, 0, 0, 93,232,175, 63, -177, 23, 64,192, 69,186,154, 64, 29, 30, 21,189,222,104,255, 0, 3, 0, 0, 0,211, 62, 68,192, 51, 56,168,191, 13,245,153, 64, - 15,190, 64,226,150,105,255, 0, 3, 0, 0, 0,200,173, 14,192,155,183, 63,192,192, 75,144, 64, 50,207,211,191,104, 99,255, 0, - 3, 0, 0, 0, 95,162,167,191,144, 29,209,191, 25,245,174, 64, 6,226,181,219, 6,119,255, 0, 3, 0, 0, 0,158,156,211,191, -185,228,132, 63,190,207,176,192,164,220,231, 21,244,134,255, 0, 3, 0, 0, 0, 0, 76, 41,192,190,199, 5, 64, 83,157,153,192, -146,198, 75, 45,246,150,255, 0, 3, 0, 0, 0,204, 83,125,192,169, 55,105, 64,244,162, 20,192, 72,169,246, 79, 82,206,255, 0, - 3, 0, 0, 0,178,215, 91,192,222,235, 62, 64,190,254,108,192,215,180, 87, 65,155,175,255, 0, 3, 0, 0, 0,242, 63, 59,191, -210,237,152, 63,251, 21,182,192,125,239, 26, 25,149,131,255, 0, 3, 0, 0, 0, 86,230, 94, 61,198, 30, 35, 64,233, 15,169,192, -238, 0, 52, 55,135,140,255, 0, 3, 0, 0, 0,220, 4,199, 63, 7,145,146, 64,104,186, 83,192,109, 34,137,100,168,184,255, 0, - 3, 0, 0, 0, 9,120, 86, 63,149, 91,109, 64, 79,242,142,192,133, 18, 64, 81,218,158,255, 0, 3, 0, 0, 0,103,243, 95,192, -221, 91,138, 64,186, 15,236,191,170,178,219, 93, 25,216,255, 0, 3, 0, 0, 0, 46,206, 5,192,121, 41,159, 64,154, 91, 19,192, -230,209, 96,108,226,205,255, 0, 3, 0, 0, 0,169,200,139, 63,198, 78,163, 64,201,146, 42,192,247, 24, 59,111,206,197,255, 0, - 3, 0, 0, 0,187,128, 4,191,206,181,167, 64, 74, 92, 37,192, 57,245, 96,114,145,199,255, 0, 3, 0, 0, 0,151, 16,231,191, -160,166,209, 61,167, 95,178,192,136,217,196, 2,245,133,255, 0, 3, 0, 0, 0,163,200, 69,192,178,143, 38,191,148, 48,158,192, -243,188, 11,242,223,147,255, 0, 3, 0, 0, 0, 43,192,155,192,151, 6,250,191,170, 82, 39,192, 79,149,247,212,231,199,255, 0, - 3, 0, 0, 0,233,118,132,192,217,111,173,191, 67,122,123,192,100,165, 58,226,165,170,255, 0, 3, 0, 0, 0,238, 85,146,192, -178,205, 78, 64, 70, 54,221,191,183,156,134, 71,120,218,255, 0, 3, 0, 0, 0, 76,137,167,192,111, 31,227, 63,158, 57,251,191, -234,141, 54, 39, 59,213,255, 0, 3, 0, 0, 0, 39,143,170,192,167, 15,183,191,251, 85,252,191,217,139,169,223, 13,213,255, 0, - 3, 0, 0, 0, 8,214,175,192,177,124, 53, 62,206,241, 2,192, 23,136, 89, 3, 92,211,255, 0, 3, 0, 0, 0, 77,160,160,190, - 9, 20,182, 62,108,232,186,192, 8,248,241, 7,128,128,255, 0, 3, 0, 0, 0, 33,144,163, 63,151,144,186, 61, 50, 47,183,192, - 97, 27, 19, 2,252,130,255, 0, 3, 0, 0, 0,222,179,129, 64,234,147,224,190, 38,180,134,192, 83, 89, 64,246,218,164,255, 0, - 3, 0, 0, 0,114,138, 49, 64,246, 97, 57,190, 57, 76,165,192,250, 60,247,251,138,143,255, 0, 3, 0, 0, 0,249,158, 27, 64, -197,118,141, 64, 58,196, 62,192, 90, 52, 70, 97, 90,191,255, 0, 3, 0, 0, 0, 98,244, 89, 64, 8,120, 79, 64, 65,128, 96,192, - 8, 74, 39, 71,151,179,255, 0, 3, 0, 0, 0, 13,100,144, 64,200,214,118, 62, 64,205,110,192,182, 98, 37, 4,161,174,255, 0, - 3, 0, 0, 0, 42,202,131, 64, 60,161,231, 63,142,245,112,192, 10, 90,255, 38,209,173,255, 0, 3, 0, 0, 0,149, 51,122,191, - 52,151,163,190, 15,157,184,192,118,234, 36,250,248,129,255, 0, 3, 0, 0, 0, 5,113, 42,191, 31,112,241,191, 15,119,176,192, - 93,241, 84,215,135,135,255, 0, 3, 0, 0, 0, 60, 55,172, 61, 22, 64,143,192,164,246,113,192, 27, 2,132,157, 71,174,255, 0, - 3, 0, 0, 0,167,173,154,190,111,224, 83,192,198,169,154,192,136,249, 89,183,211,150,255, 0, 3, 0, 0, 0,151,133,136, 64, - 9,249,162,191,106,219,115,192,175, 93, 47,229, 3,173,255, 0, 3, 0, 0, 0,110,124, 89, 64,135, 6, 40,192,223,195,127,192, -120, 74, 31,199,208,168,255, 0, 3, 0, 0, 0,244,248,117, 63,109, 90,148,192,123, 0, 93,192, 8, 20, 66,154,249,180,255, 0, - 3, 0, 0, 0,162, 0, 17, 64, 63,196,113,192, 52,239,119,192, 10, 49, 64,173,144,171,255, 0, 3, 0, 0, 0,162,217, 7,191, - 21,117,156,192,222,238, 75,192,139,245, 20,149,108,186,255, 0, 3, 0, 0, 0,171,144, 6,192,112,158,144,192,198,241, 69,192, -156,210, 55,157,115,188,255, 0, 3, 0, 0, 0,110,238,148,192,115,109, 50,192,187,197, 13,192,170,153,231,195, 17,208,255, 0, - 3, 0, 0, 0, 79,252, 96,192,140, 40,115,192,116,165, 48,192,226,178, 98,173,236,195,255, 0, 3, 0, 0, 0,100,228,172,192, -217,128,248,191, 8, 93,150,191, 91,138, 53,213, 86,229,255, 0, 3, 0, 0, 0, 82,171,182,192,216,250,168,191, 15, 15,147, 62, -122,131,250,226,203, 5,255, 0, 3, 0, 0, 0,215, 73,160,192,124,165, 49, 62,232, 85, 66, 64, 33,147, 84, 4, 42, 67,255, 0, - 3, 0, 0, 0,171, 89,178,192,192,115, 24,191, 78,116,221, 63,129,134, 64,243, 50, 38,255, 0, 3, 0, 0, 0, 51,206,143,192, -133,250,105, 64,119,251, 97,191, 85,158, 53, 80,193,235,255, 0, 3, 0, 0, 0, 62, 32,160,192,163, 38, 65, 64,164,117, 3, 63, -236,146, 24, 66,193, 10,255, 0, 3, 0, 0, 0,216,108,155,192, 59,255,141, 63,189,117, 69, 64, 61,150,119, 23, 42, 68,255, 0, - 3, 0, 0, 0, 85, 27,164,192,244, 78, 9, 64, 87,193,239, 63, 33,144,128, 46, 73, 41,255, 0, 3, 0, 0, 0,134, 35,117,192, - 39,152,138, 64, 73, 86,116,191,230,171, 2, 94, 73,234,255, 0, 3, 0, 0, 0, 35,220, 67,192, 6,218,159, 64,242,103,155, 62, -240,188,215,108, 55, 6,255, 0, 3, 0, 0, 0,130, 79, 99,191,215,182,164, 64, 10, 4, 42, 64,118,237, 50,112,190, 58,255, 0, - 3, 0, 0, 0,161, 86, 3,192, 14,205,168, 64, 60, 55,197, 63,148,211, 31,115,255, 33,255, 0, 3, 0, 0, 0,229,101,215, 63, - 84,141,168, 64, 16, 90,248,191, 11, 37,148,114,159,212,255, 0, 3, 0, 0, 0, 99, 52,155, 63,198, 17,183, 64,232,199,235,190, -159, 26,192,124,120,245,255, 0, 3, 0, 0, 0,105,179, 10, 61, 25,185,169, 64,120,119, 31, 64, 77, 0,101,115, 96, 55,255, 0, - 3, 0, 0, 0,143,198, 37, 63,123,120,183, 64,160,108,135, 63,240, 13, 8,125,144, 23,255, 0, 3, 0, 0, 0,180,174, 32, 64, - 65, 13,155, 64,238,167, 8,192,247, 53,245,105,163,208,255, 0, 3, 0, 0, 0, 69,199,104, 64,177,135,143, 64, 41, 12,132,191, - 10, 79, 10, 98, 31,233,255, 0, 3, 0, 0, 0,121,134,159, 64, 49,245, 49, 64,210,166,169, 63, 27,109,242, 59,190, 29,255, 0, - 3, 0, 0, 0, 52,133,143, 64,119,200,113, 64,186,206, 29, 62, 20, 98, 39, 82,190, 3,255, 0, 3, 0, 0, 0,215, 73,160, 64, -124,165, 49,190,232, 85, 66,192,223,108,172,251,214,188,255, 0, 3, 0, 0, 0,171, 89,178, 64,192,115, 24, 63, 78,116,221,191, -127,121,192, 12,206,217,255, 0, 3, 0, 0, 0,100,228,172, 64,217,128,248, 63, 8, 93,150, 63,165,117,203, 42,170, 26,255, 0, - 3, 0, 0, 0, 82,171,182, 64,216,250,168, 63, 15, 15,147,190,134,124, 6, 29, 53,250,255, 0, 3, 0, 0, 0,216,108,155, 64, - 59,255,141,191,189,117, 69,192,195,105,137,232,214,187,255, 0, 3, 0, 0, 0, 85, 27,164, 64,244, 78, 9,192, 87,193,239,191, -223,111,128,209,183,214,255, 0, 3, 0, 0, 0, 51,206,143, 64,133,250,105,192,119,251, 97, 63,171, 97,203,175, 63, 20,255, 0, - 3, 0, 0, 0, 62, 32,160, 64,163, 38, 65,192,164,117, 3,191, 20,109,232,189, 63,245,255, 0, 3, 0, 0, 0,130, 79, 99, 63, -215,182,164,192, 10, 4, 42,192,138, 18,206,143, 66,197,255, 0, 3, 0, 0, 0,161, 86, 3, 64, 14,205,168,192, 60, 55,197,191, -108, 44,225,140, 1,222,255, 0, 3, 0, 0, 0,134, 35,117, 64, 39,152,138,192, 73, 86,116, 63, 26, 84,254,161,183, 21,255, 0, - 3, 0, 0, 0, 35,220, 67, 64, 6,218,159,192,242,103,155,190, 16, 67, 41,147,201,249,255, 0, 3, 0, 0, 0,105,179, 10,189, - 25,185,169,192,120,119, 31,192,179,255,155,140,160,200,255, 0, 3, 0, 0, 0,143,198, 37,191,123,120,183,192,160,108,135,191, - 16,242,248,130,112,232,255, 0, 3, 0, 0, 0,229,101,215,191, 84,141,168,192, 16, 90,248, 63,245,218,108,141, 97, 43,255, 0, - 3, 0, 0, 0, 99, 52,155,191,198, 17,183,192,232,199,235, 62, 97,229, 64,131,136, 10,255, 0, 3, 0, 0, 0,121,134,159,192, - 49,245, 49,192,210,166,169,191,229,146, 14,196, 66,226,255, 0, 3, 0, 0, 0, 52,133,143,192,119,200,113,192,186,206, 29,190, -236,157,217,173, 66,252,255, 0, 3, 0, 0, 0,180,174, 32,192, 65, 13,155,192,238,167, 8, 64, 9,202, 11,150, 93, 47,255, 0, - 3, 0, 0, 0, 69,199,104,192,177,135,143,192, 41, 12,132, 63,246,176,246,157,225, 22,255, 0, 3, 0, 0, 0,244,248,117,191, -109, 90,148, 64,123, 0, 93, 64,248,235,190,101, 7, 75,255, 0, 3, 0, 0, 0,162, 0, 17,192, 63,196,113, 64, 52,239,119, 64, -246,206,192, 82,112, 84,255, 0, 3, 0, 0, 0,151,133,136,192, 9,249,162, 63,106,219,115, 64, 81,162,209, 26,253, 82,255, 0, - 3, 0, 0, 0,110,124, 89,192,135, 6, 40, 64,223,195,127, 64,136,181,225, 56, 48, 87,255, 0, 3, 0, 0, 0,162,217, 7, 63, - 21,117,156, 64,222,238, 75, 64,117, 10,236,106,148, 69,255, 0, 3, 0, 0, 0,171,144, 6, 64,112,158,144, 64,198,241, 69, 64, -100, 45,201, 98,141, 67,255, 0, 3, 0, 0, 0,110,238,148, 64,115,109, 50, 64,187,197, 13, 64, 86,102, 25, 60,239, 47,255, 0, - 3, 0, 0, 0, 79,252, 96, 64,140, 40,115, 64,116,165, 48, 64, 30, 77,158, 82, 20, 60,255, 0, 3, 0, 0, 0, 39,143,170, 64, -167, 15,183, 63,251, 85,252, 63, 39,116, 87, 32,243, 42,255, 0, 3, 0, 0, 0, 8,214,175, 64,177,124, 53,190,206,241, 2, 64, -233,119,167,252,164, 44,255, 0, 3, 0, 0, 0,238, 85,146, 64,178,205, 78,192, 70, 54,221, 63, 73, 99,122,184,136, 37,255, 0, - 3, 0, 0, 0, 76,137,167, 64,111, 31,227,191,158, 57,251, 63, 22,114,202,216,197, 42,255, 0, 3, 0, 0, 0,103,243, 95, 64, -221, 91,138,192,186, 15,236, 63, 86, 77, 37,162,231, 39,255, 0, 3, 0, 0, 0, 46,206, 5, 64,121, 41,159,192,154, 91, 19, 64, - 26, 46,160,147, 30, 50,255, 0, 3, 0, 0, 0,169,200,139,191,198, 78,163,192,201,146, 42, 64, 9,231,197,144, 50, 58,255, 0, - 3, 0, 0, 0,187,128, 4, 63,206,181,167,192, 74, 92, 37, 64,199, 10,160,141,111, 56,255, 0, 3, 0, 0, 0,249,158, 27,192, -197,118,141,192, 58,196, 62, 64,166,203,186,158,166, 64,255, 0, 3, 0, 0, 0, 98,244, 89,192, 8,120, 79,192, 65,128, 96, 64, -248,181,217,184,105, 76,255, 0, 3, 0, 0, 0, 13,100,144,192,200,214,118,190, 64,205,110, 64, 74,157,219,251, 95, 81,255, 0, - 3, 0, 0, 0, 42,202,131,192, 60,161,231,191,142,245,112, 64,246,165, 1,217, 47, 82,255, 0, 3, 0, 0, 0,222,179,129,192, -234,147,224, 62, 38,180,134, 64,173,166,192, 9, 38, 91,255, 0, 3, 0, 0, 0,114,138, 49,192,246, 97, 57, 62, 57, 76,165, 64, - 6,195, 9, 4,118,112,255, 0, 3, 0, 0, 0, 77,160,160, 62, 9, 20,182,190,108,232,186, 64,248, 7, 15,248,128,127,255, 0, - 3, 0, 0, 0, 33,144,163,191,151,144,186,189, 50, 47,183, 64,159,228,237,253, 4,125,255, 0, 3, 0, 0, 0, 60, 55,172,189, - 22, 64,143, 64,164,246,113, 64,229,253,124, 98,185, 81,255, 0, 3, 0, 0, 0,167,173,154, 62,111,224, 83, 64,198,169,154, 64, -120, 6,167, 72, 45,105,255, 0, 3, 0, 0, 0,149, 51,122, 63, 52,151,163, 62, 15,157,184, 64,138, 21,220, 5, 8,126,255, 0, - 3, 0, 0, 0, 5,113, 42, 63, 31,112,241, 63, 15,119,176, 64,163, 14,172, 40,121,120,255, 0, 3, 0, 0, 0, 43,192,155, 64, -151, 6,250, 63,170, 82, 39, 64,177,106, 9, 43, 25, 56,255, 0, 3, 0, 0, 0,233,118,132, 64,217,111,173, 63, 67,122,123, 64, -156, 90,198, 29, 91, 85,255, 0, 3, 0, 0, 0,151, 16,231, 63,160,166,209,189,167, 95,178, 64,120, 38, 60,253, 11,122,255, 0, - 3, 0, 0, 0,163,200, 69, 64,178,143, 38, 63,148, 48,158, 64, 13, 67,245, 13, 33,108,255, 0, 3, 0, 0, 0,204, 83,125, 64, -169, 55,105,192,244,162, 20, 64,184, 86, 10,176,174, 49,255, 0, 3, 0, 0, 0,178,215, 91, 64,222,235, 62,192,190,254,108, 64, - 41, 75,169,190,101, 80,255, 0, 3, 0, 0, 0,158,156,211, 63,185,228,132,191,190,207,176, 64, 92, 35, 25,234, 12,121,255, 0, - 3, 0, 0, 0, 0, 76, 41, 64,190,199, 5,192, 83,157,153, 64,110, 57,181,210, 10,105,255, 0, 3, 0, 0, 0,220, 4,199,191, - 7,145,146,192,104,186, 83, 64,147,221,119,155, 88, 71,255, 0, 3, 0, 0, 0, 9,120, 86,191,149, 91,109,192, 79,242,142, 64, -123,237,192,174, 38, 97,255, 0, 3, 0, 0, 0,242, 63, 59, 63,210,237,152,191,251, 21,182, 64,131, 16,230,230,107,124,255, 0, - 3, 0, 0, 0, 86,230, 94,189,198, 30, 35,192,233, 15,169, 64, 18,255,204,200,121,115,255, 0, 3, 0, 0, 0,208, 27, 46,192, -124,104, 86, 64, 85, 52,126,192,137,197,226, 72,134,168,255, 0, 3, 0, 0, 0, 82,168,234,191, 87, 62,149, 64,118, 12, 67,192, - 5,217,188,101,210,188,255, 0, 3, 0, 0, 0,186, 10, 16,192,249,106, 52, 64,210,253,147,192,182,206,131, 62,198,155,255, 0, - 3, 0, 0, 0, 93, 33,240,190,191,199, 71, 64,142, 47,158,192,214,245, 40, 69,199,148,255, 0, 3, 0, 0, 0, 19, 46, 71,187, -194,240,115, 64,175,166,142,192,240,254,161, 82, 66,158,255, 0, 3, 0, 0, 0,188,194,101,191, 17, 84,154, 64,240,193, 77,192, - 76,235,214,104,142,185,255, 0, 3, 0, 0, 0,246,246,115,192,183, 86, 15, 64, 51,168,118,192,249,172,229, 47, 45,171,255, 0, - 3, 0, 0, 0,101, 1,160,192, 47,146,184, 63,153, 38, 45,192,225,146, 96, 30,102,196,255, 0, 3, 0, 0, 0,215,229, 85,192, -166,178,218, 63,183, 55,144,192, 38,182,133, 37,110,158,255, 0, 3, 0, 0, 0,151,178,104,192,245,107,205,189,175, 60,147,192, -178,175,205,253, 91,156,255, 0, 3, 0, 0, 0,192, 81,136,192, 55,239, 4,191, 24,222,127,192,130,163,158,245, 35,168,255, 0, - 3, 0, 0, 0, 70,241,164,192,102,218,251, 62,143, 82, 48,192,222,143,210, 11,110,195,255, 0, 3, 0, 0, 0,209,230,173, 63, -231,135, 71, 64, 27,234,152,192,148, 29, 4, 67, 11,151,255, 0, 3, 0, 0, 0,158,103, 67, 64, 82,206, 51, 64, 39,168,132,192, -203, 66, 63, 60,242,164,255, 0, 3, 0, 0, 0,136,131,100, 63, 16, 95, 27, 64, 4,115,168,192,122, 20,138, 53,143,141,255, 0, - 3, 0, 0, 0, 77,154,217, 63,185, 69, 78, 63,221,196,177,192, 53, 38,236, 17, 42,135,255, 0, 3, 0, 0, 0,107,195, 37, 64, - 4,213, 36, 63, 20, 33,167,192,151, 55,194, 14,168,141,255, 0, 3, 0, 0, 0,103,139, 94, 64,153,146,250, 63, 72,141,137,192, - 19, 75,156, 43,245,161,255, 0, 3, 0, 0, 0,231,195, 21, 64,236, 58,101,191,218,178,169,192,247, 49, 31,236,218,139,255, 0, - 3, 0, 0, 0,142, 32, 48, 64,155,140, 32,192,195, 1,145,192, 3, 59,178,200,204,156,255, 0, 3, 0, 0, 0, 70,155,185, 63, - 12,202, 59,191,163, 86,180,192,149, 32, 73,239, 91,133,255, 0, 3, 0, 0, 0, 29, 97, 43, 62,144,118, 2,192,125,231,175,192, -106, 4,160,210,103,136,255, 0, 3, 0, 0, 0, 97,116,196, 62, 10,176, 56,192,120,239,162,192,164, 8, 20,194, 81,144,255, 0, - 3, 0, 0, 0,185, 2, 5, 64,217,105, 76,192,135,173,142,192,218, 45, 79,187, 56,158,255, 0, 3, 0, 0, 0,163,243,144,191, -252, 41, 73,192,148, 66,154,192,134,230, 73,188,107,150,255, 0, 3, 0, 0, 0,147,133, 20,192,234, 55,124,192,176, 3,107,192, -110,204,196,170,164,175,255, 0, 3, 0, 0, 0, 42,186, 60,192,219,128,189,191, 23, 43,155,192, 41,191,189,222,199,150,255, 0, - 3, 0, 0, 0, 52,164,172,191,106,240, 18,192,141, 58,167,192, 76,226,213,204,128,142,255, 0, 3, 0, 0, 0, 12,171,100,192, -249, 33,243,191,106,221,135,192,248,178,143,214,143,162,255, 0, 3, 0, 0, 0,195, 78, 74,192,241,206, 96,192, 98, 88, 94,192, - 4,188, 34,179,129,179,255, 0, 3, 0, 0, 0, 41,110,177,192, 81, 30,186, 63,105,249,158,191,160,134,165, 30, 86,229,255, 0, - 3, 0, 0, 0, 45,138,172,192,114,149, 17, 64,127,203,200, 62,251,137,171, 48, 56, 9,255, 0, 3, 0, 0, 0, 10, 94,182,192, - 48, 5, 1, 63, 86, 81,165,191,156,131, 24, 12, 94,228,255, 0, 3, 0, 0, 0,117,224,186,192, 37,234,247,190,147, 56,126, 62, -132,128,101,246, 46, 6,255, 0, 3, 0, 0, 0,204, 78,184,192, 19,193, 89,189,187,163,141, 63, 22,130,208,254,241, 22,255, 0, - 3, 0, 0, 0,105,232,174,192,151,187,224, 63,156,183,153, 63,137,136,137, 38, 3, 25,255, 0, 3, 0, 0, 0, 42,118, 68,191, -101,173,176, 64,114,132,233,191, 57,238,142,120,217,216,255, 0, 3, 0, 0, 0, 81,172,191, 62, 67,208,186, 64,195,163,216,190, - 75, 7,131,127,159,247,255, 0, 3, 0, 0, 0,113, 2,218,191,172,151,171, 64,114, 25,212,191,243,219,116,117, 30,220,255, 0, - 3, 0, 0, 0,251,244, 21,192, 28, 12,172, 64, 13,151,128, 61,229,205,196,117,226, 1,255, 0, 3, 0, 0, 0, 51, 39,223,191, -248, 94,177, 64,104,122, 76, 63,155,217, 3,121, 65, 16,255, 0, 3, 0, 0, 0, 72,208, 28, 61, 91, 13,187, 64, 64,215,245, 62, -187, 0,168,127, 66, 9,255, 0, 3, 0, 0, 0, 45, 93,142, 64, 70,137, 14, 64,147,202, 70,192,241, 96,173, 49,202,188,255, 0, - 3, 0, 0, 0,106, 23,173, 64,157,131,182, 63,175,176,225,191, 7,118, 20, 32, 72,218,255, 0, 3, 0, 0, 0, 78,203,128, 64, -124, 14, 69, 64, 55, 0, 61,192,168, 88, 80, 66,199,191,255, 0, 3, 0, 0, 0,133,175,133, 64, 28,149,121, 64, 51,212,168,191, - 4, 92, 86, 84,170,227,255, 0, 3, 0, 0, 0, 8,211,149, 64, 84,166, 94, 64, 68, 24, 29,191,221,101, 30, 76,113,241,255, 0, - 3, 0, 0, 0, 31,169,175, 64,138,176,237, 63, 15,168,103,191,152,119,128, 40, 11,235,255, 0, 3, 0, 0, 0,122, 78, 57, 64, -224, 12,120,192, 7, 56, 84,192, 62, 64,247,171,239,183,255, 0, 3, 0, 0, 0, 0, 74, 48, 64,245,165,155,192,208, 87,227,191, - 38, 61, 68,150,192,217,255, 0, 3, 0, 0, 0, 85,108,100, 64,115, 47, 76,192,149,224, 88,192,102, 77, 90,185,131,182,255, 0, - 3, 0, 0, 0,173,191,150, 64,227,233, 55,192,198,101,254,191,121,102, 79,192, 73,213,255, 0, 3, 0, 0, 0,119, 97,148, 64, -200, 33, 89,192, 24,225,150,191, 7,101, 44,182, 20,229,255, 0, 3, 0, 0, 0, 75,171, 86, 64, 36, 83,150,192, 22, 36,133,191, -220, 72,131,153, 32,232,255, 0, 3, 0, 0, 0,116,251, 81,192,115, 80,139,192, 57,124, 10,192, 81,185, 53,160,254,208,255, 0, - 3, 0, 0, 0, 70,239,122,192, 53,220,138,192,113, 86,227,190, 68,171,132,160,195,246,255, 0, 3, 0, 0, 0, 14, 50, 28,192, -245, 4,153,192,141, 39, 23,192,187,201,215,151, 33,205,255, 0, 3, 0, 0, 0, 34,123,189,191,203,168,178,192,149,106,130,191, -209,222, 63,134,158,234,255, 0, 3, 0, 0, 0,176,127,232,191,177,107,178,192, 47,189,236,189, 65,216,100,134, 66,252,255, 0, - 3, 0, 0, 0, 53,168, 90,192,169, 83,152,192,227,201,133, 62, 29,181, 77,152,136, 4,255, 0, 3, 0, 0, 0,173,191,150,192, -227,233, 55, 64,198,101,254, 63,135,153,177, 63,183, 42,255, 0, 3, 0, 0, 0, 85,108,100,192,115, 47, 76, 64,149,224, 88, 64, -154,178,166, 70,125, 73,255, 0, 3, 0, 0, 0,119, 97,148,192,200, 33, 89, 64, 24,225,150, 63,249,154,212, 73,236, 26,255, 0, - 3, 0, 0, 0, 75,171, 86,192, 36, 83,150, 64, 22, 36,133, 63, 36,183,125,102,224, 23,255, 0, 3, 0, 0, 0, 0, 74, 48,192, -245,165,155, 64,208, 87,227, 63,218,194,188,105, 64, 38,255, 0, 3, 0, 0, 0,122, 78, 57,192,224, 12,120, 64, 7, 56, 84, 64, -194,191, 9, 84, 17, 72,255, 0, 3, 0, 0, 0, 34,123,189, 63,203,168,178, 64,149,106,130, 63, 47, 33,193,121, 98, 21,255, 0, - 3, 0, 0, 0, 14, 50, 28, 64,245, 4,153, 64,141, 39, 23, 64, 69, 54, 41,104,223, 50,255, 0, 3, 0, 0, 0,176,127,232, 63, -177,107,178, 64, 47,189,236, 61,191, 39,156,121,190, 3,255, 0, 3, 0, 0, 0, 53,168, 90, 64,169, 83,152, 64,227,201,133,190, -227, 74,179,103,120,251,255, 0, 3, 0, 0, 0, 70,239,122, 64, 53,220,138, 64,113, 86,227, 62,188, 84,124, 95, 61, 9,255, 0, - 3, 0, 0, 0,116,251, 81, 64,115, 80,139, 64, 57,124, 10, 64,175, 70,203, 95, 2, 47,255, 0, 3, 0, 0, 0,117,224,186, 64, - 37,234,247, 62,147, 56,126,190,124,127,155, 9,210,249,255, 0, 3, 0, 0, 0, 10, 94,182, 64, 48, 5, 1,191, 86, 81,165, 63, -100,124,232,243,162, 27,255, 0, 3, 0, 0, 0,204, 78,184, 64, 19,193, 89, 61,187,163,141,191,234,125, 48, 1, 15,233,255, 0, - 3, 0, 0, 0,105,232,174, 64,151,187,224,191,156,183,153,191,119,119,119,217,253,230,255, 0, 3, 0, 0, 0, 45,138,172, 64, -114,149, 17,192,127,203,200,190, 5,118, 85,207,200,246,255, 0, 3, 0, 0, 0, 41,110,177, 64, 81, 30,186,191,105,249,158, 63, - 96,121, 91,225,170, 26,255, 0, 3, 0, 0, 0,251,244, 21, 64, 28, 12,172,192, 13,151,128,189, 27, 50, 60,138, 30,254,255, 0, - 3, 0, 0, 0,113, 2,218, 63,172,151,171,192,114, 25,212, 63, 13, 36,140,138,226, 35,255, 0, 3, 0, 0, 0, 51, 39,223, 63, -248, 94,177,192,104,122, 76,191,101, 38,253,134,191,239,255, 0, 3, 0, 0, 0, 72,208, 28,189, 91, 13,187,192, 64,215,245,190, - 69,255, 88,128,190,246,255, 0, 3, 0, 0, 0, 81,172,191,190, 67,208,186,192,195,163,216, 62,181,248,125,128, 97, 8,255, 0, - 3, 0, 0, 0, 42,118, 68, 63,101,173,176,192,114,132,233, 63,199, 17,114,135, 39, 39,255, 0, 3, 0, 0, 0,133,175,133,192, - 28,149,121,192, 51,212,168, 63,252,163,170,171, 86, 28,255, 0, 3, 0, 0, 0, 78,203,128,192,124, 14, 69,192, 55, 0, 61, 64, - 88,167,176,189, 57, 64,255, 0, 3, 0, 0, 0, 31,169,175,192,138,176,237,191, 15,168,103, 63,104,136,128,215,245, 20,255, 0, - 3, 0, 0, 0, 8,211,149,192, 84,166, 94,192, 68, 24, 29, 63, 35,154,226,179,143, 14,255, 0, 3, 0, 0, 0,106, 23,173,192, -157,131,182,191,175,176,225, 63,249,137,236,223,184, 37,255, 0, 3, 0, 0, 0, 45, 93,142,192, 70,137, 14,192,147,202, 70, 64, - 15,159, 83,206, 54, 67,255, 0, 3, 0, 0, 0,185, 2, 5,192,217,105, 76, 64,135,173,142, 64, 38,210,177, 68,200, 97,255, 0, - 3, 0, 0, 0, 97,116,196,190, 10,176, 56, 64,120,239,162, 64, 92,247,236, 61,175,111,255, 0, 3, 0, 0, 0,142, 32, 48,192, -155,140, 32, 64,195, 1,145, 64,253,196, 78, 55, 52, 99,255, 0, 3, 0, 0, 0,231,195, 21,192,236, 58,101, 63,218,178,169, 64, - 9,206,225, 19, 38,116,255, 0, 3, 0, 0, 0, 70,155,185,191, 12,202, 59, 63,163, 86,180, 64,107,223,183, 16,165,122,255, 0, - 3, 0, 0, 0, 29, 97, 43,190,144,118, 2, 64,125,231,175, 64,150,251, 96, 45,153,119,255, 0, 3, 0, 0, 0,195, 78, 74, 64, -241,206, 96, 64, 98, 88, 94, 64,252, 67,222, 76,127, 76,255, 0, 3, 0, 0, 0, 12,171,100, 64,249, 33,243, 63,106,221,135, 64, - 8, 77,113, 41,113, 93,255, 0, 3, 0, 0, 0,147,133, 20, 64,234, 55,124, 64,176, 3,107, 64,146, 51, 60, 85, 92, 80,255, 0, - 3, 0, 0, 0,164,243,144, 63,252, 41, 73, 64,148, 66,154, 64,122, 25,183, 67,149,105,255, 0, 3, 0, 0, 0, 52,164,172, 63, -106,240, 18, 64,141, 58,167, 64,180, 29, 43, 51,128,113,255, 0, 3, 0, 0, 0, 42,186, 60, 64,219,128,189, 63, 23, 43,155, 64, -215, 64, 67, 33, 57,105,255, 0, 3, 0, 0, 0,101, 1,160, 64, 47,146,184,191,153, 38, 45, 64, 31,109,160,225,154, 59,255, 0, - 3, 0, 0, 0,246,246,115, 64,183, 86, 15,192, 51,168,118, 64, 7, 83, 27,208,211, 84,255, 0, 3, 0, 0, 0, 70,241,164, 64, -102,218,251,190,143, 82, 48, 64, 34,112, 46,244,146, 60,255, 0, 3, 0, 0, 0,192, 81,136, 64, 55,239, 4, 63, 24,222,127, 64, -126, 92, 98, 10,221, 87,255, 0, 3, 0, 0, 0,151,178,104, 64,245,107,205, 61,175, 60,147, 64, 78, 80, 51, 2,165, 99,255, 0, - 3, 0, 0, 0,215,229, 85, 64,166,178,218,191,183, 55,144, 64,218, 73,123,218,146, 97,255, 0, 3, 0, 0, 0,188,194,101, 63, - 17, 84,154,192,240,193, 77, 64,180, 20, 42,151,114, 70,255, 0, 3, 0, 0, 0, 19, 46, 71, 59,194,240,115,192,175,166,142, 64, - 16, 1, 95,173,190, 97,255, 0, 3, 0, 0, 0, 82,168,234, 63, 87, 62,149,192,118, 12, 67, 64,251, 38, 68,154, 46, 67,255, 0, - 3, 0, 0, 0,208, 27, 46, 64,124,104, 86,192, 85, 52,126, 64,119, 58, 30,183,122, 87,255, 0, 3, 0, 0, 0,186, 10, 16, 64, -249,106, 52,192,210,253,147, 64, 74, 49,125,193, 58,100,255, 0, 3, 0, 0, 0, 93, 33,240, 62,191,199, 71,192,142, 47,158, 64, - 42, 10,216,186, 57,107,255, 0, 3, 0, 0, 0,103,139, 94,192,153,146,250,191, 72,141,137, 64,237,180,100,212, 11, 94,255, 0, - 3, 0, 0, 0,107,195, 37,192, 4,213, 36,191, 20, 33,167, 64,105,200, 62,241, 88,114,255, 0, 3, 0, 0, 0,158,103, 67,192, - 82,206, 51,192, 39,168,132, 64, 53,189,193,195, 14, 91,255, 0, 3, 0, 0, 0,209,230,173,191,231,135, 71,192, 27,234,152, 64, -108,226,252,188,245,104,255, 0, 3, 0, 0, 0, 77,154,217,191,185, 69, 78,191,221,196,177, 64,203,217, 20,238,214,120,255, 0, - 3, 0, 0, 0,136,131,100,191, 16, 95, 27,192, 4,115,168, 64,134,235,118,202,113,114,255, 0, 3, 0, 0, 0,139,220, 37,192, -245,135,141, 64,114,173, 54,192, 45,199, 95, 96,211,193,255, 0, 3, 0, 0, 0,204,119, 84,192, 93, 73,130, 64,212,107, 38,192, - 58,183,223, 88,137,199,255, 0, 3, 0, 0, 0,208, 76, 67,192, 62,120,111, 64, 14, 89, 85,192, 80,189,196, 81,140,183,255, 0, - 3, 0, 0, 0, 68,147,238,191,166,230,100, 64,234, 9,136,192,216,215,130, 78, 59,163,255, 0, 3, 0, 0, 0, 30,149,109,191, - 40, 18,111, 64,171,100,141,192, 37,235,201, 81,199,159,255, 0, 3, 0, 0, 0,144,237,178,191, 25,136,136, 64,121, 1,113,192, -117,225,189, 92, 62,173,255, 0, 3, 0, 0, 0,214, 82, 66, 63,128,115,152, 64,164, 25, 85,192,241, 16, 27,104,126,183,255, 0, - 3, 0, 0, 0,119,155,171,189,138, 40,155, 64,113, 96, 83,192,128,254,196,105,238,183,255, 0, 3, 0, 0, 0, 67,138,194, 62, -177, 97,138, 64, 75,158,124,192,112, 8,134, 94, 29,170,255, 0, 3, 0, 0, 0,158,106, 94,191,167,106, 30, 64,254,240,167,192, -229,236,187, 53,105,141,255, 0, 3, 0, 0, 0, 22,114,229,191,193, 96, 20, 64,253,167,162,192, 22,217, 93, 50,244,144,255, 0, - 3, 0, 0, 0, 45,210,162,191,233,211,224, 63,184, 67,174,192, 69,228,245, 37,244,136,255, 0, 3, 0, 0, 0, 37, 61,152,192, -230, 9, 14, 64,137,179, 39,192, 85,152,183, 48,226,198,255, 0, 3, 0, 0, 0,232,187,140,192, 6, 96, 62, 64,107,247, 30,192, - 7,160, 68, 65, 11,202,255, 0, 3, 0, 0, 0,116,134,132,192, 40,130, 40, 64,237,207, 77,192,139,165,149, 57, 30,186,255, 0, - 3, 0, 0, 0, 12,129,129,192,231,129,173, 63,159,125,128,192, 62,167, 15, 29,123,168,255, 0, 3, 0, 0, 0,254,112,134,192, -126,146,207, 62,159, 19,130,192, 15,164,119, 9,117,167,255, 0, 3, 0, 0, 0,189,121,149,192,142,192,111, 63, 76, 95, 90,192, - 95,154,107, 20,236,180,255, 0, 3, 0, 0, 0, 12, 65,162,192, 11, 84,149,191,172,202, 44,192, 60,145, 47,230, 75,197,255, 0, - 3, 0, 0, 0, 74,120,165,192, 95, 78,167,190,139, 51, 48,192, 54,143,140,248,244,195,255, 0, 3, 0, 0, 0, 61,161,150,192, -107,221, 89,191,118,113, 89,192, 40,153, 79,237, 35,182,255, 0, 3, 0, 0, 0, 52, 56, 66,192,206, 40,139, 62, 21,116,160,192, - 13,190, 19, 6,121,146,255, 0, 3, 0, 0, 0,245,120, 56,192,118,213,154, 63, 81,227,158,192, 81,193, 47, 26,133,147,255, 0, - 3, 0, 0, 0,220,104, 22,192,204,221, 40, 63,115,137,170,192, 16,205, 89, 14,117,139,255, 0, 3, 0, 0, 0,145,143, 39, 64, -190, 49, 94, 64,165, 27,124,192,238, 56,252, 75, 43,170,255, 0, 3, 0, 0, 0,130,168, 6, 64,190,132,130, 64, 12, 96,105,192, -226, 45, 91, 89,173,176,255, 0, 3, 0, 0, 0, 76,169,222, 63,205,107,104, 64,150,142,136,192, 23, 38,105, 79, 33,163,255, 0, - 3, 0, 0, 0,137,207,229, 63, 30, 63, 22, 64,207,235,161,192,198, 39,227, 50,127,145,255, 0, 3, 0, 0, 0,239, 11, 14, 64, -175,114,191, 63,254,208,166,192,133, 48, 81, 33, 87,142,255, 0, 3, 0, 0, 0,239,222, 43, 64,212,226, 11, 64,227, 71,151,192, - 33, 58,140, 47, 91,152,255, 0, 3, 0, 0, 0, 0,245,124, 64, 27, 32,187, 62, 57, 6,138,192,138, 86,176, 7, 2,162,255, 0, - 3, 0, 0, 0, 42, 75,112, 64,228, 42,152, 63, 25, 44,139,192, 0, 82,159, 25, 31,161,255, 0, 3, 0, 0, 0,178,218, 82, 64, -178,247, 1, 63,211,129,154,192, 35, 72, 4, 11,217,150,255, 0, 3, 0, 0, 0,208,203,104, 63,146, 6,113, 63,108, 5,183,192, -132, 19,150, 20, 49,131,255, 0, 3, 0, 0, 0, 26, 68,251, 62,111, 38,228, 63,114, 48,178,192,139, 10,158, 38,109,134,255, 0, - 3, 0, 0, 0,163, 78,149, 61, 65, 25,137, 63,234,102,184,192, 54, 1, 52, 23, 34,130,255, 0, 3, 0, 0, 0, 98,140, 80, 64, -169,205,238,191, 83, 69,144,192, 70, 71,145,215,173,157,255, 0, 3, 0, 0, 0,177, 39,109, 64,155,213,147,191,238,143,140,192, - 57, 81,247,230, 77,160,255, 0, 3, 0, 0, 0,100,225, 66, 64,146,191,131,191,152, 18,157,192,178, 66,128,233, 25,149,255, 0, - 3, 0, 0, 0,190, 24,220, 63,163,163,202,191,160,244,171,192, 99, 37,199,220,196,138,255, 0, 3, 0, 0, 0,227,219,133, 63, -172, 47, 17,192, 93,160,169,192,126, 23,164,206, 68,140,255, 0, 3, 0, 0, 0, 46,202,247, 63, 23,140, 27,192,116,252,158,192, -217, 41, 77,203, 32,147,255, 0, 3, 0, 0, 0, 36,220, 68, 63, 24,143,132,192, 20,105,130,192,163, 16, 66,165, 72,167,255, 0, - 3, 0, 0, 0, 60,255,185, 63,215,244,108,192,129, 7,138,192,113, 31, 11,175,251,161,255, 0, 3, 0, 0, 0,220, 18, 19, 63, -168,186, 98,192, 66,136,148,192,155, 12,121,178,241,154,255, 0, 3, 0, 0, 0,131,119,172,187,182,209,162,191,170, 73,183,192, -209,255,144,228,251,130,255, 0, 3, 0, 0, 0,165,230, 40, 63,246,111, 24,191, 50,150,185,192, 19, 14, 18,243,113,129,255, 0, - 3, 0, 0, 0,123, 45, 50,190,213, 16,230,190,160,240,186,192,231,251,124,246,109,128,255, 0, 3, 0, 0, 0,221, 22,199,191, - 71,211,134,192, 37,161,113,192, 98,222,255,163,157,173,255, 0, 3, 0, 0, 0,171,131, 58,191, 57,178,140,192,214,174,115,192, -105,240,201,159, 11,173,255, 0, 3, 0, 0, 0,228,119,112,191, 49, 46,115,192,186,222,139,192,152,235,221,172,217,160,255, 0, - 3, 0, 0, 0,122, 75,254,191, 18, 36, 50,192, 84, 70,152,192,253,211, 46,195, 87,152,255, 0, 3, 0, 0, 0,190,239, 52,192, -193,186, 22,192,166,240,145,192,167,194, 3,204,108,156,255, 0, 3, 0, 0, 0, 51, 23, 39,192, 14,245, 76,192,105,248,132,192, - 29,199,137,186,200,164,255, 0, 3, 0, 0, 0,202,137,140,192, 4,234, 33,192,152,117, 60,192,215,159,216,200, 6,192,255, 0, - 3, 0, 0, 0, 68,176,115,192, 85, 49, 68,192, 65,173, 79,192,178,172, 81,189, 81,185,255, 0, 3, 0, 0, 0,131,173,128,192, - 50,170, 14,192,247, 71,105,192, 30,168, 64,207,189,176,255, 0, 3, 0, 0, 0,230, 80, 22,192, 50,155,141,191,108, 95,168,192, - 3,205, 6,232, 19,141,255, 0, 3, 0, 0, 0, 96,113,194,191,166,184,195,191, 31,160,174,192,205,222,245,222,227,136,255, 0, - 3, 0, 0, 0,249,244,213,191, 10, 33, 52,191,248, 94,178,192,172,219, 3,241, 48,134,255, 0, 3, 0, 0, 0, 30, 26,167,192, - 62, 11, 42, 64,199,163,159,190, 45,142, 26, 58,236,248,255, 0, 3, 0, 0, 0, 15,242,157,192,177, 35, 63, 64,242,230,132,191, -115,148,134, 65, 39,233,255, 0, 3, 0, 0, 0, 58,163,169,192,184,207, 14, 64, 43, 92,148,191,122,140,250, 48,193,230,255, 0, - 3, 0, 0, 0,241, 83,184,192, 33,241,117, 63,204, 69,248,190, 32,130,245, 20, 22,246,255, 0, 3, 0, 0, 0, 88,178,186,192, -180, 33,226, 62, 69,211,165, 62,153,128, 65, 10,196, 6,255, 0, 3, 0, 0, 0,100,194,181,192,227, 37,178, 63, 65, 51,191, 62, -199,131,217, 29,201, 7,255, 0, 3, 0, 0, 0,140, 68,168,192,162,100, 57, 63, 90, 41, 31, 64, 91,141,195, 15,175, 54,255, 0, - 3, 0, 0, 0,185,114,173,192,147, 11,162, 63,136,131,237, 63,204,137,106, 27,187, 40,255, 0, 3, 0, 0, 0, 90, 82,178,192, -181, 0,168, 62,125, 64,231, 63,136,134, 78, 7,175, 39,255, 0, 3, 0, 0, 0,235, 52,185,192,191,185, 83,191, 39,176,252,190, -201,129,211,237,241,244,255, 0, 3, 0, 0, 0, 95,222,182,192,178, 32,161,190, 48, 92,165,191, 90,131,208,248,211,227,255, 0, - 3, 0, 0, 0, 52,119,179,192,223,204,147,191,116,141,160,191,169,133,113,230,103,228,255, 0, 3, 0, 0, 0,109, 88, 35, 63, -129,186,182, 64,207, 8,152,191, 5, 14,127,124,202,229,255, 0, 3, 0, 0, 0,226, 54, 99, 63,172,134,174, 64, 96, 98,250,191, -180, 19,244,118, 14,213,255, 0, 3, 0, 0, 0,150,195, 60, 61, 46,121,177, 64,174, 6,245,191, 84, 1,249,120, 55,214,255, 0, - 3, 0, 0, 0,228,160,145,191,121, 59,181, 64,246,252,123,191, 63,231,214,123, 42,235,255, 0, 3, 0, 0, 0, 29,166,188,191, -167,120,181, 64, 4,224,165,189, 81,224,253,123,203,253,255, 0, 3, 0, 0, 0, 26,186, 9,191,104,142,186, 64,128, 74,126,190, -158,243, 69,127, 88,250,255, 0, 3, 0, 0, 0,179,205, 19,191, 33,145,175, 64,102,151,253, 63,125,243,171,119,167, 43,255, 0, - 3, 0, 0, 0,163,114,134,190, 81, 94,183, 64, 73,210,157, 63, 40,250,240,124, 49, 27,255, 0, 3, 0, 0, 0,253,217,151,191, - 90, 89,178, 64,210,246,178, 63, 89,230,146,121,187, 30,255, 0, 3, 0, 0, 0,107,200, 50,192, 4, 21,164, 64,143,252, 18,191, -229,194,189,111, 58,243,255, 0, 3, 0, 0, 0,219,140, 29,192,164,216,163, 64,163,160,187,191, 2,202,148,111, 27,224,255, 0, - 3, 0, 0, 0, 8, 63, 76,192,149, 92,152, 64,201, 6,157,191,254,185,184,103, 25,229,255, 0, 3, 0, 0, 0,102, 31,167, 64, - 18,113,133, 63,122,150, 29,192,214,113,149, 22, 5,202,255, 0, 3, 0, 0, 0,115, 48,157, 64, 74,183, 33, 63, 21,172, 72,192, - 50,107,106, 13, 91,187,255, 0, 3, 0, 0, 0,250, 48,151, 64,117,157,186, 63,236, 37, 74,192, 41,103,126, 31, 23,187,255, 0, - 3, 0, 0, 0,118, 31,148, 64,144, 99, 46, 64, 95,237, 21,192,101,101,141, 59,115,205,255, 0, 3, 0, 0, 0, 40,177,150, 64, -101,250, 73, 64,104,252,189,191, 13,103,113, 68, 39,223,255, 0, 3, 0, 0, 0, 59, 67,164, 64,106,116, 19, 64, 96,145,209,191, -204,111,223, 50,255,219,255, 0, 3, 0, 0, 0, 9, 99,168, 64,184,173, 32, 64,129, 16, 27, 63,228,114,189, 54,164, 13,255, 0, - 3, 0, 0, 0,225, 1,174, 64, 65,167, 12, 64,199, 1, 38,190,149,118, 17, 48,195,252,255, 0, 3, 0, 0, 0,172,156,160, 64, - 23,121, 66, 64,220,253, 53,188,155,109, 25, 66, 0, 0,255, 0, 3, 0, 0, 0,230,184,106, 64,117, 83,133, 64, 76, 95,243,191, -202, 79,251, 90, 77,214,255, 0, 3, 0, 0, 0,116,166,101, 64, 67,107,111, 64, 69,233, 47,192, 23, 78,219, 81, 34,196,255, 0, - 3, 0, 0, 0,109, 20, 68, 64,202, 9,139, 64,124,255, 29,192,138, 66, 22, 95, 6,202,255, 0, 3, 0, 0, 0, 46,138, 12, 64, -195,168,156,192, 99,240, 23,192,172, 47, 54,149,252,203,255, 0, 3, 0, 0, 0,110,189,201, 63, 48, 28,154,192,180,148, 60,192, - 2, 34,195,150,147,191,255, 0, 3, 0, 0, 0, 21, 55, 17, 64,125, 67,140,192,118, 8, 75,192, 61, 49, 50,160,221,186,255, 0, - 3, 0, 0, 0, 85,126,100, 64,103,211,114,192,187,176, 43,192, 60, 78,241,172, 2,198,255, 0, 3, 0, 0, 0, 29,112,133, 64, -168, 45,104,192, 95, 44,249,191,154, 90, 96,176, 48,213,255, 0, 3, 0, 0, 0,192,193, 95, 64,221, 5,138,192, 42,219,239,191, -181, 76, 61,162,177,214,255, 0, 3, 0, 0, 0, 28, 21,134, 64,185,231,130,192,175,210,133, 62,128, 91,182,166, 33, 6,255, 0, - 3, 0, 0, 0,128,101,115, 64,106,100,142,192,214,174,205,190, 32, 83, 12,159,127,247,255, 0, 3, 0, 0, 0,187,250,142, 64, -178,123,113,192, 90,120,242,190, 99, 97,142,173,244,245,255, 0, 3, 0, 0, 0,115, 83,149, 64, 25,118, 24,192, 96, 5, 41,192, -195,101, 61,204, 36,198,255, 0, 3, 0, 0, 0,236, 97,130, 64,181,248, 34,192, 49,132, 87,192, 17, 89,184,200,144,182,255, 0, - 3, 0, 0, 0,186,103,144, 64, 91, 9,234,191,150,226, 80,192,152, 98,121,216,152,184,255, 0, 3, 0, 0, 0,208, 74,136,192, -231,117,121,192, 32,193,133,191,248,162, 42,171,249,232,255, 0, 3, 0, 0, 0, 31, 84,144,192, 24, 19, 87,192, 53, 65,211,191, - 74,157,248,182,224,219,255, 0, 3, 0, 0, 0, 7, 90,123,192,107,238,121,192,115,227,247,191, 22,170, 1,171,218,213,255, 0, - 3, 0, 0, 0,161,112, 54,192, 94, 77,156,192,207,107,196,191,198,193, 23,149, 32,223,255, 0, 3, 0, 0, 0, 24, 41, 22,192, - 1,197,169,192,191, 68, 84,191, 45,204,105,140,172,237,255, 0, 3, 0, 0, 0, 73,243, 75,192, 86, 16,156,192,180,150, 33,191, -216,186, 63,149,194,241,255, 0, 3, 0, 0, 0,140,246, 19,192,148, 60,166,192, 11, 70,182, 63,164,205,159,142,127, 31,255, 0, - 3, 0, 0, 0, 17, 21, 58,192,224,209,160,192,103,100, 88, 63,202,192, 72,146,171, 18,255, 0, 3, 0, 0, 0,151,252, 4,192, - 71, 89,174,192,215, 93, 38, 63,148,210, 55,137,122, 14,255, 0, 3, 0, 0, 0, 53,176,150,191,238,252,174,192, 37,172,226,191, -114,230,199,136, 20,217,255, 0, 3, 0, 0, 0,225,105,214,191,211,177,161,192,160,229, 29,192,197,219,175,145, 38,202,255, 0, - 3, 0, 0, 0, 62,213, 88,191,193, 70,167,192,212,217, 32,192,221,237,232,141,230,200,255, 0, 3, 0, 0, 0,236, 97,130,192, -181,248, 34, 64, 49,132, 87, 64,239,166, 72, 55,112, 73,255, 0, 3, 0, 0, 0,186,103,144,192, 91, 9,234, 63,150,226, 80, 64, -104,157,135, 39,104, 71,255, 0, 3, 0, 0, 0,115, 83,149,192, 25,118, 24, 64, 96, 5, 41, 64, 61,154,195, 51,220, 57,255, 0, - 3, 0, 0, 0, 29,112,133,192,168, 45,104, 64, 95, 44,249, 63,102,165,160, 79,208, 42,255, 0, 3, 0, 0, 0,192,193, 95,192, -221, 5,138, 64, 42,219,239, 63, 75,179,195, 93, 79, 41,255, 0, 3, 0, 0, 0, 85,126,100,192,103,211,114, 64,187,176, 43, 64, -196,177, 15, 83,254, 57,255, 0, 3, 0, 0, 0,110,189,201,191, 48, 28,154, 64,180,148, 60, 64,254,221, 61,105,109, 64,255, 0, - 3, 0, 0, 0, 21, 55, 17,192,125, 67,140, 64,118, 8, 75, 64,195,206,206, 95, 35, 69,255, 0, 3, 0, 0, 0, 46,138, 12,192, -195,168,156, 64, 99,240, 23, 64, 84,208,202,106, 4, 52,255, 0, 3, 0, 0, 0,128,101,115,192,106,100,142, 64,214,174,205, 62, -224,172,244, 96,129, 8,255, 0, 3, 0, 0, 0,187,250,142,192,178,123,113, 64, 90,120,242, 62,157,158,114, 82, 12, 10,255, 0, - 3, 0, 0, 0, 28, 21,134,192,185,231,130, 64,175,210,133,190,128,164, 74, 89,223,249,255, 0, 3, 0, 0, 0,225,105,214, 63, -211,177,161, 64,160,229, 29, 64, 59, 36, 81,110,218, 53,255, 0, 3, 0, 0, 0, 62,213, 88, 63,193, 70,167, 64,212,217, 32, 64, - 35, 18, 24,114, 26, 55,255, 0, 3, 0, 0, 0, 53,176,150, 63,238,252,174, 64, 37,172,226, 63,142, 25, 57,119,236, 38,255, 0, - 3, 0, 0, 0, 24, 41, 22, 64, 1,197,169, 64,191, 68, 84, 63,211, 51,151,115, 84, 18,255, 0, 3, 0, 0, 0, 73,243, 75, 64, - 86, 16,156, 64,180,150, 33, 63, 40, 69,193,106, 62, 14,255, 0, 3, 0, 0, 0,161,112, 54, 64, 94, 77,156, 64,208,107,196, 63, - 58, 62,233,106,224, 32,255, 0, 3, 0, 0, 0, 31, 84,144, 64, 24, 19, 87, 64, 53, 65,211, 63,182, 98, 8, 73, 32, 36,255, 0, - 3, 0, 0, 0, 7, 90,123, 64,107,238,121, 64,115,227,247, 63,234, 85,255, 84, 38, 42,255, 0, 3, 0, 0, 0,208, 74,136, 64, -231,117,121, 64, 32,193,133, 63, 8, 93,214, 84, 7, 23,255, 0, 3, 0, 0, 0, 17, 21, 58, 64,224,209,160, 64,103,100, 88,191, - 54, 63,184,109, 85,237,255, 0, 3, 0, 0, 0,151,252, 4, 64, 71, 89,174, 64,215, 93, 38,191,108, 45,201,118,134,241,255, 0, - 3, 0, 0, 0,140,246, 19, 64,148, 60,166, 64, 11, 70,182,191, 92, 50, 97,113,129,224,255, 0, 3, 0, 0, 0, 95,222,182, 64, -178, 32,161, 62, 48, 92,165, 63,166,124, 48, 7, 45, 28,255, 0, 3, 0, 0, 0, 52,119,179, 64,223,204,147, 63,116,141,160, 63, - 87,122,143, 25,153, 27,255, 0, 3, 0, 0, 0,235, 52,185, 64,191,185, 83, 63, 39,176,252, 62, 55,126, 45, 18, 15, 11,255, 0, - 3, 0, 0, 0, 88,178,186, 64,180, 33,226,190, 69,211,165,190,103,127,191,245, 60,249,255, 0, 3, 0, 0, 0,100,194,181, 64, -227, 37,178,191, 65, 51,191,190, 57,124, 39,226, 55,248,255, 0, 3, 0, 0, 0,241, 83,184, 64, 33,241,117,191,204, 69,248, 62, -224,125, 11,235,234, 9,255, 0, 3, 0, 0, 0, 15,242,157, 64,177, 35, 63,192,242,230,132, 63,141,107,122,190,217, 22,255, 0, - 3, 0, 0, 0, 58,163,169, 64,184,207, 14,192, 43, 92,148, 63,134,115, 6,207, 63, 25,255, 0, 3, 0, 0, 0, 30, 26,167, 64, - 62, 11, 42,192,199,163,159, 62,211,113,230,197, 20, 7,255, 0, 3, 0, 0, 0,185,114,173, 64,147, 11,162,191,136,131,237,191, - 52,118,150,228, 69,215,255, 0, 3, 0, 0, 0, 90, 82,178, 64,181, 0,168,190,125, 64,231,191,120,121,178,248, 81,216,255, 0, - 3, 0, 0, 0,140, 68,168, 64,162,100, 57,191, 90, 41, 31,192,165,114, 61,240, 81,201,255, 0, 3, 0, 0, 0,219,140, 29, 64, -164,216,163,192,163,160,187, 63,254, 53,108,144,229, 31,255, 0, 3, 0, 0, 0, 8, 63, 76, 64,149, 92,152,192,201, 6,157, 63, - 2, 70, 72,152,231, 26,255, 0, 3, 0, 0, 0,107,200, 50, 64, 4, 21,164,192,143,252, 18, 63, 27, 61, 67,144,198, 12,255, 0, - 3, 0, 0, 0, 29,166,188, 63,167,120,181,192, 4,224,165, 61,175, 31, 3,132, 53, 2,255, 0, 3, 0, 0, 0, 26,186, 9, 63, -104,142,186,192,128, 74,126, 62, 98, 12,187,128,168, 5,255, 0, 3, 0, 0, 0,228,160,145, 63,121, 59,181,192,246,252,123, 63, -193, 24, 42,132,214, 20,255, 0, 3, 0, 0, 0,226, 54, 99,191,172,134,174,192, 96, 98,250, 63, 76,236, 12,137,242, 42,255, 0, - 3, 0, 0, 0,150,195, 60,189, 46,121,177,192,174, 6,245, 63,172,254, 7,135,201, 41,255, 0, 3, 0, 0, 0,109, 88, 35,191, -129,186,182,192,207, 8,152, 63,251,241,129,131, 54, 26,255, 0, 3, 0, 0, 0,163,114,134, 62, 81, 94,183,192, 73,210,157,191, -216, 5, 16,131,207,228,255, 0, 3, 0, 0, 0,253,217,151, 63, 90, 89,178,192,210,246,178,191,167, 25,110,134, 69,225,255, 0, - 3, 0, 0, 0,179,205, 19, 63, 33,145,175,192,102,151,253,191,131, 12, 85,136, 89,212,255, 0, 3, 0, 0, 0,116,166,101,192, - 67,107,111,192, 69,233, 47, 64,233,177, 37,174,222, 59,255, 0, 3, 0, 0, 0,109, 20, 68,192,202, 9,139,192,124,255, 29, 64, -118,189,234,160,250, 53,255, 0, 3, 0, 0, 0,230,184,106,192,117, 83,133,192, 76, 95,243, 63, 54,176, 5,165,179, 41,255, 0, - 3, 0, 0, 0, 40,177,150,192,101,250, 73,192,104,252,189, 63,243,152,143,187,217, 32,255, 0, 3, 0, 0, 0, 59, 67,164,192, -106,116, 19,192, 96,145,209, 63, 52,144, 33,205, 1, 36,255, 0, 3, 0, 0, 0,118, 31,148,192,144, 99, 46,192, 95,237, 21, 64, -155,154,115,196,141, 50,255, 0, 3, 0, 0, 0,115, 48,157,192, 74,183, 33,191, 21,172, 72, 64,206,148,150,242,165, 68,255, 0, - 3, 0, 0, 0,250, 48,151,192,117,157,186,191,236, 37, 74, 64,215,152,130,224,233, 68,255, 0, 3, 0, 0, 0,102, 31,167,192, - 18,113,133,191,122,150, 29, 64, 42,142,107,233,251, 53,255, 0, 3, 0, 0, 0,225, 1,174,192, 65,167, 12,192,199, 1, 38, 62, -107,137,239,207, 61, 3,255, 0, 3, 0, 0, 0,172,156,160,192, 23,121, 66,192,220,253, 53, 60,101,146,231,189, 0, 0,255, 0, - 3, 0, 0, 0, 9, 99,168,192,184,173, 32,192,129, 16, 27,191, 28,141, 67,201, 92,242,255, 0, 3, 0, 0, 0,220, 18, 19,191, -168,186, 98, 64, 66,136,148, 64,101,243,135, 77, 15,101,255, 0, 3, 0, 0, 0, 36,220, 68,191, 24,143,132, 64, 20,105,130, 64, - 93,239,190, 90,184, 88,255, 0, 3, 0, 0, 0, 60,255,185,191,215,244,108, 64,129, 7,138, 64,143,224,245, 80, 5, 94,255, 0, - 3, 0, 0, 0, 46,202,247,191, 23,140, 27, 64,116,252,158, 64, 39,214,179, 52,224,108,255, 0, 3, 0, 0, 0,190, 24,220,191, -163,163,202, 63,160,244,171, 64,157,218, 57, 35, 60,117,255, 0, 3, 0, 0, 0,227,219,133,191,172, 47, 17, 64, 93,160,169, 64, -130,232, 92, 49,188,115,255, 0, 3, 0, 0, 0,123, 45, 50, 62,213, 16,230, 62,160,240,186, 64, 25, 4,132, 9,147,127,255, 0, - 3, 0, 0, 0,131,119,172, 59,182,209,162, 63,170, 73,183, 64, 47, 0,112, 27, 5,125,255, 0, 3, 0, 0, 0,165,230, 40,191, -246,111, 24, 63, 50,150,185, 64,237,241,238, 12,143,126,255, 0, 3, 0, 0, 0,100,225, 66,192,146,191,131, 63,152, 18,157, 64, - 78,189,128, 22,231,106,255, 0, 3, 0, 0, 0, 98,140, 80,192,169,205,238, 63, 83, 69,144, 64,186,184,111, 40, 83, 98,255, 0, - 3, 0, 0, 0,177, 39,109,192,154,213,147, 63,239,143,140, 64,199,174, 9, 25,179, 95,255, 0, 3, 0, 0, 0,131,173,128, 64, - 50,170, 14, 64,247, 71,105, 64,226, 87,192, 48, 67, 79,255, 0, 3, 0, 0, 0,202,137,140, 64, 4,234, 33, 64,152,117, 60, 64, - 41, 96, 40, 55,250, 63,255, 0, 3, 0, 0, 0, 68,176,115, 64, 85, 49, 68, 64, 65,173, 79, 64, 78, 83,175, 66,175, 70,255, 0, - 3, 0, 0, 0, 51, 23, 39, 64, 14,245, 76, 64,105,248,132, 64,227, 56,119, 69, 56, 91,255, 0, 3, 0, 0, 0,122, 75,254, 63, - 17, 36, 50, 64, 83, 70,152, 64, 3, 44,210, 60,169,103,255, 0, 3, 0, 0, 0,190,239, 52, 64,193,186, 22, 64,166,240,145, 64, - 89, 61,253, 51,148, 99,255, 0, 3, 0, 0, 0,249,244,213, 63, 10, 33, 52, 63,248, 94,178, 64, 84, 36,253, 14,208,121,255, 0, - 3, 0, 0, 0,230, 80, 22, 64, 50,155,141, 63,108, 95,168, 64,253, 50,250, 23,237,114,255, 0, 3, 0, 0, 0, 96,113,194, 63, -166,184,195, 63, 31,160,174, 64, 51, 33, 11, 33, 29,119,255, 0, 3, 0, 0, 0,228,119,112, 63, 49, 46,115, 64,186,222,139, 64, -104, 20, 35, 83, 40, 95,255, 0, 3, 0, 0, 0,221, 22,199, 63, 71,211,134, 64, 37,161,113, 64,158, 33, 1, 92, 99, 82,255, 0, - 3, 0, 0, 0,170,131, 58, 63, 58,178,140, 64,213,174,115, 64,151, 15, 55, 96,245, 82,255, 0, 3, 0, 0, 0,116,134,132, 64, - 40,130, 40,192,237,207, 77, 64,117, 90,107,198,226, 69,255, 0, 3, 0, 0, 0,232,187,140, 64, 6, 96, 62,192,107,247, 30, 64, -249, 95,188,190,245, 53,255, 0, 3, 0, 0, 0, 37, 61,152, 64,230, 9, 14,192,137,179, 39, 64,171,103, 73,207, 30, 57,255, 0, - 3, 0, 0, 0,189,121,149, 64,142,192,111,191, 76, 95, 90, 64,161,101,149,235, 20, 75,255, 0, 3, 0, 0, 0,254,112,134, 64, -126,146,207,190,159, 19,130, 64,241, 91,137,246,139, 88,255, 0, 3, 0, 0, 0, 12,129,129, 64,231,129,173,191,159,125,128, 64, -194, 88,241,226,133, 87,255, 0, 3, 0, 0, 0,220,104, 22, 64,204,221, 40,191,115,137,170, 64,240, 50,167,241,139,116,255, 0, - 3, 0, 0, 0,245,120, 56, 64,118,213,154,191, 81,227,158, 64,175, 62,209,229,123,108,255, 0, 3, 0, 0, 0, 52, 56, 66, 64, -206, 40,139,190, 21,116,160, 64,243, 65,237,249,135,109,255, 0, 3, 0, 0, 0, 61,161,150, 64,107,221, 89, 63,118,113, 89, 64, -216,102,177, 18,221, 73,255, 0, 3, 0, 0, 0, 74,120,165, 64, 95, 78,167, 62,139, 51, 48, 64,202,112,116, 7, 12, 60,255, 0, - 3, 0, 0, 0, 12, 65,162, 64, 11, 84,149, 63,172,202, 44, 64,196,110,209, 25,181, 58,255, 0, 3, 0, 0, 0, 67,138,194,190, -177, 97,138,192, 75,158,124, 64,144,247,122,161,227, 85,255, 0, 3, 0, 0, 0,214, 82, 66,191,128,115,152,192,164, 25, 85, 64, - 15,239,229,151,130, 72,255, 0, 3, 0, 0, 0,119,155,171, 61,138, 40,155,192,113, 96, 83, 64,128, 1, 60,150, 18, 72,255, 0, - 3, 0, 0, 0,144,237,178, 63, 25,136,136,192,121, 1,113, 64,139, 30, 67,163,194, 82,255, 0, 3, 0, 0, 0, 68,147,238, 63, -166,230,100,192,234, 9,136, 64, 40, 40,126,177,197, 92,255, 0, 3, 0, 0, 0, 30,149,109, 63, 40, 18,111,192,171,100,141, 64, -219, 20, 55,174, 57, 96,255, 0, 3, 0, 0, 0, 45,210,162, 63,233,211,224,191,184, 67,174, 64,187, 27, 11,218, 12,119,255, 0, - 3, 0, 0, 0,158,106, 94, 63,167,106, 30,192,254,240,167, 64, 27, 19, 69,202,151,114,255, 0, 3, 0, 0, 0, 22,114,229, 63, -193, 96, 20,192,253,167,162, 64,234, 38,163,205, 12,111,255, 0, 3, 0, 0, 0,208, 76, 67, 64, 62,120,111,192, 14, 89, 85, 64, -176, 66, 60,174,116, 72,255, 0, 3, 0, 0, 0,139,220, 37, 64,245,135,141,192,114,173, 54, 64,211, 56,161,159, 45, 62,255, 0, - 3, 0, 0, 0,204,119, 84, 64, 93, 73,130,192,212,107, 38, 64,198, 72, 33,167,119, 56,255, 0, 3, 0, 0, 0,178,218, 82,192, -178,247, 1,191,211,129,154, 64,221,183,252,244, 39,105,255, 0, 3, 0, 0, 0, 0,245,124,192, 27, 32,187,190, 57, 6,138, 64, -118,169, 80,248,254, 93,255, 0, 3, 0, 0, 0, 42, 75,112,192,228, 42,152,191, 25, 44,139, 64, 0,174, 97,230,225, 94,255, 0, - 3, 0, 0, 0,239,222, 43,192,212,226, 11,192,227, 71,151, 64,223,197,116,208,165,103,255, 0, 3, 0, 0, 0,137,207,229,191, - 30, 63, 22,192,207,235,161, 64, 58,216, 29,205,129,110,255, 0, 3, 0, 0, 0,239, 11, 14,192,175,114,191,191,254,208,166, 64, -123,207,175,222,169,113,255, 0, 3, 0, 0, 0,163, 78,149,189, 65, 25,137,191,234,102,184, 64,202,254,204,232,222,125,255, 0, - 3, 0, 0, 0,208,203,104,191,146, 6,113,191,108, 5,183, 64,124,236,106,235,207,124,255, 0, 3, 0, 0, 0, 26, 68,251,190, -111, 38,228,191,114, 48,178, 64,117,245, 98,217,147,121,255, 0, 3, 0, 0, 0, 76,169,222,191,205,107,104,192,150,142,136, 64, -233,217,151,176,223, 92,255, 0, 3, 0, 0, 0,145,143, 39,192,190, 49, 94,192,165, 27,124, 64, 18,199, 4,180,213, 85,255, 0, - 3, 0, 0, 0,130,168, 6,192,190,132,130,192, 12, 96,105, 64, 30,210,165,166, 83, 79,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, - 84, 1, 0, 0, 8,181,184, 3, 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,182,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 90, 0, 0,144,182,184, 3, 55, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 35, 0, 42, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0, -163, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, - 12, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,166, 0, 0, 0, - 0, 0, 35, 0, 44, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0, -167, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, - 13, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,170, 0, 0, 0, - 0, 0, 35, 0, 46, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0, -171, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, - 14, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,174, 0, 0, 0, - 0, 0, 35, 0, 48, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, -175, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, - 15, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,178, 0, 0, 0, - 0, 0, 35, 0, 50, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0, -179, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0, - 16, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,182, 0, 0, 0, - 0, 0, 35, 0, 52, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, -183, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, - 17, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,186, 0, 0, 0, - 0, 0, 35, 0, 54, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0, -187, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, - 18, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,190, 0, 0, 0, - 0, 0, 35, 0, 56, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0, -191, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, - 19, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,194, 0, 0, 0, - 0, 0, 35, 0, 58, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0, -195, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,198, 0, 0, 0, - 0, 0, 35, 0, 60, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, -199, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0, - 21, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,202, 0, 0, 0, - 0, 0, 35, 0, 62, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, -203, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, - 22, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,206, 0, 0, 0, - 0, 0, 35, 0, 64, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0, -207, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, - 23, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,210, 0, 0, 0, - 0, 0, 35, 0, 66, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, -211, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, - 24, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,214, 0, 0, 0, - 0, 0, 35, 0, 68, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, -215, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0, - 25, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,218, 0, 0, 0, - 0, 0, 35, 0, 70, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0, -219, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, - 26, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,222, 0, 0, 0, - 0, 0, 35, 0, 72, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,223, 0, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, -223, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, - 27, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,226, 0, 0, 0, - 0, 0, 35, 0, 74, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,227, 0, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, -227, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, - 28, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,230, 0, 0, 0, - 0, 0, 35, 0, 76, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,231, 0, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, -231, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, - 29, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,234, 0, 0, 0, - 0, 0, 35, 0, 78, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,235, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, -235, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, - 30, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,238, 0, 0, 0, - 0, 0, 35, 0, 80, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, -239, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, - 31, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,242, 0, 0, 0, - 0, 0, 35, 0, 82, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,243, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, -243, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0, - 32, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,246, 0, 0, 0, - 0, 0, 35, 0, 84, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, -247, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, - 33, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,250, 0, 0, 0, - 0, 0, 35, 0, 86, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0, -251, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, - 34, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,254, 0, 0, 0, - 0, 0, 35, 0, 88, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0, -255, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, - 35, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 2, 1, 0, 0, - 0, 0, 35, 0, 90, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, - 3, 1, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, - 36, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 6, 1, 0, 0, - 0, 0, 35, 0, 92, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, - 7, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, - 37, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 10, 1, 0, 0, - 0, 0, 35, 0, 94, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, - 11, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, - 38, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 14, 1, 0, 0, - 0, 0, 35, 0, 96, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, - 15, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, - 39, 0, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 1, 0, 0, - 0, 0, 35, 0, 98, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, - 40, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 22, 1, 0, 0, - 0, 0, 35, 0,100, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 23, 1, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, - 23, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, - 41, 0, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 26, 1, 0, 0, - 0, 0, 35, 0,102, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0, - 27, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, - 13, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 30, 1, 0, 0, - 0, 0, 35, 0,104, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, - 31, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, - 16, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 34, 1, 0, 0, - 0, 0, 35, 0,106, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, - 35, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0, - 16, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 38, 1, 0, 0, - 0, 0, 35, 0,108, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, - 39, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, - 17, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 42, 1, 0, 0, - 0, 0, 35, 0,110, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, - 43, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 46, 1, 0, 0, - 0, 0, 35, 0,112, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0, - 47, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, - 20, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 50, 1, 0, 0, - 0, 0, 35, 0,114, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0, - 51, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0, - 19, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 54, 1, 0, 0, - 0, 0, 35, 0,116, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0, - 55, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, - 23, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 58, 1, 0, 0, - 0, 0, 35, 0,118, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0, - 59, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0, - 23, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 62, 1, 0, 0, - 0, 0, 35, 0,120, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0, - 63, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, - 24, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 66, 1, 0, 0, - 0, 0, 35, 0,122, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0, - 67, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, - 27, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 70, 1, 0, 0, - 0, 0, 35, 0,124, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, - 71, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0, - 27, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 74, 1, 0, 0, - 0, 0, 35, 0,126, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0, - 75, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, - 28, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 78, 1, 0, 0, - 0, 0, 35, 0,128, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0, - 79, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, - 31, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 82, 1, 0, 0, - 0, 0, 35, 0,130, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, - 83, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, - 31, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 86, 1, 0, 0, - 0, 0, 35, 0,132, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, - 87, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, - 24, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 90, 1, 0, 0, - 0, 0, 35, 0,134, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, - 91, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, - 33, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 94, 1, 0, 0, - 0, 0, 35, 0,136, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, - 95, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, - 33, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, 98, 1, 0, 0, - 0, 0, 35, 0,138, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, - 99, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, - 28, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,102, 1, 0, 0, - 0, 0, 35, 0,140, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, -103, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, - 35, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,106, 1, 0, 0, - 0, 0, 35, 0,142, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,107, 1, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, -107, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0, - 35, 0, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,109, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,110, 1, 0, 0, - 0, 0, 35, 0,144, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,111, 1, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, -111, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, - 31, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,114, 1, 0, 0, - 0, 0, 35, 0,146, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, -115, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0, - 38, 0, 0, 0,117, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,118, 1, 0, 0, - 0, 0, 35, 0,148, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, -119, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,120, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, - 38, 0, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,122, 1, 0, 0, - 0, 0, 35, 0,150, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,123, 1, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, -123, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, - 38, 0, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,125, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0,126, 1, 0, 0, - 0, 0, 35, 0,152, 0, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,127, 1, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, -127, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, - 40, 0, 0, 0,129, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,130, 1, 0, 0, - 0, 0, 35, 0,154, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,131, 1, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, -131, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,132, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, - 40, 0, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,133, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,134, 1, 0, 0, - 0, 0, 35, 0,156, 0, 0, 0,134, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,135, 1, 0, 0, 0, 0, 35, 0,156, 0, 0, 0, -135, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0, - 40, 0, 0, 0,137, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,137, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0,138, 1, 0, 0, - 0, 0, 35, 0,158, 0, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,158, 0, 0, 0, -139, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,140, 1, 0, 0, 0, 0, 35, 0, - 37, 0, 0, 0,141, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,141, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,142, 1, 0, 0, - 0, 0, 35, 0,160, 0, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,160, 0, 0, 0, -143, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,144, 1, 0, 0, 0, 0, 35, 0, - 41, 0, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,146, 1, 0, 0, - 0, 0, 35, 0,102, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,147, 1, 0, 0, 0, 0, 33, 0, 46, 0, 0, 0, -147, 1, 0, 0, 0, 0, 33, 0, 43, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0, -102, 0, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,150, 1, 0, 0, - 0, 0, 35, 0,104, 0, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,151, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, -151, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,152, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,152, 1, 0, 0, 0, 0, 33, 0, - 47, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,154, 1, 0, 0, - 0, 0, 35, 0,104, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, -155, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0, - 42, 0, 0, 0,157, 1, 0, 0, 0, 0, 33, 0, 44, 0, 0, 0,157, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0,158, 1, 0, 0, - 0, 0, 35, 0,105, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,159, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0, -159, 1, 0, 0, 0, 0, 33, 0, 43, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0, -105, 0, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,162, 1, 0, 0, - 0, 0, 35, 0,107, 0, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,163, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, -163, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,164, 1, 0, 0, 0, 0, 33, 0, 51, 0, 0, 0,164, 1, 0, 0, 0, 0, 33, 0, - 51, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,166, 1, 0, 0, - 0, 0, 35, 0,107, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, -167, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0, - 42, 0, 0, 0,169, 1, 0, 0, 0, 0, 33, 0, 48, 0, 0, 0,169, 1, 0, 0, 0, 0, 33, 0, 54, 0, 0, 0,170, 1, 0, 0, - 0, 0, 35, 0,108, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,171, 1, 0, 0, 0, 0, 33, 0, 54, 0, 0, 0, -171, 1, 0, 0, 0, 0, 33, 0, 45, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, -108, 0, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,174, 1, 0, 0, - 0, 0, 35, 0,110, 0, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,175, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, -175, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,176, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,176, 1, 0, 0, 0, 0, 33, 0, - 55, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,178, 1, 0, 0, - 0, 0, 35, 0,110, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, -179, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0, - 44, 0, 0, 0,181, 1, 0, 0, 0, 0, 33, 0, 52, 0, 0, 0,181, 1, 0, 0, 0, 0, 33, 0, 58, 0, 0, 0,182, 1, 0, 0, - 0, 0, 35, 0,111, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,183, 1, 0, 0, 0, 0, 33, 0, 58, 0, 0, 0, -183, 1, 0, 0, 0, 0, 33, 0, 53, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0, -111, 0, 0, 0,185, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,185, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,186, 1, 0, 0, - 0, 0, 35, 0,113, 0, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, -187, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,188, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,188, 1, 0, 0, 0, 0, 33, 0, - 59, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,190, 1, 0, 0, - 0, 0, 35, 0,113, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0, -191, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, - 52, 0, 0, 0,193, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,193, 1, 0, 0, 0, 0, 33, 0, 60, 0, 0, 0,194, 1, 0, 0, - 0, 0, 35, 0,114, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,195, 1, 0, 0, 0, 0, 33, 0, 60, 0, 0, 0, -195, 1, 0, 0, 0, 0, 33, 0, 57, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, -114, 0, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,198, 1, 0, 0, - 0, 0, 35, 0,116, 0, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0, -199, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,200, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0,200, 1, 0, 0, 0, 0, 33, 0, - 61, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,202, 1, 0, 0, - 0, 0, 35, 0,116, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, -203, 1, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0, - 48, 0, 0, 0,205, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,205, 1, 0, 0, 0, 0, 33, 0, 64, 0, 0, 0,206, 1, 0, 0, - 0, 0, 35, 0,117, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0,207, 1, 0, 0, 0, 0, 33, 0, 64, 0, 0, 0, -207, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0, -117, 0, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,210, 1, 0, 0, - 0, 0, 35, 0,119, 0, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, -211, 1, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,212, 1, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0,212, 1, 0, 0, 0, 0, 33, 0, - 65, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,214, 1, 0, 0, - 0, 0, 35, 0,119, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0, -215, 1, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0, - 51, 0, 0, 0,217, 1, 0, 0, 0, 0, 33, 0, 62, 0, 0, 0,217, 1, 0, 0, 0, 0, 33, 0, 68, 0, 0, 0,218, 1, 0, 0, - 0, 0, 35, 0,120, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,219, 1, 0, 0, 0, 0, 33, 0, 68, 0, 0, 0, -219, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0, -120, 0, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,222, 1, 0, 0, - 0, 0, 35, 0,122, 0, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0, -223, 1, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,224, 1, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0,224, 1, 0, 0, 0, 0, 33, 0, - 69, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,226, 1, 0, 0, - 0, 0, 35, 0,122, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, -227, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0, - 46, 0, 0, 0,229, 1, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0,229, 1, 0, 0, 0, 0, 33, 0, 72, 0, 0, 0,230, 1, 0, 0, - 0, 0, 35, 0,123, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,231, 1, 0, 0, 0, 0, 33, 0, 72, 0, 0, 0, -231, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0, -123, 0, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,234, 1, 0, 0, - 0, 0, 35, 0,125, 0, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, -235, 1, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,236, 1, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0,236, 1, 0, 0, 0, 0, 33, 0, - 73, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,238, 1, 0, 0, - 0, 0, 35, 0,125, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, -239, 1, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0, - 54, 0, 0, 0,241, 1, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0,241, 1, 0, 0, 0, 0, 33, 0, 76, 0, 0, 0,242, 1, 0, 0, - 0, 0, 35, 0,126, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,243, 1, 0, 0, 0, 0, 33, 0, 76, 0, 0, 0, -243, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, -126, 0, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,246, 1, 0, 0, - 0, 0, 35, 0,128, 0, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0, -247, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,248, 1, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0,248, 1, 0, 0, 0, 0, 33, 0, - 77, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,250, 1, 0, 0, - 0, 0, 35, 0,128, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, -251, 1, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0, - 58, 0, 0, 0,253, 1, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0,253, 1, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0,254, 1, 0, 0, - 0, 0, 35, 0,129, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,255, 1, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0, -255, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0, -129, 0, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 2, 2, 0, 0, - 0, 0, 35, 0,131, 0, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, - 3, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 4, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, 4, 2, 0, 0, 0, 0, 33, 0, - 81, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 6, 2, 0, 0, - 0, 0, 35, 0,131, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, - 7, 2, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, - 60, 0, 0, 0, 9, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 9, 2, 0, 0, 0, 0, 33, 0, 83, 0, 0, 0, 10, 2, 0, 0, - 0, 0, 35, 0,132, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0, 11, 2, 0, 0, 0, 0, 33, 0, 83, 0, 0, 0, - 11, 2, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, -132, 0, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 14, 2, 0, 0, - 0, 0, 35, 0,134, 0, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, - 15, 2, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0, 16, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, 16, 2, 0, 0, 0, 0, 33, 0, - 82, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0, 18, 2, 0, 0, - 0, 0, 35, 0,134, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, - 19, 2, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, - 64, 0, 0, 0, 21, 2, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0, 21, 2, 0, 0, 0, 0, 33, 0, 84, 0, 0, 0, 22, 2, 0, 0, - 0, 0, 35, 0,135, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0, 23, 2, 0, 0, 0, 0, 33, 0, 84, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, -135, 0, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 26, 2, 0, 0, - 0, 0, 35, 0,137, 0, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, - 27, 2, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0, 28, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, 28, 2, 0, 0, 0, 0, 33, 0, - 85, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0, 30, 2, 0, 0, - 0, 0, 35, 0,137, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, - 31, 2, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, - 68, 0, 0, 0, 33, 2, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0, 33, 2, 0, 0, 0, 0, 33, 0, 86, 0, 0, 0, 34, 2, 0, 0, - 0, 0, 35, 0,138, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 35, 2, 0, 0, 0, 0, 33, 0, 86, 0, 0, 0, - 35, 2, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, -138, 0, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 38, 2, 0, 0, - 0, 0, 35, 0,140, 0, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, - 39, 2, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 40, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, 40, 2, 0, 0, 0, 0, 33, 0, - 87, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 42, 2, 0, 0, - 0, 0, 35, 0,140, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, - 43, 2, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0, - 72, 0, 0, 0, 45, 2, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0, 45, 2, 0, 0, 0, 0, 33, 0, 88, 0, 0, 0, 46, 2, 0, 0, - 0, 0, 35, 0,141, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 47, 2, 0, 0, 0, 0, 33, 0, 88, 0, 0, 0, - 47, 2, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, -141, 0, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 50, 2, 0, 0, - 0, 0, 35, 0,143, 0, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, - 51, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 52, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0, 52, 2, 0, 0, 0, 0, 33, 0, - 89, 0, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 54, 2, 0, 0, - 0, 0, 35, 0,143, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, - 55, 2, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0, - 76, 0, 0, 0, 57, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 57, 2, 0, 0, 0, 0, 33, 0, 90, 0, 0, 0, 58, 2, 0, 0, - 0, 0, 35, 0,144, 0, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 59, 2, 0, 0, 0, 0, 33, 0, 90, 0, 0, 0, - 59, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, -144, 0, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 62, 2, 0, 0, - 0, 0, 35, 0,146, 0, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, - 63, 2, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 64, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0, 64, 2, 0, 0, 0, 0, 33, 0, - 91, 0, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 66, 2, 0, 0, - 0, 0, 35, 0,146, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, - 67, 2, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0, - 62, 0, 0, 0, 69, 2, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0, 69, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 70, 2, 0, 0, - 0, 0, 35, 0,147, 0, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, 71, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, - 71, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, -147, 0, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 74, 2, 0, 0, - 0, 0, 35, 0,149, 0, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, - 75, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 76, 2, 0, 0, 0, 0, 33, 0, 95, 0, 0, 0, 76, 2, 0, 0, 0, 0, 33, 0, - 95, 0, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 78, 2, 0, 0, - 0, 0, 35, 0,149, 0, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, - 79, 2, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0, - 83, 0, 0, 0, 81, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0, 81, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0, 82, 2, 0, 0, - 0, 0, 35, 0,150, 0, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0, 83, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0, - 83, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, -150, 0, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 86, 2, 0, 0, - 0, 0, 35, 0,152, 0, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, - 87, 2, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 88, 2, 0, 0, 0, 0, 33, 0, 97, 0, 0, 0, 88, 2, 0, 0, 0, 0, 33, 0, - 97, 0, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 90, 2, 0, 0, - 0, 0, 35, 0,152, 0, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, - 91, 2, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0, - 84, 0, 0, 0, 93, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 93, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0, 94, 2, 0, 0, - 0, 0, 35, 0,153, 0, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, 95, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0, - 95, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, -153, 0, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, 98, 2, 0, 0, - 0, 0, 35, 0,155, 0, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0, - 99, 2, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0,100, 2, 0, 0, 0, 0, 33, 0, 99, 0, 0, 0,100, 2, 0, 0, 0, 0, 33, 0, - 99, 0, 0, 0,101, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0,102, 2, 0, 0, - 0, 0, 35, 0,155, 0, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0,103, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, -103, 2, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0, - 86, 0, 0, 0,105, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0,105, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,106, 2, 0, 0, - 0, 0, 35, 0,156, 0, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,107, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0, -107, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, -156, 0, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,110, 2, 0, 0, - 0, 0, 35, 0,158, 0, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0, -111, 2, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,112, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,112, 2, 0, 0, 0, 0, 33, 0, -101, 0, 0, 0,113, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,114, 2, 0, 0, - 0, 0, 35, 0,158, 0, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,115, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0, -115, 2, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0, - 88, 0, 0, 0,117, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0,117, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0,118, 2, 0, 0, - 0, 0, 35, 0,159, 0, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,119, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0, -119, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, -159, 0, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,122, 2, 0, 0, - 0, 0, 35, 0,161, 0, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0, -123, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0,124, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,124, 2, 0, 0, 0, 0, 33, 0, - 93, 0, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,126, 2, 0, 0, - 0, 0, 35, 0,161, 0, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,100, 0, 0, 0,127, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0, -127, 2, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,128, 2, 0, 0, 0, 0, 35, 0, - 90, 0, 0, 0,129, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,129, 2, 0, 0, 0, 0, 33, 0, 27, 1, 0, 0,146, 1, 0, 0, - 0, 0, 35, 0,171, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0, -147, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0, -165, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0,148, 1, 0, 0, - 0, 0, 35, 0,164, 0, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0,170, 0, 0, 0, -147, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, - 26, 1, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,151, 1, 0, 0, - 0, 0, 35, 0,150, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0, 31, 1, 0, 0, -151, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0, - 29, 1, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,152, 1, 0, 0, - 0, 0, 35, 0,172, 0, 0, 0,152, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0,152, 1, 0, 0, -153, 1, 0, 0, 0, 0, 35, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, -169, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,154, 1, 0, 0, - 0, 0, 35, 0, 31, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, -153, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, -167, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,157, 1, 0, 0, - 0, 0, 35, 0,156, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0,162, 0, 0, 0, -157, 1, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0, -163, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0,158, 1, 0, 0, - 0, 0, 35, 0,179, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0, -159, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0, -165, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,160, 1, 0, 0, - 0, 0, 35, 0,164, 0, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0, -178, 0, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, - 34, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,163, 1, 0, 0, - 0, 0, 35, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0, -163, 1, 0, 0, 0, 0, 35, 0, 37, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0, - 35, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,164, 1, 0, 0, - 0, 0, 35, 0,176, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,164, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0, -165, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, -177, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,166, 1, 0, 0, - 0, 0, 35, 0, 37, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0, - 37, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0, - 35, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,169, 1, 0, 0, - 0, 0, 35, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0,174, 0, 0, 0, -169, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0, - 34, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0,170, 1, 0, 0, - 0, 0, 35, 0,187, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0, -171, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,171, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, -169, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0,172, 1, 0, 0, - 0, 0, 35, 0,168, 0, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,186, 0, 0, 0, -171, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0, - 38, 1, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,175, 1, 0, 0, - 0, 0, 35, 0,174, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0, -175, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0, - 41, 1, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,176, 1, 0, 0, - 0, 0, 35, 0,188, 0, 0, 0,176, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0,176, 1, 0, 0, -177, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, -185, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0,178, 1, 0, 0, - 0, 0, 35, 0, 43, 1, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, -177, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,179, 1, 0, 0, 0, 0, 35, 0, -183, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,181, 1, 0, 0, - 0, 0, 35, 0,180, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0, -181, 1, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0, -167, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,182, 1, 0, 0, - 0, 0, 35, 0,195, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0, -183, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,183, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0, -185, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0,184, 1, 0, 0, - 0, 0, 35, 0,184, 0, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0,194, 0, 0, 0, -183, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, - 44, 1, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,187, 1, 0, 0, - 0, 0, 35, 0,186, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, -187, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0, - 47, 1, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,188, 1, 0, 0, - 0, 0, 35, 0,196, 0, 0, 0,188, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,188, 1, 0, 0, -189, 1, 0, 0, 0, 0, 35, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,189, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, -193, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,190, 1, 0, 0, - 0, 0, 35, 0, 49, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, -189, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, -191, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0,191, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,191, 1, 0, 0,193, 1, 0, 0, - 0, 0, 35, 0,192, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0,182, 0, 0, 0, -193, 1, 0, 0, 0, 0, 35, 0,190, 0, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, -183, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0,194, 1, 0, 0, - 0, 0, 35, 0,199, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0, -195, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, -193, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0,196, 1, 0, 0, - 0, 0, 35, 0,192, 0, 0, 0,195, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0, -195, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0, - 50, 1, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,199, 1, 0, 0, - 0, 0, 35, 0,198, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0, -199, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0, - 52, 1, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,200, 1, 0, 0, - 0, 0, 35, 0,200, 0, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0,200, 1, 0, 0, -201, 1, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,201, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, -177, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,202, 1, 0, 0, - 0, 0, 35, 0, 55, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, -201, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0, -175, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,205, 1, 0, 0, - 0, 0, 35, 0,204, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0,190, 0, 0, 0, -205, 1, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0, -191, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,206, 1, 0, 0, - 0, 0, 35, 0,207, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,207, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0, -207, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0, -179, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,208, 1, 0, 0, - 0, 0, 35, 0,178, 0, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0, -206, 0, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, - 58, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,210, 1, 0, 0,211, 1, 0, 0, - 0, 0, 35, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0, -211, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, - 59, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,204, 0, 0, 0,212, 1, 0, 0, - 0, 0, 35, 0,204, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,212, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0, -213, 1, 0, 0, 0, 0, 35, 0,213, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, -205, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,205, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,214, 1, 0, 0, - 0, 0, 35, 0, 61, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, - 61, 1, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,203, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0, - 59, 1, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,216, 1, 0, 0,217, 1, 0, 0, - 0, 0, 35, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0,202, 0, 0, 0, -217, 1, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0, - 58, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,218, 1, 0, 0, - 0, 0, 35, 0,215, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0,215, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0, -219, 1, 0, 0, 0, 0, 35, 0,219, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0, -173, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0,220, 1, 0, 0, - 0, 0, 35, 0,172, 0, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,172, 0, 0, 0, -214, 0, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, - 64, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,222, 1, 0, 0,223, 1, 0, 0, - 0, 0, 35, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, -223, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, - 65, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,224, 1, 0, 0, - 0, 0, 35, 0,212, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0, -225, 1, 0, 0, 0, 0, 35, 0,225, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, -213, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,213, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0,226, 1, 0, 0, - 0, 0, 35, 0, 67, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, - 67, 1, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0, - 65, 1, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,228, 1, 0, 0,229, 1, 0, 0, - 0, 0, 35, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,210, 0, 0, 0, -229, 1, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0, - 64, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0,230, 1, 0, 0, - 0, 0, 35, 0,223, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0, -231, 1, 0, 0, 0, 0, 35, 0,231, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0, -189, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0,232, 1, 0, 0, - 0, 0, 35, 0,188, 0, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,188, 0, 0, 0, -222, 0, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, - 70, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,233, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,234, 1, 0, 0,235, 1, 0, 0, - 0, 0, 35, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, -235, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, - 71, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,236, 1, 0, 0, - 0, 0, 35, 0,220, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,236, 1, 0, 0, -237, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, -221, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,221, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0,238, 1, 0, 0, - 0, 0, 35, 0, 73, 1, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, - 73, 1, 0, 0, 0, 0, 35, 0,219, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, - 71, 1, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,240, 1, 0, 0,241, 1, 0, 0, - 0, 0, 35, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0, -241, 1, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0, - 70, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0,242, 1, 0, 0, - 0, 0, 35, 0,231, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0, -243, 1, 0, 0, 0, 0, 35, 0,243, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, -197, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0,244, 1, 0, 0, - 0, 0, 35, 0,196, 0, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,196, 0, 0, 0, -230, 0, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, - 76, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,245, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,246, 1, 0, 0,247, 1, 0, 0, - 0, 0, 35, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, -247, 1, 0, 0, 0, 0, 35, 0, 79, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0, - 77, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,248, 1, 0, 0, - 0, 0, 35, 0,228, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,248, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0, -249, 1, 0, 0, 0, 0, 35, 0,249, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, -229, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0,250, 1, 0, 0, - 0, 0, 35, 0, 79, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, - 79, 1, 0, 0, 0, 0, 35, 0,227, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,227, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, - 77, 1, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,251, 1, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,252, 1, 0, 0,253, 1, 0, 0, - 0, 0, 35, 0,251, 1, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,226, 0, 0, 0, -253, 1, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0, - 76, 1, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0,254, 1, 0, 0, - 0, 0, 35, 0,239, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0,254, 1, 0, 0, -255, 1, 0, 0, 0, 0, 35, 0,255, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,254, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0, -201, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 35, 0,200, 0, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,238, 0, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,200, 0, 0, 0, -238, 0, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, - 82, 1, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0, 1, 2, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, 2, 2, 0, 0, 3, 2, 0, 0, - 0, 0, 35, 0, 1, 2, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0, - 3, 2, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 84, 1, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, - 83, 1, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 4, 2, 0, 0, - 0, 0, 35, 0,236, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 4, 2, 0, 0, 0, 0, 35, 0, 4, 2, 0, 0, - 5, 2, 0, 0, 0, 0, 35, 0, 5, 2, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 4, 2, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, -237, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 84, 1, 0, 0, 6, 2, 0, 0, - 0, 0, 35, 0, 85, 1, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, - 85, 1, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, - 83, 1, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0, 7, 2, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, 8, 2, 0, 0, 9, 2, 0, 0, - 0, 0, 35, 0, 7, 2, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,234, 0, 0, 0, - 9, 2, 0, 0, 0, 0, 35, 0,198, 0, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, - 82, 1, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 10, 2, 0, 0, - 0, 0, 35, 0,245, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 10, 2, 0, 0, - 11, 2, 0, 0, 0, 0, 35, 0, 10, 2, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, 11, 2, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, -209, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, 12, 2, 0, 0, - 0, 0, 35, 0,208, 0, 0, 0, 11, 2, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, - 11, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0, - 86, 1, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 13, 2, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0, 13, 2, 0, 0, 15, 2, 0, 0, - 0, 0, 35, 0, 14, 2, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0, - 15, 2, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0, - 89, 1, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,212, 0, 0, 0, 16, 2, 0, 0, - 0, 0, 35, 0,242, 0, 0, 0, 16, 2, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 16, 2, 0, 0, - 17, 2, 0, 0, 0, 0, 35, 0, 16, 2, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 17, 2, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, -213, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, 18, 2, 0, 0, - 0, 0, 35, 0, 91, 1, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, - 17, 2, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0, -211, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 19, 2, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, 19, 2, 0, 0, 21, 2, 0, 0, - 0, 0, 35, 0, 20, 2, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,206, 0, 0, 0, - 21, 2, 0, 0, 0, 0, 35, 0,210, 0, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,207, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, -207, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 22, 2, 0, 0, - 0, 0, 35, 0,247, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 22, 2, 0, 0, - 23, 2, 0, 0, 0, 0, 35, 0, 22, 2, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, 23, 2, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, -217, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 24, 2, 0, 0, - 0, 0, 35, 0,216, 0, 0, 0, 23, 2, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0, - 92, 1, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 25, 2, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0, 25, 2, 0, 0, 27, 2, 0, 0, - 0, 0, 35, 0, 26, 2, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0, - 27, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0, - 95, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,220, 0, 0, 0, 28, 2, 0, 0, - 0, 0, 35, 0,248, 0, 0, 0, 28, 2, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 28, 2, 0, 0, - 29, 2, 0, 0, 0, 0, 35, 0, 28, 2, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 29, 2, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, -221, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, 30, 2, 0, 0, - 0, 0, 35, 0, 97, 1, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, - 29, 2, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0, -219, 0, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, 31, 2, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, 31, 2, 0, 0, 33, 2, 0, 0, - 0, 0, 35, 0, 32, 2, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,214, 0, 0, 0, - 33, 2, 0, 0, 0, 0, 35, 0,218, 0, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, -215, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0, 34, 2, 0, 0, - 0, 0, 35, 0,251, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 34, 2, 0, 0, - 35, 2, 0, 0, 0, 0, 35, 0, 34, 2, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, 35, 2, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, -225, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0, 36, 2, 0, 0, - 0, 0, 35, 0,224, 0, 0, 0, 35, 2, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, - 35, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0, - 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, 37, 2, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0, 37, 2, 0, 0, 39, 2, 0, 0, - 0, 0, 35, 0, 38, 2, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,103, 1, 0, 0, - 39, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0, -101, 1, 0, 0,102, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,228, 0, 0, 0, 40, 2, 0, 0, - 0, 0, 35, 0,252, 0, 0, 0, 40, 2, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 40, 2, 0, 0, - 41, 2, 0, 0, 0, 0, 35, 0, 40, 2, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 41, 2, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, -229, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,229, 0, 0, 0, 42, 2, 0, 0, - 0, 0, 35, 0,103, 1, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, - 41, 2, 0, 0, 0, 0, 35, 0,227, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0, -227, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 43, 2, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0, 43, 2, 0, 0, 45, 2, 0, 0, - 0, 0, 35, 0, 44, 2, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,222, 0, 0, 0, - 45, 2, 0, 0, 0, 0, 35, 0,226, 0, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,223, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0, -223, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0, 46, 2, 0, 0, - 0, 0, 35, 0,255, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0, 46, 2, 0, 0, - 47, 2, 0, 0, 0, 0, 35, 0, 46, 2, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, 47, 2, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, -233, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0, 48, 2, 0, 0, - 0, 0, 35, 0,232, 0, 0, 0, 47, 2, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, - 47, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0, -104, 1, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 49, 2, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0, 49, 2, 0, 0, 51, 2, 0, 0, - 0, 0, 35, 0, 50, 2, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0, - 51, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,108, 1, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0, -107, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 52, 2, 0, 0, - 0, 0, 35, 0, 0, 1, 0, 0, 52, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 52, 2, 0, 0, - 53, 2, 0, 0, 0, 0, 35, 0, 52, 2, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 53, 2, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, -237, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,108, 1, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 54, 2, 0, 0, - 0, 0, 35, 0,109, 1, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0, - 53, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0, -235, 0, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, 55, 2, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0, 55, 2, 0, 0, 57, 2, 0, 0, - 0, 0, 35, 0, 56, 2, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,230, 0, 0, 0, - 57, 2, 0, 0, 0, 0, 35, 0,234, 0, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,231, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0, -231, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0, 58, 2, 0, 0, - 0, 0, 35, 0, 3, 1, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0, 58, 2, 0, 0, - 59, 2, 0, 0, 0, 0, 35, 0, 58, 2, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, 59, 2, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, -241, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0, 60, 2, 0, 0, - 0, 0, 35, 0,240, 0, 0, 0, 59, 2, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, - 59, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0, -110, 1, 0, 0,113, 1, 0, 0, 0, 0, 35, 0, 61, 2, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0, 61, 2, 0, 0, 63, 2, 0, 0, - 0, 0, 35, 0, 62, 2, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,115, 1, 0, 0, - 63, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0, -112, 1, 0, 0,114, 1, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, 64, 2, 0, 0, - 0, 0, 35, 0, 4, 1, 0, 0, 64, 2, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 64, 2, 0, 0, - 65, 2, 0, 0, 0, 0, 35, 0, 64, 2, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 65, 2, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, -205, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,205, 0, 0, 0, 66, 2, 0, 0, - 0, 0, 35, 0,115, 1, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, - 65, 2, 0, 0, 0, 0, 35, 0,203, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0, -203, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, 67, 2, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0, 67, 2, 0, 0, 69, 2, 0, 0, - 0, 0, 35, 0, 68, 2, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,202, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,238, 0, 0, 0, - 69, 2, 0, 0, 0, 0, 35, 0,202, 0, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,239, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0, -239, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,117, 1, 0, 0, 70, 2, 0, 0, - 0, 0, 35, 0, 11, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 70, 2, 0, 0, - 71, 2, 0, 0, 0, 0, 35, 0, 71, 2, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, 70, 2, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, -243, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 72, 2, 0, 0, - 0, 0, 35, 0,242, 0, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0,242, 0, 0, 0, - 10, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, -118, 1, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0, 73, 2, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0, 74, 2, 0, 0, 75, 2, 0, 0, - 0, 0, 35, 0, 73, 2, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,117, 1, 0, 0, - 75, 2, 0, 0, 0, 0, 35, 0,121, 1, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,120, 1, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0, -119, 1, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,119, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0, 76, 2, 0, 0, - 0, 0, 35, 0, 8, 1, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 76, 2, 0, 0, 0, 0, 35, 0, 76, 2, 0, 0, - 77, 2, 0, 0, 0, 0, 35, 0, 77, 2, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 76, 2, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, - 9, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0,120, 1, 0, 0, 78, 2, 0, 0, - 0, 0, 35, 0,121, 1, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, -121, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0, -119, 1, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 79, 2, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0, 80, 2, 0, 0, 81, 2, 0, 0, - 0, 0, 35, 0, 79, 2, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0, - 81, 2, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0, -118, 1, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,123, 1, 0, 0, 82, 2, 0, 0, - 0, 0, 35, 0, 15, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 82, 2, 0, 0, - 83, 2, 0, 0, 0, 0, 35, 0, 83, 2, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, 82, 2, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, -249, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 84, 2, 0, 0, - 0, 0, 35, 0,248, 0, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0,248, 0, 0, 0, - 14, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,122, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, -124, 1, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0, 85, 2, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0, 86, 2, 0, 0, 87, 2, 0, 0, - 0, 0, 35, 0, 85, 2, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,123, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0,123, 1, 0, 0, - 87, 2, 0, 0, 0, 0, 35, 0,127, 1, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,126, 1, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0, -125, 1, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 88, 2, 0, 0, - 0, 0, 35, 0, 12, 1, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, 88, 2, 0, 0, 0, 0, 35, 0, 88, 2, 0, 0, - 89, 2, 0, 0, 0, 0, 35, 0, 89, 2, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 88, 2, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, - 13, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0,126, 1, 0, 0, 90, 2, 0, 0, - 0, 0, 35, 0,127, 1, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, -127, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0, -125, 1, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 91, 2, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0, 92, 2, 0, 0, 93, 2, 0, 0, - 0, 0, 35, 0, 91, 2, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, - 93, 2, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0, -124, 1, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,129, 1, 0, 0, 94, 2, 0, 0, - 0, 0, 35, 0, 19, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 94, 2, 0, 0, - 95, 2, 0, 0, 0, 0, 35, 0, 95, 2, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, 94, 2, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, -253, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, 96, 2, 0, 0, - 0, 0, 35, 0,252, 0, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0,252, 0, 0, 0, - 18, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,128, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, -130, 1, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0, 97, 2, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0, 98, 2, 0, 0, 99, 2, 0, 0, - 0, 0, 35, 0, 97, 2, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,129, 1, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,129, 1, 0, 0, - 99, 2, 0, 0, 0, 0, 35, 0,133, 1, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,132, 1, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0, -131, 1, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0,100, 2, 0, 0, - 0, 0, 35, 0, 16, 1, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,100, 2, 0, 0, 0, 0, 35, 0,100, 2, 0, 0, -101, 2, 0, 0, 0, 0, 35, 0,101, 2, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,100, 2, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, - 17, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,102, 2, 0, 0, - 0, 0, 35, 0,133, 1, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0, -133, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,103, 2, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,131, 1, 0, 0, 0, 0, 35, 0, -131, 1, 0, 0,103, 2, 0, 0, 0, 0, 35, 0,103, 2, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,104, 2, 0, 0,105, 2, 0, 0, - 0, 0, 35, 0,103, 2, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, -105, 2, 0, 0, 0, 0, 35, 0,250, 0, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0, -130, 1, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,106, 2, 0, 0, - 0, 0, 35, 0, 23, 1, 0, 0,135, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,106, 2, 0, 0, 0, 0, 35, 0,106, 2, 0, 0, -107, 2, 0, 0, 0, 0, 35, 0,107, 2, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,106, 2, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, - 1, 1, 0, 0,134, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,108, 2, 0, 0, - 0, 0, 35, 0, 0, 1, 0, 0,107, 2, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0,107, 2, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0, - 22, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,136, 1, 0, 0, 0, 0, 35, 0, -136, 1, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,109, 2, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,110, 2, 0, 0,111, 2, 0, 0, - 0, 0, 35, 0,109, 2, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0, -111, 2, 0, 0, 0, 0, 35, 0,139, 1, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,110, 2, 0, 0, 0, 0, 35, 0, -137, 1, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,112, 2, 0, 0, - 0, 0, 35, 0, 20, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0,112, 2, 0, 0, 0, 0, 35, 0,112, 2, 0, 0, -113, 2, 0, 0, 0, 0, 35, 0,113, 2, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,112, 2, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, - 21, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,114, 2, 0, 0, - 0, 0, 35, 0,139, 1, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0, -139, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,115, 2, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,137, 1, 0, 0, 0, 0, 35, 0, -137, 1, 0, 0,115, 2, 0, 0, 0, 0, 35, 0,115, 2, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,116, 2, 0, 0,117, 2, 0, 0, - 0, 0, 35, 0,115, 2, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, -117, 2, 0, 0, 0, 0, 35, 0,254, 0, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0, -136, 1, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,118, 2, 0, 0, - 0, 0, 35, 0, 7, 1, 0, 0,141, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,118, 2, 0, 0, 0, 0, 35, 0,118, 2, 0, 0, -119, 2, 0, 0, 0, 0, 35, 0,119, 2, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,118, 2, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, - 5, 1, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,120, 2, 0, 0, - 0, 0, 35, 0, 4, 1, 0, 0,119, 2, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0,119, 2, 0, 0, 0, 0, 35, 0, 4, 1, 0, 0, - 6, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, -142, 1, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,121, 2, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,122, 2, 0, 0,123, 2, 0, 0, - 0, 0, 35, 0,121, 2, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0, -123, 2, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,122, 2, 0, 0, 0, 0, 35, 0, -143, 1, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0,124, 2, 0, 0, - 0, 0, 35, 0, 8, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0,124, 2, 0, 0, 0, 0, 35, 0,124, 2, 0, 0, -125, 2, 0, 0, 0, 0, 35, 0,125, 2, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,124, 2, 0, 0,126, 2, 0, 0, 0, 0, 35, 0, - 25, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,126, 2, 0, 0, - 0, 0, 35, 0,144, 1, 0, 0,125, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0,125, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, -144, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,127, 2, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,143, 1, 0, 0, 0, 0, 35, 0, -143, 1, 0, 0,127, 2, 0, 0, 0, 0, 35, 0,127, 2, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,128, 2, 0, 0,129, 2, 0, 0, - 0, 0, 35, 0,127, 2, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0, -129, 2, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,128, 2, 0, 0, 0, 0, 35, 0, -142, 1, 0, 0,128, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0, -192, 16,185, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 18,185, 3, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,118,185, 3, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 82,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0,100, 0, 0, 72, 18,185, 3, 54, 0, 0, 0, 0, 5, 0, 0, 27, 1, 0, 0,102, 0, 0, 0,146, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0,171, 0, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, - 27, 1, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,171, 0, 0, 0,146, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,147, 1, 0, 0, 46, 0, 0, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0,148, 1, 0, 0, -147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 0, 0, 0,147, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -148, 1, 0, 0,146, 1, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 1, 0, 0, 12, 0, 0, 0,165, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,165, 0, 0, 0,148, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 0, 0, 0, - 26, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 1, 0, 0,165, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,147, 1, 0, 0, 43, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 0, 0, 0,170, 0, 0, 0, -147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 0, 0, 0,147, 1, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -170, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 1, 0, 0,102, 0, 0, 0,149, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,149, 1, 0, 0, 28, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0, - 26, 1, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 1, 0, 0,149, 1, 0, 0,103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,150, 1, 0, 0,103, 0, 0, 0,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 1, 0, 0,151, 1, 0, 0, -150, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 0, 0, 0,150, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -151, 1, 0, 0,149, 1, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 1, 0, 0, 14, 0, 0, 0, 31, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 31, 1, 0, 0,151, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 0, 0, 0, - 27, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 1, 0, 0, 31, 1, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,150, 1, 0, 0,104, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 1, 0, 0, 29, 1, 0, 0, -150, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 0, 0, 0,150, 1, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 29, 1, 0, 0, 30, 1, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, 45, 0, 0, 0,152, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,152, 1, 0, 0,172, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, -168, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,172, 0, 0, 0,152, 1, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,153, 1, 0, 0, 47, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 1, 0, 0,154, 1, 0, 0, -153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 0, 0, 0,153, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -154, 1, 0, 0,152, 1, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,169, 0, 0, 0, 13, 0, 0, 0, 30, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 30, 1, 0, 0,154, 1, 0, 0,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 0, 0, 0, -169, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 30, 1, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,153, 1, 0, 0,104, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 1, 0, 0,173, 0, 0, 0, -153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 0, 0, 0,153, 1, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -173, 0, 0, 0, 31, 1, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 0, 0, 0, 44, 0, 0, 0,155, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,155, 1, 0, 0, 29, 1, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 0, 0, 0, -167, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 1, 0, 0,155, 1, 0, 0,103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,156, 1, 0, 0,103, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 1, 0, 0,157, 1, 0, 0, -156, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 0, 0, 0,156, 1, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -157, 1, 0, 0,155, 1, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,166, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,162, 0, 0, 0,157, 1, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 0, 0, 0, -166, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 1, 0, 0,162, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,156, 1, 0, 0, 42, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,163, 0, 0, 0, 28, 1, 0, 0, -156, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 0, 0, 0,156, 1, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 28, 1, 0, 0,163, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 1, 0, 0,105, 0, 0, 0, 33, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 33, 1, 0, 0,179, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 0, 0, 0, -158, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,179, 0, 0, 0, 33, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,158, 1, 0, 0, 50, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 1, 0, 0,160, 1, 0, 0, -158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -160, 1, 0, 0,159, 1, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 0, 0, 0, 12, 0, 0, 0, 32, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 32, 1, 0, 0,160, 1, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 0, 0, 0, -165, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 1, 0, 0, 32, 1, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,164, 0, 0, 0, 43, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 1, 0, 0,178, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0,164, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -178, 0, 0, 0,159, 1, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 1, 0, 0,105, 0, 0, 0, 32, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 32, 1, 0, 0, 34, 1, 0, 0,161, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 0, 0, 0, -161, 1, 0, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 1, 0, 0, 32, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,161, 1, 0, 0,106, 0, 0, 0,162, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 1, 0, 0,163, 1, 0, 0, -161, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -163, 1, 0, 0,162, 1, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 1, 0, 0, 16, 0, 0, 0, 33, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 33, 1, 0, 0,163, 1, 0, 0, 37, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, - 37, 1, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,163, 1, 0, 0, 33, 1, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 36, 1, 0, 0,107, 0, 0, 0,162, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 1, 0, 0, 35, 1, 0, 0, - 36, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 0, 0, 0, 36, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 35, 1, 0, 0,162, 1, 0, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 1, 0, 0, 49, 0, 0, 0,176, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0,180, 0, 0, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, -164, 1, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 0, 0, 0,176, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,164, 1, 0, 0, 51, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,166, 1, 0, 0, -164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -166, 1, 0, 0,165, 1, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 1, 0, 0, 15, 0, 0, 0,177, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,177, 0, 0, 0,166, 1, 0, 0, 36, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, - 36, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,166, 1, 0, 0,177, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 37, 1, 0, 0,107, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,181, 0, 0, 0, - 37, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 0, 0, 0, 37, 1, 0, 0,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -181, 0, 0, 0,165, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 1, 0, 0, 48, 0, 0, 0,175, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0, 35, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 0, 0, 0, -167, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 1, 0, 0,175, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,167, 1, 0, 0,106, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 1, 0, 0,169, 1, 0, 0, -167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 0, 0, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -169, 1, 0, 0,168, 1, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,174, 0, 0, 0,169, 1, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 0, 0, 0, -162, 0, 0, 0,169, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,169, 1, 0, 0,174, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,163, 0, 0, 0, 42, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 1, 0, 0, 34, 1, 0, 0, -163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0,163, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 34, 1, 0, 0,168, 1, 0, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 1, 0, 0,108, 0, 0, 0,170, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,170, 1, 0, 0,187, 0, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 0, 0, 0, - 39, 1, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,187, 0, 0, 0,170, 1, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,171, 1, 0, 0, 54, 0, 0, 0,170, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,170, 1, 0, 0,172, 1, 0, 0, -171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 0, 0, 0,171, 1, 0, 0,172, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -172, 1, 0, 0,170, 1, 0, 0,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0, 13, 0, 0, 0,169, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,169, 0, 0, 0,172, 1, 0, 0, 38, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 0, 0, 0, - 38, 1, 0, 0,172, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,172, 1, 0, 0,169, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,171, 1, 0, 0, 45, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0,186, 0, 0, 0, -171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 0, 0, 0,171, 1, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -186, 0, 0, 0,168, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0,108, 0, 0, 0,173, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,173, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 0, 0, 0, - 38, 1, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 1, 0, 0,173, 1, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,174, 1, 0, 0,109, 0, 0, 0,173, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,173, 1, 0, 0,175, 1, 0, 0, -174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 0, 0, 0,174, 1, 0, 0,175, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -175, 1, 0, 0,173, 1, 0, 0,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 1, 0, 0, 18, 0, 0, 0, 43, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0,175, 1, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 0, 0, 0, - 39, 1, 0, 0,175, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,175, 1, 0, 0, 43, 1, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,174, 1, 0, 0,110, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 1, 0, 0, 41, 1, 0, 0, -174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,174, 1, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 41, 1, 0, 0, 42, 1, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0, 53, 0, 0, 0,176, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,176, 1, 0, 0,188, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, -184, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,188, 0, 0, 0,176, 1, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,177, 1, 0, 0, 55, 0, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,176, 1, 0, 0,178, 1, 0, 0, -177, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 0, 0, 0,177, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -178, 1, 0, 0,176, 1, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0, 17, 0, 0, 0, 42, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 42, 1, 0, 0,178, 1, 0, 0,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 0, 0, 0, -185, 0, 0, 0,178, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,178, 1, 0, 0, 42, 1, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,177, 1, 0, 0,110, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0,189, 0, 0, 0, -177, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 0, 0, 0,177, 1, 0, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -189, 0, 0, 0, 43, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0, 52, 0, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,179, 1, 0, 0, 41, 1, 0, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 0, 0, 0, -183, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 1, 0, 0,179, 1, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,180, 1, 0, 0,109, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,179, 1, 0, 0,181, 1, 0, 0, -180, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 0, 0, 0,180, 1, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -181, 1, 0, 0,179, 1, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,166, 0, 0, 0,181, 1, 0, 0,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 0, 0, 0, -182, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 1, 0, 0,166, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,180, 1, 0, 0, 44, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 0, 0, 0, 40, 1, 0, 0, -180, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,180, 1, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 40, 1, 0, 0,167, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0,111, 0, 0, 0,182, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,182, 1, 0, 0,195, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 0, 0, 0, - 45, 1, 0, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0,182, 1, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,183, 1, 0, 0, 58, 0, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 1, 0, 0,184, 1, 0, 0, -183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 0, 0, 0,183, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -184, 1, 0, 0,182, 1, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0, 17, 0, 0, 0,185, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0,184, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, - 44, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 1, 0, 0,185, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,183, 1, 0, 0, 53, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0,194, 0, 0, 0, -183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 0, 0, 0,183, 1, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -194, 0, 0, 0,184, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0,111, 0, 0, 0,185, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,185, 1, 0, 0, 46, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 0, 0, 0, - 44, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 1, 0, 0,185, 1, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,186, 1, 0, 0,112, 0, 0, 0,185, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,185, 1, 0, 0,187, 1, 0, 0, -186, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,186, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -187, 1, 0, 0,185, 1, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0, 20, 0, 0, 0, 49, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0,187, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, - 45, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,187, 1, 0, 0, 49, 1, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,186, 1, 0, 0,113, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 1, 0, 0, 47, 1, 0, 0, -186, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 0, 0, 0,186, 1, 0, 0, 47, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 47, 1, 0, 0, 48, 1, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0, 57, 0, 0, 0,188, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,188, 1, 0, 0,196, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, -192, 0, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,196, 0, 0, 0,188, 1, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,189, 1, 0, 0, 59, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,188, 1, 0, 0,190, 1, 0, 0, -189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,189, 1, 0, 0,190, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -190, 1, 0, 0,188, 1, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,193, 0, 0, 0, 19, 0, 0, 0, 48, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 48, 1, 0, 0,190, 1, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0, -193, 0, 0, 0,190, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,190, 1, 0, 0, 48, 1, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,189, 1, 0, 0,113, 0, 0, 0, 49, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0,197, 0, 0, 0, -189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0,189, 1, 0, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -197, 0, 0, 0, 49, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, 56, 0, 0, 0,191, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,191, 1, 0, 0, 47, 1, 0, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 0, 0, 0, -191, 0, 0, 0, 47, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 1, 0, 0,191, 1, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,192, 1, 0, 0,112, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 1, 0, 0,193, 1, 0, 0, -192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 0, 0, 0,192, 1, 0, 0,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -193, 1, 0, 0,191, 1, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,190, 0, 0, 0, 0, 0, 0, 0,182, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 0, 0,193, 1, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 56, 0, 0, 0, -190, 0, 0, 0,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,193, 1, 0, 0,182, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,192, 1, 0, 0, 52, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0, 46, 1, 0, 0, -192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 0, 0, 0,192, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 46, 1, 0, 0,183, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 1, 0, 0,114, 0, 0, 0,194, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,194, 1, 0, 0,199, 0, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 0, 0, 0, - 51, 1, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0,194, 1, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,195, 1, 0, 0, 60, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,194, 1, 0, 0,196, 1, 0, 0, -195, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0,195, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -196, 1, 0, 0,194, 1, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0, 19, 0, 0, 0,193, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,193, 0, 0, 0,196, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 0, 0, 0, - 50, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,196, 1, 0, 0,193, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,195, 1, 0, 0, 57, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0,198, 0, 0, 0, -195, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0,195, 1, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -198, 0, 0, 0,192, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0,114, 0, 0, 0,197, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,197, 1, 0, 0, 53, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 0, 0, 0, - 50, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 1, 0, 0,197, 1, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,198, 1, 0, 0,115, 0, 0, 0,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 1, 0, 0,199, 1, 0, 0, -198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 0, 0, 0,198, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -199, 1, 0, 0,197, 1, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 1, 0, 0, 21, 0, 0, 0, 55, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,199, 1, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 0, 0, 0, - 51, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 1, 0, 0, 55, 1, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,198, 1, 0, 0,116, 0, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 1, 0, 0, 52, 1, 0, 0, -198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,198, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 52, 1, 0, 0, 54, 1, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0, 49, 0, 0, 0,200, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,200, 1, 0, 0,200, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0, -176, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,200, 0, 0, 0,200, 1, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,201, 1, 0, 0, 61, 0, 0, 0,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,200, 1, 0, 0,202, 1, 0, 0, -201, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 0, 0, 0,201, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -202, 1, 0, 0,200, 1, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,177, 0, 0, 0, 15, 0, 0, 0, 54, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 54, 1, 0, 0,202, 1, 0, 0,177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0, -177, 0, 0, 0,202, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,202, 1, 0, 0, 54, 1, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,201, 1, 0, 0,116, 0, 0, 0, 55, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,201, 0, 0, 0, -201, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 0, 0, 0,201, 1, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -201, 0, 0, 0, 55, 1, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0, 48, 0, 0, 0,203, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,203, 1, 0, 0, 52, 1, 0, 0,175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 0, 0, 0, -175, 0, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 1, 0, 0,203, 1, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,204, 1, 0, 0,115, 0, 0, 0,203, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,203, 1, 0, 0,205, 1, 0, 0, -204, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 56, 0, 0, 0,204, 1, 0, 0,205, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -205, 1, 0, 0,203, 1, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,174, 0, 0, 0, 0, 0, 0, 0,190, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,190, 0, 0, 0,205, 1, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 0, 0, 0, -174, 0, 0, 0,205, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,205, 1, 0, 0,190, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,204, 1, 0, 0, 56, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, 53, 1, 0, 0, -204, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,204, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 53, 1, 0, 0,191, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,206, 1, 0, 0,117, 0, 0, 0, 57, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,207, 0, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 0, 0, 0, -206, 1, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 57, 1, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,206, 1, 0, 0, 64, 0, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,208, 1, 0, 0, -206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,117, 0, 0, 0,206, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -208, 1, 0, 0,207, 1, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,179, 0, 0, 0, 16, 0, 0, 0, 56, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 56, 1, 0, 0,208, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 0, 0, 0, -179, 0, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,208, 1, 0, 0, 56, 1, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,178, 0, 0, 0, 50, 0, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,206, 0, 0, 0, -178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0,178, 0, 0, 0,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -206, 0, 0, 0,207, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,209, 1, 0, 0,117, 0, 0, 0, 56, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 56, 1, 0, 0, 58, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 0, 0, 0, -209, 1, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 1, 0, 0, 56, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,209, 1, 0, 0,118, 0, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 1, 0, 0,211, 1, 0, 0, -209, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,117, 0, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -211, 1, 0, 0,210, 1, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0, 23, 0, 0, 0, 57, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,211, 1, 0, 0, 61, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0, - 61, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,211, 1, 0, 0, 57, 1, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 60, 1, 0, 0,119, 0, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 1, 0, 0, 59, 1, 0, 0, - 60, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 0, 0, 0, 60, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 59, 1, 0, 0,210, 1, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,212, 1, 0, 0, 63, 0, 0, 0,204, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,204, 0, 0, 0,208, 0, 0, 0,212, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 0, 0, 0, -212, 1, 0, 0,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,204, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,212, 1, 0, 0, 65, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,214, 1, 0, 0, -212, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 0, 0, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -214, 1, 0, 0,213, 1, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 1, 0, 0, 22, 0, 0, 0,205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,205, 0, 0, 0,214, 1, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0, - 60, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,214, 1, 0, 0,205, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 61, 1, 0, 0,119, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,209, 0, 0, 0, - 61, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 0, 0, 0, 61, 1, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -209, 0, 0, 0,213, 1, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 1, 0, 0, 62, 0, 0, 0,203, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,203, 0, 0, 0, 59, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 0, 0, 0, -215, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0,203, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,215, 1, 0, 0,118, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 1, 0, 0,217, 1, 0, 0, -215, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 0, 0, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -217, 1, 0, 0,216, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 0, 0, 0, 5, 0, 0, 0,202, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0,217, 1, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, -180, 0, 0, 0,217, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,217, 1, 0, 0,202, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,181, 0, 0, 0, 51, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 1, 0, 0, 58, 1, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 0, 0, 0,181, 0, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 58, 1, 0, 0,216, 1, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,218, 1, 0, 0,120, 0, 0, 0, 63, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0,215, 0, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 0, 0, 0, -218, 1, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 0, 0, 0, 63, 1, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,218, 1, 0, 0, 68, 0, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 1, 0, 0,220, 1, 0, 0, -218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 0, 0, 0,218, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -220, 1, 0, 0,219, 1, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,173, 0, 0, 0, 14, 0, 0, 0, 62, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 62, 1, 0, 0,220, 1, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 0, 0, 0, -173, 0, 0, 0,220, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,220, 1, 0, 0, 62, 1, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,172, 0, 0, 0, 47, 0, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 1, 0, 0,214, 0, 0, 0, -172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,172, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -214, 0, 0, 0,219, 1, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,221, 1, 0, 0,120, 0, 0, 0, 62, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 62, 1, 0, 0, 64, 1, 0, 0,221, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0, -221, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 1, 0, 0, 62, 1, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,221, 1, 0, 0,121, 0, 0, 0,222, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,222, 1, 0, 0,223, 1, 0, 0, -221, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 0, 0, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -223, 1, 0, 0,222, 1, 0, 0,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 1, 0, 0, 25, 0, 0, 0, 63, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0,223, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 0, 0, 0, - 67, 1, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,223, 1, 0, 0, 63, 1, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 66, 1, 0, 0,122, 0, 0, 0,222, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,222, 1, 0, 0, 65, 1, 0, 0, - 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 0, 0, 0, 66, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 65, 1, 0, 0,222, 1, 0, 0,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, 67, 0, 0, 0,212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,212, 0, 0, 0,216, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 69, 0, 0, 0, -224, 1, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 0, 0, 0,212, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,224, 1, 0, 0, 69, 0, 0, 0,225, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,225, 1, 0, 0,226, 1, 0, 0, -224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 0, 0, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -226, 1, 0, 0,225, 1, 0, 0,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 1, 0, 0, 24, 0, 0, 0,213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0,226, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 0, 0, 0, - 66, 1, 0, 0,226, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,226, 1, 0, 0,213, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 67, 1, 0, 0,122, 0, 0, 0,225, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,225, 1, 0, 0,217, 0, 0, 0, - 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 0, 0, 0, 67, 1, 0, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -217, 0, 0, 0,225, 1, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 1, 0, 0, 66, 0, 0, 0,211, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0, 65, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0, -227, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 1, 0, 0,211, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,227, 1, 0, 0,121, 0, 0, 0,228, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 1, 0, 0,229, 1, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 0, 0, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -229, 1, 0, 0,228, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,170, 0, 0, 0, 1, 0, 0, 0,210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,210, 0, 0, 0,229, 1, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 0, 0, 0, -170, 0, 0, 0,229, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,229, 1, 0, 0,210, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,171, 0, 0, 0, 46, 0, 0, 0,228, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 1, 0, 0, 64, 1, 0, 0, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0,171, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 64, 1, 0, 0,228, 1, 0, 0,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,230, 1, 0, 0,123, 0, 0, 0, 69, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 69, 1, 0, 0,223, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 0, 0, 0, -230, 1, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0, 69, 1, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,230, 1, 0, 0, 72, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 1, 0, 0,232, 1, 0, 0, -230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -232, 1, 0, 0,231, 1, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,189, 0, 0, 0, 18, 0, 0, 0, 68, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 68, 1, 0, 0,232, 1, 0, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 0, 0, 0, -189, 0, 0, 0,232, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,232, 1, 0, 0, 68, 1, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,188, 0, 0, 0, 55, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 1, 0, 0,222, 0, 0, 0, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0,188, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -222, 0, 0, 0,231, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,233, 1, 0, 0,123, 0, 0, 0, 68, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 68, 1, 0, 0, 70, 1, 0, 0,233, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 0, 0, 0, -233, 1, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,233, 1, 0, 0,124, 0, 0, 0,234, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 1, 0, 0,235, 1, 0, 0, -233, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -235, 1, 0, 0,234, 1, 0, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 1, 0, 0, 27, 0, 0, 0, 69, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 69, 1, 0, 0,235, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0, - 73, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,235, 1, 0, 0, 69, 1, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 72, 1, 0, 0,125, 0, 0, 0,234, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 1, 0, 0, 71, 1, 0, 0, - 72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 72, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 71, 1, 0, 0,234, 1, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,236, 1, 0, 0, 71, 0, 0, 0,220, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,220, 0, 0, 0,224, 0, 0, 0,236, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 0, 0, 0, -236, 1, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 0, 0,220, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,236, 1, 0, 0, 73, 0, 0, 0,237, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,238, 1, 0, 0, -236, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 0, 0, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -238, 1, 0, 0,237, 1, 0, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, 26, 0, 0, 0,221, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,221, 0, 0, 0,238, 1, 0, 0, 72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0, - 72, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,238, 1, 0, 0,221, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 73, 1, 0, 0,125, 0, 0, 0,237, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,225, 0, 0, 0, - 73, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 0, 0, 0, 73, 1, 0, 0,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -225, 0, 0, 0,237, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 1, 0, 0, 70, 0, 0, 0,219, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,219, 0, 0, 0, 71, 1, 0, 0,239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 0, 0, 0, -239, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 1, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,239, 1, 0, 0,124, 0, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 1, 0, 0,241, 1, 0, 0, -239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 0, 0, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -241, 1, 0, 0,240, 1, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,186, 0, 0, 0, 2, 0, 0, 0,218, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,218, 0, 0, 0,241, 1, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 0, 0, 0, -186, 0, 0, 0,241, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,241, 1, 0, 0,218, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,187, 0, 0, 0, 54, 0, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 1, 0, 0, 70, 1, 0, 0, -187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 0, 0, 0,187, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 70, 1, 0, 0,240, 1, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,242, 1, 0, 0,126, 0, 0, 0, 75, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 75, 1, 0, 0,231, 0, 0, 0,242, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 0, 0, 0, -242, 1, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 0, 0, 0, 75, 1, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,242, 1, 0, 0, 76, 0, 0, 0,243, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 1, 0, 0,244, 1, 0, 0, -242, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 0, 0, 0,242, 1, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -244, 1, 0, 0,243, 1, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 0, 20, 0, 0, 0, 74, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 74, 1, 0, 0,244, 1, 0, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0, -197, 0, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 1, 0, 0, 74, 1, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,196, 0, 0, 0, 59, 0, 0, 0,243, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 1, 0, 0,230, 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0,196, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -230, 0, 0, 0,243, 1, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,245, 1, 0, 0,126, 0, 0, 0, 74, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 74, 1, 0, 0, 76, 1, 0, 0,245, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0, -245, 1, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 1, 0, 0, 74, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,245, 1, 0, 0,127, 0, 0, 0,246, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 1, 0, 0,247, 1, 0, 0, -245, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 0, 0, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -247, 1, 0, 0,246, 1, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 1, 0, 0, 29, 0, 0, 0, 75, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 75, 1, 0, 0,247, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, - 79, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,247, 1, 0, 0, 75, 1, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 78, 1, 0, 0,128, 0, 0, 0,246, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 1, 0, 0, 77, 1, 0, 0, - 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 0, 0, 0, 78, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 77, 1, 0, 0,246, 1, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, 75, 0, 0, 0,228, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,228, 0, 0, 0,232, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 0, -248, 1, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,232, 0, 0, 0,228, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,248, 1, 0, 0, 77, 0, 0, 0,249, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 1, 0, 0,250, 1, 0, 0, -248, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 0, 0, 0,248, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -250, 1, 0, 0,249, 1, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 1, 0, 0, 28, 0, 0, 0,229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0,250, 1, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, - 78, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, 1, 0, 0,229, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 79, 1, 0, 0,128, 0, 0, 0,249, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 1, 0, 0,233, 0, 0, 0, - 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 0, 0, 0, 79, 1, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -233, 0, 0, 0,249, 1, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 1, 0, 0, 74, 0, 0, 0,227, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0, 77, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0, -251, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 1, 0, 0,227, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,251, 1, 0, 0,127, 0, 0, 0,252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 1, 0, 0,253, 1, 0, 0, -251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 0, 0, 0,251, 1, 0, 0,253, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -253, 1, 0, 0,252, 1, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,194, 0, 0, 0, 3, 0, 0, 0,226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,226, 0, 0, 0,253, 1, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 0, 0, 0, -194, 0, 0, 0,253, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,253, 1, 0, 0,226, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,195, 0, 0, 0, 58, 0, 0, 0,252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 1, 0, 0, 76, 1, 0, 0, -195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 0, 0, 0,195, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 76, 1, 0, 0,252, 1, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 1, 0, 0,129, 0, 0, 0, 81, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 81, 1, 0, 0,239, 0, 0, 0,254, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0, -254, 1, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 0, 0, 0, 81, 1, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,254, 1, 0, 0, 80, 0, 0, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 1, 0, 0, 0, 2, 0, 0, -254, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,129, 0, 0, 0,254, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 0, 2, 0, 0,255, 1, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 0, 21, 0, 0, 0, 80, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 80, 1, 0, 0, 0, 2, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 0, 0, 0, -201, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 80, 1, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,200, 0, 0, 0, 61, 0, 0, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 1, 0, 0,238, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0,200, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -238, 0, 0, 0,255, 1, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2, 0, 0,129, 0, 0, 0, 80, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 80, 1, 0, 0, 82, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0, - 1, 2, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, 80, 1, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 1, 2, 0, 0,130, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, 0, 3, 2, 0, 0, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,129, 0, 0, 0, 1, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 3, 2, 0, 0, 2, 2, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 1, 0, 0, 31, 0, 0, 0, 81, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 81, 1, 0, 0, 3, 2, 0, 0, 85, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 0, 0, 0, - 85, 1, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 2, 0, 0, 81, 1, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 84, 1, 0, 0,131, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, 0, 83, 1, 0, 0, - 84, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 0, 0, 0, 84, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 83, 1, 0, 0, 2, 2, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 0, 0, 79, 0, 0, 0,236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,236, 0, 0, 0,240, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 0, - 4, 2, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 0, 0, 0,236, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 4, 2, 0, 0, 81, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 0, 0, 6, 2, 0, 0, - 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 0, 0, 0, 4, 2, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 6, 2, 0, 0, 5, 2, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, 30, 0, 0, 0,237, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,237, 0, 0, 0, 6, 2, 0, 0, 84, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 0, 0, 0, - 84, 1, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 2, 0, 0,237, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 85, 1, 0, 0,131, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 0, 0,241, 0, 0, 0, - 85, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 0, 0, 0, 85, 1, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -241, 0, 0, 0, 5, 2, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 2, 0, 0, 78, 0, 0, 0,235, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,235, 0, 0, 0, 83, 1, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0, - 7, 2, 0, 0, 83, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 1, 0, 0,235, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 7, 2, 0, 0,130, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 2, 0, 0, 9, 2, 0, 0, - 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, 7, 2, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 9, 2, 0, 0, 8, 2, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0, 4, 0, 0, 0,234, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 9, 2, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, -198, 0, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 2, 0, 0,234, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,199, 0, 0, 0, 60, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 2, 0, 0, 82, 1, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 0, 0, 0,199, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 82, 1, 0, 0, 8, 2, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 1, 0, 0,132, 0, 0, 0, 10, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 10, 2, 0, 0,245, 0, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0, - 87, 1, 0, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,245, 0, 0, 0, 10, 2, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 11, 2, 0, 0, 83, 0, 0, 0, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 2, 0, 0, 12, 2, 0, 0, - 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 0, 0, 0, 11, 2, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 12, 2, 0, 0, 10, 2, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0, 23, 0, 0, 0,209, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,209, 0, 0, 0, 12, 2, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0, - 86, 1, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 2, 0, 0,209, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 11, 2, 0, 0, 65, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,244, 0, 0, 0, - 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 0, 0, 0, 11, 2, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -244, 0, 0, 0,208, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0,132, 0, 0, 0, 13, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 13, 2, 0, 0, 88, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 0, 0, 0, - 86, 1, 0, 0, 88, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, 13, 2, 0, 0,133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 14, 2, 0, 0,133, 0, 0, 0, 13, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 2, 0, 0, 15, 2, 0, 0, - 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,134, 0, 0, 0, 14, 2, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 15, 2, 0, 0, 13, 2, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 1, 0, 0, 32, 0, 0, 0, 91, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 91, 1, 0, 0, 15, 2, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0, - 87, 1, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 2, 0, 0, 91, 1, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 14, 2, 0, 0,134, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 1, 0, 0, 89, 1, 0, 0, - 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,133, 0, 0, 0, 14, 2, 0, 0, 89, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 89, 1, 0, 0, 90, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,212, 0, 0, 0, 67, 0, 0, 0, 16, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 16, 2, 0, 0,242, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 0, -212, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,242, 0, 0, 0, 16, 2, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 17, 2, 0, 0, 82, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 2, 0, 0, 18, 2, 0, 0, - 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,134, 0, 0, 0, 17, 2, 0, 0, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 18, 2, 0, 0, 16, 2, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 24, 0, 0, 0, 90, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 90, 1, 0, 0, 18, 2, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 0, 0, 0, -213, 0, 0, 0, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 2, 0, 0, 90, 1, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 17, 2, 0, 0,134, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 1, 0, 0,243, 0, 0, 0, - 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0, 17, 2, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -243, 0, 0, 0, 91, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0, 66, 0, 0, 0, 19, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 19, 2, 0, 0, 89, 1, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 0, 0, 0, -211, 0, 0, 0, 89, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 1, 0, 0, 19, 2, 0, 0,133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 20, 2, 0, 0,133, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 2, 0, 0, 21, 2, 0, 0, - 20, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 0, 0, 0, 20, 2, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 21, 2, 0, 0, 19, 2, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 0, 0, 0, 1, 0, 0, 0,206, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0, 21, 2, 0, 0,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 0, 0, 0, -210, 0, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 2, 0, 0,206, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 20, 2, 0, 0, 64, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 88, 1, 0, 0, - 20, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,133, 0, 0, 0, 20, 2, 0, 0, 88, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 88, 1, 0, 0,207, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 1, 0, 0,135, 0, 0, 0, 22, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 22, 2, 0, 0,247, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 0, 0, 0, - 93, 1, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,247, 0, 0, 0, 22, 2, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 23, 2, 0, 0, 84, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 2, 0, 0, 24, 2, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 69, 0, 0, 0, 23, 2, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 24, 2, 0, 0, 22, 2, 0, 0,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0, 25, 0, 0, 0,217, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,217, 0, 0, 0, 24, 2, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 0, 0, 0, - 92, 1, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 2, 0, 0,217, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 23, 2, 0, 0, 69, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 0, 0, 0,246, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0, 23, 2, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -246, 0, 0, 0,216, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0,135, 0, 0, 0, 25, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 25, 2, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 0, 0, 0, - 92, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 1, 0, 0, 25, 2, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 26, 2, 0, 0,136, 0, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 2, 0, 0, 27, 2, 0, 0, - 26, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 26, 2, 0, 0, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 27, 2, 0, 0, 25, 2, 0, 0,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 1, 0, 0, 33, 0, 0, 0, 97, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 97, 1, 0, 0, 27, 2, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 0, 0, 0, - 93, 1, 0, 0, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 2, 0, 0, 97, 1, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 26, 2, 0, 0,137, 0, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, 95, 1, 0, 0, - 26, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,136, 0, 0, 0, 26, 2, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 95, 1, 0, 0, 96, 1, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,220, 0, 0, 0, 71, 0, 0, 0, 28, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 28, 2, 0, 0,248, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 0, 0, 0, -220, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,248, 0, 0, 0, 28, 2, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 29, 2, 0, 0, 85, 0, 0, 0, 28, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 2, 0, 0, 30, 2, 0, 0, - 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 29, 2, 0, 0, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 30, 2, 0, 0, 28, 2, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,221, 0, 0, 0, 26, 0, 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, 30, 2, 0, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 0, 0, 0, -221, 0, 0, 0, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 2, 0, 0, 96, 1, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 29, 2, 0, 0,137, 0, 0, 0, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 1, 0, 0,249, 0, 0, 0, - 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 0, 0, 0, 29, 2, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -249, 0, 0, 0, 97, 1, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 0, 0, 0, 70, 0, 0, 0, 31, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 31, 2, 0, 0, 95, 1, 0, 0,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, -219, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 1, 0, 0, 31, 2, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 32, 2, 0, 0,136, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 2, 0, 0, 33, 2, 0, 0, - 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 0, 0, 0, 32, 2, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 33, 2, 0, 0, 31, 2, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,218, 0, 0, 0, 2, 0, 0, 0,214, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,214, 0, 0, 0, 33, 2, 0, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 0, 0, 0, -218, 0, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 2, 0, 0,214, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 32, 2, 0, 0, 68, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 0, 0, 0, 94, 1, 0, 0, - 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,136, 0, 0, 0, 32, 2, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 94, 1, 0, 0,215, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 1, 0, 0,138, 0, 0, 0, 34, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 34, 2, 0, 0,251, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0, - 99, 1, 0, 0,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 0, 0, 0, 34, 2, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 35, 2, 0, 0, 86, 0, 0, 0, 34, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 2, 0, 0, 36, 2, 0, 0, - 35, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 0, 0, 0, 35, 2, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 36, 2, 0, 0, 34, 2, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0, 27, 0, 0, 0,225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,225, 0, 0, 0, 36, 2, 0, 0, 98, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0, - 98, 1, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 2, 0, 0,225, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 35, 2, 0, 0, 73, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 0, 0,250, 0, 0, 0, - 35, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0, 35, 2, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -250, 0, 0, 0,224, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0,138, 0, 0, 0, 37, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 37, 2, 0, 0,100, 1, 0, 0, 98, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 0, 0, 0, - 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 1, 0, 0, 37, 2, 0, 0,139, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 38, 2, 0, 0,139, 0, 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 2, 0, 0, 39, 2, 0, 0, - 38, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,140, 0, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 39, 2, 0, 0, 37, 2, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 1, 0, 0, 34, 0, 0, 0,103, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,103, 1, 0, 0, 39, 2, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0, - 99, 1, 0, 0, 39, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 2, 0, 0,103, 1, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 38, 2, 0, 0,140, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 1, 0, 0,101, 1, 0, 0, - 38, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0, 38, 2, 0, 0,101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -101, 1, 0, 0,102, 1, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 0, 0, 0, 75, 0, 0, 0, 40, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 40, 2, 0, 0,252, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, -228, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 0, 0, 0, 40, 2, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 41, 2, 0, 0, 87, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 2, 0, 0, 42, 2, 0, 0, - 41, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,140, 0, 0, 0, 41, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 42, 2, 0, 0, 40, 2, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0, 28, 0, 0, 0,102, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,102, 1, 0, 0, 42, 2, 0, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 0, 0, 0, -229, 0, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 2, 0, 0,102, 1, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 41, 2, 0, 0,140, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 1, 0, 0,253, 0, 0, 0, - 41, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, 41, 2, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -253, 0, 0, 0,103, 1, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0, 74, 0, 0, 0, 43, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 43, 2, 0, 0,101, 1, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 0, 0, 0, -227, 0, 0, 0,101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 1, 0, 0, 43, 2, 0, 0,139, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 44, 2, 0, 0,139, 0, 0, 0, 43, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 2, 0, 0, 45, 2, 0, 0, - 44, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 0, 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 45, 2, 0, 0, 43, 2, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,226, 0, 0, 0, 3, 0, 0, 0,222, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,222, 0, 0, 0, 45, 2, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 0, 0, 0, -226, 0, 0, 0, 45, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 2, 0, 0,222, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 44, 2, 0, 0, 72, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0,100, 1, 0, 0, - 44, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0, 44, 2, 0, 0,100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -100, 1, 0, 0,223, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 1, 0, 0,141, 0, 0, 0, 46, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 46, 2, 0, 0,255, 0, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 0, 0, 0, -105, 1, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 0, 0, 0, 46, 2, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 47, 2, 0, 0, 88, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 2, 0, 0, 48, 2, 0, 0, - 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 0, 47, 2, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 48, 2, 0, 0, 46, 2, 0, 0,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 1, 0, 0, 29, 0, 0, 0,233, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,233, 0, 0, 0, 48, 2, 0, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0, -104, 1, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 2, 0, 0,233, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 47, 2, 0, 0, 77, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,232, 0, 0, 0,254, 0, 0, 0, - 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 0, 0, 0, 47, 2, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -254, 0, 0, 0,232, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 1, 0, 0,141, 0, 0, 0, 49, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 49, 2, 0, 0,106, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 0, 0, 0, -104, 1, 0, 0,106, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 1, 0, 0, 49, 2, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 50, 2, 0, 0,142, 0, 0, 0, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 2, 0, 0, 51, 2, 0, 0, - 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 0, 0, 0, 50, 2, 0, 0, 51, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 51, 2, 0, 0, 49, 2, 0, 0,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 1, 0, 0, 35, 0, 0, 0,109, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,109, 1, 0, 0, 51, 2, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0, -105, 1, 0, 0, 51, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 2, 0, 0,109, 1, 0, 0,143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 50, 2, 0, 0,143, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 1, 0, 0,107, 1, 0, 0, - 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 0, 0, 0, 50, 2, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -107, 1, 0, 0,108, 1, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,236, 0, 0, 0, 79, 0, 0, 0, 52, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 52, 2, 0, 0, 0, 1, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 0, 0, 0, -236, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 52, 2, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 53, 2, 0, 0, 89, 0, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 2, 0, 0, 54, 2, 0, 0, - 53, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 0, 0, 0, 53, 2, 0, 0, 54, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 54, 2, 0, 0, 52, 2, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 0, 0, 0, 30, 0, 0, 0,108, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,108, 1, 0, 0, 54, 2, 0, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 0, 0, 0, -237, 0, 0, 0, 54, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 2, 0, 0,108, 1, 0, 0,143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 53, 2, 0, 0,143, 0, 0, 0,109, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 1, 0, 0, 1, 1, 0, 0, - 53, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 0, 0, 0, 53, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 1, 1, 0, 0,109, 1, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,235, 0, 0, 0, 78, 0, 0, 0, 55, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 55, 2, 0, 0,107, 1, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 0, 0, 0, -235, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 1, 0, 0, 55, 2, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 56, 2, 0, 0,142, 0, 0, 0, 55, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 2, 0, 0, 57, 2, 0, 0, - 56, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 0, 0, 0, 56, 2, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 57, 2, 0, 0, 55, 2, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 4, 0, 0, 0,230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,230, 0, 0, 0, 57, 2, 0, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, -234, 0, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 2, 0, 0,230, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 56, 2, 0, 0, 76, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 0, 0, 0,106, 1, 0, 0, - 56, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 0, 0, 0, 56, 2, 0, 0,106, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -106, 1, 0, 0,231, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 1, 0, 0,144, 0, 0, 0, 58, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 58, 2, 0, 0, 3, 1, 0, 0,111, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, -111, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 0, 0, 58, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 59, 2, 0, 0, 90, 0, 0, 0, 58, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 2, 0, 0, 60, 2, 0, 0, - 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 0, 59, 2, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 60, 2, 0, 0, 58, 2, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 1, 0, 0, 31, 0, 0, 0,241, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,241, 0, 0, 0, 60, 2, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 0, 0, 0, -110, 1, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 2, 0, 0,241, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 59, 2, 0, 0, 81, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 0, 0, 0, 2, 1, 0, 0, - 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 0, 0, 0, 59, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 1, 0, 0,240, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 1, 0, 0,144, 0, 0, 0, 61, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 61, 2, 0, 0,113, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 0, 0, 0, -110, 1, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 1, 0, 0, 61, 2, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 62, 2, 0, 0,145, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 2, 0, 0, 63, 2, 0, 0, - 62, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 0, 0, 0, 62, 2, 0, 0, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 63, 2, 0, 0, 61, 2, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 1, 0, 0, 36, 0, 0, 0,115, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,115, 1, 0, 0, 63, 2, 0, 0,111, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 0, 0, 0, -111, 1, 0, 0, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 2, 0, 0,115, 1, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 62, 2, 0, 0,146, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 1, 0, 0,112, 1, 0, 0, - 62, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,145, 0, 0, 0, 62, 2, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -112, 1, 0, 0,114, 1, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,204, 0, 0, 0, 63, 0, 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 64, 2, 0, 0, 4, 1, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0, -204, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 1, 0, 0, 64, 2, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 65, 2, 0, 0, 91, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 2, 0, 0, 66, 2, 0, 0, - 65, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 0, 0, 0, 65, 2, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 66, 2, 0, 0, 64, 2, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,205, 0, 0, 0, 22, 0, 0, 0,114, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,114, 1, 0, 0, 66, 2, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 0, 0, 0, -205, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 2, 0, 0,114, 1, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 65, 2, 0, 0,146, 0, 0, 0,115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 1, 0, 0, 5, 1, 0, 0, - 65, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 0, 0, 0, 65, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 5, 1, 0, 0,115, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,203, 0, 0, 0, 62, 0, 0, 0, 67, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 67, 2, 0, 0,112, 1, 0, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 0, 0, 0, -203, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 1, 0, 0, 67, 2, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 68, 2, 0, 0,145, 0, 0, 0, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 2, 0, 0, 69, 2, 0, 0, - 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0, 68, 2, 0, 0, 69, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 69, 2, 0, 0, 67, 2, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0, 5, 0, 0, 0,238, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,238, 0, 0, 0, 69, 2, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 0, 0, 0, -202, 0, 0, 0, 69, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 69, 2, 0, 0,238, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 68, 2, 0, 0, 80, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 0, 0, 0,113, 1, 0, 0, - 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,145, 0, 0, 0, 68, 2, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -113, 1, 0, 0,239, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 2, 0, 0,147, 0, 0, 0,117, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,117, 1, 0, 0, 11, 1, 0, 0, 70, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 0, 0, 0, - 70, 2, 0, 0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, 1, 0, 0,117, 1, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 70, 2, 0, 0, 94, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 2, 0, 0, 72, 2, 0, 0, - 70, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,147, 0, 0, 0, 70, 2, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 72, 2, 0, 0, 71, 2, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 0, 0, 0, 32, 0, 0, 0,116, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,116, 1, 0, 0, 72, 2, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0, -243, 0, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 2, 0, 0,116, 1, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,242, 0, 0, 0, 82, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 2, 0, 0, 10, 1, 0, 0, -242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 0,242, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 10, 1, 0, 0, 71, 2, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 2, 0, 0,147, 0, 0, 0,116, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,116, 1, 0, 0,118, 1, 0, 0, 73, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0, - 73, 2, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 1, 0, 0,116, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 73, 2, 0, 0,148, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 2, 0, 0, 75, 2, 0, 0, - 73, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,147, 0, 0, 0, 73, 2, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 75, 2, 0, 0, 74, 2, 0, 0,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 1, 0, 0, 38, 0, 0, 0,117, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,117, 1, 0, 0, 75, 2, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 0, 0, 0, -121, 1, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 2, 0, 0,117, 1, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,120, 1, 0, 0,149, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 2, 0, 0,119, 1, 0, 0, -120, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 0, 0, 0,120, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -119, 1, 0, 0, 74, 2, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 2, 0, 0, 93, 0, 0, 0, 8, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 8, 1, 0, 0, 12, 1, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, - 76, 2, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 1, 0, 0, 8, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 76, 2, 0, 0, 95, 0, 0, 0, 77, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 2, 0, 0, 78, 2, 0, 0, - 76, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 0, 0, 0, 76, 2, 0, 0, 78, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 78, 2, 0, 0, 77, 2, 0, 0,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 1, 0, 0, 37, 0, 0, 0, 9, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 9, 1, 0, 0, 78, 2, 0, 0,120, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 0, 0, 0, -120, 1, 0, 0, 78, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 2, 0, 0, 9, 1, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,121, 1, 0, 0,149, 0, 0, 0, 77, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 2, 0, 0, 13, 1, 0, 0, -121, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 0, 0, 0,121, 1, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 13, 1, 0, 0, 77, 2, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 2, 0, 0, 92, 0, 0, 0, 7, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 7, 1, 0, 0,119, 1, 0, 0, 79, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0, - 79, 2, 0, 0,119, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 1, 0, 0, 7, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 79, 2, 0, 0,148, 0, 0, 0, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 2, 0, 0, 81, 2, 0, 0, - 79, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 0, 0, 0, 79, 2, 0, 0, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 81, 2, 0, 0, 80, 2, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 0, 0, 0, 10, 0, 0, 0, 6, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0, 81, 2, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 0, 0, 0, -244, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 2, 0, 0, 6, 1, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,245, 0, 0, 0, 83, 0, 0, 0, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 2, 0, 0,118, 1, 0, 0, -245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0,245, 0, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -118, 1, 0, 0, 80, 2, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 2, 0, 0,150, 0, 0, 0,123, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,123, 1, 0, 0, 15, 1, 0, 0, 82, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 0, 0, 0, - 82, 2, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 1, 0, 0,123, 1, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 82, 2, 0, 0, 96, 0, 0, 0, 83, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 2, 0, 0, 84, 2, 0, 0, - 82, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,150, 0, 0, 0, 82, 2, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 84, 2, 0, 0, 83, 2, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 0, 0, 0, 33, 0, 0, 0,122, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 84, 2, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 0, 0, 0, -249, 0, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 2, 0, 0,122, 1, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,248, 0, 0, 0, 85, 0, 0, 0, 83, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 2, 0, 0, 14, 1, 0, 0, -248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 0, 0, 0,248, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 14, 1, 0, 0, 83, 2, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 2, 0, 0,150, 0, 0, 0,122, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0,124, 1, 0, 0, 85, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 0, 0, 0, - 85, 2, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 1, 0, 0,122, 1, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 85, 2, 0, 0,151, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 2, 0, 0, 87, 2, 0, 0, - 85, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,150, 0, 0, 0, 85, 2, 0, 0, 87, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 87, 2, 0, 0, 86, 2, 0, 0,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 1, 0, 0, 39, 0, 0, 0,123, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,123, 1, 0, 0, 87, 2, 0, 0,127, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0, -127, 1, 0, 0, 87, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 2, 0, 0,123, 1, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,126, 1, 0, 0,152, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 2, 0, 0,125, 1, 0, 0, -126, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 0, 0, 0,126, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -125, 1, 0, 0, 86, 2, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 2, 0, 0, 95, 0, 0, 0, 12, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 12, 1, 0, 0, 16, 1, 0, 0, 88, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, - 88, 2, 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 1, 0, 0, 12, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 88, 2, 0, 0, 97, 0, 0, 0, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 2, 0, 0, 90, 2, 0, 0, - 88, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, 88, 2, 0, 0, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 90, 2, 0, 0, 89, 2, 0, 0,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 1, 0, 0, 38, 0, 0, 0, 13, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 13, 1, 0, 0, 90, 2, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0, -126, 1, 0, 0, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 2, 0, 0, 13, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,127, 1, 0, 0,152, 0, 0, 0, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 2, 0, 0, 17, 1, 0, 0, -127, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 0, 0, 0,127, 1, 0, 0, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 17, 1, 0, 0, 89, 2, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 2, 0, 0, 94, 0, 0, 0, 11, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 11, 1, 0, 0,125, 1, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 0, 0, 0, - 91, 2, 0, 0,125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 1, 0, 0, 11, 1, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 91, 2, 0, 0,151, 0, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 2, 0, 0, 93, 2, 0, 0, - 91, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 0, 0, 0, 91, 2, 0, 0, 93, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 93, 2, 0, 0, 92, 2, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 0, 0, 0, 6, 0, 0, 0, 10, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 10, 1, 0, 0, 93, 2, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0, -246, 0, 0, 0, 93, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 2, 0, 0, 10, 1, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,247, 0, 0, 0, 84, 0, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 2, 0, 0,124, 1, 0, 0, -247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 0, 0, 0,247, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -124, 1, 0, 0, 92, 2, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 2, 0, 0,153, 0, 0, 0,129, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,129, 1, 0, 0, 19, 1, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 0, 0, 0, - 94, 2, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 1, 0, 0,129, 1, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 94, 2, 0, 0, 98, 0, 0, 0, 95, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 2, 0, 0, 96, 2, 0, 0, - 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,153, 0, 0, 0, 94, 2, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 96, 2, 0, 0, 95, 2, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,253, 0, 0, 0, 34, 0, 0, 0,128, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,128, 1, 0, 0, 96, 2, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, -253, 0, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 2, 0, 0,128, 1, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,252, 0, 0, 0, 87, 0, 0, 0, 95, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 2, 0, 0, 18, 1, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0,252, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 18, 1, 0, 0, 95, 2, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 2, 0, 0,153, 0, 0, 0,128, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,128, 1, 0, 0,130, 1, 0, 0, 97, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0, - 97, 2, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 1, 0, 0,128, 1, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 97, 2, 0, 0,154, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 2, 0, 0, 99, 2, 0, 0, - 97, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,153, 0, 0, 0, 97, 2, 0, 0, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 99, 2, 0, 0, 98, 2, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,133, 1, 0, 0, 40, 0, 0, 0,129, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,129, 1, 0, 0, 99, 2, 0, 0,133, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 0, 0, 0, -133, 1, 0, 0, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 2, 0, 0,129, 1, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,132, 1, 0, 0,155, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 2, 0, 0,131, 1, 0, 0, -132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 0, 0, 0,132, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -131, 1, 0, 0, 98, 2, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 2, 0, 0, 97, 0, 0, 0, 16, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 16, 1, 0, 0, 20, 1, 0, 0,100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0, -100, 2, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 1, 0, 0, 16, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,100, 2, 0, 0, 99, 0, 0, 0,101, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 2, 0, 0,102, 2, 0, 0, -100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0,100, 2, 0, 0,102, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -102, 2, 0, 0,101, 2, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 1, 0, 0, 39, 0, 0, 0, 17, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 17, 1, 0, 0,102, 2, 0, 0,132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 0, 0, 0, -132, 1, 0, 0,102, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 2, 0, 0, 17, 1, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,133, 1, 0, 0,155, 0, 0, 0,101, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 2, 0, 0, 21, 1, 0, 0, -133, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 0, 0, 0,133, 1, 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 21, 1, 0, 0,101, 2, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 2, 0, 0, 96, 0, 0, 0, 15, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 15, 1, 0, 0,131, 1, 0, 0,103, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0, -103, 2, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 1, 0, 0, 15, 1, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,103, 2, 0, 0,154, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 2, 0, 0,105, 2, 0, 0, -103, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 0, 0, 0,103, 2, 0, 0,105, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -105, 2, 0, 0,104, 2, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, 0, 0, 0, 7, 0, 0, 0, 14, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 14, 1, 0, 0,105, 2, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0, -250, 0, 0, 0,105, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 2, 0, 0, 14, 1, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,251, 0, 0, 0, 86, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 2, 0, 0,130, 1, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0,251, 0, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -130, 1, 0, 0,104, 2, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 2, 0, 0,156, 0, 0, 0,135, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,135, 1, 0, 0, 23, 1, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 0, 0, 0, -106, 2, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 1, 0, 0,135, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,106, 2, 0, 0,100, 0, 0, 0,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 2, 0, 0,108, 2, 0, 0, -106, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,156, 0, 0, 0,106, 2, 0, 0,108, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -108, 2, 0, 0,107, 2, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 0, 0, 35, 0, 0, 0,134, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,134, 1, 0, 0,108, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 0, 0, 0, - 1, 1, 0, 0,108, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 2, 0, 0,134, 1, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 1, 0, 0, 89, 0, 0, 0,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 2, 0, 0, 22, 1, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 0, 0, 0, 0, 1, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 22, 1, 0, 0,107, 2, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 2, 0, 0,156, 0, 0, 0,134, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,134, 1, 0, 0,136, 1, 0, 0,109, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 0, 0, 0, -109, 2, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,136, 1, 0, 0,134, 1, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,109, 2, 0, 0,157, 0, 0, 0,110, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 2, 0, 0,111, 2, 0, 0, -109, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,156, 0, 0, 0,109, 2, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -111, 2, 0, 0,110, 2, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 1, 0, 0, 41, 0, 0, 0,135, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,135, 1, 0, 0,111, 2, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0, -139, 1, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 2, 0, 0,135, 1, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,138, 1, 0, 0,158, 0, 0, 0,110, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 2, 0, 0,137, 1, 0, 0, -138, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 0, 0, 0,138, 1, 0, 0,137, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -137, 1, 0, 0,110, 2, 0, 0,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 2, 0, 0, 99, 0, 0, 0, 20, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 20, 1, 0, 0, 24, 1, 0, 0,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 0, 0, 0, -112, 2, 0, 0, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 1, 0, 0, 20, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,112, 2, 0, 0,101, 0, 0, 0,113, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 2, 0, 0,114, 2, 0, 0, -112, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0,112, 2, 0, 0,114, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -114, 2, 0, 0,113, 2, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 1, 0, 0, 40, 0, 0, 0, 21, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 21, 1, 0, 0,114, 2, 0, 0,138, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0, -138, 1, 0, 0,114, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 2, 0, 0, 21, 1, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,139, 1, 0, 0,158, 0, 0, 0,113, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 2, 0, 0, 25, 1, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 0, 0, 0,139, 1, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 25, 1, 0, 0,113, 2, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 2, 0, 0, 98, 0, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 19, 1, 0, 0,137, 1, 0, 0,115, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 0, 0, 0, -115, 2, 0, 0,137, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,137, 1, 0, 0, 19, 1, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,115, 2, 0, 0,157, 0, 0, 0,116, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 2, 0, 0,117, 2, 0, 0, -115, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 0, 0, 0,115, 2, 0, 0,117, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -117, 2, 0, 0,116, 2, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 0, 0, 0, 8, 0, 0, 0, 18, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 18, 1, 0, 0,117, 2, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 0, 0, 0, -254, 0, 0, 0,117, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,117, 2, 0, 0, 18, 1, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,255, 0, 0, 0, 88, 0, 0, 0,116, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 2, 0, 0,136, 1, 0, 0, -255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 0, 0, 0,255, 0, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -136, 1, 0, 0,116, 2, 0, 0,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 2, 0, 0,159, 0, 0, 0,141, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,141, 1, 0, 0, 7, 1, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 0, 0, 0, -118, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 1, 0, 0,141, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,118, 2, 0, 0, 92, 0, 0, 0,119, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 2, 0, 0,120, 2, 0, 0, -118, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 0, 0, 0,118, 2, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -120, 2, 0, 0,119, 2, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 1, 0, 0, 36, 0, 0, 0,140, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,140, 1, 0, 0,120, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 0, 0, 0, - 5, 1, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 2, 0, 0,140, 1, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 4, 1, 0, 0, 91, 0, 0, 0,119, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 2, 0, 0, 6, 1, 0, 0, - 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0, 4, 1, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 6, 1, 0, 0,119, 2, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 2, 0, 0,159, 0, 0, 0,140, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,140, 1, 0, 0,142, 1, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0, -121, 2, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 1, 0, 0,140, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,121, 2, 0, 0,160, 0, 0, 0,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 2, 0, 0,123, 2, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 0, 0, 0,121, 2, 0, 0,123, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -123, 2, 0, 0,122, 2, 0, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 1, 0, 0, 37, 0, 0, 0,141, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3,141, 1, 0, 0,123, 2, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 0, 0, 0, -144, 1, 0, 0,123, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,123, 2, 0, 0,141, 1, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,145, 1, 0, 0,161, 0, 0, 0,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 2, 0, 0,143, 1, 0, 0, -145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 0, 0, 0,145, 1, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -143, 1, 0, 0,122, 2, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 2, 0, 0,101, 0, 0, 0, 24, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 24, 1, 0, 0, 8, 1, 0, 0,124, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 0, 0, 0, -124, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 1, 0, 0, 24, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,124, 2, 0, 0, 93, 0, 0, 0,125, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 2, 0, 0,126, 2, 0, 0, -124, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 0, 0, 0,124, 2, 0, 0,126, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -126, 2, 0, 0,125, 2, 0, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,145, 1, 0, 0, 41, 0, 0, 0, 25, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 25, 1, 0, 0,126, 2, 0, 0,145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 0, 0, 0, -145, 1, 0, 0,126, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 2, 0, 0, 25, 1, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,144, 1, 0, 0,161, 0, 0, 0,125, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 2, 0, 0, 9, 1, 0, 0, -144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 0, 0, 0,144, 1, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 9, 1, 0, 0,125, 2, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 2, 0, 0,100, 0, 0, 0, 23, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 23, 1, 0, 0,143, 1, 0, 0,127, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0, -127, 2, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 1, 0, 0, 23, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3,127, 2, 0, 0,160, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 2, 0, 0,129, 2, 0, 0, -127, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 0, 0, 0,127, 2, 0, 0,129, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -129, 2, 0, 0,128, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0, 9, 0, 0, 0, 22, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 22, 1, 0, 0,129, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 0, 0, 0, - 2, 1, 0, 0,129, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,129, 2, 0, 0, 22, 1, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 3, 1, 0, 0, 90, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 2, 0, 0,142, 1, 0, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 3, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -142, 1, 0, 0,128, 2, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 65, 84, 65, 0,220, 0, 0,120,118,185, 3, - 65, 0, 0, 0, 0, 5, 0, 0,166,222,110, 63, 9,205, 55, 63,212,132,105, 63,201,236, 65, 63,218,153,103, 63,119,155, 54, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63,118,148,108, 63, -211,160, 44, 63,166,222,110, 63, 9,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 36, 51,115, 63, 36, 28, 45, 63,166,222,110, 63, 9,205, 55, 63,118,148,108, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63,218,153,103, 63,119,155, 54, 63, 87, 17,102, 63, -229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, - 87, 17,102, 63,229, 52, 43, 63,218,153,103, 63,119,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63, 9, 75, 97, 63, 92,233, 63, 63, 56, 81, 96, 63,170, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 56, 81, 96, 63,170, 55, 52, 63, - 9, 75, 97, 63, 92,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 75, 97, 63, - 92,233, 63, 63,218,153,103, 63,119,155, 54, 63,212,132,105, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,138,153, 89, 63, 39,228, 82, 63,139,153, 89, 63,255,153, 71, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 9, 75, 97, 63, - 92,233, 63, 63,103,167, 98, 63,168, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -212,132,105, 63,201,236, 65, 63,103,167, 98, 63,168, 39, 75, 63, 9, 75, 97, 63, 92,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63,139,153, 89, 63,255,153, 71, 63,138,153, 89, 63, - 49, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, -138,153, 89, 63, 49, 86, 60, 63,139,153, 89, 63, 79, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63,205,182, 95, 63,222,228, 40, 63, 56, 81, 96, 63,170, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 56, 81, 96, 63,170, 55, 52, 63, -205,182, 95, 63,222,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205,182, 95, 63, -222,228, 40, 63,139,153, 89, 63, 79, 12, 49, 63,139,153, 89, 63, 45,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,212,132,105, 63,201,236, 65, 63,168, 83,109, 63,207, 83, 78, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63,135, 85,101, 63, -148, 64, 88, 63,103,167, 98, 63,168, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -138,153, 89, 63, 39,228, 82, 63,103,167, 98, 63,168, 39, 75, 63,135, 85,101, 63,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63,168, 83,109, 63,207, 83, 78, 63, 36, 51,115, 63, - 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, - 36, 51,115, 63, 22, 56, 90, 63,168, 83,109, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63, 36, 51,115, 63,115, 23, 67, 63,162, 18,121, 63,207, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63,162, 18,121, 63,207, 83, 78, 63, - 36, 51,115, 63,115, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63, -115, 23, 67, 63,168, 83,109, 63,207, 83, 78, 63,212,132,105, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 36, 51,115, 63, 36, 28, 45, 63,163,135,119, 63, 11,205, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63, 36, 51,115, 63, -115, 23, 67, 63,166,222,110, 63, 9,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -212,132,105, 63,201,236, 65, 63,166,222,110, 63, 9,205, 55, 63, 36, 51,115, 63,115, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63,163,135,119, 63, 11,205, 55, 63,116,225,124, 63, -202,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, -116,225,124, 63,202,236, 65, 63,113,223,129, 63,170, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,113,223,129, 63,170, 39, 75, 63, 98,136,128, 63,148, 64, 88, 63,162, 18,121, 63,207, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63,162, 18,121, 63,207, 83, 78, 63, - 98,136,128, 63,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95, 98,136, 59, -148, 64, 88, 63,160,184,111, 60,170, 39, 75, 63,243,203, 76, 61, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63,246,203, 76, 61, 53, 86, 60, 63, 31,162,194, 60,172, 55, 52, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,162,194, 60,172, 55, 52, 63,111,239,213, 60, -223,228, 40, 63,243,203, 76, 61, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -246,203, 76, 61, 48,200, 37, 63,243,203, 76, 61, 82, 12, 49, 63,111,239,213, 60,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 31,162,194, 60,172, 55, 52, 63,120,226,169, 58, -230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, -121, 42,128, 63,230, 52, 43, 63,136, 10,131, 63,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,136, 10,131, 63,172, 55, 52, 63,160,141,130, 63, 95,233, 63, 63,111,204,126, 63,121,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63,111,204,126, 63,121,155, 54, 63, -160,141,130, 63, 95,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,104,163, 60, - 95,233, 63, 63, 31,162,194, 60,172, 55, 52, 63,246,203, 76, 61, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63,243,203, 76, 61, 41,228, 82, 63,160,184,111, 60,170, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,184,111, 60,170, 39, 75, 63, 11,104,163, 60, - 95,233, 63, 63,244,203, 76, 61, 2,154, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -246,203, 76, 61, 53, 86, 60, 63,244,203, 76, 61, 2,154, 71, 63, 11,104,163, 60, 95,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,141,130, 63, 95,233, 63, 63,113,223,129, 63,170, 39, 75, 63,116,225,124, 63, -202,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, -116,225,124, 63,202,236, 65, 63,163,135,119, 63, 11,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63,210,209,121, 63,212,160, 44, 63,111,204,126, 63,121,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63,111,204,126, 63,121,155, 54, 63, -210,209,121, 63,212,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,210,209,121, 63, -212,160, 44, 63,163,135,119, 63, 11,205, 55, 63, 36, 51,115, 63, 36, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 95,102,134, 63, 79, 46, 94, 63, 95,102,134, 63, 22,114,105, 63, 52,205,124, 63, 58, 26, 99, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 98,136,128, 63, -148, 64, 88, 63, 95,102,134, 63, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -243,203, 76, 61, 41,228, 82, 63,234,203, 76, 61, 79, 46, 94, 63, 95, 98,136, 59,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63, 52,205,124, 63, 58, 26, 99, 63, 36, 51,115, 63, - 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, - 36, 51,115, 63, 22, 56, 90, 63, 52,205,124, 63, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 32, 51,115, 63,212,154,109, 63, 21,153,105, 63, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 21,153,105, 63, 58, 26, 99, 63, - 32, 51,115, 63,212,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32, 51,115, 63, -212,154,109, 63, 52,205,124, 63, 58, 26, 99, 63, 95,102,134, 63, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,136,153, 89, 63,242,187,116, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 32, 51,115, 63, -212,154,109, 63, 95,102,134, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 95,102,134, 63, 22,114,105, 63, 95,102,134, 63,242,187,116, 63, 32, 51,115, 63,212,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63,136,153, 89, 63,242,187,116, 63,138,153, 89, 63, - 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, -138,153, 89, 63, 19,114,105, 63,138,153, 89, 63, 77, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63,135, 85,101, 63,148, 64, 88, 63, 21,153,105, 63, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 21,153,105, 63, 58, 26, 99, 63, -135, 85,101, 63,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135, 85,101, 63, -148, 64, 88, 63,138,153, 89, 63, 77, 46, 94, 63,138,153, 89, 63, 39,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 74,174, 73, 63,193,236, 65, 63,124, 84, 68, 63,255,204, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63,169,158, 70, 63, -200,160, 44, 63, 67,153, 75, 63,113,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -196, 33, 77, 63,221, 52, 43, 63, 67,153, 75, 63,113,155, 54, 63,169,158, 70, 63,200,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63,124, 84, 68, 63,255,204, 55, 63, 0, 0, 64, 63, - 24, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, -196, 33, 77, 63,221, 52, 43, 63,225,225, 82, 63,165, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 16,232, 81, 63, 89,233, 63, 63, 67,153, 75, 63,113,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 67,153, 75, 63,113,155, 54, 63, - 16,232, 81, 63, 89,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 16,232, 81, 63, - 89,233, 63, 63,225,225, 82, 63,165, 55, 52, 63,138,153, 89, 63, 49, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63,138,153, 89, 63, 39,228, 82, 63,179,139, 80, 63,164, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 16,232, 81, 63, - 89,233, 63, 63,139,153, 89, 63,255,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -138,153, 89, 63, 49, 86, 60, 63,139,153, 89, 63,255,153, 71, 63, 16,232, 81, 63, 89,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63,179,139, 80, 63,164, 39, 75, 63, 74,174, 73, 63, -193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63, -138,153, 89, 63, 49, 86, 60, 63,225,225, 82, 63,165, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 75,124, 83, 63,217,228, 40, 63,139,153, 89, 63, 79, 12, 49, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63,139,153, 89, 63, 79, 12, 49, 63, - 75,124, 83, 63,217,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,124, 83, 63, -217,228, 40, 63,225,225, 82, 63,165, 55, 52, 63,196, 33, 77, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 74,174, 73, 63,193,236, 65, 63,179,139, 80, 63,164, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63,148,221, 77, 63, -140, 64, 88, 63,120,223, 69, 63,198, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63, 12, 56, 90, 63,120,223, 69, 63,198, 83, 78, 63,148,221, 77, 63,140, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63,179,139, 80, 63,164, 39, 75, 63,138,153, 89, 63, - 39,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, - 0, 0, 64, 63, 12, 56, 90, 63,136, 32, 58, 63,198, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63, 0, 0, 64, 63,106, 23, 67, 63,120,223, 69, 63,198, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63,120,223, 69, 63,198, 83, 78, 63, - 0, 0, 64, 63,106, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, -106, 23, 67, 63,136, 32, 58, 63,198, 83, 78, 63,182, 81, 54, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 64, 63, 24, 28, 45, 63,124, 84, 68, 63,255,204, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 64, 63, -106, 23, 67, 63,132,171, 59, 63,255,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -182, 81, 54, 63,193,236, 65, 63,132,171, 59, 63,255,204, 55, 63, 0, 0, 64, 63,106, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63,124, 84, 68, 63,255,204, 55, 63, 74,174, 73, 63, -193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63, -182, 81, 54, 63,193,236, 65, 63,136, 32, 58, 63,198, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63,108, 34, 50, 63,140, 64, 88, 63, 77,116, 47, 63,164, 39, 75, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 77,116, 47, 63,164, 39, 75, 63, -108, 34, 50, 63,140, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,108, 34, 50, 63, -140, 64, 88, 63,136, 32, 58, 63,198, 83, 78, 63, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63,117,102, 38, 63, 50, 86, 60, 63,117,102, 38, 63, 78, 12, 49, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63,181,131, 44, 63, -216,228, 40, 63, 31, 30, 45, 63,165, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 60,222, 50, 63,221, 52, 43, 63, 31, 30, 45, 63,165, 55, 52, 63,181,131, 44, 63,216,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,117,102, 38, 63, 78, 12, 49, 63,117,102, 38, 63, - 45,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, - 60,222, 50, 63,221, 52, 43, 63,189,102, 52, 63,113,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63,240, 23, 46, 63, 89,233, 63, 63, 31, 30, 45, 63,165, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 31, 30, 45, 63,165, 55, 52, 63, -240, 23, 46, 63, 89,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 23, 46, 63, - 89,233, 63, 63,189,102, 52, 63,113,155, 54, 63,182, 81, 54, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63,118,102, 38, 63, 38,228, 82, 63,117,102, 38, 63,255,153, 71, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63,240, 23, 46, 63, - 89,233, 63, 63, 77,116, 47, 63,164, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -182, 81, 54, 63,193,236, 65, 63, 77,116, 47, 63,164, 39, 75, 63,240, 23, 46, 63, 89,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63,117,102, 38, 63,255,153, 71, 63,117,102, 38, 63, - 50, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, -182, 81, 54, 63,193,236, 65, 63,189,102, 52, 63,113,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63, 87, 97, 57, 63,200,160, 44, 63,132,171, 59, 63,255,204, 55, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63,132,171, 59, 63,255,204, 55, 63, - 87, 97, 57, 63,200,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 97, 57, 63, -200,160, 44, 63,189,102, 52, 63,113,155, 54, 63, 60,222, 50, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63,118,102, 38, 63, 19,114,105, 63,118,102, 38, 63, 77, 46, 94, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63,108, 34, 50, 63, -140, 64, 88, 63,250,101, 54, 63, 51, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63, 12, 56, 90, 63,250,101, 54, 63, 51, 26, 99, 63,108, 34, 50, 63,140, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63,118,102, 38, 63, 77, 46, 94, 63,118,102, 38, 63, - 38,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, - 0, 0, 64, 63, 12, 56, 90, 63, 6,154, 73, 63, 51, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 64, 63,206,154,109, 63,250,101, 54, 63, 51, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63,250,101, 54, 63, 51, 26, 99, 63, - 0, 0, 64, 63,206,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, -206,154,109, 63, 6,154, 73, 63, 51, 26, 99, 63,138,153, 89, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,120,102, 38, 63,242,187,116, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 64, 63, -206,154,109, 63,136,153, 89, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -138,153, 89, 63, 19,114,105, 63,136,153, 89, 63,242,187,116, 63, 0, 0, 64, 63,206,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63,120,102, 38, 63,242,187,116, 63,118,102, 38, 63, - 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63, -138,153, 89, 63, 19,114,105, 63, 6,154, 73, 63, 51, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63,148,221, 77, 63,140, 64, 88, 63,138,153, 89, 63, 77, 46, 94, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63,138,153, 89, 63, 77, 46, 94, 63, -148,221, 77, 63,140, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,148,221, 77, 63, -140, 64, 88, 63, 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,170,192,229, 61,200,236, 65, 63,203,104,214, 61,120,155, 54, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63,201, 61,254, 61, -207,160, 44, 63,167, 71, 8, 62, 7,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -173,153, 25, 62, 27, 28, 45, 63,167, 71, 8, 62, 7,205, 55, 63,201, 61,254, 61,207,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63,203,104,214, 61,120,155, 54, 63,175, 36,202, 61, -228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, -175, 36,202, 61,228, 52, 43, 63,203,104,214, 61,120,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63, 32,242,163, 61, 96,233, 63, 63,145, 35,156, 61,172, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63,145, 35,156, 61,172, 55, 52, 63, - 32,242,163, 61, 96,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32,242,163, 61, - 96,233, 63, 63,203,104,214, 61,120,155, 54, 63,170,192,229, 61,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,243,203, 76, 61, 41,228, 82, 63,244,203, 76, 61, 2,154, 71, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 32,242,163, 61, - 96,233, 63, 63, 17,213,174, 61,171, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -170,192,229, 61,200,236, 65, 63, 17,213,174, 61,171, 39, 75, 63, 32,242,163, 61, 96,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63,244,203, 76, 61, 2,154, 71, 63,246,203, 76, 61, - 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, -246,203, 76, 61, 53, 86, 60, 63,243,203, 76, 61, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63, 53, 80,151, 61,223,228, 40, 63,145, 35,156, 61,172, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63,145, 35,156, 61,172, 55, 52, 63, - 53, 80,151, 61,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 80,151, 61, -223,228, 40, 63,243,203, 76, 61, 82, 12, 49, 63,246,203, 76, 61, 48,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,170,192,229, 61,200,236, 65, 63,169, 27, 2, 62,204, 83, 78, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63, 23, 70,196, 61, -147, 64, 88, 63, 17,213,174, 61,171, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -243,203, 76, 61, 41,228, 82, 63, 17,213,174, 61,171, 39, 75, 63, 23, 70,196, 61,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63,169, 27, 2, 62,204, 83, 78, 63,160,153, 25, 62, - 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, -160,153, 25, 62, 14, 56, 90, 63,169, 27, 2, 62,204, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63,172,153, 25, 62,108, 23, 67, 63,162, 23, 49, 62,195, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63,162, 23, 49, 62,195, 83, 78, 63, -172,153, 25, 62,108, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,153, 25, 62, -108, 23, 67, 63,169, 27, 2, 62,204, 83, 78, 63,170,192,229, 61,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,173,153, 25, 62, 27, 28, 45, 63,173,235, 42, 62,254,204, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63,172,153, 25, 62, -108, 23, 67, 63,167, 71, 8, 62, 7,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -170,192,229, 61,200,236, 65, 63,167, 71, 8, 62, 7,205, 55, 63,172,153, 25, 62,108, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63,173,235, 42, 62,254,204, 55, 63,240, 82, 64, 62, -183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, -240, 82, 64, 62,183,236, 65, 63,166,200, 91, 62,147, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 34, 16, 81, 62,131, 64, 88, 63,162, 23, 49, 62,195, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63,162, 23, 49, 62,195, 83, 78, 63, - 34, 16, 81, 62,131, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 16, 81, 62, -131, 64, 88, 63,166,200, 91, 62,147, 39, 75, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 62, 19, 86, 60, 63, 92, 33,101, 62,146, 55, 52, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 14,139,103, 62, -199,228, 40, 63, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62, 23,200, 37, 63, 0, 0,128, 62, 47, 12, 49, 63, 14,139,103, 62,199,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 92, 33,101, 62,146, 55, 52, 63,230, 32, 78, 62, -211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, -230, 32, 78, 62,211, 52, 43, 63, 92, 33,101, 62,146, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 23, 58, 97, 62, 69,233, 63, 63,223,254, 71, 62,102,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63,223,254, 71, 62,102,155, 54, 63, - 23, 58, 97, 62, 69,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 58, 97, 62, - 69,233, 63, 63, 92, 33,101, 62,146, 55, 52, 63, 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 62, 13,228, 82, 63,166,200, 91, 62,147, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 23, 58, 97, 62, - 69,233, 63, 63, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 62,228,153, 71, 63, 23, 58, 97, 62, 69,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63,166,200, 91, 62,147, 39, 75, 63,240, 82, 64, 62, -183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, -240, 82, 64, 62,183,236, 65, 63,173,235, 42, 62,254,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63,105, 20, 52, 62,198,160, 44, 63,223,254, 71, 62,102,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63,223,254, 71, 62,102,155, 54, 63, -105, 20, 52, 62,198,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,105, 20, 52, 62, -198,160, 44, 63,173,235, 42, 62,254,204, 55, 63,173,153, 25, 62, 27, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 62, 8,114,105, 63,230, 1, 64, 62, 49, 26, 99, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63, 34, 16, 81, 62, -131, 64, 88, 63, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 62, 58, 46, 94, 63, 34, 16, 81, 62,131, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63,230, 1, 64, 62, 49, 26, 99, 63,160,153, 25, 62, - 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, -160,153, 25, 62, 14, 56, 90, 63,230, 1, 64, 62, 49, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63,159,153, 25, 62,210,154,109, 63,164, 98,230, 61, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,237,203, 76, 61, 22,114,105, 63,164, 98,230, 61, 58, 26, 99, 63, -159,153, 25, 62,210,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,153, 25, 62, -210,154,109, 63,230, 1, 64, 62, 49, 26, 99, 63, 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 3,153, 59, 63, 0, 0,128, 63, 95,102,134, 63,242,187,116, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,210,203, 76, 61,242,187,116, 63,159,153, 25, 62, -210,154,109, 63, 0, 0,128, 62,232,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 62,232,187,116, 63,159,153, 25, 62,210,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63,210,203, 76, 61,242,187,116, 63,237,203, 76, 61, - 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, -237,203, 76, 61, 22,114,105, 63,234,203, 76, 61, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,234,203, 76, 61, 79, 46, 94, 63, 23, 70,196, 61,147, 64, 88, 63,164, 98,230, 61, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63,164, 98,230, 61, 58, 26, 99, 63, - 23, 70,196, 61,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 70,196, 61, -147, 64, 88, 63,234,203, 76, 61, 79, 46, 94, 63,243,203, 76, 61, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63,136,214,159, 62,183,236, 65, 63,145, 0,156, 62,102,155, 54, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63,204,245,165, 62, -198,160, 44, 63, 42,138,170, 62,254,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 42, 51,179, 62, 28, 28, 45, 63, 42,138,170, 62,254,204, 55, 63,204,245,165, 62,198,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63,145, 0,156, 62,102,155, 54, 63,141,239,152, 62, -211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, -141,239,152, 62,211, 52, 43, 63,145, 0,156, 62,102,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63,245, 98,143, 62, 68,233, 63, 63, 82,111,141, 62,146, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 82,111,141, 62,146, 55, 52, 63, -245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245, 98,143, 62, - 68,233, 63, 63,145, 0,156, 62,102,155, 54, 63,136,214,159, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 62,228,153, 71, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63,245, 98,143, 62, - 68,233, 63, 63,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -136,214,159, 62,183,236, 65, 63,173, 27,146, 62,147, 39, 75, 63,245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 62, - 19, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, - 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63,121, 58,140, 62,199,228, 40, 63, 82,111,141, 62,146, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 82,111,141, 62,146, 55, 52, 63, -121, 58,140, 62,199,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121, 58,140, 62, -199,228, 40, 63, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 62, 23,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63,136,214,159, 62,183,236, 65, 63, 47,116,167, 62,195, 83, 78, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63,239,119,151, 62, -131, 64, 88, 63,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62, 13,228, 82, 63,173, 27,146, 62,147, 39, 75, 63,239,119,151, 62,131, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 47,116,167, 62,195, 83, 78, 63, 49, 51,179, 62, - 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, - 49, 51,179, 62, 14, 56, 90, 63, 47,116,167, 62,195, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63, 42, 51,179, 62,108, 23, 67, 63, 44,242,190, 62,205, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 44,242,190, 62,205, 83, 78, 63, - 42, 51,179, 62,108, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 51,179, 62, -108, 23, 67, 63, 47,116,167, 62,195, 83, 78, 63,136,214,159, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 42, 51,179, 62, 28, 28, 45, 63, 45,220,187, 62, 7,205, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63, 42, 51,179, 62, -108, 23, 67, 63, 42,138,170, 62,254,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -136,214,159, 62,183,236, 65, 63, 42,138,170, 62,254,204, 55, 63, 42, 51,179, 62,108, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 45,220,187, 62, 7,205, 55, 63,214,143,198, 62, -200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, -214,143,198, 62,200,236, 65, 63,188, 74,212, 62,171, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63,122,238,206, 62,147, 64, 88, 63, 44,242,190, 62,205, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 44,242,190, 62,205, 83, 78, 63, -122,238,206, 62,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,238,206, 62, -147, 64, 88, 63,188, 74,212, 62,171, 39, 75, 63,130,102,230, 62, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63,129,102,230, 62, 53, 86, 60, 63, 28,247,216, 62,172, 55, 52, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63,243, 43,218, 62, -223,228, 40, 63,130,102,230, 62, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -129,102,230, 62, 48,200, 37, 63,130,102,230, 62, 82, 12, 49, 63,243, 43,218, 62,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 28,247,216, 62,172, 55, 52, 63,212,118,205, 62, -228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, -212,118,205, 62,228, 52, 43, 63, 28,247,216, 62,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63,120, 3,215, 62, 95,233, 63, 63,206,101,202, 62,120,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63,206,101,202, 62,120,155, 54, 63, -120, 3,215, 62, 95,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120, 3,215, 62, - 95,233, 63, 63, 28,247,216, 62,172, 55, 52, 63,129,102,230, 62, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63,130,102,230, 62, 41,228, 82, 63,188, 74,212, 62,171, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63,120, 3,215, 62, - 95,233, 63, 63,130,102,230, 62, 1,154, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -129,102,230, 62, 53, 86, 60, 63,130,102,230, 62, 1,154, 71, 63,120, 3,215, 62, 95,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63,188, 74,212, 62,171, 39, 75, 63,214,143,198, 62, -200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, -214,143,198, 62,200,236, 65, 63, 45,220,187, 62, 7,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63,142,112,192, 62,207,160, 44, 63,206,101,202, 62,120,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63,206,101,202, 62,120,155, 54, 63, -142,112,192, 62,207,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,142,112,192, 62, -207,160, 44, 63, 45,220,187, 62, 7,205, 55, 63, 42, 51,179, 62, 28, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63,131,102,230, 62, 22,114,105, 63, 87,103,198, 62, 58, 26, 99, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63,122,238,206, 62, -147, 64, 88, 63,131,102,230, 62, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -130,102,230, 62, 41,228, 82, 63,131,102,230, 62, 79, 46, 94, 63,122,238,206, 62,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 87,103,198, 62, 58, 26, 99, 63, 49, 51,179, 62, - 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, - 49, 51,179, 62, 14, 56, 90, 63, 87,103,198, 62, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63, 49, 51,179, 62,210,154,109, 63, 14,255,159, 62, 49, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 14,255,159, 62, 49, 26, 99, 63, - 49, 51,179, 62,210,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62, -210,154,109, 63, 87,103,198, 62, 58, 26, 99, 63,131,102,230, 62, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63, 0, 0,128, 62,232,187,116, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 49, 51,179, 62, -210,154,109, 63,134,102,230, 62,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -131,102,230, 62, 22,114,105, 63,134,102,230, 62,242,187,116, 63, 49, 51,179, 62,210,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0,128, 62,232,187,116, 63, 0, 0,128, 62, - 8,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, - 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63,239,119,151, 62,131, 64, 88, 63, 14,255,159, 62, 49, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 14,255,159, 62, 49, 26, 99, 63, -239,119,151, 62,131, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,119,151, 62, -131, 64, 88, 63, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,140, 30, 3, 63,201,236, 65, 63,145, 51, 1, 63,121,155, 54, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63, 46, 46, 6, 63, -211,160, 44, 63, 93,120, 8, 63, 11,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -220,204, 12, 63, 35, 28, 45, 63, 93,120, 8, 63, 11,205, 55, 63, 46, 46, 6, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63,145, 51, 1, 63,121,155, 54, 63, 30, 86,255, 62, -230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, - 30, 86,255, 62,230, 52, 43, 63,145, 51, 1, 63,121,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63,128,201,245, 62, 94,233, 63, 63,222,213,243, 62,172, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63,222,213,243, 62,172, 55, 52, 63, -128,201,245, 62, 94,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,201,245, 62, - 94,233, 63, 63,145, 51, 1, 63,121,155, 54, 63,140, 30, 3, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,130,102,230, 62, 41,228, 82, 63,130,102,230, 62, 1,154, 71, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63,128,201,245, 62, - 94,233, 63, 63, 59,130,248, 62,169, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -140, 30, 3, 63,201,236, 65, 63, 59,130,248, 62,169, 39, 75, 63,128,201,245, 62, 94,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63,130,102,230, 62, 1,154, 71, 63,129,102,230, 62, - 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, -129,102,230, 62, 53, 86, 60, 63,130,102,230, 62, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63, 9,161,242, 62,223,228, 40, 63,222,213,243, 62,172, 55, 52, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63,222,213,243, 62,172, 55, 52, 63, - 9,161,242, 62,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9,161,242, 62, -223,228, 40, 63,130,102,230, 62, 82, 12, 49, 63,129,102,230, 62, 48,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,140, 30, 3, 63,201,236, 65, 63, 94,237, 6, 63,207, 83, 78, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63,118,222,253, 62, -148, 64, 88, 63, 59,130,248, 62,169, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -130,102,230, 62, 41,228, 82, 63, 59,130,248, 62,169, 39, 75, 63,118,222,253, 62,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 94,237, 6, 63,207, 83, 78, 63,220,204, 12, 63, - 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, -220,204, 12, 63, 22, 56, 90, 63, 94,237, 6, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63,220,204, 12, 63,115, 23, 67, 63, 88,172, 18, 63,207, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 88,172, 18, 63,207, 83, 78, 63, -220,204, 12, 63,115, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63, -115, 23, 67, 63, 94,237, 6, 63,207, 83, 78, 63,140, 30, 3, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,220,204, 12, 63, 35, 28, 45, 63, 91, 33, 17, 63, 9,205, 55, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63,220,204, 12, 63, -115, 23, 67, 63, 93,120, 8, 63, 11,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -140, 30, 3, 63,201,236, 65, 63, 93,120, 8, 63, 11,205, 55, 63,220,204, 12, 63,115, 23, 67, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 91, 33, 17, 63, 9,205, 55, 63, 44,123, 22, 63, -201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, - 44,123, 22, 63,201,236, 65, 63,153, 88, 29, 63,167, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63,121,170, 26, 63,147, 64, 88, 63, 88,172, 18, 63,207, 83, 78, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 88,172, 18, 63,207, 83, 78, 63, -121,170, 26, 63,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121,170, 26, 63, -147, 64, 88, 63,153, 88, 29, 63,167, 39, 75, 63,118,102, 38, 63, 38,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63,117,102, 38, 63, 50, 86, 60, 63,200,174, 31, 63,169, 55, 52, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63, 51, 73, 32, 63, -221,228, 40, 63,117,102, 38, 63, 78, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -117,102, 38, 63, 45,200, 37, 63,117,102, 38, 63, 78, 12, 49, 63, 51, 73, 32, 63,221,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63,200,174, 31, 63,169, 55, 52, 63,169,238, 25, 63, -229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, -169,238, 25, 63,229, 52, 43, 63,200,174, 31, 63,169, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63,246,180, 30, 63, 92,233, 63, 63, 39,102, 24, 63,119,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 39,102, 24, 63,119,155, 54, 63, -246,180, 30, 63, 92,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,180, 30, 63, - 92,233, 63, 63,200,174, 31, 63,169, 55, 52, 63,117,102, 38, 63, 50, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63,118,102, 38, 63, 38,228, 82, 63,153, 88, 29, 63,167, 39, 75, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63,246,180, 30, 63, - 92,233, 63, 63,117,102, 38, 63,255,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -117,102, 38, 63, 50, 86, 60, 63,117,102, 38, 63,255,153, 71, 63,246,180, 30, 63, 92,233, 63, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63,153, 88, 29, 63,167, 39, 75, 63, 44,123, 22, 63, -201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, - 44,123, 22, 63,201,236, 65, 63, 91, 33, 17, 63, 9,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63,138,107, 19, 63,211,160, 44, 63, 39,102, 24, 63,119,155, 54, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 39,102, 24, 63,119,155, 54, 63, -138,107, 19, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,107, 19, 63, -211,160, 44, 63, 91, 33, 17, 63, 9,205, 55, 63,220,204, 12, 63, 35, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63,118,102, 38, 63, 19,114,105, 63,235,102, 22, 63, 59, 26, 99, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63,121,170, 26, 63, -147, 64, 88, 63,118,102, 38, 63, 77, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -118,102, 38, 63, 38,228, 82, 63,118,102, 38, 63, 77, 46, 94, 63,121,170, 26, 63,147, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63,235,102, 22, 63, 59, 26, 99, 63,220,204, 12, 63, - 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, -220,204, 12, 63, 22, 56, 90, 63,235,102, 22, 63, 59, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63,224,204, 12, 63,212,154,109, 63,204, 50, 3, 63, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63,204, 50, 3, 63, 58, 26, 99, 63, -224,204, 12, 63,212,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,204, 12, 63, -212,154,109, 63,235,102, 22, 63, 59, 26, 99, 63,118,102, 38, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,134,102,230, 62,242,187,116, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63,224,204, 12, 63, -212,154,109, 63,120,102, 38, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -118,102, 38, 63, 19,114,105, 63,120,102, 38, 63,242,187,116, 63,224,204, 12, 63,212,154,109, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63,134,102,230, 62,242,187,116, 63,131,102,230, 62, - 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, -131,102,230, 62, 22,114,105, 63,131,102,230, 62, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63,118,222,253, 62,148, 64, 88, 63,204, 50, 3, 63, 58, 26, 99, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63,204, 50, 3, 63, 58, 26, 99, 63, -118,222,253, 62,148, 64, 88, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,222,253, 62, -148, 64, 88, 63,131,102,230, 62, 79, 46, 94, 63,130,102,230, 62, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63,176,235, 70, 63,226,209, 22, 63, 80,234, 73, 63,146,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 1,200, 79, 63, - 94,152, 9, 63,213,233, 76, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 19,215, 82, 63,252, 29, 19, 63,213,233, 76, 63, 35, 48, 21, 63, 1,200, 79, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 80,234, 73, 63,146,111, 11, 63,193,204, 76, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, - 19,215, 82, 63,252, 29, 19, 63,220, 41, 80, 63,105, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63,164,219, 73, 63,173, 23, 33, 63,213,233, 76, 63, 35, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63,213,233, 76, 63, 35, 48, 21, 63, -164,219, 73, 63,173, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,219, 73, 63, -173, 23, 33, 63,220, 41, 80, 63,105, 60, 31, 63,196, 33, 77, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 64, 63, 24, 28, 45, 63, 5,171, 67, 63,216, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63,164,219, 73, 63, -173, 23, 33, 63,169,158, 70, 63,200,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -196, 33, 77, 63,221, 52, 43, 63,169,158, 70, 63,200,160, 44, 63,164,219, 73, 63,173, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 5,171, 67, 63,216, 17, 34, 63,176,235, 70, 63, -226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63, -196, 33, 77, 63,221, 52, 43, 63,220, 41, 80, 63,105, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63,218, 20, 86, 63,143,140, 28, 63, 75,124, 83, 63,217,228, 40, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 75,124, 83, 63,217,228, 40, 63, -218, 20, 86, 63,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 20, 86, 63, -143,140, 28, 63,220, 41, 80, 63,105, 60, 31, 63, 19,215, 82, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63,176,235, 70, 63,226,209, 22, 63, 5,171, 67, 63,216, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63,251, 84, 60, 63, -216, 17, 34, 63, 0, 0, 64, 63,182, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 80, 20, 57, 63,226,209, 22, 63, 0, 0, 64, 63,182, 32, 23, 63,251, 84, 60, 63,216, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 5,171, 67, 63,216, 17, 34, 63, 0, 0, 64, 63, - 24, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, - 80, 20, 57, 63,226,209, 22, 63,169,156, 60, 63, 96,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63, 87, 99, 67, 63, 96,116, 11, 63, 0, 0, 64, 63,182, 32, 23, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 64, 63,182, 32, 23, 63, - 87, 99, 67, 63, 96,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 99, 67, 63, - 96,116, 11, 63,169,156, 60, 63, 96,116, 11, 63, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63,193,204, 76, 63, 0, 0, 0, 63, 80,234, 73, 63,146,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 87, 99, 67, 63, - 96,116, 11, 63, 96,102, 70, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63, 0, 0, 0, 63, 96,102, 70, 63,244, 1, 0, 63, 87, 99, 67, 63, 96,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 80,234, 73, 63,146,111, 11, 63,176,235, 70, 63, -226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, - 0, 0, 64, 63, 0, 0, 0, 63,169,156, 60, 63, 96,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63,176, 21, 54, 63,146,111, 11, 63,160,153, 57, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63,160,153, 57, 63,244, 1, 0, 63, -176, 21, 54, 63,146,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176, 21, 54, 63, -146,111, 11, 63,169,156, 60, 63, 96,116, 11, 63, 80, 20, 57, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62,144, 61, 57, 63, 19,196,217, 62, 85,123, 60, 63,253,230,198, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62,171,132, 67, 63, -253,230,198, 62, 0, 0, 64, 63, 93, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -112,194, 70, 63, 19,196,217, 62, 0, 0, 64, 63, 93, 58,217, 62,171,132, 67, 63,253,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 85,123, 60, 63,253,230,198, 62, 0, 0, 64, 63, -211,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62, -112,194, 70, 63, 19,196,217, 62,125, 84, 67, 63, 42,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62,131,171, 60, 63, 42,211,236, 62, 0, 0, 64, 63, 93, 58,217, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 64, 63, 93, 58,217, 62, -131,171, 60, 63, 42,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,171, 60, 63, - 42,211,236, 62,125, 84, 67, 63, 42,211,236, 62, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 63, 51, 51, 63, 0, 0, 0, 63,128, 46, 54, 63, 75,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62,131,171, 60, 63, - 42,211,236, 62,160,153, 57, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63, 0, 0, 0, 63,160,153, 57, 63,244, 1, 0, 63,131,171, 60, 63, 42,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62,128, 46, 54, 63, 75,207,236, 62,144, 61, 57, 63, - 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, - 0, 0, 64, 63, 0, 0, 0, 63,125, 84, 67, 63, 42,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62,128,209, 73, 63, 75,207,236, 62, 96,102, 70, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 96,102, 70, 63,244, 1, 0, 63, -128,209, 73, 63, 75,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,209, 73, 63, - 75,207,236, 62,125, 84, 67, 63, 42,211,236, 62,112,194, 70, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63,237, 40, 45, 63,252, 29, 19, 63,255, 55, 48, 63, 94,152, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63,176, 21, 54, 63, -146,111, 11, 63, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 80, 20, 57, 63,226,209, 22, 63, 43, 22, 51, 63, 35, 48, 21, 63,176, 21, 54, 63,146,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63,255, 55, 48, 63, 94,152, 9, 63, 63, 51, 51, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, - 80, 20, 57, 63,226,209, 22, 63, 91, 36, 54, 63,173, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63, 36,214, 47, 63,105, 60, 31, 63, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 43, 22, 51, 63, 35, 48, 21, 63, - 36,214, 47, 63,105, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36,214, 47, 63, -105, 60, 31, 63, 91, 36, 54, 63,173, 23, 33, 63, 60,222, 50, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,117,102, 38, 63, 45,200, 37, 63, 38,235, 41, 63,141,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 36,214, 47, 63, -105, 60, 31, 63,181,131, 44, 63,216,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 60,222, 50, 63,221, 52, 43, 63,181,131, 44, 63,216,228, 40, 63, 36,214, 47, 63,105, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 38,235, 41, 63,141,140, 28, 63,237, 40, 45, 63, -252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, - 60,222, 50, 63,221, 52, 43, 63, 91, 36, 54, 63,173, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63,251, 84, 60, 63,216, 17, 34, 63, 87, 97, 57, 63,200,160, 44, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 87, 97, 57, 63,200,160, 44, 63, -251, 84, 60, 63,216, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251, 84, 60, 63, -216, 17, 34, 63, 91, 36, 54, 63,173, 23, 33, 63, 80, 20, 57, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,134, 14,128, 63, 39, 48, 21, 63,227, 30,122, 63,233,209, 22, 63,138, 29,125, 63,150,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63,159,125,129, 63, - 94,152, 9, 63,134, 14,128, 63, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -174, 73,193, 60,253, 29, 19, 63,209, 92,232, 57, 39, 48, 21, 63,114,207, 62, 60, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,125,129, 63, 94,152, 9, 63,138, 29,125, 63,150,111, 11, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,209, 92,232, 57, 39, 48, 21, 63, -174, 73,193, 60,253, 29, 19, 63,214, 67, 87, 60,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,136,174,129, 63,110, 60, 31, 63,213, 14,125, 63,180, 23, 33, 63,134, 14,128, 63, 39, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63,134, 14,128, 63, 39, 48, 21, 63, -213, 14,125, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14,125, 63, -180, 23, 33, 63,136,174,129, 63,110, 60, 31, 63,121, 42,128, 63,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 36, 51,115, 63, 36, 28, 45, 63, 49,222,118, 63,226, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63,213, 14,125, 63, -180, 23, 33, 63,210,209,121, 63,212,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -121, 42,128, 63,230, 52, 43, 63,210,209,121, 63,212,160, 44, 63,213, 14,125, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 49,222,118, 63,226, 17, 34, 63,227, 30,122, 63, -233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, -120,226,169, 58,230, 52, 43, 63,214, 67, 87, 60,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,214, 67, 87, 60,110, 60, 31, 63, 13,129, 20, 61,143,140, 28, 63,111,239,213, 60,223,228, 40, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63,111,239,213, 60,223,228, 40, 63, - 13,129, 20, 61,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 13,129, 20, 61, -143,140, 28, 63,214, 67, 87, 60,110, 60, 31, 63,174, 73,193, 60,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63,227, 30,122, 63,233,209, 22, 63, 49,222,118, 63,226, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 31,136,111, 63, -225, 17, 34, 63, 44, 51,115, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -116, 71,108, 63,232,209, 22, 63, 44, 51,115, 63,188, 32, 23, 63, 31,136,111, 63,225, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 49,222,118, 63,226, 17, 34, 63, 36, 51,115, 63, - 36, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63, -116, 71,108, 63,232,209, 22, 63,213,207,111, 63,100,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63,138,150,118, 63,101,116, 11, 63, 44, 51,115, 63,188, 32, 23, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 44, 51,115, 63,188, 32, 23, 63, -138,150,118, 63,101,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,150,118, 63, -101,116, 11, 63,213,207,111, 63,100,116, 11, 63, 51, 51,115, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,138, 29,125, 63,150,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63,138,150,118, 63, -101,116, 11, 63,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 51, 51,115, 63, 0, 0, 0, 63,154,153,121, 63,244, 1, 0, 63,138,150,118, 63,101,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63,138, 29,125, 63,150,111, 11, 63,227, 30,122, 63, -233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, - 51, 51,115, 63, 0, 0, 0, 63,213,207,111, 63,100,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63,213, 72,105, 63,149,111, 11, 63,205,204,108, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63,205,204,108, 63,244, 1, 0, 63, -213, 72,105, 63,149,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 72,105, 63, -149,111, 11, 63,213,207,111, 63,100,116, 11, 63,116, 71,108, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62,192,112,108, 63, 4,196,217, 62,139,174,111, 63,223,230,198, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62,239,183,118, 63, -227,230,198, 62, 58, 51,115, 63, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -179,245,121, 63, 6,196,217, 62, 58, 51,115, 63, 73, 58,217, 62,239,183,118, 63,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62,139,174,111, 63,223,230,198, 62, 65, 51,115, 63, -160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62, -179,245,121, 63, 6,196,217, 62,185,135,118, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62,180,222,111, 63, 30,211,236, 62, 58, 51,115, 63, 73, 58,217, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 58, 51,115, 63, 73, 58,217, 62, -180,222,111, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,222,111, 63, - 30,211,236, 62,185,135,118, 63, 30,211,236, 62, 51, 51,115, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63,101,102,102, 63, 0, 0, 0, 63,170, 97,105, 63, 65,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62,180,222,111, 63, - 30,211,236, 62,205,204,108, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 51, 51,115, 63, 0, 0, 0, 63,205,204,108, 63,244, 1, 0, 63,180,222,111, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62,170, 97,105, 63, 65,207,236, 62,192,112,108, 63, - 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, - 51, 51,115, 63, 0, 0, 0, 63,185,135,118, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62,194, 4,125, 63, 67,207,236, 62,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63,154,153,121, 63,244, 1, 0, 63, -194, 4,125, 63, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 4,125, 63, - 67,207,236, 62,185,135,118, 63, 30,211,236, 62,179,245,121, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 11, 92, 96, 63,253, 29, 19, 63, 33,107, 99, 63, 94,152, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63,213, 72,105, 63, -149,111, 11, 63, 76, 73,102, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -116, 71,108, 63,232,209, 22, 63, 76, 73,102, 63, 38, 48, 21, 63,213, 72,105, 63,149,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 33,107, 99, 63, 94,152, 9, 63,101,102,102, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, -116, 71,108, 63,232,209, 22, 63,124, 87,105, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 65, 9, 99, 63,109, 60, 31, 63, 76, 73,102, 63, 38, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 76, 73,102, 63, 38, 48, 21, 63, - 65, 9, 99, 63,109, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 9, 99, 63, -109, 60, 31, 63,124, 87,105, 63,180, 23, 33, 63, 87, 17,102, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63,139,153, 89, 63, 45,200, 37, 63, 63, 30, 93, 63,143,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 65, 9, 99, 63, -109, 60, 31, 63,205,182, 95, 63,222,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 87, 17,102, 63,229, 52, 43, 63,205,182, 95, 63,222,228, 40, 63, 65, 9, 99, 63,109, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 63, 30, 93, 63,143,140, 28, 63, 11, 92, 96, 63, -253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, - 87, 17,102, 63,229, 52, 43, 63,124, 87,105, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 31,136,111, 63,225, 17, 34, 63,118,148,108, 63,211,160, 44, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63,118,148,108, 63,211,160, 44, 63, - 31,136,111, 63,225, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,136,111, 63, -225, 17, 34, 63,124, 87,105, 63,180, 23, 33, 63,116, 71,108, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63,152, 72, 53, 62,229,209, 22, 63, 47, 67, 65, 62,147,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63,255,185, 88, 62, - 90,152, 9, 63, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 64,246,100, 62,246, 29, 19, 63, 65, 65, 77, 62, 32, 48, 21, 63,255,185, 88, 62, 90,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63, 47, 67, 65, 62,147,111, 11, 63,254,204, 76, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, - 64,246,100, 62,246, 29, 19, 63, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63,107, 8, 65, 62,170, 23, 33, 63, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 65, 65, 77, 62, 32, 48, 21, 63, -107, 8, 65, 62,170, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107, 8, 65, 62, -170, 23, 33, 63, 89, 65, 90, 62, 94, 60, 31, 63,230, 32, 78, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63,173,153, 25, 62, 27, 28, 45, 63,216, 69, 40, 62,220, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63,107, 8, 65, 62, -170, 23, 33, 63,105, 20, 52, 62,198,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -230, 32, 78, 62,211, 52, 43, 63,105, 20, 52, 62,198,160, 44, 63,107, 8, 65, 62,170, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63,216, 69, 40, 62,220, 17, 34, 63,152, 72, 53, 62, -229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, -230, 32, 78, 62,211, 52, 43, 63, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63, 83,237,113, 62,130,140, 28, 63, 14,139,103, 62,199,228, 40, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 14,139,103, 62,199,228, 40, 63, - 83,237,113, 62,130,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 83,237,113, 62, -130,140, 28, 63, 89, 65, 90, 62, 94, 60, 31, 63, 64,246,100, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63,152, 72, 53, 62,229,209, 22, 63,216, 69, 40, 62,220, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63,133,237, 10, 62, -219, 17, 34, 63,180,153, 25, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -147,213,251, 61,228,209, 22, 63,180,153, 25, 62,185, 32, 23, 63,133,237, 10, 62,219, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63,216, 69, 40, 62,220, 17, 34, 63,173,153, 25, 62, - 27, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63, -147,213,251, 61,228,209, 22, 63, 67, 12, 12, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63, 34, 39, 39, 62, 98,116, 11, 63,180,153, 25, 62,185, 32, 23, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63,180,153, 25, 62,185, 32, 23, 63, - 34, 39, 39, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 39, 39, 62, - 98,116, 11, 63, 67, 12, 12, 62, 98,116, 11, 63,181,153, 25, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63,254,204, 76, 62, 0, 0, 0, 63, 47, 67, 65, 62,147,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 34, 39, 39, 62, - 98,116, 11, 63, 92, 51, 51, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -181,153, 25, 62, 0, 0, 0, 63, 92, 51, 51, 62,244, 1, 0, 63, 34, 39, 39, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 47, 67, 65, 62,147,111, 11, 63,152, 72, 53, 62, -229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63, -181,153, 25, 62, 0, 0, 0, 63, 67, 12, 12, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63,109,224,227, 61,147,111, 11, 63, 8, 0, 0, 62,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 8, 0, 0, 62,244, 1, 0, 63, -109,224,227, 61,147,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,224,227, 61, -147,111, 11, 63, 67, 12, 12, 62, 98,116, 11, 63,147,213,251, 61,228,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62,171, 31,253, 61, 6,196,217, 62, 1,135, 11, 62,228,230,198, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62,153,172, 39, 62, -230,230,198, 62,196,153, 25, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -179,163, 52, 62, 7,196,217, 62,196,153, 25, 62, 73, 58,217, 62,153,172, 39, 62,230,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62, 1,135, 11, 62,228,230,198, 62,214,153, 25, 62, -165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62, -179,163, 52, 62, 7,196,217, 62,202,235, 38, 62, 33,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62,173, 71, 12, 62, 31,211,236, 62,196,153, 25, 62, 73, 58,217, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62,196,153, 25, 62, 73, 58,217, 62, -173, 71, 12, 62, 31,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173, 71, 12, 62, - 31,211,236, 62,202,235, 38, 62, 33,211,236, 62,181,153, 25, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63,215,204,204, 61, 0, 0, 0, 63,251,166,228, 61, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62,173, 71, 12, 62, - 31,211,236, 62, 8, 0, 0, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -181,153, 25, 62, 0, 0, 0, 63, 8, 0, 0, 62,244, 1, 0, 63,173, 71, 12, 62, 31,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62,251,166,228, 61, 67,207,236, 62,171, 31,253, 61, - 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63, -181,153, 25, 62, 0, 0, 0, 63,202,235, 38, 62, 33,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62,251,223, 64, 62, 67,207,236, 62, 92, 51, 51, 62,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 92, 51, 51, 62,244, 1, 0, 63, -251,223, 64, 62, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,223, 64, 62, - 67,207,236, 62,202,235, 38, 62, 33,211,236, 62,179,163, 52, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 1,122,156, 61,254, 29, 19, 63,172,242,180, 61, 96,152, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63,109,224,227, 61, -147,111, 11, 63, 42,228,203, 61, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -147,213,251, 61,228,209, 22, 63, 42,228,203, 61, 37, 48, 21, 63,109,224,227, 61,147,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63,172,242,180, 61, 96,152, 9, 63,215,204,204, 61, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, -147,213,251, 61,228,209, 22, 63,208, 85,228, 61,179, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63,212,227,177, 61,110, 60, 31, 63, 42,228,203, 61, 37, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 42,228,203, 61, 37, 48, 21, 63, -212,227,177, 61,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,227,177, 61, -110, 60, 31, 63,208, 85,228, 61,179, 23, 33, 63,175, 36,202, 61,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63,246,203, 76, 61, 48,200, 37, 63,166,139,130, 61,145,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63,212,227,177, 61, -110, 60, 31, 63, 53, 80,151, 61,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -175, 36,202, 61,228, 52, 43, 63, 53, 80,151, 61,223,228, 40, 63,212,227,177, 61,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63,166,139,130, 61,145,140, 28, 63, 1,122,156, 61, -254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63, -175, 36,202, 61,228, 52, 43, 63,208, 85,228, 61,179, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63,133,237, 10, 62,219, 17, 34, 63,201, 61,254, 61,207,160, 44, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63,201, 61,254, 61,207,160, 44, 63, -133,237, 10, 62,219, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,237, 10, 62, -219, 17, 34, 63,208, 85,228, 61,179, 23, 33, 63,147,213,251, 61,228,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63,155, 10,193, 62,229,209, 22, 63,229, 7,199, 62,147,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 85,195,210, 62, - 96,152, 9, 63,245, 6,205, 62, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -128,225,216, 62,254, 29, 19, 63,245, 6,205, 62, 37, 48, 21, 63, 85,195,210, 62, 96,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63,229, 7,199, 62,147,111, 11, 63,202,204,204, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63, -128,225,216, 62,254, 29, 19, 63, 11,135,211, 62,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63,140,234,198, 62,179, 23, 33, 63,245, 6,205, 62, 37, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63,245, 6,205, 62, 37, 48, 21, 63, -140,234,198, 62,179, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,234,198, 62, -179, 23, 33, 63, 11,135,211, 62,110, 60, 31, 63,212,118,205, 62,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 42, 51,179, 62, 28, 28, 45, 63, 61,137,186, 62,219, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63,140,234,198, 62, -179, 23, 33, 63,142,112,192, 62,207,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -212,118,205, 62,228, 52, 43, 63,142,112,192, 62,207,160, 44, 63,140,234,198, 62,179, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 61,137,186, 62,219, 17, 34, 63,155, 10,193, 62, -229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, -212,118,205, 62,228, 52, 43, 63, 11,135,211, 62,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63, 22, 93,223, 62,145,140, 28, 63,243, 43,218, 62,223,228, 40, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63,243, 43,218, 62,223,228, 40, 63, - 22, 93,223, 62,145,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 93,223, 62, -145,140, 28, 63, 11,135,211, 62,110, 60, 31, 63,128,225,216, 62,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63,155, 10,193, 62,229,209, 22, 63, 61,137,186, 62,219, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 20,221,171, 62, -219, 17, 34, 63, 38, 51,179, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -180, 91,165, 62,229,209, 22, 63, 38, 51,179, 62,185, 32, 23, 63, 20,221,171, 62,219, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 61,137,186, 62,219, 17, 34, 63, 42, 51,179, 62, - 28, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63, -180, 91,165, 62,229,209, 22, 63,111,108,172, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63,222,249,185, 62, 98,116, 11, 63, 38, 51,179, 62,185, 32, 23, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 38, 51,179, 62,185, 32, 23, 63, -222,249,185, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,249,185, 62, - 98,116, 11, 63,111,108,172, 62, 98,116, 11, 63, 38, 51,179, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63,202,204,204, 62, 0, 0, 0, 63,229, 7,199, 62,147,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63,222,249,185, 62, - 98,116, 11, 63,252,255,191, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 38, 51,179, 62, 0, 0, 0, 63,252,255,191, 62,244, 1, 0, 63,222,249,185, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63,229, 7,199, 62,147,111, 11, 63,155, 10,193, 62, -229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, - 38, 51,179, 62, 0, 0, 0, 63,111,108,172, 62, 98,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63,104, 94,159, 62,147,111, 11, 63, 82,102,166, 62,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 82,102,166, 62,244, 1, 0, 63, -104, 94,159, 62,147,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104, 94,159, 62, -147,111, 11, 63,111,108,172, 62, 98,116, 11, 63,180, 91,165, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 39,174,165, 62, 7,196,217, 62,180, 41,172, 62,227,230,198, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62,127, 60,186, 62, -225,230,198, 62, 30, 51,179, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 21,184,192, 62, 6,196,217, 62, 30, 51,179, 62, 73, 58,217, 62,127, 60,186, 62,225,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62,180, 41,172, 62,227,230,198, 62, 21, 51,179, 62, -165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, - 21,184,192, 62, 6,196,217, 62, 42,220,185, 62, 31,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 27,138,172, 62, 33,211,236, 62, 30, 51,179, 62, 73, 58,217, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 30, 51,179, 62, 73, 58,217, 62, - 27,138,172, 62, 33,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27,138,172, 62, - 33,211,236, 62, 42,220,185, 62, 31,211,236, 62, 38, 51,179, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63,129,153,153, 62, 0, 0, 0, 63, 3,144,159, 62, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 27,138,172, 62, - 33,211,236, 62, 82,102,166, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 38, 51,179, 62, 0, 0, 0, 63, 82,102,166, 62,244, 1, 0, 63, 27,138,172, 62, 33,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 3,144,159, 62, 67,207,236, 62, 39,174,165, 62, - 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, - 38, 51,179, 62, 0, 0, 0, 63, 42,220,185, 62, 31,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 65,214,198, 62, 67,207,236, 62,252,255,191, 62,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63,252,255,191, 62,244, 1, 0, 63, - 65,214,198, 62, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65,214,198, 62, - 67,207,236, 62, 42,220,185, 62, 31,211,236, 62, 21,184,192, 62, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63,224,132,141, 62,246, 29, 19, 63, 1,163,147, 62, 91,152, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63,104, 94,159, 62, -147,111, 11, 63, 95, 95,153, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -180, 91,165, 62,229,209, 22, 63, 95, 95,153, 62, 32, 48, 21, 63,104, 94,159, 62,147,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 1,163,147, 62, 91,152, 9, 63,129,153,153, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63, -180, 91,165, 62,229,209, 22, 63,203,123,159, 62,170, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 84,223,146, 62, 94, 60, 31, 63, 95, 95,153, 62, 32, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 95, 95,153, 62, 32, 48, 21, 63, - 84,223,146, 62, 94, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 84,223,146, 62, - 94, 60, 31, 63,203,123,159, 62,170, 23, 33, 63,141,239,152, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 62, 23,200, 37, 63, 86, 9,135, 62,130,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 84,223,146, 62, - 94, 60, 31, 63,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -141,239,152, 62,211, 52, 43, 63,121, 58,140, 62,199,228, 40, 63, 84,223,146, 62, 94, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 86, 9,135, 62,130,140, 28, 63,224,132,141, 62, -246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63, -141,239,152, 62,211, 52, 43, 63,203,123,159, 62,170, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 20,221,171, 62,219, 17, 34, 63,204,245,165, 62,198,160, 44, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63,204,245,165, 62,198,160, 44, 63, - 20,221,171, 62,219, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20,221,171, 62, -219, 17, 34, 63,203,123,159, 62,170, 23, 33, 63,180, 91,165, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63,140,184, 19, 63,232,209, 22, 63, 43,183, 22, 63,149,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63,223,148, 28, 63, - 94,152, 9, 63,180,182, 25, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -245,163, 31, 63,253, 29, 19, 63,180,182, 25, 63, 38, 48, 21, 63,223,148, 28, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 43,183, 22, 63,149,111, 11, 63,155,153, 25, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63, -245,163, 31, 63,253, 29, 19, 63,191,246, 28, 63,109, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63,132,168, 22, 63,180, 23, 33, 63,180,182, 25, 63, 38, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63,180,182, 25, 63, 38, 48, 21, 63, -132,168, 22, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132,168, 22, 63, -180, 23, 33, 63,191,246, 28, 63,109, 60, 31, 63,169,238, 25, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63,220,204, 12, 63, 35, 28, 45, 63,225,119, 16, 63,225, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63,132,168, 22, 63, -180, 23, 33, 63,138,107, 19, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -169,238, 25, 63,229, 52, 43, 63,138,107, 19, 63,211,160, 44, 63,132,168, 22, 63,180, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63,225,119, 16, 63,225, 17, 34, 63,140,184, 19, 63, -232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63, -169,238, 25, 63,229, 52, 43, 63,191,246, 28, 63,109, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63,192,225, 34, 63,142,140, 28, 63, 51, 73, 32, 63,221,228, 40, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63, 51, 73, 32, 63,221,228, 40, 63, -192,225, 34, 63,142,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,225, 34, 63, -142,140, 28, 63,191,246, 28, 63,109, 60, 31, 63,245,163, 31, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63,140,184, 19, 63,232,209, 22, 63,225,119, 16, 63,225, 17, 34, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63,207, 33, 9, 63, -226, 17, 34, 63,212,204, 12, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 29,225, 5, 63,233,209, 22, 63,212,204, 12, 63,188, 32, 23, 63,207, 33, 9, 63,226, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63,225,119, 16, 63,225, 17, 34, 63,220,204, 12, 63, - 35, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, - 29,225, 5, 63,233,209, 22, 63,118,105, 9, 63,101,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63, 43, 48, 16, 63,100,116, 11, 63,212,204, 12, 63,188, 32, 23, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63,212,204, 12, 63,188, 32, 23, 63, - 43, 48, 16, 63,100,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43, 48, 16, 63, -100,116, 11, 63,118,105, 9, 63,101,116, 11, 63,205,204, 12, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63,155,153, 25, 63, 0, 0, 0, 63, 43,183, 22, 63,149,111, 11, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 43, 48, 16, 63, -100,116, 11, 63, 51, 51, 19, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -205,204, 12, 63, 0, 0, 0, 63, 51, 51, 19, 63,244, 1, 0, 63, 43, 48, 16, 63,100,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 43,183, 22, 63,149,111, 11, 63,140,184, 19, 63, -232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, -205,204, 12, 63, 0, 0, 0, 63,118,105, 9, 63,101,116, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63,118,226, 2, 63,149,111, 11, 63,102,102, 6, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,102,102, 6, 63,244, 1, 0, 63, -118,226, 2, 63,149,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,226, 2, 63, -149,111, 11, 63,118,105, 9, 63,101,116, 11, 63, 29,225, 5, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 77, 10, 6, 63, 6,196,217, 62, 17, 72, 9, 63,227,230,198, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62,117, 81, 16, 63, -223,230,198, 62,198,204, 12, 63, 72, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 64,143, 19, 63, 4,196,217, 62,198,204, 12, 63, 72, 58,217, 62,117, 81, 16, 63,223,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 17, 72, 9, 63,227,230,198, 62,191,204, 12, 63, -160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, - 64,143, 19, 63, 4,196,217, 62, 76, 33, 16, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 71,120, 9, 63, 30,211,236, 62,198,204, 12, 63, 72, 58,217, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62,198,204, 12, 63, 72, 58,217, 62, - 71,120, 9, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71,120, 9, 63, - 30,211,236, 62, 76, 33, 16, 63, 30,211,236, 62,205,204, 12, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 62,251, 2, 63, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 71,120, 9, 63, - 30,211,236, 62,102,102, 6, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -205,204, 12, 63, 0, 0, 0, 63,102,102, 6, 63,244, 1, 0, 63, 71,120, 9, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 62,251, 2, 63, 67,207,236, 62, 77, 10, 6, 63, - 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63, -205,204, 12, 63, 0, 0, 0, 63, 76, 33, 16, 63, 30,211,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 86,158, 22, 63, 65,207,236, 62, 51, 51, 19, 63,244, 1, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 51, 51, 19, 63,244, 1, 0, 63, - 86,158, 22, 63, 65,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,158, 22, 63, - 65,207,236, 62, 76, 33, 16, 63, 30,211,236, 62, 64,143, 19, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63,101,235,243, 62,252, 29, 19, 63,132, 9,250, 62, 94,152, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63,118,226, 2, 63, -149,111, 11, 63,233,197,255, 62, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 29,225, 5, 63,233,209, 22, 63,233,197,255, 62, 39, 48, 21, 63,118,226, 2, 63,149,111, 11, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63,132, 9,250, 62, 94,152, 9, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, - 29,225, 5, 63,233,209, 22, 63, 43,241, 2, 63,181, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63,225, 69,249, 62,110, 60, 31, 63,233,197,255, 62, 39, 48, 21, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63,233,197,255, 62, 39, 48, 21, 63, -225, 69,249, 62,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225, 69,249, 62, -110, 60, 31, 63, 43,241, 2, 63,181, 23, 33, 63, 30, 86,255, 62,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63,129,102,230, 62, 48,200, 37, 63,222,111,237, 62,143,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63,225, 69,249, 62, -110, 60, 31, 63, 9,161,242, 62,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 30, 86,255, 62,230, 52, 43, 63, 9,161,242, 62,223,228, 40, 63,225, 69,249, 62,110, 60, 31, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63,222,111,237, 62,143,140, 28, 63,101,235,243, 62, -252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, - 30, 86,255, 62,230, 52, 43, 63, 43,241, 2, 63,181, 23, 33, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63,207, 33, 9, 63,226, 17, 34, 63, 46, 46, 6, 63,211,160, 44, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 46, 46, 6, 63,211,160, 44, 63, -207, 33, 9, 63,226, 17, 34, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207, 33, 9, 63, -226, 17, 34, 63, 43,241, 2, 63,181, 23, 33, 63, 29,225, 5, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,218,173, 82, 63, 55, 92,210, 62,229,189, 79, 63,173,208,189, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62,230,250, 82, 63, -117,190,166, 62,138,238, 85, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -149,153, 89, 63,201,199,165, 62,138,238, 85, 63, 72,220,187, 62,230,250, 82, 63,117,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62,229,189, 79, 63,173,208,189, 62,198,119, 76, 63, - 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, -198,119, 76, 63, 90,150,169, 62,229,189, 79, 63,173,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62,176,175, 76, 63,192,159,213, 62,170,111, 73, 63, 68,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62,170,111, 73, 63, 68,135,193, 62, -176,175, 76, 63,192,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,175, 76, 63, -192,159,213, 62,229,189, 79, 63,173,208,189, 62,218,173, 82, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,193,204, 76, 63, 0, 0, 0, 63,128,209, 73, 63, 75,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62,176,175, 76, 63, -192,159,213, 62, 52,175, 79, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -218,173, 82, 63, 55, 92,210, 62, 52,175, 79, 63,218, 32,233, 62,176,175, 76, 63,192,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62,128,209, 73, 63, 75,207,236, 62,112,194, 70, 63, - 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, -112,194, 70, 63, 19,196,217, 62,171,132, 67, 63,253,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 61, 29, 70, 63,114, 54,174, 62,170,111, 73, 63, 68,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62,170,111, 73, 63, 68,135,193, 62, - 61, 29, 70, 63,114, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61, 29, 70, 63, -114, 54,174, 62,171,132, 67, 63,253,230,198, 62, 0, 0, 64, 63,211,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,218,173, 82, 63, 55, 92,210, 62, 56, 54, 86, 63, 58, 23,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62, 41, 51, 83, 63, - 24,252,255, 62, 52,175, 79, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -193,204, 76, 63, 0, 0, 0, 63, 52,175, 79, 63,218, 32,233, 62, 41, 51, 83, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 56, 54, 86, 63, 58, 23,233, 62,147,153, 89, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, -147,153, 89, 63, 0, 0, 0, 63, 56, 54, 86, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62,147,153, 89, 63,143,190,209, 62,239,252, 92, 63, 58, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62,239,252, 92, 63, 58, 23,233, 62, -147,153, 89, 63,143,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63, -143,190,209, 62, 56, 54, 86, 63, 58, 23,233, 62,218,173, 82, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,149,153, 89, 63,201,199,165, 62,159, 68, 93, 63, 72,220,187, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62,147,153, 89, 63, -143,190,209, 62,138,238, 85, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -218,173, 82, 63, 55, 92,210, 62,138,238, 85, 63, 72,220,187, 62,147,153, 89, 63,143,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62,159, 68, 93, 63, 72,220,187, 62, 78,133, 96, 63, - 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, - 78,133, 96, 63, 55, 92,210, 62,242,131, 99, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62,254,255, 95, 63, 24,252,255, 62,239,252, 92, 63, 58, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63,239,252, 92, 63, 58, 23,233, 62, -254,255, 95, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,254,255, 95, 63, - 24,252,255, 62,242,131, 99, 63,218, 32,233, 62,101,102,102, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62,192,112,108, 63, 4,196,217, 62,133,195,105, 63, 37,135,193, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62,249, 21,109, 63, - 65, 54,174, 62,139,174,111, 63,223,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 65, 51,115, 63,160,111,180, 62,139,174,111, 63,223,230,198, 62,249, 21,109, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62,133,195,105, 63, 37,135,193, 62,106,187,102, 63, - 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, -106,187,102, 63, 54,150,169, 62,133,195,105, 63, 37,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62,123,131,102, 63,181,159,213, 62, 70,117, 99, 63,155,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 70,117, 99, 63,155,208,189, 62, -123,131,102, 63,181,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,131,102, 63, -181,159,213, 62,133,195,105, 63, 37,135,193, 62,192,112,108, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62,101,102,102, 63, 0, 0, 0, 63,242,131, 99, 63,218, 32,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62,123,131,102, 63, -181,159,213, 62,170, 97,105, 63, 65,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -192,112,108, 63, 4,196,217, 62,170, 97,105, 63, 65,207,236, 62,123,131,102, 63,181,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62,242,131, 99, 63,218, 32,233, 62, 78,133, 96, 63, - 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, - 78,133, 96, 63, 55, 92,210, 62,159, 68, 93, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62, 71, 56, 96, 63, 99,190,166, 62, 70,117, 99, 63,155,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 70,117, 99, 63,155,208,189, 62, - 71, 56, 96, 63, 99,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71, 56, 96, 63, - 99,190,166, 62,159, 68, 93, 63, 72,220,187, 62,149,153, 89, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 11, 92, 96, 63,253, 29, 19, 63, 21,238, 92, 63,112,150, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63,254,255, 95, 63, - 24,252,255, 62, 33,107, 99, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -101,102,102, 63, 0, 0, 0, 63, 33,107, 99, 63, 94,152, 9, 63,254,255, 95, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 21,238, 92, 63,112,150, 9, 63,147,153, 89, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, -147,153, 89, 63, 0, 0, 0, 63, 21,238, 92, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63,143,153, 89, 63,219, 98, 19, 63, 14, 69, 86, 63,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 14, 69, 86, 63,112,150, 9, 63, -143,153, 89, 63,219, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,143,153, 89, 63, -219, 98, 19, 63, 21,238, 92, 63,112,150, 9, 63, 11, 92, 96, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63,139,153, 89, 63, 45,200, 37, 63,218, 20, 86, 63,143,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63,143,153, 89, 63, -219, 98, 19, 63, 63, 30, 93, 63,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 11, 92, 96, 63,253, 29, 19, 63, 63, 30, 93, 63,143,140, 28, 63,143,153, 89, 63,219, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63,218, 20, 86, 63,143,140, 28, 63, 19,215, 82, 63, -252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, - 19,215, 82, 63,252, 29, 19, 63, 1,200, 79, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 41, 51, 83, 63, 24,252,255, 62, 14, 69, 86, 63,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 14, 69, 86, 63,112,150, 9, 63, - 41, 51, 83, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 41, 51, 83, 63, - 24,252,255, 62, 1,200, 79, 63, 94,152, 9, 63,193,204, 76, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,151, 35,188, 60, 46, 92,210, 62,218, 74, 60, 60,150,208,189, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 74, 60, 60,150,208,189, 62,195,197,197, 60, - 89,190,166, 62,237, 28, 18, 61, 60,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -194,205, 76, 61,186,199,165, 62,237, 28, 18, 61, 60,220,187, 62,195,197,197, 60, 89,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62,150,120,129, 63,150,208,189, 62, 15,171,127, 63, - 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, - 15,171,127, 63, 52,150,169, 62,150,120,129, 63,150,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,150,120,129, 63,150,208,189, 62,244,226,127, 63,179,159,213, 62,241,162,124, 63, 36,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62,241,162,124, 63, 36,135,193, 62, -244,226,127, 63,179,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,226,127, 63, -179,159,213, 62,150,120,129, 63,150,208,189, 62,142,240,130, 63, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 59,113,129, 63,214, 32,233, 62, 0, 0,128, 63, 0, 0, 0, 63,194, 4,125, 63, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62,244,226,127, 63, -179,159,213, 62, 59,113,129, 63,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -142,240,130, 63, 46, 92,210, 62, 59,113,129, 63,214, 32,233, 62,244,226,127, 63,179,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62,194, 4,125, 63, 67,207,236, 62,179,245,121, 63, - 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, -179,245,121, 63, 6,196,217, 62,239,183,118, 63,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,239,183,118, 63,227,230,198, 62,133, 80,121, 63, 65, 54,174, 62,241,162,124, 63, 36,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62,241,162,124, 63, 36,135,193, 62, -133, 80,121, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133, 80,121, 63, - 65, 54,174, 62,239,183,118, 63,227,230,198, 62, 65, 51,115, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,110,157, 56, 60,214, 32,233, 62,151, 35,188, 60, 46, 92,210, 62, 95,151, 22, 61, 55, 23,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62,176,204,204, 60, - 24,252,255, 62,110,157, 56, 60,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -167, 79, 11, 38, 0, 0, 0, 63,110,157, 56, 60,214, 32,233, 62,176,204,204, 60, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 95,151, 22, 61, 55, 23,233, 62,215,204, 76, 61, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, -215,204, 76, 61, 0, 0, 0, 63, 95,151, 22, 61, 55, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62, 68,205, 76, 61,135,190,209, 62, 87,129,129, 61, 57, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 87,129,129, 61, 57, 23,233, 62, - 68,205, 76, 61,135,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68,205, 76, 61, -135,190,209, 62, 95,151, 22, 61, 55, 23,233, 62,151, 35,188, 60, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,194,205, 76, 61,186,199,165, 62, 7,191,131, 61, 62,220,187, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 68,205, 76, 61, -135,190,209, 62,237, 28, 18, 61, 60,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -151, 35,188, 60, 46, 92,210, 62,237, 28, 18, 61, 60,220,187, 62, 68,205, 76, 61,135,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 7,191,131, 61, 62,220,187, 62, 92,196,157, 61, - 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, - 92,196,157, 61, 49, 92,210, 62, 89,185,181, 61,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62,154,153,153, 61, 25,252,255, 62, 87,129,129, 61, 57, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 87,129,129, 61, 57, 23,233, 62, -154,153,153, 61, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,153, 61, - 25,252,255, 62, 89,185,181, 61,214, 32,233, 62,215,204,204, 61, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62,171, 31,253, 61, 6,196,217, 62,251,181,231, 61, 38,135,193, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62,204, 36, 1, 62, - 70, 54,174, 62, 1,135, 11, 62,228,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -214,153, 25, 62,165,111,180, 62, 1,135, 11, 62,228,230,198, 62,204, 36, 1, 62, 70, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62,251,181,231, 61, 38,135,193, 62, 70,117,207, 61, - 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, - 70,117,207, 61, 54,150,169, 62,251,181,231, 61, 38,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62,164,181,205, 61,180,159,213, 62, 35, 68,181, 61,153,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 35, 68,181, 61,153,208,189, 62, -164,181,205, 61,180,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,181,205, 61, -180,159,213, 62,251,181,231, 61, 38,135,193, 62,171, 31,253, 61, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62,215,204,204, 61, 0, 0, 0, 63, 89,185,181, 61,214, 32,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62,164,181,205, 61, -180,159,213, 62,251,166,228, 61, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -171, 31,253, 61, 6,196,217, 62,251,166,228, 61, 67,207,236, 62,164,181,205, 61,180,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 89,185,181, 61,214, 32,233, 62, 92,196,157, 61, - 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, - 92,196,157, 61, 49, 92,210, 62, 7,191,131, 61, 62,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 79, 92,155, 61, 91,190,166, 62, 35, 68,181, 61,153,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 35, 68,181, 61,153,208,189, 62, - 79, 92,155, 61, 91,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 79, 92,155, 61, - 91,190,166, 62, 7,191,131, 61, 62,220,187, 62,194,205, 76, 61,186,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 1,122,156, 61,254, 29, 19, 63,100, 10,129, 61,113,150, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63,154,153,153, 61, - 25,252,255, 62,172,242,180, 61, 96,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -215,204,204, 61, 0, 0, 0, 63,172,242,180, 61, 96,152, 9, 63,154,153,153, 61, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62,100, 10,129, 61,113,150, 9, 63,215,204, 76, 61, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, -215,204, 76, 61, 0, 0, 0, 63,100, 10,129, 61,113,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63, 91,204, 76, 61,220, 98, 19, 63,109,132, 23, 61,113,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63,109,132, 23, 61,113,150, 9, 63, - 91,204, 76, 61,220, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,204, 76, 61, -220, 98, 19, 63,100, 10,129, 61,113,150, 9, 63, 1,122,156, 61,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63,246,203, 76, 61, 48,200, 37, 63, 13,129, 20, 61,143,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 91,204, 76, 61, -220, 98, 19, 63,166,139,130, 61,145,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 1,122,156, 61,254, 29, 19, 63,166,139,130, 61,145,140, 28, 63, 91,204, 76, 61,220, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 13,129, 20, 61,143,140, 28, 63,174, 73,193, 60, -253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, -174, 73,193, 60,253, 29, 19, 63,114,207, 62, 60, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,114,207, 62, 60, 94,152, 9, 63,176,204,204, 60, 24,252,255, 62,109,132, 23, 61,113,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63,109,132, 23, 61,113,150, 9, 63, -176,204,204, 60, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,204,204, 60, - 24,252,255, 62,114,207, 62, 60, 94,152, 9, 63,167, 79, 11, 38, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 63, 81,100, 62, 60, 92,210, 62,110,145, 88, 62,167,208,189, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62, 91,133,101, 62, -112,190,166, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62,206,199,165, 62,237, 83,113, 62, 79,220,187, 62, 91,133,101, 62,112,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62,110,145, 88, 62,167,208,189, 62,239,120, 75, 62, - 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, -239,120, 75, 62, 70,150,169, 62,110,145, 88, 62,167,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62,170, 88, 76, 62,187,159,213, 62,144, 88, 63, 62, 46,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62,144, 88, 63, 62, 46,135,193, 62, -170, 88, 76, 62,187,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 88, 76, 62, -187,159,213, 62,110,145, 88, 62,167,208,189, 62, 63, 81,100, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62,254,204, 76, 62, 0, 0, 0, 63,251,223, 64, 62, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62,170, 88, 76, 62, -187,159,213, 62,190, 86, 88, 62,221, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 63, 81,100, 62, 60, 92,210, 62,190, 86, 88, 62,221, 32,233, 62,170, 88, 76, 62,187,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62,251,223, 64, 62, 67,207,236, 62,179,163, 52, 62, - 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, -179,163, 52, 62, 7,196,217, 62,153,172, 39, 62,230,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62,213, 14, 50, 62, 78, 54,174, 62,144, 88, 63, 62, 46,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62,144, 88, 63, 62, 46,135,193, 62, -213, 14, 50, 62, 78, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14, 50, 62, - 78, 54,174, 62,153,172, 39, 62,230,230,198, 62,214,153, 25, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 63, 81,100, 62, 60, 92,210, 62,166,114,114, 62, 63, 23,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62,126,102,102, 62, - 25,252,255, 62,190, 86, 88, 62,221, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -254,204, 76, 62, 0, 0, 0, 63,190, 86, 88, 62,221, 32,233, 62,126,102,102, 62, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, - 0, 0,128, 62, 0, 0, 0, 63,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 62,149,190,209, 62,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62,173,198,134, 62, 63, 23,233, 62, - 0, 0,128, 62,149,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, -149,190,209, 62,166,114,114, 62, 63, 23,233, 62, 63, 81,100, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 62,206,199,165, 62, 9, 86,135, 62, 79,220,187, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 62, -149,190,209, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 63, 81,100, 62, 60, 92,210, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 62,149,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 9, 86,135, 62, 79,220,187, 62, 97,215,141, 62, - 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, - 97,215,141, 62, 60, 92,210, 62,161,212,147, 62,221, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62,193,204,140, 62, 25,252,255, 62,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63,173,198,134, 62, 63, 23,233, 62, -193,204,140, 62, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,193,204,140, 62, - 25,252,255, 62,161,212,147, 62,221, 32,233, 62,129,153,153, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 39,174,165, 62, 7,196,217, 62,184, 83,160, 62, 46,135,193, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62,150,248,166, 62, - 78, 54,174, 62,180, 41,172, 62,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 21, 51,179, 62,165,111,180, 62,180, 41,172, 62,227,230,198, 62,150,248,166, 62, 78, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62,184, 83,160, 62, 46,135,193, 62,137, 67,154, 62, - 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, -137, 67,154, 62, 70,150,169, 62,184, 83,160, 62, 46,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62,171,211,153, 62,187,159,213, 62, 73,183,147, 62,167,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 73,183,147, 62,167,208,189, 62, -171,211,153, 62,187,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,211,153, 62, -187,159,213, 62,184, 83,160, 62, 46,135,193, 62, 39,174,165, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62,129,153,153, 62, 0, 0, 0, 63,161,212,147, 62,221, 32,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62,171,211,153, 62, -187,159,213, 62, 3,144,159, 62, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 39,174,165, 62, 7,196,217, 62, 3,144,159, 62, 67,207,236, 62,171,211,153, 62,187,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62,161,212,147, 62,221, 32,233, 62, 97,215,141, 62, - 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, - 97,215,141, 62, 60, 92,210, 62, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 82, 61,141, 62,112,190,166, 62, 73,183,147, 62,167,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 73,183,147, 62,167,208,189, 62, - 82, 61,141, 62,112,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 82, 61,141, 62, -112,190,166, 62, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 62,206,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63,224,132,141, 62,246, 29, 19, 63,251,168,134, 62,107,150, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63,193,204,140, 62, - 25,252,255, 62, 1,163,147, 62, 91,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -129,153,153, 62, 0, 0, 0, 63, 1,163,147, 62, 91,152, 9, 63,193,204,140, 62, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62,251,168,134, 62,107,150, 9, 63, 0, 0,128, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, - 0, 0,128, 62, 0, 0, 0, 63,251,168,134, 62,107,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63, 0, 0,128, 62,209, 98, 19, 63, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 11,174,114, 62,107,150, 9, 63, - 0, 0,128, 62,209, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, -209, 98, 19, 63,251,168,134, 62,107,150, 9, 63,224,132,141, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 62, 23,200, 37, 63, 83,237,113, 62,130,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0,128, 62, -209, 98, 19, 63, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -224,132,141, 62,246, 29, 19, 63, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 62,209, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 83,237,113, 62,130,140, 28, 63, 64,246,100, 62, -246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, - 64,246,100, 62,246, 29, 19, 63,255,185, 88, 62, 90,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63,126,102,102, 62, 25,252,255, 62, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 11,174,114, 62,107,150, 9, 63, -126,102,102, 62, 25,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,126,102,102, 62, - 25,252,255, 62,255,185, 88, 62, 90,152, 9, 63,254,204, 76, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62,233,142,216, 62, 49, 92,210, 62,248,174,210, 62,153,208,189, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62,237, 40,217, 62, - 91,190,166, 62, 63, 16,223, 62, 62,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 72,102,230, 62,183,199,165, 62, 63, 16,223, 62, 62,220,187, 62,237, 40,217, 62, 91,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62,248,174,210, 62,153,208,189, 62,175, 34,204, 62, - 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, -175, 34,204, 62, 54,150,169, 62,248,174,210, 62,153,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,248,174,210, 62,153,208,189, 62,151,146,204, 62,180,159,213, 62,129, 18,198, 62, 37,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62,129, 18,198, 62, 37,135,193, 62, -151,146,204, 62,180,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,151,146,204, 62, -180,159,213, 62,248,174,210, 62,153,208,189, 62,233,142,216, 62, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,202,204,204, 62, 0, 0, 0, 63, 65,214,198, 62, 67,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62,151,146,204, 62, -180,159,213, 62,170,145,210, 62,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -233,142,216, 62, 49, 92,210, 62,170,145,210, 62,214, 32,233, 62,151,146,204, 62,180,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 65,214,198, 62, 67,207,236, 62, 21,184,192, 62, - 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, - 21,184,192, 62, 6,196,217, 62,127, 60,186, 62,225,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62,154,109,191, 62, 68, 54,174, 62,129, 18,198, 62, 37,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62,129, 18,198, 62, 37,135,193, 62, -154,109,191, 62, 68, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,109,191, 62, - 68, 54,174, 62,127, 60,186, 62,225,230,198, 62, 21, 51,179, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,233,142,216, 62, 49, 92,210, 62,171,159,223, 62, 57, 23,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62,154,153,217, 62, - 24,252,255, 62,170,145,210, 62,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -202,204,204, 62, 0, 0, 0, 63,170,145,210, 62,214, 32,233, 62,154,153,217, 62, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62,171,159,223, 62, 57, 23,233, 62,101,102,230, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, -101,102,230, 62, 0, 0, 0, 63,171,159,223, 62, 57, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62, 88,102,230, 62,135,190,209, 62, 20, 45,237, 62, 55, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 20, 45,237, 62, 55, 23,233, 62, - 88,102,230, 62,135,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,102,230, 62, -135,190,209, 62,171,159,223, 62, 57, 23,233, 62,233,142,216, 62, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 72,102,230, 62,183,199,165, 62, 99,188,237, 62, 60,220,187, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62, 88,102,230, 62, -135,190,209, 62, 63, 16,223, 62, 62,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -233,142,216, 62, 49, 92,210, 62, 63, 16,223, 62, 62,220,187, 62, 88,102,230, 62,135,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 99,188,237, 62, 60,220,187, 62,199, 61,244, 62, - 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, -199, 61,244, 62, 46, 92,210, 62, 21, 59,250, 62,213, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 53, 51,243, 62, 24,252,255, 62, 20, 45,237, 62, 55, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 20, 45,237, 62, 55, 23,233, 62, - 53, 51,243, 62, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 51,243, 62, - 24,252,255, 62, 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 77, 10, 6, 63, 6,196,217, 62, 15, 93, 3, 63, 36,135,193, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62,123,175, 6, 63, - 65, 54,174, 62, 17, 72, 9, 63,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -191,204, 12, 63,160,111,180, 62, 17, 72, 9, 63,227,230,198, 62,123,175, 6, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 15, 93, 3, 63, 36,135,193, 62,241, 84, 0, 63, - 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, -241, 84, 0, 63, 52,150,169, 62, 15, 93, 3, 63, 36,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62, 12, 29, 0, 63,179,159,213, 62,169, 29,250, 62,150,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62,169, 29,250, 62,150,208,189, 62, - 12, 29, 0, 63,179,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 29, 0, 63, -179,159,213, 62, 15, 93, 3, 63, 36,135,193, 62, 77, 10, 6, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 63, 0, 0, 0, 63, 21, 59,250, 62,213, 32,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 12, 29, 0, 63, -179,159,213, 62, 62,251, 2, 63, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 77, 10, 6, 63, 6,196,217, 62, 62,251, 2, 63, 67,207,236, 62, 12, 29, 0, 63,179,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 21, 59,250, 62,213, 32,233, 62,199, 61,244, 62, - 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, -199, 61,244, 62, 46, 92,210, 62, 99,188,237, 62, 60,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62,164,163,243, 62, 89,190,166, 62,169, 29,250, 62,150,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62,169, 29,250, 62,150,208,189, 62, -164,163,243, 62, 89,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,163,243, 62, - 89,190,166, 62, 99,188,237, 62, 60,220,187, 62, 72,102,230, 62,183,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63,101,235,243, 62,252, 29, 19, 63,114, 15,237, 62,113,150, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63, 53, 51,243, 62, - 24,252,255, 62,132, 9,250, 62, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63,132, 9,250, 62, 94,152, 9, 63, 53, 51,243, 62, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62,114, 15,237, 62,113,150, 9, 63,101,102,230, 62, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, -101,102,230, 62, 0, 0, 0, 63,114, 15,237, 62,113,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63,117,102,230, 62,220, 98, 19, 63,103,189,223, 62,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63,103,189,223, 62,112,150, 9, 63, -117,102,230, 62,220, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102,230, 62, -220, 98, 19, 63,114, 15,237, 62,113,150, 9, 63,101,235,243, 62,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63,129,102,230, 62, 48,200, 37, 63, 22, 93,223, 62,145,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63,117,102,230, 62, -220, 98, 19, 63,222,111,237, 62,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -101,235,243, 62,252, 29, 19, 63,222,111,237, 62,143,140, 28, 63,117,102,230, 62,220, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 22, 93,223, 62,145,140, 28, 63,128,225,216, 62, -254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, -128,225,216, 62,254, 29, 19, 63, 85,195,210, 62, 96,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63,154,153,217, 62, 24,252,255, 62,103,189,223, 62,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63,103,189,223, 62,112,150, 9, 63, -154,153,217, 62, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,217, 62, - 24,252,255, 62, 85,195,210, 62, 96,152, 9, 63,202,204,204, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,178,122, 31, 63, 55, 92,210, 62,186,138, 28, 63,155,208,189, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62,185,199, 31, 63, - 96,190,166, 62, 97,187, 34, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -107,102, 38, 63,201,199,165, 62, 97,187, 34, 63, 72,220,187, 62,185,199, 31, 63, 96,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62,186,138, 28, 63,155,208,189, 62,150, 68, 25, 63, - 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, -150, 68, 25, 63, 54,150,169, 62,186,138, 28, 63,155,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62,133,124, 25, 63,181,159,213, 62,123, 60, 22, 63, 36,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62,123, 60, 22, 63, 36,135,193, 62, -133,124, 25, 63,181,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,124, 25, 63, -181,159,213, 62,186,138, 28, 63,155,208,189, 62,178,122, 31, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,155,153, 25, 63, 0, 0, 0, 63, 86,158, 22, 63, 65,207,236, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62,133,124, 25, 63, -181,159,213, 62, 14,124, 28, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -178,122, 31, 63, 55, 92,210, 62, 14,124, 28, 63,218, 32,233, 62,133,124, 25, 63,181,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 86,158, 22, 63, 65,207,236, 62, 64,143, 19, 63, - 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, - 64,143, 19, 63, 4,196,217, 62,117, 81, 16, 63,223,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 7,234, 18, 63, 65, 54,174, 62,123, 60, 22, 63, 36,135,193, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62,123, 60, 22, 63, 36,135,193, 62, - 7,234, 18, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 7,234, 18, 63, - 65, 54,174, 62,117, 81, 16, 63,223,230,198, 62,191,204, 12, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,178,122, 31, 63, 55, 92,210, 62, 17, 3, 35, 63, 58, 23,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62, 2, 0, 32, 63, - 24,252,255, 62, 14,124, 28, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -155,153, 25, 63, 0, 0, 0, 63, 14,124, 28, 63,218, 32,233, 62, 2, 0, 32, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 17, 3, 35, 63, 58, 23,233, 62,109,102, 38, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, -109,102, 38, 63, 0, 0, 0, 63, 17, 3, 35, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62,109,102, 38, 63,143,190,209, 62,200,201, 41, 63, 58, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62,200,201, 41, 63, 58, 23,233, 62, -109,102, 38, 63,143,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63, -143,190,209, 62, 17, 3, 35, 63, 58, 23,233, 62,178,122, 31, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,107,102, 38, 63,201,199,165, 62,118, 17, 42, 63, 72,220,187, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62,109,102, 38, 63, -143,190,209, 62, 97,187, 34, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -178,122, 31, 63, 55, 92,210, 62, 97,187, 34, 63, 72,220,187, 62,109,102, 38, 63,143,190,209, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62,118, 17, 42, 63, 72,220,187, 62, 38, 82, 45, 63, - 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, - 38, 82, 45, 63, 55, 92,210, 62,204, 80, 48, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62,215,204, 44, 63, 23,252,255, 62,200,201, 41, 63, 58, 23,233, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63,200,201, 41, 63, 58, 23,233, 62, -215,204, 44, 63, 23,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 44, 63, - 23,252,255, 62,204, 80, 48, 63,218, 32,233, 62, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62,144, 61, 57, 63, 19,196,217, 62, 86,144, 54, 63, 68,135,193, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62,196,226, 57, 63, -114, 54,174, 62, 85,123, 60, 63,253,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63,211,111,180, 62, 85,123, 60, 63,253,230,198, 62,196,226, 57, 63,114, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 86,144, 54, 63, 68,135,193, 62, 58,136, 51, 63, - 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, - 58,136, 51, 63, 90,150,169, 62, 86,144, 54, 63, 68,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62, 80, 80, 51, 63,192,159,213, 62, 27, 66, 48, 63,173,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 27, 66, 48, 63,173,208,189, 62, - 80, 80, 51, 63,192,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80, 80, 51, 63, -192,159,213, 62, 86,144, 54, 63, 68,135,193, 62,144, 61, 57, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 63, 51, 51, 63, 0, 0, 0, 63,204, 80, 48, 63,218, 32,233, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62, 80, 80, 51, 63, -192,159,213, 62,128, 46, 54, 63, 75,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -144, 61, 57, 63, 19,196,217, 62,128, 46, 54, 63, 75,207,236, 62, 80, 80, 51, 63,192,159,213, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62,204, 80, 48, 63,218, 32,233, 62, 38, 82, 45, 63, - 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, - 38, 82, 45, 63, 55, 92,210, 62,118, 17, 42, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62, 26, 5, 45, 63,117,190,166, 62, 27, 66, 48, 63,173,208,189, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 27, 66, 48, 63,173,208,189, 62, - 26, 5, 45, 63,117,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 26, 5, 45, 63, -117,190,166, 62,118, 17, 42, 63, 72,220,187, 62,107,102, 38, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63,237, 40, 45, 63,252, 29, 19, 63,242,186, 41, 63,112,150, 9, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63,215,204, 44, 63, - 23,252,255, 62,255, 55, 48, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 63, 51, 51, 63, 0, 0, 0, 63,255, 55, 48, 63, 94,152, 9, 63,215,204, 44, 63, 23,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62,242,186, 41, 63,112,150, 9, 63,109,102, 38, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, -109,102, 38, 63, 0, 0, 0, 63,242,186, 41, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63,113,102, 38, 63,219, 98, 19, 63,235, 17, 35, 63,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63,235, 17, 35, 63,112,150, 9, 63, -113,102, 38, 63,219, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,102, 38, 63, -219, 98, 19, 63,242,186, 41, 63,112,150, 9, 63,237, 40, 45, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63,117,102, 38, 63, 45,200, 37, 63,192,225, 34, 63,142,140, 28, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63,113,102, 38, 63, -219, 98, 19, 63, 38,235, 41, 63,141,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -237, 40, 45, 63,252, 29, 19, 63, 38,235, 41, 63,141,140, 28, 63,113,102, 38, 63,219, 98, 19, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63,192,225, 34, 63,142,140, 28, 63,245,163, 31, 63, -253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, -245,163, 31, 63,253, 29, 19, 63,223,148, 28, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 2, 0, 32, 63, 24,252,255, 62,235, 17, 35, 63,112,150, 9, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63,235, 17, 35, 63,112,150, 9, 63, - 2, 0, 32, 63, 24,252,255, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 32, 63, - 24,252,255, 62,223,148, 28, 63, 94,152, 9, 63,155,153, 25, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62,235, 71, 99, 63,222, 76,120, 62, 94, 37,106, 63, 84, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 65, 51,115, 63, -248,151, 97, 62,188,129,107, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 65, 51,115, 63,151, 83,135, 62,188,129,107, 63, 66, 45,128, 62, 65, 51,115, 63,248,151, 97, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 94, 37,106, 63, 84, 97, 83, 62, 65, 51,115, 63, - 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, - 65, 51,115, 63,151, 83,135, 62,142,123,108, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,142,123,108, 63,169,144,151, 62,231, 50,101, 63, 17,201,146, 62,188,129,107, 63, 66, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62,188,129,107, 63, 66, 45,128, 62, -231, 50,101, 63, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231, 50,101, 63, - 17,201,146, 62,142,123,108, 63,169,144,151, 62,106,187,102, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62,149,153, 89, 63,201,199,165, 62, 22,238, 93, 63,243,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62,231, 50,101, 63, - 17,201,146, 62, 71, 56, 96, 63, 99,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -106,187,102, 63, 54,150,169, 62, 71, 56, 96, 63, 99,190,166, 62,231, 50,101, 63, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 22,238, 93, 63,243,101,144, 62,235, 71, 99, 63, -222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62, -106,187,102, 63, 54,150,169, 62,142,123,108, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,142,123,108, 63,169,144,151, 62, 65, 51,115, 63, 93,231,157, 62,249, 21,109, 63, 65, 54,174, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62,249, 21,109, 63, 65, 54,174, 62, - 65, 51,115, 63, 93,231,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, - 93,231,157, 62,142,123,108, 63,169,144,151, 62, 65, 51,115, 63,151, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62,235, 71, 99, 63,222, 76,120, 62, 22,238, 93, 63,243,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 21, 69, 85, 63, - 3,102,144, 62,149,153, 89, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 68,235, 79, 63, 37, 77,120, 62,149,153, 89, 63, 79,162,115, 62, 21, 69, 85, 63, 3,102,144, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 22,238, 93, 63,243,101,144, 62,149,153, 89, 63, -201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, - 68,235, 79, 63, 37, 77,120, 62, 24,186, 83, 63,245,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62, 22,121, 95, 63,204,176, 70, 62,149,153, 89, 63, 79,162,115, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62,149,153, 89, 63, 79,162,115, 62, - 22,121, 95, 63,204,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,121, 95, 63, -204,176, 70, 62, 24,186, 83, 63,245,176, 70, 62,152,153, 89, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 65, 51,115, 63, 90,111, 52, 62, 94, 37,106, 63, 84, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 22,121, 95, 63, -204,176, 70, 62, 61,119,103, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -152,153, 89, 63,198, 31, 23, 62, 61,119,103, 63,179,253, 30, 62, 22,121, 95, 63,204,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 94, 37,106, 63, 84, 97, 83, 62,235, 71, 99, 63, -222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, -152,153, 89, 63,198, 31, 23, 62, 24,186, 83, 63,245,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62,214, 13, 73, 63,181, 97, 83, 62,248,187, 75, 63,241,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62,248,187, 75, 63,241,253, 30, 62, -214, 13, 73, 63,181, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214, 13, 73, 63, -181, 97, 83, 62, 24,186, 83, 63,245,176, 70, 62, 68,235, 79, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 64, 63,195,111,180, 61, 0, 0, 64, 63,111, 65, 52, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 38, 49,117, 63, -225, 64, 52, 61,152,153, 89, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 65, 51,115, 63, 83,111,180, 61,152,153, 89, 63,111, 41,147, 61, 38, 49,117, 63,225, 64, 52, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 64, 63,111, 65, 52, 61,208,222,121, 63, -102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, - 65, 51,115, 63, 83,111,180, 61,172, 51, 99, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61,135,255, 79, 63,120, 46,231, 61,152,153, 89, 63,111, 41,147, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61,152,153, 89, 63,111, 41,147, 61, -135,255, 79, 63,120, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135,255, 79, 63, -120, 46,231, 61,172, 51, 99, 63, 48, 46,231, 61,152,153, 89, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 64, 63, 24, 71, 7, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62,135,255, 79, 63, -120, 46,231, 61,248,187, 75, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -152,153, 89, 63,198, 31, 23, 62,248,187, 75, 63,241,253, 30, 62,135,255, 79, 63,120, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0, 64, 63, -195,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, -152,153, 89, 63,198, 31, 23, 62,172, 51, 99, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61, 66, 51,115, 63,199, 70, 7, 62, 61,119,103, 63,179,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 61,119,103, 63,179,253, 30, 62, - 66, 51,115, 63,199, 70, 7, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 66, 51,115, 63, -199, 70, 7, 62,172, 51, 99, 63, 48, 46,231, 61, 65, 51,115, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 64, 63,115,152, 97, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62,214, 13, 73, 63, -181, 97, 83, 62,122,177, 71, 63,120, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 68,235, 79, 63, 37, 77,120, 62,122,177, 71, 63,120, 45,128, 62,214, 13, 73, 63,181, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 64, 63,115,152, 97, 62, 0, 0, 64, 63, -202,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, - 68,235, 79, 63, 37, 77,120, 62, 72, 0, 78, 63, 52,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62,169,183, 70, 63,219,144,151, 62,122,177, 71, 63,120, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62,122,177, 71, 63,120, 45,128, 62, -169,183, 70, 63,219,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,183, 70, 63, -219,144,151, 62, 72, 0, 78, 63, 52,201,146, 62,198,119, 76, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 64, 63,211,111,180, 62, 0, 0, 64, 63,162,231,157, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62,169,183, 70, 63, -219,144,151, 62, 61, 29, 70, 63,114, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -198,119, 76, 63, 90,150,169, 62, 61, 29, 70, 63,114, 54,174, 62,169,183, 70, 63,219,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 64, 63,162,231,157, 62, 0, 0, 64, 63, -218, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62, -198,119, 76, 63, 90,150,169, 62, 72, 0, 78, 63, 52,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62, 21, 69, 85, 63, 3,102,144, 62,230,250, 82, 63,117,190,166, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62,230,250, 82, 63,117,190,166, 62, - 21, 69, 85, 63, 3,102,144, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 69, 85, 63, - 3,102,144, 62, 72, 0, 78, 63, 52,201,146, 62, 68,235, 79, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 94,217,179, 61,222, 76,120, 62,202,196,234, 61,100, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62,212,153, 25, 62, - 2,152, 97, 62,179,167,245, 61, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -214,153, 25, 62,156, 83,135, 62,179,167,245, 61, 72, 45,128, 62,212,153, 25, 62, 2,152, 97, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62,202,196,234, 61,100, 97, 83, 62,214,153, 25, 62, -106,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, -214,153, 25, 62,156, 83,135, 62, 62,118,253, 61,174,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62, 53, 49,195, 61, 17,201,146, 62,179,167,245, 61, 72, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62,179,167,245, 61, 72, 45,128, 62, - 53, 49,195, 61, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 49,195, 61, - 17,201,146, 62, 62,118,253, 61,174,144,151, 62, 70,117,207, 61, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62,194,205, 76, 61,186,199,165, 62,212, 10,137, 61,238,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 53, 49,195, 61, - 17,201,146, 62, 79, 92,155, 61, 91,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 70,117,207, 61, 54,150,169, 62, 79, 92,155, 61, 91,190,166, 62, 53, 49,195, 61, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62,212, 10,137, 61,238,101,144, 62, 94,217,179, 61, -222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, - 70,117,207, 61, 54,150,169, 62, 62,118,253, 61,174,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62,213,153, 25, 62,100,231,157, 62,204, 36, 1, 62, 70, 54,174, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62,204, 36, 1, 62, 70, 54,174, 62, -213,153, 25, 62,100,231,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,153, 25, 62, -100,231,157, 62, 62,118,253, 61,174,144,151, 62,214,153, 25, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 94,217,179, 61,222, 76,120, 62,212, 10,137, 61,238,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62,207,133, 7, 61, -236,101,144, 62,188,205, 76, 61, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -255,162, 71, 60,216, 76,120, 62,188,205, 76, 61, 53,162,115, 62,207,133, 7, 61,236,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62,212, 10,137, 61,238,101,144, 62,194,205, 76, 61, -186,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, -255,162, 71, 60,216, 76,120, 62,190,171,221, 60,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,190,171,221, 60,194,176, 70, 62,194, 98,149, 61,194,176, 70, 62,188,205, 76, 61, 53,162,115, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62,188,205, 76, 61, 53,162,115, 62, -194, 98,149, 61,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 98,149, 61, -194,176, 70, 62,190,171,221, 60,194,176, 70, 62,193,205, 76, 61,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62,214,153, 25, 62,106,111, 52, 62,202,196,234, 61,100, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62,194, 98,149, 61, -194,176, 70, 62,198, 83,213, 61,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -193,205, 76, 61,168, 31, 23, 62,198, 83,213, 61,179,253, 30, 62,194, 98,149, 61,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62,202,196,234, 61,100, 97, 83, 62, 94,217,179, 61, -222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, -154,105,131, 63,168, 31, 23, 62,175,118,131, 63,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,175,118,131, 63,194,176, 70, 62, 30, 65,124, 63, 90, 97, 83, 62, 59,239,126, 63,174,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 59,239,126, 63,174,253, 30, 62, - 30, 65,124, 63, 90, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 65,124, 63, - 90, 97, 83, 62,175,118,131, 63,194,176, 70, 62, 70,143,129, 63,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,156,105,131, 63,101, 41,147, 61, 65, 51,115, 63, 83,111,180, 61, 38, 49,117, 63,225, 64, 52, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61,232,148,135, 63, -144,158,125, 60,156,105,131, 63,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -215,153, 25, 62,104,111,180, 61,122,245,128, 61,101, 41,147, 61,224,153, 25, 62,225, 64, 52, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,232,148,135, 63,144,158,125, 60, 38, 49,117, 63,225, 64, 52, 61,208,222,121, 63, -102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,245,128, 61,101, 41,147, 61, -215,153, 25, 62,104,111,180, 61, 89, 55,179, 61, 38, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61, 96,147,208, 60, 48, 46,231, 61,122,245,128, 61,101, 41,147, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61,156,105,131, 63,101, 41,147, 61, -102,153,129, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 96,147,208, 60, - 48, 46,231, 61, 89, 55,179, 61, 38, 46,231, 61,193,205, 76, 61,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 65, 51,115, 63, 90,111, 52, 62, 66, 51,115, 63,199, 70, 7, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62,102,153,129, 63, - 48, 46,231, 61, 59,239,126, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -154,105,131, 63,168, 31, 23, 62, 59,239,126, 63,174,253, 30, 62,102,153,129, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61, 66, 51,115, 63,199, 70, 7, 62, 65, 51,115, 63, - 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62, -193,205, 76, 61,168, 31, 23, 62, 89, 55,179, 61, 38, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61,217,153, 25, 62,204, 70, 7, 62,198, 83,213, 61,179,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62,198, 83,213, 61,179,253, 30, 62, -217,153, 25, 62,204, 70, 7, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,217,153, 25, 62, -204, 70, 7, 62, 89, 55,179, 61, 38, 46,231, 61,215,153, 25, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 65, 51,115, 63,151, 83,135, 62, 65, 51,115, 63,248,151, 97, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 30, 65,124, 63, - 90, 97, 83, 62,192,228,122, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 70,143,129, 63,216, 76,120, 62,192,228,122, 63, 66, 45,128, 62, 30, 65,124, 63, 90, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 65, 51,115, 63,248,151, 97, 62, 65, 51,115, 63, - 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, - 70,143,129, 63,216, 76,120, 62,201,153,128, 63, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,201,153,128, 63, 14,201,146, 62,239,234,121, 63,169,144,151, 62,192,228,122, 63, 66, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62,192,228,122, 63, 66, 45,128, 62, -239,234,121, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,234,121, 63, -169,144,151, 62,201,153,128, 63, 14,201,146, 62, 15,171,127, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 65, 51,115, 63,160,111,180, 62, 65, 51,115, 63, 93,231,157, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62,239,234,121, 63, -169,144,151, 62,133, 80,121, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 15,171,127, 63, 52,150,169, 62,133, 80,121, 63, 65, 54,174, 62,239,234,121, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 65, 51,115, 63, 93,231,157, 62, 65, 51,115, 63, -151, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62, - 15,171,127, 63, 52,150,169, 62,201,153,128, 63, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,136,200,153, 59, 14,201,146, 62,207,133, 7, 61,236,101,144, 62,195,197,197, 60, 89,190,166, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62,195,197,197, 60, 89,190,166, 62, -207,133, 7, 61,236,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207,133, 7, 61, -236,101,144, 62,136,200,153, 59, 14,201,146, 62,255,162, 71, 60,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62,147, 92,147, 62,252, 76,120, 62,102, 23,161, 62,115, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 22, 51,179, 62, - 2,152, 97, 62, 32,208,163, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 21, 51,179, 62,156, 83,135, 62, 32,208,163, 62, 79, 45,128, 62, 22, 51,179, 62, 2,152, 97, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62,102, 23,161, 62,115, 97, 83, 62, 21, 51,179, 62, -101,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, - 21, 51,179, 62,156, 83,135, 62,194,195,165, 62,181,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,194,195,165, 62,181,144,151, 62,134, 50,151, 62, 29,201,146, 62, 32,208,163, 62, 79, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 32,208,163, 62, 79, 45,128, 62, -134, 50,151, 62, 29,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134, 50,151, 62, - 29,201,146, 62,194,195,165, 62,181,144,151, 62,137, 67,154, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0,128, 62,206,199,165, 62,247,168,136, 62, 3,102,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62,134, 50,151, 62, - 29,201,146, 62, 82, 61,141, 62,112,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -137, 67,154, 62, 70,150,169, 62, 82, 61,141, 62,112,190,166, 62,134, 50,151, 62, 29,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62,247,168,136, 62, 3,102,144, 62,147, 92,147, 62, -252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62, -137, 67,154, 62, 70,150,169, 62,194,195,165, 62,181,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,194,195,165, 62,181,144,151, 62, 21, 51,179, 62, 98,231,157, 62,150,248,166, 62, 78, 54,174, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62,150,248,166, 62, 78, 54,174, 62, - 21, 51,179, 62, 98,231,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62, - 98,231,157, 62,194,195,165, 62,181,144,151, 62, 21, 51,179, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62,147, 92,147, 62,252, 76,120, 62,247,168,136, 62, 3,102,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 18,174,110, 62, - 3,102,144, 62, 0, 0,128, 62, 89,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 62, 89,162,115, 62, 18,174,110, 62, 3,102,144, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62,247,168,136, 62, 3,102,144, 62, 0, 0,128, 62, -206,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62, -217, 70, 89, 62,252, 76,120, 62, 30,130,104, 62,230,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62,241,190,139, 62,230,176, 70, 62, 0, 0,128, 62, 89,162,115, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0,128, 62, 89,162,115, 62, -241,190,139, 62,230,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,190,139, 62, -230,176, 70, 62, 30,130,104, 62,230,176, 70, 62, 0, 0,128, 62,208, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 21, 51,179, 62,101,111, 52, 62,102, 23,161, 62,115, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62,241,190,139, 62, -230,176, 70, 62, 41,187,155, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62,208, 31, 23, 62, 41,187,155, 62,205,253, 30, 62,241,190,139, 62,230,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62,102, 23,161, 62,115, 97, 83, 62,147, 92,147, 62, -252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, - 0, 0,128, 62,208, 31, 23, 62, 30,130,104, 62,230,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62, 51,209, 61, 62,115, 97, 83, 62,174,137, 72, 62,205,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62,174,137, 72, 62,205,253, 30, 62, - 51,209, 61, 62,115, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51,209, 61, 62, -115, 97, 83, 62, 30,130,104, 62,230,176, 70, 62,217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61,215,153, 25, 62,104,111,180, 61,224,153, 25, 62,225, 64, 52, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,153, 25, 62,225, 64, 52, 61, 15, 51,179, 62, -225, 64, 52, 61,255,255,127, 62,141, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 20, 51,179, 62,104,111,180, 61,255,255,127, 62,141, 41,147, 61, 15, 51,179, 62,225, 64, 52, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61,224,153, 25, 62,225, 64, 52, 61,144,175,161, 62, -102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, - 20, 51,179, 62,104,111,180, 61, 12, 52,147, 62,109, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61,231,151, 89, 62,109, 46,231, 61,255,255,127, 62,141, 41,147, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61,255,255,127, 62,141, 41,147, 61, -231,151, 89, 62,109, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231,151, 89, 62, -109, 46,231, 61, 12, 52,147, 62,109, 46,231, 61, 0, 0,128, 62,208, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62,214,153, 25, 62,106,111, 52, 62,217,153, 25, 62,204, 70, 7, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62,231,151, 89, 62, -109, 46,231, 61,174,137, 72, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 62,208, 31, 23, 62,174,137, 72, 62,205,253, 30, 62,231,151, 89, 62,109, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61,217,153, 25, 62,204, 70, 7, 62,215,153, 25, 62, -104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, - 0, 0,128, 62,208, 31, 23, 62, 12, 52,147, 62,109, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61, 19, 51,179, 62,204, 70, 7, 62, 41,187,155, 62,205,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 41,187,155, 62,205,253, 30, 62, - 19, 51,179, 62,204, 70, 7, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19, 51,179, 62, -204, 70, 7, 62, 12, 52,147, 62,109, 46,231, 61, 20, 51,179, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62,214,153, 25, 62,156, 83,135, 62,212,153, 25, 62, 2,152, 97, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 51,209, 61, 62, -115, 97, 83, 62,192, 95, 56, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -217, 70, 89, 62,252, 76,120, 62,192, 95, 56, 62, 79, 45,128, 62, 51,209, 61, 62,115, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62,212,153, 25, 62, 2,152, 97, 62,214,153, 25, 62, -106,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62, -217, 70, 89, 62,252, 76,120, 62,245,154, 81, 62, 29,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62,125,120, 52, 62,181,144,151, 62,192, 95, 56, 62, 79, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62,192, 95, 56, 62, 79, 45,128, 62, -125,120, 52, 62,181,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125,120, 52, 62, -181,144,151, 62,245,154, 81, 62, 29,201,146, 62,239,120, 75, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62,214,153, 25, 62,165,111,180, 62,213,153, 25, 62,100,231,157, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62,125,120, 52, 62, -181,144,151, 62,213, 14, 50, 62, 78, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -239,120, 75, 62, 70,150,169, 62,213, 14, 50, 62, 78, 54,174, 62,125,120, 52, 62,181,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62,213,153, 25, 62,100,231,157, 62,214,153, 25, 62, -156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62, -239,120, 75, 62, 70,150,169, 62,245,154, 81, 62, 29,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62, 18,174,110, 62, 3,102,144, 62, 91,133,101, 62,112,190,166, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 91,133,101, 62,112,190,166, 62, - 18,174,110, 62, 3,102,144, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 18,174,110, 62, - 3,102,144, 62,245,154, 81, 62, 29,201,146, 62,217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62,232,194,249, 62,216, 76,120, 62,226,190, 3, 63, 90, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62,191,204, 12, 63, -248,151, 97, 62, 64, 27, 5, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -191,204, 12, 63,149, 83,135, 62, 64, 27, 5, 63, 66, 45,128, 62,191,204, 12, 63,248,151, 97, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62,226,190, 3, 63, 90, 97, 83, 62,191,204, 12, 63, - 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62, -191,204, 12, 63,149, 83,135, 62, 17, 21, 6, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62,222,152,253, 62, 14,201,146, 62, 64, 27, 5, 63, 66, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 64, 27, 5, 63, 66, 45,128, 62, -222,152,253, 62, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,152,253, 62, - 14,201,146, 62, 17, 21, 6, 63,169,144,151, 62,241, 84, 0, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 72,102,230, 62,183,199,165, 62, 70, 15,239, 62,233,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62,222,152,253, 62, - 14,201,146, 62,164,163,243, 62, 89,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -241, 84, 0, 63, 52,150,169, 62,164,163,243, 62, 89,190,166, 62,222,152,253, 62, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 70, 15,239, 62,233,101,144, 62,232,194,249, 62, -216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, -241, 84, 0, 63, 52,150,169, 62, 17, 21, 6, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62,191,204, 12, 63, 90,231,157, 62,123,175, 6, 63, 65, 54,174, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62,123,175, 6, 63, 65, 54,174, 62, -191,204, 12, 63, 90,231,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, - 90,231,157, 62, 17, 21, 6, 63,169,144,151, 62,191,204, 12, 63,149, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62,232,194,249, 62,216, 76,120, 62, 70, 15,239, 62,233,101,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 75,189,221, 62, -238,101,144, 62, 72,102,230, 62, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -168, 9,211, 62,222, 76,120, 62, 72,102,230, 62, 53,162,115, 62, 75,189,221, 62,238,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 70, 15,239, 62,233,101,144, 62, 72,102,230, 62, -183,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62, -168, 9,211, 62,222, 76,120, 62, 80,167,218, 62,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62, 68, 37,242, 62,194,176, 70, 62, 72,102,230, 62, 53,162,115, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 72,102,230, 62, 53,162,115, 62, - 68, 37,242, 62,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 37,242, 62, -194,176, 70, 62, 80,167,218, 62,194,176, 70, 62, 72,102,230, 62,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62,191,204, 12, 63, 90,111, 52, 62,226,190, 3, 63, 90, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 68, 37,242, 62, -194,176, 70, 62,197, 16, 1, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 72,102,230, 62,168, 31, 23, 62,197, 16, 1, 63,174,253, 30, 62, 68, 37,242, 62,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62,226,190, 3, 63, 90, 97, 83, 62,232,194,249, 62, -216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, - 72,102,230, 62,168, 31, 23, 62, 80,167,218, 62,194,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62,205, 78,197, 62, 95, 97, 83, 62, 14,171,202, 62,179,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 14,171,202, 62,179,253, 30, 62, -205, 78,197, 62, 95, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205, 78,197, 62, - 95, 97, 83, 62, 80,167,218, 62,194,176, 70, 62,168, 9,211, 62,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 20, 51,179, 62,104,111,180, 61, 15, 51,179, 62,225, 64, 52, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61,189,204, 12, 63, -225, 64, 52, 61, 63,102,230, 62,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -191,204, 12, 63, 83,111,180, 61, 63,102,230, 62,101, 41,147, 61,189,204, 12, 63,225, 64, 52, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 15, 51,179, 62,225, 64, 52, 61,144,175,161, 62, -102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, -191,204, 12, 63, 83,111,180, 61,104,154,249, 62, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61, 42, 50,211, 62, 48, 46,231, 61, 63,102,230, 62,101, 41,147, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 63,102,230, 62,101, 41,147, 61, - 42, 50,211, 62, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 50,211, 62, - 48, 46,231, 61,104,154,249, 62, 48, 46,231, 61, 72,102,230, 62,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 21, 51,179, 62,101,111, 52, 62, 19, 51,179, 62,204, 70, 7, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 42, 50,211, 62, - 48, 46,231, 61, 14,171,202, 62,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 72,102,230, 62,168, 31, 23, 62, 14,171,202, 62,179,253, 30, 62, 42, 50,211, 62, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 19, 51,179, 62,204, 70, 7, 62, 20, 51,179, 62, -104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, - 72,102,230, 62,168, 31, 23, 62,104,154,249, 62, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61,191,204, 12, 63,199, 70, 7, 62,197, 16, 1, 63,174,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62,197, 16, 1, 63,174,253, 30, 62, -191,204, 12, 63,199, 70, 7, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, -199, 70, 7, 62,104,154,249, 62, 48, 46,231, 61,191,204, 12, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 21, 51,179, 62,156, 83,135, 62, 22, 51,179, 62, 2,152, 97, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62,205, 78,197, 62, - 95, 97, 83, 62, 19,150,194, 62, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -168, 9,211, 62,222, 76,120, 62, 19,150,194, 62, 72, 45,128, 62,205, 78,197, 62, 95, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 22, 51,179, 62, 2,152, 97, 62, 21, 51,179, 62, -101,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, -168, 9,211, 62,222, 76,120, 62,179, 51,207, 62, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62,113,162,192, 62,174,144,151, 62, 19,150,194, 62, 72, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 19,150,194, 62, 72, 45,128, 62, -113,162,192, 62,174,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,162,192, 62, -174,144,151, 62,179, 51,207, 62, 17,201,146, 62,175, 34,204, 62, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 21, 51,179, 62,165,111,180, 62, 21, 51,179, 62, 98,231,157, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62,113,162,192, 62, -174,144,151, 62,154,109,191, 62, 68, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -175, 34,204, 62, 54,150,169, 62,154,109,191, 62, 68, 54,174, 62,113,162,192, 62,174,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 21, 51,179, 62, 98,231,157, 62, 21, 51,179, 62, -156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62, -175, 34,204, 62, 54,150,169, 62,179, 51,207, 62, 17,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62, 75,189,221, 62,238,101,144, 62,237, 40,217, 62, 91,190,166, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62,237, 40,217, 62, 91,190,166, 62, - 75,189,221, 62,238,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,189,221, 62, -238,101,144, 62,179, 51,207, 62, 17,201,146, 62,168, 9,211, 62,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62,188, 20, 48, 63, 37, 77,120, 62, 42,242, 54, 63,181, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 64, 63, -115,152, 97, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63,218, 83,135, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0, 64, 63,115,152, 97, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 64, 63, -202,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, - 0, 0, 64, 63,218, 83,135, 62, 87, 72, 57, 63,219,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62,184,255, 49, 63, 52,201,146, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62,134, 78, 56, 63,117, 45,128, 62, -184,255, 49, 63, 52,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184,255, 49, 63, - 52,201,146, 62, 87, 72, 57, 63,219,144,151, 62, 58,136, 51, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62,107,102, 38, 63,201,199,165, 62,235,186, 42, 63, 5,102,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62,184,255, 49, 63, - 52,201,146, 62, 26, 5, 45, 63,117,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 58,136, 51, 63, 90,150,169, 62, 26, 5, 45, 63,117,190,166, 62,184,255, 49, 63, 52,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62,235,186, 42, 63, 5,102,144, 62,188, 20, 48, 63, - 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, - 58,136, 51, 63, 90,150,169, 62, 87, 72, 57, 63,219,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62, 0, 0, 64, 63,162,231,157, 62,196,226, 57, 63,114, 54,174, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62,196,226, 57, 63,114, 54,174, 62, - 0, 0, 64, 63,162,231,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, -162,231,157, 62, 87, 72, 57, 63,219,144,151, 62, 0, 0, 64, 63,218, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62,188, 20, 48, 63, 37, 77,120, 62,235,186, 42, 63, 5,102,144, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62,234, 17, 34, 63, -243,101,144, 62,107,102, 38, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 21,184, 28, 63,222, 76,120, 62,107,102, 38, 63, 79,162,115, 62,234, 17, 34, 63,243,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62,235,186, 42, 63, 5,102,144, 62,107,102, 38, 63, -201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, - 21,184, 28, 63,222, 76,120, 62,234,134, 32, 63,204,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62,233, 69, 44, 63,245,176, 70, 62,107,102, 38, 63, 79,162,115, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62,107,102, 38, 63, 79,162,115, 62, -233, 69, 44, 63,245,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,233, 69, 44, 63, -245,176, 70, 62,234,134, 32, 63,204,176, 70, 62,104,102, 38, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 64, 63,202,111, 52, 62, 42,242, 54, 63,181, 97, 83, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62,233, 69, 44, 63, -245,176, 70, 62, 9, 68, 52, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -104,102, 38, 63,198, 31, 23, 62, 9, 68, 52, 63,241,253, 30, 62,233, 69, 44, 63,245,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 42,242, 54, 63,181, 97, 83, 62,188, 20, 48, 63, - 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62, -104,102, 38, 63,198, 31, 23, 62,234,134, 32, 63,204,176, 70, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62,162,218, 21, 63, 84, 97, 83, 62,195,136, 24, 63,179,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62,195,136, 24, 63,179,253, 30, 62, -162,218, 21, 63, 84, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162,218, 21, 63, - 84, 97, 83, 62,234,134, 32, 63,204,176, 70, 62, 21,184, 28, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61,191,204, 12, 63, 83,111,180, 61,189,204, 12, 63,225, 64, 52, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 64, 63, -111, 65, 52, 61,104,102, 38, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 64, 63,195,111,180, 61,104,102, 38, 63,111, 41,147, 61, 0, 0, 64, 63,111, 65, 52, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61,189,204, 12, 63,225, 64, 52, 61,208,222,121, 63, -102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, - 0, 0, 64, 63,195,111,180, 61,122, 0, 48, 63,120, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 85,204, 28, 63, 48, 46,231, 61,104,102, 38, 63,111, 41,147, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61,104,102, 38, 63,111, 41,147, 61, - 85,204, 28, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,204, 28, 63, - 48, 46,231, 61,122, 0, 48, 63,120, 46,231, 61,104,102, 38, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62,191,204, 12, 63, 90,111, 52, 62,191,204, 12, 63,199, 70, 7, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 85,204, 28, 63, - 48, 46,231, 61,195,136, 24, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -104,102, 38, 63,198, 31, 23, 62,195,136, 24, 63,179,253, 30, 62, 85,204, 28, 63, 48, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61,191,204, 12, 63,199, 70, 7, 62,191,204, 12, 63, - 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, -104,102, 38, 63,198, 31, 23, 62,122, 0, 48, 63,120, 46,231, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 0, 0, 64, 63, 24, 71, 7, 62, 9, 68, 52, 63,241,253, 30, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 9, 68, 52, 63,241,253, 30, 62, - 0, 0, 64, 63, 24, 71, 7, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, - 24, 71, 7, 62,122, 0, 48, 63,120, 46,231, 61, 0, 0, 64, 63,195,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62,191,204, 12, 63,149, 83,135, 62,191,204, 12, 63,248,151, 97, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62,162,218, 21, 63, - 84, 97, 83, 62, 68,126, 20, 63, 64, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 21,184, 28, 63,222, 76,120, 62, 68,126, 20, 63, 64, 45,128, 62,162,218, 21, 63, 84, 97, 83, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62,191,204, 12, 63,248,151, 97, 62,191,204, 12, 63, - 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, - 21,184, 28, 63,222, 76,120, 62, 25,205, 26, 63, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62,114,132, 19, 63,169,144,151, 62, 68,126, 20, 63, 64, 45,128, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 68,126, 20, 63, 64, 45,128, 62, -114,132, 19, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114,132, 19, 63, -169,144,151, 62, 25,205, 26, 63, 14,201,146, 62,150, 68, 25, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62,191,204, 12, 63,160,111,180, 62,191,204, 12, 63, 90,231,157, 62, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62,114,132, 19, 63, -169,144,151, 62, 7,234, 18, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -150, 68, 25, 63, 54,150,169, 62, 7,234, 18, 63, 65, 54,174, 62,114,132, 19, 63,169,144,151, 62, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62,191,204, 12, 63, 90,231,157, 62,191,204, 12, 63, -149, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62, -150, 68, 25, 63, 54,150,169, 62, 25,205, 26, 63, 14,201,146, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62,234, 17, 34, 63,243,101,144, 62,185,199, 31, 63, 96,190,166, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62,185,199, 31, 63, 96,190,166, 62, -234, 17, 34, 63,243,101,144, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234, 17, 34, 63, -243,101,144, 62, 25,205, 26, 63, 14,201,146, 62, 21,184, 28, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 80, 0, 0,168, 82,186, 3, 59, 0, 0, 0, 0, 20, 0, 0,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 90, 0, 0,104,191, 53, 3, 0, 0, 0, 0, 49, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, + 42, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,163, 0, 0, 0, + 0, 0, 35, 0, 1, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, +165, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, + 44, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,167, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, +169, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, + 46, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,171, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, +173, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, + 48, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,175, 0, 0, 0, + 0, 0, 35, 0, 5, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, +177, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, + 50, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0,179, 0, 0, 0, + 0, 0, 35, 0, 5, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, +181, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, + 52, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,183, 0, 0, 0, + 0, 0, 35, 0, 3, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, +185, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0, + 54, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0,187, 0, 0, 0, + 0, 0, 35, 0, 3, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, +189, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, + 56, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,191, 0, 0, 0, + 0, 0, 35, 0, 4, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, +193, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, + 58, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0,195, 0, 0, 0, + 0, 0, 35, 0, 4, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, +197, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, + 60, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0,199, 0, 0, 0, + 0, 0, 35, 0, 5, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, +201, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, + 62, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0,203, 0, 0, 0, + 0, 0, 35, 0, 10, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, +205, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, + 64, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0,207, 0, 0, 0, + 0, 0, 35, 0, 10, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, +209, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0, + 66, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0,211, 0, 0, 0, + 0, 0, 35, 0, 6, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, +213, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, + 68, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0,215, 0, 0, 0, + 0, 0, 35, 0, 6, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, +217, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, + 70, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,219, 0, 0, 0, + 0, 0, 35, 0, 7, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, +221, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, + 72, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,223, 0, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0,223, 0, 0, 0, + 0, 0, 35, 0, 7, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, +225, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0, + 74, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,227, 0, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0,227, 0, 0, 0, + 0, 0, 35, 0, 8, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, +229, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, + 76, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,231, 0, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0,231, 0, 0, 0, + 0, 0, 35, 0, 8, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, +233, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0, + 78, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,235, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0,235, 0, 0, 0, + 0, 0, 35, 0, 9, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, +237, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, + 80, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0,239, 0, 0, 0, + 0, 0, 35, 0, 9, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, +241, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, + 82, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,243, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0,243, 0, 0, 0, + 0, 0, 35, 0, 10, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, +245, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, + 84, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0,247, 0, 0, 0, + 0, 0, 35, 0, 7, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, +249, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, + 86, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,251, 0, 0, 0, + 0, 0, 35, 0, 8, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, +253, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0, + 88, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,255, 0, 0, 0, + 0, 0, 35, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, + 90, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, 3, 1, 0, 0, + 0, 0, 35, 0, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, + 5, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, + 92, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 7, 1, 0, 0, + 0, 0, 35, 0, 11, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, + 9, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, + 94, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 11, 1, 0, 0, + 0, 0, 35, 0, 11, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, + 13, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, + 96, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, 15, 1, 0, 0, + 0, 0, 35, 0, 11, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, + 17, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, + 98, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0, 19, 1, 0, 0, + 0, 0, 35, 0, 11, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, + 21, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, +100, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 23, 1, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, 23, 1, 0, 0, + 0, 0, 35, 0, 11, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, + 25, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, +102, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0, 27, 1, 0, 0, + 0, 0, 35, 0, 12, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, + 29, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, +104, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, 31, 1, 0, 0, + 0, 0, 35, 0, 12, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, + 33, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, +106, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, 35, 1, 0, 0, + 0, 0, 35, 0, 15, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, + 37, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, +108, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, 39, 1, 0, 0, + 0, 0, 35, 0, 13, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, + 41, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, +110, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, 43, 1, 0, 0, + 0, 0, 35, 0, 17, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, + 45, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, +112, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0, 47, 1, 0, 0, + 0, 0, 35, 0, 19, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, + 49, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0, +114, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0, 51, 1, 0, 0, + 0, 0, 35, 0, 15, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, + 53, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, +116, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0, 55, 1, 0, 0, + 0, 0, 35, 0, 16, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, + 57, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, +118, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0, 59, 1, 0, 0, + 0, 0, 35, 0, 22, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, + 61, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, +120, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0, 63, 1, 0, 0, + 0, 0, 35, 0, 14, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, + 65, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0, +122, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0, 67, 1, 0, 0, + 0, 0, 35, 0, 18, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, + 69, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, +124, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, 71, 1, 0, 0, + 0, 0, 35, 0, 26, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, + 73, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, +126, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0, 75, 1, 0, 0, + 0, 0, 35, 0, 20, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, + 77, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, +128, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0, 79, 1, 0, 0, + 0, 0, 35, 0, 21, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, + 81, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, +130, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 83, 1, 0, 0, + 0, 0, 35, 0, 30, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, + 85, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, +132, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 87, 1, 0, 0, + 0, 0, 35, 0, 23, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, + 89, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, +134, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 91, 1, 0, 0, + 0, 0, 35, 0, 25, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, +136, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 95, 1, 0, 0, + 0, 0, 35, 0, 26, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, + 97, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, +138, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 99, 1, 0, 0, + 0, 0, 35, 0, 27, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, +101, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, +140, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,103, 1, 0, 0, + 0, 0, 35, 0, 29, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, +105, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, +142, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,107, 1, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,107, 1, 0, 0, + 0, 0, 35, 0, 30, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, +109, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,109, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0, +144, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,111, 1, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,111, 1, 0, 0, + 0, 0, 35, 0, 22, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, +113, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0, +146, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,146, 0, 0, 0,115, 1, 0, 0, + 0, 0, 35, 0, 32, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, +117, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, +148, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,148, 0, 0, 0,119, 1, 0, 0, + 0, 0, 35, 0, 37, 0, 0, 0,120, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, +121, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, +150, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,123, 1, 0, 0, 0, 0, 35, 0,150, 0, 0, 0,123, 1, 0, 0, + 0, 0, 35, 0, 33, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, +125, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,125, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, +152, 0, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,127, 1, 0, 0, 0, 0, 35, 0,152, 0, 0, 0,127, 1, 0, 0, + 0, 0, 35, 0, 34, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, +129, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, +154, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,131, 1, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,131, 1, 0, 0, + 0, 0, 35, 0, 39, 0, 0, 0,132, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, +133, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,133, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,134, 1, 0, 0, 0, 0, 35, 0, +156, 0, 0, 0,134, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,135, 1, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,135, 1, 0, 0, + 0, 0, 35, 0, 35, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, +137, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,137, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, +158, 0, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,139, 1, 0, 0, + 0, 0, 35, 0, 36, 0, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,140, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, +141, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,141, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, +160, 0, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,143, 1, 0, 0, + 0, 0, 35, 0, 37, 0, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,144, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, +145, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0, +102, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,147, 1, 0, 0, 0, 0, 33, 0, 46, 0, 0, 0,147, 1, 0, 0, + 0, 0, 33, 0, 43, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0, +149, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,150, 1, 0, 0, 0, 0, 35, 0, +104, 0, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,151, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,151, 1, 0, 0, + 0, 0, 35, 0, 45, 0, 0, 0,152, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,152, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0, +153, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, +104, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,155, 1, 0, 0, + 0, 0, 35, 0, 42, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0, +157, 1, 0, 0, 0, 0, 33, 0, 44, 0, 0, 0,157, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, +105, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,159, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0,159, 1, 0, 0, + 0, 0, 33, 0, 43, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, +161, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,162, 1, 0, 0, 0, 0, 35, 0, +107, 0, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,163, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,163, 1, 0, 0, + 0, 0, 35, 0, 49, 0, 0, 0,164, 1, 0, 0, 0, 0, 33, 0, 51, 0, 0, 0,164, 1, 0, 0, 0, 0, 33, 0, 51, 0, 0, 0, +165, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, +107, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,167, 1, 0, 0, + 0, 0, 35, 0, 42, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0, +169, 1, 0, 0, 0, 0, 33, 0, 48, 0, 0, 0,169, 1, 0, 0, 0, 0, 33, 0, 54, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, +108, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,171, 1, 0, 0, 0, 0, 33, 0, 54, 0, 0, 0,171, 1, 0, 0, + 0, 0, 33, 0, 45, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, +173, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,174, 1, 0, 0, 0, 0, 35, 0, +110, 0, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,175, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,175, 1, 0, 0, + 0, 0, 35, 0, 53, 0, 0, 0,176, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,176, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0, +177, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, +110, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,179, 1, 0, 0, + 0, 0, 35, 0, 44, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0, +181, 1, 0, 0, 0, 0, 33, 0, 52, 0, 0, 0,181, 1, 0, 0, 0, 0, 33, 0, 58, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, +111, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,183, 1, 0, 0, 0, 0, 33, 0, 58, 0, 0, 0,183, 1, 0, 0, + 0, 0, 33, 0, 53, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, +185, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,185, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,186, 1, 0, 0, 0, 0, 35, 0, +113, 0, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,187, 1, 0, 0, + 0, 0, 35, 0, 57, 0, 0, 0,188, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,188, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0, +189, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, +113, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,191, 1, 0, 0, + 0, 0, 35, 0, 52, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, +193, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,193, 1, 0, 0, 0, 0, 33, 0, 60, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, +114, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,195, 1, 0, 0, 0, 0, 33, 0, 60, 0, 0, 0,195, 1, 0, 0, + 0, 0, 33, 0, 57, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0, +197, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,198, 1, 0, 0, 0, 0, 35, 0, +116, 0, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,199, 1, 0, 0, + 0, 0, 35, 0, 49, 0, 0, 0,200, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0,200, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0, +201, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, +116, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,203, 1, 0, 0, + 0, 0, 35, 0, 56, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, +205, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,205, 1, 0, 0, 0, 0, 33, 0, 64, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, +117, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0,207, 1, 0, 0, 0, 0, 33, 0, 64, 0, 0, 0,207, 1, 0, 0, + 0, 0, 33, 0, 50, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, +209, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, +119, 0, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,211, 1, 0, 0, + 0, 0, 35, 0, 63, 0, 0, 0,212, 1, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0,212, 1, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0, +213, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, +119, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,215, 1, 0, 0, + 0, 0, 35, 0, 51, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0, +217, 1, 0, 0, 0, 0, 33, 0, 62, 0, 0, 0,217, 1, 0, 0, 0, 0, 33, 0, 68, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, +120, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,219, 1, 0, 0, 0, 0, 33, 0, 68, 0, 0, 0,219, 1, 0, 0, + 0, 0, 33, 0, 47, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0, +221, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, +122, 0, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,223, 1, 0, 0, + 0, 0, 35, 0, 67, 0, 0, 0,224, 1, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0,224, 1, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0, +225, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, +122, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,227, 1, 0, 0, + 0, 0, 35, 0, 46, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0, +229, 1, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0,229, 1, 0, 0, 0, 0, 33, 0, 72, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0, +123, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,231, 1, 0, 0, 0, 0, 33, 0, 72, 0, 0, 0,231, 1, 0, 0, + 0, 0, 33, 0, 55, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, +233, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, +125, 0, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,235, 1, 0, 0, + 0, 0, 35, 0, 71, 0, 0, 0,236, 1, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0,236, 1, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0, +237, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, +125, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,239, 1, 0, 0, + 0, 0, 35, 0, 54, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0, +241, 1, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0,241, 1, 0, 0, 0, 0, 33, 0, 76, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0, +126, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,243, 1, 0, 0, 0, 0, 33, 0, 76, 0, 0, 0,243, 1, 0, 0, + 0, 0, 33, 0, 59, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0, +245, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,246, 1, 0, 0, 0, 0, 35, 0, +128, 0, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,247, 1, 0, 0, + 0, 0, 35, 0, 75, 0, 0, 0,248, 1, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0,248, 1, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0, +249, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, +128, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,251, 1, 0, 0, + 0, 0, 35, 0, 58, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0, +253, 1, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0,253, 1, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0, +129, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,255, 1, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0,255, 1, 0, 0, + 0, 0, 33, 0, 61, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, + 1, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, +131, 0, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 3, 2, 0, 0, + 0, 0, 35, 0, 79, 0, 0, 0, 4, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, 4, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, + 5, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, +131, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 7, 2, 0, 0, + 0, 0, 35, 0, 60, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, + 9, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 9, 2, 0, 0, 0, 0, 33, 0, 83, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0, +132, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0, 11, 2, 0, 0, 0, 0, 33, 0, 83, 0, 0, 0, 11, 2, 0, 0, + 0, 0, 33, 0, 65, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, + 13, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0, +134, 0, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 15, 2, 0, 0, + 0, 0, 35, 0, 67, 0, 0, 0, 16, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, 16, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, + 17, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, +134, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 19, 2, 0, 0, + 0, 0, 35, 0, 64, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0, + 21, 2, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0, 21, 2, 0, 0, 0, 0, 33, 0, 84, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0, +135, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0, 23, 2, 0, 0, 0, 0, 33, 0, 84, 0, 0, 0, 23, 2, 0, 0, + 0, 0, 33, 0, 69, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, + 25, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0, +137, 0, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 27, 2, 0, 0, + 0, 0, 35, 0, 71, 0, 0, 0, 28, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, 28, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, + 29, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, +137, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 31, 2, 0, 0, + 0, 0, 35, 0, 68, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, + 33, 2, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0, 33, 2, 0, 0, 0, 0, 33, 0, 86, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0, +138, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 35, 2, 0, 0, 0, 0, 33, 0, 86, 0, 0, 0, 35, 2, 0, 0, + 0, 0, 33, 0, 73, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, + 37, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0, +140, 0, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 39, 2, 0, 0, + 0, 0, 35, 0, 75, 0, 0, 0, 40, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, 40, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, + 41, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, +140, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 43, 2, 0, 0, + 0, 0, 35, 0, 72, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, + 45, 2, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0, 45, 2, 0, 0, 0, 0, 33, 0, 88, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0, +141, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 47, 2, 0, 0, 0, 0, 33, 0, 88, 0, 0, 0, 47, 2, 0, 0, + 0, 0, 33, 0, 77, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, + 49, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0, +143, 0, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 51, 2, 0, 0, + 0, 0, 35, 0, 79, 0, 0, 0, 52, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0, 52, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0, + 53, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, +143, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 55, 2, 0, 0, + 0, 0, 35, 0, 76, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, + 57, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 57, 2, 0, 0, 0, 0, 33, 0, 90, 0, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, +144, 0, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 59, 2, 0, 0, 0, 0, 33, 0, 90, 0, 0, 0, 59, 2, 0, 0, + 0, 0, 33, 0, 81, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, + 61, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0, +146, 0, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 63, 2, 0, 0, + 0, 0, 35, 0, 63, 0, 0, 0, 64, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0, 64, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0, + 65, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, +146, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 67, 2, 0, 0, + 0, 0, 35, 0, 80, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, + 69, 2, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0, 69, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, +147, 0, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, 71, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 71, 2, 0, 0, + 0, 0, 33, 0, 82, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, + 73, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0, +149, 0, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 75, 2, 0, 0, + 0, 0, 35, 0, 93, 0, 0, 0, 76, 2, 0, 0, 0, 0, 33, 0, 95, 0, 0, 0, 76, 2, 0, 0, 0, 0, 33, 0, 95, 0, 0, 0, + 77, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, +149, 0, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 79, 2, 0, 0, + 0, 0, 35, 0, 83, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, + 81, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0, 81, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, +150, 0, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0, 83, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0, 83, 2, 0, 0, + 0, 0, 33, 0, 85, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, + 85, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0, +152, 0, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 87, 2, 0, 0, + 0, 0, 35, 0, 95, 0, 0, 0, 88, 2, 0, 0, 0, 0, 33, 0, 97, 0, 0, 0, 88, 2, 0, 0, 0, 0, 33, 0, 97, 0, 0, 0, + 89, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, +152, 0, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 91, 2, 0, 0, + 0, 0, 35, 0, 84, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, + 93, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 93, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, +153, 0, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, 95, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0, 95, 2, 0, 0, + 0, 0, 33, 0, 87, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, + 97, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0, +155, 0, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0, 99, 2, 0, 0, + 0, 0, 35, 0, 97, 0, 0, 0,100, 2, 0, 0, 0, 0, 33, 0, 99, 0, 0, 0,100, 2, 0, 0, 0, 0, 33, 0, 99, 0, 0, 0, +101, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, +155, 0, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0,103, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,103, 2, 0, 0, + 0, 0, 35, 0, 86, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0, +105, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0,105, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, +156, 0, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,107, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,107, 2, 0, 0, + 0, 0, 33, 0, 89, 0, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0, +109, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,110, 2, 0, 0, 0, 0, 35, 0, +158, 0, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,111, 2, 0, 0, + 0, 0, 35, 0, 99, 0, 0, 0,112, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,112, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0, +113, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, +158, 0, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,115, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,115, 2, 0, 0, + 0, 0, 35, 0, 88, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0, +117, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0,117, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, +159, 0, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,119, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0,119, 2, 0, 0, + 0, 0, 33, 0, 91, 0, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0, +121, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,122, 2, 0, 0, 0, 0, 35, 0, +161, 0, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,123, 2, 0, 0, + 0, 0, 35, 0, 93, 0, 0, 0,124, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,124, 2, 0, 0, 0, 0, 33, 0, 93, 0, 0, 0, +125, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,126, 2, 0, 0, 0, 0, 35, 0, +161, 0, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,100, 0, 0, 0,127, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,127, 2, 0, 0, + 0, 0, 35, 0, 90, 0, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,128, 2, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, +129, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,129, 2, 0, 0, 0, 0, 33, 0, 27, 1, 0, 0,146, 1, 0, 0, 0, 0, 35, 0, +171, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,147, 1, 0, 0, + 0, 0, 35, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0, + 26, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0, +164, 0, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,147, 1, 0, 0, + 0, 0, 35, 0, 26, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0, + 28, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, +150, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0, 31, 1, 0, 0,151, 1, 0, 0, + 0, 0, 35, 0, 27, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0, + 30, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,152, 1, 0, 0, 0, 0, 35, 0, +172, 0, 0, 0,152, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0,152, 1, 0, 0,153, 1, 0, 0, + 0, 0, 35, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0, + 30, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, + 31, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0,153, 1, 0, 0, + 0, 0, 35, 0,167, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0, + 29, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0, +156, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,157, 1, 0, 0, + 0, 0, 35, 0,166, 0, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, + 28, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, +179, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,159, 1, 0, 0, + 0, 0, 35, 0,159, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0, + 32, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0, +164, 0, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,178, 0, 0, 0, + 0, 0, 35, 0, 32, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0, +161, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, +161, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0,163, 1, 0, 0, + 0, 0, 35, 0, 37, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, +162, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,164, 1, 0, 0, 0, 0, 35, 0, +176, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,164, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,165, 1, 0, 0, + 0, 0, 35, 0,165, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0, + 36, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, + 37, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0, 37, 1, 0, 0, + 0, 0, 35, 0,175, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, +167, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0, +167, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,169, 1, 0, 0, + 0, 0, 35, 0,162, 0, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0, +168, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, +187, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0,171, 1, 0, 0, + 0, 0, 35, 0,170, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,171, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0, + 38, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, +168, 0, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,171, 1, 0, 0, + 0, 0, 35, 0, 38, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0, + 40, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, +174, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0,175, 1, 0, 0, + 0, 0, 35, 0, 39, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0, + 42, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,176, 1, 0, 0, 0, 0, 35, 0, +188, 0, 0, 0,176, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,177, 1, 0, 0, + 0, 0, 35, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0, + 42, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, + 43, 1, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0,177, 1, 0, 0, + 0, 0, 35, 0,183, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,179, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, + 41, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0, +180, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,181, 1, 0, 0, + 0, 0, 35, 0,182, 0, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0, + 40, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, +195, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,183, 1, 0, 0, + 0, 0, 35, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,183, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0, + 44, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0, +184, 0, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,183, 1, 0, 0, + 0, 0, 35, 0, 44, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, + 46, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, +186, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0,187, 1, 0, 0, + 0, 0, 35, 0, 45, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0, + 48, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, +196, 0, 0, 0,188, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,188, 1, 0, 0,189, 1, 0, 0, + 0, 0, 35, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,189, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0, + 48, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, + 49, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0,189, 1, 0, 0, + 0, 0, 35, 0,191, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0, + 47, 1, 0, 0, 0, 0, 35, 0,191, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,191, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0, +192, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,193, 1, 0, 0, + 0, 0, 35, 0,190, 0, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, + 46, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, +199, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0,195, 1, 0, 0, + 0, 0, 35, 0,194, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0, + 50, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, +192, 0, 0, 0,195, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,195, 1, 0, 0, + 0, 0, 35, 0, 50, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, + 53, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, +198, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,199, 1, 0, 0, + 0, 0, 35, 0, 51, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, + 54, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,200, 1, 0, 0, 0, 0, 35, 0, +200, 0, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,201, 1, 0, 0, + 0, 0, 35, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,201, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0, + 54, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, + 55, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0,201, 0, 0, 0,201, 1, 0, 0, + 0, 0, 35, 0,175, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0, + 52, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0, +204, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0,190, 0, 0, 0,205, 1, 0, 0, + 0, 0, 35, 0,174, 0, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0, + 53, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, +207, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,207, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0,207, 1, 0, 0, + 0, 0, 35, 0,207, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0, + 56, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0, +178, 0, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0,206, 0, 0, 0, + 0, 0, 35, 0, 56, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, +209, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,210, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, +209, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,211, 1, 0, 0, + 0, 0, 35, 0, 61, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, +210, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,204, 0, 0, 0,212, 1, 0, 0, 0, 0, 35, 0, +204, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,212, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,213, 1, 0, 0, + 0, 0, 35, 0,213, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,205, 0, 0, 0, + 60, 1, 0, 0, 0, 0, 35, 0,205, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, + 61, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 61, 1, 0, 0, + 0, 0, 35, 0,203, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,203, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, +215, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,216, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0, +215, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0,202, 0, 0, 0,217, 1, 0, 0, + 0, 0, 35, 0,180, 0, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, +216, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, +215, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0,215, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,219, 1, 0, 0, + 0, 0, 35, 0,219, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, + 62, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0, +172, 0, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,172, 0, 0, 0,214, 0, 0, 0, + 0, 0, 35, 0, 62, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0, +221, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,222, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, +221, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,223, 1, 0, 0, + 0, 0, 35, 0, 67, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0, +222, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,224, 1, 0, 0, 0, 0, 35, 0, +212, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,225, 1, 0, 0, + 0, 0, 35, 0,225, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, + 66, 1, 0, 0, 0, 0, 35, 0,213, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, + 67, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, 67, 1, 0, 0, + 0, 0, 35, 0,211, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0, +227, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,228, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0, +227, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,210, 0, 0, 0,229, 1, 0, 0, + 0, 0, 35, 0,170, 0, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0, +228, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0,230, 1, 0, 0, 0, 0, 35, 0, +223, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,231, 1, 0, 0, + 0, 0, 35, 0,231, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, + 68, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0, +188, 0, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,188, 0, 0, 0,222, 0, 0, 0, + 0, 0, 35, 0, 68, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, +233, 1, 0, 0, 0, 0, 35, 0,233, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,234, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, +233, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0,235, 1, 0, 0, + 0, 0, 35, 0, 73, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, +234, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,236, 1, 0, 0, 0, 0, 35, 0, +220, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,236, 1, 0, 0,237, 1, 0, 0, + 0, 0, 35, 0,237, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, + 72, 1, 0, 0, 0, 0, 35, 0,221, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, + 73, 1, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, 73, 1, 0, 0, + 0, 0, 35, 0,219, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, +239, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,240, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0, +239, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0,241, 1, 0, 0, + 0, 0, 35, 0,186, 0, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, +240, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0, +231, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0,243, 1, 0, 0, + 0, 0, 35, 0,243, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, + 74, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, +196, 0, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,196, 0, 0, 0,230, 0, 0, 0, + 0, 0, 35, 0, 74, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 76, 1, 0, 0, +245, 1, 0, 0, 0, 0, 35, 0,245, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,246, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, +245, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0,247, 1, 0, 0, + 0, 0, 35, 0, 79, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, +246, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,248, 1, 0, 0, 0, 0, 35, 0, +228, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,248, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0,249, 1, 0, 0, + 0, 0, 35, 0,249, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,229, 0, 0, 0, + 78, 1, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, + 79, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, 79, 1, 0, 0, + 0, 0, 35, 0,227, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,227, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, +251, 1, 0, 0, 0, 0, 35, 0,251, 1, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,252, 1, 0, 0,253, 1, 0, 0, 0, 0, 35, 0, +251, 1, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,226, 0, 0, 0,253, 1, 0, 0, + 0, 0, 35, 0,194, 0, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0, 76, 1, 0, 0, +252, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0,254, 1, 0, 0, 0, 0, 35, 0, +239, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0,254, 1, 0, 0,255, 1, 0, 0, + 0, 0, 35, 0,255, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,254, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, + 80, 1, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0, +200, 0, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,238, 0, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,200, 0, 0, 0,238, 0, 0, 0, + 0, 0, 35, 0, 80, 1, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 82, 1, 0, 0, + 1, 2, 0, 0, 0, 0, 35, 0, 1, 2, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, + 1, 2, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0, 3, 2, 0, 0, + 0, 0, 35, 0, 85, 1, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 84, 1, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, + 2, 2, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 4, 2, 0, 0, 0, 0, 35, 0, +236, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 4, 2, 0, 0, 0, 0, 35, 0, 4, 2, 0, 0, 5, 2, 0, 0, + 0, 0, 35, 0, 5, 2, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 4, 2, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, + 84, 1, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 84, 1, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, + 85, 1, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 85, 1, 0, 0, + 0, 0, 35, 0,235, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, + 7, 2, 0, 0, 0, 0, 35, 0, 7, 2, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, 8, 2, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0, + 7, 2, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,234, 0, 0, 0, 9, 2, 0, 0, + 0, 0, 35, 0,198, 0, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0, 82, 1, 0, 0, + 8, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0, +245, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 10, 2, 0, 0, 11, 2, 0, 0, + 0, 0, 35, 0, 10, 2, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, 11, 2, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, + 86, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, +208, 0, 0, 0, 11, 2, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 11, 2, 0, 0, + 0, 0, 35, 0, 86, 1, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, + 88, 1, 0, 0, 0, 0, 35, 0, 13, 2, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0, 13, 2, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, + 14, 2, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0, 15, 2, 0, 0, + 0, 0, 35, 0, 87, 1, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, + 90, 1, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,212, 0, 0, 0, 16, 2, 0, 0, 0, 0, 35, 0, +242, 0, 0, 0, 16, 2, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 16, 2, 0, 0, 17, 2, 0, 0, + 0, 0, 35, 0, 16, 2, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 17, 2, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, + 90, 1, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, + 91, 1, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 17, 2, 0, 0, + 0, 0, 35, 0,211, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, + 89, 1, 0, 0, 0, 0, 35, 0, 19, 2, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, 19, 2, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0, + 20, 2, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,206, 0, 0, 0, 21, 2, 0, 0, + 0, 0, 35, 0,210, 0, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,207, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,207, 0, 0, 0, + 88, 1, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0, +247, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 22, 2, 0, 0, 23, 2, 0, 0, + 0, 0, 35, 0, 22, 2, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, 23, 2, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, + 92, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, +216, 0, 0, 0, 23, 2, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 23, 2, 0, 0, + 0, 0, 35, 0, 92, 1, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, + 94, 1, 0, 0, 0, 0, 35, 0, 25, 2, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0, 25, 2, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, + 26, 2, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0, 27, 2, 0, 0, + 0, 0, 35, 0, 93, 1, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, + 96, 1, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,220, 0, 0, 0, 28, 2, 0, 0, 0, 0, 35, 0, +248, 0, 0, 0, 28, 2, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 28, 2, 0, 0, 29, 2, 0, 0, + 0, 0, 35, 0, 28, 2, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 29, 2, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, + 96, 1, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, + 97, 1, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 29, 2, 0, 0, + 0, 0, 35, 0,219, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, + 95, 1, 0, 0, 0, 0, 35, 0, 31, 2, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, 31, 2, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0, + 32, 2, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,214, 0, 0, 0, 33, 2, 0, 0, + 0, 0, 35, 0,218, 0, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, + 94, 1, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0, +251, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 34, 2, 0, 0, 35, 2, 0, 0, + 0, 0, 35, 0, 34, 2, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, 35, 2, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, + 98, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, +224, 0, 0, 0, 35, 2, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, 35, 2, 0, 0, + 0, 0, 35, 0, 98, 1, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0, +100, 1, 0, 0, 0, 0, 35, 0, 37, 2, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0, 37, 2, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, + 38, 2, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,103, 1, 0, 0, 39, 2, 0, 0, + 0, 0, 35, 0, 99, 1, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, +102, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,228, 0, 0, 0, 40, 2, 0, 0, 0, 0, 35, 0, +252, 0, 0, 0, 40, 2, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 40, 2, 0, 0, 41, 2, 0, 0, + 0, 0, 35, 0, 40, 2, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 41, 2, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,229, 0, 0, 0, +102, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,229, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, +103, 1, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, 41, 2, 0, 0, + 0, 0, 35, 0,227, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,227, 0, 0, 0, +101, 1, 0, 0, 0, 0, 35, 0, 43, 2, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0, 43, 2, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0, + 44, 2, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,222, 0, 0, 0, 45, 2, 0, 0, + 0, 0, 35, 0,226, 0, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,223, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,223, 0, 0, 0, +100, 1, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0, +255, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0, 46, 2, 0, 0, 47, 2, 0, 0, + 0, 0, 35, 0, 46, 2, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, 47, 2, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, +104, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, +232, 0, 0, 0, 47, 2, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 47, 2, 0, 0, + 0, 0, 35, 0,104, 1, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0, +106, 1, 0, 0, 0, 0, 35, 0, 49, 2, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0, 49, 2, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0, + 50, 2, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0, 51, 2, 0, 0, + 0, 0, 35, 0,105, 1, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,108, 1, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, +108, 1, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 52, 2, 0, 0, 0, 0, 35, 0, + 0, 1, 0, 0, 52, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 52, 2, 0, 0, 53, 2, 0, 0, + 0, 0, 35, 0, 52, 2, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 53, 2, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, +108, 1, 0, 0, 0, 0, 35, 0,108, 1, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, +109, 1, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0, 53, 2, 0, 0, + 0, 0, 35, 0,235, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, +107, 1, 0, 0, 0, 0, 35, 0, 55, 2, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0, 55, 2, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0, + 56, 2, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,230, 0, 0, 0, 57, 2, 0, 0, + 0, 0, 35, 0,234, 0, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,231, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,231, 0, 0, 0, +106, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, + 3, 1, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0, 58, 2, 0, 0, 59, 2, 0, 0, + 0, 0, 35, 0, 58, 2, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, 59, 2, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, +110, 1, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, +240, 0, 0, 0, 59, 2, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 59, 2, 0, 0, + 0, 0, 35, 0,110, 1, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0, +113, 1, 0, 0, 0, 0, 35, 0, 61, 2, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0, 61, 2, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0, + 62, 2, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,115, 1, 0, 0, 63, 2, 0, 0, + 0, 0, 35, 0,111, 1, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, +114, 1, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, 64, 2, 0, 0, 0, 0, 35, 0, + 4, 1, 0, 0, 64, 2, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 64, 2, 0, 0, 65, 2, 0, 0, + 0, 0, 35, 0, 64, 2, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 65, 2, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,205, 0, 0, 0, +114, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,205, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, +115, 1, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, 65, 2, 0, 0, + 0, 0, 35, 0,203, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,203, 0, 0, 0, +112, 1, 0, 0, 0, 0, 35, 0, 67, 2, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0, 67, 2, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0, + 68, 2, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,202, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,238, 0, 0, 0, 69, 2, 0, 0, + 0, 0, 35, 0,202, 0, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,239, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,239, 0, 0, 0, +113, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,117, 1, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, + 11, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 70, 2, 0, 0, 71, 2, 0, 0, + 0, 0, 35, 0, 71, 2, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, 70, 2, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, +116, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, +242, 0, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0,242, 0, 0, 0, 10, 1, 0, 0, + 0, 0, 35, 0,116, 1, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,118, 1, 0, 0, + 73, 2, 0, 0, 0, 0, 35, 0, 73, 2, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0, 74, 2, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0, + 73, 2, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,117, 1, 0, 0, 75, 2, 0, 0, + 0, 0, 35, 0,121, 1, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,120, 1, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,119, 1, 0, 0, + 74, 2, 0, 0, 0, 0, 35, 0,119, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0, 76, 2, 0, 0, 0, 0, 35, 0, + 8, 1, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 76, 2, 0, 0, 0, 0, 35, 0, 76, 2, 0, 0, 77, 2, 0, 0, + 0, 0, 35, 0, 77, 2, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 76, 2, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, +120, 1, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0,120, 1, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, +121, 1, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0,121, 1, 0, 0, + 0, 0, 35, 0, 7, 1, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,119, 1, 0, 0, + 79, 2, 0, 0, 0, 0, 35, 0, 79, 2, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0, 80, 2, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0, + 79, 2, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0, 81, 2, 0, 0, + 0, 0, 35, 0,244, 0, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,118, 1, 0, 0, + 80, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,123, 1, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, + 15, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 82, 2, 0, 0, 83, 2, 0, 0, + 0, 0, 35, 0, 83, 2, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, 82, 2, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, +122, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, +248, 0, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0,248, 0, 0, 0, 14, 1, 0, 0, + 0, 0, 35, 0,122, 1, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,122, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,124, 1, 0, 0, + 85, 2, 0, 0, 0, 0, 35, 0, 85, 2, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0, 86, 2, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0, + 85, 2, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,123, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0,123, 1, 0, 0, 87, 2, 0, 0, + 0, 0, 35, 0,127, 1, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,126, 1, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,125, 1, 0, 0, + 86, 2, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 88, 2, 0, 0, 0, 0, 35, 0, + 12, 1, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, 88, 2, 0, 0, 0, 0, 35, 0, 88, 2, 0, 0, 89, 2, 0, 0, + 0, 0, 35, 0, 89, 2, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 88, 2, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, +126, 1, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0,126, 1, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, +127, 1, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0,127, 1, 0, 0, + 0, 0, 35, 0, 11, 1, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0, + 91, 2, 0, 0, 0, 0, 35, 0, 91, 2, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0, 92, 2, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0, + 91, 2, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 93, 2, 0, 0, + 0, 0, 35, 0,246, 0, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,124, 1, 0, 0, + 92, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,129, 1, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, + 19, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 94, 2, 0, 0, 95, 2, 0, 0, + 0, 0, 35, 0, 95, 2, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, 94, 2, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, +128, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, +252, 0, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0,252, 0, 0, 0, 18, 1, 0, 0, + 0, 0, 35, 0,128, 1, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,128, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0,130, 1, 0, 0, + 97, 2, 0, 0, 0, 0, 35, 0, 97, 2, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0, 98, 2, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0, + 97, 2, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,129, 1, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,129, 1, 0, 0, 99, 2, 0, 0, + 0, 0, 35, 0,133, 1, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,132, 1, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,131, 1, 0, 0, + 98, 2, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0,100, 2, 0, 0, 0, 0, 35, 0, + 16, 1, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,100, 2, 0, 0, 0, 0, 35, 0,100, 2, 0, 0,101, 2, 0, 0, + 0, 0, 35, 0,101, 2, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,100, 2, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, +132, 1, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, +133, 1, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,133, 1, 0, 0, + 0, 0, 35, 0, 15, 1, 0, 0,103, 2, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,131, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0, +103, 2, 0, 0, 0, 0, 35, 0,103, 2, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,104, 2, 0, 0,105, 2, 0, 0, 0, 0, 35, 0, +103, 2, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0,105, 2, 0, 0, + 0, 0, 35, 0,250, 0, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,130, 1, 0, 0, +104, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, + 23, 1, 0, 0,135, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,106, 2, 0, 0, 0, 0, 35, 0,106, 2, 0, 0,107, 2, 0, 0, + 0, 0, 35, 0,107, 2, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,106, 2, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0, +134, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, + 0, 1, 0, 0,107, 2, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0,107, 2, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0, 22, 1, 0, 0, + 0, 0, 35, 0,134, 1, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0, +109, 2, 0, 0, 0, 0, 35, 0,109, 2, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,110, 2, 0, 0,111, 2, 0, 0, 0, 0, 35, 0, +109, 2, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,111, 2, 0, 0, + 0, 0, 35, 0,139, 1, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,137, 1, 0, 0, +110, 2, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,112, 2, 0, 0, 0, 0, 35, 0, + 20, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0,112, 2, 0, 0, 0, 0, 35, 0,112, 2, 0, 0,113, 2, 0, 0, + 0, 0, 35, 0,113, 2, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,112, 2, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0, +138, 1, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, +139, 1, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,139, 1, 0, 0, + 0, 0, 35, 0, 19, 1, 0, 0,115, 2, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,137, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0, +115, 2, 0, 0, 0, 0, 35, 0,115, 2, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,116, 2, 0, 0,117, 2, 0, 0, 0, 0, 35, 0, +115, 2, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0,117, 2, 0, 0, + 0, 0, 35, 0,254, 0, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,136, 1, 0, 0, +116, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, + 7, 1, 0, 0,141, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,118, 2, 0, 0, 0, 0, 35, 0,118, 2, 0, 0,119, 2, 0, 0, + 0, 0, 35, 0,119, 2, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,118, 2, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, +140, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, + 4, 1, 0, 0,119, 2, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0,119, 2, 0, 0, 0, 0, 35, 0, 4, 1, 0, 0, 6, 1, 0, 0, + 0, 0, 35, 0,140, 1, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0, +121, 2, 0, 0, 0, 0, 35, 0,121, 2, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,122, 2, 0, 0,123, 2, 0, 0, 0, 0, 35, 0, +121, 2, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,123, 2, 0, 0, + 0, 0, 35, 0,144, 1, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,143, 1, 0, 0, +122, 2, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0,124, 2, 0, 0, 0, 0, 35, 0, + 8, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0,124, 2, 0, 0, 0, 0, 35, 0,124, 2, 0, 0,125, 2, 0, 0, + 0, 0, 35, 0,125, 2, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,124, 2, 0, 0,126, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0, +145, 1, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,126, 2, 0, 0, 0, 0, 35, 0, +144, 1, 0, 0,125, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0,125, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0,144, 1, 0, 0, + 0, 0, 35, 0, 23, 1, 0, 0,127, 2, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,143, 1, 0, 0, +127, 2, 0, 0, 0, 0, 35, 0,127, 2, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,128, 2, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, +127, 2, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0,129, 2, 0, 0, + 0, 0, 35, 0, 2, 1, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,142, 1, 0, 0, +128, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,184, 25, 54, 3, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 27, 54, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,127, 54, 3, 0, 0, 0, 0, 6, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,112, 55, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,100, 0, 0,104, 27, 54, 3, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 5, 0, 0, 27, 1, 0, 0,102, 0, 0, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +146, 1, 0, 0,171, 0, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, 27, 1, 0, 0,171, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,171, 0, 0, 0,146, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,147, 1, 0, 0, + 46, 0, 0, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0,148, 1, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 43, 0, 0, 0,147, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 1, 0, 0,146, 1, 0, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 1, 0, 0, 12, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +165, 0, 0, 0,148, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 0, 0, 0, 26, 1, 0, 0,148, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,148, 1, 0, 0,165, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,147, 1, 0, 0, + 43, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 0, 0, 0,170, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 46, 0, 0, 0,147, 1, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,170, 0, 0, 0,164, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 1, 0, 0,102, 0, 0, 0,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +149, 1, 0, 0, 28, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0, 26, 1, 0, 0, 28, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 28, 1, 0, 0,149, 1, 0, 0,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,150, 1, 0, 0, +103, 0, 0, 0,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 1, 0, 0,151, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,104, 0, 0, 0,150, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 1, 0, 0,149, 1, 0, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 1, 0, 0, 14, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 31, 1, 0, 0,151, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 0, 0, 0, 27, 1, 0, 0,151, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,151, 1, 0, 0, 31, 1, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,150, 1, 0, 0, +104, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 1, 0, 0, 29, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,103, 0, 0, 0,150, 1, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 1, 0, 0, 30, 1, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, 45, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +152, 1, 0, 0,172, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,168, 0, 0, 0,172, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,172, 0, 0, 0,152, 1, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,153, 1, 0, 0, + 47, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 1, 0, 0,154, 1, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,104, 0, 0, 0,153, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0,152, 1, 0, 0, + 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,169, 0, 0, 0, 13, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 30, 1, 0, 0,154, 1, 0, 0,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 0, 0, 0,169, 0, 0, 0,154, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 30, 1, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,153, 1, 0, 0, +104, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 1, 0, 0,173, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 47, 0, 0, 0,153, 1, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,173, 0, 0, 0, 31, 1, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 0, 0, 0, 44, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +155, 1, 0, 0, 29, 1, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 0, 0, 0,167, 0, 0, 0, 29, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 29, 1, 0, 0,155, 1, 0, 0,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,156, 1, 0, 0, +103, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 1, 0, 0,157, 1, 0, 0,156, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 42, 0, 0, 0,156, 1, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 1, 0, 0,155, 1, 0, 0, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,166, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +162, 0, 0, 0,157, 1, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 0, 0, 0,166, 0, 0, 0,157, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,157, 1, 0, 0,162, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,156, 1, 0, 0, + 42, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,163, 0, 0, 0, 28, 1, 0, 0,156, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,103, 0, 0, 0,156, 1, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 1, 0, 0,163, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 1, 0, 0,105, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 33, 1, 0, 0,179, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 0, 0, 0,158, 1, 0, 0,179, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,179, 0, 0, 0, 33, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 1, 0, 0, + 50, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 1, 0, 0,160, 1, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,105, 0, 0, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 1, 0, 0,159, 1, 0, 0, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 0, 0, 0, 12, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 32, 1, 0, 0,160, 1, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 0, 0, 0,165, 0, 0, 0,160, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,160, 1, 0, 0, 32, 1, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 0, 0, 0, + 43, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 1, 0, 0,178, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 1, 0, 0, 0,164, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,178, 0, 0, 0,159, 1, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 1, 0, 0,105, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 32, 1, 0, 0, 34, 1, 0, 0,161, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 0, 0, 0,161, 1, 0, 0, 34, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 34, 1, 0, 0, 32, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 1, 0, 0, +106, 0, 0, 0,162, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 1, 0, 0,163, 1, 0, 0,161, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,105, 0, 0, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,163, 1, 0, 0,162, 1, 0, 0, +107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 1, 0, 0, 16, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 33, 1, 0, 0,163, 1, 0, 0, 37, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, 37, 1, 0, 0,163, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,163, 1, 0, 0, 33, 1, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 1, 0, 0, +107, 0, 0, 0,162, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 1, 0, 0, 35, 1, 0, 0, 36, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 15, 0, 0, 0, 36, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 1, 0, 0,162, 1, 0, 0, +106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 1, 0, 0, 49, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +176, 0, 0, 0,180, 0, 0, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0,164, 1, 0, 0,180, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,180, 0, 0, 0,176, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,164, 1, 0, 0, + 51, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,166, 1, 0, 0,164, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 49, 0, 0, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,166, 1, 0, 0,165, 1, 0, 0, +107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 1, 0, 0, 15, 0, 0, 0,177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +177, 0, 0, 0,166, 1, 0, 0, 36, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, 36, 1, 0, 0,166, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,166, 1, 0, 0,177, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 1, 0, 0, +107, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,181, 0, 0, 0, 37, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 16, 0, 0, 0, 37, 1, 0, 0,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 0, 0, 0,165, 1, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 1, 0, 0, 48, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +175, 0, 0, 0, 35, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 0, 0, 0,167, 1, 0, 0, 35, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 35, 1, 0, 0,175, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 1, 0, 0, +106, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 1, 0, 0,169, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 48, 0, 0, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,169, 1, 0, 0,168, 1, 0, 0, + 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,162, 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +174, 0, 0, 0,169, 1, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 0, 0, 0,162, 0, 0, 0,169, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,169, 1, 0, 0,174, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,163, 0, 0, 0, + 42, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 1, 0, 0, 34, 1, 0, 0,163, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 12, 0, 0, 0,163, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 1, 0, 0,168, 1, 0, 0, +106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 1, 0, 0,108, 0, 0, 0,170, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +170, 1, 0, 0,187, 0, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 0, 0, 0, 39, 1, 0, 0,187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,187, 0, 0, 0,170, 1, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,171, 1, 0, 0, + 54, 0, 0, 0,170, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,170, 1, 0, 0,172, 1, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 45, 0, 0, 0,171, 1, 0, 0,172, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,172, 1, 0, 0,170, 1, 0, 0, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0, 13, 0, 0, 0,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +169, 0, 0, 0,172, 1, 0, 0, 38, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 0, 0, 0, 38, 1, 0, 0,172, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,172, 1, 0, 0,169, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,171, 1, 0, 0, + 45, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0,186, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 54, 0, 0, 0,171, 1, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,186, 0, 0, 0,168, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0,108, 0, 0, 0,173, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +173, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 0, 0, 0, 38, 1, 0, 0, 40, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 40, 1, 0, 0,173, 1, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,174, 1, 0, 0, +109, 0, 0, 0,173, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,173, 1, 0, 0,175, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,110, 0, 0, 0,174, 1, 0, 0,175, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,175, 1, 0, 0,173, 1, 0, 0, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 1, 0, 0, 18, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 43, 1, 0, 0,175, 1, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 0, 0, 0, 39, 1, 0, 0,175, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,175, 1, 0, 0, 43, 1, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,174, 1, 0, 0, +110, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 1, 0, 0, 41, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,109, 0, 0, 0,174, 1, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 1, 0, 0, 42, 1, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0, 53, 0, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +176, 1, 0, 0,188, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,188, 0, 0, 0,176, 1, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,177, 1, 0, 0, + 55, 0, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,176, 1, 0, 0,178, 1, 0, 0,177, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,110, 0, 0, 0,177, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,178, 1, 0, 0,176, 1, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0, 17, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 42, 1, 0, 0,178, 1, 0, 0,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 0, 0, 0,185, 0, 0, 0,178, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,178, 1, 0, 0, 42, 1, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,177, 1, 0, 0, +110, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0,189, 0, 0, 0,177, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 55, 0, 0, 0,177, 1, 0, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,189, 0, 0, 0, 43, 1, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0, 52, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +179, 1, 0, 0, 41, 1, 0, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 0, 0, 0,183, 0, 0, 0, 41, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 41, 1, 0, 0,179, 1, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 1, 0, 0, +109, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,179, 1, 0, 0,181, 1, 0, 0,180, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 44, 0, 0, 0,180, 1, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 1, 0, 0,179, 1, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +166, 0, 0, 0,181, 1, 0, 0,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 0, 0, 0,182, 0, 0, 0,181, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,181, 1, 0, 0,166, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 1, 0, 0, + 44, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,167, 0, 0, 0, 40, 1, 0, 0,180, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,109, 0, 0, 0,180, 1, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 1, 0, 0,167, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0,111, 0, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +182, 1, 0, 0,195, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 0, 0, 0, 45, 1, 0, 0,195, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0,182, 1, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 1, 0, 0, + 58, 0, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 1, 0, 0,184, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 53, 0, 0, 0,183, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 1, 0, 0,182, 1, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0, 17, 0, 0, 0,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +185, 0, 0, 0,184, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, 44, 1, 0, 0,184, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,184, 1, 0, 0,185, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 1, 0, 0, + 53, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0,194, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 58, 0, 0, 0,183, 1, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,194, 0, 0, 0,184, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0,111, 0, 0, 0,185, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +185, 1, 0, 0, 46, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 0, 0, 0, 44, 1, 0, 0, 46, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 46, 1, 0, 0,185, 1, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,186, 1, 0, 0, +112, 0, 0, 0,185, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,185, 1, 0, 0,187, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,113, 0, 0, 0,186, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,187, 1, 0, 0,185, 1, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0, 20, 0, 0, 0, 49, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 49, 1, 0, 0,187, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, 45, 1, 0, 0,187, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,187, 1, 0, 0, 49, 1, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,186, 1, 0, 0, +113, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 1, 0, 0, 47, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,112, 0, 0, 0,186, 1, 0, 0, 47, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 1, 0, 0, 48, 1, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0, 57, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +188, 1, 0, 0,196, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0,192, 0, 0, 0,196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,196, 0, 0, 0,188, 1, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,189, 1, 0, 0, + 59, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,188, 1, 0, 0,190, 1, 0, 0,189, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,113, 0, 0, 0,189, 1, 0, 0,190, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,190, 1, 0, 0,188, 1, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,193, 0, 0, 0, 19, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 48, 1, 0, 0,190, 1, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0,193, 0, 0, 0,190, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,190, 1, 0, 0, 48, 1, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,189, 1, 0, 0, +113, 0, 0, 0, 49, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0,197, 0, 0, 0,189, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 59, 0, 0, 0,189, 1, 0, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 0, 49, 1, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, 56, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +191, 1, 0, 0, 47, 1, 0, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 0, 0, 0,191, 0, 0, 0, 47, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 47, 1, 0, 0,191, 1, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 1, 0, 0, +112, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 1, 0, 0,193, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 52, 0, 0, 0,192, 1, 0, 0,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,193, 1, 0, 0,191, 1, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,190, 0, 0, 0, 0, 0, 0, 0,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +182, 0, 0, 0,193, 1, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 56, 0, 0, 0,190, 0, 0, 0,193, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,193, 1, 0, 0,182, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 1, 0, 0, + 52, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0, 46, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,112, 0, 0, 0,192, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 1, 0, 0,183, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 1, 0, 0,114, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +194, 1, 0, 0,199, 0, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 0, 0, 0, 51, 1, 0, 0,199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0,194, 1, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,195, 1, 0, 0, + 60, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,194, 1, 0, 0,196, 1, 0, 0,195, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 57, 0, 0, 0,195, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,196, 1, 0, 0,194, 1, 0, 0, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0, 19, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +193, 0, 0, 0,196, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 0, 0, 0, 50, 1, 0, 0,196, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,196, 1, 0, 0,193, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,195, 1, 0, 0, + 57, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0,198, 0, 0, 0,195, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 60, 0, 0, 0,195, 1, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0,192, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0,114, 0, 0, 0,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +197, 1, 0, 0, 53, 1, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 0, 0, 0, 50, 1, 0, 0, 53, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 53, 1, 0, 0,197, 1, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,198, 1, 0, 0, +115, 0, 0, 0,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 1, 0, 0,199, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,116, 0, 0, 0,198, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 1, 0, 0,197, 1, 0, 0, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 1, 0, 0, 21, 0, 0, 0, 55, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 55, 1, 0, 0,199, 1, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 0, 0, 0, 51, 1, 0, 0,199, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,199, 1, 0, 0, 55, 1, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,198, 1, 0, 0, +116, 0, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 1, 0, 0, 52, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,115, 0, 0, 0,198, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 1, 0, 0, 54, 1, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0, 49, 0, 0, 0,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +200, 1, 0, 0,200, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0,176, 0, 0, 0,200, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,200, 0, 0, 0,200, 1, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 1, 0, 0, + 61, 0, 0, 0,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,200, 1, 0, 0,202, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,116, 0, 0, 0,201, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,202, 1, 0, 0,200, 1, 0, 0, + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,177, 0, 0, 0, 15, 0, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 54, 1, 0, 0,202, 1, 0, 0,177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0,177, 0, 0, 0,202, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,202, 1, 0, 0, 54, 1, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 1, 0, 0, +116, 0, 0, 0, 55, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,201, 0, 0, 0,201, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 61, 0, 0, 0,201, 1, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 0, 55, 1, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0, 48, 0, 0, 0,203, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +203, 1, 0, 0, 52, 1, 0, 0,175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 0, 0, 0,175, 0, 0, 0, 52, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 52, 1, 0, 0,203, 1, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,204, 1, 0, 0, +115, 0, 0, 0,203, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,203, 1, 0, 0,205, 1, 0, 0,204, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 56, 0, 0, 0,204, 1, 0, 0,205, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,205, 1, 0, 0,203, 1, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,174, 0, 0, 0, 0, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +190, 0, 0, 0,205, 1, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 0, 0, 0,174, 0, 0, 0,205, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,205, 1, 0, 0,190, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,204, 1, 0, 0, + 56, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, 53, 1, 0, 0,204, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,115, 0, 0, 0,204, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 1, 0, 0,191, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,206, 1, 0, 0,117, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 57, 1, 0, 0,207, 0, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 0, 0, 0,206, 1, 0, 0,207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 57, 1, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,206, 1, 0, 0, + 64, 0, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,208, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,117, 0, 0, 0,206, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,208, 1, 0, 0,207, 1, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,179, 0, 0, 0, 16, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 56, 1, 0, 0,208, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 0, 0, 0,179, 0, 0, 0,208, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,208, 1, 0, 0, 56, 1, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,178, 0, 0, 0, + 50, 0, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,206, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 1, 0, 0, 0,178, 0, 0, 0,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0,207, 1, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,209, 1, 0, 0,117, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 56, 1, 0, 0, 58, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 0, 0, 0,209, 1, 0, 0, 58, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 58, 1, 0, 0, 56, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,209, 1, 0, 0, +118, 0, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 1, 0, 0,211, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,117, 0, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,211, 1, 0, 0,210, 1, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0, 23, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 57, 1, 0, 0,211, 1, 0, 0, 61, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0, 61, 1, 0, 0,211, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,211, 1, 0, 0, 57, 1, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 1, 0, 0, +119, 0, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 1, 0, 0, 59, 1, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 22, 0, 0, 0, 60, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0,210, 1, 0, 0, +118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,212, 1, 0, 0, 63, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +204, 0, 0, 0,208, 0, 0, 0,212, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 0, 0, 0,212, 1, 0, 0,208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,204, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,212, 1, 0, 0, + 65, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,214, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 63, 0, 0, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,214, 1, 0, 0,213, 1, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 1, 0, 0, 22, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +205, 0, 0, 0,214, 1, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0, 60, 1, 0, 0,214, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,214, 1, 0, 0,205, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0, +119, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,209, 0, 0, 0, 61, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 23, 0, 0, 0, 61, 1, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,209, 0, 0, 0,213, 1, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 1, 0, 0, 62, 0, 0, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +203, 0, 0, 0, 59, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 0, 0, 0,215, 1, 0, 0, 59, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0,203, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 1, 0, 0, +118, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 1, 0, 0,217, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 62, 0, 0, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,217, 1, 0, 0,216, 1, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 0, 0, 0, 5, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +202, 0, 0, 0,217, 1, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0,180, 0, 0, 0,217, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,217, 1, 0, 0,202, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 0, 0, 0, + 51, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 1, 0, 0, 58, 1, 0, 0,181, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 16, 0, 0, 0,181, 0, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 1, 0, 0,216, 1, 0, 0, +118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,218, 1, 0, 0,120, 0, 0, 0, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 63, 1, 0, 0,215, 0, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 0, 0, 0,218, 1, 0, 0,215, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,215, 0, 0, 0, 63, 1, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,218, 1, 0, 0, + 68, 0, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 1, 0, 0,220, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,120, 0, 0, 0,218, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,220, 1, 0, 0,219, 1, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,173, 0, 0, 0, 14, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 62, 1, 0, 0,220, 1, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 0, 0, 0,173, 0, 0, 0,220, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,220, 1, 0, 0, 62, 1, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,172, 0, 0, 0, + 47, 0, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 1, 0, 0,214, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 2, 0, 0, 0,172, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,214, 0, 0, 0,219, 1, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,221, 1, 0, 0,120, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 62, 1, 0, 0, 64, 1, 0, 0,221, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0,221, 1, 0, 0, 64, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 64, 1, 0, 0, 62, 1, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,221, 1, 0, 0, +121, 0, 0, 0,222, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,222, 1, 0, 0,223, 1, 0, 0,221, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,120, 0, 0, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,223, 1, 0, 0,222, 1, 0, 0, +122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 1, 0, 0, 25, 0, 0, 0, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 63, 1, 0, 0,223, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 0, 0, 0, 67, 1, 0, 0,223, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,223, 1, 0, 0, 63, 1, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 1, 0, 0, +122, 0, 0, 0,222, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,222, 1, 0, 0, 65, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 24, 0, 0, 0, 66, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 1, 0, 0,222, 1, 0, 0, +121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, 67, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +212, 0, 0, 0,216, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 69, 0, 0, 0,224, 1, 0, 0,216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,216, 0, 0, 0,212, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, + 69, 0, 0, 0,225, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,225, 1, 0, 0,226, 1, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 67, 0, 0, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,226, 1, 0, 0,225, 1, 0, 0, +122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 1, 0, 0, 24, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +213, 0, 0, 0,226, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 0, 0, 0, 66, 1, 0, 0,226, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,226, 1, 0, 0,213, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 1, 0, 0, +122, 0, 0, 0,225, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,225, 1, 0, 0,217, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 25, 0, 0, 0, 67, 1, 0, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,217, 0, 0, 0,225, 1, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 1, 0, 0, 66, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +211, 0, 0, 0, 65, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0,227, 1, 0, 0, 65, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 65, 1, 0, 0,211, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 1, 0, 0, +121, 0, 0, 0,228, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 1, 0, 0,229, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 66, 0, 0, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,229, 1, 0, 0,228, 1, 0, 0, + 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,170, 0, 0, 0, 1, 0, 0, 0,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +210, 0, 0, 0,229, 1, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 0, 0, 0,170, 0, 0, 0,229, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,229, 1, 0, 0,210, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,171, 0, 0, 0, + 46, 0, 0, 0,228, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 1, 0, 0, 64, 1, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 14, 0, 0, 0,171, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 1, 0, 0,228, 1, 0, 0, +121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,230, 1, 0, 0,123, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 69, 1, 0, 0,223, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 0, 0, 0,230, 1, 0, 0,223, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0, 69, 1, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,230, 1, 0, 0, + 72, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 1, 0, 0,232, 1, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,123, 0, 0, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,232, 1, 0, 0,231, 1, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,189, 0, 0, 0, 18, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 68, 1, 0, 0,232, 1, 0, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 0, 0, 0,189, 0, 0, 0,232, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,232, 1, 0, 0, 68, 1, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,188, 0, 0, 0, + 55, 0, 0, 0,231, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 1, 0, 0,222, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 3, 0, 0, 0,188, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,222, 0, 0, 0,231, 1, 0, 0, + 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,233, 1, 0, 0,123, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 68, 1, 0, 0, 70, 1, 0, 0,233, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 0, 0, 0,233, 1, 0, 0, 70, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 70, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,233, 1, 0, 0, +124, 0, 0, 0,234, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 1, 0, 0,235, 1, 0, 0,233, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,123, 0, 0, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,235, 1, 0, 0,234, 1, 0, 0, +125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 1, 0, 0, 27, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 69, 1, 0, 0,235, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0, 73, 1, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,235, 1, 0, 0, 69, 1, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, +125, 0, 0, 0,234, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 1, 0, 0, 71, 1, 0, 0, 72, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 26, 0, 0, 0, 72, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 1, 0, 0,234, 1, 0, 0, +124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,236, 1, 0, 0, 71, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +220, 0, 0, 0,224, 0, 0, 0,236, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 0, 0, 0,236, 1, 0, 0,224, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 0, 0,220, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,236, 1, 0, 0, + 73, 0, 0, 0,237, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,238, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 71, 0, 0, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,238, 1, 0, 0,237, 1, 0, 0, +125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, 26, 0, 0, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +221, 0, 0, 0,238, 1, 0, 0, 72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0, 72, 1, 0, 0,238, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,238, 1, 0, 0,221, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 1, 0, 0, +125, 0, 0, 0,237, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,225, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 27, 0, 0, 0, 73, 1, 0, 0,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,225, 0, 0, 0,237, 1, 0, 0, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 1, 0, 0, 70, 0, 0, 0,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +219, 0, 0, 0, 71, 1, 0, 0,239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 0, 0, 0,239, 1, 0, 0, 71, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 71, 1, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 1, 0, 0, +124, 0, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 1, 0, 0,241, 1, 0, 0,239, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 70, 0, 0, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,241, 1, 0, 0,240, 1, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,186, 0, 0, 0, 2, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +218, 0, 0, 0,241, 1, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 0, 0, 0,186, 0, 0, 0,241, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,241, 1, 0, 0,218, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,187, 0, 0, 0, + 54, 0, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 1, 0, 0, 70, 1, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 18, 0, 0, 0,187, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 1, 0, 0,240, 1, 0, 0, +124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,242, 1, 0, 0,126, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 75, 1, 0, 0,231, 0, 0, 0,242, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 0, 0, 0,242, 1, 0, 0,231, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,231, 0, 0, 0, 75, 1, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,242, 1, 0, 0, + 76, 0, 0, 0,243, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 1, 0, 0,244, 1, 0, 0,242, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,126, 0, 0, 0,242, 1, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 1, 0, 0,243, 1, 0, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 0, 20, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 74, 1, 0, 0,244, 1, 0, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0,197, 0, 0, 0,244, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,244, 1, 0, 0, 74, 1, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,196, 0, 0, 0, + 59, 0, 0, 0,243, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 1, 0, 0,230, 0, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 4, 0, 0, 0,196, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,230, 0, 0, 0,243, 1, 0, 0, + 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,245, 1, 0, 0,126, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 74, 1, 0, 0, 76, 1, 0, 0,245, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0,245, 1, 0, 0, 76, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 76, 1, 0, 0, 74, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,245, 1, 0, 0, +127, 0, 0, 0,246, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 1, 0, 0,247, 1, 0, 0,245, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,126, 0, 0, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,247, 1, 0, 0,246, 1, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 1, 0, 0, 29, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 75, 1, 0, 0,247, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, 79, 1, 0, 0,247, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,247, 1, 0, 0, 75, 1, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 1, 0, 0, +128, 0, 0, 0,246, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 1, 0, 0, 77, 1, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 28, 0, 0, 0, 78, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 1, 0, 0,246, 1, 0, 0, +127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, 75, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +228, 0, 0, 0,232, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 0,248, 1, 0, 0,232, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,232, 0, 0, 0,228, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, + 77, 0, 0, 0,249, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 1, 0, 0,250, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 75, 0, 0, 0,248, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, 1, 0, 0,249, 1, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 1, 0, 0, 28, 0, 0, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +229, 0, 0, 0,250, 1, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, 78, 1, 0, 0,250, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,250, 1, 0, 0,229, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 1, 0, 0, +128, 0, 0, 0,249, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 1, 0, 0,233, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 29, 0, 0, 0, 79, 1, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,233, 0, 0, 0,249, 1, 0, 0, + 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 1, 0, 0, 74, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +227, 0, 0, 0, 77, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0,251, 1, 0, 0, 77, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 77, 1, 0, 0,227, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 1, 0, 0, +127, 0, 0, 0,252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 1, 0, 0,253, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 74, 0, 0, 0,251, 1, 0, 0,253, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,253, 1, 0, 0,252, 1, 0, 0, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,194, 0, 0, 0, 3, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +226, 0, 0, 0,253, 1, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 0, 0, 0,194, 0, 0, 0,253, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,253, 1, 0, 0,226, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0, + 58, 0, 0, 0,252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 1, 0, 0, 76, 1, 0, 0,195, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 20, 0, 0, 0,195, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 1, 0, 0,252, 1, 0, 0, +127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 1, 0, 0,129, 0, 0, 0, 81, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 81, 1, 0, 0,239, 0, 0, 0,254, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0,254, 1, 0, 0,239, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,239, 0, 0, 0, 81, 1, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 1, 0, 0, + 80, 0, 0, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 1, 0, 0, 0, 2, 0, 0,254, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,129, 0, 0, 0,254, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0,255, 1, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 0, 21, 0, 0, 0, 80, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 80, 1, 0, 0, 0, 2, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 0, 0, 0,201, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 80, 1, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,200, 0, 0, 0, + 61, 0, 0, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 1, 0, 0,238, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 5, 0, 0, 0,200, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,238, 0, 0, 0,255, 1, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2, 0, 0,129, 0, 0, 0, 80, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 80, 1, 0, 0, 82, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0, 1, 2, 0, 0, 82, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, 80, 1, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2, 0, 0, +130, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, 0, 3, 2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,129, 0, 0, 0, 1, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 2, 0, 0, 2, 2, 0, 0, +131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 1, 0, 0, 31, 0, 0, 0, 81, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 81, 1, 0, 0, 3, 2, 0, 0, 85, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 0, 0, 0, 85, 1, 0, 0, 3, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 3, 2, 0, 0, 81, 1, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, +131, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, 0, 83, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 30, 0, 0, 0, 84, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 1, 0, 0, 2, 2, 0, 0, +130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 0, 0, 79, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +236, 0, 0, 0,240, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 0, 4, 2, 0, 0,240, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,240, 0, 0, 0,236, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 0, 0, + 81, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 0, 0, 6, 2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 79, 0, 0, 0, 4, 2, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 2, 0, 0, 5, 2, 0, 0, +131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, 30, 0, 0, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +237, 0, 0, 0, 6, 2, 0, 0, 84, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 0, 0, 0, 84, 1, 0, 0, 6, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 6, 2, 0, 0,237, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 1, 0, 0, +131, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 0, 0,241, 0, 0, 0, 85, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 31, 0, 0, 0, 85, 1, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,241, 0, 0, 0, 5, 2, 0, 0, + 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 2, 0, 0, 78, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +235, 0, 0, 0, 83, 1, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0, 7, 2, 0, 0, 83, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 83, 1, 0, 0,235, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 2, 0, 0, +130, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 2, 0, 0, 9, 2, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 78, 0, 0, 0, 7, 2, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 2, 0, 0, 8, 2, 0, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0, 4, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +234, 0, 0, 0, 9, 2, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0,198, 0, 0, 0, 9, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 9, 2, 0, 0,234, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, + 60, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 2, 0, 0, 82, 1, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 21, 0, 0, 0,199, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, 8, 2, 0, 0, +130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 1, 0, 0,132, 0, 0, 0, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 10, 2, 0, 0,245, 0, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0, 87, 1, 0, 0,245, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,245, 0, 0, 0, 10, 2, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, 2, 0, 0, + 83, 0, 0, 0, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 2, 0, 0, 12, 2, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 65, 0, 0, 0, 11, 2, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 2, 0, 0, 10, 2, 0, 0, +132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0, 23, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +209, 0, 0, 0, 12, 2, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0, 86, 1, 0, 0, 12, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 12, 2, 0, 0,209, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, 2, 0, 0, + 65, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,244, 0, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 83, 0, 0, 0, 11, 2, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 0, 0, 0,208, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0,132, 0, 0, 0, 13, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 13, 2, 0, 0, 88, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 0, 0, 0, 86, 1, 0, 0, 88, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, 13, 2, 0, 0,133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 2, 0, 0, +133, 0, 0, 0, 13, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 2, 0, 0, 15, 2, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,134, 0, 0, 0, 14, 2, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 2, 0, 0, 13, 2, 0, 0, +132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 1, 0, 0, 32, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 91, 1, 0, 0, 15, 2, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0, 87, 1, 0, 0, 15, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 15, 2, 0, 0, 91, 1, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 2, 0, 0, +134, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 1, 0, 0, 89, 1, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,133, 0, 0, 0, 14, 2, 0, 0, 89, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 1, 0, 0, 90, 1, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,212, 0, 0, 0, 67, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 16, 2, 0, 0,242, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 0,212, 0, 0, 0,242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,242, 0, 0, 0, 16, 2, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 2, 0, 0, + 82, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 2, 0, 0, 18, 2, 0, 0, 17, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,134, 0, 0, 0, 17, 2, 0, 0, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 2, 0, 0, 16, 2, 0, 0, + 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 24, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 90, 1, 0, 0, 18, 2, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 0, 0, 0,213, 0, 0, 0, 18, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 18, 2, 0, 0, 90, 1, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 2, 0, 0, +134, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 1, 0, 0,243, 0, 0, 0, 17, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 82, 0, 0, 0, 17, 2, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 0, 0, 0, 91, 1, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0, 66, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 19, 2, 0, 0, 89, 1, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 0, 0, 0,211, 0, 0, 0, 89, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 89, 1, 0, 0, 19, 2, 0, 0,133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 2, 0, 0, +133, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 2, 0, 0, 21, 2, 0, 0, 20, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 64, 0, 0, 0, 20, 2, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 2, 0, 0, 19, 2, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 0, 0, 0, 1, 0, 0, 0,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +206, 0, 0, 0, 21, 2, 0, 0,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 0, 0, 0,210, 0, 0, 0, 21, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 21, 2, 0, 0,206, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 2, 0, 0, + 64, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 88, 1, 0, 0, 20, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,133, 0, 0, 0, 20, 2, 0, 0, 88, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0,207, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 1, 0, 0,135, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 22, 2, 0, 0,247, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 0, 0, 0, 93, 1, 0, 0,247, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,247, 0, 0, 0, 22, 2, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 2, 0, 0, + 84, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 2, 0, 0, 24, 2, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 69, 0, 0, 0, 23, 2, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 2, 0, 0, 22, 2, 0, 0, +135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0, 25, 0, 0, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +217, 0, 0, 0, 24, 2, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 0, 0, 0, 92, 1, 0, 0, 24, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 24, 2, 0, 0,217, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 2, 0, 0, + 69, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,216, 0, 0, 0,246, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 84, 0, 0, 0, 23, 2, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 0, 0, 0,216, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0,135, 0, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 25, 2, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 0, 0, 0, 92, 1, 0, 0, 94, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 94, 1, 0, 0, 25, 2, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 2, 0, 0, +136, 0, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 2, 0, 0, 27, 2, 0, 0, 26, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,137, 0, 0, 0, 26, 2, 0, 0, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 2, 0, 0, 25, 2, 0, 0, +135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 1, 0, 0, 33, 0, 0, 0, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 97, 1, 0, 0, 27, 2, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 0, 0, 0, 93, 1, 0, 0, 27, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 27, 2, 0, 0, 97, 1, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 2, 0, 0, +137, 0, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, 95, 1, 0, 0, 26, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,136, 0, 0, 0, 26, 2, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 1, 0, 0, 96, 1, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,220, 0, 0, 0, 71, 0, 0, 0, 28, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 28, 2, 0, 0,248, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 0, 0, 0,220, 0, 0, 0,248, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,248, 0, 0, 0, 28, 2, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 2, 0, 0, + 85, 0, 0, 0, 28, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 2, 0, 0, 30, 2, 0, 0, 29, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,137, 0, 0, 0, 29, 2, 0, 0, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 2, 0, 0, 28, 2, 0, 0, + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,221, 0, 0, 0, 26, 0, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 96, 1, 0, 0, 30, 2, 0, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 0, 0, 0,221, 0, 0, 0, 30, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 30, 2, 0, 0, 96, 1, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 2, 0, 0, +137, 0, 0, 0, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 1, 0, 0,249, 0, 0, 0, 29, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 85, 0, 0, 0, 29, 2, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 0, 0, 0, 97, 1, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,219, 0, 0, 0, 70, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 31, 2, 0, 0, 95, 1, 0, 0,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0,219, 0, 0, 0, 95, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 95, 1, 0, 0, 31, 2, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 2, 0, 0, +136, 0, 0, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 2, 0, 0, 33, 2, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 68, 0, 0, 0, 32, 2, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 2, 0, 0, 31, 2, 0, 0, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,218, 0, 0, 0, 2, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +214, 0, 0, 0, 33, 2, 0, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 0, 0, 0,218, 0, 0, 0, 33, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 33, 2, 0, 0,214, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 2, 0, 0, + 68, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,215, 0, 0, 0, 94, 1, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,136, 0, 0, 0, 32, 2, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 1, 0, 0,215, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 1, 0, 0,138, 0, 0, 0, 34, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 34, 2, 0, 0,251, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0, 99, 1, 0, 0,251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,251, 0, 0, 0, 34, 2, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 2, 0, 0, + 86, 0, 0, 0, 34, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 34, 2, 0, 0, 36, 2, 0, 0, 35, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 73, 0, 0, 0, 35, 2, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 2, 0, 0, 34, 2, 0, 0, +138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0, 27, 0, 0, 0,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +225, 0, 0, 0, 36, 2, 0, 0, 98, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0, 98, 1, 0, 0, 36, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 36, 2, 0, 0,225, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 2, 0, 0, + 73, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 0, 0,250, 0, 0, 0, 35, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 86, 0, 0, 0, 35, 2, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, 0, 0, 0,224, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0,138, 0, 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 37, 2, 0, 0,100, 1, 0, 0, 98, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 0, 0, 0, 98, 1, 0, 0,100, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,100, 1, 0, 0, 37, 2, 0, 0,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 2, 0, 0, +139, 0, 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 2, 0, 0, 39, 2, 0, 0, 38, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,140, 0, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 2, 0, 0, 37, 2, 0, 0, +138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 1, 0, 0, 34, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +103, 1, 0, 0, 39, 2, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0, 99, 1, 0, 0, 39, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 39, 2, 0, 0,103, 1, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38, 2, 0, 0, +140, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 1, 0, 0,101, 1, 0, 0, 38, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,139, 0, 0, 0, 38, 2, 0, 0,101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 1, 0, 0,102, 1, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,228, 0, 0, 0, 75, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 40, 2, 0, 0,252, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0,228, 0, 0, 0,252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,252, 0, 0, 0, 40, 2, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 2, 0, 0, + 87, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40, 2, 0, 0, 42, 2, 0, 0, 41, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,140, 0, 0, 0, 41, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 42, 2, 0, 0, 40, 2, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0, 28, 0, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +102, 1, 0, 0, 42, 2, 0, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 0, 0, 0,229, 0, 0, 0, 42, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 42, 2, 0, 0,102, 1, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 2, 0, 0, +140, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 1, 0, 0,253, 0, 0, 0, 41, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 87, 0, 0, 0, 41, 2, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,253, 0, 0, 0,103, 1, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0, 74, 0, 0, 0, 43, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 43, 2, 0, 0,101, 1, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, 0, 0, 0,227, 0, 0, 0,101, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,101, 1, 0, 0, 43, 2, 0, 0,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 2, 0, 0, +139, 0, 0, 0, 43, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 43, 2, 0, 0, 45, 2, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 72, 0, 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 45, 2, 0, 0, 43, 2, 0, 0, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,226, 0, 0, 0, 3, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +222, 0, 0, 0, 45, 2, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 0, 0, 0,226, 0, 0, 0, 45, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 45, 2, 0, 0,222, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 44, 2, 0, 0, + 72, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0,100, 1, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,139, 0, 0, 0, 44, 2, 0, 0,100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 1, 0, 0,223, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 1, 0, 0,141, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 46, 2, 0, 0,255, 0, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 35, 0, 0, 0,105, 1, 0, 0,255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,255, 0, 0, 0, 46, 2, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 2, 0, 0, + 88, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 46, 2, 0, 0, 48, 2, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 77, 0, 0, 0, 47, 2, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 2, 0, 0, 46, 2, 0, 0, +141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 1, 0, 0, 29, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +233, 0, 0, 0, 48, 2, 0, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0,104, 1, 0, 0, 48, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 48, 2, 0, 0,233, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 47, 2, 0, 0, + 77, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,232, 0, 0, 0,254, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 88, 0, 0, 0, 47, 2, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 0, 0, 0,232, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 1, 0, 0,141, 0, 0, 0, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 49, 2, 0, 0,106, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 29, 0, 0, 0,104, 1, 0, 0,106, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,106, 1, 0, 0, 49, 2, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 2, 0, 0, +142, 0, 0, 0, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 2, 0, 0, 51, 2, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,143, 0, 0, 0, 50, 2, 0, 0, 51, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 2, 0, 0, 49, 2, 0, 0, +141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 1, 0, 0, 35, 0, 0, 0,109, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +109, 1, 0, 0, 51, 2, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0,105, 1, 0, 0, 51, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 51, 2, 0, 0,109, 1, 0, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50, 2, 0, 0, +143, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 1, 0, 0,107, 1, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,142, 0, 0, 0, 50, 2, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 1, 0, 0,108, 1, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,236, 0, 0, 0, 79, 0, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 52, 2, 0, 0, 0, 1, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 0, 0, 0,236, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 52, 2, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 2, 0, 0, + 89, 0, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 2, 0, 0, 54, 2, 0, 0, 53, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,143, 0, 0, 0, 53, 2, 0, 0, 54, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 54, 2, 0, 0, 52, 2, 0, 0, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,237, 0, 0, 0, 30, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +108, 1, 0, 0, 54, 2, 0, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 0, 0, 0,237, 0, 0, 0, 54, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 54, 2, 0, 0,108, 1, 0, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 2, 0, 0, +143, 0, 0, 0,109, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 1, 0, 0, 1, 1, 0, 0, 53, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 89, 0, 0, 0, 53, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 0, 0,109, 1, 0, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,235, 0, 0, 0, 78, 0, 0, 0, 55, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 55, 2, 0, 0,107, 1, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30, 0, 0, 0,235, 0, 0, 0,107, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,107, 1, 0, 0, 55, 2, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 56, 2, 0, 0, +142, 0, 0, 0, 55, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 2, 0, 0, 57, 2, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 76, 0, 0, 0, 56, 2, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 2, 0, 0, 55, 2, 0, 0, + 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 4, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +230, 0, 0, 0, 57, 2, 0, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0,234, 0, 0, 0, 57, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 57, 2, 0, 0,230, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 56, 2, 0, 0, + 76, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231, 0, 0, 0,106, 1, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,142, 0, 0, 0, 56, 2, 0, 0,106, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 1, 0, 0,231, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 1, 0, 0,144, 0, 0, 0, 58, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 58, 2, 0, 0, 3, 1, 0, 0,111, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0,111, 1, 0, 0, 3, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 0, 0, 58, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 2, 0, 0, + 90, 0, 0, 0, 58, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 58, 2, 0, 0, 60, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 81, 0, 0, 0, 59, 2, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 2, 0, 0, 58, 2, 0, 0, +144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 1, 0, 0, 31, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +241, 0, 0, 0, 60, 2, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 0, 0, 0,110, 1, 0, 0, 60, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 60, 2, 0, 0,241, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 2, 0, 0, + 81, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,240, 0, 0, 0, 2, 1, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 90, 0, 0, 0, 59, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0,240, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 1, 0, 0,144, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 61, 2, 0, 0,113, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 0, 0, 0,110, 1, 0, 0,113, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,113, 1, 0, 0, 61, 2, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 2, 0, 0, +145, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 2, 0, 0, 63, 2, 0, 0, 62, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,146, 0, 0, 0, 62, 2, 0, 0, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 2, 0, 0, 61, 2, 0, 0, +144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 1, 0, 0, 36, 0, 0, 0,115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +115, 1, 0, 0, 63, 2, 0, 0,111, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 0, 0, 0,111, 1, 0, 0, 63, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 63, 2, 0, 0,115, 1, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 2, 0, 0, +146, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 1, 0, 0,112, 1, 0, 0, 62, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,145, 0, 0, 0, 62, 2, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 1, 0, 0,114, 1, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,204, 0, 0, 0, 63, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 64, 2, 0, 0, 4, 1, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0,204, 0, 0, 0, 4, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 4, 1, 0, 0, 64, 2, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 2, 0, 0, + 91, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 64, 2, 0, 0, 66, 2, 0, 0, 65, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,146, 0, 0, 0, 65, 2, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 2, 0, 0, 64, 2, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,205, 0, 0, 0, 22, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +114, 1, 0, 0, 66, 2, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 0, 0, 0,205, 0, 0, 0, 66, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 66, 2, 0, 0,114, 1, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 65, 2, 0, 0, +146, 0, 0, 0,115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 1, 0, 0, 5, 1, 0, 0, 65, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 91, 0, 0, 0, 65, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 1, 0, 0,115, 1, 0, 0, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,203, 0, 0, 0, 62, 0, 0, 0, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 67, 2, 0, 0,112, 1, 0, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 0, 0, 0,203, 0, 0, 0,112, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,112, 1, 0, 0, 67, 2, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 2, 0, 0, +145, 0, 0, 0, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 67, 2, 0, 0, 69, 2, 0, 0, 68, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 80, 0, 0, 0, 68, 2, 0, 0, 69, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 69, 2, 0, 0, 67, 2, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0, 5, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +238, 0, 0, 0, 69, 2, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 0, 0, 0,202, 0, 0, 0, 69, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 69, 2, 0, 0,238, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 2, 0, 0, + 80, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,239, 0, 0, 0,113, 1, 0, 0, 68, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,145, 0, 0, 0, 68, 2, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 1, 0, 0,239, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 2, 0, 0,147, 0, 0, 0,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +117, 1, 0, 0, 11, 1, 0, 0, 70, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 0, 0, 0, 70, 2, 0, 0, 11, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 11, 1, 0, 0,117, 1, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 70, 2, 0, 0, + 94, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 2, 0, 0, 72, 2, 0, 0, 70, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,147, 0, 0, 0, 70, 2, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 72, 2, 0, 0, 71, 2, 0, 0, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,243, 0, 0, 0, 32, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +116, 1, 0, 0, 72, 2, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0,243, 0, 0, 0, 72, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 72, 2, 0, 0,116, 1, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,242, 0, 0, 0, + 82, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 71, 2, 0, 0, 10, 1, 0, 0,242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 6, 0, 0, 0,242, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 1, 0, 0, 71, 2, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 2, 0, 0,147, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +116, 1, 0, 0,118, 1, 0, 0, 73, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0, 73, 2, 0, 0,118, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,118, 1, 0, 0,116, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 2, 0, 0, +148, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 2, 0, 0, 75, 2, 0, 0, 73, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,147, 0, 0, 0, 73, 2, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 2, 0, 0, 74, 2, 0, 0, +149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 1, 0, 0, 38, 0, 0, 0,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +117, 1, 0, 0, 75, 2, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 0, 0, 0,121, 1, 0, 0, 75, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 75, 2, 0, 0,117, 1, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 1, 0, 0, +149, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 74, 2, 0, 0,119, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 37, 0, 0, 0,120, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 1, 0, 0, 74, 2, 0, 0, +148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 2, 0, 0, 93, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 8, 1, 0, 0, 12, 1, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, 76, 2, 0, 0, 12, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 12, 1, 0, 0, 8, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 2, 0, 0, + 95, 0, 0, 0, 77, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 2, 0, 0, 78, 2, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 93, 0, 0, 0, 76, 2, 0, 0, 78, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 78, 2, 0, 0, 77, 2, 0, 0, +149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 1, 0, 0, 37, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 9, 1, 0, 0, 78, 2, 0, 0,120, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,149, 0, 0, 0,120, 1, 0, 0, 78, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 78, 2, 0, 0, 9, 1, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 1, 0, 0, +149, 0, 0, 0, 77, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 2, 0, 0, 13, 1, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 38, 0, 0, 0,121, 1, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 1, 0, 0, 77, 2, 0, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 2, 0, 0, 92, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 7, 1, 0, 0,119, 1, 0, 0, 79, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0, 79, 2, 0, 0,119, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,119, 1, 0, 0, 7, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 2, 0, 0, +148, 0, 0, 0, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 2, 0, 0, 81, 2, 0, 0, 79, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 92, 0, 0, 0, 79, 2, 0, 0, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 2, 0, 0, 80, 2, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 0, 0, 0, 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 6, 1, 0, 0, 81, 2, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 0, 0, 0,244, 0, 0, 0, 81, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 81, 2, 0, 0, 6, 1, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,245, 0, 0, 0, + 83, 0, 0, 0, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 80, 2, 0, 0,118, 1, 0, 0,245, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 32, 0, 0, 0,245, 0, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 1, 0, 0, 80, 2, 0, 0, +148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 2, 0, 0,150, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +123, 1, 0, 0, 15, 1, 0, 0, 82, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 0, 0, 0, 82, 2, 0, 0, 15, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 15, 1, 0, 0,123, 1, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 82, 2, 0, 0, + 96, 0, 0, 0, 83, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 2, 0, 0, 84, 2, 0, 0, 82, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,150, 0, 0, 0, 82, 2, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 2, 0, 0, 83, 2, 0, 0, + 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,249, 0, 0, 0, 33, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +122, 1, 0, 0, 84, 2, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 0, 0, 0,249, 0, 0, 0, 84, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 84, 2, 0, 0,122, 1, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,248, 0, 0, 0, + 85, 0, 0, 0, 83, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 83, 2, 0, 0, 14, 1, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 7, 0, 0, 0,248, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14, 1, 0, 0, 83, 2, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 2, 0, 0,150, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +122, 1, 0, 0,124, 1, 0, 0, 85, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 0, 0, 0, 85, 2, 0, 0,124, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,124, 1, 0, 0,122, 1, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 85, 2, 0, 0, +151, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 2, 0, 0, 87, 2, 0, 0, 85, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,150, 0, 0, 0, 85, 2, 0, 0, 87, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 2, 0, 0, 86, 2, 0, 0, +152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 1, 0, 0, 39, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +123, 1, 0, 0, 87, 2, 0, 0,127, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0,127, 1, 0, 0, 87, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 87, 2, 0, 0,123, 1, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 1, 0, 0, +152, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 2, 0, 0,125, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 38, 0, 0, 0,126, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 1, 0, 0, 86, 2, 0, 0, +151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 2, 0, 0, 95, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 12, 1, 0, 0, 16, 1, 0, 0, 88, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, 88, 2, 0, 0, 16, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 16, 1, 0, 0, 12, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 2, 0, 0, + 97, 0, 0, 0, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 2, 0, 0, 90, 2, 0, 0, 88, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 95, 0, 0, 0, 88, 2, 0, 0, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 2, 0, 0, 89, 2, 0, 0, +152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 1, 0, 0, 38, 0, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 13, 1, 0, 0, 90, 2, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0,126, 1, 0, 0, 90, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 90, 2, 0, 0, 13, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 1, 0, 0, +152, 0, 0, 0, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 2, 0, 0, 17, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 39, 0, 0, 0,127, 1, 0, 0, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 1, 0, 0, 89, 2, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 2, 0, 0, 94, 0, 0, 0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 11, 1, 0, 0,125, 1, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,151, 0, 0, 0, 91, 2, 0, 0,125, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,125, 1, 0, 0, 11, 1, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 2, 0, 0, +151, 0, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 2, 0, 0, 93, 2, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 94, 0, 0, 0, 91, 2, 0, 0, 93, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 2, 0, 0, 92, 2, 0, 0, + 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,246, 0, 0, 0, 6, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 10, 1, 0, 0, 93, 2, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0,246, 0, 0, 0, 93, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 93, 2, 0, 0, 10, 1, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,247, 0, 0, 0, + 84, 0, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 2, 0, 0,124, 1, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 33, 0, 0, 0,247, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 1, 0, 0, 92, 2, 0, 0, +151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 2, 0, 0,153, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +129, 1, 0, 0, 19, 1, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 0, 0, 0, 94, 2, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 19, 1, 0, 0,129, 1, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 94, 2, 0, 0, + 98, 0, 0, 0, 95, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 2, 0, 0, 96, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,153, 0, 0, 0, 94, 2, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 2, 0, 0, 95, 2, 0, 0, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,253, 0, 0, 0, 34, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +128, 1, 0, 0, 96, 2, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0,253, 0, 0, 0, 96, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 96, 2, 0, 0,128, 1, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,252, 0, 0, 0, + 87, 0, 0, 0, 95, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 95, 2, 0, 0, 18, 1, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 8, 0, 0, 0,252, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 1, 0, 0, 95, 2, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 2, 0, 0,153, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +128, 1, 0, 0,130, 1, 0, 0, 97, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0, 97, 2, 0, 0,130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,130, 1, 0, 0,128, 1, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 97, 2, 0, 0, +154, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 2, 0, 0, 99, 2, 0, 0, 97, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,153, 0, 0, 0, 97, 2, 0, 0, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 2, 0, 0, 98, 2, 0, 0, +155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,133, 1, 0, 0, 40, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +129, 1, 0, 0, 99, 2, 0, 0,133, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 0, 0, 0,133, 1, 0, 0, 99, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 99, 2, 0, 0,129, 1, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 1, 0, 0, +155, 0, 0, 0, 98, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 98, 2, 0, 0,131, 1, 0, 0,132, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 39, 0, 0, 0,132, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,131, 1, 0, 0, 98, 2, 0, 0, +154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 2, 0, 0, 97, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 16, 1, 0, 0, 20, 1, 0, 0,100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0,100, 2, 0, 0, 20, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 20, 1, 0, 0, 16, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 2, 0, 0, + 99, 0, 0, 0,101, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 2, 0, 0,102, 2, 0, 0,100, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 97, 0, 0, 0,100, 2, 0, 0,102, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102, 2, 0, 0,101, 2, 0, 0, +155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,132, 1, 0, 0, 39, 0, 0, 0, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 17, 1, 0, 0,102, 2, 0, 0,132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,155, 0, 0, 0,132, 1, 0, 0,102, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,102, 2, 0, 0, 17, 1, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,133, 1, 0, 0, +155, 0, 0, 0,101, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 2, 0, 0, 21, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 40, 0, 0, 0,133, 1, 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 1, 0, 0,101, 2, 0, 0, + 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 2, 0, 0, 96, 0, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 15, 1, 0, 0,131, 1, 0, 0,103, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0,103, 2, 0, 0,131, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,131, 1, 0, 0, 15, 1, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,103, 2, 0, 0, +154, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 2, 0, 0,105, 2, 0, 0,103, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 96, 0, 0, 0,103, 2, 0, 0,105, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105, 2, 0, 0,104, 2, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, 0, 0, 0, 7, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 14, 1, 0, 0,105, 2, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0,250, 0, 0, 0,105, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,105, 2, 0, 0, 14, 1, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 0, 0, 0, + 86, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,104, 2, 0, 0,130, 1, 0, 0,251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 34, 0, 0, 0,251, 0, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 1, 0, 0,104, 2, 0, 0, +154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 2, 0, 0,156, 0, 0, 0,135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +135, 1, 0, 0, 23, 1, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,100, 0, 0, 0,106, 2, 0, 0, 23, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 23, 1, 0, 0,135, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,106, 2, 0, 0, +100, 0, 0, 0,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 2, 0, 0,108, 2, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,156, 0, 0, 0,106, 2, 0, 0,108, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,108, 2, 0, 0,107, 2, 0, 0, + 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 0, 0, 35, 0, 0, 0,134, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +134, 1, 0, 0,108, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 89, 0, 0, 0, 1, 1, 0, 0,108, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,108, 2, 0, 0,134, 1, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, + 89, 0, 0, 0,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,107, 2, 0, 0, 22, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 9, 0, 0, 0, 0, 1, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 1, 0, 0,107, 2, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 2, 0, 0,156, 0, 0, 0,134, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +134, 1, 0, 0,136, 1, 0, 0,109, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 0, 0, 0,109, 2, 0, 0,136, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,136, 1, 0, 0,134, 1, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,109, 2, 0, 0, +157, 0, 0, 0,110, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 2, 0, 0,111, 2, 0, 0,109, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,156, 0, 0, 0,109, 2, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,111, 2, 0, 0,110, 2, 0, 0, +158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 1, 0, 0, 41, 0, 0, 0,135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +135, 1, 0, 0,111, 2, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0,139, 1, 0, 0,111, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,111, 2, 0, 0,135, 1, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 1, 0, 0, +158, 0, 0, 0,110, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,110, 2, 0, 0,137, 1, 0, 0,138, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 40, 0, 0, 0,138, 1, 0, 0,137, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,137, 1, 0, 0,110, 2, 0, 0, +157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 2, 0, 0, 99, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 20, 1, 0, 0, 24, 1, 0, 0,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,101, 0, 0, 0,112, 2, 0, 0, 24, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 24, 1, 0, 0, 20, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,112, 2, 0, 0, +101, 0, 0, 0,113, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 2, 0, 0,114, 2, 0, 0,112, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 99, 0, 0, 0,112, 2, 0, 0,114, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,114, 2, 0, 0,113, 2, 0, 0, +158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,138, 1, 0, 0, 40, 0, 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 21, 1, 0, 0,114, 2, 0, 0,138, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0,138, 1, 0, 0,114, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,114, 2, 0, 0, 21, 1, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 1, 0, 0, +158, 0, 0, 0,113, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,113, 2, 0, 0, 25, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 41, 0, 0, 0,139, 1, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 1, 0, 0,113, 2, 0, 0, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 2, 0, 0, 98, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 19, 1, 0, 0,137, 1, 0, 0,115, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,157, 0, 0, 0,115, 2, 0, 0,137, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,137, 1, 0, 0, 19, 1, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,115, 2, 0, 0, +157, 0, 0, 0,116, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 2, 0, 0,117, 2, 0, 0,115, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 98, 0, 0, 0,115, 2, 0, 0,117, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,117, 2, 0, 0,116, 2, 0, 0, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,254, 0, 0, 0, 8, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 18, 1, 0, 0,117, 2, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 0, 0, 0,254, 0, 0, 0,117, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,117, 2, 0, 0, 18, 1, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255, 0, 0, 0, + 88, 0, 0, 0,116, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,116, 2, 0, 0,136, 1, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 35, 0, 0, 0,255, 0, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,136, 1, 0, 0,116, 2, 0, 0, +157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 2, 0, 0,159, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +141, 1, 0, 0, 7, 1, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 92, 0, 0, 0,118, 2, 0, 0, 7, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 7, 1, 0, 0,141, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,118, 2, 0, 0, + 92, 0, 0, 0,119, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 2, 0, 0,120, 2, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,159, 0, 0, 0,118, 2, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 2, 0, 0,119, 2, 0, 0, + 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 1, 0, 0, 36, 0, 0, 0,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +140, 1, 0, 0,120, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 91, 0, 0, 0, 5, 1, 0, 0,120, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,120, 2, 0, 0,140, 1, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 1, 0, 0, + 91, 0, 0, 0,119, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,119, 2, 0, 0, 6, 1, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 10, 0, 0, 0, 4, 1, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0,119, 2, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 2, 0, 0,159, 0, 0, 0,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +140, 1, 0, 0,142, 1, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0,121, 2, 0, 0,142, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,142, 1, 0, 0,140, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,121, 2, 0, 0, +160, 0, 0, 0,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 2, 0, 0,123, 2, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,159, 0, 0, 0,121, 2, 0, 0,123, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,123, 2, 0, 0,122, 2, 0, 0, +161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 1, 0, 0, 37, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +141, 1, 0, 0,123, 2, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 0, 0, 0,144, 1, 0, 0,123, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,123, 2, 0, 0,141, 1, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,145, 1, 0, 0, +161, 0, 0, 0,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 2, 0, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 41, 0, 0, 0,145, 1, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,122, 2, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 2, 0, 0,101, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 24, 1, 0, 0, 8, 1, 0, 0,124, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 93, 0, 0, 0,124, 2, 0, 0, 8, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 8, 1, 0, 0, 24, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,124, 2, 0, 0, + 93, 0, 0, 0,125, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 2, 0, 0,126, 2, 0, 0,124, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,101, 0, 0, 0,124, 2, 0, 0,126, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,126, 2, 0, 0,125, 2, 0, 0, +161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,145, 1, 0, 0, 41, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 25, 1, 0, 0,126, 2, 0, 0,145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,161, 0, 0, 0,145, 1, 0, 0,126, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,126, 2, 0, 0, 25, 1, 0, 0,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,144, 1, 0, 0, +161, 0, 0, 0,125, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,125, 2, 0, 0, 9, 1, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 37, 0, 0, 0,144, 1, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 1, 0, 0,125, 2, 0, 0, + 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 2, 0, 0,100, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 23, 1, 0, 0,143, 1, 0, 0,127, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0,127, 2, 0, 0,143, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,143, 1, 0, 0, 23, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,127, 2, 0, 0, +160, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 2, 0, 0,129, 2, 0, 0,127, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,100, 0, 0, 0,127, 2, 0, 0,129, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,129, 2, 0, 0,128, 2, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0, 9, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 22, 1, 0, 0,129, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 90, 0, 0, 0, 2, 1, 0, 0,129, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,129, 2, 0, 0, 22, 1, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 0, 0, + 90, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 2, 0, 0,142, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 36, 0, 0, 0, 3, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 1, 0, 0,128, 2, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 68, 65, 84, 65, 0,240, 0, 0,184,127, 54, 3, 0, 0, 0, 0, 59, 0, 0, 0, + 0, 5, 0, 0,166,222,110, 63, 9,205, 55, 63,212,132,105, 63,201,236, 65, 63,218,153,103, 63,119,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63,118,148,108, 63, +211,160, 44, 63,166,222,110, 63, 9,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63,166,222,110, 63, 9,205, 55, 63,118,148,108, 63,211,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63,218,153,103, 63, +119,155, 54, 63, 87, 17,102, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, 87, 17,102, 63,229, 52, 43, 63,218,153,103, 63,119,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63, 9, 75, 97, 63, + 92,233, 63, 63, 56, 81, 96, 63,170, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 56, 81, 96, 63,170, 55, 52, 63, 9, 75, 97, 63, 92,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63,218,153,103, 63, +119,155, 54, 63,212,132,105, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,138,153, 89, 63, 39,228, 82, 63,139,153, 89, 63,255,153, 71, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 9, 75, 97, 63, + 92,233, 63, 63,103,167, 98, 63,168, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63,103,167, 98, 63,168, 39, 75, 63, 9, 75, 97, 63, 92,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63,139,153, 89, 63, +255,153, 71, 63,138,153, 89, 63, 49, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63,138,153, 89, 63, 49, 86, 60, 63,139,153, 89, 63, 79, 12, 49, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63,205,182, 95, 63, +222,228, 40, 63, 56, 81, 96, 63,170, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 56, 81, 96, 63,170, 55, 52, 63,205,182, 95, 63,222,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63,139,153, 89, 63, + 79, 12, 49, 63,139,153, 89, 63, 45,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,212,132,105, 63,201,236, 65, 63,168, 83,109, 63,207, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63,135, 85,101, 63, +148, 64, 88, 63,103,167, 98, 63,168, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63,103,167, 98, 63,168, 39, 75, 63,135, 85,101, 63,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63,168, 83,109, 63, +207, 83, 78, 63, 36, 51,115, 63, 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, 36, 51,115, 63, 22, 56, 90, 63,168, 83,109, 63,207, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63, 36, 51,115, 63, +115, 23, 67, 63,162, 18,121, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63,162, 18,121, 63,207, 83, 78, 63, 36, 51,115, 63,115, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63,168, 83,109, 63, +207, 83, 78, 63,212,132,105, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 36, 51,115, 63, 36, 28, 45, 63,163,135,119, 63, 11,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63, 36, 51,115, 63, +115, 23, 67, 63,166,222,110, 63, 9,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63,166,222,110, 63, 9,205, 55, 63, 36, 51,115, 63,115, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63,163,135,119, 63, + 11,205, 55, 63,116,225,124, 63,202,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63,116,225,124, 63,202,236, 65, 63,113,223,129, 63,170, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,223,129, 63,170, 39, 75, 63, 98,136,128, 63, +148, 64, 88, 63,162, 18,121, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63,162, 18,121, 63,207, 83, 78, 63, 98,136,128, 63,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95, 98,136, 59,148, 64, 88, 63,160,184,111, 60, +170, 39, 75, 63,243,203, 76, 61, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63,246,203, 76, 61, 53, 86, 60, 63, 31,162,194, 60,172, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,162,194, 60,172, 55, 52, 63,111,239,213, 60, +223,228, 40, 63,243,203, 76, 61, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63,243,203, 76, 61, 82, 12, 49, 63,111,239,213, 60,223,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 31,162,194, 60, +172, 55, 52, 63,120,226,169, 58,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63,121, 42,128, 63,230, 52, 43, 63,136, 10,131, 63,172, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136, 10,131, 63,172, 55, 52, 63,160,141,130, 63, + 95,233, 63, 63,111,204,126, 63,121,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63,111,204,126, 63,121,155, 54, 63,160,141,130, 63, 95,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,104,163, 60, 95,233, 63, 63, 31,162,194, 60, +172, 55, 52, 63,246,203, 76, 61, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63,243,203, 76, 61, 41,228, 82, 63,160,184,111, 60,170, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,184,111, 60,170, 39, 75, 63, 11,104,163, 60, + 95,233, 63, 63,244,203, 76, 61, 2,154, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63,244,203, 76, 61, 2,154, 71, 63, 11,104,163, 60, 95,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,160,141,130, 63, 95,233, 63, 63,113,223,129, 63, +170, 39, 75, 63,116,225,124, 63,202,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63,116,225,124, 63,202,236, 65, 63,163,135,119, 63, 11,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63,210,209,121, 63, +212,160, 44, 63,111,204,126, 63,121,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63,111,204,126, 63,121,155, 54, 63,210,209,121, 63,212,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63,163,135,119, 63, + 11,205, 55, 63, 36, 51,115, 63, 36, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 95,102,134, 63, 79, 46, 94, 63, 95,102,134, 63, 22,114,105, 63, 52,205,124, 63, 58, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 98,136,128, 63, +148, 64, 88, 63, 95,102,134, 63, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63,234,203, 76, 61, 79, 46, 94, 63, 95, 98,136, 59,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63, 52,205,124, 63, + 58, 26, 99, 63, 36, 51,115, 63, 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, 36, 51,115, 63, 22, 56, 90, 63, 52,205,124, 63, 58, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 32, 51,115, 63, +212,154,109, 63, 21,153,105, 63, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 21,153,105, 63, 58, 26, 99, 63, 32, 51,115, 63,212,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63, 52,205,124, 63, + 58, 26, 99, 63, 95,102,134, 63, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,136,153, 89, 63,242,187,116, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 32, 51,115, 63, +212,154,109, 63, 95,102,134, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 95,102,134, 63, 22,114,105, 63, 95,102,134, 63,242,187,116, 63, 32, 51,115, 63,212,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63,136,153, 89, 63, +242,187,116, 63,138,153, 89, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63,138,153, 89, 63, 19,114,105, 63,138,153, 89, 63, 77, 46, 94, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63,135, 85,101, 63, +148, 64, 88, 63, 21,153,105, 63, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 21,153,105, 63, 58, 26, 99, 63,135, 85,101, 63,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63,138,153, 89, 63, + 77, 46, 94, 63,138,153, 89, 63, 39,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 74,174, 73, 63,193,236, 65, 63,124, 84, 68, 63,255,204, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63,169,158, 70, 63, +200,160, 44, 63, 67,153, 75, 63,113,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63, 67,153, 75, 63,113,155, 54, 63,169,158, 70, 63,200,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63,124, 84, 68, 63, +255,204, 55, 63, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63,196, 33, 77, 63,221, 52, 43, 63,225,225, 82, 63,165, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 16,232, 81, 63, + 89,233, 63, 63, 67,153, 75, 63,113,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 67,153, 75, 63,113,155, 54, 63, 16,232, 81, 63, 89,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63,225,225, 82, 63, +165, 55, 52, 63,138,153, 89, 63, 49, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63,138,153, 89, 63, 39,228, 82, 63,179,139, 80, 63,164, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 16,232, 81, 63, + 89,233, 63, 63,139,153, 89, 63,255,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63,139,153, 89, 63,255,153, 71, 63, 16,232, 81, 63, 89,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63,179,139, 80, 63, +164, 39, 75, 63, 74,174, 73, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63,138,153, 89, 63, 49, 86, 60, 63,225,225, 82, 63,165, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 75,124, 83, 63, +217,228, 40, 63,139,153, 89, 63, 79, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63,139,153, 89, 63, 79, 12, 49, 63, 75,124, 83, 63,217,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63,225,225, 82, 63, +165, 55, 52, 63,196, 33, 77, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 74,174, 73, 63,193,236, 65, 63,179,139, 80, 63,164, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63,148,221, 77, 63, +140, 64, 88, 63,120,223, 69, 63,198, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63,120,223, 69, 63,198, 83, 78, 63,148,221, 77, 63,140, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63,179,139, 80, 63, +164, 39, 75, 63,138,153, 89, 63, 39,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 0, 0, 64, 63, 12, 56, 90, 63,136, 32, 58, 63,198, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63, 0, 0, 64, 63, +106, 23, 67, 63,120,223, 69, 63,198, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63,120,223, 69, 63,198, 83, 78, 63, 0, 0, 64, 63,106, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63,136, 32, 58, 63, +198, 83, 78, 63,182, 81, 54, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 64, 63, 24, 28, 45, 63,124, 84, 68, 63,255,204, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 64, 63, +106, 23, 67, 63,132,171, 59, 63,255,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63,132,171, 59, 63,255,204, 55, 63, 0, 0, 64, 63,106, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63,124, 84, 68, 63, +255,204, 55, 63, 74,174, 73, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63,182, 81, 54, 63,193,236, 65, 63,136, 32, 58, 63,198, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63,108, 34, 50, 63, +140, 64, 88, 63, 77,116, 47, 63,164, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 77,116, 47, 63,164, 39, 75, 63,108, 34, 50, 63,140, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63,136, 32, 58, 63, +198, 83, 78, 63, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63,117,102, 38, 63, 50, 86, 60, 63,117,102, 38, 63, 78, 12, 49, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63,181,131, 44, 63, +216,228, 40, 63, 31, 30, 45, 63,165, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63, 31, 30, 45, 63,165, 55, 52, 63,181,131, 44, 63,216,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,117,102, 38, 63, + 78, 12, 49, 63,117,102, 38, 63, 45,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, 60,222, 50, 63,221, 52, 43, 63,189,102, 52, 63,113,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63,240, 23, 46, 63, + 89,233, 63, 63, 31, 30, 45, 63,165, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 31, 30, 45, 63,165, 55, 52, 63,240, 23, 46, 63, 89,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63,189,102, 52, 63, +113,155, 54, 63,182, 81, 54, 63,193,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63,118,102, 38, 63, 38,228, 82, 63,117,102, 38, 63,255,153, 71, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63,240, 23, 46, 63, + 89,233, 63, 63, 77,116, 47, 63,164, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63, 77,116, 47, 63,164, 39, 75, 63,240, 23, 46, 63, 89,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63,117,102, 38, 63, +255,153, 71, 63,117,102, 38, 63, 50, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63,182, 81, 54, 63,193,236, 65, 63,189,102, 52, 63,113,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63, 87, 97, 57, 63, +200,160, 44, 63,132,171, 59, 63,255,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63,132,171, 59, 63,255,204, 55, 63, 87, 97, 57, 63,200,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63,189,102, 52, 63, +113,155, 54, 63, 60,222, 50, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63,118,102, 38, 63, 19,114,105, 63,118,102, 38, 63, 77, 46, 94, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63,108, 34, 50, 63, +140, 64, 88, 63,250,101, 54, 63, 51, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63,250,101, 54, 63, 51, 26, 99, 63,108, 34, 50, 63,140, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63,118,102, 38, 63, + 77, 46, 94, 63,118,102, 38, 63, 38,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 64, 63, 12, 56, 90, 63, 6,154, 73, 63, 51, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 64, 63, +206,154,109, 63,250,101, 54, 63, 51, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 64, 63,206,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63, 6,154, 73, 63, + 51, 26, 99, 63,138,153, 89, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,120,102, 38, 63,242,187,116, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 64, 63, +206,154,109, 63,136,153, 89, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63,136,153, 89, 63,242,187,116, 63, 0, 0, 64, 63,206,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63,120,102, 38, 63, +242,187,116, 63,118,102, 38, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63,138,153, 89, 63, 19,114,105, 63, 6,154, 73, 63, 51, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63,148,221, 77, 63, +140, 64, 88, 63,138,153, 89, 63, 77, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63,138,153, 89, 63, 77, 46, 94, 63,148,221, 77, 63,140, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63, 6,154, 73, 63, + 51, 26, 99, 63, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,170,192,229, 61,200,236, 65, 63,203,104,214, 61,120,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63,201, 61,254, 61, +207,160, 44, 63,167, 71, 8, 62, 7,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63,167, 71, 8, 62, 7,205, 55, 63,201, 61,254, 61,207,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63,203,104,214, 61, +120,155, 54, 63,175, 36,202, 61,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63,175, 36,202, 61,228, 52, 43, 63,203,104,214, 61,120,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63, 32,242,163, 61, + 96,233, 63, 63,145, 35,156, 61,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63,145, 35,156, 61,172, 55, 52, 63, 32,242,163, 61, 96,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63,203,104,214, 61, +120,155, 54, 63,170,192,229, 61,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,243,203, 76, 61, 41,228, 82, 63,244,203, 76, 61, 2,154, 71, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 32,242,163, 61, + 96,233, 63, 63, 17,213,174, 61,171, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63, 17,213,174, 61,171, 39, 75, 63, 32,242,163, 61, 96,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63,244,203, 76, 61, + 2,154, 71, 63,246,203, 76, 61, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63,246,203, 76, 61, 53, 86, 60, 63,243,203, 76, 61, 82, 12, 49, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63, 53, 80,151, 61, +223,228, 40, 63,145, 35,156, 61,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63,145, 35,156, 61,172, 55, 52, 63, 53, 80,151, 61,223,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63,243,203, 76, 61, + 82, 12, 49, 63,246,203, 76, 61, 48,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,170,192,229, 61,200,236, 65, 63,169, 27, 2, 62,204, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63, 23, 70,196, 61, +147, 64, 88, 63, 17,213,174, 61,171, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63, 17,213,174, 61,171, 39, 75, 63, 23, 70,196, 61,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63,169, 27, 2, 62, +204, 83, 78, 63,160,153, 25, 62, 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63,160,153, 25, 62, 14, 56, 90, 63,169, 27, 2, 62,204, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63,172,153, 25, 62, +108, 23, 67, 63,162, 23, 49, 62,195, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63,162, 23, 49, 62,195, 83, 78, 63,172,153, 25, 62,108, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63,169, 27, 2, 62, +204, 83, 78, 63,170,192,229, 61,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,173,153, 25, 62, 27, 28, 45, 63,173,235, 42, 62,254,204, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63,172,153, 25, 62, +108, 23, 67, 63,167, 71, 8, 62, 7,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63,167, 71, 8, 62, 7,205, 55, 63,172,153, 25, 62,108, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63,173,235, 42, 62, +254,204, 55, 63,240, 82, 64, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63,240, 82, 64, 62,183,236, 65, 63,166,200, 91, 62,147, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 34, 16, 81, 62, +131, 64, 88, 63,162, 23, 49, 62,195, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63,162, 23, 49, 62,195, 83, 78, 63, 34, 16, 81, 62,131, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63,166,200, 91, 62, +147, 39, 75, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 62, 19, 86, 60, 63, 92, 33,101, 62,146, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 14,139,103, 62, +199,228, 40, 63, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 0, 0,128, 62, 47, 12, 49, 63, 14,139,103, 62,199,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 92, 33,101, 62, +146, 55, 52, 63,230, 32, 78, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63,230, 32, 78, 62,211, 52, 43, 63, 92, 33,101, 62,146, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 23, 58, 97, 62, + 69,233, 63, 63,223,254, 71, 62,102,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63,223,254, 71, 62,102,155, 54, 63, 23, 58, 97, 62, 69,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63, 92, 33,101, 62, +146, 55, 52, 63, 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 62, 13,228, 82, 63,166,200, 91, 62,147, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 23, 58, 97, 62, + 69,233, 63, 63, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 62,228,153, 71, 63, 23, 58, 97, 62, 69,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63,166,200, 91, 62, +147, 39, 75, 63,240, 82, 64, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63,240, 82, 64, 62,183,236, 65, 63,173,235, 42, 62,254,204, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63,105, 20, 52, 62, +198,160, 44, 63,223,254, 71, 62,102,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63,223,254, 71, 62,102,155, 54, 63,105, 20, 52, 62,198,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63,173,235, 42, 62, +254,204, 55, 63,173,153, 25, 62, 27, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 62, 8,114,105, 63,230, 1, 64, 62, 49, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63, 34, 16, 81, 62, +131, 64, 88, 63, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 62, 58, 46, 94, 63, 34, 16, 81, 62,131, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63,230, 1, 64, 62, + 49, 26, 99, 63,160,153, 25, 62, 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63,160,153, 25, 62, 14, 56, 90, 63,230, 1, 64, 62, 49, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63,159,153, 25, 62, +210,154,109, 63,164, 98,230, 61, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237,203, 76, 61, 22,114,105, 63,164, 98,230, 61, 58, 26, 99, 63,159,153, 25, 62,210,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63,230, 1, 64, 62, + 49, 26, 99, 63, 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 3,153, 59, 63, 0, 0,128, 63, 95,102,134, 63,242,187,116, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,210,203, 76, 61,242,187,116, 63,159,153, 25, 62, +210,154,109, 63, 0, 0,128, 62,232,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 62,232,187,116, 63,159,153, 25, 62,210,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63,210,203, 76, 61, +242,187,116, 63,237,203, 76, 61, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63,237,203, 76, 61, 22,114,105, 63,234,203, 76, 61, 79, 46, 94, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234,203, 76, 61, 79, 46, 94, 63, 23, 70,196, 61, +147, 64, 88, 63,164, 98,230, 61, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63,164, 98,230, 61, 58, 26, 99, 63, 23, 70,196, 61,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63,234,203, 76, 61, + 79, 46, 94, 63,243,203, 76, 61, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63,136,214,159, 62,183,236, 65, 63,145, 0,156, 62,102,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63,204,245,165, 62, +198,160, 44, 63, 42,138,170, 62,254,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63, 42,138,170, 62,254,204, 55, 63,204,245,165, 62,198,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63,145, 0,156, 62, +102,155, 54, 63,141,239,152, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63,141,239,152, 62,211, 52, 43, 63,145, 0,156, 62,102,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63,245, 98,143, 62, + 68,233, 63, 63, 82,111,141, 62,146, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 82,111,141, 62,146, 55, 52, 63,245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63,145, 0,156, 62, +102,155, 54, 63,136,214,159, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 62,228,153, 71, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63,245, 98,143, 62, + 68,233, 63, 63,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63,173, 27,146, 62,147, 39, 75, 63,245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0,128, 62, +228,153, 71, 63, 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, 0, 0,128, 62, 19, 86, 60, 63, 0, 0,128, 62, 47, 12, 49, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63,121, 58,140, 62, +199,228, 40, 63, 82,111,141, 62,146, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 82,111,141, 62,146, 55, 52, 63,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 62, + 47, 12, 49, 63, 0, 0,128, 62, 23,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63,136,214,159, 62,183,236, 65, 63, 47,116,167, 62,195, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63,239,119,151, 62, +131, 64, 88, 63,173, 27,146, 62,147, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63,173, 27,146, 62,147, 39, 75, 63,239,119,151, 62,131, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 47,116,167, 62, +195, 83, 78, 63, 49, 51,179, 62, 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, 49, 51,179, 62, 14, 56, 90, 63, 47,116,167, 62,195, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63, 42, 51,179, 62, +108, 23, 67, 63, 44,242,190, 62,205, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 44,242,190, 62,205, 83, 78, 63, 42, 51,179, 62,108, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 47,116,167, 62, +195, 83, 78, 63,136,214,159, 62,183,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 42, 51,179, 62, 28, 28, 45, 63, 45,220,187, 62, 7,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63, 42, 51,179, 62, +108, 23, 67, 63, 42,138,170, 62,254,204, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63, 42,138,170, 62,254,204, 55, 63, 42, 51,179, 62,108, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 45,220,187, 62, + 7,205, 55, 63,214,143,198, 62,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63,214,143,198, 62,200,236, 65, 63,188, 74,212, 62,171, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63,122,238,206, 62, +147, 64, 88, 63, 44,242,190, 62,205, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 44,242,190, 62,205, 83, 78, 63,122,238,206, 62,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63,188, 74,212, 62, +171, 39, 75, 63,130,102,230, 62, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63,129,102,230, 62, 53, 86, 60, 63, 28,247,216, 62,172, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63,243, 43,218, 62, +223,228, 40, 63,130,102,230, 62, 82, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63,130,102,230, 62, 82, 12, 49, 63,243, 43,218, 62,223,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 28,247,216, 62, +172, 55, 52, 63,212,118,205, 62,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63,212,118,205, 62,228, 52, 43, 63, 28,247,216, 62,172, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63,120, 3,215, 62, + 95,233, 63, 63,206,101,202, 62,120,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63,206,101,202, 62,120,155, 54, 63,120, 3,215, 62, 95,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63, 28,247,216, 62, +172, 55, 52, 63,129,102,230, 62, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63,130,102,230, 62, 41,228, 82, 63,188, 74,212, 62,171, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63,120, 3,215, 62, + 95,233, 63, 63,130,102,230, 62, 1,154, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63,130,102,230, 62, 1,154, 71, 63,120, 3,215, 62, 95,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63,188, 74,212, 62, +171, 39, 75, 63,214,143,198, 62,200,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63,214,143,198, 62,200,236, 65, 63, 45,220,187, 62, 7,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63,142,112,192, 62, +207,160, 44, 63,206,101,202, 62,120,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63,206,101,202, 62,120,155, 54, 63,142,112,192, 62,207,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 45,220,187, 62, + 7,205, 55, 63, 42, 51,179, 62, 28, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63,131,102,230, 62, 22,114,105, 63, 87,103,198, 62, 58, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63,122,238,206, 62, +147, 64, 88, 63,131,102,230, 62, 79, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63,131,102,230, 62, 79, 46, 94, 63,122,238,206, 62,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 87,103,198, 62, + 58, 26, 99, 63, 49, 51,179, 62, 14, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 49, 51,179, 62, 14, 56, 90, 63, 87,103,198, 62, 58, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63, 49, 51,179, 62, +210,154,109, 63, 14,255,159, 62, 49, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 14,255,159, 62, 49, 26, 99, 63, 49, 51,179, 62,210,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 87,103,198, 62, + 58, 26, 99, 63,131,102,230, 62, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63, 0, 0,128, 62,232,187,116, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 49, 51,179, 62, +210,154,109, 63,134,102,230, 62,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63,134,102,230, 62,242,187,116, 63, 49, 51,179, 62,210,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0,128, 62, +232,187,116, 63, 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 0, 0,128, 62, 8,114,105, 63, 0, 0,128, 62, 58, 46, 94, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63,239,119,151, 62, +131, 64, 88, 63, 14,255,159, 62, 49, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 14,255,159, 62, 49, 26, 99, 63,239,119,151, 62,131, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 0, 0,128, 62, + 58, 46, 94, 63, 0, 0,128, 62, 13,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,140, 30, 3, 63,201,236, 65, 63,145, 51, 1, 63,121,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63, 46, 46, 6, 63, +211,160, 44, 63, 93,120, 8, 63, 11,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 93,120, 8, 63, 11,205, 55, 63, 46, 46, 6, 63,211,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63,145, 51, 1, 63, +121,155, 54, 63, 30, 86,255, 62,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, 30, 86,255, 62,230, 52, 43, 63,145, 51, 1, 63,121,155, 54, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63,128,201,245, 62, + 94,233, 63, 63,222,213,243, 62,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63,222,213,243, 62,172, 55, 52, 63,128,201,245, 62, 94,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63,145, 51, 1, 63, +121,155, 54, 63,140, 30, 3, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,130,102,230, 62, 41,228, 82, 63,130,102,230, 62, 1,154, 71, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63,128,201,245, 62, + 94,233, 63, 63, 59,130,248, 62,169, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 59,130,248, 62,169, 39, 75, 63,128,201,245, 62, 94,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63,130,102,230, 62, + 1,154, 71, 63,129,102,230, 62, 53, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63,129,102,230, 62, 53, 86, 60, 63,130,102,230, 62, 82, 12, 49, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63, 9,161,242, 62, +223,228, 40, 63,222,213,243, 62,172, 55, 52, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63,222,213,243, 62,172, 55, 52, 63, 9,161,242, 62,223,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63,130,102,230, 62, + 82, 12, 49, 63,129,102,230, 62, 48,200, 37, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,140, 30, 3, 63,201,236, 65, 63, 94,237, 6, 63,207, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63,118,222,253, 62, +148, 64, 88, 63, 59,130,248, 62,169, 39, 75, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63, 59,130,248, 62,169, 39, 75, 63,118,222,253, 62,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 94,237, 6, 63, +207, 83, 78, 63,220,204, 12, 63, 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63,220,204, 12, 63, 22, 56, 90, 63, 94,237, 6, 63,207, 83, 78, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63,220,204, 12, 63, +115, 23, 67, 63, 88,172, 18, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 88,172, 18, 63,207, 83, 78, 63,220,204, 12, 63,115, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 94,237, 6, 63, +207, 83, 78, 63,140, 30, 3, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,220,204, 12, 63, 35, 28, 45, 63, 91, 33, 17, 63, 9,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63,220,204, 12, 63, +115, 23, 67, 63, 93,120, 8, 63, 11,205, 55, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 93,120, 8, 63, 11,205, 55, 63,220,204, 12, 63,115, 23, 67, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 91, 33, 17, 63, + 9,205, 55, 63, 44,123, 22, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, 44,123, 22, 63,201,236, 65, 63,153, 88, 29, 63,167, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63,121,170, 26, 63, +147, 64, 88, 63, 88,172, 18, 63,207, 83, 78, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 88,172, 18, 63,207, 83, 78, 63,121,170, 26, 63,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63,153, 88, 29, 63, +167, 39, 75, 63,118,102, 38, 63, 38,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63,117,102, 38, 63, 50, 86, 60, 63,200,174, 31, 63,169, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63, 51, 73, 32, 63, +221,228, 40, 63,117,102, 38, 63, 78, 12, 49, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63,117,102, 38, 63, 78, 12, 49, 63, 51, 73, 32, 63,221,228, 40, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63,200,174, 31, 63, +169, 55, 52, 63,169,238, 25, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63,169,238, 25, 63,229, 52, 43, 63,200,174, 31, 63,169, 55, 52, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63,246,180, 30, 63, + 92,233, 63, 63, 39,102, 24, 63,119,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 39,102, 24, 63,119,155, 54, 63,246,180, 30, 63, 92,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63,200,174, 31, 63, +169, 55, 52, 63,117,102, 38, 63, 50, 86, 60, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63,118,102, 38, 63, 38,228, 82, 63,153, 88, 29, 63,167, 39, 75, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63,246,180, 30, 63, + 92,233, 63, 63,117,102, 38, 63,255,153, 71, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63,117,102, 38, 63,255,153, 71, 63,246,180, 30, 63, 92,233, 63, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63,153, 88, 29, 63, +167, 39, 75, 63, 44,123, 22, 63,201,236, 65, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, 44,123, 22, 63,201,236, 65, 63, 91, 33, 17, 63, 9,205, 55, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63,138,107, 19, 63, +211,160, 44, 63, 39,102, 24, 63,119,155, 54, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 39,102, 24, 63,119,155, 54, 63,138,107, 19, 63,211,160, 44, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63, 91, 33, 17, 63, + 9,205, 55, 63,220,204, 12, 63, 35, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63,118,102, 38, 63, 19,114,105, 63,235,102, 22, 63, 59, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63,121,170, 26, 63, +147, 64, 88, 63,118,102, 38, 63, 77, 46, 94, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63,118,102, 38, 63, 77, 46, 94, 63,121,170, 26, 63,147, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63,235,102, 22, 63, + 59, 26, 99, 63,220,204, 12, 63, 22, 56, 90, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63,220,204, 12, 63, 22, 56, 90, 63,235,102, 22, 63, 59, 26, 99, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63,224,204, 12, 63, +212,154,109, 63,204, 50, 3, 63, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63,204, 50, 3, 63, 58, 26, 99, 63,224,204, 12, 63,212,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63,235,102, 22, 63, + 59, 26, 99, 63,118,102, 38, 63, 19,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 3,153, 59, 63, 0, 0,128, 63,134,102,230, 62,242,187,116, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63,224,204, 12, 63, +212,154,109, 63,120,102, 38, 63,242,187,116, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63,120,102, 38, 63,242,187,116, 63,224,204, 12, 63,212,154,109, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63,134,102,230, 62, +242,187,116, 63,131,102,230, 62, 22,114,105, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63,131,102,230, 62, 22,114,105, 63,131,102,230, 62, 79, 46, 94, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63,118,222,253, 62, +148, 64, 88, 63,204, 50, 3, 63, 58, 26, 99, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63,204, 50, 3, 63, 58, 26, 99, 63,118,222,253, 62,148, 64, 88, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63,131,102,230, 62, + 79, 46, 94, 63,130,102,230, 62, 41,228, 82, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63,176,235, 70, 63,226,209, 22, 63, 80,234, 73, 63,146,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 1,200, 79, 63, + 94,152, 9, 63,213,233, 76, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63,213,233, 76, 63, 35, 48, 21, 63, 1,200, 79, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 80,234, 73, 63, +146,111, 11, 63,193,204, 76, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, 19,215, 82, 63,252, 29, 19, 63,220, 41, 80, 63,105, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63,164,219, 73, 63, +173, 23, 33, 63,213,233, 76, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63,213,233, 76, 63, 35, 48, 21, 63,164,219, 73, 63,173, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63,220, 41, 80, 63, +105, 60, 31, 63,196, 33, 77, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 64, 63, 24, 28, 45, 63, 5,171, 67, 63,216, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63,164,219, 73, 63, +173, 23, 33, 63,169,158, 70, 63,200,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63,169,158, 70, 63,200,160, 44, 63,164,219, 73, 63,173, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 5,171, 67, 63, +216, 17, 34, 63,176,235, 70, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63,196, 33, 77, 63,221, 52, 43, 63,220, 41, 80, 63,105, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63,218, 20, 86, 63, +143,140, 28, 63, 75,124, 83, 63,217,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 75,124, 83, 63,217,228, 40, 63,218, 20, 86, 63,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63,220, 41, 80, 63, +105, 60, 31, 63, 19,215, 82, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63,176,235, 70, 63,226,209, 22, 63, 5,171, 67, 63,216, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63,251, 84, 60, 63, +216, 17, 34, 63, 0, 0, 64, 63,182, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 0, 0, 64, 63,182, 32, 23, 63,251, 84, 60, 63,216, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 5,171, 67, 63, +216, 17, 34, 63, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, 80, 20, 57, 63,226,209, 22, 63,169,156, 60, 63, 96,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63, 87, 99, 67, 63, + 96,116, 11, 63, 0, 0, 64, 63,182, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 64, 63,182, 32, 23, 63, 87, 99, 67, 63, 96,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63,169,156, 60, 63, + 96,116, 11, 63, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63,193,204, 76, 63, 0, 0, 0, 63, 80,234, 73, 63,146,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 87, 99, 67, 63, + 96,116, 11, 63, 96,102, 70, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63, 96,102, 70, 63,244, 1, 0, 63, 87, 99, 67, 63, 96,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 80,234, 73, 63, +146,111, 11, 63,176,235, 70, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 0, 0, 64, 63, 0, 0, 0, 63,169,156, 60, 63, 96,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63,176, 21, 54, 63, +146,111, 11, 63,160,153, 57, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63,160,153, 57, 63,244, 1, 0, 63,176, 21, 54, 63,146,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63,169,156, 60, 63, + 96,116, 11, 63, 80, 20, 57, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62,144, 61, 57, 63, 19,196,217, 62, 85,123, 60, 63,253,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62,171,132, 67, 63, +253,230,198, 62, 0, 0, 64, 63, 93, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62, 0, 0, 64, 63, 93, 58,217, 62,171,132, 67, 63,253,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 85,123, 60, 63, +253,230,198, 62, 0, 0, 64, 63,211,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62,112,194, 70, 63, 19,196,217, 62,125, 84, 67, 63, 42,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62,131,171, 60, 63, + 42,211,236, 62, 0, 0, 64, 63, 93, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 64, 63, 93, 58,217, 62,131,171, 60, 63, 42,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62,125, 84, 67, 63, + 42,211,236, 62, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 63, 51, 51, 63, 0, 0, 0, 63,128, 46, 54, 63, 75,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62,131,171, 60, 63, + 42,211,236, 62,160,153, 57, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63,160,153, 57, 63,244, 1, 0, 63,131,171, 60, 63, 42,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62,128, 46, 54, 63, + 75,207,236, 62,144, 61, 57, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, 0, 0, 64, 63, 0, 0, 0, 63,125, 84, 67, 63, 42,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62,128,209, 73, 63, + 75,207,236, 62, 96,102, 70, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 96,102, 70, 63,244, 1, 0, 63,128,209, 73, 63, 75,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62,125, 84, 67, 63, + 42,211,236, 62,112,194, 70, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63,237, 40, 45, 63,252, 29, 19, 63,255, 55, 48, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63,176, 21, 54, 63, +146,111, 11, 63, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 43, 22, 51, 63, 35, 48, 21, 63,176, 21, 54, 63,146,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63,255, 55, 48, 63, + 94,152, 9, 63, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, 80, 20, 57, 63,226,209, 22, 63, 91, 36, 54, 63,173, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63, 36,214, 47, 63, +105, 60, 31, 63, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 43, 22, 51, 63, 35, 48, 21, 63, 36,214, 47, 63,105, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 91, 36, 54, 63, +173, 23, 33, 63, 60,222, 50, 63,221, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,117,102, 38, 63, 45,200, 37, 63, 38,235, 41, 63,141,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 36,214, 47, 63, +105, 60, 31, 63,181,131, 44, 63,216,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63,181,131, 44, 63,216,228, 40, 63, 36,214, 47, 63,105, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 38,235, 41, 63, +141,140, 28, 63,237, 40, 45, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, 60,222, 50, 63,221, 52, 43, 63, 91, 36, 54, 63,173, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63,251, 84, 60, 63, +216, 17, 34, 63, 87, 97, 57, 63,200,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 87, 97, 57, 63,200,160, 44, 63,251, 84, 60, 63,216, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 91, 36, 54, 63, +173, 23, 33, 63, 80, 20, 57, 63,226,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,134, 14,128, 63, 39, 48, 21, 63,227, 30,122, 63,233,209, 22, 63,138, 29,125, 63,150,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63,159,125,129, 63, + 94,152, 9, 63,134, 14,128, 63, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63,209, 92,232, 57, 39, 48, 21, 63,114,207, 62, 60, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159,125,129, 63, 94,152, 9, 63,138, 29,125, 63, +150,111, 11, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,209, 92,232, 57, 39, 48, 21, 63,174, 73,193, 60,253, 29, 19, 63,214, 67, 87, 60,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136,174,129, 63,110, 60, 31, 63,213, 14,125, 63, +180, 23, 33, 63,134, 14,128, 63, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63,134, 14,128, 63, 39, 48, 21, 63,213, 14,125, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63,136,174,129, 63, +110, 60, 31, 63,121, 42,128, 63,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 36, 51,115, 63, 36, 28, 45, 63, 49,222,118, 63,226, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63,213, 14,125, 63, +180, 23, 33, 63,210,209,121, 63,212,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63,210,209,121, 63,212,160, 44, 63,213, 14,125, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 49,222,118, 63, +226, 17, 34, 63,227, 30,122, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63,120,226,169, 58,230, 52, 43, 63,214, 67, 87, 60,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214, 67, 87, 60,110, 60, 31, 63, 13,129, 20, 61, +143,140, 28, 63,111,239,213, 60,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63,111,239,213, 60,223,228, 40, 63, 13,129, 20, 61,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63,214, 67, 87, 60, +110, 60, 31, 63,174, 73,193, 60,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63,227, 30,122, 63,233,209, 22, 63, 49,222,118, 63,226, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 31,136,111, 63, +225, 17, 34, 63, 44, 51,115, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 44, 51,115, 63,188, 32, 23, 63, 31,136,111, 63,225, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 49,222,118, 63, +226, 17, 34, 63, 36, 51,115, 63, 36, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63,116, 71,108, 63,232,209, 22, 63,213,207,111, 63,100,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63,138,150,118, 63, +101,116, 11, 63, 44, 51,115, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 44, 51,115, 63,188, 32, 23, 63,138,150,118, 63,101,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63,213,207,111, 63, +100,116, 11, 63, 51, 51,115, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,138, 29,125, 63,150,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63,138,150,118, 63, +101,116, 11, 63,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63,154,153,121, 63,244, 1, 0, 63,138,150,118, 63,101,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63,138, 29,125, 63, +150,111, 11, 63,227, 30,122, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, 51, 51,115, 63, 0, 0, 0, 63,213,207,111, 63,100,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63,213, 72,105, 63, +149,111, 11, 63,205,204,108, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63,205,204,108, 63,244, 1, 0, 63,213, 72,105, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63,213,207,111, 63, +100,116, 11, 63,116, 71,108, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62,192,112,108, 63, 4,196,217, 62,139,174,111, 63,223,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62,239,183,118, 63, +227,230,198, 62, 58, 51,115, 63, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62, 58, 51,115, 63, 73, 58,217, 62,239,183,118, 63,227,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62,139,174,111, 63, +223,230,198, 62, 65, 51,115, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62,179,245,121, 63, 6,196,217, 62,185,135,118, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62,180,222,111, 63, + 30,211,236, 62, 58, 51,115, 63, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 58, 51,115, 63, 73, 58,217, 62,180,222,111, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62,185,135,118, 63, + 30,211,236, 62, 51, 51,115, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63,101,102,102, 63, 0, 0, 0, 63,170, 97,105, 63, 65,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62,180,222,111, 63, + 30,211,236, 62,205,204,108, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63,205,204,108, 63,244, 1, 0, 63,180,222,111, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62,170, 97,105, 63, + 65,207,236, 62,192,112,108, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 51, 51,115, 63, 0, 0, 0, 63,185,135,118, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62,194, 4,125, 63, + 67,207,236, 62,154,153,121, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63,154,153,121, 63,244, 1, 0, 63,194, 4,125, 63, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62,185,135,118, 63, + 30,211,236, 62,179,245,121, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 11, 92, 96, 63,253, 29, 19, 63, 33,107, 99, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63,213, 72,105, 63, +149,111, 11, 63, 76, 73,102, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 76, 73,102, 63, 38, 48, 21, 63,213, 72,105, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 33,107, 99, 63, + 94,152, 9, 63,101,102,102, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63,116, 71,108, 63,232,209, 22, 63,124, 87,105, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 65, 9, 99, 63, +109, 60, 31, 63, 76, 73,102, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 76, 73,102, 63, 38, 48, 21, 63, 65, 9, 99, 63,109, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63,124, 87,105, 63, +180, 23, 33, 63, 87, 17,102, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63,139,153, 89, 63, 45,200, 37, 63, 63, 30, 93, 63,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 65, 9, 99, 63, +109, 60, 31, 63,205,182, 95, 63,222,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63,205,182, 95, 63,222,228, 40, 63, 65, 9, 99, 63,109, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 63, 30, 93, 63, +143,140, 28, 63, 11, 92, 96, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, 87, 17,102, 63,229, 52, 43, 63,124, 87,105, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 31,136,111, 63, +225, 17, 34, 63,118,148,108, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63,118,148,108, 63,211,160, 44, 63, 31,136,111, 63,225, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63,124, 87,105, 63, +180, 23, 33, 63,116, 71,108, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63,152, 72, 53, 62,229,209, 22, 63, 47, 67, 65, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63,255,185, 88, 62, + 90,152, 9, 63, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 65, 65, 77, 62, 32, 48, 21, 63,255,185, 88, 62, 90,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63, 47, 67, 65, 62, +147,111, 11, 63,254,204, 76, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, 64,246,100, 62,246, 29, 19, 63, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63,107, 8, 65, 62, +170, 23, 33, 63, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 65, 65, 77, 62, 32, 48, 21, 63,107, 8, 65, 62,170, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63, 89, 65, 90, 62, + 94, 60, 31, 63,230, 32, 78, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63,173,153, 25, 62, 27, 28, 45, 63,216, 69, 40, 62,220, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63,107, 8, 65, 62, +170, 23, 33, 63,105, 20, 52, 62,198,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63,105, 20, 52, 62,198,160, 44, 63,107, 8, 65, 62,170, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63,216, 69, 40, 62, +220, 17, 34, 63,152, 72, 53, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63,230, 32, 78, 62,211, 52, 43, 63, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63, 83,237,113, 62, +130,140, 28, 63, 14,139,103, 62,199,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 14,139,103, 62,199,228, 40, 63, 83,237,113, 62,130,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 89, 65, 90, 62, + 94, 60, 31, 63, 64,246,100, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63,152, 72, 53, 62,229,209, 22, 63,216, 69, 40, 62,220, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63,133,237, 10, 62, +219, 17, 34, 63,180,153, 25, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63,180,153, 25, 62,185, 32, 23, 63,133,237, 10, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63,216, 69, 40, 62, +220, 17, 34, 63,173,153, 25, 62, 27, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63,147,213,251, 61,228,209, 22, 63, 67, 12, 12, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63, 34, 39, 39, 62, + 98,116, 11, 63,180,153, 25, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63,180,153, 25, 62,185, 32, 23, 63, 34, 39, 39, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 67, 12, 12, 62, + 98,116, 11, 63,181,153, 25, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63,254,204, 76, 62, 0, 0, 0, 63, 47, 67, 65, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 34, 39, 39, 62, + 98,116, 11, 63, 92, 51, 51, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 92, 51, 51, 62,244, 1, 0, 63, 34, 39, 39, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 47, 67, 65, 62, +147,111, 11, 63,152, 72, 53, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63,181,153, 25, 62, 0, 0, 0, 63, 67, 12, 12, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63,109,224,227, 61, +147,111, 11, 63, 8, 0, 0, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 8, 0, 0, 62,244, 1, 0, 63,109,224,227, 61,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63, 67, 12, 12, 62, + 98,116, 11, 63,147,213,251, 61,228,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62,171, 31,253, 61, 6,196,217, 62, 1,135, 11, 62,228,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62,153,172, 39, 62, +230,230,198, 62,196,153, 25, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62,196,153, 25, 62, 73, 58,217, 62,153,172, 39, 62,230,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62, 1,135, 11, 62, +228,230,198, 62,214,153, 25, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62,179,163, 52, 62, 7,196,217, 62,202,235, 38, 62, 33,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62,173, 71, 12, 62, + 31,211,236, 62,196,153, 25, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62,196,153, 25, 62, 73, 58,217, 62,173, 71, 12, 62, 31,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62,202,235, 38, 62, + 33,211,236, 62,181,153, 25, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63,215,204,204, 61, 0, 0, 0, 63,251,166,228, 61, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62,173, 71, 12, 62, + 31,211,236, 62, 8, 0, 0, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 8, 0, 0, 62,244, 1, 0, 63,173, 71, 12, 62, 31,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62,251,166,228, 61, + 67,207,236, 62,171, 31,253, 61, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63,181,153, 25, 62, 0, 0, 0, 63,202,235, 38, 62, 33,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62,251,223, 64, 62, + 67,207,236, 62, 92, 51, 51, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 92, 51, 51, 62,244, 1, 0, 63,251,223, 64, 62, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62,202,235, 38, 62, + 33,211,236, 62,179,163, 52, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 1,122,156, 61,254, 29, 19, 63,172,242,180, 61, 96,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63,109,224,227, 61, +147,111, 11, 63, 42,228,203, 61, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63, 42,228,203, 61, 37, 48, 21, 63,109,224,227, 61,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63,172,242,180, 61, + 96,152, 9, 63,215,204,204, 61, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63,147,213,251, 61,228,209, 22, 63,208, 85,228, 61,179, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63,212,227,177, 61, +110, 60, 31, 63, 42,228,203, 61, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 42,228,203, 61, 37, 48, 21, 63,212,227,177, 61,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63,208, 85,228, 61, +179, 23, 33, 63,175, 36,202, 61,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63,246,203, 76, 61, 48,200, 37, 63,166,139,130, 61,145,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63,212,227,177, 61, +110, 60, 31, 63, 53, 80,151, 61,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63, 53, 80,151, 61,223,228, 40, 63,212,227,177, 61,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63,166,139,130, 61, +145,140, 28, 63, 1,122,156, 61,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63,175, 36,202, 61,228, 52, 43, 63,208, 85,228, 61,179, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63,133,237, 10, 62, +219, 17, 34, 63,201, 61,254, 61,207,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63,201, 61,254, 61,207,160, 44, 63,133,237, 10, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63,208, 85,228, 61, +179, 23, 33, 63,147,213,251, 61,228,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63,155, 10,193, 62,229,209, 22, 63,229, 7,199, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 85,195,210, 62, + 96,152, 9, 63,245, 6,205, 62, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63,245, 6,205, 62, 37, 48, 21, 63, 85,195,210, 62, 96,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63,229, 7,199, 62, +147,111, 11, 63,202,204,204, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63,128,225,216, 62,254, 29, 19, 63, 11,135,211, 62,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63,140,234,198, 62, +179, 23, 33, 63,245, 6,205, 62, 37, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63,245, 6,205, 62, 37, 48, 21, 63,140,234,198, 62,179, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 11,135,211, 62, +110, 60, 31, 63,212,118,205, 62,228, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 42, 51,179, 62, 28, 28, 45, 63, 61,137,186, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63,140,234,198, 62, +179, 23, 33, 63,142,112,192, 62,207,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63,142,112,192, 62,207,160, 44, 63,140,234,198, 62,179, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 61,137,186, 62, +219, 17, 34, 63,155, 10,193, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63,212,118,205, 62,228, 52, 43, 63, 11,135,211, 62,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63, 22, 93,223, 62, +145,140, 28, 63,243, 43,218, 62,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63,243, 43,218, 62,223,228, 40, 63, 22, 93,223, 62,145,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63, 11,135,211, 62, +110, 60, 31, 63,128,225,216, 62,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63,155, 10,193, 62,229,209, 22, 63, 61,137,186, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 20,221,171, 62, +219, 17, 34, 63, 38, 51,179, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 38, 51,179, 62,185, 32, 23, 63, 20,221,171, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 61,137,186, 62, +219, 17, 34, 63, 42, 51,179, 62, 28, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63,180, 91,165, 62,229,209, 22, 63,111,108,172, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63,222,249,185, 62, + 98,116, 11, 63, 38, 51,179, 62,185, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 38, 51,179, 62,185, 32, 23, 63,222,249,185, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63,111,108,172, 62, + 98,116, 11, 63, 38, 51,179, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63,202,204,204, 62, 0, 0, 0, 63,229, 7,199, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63,222,249,185, 62, + 98,116, 11, 63,252,255,191, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63,252,255,191, 62,244, 1, 0, 63,222,249,185, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63,229, 7,199, 62, +147,111, 11, 63,155, 10,193, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, 38, 51,179, 62, 0, 0, 0, 63,111,108,172, 62, 98,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63,104, 94,159, 62, +147,111, 11, 63, 82,102,166, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 82,102,166, 62,244, 1, 0, 63,104, 94,159, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63,111,108,172, 62, + 98,116, 11, 63,180, 91,165, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 39,174,165, 62, 7,196,217, 62,180, 41,172, 62,227,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62,127, 60,186, 62, +225,230,198, 62, 30, 51,179, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62, 30, 51,179, 62, 73, 58,217, 62,127, 60,186, 62,225,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62,180, 41,172, 62, +227,230,198, 62, 21, 51,179, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 21,184,192, 62, 6,196,217, 62, 42,220,185, 62, 31,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 27,138,172, 62, + 33,211,236, 62, 30, 51,179, 62, 73, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 30, 51,179, 62, 73, 58,217, 62, 27,138,172, 62, 33,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 42,220,185, 62, + 31,211,236, 62, 38, 51,179, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63,129,153,153, 62, 0, 0, 0, 63, 3,144,159, 62, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 27,138,172, 62, + 33,211,236, 62, 82,102,166, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63, 82,102,166, 62,244, 1, 0, 63, 27,138,172, 62, 33,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 3,144,159, 62, + 67,207,236, 62, 39,174,165, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, 38, 51,179, 62, 0, 0, 0, 63, 42,220,185, 62, 31,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 65,214,198, 62, + 67,207,236, 62,252,255,191, 62,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63,252,255,191, 62,244, 1, 0, 63, 65,214,198, 62, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62, 42,220,185, 62, + 31,211,236, 62, 21,184,192, 62, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63,224,132,141, 62,246, 29, 19, 63, 1,163,147, 62, 91,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63,104, 94,159, 62, +147,111, 11, 63, 95, 95,153, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 95, 95,153, 62, 32, 48, 21, 63,104, 94,159, 62,147,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 1,163,147, 62, + 91,152, 9, 63,129,153,153, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63,180, 91,165, 62,229,209, 22, 63,203,123,159, 62,170, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 84,223,146, 62, + 94, 60, 31, 63, 95, 95,153, 62, 32, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 95, 95,153, 62, 32, 48, 21, 63, 84,223,146, 62, 94, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63,203,123,159, 62, +170, 23, 33, 63,141,239,152, 62,211, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 62, 23,200, 37, 63, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 84,223,146, 62, + 94, 60, 31, 63,121, 58,140, 62,199,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63,121, 58,140, 62,199,228, 40, 63, 84,223,146, 62, 94, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 86, 9,135, 62, +130,140, 28, 63,224,132,141, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63,141,239,152, 62,211, 52, 43, 63,203,123,159, 62,170, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 20,221,171, 62, +219, 17, 34, 63,204,245,165, 62,198,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63,204,245,165, 62,198,160, 44, 63, 20,221,171, 62,219, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63,203,123,159, 62, +170, 23, 33, 63,180, 91,165, 62,229,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63,140,184, 19, 63,232,209, 22, 63, 43,183, 22, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63,223,148, 28, 63, + 94,152, 9, 63,180,182, 25, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63,180,182, 25, 63, 38, 48, 21, 63,223,148, 28, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 43,183, 22, 63, +149,111, 11, 63,155,153, 25, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63,245,163, 31, 63,253, 29, 19, 63,191,246, 28, 63,109, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63,132,168, 22, 63, +180, 23, 33, 63,180,182, 25, 63, 38, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63,180,182, 25, 63, 38, 48, 21, 63,132,168, 22, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63,191,246, 28, 63, +109, 60, 31, 63,169,238, 25, 63,229, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63,220,204, 12, 63, 35, 28, 45, 63,225,119, 16, 63,225, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63,132,168, 22, 63, +180, 23, 33, 63,138,107, 19, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63,138,107, 19, 63,211,160, 44, 63,132,168, 22, 63,180, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63,225,119, 16, 63, +225, 17, 34, 63,140,184, 19, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63,169,238, 25, 63,229, 52, 43, 63,191,246, 28, 63,109, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63,192,225, 34, 63, +142,140, 28, 63, 51, 73, 32, 63,221,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63, 51, 73, 32, 63,221,228, 40, 63,192,225, 34, 63,142,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63,191,246, 28, 63, +109, 60, 31, 63,245,163, 31, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63,140,184, 19, 63,232,209, 22, 63,225,119, 16, 63,225, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63,207, 33, 9, 63, +226, 17, 34, 63,212,204, 12, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63,212,204, 12, 63,188, 32, 23, 63,207, 33, 9, 63,226, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63,225,119, 16, 63, +225, 17, 34, 63,220,204, 12, 63, 35, 28, 45, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, 29,225, 5, 63,233,209, 22, 63,118,105, 9, 63,101,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63, 43, 48, 16, 63, +100,116, 11, 63,212,204, 12, 63,188, 32, 23, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63,212,204, 12, 63,188, 32, 23, 63, 43, 48, 16, 63,100,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63,118,105, 9, 63, +101,116, 11, 63,205,204, 12, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63,155,153, 25, 63, 0, 0, 0, 63, 43,183, 22, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 43, 48, 16, 63, +100,116, 11, 63, 51, 51, 19, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63, 51, 51, 19, 63,244, 1, 0, 63, 43, 48, 16, 63,100,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 43,183, 22, 63, +149,111, 11, 63,140,184, 19, 63,232,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63,205,204, 12, 63, 0, 0, 0, 63,118,105, 9, 63,101,116, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63,118,226, 2, 63, +149,111, 11, 63,102,102, 6, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,102,102, 6, 63,244, 1, 0, 63,118,226, 2, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63,118,105, 9, 63, +101,116, 11, 63, 29,225, 5, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 77, 10, 6, 63, 6,196,217, 62, 17, 72, 9, 63,227,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62,117, 81, 16, 63, +223,230,198, 62,198,204, 12, 63, 72, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62,198,204, 12, 63, 72, 58,217, 62,117, 81, 16, 63,223,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 17, 72, 9, 63, +227,230,198, 62,191,204, 12, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 64,143, 19, 63, 4,196,217, 62, 76, 33, 16, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 71,120, 9, 63, + 30,211,236, 62,198,204, 12, 63, 72, 58,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62,198,204, 12, 63, 72, 58,217, 62, 71,120, 9, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 76, 33, 16, 63, + 30,211,236, 62,205,204, 12, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 62,251, 2, 63, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 71,120, 9, 63, + 30,211,236, 62,102,102, 6, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63,102,102, 6, 63,244, 1, 0, 63, 71,120, 9, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 62,251, 2, 63, + 67,207,236, 62, 77, 10, 6, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63,205,204, 12, 63, 0, 0, 0, 63, 76, 33, 16, 63, 30,211,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 86,158, 22, 63, + 65,207,236, 62, 51, 51, 19, 63,244, 1, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 51, 51, 19, 63,244, 1, 0, 63, 86,158, 22, 63, 65,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62, 76, 33, 16, 63, + 30,211,236, 62, 64,143, 19, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63,101,235,243, 62,252, 29, 19, 63,132, 9,250, 62, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63,118,226, 2, 63, +149,111, 11, 63,233,197,255, 62, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63,233,197,255, 62, 39, 48, 21, 63,118,226, 2, 63,149,111, 11, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63,132, 9,250, 62, + 94,152, 9, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, 29,225, 5, 63,233,209, 22, 63, 43,241, 2, 63,181, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63,225, 69,249, 62, +110, 60, 31, 63,233,197,255, 62, 39, 48, 21, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63,233,197,255, 62, 39, 48, 21, 63,225, 69,249, 62,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63, 43,241, 2, 63, +181, 23, 33, 63, 30, 86,255, 62,230, 52, 43, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63,129,102,230, 62, 48,200, 37, 63,222,111,237, 62,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63,225, 69,249, 62, +110, 60, 31, 63, 9,161,242, 62,223,228, 40, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63, 9,161,242, 62,223,228, 40, 63,225, 69,249, 62,110, 60, 31, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63,222,111,237, 62, +143,140, 28, 63,101,235,243, 62,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, 30, 86,255, 62,230, 52, 43, 63, 43,241, 2, 63,181, 23, 33, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63,207, 33, 9, 63, +226, 17, 34, 63, 46, 46, 6, 63,211,160, 44, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 46, 46, 6, 63,211,160, 44, 63,207, 33, 9, 63,226, 17, 34, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63, 43,241, 2, 63, +181, 23, 33, 63, 29,225, 5, 63,233,209, 22, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,218,173, 82, 63, 55, 92,210, 62,229,189, 79, 63,173,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62,230,250, 82, 63, +117,190,166, 62,138,238, 85, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62,138,238, 85, 63, 72,220,187, 62,230,250, 82, 63,117,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62,229,189, 79, 63, +173,208,189, 62,198,119, 76, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62,198,119, 76, 63, 90,150,169, 62,229,189, 79, 63,173,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62,176,175, 76, 63, +192,159,213, 62,170,111, 73, 63, 68,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62,170,111, 73, 63, 68,135,193, 62,176,175, 76, 63,192,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62,229,189, 79, 63, +173,208,189, 62,218,173, 82, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,193,204, 76, 63, 0, 0, 0, 63,128,209, 73, 63, 75,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62,176,175, 76, 63, +192,159,213, 62, 52,175, 79, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62, 52,175, 79, 63,218, 32,233, 62,176,175, 76, 63,192,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62,128,209, 73, 63, + 75,207,236, 62,112,194, 70, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62,112,194, 70, 63, 19,196,217, 62,171,132, 67, 63,253,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 61, 29, 70, 63, +114, 54,174, 62,170,111, 73, 63, 68,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62,170,111, 73, 63, 68,135,193, 62, 61, 29, 70, 63,114, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62,171,132, 67, 63, +253,230,198, 62, 0, 0, 64, 63,211,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,218,173, 82, 63, 55, 92,210, 62, 56, 54, 86, 63, 58, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62, 41, 51, 83, 63, + 24,252,255, 62, 52,175, 79, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 52,175, 79, 63,218, 32,233, 62, 41, 51, 83, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 56, 54, 86, 63, + 58, 23,233, 62,147,153, 89, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62,147,153, 89, 63, 0, 0, 0, 63, 56, 54, 86, 63, 58, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62,147,153, 89, 63, +143,190,209, 62,239,252, 92, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62,239,252, 92, 63, 58, 23,233, 62,147,153, 89, 63,143,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62, 56, 54, 86, 63, + 58, 23,233, 62,218,173, 82, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,149,153, 89, 63,201,199,165, 62,159, 68, 93, 63, 72,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62,147,153, 89, 63, +143,190,209, 62,138,238, 85, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62,138,238, 85, 63, 72,220,187, 62,147,153, 89, 63,143,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62,159, 68, 93, 63, + 72,220,187, 62, 78,133, 96, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, 78,133, 96, 63, 55, 92,210, 62,242,131, 99, 63,218, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62,254,255, 95, 63, + 24,252,255, 62,239,252, 92, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63,239,252, 92, 63, 58, 23,233, 62,254,255, 95, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62,242,131, 99, 63, +218, 32,233, 62,101,102,102, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,139,174,111, 63,223,230,198, 62,192,112,108, 63, 4,196,217, 62,133,195,105, 63, 37,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62,249, 21,109, 63, + 65, 54,174, 62,139,174,111, 63,223,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62,139,174,111, 63,223,230,198, 62,249, 21,109, 63, 65, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62,133,195,105, 63, + 37,135,193, 62,106,187,102, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62,106,187,102, 63, 54,150,169, 62,133,195,105, 63, 37,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62,123,131,102, 63, +181,159,213, 62, 70,117, 99, 63,155,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 70,117, 99, 63,155,208,189, 62,123,131,102, 63,181,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62,133,195,105, 63, + 37,135,193, 62,192,112,108, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62,101,102,102, 63, 0, 0, 0, 63,242,131, 99, 63,218, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62,123,131,102, 63, +181,159,213, 62,170, 97,105, 63, 65,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62,170, 97,105, 63, 65,207,236, 62,123,131,102, 63,181,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62,242,131, 99, 63, +218, 32,233, 62, 78,133, 96, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, 78,133, 96, 63, 55, 92,210, 62,159, 68, 93, 63, 72,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62, 71, 56, 96, 63, + 99,190,166, 62, 70,117, 99, 63,155,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 70,117, 99, 63,155,208,189, 62, 71, 56, 96, 63, 99,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62,159, 68, 93, 63, + 72,220,187, 62,149,153, 89, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 11, 92, 96, 63,253, 29, 19, 63, 21,238, 92, 63,112,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63,254,255, 95, 63, + 24,252,255, 62, 33,107, 99, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63, 33,107, 99, 63, 94,152, 9, 63,254,255, 95, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 21,238, 92, 63, +112,150, 9, 63,147,153, 89, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63,147,153, 89, 63, 0, 0, 0, 63, 21,238, 92, 63,112,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63,143,153, 89, 63, +219, 98, 19, 63, 14, 69, 86, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 14, 69, 86, 63,112,150, 9, 63,143,153, 89, 63,219, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63, 21,238, 92, 63, +112,150, 9, 63, 11, 92, 96, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63,139,153, 89, 63, 45,200, 37, 63,218, 20, 86, 63,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63,143,153, 89, 63, +219, 98, 19, 63, 63, 30, 93, 63,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 63, 30, 93, 63,143,140, 28, 63,143,153, 89, 63,219, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63,218, 20, 86, 63, +143,140, 28, 63, 19,215, 82, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, 19,215, 82, 63,252, 29, 19, 63, 1,200, 79, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 41, 51, 83, 63, + 24,252,255, 62, 14, 69, 86, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 14, 69, 86, 63,112,150, 9, 63, 41, 51, 83, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 1,200, 79, 63, + 94,152, 9, 63,193,204, 76, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,151, 35,188, 60, 46, 92,210, 62,218, 74, 60, 60,150,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,218, 74, 60, 60,150,208,189, 62,195,197,197, 60, + 89,190,166, 62,237, 28, 18, 61, 60,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62,237, 28, 18, 61, 60,220,187, 62,195,197,197, 60, 89,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62,150,120,129, 63, +150,208,189, 62, 15,171,127, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, 15,171,127, 63, 52,150,169, 62,150,120,129, 63,150,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,150,120,129, 63,150,208,189, 62,244,226,127, 63, +179,159,213, 62,241,162,124, 63, 36,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62,241,162,124, 63, 36,135,193, 62,244,226,127, 63,179,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62,150,120,129, 63, +150,208,189, 62,142,240,130, 63, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 59,113,129, 63,214, 32,233, 62, 0, 0,128, 63, 0, 0, 0, 63,194, 4,125, 63, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62,244,226,127, 63, +179,159,213, 62, 59,113,129, 63,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,142,240,130, 63, 46, 92,210, 62, 59,113,129, 63,214, 32,233, 62,244,226,127, 63,179,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62,194, 4,125, 63, + 67,207,236, 62,179,245,121, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62,179,245,121, 63, 6,196,217, 62,239,183,118, 63,227,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62,133, 80,121, 63, + 65, 54,174, 62,241,162,124, 63, 36,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62,241,162,124, 63, 36,135,193, 62,133, 80,121, 63, 65, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62,239,183,118, 63, +227,230,198, 62, 65, 51,115, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,110,157, 56, 60,214, 32,233, 62,151, 35,188, 60, 46, 92,210, 62, 95,151, 22, 61, 55, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62,176,204,204, 60, + 24,252,255, 62,110,157, 56, 60,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,167, 79, 11, 38, 0, 0, 0, 63,110,157, 56, 60,214, 32,233, 62,176,204,204, 60, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 95,151, 22, 61, + 55, 23,233, 62,215,204, 76, 61, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62,215,204, 76, 61, 0, 0, 0, 63, 95,151, 22, 61, 55, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62, 68,205, 76, 61, +135,190,209, 62, 87,129,129, 61, 57, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 87,129,129, 61, 57, 23,233, 62, 68,205, 76, 61,135,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 95,151, 22, 61, + 55, 23,233, 62,151, 35,188, 60, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,194,205, 76, 61,186,199,165, 62, 7,191,131, 61, 62,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 68,205, 76, 61, +135,190,209, 62,237, 28, 18, 61, 60,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,151, 35,188, 60, 46, 92,210, 62,237, 28, 18, 61, 60,220,187, 62, 68,205, 76, 61,135,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 7,191,131, 61, + 62,220,187, 62, 92,196,157, 61, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, 92,196,157, 61, 49, 92,210, 62, 89,185,181, 61,214, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62,154,153,153, 61, + 25,252,255, 62, 87,129,129, 61, 57, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 87,129,129, 61, 57, 23,233, 62,154,153,153, 61, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62, 89,185,181, 61, +214, 32,233, 62,215,204,204, 61, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62,171, 31,253, 61, 6,196,217, 62,251,181,231, 61, 38,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62,204, 36, 1, 62, + 70, 54,174, 62, 1,135, 11, 62,228,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62, 1,135, 11, 62,228,230,198, 62,204, 36, 1, 62, 70, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62,251,181,231, 61, + 38,135,193, 62, 70,117,207, 61, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 70,117,207, 61, 54,150,169, 62,251,181,231, 61, 38,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62,164,181,205, 61, +180,159,213, 62, 35, 68,181, 61,153,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 35, 68,181, 61,153,208,189, 62,164,181,205, 61,180,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62,251,181,231, 61, + 38,135,193, 62,171, 31,253, 61, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62,215,204,204, 61, 0, 0, 0, 63, 89,185,181, 61,214, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62,164,181,205, 61, +180,159,213, 62,251,166,228, 61, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62,251,166,228, 61, 67,207,236, 62,164,181,205, 61,180,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 89,185,181, 61, +214, 32,233, 62, 92,196,157, 61, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 92,196,157, 61, 49, 92,210, 62, 7,191,131, 61, 62,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 79, 92,155, 61, + 91,190,166, 62, 35, 68,181, 61,153,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 35, 68,181, 61,153,208,189, 62, 79, 92,155, 61, 91,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62, 7,191,131, 61, + 62,220,187, 62,194,205, 76, 61,186,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 1,122,156, 61,254, 29, 19, 63,100, 10,129, 61,113,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63,154,153,153, 61, + 25,252,255, 62,172,242,180, 61, 96,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63,172,242,180, 61, 96,152, 9, 63,154,153,153, 61, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62,100, 10,129, 61, +113,150, 9, 63,215,204, 76, 61, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63,215,204, 76, 61, 0, 0, 0, 63,100, 10,129, 61,113,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63, 91,204, 76, 61, +220, 98, 19, 63,109,132, 23, 61,113,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63,109,132, 23, 61,113,150, 9, 63, 91,204, 76, 61,220, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63,100, 10,129, 61, +113,150, 9, 63, 1,122,156, 61,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63,246,203, 76, 61, 48,200, 37, 63, 13,129, 20, 61,143,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 91,204, 76, 61, +220, 98, 19, 63,166,139,130, 61,145,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63,166,139,130, 61,145,140, 28, 63, 91,204, 76, 61,220, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 13,129, 20, 61, +143,140, 28, 63,174, 73,193, 60,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63,174, 73,193, 60,253, 29, 19, 63,114,207, 62, 60, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114,207, 62, 60, 94,152, 9, 63,176,204,204, 60, + 24,252,255, 62,109,132, 23, 61,113,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63,109,132, 23, 61,113,150, 9, 63,176,204,204, 60, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62,114,207, 62, 60, + 94,152, 9, 63,167, 79, 11, 38, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 63, 81,100, 62, 60, 92,210, 62,110,145, 88, 62,167,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62, 91,133,101, 62, +112,190,166, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62,237, 83,113, 62, 79,220,187, 62, 91,133,101, 62,112,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62,110,145, 88, 62, +167,208,189, 62,239,120, 75, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62,239,120, 75, 62, 70,150,169, 62,110,145, 88, 62,167,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62,170, 88, 76, 62, +187,159,213, 62,144, 88, 63, 62, 46,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62,144, 88, 63, 62, 46,135,193, 62,170, 88, 76, 62,187,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62,110,145, 88, 62, +167,208,189, 62, 63, 81,100, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62,254,204, 76, 62, 0, 0, 0, 63,251,223, 64, 62, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62,170, 88, 76, 62, +187,159,213, 62,190, 86, 88, 62,221, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62,190, 86, 88, 62,221, 32,233, 62,170, 88, 76, 62,187,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62,251,223, 64, 62, + 67,207,236, 62,179,163, 52, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62,179,163, 52, 62, 7,196,217, 62,153,172, 39, 62,230,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62,213, 14, 50, 62, + 78, 54,174, 62,144, 88, 63, 62, 46,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62,144, 88, 63, 62, 46,135,193, 62,213, 14, 50, 62, 78, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62,153,172, 39, 62, +230,230,198, 62,214,153, 25, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 63, 81,100, 62, 60, 92,210, 62,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62,126,102,102, 62, + 25,252,255, 62,190, 86, 88, 62,221, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63,190, 86, 88, 62,221, 32,233, 62,126,102,102, 62, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62,166,114,114, 62, + 63, 23,233, 62, 0, 0,128, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 62, 0, 0, 0, 63,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62, 0, 0,128, 62, +149,190,209, 62,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 62,149,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62,166,114,114, 62, + 63, 23,233, 62, 63, 81,100, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 62,206,199,165, 62, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 62, +149,190,209, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62,237, 83,113, 62, 79,220,187, 62, 0, 0,128, 62,149,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 9, 86,135, 62, + 79,220,187, 62, 97,215,141, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 97,215,141, 62, 60, 92,210, 62,161,212,147, 62,221, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62,193,204,140, 62, + 25,252,255, 62,173,198,134, 62, 63, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63,173,198,134, 62, 63, 23,233, 62,193,204,140, 62, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62,161,212,147, 62, +221, 32,233, 62,129,153,153, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 39,174,165, 62, 7,196,217, 62,184, 83,160, 62, 46,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62,150,248,166, 62, + 78, 54,174, 62,180, 41,172, 62,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62,180, 41,172, 62,227,230,198, 62,150,248,166, 62, 78, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62,184, 83,160, 62, + 46,135,193, 62,137, 67,154, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62,137, 67,154, 62, 70,150,169, 62,184, 83,160, 62, 46,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62,171,211,153, 62, +187,159,213, 62, 73,183,147, 62,167,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 73,183,147, 62,167,208,189, 62,171,211,153, 62,187,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62,184, 83,160, 62, + 46,135,193, 62, 39,174,165, 62, 7,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62,129,153,153, 62, 0, 0, 0, 63,161,212,147, 62,221, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62,171,211,153, 62, +187,159,213, 62, 3,144,159, 62, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 3,144,159, 62, 67,207,236, 62,171,211,153, 62,187,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62,161,212,147, 62, +221, 32,233, 62, 97,215,141, 62, 60, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, 97,215,141, 62, 60, 92,210, 62, 9, 86,135, 62, 79,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 82, 61,141, 62, +112,190,166, 62, 73,183,147, 62,167,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 73,183,147, 62,167,208,189, 62, 82, 61,141, 62,112,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 9, 86,135, 62, + 79,220,187, 62, 0, 0,128, 62,206,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63,224,132,141, 62,246, 29, 19, 63,251,168,134, 62,107,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63,193,204,140, 62, + 25,252,255, 62, 1,163,147, 62, 91,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 1,163,147, 62, 91,152, 9, 63,193,204,140, 62, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62,251,168,134, 62, +107,150, 9, 63, 0, 0,128, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 62, 0, 0, 0, 63,251,168,134, 62,107,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63, 0, 0,128, 62, +209, 98, 19, 63, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 62,209, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63,251,168,134, 62, +107,150, 9, 63,224,132,141, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 62, 23,200, 37, 63, 83,237,113, 62,130,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0,128, 62, +209, 98, 19, 63, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 86, 9,135, 62,130,140, 28, 63, 0, 0,128, 62,209, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 83,237,113, 62, +130,140, 28, 63, 64,246,100, 62,246, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 64,246,100, 62,246, 29, 19, 63,255,185, 88, 62, 90,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63,126,102,102, 62, + 25,252,255, 62, 11,174,114, 62,107,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 11,174,114, 62,107,150, 9, 63,126,102,102, 62, 25,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62,255,185, 88, 62, + 90,152, 9, 63,254,204, 76, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62,233,142,216, 62, 49, 92,210, 62,248,174,210, 62,153,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62,237, 40,217, 62, + 91,190,166, 62, 63, 16,223, 62, 62,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62, 63, 16,223, 62, 62,220,187, 62,237, 40,217, 62, 91,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62,248,174,210, 62, +153,208,189, 62,175, 34,204, 62, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62,175, 34,204, 62, 54,150,169, 62,248,174,210, 62,153,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62,151,146,204, 62, +180,159,213, 62,129, 18,198, 62, 37,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62,129, 18,198, 62, 37,135,193, 62,151,146,204, 62,180,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62,248,174,210, 62, +153,208,189, 62,233,142,216, 62, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,202,204,204, 62, 0, 0, 0, 63, 65,214,198, 62, 67,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62,151,146,204, 62, +180,159,213, 62,170,145,210, 62,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62,170,145,210, 62,214, 32,233, 62,151,146,204, 62,180,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 65,214,198, 62, + 67,207,236, 62, 21,184,192, 62, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, 21,184,192, 62, 6,196,217, 62,127, 60,186, 62,225,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62,154,109,191, 62, + 68, 54,174, 62,129, 18,198, 62, 37,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62,129, 18,198, 62, 37,135,193, 62,154,109,191, 62, 68, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62,127, 60,186, 62, +225,230,198, 62, 21, 51,179, 62,165,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,233,142,216, 62, 49, 92,210, 62,171,159,223, 62, 57, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62,154,153,217, 62, + 24,252,255, 62,170,145,210, 62,214, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63,170,145,210, 62,214, 32,233, 62,154,153,217, 62, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62,171,159,223, 62, + 57, 23,233, 62,101,102,230, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62,101,102,230, 62, 0, 0, 0, 63,171,159,223, 62, 57, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62, 88,102,230, 62, +135,190,209, 62, 20, 45,237, 62, 55, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 20, 45,237, 62, 55, 23,233, 62, 88,102,230, 62,135,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62,171,159,223, 62, + 57, 23,233, 62,233,142,216, 62, 49, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 72,102,230, 62,183,199,165, 62, 99,188,237, 62, 60,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62, 88,102,230, 62, +135,190,209, 62, 63, 16,223, 62, 62,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62, 63, 16,223, 62, 62,220,187, 62, 88,102,230, 62,135,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 99,188,237, 62, + 60,220,187, 62,199, 61,244, 62, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62,199, 61,244, 62, 46, 92,210, 62, 21, 59,250, 62,213, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 53, 51,243, 62, + 24,252,255, 62, 20, 45,237, 62, 55, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 20, 45,237, 62, 55, 23,233, 62, 53, 51,243, 62, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62, 21, 59,250, 62, +213, 32,233, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 77, 10, 6, 63, 6,196,217, 62, 15, 93, 3, 63, 36,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62,123,175, 6, 63, + 65, 54,174, 62, 17, 72, 9, 63,227,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62, 17, 72, 9, 63,227,230,198, 62,123,175, 6, 63, 65, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 15, 93, 3, 63, + 36,135,193, 62,241, 84, 0, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62,241, 84, 0, 63, 52,150,169, 62, 15, 93, 3, 63, 36,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62, 12, 29, 0, 63, +179,159,213, 62,169, 29,250, 62,150,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62,169, 29,250, 62,150,208,189, 62, 12, 29, 0, 63,179,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 15, 93, 3, 63, + 36,135,193, 62, 77, 10, 6, 63, 6,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 63, 0, 0, 0, 63, 21, 59,250, 62,213, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 12, 29, 0, 63, +179,159,213, 62, 62,251, 2, 63, 67,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62, 62,251, 2, 63, 67,207,236, 62, 12, 29, 0, 63,179,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 21, 59,250, 62, +213, 32,233, 62,199, 61,244, 62, 46, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62,199, 61,244, 62, 46, 92,210, 62, 99,188,237, 62, 60,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62,164,163,243, 62, + 89,190,166, 62,169, 29,250, 62,150,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62,169, 29,250, 62,150,208,189, 62,164,163,243, 62, 89,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 99,188,237, 62, + 60,220,187, 62, 72,102,230, 62,183,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63,101,235,243, 62,252, 29, 19, 63,114, 15,237, 62,113,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63, 53, 51,243, 62, + 24,252,255, 62,132, 9,250, 62, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,132, 9,250, 62, 94,152, 9, 63, 53, 51,243, 62, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62,114, 15,237, 62, +113,150, 9, 63,101,102,230, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63,101,102,230, 62, 0, 0, 0, 63,114, 15,237, 62,113,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63,117,102,230, 62, +220, 98, 19, 63,103,189,223, 62,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63,103,189,223, 62,112,150, 9, 63,117,102,230, 62,220, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63,114, 15,237, 62, +113,150, 9, 63,101,235,243, 62,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63,129,102,230, 62, 48,200, 37, 63, 22, 93,223, 62,145,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63,117,102,230, 62, +220, 98, 19, 63,222,111,237, 62,143,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63,222,111,237, 62,143,140, 28, 63,117,102,230, 62,220, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 22, 93,223, 62, +145,140, 28, 63,128,225,216, 62,254, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63,128,225,216, 62,254, 29, 19, 63, 85,195,210, 62, 96,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63,154,153,217, 62, + 24,252,255, 62,103,189,223, 62,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63,103,189,223, 62,112,150, 9, 63,154,153,217, 62, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62, 85,195,210, 62, + 96,152, 9, 63,202,204,204, 62, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,178,122, 31, 63, 55, 92,210, 62,186,138, 28, 63,155,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62,185,199, 31, 63, + 96,190,166, 62, 97,187, 34, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62, 97,187, 34, 63, 72,220,187, 62,185,199, 31, 63, 96,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62,186,138, 28, 63, +155,208,189, 62,150, 68, 25, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62,150, 68, 25, 63, 54,150,169, 62,186,138, 28, 63,155,208,189, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62,133,124, 25, 63, +181,159,213, 62,123, 60, 22, 63, 36,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62,123, 60, 22, 63, 36,135,193, 62,133,124, 25, 63,181,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62,186,138, 28, 63, +155,208,189, 62,178,122, 31, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,155,153, 25, 63, 0, 0, 0, 63, 86,158, 22, 63, 65,207,236, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62,133,124, 25, 63, +181,159,213, 62, 14,124, 28, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 14,124, 28, 63,218, 32,233, 62,133,124, 25, 63,181,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 86,158, 22, 63, + 65,207,236, 62, 64,143, 19, 63, 4,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, 64,143, 19, 63, 4,196,217, 62,117, 81, 16, 63,223,230,198, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 7,234, 18, 63, + 65, 54,174, 62,123, 60, 22, 63, 36,135,193, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62,123, 60, 22, 63, 36,135,193, 62, 7,234, 18, 63, 65, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62,117, 81, 16, 63, +223,230,198, 62,191,204, 12, 63,160,111,180, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,178,122, 31, 63, 55, 92,210, 62, 17, 3, 35, 63, 58, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62, 2, 0, 32, 63, + 24,252,255, 62, 14,124, 28, 63,218, 32,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 14,124, 28, 63,218, 32,233, 62, 2, 0, 32, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 17, 3, 35, 63, + 58, 23,233, 62,109,102, 38, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62,109,102, 38, 63, 0, 0, 0, 63, 17, 3, 35, 63, 58, 23,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62,109,102, 38, 63, +143,190,209, 62,200,201, 41, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62,200,201, 41, 63, 58, 23,233, 62,109,102, 38, 63,143,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62, 17, 3, 35, 63, + 58, 23,233, 62,178,122, 31, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,107,102, 38, 63,201,199,165, 62,118, 17, 42, 63, 72,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62,109,102, 38, 63, +143,190,209, 62, 97,187, 34, 63, 72,220,187, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 97,187, 34, 63, 72,220,187, 62,109,102, 38, 63,143,190,209, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62,118, 17, 42, 63, + 72,220,187, 62, 38, 82, 45, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, 38, 82, 45, 63, 55, 92,210, 62,204, 80, 48, 63,218, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62,215,204, 44, 63, + 23,252,255, 62,200,201, 41, 63, 58, 23,233, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63,200,201, 41, 63, 58, 23,233, 62,215,204, 44, 63, 23,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62,204, 80, 48, 63, +218, 32,233, 62, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62,144, 61, 57, 63, 19,196,217, 62, 86,144, 54, 63, 68,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62,196,226, 57, 63, +114, 54,174, 62, 85,123, 60, 63,253,230,198, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62, 85,123, 60, 63,253,230,198, 62,196,226, 57, 63,114, 54,174, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 86,144, 54, 63, + 68,135,193, 62, 58,136, 51, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 58,136, 51, 63, 90,150,169, 62, 86,144, 54, 63, 68,135,193, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62, 80, 80, 51, 63, +192,159,213, 62, 27, 66, 48, 63,173,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 27, 66, 48, 63,173,208,189, 62, 80, 80, 51, 63,192,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62, 86,144, 54, 63, + 68,135,193, 62,144, 61, 57, 63, 19,196,217, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 63, 51, 51, 63, 0, 0, 0, 63,204, 80, 48, 63,218, 32,233, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62, 80, 80, 51, 63, +192,159,213, 62,128, 46, 54, 63, 75,207,236, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62,128, 46, 54, 63, 75,207,236, 62, 80, 80, 51, 63,192,159,213, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62,204, 80, 48, 63, +218, 32,233, 62, 38, 82, 45, 63, 55, 92,210, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 38, 82, 45, 63, 55, 92,210, 62,118, 17, 42, 63, 72,220,187, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62, 26, 5, 45, 63, +117,190,166, 62, 27, 66, 48, 63,173,208,189, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 27, 66, 48, 63,173,208,189, 62, 26, 5, 45, 63,117,190,166, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62,118, 17, 42, 63, + 72,220,187, 62,107,102, 38, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63,237, 40, 45, 63,252, 29, 19, 63,242,186, 41, 63,112,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63,215,204, 44, 63, + 23,252,255, 62,255, 55, 48, 63, 94,152, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63,255, 55, 48, 63, 94,152, 9, 63,215,204, 44, 63, 23,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62,242,186, 41, 63, +112,150, 9, 63,109,102, 38, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63,109,102, 38, 63, 0, 0, 0, 63,242,186, 41, 63,112,150, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63,113,102, 38, 63, +219, 98, 19, 63,235, 17, 35, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63,235, 17, 35, 63,112,150, 9, 63,113,102, 38, 63,219, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63,242,186, 41, 63, +112,150, 9, 63,237, 40, 45, 63,252, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63,117,102, 38, 63, 45,200, 37, 63,192,225, 34, 63,142,140, 28, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63,113,102, 38, 63, +219, 98, 19, 63, 38,235, 41, 63,141,140, 28, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 38,235, 41, 63,141,140, 28, 63,113,102, 38, 63,219, 98, 19, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63,192,225, 34, 63, +142,140, 28, 63,245,163, 31, 63,253, 29, 19, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63,245,163, 31, 63,253, 29, 19, 63,223,148, 28, 63, 94,152, 9, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 2, 0, 32, 63, + 24,252,255, 62,235, 17, 35, 63,112,150, 9, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63,235, 17, 35, 63,112,150, 9, 63, 2, 0, 32, 63, 24,252,255, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62,223,148, 28, 63, + 94,152, 9, 63,155,153, 25, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62,235, 71, 99, 63,222, 76,120, 62, 94, 37,106, 63, 84, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 65, 51,115, 63, +248,151, 97, 62,188,129,107, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62,188,129,107, 63, 66, 45,128, 62, 65, 51,115, 63,248,151, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 94, 37,106, 63, + 84, 97, 83, 62, 65, 51,115, 63, 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, 65, 51,115, 63,151, 83,135, 62,142,123,108, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,142,123,108, 63,169,144,151, 62,231, 50,101, 63, + 17,201,146, 62,188,129,107, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62,188,129,107, 63, 66, 45,128, 62,231, 50,101, 63, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62,142,123,108, 63, +169,144,151, 62,106,187,102, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62,149,153, 89, 63,201,199,165, 62, 22,238, 93, 63,243,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62,231, 50,101, 63, + 17,201,146, 62, 71, 56, 96, 63, 99,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 71, 56, 96, 63, 99,190,166, 62,231, 50,101, 63, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 22,238, 93, 63, +243,101,144, 62,235, 71, 99, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62,106,187,102, 63, 54,150,169, 62,142,123,108, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,142,123,108, 63,169,144,151, 62, 65, 51,115, 63, + 93,231,157, 62,249, 21,109, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62,249, 21,109, 63, 65, 54,174, 62, 65, 51,115, 63, 93,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62,142,123,108, 63, +169,144,151, 62, 65, 51,115, 63,151, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62,235, 71, 99, 63,222, 76,120, 62, 22,238, 93, 63,243,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 21, 69, 85, 63, + 3,102,144, 62,149,153, 89, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62,149,153, 89, 63, 79,162,115, 62, 21, 69, 85, 63, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 22,238, 93, 63, +243,101,144, 62,149,153, 89, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, 68,235, 79, 63, 37, 77,120, 62, 24,186, 83, 63,245,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62, 22,121, 95, 63, +204,176, 70, 62,149,153, 89, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62,149,153, 89, 63, 79,162,115, 62, 22,121, 95, 63,204,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 24,186, 83, 63, +245,176, 70, 62,152,153, 89, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 65, 51,115, 63, 90,111, 52, 62, 94, 37,106, 63, 84, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 22,121, 95, 63, +204,176, 70, 62, 61,119,103, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62, 61,119,103, 63,179,253, 30, 62, 22,121, 95, 63,204,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 94, 37,106, 63, + 84, 97, 83, 62,235, 71, 99, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62,152,153, 89, 63,198, 31, 23, 62, 24,186, 83, 63,245,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62,214, 13, 73, 63, +181, 97, 83, 62,248,187, 75, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62,248,187, 75, 63,241,253, 30, 62,214, 13, 73, 63,181, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 24,186, 83, 63, +245,176, 70, 62, 68,235, 79, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 64, 63,195,111,180, 61, 0, 0, 64, 63,111, 65, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 38, 49,117, 63, +225, 64, 52, 61,152,153, 89, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61,152,153, 89, 63,111, 41,147, 61, 38, 49,117, 63,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 64, 63, +111, 65, 52, 61,208,222,121, 63,102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 65, 51,115, 63, 83,111,180, 61,172, 51, 99, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61,135,255, 79, 63, +120, 46,231, 61,152,153, 89, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61,152,153, 89, 63,111, 41,147, 61,135,255, 79, 63,120, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61,172, 51, 99, 63, + 48, 46,231, 61,152,153, 89, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62,135,255, 79, 63, +120, 46,231, 61,248,187, 75, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62,248,187, 75, 63,241,253, 30, 62,135,255, 79, 63,120, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 64, 63, + 24, 71, 7, 62, 0, 0, 64, 63,195,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62,152,153, 89, 63,198, 31, 23, 62,172, 51, 99, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61, 66, 51,115, 63, +199, 70, 7, 62, 61,119,103, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 61,119,103, 63,179,253, 30, 62, 66, 51,115, 63,199, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62,172, 51, 99, 63, + 48, 46,231, 61, 65, 51,115, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 64, 63,115,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62,214, 13, 73, 63, +181, 97, 83, 62,122,177, 71, 63,120, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62,122,177, 71, 63,120, 45,128, 62,214, 13, 73, 63,181, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 64, 63, +115,152, 97, 62, 0, 0, 64, 63,202,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 68,235, 79, 63, 37, 77,120, 62, 72, 0, 78, 63, 52,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62,169,183, 70, 63, +219,144,151, 62,122,177, 71, 63,120, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62,122,177, 71, 63,120, 45,128, 62,169,183, 70, 63,219,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 72, 0, 78, 63, + 52,201,146, 62,198,119, 76, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 64, 63,211,111,180, 62, 0, 0, 64, 63,162,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62,169,183, 70, 63, +219,144,151, 62, 61, 29, 70, 63,114, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62, 61, 29, 70, 63,114, 54,174, 62,169,183, 70, 63,219,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 64, 63, +162,231,157, 62, 0, 0, 64, 63,218, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62,198,119, 76, 63, 90,150,169, 62, 72, 0, 78, 63, 52,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62, 21, 69, 85, 63, + 3,102,144, 62,230,250, 82, 63,117,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62,230,250, 82, 63,117,190,166, 62, 21, 69, 85, 63, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 72, 0, 78, 63, + 52,201,146, 62, 68,235, 79, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 94,217,179, 61,222, 76,120, 62,202,196,234, 61,100, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62,212,153, 25, 62, + 2,152, 97, 62,179,167,245, 61, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62,179,167,245, 61, 72, 45,128, 62,212,153, 25, 62, 2,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62,202,196,234, 61, +100, 97, 83, 62,214,153, 25, 62,106,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62,214,153, 25, 62,156, 83,135, 62, 62,118,253, 61,174,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62, 53, 49,195, 61, + 17,201,146, 62,179,167,245, 61, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62,179,167,245, 61, 72, 45,128, 62, 53, 49,195, 61, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62, 62,118,253, 61, +174,144,151, 62, 70,117,207, 61, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62,194,205, 76, 61,186,199,165, 62,212, 10,137, 61,238,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 53, 49,195, 61, + 17,201,146, 62, 79, 92,155, 61, 91,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 79, 92,155, 61, 91,190,166, 62, 53, 49,195, 61, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62,212, 10,137, 61, +238,101,144, 62, 94,217,179, 61,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, 70,117,207, 61, 54,150,169, 62, 62,118,253, 61,174,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62,213,153, 25, 62, +100,231,157, 62,204, 36, 1, 62, 70, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62,204, 36, 1, 62, 70, 54,174, 62,213,153, 25, 62,100,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62, 62,118,253, 61, +174,144,151, 62,214,153, 25, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 94,217,179, 61,222, 76,120, 62,212, 10,137, 61,238,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62,207,133, 7, 61, +236,101,144, 62,188,205, 76, 61, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,255,162, 71, 60,216, 76,120, 62,188,205, 76, 61, 53,162,115, 62,207,133, 7, 61,236,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62,212, 10,137, 61, +238,101,144, 62,194,205, 76, 61,186,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62,255,162, 71, 60,216, 76,120, 62,190,171,221, 60,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,190,171,221, 60,194,176, 70, 62,194, 98,149, 61, +194,176, 70, 62,188,205, 76, 61, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62,188,205, 76, 61, 53,162,115, 62,194, 98,149, 61,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62,190,171,221, 60, +194,176, 70, 62,193,205, 76, 61,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62,214,153, 25, 62,106,111, 52, 62,202,196,234, 61,100, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62,194, 98,149, 61, +194,176, 70, 62,198, 83,213, 61,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,193,205, 76, 61,168, 31, 23, 62,198, 83,213, 61,179,253, 30, 62,194, 98,149, 61,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62,202,196,234, 61, +100, 97, 83, 62, 94,217,179, 61,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62,154,105,131, 63,168, 31, 23, 62,175,118,131, 63,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,175,118,131, 63,194,176, 70, 62, 30, 65,124, 63, + 90, 97, 83, 62, 59,239,126, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 59,239,126, 63,174,253, 30, 62, 30, 65,124, 63, 90, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62,175,118,131, 63, +194,176, 70, 62, 70,143,129, 63,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,156,105,131, 63,101, 41,147, 61, 65, 51,115, 63, 83,111,180, 61, 38, 49,117, 63,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61,232,148,135, 63, +144,158,125, 60,156,105,131, 63,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61,122,245,128, 61,101, 41,147, 61,224,153, 25, 62,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,232,148,135, 63,144,158,125, 60, 38, 49,117, 63, +225, 64, 52, 61,208,222,121, 63,102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,122,245,128, 61,101, 41,147, 61,215,153, 25, 62,104,111,180, 61, 89, 55,179, 61, 38, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61, 96,147,208, 60, + 48, 46,231, 61,122,245,128, 61,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61,156,105,131, 63,101, 41,147, 61,102,153,129, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 96,147,208, 60, 48, 46,231, 61, 89, 55,179, 61, + 38, 46,231, 61,193,205, 76, 61,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 65, 51,115, 63, 90,111, 52, 62, 66, 51,115, 63,199, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62,102,153,129, 63, + 48, 46,231, 61, 59,239,126, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,154,105,131, 63,168, 31, 23, 62, 59,239,126, 63,174,253, 30, 62,102,153,129, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61, 66, 51,115, 63, +199, 70, 7, 62, 65, 51,115, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62,193,205, 76, 61,168, 31, 23, 62, 89, 55,179, 61, 38, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61,217,153, 25, 62, +204, 70, 7, 62,198, 83,213, 61,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62,198, 83,213, 61,179,253, 30, 62,217,153, 25, 62,204, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62, 89, 55,179, 61, + 38, 46,231, 61,215,153, 25, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 65, 51,115, 63,151, 83,135, 62, 65, 51,115, 63,248,151, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 30, 65,124, 63, + 90, 97, 83, 62,192,228,122, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 70,143,129, 63,216, 76,120, 62,192,228,122, 63, 66, 45,128, 62, 30, 65,124, 63, 90, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 65, 51,115, 63, +248,151, 97, 62, 65, 51,115, 63, 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 70,143,129, 63,216, 76,120, 62,201,153,128, 63, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,201,153,128, 63, 14,201,146, 62,239,234,121, 63, +169,144,151, 62,192,228,122, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62,192,228,122, 63, 66, 45,128, 62,239,234,121, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62,201,153,128, 63, + 14,201,146, 62, 15,171,127, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 65, 51,115, 63,160,111,180, 62, 65, 51,115, 63, 93,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62,239,234,121, 63, +169,144,151, 62,133, 80,121, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62,133, 80,121, 63, 65, 54,174, 62,239,234,121, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 65, 51,115, 63, + 93,231,157, 62, 65, 51,115, 63,151, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62, 15,171,127, 63, 52,150,169, 62,201,153,128, 63, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,136,200,153, 59, 14,201,146, 62,207,133, 7, 61, +236,101,144, 62,195,197,197, 60, 89,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62,195,197,197, 60, 89,190,166, 62,207,133, 7, 61,236,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62,136,200,153, 59, + 14,201,146, 62,255,162, 71, 60,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62,147, 92,147, 62,252, 76,120, 62,102, 23,161, 62,115, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 22, 51,179, 62, + 2,152, 97, 62, 32,208,163, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 32,208,163, 62, 79, 45,128, 62, 22, 51,179, 62, 2,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62,102, 23,161, 62, +115, 97, 83, 62, 21, 51,179, 62,101,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, 21, 51,179, 62,156, 83,135, 62,194,195,165, 62,181,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194,195,165, 62,181,144,151, 62,134, 50,151, 62, + 29,201,146, 62, 32,208,163, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 32,208,163, 62, 79, 45,128, 62,134, 50,151, 62, 29,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62,194,195,165, 62, +181,144,151, 62,137, 67,154, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0,128, 62,206,199,165, 62,247,168,136, 62, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62,134, 50,151, 62, + 29,201,146, 62, 82, 61,141, 62,112,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 82, 61,141, 62,112,190,166, 62,134, 50,151, 62, 29,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62,247,168,136, 62, + 3,102,144, 62,147, 92,147, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62,137, 67,154, 62, 70,150,169, 62,194,195,165, 62,181,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,194,195,165, 62,181,144,151, 62, 21, 51,179, 62, + 98,231,157, 62,150,248,166, 62, 78, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62,150,248,166, 62, 78, 54,174, 62, 21, 51,179, 62, 98,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62,194,195,165, 62, +181,144,151, 62, 21, 51,179, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62,147, 92,147, 62,252, 76,120, 62,247,168,136, 62, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 18,174,110, 62, + 3,102,144, 62, 0, 0,128, 62, 89,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 62, 89,162,115, 62, 18,174,110, 62, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62,247,168,136, 62, + 3,102,144, 62, 0, 0,128, 62,206,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62,217, 70, 89, 62,252, 76,120, 62, 30,130,104, 62,230,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62,241,190,139, 62, +230,176, 70, 62, 0, 0,128, 62, 89,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0,128, 62, 89,162,115, 62,241,190,139, 62,230,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62, 30,130,104, 62, +230,176, 70, 62, 0, 0,128, 62,208, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 21, 51,179, 62,101,111, 52, 62,102, 23,161, 62,115, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62,241,190,139, 62, +230,176, 70, 62, 41,187,155, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62, 41,187,155, 62,205,253, 30, 62,241,190,139, 62,230,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62,102, 23,161, 62, +115, 97, 83, 62,147, 92,147, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, 0, 0,128, 62,208, 31, 23, 62, 30,130,104, 62,230,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62, 51,209, 61, 62, +115, 97, 83, 62,174,137, 72, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62,174,137, 72, 62,205,253, 30, 62, 51,209, 61, 62,115, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62, 30,130,104, 62, +230,176, 70, 62,217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61,215,153, 25, 62,104,111,180, 61,224,153, 25, 62,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,224,153, 25, 62,225, 64, 52, 61, 15, 51,179, 62, +225, 64, 52, 61,255,255,127, 62,141, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61,255,255,127, 62,141, 41,147, 61, 15, 51,179, 62,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61,224,153, 25, 62, +225, 64, 52, 61,144,175,161, 62,102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, 20, 51,179, 62,104,111,180, 61, 12, 52,147, 62,109, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61,231,151, 89, 62, +109, 46,231, 61,255,255,127, 62,141, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61,255,255,127, 62,141, 41,147, 61,231,151, 89, 62,109, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61, 12, 52,147, 62, +109, 46,231, 61, 0, 0,128, 62,208, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62,214,153, 25, 62,106,111, 52, 62,217,153, 25, 62,204, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62,231,151, 89, 62, +109, 46,231, 61,174,137, 72, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62,174,137, 72, 62,205,253, 30, 62,231,151, 89, 62,109, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61,217,153, 25, 62, +204, 70, 7, 62,215,153, 25, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 0, 0,128, 62,208, 31, 23, 62, 12, 52,147, 62,109, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61, 19, 51,179, 62, +204, 70, 7, 62, 41,187,155, 62,205,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 41,187,155, 62,205,253, 30, 62, 19, 51,179, 62,204, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 12, 52,147, 62, +109, 46,231, 61, 20, 51,179, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62,214,153, 25, 62,156, 83,135, 62,212,153, 25, 62, 2,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 51,209, 61, 62, +115, 97, 83, 62,192, 95, 56, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62,192, 95, 56, 62, 79, 45,128, 62, 51,209, 61, 62,115, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62,212,153, 25, 62, + 2,152, 97, 62,214,153, 25, 62,106,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62,217, 70, 89, 62,252, 76,120, 62,245,154, 81, 62, 29,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62,125,120, 52, 62, +181,144,151, 62,192, 95, 56, 62, 79, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62,192, 95, 56, 62, 79, 45,128, 62,125,120, 52, 62,181,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62,245,154, 81, 62, + 29,201,146, 62,239,120, 75, 62, 70,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62,214,153, 25, 62,165,111,180, 62,213,153, 25, 62,100,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62,125,120, 52, 62, +181,144,151, 62,213, 14, 50, 62, 78, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62,213, 14, 50, 62, 78, 54,174, 62,125,120, 52, 62,181,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62,213,153, 25, 62, +100,231,157, 62,214,153, 25, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62,239,120, 75, 62, 70,150,169, 62,245,154, 81, 62, 29,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62, 18,174,110, 62, + 3,102,144, 62, 91,133,101, 62,112,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 91,133,101, 62,112,190,166, 62, 18,174,110, 62, 3,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62,245,154, 81, 62, + 29,201,146, 62,217, 70, 89, 62,252, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62,232,194,249, 62,216, 76,120, 62,226,190, 3, 63, 90, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62,191,204, 12, 63, +248,151, 97, 62, 64, 27, 5, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 64, 27, 5, 63, 66, 45,128, 62,191,204, 12, 63,248,151, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62,226,190, 3, 63, + 90, 97, 83, 62,191,204, 12, 63, 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62,191,204, 12, 63,149, 83,135, 62, 17, 21, 6, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62,222,152,253, 62, + 14,201,146, 62, 64, 27, 5, 63, 66, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 64, 27, 5, 63, 66, 45,128, 62,222,152,253, 62, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 17, 21, 6, 63, +169,144,151, 62,241, 84, 0, 63, 52,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 72,102,230, 62,183,199,165, 62, 70, 15,239, 62,233,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62,222,152,253, 62, + 14,201,146, 62,164,163,243, 62, 89,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62,164,163,243, 62, 89,190,166, 62,222,152,253, 62, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 70, 15,239, 62, +233,101,144, 62,232,194,249, 62,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62,241, 84, 0, 63, 52,150,169, 62, 17, 21, 6, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62,191,204, 12, 63, + 90,231,157, 62,123,175, 6, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62,123,175, 6, 63, 65, 54,174, 62,191,204, 12, 63, 90,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62, 17, 21, 6, 63, +169,144,151, 62,191,204, 12, 63,149, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62,232,194,249, 62,216, 76,120, 62, 70, 15,239, 62,233,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 75,189,221, 62, +238,101,144, 62, 72,102,230, 62, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 72,102,230, 62, 53,162,115, 62, 75,189,221, 62,238,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 70, 15,239, 62, +233,101,144, 62, 72,102,230, 62,183,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62,168, 9,211, 62,222, 76,120, 62, 80,167,218, 62,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62, 68, 37,242, 62, +194,176, 70, 62, 72,102,230, 62, 53,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 72,102,230, 62, 53,162,115, 62, 68, 37,242, 62,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62, 80,167,218, 62, +194,176, 70, 62, 72,102,230, 62,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62,191,204, 12, 63, 90,111, 52, 62,226,190, 3, 63, 90, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 68, 37,242, 62, +194,176, 70, 62,197, 16, 1, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62,197, 16, 1, 63,174,253, 30, 62, 68, 37,242, 62,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62,226,190, 3, 63, + 90, 97, 83, 62,232,194,249, 62,216, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 72,102,230, 62,168, 31, 23, 62, 80,167,218, 62,194,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62,205, 78,197, 62, + 95, 97, 83, 62, 14,171,202, 62,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 14,171,202, 62,179,253, 30, 62,205, 78,197, 62, 95, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 80,167,218, 62, +194,176, 70, 62,168, 9,211, 62,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 20, 51,179, 62,104,111,180, 61, 15, 51,179, 62,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61,189,204, 12, 63, +225, 64, 52, 61, 63,102,230, 62,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61, 63,102,230, 62,101, 41,147, 61,189,204, 12, 63,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 15, 51,179, 62, +225, 64, 52, 61,144,175,161, 62,102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61,191,204, 12, 63, 83,111,180, 61,104,154,249, 62, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61, 42, 50,211, 62, + 48, 46,231, 61, 63,102,230, 62,101, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 63,102,230, 62,101, 41,147, 61, 42, 50,211, 62, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61,104,154,249, 62, + 48, 46,231, 61, 72,102,230, 62,168, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 21, 51,179, 62,101,111, 52, 62, 19, 51,179, 62,204, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 42, 50,211, 62, + 48, 46,231, 61, 14,171,202, 62,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62, 14,171,202, 62,179,253, 30, 62, 42, 50,211, 62, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 19, 51,179, 62, +204, 70, 7, 62, 20, 51,179, 62,104,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, 72,102,230, 62,168, 31, 23, 62,104,154,249, 62, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61,191,204, 12, 63, +199, 70, 7, 62,197, 16, 1, 63,174,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62,197, 16, 1, 63,174,253, 30, 62,191,204, 12, 63,199, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62,104,154,249, 62, + 48, 46,231, 61,191,204, 12, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 21, 51,179, 62,156, 83,135, 62, 22, 51,179, 62, 2,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62,205, 78,197, 62, + 95, 97, 83, 62, 19,150,194, 62, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 19,150,194, 62, 72, 45,128, 62,205, 78,197, 62, 95, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 22, 51,179, 62, + 2,152, 97, 62, 21, 51,179, 62,101,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62,168, 9,211, 62,222, 76,120, 62,179, 51,207, 62, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62,113,162,192, 62, +174,144,151, 62, 19,150,194, 62, 72, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 19,150,194, 62, 72, 45,128, 62,113,162,192, 62,174,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62,179, 51,207, 62, + 17,201,146, 62,175, 34,204, 62, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 21, 51,179, 62,165,111,180, 62, 21, 51,179, 62, 98,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62,113,162,192, 62, +174,144,151, 62,154,109,191, 62, 68, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62,154,109,191, 62, 68, 54,174, 62,113,162,192, 62,174,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 21, 51,179, 62, + 98,231,157, 62, 21, 51,179, 62,156, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62,175, 34,204, 62, 54,150,169, 62,179, 51,207, 62, 17,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62, 75,189,221, 62, +238,101,144, 62,237, 40,217, 62, 91,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62,237, 40,217, 62, 91,190,166, 62, 75,189,221, 62,238,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62,179, 51,207, 62, + 17,201,146, 62,168, 9,211, 62,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62,188, 20, 48, 63, 37, 77,120, 62, 42,242, 54, 63,181, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 64, 63, +115,152, 97, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0, 64, 63,115,152, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 42,242, 54, 63, +181, 97, 83, 62, 0, 0, 64, 63,202,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, 0, 0, 64, 63,218, 83,135, 62, 87, 72, 57, 63,219,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62,184,255, 49, 63, + 52,201,146, 62,134, 78, 56, 63,117, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62,134, 78, 56, 63,117, 45,128, 62,184,255, 49, 63, 52,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62, 87, 72, 57, 63, +219,144,151, 62, 58,136, 51, 63, 90,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62,107,102, 38, 63,201,199,165, 62,235,186, 42, 63, 5,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62,184,255, 49, 63, + 52,201,146, 62, 26, 5, 45, 63,117,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 26, 5, 45, 63,117,190,166, 62,184,255, 49, 63, 52,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62,235,186, 42, 63, + 5,102,144, 62,188, 20, 48, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 58,136, 51, 63, 90,150,169, 62, 87, 72, 57, 63,219,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62, 0, 0, 64, 63, +162,231,157, 62,196,226, 57, 63,114, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62,196,226, 57, 63,114, 54,174, 62, 0, 0, 64, 63,162,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62, 87, 72, 57, 63, +219,144,151, 62, 0, 0, 64, 63,218, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62,188, 20, 48, 63, 37, 77,120, 62,235,186, 42, 63, 5,102,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62,234, 17, 34, 63, +243,101,144, 62,107,102, 38, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62,107,102, 38, 63, 79,162,115, 62,234, 17, 34, 63,243,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62,235,186, 42, 63, + 5,102,144, 62,107,102, 38, 63,201,199,165, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, 21,184, 28, 63,222, 76,120, 62,234,134, 32, 63,204,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62,233, 69, 44, 63, +245,176, 70, 62,107,102, 38, 63, 79,162,115, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62,107,102, 38, 63, 79,162,115, 62,233, 69, 44, 63,245,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62,234,134, 32, 63, +204,176, 70, 62,104,102, 38, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 64, 63,202,111, 52, 62, 42,242, 54, 63,181, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62,233, 69, 44, 63, +245,176, 70, 62, 9, 68, 52, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62, 9, 68, 52, 63,241,253, 30, 62,233, 69, 44, 63,245,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 42,242, 54, 63, +181, 97, 83, 62,188, 20, 48, 63, 37, 77,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62,104,102, 38, 63,198, 31, 23, 62,234,134, 32, 63,204,176, 70, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62,162,218, 21, 63, + 84, 97, 83, 62,195,136, 24, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62,195,136, 24, 63,179,253, 30, 62,162,218, 21, 63, 84, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62,234,134, 32, 63, +204,176, 70, 62, 21,184, 28, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61,191,204, 12, 63, 83,111,180, 61,189,204, 12, 63,225, 64, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 64, 63, +111, 65, 52, 61,104,102, 38, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61,104,102, 38, 63,111, 41,147, 61, 0, 0, 64, 63,111, 65, 52, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61,189,204, 12, 63, +225, 64, 52, 61,208,222,121, 63,102, 9,239,178, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, 0, 0, 64, 63,195,111,180, 61,122, 0, 48, 63,120, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 85,204, 28, 63, + 48, 46,231, 61,104,102, 38, 63,111, 41,147, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61,104,102, 38, 63,111, 41,147, 61, 85,204, 28, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61,122, 0, 48, 63, +120, 46,231, 61,104,102, 38, 63,198, 31, 23, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62,191,204, 12, 63, 90,111, 52, 62,191,204, 12, 63,199, 70, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 85,204, 28, 63, + 48, 46,231, 61,195,136, 24, 63,179,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62,195,136, 24, 63,179,253, 30, 62, 85,204, 28, 63, 48, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61,191,204, 12, 63, +199, 70, 7, 62,191,204, 12, 63, 83,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62,104,102, 38, 63,198, 31, 23, 62,122, 0, 48, 63,120, 46,231, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 0, 0, 64, 63, + 24, 71, 7, 62, 9, 68, 52, 63,241,253, 30, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62,122, 0, 48, 63, +120, 46,231, 61, 0, 0, 64, 63,195,111,180, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62,191,204, 12, 63,149, 83,135, 62,191,204, 12, 63,248,151, 97, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62,162,218, 21, 63, + 84, 97, 83, 62, 68,126, 20, 63, 64, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62, 68,126, 20, 63, 64, 45,128, 62,162,218, 21, 63, 84, 97, 83, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62,191,204, 12, 63, +248,151, 97, 62,191,204, 12, 63, 90,111, 52, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, 21,184, 28, 63,222, 76,120, 62, 25,205, 26, 63, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62,114,132, 19, 63, +169,144,151, 62, 68,126, 20, 63, 64, 45,128, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 68,126, 20, 63, 64, 45,128, 62,114,132, 19, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62, 25,205, 26, 63, + 14,201,146, 62,150, 68, 25, 63, 54,150,169, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62,191,204, 12, 63,160,111,180, 62,191,204, 12, 63, 90,231,157, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62,114,132, 19, 63, +169,144,151, 62, 7,234, 18, 63, 65, 54,174, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62, 7,234, 18, 63, 65, 54,174, 62,114,132, 19, 63,169,144,151, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62,191,204, 12, 63, + 90,231,157, 62,191,204, 12, 63,149, 83,135, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62,150, 68, 25, 63, 54,150,169, 62, 25,205, 26, 63, 14,201,146, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62,234, 17, 34, 63, +243,101,144, 62,185,199, 31, 63, 96,190,166, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62,185,199, 31, 63, 96,190,166, 62,234, 17, 34, 63,243,101,144, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62, 25,205, 26, 63, + 14,201,146, 62, 21,184, 28, 63,222, 76,120, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 80, 0, 0, 8,112, 55, 3, 0, 0, 0, 0, 53, 0, 0, 0, 0, 20, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -16351,19 +13300,24 @@ char datatoc_preview_blend[]= { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, - 24, 1, 0, 0,216,162,186, 3, 52, 0, 0, 0, 1, 0, 0, 0,160,170,186, 3,160,117,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,164,186, 3,248,169,186, 3, - 64,170,186, 3, 0, 0, 0, 0,224,165,186, 3, 16,168,186, 3, 0, 0, 0, 0,176,163,159, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88,164,186, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,166,186, 3, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,168,186, 3, 3, 0, 0, 0, - 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +152, 1, 0, 0, 88,192, 55, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 8,202, 55, 3, 0, 0, 0, 0,104,135, 53, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 46, 48, 48, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,194, 55, 3, + 0, 0, 0, 0,200,200, 55, 3, 0, 0, 0, 0, 40,201, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,196, 55, 3, + 0, 0, 0, 0,152,198, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,201, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,194, 55, 3, + 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,196, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,199, 55, 3, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52,235, 92,142,188, 0, 0,128, 63, 2, 0,128, 63,235, 92,142, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 32,164,186, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, - 68, 65, 84, 65, 84, 1, 0, 0, 88,164,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 56,194, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,136,194, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,165,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56,196, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -16372,14 +13326,14 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,224,165,186, 3, 58, 0, 0, 0, 5, 0, 0, 0, 0,116, 6, 65, -254,255,127, 63, 42,117,228, 39, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 0,116, 6, 65,254,255,127,191, 43, 59,177,167, - 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 0,116, 6,193,250,255,127,191, 39,117,228,167, 0, 0, 0, 0,255,127,255, 0, - 3, 0, 0, 0,252,115, 6,193, 1, 0,128, 63, 49, 59,177, 39, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 0,239,110, 59, -131,164, 26, 60,235, 92, 14,189,228, 12, 95, 33, 28,133,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,136,166,186, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,100, 0, 0, 0, 56,196, 55, 3, 0, 0, 0, 0, 52, 0, 0, 0, + 5, 0, 0, 0, 0,116, 6, 65,254,255,127, 63, 42,117,228, 39, 0, 0, 0, 0,255,127, 3, 0, 0,116, 6, 65,254,255,127,191, + 43, 59,177,167, 0, 0, 0, 0,255,127, 3, 0, 0,116, 6,193,250,255,127,191, 39,117,228,167, 0, 0, 0, 0,255,127, 3, 0, +252,115, 6,193, 1, 0,128, 63, 49, 59,177, 39, 0, 0, 0, 0,255,127, 3, 0, 0,239,110, 59,131,164, 26, 60,235, 92, 14,189, +228, 12, 95, 33, 28,133, 3, 0, 68, 65, 84, 65,104, 1, 0, 0,232,196, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,168,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,198, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -16387,39 +13341,44 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0, 16,168,186, 3, 55, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, - 68, 65, 84, 65, 84, 1, 0, 0,112,168,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,169,186, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,170,186, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,163,159, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,198, 55, 3, 0, 0, 0, 0, 49, 0, 0, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 24,199, 55, 3, 0, 0, 0, 0, + 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,200, 55, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,201, 55, 3, 0, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,201, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,169,186, 3, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 44, 0, 0, 0, 64,170,186, 3, 65, 0, 0, 0, - 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,176,163,159, 3, 59, 0, 0, 0, - 4, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,160,170,186, 3, - 52, 0, 0, 0, 1, 0, 0, 0,144,185,186, 3,216,162,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101, -119, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,171,186, 3, 40,182,186, 3, 16,183,186, 3, 0, 0, 0, 0, -168,173,186, 3,192,178,186, 3, 0, 0, 0, 0,208,184,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32,172,186, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,177,186, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,180,186, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128,179, 0, 0, 64, 52, 0, 0,192, 28, 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,232,171,186, 3, 0, 0, 0, 0, 1, 0, 0, 0,200, 78,181, 3, 68, 65, 84, 65, 84, 1, 0, 0, - 32,172,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,200,200, 55, 3, 0, 0, 0, 0, + 48, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, + 48, 0, 0, 0, 40,201, 55, 3, 0, 0, 0, 0, 59, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,168,201, 55, 3, 0, 0, 0, 0, 53, 0, 0, 0, 4, 0, 0, 0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0, 8,202, 55, 3, 0, 0, 0, 0, 46, 0, 0, 0, + 1, 0, 0, 0, 72,218, 55, 3, 0, 0, 0, 0, 88,192, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,173,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,203, 55, 3, 0, 0, 0, 0,104,214, 55, 3, 0, 0, 0, 0,104,215, 55, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,205, 55, 3, 0, 0, 0, 0,184,210, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,217, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,204, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,209, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,212, 55, 3, + 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52, + 0, 0,192, 28, 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 8, 0, 0, 0,232,203, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136, 7, 52, 3, 0, 0, 0, 0, 68, 65, 84, 65, +104, 1, 0, 0, 56,204, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,205, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -16427,1908 +13386,2107 @@ char datatoc_preview_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 96, 3, 0, 0,168,173,186, 3, 58, 0, 0, 0, 36, 0, 0, 0, 0, 0,128, 63,255,255,127, 63,255,255,251, 39, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0, 2,168, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 1, 0,128,191,253,255,127,191,253,255,251,167, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,250,255,127,191, - 3, 0,128, 63, 3, 0, 2, 40, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,113,250, 63, 64, 7, 3,128, 63, 79,201,113, 48, - 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,114,250, 63, 64,242,249,127,191,107,200,113, 48, 0, 0, 0, 0, 1,128,255, 0, - 2, 0, 0, 0,206,233,127, 63,245,249,127,191, 95,200,113, 48, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,206,233,127, 63, - 3, 3,128, 63, 63,201,113, 48, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,185,235, 63,192,197, 9,128, 63,138, 82,171, 51, - 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,185,235, 63,192,113,236,127,191,137, 82,171, 51, 0, 0, 0, 0, 1,128,255, 0, - 2, 0, 0, 0,232,174,127,191,110,236,127,191,137, 82,171, 51, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,236,174,127,191, -201, 9,128, 63,138, 82,171, 51, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,181,242,159,192, 32, 15,128, 63,175,196, 41, 43, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,182,242,159,192,194,225,127,191,175,196, 37, 43, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,108,229, 63,192,197,225,127,191,175,180, 37, 43, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,108,229, 63,192, - 29, 15,128, 63,175,180, 41, 43, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,112,253,159, 64,242, 18,128, 63, 85,138, 18, 51, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,112,253,159, 64, 27,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0,223,250, 63, 64, 24,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,225,250, 63, 64, -245, 18,128, 63, 85,138, 18, 51, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,178,236,223,192, 32, 14,128, 63, 81,158,216,175, - 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,178,236,223,192,192,227,127,191, 81,160,216,175, 0, 0, 0, 0,255,127,255, 0, - 2, 0, 0, 0, 89,246, 15,193,188,227,127,191, 73,160,216,175, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0, 89,246, 15,193, - 35, 14,128, 63, 73,158,216,175, 0, 0, 0, 0,255,127,255, 0, 2, 0, 0, 0,217,239,159,192,204, 8,128, 63,151,121,170, 51, - 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,217,239,159,192,104,238,127,191,150,121,170, 51, 0, 0, 0, 0, 1,128,255, 0, - 2, 0, 0, 0,217,239,223,192,108,238,127,191,150,121,170, 51, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,217,239,223,192, -200, 8,128, 63,151,121,170, 51, 0, 0, 0, 0, 1,128,255, 0, 2, 0, 0, 0,233,247,223, 64,219, 24,128, 63, 78,136,155,180, - 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0,233,247,223, 64, 76,206,127,191, 79,136,155,180, 0, 0, 0, 0,255,127,255, 0, - 3, 0, 0, 0,245,251, 15, 65, 80,206,127,191, 79,136,155,180, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0,245,251, 15, 65, -216, 24,128, 63, 78,136,155,180, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0,179,247,159, 64,233, 8,128, 63,180, 96,173,180, - 0, 0, 0, 0, 1,128,255, 0, 3, 0, 0, 0,179,247,159, 64, 42,238,127,191,181, 96,173,180, 0, 0, 0, 0, 1,128,255, 0, - 3, 0, 0, 0,178,247,223, 64, 38,238,127,191,181, 96,173,180, 0, 0, 0, 0, 1,128,255, 0, 3, 0, 0, 0,177,247,223, 64, -237, 8,128, 63,180, 96,173,180, 0, 0, 0, 0, 1,128,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 56,177,186, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,178,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +208, 2, 0, 0,232,205, 55, 3, 0, 0, 0, 0, 52, 0, 0, 0, 36, 0, 0, 0, 0, 0,128, 63,255,255,127, 63,255,255,251, 39, + 0, 0, 0, 0,254,127, 2, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0, 2,168, 0, 0, 0, 0,255,127, 2, 0, 1, 0,128,191, +253,255,127,191,253,255,251,167, 0, 0, 0, 0,255,127, 2, 0,250,255,127,191, 3, 0,128, 63, 3, 0, 2, 40, 0, 0, 0, 0, +255,127, 2, 0,113,250, 63, 64, 7, 3,128, 63, 79,201,113, 48, 0, 0, 0, 0, 1,128, 2, 0,114,250, 63, 64,242,249,127,191, +107,200,113, 48, 0, 0, 0, 0, 1,128, 2, 0,206,233,127, 63,245,249,127,191, 95,200,113, 48, 0, 0, 0, 0, 1,128, 2, 0, +206,233,127, 63, 3, 3,128, 63, 63,201,113, 48, 0, 0, 0, 0, 1,128, 2, 0,185,235, 63,192,197, 9,128, 63,138, 82,171, 51, + 0, 0, 0, 0, 1,128, 2, 0,185,235, 63,192,113,236,127,191,137, 82,171, 51, 0, 0, 0, 0, 1,128, 2, 0,232,174,127,191, +110,236,127,191,137, 82,171, 51, 0, 0, 0, 0, 1,128, 2, 0,236,174,127,191,201, 9,128, 63,138, 82,171, 51, 0, 0, 0, 0, + 1,128, 2, 0,181,242,159,192, 32, 15,128, 63,175,196, 41, 43, 0, 0, 0, 0,255,127, 2, 0,182,242,159,192,194,225,127,191, +175,196, 37, 43, 0, 0, 0, 0,255,127, 2, 0,108,229, 63,192,197,225,127,191,175,180, 37, 43, 0, 0, 0, 0,255,127, 2, 0, +108,229, 63,192, 29, 15,128, 63,175,180, 41, 43, 0, 0, 0, 0,254,127, 2, 0,112,253,159, 64,242, 18,128, 63, 85,138, 18, 51, + 0, 0, 0, 0,254,127, 2, 0,112,253,159, 64, 27,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,255,127, 2, 0,223,250, 63, 64, + 24,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,255,127, 2, 0,225,250, 63, 64,245, 18,128, 63, 85,138, 18, 51, 0, 0, 0, 0, +255,127, 2, 0,178,236,223,192, 32, 14,128, 63, 81,158,216,175, 0, 0, 0, 0,254,127, 2, 0,178,236,223,192,192,227,127,191, + 81,160,216,175, 0, 0, 0, 0,255,127, 2, 0, 89,246, 15,193,188,227,127,191, 73,160,216,175, 0, 0, 0, 0,254,127, 2, 0, + 89,246, 15,193, 35, 14,128, 63, 73,158,216,175, 0, 0, 0, 0,255,127, 2, 0,217,239,159,192,204, 8,128, 63,151,121,170, 51, + 0, 0, 0, 0, 1,128, 2, 0,217,239,159,192,104,238,127,191,150,121,170, 51, 0, 0, 0, 0, 2,128, 2, 0,217,239,223,192, +108,238,127,191,150,121,170, 51, 0, 0, 0, 0, 1,128, 2, 0,217,239,223,192,200, 8,128, 63,151,121,170, 51, 0, 0, 0, 0, + 1,128, 2, 0,233,247,223, 64,219, 24,128, 63, 78,136,155,180, 0, 0, 0, 0,255,127, 3, 0,233,247,223, 64, 76,206,127,191, + 79,136,155,180, 0, 0, 0, 0,254,127, 3, 0,245,251, 15, 65, 80,206,127,191, 79,136,155,180, 0, 0, 0, 0,255,127, 3, 0, +245,251, 15, 65,216, 24,128, 63, 78,136,155,180, 0, 0, 0, 0,254,127, 3, 0,179,247,159, 64,233, 8,128, 63,180, 96,173,180, + 0, 0, 0, 0, 1,128, 3, 0,179,247,159, 64, 42,238,127,191,181, 96,173,180, 0, 0, 0, 0, 1,128, 3, 0,178,247,223, 64, + 38,238,127,191,181, 96,173,180, 0, 0, 0, 0, 1,128, 3, 0,177,247,223, 64,237, 8,128, 63,180, 96,173,180, 0, 0, 0, 0, + 1,128, 3, 0, 68, 65, 84, 65,104, 1, 0, 0, 8,209, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,210, 55, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,176, 1, 0, 0,184,210, 55, 3, 0, 0, 0, 0, 49, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, + 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, + 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, + 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 34, 0, 20, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, + 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 35, 0, 31, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 32, 0, 0, 0, 0, 0, 35, 0, + 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,184,212, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, + 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,214, 55, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,215, 55, 3, 0, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,217, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,180, 0, 0, 0,104,214, 55, 3, 0, 0, 0, 0, 48, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, + 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 2, 32, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65,176, 1, 0, 0, +104,215, 55, 3, 0, 0, 0, 0, 59, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 68, 65, 84, 65,144, 0, 0, 0,104,217, 55, 3, 0, 0, 0, 0, 53, 0, 0, 0, 36, 0, 0, 0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0, 72,218, 55, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, +232,227, 55, 3, 0, 0, 0, 0, 8,202, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40,220, 55, 3, 0, 0, 0, 0,168,226, 55, 3, 0, 0, 0, 0, 8,227, 55, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40,222, 55, 3, 0, 0, 0, 0,120,224, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +136,227, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,220, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,224, 55, 3, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52, 0, 0,192, 28, + 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, + 40,220, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24, 16, 52, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, +120,220, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,222, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -176, 1, 0, 0,192,178,186, 3, 55, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, - 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 34, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, - 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 34, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, - 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, - 27, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, - 29, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 35, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 33, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 32, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0, - 68, 65, 84, 65, 84, 1, 0, 0,160,180,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,182,186, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,183,186, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,184,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,180, 0, 0, 0, 40,182,186, 3, 54, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, - 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 0, - 35, 0, 0, 0, 34, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65,140, 1, 0, 0, 16,183,186, 3, 65, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,208,184,186, 3, 59, 0, 0, 0, - 36, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0,144,185,186, 3, - 52, 0, 0, 0, 1, 0, 0, 0, 64,193,186, 3,160,170,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101, -119, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,186,186, 3,152,192,186, 3,224,192,186, 3, 0, 0, 0, 0, -152,188,186, 3,176,190,186, 3, 0, 0, 0, 0,136,201,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,187,186, 3, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,189,186, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,191,186, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0,128,179, 0, 0, 64, 52, 0, 0,192, 28, 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,216,186,186, 3, 0, 0, 0, 0, 1, 0, 0, 0,168, 85,181, 3, 68, 65, 84, 65, 84, 1, 0, 0, - 16,187,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,188,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, + 40,222, 55, 3, 0, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 50, 49,175, 64,255,255,127, 63, 28,159,152, 51, 0, 0, 0, 0, +255,127, 3, 0, 50, 49,175, 64, 0, 0,128,191, 33,159,152,179, 0, 0, 0, 0,255,127, 3, 0, 50, 49,175,192,252,255,127,191, + 31,159,152,179, 0, 0, 0, 0,255,127, 3, 0, 45, 49,175,192, 4, 0,128, 63, 33,159,152, 51, 0, 0, 0, 0,255,127, 3, 0, + 68, 65, 84, 65,104, 1, 0, 0,200,222, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,224, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 96, 0, 0, 0,152,188,186, 3, 58, 0, 0, 0, 4, 0, 0, 0, 50, 49,175, 64,255,255,127, 63, 28,159,152, 51, - 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 50, 49,175, 64, 0, 0,128,191, 33,159,152,179, 0, 0, 0, 0,255,127,255, 0, - 3, 0, 0, 0, 50, 49,175,192,252,255,127,191, 31,159,152,179, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 45, 49,175,192, - 4, 0,128, 63, 33,159,152, 51, 0, 0, 0, 0,255,127,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 40,189,186, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,190,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0,120,224, 55, 3, 0, 0, 0, 0, 49, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,248,224, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,226, 55, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,227, 55, 3, 0, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,227, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 0, 0, 0,176,190,186, 3, 55, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, - 68, 65, 84, 65, 84, 1, 0, 0, 16,191,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,192,186, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,192,186, 3, 6, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,201,163, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,226, 55, 3, 0, 0, 0, 0, 48, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 48, 0, 0, 0, 8,227, 55, 3, + 0, 0, 0, 0, 59, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0,136,227, 55, 3, 0, 0, 0, 0, 53, 0, 0, 0, 4, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255, 77, 69, 0, 0,152, 1, 0, 0,232,227, 55, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,218, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, + 98,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,229, 55, 3, 0, 0, 0, 0,248,236, 55, 3, 0, 0, 0, 0,184,237, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,231, 55, 3, 0, 0, 0, 0,104,234, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,239, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,230, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,232, 55, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,235, 55, 3, 0, 0, 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, + 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,200,229, 55, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,238, 51, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 24,230, 55, 3, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,231, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,192,186, 3, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 44, 0, 0, 0,224,192,186, 3, 65, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,136,201,163, 3, 59, 0, 0, 0, - 4, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 77, 69, 0, 0, 24, 1, 0, 0, 64,193,186, 3, - 52, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144,185,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,194,186, 3, 8,201,186, 3,176,201,186, 3, 0, 0, 0, 0, - 72,196,186, 3,192,198,186, 3, 0, 0, 0, 0,232,202,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,194,186, 3, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,197,186, 3, 1, 0, 0, 0, - 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,199,186, 3, 3, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 4, 0, 0, 0,136,194,186, 3, 0, 0, 0, 0, 1, 0, 0, 0,232, 71,181, 3, 68, 65, 84, 65, 84, 1, 0, 0, -192,194,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,196,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,231, 55, 3, + 0, 0, 0, 0, 52, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 3, 0, + 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 3, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, + 26,182, 26,182, 26,182, 3, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 3, 0, 4, 0,128, 63, +247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 3, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182, +230, 73, 3, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 3, 0,255,255,127,191, 0, 0,128, 63, + 0, 0,128, 63, 26,182,230, 73,230, 73, 3, 0, 68, 65, 84, 65,104, 1, 0, 0,184,232, 55, 3, 0, 0, 0, 0, 84, 1, 0, 0, + 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,234, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,192, 0, 0, 0, 72,196,186, 3, 58, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191, -230, 73,230, 73, 26,182,255, 0, 3, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255, 0, - 3, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182,255, 0, 3, 0, 0, 0,250,255,127,191, - 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255, 0, 3, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63, -230, 73,230, 73,230, 73,255, 0, 3, 0, 0, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255, 0, - 3, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73,255, 0, 3, 0, 0, 0,255,255,127,191, - 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255, 0, 3, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0, 56,197,186, 3, - 58, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,198,186, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,104,234, 55, 3, 0, 0, 0, 0, 49, 0, 0, 0, + 12, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 72,235, 55, 3, + 0, 0, 0, 0, 84, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -144, 0, 0, 0,192,198,186, 3, 55, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, - 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 68, 65, 84, 65, 84, 1, 0, 0,128,199,186, 3, 58, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,201,186, 3, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,201,186, 3, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,236, 55, 3, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,237, 55, 3, 0, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,202,186, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,239, 55, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0, 8,201,186, 3, 54, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, - 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 8, 1, 0, 0,176,201,186, 3, - 65, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,248,236, 55, 3, + 0, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, + 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 2, 68, 65, 84, 65, 32, 1, 0, 0,184,237, 55, 3, 0, 0, 0, 0, 59, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,232,202,186, 3, 59, 0, 0, 0, - 24, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 80, 65, 0, 0,244, 1, 0, 0,120,203,186, 3, 65, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 80, 83,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 2, 0, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 8, 0, 5, 0, 5, 0, 3, 0,100, 0, - 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 4, 0, 5, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 63,205,204,204, 61,205,204, 76, 63, 0, 0,128, 63, 0, 0,200, 66, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0, 40,239, 55, 3, 0, 0, 0, 0, 53, 0, 0, 0, 24, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 80, 65, 0, 0,208, 2, 0, 0,216,239, 55, 3, + 0, 0, 0, 0, 96, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 80, 83,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,242, 55, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 6, 0, 8, 0, + 5, 0, 5, 0, 3, 0,100, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 7, 0, 0,128, 63,205,204,204, 61,205,204, 76, 63, 0, 0,128, 63, 0, 0,200, 66, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 128, 41,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,240,214, 35,189, - 0, 0, 0, 0,184,155,196,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205,204, 76, 62, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,205,204, 76, 62,154,153,153, 62, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,204,208, 0, 0, 32, 77,162, 3, 0, 0, 0, 0, 1, 0, 0, 0, - 83, 68, 78, 65, 78, 65, 77, 69, 59, 10, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102, -105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105, -110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116, -121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0, -100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97, -109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, - 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105, -108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, - 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, - 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, - 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116, -121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115, -107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114, -105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112, -111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116, -115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, - 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105, -122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112, -104, 0, 42, 42,115, 99,114,105,112,116,115, 0, 42,102,108, 97,103, 0, 97, 99,116,115, 99,114,105,112,116, 0,116,111,116,115, - 99,114,105,112,116, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0, -115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, - 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99, -117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95, -112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122, -101, 0,115,101,101,107, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 97,110,103,108,101, 0, 99,108,105,112, -115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97, -119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 89, - 70, 95, 97,112,101,114,116,117,114,101, 0, 89, 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, - 0, 89, 70, 95, 98,107,104,114,111,116, 0,115, 99,114,105,112,116,108,105,110,107, 0, 42,100,111,102, 95,111, 98, 0,102,114, - 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, - 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0, -109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, - 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101, -102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101, -110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, - 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116,101,120,116, 0,108, 97,115,116,117,112,100, 97,116, -101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, - 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0, -109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0, -117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112, -112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111, -114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, - 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0,112, 97,100, 91, 50, 93, 0,114, 0,103, 0, 98, 0,107, 0, -100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,110,111,114,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,100,105,115, -112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42, -112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115, -116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, - 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99, -107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98, -101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121, -112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116, -104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98, -117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, - 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0, -109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115, -116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, - 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, - 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111, -105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111, -112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, - 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0,101,120,116,101,110,100, 0, 99,104,101, 99,107,101,114,100, -105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105, -110, 0, 42, 99,111, 98, 97, 0, 42,101,110,118, 0,117,115,101, 95,110,111,100,101,115, 0,112, 97,100, 91, 55, 93, 0,108,111, - 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, - 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, - 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112, -111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108, -111,102,102, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, - 97,115, 0,115,111,102,116, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108, -116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, - 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121, -112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122, -101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, - 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115, -117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105, -122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116, -110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104, -116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116, -109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99, -116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0, -115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108, -111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, 95,110,117,109,112,104,111,116,111,110,115, 0, 89, 70, 95,110,117, -109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101,112,116,104, 0, 89, 70, 95,117,115,101,113,109, 99, 0, 89, 70, 95, - 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108,117,114, 0, 89, 70, - 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108,111,119,105,110,116, 0, 89, 70, 95,103,108,111,119,111,102,115, 0, - 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,109, 97, -116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105, -114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0, -101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, - 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99, -121, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115, -110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95, -108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100, -101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109, -105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, - 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112, -116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115, -116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, - 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105, -122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0, -115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115, -101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97, -110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, - 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98, -115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102, -108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103, -104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101, -115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99, -111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109, -112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, - 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116, -105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121, -110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0, -115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, - 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, - 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0, 89, 70, 95, 97,114, 0, 89, - 70, 95, 97,103, 0, 89, 70, 95, 97, 98, 0, 89, 70, 95,100,115, 99, 97,108,101, 0, 89, 70, 95,100,112,119,114, 0, 89, 70, 95, -100,115,109,112, 0, 89, 70, 95,112,114,101,115,101,116, 0, 89, 70, 95,100,106,105,116, 0,103,112,117,109, 97,116,101,114,105, - 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0, -107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0, -101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0, -101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,116,111,116, 99, -111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0,118,101, - 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,114, 97,100,105,117,115, 0,104, 49, 0,104, 50, - 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116, -115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114, -100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, - 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105, -100,120, 0,107,101,114,110, 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, - 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107, -101,121, 0, 98,101,118, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120, -116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99, -116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, - 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0, -117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, - 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, - 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111, -110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, - 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117, -114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, - 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109, -115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, - 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0, -116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0, 99,117, 98,101,109, - 97,112,115,105,122,101, 0,100,114, 97,119,102,108, 97,103, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105, -118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116, -112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, - 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115, -101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99, -111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, - 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0, -109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, - 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101, -110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108, -118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, - 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, - 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0,115, -117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, - 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97, -110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, - 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102, -102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95, -116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101, -114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108, -117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97, -103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42, -116,101,120,116,117,114,101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101, -118,101,108, 0,116,101,120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121, -101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116, -111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115, -112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0, -102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0, -115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0, -102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109, -102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, - 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111, -114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108, -108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120, -111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117, -114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101, -115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,116,105,109,101, 0, 42, 98,118,104,116,114,101,101, 0, 42,100,109, 0,111, -112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105, -100,115,105,122,101, 0,110,101,101,100, 98,105,110,100, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110, -100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110, -102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100, -115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, - 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111, -116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,115,121,115, 0,112,111,115,105,116,105,111,110, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,240,214, 35,189, 0, 0, 0, 0,184,155,196,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 62, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 72, 0, 0, 0,248,242, 55, 3, 0, 0, 0, 0,120, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 60, 85, 32, 60, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49, +148,230, 0, 0, 56,212, 56, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 10, 12, 0, 0, + 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, + 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0, +103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, + 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101, +110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105, +100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, + 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,116,111,116, 0, +112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, + 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42, +111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, + 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116, +111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105, +100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, + 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101, +108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114, +111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, + 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108, +111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105, +110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, + 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109, +101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0, +115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0, +117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101, +101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108, +105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0, +115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, + 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102, +114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, + 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105, +109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108, 97, +115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0, +116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, + 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101, +100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115, +101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112, +101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, + 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, + 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, + 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100, +101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0, +119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, + 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, + 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, + 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99, +102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116, +114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101, +102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101, +114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99, +108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, + 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105, +122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, + 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97, +109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0, +115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, + 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95, +105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0, +105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, + 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111, +116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105, +122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, + 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112, +100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, + 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, + 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105, +110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110, +111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108,108,111,102,102, 95,115,112,101, +101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111,102,102, 95, 99, +117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102, +111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108, +116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, + 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,110,111,105,115,101,115, +105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, + 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0, +109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, + 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111, +117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0, +118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115, +101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115, +101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105, +110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102, +109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0, +110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101, +110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, + 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0, +116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0, +101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, + 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115, +112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, + 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105, +108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109, +112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116, +121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105, +122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95, +115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0, +115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114, +105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104, +116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103, +104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97, +116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, + 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, + 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111, +108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101, +120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, + 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111, +108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116, +105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99, +117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, + 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111, +108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110, +115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, + 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, + 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, + 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102, +115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109, +105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101, +115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97, +108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97, +114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, + 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, + 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, + 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116, +111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115, +116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122, +101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0, +115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117, +114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100, +101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0, +115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, + 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, + 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, + 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111, +108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115, +112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, + 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112, +102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108, +101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95, +114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115, +115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95, +116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, + 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,115,104, 97, +100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, + 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115, +101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120, +112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108, +101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0, +116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115, +104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104, +116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, + 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114, +100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, + 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114, +112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,101,121,105,110,100, +101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98, +106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42, +107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,116,119,105,115, +116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,116,104,108,101,110, + 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, + 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 0,115, +112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0, +102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120, +111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, + 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111, +110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105, +109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101, +108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42,109,102, 97, 99,101, 0, 42,109,116, +102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, + 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108, +101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, + 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, + 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, + 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103, +101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110, +119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98, +119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, + 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116, +111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, + 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42, +118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, + 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, + 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115, +101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101, +115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109, +111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, + 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,101,120,109, 97,112, +112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, + 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110, +103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114, +116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, + 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115, +116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105, +115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103, +108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, + 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, + 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0,112, 97, +100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, + 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, + 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97, +108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, + 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105, +103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105, +109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, + 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110, +118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101, +120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, + 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101, +115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, + 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109, +118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, + 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118, +101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110, +100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97, +103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105, +110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105, +100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, + 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110, +100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101, +114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0, 114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112, -114,111,116,101, 99,116, 0, 42,117,110,100,111, 95,118,101,114,116,115, 0,117,110,100,111, 95,118,101,114,116,115, 95,116,111, -116, 0,117,110,100,111, 95,115,105,103,110, 97,108, 0,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, - 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, - 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105, -110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111, -114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, - 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101, -117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, - 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, -101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0, -112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42, -112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, - 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 99,111,110,115,116,114, 97,105,110,116, - 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0, 42,109, 97,116, 98, -105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, - 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, - 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111, -116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97, -103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102, -108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, - 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, - 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,115,105,122,101,102, 97, 99, 0,109, 97,114, -103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, - 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, - 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 53, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117, -112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114, -115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109, -101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, - 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110, -116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101, -109, 0, 42,112,100, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70, -108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, - 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101, -116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105, -110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116, -101, 0,103,112,117,108, 97,109,112, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,100,101,102,108,101, 99, -116, 0,102,111,114, 99,101,102,105,101,108,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109, -112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, - 99,116, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,112,111,119,101,114, 0,102, 95,100,105,115,116, 0,102, 95,100, - 97,109,112, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97, -100, 0,102, 95,112,111,119,101,114, 95,114, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105, -102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111, -119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0, -102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, - 0,107,105,110,107, 95, 97,120,105,115, 0,114,116, 50, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,102,114, 97,109, -101, 0,116,111,116,112,111,105,110,116, 0, 42,120,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0, -115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97, -115,116, 95,101,120, 97, 99,116, 0,120,100, 97,116, 97, 95,116,121,112,101, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101, -118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,109,101,109, 95, 99, 97, 99,104,101, 0,108,105, -110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111, -110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, - 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, - 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, - 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, - 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105, -115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119, -101,108,100,105,110,103, 0, 42,112, 97,114,116,105, 99,108,101,115, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111, -105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,110,111,100,101,109, 97,115,115, 0,103,114, 97,118, 0,109,101,100,105, 97, -102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108, -115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, - 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115, -112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97, -108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, - 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, - 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111, -111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97, -115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97, -114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0,115,104,111,119, 95, 97, -100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101, -118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111, -100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97, -108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110, -101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, - 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0, -105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83,117, -114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, - 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100, -111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114, -116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, - 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117, -114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114, -116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, - 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, - 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110, -103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102, -111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, - 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, - 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97, -109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108, -105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, - 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115, -105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112, -104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, - 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, - 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115, -116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101, -110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, - 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, - 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, - 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, - 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,115, 97,109,112, 95,109,101, -116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95, -112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111, -108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114, -109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100, -119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, - 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118, -101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42, -112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, - 99, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105, -111, 95, 98,105,116,114, 97,116,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, - 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, - 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0, -112, 97,100, 91, 51, 93, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114, -114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0, -112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, - 97,116, 97, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0, 97,117,100,105,111, 0, 99,102,114, 97, 0,112,115,102,114, 97, - 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102, -114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, - 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97, -121, 0, 97,116,116,114,105, 98, 0,114,116, 49, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111, -110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97, -114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0, -115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, - 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, - 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, - 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116, -108, 97,121, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, - 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117, -101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95, -111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102, -108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95, -115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, - 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99,104,101, 0, 71, 73,109,101, -116,104,111,100, 0, 71, 73,112,104,111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, 70, 95, 65, 65, 0, 89, 70, -101,120,112,111,114,116,120,109,108, 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, 97,109,112,114,103, 98, 0, -121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,101,112,116,104, 0, 71, 73,112,105,120, -101,108,115,112,101,114,115, 97,109,112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,111,117,110,116, 0, 71, 73,109,105,120, -112,104,111,116,111,110,115, 0, 71, 73,112,104,111,116,111,110,114, 97,100,105,117,115, 0, 89, 70, 95,114, 97,121,100,101,112, -116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108,101,115, 0,121,102,112, 97, -100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,101,102,105,110,101,109,101,110,116, 0, - 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100,105,114,112,111,119,101,114, 0, 89, 70, 95,103, 97,109,109, 97, 0, 89, 70, - 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, 65,112,105,120,101,108,115, -105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0, -112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97, +114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112, +108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117, +112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115, +104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, + 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79, +112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97, +115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95, +111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114,101,110,100,101,114, 95,115,116, +101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, 0, 42,111, 98,106,101, 99,116, + 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100,105,117,115, 0, + 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, + 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100, +118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, + 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0, +112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, + 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, + 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111, +115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97, +110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114, +101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, + 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, + 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, + 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115, +116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111, +108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99, +107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111, +119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, + 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, + 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114, +100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, + 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109, +111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109, +112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110, +115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122, +101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, + 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105, +111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107, +115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117, +112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112, +101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105, +109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101, +100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, + 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95, +105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97,100, 51, 91, 56, + 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97, +119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101, +102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0, +107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, + 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100, +105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110, +114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101, +114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115, +116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0, +112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, + 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107, +105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0, +102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116, +121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, + 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97, +100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110, +100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, 99,111,109,112, +114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105, +110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, + 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0, +108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116, +105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116, +101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, + 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, + 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, + 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108, +108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, + 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114, +105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0, +110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, + 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110, +103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103, +111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, + 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97, +109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, + 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105, +110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, + 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0, +109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, + 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, + 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42, +101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, + 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, 91, 51, 93, 0, + 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117, +116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103, +117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0, +118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, + 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83,116, 97,114,116, + 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,103,115,116, 97,114, + 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101, +108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, + 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70, +108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121, +112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, + 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104, +105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105, +122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, + 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112, +115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, + 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, + 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, + 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, + 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111, +108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, + 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121, +116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0, +116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0, +109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, + 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0, +115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, + 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0, +100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, + 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111, +108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101, +101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, + 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97, +111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, + 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97, +111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, + 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0,115,101,108, 99, +111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111, +114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0, +100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101, +115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69, +118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, + 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100, +101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, + 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112, +111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105, +110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105, +116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, + 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, + 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117, +100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105, +116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, + 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116, +101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, + 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95, +115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111, +100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100, +101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115, +115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, + 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98, +102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116, +111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, + 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112, +108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115, +116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109, +115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,112,108, 97, +110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115, +112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110, +115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99, +114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101, +100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97, +121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, + 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, + 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0, +100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102, +105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110, +111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, + 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, +112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97, 109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97, -109,112, 91, 52, 93, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95, -115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, - 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101, -111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106, -112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0, -100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100, -111,109,101,116,101,120,116, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97, -120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0, 99,111,108, - 91, 51, 93, 0, 42, 98,114,117,115,104, 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97, -108, 95, 97,110,103,108,101, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114, -101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, - 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,100,114, 97,119, 95,116,105,109,101,100, 0,115,101,108,101, 99,116,109, -111,100,101, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 42,115,101,115,115,105,111,110, 0, -112,105,118,111,116, 91, 51, 93, 0,116,101,120,115,101,112, 0,116, 97, 98,108,101,116, 95,115,105,122,101, 0,116, 97, 98,108, -101,116, 95,115,116,114,101,110,103,116,104, 0,112, 97,100, 91, 53, 93, 0,103, 97,109,109, 97, 0,109,117,108, 0, 42,118,112, +109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112, +101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, + 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111, +119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112, +108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, + 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101, +112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97, +110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101, +120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115, +117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114, +111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0, +109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 0,100,111,109,101, 0,115,116,101, +114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, 42, 98, +114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, + 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97, +110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99, +117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, + 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115, +101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100, +101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,114, 97,100,105, + 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110, +103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, + 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110, +105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101, +115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42, -119,112, 97,105,110,116, 0, 42,115, 99,117,108,112,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114, -110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, - 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110, -111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110, -103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100, -105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105, -110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0, -117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100, -101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, - 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0, -115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107, -101,121, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, - 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112, -111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115, -107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95, -105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97, -108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116, -104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, - 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, - 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103, -104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0, -115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115, -107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, - 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111, -110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116, -101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, - 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95, -110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107, -103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114, -105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95, -109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97, -114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,116,111,116,111, - 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111, -116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111,114,108,100, - 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111, -114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, - 0, 42,101,100, 0,102,114, 97,109,105,110,103, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116, -115, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115, -118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101, 0,102,114, 97,109,101, 95,115, -116,101,112, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0, - 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, - 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114, -115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, - 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, - 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122, -111,111,109, 0,118,105,101,119, 98,117,116, 0,108, 97,115,116,109,111,100,101, 0,114,102,108, 97,103, 0,118,105,101,119,108, -111, 99,107, 0,112,101,114,115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, - 98, 0, 42,103,112,100, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,116,111,112,111, 95,118,105,101,119, - 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, - 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,114,101,103,105,111, -110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107, -104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 42, - 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97,121, 97, 99,116, 0, -100,114, 97,119,116,121,112,101, 0,108,111, 99, 97,108,118,105,101,119, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111, -117,110,100, 0,102,108, 97,103, 50, 0,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118,105, -101,119, 0,112, 97,100,102, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,102, -108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, 97, -103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102,108, - 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98,117, -102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112, -101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, - 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108, -108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101, -112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100, -119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0, -103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0,112,105,110, 0,108,111, 99,107, 0, 99,117, -114,115,101,110,115, 0, 99,117,114, 97, 99,116, 0,112,114,101,118,105,101,119, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98, -111, 0, 42,108,111, 99,107,112,111,105,110, 0,116,101,120,110,114, 0,116,101,120,102,114,111,109, 0,115,104,111,119,103,114, -111,117,112, 0,109,111,100,101,108,116,121,112,101, 0,115, 99,114,105,112,116, 98,108,111, 99,107, 0,114,101, 95, 97,108,105, -103,110, 0,111,108,100,107,101,121,112,114,101,115,115, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, - 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, - 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, - 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114, -107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0,109,101,110,117, - 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108, -101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42, -111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,116,114,101,101, - 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, - 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105,110, -101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114,116, -105,108,101, 0,105,109,116,121,112,101,110,114, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115, -116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101, -119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111, -116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111, -119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95, -112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, - 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99, -101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, - 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95, -103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, - 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, - 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110, -116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,110,117,109,116,105, -108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107, -114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111, -108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117, -114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, - 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, - 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112, -116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, - 91, 56, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95, -105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, - 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108, -112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112, -108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111, -111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, - 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, - 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110, -101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110, -101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, - 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, - 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105, -110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110, -110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105, -110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0, -119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, - 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0, -119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117, -108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95, -105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,115, -116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, - 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116, -105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101, -120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, - 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, - 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116, -101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0, -112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110, -101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, - 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, - 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, - 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101, -114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, - 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103, -101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, 97, 99,101, 91, - 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,110,111, -114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, - 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97, -109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101, -108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, - 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, - 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118, -105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, - 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, - 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97, -110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108, -101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 51, - 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0, -116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116, -105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111, -100,101, 0,116,108,111,103,105, 99, 0,116, 97,114,109, 91, 50, 48, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, - 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, - 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, - 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, - 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0, -121,102,101,120,112,111,114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101,114,115,105,111,110,115, 0,103, 97,109,101,102,108, - 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, - 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, - 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101, -115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102, -111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111, -114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110, -100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101, -102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116, -119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0, -116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116, -101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109, -105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114, -116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105, -115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111, -116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100, -111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, 95,110,101,119, 0,118,101,114,115,101, -109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112, -104, 97, 99,108,105,112, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0, -118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, - 99,101,110,101, 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101, -115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, - 99,117,114,115,111,114, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, - 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, - 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109, -101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111, -102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117, -110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101, -114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114, -111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, - 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116, -121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110, -101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116, -121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104, -101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0, -115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, - 98,118,101,114,115,105,111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105, -108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42, -105, 98,117,102, 95, 99,111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116, -111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, - 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0, -100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, - 97,116, 97, 0,111,114,120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111, -108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, - 97,116, 97, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116, -105,108,108, 0, 42,105, 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116, -105,108,108, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114, -114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0, -101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, - 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,102, 97, - 99,102, 48, 0,102, 97, 99,102, 49, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, - 97,115,101, 0, 42,115,111,117,110,100, 0, 42,104,100, 97,117,100,105,111, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99, -101,110,101,110,114, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, - 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108, -101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115, -101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105, -109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101, -100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0, -102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, - 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70, -105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, - 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0, 42,102,114, - 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109, -101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111, -114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108, -105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102, -118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0, -109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, - 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0, -118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117, -112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115, -101,100,101,108,101,109, 0,111,116,121,112,101, 0,111,108,100, 0, 42,112,111,105,110, 0, 42,111,108,100,112,111,105,110, 0, -114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113, -117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, - 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0, -100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105, -109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105, -115,102,108, 97,103, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111, -100,121, 91, 51, 50, 93, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110, -107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115, -102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, - 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111, -116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, - 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111, -114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101, -108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0,109, 97,107,101, 99,111,112,121, 0, 99,111, -112,121,109, 97,100,101, 0,112, 97,100, 50, 91, 49, 93, 0,116,114, 97, 99,107, 0, 42,109,101, 0,108,105,110, 86,101,108,111, - 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, - 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101, -114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114, -118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0, 98,117,116,115,116, 97, 0, 98,117, -116,101,110,100, 0,109,105,110, 0,109, 97,120, 0,118,105,115,105,102, 97, 99, 0,114,111,116,100, 97,109,112, 0,109,105,110, -108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111, -116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110, -116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108, -111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, - 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105, -110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0,103,111, 0, 97, 99, - 99,101,108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, - 0,109, 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, - 0, 42,115, 97,109,112,108,101, 0, 42,115,116,114,101, 97,109, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, - 42,115,110,100, 95,115,111,117,110,100, 0,112, 97,110,110,105,110,103, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,112, -105,116, 99,104, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,100,105,115,116, 97,110, 99,101, 0, -115,116,114,101, 97,109,108,101,110, 0, 99,104, 97,110,110,101,108,115, 0,104,105,103,104,112,114,105,111, 0,112, 97,100, 91, - 49, 48, 93, 0,103, 97,105,110, 0,100,111,112,112,108,101,114,102, 97, 99,116,111,114, 0,100,111,112,112,108,101,114,118,101, -108,111, 99,105,116,121, 0,110,117,109,115,111,117,110,100,115, 98,108,101,110,100,101,114, 0,110,117,109,115,111,117,110,100, -115,103, 97,109,101,101,110,103,105,110,101, 0, 42, 97,114,101, 97, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, - 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104, -101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114, -109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, - 91, 52, 93, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97, +119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0, +101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117, +114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122, +101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, + 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97, +108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, + 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102, +108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, + 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105, +109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105, +122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117, +116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109, +111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101, +108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114, +101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0, +115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116, +104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, + 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110, +103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105, +116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, + 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101, +116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100, +105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103, +101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0, +115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116, +105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101, +116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107, +103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, + 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108, +108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, + 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108, +105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115, +110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100, +101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0, 97,117,116,111, 95,110,111,114,109, + 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108, +112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105, +110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99, +117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,116,111,116,111, 98,106, 0, +116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101, +115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116, +101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0,113,117, +105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, + 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, + 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, 97,121, + 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 42, +101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, + 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117, +110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110, +100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, + 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110, +103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95, +115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, + 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114, +115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, +111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100, +121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,116,119,100,114, 97,119,102,108, 97,103, 0,105,115, 95, +112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, + 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42, +108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, + 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, + 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105,111,110, + 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, + 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103, +112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, + 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110, +101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115, +101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102, +108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, + 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, + 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0, +110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95, +115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, + 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108, +108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108, +105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, + 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97, +115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, + 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101, +114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101, +120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100, +101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116, +108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102, +105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 93, 0,102,105,108,116,101,114, 95,103,108, +111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, + 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, + 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42, +102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42, +115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110, +116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114, +101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, + 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, + 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, + 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116, +105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99, +107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105, +110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114, +115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, + 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116, +101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111, +108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110, +100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, + 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95, +101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, + 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99, +114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99, +114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99, +104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99, +117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0, +116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,116,105,116,108,101, 91, 50, 52, 93, 0,109,101,110,117, 0, +110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,115,101,108,115,116, 97,116,101, 0,118,105,101, +119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114, +111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, 97, 99,116,105, +118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110, +102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42, +114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42, +109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117, +114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, + 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101, +110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97,114,101, 97, 0, 42,115,111,117,110,100, 0,115,110,100,110,114, + 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0, +114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108, +100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, + 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98, +101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0, +109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108, +117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, + 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115, +112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, + 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0, +116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101, +116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, + 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95, +107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114, +105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, + 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111, +108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0, +119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110, +117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, + 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111, +108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0, +119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0, +116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, + 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97, +100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95, +116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116, +101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0, +108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110, +101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, + 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, + 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, + 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114, +111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, + 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101, +100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, + 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, + 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108, +101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101, +110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, + 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101, +114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110, +101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, + 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95, +118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95, +117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115, +101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108, +101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, + 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100, +108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, + 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, + 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116, +112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, +105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, + 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119, +105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 0,115,121,110,116, 97,120,108, 91, 52, + 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, + 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0, +115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103, +105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116, +109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0, +104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118, +101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, + 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, + 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0, +116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110, +111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97, +114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, + 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109, +112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, + 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, + 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, + 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 50, 52, + 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95, +112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, + 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, + 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0, +108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117, +102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105, +111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105, +110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117, +116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108, +101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, + 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97, +116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97, +115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95, +114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116, +119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120, +116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116, +104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0, +112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, + 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122, +101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95, +118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111,102, 95, +114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112, +101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116, +102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115, +111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0, +118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95, +114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, + 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0,118, +101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99, +101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, + 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116, +117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95, +100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, + 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110, +101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, + 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115, +120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116, +105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, + 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108, +108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103, +114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, + 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115, +112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105, +110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97, +108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107, +115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0, +115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101, +114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,115, + 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108, +102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, + 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0, +114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, + 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108, +108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97, +110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95, +112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, + 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, + 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115, +105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, + 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42, +115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115, 99,101,110,101, 95, +115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, + 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95, +115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, + 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, + 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, + 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, + 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118, +101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101, +116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, + 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, + 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105, +110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112, +111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0, +103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121, +112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, + 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, + 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0, +109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0, +116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116, +105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111, +117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, + 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108, +101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107, +101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103, +103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, + 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, + 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109, +101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99, +111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99, +116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0, +116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120, +105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0, +112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, + 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, + 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112, +114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114, +105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101, +114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108, +111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, + 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,112, 97,100, + 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108, +105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, + 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, + 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97, +110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, + 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, + 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, + 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, + 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97, +116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, + 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97, +109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114, +103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111, +110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100, +108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, + 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97, +105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, + 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114, +111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97, 100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97, -115,101, 0, 42,101,100, 98,111, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, - 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104, -111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, - 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,114,111,112, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, - 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104, -105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, 95,113,117, - 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0,114,111,116, -109,111,100,101, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, - 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109, -105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, - 93, 0,105,107,115,116,114,101,116, 99,104, 0, 42, 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111, -120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, - 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0, - 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118, -101, 95,109, 97,114,107,101,114, 0, 42,115,111,117,114, 99,101, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, - 97, 99,116,110,114, 0, 97, 99,116,119,105,100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101, -109,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110, -102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0, 42,116, 97,114, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, - 93, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,116, 97,114,110,117,109, 0,116, 97,114,103, -101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, - 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0, -112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101, -116, 91, 51, 93, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102, -108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108, -111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98, -117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0, -109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0, -105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, - 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, - 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, - 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105, -115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, - 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, - 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112, -117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, - 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0, -105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, - 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110, -107, 0, 42,110,101,119, 95,110,111,100,101, 0,117,115,101,114,110, 97,109,101, 91, 51, 50, 93, 0,108, 97,115,116,121, 0,111, -117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, - 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101, -120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112, -114,118,114, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, - 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104, -114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100, -101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105,110, 0, 42,115,101,108, -111,117,116, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, - 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,116, 99,104, 0, 42,115, -100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105,110,115,112,101,101,100, - 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0, 99,117,114,118,101,100, 0, -105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99, -101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,105,116,101,114, 0,119,114, 97,112, 0, -115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, 97,116, 0, -116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, - 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0, -114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, - 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111, -102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, - 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97, -120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114, -118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, 0, 99,108,105,112, -114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, - 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,105,110,110, -101,114,114, 97,100,105,117,115, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,114,111,116, 0,115, 99,117,108,112,116, 95, -116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116, -105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121, -101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,101,100,105,116,102,108, 97,103, 0,118,101,108, 91, 51, 93, - 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0, -119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114, 97,110,100, 91, 51, 93, 0, 42,115,116,105, - 99,107, 95,111, 98, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0,105, 95,114,111,116, 91, 52, 93, 0, -114, 95,114,111,116, 91, 52, 93, 0,114, 95, 97,118,101, 91, 51, 93, 0,114, 95,118,101, 91, 51, 93, 0,100,105,101,116,105,109, -101, 0, 98, 97,110,107, 0,115,105,122,101,109,117,108, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 98,112,105, 0, 97, -108,105,118,101, 0,108,111,111,112, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, - 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105, -122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,116, 50, 91, 51, 93, 0,100,114, 97,119, 95, -115,116,101,112, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101, -112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0, -105,110,116,101,103,114, 97,116,111,114, 0,110, 98,101,116,119,101,101,110, 0, 98,111,105,100,110,101,105,103,104, 98,111,117, -114,115, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, - 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95, -116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0, -115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115, -105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119, -112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103, -114,105,100, 95,114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0, -114,101, 97, 99,116,102, 97, 99, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116, -102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0,114,101, 97, 99,116,115, -104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,100, 97,109, -112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104, -105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, - 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112, -102, 97, 99, 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0, -114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0, -114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116, -104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97, -119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, - 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,109, 97,120, 95,108, 97,116, 95, 97, 99, - 99, 0,109, 97,120, 95,116, 97,110, 95, 97, 99, 99, 0, 97,118,101,114, 97,103,101, 95,118,101,108, 0, 98, 97,110,107,105,110, -103, 0,109, 97,120, 95, 98, 97,110,107, 0,103,114,111,117,110,100,122, 0, 98,111,105,100,102, 97, 99, 91, 56, 93, 0, 98,111, -105,100,114,117,108,101, 91, 56, 93, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, - 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, - 41, 40, 41, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116, -104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42,116, 97,114,103,101, -116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,101,102,102,101, 99,116,111,114,115, 0,114,101, 97, 99,116,101,118,101, -110,116,115, 0,107,101,121,101,100, 95,116, 97,114,103,101,116,115, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, - 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116, -111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, - 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114, -100, 97,116, 97, 0, 42, 99, 97, 99,104,101, 0, 67,100,105,115, 0, 67,118,105, 0, 91, 51, 93, 0,115,116,114,117, 99,116,117, -114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0, -109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97, -108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108, -101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101, -114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103, -114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114, -117, 99,116, 0,112,114,101,115,101,116,115, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105, -108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101, +115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42, +115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101, +100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97, +116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97, +116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, + 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95, +101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0, +103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0, +112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107, +101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97, +116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97, +103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, + 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95, +109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, + 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108, +105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99, +104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 99,104, 97,110, 98, 97, +115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95, +111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117, +112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, + 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109, +105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108, +118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112, +101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, + 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111, +117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102, +105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109, +101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0, +104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97, +114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97, +114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, + 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97, +114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0, +103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, + 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, + 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102, +108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103, +108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, + 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0, +101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, + 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, + 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105, +110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, + 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114, +116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, + 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, + 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, + 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105, +109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95, +105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112, +115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0, +121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115, +116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99,117,115,116,111, +109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95, +101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0, +112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, + 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0, +108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115, +116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 40, 42,112,114, +111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, + 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0, +109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, + 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, + 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105, +103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0, +115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,116, 49, 0,116, + 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103, +111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, + 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, + 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, + 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111, +100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108, +100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, + 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, + 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105, +108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, + 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, + 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101, +115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, + 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, + 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, + 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, + 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108, +105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102, +114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101, +105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105, +103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, + 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99, +111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, + 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, + 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101, +114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116, +114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112, +108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101, +114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0,112, + 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95, +112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95, +115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, + 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0, +115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111, +110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0, +109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, + 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, + 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100, +101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, + 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, + 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, + 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116, +105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116, +105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99, +111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102, +110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115, +105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100, +115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0, +114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122, +101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97, +119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116, +101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, + 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, + 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, + 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98, 95,115,105, +122,101, 91, 50, 93, 0, 98, 98, 95,118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108, 0, 99,111, +108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109, +112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115, +105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, + 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,103,114,105,100, 95,114,101,115, 0,101,102, +102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110, +112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0, +112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, + 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, + 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, + 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100, +115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, + 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, + 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0, +114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, + 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0,112, 97,114, +116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, + 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95, +115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, + 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42, +100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99, +108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116, +104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, + 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, + 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0, 98,118,104,116,114,101,101, 95, +102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,110,101,120,105,115,116, 0,116,111,116, 99, +104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114, +103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117, +118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114, +116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,102,108,117,105,100, + 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 97,108,108,111, 99, 95, +102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67, +100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98, +101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114, +105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108, +101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101, +108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0, +115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108, +101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117, +112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,121, 95,114,101, +115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, + 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108, +111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101,108, 0,115,101, 108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114, -101, 0, 42,112,111,105,110,116,115, 0,116,111,116,112,111,105,110,116,115, 0,116,104,105, 99,107,110,101,115,115, 0,115,116, -114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105, -110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102, -108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116,114, 0, 42,109,101,115,115, 97,103,101, 0,108, -105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,119,105,110,100,114, - 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97, -108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, - 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,107,101,121,109, 97, -112,115, 0, 42,103,104,111,115,116,119,105,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97, -109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110, -105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118, -101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116, -104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,116,105,109,101,114,115, 0,115,117, - 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0, 42,112,116,114, - 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101, -114, 0,107,101,121,109, 97,112, 0,110, 97,109,101,105,100, 91, 54, 52, 93, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105, -111,110,105,100, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,114,101,112,111,114,116,115, 0,109,118, 97,108, 91, 50, - 93, 0,112,114,101,118,120, 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, 99,105,105, 0, 42,107,101,121, -109, 97,112, 95,105,100,110, 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109,100, 97,116, 97,102,114,101,101, - 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, - 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112, -104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108, -117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116, -101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108, -101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95, -112, 97,116,104, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, - 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, - 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105, -112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101, -110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,105,100,116,121, -112,101, 0,116,101,109,112,108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, 97,116,104,115, 0,107,101,121, -105,110,103,102,108, 97,103, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115, -116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 0, 84, 89, 80, 69,161, 1, 0, 0, +101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99, +116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115, +105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108,105,115,116, 0, +112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114,116,116,105,109, +101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111, +119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100, +111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0, +106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105, +103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101, +116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101, +101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115, +120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99, +117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42, +101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109, +101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97, +110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, + 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115, +107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101, +109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108, +108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, + 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99, +101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102, +108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112, +111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112, +108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109, +105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102, +111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97, +115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, + 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,116, +121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, + 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0, +118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,111, +100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97, +112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114, +105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111, +117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104, +115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, + 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0, +111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101, +110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110, +115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, + 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101, +101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, + 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, + 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97, +110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115, +105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, + 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115, +111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95, +109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, + 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, + 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117, +112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115, +104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101, +103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, + 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101, +114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, + 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111, +109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98, +111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116, +105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, + 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117, +112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108, +100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 0, 84, 89, 80, 69,205, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105, -110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0,118,101, 99, 50, -102, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, 99, 52,105, 0, -118,101, 99, 52,102, 0,118,101, 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, - 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, - 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99, -116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, - 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 83, 99,114,105,112,116, 76,105,110,107, - 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, - 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103, -101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, - 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97, -110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112, -112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 77, 97,116,101, -114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69, -108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73, -110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100, -105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, - 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, - 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, - 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111, -114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67, -111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, - 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105, -115,112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, - 69, 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, - 78, 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, - 32, 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, - 60, 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100, -101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, - 80, 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, - 49, 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, - 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101, -102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 86, 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, - 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 68, 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, - 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, - 82, 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, - 32, 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, - 50, 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, - 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, - 84, 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, - 52, 32, 49, 50, 56, 32, 35,101,110,100,105,102, 32,117,108,116,105,114,101,115, 76,101,118,101,108, 59, 13, 10, 13, 10,116,121, -112,101,100,101,102, 32,115,116,114,117, 99,116, 32, 77,117,108,116,105,114,101,115, 32,123, 13, 10, 9, 76,105,115,116, 66, 97, -115,101, 32,108,101,118,101,108,115, 59, 13, 10, 9, 77, 86,101,114,116, 32, 42,118,101,114,116,115, 59, 13, 10, 13, 10, 9,117, -110,115,105,103,110,101,100, 32, 99,104, 97,114, 32,108,101,118,101,108, 95, 99,111,117,110,116, 44, 32, 99,117,114,114,101,110, -116, 44, 32,110,101,119,108,118,108, 44, 32,101,100,103,101,108,118,108, 44, 32,112,105,110,108,118,108, 44, 32,114,101,110,100, -101,114,108,118,108, 59, 13, 10, 9,117,110,115,105,103,110,101,100, 32, 99,104, 97,114, 32,117,115,101, 95, 99,111,108, 44, 32, -102,108, 97,103, 59, 13, 10, 13, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101,118,101,108, 32, 49, 32,100, 97,116, - 97, 32,116,104, 97,116, 32, 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105,101,100, 32,102,114,111,109, 32,111, -116,104,101,114, 32,108,101,118,101,108,115, 32, 42, 47, 13, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,118,100, 97,116, - 97, 59, 13, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 13, 10, 9,115,104,111,114,116, 32, 42, -101,100,103,101, 95,102,108, 97,103,115, 59, 13, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, - 59, 13, 10,125, 32, 77,117,108,116,105,114,101,115, 59, 13, 10, 13, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116,105,114, -101,115, 32, 42, 42, 47, 13, 10, 13, 10,116,121,112,101,100,101,102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, - 86,105,115,105, 98,105,108,105,116,121, 32,123, 13, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114, -116, 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78, -101,119, 32, 73,110,100,101,120, 32, 42, 47, 13, 10, 9,105,110,116, 32, 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32, -101,100,103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, - 45, 49, 61, 32,104,105,100,100,101,110, 32, 42, 47, 13, 10, 9, 77, 70, 97, 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, - 59, 13, 10, 9, 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, 59, 13, 10, 9,117,110,115,105,103,110,101,100, - 32,105,110,116, 32,116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, 44, 32,116,111,116,118,101,114,116, 44, 32, -112, 97,100, 59, 13, 10,125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 59, 13, 10, 13, 10, 47, 42, - 32,109,118,101,114,116, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, 42, 47, 13, 10, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, 9, 52, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, 68, 69, 9, 9, 9, - 49, 54, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, 40, 49, 60, 60, - 54, 41, 13, 10, 13, 10, 47, 42, 32,109,101,100,103,101, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 42, - 47, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, 13, - 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 13, 10, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, 60, 60, 51, 41, 13, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32, -114,101,115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, 72, 73, 68, 69, 32, 42, 47, 13, 10, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, 49, 60, 60, 53, 41, 13, 10, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, 55, 41, 13, 10, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 83, 72, 65, 82, 80, 9, 9, 9, 40, 49, 60, 60, 57, 41, 13, 10, 13, 10, 47, 42, 32,112,117,110,111, 32, 61, 32,118,101,114, -116,101,120,110,111,114,109, 97,108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 13, 10, 47, 42, 32,114,101,110,100,101,114, 32, - 97,115,115,117,109,101,115, 32,102,108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114,101,100, 32,108,105,107,101, - 32,116,104,105,115, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 9, 9, 49, 13, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 9, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 9, 9, 56, - 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 9, 9, 49, 54, 13, 10, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, - 90, 9, 9, 54, 52, 13, 10, 13, 10, 47, 42, 32,101,100, 99,111,100,101, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 13, 10, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, - 50, 86, 51, 9, 9, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 9, 9, 9, 52, 13, 10, 35,100, -101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, - 86, 49, 9, 9, 9, 56, 13, 10, 13, 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 13, 10, 35,100, -101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 9, 9, 9, 49, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, 50, 13, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, 77, 69, 95, 72, - 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117,115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, 13, 10, 47, 42, - 32,109,115,101,108,101, 99,116, 45, 62,116,121,112,101, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, - 69,108, 9, 48, 13, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 13, 10, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 13, 10, 13, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, - 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, - 99,101, 32,104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108, -100, 32, 98,101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, - 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97, -116,101,100, 33, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 9, 9, 52, 13, 10, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 9, 9, 56, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, - 9, 9, 49, 54, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, 50, 13, 10, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 72, 73, 68, 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, 32,115, 97,109,101, 32, 97, -115, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 42, 47, 13, 10, 13, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,109,111,100, -101, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 13, 10, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 84, 69, 88, 9, 9, 9, 52, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, 56, - 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 9, 9, 49, 54, 13, 10, 13, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, - 76, 69, 83, 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 32, 42, 47, 13, 10, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 84, 87, 79, 83, 73, 68, 69, 9, 9, 53, 49, 50, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, - 66, 76, 69, 9, 49, 48, 50, 52, 13, 10, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 9, 9, 50, 48, - 52, 56, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 9, 52, 48, 57, 54, 9, 47, - 42, 32,119,105,116,104, 32, 90, 32, 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, 42, 47, 13, 10, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, 51, 56, 52, 13, 10, 13, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,116,114, 97, -110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102,108, 97,103, -115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, 99, 97,110, -116, 32,119,111,114,107, 32,119,105,116,104, 32,116,104,105,115, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 83, 79, 76, 73, 68, 9, 48, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 13, 10, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, - 9, 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112,104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, - 32, 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, 42, 47, 13, 10, 13, 10, 47, 42, 32,115,117, 98, 32,105,115, - 32,110,111,116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116,104,101, 32,117,115,101,114, 32,105,110,116,101,114, -102, 97, 99,101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, - 9, 51, 13, 10, 13, 10, 13, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, 97,112, 32, 42, 47, 13, 10, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 13, 10, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 9, 50, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, - 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, - 68, 52, 9, 56, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, 54, 13, 10, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 9, 9, 32, 32, 32, 32, 51, 50, 13, 10, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, 52, 13, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, - 9, 32, 32, 32, 32, 9, 49, 50, 56, 13, 10, 13, 10, 35,101,110,100,105,102, 13, 10, 35, 79, 67, 75, 33,110,101, 32, 67,249, 0, - 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116, -105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101, -118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111, -100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115, -107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105, -102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111, -116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116, -116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99, -104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, - 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, - 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, - 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101, -109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114, -116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100, -101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, - 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, - 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 66,117,108,108, -101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, - 79, 98, 72,111,111,107, 0, 82, 78, 71, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 83, 66, 86,101,114,116,101,120, 0, 66, -111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87,111, -114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67, -111,100,101, 99, 68, 97,116, 97, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97, -116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82, -101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 84,105,109,101, 77, 97,114, -107,101,114, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 66,114,117,115,104, 0, 80, 97,114, -116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105, -110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, - 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103, -115, 0, 98, 83,116, 97,116,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70, -111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 98, 71, 80,100, 97,116, 97, - 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68, -101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105, -101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, - 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99, -101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, - 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105, -108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101, -101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83, -112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99, -101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, - 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, -117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100, -103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104, -101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, - 98, 84,104,101,109,101, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, 99,114, 86,101,114, -116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111, -117,116, 0, 72,101, 97,100,101,114, 0, 72,101, 97,100,101,114, 84,121,112,101, 0, 77,101,110,117, 0, 77,101,110,117, 84,121, -112,101, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101, -103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 84, 83, -116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114, -109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83, -116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0,104, -100, 97,117,100,105,111, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97, -114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, - 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, - 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101, -114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111, -117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101, -114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, - 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101, -110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 77, -101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, - 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, - 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99, -116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117,110,100, - 65, 99,116,117, 97,116,111,114, 0, 98, 67, 68, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, - 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116, -121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99, -116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105, -110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111, -109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, - 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119, -111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, - 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, 97, 0, 98, 83, 97,109,112, -108,101, 0, 98, 83,111,117,110,100, 76,105,115,116,101,110,101,114, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111, -117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 80,111,115,101, 67,104, 97, -110,110,101,108, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, - 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, - 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80, -121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, - 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76, -105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97, -105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67, -111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, -107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103, -105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111, -110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, -110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, - 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105, -109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105, -110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, - 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, - 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111, -100,101, 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105, -109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100, -101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111, -100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89, -115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100, -101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112, -116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, - 76,101,110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80, -111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, - 97,116, 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 67,104,105, -108,100, 80, 97,114,116,105, 99,108,101, 0, 75,101,121,101,100, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, - 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 80, 97,114, -116,105, 99,108,101, 69,100,105,116, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 76,105,110,107, 78, -111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, - 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0, -119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 69,118,101,110,116, - 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121,109, 97,112, 73, -116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116, -111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, - 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108, -111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101, -115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78, -111,105,115,101, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, - 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97, -112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75, -101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, - 97,116,101, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, - 8, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 20, 0, 76, 0, 52, 0, - 40, 2, 0, 0, 32, 0,140, 0, 92, 3, 92, 0, 36, 0, 56, 0, 84, 0,112, 0,124, 0, 48, 0, 16, 0, 24, 0, 40, 0,120, 0, - 12, 0,136, 0, 36, 0,220, 4,128, 1, 0, 0, 0, 0, 0, 0,136, 0, 24, 1, 84, 1, 24, 0, 8, 3,168, 0, 0, 0,140, 0, -132, 0,132, 1, 8, 1, 56, 0,112, 2, 76, 0, 60, 1, 0, 0,108, 0,104, 0,140, 0, 56, 0, 8, 0, 16, 0, 76, 1, 0, 0, - 0, 0, 0, 0, 24, 1, 20, 0, 44, 0, 60, 0, 24, 0, 12, 0, 12, 0, 4, 0, 8, 0, 8, 0, 0, 0, 24, 0, 76, 0, 32, 0, - 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 12, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 40, 0, 56, 0, - 72, 0, 92, 0,100, 0, 72, 0,100, 0,120, 0, 68, 0, 64, 0,112, 0, 64, 0,152, 0,156, 0, 64, 0, 96, 0,108, 0,188, 0, -104, 0,184, 0, 56, 0, 76, 0, 0, 0,132, 0, 28, 0,232, 0,104, 0, 0, 0, 64, 0, 0, 0, 0, 0, 68, 0, 8, 0, 8, 0, -220, 0, 80, 0, 76, 1, 76, 0, 68, 0, 68, 0, 64, 0,164, 1,112, 0,108, 0,188, 0, 40, 0, 92, 0, 56, 0,120, 0,128, 0, -152, 0,208, 0, 0, 0, 24, 0, 16, 0, 0, 0, 0, 0, 0, 0,112, 1, 28, 0,176, 0,144, 0, 52, 0, 16, 0, 72, 0,224, 3, - 56, 0, 16, 0, 80, 0, 16, 0,196, 0, 8, 0, 84, 0, 80, 0, 32, 0, 0, 0, 32, 0, 36, 1, 32, 0, 24, 2, 0, 0, 0, 0, - 56, 0,216, 2, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 40, 0,136, 0, 48, 0,140, 0,196, 0, 20, 0,232, 0, -204, 0,124, 1, 52, 0, 0, 0, 92, 0, 0, 0,248, 0, 12, 0, 12, 0,136, 0,188, 0,124, 2, 80, 2, 40, 0,168, 0,232, 0, - 52, 0,136, 2, 28, 0, 80, 0, 16, 1, 32, 0,224, 0, 32, 0, 32, 0, 48, 2, 16, 1, 16, 0,152, 20, 56, 0, 40, 11, 20, 0, - 24, 0, 56, 1, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0,112, 0, 0, 0,236, 0, 0, 0, 32, 0, 80, 0, 28, 0, 16, 0, - 8, 0, 52, 0,252, 0,240, 0,168, 1,196, 0, 28, 1, 0, 0, 16, 0, 12, 0, 24, 0, 48, 0, 16, 0, 20, 0, 16, 0, 24, 0, - 56, 1, 0, 0, 56, 0, 64, 0, 48, 0, 8, 0, 44, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 68, 0, - 76, 0, 80, 0, 60, 0,128, 0, 76, 0, 60, 0, 12, 0, 92, 0, 28, 0, 20, 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, - 96, 0, 60, 0, 56, 0,108, 0,140, 0, 4, 0, 20, 0, 12, 0, 8, 0, 40, 0, 0, 0, 68, 0,184, 0, 24, 0, 4, 1,120, 0, -172, 1,104, 0,216, 0, 64, 0, 44, 0, 64, 0,116, 0, 60, 0,104, 0, 52, 0, 44, 0, 44, 0, 68, 0, 44, 0, 64, 0, 44, 0, - 20, 0, 52, 0, 96, 0, 12, 0,108, 0, 92, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, 36, 0,120, 0, 32, 0, -208, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 8, 0, - 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0, 24, 0, 56, 0, 72, 0, 28, 0,252, 0,244, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 20, 0, 24, 0,172, 0, 24, 0, 24, 0,140, 0,148, 0, 56, 0, 0, 0, 0, 0, 92, 0, 0, 0, 88, 0, 0, 0, - 88, 0, 20, 0, 24, 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0, 88, 0, 24, 1, 16, 0, 68, 0, 0, 1, 20, 0,152, 0, - 88, 0, 96, 0, 88, 0, 20, 0, 56, 0, 0, 0, 83, 84, 82, 67,104, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, - 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, - 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, - 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, - 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, - 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, - 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, - 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, - 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, - 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, - 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, - 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, - 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, - 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, - 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, - 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, - 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, - 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, - 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, - 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, - 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 5, 0, 27, 0, 84, 0, - 2, 0, 85, 0, 2, 0, 86, 0, 2, 0, 87, 0, 4, 0, 37, 0, 41, 0, 6, 0, 41, 0, 0, 0, 41, 0, 1, 0, 0, 0, 88, 0, - 0, 0, 89, 0, 4, 0, 23, 0, 4, 0, 90, 0, 42, 0, 10, 0, 42, 0, 0, 0, 42, 0, 1, 0, 4, 0, 91, 0, 4, 0, 92, 0, - 4, 0, 93, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 43, 0, 15, 0, 27, 0, 31, 0, - 0, 0, 97, 0, 4, 0, 94, 0, 4, 0, 98, 0, 12, 0, 99, 0, 41, 0,100, 0, 41, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, - 12, 0,104, 0, 0, 0,105, 0, 4, 0,106, 0, 4, 0,107, 0, 9, 0,108, 0, 8, 0,109, 0, 44, 0, 3, 0, 4, 0,110, 0, - 4, 0,111, 0, 9, 0, 2, 0, 45, 0, 21, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,112, 0, - 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0, - 7, 0,121, 0, 7, 0,122, 0, 2, 0,123, 0, 2, 0,124, 0, 7, 0,125, 0, 36, 0, 80, 0, 40, 0,126, 0, 32, 0,127, 0, - 46, 0, 13, 0, 4, 0,128, 0, 4, 0,129, 0, 4, 0,130, 0, 4, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 2, 0, 19, 0, - 2, 0,134, 0, 2, 0,135, 0, 2, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 47, 0,139, 0, 48, 0, 32, 0, 27, 0, 31, 0, - 0, 0, 34, 0, 12, 0,140, 0, 49, 0,141, 0, 50, 0,142, 0, 51, 0,143, 0, 2, 0,134, 0, 2, 0, 19, 0, 2, 0,144, 0, - 2, 0, 17, 0, 2, 0, 37, 0, 2, 0, 43, 0, 4, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, - 2, 0,150, 0, 2, 0,151, 0, 4, 0,152, 0, 4, 0,153, 0, 44, 0,154, 0, 30, 0,155, 0, 0, 0,156, 0, 7, 0,157, 0, - 4, 0,158, 0, 2, 0,159, 0, 2, 0,160, 0, 2, 0,161, 0, 2, 0,162, 0, 7, 0,163, 0, 7, 0,164, 0, 52, 0, 31, 0, - 2, 0,165, 0, 2, 0,166, 0, 2, 0,167, 0, 2, 0,168, 0, 32, 0,169, 0, 53, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, - 0, 0,173, 0, 0, 0,174, 0, 0, 0,175, 0, 7, 0,176, 0, 7, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0, - 2, 0,181, 0, 2, 0,182, 0, 2, 0,183, 0, 2, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, - 7, 0,189, 0, 7, 0, 57, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 54, 0, 15, 0, - 0, 0,195, 0, 9, 0,196, 0, 0, 0,197, 0, 0, 0,198, 0, 4, 0,199, 0, 4, 0,200, 0, 9, 0,201, 0, 7, 0,202, 0, - 7, 0,203, 0, 7, 0,204, 0, 4, 0,205, 0, 9, 0,206, 0, 9, 0,207, 0, 4, 0,208, 0, 4, 0, 37, 0, 55, 0, 6, 0, - 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,209, 0, 7, 0, 67, 0, 4, 0, 64, 0, 56, 0, 5, 0, 2, 0, 19, 0, - 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,210, 0, 55, 0,204, 0, 57, 0, 17, 0, 32, 0,169, 0, 48, 0,211, 0, 58, 0,212, 0, - 7, 0,213, 0, 7, 0,214, 0, 2, 0, 17, 0, 2, 0,215, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,216, 0, 4, 0,217, 0, - 2, 0,218, 0, 2, 0,219, 0, 4, 0,134, 0, 4, 0,145, 0, 2, 0,220, 0, 2, 0,221, 0, 53, 0, 57, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, - 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, 7, 0,232, 0, 7, 0,233, 0, 7, 0,234, 0, 7, 0,235, 0, 7, 0,236, 0, - 7, 0,237, 0, 7, 0,238, 0, 7, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 2, 0,244, 0, - 2, 0,245, 0, 2, 0,246, 0, 2, 0,247, 0, 2, 0,248, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,215, 0, 7, 0,249, 0, - 7, 0,250, 0, 7, 0,251, 0, 7, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 2, 0,255, 0, 2, 0,132, 0, 4, 0, 23, 0, - 4, 0,129, 0, 4, 0,130, 0, 4, 0,131, 0, 7, 0, 0, 1, 7, 0, 1, 1, 7, 0,191, 0, 46, 0, 2, 1, 59, 0, 3, 1, - 36, 0, 80, 0, 48, 0,211, 0, 54, 0, 4, 1, 56, 0, 5, 1, 57, 0, 6, 1, 30, 0,155, 0, 0, 0, 7, 1, 0, 0, 8, 1, - 60, 0, 8, 0, 7, 0, 9, 1, 7, 0, 10, 1, 7, 0,177, 0, 4, 0, 19, 0, 7, 0, 11, 1, 7, 0, 12, 1, 7, 0, 13, 1, - 32, 0, 45, 0, 61, 0, 81, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 14, 1, 2, 0,179, 0, - 2, 0, 15, 1, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0, 16, 1, 7, 0, 17, 1, 7, 0, 18, 1, - 7, 0, 19, 1, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, - 62, 0, 27, 1, 2, 0, 28, 1, 2, 0, 70, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, - 2, 0, 32, 1, 2, 0, 33, 1, 2, 0, 34, 1, 2, 0, 35, 1, 0, 0, 36, 1, 0, 0, 37, 1, 2, 0, 38, 1, 2, 0, 39, 1, - 2, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, 2, 0, 47, 1, - 2, 0, 43, 0, 2, 0, 48, 1, 2, 0, 49, 1, 2, 0, 50, 1, 2, 0, 51, 1, 7, 0, 52, 1, 7, 0, 53, 1, 7, 0, 54, 1, - 7, 0, 55, 1, 7, 0, 56, 1, 7, 0, 57, 1, 7, 0, 58, 1, 7, 0, 59, 1, 7, 0, 60, 1, 7, 0, 61, 1, 7, 0, 62, 1, - 7, 0, 63, 1, 2, 0, 64, 1, 2, 0, 65, 1, 4, 0, 66, 1, 4, 0, 67, 1, 2, 0, 68, 1, 2, 0, 69, 1, 2, 0, 70, 1, - 2, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 2, 0, 76, 1, 2, 0, 77, 1, 52, 0, 78, 1, - 36, 0, 80, 0, 30, 0,155, 0, 40, 0,126, 0, 63, 0, 2, 0, 27, 0, 31, 0, 36, 0, 80, 0, 64, 0,130, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 2, 0, 79, 1, 2, 0, 19, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0, 80, 1, 7, 0, 81, 1, - 7, 0, 82, 1, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 7, 0, 88, 1, 7, 0, 89, 1, - 7, 0, 90, 1, 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1, 7, 0, 96, 1, 7, 0, 97, 1, - 7, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, - 7, 0,106, 1, 2, 0,107, 1, 2, 0,108, 1, 2, 0,109, 1, 0, 0,110, 1, 0, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, - 2, 0,114, 1, 2, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 2, 0,120, 1, 2, 0,121, 1, - 4, 0, 14, 1, 4, 0,122, 1, 2, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 7, 0,127, 1, 7, 0,128, 1, - 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, - 0, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 4, 0,141, 1, 0, 0,142, 1, 0, 0, 48, 1, 0, 0,143, 1, - 0, 0, 7, 1, 2, 0,144, 1, 2, 0,145, 1, 2, 0, 65, 1, 2, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 7, 0,149, 1, - 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 2, 0,165, 0, 2, 0,166, 0, 56, 0,154, 1, 56, 0,155, 1, - 0, 0,156, 1, 0, 0,157, 1, 0, 0,158, 1, 0, 0,159, 1, 2, 0,160, 1, 2, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, - 52, 0, 78, 1, 59, 0, 3, 1, 36, 0, 80, 0, 65, 0,164, 1, 30, 0,155, 0, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, - 7, 0,168, 1, 7, 0,169, 1, 2, 0,170, 1, 2, 0, 70, 0, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, - 7, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 2, 0,180, 1, 2, 0,181, 1, 7, 0,182, 1, - 7, 0,183, 1, 7, 0,184, 1, 7, 0,185, 1, 7, 0,186, 1, 4, 0,187, 1, 4, 0,188, 1, 4, 0,189, 1, 40, 0,126, 0, - 12, 0,190, 1, 66, 0, 4, 0, 27, 0, 31, 0, 0, 0,191, 1, 67, 0, 2, 0, 44, 0,154, 0, 68, 0, 26, 0, 68, 0, 0, 0, - 68, 0, 1, 0, 69, 0,192, 1, 4, 0,193, 1, 4, 0,194, 1, 4, 0,195, 1, 4, 0,196, 1, 4, 0,197, 1, 4, 0,198, 1, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,199, 1, 2, 0,200, 1, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,201, 1, - 7, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0, 23, 0, 7, 0,208, 1, - 7, 0,209, 1, 70, 0, 16, 0, 27, 0, 31, 0, 69, 0,192, 1, 12, 0,210, 1, 12, 0,211, 1, 12, 0,212, 1, 36, 0, 80, 0, - 64, 0,213, 1, 2, 0, 19, 0, 2, 0,214, 1, 4, 0,178, 0, 7, 0, 9, 1, 7, 0,177, 0, 7, 0, 10, 1, 7, 0,215, 1, - 7, 0,216, 1, 7, 0,217, 1, 35, 0, 11, 0, 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 2, 0, 55, 0, - 0, 0,222, 1, 0, 0,223, 1, 0, 0,224, 1, 0, 0,225, 1, 0, 0,226, 1, 0, 0,227, 1, 34, 0, 7, 0, 7, 0,228, 1, - 7, 0,219, 1, 7, 0,220, 1, 2, 0,224, 1, 2, 0,227, 1, 7, 0,221, 1, 7, 0, 37, 0, 71, 0, 21, 0, 71, 0, 0, 0, - 71, 0, 1, 0, 2, 0, 17, 0, 2, 0,229, 1, 2, 0,227, 1, 2, 0, 19, 0, 2, 0,230, 1, 2, 0,231, 1, 2, 0,232, 1, - 2, 0,233, 1, 2, 0,234, 1, 2, 0,235, 1, 2, 0,236, 1, 2, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 34, 0, 49, 0, - 35, 0, 50, 0, 2, 0,240, 1, 2, 0,241, 1, 4, 0,242, 1, 72, 0, 5, 0, 2, 0,243, 1, 2, 0,229, 1, 0, 0, 19, 0, - 0, 0, 37, 0, 2, 0, 70, 0, 73, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0,244, 1, 74, 0, 62, 0, - 27, 0, 31, 0, 39, 0, 75, 0, 69, 0,192, 1, 12, 0,245, 1, 12, 0,211, 1, 12, 0,246, 1, 32, 0,247, 1, 32, 0,248, 1, - 32, 0,249, 1, 36, 0, 80, 0, 75, 0,250, 1, 38, 0,251, 1, 64, 0,213, 1, 12, 0,252, 1, 7, 0, 9, 1, 7, 0,177, 0, - 7, 0, 10, 1, 4, 0,178, 0, 2, 0,253, 1, 2, 0,214, 1, 2, 0, 19, 0, 2, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, - 7, 0, 1, 2, 2, 0,232, 1, 2, 0,233, 1, 2, 0, 2, 2, 2, 0, 3, 2, 4, 0, 4, 2, 34, 0, 5, 2, 2, 0, 23, 0, - 2, 0, 99, 0, 2, 0, 67, 0, 2, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 11, 2, - 7, 0, 12, 2, 7, 0, 13, 2, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0, 16, 2, 0, 0, 17, 2, 76, 0, 18, 2, 77, 0, 19, 2, - 0, 0, 20, 2, 66, 0, 21, 2, 66, 0, 22, 2, 66, 0, 23, 2, 66, 0, 24, 2, 4, 0, 25, 2, 7, 0, 26, 2, 4, 0, 27, 2, - 4, 0, 28, 2, 73, 0, 29, 2, 4, 0, 30, 2, 4, 0, 31, 2, 72, 0, 32, 2, 72, 0, 33, 2, 78, 0, 39, 0, 27, 0, 31, 0, - 69, 0,192, 1, 12, 0, 34, 2, 36, 0, 80, 0, 38, 0,251, 1, 64, 0,213, 1, 79, 0, 35, 2, 80, 0, 36, 2, 81, 0, 37, 2, - 82, 0, 38, 2, 83, 0, 39, 2, 84, 0, 40, 2, 85, 0, 41, 2, 86, 0, 42, 2, 78, 0, 43, 2, 87, 0, 44, 2, 88, 0, 45, 2, - 89, 0, 46, 2, 89, 0, 47, 2, 89, 0, 48, 2, 4, 0, 54, 0, 4, 0, 49, 2, 4, 0, 50, 2, 4, 0, 51, 2, 4, 0, 52, 2, - 4, 0,178, 0, 7, 0, 9, 1, 7, 0,177, 0, 7, 0, 10, 1, 7, 0, 53, 2, 4, 0, 54, 2, 2, 0, 55, 2, 2, 0, 19, 0, - 2, 0, 56, 2, 2, 0, 57, 2, 2, 0,214, 1, 2, 0, 58, 2, 90, 0, 59, 2, 91, 0, 60, 2, 81, 0, 8, 0, 9, 0, 61, 2, - 7, 0, 62, 2, 4, 0, 63, 2, 0, 0, 19, 0, 0, 0, 64, 2, 2, 0, 14, 1, 2, 0, 65, 2, 2, 0, 66, 2, 79, 0, 7, 0, - 4, 0, 67, 2, 4, 0, 68, 2, 4, 0, 69, 2, 4, 0, 70, 2, 2, 0,229, 1, 0, 0, 71, 2, 0, 0, 19, 0, 83, 0, 5, 0, - 4, 0, 67, 2, 4, 0, 68, 2, 0, 0, 72, 2, 0, 0, 73, 2, 2, 0, 19, 0, 92, 0, 2, 0, 4, 0, 74, 2, 7, 0,220, 1, - 84, 0, 3, 0, 92, 0, 75, 2, 4, 0, 76, 2, 4, 0, 19, 0, 82, 0, 6, 0, 7, 0, 77, 2, 2, 0, 78, 2, 2, 0,229, 1, - 0, 0, 19, 0, 0, 0, 73, 2, 0, 0,184, 0, 85, 0, 4, 0, 0, 0,209, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,187, 0, - 93, 0, 6, 0, 48, 0, 61, 2, 0, 0, 19, 0, 0, 0, 64, 2, 2, 0, 14, 1, 2, 0, 65, 2, 2, 0, 66, 2, 94, 0, 1, 0, - 7, 0, 79, 2, 95, 0, 5, 0, 0, 0,209, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,187, 0, 4, 0, 37, 0, 86, 0, 1, 0, - 7, 0, 80, 2, 87, 0, 2, 0, 4, 0, 81, 2, 4, 0, 17, 0, 80, 0, 7, 0, 7, 0, 62, 2, 48, 0, 61, 2, 0, 0, 19, 0, - 0, 0, 64, 2, 2, 0, 14, 1, 2, 0, 65, 2, 2, 0, 66, 2, 96, 0, 1, 0, 7, 0, 82, 2, 97, 0, 1, 0, 4, 0, 83, 2, - 98, 0, 1, 0, 0, 0, 84, 2, 99, 0, 1, 0, 7, 0, 62, 2,100, 0, 3, 0, 4, 0, 85, 2, 0, 0, 96, 0, 7, 0, 86, 2, -102, 0, 4, 0, 7, 0,209, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0,103, 0, 1, 0,102, 0, 63, 2,104, 0, 5, 0, - 4, 0, 87, 2, 4, 0, 88, 2, 0, 0, 19, 0, 0, 0,229, 1, 0, 0,184, 0,105, 0, 2, 0, 4, 0, 89, 2, 4, 0, 88, 2, -106, 0, 10, 0,106, 0, 0, 0,106, 0, 1, 0,104, 0, 90, 2,103, 0, 91, 2,105, 0, 92, 2, 4, 0, 54, 0, 4, 0, 50, 2, - 4, 0, 49, 2, 4, 0, 37, 0, 82, 0, 93, 2, 90, 0, 14, 0, 12, 0, 94, 2, 82, 0, 93, 2, 0, 0, 95, 2, 0, 0, 96, 2, - 0, 0, 97, 2, 0, 0, 98, 2, 0, 0, 99, 2, 0, 0,100, 2, 0, 0,101, 2, 0, 0, 19, 0, 89, 0, 46, 2, 89, 0, 48, 2, - 2, 0,102, 2, 0, 0,103, 2, 91, 0, 8, 0, 4, 0,104, 2, 4, 0,105, 2, 79, 0,106, 2, 83, 0,107, 2, 4, 0, 50, 2, - 4, 0, 49, 2, 4, 0, 54, 0, 4, 0, 37, 0,107, 0, 7, 0,107, 0, 0, 0,107, 0, 1, 0, 4, 0, 17, 0, 4, 0, 14, 1, - 0, 0, 20, 0, 47, 0,139, 0, 0, 0,108, 2,108, 0, 7, 0,107, 0,109, 2, 2, 0,110, 2, 2, 0, 94, 2, 2, 0,111, 2, - 2, 0, 94, 0, 9, 0,112, 2, 9, 0,113, 2,109, 0, 3, 0,107, 0,109, 2, 32, 0,169, 0, 0, 0, 20, 0,110, 0, 5, 0, -107, 0,109, 2, 32, 0,169, 0, 0, 0, 20, 0, 2, 0,114, 2, 0, 0,115, 2,111, 0, 5, 0,107, 0,109, 2, 7, 0, 92, 0, - 7, 0,116, 2, 4, 0,117, 2, 4, 0,118, 2,112, 0, 5, 0,107, 0,109, 2, 32, 0,119, 2, 0, 0, 72, 0, 4, 0, 14, 1, - 4, 0, 19, 0,113, 0, 13, 0,107, 0,109, 2, 32, 0,120, 2, 32, 0,121, 2, 32, 0,122, 2, 32, 0,123, 2, 7, 0,124, 2, - 7, 0,125, 2, 7, 0,116, 2, 7, 0,126, 2, 4, 0,127, 2, 4, 0,128, 2, 4, 0, 94, 0, 4, 0,129, 2,114, 0, 5, 0, -107, 0,109, 2, 2, 0,130, 2, 2, 0, 19, 0, 7, 0,131, 2, 32, 0,132, 2,115, 0, 3, 0,107, 0,109, 2, 7, 0,133, 2, - 4, 0, 94, 0,116, 0, 10, 0,107, 0,109, 2, 7, 0,134, 2, 4, 0,135, 2, 4, 0, 37, 0, 2, 0, 94, 0, 2, 0,136, 2, - 2, 0,137, 2, 2, 0,138, 2, 7, 0,139, 2, 0, 0,140, 2,117, 0, 3, 0,107, 0,109, 2, 7, 0, 37, 0, 4, 0, 17, 0, -118, 0, 11, 0,107, 0,109, 2, 53, 0,141, 2, 7, 0,142, 2, 4, 0,143, 2, 0, 0,140, 2, 7, 0,144, 2, 4, 0,145, 2, - 32, 0,146, 2, 0, 0,147, 2, 4, 0,148, 2, 4, 0, 37, 0,119, 0, 10, 0,107, 0,109, 2, 32, 0,149, 2, 48, 0,150, 2, - 4, 0, 94, 0, 4, 0,151, 2, 7, 0,152, 2, 7, 0,153, 2, 0, 0,147, 2, 4, 0,148, 2, 4, 0, 37, 0,120, 0, 3, 0, -107, 0,109, 2, 7, 0,154, 2, 4, 0,155, 2,121, 0, 5, 0,107, 0,109, 2, 7, 0,156, 2, 0, 0,140, 2, 2, 0, 19, 0, - 2, 0,157, 2,122, 0, 8, 0,107, 0,109, 2, 32, 0,169, 0, 7, 0,156, 2, 7, 0,221, 1, 7, 0,110, 0, 0, 0,140, 2, - 2, 0, 19, 0, 2, 0, 17, 0,123, 0, 21, 0,107, 0,109, 2, 32, 0,158, 2, 0, 0,140, 2, 53, 0,141, 2, 32, 0,146, 2, - 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,159, 2, 7, 0,160, 2, 7, 0,161, 2, 7, 0,255, 1, 7, 0,162, 2, 7, 0,163, 2, - 7, 0,164, 2, 7, 0,165, 2, 4, 0,145, 2, 4, 0,148, 2, 0, 0,147, 2, 7, 0,166, 2, 7, 0,167, 2, 7, 0, 43, 0, -124, 0, 7, 0,107, 0,109, 2, 2, 0,168, 2, 2, 0,169, 2, 4, 0, 70, 0, 32, 0,169, 0, 7, 0,170, 2, 0, 0,140, 2, -125, 0, 9, 0,107, 0,109, 2, 32, 0,169, 0, 7, 0,171, 2, 7, 0,172, 2, 7, 0,165, 2, 4, 0,173, 2, 4, 0,174, 2, - 7, 0,175, 2, 0, 0, 20, 0,126, 0, 1, 0,107, 0,109, 2,127, 0, 6, 0,107, 0,109, 2, 47, 0,139, 0,128, 0,176, 2, -129, 0,177, 2,130, 0,178, 2,131, 0,179, 2,132, 0, 14, 0,107, 0,109, 2, 82, 0,180, 2, 82, 0,181, 2, 82, 0,182, 2, - 82, 0,183, 2, 82, 0,184, 2, 82, 0,185, 2, 79, 0,186, 2, 4, 0,187, 2, 4, 0,188, 2, 2, 0,189, 2, 2, 0, 37, 0, - 7, 0,190, 2,133, 0,191, 2,134, 0, 3, 0,107, 0,109, 2,135, 0,192, 2,136, 0,191, 2,137, 0, 4, 0,107, 0,109, 2, - 32, 0,169, 0, 4, 0,193, 2, 4, 0, 37, 0,138, 0, 2, 0, 4, 0,194, 2, 7, 0,220, 1,139, 0, 2, 0, 4, 0,130, 0, - 4, 0,195, 2,140, 0, 20, 0,107, 0,109, 2, 32, 0,169, 0, 0, 0,140, 2, 2, 0,196, 2, 2, 0,197, 2, 2, 0, 19, 0, - 2, 0, 37, 0, 7, 0,198, 2, 7, 0,199, 2, 4, 0, 54, 0, 4, 0,200, 2,139, 0,201, 2,138, 0,202, 2, 4, 0,203, 2, - 4, 0,204, 2, 4, 0,205, 2, 4, 0,195, 2, 7, 0,206, 2, 7, 0,207, 2, 7, 0,208, 2,141, 0, 8, 0,107, 0,109, 2, -142, 0,209, 2,135, 0,192, 2, 4, 0,210, 2, 4, 0,211, 2, 4, 0,212, 2, 2, 0, 19, 0, 2, 0, 57, 0,143, 0, 8, 0, -107, 0,109, 2, 32, 0, 45, 0, 2, 0,213, 2, 2, 0, 19, 0, 2, 0,130, 2, 2, 0, 57, 0, 7, 0,214, 2, 7, 0,215, 2, -144, 0, 5, 0,107, 0,109, 2, 4, 0,216, 2, 2, 0, 19, 0, 2, 0,217, 2, 7, 0,218, 2,145, 0, 7, 0,107, 0,109, 2, - 82, 0,219, 2, 4, 0,220, 2, 0, 0,221, 2, 0, 0,222, 2, 0, 0,223, 2, 0, 0,224, 2,146, 0, 3, 0,107, 0,109, 2, -147, 0,225, 2,131, 0,179, 2,148, 0, 10, 0,107, 0,109, 2, 32, 0,226, 2, 32, 0,227, 2, 0, 0,228, 2, 7, 0,229, 2, - 2, 0,230, 2, 2, 0,231, 2, 0, 0,232, 2, 0, 0,233, 2, 0, 0,115, 2,149, 0, 9, 0,107, 0,109, 2, 32, 0,234, 2, - 0, 0,228, 2, 7, 0,235, 2, 7, 0,236, 2, 0, 0, 14, 1, 0, 0,130, 2, 0, 0,237, 2, 0, 0, 37, 0,150, 0, 27, 0, - 27, 0, 31, 0, 2, 0,230, 1, 2, 0,231, 1, 2, 0,238, 2, 2, 0, 19, 0, 2, 0,239, 2, 2, 0,240, 2, 2, 0,241, 2, - 2, 0, 70, 0, 0, 0,242, 2, 0, 0,243, 2, 0, 0,244, 2, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0,245, 2, 7, 0,246, 2, - 7, 0,247, 2, 7, 0,248, 2, 7, 0,249, 2, 7, 0,250, 2, 34, 0,251, 2, 36, 0, 80, 0, 38, 0,251, 1, 84, 0, 40, 2, - 7, 0,252, 2, 7, 0,253, 2,150, 0,254, 2,151, 0, 3, 0,151, 0, 0, 0,151, 0, 1, 0, 0, 0, 20, 0, 69, 0, 3, 0, - 7, 0,255, 2, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,112, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 0, 3, - 4, 0, 1, 3, 4, 0, 2, 3, 4, 0, 3, 3, 0, 0, 4, 3, 32, 0, 38, 0, 32, 0, 5, 3, 32, 0, 6, 3, 32, 0, 7, 3, - 32, 0, 8, 3, 36, 0, 80, 0, 75, 0,250, 1, 69, 0,192, 1,152, 0, 9, 3,152, 0, 10, 3,153, 0, 11, 3, 9, 0, 2, 0, - 12, 0, 12, 3, 12, 0, 34, 2, 12, 0,211, 1, 12, 0, 13, 3, 12, 0, 14, 3, 64, 0,213, 1, 0, 0, 15, 3, 4, 0,214, 1, - 4, 0, 16, 3, 7, 0, 9, 1, 7, 0, 17, 3, 7, 0, 18, 3, 7, 0,177, 0, 7, 0, 19, 3, 7, 0, 10, 1, 7, 0, 20, 3, - 7, 0, 21, 3, 7, 0,171, 2, 7, 0, 22, 3, 7, 0,213, 0, 4, 0, 23, 3, 2, 0, 19, 0, 2, 0, 24, 3, 2, 0, 25, 3, - 2, 0, 26, 3, 2, 0, 27, 3, 2, 0, 28, 3, 2, 0, 29, 3, 2, 0, 30, 3, 2, 0, 31, 3, 2, 0, 32, 3, 2, 0, 33, 3, - 2, 0, 34, 3, 4, 0, 35, 3, 4, 0, 36, 3, 4, 0, 37, 3, 4, 0, 38, 3, 7, 0, 39, 3, 7, 0, 26, 2, 7, 0, 40, 3, - 7, 0, 41, 3, 7, 0, 42, 3, 7, 0, 43, 3, 7, 0, 44, 3, 7, 0, 45, 3, 7, 0, 46, 3, 7, 0, 47, 3, 7, 0, 48, 3, - 7, 0, 49, 3, 0, 0, 50, 3, 0, 0, 51, 3, 0, 0, 52, 3, 0, 0, 53, 3, 7, 0, 54, 3, 7, 0, 55, 3, 40, 0,126, 0, - 12, 0, 56, 3, 12, 0, 57, 3, 12, 0, 58, 3, 12, 0, 59, 3, 7, 0, 60, 3, 2, 0, 81, 2, 2, 0, 61, 3, 7, 0, 63, 2, - 4, 0, 62, 3, 4, 0, 63, 3,154, 0, 64, 3, 2, 0, 65, 3, 2, 0,220, 0, 7, 0, 66, 3, 12, 0, 67, 3, 12, 0, 68, 3, - 12, 0, 69, 3, 12, 0, 70, 3,155, 0, 71, 3,156, 0, 72, 3, 65, 0, 73, 3, 2, 0, 74, 3, 2, 0, 75, 3, 2, 0, 76, 3, - 2, 0, 77, 3, 7, 0, 55, 2, 2, 0, 78, 3, 2, 0, 79, 3,147, 0, 80, 3,135, 0, 81, 3,135, 0, 82, 3, 4, 0, 83, 3, - 4, 0, 84, 3, 4, 0, 85, 3, 4, 0, 70, 0, 12, 0, 86, 3,157, 0, 14, 0,157, 0, 0, 0,157, 0, 1, 0, 32, 0, 38, 0, - 7, 0,171, 2, 7, 0, 11, 1, 7, 0,172, 2, 7, 0,165, 2, 0, 0, 20, 0, 4, 0,173, 2, 4, 0,174, 2, 4, 0, 87, 3, - 2, 0, 17, 0, 2, 0, 88, 3, 7, 0,175, 2,155, 0, 36, 0, 2, 0, 89, 3, 2, 0, 90, 3, 2, 0, 19, 0, 2, 0,165, 2, - 7, 0, 91, 3, 7, 0, 92, 3, 7, 0, 93, 3, 7, 0, 94, 3, 7, 0, 95, 3, 7, 0, 96, 3, 7, 0, 97, 3, 7, 0, 98, 3, - 7, 0, 99, 3, 7, 0,100, 3, 7, 0,101, 3, 7, 0,102, 3, 7, 0,103, 3, 7, 0,104, 3, 7, 0,105, 3, 7, 0,106, 3, - 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,110, 3, 7, 0,111, 3, 7, 0,112, 3, 7, 0,113, 3, 7, 0,114, 3, - 2, 0,115, 3, 2, 0,116, 3, 2, 0,117, 3, 2, 0,118, 3, 53, 0,170, 0,158, 0,119, 3, 7, 0,120, 3, 4, 0,118, 2, -159, 0, 6, 0,159, 0, 0, 0,159, 0, 1, 0, 4, 0,121, 3, 4, 0,122, 3, 7, 0, 2, 0, 9, 0,123, 3,131, 0, 12, 0, - 4, 0, 19, 0, 4, 0,124, 3, 4, 0,125, 3, 4, 0,126, 3, 4, 0,127, 3, 4, 0,128, 3, 4, 0,129, 3, 4, 0,130, 3, - 0, 0,131, 3, 0, 0,132, 3, 0, 0,133, 3, 12, 0,134, 3,160, 0, 1, 0, 7, 0,228, 1,154, 0, 30, 0, 4, 0, 19, 0, - 7, 0,135, 3, 7, 0,136, 3, 7, 0,137, 3, 4, 0,138, 3, 4, 0,139, 3, 4, 0,140, 3, 4, 0,141, 3, 7, 0,142, 3, - 7, 0,143, 3, 7, 0,144, 3, 7, 0,145, 3, 7, 0,146, 3, 7, 0,147, 3, 7, 0,148, 3, 7, 0,149, 3, 7, 0,150, 3, - 7, 0,151, 3, 7, 0,152, 3, 7, 0,153, 3, 7, 0,154, 3, 7, 0,155, 3, 7, 0,156, 3, 7, 0,157, 3, 7, 0,158, 3, - 7, 0,159, 3, 4, 0,160, 3, 4, 0,161, 3, 7, 0,162, 3, 7, 0, 46, 3,156, 0, 44, 0,142, 0,163, 3, 4, 0,122, 3, - 4, 0,164, 3,161, 0,165, 3,162, 0,166, 3, 7, 0, 37, 0, 7, 0,167, 3, 7, 0,168, 3, 7, 0,169, 3, 7, 0,170, 3, - 7, 0,171, 3, 7, 0,172, 3, 7, 0,173, 3, 7, 0,174, 3, 7, 0,175, 3, 7, 0,176, 3, 2, 0,177, 3, 2, 0,178, 3, - 7, 0,179, 3, 7, 0,180, 3, 4, 0,131, 0, 4, 0,181, 3, 4, 0,182, 3, 2, 0,183, 3, 2, 0,184, 3,160, 0,185, 3, - 4, 0,186, 3, 4, 0, 82, 0, 7, 0,187, 3, 7, 0,188, 3, 7, 0,189, 3, 7, 0,190, 3, 2, 0,191, 3, 2, 0,192, 3, - 2, 0,193, 3, 2, 0,194, 3, 2, 0,195, 3, 2, 0,196, 3, 2, 0,197, 3, 2, 0,198, 3,163, 0,199, 3, 7, 0,200, 3, - 7, 0,201, 3,131, 0,202, 3,147, 0, 48, 0, 2, 0, 17, 0, 2, 0,203, 3, 2, 0,204, 3, 2, 0,205, 3, 7, 0,206, 3, - 2, 0,207, 3, 2, 0,208, 3, 7, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, - 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 4, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, 78, 0,222, 3, - 78, 0,223, 3, 78, 0,224, 3, 0, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 36, 0, 80, 0, 2, 0,228, 3, 0, 0,229, 3, - 0, 0,230, 3, 7, 0,231, 3, 4, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 4, 0,235, 3, 4, 0, 19, 0, 7, 0,236, 3, - 7, 0,237, 3, 7, 0,238, 3, 82, 0,239, 3, 7, 0,240, 3, 7, 0,241, 3, 7, 0,242, 3, 7, 0,243, 3, 7, 0,244, 3, - 7, 0,245, 3, 7, 0,246, 3, 4, 0,247, 3,164, 0, 72, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,179, 0, 2, 0, 15, 1, - 2, 0, 48, 1, 2, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, - 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 86, 1, 7, 0, 88, 1, 7, 0, 87, 1, 7, 0, 1, 4, 4, 0, 2, 4, 7, 0, 3, 4, - 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 7, 0, 9, 4, 2, 0, 10, 4, 2, 0, 14, 1, - 2, 0, 11, 4, 2, 0, 12, 4, 2, 0, 13, 4, 2, 0, 14, 4, 2, 0, 15, 4, 2, 0, 16, 4, 7, 0, 17, 4, 7, 0, 18, 4, - 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, - 7, 0, 27, 4, 7, 0, 28, 4, 2, 0, 29, 4, 2, 0, 30, 4, 2, 0, 31, 4, 2, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, - 7, 0, 35, 4, 7, 0, 36, 4, 2, 0, 37, 4, 2, 0, 38, 4, 2, 0, 39, 4, 2, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, - 7, 0, 43, 4, 7, 0, 44, 4, 2, 0, 45, 4, 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 19, 0, 7, 0, 48, 4, 7, 0, 49, 4, - 36, 0, 80, 0, 52, 0, 78, 1, 30, 0,155, 0, 40, 0,126, 0,165, 0, 8, 0,165, 0, 0, 0,165, 0, 1, 0, 4, 0, 23, 3, - 4, 0, 50, 4, 4, 0, 19, 0, 2, 0, 51, 4, 2, 0, 52, 4, 32, 0,169, 0,166, 0, 13, 0, 9, 0, 53, 4, 9, 0, 54, 4, - 4, 0, 55, 4, 4, 0, 56, 4, 4, 0, 57, 4, 4, 0, 58, 4, 4, 0, 59, 4, 4, 0, 60, 4, 4, 0, 61, 4, 4, 0, 62, 4, - 4, 0, 63, 4, 4, 0, 37, 0, 0, 0, 64, 4,167, 0, 5, 0, 9, 0, 65, 4, 9, 0, 66, 4, 4, 0, 67, 4, 4, 0, 70, 0, - 0, 0, 68, 4,168, 0, 13, 0, 4, 0, 17, 0, 4, 0, 69, 4, 4, 0, 70, 4, 4, 0, 71, 4, 4, 0, 72, 4, 4, 0, 73, 4, - 4, 0, 94, 0, 4, 0, 74, 4, 4, 0, 75, 4, 4, 0, 76, 4, 4, 0, 77, 4, 4, 0, 78, 4, 26, 0, 30, 0,169, 0, 4, 0, - 4, 0, 79, 4, 7, 0, 80, 4, 2, 0, 19, 0, 2, 0, 81, 4,170, 0, 11, 0,170, 0, 0, 0,170, 0, 1, 0, 0, 0, 20, 0, - 64, 0, 82, 4, 65, 0, 83, 4, 4, 0, 23, 3, 4, 0, 84, 4, 4, 0, 85, 4, 4, 0, 37, 0, 4, 0, 86, 4, 4, 0, 87, 4, -171, 0,131, 0,166, 0, 88, 4,167, 0, 89, 4,168, 0, 90, 4,169, 0, 91, 4, 4, 0, 92, 4, 4, 0,131, 0, 4, 0,181, 3, - 4, 0, 93, 4, 4, 0, 94, 4, 4, 0, 95, 4, 4, 0, 96, 4, 2, 0, 19, 0, 2, 0, 97, 4, 7, 0, 26, 2, 7, 0, 98, 4, - 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 2, 0,103, 4, 2, 0,104, 4, 2, 0,105, 4, 2, 0,106, 4, - 2, 0,219, 0, 2, 0,107, 4, 2, 0,108, 4, 2, 0,118, 3, 2, 0,109, 4, 2, 0,110, 4, 2, 0, 35, 1, 2, 0,110, 0, - 2, 0,111, 4, 2, 0,112, 4, 2, 0,113, 4, 2, 0,114, 4, 2, 0,115, 4, 2, 0,116, 4, 2, 0,117, 4, 2, 0,118, 4, - 2, 0,119, 4, 2, 0, 36, 1, 2, 0,120, 4, 2, 0,121, 4, 2, 0,122, 4, 2, 0,123, 4, 4, 0,124, 4, 4, 0, 14, 1, - 2, 0,125, 4, 2, 0,126, 4, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 24, 0,131, 4, 24, 0,132, 4, - 23, 0,133, 4, 12, 0,134, 4, 2, 0,135, 4, 2, 0, 37, 0, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, - 4, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, - 2, 0,148, 4, 2, 0,149, 4, 2, 0,150, 4, 7, 0,151, 4, 7, 0,152, 4, 7, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, - 2, 0,156, 4, 2, 0,157, 4, 2, 0,158, 4, 2, 0,159, 4, 2, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, - 4, 0,164, 4, 4, 0,165, 4, 4, 0,166, 4, 4, 0,167, 4, 4, 0,168, 4, 7, 0,169, 4, 4, 0,170, 4, 4, 0,171, 4, - 4, 0,172, 4, 4, 0,173, 4, 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4, 7, 0,178, 4, 7, 0,179, 4, - 7, 0,180, 4, 7, 0,181, 4, 7, 0,182, 4, 0, 0,183, 4, 0, 0,184, 4, 4, 0,185, 4, 2, 0,186, 4, 2, 0,161, 1, - 0, 0,187, 4, 7, 0,188, 4, 7, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 7, 0,192, 4, 7, 0,193, 4, 2, 0,194, 4, - 2, 0,195, 4, 7, 0,196, 4, 2, 0,197, 4, 2, 0,198, 4, 4, 0,199, 4, 2, 0,200, 4, 2, 0,201, 4, 2, 0,202, 4, - 2, 0,203, 4, 7, 0,204, 4, 7, 0, 70, 0, 43, 0,205, 4,172, 0, 9, 0,172, 0, 0, 0,172, 0, 1, 0, 0, 0, 20, 0, - 2, 0,206, 4, 2, 0,207, 4, 2, 0,208, 4, 2, 0, 43, 0, 7, 0,209, 4, 7, 0, 70, 0,173, 0, 5, 0, 7, 0,210, 4, - 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,161, 1,174, 0, 5, 0,174, 0, 0, 0,174, 0, 1, 0, 4, 0,121, 3, - 0, 0,131, 3, 4, 0, 19, 0,175, 0, 6, 0,176, 0,211, 4, 2, 0, 19, 0, 2, 0,212, 4, 2, 0,213, 4, 2, 0,214, 4, - 9, 0,215, 4,177, 0, 4, 0, 2, 0,110, 0, 2, 0,142, 2, 2, 0,124, 3, 2, 0,216, 4,178, 0, 10, 0, 2, 0, 19, 0, - 2, 0,217, 4, 2, 0,218, 4, 2, 0,219, 4,177, 0,220, 4, 9, 0,215, 4, 7, 0,221, 4, 4, 0,222, 4, 4, 0,223, 4, - 4, 0, 37, 0,179, 0, 4, 0,179, 0, 0, 0,179, 0, 1, 0, 0, 0,224, 4, 7, 0,225, 4,180, 0, 8, 0,181, 0,226, 4, -176, 0,211, 4, 7, 0,227, 4, 4, 0, 94, 0, 0, 0,228, 4, 0, 0,229, 4, 0, 0,230, 4, 0, 0,231, 4,182, 0, 9, 0, -176, 0,211, 4, 7, 0,232, 4, 7, 0,233, 4, 2, 0, 14, 1, 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,234, 4, 84, 0,235, 4, - 9, 0,215, 4,183, 0, 72, 0,182, 0,236, 4,182, 0,237, 4,180, 0,238, 4, 7, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4, - 7, 0,242, 4, 7, 0,243, 4, 2, 0,124, 3, 2, 0,244, 4, 7, 0,245, 4, 7, 0,246, 4, 7, 0,247, 4, 2, 0,248, 4, - 2, 0,223, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, - 2, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5,175, 0, 7, 5, -178, 0, 8, 5, 7, 0, 9, 5, 7, 0, 10, 5, 7, 0, 11, 5, 2, 0, 12, 5, 2, 0, 70, 0, 0, 0, 13, 5, 0, 0, 14, 5, - 0, 0, 15, 5, 0, 0, 16, 5, 0, 0, 17, 5, 0, 0, 18, 5, 2, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 7, 0, 22, 5, - 7, 0, 23, 5, 7, 0, 24, 5, 7, 0, 25, 5, 7, 0, 26, 5, 7, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 2, 0, 30, 5, - 0, 0, 31, 5, 0, 0, 32, 5, 0, 0, 33, 5, 0, 0, 34, 5, 32, 0, 35, 5, 0, 0, 36, 5, 0, 0, 37, 5, 0, 0, 38, 5, - 0, 0, 39, 5, 0, 0, 40, 5, 0, 0, 41, 5, 0, 0, 42, 5, 0, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 2, 0, 46, 5, - 2, 0, 47, 5, 2, 0, 48, 5,184, 0, 8, 0, 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 51, 5, 4, 0, 52, 5, 4, 0, 53, 5, - 4, 0, 54, 5, 4, 0, 54, 0, 4, 0, 50, 2, 47, 0, 34, 0, 27, 0, 31, 0, 39, 0, 75, 0, 32, 0, 55, 5,164, 0, 56, 5, - 47, 0, 57, 5, 48, 0,211, 0, 12, 0, 58, 5,165, 0, 59, 5, 32, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 7, 0, 63, 5, - 7, 0, 64, 5, 4, 0, 23, 3, 2, 0, 19, 0, 2, 0, 7, 1, 59, 0, 3, 1,185, 0, 65, 5,173, 0, 66, 5,183, 0, 67, 5, -186, 0, 68, 5,171, 0,185, 0,169, 0, 91, 4, 40, 0,126, 0, 12, 0,104, 0, 12, 0, 69, 5,187, 0, 70, 5, 2, 0, 71, 5, - 2, 0, 72, 5, 2, 0,220, 0, 2, 0, 73, 5, 4, 0, 74, 5, 4, 0, 75, 5, 12, 0, 76, 5,188, 0, 6, 0, 48, 0,211, 0, - 46, 0, 2, 1, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0,110, 0, 7, 0, 77, 5,189, 0, 35, 0, 7, 0, 78, 5, 7, 0, 79, 5, - 7, 0, 80, 5, 7, 0, 81, 5, 7, 0, 82, 5, 7, 0, 83, 5, 7, 0, 84, 5, 7, 0, 85, 5, 7, 0, 86, 5, 7, 0, 21, 1, - 7, 0, 87, 5, 7, 0, 88, 5, 7, 0, 89, 5, 7, 0, 90, 5, 7, 0,176, 0, 2, 0, 91, 5, 2, 0, 92, 5, 4, 0, 93, 5, - 2, 0, 94, 5, 2, 0, 95, 5, 2, 0, 96, 5, 2, 0, 97, 5, 7, 0, 98, 5, 69, 0, 99, 5,190, 0,100, 5,189, 0,101, 5, -191, 0,102, 5,192, 0,103, 5,193, 0,104, 5,194, 0,105, 5,195, 0,106, 5, 7, 0,107, 5, 2, 0,108, 5, 2, 0,109, 5, - 4, 0,161, 1,196, 0, 54, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5, - 7, 0, 86, 5, 7, 0, 21, 1, 7, 0, 43, 0, 4, 0,114, 5, 2, 0, 96, 5, 2, 0, 97, 5, 32, 0, 55, 5, 32, 0,115, 5, -188, 0,116, 5,196, 0,101, 5, 0, 0,117, 5, 4, 0, 23, 3, 4, 0,118, 5, 2, 0,119, 5, 2, 0,120, 5, 2, 0,121, 5, - 2, 0,122, 5, 2, 0,161, 1, 2, 0, 19, 0, 2, 0,123, 5, 2, 0,124, 5, 7, 0,116, 0, 7, 0,125, 5, 7, 0,126, 5, - 7, 0,127, 5, 7, 0,128, 5, 7, 0,129, 5, 7, 0,176, 0, 7, 0, 61, 5, 2, 0,130, 5, 2, 0, 65, 1, 2, 0,131, 5, - 2, 0,132, 5, 2, 0,133, 5, 2, 0,134, 5, 2, 0,135, 5, 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 4, 0,139, 5, - 12, 0,140, 5, 2, 0,141, 5, 2, 0, 64, 2, 2, 0,142, 5, 0, 0,143, 5, 0, 0,144, 5, 9, 0,145, 5,190, 0,100, 5, -198, 0, 22, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0,146, 5, 23, 0,147, 5, 23, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, - 7, 0,151, 5, 7, 0,152, 5, 2, 0,153, 5, 2, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 2, 0,157, 5, 2, 0, 19, 0, - 2, 0,158, 5, 2, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 2, 0,162, 5, 2, 0,122, 5, 7, 0,163, 5,197, 0, 6, 0, -197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,199, 0, 8, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,200, 0,164, 5, 47, 0,139, 0,201, 0, 14, 0, -197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5,202, 0,166, 5, - 12, 0,167, 5, 2, 0, 14, 1, 2, 0, 19, 0, 2, 0,168, 5, 0, 0,169, 5, 0, 0,170, 5,203, 0, 31, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,191, 0,102, 5, 2, 0,171, 5, 2, 0,172, 5, - 2, 0,158, 5, 2, 0,173, 5,198, 0,165, 5, 2, 0,174, 5, 2, 0,138, 0, 2, 0,169, 5, 2, 0,175, 5, 9, 0,176, 5, - 2, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 2, 0,180, 5, 2, 0,181, 5, 2, 0, 32, 3, 2, 0,182, 5, 2, 0,183, 5, - 0, 0, 19, 0, 0, 0, 48, 1, 9, 0,250, 1, 4, 0,184, 5, 4, 0,185, 5, 27, 0,186, 5,204, 0, 16, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5, 7, 0, 14, 2, 7, 0, 15, 2, - 2, 0,174, 5, 2, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5, 4, 0, 19, 0, 7, 0,190, 5,190, 0,100, 5,205, 0, 15, 0, - 0, 0,191, 5, 0, 0,192, 5, 0, 0,193, 5, 2, 0, 19, 0, 2, 0,194, 5, 2, 0,195, 5, 2, 0,104, 1, 2, 0,196, 5, - 2, 0, 37, 0, 4, 0,197, 5, 4, 0,198, 5, 2, 0,199, 5, 2, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5,206, 0, 12, 0, -197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 4, 0, 37, 0,205, 0,203, 5,207, 0,204, 5, 12, 0,205, 5, - 12, 0,206, 5,208, 0,207, 5,195, 0,208, 5,209, 0,209, 5,210, 0, 17, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, - 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5, 12, 0,210, 5,211, 0,211, 5, 0, 0,212, 5,212, 0,213, 5, - 4, 0,214, 5, 4, 0,215, 5, 2, 0, 19, 0, 2, 0,216, 5, 2, 0,217, 5, 2, 0, 37, 0,213, 0, 29, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5, 48, 0,150, 2, 46, 0, 2, 1, 62, 0,218, 5, - 2, 0,138, 0, 2, 0,219, 5, 2, 0, 70, 0, 2, 0,220, 5, 4, 0, 19, 0, 2, 0,221, 5, 2, 0,170, 5, 2, 0,169, 5, - 2, 0,161, 1, 0, 0,222, 5, 0, 0,223, 5, 0, 0,224, 5, 0, 0,122, 5, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0,190, 5, - 7, 0, 65, 1, 7, 0,225, 5, 7, 0,226, 5,190, 0,100, 5,214, 0, 11, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, - 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5, 2, 0,168, 5, 2, 0, 19, 0, 4, 0, 37, 0,202, 0,166, 5,198, 0,165, 5, -215, 0, 27, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5, 43, 0,227, 5, - 4, 0,228, 5, 4, 0,229, 5, 2, 0, 94, 0, 2, 0,138, 0, 2, 0,230, 5, 0, 0,231, 5, 0, 0,232, 5, 4, 0,233, 5, - 4, 0,234, 5, 4, 0,235, 5, 4, 0,236, 5, 2, 0,237, 5, 2, 0,238, 5, 7, 0,239, 5, 23, 0,240, 5, 23, 0,241, 5, - 4, 0,242, 5, 4, 0,243, 5, 0, 0,244, 5, 0, 0,245, 5,216, 0, 10, 0, 27, 0, 31, 0, 9, 0,246, 5, 9, 0,247, 5, - 9, 0,248, 5, 9, 0,249, 5, 9, 0,250, 5, 4, 0, 94, 0, 4, 0,251, 5, 0, 0,252, 5, 0, 0,253, 5,217, 0, 10, 0, -197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5,216, 0,254, 5, 2, 0, 94, 0, 2, 0,138, 0, - 4, 0, 43, 0, 9, 0,255, 5,218, 0, 8, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, -198, 0,165, 5, 4, 0, 19, 0, 4, 0, 0, 6,219, 0, 23, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, - 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5, 27, 0, 1, 6, 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,138, 0, 7, 0, 2, 6, - 9, 0, 3, 6, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0, 4, 6, 7, 0, 5, 6, 59, 0, 3, 1, 59, 0, 6, 6, 4, 0, 7, 6, - 2, 0,178, 5, 2, 0, 37, 0,190, 0,100, 5,220, 0, 10, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, - 7, 0,112, 5, 2, 0,113, 5, 2, 0, 19, 0, 2, 0, 32, 3, 4, 0, 37, 0,190, 0,100, 5,221, 0, 42, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5,207, 0,204, 5, 0, 0,191, 5, - 0, 0,192, 5, 0, 0,193, 5, 2, 0, 17, 0, 2, 0,200, 5, 2, 0, 19, 0, 2, 0,194, 5, 9, 0, 3, 6, 4, 0,197, 5, - 4, 0, 8, 6, 4, 0, 9, 6, 4, 0,198, 5, 23, 0, 10, 6, 23, 0, 11, 6, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, - 7, 0, 2, 6, 2, 0, 15, 6, 2, 0,210, 0, 2, 0,104, 1, 2, 0,196, 5, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 16, 6, - 2, 0, 17, 6, 9, 0, 18, 6, 9, 0, 19, 6, 9, 0, 20, 6, 9, 0, 21, 6, 9, 0, 22, 6, 2, 0, 23, 6, 0, 0,202, 5, - 58, 0, 24, 6,222, 0, 7, 0,222, 0, 0, 0,222, 0, 1, 0, 4, 0, 25, 6, 4, 0, 23, 0, 0, 0, 88, 0, 4, 0, 26, 6, - 4, 0, 17, 0,223, 0, 13, 0,197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5, - 4, 0, 17, 0, 4, 0, 27, 6, 4, 0, 19, 0, 4, 0,230, 5, 12, 0, 28, 6, 12, 0, 29, 6, 0, 0, 30, 6,224, 0, 7, 0, -224, 0, 0, 0,224, 0, 1, 0, 0, 0, 31, 6, 2, 0, 32, 6, 2, 0, 33, 6, 2, 0, 34, 6, 2, 0, 37, 0,225, 0, 12, 0, - 2, 0, 33, 6, 2, 0, 35, 6, 2, 0, 36, 6, 0, 0,115, 2, 2, 0, 37, 6, 2, 0, 38, 6, 2, 0, 39, 6, 2, 0, 40, 6, - 2, 0, 41, 6, 2, 0,158, 5, 7, 0, 42, 6, 7, 0, 43, 6,226, 0, 18, 0,226, 0, 0, 0,226, 0, 1, 0, 0, 0,131, 3, -225, 0, 44, 6,225, 0, 45, 6,225, 0, 46, 6,225, 0, 47, 6, 7, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, - 2, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 2, 0, 58, 6,227, 0, 10, 0, - 0, 0, 59, 6, 0, 0, 60, 6, 0, 0, 61, 6, 0, 0, 62, 6, 0, 0, 63, 6, 0, 0, 64, 6, 2, 0, 65, 6, 2, 0, 66, 6, - 2, 0, 67, 6, 2, 0, 37, 0,228, 0, 8, 0, 0, 0, 68, 6, 0, 0, 69, 6, 0, 0, 70, 6, 0, 0, 71, 6, 0, 0, 72, 6, - 0, 0, 73, 6, 7, 0, 77, 5, 7, 0, 37, 0,229, 0, 16, 0,227, 0, 74, 6,227, 0, 75, 6,227, 0, 76, 6,227, 0, 77, 6, -227, 0, 78, 6,227, 0, 79, 6,227, 0, 80, 6,227, 0, 81, 6,227, 0, 82, 6,227, 0, 83, 6,227, 0, 84, 6,227, 0, 85, 6, -227, 0, 86, 6,227, 0, 87, 6,228, 0, 88, 6, 0, 0, 89, 6,230, 0, 71, 0, 0, 0, 90, 6, 0, 0, 91, 6, 0, 0, 63, 6, - 0, 0, 92, 6, 0, 0, 93, 6, 0, 0, 94, 6, 0, 0, 95, 6, 0, 0, 96, 6, 0, 0, 97, 6, 0, 0, 98, 6, 0, 0, 99, 6, - 0, 0,100, 6, 0, 0,101, 6, 0, 0,102, 6, 0, 0,103, 6, 0, 0,104, 6, 0, 0,105, 6, 0, 0,106, 6, 0, 0,107, 6, - 0, 0,108, 6, 0, 0,109, 6, 0, 0,110, 6, 0, 0,111, 6, 0, 0,112, 6, 0, 0,113, 6, 0, 0,114, 6, 0, 0,115, 6, - 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, 0, 0,119, 6, 0, 0,120, 6, 0, 0,121, 6, 0, 0,122, 6, 0, 0,123, 6, - 0, 0,124, 6, 0, 0,125, 6, 0, 0,126, 6, 0, 0,127, 6, 0, 0,128, 6, 0, 0,129, 6, 0, 0,130, 6, 0, 0,131, 6, - 0, 0,132, 6, 0, 0,133, 6, 0, 0,134, 6, 0, 0,135, 6, 0, 0,136, 6, 0, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6, - 0, 0,140, 6, 0, 0,141, 6, 0, 0,142, 6, 0, 0,143, 6, 0, 0,144, 6, 0, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6, - 0, 0,148, 6, 0, 0,149, 6, 0, 0,150, 6, 0, 0,151, 6, 0, 0,152, 6, 0, 0,153, 6, 0, 0,154, 6, 0, 0,155, 6, - 0, 0,156, 6, 0, 0,157, 6, 0, 0,158, 6, 0, 0, 96, 0,231, 0, 5, 0, 0, 0,159, 6, 0, 0,114, 6, 0, 0,116, 6, - 2, 0, 19, 0, 2, 0, 37, 0,232, 0, 21, 0,232, 0, 0, 0,232, 0, 1, 0, 0, 0, 20, 0,229, 0,160, 6,230, 0,161, 6, -230, 0,162, 6,230, 0,163, 6,230, 0,164, 6,230, 0,165, 6,230, 0,166, 6,230, 0,167, 6,230, 0,168, 6,230, 0,169, 6, -230, 0,170, 6,230, 0,171, 6,230, 0,172, 6,230, 0,173, 6,230, 0,174, 6,230, 0,175, 6,230, 0,176, 6,231, 0,177, 6, -233, 0, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 63, 2, 7, 0,178, 6, 7, 0,228, 1,234, 0, 67, 0, 4, 0, 19, 0, - 4, 0,179, 6, 4, 0,180, 6, 0, 0,181, 6, 0, 0,182, 6, 0, 0,183, 6, 0, 0,184, 6, 0, 0,185, 6, 0, 0,186, 6, - 0, 0,187, 6, 0, 0,188, 6, 0, 0,189, 6, 2, 0,190, 6, 2, 0, 37, 0, 4, 0,191, 6, 4, 0,192, 6, 4, 0,193, 6, - 4, 0,194, 6, 2, 0,195, 6, 2, 0,196, 6, 4, 0,197, 6, 4, 0, 43, 0, 4, 0,198, 6, 2, 0,199, 6, 2, 0,200, 6, - 2, 0,201, 6, 2, 0,202, 6, 12, 0,203, 6, 12, 0,204, 6, 12, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, - 2, 0,209, 6, 2, 0,210, 6, 2, 0,211, 6, 2, 0,212, 6, 2, 0,213, 6,233, 0,214, 6, 2, 0,215, 6, 2, 0,216, 6, - 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, 2, 0,220, 6, 2, 0,221, 6, 2, 0,222, 6, 4, 0,223, 6, 4, 0,224, 6, - 2, 0,225, 6, 2, 0,226, 6, 2, 0,227, 6, 2, 0,228, 6, 2, 0,229, 6, 2, 0,230, 6, 2, 0,231, 6, 2, 0,232, 6, - 2, 0,233, 6, 2, 0,234, 6, 2, 0,235, 6, 2, 0,236, 6, 0, 0,237, 6, 0, 0,238, 6, 7, 0,239, 6, 2, 0, 12, 5, - 2, 0,240, 6, 56, 0,241, 6,200, 0, 21, 0, 27, 0, 31, 0, 12, 0,242, 6, 12, 0,243, 6, 12, 0,244, 6, 12, 0,110, 5, - 47, 0,139, 0, 47, 0,245, 6, 2, 0,246, 6, 2, 0,247, 6, 2, 0,248, 6, 2, 0,249, 6, 2, 0,250, 6, 2, 0,251, 6, - 2, 0,252, 6, 2, 0, 37, 0, 2, 0,253, 6, 2, 0,254, 6, 4, 0, 70, 0,195, 0,255, 6, 9, 0, 0, 7, 2, 0, 1, 7, -235, 0, 5, 0,235, 0, 0, 0,235, 0, 1, 0,235, 0, 2, 7, 13, 0, 3, 7, 4, 0, 19, 0,236, 0, 7, 0,236, 0, 0, 0, -236, 0, 1, 0,235, 0, 4, 7,235, 0, 5, 7, 2, 0,132, 4, 2, 0, 19, 0, 4, 0, 37, 0,237, 0, 23, 0,237, 0, 0, 0, -237, 0, 1, 0,238, 0, 6, 7,239, 0,209, 5, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 2, 0, 10, 7, 2, 0, 11, 7, - 2, 0, 12, 7, 2, 0, 13, 7, 2, 0, 14, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0, 15, 7, 2, 0, 16, 7, 2, 0, 17, 7, - 4, 0, 18, 7,237, 0, 19, 7, 9, 0, 20, 7, 4, 0, 21, 7, 4, 0, 22, 7, 0, 0, 23, 7,240, 0, 2, 0,241, 0, 6, 7, -239, 0,209, 5,242, 0, 2, 0,243, 0, 6, 7,239, 0,209, 5,244, 0, 23, 0,244, 0, 0, 0,244, 0, 1, 0,235, 0, 4, 7, -235, 0, 5, 7,235, 0, 24, 7,235, 0, 25, 7,200, 0, 26, 7, 23, 0, 52, 0, 0, 0,111, 5, 0, 0, 27, 7, 2, 0,159, 5, - 2, 0,160, 5, 2, 0, 28, 7, 2, 0, 37, 0, 2, 0,249, 6, 2, 0, 26, 6, 2, 0, 19, 0, 40, 0,126, 0,245, 0, 6, 7, - 12, 0, 29, 7, 12, 0,110, 5, 12, 0, 30, 7, 12, 0, 31, 7,246, 0, 21, 0,246, 0, 0, 0,246, 0, 1, 0,198, 0,165, 5, - 23, 0, 32, 7, 23, 0, 33, 7, 2, 0,159, 5, 2, 0,160, 5, 2, 0, 34, 7, 2, 0, 35, 7, 2, 0, 36, 7, 2, 0, 19, 0, - 7, 0, 10, 2, 2, 0,248, 6, 2, 0,252, 6, 4, 0, 43, 0,247, 0, 6, 7, 12, 0, 37, 7, 12, 0, 38, 7, 12, 0, 30, 7, - 0, 0, 39, 7, 9, 0, 40, 7,248, 0, 11, 0, 0, 0, 41, 7, 2, 0, 42, 7, 2, 0, 43, 7, 2, 0, 44, 7, 2, 0, 45, 7, - 2, 0,121, 4, 2, 0,116, 4,200, 0, 46, 7, 47, 0, 47, 7, 4, 0, 48, 7, 4, 0, 49, 7,249, 0, 1, 0, 0, 0, 50, 7, -250, 0, 8, 0, 58, 0, 51, 7, 58, 0, 52, 7,250, 0, 53, 7,250, 0, 54, 7,250, 0, 55, 7, 2, 0,134, 0, 2, 0, 19, 0, - 4, 0, 56, 7,251, 0, 4, 0, 4, 0,228, 5, 4, 0, 57, 7, 4, 0,233, 5, 4, 0, 58, 7,252, 0, 2, 0, 4, 0, 59, 7, - 4, 0, 60, 7,253, 0, 7, 0, 7, 0, 61, 7, 7, 0, 62, 7, 7, 0, 63, 7, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 3, 4, - 7, 0, 64, 7,254, 0, 6, 0, 0, 0, 65, 7, 0, 0,193, 5, 50, 0,142, 0, 2, 0,110, 0, 2, 0,120, 4, 4, 0, 37, 0, -255, 0, 21, 0,255, 0, 0, 0,255, 0, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0, 66, 7, 4, 0, 67, 7, - 4, 0, 68, 7,249, 0, 69, 7, 0, 0, 65, 7, 4, 0, 70, 7, 4, 0, 71, 7,254, 0, 6, 3,251, 0, 72, 7,252, 0, 73, 7, -253, 0, 74, 7,250, 0, 75, 7,250, 0, 76, 7,250, 0, 77, 7, 58, 0, 78, 7, 58, 0, 79, 7, 0, 1, 12, 0, 0, 0,191, 1, - 9, 0,196, 0, 0, 0,197, 0, 4, 0,200, 0, 4, 0,208, 0, 9, 0,201, 0, 7, 0,203, 0, 7, 0,204, 0, 9, 0, 80, 7, - 9, 0, 81, 7, 9, 0,205, 0, 9, 0,207, 0, 1, 1, 43, 0, 1, 1, 0, 0, 1, 1, 1, 0, 9, 0, 82, 7, 9, 0, 26, 0, - 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 92, 0, 4, 0, 83, 7, 4, 0, 84, 7, 4, 0, 67, 7, - 4, 0, 68, 7, 4, 0, 85, 7, 4, 0,219, 0, 4, 0, 86, 7, 4, 0, 87, 7, 7, 0,233, 4, 7, 0, 88, 7, 4, 0,131, 0, - 4, 0, 89, 7,255, 0, 90, 7, 36, 0, 80, 0, 47, 0,139, 0, 50, 0,142, 0, 7, 0, 91, 7, 7, 0, 92, 7, 0, 1, 4, 1, - 1, 1, 93, 7, 1, 1, 94, 7, 1, 1, 95, 7, 12, 0, 96, 7, 2, 1, 97, 7, 3, 1, 98, 7, 7, 0, 99, 7, 7, 0,100, 7, - 4, 0,101, 7, 7, 0,102, 7, 9, 0,103, 7, 4, 0,104, 7, 4, 0,105, 7, 4, 0,106, 7, 7, 0,107, 7, 4, 1, 4, 0, - 4, 1, 0, 0, 4, 1, 1, 0, 12, 0,108, 7, 1, 1,109, 7,185, 0, 6, 0, 12, 0,110, 7, 12, 0, 96, 7, 12, 0,111, 7, - 1, 1,112, 7, 0, 0,113, 7, 0, 0,114, 7, 5, 1, 4, 0, 7, 0,115, 7, 7, 0,113, 0, 2, 0,116, 7, 2, 0,117, 7, - 6, 1, 6, 0, 7, 0,118, 7, 7, 0,119, 7, 7, 0,120, 7, 7, 0,121, 7, 4, 0,122, 7, 4, 0,123, 7, 7, 1, 12, 0, - 7, 0,124, 7, 7, 0,125, 7, 7, 0,126, 7, 7, 0,127, 7, 7, 0,128, 7, 7, 0,129, 7, 7, 0,130, 7, 7, 0,131, 7, - 7, 0,132, 7, 7, 0,133, 7, 4, 0,154, 2, 4, 0,134, 7, 8, 1, 2, 0, 7, 0,210, 4, 7, 0, 37, 0, 9, 1, 5, 0, - 7, 0,135, 7, 7, 0,136, 7, 4, 0, 94, 0, 4, 0,116, 2, 4, 0,137, 7, 10, 1, 6, 0, 10, 1, 0, 0, 10, 1, 1, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,138, 7, 2, 0, 57, 0, 11, 1, 8, 0, 11, 1, 0, 0, 11, 1, 1, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 2, 0,138, 7, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,131, 0, 12, 1, 45, 0, 12, 1, 0, 0, 12, 1, 1, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,138, 7, 2, 0,215, 0, 2, 0,177, 3, 2, 0,139, 7, 7, 0,140, 7, 7, 0, 93, 0, - 7, 0,167, 2, 4, 0,141, 7, 4, 0, 82, 0, 4, 0,118, 2, 7, 0,142, 7, 7, 0,143, 7, 7, 0,144, 7, 7, 0,145, 7, - 7, 0,146, 7, 7, 0,147, 7, 7, 0,164, 2, 7, 0, 1, 1, 7, 0,148, 7, 7, 0,149, 7, 7, 0, 37, 0, 7, 0,150, 7, - 7, 0,151, 7, 7, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7, 2, 0,158, 7, - 2, 0,159, 7, 2, 0,160, 7, 2, 0,123, 5, 2, 0,161, 7, 2, 0,211, 1, 2, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, - 7, 0,213, 0, 13, 1,165, 7, 65, 0,164, 1, 14, 1, 16, 0, 14, 1, 0, 0, 14, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0,138, 7, 2, 0,215, 0, 7, 0,159, 2, 7, 0,160, 2, 7, 0,161, 2, 7, 0,255, 1, 7, 0,162, 2, 7, 0,163, 2, - 7, 0,166, 7, 7, 0,164, 2, 7, 0,166, 2, 7, 0,167, 2,212, 0, 5, 0, 2, 0, 17, 0, 2, 0, 56, 7, 2, 0, 19, 0, - 2, 0,167, 7, 27, 0, 1, 6,211, 0, 3, 0, 4, 0, 69, 0, 4, 0,168, 7,212, 0, 2, 0, 15, 1, 11, 0, 15, 1, 0, 0, - 15, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0,169, 7, 4, 0, 22, 0, 4, 0,170, 7, 2, 0, 19, 0, 2, 0, 37, 0, - 9, 0,171, 7, 9, 0,172, 7, 16, 1, 5, 0, 0, 0, 20, 0, 7, 0, 21, 1, 7, 0,173, 7, 4, 0,174, 7, 4, 0, 37, 0, - 17, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 18, 1, 4, 0, 0, 0, 20, 0, 64, 0,175, 7, - 7, 0, 21, 1, 7, 0, 37, 0, 19, 1, 6, 0, 2, 0,176, 7, 2, 0,177, 7, 2, 0, 17, 0, 2, 0,178, 7, 0, 0,179, 7, - 0, 0,180, 7, 20, 1, 5, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0,181, 7, 0, 0,182, 7, 21, 1, 3, 0, - 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 22, 1, 4, 0, 2, 0,183, 7, 2, 0,184, 7, 2, 0, 19, 0, 2, 0, 37, 0, - 23, 1, 6, 0, 0, 0, 20, 0, 0, 0,185, 7, 2, 0,186, 7, 2, 0,164, 2, 2, 0, 14, 1, 2, 0, 70, 0, 24, 1, 5, 0, - 0, 0, 20, 0, 7, 0,113, 0, 7, 0, 5, 4, 2, 0, 19, 0, 2, 0,130, 2, 25, 1, 3, 0, 0, 0, 20, 0, 4, 0,118, 2, - 4, 0,183, 7, 26, 1, 7, 0, 0, 0, 20, 0, 7, 0, 5, 4, 0, 0,187, 7, 0, 0,188, 7, 2, 0, 14, 1, 2, 0, 43, 0, - 4, 0,189, 7, 27, 1, 3, 0, 32, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7, 28, 1, 18, 0, 28, 1, 0, 0, 28, 1, 1, 0, - 2, 0, 17, 0, 2, 0,169, 7, 2, 0, 19, 0, 2, 0,193, 7, 2, 0,194, 7, 2, 0,195, 7, 2, 0, 43, 0, 2, 0, 70, 0, - 0, 0, 20, 0, 9, 0, 2, 0, 29, 1,196, 7, 32, 0, 45, 0, 2, 0,216, 4, 2, 0, 99, 7, 2, 0,197, 7, 2, 0, 37, 0, - 30, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,198, 7, 2, 0, 19, 0, 2, 0,130, 2, 2, 0,199, 7, 4, 0,200, 7, - 4, 0,201, 7, 4, 0,202, 7, 4, 0,203, 7, 4, 0,204, 7, 31, 1, 1, 0, 0, 0,205, 7, 32, 1, 4, 0, 43, 0,227, 5, - 0, 0,206, 7, 4, 0, 14, 1, 4, 0, 19, 0, 29, 1, 18, 0, 29, 1, 0, 0, 29, 1, 1, 0, 29, 1,207, 7, 2, 0, 17, 0, - 2, 0, 19, 0, 2, 0,208, 7, 2, 0,195, 7, 2, 0,169, 7, 2, 0,209, 7, 2, 0, 70, 0, 2, 0,161, 1, 0, 0, 20, 0, - 9, 0, 2, 0, 33, 1,196, 7, 28, 1,210, 7, 2, 0, 15, 0, 2, 0,211, 7, 4, 0,212, 7, 34, 1, 3, 0, 4, 0,190, 2, - 4, 0, 37, 0, 32, 0, 45, 0, 35, 1, 12, 0,152, 0,213, 7, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,140, 7, 4, 0, 93, 0, - 0, 0, 20, 0, 0, 0,214, 7, 2, 0,215, 7, 2, 0,216, 7, 2, 0,217, 7, 2, 0,218, 7, 7, 0,219, 7, 36, 1, 10, 0, - 2, 0, 19, 0, 2, 0,220, 7, 4, 0,140, 7, 4, 0, 93, 0, 2, 0,221, 7, 2, 1, 97, 7, 2, 0, 17, 0, 2, 0,222, 7, - 2, 0,223, 7, 2, 0,224, 7, 37, 1, 7, 0, 2, 0, 19, 0, 2, 0,220, 7, 4, 0,140, 7, 4, 0, 93, 0, 2, 0, 17, 0, - 2, 0,225, 7, 7, 0,137, 3, 38, 1, 11, 0, 4, 0,190, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 78, 0,226, 7, - 0, 0, 20, 0, 7, 0,227, 7, 7, 0,228, 7, 7, 0, 40, 3, 2, 0,229, 7, 2, 0,230, 7, 39, 1, 5, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 4, 0, 37, 0, 47, 0,139, 0, 32, 0, 55, 5, 40, 1, 5, 0, 4, 0, 19, 0, 4, 0, 17, 0, 0, 0, 20, 0, - 0, 0,181, 7, 32, 0, 45, 0, 41, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,169, 7, 2, 0, 41, 3, 7, 0,231, 7, - 7, 0,232, 7, 7, 0, 9, 1, 7, 0, 10, 1, 7, 0, 17, 3, 7, 0, 20, 3, 7, 0,233, 7, 7, 0,234, 7, 32, 0,235, 7, - 42, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,140, 7, 4, 0, 93, 0, 0, 0, 20, 0, 0, 0,214, 7, 2, 0, 43, 0, - 2, 0, 64, 0, 2, 0,236, 7, 2, 0,237, 7, 43, 1, 8, 0, 32, 0, 45, 0, 7, 0,161, 2, 7, 0,238, 7, 7, 0,239, 7, - 7, 0,156, 2, 2, 0, 19, 0, 2, 0,130, 2, 7, 0,240, 7, 44, 1, 12, 0, 2, 0, 17, 0, 2, 0, 14, 1, 2, 0, 19, 0, - 2, 0,164, 2, 2, 0,190, 2, 2, 0,241, 7, 4, 0, 37, 0, 7, 0,242, 7, 7, 0,243, 7, 7, 0,244, 7, 7, 0,245, 7, - 0, 0,246, 7, 45, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,140, 7, 4, 0, 93, 0, 0, 0, 20, 0, 2, 0, 81, 4, - 2, 0, 64, 0, 2, 0,236, 7, 2, 0,237, 7, 65, 0,164, 1, 46, 1, 7, 0, 4, 0,118, 2, 4, 0,247, 7, 4, 0,248, 7, - 4, 0,249, 7, 7, 0,250, 7, 7, 0,251, 7, 0, 0,187, 7, 47, 1, 7, 0, 0, 0,252, 7, 32, 0,253, 7, 0, 0,191, 7, - 2, 0,254, 7, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0,192, 7, 48, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,140, 7, - 4, 0, 93, 0, 0, 0,255, 7, 0, 0, 0, 8, 49, 1, 1, 0, 4, 0, 19, 0, 50, 1, 6, 0, 0, 0, 96, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 4, 0, 1, 8, 7, 0, 2, 8, 43, 0,227, 5, 51, 1, 4, 0, 0, 0,184, 0, 2, 0, 19, 0, 4, 0, 17, 0, - 32, 0, 45, 0, 52, 1, 2, 0, 4, 0, 17, 0, 4, 0,148, 5, 33, 1, 10, 0, 33, 1, 0, 0, 33, 1, 1, 0, 33, 1,207, 7, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,169, 7, 2, 0, 3, 8, 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 53, 1, 10, 0, - 7, 0, 40, 3, 7, 0, 4, 8, 7, 0, 5, 8, 7, 0, 6, 8, 7, 0, 7, 8, 4, 0, 19, 0, 7, 0,241, 7, 7, 0, 8, 8, - 7, 0, 9, 8, 7, 0, 37, 0, 2, 1, 20, 0, 27, 0, 31, 0, 0, 0,195, 0, 54, 1, 10, 8, 9, 0, 11, 8, 44, 0,154, 0, - 44, 0, 12, 8, 9, 0, 13, 8, 36, 0, 80, 0, 7, 0,137, 3, 7, 0, 14, 8, 7, 0, 15, 8, 7, 0, 16, 8, 7, 0, 17, 8, - 7, 0, 18, 8, 7, 0, 19, 8, 4, 0, 94, 0, 4, 0, 20, 8, 0, 0, 21, 8, 0, 0, 22, 8, 0, 0, 23, 8, 55, 1, 6, 0, - 27, 0, 31, 0, 7, 0, 24, 8, 7, 0, 25, 8, 7, 0, 26, 8, 2, 0, 27, 8, 2, 0, 28, 8, 56, 1, 15, 0,197, 0, 0, 0, -197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5,244, 0, 29, 8,198, 0,165, 5, 2, 1, 97, 7, 2, 0, 14, 1, - 2, 0,220, 7, 2, 0, 14, 2, 2, 0, 15, 2, 2, 0, 19, 0, 2, 0,170, 5, 4, 0, 70, 0, 57, 1, 6, 0, 57, 1, 0, 0, - 57, 1, 1, 0, 32, 0, 45, 0, 9, 0, 30, 8, 4, 0,220, 0, 4, 0, 37, 0, 65, 0, 4, 0, 27, 0, 31, 0, 12, 0, 31, 8, - 4, 0,136, 0, 7, 0, 32, 8, 58, 1, 25, 0, 58, 1, 0, 0, 58, 1, 1, 0, 58, 1, 38, 0, 12, 0, 33, 8, 0, 0, 20, 0, - 7, 0, 34, 8, 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, 4, 0, 19, 0, 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, - 7, 0, 21, 1, 7, 0,220, 1, 7, 0, 41, 8, 7, 0,116, 2, 7, 0, 42, 8, 7, 0, 43, 8, 7, 0, 44, 8, 7, 0, 45, 8, - 7, 0, 46, 8, 7, 0,177, 0, 2, 0,136, 0, 2, 0,249, 4, 59, 1, 20, 0, 27, 0, 31, 0, 12, 0, 47, 8, 12, 0, 48, 8, - 12, 0, 49, 8, 4, 0, 19, 0, 4, 0,119, 5, 2, 0,168, 2, 2, 0,184, 5, 2, 0,136, 0, 2, 0, 50, 8, 2, 0, 51, 8, - 2, 0, 52, 8, 2, 0, 53, 8, 2, 0, 54, 8, 4, 0, 55, 8, 4, 0, 56, 8, 4, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, - 4, 0, 60, 8, 60, 1, 38, 0, 60, 1, 0, 0, 60, 1, 1, 0, 26, 0, 61, 8, 12, 0, 67, 3, 0, 0, 20, 0, 2, 0, 19, 0, - 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 2, 0, 26, 3, 2, 0, 65, 8, 4, 0,253, 1, 4, 0, 57, 8, 4, 0, 58, 8, - 58, 1, 66, 8, 60, 1, 38, 0, 60, 1, 67, 8, 12, 0, 68, 8, 9, 0, 69, 8, 9, 0, 70, 8, 9, 0, 71, 8, 7, 0, 9, 1, - 7, 0,177, 0, 7, 0, 72, 8, 7, 0,201, 1, 2, 0, 73, 8, 2, 0, 37, 0, 7, 0, 74, 8, 7, 0, 75, 8, 7, 0, 22, 3, - 7, 0, 76, 8, 7, 0, 77, 8, 7, 0, 78, 8, 7, 0, 79, 8, 7, 0, 80, 8, 7, 0, 81, 8, 7, 0,250, 1, 32, 0, 82, 8, -153, 0, 9, 0, 12, 0, 83, 8, 2, 0, 19, 0, 2, 0, 84, 8, 7, 0, 26, 2, 7, 0, 85, 8, 7, 0, 86, 8, 12, 0, 87, 8, - 4, 0, 88, 8, 4, 0, 37, 0, 61, 1, 7, 0, 61, 1, 0, 0, 61, 1, 1, 0, 12, 0, 21, 8, 4, 0, 19, 0, 4, 0, 89, 8, - 0, 0,131, 3,231, 0, 90, 8,152, 0, 7, 0, 27, 0, 31, 0, 12, 0, 91, 8, 12, 0, 83, 8, 12, 0, 92, 8, 12, 0,104, 0, - 4, 0, 19, 0, 4, 0, 93, 8,202, 0, 4, 0, 27, 0, 94, 8, 12, 0, 83, 8, 4, 0, 95, 8, 4, 0, 19, 0, 62, 1, 17, 0, -197, 0, 0, 0,197, 0, 1, 0, 12, 0,110, 5, 4, 0,111, 5, 7, 0,112, 5, 2, 0,113, 5,198, 0,165, 5,152, 0, 9, 3, -202, 0, 96, 8, 0, 0, 14, 1, 0, 0,168, 5, 2, 0, 19, 0, 2, 0, 97, 8, 2, 0,169, 5, 2, 0,170, 5, 2, 0, 98, 8, - 7, 0, 99, 8, 63, 1, 8, 0, 63, 1, 0, 0, 63, 1, 1, 0, 61, 1,100, 8, 36, 0, 80, 0, 12, 0, 12, 3, 4, 0, 19, 0, - 0, 0, 20, 0, 4, 0,101, 8, 64, 1, 5, 0, 64, 1, 0, 0, 64, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, 0, 0,102, 8, - 65, 1, 12, 0, 65, 1, 0, 0, 65, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0,103, 8, 0, 0,104, 8, - 0, 0,102, 8, 7, 0,105, 8, 7, 0,106, 8, 4, 0, 37, 0, 36, 0, 80, 0, 66, 1, 9, 0, 66, 1, 0, 0, 66, 1, 1, 0, - 32, 0,107, 8, 0, 0,108, 8, 7, 0,109, 8, 2, 0,110, 8, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 37, 0, 67, 1, 7, 0, - 43, 0,227, 5, 26, 0, 61, 8, 4, 0, 19, 0, 4, 0,111, 8, 12, 0,112, 8, 32, 0,107, 8, 0, 0,108, 8, 68, 1, 12, 0, - 32, 0,107, 8, 2, 0,113, 8, 2, 0, 19, 0, 2, 0,114, 8, 2, 0,115, 8, 0, 0,108, 8, 32, 0,116, 8, 0, 0,117, 8, - 7, 0,118, 8, 7, 0,220, 1, 7, 0,119, 8, 7, 0,120, 8, 69, 1, 6, 0, 32, 0,107, 8, 4, 0,121, 8, 4, 0,122, 8, - 4, 0, 94, 0, 4, 0, 37, 0, 0, 0,108, 8, 70, 1, 4, 0, 32, 0,107, 8, 4, 0, 19, 0, 4, 0,121, 8, 0, 0,108, 8, - 71, 1, 4, 0, 32, 0,107, 8, 4, 0, 19, 0, 4, 0,121, 8, 0, 0,108, 8, 72, 1, 10, 0, 32, 0,107, 8, 4, 0,123, 8, - 7, 0,130, 0, 4, 0, 19, 0, 2, 0,223, 5, 2, 0,124, 8, 2, 0, 43, 0, 2, 0, 70, 0, 7, 0,125, 8, 0, 0,108, 8, - 73, 1, 4, 0, 32, 0,107, 8, 4, 0, 19, 0, 4, 0,121, 8, 0, 0,108, 8, 74, 1, 10, 0, 32, 0,107, 8, 2, 0, 17, 0, - 2, 0,183, 3, 4, 0, 92, 0, 4, 0, 93, 0, 7, 0,238, 7, 7, 0,239, 7, 4, 0, 37, 0,152, 0,213, 7, 0, 0,108, 8, - 75, 1, 4, 0, 32, 0,107, 8, 4, 0, 27, 3, 4, 0,126, 8, 0, 0,108, 8, 76, 1, 5, 0, 32, 0,107, 8, 7, 0,130, 0, - 4, 0,127, 8, 4, 0, 27, 3, 4, 0, 28, 3, 77, 1, 6, 0, 32, 0,107, 8, 4, 0,128, 8, 4, 0,129, 8, 7, 0,130, 8, - 7, 0,131, 8, 0, 0,108, 8, 78, 1, 16, 0, 32, 0,107, 8, 32, 0, 67, 8, 4, 0, 17, 0, 7, 0,132, 8, 7, 0,133, 8, - 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, 7, 0,140, 8, 2, 0, 19, 0, - 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0, 79, 1, 3, 0, 32, 0,107, 8, 4, 0, 19, 0, 4, 0,123, 5, 80, 1, 5, 0, - 32, 0,107, 8, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,141, 8, 0, 0,108, 8, 81, 1, 10, 0, 32, 0,107, 8, 0, 0,108, 8, - 2, 0,142, 8, 2, 0,143, 8, 0, 0,144, 8, 0, 0,145, 8, 7, 0,146, 8, 7, 0,147, 8, 7, 0,148, 8, 7, 0,149, 8, - 82, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,150, 8, 7, 0,151, 8, 2, 0, 19, 0, - 2, 0,123, 5, 83, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,150, 8, 7, 0,151, 8, - 2, 0, 19, 0, 2, 0,123, 5, 84, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,150, 8, - 7, 0,151, 8, 2, 0, 19, 0, 2, 0,123, 5, 85, 1, 7, 0, 32, 0,107, 8, 0, 0,108, 8, 7, 0, 21, 1, 7, 0, 31, 1, - 2, 0, 19, 0, 2, 0, 14, 1, 4, 0, 37, 0, 86, 1, 5, 0, 32, 0,226, 2, 7, 0, 21, 1, 2, 0,230, 2, 0, 0,232, 2, - 0, 0,152, 8, 87, 1, 10, 0, 87, 1, 0, 0, 87, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0,153, 8, 7, 0,222, 0, - 7, 0,223, 0, 2, 0, 21, 8, 2, 0,154, 8, 32, 0, 45, 0, 88, 1, 22, 0, 88, 1, 0, 0, 88, 1, 1, 0, 2, 0, 19, 0, - 2, 0, 14, 1, 2, 0,155, 8, 2, 0,156, 8, 36, 0, 80, 0,152, 0,213, 7, 32, 0,169, 0, 7, 0, 92, 0, 7, 0, 93, 0, - 7, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 7, 0,160, 8, 7, 0,157, 2, 7, 0,161, 8, 7, 0,215, 7, 7, 0,162, 8, - 0, 0,163, 8, 0, 0,164, 8, 12, 0, 14, 3, 89, 1, 8, 0, 7, 0,228, 1, 7, 0,238, 7, 7, 0,239, 7, 9, 0, 2, 0, - 2, 0,165, 8, 2, 0,166, 8, 2, 0,167, 8, 2, 0,168, 8, 90, 1, 18, 0, 90, 1, 0, 0, 90, 1, 1, 0, 90, 1,169, 8, - 0, 0, 20, 0, 89, 1,170, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,171, 8, 2, 0,172, 8, 2, 0,173, 8, 2, 0,174, 8, - 4, 0, 43, 0, 7, 0,175, 8, 7, 0,176, 8, 4, 0,177, 8, 4, 0,178, 8, 90, 1,179, 8, 91, 1,180, 8, 92, 1, 33, 0, - 92, 1, 0, 0, 92, 1, 1, 0, 92, 1,181, 8, 0, 0, 20, 0, 0, 0,182, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 66, 7, - 2, 0, 99, 7, 2, 0,183, 8, 2, 0,138, 0, 2, 0,172, 8, 2, 0, 56, 7, 12, 0,208, 7, 12, 0,184, 8, 27, 0, 1, 6, - 9, 0,185, 8, 7, 0,175, 8, 7, 0,176, 8, 7, 0,255, 1, 7, 0,186, 8, 2, 0,187, 8, 2, 0,188, 8, 7, 0,189, 8, - 7, 0,190, 8, 2, 0,191, 8, 2, 0,192, 8, 9, 0,193, 8, 24, 0,194, 8, 24, 0,195, 8, 24, 0,196, 8, 93, 1,155, 0, - 94, 1,197, 8, 91, 1, 8, 0, 91, 1, 0, 0, 91, 1, 1, 0, 92, 1,198, 8, 92, 1,199, 8, 90, 1,200, 8, 90, 1,179, 8, - 4, 0, 19, 0, 4, 0, 37, 0, 59, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,201, 8, 12, 0,202, 8, 89, 1,203, 8, - 12, 0,204, 8, 4, 0, 17, 0, 4, 0,205, 8, 4, 0,206, 8, 4, 0,207, 8, 12, 0,208, 8, 94, 1,209, 8, 90, 1,210, 8, - 90, 1,211, 8, 9, 0,212, 8, 9, 0,213, 8, 4, 0,214, 8, 9, 0,215, 8, 9, 0,216, 8, 9, 0,217, 8, 95, 1, 6, 0, - 4, 0,129, 0, 4, 0,131, 0, 4, 0, 56, 7, 0, 0,218, 8, 0, 0,219, 8, 2, 0, 37, 0, 96, 1, 16, 0, 2, 0, 12, 7, - 2, 0, 13, 7, 2, 0,220, 8, 2, 0, 5, 8, 2, 0,221, 8, 2, 0, 68, 0, 7, 0,156, 2, 7, 0,222, 8, 7, 0,223, 8, - 2, 0, 35, 1, 0, 0,224, 8, 0, 0,232, 4, 2, 0,225, 8, 2, 0, 37, 0, 4, 0,226, 8, 4, 0,227, 8, 97, 1, 9, 0, - 7, 0,228, 8, 7, 0,229, 8, 7, 0, 19, 8, 7, 0,113, 0, 7, 0,230, 8, 7, 0,190, 5, 2, 0,231, 8, 0, 0,232, 8, - 0, 0, 37, 0, 98, 1, 4, 0, 7, 0,233, 8, 7, 0,234, 8, 2, 0,231, 8, 2, 0, 37, 0, 99, 1, 3, 0, 7, 0,235, 8, - 7, 0,236, 8, 7, 0, 15, 0,100, 1, 7, 0, 0, 0,191, 1, 2, 0,118, 4, 2, 0,119, 4, 2, 0,120, 4, 2, 0, 69, 4, - 4, 0,131, 0, 4, 0,181, 3,101, 1, 7, 0, 7, 0,237, 8, 7, 0,238, 8, 7, 0,239, 8, 7, 0, 10, 2, 7, 0,240, 8, - 7, 0,241, 8, 7, 0,242, 8,102, 1, 4, 0, 2, 0,243, 8, 2, 0,244, 8, 2, 0,245, 8, 2, 0,246, 8,103, 1, 2, 0, - 7, 0, 5, 0, 7, 0, 6, 0,104, 1, 2, 0, 0, 0,171, 0, 0, 0,247, 8,105, 1, 1, 0, 0, 0, 20, 0,106, 1, 10, 0, - 0, 0,248, 8, 0, 0,249, 8, 0, 0,173, 5, 0, 0,250, 8, 2, 0,220, 8, 2, 0,251, 8, 7, 0,252, 8, 7, 0,253, 8, - 7, 0,254, 8, 7, 0,161, 8,107, 1, 2, 0, 9, 0,255, 8, 9, 0, 0, 9,108, 1, 11, 0, 0, 0,120, 4, 0, 0, 17, 0, - 0, 0,231, 8, 0, 0,113, 0, 0, 0, 1, 9, 0, 0,110, 0, 0, 0,184, 0, 7, 0, 2, 9, 7, 0, 3, 9, 7, 0, 4, 9, - 7, 0, 5, 9,109, 1, 8, 0, 7, 0,176, 7, 7, 0,130, 0, 7, 0,232, 4, 7, 0, 82, 2, 7, 0, 6, 9, 7, 0,209, 0, - 7, 0, 7, 9, 4, 0, 17, 0,110, 1, 4, 0, 2, 0, 8, 9, 2, 0, 9, 9, 2, 0, 10, 9, 2, 0, 37, 0,111, 1, 1, 0, - 0, 0, 20, 0,112, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0, 2, 0, 11, 9,113, 1, 10, 0, 2, 0,122, 3, - 2, 0, 19, 0, 7, 0, 5, 4, 7, 0, 12, 9, 7, 0, 13, 9, 7, 0, 14, 9, 7, 0, 15, 9,112, 1, 16, 9,112, 1, 17, 9, -112, 1, 18, 9, 62, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0, 24, 0, 19, 9, 24, 0, 20, 9,113, 1, 21, 9, 7, 0, 22, 9, - 7, 0, 23, 9, 7, 0, 24, 9, 7, 0, 25, 9,114, 1, 4, 0, 48, 0,150, 2, 7, 0, 26, 9, 7, 0, 94, 1, 7, 0, 37, 0, -176, 0, 17, 0, 27, 0, 31, 0,114, 1, 27, 9, 62, 0, 16, 9, 52, 0, 78, 1, 2, 0, 19, 0, 2, 0, 77, 5, 4, 0,110, 0, - 7, 0, 28, 9, 7, 0, 7, 2, 7, 0, 29, 9, 7, 0, 30, 9, 7, 0, 94, 1, 7, 0, 31, 9, 2, 0, 48, 1, 0, 0, 32, 9, - 0, 0,115, 3, 0, 0, 96, 0,115, 1, 10, 0, 4, 0, 17, 0, 4, 0,130, 0, 4, 0, 19, 0, 4, 0, 88, 3, 4, 0, 33, 9, - 4, 0, 34, 9, 4, 0, 35, 9, 0, 0, 96, 0, 0, 0, 20, 0, 9, 0, 2, 0, 89, 0, 6, 0,115, 1, 36, 9, 4, 0, 37, 9, - 4, 0, 38, 9, 4, 0, 39, 9, 4, 0, 37, 0, 9, 0, 40, 9,116, 1, 5, 0, 7, 0, 77, 2, 7, 0,190, 2, 7, 0,220, 1, - 2, 0, 41, 9, 2, 0, 37, 0,117, 1, 5, 0, 7, 0, 77, 2, 7, 0, 42, 9, 7, 0, 43, 9, 7, 0, 44, 9, 7, 0,190, 2, -118, 1, 7, 0, 4, 0, 45, 9, 4, 0, 46, 9, 4, 0, 47, 9, 7, 0, 48, 9, 7, 0, 49, 9, 7, 0, 50, 9, 7, 0, 51, 9, -119, 1, 8, 0,119, 1, 0, 0,119, 1, 1, 0, 32, 0, 45, 0, 4, 0,213, 2, 2, 0, 19, 0, 2, 0, 57, 0, 7, 0,190, 2, - 7, 0,184, 7,120, 1, 26, 0, 32, 0, 52, 9,117, 1, 84, 3,117, 1, 53, 9,116, 1, 54, 9,117, 1,165, 7, 7, 0, 55, 9, - 7, 0, 56, 9, 7, 0, 57, 9, 7, 0, 58, 9, 7, 0, 49, 9, 7, 0, 50, 9, 7, 0,190, 2, 7, 0,167, 2, 7, 0, 59, 9, - 7, 0, 60, 9, 7, 0,110, 0, 7, 0, 61, 9, 4, 0, 45, 9, 4, 0, 62, 9, 4, 0, 37, 0, 4, 0, 82, 0, 4, 0, 63, 9, - 2, 0, 19, 0, 2, 0, 64, 9, 2, 0, 65, 9, 2, 0,118, 3,121, 1,117, 0, 27, 0, 31, 0, 39, 0, 75, 0, 4, 0, 19, 0, - 2, 0, 17, 0, 2, 0,142, 8, 2, 0, 66, 9, 2, 0, 67, 9, 2, 0, 73, 8, 2, 0, 68, 9, 2, 0, 69, 9, 2, 0, 70, 9, - 2, 0, 71, 9, 2, 0, 72, 9, 2, 0, 73, 9, 2, 0, 74, 9, 2, 0, 75, 9, 2, 0, 76, 9, 2, 0, 77, 9, 2, 0, 78, 9, - 2, 0, 79, 9, 2, 0, 80, 9, 2, 0, 81, 9, 2, 0,211, 1, 2, 0,158, 7, 2, 0,134, 7, 2, 0, 82, 9, 2, 0, 83, 9, - 2, 0,116, 3, 2, 0,117, 3, 2, 0, 84, 9, 2, 0, 85, 9, 2, 0, 86, 9, 2, 0, 87, 9, 2, 0, 88, 9, 2, 0, 89, 9, - 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 2, 0, 93, 9, 2, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, 7, 0, 97, 9, - 7, 0,140, 7, 7, 0, 93, 0, 7, 0,167, 2, 7, 0,146, 7, 7, 0, 98, 9, 7, 0, 99, 9, 7, 0,100, 9, 4, 0,141, 7, - 4, 0,139, 7, 4, 0,101, 9, 7, 0,142, 7, 7, 0,143, 7, 7, 0,144, 7, 7, 0,102, 9, 7, 0,103, 9, 7, 0,104, 9, - 7, 0,105, 9, 7, 0,106, 9, 7, 0,107, 9, 7, 0,108, 9, 7, 0,109, 9, 7, 0, 40, 3, 7, 0,110, 0, 7, 0,110, 9, - 7, 0,111, 9, 7, 0,112, 9, 7, 0,113, 9, 7, 0,114, 9, 7, 0,115, 9, 7, 0,116, 9, 4, 0,117, 9, 4, 0,118, 9, - 7, 0,119, 9, 7, 0,120, 9, 7, 0,121, 9, 7, 0,122, 9, 7, 0,123, 9, 7, 0, 57, 0, 7, 0,124, 9, 7, 0,125, 9, - 7, 0,112, 3, 7, 0,110, 3, 7, 0,111, 3, 7, 0,126, 9, 7, 0,127, 9, 7, 0,128, 9, 7, 0,129, 9, 7, 0,130, 9, - 7, 0,131, 9, 7, 0,132, 9, 7, 0,133, 9, 7, 0,134, 9, 7, 0,135, 9, 7, 0,136, 9, 7, 0,137, 9, 7, 0,138, 9, - 4, 0,139, 9, 4, 0,140, 9, 7, 0, 47, 3, 7, 0,141, 9, 7, 0,142, 9, 7, 0,143, 9, 7, 0,144, 9, 7, 0,145, 9, - 7, 0,146, 9, 7, 0,147, 9, 0, 0,148, 9, 65, 0, 73, 3, 65, 0,149, 9, 32, 0,150, 9, 32, 0,151, 9, 36, 0, 80, 0, -155, 0, 71, 3,155, 0,152, 9,142, 0, 39, 0,142, 0, 0, 0,142, 0, 1, 0,121, 1,153, 9,120, 1,163, 3,118, 1, 67, 8, -122, 1,154, 9, 9, 0,155, 9,123, 1,156, 9,123, 1,157, 9, 12, 0,158, 9, 12, 0,159, 9,156, 0, 72, 3, 32, 0,160, 9, - 32, 0,161, 9, 32, 0, 38, 0, 12, 0,162, 9, 12, 0,163, 9, 12, 0,164, 9, 7, 0,213, 0, 7, 0, 92, 4, 4, 0,118, 2, - 4, 0, 19, 0, 4, 0,141, 7, 4, 0,165, 9, 4, 0,166, 9, 4, 0,167, 9, 4, 0, 57, 0, 2, 0,220, 0, 2, 0,168, 9, - 2, 0,169, 9, 2, 0, 65, 3, 2, 0,170, 9, 2, 0,118, 3, 0, 0,171, 9, 2, 0,172, 9, 2, 0,173, 9, 2, 0,174, 9, - 9, 0,175, 9,131, 0,202, 3,129, 0, 34, 0,124, 1,176, 9, 7, 0,174, 3, 7, 0,177, 9, 7, 0,178, 9, 7, 0, 8, 4, - 7, 0,179, 9, 7, 0, 50, 3, 7, 0, 40, 3, 7, 0,180, 9, 7, 0, 9, 2, 7, 0,181, 9, 7, 0,182, 9, 7, 0,183, 9, - 7, 0,184, 9, 7, 0,185, 9, 7, 0,186, 9, 7, 0,175, 3, 7, 0,187, 9, 7, 0,188, 9, 7, 0,189, 9, 7, 0,176, 3, - 7, 0,172, 3, 7, 0,173, 3, 4, 0,190, 9, 4, 0, 94, 0, 4, 0,191, 9, 4, 0,192, 9, 2, 0,193, 9, 2, 0,194, 9, - 2, 0,195, 9, 2, 0,196, 9, 2, 0,197, 9, 2, 0, 37, 0, 4, 0, 70, 0,130, 0, 8, 0,124, 1,198, 9, 7, 0,199, 9, - 7, 0,200, 9, 7, 0,165, 1, 7, 0,201, 9, 4, 0, 94, 0, 2, 0,202, 9, 2, 0,203, 9,125, 1, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,204, 9,126, 1, 6, 0,126, 1, 0, 0,126, 1, 1, 0,125, 1,205, 9, 4, 0,206, 9, - 2, 0,207, 9, 2, 0, 19, 0,127, 1, 5, 0,127, 1, 0, 0,127, 1, 1, 0, 12, 0,208, 9, 4, 0,209, 9, 4, 0, 19, 0, -128, 1, 9, 0,128, 1, 0, 0,128, 1, 1, 0, 12, 0,129, 0,127, 1,210, 9, 4, 0, 19, 0, 2, 0,207, 9, 2, 0,211, 9, - 7, 0, 95, 0, 0, 0,212, 9,190, 0, 6, 0, 27, 0, 31, 0, 12, 0,134, 4, 4, 0, 19, 0, 2, 0,213, 9, 2, 0,214, 9, - 9, 0,215, 9,129, 1, 6, 0,129, 1, 0, 0,129, 1, 1, 0, 4, 0, 17, 0, 4, 0, 23, 0, 0, 0,216, 9, 0, 0,217, 9, -130, 1, 5, 0, 12, 0,218, 9, 4, 0,219, 9, 4, 0,220, 9, 4, 0, 19, 0, 4, 0, 37, 0,131, 1, 13, 0, 27, 0, 31, 0, -132, 1,221, 9,132, 1,222, 9, 12, 0,223, 9, 4, 0,224, 9, 2, 0,225, 9, 2, 0, 37, 0, 12, 0,226, 9, 12, 0,227, 9, -130, 1,228, 9, 12, 0,229, 9, 12, 0,230, 9, 12, 0,231, 9,132, 1, 30, 0,132, 1, 0, 0,132, 1, 1, 0, 9, 0,232, 9, - 4, 0,247, 6, 4, 0, 37, 0,200, 0,164, 5,200, 0,233, 9, 0, 0,234, 9, 2, 0,235, 9, 2, 0,236, 9, 2, 0, 12, 7, - 2, 0, 13, 7, 2, 0,237, 9, 2, 0,238, 9, 2, 0, 88, 3, 2, 0, 26, 6, 2, 0,239, 9, 2, 0,240, 9, 4, 0,161, 1, -133, 1,241, 9,134, 1,242, 9,135, 1,243, 9, 4, 0,244, 9, 4, 0,245, 9, 9, 0,246, 9, 12, 0,247, 9, 12, 0,227, 9, - 12, 0, 30, 7, 12, 0,248, 9, 12, 0,249, 9,136, 1, 12, 0,136, 1, 0, 0,136, 1, 1, 0, 0, 0,250, 9,137, 1,251, 9, - 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,252, 9, 2, 0,253, 9, 2, 0,254, 9, 2, 0,255, 9, 2, 0, 0, 10, 2, 0, 37, 0, -138, 1, 6, 0,138, 1, 0, 0,138, 1, 1, 0, 12, 0, 1, 10, 0, 0, 2, 10, 4, 0, 3, 10, 4, 0, 4, 10,208, 0, 8, 0, -208, 0, 0, 0,208, 0, 1, 0, 0, 0,250, 9, 26, 0, 30, 0,139, 1, 6, 7, 9, 0, 5, 10,137, 1,251, 9,130, 1, 6, 10, -133, 1, 23, 0,133, 1, 0, 0,133, 1, 1, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0, 5, 0, 2, 0, 6, 0, 2, 0, 7, 10, - 2, 0, 8, 10, 2, 0, 9, 10, 2, 0, 10, 10, 0, 0, 11, 10, 0, 0, 37, 0, 2, 0,252, 9, 2, 0,253, 9, 2, 0,254, 9, - 2, 0,255, 9, 2, 0, 0, 10, 2, 0, 43, 0, 0, 0, 12, 10, 2, 0, 13, 10, 2, 0, 14, 10, 4, 0, 70, 0, 9, 0, 5, 10, -140, 1, 8, 0,140, 1, 0, 0,140, 1, 1, 0, 9, 0, 2, 0, 9, 0, 15, 10, 0, 0,131, 3, 2, 0, 17, 0, 2, 0, 19, 0, - 7, 0, 16, 10,141, 1, 5, 0, 7, 0, 17, 10, 4, 0, 18, 10, 4, 0, 19, 10, 4, 0, 14, 1, 4, 0, 19, 0,142, 1, 6, 0, - 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, 4, 0, 17, 0, 4, 0, 19, 0,143, 1, 5, 0, 7, 0,238, 7, - 7, 0,239, 7, 7, 0,190, 2, 2, 0,224, 1, 2, 0,225, 1,144, 1, 5, 0,143, 1, 2, 0, 4, 0, 54, 0, 7, 0, 24, 10, - 7, 0,238, 7, 7, 0,239, 7,145, 1, 4, 0, 2, 0, 25, 10, 2, 0, 26, 10, 2, 0, 27, 10, 2, 0, 28, 10,146, 1, 2, 0, - 43, 0,254, 5, 26, 0, 61, 8,147, 1, 3, 0, 24, 0, 29, 10, 4, 0, 19, 0, 4, 0, 37, 0,148, 1, 6, 0, 7, 0,110, 0, - 7, 0,142, 2, 7, 0, 30, 10, 7, 0, 37, 0, 2, 0,219, 0, 2, 0, 31, 10,149, 1, 7, 0,149, 1, 0, 0,149, 1, 1, 0, - 27, 0, 1, 6, 0, 0, 32, 10, 4, 0, 33, 10, 4, 0, 94, 0, 0, 0,131, 3,150, 1, 6, 0, 12, 0,112, 8, 0, 0, 34, 10, - 7, 0, 61, 0, 7, 0, 16, 10, 4, 0, 17, 0, 4, 0, 19, 0,151, 1, 3, 0, 7, 0, 35, 10, 4, 0, 19, 0, 4, 0, 37, 0, -152, 1, 15, 0,152, 1, 0, 0,152, 1, 1, 0, 61, 1,100, 8,150, 1, 62, 0, 12, 0, 14, 3, 35, 0, 50, 0,151, 1, 36, 10, - 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0,255, 0, 4, 0, 33, 10, 0, 0, 32, 10, 4, 0, 37, 10, 7, 0, 38, 10, -153, 1, 2, 0, 0, 0, 39, 10, 0, 0, 40, 10,154, 1, 4, 0,154, 1, 0, 0,154, 1, 1, 0,152, 0,226, 2, 12, 0, 41, 10, -155, 1, 22, 0,155, 1, 0, 0,155, 1, 1, 0, 12, 0, 42, 10,152, 0,213, 7,154, 1, 43, 10, 12, 0, 44, 10, 12, 0, 14, 3, - 0, 0,131, 3, 7, 0, 16, 10, 7, 0, 45, 10, 7, 0, 92, 0, 7, 0, 93, 0, 7, 0,157, 8, 7, 0,158, 8, 7, 0,157, 2, - 7, 0,161, 8, 7, 0,215, 7, 7, 0,162, 8, 2, 0, 46, 10, 2, 0, 47, 10, 2, 0, 19, 0, 2, 0, 17, 0,156, 1, 6, 0, -156, 1, 0, 0,156, 1, 1, 0, 12, 0, 42, 10, 4, 0, 19, 0, 4, 0, 81, 2, 0, 0,131, 3,157, 1, 10, 0,157, 1, 0, 0, -157, 1, 1, 0, 27, 0, 1, 6, 0, 0, 48, 10, 4, 0, 49, 10, 4, 0, 50, 10, 0, 0, 32, 10, 4, 0, 33, 10, 2, 0, 19, 0, - 2, 0, 51, 10,158, 1, 6, 0,158, 1, 0, 0,158, 1, 1, 0, 12, 0, 52, 10, 0, 0,131, 3, 4, 0, 19, 0, 4, 0, 53, 10, -159, 1, 5, 0,159, 1, 0, 0,159, 1, 1, 0, 0, 0, 32, 10, 4, 0, 33, 10, 7, 0,134, 2, 39, 0, 9, 0,152, 0, 9, 3, -152, 0, 54, 10,154, 1, 43, 10, 12, 0, 55, 10,155, 1, 56, 10, 12, 0, 57, 10, 12, 0, 58, 10, 4, 0, 19, 0, 4, 0,220, 0, -160, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0,114, 99,116,105, + 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, + 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, + 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110, +116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105, +109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, + 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, + 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115, +117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111, +108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116, +121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114, +101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103, +115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, + 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, + 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, + 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, + 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, + 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, + 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97, +114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84, +101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114, +111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101, +114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101, +115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99, +101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108, +100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65, +114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109, +111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105, +110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83, +101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80, +114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, + 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, + 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111, +108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, + 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84, +114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114, +109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, + 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108, +117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105, +110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108, +101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99, +114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, + 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97, +116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, + 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66, +111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99, +116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, 99,104,101, 77, +101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110, +116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, 86,101,114,116, +101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97, +116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67, +111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100, +105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97, +116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, + 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, + 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108, +101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, + 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105, +110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105, +110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110, +101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101, +119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, + 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105, +110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111, +112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83, +101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119, +109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84, +114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103, +101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99, +101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105, +109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99, +101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83, +112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 83, +111,117,110,100, 0, 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110, +116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, + 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83, +112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,111, +110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, 0, 83, 99,114, + 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, + 97,121,111,117,116, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84, +121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114, +111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97, +110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83, +101,113,117,101,110, 99,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, + 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, + 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102, +102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112, +101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84, +111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112, +101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97, +121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83, +101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, + 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83, +101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111, +114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, + 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105, +111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111, +114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, + 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99, +116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97, +116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99, +116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, + 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116, +121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, + 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114, +109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, + 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101, 67, +104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114, +111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, + 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67, +111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, + 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82, +111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, + 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105, +111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97, +116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97, +109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,111,110, +115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, + 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, + 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110, +107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, + 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99, +107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, + 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, + 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, + 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100, +101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, + 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, + 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, + 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76, +101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,108, +111,114,115,112,105,108,108, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111, +105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97, +116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75, +101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, + 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108, +101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101, +105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116,105,110, +103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, + 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108, +101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, + 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112, +111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, + 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, + 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, + 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105, +102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111, +110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, + 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111, +110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,116, +101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97, +110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, + 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99, +107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, + 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, + 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, + 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118, +101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97, +116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 84, 76, 69, 78, 1, 0, 1, 0, + 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 16, 0, 16, 0, 32, 0, + 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0, 32, 5,112, 0, 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0, +176, 0, 16, 0,136, 0, 40, 0,184, 5,240, 1, 0, 0, 0, 0, 0, 0, 24, 1,112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, +104, 0, 64, 1, 40, 1, 8, 1,136, 0,216, 1, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, + 16, 0, 32, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0,152, 1, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, + 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 16, 0, 64, 0, + 24, 0, 12, 0, 64, 0, 80, 0,136, 0,104, 0,120, 0,128, 0, 96, 0,128, 0,160, 0, 96, 0, 88, 0,136, 0, 88, 0,112, 0, + 16, 1, 56, 0,192, 0,184, 0,232, 0, 88, 0,120, 0,136, 0,224, 0,136, 0,248, 0, 80, 0,136, 0, 0, 0,152, 0, 48, 0, + 16, 2,160, 0, 0, 0,120, 0, 0, 0, 0, 0, 96, 0, 8, 0, 8, 0, 48, 1,112, 0, 16, 2,104, 0,128, 0, 88, 0, 96, 0, +200, 1,144, 0,136, 0, 80, 0,144, 0,112, 0,208, 0, 16, 0, 16, 1, 48, 0, 0, 0,152, 0,184, 0,104, 0, 48, 0, 24, 0, +120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 12, 0,224, 1, + 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0,168, 3, 64, 0, 24, 0, 16, 0,104, 0, 96, 0, 24, 0,248, 2, 48, 0, + 16, 0,168, 0, 88, 0, 96, 0, 56, 0,192, 1, 32, 0, 8, 0, 24, 0, 80, 2, 0, 0, 0, 0, 88, 0, 96, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 1, 56, 0,144, 0, 64, 0,240, 0,104, 0,248, 0,240, 0, 96, 2,104, 0, 0, 0,168, 0, 0, 0, 24, 1, + 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,120, 2, 64, 0, 24, 0,216, 0, 48, 1, 72, 0,200, 2, 40, 0,136, 1, +104, 0,216, 0,160, 0,136, 1, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2,120, 1, 16, 0, 88, 30, 80, 0, 56, 0,184, 13, +216, 0, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 32, 1, 88, 0, 16, 0, 8, 0, 44, 0, 0, 1,240, 0, +200, 1, 32, 1, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, + 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, + 80, 0, 16, 0, 96, 0, 32, 0, 72, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, + 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0, 40, 1,200, 0, 16, 0,248, 1, 4, 0, 40, 0,120, 0, 64, 1, 88, 0, 56, 0, + 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 48, 0, 8, 0, 40, 0, 72, 0, 72, 0, 48, 0, 48, 0, 24, 0, + 56, 0,104, 0, 16, 0,112, 0, 96, 0, 56, 0, 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0,152, 0, 56, 0, + 16, 0, 8, 1, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 44, 0, 24, 0, 8, 0, 64, 0, 32, 0, 24, 0, + 16, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 32, 0, 12, 0, 56, 0, 24, 0, 72, 0,240, 0, 24, 0, 56, 0, 56, 0, 20, 0, + 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0,208, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, + 40, 0, 24, 1,224, 0,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, + 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0, 0, 1, 40, 0,200, 0,104, 0,112, 0,168, 0, + 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 0, 0, 83, 84, 82, 67,148, 1, 0, 0, + 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, + 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, + 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, 0, 7, 0, 8, 0, + 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, 0, 18, 0, 10, 0, + 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, 0, 17, 0, 20, 0, + 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, 0, 0, 0, 25, 0, + 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, 0, 21, 0, 31, 0, + 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, 0, 4, 0, 38, 0, + 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, 0, 16, 0, 48, 0, + 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 17, 0, + 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 23, 0, 59, 0, + 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, 0, 2, 0, 35, 0, + 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, 0, 2, 0, 65, 0, + 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, 0, 7, 0, 70, 0, + 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, 0, 7, 0, 58, 0, + 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, 0, 32, 0, 6, 0, + 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, 0, 33, 0, 0, 0, + 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, 0, 0, 0, 89, 0, + 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, 0, 32, 0, 94, 0, + 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, 9, 0,102, 0, + 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 16, 0, 19, 0, 29, 0, 31, 0, 72, 0, + 0, 0, 15, 0, 0, 0,106, 0, 2, 0, 17, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, + 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 28, 0, 77, 0, 24, 0,116, 0, 37, 0, 14, 0, 38, 0,117, 0, + 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, 0, 0, 0, 35, 0, + 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0, 17, 0, 4, 0, 67, 0, 39, 0, 32, 0, 19, 0, 29, 0, 0, 0, 32, 0, + 12, 0,128, 0, 40, 0,129, 0, 41, 0,130, 0, 42, 0,131, 0, 42, 0,132, 0, 2, 0,133, 0, 2, 0,134, 0, 2, 0,124, 0, + 2, 0, 17, 0, 2, 0,135, 0, 2, 0, 15, 0, 4, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, 0, 2, 0,140, 0, + 2, 0,141, 0, 2, 0,142, 0, 4, 0,143, 0, 4, 0,144, 0, 35, 0,145, 0, 22, 0,146, 0, 7, 0,147, 0, 4, 0,148, 0, + 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 7, 0,153, 0, 7, 0,154, 0, 43, 0, 65, 0, 2, 0,155, 0, + 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 24, 0,159, 0, 44, 0,160, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, + 0, 0,164, 0, 0, 0,165, 0, 7, 0,166, 0, 7, 0,167, 0, 7, 0,168, 0, 2, 0,169, 0, 2, 0,170, 0, 2, 0,171, 0, + 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, + 7, 0,180, 0, 7, 0,181, 0, 7, 0, 54, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, + 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, + 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, + 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, + 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, + 45, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, 4, 0,223, 0, 4, 0,224, 0, 9, 0,225, 0, + 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, 9, 0,231, 0, 4, 0,232, 0, 4, 0, 35, 0, + 46, 0, 6, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,233, 0, 7, 0, 64, 0, 4, 0, 61, 0, 47, 0, 5, 0, + 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,234, 0, 46, 0,228, 0, 48, 0, 17, 0, 24, 0,159, 0, 39, 0,235, 0, + 49, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,240, 0, + 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,136, 0, 2, 0,244, 0, 2, 0,245, 0, 50, 0, 25, 0, + 2, 0, 17, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,135, 0, 2, 0,249, 0, 4, 0,250, 0, 4, 0,251, 0, + 24, 0,159, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, 7, 0, 0, 1, 7, 0, 1, 1, 2, 0, 2, 1, + 2, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 7, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 7, 0, 9, 1, 47, 0, 10, 1, + 51, 0, 11, 1, 52, 0, 13, 0, 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 17, 0, 2, 0, 15, 1, 2, 0, 16, 1, + 24, 0,159, 0, 7, 0, 17, 1, 4, 0, 18, 1, 0, 0, 19, 1, 7, 0, 20, 1, 4, 0, 21, 1, 4, 0,124, 0, 44, 0, 63, 0, + 19, 0, 29, 0, 31, 0, 72, 0, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, + 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 67, 0, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, + 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 7, 0, 40, 1, 7, 0, 41, 1, 7, 0, 42, 1, + 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 47, 1, 2, 0, 48, 1, 2, 0, 49, 1, 2, 0, 17, 0, + 2, 0, 15, 0, 2, 0,239, 0, 7, 0, 50, 1, 7, 0, 51, 1, 7, 0, 52, 1, 7, 0, 53, 1, 4, 0, 54, 1, 4, 0, 55, 1, + 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 15, 1, 2, 0,122, 0, 4, 0, 21, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, + 7, 0, 58, 1, 7, 0, 59, 1, 7, 0, 87, 0, 37, 0, 60, 1, 53, 0, 61, 1, 28, 0, 77, 0, 39, 0,235, 0, 45, 0, 62, 1, + 47, 0, 10, 1, 48, 0, 63, 1, 22, 0,146, 0, 50, 0, 64, 1, 52, 0, 65, 1, 0, 0, 66, 1, 0, 0,176, 0, 54, 0, 8, 0, + 7, 0, 67, 1, 7, 0, 68, 1, 7, 0,167, 0, 4, 0, 17, 0, 7, 0, 69, 1, 7, 0, 70, 1, 7, 0, 71, 1, 24, 0, 42, 0, + 55, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 72, 1, 2, 0,170, 0, 2, 0, 73, 1, + 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, + 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1, 7, 0, 83, 1, 7, 0, 84, 1, 51, 0, 85, 1, + 2, 0,246, 0, 2, 0, 67, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0, 86, 1, 7, 0, 87, 1, 7, 0, 88, 1, 7, 0, 89, 1, + 7, 0, 90, 1, 2, 0, 91, 1, 2, 0, 92, 1, 2, 0, 93, 1, 2, 0, 94, 1, 0, 0, 95, 1, 0, 0, 96, 1, 2, 0, 97, 1, + 2, 0, 98, 1, 2, 0, 99, 1, 2, 0,100, 1, 2, 0,101, 1, 7, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, + 2, 0,106, 1, 2, 0, 87, 0, 2, 0,107, 1, 2, 0,108, 1, 2, 0,109, 1, 2, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, + 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, + 7, 0,121, 1, 7, 0,122, 1, 2, 0,123, 1, 0, 0,124, 1, 28, 0, 77, 0, 43, 0,125, 1, 2, 0,126, 1, 0, 0,127, 1, + 22, 0,146, 0, 56, 0, 18, 0, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, + 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 2, 0,138, 1, 2, 0,139, 1, 2, 0,140, 1, 2, 0,141, 1, + 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 57, 0,125, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,146, 1, + 2, 0, 17, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, + 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, + 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, + 56, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, + 2, 0,175, 1, 2, 0,176, 1, 2, 0,177, 1, 0, 0,178, 1, 0, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 2, 0,182, 1, + 2, 0,183, 1, 7, 0,184, 1, 7, 0,185, 1, 7, 0,186, 1, 7, 0,187, 1, 2, 0,188, 1, 2, 0,189, 1, 4, 0, 72, 1, + 4, 0,190, 1, 2, 0,191, 1, 2, 0,192, 1, 2, 0,193, 1, 2, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 7, 0,197, 1, + 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1, 7, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, 0, 0,205, 1, + 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 4, 0,209, 1, 0, 0,210, 1, 0, 0,107, 1, 0, 0,211, 1, 0, 0, 66, 1, + 2, 0,212, 1, 2, 0,213, 1, 2, 0,126, 1, 2, 0,214, 1, 2, 0,215, 1, 2, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, + 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 2, 0,155, 0, 2, 0,156, 0, 47, 0,222, 1, 47, 0,223, 1, 0, 0,224, 1, + 0, 0,225, 1, 0, 0,226, 1, 0, 0,227, 1, 2, 0,228, 1, 2, 0,229, 1, 7, 0,230, 1, 7, 0,231, 1, 43, 0,125, 1, + 53, 0, 61, 1, 28, 0, 77, 0, 58, 0,232, 1, 22, 0,146, 0, 7, 0,233, 1, 7, 0,234, 1, 7, 0,235, 1, 7, 0,236, 1, + 7, 0,237, 1, 2, 0,238, 1, 2, 0, 67, 0, 7, 0,239, 1, 7, 0,240, 1, 7, 0,241, 1, 7, 0,242, 1, 7, 0,243, 1, + 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 7, 0,247, 1, 2, 0,248, 1, 2, 0,249, 1, 4, 0,250, 1, 2, 0,251, 1, + 2, 0,252, 1, 12, 0,253, 1, 59, 0, 4, 0, 19, 0, 29, 0, 0, 0,254, 1, 60, 0, 2, 0, 35, 0,145, 0, 61, 0, 26, 0, + 61, 0, 0, 0, 61, 0, 1, 0, 62, 0,255, 1, 4, 0, 0, 2, 4, 0, 1, 2, 4, 0, 2, 2, 4, 0, 3, 2, 4, 0, 4, 2, + 4, 0, 5, 2, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 6, 2, 2, 0, 7, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 2, + 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 11, 2, 7, 0, 12, 2, 7, 0, 13, 2, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0, 21, 0, + 7, 0, 16, 2, 7, 0, 17, 2, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,255, 1, 12, 0, 18, 2, 12, 0, 19, 2, + 12, 0, 20, 2, 28, 0, 77, 0, 57, 0, 21, 2, 0, 0, 17, 0, 0, 0, 22, 2, 2, 0, 23, 2, 2, 0,169, 0, 2, 0, 35, 0, + 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 26, 2, 61, 0, 27, 2, 27, 0, 11, 0, + 7, 0, 28, 2, 7, 0, 29, 2, 7, 0, 30, 2, 7, 0,248, 0, 2, 0, 52, 0, 0, 0, 31, 2, 0, 0, 32, 2, 0, 0, 33, 2, + 0, 0, 34, 2, 0, 0, 35, 2, 0, 0, 36, 2, 26, 0, 7, 0, 7, 0, 37, 2, 7, 0, 29, 2, 7, 0, 30, 2, 2, 0, 33, 2, + 2, 0, 36, 2, 7, 0,248, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, 0, 2, 0, 38, 2, + 2, 0, 36, 2, 2, 0, 17, 0, 2, 0, 39, 2, 2, 0, 40, 2, 2, 0, 41, 2, 2, 0, 42, 2, 2, 0, 43, 2, 2, 0, 44, 2, + 2, 0, 45, 2, 2, 0, 46, 2, 7, 0, 47, 2, 7, 0, 48, 2, 26, 0, 46, 0, 27, 0, 47, 0, 2, 0, 49, 2, 2, 0, 50, 2, + 4, 0, 51, 2, 65, 0, 5, 0, 2, 0, 52, 2, 2, 0, 38, 2, 0, 0, 17, 0, 0, 0, 35, 0, 2, 0, 67, 0, 66, 0, 4, 0, + 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 53, 2, 7, 0, 54, 2, 67, 0, 4, 0, 12, 0, 55, 2, 68, 0, 56, 2, 4, 0, 57, 2, + 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,255, 1, 12, 0, 58, 2, 12, 0, 19, 2, 67, 0, 59, 2, + 24, 0, 60, 2, 24, 0, 61, 2, 24, 0, 62, 2, 28, 0, 77, 0, 70, 0, 63, 2, 30, 0, 64, 2, 57, 0, 21, 2, 12, 0, 65, 2, + 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 2, 0,169, 0, 2, 0, 87, 0, 2, 0, 66, 2, 2, 0, 67, 2, 7, 0, 68, 2, + 7, 0, 69, 2, 4, 0, 70, 2, 2, 0, 35, 0, 2, 0, 23, 2, 2, 0, 17, 0, 2, 0, 71, 2, 7, 0, 72, 2, 7, 0, 73, 2, + 7, 0, 74, 2, 2, 0, 41, 2, 2, 0, 42, 2, 2, 0, 75, 2, 2, 0, 76, 2, 4, 0, 77, 2, 9, 0, 78, 2, 2, 0, 21, 0, + 2, 0, 93, 0, 2, 0, 64, 0, 2, 0, 79, 2, 7, 0, 80, 2, 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, + 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 0, 0, 90, 2, 71, 0, 91, 2, 72, 0, 92, 2, + 0, 0, 93, 2, 59, 0, 94, 2, 59, 0, 95, 2, 59, 0, 96, 2, 59, 0, 97, 2, 4, 0, 98, 2, 7, 0, 99, 2, 4, 0,100, 2, + 4, 0,101, 2, 66, 0,102, 2, 4, 0,103, 2, 4, 0,104, 2, 65, 0,105, 2, 65, 0,106, 2, 73, 0, 39, 0, 19, 0, 29, 0, + 31, 0, 72, 0, 62, 0,255, 1, 28, 0, 77, 0, 30, 0, 64, 2, 57, 0, 21, 2, 74, 0,107, 2, 75, 0,108, 2, 76, 0,109, 2, + 77, 0,110, 2, 78, 0,111, 2, 79, 0,112, 2, 80, 0,113, 2, 81, 0,114, 2, 73, 0,115, 2, 82, 0,116, 2, 83, 0,117, 2, + 84, 0,118, 2, 84, 0,119, 2, 84, 0,120, 2, 4, 0, 51, 0, 4, 0,121, 2, 4, 0,122, 2, 4, 0,123, 2, 4, 0,124, 2, + 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 68, 1, 2, 0,169, 0, 2, 0, 66, 2, 2, 0,125, 2, 2, 0, 17, 0, 2, 0,126, 2, + 2, 0,127, 2, 0, 0,128, 2, 0, 0,129, 2, 2, 0, 23, 2, 85, 0,130, 2, 86, 0,131, 2, 76, 0, 8, 0, 9, 0,132, 2, + 7, 0,133, 2, 4, 0,134, 2, 0, 0, 17, 0, 0, 0,135, 2, 2, 0, 72, 1, 2, 0,136, 2, 2, 0,137, 2, 74, 0, 7, 0, + 4, 0,138, 2, 4, 0,139, 2, 4, 0,140, 2, 4, 0,141, 2, 2, 0, 38, 2, 0, 0,142, 2, 0, 0, 17, 0, 78, 0, 5, 0, + 4, 0,138, 2, 4, 0,139, 2, 0, 0,143, 2, 0, 0,144, 2, 2, 0, 17, 0, 87, 0, 2, 0, 4, 0,145, 2, 7, 0, 30, 2, + 79, 0, 3, 0, 87, 0,146, 2, 4, 0,147, 2, 4, 0, 17, 0, 77, 0, 4, 0, 7, 0,148, 2, 2, 0,149, 2, 0, 0, 17, 0, + 0, 0,144, 2, 80, 0, 4, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 88, 0, 6, 0, 39, 0,132, 2, + 0, 0, 17, 0, 0, 0,135, 2, 2, 0, 72, 1, 2, 0,136, 2, 2, 0,137, 2, 89, 0, 1, 0, 7, 0,150, 2, 90, 0, 5, 0, + 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 4, 0, 35, 0, 81, 0, 1, 0, 7, 0,151, 2, 82, 0, 2, 0, + 4, 0,252, 1, 4, 0, 15, 0, 75, 0, 7, 0, 7, 0,133, 2, 39, 0,132, 2, 0, 0, 17, 0, 0, 0,135, 2, 2, 0, 72, 1, + 2, 0,136, 2, 2, 0,137, 2, 91, 0, 1, 0, 7, 0,152, 2, 92, 0, 1, 0, 4, 0,153, 2, 93, 0, 1, 0, 0, 0,154, 2, + 94, 0, 1, 0, 7, 0,133, 2, 95, 0, 3, 0, 4, 0,155, 2, 0, 0, 90, 0, 7, 0,156, 2, 96, 0, 4, 0, 7, 0,233, 0, + 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 97, 0, 1, 0, 96, 0,134, 2, 98, 0, 5, 0, 4, 0,157, 2, 4, 0,158, 2, + 0, 0, 17, 0, 0, 0, 38, 2, 0, 0,159, 2, 99, 0, 2, 0, 4, 0,160, 2, 4, 0,158, 2,100, 0, 10, 0,100, 0, 0, 0, +100, 0, 1, 0, 98, 0,161, 2, 97, 0,162, 2, 99, 0,163, 2, 4, 0, 51, 0, 4, 0,122, 2, 4, 0,121, 2, 4, 0, 35, 0, + 77, 0,164, 2, 85, 0, 14, 0, 12, 0,165, 2, 77, 0,164, 2, 0, 0,166, 2, 0, 0,167, 2, 0, 0,168, 2, 0, 0,169, 2, + 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0, 17, 0, 84, 0,118, 2, 84, 0,120, 2, 2, 0,173, 2, 0, 0,174, 2, + 86, 0, 8, 0, 4, 0,175, 2, 4, 0,176, 2, 74, 0,177, 2, 78, 0,178, 2, 4, 0,122, 2, 4, 0,121, 2, 4, 0, 51, 0, + 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 0, 72, 1, 4, 0,179, 2, 4, 0, 35, 0, + 0, 0, 18, 0, 38, 0,117, 0, 0, 0,180, 2,102, 0, 6, 0,101, 0,181, 2, 44, 0,182, 2, 24, 0,183, 2, 0, 0,184, 2, + 4, 0,185, 2, 4, 0,186, 2,103, 0, 7, 0,101, 0,181, 2, 2, 0,187, 2, 2, 0,165, 2, 2, 0,188, 2, 2, 0, 88, 0, + 9, 0,189, 2, 9, 0,190, 2,104, 0, 3, 0,101, 0,181, 2, 24, 0,159, 0, 0, 0, 18, 0,105, 0, 5, 0,101, 0,181, 2, + 24, 0,159, 0, 0, 0, 18, 0, 2, 0,191, 2, 0, 0,192, 2,106, 0, 5, 0,101, 0,181, 2, 7, 0, 85, 0, 7, 0,193, 2, + 4, 0,194, 2, 4, 0,195, 2,107, 0, 5, 0,101, 0,181, 2, 24, 0,196, 2, 0, 0, 69, 0, 4, 0, 72, 1, 4, 0, 17, 0, +108, 0, 13, 0,101, 0,181, 2, 24, 0,197, 2, 24, 0,198, 2, 24, 0,199, 2, 24, 0,200, 2, 7, 0,201, 2, 7, 0,202, 2, + 7, 0,193, 2, 7, 0,203, 2, 4, 0,204, 2, 4, 0,205, 2, 4, 0, 88, 0, 4, 0,206, 2,109, 0, 5, 0,101, 0,181, 2, + 2, 0,207, 2, 2, 0, 17, 0, 7, 0,208, 2, 24, 0,209, 2,110, 0, 3, 0,101, 0,181, 2, 7, 0,210, 2, 4, 0, 88, 0, +111, 0, 10, 0,101, 0,181, 2, 7, 0,211, 2, 4, 0,212, 2, 4, 0, 35, 0, 2, 0, 88, 0, 2, 0,213, 2, 2, 0,214, 2, + 2, 0,215, 2, 7, 0,216, 2, 0, 0,217, 2,112, 0, 3, 0,101, 0,181, 2, 7, 0, 35, 0, 4, 0, 15, 0,113, 0, 6, 0, +101, 0,181, 2,114, 0,218, 2,115, 0,219, 2,116, 0,220, 2, 7, 0,221, 2, 4, 0, 15, 0,117, 0, 11, 0,101, 0,181, 2, + 44, 0,182, 2, 24, 0,183, 2, 0, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2, 4, 0,222, 2, 7, 0,223, 2, 4, 0,224, 2, + 0, 0,217, 2, 7, 0,225, 2,118, 0, 12, 0,101, 0,181, 2, 24, 0,226, 2, 39, 0,227, 2, 4, 0, 88, 0, 4, 0,228, 2, + 7, 0,229, 2, 7, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,184, 2, 4, 0,185, 2, 4, 0, 35, 0,119, 0, 3, 0, +101, 0,181, 2, 7, 0,233, 2, 4, 0,234, 2,120, 0, 5, 0,101, 0,181, 2, 7, 0,235, 2, 0, 0,217, 2, 2, 0, 17, 0, + 2, 0,236, 2,121, 0, 8, 0,101, 0,181, 2, 24, 0,159, 0, 7, 0,235, 2, 7, 0,248, 0, 7, 0,104, 0, 0, 0,217, 2, + 2, 0, 17, 0, 2, 0, 15, 0,122, 0, 21, 0,101, 0,181, 2, 24, 0,237, 2, 0, 0,217, 2, 44, 0,182, 2, 24, 0,183, 2, + 2, 0, 17, 0, 2, 0, 35, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 72, 2, 7, 0,241, 2, 7, 0,242, 2, + 7, 0,243, 2, 7, 0,244, 2, 4, 0,186, 2, 4, 0,185, 2, 0, 0,184, 2, 7, 0,245, 2, 7, 0,246, 2, 7, 0, 87, 0, +123, 0, 7, 0,101, 0,181, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 67, 0, 24, 0,159, 0, 7, 0,249, 2, 0, 0,217, 2, +124, 0, 10, 0,101, 0,181, 2, 24, 0,159, 0, 0, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, + 4, 0,254, 2, 7, 0,255, 2, 0, 0, 18, 0,125, 0, 1, 0,101, 0,181, 2,126, 0, 7, 0,101, 0,181, 2, 38, 0,117, 0, +127, 0, 0, 3,128, 0, 1, 3,129, 0, 2, 3,130, 0, 3, 3, 12, 0, 4, 3,131, 0, 13, 0,101, 0,181, 2, 77, 0, 5, 3, + 77, 0, 6, 3, 77, 0, 7, 3, 77, 0, 8, 3, 77, 0, 9, 3, 77, 0, 10, 3, 74, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, + 7, 0, 14, 3, 7, 0, 15, 3,132, 0, 16, 3,133, 0, 7, 0,101, 0,181, 2, 77, 0, 5, 3, 77, 0, 17, 3,134, 0, 18, 3, +135, 0, 16, 3, 4, 0, 19, 3, 4, 0, 12, 3,136, 0, 4, 0,101, 0,181, 2, 24, 0,159, 0, 4, 0, 20, 3, 4, 0, 35, 0, +137, 0, 2, 0, 4, 0, 21, 3, 7, 0, 30, 2,138, 0, 2, 0, 4, 0,120, 0, 4, 0, 22, 3,139, 0, 24, 0,101, 0,181, 2, + 24, 0,159, 0, 0, 0,217, 2, 2, 0, 23, 3, 2, 0, 17, 0, 2, 0, 72, 1, 2, 0, 35, 0,137, 0, 24, 3, 4, 0, 25, 3, + 7, 0, 26, 3, 4, 0, 51, 0, 4, 0, 27, 3,138, 0, 28, 3,137, 0, 29, 3, 4, 0, 30, 3, 4, 0, 31, 3, 4, 0, 32, 3, + 4, 0, 22, 3, 7, 0, 33, 3, 7, 0, 34, 3, 7, 0, 35, 3, 7, 0, 36, 3, 7, 0, 37, 3, 9, 0, 38, 3,140, 0, 8, 0, +101, 0,181, 2,141, 0, 39, 3,134, 0, 18, 3, 4, 0, 40, 3, 4, 0, 41, 3, 4, 0, 42, 3, 2, 0, 17, 0, 2, 0, 54, 0, +142, 0, 8, 0,101, 0,181, 2, 24, 0, 42, 0, 2, 0,252, 0, 2, 0, 17, 0, 2, 0,207, 2, 2, 0, 54, 0, 7, 0, 43, 3, + 7, 0, 44, 3,143, 0, 6, 0,101, 0,181, 2, 4, 0, 45, 3, 2, 0, 17, 0, 2, 0, 46, 3, 7, 0, 47, 3, 0, 0,161, 0, +144, 0, 8, 0,101, 0,181, 2, 0, 0, 48, 3, 0, 0, 49, 3, 0, 0,171, 2, 0, 0, 50, 3, 0, 0, 51, 3, 0, 0, 88, 0, + 0, 0,159, 2,145, 0, 3, 0,101, 0,181, 2,146, 0, 52, 3,130, 0, 3, 3,147, 0, 10, 0,101, 0,181, 2, 24, 0, 53, 3, + 24, 0, 54, 3, 0, 0, 55, 3, 7, 0, 56, 3, 2, 0, 57, 3, 2, 0, 58, 3, 0, 0, 59, 3, 0, 0, 60, 3, 0, 0,192, 2, +148, 0, 9, 0,101, 0,181, 2, 24, 0, 61, 3, 0, 0, 55, 3, 7, 0, 62, 3, 7, 0, 63, 3, 0, 0, 72, 1, 0, 0,207, 2, + 0, 0, 64, 3, 0, 0, 35, 0,149, 0, 1, 0,101, 0,181, 2,150, 0, 11, 0,101, 0,181, 2, 0, 0,217, 2, 7, 0,120, 0, + 7, 0, 65, 3, 7, 0, 66, 3, 7, 0, 67, 3, 7, 0, 68, 3, 4, 0, 17, 0, 2, 0, 69, 3, 2, 0, 70, 3, 4, 0, 35, 0, +151, 0, 9, 0,101, 0,181, 2, 24, 0, 71, 3, 4, 0, 72, 3, 4, 0, 73, 3, 4, 0, 74, 3, 7, 0, 75, 3, 7, 0, 76, 3, + 2, 0,207, 2, 2, 0, 17, 0,152, 0, 16, 0,101, 0,181, 2, 44, 0,182, 2, 24, 0,183, 2, 0, 0,184, 2, 4, 0,185, 2, + 4, 0,186, 2, 4, 0,222, 2, 7, 0,223, 2, 24, 0, 77, 3, 24, 0, 78, 3, 51, 0, 85, 1, 0, 0,217, 2, 7, 0, 79, 3, + 0, 0, 17, 0, 0, 0,246, 0, 0, 0,159, 2,153, 0, 3, 0,154, 0, 80, 3, 4, 0, 57, 2, 0, 0, 90, 0,154, 0, 29, 0, + 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 39, 2, 2, 0, 40, 2, 2, 0, 81, 3, 2, 0, 17, 0, 2, 0, 82, 3, 2, 0, 83, 3, + 2, 0, 84, 3, 2, 0, 67, 0, 0, 0, 85, 3, 0, 0, 86, 3, 0, 0, 87, 3, 0, 0,229, 1, 4, 0, 35, 0, 7, 0, 88, 3, + 7, 0, 89, 3, 7, 0, 90, 3, 7, 0, 91, 3, 7, 0, 92, 3, 7, 0, 93, 3, 26, 0, 94, 3, 28, 0, 77, 0, 30, 0, 64, 2, + 79, 0,112, 2, 0, 0, 69, 0, 7, 0, 95, 3, 7, 0, 96, 3,153, 0, 97, 3,155, 0, 3, 0,155, 0, 0, 0,155, 0, 1, 0, + 0, 0, 18, 0, 62, 0, 3, 0, 7, 0, 98, 3, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,129, 0, 19, 0, 29, 0, 31, 0, 72, 0, +156, 0, 99, 3, 2, 0, 15, 0, 2, 0,100, 3, 4, 0,101, 3, 4, 0,102, 3, 4, 0,103, 3, 0, 0,104, 3, 24, 0, 36, 0, + 24, 0,105, 3, 24, 0,106, 3, 24, 0,107, 3, 24, 0,108, 3, 28, 0, 77, 0, 70, 0, 63, 2, 62, 0,255, 1,157, 0,109, 3, +157, 0,110, 3,158, 0,111, 3, 9, 0, 2, 0,159, 0,112, 3,160, 0,113, 3,161, 0,114, 3, 12, 0,115, 3, 12, 0,116, 3, + 12, 0, 19, 2, 12, 0,117, 3, 12, 0,118, 3, 4, 0, 72, 1, 4, 0,119, 3, 57, 0, 21, 2, 0, 0,120, 3, 4, 0, 23, 2, + 4, 0,121, 3, 7, 0, 67, 1, 7, 0,122, 3, 7, 0,123, 3, 7, 0,167, 0, 7, 0,124, 3, 7, 0, 68, 1, 7, 0,125, 3, + 7, 0, 9, 2, 7, 0,126, 3, 7, 0,127, 3, 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, 7, 0,251, 2, + 7, 0,132, 3, 7, 0,237, 0, 7, 0,133, 3, 4, 0,134, 3, 2, 0, 17, 0, 2, 0,135, 3, 2, 0,136, 3, 2, 0,137, 3, + 2, 0,138, 3, 2, 0,139, 3, 2, 0,140, 3, 2, 0,141, 3, 2, 0,142, 3, 2, 0,143, 3, 2, 0,144, 3, 2, 0,145, 3, + 4, 0,146, 3, 4, 0,147, 3, 4, 0,148, 3, 4, 0,149, 3, 7, 0,150, 3, 7, 0, 99, 2, 7, 0,151, 3, 7, 0,152, 3, + 7, 0,153, 3, 7, 0,154, 3, 7, 0,155, 3, 7, 0,212, 0, 7, 0,156, 3, 7, 0,157, 3, 7, 0,158, 3, 7, 0,159, 3, + 2, 0,160, 3, 0, 0,161, 3, 0, 0,106, 0, 0, 0,162, 3, 0, 0,163, 3, 7, 0,164, 3, 7, 0,165, 3, 12, 0,166, 3, + 12, 0,167, 3, 12, 0,168, 3, 12, 0,169, 3, 7, 0,170, 3, 2, 0,252, 1, 2, 0,171, 3, 7, 0,134, 2, 4, 0,172, 3, + 4, 0,173, 3,162, 0,174, 3, 2, 0,175, 3, 2, 0,244, 0, 7, 0,176, 3, 12, 0,177, 3, 12, 0,178, 3, 12, 0,179, 3, + 12, 0,180, 3,163, 0, 64, 1,164, 0,181, 3, 58, 0,182, 3, 2, 0,183, 3, 2, 0,184, 3, 2, 0, 57, 2, 2, 0,185, 3, + 7, 0,125, 2, 2, 0,186, 3, 2, 0,187, 3,146, 0,188, 3,134, 0,189, 3,134, 0,190, 3, 4, 0,191, 3, 4, 0,192, 3, + 4, 0,193, 3, 4, 0,194, 3, 12, 0,195, 3, 12, 0,196, 3, 12, 0,197, 3, 7, 0,198, 3, 0, 0,199, 3,165, 0, 14, 0, +165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 0,251, 2, 7, 0, 69, 1, 7, 0,252, 2, 7, 0,244, 2, 0, 0, 18, 0, + 4, 0,253, 2, 4, 0,254, 2, 4, 0,200, 3, 2, 0, 15, 0, 2, 0,201, 3, 7, 0,255, 2,166, 0, 12, 0,166, 0, 0, 0, +166, 0, 1, 0, 24, 0, 42, 0, 4, 0,202, 3, 4, 0,252, 1, 4, 0,203, 3, 4, 0, 15, 0, 4, 0,204, 3, 7, 0, 69, 1, + 7, 0,205, 3, 7, 0,206, 3, 7, 0,150, 2,163, 0, 40, 0, 4, 0, 17, 0, 2, 0,207, 3, 2, 0,208, 3, 2, 0,244, 2, + 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, + 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, + 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, 7, 0,232, 3, + 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 7, 0,237, 3, 7, 0,238, 3, 7, 0,239, 3, 7, 0,240, 3, + 44, 0,160, 0,167, 0,241, 3, 7, 0,242, 3, 4, 0,195, 2,168, 0, 5, 0, 58, 0,232, 1, 7, 0,243, 3, 7, 0,244, 3, + 2, 0, 17, 0, 2, 0,245, 3,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, 4, 0, 15, 0, 4, 0,246, 3, 9, 0, 2, 0, +170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,247, 3, 4, 0,248, 3, 4, 0,249, 3, 4, 0, 17, 0, 9, 0,250, 3, + 9, 0,251, 3, 12, 0,252, 3,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, 4, 0, 17, 0, 4, 0,253, 3, 4, 0,254, 3, + 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0, 2, 4, 4, 0,248, 3, 4, 0,252, 1, 2, 0, 3, 4, 2, 0, 54, 0, + 0, 0, 4, 4, 0, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 0, 0, 8, 4, 12, 0, 9, 4,171, 0, 10, 4, 9, 0, 11, 4, +172, 0, 1, 0, 7, 0, 37, 2,162, 0, 30, 0, 4, 0, 17, 0, 7, 0, 12, 4, 7, 0, 13, 4, 7, 0, 14, 4, 4, 0, 15, 4, + 4, 0, 16, 4, 4, 0, 17, 4, 4, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, + 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, + 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 4, 0, 37, 4, 4, 0, 38, 4, 7, 0, 39, 4, + 7, 0,156, 3,164, 0, 54, 0, 4, 0,248, 3, 4, 0, 40, 4,173, 0, 41, 4,174, 0, 42, 4, 0, 0, 35, 0, 0, 0, 43, 4, + 2, 0, 44, 4, 7, 0, 45, 4, 0, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, + 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 2, 0, 56, 4, 0, 0, 57, 4, 2, 0, 58, 4, 7, 0, 59, 4, + 7, 0, 60, 4, 0, 0, 61, 4, 4, 0,121, 0, 4, 0, 62, 4, 4, 0, 63, 4, 2, 0, 64, 4, 2, 0, 65, 4,172, 0, 66, 4, + 4, 0, 67, 4, 4, 0, 79, 0, 7, 0, 68, 4, 7, 0, 69, 4, 7, 0, 70, 4, 7, 0, 71, 4, 2, 0, 72, 4, 2, 0, 73, 4, + 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 2, 0, 77, 4, 2, 0, 78, 4, 2, 0, 79, 4,175, 0, 80, 4, 7, 0, 81, 4, + 7, 0, 82, 4,130, 0, 83, 4, 12, 0, 4, 3,168, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, 7, 0, 87, 4, 0, 0, 88, 4, +176, 0, 1, 0, 7, 0, 89, 4,146, 0, 50, 0,145, 0, 90, 4, 2, 0, 15, 0, 2, 0, 91, 4, 2, 0, 92, 4, 2, 0, 93, 4, + 7, 0, 94, 4, 2, 0, 95, 4, 2, 0, 96, 4, 7, 0, 97, 4, 2, 0, 98, 4, 2, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, + 7, 0,102, 4, 4, 0,103, 4, 4, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4, 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, + 73, 0,110, 4, 73, 0,111, 4, 0, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 28, 0, 77, 0, 2, 0,115, 4, 0, 0,116, 4, + 0, 0,117, 4, 7, 0,118, 4, 4, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 4, 0,122, 4, 4, 0, 17, 0, 7, 0,123, 4, + 7, 0,124, 4, 7, 0,125, 4,176, 0,126, 4, 4, 0, 51, 0, 7, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, + 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 4, 0,134, 4, 4, 0, 35, 0,177, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, + 2, 0,170, 0, 2, 0, 73, 1, 2, 0,107, 1, 2, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, + 7, 0,140, 4, 7, 0,141, 4, 7, 0,153, 1, 7, 0,155, 1, 7, 0,154, 1, 7, 0, 67, 0, 4, 0,142, 4, 7, 0,143, 4, + 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 2, 0,150, 4, 2, 0, 72, 1, + 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, + 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 7, 0,163, 4, 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, + 7, 0,167, 4, 7, 0,168, 4, 2, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4, 2, 0,172, 4, 7, 0,173, 4, 7, 0,174, 4, + 7, 0,175, 4, 7, 0,176, 4, 2, 0,177, 4, 2, 0,178, 4, 2, 0,179, 4, 2, 0,180, 4, 7, 0,181, 4, 7, 0,182, 4, + 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 7, 0,186, 4, 7, 0,187, 4, 2, 0,188, 4, 2, 0,189, 4, 2, 0,190, 4, + 2, 0,191, 4, 2, 0,192, 4, 2, 0, 17, 0, 7, 0,193, 4, 7, 0,194, 4, 28, 0, 77, 0, 43, 0,125, 1, 2, 0,126, 1, + 2, 0,195, 4, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, 4, 0,134, 3, 4, 0,196, 4, 4, 0, 17, 0, + 2, 0,197, 4, 2, 0,198, 4, 24, 0,159, 0,179, 0, 13, 0, 9, 0,199, 4, 9, 0,200, 4, 4, 0,201, 4, 4, 0,202, 4, + 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, 4, 0, 35, 0, + 0, 0,210, 4,180, 0, 5, 0, 9, 0,211, 4, 9, 0,212, 4, 4, 0,213, 4, 4, 0, 67, 0, 0, 0,214, 4,181, 0, 17, 0, + 4, 0,215, 4, 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, 4, 0,219, 4, 4, 0,220, 4, 4, 0,221, 4, 4, 0,222, 4, + 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 4, 0,229, 4, 4, 0,230, 4, + 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, 4, 0,217, 4, 4, 0,231, 4, 4, 0,232, 4, 4, 0,233, 4, 4, 0,234, 4, + 7, 0,235, 4, 4, 0,236, 4, 4, 0, 88, 0, 4, 0,237, 4, 4, 0,238, 4, 4, 0,239, 4, 4, 0,240, 4, 4, 0,241, 4, + 18, 0, 28, 0,183, 0, 7, 0, 4, 0,242, 4, 7, 0,243, 4, 7, 0,244, 4, 7, 0,245, 4, 4, 0,246, 4, 2, 0, 17, 0, + 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 18, 0, 57, 0,247, 4, 58, 0,248, 4, 4, 0,134, 3, + 4, 0,249, 4, 4, 0,250, 4, 4, 0, 35, 0, 4, 0,251, 4, 4, 0,252, 4,185, 0,105, 0,179, 0,253, 4,180, 0,254, 4, +181, 0,255, 4,182, 0, 0, 5, 4, 0, 19, 3, 4, 0,121, 0, 4, 0, 62, 4, 7, 0, 1, 5, 4, 0, 2, 5, 4, 0, 3, 5, + 4, 0, 4, 5, 4, 0, 5, 5, 2, 0, 17, 0, 2, 0, 6, 5, 7, 0, 7, 5, 7, 0, 8, 5, 7, 0, 9, 5, 7, 0, 10, 5, + 7, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0,243, 0, 2, 0, 16, 5, 4, 0, 17, 5, + 2, 0, 18, 5, 2, 0, 19, 5, 2, 0, 94, 1, 2, 0,104, 0, 2, 0, 20, 5, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, + 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0, 29, 5, 4, 0, 30, 5, 4, 0, 72, 1, + 4, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, + 2, 0, 39, 5, 16, 0, 40, 5, 16, 0, 41, 5, 15, 0, 42, 5, 12, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 7, 0, 46, 5, + 7, 0, 47, 5, 7, 0, 48, 5, 7, 0, 49, 5, 4, 0, 50, 5, 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, + 2, 0, 55, 5, 2, 0, 56, 5, 2, 0, 57, 5, 2, 0, 58, 5, 2, 0, 59, 5, 2, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, + 7, 0, 63, 5, 0, 0, 64, 5, 4, 0, 65, 5, 2, 0, 66, 5, 2, 0,229, 1, 0, 0, 67, 5, 7, 0, 68, 5, 7, 0, 69, 5, + 0, 0, 70, 5, 0, 0, 71, 5, 0, 0, 72, 5, 0, 0, 73, 5, 4, 0, 74, 5, 2, 0, 75, 5, 2, 0, 76, 5, 7, 0, 77, 5, + 7, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, 2, 0, 82, 5, 2, 0, 83, 5, 4, 0, 84, 5, 2, 0, 85, 5, + 2, 0, 86, 5, 2, 0, 87, 5, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 67, 0, 34, 0, 90, 5, 0, 0, 91, 5,186, 0, 9, 0, +186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 0, 92, 5, 2, 0, 93, 5, 2, 0, 94, 5, 2, 0, 87, 0, 7, 0, 95, 5, + 7, 0, 67, 0,187, 0, 7, 0, 2, 0,212, 2, 2, 0, 72, 1, 2, 0, 76, 3, 2, 0, 96, 5, 7, 0, 97, 5, 7, 0, 67, 0, + 34, 0, 98, 5,188, 0, 5, 0, 7, 0, 99, 5, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 67, 0, 0, 0,229, 1,189, 0, 28, 0, + 7, 0,148, 4, 7, 0,149, 4, 2, 0, 72, 1, 2, 0, 17, 0, 2, 0,100, 5, 2, 0,195, 4, 2, 0,151, 4, 2, 0,152, 4, + 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4,188, 0,101, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, + 2, 0, 15, 5, 2, 0,243, 0, 2, 0, 16, 5, 2, 0,102, 5, 2, 0,103, 5,187, 0,104, 5, 2, 0,105, 5, 2, 0, 18, 5, + 2, 0, 21, 5, 2, 0, 22, 5, 7, 0,106, 5, 7, 0, 87, 0,190, 0, 6, 0,190, 0, 0, 0,190, 0, 1, 0, 4, 0,247, 3, + 0, 0, 4, 4, 4, 0, 17, 0, 24, 0,107, 5,191, 0, 4, 0,192, 0,108, 5, 9, 0,109, 5, 0, 0,110, 5, 4, 0, 88, 0, +193, 0, 8, 0,191, 0,111, 5, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0,112, 5, 2, 0,113, 5, 2, 0,114, 5, 4, 0, 87, 0, + 9, 0,115, 5,194, 0, 6, 0, 2, 0,104, 0, 2, 0,253, 3, 2, 0,116, 5, 2, 0,206, 2, 4, 0, 17, 0, 7, 0,223, 2, +195, 0, 14, 0, 2, 0, 17, 0, 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5,194, 0,120, 5, 9, 0,115, 5, 7, 0,121, 5, + 7, 0, 54, 0, 4, 0,122, 5, 4, 0,123, 5, 4, 0,124, 5, 4, 0,125, 5, 38, 0,117, 0, 24, 0,159, 0,196, 0, 4, 0, +196, 0, 0, 0,196, 0, 1, 0, 0, 0,126, 5, 7, 0,127, 5,197, 0, 14, 0,191, 0,111, 5, 4, 0, 88, 0, 4, 0,128, 5, + 7, 0,129, 5, 7, 0,130, 5, 7, 0,131, 5, 4, 0,132, 5, 4, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 4, 0,136, 5, + 7, 0,137, 5, 7, 0,138, 5, 4, 0, 35, 0,198, 0, 7, 0,191, 0,111, 5, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, + 4, 0,139, 5, 79, 0,140, 5, 9, 0,115, 5,199, 0, 82, 0,198, 0,141, 5,198, 0,142, 5,197, 0, 99, 3, 7, 0,143, 5, + 2, 0,144, 5, 2, 0,145, 5, 7, 0,146, 5, 7, 0,147, 5, 2, 0,253, 3, 2, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, + 7, 0,151, 5, 2, 0,152, 5, 2, 0,122, 5, 2, 0,153, 5, 2, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 7, 0,157, 5, + 7, 0,158, 5, 7, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 2, 0,164, 5, 2, 0,165, 5, + 2, 0,166, 5, 2, 0,167, 5,193, 0,168, 5,195, 0,169, 5, 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 2, 0,173, 5, + 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 0, 0,180, 5, 2, 0,181, 5, + 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, + 7, 0,190, 5, 7, 0,191, 5, 2, 0,192, 5, 0, 0,193, 5, 0, 0,194, 5, 0, 0,195, 5, 0, 0,196, 5, 24, 0,197, 5, + 0, 0,198, 5, 0, 0,199, 5, 0, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5, 0, 0,203, 5, 0, 0,204, 5, 0, 0,205, 5, + 0, 0,206, 5, 0, 0,207, 5, 2, 0,208, 5, 2, 0,209, 5, 2, 0,210, 5, 2, 0,211, 5, 0, 0,212, 5, 0, 0,195, 4, + 4, 0,213, 5, 2, 0,214, 5, 2, 0, 87, 0, 4, 0,215, 5, 7, 0,216, 5, 7, 0,217, 5,200, 0, 8, 0, 4, 0,218, 5, + 4, 0,219, 5, 4, 0,220, 5, 4, 0,221, 5, 4, 0,222, 5, 4, 0,223, 5, 4, 0, 51, 0, 4, 0,122, 2,201, 0, 4, 0, + 7, 0,224, 5, 0, 0,225, 5, 0, 0,226, 5, 2, 0, 17, 0,202, 0, 4, 0, 7, 0,227, 5, 4, 0, 17, 0, 4, 0,228, 5, + 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 0,107, 5,177, 0,229, 5, 38, 0,230, 5, 12, 0,231, 5, +178, 0,232, 5, 24, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 4, 0,134, 3, 4, 0,238, 5, + 4, 0,239, 5, 4, 0,192, 3, 4, 0,240, 5, 2, 0, 17, 0, 2, 0, 66, 1, 53, 0, 61, 1,203, 0,241, 5,199, 0,242, 5, +204, 0,243, 5,185, 0,177, 0,183, 0,244, 5, 12, 0, 98, 0, 12, 0,245, 5, 9, 0,246, 5, 9, 0,247, 5, 9, 0,248, 5, + 9, 0,249, 5,205, 0,250, 5, 2, 0,251, 5, 2, 0,252, 5, 2, 0,244, 0, 2, 0,253, 5, 4, 0,254, 5, 4, 0,255, 5, + 12, 0, 0, 6,188, 0,101, 5,189, 0, 1, 6,201, 0, 2, 6,159, 0,112, 3,202, 0, 3, 6,206, 0, 11, 0,206, 0, 0, 0, +206, 0, 1, 0, 39, 0,235, 0, 37, 0, 60, 1, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0,104, 0, 7, 0, 4, 6, 2, 0, 5, 6, + 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 0, 6, 6, 7, 0, 7, 6, 7, 0, 8, 6, 7, 0, 9, 6, 7, 0, 10, 6, + 7, 0, 11, 6, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, 7, 0, 79, 1, 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, + 7, 0, 18, 6, 7, 0,166, 0, 2, 0, 19, 6, 2, 0, 20, 6, 0, 0, 21, 6, 0, 0,195, 4, 2, 0, 22, 6, 2, 0, 23, 6, + 2, 0, 24, 6, 2, 0, 5, 6, 7, 0, 25, 6, 7, 0, 26, 6, 62, 0, 27, 6,159, 0,112, 3,207, 0, 28, 6,208, 0, 29, 6, +209, 0, 30, 6,210, 0, 31, 6,211, 0, 32, 6, 7, 0, 33, 6, 2, 0, 34, 6, 2, 0, 35, 6, 7, 0, 36, 6, 7, 0, 37, 6, + 7, 0, 38, 6,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, + 7, 0, 14, 6, 7, 0, 79, 1, 7, 0, 87, 0, 4, 0, 43, 6, 2, 0, 24, 6, 2, 0, 5, 6, 24, 0,107, 5, 24, 0, 44, 6, + 12, 0, 45, 6,206, 0, 46, 6,212, 0, 28, 6, 0, 0, 47, 6, 4, 0,134, 3, 4, 0,238, 5, 2, 0, 48, 6, 2, 0, 49, 6, + 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 17, 0, 2, 0, 22, 2, 7, 0,110, 0, 7, 0, 52, 6, 7, 0, 53, 6, 7, 0, 54, 6, + 7, 0,166, 0, 7, 0,234, 5, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 0, 0, 58, 6, 0, 0, 59, 6, 0, 0, 60, 6, + 0, 0, 61, 6, 0, 0, 62, 6, 12, 0, 63, 6, 12, 0, 64, 6, 12, 0, 65, 6, 2, 0, 66, 6, 2, 0,135, 2, 2, 0, 67, 6, + 0, 0, 68, 6, 0, 0, 69, 6, 9, 0, 70, 6,159, 0,112, 3,214, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, 0, 15, 0, 71, 6, + 15, 0, 72, 6, 15, 0, 73, 6, 7, 0, 74, 6, 7, 0, 75, 6, 7, 0, 76, 6, 7, 0, 77, 6, 2, 0, 78, 6, 2, 0, 79, 6, + 2, 0, 80, 6, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 17, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 86, 6, + 2, 0, 87, 6, 2, 0, 51, 6, 7, 0, 88, 6, 4, 0, 89, 6, 4, 0, 90, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 0, 0, 91, 6, 0, 0,176, 0,216, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6,217, 0, 93, 6, 12, 0, 94, 6, 2, 0, 72, 1, + 2, 0, 95, 6, 4, 0, 17, 0, 7, 0, 96, 6, 4, 0, 51, 6,218, 0, 21, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,208, 0, 29, 6,214, 0, 92, 6, 2, 0, 97, 6, 2, 0, 98, 6, 2, 0, 99, 6, + 2, 0,100, 6, 2, 0, 83, 6, 2, 0,101, 6, 2, 0,102, 6, 0, 0, 17, 0, 0, 0, 35, 0, 9, 0, 63, 2, 4, 0,103, 6, + 4, 0,104, 6, 19, 0,105, 6,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, + 2, 0, 42, 6,214, 0, 92, 6, 7, 0, 87, 2, 7, 0, 88, 2, 2, 0, 97, 6, 2, 0,106, 6, 2, 0,107, 6, 2, 0,108, 6, + 4, 0, 17, 0, 7, 0,109, 6, 4, 0, 5, 6, 4, 0, 35, 0,159, 0,112, 3,220, 0, 16, 0, 0, 0,110, 6, 0, 0,111, 6, + 0, 0,112, 6, 0, 0,113, 6, 0, 0,114, 6, 0, 0,115, 6, 4, 0,116, 6, 4, 0,117, 6, 4, 0,118, 6, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,119, 6, 2, 0,120, 6, 2, 0,172, 1, 2, 0,121, 6, 0, 0,122, 6,221, 0, 16, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0,123, 6,220, 0,124, 6,222, 0,125, 6, 12, 0,126, 6, 12, 0,127, 6, +223, 0,128, 6,211, 0,129, 6,224, 0,130, 6, 2, 0,131, 6, 2, 0,132, 6, 2, 0,133, 6, 2, 0, 67, 0,225, 0, 15, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 12, 0,134, 6, +226, 0,135, 6, 0, 0,136, 6,227, 0,137, 6, 2, 0, 17, 0, 2, 0,138, 6, 2, 0,139, 6, 2, 0,140, 6,228, 0, 25, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 4, 0, 17, 0, 39, 0,227, 2, 37, 0, 60, 1, 51, 0,141, 6, +229, 0,142, 6,230, 0,143, 6,159, 0,112, 3, 7, 0,144, 6, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0,109, 6, 7, 0,145, 6, + 7, 0,146, 6, 2, 0,147, 6, 2, 0,148, 6, 2, 0,149, 6, 2, 0,150, 6, 0, 0,151, 6, 0, 0,152, 6, 0, 0,153, 6, + 0, 0, 51, 6,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, + 2, 0, 95, 6, 2, 0, 17, 0, 4, 0, 35, 0,217, 0, 93, 6,214, 0, 92, 6,232, 0, 31, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 34, 0,154, 6, 4, 0,155, 6, 4, 0,156, 6, 2, 0, 88, 0, + 2, 0,157, 6, 2, 0,158, 6, 0, 0,159, 6, 0, 0,160, 6, 4, 0,161, 6, 4, 0,162, 6, 4, 0,163, 6, 2, 0,164, 6, + 2, 0,165, 6, 2, 0,166, 6, 2, 0,167, 6, 7, 0,168, 6, 15, 0,169, 6, 15, 0,170, 6, 4, 0,171, 6, 4, 0,172, 6, + 0, 0,173, 6, 0, 0,174, 6, 2, 0,175, 6, 0, 0,192, 2, 9, 0,176, 6,233, 0, 10, 0, 19, 0, 29, 0, 9, 0,177, 6, + 9, 0,178, 6, 9, 0,179, 6, 9, 0,180, 6, 9, 0,181, 6, 4, 0, 88, 0, 4, 0,182, 6, 0, 0,183, 6, 0, 0,184, 6, +234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6,233, 0,185, 6, 2, 0, 88, 0, + 2, 0,157, 6, 4, 0, 87, 0, 9, 0,186, 6,235, 0, 3, 0,235, 0, 0, 0,235, 0, 1, 0, 7, 0,187, 6,236, 0, 11, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6,214, 0, 92, 6, 12, 0,188, 6, 4, 0,189, 6, + 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,190, 6,237, 0, 26, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, + 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6, 19, 0,191, 6, 19, 0, 78, 0, 2, 0, 17, 0, 2, 0,157, 6, 7, 0,192, 6, + 9, 0,193, 6, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0,109, 6, 7, 0, 38, 6, 7, 0,194, 6, 7, 0,195, 6, 53, 0, 61, 1, + 53, 0,196, 6, 4, 0,197, 6, 2, 0,198, 6, 2, 0,244, 0, 12, 0,199, 6,159, 0,112, 3,238, 0, 10, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 2, 0, 17, 0, 2, 0,143, 3, 4, 0, 35, 0, +159, 0,112, 3,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, +214, 0, 92, 6,222, 0,125, 6, 0, 0,200, 6, 0, 0,111, 6, 0, 0,112, 6, 2, 0, 15, 0, 2, 0,201, 6, 2, 0, 17, 0, + 2, 0,119, 6, 9, 0,193, 6, 4, 0,116, 6, 4, 0,202, 6, 4, 0,203, 6, 4, 0,204, 6, 15, 0,205, 6, 15, 0,206, 6, + 7, 0,207, 6, 7, 0,208, 6, 7, 0,209, 6, 7, 0,192, 6, 2, 0,210, 6, 2, 0,234, 0, 2, 0,172, 1, 2, 0,211, 6, + 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,212, 6, 2, 0,213, 6, 9, 0,214, 6, 9, 0,215, 6, 9, 0,216, 6, 9, 0,217, 6, + 9, 0,218, 6, 2, 0,219, 6, 0, 0,220, 6, 49, 0,221, 6,240, 0, 7, 0,240, 0, 0, 0,240, 0, 1, 0, 4, 0,222, 6, + 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,223, 6, 4, 0, 15, 0,241, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, + 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6, 4, 0,158, 6, 4, 0, 35, 0, 12, 0,224, 6, 12, 0,225, 6, 0, 0,226, 6, + 0, 0,227, 6, 4, 0,228, 6, 4, 0,229, 6,242, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, + 4, 0, 35, 0, 0, 0,230, 6,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, +244, 0,231, 6,214, 0, 92, 6,245, 0,232, 6, 2, 0, 72, 1, 2, 0,233, 6, 2, 0, 87, 2, 2, 0, 88, 2, 2, 0, 17, 0, + 2, 0,149, 6, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, 0, 0,234, 6, 2, 0,235, 6, 2, 0,236, 6, + 2, 0,237, 6, 2, 0, 35, 0,247, 0, 12, 0, 2, 0,236, 6, 2, 0,238, 6, 2, 0,239, 6, 0, 0,192, 2, 2, 0,240, 6, + 2, 0,241, 6, 2, 0,242, 6, 2, 0,243, 6, 2, 0,244, 6, 2, 0, 83, 6, 7, 0,245, 6, 7, 0,246, 6,248, 0, 18, 0, +248, 0, 0, 0,248, 0, 1, 0, 0, 0, 4, 4,247, 0,247, 6,247, 0,248, 6,247, 0,249, 6,247, 0,250, 6, 7, 0,251, 6, + 2, 0,252, 6, 2, 0,253, 6, 2, 0,254, 6, 2, 0,255, 6, 2, 0, 0, 7, 2, 0, 1, 7, 2, 0, 2, 7, 2, 0, 3, 7, + 2, 0, 4, 7, 2, 0, 5, 7,249, 0, 10, 0, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, + 0, 0, 11, 7, 2, 0, 12, 7, 2, 0, 13, 7, 2, 0, 14, 7, 2, 0, 15, 7,250, 0, 8, 0, 0, 0, 16, 7, 0, 0, 17, 7, + 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 7, 0, 4, 6, 7, 0, 35, 0,251, 0, 18, 0,249, 0, 22, 7, +249, 0, 23, 7,249, 0, 24, 7,249, 0, 25, 7,249, 0, 26, 7,249, 0, 27, 7,249, 0, 28, 7,249, 0, 29, 7,249, 0, 30, 7, +249, 0, 31, 7,249, 0, 32, 7,249, 0, 33, 7,249, 0, 34, 7,249, 0, 35, 7,249, 0, 36, 7,249, 0, 37, 7,250, 0, 38, 7, + 0, 0, 39, 7,252, 0, 97, 0, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 10, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, + 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, + 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, + 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, + 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, + 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, + 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7, 0, 0, 90, 7, 0, 0, 91, 7, 0, 0, 92, 7, + 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, 0, 0, 97, 7, 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, + 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, + 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, + 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, + 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, 0, 0,129, 7, 0, 0,130, 7, 0, 0,131, 7, 0, 0,132, 7, + 0, 0,133, 7, 0, 0,134, 7, 0, 0,135, 7,253, 0, 5, 0, 0, 0,136, 7, 0, 0, 64, 7, 0, 0, 66, 7, 2, 0, 17, 0, + 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0,251, 0,137, 7,252, 0,138, 7,252, 0,139, 7, +252, 0,140, 7,252, 0,141, 7,252, 0,142, 7,252, 0,143, 7,252, 0,144, 7,252, 0,145, 7,252, 0,146, 7,252, 0,147, 7, +252, 0,148, 7,252, 0,149, 7,252, 0,150, 7,252, 0,151, 7,252, 0,152, 7,252, 0,153, 7,252, 0,154, 7,252, 0,155, 7, +253, 0,156, 7, 4, 0,157, 7, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0,255, 0, 1, 0, 0, 0,158, 7, 0, 1, 5, 0, + 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,134, 2, 7, 0,159, 7, 7, 0, 37, 2, 1, 1, 89, 0, 4, 0, 17, 0, 4, 0,160, 7, + 4, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, + 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 4, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7, 2, 0,175, 7, 2, 0,176, 7, + 4, 0,177, 7, 4, 0,178, 7, 4, 0,179, 7, 4, 0,180, 7, 2, 0,181, 7, 2, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, + 4, 0,185, 7, 4, 0,186, 7, 4, 0,187, 7, 4, 0,224, 6, 4, 0,188, 7, 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, + 2, 0,192, 7, 12, 0,193, 7, 12, 0,194, 7, 12, 0,195, 7, 12, 0,196, 7, 12, 0,197, 7, 0, 0,198, 7, 2, 0,199, 7, + 2, 0,200, 7, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7, 0, 1,207, 7, + 2, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, 2, 0,212, 7, 2, 0,213, 7, 2, 0,214, 7, 2, 0,215, 7, + 4, 0,216, 7, 4, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, 2, 0,220, 7, 2, 0,221, 7, 2, 0,222, 7, 2, 0,223, 7, + 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, 2, 0,228, 7, 2, 0,229, 7, 2, 0,230, 7, 2, 0,231, 7, + 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 7, 0,238, 7, 2, 0,173, 5, + 2, 0,174, 5, 2, 0,239, 7, 2, 0,240, 7, 47, 0,241, 7, 7, 0,242, 7, 4, 0,229, 1, 0, 0,243, 7, 2, 1, 24, 0, + 19, 0, 29, 0, 12, 0,244, 7, 12, 0,245, 7, 12, 0,246, 7, 12, 0, 39, 6, 38, 0,117, 0, 38, 0,247, 7, 4, 0,248, 7, + 4, 0, 87, 0, 2, 0,249, 7, 2, 0,250, 7, 2, 0,251, 7, 2, 0,252, 7, 2, 0,253, 7, 2, 0,254, 7, 2, 0,255, 7, + 2, 0, 0, 8, 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 35, 0,211, 0, 4, 8, 9, 0, 5, 8, 2, 0, 6, 8, + 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1, 7, 8, 13, 0, 8, 8, 4, 0, 17, 0, 4, 1, 7, 0, 4, 1, 0, 0, + 4, 1, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, 2, 0, 41, 5, 2, 0, 17, 0, 4, 0, 35, 0, 5, 1, 25, 0, 5, 1, 0, 0, + 5, 1, 1, 0, 6, 1, 11, 8, 7, 1,130, 6, 0, 0, 12, 8, 0, 0, 13, 8, 0, 0, 14, 8, 2, 0, 15, 8, 2, 0, 16, 8, + 2, 0, 17, 8, 2, 0, 18, 8, 2, 0, 19, 8, 2, 0, 35, 0, 2, 0, 17, 0, 2, 0, 20, 8, 2, 0, 21, 8, 2, 0, 22, 8, + 4, 0, 23, 8, 5, 1, 24, 8, 9, 0, 25, 8, 4, 0, 26, 8, 4, 0, 27, 8, 4, 0, 28, 8, 4, 0, 29, 8, 0, 0, 30, 8, +244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 0, 3, 1, 9, 8, 3, 1, 10, 8, 3, 1, 31, 8, 3, 1, 32, 8, 2, 1, 33, 8, + 15, 0, 49, 0, 0, 0, 40, 6, 0, 0, 34, 8, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 35, 8, 2, 0, 35, 0, 2, 0,253, 7, + 2, 0,223, 6, 2, 0, 17, 0, 8, 1, 11, 8, 12, 0, 36, 8, 12, 0, 39, 6, 12, 0, 37, 8, 12, 0, 38, 8, 9, 1, 24, 0, + 9, 1, 0, 0, 9, 1, 1, 0,214, 0, 92, 6, 15, 0, 39, 8, 15, 0, 40, 8, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 41, 8, + 2, 0, 42, 8, 2, 0, 43, 8, 2, 0, 17, 0, 7, 0, 83, 2, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0,252, 7, 2, 0, 44, 8, + 2, 0, 1, 8, 2, 0,195, 4, 10, 1, 11, 8, 12, 0, 45, 8, 12, 0, 46, 8, 12, 0, 37, 8, 0, 0, 47, 8, 9, 0, 48, 8, + 11, 1, 14, 0, 0, 0, 49, 8, 2, 0, 50, 8, 2, 0, 51, 8, 2, 0, 52, 8, 2, 0, 53, 8, 2, 0, 29, 5, 2, 0, 54, 8, + 2, 1, 55, 8, 38, 0, 56, 8, 4, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, 4, 0, 35, 0, 0, 0, 60, 8, 12, 1, 3, 0, + 0, 0, 61, 8, 4, 0, 62, 8, 4, 0, 63, 8, 13, 1, 4, 0, 4, 0,155, 6, 4, 0, 64, 8, 4, 0,161, 6, 4, 0, 65, 8, + 14, 1, 2, 0, 4, 0, 66, 8, 4, 0, 67, 8, 15, 1, 5, 0, 7, 0, 68, 8, 7, 0, 69, 8, 7, 0, 70, 8, 4, 0, 17, 0, + 4, 0, 35, 0, 16, 1, 6, 0, 0, 0, 71, 8, 0, 0,112, 6, 41, 0,130, 0, 2, 0,104, 0, 2, 0, 28, 5, 4, 0, 35, 0, + 17, 1, 14, 0, 17, 1, 0, 0, 17, 1, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, 4, 0, 26, 0, 4, 0, 72, 8, 4, 0, 73, 8, + 4, 0, 74, 8, 12, 1, 75, 8, 0, 0, 71, 8, 16, 1,106, 3, 13, 1, 76, 8, 14, 1, 77, 8, 15, 1, 78, 8, 18, 1, 12, 0, + 0, 0,254, 1, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0, + 9, 0, 79, 8, 9, 0, 80, 8, 9, 0,229, 0, 9, 0,231, 0, 19, 1, 48, 0, 19, 1, 0, 0, 19, 1, 1, 0, 9, 0, 81, 8, + 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, 4, 0, 85, 0, 4, 0, 82, 8, 4, 0, 83, 8, + 4, 0, 73, 8, 4, 0, 74, 8, 4, 0, 84, 8, 4, 0,243, 0, 4, 0, 85, 8, 4, 0, 86, 8, 7, 0, 87, 8, 7, 0, 35, 0, + 7, 0, 88, 8, 7, 0, 89, 8, 4, 0,121, 0, 4, 0, 90, 8, 17, 1, 91, 8, 28, 0, 77, 0, 38, 0,117, 0, 24, 0, 92, 8, + 41, 0,130, 0, 7, 0, 93, 8, 7, 0, 94, 8, 18, 1, 62, 1, 19, 1, 95, 8, 19, 1, 96, 8, 19, 1, 97, 8, 12, 0, 98, 8, +245, 0,232, 6, 9, 0, 99, 8, 7, 0, 14, 4, 7, 0,100, 8, 7, 0,101, 8, 4, 0,102, 8, 4, 0,103, 8, 7, 0,104, 8, + 9, 0,105, 8, 4, 0,106, 8, 4, 0,107, 8, 4, 0,108, 8, 7, 0,109, 8, 20, 1, 4, 0, 20, 1, 0, 0, 20, 1, 1, 0, + 12, 0,110, 8, 19, 1,111, 8,203, 0, 11, 0, 12, 0,112, 8, 12, 0, 98, 8, 12, 0,113, 8, 19, 1,114, 8, 0, 0,115, 8, + 0, 0,116, 8, 4, 0,117, 8, 4, 0,118, 8, 4, 0,119, 8, 4, 0, 35, 0, 16, 0,120, 8, 21, 1, 4, 0, 7, 0,121, 8, + 7, 0, 76, 3, 2, 0,122, 8, 2, 0,123, 8, 22, 1, 6, 0, 7, 0,124, 8, 7, 0,125, 8, 7, 0,126, 8, 7, 0,127, 8, + 4, 0,128, 8, 4, 0,129, 8, 23, 1, 13, 0, 7, 0,130, 8, 7, 0,131, 8, 7, 0,132, 8, 7, 0,133, 8, 7, 0,134, 8, + 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, 4, 0,233, 2, 4, 0,140, 8, 4, 0,141, 8, + 24, 1, 2, 0, 7, 0, 99, 5, 7, 0, 35, 0, 25, 1, 5, 0, 7, 0,142, 8, 7, 0,143, 8, 4, 0, 88, 0, 4, 0,193, 2, + 4, 0,144, 8, 26, 1, 6, 0, 26, 1, 0, 0, 26, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, 2, 0, 54, 0, + 27, 1, 8, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, 2, 0, 54, 0, 7, 0, 21, 0, + 7, 0,121, 0, 28, 1, 45, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, 2, 0,239, 0, + 2, 0, 56, 4, 2, 0,146, 8, 7, 0,147, 8, 7, 0, 86, 0, 7, 0,246, 2, 4, 0,148, 8, 4, 0, 79, 0, 4, 0,195, 2, + 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,152, 8, 7, 0,153, 8, 7, 0,154, 8, 7, 0,243, 2, 7, 0, 59, 1, + 7, 0,155, 8, 7, 0,156, 8, 7, 0, 35, 0, 7, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 2, 0,160, 8, 2, 0,161, 8, + 2, 0,162, 8, 2, 0,163, 8, 2, 0,164, 8, 2, 0,165, 8, 2, 0,166, 8, 2, 0,167, 8, 2, 0, 22, 2, 2, 0,168, 8, + 2, 0, 19, 2, 2, 0,169, 8, 0, 0,170, 8, 0, 0,171, 8, 7, 0,237, 0, 29, 1,172, 8, 58, 0,232, 1, 30, 1, 16, 0, + 30, 1, 0, 0, 30, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,145, 8, 2, 0,239, 0, 7, 0,238, 2, 7, 0,239, 2, + 7, 0,240, 2, 7, 0, 72, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,173, 8, 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2, +227, 0, 5, 0, 2, 0, 15, 0, 2, 0,174, 8, 2, 0, 17, 0, 2, 0,175, 8, 19, 0,191, 6,226, 0, 3, 0, 4, 0, 66, 0, + 4, 0,176, 8,227, 0, 2, 0, 31, 1, 7, 0, 31, 1, 0, 0, 31, 1, 1, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, + 4, 0, 20, 0, 9, 0,177, 8, 32, 1, 5, 0, 0, 0, 18, 0, 7, 0, 79, 1, 7, 0,178, 8, 4, 0,179, 8, 4, 0, 35, 0, + 33, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 0, 34, 1, 4, 0, 0, 0, 18, 0, 57, 0,180, 8, + 7, 0, 79, 1, 7, 0, 35, 0, 35, 1, 6, 0, 2, 0,181, 8, 2, 0,182, 8, 2, 0, 15, 0, 2, 0,183, 8, 0, 0,184, 8, + 0, 0,185, 8, 36, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 0,186, 8, 0, 0,187, 8, 37, 1, 3, 0, + 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 1, 4, 0, 2, 0,188, 8, 2, 0,189, 8, 2, 0, 17, 0, 2, 0, 35, 0, + 39, 1, 6, 0, 0, 0, 18, 0, 0, 0,190, 8, 2, 0,191, 8, 2, 0,243, 2, 2, 0, 72, 1, 2, 0, 67, 0, 40, 1, 5, 0, + 0, 0, 18, 0, 7, 0, 76, 3, 7, 0,145, 4, 2, 0, 17, 0, 2, 0,207, 2, 41, 1, 3, 0, 0, 0, 18, 0, 4, 0,195, 2, + 4, 0,188, 8, 42, 1, 7, 0, 0, 0, 18, 0, 7, 0,145, 4, 0, 0,192, 8, 0, 0,193, 8, 2, 0, 72, 1, 2, 0, 87, 0, + 4, 0,194, 8, 43, 1, 4, 0, 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, 7, 0,211, 2, 44, 1, 3, 0, 24, 0,197, 8, + 0, 0,198, 8, 0, 0,199, 8, 45, 1, 18, 0, 45, 1, 0, 0, 45, 1, 1, 0, 2, 0, 15, 0, 2, 0,200, 8, 2, 0, 17, 0, + 2, 0,201, 8, 2, 0,202, 8, 2, 0,203, 8, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, 0, 46, 1,204, 8, + 24, 0, 42, 0, 2, 0,116, 5, 2, 0,100, 8, 2, 0,205, 8, 2, 0, 35, 0, 47, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, + 0, 0,206, 8, 2, 0, 17, 0, 2, 0,207, 2, 2, 0,207, 8, 4, 0,208, 8, 4, 0,209, 8, 4, 0,210, 8, 4, 0,211, 8, + 4, 0,212, 8, 48, 1, 1, 0, 0, 0,213, 8, 49, 1, 4, 0, 34, 0,154, 6, 0, 0,158, 7, 4, 0, 72, 1, 4, 0, 17, 0, + 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1,214, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,215, 8, 2, 0,203, 8, + 2, 0,200, 8, 2, 0,216, 8, 2, 0, 67, 0, 2, 0,229, 1, 0, 0, 18, 0, 9, 0, 2, 0, 50, 1,204, 8, 45, 1,217, 8, + 2, 0, 13, 0, 2, 0,218, 8, 4, 0,219, 8, 51, 1, 3, 0, 4, 0,221, 2, 4, 0, 35, 0, 24, 0, 42, 0, 52, 1, 12, 0, +157, 0,220, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,147, 8, 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,221, 8, 2, 0,222, 8, + 2, 0,223, 8, 2, 0,224, 8, 2, 0,225, 8, 7, 0,226, 8, 53, 1, 8, 0, 7, 0,227, 8, 7, 0,228, 8, 7, 0,229, 8, + 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, 54, 1, 13, 0, 2, 0, 17, 0, 2, 0,233, 6, + 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,235, 8, 7, 0, 14, 4, 7, 0,236, 8,245, 0,232, 6, 53, 1,237, 8, 2, 0, 15, 0, + 2, 0, 35, 5, 2, 0,254, 5, 2, 0,238, 8, 55, 1, 11, 0, 4, 0,221, 2, 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, + 73, 0,239, 8, 0, 0, 18, 0, 7, 0,240, 8, 7, 0,241, 8, 7, 0,151, 3, 2, 0,242, 8, 2, 0,243, 8, 56, 1, 5, 0, + 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 0,107, 5, 57, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, + 0, 0, 18, 0, 0, 0,186, 8, 24, 0, 42, 0, 58, 1, 13, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,200, 8, 2, 0,152, 3, + 7, 0,244, 8, 7, 0,245, 8, 7, 0,195, 4, 7, 0,163, 3, 7, 0,122, 3, 7, 0,125, 3, 7, 0,246, 8, 7, 0,247, 8, + 24, 0,248, 8, 59, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 0,147, 8, 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,221, 8, + 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,229, 1, 2, 0, 35, 5, 60, 1, 8, 0, 24, 0, 42, 0, 7, 0,240, 2, 7, 0,249, 8, + 7, 0,250, 8, 7, 0,152, 3, 2, 0, 87, 0, 2, 0,207, 2, 7, 0, 67, 0, 61, 1, 12, 0, 2, 0, 15, 0, 2, 0, 72, 1, + 2, 0, 17, 0, 2, 0,243, 2, 2, 0,221, 2, 2, 0,251, 8, 4, 0, 35, 0, 7, 0,252, 8, 7, 0,253, 8, 7, 0,254, 8, + 7, 0,255, 8, 0, 0, 0, 9, 62, 1, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,147, 8, 4, 0, 86, 0, 0, 0, 18, 0, + 2, 0,195, 4, 2, 0, 61, 0, 2, 0, 1, 9, 2, 0, 2, 9, 63, 1, 7, 0, 4, 0,195, 2, 4, 0, 3, 9, 4, 0, 4, 9, + 4, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9, 0, 0,192, 8, 64, 1, 7, 0, 0, 0, 8, 9, 24, 0, 9, 9, 0, 0,198, 8, + 2, 0, 10, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,199, 8, 65, 1, 6, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,147, 8, + 4, 0, 86, 0, 0, 0, 11, 9, 0, 0, 12, 9, 66, 1, 1, 0, 4, 0, 17, 0, 67, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 4, 0, 13, 9, 7, 0, 14, 9, 34, 0,154, 6, 68, 1, 4, 0, 0, 0,159, 2, 2, 0, 17, 0, 4, 0, 15, 0, + 24, 0, 42, 0, 69, 1, 2, 0, 4, 0, 15, 0, 4, 0, 73, 6, 70, 1, 6, 0, 0, 0,195, 8, 0, 0,196, 8, 4, 0, 15, 0, + 7, 0, 30, 2, 24, 0, 53, 3, 24, 0, 15, 9, 50, 1, 10, 0, 50, 1, 0, 0, 50, 1, 1, 0, 50, 1,214, 8, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,200, 8, 2, 0, 16, 9, 0, 0, 18, 0, 9, 0, 2, 0, 24, 0, 42, 0,245, 0, 16, 0, 19, 0, 29, 0, + 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 0, 17, 9, 28, 0, 77, 0, 7, 0, 14, 4, 7, 0, 18, 9, 7, 0,236, 8, + 7, 0,227, 8, 7, 0,228, 8, 7, 0, 19, 9, 4, 0, 88, 0, 4, 0, 35, 0, 9, 0, 20, 9, 9, 0, 21, 9, 71, 1, 6, 0, + 71, 1, 0, 0, 71, 1, 1, 0, 24, 0, 42, 0, 9, 0, 22, 9, 2, 0,244, 0, 0, 0,192, 2, 58, 0, 4, 0, 19, 0, 29, 0, + 12, 0, 23, 9, 4, 0,126, 0, 7, 0, 24, 9, 72, 1, 28, 0, 72, 1, 0, 0, 72, 1, 1, 0, 18, 0, 25, 9, 72, 1, 36, 0, + 12, 0, 26, 9, 0, 0, 18, 0, 7, 0, 27, 9, 7, 0, 28, 9, 7, 0, 29, 9, 7, 0, 30, 9, 4, 0, 17, 0, 7, 0, 31, 9, + 7, 0, 32, 9, 7, 0, 33, 9, 7, 0, 34, 9, 7, 0, 79, 1, 7, 0, 30, 2, 7, 0, 35, 9, 7, 0,193, 2, 7, 0, 36, 9, + 7, 0, 37, 9, 7, 0, 38, 9, 7, 0, 39, 9, 7, 0, 40, 9, 7, 0,167, 0, 4, 0,126, 0, 2, 0,153, 5, 2, 0, 5, 7, + 73, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 41, 9, 12, 0, 42, 9, 12, 0, 43, 9, 72, 1, 44, 9, 9, 0, 45, 9, + 9, 0, 46, 9, 4, 0, 17, 0, 4, 0, 48, 6, 2, 0,247, 2, 2, 0,103, 6, 4, 0, 47, 9, 4, 0,126, 0, 4, 0, 48, 9, + 2, 0, 49, 9, 2, 0, 50, 9, 2, 0, 51, 9, 2, 0, 52, 9, 4, 0, 53, 9, 4, 0, 54, 9, 4, 0, 55, 9, 4, 0, 56, 9, + 4, 0, 57, 9, 4, 0, 58, 9, 74, 1, 2, 0, 7, 0,148, 2, 4, 0, 17, 0,161, 0, 5, 0, 74, 1, 59, 9, 4, 0,193, 2, + 4, 0, 60, 9, 4, 0, 61, 9, 4, 0, 17, 0,160, 0, 16, 0, 4, 0, 62, 9, 4, 0, 63, 9, 4, 0, 64, 9, 4, 0, 65, 9, + 2, 0, 66, 9, 2, 0, 67, 9, 2, 0, 68, 9, 2, 0,244, 0, 2, 0, 69, 9, 2, 0, 70, 9, 2, 0, 71, 9, 2, 0, 72, 9, + 4, 0, 73, 9, 4, 0, 74, 9, 4, 0, 75, 9, 4, 0, 76, 9, 75, 1, 41, 0, 75, 1, 0, 0, 75, 1, 1, 0, 18, 0, 25, 9, + 12, 0,177, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 77, 9, 2, 0, 78, 9, 2, 0, 79, 9, 2, 0,137, 3, 2, 0, 80, 9, + 4, 0, 70, 2, 4, 0, 55, 9, 4, 0, 56, 9, 72, 1, 81, 9, 75, 1, 36, 0, 75, 1, 82, 9, 12, 0, 83, 9,161, 0,114, 3, + 24, 0, 84, 9, 75, 1, 85, 9, 7, 0, 67, 1, 7, 0,167, 0, 7, 0, 86, 9, 7, 0, 9, 2, 7, 0,127, 3, 7, 0,129, 3, + 2, 0,160, 3, 2, 0, 35, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0,132, 3, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0, 91, 9, + 7, 0, 92, 9, 7, 0, 93, 9, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, 7, 0, 63, 2,158, 0, 16, 0, 12, 0, 97, 9, + 68, 0, 98, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 99, 9, 4, 0, 87, 0, 7, 0, 99, 2, 7, 0,100, 9, 7, 0,101, 9, + 12, 0,102, 9, 4, 0,103, 9, 4, 0,104, 9, 9, 0,105, 9, 9, 0,106, 9,160, 0,113, 3, 0, 0,107, 9, 76, 1, 1, 0, + 4, 0,104, 9, 77, 1, 12, 0, 4, 0,104, 9, 7, 0,212, 8, 2, 0,108, 9, 2, 0,109, 9, 7, 0,110, 9, 7, 0,111, 9, + 2, 0,112, 9, 2, 0, 17, 0, 7, 0,113, 9, 7, 0,114, 9, 7, 0,115, 9, 7, 0,116, 9, 78, 1, 7, 0, 78, 1, 0, 0, + 78, 1, 1, 0, 12, 0,117, 9, 4, 0, 17, 0, 4, 0,118, 9, 0, 0, 4, 4,253, 0,119, 9,157, 0, 9, 0, 19, 0, 29, 0, + 12, 0,120, 9, 12, 0, 97, 9, 12, 0,121, 9, 12, 0, 98, 0, 4, 0, 17, 0, 4, 0,122, 9, 4, 0,123, 9, 4, 0, 35, 0, +217, 0, 6, 0, 19, 0,124, 9, 12, 0, 97, 9, 58, 0,125, 9, 0, 0,126, 9, 4, 0,127, 9, 4, 0, 17, 0, 79, 1, 13, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 39, 6, 4, 0, 40, 6, 7, 0, 41, 6, 2, 0, 42, 6,214, 0, 92, 6,157, 0,109, 3, +217, 0,128, 9, 0, 0, 72, 1, 0, 0, 95, 6, 2, 0, 17, 0, 7, 0,129, 9, 80, 1, 8, 0, 80, 1, 0, 0, 80, 1, 1, 0, + 78, 1,130, 9, 28, 0, 77, 0, 12, 0,115, 3, 4, 0, 17, 0, 0, 0, 18, 0, 4, 0,250, 7, 81, 1, 5, 0, 81, 1, 0, 0, + 81, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,131, 9, 82, 1, 14, 0, 82, 1, 0, 0, 82, 1, 1, 0, 9, 0, 2, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,132, 9, 0, 0,133, 9, 0, 0,131, 9, 7, 0,134, 9, 7, 0,135, 9, 4, 0, 35, 0, + 28, 0, 77, 0, 7, 0,136, 9, 7, 0,137, 9, 83, 1, 9, 0, 83, 1, 0, 0, 83, 1, 1, 0, 24, 0,138, 9, 0, 0,250, 2, + 7, 0,139, 9, 2, 0,140, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,141, 9, 84, 1, 7, 0, 34, 0,154, 6, 18, 0, 25, 9, + 4, 0, 17, 0, 4, 0,142, 9, 12, 0,143, 9, 24, 0,138, 9, 0, 0,250, 2, 85, 1, 15, 0, 24, 0,138, 9, 2, 0,144, 9, + 2, 0, 17, 0, 2, 0,145, 9, 2, 0,146, 9, 0, 0,250, 2, 24, 0,147, 9, 0, 0,148, 9, 7, 0,149, 9, 7, 0, 30, 2, + 7, 0,150, 9, 7, 0,151, 9, 2, 0, 15, 0, 2, 0, 72, 1, 7, 0, 79, 1, 86, 1, 6, 0, 24, 0,138, 9, 7, 0, 59, 9, + 2, 0,152, 9, 2, 0,153, 9, 2, 0, 17, 0, 2, 0,154, 9, 87, 1, 6, 0, 24, 0,138, 9, 4, 0,155, 9, 4, 0,156, 9, + 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,250, 2, 88, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, + 89, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0,155, 9, 0, 0,250, 2, 90, 1, 4, 0, 24, 0,138, 9, 4, 0, 17, 0, + 4, 0,155, 9, 0, 0,250, 2, 91, 1, 2, 0, 4, 0, 17, 0, 7, 0, 14, 4, 92, 1, 2, 0, 24, 0,138, 9, 0, 0,250, 2, + 93, 1, 10, 0, 24, 0,138, 9, 4, 0,157, 9, 7, 0,120, 0, 4, 0, 17, 0, 2, 0,152, 6, 2, 0,158, 9, 2, 0, 87, 0, + 2, 0, 67, 0, 7, 0,159, 9, 0, 0,250, 2, 94, 1, 10, 0, 24, 0,138, 9, 2, 0, 15, 0, 2, 0, 64, 4, 4, 0, 85, 0, + 4, 0, 86, 0, 7, 0,249, 8, 7, 0,250, 8, 4, 0, 35, 0,157, 0,220, 8, 0, 0,250, 2, 95, 1, 4, 0, 24, 0,138, 9, + 4, 0,138, 3, 4, 0,160, 9, 0, 0,250, 2, 96, 1, 4, 0, 24, 0,138, 9, 4, 0,138, 3, 4, 0, 35, 0, 0, 0,250, 2, + 97, 1, 6, 0, 24, 0,138, 9, 7, 0,120, 0, 7, 0, 65, 3, 4, 0,161, 9, 2, 0,138, 3, 2, 0,139, 3, 98, 1, 6, 0, + 24, 0,138, 9, 4, 0,162, 9, 4, 0,163, 9, 7, 0,164, 9, 7, 0,165, 9, 0, 0,250, 2, 99, 1, 16, 0, 24, 0,138, 9, + 24, 0, 82, 9, 4, 0, 15, 0, 7, 0,166, 9, 7, 0,167, 9, 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, + 7, 0,172, 9, 7, 0,173, 9, 7, 0,174, 9, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, 0,100, 1, 3, 0, + 24, 0,138, 9, 4, 0, 17, 0, 4, 0, 22, 2,101, 1, 5, 0, 24, 0,138, 9, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,175, 9, + 0, 0,250, 2,102, 1, 10, 0, 24, 0,138, 9, 0, 0,250, 2, 2, 0,176, 9, 2, 0,177, 9, 0, 0,178, 9, 0, 0,179, 9, + 7, 0,180, 9, 7, 0,181, 9, 7, 0,182, 9, 7, 0,183, 9,103, 1, 5, 0, 24, 0,138, 9, 0, 0,250, 2, 7, 0,201, 2, + 2, 0,184, 9, 2, 0, 17, 0,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,185, 9, + 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 22, 2,105, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, + 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 22, 2,106, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, + 7, 0, 10, 0, 7, 0,185, 9, 7, 0,186, 9, 2, 0, 17, 0, 2, 0, 22, 2,107, 1, 7, 0, 24, 0,138, 9, 0, 0,250, 2, + 7, 0, 79, 1, 7, 0, 88, 1, 2, 0, 17, 0, 2, 0, 72, 1, 4, 0, 35, 0,108, 1, 5, 0, 24, 0, 53, 3, 7, 0, 79, 1, + 2, 0, 57, 3, 0, 0, 59, 3, 0, 0,187, 9,109, 1, 10, 0,109, 1, 0, 0,109, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, + 0, 0,188, 9, 7, 0, 22, 1, 7, 0, 23, 1, 2, 0,117, 9, 2, 0,189, 9, 24, 0, 42, 0,110, 1, 22, 0,110, 1, 0, 0, +110, 1, 1, 0, 2, 0, 17, 0, 2, 0, 72, 1, 2, 0,190, 9, 2, 0,191, 9, 28, 0, 77, 0,157, 0,220, 8, 24, 0,159, 0, + 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9, 7, 0,195, 9, 7, 0,236, 2, 7, 0,196, 9, + 7, 0,222, 8, 7, 0,197, 9, 0, 0,198, 9, 0, 0,199, 9, 12, 0,118, 3,111, 1, 8, 0, 7, 0, 37, 2, 7, 0,249, 8, + 7, 0,250, 8, 9, 0, 2, 0, 2, 0,200, 9, 2, 0,201, 9, 2, 0,202, 9, 2, 0,203, 9,112, 1, 19, 0,112, 1, 0, 0, +112, 1, 1, 0,112, 1,204, 9, 0, 0, 18, 0,111, 1,205, 9, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,206, 9, 2, 0,207, 9, +111, 1,208, 9, 2, 0,209, 9, 2, 0, 87, 0, 7, 0,210, 9, 7, 0,211, 9, 4, 0,212, 9,112, 1,213, 9, 4, 0,214, 9, + 4, 0, 67, 0,113, 1,215, 9,114, 1, 4, 0, 0, 0,216, 9, 2, 0,217, 9, 2, 0,218, 9, 4, 0, 35, 0,115, 1, 34, 0, +115, 1, 0, 0,115, 1, 1, 0,115, 1,219, 9, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 72, 8, 2, 0,100, 8, + 2, 0,220, 9, 2, 0,157, 6, 2, 0,209, 9, 2, 0,174, 8, 12, 0,215, 8, 12, 0,221, 9, 19, 0,191, 6, 9, 0,222, 9, + 7, 0,210, 9, 7, 0,211, 9, 7, 0, 72, 2, 7, 0,223, 9, 0, 0,224, 9, 2, 0,225, 9, 2, 0,226, 9, 7, 0,227, 9, + 7, 0,228, 9, 2, 0,229, 9, 2, 0,230, 9, 9, 0,231, 9, 16, 0,232, 9, 16, 0,233, 9, 16, 0,234, 9,114, 1,146, 0, +116, 1,235, 9,117, 1,236, 9,113, 1, 8, 0,113, 1, 0, 0,113, 1, 1, 0,115, 1,237, 9,115, 1,238, 9,112, 1,239, 9, +112, 1,240, 9, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, 31, 0, 72, 0,159, 0,112, 3, 12, 0,241, 9, + 12, 0,242, 9,111, 1,243, 9, 12, 0,244, 9, 4, 0, 15, 0, 4, 0,245, 9, 4, 0,246, 9, 4, 0,247, 9, 4, 0, 17, 0, + 4, 0, 35, 0, 12, 0,248, 9, 12, 0,215, 8, 12, 0,221, 9, 4, 0, 62, 6, 9, 0,249, 9, 9, 0,250, 9, 4, 0,251, 9, + 9, 0,252, 9, 9, 0,253, 9, 9, 0,254, 9,118, 1, 6, 0, 4, 0,119, 0, 4, 0,121, 0, 4, 0,174, 8, 0, 0,255, 9, + 0, 0, 0, 10, 2, 0, 35, 0,119, 1, 16, 0, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, + 2, 0, 65, 0, 2, 0,192, 6, 2, 0, 4, 10, 7, 0,235, 2, 7, 0, 5, 10, 7, 0, 6, 10, 2, 0, 94, 1, 0, 0, 7, 10, + 0, 0, 8, 10, 4, 0, 9, 10, 4, 0, 10, 10,120, 1, 9, 0, 7, 0, 11, 10, 7, 0, 12, 10, 7, 0, 19, 9, 7, 0, 76, 3, + 7, 0, 13, 10, 7, 0,109, 6, 2, 0, 74, 3, 0, 0, 14, 10, 0, 0, 35, 0,121, 1, 4, 0, 7, 0, 15, 10, 7, 0, 16, 10, + 2, 0, 74, 3, 2, 0, 35, 0,122, 1, 3, 0, 7, 0, 17, 10, 7, 0, 87, 8, 7, 0, 13, 0,123, 1, 7, 0, 0, 0,254, 1, + 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0,217, 4, 4, 0,121, 0, 4, 0, 62, 4,124, 1, 9, 0, 7, 0, 18, 10, + 7, 0, 19, 10, 7, 0, 20, 10, 7, 0, 83, 2, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, 2, 0, 24, 10, 2, 0, 25, 10, +125, 1, 8, 0, 2, 0, 26, 10, 2, 0, 27, 10, 2, 0, 28, 10, 2, 0, 29, 10, 7, 0, 30, 10, 7, 0, 31, 10, 7, 0, 32, 10, + 7, 0, 33, 10,126, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,127, 1, 2, 0, 0, 0,161, 0, 0, 0, 34, 10,128, 1, 1, 0, + 0, 0, 18, 0,129, 1, 10, 0, 0, 0, 35, 10, 0, 0, 36, 10, 0, 0,101, 6, 0, 0, 37, 10, 2, 0, 1, 10, 2, 0, 38, 10, + 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0,196, 9,130, 1, 2, 0, 9, 0, 42, 10, 9, 0, 43, 10,131, 1, 11, 0, + 0, 0, 28, 5, 0, 0, 15, 0, 0, 0, 74, 3, 0, 0, 76, 3, 0, 0, 44, 10, 0, 0,104, 0, 0, 0,159, 2, 7, 0, 45, 10, + 7, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10,132, 1, 8, 0, 7, 0,181, 8, 7, 0,120, 0, 7, 0, 8, 10, 7, 0,152, 2, + 7, 0, 49, 10, 7, 0,233, 0, 7, 0, 50, 10, 4, 0, 15, 0,133, 1, 4, 0, 2, 0, 51, 10, 2, 0, 52, 10, 2, 0, 53, 10, + 2, 0, 35, 0,134, 1, 8, 0, 7, 0, 54, 10, 7, 0,201, 2, 7, 0, 55, 10, 7, 0, 68, 8, 7, 0, 69, 8, 7, 0, 70, 8, + 7, 0, 56, 10, 7, 0, 57, 10,135, 1, 6, 0, 2, 0, 58, 10, 2, 0, 59, 10, 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, + 7, 0, 63, 10,136, 1, 1, 0, 0, 0, 18, 0,137, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 64, 10, +138, 1, 10, 0, 2, 0,248, 3, 2, 0, 17, 0, 7, 0,145, 4, 7, 0, 65, 10, 7, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10, +137, 1, 69, 10,137, 1, 70, 10,137, 1, 71, 10, 51, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 0, 72, 10, 4, 0, 73, 10, + 16, 0, 74, 10, 16, 0, 75, 10,138, 1, 76, 10, 7, 0, 77, 10, 7, 0, 78, 10, 7, 0, 79, 10, 7, 0, 80, 10,230, 0, 10, 0, + 4, 0,117, 9, 4, 0, 81, 10, 7, 0, 82, 10, 7, 0, 83, 10, 7, 0, 84, 10, 7, 0, 85, 10, 7, 0, 8, 0, 7, 0, 10, 0, + 4, 0, 72, 1, 4, 0,240, 2,229, 0, 18, 0, 4, 0,124, 0, 4, 0, 86, 10, 4, 0, 87, 10, 7, 0, 88, 10, 4, 0, 89, 10, + 7, 0, 90, 10, 7, 0, 91, 10, 4, 0, 92, 10, 7, 0, 93, 10, 4, 0, 94, 10, 7, 0, 95, 10,230, 0, 96, 10, 7, 0, 97, 10, + 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 4, 0,101, 10, 4, 0, 35, 0,139, 1, 4, 0, 39, 0,227, 2, 7, 0,102, 10, + 7, 0,161, 1, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 0,139, 1,103, 10, 51, 0, 69, 10, 43, 0,104, 10, 49, 0,105, 10, + 22, 0,146, 0, 0, 0,106, 10, 7, 0,107, 10, 2, 0, 4, 6, 2, 0,108, 10, 4, 0,104, 0, 4, 0, 17, 0, 7, 0,109, 10, + 4, 0, 80, 2, 4, 0,110, 10, 7, 0,111, 10, 7, 0,112, 10, 7, 0,113, 10, 7, 0,161, 1, 4, 0,114, 10, 7, 0,115, 10, + 0, 0,116, 10, 0, 0,117, 10, 0, 0,118, 10, 0, 0,119, 10, 7, 0,120, 10, 7, 0,121, 10, 7, 0,122, 10, 7, 0,240, 2, + 7, 0,123, 10, 4, 0,124, 10, 7, 0,125, 10, 7, 0,126, 10, 7, 0,127, 10,140, 1, 10, 0, 4, 0, 15, 0, 4, 0,120, 0, + 4, 0, 17, 0, 4, 0,201, 3, 4, 0,128, 10, 4, 0,129, 10, 4, 0,130, 10, 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0, +141, 1, 1, 0, 0, 0, 60, 8, 84, 0, 7, 0,140, 1,131, 10, 4, 0,132, 10, 4, 0,133, 10, 4, 0,134, 10, 4, 0, 35, 0, + 9, 0,135, 10,141, 1,136, 10,142, 1, 5, 0, 7, 0,148, 2, 7, 0,221, 2, 7, 0, 30, 2, 2, 0,129, 2, 2, 0, 35, 0, +143, 1, 5, 0, 7, 0,148, 2, 7, 0, 89, 4, 7, 0,137, 10, 7, 0,138, 10, 7, 0,221, 2,144, 1, 5, 0, 24, 0,139, 10, +145, 1, 20, 0, 7, 0,227, 5, 7, 0,140, 10, 7, 0, 54, 0,146, 1, 3, 0, 7, 0,141, 10, 4, 0,142, 10, 4, 0,143, 10, +147, 1, 7, 0, 4, 0,144, 10, 4, 0,145, 10, 4, 0,146, 10, 7, 0,147, 10, 7, 0,148, 10, 7, 0,149, 10, 7, 0, 54, 0, +148, 1, 8, 0,148, 1, 0, 0,148, 1, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, 2, 0, 17, 0, 2, 0, 72, 1, 7, 0,221, 2, + 7, 0,189, 8,149, 1, 6, 0,149, 1, 0, 0,149, 1, 1, 0, 24, 0, 42, 0, 2, 0,206, 2, 2, 0, 17, 0, 2, 0,150, 10, +150, 1, 17, 0,143, 1,193, 3,143, 1,151, 10,142, 1,152, 10,143, 1,172, 8,144, 1,153, 10, 4, 0, 79, 0, 7, 0,221, 2, + 7, 0,246, 2, 7, 0,154, 10, 4, 0,144, 10, 4, 0,155, 10, 7, 0,148, 10, 7, 0,149, 10, 7, 0,104, 0, 4, 0,156, 10, + 2, 0, 17, 0, 2, 0,157, 10,151, 1, 15, 0, 7, 0,248, 0, 7, 0,158, 10, 7, 0,141, 10, 7, 0,159, 10, 7, 0,160, 10, + 7, 0,161, 10, 7, 0,162, 10, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10, 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, + 4, 0, 17, 0, 4, 0,169, 10,152, 1,124, 0, 19, 0, 29, 0, 31, 0, 72, 0,153, 1,170, 10,151, 1,171, 10,168, 0, 84, 4, + 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 0,176, 9, 2, 0,172, 10, 2, 0,107, 1, 2, 0,173, 10, 2, 0,160, 3, + 2, 0,174, 10, 2, 0,175, 10, 2, 0,176, 10, 2, 0,177, 10, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, + 2, 0,182, 10, 2, 0,124, 5, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0, 19, 2, + 2, 0,165, 8, 2, 0,140, 8, 2, 0,188, 10, 2, 0,189, 10, 2, 0,211, 3, 2, 0,212, 3, 2, 0,190, 10, 2, 0,191, 10, + 2, 0,192, 10, 2, 0,193, 10, 7, 0,194, 10, 7, 0,195, 10, 7, 0,196, 10, 7, 0,197, 10, 7, 0,198, 10, 7, 0,199, 10, + 7, 0,200, 10, 2, 0, 74, 5, 2, 0,201, 10, 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,147, 8, 7, 0, 86, 0, + 7, 0,246, 2, 7, 0,153, 8, 7, 0,205, 10, 7, 0,206, 10, 7, 0,207, 10, 7, 0,208, 10, 4, 0,148, 8, 4, 0,146, 8, + 4, 0,209, 10, 4, 0,210, 10, 7, 0,149, 8, 7, 0,150, 8, 7, 0,151, 8, 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10, + 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 7, 0,217, 10, 7, 0,218, 10, 7, 0,219, 10, 7, 0,151, 3, 7, 0,104, 0, + 7, 0,220, 10, 7, 0,221, 10, 7, 0,222, 10, 7, 0,223, 10, 7, 0,206, 0, 7, 0,224, 10, 4, 0,225, 10, 4, 0,226, 10, + 7, 0,227, 10, 7, 0,228, 10, 7, 0,229, 10, 7, 0,230, 10, 7, 0,231, 10, 7, 0,205, 0, 7, 0,232, 10, 7, 0,238, 3, + 7, 0,236, 3, 7, 0,237, 3, 7, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10, 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10, + 7, 0,239, 10, 7, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, + 7, 0,247, 10, 7, 0,248, 10, 7, 0,249, 10, 7, 0,250, 10, 4, 0,251, 10, 4, 0,252, 10, 43, 0,125, 1, 58, 0,182, 3, + 12, 0,253, 10, 58, 0,254, 10, 24, 0,255, 10, 24, 0, 0, 11, 28, 0, 77, 0,163, 0, 64, 1,163, 0, 1, 11,141, 0, 50, 0, +141, 0, 0, 0,141, 0, 1, 0,152, 1, 2, 11,150, 1, 3, 11,147, 1, 82, 9,171, 0, 10, 4, 9, 0, 11, 4,154, 1, 4, 11, +154, 1, 5, 11, 12, 0, 6, 11, 12, 0, 7, 11,126, 0, 8, 11,134, 0, 9, 11,134, 0, 10, 11, 24, 0, 11, 11, 24, 0, 12, 11, + 24, 0, 36, 0, 12, 0,143, 9, 0, 0, 18, 0, 7, 0,237, 0, 7, 0, 19, 3, 7, 0, 13, 11, 7, 0, 14, 11, 4, 0,195, 2, + 4, 0, 15, 11, 4, 0, 17, 0, 4, 0,148, 8, 4, 0, 16, 11, 4, 0, 17, 11, 4, 0, 18, 11, 4, 0, 19, 11, 2, 0,244, 0, + 2, 0, 20, 11, 2, 0, 21, 11, 2, 0, 22, 11, 0, 0, 23, 11, 2, 0, 24, 11, 2, 0, 25, 11, 2, 0, 26, 11, 9, 0, 27, 11, +130, 0, 83, 4, 12, 0, 4, 3, 12, 0, 28, 11,146, 1, 29, 11, 4, 0, 30, 11, 4, 0, 31, 11,155, 1, 32, 11,132, 0, 16, 3, +156, 1, 33, 11, 7, 0, 34, 11,128, 0, 37, 0,157, 1, 20, 9, 7, 0, 53, 4, 7, 0, 35, 11, 7, 0, 36, 11, 7, 0,227, 5, + 7, 0,161, 3, 7, 0,151, 3, 7, 0, 37, 11, 7, 0, 82, 2, 7, 0, 38, 11, 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 41, 11, + 7, 0, 42, 11, 7, 0, 43, 11, 7, 0, 54, 4, 7, 0, 44, 11, 7, 0, 45, 11, 7, 0, 46, 11, 7, 0, 55, 4, 7, 0, 51, 4, + 7, 0, 52, 4, 7, 0, 47, 11, 7, 0, 48, 11, 4, 0, 49, 11, 4, 0, 88, 0, 4, 0, 50, 11, 4, 0, 51, 11, 2, 0, 52, 11, + 2, 0, 53, 11, 2, 0, 54, 11, 2, 0, 55, 11, 2, 0, 56, 11, 2, 0, 57, 11, 2, 0, 58, 11, 2, 0,195, 4,168, 0, 84, 4, +129, 0, 11, 0,157, 1, 59, 11, 7, 0, 60, 11, 7, 0, 61, 11, 7, 0,233, 1, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11, + 4, 0, 88, 0, 2, 0, 65, 11, 2, 0, 66, 11, 58, 0,232, 1,158, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 2, + 7, 0, 67, 11,159, 1, 6, 0,159, 1, 0, 0,159, 1, 1, 0,158, 1, 59, 9, 4, 0,250, 0, 2, 0, 68, 11, 2, 0, 17, 0, +160, 1, 5, 0,160, 1, 0, 0,160, 1, 1, 0, 12, 0, 69, 11, 4, 0, 70, 11, 4, 0, 17, 0,161, 1, 9, 0,161, 1, 0, 0, +161, 1, 1, 0, 12, 0,119, 0,160, 1, 71, 11, 4, 0, 17, 0, 2, 0, 68, 11, 2, 0, 72, 11, 7, 0, 89, 0, 0, 0, 73, 11, +159, 0, 6, 0, 19, 0, 29, 0, 12, 0, 43, 5, 4, 0, 17, 0, 2, 0, 74, 11, 2, 0, 75, 11, 9, 0, 76, 11,162, 1, 6, 0, + 12, 0, 77, 11, 4, 0, 78, 11, 4, 0, 79, 11, 4, 0, 17, 0, 4, 0, 35, 0,211, 0, 80, 11,163, 1, 17, 0, 19, 0, 29, 0, +164, 1, 81, 11,164, 1, 82, 11, 12, 0, 83, 11, 4, 0, 84, 11, 2, 0, 85, 11, 2, 0, 86, 11, 12, 0, 87, 11, 12, 0, 88, 11, +162, 1, 89, 11, 12, 0, 90, 11, 12, 0, 91, 11, 12, 0, 92, 11, 12, 0, 93, 11,165, 1, 94, 11, 12, 0, 95, 11,211, 0, 96, 11, +164, 1, 32, 0,164, 1, 0, 0,164, 1, 1, 0, 9, 0, 97, 11, 4, 0,251, 7, 2, 0, 98, 11, 2, 0, 35, 0, 2, 1, 99, 11, + 2, 1,100, 11, 0, 0,101, 11, 2, 0,102, 11, 2, 0,103, 11, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0,104, 11, 2, 0,105, 11, + 2, 0,201, 3, 2, 0,223, 6, 2, 0,106, 11, 2, 0,107, 11, 2, 0,108, 11, 2, 0, 67, 0,166, 1,109, 11,167, 1,110, 11, +168, 1,111, 11, 4, 0,112, 11, 4, 0,113, 11, 9, 0,114, 11, 12, 0, 88, 11, 12, 0, 37, 8, 12, 0,115, 11, 12, 0,116, 11, + 12, 0,117, 11,169, 1, 17, 0,169, 1, 0, 0,169, 1, 1, 0, 0, 0,118, 11, 18, 0, 28, 0, 2, 0,119, 11, 2, 0, 15, 0, + 2, 0, 13, 0, 2, 0,120, 11, 2, 0,121, 11, 2, 0,122, 11, 2, 0,123, 11, 2, 0,124, 11, 2, 0, 17, 0, 2, 0,125, 11, + 2, 0, 29, 0, 2, 0, 35, 0,170, 1,126, 11,171, 1, 10, 0,171, 1, 0, 0,171, 1, 1, 0, 12, 0,127, 11, 0, 0,118, 11, + 2, 0,128, 11, 2, 0,129, 11, 2, 0, 17, 0, 2, 0,130, 11, 4, 0,131, 11, 9, 0,132, 11,165, 1, 7, 0,165, 1, 0, 0, +165, 1, 1, 0, 0, 0,118, 11, 0, 0,133, 11, 12, 0,196, 7, 4, 0,134, 11, 4, 0, 17, 0,223, 0, 14, 0,223, 0, 0, 0, +223, 0, 1, 0, 0, 0,118, 11, 18, 0, 28, 0,172, 1, 11, 8, 9, 0,135, 11, 9, 0,136, 11,170, 1,126, 11,162, 1,137, 11, + 12, 0,138, 11,223, 0,139, 11, 7, 1,130, 6, 2, 0, 17, 0, 2, 0,195, 4,173, 1, 8, 0,173, 1, 0, 0,173, 1, 1, 0, + 9, 0, 2, 0, 9, 0,140, 11, 0, 0, 4, 4, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,141, 11,174, 1, 5, 0, 7, 0,142, 11, + 4, 0,143, 11, 4, 0,144, 11, 4, 0, 72, 1, 4, 0, 17, 0,175, 1, 6, 0, 7, 0,145, 11, 7, 0,146, 11, 7, 0,147, 11, + 7, 0,148, 11, 4, 0, 15, 0, 4, 0, 17, 0,176, 1, 5, 0, 7, 0,249, 8, 7, 0,250, 8, 7, 0,221, 2, 2, 0, 33, 2, + 2, 0, 34, 2,177, 1, 5, 0,176, 1, 2, 0, 4, 0, 51, 0, 7, 0,149, 11, 7, 0,249, 8, 7, 0,250, 8,178, 1, 4, 0, + 2, 0,150, 11, 2, 0,151, 11, 2, 0,152, 11, 2, 0,153, 11,179, 1, 2, 0, 34, 0,185, 6, 18, 0, 25, 9,180, 1, 3, 0, + 16, 0,154, 11, 4, 0, 17, 0, 4, 0, 35, 0,181, 1, 6, 0, 7, 0,104, 0, 7, 0,223, 2, 7, 0,155, 11, 7, 0, 35, 0, + 2, 0,243, 0, 2, 0,156, 11,182, 1, 5, 0, 7, 0,157, 11, 7, 0,120, 0, 7, 0, 60, 9, 7, 0, 61, 9, 4, 0, 17, 0, +183, 1, 6, 0, 19, 0,191, 6, 0, 0,158, 11, 0, 0,159, 11, 2, 0,160, 11, 2, 0, 17, 0, 4, 0,161, 11,184, 1, 7, 0, +184, 1, 0, 0,184, 1, 1, 0, 0, 0, 4, 4,183, 1,162, 11, 2, 0,163, 11, 2, 0, 15, 0, 7, 0, 58, 0,185, 1, 7, 0, + 12, 0,164, 11, 0, 0,165, 11, 9, 0,166, 11, 7, 0, 58, 0, 7, 0,141, 11, 4, 0, 15, 0, 4, 0, 17, 0,186, 1, 3, 0, + 7, 0,167, 11, 4, 0, 17, 0, 4, 0, 35, 0,187, 1, 15, 0,187, 1, 0, 0,187, 1, 1, 0, 78, 1,130, 9,185, 1, 59, 0, + 12, 0,118, 3, 27, 0, 47, 0,186, 1,168, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 15, 1, 4, 0,169, 11, + 0, 0,158, 11, 4, 0,170, 11, 7, 0,171, 11,188, 1, 2, 0, 0, 0,172, 11, 0, 0,173, 11,189, 1, 4, 0,189, 1, 0, 0, +189, 1, 1, 0,157, 0, 53, 3, 12, 0,174, 11,190, 1, 24, 0,190, 1, 0, 0,190, 1, 1, 0, 12, 0,175, 11,157, 0,220, 8, +189, 1,176, 11, 12, 0,177, 11, 12, 0,118, 3, 0, 0, 4, 4, 7, 0,141, 11, 7, 0,178, 11, 7, 0, 85, 0, 7, 0, 86, 0, + 7, 0,192, 9, 7, 0,193, 9, 7, 0,236, 2, 7, 0,196, 9, 7, 0,222, 8, 7, 0,197, 9, 2, 0,179, 11, 2, 0,180, 11, + 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,191, 1, 6, 0,191, 1, 0, 0,191, 1, 1, 0, 12, 0,175, 11, + 4, 0, 17, 0, 4, 0,252, 1, 0, 0, 4, 4,192, 1, 11, 0,192, 1, 0, 0,192, 1, 1, 0, 19, 0,191, 6, 0, 0,181, 11, + 4, 0,161, 11, 2, 0,182, 11, 2, 0, 35, 0, 0, 0,158, 11, 4, 0,169, 11, 2, 0, 17, 0, 2, 0,183, 11,193, 1, 8, 0, +193, 1, 0, 0,193, 1, 1, 0, 12, 0,184, 11, 0, 0, 4, 4, 0, 0,185, 11, 2, 0, 17, 0, 2, 0,183, 11, 4, 0,186, 11, +194, 1, 5, 0,194, 1, 0, 0,194, 1, 1, 0, 0, 0,158, 11, 4, 0,169, 11, 7, 0,211, 2, 31, 0, 12, 0,157, 0,109, 3, +157, 0,187, 11,189, 1,176, 11, 12, 0,188, 11,190, 1,189, 11, 12, 0,190, 11, 12, 0,191, 11, 4, 0, 17, 0, 4, 0,244, 0, + 2, 0,192, 11, 2, 0,193, 11, 7, 0,194, 11,195, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,196, 1, 5, 0,196, 1, 0, 0, +196, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,197, 1, 6, 0,196, 1,195, 11, 24, 0, 42, 0, 4, 0,196, 11, + 7, 0,197, 11, 4, 0,198, 11, 4, 0,117, 9,198, 1, 3, 0,196, 1,195, 11, 4, 0,196, 11, 7, 0,199, 11,199, 1, 8, 0, +196, 1,195, 11, 24, 0, 42, 0, 7, 0, 67, 1, 7, 0,200, 11, 7, 0, 19, 3, 7, 0, 19, 9, 4, 0,196, 11, 4, 0,201, 11, +200, 1, 5, 0,196, 1,195, 11, 7, 0,202, 11, 7, 0,100, 8, 7, 0,242, 2, 7, 0, 54, 0,201, 1, 3, 0,196, 1,195, 11, + 7, 0, 19, 9, 7, 0,203, 11,145, 1, 4, 0, 7, 0,204, 11, 7, 0,221, 10, 2, 0,205, 11, 2, 0, 72, 1,202, 1, 14, 0, +202, 1, 0, 0,202, 1, 1, 0, 12, 0,206, 11, 12, 0,207, 11, 12, 0,208, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0, + 4, 0,209, 11, 7, 0,210, 11, 4, 0,198, 11, 4, 0,117, 9, 7, 0, 14, 4, 7, 0,244, 2,153, 1, 23, 0, 4, 0,196, 11, + 4, 0,211, 11, 7, 0,212, 11, 7, 0,240, 2, 7, 0,213, 11, 7, 0,236, 8, 7, 0,204, 11, 7, 0,214, 11, 7, 0,223, 2, + 7, 0, 88, 10, 7, 0,145, 4, 7, 0,215, 11, 7, 0,216, 11, 7, 0,217, 11, 7, 0,218, 11, 7, 0,219, 11, 7, 0,220, 11, + 7, 0,221, 11, 7, 0,222, 11, 7, 0,223, 11, 7, 0,224, 11, 7, 0,225, 11, 12, 0,226, 11,114, 0, 40, 0,113, 0,227, 11, +203, 1,171, 10, 58, 0,228, 11, 58, 0,254, 10, 58, 0,229, 11,204, 1,230, 11, 40, 0,160, 0, 40, 0,231, 11, 40, 0,232, 11, + 7, 0,233, 11, 7, 0,234, 11, 7, 0,235, 11, 7, 0,236, 11, 7, 0,237, 11, 7, 0,250, 7, 7, 0,238, 11, 7, 0,161, 1, + 7, 0,239, 11, 4, 0,240, 11, 4, 0,241, 11, 4, 0,242, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,243, 11, 2, 0,244, 11, + 2, 0,245, 11, 4, 0,246, 11, 7, 0,223, 2, 4, 0,247, 11, 7, 0,248, 11, 4, 0,249, 11, 4, 0,250, 11, 4, 0,251, 11, +130, 0,252, 11, 12, 0,253, 11,168, 0, 84, 4, 4, 0,254, 11, 7, 0,255, 11, 7, 0, 0, 12, 4, 0, 67, 0,115, 0, 12, 0, +113, 0,227, 11,141, 0, 39, 3, 7, 0,128, 1, 7, 0,250, 7, 7, 0, 1, 12, 7, 0, 2, 12, 7, 0, 3, 12, 2, 0, 4, 12, + 2, 0, 5, 12, 2, 0, 6, 12, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 0,227, 11,132, 0, 16, 3,134, 0, 18, 3, + 7, 0, 59, 9, 7, 0, 7, 12, 7, 0, 8, 12, 7, 0, 69, 1, 7, 0, 9, 12, 4, 0,152, 9, 4, 0, 12, 3, 2, 0, 15, 0, + 2, 0, 35, 0, 4, 0, 67, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -- cgit v1.2.3 From 609933208dba8ac78dff85294d83d495a8ae45d4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 19:27:42 +0000 Subject: dont include the preview.blend in headless mode --- source/blender/editors/datafiles/CMakeLists.txt | 5 ++++- source/blender/editors/render/CMakeLists.txt | 4 ++++ source/blender/editors/render/render_preview.c | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt index 080673d6e54..17e3a868a8c 100644 --- a/source/blender/editors/datafiles/CMakeLists.txt +++ b/source/blender/editors/datafiles/CMakeLists.txt @@ -37,13 +37,16 @@ if(WITH_BLENDER) # blender only list(APPEND SRC startup.blend.c - preview.blend.c bmonofont.ttf.c ) if(NOT WITH_HEADLESS) # blender UI only list(APPEND SRC + # blends + preview.blend.c + + # images splash.png.c blenderbuttons.c diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt index 0d1de00806b..7e497200710 100644 --- a/source/blender/editors/render/CMakeLists.txt +++ b/source/blender/editors/render/CMakeLists.txt @@ -60,4 +60,8 @@ if(WITH_OPENMP) add_definitions(-DPARALLEL=1) endif() +if(WITH_HEADLESS) + add_definitions(-DWITH_HEADLESS) +endif() + blender_add_lib(bf_editor_render "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 2404805c17b..007ae96ae59 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -171,6 +171,7 @@ static Main *pr_main= NULL; void ED_preview_init_dbase(void) { +#ifndef WITH_HEADLESS BlendFileData *bfd; extern int datatoc_preview_blend_size; extern char datatoc_preview_blend[]; @@ -184,6 +185,7 @@ void ED_preview_init_dbase(void) MEM_freeN(bfd); } G.fileflags= fileflags; +#endif } void ED_preview_free_dbase(void) -- cgit v1.2.3 From aef6f15b49bd30f142d9635151c993e155c36401 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 23:24:21 +0000 Subject: minor changes to bgl.Buffer py class - use getset rather then getattr - remove verbose Buffer docstring, better use sphinx docs for this - replace bge.Buffer with the Buffer class and add a __new__ function to the class so it can be called. - improve error messages --- source/blender/python/generic/bgl.c | 271 +++++++++++++++++++++--------------- 1 file changed, 155 insertions(+), 116 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index b5a693c397c..7d939a46021 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -44,25 +44,7 @@ #include "BLI_utildefines.h" - -PyDoc_STRVAR(Method_Buffer_doc, - "(type, dimensions, [template]) - Create a new Buffer object\n\n\ -(type) - The format to store data in\n\ -(dimensions) - An int or sequence specifying the dimensions of the buffer\n\ -[template] - A sequence of matching dimensions to the buffer to be created\n\ - which will be used to initialize the Buffer.\n\n\ -If a template is not passed in all fields will be initialized to 0.\n\n\ -The type should be one of GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE.\n\ -If the dimensions are specified as an int a linear buffer will be\n\ -created. If a sequence is passed for the dimensions the buffer\n\ -will have len(sequence) dimensions, where the size for each dimension\n\ -is determined by the value in the sequence at that index.\n\n\ -For example, passing [100, 100] will create a 2 dimensional\n\ -square buffer. Passing [16, 16, 32] will create a 3 dimensional\n\ -buffer which is twice as deep as it is wide or high." -); - -static PyObject *Method_Buffer(PyObject *self, PyObject *args); +static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Buffer sequence methods */ @@ -71,42 +53,98 @@ static PyObject *Buffer_item(PyObject *self, int i); static PyObject *Buffer_slice(PyObject *self, int begin, int end); static int Buffer_ass_item(PyObject *self, int i, PyObject *v); static int Buffer_ass_slice(PyObject *self, int begin, int end, - PyObject *seq); + PyObject *seq); static PySequenceMethods Buffer_SeqMethods = { - ( lenfunc ) Buffer_len, /*sq_length */ - ( binaryfunc ) NULL, /*sq_concat */ - ( ssizeargfunc ) NULL, /*sq_repeat */ - ( ssizeargfunc ) Buffer_item, /*sq_item */ - ( ssizessizeargfunc ) Buffer_slice, /*sq_slice, deprecated TODO, replace */ - ( ssizeobjargproc ) Buffer_ass_item, /*sq_ass_item */ - ( ssizessizeobjargproc ) Buffer_ass_slice, /*sq_ass_slice, deprecated TODO, replace */ + (lenfunc) Buffer_len, /*sq_length */ + (binaryfunc) NULL, /*sq_concat */ + (ssizeargfunc) NULL, /*sq_repeat */ + (ssizeargfunc) Buffer_item, /*sq_item */ + (ssizessizeargfunc) Buffer_slice, /*sq_slice, deprecated TODO, replace */ + (ssizeobjargproc) Buffer_ass_item, /*sq_ass_item */ + (ssizessizeobjargproc) Buffer_ass_slice, /*sq_ass_slice, deprecated TODO, replace */ (objobjproc) NULL, /* sq_contains */ (binaryfunc) NULL, /* sq_inplace_concat */ (ssizeargfunc) NULL, /* sq_inplace_repeat */ }; static void Buffer_dealloc(PyObject *self); -static PyObject *Buffer_tolist(PyObject *self); -static PyObject *Buffer_dimensions(PyObject *self); -static PyObject *Buffer_getattr(PyObject *self, char *name); +static PyObject *Buffer_tolist(PyObject *self, void *arg); +static PyObject *Buffer_dimensions(PyObject *self, void *arg); static PyObject *Buffer_repr(PyObject *self); +static PyGetSetDef Buffer_getseters[]; PyTypeObject BGL_bufferType = { PyVarObject_HEAD_INIT(NULL, 0) - "buffer", /*tp_name */ - sizeof( Buffer ), /*tp_basicsize */ - 0, /*tp_itemsize */ - ( destructor ) Buffer_dealloc, /*tp_dealloc */ - ( printfunc ) 0, /*tp_print */ - ( getattrfunc ) Buffer_getattr, /*tp_getattr */ - ( setattrfunc ) 0, /*tp_setattr */ + "bgl.Buffer", /*tp_name */ + sizeof(Buffer), /*tp_basicsize */ + 0, /*tp_itemsize */ + (destructor)Buffer_dealloc, /*tp_dealloc */ + (printfunc)NULL, /*tp_print */ + NULL, /*tp_getattr */ + NULL, /*tp_setattr */ NULL, /*tp_compare */ - ( reprfunc ) Buffer_repr, /*tp_repr */ + (reprfunc) Buffer_repr, /*tp_repr */ NULL, /*tp_as_number */ &Buffer_SeqMethods, /*tp_as_sequence */ + NULL, /* PyMappingMethods *tp_as_mapping; */ + + /* More standard operations (here for binary compatibility) */ + + NULL, /* hashfunc tp_hash; */ + NULL, /* ternaryfunc tp_call; */ + NULL, /* reprfunc tp_str; */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ + + /* Functions to access object as input/output buffer */ + NULL, /* PyBufferProcs *tp_as_buffer; */ + + /*** Flags to define presence of optional/expanded features ***/ + Py_TPFLAGS_DEFAULT, /* long tp_flags; */ + + NULL, /* char *tp_doc; Documentation string */ + /*** Assigned meaning in release 2.0 ***/ + /* call function for all accessible objects */ + NULL, /* traverseproc tp_traverse; */ + + /* delete references to contained objects */ + NULL, /* inquiry tp_clear; */ + + /*** Assigned meaning in release 2.1 ***/ + /*** rich comparisons ***/ + NULL, /* richcmpfunc tp_richcompare; */ + + /*** weak reference enabler ***/ + 0, /* long tp_weaklistoffset; */ + + /*** Added in release 2.2 ***/ + /* Iterators */ + NULL, /* getiterfunc tp_iter; */ + NULL, /* iternextfunc tp_iternext; */ + /*** Attribute descriptor and subclassing stuff ***/ + NULL, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMemberDef *tp_members; */ + Buffer_getseters, /* struct PyGetSetDef *tp_getset; */ + NULL, /*tp_base*/ + NULL, /*tp_dict*/ + NULL, /*tp_descr_get*/ + NULL, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + NULL, /*tp_init*/ + NULL, /*tp_alloc*/ + Buffer_new, /*tp_new*/ + NULL, /*tp_free*/ + NULL, /*tp_is_gc*/ + NULL, /*tp_bases*/ + NULL, /*tp_mro*/ + NULL, /*tp_cache*/ + NULL, /*tp_subclasses*/ + NULL, /*tp_weaklist*/ + NULL /*tp_del*/ }; + /* #ifndef __APPLE__ */ #define BGL_Wrap(nargs, funcname, ret, arg_list) \ @@ -174,26 +212,13 @@ Buffer *BGL_MakeBuffer(int type, int ndimensions, int *dimensions, void *initbuf } else { memset(buffer->buf.asvoid, 0, length*size); - /* - for (i= 0; ibuf.asbyte[i]= 0; - else if (type==GL_SHORT) - buffer->buf.asshort[i]= 0; - else if (type==GL_INT) - buffer->buf.asint[i]= 0; - else if (type==GL_FLOAT) - buffer->buf.asfloat[i]= 0.0f; - else if (type==GL_DOUBLE) - buffer->buf.asdouble[i]= 0.0; - } - */ } return buffer; } + #define MAX_DIMENSIONS 256 -static PyObject *Method_Buffer (PyObject *UNUSED(self), PyObject *args) +static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject *kwds) { PyObject *length_ob= NULL, *init= NULL; Buffer *buffer; @@ -201,31 +226,40 @@ static PyObject *Method_Buffer (PyObject *UNUSED(self), PyObject *args) int i, type; int ndimensions = 0; - - if (!PyArg_ParseTuple(args, "iO|O", &type, &length_ob, &init)) { - PyErr_SetString(PyExc_AttributeError, "expected an int and one or two PyObjects"); + + if(kwds && PyDict_Size(kwds)) { + PyErr_SetString(PyExc_TypeError, "bgl.Buffer(): takes no keyword args"); + return NULL; + } + + if (!PyArg_ParseTuple(args, "iO|O: bgl.Buffer", &type, &length_ob, &init)) { return NULL; } if (!ELEM5(type, GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, GL_DOUBLE)) { - PyErr_SetString(PyExc_AttributeError, "invalid first argument type, should be one of GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT or GL_DOUBLE"); + PyErr_SetString(PyExc_AttributeError, + "invalid first argument type, should be one of " + "GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT or GL_DOUBLE"); return NULL; } if (PyLong_Check(length_ob)) { ndimensions= 1; if(((dimensions[0]= PyLong_AsLong(length_ob)) < 1)) { - PyErr_SetString(PyExc_AttributeError, "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS)); + PyErr_SetString(PyExc_AttributeError, + "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS)); return NULL; } } else if (PySequence_Check(length_ob)) { ndimensions= PySequence_Size(length_ob); if (ndimensions > MAX_DIMENSIONS) { - PyErr_SetString(PyExc_AttributeError, "too many dimensions, max is "STRINGIFY(MAX_DIMENSIONS)); + PyErr_SetString(PyExc_AttributeError, + "too many dimensions, max is "STRINGIFY(MAX_DIMENSIONS)); return NULL; } else if (ndimensions < 1) { - PyErr_SetString(PyExc_AttributeError, "sequence must have at least one dimension"); + PyErr_SetString(PyExc_AttributeError, + "sequence must have at least one dimension"); return NULL; } for (i=0; itp_name); + PyErr_Format(PyExc_TypeError, + "invalid second argument argument expected a sequence " + "or an int, not a %.200s", Py_TYPE(length_ob)->tp_name); return NULL; } @@ -336,42 +373,38 @@ static int Buffer_ass_item(PyObject *self, int i, PyObject *v) Buffer *buf= (Buffer *) self; if (i >= buf->dimensions[0]) { - PyErr_SetString(PyExc_IndexError, "array assignment index out of range"); + PyErr_SetString(PyExc_IndexError, + "array assignment index out of range"); return -1; } - + if (buf->ndimensions!=1) { PyObject *row= Buffer_item(self, i); - int ret; - - if (!row) return -1; - ret= Buffer_ass_slice(row, 0, buf->dimensions[1], v); - Py_DECREF(row); - return ret; - } - if (buf->type==GL_BYTE) { - if (!PyArg_Parse(v, "b:Coordinates must be ints", &buf->buf.asbyte[i])) - return -1; - } - else if (buf->type==GL_SHORT) { - if (!PyArg_Parse(v, "h:Coordinates must be ints", &buf->buf.asshort[i])) - return -1; - - } - else if (buf->type==GL_INT) { - if (!PyArg_Parse(v, "i:Coordinates must be ints", &buf->buf.asint[i])) - return -1; - } - else if (buf->type==GL_FLOAT) { - if (!PyArg_Parse(v, "f:Coordinates must be floats", &buf->buf.asfloat[i])) + if (row) { + int ret= Buffer_ass_slice(row, 0, buf->dimensions[1], v); + Py_DECREF(row); + return ret; + } + else { return -1; + } } - else if (buf->type==GL_DOUBLE) { - if (!PyArg_Parse(v, "d:Coordinates must be floats", &buf->buf.asdouble[i])) - return -1; + + switch(buf->type) { + case GL_BYTE: + return PyArg_Parse(v, "b:Expected ints", &buf->buf.asbyte[i]) ? 0:-1; + case GL_SHORT: + return PyArg_Parse(v, "h:Expected ints", &buf->buf.asshort[i]) ? 0:-1; + case GL_INT: + return PyArg_Parse(v, "i:Expected ints", &buf->buf.asint[i]) ? 0:-1; + case GL_FLOAT: + return PyArg_Parse(v, "f:Expected floats", &buf->buf.asfloat[i]) ? 0:-1; + case GL_DOUBLE: + return PyArg_Parse(v, "d:Expected floats", &buf->buf.asdouble[i]) ? 0:-1; + default: + return 0; /* should never happen */ } - return 0; } static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq) @@ -385,23 +418,30 @@ static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq) if (begin>end) begin= end; if (!PySequence_Check(seq)) { - PyErr_SetString(PyExc_TypeError, - "illegal argument type for built-in operation"); + PyErr_Format(PyExc_TypeError, + "buffer[:] = value, invalid assignment. " + "Expected a sequence, not an %.200s type", + Py_TYPE(seq)->tp_name); return -1; } - if (PySequence_Size(seq)!=(end-begin)) { - int seq_len = PySequence_Size(seq); - char err_str[128]; - sprintf(err_str, "size mismatch in assignment. Expected size: %d (size provided: %d)", seq_len, (end-begin)); - PyErr_SetString(PyExc_TypeError, err_str); + /* re-use count var */ + if ((count= PySequence_Size(seq)) != (end - begin)) { + PyErr_Format(PyExc_TypeError, + "buffer[:] = value, size mismatch in assignment. " + "Expected: %d (given: %d)", count, end - begin); return -1; } - for (count= begin; countparent) Py_DECREF (buf->parent); + if (buf->parent) Py_DECREF(buf->parent); else MEM_freeN (buf->buf.asvoid); MEM_freeN (buf->dimensions); - PyObject_DEL (self); + PyObject_DEL(self); } -static PyObject *Buffer_tolist(PyObject *self) +static PyObject *Buffer_tolist(PyObject *self, void *UNUSED(arg)) { int i, len= ((Buffer *)self)->dimensions[0]; PyObject *list= PyList_New(len); @@ -431,7 +471,7 @@ static PyObject *Buffer_tolist(PyObject *self) return list; } -static PyObject *Buffer_dimensions(PyObject *self) +static PyObject *Buffer_dimensions(PyObject *self, void *UNUSED(arg)) { Buffer *buffer= (Buffer *) self; PyObject *list= PyList_New(buffer->ndimensions); @@ -444,18 +484,15 @@ static PyObject *Buffer_dimensions(PyObject *self) return list; } -static PyObject *Buffer_getattr(PyObject *self, char *name) -{ - if (strcmp(name, "list")==0) return Buffer_tolist(self); - else if (strcmp(name, "dimensions")==0) return Buffer_dimensions(self); - - PyErr_SetString(PyExc_AttributeError, name); - return NULL; -} +static PyGetSetDef Buffer_getseters[] = { + {(char *)"list", (getter)Buffer_tolist, NULL, NULL, NULL}, + {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL, NULL} +}; static PyObject *Buffer_repr(PyObject *self) { - PyObject *list= Buffer_tolist(self); + PyObject *list= Buffer_tolist(self, NULL); PyObject *repr= PyObject_Repr(list); Py_DECREF(list); @@ -805,7 +842,6 @@ BGLU_Wrap(9, UnProject, GLint, (GLdouble, GLdouble, GLdouble, GLdoubleP, GLdo * {"glAccum", Method_Accumfunc, METH_VARARGS} */ static struct PyMethodDef BGL_methods[] = { - {"Buffer", Method_Buffer, METH_VARARGS, Method_Buffer_doc}, /* #ifndef __APPLE__ */ MethodDef(Accum), @@ -1153,9 +1189,12 @@ PyObject *BPyInit_bgl(void) submodule= PyModule_Create(&BGL_module_def); dict= PyModule_GetDict(submodule); - if( PyType_Ready( &BGL_bufferType) < 0) + if(PyType_Ready(&BGL_bufferType) < 0) return NULL; /* should never happen */ + + PyModule_AddObject(submodule, "Buffer", (PyObject *)&BGL_bufferType); + #define EXPP_ADDCONST(x) PyDict_SetItemString(dict, #x, item=PyLong_FromLong((int)x)); Py_DECREF(item) /* So, for example: -- cgit v1.2.3 From 0a46f9a737218d02f8ce65ab58bd05fa46edd878 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 23:45:47 +0000 Subject: rename bgl.Buffer attribute list to a method, to_list() as used for IDProps, also made repr function nicer. --- source/blender/python/generic/bgl.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 7d939a46021..1891e13fdc1 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -72,6 +72,7 @@ static void Buffer_dealloc(PyObject *self); static PyObject *Buffer_tolist(PyObject *self, void *arg); static PyObject *Buffer_dimensions(PyObject *self, void *arg); static PyObject *Buffer_repr(PyObject *self); +static PyMethodDef Buffer_methods[]; static PyGetSetDef Buffer_getseters[]; PyTypeObject BGL_bufferType = { @@ -123,7 +124,7 @@ PyTypeObject BGL_bufferType = { NULL, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - NULL, /* struct PyMethodDef *tp_methods; */ + Buffer_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ Buffer_getseters, /* struct PyGetSetDef *tp_getset; */ NULL, /*tp_base*/ @@ -459,7 +460,7 @@ static void Buffer_dealloc(PyObject *self) PyObject_DEL(self); } -static PyObject *Buffer_tolist(PyObject *self, void *UNUSED(arg)) +static PyObject *Buffer_to_list(PyObject *self) { int i, len= ((Buffer *)self)->dimensions[0]; PyObject *list= PyList_New(len); @@ -484,18 +485,35 @@ static PyObject *Buffer_dimensions(PyObject *self, void *UNUSED(arg)) return list; } +static PyMethodDef Buffer_methods[] = { + {"to_list", (PyCFunction)Buffer_to_list, METH_NOARGS, + "return the buffer as a list"}, + {NULL, NULL, 0, NULL} +}; + static PyGetSetDef Buffer_getseters[] = { - {(char *)"list", (getter)Buffer_tolist, NULL, NULL, NULL}, {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL, NULL} }; static PyObject *Buffer_repr(PyObject *self) { - PyObject *list= Buffer_tolist(self, NULL); - PyObject *repr= PyObject_Repr(list); + PyObject *list= Buffer_to_list(self); + PyObject *repr; + const char *typestr= "UNKNOWN"; + Buffer *buffer= (Buffer *)self; + + switch(buffer->type) { + case GL_BYTE: typestr= "GL_BYTE"; break; + case GL_SHORT: typestr= "GL_SHORT"; break; + case GL_INT: typestr= "GL_BYTE"; break; + case GL_FLOAT: typestr= "GL_FLOAT"; break; + case GL_DOUBLE: typestr= "GL_DOUBLE"; break; + } + + repr= PyUnicode_FromFormat("Buffer(%s, %R)", typestr, list); Py_DECREF(list); - + return repr; } -- cgit v1.2.3 From 4da4943b5ce9514e9fb3d9458f3e52d6b0d310ca Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 14 Jul 2011 01:25:05 +0000 Subject: formatting changes for python mathutils module. --- source/blender/python/generic/mathutils.c | 65 ++++-- source/blender/python/generic/mathutils_Color.c | 83 +++++-- source/blender/python/generic/mathutils_Euler.c | 48 ++-- source/blender/python/generic/mathutils_Matrix.c | 253 +++++++++++++++------ .../blender/python/generic/mathutils_Quaternion.c | 61 +++-- source/blender/python/generic/mathutils_Vector.c | 227 +++++++++++++----- source/blender/python/generic/mathutils_geometry.c | 70 ++++-- 7 files changed, 587 insertions(+), 220 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c index 30f4e5b7ffe..bba08e312b7 100644 --- a/source/blender/python/generic/mathutils.c +++ b/source/blender/python/generic/mathutils.c @@ -57,8 +57,16 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max size= PySequence_Fast_GET_SIZE(value_fast); if(size > array_max || size < array_min) { - if (array_max == array_min) PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected %d", error_prefix, size, array_max); - else PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected [%d - %d]", error_prefix, size, array_min, array_max); + if (array_max == array_min) { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected %d", + error_prefix, size, array_max); + } + else { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected [%d - %d]", + error_prefix, size, array_min, array_max); + } Py_DECREF(value_fast); return -1; } @@ -67,7 +75,10 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max do { i--; if(((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { - PyErr_Format(PyExc_ValueError, "%.200s: sequence index %d expected a number, found '%.200s' type, ", error_prefix, i, Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_ValueError, + "%.200s: sequence index %d expected a number, " + "found '%.200s' type, ", + error_prefix, i, Py_TYPE(item)->tp_name); Py_DECREF(value_fast); return -1; } @@ -93,8 +104,16 @@ int mathutils_array_parse(float *array, int array_min, int array_max, PyObject * } if(size > array_max || size < array_min) { - if (array_max == array_min) PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected %d", error_prefix, size, array_max); - else PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected [%d - %d]", error_prefix, size, array_min, array_max); + if (array_max == array_min) { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected %d", + error_prefix, size, array_max); + } + else { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected [%d - %d]", + error_prefix, size, array_min, array_max); + } return -1; } @@ -135,7 +154,9 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error return -1; } else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) { - PyErr_Format(PyExc_ValueError, "%.200s: matrix must have minimum 3x3 dimensions", error_prefix); + PyErr_Format(PyExc_ValueError, + "%.200s: matrix must have minimum 3x3 dimensions", + error_prefix); return -1; } else { @@ -145,7 +166,9 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error } } else { - PyErr_Format(PyExc_TypeError, "%.200s: expected a Euler, Quaternion or Matrix type, found %.200s", error_prefix, Py_TYPE(value)->tp_name); + PyErr_Format(PyExc_TypeError, + "%.200s: expected a Euler, Quaternion or Matrix type, " + "found %.200s", error_prefix, Py_TYPE(value)->tp_name); return -1; } } @@ -213,8 +236,11 @@ int _BaseMathObject_ReadCallback(BaseMathObject *self) if(cb->get(self, self->cb_subtype) != -1) return 0; - if(!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "%s read, user has become invalid", Py_TYPE(self)->tp_name); + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s read, user has become invalid", + Py_TYPE(self)->tp_name); + } return -1; } @@ -224,8 +250,11 @@ int _BaseMathObject_WriteCallback(BaseMathObject *self) if(cb->set(self, self->cb_subtype) != -1) return 0; - if(!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "%s write, user has become invalid", Py_TYPE(self)->tp_name); + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s write, user has become invalid", + Py_TYPE(self)->tp_name); + } return -1; } @@ -235,8 +264,11 @@ int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) if(cb->get_index(self, self->cb_subtype, index) != -1) return 0; - if(!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "%s read index, user has become invalid", Py_TYPE(self)->tp_name); + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s read index, user has become invalid", + Py_TYPE(self)->tp_name); + } return -1; } @@ -246,8 +278,11 @@ int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index) if(cb->set_index(self, self->cb_subtype, index) != -1) return 0; - if(!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "%s write index, user has become invalid", Py_TYPE(self)->tp_name); + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s write index, user has become invalid", + Py_TYPE(self)->tp_name); + } return -1; } diff --git a/source/blender/python/generic/mathutils_Color.c b/source/blender/python/generic/mathutils_Color.c index c59cb501d86..fd187fd92fd 100644 --- a/source/blender/python/generic/mathutils_Color.c +++ b/source/blender/python/generic/mathutils_Color.c @@ -43,7 +43,9 @@ static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) float col[3]= {0.0f, 0.0f, 0.0f}; if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, "mathutils.Color(): takes no keyword args"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Color(): " + "takes no keyword args"); return NULL; } @@ -55,7 +57,9 @@ static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return NULL; break; default: - PyErr_SetString(PyExc_TypeError, "mathutils.Color(): more then a single arg given"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Color(): " + "more then a single arg given"); return NULL; } return newColorObject(col, Py_NEW, type); @@ -174,7 +178,9 @@ static PyObject *Color_item(ColorObject * self, int i) if(i<0) i= COLOR_SIZE-i; if(i < 0 || i >= COLOR_SIZE) { - PyErr_SetString(PyExc_IndexError, "color[attribute]: array index out of range"); + PyErr_SetString(PyExc_IndexError, + "color[attribute]: " + "array index out of range"); return NULL; } @@ -191,14 +197,17 @@ static int Color_ass_item(ColorObject * self, int i, PyObject *value) float f = PyFloat_AsDouble(value); if(f == -1 && PyErr_Occurred()) { // parsed item not a number - PyErr_SetString(PyExc_TypeError, "color[attribute] = x: argument not a number"); + PyErr_SetString(PyExc_TypeError, + "color[attribute] = x: " + "argument not a number"); return -1; } if(i<0) i= COLOR_SIZE-i; if(i < 0 || i >= COLOR_SIZE){ - PyErr_SetString(PyExc_IndexError, "color[attribute] = x: array assignment index out of range"); + PyErr_SetString(PyExc_IndexError, "color[attribute] = x: " + "array assignment index out of range"); return -1; } @@ -250,7 +259,9 @@ static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, "color[begin:end] = []: size mismatch in slice assignment"); + PyErr_SetString(PyExc_TypeError, + "color[begin:end] = []: " + "size mismatch in slice assignment"); return -1; } @@ -285,12 +296,15 @@ static PyObject *Color_subscript(ColorObject *self, PyObject *item) return Color_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with color"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with color"); return NULL; } } else { - PyErr_Format(PyExc_TypeError, "color indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "color indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return NULL; } } @@ -314,12 +328,15 @@ static int Color_ass_subscript(ColorObject *self, PyObject *item, PyObject *valu if (step == 1) return Color_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with color"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with color"); return -1; } } else { - PyErr_Format(PyExc_TypeError, "color indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "color indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return -1; } } @@ -354,7 +371,9 @@ static PyObject *Color_add(PyObject *v1, PyObject *v2) float col[COLOR_SIZE]; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Color addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Color addition: " + "arguments not valid for this operation"); return NULL; } color1 = (ColorObject*)v1; @@ -374,7 +393,9 @@ static PyObject *Color_iadd(PyObject *v1, PyObject *v2) ColorObject *color1 = NULL, *color2 = NULL; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Color addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Color addition: " + "arguments not valid for this operation"); return NULL; } color1 = (ColorObject*)v1; @@ -397,7 +418,9 @@ static PyObject *Color_sub(PyObject *v1, PyObject *v2) float col[COLOR_SIZE]; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Color subtraction: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Color subtraction: " + "arguments not valid for this operation"); return NULL; } color1 = (ColorObject*)v1; @@ -417,7 +440,9 @@ static PyObject *Color_isub(PyObject *v1, PyObject *v2) ColorObject *color1= NULL, *color2= NULL; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Color subtraction: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Color subtraction: " + "arguments not valid for this operation"); return NULL; } color1 = (ColorObject*)v1; @@ -476,7 +501,10 @@ static PyObject *Color_mul(PyObject *v1, PyObject *v2) BLI_assert(!"internal error"); } - PyErr_Format(PyExc_TypeError, "Color multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + PyErr_Format(PyExc_TypeError, + "Color multiplication: not supported between " + "'%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); return NULL; } @@ -491,20 +519,25 @@ static PyObject *Color_div(PyObject *v1, PyObject *v2) return NULL; } else { - PyErr_SetString(PyExc_TypeError, "Color division not supported in this order"); + PyErr_SetString(PyExc_TypeError, + "Color division not supported in this order"); return NULL; } /* make sure v1 is always the vector */ if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); + PyErr_SetString(PyExc_ZeroDivisionError, + "Color division: divide by zero error"); return NULL; } return color_mul_float(color1, 1.0f / scalar); } - PyErr_Format(PyExc_TypeError, "Color multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + PyErr_Format(PyExc_TypeError, + "Color multiplication: not supported between " + "'%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); return NULL; } @@ -543,14 +576,17 @@ static PyObject *Color_idiv(PyObject *v1, PyObject *v2) /* only support color /= float */ if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR /= FLOAT */ if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); + PyErr_SetString(PyExc_ZeroDivisionError, + "Color division: divide by zero error"); return NULL; } mul_vn_fl(color->col, COLOR_SIZE, 1.0f / scalar); } else { - PyErr_SetString(PyExc_TypeError, "Color multiplication: arguments not acceptable for this operation"); + PyErr_SetString(PyExc_TypeError, + "Color multiplication: " + "arguments not acceptable for this operation"); return NULL; } @@ -642,7 +678,9 @@ static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) float f = PyFloat_AsDouble(value); if(f == -1 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "color.h/s/v = value: argument not a number"); + PyErr_SetString(PyExc_TypeError, + "color.h/s/v = value: " + "argument not a number"); return -1; } @@ -808,7 +846,8 @@ PyObject *newColorObject(float *col, int type, PyTypeObject *base_type) self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, "Color(): invalid type"); + PyErr_SetString(PyExc_RuntimeError, + "Color(): invalid type, internal error"); return NULL; } } diff --git a/source/blender/python/generic/mathutils_Euler.c b/source/blender/python/generic/mathutils_Euler.c index 4281c7bf6c5..2888b0667f1 100644 --- a/source/blender/python/generic/mathutils_Euler.c +++ b/source/blender/python/generic/mathutils_Euler.c @@ -55,7 +55,9 @@ static PyObject *Euler_new(PyTypeObject *type, PyObject *args, PyObject *kwds) short order= EULER_ORDER_XYZ; if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, "mathutils.Euler(): takes no keyword args"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Euler(): " + "takes no keyword args"); return NULL; } @@ -97,7 +99,9 @@ short euler_order_from_string(const char *str, const char *error_prefix) } } - PyErr_Format(PyExc_TypeError, "%s: invalid euler order '%s'", error_prefix, str); + PyErr_Format(PyExc_TypeError, + "%s: invalid euler order '%s'", + error_prefix, str); return -1; } @@ -199,11 +203,14 @@ static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args) const char *axis; if(!PyArg_ParseTuple(args, "sf:rotate", &axis, &angle)){ - PyErr_SetString(PyExc_TypeError, "euler.rotate(): expected angle (float) and axis (x, y, z)"); + PyErr_SetString(PyExc_TypeError, + "euler.rotate(): " + "expected angle (float) and axis (x, y, z)"); return NULL; } if(!(ELEM3(*axis, 'X', 'Y', 'Z') && axis[1]=='\0')){ - PyErr_SetString(PyExc_TypeError, "euler.rotate(): expected axis to be 'X', 'Y' or 'Z'"); + PyErr_SetString(PyExc_TypeError, "euler.rotate(): " + "expected axis to be 'X', 'Y' or 'Z'"); return NULL; } @@ -360,7 +367,9 @@ static PyObject *Euler_item(EulerObject * self, int i) if(i<0) i= EULER_SIZE-i; if(i < 0 || i >= EULER_SIZE) { - PyErr_SetString(PyExc_IndexError, "euler[attribute]: array index out of range"); + PyErr_SetString(PyExc_IndexError, + "euler[attribute]: " + "array index out of range"); return NULL; } @@ -377,14 +386,18 @@ static int Euler_ass_item(EulerObject * self, int i, PyObject *value) float f = PyFloat_AsDouble(value); if(f == -1 && PyErr_Occurred()) { // parsed item not a number - PyErr_SetString(PyExc_TypeError, "euler[attribute] = x: argument not a number"); + PyErr_SetString(PyExc_TypeError, + "euler[attribute] = x: " + "argument not a number"); return -1; } if(i<0) i= EULER_SIZE-i; if(i < 0 || i >= EULER_SIZE){ - PyErr_SetString(PyExc_IndexError, "euler[attribute] = x: array assignment index out of range"); + PyErr_SetString(PyExc_IndexError, + "euler[attribute] = x: " + "array assignment index out of range"); return -1; } @@ -436,7 +449,9 @@ static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, "euler[begin:end] = []: size mismatch in slice assignment"); + PyErr_SetString(PyExc_TypeError, + "euler[begin:end] = []: " + "size mismatch in slice assignment"); return -1; } @@ -471,12 +486,15 @@ static PyObject *Euler_subscript(EulerObject *self, PyObject *item) return Euler_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with eulers"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with eulers"); return NULL; } } else { - PyErr_Format(PyExc_TypeError, "euler indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "euler indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return NULL; } } @@ -501,12 +519,15 @@ static int Euler_ass_subscript(EulerObject *self, PyObject *item, PyObject *valu if (step == 1) return Euler_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with euler"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with euler"); return -1; } } else { - PyErr_Format(PyExc_TypeError, "euler indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "euler indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return -1; } } @@ -680,7 +701,8 @@ PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_t self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, "Euler(): invalid type"); + PyErr_SetString(PyExc_RuntimeError, + "Euler(): invalid type, internal error"); return NULL; } diff --git a/source/blender/python/generic/mathutils_Matrix.c b/source/blender/python/generic/mathutils_Matrix.c index bed7dd12f08..4343485bb3a 100644 --- a/source/blender/python/generic/mathutils_Matrix.c +++ b/source/blender/python/generic/mathutils_Matrix.c @@ -119,7 +119,9 @@ Mathutils_Callback mathutils_matrix_vector_cb = { static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, "mathutils.Matrix(): takes no keyword args"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Matrix(): " + "takes no keyword args"); return NULL; } @@ -130,7 +132,8 @@ static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { PyObject *arg= PyTuple_GET_ITEM(args, 0); - const unsigned short row_size= PySequence_Size(arg); /* -1 is an error, size checks will accunt for this */ + /* -1 is an error, size checks will accunt for this */ + const unsigned short row_size= PySequence_Size(arg); if(row_size >= 2 && row_size <= 4) { PyObject *item= PySequence_GetItem(arg, 0); @@ -152,7 +155,9 @@ static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) } /* will overwrite error */ - PyErr_SetString(PyExc_TypeError, "mathutils.Matrix(): expects no args or 2-4 numeric sequences"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Matrix(): " + "expects no args or 2-4 numeric sequences"); return NULL; } @@ -211,14 +216,19 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; if(!PyArg_ParseTuple(args, "di|O", &angle, &matSize, &vec)) { - PyErr_SetString(PyExc_TypeError, "mathutils.RotationMatrix(angle, size, axis): expected float int and a string or vector"); + PyErr_SetString(PyExc_TypeError, + "mathutils.RotationMatrix(angle, size, axis): " + "expected float int and a string or vector"); return NULL; } if(vec && PyUnicode_Check(vec)) { axis= _PyUnicode_AsString((PyObject *)vec); if(axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { - PyErr_SetString(PyExc_TypeError, "mathutils.RotationMatrix(): 3rd argument axis value must be a 3D vector or a string in 'X', 'Y', 'Z'"); + PyErr_SetString(PyExc_TypeError, + "mathutils.RotationMatrix(): " + "3rd argument axis value must be a 3D vector " + "or a string in 'X', 'Y', 'Z'"); return NULL; } else { @@ -230,15 +240,21 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) angle= angle_wrap_rad(angle); if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, "mathutils.RotationMatrix(): can only return a 2x2 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.RotationMatrix(): " + "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } if(matSize == 2 && (vec != NULL)) { - PyErr_SetString(PyExc_AttributeError, "mathutils.RotationMatrix(): cannot create a 2x2 rotation matrix around arbitrary axis"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.RotationMatrix(): " + "cannot create a 2x2 rotation matrix around arbitrary axis"); return NULL; } if((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { - PyErr_SetString(PyExc_AttributeError, "mathutils.RotationMatrix(): axis of rotation for 3d and 4d matrices is required"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.RotationMatrix(): " + "axis of rotation for 3d and 4d matrices is required"); return NULL; } @@ -284,7 +300,8 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) } else { /* should never get here */ - PyErr_SetString(PyExc_AttributeError, "mathutils.RotationMatrix(): unknown error"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.RotationMatrix(): unknown error"); return NULL; } @@ -348,7 +365,9 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, "Matrix.Scale(): can only return a 2x2 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "Matrix.Scale(): " + "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } if(vec) { @@ -361,7 +380,8 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) if(matSize == 2) { mat[0] = factor; mat[3] = factor; - } else { + } + else { mat[0] = factor; mat[4] = factor; mat[8] = factor; @@ -383,7 +403,8 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); mat[2] = ((factor - 1) *(tvec[0] * tvec[1])); mat[3] = 1 + ((factor - 1) *(tvec[1] * tvec[1])); - } else { + } + else { mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); mat[2] = ((factor - 1) *(tvec[0] * tvec[2])); @@ -430,7 +451,9 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError,"mathutils.Matrix.OrthoProjection(): can only return a 2x2 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.Matrix.OrthoProjection(): " + "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } @@ -445,7 +468,10 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) mat[3]= 1.0f; } else { - PyErr_Format(PyExc_ValueError, "mathutils.Matrix.OrthoProjection(): unknown plane, expected: X, Y, not '%.200s'", plane); + PyErr_Format(PyExc_ValueError, + "mathutils.Matrix.OrthoProjection(): " + "unknown plane, expected: X, Y, not '%.200s'", + plane); return NULL; } } @@ -463,7 +489,10 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) mat[8]= 1.0f; } else { - PyErr_Format(PyExc_ValueError, "mathutils.Matrix.OrthoProjection(): unknown plane, expected: XY, XZ, YZ, not '%.200s'", plane); + PyErr_Format(PyExc_ValueError, + "mathutils.Matrix.OrthoProjection(): " + "unknown plane, expected: XY, XZ, YZ, not '%.200s'", + plane); return NULL; } } @@ -539,7 +568,9 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError,"mathutils.Matrix.Shear(): can only return a 2x2 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.Matrix.Shear(): " + "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } @@ -547,7 +578,9 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) float const factor= PyFloat_AsDouble(fac); if(factor==-1.0f && PyErr_Occurred()) { - PyErr_SetString(PyExc_AttributeError, "mathutils.Matrix.Shear(): the factor to be a float"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.Matrix.Shear(): " + "the factor to be a float"); return NULL; } @@ -562,7 +595,9 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[1] = factor; } else { - PyErr_SetString(PyExc_AttributeError, "Matrix.Shear(): expected: X, Y or wrong matrix size for shearing plane"); + PyErr_SetString(PyExc_AttributeError, + "Matrix.Shear(): " + "expected: X, Y or wrong matrix size for shearing plane"); return NULL; } } @@ -592,7 +627,9 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[2] = factor[1]; } else { - PyErr_SetString(PyExc_AttributeError, "mathutils.Matrix.Shear(): expected: X, Y, XY, XZ, YZ"); + PyErr_SetString(PyExc_AttributeError, + "mathutils.Matrix.Shear(): " + "expected: X, Y, XY, XZ, YZ"); return NULL; } } @@ -624,7 +661,8 @@ static float matrix_determinant_internal(MatrixObject *self) self->matrix[1][1], self->matrix[1][2], self->matrix[2][0], self->matrix[2][1], self->matrix[2][2]); - } else { + } + else { return determinant_m4((float (*)[4])self->contigPtr); } } @@ -648,7 +686,9 @@ static PyObject *Matrix_to_quaternion(MatrixObject *self) /*must be 3-4 cols, 3-4 rows, square matrix*/ if((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { - PyErr_SetString(PyExc_AttributeError, "Matrix.to_quat(): inappropriate matrix size - expects 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "matrix.to_quat(): " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; } if(self->col_size == 3){ @@ -661,7 +701,7 @@ static PyObject *Matrix_to_quaternion(MatrixObject *self) return newQuaternionObject(quat, Py_NEW, NULL); } -/*---------------------------Matrix.toEuler() --------------------*/ +/*---------------------------matrix.toEuler() --------------------*/ PyDoc_STRVAR(Matrix_to_euler_doc, ".. method:: to_euler(order, euler_compat)\n" "\n" @@ -710,12 +750,14 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) mat= tmat; } else { - PyErr_SetString(PyExc_AttributeError, "Matrix.to_euler(): inappropriate matrix size - expects 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "matrix.to_euler(): " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; } if(order_str) { - order= euler_order_from_string(order_str, "Matrix.to_euler()"); + order= euler_order_from_string(order_str, "matrix.to_euler()"); if(order == -1) return NULL; @@ -743,17 +785,20 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self) int x, first_row_elem, curr_pos, new_pos, blank_columns, blank_rows, index; if(self->wrapped==Py_WRAP){ - PyErr_SetString(PyExc_TypeError, "cannot resize wrapped data - make a copy and resize that"); + PyErr_SetString(PyExc_TypeError, + "cannot resize wrapped data - make a copy and resize that"); return NULL; } if(self->cb_user){ - PyErr_SetString(PyExc_TypeError, "cannot resize owned data - make a copy and resize that"); + PyErr_SetString(PyExc_TypeError, + "cannot resize owned data - make a copy and resize that"); return NULL; } self->contigPtr = PyMem_Realloc(self->contigPtr, (sizeof(float) * 16)); if(self->contigPtr == NULL) { - PyErr_SetString(PyExc_MemoryError, "matrix.resize_4x4(): problem allocating pointer space"); + PyErr_SetString(PyExc_MemoryError, + "matrix.resize_4x4(): problem allocating pointer space"); return NULL; } /*set row pointers*/ @@ -813,7 +858,8 @@ static PyObject *Matrix_to_4x4(MatrixObject *self) } /* TODO, 2x2 matrix */ - PyErr_SetString(PyExc_TypeError, "Matrix.to_4x4(): inappropriate matrix size"); + PyErr_SetString(PyExc_TypeError, + "matrix.to_4x4(): inappropriate matrix size"); return NULL; } @@ -833,7 +879,8 @@ static PyObject *Matrix_to_3x3(MatrixObject *self) return NULL; if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, "Matrix.to_3x3(): inappropriate matrix size"); + PyErr_SetString(PyExc_AttributeError, + "matrix.to_3x3(): inappropriate matrix size"); return NULL; } @@ -856,7 +903,9 @@ static PyObject *Matrix_to_translation(MatrixObject *self) return NULL; if((self->col_size < 3) || self->row_size < 4){ - PyErr_SetString(PyExc_AttributeError, "Matrix.to_translation(): inappropriate matrix size"); + PyErr_SetString(PyExc_AttributeError, + "matrix.to_translation(): " + "inappropriate matrix size"); return NULL; } @@ -884,7 +933,9 @@ static PyObject *Matrix_to_scale(MatrixObject *self) /*must be 3-4 cols, 3-4 rows, square matrix*/ if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, "Matrix.to_scale(): inappropriate matrix size, 3x3 minimum size"); + PyErr_SetString(PyExc_AttributeError, + "matrix.to_scale(): " + "inappropriate matrix size, 3x3 minimum size"); return NULL; } @@ -896,7 +947,7 @@ static PyObject *Matrix_to_scale(MatrixObject *self) return newVectorObject(size, 3, Py_NEW, NULL); } -/*---------------------------Matrix.invert() ---------------------*/ +/*---------------------------matrix.invert() ---------------------*/ PyDoc_STRVAR(Matrix_invert_doc, ".. method:: invert()\n" "\n" @@ -918,7 +969,9 @@ static PyObject *Matrix_invert(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix.invert(ed): only square matrices are supported"); + PyErr_SetString(PyExc_AttributeError, + "matrix.invert(ed): " + "only square matrices are supported"); return NULL; } @@ -950,8 +1003,10 @@ static PyObject *Matrix_invert(MatrixObject *self) } /*transpose Matrix_transpose(self);*/ - } else { - PyErr_SetString(PyExc_ValueError, "matrix does not have an inverse"); + } + else { + PyErr_SetString(PyExc_ValueError, + "matrix does not have an inverse"); return NULL; } @@ -995,7 +1050,8 @@ static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) return NULL; if(self->col_size != 3 || self->row_size != 3) { - PyErr_SetString(PyExc_ValueError, "Matrix must have 3x3 dimensions"); + PyErr_SetString(PyExc_ValueError, + "Matrix must have 3x3 dimensions"); return NULL; } @@ -1008,7 +1064,7 @@ static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) Py_RETURN_NONE; } -/*---------------------------Matrix.decompose() ---------------------*/ +/*---------------------------matrix.decompose() ---------------------*/ PyDoc_STRVAR(Matrix_decompose_doc, ".. method:: decompose()\n" "\n" @@ -1026,7 +1082,9 @@ static PyObject *Matrix_decompose(MatrixObject *self) float size[3]; if(self->col_size != 4 || self->row_size != 4) { - PyErr_SetString(PyExc_AttributeError, "Matrix.decompose(): inappropriate matrix size - expects 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "matrix.decompose(): " + "inappropriate matrix size - expects 4x4 matrix"); return NULL; } @@ -1067,7 +1125,9 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) return NULL; if(self->row_size != mat2->row_size || self->col_size != mat2->col_size) { - PyErr_SetString(PyExc_AttributeError, "matrix.lerp(): expects both matrix objects of the same dimensions"); + PyErr_SetString(PyExc_AttributeError, + "matrix.lerp(): " + "expects both matrix objects of the same dimensions"); return NULL; } @@ -1082,14 +1142,16 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) blend_m3_m3m3((float (*)[3])mat, (float (*)[3])self->contigPtr, (float (*)[3])mat2->contigPtr, fac); } else { - PyErr_SetString(PyExc_AttributeError, "matrix.lerp(): only 3x3 and 4x4 matrices supported"); + PyErr_SetString(PyExc_AttributeError, + "matrix.lerp(): " + "only 3x3 and 4x4 matrices supported"); return NULL; } return (PyObject*)newMatrixObject(mat, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); } -/*---------------------------Matrix.determinant() ----------------*/ +/*---------------------------matrix.determinant() ----------------*/ PyDoc_STRVAR(Matrix_determinant_doc, ".. method:: determinant()\n" "\n" @@ -1106,13 +1168,15 @@ static PyObject *Matrix_determinant(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix.determinant: only square matrices are supported"); + PyErr_SetString(PyExc_AttributeError, + "matrix.determinant: " + "only square matrices are supported"); return NULL; } return PyFloat_FromDouble((double)matrix_determinant_internal(self)); } -/*---------------------------Matrix.transpose() ------------------*/ +/*---------------------------matrix.transpose() ------------------*/ PyDoc_STRVAR(Matrix_transpose_doc, ".. method:: transpose()\n" "\n" @@ -1128,7 +1192,9 @@ static PyObject *Matrix_transpose(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix.transpose(d): only square matrices are supported"); + PyErr_SetString(PyExc_AttributeError, + "matrix.transpose(d): " + "only square matrices are supported"); return NULL; } @@ -1138,7 +1204,8 @@ static PyObject *Matrix_transpose(MatrixObject *self) self->matrix[0][1] = t; } else if(self->row_size == 3) { transpose_m3((float (*)[3])self->contigPtr); - } else { + } + else { transpose_m4((float (*)[4])self->contigPtr); } @@ -1159,7 +1226,7 @@ static PyObject *Matrix_transposed(MatrixObject *self) return matrix__apply_to_copy((PyNoArgsFunction)Matrix_transpose, self); } -/*---------------------------Matrix.zero() -----------------------*/ +/*---------------------------matrix.zero() -----------------------*/ PyDoc_STRVAR(Matrix_zero_doc, ".. method:: zero()\n" "\n" @@ -1177,7 +1244,7 @@ static PyObject *Matrix_zero(MatrixObject *self) Py_RETURN_NONE; } -/*---------------------------Matrix.identity(() ------------------*/ +/*---------------------------matrix.identity(() ------------------*/ PyDoc_STRVAR(Matrix_identity_doc, ".. method:: identity()\n" "\n" @@ -1194,7 +1261,9 @@ static PyObject *Matrix_identity(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix.identity: only square matrices are supported"); + PyErr_SetString(PyExc_AttributeError, + "matrix.identity: " + "only square matrices are supported"); return NULL; } @@ -1205,7 +1274,8 @@ static PyObject *Matrix_identity(MatrixObject *self) self->matrix[1][1] = 1.0f; } else if(self->row_size == 3) { unit_m3((float (*)[3])self->contigPtr); - } else { + } + else { unit_m4((float (*)[4])self->contigPtr); } @@ -1262,7 +1332,8 @@ static PyObject *Matrix_repr(MatrixObject *self) " %R)", rows[0], rows[1], rows[2], rows[3]); } - PyErr_SetString(PyExc_RuntimeError, "invalid matrix size"); + PyErr_SetString(PyExc_RuntimeError, + "internal error!"); return NULL; } @@ -1321,7 +1392,9 @@ static PyObject *Matrix_item(MatrixObject *self, int i) return NULL; if(i < 0 || i >= self->row_size) { - PyErr_SetString(PyExc_IndexError, "matrix[attribute]: array index out of range"); + PyErr_SetString(PyExc_IndexError, + "matrix[attribute]: " + "array index out of range"); return NULL; } return newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, i); @@ -1336,7 +1409,8 @@ static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value) return -1; if(i >= self->row_size || i < 0){ - PyErr_SetString(PyExc_TypeError, "matrix[attribute] = x: bad column"); + PyErr_SetString(PyExc_TypeError, + "matrix[attribute] = x: bad column"); return -1; } @@ -1399,7 +1473,9 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va if(PySequence_Fast_GET_SIZE(value_fast) != size) { Py_DECREF(value_fast); - PyErr_SetString(PyExc_TypeError, "matrix[begin:end] = []: size mismatch in slice assignment"); + PyErr_SetString(PyExc_TypeError, + "matrix[begin:end] = []: " + "size mismatch in slice assignment"); return -1; } @@ -1433,7 +1509,9 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2) mat2 = (MatrixObject*)m2; if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_AttributeError, "Matrix addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Matrix addition: " + "arguments not valid for this operation"); return NULL; } @@ -1441,7 +1519,9 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2) return NULL; if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix addition: matrices must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Matrix addition: " + "matrices must have the same dimensions for this operation"); return NULL; } @@ -1460,7 +1540,9 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) mat2 = (MatrixObject*)m2; if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_AttributeError, "Matrix addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Matrix addition: " + "arguments not valid for this operation"); return NULL; } @@ -1468,7 +1550,9 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) return NULL; if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError, "Matrix addition: matrices must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Matrix addition: " + "matrices must have the same dimensions for this operation"); return NULL; } @@ -1502,9 +1586,12 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) return NULL; } - if(mat1 && mat2) { /*MATRIX * MATRIX*/ + if(mat1 && mat2) { + /*MATRIX * MATRIX*/ if(mat1->row_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError,"Matrix multiplication: matrix A rowsize must equal matrix B colsize"); + PyErr_SetString(PyExc_AttributeError, + "Matrix multiplication: " + "matrix A rowsize must equal matrix B colsize"); return NULL; } else { @@ -1529,12 +1616,14 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) } } else if(mat2) { - if (((scalar= PyFloat_AsDouble(m1)) == -1.0f && PyErr_Occurred())==0) { /*FLOAT/INT * MATRIX */ + /*FLOAT/INT * MATRIX */ + if (((scalar= PyFloat_AsDouble(m1)) == -1.0f && PyErr_Occurred())==0) { return matrix_mul_float(mat2, scalar); } } else if(mat1) { - if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { /*FLOAT/INT * MATRIX */ + /*FLOAT/INT * MATRIX */ + if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { return matrix_mul_float(mat1, scalar); } } @@ -1542,7 +1631,10 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) BLI_assert(!"internal error"); } - PyErr_Format(PyExc_TypeError, "Matrix multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(m1)->tp_name, Py_TYPE(m2)->tp_name); + PyErr_Format(PyExc_TypeError, + "Matrix multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(m1)->tp_name, Py_TYPE(m2)->tp_name); return NULL; } static PyObject* Matrix_inv(MatrixObject *self) @@ -1591,12 +1683,15 @@ static PyObject *Matrix_subscript(MatrixObject* self, PyObject* item) return Matrix_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with matricies"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with matricies"); return NULL; } } else { - PyErr_Format(PyExc_TypeError, "vector indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "vector indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return NULL; } } @@ -1620,12 +1715,15 @@ static int Matrix_ass_subscript(MatrixObject* self, PyObject* item, PyObject* va if (step == 1) return Matrix_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with matricies"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with matricies"); return -1; } } else { - PyErr_Format(PyExc_TypeError, "matrix indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "matrix indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return -1; } } @@ -1693,7 +1791,9 @@ static PyObject *Matrix_median_scale_get(MatrixObject *self, void *UNUSED(closur /*must be 3-4 cols, 3-4 rows, square matrix*/ if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, "Matrix.median_scale: inappropriate matrix size, 3x3 minimum"); + PyErr_SetString(PyExc_AttributeError, + "matrix.median_scale: " + "inappropriate matrix size, 3x3 minimum"); return NULL; } @@ -1713,7 +1813,9 @@ static PyObject *Matrix_is_negative_get(MatrixObject *self, void *UNUSED(closure else if(self->col_size == 3 && self->row_size == 3) return PyBool_FromLong(is_negative_m3((float (*)[3])self->contigPtr)); else { - PyErr_SetString(PyExc_AttributeError, "Matrix.is_negative: inappropriate matrix size - expects 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "matrix.is_negative: " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; } } @@ -1729,7 +1831,9 @@ static PyObject *Matrix_is_orthogonal_get(MatrixObject *self, void *UNUSED(closu else if(self->col_size == 3 && self->row_size == 3) return PyBool_FromLong(is_orthogonal_m3((float (*)[3])self->contigPtr)); else { - PyErr_SetString(PyExc_AttributeError, "Matrix.is_orthogonal: inappropriate matrix size - expects 3x3 or 4x4 matrix"); + PyErr_SetString(PyExc_AttributeError, + "matrix.is_orthogonal: " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; } } @@ -1865,7 +1969,9 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign /*matrix objects can be any 2-4row x 2-4col matrix*/ if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) { - PyErr_SetString(PyExc_RuntimeError, "matrix(): row and column sizes must be between 2 and 4"); + PyErr_SetString(PyExc_RuntimeError, + "Matrix(): " + "row and column sizes must be between 2 and 4"); return NULL; } @@ -1891,7 +1997,9 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign else if (type == Py_NEW){ self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float)); if(self->contigPtr == NULL) { /*allocation failure*/ - PyErr_SetString(PyExc_MemoryError, "matrix(): problem allocating pointer space"); + PyErr_SetString(PyExc_MemoryError, + "Matrix(): " + "problem allocating pointer space"); return NULL; } /*pointer array points to contigous memory*/ @@ -1913,7 +2021,8 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, "Matrix(): invalid type"); + PyErr_SetString(PyExc_RuntimeError, + "Matrix(): invalid type, internal error"); return NULL; } } diff --git a/source/blender/python/generic/mathutils_Quaternion.c b/source/blender/python/generic/mathutils_Quaternion.c index 90447e7093a..977ff7ccbc7 100644 --- a/source/blender/python/generic/mathutils_Quaternion.c +++ b/source/blender/python/generic/mathutils_Quaternion.c @@ -235,7 +235,9 @@ static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) float tquat[QUAT_SIZE], quat[QUAT_SIZE], fac; if(!PyArg_ParseTuple(args, "Of:slerp", &value, &fac)) { - PyErr_SetString(PyExc_TypeError, "quat.slerp(): expected Quaternion types and float"); + PyErr_SetString(PyExc_TypeError, + "quat.slerp(): " + "expected Quaternion types and float"); return NULL; } @@ -246,7 +248,9 @@ static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) return NULL; if(fac > 1.0f || fac < 0.0f) { - PyErr_SetString(PyExc_AttributeError, "quat.slerp(): interpolation factor must be between 0.0 and 1.0"); + PyErr_SetString(PyExc_AttributeError, + "quat.slerp(): " + "interpolation factor must be between 0.0 and 1.0"); return NULL; } @@ -498,7 +502,9 @@ static PyObject *Quaternion_item(QuaternionObject *self, int i) if(i<0) i= QUAT_SIZE-i; if(i < 0 || i >= QUAT_SIZE) { - PyErr_SetString(PyExc_IndexError, "quaternion[attribute]: array index out of range"); + PyErr_SetString(PyExc_IndexError, + "quaternion[attribute]: " + "array index out of range"); return NULL; } @@ -514,14 +520,18 @@ static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob) { float scalar= (float)PyFloat_AsDouble(ob); if(scalar==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, "quaternion[index] = x: index argument not a number"); + PyErr_SetString(PyExc_TypeError, + "quaternion[index] = x: " + "index argument not a number"); return -1; } if(i<0) i= QUAT_SIZE-i; if(i < 0 || i >= QUAT_SIZE){ - PyErr_SetString(PyExc_IndexError, "quaternion[attribute] = x: array assignment index out of range"); + PyErr_SetString(PyExc_IndexError, + "quaternion[attribute] = x: " + "array assignment index out of range"); return -1; } self->quat[i] = scalar; @@ -572,7 +582,9 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, "quaternion[begin:end] = []: size mismatch in slice assignment"); + PyErr_SetString(PyExc_TypeError, + "quaternion[begin:end] = []: " + "size mismatch in slice assignment"); return -1; } @@ -608,12 +620,15 @@ static PyObject *Quaternion_subscript(QuaternionObject *self, PyObject *item) return Quaternion_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with quaternions"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with quaternions"); return NULL; } } else { - PyErr_Format(PyExc_TypeError, "quaternion indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "quaternion indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return NULL; } } @@ -638,12 +653,15 @@ static int Quaternion_ass_subscript(QuaternionObject *self, PyObject *item, PyOb if (step == 1) return Quaternion_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with quaternion"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with quaternion"); return -1; } } else { - PyErr_Format(PyExc_TypeError, "quaternion indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "quaternion indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return -1; } } @@ -657,7 +675,9 @@ static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) QuaternionObject *quat1 = NULL, *quat2 = NULL; if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_AttributeError, "Quaternion addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Quaternion addition: " + "arguments not valid for this operation"); return NULL; } quat1 = (QuaternionObject*)q1; @@ -678,7 +698,9 @@ static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) QuaternionObject *quat1 = NULL, *quat2 = NULL; if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_AttributeError, "Quaternion addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Quaternion addition: " + "arguments not valid for this operation"); return NULL; } @@ -740,7 +762,10 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) BLI_assert(!"internal error"); } - PyErr_Format(PyExc_TypeError, "Quaternion multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(q1)->tp_name, Py_TYPE(q2)->tp_name); + PyErr_Format(PyExc_TypeError, + "Quaternion multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(q1)->tp_name, Py_TYPE(q2)->tp_name); return NULL; } @@ -861,7 +886,8 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN angle= PyFloat_AsDouble(value); if(angle==-1.0 && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, "quaternion.angle = value: float expected"); + PyErr_SetString(PyExc_TypeError, + "quaternion.angle = value: float expected"); return -1; } @@ -942,7 +968,9 @@ static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kw float quat[QUAT_SIZE]= {0.0f, 0.0f, 0.0f, 0.0f}; if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, "mathutils.Quaternion(): takes no keyword args"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Quaternion(): " + "takes no keyword args"); return NULL; } @@ -1114,7 +1142,8 @@ PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, "Quaternion(): invalid type"); + PyErr_SetString(PyExc_RuntimeError, + "Quaternion(): invalid type, internal error"); return NULL; } } diff --git a/source/blender/python/generic/mathutils_Vector.c b/source/blender/python/generic/mathutils_Vector.c index e07b51c9e4b..b8fdc2f0890 100644 --- a/source/blender/python/generic/mathutils_Vector.c +++ b/source/blender/python/generic/mathutils_Vector.c @@ -66,7 +66,9 @@ static PyObject *Vector_new(PyTypeObject *type, PyObject *args, PyObject *UNUSED return NULL; break; default: - PyErr_SetString(PyExc_TypeError, "mathutils.Vector(): more then a single arg given"); + PyErr_SetString(PyExc_TypeError, + "mathutils.Vector(): " + "more then a single arg given"); return NULL; } return newVectorObject(vec, size, Py_NEW, type); @@ -156,17 +158,23 @@ PyDoc_STRVAR(Vector_resize_2d_doc, static PyObject *Vector_resize_2d(VectorObject *self) { if(self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, "vector.resize_2d(): cannot resize wrapped data - only python vectors"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_2d(): " + "cannot resize wrapped data - only python vectors"); return NULL; } if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, "vector.resize_2d(): cannot resize a vector that has an owner"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_2d(): " + "cannot resize a vector that has an owner"); return NULL; } self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 2)); if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, "vector.resize_2d(): problem allocating pointer space"); + PyErr_SetString(PyExc_MemoryError, + "vector.resize_2d(): " + "problem allocating pointer space"); return NULL; } @@ -185,17 +193,23 @@ PyDoc_STRVAR(Vector_resize_3d_doc, static PyObject *Vector_resize_3d(VectorObject *self) { if (self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, "vector.resize_3d(): cannot resize wrapped data - only python vectors"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_3d(): " + "cannot resize wrapped data - only python vectors"); return NULL; } if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, "vector.resize_3d(): cannot resize a vector that has an owner"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_3d(): " + "cannot resize a vector that has an owner"); return NULL; } self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 3)); if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, "vector.resize_3d(): problem allocating pointer space"); + PyErr_SetString(PyExc_MemoryError, + "vector.resize_3d(): " + "problem allocating pointer space"); return NULL; } @@ -217,17 +231,23 @@ PyDoc_STRVAR(Vector_resize_4d_doc, static PyObject *Vector_resize_4d(VectorObject *self) { if(self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, "vector.resize_4d(): cannot resize wrapped data - only python vectors"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_4d(): " + "cannot resize wrapped data - only python vectors"); return NULL; } if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, "vector.resize_4d(): cannot resize a vector that has an owner"); + PyErr_SetString(PyExc_TypeError, + "vector.resize_4d(): " + "cannot resize a vector that has an owner"); return NULL; } self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 4)); if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, "vector.resize_4d(): problem allocating pointer space"); + PyErr_SetString(PyExc_MemoryError, + "vector.resize_4d(): " + "problem allocating pointer space"); return NULL; } @@ -333,7 +353,9 @@ static PyObject *Vector_to_tuple(VectorObject *self, PyObject *args) return NULL; if(ndigits > 22 || ndigits < 0) { - PyErr_SetString(PyExc_ValueError, "vector.to_tuple(ndigits): ndigits must be between 0 and 21"); + PyErr_SetString(PyExc_ValueError, + "vector.to_tuple(ndigits): " + "ndigits must be between 0 and 21"); return NULL; } @@ -368,7 +390,9 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) return NULL; if (self->size != 3) { - PyErr_SetString(PyExc_TypeError, "only for 3D vectors"); + PyErr_SetString(PyExc_TypeError, + "vector.to_track_quat(): " + "only for 3D vectors"); return NULL; } @@ -376,6 +400,8 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) return NULL; if (strack) { + const char *axis_err_msg= "only X, -X, Y, -Y, Z or -Z for track axis"; + if (strlen(strack) == 2) { if (strack[0] == '-') { switch(strack[1]) { @@ -389,12 +415,12 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) track = 5; break; default: - PyErr_SetString(PyExc_ValueError, "only X, -X, Y, -Y, Z or -Z for track axis"); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } else { - PyErr_SetString(PyExc_ValueError, "only X, -X, Y, -Y, Z or -Z for track axis"); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } @@ -411,17 +437,19 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) track = 2; break; default: - PyErr_SetString(PyExc_ValueError, "only X, -X, Y, -Y, Z or -Z for track axis"); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } else { - PyErr_SetString(PyExc_ValueError, "only X, -X, Y, -Y, Z or -Z for track axis"); + PyErr_SetString(PyExc_ValueError, + axis_err_msg); return NULL; } } if (sup) { + const char *axis_err_msg= "only X, Y or Z for up axis"; if (strlen(sup) == 1) { switch(*sup) { case 'X': @@ -434,18 +462,19 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) up = 2; break; default: - PyErr_SetString(PyExc_ValueError, "only X, Y or Z for up axis"); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } else { - PyErr_SetString(PyExc_ValueError, "only X, Y or Z for up axis"); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } if (track == up) { - PyErr_SetString(PyExc_ValueError, "Can't have the same axis for track and up"); + PyErr_SetString(PyExc_ValueError, + "Can't have the same axis for track and up"); return NULL; } @@ -604,7 +633,9 @@ static PyObject *Vector_angle(VectorObject *self, PyObject *args) return fallback; } else { - PyErr_SetString(PyExc_ValueError, "vector.angle(other): zero length vectors have no valid angle"); + PyErr_SetString(PyExc_ValueError, + "vector.angle(other): " + "zero length vectors have no valid angle"); return NULL; } } @@ -636,7 +667,9 @@ static PyObject *Vector_rotation_difference(VectorObject *self, PyObject *value) float quat[4], vec_a[3], vec_b[3]; if(self->size < 3) { - PyErr_SetString(PyExc_AttributeError, "vec.difference(value): expects both vectors to be size 3 or 4"); + PyErr_SetString(PyExc_AttributeError, + "vec.difference(value): " + "expects both vectors to be size 3 or 4"); return NULL; } @@ -750,7 +783,8 @@ static PyObject *Vector_rotate(VectorObject *self, PyObject *value) return NULL; if(self->size < 3) { - PyErr_SetString(PyExc_ValueError, "Vector must be 3D or 4D"); + PyErr_SetString(PyExc_ValueError, + "Vector must be 3D or 4D"); return NULL; } @@ -804,8 +838,15 @@ static PyObject *vector_item_internal(VectorObject *self, int i, const int is_at if(i<0) i= self->size-i; if(i < 0 || i >= self->size) { - if(is_attr) PyErr_Format(PyExc_AttributeError,"vector.%c: unavailable on %dd vector", *(((char *)"xyzw") + i), self->size); - else PyErr_SetString(PyExc_IndexError,"vector[index]: out of range"); + if(is_attr) { + PyErr_Format(PyExc_AttributeError, + "vector.%c: unavailable on %dd vector", + *(((char *)"xyzw") + i), self->size); + } + else { + PyErr_SetString(PyExc_IndexError, + "vector[index]: out of range"); + } return NULL; } @@ -824,15 +865,25 @@ static int vector_ass_item_internal(VectorObject *self, int i, PyObject *value, { float scalar; if((scalar=PyFloat_AsDouble(value))==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, "vector[index] = x: index argument not a number"); + PyErr_SetString(PyExc_TypeError, + "vector[index] = x: " + "index argument not a number"); return -1; } if(i<0) i= self->size-i; if(i < 0 || i >= self->size){ - if(is_attr) PyErr_Format(PyExc_AttributeError,"vector.%c = x: unavailable on %dd vector", *(((char *)"xyzw") + i), self->size); - else PyErr_SetString(PyExc_IndexError, "vector[index] = x: assignment index out of range"); + if(is_attr) { + PyErr_Format(PyExc_AttributeError, + "vector.%c = x: unavailable on %dd vector", + *(((char *)"xyzw") + i), self->size); + } + else { + PyErr_SetString(PyExc_IndexError, + "vector[index] = x: " + "assignment index out of range"); + } return -1; } self->vec[i] = scalar; @@ -904,7 +955,9 @@ static PyObject *Vector_add(PyObject *v1, PyObject *v2) float vec[MAX_DIMENSIONS]; if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Vector addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "arguments not valid for this operation"); return NULL; } vec1 = (VectorObject*)v1; @@ -915,7 +968,9 @@ static PyObject *Vector_add(PyObject *v1, PyObject *v2) /*VECTOR + VECTOR*/ if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector addition: vectors must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "vectors must have the same dimensions for this operation"); return NULL; } @@ -930,14 +985,18 @@ static PyObject *Vector_iadd(PyObject *v1, PyObject *v2) VectorObject *vec1 = NULL, *vec2 = NULL; if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Vector addition: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "arguments not valid for this operation"); return NULL; } vec1 = (VectorObject*)v1; vec2 = (VectorObject*)v2; if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector addition: vectors must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "vectors must have the same dimensions for this operation"); return NULL; } @@ -958,7 +1017,9 @@ static PyObject *Vector_sub(PyObject *v1, PyObject *v2) float vec[MAX_DIMENSIONS]; if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Vector subtraction: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "arguments not valid for this operation"); return NULL; } vec1 = (VectorObject*)v1; @@ -968,7 +1029,9 @@ static PyObject *Vector_sub(PyObject *v1, PyObject *v2) return NULL; if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector subtraction: vectors must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "vectors must have the same dimensions for this operation"); return NULL; } @@ -983,14 +1046,18 @@ static PyObject *Vector_isub(PyObject *v1, PyObject *v2) VectorObject *vec1= NULL, *vec2= NULL; if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, "Vector subtraction: arguments not valid for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "arguments not valid for this operation"); return NULL; } vec1 = (VectorObject*)v1; vec2 = (VectorObject*)v2; if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector subtraction: vectors must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "vectors must have the same dimensions for this operation"); return NULL; } @@ -1027,7 +1094,10 @@ static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject vec_cpy[3] = 1.0f; } else { - PyErr_SetString(PyExc_AttributeError, "matrix * vector: matrix.row_size and len(vector) must be the same, except for 3D vector * 4x4 matrix."); + PyErr_SetString(PyExc_AttributeError, + "matrix * vector: " + "matrix.row_size and len(vector) must be the same, " + "except for 3D vector * 4x4 matrix."); return -1; } } @@ -1077,7 +1147,9 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) double dot = 0.0f; if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector multiplication: vectors must have the same dimensions for this operation"); + PyErr_SetString(PyExc_AttributeError, + "Vector multiplication: " + "vectors must have the same dimensions for this operation"); return NULL; } @@ -1105,7 +1177,9 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) float tvec[3]; if(vec1->size != 3) { - PyErr_SetString(PyExc_TypeError, "Vector multiplication: only 3D vector rotations (with quats) currently supported"); + PyErr_SetString(PyExc_TypeError, + "Vector multiplication: " + "only 3D vector rotations (with quats) currently supported"); return NULL; } if(BaseMath_ReadCallback(quat2) == -1) { @@ -1128,7 +1202,10 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) BLI_assert(!"internal error"); } - PyErr_Format(PyExc_TypeError, "Vector multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + PyErr_Format(PyExc_TypeError, + "Vector multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); return NULL; } @@ -1158,7 +1235,9 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) QuaternionObject *quat2 = (QuaternionObject*)v2; if(vec->size != 3) { - PyErr_SetString(PyExc_TypeError, "Vector multiplication: only 3D vector rotations (with quats) currently supported"); + PyErr_SetString(PyExc_TypeError, + "Vector multiplication: " + "only 3D vector rotations (with quats) currently supported"); return NULL; } @@ -1171,7 +1250,9 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) mul_vn_fl(vec->vec, vec->size, scalar); } else { - PyErr_SetString(PyExc_TypeError, "Vector multiplication: arguments not acceptable for this operation"); + PyErr_SetString(PyExc_TypeError, + "Vector multiplication: " + "arguments not acceptable for this operation"); return NULL; } @@ -1188,7 +1269,9 @@ static PyObject *Vector_div(PyObject *v1, PyObject *v2) VectorObject *vec1 = NULL; if(!VectorObject_Check(v1)) { /* not a vector */ - PyErr_SetString(PyExc_TypeError, "Vector division: Vector must be divided by a float"); + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); return NULL; } vec1 = (VectorObject*)v1; /* vector */ @@ -1197,12 +1280,16 @@ static PyObject *Vector_div(PyObject *v1, PyObject *v2) return NULL; if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, "Vector division: Vector must be divided by a float"); + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); return NULL; } if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, "Vector division: divide by zero error"); + PyErr_SetString(PyExc_ZeroDivisionError, + "Vector division: " + "divide by zero error"); return NULL; } @@ -1223,12 +1310,16 @@ static PyObject *Vector_idiv(PyObject *v1, PyObject *v2) return NULL; if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, "Vector division: Vector must be divided by a float"); + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); return NULL; } if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, "Vector division: divide by zero error"); + PyErr_SetString(PyExc_ZeroDivisionError, + "Vector division: " + "divide by zero error"); return NULL; } for(i = 0; i < vec1->size; i++) { @@ -1394,12 +1485,15 @@ static PyObject *Vector_subscript(VectorObject* self, PyObject* item) return Vector_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with vectors"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with vectors"); return NULL; } } else { - PyErr_Format(PyExc_TypeError, "vector indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "vector indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return NULL; } } @@ -1423,12 +1517,15 @@ static int Vector_ass_subscript(VectorObject* self, PyObject* item, PyObject* va if (step == 1) return Vector_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, "slice steps not supported with vectors"); + PyErr_SetString(PyExc_TypeError, + "slice steps not supported with vectors"); return -1; } } else { - PyErr_Format(PyExc_TypeError, "vector indices must be integers, not %.200s", Py_TYPE(item)->tp_name); + PyErr_Format(PyExc_TypeError, + "vector indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); return -1; } } @@ -1517,12 +1614,14 @@ static int Vector_setLength(VectorObject *self, PyObject *value) return -1; if((param=PyFloat_AsDouble(value)) == -1.0 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "length must be set to a number"); + PyErr_SetString(PyExc_TypeError, + "length must be set to a number"); return -1; } if (param < 0.0) { - PyErr_SetString(PyExc_TypeError, "cannot set a vectors length to a negative value"); + PyErr_SetString(PyExc_TypeError, + "cannot set a vectors length to a negative value"); return -1; } if (param == 0.0) { @@ -1573,7 +1672,9 @@ static PyObject *Vector_getSwizzle(VectorObject *self, void *closure) { axis_from = swizzleClosure & SWIZZLE_AXIS; if(axis_from >= self->size) { - PyErr_SetString(PyExc_AttributeError, "Error: vector does not have specified axis"); + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: " + "specified axis not present"); return NULL; } @@ -1615,12 +1716,13 @@ static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) swizzles defined for axes z and w, but they would be invalid. */ swizzleClosure = GET_INT_FROM_POINTER(closure); axis_from= 0; - while (swizzleClosure & SWIZZLE_VALID_AXIS) - { + while (swizzleClosure & SWIZZLE_VALID_AXIS) { axis_to = swizzleClosure & SWIZZLE_AXIS; if (axis_to >= self->size) { - PyErr_SetString(PyExc_AttributeError, "Error: vector does not have specified axis"); + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: " + "specified axis not present"); return -1; } swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; @@ -1639,7 +1741,8 @@ static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) } if(axis_from != size_from) { - PyErr_SetString(PyExc_AttributeError, "Error: vector size does not match swizzle"); + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: size does not match swizzle"); return -1; } @@ -2071,7 +2174,9 @@ static int row_vector_multiplication(float rvec[4], VectorObject* vec, MatrixObj if(mat->colSize != vec_size){ if(mat->colSize == 4 && vec_size != 3){ - PyErr_SetString(PyExc_AttributeError, "vector * matrix: matrix column size and the vector size must be the same"); + PyErr_SetString(PyExc_AttributeError, + "vector * matrix: matrix column size " + "and the vector size must be the same"); return -1; } else { @@ -2252,7 +2357,8 @@ PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObje VectorObject *self; if(size > 4 || size < 2) { - PyErr_SetString(PyExc_RuntimeError, "Vector(): invalid size"); + PyErr_SetString(PyExc_RuntimeError, + "Vector(): invalid size"); return NULL; } @@ -2284,7 +2390,8 @@ PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObje self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, "Vector(): invalid type"); + PyErr_SetString(PyExc_RuntimeError, + "Vector(): invalid type, internal error"); return NULL; } } diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 26844a5003d..601daf01d00 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -90,7 +90,8 @@ static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* return NULL; } if(vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { - PyErr_SetString(PyExc_ValueError, "only 3D vectors for all parameters"); + PyErr_SetString(PyExc_ValueError, + "only 3D vectors for all parameters"); return NULL; } @@ -177,7 +178,8 @@ static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject return NULL; } if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { - PyErr_SetString(PyExc_ValueError,"vectors must be of the same size"); + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); return NULL; } @@ -225,7 +227,8 @@ static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject } } else { - PyErr_SetString(PyExc_ValueError, "2D/3D vectors only"); + PyErr_SetString(PyExc_ValueError, + "2D/3D vectors only"); return NULL; } } @@ -259,11 +262,13 @@ static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) return NULL; } if(vec1->size != vec2->size || vec1->size != vec3->size) { - PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); return NULL; } if(vec1->size < 3) { - PyErr_SetString(PyExc_ValueError, "2D vectors unsupported"); + PyErr_SetString(PyExc_ValueError, + "2D vectors unsupported"); return NULL; } @@ -277,11 +282,13 @@ static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) return NULL; } if(vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { - PyErr_SetString(PyExc_ValueError,"vectors must be of the same size"); + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); return NULL; } if(vec1->size < 3) { - PyErr_SetString(PyExc_ValueError, "2D vectors unsupported"); + PyErr_SetString(PyExc_ValueError, + "2D vectors unsupported"); return NULL; } @@ -318,7 +325,8 @@ static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) } if(vec1->size != vec2->size || vec1->size != vec3->size) { - PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); return NULL; } @@ -332,7 +340,8 @@ static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) return PyFloat_FromDouble(area_tri_v2(vec1->vec, vec2->vec, vec3->vec)); } else { - PyErr_SetString(PyExc_ValueError, "only 2D,3D vectors are supported"); + PyErr_SetString(PyExc_ValueError, + "only 2D,3D vectors are supported"); return NULL; } } @@ -360,7 +369,8 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * int index, *dl_face, totpoints=0; if(!PySequence_Check(polyLineSeq)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines"); + PyErr_SetString(PyExc_TypeError, + "expected a sequence of poly lines"); return NULL; } @@ -371,7 +381,8 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * if (!PySequence_Check(polyLine)) { freedisplist(&dispbase); Py_XDECREF(polyLine); /* may be null so use Py_XDECREF*/ - PyErr_SetString(PyExc_TypeError, "One or more of the polylines is not a sequence of mathutils.Vector's"); + PyErr_SetString(PyExc_TypeError, + "One or more of the polylines is not a sequence of mathutils.Vector's"); return NULL; } @@ -381,7 +392,8 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * if (EXPP_check_sequence_consistency(polyLine, &vector_Type) != 1) { freedisplist(&dispbase); Py_DECREF(polyLine); - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); + PyErr_SetString(PyExc_TypeError, + "A point in one of the polylines is not a mathutils.Vector type"); return NULL; } #endif @@ -422,7 +434,9 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * if(ls_error) { freedisplist(&dispbase); /* possible some dl was allocated */ - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); + PyErr_SetString(PyExc_TypeError, + "A point in one of the polylines " + "is not a mathutils.Vector type"); return NULL; } else if (totpoints) { @@ -436,7 +450,8 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * tri_list= PyList_New(dl->parts); if(!tri_list) { freedisplist(&dispbase); - PyErr_SetString(PyExc_RuntimeError, "geometry.PolyFill failed to make a new list"); + PyErr_SetString(PyExc_RuntimeError, + "failed to make a new list"); return NULL; } @@ -541,7 +556,9 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec } if(ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { - PyErr_SetString(PyExc_RuntimeError, "geometry.intersect_line_plane(...) can't use 2D Vectors"); + PyErr_SetString(PyExc_RuntimeError, + "geometry.intersect_line_plane(...): " + " can't use 2D Vectors"); return NULL; } @@ -597,7 +614,9 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje } if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { - PyErr_SetString(PyExc_RuntimeError, "geometry.intersect_line_sphere(...) can't use 2D Vectors"); + PyErr_SetString(PyExc_RuntimeError, + "geometry.intersect_line_sphere(...): " + " can't use 2D Vectors"); return NULL; } else { @@ -834,7 +853,8 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) /* Error checking must already be done */ if(!PyList_Check(value)) { - PyErr_SetString(PyExc_TypeError, "can only back a list of [x, y, w, h]"); + PyErr_SetString(PyExc_TypeError, + "can only back a list of [x, y, w, h]"); return -1; } @@ -847,7 +867,8 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) list_item= PyList_GET_ITEM(value, i); if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "can only pack a list of [x, y, w, h]"); + PyErr_SetString(PyExc_TypeError, + "can only pack a list of [x, y, w, h]"); return -1; } @@ -862,7 +883,9 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) if (box->w < 0.0f || box->h < 0.0f) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "error parsing width and height values from list: [x, y, w, h], not numbers or below zero"); + PyErr_SetString(PyExc_TypeError, + "error parsing width and height values from list: " + "[x, y, w, h], not numbers or below zero"); return -1; } @@ -906,7 +929,8 @@ static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlis PyObject *ret; if(!PyList_Check(boxlist)) { - PyErr_SetString(PyExc_TypeError, "expected a list of boxes [[x, y, w, h], ... ]"); + PyErr_SetString(PyExc_TypeError, + "expected a list of boxes [[x, y, w, h], ... ]"); return NULL; } @@ -972,7 +996,8 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* } if(resolu <= 1) { - PyErr_SetString(PyExc_ValueError, "resolution must be 2 or over"); + PyErr_SetString(PyExc_ValueError, + "resolution must be 2 or over"); return NULL; } @@ -1049,7 +1074,8 @@ static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObje vec_t2_tar->size != 3 || vec_t3_tar->size != 3) { - PyErr_SetString(PyExc_ValueError, "One of more of the vector arguments wasnt a 3D vector"); + PyErr_SetString(PyExc_ValueError, + "One of more of the vector arguments wasnt a 3D vector"); return NULL; } -- cgit v1.2.3 From b2eb2a00f104ae4d201ab58f83623e36ba45aef8 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 14 Jul 2011 03:27:33 +0000 Subject: introduce variables for ndof settings --- source/blender/makesdna/DNA_userdef_types.h | 18 ++++++++++++++++-- source/blender/makesrna/intern/rna_userdef.c | 23 +++++++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 50e66f91028..78bc1c73ec9 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -365,7 +365,7 @@ typedef struct UserDef { short recent_files; /* maximum number of recently used files to remember */ short smooth_viewtx; /* miliseconds to spend spinning the view */ short glreslimit; - short ndof_pan, ndof_rotate; +/* short ndof_pan, ndof_rotate; */ short curssize; short color_picker_type; short ipo_new; /* interpolation mode for newly added F-Curves */ @@ -375,7 +375,10 @@ typedef struct UserDef { short scrcastwait; /* milliseconds between screencast snapshots */ short widget_unit; /* defaults to 20 for 72 DPI setting */ - short pad[3]; + short pad[1]; + + float ndof_sensitivity; /* overall sensitivity of 3D mouse */ + int ndof_flag; /* flags for 3D mouse */ char versemaster[160]; char verseuser[160]; @@ -578,6 +581,17 @@ extern UserDef U; /* from blenkernel blender.c */ #define TH_OLDSKOOL 3 #define TH_SHADED 4 +/* ndof_flag (3D mouse options) */ +#define NDOF_SHOW_GUIDE (1 << 0) +#define NDOF_FLY_HELICOPTER (1 << 1) +#define NDOF_LOCK_HORIZON (1 << 2) +/* the following might not need to be saved between sessions, + but they do need to live somewhere accessible... +#define NDOF_SHOULD_PAN (1 << 3) +#define NDOF_SHOULD_ZOOM (1 << 4) +#define NDOF_SHOULD_ROTATE (1 << 5) +*/ + #ifdef __cplusplus } #endif diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index b67805c97b9..86b88718ba8 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2705,7 +2705,9 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "dragthreshold"); RNA_def_property_range(prop, 3, 40); RNA_def_property_ui_text(prop, "Drag Threshold", "Amount of pixels you have to drag before dragging UI items happens"); - + + /* 3D mouse settings */ +/* prop= RNA_def_property(srna, "ndof_pan_speed", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "ndof_pan"); RNA_def_property_range(prop, 0, 200); @@ -2715,7 +2717,24 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "ndof_rotate"); RNA_def_property_range(prop, 0, 200); RNA_def_property_ui_text(prop, "NDof Rotation Speed", "The overall rotation speed of an NDOF device, as percent of standard"); - +*/ + prop= RNA_def_property(srna, "ndof_sensitivity", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.25f, 4.0f); + RNA_def_property_ui_text(prop, "3D Mouse Sensitivity", "Baseline sensitivity of the 3D Mouse"); + + prop= RNA_def_property(srna, "ndof_show_guide", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_SHOW_GUIDE); + RNA_def_property_ui_text(prop, "Show 3D Mouse Guide", "Visualize the center and axis of rotation (or projected position in fly mode)"); + + prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_LOCK_HORIZON); + RNA_def_property_ui_text(prop, "Lock Horizon", "Keep horizon level while flying with 3D Mouse"); + + prop= RNA_def_property(srna, "ndof_fly_helicopter", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_FLY_HELICOPTER); + RNA_def_property_ui_text(prop, "Helicopter Fly Mode", ""); + + prop= RNA_def_property(srna, "mouse_double_click_time", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "dbl_click_time"); RNA_def_property_range(prop, 1, 1000); -- cgit v1.2.3 From 44d2e6eb109889f49fb9935d05ef201127d15805 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 14 Jul 2011 03:28:31 +0000 Subject: disable old ndof fly (new stuff en route from another machine) --- source/blender/editors/space_view3d/view3d_edit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 2d8c14b29f3..fc84944da02 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1127,7 +1127,6 @@ static int ndof_fly_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -#endif // BEGIN old fly code // derived from blender 2.4 @@ -1263,6 +1262,7 @@ static int ndof_oldfly_invoke(bContext *C, wmOperator *op, wmEvent *event) } // END old fly code +#endif void VIEW3D_OT_ndof(struct wmOperatorType *ot) { @@ -1272,8 +1272,8 @@ void VIEW3D_OT_ndof(struct wmOperatorType *ot) ot->idname = "VIEW3D_OT_ndof"; /* api callbacks */ - ot->invoke = ndof_oldfly_invoke; -// ot->invoke = ndof_orbit_invoke; +// ot->invoke = ndof_oldfly_invoke; + ot->invoke = ndof_orbit_invoke; ot->poll = ED_operator_view3d_active; /* flags */ -- cgit v1.2.3 From f70f16723741405ab3c32b9e1f05af35ecf9eb21 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 14 Jul 2011 08:20:19 +0000 Subject: Shuffle code so it compiles with MSVC too. (Array of unknown size otherwise). --- source/blender/python/generic/bgl.c | 76 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 39 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 1891e13fdc1..18d01f45015 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -69,11 +69,44 @@ static PySequenceMethods Buffer_SeqMethods = { }; static void Buffer_dealloc(PyObject *self); -static PyObject *Buffer_tolist(PyObject *self, void *arg); -static PyObject *Buffer_dimensions(PyObject *self, void *arg); static PyObject *Buffer_repr(PyObject *self); -static PyMethodDef Buffer_methods[]; -static PyGetSetDef Buffer_getseters[]; + +static PyObject *Buffer_to_list(PyObject *self) +{ + int i, len= ((Buffer *)self)->dimensions[0]; + PyObject *list= PyList_New(len); + + for (i=0; indimensions); + int i; + + for (i= 0; indimensions; i++) { + PyList_SET_ITEM(list, i, PyLong_FromLong(buffer->dimensions[i])); + } + + return list; +} + +static PyMethodDef Buffer_methods[] = { + {"to_list", (PyCFunction)Buffer_to_list, METH_NOARGS, + "return the buffer as a list"}, + {NULL, NULL, 0, NULL} +}; + +static PyGetSetDef Buffer_getseters[] = { + {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL, NULL} +}; + PyTypeObject BGL_bufferType = { PyVarObject_HEAD_INIT(NULL, 0) @@ -460,41 +493,6 @@ static void Buffer_dealloc(PyObject *self) PyObject_DEL(self); } -static PyObject *Buffer_to_list(PyObject *self) -{ - int i, len= ((Buffer *)self)->dimensions[0]; - PyObject *list= PyList_New(len); - - for (i=0; indimensions); - int i; - - for (i= 0; indimensions; i++) { - PyList_SET_ITEM(list, i, PyLong_FromLong(buffer->dimensions[i])); - } - - return list; -} - -static PyMethodDef Buffer_methods[] = { - {"to_list", (PyCFunction)Buffer_to_list, METH_NOARGS, - "return the buffer as a list"}, - {NULL, NULL, 0, NULL} -}; - -static PyGetSetDef Buffer_getseters[] = { - {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL}, - {NULL, NULL, NULL, NULL, NULL} -}; static PyObject *Buffer_repr(PyObject *self) { -- cgit v1.2.3 From b028cba0e4878b5034b96772aba85abc9f669a12 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 14 Jul 2011 09:54:03 +0000 Subject: many mathutils exception types were wrong, went over all exceptions in mathutils and double checked the're correct. --- source/blender/python/generic/mathutils.c | 2 +- source/blender/python/generic/mathutils_Color.c | 22 +++---- source/blender/python/generic/mathutils_Euler.c | 14 ++--- source/blender/python/generic/mathutils_Matrix.c | 71 +++++++++++----------- .../blender/python/generic/mathutils_Quaternion.c | 16 +++-- source/blender/python/generic/mathutils_Vector.c | 25 ++++---- source/blender/python/generic/mathutils_geometry.c | 7 ++- 7 files changed, 75 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c index bba08e312b7..1ff33d5a6bb 100644 --- a/source/blender/python/generic/mathutils.c +++ b/source/blender/python/generic/mathutils.c @@ -75,7 +75,7 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max do { i--; if(((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { - PyErr_Format(PyExc_ValueError, + PyErr_Format(PyExc_TypeError, "%.200s: sequence index %d expected a number, " "found '%.200s' type, ", error_prefix, i, Py_TYPE(item)->tp_name); diff --git a/source/blender/python/generic/mathutils_Color.c b/source/blender/python/generic/mathutils_Color.c index fd187fd92fd..d0c7ec72cea 100644 --- a/source/blender/python/generic/mathutils_Color.c +++ b/source/blender/python/generic/mathutils_Color.c @@ -259,7 +259,7 @@ static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "color[begin:end] = []: " "size mismatch in slice assignment"); return -1; @@ -296,7 +296,7 @@ static PyObject *Color_subscript(ColorObject *self, PyObject *item) return Color_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with color"); return NULL; } @@ -328,7 +328,7 @@ static int Color_ass_subscript(ColorObject *self, PyObject *item, PyObject *valu if (step == 1) return Color_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with color"); return -1; } @@ -371,7 +371,7 @@ static PyObject *Color_add(PyObject *v1, PyObject *v2) float col[COLOR_SIZE]; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Color addition: " "arguments not valid for this operation"); return NULL; @@ -393,7 +393,7 @@ static PyObject *Color_iadd(PyObject *v1, PyObject *v2) ColorObject *color1 = NULL, *color2 = NULL; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Color addition: " "arguments not valid for this operation"); return NULL; @@ -418,7 +418,7 @@ static PyObject *Color_sub(PyObject *v1, PyObject *v2) float col[COLOR_SIZE]; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Color subtraction: " "arguments not valid for this operation"); return NULL; @@ -440,7 +440,7 @@ static PyObject *Color_isub(PyObject *v1, PyObject *v2) ColorObject *color1= NULL, *color2= NULL; if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Color subtraction: " "arguments not valid for this operation"); return NULL; @@ -555,7 +555,9 @@ static PyObject *Color_imul(PyObject *v1, PyObject *v2) mul_vn_fl(color->col, COLOR_SIZE, scalar); } else { - PyErr_SetString(PyExc_TypeError, "Color multiplication: arguments not acceptable for this operation"); + PyErr_SetString(PyExc_TypeError, + "Color multiplication: " + "arguments not acceptable for this operation"); return NULL; } @@ -846,9 +848,7 @@ PyObject *newColorObject(float *col, int type, PyTypeObject *base_type) self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, - "Color(): invalid type, internal error"); - return NULL; + Py_FatalError("Color(): invalid type!"); } } diff --git a/source/blender/python/generic/mathutils_Euler.c b/source/blender/python/generic/mathutils_Euler.c index 2888b0667f1..a7d6d921d16 100644 --- a/source/blender/python/generic/mathutils_Euler.c +++ b/source/blender/python/generic/mathutils_Euler.c @@ -99,7 +99,7 @@ short euler_order_from_string(const char *str, const char *error_prefix) } } - PyErr_Format(PyExc_TypeError, + PyErr_Format(PyExc_ValueError, "%s: invalid euler order '%s'", error_prefix, str); return -1; @@ -209,7 +209,7 @@ static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args) return NULL; } if(!(ELEM3(*axis, 'X', 'Y', 'Z') && axis[1]=='\0')){ - PyErr_SetString(PyExc_TypeError, "euler.rotate(): " + PyErr_SetString(PyExc_ValueError, "euler.rotate(): " "expected axis to be 'X', 'Y' or 'Z'"); return NULL; } @@ -449,7 +449,7 @@ static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "euler[begin:end] = []: " "size mismatch in slice assignment"); return -1; @@ -486,7 +486,7 @@ static PyObject *Euler_subscript(EulerObject *self, PyObject *item) return Euler_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with eulers"); return NULL; } @@ -519,7 +519,7 @@ static int Euler_ass_subscript(EulerObject *self, PyObject *item, PyObject *valu if (step == 1) return Euler_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with euler"); return -1; } @@ -701,9 +701,7 @@ PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_t self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, - "Euler(): invalid type, internal error"); - return NULL; + Py_FatalError("Euler(): invalid type!"); } self->order= order; diff --git a/source/blender/python/generic/mathutils_Matrix.c b/source/blender/python/generic/mathutils_Matrix.c index 4343485bb3a..c5ed1e32ee8 100644 --- a/source/blender/python/generic/mathutils_Matrix.c +++ b/source/blender/python/generic/mathutils_Matrix.c @@ -225,7 +225,7 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) if(vec && PyUnicode_Check(vec)) { axis= _PyUnicode_AsString((PyObject *)vec); if(axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "mathutils.RotationMatrix(): " "3rd argument axis value must be a 3D vector " "or a string in 'X', 'Y', 'Z'"); @@ -240,19 +240,19 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) angle= angle_wrap_rad(angle); if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.RotationMatrix(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } if(matSize == 2 && (vec != NULL)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.RotationMatrix(): " "cannot create a 2x2 rotation matrix around arbitrary axis"); return NULL; } if((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.RotationMatrix(): " "axis of rotation for 3d and 4d matrices is required"); return NULL; @@ -300,7 +300,7 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) } else { /* should never get here */ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.RotationMatrix(): unknown error"); return NULL; } @@ -365,7 +365,7 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "Matrix.Scale(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; @@ -451,7 +451,7 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.Matrix.OrthoProjection(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; @@ -568,7 +568,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) return NULL; } if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.Matrix.Shear(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; @@ -578,7 +578,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) float const factor= PyFloat_AsDouble(fac); if(factor==-1.0f && PyErr_Occurred()) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "mathutils.Matrix.Shear(): " "the factor to be a float"); return NULL; @@ -595,7 +595,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[1] = factor; } else { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "Matrix.Shear(): " "expected: X, Y or wrong matrix size for shearing plane"); return NULL; @@ -627,7 +627,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[2] = factor[1]; } else { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "mathutils.Matrix.Shear(): " "expected: X, Y, XY, XZ, YZ"); return NULL; @@ -686,7 +686,7 @@ static PyObject *Matrix_to_quaternion(MatrixObject *self) /*must be 3-4 cols, 3-4 rows, square matrix*/ if((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "matrix.to_quat(): " "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; @@ -750,7 +750,7 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) mat= tmat; } else { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "matrix.to_euler(): " "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; @@ -879,7 +879,7 @@ static PyObject *Matrix_to_3x3(MatrixObject *self) return NULL; if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.to_3x3(): inappropriate matrix size"); return NULL; } @@ -903,7 +903,7 @@ static PyObject *Matrix_to_translation(MatrixObject *self) return NULL; if((self->col_size < 3) || self->row_size < 4){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.to_translation(): " "inappropriate matrix size"); return NULL; @@ -933,7 +933,7 @@ static PyObject *Matrix_to_scale(MatrixObject *self) /*must be 3-4 cols, 3-4 rows, square matrix*/ if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.to_scale(): " "inappropriate matrix size, 3x3 minimum size"); return NULL; @@ -969,7 +969,7 @@ static PyObject *Matrix_invert(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.invert(ed): " "only square matrices are supported"); return NULL; @@ -1050,7 +1050,7 @@ static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) return NULL; if(self->col_size != 3 || self->row_size != 3) { - PyErr_SetString(PyExc_ValueError, + PyErr_SetString(PyExc_TypeError, "Matrix must have 3x3 dimensions"); return NULL; } @@ -1082,7 +1082,7 @@ static PyObject *Matrix_decompose(MatrixObject *self) float size[3]; if(self->col_size != 4 || self->row_size != 4) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.decompose(): " "inappropriate matrix size - expects 4x4 matrix"); return NULL; @@ -1125,7 +1125,7 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) return NULL; if(self->row_size != mat2->row_size || self->col_size != mat2->col_size) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "matrix.lerp(): " "expects both matrix objects of the same dimensions"); return NULL; @@ -1142,7 +1142,7 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) blend_m3_m3m3((float (*)[3])mat, (float (*)[3])self->contigPtr, (float (*)[3])mat2->contigPtr, fac); } else { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "matrix.lerp(): " "only 3x3 and 4x4 matrices supported"); return NULL; @@ -1168,7 +1168,7 @@ static PyObject *Matrix_determinant(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.determinant: " "only square matrices are supported"); return NULL; @@ -1192,7 +1192,7 @@ static PyObject *Matrix_transpose(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.transpose(d): " "only square matrices are supported"); return NULL; @@ -1261,7 +1261,7 @@ static PyObject *Matrix_identity(MatrixObject *self) return NULL; if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix.identity: " "only square matrices are supported"); return NULL; @@ -1409,7 +1409,7 @@ static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value) return -1; if(i >= self->row_size || i < 0){ - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "matrix[attribute] = x: bad column"); return -1; } @@ -1473,7 +1473,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va if(PySequence_Fast_GET_SIZE(value_fast) != size) { Py_DECREF(value_fast); - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "matrix[begin:end] = []: " "size mismatch in slice assignment"); return -1; @@ -1509,7 +1509,7 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2) mat2 = (MatrixObject*)m2; if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Matrix addition: " "arguments not valid for this operation"); return NULL; @@ -1519,7 +1519,7 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2) return NULL; if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Matrix addition: " "matrices must have the same dimensions for this operation"); return NULL; @@ -1540,7 +1540,7 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) mat2 = (MatrixObject*)m2; if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Matrix addition: " "arguments not valid for this operation"); return NULL; @@ -1550,7 +1550,7 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) return NULL; if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Matrix addition: " "matrices must have the same dimensions for this operation"); return NULL; @@ -1589,7 +1589,7 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) if(mat1 && mat2) { /*MATRIX * MATRIX*/ if(mat1->row_size != mat2->col_size){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "Matrix multiplication: " "matrix A rowsize must equal matrix B colsize"); return NULL; @@ -1683,14 +1683,14 @@ static PyObject *Matrix_subscript(MatrixObject* self, PyObject* item) return Matrix_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with matricies"); return NULL; } } else { PyErr_Format(PyExc_TypeError, - "vector indices must be integers, not %.200s", + "matrix indices must be integers, not %.200s", Py_TYPE(item)->tp_name); return NULL; } @@ -1715,7 +1715,7 @@ static int Matrix_ass_subscript(MatrixObject* self, PyObject* item, PyObject* va if (step == 1) return Matrix_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with matricies"); return -1; } @@ -2021,8 +2021,7 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, - "Matrix(): invalid type, internal error"); + Py_FatalError("Matrix(): invalid type!"); return NULL; } } diff --git a/source/blender/python/generic/mathutils_Quaternion.c b/source/blender/python/generic/mathutils_Quaternion.c index 977ff7ccbc7..3b05b9a250b 100644 --- a/source/blender/python/generic/mathutils_Quaternion.c +++ b/source/blender/python/generic/mathutils_Quaternion.c @@ -248,7 +248,7 @@ static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) return NULL; if(fac > 1.0f || fac < 0.0f) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "quat.slerp(): " "interpolation factor must be between 0.0 and 1.0"); return NULL; @@ -582,7 +582,7 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb return -1; if(size != (end - begin)){ - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "quaternion[begin:end] = []: " "size mismatch in slice assignment"); return -1; @@ -620,7 +620,7 @@ static PyObject *Quaternion_subscript(QuaternionObject *self, PyObject *item) return Quaternion_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with quaternions"); return NULL; } @@ -653,7 +653,7 @@ static int Quaternion_ass_subscript(QuaternionObject *self, PyObject *item, PyOb if (step == 1) return Quaternion_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with quaternion"); return -1; } @@ -675,7 +675,7 @@ static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) QuaternionObject *quat1 = NULL, *quat2 = NULL; if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Quaternion addition: " "arguments not valid for this operation"); return NULL; @@ -698,7 +698,7 @@ static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) QuaternionObject *quat1 = NULL, *quat2 = NULL; if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "Quaternion addition: " "arguments not valid for this operation"); return NULL; @@ -1142,9 +1142,7 @@ PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, - "Quaternion(): invalid type, internal error"); - return NULL; + Py_FatalError("Quaternion(): invalid type!"); } } return (PyObject *) self; diff --git a/source/blender/python/generic/mathutils_Vector.c b/source/blender/python/generic/mathutils_Vector.c index b8fdc2f0890..a834e8f2ba4 100644 --- a/source/blender/python/generic/mathutils_Vector.c +++ b/source/blender/python/generic/mathutils_Vector.c @@ -442,8 +442,7 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) } } else { - PyErr_SetString(PyExc_ValueError, - axis_err_msg); + PyErr_SetString(PyExc_ValueError, axis_err_msg); return NULL; } } @@ -667,7 +666,7 @@ static PyObject *Vector_rotation_difference(VectorObject *self, PyObject *value) float quat[4], vec_a[3], vec_b[3]; if(self->size < 3) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "vec.difference(value): " "expects both vectors to be size 3 or 4"); return NULL; @@ -1094,7 +1093,7 @@ static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject vec_cpy[3] = 1.0f; } else { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_TypeError, "matrix * vector: " "matrix.row_size and len(vector) must be the same, " "except for 3D vector * 4x4 matrix."); @@ -1147,7 +1146,7 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) double dot = 0.0f; if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "Vector multiplication: " "vectors must have the same dimensions for this operation"); return NULL; @@ -1177,7 +1176,7 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) float tvec[3]; if(vec1->size != 3) { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "Vector multiplication: " "only 3D vector rotations (with quats) currently supported"); return NULL; @@ -1235,7 +1234,7 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) QuaternionObject *quat2 = (QuaternionObject*)v2; if(vec->size != 3) { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "Vector multiplication: " "only 3D vector rotations (with quats) currently supported"); return NULL; @@ -1485,7 +1484,7 @@ static PyObject *Vector_subscript(VectorObject* self, PyObject* item) return Vector_slice(self, start, stop); } else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with vectors"); return NULL; } @@ -1517,7 +1516,7 @@ static int Vector_ass_subscript(VectorObject* self, PyObject* item, PyObject* va if (step == 1) return Vector_ass_slice(self, start, stop, value); else { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_IndexError, "slice steps not supported with vectors"); return -1; } @@ -1620,7 +1619,7 @@ static int Vector_setLength(VectorObject *self, PyObject *value) } if (param < 0.0) { - PyErr_SetString(PyExc_TypeError, + PyErr_SetString(PyExc_ValueError, "cannot set a vectors length to a negative value"); return -1; } @@ -2174,7 +2173,7 @@ static int row_vector_multiplication(float rvec[4], VectorObject* vec, MatrixObj if(mat->colSize != vec_size){ if(mat->colSize == 4 && vec_size != 3){ - PyErr_SetString(PyExc_AttributeError, + PyErr_SetString(PyExc_ValueError, "vector * matrix: matrix column size " "and the vector size must be the same"); return -1; @@ -2390,9 +2389,7 @@ PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObje self->wrapped = Py_NEW; } else { - PyErr_SetString(PyExc_RuntimeError, - "Vector(): invalid type, internal error"); - return NULL; + Py_FatalError("Vector(): invalid type!"); } } return (PyObject *) self; diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 601daf01d00..d2724f6603e 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -556,7 +556,7 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec } if(ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { - PyErr_SetString(PyExc_RuntimeError, + PyErr_SetString(PyExc_ValueError, "geometry.intersect_line_plane(...): " " can't use 2D Vectors"); return NULL; @@ -614,7 +614,7 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje } if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { - PyErr_SetString(PyExc_RuntimeError, + PyErr_SetString(PyExc_ValueError, "geometry.intersect_line_sphere(...): " " can't use 2D Vectors"); return NULL; @@ -881,6 +881,7 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) box->h= (float)PyFloat_AsDouble(item_2); box->index= i; + /* accounts for error case too and overwrites with own error */ if (box->w < 0.0f || box->h < 0.0f) { MEM_freeN(*boxarray); PyErr_SetString(PyExc_TypeError, @@ -1075,7 +1076,7 @@ static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObje vec_t3_tar->size != 3) { PyErr_SetString(PyExc_ValueError, - "One of more of the vector arguments wasnt a 3D vector"); + "One of more of the vector arguments wasn't a 3D vector"); return NULL; } -- cgit v1.2.3 From cc1ba4569ccdb77a9371140def316caecac71da5 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 14 Jul 2011 21:20:45 +0000 Subject: more consistent and modal-friendly ndof events, fly mode v1 --- source/blender/editors/space_view3d/view3d_edit.c | 182 +++++++++++++-------- source/blender/editors/space_view3d/view3d_fly.c | 149 +++++++++++++++-- .../blender/editors/space_view3d/view3d_intern.h | 3 + source/blender/windowmanager/WM_types.h | 27 +-- .../blender/windowmanager/intern/wm_event_system.c | 2 + 5 files changed, 263 insertions(+), 100 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index fc84944da02..bfbff8a4906 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -929,10 +929,30 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; } -#if 0 // NDOF utility functions +// NDOF utility functions +// (should these functions live in this file?) +float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]) + { + const float x = ndof->rx; + const float y = ndof->ry; + const float z = ndof->rz; + + float angular_velocity = sqrtf(x*x + y*y + z*z); + float angle = ndof->dt * angular_velocity; + + float scale = 1.f / angular_velocity; + + // normalize + axis[0] = scale * x; + axis[1] = scale * y; + axis[2] = scale * z; + + return angle; + } + +#if 0 // unused utility functions // returns angular velocity (0..1), fills axis of rotation -// (shouldn't live in this file!) -static float ndof_to_angle_axis(const float ndof[3], float axis[3]) +float ndof_to_angle_axis(const float ndof[3], float axis[3]) { const float x = ndof[0]; const float y = ndof[1]; @@ -960,7 +980,7 @@ static float ndof_to_angular_velocity(wmNDOFMotionData* ndof) } #endif -static void ndof_to_quat(wmNDOFMotionData* ndof, float q[4]) +void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) { const float x = ndof->rx; const float y = ndof->ry; @@ -988,6 +1008,8 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + const float dt = ndof->dt; + // tune these until everything feels right const float rot_sensitivity = 1.f; const float zoom_sensitivity = 1.f; @@ -996,12 +1018,6 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) // rather have bool, but... int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); - float dt = ndof->dt; - if (dt > 0.25f) - /* this is probably the first event for this motion, so set dt to something reasonable */ - /* TODO: replace such guesswork with a flag or field from the NDOF manager */ - ndof->dt = dt = 0.0125f; - //#define DEBUG_NDOF_MOTION #ifdef DEBUG_NDOF_MOTION printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", @@ -1086,41 +1102,109 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -#if 0 // not ready +#if 0 +// statics for controlling rv3d->dist corrections. +// viewmoveNDOF zeros and adjusts rv3d->ofs. +// viewmove restores based on dz_flag state. + +static int dz_flag = 0; +static float m_dist; + +static void mouse_rotation_workaround_push(RegionView3D* rv3d) +{ + // This is due to a side effect of the original + // mouse view rotation code. The rotation point is + // set a distance in front of the viewport to + // make rotating with the mouse look better. + // The distance effect is written at a low level + // in the view management instead of the mouse + // view function. This means that all other view + // movement devices must subtract this from their + // view transformations. + + float mat[3][3]; + float upvec[3]; + + if(rv3d->dist != 0.0) { + dz_flag = 1; + m_dist = rv3d->dist; + upvec[0] = upvec[1] = 0; + upvec[2] = rv3d->dist; + copy_m3_m4(mat, rv3d->viewinv); + mul_m3_v3(mat, upvec); + sub_v3_v3(rv3d->ofs, upvec); + rv3d->dist = 0.0; + } + + // this is still needed in version 2.5 [mce] + // warning! current viewmove does not look at dz_flag or m_dist + // don't expect 2D mouse to work properly right after using 3D mouse +} + +static void mouse_rotation_workaround_pop(RegionView3D* rv3d) +{ + if (dz_flag) { + dz_flag = 0; + rv3d->dist = m_dist; + } +} + static int ndof_fly_invoke(bContext *C, wmOperator *op, wmEvent *event) { RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - const int shouldRotate = 0, shouldMove = 1; + const int shouldRotate = 1, shouldTranslate = 0; + + const float dt = ndof->dt; - float dt = ndof->dt; - if (dt > 0.25f) - /* this is probably the first event for this motion, so set dt to something reasonable */ - /* TODO: replace such guesswork with a flag or field from the NDOF manager */ - ndof->dt = dt = 0.0125f; + float view_inv[4]; + invert_qt_qt(view_inv, rv3d->viewquat); if (shouldRotate) { const float turn_sensitivity = 1.f; float rot[4]; + float view_inv_conj[4]; + mouse_rotation_workaround_push(rv3d); + ndof_to_quat(ndof, rot); + copy_qt_qt(view_inv_conj, view_inv); + conjugate_qt(view_inv_conj); + + // transform rotation from view to world coordinates + mul_qt_qtqt(rot, view_inv, rot); + mul_qt_qtqt(rot, rot, view_inv_conj); + + // apply rotation to view offset (focal point) + mul_qt_v3(rot, rv3d->ofs); +// mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + rv3d->view = RV3D_VIEW_USER; } - if (shouldMove) + if (shouldTranslate) { const float forward_sensitivity = 1.f; const float vertical_sensitivity = 1.f; const float lateral_sensitivity = 1.f; - + float trans[3] = { - lateral_sensitivity * dt * ndof->tx, - vertical_sensitivity * dt * ndof->ty, - forward_sensitivity * rv3d->dist * dt * ndof->tz + lateral_sensitivity * ndof->tx, + vertical_sensitivity * ndof->ty, + forward_sensitivity * ndof->tz }; + +// mul_v3_fl(trans, rv3d->dist * dt); + mul_v3_fl(trans, dt); + + /* transform motion from view to world coordinates */ + mul_qt_v3(view_inv, trans); + + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, trans); } ED_region_tag_redraw(CTX_wm_region(C)); @@ -1141,9 +1225,7 @@ static void getndof(wmNDOFMotionData* indof, float* outdof) const float vertical_sensitivity = 1.6f; const float lateral_sensitivity = 2.5f; - const float dt = (indof->dt < 0.25f) ? indof->dt : 0.0125f; - // this is probably the first event for this motion, so set dt to something reasonable - // TODO: replace such guesswork with a flag or field from the NDOF manager + const float dt = indof->dt; outdof[0] = lateral_sensitivity * dt * indof->tx; outdof[1] = vertical_sensitivity * dt * indof->ty; @@ -1154,51 +1236,6 @@ static void getndof(wmNDOFMotionData* indof, float* outdof) outdof[5] = turn_sensitivity * dt * indof->rz; } -// statics for controlling rv3d->dist corrections. -// viewmoveNDOF zeros and adjusts rv3d->ofs. -// viewmove restores based on dz_flag state. - -static int dz_flag = 0; -static float m_dist; - -static void mouse_rotation_workaround_push(RegionView3D* rv3d) -{ - // This is due to a side effect of the original - // mouse view rotation code. The rotation point is - // set a distance in front of the viewport to - // make rotating with the mouse look better. - // The distance effect is written at a low level - // in the view management instead of the mouse - // view function. This means that all other view - // movement devices must subtract this from their - // view transformations. - - float mat[3][3]; - float upvec[3]; - - if(rv3d->dist != 0.0) { - dz_flag = 1; - m_dist = rv3d->dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - sub_v3_v3(rv3d->ofs, upvec); - rv3d->dist = 0.0; - } - - // this is still needed in version 2.5 [mce] - // warning! current viewmove does not look at dz_flag or m_dist - // don't expect 2D mouse to work properly right after using 3D mouse -} - -static void mouse_rotation_workaround_pop(RegionView3D* rv3d) -{ - if (dz_flag) { - dz_flag = 0; - rv3d->dist = m_dist; - } -} static int ndof_oldfly_invoke(bContext *C, wmOperator *op, wmEvent *event) { @@ -1254,7 +1291,7 @@ static int ndof_oldfly_invoke(bContext *C, wmOperator *op, wmEvent *event) // translate the view sub_v3_v3(rv3d->ofs, tvec); - mouse_rotation_workaround_pop(rv3d); +// mouse_rotation_workaround_pop(rv3d); // back to 2.5 land! ED_region_tag_redraw(CTX_wm_region(C)); @@ -1272,8 +1309,9 @@ void VIEW3D_OT_ndof(struct wmOperatorType *ot) ot->idname = "VIEW3D_OT_ndof"; /* api callbacks */ -// ot->invoke = ndof_oldfly_invoke; ot->invoke = ndof_orbit_invoke; +// ot->invoke = ndof_fly_invoke; +// ot->invoke = ndof_oldfly_invoke; ot->poll = ED_operator_view3d_active; /* flags */ diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index ed1ed5b3881..00adfa13e28 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -158,7 +158,9 @@ typedef struct FlyInfo { short state; short use_precision; short redraw; - int mval[2]; + + int mval[2]; /* latest 2D mouse values */ + wmNDOFMotionData* ndof; /* latest 3D mouse values */ /* fly state state */ float speed; /* the speed the view is moving per redraw */ @@ -257,6 +259,8 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->ar = CTX_wm_region(C); fly->scene= CTX_data_scene(C); + puts("\n-- fly begin --"); + if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) { BKE_report(op->reports, RPT_ERROR, "Cannot fly a camera from an external library"); return FALSE; @@ -282,12 +286,14 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->zlock_momentum=0.0f; fly->grid= 1.0f; fly->use_precision= 0; + fly->redraw= 1; fly->dvec_prev[0]= fly->dvec_prev[1]= fly->dvec_prev[2]= 0.0f; fly->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); VECCOPY2D(fly->mval, event->mval) + fly->ndof = NULL; fly->time_lastdraw= fly->time_lastwheel= PIL_check_seconds_timer(); @@ -329,8 +335,17 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even /* perspective or ortho */ if (fly->rv3d->persp==RV3D_ORTHO) fly->rv3d->persp= RV3D_PERSP; /*if ortho projection, make perspective */ + copy_qt_qt(fly->rot_backup, fly->rv3d->viewquat); copy_v3_v3(fly->ofs_backup, fly->rv3d->ofs); + + /* the dist defines a vector that is infront of the offset + to rotate the view about. + this is no good for fly mode because we + want to rotate about the viewers center. + but to correct the dist removal we must + alter offset so the view doesn't jump. */ + fly->rv3d->dist= 0.0f; upvec[2]= fly->dist_backup; /*x and y are 0*/ @@ -338,7 +353,6 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even sub_v3_v3(fly->rv3d->ofs, upvec); /*Done with correcting for the dist*/ } - /* center the mouse, probably the UI mafia are against this but without its quite annoying */ WM_cursor_warp(CTX_wm_window(C), fly->ar->winrct.xmin + fly->ar->winx/2, fly->ar->winrct.ymin + fly->ar->winy/2); @@ -356,6 +370,8 @@ static int flyEnd(bContext *C, FlyInfo *fly) if(fly->state == FLY_RUNNING) return OPERATOR_RUNNING_MODAL; + puts("\n-- fly end --"); + WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), fly->timer); ED_region_draw_cb_exit(fly->ar->type, fly->draw_handle_pixel); @@ -401,6 +417,9 @@ static int flyEnd(bContext *C, FlyInfo *fly) if(fly->obtfm) MEM_freeN(fly->obtfm); + if(fly->ndof) + MEM_freeN(fly->ndof); + if(fly->state == FLY_CONFIRM) { MEM_freeN(fly); return OPERATOR_FINISHED; @@ -412,12 +431,46 @@ static int flyEnd(bContext *C, FlyInfo *fly) static void flyEvent(FlyInfo *fly, wmEvent *event) { - if (event->type == TIMER && event->customdata == fly->timer) { - fly->redraw = 1; - } - else if (event->type == MOUSEMOVE) { + if (event->type == MOUSEMOVE) { VECCOPY2D(fly->mval, event->mval); - } /* handle modal keymap first */ + } + else if (event->type == NDOF_MOTION) { + // do these automagically get delivered? yes. + // puts("ndof motion detected in fly mode!"); + // static const char* tag_name = "3D mouse position"; + + wmNDOFMotionData* incoming_ndof = (wmNDOFMotionData*) event->customdata; + switch (incoming_ndof->progress) + { + case P_STARTING: + // start keeping track of 3D mouse position + puts("start keeping track of 3D mouse position"); + // fall through... + case P_IN_PROGRESS: + // update 3D mouse position + putchar('.'); fflush(stdout); + if (fly->ndof == NULL) + // fly->ndof = MEM_mallocN(sizeof(wmNDOFMotionData), tag_name); + fly->ndof = MEM_dupallocN(incoming_ndof); + // fly->ndof = malloc(sizeof(wmNDOFMotionData)); + else + memcpy(fly->ndof, incoming_ndof, sizeof(wmNDOFMotionData)); + break; + case P_FINISHING: + // stop keeping track of 3D mouse position + puts("stop keeping track of 3D mouse position"); + if (fly->ndof) + { + MEM_freeN(fly->ndof); + // free(fly->ndof); + fly->ndof = NULL; + } + break; + default: + ; // should always be one of the above 3 + } + } + /* handle modal keymap first */ else if (event->type == EVT_MODAL_MAP) { switch (event->val) { case FLY_MODAL_CANCEL: @@ -528,7 +581,6 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) case FLY_MODAL_PRECISION_DISABLE: fly->use_precision= FALSE; break; - } } } @@ -567,16 +619,12 @@ static int flyApply(bContext *C, FlyInfo *fly) unsigned char apply_rotation= 1; /* if the user presses shift they can look about without movinf the direction there looking*/ + static unsigned int iteration = 1; + printf("fly timer %d\n", iteration++); + if(fly->root_parent) ED_view3d_to_m4(prev_view_mat, fly->rv3d->ofs, fly->rv3d->viewquat, fly->rv3d->dist); - /* the dist defines a vector that is infront of the offset - to rotate the view about. - this is no good for fly mode because we - want to rotate about the viewers center. - but to correct the dist removal we must - alter offset so the view doesn't jump. */ - xmargin= ar->winx/20.0f; ymargin= ar->winy/20.0f; @@ -622,6 +670,8 @@ static int flyApply(bContext *C, FlyInfo *fly) float time_redraw; float time_redraw_clamped; + fly->redraw= 1; + time_current= PIL_check_seconds_timer(); time_redraw= (float)(time_current - fly->time_lastdraw); time_redraw_clamped= MIN2(0.05f, time_redraw); /* clamt the redraw time to avoid jitter in roll correction */ @@ -854,11 +904,69 @@ static int flyApply(bContext *C, FlyInfo *fly) copy_v3_v3(fly->dvec_prev, dvec); } -/* moved to flyEnd() */ - return OPERATOR_FINISHED; } +static int flyApply_ndof(bContext *C, FlyInfo *fly) +{ + // shorthand for oft-used variables + wmNDOFMotionData* ndof = fly->ndof; + const float dt = ndof->dt; + RegionView3D* rv3d = fly->rv3d; + + const int shouldRotate = 1, shouldTranslate = 1; + + float view_inv[4]; + invert_qt_qt(view_inv, rv3d->viewquat); + + if (shouldRotate) + { + const float turn_sensitivity = 1.f; + + float rotation[4]; + float axis[3]; + float angle = turn_sensitivity * ndof_to_angle_axis(ndof, axis); + + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); + + // apply rotation to view + axis_angle_to_quat(rotation, axis, angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + + rv3d->view = RV3D_VIEW_USER; + + fly->redraw = 1; + } + + if (shouldTranslate) + { + const float forward_sensitivity = 1.f; + const float vertical_sensitivity = 0.4f; + const float lateral_sensitivity = 0.6f; + + float speed = 10.f; // blender units per second + // ^^ this is ok for default cube scene, but should scale with.. something + + float trans[3] = { + lateral_sensitivity * ndof->tx, + vertical_sensitivity * ndof->ty, + forward_sensitivity * ndof->tz + }; + + mul_v3_fl(trans, speed * dt); + + // transform motion from view to world coordinates + mul_qt_v3(view_inv, trans); + + // move center of view opposite of hand motion (this is camera mode, not object mode) + sub_v3_v3(rv3d->ofs, trans); + + fly->redraw = 1; + } + + return OPERATOR_FINISHED; +} static int fly_invoke(bContext *C, wmOperator *op, wmEvent *event) @@ -908,7 +1016,12 @@ static int fly_modal(bContext *C, wmOperator *op, wmEvent *event) flyEvent(fly, event); - if(event->type==TIMER && event->customdata == fly->timer) + if (fly->ndof) // 3D mouse overrules [2D mouse + timer] + { + if (event->type==NDOF_MOTION) + flyApply_ndof(C, fly); + } + else if (event->type==TIMER && event->customdata == fly->timer) flyApply(C, fly); do_draw |= fly->redraw; diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 1a148481031..3658a481bdf 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -51,6 +51,7 @@ struct ARegionType; struct bPoseChannel; struct bAnimVizSettings; struct bMotionPath; +struct wmNDOFMotionData; #define BL_NEAR_CLIP 0.001 @@ -92,6 +93,8 @@ void VIEW3D_OT_zoom_border(struct wmOperatorType *ot); void VIEW3D_OT_drawtype(struct wmOperatorType *ot); void view3d_boxview_copy(ScrArea *sa, ARegion *ar); +void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]); +float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]); /* view3d_fly.c */ void view3d_keymap(struct wmKeyConfig *keyconf); diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 26c394a2ad3..7476410ec19 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -377,17 +377,24 @@ typedef struct wmTabletData { float Ytilt; /* as above */ } wmTabletData; -typedef struct { +typedef enum { // motion progress, for modal handlers + P_NOT_STARTED, + P_STARTING, // <-- + P_IN_PROGRESS, // <-- only these are sent for NDOF motion + P_FINISHING, // <-- + P_FINISHED + } wmProgress; + +typedef struct wmNDOFMotionData { /* awfully similar to GHOST_TEventNDOFMotionData... */ - - /* Each component normally ranges from -1 to +1, but can exceed that. */ - - float tx, ty, tz; /* translation: -x left, +y forward, -z up */ - float rx, ry, rz; /* rotation: - axis = (rx,ry,rz).normalized - amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */ - - float dt; // time since previous NDOF Motion event (or zero if this is the first) + // Each component normally ranges from -1 to +1, but can exceed that. + // These use blender standard view coordinates, with positive rotations being CCW about the axis. + float tx, ty, tz; // translation + float rx, ry, rz; // rotation: + // axis = (rx,ry,rz).normalized + // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] + float dt; // time since previous NDOF Motion event + wmProgress progress; // is this the first event, the last, or one of many in between? } wmNDOFMotionData; typedef struct wmTimer { diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index b41eebc5298..c2df53c9e91 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2324,6 +2324,8 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g data->dt = ghost->dt; + data->progress = (wmProgress) ghost->progress; + event->custom = EVT_DATA_NDOF_MOTION; event->customdata = data; event->customdatafree = 1; -- cgit v1.2.3 From b0c8abf04e6af902827913e09c245efa690ce5c4 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 14 Jul 2011 22:01:09 +0000 Subject: removed unused ndof code --- source/blender/editors/space_view3d/view3d_edit.c | 234 +--------------------- 1 file changed, 1 insertion(+), 233 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index bfbff8a4906..0c07df9fd01 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -950,36 +950,6 @@ float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]) return angle; } -#if 0 // unused utility functions -// returns angular velocity (0..1), fills axis of rotation -float ndof_to_angle_axis(const float ndof[3], float axis[3]) - { - const float x = ndof[0]; - const float y = ndof[1]; - const float z = ndof[2]; - - float angular_velocity = sqrtf(x*x + y*y + z*z); - - float scale = 1.f / angular_velocity; - - // normalize - axis[0] = scale * x; - axis[1] = scale * y; - axis[2] = scale * z; - - return angular_velocity; - } - -static float ndof_to_angular_velocity(wmNDOFMotionData* ndof) - { - const float x = ndof->rx; - const float y = ndof->ry; - const float z = ndof->rz; - - return sqrtf(x*x + y*y + z*z); - } -#endif - void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) { const float x = ndof->rx; @@ -999,11 +969,10 @@ void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) q[3] = scale * z; } -// Mike's original version: +static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) // -- "orbit" navigation (trackball/turntable) // -- zooming // -- panning in rotationally-locked views -static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) { RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; @@ -1102,205 +1071,6 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -#if 0 -// statics for controlling rv3d->dist corrections. -// viewmoveNDOF zeros and adjusts rv3d->ofs. -// viewmove restores based on dz_flag state. - -static int dz_flag = 0; -static float m_dist; - -static void mouse_rotation_workaround_push(RegionView3D* rv3d) -{ - // This is due to a side effect of the original - // mouse view rotation code. The rotation point is - // set a distance in front of the viewport to - // make rotating with the mouse look better. - // The distance effect is written at a low level - // in the view management instead of the mouse - // view function. This means that all other view - // movement devices must subtract this from their - // view transformations. - - float mat[3][3]; - float upvec[3]; - - if(rv3d->dist != 0.0) { - dz_flag = 1; - m_dist = rv3d->dist; - upvec[0] = upvec[1] = 0; - upvec[2] = rv3d->dist; - copy_m3_m4(mat, rv3d->viewinv); - mul_m3_v3(mat, upvec); - sub_v3_v3(rv3d->ofs, upvec); - rv3d->dist = 0.0; - } - - // this is still needed in version 2.5 [mce] - // warning! current viewmove does not look at dz_flag or m_dist - // don't expect 2D mouse to work properly right after using 3D mouse -} - -static void mouse_rotation_workaround_pop(RegionView3D* rv3d) -{ - if (dz_flag) { - dz_flag = 0; - rv3d->dist = m_dist; - } -} - -static int ndof_fly_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - RegionView3D* rv3d = CTX_wm_region_view3d(C); - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - - const int shouldRotate = 1, shouldTranslate = 0; - - const float dt = ndof->dt; - - float view_inv[4]; - invert_qt_qt(view_inv, rv3d->viewquat); - - if (shouldRotate) - { - const float turn_sensitivity = 1.f; - - float rot[4]; - float view_inv_conj[4]; - mouse_rotation_workaround_push(rv3d); - - ndof_to_quat(ndof, rot); - - copy_qt_qt(view_inv_conj, view_inv); - conjugate_qt(view_inv_conj); - - // transform rotation from view to world coordinates - mul_qt_qtqt(rot, view_inv, rot); - mul_qt_qtqt(rot, rot, view_inv_conj); - - // apply rotation to view offset (focal point) - mul_qt_v3(rot, rv3d->ofs); -// mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - - rv3d->view = RV3D_VIEW_USER; - } - - if (shouldTranslate) - { - const float forward_sensitivity = 1.f; - const float vertical_sensitivity = 1.f; - const float lateral_sensitivity = 1.f; - - float trans[3] = { - lateral_sensitivity * ndof->tx, - vertical_sensitivity * ndof->ty, - forward_sensitivity * ndof->tz - }; - -// mul_v3_fl(trans, rv3d->dist * dt); - mul_v3_fl(trans, dt); - - /* transform motion from view to world coordinates */ - mul_qt_v3(view_inv, trans); - - /* move center of view opposite of hand motion (this is camera mode, not object mode) */ - sub_v3_v3(rv3d->ofs, trans); - } - - ED_region_tag_redraw(CTX_wm_region(C)); - - return OPERATOR_FINISHED; -} - -// BEGIN old fly code -// derived from blender 2.4 - -static void getndof(wmNDOFMotionData* indof, float* outdof) -{ - // Rotations feel relatively faster than translations only in fly mode, so - // we have no choice but to fix that here (not in the plugins) - const float turn_sensitivity = 0.8f; - - const float forward_sensitivity = 2.5f; - const float vertical_sensitivity = 1.6f; - const float lateral_sensitivity = 2.5f; - - const float dt = indof->dt; - - outdof[0] = lateral_sensitivity * dt * indof->tx; - outdof[1] = vertical_sensitivity * dt * indof->ty; - outdof[2] = forward_sensitivity * dt * indof->tz; - - outdof[3] = turn_sensitivity * dt * indof->rx; - outdof[4] = turn_sensitivity * dt * indof->ry; - outdof[5] = turn_sensitivity * dt * indof->rz; -} - - -static int ndof_oldfly_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - RegionView3D* rv3d = CTX_wm_region_view3d(C); - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - - float phi; - float dval[6]; - float tvec[3], rvec[3]; - float q1[4]; - float mat[3][3]; - - // fetch the current state of the ndof device - getndof(ndof, dval); - - // force perspective mode. This is a hack and is - // incomplete. It doesn't actually affect the view - // until the first draw and doesn't update the menu - // to reflect persp mode. - rv3d->persp = RV3D_PERSP; - - // Correct the distance jump if rv3d->dist != 0 - mouse_rotation_workaround_push(rv3d); - - // Apply rotation - rvec[0] = dval[3]; - rvec[1] = dval[4]; - rvec[2] = dval[5]; - - // rotate device x and y by view z - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, rvec); - - // rotate the view - phi = normalize_v3(rvec); - if(phi != 0) { - axis_angle_to_quat(q1,rvec,phi); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - } - - // Apply translation - tvec[0] = dval[0]; - tvec[1] = dval[1]; - tvec[2] = dval[2]; - - // the next three lines rotate the x and y translation coordinates - // by the current z axis angle - copy_m3_m4(mat, rv3d->viewinv); - mat[2][2] = 0.0f; - mul_m3_v3(mat, tvec); - - // translate the view - sub_v3_v3(rv3d->ofs, tvec); - -// mouse_rotation_workaround_pop(rv3d); - - // back to 2.5 land! - ED_region_tag_redraw(CTX_wm_region(C)); - return OPERATOR_FINISHED; -} - -// END old fly code -#endif - void VIEW3D_OT_ndof(struct wmOperatorType *ot) { /* identifiers */ @@ -1310,8 +1080,6 @@ void VIEW3D_OT_ndof(struct wmOperatorType *ot) /* api callbacks */ ot->invoke = ndof_orbit_invoke; -// ot->invoke = ndof_fly_invoke; -// ot->invoke = ndof_oldfly_invoke; ot->poll = ED_operator_view3d_active; /* flags */ -- cgit v1.2.3 From 5ff9acfd28211d90045e9dc08da7790099b9c462 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 15 Jul 2011 00:39:49 +0000 Subject: Fix for [#27307] Blender crashes when loading a new scene while baking fluid dynamics * Fluid bakes didn't respect the job stop flag. * Also made msvc happy with some casts. --- source/blender/editors/physics/physics_fluid.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index b573c77c7f3..37309f1e07c 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -722,15 +722,17 @@ typedef struct FluidBakeJob { static void fluidbake_free(void *customdata) { - FluidBakeJob *fb= customdata; + FluidBakeJob *fb= (FluidBakeJob *)customdata; MEM_freeN(fb); } /* called by fluidbake, only to check job 'stop' value */ -static int fluidbake_breakjob(void *UNUSED(customdata)) +static int fluidbake_breakjob(void *customdata) { - //FluidBakeJob *fb= (FluidBakeJob *)customdata; - //return *(fb->stop); + FluidBakeJob *fb= (FluidBakeJob *)customdata; + + if(fb->stop && *(fb->stop)) + return 1; /* this is not nice yet, need to make the jobs list template better * for identifying/acting upon various different jobs */ @@ -741,7 +743,7 @@ static int fluidbake_breakjob(void *UNUSED(customdata)) /* called by fluidbake, wmJob sends notifier */ static void fluidbake_updatejob(void *customdata, float progress) { - FluidBakeJob *fb= customdata; + FluidBakeJob *fb= (FluidBakeJob *)customdata; *(fb->do_update)= 1; *(fb->progress)= progress; @@ -749,7 +751,7 @@ static void fluidbake_updatejob(void *customdata, float progress) static void fluidbake_startjob(void *customdata, short *stop, short *do_update, float *progress) { - FluidBakeJob *fb= customdata; + FluidBakeJob *fb= (FluidBakeJob *)customdata; fb->stop= stop; fb->do_update = do_update; @@ -764,7 +766,7 @@ static void fluidbake_startjob(void *customdata, short *stop, short *do_update, static void fluidbake_endjob(void *customdata) { - FluidBakeJob *fb= customdata; + FluidBakeJob *fb= (FluidBakeJob *)customdata; if (fb->settings) { MEM_freeN(fb->settings); -- cgit v1.2.3 From 3a6158a8bf2b5518ef3a126b003debeba6bbea90 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 15 Jul 2011 04:01:47 +0000 Subject: move mathutils into its own lib. --- source/blender/python/CMakeLists.txt | 1 + source/blender/python/SConscript | 11 +- source/blender/python/generic/CMakeLists.txt | 14 - source/blender/python/generic/mathutils.c | 384 ---- source/blender/python/generic/mathutils.h | 111 - source/blender/python/generic/mathutils_Color.c | 870 ------- source/blender/python/generic/mathutils_Color.h | 55 - source/blender/python/generic/mathutils_Euler.c | 725 ------ source/blender/python/generic/mathutils_Euler.h | 60 - source/blender/python/generic/mathutils_Matrix.c | 2042 ----------------- source/blender/python/generic/mathutils_Matrix.h | 63 - .../blender/python/generic/mathutils_Quaternion.c | 1164 ---------- .../blender/python/generic/mathutils_Quaternion.h | 55 - source/blender/python/generic/mathutils_Vector.c | 2411 -------------------- source/blender/python/generic/mathutils_Vector.h | 52 - source/blender/python/generic/mathutils_geometry.c | 1126 --------- source/blender/python/generic/mathutils_geometry.h | 43 - source/blender/python/intern/bpy.c | 4 +- source/blender/python/intern/bpy_interface.c | 8 +- source/blender/python/intern/bpy_rna.c | 2 +- source/blender/python/mathutils/CMakeLists.txt | 52 + source/blender/python/mathutils/mathutils.c | 384 ++++ source/blender/python/mathutils/mathutils.h | 111 + source/blender/python/mathutils/mathutils_Color.c | 870 +++++++ source/blender/python/mathutils/mathutils_Color.h | 55 + source/blender/python/mathutils/mathutils_Euler.c | 721 ++++++ source/blender/python/mathutils/mathutils_Euler.h | 60 + source/blender/python/mathutils/mathutils_Matrix.c | 2041 +++++++++++++++++ source/blender/python/mathutils/mathutils_Matrix.h | 63 + .../python/mathutils/mathutils_Quaternion.c | 1164 ++++++++++ .../python/mathutils/mathutils_Quaternion.h | 55 + source/blender/python/mathutils/mathutils_Vector.c | 2410 +++++++++++++++++++ source/blender/python/mathutils/mathutils_Vector.h | 52 + .../blender/python/mathutils/mathutils_geometry.c | 1135 +++++++++ .../blender/python/mathutils/mathutils_geometry.h | 43 + 35 files changed, 9233 insertions(+), 9184 deletions(-) delete mode 100644 source/blender/python/generic/mathutils.c delete mode 100644 source/blender/python/generic/mathutils.h delete mode 100644 source/blender/python/generic/mathutils_Color.c delete mode 100644 source/blender/python/generic/mathutils_Color.h delete mode 100644 source/blender/python/generic/mathutils_Euler.c delete mode 100644 source/blender/python/generic/mathutils_Euler.h delete mode 100644 source/blender/python/generic/mathutils_Matrix.c delete mode 100644 source/blender/python/generic/mathutils_Matrix.h delete mode 100644 source/blender/python/generic/mathutils_Quaternion.c delete mode 100644 source/blender/python/generic/mathutils_Quaternion.h delete mode 100644 source/blender/python/generic/mathutils_Vector.c delete mode 100644 source/blender/python/generic/mathutils_Vector.h delete mode 100644 source/blender/python/generic/mathutils_geometry.c delete mode 100644 source/blender/python/generic/mathutils_geometry.h create mode 100644 source/blender/python/mathutils/CMakeLists.txt create mode 100644 source/blender/python/mathutils/mathutils.c create mode 100644 source/blender/python/mathutils/mathutils.h create mode 100644 source/blender/python/mathutils/mathutils_Color.c create mode 100644 source/blender/python/mathutils/mathutils_Color.h create mode 100644 source/blender/python/mathutils/mathutils_Euler.c create mode 100644 source/blender/python/mathutils/mathutils_Euler.h create mode 100644 source/blender/python/mathutils/mathutils_Matrix.c create mode 100644 source/blender/python/mathutils/mathutils_Matrix.h create mode 100644 source/blender/python/mathutils/mathutils_Quaternion.c create mode 100644 source/blender/python/mathutils/mathutils_Quaternion.h create mode 100644 source/blender/python/mathutils/mathutils_Vector.c create mode 100644 source/blender/python/mathutils/mathutils_Vector.h create mode 100644 source/blender/python/mathutils/mathutils_geometry.c create mode 100644 source/blender/python/mathutils/mathutils_geometry.h (limited to 'source/blender') diff --git a/source/blender/python/CMakeLists.txt b/source/blender/python/CMakeLists.txt index fe9e0307703..8071edb378f 100644 --- a/source/blender/python/CMakeLists.txt +++ b/source/blender/python/CMakeLists.txt @@ -18,3 +18,4 @@ add_subdirectory(intern) add_subdirectory(generic) +add_subdirectory(mathutils) diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript index de6b859d259..3d17e113a8a 100644 --- a/source/blender/python/SConscript +++ b/source/blender/python/SConscript @@ -1,6 +1,6 @@ #!/usr/bin/python -# TODO, split into 2 files. +# TODO, split into 3 files. Import ('env') @@ -18,7 +18,14 @@ if is_debug: defs.append('_DEBUG') sources = env.Glob('generic/*.c') -env.BlenderLib( libname = 'bf_python_ext', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [362,165]) # ketsji is 360 +env.BlenderLib( libname = 'bf_python_ext', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [363,165]) # ketsji is 360 + + +# mathutils +defs = [] + +sources = env.Glob('mathutils/*.c') +env.BlenderLib( libname = 'bf_python_mathutils', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [361,165]) # bpy diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt index 0889c77f9ad..794b31b4ed3 100644 --- a/source/blender/python/generic/CMakeLists.txt +++ b/source/blender/python/generic/CMakeLists.txt @@ -37,13 +37,6 @@ set(SRC bgl.c blf_py_api.c bpy_internal_import.c - mathutils.c - mathutils_Color.c - mathutils_Euler.c - mathutils_Matrix.c - mathutils_Quaternion.c - mathutils_Vector.c - mathutils_geometry.c noise_py_api.c py_capi_utils.c @@ -51,13 +44,6 @@ set(SRC bgl.h blf_py_api.h bpy_internal_import.h - mathutils.h - mathutils_Color.h - mathutils_Euler.h - mathutils_Matrix.h - mathutils_Quaternion.h - mathutils_Vector.h - mathutils_geometry.h noise_py_api.h py_capi_utils.h ) diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c deleted file mode 100644 index 1ff33d5a6bb..00000000000 --- a/source/blender/python/generic/mathutils.c +++ /dev/null @@ -1,384 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * This is a new part of Blender. - * - * Contributor(s): Joseph Gilbert, Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils.c - * \ingroup pygen - */ - -#include - -#include "mathutils.h" - -#include "BLI_math.h" -#include "BLI_utildefines.h" - -PyDoc_STRVAR(M_Mathutils_doc, -"This module provides access to matrices, eulers, quaternions and vectors." -); -static int mathutils_array_parse_fast(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix) -{ - PyObject *value_fast= NULL; - PyObject *item; - - int i, size; - - /* non list/tuple cases */ - if(!(value_fast=PySequence_Fast(value, error_prefix))) { - /* PySequence_Fast sets the error */ - return -1; - } - - size= PySequence_Fast_GET_SIZE(value_fast); - - if(size > array_max || size < array_min) { - if (array_max == array_min) { - PyErr_Format(PyExc_ValueError, - "%.200s: sequence size is %d, expected %d", - error_prefix, size, array_max); - } - else { - PyErr_Format(PyExc_ValueError, - "%.200s: sequence size is %d, expected [%d - %d]", - error_prefix, size, array_min, array_max); - } - Py_DECREF(value_fast); - return -1; - } - - i= size; - do { - i--; - if(((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { - PyErr_Format(PyExc_TypeError, - "%.200s: sequence index %d expected a number, " - "found '%.200s' type, ", - error_prefix, i, Py_TYPE(item)->tp_name); - Py_DECREF(value_fast); - return -1; - } - } while(i); - - Py_XDECREF(value_fast); - return size; -} - -/* helper functionm returns length of the 'value', -1 on error */ -int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix) -{ -#if 1 /* approx 6x speedup for mathutils types */ - int size; - - if( (VectorObject_Check(value) && (size= ((VectorObject *)value)->size)) || - (EulerObject_Check(value) && (size= 3)) || - (QuaternionObject_Check(value) && (size= 4)) || - (ColorObject_Check(value) && (size= 3)) - ) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { - return -1; - } - - if(size > array_max || size < array_min) { - if (array_max == array_min) { - PyErr_Format(PyExc_ValueError, - "%.200s: sequence size is %d, expected %d", - error_prefix, size, array_max); - } - else { - PyErr_Format(PyExc_ValueError, - "%.200s: sequence size is %d, expected [%d - %d]", - error_prefix, size, array_min, array_max); - } - return -1; - } - - memcpy(array, ((BaseMathObject *)value)->data, size * sizeof(float)); - return size; - } - else -#endif - { - return mathutils_array_parse_fast(array, array_min, array_max, value, error_prefix); - } -} - -int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix) -{ - if(EulerObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { - return -1; - } - else { - eulO_to_mat3(rmat, ((EulerObject *)value)->eul, ((EulerObject *)value)->order); - return 0; - } - } - else if (QuaternionObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { - return -1; - } - else { - float tquat[4]; - normalize_qt_qt(tquat, ((QuaternionObject *)value)->quat); - quat_to_mat3(rmat, tquat); - return 0; - } - } - else if (MatrixObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { - return -1; - } - else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) { - PyErr_Format(PyExc_ValueError, - "%.200s: matrix must have minimum 3x3 dimensions", - error_prefix); - return -1; - } - else { - matrix_as_3x3(rmat, (MatrixObject *)value); - normalize_m3(rmat); - return 0; - } - } - else { - PyErr_Format(PyExc_TypeError, - "%.200s: expected a Euler, Quaternion or Matrix type, " - "found %.200s", error_prefix, Py_TYPE(value)->tp_name); - return -1; - } -} - - -//----------------------------------MATRIX FUNCTIONS-------------------- - - -/* Utility functions */ - -// LomontRRDCompare4, Ever Faster Float Comparisons by Randy Dillon -#define SIGNMASK(i) (-(int)(((unsigned int)(i))>>31)) - -int EXPP_FloatsAreEqual(float af, float bf, int maxDiff) -{ // solid, fast routine across all platforms - // with constant time behavior - int ai = *(int *)(&af); - int bi = *(int *)(&bf); - int test = SIGNMASK(ai^bi); - int diff, v1, v2; - - assert((0 == test) || (0xFFFFFFFF == test)); - diff = (ai ^ (test & 0x7fffffff)) - bi; - v1 = maxDiff + diff; - v2 = maxDiff - diff; - return (v1|v2) >= 0; -} - -/*---------------------- EXPP_VectorsAreEqual ------------------------- - Builds on EXPP_FloatsAreEqual to test vectors */ -int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps) -{ - int x; - for (x=0; x< size; x++){ - if (EXPP_FloatsAreEqual(vecA[x], vecB[x], floatSteps) == 0) - return 0; - } - return 1; -} - - -/* Mathutils Callbacks */ - -/* for mathutils internal use only, eventually should re-alloc but to start with we only have a few users */ -static Mathutils_Callback *mathutils_callbacks[8] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; - -int Mathutils_RegisterCallback(Mathutils_Callback *cb) -{ - int i; - - /* find the first free slot */ - for(i= 0; mathutils_callbacks[i]; i++) { - if(mathutils_callbacks[i]==cb) /* already registered? */ - return i; - } - - mathutils_callbacks[i] = cb; - return i; -} - -/* use macros to check for NULL */ -int _BaseMathObject_ReadCallback(BaseMathObject *self) -{ - Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->get(self, self->cb_subtype) != -1) - return 0; - - if(!PyErr_Occurred()) { - PyErr_Format(PyExc_RuntimeError, - "%s read, user has become invalid", - Py_TYPE(self)->tp_name); - } - return -1; -} - -int _BaseMathObject_WriteCallback(BaseMathObject *self) -{ - Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->set(self, self->cb_subtype) != -1) - return 0; - - if(!PyErr_Occurred()) { - PyErr_Format(PyExc_RuntimeError, - "%s write, user has become invalid", - Py_TYPE(self)->tp_name); - } - return -1; -} - -int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) -{ - Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->get_index(self, self->cb_subtype, index) != -1) - return 0; - - if(!PyErr_Occurred()) { - PyErr_Format(PyExc_RuntimeError, - "%s read index, user has become invalid", - Py_TYPE(self)->tp_name); - } - return -1; -} - -int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index) -{ - Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->set_index(self, self->cb_subtype, index) != -1) - return 0; - - if(!PyErr_Occurred()) { - PyErr_Format(PyExc_RuntimeError, - "%s write index, user has become invalid", - Py_TYPE(self)->tp_name); - } - return -1; -} - -/* BaseMathObject generic functions for all mathutils types */ -char BaseMathObject_Owner_doc[] = "The item this is wrapping or None (readonly)."; -PyObject *BaseMathObject_getOwner(BaseMathObject *self, void *UNUSED(closure)) -{ - PyObject *ret= self->cb_user ? self->cb_user : Py_None; - Py_INCREF(ret); - return ret; -} - -char BaseMathObject_Wrapped_doc[] = "True when this object wraps external data (readonly).\n\n:type: boolean"; -PyObject *BaseMathObject_getWrapped(BaseMathObject *self, void *UNUSED(closure)) -{ - return PyBool_FromLong((self->wrapped == Py_WRAP) ? 1:0); -} - -int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg) -{ - Py_VISIT(self->cb_user); - return 0; -} - -int BaseMathObject_clear(BaseMathObject *self) -{ - Py_CLEAR(self->cb_user); - return 0; -} - -void BaseMathObject_dealloc(BaseMathObject *self) -{ - /* only free non wrapped */ - if(self->wrapped != Py_WRAP) { - PyMem_Free(self->data); - } - - if(self->cb_user) { - PyObject_GC_UnTrack(self); - BaseMathObject_clear(self); - } - - Py_TYPE(self)->tp_free(self); // PyObject_DEL(self); // breaks subtypes -} - -/*----------------------------MODULE INIT-------------------------*/ -static struct PyMethodDef M_Mathutils_methods[] = { - {NULL, NULL, 0, NULL} -}; - -static struct PyModuleDef M_Mathutils_module_def = { - PyModuleDef_HEAD_INIT, - "mathutils", /* m_name */ - M_Mathutils_doc, /* m_doc */ - 0, /* m_size */ - M_Mathutils_methods, /* m_methods */ - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL, /* m_free */ -}; - -PyMODINIT_FUNC BPyInit_mathutils(void) -{ - PyObject *submodule; - PyObject *item; - - if(PyType_Ready(&vector_Type) < 0) - return NULL; - if(PyType_Ready(&matrix_Type) < 0) - return NULL; - if(PyType_Ready(&euler_Type) < 0) - return NULL; - if(PyType_Ready(&quaternion_Type) < 0) - return NULL; - if(PyType_Ready(&color_Type) < 0) - return NULL; - - submodule = PyModule_Create(&M_Mathutils_module_def); - - /* each type has its own new() function */ - PyModule_AddObject(submodule, "Vector", (PyObject *)&vector_Type); - PyModule_AddObject(submodule, "Matrix", (PyObject *)&matrix_Type); - PyModule_AddObject(submodule, "Euler", (PyObject *)&euler_Type); - PyModule_AddObject(submodule, "Quaternion", (PyObject *)&quaternion_Type); - PyModule_AddObject(submodule, "Color", (PyObject *)&color_Type); - - /* submodule */ - PyModule_AddObject(submodule, "geometry", (item=BPyInit_mathutils_geometry())); - /* XXX, python doesnt do imports with this usefully yet - * 'from mathutils.geometry import PolyFill' - * ...fails without this. */ - PyDict_SetItemString(PyThreadState_GET()->interp->modules, "mathutils.geometry", item); - Py_INCREF(item); - - mathutils_matrix_vector_cb_index= Mathutils_RegisterCallback(&mathutils_matrix_vector_cb); - - return submodule; -} diff --git a/source/blender/python/generic/mathutils.h b/source/blender/python/generic/mathutils.h deleted file mode 100644 index 449708d1ac1..00000000000 --- a/source/blender/python/generic/mathutils.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * This is a new part of Blender. - * - * Contributor(s): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** -*/ - -/** \file blender/python/generic/mathutils.h - * \ingroup pygen - */ - -//Include this file for access to vector, quat, matrix, euler, etc... - -#ifndef MATHUTILS_H -#define MATHUTILS_H - -/* Can cast different mathutils types to this, use for generic funcs */ - -extern char BaseMathObject_Wrapped_doc[]; -extern char BaseMathObject_Owner_doc[]; - -#define BASE_MATH_MEMBERS(_data) \ - PyObject_VAR_HEAD \ - float *_data; /* array of data (alias), wrapped status depends on wrapped status */ \ - PyObject *cb_user; /* if this vector references another object, otherwise NULL, *Note* this owns its reference */ \ - unsigned char cb_type; /* which user funcs do we adhere to, RNA, GameObject, etc */ \ - unsigned char cb_subtype; /* subtype: location, rotation... to avoid defining many new functions for every attribute of the same type */ \ - unsigned char wrapped; /* wrapped data type? */ \ - -typedef struct { - BASE_MATH_MEMBERS(data) -} BaseMathObject; - -#include "mathutils_Vector.h" -#include "mathutils_Matrix.h" -#include "mathutils_Quaternion.h" -#include "mathutils_Euler.h" -#include "mathutils_Color.h" -#include "mathutils_geometry.h" - -PyObject *BaseMathObject_getOwner( BaseMathObject * self, void * ); -PyObject *BaseMathObject_getWrapped( BaseMathObject *self, void * ); - -int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg); -int BaseMathObject_clear(BaseMathObject *self); -void BaseMathObject_dealloc(BaseMathObject * self); - -PyMODINIT_FUNC BPyInit_mathutils(void); - -int EXPP_FloatsAreEqual(float A, float B, int floatSteps); -int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps); - -#define Py_NEW 1 -#define Py_WRAP 2 - -typedef struct Mathutils_Callback Mathutils_Callback; - -typedef int (*BaseMathCheckFunc)(BaseMathObject *); /* checks the user is still valid */ -typedef int (*BaseMathGetFunc)(BaseMathObject *, int); /* gets the vector from the user */ -typedef int (*BaseMathSetFunc)(BaseMathObject *, int); /* sets the users vector values once the vector is modified */ -typedef int (*BaseMathGetIndexFunc)(BaseMathObject *, int, int); /* same as above but only for an index */ -typedef int (*BaseMathSetIndexFunc)(BaseMathObject *, int, int); /* same as above but only for an index */ - -struct Mathutils_Callback { - BaseMathCheckFunc check; - BaseMathGetFunc get; - BaseMathSetFunc set; - BaseMathGetIndexFunc get_index; - BaseMathSetIndexFunc set_index; -}; - -int Mathutils_RegisterCallback(Mathutils_Callback *cb); - -int _BaseMathObject_ReadCallback(BaseMathObject *self); -int _BaseMathObject_WriteCallback(BaseMathObject *self); -int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index); -int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index); - -/* since this is called so often avoid where possible */ -#define BaseMath_ReadCallback(_self) (((_self)->cb_user ? _BaseMathObject_ReadCallback((BaseMathObject *)_self):0)) -#define BaseMath_WriteCallback(_self) (((_self)->cb_user ?_BaseMathObject_WriteCallback((BaseMathObject *)_self):0)) -#define BaseMath_ReadIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_ReadIndexCallback((BaseMathObject *)_self, _index):0)) -#define BaseMath_WriteIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_WriteIndexCallback((BaseMathObject *)_self, _index):0)) - -/* utility func */ -int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix); -int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix); - -#endif /* MATHUTILS_H */ diff --git a/source/blender/python/generic/mathutils_Color.c b/source/blender/python/generic/mathutils_Color.c deleted file mode 100644 index d0c7ec72cea..00000000000 --- a/source/blender/python/generic/mathutils_Color.c +++ /dev/null @@ -1,870 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributor(s): Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_Color.c - * \ingroup pygen - */ - - -#include - -#include "mathutils.h" - -#include "BLI_math.h" -#include "BLI_utildefines.h" - -#define COLOR_SIZE 3 - -//----------------------------------mathutils.Color() ------------------- -//makes a new color for you to play with -static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) -{ - float col[3]= {0.0f, 0.0f, 0.0f}; - - if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, - "mathutils.Color(): " - "takes no keyword args"); - return NULL; - } - - switch(PyTuple_GET_SIZE(args)) { - case 0: - break; - case 1: - if((mathutils_array_parse(col, COLOR_SIZE, COLOR_SIZE, PyTuple_GET_ITEM(args, 0), "mathutils.Color()")) == -1) - return NULL; - break; - default: - PyErr_SetString(PyExc_TypeError, - "mathutils.Color(): " - "more then a single arg given"); - return NULL; - } - return newColorObject(col, Py_NEW, type); -} - -//-----------------------------METHODS---------------------------- - -/* note: BaseMath_ReadCallback must be called beforehand */ -static PyObject *Color_ToTupleExt(ColorObject *self, int ndigits) -{ - PyObject *ret; - int i; - - ret= PyTuple_New(COLOR_SIZE); - - if(ndigits >= 0) { - for(i= 0; i < COLOR_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->col[i], ndigits))); - } - } - else { - for(i= 0; i < COLOR_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->col[i])); - } - } - - return ret; -} - -PyDoc_STRVAR(Color_copy_doc, -".. function:: copy()\n" -"\n" -" Returns a copy of this color.\n" -"\n" -" :return: A copy of the color.\n" -" :rtype: :class:`Color`\n" -"\n" -" .. note:: use this to get a copy of a wrapped color with\n" -" no reference to the original data.\n" -); -static PyObject *Color_copy(ColorObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return newColorObject(self->col, Py_NEW, Py_TYPE(self)); -} - -//----------------------------print object (internal)-------------- -//print the object to screen - -static PyObject *Color_repr(ColorObject * self) -{ - PyObject *ret, *tuple; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - tuple= Color_ToTupleExt(self, -1); - - ret= PyUnicode_FromFormat("Color(%R)", tuple); - - Py_DECREF(tuple); - return ret; -} - -//------------------------tp_richcmpr -//returns -1 execption, 0 false, 1 true -static PyObject* Color_richcmpr(PyObject *a, PyObject *b, int op) -{ - PyObject *res; - int ok= -1; /* zero is true */ - - if (ColorObject_Check(a) && ColorObject_Check(b)) { - ColorObject *colA= (ColorObject*)a; - ColorObject *colB= (ColorObject*)b; - - if(BaseMath_ReadCallback(colA) == -1 || BaseMath_ReadCallback(colB) == -1) - return NULL; - - ok= EXPP_VectorsAreEqual(colA->col, colB->col, COLOR_SIZE, 1) ? 0 : -1; - } - - switch (op) { - case Py_NE: - ok = !ok; /* pass through */ - case Py_EQ: - res = ok ? Py_False : Py_True; - break; - - case Py_LT: - case Py_LE: - case Py_GT: - case Py_GE: - res = Py_NotImplemented; - break; - default: - PyErr_BadArgument(); - return NULL; - } - - return Py_INCREF(res), res; -} - -//---------------------SEQUENCE PROTOCOLS------------------------ -//----------------------------len(object)------------------------ -//sequence length -static int Color_len(ColorObject *UNUSED(self)) -{ - return COLOR_SIZE; -} -//----------------------------object[]--------------------------- -//sequence accessor (get) -static PyObject *Color_item(ColorObject * self, int i) -{ - if(i<0) i= COLOR_SIZE-i; - - if(i < 0 || i >= COLOR_SIZE) { - PyErr_SetString(PyExc_IndexError, - "color[attribute]: " - "array index out of range"); - return NULL; - } - - if(BaseMath_ReadIndexCallback(self, i) == -1) - return NULL; - - return PyFloat_FromDouble(self->col[i]); - -} -//----------------------------object[]------------------------- -//sequence accessor (set) -static int Color_ass_item(ColorObject * self, int i, PyObject *value) -{ - float f = PyFloat_AsDouble(value); - - if(f == -1 && PyErr_Occurred()) { // parsed item not a number - PyErr_SetString(PyExc_TypeError, - "color[attribute] = x: " - "argument not a number"); - return -1; - } - - if(i<0) i= COLOR_SIZE-i; - - if(i < 0 || i >= COLOR_SIZE){ - PyErr_SetString(PyExc_IndexError, "color[attribute] = x: " - "array assignment index out of range"); - return -1; - } - - self->col[i] = f; - - if(BaseMath_WriteIndexCallback(self, i) == -1) - return -1; - - return 0; -} -//----------------------------object[z:y]------------------------ -//sequence slice (get) -static PyObject *Color_slice(ColorObject * self, int begin, int end) -{ - PyObject *tuple; - int count; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - CLAMP(begin, 0, COLOR_SIZE); - if (end<0) end= (COLOR_SIZE + 1) + end; - CLAMP(end, 0, COLOR_SIZE); - begin= MIN2(begin, end); - - tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { - PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->col[count])); - } - - return tuple; -} -//----------------------------object[z:y]------------------------ -//sequence slice (set) -static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) -{ - int i, size; - float col[COLOR_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - CLAMP(begin, 0, COLOR_SIZE); - if (end<0) end= (COLOR_SIZE + 1) + end; - CLAMP(end, 0, COLOR_SIZE); - begin = MIN2(begin, end); - - if((size=mathutils_array_parse(col, 0, COLOR_SIZE, seq, "mathutils.Color[begin:end] = []")) == -1) - return -1; - - if(size != (end - begin)){ - PyErr_SetString(PyExc_ValueError, - "color[begin:end] = []: " - "size mismatch in slice assignment"); - return -1; - } - - for(i= 0; i < COLOR_SIZE; i++) - self->col[begin + i] = col[i]; - - (void)BaseMath_WriteCallback(self); - return 0; -} - -static PyObject *Color_subscript(ColorObject *self, PyObject *item) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i; - i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return NULL; - if (i < 0) - i += COLOR_SIZE; - return Color_item(self, i); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, COLOR_SIZE, &start, &stop, &step, &slicelength) < 0) - return NULL; - - if (slicelength <= 0) { - return PyTuple_New(0); - } - else if (step == 1) { - return Color_slice(self, start, stop); - } - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with color"); - return NULL; - } - } - else { - PyErr_Format(PyExc_TypeError, - "color indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return NULL; - } -} - -static int Color_ass_subscript(ColorObject *self, PyObject *item, PyObject *value) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return -1; - if (i < 0) - i += COLOR_SIZE; - return Color_ass_item(self, i, value); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, COLOR_SIZE, &start, &stop, &step, &slicelength) < 0) - return -1; - - if (step == 1) - return Color_ass_slice(self, start, stop, value); - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with color"); - return -1; - } - } - else { - PyErr_Format(PyExc_TypeError, - "color indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return -1; - } -} - -//-----------------PROTCOL DECLARATIONS-------------------------- -static PySequenceMethods Color_SeqMethods = { - (lenfunc) Color_len, /* sq_length */ - (binaryfunc) NULL, /* sq_concat */ - (ssizeargfunc) NULL, /* sq_repeat */ - (ssizeargfunc) Color_item, /* sq_item */ - NULL, /* sq_slice, deprecated */ - (ssizeobjargproc) Color_ass_item, /* sq_ass_item */ - NULL, /* sq_ass_slice, deprecated */ - (objobjproc) NULL, /* sq_contains */ - (binaryfunc) NULL, /* sq_inplace_concat */ - (ssizeargfunc) NULL, /* sq_inplace_repeat */ -}; - -static PyMappingMethods Color_AsMapping = { - (lenfunc)Color_len, - (binaryfunc)Color_subscript, - (objobjargproc)Color_ass_subscript -}; - -/* numeric */ - - -/* addition: obj + obj */ -static PyObject *Color_add(PyObject *v1, PyObject *v2) -{ - ColorObject *color1 = NULL, *color2 = NULL; - float col[COLOR_SIZE]; - - if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_TypeError, - "Color addition: " - "arguments not valid for this operation"); - return NULL; - } - color1 = (ColorObject*)v1; - color2 = (ColorObject*)v2; - - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) - return NULL; - - add_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); - - return newColorObject(col, Py_NEW, Py_TYPE(v1)); -} - -/* addition in-place: obj += obj */ -static PyObject *Color_iadd(PyObject *v1, PyObject *v2) -{ - ColorObject *color1 = NULL, *color2 = NULL; - - if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_TypeError, - "Color addition: " - "arguments not valid for this operation"); - return NULL; - } - color1 = (ColorObject*)v1; - color2 = (ColorObject*)v2; - - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) - return NULL; - - add_vn_vn(color1->col, color2->col, COLOR_SIZE); - - (void)BaseMath_WriteCallback(color1); - Py_INCREF(v1); - return v1; -} - -/* subtraction: obj - obj */ -static PyObject *Color_sub(PyObject *v1, PyObject *v2) -{ - ColorObject *color1 = NULL, *color2 = NULL; - float col[COLOR_SIZE]; - - if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_TypeError, - "Color subtraction: " - "arguments not valid for this operation"); - return NULL; - } - color1 = (ColorObject*)v1; - color2 = (ColorObject*)v2; - - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) - return NULL; - - sub_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); - - return newColorObject(col, Py_NEW, Py_TYPE(v1)); -} - -/* subtraction in-place: obj -= obj */ -static PyObject *Color_isub(PyObject *v1, PyObject *v2) -{ - ColorObject *color1= NULL, *color2= NULL; - - if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { - PyErr_SetString(PyExc_TypeError, - "Color subtraction: " - "arguments not valid for this operation"); - return NULL; - } - color1 = (ColorObject*)v1; - color2 = (ColorObject*)v2; - - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) - return NULL; - - sub_vn_vn(color1->col, color2->col, COLOR_SIZE); - - (void)BaseMath_WriteCallback(color1); - Py_INCREF(v1); - return v1; -} - -static PyObject *color_mul_float(ColorObject *color, const float scalar) -{ - float tcol[COLOR_SIZE]; - mul_vn_vn_fl(tcol, color->col, COLOR_SIZE, scalar); - return newColorObject(tcol, Py_NEW, Py_TYPE(color)); -} - - -static PyObject *Color_mul(PyObject *v1, PyObject *v2) -{ - ColorObject *color1 = NULL, *color2 = NULL; - float scalar; - - if ColorObject_Check(v1) { - color1= (ColorObject *)v1; - if(BaseMath_ReadCallback(color1) == -1) - return NULL; - } - if ColorObject_Check(v2) { - color2= (ColorObject *)v2; - if(BaseMath_ReadCallback(color2) == -1) - return NULL; - } - - - /* make sure v1 is always the vector */ - if (color1 && color2) { - /* col * col, dont support yet! */ - } - else if (color1) { - if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ - return color_mul_float(color1, scalar); - } - } - else if (color2) { - if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * COLOR */ - return color_mul_float(color2, scalar); - } - } - else { - BLI_assert(!"internal error"); - } - - PyErr_Format(PyExc_TypeError, - "Color multiplication: not supported between " - "'%.200s' and '%.200s' types", - Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); - return NULL; -} - -static PyObject *Color_div(PyObject *v1, PyObject *v2) -{ - ColorObject *color1 = NULL; - float scalar; - - if ColorObject_Check(v1) { - color1= (ColorObject *)v1; - if(BaseMath_ReadCallback(color1) == -1) - return NULL; - } - else { - PyErr_SetString(PyExc_TypeError, - "Color division not supported in this order"); - return NULL; - } - - /* make sure v1 is always the vector */ - if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ - if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, - "Color division: divide by zero error"); - return NULL; - } - return color_mul_float(color1, 1.0f / scalar); - } - - PyErr_Format(PyExc_TypeError, - "Color multiplication: not supported between " - "'%.200s' and '%.200s' types", - Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); - return NULL; -} - -/* mulplication in-place: obj *= obj */ -static PyObject *Color_imul(PyObject *v1, PyObject *v2) -{ - ColorObject *color = (ColorObject *)v1; - float scalar; - - if(BaseMath_ReadCallback(color) == -1) - return NULL; - - /* only support color *= float */ - if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR *= FLOAT */ - mul_vn_fl(color->col, COLOR_SIZE, scalar); - } - else { - PyErr_SetString(PyExc_TypeError, - "Color multiplication: " - "arguments not acceptable for this operation"); - return NULL; - } - - (void)BaseMath_WriteCallback(color); - Py_INCREF(v1); - return v1; -} - -/* mulplication in-place: obj *= obj */ -static PyObject *Color_idiv(PyObject *v1, PyObject *v2) -{ - ColorObject *color = (ColorObject *)v1; - float scalar; - - if(BaseMath_ReadCallback(color) == -1) - return NULL; - - /* only support color /= float */ - if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR /= FLOAT */ - if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, - "Color division: divide by zero error"); - return NULL; - } - - mul_vn_fl(color->col, COLOR_SIZE, 1.0f / scalar); - } - else { - PyErr_SetString(PyExc_TypeError, - "Color multiplication: " - "arguments not acceptable for this operation"); - return NULL; - } - - (void)BaseMath_WriteCallback(color); - Py_INCREF(v1); - return v1; -} - -/* -obj - returns the negative of this object*/ -static PyObject *Color_neg(ColorObject *self) -{ - float tcol[COLOR_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - negate_vn_vn(tcol, self->col, COLOR_SIZE); - return newColorObject(tcol, Py_NEW, Py_TYPE(self)); -} - - -static PyNumberMethods Color_NumMethods = { - (binaryfunc) Color_add, /*nb_add*/ - (binaryfunc) Color_sub, /*nb_subtract*/ - (binaryfunc) Color_mul, /*nb_multiply*/ - NULL, /*nb_remainder*/ - NULL, /*nb_divmod*/ - NULL, /*nb_power*/ - (unaryfunc) Color_neg, /*nb_negative*/ - (unaryfunc) NULL, /*tp_positive*/ - (unaryfunc) NULL, /*tp_absolute*/ - (inquiry) NULL, /*tp_bool*/ - (unaryfunc) NULL, /*nb_invert*/ - NULL, /*nb_lshift*/ - (binaryfunc)NULL, /*nb_rshift*/ - NULL, /*nb_and*/ - NULL, /*nb_xor*/ - NULL, /*nb_or*/ - NULL, /*nb_int*/ - NULL, /*nb_reserved*/ - NULL, /*nb_float*/ - Color_iadd, /* nb_inplace_add */ - Color_isub, /* nb_inplace_subtract */ - Color_imul, /* nb_inplace_multiply */ - NULL, /* nb_inplace_remainder */ - NULL, /* nb_inplace_power */ - NULL, /* nb_inplace_lshift */ - NULL, /* nb_inplace_rshift */ - NULL, /* nb_inplace_and */ - NULL, /* nb_inplace_xor */ - NULL, /* nb_inplace_or */ - NULL, /* nb_floor_divide */ - Color_div, /* nb_true_divide */ - NULL, /* nb_inplace_floor_divide */ - Color_idiv, /* nb_inplace_true_divide */ - NULL, /* nb_index */ -}; - -/* color channel, vector.r/g/b */ -static PyObject *Color_getChannel(ColorObject * self, void *type) -{ - return Color_item(self, GET_INT_FROM_POINTER(type)); -} - -static int Color_setChannel(ColorObject * self, PyObject *value, void * type) -{ - return Color_ass_item(self, GET_INT_FROM_POINTER(type), value); -} - -/* color channel (HSV), color.h/s/v */ -static PyObject *Color_getChannelHSV(ColorObject * self, void *type) -{ - float hsv[3]; - int i= GET_INT_FROM_POINTER(type); - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); - - return PyFloat_FromDouble(hsv[i]); -} - -static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) -{ - float hsv[3]; - int i= GET_INT_FROM_POINTER(type); - float f = PyFloat_AsDouble(value); - - if(f == -1 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "color.h/s/v = value: " - "argument not a number"); - return -1; - } - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); - CLAMP(f, 0.0f, 1.0f); - hsv[i] = f; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); - - if(BaseMath_WriteCallback(self) == -1) - return -1; - - return 0; -} - -/* color channel (HSV), color.h/s/v */ -static PyObject *Color_getHSV(ColorObject * self, void *UNUSED(closure)) -{ - float hsv[3]; - PyObject *ret; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); - - ret= PyTuple_New(3); - PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(hsv[0])); - PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(hsv[1])); - PyTuple_SET_ITEM(ret, 2, PyFloat_FromDouble(hsv[2])); - return ret; -} - -static int Color_setHSV(ColorObject * self, PyObject *value, void *UNUSED(closure)) -{ - float hsv[3]; - - if(mathutils_array_parse(hsv, 3, 3, value, "mathutils.Color.hsv = value") == -1) - return -1; - - CLAMP(hsv[0], 0.0f, 1.0f); - CLAMP(hsv[1], 0.0f, 1.0f); - CLAMP(hsv[2], 0.0f, 1.0f); - - hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); - - if(BaseMath_WriteCallback(self) == -1) - return -1; - - return 0; -} - -/*****************************************************************************/ -/* Python attributes get/set structure: */ -/*****************************************************************************/ -static PyGetSetDef Color_getseters[] = { - {(char *)"r", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Red color channel.\n\n:type: float", (void *)0}, - {(char *)"g", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Green color channel.\n\n:type: float", (void *)1}, - {(char *)"b", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Blue color channel.\n\n:type: float", (void *)2}, - - {(char *)"h", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Hue component in [0, 1].\n\n:type: float", (void *)0}, - {(char *)"s", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Saturation component in [0, 1].\n\n:type: float", (void *)1}, - {(char *)"v", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Value component in [0, 1].\n\n:type: float", (void *)2}, - - {(char *)"hsv", (getter)Color_getHSV, (setter)Color_setHSV, (char *)"HSV Values in [0, 1].\n\n:type: float triplet", (void *)0}, - - {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, BaseMathObject_Wrapped_doc, NULL}, - {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, BaseMathObject_Owner_doc, NULL}, - {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ -}; - - -//-----------------------METHOD DEFINITIONS ---------------------- -static struct PyMethodDef Color_methods[] = { - {"__copy__", (PyCFunction) Color_copy, METH_NOARGS, Color_copy_doc}, - {"copy", (PyCFunction) Color_copy, METH_NOARGS, Color_copy_doc}, - {NULL, NULL, 0, NULL} -}; - -//------------------PY_OBECT DEFINITION-------------------------- -PyDoc_STRVAR(color_doc, -"This object gives access to Colors in Blender." -); -PyTypeObject color_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "mathutils.Color", //tp_name - sizeof(ColorObject), //tp_basicsize - 0, //tp_itemsize - (destructor)BaseMathObject_dealloc, //tp_dealloc - NULL, //tp_print - NULL, //tp_getattr - NULL, //tp_setattr - NULL, //tp_compare - (reprfunc) Color_repr, //tp_repr - &Color_NumMethods, //tp_as_number - &Color_SeqMethods, //tp_as_sequence - &Color_AsMapping, //tp_as_mapping - NULL, //tp_hash - NULL, //tp_call - NULL, //tp_str - NULL, //tp_getattro - NULL, //tp_setattro - NULL, //tp_as_buffer - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags - color_doc, //tp_doc - (traverseproc)BaseMathObject_traverse, //tp_traverse - (inquiry)BaseMathObject_clear, //tp_clear - (richcmpfunc)Color_richcmpr, //tp_richcompare - 0, //tp_weaklistoffset - NULL, //tp_iter - NULL, //tp_iternext - Color_methods, //tp_methods - NULL, //tp_members - Color_getseters, //tp_getset - NULL, //tp_base - NULL, //tp_dict - NULL, //tp_descr_get - NULL, //tp_descr_set - 0, //tp_dictoffset - NULL, //tp_init - NULL, //tp_alloc - Color_new, //tp_new - NULL, //tp_free - NULL, //tp_is_gc - NULL, //tp_bases - NULL, //tp_mro - NULL, //tp_cache - NULL, //tp_subclasses - NULL, //tp_weaklist - NULL //tp_del -}; -//------------------------newColorObject (internal)------------- -//creates a new color object -/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER - (i.e. it was allocated elsewhere by MEM_mallocN()) - pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON - (i.e. it must be created here with PyMEM_malloc())*/ -PyObject *newColorObject(float *col, int type, PyTypeObject *base_type) -{ - ColorObject *self; - - self= base_type ? (ColorObject *)base_type->tp_alloc(base_type, 0) : - (ColorObject *)PyObject_GC_New(ColorObject, &color_Type); - - if(self) { - /* init callbacks as NULL */ - self->cb_user= NULL; - self->cb_type= self->cb_subtype= 0; - - if(type == Py_WRAP){ - self->col = col; - self->wrapped = Py_WRAP; - } - else if (type == Py_NEW){ - self->col = PyMem_Malloc(COLOR_SIZE * sizeof(float)); - if(col) - copy_v3_v3(self->col, col); - else - zero_v3(self->col); - - self->wrapped = Py_NEW; - } - else { - Py_FatalError("Color(): invalid type!"); - } - } - - return (PyObject *)self; -} - -PyObject *newColorObject_cb(PyObject *cb_user, int cb_type, int cb_subtype) -{ - ColorObject *self= (ColorObject *)newColorObject(NULL, Py_NEW, NULL); - if(self) { - Py_INCREF(cb_user); - self->cb_user= cb_user; - self->cb_type= (unsigned char)cb_type; - self->cb_subtype= (unsigned char)cb_subtype; - PyObject_GC_Track(self); - } - - return (PyObject *)self; -} diff --git a/source/blender/python/generic/mathutils_Color.h b/source/blender/python/generic/mathutils_Color.h deleted file mode 100644 index 0fc880363f4..00000000000 --- a/source/blender/python/generic/mathutils_Color.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - * - */ - -/** \file blender/python/generic/mathutils_Color.h - * \ingroup pygen - */ - - -#ifndef MATHUTILS_COLOR_H -#define MATHUTILS_COLOR_H - -extern PyTypeObject color_Type; -#define ColorObject_Check(_v) PyObject_TypeCheck((_v), &color_Type) - -typedef struct { - BASE_MATH_MEMBERS(col) -} ColorObject; - -/*struct data contains a pointer to the actual data that the -object uses. It can use either PyMem allocated data (which will -be stored in py_data) or be a wrapper for data allocated through -blender (stored in blend_data). This is an either/or struct not both*/ - -//prototypes -PyObject *newColorObject( float *col, int type, PyTypeObject *base_type); -PyObject *newColorObject_cb(PyObject *cb_user, int cb_type, int cb_subtype); - -#endif /* MATHUTILS_COLOR_H */ diff --git a/source/blender/python/generic/mathutils_Euler.c b/source/blender/python/generic/mathutils_Euler.c deleted file mode 100644 index a7d6d921d16..00000000000 --- a/source/blender/python/generic/mathutils_Euler.c +++ /dev/null @@ -1,725 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * - * Contributor(s): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_Euler.c - * \ingroup pygen - */ - - -#include - -#include "mathutils.h" - -#include "BLI_math.h" -#include "BLI_utildefines.h" - -#ifndef int32_t -#include "BLO_sys_types.h" -#endif - -#define EULER_SIZE 3 - -//----------------------------------mathutils.Euler() ------------------- -//makes a new euler for you to play with -static PyObject *Euler_new(PyTypeObject *type, PyObject *args, PyObject *kwds) -{ - PyObject *seq= NULL; - const char *order_str= NULL; - - float eul[EULER_SIZE]= {0.0f, 0.0f, 0.0f}; - short order= EULER_ORDER_XYZ; - - if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, - "mathutils.Euler(): " - "takes no keyword args"); - return NULL; - } - - if(!PyArg_ParseTuple(args, "|Os:mathutils.Euler", &seq, &order_str)) - return NULL; - - switch(PyTuple_GET_SIZE(args)) { - case 0: - break; - case 2: - if((order=euler_order_from_string(order_str, "mathutils.Euler()")) == -1) - return NULL; - /* intentionally pass through */ - case 1: - if (mathutils_array_parse(eul, EULER_SIZE, EULER_SIZE, seq, "mathutils.Euler()") == -1) - return NULL; - break; - } - return newEulerObject(eul, order, Py_NEW, type); -} - -/* internal use, assuem read callback is done */ -static const char *euler_order_str(EulerObject *self) -{ - static const char order[][4] = {"XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"}; - return order[self->order-EULER_ORDER_XYZ]; -} - -short euler_order_from_string(const char *str, const char *error_prefix) -{ - if((str[0] && str[1] && str[2] && str[3]=='\0')) { - switch(*((int32_t *)str)) { - case 'X'|'Y'<<8|'Z'<<16: return EULER_ORDER_XYZ; - case 'X'|'Z'<<8|'Y'<<16: return EULER_ORDER_XZY; - case 'Y'|'X'<<8|'Z'<<16: return EULER_ORDER_YXZ; - case 'Y'|'Z'<<8|'X'<<16: return EULER_ORDER_YZX; - case 'Z'|'X'<<8|'Y'<<16: return EULER_ORDER_ZXY; - case 'Z'|'Y'<<8|'X'<<16: return EULER_ORDER_ZYX; - } - } - - PyErr_Format(PyExc_ValueError, - "%s: invalid euler order '%s'", - error_prefix, str); - return -1; -} - -/* note: BaseMath_ReadCallback must be called beforehand */ -static PyObject *Euler_ToTupleExt(EulerObject *self, int ndigits) -{ - PyObject *ret; - int i; - - ret= PyTuple_New(EULER_SIZE); - - if(ndigits >= 0) { - for(i= 0; i < EULER_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->eul[i], ndigits))); - } - } - else { - for(i= 0; i < EULER_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->eul[i])); - } - } - - return ret; -} - -//-----------------------------METHODS---------------------------- -//return a quaternion representation of the euler - -PyDoc_STRVAR(Euler_to_quaternion_doc, -".. method:: to_quaternion()\n" -"\n" -" Return a quaternion representation of the euler.\n" -"\n" -" :return: Quaternion representation of the euler.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Euler_to_quaternion(EulerObject * self) -{ - float quat[4]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - eulO_to_quat(quat, self->eul, self->order); - - return newQuaternionObject(quat, Py_NEW, NULL); -} - -//return a matrix representation of the euler -PyDoc_STRVAR(Euler_to_matrix_doc, -".. method:: to_matrix()\n" -"\n" -" Return a matrix representation of the euler.\n" -"\n" -" :return: A 3x3 roation matrix representation of the euler.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Euler_to_matrix(EulerObject * self) -{ - float mat[9]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - eulO_to_mat3((float (*)[3])mat, self->eul, self->order); - - return newMatrixObject(mat, 3, 3 , Py_NEW, NULL); -} - -PyDoc_STRVAR(Euler_zero_doc, -".. method:: zero()\n" -"\n" -" Set all values to zero.\n" -); -static PyObject *Euler_zero(EulerObject * self) -{ - zero_v3(self->eul); - - if(BaseMath_WriteCallback(self) == -1) - return NULL; - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Euler_rotate_axis_doc, -".. method:: rotate_axis(axis, angle)\n" -"\n" -" Rotates the euler a certain amount and returning a unique euler rotation\n" -" (no 720 degree pitches).\n" -"\n" -" :arg axis: single character in ['X, 'Y', 'Z'].\n" -" :type axis: string\n" -" :arg angle: angle in radians.\n" -" :type angle: float\n" -); -static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args) -{ - float angle = 0.0f; - const char *axis; - - if(!PyArg_ParseTuple(args, "sf:rotate", &axis, &angle)){ - PyErr_SetString(PyExc_TypeError, - "euler.rotate(): " - "expected angle (float) and axis (x, y, z)"); - return NULL; - } - if(!(ELEM3(*axis, 'X', 'Y', 'Z') && axis[1]=='\0')){ - PyErr_SetString(PyExc_ValueError, "euler.rotate(): " - "expected axis to be 'X', 'Y' or 'Z'"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - - rotate_eulO(self->eul, self->order, *axis, angle); - - (void)BaseMath_WriteCallback(self); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Euler_rotate_doc, -".. method:: rotate(other)\n" -"\n" -" Rotates the euler a by another mathutils value.\n" -"\n" -" :arg other: rotation component of mathutils value\n" -" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" -); -static PyObject *Euler_rotate(EulerObject * self, PyObject *value) -{ - float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1) - return NULL; - - eulO_to_mat3(self_rmat, self->eul, self->order); - mul_m3_m3m3(rmat, self_rmat, other_rmat); - - mat3_to_compatible_eulO(self->eul, self->eul, self->order, rmat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Euler_make_compatible_doc, -".. method:: make_compatible(other)\n" -"\n" -" Make this euler compatible with another,\n" -" so interpolating between them works as intended.\n" -"\n" -" .. note:: the rotation order is not taken into account for this function.\n" -); -static PyObject *Euler_make_compatible(EulerObject * self, PyObject *value) -{ - float teul[EULER_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1) - return NULL; - - compatible_eul(self->eul, teul); - - (void)BaseMath_WriteCallback(self); - - Py_RETURN_NONE; -} - -//----------------------------Euler.rotate()----------------------- -// return a copy of the euler - -PyDoc_STRVAR(Euler_copy_doc, -".. function:: copy()\n" -"\n" -" Returns a copy of this euler.\n" -"\n" -" :return: A copy of the euler.\n" -" :rtype: :class:`Euler`\n" -"\n" -" .. note:: use this to get a copy of a wrapped euler with\n" -" no reference to the original data.\n" -); -static PyObject *Euler_copy(EulerObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return newEulerObject(self->eul, self->order, Py_NEW, Py_TYPE(self)); -} - -//----------------------------print object (internal)-------------- -//print the object to screen - -static PyObject *Euler_repr(EulerObject * self) -{ - PyObject *ret, *tuple; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - tuple= Euler_ToTupleExt(self, -1); - - ret= PyUnicode_FromFormat("Euler(%R, '%s')", tuple, euler_order_str(self)); - - Py_DECREF(tuple); - return ret; -} - -static PyObject* Euler_richcmpr(PyObject *a, PyObject *b, int op) -{ - PyObject *res; - int ok= -1; /* zero is true */ - - if (EulerObject_Check(a) && EulerObject_Check(b)) { - EulerObject *eulA= (EulerObject*)a; - EulerObject *eulB= (EulerObject*)b; - - if(BaseMath_ReadCallback(eulA) == -1 || BaseMath_ReadCallback(eulB) == -1) - return NULL; - - ok= ((eulA->order == eulB->order) && EXPP_VectorsAreEqual(eulA->eul, eulB->eul, EULER_SIZE, 1)) ? 0 : -1; - } - - switch (op) { - case Py_NE: - ok = !ok; /* pass through */ - case Py_EQ: - res = ok ? Py_False : Py_True; - break; - - case Py_LT: - case Py_LE: - case Py_GT: - case Py_GE: - res = Py_NotImplemented; - break; - default: - PyErr_BadArgument(); - return NULL; - } - - return Py_INCREF(res), res; -} - -//---------------------SEQUENCE PROTOCOLS------------------------ -//----------------------------len(object)------------------------ -//sequence length -static int Euler_len(EulerObject *UNUSED(self)) -{ - return EULER_SIZE; -} -//----------------------------object[]--------------------------- -//sequence accessor (get) -static PyObject *Euler_item(EulerObject * self, int i) -{ - if(i<0) i= EULER_SIZE-i; - - if(i < 0 || i >= EULER_SIZE) { - PyErr_SetString(PyExc_IndexError, - "euler[attribute]: " - "array index out of range"); - return NULL; - } - - if(BaseMath_ReadIndexCallback(self, i) == -1) - return NULL; - - return PyFloat_FromDouble(self->eul[i]); - -} -//----------------------------object[]------------------------- -//sequence accessor (set) -static int Euler_ass_item(EulerObject * self, int i, PyObject *value) -{ - float f = PyFloat_AsDouble(value); - - if(f == -1 && PyErr_Occurred()) { // parsed item not a number - PyErr_SetString(PyExc_TypeError, - "euler[attribute] = x: " - "argument not a number"); - return -1; - } - - if(i<0) i= EULER_SIZE-i; - - if(i < 0 || i >= EULER_SIZE){ - PyErr_SetString(PyExc_IndexError, - "euler[attribute] = x: " - "array assignment index out of range"); - return -1; - } - - self->eul[i] = f; - - if(BaseMath_WriteIndexCallback(self, i) == -1) - return -1; - - return 0; -} -//----------------------------object[z:y]------------------------ -//sequence slice (get) -static PyObject *Euler_slice(EulerObject * self, int begin, int end) -{ - PyObject *tuple; - int count; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - CLAMP(begin, 0, EULER_SIZE); - if (end<0) end= (EULER_SIZE + 1) + end; - CLAMP(end, 0, EULER_SIZE); - begin= MIN2(begin, end); - - tuple= PyTuple_New(end - begin); - for(count = begin; count < end; count++) { - PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->eul[count])); - } - - return tuple; -} -//----------------------------object[z:y]------------------------ -//sequence slice (set) -static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) -{ - int i, size; - float eul[EULER_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - CLAMP(begin, 0, EULER_SIZE); - if (end<0) end= (EULER_SIZE + 1) + end; - CLAMP(end, 0, EULER_SIZE); - begin = MIN2(begin, end); - - if((size=mathutils_array_parse(eul, 0, EULER_SIZE, seq, "mathutils.Euler[begin:end] = []")) == -1) - return -1; - - if(size != (end - begin)){ - PyErr_SetString(PyExc_ValueError, - "euler[begin:end] = []: " - "size mismatch in slice assignment"); - return -1; - } - - for(i= 0; i < EULER_SIZE; i++) - self->eul[begin + i] = eul[i]; - - (void)BaseMath_WriteCallback(self); - return 0; -} - -static PyObject *Euler_subscript(EulerObject *self, PyObject *item) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i; - i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return NULL; - if (i < 0) - i += EULER_SIZE; - return Euler_item(self, i); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, EULER_SIZE, &start, &stop, &step, &slicelength) < 0) - return NULL; - - if (slicelength <= 0) { - return PyTuple_New(0); - } - else if (step == 1) { - return Euler_slice(self, start, stop); - } - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with eulers"); - return NULL; - } - } - else { - PyErr_Format(PyExc_TypeError, - "euler indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return NULL; - } -} - - -static int Euler_ass_subscript(EulerObject *self, PyObject *item, PyObject *value) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return -1; - if (i < 0) - i += EULER_SIZE; - return Euler_ass_item(self, i, value); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, EULER_SIZE, &start, &stop, &step, &slicelength) < 0) - return -1; - - if (step == 1) - return Euler_ass_slice(self, start, stop, value); - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with euler"); - return -1; - } - } - else { - PyErr_Format(PyExc_TypeError, - "euler indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return -1; - } -} - -//-----------------PROTCOL DECLARATIONS-------------------------- -static PySequenceMethods Euler_SeqMethods = { - (lenfunc) Euler_len, /* sq_length */ - (binaryfunc) NULL, /* sq_concat */ - (ssizeargfunc) NULL, /* sq_repeat */ - (ssizeargfunc) Euler_item, /* sq_item */ - (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ - (ssizeobjargproc) Euler_ass_item, /* sq_ass_item */ - (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ - (objobjproc) NULL, /* sq_contains */ - (binaryfunc) NULL, /* sq_inplace_concat */ - (ssizeargfunc) NULL, /* sq_inplace_repeat */ -}; - -static PyMappingMethods Euler_AsMapping = { - (lenfunc)Euler_len, - (binaryfunc)Euler_subscript, - (objobjargproc)Euler_ass_subscript -}; - -/* - * euler axis, euler.x/y/z - */ -static PyObject *Euler_getAxis(EulerObject *self, void *type) -{ - return Euler_item(self, GET_INT_FROM_POINTER(type)); -} - -static int Euler_setAxis(EulerObject *self, PyObject *value, void *type) -{ - return Euler_ass_item(self, GET_INT_FROM_POINTER(type), value); -} - -/* rotation order */ -static PyObject *Euler_getOrder(EulerObject *self, void *UNUSED(closure)) -{ - if(BaseMath_ReadCallback(self) == -1) /* can read order too */ - return NULL; - - return PyUnicode_FromString(euler_order_str(self)); -} - -static int Euler_setOrder(EulerObject *self, PyObject *value, void *UNUSED(closure)) -{ - const char *order_str= _PyUnicode_AsString(value); - short order= euler_order_from_string(order_str, "euler.order"); - - if(order == -1) - return -1; - - self->order= order; - (void)BaseMath_WriteCallback(self); /* order can be written back */ - return 0; -} - -/*****************************************************************************/ -/* Python attributes get/set structure: */ -/*****************************************************************************/ -static PyGetSetDef Euler_getseters[] = { - {(char *)"x", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler X axis in radians.\n\n:type: float", (void *)0}, - {(char *)"y", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler Y axis in radians.\n\n:type: float", (void *)1}, - {(char *)"z", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler Z axis in radians.\n\n:type: float", (void *)2}, - {(char *)"order", (getter)Euler_getOrder, (setter)Euler_setOrder, (char *)"Euler rotation order.\n\n:type: string in ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX']", (void *)NULL}, - - {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, - {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, - {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ -}; - - -//-----------------------METHOD DEFINITIONS ---------------------- -static struct PyMethodDef Euler_methods[] = { - {"zero", (PyCFunction) Euler_zero, METH_NOARGS, Euler_zero_doc}, - {"to_matrix", (PyCFunction) Euler_to_matrix, METH_NOARGS, Euler_to_matrix_doc}, - {"to_quaternion", (PyCFunction) Euler_to_quaternion, METH_NOARGS, Euler_to_quaternion_doc}, - {"rotate_axis", (PyCFunction) Euler_rotate_axis, METH_VARARGS, Euler_rotate_axis_doc}, - {"rotate", (PyCFunction) Euler_rotate, METH_O, Euler_rotate_doc}, - {"make_compatible", (PyCFunction) Euler_make_compatible, METH_O, Euler_make_compatible_doc}, - {"__copy__", (PyCFunction) Euler_copy, METH_NOARGS, Euler_copy_doc}, - {"copy", (PyCFunction) Euler_copy, METH_NOARGS, Euler_copy_doc}, - {NULL, NULL, 0, NULL} -}; - -//------------------PY_OBECT DEFINITION-------------------------- -PyDoc_STRVAR(euler_doc, -"This object gives access to Eulers in Blender." -); -PyTypeObject euler_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "mathutils.Euler", //tp_name - sizeof(EulerObject), //tp_basicsize - 0, //tp_itemsize - (destructor)BaseMathObject_dealloc, //tp_dealloc - NULL, //tp_print - NULL, //tp_getattr - NULL, //tp_setattr - NULL, //tp_compare - (reprfunc) Euler_repr, //tp_repr - NULL, //tp_as_number - &Euler_SeqMethods, //tp_as_sequence - &Euler_AsMapping, //tp_as_mapping - NULL, //tp_hash - NULL, //tp_call - NULL, //tp_str - NULL, //tp_getattro - NULL, //tp_setattro - NULL, //tp_as_buffer - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags - euler_doc, //tp_doc - (traverseproc)BaseMathObject_traverse, //tp_traverse - (inquiry)BaseMathObject_clear, //tp_clear - (richcmpfunc)Euler_richcmpr, //tp_richcompare - 0, //tp_weaklistoffset - NULL, //tp_iter - NULL, //tp_iternext - Euler_methods, //tp_methods - NULL, //tp_members - Euler_getseters, //tp_getset - NULL, //tp_base - NULL, //tp_dict - NULL, //tp_descr_get - NULL, //tp_descr_set - 0, //tp_dictoffset - NULL, //tp_init - NULL, //tp_alloc - Euler_new, //tp_new - NULL, //tp_free - NULL, //tp_is_gc - NULL, //tp_bases - NULL, //tp_mro - NULL, //tp_cache - NULL, //tp_subclasses - NULL, //tp_weaklist - NULL //tp_del -}; -//------------------------newEulerObject (internal)------------- -//creates a new euler object -/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER - (i.e. it was allocated elsewhere by MEM_mallocN()) - pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON - (i.e. it must be created here with PyMEM_malloc())*/ -PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_type) -{ - EulerObject *self; - - self= base_type ? (EulerObject *)base_type->tp_alloc(base_type, 0) : - (EulerObject *)PyObject_GC_New(EulerObject, &euler_Type); - - if(self) { - /* init callbacks as NULL */ - self->cb_user= NULL; - self->cb_type= self->cb_subtype= 0; - - if(type == Py_WRAP) { - self->eul = eul; - self->wrapped = Py_WRAP; - } - else if (type == Py_NEW) { - self->eul = PyMem_Malloc(EULER_SIZE * sizeof(float)); - if(eul) { - copy_v3_v3(self->eul, eul); - } - else { - zero_v3(self->eul); - } - - self->wrapped = Py_NEW; - } - else { - Py_FatalError("Euler(): invalid type!"); - } - - self->order= order; - } - - return (PyObject *)self; -} - -PyObject *newEulerObject_cb(PyObject *cb_user, short order, int cb_type, int cb_subtype) -{ - EulerObject *self= (EulerObject *)newEulerObject(NULL, order, Py_NEW, NULL); - if(self) { - Py_INCREF(cb_user); - self->cb_user= cb_user; - self->cb_type= (unsigned char)cb_type; - self->cb_subtype= (unsigned char)cb_subtype; - PyObject_GC_Track(self); - } - - return (PyObject *)self; -} diff --git a/source/blender/python/generic/mathutils_Euler.h b/source/blender/python/generic/mathutils_Euler.h deleted file mode 100644 index 849e16c2bb7..00000000000 --- a/source/blender/python/generic/mathutils_Euler.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - * - */ - -/** \file blender/python/generic/mathutils_Euler.h - * \ingroup pygen - */ - - -#ifndef MATHUTILS_EULER_H -#define MATHUTILS_EULER_H - -extern PyTypeObject euler_Type; -#define EulerObject_Check(_v) PyObject_TypeCheck((_v), &euler_Type) - -typedef struct { - BASE_MATH_MEMBERS(eul) - unsigned char order; /* rotation order */ - -} EulerObject; - -/*struct data contains a pointer to the actual data that the -object uses. It can use either PyMem allocated data (which will -be stored in py_data) or be a wrapper for data allocated through -blender (stored in blend_data). This is an either/or struct not both*/ - -//prototypes -PyObject *newEulerObject( float *eul, short order, int type, PyTypeObject *base_type); -PyObject *newEulerObject_cb(PyObject *cb_user, short order, int cb_type, int cb_subtype); - -short euler_order_from_string(const char *str, const char *error_prefix); - - -#endif /* MATHUTILS_EULER_H */ diff --git a/source/blender/python/generic/mathutils_Matrix.c b/source/blender/python/generic/mathutils_Matrix.c deleted file mode 100644 index c5ed1e32ee8..00000000000 --- a/source/blender/python/generic/mathutils_Matrix.c +++ /dev/null @@ -1,2042 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * Contributor(s): Michel Selten & Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_Matrix.c - * \ingroup pygen - */ - - -#include - -#include "mathutils.h" - -#include "BLI_math.h" -#include "BLI_blenlib.h" -#include "BLI_utildefines.h" - -static PyObject *Matrix_copy(MatrixObject *self); -static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *value); -static PyObject *matrix__apply_to_copy(PyNoArgsFunction matrix_func, MatrixObject *self); - -/* matrix vector callbacks */ -int mathutils_matrix_vector_cb_index= -1; - -static int mathutils_matrix_vector_check(BaseMathObject *bmo) -{ - MatrixObject *self= (MatrixObject *)bmo->cb_user; - return BaseMath_ReadCallback(self); -} - -static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype) -{ - MatrixObject *self= (MatrixObject *)bmo->cb_user; - int i; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - for(i=0; i < self->col_size; i++) - bmo->data[i]= self->matrix[subtype][i]; - - return 0; -} - -static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype) -{ - MatrixObject *self= (MatrixObject *)bmo->cb_user; - int i; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - for(i=0; i < self->col_size; i++) - self->matrix[subtype][i]= bmo->data[i]; - - (void)BaseMath_WriteCallback(self); - return 0; -} - -static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, int index) -{ - MatrixObject *self= (MatrixObject *)bmo->cb_user; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - bmo->data[index]= self->matrix[subtype][index]; - return 0; -} - -static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, int index) -{ - MatrixObject *self= (MatrixObject *)bmo->cb_user; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - self->matrix[subtype][index]= bmo->data[index]; - - (void)BaseMath_WriteCallback(self); - return 0; -} - -Mathutils_Callback mathutils_matrix_vector_cb = { - mathutils_matrix_vector_check, - mathutils_matrix_vector_get, - mathutils_matrix_vector_set, - mathutils_matrix_vector_get_index, - mathutils_matrix_vector_set_index -}; -/* matrix vector callbacks, this is so you can do matrix[i][j] = val */ - -//----------------------------------mathutils.Matrix() ----------------- -//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. -//create a new matrix type -static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) -{ - if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, - "mathutils.Matrix(): " - "takes no keyword args"); - return NULL; - } - - switch(PyTuple_GET_SIZE(args)) { - case 0: - return (PyObject *) newMatrixObject(NULL, 4, 4, Py_NEW, type); - case 1: - { - PyObject *arg= PyTuple_GET_ITEM(args, 0); - - /* -1 is an error, size checks will accunt for this */ - const unsigned short row_size= PySequence_Size(arg); - - if(row_size >= 2 && row_size <= 4) { - PyObject *item= PySequence_GetItem(arg, 0); - const unsigned short col_size= PySequence_Size(item); - Py_XDECREF(item); - - if(col_size >= 2 && col_size <= 4) { - /* sane row & col size, new matrix and assign as slice */ - PyObject *matrix= newMatrixObject(NULL, row_size, col_size, Py_NEW, type); - if(Matrix_ass_slice((MatrixObject *)matrix, 0, INT_MAX, arg) == 0) { - return matrix; - } - else { /* matrix ok, slice assignment not */ - Py_DECREF(matrix); - } - } - } - } - } - - /* will overwrite error */ - PyErr_SetString(PyExc_TypeError, - "mathutils.Matrix(): " - "expects no args or 2-4 numeric sequences"); - return NULL; -} - -static PyObject *matrix__apply_to_copy(PyNoArgsFunction matrix_func, MatrixObject *self) -{ - PyObject *ret= Matrix_copy(self); - PyObject *ret_dummy= matrix_func(ret); - if(ret_dummy) { - Py_DECREF(ret_dummy); - return (PyObject *)ret; - } - else { /* error */ - Py_DECREF(ret); - return NULL; - } -} - -/* when a matrix is 4x4 size but initialized as a 3x3, re-assign values for 4x4 */ -static void matrix_3x3_as_4x4(float mat[16]) -{ - mat[10] = mat[8]; - mat[9] = mat[7]; - mat[8] = mat[6]; - mat[7] = 0.0f; - mat[6] = mat[5]; - mat[5] = mat[4]; - mat[4] = mat[3]; - mat[3] = 0.0f; -} - -/*-----------------------CLASS-METHODS----------------------------*/ - -//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. -PyDoc_STRVAR(C_Matrix_Rotation_doc, -".. classmethod:: Rotation(angle, size, axis)\n" -"\n" -" Create a matrix representing a rotation.\n" -"\n" -" :arg angle: The angle of rotation desired, in radians.\n" -" :type angle: float\n" -" :arg size: The size of the rotation matrix to construct [2, 4].\n" -" :type size: int\n" -" :arg axis: a string in ['X', 'Y', 'Z'] or a 3D Vector Object\n" -" (optional when size is 2).\n" -" :type axis: string or :class:`Vector`\n" -" :return: A new rotation matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) -{ - PyObject *vec= NULL; - const char *axis= NULL; - int matSize; - double angle; /* use double because of precision problems at high values */ - float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - - if(!PyArg_ParseTuple(args, "di|O", &angle, &matSize, &vec)) { - PyErr_SetString(PyExc_TypeError, - "mathutils.RotationMatrix(angle, size, axis): " - "expected float int and a string or vector"); - return NULL; - } - - if(vec && PyUnicode_Check(vec)) { - axis= _PyUnicode_AsString((PyObject *)vec); - if(axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { - PyErr_SetString(PyExc_ValueError, - "mathutils.RotationMatrix(): " - "3rd argument axis value must be a 3D vector " - "or a string in 'X', 'Y', 'Z'"); - return NULL; - } - else { - /* use the string */ - vec= NULL; - } - } - - angle= angle_wrap_rad(angle); - - if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_ValueError, - "mathutils.RotationMatrix(): " - "can only return a 2x2 3x3 or 4x4 matrix"); - return NULL; - } - if(matSize == 2 && (vec != NULL)) { - PyErr_SetString(PyExc_ValueError, - "mathutils.RotationMatrix(): " - "cannot create a 2x2 rotation matrix around arbitrary axis"); - return NULL; - } - if((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { - PyErr_SetString(PyExc_ValueError, - "mathutils.RotationMatrix(): " - "axis of rotation for 3d and 4d matrices is required"); - return NULL; - } - - /* check for valid vector/axis above */ - if(vec) { - float tvec[3]; - - if (mathutils_array_parse(tvec, 3, 3, vec, "mathutils.RotationMatrix(angle, size, axis), invalid 'axis' arg") == -1) - return NULL; - - axis_angle_to_mat3((float (*)[3])mat, tvec, angle); - } - else if(matSize == 2) { - //2D rotation matrix - mat[0] = (float) cos (angle); - mat[1] = (float) sin (angle); - mat[2] = -((float) sin(angle)); - mat[3] = (float) cos(angle); - } - else if(strcmp(axis, "X") == 0) { - //rotation around X - mat[0] = 1.0f; - mat[4] = (float) cos(angle); - mat[5] = (float) sin(angle); - mat[7] = -((float) sin(angle)); - mat[8] = (float) cos(angle); - } - else if(strcmp(axis, "Y") == 0) { - //rotation around Y - mat[0] = (float) cos(angle); - mat[2] = -((float) sin(angle)); - mat[4] = 1.0f; - mat[6] = (float) sin(angle); - mat[8] = (float) cos(angle); - } - else if(strcmp(axis, "Z") == 0) { - //rotation around Z - mat[0] = (float) cos(angle); - mat[1] = (float) sin(angle); - mat[3] = -((float) sin(angle)); - mat[4] = (float) cos(angle); - mat[8] = 1.0f; - } - else { - /* should never get here */ - PyErr_SetString(PyExc_ValueError, - "mathutils.RotationMatrix(): unknown error"); - return NULL; - } - - if(matSize == 4) { - matrix_3x3_as_4x4(mat); - } - //pass to matrix creation - return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); -} - - -PyDoc_STRVAR(C_Matrix_Translation_doc, -".. classmethod:: Translation(vector)\n" -"\n" -" Create a matrix representing a translation.\n" -"\n" -" :arg vector: The translation vector.\n" -" :type vector: :class:`Vector`\n" -" :return: An identity matrix with a translation.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *C_Matrix_Translation(PyObject *cls, PyObject *value) -{ - float mat[16], tvec[3]; - - if (mathutils_array_parse(tvec, 3, 4, value, "mathutils.Matrix.Translation(vector), invalid vector arg") == -1) - return NULL; - - /* create a identity matrix and add translation */ - unit_m4((float(*)[4]) mat); - copy_v3_v3(mat + 12, tvec); /* 12, 13, 14 */ - return newMatrixObject(mat, 4, 4, Py_NEW, (PyTypeObject *)cls); -} -//----------------------------------mathutils.Matrix.Scale() ------------- -//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. -PyDoc_STRVAR(C_Matrix_Scale_doc, -".. classmethod:: Scale(factor, size, axis)\n" -"\n" -" Create a matrix representing a scaling.\n" -"\n" -" :arg factor: The factor of scaling to apply.\n" -" :type factor: float\n" -" :arg size: The size of the scale matrix to construct [2, 4].\n" -" :type size: int\n" -" :arg axis: Direction to influence scale. (optional).\n" -" :type axis: :class:`Vector`\n" -" :return: A new scale matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) -{ - PyObject *vec= NULL; - int vec_size; - float tvec[3]; - float factor; - int matSize; - float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - - if(!PyArg_ParseTuple(args, "fi|O:Matrix.Scale", &factor, &matSize, &vec)) { - return NULL; - } - if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_ValueError, - "Matrix.Scale(): " - "can only return a 2x2 3x3 or 4x4 matrix"); - return NULL; - } - if(vec) { - vec_size= (matSize == 2 ? 2 : 3); - if(mathutils_array_parse(tvec, vec_size, vec_size, vec, "Matrix.Scale(factor, size, axis), invalid 'axis' arg") == -1) { - return NULL; - } - } - if(vec == NULL) { //scaling along axis - if(matSize == 2) { - mat[0] = factor; - mat[3] = factor; - } - else { - mat[0] = factor; - mat[4] = factor; - mat[8] = factor; - } - } - else { //scaling in arbitrary direction - //normalize arbitrary axis - float norm = 0.0f; - int x; - for(x = 0; x < vec_size; x++) { - norm += tvec[x] * tvec[x]; - } - norm = (float) sqrt(norm); - for(x = 0; x < vec_size; x++) { - tvec[x] /= norm; - } - if(matSize == 2) { - mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); - mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); - mat[2] = ((factor - 1) *(tvec[0] * tvec[1])); - mat[3] = 1 + ((factor - 1) *(tvec[1] * tvec[1])); - } - else { - mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); - mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); - mat[2] = ((factor - 1) *(tvec[0] * tvec[2])); - mat[3] = ((factor - 1) *(tvec[0] * tvec[1])); - mat[4] = 1 + ((factor - 1) *(tvec[1] * tvec[1])); - mat[5] = ((factor - 1) *(tvec[1] * tvec[2])); - mat[6] = ((factor - 1) *(tvec[0] * tvec[2])); - mat[7] = ((factor - 1) *(tvec[1] * tvec[2])); - mat[8] = 1 + ((factor - 1) *(tvec[2] * tvec[2])); - } - } - if(matSize == 4) { - matrix_3x3_as_4x4(mat); - } - //pass to matrix creation - return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); -} -//----------------------------------mathutils.Matrix.OrthoProjection() --- -//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. -PyDoc_STRVAR(C_Matrix_OrthoProjection_doc, -".. classmethod:: OrthoProjection(axis, size)\n" -"\n" -" Create a matrix to represent an orthographic projection.\n" -"\n" -" :arg axis: Can be any of the following: ['X', 'Y', 'XY', 'XZ', 'YZ'],\n" -" where a single axis is for a 2D matrix.\n" -" Or a vector for an arbitrary axis\n" -" :type axis: string or :class:`Vector`\n" -" :arg size: The size of the projection matrix to construct [2, 4].\n" -" :type size: int\n" -" :return: A new projection matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) -{ - PyObject *axis; - - int matSize, x; - float norm = 0.0f; - float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - - if(!PyArg_ParseTuple(args, "Oi:Matrix.OrthoProjection", &axis, &matSize)) { - return NULL; - } - if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_ValueError, - "mathutils.Matrix.OrthoProjection(): " - "can only return a 2x2 3x3 or 4x4 matrix"); - return NULL; - } - - if(PyUnicode_Check(axis)) { //ortho projection onto cardinal plane - Py_ssize_t plane_len; - const char *plane= _PyUnicode_AsStringAndSize(axis, &plane_len); - if(matSize == 2) { - if(plane_len == 1 && plane[0]=='X') { - mat[0]= 1.0f; - } - else if (plane_len == 1 && plane[0]=='Y') { - mat[3]= 1.0f; - } - else { - PyErr_Format(PyExc_ValueError, - "mathutils.Matrix.OrthoProjection(): " - "unknown plane, expected: X, Y, not '%.200s'", - plane); - return NULL; - } - } - else { - if(plane_len == 2 && plane[0]=='X' && plane[1]=='Y') { - mat[0]= 1.0f; - mat[4]= 1.0f; - } - else if (plane_len == 2 && plane[0]=='X' && plane[1]=='Z') { - mat[0]= 1.0f; - mat[8]= 1.0f; - } - else if (plane_len == 2 && plane[0]=='Y' && plane[1]=='Z') { - mat[4]= 1.0f; - mat[8]= 1.0f; - } - else { - PyErr_Format(PyExc_ValueError, - "mathutils.Matrix.OrthoProjection(): " - "unknown plane, expected: XY, XZ, YZ, not '%.200s'", - plane); - return NULL; - } - } - } - else { - //arbitrary plane - - int vec_size= (matSize == 2 ? 2 : 3); - float tvec[4]; - - if(mathutils_array_parse(tvec, vec_size, vec_size, axis, "Matrix.OrthoProjection(axis, size), invalid 'axis' arg") == -1) { - return NULL; - } - - //normalize arbitrary axis - for(x = 0; x < vec_size; x++) { - norm += tvec[x] * tvec[x]; - } - norm = (float) sqrt(norm); - for(x = 0; x < vec_size; x++) { - tvec[x] /= norm; - } - if(matSize == 2) { - mat[0] = 1 - (tvec[0] * tvec[0]); - mat[1] = -(tvec[0] * tvec[1]); - mat[2] = -(tvec[0] * tvec[1]); - mat[3] = 1 - (tvec[1] * tvec[1]); - } - else if(matSize > 2) { - mat[0] = 1 - (tvec[0] * tvec[0]); - mat[1] = -(tvec[0] * tvec[1]); - mat[2] = -(tvec[0] * tvec[2]); - mat[3] = -(tvec[0] * tvec[1]); - mat[4] = 1 - (tvec[1] * tvec[1]); - mat[5] = -(tvec[1] * tvec[2]); - mat[6] = -(tvec[0] * tvec[2]); - mat[7] = -(tvec[1] * tvec[2]); - mat[8] = 1 - (tvec[2] * tvec[2]); - } - } - if(matSize == 4) { - matrix_3x3_as_4x4(mat); - } - //pass to matrix creation - return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); -} - -PyDoc_STRVAR(C_Matrix_Shear_doc, -".. classmethod:: Shear(plane, size, factor)\n" -"\n" -" Create a matrix to represent an shear transformation.\n" -"\n" -" :arg plane: Can be any of the following: ['X', 'Y', 'XY', 'XZ', 'YZ'],\n" -" where a single axis is for a 2D matrix only.\n" -" :type plane: string\n" -" :arg size: The size of the shear matrix to construct [2, 4].\n" -" :type size: int\n" -" :arg factor: The factor of shear to apply. For a 3 or 4 *size* matrix\n" -" pass a pair of floats corrasponding with the *plane* axis.\n" -" :type factor: float or float pair\n" -" :return: A new shear matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) -{ - int matSize; - const char *plane; - PyObject *fac; - float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - - if(!PyArg_ParseTuple(args, "siO:Matrix.Shear", &plane, &matSize, &fac)) { - return NULL; - } - if(matSize != 2 && matSize != 3 && matSize != 4) { - PyErr_SetString(PyExc_ValueError, - "mathutils.Matrix.Shear(): " - "can only return a 2x2 3x3 or 4x4 matrix"); - return NULL; - } - - if(matSize == 2) { - float const factor= PyFloat_AsDouble(fac); - - if(factor==-1.0f && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "mathutils.Matrix.Shear(): " - "the factor to be a float"); - return NULL; - } - - /* unit */ - mat[0] = 1.0f; - mat[3] = 1.0f; - - if(strcmp(plane, "X") == 0) { - mat[2] = factor; - } - else if(strcmp(plane, "Y") == 0) { - mat[1] = factor; - } - else { - PyErr_SetString(PyExc_ValueError, - "Matrix.Shear(): " - "expected: X, Y or wrong matrix size for shearing plane"); - return NULL; - } - } - else { - /* 3 or 4, apply as 3x3, resize later if needed */ - float factor[2]; - - if(mathutils_array_parse(factor, 2, 2, fac, "Matrix.Shear()") < 0) { - return NULL; - } - - /* unit */ - mat[0] = 1.0f; - mat[4] = 1.0f; - mat[8] = 1.0f; - - if(strcmp(plane, "XY") == 0) { - mat[6] = factor[0]; - mat[7] = factor[1]; - } - else if(strcmp(plane, "XZ") == 0) { - mat[3] = factor[0]; - mat[5] = factor[1]; - } - else if(strcmp(plane, "YZ") == 0) { - mat[1] = factor[0]; - mat[2] = factor[1]; - } - else { - PyErr_SetString(PyExc_ValueError, - "mathutils.Matrix.Shear(): " - "expected: X, Y, XY, XZ, YZ"); - return NULL; - } - } - - if(matSize == 4) { - matrix_3x3_as_4x4(mat); - } - //pass to matrix creation - return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); -} - -void matrix_as_3x3(float mat[3][3], MatrixObject *self) -{ - copy_v3_v3(mat[0], self->matrix[0]); - copy_v3_v3(mat[1], self->matrix[1]); - copy_v3_v3(mat[2], self->matrix[2]); -} - -/* assumes rowsize == colsize is checked and the read callback has run */ -static float matrix_determinant_internal(MatrixObject *self) -{ - if(self->row_size == 2) { - return determinant_m2(self->matrix[0][0], self->matrix[0][1], - self->matrix[1][0], self->matrix[1][1]); - } - else if(self->row_size == 3) { - return determinant_m3(self->matrix[0][0], self->matrix[0][1], - self->matrix[0][2], self->matrix[1][0], - self->matrix[1][1], self->matrix[1][2], - self->matrix[2][0], self->matrix[2][1], - self->matrix[2][2]); - } - else { - return determinant_m4((float (*)[4])self->contigPtr); - } -} - - -/*-----------------------------METHODS----------------------------*/ -PyDoc_STRVAR(Matrix_to_quaternion_doc, -".. method:: to_quaternion()\n" -"\n" -" Return a quaternion representation of the rotation matrix.\n" -"\n" -" :return: Quaternion representation of the rotation matrix.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Matrix_to_quaternion(MatrixObject *self) -{ - float quat[4]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { - PyErr_SetString(PyExc_ValueError, - "matrix.to_quat(): " - "inappropriate matrix size - expects 3x3 or 4x4 matrix"); - return NULL; - } - if(self->col_size == 3){ - mat3_to_quat(quat, (float (*)[3])self->contigPtr); - } - else { - mat4_to_quat(quat, (float (*)[4])self->contigPtr); - } - - return newQuaternionObject(quat, Py_NEW, NULL); -} - -/*---------------------------matrix.toEuler() --------------------*/ -PyDoc_STRVAR(Matrix_to_euler_doc, -".. method:: to_euler(order, euler_compat)\n" -"\n" -" Return an Euler representation of the rotation matrix\n" -" (3x3 or 4x4 matrix only).\n" -"\n" -" :arg order: Optional rotation order argument in\n" -" ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'].\n" -" :type order: string\n" -" :arg euler_compat: Optional euler argument the new euler will be made\n" -" compatible with (no axis flipping between them).\n" -" Useful for converting a series of matrices to animation curves.\n" -" :type euler_compat: :class:`Euler`\n" -" :return: Euler representation of the matrix.\n" -" :rtype: :class:`Euler`\n" -); -static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) -{ - const char *order_str= NULL; - short order= EULER_ORDER_XYZ; - float eul[3], eul_compatf[3]; - EulerObject *eul_compat = NULL; - - float tmat[3][3]; - float (*mat)[3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) - return NULL; - - if(eul_compat) { - if(BaseMath_ReadCallback(eul_compat) == -1) - return NULL; - - copy_v3_v3(eul_compatf, eul_compat->eul); - } - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size ==3 && self->row_size ==3) { - mat= (float (*)[3])self->contigPtr; - } - else if (self->col_size ==4 && self->row_size ==4) { - copy_m3_m4(tmat, (float (*)[4])self->contigPtr); - mat= tmat; - } - else { - PyErr_SetString(PyExc_ValueError, - "matrix.to_euler(): " - "inappropriate matrix size - expects 3x3 or 4x4 matrix"); - return NULL; - } - - if(order_str) { - order= euler_order_from_string(order_str, "matrix.to_euler()"); - - if(order == -1) - return NULL; - } - - if(eul_compat) { - if(order == 1) mat3_to_compatible_eul(eul, eul_compatf, mat); - else mat3_to_compatible_eulO(eul, eul_compatf, order, mat); - } - else { - if(order == 1) mat3_to_eul(eul, mat); - else mat3_to_eulO(eul, order, mat); - } - - return newEulerObject(eul, order, Py_NEW, NULL); -} - -PyDoc_STRVAR(Matrix_resize_4x4_doc, -".. method:: resize_4x4()\n" -"\n" -" Resize the matrix to 4x4.\n" -); -static PyObject *Matrix_resize_4x4(MatrixObject *self) -{ - int x, first_row_elem, curr_pos, new_pos, blank_columns, blank_rows, index; - - if(self->wrapped==Py_WRAP){ - PyErr_SetString(PyExc_TypeError, - "cannot resize wrapped data - make a copy and resize that"); - return NULL; - } - if(self->cb_user){ - PyErr_SetString(PyExc_TypeError, - "cannot resize owned data - make a copy and resize that"); - return NULL; - } - - self->contigPtr = PyMem_Realloc(self->contigPtr, (sizeof(float) * 16)); - if(self->contigPtr == NULL) { - PyErr_SetString(PyExc_MemoryError, - "matrix.resize_4x4(): problem allocating pointer space"); - return NULL; - } - /*set row pointers*/ - for(x = 0; x < 4; x++) { - self->matrix[x] = self->contigPtr + (x * 4); - } - /*move data to new spot in array + clean*/ - for(blank_rows = (4 - self->row_size); blank_rows > 0; blank_rows--){ - for(x = 0; x < 4; x++){ - index = (4 * (self->row_size + (blank_rows - 1))) + x; - if (index == 10 || index == 15){ - self->contigPtr[index] = 1.0f; - } - else { - self->contigPtr[index] = 0.0f; - } - } - } - for(x = 1; x <= self->row_size; x++){ - first_row_elem = (self->col_size * (self->row_size - x)); - curr_pos = (first_row_elem + (self->col_size -1)); - new_pos = (4 * (self->row_size - x)) + (curr_pos - first_row_elem); - for(blank_columns = (4 - self->col_size); blank_columns > 0; blank_columns--){ - self->contigPtr[new_pos + blank_columns] = 0.0f; - } - for( ; curr_pos >= first_row_elem; curr_pos--){ - self->contigPtr[new_pos] = self->contigPtr[curr_pos]; - new_pos--; - } - } - self->row_size = 4; - self->col_size = 4; - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Matrix_to_4x4_doc, -".. method:: to_4x4()\n" -"\n" -" Return a 4x4 copy of this matrix.\n" -"\n" -" :return: a new matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_to_4x4(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(self->col_size==4 && self->row_size==4) { - return (PyObject *)newMatrixObject(self->contigPtr, 4, 4, Py_NEW, Py_TYPE(self)); - } - else if(self->col_size==3 && self->row_size==3) { - float mat[4][4]; - copy_m4_m3(mat, (float (*)[3])self->contigPtr); - return (PyObject *)newMatrixObject((float *)mat, 4, 4, Py_NEW, Py_TYPE(self)); - } - /* TODO, 2x2 matrix */ - - PyErr_SetString(PyExc_TypeError, - "matrix.to_4x4(): inappropriate matrix size"); - return NULL; -} - -PyDoc_STRVAR(Matrix_to_3x3_doc, -".. method:: to_3x3()\n" -"\n" -" Return a 3x3 copy of this matrix.\n" -"\n" -" :return: a new matrix.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_to_3x3(MatrixObject *self) -{ - float mat[3][3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_TypeError, - "matrix.to_3x3(): inappropriate matrix size"); - return NULL; - } - - matrix_as_3x3(mat, self); - - return newMatrixObject((float *)mat, 3, 3, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Matrix_to_translation_doc, -".. method:: to_translation()\n" -"\n" -" Return a the translation part of a 4 row matrix.\n" -"\n" -" :return: Return a the translation of a matrix.\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Matrix_to_translation(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if((self->col_size < 3) || self->row_size < 4){ - PyErr_SetString(PyExc_TypeError, - "matrix.to_translation(): " - "inappropriate matrix size"); - return NULL; - } - - return newVectorObject(self->matrix[3], 3, Py_NEW, NULL); -} - -PyDoc_STRVAR(Matrix_to_scale_doc, -".. method:: to_scale()\n" -"\n" -" Return a the scale part of a 3x3 or 4x4 matrix.\n" -"\n" -" :return: Return a the scale of a matrix.\n" -" :rtype: :class:`Vector`\n" -"\n" -" .. note:: This method does not return negative a scale on any axis because it is not possible to obtain this data from the matrix alone.\n" -); -static PyObject *Matrix_to_scale(MatrixObject *self) -{ - float rot[3][3]; - float mat[3][3]; - float size[3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_TypeError, - "matrix.to_scale(): " - "inappropriate matrix size, 3x3 minimum size"); - return NULL; - } - - matrix_as_3x3(mat, self); - - /* compatible mat4_to_loc_rot_size */ - mat3_to_rot_size(rot, size, mat); - - return newVectorObject(size, 3, Py_NEW, NULL); -} - -/*---------------------------matrix.invert() ---------------------*/ -PyDoc_STRVAR(Matrix_invert_doc, -".. method:: invert()\n" -"\n" -" Set the matrix to its inverse.\n" -"\n" -" .. note:: :exc:`ValueError` exception is raised.\n" -"\n" -" .. seealso:: \n" -); -static PyObject *Matrix_invert(MatrixObject *self) -{ - - int x, y, z = 0; - float det = 0.0f; - float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_TypeError, - "matrix.invert(ed): " - "only square matrices are supported"); - return NULL; - } - - /*calculate the determinant*/ - det = matrix_determinant_internal(self); - - if(det != 0) { - /*calculate the classical adjoint*/ - if(self->row_size == 2) { - mat[0] = self->matrix[1][1]; - mat[1] = -self->matrix[0][1]; - mat[2] = -self->matrix[1][0]; - mat[3] = self->matrix[0][0]; - } else if(self->row_size == 3) { - adjoint_m3_m3((float (*)[3]) mat,(float (*)[3])self->contigPtr); - } else if(self->row_size == 4) { - adjoint_m4_m4((float (*)[4]) mat, (float (*)[4])self->contigPtr); - } - /*divide by determinate*/ - for(x = 0; x < (self->row_size * self->col_size); x++) { - mat[x] /= det; - } - /*set values*/ - for(x = 0; x < self->row_size; x++) { - for(y = 0; y < self->col_size; y++) { - self->matrix[x][y] = mat[z]; - z++; - } - } - /*transpose - Matrix_transpose(self);*/ - } - else { - PyErr_SetString(PyExc_ValueError, - "matrix does not have an inverse"); - return NULL; - } - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Matrix_inverted_doc, -".. method:: inverted()\n" -"\n" -" Return an inverted copy of the matrix.\n" -"\n" -" :return: the inverted matrix.\n" -" :rtype: :class:`Matrix`\n" -"\n" -" .. note:: :exc:`ValueError` exception is raised.\n" -); -static PyObject *Matrix_inverted(MatrixObject *self) -{ - return matrix__apply_to_copy((PyNoArgsFunction)Matrix_invert, self); -} - -PyDoc_STRVAR(Matrix_rotate_doc, -".. method:: rotate(other)\n" -"\n" -" Rotates the matrix a by another mathutils value.\n" -"\n" -" :arg other: rotation component of mathutils value\n" -" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" -"\n" -" .. note:: If any of the columns are not unit length this may not have desired results.\n" -); -static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) -{ - float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1) - return NULL; - - if(self->col_size != 3 || self->row_size != 3) { - PyErr_SetString(PyExc_TypeError, - "Matrix must have 3x3 dimensions"); - return NULL; - } - - matrix_as_3x3(self_rmat, self); - mul_m3_m3m3(rmat, self_rmat, other_rmat); - - copy_m3_m3((float (*)[3])(self->contigPtr), rmat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -/*---------------------------matrix.decompose() ---------------------*/ -PyDoc_STRVAR(Matrix_decompose_doc, -".. method:: decompose()\n" -"\n" -" Return the location, rotaion and scale components of this matrix.\n" -"\n" -" :return: loc, rot, scale triple.\n" -" :rtype: (:class:`Vector`, :class:`Quaternion`, :class:`Vector`)" -); -static PyObject *Matrix_decompose(MatrixObject *self) -{ - PyObject *ret; - float loc[3]; - float rot[3][3]; - float quat[4]; - float size[3]; - - if(self->col_size != 4 || self->row_size != 4) { - PyErr_SetString(PyExc_TypeError, - "matrix.decompose(): " - "inappropriate matrix size - expects 4x4 matrix"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - mat4_to_loc_rot_size(loc, rot, size, (float (*)[4])self->contigPtr); - mat3_to_quat(quat, rot); - - ret= PyTuple_New(3); - PyTuple_SET_ITEM(ret, 0, newVectorObject(loc, 3, Py_NEW, NULL)); - PyTuple_SET_ITEM(ret, 1, newQuaternionObject(quat, Py_NEW, NULL)); - PyTuple_SET_ITEM(ret, 2, newVectorObject(size, 3, Py_NEW, NULL)); - - return ret; -} - - - -PyDoc_STRVAR(Matrix_lerp_doc, -".. function:: lerp(other, factor)\n" -"\n" -" Returns the interpolation of two matricies.\n" -"\n" -" :arg other: value to interpolate with.\n" -" :type other: :class:`Matrix`\n" -" :arg factor: The interpolation value in [0.0, 1.0].\n" -" :type factor: float\n" -" :return: The interpolated rotation.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) -{ - MatrixObject *mat2 = NULL; - float fac, mat[MATRIX_MAX_DIM*MATRIX_MAX_DIM]; - - if(!PyArg_ParseTuple(args, "O!f:lerp", &matrix_Type, &mat2, &fac)) - return NULL; - - if(self->row_size != mat2->row_size || self->col_size != mat2->col_size) { - PyErr_SetString(PyExc_ValueError, - "matrix.lerp(): " - "expects both matrix objects of the same dimensions"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1 || BaseMath_ReadCallback(mat2) == -1) - return NULL; - - /* TODO, different sized matrix */ - if(self->row_size==4 && self->col_size==4) { - blend_m4_m4m4((float (*)[4])mat, (float (*)[4])self->contigPtr, (float (*)[4])mat2->contigPtr, fac); - } - else if (self->row_size==3 && self->col_size==3) { - blend_m3_m3m3((float (*)[3])mat, (float (*)[3])self->contigPtr, (float (*)[3])mat2->contigPtr, fac); - } - else { - PyErr_SetString(PyExc_ValueError, - "matrix.lerp(): " - "only 3x3 and 4x4 matrices supported"); - return NULL; - } - - return (PyObject*)newMatrixObject(mat, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); -} - -/*---------------------------matrix.determinant() ----------------*/ -PyDoc_STRVAR(Matrix_determinant_doc, -".. method:: determinant()\n" -"\n" -" Return the determinant of a matrix.\n" -"\n" -" :return: Return a the determinant of a matrix.\n" -" :rtype: float\n" -"\n" -" .. seealso:: \n" -); -static PyObject *Matrix_determinant(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_TypeError, - "matrix.determinant: " - "only square matrices are supported"); - return NULL; - } - - return PyFloat_FromDouble((double)matrix_determinant_internal(self)); -} -/*---------------------------matrix.transpose() ------------------*/ -PyDoc_STRVAR(Matrix_transpose_doc, -".. method:: transpose()\n" -"\n" -" Set the matrix to its transpose.\n" -"\n" -" .. seealso:: \n" -); -static PyObject *Matrix_transpose(MatrixObject *self) -{ - float t = 0.0f; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_TypeError, - "matrix.transpose(d): " - "only square matrices are supported"); - return NULL; - } - - if(self->row_size == 2) { - t = self->matrix[1][0]; - self->matrix[1][0] = self->matrix[0][1]; - self->matrix[0][1] = t; - } else if(self->row_size == 3) { - transpose_m3((float (*)[3])self->contigPtr); - } - else { - transpose_m4((float (*)[4])self->contigPtr); - } - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Matrix_transposed_doc, -".. method:: transposed()\n" -"\n" -" Return a new, transposed matrix.\n" -"\n" -" :return: a transposed matrix\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_transposed(MatrixObject *self) -{ - return matrix__apply_to_copy((PyNoArgsFunction)Matrix_transpose, self); -} - -/*---------------------------matrix.zero() -----------------------*/ -PyDoc_STRVAR(Matrix_zero_doc, -".. method:: zero()\n" -"\n" -" Set all the matrix values to zero.\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_zero(MatrixObject *self) -{ - fill_vn(self->contigPtr, self->row_size * self->col_size, 0.0f); - - if(BaseMath_WriteCallback(self) == -1) - return NULL; - - Py_RETURN_NONE; -} -/*---------------------------matrix.identity(() ------------------*/ -PyDoc_STRVAR(Matrix_identity_doc, -".. method:: identity()\n" -"\n" -" Set the matrix to the identity matrix.\n" -"\n" -" .. note:: An object with zero location and rotation, a scale of one,\n" -" will have an identity matrix.\n" -"\n" -" .. seealso:: \n" -); -static PyObject *Matrix_identity(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(self->row_size != self->col_size){ - PyErr_SetString(PyExc_TypeError, - "matrix.identity: " - "only square matrices are supported"); - return NULL; - } - - if(self->row_size == 2) { - self->matrix[0][0] = 1.0f; - self->matrix[0][1] = 0.0f; - self->matrix[1][0] = 0.0f; - self->matrix[1][1] = 1.0f; - } else if(self->row_size == 3) { - unit_m3((float (*)[3])self->contigPtr); - } - else { - unit_m4((float (*)[4])self->contigPtr); - } - - if(BaseMath_WriteCallback(self) == -1) - return NULL; - - Py_RETURN_NONE; -} - -/*---------------------------Matrix.copy() ------------------*/ -PyDoc_STRVAR(Matrix_copy_doc, -".. method:: copy()\n" -"\n" -" Returns a copy of this matrix.\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Matrix_copy(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return (PyObject*)newMatrixObject((float (*))self->contigPtr, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); -} - -/*----------------------------print object (internal)-------------*/ -/*print the object to screen*/ -static PyObject *Matrix_repr(MatrixObject *self) -{ - int x, y; - PyObject *rows[MATRIX_MAX_DIM]= {NULL}; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - for(x = 0; x < self->row_size; x++){ - rows[x]= PyTuple_New(self->col_size); - for(y = 0; y < self->col_size; y++) { - PyTuple_SET_ITEM(rows[x], y, PyFloat_FromDouble(self->matrix[x][y])); - } - } - switch(self->row_size) { - case 2: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R)", rows[0], rows[1]); - - case 3: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R,\n" - " %R)", rows[0], rows[1], rows[2]); - - case 4: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R,\n" - " %R,\n" - " %R)", rows[0], rows[1], rows[2], rows[3]); - } - - PyErr_SetString(PyExc_RuntimeError, - "internal error!"); - return NULL; -} - -static PyObject* Matrix_richcmpr(PyObject *a, PyObject *b, int op) -{ - PyObject *res; - int ok= -1; /* zero is true */ - - if (MatrixObject_Check(a) && MatrixObject_Check(b)) { - MatrixObject *matA= (MatrixObject*)a; - MatrixObject *matB= (MatrixObject*)b; - - if(BaseMath_ReadCallback(matA) == -1 || BaseMath_ReadCallback(matB) == -1) - return NULL; - - ok= ( (matA->col_size == matB->col_size) && - (matA->row_size == matB->row_size) && - EXPP_VectorsAreEqual(matA->contigPtr, matB->contigPtr, (matA->row_size * matA->col_size), 1) - ) ? 0 : -1; - } - - switch (op) { - case Py_NE: - ok = !ok; /* pass through */ - case Py_EQ: - res = ok ? Py_False : Py_True; - break; - - case Py_LT: - case Py_LE: - case Py_GT: - case Py_GE: - res = Py_NotImplemented; - break; - default: - PyErr_BadArgument(); - return NULL; - } - - return Py_INCREF(res), res; -} - -/*---------------------SEQUENCE PROTOCOLS------------------------ - ----------------------------len(object)------------------------ - sequence length*/ -static int Matrix_len(MatrixObject *self) -{ - return (self->row_size); -} -/*----------------------------object[]--------------------------- - sequence accessor (get) - the wrapped vector gives direct access to the matrix data*/ -static PyObject *Matrix_item(MatrixObject *self, int i) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(i < 0 || i >= self->row_size) { - PyErr_SetString(PyExc_IndexError, - "matrix[attribute]: " - "array index out of range"); - return NULL; - } - return newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, i); -} -/*----------------------------object[]------------------------- - sequence accessor (set) */ - -static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value) -{ - float vec[4]; - if(BaseMath_ReadCallback(self) == -1) - return -1; - - if(i >= self->row_size || i < 0){ - PyErr_SetString(PyExc_IndexError, - "matrix[attribute] = x: bad column"); - return -1; - } - - if(mathutils_array_parse(vec, self->col_size, self->col_size, value, "matrix[i] = value assignment") < 0) { - return -1; - } - - memcpy(self->matrix[i], vec, self->col_size *sizeof(float)); - - (void)BaseMath_WriteCallback(self); - return 0; -} - -/*----------------------------object[z:y]------------------------ - sequence slice (get)*/ -static PyObject *Matrix_slice(MatrixObject *self, int begin, int end) -{ - - PyObject *tuple; - int count; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - CLAMP(begin, 0, self->row_size); - CLAMP(end, 0, self->row_size); - begin= MIN2(begin, end); - - tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { - PyTuple_SET_ITEM(tuple, count - begin, - newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, count)); - - } - - return tuple; -} -/*----------------------------object[z:y]------------------------ - sequence slice (set)*/ -static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *value) -{ - PyObject *value_fast= NULL; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - CLAMP(begin, 0, self->row_size); - CLAMP(end, 0, self->row_size); - begin = MIN2(begin, end); - - /* non list/tuple cases */ - if(!(value_fast=PySequence_Fast(value, "matrix[begin:end] = value"))) { - /* PySequence_Fast sets the error */ - return -1; - } - else { - const int size= end - begin; - int i; - float mat[16]; - - if(PySequence_Fast_GET_SIZE(value_fast) != size) { - Py_DECREF(value_fast); - PyErr_SetString(PyExc_ValueError, - "matrix[begin:end] = []: " - "size mismatch in slice assignment"); - return -1; - } - - /*parse sub items*/ - for (i = 0; i < size; i++) { - /*parse each sub sequence*/ - PyObject *item= PySequence_Fast_GET_ITEM(value_fast, i); - - if(mathutils_array_parse(&mat[i * self->col_size], self->col_size, self->col_size, item, "matrix[begin:end] = value assignment") < 0) { - return -1; - } - } - - Py_DECREF(value_fast); - - /*parsed well - now set in matrix*/ - memcpy(self->contigPtr + (begin * self->col_size), mat, sizeof(float) * (size * self->col_size)); - - (void)BaseMath_WriteCallback(self); - return 0; - } -} -/*------------------------NUMERIC PROTOCOLS---------------------- - ------------------------obj + obj------------------------------*/ -static PyObject *Matrix_add(PyObject *m1, PyObject *m2) -{ - float mat[16]; - MatrixObject *mat1 = NULL, *mat2 = NULL; - - mat1 = (MatrixObject*)m1; - mat2 = (MatrixObject*)m2; - - if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_TypeError, - "Matrix addition: " - "arguments not valid for this operation"); - return NULL; - } - - if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) - return NULL; - - if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_TypeError, - "Matrix addition: " - "matrices must have the same dimensions for this operation"); - return NULL; - } - - add_vn_vnvn(mat, mat1->contigPtr, mat2->contigPtr, mat1->row_size * mat1->col_size); - - return newMatrixObject(mat, mat1->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); -} -/*------------------------obj - obj------------------------------ - subtraction*/ -static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) -{ - float mat[16]; - MatrixObject *mat1 = NULL, *mat2 = NULL; - - mat1 = (MatrixObject*)m1; - mat2 = (MatrixObject*)m2; - - if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { - PyErr_SetString(PyExc_TypeError, - "Matrix addition: " - "arguments not valid for this operation"); - return NULL; - } - - if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) - return NULL; - - if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ - PyErr_SetString(PyExc_TypeError, - "Matrix addition: " - "matrices must have the same dimensions for this operation"); - return NULL; - } - - sub_vn_vnvn(mat, mat1->contigPtr, mat2->contigPtr, mat1->row_size * mat1->col_size); - - return newMatrixObject(mat, mat1->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); -} -/*------------------------obj * obj------------------------------ - mulplication*/ -static PyObject *matrix_mul_float(MatrixObject *mat, const float scalar) -{ - float tmat[16]; - mul_vn_vn_fl(tmat, mat->contigPtr, mat->row_size * mat->col_size, scalar); - return newMatrixObject(tmat, mat->row_size, mat->col_size, Py_NEW, Py_TYPE(mat)); -} - -static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) -{ - float scalar; - - MatrixObject *mat1 = NULL, *mat2 = NULL; - - if(MatrixObject_Check(m1)) { - mat1 = (MatrixObject*)m1; - if(BaseMath_ReadCallback(mat1) == -1) - return NULL; - } - if(MatrixObject_Check(m2)) { - mat2 = (MatrixObject*)m2; - if(BaseMath_ReadCallback(mat2) == -1) - return NULL; - } - - if(mat1 && mat2) { - /*MATRIX * MATRIX*/ - if(mat1->row_size != mat2->col_size){ - PyErr_SetString(PyExc_ValueError, - "Matrix multiplication: " - "matrix A rowsize must equal matrix B colsize"); - return NULL; - } - else { - float mat[16]= {0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f}; - double dot = 0.0f; - int x, y, z; - - for(x = 0; x < mat2->row_size; x++) { - for(y = 0; y < mat1->col_size; y++) { - for(z = 0; z < mat1->row_size; z++) { - dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); - } - mat[((x * mat1->col_size) + y)] = (float)dot; - dot = 0.0f; - } - } - - return newMatrixObject(mat, mat2->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); - } - } - else if(mat2) { - /*FLOAT/INT * MATRIX */ - if (((scalar= PyFloat_AsDouble(m1)) == -1.0f && PyErr_Occurred())==0) { - return matrix_mul_float(mat2, scalar); - } - } - else if(mat1) { - /*FLOAT/INT * MATRIX */ - if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { - return matrix_mul_float(mat1, scalar); - } - } - else { - BLI_assert(!"internal error"); - } - - PyErr_Format(PyExc_TypeError, - "Matrix multiplication: " - "not supported between '%.200s' and '%.200s' types", - Py_TYPE(m1)->tp_name, Py_TYPE(m2)->tp_name); - return NULL; -} -static PyObject* Matrix_inv(MatrixObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return Matrix_invert(self); -} - -/*-----------------PROTOCOL DECLARATIONS--------------------------*/ -static PySequenceMethods Matrix_SeqMethods = { - (lenfunc) Matrix_len, /* sq_length */ - (binaryfunc) NULL, /* sq_concat */ - (ssizeargfunc) NULL, /* sq_repeat */ - (ssizeargfunc) Matrix_item, /* sq_item */ - (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ - (ssizeobjargproc) Matrix_ass_item, /* sq_ass_item */ - (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ - (objobjproc) NULL, /* sq_contains */ - (binaryfunc) NULL, /* sq_inplace_concat */ - (ssizeargfunc) NULL, /* sq_inplace_repeat */ -}; - - -static PyObject *Matrix_subscript(MatrixObject* self, PyObject* item) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i; - i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return NULL; - if (i < 0) - i += self->row_size; - return Matrix_item(self, i); - } else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, self->row_size, &start, &stop, &step, &slicelength) < 0) - return NULL; - - if (slicelength <= 0) { - return PyTuple_New(0); - } - else if (step == 1) { - return Matrix_slice(self, start, stop); - } - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with matricies"); - return NULL; - } - } - else { - PyErr_Format(PyExc_TypeError, - "matrix indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return NULL; - } -} - -static int Matrix_ass_subscript(MatrixObject* self, PyObject* item, PyObject* value) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return -1; - if (i < 0) - i += self->row_size; - return Matrix_ass_item(self, i, value); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, self->row_size, &start, &stop, &step, &slicelength) < 0) - return -1; - - if (step == 1) - return Matrix_ass_slice(self, start, stop, value); - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with matricies"); - return -1; - } - } - else { - PyErr_Format(PyExc_TypeError, - "matrix indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return -1; - } -} - -static PyMappingMethods Matrix_AsMapping = { - (lenfunc)Matrix_len, - (binaryfunc)Matrix_subscript, - (objobjargproc)Matrix_ass_subscript -}; - - -static PyNumberMethods Matrix_NumMethods = { - (binaryfunc) Matrix_add, /*nb_add*/ - (binaryfunc) Matrix_sub, /*nb_subtract*/ - (binaryfunc) Matrix_mul, /*nb_multiply*/ - NULL, /*nb_remainder*/ - NULL, /*nb_divmod*/ - NULL, /*nb_power*/ - (unaryfunc) 0, /*nb_negative*/ - (unaryfunc) 0, /*tp_positive*/ - (unaryfunc) 0, /*tp_absolute*/ - (inquiry) 0, /*tp_bool*/ - (unaryfunc) Matrix_inv, /*nb_invert*/ - NULL, /*nb_lshift*/ - (binaryfunc)0, /*nb_rshift*/ - NULL, /*nb_and*/ - NULL, /*nb_xor*/ - NULL, /*nb_or*/ - NULL, /*nb_int*/ - NULL, /*nb_reserved*/ - NULL, /*nb_float*/ - NULL, /* nb_inplace_add */ - NULL, /* nb_inplace_subtract */ - NULL, /* nb_inplace_multiply */ - NULL, /* nb_inplace_remainder */ - NULL, /* nb_inplace_power */ - NULL, /* nb_inplace_lshift */ - NULL, /* nb_inplace_rshift */ - NULL, /* nb_inplace_and */ - NULL, /* nb_inplace_xor */ - NULL, /* nb_inplace_or */ - NULL, /* nb_floor_divide */ - NULL, /* nb_true_divide */ - NULL, /* nb_inplace_floor_divide */ - NULL, /* nb_inplace_true_divide */ - NULL, /* nb_index */ -}; - -static PyObject *Matrix_getRowSize(MatrixObject *self, void *UNUSED(closure)) -{ - return PyLong_FromLong((long) self->row_size); -} - -static PyObject *Matrix_getColSize(MatrixObject *self, void *UNUSED(closure)) -{ - return PyLong_FromLong((long) self->col_size); -} - -static PyObject *Matrix_median_scale_get(MatrixObject *self, void *UNUSED(closure)) -{ - float mat[3][3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3)) { - PyErr_SetString(PyExc_AttributeError, - "matrix.median_scale: " - "inappropriate matrix size, 3x3 minimum"); - return NULL; - } - - matrix_as_3x3(mat, self); - - return PyFloat_FromDouble(mat3_to_scale(mat)); -} - -static PyObject *Matrix_is_negative_get(MatrixObject *self, void *UNUSED(closure)) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size == 4 && self->row_size == 4) - return PyBool_FromLong(is_negative_m4((float (*)[4])self->contigPtr)); - else if(self->col_size == 3 && self->row_size == 3) - return PyBool_FromLong(is_negative_m3((float (*)[3])self->contigPtr)); - else { - PyErr_SetString(PyExc_AttributeError, - "matrix.is_negative: " - "inappropriate matrix size - expects 3x3 or 4x4 matrix"); - return NULL; - } -} - -static PyObject *Matrix_is_orthogonal_get(MatrixObject *self, void *UNUSED(closure)) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size == 4 && self->row_size == 4) - return PyBool_FromLong(is_orthogonal_m4((float (*)[4])self->contigPtr)); - else if(self->col_size == 3 && self->row_size == 3) - return PyBool_FromLong(is_orthogonal_m3((float (*)[3])self->contigPtr)); - else { - PyErr_SetString(PyExc_AttributeError, - "matrix.is_orthogonal: " - "inappropriate matrix size - expects 3x3 or 4x4 matrix"); - return NULL; - } -} - -/*****************************************************************************/ -/* Python attributes get/set structure: */ -/*****************************************************************************/ -static PyGetSetDef Matrix_getseters[] = { - {(char *)"row_size", (getter)Matrix_getRowSize, (setter)NULL, (char *)"The row size of the matrix (readonly).\n\n:type: int", NULL}, - {(char *)"col_size", (getter)Matrix_getColSize, (setter)NULL, (char *)"The column size of the matrix (readonly).\n\n:type: int", NULL}, - {(char *)"median_scale", (getter)Matrix_median_scale_get, (setter)NULL, (char *)"The average scale applied to each axis (readonly).\n\n:type: float", NULL}, - {(char *)"is_negative", (getter)Matrix_is_negative_get, (setter)NULL, (char *)"True if this matrix results in a negative scale, 3x3 and 4x4 only, (readonly).\n\n:type: bool", NULL}, - {(char *)"is_orthogonal", (getter)Matrix_is_orthogonal_get, (setter)NULL, (char *)"True if this matrix is orthogonal, 3x3 and 4x4 only, (readonly).\n\n:type: bool", NULL}, - {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, - {(char *)"owner",(getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, - {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ -}; - -/*-----------------------METHOD DEFINITIONS ----------------------*/ -static struct PyMethodDef Matrix_methods[] = { - /* derived values */ - {"determinant", (PyCFunction) Matrix_determinant, METH_NOARGS, Matrix_determinant_doc}, - {"decompose", (PyCFunction) Matrix_decompose, METH_NOARGS, Matrix_decompose_doc}, - - /* in place only */ - {"zero", (PyCFunction) Matrix_zero, METH_NOARGS, Matrix_zero_doc}, - {"identity", (PyCFunction) Matrix_identity, METH_NOARGS, Matrix_identity_doc}, - - /* operate on original or copy */ - {"transpose", (PyCFunction) Matrix_transpose, METH_NOARGS, Matrix_transpose_doc}, - {"transposed", (PyCFunction) Matrix_transposed, METH_NOARGS, Matrix_transposed_doc}, - {"invert", (PyCFunction) Matrix_invert, METH_NOARGS, Matrix_invert_doc}, - {"inverted", (PyCFunction) Matrix_inverted, METH_NOARGS, Matrix_inverted_doc}, - {"to_3x3", (PyCFunction) Matrix_to_3x3, METH_NOARGS, Matrix_to_3x3_doc}, - // TODO. {"resize_3x3", (PyCFunction) Matrix_resize3x3, METH_NOARGS, Matrix_resize3x3_doc}, - {"to_4x4", (PyCFunction) Matrix_to_4x4, METH_NOARGS, Matrix_to_4x4_doc}, - {"resize_4x4", (PyCFunction) Matrix_resize_4x4, METH_NOARGS, Matrix_resize_4x4_doc}, - {"rotate", (PyCFunction) Matrix_rotate, METH_O, Matrix_rotate_doc}, - - /* return converted representation */ - {"to_euler", (PyCFunction) Matrix_to_euler, METH_VARARGS, Matrix_to_euler_doc}, - {"to_quaternion", (PyCFunction) Matrix_to_quaternion, METH_NOARGS, Matrix_to_quaternion_doc}, - {"to_scale", (PyCFunction) Matrix_to_scale, METH_NOARGS, Matrix_to_scale_doc}, - {"to_translation", (PyCFunction) Matrix_to_translation, METH_NOARGS, Matrix_to_translation_doc}, - - /* operation between 2 or more types */ - {"lerp", (PyCFunction) Matrix_lerp, METH_VARARGS, Matrix_lerp_doc}, - {"copy", (PyCFunction) Matrix_copy, METH_NOARGS, Matrix_copy_doc}, - {"__copy__", (PyCFunction) Matrix_copy, METH_NOARGS, Matrix_copy_doc}, - - /* class methods */ - {"Rotation", (PyCFunction) C_Matrix_Rotation, METH_VARARGS | METH_CLASS, C_Matrix_Rotation_doc}, - {"Scale", (PyCFunction) C_Matrix_Scale, METH_VARARGS | METH_CLASS, C_Matrix_Scale_doc}, - {"Shear", (PyCFunction) C_Matrix_Shear, METH_VARARGS | METH_CLASS, C_Matrix_Shear_doc}, - {"Translation", (PyCFunction) C_Matrix_Translation, METH_O | METH_CLASS, C_Matrix_Translation_doc}, - {"OrthoProjection", (PyCFunction) C_Matrix_OrthoProjection, METH_VARARGS | METH_CLASS, C_Matrix_OrthoProjection_doc}, - {NULL, NULL, 0, NULL} -}; - -/*------------------PY_OBECT DEFINITION--------------------------*/ -PyDoc_STRVAR(matrix_doc, -"This object gives access to Matrices in Blender." -); -PyTypeObject matrix_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "mathutils.Matrix", /*tp_name*/ - sizeof(MatrixObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)BaseMathObject_dealloc, /*tp_dealloc*/ - NULL, /*tp_print*/ - NULL, /*tp_getattr*/ - NULL, /*tp_setattr*/ - NULL, /*tp_compare*/ - (reprfunc) Matrix_repr, /*tp_repr*/ - &Matrix_NumMethods, /*tp_as_number*/ - &Matrix_SeqMethods, /*tp_as_sequence*/ - &Matrix_AsMapping, /*tp_as_mapping*/ - NULL, /*tp_hash*/ - NULL, /*tp_call*/ - NULL, /*tp_str*/ - NULL, /*tp_getattro*/ - NULL, /*tp_setattro*/ - NULL, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - matrix_doc, /*tp_doc*/ - (traverseproc)BaseMathObject_traverse, //tp_traverse - (inquiry)BaseMathObject_clear, //tp_clear - (richcmpfunc)Matrix_richcmpr, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - NULL, /*tp_iter*/ - NULL, /*tp_iternext*/ - Matrix_methods, /*tp_methods*/ - NULL, /*tp_members*/ - Matrix_getseters, /*tp_getset*/ - NULL, /*tp_base*/ - NULL, /*tp_dict*/ - NULL, /*tp_descr_get*/ - NULL, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - NULL, /*tp_init*/ - NULL, /*tp_alloc*/ - Matrix_new, /*tp_new*/ - NULL, /*tp_free*/ - NULL, /*tp_is_gc*/ - NULL, /*tp_bases*/ - NULL, /*tp_mro*/ - NULL, /*tp_cache*/ - NULL, /*tp_subclasses*/ - NULL, /*tp_weaklist*/ - NULL /*tp_del*/ -}; - -/*------------------------newMatrixObject (internal)------------- -creates a new matrix object -self->matrix self->contiguous_ptr (reference to data.xxx) - [0]------------->[0] - [1] - [2] - [1]------------->[3] - [4] - [5] - -self->matrix[1][1] = self->contigPtr[4] */ - -/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER - (i.e. it was allocated elsewhere by MEM_mallocN()) - pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON - (i.e. it must be created here with PyMEM_malloc())*/ -PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsigned short colSize, int type, PyTypeObject *base_type) -{ - MatrixObject *self; - int x, row, col; - - /*matrix objects can be any 2-4row x 2-4col matrix*/ - if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) { - PyErr_SetString(PyExc_RuntimeError, - "Matrix(): " - "row and column sizes must be between 2 and 4"); - return NULL; - } - - self= base_type ? (MatrixObject *)base_type->tp_alloc(base_type, 0) : - (MatrixObject *)PyObject_GC_New(MatrixObject, &matrix_Type); - - if(self) { - self->row_size = rowSize; - self->col_size = colSize; - - /* init callbacks as NULL */ - self->cb_user= NULL; - self->cb_type= self->cb_subtype= 0; - - if(type == Py_WRAP){ - self->contigPtr = mat; - /*pointer array points to contigous memory*/ - for(x = 0; x < rowSize; x++) { - self->matrix[x] = self->contigPtr + (x * colSize); - } - self->wrapped = Py_WRAP; - } - else if (type == Py_NEW){ - self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float)); - if(self->contigPtr == NULL) { /*allocation failure*/ - PyErr_SetString(PyExc_MemoryError, - "Matrix(): " - "problem allocating pointer space"); - return NULL; - } - /*pointer array points to contigous memory*/ - for(x = 0; x < rowSize; x++) { - self->matrix[x] = self->contigPtr + (x * colSize); - } - /*parse*/ - if(mat) { /*if a float array passed*/ - for(row = 0; row < rowSize; row++) { - for(col = 0; col < colSize; col++) { - self->matrix[row][col] = mat[(row * colSize) + col]; - } - } - } - else if (rowSize == colSize) { /*or if no arguments are passed return identity matrix for square matrices */ - PyObject *ret_dummy= Matrix_identity(self); - Py_DECREF(ret_dummy); - } - self->wrapped = Py_NEW; - } - else { - Py_FatalError("Matrix(): invalid type!"); - return NULL; - } - } - return (PyObject *) self; -} - -PyObject *newMatrixObject_cb(PyObject *cb_user, int rowSize, int colSize, int cb_type, int cb_subtype) -{ - MatrixObject *self= (MatrixObject *)newMatrixObject(NULL, rowSize, colSize, Py_NEW, NULL); - if(self) { - Py_INCREF(cb_user); - self->cb_user= cb_user; - self->cb_type= (unsigned char)cb_type; - self->cb_subtype= (unsigned char)cb_subtype; - PyObject_GC_Track(self); - } - return (PyObject *) self; -} diff --git a/source/blender/python/generic/mathutils_Matrix.h b/source/blender/python/generic/mathutils_Matrix.h deleted file mode 100644 index aa736d1e959..00000000000 --- a/source/blender/python/generic/mathutils_Matrix.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - * - */ - -/** \file blender/python/generic/mathutils_Matrix.h - * \ingroup pygen - */ - - -#ifndef MATHUTILS_MATRIX_H -#define MATHUTILS_MATRIX_H - -extern PyTypeObject matrix_Type; -#define MatrixObject_Check(_v) PyObject_TypeCheck((_v), &matrix_Type) -#define MATRIX_MAX_DIM 4 - -typedef struct { - BASE_MATH_MEMBERS(contigPtr) - float *matrix[MATRIX_MAX_DIM]; /* ptr to the contigPtr (accessor) */ - unsigned short row_size; - unsigned short col_size; -} MatrixObject; - -/*struct data contains a pointer to the actual data that the -object uses. It can use either PyMem allocated data (which will -be stored in py_data) or be a wrapper for data allocated through -blender (stored in blend_data). This is an either/or struct not both*/ - -/*prototypes*/ -PyObject *newMatrixObject(float *mat, const unsigned short row_size, const unsigned short col_size, int type, PyTypeObject *base_type); -PyObject *newMatrixObject_cb(PyObject *user, int row_size, int col_size, int cb_type, int cb_subtype); - -extern int mathutils_matrix_vector_cb_index; -extern struct Mathutils_Callback mathutils_matrix_vector_cb; - -void matrix_as_3x3(float mat[3][3], MatrixObject *self); - -#endif /* MATHUTILS_MATRIX_H */ diff --git a/source/blender/python/generic/mathutils_Quaternion.c b/source/blender/python/generic/mathutils_Quaternion.c deleted file mode 100644 index 3b05b9a250b..00000000000 --- a/source/blender/python/generic/mathutils_Quaternion.c +++ /dev/null @@ -1,1164 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * - * Contributor(s): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_Quaternion.c - * \ingroup pygen - */ - - -#include - -#include "mathutils.h" - -#include "BLI_math.h" -#include "BLI_utildefines.h" - -#define QUAT_SIZE 4 - -static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self); -static PyObject *Quaternion_copy(QuaternionObject *self); - -//-----------------------------METHODS------------------------------ - -/* note: BaseMath_ReadCallback must be called beforehand */ -static PyObject *Quaternion_to_tuple_ext(QuaternionObject *self, int ndigits) -{ - PyObject *ret; - int i; - - ret= PyTuple_New(QUAT_SIZE); - - if(ndigits >= 0) { - for(i= 0; i < QUAT_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->quat[i], ndigits))); - } - } - else { - for(i= 0; i < QUAT_SIZE; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->quat[i])); - } - } - - return ret; -} - -PyDoc_STRVAR(Quaternion_to_euler_doc, -".. method:: to_euler(order, euler_compat)\n" -"\n" -" Return Euler representation of the quaternion.\n" -"\n" -" :arg order: Optional rotation order argument in\n" -" ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'].\n" -" :type order: string\n" -" :arg euler_compat: Optional euler argument the new euler will be made\n" -" compatible with (no axis flipping between them).\n" -" Useful for converting a series of matrices to animation curves.\n" -" :type euler_compat: :class:`Euler`\n" -" :return: Euler representation of the quaternion.\n" -" :rtype: :class:`Euler`\n" -); -static PyObject *Quaternion_to_euler(QuaternionObject *self, PyObject *args) -{ - float tquat[4]; - float eul[3]; - const char *order_str= NULL; - short order= EULER_ORDER_XYZ; - EulerObject *eul_compat = NULL; - - if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) - return NULL; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(order_str) { - order= euler_order_from_string(order_str, "Matrix.to_euler()"); - - if(order == -1) - return NULL; - } - - normalize_qt_qt(tquat, self->quat); - - if(eul_compat) { - float mat[3][3]; - - if(BaseMath_ReadCallback(eul_compat) == -1) - return NULL; - - quat_to_mat3(mat, tquat); - - if(order == EULER_ORDER_XYZ) mat3_to_compatible_eul(eul, eul_compat->eul, mat); - else mat3_to_compatible_eulO(eul, eul_compat->eul, order, mat); - } - else { - if(order == EULER_ORDER_XYZ) quat_to_eul(eul, tquat); - else quat_to_eulO(eul, order, tquat); - } - - return newEulerObject(eul, order, Py_NEW, NULL); -} -//----------------------------Quaternion.toMatrix()------------------ -PyDoc_STRVAR(Quaternion_to_matrix_doc, -".. method:: to_matrix()\n" -"\n" -" Return a matrix representation of the quaternion.\n" -"\n" -" :return: A 3x3 rotation matrix representation of the quaternion.\n" -" :rtype: :class:`Matrix`\n" -); -static PyObject *Quaternion_to_matrix(QuaternionObject *self) -{ - float mat[9]; /* all values are set */ - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - quat_to_mat3((float (*)[3])mat, self->quat); - return newMatrixObject(mat, 3, 3, Py_NEW, NULL); -} - -//----------------------------Quaternion.cross(other)------------------ -PyDoc_STRVAR(Quaternion_cross_doc, -".. method:: cross(other)\n" -"\n" -" Return the cross product of this quaternion and another.\n" -"\n" -" :arg other: The other quaternion to perform the cross product with.\n" -" :type other: :class:`Quaternion`\n" -" :return: The cross product.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_cross(QuaternionObject *self, PyObject *value) -{ - float quat[QUAT_SIZE], tquat[QUAT_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.cross(other), invalid 'other' arg") == -1) - return NULL; - - mul_qt_qtqt(quat, self->quat, tquat); - return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); -} - -//----------------------------Quaternion.dot(other)------------------ -PyDoc_STRVAR(Quaternion_dot_doc, -".. method:: dot(other)\n" -"\n" -" Return the dot product of this quaternion and another.\n" -"\n" -" :arg other: The other quaternion to perform the dot product with.\n" -" :type other: :class:`Quaternion`\n" -" :return: The dot product.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_dot(QuaternionObject *self, PyObject *value) -{ - float tquat[QUAT_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.dot(other), invalid 'other' arg") == -1) - return NULL; - - return PyFloat_FromDouble(dot_qtqt(self->quat, tquat)); -} - -PyDoc_STRVAR(Quaternion_rotation_difference_doc, -".. function:: difference(other)\n" -"\n" -" Returns a quaternion representing the rotational difference.\n" -"\n" -" :arg other: second quaternion.\n" -" :type other: :class:`Quaternion`\n" -" :return: the rotational difference between the two quat rotations.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_rotation_difference(QuaternionObject *self, PyObject *value) -{ - float tquat[QUAT_SIZE], quat[QUAT_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.difference(other), invalid 'other' arg") == -1) - return NULL; - - rotation_between_quats_to_quat(quat, self->quat, tquat); - - return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Quaternion_slerp_doc, -".. function:: slerp(other, factor)\n" -"\n" -" Returns the interpolation of two quaternions.\n" -"\n" -" :arg other: value to interpolate with.\n" -" :type other: :class:`Quaternion`\n" -" :arg factor: The interpolation value in [0.0, 1.0].\n" -" :type factor: float\n" -" :return: The interpolated rotation.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) -{ - PyObject *value; - float tquat[QUAT_SIZE], quat[QUAT_SIZE], fac; - - if(!PyArg_ParseTuple(args, "Of:slerp", &value, &fac)) { - PyErr_SetString(PyExc_TypeError, - "quat.slerp(): " - "expected Quaternion types and float"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.slerp(other), invalid 'other' arg") == -1) - return NULL; - - if(fac > 1.0f || fac < 0.0f) { - PyErr_SetString(PyExc_ValueError, - "quat.slerp(): " - "interpolation factor must be between 0.0 and 1.0"); - return NULL; - } - - interp_qt_qtqt(quat, self->quat, tquat, fac); - - return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Quaternion_rotate_doc, -".. method:: rotate(other)\n" -"\n" -" Rotates the quaternion a by another mathutils value.\n" -"\n" -" :arg other: rotation component of mathutils value\n" -" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" -); -static PyObject *Quaternion_rotate(QuaternionObject *self, PyObject *value) -{ - float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; - float tquat[4], length; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_any_to_rotmat(other_rmat, value, "quaternion.rotate(value)") == -1) - return NULL; - - length= normalize_qt_qt(tquat, self->quat); - quat_to_mat3(self_rmat, tquat); - mul_m3_m3m3(rmat, self_rmat, other_rmat); - - mat3_to_quat(self->quat, rmat); - mul_qt_fl(self->quat, length); /* maintain length after rotating */ - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -//----------------------------Quaternion.normalize()---------------- -//normalize the axis of rotation of [theta, vector] -PyDoc_STRVAR(Quaternion_normalize_doc, -".. function:: normalize()\n" -"\n" -" Normalize the quaternion.\n" -); -static PyObject *Quaternion_normalize(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - normalize_qt(self->quat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -PyDoc_STRVAR(Quaternion_normalized_doc, -".. function:: normalized()\n" -"\n" -" Return a new normalized quaternion.\n" -"\n" -" :return: a normalized copy.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_normalized(QuaternionObject *self) -{ - return quat__apply_to_copy((PyNoArgsFunction)Quaternion_normalize, self); -} - -//----------------------------Quaternion.invert()------------------ -PyDoc_STRVAR(Quaternion_invert_doc, -".. function:: invert()\n" -"\n" -" Set the quaternion to its inverse.\n" -); -static PyObject *Quaternion_invert(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - invert_qt(self->quat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -PyDoc_STRVAR(Quaternion_inverted_doc, -".. function:: inverted()\n" -"\n" -" Return a new, inverted quaternion.\n" -"\n" -" :return: the inverted value.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_inverted(QuaternionObject *self) -{ - return quat__apply_to_copy((PyNoArgsFunction)Quaternion_invert, self); -} - -//----------------------------Quaternion.identity()----------------- -PyDoc_STRVAR(Quaternion_identity_doc, -".. function:: identity()\n" -"\n" -" Set the quaternion to an identity quaternion.\n" -"\n" -" :return: an instance of itself.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_identity(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - unit_qt(self->quat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -//----------------------------Quaternion.negate()------------------- -PyDoc_STRVAR(Quaternion_negate_doc, -".. function:: negate()\n" -"\n" -" Set the quaternion to its negative.\n" -"\n" -" :return: an instance of itself.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_negate(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - mul_qt_fl(self->quat, -1.0f); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -//----------------------------Quaternion.conjugate()---------------- -PyDoc_STRVAR(Quaternion_conjugate_doc, -".. function:: conjugate()\n" -"\n" -" Set the quaternion to its conjugate (negate x, y, z).\n" -); -static PyObject *Quaternion_conjugate(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - conjugate_qt(self->quat); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -PyDoc_STRVAR(Quaternion_conjugated_doc, -".. function:: conjugated()\n" -"\n" -" Return a new conjugated quaternion.\n" -"\n" -" :return: a new quaternion.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Quaternion_conjugated(QuaternionObject *self) -{ - return quat__apply_to_copy((PyNoArgsFunction)Quaternion_conjugate, self); -} - -//----------------------------Quaternion.copy()---------------- -PyDoc_STRVAR(Quaternion_copy_doc, -".. function:: copy()\n" -"\n" -" Returns a copy of this quaternion.\n" -"\n" -" :return: A copy of the quaternion.\n" -" :rtype: :class:`Quaternion`\n" -"\n" -" .. note:: use this to get a copy of a wrapped quaternion with\n" -" no reference to the original data.\n" -); -static PyObject *Quaternion_copy(QuaternionObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return newQuaternionObject(self->quat, Py_NEW, Py_TYPE(self)); -} - -//----------------------------print object (internal)-------------- -//print the object to screen -static PyObject *Quaternion_repr(QuaternionObject *self) -{ - PyObject *ret, *tuple; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - tuple= Quaternion_to_tuple_ext(self, -1); - - ret= PyUnicode_FromFormat("Quaternion(%R)", tuple); - - Py_DECREF(tuple); - return ret; -} - -static PyObject* Quaternion_richcmpr(PyObject *a, PyObject *b, int op) -{ - PyObject *res; - int ok= -1; /* zero is true */ - - if (QuaternionObject_Check(a) && QuaternionObject_Check(b)) { - QuaternionObject *quatA= (QuaternionObject *)a; - QuaternionObject *quatB= (QuaternionObject *)b; - - if(BaseMath_ReadCallback(quatA) == -1 || BaseMath_ReadCallback(quatB) == -1) - return NULL; - - ok= (EXPP_VectorsAreEqual(quatA->quat, quatB->quat, QUAT_SIZE, 1)) ? 0 : -1; - } - - switch (op) { - case Py_NE: - ok = !ok; /* pass through */ - case Py_EQ: - res = ok ? Py_False : Py_True; - break; - - case Py_LT: - case Py_LE: - case Py_GT: - case Py_GE: - res = Py_NotImplemented; - break; - default: - PyErr_BadArgument(); - return NULL; - } - - return Py_INCREF(res), res; -} - -//---------------------SEQUENCE PROTOCOLS------------------------ -//----------------------------len(object)------------------------ -//sequence length -static int Quaternion_len(QuaternionObject *UNUSED(self)) -{ - return QUAT_SIZE; -} -//----------------------------object[]--------------------------- -//sequence accessor (get) -static PyObject *Quaternion_item(QuaternionObject *self, int i) -{ - if(i<0) i= QUAT_SIZE-i; - - if(i < 0 || i >= QUAT_SIZE) { - PyErr_SetString(PyExc_IndexError, - "quaternion[attribute]: " - "array index out of range"); - return NULL; - } - - if(BaseMath_ReadIndexCallback(self, i) == -1) - return NULL; - - return PyFloat_FromDouble(self->quat[i]); - -} -//----------------------------object[]------------------------- -//sequence accessor (set) -static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob) -{ - float scalar= (float)PyFloat_AsDouble(ob); - if(scalar==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, - "quaternion[index] = x: " - "index argument not a number"); - return -1; - } - - if(i<0) i= QUAT_SIZE-i; - - if(i < 0 || i >= QUAT_SIZE){ - PyErr_SetString(PyExc_IndexError, - "quaternion[attribute] = x: " - "array assignment index out of range"); - return -1; - } - self->quat[i] = scalar; - - if(BaseMath_WriteIndexCallback(self, i) == -1) - return -1; - - return 0; -} -//----------------------------object[z:y]------------------------ -//sequence slice (get) -static PyObject *Quaternion_slice(QuaternionObject *self, int begin, int end) -{ - PyObject *tuple; - int count; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - CLAMP(begin, 0, QUAT_SIZE); - if (end<0) end= (QUAT_SIZE + 1) + end; - CLAMP(end, 0, QUAT_SIZE); - begin= MIN2(begin, end); - - tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { - PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->quat[count])); - } - - return tuple; -} -//----------------------------object[z:y]------------------------ -//sequence slice (set) -static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyObject *seq) -{ - int i, size; - float quat[QUAT_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - CLAMP(begin, 0, QUAT_SIZE); - if (end<0) end= (QUAT_SIZE + 1) + end; - CLAMP(end, 0, QUAT_SIZE); - begin = MIN2(begin, end); - - if((size=mathutils_array_parse(quat, 0, QUAT_SIZE, seq, "mathutils.Quaternion[begin:end] = []")) == -1) - return -1; - - if(size != (end - begin)){ - PyErr_SetString(PyExc_ValueError, - "quaternion[begin:end] = []: " - "size mismatch in slice assignment"); - return -1; - } - - /* parsed well - now set in vector */ - for(i= 0; i < size; i++) - self->quat[begin + i] = quat[i]; - - (void)BaseMath_WriteCallback(self); - return 0; -} - - -static PyObject *Quaternion_subscript(QuaternionObject *self, PyObject *item) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i; - i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return NULL; - if (i < 0) - i += QUAT_SIZE; - return Quaternion_item(self, i); - } else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, QUAT_SIZE, &start, &stop, &step, &slicelength) < 0) - return NULL; - - if (slicelength <= 0) { - return PyTuple_New(0); - } - else if (step == 1) { - return Quaternion_slice(self, start, stop); - } - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with quaternions"); - return NULL; - } - } - else { - PyErr_Format(PyExc_TypeError, - "quaternion indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return NULL; - } -} - - -static int Quaternion_ass_subscript(QuaternionObject *self, PyObject *item, PyObject *value) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return -1; - if (i < 0) - i += QUAT_SIZE; - return Quaternion_ass_item(self, i, value); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, QUAT_SIZE, &start, &stop, &step, &slicelength) < 0) - return -1; - - if (step == 1) - return Quaternion_ass_slice(self, start, stop, value); - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with quaternion"); - return -1; - } - } - else { - PyErr_Format(PyExc_TypeError, - "quaternion indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return -1; - } -} - -//------------------------NUMERIC PROTOCOLS---------------------- -//------------------------obj + obj------------------------------ -//addition -static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) -{ - float quat[QUAT_SIZE]; - QuaternionObject *quat1 = NULL, *quat2 = NULL; - - if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_TypeError, - "Quaternion addition: " - "arguments not valid for this operation"); - return NULL; - } - quat1 = (QuaternionObject*)q1; - quat2 = (QuaternionObject*)q2; - - if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) - return NULL; - - add_qt_qtqt(quat, quat1->quat, quat2->quat, 1.0f); - return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); -} -//------------------------obj - obj------------------------------ -//subtraction -static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) -{ - int x; - float quat[QUAT_SIZE]; - QuaternionObject *quat1 = NULL, *quat2 = NULL; - - if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { - PyErr_SetString(PyExc_TypeError, - "Quaternion addition: " - "arguments not valid for this operation"); - return NULL; - } - - quat1 = (QuaternionObject*)q1; - quat2 = (QuaternionObject*)q2; - - if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) - return NULL; - - for(x = 0; x < QUAT_SIZE; x++) { - quat[x] = quat1->quat[x] - quat2->quat[x]; - } - - return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); -} - -static PyObject *quat_mul_float(QuaternionObject *quat, const float scalar) -{ - float tquat[4]; - copy_qt_qt(tquat, quat->quat); - mul_qt_fl(tquat, scalar); - return newQuaternionObject(tquat, Py_NEW, Py_TYPE(quat)); -} - -//------------------------obj * obj------------------------------ -//mulplication -static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) -{ - float quat[QUAT_SIZE], scalar; - QuaternionObject *quat1 = NULL, *quat2 = NULL; - - if(QuaternionObject_Check(q1)) { - quat1 = (QuaternionObject*)q1; - if(BaseMath_ReadCallback(quat1) == -1) - return NULL; - } - if(QuaternionObject_Check(q2)) { - quat2 = (QuaternionObject*)q2; - if(BaseMath_ReadCallback(quat2) == -1) - return NULL; - } - - if(quat1 && quat2) { /* QUAT*QUAT (cross product) */ - mul_qt_qtqt(quat, quat1->quat, quat2->quat); - return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); - } - /* the only case this can happen (for a supported type is "FLOAT*QUAT") */ - else if(quat2) { /* FLOAT*QUAT */ - if(((scalar= PyFloat_AsDouble(q1)) == -1.0f && PyErr_Occurred())==0) { - return quat_mul_float(quat2, scalar); - } - } - else if (quat1) { /* QUAT*FLOAT */ - if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { - return quat_mul_float(quat1, scalar); - } - } - else { - BLI_assert(!"internal error"); - } - - PyErr_Format(PyExc_TypeError, - "Quaternion multiplication: " - "not supported between '%.200s' and '%.200s' types", - Py_TYPE(q1)->tp_name, Py_TYPE(q2)->tp_name); - return NULL; -} - -/* -obj - returns the negative of this object*/ -static PyObject *Quaternion_neg(QuaternionObject *self) -{ - float tquat[QUAT_SIZE]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - negate_v4_v4(tquat, self->quat); - return newQuaternionObject(tquat, Py_NEW, Py_TYPE(self)); -} - - -//-----------------PROTOCOL DECLARATIONS-------------------------- -static PySequenceMethods Quaternion_SeqMethods = { - (lenfunc) Quaternion_len, /* sq_length */ - (binaryfunc) NULL, /* sq_concat */ - (ssizeargfunc) NULL, /* sq_repeat */ - (ssizeargfunc) Quaternion_item, /* sq_item */ - (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ - (ssizeobjargproc) Quaternion_ass_item, /* sq_ass_item */ - (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ - (objobjproc) NULL, /* sq_contains */ - (binaryfunc) NULL, /* sq_inplace_concat */ - (ssizeargfunc) NULL, /* sq_inplace_repeat */ -}; - -static PyMappingMethods Quaternion_AsMapping = { - (lenfunc)Quaternion_len, - (binaryfunc)Quaternion_subscript, - (objobjargproc)Quaternion_ass_subscript -}; - -static PyNumberMethods Quaternion_NumMethods = { - (binaryfunc) Quaternion_add, /*nb_add*/ - (binaryfunc) Quaternion_sub, /*nb_subtract*/ - (binaryfunc) Quaternion_mul, /*nb_multiply*/ - NULL, /*nb_remainder*/ - NULL, /*nb_divmod*/ - NULL, /*nb_power*/ - (unaryfunc) Quaternion_neg, /*nb_negative*/ - (unaryfunc) 0, /*tp_positive*/ - (unaryfunc) 0, /*tp_absolute*/ - (inquiry) 0, /*tp_bool*/ - (unaryfunc) 0, /*nb_invert*/ - NULL, /*nb_lshift*/ - (binaryfunc)0, /*nb_rshift*/ - NULL, /*nb_and*/ - NULL, /*nb_xor*/ - NULL, /*nb_or*/ - NULL, /*nb_int*/ - NULL, /*nb_reserved*/ - NULL, /*nb_float*/ - NULL, /* nb_inplace_add */ - NULL, /* nb_inplace_subtract */ - NULL, /* nb_inplace_multiply */ - NULL, /* nb_inplace_remainder */ - NULL, /* nb_inplace_power */ - NULL, /* nb_inplace_lshift */ - NULL, /* nb_inplace_rshift */ - NULL, /* nb_inplace_and */ - NULL, /* nb_inplace_xor */ - NULL, /* nb_inplace_or */ - NULL, /* nb_floor_divide */ - NULL, /* nb_true_divide */ - NULL, /* nb_inplace_floor_divide */ - NULL, /* nb_inplace_true_divide */ - NULL, /* nb_index */ -}; - -static PyObject *Quaternion_getAxis(QuaternionObject *self, void *type) -{ - return Quaternion_item(self, GET_INT_FROM_POINTER(type)); -} - -static int Quaternion_setAxis(QuaternionObject *self, PyObject *value, void *type) -{ - return Quaternion_ass_item(self, GET_INT_FROM_POINTER(type), value); -} - -static PyObject *Quaternion_getMagnitude(QuaternionObject *self, void *UNUSED(closure)) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return PyFloat_FromDouble(sqrt(dot_qtqt(self->quat, self->quat))); -} - -static PyObject *Quaternion_getAngle(QuaternionObject *self, void *UNUSED(closure)) -{ - float tquat[4]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - normalize_qt_qt(tquat, self->quat); - return PyFloat_FromDouble(2.0f * (saacos(tquat[0]))); -} - -static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UNUSED(closure)) -{ - float tquat[4]; - float len; - - float axis[3], angle_dummy; - double angle; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - len= normalize_qt_qt(tquat, self->quat); - quat_to_axis_angle(axis, &angle_dummy, tquat); - - angle= PyFloat_AsDouble(value); - - if(angle==-1.0 && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, - "quaternion.angle = value: float expected"); - return -1; - } - - angle= angle_wrap_rad(angle); - - /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ - if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && - EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && - EXPP_FloatsAreEqual(axis[2], 0.0f, 10) - ) { - axis[0] = 1.0f; - } - - axis_angle_to_quat(self->quat, axis, angle); - mul_qt_fl(self->quat, len); - - if(BaseMath_WriteCallback(self) == -1) - return -1; - - return 0; -} - -static PyObject *Quaternion_getAxisVec(QuaternionObject *self, void *UNUSED(closure)) -{ - float tquat[4]; - - float axis[3]; - float angle; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - normalize_qt_qt(tquat, self->quat); - quat_to_axis_angle(axis, &angle, tquat); - - /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ - if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && - EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && - EXPP_FloatsAreEqual(axis[2], 0.0f, 10) - ) { - axis[0] = 1.0f; - } - - return (PyObject *) newVectorObject(axis, 3, Py_NEW, NULL); -} - -static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void *UNUSED(closure)) -{ - float tquat[4]; - float len; - - float axis[3]; - float angle; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - len= normalize_qt_qt(tquat, self->quat); - quat_to_axis_angle(axis, &angle, tquat); /* axis value is unused */ - - if (mathutils_array_parse(axis, 3, 3, value, "quat.axis = other") == -1) - return -1; - - axis_angle_to_quat(self->quat, axis, angle); - mul_qt_fl(self->quat, len); - - if(BaseMath_WriteCallback(self) == -1) - return -1; - - return 0; -} - -//----------------------------------mathutils.Quaternion() -------------- -static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kwds) -{ - PyObject *seq= NULL; - double angle = 0.0f; - float quat[QUAT_SIZE]= {0.0f, 0.0f, 0.0f, 0.0f}; - - if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, - "mathutils.Quaternion(): " - "takes no keyword args"); - return NULL; - } - - if(!PyArg_ParseTuple(args, "|Od:mathutils.Quaternion", &seq, &angle)) - return NULL; - - switch(PyTuple_GET_SIZE(args)) { - case 0: - break; - case 1: - if (mathutils_array_parse(quat, QUAT_SIZE, QUAT_SIZE, seq, "mathutils.Quaternion()") == -1) - return NULL; - break; - case 2: - if (mathutils_array_parse(quat, 3, 3, seq, "mathutils.Quaternion()") == -1) - return NULL; - angle= angle_wrap_rad(angle); /* clamp because of precision issues */ - axis_angle_to_quat(quat, quat, angle); - break; - /* PyArg_ParseTuple assures no more then 2 */ - } - return newQuaternionObject(quat, Py_NEW, type); -} - -static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self) -{ - PyObject *ret= Quaternion_copy(self); - PyObject *ret_dummy= quat_func(ret); - if(ret_dummy) { - Py_DECREF(ret_dummy); - return (PyObject *)ret; - } - else { /* error */ - Py_DECREF(ret); - return NULL; - } -} - -//-----------------------METHOD DEFINITIONS ---------------------- -static struct PyMethodDef Quaternion_methods[] = { - /* in place only */ - {"identity", (PyCFunction) Quaternion_identity, METH_NOARGS, Quaternion_identity_doc}, - {"negate", (PyCFunction) Quaternion_negate, METH_NOARGS, Quaternion_negate_doc}, - - /* operate on original or copy */ - {"conjugate", (PyCFunction) Quaternion_conjugate, METH_NOARGS, Quaternion_conjugate_doc}, - {"conjugated", (PyCFunction) Quaternion_conjugated, METH_NOARGS, Quaternion_conjugated_doc}, - - {"invert", (PyCFunction) Quaternion_invert, METH_NOARGS, Quaternion_invert_doc}, - {"inverted", (PyCFunction) Quaternion_inverted, METH_NOARGS, Quaternion_inverted_doc}, - - {"normalize", (PyCFunction) Quaternion_normalize, METH_NOARGS, Quaternion_normalize_doc}, - {"normalized", (PyCFunction) Quaternion_normalized, METH_NOARGS, Quaternion_normalized_doc}, - - /* return converted representation */ - {"to_euler", (PyCFunction) Quaternion_to_euler, METH_VARARGS, Quaternion_to_euler_doc}, - {"to_matrix", (PyCFunction) Quaternion_to_matrix, METH_NOARGS, Quaternion_to_matrix_doc}, - - /* operation between 2 or more types */ - {"cross", (PyCFunction) Quaternion_cross, METH_O, Quaternion_cross_doc}, - {"dot", (PyCFunction) Quaternion_dot, METH_O, Quaternion_dot_doc}, - {"rotation_difference", (PyCFunction) Quaternion_rotation_difference, METH_O, Quaternion_rotation_difference_doc}, - {"slerp", (PyCFunction) Quaternion_slerp, METH_VARARGS, Quaternion_slerp_doc}, - {"rotate", (PyCFunction) Quaternion_rotate, METH_O, Quaternion_rotate_doc}, - - {"__copy__", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc}, - {"copy", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc}, - {NULL, NULL, 0, NULL} -}; - -/*****************************************************************************/ -/* Python attributes get/set structure: */ -/*****************************************************************************/ -static PyGetSetDef Quaternion_getseters[] = { - {(char *)"w", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion W value.\n\n:type: float", (void *)0}, - {(char *)"x", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion X axis.\n\n:type: float", (void *)1}, - {(char *)"y", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion Y axis.\n\n:type: float", (void *)2}, - {(char *)"z", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion Z axis.\n\n:type: float", (void *)3}, - {(char *)"magnitude", (getter)Quaternion_getMagnitude, (setter)NULL, (char *)"Size of the quaternion (readonly).\n\n:type: float", NULL}, - {(char *)"angle", (getter)Quaternion_getAngle, (setter)Quaternion_setAngle, (char *)"angle of the quaternion.\n\n:type: float", NULL}, - {(char *)"axis",(getter)Quaternion_getAxisVec, (setter)Quaternion_setAxisVec, (char *)"quaternion axis as a vector.\n\n:type: :class:`Vector`", NULL}, - {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, - {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, - {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ -}; - -//------------------PY_OBECT DEFINITION-------------------------- -PyDoc_STRVAR(quaternion_doc, -"This object gives access to Quaternions in Blender." -); -PyTypeObject quaternion_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "mathutils.Quaternion", //tp_name - sizeof(QuaternionObject), //tp_basicsize - 0, //tp_itemsize - (destructor)BaseMathObject_dealloc, //tp_dealloc - NULL, //tp_print - NULL, //tp_getattr - NULL, //tp_setattr - NULL, //tp_compare - (reprfunc) Quaternion_repr, //tp_repr - &Quaternion_NumMethods, //tp_as_number - &Quaternion_SeqMethods, //tp_as_sequence - &Quaternion_AsMapping, //tp_as_mapping - NULL, //tp_hash - NULL, //tp_call - NULL, //tp_str - NULL, //tp_getattro - NULL, //tp_setattro - NULL, //tp_as_buffer - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags - quaternion_doc, //tp_doc - (traverseproc)BaseMathObject_traverse, //tp_traverse - (inquiry)BaseMathObject_clear, //tp_clear - (richcmpfunc)Quaternion_richcmpr, //tp_richcompare - 0, //tp_weaklistoffset - NULL, //tp_iter - NULL, //tp_iternext - Quaternion_methods, //tp_methods - NULL, //tp_members - Quaternion_getseters, //tp_getset - NULL, //tp_base - NULL, //tp_dict - NULL, //tp_descr_get - NULL, //tp_descr_set - 0, //tp_dictoffset - NULL, //tp_init - NULL, //tp_alloc - Quaternion_new, //tp_new - NULL, //tp_free - NULL, //tp_is_gc - NULL, //tp_bases - NULL, //tp_mro - NULL, //tp_cache - NULL, //tp_subclasses - NULL, //tp_weaklist - NULL, //tp_del -}; -//------------------------newQuaternionObject (internal)------------- -//creates a new quaternion object -/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER - (i.e. it was allocated elsewhere by MEM_mallocN()) - pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON - (i.e. it must be created here with PyMEM_malloc())*/ -PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) -{ - QuaternionObject *self; - - self= base_type ? (QuaternionObject *)base_type->tp_alloc(base_type, 0) : - (QuaternionObject *)PyObject_GC_New(QuaternionObject, &quaternion_Type); - - if(self) { - /* init callbacks as NULL */ - self->cb_user= NULL; - self->cb_type= self->cb_subtype= 0; - - if(type == Py_WRAP){ - self->quat = quat; - self->wrapped = Py_WRAP; - } - else if (type == Py_NEW){ - self->quat = PyMem_Malloc(QUAT_SIZE * sizeof(float)); - if(!quat) { //new empty - unit_qt(self->quat); - } - else { - QUATCOPY(self->quat, quat); - } - self->wrapped = Py_NEW; - } - else { - Py_FatalError("Quaternion(): invalid type!"); - } - } - return (PyObject *) self; -} - -PyObject *newQuaternionObject_cb(PyObject *cb_user, int cb_type, int cb_subtype) -{ - QuaternionObject *self= (QuaternionObject *)newQuaternionObject(NULL, Py_NEW, NULL); - if(self) { - Py_INCREF(cb_user); - self->cb_user= cb_user; - self->cb_type= (unsigned char)cb_type; - self->cb_subtype= (unsigned char)cb_subtype; - PyObject_GC_Track(self); - } - - return (PyObject *)self; -} - diff --git a/source/blender/python/generic/mathutils_Quaternion.h b/source/blender/python/generic/mathutils_Quaternion.h deleted file mode 100644 index d606621390a..00000000000 --- a/source/blender/python/generic/mathutils_Quaternion.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - * - */ - -/** \file blender/python/generic/mathutils_Quaternion.h - * \ingroup pygen - */ - - -#ifndef MATHUTILS_QUAT_H -#define MATHUTILS_QUAT_H - -extern PyTypeObject quaternion_Type; -#define QuaternionObject_Check(_v) PyObject_TypeCheck((_v), &quaternion_Type) - -typedef struct { - BASE_MATH_MEMBERS(quat) -} QuaternionObject; - -/*struct data contains a pointer to the actual data that the -object uses. It can use either PyMem allocated data (which will -be stored in py_data) or be a wrapper for data allocated through -blender (stored in blend_data). This is an either/or struct not both*/ - -//prototypes -PyObject *newQuaternionObject( float *quat, int type, PyTypeObject *base_type); -PyObject *newQuaternionObject_cb(PyObject *cb_user, int cb_type, int cb_subtype); - -#endif /* MATHUTILS_QUAT_H */ diff --git a/source/blender/python/generic/mathutils_Vector.c b/source/blender/python/generic/mathutils_Vector.c deleted file mode 100644 index a834e8f2ba4..00000000000 --- a/source/blender/python/generic/mathutils_Vector.c +++ /dev/null @@ -1,2411 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * - * Contributor(s): Willian P. Germano, Joseph Gilbert, Ken Hughes, Alex Fraser, Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_Vector.c - * \ingroup pygen - */ - - -#include - -#include "mathutils.h" - -#include "BLI_blenlib.h" -#include "BLI_math.h" -#include "BLI_utildefines.h" - -#define MAX_DIMENSIONS 4 - -/* Swizzle axes get packed into a single value that is used as a closure. Each - axis uses SWIZZLE_BITS_PER_AXIS bits. The first bit (SWIZZLE_VALID_AXIS) is - used as a sentinel: if it is unset, the axis is not valid. */ -#define SWIZZLE_BITS_PER_AXIS 3 -#define SWIZZLE_VALID_AXIS 0x4 -#define SWIZZLE_AXIS 0x3 - -static PyObject *Vector_copy(VectorObject *self); -static PyObject *Vector_to_tuple_ext(VectorObject *self, int ndigits); - -/* Supports 2D, 3D, and 4D vector objects both int and float values - * accepted. Mixed float and int values accepted. Ints are parsed to float - */ -static PyObject *Vector_new(PyTypeObject *type, PyObject *args, PyObject *UNUSED(kwds)) -{ - float vec[4]= {0.0f, 0.0f, 0.0f, 0.0f}; - int size= 3; /* default to a 3D vector */ - - switch(PyTuple_GET_SIZE(args)) { - case 0: - break; - case 1: - if((size=mathutils_array_parse(vec, 2, 4, PyTuple_GET_ITEM(args, 0), "mathutils.Vector()")) == -1) - return NULL; - break; - default: - PyErr_SetString(PyExc_TypeError, - "mathutils.Vector(): " - "more then a single arg given"); - return NULL; - } - return newVectorObject(vec, size, Py_NEW, type); -} - -static PyObject *vec__apply_to_copy(PyNoArgsFunction vec_func, VectorObject *self) -{ - PyObject *ret= Vector_copy(self); - PyObject *ret_dummy= vec_func(ret); - if(ret_dummy) { - Py_DECREF(ret_dummy); - return (PyObject *)ret; - } - else { /* error */ - Py_DECREF(ret); - return NULL; - } -} - -/*-----------------------------METHODS---------------------------- */ -PyDoc_STRVAR(Vector_zero_doc, -".. method:: zero()\n" -"\n" -" Set all values to zero.\n" -); -static PyObject *Vector_zero(VectorObject *self) -{ - fill_vn(self->vec, self->size, 0.0f); - - if(BaseMath_WriteCallback(self) == -1) - return NULL; - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Vector_normalize_doc, -".. method:: normalize()\n" -"\n" -" Normalize the vector, making the length of the vector always 1.0.\n" -"\n" -" .. warning:: Normalizing a vector where all values are zero results\n" -" in all axis having a nan value (not a number).\n" -"\n" -" .. note:: Normalize works for vectors of all sizes,\n" -" however 4D Vectors w axis is left untouched.\n" -); -static PyObject *Vector_normalize(VectorObject *self) -{ - int i; - float norm = 0.0f; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - for(i = 0; i < self->size; i++) { - norm += self->vec[i] * self->vec[i]; - } - norm = (float) sqrt(norm); - for(i = 0; i < self->size; i++) { - self->vec[i] /= norm; - } - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} -PyDoc_STRVAR(Vector_normalized_doc, -".. method:: normalized()\n" -"\n" -" Return a new, normalized vector.\n" -"\n" -" :return: a normalized copy of the vector\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_normalized(VectorObject *self) -{ - return vec__apply_to_copy((PyNoArgsFunction)Vector_normalize, self); -} - -PyDoc_STRVAR(Vector_resize_2d_doc, -".. method:: resize_2d()\n" -"\n" -" Resize the vector to 2D (x, y).\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_resize_2d(VectorObject *self) -{ - if(self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_2d(): " - "cannot resize wrapped data - only python vectors"); - return NULL; - } - if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_2d(): " - "cannot resize a vector that has an owner"); - return NULL; - } - - self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 2)); - if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, - "vector.resize_2d(): " - "problem allocating pointer space"); - return NULL; - } - - self->size = 2; - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Vector_resize_3d_doc, -".. method:: resize_3d()\n" -"\n" -" Resize the vector to 3D (x, y, z).\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_resize_3d(VectorObject *self) -{ - if (self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_3d(): " - "cannot resize wrapped data - only python vectors"); - return NULL; - } - if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_3d(): " - "cannot resize a vector that has an owner"); - return NULL; - } - - self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 3)); - if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, - "vector.resize_3d(): " - "problem allocating pointer space"); - return NULL; - } - - if(self->size == 2) - self->vec[2] = 0.0f; - - self->size = 3; - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Vector_resize_4d_doc, -".. method:: resize_4d()\n" -"\n" -" Resize the vector to 4D (x, y, z, w).\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_resize_4d(VectorObject *self) -{ - if(self->wrapped==Py_WRAP) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_4d(): " - "cannot resize wrapped data - only python vectors"); - return NULL; - } - if(self->cb_user) { - PyErr_SetString(PyExc_TypeError, - "vector.resize_4d(): " - "cannot resize a vector that has an owner"); - return NULL; - } - - self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 4)); - if(self->vec == NULL) { - PyErr_SetString(PyExc_MemoryError, - "vector.resize_4d(): " - "problem allocating pointer space"); - return NULL; - } - - if(self->size == 2){ - self->vec[2] = 0.0f; - self->vec[3] = 1.0f; - } - else if(self->size == 3){ - self->vec[3] = 1.0f; - } - self->size = 4; - Py_RETURN_NONE; -} -PyDoc_STRVAR(Vector_to_2d_doc, -".. method:: to_2d()\n" -"\n" -" Return a 2d copy of the vector.\n" -"\n" -" :return: a new vector\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_to_2d(VectorObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return newVectorObject(self->vec, 2, Py_NEW, Py_TYPE(self)); -} -PyDoc_STRVAR(Vector_to_3d_doc, -".. method:: to_3d()\n" -"\n" -" Return a 3d copy of the vector.\n" -"\n" -" :return: a new vector\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_to_3d(VectorObject *self) -{ - float tvec[3]= {0.0f}; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 3)); - return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(self)); -} -PyDoc_STRVAR(Vector_to_4d_doc, -".. method:: to_4d()\n" -"\n" -" Return a 4d copy of the vector.\n" -"\n" -" :return: a new vector\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_to_4d(VectorObject *self) -{ - float tvec[4]= {0.0f, 0.0f, 0.0f, 1.0f}; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 4)); - return newVectorObject(tvec, 4, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Vector_to_tuple_doc, -".. method:: to_tuple(precision=-1)\n" -"\n" -" Return this vector as a tuple with.\n" -"\n" -" :arg precision: The number to round the value to in [-1, 21].\n" -" :type precision: int\n" -" :return: the values of the vector rounded by *precision*\n" -" :rtype: tuple\n" -); -/* note: BaseMath_ReadCallback must be called beforehand */ -static PyObject *Vector_to_tuple_ext(VectorObject *self, int ndigits) -{ - PyObject *ret; - int i; - - ret= PyTuple_New(self->size); - - if(ndigits >= 0) { - for(i = 0; i < self->size; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->vec[i], ndigits))); - } - } - else { - for(i = 0; i < self->size; i++) { - PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->vec[i])); - } - } - - return ret; -} - -static PyObject *Vector_to_tuple(VectorObject *self, PyObject *args) -{ - int ndigits= 0; - - if(!PyArg_ParseTuple(args, "|i:to_tuple", &ndigits)) - return NULL; - - if(ndigits > 22 || ndigits < 0) { - PyErr_SetString(PyExc_ValueError, - "vector.to_tuple(ndigits): " - "ndigits must be between 0 and 21"); - return NULL; - } - - if(PyTuple_GET_SIZE(args)==0) - ndigits= -1; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return Vector_to_tuple_ext(self, ndigits); -} - -PyDoc_STRVAR(Vector_to_track_quat_doc, -".. method:: to_track_quat(track, up)\n" -"\n" -" Return a quaternion rotation from the vector and the track and up axis.\n" -"\n" -" :arg track: Track axis in ['X', 'Y', 'Z', '-X', '-Y', '-Z'].\n" -" :type track: string\n" -" :arg up: Up axis in ['X', 'Y', 'Z'].\n" -" :type up: string\n" -" :return: rotation from the vector and the track and up axis.\n" -" :rtype: :class:`Quaternion`\n" -); -static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) -{ - float vec[3], quat[4]; - const char *strack, *sup; - short track = 2, up = 1; - - if(!PyArg_ParseTuple(args, "|ss:to_track_quat", &strack, &sup)) - return NULL; - - if (self->size != 3) { - PyErr_SetString(PyExc_TypeError, - "vector.to_track_quat(): " - "only for 3D vectors"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if (strack) { - const char *axis_err_msg= "only X, -X, Y, -Y, Z or -Z for track axis"; - - if (strlen(strack) == 2) { - if (strack[0] == '-') { - switch(strack[1]) { - case 'X': - track = 3; - break; - case 'Y': - track = 4; - break; - case 'Z': - track = 5; - break; - default: - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - else { - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - else if (strlen(strack) == 1) { - switch(strack[0]) { - case '-': - case 'X': - track = 0; - break; - case 'Y': - track = 1; - break; - case 'Z': - track = 2; - break; - default: - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - else { - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - - if (sup) { - const char *axis_err_msg= "only X, Y or Z for up axis"; - if (strlen(sup) == 1) { - switch(*sup) { - case 'X': - up = 0; - break; - case 'Y': - up = 1; - break; - case 'Z': - up = 2; - break; - default: - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - else { - PyErr_SetString(PyExc_ValueError, axis_err_msg); - return NULL; - } - } - - if (track == up) { - PyErr_SetString(PyExc_ValueError, - "Can't have the same axis for track and up"); - return NULL; - } - - /* - flip vector around, since vectoquat expect a vector from target to tracking object - and the python function expects the inverse (a vector to the target). - */ - negate_v3_v3(vec, self->vec); - - vec_to_quat(quat, vec, track, up); - - return newQuaternionObject(quat, Py_NEW, NULL); -} - -/* - * Vector.reflect(mirror): return a reflected vector on the mirror normal - * vec - ((2 * DotVecs(vec, mirror)) * mirror) - */ -PyDoc_STRVAR(Vector_reflect_doc, -".. method:: reflect(mirror)\n" -"\n" -" Return the reflection vector from the *mirror* argument.\n" -"\n" -" :arg mirror: This vector could be a normal from the reflecting surface.\n" -" :type mirror: :class:`Vector`\n" -" :return: The reflected vector matching the size of this vector.\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_reflect(VectorObject *self, PyObject *value) -{ - int value_size; - float mirror[3], vec[3]; - float reflect[3] = {0.0f}; - float tvec[MAX_DIMENSIONS]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if((value_size= mathutils_array_parse(tvec, 2, 4, value, "vector.reflect(other), invalid 'other' arg")) == -1) - return NULL; - - mirror[0] = tvec[0]; - mirror[1] = tvec[1]; - if (value_size > 2) mirror[2] = tvec[2]; - else mirror[2] = 0.0; - - vec[0] = self->vec[0]; - vec[1] = self->vec[1]; - if (self->size > 2) vec[2] = self->vec[2]; - else vec[2] = 0.0; - - normalize_v3(mirror); - reflect_v3_v3v3(reflect, vec, mirror); - - return newVectorObject(reflect, self->size, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Vector_cross_doc, -".. method:: cross(other)\n" -"\n" -" Return the cross product of this vector and another.\n" -"\n" -" :arg other: The other vector to perform the cross product with.\n" -" :type other: :class:`Vector`\n" -" :return: The cross product.\n" -" :rtype: :class:`Vector`\n" -"\n" -" .. note:: both vectors must be 3D\n" -); -static PyObject *Vector_cross(VectorObject *self, PyObject *value) -{ - VectorObject *ret; - float tvec[MAX_DIMENSIONS]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.cross(other), invalid 'other' arg") == -1) - return NULL; - - ret= (VectorObject *)newVectorObject(NULL, 3, Py_NEW, Py_TYPE(self)); - cross_v3_v3v3(ret->vec, self->vec, tvec); - return (PyObject *)ret; -} - -PyDoc_STRVAR(Vector_dot_doc, -".. method:: dot(other)\n" -"\n" -" Return the dot product of this vector and another.\n" -"\n" -" :arg other: The other vector to perform the dot product with.\n" -" :type other: :class:`Vector`\n" -" :return: The dot product.\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_dot(VectorObject *self, PyObject *value) -{ - float tvec[MAX_DIMENSIONS]; - double dot = 0.0; - int x; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.dot(other), invalid 'other' arg") == -1) - return NULL; - - for(x = 0; x < self->size; x++) { - dot += (double)(self->vec[x] * tvec[x]); - } - - return PyFloat_FromDouble(dot); -} - -PyDoc_STRVAR(Vector_angle_doc, -".. function:: angle(other, fallback)\n" -"\n" -" Return the angle between two vectors.\n" -"\n" -" :arg other: another vector to compare the angle with\n" -" :type other: :class:`Vector`\n" -" :arg fallback: return this value when the angle cant be calculated\n" -" (zero length vector)\n" -" :type fallback: any\n" -" :return: angle in radians or fallback when given\n" -" :rtype: float\n" -"\n" -" .. note:: Zero length vectors raise an :exc:`AttributeError`.\n" -); -static PyObject *Vector_angle(VectorObject *self, PyObject *args) -{ - const int size= self->size; - float tvec[MAX_DIMENSIONS]; - PyObject *value; - double dot = 0.0f, test_v1 = 0.0f, test_v2 = 0.0f; - int x; - PyObject *fallback= NULL; - - if(!PyArg_ParseTuple(args, "O|O:angle", &value, &fallback)) - return NULL; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tvec, size, size, value, "vector.angle(other), invalid 'other' arg") == -1) - return NULL; - - for(x = 0; x < size; x++) { - test_v1 += (double)(self->vec[x] * self->vec[x]); - test_v2 += (double)(tvec[x] * tvec[x]); - } - if (!test_v1 || !test_v2){ - /* avoid exception */ - if(fallback) { - Py_INCREF(fallback); - return fallback; - } - else { - PyErr_SetString(PyExc_ValueError, - "vector.angle(other): " - "zero length vectors have no valid angle"); - return NULL; - } - } - - //dot product - for(x = 0; x < self->size; x++) { - dot += (double)(self->vec[x] * tvec[x]); - } - dot /= (sqrt(test_v1) * sqrt(test_v2)); - - return PyFloat_FromDouble(saacos(dot)); -} - -PyDoc_STRVAR(Vector_rotation_difference_doc, -".. function:: difference(other)\n" -"\n" -" Returns a quaternion representing the rotational difference between this\n" -" vector and another.\n" -"\n" -" :arg other: second vector.\n" -" :type other: :class:`Vector`\n" -" :return: the rotational difference between the two vectors.\n" -" :rtype: :class:`Quaternion`\n" -"\n" -" .. note:: 2D vectors raise an :exc:`AttributeError`.\n" -); -static PyObject *Vector_rotation_difference(VectorObject *self, PyObject *value) -{ - float quat[4], vec_a[3], vec_b[3]; - - if(self->size < 3) { - PyErr_SetString(PyExc_ValueError, - "vec.difference(value): " - "expects both vectors to be size 3 or 4"); - return NULL; - } - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(vec_b, 3, MAX_DIMENSIONS, value, "vector.difference(other), invalid 'other' arg") == -1) - return NULL; - - normalize_v3_v3(vec_a, self->vec); - normalize_v3(vec_b); - - rotation_between_vecs_to_quat(quat, vec_a, vec_b); - - return newQuaternionObject(quat, Py_NEW, NULL); -} - -PyDoc_STRVAR(Vector_project_doc, -".. function:: project(other)\n" -"\n" -" Return the projection of this vector onto the *other*.\n" -"\n" -" :arg other: second vector.\n" -" :type other: :class:`Vector`\n" -" :return: the parallel projection vector\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_project(VectorObject *self, PyObject *value) -{ - const int size= self->size; - float tvec[MAX_DIMENSIONS]; - float vec[MAX_DIMENSIONS]; - double dot = 0.0f, dot2 = 0.0f; - int x; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_array_parse(tvec, size, size, value, "vector.project(other), invalid 'other' arg") == -1) - return NULL; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - //get dot products - for(x = 0; x < size; x++) { - dot += (double)(self->vec[x] * tvec[x]); - dot2 += (double)(tvec[x] * tvec[x]); - } - //projection - dot /= dot2; - for(x = 0; x < size; x++) { - vec[x] = (float)dot * tvec[x]; - } - return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Vector_lerp_doc, -".. function:: lerp(other, factor)\n" -"\n" -" Returns the interpolation of two vectors.\n" -"\n" -" :arg other: value to interpolate with.\n" -" :type other: :class:`Vector`\n" -" :arg factor: The interpolation value in [0.0, 1.0].\n" -" :type factor: float\n" -" :return: The interpolated rotation.\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_lerp(VectorObject *self, PyObject *args) -{ - const int size= self->size; - PyObject *value= NULL; - float fac, ifac; - float tvec[MAX_DIMENSIONS], vec[MAX_DIMENSIONS]; - int x; - - if(!PyArg_ParseTuple(args, "Of:lerp", &value, &fac)) - return NULL; - - if(mathutils_array_parse(tvec, size, size, value, "vector.lerp(other), invalid 'other' arg") == -1) - return NULL; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - ifac= 1.0f - fac; - - for(x = 0; x < size; x++) { - vec[x] = (ifac * self->vec[x]) + (fac * tvec[x]); - } - return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); -} - -PyDoc_STRVAR(Vector_rotate_doc, -".. function:: rotate(other)\n" -"\n" -" Return vector by a rotation value.\n" -"\n" -" :arg other: rotation component of mathutils value\n" -" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" -); -static PyObject *Vector_rotate(VectorObject *self, PyObject *value) -{ - float other_rmat[3][3]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - if(mathutils_any_to_rotmat(other_rmat, value, "vector.rotate(value)") == -1) - return NULL; - - if(self->size < 3) { - PyErr_SetString(PyExc_ValueError, - "Vector must be 3D or 4D"); - return NULL; - } - - mul_m3_v3(other_rmat, self->vec); - - (void)BaseMath_WriteCallback(self); - Py_RETURN_NONE; -} - -PyDoc_STRVAR(Vector_copy_doc, -".. function:: copy()\n" -"\n" -" Returns a copy of this vector.\n" -"\n" -" :return: A copy of the vector.\n" -" :rtype: :class:`Vector`\n" -"\n" -" .. note:: use this to get a copy of a wrapped vector with\n" -" no reference to the original data.\n" -); -static PyObject *Vector_copy(VectorObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - return newVectorObject(self->vec, self->size, Py_NEW, Py_TYPE(self)); -} - -static PyObject *Vector_repr(VectorObject *self) -{ - PyObject *ret, *tuple; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - tuple= Vector_to_tuple_ext(self, -1); - ret= PyUnicode_FromFormat("Vector(%R)", tuple); - Py_DECREF(tuple); - return ret; -} - -/* Sequence Protocol */ -/* sequence length len(vector) */ -static int Vector_len(VectorObject *self) -{ - return self->size; -} -/* sequence accessor (get): vector[index] */ -static PyObject *vector_item_internal(VectorObject *self, int i, const int is_attr) -{ - if(i<0) i= self->size-i; - - if(i < 0 || i >= self->size) { - if(is_attr) { - PyErr_Format(PyExc_AttributeError, - "vector.%c: unavailable on %dd vector", - *(((char *)"xyzw") + i), self->size); - } - else { - PyErr_SetString(PyExc_IndexError, - "vector[index]: out of range"); - } - return NULL; - } - - if(BaseMath_ReadIndexCallback(self, i) == -1) - return NULL; - - return PyFloat_FromDouble(self->vec[i]); -} - -static PyObject *Vector_item(VectorObject *self, int i) -{ - return vector_item_internal(self, i, FALSE); -} -/* sequence accessor (set): vector[index] = value */ -static int vector_ass_item_internal(VectorObject *self, int i, PyObject *value, const int is_attr) -{ - float scalar; - if((scalar=PyFloat_AsDouble(value))==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, - "vector[index] = x: " - "index argument not a number"); - return -1; - } - - if(i<0) i= self->size-i; - - if(i < 0 || i >= self->size){ - if(is_attr) { - PyErr_Format(PyExc_AttributeError, - "vector.%c = x: unavailable on %dd vector", - *(((char *)"xyzw") + i), self->size); - } - else { - PyErr_SetString(PyExc_IndexError, - "vector[index] = x: " - "assignment index out of range"); - } - return -1; - } - self->vec[i] = scalar; - - if(BaseMath_WriteIndexCallback(self, i) == -1) - return -1; - return 0; -} - -static int Vector_ass_item(VectorObject *self, int i, PyObject *value) -{ - return vector_ass_item_internal(self, i, value, FALSE); -} - -/* sequence slice (get): vector[a:b] */ -static PyObject *Vector_slice(VectorObject *self, int begin, int end) -{ - PyObject *tuple; - int count; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - CLAMP(begin, 0, self->size); - if (end<0) end= self->size+end+1; - CLAMP(end, 0, self->size); - begin= MIN2(begin, end); - - tuple= PyTuple_New(end - begin); - for(count = begin; count < end; count++) { - PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->vec[count])); - } - - return tuple; -} -/* sequence slice (set): vector[a:b] = value */ -static int Vector_ass_slice(VectorObject *self, int begin, int end, PyObject *seq) -{ - int y, size = 0; - float vec[MAX_DIMENSIONS]; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - CLAMP(begin, 0, self->size); - CLAMP(end, 0, self->size); - begin = MIN2(begin, end); - - size = (end - begin); - if(mathutils_array_parse(vec, size, size, seq, "vector[begin:end] = [...]") == -1) - return -1; - - /*parsed well - now set in vector*/ - for(y = 0; y < size; y++){ - self->vec[begin + y] = vec[y]; - } - - if(BaseMath_WriteCallback(self) == -1) - return -1; - - return 0; -} - -/* Numeric Protocols */ -/* addition: obj + obj */ -static PyObject *Vector_add(PyObject *v1, PyObject *v2) -{ - VectorObject *vec1 = NULL, *vec2 = NULL; - float vec[MAX_DIMENSIONS]; - - if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, - "Vector addition: " - "arguments not valid for this operation"); - return NULL; - } - vec1 = (VectorObject*)v1; - vec2 = (VectorObject*)v2; - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) - return NULL; - - /*VECTOR + VECTOR*/ - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, - "Vector addition: " - "vectors must have the same dimensions for this operation"); - return NULL; - } - - add_vn_vnvn(vec, vec1->vec, vec2->vec, vec1->size); - - return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); -} - -/* addition in-place: obj += obj */ -static PyObject *Vector_iadd(PyObject *v1, PyObject *v2) -{ - VectorObject *vec1 = NULL, *vec2 = NULL; - - if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, - "Vector addition: " - "arguments not valid for this operation"); - return NULL; - } - vec1 = (VectorObject*)v1; - vec2 = (VectorObject*)v2; - - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, - "Vector addition: " - "vectors must have the same dimensions for this operation"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) - return NULL; - - add_vn_vn(vec1->vec, vec2->vec, vec1->size); - - (void)BaseMath_WriteCallback(vec1); - Py_INCREF(v1); - return v1; -} - -/* subtraction: obj - obj */ -static PyObject *Vector_sub(PyObject *v1, PyObject *v2) -{ - VectorObject *vec1 = NULL, *vec2 = NULL; - float vec[MAX_DIMENSIONS]; - - if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, - "Vector subtraction: " - "arguments not valid for this operation"); - return NULL; - } - vec1 = (VectorObject*)v1; - vec2 = (VectorObject*)v2; - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) - return NULL; - - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, - "Vector subtraction: " - "vectors must have the same dimensions for this operation"); - return NULL; - } - - sub_vn_vnvn(vec, vec1->vec, vec2->vec, vec1->size); - - return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); -} - -/* subtraction in-place: obj -= obj */ -static PyObject *Vector_isub(PyObject *v1, PyObject *v2) -{ - VectorObject *vec1= NULL, *vec2= NULL; - - if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { - PyErr_SetString(PyExc_AttributeError, - "Vector subtraction: " - "arguments not valid for this operation"); - return NULL; - } - vec1 = (VectorObject*)v1; - vec2 = (VectorObject*)v2; - - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, - "Vector subtraction: " - "vectors must have the same dimensions for this operation"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) - return NULL; - - sub_vn_vn(vec1->vec, vec2->vec, vec1->size); - - (void)BaseMath_WriteCallback(vec1); - Py_INCREF(v1); - return v1; -} - -/*------------------------obj * obj------------------------------ - mulplication*/ - - -/* COLUMN VECTOR Multiplication (Vector X Matrix) - * [a] * [1][4][7] - * [b] * [2][5][8] - * [c] * [3][6][9] - * - * note: vector/matrix multiplication IS NOT COMMUTATIVE!!!! - * note: assume read callbacks have been done first. - */ -static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) -{ - float vec_cpy[MAX_DIMENSIONS]; - double dot = 0.0f; - int x, y, z = 0; - - if(mat->row_size != vec->size){ - if(mat->row_size == 4 && vec->size == 3) { - vec_cpy[3] = 1.0f; - } - else { - PyErr_SetString(PyExc_TypeError, - "matrix * vector: " - "matrix.row_size and len(vector) must be the same, " - "except for 3D vector * 4x4 matrix."); - return -1; - } - } - - memcpy(vec_cpy, vec->vec, vec->size * sizeof(float)); - - rvec[3] = 1.0f; - - for(x = 0; x < mat->col_size; x++) { - for(y = 0; y < mat->row_size; y++) { - dot += (double)(mat->matrix[y][x] * vec_cpy[y]); - } - rvec[z++] = (float)dot; - dot = 0.0f; - } - - return 0; -} - -static PyObject *vector_mul_float(VectorObject *vec, const float scalar) -{ - float tvec[MAX_DIMENSIONS]; - mul_vn_vn_fl(tvec, vec->vec, vec->size, scalar); - return newVectorObject(tvec, vec->size, Py_NEW, Py_TYPE(vec)); -} - -static PyObject *Vector_mul(PyObject *v1, PyObject *v2) -{ - VectorObject *vec1 = NULL, *vec2 = NULL; - float scalar; - - if VectorObject_Check(v1) { - vec1= (VectorObject *)v1; - if(BaseMath_ReadCallback(vec1) == -1) - return NULL; - } - if VectorObject_Check(v2) { - vec2= (VectorObject *)v2; - if(BaseMath_ReadCallback(vec2) == -1) - return NULL; - } - - - /* make sure v1 is always the vector */ - if (vec1 && vec2) { - int i; - double dot = 0.0f; - - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_ValueError, - "Vector multiplication: " - "vectors must have the same dimensions for this operation"); - return NULL; - } - - /*dot product*/ - for(i = 0; i < vec1->size; i++) { - dot += (double)(vec1->vec[i] * vec2->vec[i]); - } - return PyFloat_FromDouble(dot); - } - else if (vec1) { - if (MatrixObject_Check(v2)) { - /* VEC * MATRIX */ - float tvec[MAX_DIMENSIONS]; - if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) - return NULL; - if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) { - return NULL; - } - - return newVectorObject(tvec, vec1->size, Py_NEW, Py_TYPE(vec1)); - } - else if (QuaternionObject_Check(v2)) { - /* VEC * QUAT */ - QuaternionObject *quat2 = (QuaternionObject*)v2; - float tvec[3]; - - if(vec1->size != 3) { - PyErr_SetString(PyExc_ValueError, - "Vector multiplication: " - "only 3D vector rotations (with quats) currently supported"); - return NULL; - } - if(BaseMath_ReadCallback(quat2) == -1) { - return NULL; - } - copy_v3_v3(tvec, vec1->vec); - mul_qt_v3(quat2->quat, tvec); - return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); - } - else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */ - return vector_mul_float(vec1, scalar); - } - } - else if (vec2) { - if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * VEC */ - return vector_mul_float(vec2, scalar); - } - } - else { - BLI_assert(!"internal error"); - } - - PyErr_Format(PyExc_TypeError, - "Vector multiplication: " - "not supported between '%.200s' and '%.200s' types", - Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); - return NULL; -} - -/* mulplication in-place: obj *= obj */ -static PyObject *Vector_imul(PyObject *v1, PyObject *v2) -{ - VectorObject *vec = (VectorObject *)v1; - float scalar; - - if(BaseMath_ReadCallback(vec) == -1) - return NULL; - - /* only support vec*=float and vec*=mat - vec*=vec result is a float so that wont work */ - if (MatrixObject_Check(v2)) { - float rvec[MAX_DIMENSIONS]; - if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) - return NULL; - - if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) - return NULL; - - memcpy(vec->vec, rvec, sizeof(float) * vec->size); - } - else if (QuaternionObject_Check(v2)) { - /* VEC *= QUAT */ - QuaternionObject *quat2 = (QuaternionObject*)v2; - - if(vec->size != 3) { - PyErr_SetString(PyExc_ValueError, - "Vector multiplication: " - "only 3D vector rotations (with quats) currently supported"); - return NULL; - } - - if(BaseMath_ReadCallback(quat2) == -1) { - return NULL; - } - mul_qt_v3(quat2->quat, vec->vec); - } - else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ - mul_vn_fl(vec->vec, vec->size, scalar); - } - else { - PyErr_SetString(PyExc_TypeError, - "Vector multiplication: " - "arguments not acceptable for this operation"); - return NULL; - } - - (void)BaseMath_WriteCallback(vec); - Py_INCREF(v1); - return v1; -} - -/* divid: obj / obj */ -static PyObject *Vector_div(PyObject *v1, PyObject *v2) -{ - int i; - float vec[4], scalar; - VectorObject *vec1 = NULL; - - if(!VectorObject_Check(v1)) { /* not a vector */ - PyErr_SetString(PyExc_TypeError, - "Vector division: " - "Vector must be divided by a float"); - return NULL; - } - vec1 = (VectorObject*)v1; /* vector */ - - if(BaseMath_ReadCallback(vec1) == -1) - return NULL; - - if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, - "Vector division: " - "Vector must be divided by a float"); - return NULL; - } - - if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, - "Vector division: " - "divide by zero error"); - return NULL; - } - - for(i = 0; i < vec1->size; i++) { - vec[i] = vec1->vec[i] / scalar; - } - return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); -} - -/* divide in-place: obj /= obj */ -static PyObject *Vector_idiv(PyObject *v1, PyObject *v2) -{ - int i; - float scalar; - VectorObject *vec1 = (VectorObject*)v1; - - if(BaseMath_ReadCallback(vec1) == -1) - return NULL; - - if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ - PyErr_SetString(PyExc_TypeError, - "Vector division: " - "Vector must be divided by a float"); - return NULL; - } - - if(scalar==0.0f) { - PyErr_SetString(PyExc_ZeroDivisionError, - "Vector division: " - "divide by zero error"); - return NULL; - } - for(i = 0; i < vec1->size; i++) { - vec1->vec[i] /= scalar; - } - - (void)BaseMath_WriteCallback(vec1); - - Py_INCREF(v1); - return v1; -} - -/* -obj - returns the negative of this object*/ -static PyObject *Vector_neg(VectorObject *self) -{ - float tvec[MAX_DIMENSIONS]; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - negate_vn_vn(tvec, self->vec, self->size); - return newVectorObject(tvec, self->size, Py_NEW, Py_TYPE(self)); -} - -/*------------------------vec_magnitude_nosqrt (internal) - for comparing only */ -static double vec_magnitude_nosqrt(float *data, int size) -{ - double dot = 0.0f; - int i; - - for(i=0; isize != vecB->size){ - if (comparison_type == Py_NE){ - Py_RETURN_TRUE; - } - else { - Py_RETURN_FALSE; - } - } - - switch (comparison_type){ - case Py_LT: - lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); - lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA < lenB){ - result = 1; - } - break; - case Py_LE: - lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); - lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA < lenB){ - result = 1; - } - else { - result = (((lenA + epsilon) > lenB) && ((lenA - epsilon) < lenB)); - } - break; - case Py_EQ: - result = EXPP_VectorsAreEqual(vecA->vec, vecB->vec, vecA->size, 1); - break; - case Py_NE: - result = !EXPP_VectorsAreEqual(vecA->vec, vecB->vec, vecA->size, 1); - break; - case Py_GT: - lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); - lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA > lenB){ - result = 1; - } - break; - case Py_GE: - lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); - lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA > lenB){ - result = 1; - } - else { - result = (((lenA + epsilon) > lenB) && ((lenA - epsilon) < lenB)); - } - break; - default: - printf("The result of the comparison could not be evaluated"); - break; - } - if (result == 1){ - Py_RETURN_TRUE; - } - else { - Py_RETURN_FALSE; - } -} - -/*-----------------PROTCOL DECLARATIONS--------------------------*/ -static PySequenceMethods Vector_SeqMethods = { - (lenfunc) Vector_len, /* sq_length */ - (binaryfunc) NULL, /* sq_concat */ - (ssizeargfunc) NULL, /* sq_repeat */ - (ssizeargfunc) Vector_item, /* sq_item */ - NULL, /* py3 deprecated slice func */ - (ssizeobjargproc) Vector_ass_item, /* sq_ass_item */ - NULL, /* py3 deprecated slice assign func */ - (objobjproc) NULL, /* sq_contains */ - (binaryfunc) NULL, /* sq_inplace_concat */ - (ssizeargfunc) NULL, /* sq_inplace_repeat */ -}; - -static PyObject *Vector_subscript(VectorObject* self, PyObject* item) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i; - i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return NULL; - if (i < 0) - i += self->size; - return Vector_item(self, i); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, self->size, &start, &stop, &step, &slicelength) < 0) - return NULL; - - if (slicelength <= 0) { - return PyTuple_New(0); - } - else if (step == 1) { - return Vector_slice(self, start, stop); - } - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with vectors"); - return NULL; - } - } - else { - PyErr_Format(PyExc_TypeError, - "vector indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return NULL; - } -} - -static int Vector_ass_subscript(VectorObject* self, PyObject* item, PyObject* value) -{ - if (PyIndex_Check(item)) { - Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); - if (i == -1 && PyErr_Occurred()) - return -1; - if (i < 0) - i += self->size; - return Vector_ass_item(self, i, value); - } - else if (PySlice_Check(item)) { - Py_ssize_t start, stop, step, slicelength; - - if (PySlice_GetIndicesEx((void *)item, self->size, &start, &stop, &step, &slicelength) < 0) - return -1; - - if (step == 1) - return Vector_ass_slice(self, start, stop, value); - else { - PyErr_SetString(PyExc_IndexError, - "slice steps not supported with vectors"); - return -1; - } - } - else { - PyErr_Format(PyExc_TypeError, - "vector indices must be integers, not %.200s", - Py_TYPE(item)->tp_name); - return -1; - } -} - -static PyMappingMethods Vector_AsMapping = { - (lenfunc)Vector_len, - (binaryfunc)Vector_subscript, - (objobjargproc)Vector_ass_subscript -}; - - -static PyNumberMethods Vector_NumMethods = { - (binaryfunc) Vector_add, /*nb_add*/ - (binaryfunc) Vector_sub, /*nb_subtract*/ - (binaryfunc) Vector_mul, /*nb_multiply*/ - NULL, /*nb_remainder*/ - NULL, /*nb_divmod*/ - NULL, /*nb_power*/ - (unaryfunc) Vector_neg, /*nb_negative*/ - (unaryfunc) NULL, /*tp_positive*/ - (unaryfunc) NULL, /*tp_absolute*/ - (inquiry) NULL, /*tp_bool*/ - (unaryfunc) NULL, /*nb_invert*/ - NULL, /*nb_lshift*/ - (binaryfunc)NULL, /*nb_rshift*/ - NULL, /*nb_and*/ - NULL, /*nb_xor*/ - NULL, /*nb_or*/ - NULL, /*nb_int*/ - NULL, /*nb_reserved*/ - NULL, /*nb_float*/ - Vector_iadd, /* nb_inplace_add */ - Vector_isub, /* nb_inplace_subtract */ - Vector_imul, /* nb_inplace_multiply */ - NULL, /* nb_inplace_remainder */ - NULL, /* nb_inplace_power */ - NULL, /* nb_inplace_lshift */ - NULL, /* nb_inplace_rshift */ - NULL, /* nb_inplace_and */ - NULL, /* nb_inplace_xor */ - NULL, /* nb_inplace_or */ - NULL, /* nb_floor_divide */ - Vector_div, /* nb_true_divide */ - NULL, /* nb_inplace_floor_divide */ - Vector_idiv, /* nb_inplace_true_divide */ - NULL, /* nb_index */ -}; - -/*------------------PY_OBECT DEFINITION--------------------------*/ - -/* - * vector axis, vector.x/y/z/w - */ - -static PyObject *Vector_getAxis(VectorObject *self, void *type) -{ - return vector_item_internal(self, GET_INT_FROM_POINTER(type), TRUE); -} - -static int Vector_setAxis(VectorObject *self, PyObject *value, void *type) -{ - return vector_ass_item_internal(self, GET_INT_FROM_POINTER(type), value, TRUE); -} - -/* vector.length */ -static PyObject *Vector_getLength(VectorObject *self, void *UNUSED(closure)) -{ - double dot = 0.0f; - int i; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - for(i = 0; i < self->size; i++){ - dot += (double)(self->vec[i] * self->vec[i]); - } - return PyFloat_FromDouble(sqrt(dot)); -} - -static int Vector_setLength(VectorObject *self, PyObject *value) -{ - double dot = 0.0f, param; - int i; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - if((param=PyFloat_AsDouble(value)) == -1.0 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "length must be set to a number"); - return -1; - } - - if (param < 0.0) { - PyErr_SetString(PyExc_ValueError, - "cannot set a vectors length to a negative value"); - return -1; - } - if (param == 0.0) { - fill_vn(self->vec, self->size, 0.0f); - return 0; - } - - for(i = 0; i < self->size; i++){ - dot += (double)(self->vec[i] * self->vec[i]); - } - - if (!dot) /* cant sqrt zero */ - return 0; - - dot = sqrt(dot); - - if (dot==param) - return 0; - - dot= dot/param; - - for(i = 0; i < self->size; i++){ - self->vec[i]= self->vec[i] / (float)dot; - } - - (void)BaseMath_WriteCallback(self); /* checked already */ - - return 0; -} - -/* Get a new Vector according to the provided swizzle. This function has little - error checking, as we are in control of the inputs: the closure is set by us - in Vector_createSwizzleGetSeter. */ -static PyObject *Vector_getSwizzle(VectorObject *self, void *closure) -{ - size_t axis_to; - size_t axis_from; - float vec[MAX_DIMENSIONS]; - unsigned int swizzleClosure; - - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - /* Unpack the axes from the closure into an array. */ - axis_to = 0; - swizzleClosure = GET_INT_FROM_POINTER(closure); - while (swizzleClosure & SWIZZLE_VALID_AXIS) - { - axis_from = swizzleClosure & SWIZZLE_AXIS; - if(axis_from >= self->size) { - PyErr_SetString(PyExc_AttributeError, - "Vector swizzle: " - "specified axis not present"); - return NULL; - } - - vec[axis_to] = self->vec[axis_from]; - swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; - axis_to++; - } - - return newVectorObject(vec, axis_to, Py_NEW, Py_TYPE(self)); -} - -/* Set the items of this vector using a swizzle. - - If value is a vector or list this operates like an array copy, except that - the destination is effectively re-ordered as defined by the swizzle. At - most min(len(source), len(dest)) values will be copied. - - If the value is scalar, it is copied to all axes listed in the swizzle. - - If an axis appears more than once in the swizzle, the final occurrence is - the one that determines its value. - - Returns 0 on success and -1 on failure. On failure, the vector will be - unchanged. */ -static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) -{ - size_t size_from; - float scalarVal; - - size_t axis_from; - size_t axis_to; - - unsigned int swizzleClosure; - - float tvec[MAX_DIMENSIONS]; - float vec_assign[MAX_DIMENSIONS]; - - if(BaseMath_ReadCallback(self) == -1) - return -1; - - /* Check that the closure can be used with this vector: even 2D vectors have - swizzles defined for axes z and w, but they would be invalid. */ - swizzleClosure = GET_INT_FROM_POINTER(closure); - axis_from= 0; - while (swizzleClosure & SWIZZLE_VALID_AXIS) { - axis_to = swizzleClosure & SWIZZLE_AXIS; - if (axis_to >= self->size) - { - PyErr_SetString(PyExc_AttributeError, - "Vector swizzle: " - "specified axis not present"); - return -1; - } - swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; - axis_from++; - } - - if (((scalarVal=PyFloat_AsDouble(value)) == -1 && PyErr_Occurred())==0) { - int i; - for(i=0; i < MAX_DIMENSIONS; i++) - vec_assign[i]= scalarVal; - - size_from= axis_from; - } - else if(PyErr_Clear(), (size_from=mathutils_array_parse(vec_assign, 2, 4, value, "mathutils.Vector.**** = swizzle assignment")) == -1) { - return -1; - } - - if(axis_from != size_from) { - PyErr_SetString(PyExc_AttributeError, - "Vector swizzle: size does not match swizzle"); - return -1; - } - - /* Copy vector contents onto swizzled axes. */ - axis_from = 0; - swizzleClosure = GET_INT_FROM_POINTER(closure); - while (swizzleClosure & SWIZZLE_VALID_AXIS) - { - axis_to = swizzleClosure & SWIZZLE_AXIS; - tvec[axis_to] = vec_assign[axis_from]; - swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; - axis_from++; - } - - memcpy(self->vec, tvec, axis_from * sizeof(float)); - /* continue with BaseMathObject_WriteCallback at the end */ - - if(BaseMath_WriteCallback(self) == -1) - return -1; - else - return 0; -} - -/*****************************************************************************/ -/* Python attributes get/set structure: */ -/*****************************************************************************/ -static PyGetSetDef Vector_getseters[] = { - {(char *)"x", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector X axis.\n\n:type: float", (void *)0}, - {(char *)"y", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Y axis.\n\n:type: float", (void *)1}, - {(char *)"z", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Z axis (3D Vectors only).\n\n:type: float", (void *)2}, - {(char *)"w", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector W axis (4D Vectors only).\n\n:type: float", (void *)3}, - {(char *)"length", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, - {(char *)"magnitude", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, - {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, - {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, - - /* autogenerated swizzle attrs, see python script below */ - {(char *)"xx", (getter)Vector_getSwizzle, (setter)NULL, NULL, SET_INT_IN_POINTER(((0|SWIZZLE_VALID_AXIS) | ((0|SWIZZLE_VALID_AXIS)<= 2: - - for axis_0 in axises: - axis_0_pos = axis_pos[axis_0] - for axis_1 in axises: - axis_1_pos = axis_pos[axis_1] - axis_dict[axis_0+axis_1] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<2: - for axis_2 in axises: - axis_2_pos = axis_pos[axis_2] - axis_dict[axis_0+axis_1+axis_2] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<3: - for axis_3 in axises: - axis_3_pos = axis_pos[axis_3] - axis_dict[axis_0+axis_1+axis_2+axis_3] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<size; - - if(mat->colSize != vec_size){ - if(mat->colSize == 4 && vec_size != 3){ - PyErr_SetString(PyExc_ValueError, - "vector * matrix: matrix column size " - "and the vector size must be the same"); - return -1; - } - else { - vec_cpy[3] = 1.0f; - } - } - - if(BaseMath_ReadCallback(vec) == -1 || BaseMath_ReadCallback(mat) == -1) - return -1; - - memcpy(vec_cpy, vec->vec, vec_size * sizeof(float)); - - rvec[3] = 1.0f; - //muliplication - for(x = 0; x < mat->rowSize; x++) { - for(y = 0; y < mat->colSize; y++) { - dot += mat->matrix[x][y] * vec_cpy[y]; - } - rvec[z++] = (float)dot; - dot = 0.0f; - } - return 0; -} -#endif - -/*----------------------------Vector.negate() -------------------- */ -PyDoc_STRVAR(Vector_negate_doc, -".. method:: negate()\n" -"\n" -" Set all values to their negative.\n" -"\n" -" :return: an instance of itself\n" -" :rtype: :class:`Vector`\n" -); -static PyObject *Vector_negate(VectorObject *self) -{ - if(BaseMath_ReadCallback(self) == -1) - return NULL; - - negate_vn(self->vec, self->size); - - (void)BaseMath_WriteCallback(self); // already checked for error - Py_RETURN_NONE; -} - -static struct PyMethodDef Vector_methods[] = { - /* in place only */ - {"zero", (PyCFunction) Vector_zero, METH_NOARGS, Vector_zero_doc}, - {"negate", (PyCFunction) Vector_negate, METH_NOARGS, Vector_negate_doc}, - - /* operate on original or copy */ - {"normalize", (PyCFunction) Vector_normalize, METH_NOARGS, Vector_normalize_doc}, - {"normalized", (PyCFunction) Vector_normalized, METH_NOARGS, Vector_normalized_doc}, - - {"to_2d", (PyCFunction) Vector_to_2d, METH_NOARGS, Vector_to_2d_doc}, - {"resize_2d", (PyCFunction) Vector_resize_2d, METH_NOARGS, Vector_resize_2d_doc}, - {"to_3d", (PyCFunction) Vector_to_3d, METH_NOARGS, Vector_to_3d_doc}, - {"resize_3d", (PyCFunction) Vector_resize_3d, METH_NOARGS, Vector_resize_3d_doc}, - {"to_4d", (PyCFunction) Vector_to_4d, METH_NOARGS, Vector_to_4d_doc}, - {"resize_4d", (PyCFunction) Vector_resize_4d, METH_NOARGS, Vector_resize_4d_doc}, - {"to_tuple", (PyCFunction) Vector_to_tuple, METH_VARARGS, Vector_to_tuple_doc}, - {"to_track_quat", (PyCFunction) Vector_to_track_quat, METH_VARARGS, Vector_to_track_quat_doc}, - - /* operation between 2 or more types */ - {"reflect", (PyCFunction) Vector_reflect, METH_O, Vector_reflect_doc}, - {"cross", (PyCFunction) Vector_cross, METH_O, Vector_cross_doc}, - {"dot", (PyCFunction) Vector_dot, METH_O, Vector_dot_doc}, - {"angle", (PyCFunction) Vector_angle, METH_VARARGS, Vector_angle_doc}, - {"rotation_difference", (PyCFunction) Vector_rotation_difference, METH_O, Vector_rotation_difference_doc}, - {"project", (PyCFunction) Vector_project, METH_O, Vector_project_doc}, - {"lerp", (PyCFunction) Vector_lerp, METH_VARARGS, Vector_lerp_doc}, - {"rotate", (PyCFunction) Vector_rotate, METH_O, Vector_rotate_doc}, - - {"copy", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc}, - {"__copy__", (PyCFunction) Vector_copy, METH_NOARGS, NULL}, - {NULL, NULL, 0, NULL} -}; - - -/* Note - Py_TPFLAGS_CHECKTYPES allows us to avoid casting all types to Vector when coercing - but this means for eg that - vec*mat and mat*vec both get sent to Vector_mul and it neesd to sort out the order -*/ - -PyDoc_STRVAR(vector_doc, -"This object gives access to Vectors in Blender." -); -PyTypeObject vector_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - /* For printing, in format "." */ - "mathutils.Vector", /* char *tp_name; */ - sizeof(VectorObject), /* int tp_basicsize; */ - 0, /* tp_itemsize; For allocation */ - - /* Methods to implement standard operations */ - - (destructor) BaseMathObject_dealloc,/* destructor tp_dealloc; */ - NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ - NULL, /* setattrfunc tp_setattr; */ - NULL, /* cmpfunc tp_compare; */ - (reprfunc)Vector_repr, /* reprfunc tp_repr; */ - - /* Method suites for standard classes */ - - &Vector_NumMethods, /* PyNumberMethods *tp_as_number; */ - &Vector_SeqMethods, /* PySequenceMethods *tp_as_sequence; */ - &Vector_AsMapping, /* PyMappingMethods *tp_as_mapping; */ - - /* More standard operations (here for binary compatibility) */ - - NULL, /* hashfunc tp_hash; */ - NULL, /* ternaryfunc tp_call; */ - NULL, /* reprfunc tp_str; */ - NULL, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ - - /* Functions to access object as input/output buffer */ - NULL, /* PyBufferProcs *tp_as_buffer; */ - - /*** Flags to define presence of optional/expanded features ***/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, - vector_doc, /* char *tp_doc; Documentation string */ - /*** Assigned meaning in release 2.0 ***/ - - /* call function for all accessible objects */ - (traverseproc)BaseMathObject_traverse, //tp_traverse - - /* delete references to contained objects */ - (inquiry)BaseMathObject_clear, //tp_clear - - /*** Assigned meaning in release 2.1 ***/ - /*** rich comparisons ***/ - (richcmpfunc)Vector_richcmpr, /* richcmpfunc tp_richcompare; */ - - /*** weak reference enabler ***/ - 0, /* long tp_weaklistoffset; */ - - /*** Added in release 2.2 ***/ - /* Iterators */ - NULL, /* getiterfunc tp_iter; */ - NULL, /* iternextfunc tp_iternext; */ - - /*** Attribute descriptor and subclassing stuff ***/ - Vector_methods, /* struct PyMethodDef *tp_methods; */ - NULL, /* struct PyMemberDef *tp_members; */ - Vector_getseters, /* struct PyGetSetDef *tp_getset; */ - NULL, /* struct _typeobject *tp_base; */ - NULL, /* PyObject *tp_dict; */ - NULL, /* descrgetfunc tp_descr_get; */ - NULL, /* descrsetfunc tp_descr_set; */ - 0, /* long tp_dictoffset; */ - NULL, /* initproc tp_init; */ - NULL, /* allocfunc tp_alloc; */ - Vector_new, /* newfunc tp_new; */ - /* Low-level free-memory routine */ - NULL, /* freefunc tp_free; */ - /* For PyObject_IS_GC */ - NULL, /* inquiry tp_is_gc; */ - NULL, /* PyObject *tp_bases; */ - /* method resolution order */ - NULL, /* PyObject *tp_mro; */ - NULL, /* PyObject *tp_cache; */ - NULL, /* PyObject *tp_subclasses; */ - NULL, /* PyObject *tp_weaklist; */ - NULL -}; - -/*------------------------newVectorObject (internal)------------- - creates a new vector object - pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER - (i.e. it was allocated elsewhere by MEM_mallocN()) - pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON - (i.e. it must be created here with PyMEM_malloc())*/ -PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObject *base_type) -{ - VectorObject *self; - - if(size > 4 || size < 2) { - PyErr_SetString(PyExc_RuntimeError, - "Vector(): invalid size"); - return NULL; - } - - self= base_type ? (VectorObject *)base_type->tp_alloc(base_type, 0) : - (VectorObject *)PyObject_GC_New(VectorObject, &vector_Type); - - if(self) { - self->size = size; - - /* init callbacks as NULL */ - self->cb_user= NULL; - self->cb_type= self->cb_subtype= 0; - - if(type == Py_WRAP) { - self->vec = vec; - self->wrapped = Py_WRAP; - } - else if (type == Py_NEW) { - self->vec= PyMem_Malloc(size * sizeof(float)); - if(vec) { - memcpy(self->vec, vec, size * sizeof(float)); - } - else { /* new empty */ - fill_vn(self->vec, size, 0.0f); - if(size == 4) { /* do the homogenous thing */ - self->vec[3] = 1.0f; - } - } - self->wrapped = Py_NEW; - } - else { - Py_FatalError("Vector(): invalid type!"); - } - } - return (PyObject *) self; -} - -PyObject *newVectorObject_cb(PyObject *cb_user, int size, int cb_type, int cb_subtype) -{ - float dummy[4] = {0.0, 0.0, 0.0, 0.0}; /* dummy init vector, callbacks will be used on access */ - VectorObject *self= (VectorObject *)newVectorObject(dummy, size, Py_NEW, NULL); - if(self) { - Py_INCREF(cb_user); - self->cb_user= cb_user; - self->cb_type= (unsigned char)cb_type; - self->cb_subtype= (unsigned char)cb_subtype; - PyObject_GC_Track(self); - } - - return (PyObject *)self; -} diff --git a/source/blender/python/generic/mathutils_Vector.h b/source/blender/python/generic/mathutils_Vector.h deleted file mode 100644 index 0ede836ce44..00000000000 --- a/source/blender/python/generic/mathutils_Vector.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Willian P. Germano & Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** - * - */ - -/** \file blender/python/generic/mathutils_Vector.h - * \ingroup pygen - */ - - -#ifndef MATHUTILS_VECTOR_H -#define MATHUTILS_VECTOR_H - -extern PyTypeObject vector_Type; -#define VectorObject_Check(_v) PyObject_TypeCheck((_v), &vector_Type) - -typedef struct { - BASE_MATH_MEMBERS(vec) - - unsigned char size; /* vec size 2,3 or 4 */ -} VectorObject; - -/*prototypes*/ -PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObject *base_type); -PyObject *newVectorObject_cb(PyObject *user, int size, int callback_type, int subtype); - -#endif /* MATHUTILS_VECTOR_H */ diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c deleted file mode 100644 index d2724f6603e..00000000000 --- a/source/blender/python/generic/mathutils_geometry.c +++ /dev/null @@ -1,1126 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * This is a new part of Blender. - * - * Contributor(s): Joseph Gilbert, Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/python/generic/mathutils_geometry.c - * \ingroup pygen - */ - - -#include - -#include "mathutils_geometry.h" - -/* Used for PolyFill */ -#include "MEM_guardedalloc.h" - -#include "BLI_blenlib.h" -#include "BLI_boxpack2d.h" -#include "BLI_math.h" -#include "BLI_utildefines.h" - -#include "BKE_displist.h" - -#include "BKE_curve.h" - -#define SWAP_FLOAT(a, b, tmp) tmp=a; a=b; b=tmp -#define eps 0.000001 - - -/*-------------------------DOC STRINGS ---------------------------*/ -PyDoc_STRVAR(M_Geometry_doc, -"The Blender geometry module" -); - -//---------------------------------INTERSECTION FUNCTIONS-------------------- - -PyDoc_STRVAR(M_Geometry_intersect_ray_tri_doc, -".. function:: intersect_ray_tri(v1, v2, v3, ray, orig, clip=True)\n" -"\n" -" Returns the intersection between a ray and a triangle, if possible, returns None otherwise.\n" -"\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg ray: Direction of the projection\n" -" :type ray: :class:`mathutils.Vector`\n" -" :arg orig: Origin\n" -" :type orig: :class:`mathutils.Vector`\n" -" :arg clip: When False, don't restrict the intersection to the area of the triangle, use the infinite plane defined by the triangle.\n" -" :type clip: boolean\n" -" :return: The point of intersection or None if no intersection is found\n" -" :rtype: :class:`mathutils.Vector` or None\n" -); -static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *ray, *ray_off, *vec1, *vec2, *vec3; - float dir[3], orig[3], v1[3], v2[3], v3[3], e1[3], e2[3], pvec[3], tvec[3], qvec[3]; - float det, inv_det, u, v, t; - int clip= 1; - - if(!PyArg_ParseTuple(args, "O!O!O!O!O!|i:intersect_ray_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { - return NULL; - } - if(vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { - PyErr_SetString(PyExc_ValueError, - "only 3D vectors for all parameters"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(ray) == -1 || BaseMath_ReadCallback(ray_off) == -1) - return NULL; - - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - - VECCOPY(dir, ray->vec); - normalize_v3(dir); - - VECCOPY(orig, ray_off->vec); - - /* find vectors for two edges sharing v1 */ - sub_v3_v3v3(e1, v2, v1); - sub_v3_v3v3(e2, v3, v1); - - /* begin calculating determinant - also used to calculated U parameter */ - cross_v3_v3v3(pvec, dir, e2); - - /* if determinant is near zero, ray lies in plane of triangle */ - det= dot_v3v3(e1, pvec); - - if (det > -0.000001f && det < 0.000001f) { - Py_RETURN_NONE; - } - - inv_det= 1.0f / det; - - /* calculate distance from v1 to ray origin */ - sub_v3_v3v3(tvec, orig, v1); - - /* calculate U parameter and test bounds */ - u= dot_v3v3(tvec, pvec) * inv_det; - if (clip && (u < 0.0f || u > 1.0f)) { - Py_RETURN_NONE; - } - - /* prepare to test the V parameter */ - cross_v3_v3v3(qvec, tvec, e1); - - /* calculate V parameter and test bounds */ - v= dot_v3v3(dir, qvec) * inv_det; - - if (clip && (v < 0.0f || u + v > 1.0f)) { - Py_RETURN_NONE; - } - - /* calculate t, ray intersects triangle */ - t= dot_v3v3(e2, qvec) * inv_det; - - mul_v3_fl(dir, t); - add_v3_v3v3(pvec, orig, dir); - - return newVectorObject(pvec, 3, Py_NEW, NULL); -} - -/* Line-Line intersection using algorithm from mathworld.wolfram.com */ - -PyDoc_STRVAR(M_Geometry_intersect_line_line_doc, -".. function:: intersect_line_line(v1, v2, v3, v4)\n" -"\n" -" Returns a tuple with the points on each line respectively closest to the other.\n" -"\n" -" :arg v1: First point of the first line\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Second point of the first line\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: First point of the second line\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Second point of the second line\n" -" :type v4: :class:`mathutils.Vector`\n" -" :rtype: tuple of :class:`mathutils.Vector`'s\n" -); -static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject *args) -{ - PyObject *tuple; - VectorObject *vec1, *vec2, *vec3, *vec4; - float v1[3], v2[3], v3[3], v4[3], i1[3], i2[3]; - - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { - return NULL; - } - if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { - PyErr_SetString(PyExc_ValueError, - "vectors must be of the same size"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) - return NULL; - - if(vec1->size == 3 || vec1->size == 2) { - int result; - - if (vec1->size == 3) { - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - VECCOPY(v4, vec4->vec); - } - else { - v1[0]= vec1->vec[0]; - v1[1]= vec1->vec[1]; - v1[2]= 0.0f; - - v2[0]= vec2->vec[0]; - v2[1]= vec2->vec[1]; - v2[2]= 0.0f; - - v3[0]= vec3->vec[0]; - v3[1]= vec3->vec[1]; - v3[2]= 0.0f; - - v4[0]= vec4->vec[0]; - v4[1]= vec4->vec[1]; - v4[2]= 0.0f; - } - - result= isect_line_line_v3(v1, v2, v3, v4, i1, i2); - - if (result == 0) { - /* colinear */ - Py_RETURN_NONE; - } - else { - tuple= PyTuple_New(2); - PyTuple_SET_ITEM(tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL)); - PyTuple_SET_ITEM(tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL)); - return tuple; - } - } - else { - PyErr_SetString(PyExc_ValueError, - "2D/3D vectors only"); - return NULL; - } -} - - - - -//----------------------------geometry.normal() ------------------- -PyDoc_STRVAR(M_Geometry_normal_doc, -".. function:: normal(v1, v2, v3, v4=None)\n" -"\n" -" Returns the normal of the 3D tri or quad.\n" -"\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Point4 (optional)\n" -" :type v4: :class:`mathutils.Vector`\n" -" :rtype: :class:`mathutils.Vector`\n" -); -static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *vec1, *vec2, *vec3, *vec4; - float n[3]; - - if(PyTuple_GET_SIZE(args) == 3) { - if(!PyArg_ParseTuple(args, "O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { - return NULL; - } - if(vec1->size != vec2->size || vec1->size != vec3->size) { - PyErr_SetString(PyExc_ValueError, - "vectors must be of the same size"); - return NULL; - } - if(vec1->size < 3) { - PyErr_SetString(PyExc_ValueError, - "2D vectors unsupported"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) - return NULL; - - normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec); - } - else { - if(!PyArg_ParseTuple(args, "O!O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { - return NULL; - } - if(vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { - PyErr_SetString(PyExc_ValueError, - "vectors must be of the same size"); - return NULL; - } - if(vec1->size < 3) { - PyErr_SetString(PyExc_ValueError, - "2D vectors unsupported"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) - return NULL; - - normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec); - } - - return newVectorObject(n, 3, Py_NEW, NULL); -} - -//--------------------------------- AREA FUNCTIONS-------------------- - -PyDoc_STRVAR(M_Geometry_area_tri_doc, -".. function:: area_tri(v1, v2, v3)\n" -"\n" -" Returns the area size of the 2D or 3D triangle defined.\n" -"\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n" -" :rtype: float\n" -); -static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *vec1, *vec2, *vec3; - - if(!PyArg_ParseTuple(args, "O!O!O!:area_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { - return NULL; - } - - if(vec1->size != vec2->size || vec1->size != vec3->size) { - PyErr_SetString(PyExc_ValueError, - "vectors must be of the same size"); - return NULL; - } - - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) - return NULL; - - if (vec1->size == 3) { - return PyFloat_FromDouble(area_tri_v3(vec1->vec, vec2->vec, vec3->vec)); - } - else if (vec1->size == 2) { - return PyFloat_FromDouble(area_tri_v2(vec1->vec, vec2->vec, vec3->vec)); - } - else { - PyErr_SetString(PyExc_ValueError, - "only 2D,3D vectors are supported"); - return NULL; - } -} - -/*----------------------------------geometry.PolyFill() -------------------*/ -PyDoc_STRVAR(M_Geometry_tesselate_polygon_doc, -".. function:: tesselate_polygon(veclist_list)\n" -"\n" -" Takes a list of polylines (each point a vector) and returns the point indices for a polyline filled with triangles.\n" -"\n" -" :arg veclist_list: list of polylines\n" -" :rtype: list\n" -); -/* PolyFill function, uses Blenders scanfill to fill multiple poly lines */ -static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject *polyLineSeq) -{ - PyObject *tri_list; /*return this list of tri's */ - PyObject *polyLine, *polyVec; - int i, len_polylines, len_polypoints, ls_error= 0; - - /* display listbase */ - ListBase dispbase={NULL, NULL}; - DispList *dl; - float *fp; /*pointer to the array of malloced dl->verts to set the points from the vectors */ - int index, *dl_face, totpoints=0; - - if(!PySequence_Check(polyLineSeq)) { - PyErr_SetString(PyExc_TypeError, - "expected a sequence of poly lines"); - return NULL; - } - - len_polylines= PySequence_Size(polyLineSeq); - - for(i= 0; i < len_polylines; ++i) { - polyLine= PySequence_GetItem(polyLineSeq, i); - if (!PySequence_Check(polyLine)) { - freedisplist(&dispbase); - Py_XDECREF(polyLine); /* may be null so use Py_XDECREF*/ - PyErr_SetString(PyExc_TypeError, - "One or more of the polylines is not a sequence of mathutils.Vector's"); - return NULL; - } - - len_polypoints= PySequence_Size(polyLine); - if (len_polypoints>0) { /* dont bother adding edges as polylines */ -#if 0 - if (EXPP_check_sequence_consistency(polyLine, &vector_Type) != 1) { - freedisplist(&dispbase); - Py_DECREF(polyLine); - PyErr_SetString(PyExc_TypeError, - "A point in one of the polylines is not a mathutils.Vector type"); - return NULL; - } -#endif - dl= MEM_callocN(sizeof(DispList), "poly disp"); - BLI_addtail(&dispbase, dl); - dl->type= DL_INDEX3; - dl->nr= len_polypoints; - dl->type= DL_POLY; - dl->parts= 1; /* no faces, 1 edge loop */ - dl->col= 0; /* no material */ - dl->verts= fp= MEM_callocN(sizeof(float)*3*len_polypoints, "dl verts"); - dl->index= MEM_callocN(sizeof(int)*3*len_polypoints, "dl index"); - - for(index= 0; indexvec[0]; - fp[1]= ((VectorObject *)polyVec)->vec[1]; - if(((VectorObject *)polyVec)->size > 2) - fp[2]= ((VectorObject *)polyVec)->vec[2]; - else - fp[2]= 0.0f; /* if its a 2d vector then set the z to be zero */ - } - else { - ls_error= 1; - } - - totpoints++; - Py_DECREF(polyVec); - } - } - Py_DECREF(polyLine); - } - - if(ls_error) { - freedisplist(&dispbase); /* possible some dl was allocated */ - PyErr_SetString(PyExc_TypeError, - "A point in one of the polylines " - "is not a mathutils.Vector type"); - return NULL; - } - else if (totpoints) { - /* now make the list to return */ - filldisplist(&dispbase, &dispbase, 0); - - /* The faces are stored in a new DisplayList - thats added to the head of the listbase */ - dl= dispbase.first; - - tri_list= PyList_New(dl->parts); - if(!tri_list) { - freedisplist(&dispbase); - PyErr_SetString(PyExc_RuntimeError, - "failed to make a new list"); - return NULL; - } - - index= 0; - dl_face= dl->index; - while(index < dl->parts) { - PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2])); - dl_face+= 3; - index++; - } - freedisplist(&dispbase); - } - else { - /* no points, do this so scripts dont barf */ - freedisplist(&dispbase); /* possible some dl was allocated */ - tri_list= PyList_New(0); - } - - return tri_list; -} - -PyDoc_STRVAR(M_Geometry_intersect_line_line_2d_doc, -".. function:: intersect_line_line_2d(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" -"\n" -" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" -"\n" -" :arg lineA_p1: First point of the first line\n" -" :type lineA_p1: :class:`mathutils.Vector`\n" -" :arg lineA_p2: Second point of the first line\n" -" :type lineA_p2: :class:`mathutils.Vector`\n" -" :arg lineB_p1: First point of the second line\n" -" :type lineB_p1: :class:`mathutils.Vector`\n" -" :arg lineB_p2: Second point of the second line\n" -" :type lineB_p2: :class:`mathutils.Vector`\n" -" :return: The point of intersection or None when not found\n" -" :rtype: :class:`mathutils.Vector` or None\n" -); -static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *line_a1, *line_a2, *line_b1, *line_b2; - float vi[2]; - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line_2d", - &vector_Type, &line_a1, - &vector_Type, &line_a2, - &vector_Type, &line_b1, - &vector_Type, &line_b2) - ) { - return NULL; - } - - if(BaseMath_ReadCallback(line_a1) == -1 || BaseMath_ReadCallback(line_a2) == -1 || BaseMath_ReadCallback(line_b1) == -1 || BaseMath_ReadCallback(line_b2) == -1) - return NULL; - - if(isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) { - return newVectorObject(vi, 2, Py_NEW, NULL); - } - else { - Py_RETURN_NONE; - } -} - - -PyDoc_STRVAR(M_Geometry_intersect_line_plane_doc, -".. function:: intersect_line_plane(line_a, line_b, plane_co, plane_no, no_flip=False)\n" -"\n" -" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" -"\n" -" :arg line_a: First point of the first line\n" -" :type line_a: :class:`mathutils.Vector`\n" -" :arg line_b: Second point of the first line\n" -" :type line_b: :class:`mathutils.Vector`\n" -" :arg plane_co: A point on the plane\n" -" :type plane_co: :class:`mathutils.Vector`\n" -" :arg plane_no: The direction the plane is facing\n" -" :type plane_no: :class:`mathutils.Vector`\n" -" :arg no_flip: Always return an intersection on the directon defined bt line_a -> line_b\n" -" :type no_flip: :boolean\n" -" :return: The point of intersection or None when not found\n" -" :rtype: :class:`mathutils.Vector` or None\n" -); -static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *line_a, *line_b, *plane_co, *plane_no; - int no_flip= 0; - float isect[3]; - if(!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_plane", - &vector_Type, &line_a, - &vector_Type, &line_b, - &vector_Type, &plane_co, - &vector_Type, &plane_no, - &no_flip) - ) { - return NULL; - } - - if( BaseMath_ReadCallback(line_a) == -1 || - BaseMath_ReadCallback(line_b) == -1 || - BaseMath_ReadCallback(plane_co) == -1 || - BaseMath_ReadCallback(plane_no) == -1 - ) { - return NULL; - } - - if(ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { - PyErr_SetString(PyExc_ValueError, - "geometry.intersect_line_plane(...): " - " can't use 2D Vectors"); - return NULL; - } - - if(isect_line_plane_v3(isect, line_a->vec, line_b->vec, plane_co->vec, plane_no->vec, no_flip) == 1) { - return newVectorObject(isect, 3, Py_NEW, NULL); - } - else { - Py_RETURN_NONE; - } -} - - -PyDoc_STRVAR(M_Geometry_intersect_line_sphere_doc, -".. function:: intersect_line_sphere(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" -"\n" -" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" -" returns the intersection\n" -"\n" -" :arg line_a: First point of the first line\n" -" :type line_a: :class:`mathutils.Vector`\n" -" :arg line_b: Second point of the first line\n" -" :type line_b: :class:`mathutils.Vector`\n" -" :arg sphere_co: The center of the sphere\n" -" :type sphere_co: :class:`mathutils.Vector`\n" -" :arg sphere_radius: Radius of the sphere\n" -" :type sphere_radius: sphere_radius\n" -" :return: The intersection points as a pair of vectors or None when there is no intersection\n" -" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" -); -static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *line_a, *line_b, *sphere_co; - float sphere_radius; - int clip= TRUE; - - float isect_a[3]; - float isect_b[3]; - - if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere", - &vector_Type, &line_a, - &vector_Type, &line_b, - &vector_Type, &sphere_co, - &sphere_radius, &clip) - ) { - return NULL; - } - - if( BaseMath_ReadCallback(line_a) == -1 || - BaseMath_ReadCallback(line_b) == -1 || - BaseMath_ReadCallback(sphere_co) == -1 - ) { - return NULL; - } - - if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { - PyErr_SetString(PyExc_ValueError, - "geometry.intersect_line_sphere(...): " - " can't use 2D Vectors"); - return NULL; - } - else { - short use_a= TRUE; - short use_b= TRUE; - float lambda; - - PyObject *ret= PyTuple_New(2); - - switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { - case 1: - if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - use_b= FALSE; - break; - case 2: - if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - if(!(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; - break; - default: - use_a= FALSE; - use_b= FALSE; - } - - if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); } - else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - - if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); } - else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } - - return ret; - } -} - -/* keep in sync with M_Geometry_intersect_line_sphere */ -PyDoc_STRVAR(M_Geometry_intersect_line_sphere_2d_doc, -".. function:: intersect_line_sphere_2d(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" -"\n" -" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" -" returns the intersection\n" -"\n" -" :arg line_a: First point of the first line\n" -" :type line_a: :class:`mathutils.Vector`\n" -" :arg line_b: Second point of the first line\n" -" :type line_b: :class:`mathutils.Vector`\n" -" :arg sphere_co: The center of the sphere\n" -" :type sphere_co: :class:`mathutils.Vector`\n" -" :arg sphere_radius: Radius of the sphere\n" -" :type sphere_radius: sphere_radius\n" -" :return: The intersection points as a pair of vectors or None when there is no intersection\n" -" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" -); -static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *line_a, *line_b, *sphere_co; - float sphere_radius; - int clip= TRUE; - - float isect_a[3]; - float isect_b[3]; - - if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere_2d", - &vector_Type, &line_a, - &vector_Type, &line_b, - &vector_Type, &sphere_co, - &sphere_radius, &clip) - ) { - return NULL; - } - - if( BaseMath_ReadCallback(line_a) == -1 || - BaseMath_ReadCallback(line_b) == -1 || - BaseMath_ReadCallback(sphere_co) == -1 - ) { - return NULL; - } - else { - short use_a= TRUE; - short use_b= TRUE; - float lambda; - - PyObject *ret= PyTuple_New(2); - - switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { - case 1: - if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - use_b= FALSE; - break; - case 2: - if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - if(!(!clip || (((lambda= line_point_factor_v2(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; - break; - default: - use_a= FALSE; - use_b= FALSE; - } - - if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); } - else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - - if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); } - else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } - - return ret; - } -} - -PyDoc_STRVAR(M_Geometry_intersect_point_line_doc, -".. function:: intersect_point_line(pt, line_p1, line_p2)\n" -"\n" -" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" -"\n" -" :arg pt: Point\n" -" :type pt: :class:`mathutils.Vector`\n" -" :arg line_p1: First point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n" -" :arg line_p1: Second point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n" -" :rtype: (:class:`mathutils.Vector`, float)\n" -); -static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *pt, *line_1, *line_2; - float pt_in[3], pt_out[3], l1[3], l2[3]; - float lambda; - PyObject *ret; - - if(!PyArg_ParseTuple(args, "O!O!O!:intersect_point_line", - &vector_Type, &pt, - &vector_Type, &line_1, - &vector_Type, &line_2) - ) { - return NULL; - } - - if(BaseMath_ReadCallback(pt) == -1 || BaseMath_ReadCallback(line_1) == -1 || BaseMath_ReadCallback(line_2) == -1) - return NULL; - - /* accept 2d verts */ - if (pt->size==3) { VECCOPY(pt_in, pt->vec);} - else { pt_in[2]=0.0; VECCOPY2D(pt_in, pt->vec) } - - if (line_1->size==3) { VECCOPY(l1, line_1->vec);} - else { l1[2]=0.0; VECCOPY2D(l1, line_1->vec) } - - if (line_2->size==3) { VECCOPY(l2, line_2->vec);} - else { l2[2]=0.0; VECCOPY2D(l2, line_2->vec) } - - /* do the calculation */ - lambda= closest_to_line_v3(pt_out, pt_in, l1, l2); - - ret= PyTuple_New(2); - PyTuple_SET_ITEM(ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL)); - PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(lambda)); - return ret; -} - -PyDoc_STRVAR(M_Geometry_intersect_point_tri_2d_doc, -".. function:: intersect_point_tri_2d(pt, tri_p1, tri_p2, tri_p3)\n" -"\n" -" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" -"\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg tri_p1: First point of the triangle\n" -" :type tri_p1: :class:`mathutils.Vector`\n" -" :arg tri_p2: Second point of the triangle\n" -" :type tri_p2: :class:`mathutils.Vector`\n" -" :arg tri_p3: Third point of the triangle\n" -" :type tri_p3: :class:`mathutils.Vector`\n" -" :rtype: int\n" -); -static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *pt_vec, *tri_p1, *tri_p2, *tri_p3; - - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_point_tri_2d", - &vector_Type, &pt_vec, - &vector_Type, &tri_p1, - &vector_Type, &tri_p2, - &vector_Type, &tri_p3) - ) { - return NULL; - } - - if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(tri_p1) == -1 || BaseMath_ReadCallback(tri_p2) == -1 || BaseMath_ReadCallback(tri_p3) == -1) - return NULL; - - return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec)); -} - -PyDoc_STRVAR(M_Geometry_intersect_point_quad_2d_doc, -".. function:: intersect_point_quad_2d(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" -"\n" -" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" -"\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg quad_p1: First point of the quad\n" -" :type quad_p1: :class:`mathutils.Vector`\n" -" :arg quad_p2: Second point of the quad\n" -" :type quad_p2: :class:`mathutils.Vector`\n" -" :arg quad_p3: Third point of the quad\n" -" :type quad_p3: :class:`mathutils.Vector`\n" -" :arg quad_p4: Forth point of the quad\n" -" :type quad_p4: :class:`mathutils.Vector`\n" -" :rtype: int\n" -); -static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *pt_vec, *quad_p1, *quad_p2, *quad_p3, *quad_p4; - - if(!PyArg_ParseTuple(args, "O!O!O!O!O!:intersect_point_quad_2d", - &vector_Type, &pt_vec, - &vector_Type, &quad_p1, - &vector_Type, &quad_p2, - &vector_Type, &quad_p3, - &vector_Type, &quad_p4) - ) { - return NULL; - } - - if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(quad_p1) == -1 || BaseMath_ReadCallback(quad_p2) == -1 || BaseMath_ReadCallback(quad_p3) == -1 || BaseMath_ReadCallback(quad_p4) == -1) - return NULL; - - return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec)); -} - -static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) -{ - int len, i; - PyObject *list_item, *item_1, *item_2; - boxPack *box; - - - /* Error checking must already be done */ - if(!PyList_Check(value)) { - PyErr_SetString(PyExc_TypeError, - "can only back a list of [x, y, w, h]"); - return -1; - } - - len= PyList_Size(value); - - (*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box"); - - - for(i= 0; i < len; i++) { - list_item= PyList_GET_ITEM(value, i); - if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) { - MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, - "can only pack a list of [x, y, w, h]"); - return -1; - } - - box= (*boxarray)+i; - - item_1= PyList_GET_ITEM(list_item, 2); - item_2= PyList_GET_ITEM(list_item, 3); - - box->w= (float)PyFloat_AsDouble(item_1); - box->h= (float)PyFloat_AsDouble(item_2); - box->index= i; - - /* accounts for error case too and overwrites with own error */ - if (box->w < 0.0f || box->h < 0.0f) { - MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, - "error parsing width and height values from list: " - "[x, y, w, h], not numbers or below zero"); - return -1; - } - - /* verts will be added later */ - } - return 0; -} - -static void boxPack_ToPyObject(PyObject *value, boxPack **boxarray) -{ - int len, i; - PyObject *list_item; - boxPack *box; - - len= PyList_Size(value); - - for(i= 0; i < len; i++) { - box= (*boxarray)+i; - list_item= PyList_GET_ITEM(value, box->index); - PyList_SET_ITEM(list_item, 0, PyFloat_FromDouble(box->x)); - PyList_SET_ITEM(list_item, 1, PyFloat_FromDouble(box->y)); - } - MEM_freeN(*boxarray); -} - -PyDoc_STRVAR(M_Geometry_box_pack_2d_doc, -".. function:: box_pack_2d(boxes)\n" -"\n" -" Returns the normal of the 3D tri or quad.\n" -"\n" -" :arg boxes: list of boxes, each box is a list where the first 4 items are [x, y, width, height, ...] other items are ignored.\n" -" :type boxes: list\n" -" :return: the width and height of the packed bounding box\n" -" :rtype: tuple, pair of floats\n" -); -static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlist) -{ - float tot_width= 0.0f, tot_height= 0.0f; - int len; - - PyObject *ret; - - if(!PyList_Check(boxlist)) { - PyErr_SetString(PyExc_TypeError, - "expected a list of boxes [[x, y, w, h], ... ]"); - return NULL; - } - - len= PyList_GET_SIZE(boxlist); - if (len) { - boxPack *boxarray= NULL; - if(boxPack_FromPyObject(boxlist, &boxarray) == -1) { - return NULL; /* exception set */ - } - - /* Non Python function */ - boxPack2D(boxarray, len, &tot_width, &tot_height); - - boxPack_ToPyObject(boxlist, &boxarray); - } - - ret= PyTuple_New(2); - PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(tot_width)); - PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(tot_width)); - return ret; -} - -PyDoc_STRVAR(M_Geometry_interpolate_bezier_doc, -".. function:: interpolate_bezier(knot1, handle1, handle2, knot2, resolution)\n" -"\n" -" Interpolate a bezier spline segment.\n" -"\n" -" :arg knot1: First bezier spline point.\n" -" :type knot1: :class:`mathutils.Vector`\n" -" :arg handle1: First bezier spline handle.\n" -" :type handle1: :class:`mathutils.Vector`\n" -" :arg handle2: Second bezier spline handle.\n" -" :type handle2: :class:`mathutils.Vector`\n" -" :arg knot2: Second bezier spline point.\n" -" :type knot2: :class:`mathutils.Vector`\n" -" :arg resolution: Number of points to return.\n" -" :type resolution: int\n" -" :return: The interpolated points\n" -" :rtype: list of :class:`mathutils.Vector`'s\n" -); -static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *vec_k1, *vec_h1, *vec_k2, *vec_h2; - int resolu; - int dims; - int i; - float *coord_array, *fp; - PyObject *list; - - float k1[4]= {0.0, 0.0, 0.0, 0.0}; - float h1[4]= {0.0, 0.0, 0.0, 0.0}; - float k2[4]= {0.0, 0.0, 0.0, 0.0}; - float h2[4]= {0.0, 0.0, 0.0, 0.0}; - - - if(!PyArg_ParseTuple(args, "O!O!O!O!i:interpolate_bezier", - &vector_Type, &vec_k1, - &vector_Type, &vec_h1, - &vector_Type, &vec_h2, - &vector_Type, &vec_k2, &resolu) - ) { - return NULL; - } - - if(resolu <= 1) { - PyErr_SetString(PyExc_ValueError, - "resolution must be 2 or over"); - return NULL; - } - - if(BaseMath_ReadCallback(vec_k1) == -1 || BaseMath_ReadCallback(vec_h1) == -1 || BaseMath_ReadCallback(vec_k2) == -1 || BaseMath_ReadCallback(vec_h2) == -1) - return NULL; - - dims= MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size); - - for(i=0; i < vec_k1->size; i++) k1[i]= vec_k1->vec[i]; - for(i=0; i < vec_h1->size; i++) h1[i]= vec_h1->vec[i]; - for(i=0; i < vec_k2->size; i++) k2[i]= vec_k2->vec[i]; - for(i=0; i < vec_h2->size; i++) h2[i]= vec_h2->vec[i]; - - coord_array= MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); - for(i=0; isize != 3 || - vec_t1_src->size != 3 || - vec_t2_src->size != 3 || - vec_t3_src->size != 3 || - vec_t1_tar->size != 3 || - vec_t2_tar->size != 3 || - vec_t3_tar->size != 3) - { - PyErr_SetString(PyExc_ValueError, - "One of more of the vector arguments wasn't a 3D vector"); - return NULL; - } - - barycentric_transform(vec, vec_pt->vec, - vec_t1_tar->vec, vec_t2_tar->vec, vec_t3_tar->vec, - vec_t1_src->vec, vec_t2_src->vec, vec_t3_src->vec); - - return newVectorObject(vec, 3, Py_NEW, NULL); -} - -static PyMethodDef M_Geometry_methods[]= { - {"intersect_ray_tri", (PyCFunction) M_Geometry_intersect_ray_tri, METH_VARARGS, M_Geometry_intersect_ray_tri_doc}, - {"intersect_point_line", (PyCFunction) M_Geometry_intersect_point_line, METH_VARARGS, M_Geometry_intersect_point_line_doc}, - {"intersect_point_tri_2d", (PyCFunction) M_Geometry_intersect_point_tri_2d, METH_VARARGS, M_Geometry_intersect_point_tri_2d_doc}, - {"intersect_point_quad_2d", (PyCFunction) M_Geometry_intersect_point_quad_2d, METH_VARARGS, M_Geometry_intersect_point_quad_2d_doc}, - {"intersect_line_line", (PyCFunction) M_Geometry_intersect_line_line, METH_VARARGS, M_Geometry_intersect_line_line_doc}, - {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, - {"intersect_line_plane", (PyCFunction) M_Geometry_intersect_line_plane, METH_VARARGS, M_Geometry_intersect_line_plane_doc}, - {"intersect_line_sphere", (PyCFunction) M_Geometry_intersect_line_sphere, METH_VARARGS, M_Geometry_intersect_line_sphere_doc}, - {"intersect_line_sphere_2d", (PyCFunction) M_Geometry_intersect_line_sphere_2d, METH_VARARGS, M_Geometry_intersect_line_sphere_2d_doc}, - {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, - {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, - {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, - {"tesselate_polygon", (PyCFunction) M_Geometry_tesselate_polygon, METH_O, M_Geometry_tesselate_polygon_doc}, - {"box_pack_2d", (PyCFunction) M_Geometry_box_pack_2d, METH_O, M_Geometry_box_pack_2d_doc}, - {"barycentric_transform", (PyCFunction) M_Geometry_barycentric_transform, METH_VARARGS, M_Geometry_barycentric_transform_doc}, - {NULL, NULL, 0, NULL} -}; - -static struct PyModuleDef M_Geometry_module_def= { - PyModuleDef_HEAD_INIT, - "mathutils.geometry", /* m_name */ - M_Geometry_doc, /* m_doc */ - 0, /* m_size */ - M_Geometry_methods, /* m_methods */ - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL, /* m_free */ -}; - -/*----------------------------MODULE INIT-------------------------*/ -PyMODINIT_FUNC BPyInit_mathutils_geometry(void) -{ - PyObject *submodule= PyModule_Create(&M_Geometry_module_def); - return submodule; -} diff --git a/source/blender/python/generic/mathutils_geometry.h b/source/blender/python/generic/mathutils_geometry.h deleted file mode 100644 index 929b8cc8d75..00000000000 --- a/source/blender/python/generic/mathutils_geometry.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * This is a new part of Blender. - * - * Contributor(s): Joseph Gilbert - * - * ***** END GPL LICENSE BLOCK ***** -*/ - -/** \file blender/python/generic/mathutils_geometry.h - * \ingroup pygen - */ - -/*Include this file for access to vector, quat, matrix, euler, etc...*/ - -#ifndef MATHUTILS_GEOMETRY_H -#define MATHUTILS_GEOMETRY_H - -#include "mathutils.h" - -PyMODINIT_FUNC BPyInit_mathutils_geometry(void); - -#endif /* MATHUTILS_GEOMETRY_H */ diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c index fb4c285a458..3f637feadf7 100644 --- a/source/blender/python/intern/bpy.c +++ b/source/blender/python/intern/bpy.c @@ -55,10 +55,10 @@ #include "MEM_guardedalloc.h" /* external util modules */ -#include "../generic/mathutils.h" +#include "../generic/IDProp.h" #include "../generic/bgl.h" #include "../generic/blf_py_api.h" -#include "../generic/IDProp.h" +#include "../mathutils/mathutils.h" PyObject *bpy_package_py= NULL; diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index f091a511e93..8bd6e6c611c 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -66,10 +66,10 @@ #include "../generic/py_capi_utils.h" /* inittab initialization functions */ -#include "../generic/noise_py_api.h" -#include "../generic/mathutils.h" #include "../generic/bgl.h" #include "../generic/blf_py_api.h" +#include "../generic/noise_py_api.h" +#include "../mathutils/mathutils.h" /* for internal use, when starting and ending python scripts */ @@ -175,8 +175,8 @@ extern PyObject *AUD_initPython(void); static struct _inittab bpy_internal_modules[]= { {(char *)"noise", BPyInit_noise}, - {(char *)"mathutils", BPyInit_mathutils}, -// {(char *)"mathutils.geometry", BPyInit_mathutils_geometry}, + {(char *)"mathutils", PyInit_mathutils}, +// {(char *)"mathutils.geometry", PyInit_mathutils_geometry}, {(char *)"bgl", BPyInit_bgl}, {(char *)"blf", BPyInit_blf}, #ifdef WITH_AUDASPACE diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4f6edb02a7c..61fc2e483b1 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -346,7 +346,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb static int deferred_register_prop(StructRNA *srna, PyObject *key, PyObject *item); #ifdef USE_MATHUTILS -#include "../generic/mathutils.h" /* so we can have mathutils callbacks */ +#include "../mathutils/mathutils.h" /* so we can have mathutils callbacks */ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, PointerRNA *ptr, PropertyRNA *prop, Py_ssize_t start, Py_ssize_t stop, Py_ssize_t length); static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, short order_fallback); diff --git a/source/blender/python/mathutils/CMakeLists.txt b/source/blender/python/mathutils/CMakeLists.txt new file mode 100644 index 00000000000..b28496d612e --- /dev/null +++ b/source/blender/python/mathutils/CMakeLists.txt @@ -0,0 +1,52 @@ +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Contributor(s): Campbell Barton +# +# ***** END GPL LICENSE BLOCK ***** + +set(INC + . + ../../blenlib + ../../blenkernel + ../../makesdna + ../../../../intern/guardedalloc +) + +set(INC_SYS + ${PYTHON_INCLUDE_DIRS} +) + +set(SRC + mathutils.c + mathutils_Color.c + mathutils_Euler.c + mathutils_Matrix.c + mathutils_Quaternion.c + mathutils_Vector.c + mathutils_geometry.c + + mathutils.h + mathutils_Color.h + mathutils_Euler.h + mathutils_Matrix.h + mathutils_Quaternion.h + mathutils_Vector.h + mathutils_geometry.h +) + + +blender_add_lib(bf_python_mathutils "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/python/mathutils/mathutils.c b/source/blender/python/mathutils/mathutils.c new file mode 100644 index 00000000000..50b75b09cb2 --- /dev/null +++ b/source/blender/python/mathutils/mathutils.c @@ -0,0 +1,384 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Joseph Gilbert, Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils.c + * \ingroup pygen + */ + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +PyDoc_STRVAR(M_Mathutils_doc, +"This module provides access to matrices, eulers, quaternions and vectors." +); +static int mathutils_array_parse_fast(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix) +{ + PyObject *value_fast= NULL; + PyObject *item; + + int i, size; + + /* non list/tuple cases */ + if(!(value_fast=PySequence_Fast(value, error_prefix))) { + /* PySequence_Fast sets the error */ + return -1; + } + + size= PySequence_Fast_GET_SIZE(value_fast); + + if(size > array_max || size < array_min) { + if (array_max == array_min) { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected %d", + error_prefix, size, array_max); + } + else { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected [%d - %d]", + error_prefix, size, array_min, array_max); + } + Py_DECREF(value_fast); + return -1; + } + + i= size; + do { + i--; + if(((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { + PyErr_Format(PyExc_TypeError, + "%.200s: sequence index %d expected a number, " + "found '%.200s' type, ", + error_prefix, i, Py_TYPE(item)->tp_name); + Py_DECREF(value_fast); + return -1; + } + } while(i); + + Py_XDECREF(value_fast); + return size; +} + +/* helper functionm returns length of the 'value', -1 on error */ +int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix) +{ +#if 1 /* approx 6x speedup for mathutils types */ + int size; + + if( (VectorObject_Check(value) && (size= ((VectorObject *)value)->size)) || + (EulerObject_Check(value) && (size= 3)) || + (QuaternionObject_Check(value) && (size= 4)) || + (ColorObject_Check(value) && (size= 3)) + ) { + if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + return -1; + } + + if(size > array_max || size < array_min) { + if (array_max == array_min) { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected %d", + error_prefix, size, array_max); + } + else { + PyErr_Format(PyExc_ValueError, + "%.200s: sequence size is %d, expected [%d - %d]", + error_prefix, size, array_min, array_max); + } + return -1; + } + + memcpy(array, ((BaseMathObject *)value)->data, size * sizeof(float)); + return size; + } + else +#endif + { + return mathutils_array_parse_fast(array, array_min, array_max, value, error_prefix); + } +} + +int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix) +{ + if(EulerObject_Check(value)) { + if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + return -1; + } + else { + eulO_to_mat3(rmat, ((EulerObject *)value)->eul, ((EulerObject *)value)->order); + return 0; + } + } + else if (QuaternionObject_Check(value)) { + if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + return -1; + } + else { + float tquat[4]; + normalize_qt_qt(tquat, ((QuaternionObject *)value)->quat); + quat_to_mat3(rmat, tquat); + return 0; + } + } + else if (MatrixObject_Check(value)) { + if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + return -1; + } + else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) { + PyErr_Format(PyExc_ValueError, + "%.200s: matrix must have minimum 3x3 dimensions", + error_prefix); + return -1; + } + else { + matrix_as_3x3(rmat, (MatrixObject *)value); + normalize_m3(rmat); + return 0; + } + } + else { + PyErr_Format(PyExc_TypeError, + "%.200s: expected a Euler, Quaternion or Matrix type, " + "found %.200s", error_prefix, Py_TYPE(value)->tp_name); + return -1; + } +} + + +//----------------------------------MATRIX FUNCTIONS-------------------- + + +/* Utility functions */ + +// LomontRRDCompare4, Ever Faster Float Comparisons by Randy Dillon +#define SIGNMASK(i) (-(int)(((unsigned int)(i))>>31)) + +int EXPP_FloatsAreEqual(float af, float bf, int maxDiff) +{ // solid, fast routine across all platforms + // with constant time behavior + int ai = *(int *)(&af); + int bi = *(int *)(&bf); + int test = SIGNMASK(ai^bi); + int diff, v1, v2; + + assert((0 == test) || (0xFFFFFFFF == test)); + diff = (ai ^ (test & 0x7fffffff)) - bi; + v1 = maxDiff + diff; + v2 = maxDiff - diff; + return (v1|v2) >= 0; +} + +/*---------------------- EXPP_VectorsAreEqual ------------------------- + Builds on EXPP_FloatsAreEqual to test vectors */ +int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps) +{ + int x; + for (x=0; x< size; x++){ + if (EXPP_FloatsAreEqual(vecA[x], vecB[x], floatSteps) == 0) + return 0; + } + return 1; +} + + +/* Mathutils Callbacks */ + +/* for mathutils internal use only, eventually should re-alloc but to start with we only have a few users */ +static Mathutils_Callback *mathutils_callbacks[8] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; + +int Mathutils_RegisterCallback(Mathutils_Callback *cb) +{ + int i; + + /* find the first free slot */ + for(i= 0; mathutils_callbacks[i]; i++) { + if(mathutils_callbacks[i]==cb) /* already registered? */ + return i; + } + + mathutils_callbacks[i] = cb; + return i; +} + +/* use macros to check for NULL */ +int _BaseMathObject_ReadCallback(BaseMathObject *self) +{ + Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; + if(cb->get(self, self->cb_subtype) != -1) + return 0; + + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s read, user has become invalid", + Py_TYPE(self)->tp_name); + } + return -1; +} + +int _BaseMathObject_WriteCallback(BaseMathObject *self) +{ + Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; + if(cb->set(self, self->cb_subtype) != -1) + return 0; + + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s write, user has become invalid", + Py_TYPE(self)->tp_name); + } + return -1; +} + +int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) +{ + Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; + if(cb->get_index(self, self->cb_subtype, index) != -1) + return 0; + + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s read index, user has become invalid", + Py_TYPE(self)->tp_name); + } + return -1; +} + +int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index) +{ + Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; + if(cb->set_index(self, self->cb_subtype, index) != -1) + return 0; + + if(!PyErr_Occurred()) { + PyErr_Format(PyExc_RuntimeError, + "%s write index, user has become invalid", + Py_TYPE(self)->tp_name); + } + return -1; +} + +/* BaseMathObject generic functions for all mathutils types */ +char BaseMathObject_Owner_doc[] = "The item this is wrapping or None (readonly)."; +PyObject *BaseMathObject_getOwner(BaseMathObject *self, void *UNUSED(closure)) +{ + PyObject *ret= self->cb_user ? self->cb_user : Py_None; + Py_INCREF(ret); + return ret; +} + +char BaseMathObject_Wrapped_doc[] = "True when this object wraps external data (readonly).\n\n:type: boolean"; +PyObject *BaseMathObject_getWrapped(BaseMathObject *self, void *UNUSED(closure)) +{ + return PyBool_FromLong((self->wrapped == Py_WRAP) ? 1:0); +} + +int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg) +{ + Py_VISIT(self->cb_user); + return 0; +} + +int BaseMathObject_clear(BaseMathObject *self) +{ + Py_CLEAR(self->cb_user); + return 0; +} + +void BaseMathObject_dealloc(BaseMathObject *self) +{ + /* only free non wrapped */ + if(self->wrapped != Py_WRAP) { + PyMem_Free(self->data); + } + + if(self->cb_user) { + PyObject_GC_UnTrack(self); + BaseMathObject_clear(self); + } + + Py_TYPE(self)->tp_free(self); // PyObject_DEL(self); // breaks subtypes +} + +/*----------------------------MODULE INIT-------------------------*/ +static struct PyMethodDef M_Mathutils_methods[] = { + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef M_Mathutils_module_def = { + PyModuleDef_HEAD_INIT, + "mathutils", /* m_name */ + M_Mathutils_doc, /* m_doc */ + 0, /* m_size */ + M_Mathutils_methods, /* m_methods */ + NULL, /* m_reload */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC PyInit_mathutils(void) +{ + PyObject *submodule; + PyObject *item; + + if(PyType_Ready(&vector_Type) < 0) + return NULL; + if(PyType_Ready(&matrix_Type) < 0) + return NULL; + if(PyType_Ready(&euler_Type) < 0) + return NULL; + if(PyType_Ready(&quaternion_Type) < 0) + return NULL; + if(PyType_Ready(&color_Type) < 0) + return NULL; + + submodule = PyModule_Create(&M_Mathutils_module_def); + + /* each type has its own new() function */ + PyModule_AddObject(submodule, "Vector", (PyObject *)&vector_Type); + PyModule_AddObject(submodule, "Matrix", (PyObject *)&matrix_Type); + PyModule_AddObject(submodule, "Euler", (PyObject *)&euler_Type); + PyModule_AddObject(submodule, "Quaternion", (PyObject *)&quaternion_Type); + PyModule_AddObject(submodule, "Color", (PyObject *)&color_Type); + + /* submodule */ + PyModule_AddObject(submodule, "geometry", (item=PyInit_mathutils_geometry())); + /* XXX, python doesnt do imports with this usefully yet + * 'from mathutils.geometry import PolyFill' + * ...fails without this. */ + PyDict_SetItemString(PyThreadState_GET()->interp->modules, "mathutils.geometry", item); + Py_INCREF(item); + + mathutils_matrix_vector_cb_index= Mathutils_RegisterCallback(&mathutils_matrix_vector_cb); + + return submodule; +} diff --git a/source/blender/python/mathutils/mathutils.h b/source/blender/python/mathutils/mathutils.h new file mode 100644 index 00000000000..7454cfe78b3 --- /dev/null +++ b/source/blender/python/mathutils/mathutils.h @@ -0,0 +1,111 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +/** \file blender/python/generic/mathutils.h + * \ingroup pygen + */ + +//Include this file for access to vector, quat, matrix, euler, etc... + +#ifndef MATHUTILS_H +#define MATHUTILS_H + +/* Can cast different mathutils types to this, use for generic funcs */ + +extern char BaseMathObject_Wrapped_doc[]; +extern char BaseMathObject_Owner_doc[]; + +#define BASE_MATH_MEMBERS(_data) \ + PyObject_VAR_HEAD \ + float *_data; /* array of data (alias), wrapped status depends on wrapped status */ \ + PyObject *cb_user; /* if this vector references another object, otherwise NULL, *Note* this owns its reference */ \ + unsigned char cb_type; /* which user funcs do we adhere to, RNA, GameObject, etc */ \ + unsigned char cb_subtype; /* subtype: location, rotation... to avoid defining many new functions for every attribute of the same type */ \ + unsigned char wrapped; /* wrapped data type? */ \ + +typedef struct { + BASE_MATH_MEMBERS(data) +} BaseMathObject; + +#include "mathutils_Vector.h" +#include "mathutils_Matrix.h" +#include "mathutils_Quaternion.h" +#include "mathutils_Euler.h" +#include "mathutils_Color.h" +#include "mathutils_geometry.h" + +PyObject *BaseMathObject_getOwner( BaseMathObject * self, void * ); +PyObject *BaseMathObject_getWrapped( BaseMathObject *self, void * ); + +int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg); +int BaseMathObject_clear(BaseMathObject *self); +void BaseMathObject_dealloc(BaseMathObject * self); + +PyMODINIT_FUNC PyInit_mathutils(void); + +int EXPP_FloatsAreEqual(float A, float B, int floatSteps); +int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps); + +#define Py_NEW 1 +#define Py_WRAP 2 + +typedef struct Mathutils_Callback Mathutils_Callback; + +typedef int (*BaseMathCheckFunc)(BaseMathObject *); /* checks the user is still valid */ +typedef int (*BaseMathGetFunc)(BaseMathObject *, int); /* gets the vector from the user */ +typedef int (*BaseMathSetFunc)(BaseMathObject *, int); /* sets the users vector values once the vector is modified */ +typedef int (*BaseMathGetIndexFunc)(BaseMathObject *, int, int); /* same as above but only for an index */ +typedef int (*BaseMathSetIndexFunc)(BaseMathObject *, int, int); /* same as above but only for an index */ + +struct Mathutils_Callback { + BaseMathCheckFunc check; + BaseMathGetFunc get; + BaseMathSetFunc set; + BaseMathGetIndexFunc get_index; + BaseMathSetIndexFunc set_index; +}; + +int Mathutils_RegisterCallback(Mathutils_Callback *cb); + +int _BaseMathObject_ReadCallback(BaseMathObject *self); +int _BaseMathObject_WriteCallback(BaseMathObject *self); +int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index); +int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index); + +/* since this is called so often avoid where possible */ +#define BaseMath_ReadCallback(_self) (((_self)->cb_user ? _BaseMathObject_ReadCallback((BaseMathObject *)_self):0)) +#define BaseMath_WriteCallback(_self) (((_self)->cb_user ?_BaseMathObject_WriteCallback((BaseMathObject *)_self):0)) +#define BaseMath_ReadIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_ReadIndexCallback((BaseMathObject *)_self, _index):0)) +#define BaseMath_WriteIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_WriteIndexCallback((BaseMathObject *)_self, _index):0)) + +/* utility func */ +int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix); +int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix); + +#endif /* MATHUTILS_H */ diff --git a/source/blender/python/mathutils/mathutils_Color.c b/source/blender/python/mathutils/mathutils_Color.c new file mode 100644 index 00000000000..d0c7ec72cea --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Color.c @@ -0,0 +1,870 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_Color.c + * \ingroup pygen + */ + + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#define COLOR_SIZE 3 + +//----------------------------------mathutils.Color() ------------------- +//makes a new color for you to play with +static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + float col[3]= {0.0f, 0.0f, 0.0f}; + + if(kwds && PyDict_Size(kwds)) { + PyErr_SetString(PyExc_TypeError, + "mathutils.Color(): " + "takes no keyword args"); + return NULL; + } + + switch(PyTuple_GET_SIZE(args)) { + case 0: + break; + case 1: + if((mathutils_array_parse(col, COLOR_SIZE, COLOR_SIZE, PyTuple_GET_ITEM(args, 0), "mathutils.Color()")) == -1) + return NULL; + break; + default: + PyErr_SetString(PyExc_TypeError, + "mathutils.Color(): " + "more then a single arg given"); + return NULL; + } + return newColorObject(col, Py_NEW, type); +} + +//-----------------------------METHODS---------------------------- + +/* note: BaseMath_ReadCallback must be called beforehand */ +static PyObject *Color_ToTupleExt(ColorObject *self, int ndigits) +{ + PyObject *ret; + int i; + + ret= PyTuple_New(COLOR_SIZE); + + if(ndigits >= 0) { + for(i= 0; i < COLOR_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->col[i], ndigits))); + } + } + else { + for(i= 0; i < COLOR_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->col[i])); + } + } + + return ret; +} + +PyDoc_STRVAR(Color_copy_doc, +".. function:: copy()\n" +"\n" +" Returns a copy of this color.\n" +"\n" +" :return: A copy of the color.\n" +" :rtype: :class:`Color`\n" +"\n" +" .. note:: use this to get a copy of a wrapped color with\n" +" no reference to the original data.\n" +); +static PyObject *Color_copy(ColorObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return newColorObject(self->col, Py_NEW, Py_TYPE(self)); +} + +//----------------------------print object (internal)-------------- +//print the object to screen + +static PyObject *Color_repr(ColorObject * self) +{ + PyObject *ret, *tuple; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + tuple= Color_ToTupleExt(self, -1); + + ret= PyUnicode_FromFormat("Color(%R)", tuple); + + Py_DECREF(tuple); + return ret; +} + +//------------------------tp_richcmpr +//returns -1 execption, 0 false, 1 true +static PyObject* Color_richcmpr(PyObject *a, PyObject *b, int op) +{ + PyObject *res; + int ok= -1; /* zero is true */ + + if (ColorObject_Check(a) && ColorObject_Check(b)) { + ColorObject *colA= (ColorObject*)a; + ColorObject *colB= (ColorObject*)b; + + if(BaseMath_ReadCallback(colA) == -1 || BaseMath_ReadCallback(colB) == -1) + return NULL; + + ok= EXPP_VectorsAreEqual(colA->col, colB->col, COLOR_SIZE, 1) ? 0 : -1; + } + + switch (op) { + case Py_NE: + ok = !ok; /* pass through */ + case Py_EQ: + res = ok ? Py_False : Py_True; + break; + + case Py_LT: + case Py_LE: + case Py_GT: + case Py_GE: + res = Py_NotImplemented; + break; + default: + PyErr_BadArgument(); + return NULL; + } + + return Py_INCREF(res), res; +} + +//---------------------SEQUENCE PROTOCOLS------------------------ +//----------------------------len(object)------------------------ +//sequence length +static int Color_len(ColorObject *UNUSED(self)) +{ + return COLOR_SIZE; +} +//----------------------------object[]--------------------------- +//sequence accessor (get) +static PyObject *Color_item(ColorObject * self, int i) +{ + if(i<0) i= COLOR_SIZE-i; + + if(i < 0 || i >= COLOR_SIZE) { + PyErr_SetString(PyExc_IndexError, + "color[attribute]: " + "array index out of range"); + return NULL; + } + + if(BaseMath_ReadIndexCallback(self, i) == -1) + return NULL; + + return PyFloat_FromDouble(self->col[i]); + +} +//----------------------------object[]------------------------- +//sequence accessor (set) +static int Color_ass_item(ColorObject * self, int i, PyObject *value) +{ + float f = PyFloat_AsDouble(value); + + if(f == -1 && PyErr_Occurred()) { // parsed item not a number + PyErr_SetString(PyExc_TypeError, + "color[attribute] = x: " + "argument not a number"); + return -1; + } + + if(i<0) i= COLOR_SIZE-i; + + if(i < 0 || i >= COLOR_SIZE){ + PyErr_SetString(PyExc_IndexError, "color[attribute] = x: " + "array assignment index out of range"); + return -1; + } + + self->col[i] = f; + + if(BaseMath_WriteIndexCallback(self, i) == -1) + return -1; + + return 0; +} +//----------------------------object[z:y]------------------------ +//sequence slice (get) +static PyObject *Color_slice(ColorObject * self, int begin, int end) +{ + PyObject *tuple; + int count; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + CLAMP(begin, 0, COLOR_SIZE); + if (end<0) end= (COLOR_SIZE + 1) + end; + CLAMP(end, 0, COLOR_SIZE); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + for(count= begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->col[count])); + } + + return tuple; +} +//----------------------------object[z:y]------------------------ +//sequence slice (set) +static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) +{ + int i, size; + float col[COLOR_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + CLAMP(begin, 0, COLOR_SIZE); + if (end<0) end= (COLOR_SIZE + 1) + end; + CLAMP(end, 0, COLOR_SIZE); + begin = MIN2(begin, end); + + if((size=mathutils_array_parse(col, 0, COLOR_SIZE, seq, "mathutils.Color[begin:end] = []")) == -1) + return -1; + + if(size != (end - begin)){ + PyErr_SetString(PyExc_ValueError, + "color[begin:end] = []: " + "size mismatch in slice assignment"); + return -1; + } + + for(i= 0; i < COLOR_SIZE; i++) + self->col[begin + i] = col[i]; + + (void)BaseMath_WriteCallback(self); + return 0; +} + +static PyObject *Color_subscript(ColorObject *self, PyObject *item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += COLOR_SIZE; + return Color_item(self, i); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, COLOR_SIZE, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Color_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with color"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "color indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + +static int Color_ass_subscript(ColorObject *self, PyObject *item, PyObject *value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += COLOR_SIZE; + return Color_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, COLOR_SIZE, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Color_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with color"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "color indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + +//-----------------PROTCOL DECLARATIONS-------------------------- +static PySequenceMethods Color_SeqMethods = { + (lenfunc) Color_len, /* sq_length */ + (binaryfunc) NULL, /* sq_concat */ + (ssizeargfunc) NULL, /* sq_repeat */ + (ssizeargfunc) Color_item, /* sq_item */ + NULL, /* sq_slice, deprecated */ + (ssizeobjargproc) Color_ass_item, /* sq_ass_item */ + NULL, /* sq_ass_slice, deprecated */ + (objobjproc) NULL, /* sq_contains */ + (binaryfunc) NULL, /* sq_inplace_concat */ + (ssizeargfunc) NULL, /* sq_inplace_repeat */ +}; + +static PyMappingMethods Color_AsMapping = { + (lenfunc)Color_len, + (binaryfunc)Color_subscript, + (objobjargproc)Color_ass_subscript +}; + +/* numeric */ + + +/* addition: obj + obj */ +static PyObject *Color_add(PyObject *v1, PyObject *v2) +{ + ColorObject *color1 = NULL, *color2 = NULL; + float col[COLOR_SIZE]; + + if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { + PyErr_SetString(PyExc_TypeError, + "Color addition: " + "arguments not valid for this operation"); + return NULL; + } + color1 = (ColorObject*)v1; + color2 = (ColorObject*)v2; + + if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + return NULL; + + add_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); + + return newColorObject(col, Py_NEW, Py_TYPE(v1)); +} + +/* addition in-place: obj += obj */ +static PyObject *Color_iadd(PyObject *v1, PyObject *v2) +{ + ColorObject *color1 = NULL, *color2 = NULL; + + if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { + PyErr_SetString(PyExc_TypeError, + "Color addition: " + "arguments not valid for this operation"); + return NULL; + } + color1 = (ColorObject*)v1; + color2 = (ColorObject*)v2; + + if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + return NULL; + + add_vn_vn(color1->col, color2->col, COLOR_SIZE); + + (void)BaseMath_WriteCallback(color1); + Py_INCREF(v1); + return v1; +} + +/* subtraction: obj - obj */ +static PyObject *Color_sub(PyObject *v1, PyObject *v2) +{ + ColorObject *color1 = NULL, *color2 = NULL; + float col[COLOR_SIZE]; + + if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { + PyErr_SetString(PyExc_TypeError, + "Color subtraction: " + "arguments not valid for this operation"); + return NULL; + } + color1 = (ColorObject*)v1; + color2 = (ColorObject*)v2; + + if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + return NULL; + + sub_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); + + return newColorObject(col, Py_NEW, Py_TYPE(v1)); +} + +/* subtraction in-place: obj -= obj */ +static PyObject *Color_isub(PyObject *v1, PyObject *v2) +{ + ColorObject *color1= NULL, *color2= NULL; + + if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { + PyErr_SetString(PyExc_TypeError, + "Color subtraction: " + "arguments not valid for this operation"); + return NULL; + } + color1 = (ColorObject*)v1; + color2 = (ColorObject*)v2; + + if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + return NULL; + + sub_vn_vn(color1->col, color2->col, COLOR_SIZE); + + (void)BaseMath_WriteCallback(color1); + Py_INCREF(v1); + return v1; +} + +static PyObject *color_mul_float(ColorObject *color, const float scalar) +{ + float tcol[COLOR_SIZE]; + mul_vn_vn_fl(tcol, color->col, COLOR_SIZE, scalar); + return newColorObject(tcol, Py_NEW, Py_TYPE(color)); +} + + +static PyObject *Color_mul(PyObject *v1, PyObject *v2) +{ + ColorObject *color1 = NULL, *color2 = NULL; + float scalar; + + if ColorObject_Check(v1) { + color1= (ColorObject *)v1; + if(BaseMath_ReadCallback(color1) == -1) + return NULL; + } + if ColorObject_Check(v2) { + color2= (ColorObject *)v2; + if(BaseMath_ReadCallback(color2) == -1) + return NULL; + } + + + /* make sure v1 is always the vector */ + if (color1 && color2) { + /* col * col, dont support yet! */ + } + else if (color1) { + if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ + return color_mul_float(color1, scalar); + } + } + else if (color2) { + if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * COLOR */ + return color_mul_float(color2, scalar); + } + } + else { + BLI_assert(!"internal error"); + } + + PyErr_Format(PyExc_TypeError, + "Color multiplication: not supported between " + "'%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + return NULL; +} + +static PyObject *Color_div(PyObject *v1, PyObject *v2) +{ + ColorObject *color1 = NULL; + float scalar; + + if ColorObject_Check(v1) { + color1= (ColorObject *)v1; + if(BaseMath_ReadCallback(color1) == -1) + return NULL; + } + else { + PyErr_SetString(PyExc_TypeError, + "Color division not supported in this order"); + return NULL; + } + + /* make sure v1 is always the vector */ + if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ + if(scalar==0.0f) { + PyErr_SetString(PyExc_ZeroDivisionError, + "Color division: divide by zero error"); + return NULL; + } + return color_mul_float(color1, 1.0f / scalar); + } + + PyErr_Format(PyExc_TypeError, + "Color multiplication: not supported between " + "'%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + return NULL; +} + +/* mulplication in-place: obj *= obj */ +static PyObject *Color_imul(PyObject *v1, PyObject *v2) +{ + ColorObject *color = (ColorObject *)v1; + float scalar; + + if(BaseMath_ReadCallback(color) == -1) + return NULL; + + /* only support color *= float */ + if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR *= FLOAT */ + mul_vn_fl(color->col, COLOR_SIZE, scalar); + } + else { + PyErr_SetString(PyExc_TypeError, + "Color multiplication: " + "arguments not acceptable for this operation"); + return NULL; + } + + (void)BaseMath_WriteCallback(color); + Py_INCREF(v1); + return v1; +} + +/* mulplication in-place: obj *= obj */ +static PyObject *Color_idiv(PyObject *v1, PyObject *v2) +{ + ColorObject *color = (ColorObject *)v1; + float scalar; + + if(BaseMath_ReadCallback(color) == -1) + return NULL; + + /* only support color /= float */ + if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR /= FLOAT */ + if(scalar==0.0f) { + PyErr_SetString(PyExc_ZeroDivisionError, + "Color division: divide by zero error"); + return NULL; + } + + mul_vn_fl(color->col, COLOR_SIZE, 1.0f / scalar); + } + else { + PyErr_SetString(PyExc_TypeError, + "Color multiplication: " + "arguments not acceptable for this operation"); + return NULL; + } + + (void)BaseMath_WriteCallback(color); + Py_INCREF(v1); + return v1; +} + +/* -obj + returns the negative of this object*/ +static PyObject *Color_neg(ColorObject *self) +{ + float tcol[COLOR_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + negate_vn_vn(tcol, self->col, COLOR_SIZE); + return newColorObject(tcol, Py_NEW, Py_TYPE(self)); +} + + +static PyNumberMethods Color_NumMethods = { + (binaryfunc) Color_add, /*nb_add*/ + (binaryfunc) Color_sub, /*nb_subtract*/ + (binaryfunc) Color_mul, /*nb_multiply*/ + NULL, /*nb_remainder*/ + NULL, /*nb_divmod*/ + NULL, /*nb_power*/ + (unaryfunc) Color_neg, /*nb_negative*/ + (unaryfunc) NULL, /*tp_positive*/ + (unaryfunc) NULL, /*tp_absolute*/ + (inquiry) NULL, /*tp_bool*/ + (unaryfunc) NULL, /*nb_invert*/ + NULL, /*nb_lshift*/ + (binaryfunc)NULL, /*nb_rshift*/ + NULL, /*nb_and*/ + NULL, /*nb_xor*/ + NULL, /*nb_or*/ + NULL, /*nb_int*/ + NULL, /*nb_reserved*/ + NULL, /*nb_float*/ + Color_iadd, /* nb_inplace_add */ + Color_isub, /* nb_inplace_subtract */ + Color_imul, /* nb_inplace_multiply */ + NULL, /* nb_inplace_remainder */ + NULL, /* nb_inplace_power */ + NULL, /* nb_inplace_lshift */ + NULL, /* nb_inplace_rshift */ + NULL, /* nb_inplace_and */ + NULL, /* nb_inplace_xor */ + NULL, /* nb_inplace_or */ + NULL, /* nb_floor_divide */ + Color_div, /* nb_true_divide */ + NULL, /* nb_inplace_floor_divide */ + Color_idiv, /* nb_inplace_true_divide */ + NULL, /* nb_index */ +}; + +/* color channel, vector.r/g/b */ +static PyObject *Color_getChannel(ColorObject * self, void *type) +{ + return Color_item(self, GET_INT_FROM_POINTER(type)); +} + +static int Color_setChannel(ColorObject * self, PyObject *value, void * type) +{ + return Color_ass_item(self, GET_INT_FROM_POINTER(type), value); +} + +/* color channel (HSV), color.h/s/v */ +static PyObject *Color_getChannelHSV(ColorObject * self, void *type) +{ + float hsv[3]; + int i= GET_INT_FROM_POINTER(type); + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); + + return PyFloat_FromDouble(hsv[i]); +} + +static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) +{ + float hsv[3]; + int i= GET_INT_FROM_POINTER(type); + float f = PyFloat_AsDouble(value); + + if(f == -1 && PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "color.h/s/v = value: " + "argument not a number"); + return -1; + } + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); + CLAMP(f, 0.0f, 1.0f); + hsv[i] = f; + hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); + + if(BaseMath_WriteCallback(self) == -1) + return -1; + + return 0; +} + +/* color channel (HSV), color.h/s/v */ +static PyObject *Color_getHSV(ColorObject * self, void *UNUSED(closure)) +{ + float hsv[3]; + PyObject *ret; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); + + ret= PyTuple_New(3); + PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(hsv[0])); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(hsv[1])); + PyTuple_SET_ITEM(ret, 2, PyFloat_FromDouble(hsv[2])); + return ret; +} + +static int Color_setHSV(ColorObject * self, PyObject *value, void *UNUSED(closure)) +{ + float hsv[3]; + + if(mathutils_array_parse(hsv, 3, 3, value, "mathutils.Color.hsv = value") == -1) + return -1; + + CLAMP(hsv[0], 0.0f, 1.0f); + CLAMP(hsv[1], 0.0f, 1.0f); + CLAMP(hsv[2], 0.0f, 1.0f); + + hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); + + if(BaseMath_WriteCallback(self) == -1) + return -1; + + return 0; +} + +/*****************************************************************************/ +/* Python attributes get/set structure: */ +/*****************************************************************************/ +static PyGetSetDef Color_getseters[] = { + {(char *)"r", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Red color channel.\n\n:type: float", (void *)0}, + {(char *)"g", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Green color channel.\n\n:type: float", (void *)1}, + {(char *)"b", (getter)Color_getChannel, (setter)Color_setChannel, (char *)"Blue color channel.\n\n:type: float", (void *)2}, + + {(char *)"h", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Hue component in [0, 1].\n\n:type: float", (void *)0}, + {(char *)"s", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Saturation component in [0, 1].\n\n:type: float", (void *)1}, + {(char *)"v", (getter)Color_getChannelHSV, (setter)Color_setChannelHSV, (char *)"HSV Value component in [0, 1].\n\n:type: float", (void *)2}, + + {(char *)"hsv", (getter)Color_getHSV, (setter)Color_setHSV, (char *)"HSV Values in [0, 1].\n\n:type: float triplet", (void *)0}, + + {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, BaseMathObject_Wrapped_doc, NULL}, + {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, BaseMathObject_Owner_doc, NULL}, + {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ +}; + + +//-----------------------METHOD DEFINITIONS ---------------------- +static struct PyMethodDef Color_methods[] = { + {"__copy__", (PyCFunction) Color_copy, METH_NOARGS, Color_copy_doc}, + {"copy", (PyCFunction) Color_copy, METH_NOARGS, Color_copy_doc}, + {NULL, NULL, 0, NULL} +}; + +//------------------PY_OBECT DEFINITION-------------------------- +PyDoc_STRVAR(color_doc, +"This object gives access to Colors in Blender." +); +PyTypeObject color_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "mathutils.Color", //tp_name + sizeof(ColorObject), //tp_basicsize + 0, //tp_itemsize + (destructor)BaseMathObject_dealloc, //tp_dealloc + NULL, //tp_print + NULL, //tp_getattr + NULL, //tp_setattr + NULL, //tp_compare + (reprfunc) Color_repr, //tp_repr + &Color_NumMethods, //tp_as_number + &Color_SeqMethods, //tp_as_sequence + &Color_AsMapping, //tp_as_mapping + NULL, //tp_hash + NULL, //tp_call + NULL, //tp_str + NULL, //tp_getattro + NULL, //tp_setattro + NULL, //tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags + color_doc, //tp_doc + (traverseproc)BaseMathObject_traverse, //tp_traverse + (inquiry)BaseMathObject_clear, //tp_clear + (richcmpfunc)Color_richcmpr, //tp_richcompare + 0, //tp_weaklistoffset + NULL, //tp_iter + NULL, //tp_iternext + Color_methods, //tp_methods + NULL, //tp_members + Color_getseters, //tp_getset + NULL, //tp_base + NULL, //tp_dict + NULL, //tp_descr_get + NULL, //tp_descr_set + 0, //tp_dictoffset + NULL, //tp_init + NULL, //tp_alloc + Color_new, //tp_new + NULL, //tp_free + NULL, //tp_is_gc + NULL, //tp_bases + NULL, //tp_mro + NULL, //tp_cache + NULL, //tp_subclasses + NULL, //tp_weaklist + NULL //tp_del +}; +//------------------------newColorObject (internal)------------- +//creates a new color object +/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER + (i.e. it was allocated elsewhere by MEM_mallocN()) + pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON + (i.e. it must be created here with PyMEM_malloc())*/ +PyObject *newColorObject(float *col, int type, PyTypeObject *base_type) +{ + ColorObject *self; + + self= base_type ? (ColorObject *)base_type->tp_alloc(base_type, 0) : + (ColorObject *)PyObject_GC_New(ColorObject, &color_Type); + + if(self) { + /* init callbacks as NULL */ + self->cb_user= NULL; + self->cb_type= self->cb_subtype= 0; + + if(type == Py_WRAP){ + self->col = col; + self->wrapped = Py_WRAP; + } + else if (type == Py_NEW){ + self->col = PyMem_Malloc(COLOR_SIZE * sizeof(float)); + if(col) + copy_v3_v3(self->col, col); + else + zero_v3(self->col); + + self->wrapped = Py_NEW; + } + else { + Py_FatalError("Color(): invalid type!"); + } + } + + return (PyObject *)self; +} + +PyObject *newColorObject_cb(PyObject *cb_user, int cb_type, int cb_subtype) +{ + ColorObject *self= (ColorObject *)newColorObject(NULL, Py_NEW, NULL); + if(self) { + Py_INCREF(cb_user); + self->cb_user= cb_user; + self->cb_type= (unsigned char)cb_type; + self->cb_subtype= (unsigned char)cb_subtype; + PyObject_GC_Track(self); + } + + return (PyObject *)self; +} diff --git a/source/blender/python/mathutils/mathutils_Color.h b/source/blender/python/mathutils/mathutils_Color.h new file mode 100644 index 00000000000..0fc880363f4 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Color.h @@ -0,0 +1,55 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/python/generic/mathutils_Color.h + * \ingroup pygen + */ + + +#ifndef MATHUTILS_COLOR_H +#define MATHUTILS_COLOR_H + +extern PyTypeObject color_Type; +#define ColorObject_Check(_v) PyObject_TypeCheck((_v), &color_Type) + +typedef struct { + BASE_MATH_MEMBERS(col) +} ColorObject; + +/*struct data contains a pointer to the actual data that the +object uses. It can use either PyMem allocated data (which will +be stored in py_data) or be a wrapper for data allocated through +blender (stored in blend_data). This is an either/or struct not both*/ + +//prototypes +PyObject *newColorObject( float *col, int type, PyTypeObject *base_type); +PyObject *newColorObject_cb(PyObject *cb_user, int cb_type, int cb_subtype); + +#endif /* MATHUTILS_COLOR_H */ diff --git a/source/blender/python/mathutils/mathutils_Euler.c b/source/blender/python/mathutils/mathutils_Euler.c new file mode 100644 index 00000000000..5c609d8961f --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Euler.c @@ -0,0 +1,721 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * + * Contributor(s): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_Euler.c + * \ingroup pygen + */ + + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#define EULER_SIZE 3 + +//----------------------------------mathutils.Euler() ------------------- +//makes a new euler for you to play with +static PyObject *Euler_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + PyObject *seq= NULL; + const char *order_str= NULL; + + float eul[EULER_SIZE]= {0.0f, 0.0f, 0.0f}; + short order= EULER_ORDER_XYZ; + + if(kwds && PyDict_Size(kwds)) { + PyErr_SetString(PyExc_TypeError, + "mathutils.Euler(): " + "takes no keyword args"); + return NULL; + } + + if(!PyArg_ParseTuple(args, "|Os:mathutils.Euler", &seq, &order_str)) + return NULL; + + switch(PyTuple_GET_SIZE(args)) { + case 0: + break; + case 2: + if((order=euler_order_from_string(order_str, "mathutils.Euler()")) == -1) + return NULL; + /* intentionally pass through */ + case 1: + if (mathutils_array_parse(eul, EULER_SIZE, EULER_SIZE, seq, "mathutils.Euler()") == -1) + return NULL; + break; + } + return newEulerObject(eul, order, Py_NEW, type); +} + +/* internal use, assuem read callback is done */ +static const char *euler_order_str(EulerObject *self) +{ + static const char order[][4] = {"XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"}; + return order[self->order-EULER_ORDER_XYZ]; +} + +short euler_order_from_string(const char *str, const char *error_prefix) +{ + if((str[0] && str[1] && str[2] && str[3]=='\0')) { + switch(*((PY_INT32_T *)str)) { + case 'X'|'Y'<<8|'Z'<<16: return EULER_ORDER_XYZ; + case 'X'|'Z'<<8|'Y'<<16: return EULER_ORDER_XZY; + case 'Y'|'X'<<8|'Z'<<16: return EULER_ORDER_YXZ; + case 'Y'|'Z'<<8|'X'<<16: return EULER_ORDER_YZX; + case 'Z'|'X'<<8|'Y'<<16: return EULER_ORDER_ZXY; + case 'Z'|'Y'<<8|'X'<<16: return EULER_ORDER_ZYX; + } + } + + PyErr_Format(PyExc_ValueError, + "%s: invalid euler order '%s'", + error_prefix, str); + return -1; +} + +/* note: BaseMath_ReadCallback must be called beforehand */ +static PyObject *Euler_ToTupleExt(EulerObject *self, int ndigits) +{ + PyObject *ret; + int i; + + ret= PyTuple_New(EULER_SIZE); + + if(ndigits >= 0) { + for(i= 0; i < EULER_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->eul[i], ndigits))); + } + } + else { + for(i= 0; i < EULER_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->eul[i])); + } + } + + return ret; +} + +//-----------------------------METHODS---------------------------- +//return a quaternion representation of the euler + +PyDoc_STRVAR(Euler_to_quaternion_doc, +".. method:: to_quaternion()\n" +"\n" +" Return a quaternion representation of the euler.\n" +"\n" +" :return: Quaternion representation of the euler.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Euler_to_quaternion(EulerObject * self) +{ + float quat[4]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + eulO_to_quat(quat, self->eul, self->order); + + return newQuaternionObject(quat, Py_NEW, NULL); +} + +//return a matrix representation of the euler +PyDoc_STRVAR(Euler_to_matrix_doc, +".. method:: to_matrix()\n" +"\n" +" Return a matrix representation of the euler.\n" +"\n" +" :return: A 3x3 roation matrix representation of the euler.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Euler_to_matrix(EulerObject * self) +{ + float mat[9]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + eulO_to_mat3((float (*)[3])mat, self->eul, self->order); + + return newMatrixObject(mat, 3, 3 , Py_NEW, NULL); +} + +PyDoc_STRVAR(Euler_zero_doc, +".. method:: zero()\n" +"\n" +" Set all values to zero.\n" +); +static PyObject *Euler_zero(EulerObject * self) +{ + zero_v3(self->eul); + + if(BaseMath_WriteCallback(self) == -1) + return NULL; + + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Euler_rotate_axis_doc, +".. method:: rotate_axis(axis, angle)\n" +"\n" +" Rotates the euler a certain amount and returning a unique euler rotation\n" +" (no 720 degree pitches).\n" +"\n" +" :arg axis: single character in ['X, 'Y', 'Z'].\n" +" :type axis: string\n" +" :arg angle: angle in radians.\n" +" :type angle: float\n" +); +static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args) +{ + float angle = 0.0f; + const char *axis; + + if(!PyArg_ParseTuple(args, "sf:rotate", &axis, &angle)){ + PyErr_SetString(PyExc_TypeError, + "euler.rotate(): " + "expected angle (float) and axis (x, y, z)"); + return NULL; + } + if(!(ELEM3(*axis, 'X', 'Y', 'Z') && axis[1]=='\0')){ + PyErr_SetString(PyExc_ValueError, "euler.rotate(): " + "expected axis to be 'X', 'Y' or 'Z'"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + + rotate_eulO(self->eul, self->order, *axis, angle); + + (void)BaseMath_WriteCallback(self); + + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Euler_rotate_doc, +".. method:: rotate(other)\n" +"\n" +" Rotates the euler a by another mathutils value.\n" +"\n" +" :arg other: rotation component of mathutils value\n" +" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" +); +static PyObject *Euler_rotate(EulerObject * self, PyObject *value) +{ + float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1) + return NULL; + + eulO_to_mat3(self_rmat, self->eul, self->order); + mul_m3_m3m3(rmat, self_rmat, other_rmat); + + mat3_to_compatible_eulO(self->eul, self->eul, self->order, rmat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Euler_make_compatible_doc, +".. method:: make_compatible(other)\n" +"\n" +" Make this euler compatible with another,\n" +" so interpolating between them works as intended.\n" +"\n" +" .. note:: the rotation order is not taken into account for this function.\n" +); +static PyObject *Euler_make_compatible(EulerObject * self, PyObject *value) +{ + float teul[EULER_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1) + return NULL; + + compatible_eul(self->eul, teul); + + (void)BaseMath_WriteCallback(self); + + Py_RETURN_NONE; +} + +//----------------------------Euler.rotate()----------------------- +// return a copy of the euler + +PyDoc_STRVAR(Euler_copy_doc, +".. function:: copy()\n" +"\n" +" Returns a copy of this euler.\n" +"\n" +" :return: A copy of the euler.\n" +" :rtype: :class:`Euler`\n" +"\n" +" .. note:: use this to get a copy of a wrapped euler with\n" +" no reference to the original data.\n" +); +static PyObject *Euler_copy(EulerObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return newEulerObject(self->eul, self->order, Py_NEW, Py_TYPE(self)); +} + +//----------------------------print object (internal)-------------- +//print the object to screen + +static PyObject *Euler_repr(EulerObject * self) +{ + PyObject *ret, *tuple; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + tuple= Euler_ToTupleExt(self, -1); + + ret= PyUnicode_FromFormat("Euler(%R, '%s')", tuple, euler_order_str(self)); + + Py_DECREF(tuple); + return ret; +} + +static PyObject* Euler_richcmpr(PyObject *a, PyObject *b, int op) +{ + PyObject *res; + int ok= -1; /* zero is true */ + + if (EulerObject_Check(a) && EulerObject_Check(b)) { + EulerObject *eulA= (EulerObject*)a; + EulerObject *eulB= (EulerObject*)b; + + if(BaseMath_ReadCallback(eulA) == -1 || BaseMath_ReadCallback(eulB) == -1) + return NULL; + + ok= ((eulA->order == eulB->order) && EXPP_VectorsAreEqual(eulA->eul, eulB->eul, EULER_SIZE, 1)) ? 0 : -1; + } + + switch (op) { + case Py_NE: + ok = !ok; /* pass through */ + case Py_EQ: + res = ok ? Py_False : Py_True; + break; + + case Py_LT: + case Py_LE: + case Py_GT: + case Py_GE: + res = Py_NotImplemented; + break; + default: + PyErr_BadArgument(); + return NULL; + } + + return Py_INCREF(res), res; +} + +//---------------------SEQUENCE PROTOCOLS------------------------ +//----------------------------len(object)------------------------ +//sequence length +static int Euler_len(EulerObject *UNUSED(self)) +{ + return EULER_SIZE; +} +//----------------------------object[]--------------------------- +//sequence accessor (get) +static PyObject *Euler_item(EulerObject * self, int i) +{ + if(i<0) i= EULER_SIZE-i; + + if(i < 0 || i >= EULER_SIZE) { + PyErr_SetString(PyExc_IndexError, + "euler[attribute]: " + "array index out of range"); + return NULL; + } + + if(BaseMath_ReadIndexCallback(self, i) == -1) + return NULL; + + return PyFloat_FromDouble(self->eul[i]); + +} +//----------------------------object[]------------------------- +//sequence accessor (set) +static int Euler_ass_item(EulerObject * self, int i, PyObject *value) +{ + float f = PyFloat_AsDouble(value); + + if(f == -1 && PyErr_Occurred()) { // parsed item not a number + PyErr_SetString(PyExc_TypeError, + "euler[attribute] = x: " + "argument not a number"); + return -1; + } + + if(i<0) i= EULER_SIZE-i; + + if(i < 0 || i >= EULER_SIZE){ + PyErr_SetString(PyExc_IndexError, + "euler[attribute] = x: " + "array assignment index out of range"); + return -1; + } + + self->eul[i] = f; + + if(BaseMath_WriteIndexCallback(self, i) == -1) + return -1; + + return 0; +} +//----------------------------object[z:y]------------------------ +//sequence slice (get) +static PyObject *Euler_slice(EulerObject * self, int begin, int end) +{ + PyObject *tuple; + int count; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + CLAMP(begin, 0, EULER_SIZE); + if (end<0) end= (EULER_SIZE + 1) + end; + CLAMP(end, 0, EULER_SIZE); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + for(count = begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->eul[count])); + } + + return tuple; +} +//----------------------------object[z:y]------------------------ +//sequence slice (set) +static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) +{ + int i, size; + float eul[EULER_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + CLAMP(begin, 0, EULER_SIZE); + if (end<0) end= (EULER_SIZE + 1) + end; + CLAMP(end, 0, EULER_SIZE); + begin = MIN2(begin, end); + + if((size=mathutils_array_parse(eul, 0, EULER_SIZE, seq, "mathutils.Euler[begin:end] = []")) == -1) + return -1; + + if(size != (end - begin)){ + PyErr_SetString(PyExc_ValueError, + "euler[begin:end] = []: " + "size mismatch in slice assignment"); + return -1; + } + + for(i= 0; i < EULER_SIZE; i++) + self->eul[begin + i] = eul[i]; + + (void)BaseMath_WriteCallback(self); + return 0; +} + +static PyObject *Euler_subscript(EulerObject *self, PyObject *item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += EULER_SIZE; + return Euler_item(self, i); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, EULER_SIZE, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Euler_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with eulers"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "euler indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + + +static int Euler_ass_subscript(EulerObject *self, PyObject *item, PyObject *value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += EULER_SIZE; + return Euler_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, EULER_SIZE, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Euler_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with euler"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "euler indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + +//-----------------PROTCOL DECLARATIONS-------------------------- +static PySequenceMethods Euler_SeqMethods = { + (lenfunc) Euler_len, /* sq_length */ + (binaryfunc) NULL, /* sq_concat */ + (ssizeargfunc) NULL, /* sq_repeat */ + (ssizeargfunc) Euler_item, /* sq_item */ + (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ + (ssizeobjargproc) Euler_ass_item, /* sq_ass_item */ + (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ + (objobjproc) NULL, /* sq_contains */ + (binaryfunc) NULL, /* sq_inplace_concat */ + (ssizeargfunc) NULL, /* sq_inplace_repeat */ +}; + +static PyMappingMethods Euler_AsMapping = { + (lenfunc)Euler_len, + (binaryfunc)Euler_subscript, + (objobjargproc)Euler_ass_subscript +}; + +/* + * euler axis, euler.x/y/z + */ +static PyObject *Euler_getAxis(EulerObject *self, void *type) +{ + return Euler_item(self, GET_INT_FROM_POINTER(type)); +} + +static int Euler_setAxis(EulerObject *self, PyObject *value, void *type) +{ + return Euler_ass_item(self, GET_INT_FROM_POINTER(type), value); +} + +/* rotation order */ +static PyObject *Euler_getOrder(EulerObject *self, void *UNUSED(closure)) +{ + if(BaseMath_ReadCallback(self) == -1) /* can read order too */ + return NULL; + + return PyUnicode_FromString(euler_order_str(self)); +} + +static int Euler_setOrder(EulerObject *self, PyObject *value, void *UNUSED(closure)) +{ + const char *order_str= _PyUnicode_AsString(value); + short order= euler_order_from_string(order_str, "euler.order"); + + if(order == -1) + return -1; + + self->order= order; + (void)BaseMath_WriteCallback(self); /* order can be written back */ + return 0; +} + +/*****************************************************************************/ +/* Python attributes get/set structure: */ +/*****************************************************************************/ +static PyGetSetDef Euler_getseters[] = { + {(char *)"x", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler X axis in radians.\n\n:type: float", (void *)0}, + {(char *)"y", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler Y axis in radians.\n\n:type: float", (void *)1}, + {(char *)"z", (getter)Euler_getAxis, (setter)Euler_setAxis, (char *)"Euler Z axis in radians.\n\n:type: float", (void *)2}, + {(char *)"order", (getter)Euler_getOrder, (setter)Euler_setOrder, (char *)"Euler rotation order.\n\n:type: string in ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX']", (void *)NULL}, + + {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, + {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, + {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ +}; + + +//-----------------------METHOD DEFINITIONS ---------------------- +static struct PyMethodDef Euler_methods[] = { + {"zero", (PyCFunction) Euler_zero, METH_NOARGS, Euler_zero_doc}, + {"to_matrix", (PyCFunction) Euler_to_matrix, METH_NOARGS, Euler_to_matrix_doc}, + {"to_quaternion", (PyCFunction) Euler_to_quaternion, METH_NOARGS, Euler_to_quaternion_doc}, + {"rotate_axis", (PyCFunction) Euler_rotate_axis, METH_VARARGS, Euler_rotate_axis_doc}, + {"rotate", (PyCFunction) Euler_rotate, METH_O, Euler_rotate_doc}, + {"make_compatible", (PyCFunction) Euler_make_compatible, METH_O, Euler_make_compatible_doc}, + {"__copy__", (PyCFunction) Euler_copy, METH_NOARGS, Euler_copy_doc}, + {"copy", (PyCFunction) Euler_copy, METH_NOARGS, Euler_copy_doc}, + {NULL, NULL, 0, NULL} +}; + +//------------------PY_OBECT DEFINITION-------------------------- +PyDoc_STRVAR(euler_doc, +"This object gives access to Eulers in Blender." +); +PyTypeObject euler_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "mathutils.Euler", //tp_name + sizeof(EulerObject), //tp_basicsize + 0, //tp_itemsize + (destructor)BaseMathObject_dealloc, //tp_dealloc + NULL, //tp_print + NULL, //tp_getattr + NULL, //tp_setattr + NULL, //tp_compare + (reprfunc) Euler_repr, //tp_repr + NULL, //tp_as_number + &Euler_SeqMethods, //tp_as_sequence + &Euler_AsMapping, //tp_as_mapping + NULL, //tp_hash + NULL, //tp_call + NULL, //tp_str + NULL, //tp_getattro + NULL, //tp_setattro + NULL, //tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags + euler_doc, //tp_doc + (traverseproc)BaseMathObject_traverse, //tp_traverse + (inquiry)BaseMathObject_clear, //tp_clear + (richcmpfunc)Euler_richcmpr, //tp_richcompare + 0, //tp_weaklistoffset + NULL, //tp_iter + NULL, //tp_iternext + Euler_methods, //tp_methods + NULL, //tp_members + Euler_getseters, //tp_getset + NULL, //tp_base + NULL, //tp_dict + NULL, //tp_descr_get + NULL, //tp_descr_set + 0, //tp_dictoffset + NULL, //tp_init + NULL, //tp_alloc + Euler_new, //tp_new + NULL, //tp_free + NULL, //tp_is_gc + NULL, //tp_bases + NULL, //tp_mro + NULL, //tp_cache + NULL, //tp_subclasses + NULL, //tp_weaklist + NULL //tp_del +}; +//------------------------newEulerObject (internal)------------- +//creates a new euler object +/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER + (i.e. it was allocated elsewhere by MEM_mallocN()) + pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON + (i.e. it must be created here with PyMEM_malloc())*/ +PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_type) +{ + EulerObject *self; + + self= base_type ? (EulerObject *)base_type->tp_alloc(base_type, 0) : + (EulerObject *)PyObject_GC_New(EulerObject, &euler_Type); + + if(self) { + /* init callbacks as NULL */ + self->cb_user= NULL; + self->cb_type= self->cb_subtype= 0; + + if(type == Py_WRAP) { + self->eul = eul; + self->wrapped = Py_WRAP; + } + else if (type == Py_NEW) { + self->eul = PyMem_Malloc(EULER_SIZE * sizeof(float)); + if(eul) { + copy_v3_v3(self->eul, eul); + } + else { + zero_v3(self->eul); + } + + self->wrapped = Py_NEW; + } + else { + Py_FatalError("Euler(): invalid type!"); + } + + self->order= order; + } + + return (PyObject *)self; +} + +PyObject *newEulerObject_cb(PyObject *cb_user, short order, int cb_type, int cb_subtype) +{ + EulerObject *self= (EulerObject *)newEulerObject(NULL, order, Py_NEW, NULL); + if(self) { + Py_INCREF(cb_user); + self->cb_user= cb_user; + self->cb_type= (unsigned char)cb_type; + self->cb_subtype= (unsigned char)cb_subtype; + PyObject_GC_Track(self); + } + + return (PyObject *)self; +} diff --git a/source/blender/python/mathutils/mathutils_Euler.h b/source/blender/python/mathutils/mathutils_Euler.h new file mode 100644 index 00000000000..849e16c2bb7 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Euler.h @@ -0,0 +1,60 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/python/generic/mathutils_Euler.h + * \ingroup pygen + */ + + +#ifndef MATHUTILS_EULER_H +#define MATHUTILS_EULER_H + +extern PyTypeObject euler_Type; +#define EulerObject_Check(_v) PyObject_TypeCheck((_v), &euler_Type) + +typedef struct { + BASE_MATH_MEMBERS(eul) + unsigned char order; /* rotation order */ + +} EulerObject; + +/*struct data contains a pointer to the actual data that the +object uses. It can use either PyMem allocated data (which will +be stored in py_data) or be a wrapper for data allocated through +blender (stored in blend_data). This is an either/or struct not both*/ + +//prototypes +PyObject *newEulerObject( float *eul, short order, int type, PyTypeObject *base_type); +PyObject *newEulerObject_cb(PyObject *cb_user, short order, int cb_type, int cb_subtype); + +short euler_order_from_string(const char *str, const char *error_prefix); + + +#endif /* MATHUTILS_EULER_H */ diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c new file mode 100644 index 00000000000..b0187c1ef25 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -0,0 +1,2041 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * Contributor(s): Michel Selten & Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_Matrix.c + * \ingroup pygen + */ + + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +static PyObject *Matrix_copy(MatrixObject *self); +static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *value); +static PyObject *matrix__apply_to_copy(PyNoArgsFunction matrix_func, MatrixObject *self); + +/* matrix vector callbacks */ +int mathutils_matrix_vector_cb_index= -1; + +static int mathutils_matrix_vector_check(BaseMathObject *bmo) +{ + MatrixObject *self= (MatrixObject *)bmo->cb_user; + return BaseMath_ReadCallback(self); +} + +static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype) +{ + MatrixObject *self= (MatrixObject *)bmo->cb_user; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + for(i=0; i < self->col_size; i++) + bmo->data[i]= self->matrix[subtype][i]; + + return 0; +} + +static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype) +{ + MatrixObject *self= (MatrixObject *)bmo->cb_user; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + for(i=0; i < self->col_size; i++) + self->matrix[subtype][i]= bmo->data[i]; + + (void)BaseMath_WriteCallback(self); + return 0; +} + +static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, int index) +{ + MatrixObject *self= (MatrixObject *)bmo->cb_user; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + bmo->data[index]= self->matrix[subtype][index]; + return 0; +} + +static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, int index) +{ + MatrixObject *self= (MatrixObject *)bmo->cb_user; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + self->matrix[subtype][index]= bmo->data[index]; + + (void)BaseMath_WriteCallback(self); + return 0; +} + +Mathutils_Callback mathutils_matrix_vector_cb = { + mathutils_matrix_vector_check, + mathutils_matrix_vector_get, + mathutils_matrix_vector_set, + mathutils_matrix_vector_get_index, + mathutils_matrix_vector_set_index +}; +/* matrix vector callbacks, this is so you can do matrix[i][j] = val */ + +//----------------------------------mathutils.Matrix() ----------------- +//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. +//create a new matrix type +static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + if(kwds && PyDict_Size(kwds)) { + PyErr_SetString(PyExc_TypeError, + "mathutils.Matrix(): " + "takes no keyword args"); + return NULL; + } + + switch(PyTuple_GET_SIZE(args)) { + case 0: + return (PyObject *) newMatrixObject(NULL, 4, 4, Py_NEW, type); + case 1: + { + PyObject *arg= PyTuple_GET_ITEM(args, 0); + + /* -1 is an error, size checks will accunt for this */ + const unsigned short row_size= PySequence_Size(arg); + + if(row_size >= 2 && row_size <= 4) { + PyObject *item= PySequence_GetItem(arg, 0); + const unsigned short col_size= PySequence_Size(item); + Py_XDECREF(item); + + if(col_size >= 2 && col_size <= 4) { + /* sane row & col size, new matrix and assign as slice */ + PyObject *matrix= newMatrixObject(NULL, row_size, col_size, Py_NEW, type); + if(Matrix_ass_slice((MatrixObject *)matrix, 0, INT_MAX, arg) == 0) { + return matrix; + } + else { /* matrix ok, slice assignment not */ + Py_DECREF(matrix); + } + } + } + } + } + + /* will overwrite error */ + PyErr_SetString(PyExc_TypeError, + "mathutils.Matrix(): " + "expects no args or 2-4 numeric sequences"); + return NULL; +} + +static PyObject *matrix__apply_to_copy(PyNoArgsFunction matrix_func, MatrixObject *self) +{ + PyObject *ret= Matrix_copy(self); + PyObject *ret_dummy= matrix_func(ret); + if(ret_dummy) { + Py_DECREF(ret_dummy); + return (PyObject *)ret; + } + else { /* error */ + Py_DECREF(ret); + return NULL; + } +} + +/* when a matrix is 4x4 size but initialized as a 3x3, re-assign values for 4x4 */ +static void matrix_3x3_as_4x4(float mat[16]) +{ + mat[10] = mat[8]; + mat[9] = mat[7]; + mat[8] = mat[6]; + mat[7] = 0.0f; + mat[6] = mat[5]; + mat[5] = mat[4]; + mat[4] = mat[3]; + mat[3] = 0.0f; +} + +/*-----------------------CLASS-METHODS----------------------------*/ + +//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. +PyDoc_STRVAR(C_Matrix_Rotation_doc, +".. classmethod:: Rotation(angle, size, axis)\n" +"\n" +" Create a matrix representing a rotation.\n" +"\n" +" :arg angle: The angle of rotation desired, in radians.\n" +" :type angle: float\n" +" :arg size: The size of the rotation matrix to construct [2, 4].\n" +" :type size: int\n" +" :arg axis: a string in ['X', 'Y', 'Z'] or a 3D Vector Object\n" +" (optional when size is 2).\n" +" :type axis: string or :class:`Vector`\n" +" :return: A new rotation matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) +{ + PyObject *vec= NULL; + const char *axis= NULL; + int matSize; + double angle; /* use double because of precision problems at high values */ + float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; + + if(!PyArg_ParseTuple(args, "di|O", &angle, &matSize, &vec)) { + PyErr_SetString(PyExc_TypeError, + "mathutils.RotationMatrix(angle, size, axis): " + "expected float int and a string or vector"); + return NULL; + } + + if(vec && PyUnicode_Check(vec)) { + axis= _PyUnicode_AsString((PyObject *)vec); + if(axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { + PyErr_SetString(PyExc_ValueError, + "mathutils.RotationMatrix(): " + "3rd argument axis value must be a 3D vector " + "or a string in 'X', 'Y', 'Z'"); + return NULL; + } + else { + /* use the string */ + vec= NULL; + } + } + + angle= angle_wrap_rad(angle); + + if(matSize != 2 && matSize != 3 && matSize != 4) { + PyErr_SetString(PyExc_ValueError, + "mathutils.RotationMatrix(): " + "can only return a 2x2 3x3 or 4x4 matrix"); + return NULL; + } + if(matSize == 2 && (vec != NULL)) { + PyErr_SetString(PyExc_ValueError, + "mathutils.RotationMatrix(): " + "cannot create a 2x2 rotation matrix around arbitrary axis"); + return NULL; + } + if((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { + PyErr_SetString(PyExc_ValueError, + "mathutils.RotationMatrix(): " + "axis of rotation for 3d and 4d matrices is required"); + return NULL; + } + + /* check for valid vector/axis above */ + if(vec) { + float tvec[3]; + + if (mathutils_array_parse(tvec, 3, 3, vec, "mathutils.RotationMatrix(angle, size, axis), invalid 'axis' arg") == -1) + return NULL; + + axis_angle_to_mat3((float (*)[3])mat, tvec, angle); + } + else if(matSize == 2) { + //2D rotation matrix + mat[0] = (float) cos (angle); + mat[1] = (float) sin (angle); + mat[2] = -((float) sin(angle)); + mat[3] = (float) cos(angle); + } + else if(strcmp(axis, "X") == 0) { + //rotation around X + mat[0] = 1.0f; + mat[4] = (float) cos(angle); + mat[5] = (float) sin(angle); + mat[7] = -((float) sin(angle)); + mat[8] = (float) cos(angle); + } + else if(strcmp(axis, "Y") == 0) { + //rotation around Y + mat[0] = (float) cos(angle); + mat[2] = -((float) sin(angle)); + mat[4] = 1.0f; + mat[6] = (float) sin(angle); + mat[8] = (float) cos(angle); + } + else if(strcmp(axis, "Z") == 0) { + //rotation around Z + mat[0] = (float) cos(angle); + mat[1] = (float) sin(angle); + mat[3] = -((float) sin(angle)); + mat[4] = (float) cos(angle); + mat[8] = 1.0f; + } + else { + /* should never get here */ + PyErr_SetString(PyExc_ValueError, + "mathutils.RotationMatrix(): unknown error"); + return NULL; + } + + if(matSize == 4) { + matrix_3x3_as_4x4(mat); + } + //pass to matrix creation + return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); +} + + +PyDoc_STRVAR(C_Matrix_Translation_doc, +".. classmethod:: Translation(vector)\n" +"\n" +" Create a matrix representing a translation.\n" +"\n" +" :arg vector: The translation vector.\n" +" :type vector: :class:`Vector`\n" +" :return: An identity matrix with a translation.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *C_Matrix_Translation(PyObject *cls, PyObject *value) +{ + float mat[16], tvec[3]; + + if (mathutils_array_parse(tvec, 3, 4, value, "mathutils.Matrix.Translation(vector), invalid vector arg") == -1) + return NULL; + + /* create a identity matrix and add translation */ + unit_m4((float(*)[4]) mat); + copy_v3_v3(mat + 12, tvec); /* 12, 13, 14 */ + return newMatrixObject(mat, 4, 4, Py_NEW, (PyTypeObject *)cls); +} +//----------------------------------mathutils.Matrix.Scale() ------------- +//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. +PyDoc_STRVAR(C_Matrix_Scale_doc, +".. classmethod:: Scale(factor, size, axis)\n" +"\n" +" Create a matrix representing a scaling.\n" +"\n" +" :arg factor: The factor of scaling to apply.\n" +" :type factor: float\n" +" :arg size: The size of the scale matrix to construct [2, 4].\n" +" :type size: int\n" +" :arg axis: Direction to influence scale. (optional).\n" +" :type axis: :class:`Vector`\n" +" :return: A new scale matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) +{ + PyObject *vec= NULL; + int vec_size; + float tvec[3]; + float factor; + int matSize; + float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; + + if(!PyArg_ParseTuple(args, "fi|O:Matrix.Scale", &factor, &matSize, &vec)) { + return NULL; + } + if(matSize != 2 && matSize != 3 && matSize != 4) { + PyErr_SetString(PyExc_ValueError, + "Matrix.Scale(): " + "can only return a 2x2 3x3 or 4x4 matrix"); + return NULL; + } + if(vec) { + vec_size= (matSize == 2 ? 2 : 3); + if(mathutils_array_parse(tvec, vec_size, vec_size, vec, "Matrix.Scale(factor, size, axis), invalid 'axis' arg") == -1) { + return NULL; + } + } + if(vec == NULL) { //scaling along axis + if(matSize == 2) { + mat[0] = factor; + mat[3] = factor; + } + else { + mat[0] = factor; + mat[4] = factor; + mat[8] = factor; + } + } + else { //scaling in arbitrary direction + //normalize arbitrary axis + float norm = 0.0f; + int x; + for(x = 0; x < vec_size; x++) { + norm += tvec[x] * tvec[x]; + } + norm = (float) sqrt(norm); + for(x = 0; x < vec_size; x++) { + tvec[x] /= norm; + } + if(matSize == 2) { + mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); + mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); + mat[2] = ((factor - 1) *(tvec[0] * tvec[1])); + mat[3] = 1 + ((factor - 1) *(tvec[1] * tvec[1])); + } + else { + mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); + mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); + mat[2] = ((factor - 1) *(tvec[0] * tvec[2])); + mat[3] = ((factor - 1) *(tvec[0] * tvec[1])); + mat[4] = 1 + ((factor - 1) *(tvec[1] * tvec[1])); + mat[5] = ((factor - 1) *(tvec[1] * tvec[2])); + mat[6] = ((factor - 1) *(tvec[0] * tvec[2])); + mat[7] = ((factor - 1) *(tvec[1] * tvec[2])); + mat[8] = 1 + ((factor - 1) *(tvec[2] * tvec[2])); + } + } + if(matSize == 4) { + matrix_3x3_as_4x4(mat); + } + //pass to matrix creation + return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); +} +//----------------------------------mathutils.Matrix.OrthoProjection() --- +//mat is a 1D array of floats - row[0][0], row[0][1], row[1][0], etc. +PyDoc_STRVAR(C_Matrix_OrthoProjection_doc, +".. classmethod:: OrthoProjection(axis, size)\n" +"\n" +" Create a matrix to represent an orthographic projection.\n" +"\n" +" :arg axis: Can be any of the following: ['X', 'Y', 'XY', 'XZ', 'YZ'],\n" +" where a single axis is for a 2D matrix.\n" +" Or a vector for an arbitrary axis\n" +" :type axis: string or :class:`Vector`\n" +" :arg size: The size of the projection matrix to construct [2, 4].\n" +" :type size: int\n" +" :return: A new projection matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) +{ + PyObject *axis; + + int matSize, x; + float norm = 0.0f; + float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; + + if(!PyArg_ParseTuple(args, "Oi:Matrix.OrthoProjection", &axis, &matSize)) { + return NULL; + } + if(matSize != 2 && matSize != 3 && matSize != 4) { + PyErr_SetString(PyExc_ValueError, + "mathutils.Matrix.OrthoProjection(): " + "can only return a 2x2 3x3 or 4x4 matrix"); + return NULL; + } + + if(PyUnicode_Check(axis)) { //ortho projection onto cardinal plane + Py_ssize_t plane_len; + const char *plane= _PyUnicode_AsStringAndSize(axis, &plane_len); + if(matSize == 2) { + if(plane_len == 1 && plane[0]=='X') { + mat[0]= 1.0f; + } + else if (plane_len == 1 && plane[0]=='Y') { + mat[3]= 1.0f; + } + else { + PyErr_Format(PyExc_ValueError, + "mathutils.Matrix.OrthoProjection(): " + "unknown plane, expected: X, Y, not '%.200s'", + plane); + return NULL; + } + } + else { + if(plane_len == 2 && plane[0]=='X' && plane[1]=='Y') { + mat[0]= 1.0f; + mat[4]= 1.0f; + } + else if (plane_len == 2 && plane[0]=='X' && plane[1]=='Z') { + mat[0]= 1.0f; + mat[8]= 1.0f; + } + else if (plane_len == 2 && plane[0]=='Y' && plane[1]=='Z') { + mat[4]= 1.0f; + mat[8]= 1.0f; + } + else { + PyErr_Format(PyExc_ValueError, + "mathutils.Matrix.OrthoProjection(): " + "unknown plane, expected: XY, XZ, YZ, not '%.200s'", + plane); + return NULL; + } + } + } + else { + //arbitrary plane + + int vec_size= (matSize == 2 ? 2 : 3); + float tvec[4]; + + if(mathutils_array_parse(tvec, vec_size, vec_size, axis, "Matrix.OrthoProjection(axis, size), invalid 'axis' arg") == -1) { + return NULL; + } + + //normalize arbitrary axis + for(x = 0; x < vec_size; x++) { + norm += tvec[x] * tvec[x]; + } + norm = (float) sqrt(norm); + for(x = 0; x < vec_size; x++) { + tvec[x] /= norm; + } + if(matSize == 2) { + mat[0] = 1 - (tvec[0] * tvec[0]); + mat[1] = -(tvec[0] * tvec[1]); + mat[2] = -(tvec[0] * tvec[1]); + mat[3] = 1 - (tvec[1] * tvec[1]); + } + else if(matSize > 2) { + mat[0] = 1 - (tvec[0] * tvec[0]); + mat[1] = -(tvec[0] * tvec[1]); + mat[2] = -(tvec[0] * tvec[2]); + mat[3] = -(tvec[0] * tvec[1]); + mat[4] = 1 - (tvec[1] * tvec[1]); + mat[5] = -(tvec[1] * tvec[2]); + mat[6] = -(tvec[0] * tvec[2]); + mat[7] = -(tvec[1] * tvec[2]); + mat[8] = 1 - (tvec[2] * tvec[2]); + } + } + if(matSize == 4) { + matrix_3x3_as_4x4(mat); + } + //pass to matrix creation + return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); +} + +PyDoc_STRVAR(C_Matrix_Shear_doc, +".. classmethod:: Shear(plane, size, factor)\n" +"\n" +" Create a matrix to represent an shear transformation.\n" +"\n" +" :arg plane: Can be any of the following: ['X', 'Y', 'XY', 'XZ', 'YZ'],\n" +" where a single axis is for a 2D matrix only.\n" +" :type plane: string\n" +" :arg size: The size of the shear matrix to construct [2, 4].\n" +" :type size: int\n" +" :arg factor: The factor of shear to apply. For a 3 or 4 *size* matrix\n" +" pass a pair of floats corrasponding with the *plane* axis.\n" +" :type factor: float or float pair\n" +" :return: A new shear matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) +{ + int matSize; + const char *plane; + PyObject *fac; + float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; + + if(!PyArg_ParseTuple(args, "siO:Matrix.Shear", &plane, &matSize, &fac)) { + return NULL; + } + if(matSize != 2 && matSize != 3 && matSize != 4) { + PyErr_SetString(PyExc_ValueError, + "mathutils.Matrix.Shear(): " + "can only return a 2x2 3x3 or 4x4 matrix"); + return NULL; + } + + if(matSize == 2) { + float const factor= PyFloat_AsDouble(fac); + + if(factor==-1.0f && PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "mathutils.Matrix.Shear(): " + "the factor to be a float"); + return NULL; + } + + /* unit */ + mat[0] = 1.0f; + mat[3] = 1.0f; + + if(strcmp(plane, "X") == 0) { + mat[2] = factor; + } + else if(strcmp(plane, "Y") == 0) { + mat[1] = factor; + } + else { + PyErr_SetString(PyExc_ValueError, + "Matrix.Shear(): " + "expected: X, Y or wrong matrix size for shearing plane"); + return NULL; + } + } + else { + /* 3 or 4, apply as 3x3, resize later if needed */ + float factor[2]; + + if(mathutils_array_parse(factor, 2, 2, fac, "Matrix.Shear()") < 0) { + return NULL; + } + + /* unit */ + mat[0] = 1.0f; + mat[4] = 1.0f; + mat[8] = 1.0f; + + if(strcmp(plane, "XY") == 0) { + mat[6] = factor[0]; + mat[7] = factor[1]; + } + else if(strcmp(plane, "XZ") == 0) { + mat[3] = factor[0]; + mat[5] = factor[1]; + } + else if(strcmp(plane, "YZ") == 0) { + mat[1] = factor[0]; + mat[2] = factor[1]; + } + else { + PyErr_SetString(PyExc_ValueError, + "mathutils.Matrix.Shear(): " + "expected: X, Y, XY, XZ, YZ"); + return NULL; + } + } + + if(matSize == 4) { + matrix_3x3_as_4x4(mat); + } + //pass to matrix creation + return newMatrixObject(mat, matSize, matSize, Py_NEW, (PyTypeObject *)cls); +} + +void matrix_as_3x3(float mat[3][3], MatrixObject *self) +{ + copy_v3_v3(mat[0], self->matrix[0]); + copy_v3_v3(mat[1], self->matrix[1]); + copy_v3_v3(mat[2], self->matrix[2]); +} + +/* assumes rowsize == colsize is checked and the read callback has run */ +static float matrix_determinant_internal(MatrixObject *self) +{ + if(self->row_size == 2) { + return determinant_m2(self->matrix[0][0], self->matrix[0][1], + self->matrix[1][0], self->matrix[1][1]); + } + else if(self->row_size == 3) { + return determinant_m3(self->matrix[0][0], self->matrix[0][1], + self->matrix[0][2], self->matrix[1][0], + self->matrix[1][1], self->matrix[1][2], + self->matrix[2][0], self->matrix[2][1], + self->matrix[2][2]); + } + else { + return determinant_m4((float (*)[4])self->contigPtr); + } +} + + +/*-----------------------------METHODS----------------------------*/ +PyDoc_STRVAR(Matrix_to_quaternion_doc, +".. method:: to_quaternion()\n" +"\n" +" Return a quaternion representation of the rotation matrix.\n" +"\n" +" :return: Quaternion representation of the rotation matrix.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Matrix_to_quaternion(MatrixObject *self) +{ + float quat[4]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { + PyErr_SetString(PyExc_ValueError, + "matrix.to_quat(): " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); + return NULL; + } + if(self->col_size == 3){ + mat3_to_quat(quat, (float (*)[3])self->contigPtr); + } + else { + mat4_to_quat(quat, (float (*)[4])self->contigPtr); + } + + return newQuaternionObject(quat, Py_NEW, NULL); +} + +/*---------------------------matrix.toEuler() --------------------*/ +PyDoc_STRVAR(Matrix_to_euler_doc, +".. method:: to_euler(order, euler_compat)\n" +"\n" +" Return an Euler representation of the rotation matrix\n" +" (3x3 or 4x4 matrix only).\n" +"\n" +" :arg order: Optional rotation order argument in\n" +" ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'].\n" +" :type order: string\n" +" :arg euler_compat: Optional euler argument the new euler will be made\n" +" compatible with (no axis flipping between them).\n" +" Useful for converting a series of matrices to animation curves.\n" +" :type euler_compat: :class:`Euler`\n" +" :return: Euler representation of the matrix.\n" +" :rtype: :class:`Euler`\n" +); +static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) +{ + const char *order_str= NULL; + short order= EULER_ORDER_XYZ; + float eul[3], eul_compatf[3]; + EulerObject *eul_compat = NULL; + + float tmat[3][3]; + float (*mat)[3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) + return NULL; + + if(eul_compat) { + if(BaseMath_ReadCallback(eul_compat) == -1) + return NULL; + + copy_v3_v3(eul_compatf, eul_compat->eul); + } + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if(self->col_size ==3 && self->row_size ==3) { + mat= (float (*)[3])self->contigPtr; + } + else if (self->col_size ==4 && self->row_size ==4) { + copy_m3_m4(tmat, (float (*)[4])self->contigPtr); + mat= tmat; + } + else { + PyErr_SetString(PyExc_ValueError, + "matrix.to_euler(): " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); + return NULL; + } + + if(order_str) { + order= euler_order_from_string(order_str, "matrix.to_euler()"); + + if(order == -1) + return NULL; + } + + if(eul_compat) { + if(order == 1) mat3_to_compatible_eul(eul, eul_compatf, mat); + else mat3_to_compatible_eulO(eul, eul_compatf, order, mat); + } + else { + if(order == 1) mat3_to_eul(eul, mat); + else mat3_to_eulO(eul, order, mat); + } + + return newEulerObject(eul, order, Py_NEW, NULL); +} + +PyDoc_STRVAR(Matrix_resize_4x4_doc, +".. method:: resize_4x4()\n" +"\n" +" Resize the matrix to 4x4.\n" +); +static PyObject *Matrix_resize_4x4(MatrixObject *self) +{ + int x, first_row_elem, curr_pos, new_pos, blank_columns, blank_rows, index; + + if(self->wrapped==Py_WRAP){ + PyErr_SetString(PyExc_TypeError, + "cannot resize wrapped data - make a copy and resize that"); + return NULL; + } + if(self->cb_user){ + PyErr_SetString(PyExc_TypeError, + "cannot resize owned data - make a copy and resize that"); + return NULL; + } + + self->contigPtr = PyMem_Realloc(self->contigPtr, (sizeof(float) * 16)); + if(self->contigPtr == NULL) { + PyErr_SetString(PyExc_MemoryError, + "matrix.resize_4x4(): problem allocating pointer space"); + return NULL; + } + /*set row pointers*/ + for(x = 0; x < 4; x++) { + self->matrix[x] = self->contigPtr + (x * 4); + } + /*move data to new spot in array + clean*/ + for(blank_rows = (4 - self->row_size); blank_rows > 0; blank_rows--){ + for(x = 0; x < 4; x++){ + index = (4 * (self->row_size + (blank_rows - 1))) + x; + if (index == 10 || index == 15){ + self->contigPtr[index] = 1.0f; + } + else { + self->contigPtr[index] = 0.0f; + } + } + } + for(x = 1; x <= self->row_size; x++){ + first_row_elem = (self->col_size * (self->row_size - x)); + curr_pos = (first_row_elem + (self->col_size -1)); + new_pos = (4 * (self->row_size - x)) + (curr_pos - first_row_elem); + for(blank_columns = (4 - self->col_size); blank_columns > 0; blank_columns--){ + self->contigPtr[new_pos + blank_columns] = 0.0f; + } + for( ; curr_pos >= first_row_elem; curr_pos--){ + self->contigPtr[new_pos] = self->contigPtr[curr_pos]; + new_pos--; + } + } + self->row_size = 4; + self->col_size = 4; + + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Matrix_to_4x4_doc, +".. method:: to_4x4()\n" +"\n" +" Return a 4x4 copy of this matrix.\n" +"\n" +" :return: a new matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_to_4x4(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(self->col_size==4 && self->row_size==4) { + return (PyObject *)newMatrixObject(self->contigPtr, 4, 4, Py_NEW, Py_TYPE(self)); + } + else if(self->col_size==3 && self->row_size==3) { + float mat[4][4]; + copy_m4_m3(mat, (float (*)[3])self->contigPtr); + return (PyObject *)newMatrixObject((float *)mat, 4, 4, Py_NEW, Py_TYPE(self)); + } + /* TODO, 2x2 matrix */ + + PyErr_SetString(PyExc_TypeError, + "matrix.to_4x4(): inappropriate matrix size"); + return NULL; +} + +PyDoc_STRVAR(Matrix_to_3x3_doc, +".. method:: to_3x3()\n" +"\n" +" Return a 3x3 copy of this matrix.\n" +"\n" +" :return: a new matrix.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_to_3x3(MatrixObject *self) +{ + float mat[3][3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if((self->col_size < 3) || (self->row_size < 3)) { + PyErr_SetString(PyExc_TypeError, + "matrix.to_3x3(): inappropriate matrix size"); + return NULL; + } + + matrix_as_3x3(mat, self); + + return newMatrixObject((float *)mat, 3, 3, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Matrix_to_translation_doc, +".. method:: to_translation()\n" +"\n" +" Return a the translation part of a 4 row matrix.\n" +"\n" +" :return: Return a the translation of a matrix.\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Matrix_to_translation(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if((self->col_size < 3) || self->row_size < 4){ + PyErr_SetString(PyExc_TypeError, + "matrix.to_translation(): " + "inappropriate matrix size"); + return NULL; + } + + return newVectorObject(self->matrix[3], 3, Py_NEW, NULL); +} + +PyDoc_STRVAR(Matrix_to_scale_doc, +".. method:: to_scale()\n" +"\n" +" Return a the scale part of a 3x3 or 4x4 matrix.\n" +"\n" +" :return: Return a the scale of a matrix.\n" +" :rtype: :class:`Vector`\n" +"\n" +" .. note:: This method does not return negative a scale on any axis because it is not possible to obtain this data from the matrix alone.\n" +); +static PyObject *Matrix_to_scale(MatrixObject *self) +{ + float rot[3][3]; + float mat[3][3]; + float size[3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if((self->col_size < 3) || (self->row_size < 3)) { + PyErr_SetString(PyExc_TypeError, + "matrix.to_scale(): " + "inappropriate matrix size, 3x3 minimum size"); + return NULL; + } + + matrix_as_3x3(mat, self); + + /* compatible mat4_to_loc_rot_size */ + mat3_to_rot_size(rot, size, mat); + + return newVectorObject(size, 3, Py_NEW, NULL); +} + +/*---------------------------matrix.invert() ---------------------*/ +PyDoc_STRVAR(Matrix_invert_doc, +".. method:: invert()\n" +"\n" +" Set the matrix to its inverse.\n" +"\n" +" .. note:: :exc:`ValueError` exception is raised.\n" +"\n" +" .. seealso:: \n" +); +static PyObject *Matrix_invert(MatrixObject *self) +{ + + int x, y, z = 0; + float det = 0.0f; + float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(self->row_size != self->col_size){ + PyErr_SetString(PyExc_TypeError, + "matrix.invert(ed): " + "only square matrices are supported"); + return NULL; + } + + /*calculate the determinant*/ + det = matrix_determinant_internal(self); + + if(det != 0) { + /*calculate the classical adjoint*/ + if(self->row_size == 2) { + mat[0] = self->matrix[1][1]; + mat[1] = -self->matrix[0][1]; + mat[2] = -self->matrix[1][0]; + mat[3] = self->matrix[0][0]; + } else if(self->row_size == 3) { + adjoint_m3_m3((float (*)[3]) mat,(float (*)[3])self->contigPtr); + } else if(self->row_size == 4) { + adjoint_m4_m4((float (*)[4]) mat, (float (*)[4])self->contigPtr); + } + /*divide by determinate*/ + for(x = 0; x < (self->row_size * self->col_size); x++) { + mat[x] /= det; + } + /*set values*/ + for(x = 0; x < self->row_size; x++) { + for(y = 0; y < self->col_size; y++) { + self->matrix[x][y] = mat[z]; + z++; + } + } + /*transpose + Matrix_transpose(self);*/ + } + else { + PyErr_SetString(PyExc_ValueError, + "matrix does not have an inverse"); + return NULL; + } + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Matrix_inverted_doc, +".. method:: inverted()\n" +"\n" +" Return an inverted copy of the matrix.\n" +"\n" +" :return: the inverted matrix.\n" +" :rtype: :class:`Matrix`\n" +"\n" +" .. note:: :exc:`ValueError` exception is raised.\n" +); +static PyObject *Matrix_inverted(MatrixObject *self) +{ + return matrix__apply_to_copy((PyNoArgsFunction)Matrix_invert, self); +} + +PyDoc_STRVAR(Matrix_rotate_doc, +".. method:: rotate(other)\n" +"\n" +" Rotates the matrix a by another mathutils value.\n" +"\n" +" :arg other: rotation component of mathutils value\n" +" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" +"\n" +" .. note:: If any of the columns are not unit length this may not have desired results.\n" +); +static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) +{ + float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1) + return NULL; + + if(self->col_size != 3 || self->row_size != 3) { + PyErr_SetString(PyExc_TypeError, + "Matrix must have 3x3 dimensions"); + return NULL; + } + + matrix_as_3x3(self_rmat, self); + mul_m3_m3m3(rmat, self_rmat, other_rmat); + + copy_m3_m3((float (*)[3])(self->contigPtr), rmat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +/*---------------------------matrix.decompose() ---------------------*/ +PyDoc_STRVAR(Matrix_decompose_doc, +".. method:: decompose()\n" +"\n" +" Return the location, rotaion and scale components of this matrix.\n" +"\n" +" :return: loc, rot, scale triple.\n" +" :rtype: (:class:`Vector`, :class:`Quaternion`, :class:`Vector`)" +); +static PyObject *Matrix_decompose(MatrixObject *self) +{ + PyObject *ret; + float loc[3]; + float rot[3][3]; + float quat[4]; + float size[3]; + + if(self->col_size != 4 || self->row_size != 4) { + PyErr_SetString(PyExc_TypeError, + "matrix.decompose(): " + "inappropriate matrix size - expects 4x4 matrix"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + mat4_to_loc_rot_size(loc, rot, size, (float (*)[4])self->contigPtr); + mat3_to_quat(quat, rot); + + ret= PyTuple_New(3); + PyTuple_SET_ITEM(ret, 0, newVectorObject(loc, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, newQuaternionObject(quat, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 2, newVectorObject(size, 3, Py_NEW, NULL)); + + return ret; +} + + + +PyDoc_STRVAR(Matrix_lerp_doc, +".. function:: lerp(other, factor)\n" +"\n" +" Returns the interpolation of two matricies.\n" +"\n" +" :arg other: value to interpolate with.\n" +" :type other: :class:`Matrix`\n" +" :arg factor: The interpolation value in [0.0, 1.0].\n" +" :type factor: float\n" +" :return: The interpolated rotation.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) +{ + MatrixObject *mat2 = NULL; + float fac, mat[MATRIX_MAX_DIM*MATRIX_MAX_DIM]; + + if(!PyArg_ParseTuple(args, "O!f:lerp", &matrix_Type, &mat2, &fac)) + return NULL; + + if(self->row_size != mat2->row_size || self->col_size != mat2->col_size) { + PyErr_SetString(PyExc_ValueError, + "matrix.lerp(): " + "expects both matrix objects of the same dimensions"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1 || BaseMath_ReadCallback(mat2) == -1) + return NULL; + + /* TODO, different sized matrix */ + if(self->row_size==4 && self->col_size==4) { + blend_m4_m4m4((float (*)[4])mat, (float (*)[4])self->contigPtr, (float (*)[4])mat2->contigPtr, fac); + } + else if (self->row_size==3 && self->col_size==3) { + blend_m3_m3m3((float (*)[3])mat, (float (*)[3])self->contigPtr, (float (*)[3])mat2->contigPtr, fac); + } + else { + PyErr_SetString(PyExc_ValueError, + "matrix.lerp(): " + "only 3x3 and 4x4 matrices supported"); + return NULL; + } + + return (PyObject*)newMatrixObject(mat, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); +} + +/*---------------------------matrix.determinant() ----------------*/ +PyDoc_STRVAR(Matrix_determinant_doc, +".. method:: determinant()\n" +"\n" +" Return the determinant of a matrix.\n" +"\n" +" :return: Return a the determinant of a matrix.\n" +" :rtype: float\n" +"\n" +" .. seealso:: \n" +); +static PyObject *Matrix_determinant(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(self->row_size != self->col_size){ + PyErr_SetString(PyExc_TypeError, + "matrix.determinant: " + "only square matrices are supported"); + return NULL; + } + + return PyFloat_FromDouble((double)matrix_determinant_internal(self)); +} +/*---------------------------matrix.transpose() ------------------*/ +PyDoc_STRVAR(Matrix_transpose_doc, +".. method:: transpose()\n" +"\n" +" Set the matrix to its transpose.\n" +"\n" +" .. seealso:: \n" +); +static PyObject *Matrix_transpose(MatrixObject *self) +{ + float t = 0.0f; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(self->row_size != self->col_size){ + PyErr_SetString(PyExc_TypeError, + "matrix.transpose(d): " + "only square matrices are supported"); + return NULL; + } + + if(self->row_size == 2) { + t = self->matrix[1][0]; + self->matrix[1][0] = self->matrix[0][1]; + self->matrix[0][1] = t; + } else if(self->row_size == 3) { + transpose_m3((float (*)[3])self->contigPtr); + } + else { + transpose_m4((float (*)[4])self->contigPtr); + } + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Matrix_transposed_doc, +".. method:: transposed()\n" +"\n" +" Return a new, transposed matrix.\n" +"\n" +" :return: a transposed matrix\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_transposed(MatrixObject *self) +{ + return matrix__apply_to_copy((PyNoArgsFunction)Matrix_transpose, self); +} + +/*---------------------------matrix.zero() -----------------------*/ +PyDoc_STRVAR(Matrix_zero_doc, +".. method:: zero()\n" +"\n" +" Set all the matrix values to zero.\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_zero(MatrixObject *self) +{ + fill_vn(self->contigPtr, self->row_size * self->col_size, 0.0f); + + if(BaseMath_WriteCallback(self) == -1) + return NULL; + + Py_RETURN_NONE; +} +/*---------------------------matrix.identity(() ------------------*/ +PyDoc_STRVAR(Matrix_identity_doc, +".. method:: identity()\n" +"\n" +" Set the matrix to the identity matrix.\n" +"\n" +" .. note:: An object with zero location and rotation, a scale of one,\n" +" will have an identity matrix.\n" +"\n" +" .. seealso:: \n" +); +static PyObject *Matrix_identity(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(self->row_size != self->col_size){ + PyErr_SetString(PyExc_TypeError, + "matrix.identity: " + "only square matrices are supported"); + return NULL; + } + + if(self->row_size == 2) { + self->matrix[0][0] = 1.0f; + self->matrix[0][1] = 0.0f; + self->matrix[1][0] = 0.0f; + self->matrix[1][1] = 1.0f; + } else if(self->row_size == 3) { + unit_m3((float (*)[3])self->contigPtr); + } + else { + unit_m4((float (*)[4])self->contigPtr); + } + + if(BaseMath_WriteCallback(self) == -1) + return NULL; + + Py_RETURN_NONE; +} + +/*---------------------------Matrix.copy() ------------------*/ +PyDoc_STRVAR(Matrix_copy_doc, +".. method:: copy()\n" +"\n" +" Returns a copy of this matrix.\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Matrix_copy(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return (PyObject*)newMatrixObject((float (*))self->contigPtr, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); +} + +/*----------------------------print object (internal)-------------*/ +/*print the object to screen*/ +static PyObject *Matrix_repr(MatrixObject *self) +{ + int x, y; + PyObject *rows[MATRIX_MAX_DIM]= {NULL}; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + for(x = 0; x < self->row_size; x++){ + rows[x]= PyTuple_New(self->col_size); + for(y = 0; y < self->col_size; y++) { + PyTuple_SET_ITEM(rows[x], y, PyFloat_FromDouble(self->matrix[x][y])); + } + } + switch(self->row_size) { + case 2: return PyUnicode_FromFormat("Matrix(%R,\n" + " %R)", rows[0], rows[1]); + + case 3: return PyUnicode_FromFormat("Matrix(%R,\n" + " %R,\n" + " %R)", rows[0], rows[1], rows[2]); + + case 4: return PyUnicode_FromFormat("Matrix(%R,\n" + " %R,\n" + " %R,\n" + " %R)", rows[0], rows[1], rows[2], rows[3]); + } + + PyErr_SetString(PyExc_RuntimeError, + "internal error!"); + return NULL; +} + +static PyObject* Matrix_richcmpr(PyObject *a, PyObject *b, int op) +{ + PyObject *res; + int ok= -1; /* zero is true */ + + if (MatrixObject_Check(a) && MatrixObject_Check(b)) { + MatrixObject *matA= (MatrixObject*)a; + MatrixObject *matB= (MatrixObject*)b; + + if(BaseMath_ReadCallback(matA) == -1 || BaseMath_ReadCallback(matB) == -1) + return NULL; + + ok= ( (matA->col_size == matB->col_size) && + (matA->row_size == matB->row_size) && + EXPP_VectorsAreEqual(matA->contigPtr, matB->contigPtr, (matA->row_size * matA->col_size), 1) + ) ? 0 : -1; + } + + switch (op) { + case Py_NE: + ok = !ok; /* pass through */ + case Py_EQ: + res = ok ? Py_False : Py_True; + break; + + case Py_LT: + case Py_LE: + case Py_GT: + case Py_GE: + res = Py_NotImplemented; + break; + default: + PyErr_BadArgument(); + return NULL; + } + + return Py_INCREF(res), res; +} + +/*---------------------SEQUENCE PROTOCOLS------------------------ + ----------------------------len(object)------------------------ + sequence length*/ +static int Matrix_len(MatrixObject *self) +{ + return (self->row_size); +} +/*----------------------------object[]--------------------------- + sequence accessor (get) + the wrapped vector gives direct access to the matrix data*/ +static PyObject *Matrix_item(MatrixObject *self, int i) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(i < 0 || i >= self->row_size) { + PyErr_SetString(PyExc_IndexError, + "matrix[attribute]: " + "array index out of range"); + return NULL; + } + return newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, i); +} +/*----------------------------object[]------------------------- + sequence accessor (set) */ + +static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value) +{ + float vec[4]; + if(BaseMath_ReadCallback(self) == -1) + return -1; + + if(i >= self->row_size || i < 0){ + PyErr_SetString(PyExc_IndexError, + "matrix[attribute] = x: bad column"); + return -1; + } + + if(mathutils_array_parse(vec, self->col_size, self->col_size, value, "matrix[i] = value assignment") < 0) { + return -1; + } + + memcpy(self->matrix[i], vec, self->col_size *sizeof(float)); + + (void)BaseMath_WriteCallback(self); + return 0; +} + +/*----------------------------object[z:y]------------------------ + sequence slice (get)*/ +static PyObject *Matrix_slice(MatrixObject *self, int begin, int end) +{ + + PyObject *tuple; + int count; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + CLAMP(begin, 0, self->row_size); + CLAMP(end, 0, self->row_size); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + for(count= begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, + newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, count)); + + } + + return tuple; +} +/*----------------------------object[z:y]------------------------ + sequence slice (set)*/ +static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *value) +{ + PyObject *value_fast= NULL; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + CLAMP(begin, 0, self->row_size); + CLAMP(end, 0, self->row_size); + begin = MIN2(begin, end); + + /* non list/tuple cases */ + if(!(value_fast=PySequence_Fast(value, "matrix[begin:end] = value"))) { + /* PySequence_Fast sets the error */ + return -1; + } + else { + const int size= end - begin; + int i; + float mat[16]; + + if(PySequence_Fast_GET_SIZE(value_fast) != size) { + Py_DECREF(value_fast); + PyErr_SetString(PyExc_ValueError, + "matrix[begin:end] = []: " + "size mismatch in slice assignment"); + return -1; + } + + /*parse sub items*/ + for (i = 0; i < size; i++) { + /*parse each sub sequence*/ + PyObject *item= PySequence_Fast_GET_ITEM(value_fast, i); + + if(mathutils_array_parse(&mat[i * self->col_size], self->col_size, self->col_size, item, "matrix[begin:end] = value assignment") < 0) { + return -1; + } + } + + Py_DECREF(value_fast); + + /*parsed well - now set in matrix*/ + memcpy(self->contigPtr + (begin * self->col_size), mat, sizeof(float) * (size * self->col_size)); + + (void)BaseMath_WriteCallback(self); + return 0; + } +} +/*------------------------NUMERIC PROTOCOLS---------------------- + ------------------------obj + obj------------------------------*/ +static PyObject *Matrix_add(PyObject *m1, PyObject *m2) +{ + float mat[16]; + MatrixObject *mat1 = NULL, *mat2 = NULL; + + mat1 = (MatrixObject*)m1; + mat2 = (MatrixObject*)m2; + + if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { + PyErr_SetString(PyExc_TypeError, + "Matrix addition: " + "arguments not valid for this operation"); + return NULL; + } + + if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) + return NULL; + + if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ + PyErr_SetString(PyExc_TypeError, + "Matrix addition: " + "matrices must have the same dimensions for this operation"); + return NULL; + } + + add_vn_vnvn(mat, mat1->contigPtr, mat2->contigPtr, mat1->row_size * mat1->col_size); + + return newMatrixObject(mat, mat1->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); +} +/*------------------------obj - obj------------------------------ + subtraction*/ +static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) +{ + float mat[16]; + MatrixObject *mat1 = NULL, *mat2 = NULL; + + mat1 = (MatrixObject*)m1; + mat2 = (MatrixObject*)m2; + + if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { + PyErr_SetString(PyExc_TypeError, + "Matrix addition: " + "arguments not valid for this operation"); + return NULL; + } + + if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) + return NULL; + + if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ + PyErr_SetString(PyExc_TypeError, + "Matrix addition: " + "matrices must have the same dimensions for this operation"); + return NULL; + } + + sub_vn_vnvn(mat, mat1->contigPtr, mat2->contigPtr, mat1->row_size * mat1->col_size); + + return newMatrixObject(mat, mat1->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); +} +/*------------------------obj * obj------------------------------ + mulplication*/ +static PyObject *matrix_mul_float(MatrixObject *mat, const float scalar) +{ + float tmat[16]; + mul_vn_vn_fl(tmat, mat->contigPtr, mat->row_size * mat->col_size, scalar); + return newMatrixObject(tmat, mat->row_size, mat->col_size, Py_NEW, Py_TYPE(mat)); +} + +static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) +{ + float scalar; + + MatrixObject *mat1 = NULL, *mat2 = NULL; + + if(MatrixObject_Check(m1)) { + mat1 = (MatrixObject*)m1; + if(BaseMath_ReadCallback(mat1) == -1) + return NULL; + } + if(MatrixObject_Check(m2)) { + mat2 = (MatrixObject*)m2; + if(BaseMath_ReadCallback(mat2) == -1) + return NULL; + } + + if(mat1 && mat2) { + /*MATRIX * MATRIX*/ + if(mat1->row_size != mat2->col_size){ + PyErr_SetString(PyExc_ValueError, + "Matrix multiplication: " + "matrix A rowsize must equal matrix B colsize"); + return NULL; + } + else { + float mat[16]= {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + double dot = 0.0f; + int x, y, z; + + for(x = 0; x < mat2->row_size; x++) { + for(y = 0; y < mat1->col_size; y++) { + for(z = 0; z < mat1->row_size; z++) { + dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); + } + mat[((x * mat1->col_size) + y)] = (float)dot; + dot = 0.0f; + } + } + + return newMatrixObject(mat, mat2->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); + } + } + else if(mat2) { + /*FLOAT/INT * MATRIX */ + if (((scalar= PyFloat_AsDouble(m1)) == -1.0f && PyErr_Occurred())==0) { + return matrix_mul_float(mat2, scalar); + } + } + else if(mat1) { + /*FLOAT/INT * MATRIX */ + if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { + return matrix_mul_float(mat1, scalar); + } + } + else { + BLI_assert(!"internal error"); + } + + PyErr_Format(PyExc_TypeError, + "Matrix multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(m1)->tp_name, Py_TYPE(m2)->tp_name); + return NULL; +} +static PyObject* Matrix_inv(MatrixObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return Matrix_invert(self); +} + +/*-----------------PROTOCOL DECLARATIONS--------------------------*/ +static PySequenceMethods Matrix_SeqMethods = { + (lenfunc) Matrix_len, /* sq_length */ + (binaryfunc) NULL, /* sq_concat */ + (ssizeargfunc) NULL, /* sq_repeat */ + (ssizeargfunc) Matrix_item, /* sq_item */ + (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ + (ssizeobjargproc) Matrix_ass_item, /* sq_ass_item */ + (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ + (objobjproc) NULL, /* sq_contains */ + (binaryfunc) NULL, /* sq_inplace_concat */ + (ssizeargfunc) NULL, /* sq_inplace_repeat */ +}; + + +static PyObject *Matrix_subscript(MatrixObject* self, PyObject* item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += self->row_size; + return Matrix_item(self, i); + } else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->row_size, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Matrix_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with matricies"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "matrix indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + +static int Matrix_ass_subscript(MatrixObject* self, PyObject* item, PyObject* value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += self->row_size; + return Matrix_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->row_size, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Matrix_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with matricies"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "matrix indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + +static PyMappingMethods Matrix_AsMapping = { + (lenfunc)Matrix_len, + (binaryfunc)Matrix_subscript, + (objobjargproc)Matrix_ass_subscript +}; + + +static PyNumberMethods Matrix_NumMethods = { + (binaryfunc) Matrix_add, /*nb_add*/ + (binaryfunc) Matrix_sub, /*nb_subtract*/ + (binaryfunc) Matrix_mul, /*nb_multiply*/ + NULL, /*nb_remainder*/ + NULL, /*nb_divmod*/ + NULL, /*nb_power*/ + (unaryfunc) 0, /*nb_negative*/ + (unaryfunc) 0, /*tp_positive*/ + (unaryfunc) 0, /*tp_absolute*/ + (inquiry) 0, /*tp_bool*/ + (unaryfunc) Matrix_inv, /*nb_invert*/ + NULL, /*nb_lshift*/ + (binaryfunc)0, /*nb_rshift*/ + NULL, /*nb_and*/ + NULL, /*nb_xor*/ + NULL, /*nb_or*/ + NULL, /*nb_int*/ + NULL, /*nb_reserved*/ + NULL, /*nb_float*/ + NULL, /* nb_inplace_add */ + NULL, /* nb_inplace_subtract */ + NULL, /* nb_inplace_multiply */ + NULL, /* nb_inplace_remainder */ + NULL, /* nb_inplace_power */ + NULL, /* nb_inplace_lshift */ + NULL, /* nb_inplace_rshift */ + NULL, /* nb_inplace_and */ + NULL, /* nb_inplace_xor */ + NULL, /* nb_inplace_or */ + NULL, /* nb_floor_divide */ + NULL, /* nb_true_divide */ + NULL, /* nb_inplace_floor_divide */ + NULL, /* nb_inplace_true_divide */ + NULL, /* nb_index */ +}; + +static PyObject *Matrix_getRowSize(MatrixObject *self, void *UNUSED(closure)) +{ + return PyLong_FromLong((long) self->row_size); +} + +static PyObject *Matrix_getColSize(MatrixObject *self, void *UNUSED(closure)) +{ + return PyLong_FromLong((long) self->col_size); +} + +static PyObject *Matrix_median_scale_get(MatrixObject *self, void *UNUSED(closure)) +{ + float mat[3][3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if((self->col_size < 3) || (self->row_size < 3)) { + PyErr_SetString(PyExc_AttributeError, + "matrix.median_scale: " + "inappropriate matrix size, 3x3 minimum"); + return NULL; + } + + matrix_as_3x3(mat, self); + + return PyFloat_FromDouble(mat3_to_scale(mat)); +} + +static PyObject *Matrix_is_negative_get(MatrixObject *self, void *UNUSED(closure)) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if(self->col_size == 4 && self->row_size == 4) + return PyBool_FromLong(is_negative_m4((float (*)[4])self->contigPtr)); + else if(self->col_size == 3 && self->row_size == 3) + return PyBool_FromLong(is_negative_m3((float (*)[3])self->contigPtr)); + else { + PyErr_SetString(PyExc_AttributeError, + "matrix.is_negative: " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); + return NULL; + } +} + +static PyObject *Matrix_is_orthogonal_get(MatrixObject *self, void *UNUSED(closure)) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if(self->col_size == 4 && self->row_size == 4) + return PyBool_FromLong(is_orthogonal_m4((float (*)[4])self->contigPtr)); + else if(self->col_size == 3 && self->row_size == 3) + return PyBool_FromLong(is_orthogonal_m3((float (*)[3])self->contigPtr)); + else { + PyErr_SetString(PyExc_AttributeError, + "matrix.is_orthogonal: " + "inappropriate matrix size - expects 3x3 or 4x4 matrix"); + return NULL; + } +} + +/*****************************************************************************/ +/* Python attributes get/set structure: */ +/*****************************************************************************/ +static PyGetSetDef Matrix_getseters[] = { + {(char *)"row_size", (getter)Matrix_getRowSize, (setter)NULL, (char *)"The row size of the matrix (readonly).\n\n:type: int", NULL}, + {(char *)"col_size", (getter)Matrix_getColSize, (setter)NULL, (char *)"The column size of the matrix (readonly).\n\n:type: int", NULL}, + {(char *)"median_scale", (getter)Matrix_median_scale_get, (setter)NULL, (char *)"The average scale applied to each axis (readonly).\n\n:type: float", NULL}, + {(char *)"is_negative", (getter)Matrix_is_negative_get, (setter)NULL, (char *)"True if this matrix results in a negative scale, 3x3 and 4x4 only, (readonly).\n\n:type: bool", NULL}, + {(char *)"is_orthogonal", (getter)Matrix_is_orthogonal_get, (setter)NULL, (char *)"True if this matrix is orthogonal, 3x3 and 4x4 only, (readonly).\n\n:type: bool", NULL}, + {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, + {(char *)"owner",(getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, + {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ +}; + +/*-----------------------METHOD DEFINITIONS ----------------------*/ +static struct PyMethodDef Matrix_methods[] = { + /* derived values */ + {"determinant", (PyCFunction) Matrix_determinant, METH_NOARGS, Matrix_determinant_doc}, + {"decompose", (PyCFunction) Matrix_decompose, METH_NOARGS, Matrix_decompose_doc}, + + /* in place only */ + {"zero", (PyCFunction) Matrix_zero, METH_NOARGS, Matrix_zero_doc}, + {"identity", (PyCFunction) Matrix_identity, METH_NOARGS, Matrix_identity_doc}, + + /* operate on original or copy */ + {"transpose", (PyCFunction) Matrix_transpose, METH_NOARGS, Matrix_transpose_doc}, + {"transposed", (PyCFunction) Matrix_transposed, METH_NOARGS, Matrix_transposed_doc}, + {"invert", (PyCFunction) Matrix_invert, METH_NOARGS, Matrix_invert_doc}, + {"inverted", (PyCFunction) Matrix_inverted, METH_NOARGS, Matrix_inverted_doc}, + {"to_3x3", (PyCFunction) Matrix_to_3x3, METH_NOARGS, Matrix_to_3x3_doc}, + // TODO. {"resize_3x3", (PyCFunction) Matrix_resize3x3, METH_NOARGS, Matrix_resize3x3_doc}, + {"to_4x4", (PyCFunction) Matrix_to_4x4, METH_NOARGS, Matrix_to_4x4_doc}, + {"resize_4x4", (PyCFunction) Matrix_resize_4x4, METH_NOARGS, Matrix_resize_4x4_doc}, + {"rotate", (PyCFunction) Matrix_rotate, METH_O, Matrix_rotate_doc}, + + /* return converted representation */ + {"to_euler", (PyCFunction) Matrix_to_euler, METH_VARARGS, Matrix_to_euler_doc}, + {"to_quaternion", (PyCFunction) Matrix_to_quaternion, METH_NOARGS, Matrix_to_quaternion_doc}, + {"to_scale", (PyCFunction) Matrix_to_scale, METH_NOARGS, Matrix_to_scale_doc}, + {"to_translation", (PyCFunction) Matrix_to_translation, METH_NOARGS, Matrix_to_translation_doc}, + + /* operation between 2 or more types */ + {"lerp", (PyCFunction) Matrix_lerp, METH_VARARGS, Matrix_lerp_doc}, + {"copy", (PyCFunction) Matrix_copy, METH_NOARGS, Matrix_copy_doc}, + {"__copy__", (PyCFunction) Matrix_copy, METH_NOARGS, Matrix_copy_doc}, + + /* class methods */ + {"Rotation", (PyCFunction) C_Matrix_Rotation, METH_VARARGS | METH_CLASS, C_Matrix_Rotation_doc}, + {"Scale", (PyCFunction) C_Matrix_Scale, METH_VARARGS | METH_CLASS, C_Matrix_Scale_doc}, + {"Shear", (PyCFunction) C_Matrix_Shear, METH_VARARGS | METH_CLASS, C_Matrix_Shear_doc}, + {"Translation", (PyCFunction) C_Matrix_Translation, METH_O | METH_CLASS, C_Matrix_Translation_doc}, + {"OrthoProjection", (PyCFunction) C_Matrix_OrthoProjection, METH_VARARGS | METH_CLASS, C_Matrix_OrthoProjection_doc}, + {NULL, NULL, 0, NULL} +}; + +/*------------------PY_OBECT DEFINITION--------------------------*/ +PyDoc_STRVAR(matrix_doc, +"This object gives access to Matrices in Blender." +); +PyTypeObject matrix_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "mathutils.Matrix", /*tp_name*/ + sizeof(MatrixObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)BaseMathObject_dealloc, /*tp_dealloc*/ + NULL, /*tp_print*/ + NULL, /*tp_getattr*/ + NULL, /*tp_setattr*/ + NULL, /*tp_compare*/ + (reprfunc) Matrix_repr, /*tp_repr*/ + &Matrix_NumMethods, /*tp_as_number*/ + &Matrix_SeqMethods, /*tp_as_sequence*/ + &Matrix_AsMapping, /*tp_as_mapping*/ + NULL, /*tp_hash*/ + NULL, /*tp_call*/ + NULL, /*tp_str*/ + NULL, /*tp_getattro*/ + NULL, /*tp_setattro*/ + NULL, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + matrix_doc, /*tp_doc*/ + (traverseproc)BaseMathObject_traverse, //tp_traverse + (inquiry)BaseMathObject_clear, //tp_clear + (richcmpfunc)Matrix_richcmpr, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + NULL, /*tp_iter*/ + NULL, /*tp_iternext*/ + Matrix_methods, /*tp_methods*/ + NULL, /*tp_members*/ + Matrix_getseters, /*tp_getset*/ + NULL, /*tp_base*/ + NULL, /*tp_dict*/ + NULL, /*tp_descr_get*/ + NULL, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + NULL, /*tp_init*/ + NULL, /*tp_alloc*/ + Matrix_new, /*tp_new*/ + NULL, /*tp_free*/ + NULL, /*tp_is_gc*/ + NULL, /*tp_bases*/ + NULL, /*tp_mro*/ + NULL, /*tp_cache*/ + NULL, /*tp_subclasses*/ + NULL, /*tp_weaklist*/ + NULL /*tp_del*/ +}; + +/*------------------------newMatrixObject (internal)------------- +creates a new matrix object +self->matrix self->contiguous_ptr (reference to data.xxx) + [0]------------->[0] + [1] + [2] + [1]------------->[3] + [4] + [5] + +self->matrix[1][1] = self->contigPtr[4] */ + +/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER + (i.e. it was allocated elsewhere by MEM_mallocN()) + pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON + (i.e. it must be created here with PyMEM_malloc())*/ +PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsigned short colSize, int type, PyTypeObject *base_type) +{ + MatrixObject *self; + int x, row, col; + + /*matrix objects can be any 2-4row x 2-4col matrix*/ + if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) { + PyErr_SetString(PyExc_RuntimeError, + "Matrix(): " + "row and column sizes must be between 2 and 4"); + return NULL; + } + + self= base_type ? (MatrixObject *)base_type->tp_alloc(base_type, 0) : + (MatrixObject *)PyObject_GC_New(MatrixObject, &matrix_Type); + + if(self) { + self->row_size = rowSize; + self->col_size = colSize; + + /* init callbacks as NULL */ + self->cb_user= NULL; + self->cb_type= self->cb_subtype= 0; + + if(type == Py_WRAP){ + self->contigPtr = mat; + /*pointer array points to contigous memory*/ + for(x = 0; x < rowSize; x++) { + self->matrix[x] = self->contigPtr + (x * colSize); + } + self->wrapped = Py_WRAP; + } + else if (type == Py_NEW){ + self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float)); + if(self->contigPtr == NULL) { /*allocation failure*/ + PyErr_SetString(PyExc_MemoryError, + "Matrix(): " + "problem allocating pointer space"); + return NULL; + } + /*pointer array points to contigous memory*/ + for(x = 0; x < rowSize; x++) { + self->matrix[x] = self->contigPtr + (x * colSize); + } + /*parse*/ + if(mat) { /*if a float array passed*/ + for(row = 0; row < rowSize; row++) { + for(col = 0; col < colSize; col++) { + self->matrix[row][col] = mat[(row * colSize) + col]; + } + } + } + else if (rowSize == colSize) { /*or if no arguments are passed return identity matrix for square matrices */ + PyObject *ret_dummy= Matrix_identity(self); + Py_DECREF(ret_dummy); + } + self->wrapped = Py_NEW; + } + else { + Py_FatalError("Matrix(): invalid type!"); + return NULL; + } + } + return (PyObject *) self; +} + +PyObject *newMatrixObject_cb(PyObject *cb_user, int rowSize, int colSize, int cb_type, int cb_subtype) +{ + MatrixObject *self= (MatrixObject *)newMatrixObject(NULL, rowSize, colSize, Py_NEW, NULL); + if(self) { + Py_INCREF(cb_user); + self->cb_user= cb_user; + self->cb_type= (unsigned char)cb_type; + self->cb_subtype= (unsigned char)cb_subtype; + PyObject_GC_Track(self); + } + return (PyObject *) self; +} diff --git a/source/blender/python/mathutils/mathutils_Matrix.h b/source/blender/python/mathutils/mathutils_Matrix.h new file mode 100644 index 00000000000..aa736d1e959 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Matrix.h @@ -0,0 +1,63 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/python/generic/mathutils_Matrix.h + * \ingroup pygen + */ + + +#ifndef MATHUTILS_MATRIX_H +#define MATHUTILS_MATRIX_H + +extern PyTypeObject matrix_Type; +#define MatrixObject_Check(_v) PyObject_TypeCheck((_v), &matrix_Type) +#define MATRIX_MAX_DIM 4 + +typedef struct { + BASE_MATH_MEMBERS(contigPtr) + float *matrix[MATRIX_MAX_DIM]; /* ptr to the contigPtr (accessor) */ + unsigned short row_size; + unsigned short col_size; +} MatrixObject; + +/*struct data contains a pointer to the actual data that the +object uses. It can use either PyMem allocated data (which will +be stored in py_data) or be a wrapper for data allocated through +blender (stored in blend_data). This is an either/or struct not both*/ + +/*prototypes*/ +PyObject *newMatrixObject(float *mat, const unsigned short row_size, const unsigned short col_size, int type, PyTypeObject *base_type); +PyObject *newMatrixObject_cb(PyObject *user, int row_size, int col_size, int cb_type, int cb_subtype); + +extern int mathutils_matrix_vector_cb_index; +extern struct Mathutils_Callback mathutils_matrix_vector_cb; + +void matrix_as_3x3(float mat[3][3], MatrixObject *self); + +#endif /* MATHUTILS_MATRIX_H */ diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c new file mode 100644 index 00000000000..3b05b9a250b --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Quaternion.c @@ -0,0 +1,1164 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * + * Contributor(s): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_Quaternion.c + * \ingroup pygen + */ + + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#define QUAT_SIZE 4 + +static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self); +static PyObject *Quaternion_copy(QuaternionObject *self); + +//-----------------------------METHODS------------------------------ + +/* note: BaseMath_ReadCallback must be called beforehand */ +static PyObject *Quaternion_to_tuple_ext(QuaternionObject *self, int ndigits) +{ + PyObject *ret; + int i; + + ret= PyTuple_New(QUAT_SIZE); + + if(ndigits >= 0) { + for(i= 0; i < QUAT_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->quat[i], ndigits))); + } + } + else { + for(i= 0; i < QUAT_SIZE; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->quat[i])); + } + } + + return ret; +} + +PyDoc_STRVAR(Quaternion_to_euler_doc, +".. method:: to_euler(order, euler_compat)\n" +"\n" +" Return Euler representation of the quaternion.\n" +"\n" +" :arg order: Optional rotation order argument in\n" +" ['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'].\n" +" :type order: string\n" +" :arg euler_compat: Optional euler argument the new euler will be made\n" +" compatible with (no axis flipping between them).\n" +" Useful for converting a series of matrices to animation curves.\n" +" :type euler_compat: :class:`Euler`\n" +" :return: Euler representation of the quaternion.\n" +" :rtype: :class:`Euler`\n" +); +static PyObject *Quaternion_to_euler(QuaternionObject *self, PyObject *args) +{ + float tquat[4]; + float eul[3]; + const char *order_str= NULL; + short order= EULER_ORDER_XYZ; + EulerObject *eul_compat = NULL; + + if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) + return NULL; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(order_str) { + order= euler_order_from_string(order_str, "Matrix.to_euler()"); + + if(order == -1) + return NULL; + } + + normalize_qt_qt(tquat, self->quat); + + if(eul_compat) { + float mat[3][3]; + + if(BaseMath_ReadCallback(eul_compat) == -1) + return NULL; + + quat_to_mat3(mat, tquat); + + if(order == EULER_ORDER_XYZ) mat3_to_compatible_eul(eul, eul_compat->eul, mat); + else mat3_to_compatible_eulO(eul, eul_compat->eul, order, mat); + } + else { + if(order == EULER_ORDER_XYZ) quat_to_eul(eul, tquat); + else quat_to_eulO(eul, order, tquat); + } + + return newEulerObject(eul, order, Py_NEW, NULL); +} +//----------------------------Quaternion.toMatrix()------------------ +PyDoc_STRVAR(Quaternion_to_matrix_doc, +".. method:: to_matrix()\n" +"\n" +" Return a matrix representation of the quaternion.\n" +"\n" +" :return: A 3x3 rotation matrix representation of the quaternion.\n" +" :rtype: :class:`Matrix`\n" +); +static PyObject *Quaternion_to_matrix(QuaternionObject *self) +{ + float mat[9]; /* all values are set */ + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + quat_to_mat3((float (*)[3])mat, self->quat); + return newMatrixObject(mat, 3, 3, Py_NEW, NULL); +} + +//----------------------------Quaternion.cross(other)------------------ +PyDoc_STRVAR(Quaternion_cross_doc, +".. method:: cross(other)\n" +"\n" +" Return the cross product of this quaternion and another.\n" +"\n" +" :arg other: The other quaternion to perform the cross product with.\n" +" :type other: :class:`Quaternion`\n" +" :return: The cross product.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_cross(QuaternionObject *self, PyObject *value) +{ + float quat[QUAT_SIZE], tquat[QUAT_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.cross(other), invalid 'other' arg") == -1) + return NULL; + + mul_qt_qtqt(quat, self->quat, tquat); + return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); +} + +//----------------------------Quaternion.dot(other)------------------ +PyDoc_STRVAR(Quaternion_dot_doc, +".. method:: dot(other)\n" +"\n" +" Return the dot product of this quaternion and another.\n" +"\n" +" :arg other: The other quaternion to perform the dot product with.\n" +" :type other: :class:`Quaternion`\n" +" :return: The dot product.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_dot(QuaternionObject *self, PyObject *value) +{ + float tquat[QUAT_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.dot(other), invalid 'other' arg") == -1) + return NULL; + + return PyFloat_FromDouble(dot_qtqt(self->quat, tquat)); +} + +PyDoc_STRVAR(Quaternion_rotation_difference_doc, +".. function:: difference(other)\n" +"\n" +" Returns a quaternion representing the rotational difference.\n" +"\n" +" :arg other: second quaternion.\n" +" :type other: :class:`Quaternion`\n" +" :return: the rotational difference between the two quat rotations.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_rotation_difference(QuaternionObject *self, PyObject *value) +{ + float tquat[QUAT_SIZE], quat[QUAT_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.difference(other), invalid 'other' arg") == -1) + return NULL; + + rotation_between_quats_to_quat(quat, self->quat, tquat); + + return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Quaternion_slerp_doc, +".. function:: slerp(other, factor)\n" +"\n" +" Returns the interpolation of two quaternions.\n" +"\n" +" :arg other: value to interpolate with.\n" +" :type other: :class:`Quaternion`\n" +" :arg factor: The interpolation value in [0.0, 1.0].\n" +" :type factor: float\n" +" :return: The interpolated rotation.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) +{ + PyObject *value; + float tquat[QUAT_SIZE], quat[QUAT_SIZE], fac; + + if(!PyArg_ParseTuple(args, "Of:slerp", &value, &fac)) { + PyErr_SetString(PyExc_TypeError, + "quat.slerp(): " + "expected Quaternion types and float"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.slerp(other), invalid 'other' arg") == -1) + return NULL; + + if(fac > 1.0f || fac < 0.0f) { + PyErr_SetString(PyExc_ValueError, + "quat.slerp(): " + "interpolation factor must be between 0.0 and 1.0"); + return NULL; + } + + interp_qt_qtqt(quat, self->quat, tquat, fac); + + return newQuaternionObject(quat, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Quaternion_rotate_doc, +".. method:: rotate(other)\n" +"\n" +" Rotates the quaternion a by another mathutils value.\n" +"\n" +" :arg other: rotation component of mathutils value\n" +" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" +); +static PyObject *Quaternion_rotate(QuaternionObject *self, PyObject *value) +{ + float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; + float tquat[4], length; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_any_to_rotmat(other_rmat, value, "quaternion.rotate(value)") == -1) + return NULL; + + length= normalize_qt_qt(tquat, self->quat); + quat_to_mat3(self_rmat, tquat); + mul_m3_m3m3(rmat, self_rmat, other_rmat); + + mat3_to_quat(self->quat, rmat); + mul_qt_fl(self->quat, length); /* maintain length after rotating */ + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +//----------------------------Quaternion.normalize()---------------- +//normalize the axis of rotation of [theta, vector] +PyDoc_STRVAR(Quaternion_normalize_doc, +".. function:: normalize()\n" +"\n" +" Normalize the quaternion.\n" +); +static PyObject *Quaternion_normalize(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + normalize_qt(self->quat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +PyDoc_STRVAR(Quaternion_normalized_doc, +".. function:: normalized()\n" +"\n" +" Return a new normalized quaternion.\n" +"\n" +" :return: a normalized copy.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_normalized(QuaternionObject *self) +{ + return quat__apply_to_copy((PyNoArgsFunction)Quaternion_normalize, self); +} + +//----------------------------Quaternion.invert()------------------ +PyDoc_STRVAR(Quaternion_invert_doc, +".. function:: invert()\n" +"\n" +" Set the quaternion to its inverse.\n" +); +static PyObject *Quaternion_invert(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + invert_qt(self->quat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +PyDoc_STRVAR(Quaternion_inverted_doc, +".. function:: inverted()\n" +"\n" +" Return a new, inverted quaternion.\n" +"\n" +" :return: the inverted value.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_inverted(QuaternionObject *self) +{ + return quat__apply_to_copy((PyNoArgsFunction)Quaternion_invert, self); +} + +//----------------------------Quaternion.identity()----------------- +PyDoc_STRVAR(Quaternion_identity_doc, +".. function:: identity()\n" +"\n" +" Set the quaternion to an identity quaternion.\n" +"\n" +" :return: an instance of itself.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_identity(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + unit_qt(self->quat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +//----------------------------Quaternion.negate()------------------- +PyDoc_STRVAR(Quaternion_negate_doc, +".. function:: negate()\n" +"\n" +" Set the quaternion to its negative.\n" +"\n" +" :return: an instance of itself.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_negate(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + mul_qt_fl(self->quat, -1.0f); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +//----------------------------Quaternion.conjugate()---------------- +PyDoc_STRVAR(Quaternion_conjugate_doc, +".. function:: conjugate()\n" +"\n" +" Set the quaternion to its conjugate (negate x, y, z).\n" +); +static PyObject *Quaternion_conjugate(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + conjugate_qt(self->quat); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +PyDoc_STRVAR(Quaternion_conjugated_doc, +".. function:: conjugated()\n" +"\n" +" Return a new conjugated quaternion.\n" +"\n" +" :return: a new quaternion.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Quaternion_conjugated(QuaternionObject *self) +{ + return quat__apply_to_copy((PyNoArgsFunction)Quaternion_conjugate, self); +} + +//----------------------------Quaternion.copy()---------------- +PyDoc_STRVAR(Quaternion_copy_doc, +".. function:: copy()\n" +"\n" +" Returns a copy of this quaternion.\n" +"\n" +" :return: A copy of the quaternion.\n" +" :rtype: :class:`Quaternion`\n" +"\n" +" .. note:: use this to get a copy of a wrapped quaternion with\n" +" no reference to the original data.\n" +); +static PyObject *Quaternion_copy(QuaternionObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return newQuaternionObject(self->quat, Py_NEW, Py_TYPE(self)); +} + +//----------------------------print object (internal)-------------- +//print the object to screen +static PyObject *Quaternion_repr(QuaternionObject *self) +{ + PyObject *ret, *tuple; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + tuple= Quaternion_to_tuple_ext(self, -1); + + ret= PyUnicode_FromFormat("Quaternion(%R)", tuple); + + Py_DECREF(tuple); + return ret; +} + +static PyObject* Quaternion_richcmpr(PyObject *a, PyObject *b, int op) +{ + PyObject *res; + int ok= -1; /* zero is true */ + + if (QuaternionObject_Check(a) && QuaternionObject_Check(b)) { + QuaternionObject *quatA= (QuaternionObject *)a; + QuaternionObject *quatB= (QuaternionObject *)b; + + if(BaseMath_ReadCallback(quatA) == -1 || BaseMath_ReadCallback(quatB) == -1) + return NULL; + + ok= (EXPP_VectorsAreEqual(quatA->quat, quatB->quat, QUAT_SIZE, 1)) ? 0 : -1; + } + + switch (op) { + case Py_NE: + ok = !ok; /* pass through */ + case Py_EQ: + res = ok ? Py_False : Py_True; + break; + + case Py_LT: + case Py_LE: + case Py_GT: + case Py_GE: + res = Py_NotImplemented; + break; + default: + PyErr_BadArgument(); + return NULL; + } + + return Py_INCREF(res), res; +} + +//---------------------SEQUENCE PROTOCOLS------------------------ +//----------------------------len(object)------------------------ +//sequence length +static int Quaternion_len(QuaternionObject *UNUSED(self)) +{ + return QUAT_SIZE; +} +//----------------------------object[]--------------------------- +//sequence accessor (get) +static PyObject *Quaternion_item(QuaternionObject *self, int i) +{ + if(i<0) i= QUAT_SIZE-i; + + if(i < 0 || i >= QUAT_SIZE) { + PyErr_SetString(PyExc_IndexError, + "quaternion[attribute]: " + "array index out of range"); + return NULL; + } + + if(BaseMath_ReadIndexCallback(self, i) == -1) + return NULL; + + return PyFloat_FromDouble(self->quat[i]); + +} +//----------------------------object[]------------------------- +//sequence accessor (set) +static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob) +{ + float scalar= (float)PyFloat_AsDouble(ob); + if(scalar==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ + PyErr_SetString(PyExc_TypeError, + "quaternion[index] = x: " + "index argument not a number"); + return -1; + } + + if(i<0) i= QUAT_SIZE-i; + + if(i < 0 || i >= QUAT_SIZE){ + PyErr_SetString(PyExc_IndexError, + "quaternion[attribute] = x: " + "array assignment index out of range"); + return -1; + } + self->quat[i] = scalar; + + if(BaseMath_WriteIndexCallback(self, i) == -1) + return -1; + + return 0; +} +//----------------------------object[z:y]------------------------ +//sequence slice (get) +static PyObject *Quaternion_slice(QuaternionObject *self, int begin, int end) +{ + PyObject *tuple; + int count; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + CLAMP(begin, 0, QUAT_SIZE); + if (end<0) end= (QUAT_SIZE + 1) + end; + CLAMP(end, 0, QUAT_SIZE); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + for(count= begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->quat[count])); + } + + return tuple; +} +//----------------------------object[z:y]------------------------ +//sequence slice (set) +static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyObject *seq) +{ + int i, size; + float quat[QUAT_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + CLAMP(begin, 0, QUAT_SIZE); + if (end<0) end= (QUAT_SIZE + 1) + end; + CLAMP(end, 0, QUAT_SIZE); + begin = MIN2(begin, end); + + if((size=mathutils_array_parse(quat, 0, QUAT_SIZE, seq, "mathutils.Quaternion[begin:end] = []")) == -1) + return -1; + + if(size != (end - begin)){ + PyErr_SetString(PyExc_ValueError, + "quaternion[begin:end] = []: " + "size mismatch in slice assignment"); + return -1; + } + + /* parsed well - now set in vector */ + for(i= 0; i < size; i++) + self->quat[begin + i] = quat[i]; + + (void)BaseMath_WriteCallback(self); + return 0; +} + + +static PyObject *Quaternion_subscript(QuaternionObject *self, PyObject *item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += QUAT_SIZE; + return Quaternion_item(self, i); + } else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, QUAT_SIZE, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Quaternion_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with quaternions"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "quaternion indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + + +static int Quaternion_ass_subscript(QuaternionObject *self, PyObject *item, PyObject *value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += QUAT_SIZE; + return Quaternion_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, QUAT_SIZE, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Quaternion_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with quaternion"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "quaternion indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + +//------------------------NUMERIC PROTOCOLS---------------------- +//------------------------obj + obj------------------------------ +//addition +static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) +{ + float quat[QUAT_SIZE]; + QuaternionObject *quat1 = NULL, *quat2 = NULL; + + if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { + PyErr_SetString(PyExc_TypeError, + "Quaternion addition: " + "arguments not valid for this operation"); + return NULL; + } + quat1 = (QuaternionObject*)q1; + quat2 = (QuaternionObject*)q2; + + if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) + return NULL; + + add_qt_qtqt(quat, quat1->quat, quat2->quat, 1.0f); + return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); +} +//------------------------obj - obj------------------------------ +//subtraction +static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) +{ + int x; + float quat[QUAT_SIZE]; + QuaternionObject *quat1 = NULL, *quat2 = NULL; + + if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { + PyErr_SetString(PyExc_TypeError, + "Quaternion addition: " + "arguments not valid for this operation"); + return NULL; + } + + quat1 = (QuaternionObject*)q1; + quat2 = (QuaternionObject*)q2; + + if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) + return NULL; + + for(x = 0; x < QUAT_SIZE; x++) { + quat[x] = quat1->quat[x] - quat2->quat[x]; + } + + return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); +} + +static PyObject *quat_mul_float(QuaternionObject *quat, const float scalar) +{ + float tquat[4]; + copy_qt_qt(tquat, quat->quat); + mul_qt_fl(tquat, scalar); + return newQuaternionObject(tquat, Py_NEW, Py_TYPE(quat)); +} + +//------------------------obj * obj------------------------------ +//mulplication +static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) +{ + float quat[QUAT_SIZE], scalar; + QuaternionObject *quat1 = NULL, *quat2 = NULL; + + if(QuaternionObject_Check(q1)) { + quat1 = (QuaternionObject*)q1; + if(BaseMath_ReadCallback(quat1) == -1) + return NULL; + } + if(QuaternionObject_Check(q2)) { + quat2 = (QuaternionObject*)q2; + if(BaseMath_ReadCallback(quat2) == -1) + return NULL; + } + + if(quat1 && quat2) { /* QUAT*QUAT (cross product) */ + mul_qt_qtqt(quat, quat1->quat, quat2->quat); + return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); + } + /* the only case this can happen (for a supported type is "FLOAT*QUAT") */ + else if(quat2) { /* FLOAT*QUAT */ + if(((scalar= PyFloat_AsDouble(q1)) == -1.0f && PyErr_Occurred())==0) { + return quat_mul_float(quat2, scalar); + } + } + else if (quat1) { /* QUAT*FLOAT */ + if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { + return quat_mul_float(quat1, scalar); + } + } + else { + BLI_assert(!"internal error"); + } + + PyErr_Format(PyExc_TypeError, + "Quaternion multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(q1)->tp_name, Py_TYPE(q2)->tp_name); + return NULL; +} + +/* -obj + returns the negative of this object*/ +static PyObject *Quaternion_neg(QuaternionObject *self) +{ + float tquat[QUAT_SIZE]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + negate_v4_v4(tquat, self->quat); + return newQuaternionObject(tquat, Py_NEW, Py_TYPE(self)); +} + + +//-----------------PROTOCOL DECLARATIONS-------------------------- +static PySequenceMethods Quaternion_SeqMethods = { + (lenfunc) Quaternion_len, /* sq_length */ + (binaryfunc) NULL, /* sq_concat */ + (ssizeargfunc) NULL, /* sq_repeat */ + (ssizeargfunc) Quaternion_item, /* sq_item */ + (ssizessizeargfunc) NULL, /* sq_slice, deprecated */ + (ssizeobjargproc) Quaternion_ass_item, /* sq_ass_item */ + (ssizessizeobjargproc) NULL, /* sq_ass_slice, deprecated */ + (objobjproc) NULL, /* sq_contains */ + (binaryfunc) NULL, /* sq_inplace_concat */ + (ssizeargfunc) NULL, /* sq_inplace_repeat */ +}; + +static PyMappingMethods Quaternion_AsMapping = { + (lenfunc)Quaternion_len, + (binaryfunc)Quaternion_subscript, + (objobjargproc)Quaternion_ass_subscript +}; + +static PyNumberMethods Quaternion_NumMethods = { + (binaryfunc) Quaternion_add, /*nb_add*/ + (binaryfunc) Quaternion_sub, /*nb_subtract*/ + (binaryfunc) Quaternion_mul, /*nb_multiply*/ + NULL, /*nb_remainder*/ + NULL, /*nb_divmod*/ + NULL, /*nb_power*/ + (unaryfunc) Quaternion_neg, /*nb_negative*/ + (unaryfunc) 0, /*tp_positive*/ + (unaryfunc) 0, /*tp_absolute*/ + (inquiry) 0, /*tp_bool*/ + (unaryfunc) 0, /*nb_invert*/ + NULL, /*nb_lshift*/ + (binaryfunc)0, /*nb_rshift*/ + NULL, /*nb_and*/ + NULL, /*nb_xor*/ + NULL, /*nb_or*/ + NULL, /*nb_int*/ + NULL, /*nb_reserved*/ + NULL, /*nb_float*/ + NULL, /* nb_inplace_add */ + NULL, /* nb_inplace_subtract */ + NULL, /* nb_inplace_multiply */ + NULL, /* nb_inplace_remainder */ + NULL, /* nb_inplace_power */ + NULL, /* nb_inplace_lshift */ + NULL, /* nb_inplace_rshift */ + NULL, /* nb_inplace_and */ + NULL, /* nb_inplace_xor */ + NULL, /* nb_inplace_or */ + NULL, /* nb_floor_divide */ + NULL, /* nb_true_divide */ + NULL, /* nb_inplace_floor_divide */ + NULL, /* nb_inplace_true_divide */ + NULL, /* nb_index */ +}; + +static PyObject *Quaternion_getAxis(QuaternionObject *self, void *type) +{ + return Quaternion_item(self, GET_INT_FROM_POINTER(type)); +} + +static int Quaternion_setAxis(QuaternionObject *self, PyObject *value, void *type) +{ + return Quaternion_ass_item(self, GET_INT_FROM_POINTER(type), value); +} + +static PyObject *Quaternion_getMagnitude(QuaternionObject *self, void *UNUSED(closure)) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return PyFloat_FromDouble(sqrt(dot_qtqt(self->quat, self->quat))); +} + +static PyObject *Quaternion_getAngle(QuaternionObject *self, void *UNUSED(closure)) +{ + float tquat[4]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + normalize_qt_qt(tquat, self->quat); + return PyFloat_FromDouble(2.0f * (saacos(tquat[0]))); +} + +static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UNUSED(closure)) +{ + float tquat[4]; + float len; + + float axis[3], angle_dummy; + double angle; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + len= normalize_qt_qt(tquat, self->quat); + quat_to_axis_angle(axis, &angle_dummy, tquat); + + angle= PyFloat_AsDouble(value); + + if(angle==-1.0 && PyErr_Occurred()) { /* parsed item not a number */ + PyErr_SetString(PyExc_TypeError, + "quaternion.angle = value: float expected"); + return -1; + } + + angle= angle_wrap_rad(angle); + + /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ + if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && + EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && + EXPP_FloatsAreEqual(axis[2], 0.0f, 10) + ) { + axis[0] = 1.0f; + } + + axis_angle_to_quat(self->quat, axis, angle); + mul_qt_fl(self->quat, len); + + if(BaseMath_WriteCallback(self) == -1) + return -1; + + return 0; +} + +static PyObject *Quaternion_getAxisVec(QuaternionObject *self, void *UNUSED(closure)) +{ + float tquat[4]; + + float axis[3]; + float angle; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + normalize_qt_qt(tquat, self->quat); + quat_to_axis_angle(axis, &angle, tquat); + + /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ + if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && + EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && + EXPP_FloatsAreEqual(axis[2], 0.0f, 10) + ) { + axis[0] = 1.0f; + } + + return (PyObject *) newVectorObject(axis, 3, Py_NEW, NULL); +} + +static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void *UNUSED(closure)) +{ + float tquat[4]; + float len; + + float axis[3]; + float angle; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + len= normalize_qt_qt(tquat, self->quat); + quat_to_axis_angle(axis, &angle, tquat); /* axis value is unused */ + + if (mathutils_array_parse(axis, 3, 3, value, "quat.axis = other") == -1) + return -1; + + axis_angle_to_quat(self->quat, axis, angle); + mul_qt_fl(self->quat, len); + + if(BaseMath_WriteCallback(self) == -1) + return -1; + + return 0; +} + +//----------------------------------mathutils.Quaternion() -------------- +static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + PyObject *seq= NULL; + double angle = 0.0f; + float quat[QUAT_SIZE]= {0.0f, 0.0f, 0.0f, 0.0f}; + + if(kwds && PyDict_Size(kwds)) { + PyErr_SetString(PyExc_TypeError, + "mathutils.Quaternion(): " + "takes no keyword args"); + return NULL; + } + + if(!PyArg_ParseTuple(args, "|Od:mathutils.Quaternion", &seq, &angle)) + return NULL; + + switch(PyTuple_GET_SIZE(args)) { + case 0: + break; + case 1: + if (mathutils_array_parse(quat, QUAT_SIZE, QUAT_SIZE, seq, "mathutils.Quaternion()") == -1) + return NULL; + break; + case 2: + if (mathutils_array_parse(quat, 3, 3, seq, "mathutils.Quaternion()") == -1) + return NULL; + angle= angle_wrap_rad(angle); /* clamp because of precision issues */ + axis_angle_to_quat(quat, quat, angle); + break; + /* PyArg_ParseTuple assures no more then 2 */ + } + return newQuaternionObject(quat, Py_NEW, type); +} + +static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self) +{ + PyObject *ret= Quaternion_copy(self); + PyObject *ret_dummy= quat_func(ret); + if(ret_dummy) { + Py_DECREF(ret_dummy); + return (PyObject *)ret; + } + else { /* error */ + Py_DECREF(ret); + return NULL; + } +} + +//-----------------------METHOD DEFINITIONS ---------------------- +static struct PyMethodDef Quaternion_methods[] = { + /* in place only */ + {"identity", (PyCFunction) Quaternion_identity, METH_NOARGS, Quaternion_identity_doc}, + {"negate", (PyCFunction) Quaternion_negate, METH_NOARGS, Quaternion_negate_doc}, + + /* operate on original or copy */ + {"conjugate", (PyCFunction) Quaternion_conjugate, METH_NOARGS, Quaternion_conjugate_doc}, + {"conjugated", (PyCFunction) Quaternion_conjugated, METH_NOARGS, Quaternion_conjugated_doc}, + + {"invert", (PyCFunction) Quaternion_invert, METH_NOARGS, Quaternion_invert_doc}, + {"inverted", (PyCFunction) Quaternion_inverted, METH_NOARGS, Quaternion_inverted_doc}, + + {"normalize", (PyCFunction) Quaternion_normalize, METH_NOARGS, Quaternion_normalize_doc}, + {"normalized", (PyCFunction) Quaternion_normalized, METH_NOARGS, Quaternion_normalized_doc}, + + /* return converted representation */ + {"to_euler", (PyCFunction) Quaternion_to_euler, METH_VARARGS, Quaternion_to_euler_doc}, + {"to_matrix", (PyCFunction) Quaternion_to_matrix, METH_NOARGS, Quaternion_to_matrix_doc}, + + /* operation between 2 or more types */ + {"cross", (PyCFunction) Quaternion_cross, METH_O, Quaternion_cross_doc}, + {"dot", (PyCFunction) Quaternion_dot, METH_O, Quaternion_dot_doc}, + {"rotation_difference", (PyCFunction) Quaternion_rotation_difference, METH_O, Quaternion_rotation_difference_doc}, + {"slerp", (PyCFunction) Quaternion_slerp, METH_VARARGS, Quaternion_slerp_doc}, + {"rotate", (PyCFunction) Quaternion_rotate, METH_O, Quaternion_rotate_doc}, + + {"__copy__", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc}, + {"copy", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc}, + {NULL, NULL, 0, NULL} +}; + +/*****************************************************************************/ +/* Python attributes get/set structure: */ +/*****************************************************************************/ +static PyGetSetDef Quaternion_getseters[] = { + {(char *)"w", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion W value.\n\n:type: float", (void *)0}, + {(char *)"x", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion X axis.\n\n:type: float", (void *)1}, + {(char *)"y", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion Y axis.\n\n:type: float", (void *)2}, + {(char *)"z", (getter)Quaternion_getAxis, (setter)Quaternion_setAxis, (char *)"Quaternion Z axis.\n\n:type: float", (void *)3}, + {(char *)"magnitude", (getter)Quaternion_getMagnitude, (setter)NULL, (char *)"Size of the quaternion (readonly).\n\n:type: float", NULL}, + {(char *)"angle", (getter)Quaternion_getAngle, (setter)Quaternion_setAngle, (char *)"angle of the quaternion.\n\n:type: float", NULL}, + {(char *)"axis",(getter)Quaternion_getAxisVec, (setter)Quaternion_setAxisVec, (char *)"quaternion axis as a vector.\n\n:type: :class:`Vector`", NULL}, + {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, + {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, + {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ +}; + +//------------------PY_OBECT DEFINITION-------------------------- +PyDoc_STRVAR(quaternion_doc, +"This object gives access to Quaternions in Blender." +); +PyTypeObject quaternion_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "mathutils.Quaternion", //tp_name + sizeof(QuaternionObject), //tp_basicsize + 0, //tp_itemsize + (destructor)BaseMathObject_dealloc, //tp_dealloc + NULL, //tp_print + NULL, //tp_getattr + NULL, //tp_setattr + NULL, //tp_compare + (reprfunc) Quaternion_repr, //tp_repr + &Quaternion_NumMethods, //tp_as_number + &Quaternion_SeqMethods, //tp_as_sequence + &Quaternion_AsMapping, //tp_as_mapping + NULL, //tp_hash + NULL, //tp_call + NULL, //tp_str + NULL, //tp_getattro + NULL, //tp_setattro + NULL, //tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags + quaternion_doc, //tp_doc + (traverseproc)BaseMathObject_traverse, //tp_traverse + (inquiry)BaseMathObject_clear, //tp_clear + (richcmpfunc)Quaternion_richcmpr, //tp_richcompare + 0, //tp_weaklistoffset + NULL, //tp_iter + NULL, //tp_iternext + Quaternion_methods, //tp_methods + NULL, //tp_members + Quaternion_getseters, //tp_getset + NULL, //tp_base + NULL, //tp_dict + NULL, //tp_descr_get + NULL, //tp_descr_set + 0, //tp_dictoffset + NULL, //tp_init + NULL, //tp_alloc + Quaternion_new, //tp_new + NULL, //tp_free + NULL, //tp_is_gc + NULL, //tp_bases + NULL, //tp_mro + NULL, //tp_cache + NULL, //tp_subclasses + NULL, //tp_weaklist + NULL, //tp_del +}; +//------------------------newQuaternionObject (internal)------------- +//creates a new quaternion object +/*pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER + (i.e. it was allocated elsewhere by MEM_mallocN()) + pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON + (i.e. it must be created here with PyMEM_malloc())*/ +PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) +{ + QuaternionObject *self; + + self= base_type ? (QuaternionObject *)base_type->tp_alloc(base_type, 0) : + (QuaternionObject *)PyObject_GC_New(QuaternionObject, &quaternion_Type); + + if(self) { + /* init callbacks as NULL */ + self->cb_user= NULL; + self->cb_type= self->cb_subtype= 0; + + if(type == Py_WRAP){ + self->quat = quat; + self->wrapped = Py_WRAP; + } + else if (type == Py_NEW){ + self->quat = PyMem_Malloc(QUAT_SIZE * sizeof(float)); + if(!quat) { //new empty + unit_qt(self->quat); + } + else { + QUATCOPY(self->quat, quat); + } + self->wrapped = Py_NEW; + } + else { + Py_FatalError("Quaternion(): invalid type!"); + } + } + return (PyObject *) self; +} + +PyObject *newQuaternionObject_cb(PyObject *cb_user, int cb_type, int cb_subtype) +{ + QuaternionObject *self= (QuaternionObject *)newQuaternionObject(NULL, Py_NEW, NULL); + if(self) { + Py_INCREF(cb_user); + self->cb_user= cb_user; + self->cb_type= (unsigned char)cb_type; + self->cb_subtype= (unsigned char)cb_subtype; + PyObject_GC_Track(self); + } + + return (PyObject *)self; +} + diff --git a/source/blender/python/mathutils/mathutils_Quaternion.h b/source/blender/python/mathutils/mathutils_Quaternion.h new file mode 100644 index 00000000000..d606621390a --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Quaternion.h @@ -0,0 +1,55 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/python/generic/mathutils_Quaternion.h + * \ingroup pygen + */ + + +#ifndef MATHUTILS_QUAT_H +#define MATHUTILS_QUAT_H + +extern PyTypeObject quaternion_Type; +#define QuaternionObject_Check(_v) PyObject_TypeCheck((_v), &quaternion_Type) + +typedef struct { + BASE_MATH_MEMBERS(quat) +} QuaternionObject; + +/*struct data contains a pointer to the actual data that the +object uses. It can use either PyMem allocated data (which will +be stored in py_data) or be a wrapper for data allocated through +blender (stored in blend_data). This is an either/or struct not both*/ + +//prototypes +PyObject *newQuaternionObject( float *quat, int type, PyTypeObject *base_type); +PyObject *newQuaternionObject_cb(PyObject *cb_user, int cb_type, int cb_subtype); + +#endif /* MATHUTILS_QUAT_H */ diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c new file mode 100644 index 00000000000..e2c958adaa5 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -0,0 +1,2410 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * + * Contributor(s): Willian P. Germano, Joseph Gilbert, Ken Hughes, Alex Fraser, Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_Vector.c + * \ingroup pygen + */ + + +#include + +#include "mathutils.h" + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#define MAX_DIMENSIONS 4 + +/* Swizzle axes get packed into a single value that is used as a closure. Each + axis uses SWIZZLE_BITS_PER_AXIS bits. The first bit (SWIZZLE_VALID_AXIS) is + used as a sentinel: if it is unset, the axis is not valid. */ +#define SWIZZLE_BITS_PER_AXIS 3 +#define SWIZZLE_VALID_AXIS 0x4 +#define SWIZZLE_AXIS 0x3 + +static PyObject *Vector_copy(VectorObject *self); +static PyObject *Vector_to_tuple_ext(VectorObject *self, int ndigits); + +/* Supports 2D, 3D, and 4D vector objects both int and float values + * accepted. Mixed float and int values accepted. Ints are parsed to float + */ +static PyObject *Vector_new(PyTypeObject *type, PyObject *args, PyObject *UNUSED(kwds)) +{ + float vec[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + int size= 3; /* default to a 3D vector */ + + switch(PyTuple_GET_SIZE(args)) { + case 0: + break; + case 1: + if((size=mathutils_array_parse(vec, 2, 4, PyTuple_GET_ITEM(args, 0), "mathutils.Vector()")) == -1) + return NULL; + break; + default: + PyErr_SetString(PyExc_TypeError, + "mathutils.Vector(): " + "more then a single arg given"); + return NULL; + } + return newVectorObject(vec, size, Py_NEW, type); +} + +static PyObject *vec__apply_to_copy(PyNoArgsFunction vec_func, VectorObject *self) +{ + PyObject *ret= Vector_copy(self); + PyObject *ret_dummy= vec_func(ret); + if(ret_dummy) { + Py_DECREF(ret_dummy); + return (PyObject *)ret; + } + else { /* error */ + Py_DECREF(ret); + return NULL; + } +} + +/*-----------------------------METHODS---------------------------- */ +PyDoc_STRVAR(Vector_zero_doc, +".. method:: zero()\n" +"\n" +" Set all values to zero.\n" +); +static PyObject *Vector_zero(VectorObject *self) +{ + fill_vn(self->vec, self->size, 0.0f); + + if(BaseMath_WriteCallback(self) == -1) + return NULL; + + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Vector_normalize_doc, +".. method:: normalize()\n" +"\n" +" Normalize the vector, making the length of the vector always 1.0.\n" +"\n" +" .. warning:: Normalizing a vector where all values are zero results\n" +" in all axis having a nan value (not a number).\n" +"\n" +" .. note:: Normalize works for vectors of all sizes,\n" +" however 4D Vectors w axis is left untouched.\n" +); +static PyObject *Vector_normalize(VectorObject *self) +{ + int i; + float norm = 0.0f; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + for(i = 0; i < self->size; i++) { + norm += self->vec[i] * self->vec[i]; + } + norm = (float) sqrt(norm); + for(i = 0; i < self->size; i++) { + self->vec[i] /= norm; + } + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} +PyDoc_STRVAR(Vector_normalized_doc, +".. method:: normalized()\n" +"\n" +" Return a new, normalized vector.\n" +"\n" +" :return: a normalized copy of the vector\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_normalized(VectorObject *self) +{ + return vec__apply_to_copy((PyNoArgsFunction)Vector_normalize, self); +} + +PyDoc_STRVAR(Vector_resize_2d_doc, +".. method:: resize_2d()\n" +"\n" +" Resize the vector to 2D (x, y).\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_resize_2d(VectorObject *self) +{ + if(self->wrapped==Py_WRAP) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_2d(): " + "cannot resize wrapped data - only python vectors"); + return NULL; + } + if(self->cb_user) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_2d(): " + "cannot resize a vector that has an owner"); + return NULL; + } + + self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 2)); + if(self->vec == NULL) { + PyErr_SetString(PyExc_MemoryError, + "vector.resize_2d(): " + "problem allocating pointer space"); + return NULL; + } + + self->size = 2; + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Vector_resize_3d_doc, +".. method:: resize_3d()\n" +"\n" +" Resize the vector to 3D (x, y, z).\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_resize_3d(VectorObject *self) +{ + if (self->wrapped==Py_WRAP) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_3d(): " + "cannot resize wrapped data - only python vectors"); + return NULL; + } + if(self->cb_user) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_3d(): " + "cannot resize a vector that has an owner"); + return NULL; + } + + self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 3)); + if(self->vec == NULL) { + PyErr_SetString(PyExc_MemoryError, + "vector.resize_3d(): " + "problem allocating pointer space"); + return NULL; + } + + if(self->size == 2) + self->vec[2] = 0.0f; + + self->size = 3; + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Vector_resize_4d_doc, +".. method:: resize_4d()\n" +"\n" +" Resize the vector to 4D (x, y, z, w).\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_resize_4d(VectorObject *self) +{ + if(self->wrapped==Py_WRAP) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_4d(): " + "cannot resize wrapped data - only python vectors"); + return NULL; + } + if(self->cb_user) { + PyErr_SetString(PyExc_TypeError, + "vector.resize_4d(): " + "cannot resize a vector that has an owner"); + return NULL; + } + + self->vec = PyMem_Realloc(self->vec, (sizeof(float) * 4)); + if(self->vec == NULL) { + PyErr_SetString(PyExc_MemoryError, + "vector.resize_4d(): " + "problem allocating pointer space"); + return NULL; + } + + if(self->size == 2){ + self->vec[2] = 0.0f; + self->vec[3] = 1.0f; + } + else if(self->size == 3){ + self->vec[3] = 1.0f; + } + self->size = 4; + Py_RETURN_NONE; +} +PyDoc_STRVAR(Vector_to_2d_doc, +".. method:: to_2d()\n" +"\n" +" Return a 2d copy of the vector.\n" +"\n" +" :return: a new vector\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_to_2d(VectorObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return newVectorObject(self->vec, 2, Py_NEW, Py_TYPE(self)); +} +PyDoc_STRVAR(Vector_to_3d_doc, +".. method:: to_3d()\n" +"\n" +" Return a 3d copy of the vector.\n" +"\n" +" :return: a new vector\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_to_3d(VectorObject *self) +{ + float tvec[3]= {0.0f}; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 3)); + return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(self)); +} +PyDoc_STRVAR(Vector_to_4d_doc, +".. method:: to_4d()\n" +"\n" +" Return a 4d copy of the vector.\n" +"\n" +" :return: a new vector\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_to_4d(VectorObject *self) +{ + float tvec[4]= {0.0f, 0.0f, 0.0f, 1.0f}; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 4)); + return newVectorObject(tvec, 4, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Vector_to_tuple_doc, +".. method:: to_tuple(precision=-1)\n" +"\n" +" Return this vector as a tuple with.\n" +"\n" +" :arg precision: The number to round the value to in [-1, 21].\n" +" :type precision: int\n" +" :return: the values of the vector rounded by *precision*\n" +" :rtype: tuple\n" +); +/* note: BaseMath_ReadCallback must be called beforehand */ +static PyObject *Vector_to_tuple_ext(VectorObject *self, int ndigits) +{ + PyObject *ret; + int i; + + ret= PyTuple_New(self->size); + + if(ndigits >= 0) { + for(i = 0; i < self->size; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->vec[i], ndigits))); + } + } + else { + for(i = 0; i < self->size; i++) { + PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->vec[i])); + } + } + + return ret; +} + +static PyObject *Vector_to_tuple(VectorObject *self, PyObject *args) +{ + int ndigits= 0; + + if(!PyArg_ParseTuple(args, "|i:to_tuple", &ndigits)) + return NULL; + + if(ndigits > 22 || ndigits < 0) { + PyErr_SetString(PyExc_ValueError, + "vector.to_tuple(ndigits): " + "ndigits must be between 0 and 21"); + return NULL; + } + + if(PyTuple_GET_SIZE(args)==0) + ndigits= -1; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return Vector_to_tuple_ext(self, ndigits); +} + +PyDoc_STRVAR(Vector_to_track_quat_doc, +".. method:: to_track_quat(track, up)\n" +"\n" +" Return a quaternion rotation from the vector and the track and up axis.\n" +"\n" +" :arg track: Track axis in ['X', 'Y', 'Z', '-X', '-Y', '-Z'].\n" +" :type track: string\n" +" :arg up: Up axis in ['X', 'Y', 'Z'].\n" +" :type up: string\n" +" :return: rotation from the vector and the track and up axis.\n" +" :rtype: :class:`Quaternion`\n" +); +static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args) +{ + float vec[3], quat[4]; + const char *strack, *sup; + short track = 2, up = 1; + + if(!PyArg_ParseTuple(args, "|ss:to_track_quat", &strack, &sup)) + return NULL; + + if (self->size != 3) { + PyErr_SetString(PyExc_TypeError, + "vector.to_track_quat(): " + "only for 3D vectors"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if (strack) { + const char *axis_err_msg= "only X, -X, Y, -Y, Z or -Z for track axis"; + + if (strlen(strack) == 2) { + if (strack[0] == '-') { + switch(strack[1]) { + case 'X': + track = 3; + break; + case 'Y': + track = 4; + break; + case 'Z': + track = 5; + break; + default: + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + else { + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + else if (strlen(strack) == 1) { + switch(strack[0]) { + case '-': + case 'X': + track = 0; + break; + case 'Y': + track = 1; + break; + case 'Z': + track = 2; + break; + default: + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + else { + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + + if (sup) { + const char *axis_err_msg= "only X, Y or Z for up axis"; + if (strlen(sup) == 1) { + switch(*sup) { + case 'X': + up = 0; + break; + case 'Y': + up = 1; + break; + case 'Z': + up = 2; + break; + default: + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + else { + PyErr_SetString(PyExc_ValueError, axis_err_msg); + return NULL; + } + } + + if (track == up) { + PyErr_SetString(PyExc_ValueError, + "Can't have the same axis for track and up"); + return NULL; + } + + /* + flip vector around, since vectoquat expect a vector from target to tracking object + and the python function expects the inverse (a vector to the target). + */ + negate_v3_v3(vec, self->vec); + + vec_to_quat(quat, vec, track, up); + + return newQuaternionObject(quat, Py_NEW, NULL); +} + +/* + * Vector.reflect(mirror): return a reflected vector on the mirror normal + * vec - ((2 * DotVecs(vec, mirror)) * mirror) + */ +PyDoc_STRVAR(Vector_reflect_doc, +".. method:: reflect(mirror)\n" +"\n" +" Return the reflection vector from the *mirror* argument.\n" +"\n" +" :arg mirror: This vector could be a normal from the reflecting surface.\n" +" :type mirror: :class:`Vector`\n" +" :return: The reflected vector matching the size of this vector.\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_reflect(VectorObject *self, PyObject *value) +{ + int value_size; + float mirror[3], vec[3]; + float reflect[3] = {0.0f}; + float tvec[MAX_DIMENSIONS]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if((value_size= mathutils_array_parse(tvec, 2, 4, value, "vector.reflect(other), invalid 'other' arg")) == -1) + return NULL; + + mirror[0] = tvec[0]; + mirror[1] = tvec[1]; + if (value_size > 2) mirror[2] = tvec[2]; + else mirror[2] = 0.0; + + vec[0] = self->vec[0]; + vec[1] = self->vec[1]; + if (self->size > 2) vec[2] = self->vec[2]; + else vec[2] = 0.0; + + normalize_v3(mirror); + reflect_v3_v3v3(reflect, vec, mirror); + + return newVectorObject(reflect, self->size, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Vector_cross_doc, +".. method:: cross(other)\n" +"\n" +" Return the cross product of this vector and another.\n" +"\n" +" :arg other: The other vector to perform the cross product with.\n" +" :type other: :class:`Vector`\n" +" :return: The cross product.\n" +" :rtype: :class:`Vector`\n" +"\n" +" .. note:: both vectors must be 3D\n" +); +static PyObject *Vector_cross(VectorObject *self, PyObject *value) +{ + VectorObject *ret; + float tvec[MAX_DIMENSIONS]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.cross(other), invalid 'other' arg") == -1) + return NULL; + + ret= (VectorObject *)newVectorObject(NULL, 3, Py_NEW, Py_TYPE(self)); + cross_v3_v3v3(ret->vec, self->vec, tvec); + return (PyObject *)ret; +} + +PyDoc_STRVAR(Vector_dot_doc, +".. method:: dot(other)\n" +"\n" +" Return the dot product of this vector and another.\n" +"\n" +" :arg other: The other vector to perform the dot product with.\n" +" :type other: :class:`Vector`\n" +" :return: The dot product.\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_dot(VectorObject *self, PyObject *value) +{ + float tvec[MAX_DIMENSIONS]; + double dot = 0.0; + int x; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.dot(other), invalid 'other' arg") == -1) + return NULL; + + for(x = 0; x < self->size; x++) { + dot += (double)(self->vec[x] * tvec[x]); + } + + return PyFloat_FromDouble(dot); +} + +PyDoc_STRVAR(Vector_angle_doc, +".. function:: angle(other, fallback)\n" +"\n" +" Return the angle between two vectors.\n" +"\n" +" :arg other: another vector to compare the angle with\n" +" :type other: :class:`Vector`\n" +" :arg fallback: return this value when the angle cant be calculated\n" +" (zero length vector)\n" +" :type fallback: any\n" +" :return: angle in radians or fallback when given\n" +" :rtype: float\n" +"\n" +" .. note:: Zero length vectors raise an :exc:`AttributeError`.\n" +); +static PyObject *Vector_angle(VectorObject *self, PyObject *args) +{ + const int size= self->size; + float tvec[MAX_DIMENSIONS]; + PyObject *value; + double dot = 0.0f, test_v1 = 0.0f, test_v2 = 0.0f; + int x; + PyObject *fallback= NULL; + + if(!PyArg_ParseTuple(args, "O|O:angle", &value, &fallback)) + return NULL; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tvec, size, size, value, "vector.angle(other), invalid 'other' arg") == -1) + return NULL; + + for(x = 0; x < size; x++) { + test_v1 += (double)(self->vec[x] * self->vec[x]); + test_v2 += (double)(tvec[x] * tvec[x]); + } + if (!test_v1 || !test_v2){ + /* avoid exception */ + if(fallback) { + Py_INCREF(fallback); + return fallback; + } + else { + PyErr_SetString(PyExc_ValueError, + "vector.angle(other): " + "zero length vectors have no valid angle"); + return NULL; + } + } + + //dot product + for(x = 0; x < self->size; x++) { + dot += (double)(self->vec[x] * tvec[x]); + } + dot /= (sqrt(test_v1) * sqrt(test_v2)); + + return PyFloat_FromDouble(saacos(dot)); +} + +PyDoc_STRVAR(Vector_rotation_difference_doc, +".. function:: difference(other)\n" +"\n" +" Returns a quaternion representing the rotational difference between this\n" +" vector and another.\n" +"\n" +" :arg other: second vector.\n" +" :type other: :class:`Vector`\n" +" :return: the rotational difference between the two vectors.\n" +" :rtype: :class:`Quaternion`\n" +"\n" +" .. note:: 2D vectors raise an :exc:`AttributeError`.\n" +); +static PyObject *Vector_rotation_difference(VectorObject *self, PyObject *value) +{ + float quat[4], vec_a[3], vec_b[3]; + + if(self->size < 3) { + PyErr_SetString(PyExc_ValueError, + "vec.difference(value): " + "expects both vectors to be size 3 or 4"); + return NULL; + } + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(vec_b, 3, MAX_DIMENSIONS, value, "vector.difference(other), invalid 'other' arg") == -1) + return NULL; + + normalize_v3_v3(vec_a, self->vec); + normalize_v3(vec_b); + + rotation_between_vecs_to_quat(quat, vec_a, vec_b); + + return newQuaternionObject(quat, Py_NEW, NULL); +} + +PyDoc_STRVAR(Vector_project_doc, +".. function:: project(other)\n" +"\n" +" Return the projection of this vector onto the *other*.\n" +"\n" +" :arg other: second vector.\n" +" :type other: :class:`Vector`\n" +" :return: the parallel projection vector\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_project(VectorObject *self, PyObject *value) +{ + const int size= self->size; + float tvec[MAX_DIMENSIONS]; + float vec[MAX_DIMENSIONS]; + double dot = 0.0f, dot2 = 0.0f; + int x; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_array_parse(tvec, size, size, value, "vector.project(other), invalid 'other' arg") == -1) + return NULL; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + //get dot products + for(x = 0; x < size; x++) { + dot += (double)(self->vec[x] * tvec[x]); + dot2 += (double)(tvec[x] * tvec[x]); + } + //projection + dot /= dot2; + for(x = 0; x < size; x++) { + vec[x] = (float)dot * tvec[x]; + } + return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Vector_lerp_doc, +".. function:: lerp(other, factor)\n" +"\n" +" Returns the interpolation of two vectors.\n" +"\n" +" :arg other: value to interpolate with.\n" +" :type other: :class:`Vector`\n" +" :arg factor: The interpolation value in [0.0, 1.0].\n" +" :type factor: float\n" +" :return: The interpolated rotation.\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_lerp(VectorObject *self, PyObject *args) +{ + const int size= self->size; + PyObject *value= NULL; + float fac, ifac; + float tvec[MAX_DIMENSIONS], vec[MAX_DIMENSIONS]; + int x; + + if(!PyArg_ParseTuple(args, "Of:lerp", &value, &fac)) + return NULL; + + if(mathutils_array_parse(tvec, size, size, value, "vector.lerp(other), invalid 'other' arg") == -1) + return NULL; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + ifac= 1.0f - fac; + + for(x = 0; x < size; x++) { + vec[x] = (ifac * self->vec[x]) + (fac * tvec[x]); + } + return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); +} + +PyDoc_STRVAR(Vector_rotate_doc, +".. function:: rotate(other)\n" +"\n" +" Return vector by a rotation value.\n" +"\n" +" :arg other: rotation component of mathutils value\n" +" :type other: :class:`Euler`, :class:`Quaternion` or :class:`Matrix`\n" +); +static PyObject *Vector_rotate(VectorObject *self, PyObject *value) +{ + float other_rmat[3][3]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + if(mathutils_any_to_rotmat(other_rmat, value, "vector.rotate(value)") == -1) + return NULL; + + if(self->size < 3) { + PyErr_SetString(PyExc_ValueError, + "Vector must be 3D or 4D"); + return NULL; + } + + mul_m3_v3(other_rmat, self->vec); + + (void)BaseMath_WriteCallback(self); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(Vector_copy_doc, +".. function:: copy()\n" +"\n" +" Returns a copy of this vector.\n" +"\n" +" :return: A copy of the vector.\n" +" :rtype: :class:`Vector`\n" +"\n" +" .. note:: use this to get a copy of a wrapped vector with\n" +" no reference to the original data.\n" +); +static PyObject *Vector_copy(VectorObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + return newVectorObject(self->vec, self->size, Py_NEW, Py_TYPE(self)); +} + +static PyObject *Vector_repr(VectorObject *self) +{ + PyObject *ret, *tuple; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + tuple= Vector_to_tuple_ext(self, -1); + ret= PyUnicode_FromFormat("Vector(%R)", tuple); + Py_DECREF(tuple); + return ret; +} + +/* Sequence Protocol */ +/* sequence length len(vector) */ +static int Vector_len(VectorObject *self) +{ + return self->size; +} +/* sequence accessor (get): vector[index] */ +static PyObject *vector_item_internal(VectorObject *self, int i, const int is_attr) +{ + if(i<0) i= self->size-i; + + if(i < 0 || i >= self->size) { + if(is_attr) { + PyErr_Format(PyExc_AttributeError, + "vector.%c: unavailable on %dd vector", + *(((char *)"xyzw") + i), self->size); + } + else { + PyErr_SetString(PyExc_IndexError, + "vector[index]: out of range"); + } + return NULL; + } + + if(BaseMath_ReadIndexCallback(self, i) == -1) + return NULL; + + return PyFloat_FromDouble(self->vec[i]); +} + +static PyObject *Vector_item(VectorObject *self, int i) +{ + return vector_item_internal(self, i, FALSE); +} +/* sequence accessor (set): vector[index] = value */ +static int vector_ass_item_internal(VectorObject *self, int i, PyObject *value, const int is_attr) +{ + float scalar; + if((scalar=PyFloat_AsDouble(value))==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ + PyErr_SetString(PyExc_TypeError, + "vector[index] = x: " + "index argument not a number"); + return -1; + } + + if(i<0) i= self->size-i; + + if(i < 0 || i >= self->size){ + if(is_attr) { + PyErr_Format(PyExc_AttributeError, + "vector.%c = x: unavailable on %dd vector", + *(((char *)"xyzw") + i), self->size); + } + else { + PyErr_SetString(PyExc_IndexError, + "vector[index] = x: " + "assignment index out of range"); + } + return -1; + } + self->vec[i] = scalar; + + if(BaseMath_WriteIndexCallback(self, i) == -1) + return -1; + return 0; +} + +static int Vector_ass_item(VectorObject *self, int i, PyObject *value) +{ + return vector_ass_item_internal(self, i, value, FALSE); +} + +/* sequence slice (get): vector[a:b] */ +static PyObject *Vector_slice(VectorObject *self, int begin, int end) +{ + PyObject *tuple; + int count; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + CLAMP(begin, 0, self->size); + if (end<0) end= self->size+end+1; + CLAMP(end, 0, self->size); + begin= MIN2(begin, end); + + tuple= PyTuple_New(end - begin); + for(count = begin; count < end; count++) { + PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->vec[count])); + } + + return tuple; +} +/* sequence slice (set): vector[a:b] = value */ +static int Vector_ass_slice(VectorObject *self, int begin, int end, PyObject *seq) +{ + int y, size = 0; + float vec[MAX_DIMENSIONS]; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + CLAMP(begin, 0, self->size); + CLAMP(end, 0, self->size); + begin = MIN2(begin, end); + + size = (end - begin); + if(mathutils_array_parse(vec, size, size, seq, "vector[begin:end] = [...]") == -1) + return -1; + + /*parsed well - now set in vector*/ + for(y = 0; y < size; y++){ + self->vec[begin + y] = vec[y]; + } + + if(BaseMath_WriteCallback(self) == -1) + return -1; + + return 0; +} + +/* Numeric Protocols */ +/* addition: obj + obj */ +static PyObject *Vector_add(PyObject *v1, PyObject *v2) +{ + VectorObject *vec1 = NULL, *vec2 = NULL; + float vec[MAX_DIMENSIONS]; + + if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "arguments not valid for this operation"); + return NULL; + } + vec1 = (VectorObject*)v1; + vec2 = (VectorObject*)v2; + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) + return NULL; + + /*VECTOR + VECTOR*/ + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "vectors must have the same dimensions for this operation"); + return NULL; + } + + add_vn_vnvn(vec, vec1->vec, vec2->vec, vec1->size); + + return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); +} + +/* addition in-place: obj += obj */ +static PyObject *Vector_iadd(PyObject *v1, PyObject *v2) +{ + VectorObject *vec1 = NULL, *vec2 = NULL; + + if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "arguments not valid for this operation"); + return NULL; + } + vec1 = (VectorObject*)v1; + vec2 = (VectorObject*)v2; + + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_AttributeError, + "Vector addition: " + "vectors must have the same dimensions for this operation"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) + return NULL; + + add_vn_vn(vec1->vec, vec2->vec, vec1->size); + + (void)BaseMath_WriteCallback(vec1); + Py_INCREF(v1); + return v1; +} + +/* subtraction: obj - obj */ +static PyObject *Vector_sub(PyObject *v1, PyObject *v2) +{ + VectorObject *vec1 = NULL, *vec2 = NULL; + float vec[MAX_DIMENSIONS]; + + if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "arguments not valid for this operation"); + return NULL; + } + vec1 = (VectorObject*)v1; + vec2 = (VectorObject*)v2; + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) + return NULL; + + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "vectors must have the same dimensions for this operation"); + return NULL; + } + + sub_vn_vnvn(vec, vec1->vec, vec2->vec, vec1->size); + + return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); +} + +/* subtraction in-place: obj -= obj */ +static PyObject *Vector_isub(PyObject *v1, PyObject *v2) +{ + VectorObject *vec1= NULL, *vec2= NULL; + + if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "arguments not valid for this operation"); + return NULL; + } + vec1 = (VectorObject*)v1; + vec2 = (VectorObject*)v2; + + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_AttributeError, + "Vector subtraction: " + "vectors must have the same dimensions for this operation"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1) + return NULL; + + sub_vn_vn(vec1->vec, vec2->vec, vec1->size); + + (void)BaseMath_WriteCallback(vec1); + Py_INCREF(v1); + return v1; +} + +/*------------------------obj * obj------------------------------ + mulplication*/ + + +/* COLUMN VECTOR Multiplication (Vector X Matrix) + * [a] * [1][4][7] + * [b] * [2][5][8] + * [c] * [3][6][9] + * + * note: vector/matrix multiplication IS NOT COMMUTATIVE!!!! + * note: assume read callbacks have been done first. + */ +static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) +{ + float vec_cpy[MAX_DIMENSIONS]; + double dot = 0.0f; + int x, y, z = 0; + + if(mat->row_size != vec->size){ + if(mat->row_size == 4 && vec->size == 3) { + vec_cpy[3] = 1.0f; + } + else { + PyErr_SetString(PyExc_TypeError, + "matrix * vector: " + "matrix.row_size and len(vector) must be the same, " + "except for 3D vector * 4x4 matrix."); + return -1; + } + } + + memcpy(vec_cpy, vec->vec, vec->size * sizeof(float)); + + rvec[3] = 1.0f; + + for(x = 0; x < mat->col_size; x++) { + for(y = 0; y < mat->row_size; y++) { + dot += (double)(mat->matrix[y][x] * vec_cpy[y]); + } + rvec[z++] = (float)dot; + dot = 0.0f; + } + + return 0; +} + +static PyObject *vector_mul_float(VectorObject *vec, const float scalar) +{ + float tvec[MAX_DIMENSIONS]; + mul_vn_vn_fl(tvec, vec->vec, vec->size, scalar); + return newVectorObject(tvec, vec->size, Py_NEW, Py_TYPE(vec)); +} + +static PyObject *Vector_mul(PyObject *v1, PyObject *v2) +{ + VectorObject *vec1 = NULL, *vec2 = NULL; + float scalar; + + if VectorObject_Check(v1) { + vec1= (VectorObject *)v1; + if(BaseMath_ReadCallback(vec1) == -1) + return NULL; + } + if VectorObject_Check(v2) { + vec2= (VectorObject *)v2; + if(BaseMath_ReadCallback(vec2) == -1) + return NULL; + } + + + /* make sure v1 is always the vector */ + if (vec1 && vec2) { + int i; + double dot = 0.0f; + + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_ValueError, + "Vector multiplication: " + "vectors must have the same dimensions for this operation"); + return NULL; + } + + /*dot product*/ + for(i = 0; i < vec1->size; i++) { + dot += (double)(vec1->vec[i] * vec2->vec[i]); + } + return PyFloat_FromDouble(dot); + } + else if (vec1) { + if (MatrixObject_Check(v2)) { + /* VEC * MATRIX */ + float tvec[MAX_DIMENSIONS]; + if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) + return NULL; + if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) { + return NULL; + } + + return newVectorObject(tvec, vec1->size, Py_NEW, Py_TYPE(vec1)); + } + else if (QuaternionObject_Check(v2)) { + /* VEC * QUAT */ + QuaternionObject *quat2 = (QuaternionObject*)v2; + float tvec[3]; + + if(vec1->size != 3) { + PyErr_SetString(PyExc_ValueError, + "Vector multiplication: " + "only 3D vector rotations (with quats) currently supported"); + return NULL; + } + if(BaseMath_ReadCallback(quat2) == -1) { + return NULL; + } + copy_v3_v3(tvec, vec1->vec); + mul_qt_v3(quat2->quat, tvec); + return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); + } + else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */ + return vector_mul_float(vec1, scalar); + } + } + else if (vec2) { + if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * VEC */ + return vector_mul_float(vec2, scalar); + } + } + else { + BLI_assert(!"internal error"); + } + + PyErr_Format(PyExc_TypeError, + "Vector multiplication: " + "not supported between '%.200s' and '%.200s' types", + Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); + return NULL; +} + +/* mulplication in-place: obj *= obj */ +static PyObject *Vector_imul(PyObject *v1, PyObject *v2) +{ + VectorObject *vec = (VectorObject *)v1; + float scalar; + + if(BaseMath_ReadCallback(vec) == -1) + return NULL; + + /* only support vec*=float and vec*=mat + vec*=vec result is a float so that wont work */ + if (MatrixObject_Check(v2)) { + float rvec[MAX_DIMENSIONS]; + if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) + return NULL; + + if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) + return NULL; + + memcpy(vec->vec, rvec, sizeof(float) * vec->size); + } + else if (QuaternionObject_Check(v2)) { + /* VEC *= QUAT */ + QuaternionObject *quat2 = (QuaternionObject*)v2; + + if(vec->size != 3) { + PyErr_SetString(PyExc_ValueError, + "Vector multiplication: " + "only 3D vector rotations (with quats) currently supported"); + return NULL; + } + + if(BaseMath_ReadCallback(quat2) == -1) { + return NULL; + } + mul_qt_v3(quat2->quat, vec->vec); + } + else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ + mul_vn_fl(vec->vec, vec->size, scalar); + } + else { + PyErr_SetString(PyExc_TypeError, + "Vector multiplication: " + "arguments not acceptable for this operation"); + return NULL; + } + + (void)BaseMath_WriteCallback(vec); + Py_INCREF(v1); + return v1; +} + +/* divid: obj / obj */ +static PyObject *Vector_div(PyObject *v1, PyObject *v2) +{ + int i; + float vec[4], scalar; + VectorObject *vec1 = NULL; + + if(!VectorObject_Check(v1)) { /* not a vector */ + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); + return NULL; + } + vec1 = (VectorObject*)v1; /* vector */ + + if(BaseMath_ReadCallback(vec1) == -1) + return NULL; + + if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); + return NULL; + } + + if(scalar==0.0f) { + PyErr_SetString(PyExc_ZeroDivisionError, + "Vector division: " + "divide by zero error"); + return NULL; + } + + for(i = 0; i < vec1->size; i++) { + vec[i] = vec1->vec[i] / scalar; + } + return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); +} + +/* divide in-place: obj /= obj */ +static PyObject *Vector_idiv(PyObject *v1, PyObject *v2) +{ + int i; + float scalar; + VectorObject *vec1 = (VectorObject*)v1; + + if(BaseMath_ReadCallback(vec1) == -1) + return NULL; + + if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */ + PyErr_SetString(PyExc_TypeError, + "Vector division: " + "Vector must be divided by a float"); + return NULL; + } + + if(scalar==0.0f) { + PyErr_SetString(PyExc_ZeroDivisionError, + "Vector division: " + "divide by zero error"); + return NULL; + } + for(i = 0; i < vec1->size; i++) { + vec1->vec[i] /= scalar; + } + + (void)BaseMath_WriteCallback(vec1); + + Py_INCREF(v1); + return v1; +} + +/* -obj + returns the negative of this object*/ +static PyObject *Vector_neg(VectorObject *self) +{ + float tvec[MAX_DIMENSIONS]; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + negate_vn_vn(tvec, self->vec, self->size); + return newVectorObject(tvec, self->size, Py_NEW, Py_TYPE(self)); +} + +/*------------------------vec_magnitude_nosqrt (internal) - for comparing only */ +static double vec_magnitude_nosqrt(float *data, int size) +{ + double dot = 0.0f; + int i; + + for(i=0; isize != vecB->size){ + if (comparison_type == Py_NE){ + Py_RETURN_TRUE; + } + else { + Py_RETURN_FALSE; + } + } + + switch (comparison_type){ + case Py_LT: + lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); + lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); + if(lenA < lenB){ + result = 1; + } + break; + case Py_LE: + lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); + lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); + if(lenA < lenB){ + result = 1; + } + else { + result = (((lenA + epsilon) > lenB) && ((lenA - epsilon) < lenB)); + } + break; + case Py_EQ: + result = EXPP_VectorsAreEqual(vecA->vec, vecB->vec, vecA->size, 1); + break; + case Py_NE: + result = !EXPP_VectorsAreEqual(vecA->vec, vecB->vec, vecA->size, 1); + break; + case Py_GT: + lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); + lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); + if(lenA > lenB){ + result = 1; + } + break; + case Py_GE: + lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); + lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); + if(lenA > lenB){ + result = 1; + } + else { + result = (((lenA + epsilon) > lenB) && ((lenA - epsilon) < lenB)); + } + break; + default: + printf("The result of the comparison could not be evaluated"); + break; + } + if (result == 1){ + Py_RETURN_TRUE; + } + else { + Py_RETURN_FALSE; + } +} + +/*-----------------PROTCOL DECLARATIONS--------------------------*/ +static PySequenceMethods Vector_SeqMethods = { + (lenfunc) Vector_len, /* sq_length */ + (binaryfunc) NULL, /* sq_concat */ + (ssizeargfunc) NULL, /* sq_repeat */ + (ssizeargfunc) Vector_item, /* sq_item */ + NULL, /* py3 deprecated slice func */ + (ssizeobjargproc) Vector_ass_item, /* sq_ass_item */ + NULL, /* py3 deprecated slice assign func */ + (objobjproc) NULL, /* sq_contains */ + (binaryfunc) NULL, /* sq_inplace_concat */ + (ssizeargfunc) NULL, /* sq_inplace_repeat */ +}; + +static PyObject *Vector_subscript(VectorObject* self, PyObject* item) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += self->size; + return Vector_item(self, i); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->size, &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Vector_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with vectors"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "vector indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + +static int Vector_ass_subscript(VectorObject* self, PyObject* item, PyObject* value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += self->size; + return Vector_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->size, &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Vector_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with vectors"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "vector indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + +static PyMappingMethods Vector_AsMapping = { + (lenfunc)Vector_len, + (binaryfunc)Vector_subscript, + (objobjargproc)Vector_ass_subscript +}; + + +static PyNumberMethods Vector_NumMethods = { + (binaryfunc) Vector_add, /*nb_add*/ + (binaryfunc) Vector_sub, /*nb_subtract*/ + (binaryfunc) Vector_mul, /*nb_multiply*/ + NULL, /*nb_remainder*/ + NULL, /*nb_divmod*/ + NULL, /*nb_power*/ + (unaryfunc) Vector_neg, /*nb_negative*/ + (unaryfunc) NULL, /*tp_positive*/ + (unaryfunc) NULL, /*tp_absolute*/ + (inquiry) NULL, /*tp_bool*/ + (unaryfunc) NULL, /*nb_invert*/ + NULL, /*nb_lshift*/ + (binaryfunc)NULL, /*nb_rshift*/ + NULL, /*nb_and*/ + NULL, /*nb_xor*/ + NULL, /*nb_or*/ + NULL, /*nb_int*/ + NULL, /*nb_reserved*/ + NULL, /*nb_float*/ + Vector_iadd, /* nb_inplace_add */ + Vector_isub, /* nb_inplace_subtract */ + Vector_imul, /* nb_inplace_multiply */ + NULL, /* nb_inplace_remainder */ + NULL, /* nb_inplace_power */ + NULL, /* nb_inplace_lshift */ + NULL, /* nb_inplace_rshift */ + NULL, /* nb_inplace_and */ + NULL, /* nb_inplace_xor */ + NULL, /* nb_inplace_or */ + NULL, /* nb_floor_divide */ + Vector_div, /* nb_true_divide */ + NULL, /* nb_inplace_floor_divide */ + Vector_idiv, /* nb_inplace_true_divide */ + NULL, /* nb_index */ +}; + +/*------------------PY_OBECT DEFINITION--------------------------*/ + +/* + * vector axis, vector.x/y/z/w + */ + +static PyObject *Vector_getAxis(VectorObject *self, void *type) +{ + return vector_item_internal(self, GET_INT_FROM_POINTER(type), TRUE); +} + +static int Vector_setAxis(VectorObject *self, PyObject *value, void *type) +{ + return vector_ass_item_internal(self, GET_INT_FROM_POINTER(type), value, TRUE); +} + +/* vector.length */ +static PyObject *Vector_getLength(VectorObject *self, void *UNUSED(closure)) +{ + double dot = 0.0f; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + for(i = 0; i < self->size; i++){ + dot += (double)(self->vec[i] * self->vec[i]); + } + return PyFloat_FromDouble(sqrt(dot)); +} + +static int Vector_setLength(VectorObject *self, PyObject *value) +{ + double dot = 0.0f, param; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + if((param=PyFloat_AsDouble(value)) == -1.0 && PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "length must be set to a number"); + return -1; + } + + if (param < 0.0) { + PyErr_SetString(PyExc_ValueError, + "cannot set a vectors length to a negative value"); + return -1; + } + if (param == 0.0) { + fill_vn(self->vec, self->size, 0.0f); + return 0; + } + + for(i = 0; i < self->size; i++){ + dot += (double)(self->vec[i] * self->vec[i]); + } + + if (!dot) /* cant sqrt zero */ + return 0; + + dot = sqrt(dot); + + if (dot==param) + return 0; + + dot= dot/param; + + for(i = 0; i < self->size; i++){ + self->vec[i]= self->vec[i] / (float)dot; + } + + (void)BaseMath_WriteCallback(self); /* checked already */ + + return 0; +} + +/* Get a new Vector according to the provided swizzle. This function has little + error checking, as we are in control of the inputs: the closure is set by us + in Vector_createSwizzleGetSeter. */ +static PyObject *Vector_getSwizzle(VectorObject *self, void *closure) +{ + size_t axis_to; + size_t axis_from; + float vec[MAX_DIMENSIONS]; + unsigned int swizzleClosure; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + /* Unpack the axes from the closure into an array. */ + axis_to = 0; + swizzleClosure = GET_INT_FROM_POINTER(closure); + while (swizzleClosure & SWIZZLE_VALID_AXIS) + { + axis_from = swizzleClosure & SWIZZLE_AXIS; + if(axis_from >= self->size) { + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: " + "specified axis not present"); + return NULL; + } + + vec[axis_to] = self->vec[axis_from]; + swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; + axis_to++; + } + + return newVectorObject(vec, axis_to, Py_NEW, Py_TYPE(self)); +} + +/* Set the items of this vector using a swizzle. + - If value is a vector or list this operates like an array copy, except that + the destination is effectively re-ordered as defined by the swizzle. At + most min(len(source), len(dest)) values will be copied. + - If the value is scalar, it is copied to all axes listed in the swizzle. + - If an axis appears more than once in the swizzle, the final occurrence is + the one that determines its value. + + Returns 0 on success and -1 on failure. On failure, the vector will be + unchanged. */ +static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) +{ + size_t size_from; + float scalarVal; + + size_t axis_from; + size_t axis_to; + + unsigned int swizzleClosure; + + float tvec[MAX_DIMENSIONS]; + float vec_assign[MAX_DIMENSIONS]; + + if(BaseMath_ReadCallback(self) == -1) + return -1; + + /* Check that the closure can be used with this vector: even 2D vectors have + swizzles defined for axes z and w, but they would be invalid. */ + swizzleClosure = GET_INT_FROM_POINTER(closure); + axis_from= 0; + while (swizzleClosure & SWIZZLE_VALID_AXIS) { + axis_to = swizzleClosure & SWIZZLE_AXIS; + if (axis_to >= self->size) + { + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: " + "specified axis not present"); + return -1; + } + swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; + axis_from++; + } + + if (((scalarVal=PyFloat_AsDouble(value)) == -1 && PyErr_Occurred())==0) { + int i; + for(i=0; i < MAX_DIMENSIONS; i++) + vec_assign[i]= scalarVal; + + size_from= axis_from; + } + else if(PyErr_Clear(), (size_from=mathutils_array_parse(vec_assign, 2, 4, value, "mathutils.Vector.**** = swizzle assignment")) == -1) { + return -1; + } + + if(axis_from != size_from) { + PyErr_SetString(PyExc_AttributeError, + "Vector swizzle: size does not match swizzle"); + return -1; + } + + /* Copy vector contents onto swizzled axes. */ + axis_from = 0; + swizzleClosure = GET_INT_FROM_POINTER(closure); + while (swizzleClosure & SWIZZLE_VALID_AXIS) + { + axis_to = swizzleClosure & SWIZZLE_AXIS; + tvec[axis_to] = vec_assign[axis_from]; + swizzleClosure = swizzleClosure >> SWIZZLE_BITS_PER_AXIS; + axis_from++; + } + + memcpy(self->vec, tvec, axis_from * sizeof(float)); + /* continue with BaseMathObject_WriteCallback at the end */ + + if(BaseMath_WriteCallback(self) == -1) + return -1; + else + return 0; +} + +/*****************************************************************************/ +/* Python attributes get/set structure: */ +/*****************************************************************************/ +static PyGetSetDef Vector_getseters[] = { + {(char *)"x", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector X axis.\n\n:type: float", (void *)0}, + {(char *)"y", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Y axis.\n\n:type: float", (void *)1}, + {(char *)"z", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Z axis (3D Vectors only).\n\n:type: float", (void *)2}, + {(char *)"w", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector W axis (4D Vectors only).\n\n:type: float", (void *)3}, + {(char *)"length", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, + {(char *)"magnitude", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, + {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, + {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, + + /* autogenerated swizzle attrs, see python script below */ + {(char *)"xx", (getter)Vector_getSwizzle, (setter)NULL, NULL, SET_INT_IN_POINTER(((0|SWIZZLE_VALID_AXIS) | ((0|SWIZZLE_VALID_AXIS)<= 2: + + for axis_0 in axises: + axis_0_pos = axis_pos[axis_0] + for axis_1 in axises: + axis_1_pos = axis_pos[axis_1] + axis_dict[axis_0+axis_1] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<2: + for axis_2 in axises: + axis_2_pos = axis_pos[axis_2] + axis_dict[axis_0+axis_1+axis_2] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<3: + for axis_3 in axises: + axis_3_pos = axis_pos[axis_3] + axis_dict[axis_0+axis_1+axis_2+axis_3] = '((%s|SWIZZLE_VALID_AXIS) | ((%s|SWIZZLE_VALID_AXIS)<size; + + if(mat->colSize != vec_size){ + if(mat->colSize == 4 && vec_size != 3){ + PyErr_SetString(PyExc_ValueError, + "vector * matrix: matrix column size " + "and the vector size must be the same"); + return -1; + } + else { + vec_cpy[3] = 1.0f; + } + } + + if(BaseMath_ReadCallback(vec) == -1 || BaseMath_ReadCallback(mat) == -1) + return -1; + + memcpy(vec_cpy, vec->vec, vec_size * sizeof(float)); + + rvec[3] = 1.0f; + //muliplication + for(x = 0; x < mat->rowSize; x++) { + for(y = 0; y < mat->colSize; y++) { + dot += mat->matrix[x][y] * vec_cpy[y]; + } + rvec[z++] = (float)dot; + dot = 0.0f; + } + return 0; +} +#endif + +/*----------------------------Vector.negate() -------------------- */ +PyDoc_STRVAR(Vector_negate_doc, +".. method:: negate()\n" +"\n" +" Set all values to their negative.\n" +"\n" +" :return: an instance of itself\n" +" :rtype: :class:`Vector`\n" +); +static PyObject *Vector_negate(VectorObject *self) +{ + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + negate_vn(self->vec, self->size); + + (void)BaseMath_WriteCallback(self); // already checked for error + Py_RETURN_NONE; +} + +static struct PyMethodDef Vector_methods[] = { + /* in place only */ + {"zero", (PyCFunction) Vector_zero, METH_NOARGS, Vector_zero_doc}, + {"negate", (PyCFunction) Vector_negate, METH_NOARGS, Vector_negate_doc}, + + /* operate on original or copy */ + {"normalize", (PyCFunction) Vector_normalize, METH_NOARGS, Vector_normalize_doc}, + {"normalized", (PyCFunction) Vector_normalized, METH_NOARGS, Vector_normalized_doc}, + + {"to_2d", (PyCFunction) Vector_to_2d, METH_NOARGS, Vector_to_2d_doc}, + {"resize_2d", (PyCFunction) Vector_resize_2d, METH_NOARGS, Vector_resize_2d_doc}, + {"to_3d", (PyCFunction) Vector_to_3d, METH_NOARGS, Vector_to_3d_doc}, + {"resize_3d", (PyCFunction) Vector_resize_3d, METH_NOARGS, Vector_resize_3d_doc}, + {"to_4d", (PyCFunction) Vector_to_4d, METH_NOARGS, Vector_to_4d_doc}, + {"resize_4d", (PyCFunction) Vector_resize_4d, METH_NOARGS, Vector_resize_4d_doc}, + {"to_tuple", (PyCFunction) Vector_to_tuple, METH_VARARGS, Vector_to_tuple_doc}, + {"to_track_quat", (PyCFunction) Vector_to_track_quat, METH_VARARGS, Vector_to_track_quat_doc}, + + /* operation between 2 or more types */ + {"reflect", (PyCFunction) Vector_reflect, METH_O, Vector_reflect_doc}, + {"cross", (PyCFunction) Vector_cross, METH_O, Vector_cross_doc}, + {"dot", (PyCFunction) Vector_dot, METH_O, Vector_dot_doc}, + {"angle", (PyCFunction) Vector_angle, METH_VARARGS, Vector_angle_doc}, + {"rotation_difference", (PyCFunction) Vector_rotation_difference, METH_O, Vector_rotation_difference_doc}, + {"project", (PyCFunction) Vector_project, METH_O, Vector_project_doc}, + {"lerp", (PyCFunction) Vector_lerp, METH_VARARGS, Vector_lerp_doc}, + {"rotate", (PyCFunction) Vector_rotate, METH_O, Vector_rotate_doc}, + + {"copy", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc}, + {"__copy__", (PyCFunction) Vector_copy, METH_NOARGS, NULL}, + {NULL, NULL, 0, NULL} +}; + + +/* Note + Py_TPFLAGS_CHECKTYPES allows us to avoid casting all types to Vector when coercing + but this means for eg that + vec*mat and mat*vec both get sent to Vector_mul and it neesd to sort out the order +*/ + +PyDoc_STRVAR(vector_doc, +"This object gives access to Vectors in Blender." +); +PyTypeObject vector_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + /* For printing, in format "." */ + "mathutils.Vector", /* char *tp_name; */ + sizeof(VectorObject), /* int tp_basicsize; */ + 0, /* tp_itemsize; For allocation */ + + /* Methods to implement standard operations */ + + (destructor) BaseMathObject_dealloc,/* destructor tp_dealloc; */ + NULL, /* printfunc tp_print; */ + NULL, /* getattrfunc tp_getattr; */ + NULL, /* setattrfunc tp_setattr; */ + NULL, /* cmpfunc tp_compare; */ + (reprfunc)Vector_repr, /* reprfunc tp_repr; */ + + /* Method suites for standard classes */ + + &Vector_NumMethods, /* PyNumberMethods *tp_as_number; */ + &Vector_SeqMethods, /* PySequenceMethods *tp_as_sequence; */ + &Vector_AsMapping, /* PyMappingMethods *tp_as_mapping; */ + + /* More standard operations (here for binary compatibility) */ + + NULL, /* hashfunc tp_hash; */ + NULL, /* ternaryfunc tp_call; */ + NULL, /* reprfunc tp_str; */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ + + /* Functions to access object as input/output buffer */ + NULL, /* PyBufferProcs *tp_as_buffer; */ + + /*** Flags to define presence of optional/expanded features ***/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, + vector_doc, /* char *tp_doc; Documentation string */ + /*** Assigned meaning in release 2.0 ***/ + + /* call function for all accessible objects */ + (traverseproc)BaseMathObject_traverse, //tp_traverse + + /* delete references to contained objects */ + (inquiry)BaseMathObject_clear, //tp_clear + + /*** Assigned meaning in release 2.1 ***/ + /*** rich comparisons ***/ + (richcmpfunc)Vector_richcmpr, /* richcmpfunc tp_richcompare; */ + + /*** weak reference enabler ***/ + 0, /* long tp_weaklistoffset; */ + + /*** Added in release 2.2 ***/ + /* Iterators */ + NULL, /* getiterfunc tp_iter; */ + NULL, /* iternextfunc tp_iternext; */ + + /*** Attribute descriptor and subclassing stuff ***/ + Vector_methods, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMemberDef *tp_members; */ + Vector_getseters, /* struct PyGetSetDef *tp_getset; */ + NULL, /* struct _typeobject *tp_base; */ + NULL, /* PyObject *tp_dict; */ + NULL, /* descrgetfunc tp_descr_get; */ + NULL, /* descrsetfunc tp_descr_set; */ + 0, /* long tp_dictoffset; */ + NULL, /* initproc tp_init; */ + NULL, /* allocfunc tp_alloc; */ + Vector_new, /* newfunc tp_new; */ + /* Low-level free-memory routine */ + NULL, /* freefunc tp_free; */ + /* For PyObject_IS_GC */ + NULL, /* inquiry tp_is_gc; */ + NULL, /* PyObject *tp_bases; */ + /* method resolution order */ + NULL, /* PyObject *tp_mro; */ + NULL, /* PyObject *tp_cache; */ + NULL, /* PyObject *tp_subclasses; */ + NULL, /* PyObject *tp_weaklist; */ + NULL +}; + +/*------------------------newVectorObject (internal)------------- + creates a new vector object + pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER + (i.e. it was allocated elsewhere by MEM_mallocN()) + pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON + (i.e. it must be created here with PyMEM_malloc())*/ +PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObject *base_type) +{ + VectorObject *self; + + if(size > 4 || size < 2) { + PyErr_SetString(PyExc_RuntimeError, + "Vector(): invalid size"); + return NULL; + } + + self= base_type ? (VectorObject *)base_type->tp_alloc(base_type, 0) : + (VectorObject *)PyObject_GC_New(VectorObject, &vector_Type); + + if(self) { + self->size = size; + + /* init callbacks as NULL */ + self->cb_user= NULL; + self->cb_type= self->cb_subtype= 0; + + if(type == Py_WRAP) { + self->vec = vec; + self->wrapped = Py_WRAP; + } + else if (type == Py_NEW) { + self->vec= PyMem_Malloc(size * sizeof(float)); + if(vec) { + memcpy(self->vec, vec, size * sizeof(float)); + } + else { /* new empty */ + fill_vn(self->vec, size, 0.0f); + if(size == 4) { /* do the homogenous thing */ + self->vec[3] = 1.0f; + } + } + self->wrapped = Py_NEW; + } + else { + Py_FatalError("Vector(): invalid type!"); + } + } + return (PyObject *) self; +} + +PyObject *newVectorObject_cb(PyObject *cb_user, int size, int cb_type, int cb_subtype) +{ + float dummy[4] = {0.0, 0.0, 0.0, 0.0}; /* dummy init vector, callbacks will be used on access */ + VectorObject *self= (VectorObject *)newVectorObject(dummy, size, Py_NEW, NULL); + if(self) { + Py_INCREF(cb_user); + self->cb_user= cb_user; + self->cb_type= (unsigned char)cb_type; + self->cb_subtype= (unsigned char)cb_subtype; + PyObject_GC_Track(self); + } + + return (PyObject *)self; +} diff --git a/source/blender/python/mathutils/mathutils_Vector.h b/source/blender/python/mathutils/mathutils_Vector.h new file mode 100644 index 00000000000..0ede836ce44 --- /dev/null +++ b/source/blender/python/mathutils/mathutils_Vector.h @@ -0,0 +1,52 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Willian P. Germano & Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/python/generic/mathutils_Vector.h + * \ingroup pygen + */ + + +#ifndef MATHUTILS_VECTOR_H +#define MATHUTILS_VECTOR_H + +extern PyTypeObject vector_Type; +#define VectorObject_Check(_v) PyObject_TypeCheck((_v), &vector_Type) + +typedef struct { + BASE_MATH_MEMBERS(vec) + + unsigned char size; /* vec size 2,3 or 4 */ +} VectorObject; + +/*prototypes*/ +PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObject *base_type); +PyObject *newVectorObject_cb(PyObject *user, int size, int callback_type, int subtype); + +#endif /* MATHUTILS_VECTOR_H */ diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c new file mode 100644 index 00000000000..bcdfe020e1a --- /dev/null +++ b/source/blender/python/mathutils/mathutils_geometry.c @@ -0,0 +1,1135 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Joseph Gilbert, Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/python/generic/mathutils_geometry.c + * \ingroup pygen + */ + + +#include + +#include "mathutils_geometry.h" + +/* Used for PolyFill */ +#ifndef MATH_STANDALONE /* define when building outside blender */ +# include "MEM_guardedalloc.h" +# include "BLI_blenlib.h" +# include "BLI_boxpack2d.h" +# include "BKE_displist.h" +# include "BKE_curve.h" +#endif + +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#define SWAP_FLOAT(a, b, tmp) tmp=a; a=b; b=tmp +#define eps 0.000001 + + +/*-------------------------DOC STRINGS ---------------------------*/ +PyDoc_STRVAR(M_Geometry_doc, +"The Blender geometry module" +); + +//---------------------------------INTERSECTION FUNCTIONS-------------------- + +PyDoc_STRVAR(M_Geometry_intersect_ray_tri_doc, +".. function:: intersect_ray_tri(v1, v2, v3, ray, orig, clip=True)\n" +"\n" +" Returns the intersection between a ray and a triangle, if possible, returns None otherwise.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg ray: Direction of the projection\n" +" :type ray: :class:`mathutils.Vector`\n" +" :arg orig: Origin\n" +" :type orig: :class:`mathutils.Vector`\n" +" :arg clip: When False, don't restrict the intersection to the area of the triangle, use the infinite plane defined by the triangle.\n" +" :type clip: boolean\n" +" :return: The point of intersection or None if no intersection is found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *ray, *ray_off, *vec1, *vec2, *vec3; + float dir[3], orig[3], v1[3], v2[3], v3[3], e1[3], e2[3], pvec[3], tvec[3], qvec[3]; + float det, inv_det, u, v, t; + int clip= 1; + + if(!PyArg_ParseTuple(args, "O!O!O!O!O!|i:intersect_ray_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { + return NULL; + } + if(vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { + PyErr_SetString(PyExc_ValueError, + "only 3D vectors for all parameters"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(ray) == -1 || BaseMath_ReadCallback(ray_off) == -1) + return NULL; + + VECCOPY(v1, vec1->vec); + VECCOPY(v2, vec2->vec); + VECCOPY(v3, vec3->vec); + + VECCOPY(dir, ray->vec); + normalize_v3(dir); + + VECCOPY(orig, ray_off->vec); + + /* find vectors for two edges sharing v1 */ + sub_v3_v3v3(e1, v2, v1); + sub_v3_v3v3(e2, v3, v1); + + /* begin calculating determinant - also used to calculated U parameter */ + cross_v3_v3v3(pvec, dir, e2); + + /* if determinant is near zero, ray lies in plane of triangle */ + det= dot_v3v3(e1, pvec); + + if (det > -0.000001f && det < 0.000001f) { + Py_RETURN_NONE; + } + + inv_det= 1.0f / det; + + /* calculate distance from v1 to ray origin */ + sub_v3_v3v3(tvec, orig, v1); + + /* calculate U parameter and test bounds */ + u= dot_v3v3(tvec, pvec) * inv_det; + if (clip && (u < 0.0f || u > 1.0f)) { + Py_RETURN_NONE; + } + + /* prepare to test the V parameter */ + cross_v3_v3v3(qvec, tvec, e1); + + /* calculate V parameter and test bounds */ + v= dot_v3v3(dir, qvec) * inv_det; + + if (clip && (v < 0.0f || u + v > 1.0f)) { + Py_RETURN_NONE; + } + + /* calculate t, ray intersects triangle */ + t= dot_v3v3(e2, qvec) * inv_det; + + mul_v3_fl(dir, t); + add_v3_v3v3(pvec, orig, dir); + + return newVectorObject(pvec, 3, Py_NEW, NULL); +} + +/* Line-Line intersection using algorithm from mathworld.wolfram.com */ + +PyDoc_STRVAR(M_Geometry_intersect_line_line_doc, +".. function:: intersect_line_line(v1, v2, v3, v4)\n" +"\n" +" Returns a tuple with the points on each line respectively closest to the other.\n" +"\n" +" :arg v1: First point of the first line\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Second point of the first line\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: First point of the second line\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Second point of the second line\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: tuple of :class:`mathutils.Vector`'s\n" +); +static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject *args) +{ + PyObject *tuple; + VectorObject *vec1, *vec2, *vec3, *vec4; + float v1[3], v2[3], v3[3], v4[3], i1[3], i2[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) + return NULL; + + if(vec1->size == 3 || vec1->size == 2) { + int result; + + if (vec1->size == 3) { + VECCOPY(v1, vec1->vec); + VECCOPY(v2, vec2->vec); + VECCOPY(v3, vec3->vec); + VECCOPY(v4, vec4->vec); + } + else { + v1[0]= vec1->vec[0]; + v1[1]= vec1->vec[1]; + v1[2]= 0.0f; + + v2[0]= vec2->vec[0]; + v2[1]= vec2->vec[1]; + v2[2]= 0.0f; + + v3[0]= vec3->vec[0]; + v3[1]= vec3->vec[1]; + v3[2]= 0.0f; + + v4[0]= vec4->vec[0]; + v4[1]= vec4->vec[1]; + v4[2]= 0.0f; + } + + result= isect_line_line_v3(v1, v2, v3, v4, i1, i2); + + if (result == 0) { + /* colinear */ + Py_RETURN_NONE; + } + else { + tuple= PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL)); + PyTuple_SET_ITEM(tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL)); + return tuple; + } + } + else { + PyErr_SetString(PyExc_ValueError, + "2D/3D vectors only"); + return NULL; + } +} + + + + +//----------------------------geometry.normal() ------------------- +PyDoc_STRVAR(M_Geometry_normal_doc, +".. function:: normal(v1, v2, v3, v4=None)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Point4 (optional)\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: :class:`mathutils.Vector`\n" +); +static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *vec1, *vec2, *vec3, *vec4; + float n[3]; + + if(PyTuple_GET_SIZE(args) == 3) { + if(!PyArg_ParseTuple(args, "O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_ValueError, + "2D vectors unsupported"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) + return NULL; + + normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec); + } + else { + if(!PyArg_ParseTuple(args, "O!O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_ValueError, + "2D vectors unsupported"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) + return NULL; + + normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec); + } + + return newVectorObject(n, 3, Py_NEW, NULL); +} + +//--------------------------------- AREA FUNCTIONS-------------------- + +PyDoc_STRVAR(M_Geometry_area_tri_doc, +".. function:: area_tri(v1, v2, v3)\n" +"\n" +" Returns the area size of the 2D or 3D triangle defined.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :rtype: float\n" +); +static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *vec1, *vec2, *vec3; + + if(!PyArg_ParseTuple(args, "O!O!O!:area_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + return NULL; + } + + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_ValueError, + "vectors must be of the same size"); + return NULL; + } + + if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) + return NULL; + + if (vec1->size == 3) { + return PyFloat_FromDouble(area_tri_v3(vec1->vec, vec2->vec, vec3->vec)); + } + else if (vec1->size == 2) { + return PyFloat_FromDouble(area_tri_v2(vec1->vec, vec2->vec, vec3->vec)); + } + else { + PyErr_SetString(PyExc_ValueError, + "only 2D,3D vectors are supported"); + return NULL; + } +} + + +PyDoc_STRVAR(M_Geometry_intersect_line_line_2d_doc, +".. function:: intersect_line_line_2d(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" +"\n" +" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" +"\n" +" :arg lineA_p1: First point of the first line\n" +" :type lineA_p1: :class:`mathutils.Vector`\n" +" :arg lineA_p2: Second point of the first line\n" +" :type lineA_p2: :class:`mathutils.Vector`\n" +" :arg lineB_p1: First point of the second line\n" +" :type lineB_p1: :class:`mathutils.Vector`\n" +" :arg lineB_p2: Second point of the second line\n" +" :type lineB_p2: :class:`mathutils.Vector`\n" +" :return: The point of intersection or None when not found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *line_a1, *line_a2, *line_b1, *line_b2; + float vi[2]; + if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line_2d", + &vector_Type, &line_a1, + &vector_Type, &line_a2, + &vector_Type, &line_b1, + &vector_Type, &line_b2) + ) { + return NULL; + } + + if(BaseMath_ReadCallback(line_a1) == -1 || BaseMath_ReadCallback(line_a2) == -1 || BaseMath_ReadCallback(line_b1) == -1 || BaseMath_ReadCallback(line_b2) == -1) + return NULL; + + if(isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) { + return newVectorObject(vi, 2, Py_NEW, NULL); + } + else { + Py_RETURN_NONE; + } +} + + +PyDoc_STRVAR(M_Geometry_intersect_line_plane_doc, +".. function:: intersect_line_plane(line_a, line_b, plane_co, plane_no, no_flip=False)\n" +"\n" +" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" +"\n" +" :arg line_a: First point of the first line\n" +" :type line_a: :class:`mathutils.Vector`\n" +" :arg line_b: Second point of the first line\n" +" :type line_b: :class:`mathutils.Vector`\n" +" :arg plane_co: A point on the plane\n" +" :type plane_co: :class:`mathutils.Vector`\n" +" :arg plane_no: The direction the plane is facing\n" +" :type plane_no: :class:`mathutils.Vector`\n" +" :arg no_flip: Always return an intersection on the directon defined bt line_a -> line_b\n" +" :type no_flip: :boolean\n" +" :return: The point of intersection or None when not found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *line_a, *line_b, *plane_co, *plane_no; + int no_flip= 0; + float isect[3]; + if(!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_plane", + &vector_Type, &line_a, + &vector_Type, &line_b, + &vector_Type, &plane_co, + &vector_Type, &plane_no, + &no_flip) + ) { + return NULL; + } + + if( BaseMath_ReadCallback(line_a) == -1 || + BaseMath_ReadCallback(line_b) == -1 || + BaseMath_ReadCallback(plane_co) == -1 || + BaseMath_ReadCallback(plane_no) == -1 + ) { + return NULL; + } + + if(ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { + PyErr_SetString(PyExc_ValueError, + "geometry.intersect_line_plane(...): " + " can't use 2D Vectors"); + return NULL; + } + + if(isect_line_plane_v3(isect, line_a->vec, line_b->vec, plane_co->vec, plane_no->vec, no_flip) == 1) { + return newVectorObject(isect, 3, Py_NEW, NULL); + } + else { + Py_RETURN_NONE; + } +} + + +PyDoc_STRVAR(M_Geometry_intersect_line_sphere_doc, +".. function:: intersect_line_sphere(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" +"\n" +" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" +" returns the intersection\n" +"\n" +" :arg line_a: First point of the first line\n" +" :type line_a: :class:`mathutils.Vector`\n" +" :arg line_b: Second point of the first line\n" +" :type line_b: :class:`mathutils.Vector`\n" +" :arg sphere_co: The center of the sphere\n" +" :type sphere_co: :class:`mathutils.Vector`\n" +" :arg sphere_radius: Radius of the sphere\n" +" :type sphere_radius: sphere_radius\n" +" :return: The intersection points as a pair of vectors or None when there is no intersection\n" +" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *line_a, *line_b, *sphere_co; + float sphere_radius; + int clip= TRUE; + + float isect_a[3]; + float isect_b[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere", + &vector_Type, &line_a, + &vector_Type, &line_b, + &vector_Type, &sphere_co, + &sphere_radius, &clip) + ) { + return NULL; + } + + if( BaseMath_ReadCallback(line_a) == -1 || + BaseMath_ReadCallback(line_b) == -1 || + BaseMath_ReadCallback(sphere_co) == -1 + ) { + return NULL; + } + + if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { + PyErr_SetString(PyExc_ValueError, + "geometry.intersect_line_sphere(...): " + " can't use 2D Vectors"); + return NULL; + } + else { + short use_a= TRUE; + short use_b= TRUE; + float lambda; + + PyObject *ret= PyTuple_New(2); + + switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + use_b= FALSE; + break; + case 2: + if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if(!(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + break; + default: + use_a= FALSE; + use_b= FALSE; + } + + if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } + + if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } + + return ret; + } +} + +/* keep in sync with M_Geometry_intersect_line_sphere */ +PyDoc_STRVAR(M_Geometry_intersect_line_sphere_2d_doc, +".. function:: intersect_line_sphere_2d(line_a, line_b, sphere_co, sphere_radius, clip=True)\n" +"\n" +" Takes a lines (as 2 vectors), a sphere as a point and a radius and\n" +" returns the intersection\n" +"\n" +" :arg line_a: First point of the first line\n" +" :type line_a: :class:`mathutils.Vector`\n" +" :arg line_b: Second point of the first line\n" +" :type line_b: :class:`mathutils.Vector`\n" +" :arg sphere_co: The center of the sphere\n" +" :type sphere_co: :class:`mathutils.Vector`\n" +" :arg sphere_radius: Radius of the sphere\n" +" :type sphere_radius: sphere_radius\n" +" :return: The intersection points as a pair of vectors or None when there is no intersection\n" +" :rtype: A tuple pair containing :class:`mathutils.Vector` or None\n" +); +static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *line_a, *line_b, *sphere_co; + float sphere_radius; + int clip= TRUE; + + float isect_a[3]; + float isect_b[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere_2d", + &vector_Type, &line_a, + &vector_Type, &line_b, + &vector_Type, &sphere_co, + &sphere_radius, &clip) + ) { + return NULL; + } + + if( BaseMath_ReadCallback(line_a) == -1 || + BaseMath_ReadCallback(line_b) == -1 || + BaseMath_ReadCallback(sphere_co) == -1 + ) { + return NULL; + } + else { + short use_a= TRUE; + short use_b= TRUE; + float lambda; + + PyObject *ret= PyTuple_New(2); + + switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { + case 1: + if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + use_b= FALSE; + break; + case 2: + if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if(!(!clip || (((lambda= line_point_factor_v2(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + break; + default: + use_a= FALSE; + use_b= FALSE; + } + + if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } + + if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); } + else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } + + return ret; + } +} + +PyDoc_STRVAR(M_Geometry_intersect_point_line_doc, +".. function:: intersect_point_line(pt, line_p1, line_p2)\n" +"\n" +" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" +"\n" +" :arg pt: Point\n" +" :type pt: :class:`mathutils.Vector`\n" +" :arg line_p1: First point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :arg line_p1: Second point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :rtype: (:class:`mathutils.Vector`, float)\n" +); +static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *pt, *line_1, *line_2; + float pt_in[3], pt_out[3], l1[3], l2[3]; + float lambda; + PyObject *ret; + + if(!PyArg_ParseTuple(args, "O!O!O!:intersect_point_line", + &vector_Type, &pt, + &vector_Type, &line_1, + &vector_Type, &line_2) + ) { + return NULL; + } + + if(BaseMath_ReadCallback(pt) == -1 || BaseMath_ReadCallback(line_1) == -1 || BaseMath_ReadCallback(line_2) == -1) + return NULL; + + /* accept 2d verts */ + if (pt->size==3) { VECCOPY(pt_in, pt->vec);} + else { pt_in[2]=0.0; VECCOPY2D(pt_in, pt->vec) } + + if (line_1->size==3) { VECCOPY(l1, line_1->vec);} + else { l1[2]=0.0; VECCOPY2D(l1, line_1->vec) } + + if (line_2->size==3) { VECCOPY(l2, line_2->vec);} + else { l2[2]=0.0; VECCOPY2D(l2, line_2->vec) } + + /* do the calculation */ + lambda= closest_to_line_v3(pt_out, pt_in, l1, l2); + + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(lambda)); + return ret; +} + +PyDoc_STRVAR(M_Geometry_intersect_point_tri_2d_doc, +".. function:: intersect_point_tri_2d(pt, tri_p1, tri_p2, tri_p3)\n" +"\n" +" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg tri_p1: First point of the triangle\n" +" :type tri_p1: :class:`mathutils.Vector`\n" +" :arg tri_p2: Second point of the triangle\n" +" :type tri_p2: :class:`mathutils.Vector`\n" +" :arg tri_p3: Third point of the triangle\n" +" :type tri_p3: :class:`mathutils.Vector`\n" +" :rtype: int\n" +); +static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *pt_vec, *tri_p1, *tri_p2, *tri_p3; + + if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_point_tri_2d", + &vector_Type, &pt_vec, + &vector_Type, &tri_p1, + &vector_Type, &tri_p2, + &vector_Type, &tri_p3) + ) { + return NULL; + } + + if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(tri_p1) == -1 || BaseMath_ReadCallback(tri_p2) == -1 || BaseMath_ReadCallback(tri_p3) == -1) + return NULL; + + return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec)); +} + +PyDoc_STRVAR(M_Geometry_intersect_point_quad_2d_doc, +".. function:: intersect_point_quad_2d(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" +"\n" +" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg quad_p1: First point of the quad\n" +" :type quad_p1: :class:`mathutils.Vector`\n" +" :arg quad_p2: Second point of the quad\n" +" :type quad_p2: :class:`mathutils.Vector`\n" +" :arg quad_p3: Third point of the quad\n" +" :type quad_p3: :class:`mathutils.Vector`\n" +" :arg quad_p4: Forth point of the quad\n" +" :type quad_p4: :class:`mathutils.Vector`\n" +" :rtype: int\n" +); +static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *pt_vec, *quad_p1, *quad_p2, *quad_p3, *quad_p4; + + if(!PyArg_ParseTuple(args, "O!O!O!O!O!:intersect_point_quad_2d", + &vector_Type, &pt_vec, + &vector_Type, &quad_p1, + &vector_Type, &quad_p2, + &vector_Type, &quad_p3, + &vector_Type, &quad_p4) + ) { + return NULL; + } + + if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(quad_p1) == -1 || BaseMath_ReadCallback(quad_p2) == -1 || BaseMath_ReadCallback(quad_p3) == -1 || BaseMath_ReadCallback(quad_p4) == -1) + return NULL; + + return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec)); +} + +PyDoc_STRVAR(M_Geometry_barycentric_transform_doc, +".. function:: barycentric_transform(point, tri_a1, tri_a2, tri_a3, tri_b1, tri_b2, tri_b3)\n" +"\n" +" Return a transformed point, the transformation is defined by 2 triangles.\n" +"\n" +" :arg point: The point to transform.\n" +" :type point: :class:`mathutils.Vector`\n" +" :arg tri_a1: source triangle vertex.\n" +" :type tri_a1: :class:`mathutils.Vector`\n" +" :arg tri_a2: source triangle vertex.\n" +" :type tri_a2: :class:`mathutils.Vector`\n" +" :arg tri_a3: source triangle vertex.\n" +" :type tri_a3: :class:`mathutils.Vector`\n" +" :arg tri_a1: target triangle vertex.\n" +" :type tri_a1: :class:`mathutils.Vector`\n" +" :arg tri_a2: target triangle vertex.\n" +" :type tri_a2: :class:`mathutils.Vector`\n" +" :arg tri_a3: target triangle vertex.\n" +" :type tri_a3: :class:`mathutils.Vector`\n" +" :return: The transformed point\n" +" :rtype: :class:`mathutils.Vector`'s\n" +); +static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObject *args) +{ + VectorObject *vec_pt; + VectorObject *vec_t1_tar, *vec_t2_tar, *vec_t3_tar; + VectorObject *vec_t1_src, *vec_t2_src, *vec_t3_src; + float vec[3]; + + if(!PyArg_ParseTuple(args, "O!O!O!O!O!O!O!:barycentric_transform", + &vector_Type, &vec_pt, + &vector_Type, &vec_t1_src, + &vector_Type, &vec_t2_src, + &vector_Type, &vec_t3_src, + &vector_Type, &vec_t1_tar, + &vector_Type, &vec_t2_tar, + &vector_Type, &vec_t3_tar) + ) { + return NULL; + } + + if( vec_pt->size != 3 || + vec_t1_src->size != 3 || + vec_t2_src->size != 3 || + vec_t3_src->size != 3 || + vec_t1_tar->size != 3 || + vec_t2_tar->size != 3 || + vec_t3_tar->size != 3) + { + PyErr_SetString(PyExc_ValueError, + "One of more of the vector arguments wasn't a 3D vector"); + return NULL; + } + + barycentric_transform(vec, vec_pt->vec, + vec_t1_tar->vec, vec_t2_tar->vec, vec_t3_tar->vec, + vec_t1_src->vec, vec_t2_src->vec, vec_t3_src->vec); + + return newVectorObject(vec, 3, Py_NEW, NULL); +} + +#ifndef MATH_STANDALONE + +PyDoc_STRVAR(M_Geometry_interpolate_bezier_doc, +".. function:: interpolate_bezier(knot1, handle1, handle2, knot2, resolution)\n" +"\n" +" Interpolate a bezier spline segment.\n" +"\n" +" :arg knot1: First bezier spline point.\n" +" :type knot1: :class:`mathutils.Vector`\n" +" :arg handle1: First bezier spline handle.\n" +" :type handle1: :class:`mathutils.Vector`\n" +" :arg handle2: Second bezier spline handle.\n" +" :type handle2: :class:`mathutils.Vector`\n" +" :arg knot2: Second bezier spline point.\n" +" :type knot2: :class:`mathutils.Vector`\n" +" :arg resolution: Number of points to return.\n" +" :type resolution: int\n" +" :return: The interpolated points\n" +" :rtype: list of :class:`mathutils.Vector`'s\n" +); +static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* args) +{ + VectorObject *vec_k1, *vec_h1, *vec_k2, *vec_h2; + int resolu; + int dims; + int i; + float *coord_array, *fp; + PyObject *list; + + float k1[4]= {0.0, 0.0, 0.0, 0.0}; + float h1[4]= {0.0, 0.0, 0.0, 0.0}; + float k2[4]= {0.0, 0.0, 0.0, 0.0}; + float h2[4]= {0.0, 0.0, 0.0, 0.0}; + + + if(!PyArg_ParseTuple(args, "O!O!O!O!i:interpolate_bezier", + &vector_Type, &vec_k1, + &vector_Type, &vec_h1, + &vector_Type, &vec_h2, + &vector_Type, &vec_k2, &resolu) + ) { + return NULL; + } + + if(resolu <= 1) { + PyErr_SetString(PyExc_ValueError, + "resolution must be 2 or over"); + return NULL; + } + + if(BaseMath_ReadCallback(vec_k1) == -1 || BaseMath_ReadCallback(vec_h1) == -1 || BaseMath_ReadCallback(vec_k2) == -1 || BaseMath_ReadCallback(vec_h2) == -1) + return NULL; + + dims= MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size); + + for(i=0; i < vec_k1->size; i++) k1[i]= vec_k1->vec[i]; + for(i=0; i < vec_h1->size; i++) h1[i]= vec_h1->vec[i]; + for(i=0; i < vec_k2->size; i++) k2[i]= vec_k2->vec[i]; + for(i=0; i < vec_h2->size; i++) h2[i]= vec_h2->vec[i]; + + coord_array= MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); + for(i=0; iverts to set the points from the vectors */ + int index, *dl_face, totpoints=0; + + if(!PySequence_Check(polyLineSeq)) { + PyErr_SetString(PyExc_TypeError, + "expected a sequence of poly lines"); + return NULL; + } + + len_polylines= PySequence_Size(polyLineSeq); + + for(i= 0; i < len_polylines; ++i) { + polyLine= PySequence_GetItem(polyLineSeq, i); + if (!PySequence_Check(polyLine)) { + freedisplist(&dispbase); + Py_XDECREF(polyLine); /* may be null so use Py_XDECREF*/ + PyErr_SetString(PyExc_TypeError, + "One or more of the polylines is not a sequence of mathutils.Vector's"); + return NULL; + } + + len_polypoints= PySequence_Size(polyLine); + if (len_polypoints>0) { /* dont bother adding edges as polylines */ +#if 0 + if (EXPP_check_sequence_consistency(polyLine, &vector_Type) != 1) { + freedisplist(&dispbase); + Py_DECREF(polyLine); + PyErr_SetString(PyExc_TypeError, + "A point in one of the polylines is not a mathutils.Vector type"); + return NULL; + } +#endif + dl= MEM_callocN(sizeof(DispList), "poly disp"); + BLI_addtail(&dispbase, dl); + dl->type= DL_INDEX3; + dl->nr= len_polypoints; + dl->type= DL_POLY; + dl->parts= 1; /* no faces, 1 edge loop */ + dl->col= 0; /* no material */ + dl->verts= fp= MEM_callocN(sizeof(float)*3*len_polypoints, "dl verts"); + dl->index= MEM_callocN(sizeof(int)*3*len_polypoints, "dl index"); + + for(index= 0; indexvec[0]; + fp[1]= ((VectorObject *)polyVec)->vec[1]; + if(((VectorObject *)polyVec)->size > 2) + fp[2]= ((VectorObject *)polyVec)->vec[2]; + else + fp[2]= 0.0f; /* if its a 2d vector then set the z to be zero */ + } + else { + ls_error= 1; + } + + totpoints++; + Py_DECREF(polyVec); + } + } + Py_DECREF(polyLine); + } + + if(ls_error) { + freedisplist(&dispbase); /* possible some dl was allocated */ + PyErr_SetString(PyExc_TypeError, + "A point in one of the polylines " + "is not a mathutils.Vector type"); + return NULL; + } + else if (totpoints) { + /* now make the list to return */ + filldisplist(&dispbase, &dispbase, 0); + + /* The faces are stored in a new DisplayList + thats added to the head of the listbase */ + dl= dispbase.first; + + tri_list= PyList_New(dl->parts); + if(!tri_list) { + freedisplist(&dispbase); + PyErr_SetString(PyExc_RuntimeError, + "failed to make a new list"); + return NULL; + } + + index= 0; + dl_face= dl->index; + while(index < dl->parts) { + PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2])); + dl_face+= 3; + index++; + } + freedisplist(&dispbase); + } + else { + /* no points, do this so scripts dont barf */ + freedisplist(&dispbase); /* possible some dl was allocated */ + tri_list= PyList_New(0); + } + + return tri_list; +} + + +static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) +{ + int len, i; + PyObject *list_item, *item_1, *item_2; + boxPack *box; + + + /* Error checking must already be done */ + if(!PyList_Check(value)) { + PyErr_SetString(PyExc_TypeError, + "can only back a list of [x, y, w, h]"); + return -1; + } + + len= PyList_Size(value); + + (*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box"); + + + for(i= 0; i < len; i++) { + list_item= PyList_GET_ITEM(value, i); + if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) { + MEM_freeN(*boxarray); + PyErr_SetString(PyExc_TypeError, + "can only pack a list of [x, y, w, h]"); + return -1; + } + + box= (*boxarray)+i; + + item_1= PyList_GET_ITEM(list_item, 2); + item_2= PyList_GET_ITEM(list_item, 3); + + box->w= (float)PyFloat_AsDouble(item_1); + box->h= (float)PyFloat_AsDouble(item_2); + box->index= i; + + /* accounts for error case too and overwrites with own error */ + if (box->w < 0.0f || box->h < 0.0f) { + MEM_freeN(*boxarray); + PyErr_SetString(PyExc_TypeError, + "error parsing width and height values from list: " + "[x, y, w, h], not numbers or below zero"); + return -1; + } + + /* verts will be added later */ + } + return 0; +} + +static void boxPack_ToPyObject(PyObject *value, boxPack **boxarray) +{ + int len, i; + PyObject *list_item; + boxPack *box; + + len= PyList_Size(value); + + for(i= 0; i < len; i++) { + box= (*boxarray)+i; + list_item= PyList_GET_ITEM(value, box->index); + PyList_SET_ITEM(list_item, 0, PyFloat_FromDouble(box->x)); + PyList_SET_ITEM(list_item, 1, PyFloat_FromDouble(box->y)); + } + MEM_freeN(*boxarray); +} + +PyDoc_STRVAR(M_Geometry_box_pack_2d_doc, +".. function:: box_pack_2d(boxes)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg boxes: list of boxes, each box is a list where the first 4 items are [x, y, width, height, ...] other items are ignored.\n" +" :type boxes: list\n" +" :return: the width and height of the packed bounding box\n" +" :rtype: tuple, pair of floats\n" +); +static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlist) +{ + float tot_width= 0.0f, tot_height= 0.0f; + int len; + + PyObject *ret; + + if(!PyList_Check(boxlist)) { + PyErr_SetString(PyExc_TypeError, + "expected a list of boxes [[x, y, w, h], ... ]"); + return NULL; + } + + len= PyList_GET_SIZE(boxlist); + if (len) { + boxPack *boxarray= NULL; + if(boxPack_FromPyObject(boxlist, &boxarray) == -1) { + return NULL; /* exception set */ + } + + /* Non Python function */ + boxPack2D(boxarray, len, &tot_width, &tot_height); + + boxPack_ToPyObject(boxlist, &boxarray); + } + + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(tot_width)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(tot_width)); + return ret; +} + +#endif /* MATH_STANDALONE */ + + +static PyMethodDef M_Geometry_methods[]= { + {"intersect_ray_tri", (PyCFunction) M_Geometry_intersect_ray_tri, METH_VARARGS, M_Geometry_intersect_ray_tri_doc}, + {"intersect_point_line", (PyCFunction) M_Geometry_intersect_point_line, METH_VARARGS, M_Geometry_intersect_point_line_doc}, + {"intersect_point_tri_2d", (PyCFunction) M_Geometry_intersect_point_tri_2d, METH_VARARGS, M_Geometry_intersect_point_tri_2d_doc}, + {"intersect_point_quad_2d", (PyCFunction) M_Geometry_intersect_point_quad_2d, METH_VARARGS, M_Geometry_intersect_point_quad_2d_doc}, + {"intersect_line_line", (PyCFunction) M_Geometry_intersect_line_line, METH_VARARGS, M_Geometry_intersect_line_line_doc}, + {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, + {"intersect_line_plane", (PyCFunction) M_Geometry_intersect_line_plane, METH_VARARGS, M_Geometry_intersect_line_plane_doc}, + {"intersect_line_sphere", (PyCFunction) M_Geometry_intersect_line_sphere, METH_VARARGS, M_Geometry_intersect_line_sphere_doc}, + {"intersect_line_sphere_2d", (PyCFunction) M_Geometry_intersect_line_sphere_2d, METH_VARARGS, M_Geometry_intersect_line_sphere_2d_doc}, + {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, + {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, + {"barycentric_transform", (PyCFunction) M_Geometry_barycentric_transform, METH_VARARGS, M_Geometry_barycentric_transform_doc}, +#ifndef MATH_STANDALONE + {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, + {"tesselate_polygon", (PyCFunction) M_Geometry_tesselate_polygon, METH_O, M_Geometry_tesselate_polygon_doc}, + {"box_pack_2d", (PyCFunction) M_Geometry_box_pack_2d, METH_O, M_Geometry_box_pack_2d_doc}, +#endif + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef M_Geometry_module_def= { + PyModuleDef_HEAD_INIT, + "mathutils.geometry", /* m_name */ + M_Geometry_doc, /* m_doc */ + 0, /* m_size */ + M_Geometry_methods, /* m_methods */ + NULL, /* m_reload */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +/*----------------------------MODULE INIT-------------------------*/ +PyMODINIT_FUNC PyInit_mathutils_geometry(void) +{ + PyObject *submodule= PyModule_Create(&M_Geometry_module_def); + return submodule; +} diff --git a/source/blender/python/mathutils/mathutils_geometry.h b/source/blender/python/mathutils/mathutils_geometry.h new file mode 100644 index 00000000000..c963a63ce7f --- /dev/null +++ b/source/blender/python/mathutils/mathutils_geometry.h @@ -0,0 +1,43 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Joseph Gilbert + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +/** \file blender/python/generic/mathutils_geometry.h + * \ingroup pygen + */ + +/*Include this file for access to vector, quat, matrix, euler, etc...*/ + +#ifndef MATHUTILS_GEOMETRY_H +#define MATHUTILS_GEOMETRY_H + +#include "mathutils.h" + +PyMODINIT_FUNC PyInit_mathutils_geometry(void); + +#endif /* MATHUTILS_GEOMETRY_H */ -- cgit v1.2.3 From 7984e338db93c7d5d276f1cb8a6a468ccd4446a7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 15 Jul 2011 10:10:25 +0000 Subject: fix for linking on mingw/scons with recent changes to mathutils --- source/blender/python/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript index 3d17e113a8a..dec0de4a6ab 100644 --- a/source/blender/python/SConscript +++ b/source/blender/python/SConscript @@ -25,7 +25,7 @@ env.BlenderLib( libname = 'bf_python_ext', sources = Split(sources), includes = defs = [] sources = env.Glob('mathutils/*.c') -env.BlenderLib( libname = 'bf_python_mathutils', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [361,165]) +env.BlenderLib( libname = 'bf_python_mathutils', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [362,165]) # bpy -- cgit v1.2.3 From 729498ab2da989d0bfbba02c1b1a6bc9f6964b1c Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 15 Jul 2011 13:32:02 +0000 Subject: Fix for [#26712] Particle group instance 'Use Count' value gets reset on file-load. * New object pointers can't be loaded properly for library linked groups, so the weight groups now store an index to the group objects at save time. This index is used at load time to set the objects without relying on the old pointers. * If the library linked group is modified the indices can be wrong, but this can't really be avoided easily as there's no way to relate objects in a linked group between loads. --- source/blender/blenloader/intern/readfile.c | 35 +++++++++++++++++++++++++--- source/blender/blenloader/intern/writefile.c | 11 ++++++++- source/blender/makesdna/DNA_particle_types.h | 3 ++- 3 files changed, 44 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2402106306e..ab30d92f03e 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -75,6 +75,7 @@ #include "DNA_node_types.h" #include "DNA_object_fluidsim.h" // NT #include "DNA_packedFile_types.h" +#include "DNA_particle_types.h" #include "DNA_property_types.h" #include "DNA_text_types.h" #include "DNA_view3d_types.h" @@ -3161,9 +3162,37 @@ static void lib_link_particlesettings(FileData *fd, Main *main) if(part->effector_weights) part->effector_weights->group = newlibadr(fd, part->id.lib, part->effector_weights->group); - dw = part->dupliweights.first; - for(; dw; dw=dw->next) - dw->ob = newlibadr(fd, part->id.lib, dw->ob); + if(part->dupliweights.first) { + int index_ok = 0; + /* check for old files without indices (all indexes 0) */ + dw = part->dupliweights.first; + if(part->dupliweights.first == part->dupliweights.last) { + /* special case for only one object in the group */ + index_ok = 1; + } + else { + for(; dw; dw=dw->next) { + if(dw->index > 0) { + index_ok = 1; + break; + } + } + } + + if(index_ok) { + /* if we have indexes, let's use them */ + dw = part->dupliweights.first; + for(; dw; dw=dw->next) { + GroupObject *go = (GroupObject *)BLI_findlink(&part->dup_group->gobject, dw->index); + dw->ob = go ? go->ob : NULL; + } + } + else { + /* otherwise try to get objects from own library (won't work on library linked groups) */ + for(; dw; dw=dw->next) + dw->ob = newlibadr(fd, part->id.lib, dw->ob); + } + } if(part->boids) { BoidState *state = part->boids->states.first; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index ba4395ace9c..bf86527b9d3 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -837,6 +837,7 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase) { ParticleSettings *part; ParticleDupliWeight *dw; + GroupObject *go; int a; part= idbase->first; @@ -851,8 +852,16 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase) writestruct(wd, DATA, "EffectorWeights", 1, part->effector_weights); dw = part->dupliweights.first; - for(; dw; dw=dw->next) + for(; dw; dw=dw->next) { + /* update indices */ + dw->index = 0; + go = part->dup_group->gobject.first; + while(go && go->ob != dw->ob) { + go=go->next; + dw->index++; + } writestruct(wd, DATA, "ParticleDupliWeight", 1, dw); + } if(part->boids && part->phystype == PART_PHYS_BOIDS) { BoidState *state = part->boids->states.first; diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index aace8156e9d..69ee530c0b6 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -89,7 +89,8 @@ typedef struct ParticleDupliWeight { struct ParticleDupliWeight *next, *prev; struct Object *ob; short count; - short flag, rt[2]; + short flag; + short index, rt; /* only updated on file save and used on file load */ } ParticleDupliWeight; typedef struct ParticleData { -- cgit v1.2.3 From 4ca88c99be18651cc96c549afde8dc190120b052 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 15 Jul 2011 23:55:20 +0000 Subject: fix for crash with edit armature buttons when no bones were selected (uninitialized pointer) --- source/blender/editors/space_view3d/view3d_buttons.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index ef7ada85843..6e03866153f 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -967,7 +967,7 @@ static void v3d_editarmature_buts(uiLayout *layout, Object *ob) ebone= arm->act_edbone; if (!ebone || (ebone->layer & arm->layer)==0) { - uiItemL(col, "Nothing selected", ICON_NONE); + uiItemL(layout, "Nothing selected", ICON_NONE); return; } // row= uiLayoutRow(layout, 0); -- cgit v1.2.3 From d54a014963dd3a90972e0bf9d83df76aef08bb25 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sat, 16 Jul 2011 17:55:46 +0000 Subject: Fixed crash of multires baker when baking from sculpt mode. Incorrect low level was used for this case -- it should be sculpt level, not preview level. Thanks to Morten Mikkelsen to point on this bug :) --- source/blender/editors/object/object_bake.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 57f6c9de88e..bdd911d68ee 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -966,9 +966,10 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l MultiresModifierData *mmd= get_multires_modifier(scene, ob, 0); Mesh *me= (Mesh*)ob->data; - *lvl= mmd->lvl; + if(ob->mode==OB_MODE_SCULPT) *lvl= mmd->sculptlvl; + else *lvl= mmd->lvl; - if(mmd->lvl==0) { + if(*lvl==0) { DerivedMesh *tmp_dm= CDDM_from_mesh(me, ob); dm= CDDM_copy(tmp_dm); tmp_dm->release(tmp_dm); @@ -976,7 +977,7 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l MultiresModifierData tmp_mmd= *mmd; DerivedMesh *cddm= CDDM_from_mesh(me, ob); - tmp_mmd.lvl= mmd->lvl; + tmp_mmd.lvl= *lvl; dm= multires_dm_create_from_derived(&tmp_mmd, 1, cddm, ob, 0, 0); cddm->release(cddm); } -- cgit v1.2.3 From 410c5e3cd284eba6b17c79042b161eaa9efe6e71 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 16 Jul 2011 23:01:14 +0000 Subject: cmake source definitions: remove missing includes and use more strict formatting. --- source/blender/blenfont/CMakeLists.txt | 4 +- source/blender/blenkernel/CMakeLists.txt | 51 ++++++++++++++++------ source/blender/blenlib/CMakeLists.txt | 4 +- source/blender/blenpluginapi/CMakeLists.txt | 4 +- source/blender/editors/render/CMakeLists.txt | 8 +++- source/blender/editors/space_script/CMakeLists.txt | 8 +++- source/blender/editors/space_text/CMakeLists.txt | 8 +++- source/blender/editors/space_view3d/CMakeLists.txt | 4 +- source/blender/imbuf/CMakeLists.txt | 28 +++++++++--- source/blender/imbuf/intern/dds/CMakeLists.txt | 1 - source/blender/imbuf/intern/openexr/CMakeLists.txt | 5 ++- source/blender/makesrna/intern/CMakeLists.txt | 8 +++- source/blender/modifiers/CMakeLists.txt | 7 ++- source/blender/nodes/CMakeLists.txt | 8 +++- source/blender/python/intern/CMakeLists.txt | 3 -- source/blender/quicktime/CMakeLists.txt | 13 +++--- source/blender/render/CMakeLists.txt | 8 +++- source/blender/windowmanager/CMakeLists.txt | 16 +++++-- 18 files changed, 132 insertions(+), 56 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenfont/CMakeLists.txt b/source/blender/blenfont/CMakeLists.txt index b915764c1bb..0258a41fb56 100644 --- a/source/blender/blenfont/CMakeLists.txt +++ b/source/blender/blenfont/CMakeLists.txt @@ -50,7 +50,9 @@ set(SRC ) if(WITH_INTERNATIONAL) - list(APPEND INC_SYS ${GETTEXT_INC}) + list(APPEND INC_SYS + ${GETTEXT_INC} + ) add_definitions(-DINTERNATIONAL) endif() diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 92c50242e74..a3c3357508f 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -32,8 +32,10 @@ endif() set(INC . ../avi + ../blenfont ../blenlib ../blenloader + ../editors/include ../gpu ../ikplugin ../imbuf @@ -41,18 +43,19 @@ set(INC ../makesrna ../modifiers ../nodes - ../editors/include ../render/extern/include - ../../../intern/bsp/extern ../blenfont + ../../../intern/bsp/extern ../../../intern/decimation/extern ../../../intern/elbeem/extern ../../../intern/guardedalloc ../../../intern/iksolver/extern ../../../intern/memutil + ../../../intern/mikktspace ../../../intern/opennl/extern ../../../intern/smoke/extern - ../../../intern/mikktspace - ../../../source/blender/windowmanager # XXX - BAD LEVEL CALL WM_api.h + + # XXX - BAD LEVEL CALL WM_api.h + ../../../source/blender/windowmanager ) set(INC_SYS @@ -243,12 +246,16 @@ if(WITH_AUDASPACE) endif() if(WITH_BULLET) - list(APPEND INC ../../../extern/bullet2/src) + list(APPEND INC + ../../../extern/bullet2/src + ) add_definitions(-DUSE_BULLET) endif() if(WITH_MOD_CLOTH_ELTOPO) - list(APPEND INC ../../../extern/eltopo) + list(APPEND INC + ../../../extern/eltopo + ) add_definitions(-DWITH_ELTOPO) endif() @@ -277,20 +284,32 @@ if(WITH_IMAGE_HDR) endif() if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC + ../quicktime + ) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC ../../../intern/ffmpeg) - list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) + list(APPEND INC + ../../../intern/ffmpeg + ) + list(APPEND INC_SYS + ${FFMPEG_INCLUDE_DIRS} + ) add_definitions(-DWITH_FFMPEG) endif() if(WITH_PYTHON) - list(APPEND INC ../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) + list(APPEND INC + ../python + ) + list(APPEND INC_SYS + ${PYTHON_INCLUDE_DIRS} + ) add_definitions(-DWITH_PYTHON) if(WITH_PYTHON_SECURITY) @@ -315,12 +334,16 @@ if(WITH_JACK) endif() if(WITH_LZO) - list(APPEND INC_SYS ../../../extern/lzo/minilzo) + list(APPEND INC_SYS + ../../../extern/lzo/minilzo + ) add_definitions(-DWITH_LZO) endif() if(WITH_LZMA) - list(APPEND INC_SYS ../../../extern/lzma) + list(APPEND INC_SYS + ../../../extern/lzma + ) add_definitions(-DWITH_LZMA) endif() diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index 2e05ac7892b..de7695b63cf 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -138,7 +138,9 @@ set(SRC ) if(WITH_BINRELOC) - list(APPEND INC_SYS "${BINRELOC_INCLUDE_DIRS}") + list(APPEND INC_SYS + ${BINRELOC_INCLUDE_DIRS} + ) add_definitions(-DWITH_BINRELOC) endif() diff --git a/source/blender/blenpluginapi/CMakeLists.txt b/source/blender/blenpluginapi/CMakeLists.txt index a5af15d7f55..193e40147e1 100644 --- a/source/blender/blenpluginapi/CMakeLists.txt +++ b/source/blender/blenpluginapi/CMakeLists.txt @@ -50,7 +50,9 @@ set(SRC ) if(WITH_CODEC_QUICKTIME) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt index 7e497200710..cf6c4290ee0 100644 --- a/source/blender/editors/render/CMakeLists.txt +++ b/source/blender/editors/render/CMakeLists.txt @@ -51,8 +51,12 @@ set(SRC ) if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC + ../../quicktime + ) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/editors/space_script/CMakeLists.txt b/source/blender/editors/space_script/CMakeLists.txt index 1aed177eed1..1884852d3ad 100644 --- a/source/blender/editors/space_script/CMakeLists.txt +++ b/source/blender/editors/space_script/CMakeLists.txt @@ -44,8 +44,12 @@ set(SRC ) if(WITH_PYTHON) - list(APPEND INC ../../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) + list(APPEND INC + ../../python + ) + list(APPEND INC_SYS + ${PYTHON_INCLUDE_DIRS} + ) add_definitions(-DWITH_PYTHON) endif() diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt index 0c174225a58..145da6c9aaa 100644 --- a/source/blender/editors/space_text/CMakeLists.txt +++ b/source/blender/editors/space_text/CMakeLists.txt @@ -46,8 +46,12 @@ set(SRC ) if(WITH_PYTHON) - list(APPEND INC ../../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) + list(APPEND INC + ../../python + ) + list(APPEND INC_SYS + ${PYTHON_INCLUDE_DIRS} + ) add_definitions(-DWITH_PYTHON) endif() diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt index 0a12a28af8d..e83e51aaa4f 100644 --- a/source/blender/editors/space_view3d/CMakeLists.txt +++ b/source/blender/editors/space_view3d/CMakeLists.txt @@ -61,7 +61,9 @@ set(SRC ) if(WITH_GAMEENGINE) - list(APPEND INC ../../../../source/gameengine/BlenderRoutines) + list(APPEND INC + ../../../../source/gameengine/BlenderRoutines + ) add_definitions(-DWITH_GAMEENGINE) endif() diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index c9a8f62a197..1517432f614 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -113,29 +113,43 @@ if(WITH_IMAGE_OPENEXR) endif() if(WITH_IMAGE_TIFF) - list(APPEND INC_SYS ${TIFF_INCLUDE_DIR}) + list(APPEND INC_SYS + ${TIFF_INCLUDE_DIR} + ) add_definitions(-DWITH_TIFF) endif() if(WITH_IMAGE_OPENJPEG) - list(APPEND INC_SYS ${OPENJPEG_INCLUDE_DIRS}) + list(APPEND INC_SYS + ${OPENJPEG_INCLUDE_DIRS} + ) add_definitions(-DWITH_OPENJPEG) endif() if(WITH_IMAGE_REDCODE) - list(APPEND INC_SYS ${REDCODE_INC}) + list(APPEND INC_SYS + ${REDCODE_INC} + ) add_definitions(-DWITH_REDCODE) endif() if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC + ../quicktime + ) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC ../../../intern/ffmpeg) - list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) + list(APPEND INC + ../../../intern/ffmpeg + ) + list(APPEND INC_SYS + ${FFMPEG_INCLUDE_DIRS} + ) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/imbuf/intern/dds/CMakeLists.txt b/source/blender/imbuf/intern/dds/CMakeLists.txt index fd2b94547b4..db3c85da884 100644 --- a/source/blender/imbuf/intern/dds/CMakeLists.txt +++ b/source/blender/imbuf/intern/dds/CMakeLists.txt @@ -28,7 +28,6 @@ set(INC . .. ../.. - intern/include ../../../blenlib ../../../blenkernel ../../../makesdna diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt index 9ca4dff5bc8..ca638b8356e 100644 --- a/source/blender/imbuf/intern/openexr/CMakeLists.txt +++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt @@ -30,7 +30,6 @@ set(INC ../.. ../../../blenkernel ../../../blenlib - intern/include ../../../../../intern/guardedalloc ../../../makesdna ) @@ -44,7 +43,9 @@ set(SRC ) if(WITH_IMAGE_OPENEXR) - list(APPEND INC_SYS ${OPENEXR_INCLUDE_DIRS}) + list(APPEND INC_SYS + ${OPENEXR_INCLUDE_DIRS} + ) add_definitions(-DWITH_OPENEXR) endif() diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 1db29855c18..c9865bf3df4 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -176,12 +176,16 @@ if(WITH_AUDASPACE) endif() if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../../quicktime) + list(APPEND INC + ../../quicktime + ) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) + list(APPEND INC_SYS + ${FFMPEG_INCLUDE_DIRS} + ) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt index 348e2a0ec1d..ba5a7ac64bc 100644 --- a/source/blender/modifiers/CMakeLists.txt +++ b/source/blender/modifiers/CMakeLists.txt @@ -25,7 +25,8 @@ # ***** END GPL LICENSE BLOCK ***** set(INC - . ./intern + . + ./intern ../blenlib ../blenloader ../makesdna @@ -98,7 +99,9 @@ endif() if(WITH_MOD_DECIMATE) add_definitions(-DWITH_MOD_DECIMATE) - list(APPEND INC ../../../intern/decimation/extern) + list(APPEND INC + ../../../intern/decimation/extern + ) endif() if(NOT WITH_MOD_FLUID) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index d2b58d61112..c3bd37c18ee 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -152,8 +152,12 @@ set(SRC ) if(WITH_PYTHON) - list(APPEND INC ../python) - list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS}) + list(APPEND INC + ../python + ) + list(APPEND INC_SYS + ${PYTHON_INCLUDE_DIRS} + ) add_definitions(-DWITH_PYTHON) endif() diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 287ba45a1cf..a1eb9585e83 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -88,9 +88,6 @@ if(WITH_PYTHON_SAFETY) endif() if(WITH_AUDASPACE) - list(APPEND INC - ../../../intern/audaspace/intern - ) add_definitions(-DWITH_AUDASPACE) endif() diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt index 6ce4954f053..6e72f053af7 100644 --- a/source/blender/quicktime/CMakeLists.txt +++ b/source/blender/quicktime/CMakeLists.txt @@ -26,17 +26,16 @@ set(INC . - ../quicktime - ../makesdna - ../makesrna - ../blenlib - ../blenkernel ../avi + ../blenkernel + ../blenlib + ../blenloader ../imbuf ../imbuf/intern - ../blenloader + ../makesdna + ../makesrna + ../quicktime ../render/extern/include - ../include ../windowmanager ../../../intern/guardedalloc ) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 003f0b839f8..9adebffc55e 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -125,8 +125,12 @@ if(WITH_MOD_SMOKE) endif() if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC + ../quicktime + ) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index f9c1d800c02..c815b4aad2f 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -89,18 +89,26 @@ if(WITH_OPENCOLLADA) endif() if(WITH_CODEC_QUICKTIME) - list(APPEND INC ../quicktime) - list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS}) + list(APPEND INC + ../quicktime + ) + list(APPEND INC_SYS + ${QUICKTIME_INCLUDE_DIRS} + ) add_definitions(-DWITH_QUICKTIME) endif() if(WITH_CODEC_FFMPEG) - list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS}) + list(APPEND INC_SYS + ${FFMPEG_INCLUDE_DIRS} + ) add_definitions(-DWITH_FFMPEG) endif() if(WITH_PYTHON) - list(APPEND INC ../python) + list(APPEND INC + ../python + ) add_definitions(-DWITH_PYTHON) if(WITH_PYTHON_SECURITY) -- cgit v1.2.3 From c9ad903af2b70013eaab85567e3affa8bcc6d172 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 17 Jul 2011 08:38:04 +0000 Subject: Added notifier listener for node editor. Now it behaves right on playback: - Starting playback "Anim Player" button appears on header. It used to appear only on mouse hover before. - Stopping playback triggers refresh on compositor, so actual result would be visible if image sequence/movie is used in nodes. --- source/blender/editors/space_node/space_node.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 029c55d0851..3c5f4a163a2 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -228,6 +228,13 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) else if (wmn->action == NA_SELECTED) ED_area_tag_redraw(sa); break; + case NC_SCREEN: + switch(wmn->data) { + case ND_ANIMPLAY: + ED_area_tag_refresh(sa); + break; + } + break; case NC_IMAGE: if (wmn->action == NA_EDITED) { -- cgit v1.2.3 From 5792bd7cc74581a5ac37325207c1cc6a338be9c7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 17 Jul 2011 09:11:13 +0000 Subject: cmake: cleanup include paths, some duplicates and going up some unneeded dirs. --- source/blender/avi/CMakeLists.txt | 2 +- source/blender/blenfont/CMakeLists.txt | 4 ++-- source/blender/blenkernel/CMakeLists.txt | 2 +- source/blender/blenlib/CMakeLists.txt | 2 +- source/blender/blenloader/CMakeLists.txt | 2 +- source/blender/blenpluginapi/CMakeLists.txt | 2 +- source/blender/collada/CMakeLists.txt | 6 +++--- source/blender/editors/animation/CMakeLists.txt | 2 +- source/blender/editors/armature/CMakeLists.txt | 2 +- source/blender/editors/curve/CMakeLists.txt | 2 +- source/blender/editors/gpencil/CMakeLists.txt | 2 +- source/blender/editors/interface/CMakeLists.txt | 2 +- source/blender/editors/mesh/CMakeLists.txt | 4 ++-- source/blender/editors/metaball/CMakeLists.txt | 2 +- source/blender/editors/object/CMakeLists.txt | 4 ++-- source/blender/editors/physics/CMakeLists.txt | 2 +- source/blender/editors/screen/CMakeLists.txt | 2 +- source/blender/editors/sculpt_paint/CMakeLists.txt | 6 +++--- source/blender/editors/sound/CMakeLists.txt | 2 +- source/blender/editors/space_action/CMakeLists.txt | 2 +- source/blender/editors/space_api/CMakeLists.txt | 2 +- source/blender/editors/space_buttons/CMakeLists.txt | 2 +- source/blender/editors/space_file/CMakeLists.txt | 2 +- source/blender/editors/space_graph/CMakeLists.txt | 2 +- source/blender/editors/space_image/CMakeLists.txt | 4 ++-- source/blender/editors/space_info/CMakeLists.txt | 2 +- source/blender/editors/space_logic/CMakeLists.txt | 4 ++-- source/blender/editors/space_nla/CMakeLists.txt | 2 +- source/blender/editors/space_node/CMakeLists.txt | 4 ++-- source/blender/editors/space_outliner/CMakeLists.txt | 2 +- source/blender/editors/space_script/CMakeLists.txt | 2 +- source/blender/editors/space_sequencer/CMakeLists.txt | 2 +- source/blender/editors/space_sound/CMakeLists.txt | 2 +- source/blender/editors/space_text/CMakeLists.txt | 2 +- source/blender/editors/space_time/CMakeLists.txt | 2 +- source/blender/editors/space_userpref/CMakeLists.txt | 2 +- source/blender/editors/space_view3d/CMakeLists.txt | 6 +++--- source/blender/editors/transform/CMakeLists.txt | 2 +- source/blender/editors/util/CMakeLists.txt | 2 +- source/blender/editors/uvedit/CMakeLists.txt | 2 +- source/blender/gpu/CMakeLists.txt | 2 +- source/blender/ikplugin/CMakeLists.txt | 4 ++-- source/blender/imbuf/CMakeLists.txt | 4 ++-- source/blender/imbuf/intern/cineon/CMakeLists.txt | 2 +- source/blender/imbuf/intern/dds/CMakeLists.txt | 2 +- source/blender/imbuf/intern/openexr/CMakeLists.txt | 2 +- source/blender/modifiers/CMakeLists.txt | 8 ++++---- source/blender/python/generic/CMakeLists.txt | 4 ++-- source/blender/python/intern/CMakeLists.txt | 6 +++--- source/blender/quicktime/CMakeLists.txt | 1 - source/blender/render/CMakeLists.txt | 10 +++++----- source/blender/windowmanager/CMakeLists.txt | 18 +++++++++--------- 52 files changed, 83 insertions(+), 84 deletions(-) (limited to 'source/blender') diff --git a/source/blender/avi/CMakeLists.txt b/source/blender/avi/CMakeLists.txt index bae61fd678b..0fd6435ec4e 100644 --- a/source/blender/avi/CMakeLists.txt +++ b/source/blender/avi/CMakeLists.txt @@ -26,8 +26,8 @@ set(INC . - ../../../intern/guardedalloc ../blenlib + ../../../intern/guardedalloc ) set(INC_SYS diff --git a/source/blender/blenfont/CMakeLists.txt b/source/blender/blenfont/CMakeLists.txt index 0258a41fb56..82099d4f125 100644 --- a/source/blender/blenfont/CMakeLists.txt +++ b/source/blender/blenfont/CMakeLists.txt @@ -24,10 +24,10 @@ set(INC . + ../blenkernel ../blenlib - ../makesdna ../editors/include - ../blenkernel + ../makesdna ../../../intern/guardedalloc ) diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index a3c3357508f..9a384c40e24 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -55,7 +55,7 @@ set(INC ../../../intern/smoke/extern # XXX - BAD LEVEL CALL WM_api.h - ../../../source/blender/windowmanager + ../windowmanager ) set(INC_SYS diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index de7695b63cf..b4fc983008c 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -26,10 +26,10 @@ set(INC . - ../makesdna ../blenkernel ../blenloader ../gpu + ../makesdna ../../../intern/ghost ../../../intern/guardedalloc ) diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt index 312a6546e22..be15b191c8a 100644 --- a/source/blender/blenloader/CMakeLists.txt +++ b/source/blender/blenloader/CMakeLists.txt @@ -26,8 +26,8 @@ set(INC . - ../blenlib ../blenkernel + ../blenlib ../makesdna ../makesrna ../render/extern/include diff --git a/source/blender/blenpluginapi/CMakeLists.txt b/source/blender/blenpluginapi/CMakeLists.txt index 193e40147e1..9d398291b85 100644 --- a/source/blender/blenpluginapi/CMakeLists.txt +++ b/source/blender/blenpluginapi/CMakeLists.txt @@ -28,9 +28,9 @@ set(INC . .. ../blenlib + ../blenloader ../imbuf ../makesdna - ../blenloader ../../../intern/guardedalloc ) diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index 07da532146f..e2a68d19682 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -28,13 +28,13 @@ remove_strict_flags() set(INC . - ../blenlib ../blenkernel + ../blenlib ../blenloader - ../windowmanager + ../editors/include ../makesdna ../makesrna - ../editors/include + ../windowmanager ../../../intern/guardedalloc ) diff --git a/source/blender/editors/animation/CMakeLists.txt b/source/blender/editors/animation/CMakeLists.txt index a3c1d035d9b..83fe91d6f76 100644 --- a/source/blender/editors/animation/CMakeLists.txt +++ b/source/blender/editors/animation/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/armature/CMakeLists.txt b/source/blender/editors/armature/CMakeLists.txt index 2db6e278460..9a44525611a 100644 --- a/source/blender/editors/armature/CMakeLists.txt +++ b/source/blender/editors/armature/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/curve/CMakeLists.txt b/source/blender/editors/curve/CMakeLists.txt index dfc7e336e84..9bad02eca1f 100644 --- a/source/blender/editors/curve/CMakeLists.txt +++ b/source/blender/editors/curve/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/gpencil/CMakeLists.txt b/source/blender/editors/gpencil/CMakeLists.txt index 352960d285a..7a2f196fd6d 100644 --- a/source/blender/editors/gpencil/CMakeLists.txt +++ b/source/blender/editors/gpencil/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt index 6dd7af70e33..cc4c1eaa21c 100644 --- a/source/blender/editors/interface/CMakeLists.txt +++ b/source/blender/editors/interface/CMakeLists.txt @@ -23,8 +23,8 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../gpu ../../imbuf ../../makesdna diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt index bd8789b9eef..02a25a2a122 100644 --- a/source/blender/editors/mesh/CMakeLists.txt +++ b/source/blender/editors/mesh/CMakeLists.txt @@ -22,13 +22,13 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/metaball/CMakeLists.txt b/source/blender/editors/metaball/CMakeLists.txt index 690a8ec2fcb..76561b12183 100644 --- a/source/blender/editors/metaball/CMakeLists.txt +++ b/source/blender/editors/metaball/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../render/extern/include diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt index 4d50b78b7a1..14b40d55f11 100644 --- a/source/blender/editors/object/CMakeLists.txt +++ b/source/blender/editors/object/CMakeLists.txt @@ -22,16 +22,16 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../gpu ../../ikplugin ../../imbuf ../../makesdna ../../makesrna ../../python - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/physics/CMakeLists.txt b/source/blender/editors/physics/CMakeLists.txt index 1badccffe3b..f32b23cd3ee 100644 --- a/source/blender/editors/physics/CMakeLists.txt +++ b/source/blender/editors/physics/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/screen/CMakeLists.txt b/source/blender/editors/screen/CMakeLists.txt index 54341257692..4282110901b 100644 --- a/source/blender/editors/screen/CMakeLists.txt +++ b/source/blender/editors/screen/CMakeLists.txt @@ -23,8 +23,8 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt index 6ecbc9c5eec..94e08a020f6 100644 --- a/source/blender/editors/sculpt_paint/CMakeLists.txt +++ b/source/blender/editors/sculpt_paint/CMakeLists.txt @@ -22,14 +22,14 @@ set(INC ../include ../../blenkernel + ../../blenlib ../../blenloader - ../../imbuf ../../gpu - ../../blenlib + ../../imbuf ../../makesdna ../../makesrna - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt index 55af283b5de..f66288812ad 100644 --- a/source/blender/editors/sound/CMakeLists.txt +++ b/source/blender/editors/sound/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_action/CMakeLists.txt b/source/blender/editors/space_action/CMakeLists.txt index 6789556aa2b..edebaa8273a 100644 --- a/source/blender/editors/space_action/CMakeLists.txt +++ b/source/blender/editors/space_action/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_api/CMakeLists.txt b/source/blender/editors/space_api/CMakeLists.txt index c2dc2582c82..4cbb290be76 100644 --- a/source/blender/editors/space_api/CMakeLists.txt +++ b/source/blender/editors/space_api/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt index 0a4f251e46f..631e2adea34 100644 --- a/source/blender/editors/space_buttons/CMakeLists.txt +++ b/source/blender/editors/space_buttons/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_file/CMakeLists.txt b/source/blender/editors/space_file/CMakeLists.txt index afa746ea359..4aa6cdbcf2f 100644 --- a/source/blender/editors/space_file/CMakeLists.txt +++ b/source/blender/editors/space_file/CMakeLists.txt @@ -28,8 +28,8 @@ set(INC ../../imbuf ../../makesdna ../../makesrna - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/space_graph/CMakeLists.txt b/source/blender/editors/space_graph/CMakeLists.txt index b7cde90546c..80205ad5564 100644 --- a/source/blender/editors/space_graph/CMakeLists.txt +++ b/source/blender/editors/space_graph/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt index 7c2d7ffb47b..0d4408faf49 100644 --- a/source/blender/editors/space_image/CMakeLists.txt +++ b/source/blender/editors/space_image/CMakeLists.txt @@ -23,13 +23,13 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/space_info/CMakeLists.txt b/source/blender/editors/space_info/CMakeLists.txt index c6ed1b7bac7..22347df93a3 100644 --- a/source/blender/editors/space_info/CMakeLists.txt +++ b/source/blender/editors/space_info/CMakeLists.txt @@ -23,8 +23,8 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna diff --git a/source/blender/editors/space_logic/CMakeLists.txt b/source/blender/editors/space_logic/CMakeLists.txt index cd24cb5e5d0..44471902040 100644 --- a/source/blender/editors/space_logic/CMakeLists.txt +++ b/source/blender/editors/space_logic/CMakeLists.txt @@ -21,13 +21,13 @@ set(INC ../include + ../interface ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager - ../../editors/interface ../../../../intern/guardedalloc ) diff --git a/source/blender/editors/space_nla/CMakeLists.txt b/source/blender/editors/space_nla/CMakeLists.txt index 1bf04f4dc37..b05d157365d 100644 --- a/source/blender/editors/space_nla/CMakeLists.txt +++ b/source/blender/editors/space_nla/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt index 9172bc4e9eb..dcd6bcd3403 100644 --- a/source/blender/editors/space_node/CMakeLists.txt +++ b/source/blender/editors/space_node/CMakeLists.txt @@ -23,14 +23,14 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna ../../nodes - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ../../../../intern/opennl/extern ) diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt index c05350c256f..4194d463e10 100644 --- a/source/blender/editors/space_outliner/CMakeLists.txt +++ b/source/blender/editors/space_outliner/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna diff --git a/source/blender/editors/space_script/CMakeLists.txt b/source/blender/editors/space_script/CMakeLists.txt index 1884852d3ad..9d3bd4a67aa 100644 --- a/source/blender/editors/space_script/CMakeLists.txt +++ b/source/blender/editors/space_script/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt index 71a4cfca868..9ce5f8e5279 100644 --- a/source/blender/editors/space_sequencer/CMakeLists.txt +++ b/source/blender/editors/space_sequencer/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../imbuf ../../makesdna ../../makesrna diff --git a/source/blender/editors/space_sound/CMakeLists.txt b/source/blender/editors/space_sound/CMakeLists.txt index 367d07c0c0b..870065966cc 100644 --- a/source/blender/editors/space_sound/CMakeLists.txt +++ b/source/blender/editors/space_sound/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt index 145da6c9aaa..acf00d205a6 100644 --- a/source/blender/editors/space_text/CMakeLists.txt +++ b/source/blender/editors/space_text/CMakeLists.txt @@ -23,8 +23,8 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_time/CMakeLists.txt b/source/blender/editors/space_time/CMakeLists.txt index 79081c7cfd4..758d1e629f9 100644 --- a/source/blender/editors/space_time/CMakeLists.txt +++ b/source/blender/editors/space_time/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_userpref/CMakeLists.txt b/source/blender/editors/space_userpref/CMakeLists.txt index 656a5d2f0ef..43ac90dce94 100644 --- a/source/blender/editors/space_userpref/CMakeLists.txt +++ b/source/blender/editors/space_userpref/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt index e83e51aaa4f..c6e936606c8 100644 --- a/source/blender/editors/space_view3d/CMakeLists.txt +++ b/source/blender/editors/space_view3d/CMakeLists.txt @@ -23,14 +23,14 @@ set(INC ../include ../../blenfont ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../gpu ../../imbuf ../../makesdna ../../makesrna - ../../windowmanager ../../render/extern/include + ../../windowmanager ../../../../intern/guardedalloc ../../../../intern/smoke/extern ) @@ -62,7 +62,7 @@ set(SRC if(WITH_GAMEENGINE) list(APPEND INC - ../../../../source/gameengine/BlenderRoutines + ../../../gameengine/BlenderRoutines ) add_definitions(-DWITH_GAMEENGINE) endif() diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt index 8eb8d538396..283b09f42e4 100644 --- a/source/blender/editors/transform/CMakeLists.txt +++ b/source/blender/editors/transform/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt index 8e5415945c7..72f13c14f5d 100644 --- a/source/blender/editors/util/CMakeLists.txt +++ b/source/blender/editors/util/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/editors/uvedit/CMakeLists.txt b/source/blender/editors/uvedit/CMakeLists.txt index 11e1703d84c..552e1b60154 100644 --- a/source/blender/editors/uvedit/CMakeLists.txt +++ b/source/blender/editors/uvedit/CMakeLists.txt @@ -22,8 +22,8 @@ set(INC ../include ../../blenkernel - ../../blenloader ../../blenlib + ../../blenloader ../../makesdna ../../makesrna ../../windowmanager diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 76e347270ba..8f575dfb50b 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -26,8 +26,8 @@ set(INC . - ../blenlib ../blenkernel + ../blenlib ../blenloader ../imbuf ../makesdna diff --git a/source/blender/ikplugin/CMakeLists.txt b/source/blender/ikplugin/CMakeLists.txt index da5c2f69635..dc637aedd6d 100644 --- a/source/blender/ikplugin/CMakeLists.txt +++ b/source/blender/ikplugin/CMakeLists.txt @@ -25,10 +25,10 @@ # ***** END GPL LICENSE BLOCK ***** set(INC + . + ../blenkernel ../blenlib ../makesdna - ../blenkernel - ../ikplugin ../../../intern/guardedalloc ../../../intern/iksolver/extern ) diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 1517432f614..18b5eff5c73 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -32,12 +32,12 @@ endif() set(INC . ../avi - ../blenlib ../blenkernel + ../blenlib ../blenloader ../makesdna - ../../../intern/memutil ../../../intern/guardedalloc + ../../../intern/memutil ) set(INC_SYS diff --git a/source/blender/imbuf/intern/cineon/CMakeLists.txt b/source/blender/imbuf/intern/cineon/CMakeLists.txt index 079f34af773..4f7f20beecf 100644 --- a/source/blender/imbuf/intern/cineon/CMakeLists.txt +++ b/source/blender/imbuf/intern/cineon/CMakeLists.txt @@ -29,8 +29,8 @@ set(INC .. ../.. ../../../blenkernel - ../../../blenloader ../../../blenlib + ../../../blenloader ../../../makesdna ../../../../../intern/guardedalloc ) diff --git a/source/blender/imbuf/intern/dds/CMakeLists.txt b/source/blender/imbuf/intern/dds/CMakeLists.txt index db3c85da884..53822b830f7 100644 --- a/source/blender/imbuf/intern/dds/CMakeLists.txt +++ b/source/blender/imbuf/intern/dds/CMakeLists.txt @@ -28,8 +28,8 @@ set(INC . .. ../.. - ../../../blenlib ../../../blenkernel + ../../../blenlib ../../../makesdna ../../../../../intern/guardedalloc ) diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt index ca638b8356e..3be5219ae44 100644 --- a/source/blender/imbuf/intern/openexr/CMakeLists.txt +++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt @@ -30,8 +30,8 @@ set(INC ../.. ../../../blenkernel ../../../blenlib - ../../../../../intern/guardedalloc ../../../makesdna + ../../../../../intern/guardedalloc ) set(INC_SYS diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt index ba5a7ac64bc..d1f153265ac 100644 --- a/source/blender/modifiers/CMakeLists.txt +++ b/source/blender/modifiers/CMakeLists.txt @@ -26,15 +26,15 @@ set(INC . - ./intern + intern + ../blenkernel + ../blenkernel/intern ../blenlib ../blenloader ../makesdna - ../blenkernel - ../blenkernel/intern ../render/extern/include - ../../../intern/guardedalloc ../../../intern/elbeem/extern + ../../../intern/guardedalloc ) set(INC_SYS diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt index 794b31b4ed3..8dfbf476995 100644 --- a/source/blender/python/generic/CMakeLists.txt +++ b/source/blender/python/generic/CMakeLists.txt @@ -20,10 +20,10 @@ set(INC . - ../../blenlib - ../../makesdna ../../blenkernel + ../../blenlib ../../blenloader + ../../makesdna ../../../../intern/guardedalloc ) diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index a1eb9585e83..93a4b3ec269 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -25,13 +25,13 @@ set(INC .. + ../../blenkernel ../../blenlib + ../../blenloader + ../../editors/include ../../makesdna ../../makesrna - ../../blenkernel - ../../blenloader ../../windowmanager - ../../editors/include ../../../../intern/guardedalloc ) diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt index 6e72f053af7..b647466d2a8 100644 --- a/source/blender/quicktime/CMakeLists.txt +++ b/source/blender/quicktime/CMakeLists.txt @@ -34,7 +34,6 @@ set(INC ../imbuf/intern ../makesdna ../makesrna - ../quicktime ../render/extern/include ../windowmanager ../../../intern/guardedalloc diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 9adebffc55e..90aef816e2c 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -26,17 +26,17 @@ set(INC - intern/include extern/include + intern/include + ../blenkernel ../blenlib ../blenloader + ../imbuf ../makesdna ../makesrna - ../blenkernel - ../imbuf - ../../../intern/smoke/extern - ../../../intern/mikktspace ../../../intern/guardedalloc + ../../../intern/mikktspace + ../../../intern/smoke/extern ) set(INC_SYS diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index c815b4aad2f..20ac3ba7077 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -26,23 +26,23 @@ set(INC . - ../nodes - ../gpu ../blenfont - ../blenlib - ../makesdna - ../makesrna ../blenkernel - ../imbuf + ../blenlib ../blenloader ../editors/include + ../gpu + ../imbuf + ../makesdna + ../makesrna + ../nodes ../render/extern/include - ../../../intern/guardedalloc - ../../../intern/memutil + ../../gameengine/BlenderRoutines ../../../intern/elbeem/extern ../../../intern/ghost + ../../../intern/guardedalloc + ../../../intern/memutil ../../../intern/opennl/extern - ../../../source/gameengine/BlenderRoutines ) set(INC_SYS -- cgit v1.2.3 From 7f850ff25dbc0523c43ce344f49d47b78d24e514 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 17 Jul 2011 12:30:23 +0000 Subject: 'bgl' python module. - add back slicing for buffers, (was previously in 2.4x but not working in py3): buf = bgl.Buffer(...) ls = buf[:] - fix for crash with negative index access not being clamped. - improve repr() function for multi dimensional buffers. - add back 'list' attribute, but print deprecation warning. --- source/blender/python/generic/bgl.c | 248 +++++++++++++++++++++++++----------- 1 file changed, 173 insertions(+), 75 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 18d01f45015..603f9f31743 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -48,12 +48,15 @@ static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Buffer sequence methods */ -static int Buffer_len(PyObject *self); -static PyObject *Buffer_item(PyObject *self, int i); -static PyObject *Buffer_slice(PyObject *self, int begin, int end); -static int Buffer_ass_item(PyObject *self, int i, PyObject *v); -static int Buffer_ass_slice(PyObject *self, int begin, int end, +static int Buffer_len(Buffer *self); +static PyObject *Buffer_item(Buffer *self, int i); +static PyObject *Buffer_slice(Buffer *self, int begin, int end); +static int Buffer_ass_item(Buffer *self, int i, PyObject *v); +static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq); +static PyObject *Buffer_subscript(Buffer *self, PyObject *item); +static int Buffer_ass_subscript(Buffer *self, PyObject *item, + PyObject *value); static PySequenceMethods Buffer_SeqMethods = { (lenfunc) Buffer_len, /*sq_length */ @@ -68,12 +71,19 @@ static PySequenceMethods Buffer_SeqMethods = { (ssizeargfunc) NULL, /* sq_inplace_repeat */ }; -static void Buffer_dealloc(PyObject *self); -static PyObject *Buffer_repr(PyObject *self); -static PyObject *Buffer_to_list(PyObject *self) +static PyMappingMethods Buffer_AsMapping = { + (lenfunc)Buffer_len, + (binaryfunc)Buffer_subscript, + (objobjargproc)Buffer_ass_subscript +}; + +static void Buffer_dealloc(Buffer *self); +static PyObject *Buffer_repr(Buffer *self); + +static PyObject *Buffer_to_list(Buffer *self) { - int i, len= ((Buffer *)self)->dimensions[0]; + int i, len= self->dimensions[0]; PyObject *list= PyList_New(len); for (i=0; indimensions > 1) { + int i, len= self->dimensions[0]; + list= PyList_New(len); + + for (i=0; indimensions); + fprintf(stderr, "Warning: 'Buffer.list' deprecated, use '[:]' instead\n"); + return Buffer_to_list(self); +} + +static PyObject *Buffer_dimensions(Buffer *self, void *UNUSED(arg)) +{ + PyObject *list= PyList_New(self->ndimensions); int i; - for (i= 0; indimensions; i++) { - PyList_SET_ITEM(list, i, PyLong_FromLong(buffer->dimensions[i])); + for (i= 0; indimensions; i++) { + PyList_SET_ITEM(list, i, PyLong_FromLong(self->dimensions[i])); } return list; } static PyMethodDef Buffer_methods[] = { - {"to_list", (PyCFunction)Buffer_to_list, METH_NOARGS, + {"to_list", (PyCFunction)Buffer_to_list_recursive, METH_NOARGS, "return the buffer as a list"}, {NULL, NULL, 0, NULL} }; static PyGetSetDef Buffer_getseters[] = { + {(char *)"list", (getter)Buffer_list, NULL, NULL, NULL}, {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL, NULL} }; @@ -121,7 +159,7 @@ PyTypeObject BGL_bufferType = { (reprfunc) Buffer_repr, /*tp_repr */ NULL, /*tp_as_number */ &Buffer_SeqMethods, /*tp_as_sequence */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + &Buffer_AsMapping, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ @@ -262,7 +300,8 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject int ndimensions = 0; if(kwds && PyDict_Size(kwds)) { - PyErr_SetString(PyExc_TypeError, "bgl.Buffer(): takes no keyword args"); + PyErr_SetString(PyExc_TypeError, + "bgl.Buffer(): takes no keyword args"); return NULL; } @@ -319,7 +358,7 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject buffer= BGL_MakeBuffer(type, ndimensions, dimensions, NULL); if (init && ndimensions) { - if (Buffer_ass_slice((PyObject *) buffer, 0, dimensions[0], init)) { + if (Buffer_ass_slice(buffer, 0, dimensions[0], init)) { Py_DECREF(buffer); return NULL; } @@ -330,51 +369,48 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject /*@ Buffer sequence methods */ -static int Buffer_len(PyObject *self) +static int Buffer_len(Buffer *self) { - Buffer *buf= (Buffer *) self; - return buf->dimensions[0]; + return self->dimensions[0]; } -static PyObject *Buffer_item(PyObject *self, int i) +static PyObject *Buffer_item(Buffer *self, int i) { - Buffer *buf= (Buffer *) self; - - if (i >= buf->dimensions[0]) { + if (i >= self->dimensions[0] || i < 0) { PyErr_SetString(PyExc_IndexError, "array index out of range"); return NULL; } - if (buf->ndimensions==1) { - switch (buf->type) { - case GL_BYTE: return Py_BuildValue("b", buf->buf.asbyte[i]); - case GL_SHORT: return Py_BuildValue("h", buf->buf.asshort[i]); - case GL_INT: return Py_BuildValue("i", buf->buf.asint[i]); - case GL_FLOAT: return PyFloat_FromDouble(buf->buf.asfloat[i]); - case GL_DOUBLE: return Py_BuildValue("d", buf->buf.asdouble[i]); + if (self->ndimensions==1) { + switch (self->type) { + case GL_BYTE: return Py_BuildValue("b", self->buf.asbyte[i]); + case GL_SHORT: return Py_BuildValue("h", self->buf.asshort[i]); + case GL_INT: return Py_BuildValue("i", self->buf.asint[i]); + case GL_FLOAT: return PyFloat_FromDouble(self->buf.asfloat[i]); + case GL_DOUBLE: return Py_BuildValue("d", self->buf.asdouble[i]); } } else { Buffer *newbuf; int j, length, size; - + length= 1; - for (j=1; jndimensions; j++) { - length*= buf->dimensions[j]; + for (j=1; j < self->ndimensions; j++) { + length *= self->dimensions[j]; } - size= BGL_typeSize(buf->type); + size= BGL_typeSize(self->type); newbuf= (Buffer *) PyObject_NEW(Buffer, &BGL_bufferType); Py_INCREF(self); - newbuf->parent= self; + newbuf->parent= (PyObject *)self; - newbuf->ndimensions= buf->ndimensions-1; - newbuf->type= buf->type; - newbuf->buf.asvoid= buf->buf.asbyte + i*length*size; + newbuf->ndimensions= self->ndimensions - 1; + newbuf->type= self->type; + newbuf->buf.asvoid= self->buf.asbyte + i*length*size; newbuf->dimensions= MEM_mallocN(newbuf->ndimensions*sizeof(int), "Buffer dimensions"); - memcpy(newbuf->dimensions, buf->dimensions+1, + memcpy(newbuf->dimensions, self->dimensions+1, newbuf->ndimensions*sizeof(int)); return (PyObject *) newbuf; @@ -383,16 +419,14 @@ static PyObject *Buffer_item(PyObject *self, int i) return NULL; } -static PyObject *Buffer_slice(PyObject *self, int begin, int end) +static PyObject *Buffer_slice(Buffer *self, int begin, int end) { - Buffer *buf= (Buffer *) self; PyObject *list; int count; - if (begin<0) begin= 0; - if (end>buf->dimensions[0]) - end= buf->dimensions[0]; - if (begin>end) begin= end; + if (begin < 0) begin= 0; + if (end > self->dimensions[0]) end= self->dimensions[0]; + if (begin > end) begin= end; list= PyList_New(end-begin); @@ -402,21 +436,19 @@ static PyObject *Buffer_slice(PyObject *self, int begin, int end) return list; } -static int Buffer_ass_item(PyObject *self, int i, PyObject *v) +static int Buffer_ass_item(Buffer *self, int i, PyObject *v) { - Buffer *buf= (Buffer *) self; - - if (i >= buf->dimensions[0]) { + if (i >= self->dimensions[0] || i < 0) { PyErr_SetString(PyExc_IndexError, "array assignment index out of range"); return -1; } - if (buf->ndimensions!=1) { - PyObject *row= Buffer_item(self, i); + if (self->ndimensions!=1) { + Buffer *row= (Buffer *)Buffer_item(self, i); if (row) { - int ret= Buffer_ass_slice(row, 0, buf->dimensions[1], v); + int ret= Buffer_ass_slice(row, 0, self->dimensions[1], v); Py_DECREF(row); return ret; } @@ -425,31 +457,30 @@ static int Buffer_ass_item(PyObject *self, int i, PyObject *v) } } - switch(buf->type) { + switch(self->type) { case GL_BYTE: - return PyArg_Parse(v, "b:Expected ints", &buf->buf.asbyte[i]) ? 0:-1; + return PyArg_Parse(v, "b:Expected ints", &self->buf.asbyte[i]) ? 0:-1; case GL_SHORT: - return PyArg_Parse(v, "h:Expected ints", &buf->buf.asshort[i]) ? 0:-1; + return PyArg_Parse(v, "h:Expected ints", &self->buf.asshort[i]) ? 0:-1; case GL_INT: - return PyArg_Parse(v, "i:Expected ints", &buf->buf.asint[i]) ? 0:-1; + return PyArg_Parse(v, "i:Expected ints", &self->buf.asint[i]) ? 0:-1; case GL_FLOAT: - return PyArg_Parse(v, "f:Expected floats", &buf->buf.asfloat[i]) ? 0:-1; + return PyArg_Parse(v, "f:Expected floats", &self->buf.asfloat[i]) ? 0:-1; case GL_DOUBLE: - return PyArg_Parse(v, "d:Expected floats", &buf->buf.asdouble[i]) ? 0:-1; + return PyArg_Parse(v, "d:Expected floats", &self->buf.asdouble[i]) ? 0:-1; default: return 0; /* should never happen */ } } -static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq) +static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq) { - Buffer *buf= (Buffer *) self; PyObject *item; int count, err=0; - if (begin<0) begin= 0; - if (end>buf->dimensions[0]) end= buf->dimensions[0]; - if (begin>end) begin= end; + if (begin < 0) begin= 0; + if (end > self->dimensions[0]) end= self->dimensions[0]; + if (begin > end) begin= end; if (!PySequence_Check(seq)) { PyErr_Format(PyExc_TypeError, @@ -481,27 +512,94 @@ static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq) return err; } -static void Buffer_dealloc(PyObject *self) +static PyObject *Buffer_subscript(Buffer *self, PyObject *item) { - Buffer *buf = (Buffer *)self; + if (PyIndex_Check(item)) { + Py_ssize_t i; + i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return NULL; + if (i < 0) + i += self->dimensions[0]; + return Buffer_item(self, i); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; - if (buf->parent) Py_DECREF(buf->parent); - else MEM_freeN (buf->buf.asvoid); + if (PySlice_GetIndicesEx((void *)item, self->dimensions[0], &start, &stop, &step, &slicelength) < 0) + return NULL; + + if (slicelength <= 0) { + return PyTuple_New(0); + } + else if (step == 1) { + return Buffer_slice(self, start, stop); + } + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with vectors"); + return NULL; + } + } + else { + PyErr_Format(PyExc_TypeError, + "buffer indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return NULL; + } +} + +static int Buffer_ass_subscript(Buffer *self, PyObject *item, PyObject *value) +{ + if (PyIndex_Check(item)) { + Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError); + if (i == -1 && PyErr_Occurred()) + return -1; + if (i < 0) + i += self->dimensions[0]; + return Buffer_ass_item(self, i, value); + } + else if (PySlice_Check(item)) { + Py_ssize_t start, stop, step, slicelength; + + if (PySlice_GetIndicesEx((void *)item, self->dimensions[0], &start, &stop, &step, &slicelength) < 0) + return -1; + + if (step == 1) + return Buffer_ass_slice(self, start, stop, value); + else { + PyErr_SetString(PyExc_IndexError, + "slice steps not supported with vectors"); + return -1; + } + } + else { + PyErr_Format(PyExc_TypeError, + "buffer indices must be integers, not %.200s", + Py_TYPE(item)->tp_name); + return -1; + } +} + + +static void Buffer_dealloc(Buffer *self) +{ + if (self->parent) Py_DECREF(self->parent); + else MEM_freeN (self->buf.asvoid); + + MEM_freeN(self->dimensions); - MEM_freeN (buf->dimensions); - PyObject_DEL(self); } -static PyObject *Buffer_repr(PyObject *self) +static PyObject *Buffer_repr(Buffer *self) { - PyObject *list= Buffer_to_list(self); + PyObject *list= Buffer_to_list_recursive(self); PyObject *repr; const char *typestr= "UNKNOWN"; - Buffer *buffer= (Buffer *)self; - switch(buffer->type) { + switch(self->type) { case GL_BYTE: typestr= "GL_BYTE"; break; case GL_SHORT: typestr= "GL_SHORT"; break; case GL_INT: typestr= "GL_BYTE"; break; -- cgit v1.2.3 From a0b769ce0efdb54b8c775aff486319be858dba74 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 17 Jul 2011 12:37:38 +0000 Subject: Bugfix [#27412] PoseLib bug(maybe also corrupted data) * Find first unused frame function was failing to correctly detect conflicts with the lower bound due to the way that markers are not stored in sorted order. Fixed by performing additional search passes. * Fixed some update bugs where there were missing notifiers. Most noticable when the poselib is being viewed in an Action Editor --- source/blender/editors/armature/poselib.c | 49 ++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c index 57da7733223..d09c4f1b5e0 100644 --- a/source/blender/editors/armature/poselib.c +++ b/source/blender/editors/armature/poselib.c @@ -110,22 +110,34 @@ static int poselib_get_free_index (bAction *act) { TimeMarker *marker; int low=0, high=0; + short changed = 0; /* sanity checks */ if (ELEM(NULL, act, act->markers.first)) return 1; - /* loop over poses finding various values (poses are not stored in chronological order) */ - for (marker= act->markers.first; marker; marker= marker->next) { - /* only increase low if value is 1 greater than low, to find "gaps" where - * poses were removed from the poselib - */ - if (marker->frame == (low + 1)) - low++; + /* As poses are not stored in chronological order, we must iterate over this list + * a few times until we don't make any new discoveries (mostly about the lower bound). + * Prevents problems with deleting then trying to add new poses [#27412] + */ + do { + changed = 0; - /* value replaces high if it is the highest value encountered yet */ - if (marker->frame > high) - high= marker->frame; - } + for (marker= act->markers.first; marker; marker= marker->next) { + /* only increase low if value is 1 greater than low, to find "gaps" where + * poses were removed from the poselib + */ + if (marker->frame == (low + 1)) { + low++; + changed = 1; + } + + /* value replaces high if it is the highest value encountered yet */ + if (marker->frame > high) { + high= marker->frame; + changed = 1; + } + } + } while (changed != 0); /* - if low is not equal to high, then low+1 is a gap * - if low is equal to high, then high+1 is the next index (add at end) @@ -331,6 +343,11 @@ static int poselib_sanitise_exec (bContext *C, wmOperator *op) /* free temp memory */ BLI_dlrbTree_free(&keys); + /* send notifiers for this - using keyframe editing notifiers, since action + * may be being shown in anim editors as active action + */ + WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); + return OPERATOR_FINISHED; } @@ -555,6 +572,11 @@ static int poselib_remove_exec (bContext *C, wmOperator *op) /* fix active pose number */ act->active_marker= 0; + /* send notifiers for this - using keyframe editing notifiers, since action + * may be being shown in anim editors as active action + */ + WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); + /* done */ return OPERATOR_FINISHED; } @@ -637,6 +659,11 @@ static int poselib_rename_exec (bContext *C, wmOperator *op) BLI_strncpy(marker->name, newname, sizeof(marker->name)); BLI_uniquename(&act->markers, marker, "Pose", '.', offsetof(TimeMarker, name), sizeof(marker->name)); + /* send notifiers for this - using keyframe editing notifiers, since action + * may be being shown in anim editors as active action + */ + WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); + /* done */ return OPERATOR_FINISHED; } -- cgit v1.2.3 From ebf21a98487cb851fdd1a3559fc8f890c347aad9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 17 Jul 2011 12:40:18 +0000 Subject: patch [#28001] Find the nearest point on an object to the given location from Andrew Hale (trumanblending) --- source/blender/makesrna/intern/rna_object_api.c | 55 +++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index d6af04f2475..b33935b7bed 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -415,6 +415,41 @@ void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], fl *index= -1; } +void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float point_co[3], float n_location[3], float n_normal[3], int *index) +{ + BVHTreeFromMesh treeData= {NULL}; + + if(ob->derivedFinal==NULL) { + BKE_reportf(reports, RPT_ERROR, "object \"%s\" has no mesh data to be used for finding nearest point.", ob->id.name+2); + return; + } + + /* no need to managing allocation or freeing of the BVH data. this is generated and freed as needed */ + bvhtree_from_mesh_faces(&treeData, ob->derivedFinal, 0.0f, 4, 6); + + if(treeData.tree==NULL) { + BKE_reportf(reports, RPT_ERROR, "object \"%s\" could not create internal data for finding nearest point", ob->id.name+2); + return; + } + else { + BVHTreeNearest nearest; + + nearest.index = -1; + nearest.dist = FLT_MAX; + + if(BLI_bvhtree_find_nearest(treeData.tree, point_co, &nearest, treeData.nearest_callback, &treeData) != -1) { + copy_v3_v3(n_location, nearest.co); + copy_v3_v3(n_normal, nearest.no); + *index= nearest.index; + return; + } + } + + zero_v3(n_location); + zero_v3(n_normal); + *index= -1; +} + /* ObjectBase */ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d) @@ -501,6 +536,26 @@ void RNA_api_object(StructRNA *srna) parm= RNA_def_int(func, "index", 0, 0, 0, "", "The face index, -1 when no intersection is found.", 0, 0); RNA_def_function_output(func, parm); + /* Nearest Point */ + func= RNA_def_function(srna, "closest_point_on_mesh", "rna_Object_closest_point_on_mesh"); + RNA_def_function_ui_description(func, "Find the nearest point on the object."); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + + /* ray start and end */ + parm= RNA_def_float_vector(func, "point", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_REQUIRED); + + /* return location and normal */ + parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The location on the object closest to the point", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_output(func, parm); + parm= RNA_def_float_vector(func, "normal", 3, NULL, -FLT_MAX, FLT_MAX, "Normal", "The face normal at the closest point", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_output(func, parm); + + parm= RNA_def_int(func, "index", 0, 0, 0, "", "The face index, -1 when no intersection is found.", 0, 0); + RNA_def_function_output(func, parm); + /* View */ func= RNA_def_function(srna, "is_visible", "rna_Object_is_visible"); RNA_def_function_ui_description(func, "Determine if object is visible in a given scene."); -- cgit v1.2.3 From b29b0acdceb98b0f67b214223c7624ca5d1e7697 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sun, 17 Jul 2011 16:14:52 +0000 Subject: Removed the autoconnect call when adding new nodes, this hardly ever gives usable results and leads to annoyed artists. --- source/blender/editors/space_node/node_header.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index a982f4b1994..4f3991e8ff8 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -94,8 +94,6 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) if(node->flag & NODE_TEST) node->flag |= NODE_SELECT; } - snode_autoconnect(snode, 1, 0); - /* deselect after autoconnection */ for(node= snode->edittree->nodes.first; node; node= node->next) { if(node->flag & NODE_TEST) node->flag &= ~NODE_SELECT; -- cgit v1.2.3 From 6b6c2bd17f85f9a0aa8481c6eb4f735f36c65436 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 17 Jul 2011 16:39:19 +0000 Subject: Set material Sid addressing. --- source/blender/collada/EffectExporter.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp index f51330165f3..355e384d000 100644 --- a/source/blender/collada/EffectExporter.cpp +++ b/source/blender/collada/EffectExporter.cpp @@ -94,10 +94,10 @@ void EffectsExporter::writeBlinn(COLLADASW::EffectProfile &ep, Material *ma) COLLADASW::ColorOrTexture cot; ep.setShaderType(COLLADASW::EffectProfile::BLINN); // shininess - ep.setShininess(ma->har); + ep.setShininess(ma->har, false , "shininess"); // specular cot = getcol(ma->specr, ma->specg, ma->specb, 1.0f); - ep.setSpecular(cot); + ep.setSpecular(cot, false , "specular" ); } void EffectsExporter::writeLambert(COLLADASW::EffectProfile &ep, Material *ma) @@ -111,10 +111,10 @@ void EffectsExporter::writePhong(COLLADASW::EffectProfile &ep, Material *ma) COLLADASW::ColorOrTexture cot; ep.setShaderType(COLLADASW::EffectProfile::PHONG); // shininess - ep.setShininess(ma->har); + ep.setShininess(ma->har , false , "shininess" ); // specular cot = getcol(ma->specr, ma->specg, ma->specb, 1.0f); - ep.setSpecular(cot); + ep.setSpecular(cot, false , "specular" ); } void EffectsExporter::operator()(Material *ma, Object *ob) @@ -150,10 +150,10 @@ void EffectsExporter::operator()(Material *ma, Object *ob) // index of refraction if (ma->mode & MA_RAYTRANSP) { - ep.setIndexOfRefraction(ma->ang); + ep.setIndexOfRefraction(ma->ang, false , "index_of_refraction"); } else { - ep.setIndexOfRefraction(1.0f); + ep.setIndexOfRefraction(1.0f, false , "index_of_refraction"); } COLLADASW::ColorOrTexture cot; @@ -161,22 +161,22 @@ void EffectsExporter::operator()(Material *ma, Object *ob) // transparency if (ma->mode & MA_TRANSP) { // Tod: because we are in A_ONE mode transparency is calculated like this: - ep.setTransparency(ma->alpha); + ep.setTransparency(ma->alpha, false , "transparency"); // cot = getcol(1.0f, 1.0f, 1.0f, 1.0f); // ep.setTransparent(cot); } // emission cot=getcol(ma->emit, ma->emit, ma->emit, 1.0f); - ep.setEmission(cot); + ep.setEmission(cot, false , "emission"); // diffuse multiplied by diffuse intensity cot = getcol(ma->r * ma->ref, ma->g * ma->ref, ma->b * ma->ref, 1.0f); - ep.setDiffuse(cot); + ep.setDiffuse(cot, false , "diffuse"); // ambient cot = getcol(ma->ambr, ma->ambg, ma->ambb, 1.0f); - ep.setAmbient(cot); + ep.setAmbient(cot, false , "ambient"); // reflective, reflectivity if (ma->mode & MA_RAYMIRROR) { @@ -193,7 +193,7 @@ void EffectsExporter::operator()(Material *ma, Object *ob) // specular if (ep.getShaderType() != COLLADASW::EffectProfile::LAMBERT) { cot = getcol(ma->specr * ma->spec, ma->specg * ma->spec, ma->specb * ma->spec, 1.0f); - ep.setSpecular(cot); + ep.setSpecular(cot, false , "specular"); } // XXX make this more readable if possible @@ -274,19 +274,19 @@ void EffectsExporter::operator()(Material *ma, Object *ob) // color if (t->mapto & (MAP_COL | MAP_COLSPEC)) { - ep.setDiffuse(createTexture(ima, uvname, sampler)); + ep.setDiffuse(createTexture(ima, uvname, sampler), false , "diffuse"); } // ambient if (t->mapto & MAP_AMB) { - ep.setAmbient(createTexture(ima, uvname, sampler)); + ep.setAmbient(createTexture(ima, uvname, sampler), false , "ambient"); } // specular if (t->mapto & MAP_SPEC) { - ep.setSpecular(createTexture(ima, uvname, sampler)); + ep.setSpecular(createTexture(ima, uvname, sampler), false , "specular"); } // emission if (t->mapto & MAP_EMIT) { - ep.setEmission(createTexture(ima, uvname, sampler)); + ep.setEmission(createTexture(ima, uvname, sampler), false , "emission"); } // reflective if (t->mapto & MAP_REF) { -- cgit v1.2.3 From b96d3fd70aa2a967a3096742c7823c129221511e Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 17 Jul 2011 17:30:41 +0000 Subject: Identify material Animations to export. --- source/blender/collada/AnimationExporter.cpp | 13 ++++++++++++- source/blender/collada/AnimationExporter.h | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 2072b1df7a8..81dae097315 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -24,6 +24,7 @@ #include "GeometryExporter.h" #include "AnimationExporter.h" +#include "MaterialExporter.h" template void forEachObjectInScene(Scene *sce, Functor &f) @@ -944,7 +945,17 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); else if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); - //The Scene has animations if object type is armature or object has f-curve or object is a Lamp which has f-curves + + for(int a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + if (!ma) continue; + if(ma->adt && ma->adt->action) + { + fcu = (FCurve*)ma->adt->action->curves.first; + } + } + if ( fcu) return true; base= base->next; } diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 481cacbd4c8..5185458d71c 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -35,6 +35,7 @@ extern "C" #include "DNA_lamp_types.h" #include "DNA_camera_types.h" #include "DNA_armature_types.h" +#include "DNA_material_types.h" #include "BKE_DerivedMesh.h" #include "BKE_fcurve.h" @@ -68,6 +69,8 @@ extern char build_rev[]; #include "COLLADASWConstants.h" #include "COLLADASWBaseInputElement.h" +#include "EffectExporter.h" + #include "collada_internal.h" #include -- cgit v1.2.3 From 756ef16e21c18b863bc7c9c86f5f34e15fa30f41 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sun, 17 Jul 2011 18:04:28 +0000 Subject: Little modification of the duplicate operator on artist request: The default behavior (shift+dkey) is now to copy nodes and internal links, but not the input links from unselected nodes. This feature is available with the alternate duplicate operator (alt+dkey). --- source/blender/editors/space_node/node_edit.c | 12 ++++++++---- source/blender/editors/space_node/node_ops.c | 9 +++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index e760c9021c2..36e8bc35e73 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2000,12 +2000,13 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float /* ****************** Duplicate *********************** */ -static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) +static int node_duplicate_exec(bContext *C, wmOperator *op) { SpaceNode *snode= CTX_wm_space_node(C); bNodeTree *ntree= snode->edittree; bNode *node, *newnode, *lastnode; bNodeLink *link, *newlink, *lastlink; + int keep_inputs = RNA_boolean_get(op->ptr, "keep_inputs"); ED_preview_kill_jobs(C); @@ -2033,10 +2034,11 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) */ lastlink = ntree->links.last; for (link=ntree->links.first; link; link=link->next) { - /* this creates new links between copied nodes, - * as well as input links from unselected (when fromnode==NULL) ! + /* This creates new links between copied nodes. + * If keep_inputs is set, also copies input links from unselected (when fromnode==NULL)! */ - if (link->tonode && (link->tonode->flag & NODE_SELECT)) { + if (link->tonode && (link->tonode->flag & NODE_SELECT) + && (keep_inputs || link->fromnode && (link->fromnode->flag & NODE_SELECT))) { newlink = MEM_callocN(sizeof(bNodeLink), "bNodeLink"); newlink->flag = link->flag; newlink->tonode = link->tonode->new_node; @@ -2096,6 +2098,8 @@ void NODE_OT_duplicate(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_boolean(ot->srna, "keep_inputs", 0, "Keep Inputs", "Keep the input links to duplicated nodes"); } /* *************************** add link op ******************** */ diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 4d181a34894..905347d6b80 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -101,11 +101,18 @@ void node_operatortypes(void) void ED_operatormacros_node(void) { wmOperatorType *ot; + wmOperatorTypeMacro *mot; ot= WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "NODE_OT_duplicate"); WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); + /* modified operator call for duplicating with input links */ + ot= WM_operatortype_append_macro("NODE_OT_duplicate_move_keep_inputs", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); + mot = WM_operatortype_macro_define(ot, "NODE_OT_duplicate"); + RNA_boolean_set(mot->ptr, "keep_inputs", 1); + WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); + ot= WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer", OPTYPE_UNDO); WM_operatortype_macro_define(ot, "NODE_OT_select"); WM_operatortype_macro_define(ot, "NODE_OT_link_viewer"); @@ -155,6 +162,8 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); + /* modified operator call for duplicating with input links */ + WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From f62df587d9f3d0a5bd5a1b8f576d907b4f7af0b4 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sun, 17 Jul 2011 18:17:35 +0000 Subject: Changed the default keys for duplicate-nodes-while-keeping-input-links to ctrl+shift+dkey, to avoid conflicts with alt+dkey for linked duplicates. --- source/blender/editors/space_node/node_edit.c | 2 +- source/blender/editors/space_node/node_ops.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 36e8bc35e73..94263091d3b 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2038,7 +2038,7 @@ static int node_duplicate_exec(bContext *C, wmOperator *op) * If keep_inputs is set, also copies input links from unselected (when fromnode==NULL)! */ if (link->tonode && (link->tonode->flag & NODE_SELECT) - && (keep_inputs || link->fromnode && (link->fromnode->flag & NODE_SELECT))) { + && (keep_inputs || (link->fromnode && (link->fromnode->flag & NODE_SELECT)))) { newlink = MEM_callocN(sizeof(bNodeLink), "bNodeLink"); newlink->flag = link->flag; newlink->tonode = link->tonode->new_node; diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 905347d6b80..4bb0283690b 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -163,7 +163,7 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); /* modified operator call for duplicating with input links */ - WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From 44326c9fe976127b6a63862ea538dfd28cce5404 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 17 Jul 2011 18:51:03 +0000 Subject: Material Animation export. (on going) --- source/blender/collada/AnimationExporter.cpp | 57 ++++++++++++++++++---------- source/blender/collada/AnimationExporter.h | 2 +- 2 files changed, 38 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 81dae097315..5b7853f8af7 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -58,6 +58,7 @@ void AnimationExporter::exportAnimations(Scene *sce) { FCurve *fcu; char * transformName ; + bool isMatAnim = false; if(ob->adt && ob->adt->action) { fcu = (FCurve*)ob->adt->action->curves.first; @@ -67,7 +68,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) - dae_animation(ob ,fcu, transformName, false); + dae_animation(ob ,fcu, transformName, false , isMatAnim); fcu = fcu->next; } } @@ -80,7 +81,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))) - dae_animation(ob ,fcu, transformName,true ); + dae_animation(ob , fcu, transformName, true, isMatAnim ); fcu = fcu->next; } } @@ -94,10 +95,28 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "lens"))|| (!strcmp(transformName, "ortho_scale"))|| (!strcmp(transformName, "clipend"))||(!strcmp(transformName, "clipsta"))) - dae_animation(ob ,fcu, transformName,true ); + dae_animation(ob , fcu, transformName, true, isMatAnim ); fcu = fcu->next; } } + + for(int a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + if (!ma) continue; + if(ma->adt && ma->adt->action) + { + isMatAnim = true; + fcu = (FCurve*)ma->adt->action->curves.first; + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + + if ((!strcmp(transformName, "specular_hardness"))) + dae_animation(ob ,fcu, transformName, true, isMatAnim ); + fcu = fcu->next; + } + } + } //if (!ob->adt || !ob->adt->action) // fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() //else @@ -132,18 +151,15 @@ void AnimationExporter::exportAnimations(Scene *sce) { char * transformName = extract_transform_name( fcu->rna_path ); - if( !strcmp(transformName, "rotation_quaternion") ) - { - for ( int i = 0 ; i < fcu->totvert ; i++) - { + if( !strcmp(transformName, "rotation_quaternion") ) { + for ( int i = 0 ; i < fcu->totvert ; i++){ *(quat + ( i * 4 ) + fcu->array_index) = fcu->bezt[i].vec[1][1]; } } fcu = fcu->next; } - for ( int i = 0 ; i < fcu->totvert ; i++) - { + for ( int i = 0 ; i < fcu->totvert ; i++){ for ( int j = 0;j<4;j++) temp_quat[j] = quat[(i*4)+j]; @@ -171,7 +187,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return id_name(ob); } - void AnimationExporter::dae_animation(Object* ob, FCurve *fcu/*, std::string ob_name*/ , char* transformName , bool is_param ) + void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, bool isMatAnim ) { const char *axis_name = NULL; @@ -188,24 +204,23 @@ void AnimationExporter::exportAnimations(Scene *sce) axis_name = axis_names[fcu->array_index];*/ } //maybe a list or a vector of float animations - else if ( !strcmp(transformName, "spot_size")||!strcmp(transformName, "spot_blend")|| - !strcmp(transformName, "lens")||!strcmp(transformName, "ortho_scale")||!strcmp(transformName, "clipend")|| - !strcmp(transformName, "clipsta")) - { - axis_name = ""; - } else if ( !strcmp(transformName, "color") ) { const char *axis_names[] = {"R", "G", "B"}; if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; } - else + else if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || + (!strcmp(transformName, "rotation_euler"))) { const char *axis_names[] = {"X", "Y", "Z"}; if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; } + else{ + axis_name = ""; + } + std::string ob_name = std::string("null"); if (ob->type == OB_ARMATURE) { @@ -215,9 +230,11 @@ void AnimationExporter::exportAnimations(Scene *sce) } else { - ob_name = id_name(ob); - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - fcu->rna_path, axis_name); + if (isMatAnim) + ob_name = id_name(ob) + "_material"; + else + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + fcu->rna_path, axis_name); } // check rna_path is one of: rotation, scale, location diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 5185458d71c..bdbfcfcca73 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -94,7 +94,7 @@ public: protected: - void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param); + void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, bool isMatAnim); void write_bone_animation(Object *ob_arm, Bone *bone); -- cgit v1.2.3 From cf83cabb101cadd8994b436932fdd847a7df2279 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sun, 17 Jul 2011 19:43:14 +0000 Subject: Modified behavior when replacing input links: The new target socket for the existing link is now chosen from available sockets that match the _target_ type, instead of the source type. This leads to more usable replacements, e.g. for toggling inputs on mix nodes. Still not a great solution to the mute/autoconnect problem, but a bit more intuitive for replacements. --- source/blender/editors/space_node/node_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 94263091d3b..abc7b273ec9 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2118,9 +2118,9 @@ static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeL if(tlink) { /* try to move the existing link to the next available socket */ if (tlink->tonode) { - /* is there a free input socket with same type? */ + /* is there a free input socket with the target type? */ for(sock= tlink->tonode->inputs.first; sock; sock= sock->next) { - if(sock->type==tlink->fromsock->type) + if(sock->type==tlink->tosock->type) if(nodeCountSocketLinks(snode->edittree, sock) < sock->limit) break; } -- cgit v1.2.3 From 9469f0d0af61ce445e7eadf5b832a99baff0b976 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 18 Jul 2011 02:40:54 +0000 Subject: Bug fix: particle cache should only be cleared on the exact first integer frame, not in the case of a subframe between the first and second frame. --- source/blender/blenkernel/intern/particle_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 63a9c224971..1423f520b95 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3987,7 +3987,7 @@ static void system_step(ParticleSimulationData *sim, float cfra) BKE_ptcache_id_time(pid, sim->scene, 0.0f, &startframe, &endframe, NULL); /* clear everythin on start frame */ - if((int)cfra == startframe) { + if(cfra == startframe) { BKE_ptcache_id_reset(sim->scene, pid, PTCACHE_RESET_OUTDATED); BKE_ptcache_validate(cache, startframe); cache->flag &= ~PTCACHE_REDO_NEEDED; -- cgit v1.2.3 From 9fa20e6d88be6d44152b9e856a83c850e5db2928 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 18 Jul 2011 07:38:44 +0000 Subject: fix [#28003] Unable to delete vgroup still need to find how an invalid defgroup index is set, but at least dont show the vertex group as selected when its not. --- source/blender/makesrna/intern/rna_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index dd66e49fdec..61e65585dd4 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -483,7 +483,7 @@ static PointerRNA rna_Object_active_vertex_group_get(PointerRNA *ptr) static int rna_Object_active_vertex_group_index_get(PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; - return MAX2(ob->actdef-1, 0); + return ob->actdef-1; } static void rna_Object_active_vertex_group_index_set(PointerRNA *ptr, int value) -- cgit v1.2.3 From 35ce13562db2eb2dedef76ffdf77b83e48fb684a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 18 Jul 2011 09:49:26 +0000 Subject: script to report deprecated functions of text and their age in days. --- source/blender/python/generic/bgl.c | 2 +- source/blender/python/intern/bpy_rna.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 603f9f31743..09432e0b316 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -114,7 +114,7 @@ static PyObject *Buffer_to_list_recursive(Buffer *self) return list; } -/* deprecate */ +/* *DEPRECATED* 2011/7/17 bgl.Buffer.list */ static PyObject *Buffer_list(Buffer *self, void *UNUSED(arg)) { fprintf(stderr, "Warning: 'Buffer.list' deprecated, use '[:]' instead\n"); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 61fc2e483b1..6e1b9c807f3 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -4548,7 +4548,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { NULL, /* printfunc tp_print; */ NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + NULL, /* tp_compare */ /* deprecated in python 3.0! */ NULL, /* tp_repr */ /* Method suites for standard classes */ -- cgit v1.2.3 From 384831dd9d0944b2d2c80e09d402192a67a6a2db Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 18 Jul 2011 14:41:59 +0000 Subject: Bugfix #27927 This fixes assigning 'tweak' keymap option for border selecting in Node editor. Thanks Perry Parks for the patch! --- source/blender/windowmanager/intern/wm_operators.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 35afdf29b53..29afdb570ea 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3567,10 +3567,12 @@ static void gesture_border_modal_keymap(wmKeyConfig *keyconf) /* items for modal map */ WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL); - WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL); + /* Note: cancel only on press otherwise you cannot map this to RMB-gesture */ + WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL); WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN); WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT); + WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT); #if 0 // Durian guys like this WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_BEGIN); -- cgit v1.2.3 From bb4971431000bb19128ba912ac76ae317223432a Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 18 Jul 2011 17:33:03 +0000 Subject: Material Specular Hardness Animation export. --- source/blender/collada/AnimationExporter.cpp | 28 ++++++++++++++++++---------- source/blender/collada/AnimationExporter.h | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 5b7853f8af7..222838c3838 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -68,7 +68,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) - dae_animation(ob ,fcu, transformName, false , isMatAnim); + dae_animation(ob ,fcu, transformName, false); fcu = fcu->next; } } @@ -81,7 +81,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))) - dae_animation(ob , fcu, transformName, true, isMatAnim ); + dae_animation(ob , fcu, transformName, true ); fcu = fcu->next; } } @@ -95,7 +95,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "lens"))|| (!strcmp(transformName, "ortho_scale"))|| (!strcmp(transformName, "clipend"))||(!strcmp(transformName, "clipsta"))) - dae_animation(ob , fcu, transformName, true, isMatAnim ); + dae_animation(ob , fcu, transformName, true ); fcu = fcu->next; } } @@ -112,7 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "specular_hardness"))) - dae_animation(ob ,fcu, transformName, true, isMatAnim ); + dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } } @@ -187,7 +187,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return id_name(ob); } - void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, bool isMatAnim ) + void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material * ma ) { const char *axis_name = NULL; @@ -230,11 +230,12 @@ void AnimationExporter::exportAnimations(Scene *sce) } else { - if (isMatAnim) + if (ma) ob_name = id_name(ob) + "_material"; else - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - fcu->rna_path, axis_name); + ob_name = id_name(ob); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + fcu->rna_path, axis_name); } // check rna_path is one of: rotation, scale, location @@ -305,6 +306,10 @@ void AnimationExporter::exportAnimations(Scene *sce) if ( ob->type == OB_CAMERA ) target = get_camera_id(ob) + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + + if( ma ) + target = translate_id(id_name(ma)) + "-effect" + +"/common/" /* should take dynamically */ + get_transform_sid(fcu->rna_path, -1, axis_name, true); } addChannel(COLLADABU::URI(empty, sampler_id), target); @@ -832,6 +837,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 9; else if (!strcmp(name, "clipsta")) tm_type = 10; + else if (!strcmp(name, "specular_hardness")) + tm_type = 11; else tm_type = -1; @@ -870,8 +877,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 10: tm_name = "znear"; break; - - + case 11: + tm_name = "shininess"; + break; default: tm_name = ""; break; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index bdbfcfcca73..3e3150cd8ef 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -94,7 +94,7 @@ public: protected: - void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, bool isMatAnim); + void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material *ma = NULL); void write_bone_animation(Object *ob_arm, Bone *bone); -- cgit v1.2.3 From 7de78a812c633e268d96fd0881004f1e126089ed Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Mon, 18 Jul 2011 18:14:22 +0000 Subject: Missing struct keyword in function declaration causes compiler error with cmake/gcc. --- source/blender/modifiers/intern/MOD_util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_util.h b/source/blender/modifiers/intern/MOD_util.h index b9b5c8a064a..5e6f377acf1 100644 --- a/source/blender/modifiers/intern/MOD_util.h +++ b/source/blender/modifiers/intern/MOD_util.h @@ -52,6 +52,6 @@ void modifier_vgroup_cache(struct ModifierData *md, float (*vertexCos)[3]); void validate_layer_name(const struct CustomData *data, int type, char *name, char *outname); struct DerivedMesh *get_cddm(struct Object *ob, struct EditMesh *em, struct DerivedMesh *dm, float (*vertexCos)[3]); struct DerivedMesh *get_dm(struct Object *ob, struct EditMesh *em, struct DerivedMesh *dm, float (*vertexCos)[3], int orco); -void modifier_get_vgroup(struct Object *ob, DerivedMesh *dm, const char *name, struct MDeformVert **dvert, int *defgrp_index); +void modifier_get_vgroup(struct Object *ob, struct DerivedMesh *dm, const char *name, struct MDeformVert **dvert, int *defgrp_index); #endif /* MOD_UTIL_H */ -- cgit v1.2.3 From a6e2fba994f0ad58851a49ae123fb256b7cbf871 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 18 Jul 2011 18:31:01 +0000 Subject: Identifying Animation List for Material shininess. --- source/blender/collada/AnimationImporter.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 9337e80d63b..c11ded7fb3a 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -102,6 +102,11 @@ private: CAMERA_ZFAR = 8, CAMERA_ZNEAR = 16 }; + + enum matAnim + { + MATERIAL_SHININESS = 2 + }; enum AnimationType { -- cgit v1.2.3 From 2fb7dbd60c4d031e9a79ef7e8f731e7615443b32 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 18 Jul 2011 19:32:51 +0000 Subject: Material Specular Hardness Animation import (ongoing) --- source/blender/collada/AnimationImporter.cpp | 14 ++++++++++++++ source/blender/collada/AnimationImporter.h | 3 +++ source/blender/collada/DocumentImporter.cpp | 4 ++-- 3 files changed, 19 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 3faad447e9a..129f3192ce2 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -965,6 +965,20 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD //if ( type != 0) break; if ( types->camera != 0) break; + } + + const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); + for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { + const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); + for (unsigned int j = 0; i < matBinds.getCount(); i++) { + const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[i].getReferencedMaterial()]; + const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) FW_object_map[mat->getInstantiatedEffect()]; + const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); + for (unsigned int k = 0; i < commonEffects.getCount(); i++) { + types->material = setAnimType(&(commonEffects[i]->getShininess()),(types->material), MATERIAL_SHININESS); + } + } + } return types; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index c11ded7fb3a..b27fba18954 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -39,6 +39,9 @@ #include "COLLADAFWUniqueId.h" #include "COLLADAFWLight.h" #include "COLLADAFWCamera.h" +#include "COLLADAFWMaterial.h" +#include "COLLADAFWEffect.h" +#include "COLLADAFWInstanceGeometry.h" #include "DNA_anim_types.h" #include "DNA_object_types.h" diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index a5946b4aa88..2ff791eb91d 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -537,7 +537,7 @@ bool DocumentImporter::writeMaterial( const COLLADAFW::Material* cmat ) this->uid_effect_map[cmat->getInstantiatedEffect()] = ma; this->uid_material_map[cmat->getUniqueId()] = ma; - + this->FW_object_map[cmat->getUniqueId()] = cmat; return true; } @@ -738,7 +738,7 @@ bool DocumentImporter::writeEffect( const COLLADAFW::Effect* effect ) // Currently only first is supported COLLADAFW::EffectCommon *ef = common_efs[0]; write_profile_COMMON(ef, ma); - + this->FW_object_map[effect->getUniqueId()] = effect; return true; } -- cgit v1.2.3 From 3ad978ea8ec425e000fd1d79944b47b037f2f3f6 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 18 Jul 2011 22:37:48 +0000 Subject: switched off ndof fly logging (receiving end) --- source/blender/editors/space_view3d/view3d_fly.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 00adfa13e28..ec17aa9586f 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -29,6 +29,8 @@ /* defines VIEW3D_OT_fly modal operator */ +// #define NDOF_FLY_DEBUG + #include "DNA_anim_types.h" #include "DNA_scene_types.h" #include "DNA_object_types.h" @@ -259,7 +261,9 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->ar = CTX_wm_region(C); fly->scene= CTX_data_scene(C); + #ifdef NDOF_FLY_DEBUG puts("\n-- fly begin --"); + #endif if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) { BKE_report(op->reports, RPT_ERROR, "Cannot fly a camera from an external library"); @@ -370,7 +374,9 @@ static int flyEnd(bContext *C, FlyInfo *fly) if(fly->state == FLY_RUNNING) return OPERATOR_RUNNING_MODAL; + #ifdef NDOF_FLY_DEBUG puts("\n-- fly end --"); + #endif WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), fly->timer); @@ -444,11 +450,15 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) { case P_STARTING: // start keeping track of 3D mouse position + #ifdef NDOF_FLY_DEBUG puts("start keeping track of 3D mouse position"); + #endif // fall through... case P_IN_PROGRESS: // update 3D mouse position + #ifdef NDOF_FLY_DEBUG putchar('.'); fflush(stdout); + #endif if (fly->ndof == NULL) // fly->ndof = MEM_mallocN(sizeof(wmNDOFMotionData), tag_name); fly->ndof = MEM_dupallocN(incoming_ndof); @@ -458,7 +468,9 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) break; case P_FINISHING: // stop keeping track of 3D mouse position + #ifdef NDOF_FLY_DEBUG puts("stop keeping track of 3D mouse position"); + #endif if (fly->ndof) { MEM_freeN(fly->ndof); @@ -619,8 +631,10 @@ static int flyApply(bContext *C, FlyInfo *fly) unsigned char apply_rotation= 1; /* if the user presses shift they can look about without movinf the direction there looking*/ + #ifdef NDOF_FLY_DEBUG static unsigned int iteration = 1; printf("fly timer %d\n", iteration++); + #endif if(fly->root_parent) ED_view3d_to_m4(prev_view_mat, fly->rv3d->ofs, fly->rv3d->viewquat, fly->rv3d->dist); -- cgit v1.2.3 From ce0ad0b40b93fc6074daaba6ead0e0e82867d4d2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 19 Jul 2011 01:36:59 +0000 Subject: fix [#28018] Sequence Swap Data Operator does not work --- source/blender/blenkernel/intern/sequencer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 265cc3eeb79..d6a152a5280 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3232,9 +3232,10 @@ int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str) { char name[sizeof(seq_a->name)]; - if(seq_a->len != seq_b->len) + if(seq_a->len != seq_b->len) { *error_str= "Strips must be the same length"; return 0; + } /* type checking, could be more advanced but disalow sound vs non-sound copy */ if(seq_a->type != seq_b->type) { -- cgit v1.2.3 From d8e216833a278d85caece8407d6ea5fad1a10c11 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 19 Jul 2011 02:47:43 +0000 Subject: cleanup of scene->gamedata DNA xsch and ysch were originally planed to replace the scene->r.xsch/r.ysch however in blender/3dview we still need to use the r. values. Therefore we can't really run from using those values even in bplayer. So removed the values in gamedata. The way it's now, render values (xsch and ysch) are responsible for aspect ratio and gamedata xplay and yplay are responsible for the size of the window. --- source/blender/blenloader/intern/readfile.c | 2 -- source/blender/makesdna/DNA_scene_types.h | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index ab30d92f03e..4ad99c02b2d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10281,8 +10281,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) sce->gm.attrib = sce->r.attrib; //Stereo - sce->gm.xsch = sce->r.xsch; - sce->gm.ysch = sce->r.ysch; sce->gm.stereomode = sce->r.stereomode; /* reassigning stereomode NO_STEREO and DOME to a separeted flag*/ if (sce->gm.stereomode == 1){ //1 = STEREO_NOSTEREO diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index f351a48b998..3c14dacf973 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -430,7 +430,8 @@ typedef struct GameData { /* * Radius of the activity bubble, in Manhattan length. Objects * outside the box are activity-culled. */ - float activityBoxRadius; //it's not being used ANYWHERE !!!!!!!!!!!!!! + float activityBoxRadius; + /* * bit 3: (gameengine): Activity culling is enabled. * bit 5: (gameengine) : enable Bullet DBVT tree for view frustrum culling @@ -447,7 +448,8 @@ typedef struct GameData { /* stereo/dome mode */ struct GameDome dome; - short stereoflag, stereomode, xsch, ysch; //xsch and ysch used for backwards compat. + short stereoflag, stereomode; + short pad2, pad3; float eyeseparation, pad1; } GameData; -- cgit v1.2.3 From 7f74abeaca38d0c1634a8d0532bb38877a1f730e Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 19 Jul 2011 04:12:49 +0000 Subject: translated ndof menu from C to Python, enabled helicopter fly mode --- source/blender/editors/space_view3d/view3d_fly.c | 9 +++ source/blender/windowmanager/intern/wm_operators.c | 64 +++++++--------------- 2 files changed, 28 insertions(+), 45 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index ec17aa9586f..8269d0e7cd3 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -973,6 +973,15 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // transform motion from view to world coordinates mul_qt_v3(view_inv, trans); + // int fly_mode = TRUE; + int fly_mode = U.ndof_flag & NDOF_FLY_HELICOPTER; + // could also use RNA to get a simple boolean value + + if (fly_mode) + { + trans[2] = speed * dt * vertical_sensitivity * ndof->ty; + } + // move center of view opposite of hand motion (this is camera mode, not object mode) sub_v3_v3(rv3d->ofs, trans); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 6fb6a8dcf1f..7e93c2d5f46 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1401,37 +1401,6 @@ static uiBlock* wm_block_ndof_menu_1st(bContext* C, ARegion* ar, void* UNUSED(ar return block; } -static uiBlock *wm_block_ndof_menu(bContext *C, ARegion *ar, void *UNUSED(arg_op)) -{ - static char search[256]= ""; - wmEvent event; - wmWindow *win= CTX_wm_window(C); - uiBlock *block; - uiBut *but; - - block= uiBeginBlock(C, ar, "ndof_popup", UI_EMBOSS); -// uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_POPUP|UI_BLOCK_MOVEMOUSE_QUIT); - - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, 0, 0, ""); - uiButSetSearchFunc(but, operator_search_cb, NULL, operator_call_cb, NULL); - - /* fake button, it holds space for search items */ - uiDefBut(block, LABEL, 0, "", 10, 10 - uiSearchBoxhHeight(), 9*UI_UNIT_X, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - - uiPopupBoundsBlock(block, 6, 0, -UI_UNIT_Y); /* move it downwards, mouse over button */ - uiEndBlock(C, block); - - event= *(win->eventstate); /* XXX huh huh? make api call */ - event.type= EVT_BUT_OPEN; - event.val= KM_PRESS; - event.customdata= but; - event.customdatafree= FALSE; - wm_event_add(win, &event); - - return block; -} - static int wm_ndof_menu_poll(bContext *C) { if(CTX_wm_window(C)==NULL) @@ -1453,6 +1422,11 @@ static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { + uiPupMenuInvoke(C,"VIEW3D_MT_ndof_settings"); + + return OPERATOR_CANCELLED; // <-- correct? + +/* // uiPupMenuNotice(C, "Hello!"); // <-- this works // uiPupBlock(C, wm_block_ndof_menu, op); // <-- no luck! // ui_popup_menu_create(C, NULL, NULL, NULL, NULL, "Hello!"); // <-- this works @@ -1460,12 +1434,25 @@ static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even uiPopupMenu* pup = uiPupMenuBegin(C,"3D mouse settings",ICON_NDOF_TURN); uiLayout* layout = uiPupMenuLayout(pup); + uiItemS(layout); // separator + uiItemFloatO(layout, "sensitivity", 0, 0, "ndof_sensitivity", 1.f); + // do I have to look specifically in "UserPreferences" for ndof_sensitivity property? + + // trial & error -- ok, mostly error +// uiItemBooleanO(layout, "enable pan/zoom", ICON_NDOF_TRANS, "ndof_toggle_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); +// uiItemBooleanO(layout, "enable rotation", ICON_NDOF_TURN, "ndof_toggle_rotation_enabled", "ndof_rotation_enabled", 1); +// uiItemV(layout,"sensitivity",ICON_NDOF_TRANS, 1); + printf("ndof: menu invoked in "); switch (CTX_wm_area(C)->spacetype) // diff spaces can have diff 3d mouse options { case SPACE_VIEW3D: puts("3D area"); + uiItemS(layout); + uiItemL(layout, "3D navigation mode", 0); + uiItemBooleanO(layout, "helicopter", ICON_NDOF_FLY, 0, "ndof_fly_helicopter", 1); + uiItemBooleanO(layout, "lock horizon", ICON_NDOF_DOM, 0, "ndof_lock_horizon", 1); break; case SPACE_IMAGE: puts("image area"); @@ -1474,25 +1461,12 @@ static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even puts("some iNDOFferent area"); } - //uiBlock* block = uiLayoutGetBlock(layout); //int foo = 1; //uiDefButI(block, TOG, 0, "foo", 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, &foo, 0.f, 1.f, 0.1f, 0.9f, "15%"); - - uiItemS(layout); // separator - - uiItemBooleanO(layout, "enable pan/zoom", ICON_NDOF_TRANS, "ndof_toggle_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); - uiItemBooleanO(layout, "enable rotation", ICON_NDOF_TURN, "ndof_toggle_rotation_enabled", "ndof_rotation_enabled", 1); - uiItemFloatO(layout, "sensitivity", 0, "ndof_adjust_sensitivity", "ndof_sensitivity", 1.f); - uiItemV(layout,"sensitivity",ICON_NDOF_TRANS, 1); - - uiItemS(layout); - uiItemL(layout, "3D navigation mode", ICON_NDOF_FLY); - uiItemL(layout, "...", 0); uiPupMenuEnd(C,pup); - - return OPERATOR_CANCELLED; // <-- correct? +*/ } static void WM_OT_ndof_menu(wmOperatorType *ot) -- cgit v1.2.3 From 4024b14b43c6409a319d80611bcf8b5e536bda1f Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 19 Jul 2011 08:31:53 +0000 Subject: fix for [#28012] Mat ID messy with shader nodes Issue was that the Shader tree execution changed the ShaderInput. Changes are that the UI is updated that only the main material will have the pass_index this is displayed in the "render pipeline options" panel. When the material is not a node material the pass_index will be shown at the "options" panel To test enable nodes on the material Add a new input material change the pass_index of the material (render pipeline options) Enable RenderPass material ID and use the compositor to read out the material pass Jeroen --- source/blender/nodes/intern/SHD_util.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/SHD_util.c b/source/blender/nodes/intern/SHD_util.c index cf7c64c9d5e..190f68ce19a 100644 --- a/source/blender/nodes/intern/SHD_util.c +++ b/source/blender/nodes/intern/SHD_util.c @@ -83,7 +83,11 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns) void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) { ShaderCallData scd; - + /* + @note: preserve material from ShadeInput for material id, nodetree execs change it + fix for bug "[#28012] Mat ID messy with shader nodes" + */ + Material *mat = shi->mat; /* convert caller data to struct */ scd.shi= shi; scd.shr= shr; @@ -92,7 +96,8 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) memset(shr, 0, sizeof(ShadeResult)); ntreeExecTree(ntree, &scd, shi->thread); /* threads */ - + // @note: set material back to preserved material + shi->mat = mat; /* better not allow negative for now */ if(shr->combined[0]<0.0f) shr->combined[0]= 0.0f; if(shr->combined[1]<0.0f) shr->combined[1]= 0.0f; -- cgit v1.2.3 From 0936874695d981a987488b19f02dfe363ec68c0e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 19 Jul 2011 15:21:21 +0000 Subject: update to patch from Andrew Hale - obj.closest_point_ob_mesh() now takes an optional max_dist argument. --- source/blender/makesrna/intern/rna_object_api.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index b33935b7bed..9018fd8c71a 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -45,6 +45,8 @@ // #include "ED_mesh.h" +#include "BLI_math.h" + #ifdef RNA_RUNTIME #include "BKE_main.h" @@ -64,8 +66,6 @@ #include "BKE_mball.h" #include "BKE_modifier.h" -#include "BLI_math.h" - #include "DNA_mesh_types.h" #include "DNA_scene_types.h" #include "DNA_meshdata_types.h" @@ -415,7 +415,7 @@ void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], fl *index= -1; } -void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float point_co[3], float n_location[3], float n_normal[3], int *index) +void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float point_co[3], float max_dist, float n_location[3], float n_normal[3], int *index) { BVHTreeFromMesh treeData= {NULL}; @@ -435,7 +435,7 @@ void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float poi BVHTreeNearest nearest; nearest.index = -1; - nearest.dist = FLT_MAX; + nearest.dist = max_dist * max_dist; if(BLI_bvhtree_find_nearest(treeData.tree, point_co, &nearest, treeData.nearest_callback, &treeData) != -1) { copy_v3_v3(n_location, nearest.co); @@ -541,9 +541,10 @@ void RNA_api_object(StructRNA *srna) RNA_def_function_ui_description(func, "Find the nearest point on the object."); RNA_def_function_flag(func, FUNC_USE_REPORTS); - /* ray start and end */ + /* location of point for test and max distance */ parm= RNA_def_float_vector(func, "point", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); /* return location and normal */ parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The location on the object closest to the point", -1e4, 1e4); @@ -553,7 +554,7 @@ void RNA_api_object(StructRNA *srna) RNA_def_property_flag(parm, PROP_THICK_WRAP); RNA_def_function_output(func, parm); - parm= RNA_def_int(func, "index", 0, 0, 0, "", "The face index, -1 when no intersection is found.", 0, 0); + parm= RNA_def_int(func, "index", 0, 0, 0, "", "The face index, -1 when no closest point is found.", 0, 0); RNA_def_function_output(func, parm); /* View */ -- cgit v1.2.3 From c89379e7e15aeb50a7d7106218821a17e5a7dac9 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 19 Jul 2011 22:40:22 +0000 Subject: ndof fly: better sharing of control between 2D and 3D mouse, compile fix for MSVC, lock horizon implemented --- source/blender/editors/space_view3d/view3d_fly.c | 77 ++++++++++++++++-------- 1 file changed, 52 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 8269d0e7cd3..6955aefcb9e 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -477,6 +477,8 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) // free(fly->ndof); fly->ndof = NULL; } + /* update the time else the view will jump when 2D mouse/timer resume */ + fly->time_lastdraw= PIL_check_seconds_timer(); break; default: ; // should always be one of the above 3 @@ -933,26 +935,6 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); - if (shouldRotate) - { - const float turn_sensitivity = 1.f; - - float rotation[4]; - float axis[3]; - float angle = turn_sensitivity * ndof_to_angle_axis(ndof, axis); - - // transform rotation axis from view to world coordinates - mul_qt_v3(view_inv, axis); - - // apply rotation to view - axis_angle_to_quat(rotation, axis, angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); - - rv3d->view = RV3D_VIEW_USER; - - fly->redraw = 1; - } - if (shouldTranslate) { const float forward_sensitivity = 1.f; @@ -973,12 +955,10 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // transform motion from view to world coordinates mul_qt_v3(view_inv, trans); - // int fly_mode = TRUE; - int fly_mode = U.ndof_flag & NDOF_FLY_HELICOPTER; - // could also use RNA to get a simple boolean value - - if (fly_mode) + if (U.ndof_flag & NDOF_FLY_HELICOPTER) + // could also use RNA to get a simple boolean value { + // replace world z component with device y (yes it makes sense) trans[2] = speed * dt * vertical_sensitivity * ndof->ty; } @@ -988,6 +968,53 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) fly->redraw = 1; } + if (shouldRotate) + { + const float turn_sensitivity = 1.f; + + float rotation[4]; + float axis[3]; + float angle = turn_sensitivity * ndof_to_angle_axis(ndof, axis); + + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); + + // apply rotation to view + axis_angle_to_quat(rotation, axis, angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + + if (U.ndof_flag & NDOF_LOCK_HORIZON) + // force an upright viewpoint + // TODO: make this less... sudden + { + float view_horizon[3] = {1, 0, 0}; // view +x + float view_direction[3] = {0, 0, -1}; // view -z (into screen) + + // find new inverse since viewquat has changed + invert_qt_qt(view_inv, rv3d->viewquat); + + // transform view vectors to world coordinates + mul_qt_v3(view_inv, view_horizon); + mul_qt_v3(view_inv, view_direction); + + // find difference between view & world horizons + // true horizon lives in world xy plane, so look only at difference in z + angle = -asinf(view_horizon[2]); + + #ifdef NDOF_FLY_DEBUG + printf("lock horizon: adjusting %.1f degrees\n\n", RAD2DEG(angle)); + #endif + + // rotate view so view horizon = world horizon + axis_angle_to_quat(rotation, view_direction, angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + } + + rv3d->view = RV3D_VIEW_USER; + + fly->redraw = 1; + } + return OPERATOR_FINISHED; } -- cgit v1.2.3 From 57fe73b3ac6ba6d7a0c3903318d9f0675e18338a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 20 Jul 2011 00:36:28 +0000 Subject: View All/Selected tools for NLA Editor --- source/blender/editors/space_action/action_edit.c | 1 + source/blender/editors/space_nla/nla_edit.c | 131 ++++++++++++++++++++++ source/blender/editors/space_nla/nla_intern.h | 3 + source/blender/editors/space_nla/nla_ops.c | 9 ++ 4 files changed, 144 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 70e7b483140..40d73a59a42 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -234,6 +234,7 @@ static void get_keyframe_extents (bAnimContext *ac, float *min, float *max, cons int filter; /* get data to filter, from Action or Dopesheet */ + // XXX: what is sel doing here?! filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL /*| ANIMFILTER_CURVESONLY*/ | ANIMFILTER_NODUPLIS); ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 988ff49f20e..eb22495c977 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -68,6 +68,7 @@ #include "UI_interface.h" #include "UI_resources.h" +#include "UI_view2d.h" #include "nla_intern.h" // own include #include "nla_private.h" // FIXME... maybe this shouldn't be included? @@ -235,6 +236,136 @@ void NLA_OT_tweakmode_exit (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* *********************************************** */ +/* NLA Strips Range Stuff */ + +/* *************************** Calculate Range ************************** */ + +/* Get the min/max strip extents */ +static void get_nlastrip_extents (bAnimContext *ac, float *min, float *max, const short onlySel) +{ + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + /* get data to filter */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_NODUPLIS); + ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); + + /* set large values to try to override */ + *min= 999999999.0f; + *max= -999999999.0f; + + /* check if any channels to set range with */ + if (anim_data.first) { + /* go through channels, finding max extents */ + for (ale= anim_data.first; ale; ale= ale->next) { + NlaTrack *nlt = (NlaTrack *)ale->data; + NlaStrip *strip; + + for (strip = nlt->strips.first; strip; strip = strip->next) { + /* only consider selected strips? */ + if ((onlySel == 0) || (strip->flag & NLASTRIP_FLAG_SELECT)) { + /* extend range if appropriate */ + *min = MIN2(*min, strip->start); + *max = MAX2(*max, strip->end); + } + } + } + + /* free memory */ + BLI_freelistN(&anim_data); + } + else { + /* set default range */ + if (ac->scene) { + *min= (float)ac->scene->r.sfra; + *max= (float)ac->scene->r.efra; + } + else { + *min= -5; + *max= 100; + } + } +} + +/* ****************** View-All Operator ****************** */ + +static int nlaedit_viewall(bContext *C, const short onlySel) +{ + bAnimContext ac; + View2D *v2d; + float extra; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + v2d= &ac.ar->v2d; + + /* set the horizontal range, with an extra offset so that the extreme keys will be in view */ + get_nlastrip_extents(&ac, &v2d->cur.xmin, &v2d->cur.xmax, onlySel); + + extra= 0.1f * (v2d->cur.xmax - v2d->cur.xmin); + v2d->cur.xmin -= extra; + v2d->cur.xmax += extra; + + /* set vertical range */ + v2d->cur.ymax= 0.0f; + v2d->cur.ymin= (float)-(v2d->mask.ymax - v2d->mask.ymin); + + /* do View2D syncing */ + UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY); + + /* just redraw this view */ + ED_area_tag_redraw(CTX_wm_area(C)); + + return OPERATOR_FINISHED; +} + +/* ......... */ + +static int nlaedit_viewall_exec(bContext *C, wmOperator *UNUSED(op)) +{ + /* whole range */ + return nlaedit_viewall(C, FALSE); +} + +static int nlaedit_viewsel_exec(bContext *C, wmOperator *UNUSED(op)) +{ + /* only selected */ + return nlaedit_viewall(C, TRUE); +} + +void NLA_OT_view_all (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View All"; + ot->idname= "NLA_OT_view_all"; + ot->description= "Reset viewable area to show full strips range"; + + /* api callbacks */ + ot->exec= nlaedit_viewall_exec; + ot->poll= ED_operator_nla_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +void NLA_OT_view_selected (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View Selected"; + ot->idname= "NLA_OT_view_selected"; + ot->description= "Reset viewable area to show selected strips range"; + + /* api callbacks */ + ot->exec= nlaedit_viewsel_exec; + ot->poll= ED_operator_nla_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + /* *********************************************** */ /* NLA Editing Operations (Constructive/Destructive) */ diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h index dba7fca8d0f..43ef5beb216 100644 --- a/source/blender/editors/space_nla/nla_intern.h +++ b/source/blender/editors/space_nla/nla_intern.h @@ -94,6 +94,9 @@ void NLA_OT_tweakmode_exit(wmOperatorType *ot); /* --- */ +void NLA_OT_view_all(wmOperatorType *ot); +void NLA_OT_view_selected(wmOperatorType *ot); + void NLA_OT_actionclip_add(wmOperatorType *ot); void NLA_OT_transition_add(wmOperatorType *ot); diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index ea8e8961f02..38e12c46060 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -130,6 +130,10 @@ void nla_operatortypes(void) WM_operatortype_append(NLA_OT_select_all_toggle); WM_operatortype_append(NLA_OT_select_leftright); + /* view */ + WM_operatortype_append(NLA_OT_view_all); + WM_operatortype_append(NLA_OT_view_selected); + /* edit */ WM_operatortype_append(NLA_OT_tweakmode_enter); WM_operatortype_append(NLA_OT_tweakmode_exit); @@ -212,6 +216,11 @@ static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap) WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0)->ptr, "axis_range", 1); + /* view*/ + /* auto-set range */ + //WM_keymap_add_item(keymap, "NLA_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + WM_keymap_add_item(keymap, "NLA_OT_view_all", HOMEKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "NLA_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0); /* editing */ /* tweakmode -- cgit v1.2.3 From 69614a972f1e7ad68f1c27dea4b56c41889e63d2 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 20 Jul 2011 01:12:57 +0000 Subject: Add/Clear Fake Users from Outliner by RMB on ID blocks --- .../editors/space_outliner/outliner_tools.c | 49 +++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 891c18bcd8a..57ee2fe00ef 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -300,13 +300,32 @@ static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeSto static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) { - if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { + if (tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { tselem->id->lib= NULL; tselem->id->flag= LIB_LOCAL; new_id(NULL, tselem->id, NULL); } } +static void id_fake_user_set_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if ((id) && ((id->flag & LIB_FAKEUSER) == 0)) { + id->flag |= LIB_FAKEUSER; + id_us_plus(id); + } +} + +static void id_fake_user_clear_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if ((id) && (id->flag & LIB_FAKEUSER)) { + id->flag &= ~LIB_FAKEUSER; + id_us_min(id); + } +} static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) { @@ -637,9 +656,13 @@ void OUTLINER_OT_group_operation(wmOperatorType *ot) typedef enum eOutlinerIdOpTypes { OUTLINER_IDOP_INVALID = 0, + OUTLINER_IDOP_UNLINK, OUTLINER_IDOP_LOCAL, - OUTLINER_IDOP_SINGLE + OUTLINER_IDOP_SINGLE, + + OUTLINER_IDOP_FAKE_ADD, + OUTLINER_IDOP_FAKE_CLEAR } eOutlinerIdOpTypes; // TODO: implement support for changing the ID-block used @@ -647,6 +670,8 @@ static EnumPropertyItem prop_id_op_types[] = { {OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""}, {OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""}, {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, + {OUTLINER_IDOP_FAKE_ADD, "ADD_FAKE", 0, "Add Fake User", "Ensure datablock gets saved even if it isn't in use (e.g. for motion and material libraries)"}, + {OUTLINER_IDOP_FAKE_CLEAR, "CLEAR_FAKE", 0, "Clear Fake User", ""}, {0, NULL, 0, NULL, NULL} }; @@ -721,6 +746,26 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) } break; + case OUTLINER_IDOP_FAKE_ADD: + { + /* set fake user */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_set_cb); + + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + ED_undo_push(C, "Add Fake User"); + } + break; + + case OUTLINER_IDOP_FAKE_CLEAR: + { + /* clear fake user */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_clear_cb); + + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + ED_undo_push(C, "Clear Fake User"); + } + break; + default: // invalid - unhandled break; -- cgit v1.2.3 From 0ed523a8dd66189bbef192ad37d90c9c462d5dc1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 20 Jul 2011 05:57:38 +0000 Subject: patch [#28032] Python Mathutils: Matrix Multiplication Error from Scott Giese (sgiese) --- source/blender/python/mathutils/mathutils_Matrix.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index b0187c1ef25..39d0784b287 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1594,20 +1594,14 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) return NULL; } else { - float mat[16]= {0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f}; - double dot = 0.0f; + float mat[16]= {0.0f}; int x, y, z; - for(x = 0; x < mat2->row_size; x++) { - for(y = 0; y < mat1->col_size; y++) { - for(z = 0; z < mat1->row_size; z++) { - dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); + for(x = 0; x < mat1->row_size; x++) { + for(y = 0; y < mat2->col_size; y++) { + for(z = 0; z < mat2->row_size; z++) { + mat[x * mat1->col_size + y] += (mat1->matrix[x][z] * mat2->matrix[z][y]); } - mat[((x * mat1->col_size) + y)] = (float)dot; - dot = 0.0f; } } -- cgit v1.2.3 From 74219d2704dfcc77c8530be47a626287ec1423a9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 20 Jul 2011 06:05:47 +0000 Subject: patch [#28031] Minor typo in Blenlib from Scott Giese (sgiese) --- source/blender/blenlib/intern/path_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index 80b85661762..f89283178ec 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -1680,7 +1680,7 @@ void BLI_where_am_i(char *fullname, const size_t maxlen, const char *name) if(GetModuleFileName(0, fullname, maxlen)) { if(!BLI_exists(fullname)) { printf("path can't be found: \"%.*s\"\n", maxlen, fullname); - MessageBox(NULL, "path constains invalid characters or is too long (see console)", "Error", MB_OK); + MessageBox(NULL, "path contains invalid characters or is too long (see console)", "Error", MB_OK); } return; } -- cgit v1.2.3 From 8b5e7f26501ba1794ad4e556fae169b2ca3c8769 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 20 Jul 2011 06:41:51 +0000 Subject: patch [#28032] swapped matrix multiplication order, reverse it back, tested with FBX, BVH import/export which are very sensitive to changes in matrix rotation. --- source/blender/python/mathutils/mathutils_Matrix.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index 39d0784b287..a7ed63776a5 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1587,7 +1587,7 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) if(mat1 && mat2) { /*MATRIX * MATRIX*/ - if(mat1->row_size != mat2->col_size){ + if(mat2->row_size != mat1->col_size){ PyErr_SetString(PyExc_ValueError, "Matrix multiplication: " "matrix A rowsize must equal matrix B colsize"); @@ -1597,15 +1597,15 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) float mat[16]= {0.0f}; int x, y, z; - for(x = 0; x < mat1->row_size; x++) { - for(y = 0; y < mat2->col_size; y++) { - for(z = 0; z < mat2->row_size; z++) { - mat[x * mat1->col_size + y] += (mat1->matrix[x][z] * mat2->matrix[z][y]); + for(x = 0; x < mat2->row_size; x++) { + for(y = 0; y < mat1->col_size; y++) { + for(z = 0; z < mat1->row_size; z++) { + mat[x * mat2->col_size + y] += (mat2->matrix[x][z] * mat1->matrix[z][y]); } } } - return newMatrixObject(mat, mat2->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); + return newMatrixObject(mat, mat1->row_size, mat2->col_size, Py_NEW, Py_TYPE(mat1)); } } else if(mat2) { -- cgit v1.2.3 From 2c61949179c042b785e5b7158b93654e492e5f12 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 20 Jul 2011 12:44:29 +0000 Subject: venomgfx request: Renaming handle 1/2 to left/right handles for keyframes This makes it easier to remember/identify which one you're dealing with --- source/blender/makesrna/intern/rna_fcurve.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index ecb5a96f872..cd85e100521 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1320,12 +1320,12 @@ static void rna_def_fkeyframe(BlenderRNA *brna) /* Boolean values */ prop= RNA_def_property(srna, "select_left_handle", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "f1", 0); - RNA_def_property_ui_text(prop, "Handle 1 selected", "Handle 1 selection status"); + RNA_def_property_ui_text(prop, "Handle 1 selected", "Left handle selection status"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL); prop= RNA_def_property(srna, "select_right_handle", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "f3", 0); - RNA_def_property_ui_text(prop, "Handle 2 selected", "Handle 2 selection status"); + RNA_def_property_ui_text(prop, "Handle 2 selected", "Right handle selection status"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL); prop= RNA_def_property(srna, "select_control_point", PROP_BOOLEAN, PROP_NONE); @@ -1337,13 +1337,13 @@ static void rna_def_fkeyframe(BlenderRNA *brna) prop= RNA_def_property(srna, "handle_left_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "h1"); RNA_def_property_enum_items(prop, beztriple_handle_type_items); - RNA_def_property_ui_text(prop, "Handle 1 Type", "Handle types"); + RNA_def_property_ui_text(prop, "Left Handle Type", "Handle types"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); prop= RNA_def_property(srna, "handle_right_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "h2"); RNA_def_property_enum_items(prop, beztriple_handle_type_items); - RNA_def_property_ui_text(prop, "Handle 2 Type", "Handle types"); + RNA_def_property_ui_text(prop, "Right Handle Type", "Handle types"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); prop= RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE); @@ -1355,14 +1355,14 @@ static void rna_def_fkeyframe(BlenderRNA *brna) prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "hide"); RNA_def_property_enum_items(prop, beztriple_keyframe_type_items); - RNA_def_property_ui_text(prop, "Type", "The type of keyframe"); + RNA_def_property_ui_text(prop, "Type", "The type of keyframe (for visual purposes only"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); /* Vector values */ prop= RNA_def_property(srna, "handle_left", PROP_FLOAT, PROP_COORDS); /* keyframes are dimensionless */ RNA_def_property_array(prop, 2); RNA_def_property_float_funcs(prop, "rna_FKeyframe_handle1_get", "rna_FKeyframe_handle1_set", NULL); - RNA_def_property_ui_text(prop, "Handle 1", "Coordinates of the first handle"); + RNA_def_property_ui_text(prop, "Left Handle", "Coordinates of the left handle (before the control point)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_COORDS); /* keyframes are dimensionless */ @@ -1374,7 +1374,7 @@ static void rna_def_fkeyframe(BlenderRNA *brna) prop= RNA_def_property(srna, "handle_right", PROP_FLOAT, PROP_COORDS); /* keyframes are dimensionless */ RNA_def_property_array(prop, 2); RNA_def_property_float_funcs(prop, "rna_FKeyframe_handle2_get", "rna_FKeyframe_handle2_set", NULL); - RNA_def_property_ui_text(prop, "Handle 2", "Coordinates of the second handle"); + RNA_def_property_ui_text(prop, "Right Handle", "Coordinates of the right handle (after the control point)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); } -- cgit v1.2.3 From 74111ac11c0da9f1c5279e80dd5e90c896ff2bac Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 21 Jul 2011 00:07:07 +0000 Subject: Attempted bugfix: don't perform any keyframe remapping stuff if rendering, to prevent any race condition problems I've noticed some weird and random crashes recently while rendering, which I suspect have been arising from having an Action Editor open while rendering. Previously only the timeline was patched against these problems, though the issues may be more widespread. Hence, solving this problem at the root cause instead. --- source/blender/editors/animation/anim_draw.c | 7 +++++++ source/blender/editors/space_time/space_time.c | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c index 22ab419de2e..2c2a8045b64 100644 --- a/source/blender/editors/animation/anim_draw.c +++ b/source/blender/editors/animation/anim_draw.c @@ -38,6 +38,7 @@ #include "BLI_math.h" #include "BKE_context.h" +#include "BKE_global.h" #include "BKE_nla.h" #include "BKE_object.h" @@ -308,6 +309,9 @@ AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale) if (ac == NULL) return NULL; + /* abort if rendering - we may get some race condition issues... */ + if (G.rendering) return NULL; + /* handling depends on the type of animation-context we've got */ if (ale) return ale->adt; @@ -447,6 +451,9 @@ void ANIM_unit_mapping_apply_fcurve (Scene *scene, ID *id, FCurve *fcu, short fl KeyframeEditFunc sel_cb; float fac; + /* abort if rendering - we may get some race condition issues... */ + if (G.rendering) return; + /* calculate mapping factor, and abort if nothing to change */ fac= ANIM_unit_mapping_get_factor(scene, id, fcu, (flag & ANIM_UNITCONV_RESTORE)); if (fac == 1.0f) diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 09842870dff..a1347f6c306 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -480,8 +480,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) UI_view2d_view_ortho(v2d); /* keyframes */ - if(!G.rendering) /* ANIM_nla_mapping_apply_fcurve() modifies curve data while rendering, possible race condition */ - time_draw_keyframes(C, stime, ar); + time_draw_keyframes(C, stime, ar); /* markers */ UI_view2d_view_orthoSpecial(ar, v2d, 1); -- cgit v1.2.3 From 28780342eddb0e1e767bf64d69cb99bd138d621f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 00:41:00 +0000 Subject: fix/workaround [#28040] float images reduced to 256 levels per channel upon save Generated images would not be re-generated with a float buffer on load, even when selected on creation. Now save the float buffer setting as a generated image flag. This means you can enable before baking to enable baking to a float buffer. --- source/blender/blenkernel/intern/image.c | 3 ++- source/blender/editors/space_image/image_buttons.c | 1 + source/blender/makesdna/DNA_image_types.h | 6 +++++- source/blender/makesrna/intern/rna_image.c | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index c48497c45a1..ab67d7e3f25 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -432,6 +432,7 @@ Image *BKE_add_image_size(unsigned int width, unsigned int height, const char *n ima->gen_x= width; ima->gen_y= height; ima->gen_type= uvtestgrid; + ima->gen_flag |= (floatbuf ? IMA_GEN_FLOAT : 0); ibuf= add_ibuf_size(width, height, name, depth, floatbuf, uvtestgrid, color); image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0); @@ -2172,7 +2173,7 @@ ImBuf *BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **lock_r) /* UV testgrid or black or solid etc */ if(ima->gen_x==0) ima->gen_x= 1024; if(ima->gen_y==0) ima->gen_y= 1024; - ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, 0, ima->gen_type, color); + ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, (ima->gen_flag & IMA_GEN_FLOAT) != 0, ima->gen_type, color); image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0); ima->ok= IMA_OK_LOADED; } diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index e9ebe78da29..66e844e67a8 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -804,6 +804,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char col= uiLayoutColumn(split, 1); uiItemR(col, &imaptr, "generated_width", 0, "X", ICON_NONE); uiItemR(col, &imaptr, "generated_height", 0, "Y", ICON_NONE); + uiItemR(col, &imaptr, "use_generated_float", 0, NULL, ICON_NONE); uiItemR(split, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, ICON_NONE); } diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index 99ed2319415..dd033339ca4 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -102,7 +102,8 @@ typedef struct Image { short animspeed; /* for generated images */ - short gen_x, gen_y, gen_type; + short gen_x, gen_y; + char gen_type, gen_flag; /* display aspect - for UV editing images resized for faster openGL display */ float aspx, aspy; @@ -136,5 +137,8 @@ typedef struct Image { #define IMA_MAX_RENDER_TEXT 512 #define IMA_MAX_RENDER_SLOT 8 +/* gen_flag */ +#define IMA_GEN_FLOAT 1 + #endif diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c index a52849b3366..eac4932ac43 100644 --- a/source/blender/makesrna/intern/rna_image.c +++ b/source/blender/makesrna/intern/rna_image.c @@ -502,6 +502,11 @@ static void rna_def_image(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Generated Height", "Generated image height"); RNA_def_property_update(prop, NC_IMAGE|ND_DISPLAY, "rna_Image_generated_update"); + prop= RNA_def_property(srna, "use_generated_float", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "gen_flag", IMA_GEN_FLOAT); + RNA_def_property_ui_text(prop, "Float Buffer", "Generate floating point buffer"); + RNA_def_property_update(prop, NC_IMAGE|ND_DISPLAY, "rna_Image_generated_update"); + /* realtime properties */ prop= RNA_def_property(srna, "mapping", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); -- cgit v1.2.3 From 98774eba0e459faf801d5be4bed3588b75166a1b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 01:30:26 +0000 Subject: fix [#28037] Missing orange selection lines (trivial) From what I can tell there is no good fix for this bug, calculating the 2d/3d viewborder and then attempting to align them to be pixel perfect fails because of float imprecision. Added a workaround, so the camera border is always drawn in 2d space, since this workaround may cause problems later on its kept under the define VIEW3D_CAMERA_BORDER_HACK so we can get old behavior back easily. --- source/blender/editors/space_view3d/drawobject.c | 15 ++++++++++++++- source/blender/editors/space_view3d/view3d_draw.c | 14 +++++++++++++- source/blender/editors/space_view3d/view3d_intern.h | 10 ++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index e314d249e6d..e6889f4563f 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -1335,6 +1335,11 @@ static void draw_focus_cross(float dist, float size) glEnd(); } +#ifdef VIEW3D_CAMERA_BORDER_HACK +float view3d_camera_border_hack_col[4]; +short view3d_camera_border_hack_test= FALSE; +#endif + /* flag similar to draw_object() */ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int flag) { @@ -1348,7 +1353,15 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob const float scax= 1.0f / len_v3(ob->obmat[0]); const float scay= 1.0f / len_v3(ob->obmat[1]); const float scaz= 1.0f / len_v3(ob->obmat[2]); - + +#ifdef VIEW3D_CAMERA_BORDER_HACK + if(is_view && !(G.f & G_PICKSEL)) { + glGetFloatv(GL_CURRENT_COLOR, view3d_camera_border_hack_col); + view3d_camera_border_hack_test= TRUE; + return; + } +#endif + cam= ob->data; aspx= (float) scene->r.xsch*scene->r.xasp; aspy= (float) scene->r.ysch*scene->r.yasp; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 0ed62f3953f..d2ff6eef097 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1007,6 +1007,8 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d) /* note: quite un-scientific but without this bit extra * 0.0001 on the lower left the 2D border sometimes * obscures the 3D camera border */ + /* note: with VIEW3D_CAMERA_BORDER_HACK defined this error isn't noticable + * but keep it here incase we need to remove the workaround */ x1i= (int)(x1 - 1.0001f); y1i= (int)(y1 - 1.0001f); x2i= (int)(x2 + (1.0f-0.0001f)); @@ -1039,7 +1041,17 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d) setlinestyle(0); UI_ThemeColor(TH_BACK); glRectf(x1i, y1i, x2i, y2i); - + +#ifdef VIEW3D_CAMERA_BORDER_HACK + { + if(view3d_camera_border_hack_test == TRUE) { + glColor4fv(view3d_camera_border_hack_col); + glRectf(x1i+1, y1i+1, x2i-1, y2i-1); + view3d_camera_border_hack_test= FALSE; + } + } +#endif + setlinestyle(3); UI_ThemeColor(TH_WIRE); glRectf(x1i, y1i, x2i, y2i); diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index aa92f0d0a59..d3886d48873 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -194,6 +194,16 @@ extern const char *view3d_context_dir[]; /* doc access */ /* draw_volume.c */ void draw_volume(struct ARegion *ar, struct GPUTexture *tex, float *min, float *max, int res[3], float dx, struct GPUTexture *tex_shadow); +/* workaround for trivial but noticable camera bug caused by imprecision + * between view border calculation in 2D/3D space, workaround for bug [#28037]. + * without this deifne we get the old behavior which is to try and align them + * both which _mostly_ works fine, but when the camera moves beyond ~1000 in + * any direction it starts to fail */ +#define VIEW3D_CAMERA_BORDER_HACK +#ifdef VIEW3D_CAMERA_BORDER_HACK +extern float view3d_camera_border_hack_col[4]; +extern short view3d_camera_border_hack_test; +#endif #endif /* ED_VIEW3D_INTERN_H */ -- cgit v1.2.3 From c608288d76472856a0a0f7d1f1f0be4eebe15b88 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 01:37:15 +0000 Subject: add tip that duplicator system doesnt support xray / transp object draw options since we keep getting reports about this. --- source/blender/makesrna/intern/rna_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 61e65585dd4..76bbfcbed41 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2274,12 +2274,12 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "show_transparent", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWTRANSP); - RNA_def_property_ui_text(prop, "Draw Transparent", "Displays material transparency in the object"); + RNA_def_property_ui_text(prop, "Draw Transparent", "Displays material transparency in the object (unsupported for duplicator drawing)"); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); prop= RNA_def_property(srna, "show_x_ray", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWXRAY); - RNA_def_property_ui_text(prop, "X-Ray", "Makes the object draw in front of others"); + RNA_def_property_ui_text(prop, "X-Ray", "Makes the object draw in front of others (unsupported for duplicator drawing)"); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); /* Grease Pencil */ -- cgit v1.2.3 From 314fdb941e28d5f1fbe2acace6133d6216f4e36c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 02:00:29 +0000 Subject: revert recent matrix multiplication patch: [#28032] Python Mathutils: Matrix Multiplication Error Since they ended up reversing the order we better keep old code unless its proven to be incorrect. also change Matrix.__repr__ function args to evaluate correctly (need to be inside a tuple). --- source/blender/python/mathutils/mathutils_Matrix.c | 53 ++++++++++------------ 1 file changed, 25 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index a7ed63776a5..76a0994c3aa 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1318,21 +1318,20 @@ static PyObject *Matrix_repr(MatrixObject *self) } } switch(self->row_size) { - case 2: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R)", rows[0], rows[1]); + case 2: return PyUnicode_FromFormat("Matrix((%R,\n" + " %R))", rows[0], rows[1]); - case 3: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R,\n" - " %R)", rows[0], rows[1], rows[2]); + case 3: return PyUnicode_FromFormat("Matrix((%R,\n" + " %R,\n" + " %R))", rows[0], rows[1], rows[2]); - case 4: return PyUnicode_FromFormat("Matrix(%R,\n" - " %R,\n" - " %R,\n" - " %R)", rows[0], rows[1], rows[2], rows[3]); + case 4: return PyUnicode_FromFormat("Matrix((%R,\n" + " %R,\n" + " %R,\n" + " %R))", rows[0], rows[1], rows[2], rows[3]); } - PyErr_SetString(PyExc_RuntimeError, - "internal error!"); + Py_FatalError("Matrix(): invalid row size!"); return NULL; } @@ -1587,26 +1586,24 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) if(mat1 && mat2) { /*MATRIX * MATRIX*/ - if(mat2->row_size != mat1->col_size){ - PyErr_SetString(PyExc_ValueError, - "Matrix multiplication: " - "matrix A rowsize must equal matrix B colsize"); - return NULL; - } - else { - float mat[16]= {0.0f}; - int x, y, z; - - for(x = 0; x < mat2->row_size; x++) { - for(y = 0; y < mat1->col_size; y++) { - for(z = 0; z < mat1->row_size; z++) { - mat[x * mat2->col_size + y] += (mat2->matrix[x][z] * mat1->matrix[z][y]); - } + float mat[16]= {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + double dot = 0.0f; + int x, y, z; + + for(x = 0; x < mat2->row_size; x++) { + for(y = 0; y < mat1->col_size; y++) { + for(z = 0; z < mat1->row_size; z++) { + dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); } + mat[((x * mat1->col_size) + y)] = (float)dot; + dot = 0.0f; } - - return newMatrixObject(mat, mat1->row_size, mat2->col_size, Py_NEW, Py_TYPE(mat1)); } + + return newMatrixObject(mat, mat2->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); } else if(mat2) { /*FLOAT/INT * MATRIX */ -- cgit v1.2.3 From e7669caf5a21cfda67fd73aee795932eaba8067e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 21 Jul 2011 08:10:34 +0000 Subject: Fixed bug with multires baking to float buffers. Was missed a flag to set rect marked as changed. --- source/blender/editors/object/object_bake.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index bdd911d68ee..679e4e58017 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -860,6 +860,10 @@ static void finish_images(MultiresBakeRender *bkr) RE_bake_ibuf_filter(ibuf, (char *)ibuf->userdata, bkr->bake_filter); ibuf->userflags|= IB_BITMAPDIRTY; + + if(ibuf->rect_float) + ibuf->userflags|= IB_RECT_INVALID; + if(ibuf->mipmap[0]) { ibuf->userflags|= IB_MIPMAP_INVALID; imb_freemipmapImBuf(ibuf); -- cgit v1.2.3 From 3e9d1d7683c7d7bf2386c73048808bacd238d550 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 21 Jul 2011 09:50:39 +0000 Subject: Corrected View Selected operator for image editor so now it works fine for images with different X and Y aspect ratio. --- source/blender/editors/space_image/image_ops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 10b8cb238aa..d5515bd1cf8 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -500,7 +500,7 @@ static int view_selected_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene; Object *obedit; Image *ima; - float size, min[2], max[2], d[2]; + float size, min[2], max[2], d[2], aspx, aspy; int width, height; /* retrieve state */ @@ -511,6 +511,10 @@ static int view_selected_exec(bContext *C, wmOperator *UNUSED(op)) ima= ED_space_image(sima); ED_space_image_size(sima, &width, &height); + ED_image_aspect(ima, &aspx, &aspy); + + width= width*aspx; + height= height*aspy; /* get bounds */ if(!ED_uvedit_minmax(scene, ima, obedit, min, max)) -- cgit v1.2.3 From bbfe3c9c49523d3987a3144da119d8f6afd09cf9 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 21 Jul 2011 17:40:20 +0000 Subject: Bugfix #28034 Blender render optimizes alpha=0 materials away, unless it has a number of properties... but there wasn't a check for material being ray-mirror, it then should be rendered always. --- source/blender/render/intern/source/convertblender.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 583b792f240..2a7fb468bfa 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -3375,7 +3375,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset) /* test for 100% transparant */ ok= 1; - if(ma->alpha==0.0f && ma->spectra==0.0f && ma->filter==0.0f && (ma->mode & MA_TRANSP)) { + if(ma->alpha==0.0f && ma->spectra==0.0f && ma->filter==0.0f && (ma->mode & MA_TRANSP) && (ma->mode & MA_RAYMIRROR)==0) { ok= 0; /* texture on transparency? */ for(a=0; a Date: Thu, 21 Jul 2011 18:31:01 +0000 Subject: --- source/blender/collada/AnimationImporter.cpp | 39 ++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 129f3192ce2..e6c35b3ffb7 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -50,6 +50,7 @@ #include "collada_utils.h" #include "AnimationImporter.h" #include "ArmatureImporter.h" +#include "MaterialExporter.h" #include @@ -905,8 +906,35 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } + if ( animType->material != 0){ + Material *ma = give_current_material(ob, 1); + if (!ma->adt || !ma->adt->action) act = verify_adt_action((ID*)&ma->id, 1); + else act = ma->adt->action; + + ListBase *AnimCurves = &(act->curves); + + const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); + for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { + const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); + for (unsigned int j = 0; j < matBinds.getCount(); j++) { + const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[j].getReferencedMaterial()]; + const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) FW_object_map[mat->getInstantiatedEffect()]; + COLLADAFW::CommonEffectPointerArray commonEffects = ef->getCommonEffects(); + for (unsigned int k = 0; k < commonEffects.getCount(); k++) { + COLLADAFW::EffectCommon *efc = commonEffects[k]; + if((animType->material & MATERIAL_SHININESS) != 0){ + const COLLADAFW::FloatOrParam *shin = &(efc->getShininess()); + const COLLADAFW::UniqueId& listid = shin->getAnimationList(); + Assign_float_animations( listid, AnimCurves , "specular_hardness" ); + } + } + } + } + } + } + //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , std::map FW_object_map) @@ -970,12 +998,13 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); - for (unsigned int j = 0; i < matBinds.getCount(); i++) { - const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[i].getReferencedMaterial()]; + for (unsigned int j = 0; j < matBinds.getCount(); j++) { + const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[j].getReferencedMaterial()]; const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) FW_object_map[mat->getInstantiatedEffect()]; - const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); - for (unsigned int k = 0; i < commonEffects.getCount(); i++) { - types->material = setAnimType(&(commonEffects[i]->getShininess()),(types->material), MATERIAL_SHININESS); + COLLADAFW::CommonEffectPointerArray commonEffects = ef->getCommonEffects(); + for (unsigned int k = 0; k < commonEffects.getCount(); k++) { + COLLADAFW::EffectCommon *efc = commonEffects[k]; + types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); } } -- cgit v1.2.3 From 1cce0dd505b72b1e1b2188c9f72fa73d73e6ec4d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 21 Jul 2011 20:57:23 +0000 Subject: Prepare for NDOF event handling all the way to keymaps (and keymap editor). --- source/blender/windowmanager/wm_event_types.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 210dd902b99..579f20ca605 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -125,6 +125,7 @@ enum { NDOF_BUTTON_8, NDOF_BUTTON_9, NDOF_BUTTON_10, + NDOF_LAST }; @@ -290,8 +291,11 @@ enum { /* test whether the event is tweak event */ #define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE) + /* test whether the event is a NDOF event */ +#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST) + /* test whether event type is acceptable as hotkey, excluding modifiers */ -#define ISHOTKEY(event) ((ISKEYBOARD(event) || ISMOUSE(event)) && event!=ESCKEY && !(event>=LEFTCTRLKEY && event<=LEFTSHIFTKEY) && !(event>=UNKNOWNKEY && event<=GRLESSKEY)) +#define ISHOTKEY(event) ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && event!=ESCKEY && !(event>=LEFTCTRLKEY && event<=LEFTSHIFTKEY) && !(event>=UNKNOWNKEY && event<=GRLESSKEY)) /* **************** BLENDER GESTURE EVENTS (0x5000) **************** */ -- cgit v1.2.3 From 2c798fd86d9a9aed1c2459f5550bacb03d583f96 Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Thu, 21 Jul 2011 21:34:08 +0000 Subject: Adding Shear transform to UV menu and Ctrl Alt Shift S hotkey (same as in 3D View) --- source/blender/editors/transform/transform_ops.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 7bdf6c909d9..2d0c1ac2818 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -954,6 +954,8 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); + WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); -- cgit v1.2.3 From 2258afc1be78a2cd629f0efb8e5d69acc4c58d2c Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 21 Jul 2011 21:40:00 +0000 Subject: Handle NDOF events on RNA side for windowmanager. --- source/blender/makesrna/intern/rna_wm.c | 88 ++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 7ea4701dec3..31e1d73c8de 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -106,6 +106,46 @@ EnumPropertyItem event_timer_type_items[]= { {TIMER2, "TIMER2", 0, "Timer 2", ""}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem event_ndof_type_items[]= { + /* buttons on all 3dconnexion devices */ + {NDOF_BUTTON_MENU, "NDOF_BUTTON_MENU", 0, "Menu", ""}, + {NDOF_BUTTON_FIT, "NDOF_BUTTON_FIT", 0, "Fit", ""}, + /* view buttons */ + {NDOF_BUTTON_TOP, "NDOF_BUTTON_TOP", 0, "Top", ""}, + {NDOF_BUTTON_BOTTOM, "NDOF_BUTTON_BOTTOM", 0, "Bottom", ""}, + {NDOF_BUTTON_LEFT, "NDOF_BUTTON_LEFT", 0, "Left", ""}, + {NDOF_BUTTON_RIGHT, "NDOF_BUTTON_RIGHT", 0, "Right", ""}, + {NDOF_BUTTON_FRONT, "NDOF_BUTTON_FRONT", 0, "Front", ""}, + {NDOF_BUTTON_BACK, "NDOF_BUTTON_BACK", 0, "Back", ""}, + /* more views */ + {NDOF_BUTTON_ISO1, "NDOF_BUTTON_ISO1", 0, "ISO 1", ""}, + {NDOF_BUTTON_ISO2, "NDOF_BUTTON_ISO2", 0, "ISO 2", ""}, + /* 90 degree rotations */ + {NDOF_BUTTON_ROLL_CW, "NDOF_BUTTON_ROLL_CW", 0, "Roll CW", ""}, + {NDOF_BUTTON_ROLL_CCW, "NDOF_BUTTON_ROLL_CCW", 0, "Roll CCW", ""}, + {NDOF_BUTTON_SPIN_CW, "NDOF_BUTTON_SPIN_CW", 0, "Spin CW", ""}, + {NDOF_BUTTON_SPIN_CCW, "NDOF_BUTTON_SPIN_CCW", 0, "Spin CCW", ""}, + {NDOF_BUTTON_TILT_CW, "NDOF_BUTTON_TILT_CW", 0, "Tilt CW", ""}, + {NDOF_BUTTON_TILT_CCW, "NDOF_BUTTON_TILT_CCW", 0, "Tilt CCW", ""}, + /* device control */ + {NDOF_BUTTON_ROTATE, "NDOF_BUTTON_ROTATE", 0, "Rotate", ""}, + {NDOF_BUTTON_PANZOOM, "NDOF_BUTTON_PANZOOM", 0, "Pan/Zoom", ""}, + {NDOF_BUTTON_DOMINANT, "NDOF_BUTTON_DOMINANT", 0, "Dominant", ""}, + {NDOF_BUTTON_PLUS, "NDOF_BUTTON_PLUS", 0, "Plus", ""}, + {NDOF_BUTTON_MINUS, "NDOF_BUTTON_MINUS", 0, "Minus", ""}, + /* general-purpose buttons */ + {NDOF_BUTTON_1, "NDOF_BUTTON_1", 0, "Button 1", ""}, + {NDOF_BUTTON_2, "NDOF_BUTTON_2", 0, "Button 2", ""}, + {NDOF_BUTTON_3, "NDOF_BUTTON_3", 0, "Button 3", ""}, + {NDOF_BUTTON_4, "NDOF_BUTTON_4", 0, "Button 4", ""}, + {NDOF_BUTTON_5, "NDOF_BUTTON_5", 0, "Button 5", ""}, + {NDOF_BUTTON_6, "NDOF_BUTTON_6", 0, "Button 6", ""}, + {NDOF_BUTTON_7, "NDOF_BUTTON_7", 0, "Button 7", ""}, + {NDOF_BUTTON_8, "NDOF_BUTTON_8", 0, "Button 8", ""}, + {NDOF_BUTTON_9, "NDOF_BUTTON_9", 0, "Button 9", ""}, + {NDOF_BUTTON_10, "NDOF_BUTTON_10", 0, "Button 10", ""}, + {0, NULL, 0, NULL, NULL}}; + /* not returned: CAPSLOCKKEY, UNKNOWNKEY */ EnumPropertyItem event_type_items[] = { @@ -256,6 +296,44 @@ EnumPropertyItem event_type_items[] = { {TIMER0, "TIMER0", 0, "Timer 0", ""}, {TIMER1, "TIMER1", 0, "Timer 1", ""}, {TIMER2, "TIMER2", 0, "Timer 2", ""}, + {0, "", 0, NULL, NULL}, + /* buttons on all 3dconnexion devices */ + {NDOF_BUTTON_MENU, "NDOF_BUTTON_MENU", 0, "Menu", ""}, + {NDOF_BUTTON_FIT, "NDOF_BUTTON_FIT", 0, "Fit", ""}, + /* view buttons */ + {NDOF_BUTTON_TOP, "NDOF_BUTTON_TOP", 0, "Top", ""}, + {NDOF_BUTTON_BOTTOM, "NDOF_BUTTON_BOTTOM", 0, "Bottom", ""}, + {NDOF_BUTTON_LEFT, "NDOF_BUTTON_LEFT", 0, "Left", ""}, + {NDOF_BUTTON_RIGHT, "NDOF_BUTTON_RIGHT", 0, "Right", ""}, + {NDOF_BUTTON_FRONT, "NDOF_BUTTON_FRONT", 0, "Front", ""}, + {NDOF_BUTTON_BACK, "NDOF_BUTTON_BACK", 0, "Back", ""}, + /* more views */ + {NDOF_BUTTON_ISO1, "NDOF_BUTTON_ISO1", 0, "ISO 1", ""}, + {NDOF_BUTTON_ISO2, "NDOF_BUTTON_ISO2", 0, "ISO 2", ""}, + /* 90 degree rotations */ + {NDOF_BUTTON_ROLL_CW, "NDOF_BUTTON_ROLL_CW", 0, "Roll CW", ""}, + {NDOF_BUTTON_ROLL_CCW, "NDOF_BUTTON_ROLL_CCW", 0, "Roll CCW", ""}, + {NDOF_BUTTON_SPIN_CW, "NDOF_BUTTON_SPIN_CW", 0, "Spin CW", ""}, + {NDOF_BUTTON_SPIN_CCW, "NDOF_BUTTON_SPIN_CCW", 0, "Spin CCW", ""}, + {NDOF_BUTTON_TILT_CW, "NDOF_BUTTON_TILT_CW", 0, "Tilt CW", ""}, + {NDOF_BUTTON_TILT_CCW, "NDOF_BUTTON_TILT_CCW", 0, "Tilt CCW", ""}, + /* device control */ + {NDOF_BUTTON_ROTATE, "NDOF_BUTTON_ROTATE", 0, "Rotate", ""}, + {NDOF_BUTTON_PANZOOM, "NDOF_BUTTON_PANZOOM", 0, "Pan/Zoom", ""}, + {NDOF_BUTTON_DOMINANT, "NDOF_BUTTON_DOMINANT", 0, "Dominant", ""}, + {NDOF_BUTTON_PLUS, "NDOF_BUTTON_PLUS", 0, "Plus", ""}, + {NDOF_BUTTON_MINUS, "NDOF_BUTTON_MINUS", 0, "Minus", ""}, + /* general-purpose buttons */ + {NDOF_BUTTON_1, "NDOF_BUTTON_1", 0, "Button 1", ""}, + {NDOF_BUTTON_2, "NDOF_BUTTON_2", 0, "Button 2", ""}, + {NDOF_BUTTON_3, "NDOF_BUTTON_3", 0, "Button 3", ""}, + {NDOF_BUTTON_4, "NDOF_BUTTON_4", 0, "Button 4", ""}, + {NDOF_BUTTON_5, "NDOF_BUTTON_5", 0, "Button 5", ""}, + {NDOF_BUTTON_6, "NDOF_BUTTON_6", 0, "Button 6", ""}, + {NDOF_BUTTON_7, "NDOF_BUTTON_7", 0, "Button 7", ""}, + {NDOF_BUTTON_8, "NDOF_BUTTON_8", 0, "Button 8", ""}, + {NDOF_BUTTON_9, "NDOF_BUTTON_9", 0, "Button 9", ""}, + {NDOF_BUTTON_10, "NDOF_BUTTON_10", 0, "Button 10", ""}, {0, NULL, 0, NULL, NULL}}; EnumPropertyItem keymap_propvalue_items[] = { @@ -303,6 +381,7 @@ EnumPropertyItem wm_report_items[] = { #define KMI_TYPE_TWEAK 2 #define KMI_TYPE_TEXTINPUT 3 #define KMI_TYPE_TIMER 4 +#define KMI_TYPE_NDOF 5 #ifdef RNA_RUNTIME @@ -433,6 +512,7 @@ static int rna_wmKeyMapItem_map_type_get(PointerRNA *ptr) if(ISKEYBOARD(kmi->type)) return KMI_TYPE_KEYBOARD; if(ISTWEAK(kmi->type)) return KMI_TYPE_TWEAK; if(ISMOUSE(kmi->type)) return KMI_TYPE_MOUSE; + if(ISNDOF(kmi->type)) return KMI_TYPE_NDOF; if(kmi->type == KM_TEXTINPUT) return KMI_TYPE_TEXTINPUT; return KMI_TYPE_KEYBOARD; } @@ -464,6 +544,10 @@ static void rna_wmKeyMapItem_map_type_set(PointerRNA *ptr, int value) kmi->type= TIMER; kmi->val= KM_NOTHING; break; + case KMI_TYPE_NDOF: + kmi->type = NDOF_BUTTON_MENU; + kmi->val = KM_NOTHING; + break; } } } @@ -475,6 +559,7 @@ static EnumPropertyItem *rna_KeyMapItem_type_itemf(bContext *UNUSED(C), PointerR if(map_type == KMI_TYPE_MOUSE) return event_mouse_type_items; if(map_type == KMI_TYPE_TWEAK) return event_tweak_type_items; if(map_type == KMI_TYPE_TIMER) return event_timer_type_items; + if(map_type == KMI_TYPE_NDOF) return event_ndof_type_items; else return event_type_items; } @@ -482,7 +567,7 @@ static EnumPropertyItem *rna_KeyMapItem_value_itemf(bContext *UNUSED(C), Pointer { int map_type= rna_wmKeyMapItem_map_type_get(ptr); - if(map_type == KMI_TYPE_MOUSE || map_type == KMI_TYPE_KEYBOARD) return event_keymouse_value_items; + if(map_type == KMI_TYPE_MOUSE || map_type == KMI_TYPE_KEYBOARD || map_type == KMI_TYPE_NDOF) return event_keymouse_value_items; if(map_type == KMI_TYPE_TWEAK) return event_tweak_value_items; else return event_value_items; } @@ -1653,6 +1738,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) {KMI_TYPE_KEYBOARD, "KEYBOARD", 0, "Keyboard", ""}, {KMI_TYPE_TWEAK, "TWEAK", 0, "Tweak", ""}, {KMI_TYPE_MOUSE, "MOUSE", 0, "Mouse", ""}, + {KMI_TYPE_NDOF, "NDOF", 0, "NDOF", ""}, {KMI_TYPE_TEXTINPUT, "TEXTINPUT", 0, "Text Input", ""}, {KMI_TYPE_TIMER, "TIMER", 0, "Timer", ""}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 407a2a8439f61922139a3c5d1607818234924fe1 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 21 Jul 2011 21:40:04 +0000 Subject: tweaked ephemeral ndof data types --- source/blender/editors/space_view3d/view3d_fly.c | 18 +++++++++++++----- source/blender/makesdna/DNA_userdef_types.h | 5 ++--- source/blender/makesdna/DNA_view3d_types.h | 7 +++---- source/blender/makesrna/intern/rna_userdef.c | 16 +++------------- 4 files changed, 21 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 6955aefcb9e..1122438da96 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -929,8 +929,15 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) wmNDOFMotionData* ndof = fly->ndof; const float dt = ndof->dt; RegionView3D* rv3d = fly->rv3d; + const int flag = U.ndof_flag; - const int shouldRotate = 1, shouldTranslate = 1; + const int shouldRotate = TRUE, + shouldTranslate = TRUE; + + // const int shouldRotate = flag & NDOF_SHOULD_ROTATE, + // shouldTranslate = flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM); + // might also be something in FlyInfo that restricts motion + // if so, change these ^^ float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); @@ -955,7 +962,7 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // transform motion from view to world coordinates mul_qt_v3(view_inv, trans); - if (U.ndof_flag & NDOF_FLY_HELICOPTER) + if (flag & NDOF_FLY_HELICOPTER) // could also use RNA to get a simple boolean value { // replace world z component with device y (yes it makes sense) @@ -981,9 +988,9 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // apply rotation to view axis_angle_to_quat(rotation, axis, angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); - if (U.ndof_flag & NDOF_LOCK_HORIZON) + if (flag & NDOF_LOCK_HORIZON) // force an upright viewpoint // TODO: make this less... sudden { @@ -992,6 +999,7 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // find new inverse since viewquat has changed invert_qt_qt(view_inv, rv3d->viewquat); + // could apply reverse rotation to existing view_inv to save a few cycles // transform view vectors to world coordinates mul_qt_v3(view_inv, view_horizon); @@ -1007,7 +1015,7 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // rotate view so view horizon = world horizon axis_angle_to_quat(rotation, view_direction, angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); } rv3d->view = RV3D_VIEW_USER; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index a94c10a7aa0..6fbdb9842d6 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -365,7 +365,6 @@ typedef struct UserDef { short recent_files; /* maximum number of recently used files to remember */ short smooth_viewtx; /* miliseconds to spend spinning the view */ short glreslimit; -/* short ndof_pan, ndof_rotate; */ short curssize; short color_picker_type; short ipo_new; /* interpolation mode for newly added F-Curves */ @@ -586,11 +585,11 @@ extern UserDef U; /* from blenkernel blender.c */ #define NDOF_FLY_HELICOPTER (1 << 1) #define NDOF_LOCK_HORIZON (1 << 2) /* the following might not need to be saved between sessions, - but they do need to live somewhere accessible... + but they do need to live somewhere accessible... */ #define NDOF_SHOULD_PAN (1 << 3) #define NDOF_SHOULD_ZOOM (1 << 4) #define NDOF_SHOULD_ROTATE (1 << 5) -*/ + #ifdef __cplusplus } diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 7379493003d..27ffc6d856b 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -190,11 +190,10 @@ typedef struct View3D { /* drawflags, denoting state */ short zbuf, transp, xray; - char ndofmode; /* mode of transform for 6DOF devices -1 not found, 0 normal, 1 fly, 2 ob transform */ - char ndoffilter; /* filter for 6DOF devices 0 normal, 1 dominant */ - + char pad3[2]; + void *properties_storage; /* Nkey panel stores stuff here (runtime only!) */ - + /* XXX depricated? */ struct bGPdata *gpd; /* Grease-Pencil Data (annotation layers) */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 664cb7732f9..50b5e99804c 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2739,24 +2739,14 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Drag Threshold", "Amount of pixels you have to drag before dragging UI items happens"); /* 3D mouse settings */ -/* - prop= RNA_def_property(srna, "ndof_pan_speed", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "ndof_pan"); - RNA_def_property_range(prop, 0, 200); - RNA_def_property_ui_text(prop, "NDof Pan Speed", "The overall panning speed of an NDOF device, as percent of standard"); - - prop= RNA_def_property(srna, "ndof_rotate_speed", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "ndof_rotate"); - RNA_def_property_range(prop, 0, 200); - RNA_def_property_ui_text(prop, "NDof Rotation Speed", "The overall rotation speed of an NDOF device, as percent of standard"); -*/ prop= RNA_def_property(srna, "ndof_sensitivity", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.25f, 4.0f); - RNA_def_property_ui_text(prop, "3D Mouse Sensitivity", "Baseline sensitivity of the 3D Mouse"); + RNA_def_property_ui_text(prop, "Sensitivity", "Overall sensitivity of the 3D Mouse"); prop= RNA_def_property(srna, "ndof_show_guide", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_SHOW_GUIDE); - RNA_def_property_ui_text(prop, "Show 3D Mouse Guide", "Visualize the center and axis of rotation (or projected position in fly mode)"); + RNA_def_property_ui_text(prop, "Show Navigation Guide", "Display the center and axis during rotation"); + /* TODO: update description when fly-mode visuals are in place ("projected position in fly mode")*/ prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_LOCK_HORIZON); -- cgit v1.2.3 From e6604288c8886b2c236c1765734a6ed71b8f0ae8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 23:06:51 +0000 Subject: cmake - option to disable the frame server --- source/blender/blenkernel/CMakeLists.txt | 4 ++++ source/blender/blenkernel/SConscript | 1 + source/blender/blenkernel/intern/writeframeserver.c | 2 ++ source/blender/makesrna/intern/CMakeLists.txt | 4 ++++ source/blender/makesrna/intern/SConscript | 2 ++ source/blender/makesrna/intern/rna_scene.c | 2 ++ 6 files changed, 15 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 9a384c40e24..defcef58463 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -279,6 +279,10 @@ if(WITH_IMAGE_CINEON) add_definitions(-DWITH_CINEON) endif() +if(WITH_IMAGE_FRAMESERVER) + add_definitions(-DWITH_FRAMESERVER) +endif() + if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index 36afce7946c..5ea42ee65ae 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -22,6 +22,7 @@ incs += ' ' + env['BF_ZLIB_INC'] defs = [ 'GLEW_STATIC' ] defs.append('WITH_SMOKE') # TODO, make optional +defs.append('WITH_FRAMESERVER') # TODO, make optional if env['WITH_BF_PYTHON']: incs += ' ../python' diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c index 2239f6d3147..d13d15d1269 100644 --- a/source/blender/blenkernel/intern/writeframeserver.c +++ b/source/blender/blenkernel/intern/writeframeserver.c @@ -22,6 +22,7 @@ * */ +#ifdef WITH_FRAMESERVER #include #include @@ -381,3 +382,4 @@ void end_frameserver(void) shutdown_socket_system(); } +#endif /* WITH_FRAMESERVER */ diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index c9865bf3df4..cb593e7deab 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -171,6 +171,10 @@ if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() +if(WITH_IMAGE_FRAMESERVER) + add_definitions(-DWITH_FRAMESERVER) +endif() + if(WITH_AUDASPACE) add_definitions(-DWITH_AUDASPACE) endif() diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript index 421c3a60691..5e43ed9b2fb 100644 --- a/source/blender/makesrna/intern/SConscript +++ b/source/blender/makesrna/intern/SConscript @@ -54,6 +54,8 @@ if env['WITH_BF_CINEON']: if env['WITH_BF_HDR']: defs.append('WITH_HDR') +defs.append('WITH_FRAMESERVER') # TODO, make optional + if env['WITH_BF_FFMPEG']: defs.append('WITH_FFMPEG') incs += ' ' + env['BF_FFMPEG_INC'] diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 662ce04552e..9f751da484e 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -135,7 +135,9 @@ EnumPropertyItem image_type_items[] = { #endif {R_AVIJPEG, "AVI_JPEG", ICON_FILE_MOVIE, "AVI JPEG", "Output video in AVI JPEG format"}, {R_AVIRAW, "AVI_RAW", ICON_FILE_MOVIE, "AVI Raw", "Output video in AVI Raw format"}, +#ifdef WITH_FRAMESERVER {R_FRAMESERVER, "FRAMESERVER", ICON_FILE_SCRIPT, "Frame Server", "Output image to a frameserver"}, +#endif #ifdef WITH_FFMPEG {R_H264, "H264", ICON_FILE_MOVIE, "H.264", "Output video in H.264 format"}, {R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "MPEG", "Output video in MPEG format"}, -- cgit v1.2.3 From 58895bee7bb1b877a7ba1e1648e75c9598706566 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 21 Jul 2011 23:36:17 +0000 Subject: fix [#28052] PET: Shift-O cycling skips "random falloff" --- source/blender/editors/transform/transform.c | 2 +- source/blender/makesdna/DNA_scene_types.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index d3a30991aa6..eea77e36f7c 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -969,7 +969,7 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case OKEY: if (t->flag & T_PROP_EDIT && event->shift) { - t->prop_mode = (t->prop_mode + 1) % 6; + t->prop_mode = (t->prop_mode + 1) % PROP_MODE_MAX; calculatePropRatio(t); t->redraw |= TREDRAW_HARD; } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 3c14dacf973..8203a4dd77c 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1107,7 +1107,8 @@ typedef struct Scene { #define PROP_SHARP 3 #define PROP_LIN 4 #define PROP_CONST 5 -#define PROP_RANDOM 6 +#define PROP_RANDOM 6 +#define PROP_MODE_MAX 7 /* toolsettings->proportional */ #define PROP_EDIT_OFF 0 -- cgit v1.2.3 From 03bae345bebd01cd513e2b477e8409048c3f142c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 22 Jul 2011 00:31:24 +0000 Subject: fix [#28053] New material tooltip --- source/blender/editors/render/render_shading.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index fdd53d27b02..cfed2750e18 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -108,7 +108,7 @@ void OBJECT_OT_material_slot_add(wmOperatorType *ot) /* identifiers */ ot->name= "Add Material Slot"; ot->idname= "OBJECT_OT_material_slot_add"; - ot->description="Add a new material slot or duplicate the selected one"; + ot->description="Add a new material slot"; /* api callbacks */ ot->exec= material_slot_add_exec; -- cgit v1.2.3 From 6040a28f039dc73cc62372fd329fe38e25b8f31f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 22 Jul 2011 00:34:03 +0000 Subject: missed this file when adding option to disable frameserver --- source/blender/blenkernel/intern/writeavi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c index ba7f9bdd415..769a3f9b11e 100644 --- a/source/blender/blenkernel/intern/writeavi.c +++ b/source/blender/blenkernel/intern/writeavi.c @@ -105,13 +105,18 @@ bMovieHandle *BKE_get_movie_handle(int imtype) mh.get_movie_path = filepath_ffmpeg; } #endif +#ifdef WITH_FRAMESERVER if (imtype == R_FRAMESERVER) { mh.start_movie = start_frameserver; mh.append_movie = append_frameserver; mh.end_movie = end_frameserver; mh.get_next_frame = frameserver_loop; } - +#endif + + /* incase all above are disabled */ + (void)imtype; + return &mh; } -- cgit v1.2.3 From 30da1336a8d7811fb9409c6e48209f7a533af1cc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 22 Jul 2011 01:21:20 +0000 Subject: patch [#28045] Straighten tool from Simple Todos from Kyle Mills (khonkhortisan) --- source/blender/editors/uvedit/uvedit_ops.c | 131 +++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index c09f8cff02d..d0393c970a6 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1057,6 +1057,134 @@ static void weld_align_uv(bContext *C, int tool) } } + if(tool == 's' || tool == 't' || tool == 'u') { + /* pass 1&2 variables */ + int i, j; + int starttmpl= -1, connectedtostarttmpl, startcorner; + int endtmpl= -1, connectedtoendtmpl, endcorner; + MTFace *startface, *endface; + int itmpl, jtmpl; + EditVert *eve; + int pass; /* first 2 passes find endpoints, 3rd pass moves middle points, 4th pass is fail-on-face-selected */ + EditFace *startefa, *endefa; + + /* pass 3 variables */ + float startx, starty, firstm, firstb, midx, midy; + float endx, endy, secondm, secondb, midmovedx, midmovedy; + float IsVertical_check= -1; + float IsHorizontal_check= -1; + + for(i= 0, eve= em->verts.first; eve; eve= eve->next, i++) /* give each point a unique name */ + eve->tmp.l= i; + for(pass= 1; pass <= 3; pass++) { /* do this for each endpoint */ + if(pass == 3){ /* calculate */ + startx= startface->uv[startcorner][0]; + starty= startface->uv[startcorner][1]; + endx= endface->uv[endcorner][0]; + endy= endface->uv[endcorner][1]; + firstm= (endy-starty)/(endx-startx); + firstb= starty-(firstm*startx); + secondm= -1.0f/firstm; + if(startx == endx) IsVertical_check= startx; + if(starty == endy) IsHorizontal_check= starty; + } + for(efa= em->faces.first; efa; efa= efa->next) { /* for each face */ + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); /* get face */ + if(uvedit_face_visible(scene, ima, efa, tf)) { /* if you can see it */ + if(uvedit_face_selected(scene, efa, tf)) { /* if the face is selected, get out now! */ + pass= 4; + break; + } + for(i= 0; (i < 3 || (i == 3 && efa->v4)); i++) { /* for each point of the face */ + itmpl= (*(&efa->v1 + i))->tmp.l; /* get unique name for points */ + if(pass == 3) { /* move */ + if(uvedit_uv_selected(scene, efa, tf, i)) { + if(!(itmpl == starttmpl || itmpl == endtmpl)) { + if(IsVertical_check != -1) tf->uv[i][0]= IsVertical_check; + if(IsHorizontal_check != -1) tf->uv[i][1]= IsHorizontal_check; + if((IsVertical_check == -1) && (IsHorizontal_check == -1)) { + midx= tf->uv[i][0]; + midy= tf->uv[i][1]; + if(tool == 's') { + secondb= midy-(secondm*midx); + midmovedx= (secondb-firstb)/(firstm-secondm); + midmovedy= (secondm*midmovedx)+secondb; + tf->uv[i][0]= midmovedx; + tf->uv[i][1]= midmovedy; + } + else if(tool == 't') { + tf->uv[i][0]= (midy-firstb)/firstm; /* midmovedx */ + } + else if(tool == 'u') { + tf->uv[i][1]= (firstm*midx)+firstb; /* midmovedy */ + } + } + } + } + } + else { + for(j= 0; (j < 3 || (j == 3 && efa->v4)); j++) { /* also for each point on the face */ + jtmpl= (*(&efa->v1 + j))->tmp.l; + if(i != j && (!efa->v4 || ABS(i-j) != 2)) { /* if the points are connected */ + /* quad (0,1,2,3) 0,1 0,3 1,0 1,2 2,1 2,3 3,0 3,2 + * triangle (0,1,2) 0,1 0,2 1,0 1,2 2,0 2,1 */ + if(uvedit_uv_selected(scene, efa, tf, i) && uvedit_uv_selected(scene, efa, tf, j)) { + /* if the edge is selected */ + if(pass == 1) { /* if finding first endpoint */ + if(starttmpl == -1) { /* if the first endpoint isn't found yet */ + starttmpl= itmpl; /* set unique name for endpoint */ + connectedtostarttmpl= jtmpl; + /* get point that endpoint is connected to */ + startface= tf; /* get face it's on */ + startcorner= i; /* what corner of the face? */ + startefa= efa; + efa= em->faces.first; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= -1; + break; + } + if(starttmpl == itmpl && jtmpl != connectedtostarttmpl) { + starttmpl= -1; /* not an endpoint */ + efa= startefa; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= startcorner; + break; + } + } + else if(pass == 2) { /* if finding second endpoint */ + if(endtmpl == -1 && itmpl != starttmpl) { + endtmpl= itmpl; + connectedtoendtmpl= jtmpl; + endface= tf; + endcorner= i; + endefa= efa; + efa= em->faces.first; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= -1; + break; + } + if(endtmpl == itmpl && jtmpl != connectedtoendtmpl) { + endtmpl= -1; + efa= endefa; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= endcorner; + break; + } + } + } + } + } + } + } + } + } + if(pass == 2 && (starttmpl == -1 || endtmpl == -1)) { + /* if endpoints aren't found */ + pass=4; + } + } + } + uvedit_live_unwrap_update(sima, scene, obedit); DAG_id_tag_update(obedit->data, 0); WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); @@ -1074,6 +1202,9 @@ static int align_exec(bContext *C, wmOperator *op) static void UV_OT_align(wmOperatorType *ot) { static EnumPropertyItem axis_items[] = { + {'s', "ALIGN_S", 0, "Straighten", "Align UVs along the line defined by the endpoints"}, + {'t', "ALIGN_T", 0, "Straighten X", "Align UVs along the line defined by the endpoints along the X axis"}, + {'u', "ALIGN_U", 0, "Straighten Y", "Align UVs along the line defined by the endpoints along the Y axis"}, {'a', "ALIGN_AUTO", 0, "Align Auto", "Automatically choose the axis on which there is most alignment already"}, {'x', "ALIGN_X", 0, "Align X", "Align UVs on X axis"}, {'y', "ALIGN_Y", 0, "Align Y", "Align UVs on Y axis"}, -- cgit v1.2.3 From 0e933d089df3a17327caf8700c19df9f419a2973 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 22 Jul 2011 05:33:06 +0000 Subject: fix [#27910] baking ambient occlusion, do not consider closer object for blender 2.58a --- source/blender/render/intern/source/convertblender.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 2a7fb468bfa..7782077604d 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5685,7 +5685,7 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, Object *camera; float mat[4][4]; float amb[3]; - const short onlyselected= !ELEM3(type, RE_BAKE_LIGHT, RE_BAKE_ALL, RE_BAKE_SHADOW); + const short onlyselected= !ELEM4(type, RE_BAKE_LIGHT, RE_BAKE_ALL, RE_BAKE_SHADOW, RE_BAKE_AO); const short nolamps= ELEM3(type, RE_BAKE_NORMALS, RE_BAKE_TEXTURE, RE_BAKE_DISPLACEMENT); re->main= bmain; -- cgit v1.2.3 From 1ca2a6f24f5d229e3243314cfd13449eebb12e14 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 22 Jul 2011 07:25:52 +0000 Subject: Split up recalcData() function in transform_generics.c into smaller functions based on editor types This could be split up further in future if there's such a need, but this should already be sufficient. Most notably required since the NLA recalc stuff was taking quite a few lines within that block --- .../blender/editors/transform/transform_generics.c | 910 +++++++++++---------- 1 file changed, 467 insertions(+), 443 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 9b56437e985..b512123ebd5 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -323,524 +323,548 @@ static int fcu_test_selected(FCurve *fcu) return 0; } -/* called for updating while transform acts, once per redraw */ -void recalcData(TransInfo *t) +/* helper for recalcData() - for Action Editor transforms */ +static void recalcData_actedit(TransInfo *t) { - Base *base = t->scene->basact; - - if (t->spacetype==SPACE_NODE) { - flushTransNodes(t); - } - else if (t->spacetype==SPACE_SEQ) { - flushTransSeq(t); + Scene *scene= t->scene; + SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; + + bAnimContext ac= {NULL}; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + /* initialise relevant anim-context 'context' data from TransInfo data */ + /* NOTE: sync this with the code in ANIM_animdata_get_context() */ + ac.scene= t->scene; + ac.obact= OBACT; + ac.sa= t->sa; + ac.ar= t->ar; + ac.sl= (t->sa)? t->sa->spacedata.first : NULL; + ac.spacetype= (t->sa)? t->sa->spacetype : 0; + ac.regiontype= (t->ar)? t->ar->regiontype : 0; + + ANIM_animdata_context_getdata(&ac); + + /* perform flush */ + if (ac.datatype == ANIMCONT_GPENCIL) { + /* flush transform values back to actual coordinates */ + flushTransGPactionData(t); } - else if (t->spacetype == SPACE_ACTION) { - Scene *scene= t->scene; - SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; - - bAnimContext ac= {NULL}; - ListBase anim_data = {NULL, NULL}; - bAnimListElem *ale; - int filter; - - /* initialise relevant anim-context 'context' data from TransInfo data */ - /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - ac.scene= t->scene; - ac.obact= OBACT; - ac.sa= t->sa; - ac.ar= t->ar; - ac.sl= (t->sa)? t->sa->spacedata.first : NULL; - ac.spacetype= (t->sa)? t->sa->spacetype : 0; - ac.regiontype= (t->ar)? t->ar->regiontype : 0; - - ANIM_animdata_context_getdata(&ac); + else { + /* get animdata blocks visible in editor, assuming that these will be the ones where things changed */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - /* perform flush */ - if (ac.datatype == ANIMCONT_GPENCIL) { - /* flush transform values back to actual coordinates */ - flushTransGPactionData(t); - } - else { - /* get animdata blocks visible in editor, assuming that these will be the ones where things changed */ - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_ANIMDATA); - ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - - /* just tag these animdata-blocks to recalc, assuming that some data there changed - * BUT only do this if realtime updates are enabled - */ - if ((saction->flag & SACTION_NOREALTIMEUPDATES) == 0) { - for (ale= anim_data.first; ale; ale= ale->next) { - /* set refresh tags for objects using this animation */ - ANIM_list_elem_update(t->scene, ale); - } + /* just tag these animdata-blocks to recalc, assuming that some data there changed + * BUT only do this if realtime updates are enabled + */ + if ((saction->flag & SACTION_NOREALTIMEUPDATES) == 0) { + for (ale= anim_data.first; ale; ale= ale->next) { + /* set refresh tags for objects using this animation */ + ANIM_list_elem_update(t->scene, ale); } - - /* now free temp channels */ - BLI_freelistN(&anim_data); } + + /* now free temp channels */ + BLI_freelistN(&anim_data); } - else if (t->spacetype == SPACE_IPO) { - Scene *scene; - SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first; +} + +/* helper for recalcData() - for Graph Editor transforms */ +static void recalcData_graphedit(TransInfo *t) +{ + SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first; + Scene *scene; + + ListBase anim_data = {NULL, NULL}; + bAnimContext ac= {NULL}; + int filter; + + bAnimListElem *ale; + int dosort = 0; + + + /* initialise relevant anim-context 'context' data from TransInfo data */ + /* NOTE: sync this with the code in ANIM_animdata_get_context() */ + scene= ac.scene= t->scene; + ac.obact= OBACT; + ac.sa= t->sa; + ac.ar= t->ar; + ac.sl= (t->sa)? t->sa->spacedata.first : NULL; + ac.spacetype= (t->sa)? t->sa->spacetype : 0; + ac.regiontype= (t->ar)? t->ar->regiontype : 0; + + ANIM_animdata_context_getdata(&ac); + + /* do the flush first */ + flushTransGraphData(t); + + /* get curves to check if a re-sort is needed */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* now test if there is a need to re-sort */ + for (ale= anim_data.first; ale; ale= ale->next) { + FCurve *fcu= (FCurve *)ale->key_data; - ListBase anim_data = {NULL, NULL}; - bAnimContext ac= {NULL}; - int filter; + /* ignore unselected fcurves */ + if (!fcu_test_selected(fcu)) + continue; - bAnimListElem *ale; - int dosort = 0; + // fixme: only do this for selected verts... + ANIM_unit_mapping_apply_fcurve(ac.scene, ale->id, ale->key_data, ANIM_UNITCONV_ONLYSEL|ANIM_UNITCONV_SELVERTS|ANIM_UNITCONV_RESTORE); - /* initialise relevant anim-context 'context' data from TransInfo data */ - /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - scene= ac.scene= t->scene; - ac.obact= OBACT; - ac.sa= t->sa; - ac.ar= t->ar; - ac.sl= (t->sa)? t->sa->spacedata.first : NULL; - ac.spacetype= (t->sa)? t->sa->spacetype : 0; - ac.regiontype= (t->ar)? t->ar->regiontype : 0; + /* watch it: if the time is wrong: do not correct handles yet */ + if (test_time_fcurve(fcu)) + dosort++; + else + calchandles_fcurve(fcu); - ANIM_animdata_context_getdata(&ac); + /* set refresh tags for objects using this animation, + * BUT only if realtime updates are enabled + */ + if ((sipo->flag & SIPO_NOREALTIMEUPDATES) == 0) + ANIM_list_elem_update(t->scene, ale); + } + + /* do resort and other updates? */ + if (dosort) remake_graph_transdata(t, &anim_data); + + /* now free temp channels */ + BLI_freelistN(&anim_data); +} + +/* helper for recalcData() - for NLA Editor transforms */ +static void recalcData_nla(TransInfo *t) +{ + TransDataNla *tdn= (TransDataNla *)t->customData; + SpaceNla *snla= (SpaceNla *)t->sa->spacedata.first; + Scene *scene= t->scene; + double secf= FPS; + int i; + + /* for each strip we've got, perform some additional validation of the values that got set before + * using RNA to set the value (which does some special operations when setting these values to make + * sure that everything works ok) + */ + for (i = 0; i < t->total; i++, tdn++) { + NlaStrip *strip= tdn->strip; + PointerRNA strip_ptr; + short pExceeded, nExceeded, iter; + int delta_y1, delta_y2; - /* do the flush first */ - flushTransGraphData(t); + /* if this tdn has no handles, that means it is just a dummy that should be skipped */ + if (tdn->handle == 0) + continue; - /* get curves to check if a re-sort is needed */ - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); - ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + /* set refresh tags for objects using this animation, + * BUT only if realtime updates are enabled + */ + if ((snla->flag & SNLA_NOREALTIMEUPDATES) == 0) + ANIM_id_update(t->scene, tdn->id); - /* now test if there is a need to re-sort */ - for (ale= anim_data.first; ale; ale= ale->next) { - FCurve *fcu= (FCurve *)ale->key_data; + /* if cancelling transform, just write the values without validating, then move on */ + if (t->state == TRANS_CANCEL) { + /* clear the values by directly overwriting the originals, but also need to restore + * endpoints of neighboring transition-strips + */ - /* ignore unselected fcurves */ - if (!fcu_test_selected(fcu)) - continue; + /* start */ + strip->start= tdn->h1[0]; - // fixme: only do this for selected verts... - ANIM_unit_mapping_apply_fcurve(ac.scene, ale->id, ale->key_data, ANIM_UNITCONV_ONLYSEL|ANIM_UNITCONV_SELVERTS|ANIM_UNITCONV_RESTORE); + if ((strip->prev) && (strip->prev->type == NLASTRIP_TYPE_TRANSITION)) + strip->prev->end= tdn->h1[0]; + /* end */ + strip->end= tdn->h2[0]; - /* watch it: if the time is wrong: do not correct handles yet */ - if (test_time_fcurve(fcu)) - dosort++; - else - calchandles_fcurve(fcu); + if ((strip->next) && (strip->next->type == NLASTRIP_TYPE_TRANSITION)) + strip->next->start= tdn->h2[0]; - /* set refresh tags for objects using this animation, - * BUT only if realtime updates are enabled - */ - if ((sipo->flag & SIPO_NOREALTIMEUPDATES) == 0) - ANIM_list_elem_update(t->scene, ale); + /* flush transforms to child strips (since this should be a meta) */ + BKE_nlameta_flush_transforms(strip); + + /* restore to original track (if needed) */ + if (tdn->oldTrack != tdn->nlt) { + /* just append to end of list for now, since strips get sorted in special_aftertrans_update() */ + BLI_remlink(&tdn->nlt->strips, strip); + BLI_addtail(&tdn->oldTrack->strips, strip); + } + + continue; } - /* do resort and other updates? */ - if (dosort) remake_graph_transdata(t, &anim_data); - - /* now free temp channels */ - BLI_freelistN(&anim_data); - } - else if (t->spacetype == SPACE_NLA) { - TransDataNla *tdn= (TransDataNla *)t->customData; - SpaceNla *snla= (SpaceNla *)t->sa->spacedata.first; - Scene *scene= t->scene; - double secf= FPS; - int i; - - /* for each strip we've got, perform some additional validation of the values that got set before - * using RNA to set the value (which does some special operations when setting these values to make - * sure that everything works ok) + /* firstly, check if the proposed transform locations would overlap with any neighbouring strips + * (barring transitions) which are absolute barriers since they are not being moved + * + * this is done as a iterative procedure (done 5 times max for now) */ - for (i = 0; i < t->total; i++, tdn++) { - NlaStrip *strip= tdn->strip; - PointerRNA strip_ptr; - short pExceeded, nExceeded, iter; - int delta_y1, delta_y2; - - /* if this tdn has no handles, that means it is just a dummy that should be skipped */ - if (tdn->handle == 0) - continue; + for (iter=0; iter < 5; iter++) { + pExceeded= ((strip->prev) && (strip->prev->type != NLASTRIP_TYPE_TRANSITION) && (tdn->h1[0] < strip->prev->end)); + nExceeded= ((strip->next) && (strip->next->type != NLASTRIP_TYPE_TRANSITION) && (tdn->h2[0] > strip->next->start)); - /* set refresh tags for objects using this animation, - * BUT only if realtime updates are enabled - */ - if ((snla->flag & SNLA_NOREALTIMEUPDATES) == 0) - ANIM_id_update(t->scene, tdn->id); - - /* if cancelling transform, just write the values without validating, then move on */ - if (t->state == TRANS_CANCEL) { - /* clear the values by directly overwriting the originals, but also need to restore - * endpoints of neighboring transition-strips + if ((pExceeded && nExceeded) || (iter == 4) ) { + /* both endpoints exceeded (or iteration ping-pong'd meaning that we need a compromise) + * - simply crop strip to fit within the bounds of the strips bounding it + * - if there were no neighbours, clear the transforms (make it default to the strip's current values) */ - - /* start */ - strip->start= tdn->h1[0]; - - if ((strip->prev) && (strip->prev->type == NLASTRIP_TYPE_TRANSITION)) - strip->prev->end= tdn->h1[0]; - - /* end */ - strip->end= tdn->h2[0]; - - if ((strip->next) && (strip->next->type == NLASTRIP_TYPE_TRANSITION)) - strip->next->start= tdn->h2[0]; - - /* flush transforms to child strips (since this should be a meta) */ - BKE_nlameta_flush_transforms(strip); - - /* restore to original track (if needed) */ - if (tdn->oldTrack != tdn->nlt) { - /* just append to end of list for now, since strips get sorted in special_aftertrans_update() */ - BLI_remlink(&tdn->nlt->strips, strip); - BLI_addtail(&tdn->oldTrack->strips, strip); + if (strip->prev && strip->next) { + tdn->h1[0]= strip->prev->end; + tdn->h2[0]= strip->next->start; + } + else { + tdn->h1[0]= strip->start; + tdn->h2[0]= strip->end; } - - continue; } - - /* firstly, check if the proposed transform locations would overlap with any neighbouring strips - * (barring transitions) which are absolute barriers since they are not being moved - * - * this is done as a iterative procedure (done 5 times max for now) - */ - for (iter=0; iter < 5; iter++) { - pExceeded= ((strip->prev) && (strip->prev->type != NLASTRIP_TYPE_TRANSITION) && (tdn->h1[0] < strip->prev->end)); - nExceeded= ((strip->next) && (strip->next->type != NLASTRIP_TYPE_TRANSITION) && (tdn->h2[0] > strip->next->start)); + else if (nExceeded) { + /* move backwards */ + float offset= tdn->h2[0] - strip->next->start; - if ((pExceeded && nExceeded) || (iter == 4) ) { - /* both endpoints exceeded (or iteration ping-pong'd meaning that we need a compromise) - * - simply crop strip to fit within the bounds of the strips bounding it - * - if there were no neighbours, clear the transforms (make it default to the strip's current values) - */ - if (strip->prev && strip->next) { - tdn->h1[0]= strip->prev->end; - tdn->h2[0]= strip->next->start; - } - else { - tdn->h1[0]= strip->start; - tdn->h2[0]= strip->end; - } - } - else if (nExceeded) { - /* move backwards */ - float offset= tdn->h2[0] - strip->next->start; - - tdn->h1[0] -= offset; - tdn->h2[0] -= offset; - } - else if (pExceeded) { - /* more forwards */ - float offset= strip->prev->end - tdn->h1[0]; - - tdn->h1[0] += offset; - tdn->h2[0] += offset; - } - else /* all is fine and well */ - break; + tdn->h1[0] -= offset; + tdn->h2[0] -= offset; } - - /* handle auto-snapping */ - switch (snla->autosnap) { - case SACTSNAP_FRAME: /* snap to nearest frame/time */ - if (snla->flag & SNLA_DRAWTIME) { - tdn->h1[0]= (float)( floor((tdn->h1[0]/secf) + 0.5f) * secf ); - tdn->h2[0]= (float)( floor((tdn->h2[0]/secf) + 0.5f) * secf ); - } - else { - tdn->h1[0]= (float)( floor(tdn->h1[0]+0.5f) ); - tdn->h2[0]= (float)( floor(tdn->h2[0]+0.5f) ); - } - break; + else if (pExceeded) { + /* more forwards */ + float offset= strip->prev->end - tdn->h1[0]; - case SACTSNAP_MARKER: /* snap to nearest marker */ - tdn->h1[0]= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, tdn->h1[0]); - tdn->h2[0]= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, tdn->h2[0]); - break; + tdn->h1[0] += offset; + tdn->h2[0] += offset; } + else /* all is fine and well */ + break; + } + + /* handle auto-snapping */ + switch (snla->autosnap) { + case SACTSNAP_FRAME: /* snap to nearest frame/time */ + if (snla->flag & SNLA_DRAWTIME) { + tdn->h1[0]= (float)( floor((tdn->h1[0]/secf) + 0.5f) * secf ); + tdn->h2[0]= (float)( floor((tdn->h2[0]/secf) + 0.5f) * secf ); + } + else { + tdn->h1[0]= (float)( floor(tdn->h1[0]+0.5f) ); + tdn->h2[0]= (float)( floor(tdn->h2[0]+0.5f) ); + } + break; - /* use RNA to write the values... */ - // TODO: do we need to write in 2 passes to make sure that no truncation goes on? - RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &strip_ptr); - - RNA_float_set(&strip_ptr, "frame_start", tdn->h1[0]); - RNA_float_set(&strip_ptr, "frame_end", tdn->h2[0]); - - /* flush transforms to child strips (since this should be a meta) */ - BKE_nlameta_flush_transforms(strip); - + case SACTSNAP_MARKER: /* snap to nearest marker */ + tdn->h1[0]= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, tdn->h1[0]); + tdn->h2[0]= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, tdn->h2[0]); + break; + } + + /* use RNA to write the values... */ + // TODO: do we need to write in 2 passes to make sure that no truncation goes on? + RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &strip_ptr); + + RNA_float_set(&strip_ptr, "frame_start", tdn->h1[0]); + RNA_float_set(&strip_ptr, "frame_end", tdn->h2[0]); + + /* flush transforms to child strips (since this should be a meta) */ + BKE_nlameta_flush_transforms(strip); + + + /* now, check if we need to try and move track + * - we need to calculate both, as only one may have been altered by transform if only 1 handle moved + */ + delta_y1= ((int)tdn->h1[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); + delta_y2= ((int)tdn->h2[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); + + if (delta_y1 || delta_y2) { + NlaTrack *track; + int delta = (delta_y2) ? delta_y2 : delta_y1; + int n; - /* now, check if we need to try and move track - * - we need to calculate both, as only one may have been altered by transform if only 1 handle moved + /* move in the requested direction, checking at each layer if there's space for strip to pass through, + * stopping on the last track available or that we're able to fit in */ - delta_y1= ((int)tdn->h1[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); - delta_y2= ((int)tdn->h2[1] / NLACHANNEL_STEP(snla) - tdn->trackIndex); - - if (delta_y1 || delta_y2) { - NlaTrack *track; - int delta = (delta_y2) ? delta_y2 : delta_y1; - int n; - - /* move in the requested direction, checking at each layer if there's space for strip to pass through, - * stopping on the last track available or that we're able to fit in - */ - if (delta > 0) { - for (track=tdn->nlt->next, n=0; (track) && (n < delta); track=track->next, n++) { - /* check if space in this track for the strip */ - if (BKE_nlatrack_has_space(track, strip->start, strip->end)) { - /* move strip to this track */ - BLI_remlink(&tdn->nlt->strips, strip); - BKE_nlatrack_add_strip(track, strip); - - tdn->nlt= track; - tdn->trackIndex++; - } - else /* can't move any further */ - break; + if (delta > 0) { + for (track=tdn->nlt->next, n=0; (track) && (n < delta); track=track->next, n++) { + /* check if space in this track for the strip */ + if (BKE_nlatrack_has_space(track, strip->start, strip->end)) { + /* move strip to this track */ + BLI_remlink(&tdn->nlt->strips, strip); + BKE_nlatrack_add_strip(track, strip); + + tdn->nlt= track; + tdn->trackIndex++; } + else /* can't move any further */ + break; } - else { - /* make delta 'positive' before using it, since we now know to go backwards */ - delta= -delta; - - for (track=tdn->nlt->prev, n=0; (track) && (n < delta); track=track->prev, n++) { - /* check if space in this track for the strip */ - if (BKE_nlatrack_has_space(track, strip->start, strip->end)) { - /* move strip to this track */ - BLI_remlink(&tdn->nlt->strips, strip); - BKE_nlatrack_add_strip(track, strip); - - tdn->nlt= track; - tdn->trackIndex--; - } - else /* can't move any further */ - break; + } + else { + /* make delta 'positive' before using it, since we now know to go backwards */ + delta= -delta; + + for (track=tdn->nlt->prev, n=0; (track) && (n < delta); track=track->prev, n++) { + /* check if space in this track for the strip */ + if (BKE_nlatrack_has_space(track, strip->start, strip->end)) { + /* move strip to this track */ + BLI_remlink(&tdn->nlt->strips, strip); + BKE_nlatrack_add_strip(track, strip); + + tdn->nlt= track; + tdn->trackIndex--; } + else /* can't move any further */ + break; } } } } - else if (t->spacetype == SPACE_IMAGE) { - if (t->obedit && t->obedit->type == OB_MESH) { - SpaceImage *sima= t->sa->spacedata.first; +} + +/* helper for recalcData() - for 3d-view transforms */ +static void recalcData_view3d(TransInfo *t) +{ + Base *base = t->scene->basact; + + if (t->obedit) { + if ELEM(t->obedit->type, OB_CURVE, OB_SURF) { + Curve *cu= t->obedit->data; + ListBase *nurbs= ED_curve_editnurbs(cu); + Nurb *nu= nurbs->first; - flushTransUVs(t); - if(sima->flag & SI_LIVE_UNWRAP) - ED_uvedit_live_unwrap_re_solve(); + if(t->state != TRANS_CANCEL) { + clipMirrorModifier(t, t->obedit); + applyProject(t); + } - DAG_id_tag_update(t->obedit->data, 0); - } - } - else if (t->spacetype == SPACE_VIEW3D) { - - if (t->obedit) { - if ELEM(t->obedit->type, OB_CURVE, OB_SURF) { - Curve *cu= t->obedit->data; - ListBase *nurbs= ED_curve_editnurbs(cu); - Nurb *nu= nurbs->first; - - if(t->state != TRANS_CANCEL) { - clipMirrorModifier(t, t->obedit); - applyProject(t); + DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ + + if (t->state == TRANS_CANCEL) { + while(nu) { + calchandlesNurb(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */ + nu= nu->next; } - - DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ - - if (t->state == TRANS_CANCEL) { - while(nu) { - calchandlesNurb(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */ - nu= nu->next; - } - } else { - /* Normal updating */ - while(nu) { - test2DNurb(nu); - calchandlesNurb(nu); - nu= nu->next; - } + } + else { + /* Normal updating */ + while(nu) { + test2DNurb(nu); + calchandlesNurb(nu); + nu= nu->next; } } - else if(t->obedit->type==OB_LATTICE) { - Lattice *la= t->obedit->data; - - if(t->state != TRANS_CANCEL) { - applyProject(t); - } - - DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ - - if(la->editlatt->latt->flag & LT_OUTSIDE) outside_lattice(la->editlatt->latt); + } + else if(t->obedit->type==OB_LATTICE) { + Lattice *la= t->obedit->data; + + if(t->state != TRANS_CANCEL) { + applyProject(t); } - else if (t->obedit->type == OB_MESH) { - EditMesh *em = ((Mesh*)t->obedit->data)->edit_mesh; - /* mirror modifier clipping? */ - if(t->state != TRANS_CANCEL) { - /* apply clipping after so we never project past the clip plane [#25423] */ - applyProject(t); - clipMirrorModifier(t, t->obedit); - } - if((t->options & CTX_NO_MIRROR) == 0 && (t->flag & T_MIRROR)) - editmesh_apply_to_mirror(t); - - DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ + + DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ + + if(la->editlatt->latt->flag & LT_OUTSIDE) outside_lattice(la->editlatt->latt); + } + else if (t->obedit->type == OB_MESH) { + EditMesh *em = ((Mesh*)t->obedit->data)->edit_mesh; + /* mirror modifier clipping? */ + if(t->state != TRANS_CANCEL) { + /* apply clipping after so we never project past the clip plane [#25423] */ + applyProject(t); + clipMirrorModifier(t, t->obedit); + } + if((t->options & CTX_NO_MIRROR) == 0 && (t->flag & T_MIRROR)) + editmesh_apply_to_mirror(t); - recalc_editnormals(em); + DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ + + recalc_editnormals(em); + } + else if(t->obedit->type==OB_ARMATURE) { /* no recalc flag, does pose */ + bArmature *arm= t->obedit->data; + ListBase *edbo = arm->edbo; + EditBone *ebo; + TransData *td = t->data; + int i; + + if(t->state != TRANS_CANCEL) { + applyProject(t); } - else if(t->obedit->type==OB_ARMATURE) { /* no recalc flag, does pose */ - bArmature *arm= t->obedit->data; - ListBase *edbo = arm->edbo; - EditBone *ebo; - TransData *td = t->data; - int i; + + /* Ensure all bones are correctly adjusted */ + for (ebo = edbo->first; ebo; ebo = ebo->next){ - if(t->state != TRANS_CANCEL) { - applyProject(t); - } - - /* Ensure all bones are correctly adjusted */ - for (ebo = edbo->first; ebo; ebo = ebo->next){ - - if ((ebo->flag & BONE_CONNECTED) && ebo->parent){ - /* If this bone has a parent tip that has been moved */ - if (ebo->parent->flag & BONE_TIPSEL){ - VECCOPY (ebo->head, ebo->parent->tail); - if(t->mode==TFM_BONE_ENVELOPE) ebo->rad_head= ebo->parent->rad_tail; - } - /* If this bone has a parent tip that has NOT been moved */ - else{ - VECCOPY (ebo->parent->tail, ebo->head); - if(t->mode==TFM_BONE_ENVELOPE) ebo->parent->rad_tail= ebo->rad_head; - } - } - - /* on extrude bones, oldlength==0.0f, so we scale radius of points */ - ebo->length= len_v3v3(ebo->head, ebo->tail); - if(ebo->oldlength==0.0f) { - ebo->rad_head= 0.25f*ebo->length; - ebo->rad_tail= 0.10f*ebo->length; - ebo->dist= 0.25f*ebo->length; - if(ebo->parent) { - if(ebo->rad_head > ebo->parent->rad_tail) - ebo->rad_head= ebo->parent->rad_tail; - } + if ((ebo->flag & BONE_CONNECTED) && ebo->parent){ + /* If this bone has a parent tip that has been moved */ + if (ebo->parent->flag & BONE_TIPSEL){ + VECCOPY (ebo->head, ebo->parent->tail); + if(t->mode==TFM_BONE_ENVELOPE) ebo->rad_head= ebo->parent->rad_tail; } - else if(t->mode!=TFM_BONE_ENVELOPE) { - /* if bones change length, lets do that for the deform distance as well */ - ebo->dist*= ebo->length/ebo->oldlength; - ebo->rad_head*= ebo->length/ebo->oldlength; - ebo->rad_tail*= ebo->length/ebo->oldlength; - ebo->oldlength= ebo->length; + /* If this bone has a parent tip that has NOT been moved */ + else{ + VECCOPY (ebo->parent->tail, ebo->head); + if(t->mode==TFM_BONE_ENVELOPE) ebo->parent->rad_tail= ebo->rad_head; } } - - if (t->mode != TFM_BONE_ROLL) + /* on extrude bones, oldlength==0.0f, so we scale radius of points */ + ebo->length= len_v3v3(ebo->head, ebo->tail); + if(ebo->oldlength==0.0f) { + ebo->rad_head= 0.25f*ebo->length; + ebo->rad_tail= 0.10f*ebo->length; + ebo->dist= 0.25f*ebo->length; + if(ebo->parent) { + if(ebo->rad_head > ebo->parent->rad_tail) + ebo->rad_head= ebo->parent->rad_tail; + } + } + else if(t->mode!=TFM_BONE_ENVELOPE) { + /* if bones change length, lets do that for the deform distance as well */ + ebo->dist*= ebo->length/ebo->oldlength; + ebo->rad_head*= ebo->length/ebo->oldlength; + ebo->rad_tail*= ebo->length/ebo->oldlength; + ebo->oldlength= ebo->length; + } + } + + + if (t->mode != TFM_BONE_ROLL) + { + /* fix roll */ + for(i = 0; i < t->total; i++, td++) { - /* fix roll */ - for(i = 0; i < t->total; i++, td++) + if (td->extra) { - if (td->extra) + float vec[3], up_axis[3]; + float qrot[4]; + + ebo = td->extra; + VECCOPY(up_axis, td->axismtx[2]); + + if (t->mode != TFM_ROTATION) { - float vec[3], up_axis[3]; - float qrot[4]; - - ebo = td->extra; - VECCOPY(up_axis, td->axismtx[2]); - - if (t->mode != TFM_ROTATION) - { - sub_v3_v3v3(vec, ebo->tail, ebo->head); - normalize_v3(vec); - rotation_between_vecs_to_quat(qrot, td->axismtx[1], vec); - mul_qt_v3(qrot, up_axis); - } - else - { - mul_m3_v3(t->mat, up_axis); - } - - ebo->roll = ED_rollBoneToVector(ebo, up_axis, FALSE); + sub_v3_v3v3(vec, ebo->tail, ebo->head); + normalize_v3(vec); + rotation_between_vecs_to_quat(qrot, td->axismtx[1], vec); + mul_qt_v3(qrot, up_axis); + } + else + { + mul_m3_v3(t->mat, up_axis); } + + ebo->roll = ED_rollBoneToVector(ebo, up_axis, FALSE); } } - - if(arm->flag & ARM_MIRROR_EDIT) - transform_armature_mirror_update(t->obedit); - } - else - { - if(t->state != TRANS_CANCEL) { - applyProject(t); - } - DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ + + if(arm->flag & ARM_MIRROR_EDIT) + transform_armature_mirror_update(t->obedit); + + } + else + { + if(t->state != TRANS_CANCEL) { + applyProject(t); } + DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */ } - else if( (t->flag & T_POSE) && t->poseobj) { - Object *ob= t->poseobj; - bArmature *arm= ob->data; + } + else if( (t->flag & T_POSE) && t->poseobj) { + Object *ob= t->poseobj; + bArmature *arm= ob->data; + + /* if animtimer is running, and the object already has animation data, + * check if the auto-record feature means that we should record 'samples' + * (i.e. uneditable animation values) + * + * context is needed for keying set poll() functions. + */ + // TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes? + if ((t->animtimer) && (t->context) && IS_AUTOKEY_ON(t->scene)) { + int targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet! + + animrecord_check_state(t->scene, &ob->id, t->animtimer); + autokeyframe_pose_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); + } + + /* old optimize trick... this enforces to bypass the depgraph */ + if (!(arm->flag & ARM_DELAYDEFORM)) { + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */ + } + else + where_is_pose(t->scene, ob); + } + else if(base && (base->object->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, base->object)) { + if(t->state != TRANS_CANCEL) { + applyProject(t); + } + flushTransParticles(t); + } + else { + int i; + + if(t->state != TRANS_CANCEL) { + applyProject(t); + } + + for (i = 0; i < t->total; i++) { + TransData *td = t->data + i; + Object *ob = td->ob; + + if (td->flag & TD_NOACTION) + break; + + if (td->flag & TD_SKIP) + continue; /* if animtimer is running, and the object already has animation data, * check if the auto-record feature means that we should record 'samples' * (i.e. uneditable animation values) - * - * context is needed for keying set poll() functions. */ // TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes? - if ((t->animtimer) && (t->context) && IS_AUTOKEY_ON(t->scene)) { - int targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet! - + if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) { animrecord_check_state(t->scene, &ob->id, t->animtimer); - autokeyframe_pose_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); + autokeyframe_ob_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode); } - /* old optimize trick... this enforces to bypass the depgraph */ - if (!(arm->flag & ARM_DELAYDEFORM)) { - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */ - } - else - where_is_pose(t->scene, ob); - } - else if(base && (base->object->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, base->object)) { - if(t->state != TRANS_CANCEL) { - applyProject(t); - } - flushTransParticles(t); + /* sets recalc flags fully, instead of flushing existing ones + * otherwise proxies don't function correctly + */ + DAG_id_tag_update(&ob->id, OB_RECALC_OB); } - else { - int i; - - if(t->state != TRANS_CANCEL) { - applyProject(t); - } + } +} - for (i = 0; i < t->total; i++) { - TransData *td = t->data + i; - Object *ob = td->ob; - - if (td->flag & TD_NOACTION) - break; - - if (td->flag & TD_SKIP) - continue; - - /* if animtimer is running, and the object already has animation data, - * check if the auto-record feature means that we should record 'samples' - * (i.e. uneditable animation values) - */ - // TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes? - if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) { - animrecord_check_state(t->scene, &ob->id, t->animtimer); - autokeyframe_ob_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode); - } - - /* sets recalc flags fully, instead of flushing existing ones - * otherwise proxies don't function correctly - */ - DAG_id_tag_update(&ob->id, OB_RECALC_OB); - } +/* called for updating while transform acts, once per redraw */ +void recalcData(TransInfo *t) +{ + if (t->spacetype==SPACE_NODE) { + flushTransNodes(t); + } + else if (t->spacetype==SPACE_SEQ) { + flushTransSeq(t); + } + else if (t->spacetype == SPACE_ACTION) { + recalcData_actedit(t); + } + else if (t->spacetype == SPACE_IPO) { + recalcData_graphedit(t); + } + else if (t->spacetype == SPACE_NLA) { + recalcData_nla(t); + } + else if (t->spacetype == SPACE_IMAGE) { + if (t->obedit && t->obedit->type == OB_MESH) { + SpaceImage *sima= t->sa->spacedata.first; + + flushTransUVs(t); + if(sima->flag & SI_LIVE_UNWRAP) + ED_uvedit_live_unwrap_re_solve(); + + DAG_id_tag_update(t->obedit->data, 0); } } + else if (t->spacetype == SPACE_VIEW3D) { + recalcData_view3d(t); + } } void drawLine(TransInfo *t, float *center, float *dir, char axis, short options) -- cgit v1.2.3 From 0adad30e3f5b914d0a101ba6efb07f3fd2d8669e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 22 Jul 2011 11:20:14 +0000 Subject: Bugfix [#27984] CTRL+T doesn't work in Video Sequencer properly Time-scale drawing wasn't respecting the time unit setting. While working on this, I tried to tweak the grid drawing to a more common setting. It's hardcoded to show lines at every 25 px = once every 25 frames, which is only really fine when FPS=25. Anyways, this works fine enough for the sequencer for now in general usage. --- source/blender/editors/space_sequencer/sequencer_draw.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 1ed262c3e23..42d52536870 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -1024,8 +1024,8 @@ void draw_timeline_seq(const bContext *C, ARegion *ar) SpaceSeq *sseq= CTX_wm_space_seq(C); View2D *v2d= &ar->v2d; View2DScrollers *scrollers; + short unit=0, flag=0; float col[3]; - int flag=0; /* clear and setup matrix */ UI_GetThemeColor3fv(TH_BACK, col); @@ -1047,9 +1047,10 @@ void draw_timeline_seq(const bContext *C, ARegion *ar) /* draw backdrop */ draw_seq_backdrop(v2d); - /* regular grid-pattern over the rest of the view (i.e. frame grid lines) */ + /* regular grid-pattern over the rest of the view (i.e. 25-frame grid lines) */ + // NOTE: the gridlines are currently spaced every 25 frames, which is only fine for 25 fps, but maybe not for 30... UI_view2d_constant_grid_draw(v2d); - + seq_draw_sfra_efra(scene, v2d); /* sequence strips (if there is data available to be drawn) */ @@ -1092,7 +1093,8 @@ void draw_timeline_seq(const bContext *C, ARegion *ar) UI_view2d_view_restore(C); /* scrollers */ - scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_UNIT_SECONDSSEQ, V2D_GRID_CLAMP, V2D_UNIT_VALUES, V2D_GRID_CLAMP); + unit= (sseq->flag & SEQ_DRAWFRAMES)? V2D_UNIT_FRAMES : V2D_UNIT_SECONDSSEQ; + scrollers= UI_view2d_scrollers_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_UNIT_VALUES, V2D_GRID_CLAMP); UI_view2d_scrollers_draw(C, v2d, scrollers); UI_view2d_scrollers_free(scrollers); } -- cgit v1.2.3 From 1e19f1cde1ca58c9149faa8ab39539a3c200a01c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 22 Jul 2011 11:53:20 +0000 Subject: Bugfix [#27959] Error on Paste X-Fliped pose Paste pose no longer just does a blind "replace all properties" on bones that it pastes on. Instead: * when properties exist on the target already - only change the properties in common * when properties don't already exist - copy all properties --- source/blender/editors/armature/editarmature.c | 2 +- source/blender/editors/armature/poseobject.c | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 20352206121..fa8c534a8aa 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -2995,7 +2995,7 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone /* step 2a: parent children of in-between bones to newbone */ for (chain= chains->first; chain; chain= chain->next) { - /* ick: we need to check if parent of each bone in chain is one of the bones in the */ + /* ick: we need to check if parent of each bone in chain is one of the bones in the chain being merged */ short found= 0; for (ebo= chain->data; ebo; ebo= ebo->parent) { diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 01c9839220e..20165a67879 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -1107,21 +1107,19 @@ static int pose_paste_exec (bContext *C, wmOperator *op) } } - /* ID properties - * - only free the existing properties if the channel we're copying from has them - * NOTE: this means that if the pose depends on some pchan property, the pose may not be ok, - * but this is better than loosing all the setting you've painstakingly added... - */ + /* ID properties */ if (chan->prop) { - /* free the old properties since we want to replace them now */ if (pchan->prop) { - IDP_FreeProperty(pchan->prop); - MEM_freeN(pchan->prop); - pchan->prop= NULL; + /* if we have existing properties on a bone, just copy over the values of + * matching properties (i.e. ones which will have some impact) on to the + * target instead of just blinding replacing all [ + */ + IDP_SyncGroupValues(pchan->prop, chan->prop); + } + else { + /* no existing properties, so assume that we want copies too? */ + pchan->prop= IDP_CopyProperty(chan->prop); } - - /* now copy over the new copy of the properties */ - pchan->prop= IDP_CopyProperty(chan->prop); } /* keyframing tagging */ -- cgit v1.2.3 From 75029e111987ce87058dc1430445663065cdc80c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 22 Jul 2011 13:52:31 +0000 Subject: Bugfix [#27990] Merge Bones freezes Blender Recoded side-chain reparenting step to fix (as far as I've been able to tell) infinite looping problems which were a bit intermittent here using the test file. The fix here involves some tighter checks to prevent corrupting the parenting of bones in the run of bones being merged but also of any ancestors of those. --- source/blender/editors/armature/editarmature.c | 43 ++++++++++++++------------ 1 file changed, 23 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index fa8c534a8aa..00f74495a2f 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -2993,28 +2993,31 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone /* TODO, copy more things to the new bone */ newbone->flag= start->flag & (BONE_HINGE|BONE_NO_DEFORM|BONE_NO_SCALE|BONE_NO_CYCLICOFFSET|BONE_NO_LOCAL_LOCATION|BONE_DONE); - /* step 2a: parent children of in-between bones to newbone */ - for (chain= chains->first; chain; chain= chain->next) { - /* ick: we need to check if parent of each bone in chain is one of the bones in the chain being merged */ - short found= 0; - for (ebo= chain->data; ebo; ebo= ebo->parent) { + /* step 2a: reparent any side chains which may be parented to any bone in the chain of bones to merge + * - potentially several tips for side chains leading to some tree exist... + */ + for (chain = chains->first; chain; chain = chain->next) { + /* traverse down chain until we hit the bottom or if we run into the tip of the chain of bones we're + * merging (need to stop in this case to avoid corrupting this chain too!) + */ + for (ebone = chain->data; (ebone) && (ebone != end); ebone = ebone->parent) { + short found = 0; - /* try to find which bone from the list to be removed, is the parent */ - for (ebone= end; ebone; ebone= ebone->parent) { - if (ebo->parent == ebone) { - found= 1; + /* check if this bone is parented to one in the merging chain + * ! WATCHIT: must only go check until end of checking chain + */ + for (ebo = end; (ebo) && (ebo != start->parent); ebo = ebo->parent) { + /* side-chain found? --> remap parent to new bone, then we're done with this chain :) */ + if (ebone->parent == ebo) { + ebone->parent = newbone; + found = 1; break; } } - /* adjust this bone's parent to newbone then */ - if (found) { - ebo->parent= newbone; + /* carry on to the next tip now */ + if (found) break; - } - } - if (found) { - break; } } @@ -3050,12 +3053,12 @@ static int armature_merge_exec (bContext *C, wmOperator *op) LinkData *chain, *nchain; EditBone *ebo; + armature_tag_select_mirrored(arm); + /* get chains (ends on chains) */ chains_find_tips(arm->edbo, &chains); if (chains.first == NULL) return OPERATOR_CANCELLED; - - armature_tag_select_mirrored(arm); - + /* each 'chain' is the last bone in the chain (with no children) */ for (chain= chains.first; chain; chain= nchain) { EditBone *bstart= NULL, *bend= NULL; @@ -3100,7 +3103,7 @@ static int armature_merge_exec (bContext *C, wmOperator *op) } armature_tag_unselect(arm); - + BLI_freelistN(&chains); } -- cgit v1.2.3 From ea90544d65a5b2549d5e0b4761de3bf0f2631688 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 22 Jul 2011 15:28:50 +0000 Subject: Need some fun once a while: On dragging a non-connected node on a noodle, it will insert it. Functionality tweaks are possible, but it already feels non-intrusive. Rules: - Insertion only when a single noodle is intersecting with node. - Default connects first matching socket type. - If no socket match, it connects the first. --- source/blender/editors/include/ED_node.h | 3 + source/blender/editors/space_node/drawnode.c | 15 ++- source/blender/editors/space_node/node_edit.c | 126 ++++++++++++++++++++- .../editors/transform/transform_conversions.c | 14 ++- source/blender/makesdna/DNA_node_types.h | 4 + 5 files changed, 156 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index 829ad3217a9..dfa457c22de 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -39,6 +39,7 @@ struct Tex; struct bContext; struct bNode; struct ID; +struct ScrArea; /* drawnode.c */ void ED_init_node_butfuncs(void); @@ -51,6 +52,8 @@ void ED_node_generic_update(struct Main *bmain, struct bNodeTree *ntree, struct void ED_node_shader_default(struct Material *ma); void ED_node_composit_default(struct Scene *sce); void ED_node_texture_default(struct Tex *tex); +void ED_node_link_intersect_test(struct ScrArea *sa, int test); +void ED_node_link_insert(struct ScrArea *sa); /* node ops.c */ void ED_operatormacros_node(void); diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 1bf2c3d89bd..50e657bbb61 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1869,10 +1869,17 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) else { /* check cyclic */ if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) { - if(link->fromnode->flag & SELECT) - th_col1= TH_EDGE_SELECT; - if(link->tonode->flag & SELECT) - th_col2= TH_EDGE_SELECT; + /* special indicated link, on drop-node */ + if(link->flag & NODE_LINKFLAG_HILITE) { + th_col1= th_col2= TH_ACTIVE; + } + else { + /* regular link */ + if(link->fromnode->flag & SELECT) + th_col1= TH_EDGE_SELECT; + if(link->tonode->flag & SELECT) + th_col2= TH_EDGE_SELECT; + } do_shaded= 1; do_triple= 1; } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index abc7b273ec9..b5648b67d86 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2492,6 +2492,127 @@ void NODE_OT_links_cut(wmOperatorType *ot) RNA_def_int(ot->srna, "cursor", BC_KNIFECURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX); } +/* ********************* automatic node insert on dragging ******************* */ + +static bNodeSocket *socket_best_match(ListBase *sockets, int type) +{ + bNodeSocket *sock; + + for(sock= sockets->first; sock; sock= sock->next) + if(type == sock->type) + return sock; + + return sockets->first; +} + +/* prevent duplicate testing code below */ +static SpaceNode *ed_node_link_conditions(ScrArea *sa, bNode **select) +{ + SpaceNode *snode= sa?sa->spacedata.first:NULL; + bNode *node; + bNodeLink *link; + + /* no unlucky accidents */ + if(sa==NULL || sa->spacetype!=SPACE_NODE) return NULL; + + *select= NULL; + + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & SELECT) { + if(*select) + break; + else + *select= node; + } + } + /* only one selected */ + if(node || *select==NULL) return NULL; + + /* correct node */ + if((*select)->inputs.first==NULL || (*select)->outputs.first==NULL) return NULL; + + /* test node for links */ + for(link= snode->edittree->links.first; link; link=link->next) { + if(link->tonode == *select || link->fromnode == *select) + return NULL; + } + + return snode; +} + +/* assumes link with NODE_LINKFLAG_HILITE set */ +void ED_node_link_insert(ScrArea *sa) +{ + bNode *node, *select; + SpaceNode *snode= ed_node_link_conditions(sa, &select); + bNodeLink *link; + bNodeSocket *sockto; + + if(snode==NULL) return; + + /* get the link */ + for(link= snode->edittree->links.first; link; link=link->next) + if(link->flag & NODE_LINKFLAG_HILITE) + break; + + if(link) { + node= link->tonode; + sockto= link->tosock; + + link->tonode= select; + link->tosock= socket_best_match(&select->inputs, link->fromsock->type); + link->flag &= ~NODE_LINKFLAG_HILITE; + + nodeAddLink(snode->edittree, select, socket_best_match(&select->outputs, sockto->type), node, sockto); + ntreeSolveOrder(snode->edittree); /* needed for pointers */ + snode_tag_changed(snode, select); + ED_node_changed_update(snode->id, select); + } +} + + +/* test == 0, clear all intersect flags */ +void ED_node_link_intersect_test(ScrArea *sa, int test) +{ + bNode *select; + SpaceNode *snode= ed_node_link_conditions(sa, &select); + bNodeLink *link, *selink=NULL; + float mcoords[4][2]; + + if(snode==NULL) return; + + /* clear flags */ + for(link= snode->edittree->links.first; link; link=link->next) + link->flag &= ~NODE_LINKFLAG_HILITE; + + if(test==0) return; + + /* okay, there's 1 node, without links, now intersect */ + mcoords[0][0]= select->totr.xmin; + mcoords[0][1]= select->totr.ymin; + mcoords[1][0]= select->totr.xmax; + mcoords[1][1]= select->totr.ymin; + mcoords[2][0]= select->totr.xmax; + mcoords[2][1]= select->totr.ymax; + mcoords[3][0]= select->totr.xmin; + mcoords[3][1]= select->totr.ymax; + + /* we only tag a single link for intersect now */ + /* idea; use header dist when more? */ + for(link= snode->edittree->links.first; link; link=link->next) { + + if(cut_links_intersect(link, mcoords, 4)) { + if(selink) + break; + selink= link; + } + } + + if(link==NULL && selink) + selink->flag |= NODE_LINKFLAG_HILITE; +} + + /* ******************************** */ // XXX some code needing updating to operators... @@ -2914,7 +3035,8 @@ void NODE_OT_delete(wmOperatorType *ot) /* note: in cmp_util.c is similar code, for node_compo_pass_on() */ /* used for disabling node (similar code in node_draw.c for disable line) */ -static void node_delete_reconnect(bNodeTree* tree, bNode* node) { +static void node_delete_reconnect(bNodeTree* tree, bNode* node) +{ bNodeLink *link, *next; bNodeSocket *valsocket= NULL, *colsocket= NULL, *vecsocket= NULL; bNodeSocket *deliveringvalsocket= NULL, *deliveringcolsocket= NULL, *deliveringvecsocket= NULL; @@ -3142,3 +3264,5 @@ void NODE_OT_add_file(wmOperatorType *ot) RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Datablock name to assign."); } + + diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 16bfc75c979..0a5e290643a 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -87,6 +87,7 @@ #include "ED_object.h" #include "ED_markers.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_types.h" #include "ED_uvedit.h" #include "ED_curve.h" /* for ED_curve_editnurbs */ @@ -2182,6 +2183,12 @@ void flushTransNodes(TransInfo *t) td->loc2d[0]= td->loc[0]; td->loc2d[1]= td->loc[1]; } + + /* handle intersection with noodles */ + if(t->total==1) { + ED_node_link_intersect_test(t->sa, 1); + } + } /* *** SEQUENCE EDITOR *** */ @@ -4756,7 +4763,12 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } else if (t->spacetype == SPACE_NODE) { - /* pass */ + if(cancelled == 0) + ED_node_link_insert(t->sa); + + /* clear link line */ + ED_node_link_intersect_test(t->sa, 0); + } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 03387c3a63a..efaf30b02f6 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -179,6 +179,10 @@ typedef struct bNodeLink { } bNodeLink; + +/* link->flag */ +#define NODE_LINKFLAG_HILITE 1 + /* the basis for a Node tree, all links and nodes reside internal here */ /* only re-usable node trees are in the library though, materials and textures allocate own tree struct */ typedef struct bNodeTree { -- cgit v1.2.3 From eed7702c9932653c68b72e291e30cbca3a741c16 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 22 Jul 2011 16:02:56 +0000 Subject: Small fix in drop-node-on-noodle: intersect code only did 3 edges of node. --- source/blender/editors/space_node/node_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index b5648b67d86..8cb7528c4d7 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2577,7 +2577,7 @@ void ED_node_link_intersect_test(ScrArea *sa, int test) bNode *select; SpaceNode *snode= ed_node_link_conditions(sa, &select); bNodeLink *link, *selink=NULL; - float mcoords[4][2]; + float mcoords[5][2]; if(snode==NULL) return; @@ -2601,7 +2601,7 @@ void ED_node_link_intersect_test(ScrArea *sa, int test) /* idea; use header dist when more? */ for(link= snode->edittree->links.first; link; link=link->next) { - if(cut_links_intersect(link, mcoords, 4)) { + if(cut_links_intersect(link, mcoords, 5)) { /* 5 - silly intersect code */ if(selink) break; selink= link; -- cgit v1.2.3 From ffc490cbf1d93c7e0a9b97953f6f52e69b9bc8ec Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 22 Jul 2011 16:39:06 +0000 Subject: Two fixes in drop-node-on-noodle: - Intersection code was using undefined vector caused wrong lines to be picked - Code now also copes with hidden sockets. If all fails, is just unhides a good socket. --- source/blender/editors/space_node/node_edit.c | 30 ++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 8cb7528c4d7..4230a43d2ec 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2494,13 +2494,33 @@ void NODE_OT_links_cut(wmOperatorType *ot) /* ********************* automatic node insert on dragging ******************* */ +/* assumes sockets in list */ static bNodeSocket *socket_best_match(ListBase *sockets, int type) { bNodeSocket *sock; + /* first, match type */ for(sock= sockets->first; sock; sock= sock->next) - if(type == sock->type) + if(!(sock->flag & SOCK_HIDDEN)) + if(type == sock->type) + return sock; + + /* then just use first unhidden socket */ + for(sock= sockets->first; sock; sock= sock->next) + if(!(sock->flag & SOCK_HIDDEN)) + return sock; + + /* OK, let's unhide proper one */ + for(sock= sockets->first; sock; sock= sock->next) { + if(type == sock->type) { + sock->flag &= ~SOCK_HIDDEN; return sock; + } + } + + /* just the first */ + sock= sockets->first; + sock->flag &= ~SOCK_HIDDEN; return sockets->first; } @@ -2577,7 +2597,7 @@ void ED_node_link_intersect_test(ScrArea *sa, int test) bNode *select; SpaceNode *snode= ed_node_link_conditions(sa, &select); bNodeLink *link, *selink=NULL; - float mcoords[5][2]; + float mcoords[6][2]; if(snode==NULL) return; @@ -2596,12 +2616,16 @@ void ED_node_link_intersect_test(ScrArea *sa, int test) mcoords[2][1]= select->totr.ymax; mcoords[3][0]= select->totr.xmin; mcoords[3][1]= select->totr.ymax; + mcoords[4][0]= select->totr.xmin; + mcoords[4][1]= select->totr.ymin; + mcoords[5][0]= select->totr.xmax; + mcoords[5][1]= select->totr.ymax; /* we only tag a single link for intersect now */ /* idea; use header dist when more? */ for(link= snode->edittree->links.first; link; link=link->next) { - if(cut_links_intersect(link, mcoords, 5)) { /* 5 - silly intersect code */ + if(cut_links_intersect(link, mcoords, 5)) { /* intersect code wants edges */ if(selink) break; selink= link; -- cgit v1.2.3 From 742225d9b4c3888c1cfd155b575420abf0cf7869 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sat, 23 Jul 2011 18:03:01 +0000 Subject: bugfix: [#28026] Copy Game Property broken not exactly a bug, but the option to copy individual properties was not working from the SPACE menu. I believe this was happening because we are using dynamic enums. This commit makes the "merge" option to be the default one. So if you call it from the SPACE menu it will be the one used. --- source/blender/editors/object/object_edit.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 29a740affc5..395705dc029 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -2162,16 +2162,20 @@ static int game_property_copy_exec(bContext *C, wmOperator *op) } CTX_DATA_END; } } - else if (ELEM(type, COPY_PROPERTIES_REPLACE, COPY_PROPERTIES_MERGE)) { + + else { CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { if (ob != ob_iter) { if (ob->data != ob_iter->data){ - if (type == 2) {/* merge */ + if (type == COPY_PROPERTIES_REPLACE) + copy_properties( &ob_iter->prop, &ob->prop ); + + /* merge - the default when calling with no argument */ + else { for(prop = ob->prop.first; prop; prop= prop->next ) { set_ob_property(ob_iter, prop); } - } else /* replace */ - copy_properties( &ob_iter->prop, &ob->prop ); + } } } } -- cgit v1.2.3 From c22f26d2032b7116477e6a378407a10b6d7e3276 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 23 Jul 2011 20:49:26 +0000 Subject: Material Hardness Animation Import Complete. --- source/blender/collada/AnimationImporter.cpp | 65 ++++++++++++---------------- source/blender/collada/DocumentImporter.cpp | 16 ++++++- source/blender/collada/DocumentImporter.h | 5 +++ 3 files changed, 46 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index e6c35b3ffb7..eaf6835420e 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -906,32 +906,29 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - if ( animType->material != 0){ - Material *ma = give_current_material(ob, 1); - if (!ma->adt || !ma->adt->action) act = verify_adt_action((ID*)&ma->id, 1); - else act = ma->adt->action; - - ListBase *AnimCurves = &(act->curves); - - const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); - for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { - const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); - for (unsigned int j = 0; j < matBinds.getCount(); j++) { - const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[j].getReferencedMaterial()]; - const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) FW_object_map[mat->getInstantiatedEffect()]; - COLLADAFW::CommonEffectPointerArray commonEffects = ef->getCommonEffects(); - for (unsigned int k = 0; k < commonEffects.getCount(); k++) { - COLLADAFW::EffectCommon *efc = commonEffects[k]; - if((animType->material & MATERIAL_SHININESS) != 0){ - const COLLADAFW::FloatOrParam *shin = &(efc->getShininess()); - const COLLADAFW::UniqueId& listid = shin->getAnimationList(); - Assign_float_animations( listid, AnimCurves , "specular_hardness" ); - } - } - } - } - } + if ( animType->material != 0){ + Material *ma = give_current_material(ob, 1); + if (!ma->adt || !ma->adt->action) act = verify_adt_action((ID*)&ma->id, 1); + else act = ma->adt->action; + + ListBase *AnimCurves = &(act->curves); + const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); + for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { + const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); + for (unsigned int j = 0; j < matBinds.getCount(); j++) { + const COLLADAFW::UniqueId & matuid = matBinds[j].getReferencedMaterial(); + const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) (FW_object_map[matuid]); + const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); + COLLADAFW::EffectCommon *efc = commonEffects[0]; + if((animType->material & MATERIAL_SHININESS) != 0){ + const COLLADAFW::FloatOrParam *shin = &(efc->getShininess()); + const COLLADAFW::UniqueId& listid = shin->getAnimationList(); + Assign_float_animations( listid, AnimCurves , "specular_hardness" ); + } + } + } + } } @@ -940,11 +937,6 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD std::map FW_object_map) { AnimMix *types = new AnimMix(); - //types->transform = INANIMATE ; - //types->light = INANIMATE; - //types->camera = INANIMATE; - //types->material = INANIMATE; - //types->texture = INANIMATE; const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -999,15 +991,12 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); for (unsigned int j = 0; j < matBinds.getCount(); j++) { - const COLLADAFW::Material *mat = (COLLADAFW::Material *) FW_object_map[matBinds[j].getReferencedMaterial()]; - const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) FW_object_map[mat->getInstantiatedEffect()]; - COLLADAFW::CommonEffectPointerArray commonEffects = ef->getCommonEffects(); - for (unsigned int k = 0; k < commonEffects.getCount(); k++) { - COLLADAFW::EffectCommon *efc = commonEffects[k]; - types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); - } + const COLLADAFW::UniqueId & matuid = matBinds[j].getReferencedMaterial(); + const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) (FW_object_map[matuid]); + const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); + COLLADAFW::EffectCommon *efc = commonEffects[0]; + types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); } - } return types; } diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 2ff791eb91d..d4eeb594922 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -537,7 +537,10 @@ bool DocumentImporter::writeMaterial( const COLLADAFW::Material* cmat ) this->uid_effect_map[cmat->getInstantiatedEffect()] = ma; this->uid_material_map[cmat->getUniqueId()] = ma; - this->FW_object_map[cmat->getUniqueId()] = cmat; + this->matUidforEffect = &(cmat->getUniqueId()); + /*COLLADAFW::Material * matCopy = new COLLADAFW::Material(&cmat); + this->FW_object_map[cmat->getUniqueId()] = matCopy; + *///matForEff = cmat; return true; } @@ -722,13 +725,21 @@ bool DocumentImporter::writeEffect( const COLLADAFW::Effect* effect ) return true; const COLLADAFW::UniqueId& uid = effect->getUniqueId(); + if (uid_effect_map.find(uid) == uid_effect_map.end()) { fprintf(stderr, "Couldn't find a material by UID.\n"); return true; } Material *ma = uid_effect_map[uid]; - + std::map::iterator iter; + for(iter = uid_material_map.begin(); iter != uid_material_map.end() ; iter++ ) + { + if ( iter->second == ma ) { + this->FW_object_map[iter->first] = effect; + break; + } + } COLLADAFW::CommonEffectPointerArray common_efs = effect->getCommonEffects(); if (common_efs.getCount() < 1) { fprintf(stderr, "Couldn't find .\n"); @@ -739,6 +750,7 @@ bool DocumentImporter::writeEffect( const COLLADAFW::Effect* effect ) COLLADAFW::EffectCommon *ef = common_efs[0]; write_profile_COMMON(ef, ma); this->FW_object_map[effect->getUniqueId()] = effect; + return true; } diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h index ce7a64a600d..8af0996885b 100644 --- a/source/blender/collada/DocumentImporter.h +++ b/source/blender/collada/DocumentImporter.h @@ -38,6 +38,8 @@ #include "COLLADAFWController.h" #include "COLLADAFWMorphController.h" #include "COLLADAFWSkinController.h" +#include "COLLADAFWEffectCommon.h" + #include "BKE_object.h" @@ -155,9 +157,12 @@ private: std::map node_map; std::vector vscenes; std::vector libnode_ob; + + const COLLADAFW::UniqueId *matUidforEffect; std::map root_map; // find root joint by child joint uid, for bone tree evaluation during resampling std::map FW_object_map; + }; #endif -- cgit v1.2.3 From b9f3ff5435d78b4538b417849edf60238fa54e34 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 23 Jul 2011 21:55:52 +0000 Subject: removed ancient ndof global, removed my own attempt at a C popup menu (the Python one works) --- source/blender/blenkernel/BKE_global.h | 5 -- source/blender/windowmanager/intern/wm_init_exit.c | 2 - source/blender/windowmanager/intern/wm_operators.c | 98 +--------------------- 3 files changed, 3 insertions(+), 102 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index d21b0428d76..17876c6ec9d 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -92,9 +92,6 @@ typedef struct Global { /* save the allowed windowstate of blender when using -W or -w */ int windowstate; - - /* ndof device found ? */ - int ndofdevice; } Global; /* **************** GLOBAL ********************* */ @@ -174,5 +171,3 @@ extern Global G; #endif #endif - - diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index ed28696ef69..7dd865984b3 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -182,8 +182,6 @@ void WM_init(bContext *C, int argc, const char **argv) ED_preview_init_dbase(); - G.ndofdevice = -1; /* XXX bad initializer, needs set otherwise buttons show! */ - WM_read_history(); /* allow a path of "", this is what happens when making a new file */ diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 32d2adffb01..44e42966c77 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1411,113 +1411,22 @@ static void WM_OT_search_menu(wmOperatorType *ot) ot->poll= wm_search_menu_poll; } -// BEGIN ndof menu -- experimental! - -#if 0 -static uiBlock* wm_block_ndof_menu_1st(bContext* C, ARegion* ar, void* UNUSED(arg_op)) -{ - uiBlock* block; - uiBut* but; - - block = uiBeginBlock(C, ar, "ndof_popup_menu", UI_EMBOSS); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); -// uiBlockSetDirection(block, UI_DOWN); -// uiBlockBeginAlign(block); - - // uiItemBooleanO(block->curlayout, "enable pan/zoom", ICON_NDOF_TRANS, "toggle_ndof_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); - // uiBlock is used as an opaque type in this file, so can't use members... - - int foo = 333; - uiDefButI(block, TOG, 0, "foo", 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, &foo, 0.f, 1.f, 0.1f, 0.9f, "15%"); - // uiDefBut(block, TOG, 0, "enable pan/zoom", 0, 0, 10, 10, NULL, 0.f, 1.f, 0.f, 1.f, "don't talk to strangers"); - -// uiBlockEndAlign(block); -// uiBoundsBlock(block, 6); - uiEndBlock(C, block); - - return block; -} - -static int wm_ndof_menu_poll(bContext *C) -{ - if(CTX_wm_window(C)==NULL) - return 0; - - // if menu is already pulled up, another button press should dismiss it - // not sure if that behavior should go here or elsewhere... - - puts("ndof: menu poll"); - return 1; -} - -static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) -{ - puts("ndof: menu exec"); - return OPERATOR_FINISHED; -} -#endif - static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { uiPupMenuInvoke(C,"VIEW3D_MT_ndof_settings"); + return OPERATOR_FINISHED; // <-- correct? return OPERATOR_CANCELLED; // <-- correct? - -/* -// uiPupMenuNotice(C, "Hello!"); // <-- this works -// uiPupBlock(C, wm_block_ndof_menu, op); // <-- no luck! -// ui_popup_menu_create(C, NULL, NULL, NULL, NULL, "Hello!"); // <-- this works - - uiPopupMenu* pup = uiPupMenuBegin(C,"3D mouse settings",ICON_NDOF_TURN); - uiLayout* layout = uiPupMenuLayout(pup); - - uiItemS(layout); // separator - uiItemFloatO(layout, "sensitivity", 0, 0, "ndof_sensitivity", 1.f); - // do I have to look specifically in "UserPreferences" for ndof_sensitivity property? - - // trial & error -- ok, mostly error -// uiItemBooleanO(layout, "enable pan/zoom", ICON_NDOF_TRANS, "ndof_toggle_pan_zoom_enabled", "ndof_pan_zoom_enabled", 1); -// uiItemBooleanO(layout, "enable rotation", ICON_NDOF_TURN, "ndof_toggle_rotation_enabled", "ndof_rotation_enabled", 1); -// uiItemV(layout,"sensitivity",ICON_NDOF_TRANS, 1); - - printf("ndof: menu invoked in "); - - switch (CTX_wm_area(C)->spacetype) // diff spaces can have diff 3d mouse options - { - case SPACE_VIEW3D: - puts("3D area"); - uiItemS(layout); - uiItemL(layout, "3D navigation mode", 0); - uiItemBooleanO(layout, "helicopter", ICON_NDOF_FLY, 0, "ndof_fly_helicopter", 1); - uiItemBooleanO(layout, "lock horizon", ICON_NDOF_DOM, 0, "ndof_lock_horizon", 1); - break; - case SPACE_IMAGE: - puts("image area"); - break; - default: - puts("some iNDOFferent area"); - } - - //uiBlock* block = uiLayoutGetBlock(layout); - //int foo = 1; - //uiDefButI(block, TOG, 0, "foo", 10, 10, 9*UI_UNIT_X, UI_UNIT_Y, &foo, 0.f, 1.f, 0.1f, 0.9f, "15%"); - - uiPupMenuEnd(C,pup); -*/ } static void WM_OT_ndof_menu(wmOperatorType *ot) { - puts("ndof: registering menu operator"); - ot->name = "NDOF Menu"; ot->idname = "WM_OT_ndof_menu"; ot->invoke = wm_ndof_menu_invoke; } -// END ndof menu - static int wm_call_menu_exec(bContext *C, wmOperator *op) { char idname[BKE_ST_MAXNAME]; @@ -3782,13 +3691,12 @@ void wm_window_keymap(wmKeyConfig *keyconf) /* debug/testing */ WM_keymap_verify_item(keymap, "WM_OT_redraw_timer", TKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); - WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); + /* menus that can be accessed anywhere in blender */ + WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "WM_OT_ndof_menu", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); /* Space switching */ - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F2KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was DXF export */ RNA_string_set(kmi->ptr, "data_path", "area.type"); RNA_string_set(kmi->ptr, "value", "LOGIC_EDITOR"); -- cgit v1.2.3 From 43994ce213d43ecc4448493a8920b1a9e7f34492 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 23 Jul 2011 22:08:37 +0000 Subject: 2.5: * Removed some old not used code. --- source/blender/editors/space_view3d/view3d_header.c | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 75c8d5cae73..ae80a554e08 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -505,17 +505,6 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); uiItemR(row, &v3dptr, "use_pivot_point_align", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); - /* NDOF */ - /* Not implemented yet - if (G.ndofdevice ==0 ) { - uiDefIconTextButC(block, ICONTEXTROW,B_NDOF, ICON_NDOF_TURN, ndof_pup(), 0,0,UI_UNIT_X+10,UI_UNIT_Y, &(v3d->ndofmode), 0, 3.0, 0, 0, "Ndof mode"); - - uiDefIconButC(block, TOG, B_NDOF, ICON_NDOF_DOM, - 0,0,UI_UNIT_X,UI_UNIT_Y, - &v3d->ndoffilter, 0, 1, 0, 0, "dominant axis"); - } - */ - /* Transform widget / manipulators */ row= uiLayoutRow(layout, 1); uiItemR(row, &v3dptr, "show_manipulator", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); -- cgit v1.2.3 From ed232c756d25f5fe16370c7eba332f2d78cd128e Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 24 Jul 2011 00:40:39 +0000 Subject: ndof overall sensitivity is now live --- source/blender/windowmanager/intern/wm_event_system.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 26d72906ece..ad8df1ef0bb 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2314,13 +2314,15 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g { wmNDOFMotionData* data = MEM_mallocN(sizeof(wmNDOFMotionData), "customdata NDOF"); - data->tx = ghost->tx; - data->ty = ghost->ty; - data->tz = ghost->tz; + const float s = U.ndof_sensitivity; - data->rx = ghost->rx; - data->ry = ghost->ry; - data->rz = ghost->rz; + data->tx = s * ghost->tx; + data->ty = s * ghost->ty; + data->tz = s * ghost->tz; + + data->rx = s * ghost->rx; + data->ry = s * ghost->ry; + data->rz = s * ghost->rz; data->dt = ghost->dt; -- cgit v1.2.3 From 6a392e8cb505b753a0bac24e42778306007c45b8 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 24 Jul 2011 04:34:46 +0000 Subject: == RNA Property Updates get called by Animation System now == This fixes bug #26764 and several others like it, where modifier properties (and others, but most visibly modifiers) would not do anything when animated or driven, as modifier properties require the RNA update calls to tag the modifiers to get recalculated. While just adding a call to RNA_property_update() could have gotten this working (as per the Campbell's patch attached in the report, and also my own attempt #25881). However, on production rigs, the performance cost of this is untenatable (on my own tests, without these updates, I was getting ~5fps on such a rig, but only 0.9fps or possibly even worse with the updates added). Hence, this commit adds a property-update caching system to the RNA level, which aims to reduce to the number of times that the update functions end up needing to get called. While this is much faster than without the caching, I also added an optimisation for pose bones (which are numerous in production rigs) so that their property updates are skipped, since they are useless to the animsys (they only tag the depsgraph for updating). This gets things moving at a more acceptable framerate. --- source/blender/blenkernel/BKE_animsys.h | 4 +- source/blender/blenkernel/intern/action.c | 2 +- source/blender/blenkernel/intern/anim.c | 4 +- source/blender/blenkernel/intern/anim_sys.c | 34 +++++-- source/blender/blenkernel/intern/blender.c | 5 + source/blender/blenkernel/intern/key.c | 2 +- source/blender/blenkernel/intern/object.c | 4 +- source/blender/blenkernel/intern/particle_system.c | 8 +- source/blender/blenkernel/intern/scene.c | 10 +- source/blender/blenkernel/intern/sequencer.c | 4 +- source/blender/editors/space_view3d/drawanimviz.c | 8 +- source/blender/editors/space_view3d/drawarmature.c | 8 +- source/blender/makesrna/RNA_access.h | 4 + source/blender/makesrna/intern/rna_access.c | 110 ++++++++++++++++++++- source/blender/render/intern/source/pipeline.c | 2 +- 15 files changed, 174 insertions(+), 35 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 228a359c81d..bf619d76e68 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -140,10 +140,10 @@ void BKE_animdata_main_cb(struct Main *main, ID_AnimData_Edit_Callback func, voi /* In general, these ones should be called to do all animation evaluation */ /* Evaluation loop for evaluating animation data */ -void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, float ctime, short recalc); +void BKE_animsys_evaluate_animdata(struct Scene *scene, struct ID *id, struct AnimData *adt, float ctime, short recalc); /* Evaluation of all ID-blocks with Animation Data blocks - Animation Data Only */ -void BKE_animsys_evaluate_all_animation(struct Main *main, float ctime); +void BKE_animsys_evaluate_all_animation(struct Main *main, struct Scene *scene, float ctime); /* ------------ Specialised API --------------- */ diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index e69ff5df913..a6539f00605 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -1197,7 +1197,7 @@ void what_does_obaction (Object *ob, Object *workob, bPose *pose, bAction *act, adt.action= act; /* execute effects of Action on to workob (or it's PoseChannels) */ - BKE_animsys_evaluate_animdata(&workob->id, &adt, cframe, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(NULL, &workob->id, &adt, cframe, ADT_RECALC_ANIM); } } diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 3300c82cae2..7ddb078ef8e 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -796,7 +796,7 @@ static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, * and/or other objects which may affect this object's transforms are not updated either. * However, this has always been the way that this worked (i.e. pre 2.5), so I guess that it'll be fine! */ - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */ + BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */ where_is_object_time(scene, ob, (float)scene->r.cfra); dob= new_dupli_object(lb, ob, ob->obmat, ob->lay, scene->r.cfra, OB_DUPLIFRAMES, animated); @@ -811,7 +811,7 @@ static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, */ scene->r.cfra= cfrao; - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */ + BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */ where_is_object_time(scene, ob, (float)scene->r.cfra); /* but, to make sure unkeyed object transforms are still sane, diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 69458ec7401..3e59accc599 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -1116,7 +1116,7 @@ static short animsys_write_rna_setting (PointerRNA *ptr, char *path, int array_i { int array_len= RNA_property_array_length(&new_ptr, prop); - if(array_len && array_index >= array_len) + if (array_len && array_index >= array_len) { if (G.f & G_DEBUG) { printf("Animato: Invalid array index. ID = '%s', '%s[%d]', array length is %d \n", @@ -1154,6 +1154,23 @@ static short animsys_write_rna_setting (PointerRNA *ptr, char *path, int array_i /* nothing can be done here... so it is unsuccessful? */ return 0; } + + /* buffer property update for later flushing */ + if (RNA_property_update_check(prop)) { + short skip_updates_hack = 0; + + /* optimisation hacks: skip property updates for those properties + * for we know that which the updates in RNA were really just for + * flushing property editing via UI/Py + */ + if (RNA_struct_is_a(new_ptr.type, &RNA_PoseBone)) { + /* bone transforms - update pose (i.e. tag depsgraph) */ + skip_updates_hack = 1; + } + + if (skip_updates_hack == 0) + RNA_property_update_cache_add(&new_ptr, prop); + } } /* successful */ @@ -2132,8 +2149,9 @@ static void animsys_evaluate_overrides (PointerRNA *ptr, AnimData *adt) * and that the flags for which parts of the anim-data settings need to be recalculated * have been set already by the depsgraph. Now, we use the recalc */ -void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short recalc) +void BKE_animsys_evaluate_animdata (Scene *scene, ID *id, AnimData *adt, float ctime, short recalc) { + Main *bmain = G.main; // xxx - to get passed in! PointerRNA id_ptr; /* sanity checks */ @@ -2184,6 +2202,10 @@ void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short re */ animsys_evaluate_overrides(&id_ptr, adt); + /* execute and clear all cached property update functions */ + RNA_property_update_cache_flush(bmain, scene); + RNA_property_update_cache_free(); + /* clear recalc flag now */ adt->recalc= 0; } @@ -2195,7 +2217,7 @@ void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short re * 'local' (i.e. belonging in the nearest ID-block that setting is related to, not a * standard 'root') block are overridden by a larger 'user' */ -void BKE_animsys_evaluate_all_animation (Main *main, float ctime) +void BKE_animsys_evaluate_all_animation (Main *main, Scene *scene, float ctime) { ID *id; @@ -2211,7 +2233,7 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) for (id= first; id; id= id->next) { \ if (ID_REAL_USERS(id) > 0) { \ AnimData *adt= BKE_animdata_from_id(id); \ - BKE_animsys_evaluate_animdata(id, adt, ctime, aflag); \ + BKE_animsys_evaluate_animdata(scene, id, adt, ctime, aflag); \ } \ } /* another macro for the "embedded" nodetree cases @@ -2227,9 +2249,9 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) NtId_Type *ntp= (NtId_Type *)id; \ if (ntp->nodetree) { \ AnimData *adt2= BKE_animdata_from_id((ID *)ntp->nodetree); \ - BKE_animsys_evaluate_animdata((ID *)ntp->nodetree, adt2, ctime, ADT_RECALC_ANIM); \ + BKE_animsys_evaluate_animdata(scene, (ID *)ntp->nodetree, adt2, ctime, ADT_RECALC_ANIM); \ } \ - BKE_animsys_evaluate_animdata(id, adt, ctime, aflag); \ + BKE_animsys_evaluate_animdata(scene, id, adt, ctime, aflag); \ } \ } diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 8b4bbbd3c83..d573da603f6 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -90,6 +90,8 @@ #include "BKE_utildefines.h" +#include "RNA_access.h" + #include "WM_api.h" // XXXXX BAD, very BAD dependency (bad level call) - remove asap, elubie Global G; @@ -239,6 +241,9 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath // CTX_wm_manager_set(C, NULL); clear_global(); + /* clear old property update cache, in case some old references are left dangling */ + RNA_property_update_cache_free(); + G.main= bfd->main; CTX_data_main_set(C, G.main); diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 8b0cfb1d156..50c120a3ec1 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1400,7 +1400,7 @@ float *do_ob_key(Scene *scene, Object *ob) /* do shapekey local drivers */ float ctime= (float)scene->r.cfra; // XXX this needs to be checked - BKE_animsys_evaluate_animdata(&key->id, key->adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, &key->id, key->adt, ctime, ADT_RECALC_DRIVERS); if(ob->type==OB_MESH) do_mesh_key(scene, ob, key, out, tot); else if(ob->type==OB_LATTICE) do_latt_key(scene, ob, key, out, tot); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index dff62b05bd3..862d583bd34 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2084,7 +2084,7 @@ void where_is_object_time(Scene *scene, Object *ob, float ctime) if(ob==NULL) return; /* execute drivers only, as animation has already been done */ - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, ctime, ADT_RECALC_DRIVERS); if(ob->parent) { Object *par= ob->parent; @@ -2623,7 +2623,7 @@ void object_handle_update(Scene *scene, Object *ob) if(adt) { /* evaluate drivers */ // XXX: for mesh types, should we push this to derivedmesh instead? - BKE_animsys_evaluate_animdata(data_id, adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, data_id, adt, ctime, ADT_RECALC_DRIVERS); } /* includes all keys and modifiers */ diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 1423f520b95..f62ba2be193 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1801,7 +1801,7 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, if(part->type!=PART_HAIR && dtime > 0.f && pa->time < cfra && pa->time >= sim->psys->cfra) { /* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */ while(ob) { - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, pa->time, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(sim->scene, &ob->id, ob->adt, pa->time, ADT_RECALC_ANIM); ob = ob->parent; } ob = sim->ob; @@ -4253,7 +4253,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) return; /* execute drivers only, as animation has already been done */ - BKE_animsys_evaluate_animdata(&part->id, part->adt, cfra, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, &part->id, part->adt, cfra, ADT_RECALC_DRIVERS); if(psys->recalc & PSYS_RECALC_TYPE) psys_changed_type(&sim); @@ -4291,7 +4291,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) for(i=0; i<=part->hair_step; i++){ hcfra=100.0f*(float)i/(float)psys->part->hair_step; if((part->flag & PART_HAIR_REGROW)==0) - BKE_animsys_evaluate_animdata(&part->id, part->adt, hcfra, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(scene, &part->id, part->adt, hcfra, ADT_RECALC_ANIM); system_step(&sim, hcfra); psys->cfra = hcfra; psys->recalc = 0; @@ -4369,7 +4369,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) if(psys->cfra < cfra) { /* make sure emitter is left at correct time (particle emission can change this) */ while(ob) { - BKE_animsys_evaluate_animdata(&ob->id, ob->adt, cfra, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, cfra, ADT_RECALC_ANIM); ob = ob->parent; } ob = sim.ob; diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index e045bd0fb82..42793e4b4a4 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -915,7 +915,7 @@ static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene) /* scene itself */ if (scene->adt && scene->adt->drivers.first) { - BKE_animsys_evaluate_animdata(&scene->id, scene->adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, &scene->id, scene->adt, ctime, ADT_RECALC_DRIVERS); } /* world */ @@ -925,7 +925,7 @@ static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene) AnimData *adt= BKE_animdata_from_id(wid); if (adt && adt->drivers.first) - BKE_animsys_evaluate_animdata(wid, adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, wid, adt, ctime, ADT_RECALC_DRIVERS); } /* nodes */ @@ -934,7 +934,7 @@ static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene) AnimData *adt= BKE_animdata_from_id(nid); if (adt && adt->drivers.first) - BKE_animsys_evaluate_animdata(nid, adt, ctime, ADT_RECALC_DRIVERS); + BKE_animsys_evaluate_animdata(scene, nid, adt, ctime, ADT_RECALC_DRIVERS); } } @@ -985,7 +985,7 @@ void scene_update_tagged(Main *bmain, Scene *scene) float ctime = BKE_curframe(scene); if (adt && (adt->recalc & ADT_RECALC_ANIM)) - BKE_animsys_evaluate_animdata(&scene->id, adt, ctime, 0); + BKE_animsys_evaluate_animdata(scene, &scene->id, adt, ctime, 0); } if (scene->physics_settings.quick_cache_step) @@ -1020,7 +1020,7 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) * can be overridden by settings from Scene, which owns the Texture through a hierarchy * such as Scene->World->MTex/Texture) can still get correctly overridden. */ - BKE_animsys_evaluate_all_animation(bmain, ctime); + BKE_animsys_evaluate_all_animation(bmain, sce, ctime); /*...done with recusrive funcs */ /* object_handle_update() on all objects, groups and sets */ diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 5da70f97314..9673fee0b63 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -2123,7 +2123,7 @@ static ImBuf * seq_render_strip(SeqRenderData context, Sequence * seq, float cfr ibuf = seq_render_scene_strip_impl(context, seq, nr); /* Scene strips update all animation, so we need to restore original state.*/ - BKE_animsys_evaluate_all_animation(context.bmain, cfra); + BKE_animsys_evaluate_all_animation(context.bmain, context.scene, cfra); copy_to_ibuf_still(context, seq, nr, ibuf); break; @@ -2200,7 +2200,7 @@ static ImBuf* seq_render_strip_stack( if(scene->r.cfra != cfra) { // XXX for prefetch and overlay offset!..., very bad!!! AnimData *adt= BKE_animdata_from_id(&scene->id); - BKE_animsys_evaluate_animdata(&scene->id, adt, cfra, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(scene, &scene->id, adt, cfra, ADT_RECALC_ANIM); } #endif diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c index aa3ba1a3062..4a51cb3be09 100644 --- a/source/blender/editors/space_view3d/drawanimviz.c +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -393,7 +393,7 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base colfac = (end - (float)CFRA) / range; UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac))); - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE); } @@ -472,7 +472,7 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base * CFRA= (int)ak->cfra; - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE); } @@ -542,7 +542,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe+ctime, NLATIME_CONVERT_MAP); if (CFRA != cfrao) { - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE); } @@ -557,7 +557,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe-ctime, NLATIME_CONVERT_MAP); if (CFRA != cfrao) { - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE); } diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 1087284e2e5..de35be13c43 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -2339,7 +2339,7 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base colfac = (end - (float)CFRA) / range; UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac))); - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } @@ -2418,7 +2418,7 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base * CFRA= (int)ak->cfra; - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } @@ -2488,7 +2488,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe+ctime, NLATIME_CONVERT_MAP); if (CFRA != cfrao) { - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } @@ -2503,7 +2503,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe-ctime, NLATIME_CONVERT_MAP); if (CFRA != cfrao) { - BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL); where_is_pose(scene, ob); draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE, FALSE); } diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 49bc10a0675..f5d73bddc3b 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -702,6 +702,10 @@ void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop) void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); int RNA_property_update_check(struct PropertyRNA *prop); +void RNA_property_update_cache_add(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_update_cache_flush(struct Main *bmain, struct Scene *scene); +void RNA_property_update_cache_free(void); + /* Property Data */ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 285e8ca39ba..7936fc4c280 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -85,7 +85,9 @@ void RNA_init(void) void RNA_exit(void) { StructRNA *srna; - + + RNA_property_update_cache_free(); + for(srna=BLENDER_RNA.structs.first; srna; srna=srna->cont.next) { if(srna->cont.prophash) { BLI_ghash_free(srna->cont.prophash, NULL, NULL); @@ -1391,6 +1393,112 @@ void RNA_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, Proper rna_property_update(NULL, bmain, scene, ptr, prop); } + +/* RNA Updates Cache ------------------------ */ +/* Overview of RNA Update cache system: + * + * RNA Update calls need to be cached in order to maintain reasonable performance + * of the animation system (i.e. maintaining a somewhat interactive framerate) + * while still allowing updates to be called (necessary in particular for modifier + * property updates to actually work). + * + * The cache is structured with a dual-layer structure + * - L1 = PointerRNA used as key; id.data is used (it should always be defined, + * and most updates end up using just that anyways) + * - L2 = Update functions to be called on those PointerRNA's + */ + +/* cache element */ +typedef struct tRnaUpdateCacheElem { + struct tRnaUpdateCacheElem *next, *prev; + + PointerRNA ptr; /* L1 key - id as primary, data secondary/ignored? */ + ListBase L2Funcs; /* L2 functions (LinkData) */ +} tRnaUpdateCacheElem; + +/* cache global (tRnaUpdateCacheElem's) - only accessible using these API calls */ +static ListBase rna_updates_cache = {NULL, NULL}; + +/* ........................... */ + +void RNA_property_update_cache_add(PointerRNA *ptr, PropertyRNA *prop) +{ + tRnaUpdateCacheElem *uce = NULL; + UpdateFunc fn = NULL; + LinkData *ld; + short is_rna = (prop->magic == RNA_MAGIC); + + /* sanity check */ + if (ELEM(NULL, ptr, prop)) + return; + + prop= rna_ensure_property(prop); + + /* we can only handle update calls with no context args for now (makes animsys updates easier) */ + if ((is_rna == 0) || (prop->update == NULL) || (prop->flag & PROP_CONTEXT_UPDATE)) + return; + fn = prop->update; + + /* find cache element for which key matches... */ + for (uce = rna_updates_cache.first; uce; uce = uce->next) { + /* just match by id only for now, since most update calls that we'll encounter only really care about this */ + // TODO: later, the cache might need to have some nesting on L1 to cope better with these problems + some tagging to indicate we need this + if (uce->ptr.id.data == ptr->id.data) + break; + } + if (uce == NULL) { + /* create new instance */ + uce = MEM_callocN(sizeof(tRnaUpdateCacheElem), "tRnaUpdateCacheElem"); + BLI_addtail(&rna_updates_cache, uce); + + /* copy pointer */ + RNA_pointer_create(ptr->id.data, ptr->type, ptr->data, &uce->ptr); + } + + /* check on the update func */ + for (ld = uce->L2Funcs.first; ld; ld = ld->next) { + /* stop on match - function already cached */ + if (fn == ld->data) + return; + } + /* else... if still here, we need to add it */ + BLI_addtail(&uce->L2Funcs, BLI_genericNodeN(fn)); +} + +void RNA_property_update_cache_flush(Main *bmain, Scene *scene) +{ + tRnaUpdateCacheElem *uce; + + // TODO: should we check that bmain and scene are valid? The above stuff doesn't! + + /* execute the cached updates */ + for (uce = rna_updates_cache.first; uce; uce = uce->next) { + LinkData *ld; + + for (ld = uce->L2Funcs.first; ld; ld = ld->next) { + UpdateFunc fn = (UpdateFunc)ld->data; + fn(bmain, scene, &uce->ptr); + } + } +} + +void RNA_property_update_cache_free(void) +{ + tRnaUpdateCacheElem *uce, *ucn; + + for (uce = rna_updates_cache.first; uce; uce = ucn) { + ucn = uce->next; + + /* free L2 cache */ + BLI_freelistN(&uce->L2Funcs); + + /* remove self */ + BLI_freelinkN(&rna_updates_cache, uce); + } +} + +/* ---------------------------------------------------------------------- */ + /* Property Data */ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index b9006b390ab..0afbffc5fd5 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2525,7 +2525,7 @@ static void do_render_seq(Render * re) if(recurs_depth==0) { /* otherwise sequencer animation isnt updated */ - BKE_animsys_evaluate_all_animation(re->main, (float)cfra); // XXX, was BKE_curframe(re->scene) + BKE_animsys_evaluate_all_animation(re->main, re->scene, (float)cfra); // XXX, was BKE_curframe(re->scene) } recurs_depth++; -- cgit v1.2.3 From 1ca4f1ba1c48b9afa46c85ce9010829a26194632 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 24 Jul 2011 08:02:42 +0000 Subject: sculpt/paint while using 3D mouse --- source/blender/editors/gpencil/gpencil_paint.c | 12 ++++++++++++ source/blender/editors/sculpt_paint/paint_stroke.c | 3 +++ 2 files changed, 15 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index f4da734473d..28a54b20277 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1617,6 +1617,18 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) tGPsdata *p= op->customdata; int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ + // if (event->type == NDOF_MOTION) + // return OPERATOR_PASS_THROUGH; + // ------------------------------- + // [mce] Not quite what I was looking + // for, but a good start! GP continues to + // draw on the screen while the 3D mouse + // moves the viewpoint. Problem is that + // the stroke is converted to 3D only after + // it is finished. This approach should work + // better in tools that immediately apply + // in 3D space. + //printf("\tGP - handle modal event...\n"); /* exit painting mode (and/or end current stroke) */ diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index 7ddf5dff000..bddb30a4262 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -832,6 +832,9 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) float mouse[2]; int first= 0; + if (event->type == NDOF_MOTION) + return OPERATOR_PASS_THROUGH; + if(!stroke->stroke_started) { stroke->last_mouse_position[0] = event->x; stroke->last_mouse_position[1] = event->y; -- cgit v1.2.3 From c4bda1370c9528e2035c1d91df126dd4ea789d69 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 24 Jul 2011 08:37:43 +0000 Subject: Add mapping for front/right/top aligned to selected object. --- source/blender/editors/space_view3d/view3d_ops.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 2dd560a6408..963e7aeeb95 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -221,6 +221,17 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM); RNA_boolean_set(kmi->ptr, "align_active", TRUE); + /* 3D mouse align */ + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_FRONT, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_RIGHT, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_TOP, KM_PRESS, KM_SHIFT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0); /* layers, shift + alt are properties set in invoke() */ -- cgit v1.2.3 From 6149526aac7a10034ce369147c8c7962f8ed4e35 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 24 Jul 2011 08:50:09 +0000 Subject: Default for ndof_sensitivity to 1.0 in case 0.0 is found on start. --- source/blender/editors/interface/resources.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 3f825762d74..276e1b3dc61 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1583,6 +1583,9 @@ void init_userdef_do_versions(void) if (U.anisotropic_filter <= 0) U.anisotropic_filter = 1; + if (U.ndof_sensitivity == 0.0) + U.ndof_sensitivity = 1.0f; + /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); /* this timer uses U */ -- cgit v1.2.3 From b154b5993829f92e03233a04410b3667f2976556 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 24 Jul 2011 10:26:22 +0000 Subject: New dilation function from Morten Mikkelsen (aka sparky). This commit fixes very noticeable seams caused by margins calculated incorrectly. This commit changes way margin is calculated in and makes textures really seamless. Also margin limited to 32 isn't good now -- artists are baking really large textures nowadays so margin is now limited to 64px. Thank you, Morten! --- source/blender/imbuf/IMB_imbuf.h | 2 +- source/blender/imbuf/intern/filter.c | 219 ++++++++++++----------- source/blender/makesrna/intern/rna_scene.c | 2 +- source/blender/render/intern/source/rendercore.c | 22 +-- 4 files changed, 118 insertions(+), 127 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index ff01e3a8a1e..36123592c54 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -252,7 +252,7 @@ void IMB_filter(struct ImBuf *ibuf); void IMB_filterN(struct ImBuf *out, struct ImBuf *in); void IMB_mask_filter_extend(char *mask, int width, int height); void IMB_mask_clear(struct ImBuf *ibuf, char *mask, int val); -void IMB_filter_extend(struct ImBuf *ibuf, char *mask); +void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter); void IMB_makemipmap(struct ImBuf *ibuf, int use_filter); void IMB_remakemipmap(struct ImBuf *ibuf, int use_filter); struct ImBuf *IMB_getmipmap(struct ImBuf *ibuf, int level); diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index d12360e5a7e..1644e653df4 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -21,7 +21,7 @@ * * The Original Code is: all of this file. * - * Contributor(s): none yet. + * Contributor(s): Morten Mikkelsen. * * ***** END GPL LICENSE BLOCK ***** * filter.c @@ -326,121 +326,132 @@ void IMB_mask_clear(ImBuf *ibuf, char *mask, int val) } } -#define EXTEND_PIXEL(color, w) if((color)[3]) {r+= w*(color)[0]; g+= w*(color)[1]; b+= w*(color)[2]; a+= w*(color)[3]; tot+=w;} +static int filter_make_index(const int x, const int y, const int w, const int h) +{ + if(x<0 || x>=w || y<0 || y>=h) return -1; /* return bad index */ + else return y*w+x; +} + +static int check_pixel_assigned(const void *buffer, const char *mask, const int index, const int depth, const int is_float) +{ + int res = 0; + + if(index>=0) { + const int alpha_index = depth*index+(depth-1); + + if(mask!=NULL) { + res = mask[index]!=0 ? 1 : 0; + } + else if( (is_float && ((const float *) buffer)[alpha_index]!=0.0f) || + (!is_float && ((const unsigned char *) buffer)[alpha_index]!=0) ) { + res=1; + } + } + + return res; +} /* if alpha is zero, it checks surrounding pixels and averages color. sets new alphas to 1.0 * * When a mask is given, only effect pixels with a mask value of 1, defined as BAKE_MASK_MARGIN in rendercore.c * */ -void IMB_filter_extend(struct ImBuf *ibuf, char *mask) +void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) { - register char *row1, *row2, *row3; - register char *cp; - int rowlen, x, y; - - rowlen= ibuf->x; - - - if (ibuf->rect_float) { - float *temprect; - float *row1f, *row2f, *row3f; - float *fp; - temprect= MEM_dupallocN(ibuf->rect_float); - - for(y=1; y<=ibuf->y; y++) { - /* setup rows */ - row1f= (float *)(temprect + (y-2)*rowlen*4); - row2f= row1f + 4*rowlen; - row3f= row2f + 4*rowlen; - if(y==1) - row1f= row2f; - else if(y==ibuf->y) - row3f= row2f; - - fp= (float *)(ibuf->rect_float + (y-1)*rowlen*4); - - for(x=0; xx; + const int height= ibuf->y; + const int depth= 4; /* always 4 channels */ + const int chsize= ibuf->rect_float ? sizeof(float) : sizeof(unsigned char); + const int bsize= width*height*depth*chsize; + const int is_float= ibuf->rect_float!=NULL; + void *dstbuf= (void *) MEM_dupallocN(ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect); + char *dstmask= mask==NULL ? NULL : (char *) MEM_dupallocN(mask); + void *srcbuf= ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect; + char *srcmask= mask; + int cannot_early_out= 1, r, n, k, i, j, c; + float weight[25]; + + /* build a weights buffer */ + n= 2; + k= 0; + for(i = -n; i <= n; i++) + for(j = -n; j <= n; j++) + weight[k++] = sqrt((float) i * i + j * j); + + /* run passes */ + for(r = 0; cannot_early_out == 1 && r < filter; r++) { + int x, y; + cannot_early_out = 0; + + for(y= 0; y 255 ? 255 : (acc[c] < 0 ? 0 : ((unsigned char) (acc[c]+0.5f))); + } + } + + if(dstmask!=NULL) dstmask[index]=FILTER_MASK_MARGIN; /* assigned */ + cannot_early_out = 1; + } } } - fp+=4; - - if(x!=0) { - row1f+=4; row2f+=4; row3f+=4; - } } } - MEM_freeN(temprect); - } - else if(ibuf->rect) { - int *temprect; - - /* make a copy, to prevent flooding */ - temprect= MEM_dupallocN(ibuf->rect); - - for(y=1; y<=ibuf->y; y++) { - /* setup rows */ - row1= (char *)(temprect + (y-2)*rowlen); - row2= row1 + 4*rowlen; - row3= row2 + 4*rowlen; - if(y==1) - row1= row2; - else if(y==ibuf->y) - row3= row2; - - cp= (char *)(ibuf->rect + (y-1)*rowlen); - - for(x=0; xx, ibuf->y); - - temprect = MEM_dupallocN(mask); - - /* expand twice to clear this many pixels, so they blend back in */ - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - - /* clear all pixels in the margin */ - IMB_mask_clear(ibuf, temprect, FILTER_MASK_MARGIN); - MEM_freeN(temprect); - - for(i= 0; i < filter; i++) - IMB_filter_extend(ibuf, mask); + IMB_filter_extend(ibuf, mask, filter); } /* if the bake results in new alpha then change the image setting */ -- cgit v1.2.3 From b401d09d8f05d5b7fd81bbaaa27722f24faba165 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 24 Jul 2011 11:11:23 +0000 Subject: * Minor code cleanup / comment changing. No functional changes. --- source/blender/editors/interface/interface_templates.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 25dbb68a258..f388710d5b8 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -851,7 +851,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr) /* verify we have valid data */ if(!RNA_struct_is_a(ptr->type, &RNA_Modifier)) { - RNA_warning("uiTemplateModifier: expected modifier on object.\n"); + RNA_warning("uiTemplateModifier: Expected modifier on object.\n"); return NULL; } @@ -859,7 +859,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr) md= ptr->data; if(!ob || !(GS(ob->id.name) == ID_OB)) { - RNA_warning("uiTemplateModifier: expected modifier on object.\n"); + RNA_warning("uiTemplateModifier: Expected modifier on object.\n"); return NULL; } @@ -976,9 +976,6 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con) block= uiLayoutGetBlock(box); /* Draw constraint header */ - - /* rounded header */ - // rb_col= (con->flag & CONSTRAINT_ACTIVE)?50:20; // UNUSED /* open/close */ uiBlockSetEmboss(block, UI_EMBOSSN); @@ -1083,7 +1080,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr) /* verify we have valid data */ if(!RNA_struct_is_a(ptr->type, &RNA_Constraint)) { - RNA_warning("uiTemplateConstraint: expected constraint on object.\n"); + RNA_warning("uiTemplateConstraint: Expected constraint on object.\n"); return NULL; } @@ -1091,7 +1088,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr) con= ptr->data; if(!ob || !(GS(ob->id.name) == ID_OB)) { - RNA_warning("uiTemplateConstraint: expected constraint on object.\n"); + RNA_warning("uiTemplateConstraint: Expected constraint on object.\n"); return NULL; } @@ -1137,7 +1134,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, M PointerRNA texture_ptr; if(id && !ELEM4(GS(id->name), ID_MA, ID_TE, ID_WO, ID_LA)) { - RNA_warning("uiTemplatePreview: expected ID of type material, texture, lamp or world.\n"); + RNA_warning("uiTemplatePreview: Expected ID of type material, texture, lamp or world.\n"); return; } @@ -2171,14 +2168,14 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * if(prop) { type= RNA_property_type(prop); if(type != PROP_COLLECTION) { - RNA_warning("uiTemplateList: expected collection property.\n"); + RNA_warning("uiTemplateList: Expected collection property.\n"); return; } } activetype= RNA_property_type(activeprop); if(activetype != PROP_INT) { - RNA_warning("uiTemplateList: expected integer property.\n"); + RNA_warning("uiTemplateList: Expected integer property.\n"); return; } -- cgit v1.2.3 From a22de3f73c28b86f481376d52fbcfd7bb8ee25f2 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 24 Jul 2011 17:44:22 +0000 Subject: Effector calculations are now thread safe. * where_is_object_time was called for every effector evaluation only to determine the object velocity in some rare cases. * Calculating the effector velocity is now done in the effector precalculation stage. * Removing this makes the code thread safe and also should give some nice performance boosts when simulating a lot of points. * Thanks to MiikaH for noticing this problem. --- source/blender/blenkernel/BKE_effect.h | 1 + source/blender/blenkernel/intern/effect.c | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h index 97ac711651b..12f9383cefb 100644 --- a/source/blender/blenkernel/BKE_effect.h +++ b/source/blender/blenkernel/BKE_effect.h @@ -105,6 +105,7 @@ typedef struct EffectorCache { /* precalculated for guides */ struct GuideEffectorData *guide_data; float guide_loc[4], guide_dir[3], guide_radius; + float velocity[3]; float frame; int flag; diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index ee46bef6038..4b95c44f55f 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -241,6 +241,16 @@ static void precalculate_effector(EffectorCache *eff) } else if(eff->psys) psys_update_particle_tree(eff->psys, eff->scene->r.cfra); + + /* Store object velocity */ + if(eff->ob) { + float old_vel[3]; + + where_is_object_time(eff->scene, eff->ob, cfra - 1.0f); + copy_v3_v3(old_vel, eff->ob->obmat[3]); + where_is_object_time(eff->scene, eff->ob, cfra); + sub_v3_v3v3(eff->velocity, eff->ob->obmat[3], old_vel); + } } static EffectorCache *new_effector_cache(Scene *scene, Object *ob, ParticleSystem *psys, PartDeflect *pd) { @@ -680,10 +690,6 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin Object *ob = eff->ob; Object obcopy = *ob; - /* XXX this is not thread-safe, but used from multiple threads by - particle system */ - where_is_object_time(eff->scene, ob, cfra); - /* use z-axis as normal*/ normalize_v3_v3(efd->nor, ob->obmat[2]); @@ -702,13 +708,8 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin VECCOPY(efd->loc, ob->obmat[3]); } - if(real_velocity) { - VECCOPY(efd->vel, ob->obmat[3]); - - where_is_object_time(eff->scene, ob, cfra - 1.0f); - - sub_v3_v3v3(efd->vel, efd->vel, ob->obmat[3]); - } + if(real_velocity) + copy_v3_v3(efd->vel, eff->velocity); *eff->ob = obcopy; -- cgit v1.2.3 From 1e0e0ff5c4e88f2ee21c849b151a1899ae4c714f Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 24 Jul 2011 20:27:27 +0000 Subject: Blender profile for leaf_bone tip. (untested). --- source/blender/collada/AnimationExporter.cpp | 3 ++- source/blender/collada/ArmatureExporter.cpp | 17 +++++++++++++++++ source/blender/collada/ArmatureExporter.h | 2 ++ source/blender/collada/DocumentImporter.cpp | 5 +---- source/blender/collada/DocumentImporter.h | 2 -- 5 files changed, 22 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 222838c3838..0e6fa4d0d92 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -415,7 +415,8 @@ void AnimationExporter::exportAnimations(Scene *sce) float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); + //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); + //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); // compute bone local mat diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index ad9098db3d8..6849e4de7dd 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -177,6 +177,9 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) node.setNodeName(node_name); node.setNodeSid(node_sid); + if ( bone->childbase.first == NULL ) + add_blender_leaf_bone( bone, ob_arm , node ); + else{ node.start(); add_bone_transform(ob_arm, bone, node); @@ -186,8 +189,22 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) } node.end(); + } } +void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node) +{ + node.start(); + + add_bone_transform(ob_arm, bone, node); + + node.addExtraTechniqueParameter("blender", "tip_x", bone->tail[0] ); + node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] ); + node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] ); + + node.end(); + +} void ArmatureExporter::add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW::Node& node) { bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); diff --git a/source/blender/collada/ArmatureExporter.h b/source/blender/collada/ArmatureExporter.h index f4488942f7b..b3441c797e8 100644 --- a/source/blender/collada/ArmatureExporter.h +++ b/source/blender/collada/ArmatureExporter.h @@ -92,6 +92,8 @@ private: void add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW::Node& node); + void add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node); + std::string get_controller_id(Object *ob_arm, Object *ob); // ob should be of type OB_MESH diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index d4eeb594922..c3090eebc9f 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -537,10 +537,7 @@ bool DocumentImporter::writeMaterial( const COLLADAFW::Material* cmat ) this->uid_effect_map[cmat->getInstantiatedEffect()] = ma; this->uid_material_map[cmat->getUniqueId()] = ma; - this->matUidforEffect = &(cmat->getUniqueId()); - /*COLLADAFW::Material * matCopy = new COLLADAFW::Material(&cmat); - this->FW_object_map[cmat->getUniqueId()] = matCopy; - *///matForEff = cmat; + return true; } diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h index 8af0996885b..f6917c2e9bf 100644 --- a/source/blender/collada/DocumentImporter.h +++ b/source/blender/collada/DocumentImporter.h @@ -158,8 +158,6 @@ private: std::vector vscenes; std::vector libnode_ob; - const COLLADAFW::UniqueId *matUidforEffect; - std::map root_map; // find root joint by child joint uid, for bone tree evaluation during resampling std::map FW_object_map; -- cgit v1.2.3 From abf658d36785e3fb0fe458ba7ee9b22987a9c036 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 25 Jul 2011 00:00:53 +0000 Subject: removed old ndof transform stuff, added experimental ndof nav during transform (might disable for release) --- source/blender/editors/transform/transform.c | 127 +---------------------- source/blender/editors/transform/transform_ops.c | 6 ++ 2 files changed, 11 insertions(+), 122 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index d3a30991aa6..81aade5ca64 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1006,9 +1006,11 @@ int transformEvent(TransInfo *t, wmEvent *event) else view_editmove(event->type); t->redraw= 1; break; -// case NDOFMOTION: -// viewmoveNDOF(1); - // break; +#if 0 + case NDOF_MOTION: + // should have been caught by tranform_modal + return OPERATOR_PASS_THROUGH; +#endif default: handled = 0; break; @@ -1017,43 +1019,6 @@ int transformEvent(TransInfo *t, wmEvent *event) // Numerical input events t->redraw |= handleNumInput(&(t->num), event); - // NDof input events - switch(handleNDofInput(&(t->ndof), event)) - { - case NDOF_CONFIRM: - if ((t->options & CTX_NDOF) == 0) - { - /* Confirm on normal transform only */ - t->state = TRANS_CONFIRM; - } - break; - case NDOF_CANCEL: - if (t->options & CTX_NDOF) - { - /* Cancel on pure NDOF transform */ - t->state = TRANS_CANCEL; - } - else - { - /* Otherwise, just redraw, NDof input was cancelled */ - t->redraw |= TREDRAW_HARD; - } - break; - case NDOF_NOMOVE: - if (t->options & CTX_NDOF) - { - /* Confirm on pure NDOF transform */ - t->state = TRANS_CONFIRM; - } - break; - case NDOF_REFRESH: - t->redraw |= TREDRAW_HARD; - break; - default: - handled = 0; - break; - } - // Snapping events t->redraw |= handleSnapping(t, event); @@ -2886,10 +2851,6 @@ void initRotation(TransInfo *t) setInputPostFct(&t->mouse, postInputRotation); initMouseInputMode(t, &t->mouse, INPUT_ANGLE); - t->ndof.axis = 16; - /* Scale down and flip input for rotation */ - t->ndof.factor[0] = -0.2f; - t->idx_max = 0; t->num.idx_max = 0; t->snap[0] = 0.0f; @@ -3161,8 +3122,6 @@ int Rotation(TransInfo *t, const int UNUSED(mval[2])) final = t->values[0]; - applyNDofInput(&t->ndof, &final); - snapGrid(t, &final); if ((t->con.mode & CON_APPLY) && t->con.applyRot) { @@ -3216,11 +3175,6 @@ void initTrackball(TransInfo *t) initMouseInputMode(t, &t->mouse, INPUT_TRACKBALL); - t->ndof.axis = 40; - /* Scale down input for rotation */ - t->ndof.factor[0] = 0.2f; - t->ndof.factor[1] = 0.2f; - t->idx_max = 1; t->num.idx_max = 1; t->snap[0] = 0.0f; @@ -3276,8 +3230,6 @@ int Trackball(TransInfo *t, const int UNUSED(mval[2])) phi[0] = t->values[0]; phi[1] = t->values[1]; - applyNDofInput(&t->ndof, phi); - snapGrid(t, phi); if (hasNumInput(&t->num)) { @@ -3331,8 +3283,6 @@ void initTranslation(TransInfo *t) t->num.flag = 0; t->num.idx_max = t->idx_max; - t->ndof.axis = (t->flag & T_2D_EDIT)? 1|2: 1|2|4; - if(t->spacetype == SPACE_VIEW3D) { RegionView3D *rv3d = t->ar->regiondata; @@ -3507,7 +3457,6 @@ int Translation(TransInfo *t, const int UNUSED(mval[2])) headerTranslation(t, pvec, str); } else { - applyNDofInput(&t->ndof, t->values); snapGrid(t, t->values); applyNumInput(&t->num, t->values); if (hasNumInput(&t->num)) { @@ -3616,10 +3565,6 @@ void initTilt(TransInfo *t) initMouseInputMode(t, &t->mouse, INPUT_ANGLE); - t->ndof.axis = 16; - /* Scale down and flip input for rotation */ - t->ndof.factor[0] = -0.2f; - t->idx_max = 0; t->num.idx_max = 0; t->snap[0] = 0.0f; @@ -3643,8 +3588,6 @@ int Tilt(TransInfo *t, const int UNUSED(mval[2])) final = t->values[0]; - applyNDofInput(&t->ndof, &final); - snapGrid(t, &final); if (hasNumInput(&t->num)) { @@ -3759,10 +3702,6 @@ void initPushPull(TransInfo *t) initMouseInputMode(t, &t->mouse, INPUT_VERTICAL_ABSOLUTE); - t->ndof.axis = 4; - /* Flip direction */ - t->ndof.factor[0] = -1.0f; - t->idx_max = 0; t->num.idx_max = 0; t->snap[0] = 0.0f; @@ -3783,8 +3722,6 @@ int PushPull(TransInfo *t, const int UNUSED(mval[2])) distance = t->values[0]; - applyNDofInput(&t->ndof, &distance); - snapGrid(t, &distance); applyNumInput(&t->num, &distance); @@ -5309,8 +5246,6 @@ void initSeqSlide(TransInfo *t) t->num.flag = 0; t->num.idx_max = t->idx_max; - t->ndof.axis = 1|2; - t->snap[0] = 0.0f; t->snap[1] = floor(t->scene->r.frs_sec / t->scene->r.frs_sec_base); t->snap[2] = 10.0f; @@ -5365,7 +5300,6 @@ int SeqSlide(TransInfo *t, const int UNUSED(mval[2])) VECCOPY(t->values, tvec); } else { - applyNDofInput(&t->ndof, t->values); snapGrid(t, t->values); applyNumInput(&t->num, t->values); } @@ -5925,54 +5859,3 @@ void BIF_TransformSetUndo(char *UNUSED(str)) // TRANSFORM_FIX_ME //Trans.undostr= str; } - - -#if 0 // TRANSFORM_FIX_ME -static void NDofTransform(void) -{ - float fval[7]; - float maxval = 50.0f; // also serves as threshold - int axis = -1; - int mode = 0; - int i; - - getndof(fval); - - for(i = 0; i < 6; i++) - { - float val = fabs(fval[i]); - if (val > maxval) - { - axis = i; - maxval = val; - } - } - - switch(axis) - { - case -1: - /* No proper axis found */ - break; - case 0: - case 1: - case 2: - mode = TFM_TRANSLATION; - break; - case 4: - mode = TFM_ROTATION; - break; - case 3: - case 5: - mode = TFM_TRACKBALL; - break; - default: - printf("ndof: what we are doing here ?"); - } - - if (mode != 0) - { - initTransform(mode, CTX_NDOF); - Transform(); - } -} -#endif diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 7bdf6c909d9..0b0b22fb689 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -360,6 +360,12 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) TransInfo *t = op->customdata; + if (event->type == NDOF_MOTION) + { + // puts("transform_modal: passing through NDOF_MOTION"); + return OPERATOR_PASS_THROUGH; + } + /* XXX insert keys are called here, and require context */ t->context= C; exit_code = transformEvent(t, event); -- cgit v1.2.3 From 73417bfbb564a2e5b1b203e436994ea8b7f3c535 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 25 Jul 2011 00:03:07 +0000 Subject: spoof MOUSEMOVE after NDOF_MOTION event, added comments --- source/blender/editors/sculpt_paint/paint_stroke.c | 4 ++++ source/blender/windowmanager/intern/wm_event_system.c | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index bddb30a4262..09873566d4a 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -832,6 +832,10 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) float mouse[2]; int first= 0; + // let NDOF motion pass through to the 3D view so we can paint and rotate simultaneously! + // this isn't perfect... even when an extra MOUSEMOVE is spoofed, the stroke discards it + // since the 2D deltas are zero -- code in this file needs to be updated to use the + // post-NDOF_MOTION MOUSEMOVE if (event->type == NDOF_MOTION) return OPERATOR_PASS_THROUGH; diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ad8df1ef0bb..322cd3b5642 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1815,7 +1815,10 @@ void wm_event_do_handlers(bContext *C) /* for regions having custom cursors */ wm_paintcursor_test(C, event); } - + else if (event->type==NDOF_MOTION) { + win->addmousemove = TRUE; + } + for(sa= win->screen->areabase.first; sa; sa= sa->next) { if(wm_event_inside_i(event, &sa->totrct)) { CTX_wm_area_set(C, sa); @@ -1879,7 +1882,10 @@ void wm_event_do_handlers(bContext *C) if(doit && win->screen && win->screen->subwinactive != win->screen->mainwin) { win->eventstate->prevx= event->x; win->eventstate->prevy= event->y; + //printf("win->eventstate->prev = %d %d\n", event->x, event->y); } + else + ;//printf("not setting prev to %d %d\n", event->x, event->y); } /* store last event for this window */ @@ -1922,6 +1928,7 @@ void wm_event_do_handlers(bContext *C) /* only add mousemove when queue was read entirely */ if(win->addmousemove && win->eventstate) { wmEvent tevent= *(win->eventstate); + //printf("adding MOUSEMOVE %d %d\n", tevent.x, tevent.y); tevent.type= MOUSEMOVE; tevent.prevx= tevent.x; tevent.prevy= tevent.y; @@ -2408,6 +2415,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U update_tablet_data(win, &event); wm_event_add(win, &event); + + //printf("sending MOUSEMOVE %d %d\n", event.x, event.y); /* also add to other window if event is there, this makes overdraws disappear nicely */ /* it remaps mousecoord to other window in event */ @@ -2586,6 +2595,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U attach_ndof_data(&event, customdata); wm_event_add(win, &event); + //printf("sending NDOF_MOTION, prev = %d %d\n", event.x, event.y); + break; } -- cgit v1.2.3 From e31fef1d94c38f4701f12d7f264fe145446f08b6 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 25 Jul 2011 00:10:42 +0000 Subject: set default values for all other ndof flags --- source/blender/editors/interface/resources.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 276e1b3dc61..5f405a5f51e 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1583,8 +1583,11 @@ void init_userdef_do_versions(void) if (U.anisotropic_filter <= 0) U.anisotropic_filter = 1; - if (U.ndof_sensitivity == 0.0) + if (U.ndof_sensitivity == 0.0f) { U.ndof_sensitivity = 1.0f; + U.ndof_flag = NDOF_SHOW_GUIDE | NDOF_LOCK_HORIZON | + NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM | NDOF_SHOULD_ROTATE; + } /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); -- cgit v1.2.3 From c692351fdfe96ec396af9f9c1dfc92ae4e8ee5c6 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 25 Jul 2011 00:20:45 +0000 Subject: added option to invert axes for orbiting (part 1 of 2) --- source/blender/editors/space_view3d/view3d_edit.c | 14 ++++++++++++-- source/blender/makesdna/DNA_userdef_types.h | 11 +++++++++++ source/blender/makesrna/intern/rna_userdef.c | 6 +++++- 3 files changed, 28 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0c07df9fd01..aabacadf3db 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1019,6 +1019,8 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) if (has_rotation) { + const int invert = U.ndof_flag & NDOF_ORBIT_INVERT_AXES; + rv3d->view = RV3D_VIEW_USER; if (U.flag & USER_TRACKBALL) { @@ -1027,8 +1029,8 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) float view_inv[4], view_inv_conj[4]; ndof_to_quat(ndof, rot); - // scale by rot_sensitivity? - // mul_qt_fl(rot, rot_sensitivity); + // mul_qt_fl(rot, rot_sensitivity * (invert ? -1.f : 1.f)); + // ^^ no apparent effect invert_qt_qt(view_inv, rv3d->viewquat); copy_qt_qt(view_inv_conj, view_inv); @@ -1038,6 +1040,10 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) mul_qt_qtqt(rot, view_inv, rot); mul_qt_qtqt(rot, rot, view_inv_conj); + // if (invert) + // invert_qt(rot); + // ^^ argh!! this does something crazy + // apply rotation mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); @@ -1053,12 +1059,16 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) /* Perform the up/down rotation */ angle = rot_sensitivity * dt * ndof->rx; + if (invert) + angle = -angle; rot[0] = cos(angle); mul_v3_v3fl(rot+1, xvec, sin(angle)); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); /* Perform the orbital rotation */ angle = rot_sensitivity * dt * ndof->ry; + if (invert) + angle = -angle; rot[0] = cos(angle); rot[1] = rot[2] = 0.0; rot[3] = sin(angle); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 6fbdb9842d6..12f8cd656a0 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -589,6 +589,17 @@ extern UserDef U; /* from blenkernel blender.c */ #define NDOF_SHOULD_PAN (1 << 3) #define NDOF_SHOULD_ZOOM (1 << 4) #define NDOF_SHOULD_ROTATE (1 << 5) +/* orbit navigation modes + only two options, so it's sort of a hyrbrid bool/enum + if ((U.ndof_flag & NDOF_ORBIT_MODE) == NDOF_OM_OBJECT)... */ +/* +#define NDOF_ORBIT_MODE (1 << 6) +#define NDOF_OM_TARGETCAMERA 0 +#define NDOF_OM_OBJECT NDOF_ORBIT_MODE +*/ +/* actually... users probably don't care about what the mode + is called, just that it feels right */ +#define NDOF_ORBIT_INVERT_AXES (1 << 6) #ifdef __cplusplus diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 50b5e99804c..7a9193571fd 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2748,13 +2748,17 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Show Navigation Guide", "Display the center and axis during rotation"); /* TODO: update description when fly-mode visuals are in place ("projected position in fly mode")*/ + prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES); + RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed"); + prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_LOCK_HORIZON); RNA_def_property_ui_text(prop, "Lock Horizon", "Keep horizon level while flying with 3D Mouse"); prop= RNA_def_property(srna, "ndof_fly_helicopter", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_FLY_HELICOPTER); - RNA_def_property_ui_text(prop, "Helicopter Fly Mode", ""); + RNA_def_property_ui_text(prop, "Helicopter Mode", "Device up/down directly controls your Z position"); prop= RNA_def_property(srna, "mouse_double_click_time", PROP_INT, PROP_NONE); -- cgit v1.2.3 From ced8f1dffcb9b054d7197a21e2a0426056b2babf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 25 Jul 2011 01:44:19 +0000 Subject: deprecate multiplication orders: vector * matrix vector *= matrix vector * quaternion vector *= quaternion Use the reverse order instead, enable WITH_ASSERT_ABORT in cmake to promote the warnings into errors. --- source/blender/python/mathutils/mathutils.h | 2 + source/blender/python/mathutils/mathutils_Matrix.c | 14 +++- .../python/mathutils/mathutils_Quaternion.c | 26 ++++++- source/blender/python/mathutils/mathutils_Vector.c | 80 +++++++++++++++++++++- 4 files changed, 118 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils.h b/source/blender/python/mathutils/mathutils.h index 7454cfe78b3..b798b5e7003 100644 --- a/source/blender/python/mathutils/mathutils.h +++ b/source/blender/python/mathutils/mathutils.h @@ -108,4 +108,6 @@ int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index); int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix); int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix); +int column_vector_multiplication(float rvec[4], VectorObject *vec, MatrixObject *mat); + #endif /* MATHUTILS_H */ diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index 76a0994c3aa..3953171f263 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1612,8 +1612,20 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) } } else if(mat1) { + /*VEC * MATRIX */ + if(VectorObject_Check(m2)) { + VectorObject *vec2= (VectorObject *)m2; + float tvec[4]; + if(BaseMath_ReadCallback(vec2) == -1) + return NULL; + if(column_vector_multiplication(tvec, vec2, mat1) == -1) { + return NULL; + } + + return newVectorObject(tvec, vec2->size, Py_NEW, Py_TYPE(m2)); + } /*FLOAT/INT * MATRIX */ - if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { + else if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { return matrix_mul_float(mat1, scalar); } } diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c index 3b05b9a250b..2be258a1ef0 100644 --- a/source/blender/python/mathutils/mathutils_Quaternion.c +++ b/source/blender/python/mathutils/mathutils_Quaternion.c @@ -753,8 +753,30 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) return quat_mul_float(quat2, scalar); } } - else if (quat1) { /* QUAT*FLOAT */ - if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { + else if (quat1) { + /* QUAT * VEC */ + if (VectorObject_Check(q2)) { + VectorObject *vec2 = (VectorObject *)q2; + float tvec[3]; + + if(vec2->size != 3) { + PyErr_SetString(PyExc_ValueError, + "Vector multiplication: " + "only 3D vector rotations (with quats) " + "currently supported"); + return NULL; + } + if(BaseMath_ReadCallback(vec2) == -1) { + return NULL; + } + + copy_v3_v3(tvec, vec2->vec); + mul_qt_v3(quat1->quat, tvec); + + return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec2)); + } + /* QUAT * FLOAT */ + else if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { return quat_mul_float(quat1, scalar); } } diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index e2c958adaa5..a954c07c98d 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -37,6 +37,8 @@ #include "BLI_math.h" #include "BLI_utildefines.h" +extern void PyC_LineSpit(void); + #define MAX_DIMENSIONS 4 /* Swizzle axes get packed into a single value that is used as a closure. Each @@ -1081,7 +1083,7 @@ static PyObject *Vector_isub(PyObject *v1, PyObject *v2) * note: vector/matrix multiplication IS NOT COMMUTATIVE!!!! * note: assume read callbacks have been done first. */ -static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) +int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) { float vec_cpy[MAX_DIMENSIONS]; double dot = 0.0f; @@ -1159,8 +1161,29 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } else if (vec1) { if (MatrixObject_Check(v2)) { + extern void PyC_LineSpit(void); + /* VEC * MATRIX */ + /* this is deprecated!, use the reverse instead */ float tvec[MAX_DIMENSIONS]; + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector * Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else + printf("Warning: (Vector * Matrix) is now deprecated, " + "reverse the multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) { @@ -1183,6 +1206,24 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) if(BaseMath_ReadCallback(quat2) == -1) { return NULL; } + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector * Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else + printf("Warning: (Vector * Quat) is now deprecated, " + "reverse the multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + copy_v3_v3(tvec, vec1->vec); mul_qt_v3(quat2->quat, tvec); return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); @@ -1226,6 +1267,24 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) return NULL; + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector *= Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else + printf("Warning: (Vector *= Matrix) is now deprecated, " + "reverse the (non in-place) multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + memcpy(vec->vec, rvec, sizeof(float) * vec->size); } else if (QuaternionObject_Check(v2)) { @@ -1242,6 +1301,25 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(BaseMath_ReadCallback(quat2) == -1) { return NULL; } + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector *= Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else + printf("Warning: (Vector *= Quat) is now deprecated, " + "reverse the (non in-place) multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + mul_qt_v3(quat2->quat, vec->vec); } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ -- cgit v1.2.3 From 4b8233423bea092d5af4affe14290095dbd701ef Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Mon, 25 Jul 2011 03:13:15 +0000 Subject: invert axes option affects trackball navigation --- source/blender/editors/space_view3d/view3d_edit.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index aabacadf3db..0aceb3bc1ca 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1029,9 +1029,12 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) float view_inv[4], view_inv_conj[4]; ndof_to_quat(ndof, rot); - // mul_qt_fl(rot, rot_sensitivity * (invert ? -1.f : 1.f)); + // mul_qt_fl(rot, rot_sensitivity); // ^^ no apparent effect + if (invert) + invert_qt(rot); + invert_qt_qt(view_inv, rv3d->viewquat); copy_qt_qt(view_inv_conj, view_inv); conjugate_qt(view_inv_conj); @@ -1040,10 +1043,6 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) mul_qt_qtqt(rot, view_inv, rot); mul_qt_qtqt(rot, rot, view_inv_conj); - // if (invert) - // invert_qt(rot); - // ^^ argh!! this does something crazy - // apply rotation mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); -- cgit v1.2.3 From aec8d72ca7532ccea6daee9ff099ff3f5feafb96 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 25 Jul 2011 16:16:32 +0000 Subject: Fix #28079: UV propertional editing was incorrectly influenced by the mesh X mirror option. --- source/blender/editors/transform/transform_generics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 20a26d8c58d..6d0a978700f 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1070,7 +1070,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } } // Need stuff to take it from edit mesh or whatnot here - else + else if (t->spacetype == SPACE_VIEW3D) { if (t->obedit && t->obedit->type == OB_MESH && (((Mesh *)t->obedit->data)->editflag & ME_EDIT_MIRROR_X)) { -- cgit v1.2.3 From 5b3906728fa358fccd857cbeca85ff102df6e6c7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 25 Jul 2011 16:37:10 +0000 Subject: Fix #28035: point density texture doesn't bake. --- source/blender/render/intern/source/convertblender.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 7782077604d..b385b507707 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5778,6 +5778,14 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, if(re->r.mode & R_RAYTRACE) makeraytree(re); + /* point density texture */ + if(!re->test_break(re->tbh)) + make_pointdensities(re); + + /* voxel data texture */ + if(!re->test_break(re->tbh)) + make_voxeldata(re); + /* occlusion */ if((re->wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) && !re->test_break(re->tbh)) if(re->wrld.ao_gather_method == WO_AOGATHER_APPROX) -- cgit v1.2.3 From 72f70874bb3477a0861735d612e0c15c931ff7e5 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 26 Jul 2011 02:35:46 +0000 Subject: experimental onscreen rotation guide --- source/blender/editors/space_view3d/view3d_draw.c | 59 +++++++ source/blender/editors/space_view3d/view3d_edit.c | 206 ++++++++++++---------- source/blender/editors/space_view3d/view3d_fly.c | 2 + source/blender/makesdna/DNA_view3d_types.h | 6 +- 4 files changed, 181 insertions(+), 92 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index d2ff6eef097..f1909bb4049 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -675,6 +675,60 @@ static void draw_view_axis(RegionView3D *rv3d) glDisable(GL_BLEND); } +/* draw center and axis of rotation for ongoing 3D mouse navigation */ +static void draw_rotation_guide(RegionView3D *rv3d) +{ + float o[3]; // center of rotation + float end[3]; // endpoints for drawing + + float color[4] = {1,1,0,1}; // bright yellow so it stands out during development + + negate_v3_v3(o, rv3d->ofs); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glShadeModel(GL_SMOOTH); + glPointSize(5); + glEnable(GL_POINT_SMOOTH); + + if (rv3d->rot_angle != 0.f) { + float scaled_axis[3]; + mul_v3_v3fl(scaled_axis, rv3d->rot_axis, 3.f); + + glBegin(GL_LINE_STRIP); + color[3] = 0; // more transparent toward the ends + glColor4fv(color); + add_v3_v3v3(end, o, scaled_axis); + glVertex3fv(end); + + color[3] = 0.2f + rv3d->rot_angle; // more opaque toward the center + glColor4fv(color); + glVertex3fv(o); + + color[3] = 0; + glColor4fv(color); + sub_v3_v3v3(end, o, scaled_axis); + glVertex3fv(end); + glEnd(); + + color[3] = 1; // solid dot + } + else + color[3] = 0.5; // see-through dot + + glColor4fv(color); + glBegin(GL_POINTS); + glVertex3fv(o); + glEnd(); + + // find screen coordinates for rotation center, then draw pretty icon + // mul_m4_v3(rv3d->persinv, rot_center); + // UI_icon_draw(rot_center[0], rot_center[1], ICON_NDOF_TURN); + // ^^ just playing around, does not work + + glDisable(GL_BLEND); + glDisable(GL_POINT_SMOOTH); +} static void draw_view_icon(RegionView3D *rv3d) { @@ -2618,6 +2672,11 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) BDR_drawSketch(C); } +#if 0 // not yet... + if (U.ndof_flag & NDOF_SHOW_GUIDE) + draw_rotation_guide(rv3d); +#endif + ED_region_pixelspace(ar); // retopo_paint_view_update(v3d); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0aceb3bc1ca..75e20ad565e 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -977,101 +977,125 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - const float dt = ndof->dt; + rv3d->rot_angle = 0.f; // off by default, until changed later this function - // tune these until everything feels right - const float rot_sensitivity = 1.f; - const float zoom_sensitivity = 1.f; - const float pan_sensitivity = 1.f; - - // rather have bool, but... - int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); - - //#define DEBUG_NDOF_MOTION - #ifdef DEBUG_NDOF_MOTION - printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", - ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); - #endif - - if (ndof->tz) { - // Zoom! - // velocity should be proportional to the linear velocity attained by rotational motion of same strength - // [got that?] - // proportional to arclength = radius * angle - - float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; - rv3d->dist += zoom_distance; - } - - if (rv3d->viewlock == RV3D_LOCKED) { - /* rotation not allowed -- explore panning options instead */ + if (ndof->progress != P_FINISHING) { + const float dt = ndof->dt; + + // tune these until everything feels right + const float rot_sensitivity = 1.f; + const float zoom_sensitivity = 1.f; + const float pan_sensitivity = 1.f; + + // rather have bool, but... + int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); + float view_inv[4]; - float pan_vec[3] = {ndof->tx, ndof->ty, 0}; - mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); - - /* transform motion from view to world coordinates */ invert_qt_qt(view_inv, rv3d->viewquat); - mul_qt_v3(view_inv, pan_vec); - - /* move center of view opposite of hand motion (this is camera mode, not object mode) */ - sub_v3_v3(rv3d->ofs, pan_vec); - } - - if (has_rotation) { - - const int invert = U.ndof_flag & NDOF_ORBIT_INVERT_AXES; - - rv3d->view = RV3D_VIEW_USER; - - if (U.flag & USER_TRACKBALL) { - - float rot[4]; - float view_inv[4], view_inv_conj[4]; - - ndof_to_quat(ndof, rot); - // mul_qt_fl(rot, rot_sensitivity); - // ^^ no apparent effect - - if (invert) - invert_qt(rot); - - invert_qt_qt(view_inv, rv3d->viewquat); - copy_qt_qt(view_inv_conj, view_inv); - conjugate_qt(view_inv_conj); - - // transform rotation from view to world coordinates - mul_qt_qtqt(rot, view_inv, rot); - mul_qt_qtqt(rot, rot, view_inv_conj); - - // apply rotation - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - - } else { - /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ - float angle, rot[4]; - float xvec[3] = {1,0,0}; - - /* Determine the direction of the x vector (for rotating up and down) */ - float view_inv[4]; + + //#define DEBUG_NDOF_MOTION + #ifdef DEBUG_NDOF_MOTION + printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", + ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); + #endif + + if (ndof->tz) { + // Zoom! + // velocity should be proportional to the linear velocity attained by rotational motion of same strength + // [got that?] + // proportional to arclength = radius * angle + + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; + rv3d->dist += zoom_distance; + } + + if (rv3d->viewlock == RV3D_LOCKED) { + /* rotation not allowed -- explore panning options instead */ + float pan_vec[3] = {ndof->tx, ndof->ty, 0}; + mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); + + /* transform motion from view to world coordinates */ invert_qt_qt(view_inv, rv3d->viewquat); - mul_qt_v3(view_inv, xvec); - - /* Perform the up/down rotation */ - angle = rot_sensitivity * dt * ndof->rx; - if (invert) - angle = -angle; - rot[0] = cos(angle); - mul_v3_v3fl(rot+1, xvec, sin(angle)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - - /* Perform the orbital rotation */ - angle = rot_sensitivity * dt * ndof->ry; - if (invert) - angle = -angle; - rot[0] = cos(angle); - rot[1] = rot[2] = 0.0; - rot[3] = sin(angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + mul_qt_v3(view_inv, pan_vec); + + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, pan_vec); + } + + if (has_rotation) { + + const int invert = U.ndof_flag & NDOF_ORBIT_INVERT_AXES; + + rv3d->view = RV3D_VIEW_USER; + + if (U.flag & USER_TRACKBALL) { + float rot[4]; + #if 0 // -------------------------- Mike's nifty original version + float view_inv_conj[4]; + + ndof_to_quat(ndof, rot); + // mul_qt_fl(rot, rot_sensitivity); + // ^^ no apparent effect + + if (invert) + invert_qt(rot); + + copy_qt_qt(view_inv_conj, view_inv); + conjugate_qt(view_inv_conj); + + // transform rotation from view to world coordinates + mul_qt_qtqt(rot, view_inv, rot); + mul_qt_qtqt(rot, rot, view_inv_conj); + #else // ---------------------------------------- Mike's revised version + float axis[3]; + float angle = rot_sensitivity * ndof_to_angle_axis(ndof, axis); + + if (invert) + angle = -angle; + + // update the onscreen doo-dad + rv3d->rot_angle = angle; + copy_v3_v3(rv3d->rot_axis, axis); + + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); + + axis_angle_to_quat(rot, axis, angle); + #endif // -------------------------------------------- + // apply rotation + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + } else { + /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ + float angle, rot[4]; + float xvec[3] = {1,0,0}; + + /* Determine the direction of the x vector (for rotating up and down) */ + mul_qt_v3(view_inv, xvec); + + /* Perform the up/down rotation */ + angle = rot_sensitivity * dt * ndof->rx; + if (invert) + angle = -angle; + rot[0] = cos(angle); + mul_v3_v3fl(rot+1, xvec, sin(angle)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + + /* Perform the orbital rotation */ + angle = rot_sensitivity * dt * ndof->ry; + if (invert) + angle = -angle; + + // update the onscreen doo-dad + rv3d->rot_angle = angle; + rv3d->rot_axis[0] = 0; + rv3d->rot_axis[1] = 0; + rv3d->rot_axis[2] = 1; + + rot[0] = cos(angle); + rot[1] = rot[2] = 0.0; + rot[3] = sin(angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + } } } diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 1122438da96..c7ebc296896 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -942,6 +942,8 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); + rv3d->rot_angle = 0; // disable onscreen rotation doo-dad + if (shouldTranslate) { const float forward_sensitivity = 1.f; diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 27ffc6d856b..89b8bad2806 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -130,7 +130,11 @@ typedef struct RegionView3D { float twangle[3]; - float padf; + /* active rotation from NDOF or elsewhere */ + float rot_angle; + float rot_axis[3]; + + char pad2[4]; } RegionView3D; -- cgit v1.2.3 From 1f65b3b1a8f5ccc54a794ed0d6f8cf2d3e2c5a36 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Tue, 26 Jul 2011 06:10:05 +0000 Subject: BGE Animations: Adding a new choice for vertex deformation for armatures, which can be found in the Armature's Skeleton panel by the Deform options. Before only Blender's armature_deform_verts() was used. Now users can choose a vertex deformation function that is optimized for the BGE. At the moment it is mostly a copy of armature_deform_verts() with various chunks of code removed, and the BLI_math code was replaced with Eigen2. In my test scene, the new function offered about a 40% improvement over armature_deform_verts() (17~19ms rasterizer to 11~12ms). The only current limitation that I'm aware of if that B-Bone segments are not supported in the BGE version, and I will probably leave it out. I would like to also limit the BGE version to 4 weights to make things easier for a GPU version, but this may just make things slower (sorting weights to find the top 4). --- source/blender/makesdna/DNA_armature_types.h | 10 +++++++++- source/blender/makesrna/intern/rna_armature.c | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h index 808db1f4843..1675fdd3e90 100644 --- a/source/blender/makesdna/DNA_armature_types.h +++ b/source/blender/makesdna/DNA_armature_types.h @@ -96,7 +96,9 @@ typedef struct bArmature { void *sketch; /* sketch struct for etch-a-ton */ int flag; - int drawtype; + int drawtype; + int gevertdeformer; /* how vertex deformation is handled in the ge */ + int pad; short deformflag; short pathflag; @@ -140,6 +142,12 @@ typedef enum eArmature_Drawtype { ARM_WIRE } eArmature_Drawtype; +/* armature->gevertdeformer */ +typedef enum eArmature_VertDeformer { + ARM_VDEF_BLENDER, + ARM_VDEF_BGE_CPU +} eArmature_VertDeformer; + /* armature->deformflag */ typedef enum eArmature_DeformFlag { ARM_DEF_VGROUP = (1<<0), diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 3f58723a929..19a6b482621 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -818,6 +818,10 @@ static void rna_def_armature(BlenderRNA *brna) {ARM_ENVELOPE, "ENVELOPE", 0, "Envelope", "Display bones as extruded spheres, showing deformation influence volume"}, {ARM_WIRE, "WIRE", 0, "Wire", "Display bones as thin wires, showing subdivision and B-Splines"}, {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem prop_vdeformer[] = { + {ARM_VDEF_BLENDER, "BLENDER", 0, "Blender", "Uses Blender's armature vertex deformation"}, + {ARM_VDEF_BGE_CPU, "BGE_CPU", 0, "BGE", "Uses vertex deformation code optimized for the BGE"}, + {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_ghost_type_items[] = { {ARM_GHOST_CUR, "CURRENT_FRAME", 0, "Around Frame", "Display Ghosts of poses within a fixed number of frames around the current frame"}, {ARM_GHOST_RANGE, "RANGE", 0, "In Range", "Display Ghosts of poses within specified range"}, @@ -864,6 +868,13 @@ static void rna_def_armature(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Draw Type", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); + + prop= RNA_def_property(srna, "vert_deformer", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "gevertdeformer"); + RNA_def_property_enum_items(prop, prop_vdeformer); + RNA_def_property_ui_text(prop, "Vertex Deformer", ""); + RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); + RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); // XXX depreceated ....... old animviz for armatures only prop= RNA_def_property(srna, "ghost_type", PROP_ENUM, PROP_NONE); -- cgit v1.2.3 From 9e1a5531274e6b00b877ef924994ceae8ba956e3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Jul 2011 07:41:14 +0000 Subject: set the development cycle to 'beta'. --- source/blender/blenkernel/BKE_blender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 25fb6f9f9ff..18f6ad21333 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -53,7 +53,7 @@ extern "C" { /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR a /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE release +#define BLENDER_VERSION_CYCLE beta struct ListBase; struct MemFile; -- cgit v1.2.3 From 7c9033d606a35dd4311e9f84b06b013e5cb7712a Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 26 Jul 2011 08:13:27 +0000 Subject: Fix #28087: Opening files in the text editor ignores the last newline '\n' It was tricky conversion of file buffer to text lines. Should work fine now. --- source/blender/blenkernel/intern/text.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index da329503c9f..56723476251 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -400,7 +400,13 @@ Text *add_text(const char *file, const char *relpath) llen++; } - if (llen!=0 || ta->nlines==0) { + /* create new line in cases: + - rest of line (if last line in file hasn't got \n terminator). + in this case content of such line would be used to fill text line buffer + - file is empty. in this case new line is needed to start editing from. + - last characted in buffer is \n. in this case new line is needed to + deal with newline at end of file. (see [#28087]) (sergey) */ + if (llen!=0 || ta->nlines==0 || buffer[len-1]=='\n') { tmp= (TextLine*) MEM_mallocN(sizeof(TextLine), "textline"); tmp->line= (char*) MEM_mallocN(llen+1, "textline_string"); tmp->format= NULL; -- cgit v1.2.3 From 06ae122f604a00ebe57903439a2a0cedd0f3ffca Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Jul 2011 09:19:51 +0000 Subject: include menu ID's in tooltips when python tips are enabled, there was no way to find the ID of a menu which become annoying if you wanted to reference it from a script. --- source/blender/editors/interface/interface_regions.c | 11 +++++++++++ source/blender/makesrna/intern/rna_wm.c | 2 +- source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm.c | 6 ++++++ 4 files changed, 19 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 62043f240e4..9e7717260e6 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -484,6 +484,17 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) } } } + else if (ELEM(but->type, MENU, PULLDOWN)) { + if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) { + if(but->menu_create_func && WM_menutype_contains((MenuType *)but->poin)) { + MenuType *mt= (MenuType *)but->poin; + BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s", mt->idname); + data->color[data->totline]= 0x888888; + data->totline++; + } + } + + } assert(data->totline < MAX_TOOLTIP_LINES); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 7ea4701dec3..73221c47c90 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -940,7 +940,7 @@ static StructRNA *rna_Operator_register(Main *bmain, ReportList *reports, void * rna_Operator_unregister(bmain, ot->ext.srna); } - /* create a new menu type */ + /* create a new operator type */ dummyot.ext.srna= RNA_def_struct(&BLENDER_RNA, dummyot.idname, "Operator"); RNA_def_struct_flag(dummyot.ext.srna, STRUCT_NO_IDPROPERTIES); /* operator properties are registered separately */ dummyot.ext.data= data; diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 67294a8eb53..e6325e2101a 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -272,6 +272,7 @@ void WM_operator_py_idname(char *to, const char *from); /* *************** menu types ******************** */ struct MenuType *WM_menutype_find(const char *idname, int quiet); int WM_menutype_add(struct MenuType* mt); +int WM_menutype_contains(struct MenuType* mt); void WM_menutype_freelink(struct MenuType* mt); void WM_menutype_free(void); diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index bcd5cf38f88..a535c0bc1f8 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -175,6 +175,12 @@ int WM_menutype_add(MenuType* mt) return 1; } +/* inefficient but only used for tooltip code */ +int WM_menutype_contains(MenuType* mt) +{ + return (mt != NULL && BLI_findindex(&menutypes, mt) != -1); +} + void WM_menutype_freelink(MenuType* mt) { BLI_freelinkN(&menutypes, mt); -- cgit v1.2.3 From 77e906cbd43accb3de89d0ac922d72e1c154aee9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 26 Jul 2011 12:49:43 +0000 Subject: Experimental drawing tweak: make active F-Curve get drawn with thicker line width This should help make it stand out better from the background, though it has the risk that values may not be so clearly picked up visually --- source/blender/editors/space_graph/graph_draw.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index b5c253fdbff..ac0455392cc 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -877,6 +877,11 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri glColor4f(fcu->color[0], fcu->color[1], fcu->color[2], drawFCurveFade(fcu)); } + /* draw active F-Curve thicker than the rest to make it stand out */ + if (fcu->flag & FCURVE_ACTIVE) { + glLineWidth(2.0); + } + /* anti-aliased lines for less jagged appearance */ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); @@ -898,6 +903,7 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri /* restore settings */ setlinestyle(0); + glLineWidth(1.0); if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); -- cgit v1.2.3 From 40353fe0d841e006d11ad5833eaedbc93fc0d608 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Jul 2011 13:05:22 +0000 Subject: fix for NULL pointer crash with operator repeat, looks like error print got mixed up. --- source/blender/editors/util/undo.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index 8a6ec7f75db..a2381a208ef 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -358,19 +358,25 @@ int ED_undo_operator_repeat(bContext *C, struct wmOperator *op) ret= 1; } } + else { + if (G.f & G_DEBUG) { + printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name); + } + } /* set region back */ CTX_wm_region_set(C, ar); } else { if (G.f & G_DEBUG) { - printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name); + printf("redo_cb: ED_undo_operator_repeat called with NULL 'op'\n"); } } return ret; } + void ED_undo_operator_repeat_cb(bContext *C, void *arg_op, void *UNUSED(arg_unused)) { ED_undo_operator_repeat(C, (wmOperator *)arg_op); -- cgit v1.2.3 From 785e634c231542b5eb481946c93a3f8c65ad73a1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 26 Jul 2011 13:09:10 +0000 Subject: F-Curve Drawing - Smoother curves Bezier curves are now drawn smoother (i.e. less segmented), especially for curve segments where there is a very large vertical displacement over a short period of time (i.e. 120 degrees rotation over 1 frame) and/or often when zoomed in a bit too. - Made the resolution calculation take the vertical distance into account too, instead of just the horizontal distance. - Segment multiplier changed from 3 to 5, as this seems to give better zoomed-in performance. --- source/blender/editors/space_graph/graph_draw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index ac0455392cc..a1b8cf0df91 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -706,12 +706,11 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View * - resol determines number of points to sample in between keyframes */ - /* resol not depending on horizontal resolution anymore, drivers for example... */ - // TODO: would be nice to make this depend on the scale of the graph too... + /* resol depends on distance between points (not just horizontal) OR is a fixed high res */ if (fcu->driver) resol= 32; else - resol= (int)(3.0*sqrt(bezt->vec[1][0] - prevbezt->vec[1][0])); + resol= (int)(5.0*len_v2v2(bezt->vec[1], prevbezt->vec[1])); if (resol < 2) { /* only draw one */ @@ -721,6 +720,7 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View } else { /* clamp resolution to max of 32 */ + // NOTE: higher values will crash if (resol > 32) resol= 32; v1[0]= prevbezt->vec[1][0]; -- cgit v1.2.3 From ca293c835f15e8b0d19116456c75ba971f02e16b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Jul 2011 13:33:04 +0000 Subject: correct misc warnings --- source/blender/editors/object/object_add.c | 4 ++-- source/blender/editors/space_view3d/view3d_edit.c | 1 - source/blender/editors/transform/transform_snap.c | 5 +++++ source/blender/editors/uvedit/uvedit_ops.c | 4 ++-- source/blender/makesrna/intern/rna_object_api.c | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 7ca172c6945..f5f97c6a5f6 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -806,14 +806,14 @@ static int object_delete_exec(bContext *C, wmOperator *UNUSED(op)) { Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); - int islamp= 0; + /* int islamp= 0; */ /* UNUSED */ if(CTX_data_edit_object(C)) return OPERATOR_CANCELLED; CTX_DATA_BEGIN(C, Base*, base, selected_bases) { - if(base->object->type==OB_LAMP) islamp= 1; + /* if(base->object->type==OB_LAMP) islamp= 1; */ /* deselect object -- it could be used in other scenes */ base->object->flag &= ~SELECT; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 9ff73767b4c..d563c07baf3 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -129,7 +129,6 @@ void ED_view3d_camera_lock_sync(View3D *v3d, RegionView3D *rv3d) } else { ED_view3d_to_object(v3d->camera, rv3d->ofs, rv3d->viewquat, rv3d->dist); - root_parent= v3d->camera; DAG_id_tag_update(&v3d->camera->id, OB_RECALC_OB); WM_main_add_notifier(NC_OBJECT|ND_TRANSFORM, v3d->camera); } diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index d9d9b0f9102..a4307ea336d 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -1944,6 +1944,11 @@ static void applyGrid(TransInfo *t, float *val, int max_index, float fac[3], Gea int i; float asp[3] = {1.0f, 1.0f, 1.0f}; // TODO: Remove hard coded limit here (3) + if(max_index > 3) { + printf("applyGrid: invalid index %d, clamping\n", max_index); + max_index= 3; + } + // Early bailing out if no need to snap if (fac[action] == 0.0f) return; diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index d0393c970a6..70659994c55 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1060,8 +1060,8 @@ static void weld_align_uv(bContext *C, int tool) if(tool == 's' || tool == 't' || tool == 'u') { /* pass 1&2 variables */ int i, j; - int starttmpl= -1, connectedtostarttmpl, startcorner; - int endtmpl= -1, connectedtoendtmpl, endcorner; + int starttmpl= -1, connectedtostarttmpl= -1, startcorner; + int endtmpl= -1, connectedtoendtmpl= -1, endcorner; MTFace *startface, *endface; int itmpl, jtmpl; EditVert *eve; diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 9018fd8c71a..21fa28af01a 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -544,7 +544,7 @@ void RNA_api_object(StructRNA *srna) /* location of point for test and max distance */ parm= RNA_def_float_vector(func, "point", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); + RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); /* return location and normal */ parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The location on the object closest to the point", -1e4, 1e4); -- cgit v1.2.3 From c0373fb7ea2b6d36b57a7c43706626aa254c70b3 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 26 Jul 2011 13:49:39 +0000 Subject: startup.blend Theming/AnimEditor Defaults Tweaks - Default size of Graph Editor handle vertices is now 4 (up from 3). This "small" change seems to be enough to make a substantial difference when it comes to actually differentiating between these - "Only Selected" DopeSheet filter is enabled for new Graph Editor instances by default. It helps hone in on the F-Curves of the data most animators hope to just be refining the motion for (i.e. the selected stuff) - "Only Selected Keyframe Handles" is now enabled, to reduce clutter from handles of nearby keys getting in the way. --- source/blender/editors/datafiles/startup.blend.c | 13932 +++++++++++---------- source/blender/editors/space_graph/graph_draw.c | 2 + source/blender/editors/space_graph/space_graph.c | 4 + 3 files changed, 6975 insertions(+), 6963 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index 2d59e59644d..dc92d3541b5 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -1,961 +1,955 @@ /* DataToC output of file */ -int datatoc_startup_blend_size= 341924; +int datatoc_startup_blend_size= 342096; char datatoc_startup_blend[]= { - 66, 76, 69, 78, - 68, 69, 82, 95, 86, 50, 53, 56, 82, 69, 78, 68, 0, 0, 0, 32,191,255,232, 80, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0,250, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, - 0, 0, 1, 24,191,255,231, 72, 0, 0, 0,199, 0, 0, 0, 1, 32, 32, 32, 49, 0, 1, 0, 0, 0,250, 0, 0, 0, 1, 1, 0, - 11, 29,167, 48, 2,154,244, 32, 0, 0, 16, 0, 0, 4, 32,128, 0, 0,147,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 0,168, 9,244,203, 64, 0, 0, 1,106, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,204, 16, 9,244,204, 16, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 21,221, 16, 11, 21,221, 16, 11, 21,221, 16, 9,244, 44,224, 9,244, 44,224, - 9,244, 44,224, 68, 65, 84, 65, 0, 0, 0,148, 9,244,204, 16, 0, 0, 1,107, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 4,209, 70, 96, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,167, 48, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 96, 7,128, 4,128, 0, 0, 0, 0, - 0, 0, 3,238, 0, 0, 0, 0, 0, 0, 0, 0, 4,209,201,176, 9,244, 47,144, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 9,253,196,128, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 46,160, 9,244, 45,192, 9,244, 46, 48, 9,244, 46, 48, 9,244, 47,144, - 9,244, 76,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,244,204,208, 0, 0, 0,193, 0, 0, 0, 1, - 9,245, 11, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,242,109,144, 4,211,174, 48, 11, 31,150, 32, - 9,244,210,208, 9,244,211, 16, 9,245, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242,109,144, - 0, 0, 0,194, 0, 0, 0, 1, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 30, 31,240, 0, 0, 0,194, 0, 0, 0, 1, 11, 22,202, 48, 9,242,109,144, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 22,202, 48, 0, 0, 0,194, 0, 0, 0, 1, 11, 23, 73,224, 11, 30, 31,240, - 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 23, 73,224, 0, 0, 0,194, 0, 0, 0, 1, - 9,253,198, 16, 11, 22,202, 48, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,198, 16, - 0, 0, 0,194, 0, 0, 0, 1, 9,249, 51, 0, 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 9,249, 51, 0, 0, 0, 0,194, 0, 0, 0, 1, 4,211,186, 80, 9,253,198, 16, 0, 0, 0, 0, 7,126, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,186, 80, 0, 0, 0,194, 0, 0, 0, 1, 12, 96, 12, 32, 9,249, 51, 0, - 0, 0, 0, 0, 6, 52, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 12, 96, 12, 32, 0, 0, 0,194, 0, 0, 0, 1, - 9,202,233,240, 4,211,186, 80, 0, 0, 0, 0, 6, 52, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,202,233,240, - 0, 0, 0,194, 0, 0, 0, 1, 11, 29,185,144, 12, 96, 12, 32, 0, 0, 0, 0, 6, 52, 1,184, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 29,185,144, 0, 0, 0,194, 0, 0, 0, 1, 9,254, 80, 80, 9,202,233,240, 0, 0, 0, 0, 7,126, 1,184, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,254, 80, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,203, 26,208, 11, 29,185,144, - 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,203, 26,208, 0, 0, 0,194, 0, 0, 0, 1, - 11, 21,219,240, 9,254, 80, 80, 0, 0, 0, 0, 6, 52, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 21,219,240, - 0, 0, 0,194, 0, 0, 0, 1, 11, 29,143, 96, 9,203, 26,208, 0, 0, 0, 0, 2,164, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 29,143, 96, 0, 0, 0,194, 0, 0, 0, 1, 9,251,242,176, 11, 21,219,240, 0, 0, 0, 0, 2,164, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,251,242,176, 0, 0, 0,194, 0, 0, 0, 1, 9,253,135, 0, 11, 29,143, 96, - 0, 0, 0, 0, 0, 0, 1,108, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,135, 0, 0, 0, 0,194, 0, 0, 0, 1, - 11, 21,225, 32, 9,251,242,176, 0, 0, 0, 0, 2,164, 1,108, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 21,225, 32, - 0, 0, 0,194, 0, 0, 0, 1, 4,211,174, 48, 9,253,135, 0, 0, 0, 0, 0, 6, 52, 3, 32, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,174, 48, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 21,225, 32, 0, 0, 0, 0, 7,126, 3, 32, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 31,150, 32, 0, 0, 0,195, 0, 0, 0, 1, 11, 21,228, 64, 0, 0, 0, 0, - 11, 22,202, 48, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,228, 64, 0, 0, 0,195, - 0, 0, 0, 1, 11, 31,155,192, 11, 31,150, 32, 9,253,198, 16, 11, 30, 31,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 31,155,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 21,220,128, 11, 21,228, 64, 9,249, 51, 0, 11, 22,202, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,220,128, 0, 0, 0,195, 0, 0, 0, 1, 9,254, 98,224, - 11, 31,155,192, 9,249, 51, 0, 9,253,198, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,254, 98,224, - 0, 0, 0,195, 0, 0, 0, 1, 11, 21,221,208, 11, 21,220,128, 4,211,186, 80, 9,242,109,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 21,221,208, 0, 0, 0,195, 0, 0, 0, 1, 9,254, 86,192, 9,254, 98,224, 4,211,186, 80, - 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,254, 86,192, 0, 0, 0,195, 0, 0, 0, 1, - 9,244,205,144, 11, 21,221,208, 9,249, 51, 0, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,244,205,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,205,208, 9,254, 86,192, 4,211,186, 80, 9,202,233,240, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,205,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206, 16, 9,244,205,144, - 11, 23, 73,224, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206, 16, 0, 0, 0,195, - 0, 0, 0, 1, 9,244,206, 80, 9,244,205,208, 9,202,233,240, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,244,206, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206,144, 9,244,206, 16, 9,242,109,144, 9,254, 80, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,206,208, - 9,244,206, 80, 9,203, 26,208, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,206,208, - 0, 0, 0,195, 0, 0, 0, 1, 9,244,207, 16, 9,244,206,144, 4,211,186, 80, 9,203, 26,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,244,207, 80, 9,244,206,208, 9,203, 26,208, - 9,254, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207, 80, 0, 0, 0,195, 0, 0, 0, 1, - 9,244,207,144, 9,244,207, 16, 9,254, 80, 80, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,244,207,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,207,208, 9,244,207, 80, 9,203, 26,208, 11, 21,219,240, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,207,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208, 16, 9,244,207,144, - 9,253,198, 16, 11, 29,143, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208, 16, 0, 0, 0,195, - 0, 0, 0, 1, 9,244,208, 80, 9,244,207,208, 11, 29,143, 96, 12, 96, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,244,208, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208,144, 9,244,208, 16, 11, 21,219,240, 11, 29,143, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,208,208, - 9,244,208, 80, 9,251,242,176, 9,254, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,208,208, - 0, 0, 0,195, 0, 0, 0, 1, 9,244,209, 16, 9,244,208,144, 9,253,135, 0, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,244,209, 80, 9,244,208,208, 9,251,242,176, - 9,253,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209, 80, 0, 0, 0,195, 0, 0, 0, 1, - 9,244,209,144, 9,244,209, 16, 9,202,233,240, 11, 21,225, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,244,209,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,209,208, 9,244,209, 80, 11, 21,225, 32, 12, 96, 12, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,209,208, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210, 16, 9,244,209,144, - 4,211,174, 48, 9,249, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210, 16, 0, 0, 0,195, - 0, 0, 0, 1, 9,244,210, 80, 9,244,209,208, 4,211,174, 48, 11, 29,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,244,210, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210,144, 9,244,210, 16, 4,211,174, 48, 11, 21,225, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210,144, 0, 0, 0,195, 0, 0, 0, 1, 9,244,210,208, - 9,244,210, 80, 9,251,242,176, 9,253,198, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,244,210,208, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,210,144, 9,253,135, 0, 11, 29,143, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 9,244,211, 16, 0, 0, 0,197, 0, 0, 0, 1, 9,244,213,224, 0, 0, 0, 0, 9,253,198, 16, - 11, 30, 31,240, 11, 22,202, 48, 9,249, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, - 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 9,245, 10,176, 9,245, 10,176, 9,244,211,160, - 9,244,212,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,211,160, - 0, 0, 0,198, 0, 0, 0, 1, 9,244,212,192, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, - 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,244,212,192, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,211,160, 0, 0, 0, 0, - 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, - 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,213,224, 0, 0, 0,197, 0, 0, 0, 1, - 9,244,234,240, 9,244,211, 16, 4,211,186, 80, 9,202,233,240, 11, 29,185,144, 11, 23, 73,224, 0, 0, 0, 0, 0, 0, 6, 53, - 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 1,183, 4, 4, 1, 74, 1,184, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244,233,240, 9,244,233,240, 9,244,214,112, 9,244,215,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,244,214,112, 0, 0, 0,198, 0, 0, 0, 1, 9,244,215,144, 0, 0, 0, 0, 0, 0, 0, 0, - 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 25, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 26, 1, 74, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 1,158, 0, 0, 1,183, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,215,144, 0, 0, 0,198, 0, 0, 0, 1, - 0, 0, 0, 0, 9,244,214,112, 0, 0, 0, 0, 67,165, 0, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,156,128, 1, -195,207, 0, 1, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 1, 62, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 74, - 1,158, 1, 57, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 0, 0, - 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244,216,176, 9,244,232,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 9,244,216,176, 0, 0, 0,196, 0, 0, 0, 1, 9,244,218, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, - 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, - 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116, -101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,220, - 1, 57, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,218, 32, 0, 0, 0,196, 0, 0, 0, 1, - 9,244,219,144, 9,244,216,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 57, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,244,219,144, 0, 0, 0,196, 0, 0, 0, 1, 9,244,221, 0, 9,244,218, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,255,111, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,221, 0, - 0, 0, 0,196, 0, 0, 0, 1, 9,244,222,112, 9,244,219,144, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 76, 69, 78, 68, 69, 82, 95,118, 50, 53, 56, 82, 69, 78, 68, + 32, 0, 0, 0, 44,243, 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 24, 1, 0, 0, 20,242, 34, 0,199, 0, 0, 0, + 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,184,250,213, 2,144, 1,228, 2, 0, 16, 0, 0, +128, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, +168, 0, 0, 0, 64,192,225, 2,107, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,248,213, 2, 96,248,213, 2, 96,248,213, 2, 96,248,213, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,247,213, 2,152,247,213, 2,152,247,213, 2, 64,254,215, 2, 64,254,215, 2, 64,254,215, 2, 68, 65, 84, 65,148, 0, 0, 0, + 96,248,213, 2,108, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,238,214, 2, 1, 0, 0, 0, 0, 0, 0, 0, +184,250,213, 2, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,240, 4,222, 2, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, 1, 0, 0, 0, +112,103,215, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,208,132,246, 3,120,197, 5, 4,120,197, 5, 4, +192, 24,216, 2,208, 23,216, 2, 72, 24,216, 2, 72, 24,216, 2,168, 80, 3, 4,248, 85, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 78, 0, 0,148, 0, 0, 0, 40,249,213, 2,193, 0, 0, 0, 1, 0, 0, 0,240,249,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,203,205, 2,120,193,225, 2,192,193,225, 2,160,201,225, 2,128, 81,215, 2,112, 85,215, 2, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,238, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48,203,205, 2,194, 0, 0, 0, 1, 0, 0, 0,120,203,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,120,203,205, 2,194, 0, 0, 0, + 1, 0, 0, 0,192,203,205, 2, 48,203,205, 2, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +192,203,205, 2,194, 0, 0, 0, 1, 0, 0, 0, 8,204,205, 2,120,203,205, 2, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 8,204,205, 2,194, 0, 0, 0, 1, 0, 0, 0, 80,204,205, 2,192,203,205, 2, 0, 0, 0, 0, +240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 80,204,205, 2,194, 0, 0, 0, 1, 0, 0, 0,152,204,205, 2, + 8,204,205, 2, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,204,205, 2,194, 0, 0, 0, + 1, 0, 0, 0,224,204,205, 2, 80,204,205, 2, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +224,204,205, 2,194, 0, 0, 0, 1, 0, 0, 0, 40,205,205, 2,152,204,205, 2, 0, 0, 0, 0, 24, 4, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 40,205,205, 2,194, 0, 0, 0, 1, 0, 0, 0,112,205,205, 2,224,204,205, 2, 0, 0, 0, 0, + 24, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112,205,205, 2,194, 0, 0, 0, 1, 0, 0, 0,184,205,205, 2, + 40,205,205, 2, 0, 0, 0, 0, 24, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184,205,205, 2,194, 0, 0, 0, + 1, 0, 0, 0, 0,206,205, 2,112,205,205, 2, 0, 0, 0, 0,240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 0,206,205, 2,194, 0, 0, 0, 1, 0, 0, 0, 72,206,205, 2,184,205,205, 2, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 72,206,205, 2,194, 0, 0, 0, 1, 0, 0, 0,144,206,205, 2, 0,206,205, 2, 0, 0, 0, 0, + 24, 4, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144,206,205, 2,194, 0, 0, 0, 1, 0, 0, 0,216,206,205, 2, + 72,206,205, 2, 0, 0, 0, 0,192, 1, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216,206,205, 2,194, 0, 0, 0, + 1, 0, 0, 0, 32,207,205, 2,144,206,205, 2, 0, 0, 0, 0,192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 32,207,205, 2,194, 0, 0, 0, 1, 0, 0, 0,104,207,205, 2,216,206,205, 2, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,104,207,205, 2,194, 0, 0, 0, 1, 0, 0, 0, 48,193,225, 2, 32,207,205, 2, 0, 0, 0, 0, +192, 1, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48,193,225, 2,194, 0, 0, 0, 1, 0, 0, 0,120,193,225, 2, +104,207,205, 2, 0, 0, 0, 0, 24, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,120,193,225, 2,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 48,193,225, 2, 0, 0, 0, 0,240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +192,193,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 8,194,225, 2, 0, 0, 0, 0,120,203,205, 2,192,203,205, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,194,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 80,194,225, 2,192,193,225, 2, +120,203,205, 2, 80,204,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,194,225, 2,195, 0, 0, 0, + 1, 0, 0, 0,152,194,225, 2, 8,194,225, 2,192,203,205, 2,152,204,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,152,194,225, 2,195, 0, 0, 0, 1, 0, 0, 0,224,194,225, 2, 80,194,225, 2, 80,204,205, 2,152,204,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,194,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 40,195,225, 2, +152,194,225, 2, 48,203,205, 2,224,204,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40,195,225, 2, +195, 0, 0, 0, 1, 0, 0, 0,112,195,225, 2,224,194,225, 2, 8,204,205, 2,224,204,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,112,195,225, 2,195, 0, 0, 0, 1, 0, 0, 0,184,195,225, 2, 40,195,225, 2,152,204,205, 2, + 40,205,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,195,225, 2,195, 0, 0, 0, 1, 0, 0, 0, + 0,196,225, 2,112,195,225, 2,224,204,205, 2,112,205,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 0,196,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 72,196,225, 2,184,195,225, 2, 8,204,205, 2,184,205,205, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,196,225, 2,195, 0, 0, 0, 1, 0, 0, 0,144,196,225, 2, 0,196,225, 2, +112,205,205, 2,184,205,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,196,225, 2,195, 0, 0, 0, + 1, 0, 0, 0,216,196,225, 2, 72,196,225, 2, 48,203,205, 2, 0,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,216,196,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 32,197,225, 2,144,196,225, 2, 40,205,205, 2, 72,206,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,197,225, 2,195, 0, 0, 0, 1, 0, 0, 0,104,197,225, 2, +216,196,225, 2,224,204,205, 2, 72,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,197,225, 2, +195, 0, 0, 0, 1, 0, 0, 0,176,197,225, 2, 32,197,225, 2, 0,206,205, 2, 72,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,176,197,225, 2,195, 0, 0, 0, 1, 0, 0, 0,248,197,225, 2,104,197,225, 2, 0,206,205, 2, +144,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,197,225, 2,195, 0, 0, 0, 1, 0, 0, 0, + 64,198,225, 2,176,197,225, 2, 72,206,205, 2,144,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 64,198,225, 2,195, 0, 0, 0, 1, 0, 0, 0,136,198,225, 2,248,197,225, 2, 80,204,205, 2,216,206,205, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,198,225, 2,195, 0, 0, 0, 1, 0, 0, 0,208,198,225, 2, 64,198,225, 2, + 40,205,205, 2,216,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,198,225, 2,195, 0, 0, 0, + 1, 0, 0, 0, 24,199,225, 2,136,198,225, 2,144,206,205, 2,216,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 24,199,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 96,199,225, 2,208,198,225, 2, 0,206,205, 2, 32,207,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,199,225, 2,195, 0, 0, 0, 1, 0, 0, 0,168,199,225, 2, + 24,199,225, 2,144,206,205, 2,104,207,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,199,225, 2, +195, 0, 0, 0, 1, 0, 0, 0,240,199,225, 2, 96,199,225, 2, 32,207,205, 2,104,207,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,240,199,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 56,200,225, 2,168,199,225, 2,112,205,205, 2, + 48,193,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,200,225, 2,195, 0, 0, 0, 1, 0, 0, 0, +128,200,225, 2,240,199,225, 2, 40,205,205, 2, 48,193,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +128,200,225, 2,195, 0, 0, 0, 1, 0, 0, 0,200,200,225, 2, 56,200,225, 2,152,204,205, 2,120,193,225, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,200,200,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 16,201,225, 2,128,200,225, 2, +184,205,205, 2,120,193,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16,201,225, 2,195, 0, 0, 0, + 1, 0, 0, 0, 88,201,225, 2,200,200,225, 2, 48,193,225, 2,120,193,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 88,201,225, 2,195, 0, 0, 0, 1, 0, 0, 0,160,201,225, 2, 16,201,225, 2, 80,204,205, 2, 32,207,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,201,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 88,201,225, 2,216,206,205, 2,104,207,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,128, 81,215, 2, +197, 0, 0, 0, 1, 0, 0, 0, 16, 82,215, 2, 0, 0, 0, 0, 80,204,205, 2,120,203,205, 2,192,203,205, 2,152,204,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, + 7, 0, 0, 0,136,129,206, 2,216,232,220, 2,216,232,220, 2, 24,213,225, 2, 64,214,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, +136, 69, 6, 4,232, 69, 6, 4, 68, 65, 84, 65,248, 0, 0, 0, 24,213,225, 2,198, 0, 0, 0, 1, 0, 0, 0, 64,214,225, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64,214,225, 2, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24,213,225, 2, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, + 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 63,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 0, 0, 0, 16, 82,215, 2,197, 0, 0, 0, 1, 0, 0, 0,160, 82,215, 2,128, 81,215, 2,224,204,205, 2, +112,205,205, 2,184,205,205, 2, 8,204,205, 2, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, + 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,127,206, 2,248,234,225, 2,248,234,225, 2,104,215,225, 2, +144,216,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 72, 70, 6, 4, 8, 71, 6, 4, 68, 65, 84, 65,248, 0, 0, 0,104,215,225, 2, +198, 0, 0, 0, 1, 0, 0, 0,144,216,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, + 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0, +240, 4, 0, 0, 34, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,144,216,225, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104,215,225, 2, 0, 0, 0, 0, + 0, 0, 88, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 71, 67, 1, 0,145,195, 0, 0, 0, 0,199, 0, 0, 0, +216, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +198, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,216, 0, 34, 1,199, 0, 34, 1, 0, 0,112,106,244, 3, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 62,206, 2, 0, 0, 0, 0, 0, 0, 0, 0,184,217,225, 2,136,233,225, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,184,217,225, 2,196, 0, 0, 0, 1, 0, 0, 0, + 40,219,225, 2, 0, 0, 0, 0,104,128,206, 2, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, +120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, +120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,199, 0, 36, 0, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0, 40,219,225, 2,196, 0, 0, 0, 1, 0, 0, 0,152,220,225, 2,184,217,225, 2,208, 0,222, 2, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,220,225, 2, +196, 0, 0, 0, 1, 0, 0, 0, 8,222,225, 2, 40,219,225, 2,248, 1,222, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, -110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, 1, 57, 0,203, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,199, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,222,112, 0, 0, 0,196, 0, 0, 0, 1, 9,244,223,224, - 9,244,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 57, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,222,225, 2,196, 0, 0, 0, 1, 0, 0, 0,120,223,225, 2, +152,220,225, 2, 32, 3,222, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 9,244,223,224, 0, 0, 0,196, 0, 0, 0, 1, 9,244,225, 80, 9,244,222,112, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,254, 34, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0,120,223,225, 2,196, 0, 0, 0, 1, 0, 0, 0,232,224,225, 2, 8,222,225, 2, 72, 4,222, 2, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,225, 80, 0, 0, 0,196, - 0, 0, 0, 1, 9,244,226,192, 9,244,223,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, + 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1, 57, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58,254,199, 0, 58, 0, 20, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,226,192, 0, 0, 0,196, 0, 0, 0, 1, 9,244,228, 48, 9,244,225, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,232,224,225, 2,196, 0, 0, 0, + 1, 0, 0, 0, 88,226,225, 2,120,223,225, 2, 80, 78,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, +116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, +111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, + 4, 0, 10, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88,226,225, 2,196, 0, 0, 0, 1, 0, 0, 0,200,227,225, 2,232,224,225, 2, +120, 79,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 9,244,228, 48, 0, 0, 0,196, 0, 0, 0, 1, 9,244,229,160, 9,244,226,192, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, - 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,218, - 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,229,160, 0, 0, 0,196, 0, 0, 0, 1, - 9,244,231, 16, 9,244,228, 48, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +200,227,225, 2,196, 0, 0, 0, 1, 0, 0, 0, 56,229,225, 2, 88,226,225, 2,160, 80,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, +199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 56,229,225, 2,196, 0, 0, 0, 1, 0, 0, 0, +168,230,225, 2,200,227,225, 2,200, 81,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112, +114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112, +114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 10, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,244,231, 16, 0, 0, 0,196, 0, 0, 0, 1, 9,244,232,128, 9,244,229,160, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,168,230,225, 2,196, 0, 0, 0, 1, 0, 0, 0, 24,232,225, 2, 56,229,225, 2,240, 82,217, 2, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,253, 40, 1, 57, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,232,128, - 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,231, 16, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 24,232,225, 2, +196, 0, 0, 0, 1, 0, 0, 0,136,233,225, 2,168,230,225, 2, 24, 84,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, 1, 57, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 9,244,233,240, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,234,240, - 0, 0, 0,197, 0, 0, 0, 1, 9,244,238,176, 9,244,213,224, 9,242,109,144, 9,254, 80, 80, 9,203, 26,208, 4,211,186, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0,123, 15, 15, 6, 52, 0,124, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9,244,237,192, 9,244,237,192, 9,244,235,128, 9,244,236,160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,235,128, 0, 0, 0,198, 0, 0, 0, 1, 9,244,236,160, - 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,198,128, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 25, 68,198, 96, 0, 65,200, 0, 0, 68,198, 96, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 52, 0, 26, 6, 52, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,236,160, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,235,128,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, -192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 51, 0, 0, 0, 18, 0, 0, 0, 97, - 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, - 0, 4, 4, 0, 0, 8, 6, 52, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 51, 0, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52, 0, 98, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,188, 9,244,237,192, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,199, 0,130, 0, + 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,136,233,225, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 24,232,225, 2,104, 86,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,238,176, 0, 0, 0,197, - 0, 0, 0, 1, 9,244,243,176, 9,244,234,240, 9,202,233,240, 11, 21,225, 32, 4,211,174, 48, 11, 29,185,144, 0, 0, 0, 0, - 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 1,185, 0, 0, 3, 31, 3, 3, 1, 74, 1,103, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244,241,128, 9,244,241,128, 9,244,239, 64, 9,244,240, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,239, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,244,240, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 25, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 26, 1, 74, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 6, 0, 0, 3, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,240, 96, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 9,244,239, 64, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,156,128, 0,195,157,128, 0, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 18, 0, 0, 1, 76, 0, 0, 0, 0, - 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 18, 0, 0, 1, 76, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, - 0, 6, 1, 74, 1, 77, 1, 57, 1, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, - 0, 0, 1,185, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1, 77, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,244, 9,244,241,128, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,242,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 9,244,242,160, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, - 9,244,242,224, 68, 65, 84, 65, 0, 0, 0,168, 9,244,242,224, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 1, - 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 21, 0, 1, - 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, 2,174, 10, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, 0, 0, 0, 0, - 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, 2,154,244, 32, - 68, 65, 84, 65, 0, 0, 0, 96, 9,244,243,176, 0, 0, 0,197, 0, 0, 0, 1, 9,244,251, 0, 9,244,238,176, 11, 21,219,240, - 11, 29,143, 96, 12, 96, 12, 32, 9,203, 26,208, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,125, 0, 0, 3,233, - 1, 1, 3,143, 3,109, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244,249,224, 9,244,249,224, 9,244,244, 64, - 9,244,248,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,244, 64, - 0, 0, 0,198, 0, 0, 0, 1, 9,244,245, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 99,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,142, 0, 0, 0, 0, 0, 0, 0, 25, - 68, 99,128, 0, 65,200, 0, 0, 68, 99,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 0, 12, 0, 10, 3,143, 0, 26, 3,143, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, - 0, 0, 6, 51, 0, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 0, 26, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,244,245, 96, 0, 0, 0,198, 0, 0, 0, 1, 9,244,246,128, 9,244,244, 64, 0, 0, 0, 0, - 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, - 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 2,165, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 83, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,246,128, 0, 0, 0,198, 0, 0, 0, 1, - 9,244,247,160, 9,244,245, 96, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231, -194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, - 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,151, - 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, +216, 0, 0, 0,248,234,225, 2,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,240,182,243, 3,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,160, 82,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 48, 83,215, 2, + 16, 82,215, 2, 48,203,205, 2, 0,206,205, 2, 72,206,205, 2,224,204,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,107,206, 2, 80,238,225, 2, + 80,238,225, 2, 0,236,225, 2, 40,237,225, 2, 0, 0, 0, 0, 0, 0, 0, 0,104, 71, 6, 4, 40, 72, 6, 4, 68, 65, 84, 65, +248, 0, 0, 0, 0,236,225, 2,198, 0, 0, 0, 1, 0, 0, 0, 40,237,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, + 0, 0, 0, 0, 0, 0,208, 65, 39,182,158, 55, 0, 0,131, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,130, 68, 0, 0,200, 65, 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224, 52,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,237,225, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0,236,225, 2, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 24, 4, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 52,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0, 80,238,225, 2, +173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 48, 83,215, 2,197, 0, 0, 0, 1, 0, 0, 0,192, 83,215, 2,160, 82,215, 2, +112,205,205, 2, 48,193,225, 2,120,193,225, 2,184,205,205, 2, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, + 59, 2, 0, 0, 3, 3,216, 0,255, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,106,206, 2,144,241,225, 2,144,241,225, 2, + 64,239,225, 2,104,240,225, 2, 0, 0, 0, 0, 0, 0, 0, 0,136, 72, 6, 4, 72, 73, 6, 4, 68, 65, 84, 65,248, 0, 0, 0, + 64,239,225, 2,198, 0, 0, 0, 1, 0, 0, 0,104,240,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, + 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 4, 0, 0,240, 4, 0, 0, 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 51,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,104,240,225, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,239,225, 2, + 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 67, 0, 0, 83,195, 0, 0, 0, 0, +199, 0, 0, 0,216, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,198, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,216, 0,229, 0,199, 0,211, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 51,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,244, 0, 0, 0,144,241,225, 2,166, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 81,224, 3, 72, 81,224, 3, + 48,237,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0, + 48,237,205, 2,221, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,184,242,225, 2, 68, 65, 84, 65,168, 0, 0, 0, +184,242,225, 2,220, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,144, 1,228, 2, 19, 0, 0, 0, 1, 0, 1, 0, +144, 1,228, 2, 20, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 21, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, + 1, 0, 1, 0,240, 10,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,240, 16,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 30,221, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 32, 26,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 8, 97,223, 2, 0, 0, 0, 0, 1, 0, 1, 0, +192, 21,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 80, 9,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 12,228, 2, 0, 0, 0, 0, + 1, 0, 1, 0,184, 8,228, 2, 21, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 68, 65, 84, 65, 96, 0, 0, 0,192, 83,215, 2, +197, 0, 0, 0, 1, 0, 0, 0, 80, 84,215, 2, 48, 83,215, 2,144,206,205, 2,216,206,205, 2, 40,205,205, 2, 72,206,205, 2, + 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,194, 2, 0, 0, 1, 1, 87, 2,106, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,108,206, 2, 96,150,206, 2, 96,150,206, 2,144,243,225, 2, 56,149,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, +168, 73, 6, 4,136, 75, 6, 4, 68, 65, 84, 65,248, 0, 0, 0,144,243,225, 2,198, 0, 0, 0, 1, 0, 0, 0,192,145,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 55,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,192,145,206, 2, +198, 0, 0, 0, 1, 0, 0, 0,232,146,206, 2,144,243,225, 2, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, +193, 1, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 80, 2, + 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 54,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,232,146,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 16,148,206, 2,192,145,206, 2, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 55,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16,148,206, 2,198, 0, 0, 0, 1, 0, 0, 0, + 56,149,206, 2,232,146,206, 2, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 56,149,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16,148,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 53,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +184,244,225, 2, 68, 65, 84, 65, 68, 3, 0, 0,184,244,225, 2,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,167,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,209,162,227,190, + 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, + 64,185, 70,188, 0, 0, 82,180, 48,221,185,190, 44, 45, 51, 62, 28, 11, 79, 63, 0, 0, 56,179, 67,108,117,194,183,204,216, 65, +105,156, 5,194,212,247,159,192,235, 62,114, 66, 59,254,213,193,158,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,209,162,227,190, + 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 12,163, 91, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,236, 15, 72, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 86,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0, 96,150,206, 2,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, + 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 0, 0, 0, 80, 84,215, 2,197, 0, 0, 0, 1, 0, 0, 0,224, 84,215, 2,192, 83,215, 2, 0,206,205, 2, + 32,207,205, 2,104,207,205, 2,144,206,205, 2, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0, 3, 1, 0, 0, + 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,113,206, 2, 48,248,225, 2, 48,248,225, 2,136,151,206, 2, + 0,155,206, 2, 0, 0, 0, 0, 0, 0, 0, 0,232, 75, 6, 4,104, 77, 6, 4, 68, 65, 84, 65,248, 0, 0, 0,136,151,206, 2, +198, 0, 0, 0, 1, 0, 0, 0,176,152,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +191, 1, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 56,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,176,152,206, 2,198, 0, 0, 0, 1, 0, 0, 0,216,153,206, 2,136,151,206, 2, 0, 0, 0, 0, + 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0, +217, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 57,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,153,206, 2,198, 0, 0, 0, 1, 0, 0, 0, + 0,155,206, 2,176,152,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,191, 1, 0, 0,115, 0, 0, 0, + 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 57,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 0,155,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,153,206, 2, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, + 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0, +144, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +217, 0, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 56,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 48,248,225, 2,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,114, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0, 48,114, 40, 0, 20, 1, 0, 0, 1, 0, 0, 0,144, 1,228, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,224, 84,215, 2, +197, 0, 0, 0, 1, 0, 0, 0,112, 85,215, 2, 80, 84,215, 2, 32,207,205, 2, 80,204,205, 2,216,206,205, 2,104,207,205, 2, + 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0,194, 2, 0, 0, 12, 12,192, 1,190, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,166,206, 2,184, 26,221, 2,184, 26,221, 2, 40,156,206, 2,120,158,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, +200, 77, 6, 4,232, 78, 6, 4, 68, 65, 84, 65,248, 0, 0, 0, 40,156,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 80,157,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 94, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, 30, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 69,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80,157,206, 2, +198, 0, 0, 0, 1, 0, 0, 0,120,158,206, 2, 40,156,206, 2, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, + 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,164, 1, + 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,198,206, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,120,158,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80,157,206, 2, 0, 0, 32,193, + 0, 0,104, 68, 0, 0, 72,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, 0, 0, 0, 0,231, 0, 0, 0, +248, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +230, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, + 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 68,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184, 26,221, 2, 21, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +112, 85,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224, 84,215, 2, 48,193,225, 2, 40,205,205, 2,152,204,205, 2, +120,193,225, 2, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0,134, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,108,206, 2,240,161,206, 2,240,161,206, 2,160,159,206, 2,200,160,206, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 79, 6, 4, 8, 80, 6, 4, 68, 65, 84, 65,248, 0, 0, 0,160,159,206, 2,198, 0, 0, 0, 1, 0, 0, 0, +200,160,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, + 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, + 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, + 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0, + 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 55,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +200,160,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160,159,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 53,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,249,225, 2, 68, 65, 84, 65, 68, 3, 0, 0, 48,249,225, 2,156, 0, 0, 0, 1, 0, 0, 0, 56,255, 13, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,100, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 86,126,162,190, + 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, + 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63, +160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190,229,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, + 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191, +244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64, + 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,149, 70,158, 62, 24,234,167, 62, +192,214,159,187, 0, 0, 6,181,196,188,181,189, 71,238,178, 61,127, 45,128, 62, 0, 0,226, 51,168,120, 21,194,107, 5, 2, 66, +203,135,213,193,147,214,159,192,177, 38, 19, 66,124,173,255,193, 96,101,210, 65,128, 40,160, 64,221,149, 47, 63, 86,126,162,190, + 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, + 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191, +244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64, + 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,102,103, 97, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, + 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,191,136, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, 99,212, 90, 66, 27,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0,240,161,206, 2,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, + 8, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 78, 0, 0,148, 0, 0, 0,240,249,213, 2,193, 0, 0, 0, 1, 0, 0, 0,184,250,213, 2, 40,249,213, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232,201,225, 2,144,205,225, 2,216,205,225, 2,144,255,225, 2, 0, 86,215, 2,208, 88,215, 2, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,232,201,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 48,202,225, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48,202,225, 2,194, 0, 0, 0, + 1, 0, 0, 0,120,202,225, 2,232,201,225, 2, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +120,202,225, 2,194, 0, 0, 0, 1, 0, 0, 0,192,202,225, 2, 48,202,225, 2, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,192,202,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 8,203,225, 2,120,202,225, 2, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 8,203,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 80,203,225, 2, +192,202,225, 2, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 80,203,225, 2,194, 0, 0, 0, + 1, 0, 0, 0,152,203,225, 2, 8,203,225, 2, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +152,203,225, 2,194, 0, 0, 0, 1, 0, 0, 0,224,203,225, 2, 80,203,225, 2, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,224,203,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 40,204,225, 2,152,203,225, 2, 0, 0, 0, 0, +126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 40,204,225, 2,194, 0, 0, 0, 1, 0, 0, 0,112,204,225, 2, +224,203,225, 2, 0, 0, 0, 0, 32, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112,204,225, 2,194, 0, 0, 0, + 1, 0, 0, 0,184,204,225, 2, 40,204,225, 2, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +184,204,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 0,205,225, 2,112,204,225, 2, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 0,205,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 72,205,225, 2,184,204,225, 2, 0, 0, 0, 0, + 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 72,205,225, 2,194, 0, 0, 0, 1, 0, 0, 0,144,205,225, 2, + 0,205,225, 2, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144,205,225, 2,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 72,205,225, 2, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +216,205,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 32,206,225, 2, 0, 0, 0, 0, 48,202,225, 2,120,202,225, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,206,225, 2,195, 0, 0, 0, 1, 0, 0, 0,104,206,225, 2,216,205,225, 2, + 48,202,225, 2, 8,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,206,225, 2,195, 0, 0, 0, + 1, 0, 0, 0,176,206,225, 2, 32,206,225, 2,120,202,225, 2, 80,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,176,206,225, 2,195, 0, 0, 0, 1, 0, 0, 0,248,206,225, 2,104,206,225, 2, 8,203,225, 2, 80,203,225, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,206,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 64,207,225, 2, +176,206,225, 2,192,202,225, 2,224,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,207,225, 2, +195, 0, 0, 0, 1, 0, 0, 0,136,207,225, 2,248,206,225, 2,152,203,225, 2,224,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,136,207,225, 2,195, 0, 0, 0, 1, 0, 0, 0,208,207,225, 2, 64,207,225, 2, 80,203,225, 2, + 40,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,207,225, 2,195, 0, 0, 0, 1, 0, 0, 0, + 24,208,225, 2,136,207,225, 2, 8,203,225, 2, 40,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 24,208,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 96,208,225, 2,208,207,225, 2,152,203,225, 2, 40,204,225, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,208,225, 2,195, 0, 0, 0, 1, 0, 0, 0,168,208,225, 2, 24,208,225, 2, + 80,203,225, 2,224,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,208,225, 2,195, 0, 0, 0, + 1, 0, 0, 0,192,252,225, 2, 96,208,225, 2, 8,203,225, 2,112,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,192,252,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 8,253,225, 2,168,208,225, 2, 40,204,225, 2,184,204,225, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,253,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 80,253,225, 2, +192,252,225, 2,112,204,225, 2,184,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,253,225, 2, +195, 0, 0, 0, 1, 0, 0, 0,152,253,225, 2, 8,253,225, 2,112,204,225, 2, 0,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,152,253,225, 2,195, 0, 0, 0, 1, 0, 0, 0,224,253,225, 2, 80,253,225, 2,184,204,225, 2, + 0,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,253,225, 2,195, 0, 0, 0, 1, 0, 0, 0, + 40,254,225, 2,152,253,225, 2,232,201,225, 2, 72,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 40,254,225, 2,195, 0, 0, 0, 1, 0, 0, 0,112,254,225, 2,224,253,225, 2, 72,205,225, 2,144,205,225, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,254,225, 2,195, 0, 0, 0, 1, 0, 0, 0,184,254,225, 2, 40,254,225, 2, +192,202,225, 2,144,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,254,225, 2,195, 0, 0, 0, + 1, 0, 0, 0, 0,255,225, 2,112,254,225, 2,152,203,225, 2,144,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 0,255,225, 2,195, 0, 0, 0, 1, 0, 0, 0, 72,255,225, 2,184,254,225, 2, 0,205,225, 2, 72,205,225, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,255,225, 2,195, 0, 0, 0, 1, 0, 0, 0,144,255,225, 2, + 0,255,225, 2,184,204,225, 2,144,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,255,225, 2, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72,255,225, 2,232,201,225, 2,112,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 0, 0, 0, 0, 86,215, 2,197, 0, 0, 0, 1, 0, 0, 0,144, 86,215, 2, 0, 0, 0, 0, 8,203,225, 2, + 48,202,225, 2,120,202,225, 2, 80,203,225, 2, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, + 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 56,233,220, 2, 56,233,220, 2, 24,163,206, 2, + 64,164,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 24,163,206, 2, +198, 0, 0, 0, 1, 0, 0, 0, 64,164,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 64,164,206, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24,163,206, 2, 0, 0, 0, 0, + 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, +129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,144, 86,215, 2,197, 0, 0, 0, 1, 0, 0, 0, + 32, 87,215, 2, 0, 86,215, 2,144,205,225, 2,152,203,225, 2,224,203,225, 2,192,202,225, 2, 0, 0, 0, 0, 33, 6, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, +168, 44,226, 2,168, 44,226, 2,192, 12,226, 2,232, 13,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,192, 12,226, 2,198, 0, 0, 0, 1, 0, 0, 0,232, 13,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,115, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232, 13,226, 2,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,192, 12,226, 2, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, + 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0, +168, 44,226, 2,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 32, 87,215, 2,197, 0, 0, 0, 1, 0, 0, 0,176, 87,215, 2, +144, 86,215, 2,152,203,225, 2, 40,204,225, 2, 80,203,225, 2,224,203,225, 2, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, + 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1,141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 84,226, 2, +200, 84,226, 2, 16, 15,226, 2, 56, 16,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0, 16, 15,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 56, 16,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56, 16,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 16, 15,226, 2, 0, 0, 0, 0, 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, + 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1, +115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 45,226, 2, +176, 61,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152, 45,226, 2, +196, 0, 0, 0, 1, 0, 0, 0, 8, 47,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8, 47,226, 2,196, 0, 0, 0, 1, 0, 0, 0,120, 48,226, 2, +152, 45,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 9,244,247,160, 0, 0, 0,198, 0, 0, 0, 1, 9,244,248,192, 9,244,246,128, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, - 0, 0, 3,147, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, - 0, 0, 3,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, - 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 3,148, 0,163, 3,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 51, 0, 0, 6, 51, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,248,192, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,247,160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,165, 0, 0, 6, 51, 0, 0, 0,151, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 3, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,199,250, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,199,250, 32, 0, 0, 0,156, - 0, 0, 0, 1, 63,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,149,222,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 76,215, 74, - 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, - 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, - 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, - 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 62,191,240, 8, 63, 85,116,130,188, 70,191,112,180,224, 0, 0,190,175,172,179, 62, 41, 90,143, 63, 67,177,193, - 52, 8, 0, 0,194,117,107,207, 65,216,204, 80,194, 5,156, 41,192,159,247,136, 66,114, 62,121,193,213,253,213, 66, 3,225, 95, - 64,160, 7,236, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, - 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 3,139,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, 66,137,152, 86, - 66,126, 27,116, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,244,249,224, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,250, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,251, 0, 0, 0, 0,197, 0, 0, 0, 1, - 9,245, 1,144, 9,244,243,176, 9,254, 80, 80, 9,251,242,176, 9,253,135, 0, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 0,125, 0, 0, 1,107, 2, 2, 2,164, 0,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9,245, 0, 16, 9,245, 0, 16, 9,244,251,144, 9,244,254,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,244,251,144, 0, 0, 0,198, 0, 0, 0, 1, 9,244,252,176, 0, 0, 0, 0, 0, 0, 0, 0, - 68,119, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 0, 0, 0, 0, 0, 25, 68, 40,192, 0, 65,200, 0, 0, 68, 40,192, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,164, 0, 26, 2,164, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2,164, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,252,176, 0, 0, 0,198, 0, 0, 0, 1, - 9,244,253,208, 9,244,251,144, 0, 0, 0, 0, 67, 72, 0, 0,193,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0, -195, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0,199, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 10, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, - 0,213, 0,200, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,151, - 0, 0, 1,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,213, 0, 0, 0, 2, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 9,244,253,208, 0, 0, 0,198, 0, 0, 0, 1, 9,244,254,240, 9,244,252,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 2,163, 0, 0, 0,151, 0, 0, 1,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,244,254,240, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,244,253,208, -193, 16, 0, 0, 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, 0, 0, 0, 0, 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 1,202, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 18, 0, 0, 1,202, 0, 0, 0, 18, 0, 0, 0,212, 58,131, 18,111, 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1,203, 0,213, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 2,163, 0, 0, 0,151, 0, 0, 1,107, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,203, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0,120, 48,226, 2,196, 0, 0, 0, 1, 0, 0, 0,232, 49,226, 2, 8, 47,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,208, 9,245, 0, 16, 0, 0, 0,161, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 1, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 9,245, 1, 16, - 0, 0, 1, 19, 0, 0, 0, 1, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 1,144, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 6,192, 9,244,251, 0, 9,251,242,176, - 9,253,198, 16, 11, 29,143, 96, 9,253,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 1,109, 0, 0, 3,233, - 12, 12, 2,164, 2,125, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 5,128, 9,245, 5,128, 9,245, 2, 32, - 9,245, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 2, 32, - 0, 0, 0,198, 0, 0, 0, 1, 9,245, 3, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68,124,192, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 0, 0, 0, 0, 0, 25, - 68, 40,192, 0, 65,200, 0, 0, 68, 40,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 0, 12, 0, 10, 2,164, 0, 26, 2,164, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 1,109, 0, 0, 1,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,164, 0, 26, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,245, 3, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 4, 96, 9,245, 2, 32, 0, 0, 0, 0, - 67, 55, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,196, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 4, 8, 0, 0, 0, 2, 3, 3, 0, 0, 4, 2, 0, 6, 0,200, 2, 99, 0,200, 2, 81, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 1,135, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 2, 99, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 4, 96, 0, 0, 0,198, 0, 0, 0, 1, - 0, 0, 0, 0, 9,245, 3, 64,193, 32, 0, 0, 68,104, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,193, 32, 0, 0, 68,104, 0, 0, -196, 20, 64, 0, 0, 0, 0, 0, 0, 0, 1,203, 0, 0, 1,220, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 1,202, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,202, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 0, 0, - 72,146,124, 0, 70, 28, 64, 0, 60, 35,215, 10, 66, 72, 0, 0, 0, 74, 0, 0, 0, 0, 2, 0, 0, 0, 4, 2, 0, 4, 1,220, - 2, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 2,163, 0, 0, 1,135, - 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,220, 2, 99, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 24, - 9,245, 5,128, 0, 0, 1, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 6,192, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 1,144, - 11, 21,225, 32, 12, 96, 12, 32, 9,249, 51, 0, 4,211,174, 48, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, - 0, 0, 3,233, 1, 1, 1, 74, 0,201, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 9,144, 9,245, 9,144, - 9,245, 7, 80, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 9,245, 7, 80, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 64, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, - 0, 0, 0, 23, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 24, 1, 74, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 8,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 7, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,199,254, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,199,254, 32, 0, 0, 0,156, - 0, 0, 0, 1, 64, 13,255, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,105, 33, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, - 0, 0, 0, 0, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, - 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, - 63,128, 0, 0, 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, - 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, - 63,128, 0, 0, 63,194,201, 48,191,147,250, 0,191, 39,250,244,191, 39,165, 8, 63,206,164,191, 63,145,176,241, 63, 28,164,180, - 63, 28, 84,149,188,196,153,224, 64, 80,187, 20,190,228,108, 8,190,227,247, 50,191, 64, 21,127,191,175,162,255, 65, 49, 49,216, - 65, 52, 9,152, 62,158, 70,194, 62,167,233,240,187,159,206, 32,180,168, 0, 0,189,178,111, 34, 61,175,173,170, 62,123,177,170, - 51, 8, 0, 0,194, 21,120,211, 66, 2, 5,144,193,213,136, 9,192,159,214,193, 66, 19, 38,219,193,255,173,196, 65,210,101,157, - 64,160, 40,173, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, - 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, - 63,128, 0, 0, 63,194,201, 48,191,147,250, 0,191, 39,250,244,191, 39,165, 8, 63,206,164,191, 63,145,176,241, 63, 28,164,180, - 63, 28, 84,149,188,196,153,224, 64, 80,187, 20,190,228,108, 8,190,227,247, 50,191, 64, 21,127,191,175,162,255, 65, 49, 49,216, - 65, 52, 9,152, 64, 19,137,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,137,126, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,137,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63, 72, 22,241,190,246,162, 78,190, 90, 8, 44,190,171, 35, 3, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 51, 4,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,255,255, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 63,128, 0, 0, 66, 65,133,190, 66, 90,212,100, - 66,118,183, 31, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,245, 9,144, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,250, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,245, 11, 16, 0, 0, 0,193, 0, 0, 0, 1, - 11, 29,167, 48, 9,244,204,208, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, - 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 11,208, 9,245, 15, 16, 9,245, 15, 80, - 9,245, 20,144, 9,245, 20,208, 11, 30, 87,176, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 11,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 12, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 80, 9,245, 11,208, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12,144, 9,245, 12, 16, - 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 12,208, 9,245, 12, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 16, 9,245, 12,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 13, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 80, 9,245, 12,208, 0, 0, 0, 0, 7,126, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13,144, 9,245, 13, 16, - 0, 0, 0, 0, 6, 32, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 13,208, 9,245, 13, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 16, 9,245, 13,144, 0, 0, 0, 0, 6, 32, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 14, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 1,140, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14,144, 9,245, 14, 16, - 0, 0, 0, 0, 6, 32, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 14,208, 9,245, 14, 80, 0, 0, 0, 0, 3, 4, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 15, 16, 9,245, 14,144, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 15, 16, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 14,208, 0, 0, 0, 0, 6, 32, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 15,144, 0, 0, 0, 0, - 9,245, 12, 16, 9,245, 12, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 15,208, 9,245, 15, 80, 9,245, 12, 16, 9,245, 12,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 15,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 16, 9,245, 15,144, 9,245, 12, 80, 9,245, 13, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 80, - 9,245, 15,208, 9,245, 12,208, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,144, 9,245, 16, 16, 9,245, 12,144, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,208, 9,245, 16, 80, 9,245, 13, 80, - 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,208, 0, 0, 0,195, 0, 0, 0, 1, - 9,245, 17, 16, 9,245, 16,144, 9,245, 13, 16, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,245, 17, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17, 80, 9,245, 16,208, 9,245, 12,208, 9,245, 13,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17,144, 9,245, 17, 16, - 9,245, 13, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 17,208, 9,245, 17, 80, 9,245, 13, 16, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 17,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 16, 9,245, 17,144, 9,245, 12,208, 9,245, 14, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 80, - 9,245, 17,208, 9,245, 13,208, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,144, 9,245, 18, 16, 9,245, 14, 16, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,208, 9,245, 18, 80, 9,245, 14, 16, - 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,208, 0, 0, 0,195, 0, 0, 0, 1, - 9,245, 19, 16, 9,245, 18,144, 9,245, 14, 80, 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,245, 19, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19, 80, 9,245, 18,208, 9,245, 11,208, 9,245, 14,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19,144, 9,245, 19, 16, - 9,245, 14,208, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 19,208, 9,245, 19, 80, 9,245, 12,144, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 19,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 16, 9,245, 19,144, 9,245, 13, 80, 9,245, 15, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 80, - 9,245, 19,208, 9,245, 14,144, 9,245, 14,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20,144, 9,245, 20, 16, 9,245, 14, 80, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20,144, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 20, 80, 9,245, 11,208, - 9,245, 14, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 20,208, 0, 0, 0,197, 0, 0, 0, 1, - 9,245, 23,160, 0, 0, 0, 0, 9,245, 12,208, 9,245, 12, 16, 9,245, 12, 80, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 9,245, 55,192, 9,245, 55,192, 9,245, 21, 96, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,245, 21, 96, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, - 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 22,128, 0, 0, 0,198, 0, 0, 0, 1, - 0, 0, 0, 0, 9,245, 21, 96, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, - 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 9,245, 23,160, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 27, 96, 9,245, 20,208, 9,245, 15, 16, 9,245, 13, 80, 9,245, 13,144, - 9,245, 12,144, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 1, 94, 0, 92, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 26,112, 9,245, 26,112, 9,245, 24, 48, 9,245, 25, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 24, 48, 0, 0, 0,198, 0, 0, 0, 1, - 9,245, 25, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68,115,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, - 67,174,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, - 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 9,245, 25, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 24, 48,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0,193, 74, 51, 50, 67,131,209,154, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 18, - 0, 0, 0, 65, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, - 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 1, 94, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 94, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,188, 9,245, 26,112, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 27, 96, - 0, 0, 0,197, 0, 0, 0, 1, 9,245, 48,112, 9,245, 23,160, 9,245, 13, 80, 9,245, 13,208, 9,245, 13, 16, 9,245, 13,144, - 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 3,233, 4, 4, 1, 94, 3,141, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 47,112, 9,245, 47,112, 9,245, 27,240, 9,245, 29, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 27,240, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 29, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, 67,174,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, 0, 26, 1, 94, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 3,208, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 29, 16, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 27,240, 0, 0, 0, 0, 67,174,128, 0,196, 92,128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,166,127,255,196, 92,191,255, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 1, 94, 0, 0, 0, 0, 0, 0, 3,114, - 0, 0, 0, 0, 0, 0, 1, 82, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, 0, 0, 0, 3,114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 1, 94, 3,115, 1, 77, 3,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, - 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 3,115, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 30, 48, 9,245, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 30, 48, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 31,160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,255,220, 1, 76, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 31,160, - 0, 0, 0,196, 0, 0, 0, 1, 9,245, 33, 16, 9,245, 30, 48, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 76, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,232, 49,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 88, 51,226, 2,120, 48,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 33, 16, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 34,128, - 9,245, 31,160, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88, 51,226, 2,196, 0, 0, 0, 1, 0, 0, 0,224, 52,226, 2,232, 49,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 9,245, 34,128, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 35,240, 9,245, 33, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,254,140, 1, 76, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +224, 52,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 88, 54,226, 2, 88, 51,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, +108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 35,240, 0, 0, 0,196, - 0, 0, 0, 1, 9,245, 37, 96, 9,245, 34,128, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88, 54,226, 2,196, 0, 0, 0, 1, 0, 0, 0, +208, 55,226, 2,224, 52,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 76, 0, 58, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 37, 96, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 38,208, 9,245, 35,240, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,208, 55,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 72, 57,226, 2, 88, 54,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 9,245, 38,208, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 40, 64, 9,245, 37, 96, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, - 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 72, 57,226, 2, +196, 0, 0, 0, 1, 0, 0, 0,192, 58,226, 2,208, 55,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 40, 64, 0, 0, 0,196, 0, 0, 0, 1, - 9,245, 41,176, 9,245, 38,208, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,192, 58,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 56, 60,226, 2, + 72, 57,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 41,176, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 43, 32, 9,245, 40, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0, 56, 60,226, 2,196, 0, 0, 0, 1, 0, 0, 0,176, 61,226, 2,192, 58,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,253,218, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 43, 32, - 0, 0, 0,196, 0, 0, 0, 1, 9,245, 44,144, 9,245, 41,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, + 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 76, 0, 0, - 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,176, 61,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 56, 60,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,245, 44,144, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 46, 0, - 9,245, 43, 32, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,200, 84,226, 2,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1, 76, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 9,245, 46, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 44,144, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,176, 87,215, 2,197, 0, 0, 0, + 1, 0, 0, 0, 64, 88,215, 2, 32, 87,215, 2, 72,205,225, 2, 0,205,225, 2,184,204,225, 2,144,205,225, 2, 0, 0, 0, 0, + 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 23,226, 2, 40, 23,226, 2, 96, 17,226, 2, 0, 22,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96, 17,226, 2,198, 0, 0, 0, 1, 0, 0, 0,136, 18,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,253, 16, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136, 18,226, 2,198, 0, 0, 0, + 1, 0, 0, 0,176, 19,226, 2, 96, 17,226, 2, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, + 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0,176, 19,226, 2,198, 0, 0, 0, 1, 0, 0, 0,216, 20,226, 2,136, 18,226, 2, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 20,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 22,226, 2, +176, 19,226, 2, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0, +112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0, 22,226, 2, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 20,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, + 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 85,226, 2, + 68, 65, 84, 65, 68, 3, 0, 0,208, 85,226, 2,156, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, + 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, + 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, + 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193, +193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, + 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, + 1, 0, 0, 0, 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, + 40, 23,226, 2,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0, 64, 88,215, 2,197, 0, 0, 0, 1, 0, 0, 0,208, 88,215, 2,176, 87,215, 2,112,204,225, 2, 8,203,225, 2, + 40,204,225, 2,184,204,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, + 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 89,226, 2, 72, 89,226, 2, 80, 24,226, 2,120, 25,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80, 24,226, 2,198, 0, 0, 0, + 1, 0, 0, 0,120, 25,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, + 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, +141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0,120, 25,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 24,226, 2, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68, 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, + 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, + 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 9,245, 47,112, 0, 0, 0,162, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,252, 0, 0, 0, 72, 89,226, 2,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +208, 88,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 88,215, 2,232,201,225, 2,112,204,225, 2, 0,205,225, 2, + 72,205,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 90,226, 2,120, 90,226, 2,160, 26,226, 2,240, 28,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 26,226, 2,198, 0, 0, 0, 1, 0, 0, 0, +200, 27,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65, + 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3, + 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 9,245, 48,112, 0, 0, 0,197, 0, 0, 0, 1, 11, 30, 86, 0, 9,245, 27, 96, 9,245, 14,208, 9,245, 14,144, - 9,245, 14, 80, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 1,139, 1, 1, 3, 27, - 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 54,160, 9,245, 54,160, 9,245, 49, 0, 9,245, 53,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 49, 0, 0, 0, 0,198, - 0, 0, 0, 1, 9,245, 50, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68, 70,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 25, 68, 70,128, 0, - 65,200, 0, 0, 68, 70,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, - 0, 10, 3, 27, 0, 26, 3, 27, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 0, 26, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 9,245, 50, 32, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 51, 64, 9,245, 49, 0, 0, 0, 0, 0, 67, 15, 0, 0, -196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, - 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, - 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 3, 5, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1,114, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 51, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 52, 96, - 9,245, 50, 32, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, - 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, - 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 52, 96, - 0, 0, 0,198, 0, 0, 0, 1, 9,245, 53,128, 9,245, 51, 64, 0, 0, 0, 0, 67, 35, 0, 0,196,108,192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 35, 0, 0,195,184, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 1,129, - 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 1,129, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 0, 0, 0, 6, 0,180, 1,130, 0,163, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, - 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, - 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,245, 53,128, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 52, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 6, 31, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 27, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2,205,220, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,205,220, 32, 0, 0, 0,156, 0, 0, 0, 1, - 63,230,101, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119,133, 30, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, 0, 0, 0, 0, - 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, -188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, - 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, 0, 0, 0, 0, - 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, 63,128, 0, 0, - 63,158, 6, 42,191,157, 28, 99,191, 39,250,244,191, 39,165, 8, 63,167,164,211, 63,154,175, 55, 63, 28,164,180, 63, 28, 84,149, -188,159,127, 39, 64, 93,157,135,190,228,108, 8,190,227,247, 50,191, 27,213, 4,191,186,122,122, 65, 49, 49,216, 65, 52, 9,152, - 62,195, 25, 25, 62,206,249,176,187,196,238,128,179,192, 0, 0,189,168, 15, 55, 61,165,118,201, 62,109, 15,152, 51,152, 0, 0, -194, 21,120,211, 66, 2, 5,144,193,213,136, 6,192,159,214,193, 66, 19, 38,219,193,255,173,196, 65,210,101,154, 64,160, 40,173, - 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, -188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, - 63,158, 6, 42,191,157, 28, 99,191, 39,250,244,191, 39,165, 8, 63,167,164,211, 63,154,175, 55, 63, 28,164,180, 63, 28, 84,149, -188,159,127, 39, 64, 93,157,135,190,228,108, 8,190,227,247, 50,191, 27,213, 4,191,186,122,122, 65, 49, 49,216, 65, 52, 9,152, - 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,150,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63, 72, 22,241,190,246,162, 78,190, 90, 8, 44,190,171, 35, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, - 58,183, 49, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, 66, 65,133,190, 66, 90,212,100, 66,118,183, 31, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,245, 54,160, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, - 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 30, 86, 0, 0, 0, 0,197, 0, 0, 0, 1, 11, 30, 87,176, - 9,245, 48,112, 9,245, 14, 16, 9,245, 12,208, 9,245, 13,208, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, - 0, 0, 1,141, 0, 0, 3,233, 16, 16, 6, 32, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,189, 64, - 11, 29,189, 64, 11, 30, 86,144, 11, 29,188, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 30, 86,144, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,188, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 66,128, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,196, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, - 0, 0, 0, 0, 0, 0, 0, 25, 68,195,224, 0, 65,200, 0, 0, 68,195,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 32, 0, 26, 6, 32, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 32, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,188, 32, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, - 11, 30, 86,144,193, 32, 0, 0, 68, 0, 0, 0,193, 32, 0, 0, 68, 0, 0, 0,195,217,195,128, 68,108,225,192, 64,187,240, 96, - 67,253, 16, 62, 0, 0, 6, 15, 0, 0, 6, 32, 0, 0, 0, 18, 0, 0, 2, 66, 0, 0, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 14, 0, 0, 0, 18, 0, 0, 2, 66, 63,128, 0, 0, 63,128, 0, 0, 70,250, 0, 0, - 70,250, 0, 0, 61,184, 81,236, 64, 19,215, 10, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 6, 32, 2, 67, 6, 15, - 2, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 1,167, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,252, 11, 29,189, 64, - 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 97,206, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 30, 87,176, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 30, 86, 0, - 9,245, 11,208, 9,245, 14, 16, 9,245, 14,144, 9,245, 14,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, - 0, 0, 1,139, 6, 6, 3, 4, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,154, 32, 2,217,154, 32, - 11, 29,190,112, 11, 29,166, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 29,190,112, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,164,240, 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68, 65, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 25, 68, 64,192, 0, 65,200, 0, 0, 68, 64,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3, 4, 0, 26, 3, 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,164,240, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,166, 16, 11, 29,190,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,166, 16, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,164,240, 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191,129, 0, 0, - 64, 0,128, 0,190,100, 0, 0, 63,156,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 1,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +200, 27,226, 2,198, 0, 0, 0, 1, 0, 0, 0,240, 28,226, 2,160, 26,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, - 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 32,248, 2,217,154, 32, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240, 28,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200, 27,226, 2, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 32, 0, 0,120, 90,226, 2,167, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, + 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1079,12 +1073,12 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1208,1816 +1202,1829 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 29,167, 48, 0, 0, 0,193, 0, 0, 0, 1, 9,253,180,224, - 9,245, 11, 16, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,191,144, 9,242, 80,144, 9,242, 80,208, 9,242, 85, 16, - 9,242, 85, 80, 10,122, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 54,192,152, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,191,144, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 78, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 78, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,144, 9,242, 78, 16, 0, 0, 0, 0, - 7,128, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,208, - 9,242, 78, 80, 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,208, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 79, 16, 9,242, 78,144, 0, 0, 0, 0, 0, 0, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 79, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79, 80, 9,242, 78,208, 0, 0, 0, 0, 7,128, 4,100, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,144, 9,242, 79, 16, 0, 0, 0, 0, - 6, 72, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,208, - 9,242, 79, 80, 0, 0, 0, 0, 6, 72, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,208, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 80, 16, 9,242, 79,144, 0, 0, 0, 0, 6, 72, 3,164, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 80, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80, 80, 9,242, 79,208, 0, 0, 0, 0, 7,128, 3,164, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80,144, 9,242, 80, 16, 0, 0, 0, 0, - 0, 0, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80,144, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, - 9,242, 80, 80, 0, 0, 0, 0, 6, 72, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 80,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 81, 16, 0, 0, 0, 0, 9,242, 78, 16, 9,242, 78, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 81, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81, 80, 9,242, 80,208, 9,242, 78, 16, 9,242, 78,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,144, - 9,242, 81, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,144, - 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,208, 9,242, 81, 80, 9,242, 78,208, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82, 16, 9,242, 81,144, 9,242, 79, 80, - 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82, 16, 0, 0, 0,195, 0, 0, 0, 1, - 9,242, 82, 80, 9,242, 81,208, 9,242, 78,144, 9,242, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,242, 82, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,144, 9,242, 82, 16, 9,242, 78,208, 9,242, 79,144, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,208, 9,242, 82, 80, - 9,242, 79, 16, 9,242, 79,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 83, 16, 9,242, 82,144, 9,242, 79, 80, 9,242, 79,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 83, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83, 80, 9,242, 82,208, 9,242, 79,144, 9,242, 79,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,144, - 9,242, 83, 16, 9,242, 79, 16, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,144, - 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,208, 9,242, 83, 80, 9,242, 78,144, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84, 16, 9,242, 83,144, 9,242, 79,208, - 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84, 16, 0, 0, 0,195, 0, 0, 0, 1, - 9,242, 84, 80, 9,242, 83,208, 9,242, 80, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,242, 84, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,144, 9,242, 84, 16, 9,242, 78,208, 9,242, 80, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,208, 9,242, 84, 80, - 9,242, 79,144, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 85, 16, 9,242, 84,144, 9,242, 79, 80, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 85, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 84,208, 9,242, 80, 80, 9,242, 80,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 85, 80, 0, 0, 0,197, 0, 0, 0, 1, 9,242, 88, 32, - 0, 0, 0, 0, 9,242, 78,208, 9,242, 78, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, - 0, 0, 4,101, 0, 0, 4,128, 7, 7, 7,129, 0, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 2, 23,166,224, 10,122, 9,112, - 10,122, 9,112, 9,242, 85,224, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 47,224, 9,244, 48, 64, 68, 65, 84, 65, - 0, 0, 0,248, 9,242, 85,224, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,134,128, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,240, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, - 0, 0, 0, 0, 0, 0, 0, 25, 68,240, 0, 0, 65,200, 0, 0, 68,240, 0, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,129, 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,101, 0, 0, 4,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,129, 0, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,168, 48, 11, 30, 71, 96, 11, 30, 71, 96, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 48,240, 9,244, 50, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 87, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, - 9,242, 85,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,237,255,255, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,127, 0, 0, 4,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,167,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 51, 0, 9,244, 51,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 88, 32, - 0, 0, 0,197, 0, 0, 0, 1, 9,242,106,192, 9,242, 85, 80, 9,242, 79, 80, 9,242, 79,208, 9,242, 80, 16, 9,242, 78,144, - 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,163, 4, 4, 1, 56, 3,164, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 8, 2, 23,163,224, 11, 29, 3,128, 11, 29, 3,128, 9,242, 88,176, 9,242, 89,208, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244, 94, 64, 9,244, 53, 16, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 88,176, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 89,208, - 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,156, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 0, 0, 0, 0, 0, 0, 0, 25, 67,155,128, 0, 65,200, 0, 0, 67,155,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 56, 0, 26, 1, 56, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 3,138, 0, 0, 3,163, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 26, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,166, 80, 11, 31,157,208, 11, 31,157,208, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 53,192, 9,244, 55, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 89,208, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 88,176, 0, 0, 0, 0, 67,156, 0, 0,196, 98,128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,147,128, 0,196, 98,128, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 3,137, - 0, 0, 0, 0, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 3,137, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 1, 56, 3,138, 1, 39, 3,138, 0, 0, 11, 29,248, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 6, 73, - 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 3,138, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,164,160, - 9,254, 77,160, 10,117,132,112, 9,242, 90,240, 11, 29, 2, 16, 9,244, 55,208, 9,244, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 90,240, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 92, 96, 0, 0, 0, 0, 2, 23,165, 48, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,255,220, 1, 39, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 92, 96, - 0, 0, 0,196, 0, 0, 0, 1, 9,242, 93,208, 9,242, 90,240, 9,152,130,240, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 39, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 93,208, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 95, 64, - 9,242, 92, 96, 9,152,132,160, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, +148, 0, 0, 0,184,250,213, 2,193, 0, 0, 0, 1, 0, 0, 0,128,251,213, 2,240,249,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,255,225, 2,240, 2,226, 2, 56, 3,226, 2, 0, 8,226, 2, 96, 89,215, 2,160, 91,215, 2, 0, 0, 0, 0, + 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0,148,238, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216,255,225, 2,194, 0, 0, 0, 1, 0, 0, 0, 32, 0,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 32, 0,226, 2,194, 0, 0, 0, 1, 0, 0, 0, +104, 0,226, 2,216,255,225, 2, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104, 0,226, 2, +194, 0, 0, 0, 1, 0, 0, 0,176, 0,226, 2, 32, 0,226, 2, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0,176, 0,226, 2,194, 0, 0, 0, 1, 0, 0, 0,248, 0,226, 2,104, 0,226, 2, 0, 0, 0, 0,240, 4, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248, 0,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 64, 1,226, 2,176, 0,226, 2, + 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 64, 1,226, 2,194, 0, 0, 0, 1, 0, 0, 0, +136, 1,226, 2,248, 0,226, 2, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,136, 1,226, 2, +194, 0, 0, 0, 1, 0, 0, 0,208, 1,226, 2, 64, 1,226, 2, 0, 0, 0, 0, 36, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0,208, 1,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 24, 2,226, 2,136, 1,226, 2, 0, 0, 0, 0, 36, 4,195, 2, + 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24, 2,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 96, 2,226, 2,208, 1,226, 2, + 0, 0, 0, 0, 36, 4, 84, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96, 2,226, 2,194, 0, 0, 0, 1, 0, 0, 0, +168, 2,226, 2, 24, 2,226, 2, 0, 0, 0, 0,240, 4, 84, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168, 2,226, 2, +194, 0, 0, 0, 1, 0, 0, 0,240, 2,226, 2, 96, 2,226, 2, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0,240, 2,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168, 2,226, 2, 0, 0, 0, 0, 36, 4, 84, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56, 3,226, 2,195, 0, 0, 0, 1, 0, 0, 0,128, 3,226, 2, 0, 0, 0, 0, + 32, 0,226, 2,104, 0,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128, 3,226, 2,195, 0, 0, 0, + 1, 0, 0, 0,200, 3,226, 2, 56, 3,226, 2, 32, 0,226, 2,248, 0,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,200, 3,226, 2,195, 0, 0, 0, 1, 0, 0, 0, 16, 4,226, 2,128, 3,226, 2,104, 0,226, 2, 64, 1,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16, 4,226, 2,195, 0, 0, 0, 1, 0, 0, 0, 88, 4,226, 2, +200, 3,226, 2,248, 0,226, 2, 64, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88, 4,226, 2, +195, 0, 0, 0, 1, 0, 0, 0,160, 4,226, 2, 16, 4,226, 2,216,255,225, 2,136, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,160, 4,226, 2,195, 0, 0, 0, 1, 0, 0, 0,232, 4,226, 2, 88, 4,226, 2,176, 0,226, 2, +136, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,232, 4,226, 2,195, 0, 0, 0, 1, 0, 0, 0, + 48, 5,226, 2,160, 4,226, 2,248, 0,226, 2,208, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 48, 5,226, 2,195, 0, 0, 0, 1, 0, 0, 0,120, 5,226, 2,232, 4,226, 2, 64, 1,226, 2,208, 1,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120, 5,226, 2,195, 0, 0, 0, 1, 0, 0, 0,192, 5,226, 2, 48, 5,226, 2, +136, 1,226, 2, 24, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192, 5,226, 2,195, 0, 0, 0, + 1, 0, 0, 0, 8, 6,226, 2,120, 5,226, 2,208, 1,226, 2, 24, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 8, 6,226, 2,195, 0, 0, 0, 1, 0, 0, 0, 80, 6,226, 2,192, 5,226, 2, 64, 1,226, 2, 96, 2,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80, 6,226, 2,195, 0, 0, 0, 1, 0, 0, 0,152, 6,226, 2, + 8, 6,226, 2,176, 0,226, 2, 96, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152, 6,226, 2, +195, 0, 0, 0, 1, 0, 0, 0,224, 6,226, 2, 80, 6,226, 2, 24, 2,226, 2, 96, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,224, 6,226, 2,195, 0, 0, 0, 1, 0, 0, 0, 40, 7,226, 2,152, 6,226, 2,216,255,225, 2, +168, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 7,226, 2,195, 0, 0, 0, 1, 0, 0, 0, +112, 7,226, 2,224, 6,226, 2,248, 0,226, 2,168, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +112, 7,226, 2,195, 0, 0, 0, 1, 0, 0, 0,184, 7,226, 2, 40, 7,226, 2,208, 1,226, 2,240, 2,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184, 7,226, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 8,226, 2,112, 7,226, 2, +136, 1,226, 2,240, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0, 8,226, 2,195, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,184, 7,226, 2,168, 2,226, 2,240, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0, 96, 89,215, 2,197, 0, 0, 0, 1, 0, 0, 0,240, 89,215, 2, 0, 0, 0, 0,248, 0,226, 2, 32, 0,226, 2, +104, 0,226, 2, 64, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,136,129,206, 2,152,233,220, 2,152,233,220, 2, 24, 30,226, 2, 64, 31,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0,184,231,220, 2, 24,232,220, 2, 68, 65, 84, 65,248, 0, 0, 0, 24, 30,226, 2,198, 0, 0, 0, + 1, 0, 0, 0, 64, 31,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, + 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, +196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 2, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64,206, 2, 40,133, 4, 4, + 40,133, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,184, 59, 6, 4, 80, 58, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0, 64, 31,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 30,226, 2, 0, 0, 0, 0, 0,240,109, 69, + 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,237, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,144, 63,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240, 89,215, 2,197, 0, 0, 0, 1, 0, 0, 0,128, 90,215, 2, + 96, 89,215, 2,136, 1,226, 2, 24, 2,226, 2, 96, 2,226, 2,176, 0,226, 2, 0, 0, 0, 0, 37, 4, 0, 0,240, 4, 0, 0, + 0, 0, 0, 0, 83, 2, 0, 0, 4, 4,204, 0, 84, 2, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,168,127,206, 2,160,155,226, 2, +160,155,226, 2,104, 32,226, 2,144, 33,226, 2, 0, 0, 0, 0, 0, 0, 0, 0,152,230,220, 2, 88,231,220, 2, 68, 65, 84, 65, +248, 0, 0, 0,104, 32,226, 2,198, 0, 0, 0, 1, 0, 0, 0,144, 33,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, + 0, 0, 0, 0, 0, 0,208, 65, 64, 33, 68, 55, 0, 0, 76, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 75, 67, 0, 0,200, 65, 0, 0, 75, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,204, 0, 26, 0,204, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 37, 4, 0, 0,240, 4, 0, 0, 58, 2, 0, 0, 83, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,204, 0, 26, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 63,206, 2,208, 80, 8, 4,208, 80, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0,216, 57, 6, 4,112, 56, 6, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144, 33,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +104, 32,226, 2, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 58, 67,255,127, 14,196, + 0, 0, 0, 0,187, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,204, 0, 58, 2,187, 0, + 58, 2, 0, 0, 8,104,244, 3, 1, 0, 0, 0, 0, 0, 0, 0, 37, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 0, 58, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 62,206, 2,152, 71, 8, 4, 16, 66, 8, 4, 40, 63,226, 2, + 32,128,226, 2,248, 55, 6, 4,144, 54, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 40, 63,226, 2, +196, 0, 0, 0, 1, 0, 0, 0,160, 64,226, 2, 0, 0, 0, 0,104,128,206, 2, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,186, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,160, 64,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 24, 66,226, 2, + 40, 63,226, 2,208, 0,222, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,186, 0, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 9,242, 95, 64, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 96,176, 9,242, 93,208, 9,152,134, 80, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 1, 0, 0, 24, 66,226, 2,196, 0, 0, 0, 1, 0, 0, 0,144, 67,226, 2,160, 64,226, 2,248, 1,222, 2, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,254,140, 1, 39, 0,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,111,255,186, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 96,176, 0, 0, 0,196, - 0, 0, 0, 1, 9,242, 98, 32, 9,242, 95, 64, 9,152,136, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1, 39, 0, 58, 0, 20, 0, 0, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,144, 67,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 8, 69,226, 2, 24, 66,226, 2, 32, 3,222, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,186, 0,203, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 98, 32, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 99,144, 9,242, 96,176, - 9,152,137,176, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8, 69,226, 2,196, 0, 0, 0, 1, 0, 0, 0,128, 70,226, 2,144, 67,226, 2, + 72, 4,222, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 39, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,186, 0, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 9,242, 99,144, 0, 0, 0,196, 0, 0, 0, 1, 9,242,101, 0, 9,242, 98, 32, 9,152,139, 96, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +128, 70,226, 2,196, 0, 0, 0, 1, 0, 0, 0,248, 71,226, 2, 8, 69,226, 2, 80, 78,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, - 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, +108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, +186, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,101, 0, 0, 0, 0,196, 0, 0, 0, 1, - 9,242,102,112, 9,242, 99,144, 9,152,140,128, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,248, 71,226, 2,196, 0, 0, 0, 1, 0, 0, 0, +112, 73,226, 2,128, 70,226, 2,120, 79,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,186, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,242,102,112, 0, 0, 0,196, 0, 0, 0, 1, 9,242,103,224, 9,242,101, 0, 9,152,142, 48, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,112, 73,226, 2,196, 0, 0, 0, 1, 0, 0, 0,232, 74,226, 2,248, 71,226, 2,160, 80,217, 2, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,253,218, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,242,253,186, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,103,224, - 0, 0, 0,196, 0, 0, 0, 1, 9,242,105, 80, 9,242,102,112, 9,152,143,224, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,232, 74,226, 2, +196, 0, 0, 0, 1, 0, 0, 0, 96, 76,226, 2,112, 73,226, 2,200, 81,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 39, 0, 0, - 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,186, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 9,242,105, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,249,112, - 9,242,103,224, 9,152,145,144, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 96, 76,226, 2,196, 0, 0, 0, 1, 0, 0, 0,216, 77,226, 2, +232, 74,226, 2,240, 82,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1, 39, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,186, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 11, 28,249,112, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,250,224, 9,242,105, 80, 9,152,148,240, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 1, 0, 0,216, 77,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 80, 79,226, 2, 96, 76,226, 2, 24, 84,217, 2, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,253, 16, 1, 39, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40,253,186, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,250,224, 0, 0, 0,196, - 0, 0, 0, 1, 11, 28,252, 80, 11, 28,249,112, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, -110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, -110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 80, 79,226, 2,196, 0, 0, 0, + 1, 0, 0, 0,200, 80,226, 2,216, 77,226, 2,104, 86,217, 2, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, +107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 41, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,186, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 7, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,252, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,253,192, 11, 28,250,224, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,200, 80,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 64, 82,226, 2, 80, 79,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 28, 1, 41, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 28,253,192, 0, 0, 0,196, 0, 0, 0, 1, 11, 28,255, 48, 11, 28,252, 80, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, + 64, 82,226, 2,196, 0, 0, 0, 1, 0, 0, 0,184,123,226, 2,200, 80,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105, -110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,191, - 1, 41, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,255, + 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 28,255, 48, 0, 0, 0,196, 0, 0, 0, 1, - 11, 29, 0,160, 11, 28,253,192, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,184,123,226, 2,196, 0, 0, 0, 1, 0, 0, 0, + 48,125,226, 2, 64, 82,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, +115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, +115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,131, 1, 41, 0, 36, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0, 48,125,226, 2,196, 0, 0, 0, 1, 0, 0, 0,168,126,226, 2,184,123,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 11, 29, 0,160, 0, 0, 0,196, 0, 0, 0, 1, 11, 29, 2, 16, 11, 28,255, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,254, 27, 1, 41, 0, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 29, 2, 16, - 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, - 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168,126,226, 2, +196, 0, 0, 0, 1, 0, 0, 0, 32,128,226, 2, 48,125,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, + 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, - 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80, -114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,223, 1, 41, 0, 36, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 11, 29, 3,128, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, - 0, 0, 0, 0, 9,254, 87, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242,106,192, - 0, 0, 0,197, 0, 0, 0, 1, 11, 29, 7,176, 9,242, 88, 32, 11, 29,191,144, 9,242, 80, 80, 9,242, 80,144, 9,242, 79, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0,131, 15, 15, 6, 72, 0,132, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,133,112, 11, 29, 6,192, 11, 29, 6,192, 11, 29, 4,128, 11, 29, 5,160, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244,136,240, 9,244, 58, 80, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 4,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 29, 5,160, - 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,201, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, 68,200,224, 0, 65,200, 0, 0, 68,200,224, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 72, 0, 26, 6, 72, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,134,192, 9,254, 82,208, 9,254, 82,208, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 59, 0, 9,244, 60, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 5,160, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 4,128,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, -194,103,218, 88, 67,141,147, 40, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 18, 0, 0, 0,105, - 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, - 0, 4, 4, 0, 0, 8, 6, 72, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 71, 0, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0,106, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,134, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 61, 16, 9,244, 62,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,188, 11, 29, 6,192, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 11, 29, 7,176, 0, 0, 0,197, - 0, 0, 0, 1, 10,122, 0, 96, 9,242,106,192, 9,242, 79,208, 9,242, 79,144, 9,242, 79, 16, 9,242, 80, 16, 0, 0, 0, 0, - 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 3,165, 0, 0, 4, 99, 3, 3, 1, 56, 0,191, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, - 2, 23,131,144, 10,121,255, 64, 10,121,255, 64, 9,242,145, 80, 9,242,146,112, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 63,160, - 9,244, 64, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242,145, 80, 0, 0, 0,198, 0, 0, 0, 1, 9,242,146,112, 0, 0, 0, 0, - 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,156, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 55, 0, 0, 0, 0, 0, 0, 0, 25, 67,155,128, 0, 65,200, 0, 0, 67,155,128, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 56, 0, 26, 1, 56, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 4, 74, 0, 0, 4, 99, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,132,224, 9,202,234, 48, 9,202,234, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244, 64,176, 9,244, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242,146,112, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 9,242,145, 80, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,147,128, 0,195, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 1, 56, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, - 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, - 0, 6, 1, 56, 0,165, 1, 39, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, - 0, 0, 3,165, 0, 0, 4, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0,165, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,132, 80, 9,203, 36, 80, - 9,203, 36, 80, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 66,192, 9,244, 67,160, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,244, 10,121,255, 64, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 31, 70, 96, 11, 31, 70, 96, 11, 29, 8, 64, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 29, 8, 64, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 11, 42, 0, 0, 11, 42, - 8,212, 32, 32, 68, 65, 84, 65, 0, 0,133,248, 8,212, 32, 32, 0, 0, 0,219, 0, 0, 11, 42, 0, 0, 0, 0, 0, 2, 0, 1, - 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 21, 0, 1, - 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, 2,174, 10, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, 0, 0, 0, 0, - 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, 2,154,244, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,154,244, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,154,244, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,154,244, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,154,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,154,244, 32, 0, 30,255,255, 0, 1, 0, 0, 2,216,154, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,216,158, 32, 0, 30,255,255, 0, 1, 0, 0, 2,195, 38, 32, 0, 30,255,255, 0, 1, 0, 0, 2,195, 42, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,153, 66, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 70, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,197,122, 32, 0, 30,255,255, 0, 1, 0, 0, 2,197,126, 32, 0, 30,255,255, 0, 1, 0, 0, 2,199, 36, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,199, 40, 32, 0, 30,255,255, 0, 1, 0, 0, 2,211,232, 32, 0, 30,255,255, 0, 1, 0, 0, 2,211,236, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,196,250, 32, 0, 30,255,255, 0, 1, 0, 0, 2,196,254, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,158, 64, 32, 0, 30,255,255, 0, 1, 0, 0, 2,158, 68, 32, 0, 30,255,255, 0, 1, 0, 0, 2,207, 10, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,207, 14, 32, 0, 30,255,255, 0, 1, 0, 0, 2,205,210, 32, 0, 30,255,255, 0, 1, 0, 0, 2,205,214, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,209, 44, 32, 0, 30,255,255, 0, 1, 0, 0, 2,209, 48, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,199,162, 32, 0, 30,255,255, 0, 1, 0, 0, 2,199,166, 32, 0, 30,255,255, 0, 1, 0, 0, 2,198,174, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,198,178, 32, 0, 30,255,255, 0, 1, 0, 0, 2,212, 20, 32, 0, 30,255,255, 0, 1, 0, 0, 2,212, 24, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,215,240, 32, 0, 30,255,255, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 3, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 6, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 8, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 11, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 14, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 16, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 19, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 22, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 24, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 27, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 30, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 32, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 35, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 38, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 40, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 43, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 46, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 48, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 51, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 54, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 56, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 59, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,216,154, 32, - 0, 31, 0, 62, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 64, 0, 1, 0, 0, - 2,216,154, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 67, - 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,216,154, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,216,154, 32, - 0, 30,255,255, 0, 1, 0, 0, 11, 28, 27,176, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 28, 64, 0, 30,255,255, 0, 1, 0, 0, - 2,187,108, 32, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 39, 32, 0, 30,255,255, 0, 3, 0, 0, 2,212,100, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,174, 10, 32, 0, 30,255,255, 0, 1, 0, 0, 2,206,150, 32, 0, 30,255,255, 0, 1, 0, 0, 9,244,204,208, - 0, 30,255,255, 0, 1, 0, 0, 9,245, 11, 16, 0, 30,255,255, 0, 1, 0, 0, 11, 29,167, 48, 0, 30,255,255, 0, 1, 0, 0, - 9,253,180,224, 0, 30,255,255, 0, 1, 0, 0, 11, 27,167, 64, 0, 30,255,255, 0, 1, 0, 0, 11, 27,220,208, 0, 30,255,255, - 0, 1, 0, 0, 11, 27,245, 16, 0, 30,255,255, 0, 1, 0, 0, 11, 28, 37,112, 0, 30,255,255, 0, 1, 0, 0, 9,244,203, 64, - 0, 30,255,255, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 0, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,216,158, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,216,158, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,216,158, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,195, 38, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,195, 38, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,195, 38, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,195, 42, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,195, 42, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,195, 42, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,197,122, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,197,122, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,197,122, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,197,126, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,197,126, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,197,126, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,199, 36, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199, 36, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,199, 36, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199, 40, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,199, 40, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,199, 40, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,211,232, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,211,232, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,211,232, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,211,236, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,211,236, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,211,236, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,196,250, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,196,250, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,196,250, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,196,254, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,196,254, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,196,254, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,158, 64, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,158, 64, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,158, 64, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,158, 68, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,158, 68, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,158, 68, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,207, 10, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,207, 10, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,207, 10, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,207, 14, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,207, 14, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,207, 14, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,205,210, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,205,210, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,205,210, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,205,214, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,205,214, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,205,214, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,209, 44, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,209, 44, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,209, 44, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,209, 48, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,209, 48, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,209, 48, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,199,162, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,199,162, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,199,162, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,199,166, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,199,166, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,199,166, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,198,174, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,198,174, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,198,174, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,198,178, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,198,178, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,198,178, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,212, 20, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,212, 20, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,212, 20, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,212, 24, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212, 24, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,212, 24, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,215,240, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,215,240, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,215,240, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,215,244, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,215,244, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,215,244, 32, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 27,176, - 0, 31, 0, 1, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 3, 0, 1, 0, 0, - 11, 28, 27,176, 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 6, - 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 27,176, - 0, 31, 0, 9, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 11, 0, 1, 0, 0, - 11, 28, 27,176, 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 14, - 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 27,176, - 0, 31, 0, 17, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 19, 0, 1, 0, 0, - 11, 28, 27,176, 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 22, - 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 27,176, - 0, 31, 0, 25, 0, 1, 0, 0, 11, 28, 27,176, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 1, 0, 1, 0, 0, - 11, 28, 28, 64, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 4, - 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 6, 0, 1, 0, 0, 11, 28, 28, 64, - 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 9, 0, 1, 0, 0, - 11, 28, 28, 64, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 12, - 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 14, 0, 1, 0, 0, 11, 28, 28, 64, - 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 17, 0, 1, 0, 0, - 11, 28, 28, 64, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 19, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 20, - 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 22, 0, 1, 0, 0, 11, 28, 28, 64, - 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 25, 0, 1, 0, 0, - 11, 28, 28, 64, 0, 31, 0, 26, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 27, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 28, - 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 29, 0, 1, 0, 0, 11, 28, 28, 64, 0, 31, 0, 30, 0, 1, 0, 0, 11, 28, 28, 64, - 0, 31, 0, 0, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 2, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 5, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 8, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 10, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 13, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 16, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 18, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 21, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 24, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 26, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 29, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 32, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 34, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 37, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 40, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 42, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 45, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 48, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 50, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 53, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 56, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 58, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 61, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 64, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 66, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 69, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 72, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 74, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 77, - 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,187,108, 32, - 0, 31, 0, 80, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 82, 0, 1, 0, 0, - 2,187,108, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,187,108, 32, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 1, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 6, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 9, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 14, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 17, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 19, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 21, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 22, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 23, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 24, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 25, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 26, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 27, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 28, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 29, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 30, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 31, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 32, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 33, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 34, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 35, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 36, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 37, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 38, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 39, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 40, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 41, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 42, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 43, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 44, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 45, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 46, 0, 1, 0, 0, - 11, 28, 39, 32, 0, 31, 0, 47, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 48, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 49, - 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 50, 0, 1, 0, 0, 11, 28, 39, 32, 0, 31, 0, 51, 0, 1, 0, 0, 11, 28, 39, 32, - 0, 31, 0, 0, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 2, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 5, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 8, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 10, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 13, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 16, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 18, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 21, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 24, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 26, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 29, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 32, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 34, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 37, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 40, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 42, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 45, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 48, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 50, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 53, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 56, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 58, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 61, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 64, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 66, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 69, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 72, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 74, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 77, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 80, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 82, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 85, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 88, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 90, 0, 1, 0, 0, - 2,212,100, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 93, - 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,212,100, 32, - 0, 31, 0, 96, 0, 1, 0, 0, 2,212,100, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 71, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 72, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 73, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 76, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 79, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 80, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 81, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 84, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 87, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 88, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 89, 0, 1, 0, 0, - 2,174, 10, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 92, - 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,174, 10, 32, - 0, 31, 0, 95, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 96, 0, 1, 0, 0, 2,174, 10, 32, 0, 31, 0, 0, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 3, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 6, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 8, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 11, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 14, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 16, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 19, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 22, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 24, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 27, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 30, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 32, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 35, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 38, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 40, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 43, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 46, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 48, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 51, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 54, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 56, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 59, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 62, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 64, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 67, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 70, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 72, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 75, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 78, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 80, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 83, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 86, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 88, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 91, - 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,206,150, 32, - 0, 31, 0, 94, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,206,150, 32, 0, 31, 0, 96, 0, 1, 0, 0, - 2,206,150, 32, 0, 31, 0, 0, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 1, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 2, - 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 3, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 4, 0, 1, 0, 0, 9,244,204,208, - 0, 31, 0, 5, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 6, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 7, 0, 1, 0, 0, - 9,244,204,208, 0, 31, 0, 8, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 9, 0, 1, 0, 0, 9,244,204,208, 0, 31, 0, 0, - 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 1, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 2, 0, 1, 0, 0, 9,245, 11, 16, - 0, 31, 0, 3, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 4, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 5, 0, 1, 0, 0, - 9,245, 11, 16, 0, 31, 0, 6, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 7, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 8, - 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 9, 0, 1, 0, 0, 9,245, 11, 16, 0, 31, 0, 0, 0, 1, 0, 0, 11, 29,167, 48, - 0, 31, 0, 1, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 2, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 3, 0, 1, 0, 0, - 11, 29,167, 48, 0, 31, 0, 4, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 5, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 6, - 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 7, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 8, 0, 1, 0, 0, 11, 29,167, 48, - 0, 31, 0, 9, 0, 1, 0, 0, 11, 29,167, 48, 0, 31, 0, 0, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 1, 0, 1, 0, 0, - 9,253,180,224, 0, 31, 0, 2, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 3, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 4, - 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 5, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 6, 0, 1, 0, 0, 9,253,180,224, - 0, 31, 0, 7, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 8, 0, 1, 0, 0, 9,253,180,224, 0, 31, 0, 9, 0, 1, 0, 0, - 9,253,180,224, 0, 31, 0, 0, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 2, - 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 3, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,167, 64, - 0, 31, 0, 5, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 6, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 7, 0, 1, 0, 0, - 11, 27,167, 64, 0, 31, 0, 8, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,167, 64, 0, 31, 0, 0, - 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 2, 0, 1, 0, 0, 11, 27,220,208, - 0, 31, 0, 3, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 5, 0, 1, 0, 0, - 11, 27,220,208, 0, 31, 0, 6, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 7, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 8, - 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,220,208, 0, 31, 0, 0, 0, 1, 0, 0, 11, 27,245, 16, - 0, 31, 0, 1, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 2, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 3, 0, 1, 0, 0, - 11, 27,245, 16, 0, 31, 0, 4, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 5, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 6, - 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 7, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 8, 0, 1, 0, 0, 11, 27,245, 16, - 0, 31, 0, 9, 0, 1, 0, 0, 11, 27,245, 16, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 1, 0, 1, 0, 0, - 11, 28, 37,112, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 3, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 4, - 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 6, 0, 1, 0, 0, 11, 28, 37,112, - 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 9, 0, 1, 0, 0, - 11, 28, 37,112, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 11, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 12, - 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 14, 0, 1, 0, 0, 11, 28, 37,112, - 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 17, 0, 1, 0, 0, - 11, 28, 37,112, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 37,112, 0, 31, 0, 0, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 1, - 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 2, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 3, 0, 1, 0, 0, 9,244,203, 64, - 0, 31, 0, 4, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 5, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 6, 0, 1, 0, 0, - 9,244,203, 64, 0, 31, 0, 7, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 8, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 9, - 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 10, 0, 1, 0, 0, 9,244,203, 64, 0, 31, 0, 0, 0, 1, 0, 0, 11, 28, 31,176, - 0, 31, 0, 1, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 2, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 3, 0, 1, 0, 0, - 11, 28, 31,176, 0, 31, 0, 4, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 5, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 6, - 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 7, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 8, 0, 1, 0, 0, 11, 28, 31,176, - 0, 31, 0, 9, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 10, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 11, 0, 1, 0, 0, - 11, 28, 31,176, 0, 31, 0, 12, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 13, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 14, - 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 15, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 16, 0, 1, 0, 0, 11, 28, 31,176, - 0, 31, 0, 17, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 18, 0, 1, 0, 0, 11, 28, 31,176, 0, 31, 0, 19, 0, 1, 0, 0, - 11, 28, 31,176, 0, 31, 0, 20, 0, 1, 0, 0, 11, 28, 31,176, 68, 65, 84, 65, 0, 0, 0, 96, 10,122, 0, 96, 0, 0, 0,197, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 7,176, 9,242, 80, 80, 9,242, 78,208, 9,242, 79,144, 9,242, 80,144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0,133, 0, 0, 4, 99, 1, 1, 6, 72, 3,223, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, - 2, 23,135, 80, 9,253,179,192, 9,253,179,192, 10,122, 0,240, 10,122, 8, 80, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31,173, 80, - 9,244, 69,224, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 0,240, 0, 0, 0,198, 0, 0, 0, 1, 10,122, 2, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,201, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, 68,200,224, 0, 65,200, 0, 0, 68,200,224, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 72, 0, 26, 6, 72, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,142,208, 11, 30, 10,128, 11, 30, 10,128, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244, 70,160, 9,244, 72, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 2, 16, 0, 0, 0,198, - 0, 0, 0, 1, 10,122, 4,160, 10,122, 0,240, 0, 0, 0, 0, 67, 32, 0, 0,196, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 15, 0, 0,196, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, - 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 0,160, 2,237, 0,143, 2,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, - 0, 0, 1,119, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2,237, 0, 11, 0, 5, - 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,140,144, 11, 31, 75,208, - 11, 31, 75,208, 10,122, 3, 48, 10,122, 3, 48, 9,244, 73, 32, 9,244, 74,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 10,122, 3, 48, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9,154, 95, 32, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, + 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,253,233, 0,143, 1,255, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 32,128,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +168,126,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 4,160, 0, 0, 0,198, - 0, 0, 0, 1, 10,122, 7, 48, 10,122, 2, 16, 0, 0, 0, 0, 67, 33, 0, 0,195, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 16,102,227,195, 90, 30, 24, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, - 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, - 0, 0, 0,159, 0, 0, 1,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,141, 32, 9,244, 94,160, - 9,244, 94,160, 10,122, 5,192, 10,122, 5,192, 9,244, 75, 48, 9,244, 76,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 10,122, 5,192, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,141,176, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +216, 0, 0, 0,160,155,226, 2,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 80,154,252, 3,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,128, 90,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 16, 91,215, 2, +240, 89,215, 2,216,255,225, 2,168, 2,226, 2,240, 2,226, 2,136, 1,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, + 0, 0, 0, 0, 83, 0, 0, 0, 15, 15, 36, 4, 84, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,107,206, 2,168,156,226, 2, +168,156,226, 2,184, 34,226, 2,224, 35,226, 2, 0, 0, 0, 0, 0, 0, 0, 0,200, 80, 6, 4, 32,122, 10, 4, 68, 65, 84, 65, +248, 0, 0, 0,184, 34,226, 2,198, 0, 0, 0, 1, 0, 0, 0,224, 35,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, + 0, 0, 0, 0, 0, 0,208, 65,220,123,132, 55, 0,128,132, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,132, 68, 0, 0,200, 65, 0, 96,132, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 36, 4, 26, 0, 36, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 4, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224, 52,206, 2, 32, 77, 8, 4, 32, 77, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 24, 54, 6, 4,168, 60, 6, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,224, 35,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +184, 34,226, 2, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 18, 0, 0, 0, 57, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 36, 4, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 26, 0, 0, 0, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 4, 58, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 52,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 61, 6, 4,120, 63, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,188, 0, 0, 0,168,156,226, 2, +173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 16, 91,215, 2,197, 0, 0, 0, 1, 0, 0, 0,160, 91,215, 2,128, 90,215, 2, + 24, 2,226, 2,208, 1,226, 2, 64, 1,226, 2, 96, 2,226, 2, 0, 0, 0, 0, 37, 4, 0, 0,240, 4, 0, 0, 85, 2, 0, 0, +194, 2, 0, 0, 3, 3,204, 0,110, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,152,106,206, 2, 88, 39,226, 2, 88, 39,226, 2, + 8, 37,226, 2, 48, 38,226, 2, 0, 0, 0, 0, 0, 0, 0, 0,192, 34,220, 3, 0, 34,220, 3, 68, 65, 84, 65,248, 0, 0, 0, + 8, 37,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 48, 38,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, + 0, 0,208, 65, 48, 39, 68, 55, 0, 0, 76, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 75, 67, 0, 0,200, 65, 0, 0, 75, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,204, 0, 26, 0,204, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 4, 0, 0,240, 4, 0, 0,169, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +204, 0, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 51,206, 2,216, 56, 8, 4,216, 56, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0,240, 63, 6, 4, 88, 65, 6, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48, 38,226, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 37,226, 2, + 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 19, 0, 0, 64, 0, 0, 61, 67, 0, 0,185,194, 0, 0,212,193, +187, 0, 0, 0,204, 0, 0, 0, 18, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,186, 0, 0, 0, 18, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,204, 0, 84, 0,187, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 4, 0, 0,240, 4, 0, 0, 85, 2, 0, 0,168, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 0, 84, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 51,206, 2,112, 73, 8, 4,112, 73, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, +208, 65, 6, 4,192, 66, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,244, 0, 0, 0, 88, 39,226, 2,166, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,171, 5, 4, 72,171, 5, 4, +112,237,205, 2, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0, +112,237,205, 2,221, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,152,157,226, 2, 68, 65, 84, 65,248,133, 0, 0, +152,157,226, 2,220, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,144, 1,228, 2, 19, 0, 0, 0, 1, 0, 1, 0, +144, 1,228, 2, 20, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 21, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, + 1, 0, 1, 0,240, 10,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,240, 16,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 30,221, 2, + 0, 0, 0, 0, 1, 0, 1, 0, 32, 26,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 8, 97,223, 2, 0, 0, 0, 0, 1, 0, 1, 0, +192, 21,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 80, 9,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 12,228, 2, 0, 0, 0, 0, + 1, 0, 1, 0,184, 8,228, 2, 21, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 30, 0,255,255, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 0, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 2, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 3, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 4, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 5, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 6, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 7, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 8, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 9, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 10, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 11, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 12, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 13, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 14, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 15, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 16, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 17, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 18, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 19, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 20, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 21, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 22, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 23, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 24, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 25, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 26, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 27, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 28, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 29, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 30, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 31, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 32, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 33, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 34, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 35, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 36, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 37, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 38, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 39, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 40, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 41, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 42, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 43, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 44, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 45, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 46, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 47, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 48, 0, 1, 0, 0, 0,144, 1,228, 2, 30, 0,255,255, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 0, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 2, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 3, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 4, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 5, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 6, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 7, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 8, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 9, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 10, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 11, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 12, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 13, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 14, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 15, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 16, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 17, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 18, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 19, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 20, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 21, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 22, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 23, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 24, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 25, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 26, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 27, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 28, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 29, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 30, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 31, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 32, 0, 1, 0, 0, 0, +144, 1,228, 2, 31, 0, 33, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 34, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 35, 0, + 1, 0, 0, 0,144, 1,228, 2, 31, 0, 36, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 37, 0, 1, 0, 0, 0,144, 1,228, 2, + 31, 0, 38, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 39, 0, 1, 0, 0, 0,144, 1,228, 2, 31, 0, 40, 0, 1, 0, 0, 0, +144, 1,228, 2, 30, 0,255,255, 1, 0, 0, 0, 80, 99,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,102,229, 2, 30, 0,255,255, + 1, 0, 0, 0, 80,105,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,108,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,143,229, 2, + 30, 0,255,255, 1, 0, 0, 0, 80,146,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,149,229, 2, 30, 0,255,255, 1, 0, 0, 0, + 80,152,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,155,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,158,229, 2, 30, 0,255,255, + 1, 0, 0, 0, 80,161,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,164,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,167,229, 2, + 30, 0,255,255, 1, 0, 0, 0, 80,170,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,173,229, 2, 30, 0,255,255, 1, 0, 0, 0, + 80,176,229, 2, 30, 0,255,255, 1, 0, 0, 0, 80,179,229, 2, 30, 0,255,255, 1, 0, 0, 0,104,182,229, 2, 30, 0,255,255, + 1, 0, 0, 0,112,185,229, 2, 30, 0,255,255, 1, 0, 0, 0,120,188,229, 2, 30, 0,255,255, 1, 0, 0, 0,128,191,229, 2, + 30, 0,255,255, 1, 0, 0, 0,136,194,229, 2, 30, 0,255,255, 1, 0, 0, 0,144,197,229, 2, 30, 0,255,255, 1, 0, 0, 0, +152,200,229, 2, 30, 0,255,255, 1, 0, 0, 0,160,203,229, 2, 30, 0,255,255, 1, 0, 0, 0,168,206,229, 2, 30, 0,255,255, + 1, 0, 0, 0,176,209,229, 2, 30, 0,255,255, 1, 0, 0, 0,184,212,229, 2, 30, 0,255,255, 1, 0, 0, 0,192,215,229, 2, + 30, 0,255,255, 1, 0, 0, 0,200,218,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 4, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 7, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 12, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 15, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 20, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 23, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 28, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 31, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 36, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 39, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 44, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 47, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 52, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 55, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 60, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80, 99,229, 2, + 31, 0, 63, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, + 80, 99,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 68, 0, + 1, 0, 0, 0, 80, 99,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80, 99,229, 2, 30, 0,255,255, 1, 0, 0, 0,184, 8,228, 2, + 30, 0,255,255, 1, 0, 0, 0, 80, 9,228, 2, 30, 0,255,255, 1, 0, 0, 0, 32, 26,228, 2, 30, 0,255,255, 1, 0, 0, 0, +144, 30,221, 2, 30, 0,255,255, 3, 0, 0, 0,144, 12,228, 2, 30, 0,255,255, 1, 0, 0, 0,240, 16,228, 2, 30, 0,255,255, + 1, 0, 0, 0,192, 21,228, 2, 30, 0,255,255, 1, 0, 0, 0, 40,249,213, 2, 30, 0,255,255, 1, 0, 0, 0,240,249,213, 2, + 30, 0,255,255, 1, 0, 0, 0,184,250,213, 2, 30, 0,255,255, 1, 0, 0, 0,128,251,213, 2, 30, 0,255,255, 1, 0, 0, 0, + 72,252,213, 2, 30, 0,255,255, 1, 0, 0, 0, 16,253,213, 2, 30, 0,255,255, 1, 0, 0, 0,216,253,213, 2, 30, 0,255,255, + 1, 0, 0, 0, 8, 97,223, 2, 30, 0,255,255, 1, 0, 0, 0, 64,192,225, 2, 30, 0,255,255, 1, 0, 0, 0,240, 10,228, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,102,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, + 80,102,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,102,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0, 80,102,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0, 80,105,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,105,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, + 80,105,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,105,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, + 80,108,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0, 80,108,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,108,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,108,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, + 80,143,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0, 80,143,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,143,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,143,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,146,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, + 80,146,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,146,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0, 80,146,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0, 80,149,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,149,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, + 80,149,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,149,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, + 80,152,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0, 80,152,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,152,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,152,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, + 80,155,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0, 80,155,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,155,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,155,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,158,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, + 80,158,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,158,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0, 80,158,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0, 80,161,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,161,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, + 80,161,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,161,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, + 80,164,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0, 80,164,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,164,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,164,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, + 80,167,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0, 80,167,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,167,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,167,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,170,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, + 80,170,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,170,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0, 80,170,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0, 80,173,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,173,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, + 80,173,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,173,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 35, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 43, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 51, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 59, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, + 80,176,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0, 80,176,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 67, 0, 1, 0, 0, 0, 80,176,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,176,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 5, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 13, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 21, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 29, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 31, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 33, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 37, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 39, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 41, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 45, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 47, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 49, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 53, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 55, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 57, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 61, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 63, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, + 80,179,229, 2, 31, 0, 65, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0, 80,179,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, 80,179,229, 2, 31, 0, 69, 0, 1, 0, 0, 0, 80,179,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,104,182,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, +104,182,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,104,182,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0,104,182,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0,112,185,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,112,185,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, +112,185,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,112,185,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, +120,188,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0,120,188,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,120,188,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,120,188,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, +128,191,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0,128,191,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,128,191,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,128,191,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,136,194,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, +136,194,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,136,194,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0,136,194,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0,144,197,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,144,197,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, +144,197,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,144,197,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, +152,200,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0,152,200,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,152,200,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,152,200,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, +160,203,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0,160,203,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,160,203,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,160,203,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,168,206,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, +168,206,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,168,206,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0,168,206,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 2, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 4, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 7, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 10, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 12, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 15, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 18, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 20, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 23, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 26, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 28, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 31, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 34, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 36, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 39, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 42, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 44, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 47, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 50, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 52, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 55, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 58, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 60, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 63, 0, + 1, 0, 0, 0,176,209,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,176,209,229, 2, + 31, 0, 66, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 68, 0, 1, 0, 0, 0, +176,209,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,176,209,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 1, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 4, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 6, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 8, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 9, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 12, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 14, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 16, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 17, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 20, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 22, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 24, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 25, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 28, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 30, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 32, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 33, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 36, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 38, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 40, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 41, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 44, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 46, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 48, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 49, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 52, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 54, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 56, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 57, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 60, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 62, 0, 1, 0, 0, 0, +184,212,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 64, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 65, 0, + 1, 0, 0, 0,184,212,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,184,212,229, 2, + 31, 0, 68, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,184,212,229, 2, 31, 0, 0, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 2, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 3, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 5, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 6, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 8, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 10, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 11, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 13, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 14, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 16, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 18, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 19, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 21, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 22, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 24, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 26, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 27, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 29, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 30, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 32, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 34, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 35, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 37, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 38, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 40, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 42, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 43, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 45, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 46, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 48, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 50, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 51, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 53, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 54, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 56, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 58, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 59, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 61, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 62, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 64, 0, 1, 0, 0, 0, +192,215,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 66, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 67, 0, + 1, 0, 0, 0,192,215,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,192,215,229, 2, 31, 0, 69, 0, 1, 0, 0, 0,192,215,229, 2, + 31, 0, 0, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 1, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 2, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 3, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 4, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 5, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 6, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 7, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 8, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 9, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 10, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 11, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 12, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 13, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 14, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 15, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 16, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 17, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 18, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 19, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 20, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 21, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 22, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 23, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 24, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 25, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 26, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 27, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 28, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 29, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 30, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 31, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 32, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 33, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 34, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 35, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 36, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 37, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 38, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 39, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 40, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 41, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 42, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 43, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 44, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 45, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 46, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 47, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 48, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 49, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 50, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 51, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 52, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 53, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 54, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 55, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 56, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 57, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 58, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 59, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 60, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 61, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 62, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 63, 0, 1, 0, 0, 0,200,218,229, 2, + 31, 0, 64, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 65, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 66, 0, 1, 0, 0, 0, +200,218,229, 2, 31, 0, 67, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 68, 0, 1, 0, 0, 0,200,218,229, 2, 31, 0, 69, 0, + 1, 0, 0, 0,200,218,229, 2, 31, 0, 0, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 1, 0, 1, 0, 0, 0,184, 8,228, 2, + 31, 0, 2, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 3, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 4, 0, 1, 0, 0, 0, +184, 8,228, 2, 31, 0, 5, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 6, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 7, 0, + 1, 0, 0, 0,184, 8,228, 2, 31, 0, 8, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 9, 0, 1, 0, 0, 0,184, 8,228, 2, + 31, 0, 10, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 11, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 12, 0, 1, 0, 0, 0, +184, 8,228, 2, 31, 0, 13, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 14, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 15, 0, + 1, 0, 0, 0,184, 8,228, 2, 31, 0, 16, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 17, 0, 1, 0, 0, 0,184, 8,228, 2, + 31, 0, 18, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 19, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 20, 0, 1, 0, 0, 0, +184, 8,228, 2, 31, 0, 21, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 22, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 23, 0, + 1, 0, 0, 0,184, 8,228, 2, 31, 0, 24, 0, 1, 0, 0, 0,184, 8,228, 2, 31, 0, 25, 0, 1, 0, 0, 0,184, 8,228, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 1, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 80, 9,228, 2, 31, 0, 3, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 4, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 6, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 7, 0, 1, 0, 0, 0, 80, 9,228, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 9, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 80, 9,228, 2, 31, 0, 11, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 12, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 14, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 15, 0, 1, 0, 0, 0, 80, 9,228, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 17, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 80, 9,228, 2, 31, 0, 19, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 20, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 21, 0, + 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 22, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 23, 0, 1, 0, 0, 0, 80, 9,228, 2, + 31, 0, 24, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 25, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 26, 0, 1, 0, 0, 0, + 80, 9,228, 2, 31, 0, 27, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 28, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 29, 0, + 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 30, 0, 1, 0, 0, 0, 80, 9,228, 2, 31, 0, 0, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 1, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 2, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 3, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 4, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 5, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 6, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 7, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 8, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 9, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 10, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 11, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 12, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 13, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 14, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 15, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 16, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 17, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 18, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 19, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 20, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 21, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 22, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 23, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 24, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 25, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 26, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 27, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 28, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 29, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 30, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 31, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 32, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 33, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 34, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 35, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 36, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 37, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 38, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 39, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 40, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 41, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 42, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 43, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 44, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 45, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 46, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 47, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 48, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 49, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 50, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 51, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 52, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 53, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 54, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 55, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 56, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 57, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 58, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 59, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 60, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 61, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 62, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 63, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 64, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 65, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 66, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 67, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 68, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 69, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 70, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 71, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 72, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 73, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 74, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 75, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 76, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 77, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 78, 0, + 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 79, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 80, 0, 1, 0, 0, 0, 32, 26,228, 2, + 31, 0, 81, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 82, 0, 1, 0, 0, 0, 32, 26,228, 2, 31, 0, 83, 0, 1, 0, 0, 0, + 32, 26,228, 2, 31, 0, 0, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 1, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 2, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 3, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 4, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 5, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 6, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 7, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 8, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 9, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 10, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 11, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 12, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 13, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 14, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 15, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 16, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 17, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 18, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 19, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 20, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 21, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 22, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 23, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 24, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 25, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 26, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 27, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 28, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 29, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 30, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 31, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 32, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 33, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 34, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 35, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 36, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 37, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 38, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 39, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 40, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 41, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 42, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 43, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 44, 0, 1, 0, 0, 0,144, 30,221, 2, + 31, 0, 45, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 46, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 47, 0, 1, 0, 0, 0, +144, 30,221, 2, 31, 0, 48, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 49, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 50, 0, + 1, 0, 0, 0,144, 30,221, 2, 31, 0, 51, 0, 1, 0, 0, 0,144, 30,221, 2, 31, 0, 0, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 1, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 2, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 3, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 4, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 5, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 6, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 7, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 8, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 9, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 10, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 11, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 12, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 13, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 14, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 15, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 16, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 17, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 18, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 19, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 20, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 21, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 22, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 23, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 24, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 25, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 26, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 27, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 28, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 29, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 30, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 31, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 32, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 33, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 34, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 35, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 36, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 37, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 38, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 39, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 40, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 41, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 42, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 43, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 44, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 45, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 46, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 47, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 48, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 49, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 50, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 51, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 52, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 53, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 54, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 55, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 56, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 57, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 58, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 59, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 60, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 61, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 62, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 63, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 64, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 65, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 66, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 67, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 68, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 69, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 70, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 71, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 72, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 73, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 74, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 75, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 76, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 77, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 78, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 79, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 80, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 81, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 82, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 83, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 84, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 85, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 86, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 87, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 88, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 89, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 90, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 91, 0, 1, 0, 0, 0, +144, 12,228, 2, 31, 0, 92, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 93, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 94, 0, + 1, 0, 0, 0,144, 12,228, 2, 31, 0, 95, 0, 1, 0, 0, 0,144, 12,228, 2, 31, 0, 96, 0, 1, 0, 0, 0,144, 12,228, 2, + 31, 0, 0, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 1, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 2, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 3, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 4, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 5, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 6, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 7, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 8, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 9, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 10, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 11, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 12, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 13, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 14, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 15, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 16, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 17, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 18, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 19, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 20, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 21, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 22, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 23, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 24, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 25, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 26, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 27, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 28, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 29, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 30, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 31, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 32, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 33, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 34, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 35, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 36, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 37, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 38, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 39, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 40, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 41, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 42, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 43, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 44, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 45, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 46, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 47, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 48, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 49, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 50, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 51, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 52, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 53, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 54, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 55, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 56, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 57, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 58, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 59, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 60, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 61, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 62, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 63, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 64, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 65, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 66, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 67, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 68, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 69, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 70, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 71, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 72, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 73, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 74, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 75, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 76, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 77, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 78, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 79, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 80, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 81, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 82, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 83, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 84, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 85, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 86, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 87, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 88, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 89, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 90, 0, 1, 0, 0, 0, +240, 16,228, 2, 31, 0, 91, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 92, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 93, 0, + 1, 0, 0, 0,240, 16,228, 2, 31, 0, 94, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 95, 0, 1, 0, 0, 0,240, 16,228, 2, + 31, 0, 96, 0, 1, 0, 0, 0,240, 16,228, 2, 31, 0, 0, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 1, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 2, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 3, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 4, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 5, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 6, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 7, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 8, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 9, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 10, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 11, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 12, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 13, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 14, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 15, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 16, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 17, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 18, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 19, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 20, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 21, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 22, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 23, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 24, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 25, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 26, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 27, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 28, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 29, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 30, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 31, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 32, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 33, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 34, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 35, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 36, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 37, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 38, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 39, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 40, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 41, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 42, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 43, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 44, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 45, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 46, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 47, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 48, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 49, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 50, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 51, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 52, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 53, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 54, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 55, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 56, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 57, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 58, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 59, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 60, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 61, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 62, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 63, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 64, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 65, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 66, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 67, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 68, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 69, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 70, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 71, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 72, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 73, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 74, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 75, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 76, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 77, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 78, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 79, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 80, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 81, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 82, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 83, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 84, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 85, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 86, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 87, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 88, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 89, 0, 1, 0, 0, 0, +192, 21,228, 2, 31, 0, 90, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 91, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 92, 0, + 1, 0, 0, 0,192, 21,228, 2, 31, 0, 93, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 94, 0, 1, 0, 0, 0,192, 21,228, 2, + 31, 0, 95, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 96, 0, 1, 0, 0, 0,192, 21,228, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 40,249,213, 2, 31, 0, 1, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 2, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 40,249,213, 2, 31, 0, 4, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 5, 0, 1, 0, 0, 0, 40,249,213, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 7, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 40,249,213, 2, 31, 0, 9, 0, 1, 0, 0, 0, 40,249,213, 2, 31, 0, 0, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 1, 0, + 1, 0, 0, 0,240,249,213, 2, 31, 0, 2, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 3, 0, 1, 0, 0, 0,240,249,213, 2, + 31, 0, 4, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 5, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 6, 0, 1, 0, 0, 0, +240,249,213, 2, 31, 0, 7, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 8, 0, 1, 0, 0, 0,240,249,213, 2, 31, 0, 9, 0, + 1, 0, 0, 0,240,249,213, 2, 31, 0, 0, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 1, 0, 1, 0, 0, 0,184,250,213, 2, + 31, 0, 2, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 3, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 4, 0, 1, 0, 0, 0, +184,250,213, 2, 31, 0, 5, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 6, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 7, 0, + 1, 0, 0, 0,184,250,213, 2, 31, 0, 8, 0, 1, 0, 0, 0,184,250,213, 2, 31, 0, 9, 0, 1, 0, 0, 0,184,250,213, 2, + 31, 0, 0, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 1, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 2, 0, 1, 0, 0, 0, +128,251,213, 2, 31, 0, 3, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 4, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 5, 0, + 1, 0, 0, 0,128,251,213, 2, 31, 0, 6, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 7, 0, 1, 0, 0, 0,128,251,213, 2, + 31, 0, 8, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 9, 0, 1, 0, 0, 0,128,251,213, 2, 31, 0, 0, 0, 1, 0, 0, 0, + 72,252,213, 2, 31, 0, 1, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 2, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 3, 0, + 1, 0, 0, 0, 72,252,213, 2, 31, 0, 4, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 5, 0, 1, 0, 0, 0, 72,252,213, 2, + 31, 0, 6, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 7, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 8, 0, 1, 0, 0, 0, + 72,252,213, 2, 31, 0, 9, 0, 1, 0, 0, 0, 72,252,213, 2, 31, 0, 0, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 1, 0, + 1, 0, 0, 0, 16,253,213, 2, 31, 0, 2, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 3, 0, 1, 0, 0, 0, 16,253,213, 2, + 31, 0, 4, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 5, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 6, 0, 1, 0, 0, 0, + 16,253,213, 2, 31, 0, 7, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 8, 0, 1, 0, 0, 0, 16,253,213, 2, 31, 0, 9, 0, + 1, 0, 0, 0, 16,253,213, 2, 31, 0, 0, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 1, 0, 1, 0, 0, 0,216,253,213, 2, + 31, 0, 2, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 3, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 4, 0, 1, 0, 0, 0, +216,253,213, 2, 31, 0, 5, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 6, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 7, 0, + 1, 0, 0, 0,216,253,213, 2, 31, 0, 8, 0, 1, 0, 0, 0,216,253,213, 2, 31, 0, 9, 0, 1, 0, 0, 0,216,253,213, 2, + 31, 0, 0, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 1, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 2, 0, 1, 0, 0, 0, + 8, 97,223, 2, 31, 0, 3, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 4, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 5, 0, + 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 6, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 7, 0, 1, 0, 0, 0, 8, 97,223, 2, + 31, 0, 8, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 9, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 10, 0, 1, 0, 0, 0, + 8, 97,223, 2, 31, 0, 11, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 12, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 13, 0, + 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 14, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 15, 0, 1, 0, 0, 0, 8, 97,223, 2, + 31, 0, 16, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 17, 0, 1, 0, 0, 0, 8, 97,223, 2, 31, 0, 18, 0, 1, 0, 0, 0, + 8, 97,223, 2, 31, 0, 0, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 1, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 2, 0, + 1, 0, 0, 0, 64,192,225, 2, 31, 0, 3, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 4, 0, 1, 0, 0, 0, 64,192,225, 2, + 31, 0, 5, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 6, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 7, 0, 1, 0, 0, 0, + 64,192,225, 2, 31, 0, 8, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 9, 0, 1, 0, 0, 0, 64,192,225, 2, 31, 0, 10, 0, + 1, 0, 0, 0, 64,192,225, 2, 31, 0, 0, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 1, 0, 1, 0, 0, 0,240, 10,228, 2, + 31, 0, 2, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 3, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 4, 0, 1, 0, 0, 0, +240, 10,228, 2, 31, 0, 5, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 6, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 7, 0, + 1, 0, 0, 0,240, 10,228, 2, 31, 0, 8, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 9, 0, 1, 0, 0, 0,240, 10,228, 2, + 31, 0, 10, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 11, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 12, 0, 1, 0, 0, 0, +240, 10,228, 2, 31, 0, 13, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 14, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 15, 0, + 1, 0, 0, 0,240, 10,228, 2, 31, 0, 16, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 17, 0, 1, 0, 0, 0,240, 10,228, 2, + 31, 0, 18, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 19, 0, 1, 0, 0, 0,240, 10,228, 2, 31, 0, 20, 0, 1, 0, 0, 0, +240, 10,228, 2, 68, 65, 84, 65, 96, 0, 0, 0,160, 91,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16, 91,215, 2, +168, 2,226, 2,248, 0,226, 2,208, 1,226, 2,240, 2,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 85, 0, 0, 0, +194, 2, 0, 0, 1, 1, 36, 4,110, 2, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 24,108,206, 2, 40, 38,227, 2, 40, 38,227, 2, +128, 40,226, 2, 0, 37,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,220, 3, 32, 35,220, 3, 68, 65, 84, 65,248, 0, 0, 0, +128, 40,226, 2,198, 0, 0, 0, 1, 0, 0, 0,168, 41,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,128,132, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 96,132, 68, 0, 0,200, 65, 0, 96,132, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 36, 4, 26, 0, 36, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 4, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 4, 26, 0, 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176, 55,206, 2,136, 60, 8, 4,136, 60, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 56, 67, 6, 4,176,227, 6, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168, 41,226, 2,198, 0, 0, 0, 1, 0, 0, 0,208, 42,226, 2,128, 40,226, 2, + 0, 0, 0, 0, 0, 0, 32, 67, 0,192, 6,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,190,195, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,124, 1,143, 0,124, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 71, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,124, 1, 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 54,206, 2,120,129, 4, 4,120,129, 4, 4,152,129,226, 2,152,129,226, 2, + 56,227, 6, 4,208,225, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,129,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 43,221, 3, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208, 42,226, 2,198, 0, 0, 0, 1, 0, 0, 0,216, 35,227, 2,168, 41,226, 2, + 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,111, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 55,206, 2, 80,131, 4, 4, 80,131, 4, 4, 16,131,226, 2, 16,131,226, 2, + 88,225, 6, 4,240,223, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 16,131,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,112,206, 2, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, +115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, +115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 35,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 37,227, 2,208, 42,226, 2, + 0, 0, 0, 0, 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195, +163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 35, 4, 0, 0,111, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0, 37,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,216, 35,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 35, 4, 0, 0, +111, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 3, 84, 2, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 53,206, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,217, 6, 4,232,216, 6, 4, 0, 0, 0, 0,192, 67,227, 2, 68, 65, 84, 65, + 68, 3, 0, 0,192, 67,227, 2,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,206,104,211, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, + 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,178,157,229, 62, 67,221, 41,191,116,169, 81,191,184,158, 81,191, +117, 90,127, 63,162,192,163, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188,138, 56,189, 63,218, 72,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 39,240,191, 62,124,116, 85, 63, 80,189, 70,188, 0, 0,185,180, +100, 19,121,190, 40, 29,240, 61,236,186, 10, 63, 0, 0,208, 51,197,112,117,194,178,208,216, 65,221,158, 5,194,231,251,159,192, +221, 54,114, 66, 29,247,213,193, 59,221, 3, 66, 25, 4,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,178,157,229, 62, 67,221, 41,191,116,169, 81,191,184,158, 81,191, +117, 90,127, 63,162,192,163, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188,138, 56,189, 63,218, 72,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 47, 45, 18, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 45, 18, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 45, 18, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, + 33,210,111, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 11, 39, 5, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 40, 38,227, 2, +157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,148, 0, 0, 0, +128,251,213, 2,193, 0, 0, 0, 1, 0, 0, 0, 72,252,213, 2,184,250,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97, +109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 8,226, 2,240, 11,226, 2, 56, 12,226, 2,168, 76,227, 2, 48, 92,215, 2, 0, 95,215, 2, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 72, 8,226, 2,194, 0, 0, 0, 1, 0, 0, 0,144, 8,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 8,226, 2,194, 0, 0, 0, 1, 0, 0, 0,216, 8,226, 2, + 72, 8,226, 2, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216, 8,226, 2,194, 0, 0, 0, + 1, 0, 0, 0, 32, 9,226, 2,144, 8,226, 2, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 32, 9,226, 2,194, 0, 0, 0, 1, 0, 0, 0,104, 9,226, 2,216, 8,226, 2, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,104, 9,226, 2,194, 0, 0, 0, 1, 0, 0, 0,176, 9,226, 2, 32, 9,226, 2, 0, 0, 0, 0, + 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176, 9,226, 2,194, 0, 0, 0, 1, 0, 0, 0,248, 9,226, 2, +104, 9,226, 2, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248, 9,226, 2,194, 0, 0, 0, + 1, 0, 0, 0, 64, 10,226, 2,176, 9,226, 2, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 64, 10,226, 2,194, 0, 0, 0, 1, 0, 0, 0,136, 10,226, 2,248, 9,226, 2, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,136, 10,226, 2,194, 0, 0, 0, 1, 0, 0, 0,208, 10,226, 2, 64, 10,226, 2, 0, 0, 0, 0, + 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 10,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 24, 11,226, 2, +136, 10,226, 2, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24, 11,226, 2,194, 0, 0, 0, + 1, 0, 0, 0, 96, 11,226, 2,208, 10,226, 2, 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 96, 11,226, 2,194, 0, 0, 0, 1, 0, 0, 0,168, 11,226, 2, 24, 11,226, 2, 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,168, 11,226, 2,194, 0, 0, 0, 1, 0, 0, 0,240, 11,226, 2, 96, 11,226, 2, 0, 0, 0, 0, + 68, 1,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240, 11,226, 2,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +168, 11,226, 2, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56, 12,226, 2,195, 0, 0, 0, + 1, 0, 0, 0, 80, 71,227, 2, 0, 0, 0, 0,144, 8,226, 2,216, 8,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 80, 71,227, 2,195, 0, 0, 0, 1, 0, 0, 0,152, 71,227, 2, 56, 12,226, 2,144, 8,226, 2,104, 9,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152, 71,227, 2,195, 0, 0, 0, 1, 0, 0, 0,224, 71,227, 2, + 80, 71,227, 2,216, 8,226, 2,176, 9,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224, 71,227, 2, +195, 0, 0, 0, 1, 0, 0, 0, 40, 72,227, 2,152, 71,227, 2,104, 9,226, 2,176, 9,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0, 40, 72,227, 2,195, 0, 0, 0, 1, 0, 0, 0,112, 72,227, 2,224, 71,227, 2,104, 9,226, 2, +248, 9,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 72,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +184, 72,227, 2, 40, 72,227, 2,248, 9,226, 2, 64, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +184, 72,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 73,227, 2,112, 72,227, 2, 32, 9,226, 2,136, 10,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0, 73,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 72, 73,227, 2,184, 72,227, 2, + 64, 10,226, 2,136, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72, 73,227, 2,195, 0, 0, 0, + 1, 0, 0, 0,144, 73,227, 2, 0, 73,227, 2, 72, 8,226, 2,248, 9,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,144, 73,227, 2,195, 0, 0, 0, 1, 0, 0, 0,216, 73,227, 2, 72, 73,227, 2, 72, 8,226, 2,136, 10,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216, 73,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 32, 74,227, 2, +144, 73,227, 2,176, 9,226, 2,208, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32, 74,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,104, 74,227, 2,216, 73,227, 2, 32, 9,226, 2,208, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,104, 74,227, 2,195, 0, 0, 0, 1, 0, 0, 0,176, 74,227, 2, 32, 74,227, 2, 64, 10,226, 2, +208, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176, 74,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +248, 74,227, 2,104, 74,227, 2, 24, 11,226, 2, 96, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +248, 74,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 64, 75,227, 2,176, 74,227, 2,176, 9,226, 2, 96, 11,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64, 75,227, 2,195, 0, 0, 0, 1, 0, 0, 0,136, 75,227, 2,248, 74,227, 2, +208, 10,226, 2, 24, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136, 75,227, 2,195, 0, 0, 0, + 1, 0, 0, 0,208, 75,227, 2, 64, 75,227, 2,248, 9,226, 2,168, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,208, 75,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 24, 76,227, 2,136, 75,227, 2, 24, 11,226, 2,168, 11,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24, 76,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 96, 76,227, 2, +208, 75,227, 2,104, 9,226, 2,240, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96, 76,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,168, 76,227, 2, 24, 76,227, 2, 96, 11,226, 2,240, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,168, 76,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 76,227, 2,168, 11,226, 2, +240, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 48, 92,215, 2,197, 0, 0, 0, 1, 0, 0, 0, +192, 92,215, 2, 0, 0, 0, 0,104, 9,226, 2,144, 8,226, 2,216, 8,226, 2,176, 9,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, +248,233,220, 2,248,233,220, 2, 80, 39,227, 2,120, 40,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 80, 39,227, 2,198, 0, 0, 0, 1, 0, 0, 0,120, 40,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 40,227, 2,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 39,227, 2, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, + 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, + 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, + 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +192, 92,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 80, 93,215, 2, 48, 92,215, 2,136, 10,226, 2, 64, 10,226, 2,208, 10,226, 2, + 32, 9,226, 2, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 87,227, 2, 56, 87,227, 2,160, 41,227, 2,200, 42,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 41,227, 2,198, 0, 0, 0, 1, 0, 0, 0, +200, 42,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, + 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, + 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +200, 42,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160, 41,227, 2, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, + 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, +113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, +113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,132,226, 2,176,148,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,136,132,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 0,134,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, + 0,134,226, 2,196, 0, 0, 0, 1, 0, 0, 0,120,135,226, 2,136,132,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, + 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,120,135,226, 2,196, 0, 0, 0, 1, 0, 0, 0, +240,136,226, 2, 0,134,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,255,216, 0,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 10,122, 7, 48, 0, 0, 0,198, - 0, 0, 0, 1, 10,122, 8, 80, 10,122, 4,160, 0, 0, 0, 0, 67, 52, 0, 0,196,158, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 35, 0, 0,196,158, 96, 0,195,142,128, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 0, - 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 0,180, 3,214, 0,163, 3,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 6, 71, - 0, 0, 0,159, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, - 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,136,160, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 10,122, 8, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 10,122, 7, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 6, 71, 0, 0, 0,159, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5,168, 3,197, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,136, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 86,144, 9,244, 86, 32, - 0, 0, 0, 0, 2,205,224, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,205,224, 32, 0, 0, 0,156, 0, 0, 0, 1, 63,140, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,210, 18,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191,128, 6,141,191,128, 0, 0,128, 0, 0, 0,128, 0, 0, 0,190, 76,210, 10,128, 0, 0, 0, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,209,239, 68, - 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 52, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185, -190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 95, 62,192,173,120, 51, 64,213,208,115, 63,128, 0, 0, 62,229,157,178, -191, 40,202, 72,191, 81,169,114,191, 81,158,184, 63,127, 90,117, 62,162,183,140, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, - 63,188, 6, 57,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 62,191,241, 25, - 63, 85,116, 70,188, 70,172,224, 52,133, 0, 0,190,122,169,195, 61,241,164,220, 63, 11,156,217,179,200, 0, 0,194,117,112,201, - 65,216,208,182,194, 5,158,222,192,159,251,235, 66,114, 54,221,193,213,247, 29, 66, 3,221, 58, 64,160, 4, 26, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,229,157,178, -191, 40,202, 72,191, 81,169,114,191, 81,158,184, 63,127, 90,117, 62,162,183,140, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, - 63,188, 6, 57,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 63,181,182, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,181,182, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,181,182, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,210, 33, 65,111,210, 33, 0, 0, 0, 0, 0, 0, 0, 0, 58,165,133,101, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 32, 66,137,152, 85, 66,126, 27,113, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,240, 9,253,179,192, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, - 0, 1, 0, 3, 24, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 68,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 9,253,180,224, 0, 0, 0,193, 0, 0, 0, 1, 11, 27,167, 64, 11, 29,167, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,253,181,160, 11, 29,252, 48, 11, 29,177, 48, 11, 31,174, 80, 11, 31,174,144, - 11, 27,162, 32, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,181,160, 0, 0, 0,194, 0, 0, 0, 1, - 9,253,181,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,253,181,224, - 0, 0, 0,194, 0, 0, 0, 1, 10,122, 9,208, 9,253,181,160, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 10,122, 9,208, 0, 0, 0,194, 0, 0, 0, 1, 10,122, 10, 16, 9,253,181,224, 0, 0, 0, 0, 7,126, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 10,122, 10, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,249,240, 10,122, 9,208, - 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,249,240, 0, 0, 0,194, 0, 0, 0, 1, - 11, 29,250, 48, 10,122, 10, 16, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250, 48, - 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,112, 11, 29,249,240, 0, 0, 0, 0, 7,126, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 29,250,112, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,176, 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 1,140, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250,176, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,250,240, 11, 29,250,112, - 0, 0, 0, 0, 6, 32, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,250,240, 0, 0, 0,194, 0, 0, 0, 1, - 11, 29,251, 48, 11, 29,250,176, 0, 0, 0, 0, 6, 32, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251, 48, - 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,112, 11, 29,250,240, 0, 0, 0, 0, 7,126, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 29,251,112, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,176, 11, 29,251, 48, 0, 0, 0, 0, 5, 64, 1,140, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251,176, 0, 0, 0,194, 0, 0, 0, 1, 11, 29,251,240, 11, 29,251,112, - 0, 0, 0, 0, 5, 64, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,251,240, 0, 0, 0,194, 0, 0, 0, 1, - 11, 29,252, 48, 11, 29,251,176, 0, 0, 0, 0, 1, 68, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,252, 48, - 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,251,240, 0, 0, 0, 0, 1, 68, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 29,177, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,112, 0, 0, 0, 0, 9,253,181,224, 10,122, 9,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,176, - 11, 29,177, 48, 9,253,181,224, 11, 29,249,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,176, - 0, 0, 0,195, 0, 0, 0, 1, 11, 29,177,240, 11, 29,177,112, 10,122, 9,208, 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,177,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178, 48, 11, 29,177,176, 11, 29,249,240, - 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178, 48, 0, 0, 0,195, 0, 0, 0, 1, - 11, 29,178,112, 11, 29,177,240, 11, 29,249,240, 11, 29,250,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 29,178,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178,176, 11, 29,178, 48, 11, 29,250,112, 11, 29,250,176, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178,176, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,178,240, 11, 29,178,112, - 10,122, 10, 16, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,178,240, 0, 0, 0,195, - 0, 0, 0, 1, 11, 29,179, 48, 11, 29,178,176, 11, 29,250,176, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 29,179, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,112, 11, 29,178,240, 9,253,181,160, 11, 29,250,112, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,176, - 11, 29,179, 48, 9,253,181,160, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,176, - 0, 0, 0,195, 0, 0, 0, 1, 11, 29,179,240, 11, 29,179,112, 11, 29,250, 48, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,179,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180, 48, 11, 29,179,176, 10,122, 10, 16, - 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180, 48, 0, 0, 0,195, 0, 0, 0, 1, - 11, 29,180,112, 11, 29,179,240, 11, 29,250,176, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 29,180,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180,176, 11, 29,180, 48, 11, 29,251,112, 11, 29,251,176, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180,176, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,180,240, 11, 29,180,112, - 11, 29,250, 48, 11, 29,251,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,180,240, 0, 0, 0,195, - 0, 0, 0, 1, 11, 29,181, 48, 11, 29,180,176, 11, 29,251, 48, 11, 29,251,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 29,181, 48, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,112, 11, 29,180,240, 11, 29,250,112, 11, 29,251,240, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,112, 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,176, - 11, 29,181, 48, 11, 29,251,112, 11, 29,251,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,176, - 0, 0, 0,195, 0, 0, 0, 1, 11, 29,181,240, 11, 29,181,112, 11, 29,249,240, 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 29,181,240, 0, 0, 0,195, 0, 0, 0, 1, 11, 31,174, 80, 11, 29,181,176, 11, 29,251,176, - 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 31,174, 80, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 29,181,240, 11, 29,251,240, 11, 29,252, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 11, 31,174,144, 0, 0, 0,197, 0, 0, 0, 1, 11, 29,202, 96, 0, 0, 0, 0, 11, 29,249,240, 9,253,181,224, 10,122, 9,208, - 11, 29,250, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,166,224, 11, 27,166,224, 11, 31,175, 32, 11, 31,176, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 31,175, 32, 0, 0, 0,198, 0, 0, 0, 1, - 11, 31,176, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, - 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, - 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 31,176, 64, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 31,175, 32, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,238, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, - 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 29,202, 96, 0, 0, 0,197, 0, 0, 0, 1, 11, 23, 81, 96, 11, 31,174,144, - 11, 29,250,240, 11, 29,250,176, 11, 29,251, 48, 10,122, 10, 16, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, - 0, 0, 1,139, 4, 4, 1, 94, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,146, 48, 11, 27,146, 48, - 11, 29,202,240, 11, 29,204, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 29,202,240, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,204, 16, 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, - 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, 67,174,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 1,114, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 94, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29,204, 16, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,202,240, - 0, 0, 0, 0, 67,174,128, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,166,127,255,195,184,255,255, 0, 0, 0, 0, - 0, 0, 1, 77, 0, 0, 1, 94, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 1, 78, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 94, 1,114, 1, 77, 1,114, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 23, 78,128, 11, 27,144,192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 23, 78,128, 0, 0, 0,196, - 0, 0, 0, 1, 11, 23, 79,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,220, 1, 76, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,240,136,226, 2,196, 0, 0, 0, 1, 0, 0, 0,104,138,226, 2,120,135,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 23, 79,240, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,131,208, 11, 23, 78,128, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1, 76, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,104,138,226, 2, +196, 0, 0, 0, 1, 0, 0, 0,224,139,226, 2,240,136,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, + 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 27,131,208, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,133, 64, 11, 23, 79,240, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, -114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, - 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,224,139,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 88,141,226, 2, +104,138,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,133, 64, 0, 0, 0,196, 0, 0, 0, 1, - 11, 27,134,176, 11, 27,131,208, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, 1, 76, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0, 88,141,226, 2,196, 0, 0, 0, 1, 0, 0, 0,208,142,226, 2,224,139,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,134,176, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,136, 32, 11, 27,133, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, + 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,254, 58, 1, 76, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,208,142,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 72,144,226, 2, 88,141,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,136, 32, - 0, 0, 0,196, 0, 0, 0, 1, 11, 27,137,144, 11, 27,134,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, - 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 34, 1, 76, 0, 0, - 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 72,144,226, 2,196, 0, 0, 0, 1, 0, 0, 0,192,145,226, 2,208,142,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,137,144, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,139, 0, - 11, 27,136, 32, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, +192,145,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 56,147,226, 2, 72,144,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 11, 27,139, 0, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,140,112, 11, 27,137,144, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 56,147,226, 2,196, 0, 0, 0, 1, 0, 0, 0, +176,148,226, 2,192,145,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,253,242, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,140,112, 0, 0, 0,196, - 0, 0, 0, 1, 11, 27,141,224, 11, 27,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,218, 1, 76, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0,176,148,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,147,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,141,224, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,143, 80, 11, 27,140,112, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 56, 87,227, 2, +162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 27,143, 80, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,144,192, 11, 27,141,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112, -117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, - 1, 76, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,144,192, 0, 0, 0,196, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,143, 80, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 0, 0, 0, 80, 93,215, 2,197, 0, 0, 0, 1, 0, 0, 0,224, 93,215, 2,192, 92,215, 2, 72, 8,226, 2, +248, 9,226, 2, 64, 10,226, 2,136, 10,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, + 17, 17, 32, 6,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,255,220, 2, 40,255,220, 2,240, 43,227, 2, + 64, 46,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240, 43,227, 2, +198, 0, 0, 0, 1, 0, 0, 0, 24, 45,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 24, 45,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 64, 46,227, 2,240, 43,227, 2, 0, 0, 0, 0, + 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0, +220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,150,226, 2, 40,150,226, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 40,150,226, 2,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,216, 11, 27,146, 48, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 64, 46,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 45,227, 2, 0, 0, 0, 0, + 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,224,198,182,194,184,177,165, 67, 51, 5, 0, 0, + 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, + 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 52, 0, 0, 0, 40,255,220, 2,175, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,224, 93,215, 2, +197, 0, 0, 0, 1, 0, 0, 0,112, 94,215, 2, 80, 93,215, 2, 24, 11,226, 2, 96, 11,226, 2,176, 9,226, 2,208, 10,226, 2, + 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,227, 2, 64, 88,227, 2,104, 47,227, 2,144, 48,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,104, 47,227, 2,198, 0, 0, 0, 1, 0, 0, 0,144, 48,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144, 48,227, 2, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104, 47,227, 2, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, + 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, + 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0, +126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 23, 81, 96, 0, 0, 0,197, 0, 0, 0, 1, - 11, 27,152, 0, 11, 29,202, 96, 9,253,181,160, 11, 29,250,112, 11, 29,250,176, 11, 29,250,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 1,139, 17, 17, 6, 32, 1,140, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 29,205, 48, 11, 29,205, 48, 11, 27,147, 48, 11, 27,150,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 11, 27,147, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,148, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 74, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,196, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 0, 25, 68,195,224, 0, 65,200, 0, 0, 68,195,224, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 32, 0, 26, 6, 32, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 32, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,136, 2, 0, 0, 64, 88,227, 2,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,148, 80, 0, 0, 0,198, 0, 0, 0, 1, - 11, 27,150,224, 11, 27,147, 48, 0, 0, 0, 0, 67, 92, 0, 0,195,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 75, 0, 0, -195,185, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0,202, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, - 1,114, 0,203, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, - 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1,114, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 27,149,112, 11, 27,149,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 27,149,112, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, - 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, - 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112, -101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,196, - 0,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,150,224, 0, 0, 0,198, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,148, 80, 0, 0, 0, 0, 68,160, 0, 0, 0, 0, 0, 0, 67,112, 0, 0,195, 31, 80, 0, 68,179,234, 0, -194,182,198,224, 67,165,177,184, 0, 0, 5, 51, 0, 0, 5, 68, 0, 0, 0, 18, 0, 0, 1,113, 0, 0, 0, 0, 0, 0, 5, 50, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 5, 50, 0, 0, 0, 18, 0, 0, 1,113, 63,128, 0, 0, 63,128, 0, 0, - 70,250, 0, 0, 70,250, 0, 0, 63, 0, 0, 0, 63,154,225, 72, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 5, 68, - 1,114, 5, 51, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 6, 31, 0, 0, 0, 26, - 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 68, 1,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 52, - 11, 29,205, 48, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,255, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,152, 0, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,154,208, 11, 23, 81, 96, 11, 29,251,112, - 11, 29,251,176, 11, 29,250, 48, 11, 29,251, 48, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,126, 0, 0, 1,141, 0, 0, 3,233, - 9, 9, 2, 62, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,188, 32, 2,217,188, 32, 11, 27,152,144, - 11, 27,153,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,152,144, - 0, 0, 0,198, 0, 0, 0, 1, 11, 27,153,176, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 15,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 61, 0, 0, 0, 0, 0, 0, 0, 25, - 68, 15, 64, 0, 65,200, 0, 0, 68, 15, 64, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 0, 12, 0, 10, 2, 62, 0, 26, 2, 62, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, - 0, 0, 7,126, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 62, 0, 26, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 11, 27,153,176, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,152,144, 0, 0, 0, 0, - 67,181,128, 0, 0, 0, 0, 0, 67,218,128, 0, 0, 0, 0, 0, 68, 1,248,131, 0, 0, 0, 0, 68, 3, 26, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 61, 0, 0, 0, 0, 0, 0, 2, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 35,215, 10, - 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2, 62, 2, 67, 2, 62, 2, 67, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,126, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 62, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 2,136, 2,217,188, 32, 0, 0, 0,169, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3027,534 +3034,536 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0,112, 94,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 95,215, 2,224, 93,215, 2,168, 11,226, 2,240, 11,226, 2, + 96, 11,226, 2, 24, 11,226, 2, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, + 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 55,227, 2,128, 55,227, 2,184, 49,227, 2, 88, 54,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184, 49,227, 2,198, 0, 0, 0, + 1, 0, 0, 0,224, 50,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,126, 68, + 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0, +141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0,224, 50,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 8, 52,227, 2,184, 49,227, 2, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8, 52,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 48, 53,227, 2, +224, 50,227, 2, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48, 53,227, 2, +198, 0, 0, 0, 1, 0, 0, 0, 88, 54,227, 2, 8, 52,227, 2, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0, + 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 88, 54,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48, 53,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 90,227, 2, 68, 65, 84, 65, 68, 3, 0, 0,248, 90,227, 2,156, 0, 0, 0, 1, 0, 0, 0, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,251,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128, 55,227, 2,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, +144, 12,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 0, 95,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +112, 94,215, 2,248, 9,226, 2,104, 9,226, 2,240, 11,226, 2,168, 11,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, +141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 58,227, 2, +248, 58,227, 2,168, 56,227, 2,208, 57,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0,168, 56,227, 2,198, 0, 0, 0, 1, 0, 0, 0,208, 57,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208, 57,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +168, 56,227, 2, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, + 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, + 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,244, 0, 0, 0,248, 58,227, 2, +166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,176,237,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 12, 0, 0, 0,176,237,205, 2,221, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,112, 94,227, 2, 68, 65, 84, 65, +168, 0, 0, 0,112, 94,227, 2,220, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,144, 1,228, 2, 19, 0, 0, 0, + 1, 0, 1, 0,144, 1,228, 2, 20, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 21, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, + 0, 0, 0, 0, 1, 0, 1, 0,240, 10,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,240, 16,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, +144, 30,221, 2, 0, 0, 0, 0, 1, 0, 1, 0, 32, 26,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 8, 97,223, 2, 0, 0, 0, 0, + 1, 0, 1, 0,192, 21,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 80, 9,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 12,228, 2, + 0, 0, 0, 0, 1, 0, 1, 0,184, 8,228, 2, 21, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 83, 78, 0, 0,148, 0, 0, 0, + 72,252,213, 2,193, 0, 0, 0, 1, 0, 0, 0, 16,253,213, 2,128,251,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99, +114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 76,227, 2,152, 80,227, 2,224, 80,227, 2,200, 86,227, 2,144, 95,215, 2, 96, 98,215, 2, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,240, 76,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 56, 77,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 56, 77,227, 2,194, 0, 0, 0, 1, 0, 0, 0,128, 77,227, 2, +240, 76,227, 2, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,128, 77,227, 2,194, 0, 0, 0, + 1, 0, 0, 0,200, 77,227, 2, 56, 77,227, 2, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +200, 77,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 16, 78,227, 2,128, 77,227, 2, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 16, 78,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 88, 78,227, 2,200, 77,227, 2, 0, 0, 0, 0, + 0, 0,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88, 78,227, 2,194, 0, 0, 0, 1, 0, 0, 0,160, 78,227, 2, + 16, 78,227, 2, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160, 78,227, 2,194, 0, 0, 0, + 1, 0, 0, 0,232, 78,227, 2, 88, 78,227, 2, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +232, 78,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 48, 79,227, 2,160, 78,227, 2, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 48, 79,227, 2,194, 0, 0, 0, 1, 0, 0, 0,120, 79,227, 2,232, 78,227, 2, 0, 0, 0, 0, + 0, 0,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,120, 79,227, 2,194, 0, 0, 0, 1, 0, 0, 0,192, 79,227, 2, + 48, 79,227, 2, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,192, 79,227, 2,194, 0, 0, 0, + 1, 0, 0, 0, 8, 80,227, 2,120, 79,227, 2, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, + 8, 80,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 80, 80,227, 2,192, 79,227, 2, 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 80, 80,227, 2,194, 0, 0, 0, 1, 0, 0, 0,152, 80,227, 2, 8, 80,227, 2, 0, 0, 0, 0, +126, 7,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152, 80,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 80, 80,227, 2, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224, 80,227, 2,195, 0, 0, 0, + 1, 0, 0, 0, 40, 81,227, 2, 0, 0, 0, 0, 56, 77,227, 2,128, 77,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 40, 81,227, 2,195, 0, 0, 0, 1, 0, 0, 0,112, 81,227, 2,224, 80,227, 2, 56, 77,227, 2, 16, 78,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 81,227, 2,195, 0, 0, 0, 1, 0, 0, 0,184, 81,227, 2, + 40, 81,227, 2,128, 77,227, 2, 88, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184, 81,227, 2, +195, 0, 0, 0, 1, 0, 0, 0, 0, 82,227, 2,112, 81,227, 2, 16, 78,227, 2, 88, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0, 0, 82,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 72, 82,227, 2,184, 81,227, 2, 88, 78,227, 2, +160, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72, 82,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +144, 82,227, 2, 0, 82,227, 2,200, 77,227, 2,232, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +144, 82,227, 2,195, 0, 0, 0, 1, 0, 0, 0,216, 82,227, 2, 72, 82,227, 2,240, 76,227, 2, 48, 79,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216, 82,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 32, 83,227, 2,144, 82,227, 2, + 16, 78,227, 2, 48, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32, 83,227, 2,195, 0, 0, 0, + 1, 0, 0, 0,104, 83,227, 2,216, 82,227, 2,160, 78,227, 2,120, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,104, 83,227, 2,195, 0, 0, 0, 1, 0, 0, 0,176, 83,227, 2, 32, 83,227, 2,232, 78,227, 2,120, 79,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176, 83,227, 2,195, 0, 0, 0, 1, 0, 0, 0,248, 83,227, 2, +104, 83,227, 2, 48, 79,227, 2,192, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248, 83,227, 2, +195, 0, 0, 0, 1, 0, 0, 0, 64, 84,227, 2,176, 83,227, 2,120, 79,227, 2,192, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0, 64, 84,227, 2,195, 0, 0, 0, 1, 0, 0, 0,136, 84,227, 2,248, 83,227, 2,232, 78,227, 2, + 8, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136, 84,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +208, 84,227, 2, 64, 84,227, 2,160, 78,227, 2, 8, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +208, 84,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 24, 85,227, 2,136, 84,227, 2, 88, 78,227, 2, 80, 80,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24, 85,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 96, 85,227, 2,208, 84,227, 2, +200, 77,227, 2, 80, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96, 85,227, 2,195, 0, 0, 0, + 1, 0, 0, 0,168, 85,227, 2, 24, 85,227, 2, 8, 80,227, 2, 80, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,168, 85,227, 2,195, 0, 0, 0, 1, 0, 0, 0,240, 85,227, 2, 96, 85,227, 2, 16, 78,227, 2,152, 80,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240, 85,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 56, 86,227, 2, +168, 85,227, 2,160, 78,227, 2,152, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56, 86,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,128, 86,227, 2,240, 85,227, 2,192, 79,227, 2,152, 80,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,128, 86,227, 2,195, 0, 0, 0, 1, 0, 0, 0,200, 86,227, 2, 56, 86,227, 2, 48, 79,227, 2, +120, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,200, 86,227, 2,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,128, 86,227, 2,240, 76,227, 2,232, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +144, 95,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 32, 96,215, 2, 0, 0, 0, 0, 16, 78,227, 2, 56, 77,227, 2,128, 77,227, 2, + 88, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 93, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 88,234,220, 2, 88,234,220, 2, 32, 60,227, 2, 72, 61,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 32, 60,227, 2,198, 0, 0, 0, 1, 0, 0, 0, + 72, 61,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, + 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, + 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, + 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 72, 61,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32, 60,227, 2, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, + 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, + 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 32, 96,215, 2,197, 0, 0, 0, 1, 0, 0, 0,176, 96,215, 2,144, 95,215, 2, +232, 78,227, 2, 8, 80,227, 2, 80, 80,227, 2,200, 77,227, 2, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, +235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,127,227, 2, 72,127,227, 2, +112, 62,227, 2,152, 63,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +112, 62,227, 2,198, 0, 0, 0, 1, 0, 0, 0,152, 63,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152, 63,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112, 62,227, 2, + 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0, +125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,151,226, 2,152,108,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,160,151,226, 2,196, 0, 0, 0, + 1, 0, 0, 0, 24,153,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 24,153,226, 2,196, 0, 0, 0, 1, 0, 0, 0, 96, 95,227, 2,160,151,226, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,154,208, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,162, 32, - 11, 27,152, 0, 11, 29,251,240, 11, 29,252, 48, 11, 29,251,176, 11, 29,251,112, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, - 0, 0, 1,141, 0, 0, 3,233, 1, 1, 3,251, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,161, 0, - 11, 27,161, 0, 11, 27,155, 96, 11, 27,159,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,155, 96, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,156,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,126,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,250, - 0, 0, 0, 0, 0, 0, 0, 25, 68,126,128, 0, 65,200, 0, 0, 68,126,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,251, 0, 26, 3,251, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3,251, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,156,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,157,160, - 11, 27,155, 96, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, - 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, - 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 1, 69, 0, 0, 1,167, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 67, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,157,160, - 0, 0, 0,198, 0, 0, 0, 1, 11, 27,158,192, 11, 27,156,128, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, - 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, - 0, 0, 5, 63, 0, 0, 1,167, 0, 0, 1,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, - 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 11, 27,158,192, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,159,224, 11, 27,157,160, 0, 0, 0, 0, - 67, 52, 0, 0,196,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,109, 0, 0,195,145,128, 0, 0, 0, 0,163, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 2,144, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 2,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,180, 2,145, 0,163, 2,145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 63, 0, 0, 5, 63, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,159,224, 0, 0, 0,198, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,158,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,167, - 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,251, 2, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,217,192, 32, 68, 65, 84, 65, 0, 0, 3, 68, - 2,217,192, 32, 0, 0, 0,156, 0, 0, 0, 1, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0,128, 0, 0, 0, -128, 0, 0, 0,128, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,207, 53,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65,107,121,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,249,255,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61,139, 40, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,116, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,207, 53,149, - 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 57,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,251,251, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, - 66,180, 0, 0, 66,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 11, 27,161, 0, 0, 0, 0,157, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, - 61,204,204,205, 68,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,162, 32, - 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,154,208, 11, 29,250,112, 11, 29,249,240, 11, 29,252, 48, 11, 29,251,240, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,141, 0, 0, 3,233, 3, 3, 1, 68, 2, 93, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,164,240, 11, 27,164,240, 11, 27,162,176, 11, 27,163,208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,162,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,163,208, - 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,162, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 0, 0, 0, 0, 0, 25, 67,161,128, 0, 65,200, 0, 0, 67,161,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 68, 0, 26, 1, 68, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,141, 0, 0, 1,166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,163,208, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,162,176, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,153,128, 0,196, 12, 64, 0, 0, 0, 0, 0, 0, 0, 1, 51, 0, 0, 1, 68, 0, 0, 0, 18, 0, 0, 2, 66, - 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 18, 0, 0, 2, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, - 0, 0, 4, 12, 0, 6, 1, 68, 2, 67, 1, 51, 2, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 67, 0, 0, 1,167, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 2, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,244, 11, 27,164,240, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,205,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 29,205,144, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, - 0, 0, 0, 14, 11, 27,166, 16, 68, 65, 84, 65, 0, 0, 0,168, 11, 27,166, 16, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 1, 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, - 0, 21, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, - 2,174, 10, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, - 0, 1, 0, 1, 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, - 0, 0, 0, 0, 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, - 2,154,244, 32, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,167, 64, 0, 0, 0,193, 0, 0, 0, 1, 11, 27,220,208, 9,253,180,224, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31,177, 96, 11, 27,171, 0, 11, 27,171, 64, 11, 27,176,128, 11, 27,176,192, - 11, 27,217,160, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 31,177, 96, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168, 0, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168, 64, 11, 31,177, 96, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,168, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168,128, 11, 27,168, 0, 0, 0, 0, 0, 7,126, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,168,192, 11, 27,168, 64, - 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,168,192, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,169, 0, 11, 27,168,128, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169, 0, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169, 64, 11, 27,168,192, 0, 0, 0, 0, 7,126, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,169, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169,128, 11, 27,169, 0, 0, 0, 0, 0, 5,240, 3,168, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,169,192, 11, 27,169, 64, - 0, 0, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,169,192, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,170, 0, 11, 27,169,128, 0, 0, 0, 0, 0, 0, 1,104, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170, 0, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170, 64, 11, 27,169,192, 0, 0, 0, 0, 5,240, 1,104, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,170, 64, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170,128, 11, 27,170, 0, 0, 0, 0, 0, 2,248, 1,104, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170,128, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,170,192, 11, 27,170, 64, - 0, 0, 0, 0, 5,240, 2,236, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,170,192, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,171, 0, 11, 27,170,128, 0, 0, 0, 0, 7,126, 2,236, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,171, 0, - 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,170,192, 0, 0, 0, 0, 2,248, 3,168, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,171, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,171,128, 0, 0, 0, 0, 11, 27,168, 0, 11, 27,168, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,171,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,171,192, - 11, 27,171, 64, 11, 27,168, 0, 11, 27,168,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,171,192, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172, 0, 11, 27,171,128, 11, 27,168, 64, 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172, 64, 11, 27,171,192, 11, 27,168,192, - 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172, 64, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,172,128, 11, 27,172, 0, 11, 27,169, 0, 11, 27,169, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,172,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,172,192, 11, 27,172, 64, 11, 27,168,128, 11, 27,169,128, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,172,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173, 0, 11, 27,172,128, - 11, 27,169,192, 11, 31,177, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173, 0, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,173, 64, 11, 27,172,192, 11, 27,168,192, 11, 27,169,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,173, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173,128, 11, 27,173, 0, 11, 27,169, 64, 11, 27,170, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,173,192, - 11, 27,173, 64, 11, 27,169,128, 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,173,192, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174, 0, 11, 27,173,128, 11, 27,169,192, 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174, 64, 11, 27,173,192, 11, 27,170, 0, - 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174, 64, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,174,128, 11, 27,174, 0, 11, 27,169,128, 11, 27,170,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,174,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,174,192, 11, 27,174, 64, 11, 27,169, 64, 11, 27,170,128, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,174,192, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175, 0, 11, 27,174,128, - 11, 27,169, 0, 11, 27,170,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175, 0, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,175, 64, 11, 27,174,192, 11, 27,168,128, 11, 27,170,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,175, 64, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175,128, 11, 27,175, 0, 11, 27,170,128, 11, 27,170,192, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175,128, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,175,192, - 11, 27,175, 64, 11, 27,168,192, 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,175,192, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,176, 0, 11, 27,175,128, 11, 27,169, 64, 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,176, 0, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,176, 64, 11, 27,175,192, 11, 27,170, 64, - 11, 27,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,176, 64, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,176,128, 11, 27,176, 0, 11, 27,169,192, 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,176,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,176, 64, 11, 27,169,128, 11, 31,177, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,176,192, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,179,144, 0, 0, 0, 0, - 11, 27,168,192, 11, 27,168, 0, 11, 27,168, 64, 11, 27,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,169, - 0, 0, 4, 5, 7, 7, 7,127, 0, 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,220,112, 11, 27,220,112, - 11, 27,177, 80, 11, 27,178,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,177, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,178,112, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, - 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,236, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,127, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,178,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,177, 80, - 0, 0, 0, 0, 68,239,192, 0, 0, 0, 0, 0, 66, 28, 0, 0, 0, 0, 0, 0, 68,237,192, 0, 0, 0, 0, 0, 66,134, 0, 0, - 0, 0, 7,110, 0, 0, 7,127, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 7,109, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,127, 0, 67, 7,110, 0, 67, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,169, 0, 0, 3,235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,179,144, 0, 0, 0,197, - 0, 0, 0, 1, 11, 27,200,160, 11, 27,176,192, 11, 27,169,128, 11, 27,170,128, 11, 27,170,192, 11, 27,168,128, 0, 0, 0, 0, - 0, 0, 5,241, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 2,235, 4, 4, 1,142, 2,236, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 27,199,160, 11, 27,199,160, 11, 27,180, 32, 11, 27,181, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,180, 32, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,181, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,199, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, 0, 0, 0, 0, 25, 67,198,128, 0, 65,200, 0, 0, 67,198,128, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1,142, 0, 26, 1,142, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,210, 0, 0, 2,235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,181, 64, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,180, 32, 0, 0, 0, 0, 67,198,128, 0,196, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,190,127,254,196, 52,127,254, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 1,142, 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, - 0, 0, 1,126, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 1,142, 2,210, 1,125, 2,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, - 0, 0, 0, 0, 0, 0, 2,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 2,210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 27,182, 96, 11, 27,198, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 11, 27,182, 96, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,183,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,255,220, 1,124, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,183,208, 0, 0, 0,196, - 0, 0, 0, 1, 11, 27,185, 64, 11, 27,182, 96, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,135, 1,124, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,185, 64, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,186,176, 11, 27,183,208, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,111, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 27,186,176, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,188, 32, 11, 27,185, 64, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, + 96, 95,227, 2,196, 0, 0, 0, 1, 0, 0, 0,216, 96,227, 2, 24,153,226, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,140, - 1,124, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, +114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, +124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,188, 32, 0, 0, 0,196, 0, 0, 0, 1, - 11, 27,189,144, 11, 27,186,176, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, -105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, -105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,216, 96,227, 2,196, 0, 0, 0, 1, 0, 0, 0, + 80, 98,227, 2, 96, 95,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 58, 1,124, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,189,144, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,191, 0, 11, 27,188, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 64, 1, 0, 0, 80, 98,227, 2,196, 0, 0, 0, 1, 0, 0, 0,200, 99,227, 2,216, 96,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,254, 34, 1,124, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,191, 0, - 0, 0, 0,196, 0, 0, 0, 1, 11, 27,192,112, 11, 27,189,144, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,200, 99,227, 2, +196, 0, 0, 0, 1, 0, 0, 0, 64,101,227, 2, 80, 98,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, + 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, + 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 10, 1,124, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 64,101,227, 2,196, 0, 0, 0, 1, 0, 0, 0,184,102,227, 2, +200, 99,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,192,112, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,193,224, - 11, 27,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,242, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 11, 27,193,224, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,195, 80, 11, 27,192,112, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0,184,102,227, 2,196, 0, 0, 0, 1, 0, 0, 0, 48,104,227, 2, 64,101,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,253,218, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,195, 80, 0, 0, 0,196, - 0, 0, 0, 1, 11, 27,196,192, 11, 27,193,224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,194, 1,124, 0, 0, 0, 20, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 48,104,227, 2,196, 0, 0, 0, + 1, 0, 0, 0,168,105,227, 2,184,102,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,196,192, 0, 0, 0,196, 0, 0, 0, 1, 11, 27,198, 48, 11, 27,195, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168,105,227, 2,196, 0, 0, 0, 1, 0, 0, 0, 32,107,227, 2, 48,104,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 40, 1,124, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 11, 27,198, 48, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,196,192, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, + 32,107,227, 2,196, 0, 0, 0, 1, 0, 0, 0,152,108,227, 2,168,105,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 16, - 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,216, 11, 27,199,160, 0, 0, 0,162, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 11, 27,200,160, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,207,240, 11, 27,179,144, 11, 27,170, 64, 11, 27,171, 0, 11, 27,169, 64, - 11, 27,170, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,105, 0, 0, 3,167, 1, 1, 2,247, 2, 63, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,206,208, 11, 27,206,208, 11, 27,201, 48, 11, 27,205,176, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,201, 48, 0, 0, 0,198, 0, 0, 0, 1, - 11, 27,202, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 61,192, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,246, 0, 0, 0, 0, 0, 0, 0, 25, 68, 61,128, 0, 65,200, 0, 0, - 68, 61,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,247, - 0, 26, 2,247, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,105, - 0, 0, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,202, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,203,112, 11, 27,201, 48, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, - 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, - 0, 0, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, - 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,249, 0, 0, 2,249, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 37, 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,203,112, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,204,144, 11, 27,202, 80, - 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 0, - 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,131, 0, 0, 1,131, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,204,144, 0, 0, 0,198, - 0, 0, 0, 1, 11, 27,205,176, 11, 27,203,112, 0, 0, 0, 0, 67, 35, 0, 0,196,142,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 35, 0, 0,196, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 2,121, 0, 0, 0, 0, - 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 2,121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, - 0, 6, 0,180, 2,122, 0,163, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 5,239, - 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, - 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,205,176, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,204,144, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112, +117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, +124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,108,227, 2,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 32,107,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2,247, 2, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2,196,226, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,196,226, 32, 0, 0, 0,156, 0, 0, 0, 1, 63,140, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,193,141, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191,128, 1, 80,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,163,215,225, 0, 0, 0, 0, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,209,239, 69, - 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185, -190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, 63,128, 0, 0, 62,229,157,178, -191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, - 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 62,191,236,217, - 63, 85,117, 54,188, 70,246,224,182, 32,160, 0,190,136, 5,252, 62, 3, 33, 43, 63, 23,135,235, 53, 96, 0, 0,196, 25,104,215, - 67,135,132,133,195,167, 9, 37,194, 71,252,136, 68, 25, 54, 3,195,135, 87,158, 67,166,209,205, 66, 71,254,151, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,229,157,178, -191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, - 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 64, 45, 86, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 59, 29,227,107, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,216, 0, 0, 0, 72,127,227, 2,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,176, 96,215, 2,197, 0, 0, 0, 1, 0, 0, 0, + 64, 97,215, 2, 32, 96,215, 2,192, 79,227, 2,152, 80,227, 2,160, 78,227, 2,120, 79,227, 2, 0, 0, 0, 0,249, 2, 0, 0, +239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,131,227, 2,224,131,227, 2,192, 64,227, 2,184,130,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,192, 64,227, 2,198, 0, 0, 0, 1, 0, 0, 0,232, 65,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232, 65,227, 2,198, 0, 0, 0, 1, 0, 0, 0, +104,128,227, 2,192, 64,227, 2, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0, +167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +104,128,227, 2,198, 0, 0, 0, 1, 0, 0, 0,144,129,227, 2,232, 65,227, 2, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144,129,227, 2,198, 0, 0, 0, 1, 0, 0, 0,184,130,227, 2,104,128,227, 2, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184,130,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,144,129,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0, +131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,160,227, 2, 68, 65, 84, 65, + 68, 3, 0, 0, 80,160,227, 2,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191, +117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182, +252, 5,136,190, 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, + 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191, +117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,224,131,227, 2, +157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, + 64, 97,215, 2,197, 0, 0, 0, 1, 0, 0, 0,208, 97,215, 2,176, 96,215, 2,240, 76,227, 2, 48, 79,227, 2,120, 79,227, 2, +232, 78,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5,104, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,163,227, 2,200,163,227, 2, 8,133,227, 2, 48,134,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8,133,227, 2,198, 0, 0, 0, 1, 0, 0, 0, + 48,134,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, + 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 48,134,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,133,227, 2, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, + 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, + 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, + 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, + 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 28, 0, 0, 0, 64, 28,204, 2,177, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 88, 17,216, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 88, 17,216, 2, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,200,163,227, 2,178, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 28,204, 2, 64, 28,204, 2, + 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,208, 97,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 96, 98,215, 2, + 64, 97,215, 2, 8, 80,227, 2,160, 78,227, 2, 88, 78,227, 2, 80, 80,227, 2, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, +237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,137,227, 2, +168,137,227, 2, 88,135,227, 2,128,136,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0, 88,135,227, 2,198, 0, 0, 0, 1, 0, 0, 0,128,136,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,128,136,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 88,135,227, 2, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195, + 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1, +143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,244, 0, 0, 0,168,137,227, 2, +166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,237,205, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 12, 0, 0, 0,240,237,205, 2,221, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 96,165,227, 2, 68, 65, 84, 65, +168, 0, 0, 0, 96,165,227, 2,220, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,144, 1,228, 2, 19, 0, 0, 0, + 1, 0, 1, 0,144, 1,228, 2, 20, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 21, 0, 1, 0, 1, 0, 0, 0,144, 1,228, 2, + 0, 0, 0, 0, 1, 0, 1, 0,240, 10,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,240, 16,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, +144, 30,221, 2, 0, 0, 0, 0, 1, 0, 1, 0, 32, 26,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 8, 97,223, 2, 0, 0, 0, 0, + 1, 0, 1, 0,192, 21,228, 2, 0, 0, 0, 0, 1, 0, 1, 0, 80, 9,228, 2, 0, 0, 0, 0, 1, 0, 1, 0,144, 12,228, 2, + 0, 0, 0, 0, 1, 0, 1, 0,184, 8,228, 2, 21, 0, 0, 0, 1, 0, 1, 0,144, 1,228, 2, 68, 65, 84, 65, 96, 0, 0, 0, + 96, 98,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 97,215, 2, 48, 79,227, 2, 16, 78,227, 2,152, 80,227, 2, +192, 79,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,166,227, 2, 56,166,227, 2,208,138,227, 2,248,139,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208,138,227, 2,198, 0, 0, 0, 1, 0, 0, 0, +248,139,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, + 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, + 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0, +130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +248,139,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,138,227, 2, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, + 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, + 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, + 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,136, 2, 0, 0, 56,166,227, 2,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0, +243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, 66,137,152, 86, 66,126, 27,116, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,240, 11, 27,206,208, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, - 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,207,240, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,212,160, 11, 27,200,160, - 11, 31,177, 96, 11, 27,169,192, 11, 27,170, 0, 11, 27,169,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, - 0, 0, 1,103, 18, 18, 5,240, 1,104, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,211, 16, 11, 27,211, 16, - 11, 27,208,128, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,208,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 67,160,128, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,190, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, - 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, 68,189,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 5,240, 0, 26, 5,240, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5,240, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,209,160, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,208,128, - 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 67, 51, 0, 0, 0, 0, 0, 0, 68,187,224, 0, 0, 0, 0, 0, 67,167, 0, 0, - 0, 0, 5,223, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5,222, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 5,240, 1, 78, 5,223, 1, 78, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 26, 0, 0, 1,103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,240, 1, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 28, 11, 27,210,192, 0, 0, 0,177, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 4, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1,104, - 11, 27,211, 16, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 27,210,192, 11, 27,210,192, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 0, 4, 8, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,212,160, - 0, 0, 0,197, 0, 0, 0, 1, 11, 27,217,160, 11, 27,207,240, 11, 27,170,128, 11, 27,169, 64, 11, 27,169, 0, 11, 27,170,192, - 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3,167, 3, 3, 1,142, 0,187, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,215,112, 11, 27,215,112, 11, 27,213, 48, 11, 27,214, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,213, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,214, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,199, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, 0, 0, 0, 0, 25, 67,198,128, 0, 65,200, 0, 0, 67,198,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1,142, 0, 26, 1,142, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,214, 80, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,213, 48, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,190,128, 0,195, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 1,142, 0, 0, 0, 18, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 18, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, - 0, 0, 4, 12, 0, 6, 1,142, 0,161, 1,125, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, - 0, 0, 7,126, 0, 0, 3, 7, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0,161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,244, 11, 27,215,112, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,216,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 11, 27,216,144, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, - 0, 0, 0, 14, 11, 27,216,208, 68, 65, 84, 65, 0, 0, 0,168, 11, 27,216,208, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 1, 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, - 0, 21, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, - 2,174, 10, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, - 0, 1, 0, 1, 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, - 0, 0, 0, 0, 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, - 2,154,244, 32, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,217,160, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,212,160, - 11, 27,169,192, 11, 27,168,192, 11, 27,171, 0, 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, - 0, 0, 3,167, 9, 9, 2,248, 2, 63, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,196,230, 32, 2,196,230, 32, - 11, 27,218, 48, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,218, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68, 62, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 0, 0, - 0, 0, 0, 25, 68, 61,192, 0, 65,200, 0, 0, 68, 61,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,248, 0, 26, 2,248, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, 0, 0, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2,248, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,219, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,218, 48, - 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 68, 22,192, 0, 68, 23,150,248, 68,100, 41, 8, 67, 62,224, 46, 67,206, 15,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 0, 0, 0, 0, 2, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 35,215, 10, 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2,248, 2, 37, 2,248, 2, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,248, 2, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 2,136, 2,196,230, 32, 0, 0, 0,169, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 12, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 61,204,204,205, 0, 0, 1,231, 0, 0, 1,243, - 0, 0, 1,122, 0, 0, 1,124, 0, 0, 1,231, 0, 0, 1,243, 0, 0, 0, 4, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3562,110 +3571,108 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 78, 0, 0,148, 0, 0, 0, 16,253,213, 2,193, 0, 0, 0, 1, 0, 0, 0,216,253,213, 2, 72,252,213, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,169,227, 2, 0,171,227, 2, 72,171,227, 2, 24,174,227, 2,240, 98,215, 2, 16,100,215, 2, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 8,169,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 80,169,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 80,169,227, 2,194, 0, 0, 0, + 1, 0, 0, 0,152,169,227, 2, 8,169,227, 2, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +152,169,227, 2,194, 0, 0, 0, 1, 0, 0, 0,224,169,227, 2, 80,169,227, 2, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0,224,169,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 40,170,227, 2,152,169,227, 2, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 40,170,227, 2,194, 0, 0, 0, 1, 0, 0, 0,112,170,227, 2, +224,169,227, 2, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112,170,227, 2,194, 0, 0, 0, + 1, 0, 0, 0,184,170,227, 2, 40,170,227, 2, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, +184,170,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 0,171,227, 2,112,170,227, 2, 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 20, 0, 0, 0, 0,171,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,170,227, 2, 0, 0, 0, 0, +200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,171,227, 2,195, 0, 0, 0, 1, 0, 0, 0,144,171,227, 2, + 0, 0, 0, 0, 80,169,227, 2,152,169,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,171,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,216,171,227, 2, 72,171,227, 2, 80,169,227, 2, 40,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,216,171,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 32,172,227, 2,144,171,227, 2,152,169,227, 2, +112,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,172,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +104,172,227, 2,216,171,227, 2, 40,170,227, 2,112,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +104,172,227, 2,195, 0, 0, 0, 1, 0, 0, 0,176,172,227, 2, 32,172,227, 2, 40,170,227, 2,184,170,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176,172,227, 2,195, 0, 0, 0, 1, 0, 0, 0,248,172,227, 2,104,172,227, 2, + 8,169,227, 2, 0,171,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,172,227, 2,195, 0, 0, 0, + 1, 0, 0, 0, 64,173,227, 2,176,172,227, 2, 8,169,227, 2, 40,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 64,173,227, 2,195, 0, 0, 0, 1, 0, 0, 0,136,173,227, 2,248,172,227, 2,184,170,227, 2, 0,171,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,173,227, 2,195, 0, 0, 0, 1, 0, 0, 0,208,173,227, 2, + 64,173,227, 2,112,170,227, 2,184,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,173,227, 2, +195, 0, 0, 0, 1, 0, 0, 0, 24,174,227, 2,136,173,227, 2,224,169,227, 2, 0,171,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0, 24,174,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,173,227, 2,224,169,227, 2, +112,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240, 98,215, 2,197, 0, 0, 0, 1, 0, 0, 0, +128, 99,215, 2, 0, 0, 0, 0, 40,170,227, 2, 80,169,227, 2,152,169,227, 2,112,170,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, +184,234,220, 2,184,234,220, 2, 32,141,227, 2, 72,142,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 32,141,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 72,142,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,142,227, 2,198, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 32,141,227, 2, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, + 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, + 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, + 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +128, 99,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 16,100,215, 2,240, 98,215, 2, 8,169,227, 2, 40,170,227, 2,184,170,227, 2, + 0,171,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,184,227, 2,240,184,227, 2,112,143,227, 2,192,145,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112,143,227, 2,198, 0, 0, 0, 1, 0, 0, 0, +152,144,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,114, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,113, 68, 0, 0,200, 65, + 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,200, 3, + 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +152,144,227, 2,198, 0, 0, 0, 1, 0, 0, 0,192,145,227, 2,112,143,227, 2, 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196, + 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, +207, 3, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, +207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,110,227, 2, 16,110,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 16,110,227, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,220,208, 0, 0, 0,193, 0, 0, 0, 1, - 11, 27,245, 16, 11, 27,167, 64, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,221,144, 11, 27,223, 80, 11, 27,223,144, - 11, 27,226, 16, 11, 27,226, 80, 11, 27,234,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,221,144, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,221,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,221,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 16, 11, 27,221,144, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 80, 11, 27,221,208, - 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 80, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,222,144, 11, 27,222, 16, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222,144, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222,208, 11, 27,222, 80, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,222,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 16, 11, 27,222,144, 0, 0, 0, 0, 7,126, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 80, 11, 27,222,208, - 0, 0, 0, 0, 3,200, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 80, 0, 0, 0,194, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,223, 16, 0, 0, 0, 0, 3,200, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,144, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,223,208, 0, 0, 0, 0, 11, 27,221,208, 11, 27,222, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224, 16, 11, 27,223,144, 11, 27,221,208, - 11, 27,222,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224, 16, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,224, 80, 11, 27,223,208, 11, 27,222, 16, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,224, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,144, 11, 27,224, 16, 11, 27,222,144, 11, 27,222,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,208, 11, 27,224, 80, - 11, 27,222,144, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,208, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,225, 16, 11, 27,224,144, 11, 27,221,144, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,225, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225, 80, 11, 27,224,208, 11, 27,221,144, 11, 27,222,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,144, - 11, 27,225, 16, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,144, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,208, 11, 27,225, 80, 11, 27,222,208, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,226, 16, 11, 27,225,144, 11, 27,222, 80, - 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,226, 16, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,225,208, 11, 27,222, 80, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 11, 27,226, 80, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,229, 32, 0, 0, 0, 0, 11, 27,222,144, 11, 27,221,208, 11, 27,222, 16, - 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,244,176, 11, 27,244,176, 11, 27,226,224, 11, 27,228, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,226,224, 0, 0, 0,198, 0, 0, 0, 1, - 11, 27,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, - 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, - 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +192,145,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,144,227, 2, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0, +208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,228, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,226,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, - 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,229, 32, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,234,128, 11, 27,226, 80, - 11, 27,221,144, 11, 27,222,144, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, - 0, 0, 3,233, 6, 6, 3,200, 3,234, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,234,114, 32, 2,234,114, 32, - 11, 27,229,176, 11, 27,233, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,229,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,230,208, 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,114, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, - 0, 0, 0, 25, 68,113,192, 0, 65,200, 0, 0, 68,113,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,200, 0, 26, 3,200, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3,200, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 32, 0, 0,240,184,227, 2,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,230,208, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,233, 96, 11, 27,229,176, - 0, 0, 0, 0, 67, 91, 0, 0,196,115,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 74,255,254,196,115,255,254, 0, 0, 0, 0, - 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, 3,208, 0,203, 3,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 3,208, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,231,240, 11, 27,231,240, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,231,240, 0, 0, 0,196, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,152, 0,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,233, 96, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,230,208, - 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191, 43, 51, 51, 63,213,153,154,191,131, 51, 51, 64, 1,153,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,236, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 3,199, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,236, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 32,248, 2,234,114, 32, 0, 0, 0,167, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, - 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3787,6 +3794,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3794,7 +3802,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3917,741 +3924,762 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 16,100,215, 2,197, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,128, 99,215, 2, 0,171,227, 2,184,170,227, 2,112,170,227, 2,224,169,227, 2, 0, 0, 0, 0, +201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,176,152,227, 2,176,152,227, 2,232,146,227, 2,136,151,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232,146,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 16,148,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,181, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16,148,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 56,149,227, 2,232,146,227, 2, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, +146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,111,227, 2,136,111,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0,136,111,227, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 11, 27,234,128, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,229, 32, 11, 27,223, 80, 11, 27,223, 16, - 11, 27,222,208, 11, 27,222, 80, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 3,233, 1, 1, 3,182, - 3,234, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,243,144, 11, 27,243,144, 11, 27,235, 16, 11, 27,242,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,235, 16, 0, 0, 0,198, - 0, 0, 0, 1, 11, 27,236, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68,109,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,181, 0, 0, 0, 0, 0, 0, 0, 25, 68,109, 64, 0, - 65,200, 0, 0, 68,109, 64, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, - 0, 10, 3,182, 0, 26, 3,182, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 7,126, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 26, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,236, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,238,192, 11, 27,235, 16, 0, 0, 0, 0, 67, 32, 0, 0, -196, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, - 0, 0, 0, 0, 0, 0, 3, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 3, 88, 0,143, 3, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 4,104, 0, 0, 0,146, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,160, 3, 88, 0, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,237, 80, 11, 27,237, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,237, 80, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, - 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, - 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,233, 0,143, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56,149,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 96,150,227, 2, 16,148,227, 2, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, + 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,113,227, 2, 0,113,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 64, 1, 0, 0, 0,113,227, 2,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,238,192, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,241, 80, 11, 27,236, 48, 0, 0, 0, 0, 67, 33, 0, 0, -194,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,242, 90, 91, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, - 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,201, 0, 0, 4,104, 0, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,239,224, 11, 27,239,224, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,239,224, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97, -116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97, -116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,216, 0,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96,150,227, 2,198, 0, 0, 0, + 1, 0, 0, 0,136,151,227, 2, 56,149,227, 2, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, + 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,241, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,242,112, 11, 27,238,192, 0, 0, 0, 0, 67, 35, 0, 0, -196,126,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,126,191,255, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, - 0, 0, 0, 18, 0, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, - 0, 0, 0, 18, 0, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 4, 13, 0,163, 3,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,242,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, - 11, 27,241, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,105, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,187,104, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,187,104, 32, - 0, 0, 0,156, 0, 0, 0, 1, 63,172,246, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,140, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 76,215, 74, 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143, -190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 95, 25, 0, 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,160, 0, 0, 0, 0,190,205,177, 52, 62, 70, 74,142, - 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 64, 54,173,188,191,161, 95,136, - 63,198,231,147, 63,128, 0, 0, 63, 13,214,185,190,224,249,208,191, 81,180, 48,191, 81,158,184, 63,157,188,189, 62, 88,225,140, - 62,185, 63, 26, 62,185, 44, 35,188,146,213,241, 63,122,156,206,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 82, 98,100, 64, 95, 25, 0, 62,155, 92,121, 63, 44,198,151,188, 32,214,192,180, 40, 0, 0,190,188, 15,195, 62, 53, 75,132, - 63, 81,125,216,179,192, 0, 0,193,100, 77,115, 64,201,173, 17,192,248,148,181,192,159,247,203, 65, 87, 74,233,192,190, 46,247, - 64,234,106, 88, 64,160, 8, 45, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143, -190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 95, 25, 0, 63,128, 0, 0, 63, 13,214,185,190,224,249,208,191, 81,180, 48,191, 81,158,184, 63,157,188,189, 62, 88,225,140, - 62,185, 63, 26, 62,185, 44, 35,188,146,213,241, 63,122,156,206,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 82, 98,100, 64, 95, 25, 0, 62,250,201,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,201,248, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,201,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 64, 95, 25, 0, 64, 95, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58,245,145,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 66, 12, 33, 30, - 66,137,152, 85, 66,126, 27,116, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 11, 27,243,144, 0, 0, 0,157, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 1, 0, 7, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, - 67,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 10, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 27,245, 16, 0, 0, 0,193, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,220,208, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,245,208, 11, 27,248,144, - 11, 27,248,208, 11, 27,253, 16, 11, 27,253, 80, 11, 28, 16,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,245,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 80, 11, 27,245,208, 0, 0, 0, 0, - 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246,144, - 11, 27,246, 16, 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246,144, 0, 0, 0,194, - 0, 0, 0, 1, 11, 27,246,208, 11, 27,246, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,246,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 16, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 80, 11, 27,246,208, 0, 0, 0, 0, - 7,126, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247,144, - 11, 27,247, 16, 0, 0, 0, 0, 7,126, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247,144, 0, 0, 0,194, - 0, 0, 0, 1, 11, 27,247,208, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,247,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 16, 11, 27,247,144, 0, 0, 0, 0, 3, 80, 3,234, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 80, 11, 27,247,208, 0, 0, 0, 0, - 0, 0, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248,144, - 11, 27,248, 16, 0, 0, 0, 0, 3, 80, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248,144, 0, 0, 0,194, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,248, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,248,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 16, 0, 0, 0, 0, 11, 27,246, 16, 11, 27,246, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 80, 11, 27,248,208, - 11, 27,246, 16, 11, 27,246,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 80, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,249,144, 11, 27,249, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,249,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249,208, 11, 27,249, 80, 11, 27,246,208, 11, 27,247, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 16, - 11, 27,249,144, 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 16, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 80, 11, 27,249,208, 11, 27,245,208, 11, 27,247,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250,144, 11, 27,250, 16, 11, 27,246,208, - 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250,144, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,250,208, 11, 27,250, 80, 11, 27,247,144, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,250,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 16, 11, 27,250,144, 11, 27,248, 16, 11, 27,248, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 80, 11, 27,250,208, - 11, 27,247,208, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 80, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,251,144, 11, 27,251, 16, 11, 27,247, 80, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,251,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251,208, 11, 27,251, 80, 11, 27,246,144, 11, 27,248,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 16, - 11, 27,251,144, 11, 27,247,144, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 16, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 80, 11, 27,251,208, 11, 27,245,208, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252,144, 11, 27,252, 16, 11, 27,247, 16, - 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252,144, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,252,208, 11, 27,252, 80, 11, 27,247, 80, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,252,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,253, 16, 11, 27,252,144, 11, 27,246,208, 11, 27,248, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,253, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,252,208, - 11, 27,247, 80, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,253, 80, 0, 0, 0,197, - 0, 0, 0, 1, 11, 28, 0, 32, 0, 0, 0, 0, 11, 27,246,208, 11, 27,246, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 11, 28, 22,144, 11, 28, 22,144, 11, 27,253,224, 11, 27,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,253,224, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,255, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,255, 0, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,253,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, - 0, 10, 7,129, 0, 2, 7,112, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248, 0, 0, 0,136,151,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,150,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,218,227, 2, 68, 65, 84, 65, 68, 3, 0, 0, 24,218,227, 2,156, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, + 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, + 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,185,214, 13, 63, +208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188, +206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62, +151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, + 17,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,247, 46,190,192, 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63, +208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188, +206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,248,201,250, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0,176,152,227, 2,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,144, 12,228, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 1, 0, 3, 0, 8, 8, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 78, 0, 0,148, 0, 0, 0,216,253,213, 2,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16,253,213, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,174,227, 2,120,177,227, 2,192,177,227, 2,136,182,227, 2,160,100,215, 2, +224,102,215, 2, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,238, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,174,227, 2,194, 0, 0, 0, 1, 0, 0, 0, +168,174,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,174,227, 2, +194, 0, 0, 0, 1, 0, 0, 0,240,174,227, 2, 96,174,227, 2, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0,240,174,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 56,175,227, 2,168,174,227, 2, 0, 0, 0, 0,240, 4,222, 2, + 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 56,175,227, 2,194, 0, 0, 0, 1, 0, 0, 0,128,175,227, 2,240,174,227, 2, + 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,128,175,227, 2,194, 0, 0, 0, 1, 0, 0, 0, +200,175,227, 2, 56,175,227, 2, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,200,175,227, 2, +194, 0, 0, 0, 1, 0, 0, 0, 16,176,227, 2,128,175,227, 2, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0, 16,176,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 88,176,227, 2,200,175,227, 2, 0, 0, 0, 0,240, 4, 92, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,176,227, 2,194, 0, 0, 0, 1, 0, 0, 0,160,176,227, 2, 16,176,227, 2, + 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,176,227, 2,194, 0, 0, 0, 1, 0, 0, 0, +232,176,227, 2, 88,176,227, 2, 0, 0, 0, 0, 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,232,176,227, 2, +194, 0, 0, 0, 1, 0, 0, 0, 48,177,227, 2,160,176,227, 2, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 20, 0, 0, 0, 48,177,227, 2,194, 0, 0, 0, 1, 0, 0, 0,120,177,227, 2,232,176,227, 2, 0, 0, 0, 0, 48, 2, 92, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,120,177,227, 2,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,177,227, 2, + 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192,177,227, 2,195, 0, 0, 0, 1, 0, 0, 0, + 8,178,227, 2, 0, 0, 0, 0,168,174,227, 2,240,174,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 8,178,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 80,178,227, 2,192,177,227, 2,168,174,227, 2,128,175,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,178,227, 2,195, 0, 0, 0, 1, 0, 0, 0,152,178,227, 2, 8,178,227, 2, +240,174,227, 2,200,175,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,178,227, 2,195, 0, 0, 0, + 1, 0, 0, 0,224,178,227, 2, 80,178,227, 2,128,175,227, 2,200,175,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0,224,178,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 40,179,227, 2,152,178,227, 2,200,175,227, 2, 16,176,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40,179,227, 2,195, 0, 0, 0, 1, 0, 0, 0,112,179,227, 2, +224,178,227, 2, 96,174,227, 2, 88,176,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,179,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,184,179,227, 2, 40,179,227, 2,128,175,227, 2,160,176,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,184,179,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 0,180,227, 2,112,179,227, 2, 88,176,227, 2, +232,176,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0,180,227, 2,195, 0, 0, 0, 1, 0, 0, 0, + 72,180,227, 2,184,179,227, 2,232,176,227, 2, 48,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, + 72,180,227, 2,195, 0, 0, 0, 1, 0, 0, 0,144,180,227, 2, 0,180,227, 2,160,176,227, 2, 48,177,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,180,227, 2,195, 0, 0, 0, 1, 0, 0, 0,216,180,227, 2, 72,180,227, 2, + 16,176,227, 2,120,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,180,227, 2,195, 0, 0, 0, + 1, 0, 0, 0, 32,181,227, 2,144,180,227, 2, 56,175,227, 2,120,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 0, 0, 0, 32,181,227, 2,195, 0, 0, 0, 1, 0, 0, 0,104,181,227, 2,216,180,227, 2, 88,176,227, 2,120,177,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,181,227, 2,195, 0, 0, 0, 1, 0, 0, 0,176,181,227, 2, + 32,181,227, 2, 96,174,227, 2, 56,175,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176,181,227, 2, +195, 0, 0, 0, 1, 0, 0, 0,248,181,227, 2,104,181,227, 2,200,175,227, 2,160,176,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,248,181,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 64,182,227, 2,176,181,227, 2, 16,176,227, 2, + 48,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,182,227, 2,195, 0, 0, 0, 1, 0, 0, 0, +136,182,227, 2,248,181,227, 2,128,175,227, 2,232,176,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +136,182,227, 2,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,182,227, 2, 16,176,227, 2,232,176,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,160,100,215, 2,197, 0, 0, 0, 1, 0, 0, 0, 48,101,215, 2, 0, 0, 0, 0, +128,175,227, 2,168,174,227, 2,240,174,227, 2,200,175,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0, +222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,136,129,206, 2, 24,235,220, 2, 24,235,220, 2, +216,153,227, 2, 0,155,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,232, 81, 6, 4,136, 81, 6, 4, 68, 65, 84, 65,248, 0, 0, 0, +216,153,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0,155,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 64,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0,155,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,153,227, 2, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 63,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 48,101,215, 2,197, 0, 0, 0, + 1, 0, 0, 0,192,101,215, 2,160,100,215, 2, 96,174,227, 2, 88,176,227, 2,120,177,227, 2, 56,175,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88,107,206, 2,144,221,227, 2,144,221,227, 2, 40,156,227, 2, 80,157,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 40, 81, 6, 4, +168, 82, 6, 4, 68, 65, 84, 65,248, 0, 0, 0, 40,156,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 80,157,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 52,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80,157,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 40,156,227, 2, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 42, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 52,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 11, 28, 0, 32, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 3,224, 11, 27,253, 80, 11, 27,245,208, 11, 27,247,144, - 11, 27,248,144, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 7,127, - 0, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 2,240, 11, 28, 2,240, 11, 28, 0,176, 11, 28, 1,208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 0,176, 0, 0, 0,198, - 0, 0, 0, 1, 11, 28, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, - 65,200, 0, 0, 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, - 0, 10, 7,127, 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +188, 0, 0, 0,144,221,227, 2,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,192,101,215, 2,197, 0, 0, 0, 1, 0, 0, 0, + 80,102,215, 2, 48,101,215, 2, 88,176,227, 2,232,176,227, 2, 16,176,227, 2,120,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, +240, 4, 0, 0, 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,169,206, 2, +128,254,227, 2,128,254,227, 2,120,158,227, 2,232,224,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 83, 6, 4,136, 84, 6, 4, + 68, 65, 84, 65,248, 0, 0, 0,120,158,227, 2,198, 0, 0, 0, 1, 0, 0, 0,152,222,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,206,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152,222,227, 2,198, 0, 0, 0, 1, 0, 0, 0, +192,223,227, 2,120,158,227, 2, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,125,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, +253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,240, 4, 0, 0, 95, 0, 0, 0, + 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,253, 0, 0, 0, 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,205,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +192,223,227, 2,198, 0, 0, 0, 1, 0, 0, 0,232,224,227, 2,152,222,227, 2, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, + 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 4, 0, 0, 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32,205,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232,224,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,223,227, 2, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0, 20, 4, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,204,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,128,254,227, 2,163, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0, 80,102,215, 2,197, 0, 0, 0, 1, 0, 0, 0,224,102,215, 2,192,101,215, 2,232,176,227, 2,128,175,227, 2, +160,176,227, 2, 48,177,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2, +102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,113,206, 2,136,255,227, 2,136,255,227, 2, 16,226,227, 2,136,229,227, 2, + 0, 0, 0, 0, 0, 0, 0, 0,160, 33,220, 3, 64,120, 10, 4, 68, 65, 84, 65,248, 0, 0, 0, 16,226,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 56,227,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65,154,216, 65, 55, + 0, 0, 12, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 11, 68, + 0, 0,200, 65, 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0, 48, 2, 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, + 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 56,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 28, 1,208, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 0,176,192, 64, 0, 0, 67,126, 0, 0, - 0, 0, 0, 0, 66, 72, 0, 0,192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,126, - 0, 0, 0, 18, 0, 0, 0, 65, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, - 0, 72, 0, 0, 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 7,127, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,127, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,188, 11, 28, 2,240, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, - 11, 28, 3,224, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 9,240, 11, 28, 0, 32, 11, 27,247,144, 11, 27,248, 16, 11, 27,247, 80, - 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 93, 0, 0, 1,231, 8, 8, 7,127, 1,139, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 8,240, 11, 28, 8,240, 11, 28, 4,112, 11, 28, 7,208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 4,112, 0, 0, 0,198, 0, 0, 0, 1, - 11, 28, 5,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 26,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, - 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, - 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 0, 93, - 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 28, 5,144, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 6,176, 11, 28, 4,112, 0, 0, 0, 0, 67, 92, 0, 0,195,184,128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 75, 0, 0,195,184,128, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, - 0, 0, 1,112, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, - 0, 0, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, - 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, 1,113, 0,203, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6,163, 0, 0, 7,126, 0, 0, 0,119, 0, 0, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,220, 1,113, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 6,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 7,208, 11, 28, 5,144, -196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0,196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 59,128, 0, 70, 59,128, 0, - 55, 39,197,172, 71,195, 80, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,162, 0, 0, 1,231, 0, 0, 1,231, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 7,208, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 6,176, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,112, 0, 0, 0, 18, - 0, 0, 6,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 6,162, 0, 0, 0, 18, 0, 0, 1,112, 65, 32, 0, 0, - 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, 60, 35,215, 10, 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, - 0, 8, 6,163, 1,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,162, - 0, 0, 0,119, 0, 0, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,163, 1,113, 0, 0, 0, 0, +248, 0, 0, 0, 56,227,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 96,228,227, 2, 16,226,227, 2, 0, 0, 0, 0, 0, 0, 72, 67, + 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, + 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,217, 0, 76, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96, 57,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96,228,227, 2,198, 0, 0, 0, 1, 0, 0, 0,136,229,227, 2, + 56,227,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,216, 11, 28, 8,240, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 57,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136,229,227, 2, +198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,228,227, 2, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, + 18, 0, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, +111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, + 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 1, 76, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 56,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,208, 0, 0, 0,136,255,227, 2,161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 28, 9,240, 0, 0, 0,197, 0, 0, 0, 1, 11, 28, 16,128, - 11, 28, 3,224, 11, 27,248, 16, 11, 27,246,208, 11, 27,247,208, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, - 0, 0, 1,233, 0, 0, 3,233, 2, 2, 3, 80, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 15, 0, - 11, 28, 15, 0, 11, 28, 10,128, 11, 28, 13,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 28, 10,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 11,160, 0, 0, 0, 0, 0, 0, 0, 0, 68,119, 64, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 84, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, - 0, 0, 0, 0, 0, 0, 0, 25, 68, 83,192, 0, 65,200, 0, 0, 68, 83,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3, 80, 0, 26, 3, 80, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, 0, 0, 1,233, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 80, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 11,160, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 12,192, - 11, 28, 10,128, 0, 0, 0, 0, 67, 72, 0, 0,193,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,195,234,128, 0, - 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 10, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, 1,231, 0,200, - 1,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 2, 3, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 1,231, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 12,192, - 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 13,224, 11, 28, 11,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,114, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0,184,114, 40, 0, 20, 1, 0, 0, 1, 0, 0, 0,144, 1,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 79, - 0, 0, 3, 79, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, - 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,224,102,215, 2,197, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 80,102,215, 2, 48,177,227, 2,160,176,227, 2,200,175,227, 2, 16,176,227, 2, 0, 0, 0, 0, + 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 8, 8,192, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,169,206, 2,136, 0,228, 2,136, 0,228, 2,176,230,227, 2, 40,234,227, 2, 0, 0, 0, 0, 0, 0, 0, 0,160,120, 10, 4, +192,121, 10, 4, 68, 65, 84, 65,248, 0, 0, 0,176,230,227, 2,198, 0, 0, 0, 1, 0, 0, 0,216,231,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 13,224, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 12,192,193, 16, 0, 0, - 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, 0, 0, 0, 0, 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,230, 0, 0, 0, 18, 0, 0, 2,118, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, - 0, 0, 2,118, 0, 0, 0, 18, 0, 0, 1,230, 58,131, 18,111, 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2,119, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 3, 79, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2,119, 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,206,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,231,227, 2,198, 0, 0, 0, + 1, 0, 0, 0, 0,233,227, 2,176,230,227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,208, 11, 28, 15, 0, 0, 0, 0,161, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,240, 4, 0, 0, +119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,205,206, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +248, 0, 0, 0, 0,233,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 40,234,227, 2,216,231,227, 2, 0, 0,240,195, 0, 0,240, 67, + 0, 0,135,195, 0, 0,135, 67,238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0, + 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,205,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,234,227, 2,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0,233,227, 2, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, + 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,204,206, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136, 0,228, 2, +163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 0, 0, 48, 5, 0, 0,144, 1,228, 2,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,192, 0,216, 2, 0, 0, 0, 0,144, 12,228, 2,240, 10,228, 2, 0, 0, 0, 0,144, 28,204, 2, 48, 29,204, 2, +144, 28,204, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 6,228, 2, 32,189, 3, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, + 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 18,216, 2, +168, 18,216, 2, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47,116,109,112, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, +205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, + 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, +102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,100,174, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,202,205, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, + 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, +180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,205,204,204, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 76, 0, 0, 0,192, 0,216, 2, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 28, 0, 0, 0,144, 28,204, 2,130, 0, 0, 0, 1, 0, 0, 0,224, 28,204, 2, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,194, 1, 42, 1,240, 16,228, 2, 68, 65, 84, 65, 28, 0, 0, 0,224, 28,204, 2, +130, 0, 0, 0, 1, 0, 0, 0, 48, 29,204, 2,144, 28,204, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 69, 2,243, 1, +192, 21,228, 2, 68, 65, 84, 65, 28, 0, 0, 0, 48, 29,204, 2,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224, 28,204, 2, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 99, 0,103, 1,144, 12,228, 2, 68, 65, 84, 65,152, 1, 0, 0,240, 6,228, 2, +150, 0, 0, 0, 1, 0, 0, 0, 0, 4,204, 2, 88, 4,204, 2, 64,115, 40, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, + 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,212,229, 2, + 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0,128, 62, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, + 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, + 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, + 68, 65, 84, 65, 36, 0, 0, 0, 0, 4,204, 2,149, 0, 0, 0, 1, 0, 0, 0, 80,155,229, 2, 0, 0, 0, 0,255,255,255,128, + 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 36, 0, 0, 0, + 88, 4,204, 2,149, 0, 0, 0, 1, 0, 0, 0, 80,155,229, 2, 0, 0, 0, 0,200,200,255,128, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0, 64,115, 40, 0,148, 0, 0, 0, + 1, 0, 0, 0,136,194,229, 2, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,124, 7,231, 65,255, 74, 20, 65, 54, 86,123, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 72, 0, 0, 0,168, 18,216, 2,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97, +121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,104, 0, 0, 0, +184, 8,228, 2, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97, +109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,108, 1, 0, 0, 80, 9,228, 2, + 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 28,221, 2, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, + 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 29,204, 2, 68, 65, 84, 65, 16, 1, 0, 0, 0, 28,221, 2, + 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,208,182,227, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, +208,182,227, 2, 78, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 29,204, 2, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,112, 1, 0, 0, +240, 10,228, 2,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111, +114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60, +199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 29,204, 2, 68, 65, 84, 65, + 32, 0, 0, 0,208, 29,204, 2, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 44, 4, 0, 0,144, 12,228, 2,116, 0, 0, 0, + 1, 0, 0, 0,240, 16,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101, +114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 8,228, 2, + 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, + 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190, +227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64, +150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, + 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, + 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, + 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, + 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, + 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,214, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 0,236,214, 2,119, 0, 0, 0, + 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, +205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0, 44, 4, 0, 0,240, 16,228, 2, +116, 0, 0, 0, 1, 0, 0, 0,192, 21,228, 2,144, 12,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112, +104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,195,249, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 30,221, 2, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 21,228, 2,136, 21,228, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,236,214, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 32, 47, 1, 4, 64, 53, 1, 4, + 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 80, 21,228, 2, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136, 21,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,192,236,214, 2,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0, 44, 4, 0, 0,192, 21,228, 2,116, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +240, 16,228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 9,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, + 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, + 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0, 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, + 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0,209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, + 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,237,214, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,128,237,214, 2,119, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0,160, 2, 0, 0, 32, 26,228, 2, 35, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63, +205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0, +205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, + 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3, 67, 0, 64, 3, 1, 0, 4, 0, + 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63, +205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 72, 29,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 30,204, 2, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 1, 0, 0, 72, 29,221, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 97,223, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 32, 0, 0, 0, 32, 30,204, 2, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, + 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, 52, 0, 52, 0,240, 28,228, 2, 32, 45,228, 2, 68, 65, 84, 65, 0, 16, 0, 0, +240, 28,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, + 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, + 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, + 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, + 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, + 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, + 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, + 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, + 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, + 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, + 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, + 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, + 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, + 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, + 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, + 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, + 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, + 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, + 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, + 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, + 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, + 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, + 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, + 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, + 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, + 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, + 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, + 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, + 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, + 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, + 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, + 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, + 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255, +100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, + 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, + 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, + 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255, +107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255, +100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, + 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, + 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255, +114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255, +107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, + 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, + 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255, +121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255, +114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, + 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, + 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255, +127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255, +125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, + 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, + 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255, +134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255, +142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, + 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, + 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255, +140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255, +168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, + 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, + 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255, +145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255, +204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, + 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, + 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255, +150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255, +237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, + 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, + 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255, +154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255, +255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255, +100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, + 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255, +157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255, +250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255, +103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, + 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255, +159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255, +224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255, +105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, + 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255, +160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255, +195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255, +107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, + 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255, +157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255, +174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255, +107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153, +149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255, +164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255, +106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255, +160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255, +105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 16, 0, 0, 0, 1, 19, - 0, 0, 0, 1, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255, +157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255, +101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 11, 28, 16,128, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 9,240, 11, 27,248, 80, 11, 27,247,208, - 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, 0, 0, 1,233, 0, 0, 3,233, 8, 8, 4, 46, - 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 21,144, 11, 28, 21,144, 11, 28, 17, 16, 11, 28, 20,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 17, 16, 0, 0, 0,198, - 0, 0, 0, 1, 11, 28, 18, 48, 0, 0, 0, 0, 0, 0, 0, 0, 67,245, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68,133,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 0, 0, 0, 0, 0, 0, 0, 25, 68,133,160, 0, - 65,200, 0, 0, 68,133,160, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, - 0, 10, 4, 46, 0, 26, 4, 46, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, - 0, 0, 1,233, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 46, 0, 26, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 28, 18, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 19, 80, 11, 28, 17, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255, +152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, + 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255, +140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, + 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, + 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0, 32, 45,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 7,126, 0, 0, 2, 3, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 19, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 20,112, - 11, 28, 18, 48,195,240, 0, 0, 67,240, 0, 0,195,135, 0, 0, 67,135, 0, 0,196,217,139,145, 68,217,139,145,196, 70, 6,240, - 68, 70, 6,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 0, 0, 0, 0, 0, 0, 1,230, 0, 0, 0, 0, 0, 0, 0, 0, 70, 59,128, 0, - 70, 59,128, 0, 55, 39,197,172, 71,195, 80, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 4, 46, 1,231, 4, 46, - 1,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, 0, 0, 2, 3, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 46, 1,231, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 20,112, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 19, 80, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1, 75, - 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 18, 0, 0, 1, 75, - 65, 32, 0, 0, 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, 60, 35,215, 10, 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 2,202, 1, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,216, 11, 28, 21,144, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0, 5, 40, 2,154,244, 32, 0, 0, 0,154, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 11, 28, 22,240, 0, 0, 0, 0, 2,212,100, 32, 11, 28, 31,176, - 0, 0, 0, 0, 11, 28, 23,112, 11, 28, 24, 16, 11, 28, 23,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 24, 96, 2,207, 94, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,192, 0, 0,172, 68, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 1, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 1,224, 0, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 50, - 0,141, 7,128, 4, 56, 0, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 0, 0, 81, 0, 33, 0, 23, 0, 0, 0, 2, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 27, 64, 11, 28, 27, 64, 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 1, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 63,128, 0, 0, 63,128, 0, 0, 2,173, 0, 95, 63,217,153,154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, - 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 68, - 63,128, 0, 0, 67,171,166,102, 63,128, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 17, 98, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31, 35,112, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 28,204,205, 0, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 1,224, 0, 60, 0, 32, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 7,128, 4, 56, 61,204,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 28,245,195, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 11, 28, 22,240, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 23,112, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 23,192, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 2,212, 1,226, 2,174, 10, 32, 68, 65, 84, 65, 0, 0, 0, 28, - 11, 28, 23,192, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 24, 16, 11, 28, 23,112, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 4, 0, - 3,167, 3, 37, 2,206,150, 32, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 24, 16, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, - 11, 28, 23,192, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 4, 0, 0,160, 2, 69, 2,212,100, 32, 68, 65, 84, 65, 0, 0, 1,152, - 11, 28, 24, 96, 0, 0, 0,150, 0, 0, 0, 1, 11, 28, 26, 32, 11, 28, 26,112, 11, 28, 26,192, 63,128, 0, 0, 0, 1, 0, 1, - 63, 76,204,205, 66,180, 0, 0, 0, 9, 0, 1, 63,128, 0, 0, 58,131, 18,111, 61,204,204,205, 0, 0, 0, 1, 0, 32, 0, 32, - 0, 32, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 2,212, 24, 32, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 80, 2, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 5, 0, 5,255,255, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66,200, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 60, 35,215, 10, 61,204,204,205, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 61,204,204,205, 61,204,204,205, - 63,166,102,102, 63,192, 0, 0, 65,240, 0, 0, 63,122,225, 72, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 2, 67, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 63,121,197,204, - 63, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 36, 11, 28, 26, 32, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0, -255,255,255,128, 0, 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 36, 11, 28, 26,112, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0,200,200,255,128, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 26,192, - 0, 0, 0,148, 0, 0, 0, 1, 2,209, 48, 32, 0, 0, 0, 0,255,100,100,128, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 1, 65,231, 7,124, 65, 20, 74,255, 63,123, 86, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 27, 64, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15,255,255, 0, 0, 0, 0, 0, 0,127,255, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 67, 65, - 0, 0, 0,104, 11, 28, 27,176, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 63, 0, 0, 0, 61,204,204,205, 66,200, 0, 0, 66, 12, 0, 0, 64,234, 14,161, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 1,108, - 11, 28, 28, 64, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97, -109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,239,255,247, 66,150, 0, 0, 62, 25,153,154, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 11, 28, 29,224, 0, 2, 0, 0, 63,128, 26, 46, 65,240, 4, 25, 66, 52, 0, 0, - 63,128, 0, 0, 64, 64, 0, 0, 61, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64, 0, 3, 0, 1, 0, 0, - 0, 2, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 58,131, 18,111, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 31, 96, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 29,224, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 2, 0, 1, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191, 53, 4,243, 63, 53, 4,242,191, 53, 4,242, 63, 53, 4,243, 11, 28, 31, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 28, 31, 32, 0, 0, 1, 77, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 31, 96, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, - 0, 0, 1,112, 11, 28, 31,176, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 99,114, 61, 80, 99,114, 61, 80, 99,114, 60, 36, 54,199, - 60, 36, 54,199, 60, 36, 54,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 28,204,205, 0, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 0, 0, 65,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 65,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 32, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 76,204,205, 0, 0, 0, 5, 0, 0, 0, 0, 59,163,215, 10, 0, 0, 0, 0, - 62,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 33, 80, - 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 33, 80, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, 4, 44, 2,212,100, 32, - 0, 0, 0,116, 0, 0, 0, 1, 2,174, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, - 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 27,176, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,239,101,110, -192,208, 62,150, 64,170,255, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,141,254, 42, 60, 49, 57,192, - 63, 80,159, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 47,149,222, 63, 58, 70, 53,188, 49, 56,222, 0, 0, 0, 0, -190,162,126, 86, 62,159,251,227, 63,101, 53, 55, 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,149, 62,227,247, 51, 0, 0, 0, 0, - 64,239,101,110,192,208, 62,150, 64,170,255, 78, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 1, 51,128, 0, 1,179, 0, 0, 1, 0, 0, 0, 0, - 51, 0, 0, 0, 63,128, 0, 0, 51,128, 0, 1, 0, 0, 0, 0,179, 0, 0, 2,167, 0, 0, 2, 63,128, 0, 1, 0, 0, 0, 0, - 53, 0, 0, 1, 41, 0, 0, 1,168,128, 0, 1, 63,128, 0, 0, 63, 47,149,221,190,162,126, 86, 63, 39,165, 8, 0, 0, 0, 0, - 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,192, 63,101, 53, 55, 62,227,247, 52, 0, 0, 0, 0, -190,173, 38, 90,190,192,222, 0,193, 52, 9,152, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, - 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, -201,150,180, 56, 63,128, 0, 0, 63, 16,225,187, 63,128, 0, 0, 62,204,204,205, 63, 32, 54,237, 0, 0, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 33,160, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 33,160, - 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61,204,204,205, 62, 76,204,205, 60,163,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 79, 66, 0, 0, 4, 44, - 2,174, 10, 32, 0, 0, 0,116, 0, 0, 0, 1, 2,206,150, 32, 2,212,100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, - 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,203, 71,224, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 39, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,255, 60,240, 9,253,121, 96, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 68, 79, 66, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, - 0, 0, 0, 0,201,150,180, 56, 63,128, 0, 0, 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 34, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10,124,118,224, - 10,120, 52, 80, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, - 9,255, 60,240, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,121, 96, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 34, 96, 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,204,204,205, 62, 76,204,205, 60,163,215, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 79, 66, 0, 0, 4, 44, 2,206,150, 32, 0, 0, 0,116, 0, 0, 0, 1, - 0, 0, 0, 0, 2,174, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 28, 64, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, - 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,130,112,154, 63,128,178,183, 64,188,236,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 38,123,229, 61, 98, 43, 87, 63,238,229,229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,190,148,236, 54, 63,116,134, 25,189, 98, 13,236, 0, 0, 0, 0,191, 69,102,221,190, 76,174, 57, - 63, 26,194, 34, 0, 0, 0, 0, 63, 16,255, 37, 62, 95,161,241, 63, 75,111,164, 0, 0, 0, 0, 64,130,112,154, 63,128,178,183, - 64,188,236,112, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 50,128, 0, 1,179, 0, 0, 0, 0, 0, 0, 0, 50,128, 0, 1, 63,128, 0, 1, - 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 39, 0, 0, 1, 52, 0, 0, 1, - 39,128, 0, 1, 63,128, 0, 0,190,148,236, 54,191, 69,102,221, 63, 16,255, 38, 0, 0, 0, 0, 63,116,134, 24,190, 76,174, 57, - 62, 95,161,239, 0, 0, 0, 0,189, 98, 13,237, 63, 26,194, 35, 63, 75,111,166, 0, 0, 0, 0, 63, 13, 19,209,190,102, 65,241, -192,231, 10, 10, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 79, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0,201,150,180, 56, 63,128, 0, 0, - 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 35, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 35, 32, 0, 0, 0,119, 0, 0, 0, 1, - 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,204,204,205, 62, 76,204,205, - 60,163,215, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 77, 65, 0, 0, 2,160, 2,187,108, 32, 0, 0, 0, 35, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63, 76,204,205, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 1, 0, 50, 62, 76,204,205, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, - 63,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 2, 0, 2, 0, 50, 0, 6, 63,128, 0, 0, 63,128, 0, 0, - 0, 18, 0, 18, 59,163,215, 10, 59,163,215, 10, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 64, 0, 67, 3, 64, 0, 67, - 0, 1, 0, 4, 0, 12, 0, 4, 63, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,128, 0, 0, 63, 0, 0, 0, 61,204,204,205, - 63, 0, 0, 0, 61,204,204,205, 61,204,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 11, 28, 35,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 37, 32, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 26,148,111, 63, 26,148,111, 63, 26,148,111, 61, 76,204,205, 61,204,204,205, 63,166,102,102, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 35,224, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 37,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 37, 32, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 52, 0, 52, 2,213, 70, 32, 9,237,224, 32, 68, 65, 84, 65, - 0, 0, 16, 0, 2,213, 70, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, - 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, - 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, - 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, - 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, - 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, - 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, - 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, - 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, - 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, - 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, - 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, - 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, - 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, - 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, - 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, - 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, - 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, - 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, - 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, - 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, - 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, - 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, - 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, - 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, - 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, - 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, - 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, - 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, - 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, - 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, - 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, - 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, - 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, - 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, - 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, - 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, - 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, - 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255, -104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255, -103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, - 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, - 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255, -112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255, -110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, - 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, - 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255, -118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255, -118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, - 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, - 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255, -125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255, -129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, - 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, - 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255, -131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255, -148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, - 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, - 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255, -136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255, -177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, - 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, - 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255, -142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255, -216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, - 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, - 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255, -146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255, -254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255, -103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, - 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255, -149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255, -255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255, -106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, - 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255, -152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255, -255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255, -110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, - 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255, -153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255, -234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255, -112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, - 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255, -151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255, -202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255, -114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, - 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102, -145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255, -179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255, -115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, - 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255, -167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255, -115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, - 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255, -163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255, -113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255, -160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255, -110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255, -154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255, -104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255, -140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, - 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, - 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0,144, 0, 9,237,224, 32, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5775,6 +5803,19 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 69, 0, 0, 48, 1, 0, 0, 8, 97,223, 2, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 30,204, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 30,204, 2, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, + 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, 16, 0, 15, 0, 80,189,228, 2,128,205,228, 2, 68, 65, 84, 65, 0, 16, 0, 0, + 80,189,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5803,19 +5844,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 84, 69, 0, 0, 1, 48, 11, 28, 37,112, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 64,160, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 32, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 60,204,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 38,208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 38,208, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 16, 0, 15, 2,215,150, 32, 9,238,128, 32, 68, 65, 84, 65, - 0, 0, 16, 0, 2,215,150, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5915,6 +5943,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0,144, 0, 0,128,205,228, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5943,8 +5972,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0,144, 0, 9,238,128, 32, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7069,7 +7096,19 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 69, 0, 0, 24, 1, 0, 0,144, 30,221, 2, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 93,229, 2, 40,210,215, 2, + 0, 0, 0, 0, 0, 0, 0, 0,112, 95,229, 2, 64,238,214, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 93,229, 2, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 96,229, 2, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 97,229, 2, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, + 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,176, 93,229, 2, 0, 0, 0, 0, 1, 0, 0, 0, + 32, 26,228, 2, 68, 65, 84, 65, 84, 1, 0, 0,232, 93,229, 2, 85, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 95,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7078,7 +7117,15 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112, 95,229, 2, 52, 0, 0, 0, 8, 0, 0, 0, + 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191, +230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, + 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73, +230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191,250,255,127,191, + 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, + 68, 65, 84, 65, 84, 1, 0, 0, 64, 96,229, 2, 85, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,238,214, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7087,86 +7134,169 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 64,238,214, 2, 49, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, + 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,200, 97,229, 2, 85, 1, 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40,210,215, 2, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,241,113, 73, 96, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241,113, 73, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0, 40,210,215, 2, + 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, + 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, + 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, + 66, 82, 0, 0,204, 2, 0, 0, 80, 99,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,102,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 32, 33,221, 2, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 1, 24, 11, 28, 39, 32, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,253,172, 32, - 11, 28, 46,112, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 41,224, 11, 28, 44, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 40, 96, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 42,176, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 44,240, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 51,128, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 4, 63,128, 0, 4, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, - 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,172, 32, 0, 0, 0, 0, - 0, 0, 0, 1, 2,187,108, 32, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 40, 96, 0, 0, 1, 84, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 41,224, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 1, 0, 0,156, 99,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 32, 33,221, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, + 14,215,126,191, 46,189,194, 61,120,235,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,235,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,102,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, + 80,105,229, 2, 80, 99,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0,104, 34,221, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,160, 11, 28, 41,224, 0, 0, 0, 52, - 0, 0, 0, 8, 63,128, 0, 0, 63,127,255,255,191,128, 0, 0, 73,230, 73,230,182, 26, 1, 0, 63,128, 0, 0,191,128, 0, 0, -191,128, 0, 0, 73,230,182, 26,182, 26, 1, 0,191,128, 0, 1,191,127,255,253,191,128, 0, 0,182, 26,182, 26,182, 26, 1, 0, -191,127,255,250, 63,128, 0, 3,191,128, 0, 0,182, 26, 73,230,182, 26, 1, 0, 63,128, 0, 4, 63,127,255,247, 63,128, 0, 0, - 73,230, 73,230, 73,230, 1, 0, 63,127,255,245,191,128, 0, 5, 63,128, 0, 0, 73,230,182, 26, 73,230, 1, 0,191,128, 0, 3, -191,127,255,250, 63,128, 0, 0,182, 26,182, 26, 73,230, 1, 0,191,127,255,255, 63,128, 0, 0, 63,128, 0, 0,182, 26, 73,230, - 73,230, 1, 0, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 42,176, 0, 0, 1, 84, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 44, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, + 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,156,102,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,104, 34,221, 2, 80, 1, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,216,235,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,235,220, 2, + 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, + 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, + 80,105,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,108,229, 2, 80,102,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108, +117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,176, 35,221, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 44, 48, 0, 0, 0, 49, 0, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 2, - 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 35, - 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 5, 0, 0, 0, 6, - 0, 0, 0, 35, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 35, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 44,240, 0, 0, 1, 84, - 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 46,112, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241,113, 73, 96, 0, 0, 0, 6, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241,113, 73, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,120, - 11, 28, 46,112, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, - 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, - 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, - 0, 0, 0, 2, 0, 0, 66, 82, 0, 0, 2,204, 2,216,154, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,216,158, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 48, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, +156,105,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, + 16, 1, 0, 0,176, 35,221, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, + 56,236,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0, 56,236,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,108,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,143,229, 2, 80,105,229, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +104,111,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7174,42 +7304,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,154,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,156,108,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 48, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 49,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,104,111,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, + 46, 95,255,186,224,255,127,191,114, 97,255,186,152,236,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 49,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,216,158, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,195, 38, 32, 2,216,154, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 49,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,236,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,143,229, 2, 84, 1, 0, 0, + 1, 0, 0, 0, 80,146,229, 2, 80,108,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48, 48, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,176,112,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7217,43 +7347,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, - 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,158,108, 0, 0, 0, 24, - 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, + 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,156,143,229, 2, 24, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 49,240, - 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 51, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,176,112,229, 2, + 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,248,236,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 51, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,195, 38, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,195, 42, 32, 2,216,158, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 51,144, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, +248,236,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, + 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, +204, 2, 0, 0, 80,146,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,149,229, 2, 80,143,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,248,113,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7261,42 +7391,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,195, 38,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0, +102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 1, 0, 0,156,146,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 51,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, - 61,194,189, 46, 11, 28, 52,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 68, 65, 84, 65, 16, 1, 0, 0,248,113,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, + 46,189,194, 61, 88,237,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 52,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,195, 42, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 66, 32, - 2,195, 38, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 53, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,237,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,149,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,152,229, 2, + 80,146,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0, 64,115,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7304,43 +7434,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 35, 0, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, - 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,195, 42,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, 4, 6, 4, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, +205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, + 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,156,149,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 53, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 54,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 64,115,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, +228, 97,175,190, 50,131,112, 63,218,243,127,191, 10,183,157,188,184,237,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 54,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 66, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 70, 32, 2,195, 42, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48, - 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 54,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,237,220, 2, 78, 1, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, + 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,152,229, 2, + 84, 1, 0, 0, 1, 0, 0, 0, 80,155,229, 2, 80,149,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110, + 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,116,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7348,42 +7478,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 35, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 66,108, - 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,156,152,229, 2, + 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 54,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 56, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 11, 28, 56, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153, 70, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,197,122, 32, 2,153, 66, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 56,112, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, +136,116,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 24,238,220, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 48, 0, 0, 0, 24,238,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, + 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0,204, 2, 0, 0, 80,155,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,158,229, 2, 80,152,229, 2, 0, 20, 1,160, + 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,208,117,229, 2, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7391,42 +7521,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 70,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 35, 0, 0, 0, 0, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, + 68, 65, 84, 65, 16, 1, 0, 0,156,155,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 56,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54, -191,126,215, 14, 61,194,189, 46, 11, 28, 57,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,208,117,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186, +224,255,127,191,114, 97,255,186,120,238,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 57,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,197,122, 32, 0, 0, 1, 83, 0, 0, 0, 1, - 2,197,126, 32, 2,153, 70, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 58, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,238,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,158,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, + 80,161,229, 2, 80,155,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101,110, 0, 48, 48, + 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 24,119,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7434,43 +7564,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, - 0, 4, 6, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, - 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,197,122,108, 0, 0, 0, 24, 0, 0, 0, 1, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, + 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, + 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,156,158,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 58, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,190,175, 97,228, 63,112,131, 50,191,127,243,218,188,157,183, 10, 11, 28, 59, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 24,119,229, 2, 80, 1, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,216,238,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 59, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 64, 0, 0, 61, 35,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,197,126, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 36, 32, 2,197,122, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97, -114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 59,176, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,238,220, 2, + 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, + 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, + 80,161,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,164,229, 2, 80,158,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, + 97,116,116,101,110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 96,120,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7478,42 +7608,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,197,126,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, + 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, +156,161,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 59,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, - 11, 28, 60,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 60,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 36, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 40, 32, 2,197,126, 32, - 0, 20, 1,160, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 61, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, + 16, 1, 0, 0, 96,120,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, + 56,239,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0, 56,239,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,164,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,167,229, 2, 80,161,229, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +168,121,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7521,42 +7651,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 35, 8, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199, 36,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,156,164,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 61, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, -186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 62,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,168,121,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, + 46, 95,255,186,224,255,127,191,114, 97,255,186,152,239,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 62,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 40, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,211,232, 32, 2,199, 36, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101, -110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 62,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,239,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,167,229, 2, 84, 1, 0, 0, + 1, 0, 0, 0, 80,170,229, 2, 80,164,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,101, 47, 68,101, +102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,240,122,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7564,43 +7694,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199, 40,108, 0, 0, 0, 24, - 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, + 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 16, 1, 0, 0,156,167,229, 2, 24, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 62,240, - 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 64, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,240,122,229, 2, + 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,248,239,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 64, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,211,232, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,211,236, 32, 2,199, 40, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 82, 70,108, 97,116,116,101,110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 64,144, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, +248,239,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, + 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, +204, 2, 0, 0, 80,170,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,173,229, 2, 80,167,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 56,124,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7608,42 +7738,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,211,232,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0, +102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 1, 0, 0,156,170,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 64,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, -186,255, 97,114, 11, 28, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 68, 65, 84, 65, 16, 1, 0, 0, 56,124,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, +114, 97,255,186, 88,240,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 65,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,211,236, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,196,250, 32, - 2,211,232, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 66, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,240,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,173,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 80,176,229, 2, + 80,170,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0,128,125,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7651,43 +7781,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,211,236,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, +205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,156,173,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 66, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 67,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,128,125,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, + 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184,240,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 67,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,196,250, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,196,254, 32, 2,211,236, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116, -101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 67,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,240,220, 2, 78, 1, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, + 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, 80,176,229, 2, + 84, 1, 0, 0, 1, 0, 0, 0, 80,179,229, 2, 80,173,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,126,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7695,42 +7825,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, - 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,196,250,108, - 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,156,176,229, 2, + 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 67,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 69, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 11, 28, 69, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,196,254, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,158, 64, 32, 2,196,250, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 69,112, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, +200,126,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 24,241,220, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 48, 0, 0, 0, 24,241,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, + 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0,204, 2, 0, 0, 80,179,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,104,182,229, 2, 80,176,229, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 16,128,229, 2, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7738,42 +7868,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,196,254,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 1, 0, 0,156,179,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 69,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 70,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 16,128,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, + 14,215,126,191, 46,189,194, 61,120,241,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 70,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,158, 64, 32, 0, 0, 1, 83, 0, 0, 0, 1, - 2,158, 68, 32, 2,196,254, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 71, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,241,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,104,182,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, +112,185,229, 2, 80,179,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 88,129,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7781,43 +7911,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,158, 64,108, 0, 0, 0, 24, 0, 0, 0, 1, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, + 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,180,182,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 71, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 72, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 88,129,229, 2, 80, 1, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,216,241,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 72, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, - 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,158, 68, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 10, 32, 2,158, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105, -120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 72,176, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,241,220, 2, + 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, + 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, +112,185,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,120,188,229, 2,104,182,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105, +110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,160,130,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7825,42 +7955,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,158, 68,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, + 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 16, 1, 0, 0, +188,185,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 72,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, - 11, 28, 73,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 73,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 10, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 14, 32, 2,158, 68, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 74, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, + 16, 1, 0, 0,160,130,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, + 56,242,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0, 56,242,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,120,188,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,128,191,229, 2,112,185,229, 2, +253, 21,192, 32, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +232,131,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7868,42 +7998,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,207, 10,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 1, 0, 0, 0, 0, + 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,196,188,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 74, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 75,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,232,131,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, + 46, 95,255,186,224,255,127,191,114, 97,255,186,152,242,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 75,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 14, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,205,210, 32, 2,207, 10, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 75,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,242,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,128,191,229, 2, 84, 1, 0, 0, + 1, 0, 0, 0,136,194,229, 2,120,188,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, 47, 80,101, 97, +107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 48,133,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7911,43 +8041,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, - 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,207, 14,108, 0, 0, 0, 24, - 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, + 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,204,191,229, 2, 24, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 75,240, - 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 77, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 48,133,229, 2, + 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,248,242,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 77, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,205,210, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,205,214, 32, 2,207, 14, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 77,144, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, +248,242,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, + 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, +204, 2, 0, 0,136,194,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,144,197,229, 2,128,191,229, 2, 12,215, 0, 32, 0, 0, 0, 0, + 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,120,134,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7955,42 +8085,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,205,210,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0, +102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, +160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, + 16, 1, 0, 0,212,194,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 77,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, -186,255, 97,114, 11, 28, 78,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 68, 65, 84, 65, 16, 1, 0, 0,120,134,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, +114, 97,255,186, 88,243,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 78,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,205,214, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 44, 32, - 2,205,210, 32,253, 21,192, 32, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 79, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,243,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,144,197,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,152,200,229, 2, +136,194,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0,192,135,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7998,43 +8128,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 1, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,205,214,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, +205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,220,197,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 79, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 80,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,192,135,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, + 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184,243,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 80,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,209, 44, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 48, 32, 2,205,214, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, - 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 80,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,243,220, 2, 78, 1, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, + 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,152,200,229, 2, + 84, 1, 0, 0, 1, 0, 0, 0,160,203,229, 2,144,197,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, + 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,137,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8042,42 +8172,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 44,108, - 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, + 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,228,200,229, 2, + 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 80,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 82, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 11, 28, 82, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,209, 48, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199,162, 32, 2,209, 44, 32, 12,215, 0, 32, - 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 82,112, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, + 8,137,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 24,244,220, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 48, 0, 0, 0, 24,244,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, +215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0,204, 2, 0, 0,160,203,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,168,206,229, 2,152,200,229, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 80,138,229, 2, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8085,42 +8215,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 63, 78,119,160, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 48,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 16, 1, 0, 0,236,203,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 82,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 83,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 80,138,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186, +224,255,127,191,114, 97,255,186,120,244,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 83,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199,162, 32, 0, 0, 1, 83, 0, 0, 0, 1, - 2,199,166, 32, 2,209, 48, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 84, 16, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,244,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,168,206,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, +176,209,229, 2,160,203,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0,152,139,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8128,43 +8258,43 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199,162,108, 0, 0, 0, 24, 0, 0, 0, 1, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 35, 0, 0, 0, + 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,244,206,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 84, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 85, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,152,139,229, 2, 80, 1, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,216,244,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 85, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, - 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,199,166, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,174, 32, 2,199,162, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109, -111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 85,176, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,244,220, 2, + 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, + 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0, +176,209,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,184,212,229, 2,168,206,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, + 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,224,140,229, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8172,42 +8302,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,199,166,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 12, 0, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, +252,209,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 85,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, - 11, 28, 86,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 86,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,174, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,178, 32, 2,199,166, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 87, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, + 16, 1, 0, 0,224,140,229, 2, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, + 56,245,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0, 56,245,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,184,212,229, 2, 84, 1, 0, 0, 1, 0, 0, 0,192,215,229, 2,176,209,229, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +128, 0,220, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8215,42 +8345,42 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,198,174,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 35, 0, 0, 0, 4, 4, 0, 8, 0, 0, 0, 0, + 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, + 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 4,213,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 87, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, -186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 88,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,128, 0,220, 3, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, + 46, 95,255,186,224,255,127,191,114, 97,255,186,152,245,220, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 88,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,178, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,212, 20, 32, 2,198,174, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 88,240, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,245,220, 2, 78, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,204, 2, 0, 0,192,215,229, 2, 84, 1, 0, 0, + 1, 0, 0, 0,200,218,229, 2,184,212,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, 48, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200, 1,220, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8258,223 +8388,99 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,198,178,108, 0, 0, 0, 24, - 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, + 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 12,216,229, 2, 24, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 88,240, - 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 90, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 90, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, - 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,212, 20, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,212, 24, 32, 2,198,178, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 90,144, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,200, 1,220, 3, + 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,128, 32,220, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,212, 20,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 90,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, - 61,194,189, 46, 11, 28, 91,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, +128, 32,220, 3, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, + 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, +204, 2, 0, 0,200,218,229, 2, 84, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,215,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 16, 3,220, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 91,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,212, 24, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,215,240, 32, - 2,212, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 92, 48, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 35, 8, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, - 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,212, 24,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 92, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 93,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 93,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,215,240, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,215,244, 32, 2,212, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, - 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 93,208, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0, +102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 1, 0, 0, 20,219,229, 2, 24, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, - 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,215,240,108, - 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 93,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 95, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 11, 28, 95, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,215,244, 32, 0, 0, 1, 83, 0, 0, 0, 1, 0, 0, 0, 0, 2,215,240, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 11, 28, 95,112, - 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 68, 65, 84, 65, 16, 1, 0, 0, 16, 3,220, 3, 80, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, +114, 97,255,186,224, 32,220, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,224, 32,220, 3, 78, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,144, 13, 0, 0,224,124, 22, 1,192, 0, 0, 0, 1, 0, 0, 0, 1, 8, 17, 1, + 63, 6, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,215,244,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 95,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 96,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112, +111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, + 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 96,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82, 0, 0, 13,144, 1, 89, 96, 32, 0, 0, 0,192, 0, 0, 0, 1, - 1, 17, 8, 33, 0, 0, 6, 63, 0, 0, 0, 5, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, - 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101, -110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8488,13 +8494,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8508,2184 +8514,2184 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, + 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, + 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 40, 62,220, 3, + 40, 62,220, 3,112, 25,221, 2,112, 25,221, 2,168, 92,220, 3,168, 92,220, 3, 0, 0, 0, 0, 0, 0, 0, 0, 32, 19,216, 2, +224, 22,216, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, +205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191, +154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, + 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 1, 0, + 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0, +200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 35, 0, 0, 0, 2, 1, 94, 0, 0, 0, 8, 0, 0, 0, 3, 0, 39, 52, 56, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 8, 0, - 0, 0, 0, 2, 0, 0,172, 68, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 72, 0, 0, 0, 64, 0, 5, 0, 2, - 2,234,148, 32, 2,234,148, 32, 4,209, 42,128, 4,209, 42,128, 11, 23, 91,192, 11, 23, 91,192, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 28, 47, 16, 11, 28, 99,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, - 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, -191,100, 90, 30, 62,153,153,154, 63,102,102,102, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 62,254,250, 31, 63, 0, 0, 9, - 63, 25,153,156, 0, 0, 0, 0, 62, 76,204,205, 62, 76,204,205, 62, 76,204,205, 63,128, 0, 0, 63, 22,135, 44, 62,235,133, 32, - 62,125,243,184, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 63, 76, 73,195, 63, 86,135, 42, 63,128, 0, 0, 0, 0, 0, 0, - 61,135, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 62, 93, 47, 16,190,200,180, 58,190, 93, 47, 24, 0, 0, 0, 0, - 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0, 0, 0,128, 0, 0, 0, 0, 31,144, 0, 15, 0, 6, 0, 25, - 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, - 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 30, 80, 2,234,148, 32, 0, 0, 0,189, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 1, 0, 15,255,241, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 0, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 1, 0, 15,255,241, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255, -255,255,255,255, 0, 1, 0, 15,255,241, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 0, 1,255,236, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255, -255,255,255,255, 0, 1,255,236, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255, -204,204,204,255, 0, 1, 0, 15,255,241, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 0, 25,255,236, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255, -255,255,255,255, 0, 0, 0, 25,255,236, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 1, 0, 38, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255, -255,255,255,255, 0, 1, 0, 5,255,251, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 5,255,251, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255, -153, 0,230,255, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, - 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, - 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, -144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, - 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, - 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, -144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, - 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, -109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, - 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255, -172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, -144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, - 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, - 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, -144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,155,155,155,160,100,104,111,255, -111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, - 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, - 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, - 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, - 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255, -219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, - 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255, -240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, - 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255, -255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255, -255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, -255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255, -219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, - 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255, -246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, - 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, - 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255, -106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, - 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255, -127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255, -139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 47, 16, - 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 47,128, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 47,128, 0, 0, 0,190, - 0, 0, 0, 1, 11, 28, 97, 16, 11, 28, 47, 16,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97, 16, 0, 0, 0,190, 0, 0, 0, 1, - 11, 28, 97,128, 11, 28, 47,128,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97,128, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 97,240, - 11, 28, 97, 16,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 97,240, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 98, 96, 11, 28, 97,128, -105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 98, 96, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 98,208, 11, 28, 97,240,105,111, 95,115, - 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 30, 0, 0, 40, 62,220, 3,189, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, + 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, + 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, + 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, + 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, + 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, + 1, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,170, 64,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, + 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, + 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255, +144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, +255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255, +128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255, +128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18, +255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255, +240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255, +240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 0, 0, 0,255,255,133, 0,255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255, +144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, + 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255, +128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255, +128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18, +255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255, +200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255, +240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255, +240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, + 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255, +144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, + 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255, +128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255, +128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18, +255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255, +240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255, +240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255, +144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255, +128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255, +128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,155,155,155,160,100,104,111,255,111,106,100,255, +104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18, +255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255, +240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255, +240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, + 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255, +240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255, +144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, + 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255, +250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, + 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255, +135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255, +155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255, +255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255, +187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255, +189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 32, 19,216, 2,190, 0, 0, 0, + 1, 0, 0, 0,152, 19,216, 2, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,152, 19,216, 2,190, 0, 0, 0, 1, 0, 0, 0, + 16, 20,216, 2, 32, 19,216, 2,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 16, 20,216, 2,190, 0, 0, 0, 1, 0, 0, 0,136, 20,216, 2, +152, 19,216, 2,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,136, 20,216, 2,190, 0, 0, 0, 1, 0, 0, 0, 0, 21,216, 2, 16, 20,216, 2, +105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 72, 0, 0, 0, 0, 21,216, 2,190, 0, 0, 0, 1, 0, 0, 0,120, 21,216, 2,136, 20,216, 2,105,111, 95,115, + 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 72, 11, 28, 98,208, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 99, 64, 11, 28, 98, 96,105,111, 95,109,101,115,104, 95, -115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, - 11, 28, 99, 64, 0, 0, 0,190, 0, 0, 0, 1, 11, 28, 99,176, 11, 28, 98,208,105,111, 95,109,101,115,104, 95,117,118, 95,108, - 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 99,176, - 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 99, 64,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,224, 11, 23, 91,192, 0, 0, 0,183, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 32, 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -255,255, 0, 0, 62, 25,153,154, 63,128, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -255,255, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -255,255, 0, 0, 62, 25,153,154, 63,128, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, - 0, 4, 0, 0, 68, 78, 65, 49, 0, 0,230,148, 8, 56, 80, 32, 0, 0, 0, 0, 0, 0, 0, 1, 83, 68, 78, 65, 78, 65, 77, 69, - 0, 0, 12, 10, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97, -115,116, 0,120, 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110, -116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0, -102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, - 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99, -111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102, -105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0, -116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101, -100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, - 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, - 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121, -112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, - 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105, -118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111, -115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, - 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, - 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122, -101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, - 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, - 0,101,110,100, 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, - 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99, -117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95, -112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122, -101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, - 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115, -105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111, -102, 95,111, 98, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101, -116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100, -101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, - 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111, -116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, - 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0, -116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, - 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97, -115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, - 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116, -111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97, -109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, - 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111, -114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, - 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0, -112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97, -114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115, -112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0, -115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, - 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99, -111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, - 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, - 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103, -104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105,102,101,102, 97, - 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115,104, 97,100,111, -119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, - 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97, -109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, - 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97, -110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111, -110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, - 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108, -101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97, -115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116, -110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110, -116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, - 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, - 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105, -115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, - 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108,108,111,102,102, - 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111, -102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105, -108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, - 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, - 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,110,111, -105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, - 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115, -105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101, -115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0, -110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, - 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0, -110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0, -110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111, -112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101, -114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100, -105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105, -110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0, -114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109, -111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119, -112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101, -110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115, -104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104, -114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114, -115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, - 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97, -109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, - 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, -114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115, -116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, - 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98, -114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, - 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105, -116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101, -120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, - 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107, -121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112, -114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105, -111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111, -110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102, -108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112, -116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112, -101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95, -114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105, -110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, - 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, - 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112, -101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0, -122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110, -101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, - 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116, -120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, - 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115, -115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95, -116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115, -104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, - 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114, -101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114, -101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95, -115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110, -100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116, -104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98, -105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95, -116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102, -102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114, -101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109, -112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112, -105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95, -115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0, -114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0, -114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0, -115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114, -111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0, -115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115, -115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, - 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109, -101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, - 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, - 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109, -115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111, -116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, - 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0, -104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110, -114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101, -114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107, -110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, - 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,101,121,105,110,100,101,120, - 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, - 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101, -121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,116,119,105,115,116, 95, -115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,116,104,108,101,110, 0, 98, -101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114, -101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 0,115,112, 97, - 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115, -105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, - 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101, -100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, - 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, - 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101, -110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, - 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42, -109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99, -116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116, -111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99, -101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115, -117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0, -117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, - 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101, -105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0, -110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, - 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,112, - 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103, -101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114, -114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101, -114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99, -114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95, -102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114, -111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, - 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,101, -120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, - 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, - 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42, -115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102, -102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, - 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, - 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, - 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102, -108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95, -110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109, -101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101, -118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112, -114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, - 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101, -112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, - 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102, -102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109, -117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101, -110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116, -105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97, -114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, - 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110, -101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, - 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,109,101, 95,120, -110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105, -111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, - 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105, -110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42, -100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121, -110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119, -105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, - 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116, -100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116, -105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111, -117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0, -115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118, -103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121, -112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101, -118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105, -103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, - 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95,111,102,115, 0, -109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114,101,110,100,101, -114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, 0, 42,111, 98, -106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100, -105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112, -110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0, -100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97, -116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117, -108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, - 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114, -111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, - 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,110, -116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101, -114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0, -100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, - 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, - 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, - 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97, -121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0, -116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, - 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100, -116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0, -115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116, -111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118, -101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0, -114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, - 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, - 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, - 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97, -103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114, -105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0, -104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95, -103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0, -115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117, -105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101, -114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,111,109,100, 97, -116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, - 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0,112, 97, -100, 51, 91, 56, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, - 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, - 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109, -111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103, -116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0, -109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, - 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101, -102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100, -101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, - 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95, -102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97, -112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42, -114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, - 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105, -110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101, -120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109, -101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, - 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, - 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, - 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, - 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116, -101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, - 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, - 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0, -107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, - 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, - 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116, -105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, - 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, - 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102, -114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115, -112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0, -100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, - 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99, -116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101, -114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111, -116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, - 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101, -100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118, -101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, - 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99, -104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111, -116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0,118,101,108, - 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101, -115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105, -122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77, -111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, - 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83, -116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,103, -115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105, -110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, - 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116, -121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110, -105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, - 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109, -111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73, -110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, - 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114, -116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102, -111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0, -118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111, -114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0, -104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97, -115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0, -108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, - 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103, -105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115, -116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116, -100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, - 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115, -116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102, -109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110, -101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, - 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, - 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112, -112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114, -103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105, -114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104, -111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97, -115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0, -115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, - 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100, -108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, - 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, - 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97, -114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, - 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99, -111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, - 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116, -121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116, -101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97, -109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110, -110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116, -101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105, -111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111, -108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, - 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95, -115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, - 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99, -101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101, -114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, - 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99, -100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, - 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97, -109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101, -100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97, -121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116, -101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, - 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, - 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, - 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112, -116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101, -114, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115, -101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99, -116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97, -115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, - 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116, -115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97, -107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97, -107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, - 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95, -112, 97,100, 0,112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, - 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, - 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, - 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95, -102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115, -104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0, -115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111, -110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, - 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100, -111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111, -109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0, -115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, - 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, - 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 0,100,111,109,101, - 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, - 97, 0, 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114, -115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, - 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97, -105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100, -107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105, -115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, - 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0, -114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115, -116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115, -105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101, -100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, - 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, - 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105, -110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116, -121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103, -114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97, -108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118, -101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0, -117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, - 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97, -108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, - 95,112, 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108, -101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97, -108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115, -104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111, -112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100, -105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117, -108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116, -105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103, -101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103, -116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101, -110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95, -108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, - 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, - 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103, -101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, - 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115, -115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95, -109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, - 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114, -116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, - 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, - 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, - 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111, -100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, - 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, - 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0, 97,117,116,111, 95, -110,111,114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0, -115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, - 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117, -115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,116,111,116, -111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116, -111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0, -115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, - 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, - 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, - 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, - 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, - 97,108, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105, -111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, - 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, - 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, - 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107, -101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115, -105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, - 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, - 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101, -119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, - 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, - 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,116,119,100,114, 97,119,102,108, 97,103, - 0,105,115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0, 99, -108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, - 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109, -111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108, -118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101, -103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108, -111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114, -101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110, -101, 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0, -115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109, -111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103, -114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, - 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95, -120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120, -114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116, -105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, - 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, - 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102, -115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110, -121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112, -116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111, -115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, - 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99, -111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0, -114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, - 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, - 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 93, 0,102,105,108,116,101, -114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, - 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115, -116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108, -101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42, -111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114, -101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, - 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, - 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, - 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95, -108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, - 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0, -115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105, -101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105, -110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117, -109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114, -119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116, -115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, - 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97, -114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, - 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, - 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99, -101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, - 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, - 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99, -116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116, -121,112,101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,116,105,116,108,101, 91, 50, 52, 93, 0,109, -101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,115,101,108,115,116, 97,116,101, - 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, - 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, - 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101, -116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, - 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114, -103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, - 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109, -112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115, -101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97,114,101, 97, 0, 42,115,111,117,110,100, 0,115, -110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, - 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, - 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97, -108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117, -112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122, -111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, - 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, - 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97, -110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105, -110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, - 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115, -104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110, -110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110, -110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101, -114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0, -119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, - 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103, -103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, - 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, - 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95, -115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105, -116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, - 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, - 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, - 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116, -116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116, -111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, - 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, - 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116, -101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, - 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105, -114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, - 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115, -102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, - 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115, -101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101, -108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, - 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103, -101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116, -114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, - 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, - 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108, -101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110, -117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95, -115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, - 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, - 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110, -100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0, -104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, - 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97, -110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, - 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115, -111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110, -115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105, -110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 0,115,121,110,116, 97, -120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, - 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, - 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0, -112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0, -101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, - 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100, -108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, - 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116, -102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116, -115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109, -101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108, -101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100, -117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, - 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101, -114,100,105,114, 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100, -105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105, -114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111, -114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97, -121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, - 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105, -109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102, -108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109, -105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, - 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, - 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0, -109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105, -115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115, -116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, - 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, - 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, - 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112, -111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, - 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97, -119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105, -109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111, -114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118, -105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111, -111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110, -100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, - 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, - 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, - 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, - 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116, -101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108, -112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, - 48, 93, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110, -101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119, -105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95, -103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100, -114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105, -118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, - 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, - 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, - 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0, -114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114, -100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, - 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105, -115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, - 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121, -112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101, -115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121, -112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98, -108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, - 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109, -105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, - 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108, -111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109, -101, 91, 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116, -116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, - 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116, -115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, - 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97, -110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97, -116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99, -104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, - 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, 42,115, 99,101, -110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100, -101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115, 99, -101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,109,117,108,116, -105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97, -110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109, -111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114, -115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, - 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, - 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97, -103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0, -119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105, -115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, - 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, - 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110, -116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, - 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98, -117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, - 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, - 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, - 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, - 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, - 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114, -116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97, -109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115, -101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42, -109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, - 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108, -117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97, -109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97, -116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, - 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, - 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102, -114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101, -120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, - 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110, -112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97, -116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100, -105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, - 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0, -114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0, -114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, - 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, - 0,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42, -109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, - 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, - 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, - 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, - 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, - 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, - 91, 51, 50, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0, -105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0, -102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98, -106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97, -110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, - 98,116, 97,114,103,101,116, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, - 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95, -104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102, -115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, - 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97, -100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97, -114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, - 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97, -105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111, -110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116, -101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112, -101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115, -102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115, -116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104, -111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116, -121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116, -121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, - 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, - 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99, -116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107, -116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99, -104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115, -101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, - 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116, -114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 99,104, - 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114, -105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97, -103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107, -100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, - 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, - 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0, -100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117, -114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, - 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, - 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, - 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111, -114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, - 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101, -114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, - 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115, -117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105, -103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105, -110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114, -118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108, -111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, - 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, - 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, - 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, - 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97, -120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, - 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, - 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116, -115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, - 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, -111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, - 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110, -115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, - 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, 42,103, -114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 0, 42,114,101, 99,116, 0,120,115, -105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116, -115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99, -117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110, -101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98, -117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110, -111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111, -100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110, -105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, - 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42, -116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0, 99,121, 99, -108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112, -101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107, -101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, - 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119, -114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0, -116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, - 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, - 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97, -109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95, -122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, - 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101, -115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112, -101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95, -105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0, -117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,115,104,111,114,116,121, 0,109, -105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111, -117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, - 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99, -108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109, -117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, - 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, - 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112, -108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, - 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114, -109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, - 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102, -111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118, -101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99, -108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, - 97,116,104, 91, 50, 52, 48, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106, -105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116, -104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108, -112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111, -108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111, -111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101, - 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116, -117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95, - 97,108,112,104, 97, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 97,100,100, 95, 99,111,108, - 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, - 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97, -121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101, -114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101, -114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, - 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0, -119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115, -116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, - 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112, -108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112, -108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0, -118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115, -116,105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95, -100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, - 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109, -111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, - 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, - 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121, -115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116, -102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115, -112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95, -116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, - 98, 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105, -108, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, - 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105, -111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106, -105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,103,114,105,100, 95,114,101, -115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, - 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101, -102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115, -101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111, -119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99, -104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100, -114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109, -112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,109,112, 0,114,111, -117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115, -105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, - 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, - 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,114,116,105,110,103, - 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, - 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107, -101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111, -117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97, -114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, - 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99, -108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97, -114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0, 98,118,104,116, -114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,110,101,120,105,115,116, 0, -116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, - 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, - 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110, -101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,102, -108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 97,108, -108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97, -110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, - 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, - 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95, -115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108, -100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116, -105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114, -105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118, -103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101, -121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95, -108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101, -112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101, -108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101, -115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, - 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102, -101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108, -105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114, -116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119, -105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, - 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111, -114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99, -111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111, -115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42, -115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, - 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, - 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111, -118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100, -114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, - 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100, -110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108, -116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, - 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, - 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, - 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115, -116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, - 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105, -122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117, -108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115, -101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, - 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, - 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114, -110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, - 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, - 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99, -111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111, -114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, - 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, - 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, - 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0, -112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42, -116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118, -101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95, -101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112, -116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, - 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, - 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114, -117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95, -116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105, -100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103, -114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112, -101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95, -112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, - 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95, -109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, - 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95, -103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116, -101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, - 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105, -102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115, -115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100, -120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103, -104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, - 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0, -118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0, -118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118, -103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116, -115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 0, 84, 89, 80, 69, - 0, 0, 1,205, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0, -108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110, -107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0, -114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101, -114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73, -109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, - 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, - 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101, -120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, - 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101, -114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, - 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101, -110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111, -100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116, -116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, - 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, - 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, - 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, - 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69, -100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101, -108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101, -115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104, -116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, - 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80, -114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 77,117,108, -116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101, -115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, - 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99, -101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101, -118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83, -101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67, -111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, - 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116, -104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116, -105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104, -101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, - 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, - 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, - 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68, -101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116, -105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83, -101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, -105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111, -117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, - 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, - 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83, -111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69, -102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, - 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, - 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, - 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100, -101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, -105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, - 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100, -101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97, -109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97, -105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114, -116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105, -110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, - 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83, -101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, - 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111, -110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109, -111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, - 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, - 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70, -105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105, -115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111, -112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, - 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, - 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, - 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, - 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105, -110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, - 97, 99,101, 83,111,117,110,100, 0, 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 0,117,105, 70,111,110,116, 0,117, -105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114, -115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104, -101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, - 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, - 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, - 0,117,105, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103, -105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114, -105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, - 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83, -101,113, 0, 83,101,113,117,101,110, 99,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71, -108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, - 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105, -108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, - 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111, -114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, - 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, - 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97, -100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115, -111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111, -114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83, -101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110, -116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, - 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116, -117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, - 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, - 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, - 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111, -117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, - 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98, -105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111, -114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, - 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66, -111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80, -111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105, -111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110, -101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105, -110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76, -105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105, -107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108, -111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111, -116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111, -110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, -104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102, -105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100, -101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, - 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, - 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, - 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, - 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119, -111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, - 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99, -114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78, -111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100, -101, 67,111,108,111,114,115,112,105,108,108, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, - 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116, -111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, - 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, - 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114, -116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112, -108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101, -116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116, -105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114, -116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110, -116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, - 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105, -110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105, -110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110, -116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, - 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, - 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, - 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80, -121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111, -100, 95, 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, - 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105, -109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, - 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114, -114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, - 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105, -115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117, -108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105, -100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 84, 76, 69, 78, - 0, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, 8, 0, 4, 0, 8, 0, 16, - 0, 16, 0, 20, 0, 76, 0, 52, 2, 40, 0, 0, 0, 32, 0,140, 4, 44, 0, 92, 0, 36, 0, 56, 0, 84, 0,112, 0,124, 0, 56, - 0, 24, 0, 40, 0,120, 0, 12, 0,104, 0, 36, 5, 40, 1,156, 0, 0, 0, 0, 0, 0, 1, 16, 1, 48, 1, 84, 0, 24, 3, 8, - 0,168, 0, 0, 0, 84, 1, 16, 1, 32, 0,164, 0,132, 1,108, 0, 88, 2,160, 0, 76, 1, 60, 0, 0, 0,108, 0,104, 0,148, - 0, 56, 0, 8, 0, 16, 0, 20, 0, 0, 1, 92, 0, 0, 0, 0, 0, 0, 1, 24, 0, 20, 0, 44, 0, 60, 0, 20, 0, 12, 0, 12, - 0, 4, 0, 8, 0, 8, 0, 0, 0, 28, 0, 84, 0, 32, 0, 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 1, 0, 0, 32, 0, 12, - 0, 16, 0, 64, 0, 24, 0, 12, 0, 40, 0, 64, 0,112, 0, 80, 0,100, 0,108, 0, 80, 0,108, 0,128, 0, 76, 0, 72, 0,120, - 0, 72, 0, 84, 0,204, 0, 48, 0,168, 0,160, 0,172, 0, 72, 0,104, 0,116, 0,196, 0,112, 0,224, 0, 64, 0, 92, 0, 0, - 0,144, 0, 40, 1,244, 0,112, 0, 0, 0, 88, 0, 0, 0, 0, 0, 76, 0, 8, 0, 8, 0,244, 0, 88, 1,148, 0, 84, 0,108, - 0, 72, 0, 72, 1,180, 0,120, 0,116, 0, 64, 0,128, 0, 92, 0,172, 0, 12, 0,224, 0, 40, 0, 0, 0,100, 0,156, 0, 72, - 0, 48, 0, 20, 0,120, 0,144, 1, 88, 0,208, 0,180, 0, 0, 0, 68, 0, 20, 0, 96, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 12, 1,112, 0, 28, 0,176, 0,144, 0, 64, 0, 60, 0, 24, 0, 72, 3,144, 0, 56, 0, 20, 0, 16, 0,100, 0, 84, 0, 16, - 2,204, 0, 36, 0, 16, 0,156, 0, 80, 0, 88, 0, 36, 1,152, 0, 32, 0, 8, 0, 24, 2, 56, 0, 0, 0, 0, 0, 72, 3, 68, - 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 40, 0,140, 0, 48, 0,208, 0, 88, 0,216, 0,216, 2, 96, 0, 60, 0, 0, 0,120, - 0, 0, 0,244, 0, 12, 0, 12, 32,248, 16,112, 16, 24, 0,192, 2,136, 2, 80, 0, 40, 0, 12, 0,188, 0,252, 0, 52, 2,140, - 0, 28, 1,104, 0, 88, 0,188, 0, 96, 1, 92, 1, 16, 0, 32, 0,224, 0, 32, 0, 32, 2,112, 1,120, 0, 16, 30, 80, 0, 72, - 0, 56, 13,144, 0,148, 0, 20, 0, 24, 1, 64, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 1, 24, 0, 88, 0, 16, 0, 8, 0, 44, - 0,252, 0,212, 1,168, 0,216, 0, 16, 0, 12, 0, 24, 0, 52, 0, 16, 0, 20, 0, 16, 0, 24, 1, 56, 0, 0, 0, 56, 0, 52, - 0, 48, 0, 8, 0, 44, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 68, 0, 76, 0, 80, 0, 60, - 0,128, 0, 76, 0, 60, 0, 12, 0, 92, 0, 32, 0, 68, 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, 96, 0, 56, 0, 56, - 0,108, 0,140, 0, 4, 0, 20, 0, 12, 0, 8, 0, 80, 0, 24, 1, 16, 0,144, 0, 16, 1,192, 0, 4, 0, 40, 0,104, 1, 24, - 0, 64, 0, 44, 0, 72, 0,116, 0, 60, 0,112, 0, 16, 0, 52, 0, 44, 0, 44, 0, 44, 0, 8, 0, 36, 0, 68, 0, 64, 0, 44, - 0, 44, 0, 20, 0, 52, 0, 96, 0, 12, 0,108, 0, 92, 0, 52, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, 36, - 0,124, 0, 32, 0, 12, 0,212, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 1, 16, 0, 44, 0, 24, 0, 8, 0, 64, - 0, 32, 0, 24, 0, 8, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0,240, 0, 24, 0, 56, - 0, 52, 0, 20, 0, 16, 0, 64, 0, 28, 0, 20, 0,180, 0, 60, 2, 64, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 20, - 0, 24, 0,172, 0, 28, 0,168, 0,148, 0,152, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 96, 0, 0, 0, 88, 0, 20, 0, 24, - 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0, 20, 0, 48, 1,208, 1, 28, 0, 16, 0, 68, 1, 0, 0, 20, 0,160, 0, 88, - 0, 96, 0,152, 0, 20, 0, 56, 0, 48, 0, 68, 0, 56, 0, 92, 0, 64, 0, 56, 0, 96, 0, 0, 0, 0, 0, 0, 83, 84, 82, 67, - 0, 0, 1,148, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, - 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, - 0, 7, 0, 6, 0, 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, - 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, - 0, 18, 0, 10, 0, 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, - 0, 17, 0, 20, 0, 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, - 0, 0, 0, 25, 0, 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, - 0, 21, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, - 0, 4, 0, 38, 0, 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, - 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, - 0, 16, 0, 48, 0, 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, - 0, 2, 0, 17, 0, 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, - 0, 23, 0, 59, 0, 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, - 0, 2, 0, 35, 0, 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, - 0, 2, 0, 65, 0, 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, - 0, 7, 0, 70, 0, 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, - 0, 7, 0, 58, 0, 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, - 0, 32, 0, 6, 0, 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, - 0, 33, 0, 0, 0, 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, - 0, 0, 0, 89, 0, 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, - 0, 32, 0, 94, 0, 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, - 0, 9, 0,102, 0, 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 16, 0, 19, 0, 29, - 0, 31, 0, 72, 0, 0, 0, 15, 0, 0, 0,106, 0, 2, 0, 17, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, - 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 28, 0, 77, 0, 24, 0,116, 0, 37, 0, 14, - 0, 38, 0,117, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, - 0, 0, 0, 35, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0, 17, 0, 4, 0, 67, 0, 39, 0, 32, 0, 19, 0, 29, - 0, 0, 0, 32, 0, 12, 0,128, 0, 40, 0,129, 0, 41, 0,130, 0, 42, 0,131, 0, 42, 0,132, 0, 2, 0,133, 0, 2, 0,134, - 0, 2, 0,124, 0, 2, 0, 17, 0, 2, 0,135, 0, 2, 0, 15, 0, 4, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, - 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 4, 0,143, 0, 4, 0,144, 0, 35, 0,145, 0, 22, 0,146, 0, 7, 0,147, - 0, 4, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 7, 0,153, 0, 7, 0,154, 0, 43, 0, 65, - 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 24, 0,159, 0, 44, 0,160, 0, 0, 0,161, 0, 0, 0,162, - 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 7, 0,166, 0, 7, 0,167, 0, 7, 0,168, 0, 2, 0,169, 0, 2, 0,170, - 0, 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, 7, 0,177, 0, 7, 0,178, - 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0, 54, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, - 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, - 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, - 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, - 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, - 0, 7, 0,218, 0, 45, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, 4, 0,223, 0, 4, 0,224, - 0, 9, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, 9, 0,231, 0, 4, 0,232, - 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,233, 0, 7, 0, 64, 0, 4, 0, 61, - 0, 47, 0, 5, 0, 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,234, 0, 46, 0,228, 0, 48, 0, 17, 0, 24, 0,159, - 0, 39, 0,235, 0, 49, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 0,108, 0, 7, 0,109, - 0, 7, 0,240, 0, 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,136, 0, 2, 0,244, 0, 2, 0,245, - 0, 50, 0, 25, 0, 2, 0, 17, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,135, 0, 2, 0,249, 0, 4, 0,250, - 0, 4, 0,251, 0, 24, 0,159, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, 7, 1, 0, 0, 7, 1, 1, - 0, 2, 1, 2, 0, 2, 1, 3, 0, 2, 1, 4, 0, 2, 1, 5, 0, 7, 1, 6, 0, 7, 1, 7, 0, 7, 1, 8, 0, 7, 1, 9, - 0, 47, 1, 10, 0, 51, 1, 11, 0, 52, 0, 13, 0, 4, 1, 12, 0, 4, 1, 13, 0, 2, 1, 14, 0, 2, 0, 17, 0, 2, 1, 15, - 0, 2, 1, 16, 0, 24, 0,159, 0, 7, 1, 17, 0, 4, 1, 18, 0, 0, 1, 19, 0, 7, 1, 20, 0, 4, 1, 21, 0, 4, 0,124, - 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 1, 22, 0, 7, 1, 23, 0, 7, 1, 24, 0, 7, 1, 25, 0, 7, 1, 26, - 0, 7, 1, 27, 0, 7, 1, 28, 0, 7, 1, 29, 0, 7, 1, 30, 0, 7, 0, 67, 0, 7, 1, 31, 0, 7, 1, 32, 0, 7, 1, 33, - 0, 7, 1, 34, 0, 7, 1, 35, 0, 7, 1, 36, 0, 7, 1, 37, 0, 7, 1, 38, 0, 7, 1, 39, 0, 7, 1, 40, 0, 7, 1, 41, - 0, 7, 1, 42, 0, 2, 1, 43, 0, 2, 1, 44, 0, 2, 1, 45, 0, 2, 1, 46, 0, 2, 1, 47, 0, 2, 1, 48, 0, 2, 1, 49, - 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,239, 0, 7, 1, 50, 0, 7, 1, 51, 0, 7, 1, 52, 0, 7, 1, 53, 0, 4, 1, 54, - 0, 4, 1, 55, 0, 2, 1, 56, 0, 2, 1, 57, 0, 2, 1, 15, 0, 2, 0,122, 0, 4, 0, 21, 0, 4, 0,119, 0, 4, 0,120, - 0, 4, 0,121, 0, 7, 1, 58, 0, 7, 1, 59, 0, 7, 0, 87, 0, 37, 1, 60, 0, 53, 1, 61, 0, 28, 0, 77, 0, 39, 0,235, - 0, 45, 1, 62, 0, 47, 1, 10, 0, 48, 1, 63, 0, 22, 0,146, 0, 50, 1, 64, 0, 52, 1, 65, 0, 0, 1, 66, 0, 0, 0,176, - 0, 54, 0, 8, 0, 7, 1, 67, 0, 7, 1, 68, 0, 7, 0,167, 0, 4, 0, 17, 0, 7, 1, 69, 0, 7, 1, 70, 0, 7, 1, 71, - 0, 24, 0, 42, 0, 55, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 1, 72, 0, 2, 0,170, - 0, 2, 1, 73, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 1, 74, 0, 7, 1, 75, 0, 7, 1, 76, - 0, 7, 1, 77, 0, 7, 1, 78, 0, 7, 1, 79, 0, 7, 1, 80, 0, 7, 1, 81, 0, 7, 1, 82, 0, 7, 1, 83, 0, 7, 1, 84, - 0, 51, 1, 85, 0, 2, 0,246, 0, 2, 0, 67, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 1, 86, 0, 7, 1, 87, 0, 7, 1, 88, - 0, 7, 1, 89, 0, 7, 1, 90, 0, 2, 1, 91, 0, 2, 1, 92, 0, 2, 1, 93, 0, 2, 1, 94, 0, 0, 1, 95, 0, 0, 1, 96, - 0, 2, 1, 97, 0, 2, 1, 98, 0, 2, 1, 99, 0, 2, 1,100, 0, 2, 1,101, 0, 7, 1,102, 0, 7, 1,103, 0, 7, 1,104, - 0, 7, 1,105, 0, 2, 1,106, 0, 2, 0, 87, 0, 2, 1,107, 0, 2, 1,108, 0, 2, 1,109, 0, 2, 1,110, 0, 7, 1,111, - 0, 7, 1,112, 0, 7, 1,113, 0, 7, 1,114, 0, 7, 1,115, 0, 7, 1,116, 0, 7, 1,117, 0, 7, 1,118, 0, 7, 1,119, - 0, 7, 1,120, 0, 7, 1,121, 0, 7, 1,122, 0, 2, 1,123, 0, 0, 1,124, 0, 28, 0, 77, 0, 43, 1,125, 0, 2, 1,126, - 0, 0, 1,127, 0, 22, 0,146, 0, 56, 0, 18, 0, 7, 1,128, 0, 7, 1,129, 0, 7, 1,130, 0, 7, 1,131, 0, 7, 1,132, - 0, 7, 1,133, 0, 7, 1,134, 0, 7, 1,135, 0, 7, 1,136, 0, 7, 1,137, 0, 2, 1,138, 0, 2, 1,139, 0, 2, 1,140, - 0, 2, 1,141, 0, 7, 1,142, 0, 7, 1,143, 0, 7, 1,144, 0, 7, 1,145, 0, 57, 0,125, 0, 19, 0, 29, 0, 31, 0, 72, - 0, 2, 1,146, 0, 2, 0, 17, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 1,147, 0, 7, 1,148, 0, 7, 1,149, - 0, 7, 1,150, 0, 7, 1,151, 0, 7, 1,152, 0, 7, 1,153, 0, 7, 1,154, 0, 7, 1,155, 0, 7, 1,156, 0, 7, 1,157, - 0, 7, 1,158, 0, 7, 1,159, 0, 7, 1,160, 0, 7, 1,161, 0, 7, 1,162, 0, 7, 1,163, 0, 7, 1,164, 0, 7, 1,165, - 0, 7, 1,166, 0, 56, 1,167, 0, 7, 1,168, 0, 7, 1,169, 0, 7, 1,170, 0, 7, 1,171, 0, 7, 1,172, 0, 7, 1,173, - 0, 7, 1,174, 0, 2, 1,175, 0, 2, 1,176, 0, 2, 1,177, 0, 0, 1,178, 0, 0, 1,179, 0, 7, 1,180, 0, 7, 1,181, - 0, 2, 1,182, 0, 2, 1,183, 0, 7, 1,184, 0, 7, 1,185, 0, 7, 1,186, 0, 7, 1,187, 0, 2, 1,188, 0, 2, 1,189, - 0, 4, 1, 72, 0, 4, 1,190, 0, 2, 1,191, 0, 2, 1,192, 0, 2, 1,193, 0, 2, 1,194, 0, 7, 1,195, 0, 7, 1,196, - 0, 7, 1,197, 0, 7, 1,198, 0, 7, 1,199, 0, 7, 1,200, 0, 7, 1,201, 0, 7, 1,202, 0, 7, 1,203, 0, 7, 1,204, - 0, 0, 1,205, 0, 7, 1,206, 0, 7, 1,207, 0, 7, 1,208, 0, 4, 1,209, 0, 0, 1,210, 0, 0, 1,107, 0, 0, 1,211, - 0, 0, 1, 66, 0, 2, 1,212, 0, 2, 1,213, 0, 2, 1,126, 0, 2, 1,214, 0, 2, 1,215, 0, 2, 1,216, 0, 7, 1,217, - 0, 7, 1,218, 0, 7, 1,219, 0, 7, 1,220, 0, 7, 1,221, 0, 2, 0,155, 0, 2, 0,156, 0, 47, 1,222, 0, 47, 1,223, - 0, 0, 1,224, 0, 0, 1,225, 0, 0, 1,226, 0, 0, 1,227, 0, 2, 1,228, 0, 2, 1,229, 0, 7, 1,230, 0, 7, 1,231, - 0, 43, 1,125, 0, 53, 1, 61, 0, 28, 0, 77, 0, 58, 1,232, 0, 22, 0,146, 0, 7, 1,233, 0, 7, 1,234, 0, 7, 1,235, - 0, 7, 1,236, 0, 7, 1,237, 0, 2, 1,238, 0, 2, 0, 67, 0, 7, 1,239, 0, 7, 1,240, 0, 7, 1,241, 0, 7, 1,242, - 0, 7, 1,243, 0, 7, 1,244, 0, 7, 1,245, 0, 7, 1,246, 0, 7, 1,247, 0, 2, 1,248, 0, 2, 1,249, 0, 4, 1,250, - 0, 2, 1,251, 0, 2, 0, 35, 0, 12, 1,252, 0, 59, 0, 4, 0, 19, 0, 29, 0, 0, 1,253, 0, 60, 0, 2, 0, 35, 0,145, - 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, 62, 1,254, 0, 4, 1,255, 0, 4, 2, 0, 0, 4, 2, 1, 0, 4, 2, 2, - 0, 4, 2, 3, 0, 4, 2, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 2, 5, 0, 2, 2, 6, 0, 7, 0, 5, 0, 7, 0, 6, - 0, 7, 2, 7, 0, 7, 2, 8, 0, 7, 2, 9, 0, 7, 2, 10, 0, 7, 2, 11, 0, 7, 2, 12, 0, 7, 2, 13, 0, 7, 2, 14, - 0, 7, 0, 21, 0, 7, 2, 15, 0, 7, 2, 16, 0, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 12, 2, 17, - 0, 12, 2, 18, 0, 12, 2, 19, 0, 28, 0, 77, 0, 57, 2, 20, 0, 0, 0, 17, 0, 0, 2, 21, 0, 2, 2, 22, 0, 2, 0,169, - 0, 2, 0, 35, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 7, 2, 23, 0, 7, 2, 24, 0, 7, 2, 25, 0, 61, 2, 26, - 0, 27, 0, 11, 0, 7, 2, 27, 0, 7, 2, 28, 0, 7, 2, 29, 0, 7, 0,248, 0, 2, 0, 52, 0, 0, 2, 30, 0, 0, 2, 31, - 0, 0, 2, 32, 0, 0, 2, 33, 0, 0, 2, 34, 0, 0, 2, 35, 0, 26, 0, 7, 0, 7, 2, 36, 0, 7, 2, 28, 0, 7, 2, 29, - 0, 2, 2, 32, 0, 2, 2, 35, 0, 7, 0,248, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, - 0, 2, 2, 37, 0, 2, 2, 35, 0, 2, 0, 17, 0, 2, 2, 38, 0, 2, 2, 39, 0, 2, 2, 40, 0, 2, 2, 41, 0, 2, 2, 42, - 0, 2, 2, 43, 0, 2, 2, 44, 0, 2, 2, 45, 0, 7, 2, 46, 0, 7, 2, 47, 0, 26, 0, 46, 0, 27, 0, 47, 0, 2, 2, 48, - 0, 2, 2, 49, 0, 4, 2, 50, 0, 65, 0, 5, 0, 2, 2, 51, 0, 2, 2, 37, 0, 0, 0, 17, 0, 0, 0, 35, 0, 2, 0, 67, - 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 2, 52, 0, 7, 2, 53, 0, 67, 0, 4, 0, 12, 2, 54, 0, 68, 2, 55, - 0, 4, 2, 56, 0, 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 12, 2, 57, 0, 12, 2, 18, - 0, 67, 2, 58, 0, 24, 2, 59, 0, 24, 2, 60, 0, 24, 2, 61, 0, 28, 0, 77, 0, 70, 2, 62, 0, 30, 2, 63, 0, 57, 2, 20, - 0, 12, 2, 64, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 2, 0,169, 0, 2, 0, 87, 0, 2, 2, 65, 0, 2, 2, 66, - 0, 7, 2, 67, 0, 7, 2, 68, 0, 4, 2, 69, 0, 2, 0, 35, 0, 2, 2, 22, 0, 2, 0, 17, 0, 2, 2, 70, 0, 7, 2, 71, - 0, 7, 2, 72, 0, 7, 2, 73, 0, 2, 2, 40, 0, 2, 2, 41, 0, 2, 2, 74, 0, 2, 2, 75, 0, 4, 2, 76, 0, 9, 2, 77, - 0, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, 2, 2, 78, 0, 7, 2, 79, 0, 7, 2, 80, 0, 7, 2, 81, 0, 7, 2, 82, - 0, 7, 2, 83, 0, 7, 2, 84, 0, 7, 2, 85, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 2, 88, 0, 0, 2, 89, 0, 71, 2, 90, - 0, 72, 2, 91, 0, 0, 2, 92, 0, 59, 2, 93, 0, 59, 2, 94, 0, 59, 2, 95, 0, 59, 2, 96, 0, 4, 2, 97, 0, 7, 2, 98, - 0, 4, 2, 99, 0, 4, 2,100, 0, 66, 2,101, 0, 4, 2,102, 0, 4, 2,103, 0, 65, 2,104, 0, 65, 2,105, 0, 73, 0, 39, - 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,254, 0, 28, 0, 77, 0, 30, 2, 63, 0, 57, 2, 20, 0, 74, 2,106, 0, 75, 2,107, - 0, 76, 2,108, 0, 77, 2,109, 0, 78, 2,110, 0, 79, 2,111, 0, 80, 2,112, 0, 81, 2,113, 0, 73, 2,114, 0, 82, 2,115, - 0, 83, 2,116, 0, 84, 2,117, 0, 84, 2,118, 0, 84, 2,119, 0, 4, 0, 51, 0, 4, 2,120, 0, 4, 2,121, 0, 4, 2,122, - 0, 4, 2,123, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 1, 68, 0, 2, 0,169, 0, 2, 2, 65, 0, 2, 2,124, 0, 2, 0, 17, - 0, 2, 2,125, 0, 2, 2,126, 0, 0, 2,127, 0, 0, 2,128, 0, 2, 2, 22, 0, 85, 2,129, 0, 86, 2,130, 0, 76, 0, 8, - 0, 9, 2,131, 0, 7, 2,132, 0, 4, 2,133, 0, 0, 0, 17, 0, 0, 2,134, 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, - 0, 74, 0, 7, 0, 4, 2,137, 0, 4, 2,138, 0, 4, 2,139, 0, 4, 2,140, 0, 2, 2, 37, 0, 0, 2,141, 0, 0, 0, 17, - 0, 78, 0, 5, 0, 4, 2,137, 0, 4, 2,138, 0, 0, 2,142, 0, 0, 2,143, 0, 2, 0, 17, 0, 87, 0, 2, 0, 4, 2,144, - 0, 7, 2, 29, 0, 79, 0, 3, 0, 87, 2,145, 0, 4, 2,146, 0, 4, 0, 17, 0, 77, 0, 4, 0, 7, 2,147, 0, 2, 2,148, - 0, 0, 0, 17, 0, 0, 2,143, 0, 80, 0, 4, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 88, 0, 6, - 0, 39, 2,131, 0, 0, 0, 17, 0, 0, 2,134, 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, 0, 89, 0, 1, 0, 7, 2,149, - 0, 90, 0, 5, 0, 0, 0,233, 0, 0, 0,177, 0, 0, 0,178, 0, 0, 0,179, 0, 4, 0, 35, 0, 81, 0, 1, 0, 7, 2,150, - 0, 82, 0, 2, 0, 4, 2,151, 0, 4, 0, 15, 0, 75, 0, 7, 0, 7, 2,132, 0, 39, 2,131, 0, 0, 0, 17, 0, 0, 2,134, - 0, 2, 1, 72, 0, 2, 2,135, 0, 2, 2,136, 0, 91, 0, 1, 0, 7, 2,152, 0, 92, 0, 1, 0, 4, 2,153, 0, 93, 0, 1, - 0, 0, 2,154, 0, 94, 0, 1, 0, 7, 2,132, 0, 95, 0, 3, 0, 4, 2,155, 0, 0, 0, 90, 0, 7, 2,156, 0, 96, 0, 4, - 0, 7, 0,233, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 97, 0, 1, 0, 96, 2,133, 0, 98, 0, 5, 0, 4, 2,157, - 0, 4, 2,158, 0, 0, 0, 17, 0, 0, 2, 37, 0, 0, 2,159, 0, 99, 0, 2, 0, 4, 2,160, 0, 4, 2,158, 0,100, 0, 10, - 0,100, 0, 0, 0,100, 0, 1, 0, 98, 2,161, 0, 97, 2,162, 0, 99, 2,163, 0, 4, 0, 51, 0, 4, 2,121, 0, 4, 2,120, - 0, 4, 0, 35, 0, 77, 2,164, 0, 85, 0, 14, 0, 12, 2,165, 0, 77, 2,164, 0, 0, 2,166, 0, 0, 2,167, 0, 0, 2,168, - 0, 0, 2,169, 0, 0, 2,170, 0, 0, 2,171, 0, 0, 2,172, 0, 0, 0, 17, 0, 84, 2,117, 0, 84, 2,119, 0, 2, 2,173, - 0, 0, 2,174, 0, 86, 0, 8, 0, 4, 2,175, 0, 4, 2,176, 0, 74, 2,177, 0, 78, 2,178, 0, 4, 2,121, 0, 4, 2,120, - 0, 4, 0, 51, 0, 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 1, 72, 0, 4, 2,179, - 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,117, 0, 0, 2,180, 0,102, 0, 6, 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, - 0, 0, 2,184, 0, 4, 2,185, 0, 4, 2,186, 0,103, 0, 7, 0,101, 2,181, 0, 2, 2,187, 0, 2, 2,165, 0, 2, 2,188, - 0, 2, 0, 88, 0, 9, 2,189, 0, 9, 2,190, 0,104, 0, 3, 0,101, 2,181, 0, 24, 0,159, 0, 0, 0, 18, 0,105, 0, 5, - 0,101, 2,181, 0, 24, 0,159, 0, 0, 0, 18, 0, 2, 2,191, 0, 0, 2,192, 0,106, 0, 5, 0,101, 2,181, 0, 7, 0, 85, - 0, 7, 2,193, 0, 4, 2,194, 0, 4, 2,195, 0,107, 0, 5, 0,101, 2,181, 0, 24, 2,196, 0, 0, 0, 69, 0, 4, 1, 72, - 0, 4, 0, 17, 0,108, 0, 13, 0,101, 2,181, 0, 24, 2,197, 0, 24, 2,198, 0, 24, 2,199, 0, 24, 2,200, 0, 7, 2,201, - 0, 7, 2,202, 0, 7, 2,193, 0, 7, 2,203, 0, 4, 2,204, 0, 4, 2,205, 0, 4, 0, 88, 0, 4, 2,206, 0,109, 0, 5, - 0,101, 2,181, 0, 2, 2,207, 0, 2, 0, 17, 0, 7, 2,208, 0, 24, 2,209, 0,110, 0, 3, 0,101, 2,181, 0, 7, 2,210, - 0, 4, 0, 88, 0,111, 0, 10, 0,101, 2,181, 0, 7, 2,211, 0, 4, 2,212, 0, 4, 0, 35, 0, 2, 0, 88, 0, 2, 2,213, - 0, 2, 2,214, 0, 2, 2,215, 0, 7, 2,216, 0, 0, 2,217, 0,112, 0, 3, 0,101, 2,181, 0, 7, 0, 35, 0, 4, 0, 15, - 0,113, 0, 6, 0,101, 2,181, 0,114, 2,218, 0,115, 2,219, 0,116, 2,220, 0, 7, 2,221, 0, 4, 0, 15, 0,117, 0, 11, - 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, 0, 0, 2,184, 0, 4, 2,185, 0, 4, 2,186, 0, 4, 2,222, 0, 7, 2,223, - 0, 4, 2,224, 0, 0, 2,217, 0, 7, 2,225, 0,118, 0, 12, 0,101, 2,181, 0, 24, 2,226, 0, 39, 2,227, 0, 4, 0, 88, - 0, 4, 2,228, 0, 7, 2,229, 0, 7, 2,230, 0, 7, 2,231, 0, 7, 2,232, 0, 0, 2,184, 0, 4, 2,185, 0, 4, 0, 35, - 0,119, 0, 3, 0,101, 2,181, 0, 7, 2,233, 0, 4, 2,234, 0,120, 0, 5, 0,101, 2,181, 0, 7, 2,235, 0, 0, 2,217, - 0, 2, 0, 17, 0, 2, 2,236, 0,121, 0, 8, 0,101, 2,181, 0, 24, 0,159, 0, 7, 2,235, 0, 7, 0,248, 0, 7, 0,104, - 0, 0, 2,217, 0, 2, 0, 17, 0, 2, 0, 15, 0,122, 0, 21, 0,101, 2,181, 0, 24, 2,237, 0, 0, 2,217, 0, 44, 2,182, - 0, 24, 2,183, 0, 2, 0, 17, 0, 2, 0, 35, 0, 7, 2,238, 0, 7, 2,239, 0, 7, 2,240, 0, 7, 2, 71, 0, 7, 2,241, - 0, 7, 2,242, 0, 7, 2,243, 0, 7, 2,244, 0, 4, 2,186, 0, 4, 2,185, 0, 0, 2,184, 0, 7, 2,245, 0, 7, 2,246, - 0, 7, 0, 87, 0,123, 0, 7, 0,101, 2,181, 0, 2, 2,247, 0, 2, 2,248, 0, 4, 0, 67, 0, 24, 0,159, 0, 7, 2,249, - 0, 0, 2,217, 0,124, 0, 10, 0,101, 2,181, 0, 24, 0,159, 0, 0, 2,250, 0, 7, 2,251, 0, 7, 2,252, 0, 7, 2,244, - 0, 4, 2,253, 0, 4, 2,254, 0, 7, 2,255, 0, 0, 0, 18, 0,125, 0, 1, 0,101, 2,181, 0,126, 0, 7, 0,101, 2,181, - 0, 38, 0,117, 0,127, 3, 0, 0,128, 3, 1, 0,129, 3, 2, 0,130, 3, 3, 0, 12, 3, 4, 0,131, 0, 13, 0,101, 2,181, - 0, 77, 3, 5, 0, 77, 3, 6, 0, 77, 3, 7, 0, 77, 3, 8, 0, 77, 3, 9, 0, 77, 3, 10, 0, 74, 3, 11, 0, 4, 3, 12, - 0, 4, 3, 13, 0, 7, 3, 14, 0, 7, 3, 15, 0,132, 3, 16, 0,133, 0, 7, 0,101, 2,181, 0, 77, 3, 5, 0, 77, 3, 17, - 0,134, 3, 18, 0,135, 3, 16, 0, 4, 3, 19, 0, 4, 3, 12, 0,136, 0, 4, 0,101, 2,181, 0, 24, 0,159, 0, 4, 3, 20, - 0, 4, 0, 35, 0,137, 0, 2, 0, 4, 3, 21, 0, 7, 2, 29, 0,138, 0, 2, 0, 4, 0,120, 0, 4, 3, 22, 0,139, 0, 24, - 0,101, 2,181, 0, 24, 0,159, 0, 0, 2,217, 0, 2, 3, 23, 0, 2, 0, 17, 0, 2, 1, 72, 0, 2, 0, 35, 0,137, 3, 24, - 0, 4, 3, 25, 0, 7, 3, 26, 0, 4, 0, 51, 0, 4, 3, 27, 0,138, 3, 28, 0,137, 3, 29, 0, 4, 3, 30, 0, 4, 3, 31, - 0, 4, 3, 32, 0, 4, 3, 22, 0, 7, 3, 33, 0, 7, 3, 34, 0, 7, 3, 35, 0, 7, 3, 36, 0, 7, 3, 37, 0, 9, 3, 38, - 0,140, 0, 8, 0,101, 2,181, 0,141, 3, 39, 0,134, 3, 18, 0, 4, 3, 40, 0, 4, 3, 41, 0, 4, 3, 42, 0, 2, 0, 17, - 0, 2, 0, 54, 0,142, 0, 8, 0,101, 2,181, 0, 24, 0, 42, 0, 2, 0,252, 0, 2, 0, 17, 0, 2, 2,207, 0, 2, 0, 54, - 0, 7, 3, 43, 0, 7, 3, 44, 0,143, 0, 6, 0,101, 2,181, 0, 4, 3, 45, 0, 2, 0, 17, 0, 2, 3, 46, 0, 7, 3, 47, - 0, 0, 0,161, 0,144, 0, 8, 0,101, 2,181, 0, 0, 3, 48, 0, 0, 3, 49, 0, 0, 2,171, 0, 0, 3, 50, 0, 0, 3, 51, - 0, 0, 0, 88, 0, 0, 2,159, 0,145, 0, 3, 0,101, 2,181, 0,146, 3, 52, 0,130, 3, 3, 0,147, 0, 10, 0,101, 2,181, - 0, 24, 3, 53, 0, 24, 3, 54, 0, 0, 3, 55, 0, 7, 3, 56, 0, 2, 3, 57, 0, 2, 3, 58, 0, 0, 3, 59, 0, 0, 3, 60, - 0, 0, 2,192, 0,148, 0, 9, 0,101, 2,181, 0, 24, 3, 61, 0, 0, 3, 55, 0, 7, 3, 62, 0, 7, 3, 63, 0, 0, 1, 72, - 0, 0, 2,207, 0, 0, 3, 64, 0, 0, 0, 35, 0,149, 0, 1, 0,101, 2,181, 0,150, 0, 11, 0,101, 2,181, 0, 0, 2,217, - 0, 7, 0,120, 0, 7, 3, 65, 0, 7, 3, 66, 0, 7, 3, 67, 0, 7, 3, 68, 0, 4, 0, 17, 0, 2, 3, 69, 0, 2, 3, 70, - 0, 4, 0, 35, 0,151, 0, 9, 0,101, 2,181, 0, 24, 3, 71, 0, 4, 3, 72, 0, 4, 3, 73, 0, 4, 3, 74, 0, 7, 3, 75, - 0, 7, 3, 76, 0, 2, 2,207, 0, 2, 0, 17, 0,152, 0, 16, 0,101, 2,181, 0, 44, 2,182, 0, 24, 2,183, 0, 0, 2,184, - 0, 4, 2,185, 0, 4, 2,186, 0, 4, 2,222, 0, 7, 2,223, 0, 24, 3, 77, 0, 24, 3, 78, 0, 51, 1, 85, 0, 0, 2,217, - 0, 7, 3, 79, 0, 0, 0, 17, 0, 0, 0,246, 0, 0, 2,159, 0,153, 0, 3, 0,154, 3, 80, 0, 4, 2, 56, 0, 0, 0, 90, - 0,154, 0, 29, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 2, 38, 0, 2, 2, 39, 0, 2, 3, 81, 0, 2, 0, 17, 0, 2, 3, 82, - 0, 2, 3, 83, 0, 2, 3, 84, 0, 2, 0, 67, 0, 0, 3, 85, 0, 0, 3, 86, 0, 0, 3, 87, 0, 0, 1,229, 0, 4, 0, 35, - 0, 7, 3, 88, 0, 7, 3, 89, 0, 7, 3, 90, 0, 7, 3, 91, 0, 7, 3, 92, 0, 7, 3, 93, 0, 26, 3, 94, 0, 28, 0, 77, - 0, 30, 2, 63, 0, 79, 2,111, 0, 0, 0, 69, 0, 7, 3, 95, 0, 7, 3, 96, 0,153, 3, 97, 0,155, 0, 3, 0,155, 0, 0, - 0,155, 0, 1, 0, 0, 0, 18, 0, 62, 0, 3, 0, 7, 3, 98, 0, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,129, 0, 19, 0, 29, - 0, 31, 0, 72, 0,156, 3, 99, 0, 2, 0, 15, 0, 2, 3,100, 0, 4, 3,101, 0, 4, 3,102, 0, 4, 3,103, 0, 0, 3,104, - 0, 24, 0, 36, 0, 24, 3,105, 0, 24, 3,106, 0, 24, 3,107, 0, 24, 3,108, 0, 28, 0, 77, 0, 70, 2, 62, 0, 62, 1,254, - 0,157, 3,109, 0,157, 3,110, 0,158, 3,111, 0, 9, 0, 2, 0,159, 3,112, 0,160, 3,113, 0,161, 3,114, 0, 12, 3,115, - 0, 12, 3,116, 0, 12, 2, 18, 0, 12, 3,117, 0, 12, 3,118, 0, 4, 1, 72, 0, 4, 3,119, 0, 57, 2, 20, 0, 0, 3,120, - 0, 4, 2, 22, 0, 4, 3,121, 0, 7, 1, 67, 0, 7, 3,122, 0, 7, 3,123, 0, 7, 0,167, 0, 7, 3,124, 0, 7, 1, 68, - 0, 7, 3,125, 0, 7, 2, 8, 0, 7, 3,126, 0, 7, 3,127, 0, 7, 3,128, 0, 7, 3,129, 0, 7, 3,130, 0, 7, 3,131, - 0, 7, 2,251, 0, 7, 3,132, 0, 7, 0,237, 0, 7, 3,133, 0, 4, 3,134, 0, 2, 0, 17, 0, 2, 3,135, 0, 2, 3,136, - 0, 2, 3,137, 0, 2, 3,138, 0, 2, 3,139, 0, 2, 3,140, 0, 2, 3,141, 0, 2, 3,142, 0, 2, 3,143, 0, 2, 3,144, - 0, 2, 3,145, 0, 4, 3,146, 0, 4, 3,147, 0, 4, 3,148, 0, 4, 3,149, 0, 7, 3,150, 0, 7, 2, 98, 0, 7, 3,151, - 0, 7, 3,152, 0, 7, 3,153, 0, 7, 3,154, 0, 7, 3,155, 0, 7, 0,212, 0, 7, 3,156, 0, 7, 3,157, 0, 7, 3,158, - 0, 7, 3,159, 0, 2, 3,160, 0, 0, 3,161, 0, 0, 0,106, 0, 0, 3,162, 0, 0, 3,163, 0, 7, 3,164, 0, 7, 3,165, - 0, 12, 3,166, 0, 12, 3,167, 0, 12, 3,168, 0, 12, 3,169, 0, 7, 3,170, 0, 2, 2,151, 0, 2, 3,171, 0, 7, 2,133, - 0, 4, 3,172, 0, 4, 3,173, 0,162, 3,174, 0, 2, 3,175, 0, 2, 0,244, 0, 7, 3,176, 0, 12, 3,177, 0, 12, 3,178, - 0, 12, 3,179, 0, 12, 3,180, 0,163, 1, 64, 0,164, 3,181, 0, 58, 3,182, 0, 2, 3,183, 0, 2, 3,184, 0, 2, 2, 56, - 0, 2, 3,185, 0, 7, 2,124, 0, 2, 3,186, 0, 2, 3,187, 0,146, 3,188, 0,134, 3,189, 0,134, 3,190, 0, 4, 3,191, - 0, 4, 3,192, 0, 4, 3,193, 0, 4, 3,194, 0, 12, 3,195, 0, 12, 3,196, 0, 12, 3,197, 0, 7, 3,198, 0, 0, 3,199, - 0,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 2,251, 0, 7, 1, 69, 0, 7, 2,252, 0, 7, 2,244, - 0, 0, 0, 18, 0, 4, 2,253, 0, 4, 2,254, 0, 4, 3,200, 0, 2, 0, 15, 0, 2, 3,201, 0, 7, 2,255, 0,166, 0, 12, - 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 3,202, 0, 4, 2,151, 0, 4, 3,203, 0, 4, 0, 15, 0, 4, 3,204, - 0, 7, 1, 69, 0, 7, 3,205, 0, 7, 3,206, 0, 7, 2,149, 0,163, 0, 40, 0, 4, 0, 17, 0, 2, 3,207, 0, 2, 3,208, - 0, 2, 2,244, 0, 2, 3,209, 0, 2, 3,210, 0, 2, 3,211, 0, 2, 3,212, 0, 2, 3,213, 0, 7, 3,214, 0, 7, 3,215, - 0, 7, 3,216, 0, 7, 3,217, 0, 7, 3,218, 0, 7, 3,219, 0, 7, 3,220, 0, 7, 3,221, 0, 7, 3,222, 0, 7, 3,223, - 0, 7, 3,224, 0, 7, 3,225, 0, 7, 3,226, 0, 7, 3,227, 0, 7, 3,228, 0, 7, 3,229, 0, 7, 3,230, 0, 7, 3,231, - 0, 7, 3,232, 0, 7, 3,233, 0, 7, 3,234, 0, 7, 3,235, 0, 7, 3,236, 0, 7, 3,237, 0, 7, 3,238, 0, 7, 3,239, - 0, 7, 3,240, 0, 44, 0,160, 0,167, 3,241, 0, 7, 3,242, 0, 4, 2,195, 0,168, 0, 5, 0, 58, 1,232, 0, 7, 3,243, - 0, 7, 3,244, 0, 2, 0, 17, 0, 2, 3,245, 0,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, 4, 0, 15, 0, 4, 3,246, - 0, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 3,247, 0, 4, 3,248, 0, 4, 3,249, 0, 4, 0, 17, - 0, 9, 3,250, 0, 9, 3,251, 0, 12, 3,252, 0,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, 4, 0, 17, 0, 4, 3,253, - 0, 4, 3,254, 0, 4, 3,255, 0, 4, 4, 0, 0, 4, 4, 1, 0, 4, 4, 2, 0, 4, 3,248, 0, 4, 2,151, 0, 2, 4, 3, - 0, 2, 0, 54, 0, 0, 4, 4, 0, 0, 4, 5, 0, 0, 4, 6, 0, 0, 4, 7, 0, 0, 4, 8, 0, 12, 4, 9, 0,171, 4, 10, - 0, 9, 4, 11, 0,172, 0, 1, 0, 7, 2, 36, 0,162, 0, 30, 0, 4, 0, 17, 0, 7, 4, 12, 0, 7, 4, 13, 0, 7, 4, 14, - 0, 4, 4, 15, 0, 4, 4, 16, 0, 4, 4, 17, 0, 4, 4, 18, 0, 7, 4, 19, 0, 7, 4, 20, 0, 7, 4, 21, 0, 7, 4, 22, - 0, 7, 4, 23, 0, 7, 4, 24, 0, 7, 4, 25, 0, 7, 4, 26, 0, 7, 4, 27, 0, 7, 4, 28, 0, 7, 4, 29, 0, 7, 4, 30, - 0, 7, 4, 31, 0, 7, 4, 32, 0, 7, 4, 33, 0, 7, 4, 34, 0, 7, 4, 35, 0, 7, 4, 36, 0, 4, 4, 37, 0, 4, 4, 38, - 0, 7, 4, 39, 0, 7, 3,156, 0,164, 0, 54, 0, 4, 3,248, 0, 4, 4, 40, 0,173, 4, 41, 0,174, 4, 42, 0, 0, 0, 35, - 0, 0, 4, 43, 0, 2, 4, 44, 0, 7, 4, 45, 0, 0, 4, 46, 0, 7, 4, 47, 0, 7, 4, 48, 0, 7, 4, 49, 0, 7, 4, 50, - 0, 7, 4, 51, 0, 7, 4, 52, 0, 7, 4, 53, 0, 7, 4, 54, 0, 7, 4, 55, 0, 2, 4, 56, 0, 0, 4, 57, 0, 2, 4, 58, - 0, 7, 4, 59, 0, 7, 4, 60, 0, 0, 4, 61, 0, 4, 0,121, 0, 4, 4, 62, 0, 4, 4, 63, 0, 2, 4, 64, 0, 2, 4, 65, - 0,172, 4, 66, 0, 4, 4, 67, 0, 4, 0, 79, 0, 7, 4, 68, 0, 7, 4, 69, 0, 7, 4, 70, 0, 7, 4, 71, 0, 2, 4, 72, - 0, 2, 4, 73, 0, 2, 4, 74, 0, 2, 4, 75, 0, 2, 4, 76, 0, 2, 4, 77, 0, 2, 4, 78, 0, 2, 4, 79, 0,175, 4, 80, - 0, 7, 4, 81, 0, 7, 4, 82, 0,130, 4, 83, 0, 12, 3, 4, 0,168, 4, 84, 0, 7, 4, 85, 0, 7, 4, 86, 0, 7, 4, 87, - 0, 0, 4, 88, 0,176, 0, 1, 0, 7, 4, 89, 0,146, 0, 50, 0,145, 4, 90, 0, 2, 0, 15, 0, 2, 4, 91, 0, 2, 4, 92, - 0, 2, 4, 93, 0, 7, 4, 94, 0, 2, 4, 95, 0, 2, 4, 96, 0, 7, 4, 97, 0, 2, 4, 98, 0, 2, 4, 99, 0, 7, 4,100, - 0, 7, 4,101, 0, 7, 4,102, 0, 4, 4,103, 0, 4, 4,104, 0, 7, 4,105, 0, 4, 4,106, 0, 7, 4,107, 0, 7, 4,108, - 0, 7, 4,109, 0, 73, 4,110, 0, 73, 4,111, 0, 0, 4,112, 0, 7, 4,113, 0, 7, 4,114, 0, 28, 0, 77, 0, 2, 4,115, - 0, 0, 4,116, 0, 0, 4,117, 0, 7, 4,118, 0, 4, 4,119, 0, 7, 4,120, 0, 7, 4,121, 0, 4, 4,122, 0, 4, 0, 17, - 0, 7, 4,123, 0, 7, 4,124, 0, 7, 4,125, 0,176, 4,126, 0, 4, 0, 51, 0, 7, 4,127, 0, 7, 4,128, 0, 7, 4,129, - 0, 7, 4,130, 0, 7, 4,131, 0, 7, 4,132, 0, 7, 4,133, 0, 4, 4,134, 0, 4, 0, 35, 0,177, 0, 76, 0, 19, 0, 29, - 0, 31, 0, 72, 0, 2, 0,170, 0, 2, 1, 73, 0, 2, 1,107, 0, 2, 4,135, 0, 7, 4,136, 0, 7, 4,137, 0, 7, 4,138, - 0, 7, 4,139, 0, 7, 4,140, 0, 7, 4,141, 0, 7, 1,153, 0, 7, 1,155, 0, 7, 1,154, 0, 7, 0, 67, 0, 4, 4,142, - 0, 7, 4,143, 0, 7, 4,144, 0, 7, 4,145, 0, 7, 4,146, 0, 7, 4,147, 0, 7, 4,148, 0, 7, 4,149, 0, 2, 4,150, - 0, 2, 1, 72, 0, 2, 4,151, 0, 2, 4,152, 0, 2, 4,153, 0, 2, 4,154, 0, 2, 4,155, 0, 2, 4,156, 0, 7, 4,157, - 0, 7, 4,158, 0, 7, 4,159, 0, 7, 4,160, 0, 7, 4,161, 0, 7, 4,162, 0, 7, 4,163, 0, 7, 4,164, 0, 7, 4,165, - 0, 7, 4,166, 0, 7, 4,167, 0, 7, 4,168, 0, 2, 4,169, 0, 2, 4,170, 0, 2, 4,171, 0, 2, 4,172, 0, 7, 4,173, - 0, 7, 4,174, 0, 7, 4,175, 0, 7, 4,176, 0, 2, 4,177, 0, 2, 4,178, 0, 2, 4,179, 0, 2, 4,180, 0, 7, 4,181, - 0, 7, 4,182, 0, 7, 4,183, 0, 7, 4,184, 0, 7, 4,185, 0, 7, 4,186, 0, 7, 4,187, 0, 2, 4,188, 0, 2, 4,189, - 0, 2, 4,190, 0, 2, 4,191, 0, 2, 4,192, 0, 2, 0, 17, 0, 7, 4,193, 0, 7, 4,194, 0, 28, 0, 77, 0, 43, 1,125, - 0, 2, 1,126, 0, 2, 4,195, 0, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, 4, 3,134, 0, 4, 4,196, - 0, 4, 0, 17, 0, 2, 4,197, 0, 2, 4,198, 0, 24, 0,159, 0,179, 0, 13, 0, 9, 4,199, 0, 9, 4,200, 0, 4, 4,201, - 0, 4, 4,202, 0, 4, 4,203, 0, 4, 4,204, 0, 4, 4,205, 0, 4, 4,206, 0, 4, 4,207, 0, 4, 4,208, 0, 4, 4,209, - 0, 4, 0, 35, 0, 0, 4,210, 0,180, 0, 5, 0, 9, 4,211, 0, 9, 4,212, 0, 4, 4,213, 0, 4, 0, 67, 0, 0, 4,214, - 0,181, 0, 17, 0, 4, 4,215, 0, 4, 4,216, 0, 4, 4,217, 0, 4, 4,218, 0, 4, 4,219, 0, 4, 4,220, 0, 4, 4,221, - 0, 4, 4,222, 0, 4, 4,223, 0, 4, 4,224, 0, 4, 4,225, 0, 4, 4,226, 0, 2, 4,227, 0, 2, 4,228, 0, 4, 4,229, - 0, 4, 4,230, 0, 4, 0, 87, 0,182, 0, 15, 0, 4, 0, 15, 0, 4, 4,217, 0, 4, 4,231, 0, 4, 4,232, 0, 4, 4,233, - 0, 4, 4,234, 0, 7, 4,235, 0, 4, 4,236, 0, 4, 0, 88, 0, 4, 4,237, 0, 4, 4,238, 0, 4, 4,239, 0, 4, 4,240, - 0, 4, 4,241, 0, 18, 0, 28, 0,183, 0, 7, 0, 4, 4,242, 0, 7, 4,243, 0, 7, 4,244, 0, 7, 4,245, 0, 4, 4,246, - 0, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 18, 0, 57, 4,247, 0, 58, 4,248, - 0, 4, 3,134, 0, 4, 4,249, 0, 4, 4,250, 0, 4, 0, 35, 0, 4, 4,251, 0, 4, 4,252, 0,185, 0,105, 0,179, 4,253, - 0,180, 4,254, 0,181, 4,255, 0,182, 5, 0, 0, 4, 3, 19, 0, 4, 0,121, 0, 4, 4, 62, 0, 7, 5, 1, 0, 4, 5, 2, - 0, 4, 5, 3, 0, 4, 5, 4, 0, 4, 5, 5, 0, 2, 0, 17, 0, 2, 5, 6, 0, 7, 5, 7, 0, 7, 5, 8, 0, 7, 5, 9, - 0, 7, 5, 10, 0, 7, 5, 11, 0, 2, 5, 12, 0, 2, 5, 13, 0, 2, 5, 14, 0, 2, 5, 15, 0, 2, 0,243, 0, 2, 5, 16, - 0, 4, 5, 17, 0, 2, 5, 18, 0, 2, 5, 19, 0, 2, 1, 94, 0, 2, 0,104, 0, 2, 5, 20, 0, 2, 5, 21, 0, 2, 5, 22, - 0, 2, 5, 23, 0, 2, 5, 24, 0, 2, 5, 25, 0, 2, 5, 26, 0, 2, 5, 27, 0, 2, 5, 28, 0, 2, 5, 29, 0, 4, 5, 30, - 0, 4, 1, 72, 0, 4, 5, 31, 0, 2, 5, 32, 0, 2, 5, 33, 0, 2, 5, 34, 0, 2, 5, 35, 0, 2, 5, 36, 0, 2, 5, 37, - 0, 2, 5, 38, 0, 2, 5, 39, 0, 16, 5, 40, 0, 16, 5, 41, 0, 15, 5, 42, 0, 12, 5, 43, 0, 2, 5, 44, 0, 2, 5, 45, - 0, 7, 5, 46, 0, 7, 5, 47, 0, 7, 5, 48, 0, 7, 5, 49, 0, 4, 5, 50, 0, 7, 5, 51, 0, 7, 5, 52, 0, 7, 5, 53, - 0, 7, 5, 54, 0, 2, 5, 55, 0, 2, 5, 56, 0, 2, 5, 57, 0, 2, 5, 58, 0, 2, 5, 59, 0, 2, 5, 60, 0, 7, 5, 61, - 0, 7, 5, 62, 0, 7, 5, 63, 0, 0, 5, 64, 0, 4, 5, 65, 0, 2, 5, 66, 0, 2, 1,229, 0, 0, 5, 67, 0, 7, 5, 68, - 0, 7, 5, 69, 0, 0, 5, 70, 0, 0, 5, 71, 0, 0, 5, 72, 0, 0, 5, 73, 0, 4, 5, 74, 0, 2, 5, 75, 0, 2, 5, 76, - 0, 7, 5, 77, 0, 7, 5, 78, 0, 2, 5, 79, 0, 2, 5, 80, 0, 7, 5, 81, 0, 2, 5, 82, 0, 2, 5, 83, 0, 4, 5, 84, - 0, 2, 5, 85, 0, 2, 5, 86, 0, 2, 5, 87, 0, 2, 5, 88, 0, 7, 5, 89, 0, 7, 0, 67, 0, 34, 5, 90, 0, 0, 5, 91, - 0,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 5, 92, 0, 2, 5, 93, 0, 2, 5, 94, 0, 2, 0, 87, - 0, 7, 5, 95, 0, 7, 0, 67, 0,187, 0, 7, 0, 2, 2,212, 0, 2, 1, 72, 0, 2, 3, 76, 0, 2, 5, 96, 0, 7, 5, 97, - 0, 7, 0, 67, 0, 34, 5, 98, 0,188, 0, 5, 0, 7, 5, 99, 0, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 67, 0, 0, 1,229, - 0,189, 0, 28, 0, 7, 4,148, 0, 7, 4,149, 0, 2, 1, 72, 0, 2, 0, 17, 0, 2, 5,100, 0, 2, 4,195, 0, 2, 4,151, - 0, 2, 4,152, 0, 2, 4,153, 0, 2, 4,154, 0, 2, 4,155, 0, 2, 4,156, 0,188, 5,101, 0, 2, 5, 12, 0, 2, 5, 13, - 0, 2, 5, 14, 0, 2, 5, 15, 0, 2, 0,243, 0, 2, 5, 16, 0, 2, 5,102, 0, 2, 5,103, 0,187, 5,104, 0, 2, 5,105, - 0, 2, 5, 18, 0, 2, 5, 21, 0, 2, 5, 22, 0, 7, 5,106, 0, 7, 0, 87, 0,190, 0, 6, 0,190, 0, 0, 0,190, 0, 1, - 0, 4, 3,247, 0, 0, 4, 4, 0, 4, 0, 17, 0, 24, 5,107, 0,191, 0, 4, 0,192, 5,108, 0, 9, 5,109, 0, 0, 5,110, - 0, 4, 0, 88, 0,193, 0, 8, 0,191, 5,111, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 5,112, 0, 2, 5,113, 0, 2, 5,114, - 0, 4, 0, 87, 0, 9, 5,115, 0,194, 0, 6, 0, 2, 0,104, 0, 2, 3,253, 0, 2, 5,116, 0, 2, 2,206, 0, 4, 0, 17, - 0, 7, 2,223, 0,195, 0, 14, 0, 2, 0, 17, 0, 2, 5,117, 0, 2, 5,118, 0, 2, 5,119, 0,194, 5,120, 0, 9, 5,115, - 0, 7, 5,121, 0, 7, 0, 54, 0, 4, 5,122, 0, 4, 5,123, 0, 4, 5,124, 0, 4, 5,125, 0, 38, 0,117, 0, 24, 0,159, - 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 5,126, 0, 7, 5,127, 0,197, 0, 14, 0,191, 5,111, 0, 4, 0, 88, - 0, 4, 5,128, 0, 7, 5,129, 0, 7, 5,130, 0, 7, 5,131, 0, 4, 5,132, 0, 4, 5,133, 0, 7, 5,134, 0, 7, 5,135, - 0, 4, 5,136, 0, 7, 5,137, 0, 7, 5,138, 0, 4, 0, 35, 0,198, 0, 7, 0,191, 5,111, 0, 2, 0, 17, 0, 2, 0, 35, - 0, 4, 0, 34, 0, 4, 5,139, 0, 79, 5,140, 0, 9, 5,115, 0,199, 0, 82, 0,198, 5,141, 0,198, 5,142, 0,197, 3, 99, - 0, 7, 5,143, 0, 2, 5,144, 0, 2, 5,145, 0, 7, 5,146, 0, 7, 5,147, 0, 2, 3,253, 0, 2, 5,148, 0, 7, 5,149, - 0, 7, 5,150, 0, 7, 5,151, 0, 2, 5,152, 0, 2, 5,122, 0, 2, 5,153, 0, 2, 5,154, 0, 2, 5,155, 0, 2, 5,156, - 0, 7, 5,157, 0, 7, 5,158, 0, 7, 5,159, 0, 2, 5,160, 0, 2, 5,161, 0, 2, 5,162, 0, 2, 5,163, 0, 2, 5,164, - 0, 2, 5,165, 0, 2, 5,166, 0, 2, 5,167, 0,193, 5,168, 0,195, 5,169, 0, 7, 5,170, 0, 7, 5,171, 0, 7, 5,172, - 0, 2, 5,173, 0, 2, 5,174, 0, 0, 5,175, 0, 0, 5,176, 0, 0, 5,177, 0, 0, 5,178, 0, 0, 5,179, 0, 0, 5,180, - 0, 2, 5,181, 0, 7, 5,182, 0, 7, 5,183, 0, 7, 5,184, 0, 7, 5,185, 0, 7, 5,186, 0, 7, 5,187, 0, 7, 5,188, - 0, 7, 5,189, 0, 7, 5,190, 0, 7, 5,191, 0, 2, 5,192, 0, 0, 5,193, 0, 0, 5,194, 0, 0, 5,195, 0, 0, 5,196, - 0, 24, 5,197, 0, 0, 5,198, 0, 0, 5,199, 0, 0, 5,200, 0, 0, 5,201, 0, 0, 5,202, 0, 0, 5,203, 0, 0, 5,204, - 0, 0, 5,205, 0, 0, 5,206, 0, 0, 5,207, 0, 2, 5,208, 0, 2, 5,209, 0, 2, 5,210, 0, 2, 5,211, 0, 0, 5,212, - 0, 0, 4,195, 0, 4, 5,213, 0, 2, 5,214, 0, 2, 0, 87, 0, 4, 5,215, 0, 7, 5,216, 0, 7, 5,217, 0,200, 0, 8, - 0, 4, 5,218, 0, 4, 5,219, 0, 4, 5,220, 0, 4, 5,221, 0, 4, 5,222, 0, 4, 5,223, 0, 4, 0, 51, 0, 4, 2,121, - 0,201, 0, 4, 0, 7, 5,224, 0, 0, 5,225, 0, 0, 5,226, 0, 2, 0, 17, 0,202, 0, 4, 0, 7, 5,227, 0, 4, 0, 17, - 0, 4, 5,228, 0, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 5,107, 0,177, 5,229, 0, 38, 5,230, - 0, 12, 5,231, 0,178, 5,232, 0, 24, 5,233, 0, 7, 5,234, 0, 7, 5,235, 0, 7, 5,236, 0, 7, 5,237, 0, 4, 3,134, - 0, 4, 5,238, 0, 4, 5,239, 0, 4, 3,192, 0, 4, 5,240, 0, 2, 0, 17, 0, 2, 1, 66, 0, 53, 1, 61, 0,203, 5,241, - 0,199, 5,242, 0,204, 5,243, 0,185, 0,177, 0,183, 5,244, 0, 12, 0, 98, 0, 12, 5,245, 0, 9, 5,246, 0, 9, 5,247, - 0, 9, 5,248, 0, 9, 5,249, 0,205, 5,250, 0, 2, 5,251, 0, 2, 5,252, 0, 2, 0,244, 0, 2, 5,253, 0, 4, 5,254, - 0, 4, 5,255, 0, 12, 6, 0, 0,188, 5,101, 0,189, 6, 1, 0,201, 6, 2, 0,159, 3,112, 0,202, 6, 3, 0,206, 0, 11, - 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,235, 0, 37, 1, 60, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 0,104, 0, 7, 6, 4, - 0, 2, 6, 5, 0, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 6, 6, 0, 7, 6, 7, 0, 7, 6, 8, 0, 7, 6, 9, - 0, 7, 6, 10, 0, 7, 6, 11, 0, 7, 6, 12, 0, 7, 6, 13, 0, 7, 6, 14, 0, 7, 1, 79, 0, 7, 6, 15, 0, 7, 6, 16, - 0, 7, 6, 17, 0, 7, 6, 18, 0, 7, 0,166, 0, 2, 6, 19, 0, 2, 6, 20, 0, 0, 6, 21, 0, 0, 4,195, 0, 2, 6, 22, - 0, 2, 6, 23, 0, 2, 6, 24, 0, 2, 6, 5, 0, 7, 6, 25, 0, 7, 6, 26, 0, 62, 6, 27, 0,159, 3,112, 0,207, 6, 28, - 0,208, 6, 29, 0,209, 6, 30, 0,210, 6, 31, 0,211, 6, 32, 0, 7, 6, 33, 0, 2, 6, 34, 0, 2, 6, 35, 0, 7, 6, 36, - 0, 7, 6, 37, 0, 7, 6, 38, 0,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, - 0, 2, 6, 42, 0, 7, 6, 14, 0, 7, 1, 79, 0, 7, 0, 87, 0, 4, 6, 43, 0, 2, 6, 24, 0, 2, 6, 5, 0, 24, 5,107, - 0, 24, 6, 44, 0, 12, 6, 45, 0,206, 6, 46, 0,212, 6, 28, 0, 0, 6, 47, 0, 4, 3,134, 0, 4, 5,238, 0, 2, 6, 48, - 0, 2, 6, 49, 0, 2, 6, 50, 0, 2, 6, 51, 0, 2, 0, 17, 0, 2, 2, 21, 0, 7, 0,110, 0, 7, 6, 52, 0, 7, 6, 53, - 0, 7, 6, 54, 0, 7, 0,166, 0, 7, 5,234, 0, 2, 6, 55, 0, 2, 6, 56, 0, 2, 6, 57, 0, 0, 6, 58, 0, 0, 6, 59, - 0, 0, 6, 60, 0, 0, 6, 61, 0, 0, 6, 62, 0, 12, 6, 63, 0, 12, 6, 64, 0, 12, 6, 65, 0, 2, 6, 66, 0, 2, 2,134, - 0, 2, 6, 67, 0, 0, 6, 68, 0, 0, 6, 69, 0, 9, 6, 70, 0,159, 3,112, 0,214, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, - 0, 15, 6, 71, 0, 15, 6, 72, 0, 15, 6, 73, 0, 7, 6, 74, 0, 7, 6, 75, 0, 7, 6, 76, 0, 7, 6, 77, 0, 2, 6, 78, - 0, 2, 6, 79, 0, 2, 6, 80, 0, 2, 6, 81, 0, 2, 6, 82, 0, 2, 0, 17, 0, 2, 6, 83, 0, 2, 6, 84, 0, 2, 6, 85, - 0, 2, 6, 86, 0, 2, 6, 87, 0, 2, 6, 51, 0, 7, 6, 88, 0, 4, 6, 89, 0, 4, 6, 90, 0,213, 0, 6, 0,213, 0, 0, - 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, - 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 0, 6, 91, 0, 0, 0,176, 0,216, 0, 14, 0,213, 0, 0, - 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0,217, 6, 93, 0, 12, 6, 94, - 0, 2, 1, 72, 0, 2, 6, 95, 0, 4, 0, 17, 0, 7, 6, 96, 0, 4, 6, 51, 0,218, 0, 21, 0,213, 0, 0, 0,213, 0, 1, - 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,208, 6, 29, 0,214, 6, 92, 0, 2, 6, 97, 0, 2, 6, 98, - 0, 2, 6, 99, 0, 2, 6,100, 0, 2, 6, 83, 0, 2, 6,101, 0, 2, 6,102, 0, 0, 0, 17, 0, 0, 0, 35, 0, 9, 2, 62, - 0, 4, 6,103, 0, 4, 6,104, 0, 19, 6,105, 0,219, 0, 18, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, - 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0, 7, 2, 86, 0, 7, 2, 87, 0, 2, 6, 97, 0, 2, 6,106, 0, 2, 6,107, - 0, 2, 6,108, 0, 4, 0, 17, 0, 7, 6,109, 0, 4, 6, 5, 0, 4, 0, 35, 0,159, 3,112, 0,220, 0, 16, 0, 0, 6,110, - 0, 0, 6,111, 0, 0, 6,112, 0, 0, 6,113, 0, 0, 6,114, 0, 0, 6,115, 0, 4, 6,116, 0, 4, 6,117, 0, 4, 6,118, - 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 6,119, 0, 2, 6,120, 0, 2, 1,172, 0, 2, 6,121, 0, 0, 6,122, 0,221, 0, 16, - 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 4, 6,123, 0,220, 6,124, 0,222, 6,125, 0, 12, 6,126, - 0, 12, 6,127, 0,223, 6,128, 0,211, 6,129, 0,224, 6,130, 0, 2, 6,131, 0, 2, 6,132, 0, 2, 6,133, 0, 2, 0, 67, - 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, - 0, 12, 6,134, 0,226, 6,135, 0, 0, 6,136, 0,227, 6,137, 0, 2, 0, 17, 0, 2, 6,138, 0, 2, 6,139, 0, 2, 6,140, - 0,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 4, 0, 17, 0, 39, 2,227, 0, 37, 1, 60, - 0, 51, 6,141, 0,229, 6,142, 0,230, 6,143, 0,159, 3,112, 0, 7, 6,144, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 6,109, - 0, 7, 6,145, 0, 7, 6,146, 0, 2, 6,147, 0, 2, 6,148, 0, 2, 6,149, 0, 2, 6,150, 0, 0, 6,151, 0, 0, 6,152, - 0, 0, 6,153, 0, 0, 6, 51, 0,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, - 0, 2, 6, 42, 0, 2, 6, 95, 0, 2, 0, 17, 0, 4, 0, 35, 0,217, 6, 93, 0,214, 6, 92, 0,232, 0, 31, 0,213, 0, 0, - 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 34, 6,154, 0, 4, 6,155, 0, 4, 6,156, - 0, 2, 0, 88, 0, 2, 6,157, 0, 2, 6,158, 0, 0, 6,159, 0, 0, 6,160, 0, 4, 6,161, 0, 4, 6,162, 0, 4, 6,163, - 0, 2, 6,164, 0, 2, 6,165, 0, 2, 6,166, 0, 2, 6,167, 0, 7, 6,168, 0, 15, 6,169, 0, 15, 6,170, 0, 4, 6,171, - 0, 4, 6,172, 0, 0, 6,173, 0, 0, 6,174, 0, 2, 6,175, 0, 0, 2,192, 0, 9, 6,176, 0,233, 0, 10, 0, 19, 0, 29, - 0, 9, 6,177, 0, 9, 6,178, 0, 9, 6,179, 0, 9, 6,180, 0, 9, 6,181, 0, 4, 0, 88, 0, 4, 6,182, 0, 0, 6,183, - 0, 0, 6,184, 0,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0,233, 6,185, - 0, 2, 0, 88, 0, 2, 6,157, 0, 4, 0, 87, 0, 9, 6,186, 0,235, 0, 3, 0,235, 0, 0, 0,235, 0, 1, 0, 7, 6,187, - 0,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0,214, 6, 92, 0, 12, 6,188, - 0, 4, 6,189, 0, 4, 0, 35, 0, 4, 0, 17, 0, 4, 6,190, 0,237, 0, 26, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, - 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, 0, 19, 6,191, 0, 19, 0, 78, 0, 2, 0, 17, 0, 2, 6,157, - 0, 7, 6,192, 0, 9, 6,193, 0, 7, 2, 86, 0, 7, 2, 87, 0, 7, 6,109, 0, 7, 6, 38, 0, 7, 6,194, 0, 7, 6,195, - 0, 53, 1, 61, 0, 53, 6,196, 0, 4, 6,197, 0, 2, 6,198, 0, 2, 0,244, 0, 12, 6,199, 0,159, 3,112, 0,238, 0, 10, - 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 2, 0, 17, 0, 2, 3,143, - 0, 4, 0, 35, 0,159, 3,112, 0,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, - 0, 2, 6, 42, 0,214, 6, 92, 0,222, 6,125, 0, 0, 6,200, 0, 0, 6,111, 0, 0, 6,112, 0, 2, 0, 15, 0, 2, 6,201, - 0, 2, 0, 17, 0, 2, 6,119, 0, 9, 6,193, 0, 4, 6,116, 0, 4, 6,202, 0, 4, 6,203, 0, 4, 6,204, 0, 15, 6,205, - 0, 15, 6,206, 0, 7, 6,207, 0, 7, 6,208, 0, 7, 6,209, 0, 7, 6,192, 0, 2, 6,210, 0, 2, 0,234, 0, 2, 1,172, - 0, 2, 6,211, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 6,212, 0, 2, 6,213, 0, 9, 6,214, 0, 9, 6,215, 0, 9, 6,216, - 0, 9, 6,217, 0, 9, 6,218, 0, 2, 6,219, 0, 0, 6,220, 0, 49, 6,221, 0,240, 0, 7, 0,240, 0, 0, 0,240, 0, 1, - 0, 4, 6,222, 0, 4, 0, 21, 0, 0, 0, 81, 0, 4, 6,223, 0, 4, 0, 15, 0,241, 0, 14, 0,213, 0, 0, 0,213, 0, 1, - 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0, 4, 6,158, 0, 4, 0, 35, 0, 12, 6,224, 0, 12, 6,225, - 0, 0, 6,226, 0, 0, 6,227, 0, 4, 6,228, 0, 4, 6,229, 0,242, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, - 0, 4, 6, 40, 0, 4, 0, 35, 0, 0, 6,230, 0,243, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, - 0, 7, 6, 41, 0,244, 6,231, 0,214, 6, 92, 0,245, 6,232, 0, 2, 1, 72, 0, 2, 6,233, 0, 2, 2, 86, 0, 2, 2, 87, - 0, 2, 0, 17, 0, 2, 6,149, 0, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0,246, 0, 1, 0, 0, 6,234, 0, 2, 6,235, - 0, 2, 6,236, 0, 2, 6,237, 0, 2, 0, 35, 0,247, 0, 12, 0, 2, 6,236, 0, 2, 6,238, 0, 2, 6,239, 0, 0, 2,192, - 0, 2, 6,240, 0, 2, 6,241, 0, 2, 6,242, 0, 2, 6,243, 0, 2, 6,244, 0, 2, 6, 83, 0, 7, 6,245, 0, 7, 6,246, - 0,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 4, 4, 0,247, 6,247, 0,247, 6,248, 0,247, 6,249, 0,247, 6,250, - 0, 7, 6,251, 0, 2, 6,252, 0, 2, 6,253, 0, 2, 6,254, 0, 2, 6,255, 0, 2, 7, 0, 0, 2, 7, 1, 0, 2, 7, 2, - 0, 2, 7, 3, 0, 2, 7, 4, 0, 2, 7, 5, 0,249, 0, 10, 0, 0, 7, 6, 0, 0, 7, 7, 0, 0, 7, 8, 0, 0, 7, 9, - 0, 0, 7, 10, 0, 0, 7, 11, 0, 2, 7, 12, 0, 2, 7, 13, 0, 2, 7, 14, 0, 2, 7, 15, 0,250, 0, 8, 0, 0, 7, 16, - 0, 0, 7, 17, 0, 0, 7, 18, 0, 0, 7, 19, 0, 0, 7, 20, 0, 0, 7, 21, 0, 7, 6, 4, 0, 7, 0, 35, 0,251, 0, 18, - 0,249, 7, 22, 0,249, 7, 23, 0,249, 7, 24, 0,249, 7, 25, 0,249, 7, 26, 0,249, 7, 27, 0,249, 7, 28, 0,249, 7, 29, - 0,249, 7, 30, 0,249, 7, 31, 0,249, 7, 32, 0,249, 7, 33, 0,249, 7, 34, 0,249, 7, 35, 0,249, 7, 36, 0,249, 7, 37, - 0,250, 7, 38, 0, 0, 7, 39, 0,252, 0, 97, 0, 0, 7, 40, 0, 0, 7, 41, 0, 0, 7, 10, 0, 0, 7, 42, 0, 0, 7, 43, - 0, 0, 7, 44, 0, 0, 7, 45, 0, 0, 7, 46, 0, 0, 7, 47, 0, 0, 7, 48, 0, 0, 7, 49, 0, 0, 7, 50, 0, 0, 7, 51, - 0, 0, 7, 52, 0, 0, 7, 53, 0, 0, 7, 54, 0, 0, 7, 55, 0, 0, 7, 56, 0, 0, 7, 57, 0, 0, 7, 58, 0, 0, 7, 59, - 0, 0, 7, 60, 0, 0, 7, 61, 0, 0, 7, 62, 0, 0, 7, 63, 0, 0, 7, 64, 0, 0, 7, 65, 0, 0, 7, 66, 0, 0, 7, 67, - 0, 0, 7, 68, 0, 0, 7, 69, 0, 0, 7, 70, 0, 0, 7, 71, 0, 0, 7, 72, 0, 0, 7, 73, 0, 0, 7, 74, 0, 0, 7, 75, - 0, 0, 7, 76, 0, 0, 7, 77, 0, 0, 7, 78, 0, 0, 7, 79, 0, 0, 7, 80, 0, 0, 7, 81, 0, 0, 7, 82, 0, 0, 7, 83, - 0, 0, 7, 84, 0, 0, 7, 85, 0, 0, 7, 86, 0, 0, 7, 87, 0, 0, 7, 88, 0, 0, 7, 89, 0, 0, 7, 90, 0, 0, 7, 91, - 0, 0, 7, 92, 0, 0, 7, 93, 0, 0, 7, 94, 0, 0, 7, 95, 0, 0, 7, 96, 0, 0, 7, 97, 0, 0, 7, 98, 0, 0, 7, 99, - 0, 0, 7,100, 0, 0, 7,101, 0, 0, 7,102, 0, 0, 7,103, 0, 0, 7,104, 0, 0, 7,105, 0, 0, 7,106, 0, 0, 7,107, - 0, 0, 7,108, 0, 0, 7,109, 0, 0, 7,110, 0, 0, 7,111, 0, 0, 7,112, 0, 0, 7,113, 0, 0, 7,114, 0, 0, 7,115, - 0, 0, 7,116, 0, 0, 7,117, 0, 0, 7,118, 0, 0, 7,119, 0, 0, 7,120, 0, 0, 7,121, 0, 0, 7,122, 0, 0, 7,123, - 0, 0, 7,124, 0, 0, 7,125, 0, 0, 7,126, 0, 0, 7,127, 0, 0, 7,128, 0, 0, 7,129, 0, 0, 7,130, 0, 0, 7,131, - 0, 0, 7,132, 0, 0, 7,133, 0, 0, 7,134, 0, 0, 7,135, 0,253, 0, 5, 0, 0, 7,136, 0, 0, 7, 64, 0, 0, 7, 66, - 0, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, 0, 0, 18, 0,251, 7,137, 0,252, 7,138, - 0,252, 7,139, 0,252, 7,140, 0,252, 7,141, 0,252, 7,142, 0,252, 7,143, 0,252, 7,144, 0,252, 7,145, 0,252, 7,146, - 0,252, 7,147, 0,252, 7,148, 0,252, 7,149, 0,252, 7,150, 0,252, 7,151, 0,252, 7,152, 0,252, 7,153, 0,252, 7,154, - 0,252, 7,155, 0,253, 7,156, 0, 4, 7,157, 0, 4, 0, 35, 0,255, 0, 3, 0,255, 0, 0, 0,255, 0, 1, 0, 0, 7,158, - 1, 0, 0, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 2,133, 0, 7, 7,159, 0, 7, 2, 36, 1, 1, 0, 89, 0, 4, 0, 17, - 0, 4, 7,160, 0, 4, 7,161, 0, 0, 7,162, 0, 0, 7,163, 0, 0, 7,164, 0, 0, 7,165, 0, 0, 7,166, 0, 0, 7,167, - 0, 0, 7,168, 0, 0, 7,169, 0, 0, 7,170, 0, 0, 7,171, 0, 4, 7,172, 0, 2, 7,173, 0, 2, 7,174, 0, 2, 7,175, - 0, 2, 7,176, 0, 4, 7,177, 0, 4, 7,178, 0, 4, 7,179, 0, 4, 7,180, 0, 2, 7,181, 0, 2, 7,182, 0, 4, 7,183, - 0, 4, 7,184, 0, 4, 7,185, 0, 4, 7,186, 0, 4, 7,187, 0, 4, 6,224, 0, 4, 7,188, 0, 2, 7,189, 0, 2, 7,190, - 0, 2, 7,191, 0, 2, 7,192, 0, 12, 7,193, 0, 12, 7,194, 0, 12, 7,195, 0, 12, 7,196, 0, 12, 7,197, 0, 0, 7,198, - 0, 2, 7,199, 0, 2, 7,200, 0, 2, 7,201, 0, 2, 7,202, 0, 2, 7,203, 0, 2, 7,204, 0, 2, 7,205, 0, 2, 7,206, - 1, 0, 7,207, 0, 2, 7,208, 0, 2, 7,209, 0, 2, 7,210, 0, 2, 7,211, 0, 2, 7,212, 0, 2, 7,213, 0, 2, 7,214, - 0, 2, 7,215, 0, 4, 7,216, 0, 4, 7,217, 0, 2, 7,218, 0, 2, 7,219, 0, 2, 7,220, 0, 2, 7,221, 0, 2, 7,222, - 0, 2, 7,223, 0, 2, 7,224, 0, 2, 7,225, 0, 2, 7,226, 0, 2, 7,227, 0, 2, 7,228, 0, 2, 7,229, 0, 2, 7,230, - 0, 2, 7,231, 0, 2, 7,232, 0, 2, 7,233, 0, 2, 7,234, 0, 2, 7,235, 0, 0, 7,236, 0, 0, 7,237, 0, 7, 7,238, - 0, 2, 5,173, 0, 2, 5,174, 0, 2, 7,239, 0, 2, 7,240, 0, 47, 7,241, 0, 7, 7,242, 0, 4, 1,229, 0, 0, 7,243, - 1, 2, 0, 24, 0, 19, 0, 29, 0, 12, 7,244, 0, 12, 7,245, 0, 12, 7,246, 0, 12, 6, 39, 0, 38, 0,117, 0, 38, 7,247, - 0, 4, 7,248, 0, 4, 0, 87, 0, 2, 7,249, 0, 2, 7,250, 0, 2, 7,251, 0, 2, 7,252, 0, 2, 7,253, 0, 2, 7,254, - 0, 2, 7,255, 0, 2, 8, 0, 0, 2, 8, 1, 0, 2, 8, 2, 0, 2, 8, 3, 0, 2, 0, 35, 0,211, 8, 4, 0, 9, 8, 5, - 0, 2, 8, 6, 1, 3, 0, 5, 1, 3, 0, 0, 1, 3, 0, 1, 1, 3, 8, 7, 0, 13, 8, 8, 0, 4, 0, 17, 1, 4, 0, 7, - 1, 4, 0, 0, 1, 4, 0, 1, 1, 3, 8, 9, 1, 3, 8, 10, 0, 2, 5, 41, 0, 2, 0, 17, 0, 4, 0, 35, 1, 5, 0, 25, - 1, 5, 0, 0, 1, 5, 0, 1, 1, 6, 8, 11, 1, 7, 6,130, 0, 0, 8, 12, 0, 0, 8, 13, 0, 0, 8, 14, 0, 2, 8, 15, - 0, 2, 8, 16, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 8, 19, 0, 2, 0, 35, 0, 2, 0, 17, 0, 2, 8, 20, 0, 2, 8, 21, - 0, 2, 8, 22, 0, 4, 8, 23, 1, 5, 8, 24, 0, 9, 8, 25, 0, 4, 8, 26, 0, 4, 8, 27, 0, 4, 8, 28, 0, 4, 8, 29, - 0, 0, 8, 30, 0,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 1, 3, 8, 9, 1, 3, 8, 10, 1, 3, 8, 31, 1, 3, 8, 32, - 1, 2, 8, 33, 0, 15, 0, 49, 0, 0, 6, 40, 0, 0, 8, 34, 0, 2, 6, 84, 0, 2, 6, 85, 0, 2, 8, 35, 0, 2, 0, 35, - 0, 2, 7,253, 0, 2, 6,223, 0, 2, 0, 17, 1, 8, 8, 11, 0, 12, 8, 36, 0, 12, 6, 39, 0, 12, 8, 37, 0, 12, 8, 38, - 1, 9, 0, 24, 1, 9, 0, 0, 1, 9, 0, 1, 0,214, 6, 92, 0, 15, 8, 39, 0, 15, 8, 40, 0, 2, 6, 84, 0, 2, 6, 85, - 0, 2, 8, 41, 0, 2, 8, 42, 0, 2, 8, 43, 0, 2, 0, 17, 0, 7, 2, 82, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 7,252, - 0, 2, 8, 44, 0, 2, 8, 1, 0, 2, 4,195, 1, 10, 8, 11, 0, 12, 8, 45, 0, 12, 8, 46, 0, 12, 8, 37, 0, 0, 8, 47, - 0, 9, 8, 48, 1, 11, 0, 14, 0, 0, 8, 49, 0, 2, 8, 50, 0, 2, 8, 51, 0, 2, 8, 52, 0, 2, 8, 53, 0, 2, 5, 29, - 0, 2, 8, 54, 1, 2, 8, 55, 0, 38, 8, 56, 0, 4, 8, 57, 0, 4, 8, 58, 0, 4, 8, 59, 0, 4, 0, 35, 0, 0, 8, 60, - 1, 12, 0, 3, 0, 0, 8, 61, 0, 4, 8, 62, 0, 4, 8, 63, 1, 13, 0, 4, 0, 4, 6,155, 0, 4, 8, 64, 0, 4, 6,161, - 0, 4, 8, 65, 1, 14, 0, 2, 0, 4, 8, 66, 0, 4, 8, 67, 1, 15, 0, 5, 0, 7, 8, 68, 0, 7, 8, 69, 0, 7, 8, 70, - 0, 4, 0, 17, 0, 4, 0, 35, 1, 16, 0, 6, 0, 0, 8, 71, 0, 0, 6,112, 0, 41, 0,130, 0, 2, 0,104, 0, 2, 5, 28, - 0, 4, 0, 35, 1, 17, 0, 14, 1, 17, 0, 0, 1, 17, 0, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, 4, 0, 26, 0, 4, 8, 72, - 0, 4, 8, 73, 0, 4, 8, 74, 1, 12, 8, 75, 0, 0, 8, 71, 1, 16, 3,106, 1, 13, 8, 76, 1, 14, 8, 77, 1, 15, 8, 78, - 1, 18, 0, 12, 0, 0, 1,253, 0, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, 9, 0,225, 0, 7, 0,227, - 0, 7, 0,228, 0, 9, 8, 79, 0, 9, 8, 80, 0, 9, 0,229, 0, 9, 0,231, 1, 19, 0, 48, 1, 19, 0, 0, 1, 19, 0, 1, - 0, 9, 8, 81, 0, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, 4, 0, 85, 0, 4, 8, 82, - 0, 4, 8, 83, 0, 4, 8, 73, 0, 4, 8, 74, 0, 4, 8, 84, 0, 4, 0,243, 0, 4, 8, 85, 0, 4, 8, 86, 0, 7, 8, 87, - 0, 7, 0, 35, 0, 7, 8, 88, 0, 7, 8, 89, 0, 4, 0,121, 0, 4, 8, 90, 1, 17, 8, 91, 0, 28, 0, 77, 0, 38, 0,117, - 0, 24, 8, 92, 0, 41, 0,130, 0, 7, 8, 93, 0, 7, 8, 94, 1, 18, 1, 62, 1, 19, 8, 95, 1, 19, 8, 96, 1, 19, 8, 97, - 0, 12, 8, 98, 0,245, 6,232, 0, 9, 8, 99, 0, 7, 4, 14, 0, 7, 8,100, 0, 7, 8,101, 0, 4, 8,102, 0, 4, 8,103, - 0, 7, 8,104, 0, 9, 8,105, 0, 4, 8,106, 0, 4, 8,107, 0, 4, 8,108, 0, 7, 8,109, 1, 20, 0, 4, 1, 20, 0, 0, - 1, 20, 0, 1, 0, 12, 8,110, 1, 19, 8,111, 0,203, 0, 11, 0, 12, 8,112, 0, 12, 8, 98, 0, 12, 8,113, 1, 19, 8,114, - 0, 0, 8,115, 0, 0, 8,116, 0, 4, 8,117, 0, 4, 8,118, 0, 4, 8,119, 0, 4, 0, 35, 0, 16, 8,120, 1, 21, 0, 4, - 0, 7, 8,121, 0, 7, 3, 76, 0, 2, 8,122, 0, 2, 8,123, 1, 22, 0, 6, 0, 7, 8,124, 0, 7, 8,125, 0, 7, 8,126, - 0, 7, 8,127, 0, 4, 8,128, 0, 4, 8,129, 1, 23, 0, 13, 0, 7, 8,130, 0, 7, 8,131, 0, 7, 8,132, 0, 7, 8,133, - 0, 7, 8,134, 0, 7, 8,135, 0, 7, 8,136, 0, 7, 8,137, 0, 7, 8,138, 0, 7, 8,139, 0, 4, 2,233, 0, 4, 8,140, - 0, 4, 8,141, 1, 24, 0, 2, 0, 7, 5, 99, 0, 7, 0, 35, 1, 25, 0, 5, 0, 7, 8,142, 0, 7, 8,143, 0, 4, 0, 88, - 0, 4, 2,193, 0, 4, 8,144, 1, 26, 0, 6, 1, 26, 0, 0, 1, 26, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, - 0, 2, 0, 54, 1, 27, 0, 8, 1, 27, 0, 0, 1, 27, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, 0, 2, 0, 54, - 0, 7, 0, 21, 0, 7, 0,121, 1, 28, 0, 45, 1, 28, 0, 0, 1, 28, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, - 0, 2, 0,239, 0, 2, 4, 56, 0, 2, 8,146, 0, 7, 8,147, 0, 7, 0, 86, 0, 7, 2,246, 0, 4, 8,148, 0, 4, 0, 79, - 0, 4, 2,195, 0, 7, 8,149, 0, 7, 8,150, 0, 7, 8,151, 0, 7, 8,152, 0, 7, 8,153, 0, 7, 8,154, 0, 7, 2,243, - 0, 7, 1, 59, 0, 7, 8,155, 0, 7, 8,156, 0, 7, 0, 35, 0, 7, 8,157, 0, 7, 8,158, 0, 7, 8,159, 0, 2, 8,160, - 0, 2, 8,161, 0, 2, 8,162, 0, 2, 8,163, 0, 2, 8,164, 0, 2, 8,165, 0, 2, 8,166, 0, 2, 8,167, 0, 2, 2, 21, - 0, 2, 8,168, 0, 2, 2, 18, 0, 2, 8,169, 0, 0, 8,170, 0, 0, 8,171, 0, 7, 0,237, 1, 29, 8,172, 0, 58, 1,232, - 1, 30, 0, 16, 1, 30, 0, 0, 1, 30, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,145, 0, 2, 0,239, 0, 7, 2,238, - 0, 7, 2,239, 0, 7, 2,240, 0, 7, 2, 71, 0, 7, 2,241, 0, 7, 2,242, 0, 7, 8,173, 0, 7, 2,243, 0, 7, 2,245, - 0, 7, 2,246, 0,227, 0, 5, 0, 2, 0, 15, 0, 2, 8,174, 0, 2, 0, 17, 0, 2, 8,175, 0, 19, 6,191, 0,226, 0, 3, - 0, 4, 0, 66, 0, 4, 8,176, 0,227, 0, 2, 1, 31, 0, 7, 1, 31, 0, 0, 1, 31, 0, 1, 0, 0, 0, 18, 0, 2, 0, 15, - 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 8,177, 1, 32, 0, 5, 0, 0, 0, 18, 0, 7, 1, 79, 0, 7, 8,178, 0, 4, 8,179, - 0, 4, 0, 35, 1, 33, 0, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 1, 34, 0, 4, 0, 0, 0, 18, - 0, 57, 8,180, 0, 7, 1, 79, 0, 7, 0, 35, 1, 35, 0, 6, 0, 2, 8,181, 0, 2, 8,182, 0, 2, 0, 15, 0, 2, 8,183, - 0, 0, 8,184, 0, 0, 8,185, 1, 36, 0, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 8,186, 0, 0, 8,187, - 1, 37, 0, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 1, 38, 0, 4, 0, 2, 8,188, 0, 2, 8,189, 0, 2, 0, 17, - 0, 2, 0, 35, 1, 39, 0, 6, 0, 0, 0, 18, 0, 0, 8,190, 0, 2, 8,191, 0, 2, 2,243, 0, 2, 1, 72, 0, 2, 0, 67, - 1, 40, 0, 5, 0, 0, 0, 18, 0, 7, 3, 76, 0, 7, 4,145, 0, 2, 0, 17, 0, 2, 2,207, 1, 41, 0, 3, 0, 0, 0, 18, - 0, 4, 2,195, 0, 4, 8,188, 1, 42, 0, 7, 0, 0, 0, 18, 0, 7, 4,145, 0, 0, 8,192, 0, 0, 8,193, 0, 2, 1, 72, - 0, 2, 0, 87, 0, 4, 8,194, 1, 43, 0, 4, 0, 0, 8,195, 0, 0, 8,196, 0, 4, 0, 15, 0, 7, 2,211, 1, 44, 0, 3, - 0, 24, 8,197, 0, 0, 8,198, 0, 0, 8,199, 1, 45, 0, 18, 1, 45, 0, 0, 1, 45, 0, 1, 0, 2, 0, 15, 0, 2, 8,200, - 0, 2, 0, 17, 0, 2, 8,201, 0, 2, 8,202, 0, 2, 8,203, 0, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, - 1, 46, 8,204, 0, 24, 0, 42, 0, 2, 5,116, 0, 2, 8,100, 0, 2, 8,205, 0, 2, 0, 35, 1, 47, 0, 11, 0, 0, 0, 18, - 0, 0, 0, 15, 0, 0, 8,206, 0, 2, 0, 17, 0, 2, 2,207, 0, 2, 8,207, 0, 4, 8,208, 0, 4, 8,209, 0, 4, 8,210, - 0, 4, 8,211, 0, 4, 8,212, 1, 48, 0, 1, 0, 0, 8,213, 1, 49, 0, 4, 0, 34, 6,154, 0, 0, 7,158, 0, 4, 1, 72, - 0, 4, 0, 17, 1, 46, 0, 18, 1, 46, 0, 0, 1, 46, 0, 1, 1, 46, 8,214, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,215, - 0, 2, 8,203, 0, 2, 8,200, 0, 2, 8,216, 0, 2, 0, 67, 0, 2, 1,229, 0, 0, 0, 18, 0, 9, 0, 2, 1, 50, 8,204, - 1, 45, 8,217, 0, 2, 0, 13, 0, 2, 8,218, 0, 4, 8,219, 1, 51, 0, 3, 0, 4, 2,221, 0, 4, 0, 35, 0, 24, 0, 42, - 1, 52, 0, 12, 0,157, 8,220, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 8,147, 0, 7, 0, 86, 0, 0, 0, 18, 0, 0, 8,221, - 0, 2, 8,222, 0, 2, 8,223, 0, 2, 8,224, 0, 2, 8,225, 0, 7, 8,226, 1, 53, 0, 8, 0, 7, 8,227, 0, 7, 8,228, - 0, 7, 8,229, 0, 7, 8,230, 0, 7, 8,231, 0, 7, 8,232, 0, 7, 8,233, 0, 7, 8,234, 1, 54, 0, 13, 0, 2, 0, 17, - 0, 2, 6,233, 0, 4, 0, 87, 0, 4, 0, 67, 0, 2, 8,235, 0, 7, 4, 14, 0, 7, 8,236, 0,245, 6,232, 1, 53, 8,237, - 0, 2, 0, 15, 0, 2, 5, 35, 0, 2, 5,254, 0, 2, 8,238, 1, 55, 0, 11, 0, 4, 2,221, 0, 2, 0, 15, 0, 2, 0, 17, - 0, 24, 0, 42, 0, 73, 8,239, 0, 0, 0, 18, 0, 7, 8,240, 0, 7, 8,241, 0, 7, 3,151, 0, 2, 8,242, 0, 2, 8,243, - 1, 56, 0, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, 24, 5,107, 1, 57, 0, 5, 0, 4, 0, 35, - 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 8,186, 0, 24, 0, 42, 1, 58, 0, 13, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 8,200, - 0, 2, 3,152, 0, 7, 8,244, 0, 7, 8,245, 0, 7, 4,195, 0, 7, 3,163, 0, 7, 3,122, 0, 7, 3,125, 0, 7, 8,246, - 0, 7, 8,247, 0, 24, 8,248, 1, 59, 0, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 8,147, 0, 7, 0, 86, 0, 0, 0, 18, - 0, 0, 8,221, 0, 2, 0, 87, 0, 2, 0, 67, 0, 2, 1,229, 0, 2, 5, 35, 1, 60, 0, 8, 0, 24, 0, 42, 0, 7, 2,240, - 0, 7, 8,249, 0, 7, 8,250, 0, 7, 3,152, 0, 2, 0, 87, 0, 2, 2,207, 0, 7, 0, 67, 1, 61, 0, 12, 0, 2, 0, 15, - 0, 2, 1, 72, 0, 2, 0, 17, 0, 2, 2,243, 0, 2, 2,221, 0, 2, 8,251, 0, 4, 0, 35, 0, 7, 8,252, 0, 7, 8,253, - 0, 7, 8,254, 0, 7, 8,255, 0, 0, 9, 0, 1, 62, 0, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 8,147, 0, 4, 0, 86, - 0, 0, 0, 18, 0, 2, 4,195, 0, 2, 0, 61, 0, 2, 9, 1, 0, 2, 9, 2, 1, 63, 0, 7, 0, 4, 2,195, 0, 4, 9, 3, - 0, 4, 9, 4, 0, 4, 9, 5, 0, 7, 9, 6, 0, 7, 9, 7, 0, 0, 8,192, 1, 64, 0, 7, 0, 0, 9, 8, 0, 24, 9, 9, - 0, 0, 8,198, 0, 2, 9, 10, 0, 2, 0, 87, 0, 4, 0, 67, 0, 0, 8,199, 1, 65, 0, 6, 0, 2, 0, 17, 0, 2, 0, 15, - 0, 4, 8,147, 0, 4, 0, 86, 0, 0, 9, 11, 0, 0, 9, 12, 1, 66, 0, 1, 0, 4, 0, 17, 1, 67, 0, 6, 0, 0, 0, 90, - 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 9, 13, 0, 7, 9, 14, 0, 34, 6,154, 1, 68, 0, 4, 0, 0, 2,159, 0, 2, 0, 17, - 0, 4, 0, 15, 0, 24, 0, 42, 1, 69, 0, 2, 0, 4, 0, 15, 0, 4, 6, 73, 1, 70, 0, 6, 0, 0, 8,195, 0, 0, 8,196, - 0, 4, 0, 15, 0, 7, 2, 29, 0, 24, 3, 53, 0, 24, 9, 15, 1, 50, 0, 10, 1, 50, 0, 0, 1, 50, 0, 1, 1, 50, 8,214, - 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,200, 0, 2, 9, 16, 0, 0, 0, 18, 0, 9, 0, 2, 0, 24, 0, 42, 0,245, 0, 16, - 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,220, 0, 35, 9, 17, 0, 28, 0, 77, 0, 7, 4, 14, 0, 7, 9, 18, - 0, 7, 8,236, 0, 7, 8,227, 0, 7, 8,228, 0, 7, 9, 19, 0, 4, 0, 88, 0, 4, 0, 35, 0, 9, 9, 20, 0, 9, 9, 21, - 1, 71, 0, 6, 1, 71, 0, 0, 1, 71, 0, 1, 0, 24, 0, 42, 0, 9, 9, 22, 0, 2, 0,244, 0, 0, 2,192, 0, 58, 0, 4, - 0, 19, 0, 29, 0, 12, 9, 23, 0, 4, 0,126, 0, 7, 9, 24, 1, 72, 0, 28, 1, 72, 0, 0, 1, 72, 0, 1, 0, 18, 9, 25, - 1, 72, 0, 36, 0, 12, 9, 26, 0, 0, 0, 18, 0, 7, 9, 27, 0, 7, 9, 28, 0, 7, 9, 29, 0, 7, 9, 30, 0, 4, 0, 17, - 0, 7, 9, 31, 0, 7, 9, 32, 0, 7, 9, 33, 0, 7, 9, 34, 0, 7, 1, 79, 0, 7, 2, 29, 0, 7, 9, 35, 0, 7, 2,193, - 0, 7, 9, 36, 0, 7, 9, 37, 0, 7, 9, 38, 0, 7, 9, 39, 0, 7, 9, 40, 0, 7, 0,167, 0, 4, 0,126, 0, 2, 5,153, - 0, 2, 7, 5, 1, 73, 0, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 9, 41, 0, 12, 9, 42, 0, 12, 9, 43, 1, 72, 9, 44, - 0, 9, 9, 45, 0, 9, 9, 46, 0, 4, 0, 17, 0, 4, 6, 48, 0, 2, 2,247, 0, 2, 6,103, 0, 4, 9, 47, 0, 4, 0,126, - 0, 4, 9, 48, 0, 2, 9, 49, 0, 2, 9, 50, 0, 2, 9, 51, 0, 2, 9, 52, 0, 4, 9, 53, 0, 4, 9, 54, 0, 4, 9, 55, - 0, 4, 9, 56, 0, 4, 9, 57, 0, 4, 9, 58, 1, 74, 0, 2, 0, 7, 2,147, 0, 4, 0, 17, 0,161, 0, 5, 1, 74, 9, 59, - 0, 4, 2,193, 0, 4, 9, 60, 0, 4, 9, 61, 0, 4, 0, 17, 0,160, 0, 16, 0, 4, 9, 62, 0, 4, 9, 63, 0, 4, 9, 64, - 0, 4, 9, 65, 0, 2, 9, 66, 0, 2, 9, 67, 0, 2, 9, 68, 0, 2, 0,244, 0, 2, 9, 69, 0, 2, 9, 70, 0, 2, 9, 71, - 0, 2, 9, 72, 0, 4, 9, 73, 0, 4, 9, 74, 0, 4, 9, 75, 0, 4, 9, 76, 1, 75, 0, 41, 1, 75, 0, 0, 1, 75, 0, 1, - 0, 18, 9, 25, 0, 12, 3,177, 0, 0, 0, 18, 0, 2, 0, 17, 0, 2, 9, 77, 0, 2, 9, 78, 0, 2, 9, 79, 0, 2, 3,137, - 0, 2, 9, 80, 0, 4, 2, 69, 0, 4, 9, 55, 0, 4, 9, 56, 1, 72, 9, 81, 1, 75, 0, 36, 1, 75, 9, 82, 0, 12, 9, 83, - 0,161, 3,114, 0, 24, 9, 84, 1, 75, 9, 85, 0, 7, 1, 67, 0, 7, 0,167, 0, 7, 9, 86, 0, 7, 2, 8, 0, 7, 3,127, - 0, 7, 3,129, 0, 2, 3,160, 0, 2, 0, 35, 0, 7, 9, 87, 0, 7, 9, 88, 0, 7, 3,132, 0, 7, 9, 89, 0, 7, 9, 90, - 0, 7, 9, 91, 0, 7, 9, 92, 0, 7, 9, 93, 0, 7, 9, 94, 0, 7, 9, 95, 0, 7, 9, 96, 0, 7, 2, 62, 0,158, 0, 16, - 0, 12, 9, 97, 0, 68, 9, 98, 0, 2, 0, 17, 0, 2, 0, 35, 0, 4, 9, 99, 0, 4, 0, 87, 0, 7, 2, 98, 0, 7, 9,100, - 0, 7, 9,101, 0, 12, 9,102, 0, 4, 9,103, 0, 4, 9,104, 0, 9, 9,105, 0, 9, 9,106, 0,160, 3,113, 0, 0, 9,107, - 1, 76, 0, 1, 0, 4, 9,104, 1, 77, 0, 12, 0, 4, 9,104, 0, 7, 8,212, 0, 2, 9,108, 0, 2, 9,109, 0, 7, 9,110, - 0, 7, 9,111, 0, 2, 9,112, 0, 2, 0, 17, 0, 7, 9,113, 0, 7, 9,114, 0, 7, 9,115, 0, 7, 9,116, 1, 78, 0, 7, - 1, 78, 0, 0, 1, 78, 0, 1, 0, 12, 9,117, 0, 4, 0, 17, 0, 4, 9,118, 0, 0, 4, 4, 0,253, 9,119, 0,157, 0, 9, - 0, 19, 0, 29, 0, 12, 9,120, 0, 12, 9, 97, 0, 12, 9,121, 0, 12, 0, 98, 0, 4, 0, 17, 0, 4, 9,122, 0, 4, 9,123, - 0, 4, 0, 35, 0,217, 0, 6, 0, 19, 9,124, 0, 12, 9, 97, 0, 58, 9,125, 0, 0, 9,126, 0, 4, 9,127, 0, 4, 0, 17, - 1, 79, 0, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 6, 39, 0, 4, 6, 40, 0, 7, 6, 41, 0, 2, 6, 42, 0,214, 6, 92, - 0,157, 3,109, 0,217, 9,128, 0, 0, 1, 72, 0, 0, 6, 95, 0, 2, 0, 17, 0, 7, 9,129, 1, 80, 0, 8, 1, 80, 0, 0, - 1, 80, 0, 1, 1, 78, 9,130, 0, 28, 0, 77, 0, 12, 3,115, 0, 4, 0, 17, 0, 0, 0, 18, 0, 4, 7,250, 1, 81, 0, 5, - 1, 81, 0, 0, 1, 81, 0, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 9,131, 1, 82, 0, 14, 1, 82, 0, 0, 1, 82, 0, 1, - 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 9,132, 0, 0, 9,133, 0, 0, 9,131, 0, 7, 9,134, 0, 7, 9,135, - 0, 4, 0, 35, 0, 28, 0, 77, 0, 7, 9,136, 0, 7, 9,137, 1, 83, 0, 9, 1, 83, 0, 0, 1, 83, 0, 1, 0, 24, 9,138, - 0, 0, 2,250, 0, 7, 9,139, 0, 2, 9,140, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 9,141, 1, 84, 0, 7, 0, 34, 6,154, - 0, 18, 9, 25, 0, 4, 0, 17, 0, 4, 9,142, 0, 12, 9,143, 0, 24, 9,138, 0, 0, 2,250, 1, 85, 0, 15, 0, 24, 9,138, - 0, 2, 9,144, 0, 2, 0, 17, 0, 2, 9,145, 0, 2, 9,146, 0, 0, 2,250, 0, 24, 9,147, 0, 0, 9,148, 0, 7, 9,149, - 0, 7, 2, 29, 0, 7, 9,150, 0, 7, 9,151, 0, 2, 0, 15, 0, 2, 1, 72, 0, 7, 1, 79, 1, 86, 0, 6, 0, 24, 9,138, - 0, 7, 9, 59, 0, 2, 9,152, 0, 2, 9,153, 0, 2, 0, 17, 0, 2, 9,154, 1, 87, 0, 6, 0, 24, 9,138, 0, 4, 9,155, - 0, 4, 9,156, 0, 4, 0, 88, 0, 4, 0, 35, 0, 0, 2,250, 1, 88, 0, 4, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 9,155, - 0, 0, 2,250, 1, 89, 0, 4, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 9,155, 0, 0, 2,250, 1, 90, 0, 4, 0, 24, 9,138, - 0, 4, 0, 17, 0, 4, 9,155, 0, 0, 2,250, 1, 91, 0, 2, 0, 4, 0, 17, 0, 7, 4, 14, 1, 92, 0, 2, 0, 24, 9,138, - 0, 0, 2,250, 1, 93, 0, 10, 0, 24, 9,138, 0, 4, 9,157, 0, 7, 0,120, 0, 4, 0, 17, 0, 2, 6,152, 0, 2, 9,158, - 0, 2, 0, 87, 0, 2, 0, 67, 0, 7, 9,159, 0, 0, 2,250, 1, 94, 0, 10, 0, 24, 9,138, 0, 2, 0, 15, 0, 2, 4, 64, - 0, 4, 0, 85, 0, 4, 0, 86, 0, 7, 8,249, 0, 7, 8,250, 0, 4, 0, 35, 0,157, 8,220, 0, 0, 2,250, 1, 95, 0, 4, - 0, 24, 9,138, 0, 4, 3,138, 0, 4, 9,160, 0, 0, 2,250, 1, 96, 0, 4, 0, 24, 9,138, 0, 4, 3,138, 0, 4, 0, 35, - 0, 0, 2,250, 1, 97, 0, 6, 0, 24, 9,138, 0, 7, 0,120, 0, 7, 3, 65, 0, 4, 9,161, 0, 2, 3,138, 0, 2, 3,139, - 1, 98, 0, 6, 0, 24, 9,138, 0, 4, 9,162, 0, 4, 9,163, 0, 7, 9,164, 0, 7, 9,165, 0, 0, 2,250, 1, 99, 0, 16, - 0, 24, 9,138, 0, 24, 9, 82, 0, 4, 0, 15, 0, 7, 9,166, 0, 7, 9,167, 0, 7, 9,168, 0, 7, 9,169, 0, 7, 9,170, - 0, 7, 9,171, 0, 7, 9,172, 0, 7, 9,173, 0, 7, 9,174, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, - 1,100, 0, 3, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 2, 21, 1,101, 0, 5, 0, 24, 9,138, 0, 4, 0, 17, 0, 4, 0, 35, - 0, 7, 9,175, 0, 0, 2,250, 1,102, 0, 10, 0, 24, 9,138, 0, 0, 2,250, 0, 2, 9,176, 0, 2, 9,177, 0, 0, 9,178, - 0, 0, 9,179, 0, 7, 9,180, 0, 7, 9,181, 0, 7, 9,182, 0, 7, 9,183, 1,103, 0, 5, 0, 24, 9,138, 0, 0, 2,250, - 0, 7, 2,201, 0, 2, 9,184, 0, 2, 0, 17, 1,104, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, - 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,105, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, - 0, 7, 0, 10, 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,106, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, - 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 9,185, 0, 7, 9,186, 0, 2, 0, 17, 0, 2, 2, 21, 1,107, 0, 7, 0, 24, 9,138, - 0, 0, 2,250, 0, 7, 1, 79, 0, 7, 1, 88, 0, 2, 0, 17, 0, 2, 1, 72, 0, 4, 0, 35, 1,108, 0, 5, 0, 24, 3, 53, - 0, 7, 1, 79, 0, 2, 3, 57, 0, 0, 3, 59, 0, 0, 9,187, 1,109, 0, 10, 1,109, 0, 0, 1,109, 0, 1, 0, 2, 0, 15, - 0, 2, 0, 17, 0, 0, 9,188, 0, 7, 1, 22, 0, 7, 1, 23, 0, 2, 9,117, 0, 2, 9,189, 0, 24, 0, 42, 1,110, 0, 22, - 1,110, 0, 0, 1,110, 0, 1, 0, 2, 0, 17, 0, 2, 1, 72, 0, 2, 9,190, 0, 2, 9,191, 0, 28, 0, 77, 0,157, 8,220, - 0, 24, 0,159, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 9,192, 0, 7, 9,193, 0, 7, 9,194, 0, 7, 9,195, 0, 7, 2,236, - 0, 7, 9,196, 0, 7, 8,222, 0, 7, 9,197, 0, 0, 9,198, 0, 0, 9,199, 0, 12, 3,118, 1,111, 0, 8, 0, 7, 2, 36, - 0, 7, 8,249, 0, 7, 8,250, 0, 9, 0, 2, 0, 2, 9,200, 0, 2, 9,201, 0, 2, 9,202, 0, 2, 9,203, 1,112, 0, 19, - 1,112, 0, 0, 1,112, 0, 1, 1,112, 9,204, 0, 0, 0, 18, 1,111, 9,205, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 9,206, - 0, 2, 9,207, 1,111, 9,208, 0, 2, 9,209, 0, 2, 0, 87, 0, 7, 9,210, 0, 7, 9,211, 0, 4, 9,212, 1,112, 9,213, - 0, 4, 9,214, 0, 4, 0, 67, 1,113, 9,215, 1,114, 0, 4, 0, 0, 9,216, 0, 2, 9,217, 0, 2, 9,218, 0, 4, 0, 35, - 1,115, 0, 34, 1,115, 0, 0, 1,115, 0, 1, 1,115, 9,219, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8, 72, - 0, 2, 8,100, 0, 2, 9,220, 0, 2, 6,157, 0, 2, 9,209, 0, 2, 8,174, 0, 12, 8,215, 0, 12, 9,221, 0, 19, 6,191, - 0, 9, 9,222, 0, 7, 9,210, 0, 7, 9,211, 0, 7, 2, 71, 0, 7, 9,223, 0, 0, 9,224, 0, 2, 9,225, 0, 2, 9,226, - 0, 7, 9,227, 0, 7, 9,228, 0, 2, 9,229, 0, 2, 9,230, 0, 9, 9,231, 0, 16, 9,232, 0, 16, 9,233, 0, 16, 9,234, - 1,114, 0,146, 1,116, 9,235, 1,117, 9,236, 1,113, 0, 8, 1,113, 0, 0, 1,113, 0, 1, 1,115, 9,237, 1,115, 9,238, - 1,112, 9,239, 1,112, 9,240, 0, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, 19, 0, 29, 0, 31, 0, 72, 0,159, 3,112, - 0, 12, 9,241, 0, 12, 9,242, 1,111, 9,243, 0, 12, 9,244, 0, 4, 0, 15, 0, 4, 9,245, 0, 4, 9,246, 0, 4, 9,247, - 0, 4, 0, 17, 0, 4, 0, 35, 0, 12, 9,248, 0, 12, 8,215, 0, 12, 9,221, 0, 4, 6, 62, 0, 9, 9,249, 0, 9, 9,250, - 0, 4, 9,251, 0, 9, 9,252, 0, 9, 9,253, 0, 9, 9,254, 1,118, 0, 6, 0, 4, 0,119, 0, 4, 0,121, 0, 4, 8,174, - 0, 0, 9,255, 0, 0, 10, 0, 0, 2, 0, 35, 1,119, 0, 16, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 10, 1, 0, 2, 10, 2, - 0, 2, 10, 3, 0, 2, 0, 65, 0, 2, 6,192, 0, 2, 10, 4, 0, 7, 2,235, 0, 7, 10, 5, 0, 7, 10, 6, 0, 2, 1, 94, - 0, 0, 10, 7, 0, 0, 10, 8, 0, 4, 10, 9, 0, 4, 10, 10, 1,120, 0, 9, 0, 7, 10, 11, 0, 7, 10, 12, 0, 7, 9, 19, - 0, 7, 3, 76, 0, 7, 10, 13, 0, 7, 6,109, 0, 2, 3, 74, 0, 0, 10, 14, 0, 0, 0, 35, 1,121, 0, 4, 0, 7, 10, 15, - 0, 7, 10, 16, 0, 2, 3, 74, 0, 2, 0, 35, 1,122, 0, 3, 0, 7, 10, 17, 0, 7, 8, 87, 0, 7, 0, 13, 1,123, 0, 7, - 0, 0, 1,253, 0, 2, 5, 26, 0, 2, 5, 27, 0, 2, 5, 28, 0, 2, 4,217, 0, 4, 0,121, 0, 4, 4, 62, 1,124, 0, 9, - 0, 7, 10, 18, 0, 7, 10, 19, 0, 7, 10, 20, 0, 7, 2, 82, 0, 7, 10, 21, 0, 7, 10, 22, 0, 7, 10, 23, 0, 2, 10, 24, - 0, 2, 10, 25, 1,125, 0, 8, 0, 2, 10, 26, 0, 2, 10, 27, 0, 2, 10, 28, 0, 2, 10, 29, 0, 7, 10, 30, 0, 7, 10, 31, - 0, 7, 10, 32, 0, 7, 10, 33, 1,126, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 1,127, 0, 2, 0, 0, 0,161, 0, 0, 10, 34, - 1,128, 0, 1, 0, 0, 0, 18, 1,129, 0, 10, 0, 0, 10, 35, 0, 0, 10, 36, 0, 0, 6,101, 0, 0, 10, 37, 0, 2, 10, 1, - 0, 2, 10, 38, 0, 7, 10, 39, 0, 7, 10, 40, 0, 7, 10, 41, 0, 7, 9,196, 1,130, 0, 2, 0, 9, 10, 42, 0, 9, 10, 43, - 1,131, 0, 11, 0, 0, 5, 28, 0, 0, 0, 15, 0, 0, 3, 74, 0, 0, 3, 76, 0, 0, 10, 44, 0, 0, 0,104, 0, 0, 2,159, - 0, 7, 10, 45, 0, 7, 10, 46, 0, 7, 10, 47, 0, 7, 10, 48, 1,132, 0, 8, 0, 7, 8,181, 0, 7, 0,120, 0, 7, 10, 8, - 0, 7, 2,152, 0, 7, 10, 49, 0, 7, 0,233, 0, 7, 10, 50, 0, 4, 0, 15, 1,133, 0, 4, 0, 2, 10, 51, 0, 2, 10, 52, - 0, 2, 10, 53, 0, 2, 0, 35, 1,134, 0, 8, 0, 7, 10, 54, 0, 7, 2,201, 0, 7, 10, 55, 0, 7, 8, 68, 0, 7, 8, 69, - 0, 7, 8, 70, 0, 7, 10, 56, 0, 7, 10, 57, 1,135, 0, 6, 0, 2, 10, 58, 0, 2, 10, 59, 0, 7, 10, 60, 0, 7, 10, 61, - 0, 7, 10, 62, 0, 7, 10, 63, 1,136, 0, 1, 0, 0, 0, 18, 1,137, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, - 0, 2, 10, 64, 1,138, 0, 10, 0, 2, 3,248, 0, 2, 0, 17, 0, 7, 4,145, 0, 7, 10, 65, 0, 7, 10, 66, 0, 7, 10, 67, - 0, 7, 10, 68, 1,137, 10, 69, 1,137, 10, 70, 1,137, 10, 71, 0, 51, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 10, 72, - 0, 4, 10, 73, 0, 16, 10, 74, 0, 16, 10, 75, 1,138, 10, 76, 0, 7, 10, 77, 0, 7, 10, 78, 0, 7, 10, 79, 0, 7, 10, 80, - 0,230, 0, 10, 0, 4, 9,117, 0, 4, 10, 81, 0, 7, 10, 82, 0, 7, 10, 83, 0, 7, 10, 84, 0, 7, 10, 85, 0, 7, 0, 8, - 0, 7, 0, 10, 0, 4, 1, 72, 0, 4, 2,240, 0,229, 0, 18, 0, 4, 0,124, 0, 4, 10, 86, 0, 4, 10, 87, 0, 7, 10, 88, - 0, 4, 10, 89, 0, 7, 10, 90, 0, 7, 10, 91, 0, 4, 10, 92, 0, 7, 10, 93, 0, 4, 10, 94, 0, 7, 10, 95, 0,230, 10, 96, - 0, 7, 10, 97, 0, 7, 10, 98, 0, 7, 10, 99, 0, 7, 10,100, 0, 4, 10,101, 0, 4, 0, 35, 1,139, 0, 4, 0, 39, 2,227, - 0, 7, 10,102, 0, 7, 1,161, 0, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 1,139, 10,103, 0, 51, 10, 69, 0, 43, 10,104, - 0, 49, 10,105, 0, 22, 0,146, 0, 0, 10,106, 0, 7, 10,107, 0, 2, 6, 4, 0, 2, 10,108, 0, 4, 0,104, 0, 4, 0, 17, - 0, 7, 10,109, 0, 4, 2, 79, 0, 4, 10,110, 0, 7, 10,111, 0, 7, 10,112, 0, 7, 10,113, 0, 7, 1,161, 0, 4, 10,114, - 0, 7, 10,115, 0, 0, 10,116, 0, 0, 10,117, 0, 0, 10,118, 0, 0, 10,119, 0, 7, 10,120, 0, 7, 10,121, 0, 7, 10,122, - 0, 7, 2,240, 0, 7, 10,123, 0, 4, 10,124, 0, 7, 10,125, 0, 7, 10,126, 0, 7, 10,127, 1,140, 0, 10, 0, 4, 0, 15, - 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 3,201, 0, 4, 10,128, 0, 4, 10,129, 0, 4, 10,130, 0, 0, 0, 90, 0, 0, 0, 18, - 0, 9, 0, 2, 1,141, 0, 1, 0, 0, 8, 60, 0, 84, 0, 7, 1,140, 10,131, 0, 4, 10,132, 0, 4, 10,133, 0, 4, 10,134, - 0, 4, 0, 35, 0, 9, 10,135, 1,141, 10,136, 1,142, 0, 5, 0, 7, 2,147, 0, 7, 2,221, 0, 7, 2, 29, 0, 2, 2,128, - 0, 2, 0, 35, 1,143, 0, 5, 0, 7, 2,147, 0, 7, 4, 89, 0, 7, 10,137, 0, 7, 10,138, 0, 7, 2,221, 1,144, 0, 5, - 0, 24, 10,139, 1,145, 0, 20, 0, 7, 5,227, 0, 7, 10,140, 0, 7, 0, 54, 1,146, 0, 3, 0, 7, 10,141, 0, 4, 10,142, - 0, 4, 10,143, 1,147, 0, 7, 0, 4, 10,144, 0, 4, 10,145, 0, 4, 10,146, 0, 7, 10,147, 0, 7, 10,148, 0, 7, 10,149, - 0, 7, 0, 54, 1,148, 0, 8, 1,148, 0, 0, 1,148, 0, 1, 0, 24, 0, 42, 0, 4, 0,252, 0, 2, 0, 17, 0, 2, 1, 72, - 0, 7, 2,221, 0, 7, 8,189, 1,149, 0, 6, 1,149, 0, 0, 1,149, 0, 1, 0, 24, 0, 42, 0, 2, 2,206, 0, 2, 0, 17, - 0, 2, 10,150, 1,150, 0, 17, 1,143, 3,193, 1,143, 10,151, 1,142, 10,152, 1,143, 8,172, 1,144, 10,153, 0, 4, 0, 79, - 0, 7, 2,221, 0, 7, 2,246, 0, 7, 10,154, 0, 4, 10,144, 0, 4, 10,155, 0, 7, 10,148, 0, 7, 10,149, 0, 7, 0,104, - 0, 4, 10,156, 0, 2, 0, 17, 0, 2, 10,157, 1,151, 0, 15, 0, 7, 0,248, 0, 7, 10,158, 0, 7, 10,141, 0, 7, 10,159, - 0, 7, 10,160, 0, 7, 10,161, 0, 7, 10,162, 0, 7, 10,163, 0, 7, 10,164, 0, 7, 10,165, 0, 7, 10,166, 0, 7, 10,167, - 0, 7, 10,168, 0, 4, 0, 17, 0, 4, 10,169, 1,152, 0,124, 0, 19, 0, 29, 0, 31, 0, 72, 1,153, 10,170, 1,151, 10,171, - 0,168, 4, 84, 0, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, 2, 9,176, 0, 2, 10,172, 0, 2, 1,107, 0, 2, 10,173, - 0, 2, 3,160, 0, 2, 10,174, 0, 2, 10,175, 0, 2, 10,176, 0, 2, 10,177, 0, 2, 10,178, 0, 2, 10,179, 0, 2, 10,180, - 0, 2, 10,181, 0, 2, 10,182, 0, 2, 5,124, 0, 2, 10,183, 0, 2, 10,184, 0, 2, 10,185, 0, 2, 10,186, 0, 2, 10,187, - 0, 2, 2, 18, 0, 2, 8,165, 0, 2, 8,140, 0, 2, 10,188, 0, 2, 10,189, 0, 2, 3,211, 0, 2, 3,212, 0, 2, 10,190, - 0, 2, 10,191, 0, 2, 10,192, 0, 2, 10,193, 0, 7, 10,194, 0, 7, 10,195, 0, 7, 10,196, 0, 7, 10,197, 0, 7, 10,198, - 0, 7, 10,199, 0, 7, 10,200, 0, 2, 5, 74, 0, 2, 10,201, 0, 7, 10,202, 0, 7, 10,203, 0, 7, 10,204, 0, 7, 8,147, - 0, 7, 0, 86, 0, 7, 2,246, 0, 7, 8,153, 0, 7, 10,205, 0, 7, 10,206, 0, 7, 10,207, 0, 7, 10,208, 0, 4, 8,148, - 0, 4, 8,146, 0, 4, 10,209, 0, 4, 10,210, 0, 7, 8,149, 0, 7, 8,150, 0, 7, 8,151, 0, 7, 10,211, 0, 7, 10,212, - 0, 7, 10,213, 0, 7, 10,214, 0, 7, 10,215, 0, 7, 10,216, 0, 7, 10,217, 0, 7, 10,218, 0, 7, 10,219, 0, 7, 3,151, - 0, 7, 0,104, 0, 7, 10,220, 0, 7, 10,221, 0, 7, 10,222, 0, 7, 10,223, 0, 7, 0,206, 0, 7, 10,224, 0, 4, 10,225, - 0, 4, 10,226, 0, 7, 10,227, 0, 7, 10,228, 0, 7, 10,229, 0, 7, 10,230, 0, 7, 10,231, 0, 7, 0,205, 0, 7, 10,232, - 0, 7, 3,238, 0, 7, 3,236, 0, 7, 3,237, 0, 7, 10,233, 0, 7, 10,234, 0, 7, 10,235, 0, 7, 10,236, 0, 7, 10,237, - 0, 7, 10,238, 0, 7, 10,239, 0, 7, 10,240, 0, 7, 10,241, 0, 7, 10,242, 0, 7, 10,243, 0, 7, 10,244, 0, 7, 10,245, - 0, 7, 10,246, 0, 7, 10,247, 0, 7, 10,248, 0, 7, 10,249, 0, 7, 10,250, 0, 4, 10,251, 0, 4, 10,252, 0, 43, 1,125, - 0, 58, 3,182, 0, 12, 10,253, 0, 58, 10,254, 0, 24, 10,255, 0, 24, 11, 0, 0, 28, 0, 77, 0,163, 1, 64, 0,163, 11, 1, - 0,141, 0, 50, 0,141, 0, 0, 0,141, 0, 1, 1,152, 11, 2, 1,150, 11, 3, 1,147, 9, 82, 0,171, 4, 10, 0, 9, 4, 11, - 1,154, 11, 4, 1,154, 11, 5, 0, 12, 11, 6, 0, 12, 11, 7, 0,126, 11, 8, 0,134, 11, 9, 0,134, 11, 10, 0, 24, 11, 11, - 0, 24, 11, 12, 0, 24, 0, 36, 0, 12, 9,143, 0, 0, 0, 18, 0, 7, 0,237, 0, 7, 3, 19, 0, 7, 11, 13, 0, 7, 11, 14, - 0, 4, 2,195, 0, 4, 11, 15, 0, 4, 0, 17, 0, 4, 8,148, 0, 4, 11, 16, 0, 4, 11, 17, 0, 4, 11, 18, 0, 4, 11, 19, - 0, 2, 0,244, 0, 2, 11, 20, 0, 2, 11, 21, 0, 2, 11, 22, 0, 0, 11, 23, 0, 2, 11, 24, 0, 2, 11, 25, 0, 2, 11, 26, - 0, 9, 11, 27, 0,130, 4, 83, 0, 12, 3, 4, 0, 12, 11, 28, 1,146, 11, 29, 0, 4, 11, 30, 0, 4, 11, 31, 1,155, 11, 32, - 0,132, 3, 16, 1,156, 11, 33, 0, 7, 11, 34, 0,128, 0, 37, 1,157, 9, 20, 0, 7, 4, 53, 0, 7, 11, 35, 0, 7, 11, 36, - 0, 7, 5,227, 0, 7, 3,161, 0, 7, 3,151, 0, 7, 11, 37, 0, 7, 2, 81, 0, 7, 11, 38, 0, 7, 11, 39, 0, 7, 11, 40, - 0, 7, 11, 41, 0, 7, 11, 42, 0, 7, 11, 43, 0, 7, 4, 54, 0, 7, 11, 44, 0, 7, 11, 45, 0, 7, 11, 46, 0, 7, 4, 55, - 0, 7, 4, 51, 0, 7, 4, 52, 0, 7, 11, 47, 0, 7, 11, 48, 0, 4, 11, 49, 0, 4, 0, 88, 0, 4, 11, 50, 0, 4, 11, 51, - 0, 2, 11, 52, 0, 2, 11, 53, 0, 2, 11, 54, 0, 2, 11, 55, 0, 2, 11, 56, 0, 2, 11, 57, 0, 2, 11, 58, 0, 2, 4,195, - 0,168, 4, 84, 0,129, 0, 11, 1,157, 11, 59, 0, 7, 11, 60, 0, 7, 11, 61, 0, 7, 1,233, 0, 7, 11, 62, 0, 7, 11, 63, - 0, 7, 11, 64, 0, 4, 0, 88, 0, 2, 11, 65, 0, 2, 11, 66, 0, 58, 1,232, 1,158, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, - 0, 7, 2, 7, 0, 7, 11, 67, 1,159, 0, 6, 1,159, 0, 0, 1,159, 0, 1, 1,158, 9, 59, 0, 4, 0,250, 0, 2, 11, 68, - 0, 2, 0, 17, 1,160, 0, 5, 1,160, 0, 0, 1,160, 0, 1, 0, 12, 11, 69, 0, 4, 11, 70, 0, 4, 0, 17, 1,161, 0, 9, - 1,161, 0, 0, 1,161, 0, 1, 0, 12, 0,119, 1,160, 11, 71, 0, 4, 0, 17, 0, 2, 11, 68, 0, 2, 11, 72, 0, 7, 0, 89, - 0, 0, 11, 73, 0,159, 0, 6, 0, 19, 0, 29, 0, 12, 5, 43, 0, 4, 0, 17, 0, 2, 11, 74, 0, 2, 11, 75, 0, 9, 11, 76, - 1,162, 0, 6, 0, 12, 11, 77, 0, 4, 11, 78, 0, 4, 11, 79, 0, 4, 0, 17, 0, 4, 0, 35, 0,211, 11, 80, 1,163, 0, 17, - 0, 19, 0, 29, 1,164, 11, 81, 1,164, 11, 82, 0, 12, 11, 83, 0, 4, 11, 84, 0, 2, 11, 85, 0, 2, 11, 86, 0, 12, 11, 87, - 0, 12, 11, 88, 1,162, 11, 89, 0, 12, 11, 90, 0, 12, 11, 91, 0, 12, 11, 92, 0, 12, 11, 93, 1,165, 11, 94, 0, 12, 11, 95, - 0,211, 11, 96, 1,164, 0, 32, 1,164, 0, 0, 1,164, 0, 1, 0, 9, 11, 97, 0, 4, 7,251, 0, 2, 11, 98, 0, 2, 0, 35, - 1, 2, 11, 99, 1, 2, 11,100, 0, 0, 11,101, 0, 2, 11,102, 0, 2, 11,103, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 11,104, - 0, 2, 11,105, 0, 2, 3,201, 0, 2, 6,223, 0, 2, 11,106, 0, 2, 11,107, 0, 2, 11,108, 0, 2, 0, 67, 1,166, 11,109, - 1,167, 11,110, 1,168, 11,111, 0, 4, 11,112, 0, 4, 11,113, 0, 9, 11,114, 0, 12, 11, 88, 0, 12, 8, 37, 0, 12, 11,115, - 0, 12, 11,116, 0, 12, 11,117, 1,169, 0, 17, 1,169, 0, 0, 1,169, 0, 1, 0, 0, 11,118, 0, 18, 0, 28, 0, 2, 11,119, - 0, 2, 0, 15, 0, 2, 0, 13, 0, 2, 11,120, 0, 2, 11,121, 0, 2, 11,122, 0, 2, 11,123, 0, 2, 11,124, 0, 2, 0, 17, - 0, 2, 11,125, 0, 2, 0, 29, 0, 2, 0, 35, 1,170, 11,126, 1,171, 0, 10, 1,171, 0, 0, 1,171, 0, 1, 0, 12, 11,127, - 0, 0, 11,118, 0, 2, 11,128, 0, 2, 11,129, 0, 2, 0, 17, 0, 2, 11,130, 0, 4, 11,131, 0, 9, 11,132, 1,165, 0, 7, - 1,165, 0, 0, 1,165, 0, 1, 0, 0, 11,118, 0, 0, 11,133, 0, 12, 7,196, 0, 4, 11,134, 0, 4, 0, 17, 0,223, 0, 14, - 0,223, 0, 0, 0,223, 0, 1, 0, 0, 11,118, 0, 18, 0, 28, 1,172, 8, 11, 0, 9, 11,135, 0, 9, 11,136, 1,170, 11,126, - 1,162, 11,137, 0, 12, 11,138, 0,223, 11,139, 1, 7, 6,130, 0, 2, 0, 17, 0, 2, 4,195, 1,173, 0, 8, 1,173, 0, 0, - 1,173, 0, 1, 0, 9, 0, 2, 0, 9, 11,140, 0, 0, 4, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 11,141, 1,174, 0, 5, - 0, 7, 11,142, 0, 4, 11,143, 0, 4, 11,144, 0, 4, 1, 72, 0, 4, 0, 17, 1,175, 0, 6, 0, 7, 11,145, 0, 7, 11,146, - 0, 7, 11,147, 0, 7, 11,148, 0, 4, 0, 15, 0, 4, 0, 17, 1,176, 0, 5, 0, 7, 8,249, 0, 7, 8,250, 0, 7, 2,221, - 0, 2, 2, 32, 0, 2, 2, 33, 1,177, 0, 5, 1,176, 0, 2, 0, 4, 0, 51, 0, 7, 11,149, 0, 7, 8,249, 0, 7, 8,250, - 1,178, 0, 4, 0, 2, 11,150, 0, 2, 11,151, 0, 2, 11,152, 0, 2, 11,153, 1,179, 0, 2, 0, 34, 6,185, 0, 18, 9, 25, - 1,180, 0, 3, 0, 16, 11,154, 0, 4, 0, 17, 0, 4, 0, 35, 1,181, 0, 6, 0, 7, 0,104, 0, 7, 2,223, 0, 7, 11,155, - 0, 7, 0, 35, 0, 2, 0,243, 0, 2, 11,156, 1,182, 0, 5, 0, 7, 11,157, 0, 7, 0,120, 0, 7, 9, 60, 0, 7, 9, 61, - 0, 4, 0, 17, 1,183, 0, 6, 0, 19, 6,191, 0, 0, 11,158, 0, 0, 11,159, 0, 2, 11,160, 0, 2, 0, 17, 0, 4, 11,161, - 1,184, 0, 7, 1,184, 0, 0, 1,184, 0, 1, 0, 0, 4, 4, 1,183, 11,162, 0, 2, 11,163, 0, 2, 0, 15, 0, 7, 0, 58, - 1,185, 0, 7, 0, 12, 11,164, 0, 0, 11,165, 0, 9, 11,166, 0, 7, 0, 58, 0, 7, 11,141, 0, 4, 0, 15, 0, 4, 0, 17, - 1,186, 0, 3, 0, 7, 11,167, 0, 4, 0, 17, 0, 4, 0, 35, 1,187, 0, 15, 1,187, 0, 0, 1,187, 0, 1, 1, 78, 9,130, - 1,185, 0, 59, 0, 12, 3,118, 0, 27, 0, 47, 1,186, 11,168, 0, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 1, 15, - 0, 4, 11,169, 0, 0, 11,158, 0, 4, 11,170, 0, 7, 11,171, 1,188, 0, 2, 0, 0, 11,172, 0, 0, 11,173, 1,189, 0, 4, - 1,189, 0, 0, 1,189, 0, 1, 0,157, 3, 53, 0, 12, 11,174, 1,190, 0, 24, 1,190, 0, 0, 1,190, 0, 1, 0, 12, 11,175, - 0,157, 8,220, 1,189, 11,176, 0, 12, 11,177, 0, 12, 3,118, 0, 0, 4, 4, 0, 7, 11,141, 0, 7, 11,178, 0, 7, 0, 85, - 0, 7, 0, 86, 0, 7, 9,192, 0, 7, 9,193, 0, 7, 2,236, 0, 7, 9,196, 0, 7, 8,222, 0, 7, 9,197, 0, 2, 11,179, - 0, 2, 11,180, 0, 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 1,191, 0, 6, 1,191, 0, 0, 1,191, 0, 1, - 0, 12, 11,175, 0, 4, 0, 17, 0, 4, 2,151, 0, 0, 4, 4, 1,192, 0, 11, 1,192, 0, 0, 1,192, 0, 1, 0, 19, 6,191, - 0, 0, 11,181, 0, 4, 11,161, 0, 2, 11,182, 0, 2, 0, 35, 0, 0, 11,158, 0, 4, 11,169, 0, 2, 0, 17, 0, 2, 11,183, - 1,193, 0, 8, 1,193, 0, 0, 1,193, 0, 1, 0, 12, 11,184, 0, 0, 4, 4, 0, 0, 11,185, 0, 2, 0, 17, 0, 2, 11,183, - 0, 4, 11,186, 1,194, 0, 5, 1,194, 0, 0, 1,194, 0, 1, 0, 0, 11,158, 0, 4, 11,169, 0, 7, 2,211, 0, 31, 0, 12, - 0,157, 3,109, 0,157, 11,187, 1,189, 11,176, 0, 12, 11,188, 1,190, 11,189, 0, 12, 11,190, 0, 12, 11,191, 0, 4, 0, 17, - 0, 4, 0,244, 0, 2, 11,192, 0, 2, 11,193, 0, 7, 11,194, 1,195, 0, 2, 0, 19, 0, 29, 0, 31, 0, 72, 1,196, 0, 5, - 1,196, 0, 0, 1,196, 0, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 1,197, 0, 6, 1,196, 11,195, 0, 24, 0, 42, - 0, 4, 11,196, 0, 7, 11,197, 0, 4, 11,198, 0, 4, 9,117, 1,198, 0, 3, 1,196, 11,195, 0, 4, 11,196, 0, 7, 11,199, - 1,199, 0, 8, 1,196, 11,195, 0, 24, 0, 42, 0, 7, 1, 67, 0, 7, 11,200, 0, 7, 3, 19, 0, 7, 9, 19, 0, 4, 11,196, - 0, 4, 11,201, 1,200, 0, 5, 1,196, 11,195, 0, 7, 11,202, 0, 7, 8,100, 0, 7, 2,242, 0, 7, 0, 54, 1,201, 0, 3, - 1,196, 11,195, 0, 7, 9, 19, 0, 7, 11,203, 1,145, 0, 4, 0, 7, 11,204, 0, 7, 10,221, 0, 2, 11,205, 0, 2, 1, 72, - 1,202, 0, 14, 1,202, 0, 0, 1,202, 0, 1, 0, 12, 11,206, 0, 12, 11,207, 0, 12, 11,208, 0, 0, 0, 18, 0, 4, 0, 29, - 0, 4, 0, 17, 0, 4, 11,209, 0, 7, 11,210, 0, 4, 11,198, 0, 4, 9,117, 0, 7, 4, 14, 0, 7, 2,244, 1,153, 0, 23, - 0, 4, 11,196, 0, 4, 11,211, 0, 7, 11,212, 0, 7, 2,240, 0, 7, 11,213, 0, 7, 8,236, 0, 7, 11,204, 0, 7, 11,214, - 0, 7, 2,223, 0, 7, 10, 88, 0, 7, 4,145, 0, 7, 11,215, 0, 7, 11,216, 0, 7, 11,217, 0, 7, 11,218, 0, 7, 11,219, - 0, 7, 11,220, 0, 7, 11,221, 0, 7, 11,222, 0, 7, 11,223, 0, 7, 11,224, 0, 7, 11,225, 0, 12, 11,226, 0,114, 0, 40, - 0,113, 11,227, 1,203, 10,171, 0, 58, 11,228, 0, 58, 10,254, 0, 58, 11,229, 1,204, 11,230, 0, 40, 0,160, 0, 40, 11,231, - 0, 40, 11,232, 0, 7, 11,233, 0, 7, 11,234, 0, 7, 11,235, 0, 7, 11,236, 0, 7, 11,237, 0, 7, 7,250, 0, 7, 11,238, - 0, 7, 1,161, 0, 7, 11,239, 0, 4, 11,240, 0, 4, 11,241, 0, 4, 11,242, 0, 4, 0, 88, 0, 4, 0, 35, 0, 4, 11,243, - 0, 2, 11,244, 0, 2, 11,245, 0, 4, 11,246, 0, 7, 2,223, 0, 4, 11,247, 0, 7, 11,248, 0, 4, 11,249, 0, 4, 11,250, - 0, 4, 11,251, 0,130, 11,252, 0, 12, 11,253, 0,168, 4, 84, 0, 4, 11,254, 0, 7, 11,255, 0, 7, 12, 0, 0, 4, 0, 67, - 0,115, 0, 12, 0,113, 11,227, 0,141, 3, 39, 0, 7, 1,128, 0, 7, 7,250, 0, 7, 12, 1, 0, 7, 12, 2, 0, 7, 12, 3, - 0, 2, 12, 4, 0, 2, 12, 5, 0, 2, 12, 6, 0, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 11,227, 0,132, 3, 16, - 0,134, 3, 18, 0, 7, 9, 59, 0, 7, 12, 7, 0, 7, 12, 8, 0, 7, 1, 69, 0, 7, 12, 9, 0, 4, 9,152, 0, 4, 3, 12, - 0, 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; + 72, 0, 0, 0,120, 21,216, 2,190, 0, 0, 0, 1, 0, 0, 0,240, 21,216, 2, 0, 21,216, 2,105,111, 95,115, 99,101,110,101, + 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, +240, 21,216, 2,190, 0, 0, 0, 1, 0, 0, 0,104, 22,216, 2,120, 21,216, 2,105,111, 95,109,101,115,104, 95,115,116,108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,104, 22,216, 2, +190, 0, 0, 0, 1, 0, 0, 0,224, 22,216, 2,240, 21,216, 2,105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117, +116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,224, 22,216, 2,190, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,104, 22,216, 2,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,168, 92,220, 3,183, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 32, 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,255,255, 0, 0, +154,153, 25, 62, 0, 0,128, 63, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0, + 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0, +154,153, 25, 62, 0, 0,128, 63, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, 0, 4, 0, 0, 0, + 68, 78, 65, 49, 56,231, 0, 0, 32,143, 19, 4, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 17, 12, 0, 0, + 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, + 0,121, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0, +103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, + 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101, +110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105, +100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, + 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,116,111,116, 0, +112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, + 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42, +111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, + 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116, +111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105, +100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, + 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101, +108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114, +111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, + 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108, +111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105, +110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, + 0,112, 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109, +101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0, +115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0, +117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101, +101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108, +105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0, +115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, + 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102, +114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, + 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105, +109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108, 97, +115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0, +116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, + 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101, +100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115, +101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112, +101, 0,103,101,110, 95,102,108, 97,103, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, + 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, + 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97, +112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, + 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114, +109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95, +109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, + 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, + 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102, +102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121, +109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116, +102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, + 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101, +110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, + 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108, +105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0, +115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108, +101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, + 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101, +115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42, +105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118, +101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105, +109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101, +119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97, +108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, + 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111, +116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, + 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42, +112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116, +104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100, +112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97, +108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42, +102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121, +112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112, +101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117, +114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97, +109,101, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, + 97,115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105, +108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, + 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109, +111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95, +119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108, +116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, + 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105, +110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120, +102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, + 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42, +112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, + 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, + 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, + 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112, +111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108, +111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114, +101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98, +117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112, +101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, + 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122, +101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104, +114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100, +104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110, +100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0, +115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116, +116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117, +114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, + 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, + 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117, +114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, + 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101, +109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109, +105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, + 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108, +101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122, +101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, + 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, + 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, + 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114, +103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97, +110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0, +115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0, +102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101, +108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105, +109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112, +116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, + 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103, +108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95, +116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95, +109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, + 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, + 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116, +114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0, +115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, + 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, + 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101, +108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97, +103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110, +101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, + 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, + 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98, +108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, + 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111, +110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97, +109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115, +115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111, +108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, + 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120, +116,117,114,101,100, 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, + 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, + 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 0,113,117, 97,116, 91, 52, + 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, + 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, + 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115, +105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97, +108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118, +101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0, +114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, + 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100, +105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98, +115, 0, 42,107,101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117, +114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118, +101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95, +109,111,100,101, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108, +101, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120, +116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42, +108, 97,115,116,115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105, +115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117, +108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42, +115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118, +102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101, +112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101, +108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42, +109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100, +103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109, +101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, + 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108, +101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115, +117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, + 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115, +112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, + 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101, +105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,102, 0,105, + 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0, +109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, + 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110, +116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0, +114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101, +100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, + 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, + 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, + 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116, +109,112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76, +101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, + 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, + 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, + 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0, +109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, + 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0, +115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0, +108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101, +102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108, +108, 0,116,105,109,101, 0,112, 97,100, 49, 48, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0, +109,105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0, +110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, + 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, + 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115, +116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, + 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102, +108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, + 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97, +114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115, +105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104, +101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101, +110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109, +102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116, +105,109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112, +101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100, +115,105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116, +115, 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103, +114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97, +100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, + 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105, +103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121, +115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0, +112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, + 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111, +116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114, +103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114, +105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115, +117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, + 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105, +110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, + 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0, +114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108, +101, 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102, +102, 95,114, 97,100,105,117,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116, +115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102, +118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0, +108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, + 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0, +112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111, +120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111, +115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115, +116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111, +100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99, +116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114, +111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120, +105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, + 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, + 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116, +102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112, +111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, + 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117, +112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114, +109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0, +109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115, +104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, + 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, + 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116, +111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97, +109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111, +112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116, +114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, + 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116, +102,108, 97,103, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, + 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114, +109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115, +116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112, +117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, + 50, 93, 0,112, 97,100, 51, 91, 56, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, + 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, +114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0, +116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115, +116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112, +111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, + 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109, +112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, + 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101, +102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99, +108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110, +107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, + 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, + 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116, +111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, + 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114, +116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101, +120, 97, 99,116, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, + 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42, 99, 97, 99,104, +101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, + 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109, +101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97, +116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, + 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, + 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, + 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, + 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105, +116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111, +105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0, +110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109, +101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0, +103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120, +103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83, +111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105, +110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, + 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101, +121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, + 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, + 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, + 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, + 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105, +110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, + 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, + 93, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111, +110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114, +101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115, +112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116, +121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, + 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, + 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86, +101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114, +102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, + 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108, +117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97, +116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, + 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116, +105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, + 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109, +101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116, +114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97, +100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99, +105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115, +116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101, +110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105, +110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, + 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, + 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104, +121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, + 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97, +114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, + 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110, +100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, + 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97, +111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, + 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, + 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, + 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, + 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, + 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114, +111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,112, 97, +100, 91, 51, 93, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, + 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, + 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105, +116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110, +116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, + 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, + 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108, +105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, + 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81, +117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97, +109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117, +100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105, +111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66, +105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, + 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100, +105,111, 95, 99,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 95,112, 97,100, 0, 97,117,100,105,111, 95,118,111,108,117, +109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, + 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105, +122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111, +102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95, +109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114, +105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, + 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97, +116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115, +117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97, +112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103, +101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0, +121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, + 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120, +105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,112, +108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100, +105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105, +111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0, +111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, + 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0, +108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, + 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109, +103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97, +116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, + 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, + 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97, +107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97, +100, 0,112,105, 99, 91, 50, 52, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115, +116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115, +116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116, +121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, + 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97, +100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105, +109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98, +108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95, +100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109, +101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101, +116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, + 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101, +114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, + 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 0,100,111,109,101, 0,115, +116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, + 42, 98,114,117,115,104, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111, +114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, + 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110, +116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101, +121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, + 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, + 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,114, 97, +100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, + 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122, +101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95, +105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112, +114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42, +118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, + 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112, +101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0, +116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115, +105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114, +116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, + 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97, +108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, + 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, + 97,100, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, + 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95, +115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, + 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, + 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, + 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116, +105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111, +110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, + 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, + 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, + 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105, +109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114, +101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114, +103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, + 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115, +107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101, +115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117, +108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115, +107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0, +115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114, +101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114, +111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110, +117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, + 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, + 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109, +111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0, 97,117,116,111, 95,110,111, +114,109, 97,108,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99, +117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, + 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, +115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,116,111,116,111, 98, +106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116, +109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121, +115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, +113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115, +101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101, +110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, + 97,121, 95,117,112,100, 97,116,101,100, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, + 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0, +116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115, +111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, + 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108, +105,100, 0,100, 97,103,102,108, 97,103,115, 0,112, 97,100, 54, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121, +105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99, +115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, + 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112, +101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, + 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, + 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97, +109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,116,119,100,114, 97,119,102,108, 97,103, 0,105, +115, 95,112,101,114,115,112, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105, +112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, + 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111, +116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105, +101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105, +111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99, +107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, + 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, + 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99, +101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100, +101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105, +100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, + 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, + 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97, +121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,101, +115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, + 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114, +111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, + 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, + 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95, +109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, + 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117, +115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110, +116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101, +110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116, +105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109, +101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 93, 0,102,105,108,116,101,114, 95, +103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115, +101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, + 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, + 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, + 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99, +101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42, +116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, + 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, + 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105, +110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117, +114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116, +105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119, +108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101, +110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98, +101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114, +105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99, +114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102, +105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103, +105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112, +121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97, +108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0, +115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42, +115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, + 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, + 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112, +101, 0,116,101,120,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,116,105,116,108,101, 91, 50, 52, 93, 0,109,101,110, +117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,115,101,108,115,116, 97,116,101, 0,118, +105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, + 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, 97, 99, +116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117, +114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, + 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, + 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, + 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, + 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, + 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 42, 97,114,101, 97, 0, 42,115,111,117,110,100, 0,115,110,100, +110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105, +100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98, +111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112, +104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, + 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111, +109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99, +111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99, +101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101, +108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, + 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, + 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97, +100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101, +114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101, +114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95, +100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99, +111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, + 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108, +101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109, +101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, + 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99, +114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101, +109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, + 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0, +104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104, +101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111, +110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, + 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, + 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, + 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120, +116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0, +115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, + 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0, +103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111, +114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, + 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97, +109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, + 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115, +101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95, +108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, + 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, +118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98, +111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99, +116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, + 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101, +108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115, +116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110, +100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108, +101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97, +110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, + 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110, +101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111, +117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108, +101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111, +108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, + 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 0,115,121,110,116, 97,120,108, + 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120, +118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, + 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108, +117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100, +105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, + 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, + 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99, +107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105, +108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101, +113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0, +116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0, +116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108, +101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116, +101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100, +105,114, 91, 50, 52, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, + 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, + 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, + 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101, +114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111, +100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, + 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97, +103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, + 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117, +100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111, +100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101, +110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116, +121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, + 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110, +104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101, +114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, + 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, + 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116, +101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109, +101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105, +116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, + 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115, +105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116, +104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111, +102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116, +121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97, +115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110, +105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, + 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120, +116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, + 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0, 97,117,116,104,111,114, 91, 56, 48, 93, + 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119, +115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110, +105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101, +115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97, +119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, + 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, + 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109, +101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111, +102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117, +110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101, +114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114, +111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, + 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42, +118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, + 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0, +119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, + 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, + 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, + 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110, +118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117, +114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, + 97,108,102, 0,114,101,118,105,115,105,111,110, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, + 56, 48, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111, +109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, + 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116, +105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116, +114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99, +101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, + 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105, +110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110, +100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, + 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, + 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115, 99,101,110, +101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, + 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105, +109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100, +101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101, +113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, + 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, + 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0, +111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105, +112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, + 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108, +101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, + 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101, +114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0,116,105,116,108,101,115,116,114, + 91, 54, 52, 93, 0,115,117, 98,116,105,116,108,101, 91, 49, 50, 56, 93, 0,102,103, 99,111,108, 91, 51, 93, 0, 98,103, 99,111, +108, 91, 51, 93, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, + 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111, +116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, + 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97, +120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99, +104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, + 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102, +108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, + 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, + 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115, +116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114, +103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, + 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, + 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112, +110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111, +115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114, +111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116, +121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0, +116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98, +117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, + 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110, +107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111, +112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, + 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,108, 97,121,101,114, 95,119, +101,105,103,104,116, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99, +101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95, +102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116, +101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,112, 97,100, 51, 91, 50, 93, + 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101, +108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, + 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, + 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, + 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, + 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110, +114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0, 98,117,116, +115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, + 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114, +103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100, +121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, + 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0, +103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105, +115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42, +108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114, +111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, + 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, + 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0, +120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, + 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42, +101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, + 99,104, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104, +111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105, +122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, + 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97, +109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103, +104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115, +116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, + 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97, +103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, + 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103, +114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 99,117, +115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, + 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, + 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116, +109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107, +114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, + 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115, +101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, + 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107, +112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109,105,116,101,114, + 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0, +102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, + 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111, +117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, + 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101, +114,102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, + 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100, +116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97, +116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, + 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, + 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, + 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98, +116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, + 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110, +109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0, +102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103, +116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, + 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, + 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0, +101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95, +109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, + 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105, +115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99, +116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101, +110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110, +101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112, +101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0, +115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95,105,110,100,101, +120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, + 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122, +101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97, +103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, 50, 93, 0, 99,117,115,116,111,109, 49, 0, 99, +117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, + 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, + 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110, +111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107, +115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107, +115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 40, 42,112,114,111,103,114,101, +115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, + 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105, +101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,117,114,118, +101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, + 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, + 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, + 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,116, 49, 0,116, 50, 0,116, 51, + 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116, +104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, + 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98, +107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116, +111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97, +110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97, +100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119, +101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108, +105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0, +117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0, +109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99, +117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, + 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, + 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97, +109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, + 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117, +109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, + 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97, +108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, + 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0, +109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, + 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0, +119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101, +120, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, + 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101,114, 0,115,109, +111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, + 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112,108, 97,110,101, + 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120, +112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0,112, 97,100, 51, 91, + 53, 93, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95,112,105,110, 99, +104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95,115, 97,109,112, +108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, 97, 0,117,110, +112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, + 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, + 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, + 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,116, + 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,115, +116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,116, +101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, + 91, 52, 93, 0,102,111,102,102,115,101,116, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111, +105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101, +120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,115, +116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97, +110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,103, + 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,105, +102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,110, + 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100, +105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, + 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112, +101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95, +115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97, +110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111, +114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, + 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116, +105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98, 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,118, +101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108, 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97, +120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, + 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105, +101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, + 0,103,114,105,100, 95,114, 97,110,100, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111, +117,110,116, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99, +116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, + 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, + 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103, +116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110, +116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100, +114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, + 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105, +122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114, +101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101, +110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, + 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104, +114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, + 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112, +108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, + 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, + 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, + 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100, +109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, + 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108, +100, 95,115,101,101,100, 0,116,111,116,117,110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, + 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116, +111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, + 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114, +100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116, +111,116, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110, +103,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116, +114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116, +114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105, +109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, + 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111, +111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, + 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95, +116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114, +111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, + 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115, +101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,114,101,112,101,108, 95,102, +111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101,108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111, +117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115, +115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116, +101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101, +114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, + 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97, +119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108, +105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112, +101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, + 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108, +116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111, +115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,114, +101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110, +100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100, 97, +108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, + 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119, +102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98, +119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, + 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100, +105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, + 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97, +108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, + 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, + 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111, +101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, + 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, + 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111, +114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, + 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, + 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95, +110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116, +115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101, +115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112, +116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, + 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114, +105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108, +101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111, +117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, + 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, + 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, + 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, + 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99, +116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, + 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, + 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110, +115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122, +105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111, +116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105, +110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, + 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, + 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0, +108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112, +101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115, +116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114, +111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97, +100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, + 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119, +115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, + 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, + 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, + 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108, +105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, + 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108, +101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0, +118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, + 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 84, 89, 80, 69,206, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115, +104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, + 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, + 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112, +101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70, +105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, + 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, + 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105, +110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97, +109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101, +120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, + 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, + 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105, +110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110, +103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71, +114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111, +117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101, +120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, + 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99, +101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, + 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117, +115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108, +105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, + 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80, +114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99, +101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101, +115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100, +103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97, +112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117, +114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, + 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105, +116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111, +119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112, +108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111, +116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108, +111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101, +116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, + 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99, +101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114, +116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108, +116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, + 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108, +105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97, +116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, + 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83, +101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111, +100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68, +117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, + 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100, +105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, + 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87, +111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, + 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, + 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, + 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111, +102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97, +116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, + 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, + 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105, +101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105, +110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83, +101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111, +114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110, +102,111, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, + 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, + 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99, +101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, + 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105, +108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101, +101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115, +116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, + 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99, +101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, + 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, + 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 83, 99,114, 65,114,101, 97, + 0, 98, 83,111,117,110,100, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121, +108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67, +111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105, +114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, + 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, + 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 84, +121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, + 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110, +115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111, +120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 77,101,116, 97, + 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114, +109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 84,105,116,108,101, 67, 97,114,100, 86, 97, +114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, + 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114, +111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, + 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114, +111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101, +108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97, +114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, + 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, + 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110, +115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, + 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99, +116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97, +116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99, +116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, + 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116, +117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, + 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103, +101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108, +105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, + 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, + 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110, +101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115, +101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, + 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, + 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97, +105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, + 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107, +101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, + 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99, +116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97, +105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, + 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97, +105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67, +108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97, +105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82, +111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114, +105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101, +114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83, +111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, 78,111, +100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110, +105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111, +100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78, +111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, + 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111, +100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105, +112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100, +101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67, +111,108,111,114,115,112,105,108,108, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, + 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, + 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105, +114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111, +105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, + 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, + 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116, +105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110, +103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, + 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, + 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82, +101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100, +111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100, +111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101, +114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111, +100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116, +105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77, +111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116, +104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, + 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67, +104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, + 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, + 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105, +100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117, +108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105, +111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, + 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83, +116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 0, 84, 76, 69, 78, + 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, 8, 0, 4, 0, 8, 0, 16, 0, + 16, 0, 20, 0, 76, 0, 52, 0, 40, 2, 0, 0, 32, 0,140, 0, 44, 4, 92, 0, 36, 0, 56, 0, 84, 0,112, 0,124, 0, 56, 0, + 24, 0, 40, 0,120, 0, 12, 0,104, 0, 36, 0, 48, 5,156, 1, 0, 0, 0, 0, 0, 0, 16, 1, 48, 1, 84, 1, 24, 0, 8, 3, +168, 0, 0, 0, 84, 0, 16, 1, 32, 1,164, 0,132, 0,108, 1, 88, 0,160, 2, 76, 0, 60, 1, 0, 0,108, 0,104, 0,148, 0, + 56, 0, 8, 0, 16, 0, 20, 0, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 24, 1, 20, 0, 44, 0, 60, 0, 20, 0, 12, 0, 12, 0, + 4, 0, 8, 0, 8, 0, 0, 0, 28, 0, 84, 0, 32, 0, 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 12, 0, + 16, 0, 64, 0, 24, 0, 12, 0, 40, 0, 64, 0,112, 0, 80, 0,100, 0,108, 0, 80, 0,108, 0,128, 0, 76, 0, 72, 0,120, 0, + 72, 0, 84, 0,204, 0, 48, 0,168, 0,160, 0,172, 0, 72, 0,104, 0,116, 0,196, 0,112, 0,224, 0, 64, 0, 92, 0, 0, 0, +144, 0, 40, 0,244, 1,112, 0, 0, 0, 88, 0, 0, 0, 0, 0, 76, 0, 8, 0, 8, 0,244, 0, 88, 0,148, 1, 84, 0,108, 0, + 72, 0, 72, 0,180, 1,120, 0,116, 0, 64, 0,128, 0, 92, 0,172, 0, 12, 0,224, 0, 40, 0, 0, 0,100, 0,156, 0, 72, 0, + 48, 0, 20, 0,120, 0,144, 0, 88, 1,208, 0,180, 0, 0, 0, 68, 0, 20, 0, 96, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 12, 0,112, 1, 28, 0,176, 0,144, 0, 64, 0, 68, 0, 24, 0, 72, 0,152, 3, 56, 0, 20, 0, 16, 0,100, 0, 84, 0, 16, 0, +204, 2, 36, 0, 16, 0,156, 0, 80, 0, 88, 0, 36, 0,152, 1, 32, 0, 8, 0, 24, 0, 56, 2, 0, 0, 0, 0, 72, 0, 68, 3, + 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 40, 0,140, 0, 48, 0,208, 0, 88, 0,216, 0,216, 0, 96, 2, 60, 0, 0, 0,120, 0, + 0, 0,244, 0, 12, 0, 12, 0,248, 32,112, 16, 24, 16,192, 0,136, 2, 80, 2, 40, 0, 12, 0,188, 0,252, 0, 52, 0,140, 2, + 28, 0,104, 1, 88, 0,188, 0, 96, 0, 92, 1, 16, 1, 32, 0,224, 0, 32, 0, 32, 0,112, 2,120, 1, 16, 0, 80, 30, 72, 0, + 56, 0,144, 13,148, 0, 20, 0, 24, 0, 64, 1, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 24, 1, 88, 0, 16, 0, 8, 0, 44, 0, +252, 0,212, 0,168, 1,216, 0, 16, 0, 12, 0, 24, 0, 52, 0, 16, 0,216, 0, 20, 0, 16, 0, 24, 0, 56, 1, 0, 0, 56, 0, + 52, 0, 48, 0, 8, 0, 44, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 68, 0, 76, 0, 80, 0, + 60, 0,128, 0, 76, 0, 60, 0, 12, 0,100, 0, 32, 0, 68, 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, 96, 0, 56, 0, + 56, 0,108, 0,140, 0, 4, 0, 20, 0, 12, 0, 8, 0, 80, 0, 24, 0, 16, 1,144, 0, 16, 0,192, 1, 4, 0, 40, 0,104, 0, + 24, 1, 64, 0, 44, 0, 72, 0,116, 0, 60, 0,112, 0, 16, 0, 52, 0, 44, 0, 44, 0, 44, 0, 8, 0, 36, 0, 68, 0, 64, 0, + 44, 0, 44, 0, 20, 0, 52, 0, 96, 0, 12, 0,108, 0, 92, 0, 52, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, + 36, 0,124, 0, 32, 0, 12, 0,212, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 44, 0, 24, 0, 8, 0, + 64, 0, 32, 0, 24, 0, 8, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0,240, 0, 24, 0, + 56, 0, 52, 0, 20, 0, 16, 0, 64, 0, 28, 0, 20, 0,180, 0, 60, 0, 64, 2, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 20, 0, 24, 0,172, 0, 28, 0,168, 0,148, 0,152, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 96, 0, 0, 0,104, 0, 20, 0, + 24, 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0, 20, 0, 48, 0,208, 1, 28, 1, 16, 0, 68, 0, 0, 1, 20, 0,160, 0, + 88, 0, 96, 0,152, 0, 20, 0, 56, 0, 48, 0, 68, 0, 56, 0, 92, 0, 64, 0, 56, 0, 96, 0, 0, 0, 0, 0, 83, 84, 82, 67, +149, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, + 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, 0, + 7, 0, 6, 0, 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, 0, + 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, 0, + 18, 0, 10, 0, 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, 0, + 17, 0, 20, 0, 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, 0, + 0, 0, 25, 0, 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, 0, + 21, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, 0, + 4, 0, 38, 0, 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, 0, + 16, 0, 48, 0, 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, + 2, 0, 17, 0, 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, + 23, 0, 59, 0, 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, 0, + 2, 0, 35, 0, 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, 0, + 2, 0, 65, 0, 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, 0, + 7, 0, 70, 0, 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, 0, + 7, 0, 58, 0, 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, 0, + 32, 0, 6, 0, 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, 0, + 33, 0, 0, 0, 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, 0, + 0, 0, 89, 0, 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, 0, + 32, 0, 94, 0, 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, + 9, 0,102, 0, 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 16, 0, 19, 0, 29, 0, + 31, 0, 72, 0, 0, 0, 15, 0, 0, 0,106, 0, 2, 0, 17, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, + 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 28, 0, 77, 0, 24, 0,116, 0, 37, 0, 14, 0, + 38, 0,117, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, 0, + 0, 0, 35, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0, 17, 0, 4, 0, 67, 0, 39, 0, 33, 0, 19, 0, 29, 0, + 0, 0, 32, 0, 12, 0,128, 0, 40, 0,129, 0, 41, 0,130, 0, 42, 0,131, 0, 42, 0,132, 0, 2, 0,133, 0, 2, 0,134, 0, + 2, 0,124, 0, 2, 0, 17, 0, 2, 0,135, 0, 2, 0, 15, 0, 4, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, 0, + 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 4, 0,143, 0, 4, 0,144, 0, 35, 0,145, 0, 22, 0,146, 0, 7, 0,147, 0, + 4, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 0, 0,152, 0, 0, 0,153, 0, 7, 0,154, 0, 7, 0,155, 0, + 43, 0, 65, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 2, 0,159, 0, 24, 0,160, 0, 44, 0,161, 0, 0, 0,162, 0, + 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 0, 0,166, 0, 7, 0,167, 0, 7, 0,168, 0, 7, 0,169, 0, 2, 0,170, 0, + 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 0, 0,176, 0, 0, 0,177, 0, 7, 0,178, 0, + 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,182, 0, 7, 0, 54, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, + 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, + 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, + 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, + 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, + 7, 0,218, 0, 7, 0,219, 0, 45, 0, 15, 0, 0, 0,220, 0, 9, 0,221, 0, 0, 0,222, 0, 0, 0,223, 0, 4, 0,224, 0, + 4, 0,225, 0, 9, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 7, 0,229, 0, 4, 0,230, 0, 9, 0,231, 0, 9, 0,232, 0, + 4, 0,233, 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,234, 0, 7, 0, 64, 0, + 4, 0, 61, 0, 47, 0, 5, 0, 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,235, 0, 46, 0,229, 0, 48, 0, 17, 0, + 24, 0,160, 0, 39, 0,236, 0, 49, 0,237, 0, 7, 0,238, 0, 7, 0,239, 0, 2, 0, 15, 0, 2, 0,240, 0, 7, 0,108, 0, + 7, 0,109, 0, 7, 0,241, 0, 4, 0,242, 0, 2, 0,243, 0, 2, 0,244, 0, 4, 0,124, 0, 4, 0,136, 0, 2, 0,245, 0, + 2, 0,246, 0, 50, 0, 25, 0, 2, 0, 17, 0, 2, 0,247, 0, 7, 0,248, 0, 7, 0,249, 0, 2, 0,135, 0, 2, 0,250, 0, + 4, 0,251, 0, 4, 0,252, 0, 24, 0,160, 0, 4, 0,253, 0, 2, 0,254, 0, 2, 0,255, 0, 9, 0, 0, 1, 7, 0, 1, 1, + 7, 0, 2, 1, 2, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 2, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 7, 0, 9, 1, + 7, 0, 10, 1, 47, 0, 11, 1, 51, 0, 12, 1, 52, 0, 13, 0, 4, 0, 13, 1, 4, 0, 14, 1, 2, 0, 15, 1, 2, 0, 17, 0, + 2, 0, 16, 1, 2, 0, 17, 1, 24, 0,160, 0, 7, 0, 18, 1, 4, 0, 19, 1, 0, 0, 20, 1, 7, 0, 21, 1, 4, 0, 22, 1, + 4, 0,124, 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, + 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 67, 0, 7, 0, 32, 1, 7, 0, 33, 1, + 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 7, 0, 40, 1, 7, 0, 41, 1, + 7, 0, 42, 1, 7, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 47, 1, 2, 0, 48, 1, 2, 0, 49, 1, + 2, 0, 50, 1, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,240, 0, 7, 0, 51, 1, 7, 0, 52, 1, 7, 0, 53, 1, 7, 0, 54, 1, + 4, 0, 55, 1, 4, 0, 56, 1, 2, 0, 57, 1, 2, 0, 58, 1, 2, 0, 16, 1, 2, 0,122, 0, 4, 0, 21, 0, 4, 0,119, 0, + 4, 0,120, 0, 4, 0,121, 0, 7, 0, 59, 1, 7, 0, 60, 1, 7, 0, 87, 0, 37, 0, 61, 1, 53, 0, 62, 1, 28, 0, 77, 0, + 39, 0,236, 0, 45, 0, 63, 1, 47, 0, 11, 1, 48, 0, 64, 1, 22, 0,146, 0, 50, 0, 65, 1, 52, 0, 66, 1, 0, 0, 67, 1, + 0, 0,177, 0, 54, 0, 8, 0, 7, 0, 68, 1, 7, 0, 69, 1, 7, 0,168, 0, 4, 0, 17, 0, 7, 0, 70, 1, 7, 0, 71, 1, + 7, 0, 72, 1, 24, 0, 42, 0, 55, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 73, 1, + 2, 0,171, 0, 2, 0, 74, 1, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0, 75, 1, 7, 0, 76, 1, + 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1, 7, 0, 83, 1, 7, 0, 84, 1, + 7, 0, 85, 1, 51, 0, 86, 1, 2, 0,247, 0, 2, 0, 67, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0, 87, 1, 7, 0, 88, 1, + 7, 0, 89, 1, 7, 0, 90, 1, 7, 0, 91, 1, 2, 0, 92, 1, 2, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 0, 0, 96, 1, + 0, 0, 97, 1, 2, 0, 98, 1, 2, 0, 99, 1, 2, 0,100, 1, 2, 0,101, 1, 2, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, + 7, 0,105, 1, 7, 0,106, 1, 2, 0,107, 1, 2, 0, 87, 0, 2, 0,108, 1, 2, 0,109, 1, 2, 0,110, 1, 2, 0,111, 1, + 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, + 7, 0,120, 1, 7, 0,121, 1, 7, 0,122, 1, 7, 0,123, 1, 2, 0,124, 1, 0, 0,125, 1, 28, 0, 77, 0, 43, 0,126, 1, + 2, 0,127, 1, 0, 0,128, 1, 22, 0,146, 0, 56, 0, 18, 0, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, + 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1, 2, 0,139, 1, 2, 0,140, 1, + 2, 0,141, 1, 2, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 57, 0,125, 0, 19, 0, 29, 0, + 31, 0, 72, 0, 2, 0,147, 1, 2, 0, 17, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,148, 1, 7, 0,149, 1, + 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, 7, 0,156, 1, 7, 0,157, 1, + 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, + 7, 0,166, 1, 7, 0,167, 1, 56, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, + 7, 0,174, 1, 7, 0,175, 1, 2, 0,176, 1, 2, 0,177, 1, 2, 0,178, 1, 0, 0,179, 1, 0, 0,180, 1, 7, 0,181, 1, + 7, 0,182, 1, 2, 0,183, 1, 2, 0,184, 1, 7, 0,185, 1, 7, 0,186, 1, 7, 0,187, 1, 7, 0,188, 1, 2, 0,189, 1, + 2, 0,190, 1, 4, 0, 73, 1, 4, 0,191, 1, 2, 0,192, 1, 2, 0,193, 1, 2, 0,194, 1, 2, 0,195, 1, 7, 0,196, 1, + 7, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1, 7, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, + 7, 0,205, 1, 0, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, 4, 0,210, 1, 0, 0,211, 1, 0, 0,108, 1, + 0, 0,212, 1, 0, 0, 67, 1, 2, 0,213, 1, 2, 0,214, 1, 2, 0,127, 1, 2, 0,215, 1, 2, 0,216, 1, 2, 0,217, 1, + 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 7, 0,222, 1, 2, 0,156, 0, 2, 0,157, 0, 47, 0,223, 1, + 47, 0,224, 1, 0, 0,225, 1, 0, 0,226, 1, 0, 0,227, 1, 0, 0,228, 1, 2, 0,229, 1, 2, 0,230, 1, 7, 0,231, 1, + 7, 0,232, 1, 43, 0,126, 1, 53, 0, 62, 1, 28, 0, 77, 0, 58, 0,233, 1, 22, 0,146, 0, 7, 0,234, 1, 7, 0,235, 1, + 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 2, 0,239, 1, 2, 0, 67, 0, 7, 0,240, 1, 7, 0,241, 1, 7, 0,242, 1, + 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 7, 0,247, 1, 7, 0,248, 1, 2, 0,249, 1, 2, 0,250, 1, + 4, 0,251, 1, 2, 0,252, 1, 2, 0,253, 1, 12, 0,254, 1, 59, 0, 4, 0, 19, 0, 29, 0, 0, 0,255, 1, 60, 0, 2, 0, + 35, 0,145, 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, 62, 0, 0, 2, 4, 0, 1, 2, 4, 0, 2, 2, 4, 0, 3, 2, + 4, 0, 4, 2, 4, 0, 5, 2, 4, 0, 6, 2, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 7, 2, 2, 0, 8, 2, 7, 0, 5, 0, + 7, 0, 6, 0, 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 11, 2, 7, 0, 12, 2, 7, 0, 13, 2, 7, 0, 14, 2, 7, 0, 15, 2, + 7, 0, 16, 2, 7, 0, 21, 0, 7, 0, 17, 2, 7, 0, 18, 2, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0, 0, 2, + 12, 0, 19, 2, 12, 0, 20, 2, 12, 0, 21, 2, 28, 0, 77, 0, 57, 0, 22, 2, 0, 0, 17, 0, 0, 0, 23, 2, 2, 0, 24, 2, + 2, 0,170, 0, 2, 0, 35, 0, 7, 0, 68, 1, 7, 0,168, 0, 7, 0, 69, 1, 7, 0, 25, 2, 7, 0, 26, 2, 7, 0, 27, 2, + 61, 0, 28, 2, 27, 0, 11, 0, 7, 0, 29, 2, 7, 0, 30, 2, 7, 0, 31, 2, 7, 0,249, 0, 2, 0, 52, 0, 0, 0, 32, 2, + 0, 0, 33, 2, 0, 0, 34, 2, 0, 0, 35, 2, 0, 0, 36, 2, 0, 0, 37, 2, 26, 0, 7, 0, 7, 0, 38, 2, 7, 0, 30, 2, + 7, 0, 31, 2, 2, 0, 34, 2, 2, 0, 37, 2, 7, 0,249, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, + 2, 0, 15, 0, 2, 0, 39, 2, 2, 0, 37, 2, 2, 0, 17, 0, 2, 0, 40, 2, 2, 0, 41, 2, 2, 0, 42, 2, 2, 0, 43, 2, + 2, 0, 44, 2, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 47, 2, 7, 0, 48, 2, 7, 0, 49, 2, 26, 0, 46, 0, 27, 0, 47, 0, + 2, 0, 50, 2, 2, 0, 51, 2, 4, 0, 52, 2, 65, 0, 5, 0, 2, 0, 53, 2, 2, 0, 39, 2, 0, 0, 17, 0, 0, 0, 35, 0, + 2, 0, 67, 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 54, 2, 7, 0, 55, 2, 67, 0, 4, 0, 12, 0, 56, 2, + 68, 0, 57, 2, 4, 0, 58, 2, 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0, 0, 2, 12, 0, 59, 2, + 12, 0, 20, 2, 67, 0, 60, 2, 24, 0, 61, 2, 24, 0, 62, 2, 24, 0, 63, 2, 28, 0, 77, 0, 70, 0, 64, 2, 30, 0, 65, 2, + 57, 0, 22, 2, 12, 0, 66, 2, 7, 0, 68, 1, 7, 0,168, 0, 7, 0, 69, 1, 2, 0,170, 0, 2, 0, 87, 0, 2, 0, 67, 2, + 2, 0, 68, 2, 7, 0, 69, 2, 7, 0, 70, 2, 4, 0, 71, 2, 2, 0, 35, 0, 2, 0, 24, 2, 2, 0, 17, 0, 2, 0, 72, 2, + 7, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 2, 0, 42, 2, 2, 0, 43, 2, 2, 0, 76, 2, 2, 0, 77, 2, 4, 0, 78, 2, + 9, 0, 79, 2, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, 2, 0, 80, 2, 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, + 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 0, 0, 91, 2, + 71, 0, 92, 2, 72, 0, 93, 2, 0, 0, 94, 2, 59, 0, 95, 2, 59, 0, 96, 2, 59, 0, 97, 2, 59, 0, 98, 2, 4, 0, 99, 2, + 7, 0,100, 2, 4, 0,101, 2, 4, 0,102, 2, 66, 0,103, 2, 4, 0,104, 2, 4, 0,105, 2, 65, 0,106, 2, 65, 0,107, 2, + 73, 0, 39, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0, 0, 2, 28, 0, 77, 0, 30, 0, 65, 2, 57, 0, 22, 2, 74, 0,108, 2, + 75, 0,109, 2, 76, 0,110, 2, 77, 0,111, 2, 78, 0,112, 2, 79, 0,113, 2, 80, 0,114, 2, 81, 0,115, 2, 73, 0,116, 2, + 82, 0,117, 2, 83, 0,118, 2, 84, 0,119, 2, 84, 0,120, 2, 84, 0,121, 2, 4, 0, 51, 0, 4, 0,122, 2, 4, 0,123, 2, + 4, 0,124, 2, 4, 0,125, 2, 7, 0, 68, 1, 7, 0,168, 0, 7, 0, 69, 1, 2, 0,170, 0, 2, 0, 67, 2, 2, 0,126, 2, + 2, 0, 17, 0, 2, 0,127, 2, 2, 0,128, 2, 0, 0,129, 2, 0, 0,130, 2, 2, 0, 24, 2, 85, 0,131, 2, 86, 0,132, 2, + 76, 0, 8, 0, 9, 0,133, 2, 7, 0,134, 2, 4, 0,135, 2, 0, 0, 17, 0, 0, 0,136, 2, 2, 0, 73, 1, 2, 0,137, 2, + 2, 0,138, 2, 74, 0, 7, 0, 4, 0,139, 2, 4, 0,140, 2, 4, 0,141, 2, 4, 0,142, 2, 2, 0, 39, 2, 0, 0,143, 2, + 0, 0, 17, 0, 78, 0, 5, 0, 4, 0,139, 2, 4, 0,140, 2, 0, 0,144, 2, 0, 0,145, 2, 2, 0, 17, 0, 87, 0, 2, 0, + 4, 0,146, 2, 7, 0, 31, 2, 79, 0, 3, 0, 87, 0,147, 2, 4, 0,148, 2, 4, 0, 17, 0, 77, 0, 4, 0, 7, 0,149, 2, + 2, 0,150, 2, 0, 0, 17, 0, 0, 0,145, 2, 80, 0, 4, 0, 0, 0,234, 0, 0, 0,178, 0, 0, 0,179, 0, 0, 0,180, 0, + 88, 0, 6, 0, 39, 0,133, 2, 0, 0, 17, 0, 0, 0,136, 2, 2, 0, 73, 1, 2, 0,137, 2, 2, 0,138, 2, 89, 0, 1, 0, + 7, 0,151, 2, 90, 0, 5, 0, 0, 0,234, 0, 0, 0,178, 0, 0, 0,179, 0, 0, 0,180, 0, 4, 0, 35, 0, 81, 0, 1, 0, + 7, 0,152, 2, 82, 0, 2, 0, 4, 0,253, 1, 4, 0, 15, 0, 75, 0, 7, 0, 7, 0,134, 2, 39, 0,133, 2, 0, 0, 17, 0, + 0, 0,136, 2, 2, 0, 73, 1, 2, 0,137, 2, 2, 0,138, 2, 91, 0, 1, 0, 7, 0,153, 2, 92, 0, 1, 0, 4, 0,154, 2, + 93, 0, 1, 0, 0, 0,155, 2, 94, 0, 1, 0, 7, 0,134, 2, 95, 0, 3, 0, 4, 0,156, 2, 0, 0, 90, 0, 7, 0,157, 2, + 96, 0, 4, 0, 7, 0,234, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 97, 0, 1, 0, 96, 0,135, 2, 98, 0, 5, 0, + 4, 0,158, 2, 4, 0,159, 2, 0, 0, 17, 0, 0, 0, 39, 2, 0, 0,160, 2, 99, 0, 2, 0, 4, 0,161, 2, 4, 0,159, 2, +100, 0, 10, 0,100, 0, 0, 0,100, 0, 1, 0, 98, 0,162, 2, 97, 0,163, 2, 99, 0,164, 2, 4, 0, 51, 0, 4, 0,123, 2, + 4, 0,122, 2, 4, 0, 35, 0, 77, 0,165, 2, 85, 0, 14, 0, 12, 0,166, 2, 77, 0,165, 2, 0, 0,167, 2, 0, 0,168, 2, + 0, 0,169, 2, 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0,173, 2, 0, 0, 17, 0, 84, 0,119, 2, 84, 0,121, 2, + 2, 0,174, 2, 0, 0,175, 2, 86, 0, 8, 0, 4, 0,176, 2, 4, 0,177, 2, 74, 0,178, 2, 78, 0,179, 2, 4, 0,123, 2, + 4, 0,122, 2, 4, 0, 51, 0, 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 0, 73, 1, + 4, 0,180, 2, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,117, 0, 0, 0,181, 2,102, 0, 6, 0,101, 0,182, 2, 44, 0,183, 2, + 24, 0,184, 2, 0, 0,185, 2, 4, 0,186, 2, 4, 0,187, 2,103, 0, 7, 0,101, 0,182, 2, 2, 0,188, 2, 2, 0,166, 2, + 2, 0,189, 2, 2, 0, 88, 0, 9, 0,190, 2, 9, 0,191, 2,104, 0, 3, 0,101, 0,182, 2, 24, 0,160, 0, 0, 0, 18, 0, +105, 0, 5, 0,101, 0,182, 2, 24, 0,160, 0, 0, 0, 18, 0, 2, 0,192, 2, 0, 0,193, 2,106, 0, 5, 0,101, 0,182, 2, + 7, 0, 85, 0, 7, 0,194, 2, 4, 0,195, 2, 4, 0,196, 2,107, 0, 5, 0,101, 0,182, 2, 24, 0,197, 2, 0, 0, 69, 0, + 4, 0, 73, 1, 4, 0, 17, 0,108, 0, 13, 0,101, 0,182, 2, 24, 0,198, 2, 24, 0,199, 2, 24, 0,200, 2, 24, 0,201, 2, + 7, 0,202, 2, 7, 0,203, 2, 7, 0,194, 2, 7, 0,204, 2, 4, 0,205, 2, 4, 0,206, 2, 4, 0, 88, 0, 4, 0,207, 2, +109, 0, 5, 0,101, 0,182, 2, 2, 0,208, 2, 2, 0, 17, 0, 7, 0,209, 2, 24, 0,210, 2,110, 0, 3, 0,101, 0,182, 2, + 7, 0,211, 2, 4, 0, 88, 0,111, 0, 10, 0,101, 0,182, 2, 7, 0,212, 2, 4, 0,213, 2, 4, 0, 35, 0, 2, 0, 88, 0, + 2, 0,214, 2, 2, 0,215, 2, 2, 0,216, 2, 7, 0,217, 2, 0, 0,218, 2,112, 0, 3, 0,101, 0,182, 2, 7, 0, 35, 0, + 4, 0, 15, 0,113, 0, 6, 0,101, 0,182, 2,114, 0,219, 2,115, 0,220, 2,116, 0,221, 2, 7, 0,222, 2, 4, 0, 15, 0, +117, 0, 11, 0,101, 0,182, 2, 44, 0,183, 2, 24, 0,184, 2, 0, 0,185, 2, 4, 0,186, 2, 4, 0,187, 2, 4, 0,223, 2, + 7, 0,224, 2, 4, 0,225, 2, 0, 0,218, 2, 7, 0,226, 2,118, 0, 12, 0,101, 0,182, 2, 24, 0,227, 2, 39, 0,228, 2, + 4, 0, 88, 0, 4, 0,229, 2, 7, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 7, 0,233, 2, 0, 0,185, 2, 4, 0,186, 2, + 4, 0, 35, 0,119, 0, 3, 0,101, 0,182, 2, 7, 0,234, 2, 4, 0,235, 2,120, 0, 5, 0,101, 0,182, 2, 7, 0,236, 2, + 0, 0,218, 2, 2, 0, 17, 0, 2, 0,237, 2,121, 0, 8, 0,101, 0,182, 2, 24, 0,160, 0, 7, 0,236, 2, 7, 0,249, 0, + 7, 0,104, 0, 0, 0,218, 2, 2, 0, 17, 0, 2, 0, 15, 0,122, 0, 21, 0,101, 0,182, 2, 24, 0,238, 2, 0, 0,218, 2, + 44, 0,183, 2, 24, 0,184, 2, 2, 0, 17, 0, 2, 0, 35, 0, 7, 0,239, 2, 7, 0,240, 2, 7, 0,241, 2, 7, 0, 73, 2, + 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 7, 0,245, 2, 4, 0,187, 2, 4, 0,186, 2, 0, 0,185, 2, 7, 0,246, 2, + 7, 0,247, 2, 7, 0, 87, 0,123, 0, 7, 0,101, 0,182, 2, 2, 0,248, 2, 2, 0,249, 2, 4, 0, 67, 0, 24, 0,160, 0, + 7, 0,250, 2, 0, 0,218, 2,124, 0, 10, 0,101, 0,182, 2, 24, 0,160, 0, 0, 0,251, 2, 7, 0,252, 2, 7, 0,253, 2, + 7, 0,245, 2, 4, 0,254, 2, 4, 0,255, 2, 7, 0, 0, 3, 0, 0, 18, 0,125, 0, 1, 0,101, 0,182, 2,126, 0, 7, 0, +101, 0,182, 2, 38, 0,117, 0,127, 0, 1, 3,128, 0, 2, 3,129, 0, 3, 3,130, 0, 4, 3, 12, 0, 5, 3,131, 0, 13, 0, +101, 0,182, 2, 77, 0, 6, 3, 77, 0, 7, 3, 77, 0, 8, 3, 77, 0, 9, 3, 77, 0, 10, 3, 77, 0, 11, 3, 74, 0, 12, 3, + 4, 0, 13, 3, 4, 0, 14, 3, 7, 0, 15, 3, 7, 0, 16, 3,132, 0, 17, 3,133, 0, 7, 0,101, 0,182, 2, 77, 0, 6, 3, + 77, 0, 18, 3,134, 0, 19, 3,135, 0, 17, 3, 4, 0, 20, 3, 4, 0, 13, 3,136, 0, 4, 0,101, 0,182, 2, 24, 0,160, 0, + 4, 0, 21, 3, 4, 0, 35, 0,137, 0, 2, 0, 4, 0, 22, 3, 7, 0, 31, 2,138, 0, 2, 0, 4, 0,120, 0, 4, 0, 23, 3, +139, 0, 24, 0,101, 0,182, 2, 24, 0,160, 0, 0, 0,218, 2, 2, 0, 24, 3, 2, 0, 17, 0, 2, 0, 73, 1, 2, 0, 35, 0, +137, 0, 25, 3, 4, 0, 26, 3, 7, 0, 27, 3, 4, 0, 51, 0, 4, 0, 28, 3,138, 0, 29, 3,137, 0, 30, 3, 4, 0, 31, 3, + 4, 0, 32, 3, 4, 0, 33, 3, 4, 0, 23, 3, 7, 0, 34, 3, 7, 0, 35, 3, 7, 0, 36, 3, 7, 0, 37, 3, 7, 0, 38, 3, + 9, 0, 39, 3,140, 0, 8, 0,101, 0,182, 2,141, 0, 40, 3,134, 0, 19, 3, 4, 0, 41, 3, 4, 0, 42, 3, 4, 0, 43, 3, + 2, 0, 17, 0, 2, 0, 54, 0,142, 0, 8, 0,101, 0,182, 2, 24, 0, 42, 0, 2, 0,253, 0, 2, 0, 17, 0, 2, 0,208, 2, + 2, 0, 54, 0, 7, 0, 44, 3, 7, 0, 45, 3,143, 0, 6, 0,101, 0,182, 2, 4, 0, 46, 3, 2, 0, 17, 0, 2, 0, 47, 3, + 7, 0, 48, 3, 0, 0,162, 0,144, 0, 8, 0,101, 0,182, 2, 0, 0, 49, 3, 0, 0, 50, 3, 0, 0,172, 2, 0, 0, 51, 3, + 0, 0, 52, 3, 0, 0, 88, 0, 0, 0,160, 2,145, 0, 3, 0,101, 0,182, 2,146, 0, 53, 3,130, 0, 4, 3,147, 0, 10, 0, +101, 0,182, 2, 24, 0, 54, 3, 24, 0, 55, 3, 0, 0, 56, 3, 7, 0, 57, 3, 2, 0, 58, 3, 2, 0, 59, 3, 0, 0, 60, 3, + 0, 0, 61, 3, 0, 0,193, 2,148, 0, 9, 0,101, 0,182, 2, 24, 0, 62, 3, 0, 0, 56, 3, 7, 0, 63, 3, 7, 0, 64, 3, + 0, 0, 73, 1, 0, 0,208, 2, 0, 0, 65, 3, 0, 0, 35, 0,149, 0, 1, 0,101, 0,182, 2,150, 0, 11, 0,101, 0,182, 2, + 0, 0,218, 2, 7, 0,120, 0, 7, 0, 66, 3, 7, 0, 67, 3, 7, 0, 68, 3, 7, 0, 69, 3, 4, 0, 17, 0, 2, 0, 70, 3, + 2, 0, 71, 3, 4, 0, 35, 0,151, 0, 9, 0,101, 0,182, 2, 24, 0, 72, 3, 4, 0, 73, 3, 4, 0, 74, 3, 4, 0, 75, 3, + 7, 0, 76, 3, 7, 0, 77, 3, 2, 0,208, 2, 2, 0, 17, 0,152, 0, 16, 0,101, 0,182, 2, 44, 0,183, 2, 24, 0,184, 2, + 0, 0,185, 2, 4, 0,186, 2, 4, 0,187, 2, 4, 0,223, 2, 7, 0,224, 2, 24, 0, 78, 3, 24, 0, 79, 3, 51, 0, 86, 1, + 0, 0,218, 2, 7, 0, 80, 3, 0, 0, 17, 0, 0, 0,247, 0, 0, 0,160, 2,153, 0, 3, 0,154, 0, 81, 3, 4, 0, 58, 2, + 0, 0, 90, 0,154, 0, 29, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 40, 2, 2, 0, 41, 2, 2, 0, 82, 3, 2, 0, 17, 0, + 2, 0, 83, 3, 2, 0, 84, 3, 2, 0, 85, 3, 2, 0, 67, 0, 0, 0, 86, 3, 0, 0, 87, 3, 0, 0, 88, 3, 0, 0,230, 1, + 4, 0, 35, 0, 7, 0, 89, 3, 7, 0, 90, 3, 7, 0, 91, 3, 7, 0, 92, 3, 7, 0, 93, 3, 7, 0, 94, 3, 26, 0, 95, 3, + 28, 0, 77, 0, 30, 0, 65, 2, 79, 0,113, 2, 0, 0, 69, 0, 7, 0, 96, 3, 7, 0, 97, 3,153, 0, 98, 3,155, 0, 3, 0, +155, 0, 0, 0,155, 0, 1, 0, 0, 0, 18, 0, 62, 0, 3, 0, 7, 0, 99, 3, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,129, 0, + 19, 0, 29, 0, 31, 0, 72, 0,156, 0,100, 3, 2, 0, 15, 0, 2, 0,101, 3, 4, 0,102, 3, 4, 0,103, 3, 4, 0,104, 3, + 0, 0,105, 3, 24, 0, 36, 0, 24, 0,106, 3, 24, 0,107, 3, 24, 0,108, 3, 24, 0,109, 3, 28, 0, 77, 0, 70, 0, 64, 2, + 62, 0, 0, 2,157, 0,110, 3,157, 0,111, 3,158, 0,112, 3, 9, 0, 2, 0,159, 0,113, 3,160, 0,114, 3,161, 0,115, 3, + 12, 0,116, 3, 12, 0,117, 3, 12, 0, 20, 2, 12, 0,118, 3, 12, 0,119, 3, 4, 0, 73, 1, 4, 0,120, 3, 57, 0, 22, 2, + 0, 0,121, 3, 4, 0, 24, 2, 4, 0,122, 3, 7, 0, 68, 1, 7, 0,123, 3, 7, 0,124, 3, 7, 0,168, 0, 7, 0,125, 3, + 7, 0, 69, 1, 7, 0,126, 3, 7, 0, 10, 2, 7, 0,127, 3, 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, + 7, 0,132, 3, 7, 0,252, 2, 7, 0,133, 3, 7, 0,238, 0, 7, 0,134, 3, 4, 0,135, 3, 2, 0, 17, 0, 2, 0,136, 3, + 2, 0,137, 3, 2, 0,138, 3, 2, 0,139, 3, 2, 0,140, 3, 2, 0,141, 3, 2, 0,142, 3, 2, 0,143, 3, 2, 0,144, 3, + 2, 0,145, 3, 2, 0,146, 3, 4, 0,147, 3, 4, 0,148, 3, 4, 0,149, 3, 4, 0,150, 3, 7, 0,151, 3, 7, 0,100, 2, + 7, 0,152, 3, 7, 0,153, 3, 7, 0,154, 3, 7, 0,155, 3, 7, 0,156, 3, 7, 0,213, 0, 7, 0,157, 3, 7, 0,158, 3, + 7, 0,159, 3, 7, 0,160, 3, 2, 0,161, 3, 0, 0,162, 3, 0, 0,106, 0, 0, 0,163, 3, 0, 0,164, 3, 7, 0,165, 3, + 7, 0,166, 3, 12, 0,167, 3, 12, 0,168, 3, 12, 0,169, 3, 12, 0,170, 3, 7, 0,171, 3, 2, 0,253, 1, 2, 0,172, 3, + 7, 0,135, 2, 4, 0,173, 3, 4, 0,174, 3,162, 0,175, 3, 2, 0,176, 3, 2, 0,245, 0, 7, 0,177, 3, 12, 0,178, 3, + 12, 0,179, 3, 12, 0,180, 3, 12, 0,181, 3,163, 0, 65, 1,164, 0,182, 3, 58, 0,183, 3, 2, 0,184, 3, 2, 0,185, 3, + 2, 0, 58, 2, 2, 0,186, 3, 7, 0,126, 2, 2, 0,187, 3, 2, 0,188, 3,146, 0,189, 3,134, 0,190, 3,134, 0,191, 3, + 4, 0,192, 3, 4, 0,193, 3, 4, 0,194, 3, 4, 0,195, 3, 12, 0,196, 3, 12, 0,197, 3, 12, 0,198, 3, 7, 0,199, 3, + 0, 0,200, 3,165, 0, 14, 0,165, 0, 0, 0,165, 0, 1, 0, 24, 0, 36, 0, 7, 0,252, 2, 7, 0, 70, 1, 7, 0,253, 2, + 7, 0,245, 2, 0, 0, 18, 0, 4, 0,254, 2, 4, 0,255, 2, 4, 0,201, 3, 2, 0, 15, 0, 2, 0,202, 3, 7, 0, 0, 3, +166, 0, 12, 0,166, 0, 0, 0,166, 0, 1, 0, 24, 0, 42, 0, 4, 0,203, 3, 4, 0,253, 1, 4, 0,204, 3, 4, 0, 15, 0, + 4, 0,205, 3, 7, 0, 70, 1, 7, 0,206, 3, 7, 0,207, 3, 7, 0,151, 2,163, 0, 40, 0, 4, 0, 17, 0, 2, 0,208, 3, + 2, 0,209, 3, 2, 0,245, 2, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, 2, 0,214, 3, 7, 0,215, 3, + 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, 7, 0,222, 3, 7, 0,223, 3, + 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, + 7, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 7, 0,237, 3, 7, 0,238, 3, 7, 0,239, 3, + 7, 0,240, 3, 7, 0,241, 3, 44, 0,161, 0,167, 0,242, 3, 7, 0,243, 3, 4, 0,196, 2,168, 0, 5, 0, 58, 0,233, 1, + 7, 0,244, 3, 7, 0,245, 3, 2, 0, 17, 0, 2, 0,246, 3,169, 0, 5, 0,169, 0, 0, 0,169, 0, 1, 0, 4, 0, 15, 0, + 4, 0,247, 3, 9, 0, 2, 0,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,248, 3, 4, 0,249, 3, 4, 0,250, 3, + 4, 0, 17, 0, 9, 0,251, 3, 9, 0,252, 3, 12, 0,253, 3,130, 0, 21, 0,130, 0, 0, 0,130, 0, 1, 0, 4, 0, 17, 0, + 4, 0,254, 3, 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0, 2, 4, 4, 0, 3, 4, 4, 0,249, 3, 4, 0,253, 1, + 2, 0, 4, 4, 2, 0, 54, 0, 0, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 0, 0, 8, 4, 0, 0, 9, 4, 12, 0, 10, 4, +171, 0, 11, 4, 9, 0, 12, 4,172, 0, 1, 0, 7, 0, 38, 2,162, 0, 30, 0, 4, 0, 17, 0, 7, 0, 13, 4, 7, 0, 14, 4, + 7, 0, 15, 4, 4, 0, 16, 4, 4, 0, 17, 4, 4, 0, 18, 4, 4, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, + 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, + 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 4, 0, 38, 4, + 4, 0, 39, 4, 7, 0, 40, 4, 7, 0,157, 3,164, 0, 54, 0, 4, 0,249, 3, 4, 0, 41, 4,173, 0, 42, 4,174, 0, 43, 4, + 0, 0, 35, 0, 0, 0, 44, 4, 2, 0, 45, 4, 7, 0, 46, 4, 0, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, + 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 7, 0, 56, 4, 2, 0, 57, 4, 0, 0, 58, 4, + 2, 0, 59, 4, 7, 0, 60, 4, 7, 0, 61, 4, 0, 0, 62, 4, 4, 0,121, 0, 4, 0, 63, 4, 4, 0, 64, 4, 2, 0, 65, 4, + 2, 0, 66, 4,172, 0, 67, 4, 4, 0, 68, 4, 4, 0, 79, 0, 7, 0, 69, 4, 7, 0, 70, 4, 7, 0, 71, 4, 7, 0, 72, 4, + 2, 0, 73, 4, 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 2, 0, 77, 4, 2, 0, 78, 4, 2, 0, 79, 4, 2, 0, 80, 4, +175, 0, 81, 4, 7, 0, 82, 4, 7, 0, 83, 4,130, 0, 84, 4, 12, 0, 5, 3,168, 0, 85, 4, 7, 0, 86, 4, 7, 0, 87, 4, + 7, 0, 88, 4, 0, 0, 89, 4,176, 0, 1, 0, 7, 0, 90, 4,146, 0, 50, 0,145, 0, 91, 4, 2, 0, 15, 0, 2, 0, 92, 4, + 2, 0, 93, 4, 2, 0, 94, 4, 7, 0, 95, 4, 2, 0, 96, 4, 2, 0, 97, 4, 7, 0, 98, 4, 2, 0, 99, 4, 2, 0,100, 4, + 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 4, 0,104, 4, 4, 0,105, 4, 7, 0,106, 4, 4, 0,107, 4, 7, 0,108, 4, + 7, 0,109, 4, 7, 0,110, 4, 73, 0,111, 4, 73, 0,112, 4, 0, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 28, 0, 77, 0, + 2, 0,116, 4, 0, 0,117, 4, 0, 0,118, 4, 7, 0,119, 4, 4, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 4, 0,123, 4, + 4, 0, 17, 0, 7, 0,124, 4, 7, 0,125, 4, 7, 0,126, 4,176, 0,127, 4, 4, 0, 51, 0, 7, 0,128, 4, 7, 0,129, 4, + 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, 4, 0,135, 4, 4, 0, 35, 0,177, 0, 76, 0, + 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,171, 0, 2, 0, 74, 1, 2, 0,108, 1, 2, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, + 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,154, 1, 7, 0,156, 1, 7, 0,155, 1, 7, 0, 67, 0, + 4, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, + 2, 0,151, 4, 2, 0, 73, 1, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4, 2, 0,157, 4, + 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 7, 0,163, 4, 7, 0,164, 4, 7, 0,165, 4, + 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4, 2, 0,172, 4, 2, 0,173, 4, + 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4, 2, 0,178, 4, 2, 0,179, 4, 2, 0,180, 4, 2, 0,181, 4, + 7, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 7, 0,186, 4, 7, 0,187, 4, 7, 0,188, 4, 2, 0,189, 4, + 2, 0,190, 4, 2, 0,191, 4, 2, 0,192, 4, 2, 0,193, 4, 2, 0, 17, 0, 7, 0,194, 4, 7, 0,195, 4, 28, 0, 77, 0, + 43, 0,126, 1, 2, 0,127, 1, 2, 0,196, 4, 22, 0,146, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, 4, 0,135, 3, + 4, 0,197, 4, 4, 0, 17, 0, 2, 0,198, 4, 2, 0,199, 4, 24, 0,160, 0,179, 0, 13, 0, 9, 0,200, 4, 9, 0,201, 4, + 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, + 4, 0,210, 4, 4, 0, 35, 0, 0, 0,211, 4,180, 0, 5, 0, 9, 0,212, 4, 9, 0,213, 4, 4, 0,214, 4, 4, 0, 67, 0, + 0, 0,215, 4,181, 0, 17, 0, 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, 4, 0,219, 4, 4, 0,220, 4, 4, 0,221, 4, + 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 4, 0,227, 4, 2, 0,228, 4, 2, 0,229, 4, + 4, 0,230, 4, 4, 0,231, 4, 4, 0, 87, 0,182, 0, 17, 0, 4, 0, 15, 0, 4, 0,218, 4, 4, 0,232, 4, 4, 0,233, 4, + 4, 0,234, 4, 4, 0,235, 4, 4, 0,236, 4, 4, 0,237, 4, 7, 0,238, 4, 4, 0,239, 4, 4, 0, 88, 0, 4, 0,240, 4, + 4, 0,241, 4, 4, 0,242, 4, 4, 0,243, 4, 4, 0,244, 4, 18, 0, 28, 0,183, 0, 7, 0, 4, 0,245, 4, 7, 0,246, 4, + 7, 0,247, 4, 7, 0,248, 4, 4, 0,249, 4, 2, 0, 17, 0, 2, 0, 35, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, + 0, 0, 18, 0, 57, 0,250, 4, 58, 0,251, 4, 4, 0,135, 3, 4, 0,252, 4, 4, 0,253, 4, 4, 0, 35, 0, 4, 0,254, 4, + 4, 0,255, 4,185, 0,105, 0,179, 0, 0, 5,180, 0, 1, 5,181, 0, 2, 5,182, 0, 3, 5, 4, 0, 20, 3, 4, 0,121, 0, + 4, 0, 63, 4, 7, 0, 4, 5, 4, 0, 5, 5, 4, 0, 6, 5, 4, 0, 7, 5, 4, 0, 8, 5, 2, 0, 17, 0, 2, 0, 9, 5, + 7, 0, 10, 5, 7, 0, 11, 5, 7, 0, 12, 5, 7, 0, 13, 5, 7, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, 2, 0, 17, 5, + 2, 0, 18, 5, 2, 0,244, 0, 2, 0, 19, 5, 4, 0, 20, 5, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 95, 1, 2, 0,104, 0, + 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0, 29, 5, 2, 0, 30, 5, + 2, 0, 31, 5, 2, 0, 32, 5, 4, 0, 33, 5, 4, 0, 73, 1, 4, 0, 34, 5, 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, + 2, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5, 2, 0, 41, 5, 2, 0, 42, 5, 16, 0, 43, 5, 16, 0, 44, 5, 15, 0, 45, 5, + 12, 0, 46, 5, 2, 0, 47, 5, 2, 0, 48, 5, 7, 0, 49, 5, 7, 0, 50, 5, 7, 0, 51, 5, 7, 0, 52, 5, 4, 0, 53, 5, + 7, 0, 54, 5, 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 2, 0, 58, 5, 2, 0, 59, 5, 2, 0, 60, 5, 2, 0, 61, 5, + 2, 0, 62, 5, 2, 0, 63, 5, 7, 0, 64, 5, 7, 0, 65, 5, 7, 0, 66, 5, 0, 0, 67, 5, 4, 0, 68, 5, 2, 0, 69, 5, + 2, 0,230, 1, 0, 0, 70, 5, 7, 0, 71, 5, 7, 0, 72, 5, 0, 0, 73, 5, 0, 0, 74, 5, 0, 0, 75, 5, 0, 0, 76, 5, + 4, 0, 77, 5, 2, 0, 78, 5, 2, 0, 79, 5, 7, 0, 80, 5, 7, 0, 81, 5, 2, 0, 82, 5, 2, 0, 83, 5, 7, 0, 84, 5, + 2, 0, 85, 5, 2, 0, 86, 5, 4, 0, 87, 5, 2, 0, 88, 5, 2, 0, 89, 5, 2, 0, 90, 5, 2, 0, 91, 5, 7, 0, 92, 5, + 7, 0, 67, 0, 34, 0, 93, 5, 0, 0, 94, 5,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, 0, 0, 18, 0, 2, 0, 95, 5, + 2, 0, 96, 5, 2, 0, 97, 5, 2, 0, 87, 0, 7, 0, 98, 5, 7, 0, 67, 0,187, 0, 7, 0, 2, 0,213, 2, 2, 0, 73, 1, + 2, 0, 77, 3, 2, 0, 99, 5, 7, 0,100, 5, 7, 0, 67, 0, 34, 0,101, 5,188, 0, 5, 0, 7, 0,102, 5, 0, 0, 15, 0, + 0, 0, 87, 0, 0, 0, 67, 0, 0, 0,230, 1,189, 0, 28, 0, 7, 0,149, 4, 7, 0,150, 4, 2, 0, 73, 1, 2, 0, 17, 0, + 2, 0,103, 5, 2, 0,196, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4, 2, 0,157, 4, +188, 0,104, 5, 2, 0, 15, 5, 2, 0, 16, 5, 2, 0, 17, 5, 2, 0, 18, 5, 2, 0,244, 0, 2, 0, 19, 5, 2, 0,105, 5, + 2, 0,106, 5,187, 0,107, 5, 2, 0,108, 5, 2, 0, 21, 5, 2, 0, 67, 0, 2, 0,230, 1, 7, 0,109, 5, 7, 0, 87, 0, +190, 0, 6, 0,190, 0, 0, 0,190, 0, 1, 0, 4, 0,248, 3, 0, 0, 5, 4, 4, 0, 17, 0, 24, 0,110, 5,191, 0, 4, 0, +192, 0,111, 5, 9, 0,112, 5, 0, 0,113, 5, 4, 0, 88, 0,193, 0, 8, 0,191, 0,114, 5, 2, 0, 17, 0, 2, 0, 35, 0, + 2, 0,115, 5, 2, 0,116, 5, 2, 0,117, 5, 4, 0, 87, 0, 9, 0,118, 5,194, 0, 6, 0, 2, 0,104, 0, 2, 0,254, 3, + 2, 0,119, 5, 2, 0,207, 2, 4, 0, 17, 0, 7, 0,224, 2,195, 0, 14, 0, 2, 0, 17, 0, 2, 0,120, 5, 2, 0,121, 5, + 2, 0,122, 5,194, 0,123, 5, 9, 0,118, 5, 7, 0,124, 5, 7, 0, 54, 0, 4, 0,125, 5, 4, 0,126, 5, 4, 0,127, 5, + 4, 0,128, 5, 38, 0,117, 0, 24, 0,160, 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 0,129, 5, 7, 0,130, 5, +197, 0, 14, 0,191, 0,114, 5, 4, 0, 88, 0, 4, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 4, 0,135, 5, + 4, 0,136, 5, 7, 0,137, 5, 7, 0,138, 5, 4, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, 4, 0, 35, 0,198, 0, 7, 0, +191, 0,114, 5, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, 4, 0,142, 5, 79, 0,143, 5, 9, 0,118, 5,199, 0, 82, 0, +198, 0,144, 5,198, 0,145, 5,197, 0,100, 3, 7, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, + 2, 0,254, 3, 2, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, 7, 0,154, 5, 2, 0,155, 5, 2, 0,125, 5, 2, 0,156, 5, + 2, 0,157, 5, 2, 0,158, 5, 2, 0,159, 5, 7, 0,160, 5, 7, 0,161, 5, 7, 0,162, 5, 2, 0,163, 5, 2, 0,164, 5, + 2, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5, 2, 0,168, 5, 2, 0,169, 5, 2, 0,170, 5,193, 0,171, 5,195, 0,172, 5, + 7, 0,173, 5, 7, 0,174, 5, 7, 0,175, 5, 2, 0,176, 5, 2, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 0, 0,180, 5, + 0, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 2, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5, + 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 7, 0,192, 5, 7, 0,193, 5, 7, 0,194, 5, 2, 0,195, 5, 0, 0,196, 5, + 0, 0,197, 5, 0, 0,198, 5, 0, 0,199, 5, 24, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5, 0, 0,203, 5, 0, 0,204, 5, + 0, 0,205, 5, 0, 0,206, 5, 0, 0,207, 5, 0, 0,208, 5, 0, 0,209, 5, 0, 0,210, 5, 2, 0,211, 5, 2, 0,212, 5, + 2, 0,213, 5, 2, 0,214, 5, 0, 0,215, 5, 0, 0,196, 4, 4, 0,216, 5, 2, 0,217, 5, 2, 0, 87, 0, 4, 0,218, 5, + 7, 0,219, 5, 7, 0,220, 5,200, 0, 8, 0, 4, 0,221, 5, 4, 0,222, 5, 4, 0,223, 5, 4, 0,224, 5, 4, 0,225, 5, + 4, 0,226, 5, 4, 0, 51, 0, 4, 0,123, 2,201, 0, 4, 0, 7, 0,227, 5, 0, 0,228, 5, 0, 0,229, 5, 2, 0, 17, 0, +202, 0, 4, 0, 7, 0,230, 5, 4, 0, 17, 0, 4, 0,231, 5, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, + 24, 0,110, 5,177, 0,232, 5, 38, 0,233, 5, 12, 0,234, 5,178, 0,235, 5, 24, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, + 7, 0,239, 5, 7, 0,240, 5, 4, 0,135, 3, 4, 0,241, 5, 4, 0,242, 5, 4, 0,193, 3, 4, 0,243, 5, 2, 0, 17, 0, + 2, 0, 67, 1, 53, 0, 62, 1,203, 0,244, 5,199, 0,245, 5,204, 0,246, 5,185, 0,178, 0,183, 0,247, 5, 12, 0, 98, 0, + 12, 0,248, 5, 9, 0,249, 5, 9, 0,250, 5, 9, 0,251, 5, 9, 0,252, 5,205, 0,253, 5, 2, 0,254, 5, 2, 0,255, 5, + 2, 0,245, 0, 2, 0, 0, 6, 4, 0, 1, 6, 4, 0, 2, 6, 12, 0, 3, 6,188, 0,104, 5,189, 0, 4, 6,201, 0, 5, 6, +159, 0,113, 3,202, 0, 6, 6,206, 0, 11, 0,206, 0, 0, 0,206, 0, 1, 0, 39, 0,236, 0, 37, 0, 61, 1, 7, 0, 88, 2, + 7, 0, 89, 2, 7, 0,104, 0, 7, 0, 7, 6, 2, 0, 8, 6, 2, 0, 17, 0, 7, 0, 67, 0,207, 0, 38, 0, 7, 0, 9, 6, + 7, 0, 10, 6, 7, 0, 11, 6, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, + 7, 0, 80, 1, 7, 0, 18, 6, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, 7, 0,167, 0, 2, 0, 22, 6, 2, 0, 23, 6, + 0, 0, 24, 6, 0, 0,196, 4, 2, 0, 25, 6, 2, 0, 26, 6, 2, 0, 27, 6, 2, 0, 8, 6, 7, 0, 28, 6, 7, 0, 29, 6, + 62, 0, 30, 6,159, 0,113, 3,207, 0, 31, 6,208, 0, 32, 6,209, 0, 33, 6,210, 0, 34, 6,211, 0, 35, 6, 7, 0, 36, 6, + 2, 0, 37, 6, 2, 0, 38, 6, 7, 0, 39, 6, 7, 0, 40, 6, 7, 0, 41, 6,212, 0, 50, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, 7, 0, 17, 6, 7, 0, 80, 1, 7, 0, 87, 0, 4, 0, 46, 6, + 2, 0, 27, 6, 2, 0, 8, 6, 24, 0,110, 5, 24, 0, 47, 6, 12, 0, 48, 6,206, 0, 49, 6,212, 0, 31, 6, 0, 0, 50, 6, + 4, 0,135, 3, 4, 0,241, 5, 2, 0, 51, 6, 2, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 17, 0, 2, 0, 23, 2, + 7, 0,110, 0, 7, 0, 55, 6, 7, 0, 56, 6, 7, 0, 57, 6, 7, 0,167, 0, 7, 0,237, 5, 2, 0, 58, 6, 2, 0, 59, 6, + 2, 0, 60, 6, 0, 0, 61, 6, 0, 0, 62, 6, 0, 0, 63, 6, 0, 0, 64, 6, 0, 0, 65, 6, 12, 0, 66, 6, 12, 0, 67, 6, + 12, 0, 68, 6, 2, 0, 69, 6, 2, 0,136, 2, 2, 0, 70, 6, 0, 0, 71, 6, 0, 0, 72, 6, 9, 0, 73, 6,159, 0,113, 3, +214, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, 0, 15, 0, 74, 6, 15, 0, 75, 6, 15, 0, 76, 6, 7, 0, 77, 6, 7, 0, 78, 6, + 7, 0, 79, 6, 7, 0, 80, 6, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 17, 0, + 2, 0, 86, 6, 2, 0, 87, 6, 2, 0, 88, 6, 2, 0, 89, 6, 2, 0, 90, 6, 2, 0, 54, 6, 7, 0, 91, 6, 4, 0, 92, 6, + 4, 0, 93, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, +215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, 0, 0, 94, 6, + 0, 0,177, 0,216, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, +214, 0, 95, 6,217, 0, 96, 6, 12, 0, 97, 6, 2, 0, 73, 1, 2, 0, 98, 6, 4, 0, 17, 0, 7, 0, 99, 6, 4, 0, 54, 6, +218, 0, 21, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6,208, 0, 32, 6, +214, 0, 95, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0,102, 6, 2, 0,103, 6, 2, 0, 86, 6, 2, 0,104, 6, 2, 0,105, 6, + 0, 0, 17, 0, 0, 0, 35, 0, 9, 0, 64, 2, 4, 0,106, 6, 4, 0,107, 6, 19, 0,108, 6,219, 0, 18, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6,214, 0, 95, 6, 7, 0, 88, 2, 7, 0, 89, 2, + 2, 0,100, 6, 2, 0,109, 6, 2, 0,110, 6, 2, 0,111, 6, 4, 0, 17, 0, 7, 0,112, 6, 4, 0, 8, 6, 4, 0, 35, 0, +159, 0,113, 3,220, 0, 16, 0, 0, 0,113, 6, 0, 0,114, 6, 0, 0,115, 6, 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, + 4, 0,119, 6, 4, 0,120, 6, 4, 0,121, 6, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,122, 6, 2, 0,123, 6, 2, 0,173, 1, + 2, 0,124, 6, 0, 0,125, 6,221, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 4, 0,126, 6, +220, 0,127, 6,222, 0,128, 6, 12, 0,129, 6, 12, 0,130, 6,223, 0,131, 6,211, 0,132, 6,224, 0,133, 6, 2, 0,134, 6, + 2, 0,135, 6, 2, 0,136, 6, 2, 0, 67, 0,225, 0, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, + 7, 0, 44, 6, 2, 0, 45, 6,214, 0, 95, 6, 12, 0,137, 6,226, 0,138, 6, 0, 0,139, 6,227, 0,140, 6, 2, 0, 17, 0, + 2, 0,141, 6, 2, 0,142, 6, 2, 0,143, 6,228, 0, 25, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, + 4, 0, 17, 0, 39, 0,228, 2, 37, 0, 61, 1, 51, 0,144, 6,229, 0,145, 6,230, 0,146, 6,159, 0,113, 3, 7, 0,147, 6, + 7, 0, 88, 2, 7, 0, 89, 2, 7, 0,112, 6, 7, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, 2, 0,151, 6, 2, 0,152, 6, + 2, 0,153, 6, 0, 0,154, 6, 0, 0,155, 6, 0, 0,156, 6, 0, 0, 54, 6,231, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, 2, 0, 98, 6, 2, 0, 17, 0, 4, 0, 35, 0,217, 0, 96, 6, +214, 0, 95, 6,232, 0, 31, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, + 34, 0,157, 6, 4, 0,158, 6, 4, 0,159, 6, 2, 0, 88, 0, 2, 0,160, 6, 2, 0,161, 6, 0, 0,162, 6, 0, 0,163, 6, + 4, 0,164, 6, 4, 0,165, 6, 4, 0,166, 6, 2, 0,167, 6, 2, 0,168, 6, 2, 0,169, 6, 2, 0,170, 6, 7, 0,171, 6, + 15, 0,172, 6, 15, 0,173, 6, 4, 0,174, 6, 4, 0,175, 6, 0, 0,176, 6, 0, 0,177, 6, 2, 0,178, 6, 0, 0,193, 2, + 9, 0,179, 6,233, 0, 10, 0, 19, 0, 29, 0, 9, 0,180, 6, 9, 0,181, 6, 9, 0,182, 6, 9, 0,183, 6, 9, 0,184, 6, + 4, 0, 88, 0, 4, 0,185, 6, 0, 0,186, 6, 0, 0,187, 6,234, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, + 4, 0, 43, 6, 7, 0, 44, 6,233, 0,188, 6, 2, 0, 88, 0, 2, 0,160, 6, 4, 0, 87, 0, 9, 0,189, 6,235, 0, 3, 0, +235, 0, 0, 0,235, 0, 1, 0, 7, 0,190, 6,236, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, + 7, 0, 44, 6,214, 0, 95, 6, 12, 0,191, 6, 4, 0,192, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,193, 6,237, 0, 26, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6,214, 0, 95, 6, 19, 0,194, 6, + 19, 0, 78, 0, 2, 0, 17, 0, 2, 0,160, 6, 7, 0,195, 6, 9, 0,196, 6, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0,112, 6, + 7, 0, 41, 6, 7, 0,197, 6, 7, 0,198, 6, 53, 0, 62, 1, 53, 0,199, 6, 4, 0,200, 6, 2, 0,201, 6, 2, 0,245, 0, + 12, 0,202, 6,159, 0,113, 3,238, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, + 2, 0, 45, 6, 2, 0, 17, 0, 2, 0,144, 3, 4, 0, 35, 0,159, 0,113, 3,239, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6,214, 0, 95, 6,222, 0,128, 6, 0, 0,203, 6, 0, 0,114, 6, + 0, 0,115, 6, 2, 0, 15, 0, 2, 0,204, 6, 2, 0, 17, 0, 2, 0,122, 6, 9, 0,196, 6, 4, 0,119, 6, 4, 0,205, 6, + 4, 0,206, 6, 4, 0,207, 6, 15, 0,208, 6, 15, 0,209, 6, 7, 0,210, 6, 7, 0,211, 6, 7, 0,212, 6, 7, 0,195, 6, + 2, 0,213, 6, 2, 0,235, 0, 2, 0,173, 1, 2, 0,214, 6, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,215, 6, 2, 0,216, 6, + 9, 0,217, 6, 9, 0,218, 6, 9, 0,219, 6, 9, 0,220, 6, 9, 0,221, 6, 2, 0,222, 6, 0, 0,223, 6, 49, 0,224, 6, +240, 0, 7, 0,240, 0, 0, 0,240, 0, 1, 0, 4, 0,225, 6, 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,226, 6, 4, 0, 15, 0, +241, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6, 2, 0, 45, 6, 4, 0,161, 6, + 4, 0, 35, 0, 12, 0,227, 6, 12, 0,228, 6, 0, 0,229, 6, 0, 0,230, 6, 4, 0,231, 6, 4, 0,232, 6,242, 0, 6, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 4, 0, 35, 0, 0, 0,233, 6,243, 0, 15, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, 7, 0, 44, 6,244, 0,234, 6,214, 0, 95, 6,245, 0,235, 6, 2, 0, 73, 1, + 2, 0,236, 6, 2, 0, 88, 2, 2, 0, 89, 2, 2, 0, 17, 0, 2, 0,152, 6, 4, 0, 67, 0,246, 0, 7, 0,246, 0, 0, 0, +246, 0, 1, 0, 0, 0,237, 6, 2, 0,238, 6, 2, 0,239, 6, 2, 0,240, 6, 2, 0, 35, 0,247, 0, 12, 0, 2, 0,239, 6, + 2, 0,241, 6, 2, 0,242, 6, 0, 0,193, 2, 2, 0,243, 6, 2, 0,244, 6, 2, 0,245, 6, 2, 0,246, 6, 2, 0,247, 6, + 2, 0, 86, 6, 7, 0,248, 6, 7, 0,249, 6,248, 0, 18, 0,248, 0, 0, 0,248, 0, 1, 0, 0, 0, 5, 4,247, 0,250, 6, +247, 0,251, 6,247, 0,252, 6,247, 0,253, 6, 7, 0,254, 6, 2, 0,255, 6, 2, 0, 0, 7, 2, 0, 1, 7, 2, 0, 2, 7, + 2, 0, 3, 7, 2, 0, 4, 7, 2, 0, 5, 7, 2, 0, 6, 7, 2, 0, 7, 7, 2, 0, 8, 7,249, 0, 10, 0, 0, 0, 9, 7, + 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 2, 0, 15, 7, 2, 0, 16, 7, 2, 0, 17, 7, + 2, 0, 18, 7,250, 0, 8, 0, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, + 7, 0, 7, 6, 7, 0, 35, 0,251, 0, 18, 0,249, 0, 25, 7,249, 0, 26, 7,249, 0, 27, 7,249, 0, 28, 7,249, 0, 29, 7, +249, 0, 30, 7,249, 0, 31, 7,249, 0, 32, 7,249, 0, 33, 7,249, 0, 34, 7,249, 0, 35, 7,249, 0, 36, 7,249, 0, 37, 7, +249, 0, 38, 7,249, 0, 39, 7,249, 0, 40, 7,250, 0, 41, 7, 0, 0, 42, 7,252, 0, 97, 0, 0, 0, 43, 7, 0, 0, 44, 7, + 0, 0, 13, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, + 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 59, 7, + 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, + 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, 0, 0, 74, 7, 0, 0, 75, 7, + 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, + 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7, 0, 0, 90, 7, 0, 0, 91, 7, + 0, 0, 92, 7, 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, 0, 0, 97, 7, 0, 0, 98, 7, 0, 0, 99, 7, + 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, + 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, 0, 0,114, 7, 0, 0,115, 7, + 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, 0, 0,122, 7, 0, 0,123, 7, + 0, 0,124, 7, 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, 0, 0,129, 7, 0, 0,130, 7, 0, 0,131, 7, + 0, 0,132, 7, 0, 0,133, 7, 0, 0,134, 7, 0, 0,135, 7, 0, 0,136, 7, 0, 0,137, 7, 0, 0,138, 7,253, 0, 5, 0, + 0, 0,139, 7, 0, 0, 67, 7, 0, 0, 69, 7, 2, 0, 17, 0, 2, 0, 35, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0, + 0, 0, 18, 0,251, 0,140, 7,252, 0,141, 7,252, 0,142, 7,252, 0,143, 7,252, 0,144, 7,252, 0,145, 7,252, 0,146, 7, +252, 0,147, 7,252, 0,148, 7,252, 0,149, 7,252, 0,150, 7,252, 0,151, 7,252, 0,152, 7,252, 0,153, 7,252, 0,154, 7, +252, 0,155, 7,252, 0,156, 7,252, 0,157, 7,252, 0,158, 7,253, 0,159, 7, 4, 0,160, 7, 4, 0, 35, 0,255, 0, 3, 0, +255, 0, 0, 0,255, 0, 1, 0, 0, 0,161, 7, 0, 1, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,135, 2, 7, 0,162, 7, + 7, 0, 38, 2, 1, 1, 89, 0, 4, 0, 17, 0, 4, 0,163, 7, 4, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, + 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 4, 0,175, 7, + 2, 0,176, 7, 2, 0,177, 7, 2, 0,178, 7, 2, 0,179, 7, 4, 0,180, 7, 4, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, + 2, 0,184, 7, 2, 0,185, 7, 4, 0,186, 7, 4, 0,187, 7, 4, 0,188, 7, 4, 0,189, 7, 4, 0,190, 7, 4, 0,227, 6, + 4, 0,191, 7, 2, 0,192, 7, 2, 0,193, 7, 2, 0,194, 7, 2, 0,195, 7, 12, 0,196, 7, 12, 0,197, 7, 12, 0,198, 7, + 12, 0,199, 7, 12, 0,200, 7, 0, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7, + 2, 0,207, 7, 2, 0,208, 7, 2, 0,209, 7, 0, 1,210, 7, 2, 0,211, 7, 2, 0,212, 7, 2, 0,213, 7, 2, 0,214, 7, + 2, 0,215, 7, 2, 0,216, 7, 2, 0,217, 7, 2, 0,218, 7, 4, 0,219, 7, 4, 0,220, 7, 2, 0,221, 7, 2, 0,222, 7, + 2, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, 2, 0,228, 7, 2, 0,229, 7, 2, 0,230, 7, + 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 2, 0,236, 7, 2, 0,237, 7, 2, 0,238, 7, + 0, 0,239, 7, 0, 0,240, 7, 7, 0,241, 7, 2, 0,176, 5, 2, 0,177, 5, 2, 0,242, 7, 2, 0,243, 7, 47, 0,244, 7, + 7, 0,245, 7, 4, 0,230, 1, 0, 0,246, 7, 2, 1, 24, 0, 19, 0, 29, 0, 12, 0,247, 7, 12, 0,248, 7, 12, 0,249, 7, + 12, 0, 42, 6, 38, 0,117, 0, 38, 0,250, 7, 4, 0,251, 7, 4, 0, 87, 0, 2, 0,252, 7, 2, 0,253, 7, 2, 0,254, 7, + 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 4, 8, 2, 0, 5, 8, 2, 0, 6, 8, + 2, 0, 35, 0,211, 0, 7, 8, 9, 0, 8, 8, 2, 0, 9, 8, 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1, 10, 8, + 13, 0, 11, 8, 4, 0, 17, 0, 4, 1, 7, 0, 4, 1, 0, 0, 4, 1, 1, 0, 3, 1, 12, 8, 3, 1, 13, 8, 2, 0, 44, 5, + 2, 0, 17, 0, 4, 0, 35, 0, 5, 1, 25, 0, 5, 1, 0, 0, 5, 1, 1, 0, 6, 1, 14, 8, 7, 1,133, 6, 0, 0, 15, 8, + 0, 0, 16, 8, 0, 0, 17, 8, 2, 0, 18, 8, 2, 0, 19, 8, 2, 0, 20, 8, 2, 0, 21, 8, 2, 0, 22, 8, 2, 0, 35, 0, + 2, 0, 17, 0, 2, 0, 23, 8, 2, 0, 24, 8, 2, 0, 25, 8, 4, 0, 26, 8, 5, 1, 27, 8, 9, 0, 28, 8, 4, 0, 29, 8, + 4, 0, 30, 8, 4, 0, 31, 8, 4, 0, 32, 8, 0, 0, 33, 8,244, 0, 22, 0,244, 0, 0, 0,244, 0, 1, 0, 3, 1, 12, 8, + 3, 1, 13, 8, 3, 1, 34, 8, 3, 1, 35, 8, 2, 1, 36, 8, 15, 0, 49, 0, 0, 0, 43, 6, 0, 0, 37, 8, 2, 0, 87, 6, + 2, 0, 88, 6, 2, 0, 38, 8, 2, 0, 35, 0, 2, 0, 0, 8, 2, 0,226, 6, 2, 0, 17, 0, 8, 1, 14, 8, 12, 0, 39, 8, + 12, 0, 42, 6, 12, 0, 40, 8, 12, 0, 41, 8, 9, 1, 24, 0, 9, 1, 0, 0, 9, 1, 1, 0,214, 0, 95, 6, 15, 0, 42, 8, + 15, 0, 43, 8, 2, 0, 87, 6, 2, 0, 88, 6, 2, 0, 44, 8, 2, 0, 45, 8, 2, 0, 46, 8, 2, 0, 17, 0, 7, 0, 84, 2, + 2, 0, 20, 8, 2, 0, 21, 8, 2, 0,255, 7, 2, 0, 47, 8, 2, 0, 4, 8, 2, 0,196, 4, 10, 1, 14, 8, 12, 0, 48, 8, + 12, 0, 49, 8, 12, 0, 40, 8, 0, 0, 50, 8, 9, 0, 51, 8, 11, 1, 14, 0, 0, 0, 52, 8, 2, 0, 53, 8, 2, 0, 54, 8, + 2, 0, 55, 8, 2, 0, 56, 8, 2, 0, 32, 5, 2, 0, 57, 8, 2, 1, 58, 8, 38, 0, 59, 8, 4, 0, 60, 8, 4, 0, 61, 8, + 4, 0, 62, 8, 4, 0, 35, 0, 0, 0, 63, 8, 12, 1, 3, 0, 0, 0, 64, 8, 4, 0, 65, 8, 4, 0, 66, 8, 13, 1, 4, 0, + 4, 0,158, 6, 4, 0, 67, 8, 4, 0,164, 6, 4, 0, 68, 8, 14, 1, 2, 0, 4, 0, 69, 8, 4, 0, 70, 8, 15, 1, 5, 0, + 7, 0, 71, 8, 7, 0, 72, 8, 7, 0, 73, 8, 4, 0, 17, 0, 4, 0, 35, 0, 16, 1, 6, 0, 0, 0, 74, 8, 0, 0,115, 6, + 41, 0,130, 0, 2, 0,104, 0, 2, 0, 31, 5, 4, 0, 35, 0, 17, 1, 14, 0, 17, 1, 0, 0, 17, 1, 1, 0, 4, 0, 54, 0, + 4, 0, 21, 0, 4, 0, 26, 0, 4, 0, 75, 8, 4, 0, 76, 8, 4, 0, 77, 8, 12, 1, 78, 8, 0, 0, 74, 8, 16, 1,107, 3, + 13, 1, 79, 8, 14, 1, 80, 8, 15, 1, 81, 8, 18, 1, 12, 0, 0, 0,255, 1, 9, 0,221, 0, 0, 0,222, 0, 4, 0,225, 0, + 4, 0,233, 0, 9, 0,226, 0, 7, 0,228, 0, 7, 0,229, 0, 9, 0, 82, 8, 9, 0, 83, 8, 9, 0,230, 0, 9, 0,232, 0, + 19, 1, 48, 0, 19, 1, 0, 0, 19, 1, 1, 0, 9, 0, 84, 8, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, + 4, 0, 21, 0, 4, 0, 85, 0, 4, 0, 85, 8, 4, 0, 86, 8, 4, 0, 76, 8, 4, 0, 77, 8, 4, 0, 87, 8, 4, 0,244, 0, + 4, 0, 88, 8, 4, 0, 89, 8, 7, 0, 90, 8, 7, 0, 35, 0, 7, 0, 91, 8, 7, 0, 92, 8, 4, 0,121, 0, 4, 0, 93, 8, + 17, 1, 94, 8, 28, 0, 77, 0, 38, 0,117, 0, 24, 0, 95, 8, 41, 0,130, 0, 7, 0, 96, 8, 7, 0, 97, 8, 18, 1, 63, 1, + 19, 1, 98, 8, 19, 1, 99, 8, 19, 1,100, 8, 12, 0,101, 8,245, 0,235, 6, 9, 0,102, 8, 7, 0, 15, 4, 7, 0,103, 8, + 7, 0,104, 8, 4, 0,105, 8, 4, 0,106, 8, 7, 0,107, 8, 9, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, 4, 0,111, 8, + 7, 0,112, 8, 20, 1, 4, 0, 20, 1, 0, 0, 20, 1, 1, 0, 12, 0,113, 8, 19, 1,114, 8,203, 0, 11, 0, 12, 0,115, 8, + 12, 0,101, 8, 12, 0,116, 8, 19, 1,117, 8, 0, 0,118, 8, 0, 0,119, 8, 4, 0,120, 8, 4, 0,121, 8, 4, 0,122, 8, + 4, 0, 35, 0, 16, 0,123, 8, 21, 1, 4, 0, 7, 0,124, 8, 7, 0, 77, 3, 2, 0,125, 8, 2, 0,126, 8, 22, 1, 6, 0, + 7, 0,127, 8, 7, 0,128, 8, 7, 0,129, 8, 7, 0,130, 8, 4, 0,131, 8, 4, 0,132, 8, 23, 1, 13, 0, 7, 0,133, 8, + 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, 7, 0,140, 8, 7, 0,141, 8, + 7, 0,142, 8, 4, 0,234, 2, 4, 0,143, 8, 4, 0,144, 8, 24, 1, 2, 0, 7, 0,102, 5, 7, 0, 35, 0, 25, 1, 4, 0, + 0, 0,145, 8, 0, 0,146, 8, 7, 0,147, 8, 7, 0,148, 8, 26, 1, 5, 0, 7, 0,149, 8, 7, 0,150, 8, 4, 0, 88, 0, + 4, 0,194, 2, 4, 0,151, 8, 27, 1, 6, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,152, 8, + 2, 0, 54, 0, 28, 1, 8, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,152, 8, 2, 0, 54, 0, + 7, 0, 21, 0, 7, 0,121, 0, 29, 1, 45, 0, 29, 1, 0, 0, 29, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,152, 8, + 2, 0,240, 0, 2, 0, 57, 4, 2, 0,153, 8, 7, 0,154, 8, 7, 0, 86, 0, 7, 0,247, 2, 4, 0,155, 8, 4, 0, 79, 0, + 4, 0,196, 2, 7, 0,156, 8, 7, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 7, 0,160, 8, 7, 0,161, 8, 7, 0,244, 2, + 7, 0, 60, 1, 7, 0,162, 8, 7, 0,163, 8, 7, 0, 35, 0, 7, 0,164, 8, 7, 0,165, 8, 7, 0,166, 8, 2, 0,167, 8, + 2, 0,168, 8, 2, 0,169, 8, 2, 0,170, 8, 2, 0,171, 8, 2, 0,172, 8, 2, 0,173, 8, 2, 0,174, 8, 2, 0, 23, 2, + 2, 0,175, 8, 2, 0, 20, 2, 2, 0,176, 8, 0, 0,177, 8, 0, 0,178, 8, 7, 0,238, 0, 30, 1,179, 8, 58, 0,233, 1, + 31, 1, 16, 0, 31, 1, 0, 0, 31, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,152, 8, 2, 0,240, 0, 7, 0,239, 2, + 7, 0,240, 2, 7, 0,241, 2, 7, 0, 73, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,180, 8, 7, 0,244, 2, 7, 0,246, 2, + 7, 0,247, 2,227, 0, 5, 0, 2, 0, 15, 0, 2, 0,181, 8, 2, 0, 17, 0, 2, 0,182, 8, 19, 0,194, 6,226, 0, 3, 0, + 4, 0, 66, 0, 4, 0,183, 8,227, 0, 2, 0, 32, 1, 7, 0, 32, 1, 0, 0, 32, 1, 1, 0, 0, 0, 18, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 4, 0, 20, 0, 9, 0,184, 8, 33, 1, 5, 0, 0, 0, 18, 0, 7, 0, 80, 1, 7, 0,185, 8, 4, 0,186, 8, + 4, 0, 35, 0, 34, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 0, 35, 1, 4, 0, 0, 0, 18, 0, + 57, 0,187, 8, 7, 0, 80, 1, 7, 0, 35, 0, 36, 1, 6, 0, 2, 0,188, 8, 2, 0,189, 8, 2, 0, 15, 0, 2, 0,190, 8, + 0, 0,191, 8, 0, 0,192, 8, 37, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 0,193, 8, 0, 0,194, 8, + 38, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 39, 1, 4, 0, 2, 0,195, 8, 2, 0,196, 8, 2, 0, 17, 0, + 2, 0, 35, 0, 40, 1, 6, 0, 0, 0, 18, 0, 0, 0,197, 8, 2, 0,198, 8, 2, 0,244, 2, 2, 0, 73, 1, 2, 0, 67, 0, + 41, 1, 5, 0, 0, 0, 18, 0, 7, 0, 77, 3, 7, 0,146, 4, 2, 0, 17, 0, 2, 0,208, 2, 42, 1, 3, 0, 0, 0, 18, 0, + 4, 0,196, 2, 4, 0,195, 8, 43, 1, 7, 0, 0, 0, 18, 0, 7, 0,146, 4, 0, 0,199, 8, 0, 0,200, 8, 2, 0, 73, 1, + 2, 0, 87, 0, 4, 0,201, 8, 44, 1, 4, 0, 0, 0,202, 8, 0, 0,203, 8, 4, 0, 15, 0, 7, 0,212, 2, 45, 1, 3, 0, + 24, 0,204, 8, 0, 0,205, 8, 0, 0,206, 8, 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 2, 0, 15, 0, 2, 0,207, 8, + 2, 0, 17, 0, 2, 0,208, 8, 2, 0,209, 8, 2, 0,210, 8, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, 0, + 47, 1,211, 8, 24, 0, 42, 0, 2, 0,119, 5, 2, 0,103, 8, 2, 0,212, 8, 2, 0, 35, 0, 48, 1, 11, 0, 0, 0, 18, 0, + 0, 0, 15, 0, 0, 0,213, 8, 2, 0, 17, 0, 2, 0,208, 2, 2, 0,214, 8, 4, 0,215, 8, 4, 0,216, 8, 4, 0,217, 8, + 4, 0,218, 8, 4, 0,219, 8, 49, 1, 1, 0, 0, 0,220, 8, 50, 1, 4, 0, 34, 0,157, 6, 0, 0,161, 7, 4, 0, 73, 1, + 4, 0, 17, 0, 47, 1, 18, 0, 47, 1, 0, 0, 47, 1, 1, 0, 47, 1,221, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,222, 8, + 2, 0,210, 8, 2, 0,207, 8, 2, 0,223, 8, 2, 0, 67, 0, 2, 0,230, 1, 0, 0, 18, 0, 9, 0, 2, 0, 51, 1,211, 8, + 46, 1,224, 8, 2, 0, 13, 0, 2, 0,225, 8, 4, 0,226, 8, 52, 1, 3, 0, 4, 0,222, 2, 4, 0, 35, 0, 24, 0, 42, 0, + 53, 1, 15, 0,157, 0,227, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,154, 8, 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,228, 8, + 2, 0,229, 8, 2, 0,230, 8, 2, 0,126, 0, 2, 0,231, 8, 2, 0,232, 8, 2, 0, 35, 0, 7, 0,233, 8, 7, 0,234, 8, + 54, 1, 8, 0, 7, 0,235, 8, 7, 0,236, 8, 7, 0,237, 8, 7, 0,238, 8, 7, 0,239, 8, 7, 0,240, 8, 7, 0,241, 8, + 7, 0,242, 8, 55, 1, 13, 0, 2, 0, 17, 0, 2, 0,236, 6, 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,243, 8, 7, 0, 15, 4, + 7, 0,244, 8,245, 0,235, 6, 54, 1,245, 8, 2, 0, 15, 0, 2, 0, 38, 5, 2, 0, 1, 6, 2, 0,246, 8, 56, 1, 11, 0, + 4, 0,222, 2, 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,247, 8, 0, 0, 18, 0, 7, 0,248, 8, 7, 0,249, 8, + 7, 0,152, 3, 2, 0,250, 8, 2, 0,251, 8, 57, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,117, 0, + 24, 0,110, 5, 58, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,193, 8, 24, 0, 42, 0, 59, 1, 13, 0, + 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,207, 8, 2, 0,153, 3, 7, 0,252, 8, 7, 0,253, 8, 7, 0,196, 4, 7, 0,164, 3, + 7, 0,123, 3, 7, 0,126, 3, 7, 0,254, 8, 7, 0,255, 8, 24, 0, 0, 9, 60, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, + 7, 0,154, 8, 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,228, 8, 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,230, 1, 2, 0, 38, 5, + 61, 1, 8, 0, 24, 0, 42, 0, 7, 0,241, 2, 7, 0, 1, 9, 7, 0, 2, 9, 7, 0,153, 3, 2, 0, 87, 0, 2, 0,208, 2, + 7, 0, 67, 0, 62, 1, 12, 0, 2, 0, 15, 0, 2, 0, 73, 1, 2, 0, 17, 0, 2, 0,244, 2, 2, 0,222, 2, 2, 0, 3, 9, + 4, 0, 35, 0, 7, 0, 4, 9, 7, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9, 0, 0, 8, 9, 63, 1, 9, 0, 2, 0, 17, 0, + 2, 0, 15, 0, 4, 0,154, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0,196, 4, 2, 0, 61, 0, 2, 0, 9, 9, 2, 0, 10, 9, + 64, 1, 7, 0, 4, 0,196, 2, 4, 0, 11, 9, 4, 0, 12, 9, 4, 0, 13, 9, 7, 0, 14, 9, 7, 0, 15, 9, 0, 0,199, 8, + 65, 1, 7, 0, 0, 0, 16, 9, 24, 0, 17, 9, 0, 0,205, 8, 2, 0, 18, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,206, 8, + 66, 1, 6, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,154, 8, 4, 0, 86, 0, 0, 0, 19, 9, 0, 0, 20, 9, 67, 1, 1, 0, + 4, 0, 17, 0, 68, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 21, 9, 7, 0, 22, 9, 34, 0,157, 6, + 69, 1, 4, 0, 0, 0,160, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 70, 1, 2, 0, 4, 0, 15, 0, 4, 0, 76, 6, + 71, 1, 6, 0, 0, 0,202, 8, 0, 0,203, 8, 4, 0, 15, 0, 7, 0, 31, 2, 24, 0, 54, 3, 24, 0, 23, 9, 51, 1, 10, 0, + 51, 1, 0, 0, 51, 1, 1, 0, 51, 1,221, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,207, 8, 2, 0, 24, 9, 0, 0, 18, 0, + 9, 0, 2, 0, 24, 0, 42, 0,245, 0, 16, 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,145, 0, 9, 0,221, 0, 35, 0, 25, 9, + 28, 0, 77, 0, 7, 0, 15, 4, 7, 0, 26, 9, 7, 0,244, 8, 7, 0,235, 8, 7, 0,236, 8, 7, 0, 27, 9, 4, 0, 88, 0, + 4, 0, 35, 0, 9, 0, 28, 9, 9, 0, 29, 9, 72, 1, 6, 0, 72, 1, 0, 0, 72, 1, 1, 0, 24, 0, 42, 0, 9, 0, 30, 9, + 2, 0,245, 0, 0, 0,193, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 31, 9, 4, 0,126, 0, 7, 0, 32, 9, 73, 1, 28, 0, + 73, 1, 0, 0, 73, 1, 1, 0, 18, 0, 33, 9, 73, 1, 36, 0, 12, 0, 34, 9, 0, 0, 18, 0, 7, 0, 35, 9, 7, 0, 36, 9, + 7, 0, 37, 9, 7, 0, 38, 9, 4, 0, 17, 0, 7, 0, 39, 9, 7, 0, 40, 9, 7, 0, 41, 9, 7, 0, 42, 9, 7, 0, 80, 1, + 7, 0, 31, 2, 7, 0, 43, 9, 7, 0,194, 2, 7, 0, 44, 9, 7, 0, 45, 9, 7, 0, 46, 9, 7, 0, 47, 9, 7, 0, 48, 9, + 7, 0,168, 0, 4, 0,126, 0, 2, 0,156, 5, 2, 0, 8, 7, 74, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 49, 9, + 12, 0, 50, 9, 12, 0, 51, 9, 73, 1, 52, 9, 9, 0, 53, 9, 9, 0, 54, 9, 4, 0, 17, 0, 4, 0, 51, 6, 2, 0,248, 2, + 2, 0,106, 6, 4, 0, 55, 9, 4, 0,126, 0, 4, 0, 56, 9, 2, 0, 57, 9, 2, 0, 58, 9, 2, 0, 59, 9, 2, 0, 60, 9, + 4, 0, 61, 9, 4, 0, 62, 9, 4, 0, 63, 9, 4, 0, 64, 9, 4, 0, 65, 9, 4, 0, 66, 9, 75, 1, 2, 0, 7, 0,149, 2, + 4, 0, 17, 0,161, 0, 5, 0, 75, 1, 67, 9, 4, 0,194, 2, 4, 0, 68, 9, 4, 0, 69, 9, 4, 0, 17, 0,160, 0, 16, 0, + 4, 0, 70, 9, 4, 0, 71, 9, 4, 0, 72, 9, 4, 0, 73, 9, 2, 0, 74, 9, 2, 0, 75, 9, 2, 0, 76, 9, 2, 0,245, 0, + 2, 0, 77, 9, 2, 0, 78, 9, 2, 0, 79, 9, 2, 0, 80, 9, 4, 0, 81, 9, 4, 0, 82, 9, 4, 0, 83, 9, 4, 0, 84, 9, + 76, 1, 41, 0, 76, 1, 0, 0, 76, 1, 1, 0, 18, 0, 33, 9, 12, 0,178, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 85, 9, + 2, 0, 86, 9, 2, 0, 87, 9, 2, 0,138, 3, 2, 0, 88, 9, 4, 0, 71, 2, 4, 0, 63, 9, 4, 0, 64, 9, 73, 1, 89, 9, + 76, 1, 36, 0, 76, 1, 90, 9, 12, 0, 91, 9,161, 0,115, 3, 24, 0, 92, 9, 76, 1, 93, 9, 7, 0, 68, 1, 7, 0,168, 0, + 7, 0, 94, 9, 7, 0, 10, 2, 7, 0,128, 3, 7, 0,130, 3, 2, 0,161, 3, 2, 0, 35, 0, 7, 0, 95, 9, 7, 0, 96, 9, + 7, 0,133, 3, 7, 0, 97, 9, 7, 0, 98, 9, 7, 0, 99, 9, 7, 0,100, 9, 7, 0,101, 9, 7, 0,102, 9, 7, 0,103, 9, + 7, 0,104, 9, 7, 0, 64, 2,158, 0, 16, 0, 12, 0,105, 9, 68, 0,106, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0,107, 9, + 4, 0, 87, 0, 7, 0,100, 2, 7, 0,108, 9, 7, 0,109, 9, 12, 0,110, 9, 4, 0,111, 9, 4, 0,112, 9, 9, 0,113, 9, + 9, 0,114, 9,160, 0,114, 3, 0, 0,115, 9, 77, 1, 1, 0, 4, 0,112, 9, 78, 1, 12, 0, 4, 0,112, 9, 7, 0,219, 8, + 2, 0,116, 9, 2, 0,117, 9, 7, 0,118, 9, 7, 0,119, 9, 2, 0,120, 9, 2, 0, 17, 0, 7, 0,121, 9, 7, 0,122, 9, + 7, 0,123, 9, 7, 0,124, 9, 79, 1, 7, 0, 79, 1, 0, 0, 79, 1, 1, 0, 12, 0,125, 9, 4, 0, 17, 0, 4, 0,126, 9, + 0, 0, 5, 4,253, 0,127, 9,157, 0, 9, 0, 19, 0, 29, 0, 12, 0,128, 9, 12, 0,105, 9, 12, 0,129, 9, 12, 0, 98, 0, + 4, 0, 17, 0, 4, 0,130, 9, 4, 0,131, 9, 4, 0, 35, 0,217, 0, 6, 0, 19, 0,132, 9, 12, 0,105, 9, 58, 0,133, 9, + 0, 0,134, 9, 4, 0,135, 9, 4, 0, 17, 0, 80, 1, 13, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 42, 6, 4, 0, 43, 6, + 7, 0, 44, 6, 2, 0, 45, 6,214, 0, 95, 6,157, 0,110, 3,217, 0,136, 9, 0, 0, 73, 1, 0, 0, 98, 6, 2, 0, 17, 0, + 7, 0,137, 9, 81, 1, 8, 0, 81, 1, 0, 0, 81, 1, 1, 0, 79, 1,138, 9, 28, 0, 77, 0, 12, 0,116, 3, 4, 0, 17, 0, + 0, 0, 18, 0, 4, 0,253, 7, 82, 1, 5, 0, 82, 1, 0, 0, 82, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,139, 9, + 83, 1, 14, 0, 83, 1, 0, 0, 83, 1, 1, 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,140, 9, 0, 0,141, 9, + 0, 0,139, 9, 7, 0,142, 9, 7, 0,143, 9, 4, 0, 35, 0, 28, 0, 77, 0, 7, 0,144, 9, 7, 0,145, 9, 84, 1, 9, 0, + 84, 1, 0, 0, 84, 1, 1, 0, 24, 0,146, 9, 0, 0,251, 2, 7, 0,147, 9, 2, 0,148, 9, 2, 0, 17, 0, 2, 0, 15, 0, + 2, 0,149, 9, 85, 1, 7, 0, 34, 0,157, 6, 18, 0, 33, 9, 4, 0, 17, 0, 4, 0,150, 9, 12, 0,151, 9, 24, 0,146, 9, + 0, 0,251, 2, 86, 1, 15, 0, 24, 0,146, 9, 2, 0,152, 9, 2, 0, 17, 0, 2, 0,153, 9, 2, 0,154, 9, 0, 0,251, 2, + 24, 0,155, 9, 0, 0,156, 9, 7, 0,157, 9, 7, 0, 31, 2, 7, 0,158, 9, 7, 0,159, 9, 2, 0, 15, 0, 2, 0, 73, 1, + 7, 0, 80, 1, 87, 1, 6, 0, 24, 0,146, 9, 7, 0, 67, 9, 2, 0,160, 9, 2, 0,161, 9, 2, 0, 17, 0, 2, 0,162, 9, + 88, 1, 6, 0, 24, 0,146, 9, 4, 0,163, 9, 4, 0,164, 9, 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,251, 2, 89, 1, 4, 0, + 24, 0,146, 9, 4, 0, 17, 0, 4, 0,163, 9, 0, 0,251, 2, 90, 1, 4, 0, 24, 0,146, 9, 4, 0, 17, 0, 4, 0,163, 9, + 0, 0,251, 2, 91, 1, 4, 0, 24, 0,146, 9, 4, 0, 17, 0, 4, 0,163, 9, 0, 0,251, 2, 92, 1, 2, 0, 4, 0, 17, 0, + 7, 0, 15, 4, 93, 1, 2, 0, 24, 0,146, 9, 0, 0,251, 2, 94, 1, 10, 0, 24, 0,146, 9, 4, 0,165, 9, 7, 0,120, 0, + 4, 0, 17, 0, 2, 0,155, 6, 2, 0,166, 9, 2, 0, 87, 0, 2, 0, 67, 0, 7, 0,167, 9, 0, 0,251, 2, 95, 1, 10, 0, + 24, 0,146, 9, 2, 0, 15, 0, 2, 0, 65, 4, 4, 0, 85, 0, 4, 0, 86, 0, 7, 0, 1, 9, 7, 0, 2, 9, 4, 0, 35, 0, +157, 0,227, 8, 0, 0,251, 2, 96, 1, 4, 0, 24, 0,146, 9, 4, 0,139, 3, 4, 0,168, 9, 0, 0,251, 2, 97, 1, 4, 0, + 24, 0,146, 9, 4, 0,139, 3, 4, 0, 35, 0, 0, 0,251, 2, 98, 1, 6, 0, 24, 0,146, 9, 7, 0,120, 0, 7, 0, 66, 3, + 4, 0,169, 9, 2, 0,139, 3, 2, 0,140, 3, 99, 1, 6, 0, 24, 0,146, 9, 4, 0,170, 9, 4, 0,171, 9, 7, 0,172, 9, + 7, 0,173, 9, 0, 0,251, 2,100, 1, 16, 0, 24, 0,146, 9, 24, 0, 90, 9, 4, 0, 15, 0, 7, 0,174, 9, 7, 0,175, 9, + 7, 0,176, 9, 7, 0,177, 9, 7, 0,178, 9, 7, 0,179, 9, 7, 0,180, 9, 7, 0,181, 9, 7, 0,182, 9, 2, 0, 17, 0, + 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, 0,101, 1, 3, 0, 24, 0,146, 9, 4, 0, 17, 0, 4, 0, 23, 2,102, 1, 5, 0, + 24, 0,146, 9, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,183, 9, 0, 0,251, 2,103, 1, 10, 0, 24, 0,146, 9, 0, 0,251, 2, + 2, 0,184, 9, 2, 0,185, 9, 0, 0,186, 9, 0, 0,187, 9, 7, 0,188, 9, 7, 0,189, 9, 7, 0,190, 9, 7, 0,191, 9, +104, 1, 5, 0, 24, 0,146, 9, 0, 0,251, 2, 7, 0,202, 2, 2, 0,192, 9, 2, 0, 17, 0,105, 1, 8, 0, 7, 0, 7, 0, + 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,193, 9, 7, 0,194, 9, 2, 0, 17, 0, 2, 0, 23, 2,106, 1, 8, 0, + 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,193, 9, 7, 0,194, 9, 2, 0, 17, 0, 2, 0, 23, 2, +107, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,193, 9, 7, 0,194, 9, 2, 0, 17, 0, + 2, 0, 23, 2,108, 1, 7, 0, 24, 0,146, 9, 0, 0,251, 2, 7, 0, 80, 1, 7, 0, 89, 1, 2, 0, 17, 0, 2, 0, 73, 1, + 4, 0, 35, 0,109, 1, 5, 0, 24, 0, 54, 3, 7, 0, 80, 1, 2, 0, 58, 3, 0, 0, 60, 3, 0, 0,195, 9,110, 1, 10, 0, +110, 1, 0, 0,110, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,196, 9, 7, 0, 23, 1, 7, 0, 24, 1, 2, 0,125, 9, + 2, 0,197, 9, 24, 0, 42, 0,111, 1, 22, 0,111, 1, 0, 0,111, 1, 1, 0, 2, 0, 17, 0, 2, 0, 73, 1, 2, 0,198, 9, + 2, 0,199, 9, 28, 0, 77, 0,157, 0,227, 8, 24, 0,160, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,200, 9, 7, 0,201, 9, + 7, 0,202, 9, 7, 0,203, 9, 7, 0,237, 2, 7, 0,204, 9, 7, 0,229, 8, 7, 0,205, 9, 0, 0,206, 9, 0, 0,207, 9, + 12, 0,119, 3,112, 1, 8, 0, 7, 0, 38, 2, 7, 0, 1, 9, 7, 0, 2, 9, 9, 0, 2, 0, 2, 0,208, 9, 2, 0,209, 9, + 2, 0,210, 9, 2, 0,211, 9,113, 1, 19, 0,113, 1, 0, 0,113, 1, 1, 0,113, 1,212, 9, 0, 0, 18, 0,112, 1,213, 9, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,214, 9, 2, 0,215, 9,112, 1,216, 9, 2, 0,217, 9, 2, 0, 87, 0, 7, 0,218, 9, + 7, 0,219, 9, 4, 0,220, 9,113, 1,221, 9, 4, 0,222, 9, 4, 0, 67, 0,114, 1,223, 9,115, 1, 4, 0, 0, 0,224, 9, + 2, 0,225, 9, 2, 0,226, 9, 4, 0, 35, 0,116, 1, 34, 0,116, 1, 0, 0,116, 1, 1, 0,116, 1,227, 9, 0, 0, 18, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 75, 8, 2, 0,103, 8, 2, 0,228, 9, 2, 0,160, 6, 2, 0,217, 9, 2, 0,181, 8, + 12, 0,222, 8, 12, 0,229, 9, 19, 0,194, 6, 9, 0,230, 9, 7, 0,218, 9, 7, 0,219, 9, 7, 0, 73, 2, 7, 0,231, 9, + 0, 0,232, 9, 2, 0,233, 9, 2, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9, 2, 0,237, 9, 2, 0,238, 9, 9, 0,239, 9, + 16, 0,240, 9, 16, 0,241, 9, 16, 0,242, 9,115, 1,146, 0,117, 1,243, 9,118, 1,244, 9,114, 1, 8, 0,114, 1, 0, 0, +114, 1, 1, 0,116, 1,245, 9,116, 1,246, 9,113, 1,247, 9,113, 1,248, 9, 4, 0, 17, 0, 4, 0, 35, 0, 53, 0, 23, 0, + 19, 0, 29, 0, 31, 0, 72, 0,159, 0,113, 3, 12, 0,249, 9, 12, 0,250, 9,112, 1,251, 9, 12, 0,252, 9, 4, 0, 15, 0, + 4, 0,253, 9, 4, 0,254, 9, 4, 0,255, 9, 4, 0, 17, 0, 4, 0, 35, 0, 12, 0, 0, 10, 12, 0,222, 8, 12, 0,229, 9, + 4, 0, 65, 6, 9, 0, 1, 10, 9, 0, 2, 10, 4, 0, 3, 10, 9, 0, 4, 10, 9, 0, 5, 10, 9, 0, 6, 10,119, 1, 6, 0, + 4, 0,119, 0, 4, 0,121, 0, 4, 0,181, 8, 0, 0, 7, 10, 0, 0, 8, 10, 2, 0, 35, 0,120, 1, 16, 0, 2, 0, 20, 8, + 2, 0, 21, 8, 2, 0, 9, 10, 2, 0, 10, 10, 2, 0, 11, 10, 2, 0, 65, 0, 2, 0,195, 6, 2, 0, 12, 10, 7, 0,236, 2, + 7, 0, 13, 10, 7, 0, 14, 10, 2, 0, 95, 1, 0, 0, 15, 10, 0, 0, 16, 10, 4, 0, 17, 10, 4, 0, 18, 10,121, 1, 9, 0, + 7, 0, 19, 10, 7, 0, 20, 10, 7, 0, 27, 9, 7, 0, 77, 3, 7, 0, 21, 10, 7, 0,112, 6, 2, 0, 75, 3, 0, 0, 22, 10, + 0, 0, 35, 0,122, 1, 4, 0, 7, 0, 23, 10, 7, 0, 24, 10, 2, 0, 75, 3, 2, 0, 35, 0,123, 1, 3, 0, 7, 0, 25, 10, + 7, 0, 90, 8, 7, 0, 13, 0,124, 1, 7, 0, 0, 0,255, 1, 2, 0, 29, 5, 2, 0, 30, 5, 2, 0, 31, 5, 2, 0,218, 4, + 4, 0,121, 0, 4, 0, 63, 4,125, 1, 9, 0, 7, 0, 26, 10, 7, 0, 27, 10, 7, 0, 28, 10, 7, 0, 84, 2, 7, 0, 29, 10, + 7, 0, 30, 10, 7, 0, 31, 10, 2, 0, 32, 10, 2, 0, 33, 10,126, 1, 8, 0, 2, 0, 34, 10, 2, 0, 35, 10, 2, 0, 36, 10, + 2, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10,127, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, +128, 1, 2, 0, 0, 0,162, 0, 0, 0, 42, 10,129, 1, 1, 0, 0, 0, 18, 0,130, 1, 10, 0, 0, 0, 43, 10, 0, 0, 44, 10, + 0, 0,104, 6, 0, 0, 45, 10, 2, 0, 9, 10, 2, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10, 7, 0, 49, 10, 7, 0,204, 9, +131, 1, 2, 0, 9, 0, 50, 10, 9, 0, 51, 10,132, 1, 11, 0, 0, 0, 31, 5, 0, 0, 15, 0, 0, 0, 75, 3, 0, 0, 77, 3, + 0, 0, 52, 10, 0, 0,104, 0, 0, 0,160, 2, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10,133, 1, 8, 0, + 7, 0,188, 8, 7, 0,120, 0, 7, 0, 16, 10, 7, 0,153, 2, 7, 0, 57, 10, 7, 0,234, 0, 7, 0, 58, 10, 4, 0, 15, 0, +134, 1, 4, 0, 2, 0, 59, 10, 2, 0, 60, 10, 2, 0, 61, 10, 2, 0, 35, 0,135, 1, 8, 0, 7, 0, 62, 10, 7, 0,202, 2, + 7, 0, 63, 10, 7, 0, 71, 8, 7, 0, 72, 8, 7, 0, 73, 8, 7, 0, 64, 10, 7, 0, 65, 10,136, 1, 6, 0, 2, 0, 66, 10, + 2, 0, 67, 10, 7, 0, 68, 10, 7, 0, 69, 10, 7, 0, 70, 10, 7, 0, 71, 10,137, 1, 1, 0, 0, 0, 18, 0,138, 1, 4, 0, + 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 72, 10,139, 1, 10, 0, 2, 0,249, 3, 2, 0, 17, 0, 7, 0,146, 4, + 7, 0, 73, 10, 7, 0, 74, 10, 7, 0, 75, 10, 7, 0, 76, 10,138, 1, 77, 10,138, 1, 78, 10,138, 1, 79, 10, 51, 0, 11, 0, + 4, 0, 17, 0, 4, 0, 61, 0, 4, 0, 80, 10, 4, 0, 81, 10, 16, 0, 82, 10, 16, 0, 83, 10,139, 1, 84, 10, 7, 0, 85, 10, + 7, 0, 86, 10, 7, 0, 87, 10, 7, 0, 88, 10,230, 0, 10, 0, 4, 0,125, 9, 4, 0, 89, 10, 7, 0, 90, 10, 7, 0, 91, 10, + 7, 0, 92, 10, 7, 0, 93, 10, 7, 0, 8, 0, 7, 0, 10, 0, 4, 0, 73, 1, 4, 0,241, 2,229, 0, 18, 0, 4, 0,124, 0, + 4, 0, 94, 10, 4, 0, 95, 10, 7, 0, 96, 10, 4, 0, 97, 10, 7, 0, 98, 10, 7, 0, 99, 10, 4, 0,100, 10, 7, 0,101, 10, + 4, 0,102, 10, 7, 0,103, 10,230, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0,107, 10, 7, 0,108, 10, 4, 0,109, 10, + 4, 0, 35, 0,140, 1, 4, 0, 39, 0,228, 2, 7, 0,110, 10, 7, 0,162, 1, 7, 0, 35, 0,192, 0, 34, 0, 19, 0, 29, 0, +140, 1,111, 10, 51, 0, 77, 10, 43, 0,112, 10, 49, 0,113, 10, 22, 0,146, 0, 0, 0,114, 10, 7, 0,115, 10, 2, 0, 7, 6, + 2, 0,116, 10, 4, 0,104, 0, 4, 0, 17, 0, 7, 0,117, 10, 4, 0, 81, 2, 4, 0,118, 10, 7, 0,119, 10, 7, 0,120, 10, + 7, 0,121, 10, 7, 0,162, 1, 4, 0,122, 10, 7, 0,123, 10, 0, 0,124, 10, 0, 0,125, 10, 0, 0,126, 10, 0, 0,127, 10, + 7, 0,128, 10, 7, 0,129, 10, 7, 0,130, 10, 7, 0,241, 2, 7, 0,131, 10, 4, 0,132, 10, 7, 0,133, 10, 7, 0,134, 10, + 7, 0,135, 10,141, 1, 10, 0, 4, 0, 15, 0, 4, 0,120, 0, 4, 0, 17, 0, 4, 0,202, 3, 4, 0,136, 10, 4, 0,137, 10, + 4, 0,138, 10, 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0,142, 1, 1, 0, 0, 0, 63, 8, 84, 0, 7, 0,141, 1,139, 10, + 4, 0,140, 10, 4, 0,141, 10, 4, 0,142, 10, 4, 0, 35, 0, 9, 0,143, 10,142, 1,144, 10,143, 1, 5, 0, 7, 0,149, 2, + 7, 0,222, 2, 7, 0, 31, 2, 2, 0,130, 2, 2, 0, 35, 0,144, 1, 5, 0, 7, 0,149, 2, 7, 0, 90, 4, 7, 0,145, 10, + 7, 0,146, 10, 7, 0,222, 2,145, 1, 5, 0, 24, 0,147, 10,146, 1, 20, 0, 7, 0,230, 5, 7, 0,148, 10, 7, 0, 54, 0, +147, 1, 3, 0, 7, 0,149, 10, 4, 0,150, 10, 4, 0,151, 10,148, 1, 7, 0, 4, 0,152, 10, 4, 0,153, 10, 4, 0,154, 10, + 7, 0,155, 10, 7, 0,156, 10, 7, 0,157, 10, 7, 0, 54, 0,149, 1, 8, 0,149, 1, 0, 0,149, 1, 1, 0, 24, 0, 42, 0, + 4, 0,253, 0, 2, 0, 17, 0, 2, 0, 73, 1, 7, 0,222, 2, 7, 0,196, 8,150, 1, 7, 0,150, 1, 0, 0,150, 1, 1, 0, + 24, 0, 42, 0, 2, 0,207, 2, 2, 0, 17, 0, 2, 0,253, 1, 2, 0, 54, 0,151, 1, 17, 0,144, 1,194, 3,144, 1,158, 10, +143, 1,159, 10,144, 1,179, 8,145, 1,160, 10, 4, 0, 79, 0, 7, 0,222, 2, 7, 0,247, 2, 7, 0,161, 10, 4, 0,152, 10, + 4, 0,162, 10, 7, 0,156, 10, 7, 0,157, 10, 7, 0,104, 0, 4, 0,163, 10, 2, 0, 17, 0, 2, 0,164, 10,152, 1, 15, 0, + 7, 0,249, 0, 7, 0,165, 10, 7, 0,149, 10, 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, 7, 0,169, 10, 7, 0,170, 10, + 7, 0,171, 10, 7, 0,172, 10, 7, 0,173, 10, 7, 0,174, 10, 7, 0,175, 10, 4, 0, 17, 0, 4, 0,176, 10,153, 1,124, 0, + 19, 0, 29, 0, 31, 0, 72, 0,154, 1,177, 10,152, 1,178, 10,168, 0, 85, 4, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, + 2, 0,184, 9, 2, 0,179, 10, 2, 0,108, 1, 2, 0,180, 10, 2, 0,161, 3, 2, 0,181, 10, 2, 0,182, 10, 2, 0,183, 10, + 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0,188, 10, 2, 0,189, 10, 2, 0,127, 5, 2, 0,190, 10, + 2, 0,191, 10, 2, 0,192, 10, 2, 0,193, 10, 2, 0,194, 10, 2, 0, 20, 2, 2, 0,172, 8, 2, 0,143, 8, 2, 0,195, 10, + 2, 0,196, 10, 2, 0,212, 3, 2, 0,213, 3, 2, 0,197, 10, 2, 0,198, 10, 2, 0,199, 10, 2, 0,200, 10, 7, 0,201, 10, + 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,205, 10, 7, 0,206, 10, 7, 0,207, 10, 2, 0, 77, 5, 2, 0,208, 10, + 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,154, 8, 7, 0, 86, 0, 7, 0,247, 2, 7, 0,160, 8, 7, 0,212, 10, + 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 4, 0,155, 8, 4, 0,153, 8, 4, 0,216, 10, 4, 0,217, 10, 7, 0,156, 8, + 7, 0,157, 8, 7, 0,158, 8, 7, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,221, 10, 7, 0,222, 10, 7, 0,223, 10, + 7, 0,224, 10, 7, 0,225, 10, 7, 0,226, 10, 7, 0,152, 3, 7, 0,104, 0, 7, 0,227, 10, 7, 0,228, 10, 7, 0,229, 10, + 7, 0,230, 10, 7, 0,207, 0, 7, 0,231, 10, 4, 0,232, 10, 4, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10, 7, 0,236, 10, + 7, 0,237, 10, 7, 0,238, 10, 7, 0,206, 0, 7, 0,239, 10, 7, 0,239, 3, 7, 0,237, 3, 7, 0,238, 3, 7, 0,240, 10, + 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, 7, 0,247, 10, 7, 0,248, 10, + 7, 0,249, 10, 7, 0,250, 10, 7, 0,251, 10, 7, 0,252, 10, 7, 0,253, 10, 7, 0,254, 10, 7, 0,255, 10, 7, 0, 0, 11, + 7, 0, 1, 11, 4, 0, 2, 11, 4, 0, 3, 11, 43, 0,126, 1, 58, 0,183, 3, 12, 0, 4, 11, 58, 0, 5, 11, 24, 0, 6, 11, + 24, 0, 7, 11, 28, 0, 77, 0,163, 0, 65, 1,163, 0, 8, 11,141, 0, 50, 0,141, 0, 0, 0,141, 0, 1, 0,153, 1, 9, 11, +151, 1, 10, 11,148, 1, 90, 9,171, 0, 11, 4, 9, 0, 12, 4,155, 1, 11, 11,155, 1, 12, 11, 12, 0, 13, 11, 12, 0, 14, 11, +126, 0, 15, 11,134, 0, 16, 11,134, 0, 17, 11, 24, 0, 18, 11, 24, 0, 19, 11, 24, 0, 36, 0, 12, 0,151, 9, 0, 0, 18, 0, + 7, 0,238, 0, 7, 0, 20, 3, 7, 0, 20, 11, 7, 0, 21, 11, 4, 0,196, 2, 4, 0, 22, 11, 4, 0, 17, 0, 4, 0,155, 8, + 4, 0, 23, 11, 4, 0, 24, 11, 4, 0, 25, 11, 4, 0, 26, 11, 2, 0,245, 0, 2, 0, 27, 11, 2, 0, 28, 11, 2, 0, 29, 11, + 0, 0, 30, 11, 2, 0, 31, 11, 2, 0, 32, 11, 2, 0, 33, 11, 9, 0, 34, 11,130, 0, 84, 4, 12, 0, 5, 3, 12, 0, 35, 11, +147, 1, 36, 11, 4, 0, 37, 11, 4, 0, 38, 11,156, 1, 39, 11,132, 0, 17, 3,157, 1, 40, 11, 7, 0, 41, 11,128, 0, 37, 0, +158, 1, 28, 9, 7, 0, 54, 4, 7, 0, 42, 11, 7, 0, 43, 11, 7, 0,230, 5, 7, 0,162, 3, 7, 0,152, 3, 7, 0, 44, 11, + 7, 0, 83, 2, 7, 0, 45, 11, 7, 0, 46, 11, 7, 0, 47, 11, 7, 0, 48, 11, 7, 0, 49, 11, 7, 0, 50, 11, 7, 0, 55, 4, + 7, 0, 51, 11, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0, 56, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 11, 7, 0, 55, 11, + 4, 0, 56, 11, 4, 0, 88, 0, 4, 0, 57, 11, 4, 0, 58, 11, 2, 0, 59, 11, 2, 0, 60, 11, 2, 0, 61, 11, 2, 0, 62, 11, + 2, 0, 63, 11, 2, 0, 64, 11, 2, 0, 65, 11, 2, 0,196, 4,168, 0, 85, 4,129, 0, 11, 0,158, 1, 66, 11, 7, 0, 67, 11, + 7, 0, 68, 11, 7, 0,234, 1, 7, 0, 69, 11, 7, 0, 70, 11, 7, 0, 71, 11, 4, 0, 88, 0, 2, 0, 72, 11, 2, 0, 73, 11, + 58, 0,233, 1,159, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 9, 2, 7, 0, 74, 11,160, 1, 6, 0,160, 1, 0, 0, +160, 1, 1, 0,159, 1, 67, 9, 4, 0,251, 0, 2, 0, 75, 11, 2, 0, 17, 0,161, 1, 5, 0,161, 1, 0, 0,161, 1, 1, 0, + 12, 0, 76, 11, 4, 0, 77, 11, 4, 0, 17, 0,162, 1, 9, 0,162, 1, 0, 0,162, 1, 1, 0, 12, 0,119, 0,161, 1, 78, 11, + 4, 0, 17, 0, 2, 0, 75, 11, 2, 0, 79, 11, 7, 0, 89, 0, 0, 0, 80, 11,159, 0, 6, 0, 19, 0, 29, 0, 12, 0, 46, 5, + 4, 0, 17, 0, 2, 0, 81, 11, 2, 0, 82, 11, 9, 0, 83, 11,163, 1, 6, 0, 12, 0, 84, 11, 4, 0, 85, 11, 4, 0, 86, 11, + 4, 0, 17, 0, 4, 0, 35, 0,211, 0, 87, 11,164, 1, 17, 0, 19, 0, 29, 0,165, 1, 88, 11,165, 1, 89, 11, 12, 0, 90, 11, + 4, 0, 91, 11, 2, 0, 92, 11, 2, 0, 93, 11, 12, 0, 94, 11, 12, 0, 95, 11,163, 1, 96, 11, 12, 0, 97, 11, 12, 0, 98, 11, + 12, 0, 99, 11, 12, 0,100, 11,166, 1,101, 11, 12, 0,102, 11,211, 0,103, 11,165, 1, 32, 0,165, 1, 0, 0,165, 1, 1, 0, + 9, 0,104, 11, 4, 0,254, 7, 2, 0,105, 11, 2, 0, 35, 0, 2, 1,106, 11, 2, 1,107, 11, 0, 0,108, 11, 2, 0,109, 11, + 2, 0,110, 11, 2, 0, 20, 8, 2, 0, 21, 8, 2, 0,111, 11, 2, 0,112, 11, 2, 0,202, 3, 2, 0,226, 6, 2, 0,113, 11, + 2, 0,114, 11, 2, 0,115, 11, 2, 0, 67, 0,167, 1,116, 11,168, 1,117, 11,169, 1,118, 11, 4, 0,119, 11, 4, 0,120, 11, + 9, 0,121, 11, 12, 0, 95, 11, 12, 0, 40, 8, 12, 0,122, 11, 12, 0,123, 11, 12, 0,124, 11,170, 1, 17, 0,170, 1, 0, 0, +170, 1, 1, 0, 0, 0,125, 11, 18, 0, 28, 0, 2, 0,126, 11, 2, 0, 15, 0, 2, 0, 13, 0, 2, 0,127, 11, 2, 0,128, 11, + 2, 0,129, 11, 2, 0,130, 11, 2, 0,131, 11, 2, 0, 17, 0, 2, 0,132, 11, 2, 0, 29, 0, 2, 0, 35, 0,171, 1,133, 11, +172, 1, 10, 0,172, 1, 0, 0,172, 1, 1, 0, 12, 0,134, 11, 0, 0,125, 11, 2, 0,135, 11, 2, 0,136, 11, 2, 0, 17, 0, + 2, 0,137, 11, 4, 0,138, 11, 9, 0,139, 11,166, 1, 7, 0,166, 1, 0, 0,166, 1, 1, 0, 0, 0,125, 11, 0, 0,140, 11, + 12, 0,199, 7, 4, 0,141, 11, 4, 0, 17, 0,223, 0, 14, 0,223, 0, 0, 0,223, 0, 1, 0, 0, 0,125, 11, 18, 0, 28, 0, +173, 1, 14, 8, 9, 0,142, 11, 9, 0,143, 11,171, 1,133, 11,163, 1,144, 11, 12, 0,145, 11,223, 0,146, 11, 7, 1,133, 6, + 2, 0, 17, 0, 2, 0,196, 4,174, 1, 12, 0,174, 1, 0, 0,174, 1, 1, 0, 9, 0, 2, 0, 9, 0,147, 11, 0, 0, 5, 4, + 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,148, 11, 7, 0,121, 0, 7, 0, 63, 4, 7, 0,229, 8, 7, 0,205, 9,175, 1, 5, 0, + 7, 0,149, 11, 4, 0,150, 11, 4, 0,151, 11, 4, 0, 73, 1, 4, 0, 17, 0,176, 1, 6, 0, 7, 0,152, 11, 7, 0,153, 11, + 7, 0,154, 11, 7, 0,155, 11, 4, 0, 15, 0, 4, 0, 17, 0,177, 1, 5, 0, 7, 0, 1, 9, 7, 0, 2, 9, 7, 0,222, 2, + 2, 0, 34, 2, 2, 0, 35, 2,178, 1, 5, 0,177, 1, 2, 0, 4, 0, 51, 0, 7, 0,156, 11, 7, 0, 1, 9, 7, 0, 2, 9, +179, 1, 4, 0, 2, 0,157, 11, 2, 0,158, 11, 2, 0,159, 11, 2, 0,160, 11,180, 1, 2, 0, 34, 0,188, 6, 18, 0, 33, 9, +181, 1, 3, 0, 16, 0,161, 11, 4, 0, 17, 0, 4, 0, 35, 0,182, 1, 6, 0, 7, 0,104, 0, 7, 0,224, 2, 7, 0,162, 11, + 7, 0, 35, 0, 2, 0,244, 0, 2, 0,163, 11,183, 1, 5, 0, 7, 0,164, 11, 7, 0,120, 0, 7, 0, 68, 9, 7, 0, 69, 9, + 4, 0, 17, 0,184, 1, 6, 0, 19, 0,194, 6, 0, 0,165, 11, 0, 0,166, 11, 2, 0,167, 11, 2, 0, 17, 0, 4, 0,168, 11, +185, 1, 7, 0,185, 1, 0, 0,185, 1, 1, 0, 0, 0, 5, 4,184, 1,169, 11, 2, 0,170, 11, 2, 0, 15, 0, 7, 0, 58, 0, +186, 1, 7, 0, 12, 0,171, 11, 0, 0,172, 11, 9, 0,173, 11, 7, 0, 58, 0, 7, 0,148, 11, 4, 0, 15, 0, 4, 0, 17, 0, +187, 1, 3, 0, 7, 0,174, 11, 4, 0, 17, 0, 4, 0, 35, 0,188, 1, 15, 0,188, 1, 0, 0,188, 1, 1, 0, 79, 1,138, 9, +186, 1, 59, 0, 12, 0,119, 3, 27, 0, 47, 0,187, 1,175, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 16, 1, + 4, 0,176, 11, 0, 0,165, 11, 4, 0,177, 11, 7, 0,178, 11,189, 1, 2, 0, 0, 0,179, 11, 0, 0,180, 11,190, 1, 4, 0, +190, 1, 0, 0,190, 1, 1, 0,157, 0, 54, 3, 12, 0,181, 11,191, 1, 24, 0,191, 1, 0, 0,191, 1, 1, 0, 12, 0,182, 11, +157, 0,227, 8,190, 1,183, 11, 12, 0,184, 11, 12, 0,119, 3, 0, 0, 5, 4, 7, 0,148, 11, 7, 0,185, 11, 7, 0, 85, 0, + 7, 0, 86, 0, 7, 0,200, 9, 7, 0,201, 9, 7, 0,237, 2, 7, 0,204, 9, 7, 0,229, 8, 7, 0,205, 9, 2, 0,186, 11, + 2, 0,187, 11, 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,192, 1, 6, 0,192, 1, 0, 0,192, 1, 1, 0, + 12, 0,182, 11, 4, 0, 17, 0, 4, 0,253, 1, 0, 0, 5, 4,193, 1, 11, 0,193, 1, 0, 0,193, 1, 1, 0, 19, 0,194, 6, + 0, 0,188, 11, 4, 0,168, 11, 2, 0,189, 11, 2, 0, 35, 0, 0, 0,165, 11, 4, 0,176, 11, 2, 0, 17, 0, 2, 0,190, 11, +194, 1, 8, 0,194, 1, 0, 0,194, 1, 1, 0, 12, 0,191, 11, 0, 0, 5, 4, 0, 0,192, 11, 2, 0, 17, 0, 2, 0,190, 11, + 4, 0,193, 11,195, 1, 5, 0,195, 1, 0, 0,195, 1, 1, 0, 0, 0,165, 11, 4, 0,176, 11, 7, 0,212, 2, 31, 0, 12, 0, +157, 0,110, 3,157, 0,194, 11,190, 1,183, 11, 12, 0,195, 11,191, 1,196, 11, 12, 0,197, 11, 12, 0,198, 11, 4, 0, 17, 0, + 4, 0,245, 0, 2, 0,199, 11, 2, 0,200, 11, 7, 0,201, 11,196, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,197, 1, 5, 0, +197, 1, 0, 0,197, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,198, 1, 6, 0,197, 1,202, 11, 24, 0, 42, 0, + 4, 0,203, 11, 7, 0,204, 11, 4, 0,205, 11, 4, 0,125, 9,199, 1, 3, 0,197, 1,202, 11, 4, 0,203, 11, 7, 0,206, 11, +200, 1, 8, 0,197, 1,202, 11, 24, 0, 42, 0, 7, 0, 68, 1, 7, 0,207, 11, 7, 0, 20, 3, 7, 0, 27, 9, 4, 0,203, 11, + 4, 0,208, 11,201, 1, 5, 0,197, 1,202, 11, 7, 0,209, 11, 7, 0,103, 8, 7, 0,243, 2, 7, 0, 54, 0,202, 1, 3, 0, +197, 1,202, 11, 7, 0, 27, 9, 7, 0,210, 11,146, 1, 4, 0, 7, 0,211, 11, 7, 0,228, 10, 2, 0,212, 11, 2, 0, 73, 1, +203, 1, 14, 0,203, 1, 0, 0,203, 1, 1, 0, 12, 0,213, 11, 12, 0,214, 11, 12, 0,215, 11, 0, 0, 18, 0, 4, 0, 29, 0, + 4, 0, 17, 0, 4, 0,216, 11, 7, 0,217, 11, 4, 0,205, 11, 4, 0,125, 9, 7, 0, 15, 4, 7, 0,245, 2,154, 1, 23, 0, + 4, 0,203, 11, 4, 0,218, 11, 7, 0,219, 11, 7, 0,241, 2, 7, 0,220, 11, 7, 0,244, 8, 7, 0,211, 11, 7, 0,221, 11, + 7, 0,224, 2, 7, 0, 96, 10, 7, 0,146, 4, 7, 0,222, 11, 7, 0,223, 11, 7, 0,224, 11, 7, 0,225, 11, 7, 0,226, 11, + 7, 0,227, 11, 7, 0,228, 11, 7, 0,229, 11, 7, 0,230, 11, 7, 0,231, 11, 7, 0,232, 11, 12, 0,233, 11,114, 0, 40, 0, +113, 0,234, 11,204, 1,178, 10, 58, 0,235, 11, 58, 0, 5, 11, 58, 0,236, 11,205, 1,237, 11, 40, 0,161, 0, 40, 0,238, 11, + 40, 0,239, 11, 7, 0,240, 11, 7, 0,241, 11, 7, 0,242, 11, 7, 0,243, 11, 7, 0,244, 11, 7, 0,253, 7, 7, 0,245, 11, + 7, 0,162, 1, 7, 0,246, 11, 4, 0,247, 11, 4, 0,248, 11, 4, 0,249, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,250, 11, + 2, 0,251, 11, 2, 0,252, 11, 4, 0,253, 11, 7, 0,224, 2, 4, 0,254, 11, 7, 0,255, 11, 4, 0, 0, 12, 4, 0, 1, 12, + 4, 0, 2, 12,130, 0, 3, 12, 12, 0, 4, 12,168, 0, 85, 4, 4, 0, 5, 12, 7, 0, 6, 12, 7, 0, 7, 12, 4, 0, 67, 0, +115, 0, 12, 0,113, 0,234, 11,141, 0, 40, 3, 7, 0,129, 1, 7, 0,253, 7, 7, 0, 8, 12, 7, 0, 9, 12, 7, 0, 10, 12, + 2, 0, 11, 12, 2, 0, 12, 12, 2, 0, 13, 12, 2, 0, 15, 0, 4, 0, 88, 0,116, 0, 13, 0,113, 0,234, 11,132, 0, 17, 3, +134, 0, 19, 3, 7, 0, 67, 9, 7, 0, 14, 12, 7, 0, 15, 12, 7, 0, 70, 1, 7, 0, 16, 12, 4, 0,160, 9, 4, 0, 13, 3, + 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0}; + diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index a1b8cf0df91..f668b4b4a5f 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -684,6 +684,7 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View } /* draw curve between first and last keyframe (if there are enough to do so) */ + // TODO: optimise this to not have to calc stuff out of view too? while (b--) { if (prevbezt->ipo==BEZT_IPO_CONST) { /* Constant-Interpolation: draw segment between previous keyframe and next, but holding same value */ @@ -707,6 +708,7 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View */ /* resol depends on distance between points (not just horizontal) OR is a fixed high res */ + // TODO: view scale should factor into this someday too... if (fcu->driver) resol= 32; else diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 6a548a58507..fea9e5d71e8 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -186,6 +186,10 @@ static void graph_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa) sipo->ads= MEM_callocN(sizeof(bDopeSheet), "GraphEdit DopeSheet"); sipo->ads->source= (ID *)(G.main->scene.first); // FIXME: this is a really nasty hack here for now... } + + /* settings for making it easier by default to just see what you're interested in tweaking */ + sipo->ads->filterflag |= ADS_FILTER_ONLYSEL; + sipo->flag |= SIPO_SELVHANDLESONLY; ED_area_tag_refresh(sa); } -- cgit v1.2.3 From 9077b8bffc6731062bbd6997379b4bf6badd13e2 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 26 Jul 2011 13:56:31 +0000 Subject: 3D Audio GSoC: Main: Complete rewrite of the sequencer related audio code to support 3D Audio objects later and especially adressing the animation system problems (see mailing list if interested). Note: Animation is not working yet, so with this commit volume animation doesn't work anymore, that's the next step. Minor things: * Changed AUD_Reference behaviour a little to be more usage safe. * Fixed bug in AUD_I3DHandle: Missing virtual destructor * Fixed enmus in AUD_Space.h * Fixed a warning in rna_scene.c * Removed an unneeded call in rna_sound.c --- source/blender/blenkernel/BKE_sequencer.h | 4 +- source/blender/blenkernel/BKE_sound.h | 8 ++++ source/blender/blenkernel/intern/sequencer.c | 27 +++++++++++- source/blender/blenkernel/intern/sound.c | 57 +++++++++++++++----------- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/makesrna/intern/rna_scene.c | 25 ++++++----- source/blender/makesrna/intern/rna_sequencer.c | 4 +- source/blender/makesrna/intern/rna_sound.c | 9 +++- 8 files changed, 95 insertions(+), 41 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index bedd58876bc..cebf99097aa 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -43,6 +43,7 @@ struct Scene; struct Sequence; struct Strip; struct StripElem; +struct bSound; #define MAXSEQ 32 @@ -281,8 +282,9 @@ void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_m struct Sequence *seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, struct Sequence * seq, int dupe_flag); int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b, const char **error_str); -void seq_update_sound(struct Scene* scene, struct Sequence *seq); +void seq_update_sound_bounds(struct Scene* scene, struct Sequence *seq); void seq_update_muting(struct Scene* scene, struct Editing *ed); +void seq_update_sound(struct Scene *scene, struct bSound *sound); void seqbase_sound_reload(struct Scene *scene, ListBase *seqbase); void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq); void seqbase_dupli_recursive(struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag); diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 7402d501120..549dc475320 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -64,6 +64,8 @@ void sound_delete(struct bContext *C, struct bSound* sound); void sound_cache(struct bSound* sound, int ignore); +void sound_cache_notifying(struct Main* main, struct bSound* sound, int ignore); + void sound_delete_cache(struct bSound* sound); void sound_load(struct Main *main, struct bSound* sound); @@ -80,6 +82,8 @@ void sound_destroy_scene(struct Scene *scene); void sound_mute_scene(struct Scene *scene, int muted); +void sound_update_fps(struct Scene *scene); + void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip); void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip); @@ -90,6 +94,10 @@ void sound_mute_scene_sound(struct Scene *scene, void* handle, char mute); void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, int endframe, int frameskip); +void sound_update_scene_sound(void* handle, struct bSound* sound); + +void sound_update_sequencer(struct Main* main, struct bSound* sound); + void sound_play_scene(struct Scene *scene); void sound_stop_scene(struct Scene *scene); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 9673fee0b63..e4dc3a31cb1 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -533,7 +533,7 @@ void calc_sequence_disp(Scene *scene, Sequence *seq) seq->handsize= (float)((seq->enddisp-seq->startdisp)/25); } - seq_update_sound(scene, seq); + seq_update_sound_bounds(scene, seq); } static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) @@ -3145,7 +3145,7 @@ int shuffle_seq_time(ListBase * seqbasep, Scene *evil_scene) return offset? 0:1; } -void seq_update_sound(Scene* scene, Sequence *seq) +void seq_update_sound_bounds(Scene* scene, Sequence *seq) { if(seq->scene_sound) { @@ -3193,6 +3193,29 @@ void seq_update_muting(Scene *scene, Editing *ed) } } +static void seq_update_sound_recursive(Scene *scene, ListBase *seqbasep, bSound *sound) +{ + Sequence *seq; + + for(seq=seqbasep->first; seq; seq=seq->next) { + if(seq->type == SEQ_META) { + seq_update_sound_recursive(scene, &seq->seqbase, sound); + } + else if(seq->type == SEQ_SOUND) { + if(seq->scene_sound && sound == seq->sound) { + sound_update_scene_sound(seq->scene_sound, sound); + } + } + } +} + +void seq_update_sound(struct Scene *scene, struct bSound *sound) +{ + if(scene->ed) { + seq_update_sound_recursive(scene, &scene->ed->seqbase, sound); + } +} + /* in cases where we done know the sequence's listbase */ ListBase *seq_seqbase(ListBase *seqbase, Sequence *seq) { diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 493dfa09a65..64ba9ed362a 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -34,6 +34,7 @@ #include "BKE_packedFile.h" #include "BKE_fcurve.h" #include "BKE_animsys.h" +#include "BKE_sequencer.h" struct bSound* sound_new_file(struct Main *bmain, const char *filename) @@ -257,6 +258,12 @@ void sound_cache(struct bSound* sound, int ignore) sound->playback_handle = sound->cache; } +void sound_cache_notifying(struct Main* main, struct bSound* sound, int ignore) +{ + sound_cache(sound, ignore); + sound_update_sequencer(main, sound); +} + void sound_delete_cache(struct bSound* sound) { if(sound->cache) @@ -326,24 +333,9 @@ void sound_load(struct Main *bmain, struct bSound* sound) sound->playback_handle = sound->cache; else sound->playback_handle = sound->handle; - } -} -static float sound_get_volume(Scene* scene, Sequence* sequence, float time) -{ - AnimData *adt= BKE_animdata_from_id(&scene->id); - FCurve *fcu = NULL; - char buf[64]; - - /* NOTE: this manually constructed path needs to be used here to avoid problems with RNA crashes */ - sprintf(buf, "sequence_editor.sequences_all[\"%s\"].volume", sequence->name+2); - if (adt && adt->action && adt->action->curves.first) - fcu= list_find_fcurve(&adt->action->curves, buf, 0); - - if(fcu) - return evaluate_fcurve(fcu, time * (float)FPS); - else - return sequence->volume; + sound_update_sequencer(bmain, sound); + } } AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, float volume) @@ -360,7 +352,7 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, void sound_create_scene(struct Scene *scene) { - scene->sound_scene = AUD_createSequencer(scene->audio.flag & AUDIO_MUTE, scene, (AUD_volumeFunction)&sound_get_volume); + scene->sound_scene = AUD_createSequencer(FPS, scene->audio.flag & AUDIO_MUTE); scene->sound_scene_handle = NULL; scene->sound_scrub_handle = NULL; } @@ -381,31 +373,50 @@ void sound_mute_scene(struct Scene *scene, int muted) AUD_setSequencerMuted(scene->sound_scene, muted); } +void sound_update_fps(struct Scene *scene) +{ + if(scene->sound_scene) + AUD_setSequencerFPS(scene->sound_scene, FPS); +} + void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip) { if(scene != sequence->scene) - return AUD_addSequencer(scene->sound_scene, &(sequence->scene->sound_scene), startframe / FPS, endframe / FPS, frameskip / FPS, sequence); + return AUD_addSequence(scene->sound_scene, sequence->scene->sound_scene, startframe / FPS, endframe / FPS, frameskip / FPS); return NULL; } void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip) { - return AUD_addSequencer(scene->sound_scene, &(sequence->sound->playback_handle), startframe / FPS, endframe / FPS, frameskip / FPS, sequence); + return AUD_addSequence(scene->sound_scene, sequence->sound->playback_handle, startframe / FPS, endframe / FPS, frameskip / FPS); } void sound_remove_scene_sound(struct Scene *scene, void* handle) { - AUD_removeSequencer(scene->sound_scene, handle); + AUD_removeSequence(scene->sound_scene, handle); } void sound_mute_scene_sound(struct Scene *scene, void* handle, char mute) { - AUD_muteSequencer(scene->sound_scene, handle, mute); + AUD_muteSequence(handle, mute); } void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, int endframe, int frameskip) { - AUD_moveSequencer(scene->sound_scene, handle, startframe / FPS, endframe / FPS, frameskip / FPS); + AUD_moveSequence(handle, startframe / FPS, endframe / FPS, frameskip / FPS); +} + +void sound_update_scene_sound(void* handle, struct bSound* sound) +{ + AUD_updateSequenceSound(handle, sound->playback_handle); +} + +void sound_update_sequencer(struct Main* main, struct bSound* sound) +{ + struct Scene* scene; + + for(scene = main->scene.first; scene; scene = scene->id.next) + seq_update_sound(scene, sound); } static void sound_start_play_scene(struct Scene *scene) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 8cfae0d9c7e..87f2a72cfe0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5590,7 +5590,7 @@ static void lib_link_sound(FileData *fd, Main *main) sound_load(main, sound); if(sound->cache) - sound_cache(sound, 1); + sound_cache_notifying(main, sound, 1); } sound= sound->id.next; } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 2923bb62000..3a3a805f3ce 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -100,14 +100,6 @@ EnumPropertyItem snap_element_items[] = { {SCE_SNAP_MODE_VOLUME, "VOLUME", ICON_SNAP_VOLUME, "Volume", "Snap to volume"}, {0, NULL, 0, NULL, NULL}}; -static EnumPropertyItem audio_channel_items[] = { - {1, "MONO", 0, "Mono", "Set audio channels to mono"}, - {2, "STEREO", 0, "Stereo", "Set audio channels to stereo"}, - {4, "SURROUND4", 0, "4 Channels", "Set audio channels to 4 channels"}, - {6, "SURROUND51", 0, "5.1 Surround", "Set audio channels to 5.1 surround sound"}, - {8, "SURROUND71", 0, "7.1 Surround", "Set audio channels to 7.1 surround sound"}, - {0, NULL, 0, NULL, NULL}}; - EnumPropertyItem image_type_items[] = { {0, "", 0, "Image", NULL}, {R_BMP, "BMP", ICON_FILE_IMAGE, "BMP", "Output image in bitmap format"}, @@ -340,6 +332,11 @@ static void rna_Scene_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) DAG_on_visible_update(bmain, FALSE); } +static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) +{ + sound_update_fps(scene); +} + static void rna_Scene_framelen_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) { scene->r.framelen= (float)scene->r.framapto/(float)scene->r.images; @@ -2153,6 +2150,14 @@ static void rna_def_scene_render_data(BlenderRNA *brna) #endif #ifdef WITH_FFMPEG + static EnumPropertyItem audio_channel_items[] = { + {1, "MONO", 0, "Mono", "Set audio channels to mono"}, + {2, "STEREO", 0, "Stereo", "Set audio channels to stereo"}, + {4, "SURROUND4", 0, "4 Channels", "Set audio channels to 4 channels"}, + {6, "SURROUND51", 0, "5.1 Surround", "Set audio channels to 5.1 surround sound"}, + {8, "SURROUND71", 0, "7.1 Surround", "Set audio channels to 7.1 surround sound"}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem ffmpeg_format_items[] = { {FFMPEG_MPEG1, "MPEG1", 0, "MPEG-1", ""}, {FFMPEG_MPEG2, "MPEG2", 0, "MPEG-2", ""}, @@ -2497,14 +2502,14 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 1, 120); RNA_def_property_ui_text(prop, "FPS", "Framerate, expressed in frames per second"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_Scene_fps_update"); prop= RNA_def_property(srna, "fps_base", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "frs_sec_base"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0.1f, 120.0f); RNA_def_property_ui_text(prop, "FPS Base", "Framerate base"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_Scene_fps_update"); /* frame mapping */ prop= RNA_def_property(srna, "frame_map_old", PROP_INT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index eb2d38e9778..3dab8266c2f 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -560,7 +560,7 @@ static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *p free_imbuf_seq(scene, &ed->seqbase, FALSE, TRUE); if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) - seq_update_sound(scene, ptr->data); + seq_update_sound_bounds(scene, ptr->data); } static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr) @@ -570,7 +570,7 @@ static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) - seq_update_sound(scene, ptr->data); + seq_update_sound_bounds(scene, ptr->data); } static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c index 97339058794..f471e5e0fe5 100644 --- a/source/blender/makesrna/intern/rna_sound.c +++ b/source/blender/makesrna/intern/rna_sound.c @@ -41,7 +41,7 @@ #include "BKE_sound.h" #include "BKE_context.h" -static void rna_Sound_filepath_update(Main *bmain, Scene *scene, PointerRNA *ptr) +static void rna_Sound_filepath_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { sound_load(bmain, (bSound*)ptr->data); } @@ -61,6 +61,11 @@ static void rna_Sound_caching_set(PointerRNA *ptr, const int value) sound_delete_cache(sound); } +static void rna_Sound_caching_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) +{ + sound_update_sequencer(bmain, (bSound*)(ptr->data)); +} + #else static void rna_def_sound(BlenderRNA *brna) @@ -87,7 +92,7 @@ static void rna_def_sound(BlenderRNA *brna) prop= RNA_def_property(srna, "use_memory_cache", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_Sound_caching_get", "rna_Sound_caching_set"); RNA_def_property_ui_text(prop, "Caching", "The sound file is decoded and loaded into RAM"); - RNA_def_property_update(prop, 0, "rna_Sound_filepath_update"); + RNA_def_property_update(prop, 0, "rna_Sound_caching_update"); } void RNA_def_sound(BlenderRNA *brna) -- cgit v1.2.3 From 3e81de486a648d06660e3cc2355698b1c27965a5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 26 Jul 2011 16:01:09 +0000 Subject: RNA: function calls with optional parameters were not giving correct default values for arrays. --- source/blender/makesrna/intern/rna_access.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index d9fbdd7caf2..dcf2400b9ba 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4407,15 +4407,15 @@ ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSE if(!(parm->flag & PROP_REQUIRED) && !(parm->flag & PROP_DYNAMIC)) { switch(parm->type) { case PROP_BOOLEAN: - if(parm->arraydimension) memcpy(data, &((BooleanPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((BooleanPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((BooleanPropertyRNA*)parm)->defaultvalue, size); break; case PROP_INT: - if(parm->arraydimension) memcpy(data, &((IntPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((IntPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((IntPropertyRNA*)parm)->defaultvalue, size); break; case PROP_FLOAT: - if(parm->arraydimension) memcpy(data, &((FloatPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((FloatPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((FloatPropertyRNA*)parm)->defaultvalue, size); break; case PROP_ENUM: -- cgit v1.2.3 From 37aa6a5e3d5d5fdd8e9ec0779cdfa831a084b01f Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 26 Jul 2011 16:17:00 +0000 Subject: onscreen ndof rotation guide (center + axis) --- source/blender/editors/space_view3d/view3d_draw.c | 16 ++++++++++++---- source/blender/editors/space_view3d/view3d_edit.c | 6 +++--- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index f1909bb4049..2b863bf794c 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -690,10 +690,13 @@ static void draw_rotation_guide(RegionView3D *rv3d) glShadeModel(GL_SMOOTH); glPointSize(5); glEnable(GL_POINT_SMOOTH); + glDepthMask(0); // don't overwrite zbuf if (rv3d->rot_angle != 0.f) { + // -- draw rotation axis -- float scaled_axis[3]; - mul_v3_v3fl(scaled_axis, rv3d->rot_axis, 3.f); + const float scale = rv3d->dist; + mul_v3_v3fl(scaled_axis, rv3d->rot_axis, scale); glBegin(GL_LINE_STRIP); color[3] = 0; // more transparent toward the ends @@ -701,7 +704,10 @@ static void draw_rotation_guide(RegionView3D *rv3d) add_v3_v3v3(end, o, scaled_axis); glVertex3fv(end); - color[3] = 0.2f + rv3d->rot_angle; // more opaque toward the center + // color[3] = 0.2f + fabsf(rv3d->rot_angle); // modulate opacity with angle + // ^^ neat idea, but angle is frame-rate dependent, so it's usually close to 0.2 + + color[3] = 0.5f; // more opaque toward the center glColor4fv(color); glVertex3fv(o); @@ -716,6 +722,7 @@ static void draw_rotation_guide(RegionView3D *rv3d) else color[3] = 0.5; // see-through dot + // -- draw rotation center -- glColor4fv(color); glBegin(GL_POINTS); glVertex3fv(o); @@ -728,6 +735,7 @@ static void draw_rotation_guide(RegionView3D *rv3d) glDisable(GL_BLEND); glDisable(GL_POINT_SMOOTH); + glDepthMask(1); } static void draw_view_icon(RegionView3D *rv3d) @@ -2672,10 +2680,10 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) BDR_drawSketch(C); } -#if 0 // not yet... +//#if 0 // not yet... if (U.ndof_flag & NDOF_SHOW_GUIDE) draw_rotation_guide(rv3d); -#endif +//#endif ED_region_pixelspace(ar); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 75e20ad565e..999120a0987 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1053,13 +1053,13 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) if (invert) angle = -angle; + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); + // update the onscreen doo-dad rv3d->rot_angle = angle; copy_v3_v3(rv3d->rot_axis, axis); - // transform rotation axis from view to world coordinates - mul_qt_v3(view_inv, axis); - axis_angle_to_quat(rot, axis, angle); #endif // -------------------------------------------- // apply rotation -- cgit v1.2.3 From 40e36975efb8b7317fa759bacd8125e9348bd869 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 26 Jul 2011 18:28:07 +0000 Subject: Blender profile leaf bone tip import. --- source/blender/collada/ArmatureImporter.cpp | 39 ++++++++++++++++++++++------- source/blender/collada/ArmatureImporter.h | 9 +++++-- source/blender/collada/DocumentImporter.cpp | 2 +- source/blender/collada/DocumentImporter.h | 2 +- 4 files changed, 39 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 4e330738026..9489ddd1525 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -145,7 +145,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // treat zero-sized bone like a leaf bone if (length <= epsilon) { - add_leaf_bone(parent_mat, parent); + add_leaf_bone(parent_mat, parent, node); } } @@ -157,7 +157,8 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // in second case it's not a leaf bone, but we handle it the same way if (!children.getCount() || children.getCount() > 1) { - add_leaf_bone(mat, bone); + + add_leaf_bone(mat, bone, node); } } @@ -220,7 +221,7 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo // treat zero-sized bone like a leaf bone if (length <= epsilon) { - add_leaf_bone(parent_mat, parent); + add_leaf_bone(parent_mat, parent, node); } /* @@ -258,22 +259,35 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo // in second case it's not a leaf bone, but we handle it the same way if (!children.getCount() || children.getCount() > 1) { - add_leaf_bone(mat, bone); + add_leaf_bone(mat, bone , node); } } -void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone) +void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW::Node * node) { LeafBone leaf; leaf.bone = bone; copy_m4_m4(leaf.mat, mat); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); - + + TagsMap::iterator etit; + ExtraTags *et = 0; + etit = uid_tags_map.find(node->getUniqueId().toAscii()); + if(etit != uid_tags_map.end()) + et = etit->second; + + float x,y,z; + et->setData("tip_x",&x); + et->setData("tip_y",&y); + et->setData("tip_z",&z); + float vec[3] = {x,y,z}; + copy_v3_v3(leaf.bone->tail, leaf.bone->head); + add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); leaf_bones.push_back(leaf); } -void ArmatureImporter::fix_leaf_bones() +void ArmatureImporter::fix_leaf_bones( ) { // just setting tail for leaf bones here @@ -283,7 +297,7 @@ void ArmatureImporter::fix_leaf_bones() // pointing up float vec[3] = {0.0f, 0.0f, 1.0f}; - + mul_v3_fl(vec, leaf_bone_length); copy_v3_v3(leaf.bone->tail, leaf.bone->head); @@ -407,7 +421,7 @@ void ArmatureImporter::create_armature_bones( ) leaf_bone_length = FLT_MAX; create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); - fix_leaf_bones(); + //fix_leaf_bones(); // exit armature edit mode @@ -750,6 +764,11 @@ Object *ArmatureImporter::get_armature_for_joint(COLLADAFW::Node *node) return NULL; } +void ArmatureImporter::set_tags_map(TagsMap & tagsMap) +{ + this->uid_tags_map = tagsMap; +} + void ArmatureImporter::get_rna_path_for_joint(COLLADAFW::Node *node, char *joint_path, size_t count) { BLI_snprintf(joint_path, count, "pose.bones[\"%s\"]", bc_get_joint_name(node)); @@ -771,3 +790,5 @@ bool ArmatureImporter::get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint) return found; } + + diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index 2471e97007c..92d070ef575 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -46,6 +46,7 @@ extern "C" { #include "MeshImporter.h" #include "SkinInfo.h" #include "TransformReader.h" +#include "ExtraTags.h" #include #include @@ -109,7 +110,7 @@ private: void create_unskinned_bone(COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[][4], Object * ob_arm); - void add_leaf_bone(float mat[][4], EditBone *bone); + void add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW::Node * node); void fix_leaf_bones(); @@ -132,6 +133,9 @@ private: void create_armature_bones(SkinInfo& skin); void create_armature_bones( ); + /** TagsMap typedef for uid_tags_map. */ + typedef std::map TagsMap; + TagsMap uid_tags_map; public: ArmatureImporter(UnitConverter *conv, MeshImporterBase *mesh, AnimationImporterBase *anim, Scene *sce); @@ -166,7 +170,8 @@ public: // gives a world-space mat bool get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint); - + + void set_tags_map( TagsMap& tags_map); }; diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index c3090eebc9f..27442420f90 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -190,7 +190,7 @@ void DocumentImporter::finish() write_node(roots[i], NULL, sce, NULL, false); } } - + armature_importer.set_tags_map(this->uid_tags_map); armature_importer.make_armatures(mContext); #if 0 diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h index f6917c2e9bf..a347eed3e5a 100644 --- a/source/blender/collada/DocumentImporter.h +++ b/source/blender/collada/DocumentImporter.h @@ -47,7 +47,7 @@ #include "AnimationImporter.h" #include "ArmatureImporter.h" #include "MeshImporter.h" -#include "ExtraTags.h" + struct Main; -- cgit v1.2.3 From a460299b08303d3cfbd9b83d036d87351cb52693 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Jul 2011 19:47:56 +0000 Subject: - bugfix for icon listview where the icons would only wrap once - also quiet some clang warnings --- source/blender/editors/interface/interface_handlers.c | 11 +++++------ source/blender/editors/interface/interface_layout.c | 2 +- source/blender/editors/interface/interface_panel.c | 4 ++-- source/blender/editors/interface/interface_templates.c | 3 +-- 4 files changed, 9 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index e9ec4ccc66d..c5275ea98b5 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1879,7 +1879,6 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle if(but->autocomplete_func || data->searchbox) { changed= ui_textedit_autocomplete(C, but, data); update= 1; /* do live update for tab key */ - retval= WM_UI_HANDLER_BREAK; } /* the hotkey here is not well defined, was G.qual so we check all */ else if(event->shift || event->ctrl || event->alt || event->oskey) { @@ -2325,8 +2324,8 @@ static float ui_numedit_apply_snapf(uiBut *but, float tempf, float softmin, floa if(fac != 1.0f) { /* snap in unit-space */ tempf /= fac; - softmin /= fac; - softmax /= fac; + /* softmin /= fac; */ /* UNUSED */ + /* softmax /= fac; */ /* UNUSED */ softrange /= fac; } @@ -3469,13 +3468,13 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap, CurveMapping *cumap= (CurveMapping*)but->poin; CurveMap *cuma= cumap->cm+cumap->cur; CurveMapPoint *cmp= cuma->curve; - float fx, fy, zoomx, zoomy, offsx, offsy; + float fx, fy, zoomx, zoomy /*, offsx, offsy */ /* UNUSED */; int a, changed= 0; zoomx= (but->x2-but->x1)/(cumap->curr.xmax-cumap->curr.xmin); zoomy= (but->y2-but->y1)/(cumap->curr.ymax-cumap->curr.ymin); - offsx= cumap->curr.xmin; - offsy= cumap->curr.ymin; + /* offsx= cumap->curr.xmin; */ + /* offsy= cumap->curr.ymin; */ if(snap) { float d[2]; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 79a90fb9d1d..b309198d937 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1615,7 +1615,7 @@ static void ui_litem_layout_row(uiLayout *litem) int x, y, w, tot, totw, neww, itemw, minw, itemh, offset; int fixedw, freew, fixedx, freex, flag= 0, lastw= 0; - x= litem->x; + /* x= litem->x; */ /* UNUSED */ y= litem->y; w= litem->w; totw= 0; diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 9ed3cabb4cb..3b20533dcd4 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -575,8 +575,8 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) ui_draw_tria_rect(&itemrect, 'h'); else ui_draw_tria_rect(&itemrect, 'v'); - - + + (void)ofsx; } /************************** panel alignment *************************/ diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index f388710d5b8..34315494e14 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2197,7 +2197,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * /* create list items */ RNA_PROP_BEGIN(ptr, itemptr, prop) { /* create button */ - if(i == 9) + if(!(i % 9)) row= uiLayoutRow(col, 0); icon= list_item_icon_get(C, &itemptr, rnaicon, 1); @@ -2212,7 +2212,6 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * } else if(listtype == 'c') { /* compact layout */ - found= 0; row= uiLayoutRow(layout, 1); -- cgit v1.2.3 From 955ba3f7fb5bca6d454ee6a1158cbdc094d6d060 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 26 Jul 2011 20:22:54 +0000 Subject: * Fixed a typo in the code (uiLayoutItemSplt -> uiLayoutItemSplit) --- source/blender/editors/interface/interface_layout.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index b309198d937..2f0bcc9d5b4 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -149,10 +149,10 @@ typedef struct uiLayoutItemBx { uiBut *roundbox; } uiLayoutItemBx; -typedef struct uiLayoutItemSplt { +typedef struct uiLayoutItemSplit { uiLayout litem; float percentage; -} uiLayoutItemSplt; +} uiLayoutItemSplit; typedef struct uiLayoutItemRoot { uiLayout litem; @@ -2020,7 +2020,7 @@ static void ui_litem_estimate_split(uiLayout *litem) static void ui_litem_layout_split(uiLayout *litem) { - uiLayoutItemSplt *split= (uiLayoutItemSplt*)litem; + uiLayoutItemSplit *split= (uiLayoutItemSplit*)litem; uiItem *item; float percentage; const int tot= BLI_countlist(&litem->items); @@ -2242,9 +2242,9 @@ uiLayout *uiLayoutOverlap(uiLayout *layout) uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, int align) { - uiLayoutItemSplt *split; + uiLayoutItemSplit *split; - split= MEM_callocN(sizeof(uiLayoutItemSplt), "uiLayoutItemSplt"); + split= MEM_callocN(sizeof(uiLayoutItemSplit), "uiLayoutItemSplit"); split->litem.item.type= ITEM_LAYOUT_SPLIT; split->litem.root= layout->root; split->litem.align= align; -- cgit v1.2.3 From f54068719f8f1965ffd3584f9f8ad53b3c7f9602 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 26 Jul 2011 22:43:07 +0000 Subject: shift-motion to pan with 3D mouse --- source/blender/editors/space_view3d/view3d_edit.c | 81 ++++++++++++++++++++-- .../blender/editors/space_view3d/view3d_intern.h | 3 +- source/blender/editors/space_view3d/view3d_ops.c | 6 +- 3 files changed, 83 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 999120a0987..b343718d39b 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1104,12 +1104,12 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -void VIEW3D_OT_ndof(struct wmOperatorType *ot) +void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot) { /* identifiers */ - ot->name = "Navigate view"; - ot->description = "Navigate the view using a 3D mouse."; - ot->idname = "VIEW3D_OT_ndof"; + ot->name = "NDOF Orbit View"; + ot->description = "Explore every angle of an object using the 3D mouse."; + ot->idname = "VIEW3D_OT_ndof_orbit"; /* api callbacks */ ot->invoke = ndof_orbit_invoke; @@ -1119,6 +1119,79 @@ void VIEW3D_OT_ndof(struct wmOperatorType *ot) ot->flag = 0; } +static int ndof_pan_invoke(bContext *C, wmOperator *op, wmEvent *event) +// -- "pan" navigation +// -- zoom or dolly? +{ + RegionView3D* rv3d = CTX_wm_region_view3d(C); + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + + rv3d->rot_angle = 0.f; // we're panning here! so erase any leftover rotation from other operators + + if (ndof->progress != P_FINISHING) { + const float dt = ndof->dt; + float view_inv[4]; +#if 0 // ------------------------------------------- zoom with Z + // tune these until everything feels right + const float zoom_sensitivity = 1.f; + const float pan_sensitivity = 1.f; + + float pan_vec[3] = { + ndof->tx, ndof->ty, 0 + }; + + // "zoom in" or "translate"? depends on zoom mode in user settings? + if (ndof->tz) { + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; + rv3d->dist += zoom_distance; + } + + mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); +#else // ------------------------------------------------------- dolly with Z + float speed = 10.f; // blender units per second + // ^^ this is ok for default cube scene, but should scale with.. something + + // tune these until everything feels right + const float forward_sensitivity = 1.f; + const float vertical_sensitivity = 0.4f; + const float lateral_sensitivity = 0.6f; + + float pan_vec[3] = { + lateral_sensitivity * ndof->tx, + vertical_sensitivity * ndof->ty, + forward_sensitivity * ndof->tz + }; + + mul_v3_fl(pan_vec, speed * dt); +#endif + /* transform motion from view to world coordinates */ + invert_qt_qt(view_inv, rv3d->viewquat); + mul_qt_v3(view_inv, pan_vec); + + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, pan_vec); + } + + ED_region_tag_redraw(CTX_wm_region(C)); + + return OPERATOR_FINISHED; +} + +void VIEW3D_OT_ndof_pan(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "NDOF Pan View"; + ot->description = "Position your viewpoint with the 3D mouse."; + ot->idname = "VIEW3D_OT_ndof_pan"; + + /* api callbacks */ + ot->invoke = ndof_pan_invoke; + ot->poll = ED_operator_view3d_active; + + /* flags */ + ot->flag = 0; +} + /* ************************ viewmove ******************************** */ diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 28e0e48f220..c4207b0ce25 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -73,7 +73,8 @@ void VIEW3D_OT_dolly(struct wmOperatorType *ot); void VIEW3D_OT_zoom_camera_1_to_1(struct wmOperatorType *ot); void VIEW3D_OT_move(struct wmOperatorType *ot); void VIEW3D_OT_rotate(struct wmOperatorType *ot); -void VIEW3D_OT_ndof(struct wmOperatorType *ot); +void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot); +void VIEW3D_OT_ndof_pan(struct wmOperatorType *ot); void VIEW3D_OT_view_all(struct wmOperatorType *ot); void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot); void VIEW3D_OT_view_selected(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 963e7aeeb95..e47cb1db753 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -64,7 +64,8 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_zoom); WM_operatortype_append(VIEW3D_OT_zoom_camera_1_to_1); WM_operatortype_append(VIEW3D_OT_dolly); - WM_operatortype_append(VIEW3D_OT_ndof); + WM_operatortype_append(VIEW3D_OT_ndof_orbit); + WM_operatortype_append(VIEW3D_OT_ndof_pan); WM_operatortype_append(VIEW3D_OT_view_all); WM_operatortype_append(VIEW3D_OT_viewnumpad); WM_operatortype_append(VIEW3D_OT_view_orbit); @@ -163,7 +164,8 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1); /* 3D mouse */ - WM_keymap_add_item(keymap, "VIEW3D_OT_ndof", NDOF_MOTION, 0, 0, 0); + WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit", NDOF_MOTION, 0, 0, 0); + WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_pan", NDOF_MOTION, 0, KM_SHIFT, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON_FIT, KM_PRESS, 0, 0); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_FRONT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_BACK, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BACK); -- cgit v1.2.3 From 48a64ffa702b0b7599aa8d8071d4a2265e9ba122 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Jul 2011 06:55:20 +0000 Subject: more minor warning cleanups and improve error reporting if text fails to save. --- source/blender/blenkernel/intern/seqeffects.c | 2 +- source/blender/blenkernel/intern/text.c | 2 ++ source/blender/editors/armature/editarmature.c | 2 -- source/blender/editors/space_node/node_draw.c | 13 +++++++------ .../blender/editors/space_sequencer/sequencer_add.c | 6 +++--- source/blender/editors/space_text/text_ops.c | 21 +++++++++++++-------- source/blender/gpu/intern/gpu_material.c | 2 +- 7 files changed, 27 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index fbb5a77fa04..8c19b0c15c3 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2373,7 +2373,7 @@ static void RVBlurBitmap2_float ( float* map, int width,int height, /* Blancmange (bmange@airdmhor.gen.nz) */ k = -1.0f/(2.0f*(float)M_PI*blur*blur); - fval=0; + for (ix = 0;ix< halfWidth;ix++){ weight = (float)exp(k*(ix*ix)); filter[halfWidth - ix] = weight; diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index 56723476251..2c507370288 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -1423,6 +1423,8 @@ void txt_insert_buf(Text *text, const char *in_buffer) } undoing= u; + + (void)count; } /******************/ diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 20352206121..628cdbf21e9 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -1478,10 +1478,8 @@ static int armature_select_linked_invoke(bContext *C, wmOperator *op, wmEvent *e bArmature *arm; EditBone *bone, *curBone, *next; int extend= RNA_boolean_get(op->ptr, "extend"); - ARegion *ar; Object *obedit= CTX_data_edit_object(C); arm= obedit->data; - ar= CTX_wm_region(C); view3d_operator_needs_opengl(C); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index cd1fa5c16a7..950b3c72fe7 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -781,14 +781,15 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } { /* always hide/reveal unused sockets */ - int shade; - - iconofs-=iconbutw; // XXX re-enable - /*if(node_has_hidden_sockets(node)) + /* int shade; + if(node_has_hidden_sockets(node)) shade= -40; - else*/ - shade= -90; + else + shade= -90; */ + + iconofs-=iconbutw; + uiDefIconBut(node->block, LABEL, B_REDR, ICON_PLUS, iconofs, rct->ymax-NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index f6e3dc3dd0a..36e334990cb 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -303,7 +303,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad Scene *scene= CTX_data_scene(C); /* only for sound */ Editing *ed= seq_give_editing(scene, TRUE); SeqLoadInfo seq_load; - Sequence *seq; + /* Sequence *seq; */ /* UNUSED */ int tot_files; seq_load_operator_info(&seq_load, op); @@ -324,13 +324,13 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad RNA_string_get(&itemptr, "name", file_only); BLI_join_dirfile(seq_load.path, sizeof(seq_load.path), dir_only, file_only); - seq= seq_load_func(C, ed->seqbasep, &seq_load); + /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); } RNA_END; } else { /* single file */ - seq= seq_load_func(C, ed->seqbasep, &seq_load); + /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); } if (seq_load.tot_success==0) { diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 2bd6bd624df..13eb24ed1f2 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -36,6 +36,7 @@ #include #include /* ispunct */ #include +#include #include "MEM_guardedalloc.h" @@ -449,15 +450,14 @@ static void txt_write_file(Text *text, ReportList *reports) FILE *fp; TextLine *tmp; struct stat st; - int res; - char file[FILE_MAXDIR+FILE_MAXFILE]; + char filepath[FILE_MAXDIR+FILE_MAXFILE]; - BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE); - BLI_path_abs(file, G.main->name); + BLI_strncpy(filepath, text->name, FILE_MAXDIR+FILE_MAXFILE); + BLI_path_abs(filepath, G.main->name); - fp= fopen(file, "w"); + fp= fopen(filepath, "w"); if(fp==NULL) { - BKE_report(reports, RPT_ERROR, "Unable to save file."); + BKE_reportf(reports, RPT_ERROR, "Unable to save \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error writing file"); return; } @@ -471,8 +471,13 @@ static void txt_write_file(Text *text, ReportList *reports) fclose (fp); - res= stat(file, &st); - text->mtime= st.st_mtime; + if(stat(filepath, &st) == 0) { + text->mtime= st.st_mtime; + } + else { + text->mtime= 0; + BKE_reportf(reports, RPT_WARNING, "Unable to stat \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error starrng file"); + } if(text->flags & TXT_ISDIRTY) text->flags ^= TXT_ISDIRTY; diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 3804aad6848..806c70d841f 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -671,7 +671,7 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la i = is; GPU_link(mat, "shade_visifac", i, visifac, shi->refl, &i); - vn = shi->vn; + /*if(ma->mode & MA_TANGENT_VN) GPU_link(mat, "shade_tangent_v_spec", GPU_attribute(CD_TANGENT, ""), &vn);*/ -- cgit v1.2.3 From 46cea372669f25b691fd90dc792a1fee33e36887 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Jul 2011 07:22:31 +0000 Subject: fix [#28066] Unchecking 'self project' messes up 'Snap to Vertex' this option is useful for all non-grid snapping modes (when in editmode) so make available in those cases too. --- source/blender/editors/transform/transform.h | 2 +- source/blender/editors/transform/transform_snap.c | 8 ++++---- source/blender/makesdna/DNA_scene_types.h | 2 +- source/blender/makesrna/intern/rna_scene.c | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index d8e750acb88..d8e42488787 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -96,7 +96,7 @@ typedef struct TransSnap { short modeSelect; short align; char project; - char project_self; + char snap_self; short peel; short status; float snapPoint[3]; /* snapping from this point */ diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index a4307ea336d..933d90ebbf2 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -392,7 +392,7 @@ static void initSnappingMode(TransInfo *t) } else { - t->tsnap.modeSelect = t->tsnap.project_self ? SNAP_ALL : SNAP_NOT_OBEDIT; + t->tsnap.modeSelect = t->tsnap.snap_self ? SNAP_ALL : SNAP_NOT_OBEDIT; } } /* Particles edit mode*/ @@ -458,9 +458,9 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project"); } - if (RNA_struct_find_property(op->ptr, "use_snap_project_self")) + if (RNA_struct_find_property(op->ptr, "use_snap_self")) { - t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project_self"); + t->tsnap.snap_self = RNA_boolean_get(op->ptr, "use_snap_self"); } } } @@ -473,7 +473,7 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); - t->tsnap.project_self = !((t->settings->snap_flag & SCE_SNAP_PROJECT_NO_SELF) == SCE_SNAP_PROJECT_NO_SELF); + t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 8203a4dd77c..2211f93a8ae 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1074,7 +1074,7 @@ typedef struct Scene { #define SCE_SNAP_ROTATE 2 #define SCE_SNAP_PEEL_OBJECT 4 #define SCE_SNAP_PROJECT 8 -#define SCE_SNAP_PROJECT_NO_SELF 16 +#define SCE_SNAP_NO_SELF 16 /* toolsettings->snap_target */ #define SCE_SNAP_TARGET_CLOSEST 0 #define SCE_SNAP_TARGET_CENTER 1 diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index d9475eaa683..f4028e45e96 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1178,9 +1178,9 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_RETOPO, 0); RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ - prop= RNA_def_property(srna, "use_snap_project_self", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT_NO_SELF); - RNA_def_property_ui_text(prop, "Project to Self", "Project into its self (editmode)"); + prop= RNA_def_property(srna, "use_snap_self", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_NO_SELF); + RNA_def_property_ui_text(prop, "Project to Self", "Snap onto its self (editmode)"); RNA_def_property_ui_icon(prop, ICON_ORTHO, 0); RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ -- cgit v1.2.3 From 73a9ce7ec04bd1170b292c8f2c83a8c5c10a95ad Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 27 Jul 2011 07:42:53 +0000 Subject: svn merge -r38558:38752 https://svn.blender.org/svnroot/bf-blender/trunk/blender . --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_effect.h | 1 + source/blender/blenkernel/CMakeLists.txt | 4 + source/blender/blenkernel/SConscript | 1 + source/blender/blenkernel/intern/effect.c | 23 +-- source/blender/blenkernel/intern/seqeffects.c | 2 +- source/blender/blenkernel/intern/text.c | 10 +- source/blender/blenkernel/intern/writeavi.c | 7 +- .../blender/blenkernel/intern/writeframeserver.c | 2 + source/blender/editors/armature/editarmature.c | 2 - source/blender/editors/include/ED_node.h | 3 + .../blender/editors/interface/interface_handlers.c | 11 +- .../blender/editors/interface/interface_layout.c | 12 +- source/blender/editors/interface/interface_panel.c | 4 +- .../blender/editors/interface/interface_regions.c | 11 ++ .../editors/interface/interface_templates.c | 20 +- source/blender/editors/object/object_add.c | 4 +- source/blender/editors/object/object_edit.c | 12 +- source/blender/editors/render/render_shading.c | 2 +- source/blender/editors/space_image/image_ops.c | 6 +- source/blender/editors/space_node/drawnode.c | 15 +- source/blender/editors/space_node/node_draw.c | 13 +- source/blender/editors/space_node/node_edit.c | 150 +++++++++++++- .../editors/space_sequencer/sequencer_add.c | 6 +- source/blender/editors/space_text/text_ops.c | 21 +- source/blender/editors/space_view3d/view3d_edit.c | 1 - .../blender/editors/space_view3d/view3d_header.c | 11 -- source/blender/editors/transform/transform.c | 2 +- source/blender/editors/transform/transform.h | 2 +- .../editors/transform/transform_conversions.c | 14 +- .../blender/editors/transform/transform_generics.c | 2 +- source/blender/editors/transform/transform_ops.c | 2 + source/blender/editors/transform/transform_snap.c | 13 +- source/blender/editors/util/undo.c | 8 +- source/blender/editors/uvedit/uvedit_ops.c | 131 ++++++++++++ source/blender/gpu/intern/gpu_material.c | 2 +- source/blender/imbuf/IMB_imbuf.h | 2 +- source/blender/imbuf/intern/filter.c | 219 +++++++++++---------- source/blender/makesdna/DNA_node_types.h | 4 + source/blender/makesdna/DNA_scene_types.h | 5 +- source/blender/makesrna/intern/CMakeLists.txt | 4 + source/blender/makesrna/intern/SConscript | 2 + source/blender/makesrna/intern/rna_access.c | 6 +- source/blender/makesrna/intern/rna_object_api.c | 2 +- source/blender/makesrna/intern/rna_scene.c | 10 +- source/blender/makesrna/intern/rna_wm.c | 2 +- source/blender/python/mathutils/mathutils.h | 2 + source/blender/python/mathutils/mathutils_Matrix.c | 14 +- .../python/mathutils/mathutils_Quaternion.c | 26 ++- source/blender/python/mathutils/mathutils_Vector.c | 80 +++++++- .../blender/render/intern/source/convertblender.c | 12 +- source/blender/render/intern/source/rendercore.c | 22 +-- source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm.c | 6 + 54 files changed, 713 insertions(+), 238 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 25fb6f9f9ff..18f6ad21333 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -53,7 +53,7 @@ extern "C" { /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR a /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE release +#define BLENDER_VERSION_CYCLE beta struct ListBase; struct MemFile; diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h index 97ac711651b..12f9383cefb 100644 --- a/source/blender/blenkernel/BKE_effect.h +++ b/source/blender/blenkernel/BKE_effect.h @@ -105,6 +105,7 @@ typedef struct EffectorCache { /* precalculated for guides */ struct GuideEffectorData *guide_data; float guide_loc[4], guide_dir[3], guide_radius; + float velocity[3]; float frame; int flag; diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 9a384c40e24..defcef58463 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -279,6 +279,10 @@ if(WITH_IMAGE_CINEON) add_definitions(-DWITH_CINEON) endif() +if(WITH_IMAGE_FRAMESERVER) + add_definitions(-DWITH_FRAMESERVER) +endif() + if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index 36afce7946c..5ea42ee65ae 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -22,6 +22,7 @@ incs += ' ' + env['BF_ZLIB_INC'] defs = [ 'GLEW_STATIC' ] defs.append('WITH_SMOKE') # TODO, make optional +defs.append('WITH_FRAMESERVER') # TODO, make optional if env['WITH_BF_PYTHON']: incs += ' ../python' diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index ee46bef6038..4b95c44f55f 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -241,6 +241,16 @@ static void precalculate_effector(EffectorCache *eff) } else if(eff->psys) psys_update_particle_tree(eff->psys, eff->scene->r.cfra); + + /* Store object velocity */ + if(eff->ob) { + float old_vel[3]; + + where_is_object_time(eff->scene, eff->ob, cfra - 1.0f); + copy_v3_v3(old_vel, eff->ob->obmat[3]); + where_is_object_time(eff->scene, eff->ob, cfra); + sub_v3_v3v3(eff->velocity, eff->ob->obmat[3], old_vel); + } } static EffectorCache *new_effector_cache(Scene *scene, Object *ob, ParticleSystem *psys, PartDeflect *pd) { @@ -680,10 +690,6 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin Object *ob = eff->ob; Object obcopy = *ob; - /* XXX this is not thread-safe, but used from multiple threads by - particle system */ - where_is_object_time(eff->scene, ob, cfra); - /* use z-axis as normal*/ normalize_v3_v3(efd->nor, ob->obmat[2]); @@ -702,13 +708,8 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin VECCOPY(efd->loc, ob->obmat[3]); } - if(real_velocity) { - VECCOPY(efd->vel, ob->obmat[3]); - - where_is_object_time(eff->scene, ob, cfra - 1.0f); - - sub_v3_v3v3(efd->vel, efd->vel, ob->obmat[3]); - } + if(real_velocity) + copy_v3_v3(efd->vel, eff->velocity); *eff->ob = obcopy; diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index fbb5a77fa04..8c19b0c15c3 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2373,7 +2373,7 @@ static void RVBlurBitmap2_float ( float* map, int width,int height, /* Blancmange (bmange@airdmhor.gen.nz) */ k = -1.0f/(2.0f*(float)M_PI*blur*blur); - fval=0; + for (ix = 0;ix< halfWidth;ix++){ weight = (float)exp(k*(ix*ix)); filter[halfWidth - ix] = weight; diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index da329503c9f..2c507370288 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -400,7 +400,13 @@ Text *add_text(const char *file, const char *relpath) llen++; } - if (llen!=0 || ta->nlines==0) { + /* create new line in cases: + - rest of line (if last line in file hasn't got \n terminator). + in this case content of such line would be used to fill text line buffer + - file is empty. in this case new line is needed to start editing from. + - last characted in buffer is \n. in this case new line is needed to + deal with newline at end of file. (see [#28087]) (sergey) */ + if (llen!=0 || ta->nlines==0 || buffer[len-1]=='\n') { tmp= (TextLine*) MEM_mallocN(sizeof(TextLine), "textline"); tmp->line= (char*) MEM_mallocN(llen+1, "textline_string"); tmp->format= NULL; @@ -1417,6 +1423,8 @@ void txt_insert_buf(Text *text, const char *in_buffer) } undoing= u; + + (void)count; } /******************/ diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c index ba7f9bdd415..769a3f9b11e 100644 --- a/source/blender/blenkernel/intern/writeavi.c +++ b/source/blender/blenkernel/intern/writeavi.c @@ -105,13 +105,18 @@ bMovieHandle *BKE_get_movie_handle(int imtype) mh.get_movie_path = filepath_ffmpeg; } #endif +#ifdef WITH_FRAMESERVER if (imtype == R_FRAMESERVER) { mh.start_movie = start_frameserver; mh.append_movie = append_frameserver; mh.end_movie = end_frameserver; mh.get_next_frame = frameserver_loop; } - +#endif + + /* incase all above are disabled */ + (void)imtype; + return &mh; } diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c index 2239f6d3147..d13d15d1269 100644 --- a/source/blender/blenkernel/intern/writeframeserver.c +++ b/source/blender/blenkernel/intern/writeframeserver.c @@ -22,6 +22,7 @@ * */ +#ifdef WITH_FRAMESERVER #include #include @@ -381,3 +382,4 @@ void end_frameserver(void) shutdown_socket_system(); } +#endif /* WITH_FRAMESERVER */ diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 20352206121..628cdbf21e9 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -1478,10 +1478,8 @@ static int armature_select_linked_invoke(bContext *C, wmOperator *op, wmEvent *e bArmature *arm; EditBone *bone, *curBone, *next; int extend= RNA_boolean_get(op->ptr, "extend"); - ARegion *ar; Object *obedit= CTX_data_edit_object(C); arm= obedit->data; - ar= CTX_wm_region(C); view3d_operator_needs_opengl(C); diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index 829ad3217a9..dfa457c22de 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -39,6 +39,7 @@ struct Tex; struct bContext; struct bNode; struct ID; +struct ScrArea; /* drawnode.c */ void ED_init_node_butfuncs(void); @@ -51,6 +52,8 @@ void ED_node_generic_update(struct Main *bmain, struct bNodeTree *ntree, struct void ED_node_shader_default(struct Material *ma); void ED_node_composit_default(struct Scene *sce); void ED_node_texture_default(struct Tex *tex); +void ED_node_link_intersect_test(struct ScrArea *sa, int test); +void ED_node_link_insert(struct ScrArea *sa); /* node ops.c */ void ED_operatormacros_node(void); diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index e9ec4ccc66d..c5275ea98b5 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1879,7 +1879,6 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle if(but->autocomplete_func || data->searchbox) { changed= ui_textedit_autocomplete(C, but, data); update= 1; /* do live update for tab key */ - retval= WM_UI_HANDLER_BREAK; } /* the hotkey here is not well defined, was G.qual so we check all */ else if(event->shift || event->ctrl || event->alt || event->oskey) { @@ -2325,8 +2324,8 @@ static float ui_numedit_apply_snapf(uiBut *but, float tempf, float softmin, floa if(fac != 1.0f) { /* snap in unit-space */ tempf /= fac; - softmin /= fac; - softmax /= fac; + /* softmin /= fac; */ /* UNUSED */ + /* softmax /= fac; */ /* UNUSED */ softrange /= fac; } @@ -3469,13 +3468,13 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap, CurveMapping *cumap= (CurveMapping*)but->poin; CurveMap *cuma= cumap->cm+cumap->cur; CurveMapPoint *cmp= cuma->curve; - float fx, fy, zoomx, zoomy, offsx, offsy; + float fx, fy, zoomx, zoomy /*, offsx, offsy */ /* UNUSED */; int a, changed= 0; zoomx= (but->x2-but->x1)/(cumap->curr.xmax-cumap->curr.xmin); zoomy= (but->y2-but->y1)/(cumap->curr.ymax-cumap->curr.ymin); - offsx= cumap->curr.xmin; - offsy= cumap->curr.ymin; + /* offsx= cumap->curr.xmin; */ + /* offsy= cumap->curr.ymin; */ if(snap) { float d[2]; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 79a90fb9d1d..2f0bcc9d5b4 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -149,10 +149,10 @@ typedef struct uiLayoutItemBx { uiBut *roundbox; } uiLayoutItemBx; -typedef struct uiLayoutItemSplt { +typedef struct uiLayoutItemSplit { uiLayout litem; float percentage; -} uiLayoutItemSplt; +} uiLayoutItemSplit; typedef struct uiLayoutItemRoot { uiLayout litem; @@ -1615,7 +1615,7 @@ static void ui_litem_layout_row(uiLayout *litem) int x, y, w, tot, totw, neww, itemw, minw, itemh, offset; int fixedw, freew, fixedx, freex, flag= 0, lastw= 0; - x= litem->x; + /* x= litem->x; */ /* UNUSED */ y= litem->y; w= litem->w; totw= 0; @@ -2020,7 +2020,7 @@ static void ui_litem_estimate_split(uiLayout *litem) static void ui_litem_layout_split(uiLayout *litem) { - uiLayoutItemSplt *split= (uiLayoutItemSplt*)litem; + uiLayoutItemSplit *split= (uiLayoutItemSplit*)litem; uiItem *item; float percentage; const int tot= BLI_countlist(&litem->items); @@ -2242,9 +2242,9 @@ uiLayout *uiLayoutOverlap(uiLayout *layout) uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, int align) { - uiLayoutItemSplt *split; + uiLayoutItemSplit *split; - split= MEM_callocN(sizeof(uiLayoutItemSplt), "uiLayoutItemSplt"); + split= MEM_callocN(sizeof(uiLayoutItemSplit), "uiLayoutItemSplit"); split->litem.item.type= ITEM_LAYOUT_SPLIT; split->litem.root= layout->root; split->litem.align= align; diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 9ed3cabb4cb..3b20533dcd4 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -575,8 +575,8 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) ui_draw_tria_rect(&itemrect, 'h'); else ui_draw_tria_rect(&itemrect, 'v'); - - + + (void)ofsx; } /************************** panel alignment *************************/ diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 62043f240e4..9e7717260e6 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -484,6 +484,17 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) } } } + else if (ELEM(but->type, MENU, PULLDOWN)) { + if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) { + if(but->menu_create_func && WM_menutype_contains((MenuType *)but->poin)) { + MenuType *mt= (MenuType *)but->poin; + BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s", mt->idname); + data->color[data->totline]= 0x888888; + data->totline++; + } + } + + } assert(data->totline < MAX_TOOLTIP_LINES); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 25dbb68a258..34315494e14 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -851,7 +851,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr) /* verify we have valid data */ if(!RNA_struct_is_a(ptr->type, &RNA_Modifier)) { - RNA_warning("uiTemplateModifier: expected modifier on object.\n"); + RNA_warning("uiTemplateModifier: Expected modifier on object.\n"); return NULL; } @@ -859,7 +859,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr) md= ptr->data; if(!ob || !(GS(ob->id.name) == ID_OB)) { - RNA_warning("uiTemplateModifier: expected modifier on object.\n"); + RNA_warning("uiTemplateModifier: Expected modifier on object.\n"); return NULL; } @@ -976,9 +976,6 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con) block= uiLayoutGetBlock(box); /* Draw constraint header */ - - /* rounded header */ - // rb_col= (con->flag & CONSTRAINT_ACTIVE)?50:20; // UNUSED /* open/close */ uiBlockSetEmboss(block, UI_EMBOSSN); @@ -1083,7 +1080,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr) /* verify we have valid data */ if(!RNA_struct_is_a(ptr->type, &RNA_Constraint)) { - RNA_warning("uiTemplateConstraint: expected constraint on object.\n"); + RNA_warning("uiTemplateConstraint: Expected constraint on object.\n"); return NULL; } @@ -1091,7 +1088,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr) con= ptr->data; if(!ob || !(GS(ob->id.name) == ID_OB)) { - RNA_warning("uiTemplateConstraint: expected constraint on object.\n"); + RNA_warning("uiTemplateConstraint: Expected constraint on object.\n"); return NULL; } @@ -1137,7 +1134,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, M PointerRNA texture_ptr; if(id && !ELEM4(GS(id->name), ID_MA, ID_TE, ID_WO, ID_LA)) { - RNA_warning("uiTemplatePreview: expected ID of type material, texture, lamp or world.\n"); + RNA_warning("uiTemplatePreview: Expected ID of type material, texture, lamp or world.\n"); return; } @@ -2171,14 +2168,14 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * if(prop) { type= RNA_property_type(prop); if(type != PROP_COLLECTION) { - RNA_warning("uiTemplateList: expected collection property.\n"); + RNA_warning("uiTemplateList: Expected collection property.\n"); return; } } activetype= RNA_property_type(activeprop); if(activetype != PROP_INT) { - RNA_warning("uiTemplateList: expected integer property.\n"); + RNA_warning("uiTemplateList: Expected integer property.\n"); return; } @@ -2200,7 +2197,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * /* create list items */ RNA_PROP_BEGIN(ptr, itemptr, prop) { /* create button */ - if(i == 9) + if(!(i % 9)) row= uiLayoutRow(col, 0); icon= list_item_icon_get(C, &itemptr, rnaicon, 1); @@ -2215,7 +2212,6 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * } else if(listtype == 'c') { /* compact layout */ - found= 0; row= uiLayoutRow(layout, 1); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 7ca172c6945..f5f97c6a5f6 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -806,14 +806,14 @@ static int object_delete_exec(bContext *C, wmOperator *UNUSED(op)) { Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); - int islamp= 0; + /* int islamp= 0; */ /* UNUSED */ if(CTX_data_edit_object(C)) return OPERATOR_CANCELLED; CTX_DATA_BEGIN(C, Base*, base, selected_bases) { - if(base->object->type==OB_LAMP) islamp= 1; + /* if(base->object->type==OB_LAMP) islamp= 1; */ /* deselect object -- it could be used in other scenes */ base->object->flag &= ~SELECT; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 29a740affc5..395705dc029 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -2162,16 +2162,20 @@ static int game_property_copy_exec(bContext *C, wmOperator *op) } CTX_DATA_END; } } - else if (ELEM(type, COPY_PROPERTIES_REPLACE, COPY_PROPERTIES_MERGE)) { + + else { CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { if (ob != ob_iter) { if (ob->data != ob_iter->data){ - if (type == 2) {/* merge */ + if (type == COPY_PROPERTIES_REPLACE) + copy_properties( &ob_iter->prop, &ob->prop ); + + /* merge - the default when calling with no argument */ + else { for(prop = ob->prop.first; prop; prop= prop->next ) { set_ob_property(ob_iter, prop); } - } else /* replace */ - copy_properties( &ob_iter->prop, &ob->prop ); + } } } } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index fdd53d27b02..cfed2750e18 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -108,7 +108,7 @@ void OBJECT_OT_material_slot_add(wmOperatorType *ot) /* identifiers */ ot->name= "Add Material Slot"; ot->idname= "OBJECT_OT_material_slot_add"; - ot->description="Add a new material slot or duplicate the selected one"; + ot->description="Add a new material slot"; /* api callbacks */ ot->exec= material_slot_add_exec; diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 77fb129e278..204d5dfb1b1 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -554,7 +554,7 @@ static int view_selected_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene; Object *obedit; Image *ima; - float size, min[2], max[2], d[2]; + float size, min[2], max[2], d[2], aspx, aspy; int width, height; /* retrieve state */ @@ -565,6 +565,10 @@ static int view_selected_exec(bContext *C, wmOperator *UNUSED(op)) ima= ED_space_image(sima); ED_space_image_size(sima, &width, &height); + ED_image_aspect(ima, &aspx, &aspy); + + width= width*aspx; + height= height*aspy; /* get bounds */ if(!ED_uvedit_minmax(scene, ima, obedit, min, max)) diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 1bf2c3d89bd..50e657bbb61 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1869,10 +1869,17 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) else { /* check cyclic */ if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) { - if(link->fromnode->flag & SELECT) - th_col1= TH_EDGE_SELECT; - if(link->tonode->flag & SELECT) - th_col2= TH_EDGE_SELECT; + /* special indicated link, on drop-node */ + if(link->flag & NODE_LINKFLAG_HILITE) { + th_col1= th_col2= TH_ACTIVE; + } + else { + /* regular link */ + if(link->fromnode->flag & SELECT) + th_col1= TH_EDGE_SELECT; + if(link->tonode->flag & SELECT) + th_col2= TH_EDGE_SELECT; + } do_shaded= 1; do_triple= 1; } diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index cd1fa5c16a7..950b3c72fe7 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -781,14 +781,15 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } { /* always hide/reveal unused sockets */ - int shade; - - iconofs-=iconbutw; // XXX re-enable - /*if(node_has_hidden_sockets(node)) + /* int shade; + if(node_has_hidden_sockets(node)) shade= -40; - else*/ - shade= -90; + else + shade= -90; */ + + iconofs-=iconbutw; + uiDefIconBut(node->block, LABEL, B_REDR, ICON_PLUS, iconofs, rct->ymax-NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, ""); } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index abc7b273ec9..4230a43d2ec 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2492,6 +2492,151 @@ void NODE_OT_links_cut(wmOperatorType *ot) RNA_def_int(ot->srna, "cursor", BC_KNIFECURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX); } +/* ********************* automatic node insert on dragging ******************* */ + +/* assumes sockets in list */ +static bNodeSocket *socket_best_match(ListBase *sockets, int type) +{ + bNodeSocket *sock; + + /* first, match type */ + for(sock= sockets->first; sock; sock= sock->next) + if(!(sock->flag & SOCK_HIDDEN)) + if(type == sock->type) + return sock; + + /* then just use first unhidden socket */ + for(sock= sockets->first; sock; sock= sock->next) + if(!(sock->flag & SOCK_HIDDEN)) + return sock; + + /* OK, let's unhide proper one */ + for(sock= sockets->first; sock; sock= sock->next) { + if(type == sock->type) { + sock->flag &= ~SOCK_HIDDEN; + return sock; + } + } + + /* just the first */ + sock= sockets->first; + sock->flag &= ~SOCK_HIDDEN; + + return sockets->first; +} + +/* prevent duplicate testing code below */ +static SpaceNode *ed_node_link_conditions(ScrArea *sa, bNode **select) +{ + SpaceNode *snode= sa?sa->spacedata.first:NULL; + bNode *node; + bNodeLink *link; + + /* no unlucky accidents */ + if(sa==NULL || sa->spacetype!=SPACE_NODE) return NULL; + + *select= NULL; + + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & SELECT) { + if(*select) + break; + else + *select= node; + } + } + /* only one selected */ + if(node || *select==NULL) return NULL; + + /* correct node */ + if((*select)->inputs.first==NULL || (*select)->outputs.first==NULL) return NULL; + + /* test node for links */ + for(link= snode->edittree->links.first; link; link=link->next) { + if(link->tonode == *select || link->fromnode == *select) + return NULL; + } + + return snode; +} + +/* assumes link with NODE_LINKFLAG_HILITE set */ +void ED_node_link_insert(ScrArea *sa) +{ + bNode *node, *select; + SpaceNode *snode= ed_node_link_conditions(sa, &select); + bNodeLink *link; + bNodeSocket *sockto; + + if(snode==NULL) return; + + /* get the link */ + for(link= snode->edittree->links.first; link; link=link->next) + if(link->flag & NODE_LINKFLAG_HILITE) + break; + + if(link) { + node= link->tonode; + sockto= link->tosock; + + link->tonode= select; + link->tosock= socket_best_match(&select->inputs, link->fromsock->type); + link->flag &= ~NODE_LINKFLAG_HILITE; + + nodeAddLink(snode->edittree, select, socket_best_match(&select->outputs, sockto->type), node, sockto); + ntreeSolveOrder(snode->edittree); /* needed for pointers */ + snode_tag_changed(snode, select); + ED_node_changed_update(snode->id, select); + } +} + + +/* test == 0, clear all intersect flags */ +void ED_node_link_intersect_test(ScrArea *sa, int test) +{ + bNode *select; + SpaceNode *snode= ed_node_link_conditions(sa, &select); + bNodeLink *link, *selink=NULL; + float mcoords[6][2]; + + if(snode==NULL) return; + + /* clear flags */ + for(link= snode->edittree->links.first; link; link=link->next) + link->flag &= ~NODE_LINKFLAG_HILITE; + + if(test==0) return; + + /* okay, there's 1 node, without links, now intersect */ + mcoords[0][0]= select->totr.xmin; + mcoords[0][1]= select->totr.ymin; + mcoords[1][0]= select->totr.xmax; + mcoords[1][1]= select->totr.ymin; + mcoords[2][0]= select->totr.xmax; + mcoords[2][1]= select->totr.ymax; + mcoords[3][0]= select->totr.xmin; + mcoords[3][1]= select->totr.ymax; + mcoords[4][0]= select->totr.xmin; + mcoords[4][1]= select->totr.ymin; + mcoords[5][0]= select->totr.xmax; + mcoords[5][1]= select->totr.ymax; + + /* we only tag a single link for intersect now */ + /* idea; use header dist when more? */ + for(link= snode->edittree->links.first; link; link=link->next) { + + if(cut_links_intersect(link, mcoords, 5)) { /* intersect code wants edges */ + if(selink) + break; + selink= link; + } + } + + if(link==NULL && selink) + selink->flag |= NODE_LINKFLAG_HILITE; +} + + /* ******************************** */ // XXX some code needing updating to operators... @@ -2914,7 +3059,8 @@ void NODE_OT_delete(wmOperatorType *ot) /* note: in cmp_util.c is similar code, for node_compo_pass_on() */ /* used for disabling node (similar code in node_draw.c for disable line) */ -static void node_delete_reconnect(bNodeTree* tree, bNode* node) { +static void node_delete_reconnect(bNodeTree* tree, bNode* node) +{ bNodeLink *link, *next; bNodeSocket *valsocket= NULL, *colsocket= NULL, *vecsocket= NULL; bNodeSocket *deliveringvalsocket= NULL, *deliveringcolsocket= NULL, *deliveringvecsocket= NULL; @@ -3142,3 +3288,5 @@ void NODE_OT_add_file(wmOperatorType *ot) RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Datablock name to assign."); } + + diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index f6e3dc3dd0a..36e334990cb 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -303,7 +303,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad Scene *scene= CTX_data_scene(C); /* only for sound */ Editing *ed= seq_give_editing(scene, TRUE); SeqLoadInfo seq_load; - Sequence *seq; + /* Sequence *seq; */ /* UNUSED */ int tot_files; seq_load_operator_info(&seq_load, op); @@ -324,13 +324,13 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad RNA_string_get(&itemptr, "name", file_only); BLI_join_dirfile(seq_load.path, sizeof(seq_load.path), dir_only, file_only); - seq= seq_load_func(C, ed->seqbasep, &seq_load); + /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); } RNA_END; } else { /* single file */ - seq= seq_load_func(C, ed->seqbasep, &seq_load); + /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); } if (seq_load.tot_success==0) { diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 2bd6bd624df..13eb24ed1f2 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -36,6 +36,7 @@ #include #include /* ispunct */ #include +#include #include "MEM_guardedalloc.h" @@ -449,15 +450,14 @@ static void txt_write_file(Text *text, ReportList *reports) FILE *fp; TextLine *tmp; struct stat st; - int res; - char file[FILE_MAXDIR+FILE_MAXFILE]; + char filepath[FILE_MAXDIR+FILE_MAXFILE]; - BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE); - BLI_path_abs(file, G.main->name); + BLI_strncpy(filepath, text->name, FILE_MAXDIR+FILE_MAXFILE); + BLI_path_abs(filepath, G.main->name); - fp= fopen(file, "w"); + fp= fopen(filepath, "w"); if(fp==NULL) { - BKE_report(reports, RPT_ERROR, "Unable to save file."); + BKE_reportf(reports, RPT_ERROR, "Unable to save \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error writing file"); return; } @@ -471,8 +471,13 @@ static void txt_write_file(Text *text, ReportList *reports) fclose (fp); - res= stat(file, &st); - text->mtime= st.st_mtime; + if(stat(filepath, &st) == 0) { + text->mtime= st.st_mtime; + } + else { + text->mtime= 0; + BKE_reportf(reports, RPT_WARNING, "Unable to stat \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error starrng file"); + } if(text->flags & TXT_ISDIRTY) text->flags ^= TXT_ISDIRTY; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index b343718d39b..94224698063 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -129,7 +129,6 @@ void ED_view3d_camera_lock_sync(View3D *v3d, RegionView3D *rv3d) } else { ED_view3d_to_object(v3d->camera, rv3d->ofs, rv3d->viewquat, rv3d->dist); - root_parent= v3d->camera; DAG_id_tag_update(&v3d->camera->id, OB_RECALC_OB); WM_main_add_notifier(NC_OBJECT|ND_TRANSFORM, v3d->camera); } diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 75c8d5cae73..ae80a554e08 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -505,17 +505,6 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); uiItemR(row, &v3dptr, "use_pivot_point_align", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); - /* NDOF */ - /* Not implemented yet - if (G.ndofdevice ==0 ) { - uiDefIconTextButC(block, ICONTEXTROW,B_NDOF, ICON_NDOF_TURN, ndof_pup(), 0,0,UI_UNIT_X+10,UI_UNIT_Y, &(v3d->ndofmode), 0, 3.0, 0, 0, "Ndof mode"); - - uiDefIconButC(block, TOG, B_NDOF, ICON_NDOF_DOM, - 0,0,UI_UNIT_X,UI_UNIT_Y, - &v3d->ndoffilter, 0, 1, 0, 0, "dominant axis"); - } - */ - /* Transform widget / manipulators */ row= uiLayoutRow(layout, 1); uiItemR(row, &v3dptr, "show_manipulator", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 81aade5ca64..7f8d5976e86 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -969,7 +969,7 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case OKEY: if (t->flag & T_PROP_EDIT && event->shift) { - t->prop_mode = (t->prop_mode + 1) % 6; + t->prop_mode = (t->prop_mode + 1) % PROP_MODE_MAX; calculatePropRatio(t); t->redraw |= TREDRAW_HARD; } diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index d8e750acb88..d8e42488787 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -96,7 +96,7 @@ typedef struct TransSnap { short modeSelect; short align; char project; - char project_self; + char snap_self; short peel; short status; float snapPoint[3]; /* snapping from this point */ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 16bfc75c979..0a5e290643a 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -87,6 +87,7 @@ #include "ED_object.h" #include "ED_markers.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_types.h" #include "ED_uvedit.h" #include "ED_curve.h" /* for ED_curve_editnurbs */ @@ -2182,6 +2183,12 @@ void flushTransNodes(TransInfo *t) td->loc2d[0]= td->loc[0]; td->loc2d[1]= td->loc[1]; } + + /* handle intersection with noodles */ + if(t->total==1) { + ED_node_link_intersect_test(t->sa, 1); + } + } /* *** SEQUENCE EDITOR *** */ @@ -4756,7 +4763,12 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } else if (t->spacetype == SPACE_NODE) { - /* pass */ + if(cancelled == 0) + ED_node_link_insert(t->sa); + + /* clear link line */ + ED_node_link_intersect_test(t->sa, 0); + } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 20a26d8c58d..6d0a978700f 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1070,7 +1070,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } } // Need stuff to take it from edit mesh or whatnot here - else + else if (t->spacetype == SPACE_VIEW3D) { if (t->obedit && t->obedit->type == OB_MESH && (((Mesh *)t->obedit->data)->editflag & ME_EDIT_MIRROR_X)) { diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 0b0b22fb689..a779982099e 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -960,6 +960,8 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); + WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index d9d9b0f9102..933d90ebbf2 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -392,7 +392,7 @@ static void initSnappingMode(TransInfo *t) } else { - t->tsnap.modeSelect = t->tsnap.project_self ? SNAP_ALL : SNAP_NOT_OBEDIT; + t->tsnap.modeSelect = t->tsnap.snap_self ? SNAP_ALL : SNAP_NOT_OBEDIT; } } /* Particles edit mode*/ @@ -458,9 +458,9 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project"); } - if (RNA_struct_find_property(op->ptr, "use_snap_project_self")) + if (RNA_struct_find_property(op->ptr, "use_snap_self")) { - t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project_self"); + t->tsnap.snap_self = RNA_boolean_get(op->ptr, "use_snap_self"); } } } @@ -473,7 +473,7 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); - t->tsnap.project_self = !((t->settings->snap_flag & SCE_SNAP_PROJECT_NO_SELF) == SCE_SNAP_PROJECT_NO_SELF); + t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); } @@ -1944,6 +1944,11 @@ static void applyGrid(TransInfo *t, float *val, int max_index, float fac[3], Gea int i; float asp[3] = {1.0f, 1.0f, 1.0f}; // TODO: Remove hard coded limit here (3) + if(max_index > 3) { + printf("applyGrid: invalid index %d, clamping\n", max_index); + max_index= 3; + } + // Early bailing out if no need to snap if (fac[action] == 0.0f) return; diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index 8a6ec7f75db..a2381a208ef 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -358,19 +358,25 @@ int ED_undo_operator_repeat(bContext *C, struct wmOperator *op) ret= 1; } } + else { + if (G.f & G_DEBUG) { + printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name); + } + } /* set region back */ CTX_wm_region_set(C, ar); } else { if (G.f & G_DEBUG) { - printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name); + printf("redo_cb: ED_undo_operator_repeat called with NULL 'op'\n"); } } return ret; } + void ED_undo_operator_repeat_cb(bContext *C, void *arg_op, void *UNUSED(arg_unused)) { ED_undo_operator_repeat(C, (wmOperator *)arg_op); diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index c09f8cff02d..70659994c55 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1057,6 +1057,134 @@ static void weld_align_uv(bContext *C, int tool) } } + if(tool == 's' || tool == 't' || tool == 'u') { + /* pass 1&2 variables */ + int i, j; + int starttmpl= -1, connectedtostarttmpl= -1, startcorner; + int endtmpl= -1, connectedtoendtmpl= -1, endcorner; + MTFace *startface, *endface; + int itmpl, jtmpl; + EditVert *eve; + int pass; /* first 2 passes find endpoints, 3rd pass moves middle points, 4th pass is fail-on-face-selected */ + EditFace *startefa, *endefa; + + /* pass 3 variables */ + float startx, starty, firstm, firstb, midx, midy; + float endx, endy, secondm, secondb, midmovedx, midmovedy; + float IsVertical_check= -1; + float IsHorizontal_check= -1; + + for(i= 0, eve= em->verts.first; eve; eve= eve->next, i++) /* give each point a unique name */ + eve->tmp.l= i; + for(pass= 1; pass <= 3; pass++) { /* do this for each endpoint */ + if(pass == 3){ /* calculate */ + startx= startface->uv[startcorner][0]; + starty= startface->uv[startcorner][1]; + endx= endface->uv[endcorner][0]; + endy= endface->uv[endcorner][1]; + firstm= (endy-starty)/(endx-startx); + firstb= starty-(firstm*startx); + secondm= -1.0f/firstm; + if(startx == endx) IsVertical_check= startx; + if(starty == endy) IsHorizontal_check= starty; + } + for(efa= em->faces.first; efa; efa= efa->next) { /* for each face */ + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); /* get face */ + if(uvedit_face_visible(scene, ima, efa, tf)) { /* if you can see it */ + if(uvedit_face_selected(scene, efa, tf)) { /* if the face is selected, get out now! */ + pass= 4; + break; + } + for(i= 0; (i < 3 || (i == 3 && efa->v4)); i++) { /* for each point of the face */ + itmpl= (*(&efa->v1 + i))->tmp.l; /* get unique name for points */ + if(pass == 3) { /* move */ + if(uvedit_uv_selected(scene, efa, tf, i)) { + if(!(itmpl == starttmpl || itmpl == endtmpl)) { + if(IsVertical_check != -1) tf->uv[i][0]= IsVertical_check; + if(IsHorizontal_check != -1) tf->uv[i][1]= IsHorizontal_check; + if((IsVertical_check == -1) && (IsHorizontal_check == -1)) { + midx= tf->uv[i][0]; + midy= tf->uv[i][1]; + if(tool == 's') { + secondb= midy-(secondm*midx); + midmovedx= (secondb-firstb)/(firstm-secondm); + midmovedy= (secondm*midmovedx)+secondb; + tf->uv[i][0]= midmovedx; + tf->uv[i][1]= midmovedy; + } + else if(tool == 't') { + tf->uv[i][0]= (midy-firstb)/firstm; /* midmovedx */ + } + else if(tool == 'u') { + tf->uv[i][1]= (firstm*midx)+firstb; /* midmovedy */ + } + } + } + } + } + else { + for(j= 0; (j < 3 || (j == 3 && efa->v4)); j++) { /* also for each point on the face */ + jtmpl= (*(&efa->v1 + j))->tmp.l; + if(i != j && (!efa->v4 || ABS(i-j) != 2)) { /* if the points are connected */ + /* quad (0,1,2,3) 0,1 0,3 1,0 1,2 2,1 2,3 3,0 3,2 + * triangle (0,1,2) 0,1 0,2 1,0 1,2 2,0 2,1 */ + if(uvedit_uv_selected(scene, efa, tf, i) && uvedit_uv_selected(scene, efa, tf, j)) { + /* if the edge is selected */ + if(pass == 1) { /* if finding first endpoint */ + if(starttmpl == -1) { /* if the first endpoint isn't found yet */ + starttmpl= itmpl; /* set unique name for endpoint */ + connectedtostarttmpl= jtmpl; + /* get point that endpoint is connected to */ + startface= tf; /* get face it's on */ + startcorner= i; /* what corner of the face? */ + startefa= efa; + efa= em->faces.first; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= -1; + break; + } + if(starttmpl == itmpl && jtmpl != connectedtostarttmpl) { + starttmpl= -1; /* not an endpoint */ + efa= startefa; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= startcorner; + break; + } + } + else if(pass == 2) { /* if finding second endpoint */ + if(endtmpl == -1 && itmpl != starttmpl) { + endtmpl= itmpl; + connectedtoendtmpl= jtmpl; + endface= tf; + endcorner= i; + endefa= efa; + efa= em->faces.first; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= -1; + break; + } + if(endtmpl == itmpl && jtmpl != connectedtoendtmpl) { + endtmpl= -1; + efa= endefa; + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + i= endcorner; + break; + } + } + } + } + } + } + } + } + } + if(pass == 2 && (starttmpl == -1 || endtmpl == -1)) { + /* if endpoints aren't found */ + pass=4; + } + } + } + uvedit_live_unwrap_update(sima, scene, obedit); DAG_id_tag_update(obedit->data, 0); WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); @@ -1074,6 +1202,9 @@ static int align_exec(bContext *C, wmOperator *op) static void UV_OT_align(wmOperatorType *ot) { static EnumPropertyItem axis_items[] = { + {'s', "ALIGN_S", 0, "Straighten", "Align UVs along the line defined by the endpoints"}, + {'t', "ALIGN_T", 0, "Straighten X", "Align UVs along the line defined by the endpoints along the X axis"}, + {'u', "ALIGN_U", 0, "Straighten Y", "Align UVs along the line defined by the endpoints along the Y axis"}, {'a', "ALIGN_AUTO", 0, "Align Auto", "Automatically choose the axis on which there is most alignment already"}, {'x', "ALIGN_X", 0, "Align X", "Align UVs on X axis"}, {'y', "ALIGN_Y", 0, "Align Y", "Align UVs on Y axis"}, diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 3804aad6848..806c70d841f 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -671,7 +671,7 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la i = is; GPU_link(mat, "shade_visifac", i, visifac, shi->refl, &i); - vn = shi->vn; + /*if(ma->mode & MA_TANGENT_VN) GPU_link(mat, "shade_tangent_v_spec", GPU_attribute(CD_TANGENT, ""), &vn);*/ diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index ff01e3a8a1e..36123592c54 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -252,7 +252,7 @@ void IMB_filter(struct ImBuf *ibuf); void IMB_filterN(struct ImBuf *out, struct ImBuf *in); void IMB_mask_filter_extend(char *mask, int width, int height); void IMB_mask_clear(struct ImBuf *ibuf, char *mask, int val); -void IMB_filter_extend(struct ImBuf *ibuf, char *mask); +void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter); void IMB_makemipmap(struct ImBuf *ibuf, int use_filter); void IMB_remakemipmap(struct ImBuf *ibuf, int use_filter); struct ImBuf *IMB_getmipmap(struct ImBuf *ibuf, int level); diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index d12360e5a7e..1644e653df4 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -21,7 +21,7 @@ * * The Original Code is: all of this file. * - * Contributor(s): none yet. + * Contributor(s): Morten Mikkelsen. * * ***** END GPL LICENSE BLOCK ***** * filter.c @@ -326,121 +326,132 @@ void IMB_mask_clear(ImBuf *ibuf, char *mask, int val) } } -#define EXTEND_PIXEL(color, w) if((color)[3]) {r+= w*(color)[0]; g+= w*(color)[1]; b+= w*(color)[2]; a+= w*(color)[3]; tot+=w;} +static int filter_make_index(const int x, const int y, const int w, const int h) +{ + if(x<0 || x>=w || y<0 || y>=h) return -1; /* return bad index */ + else return y*w+x; +} + +static int check_pixel_assigned(const void *buffer, const char *mask, const int index, const int depth, const int is_float) +{ + int res = 0; + + if(index>=0) { + const int alpha_index = depth*index+(depth-1); + + if(mask!=NULL) { + res = mask[index]!=0 ? 1 : 0; + } + else if( (is_float && ((const float *) buffer)[alpha_index]!=0.0f) || + (!is_float && ((const unsigned char *) buffer)[alpha_index]!=0) ) { + res=1; + } + } + + return res; +} /* if alpha is zero, it checks surrounding pixels and averages color. sets new alphas to 1.0 * * When a mask is given, only effect pixels with a mask value of 1, defined as BAKE_MASK_MARGIN in rendercore.c * */ -void IMB_filter_extend(struct ImBuf *ibuf, char *mask) +void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) { - register char *row1, *row2, *row3; - register char *cp; - int rowlen, x, y; - - rowlen= ibuf->x; - - - if (ibuf->rect_float) { - float *temprect; - float *row1f, *row2f, *row3f; - float *fp; - temprect= MEM_dupallocN(ibuf->rect_float); - - for(y=1; y<=ibuf->y; y++) { - /* setup rows */ - row1f= (float *)(temprect + (y-2)*rowlen*4); - row2f= row1f + 4*rowlen; - row3f= row2f + 4*rowlen; - if(y==1) - row1f= row2f; - else if(y==ibuf->y) - row3f= row2f; - - fp= (float *)(ibuf->rect_float + (y-1)*rowlen*4); - - for(x=0; xx; + const int height= ibuf->y; + const int depth= 4; /* always 4 channels */ + const int chsize= ibuf->rect_float ? sizeof(float) : sizeof(unsigned char); + const int bsize= width*height*depth*chsize; + const int is_float= ibuf->rect_float!=NULL; + void *dstbuf= (void *) MEM_dupallocN(ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect); + char *dstmask= mask==NULL ? NULL : (char *) MEM_dupallocN(mask); + void *srcbuf= ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect; + char *srcmask= mask; + int cannot_early_out= 1, r, n, k, i, j, c; + float weight[25]; + + /* build a weights buffer */ + n= 2; + k= 0; + for(i = -n; i <= n; i++) + for(j = -n; j <= n; j++) + weight[k++] = sqrt((float) i * i + j * j); + + /* run passes */ + for(r = 0; cannot_early_out == 1 && r < filter; r++) { + int x, y; + cannot_early_out = 0; + + for(y= 0; y 255 ? 255 : (acc[c] < 0 ? 0 : ((unsigned char) (acc[c]+0.5f))); + } + } + + if(dstmask!=NULL) dstmask[index]=FILTER_MASK_MARGIN; /* assigned */ + cannot_early_out = 1; + } } } - fp+=4; - - if(x!=0) { - row1f+=4; row2f+=4; row3f+=4; - } } } - MEM_freeN(temprect); - } - else if(ibuf->rect) { - int *temprect; - - /* make a copy, to prevent flooding */ - temprect= MEM_dupallocN(ibuf->rect); - - for(y=1; y<=ibuf->y; y++) { - /* setup rows */ - row1= (char *)(temprect + (y-2)*rowlen); - row2= row1 + 4*rowlen; - row3= row2 + 4*rowlen; - if(y==1) - row1= row2; - else if(y==ibuf->y) - row3= row2; - - cp= (char *)(ibuf->rect + (y-1)*rowlen); - - for(x=0; xflag */ +#define NODE_LINKFLAG_HILITE 1 + /* the basis for a Node tree, all links and nodes reside internal here */ /* only re-usable node trees are in the library though, materials and textures allocate own tree struct */ typedef struct bNodeTree { diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 3c14dacf973..2211f93a8ae 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1074,7 +1074,7 @@ typedef struct Scene { #define SCE_SNAP_ROTATE 2 #define SCE_SNAP_PEEL_OBJECT 4 #define SCE_SNAP_PROJECT 8 -#define SCE_SNAP_PROJECT_NO_SELF 16 +#define SCE_SNAP_NO_SELF 16 /* toolsettings->snap_target */ #define SCE_SNAP_TARGET_CLOSEST 0 #define SCE_SNAP_TARGET_CENTER 1 @@ -1107,7 +1107,8 @@ typedef struct Scene { #define PROP_SHARP 3 #define PROP_LIN 4 #define PROP_CONST 5 -#define PROP_RANDOM 6 +#define PROP_RANDOM 6 +#define PROP_MODE_MAX 7 /* toolsettings->proportional */ #define PROP_EDIT_OFF 0 diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index c9865bf3df4..cb593e7deab 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -171,6 +171,10 @@ if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() +if(WITH_IMAGE_FRAMESERVER) + add_definitions(-DWITH_FRAMESERVER) +endif() + if(WITH_AUDASPACE) add_definitions(-DWITH_AUDASPACE) endif() diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript index 421c3a60691..5e43ed9b2fb 100644 --- a/source/blender/makesrna/intern/SConscript +++ b/source/blender/makesrna/intern/SConscript @@ -54,6 +54,8 @@ if env['WITH_BF_CINEON']: if env['WITH_BF_HDR']: defs.append('WITH_HDR') +defs.append('WITH_FRAMESERVER') # TODO, make optional + if env['WITH_BF_FFMPEG']: defs.append('WITH_FFMPEG') incs += ' ' + env['BF_FFMPEG_INC'] diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index d9fbdd7caf2..dcf2400b9ba 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4407,15 +4407,15 @@ ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSE if(!(parm->flag & PROP_REQUIRED) && !(parm->flag & PROP_DYNAMIC)) { switch(parm->type) { case PROP_BOOLEAN: - if(parm->arraydimension) memcpy(data, &((BooleanPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((BooleanPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((BooleanPropertyRNA*)parm)->defaultvalue, size); break; case PROP_INT: - if(parm->arraydimension) memcpy(data, &((IntPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((IntPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((IntPropertyRNA*)parm)->defaultvalue, size); break; case PROP_FLOAT: - if(parm->arraydimension) memcpy(data, &((FloatPropertyRNA*)parm)->defaultarray, size); + if(parm->arraydimension) memcpy(data, ((FloatPropertyRNA*)parm)->defaultarray, size); else memcpy(data, &((FloatPropertyRNA*)parm)->defaultvalue, size); break; case PROP_ENUM: diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 9018fd8c71a..21fa28af01a 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -544,7 +544,7 @@ void RNA_api_object(StructRNA *srna) /* location of point for test and max distance */ parm= RNA_def_float_vector(func, "point", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); + RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); /* return location and normal */ parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The location on the object closest to the point", -1e4, 1e4); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 662ce04552e..f4028e45e96 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -135,7 +135,9 @@ EnumPropertyItem image_type_items[] = { #endif {R_AVIJPEG, "AVI_JPEG", ICON_FILE_MOVIE, "AVI JPEG", "Output video in AVI JPEG format"}, {R_AVIRAW, "AVI_RAW", ICON_FILE_MOVIE, "AVI Raw", "Output video in AVI Raw format"}, +#ifdef WITH_FRAMESERVER {R_FRAMESERVER, "FRAMESERVER", ICON_FILE_SCRIPT, "Frame Server", "Output image to a frameserver"}, +#endif #ifdef WITH_FFMPEG {R_H264, "H264", ICON_FILE_MOVIE, "H.264", "Output video in H.264 format"}, {R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "MPEG", "Output video in MPEG format"}, @@ -1176,9 +1178,9 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_RETOPO, 0); RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ - prop= RNA_def_property(srna, "use_snap_project_self", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT_NO_SELF); - RNA_def_property_ui_text(prop, "Project to Self", "Project into its self (editmode)"); + prop= RNA_def_property(srna, "use_snap_self", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_NO_SELF); + RNA_def_property_ui_text(prop, "Project to Self", "Snap onto its self (editmode)"); RNA_def_property_ui_icon(prop, ICON_ORTHO, 0); RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */ @@ -2813,7 +2815,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "bake_margin", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "bake_filter"); - RNA_def_property_range(prop, 0, 32); + RNA_def_property_range(prop, 0, 64); RNA_def_property_ui_text(prop, "Margin", "Amount of pixels to extend the baked result with, as post process filter"); prop= RNA_def_property(srna, "bake_distance", PROP_FLOAT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 31e1d73c8de..a046be59ab5 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1025,7 +1025,7 @@ static StructRNA *rna_Operator_register(Main *bmain, ReportList *reports, void * rna_Operator_unregister(bmain, ot->ext.srna); } - /* create a new menu type */ + /* create a new operator type */ dummyot.ext.srna= RNA_def_struct(&BLENDER_RNA, dummyot.idname, "Operator"); RNA_def_struct_flag(dummyot.ext.srna, STRUCT_NO_IDPROPERTIES); /* operator properties are registered separately */ dummyot.ext.data= data; diff --git a/source/blender/python/mathutils/mathutils.h b/source/blender/python/mathutils/mathutils.h index 7454cfe78b3..b798b5e7003 100644 --- a/source/blender/python/mathutils/mathutils.h +++ b/source/blender/python/mathutils/mathutils.h @@ -108,4 +108,6 @@ int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index); int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix); int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix); +int column_vector_multiplication(float rvec[4], VectorObject *vec, MatrixObject *mat); + #endif /* MATHUTILS_H */ diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index 76a0994c3aa..3953171f263 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -1612,8 +1612,20 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) } } else if(mat1) { + /*VEC * MATRIX */ + if(VectorObject_Check(m2)) { + VectorObject *vec2= (VectorObject *)m2; + float tvec[4]; + if(BaseMath_ReadCallback(vec2) == -1) + return NULL; + if(column_vector_multiplication(tvec, vec2, mat1) == -1) { + return NULL; + } + + return newVectorObject(tvec, vec2->size, Py_NEW, Py_TYPE(m2)); + } /*FLOAT/INT * MATRIX */ - if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { + else if (((scalar= PyFloat_AsDouble(m2)) == -1.0f && PyErr_Occurred())==0) { return matrix_mul_float(mat1, scalar); } } diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c index 3b05b9a250b..2be258a1ef0 100644 --- a/source/blender/python/mathutils/mathutils_Quaternion.c +++ b/source/blender/python/mathutils/mathutils_Quaternion.c @@ -753,8 +753,30 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) return quat_mul_float(quat2, scalar); } } - else if (quat1) { /* QUAT*FLOAT */ - if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { + else if (quat1) { + /* QUAT * VEC */ + if (VectorObject_Check(q2)) { + VectorObject *vec2 = (VectorObject *)q2; + float tvec[3]; + + if(vec2->size != 3) { + PyErr_SetString(PyExc_ValueError, + "Vector multiplication: " + "only 3D vector rotations (with quats) " + "currently supported"); + return NULL; + } + if(BaseMath_ReadCallback(vec2) == -1) { + return NULL; + } + + copy_v3_v3(tvec, vec2->vec); + mul_qt_v3(quat1->quat, tvec); + + return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec2)); + } + /* QUAT * FLOAT */ + else if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { return quat_mul_float(quat1, scalar); } } diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index e2c958adaa5..a954c07c98d 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -37,6 +37,8 @@ #include "BLI_math.h" #include "BLI_utildefines.h" +extern void PyC_LineSpit(void); + #define MAX_DIMENSIONS 4 /* Swizzle axes get packed into a single value that is used as a closure. Each @@ -1081,7 +1083,7 @@ static PyObject *Vector_isub(PyObject *v1, PyObject *v2) * note: vector/matrix multiplication IS NOT COMMUTATIVE!!!! * note: assume read callbacks have been done first. */ -static int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) +int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, MatrixObject * mat) { float vec_cpy[MAX_DIMENSIONS]; double dot = 0.0f; @@ -1159,8 +1161,29 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } else if (vec1) { if (MatrixObject_Check(v2)) { + extern void PyC_LineSpit(void); + /* VEC * MATRIX */ + /* this is deprecated!, use the reverse instead */ float tvec[MAX_DIMENSIONS]; + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector * Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else + printf("Warning: (Vector * Matrix) is now deprecated, " + "reverse the multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) { @@ -1183,6 +1206,24 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) if(BaseMath_ReadCallback(quat2) == -1) { return NULL; } + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector * Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else + printf("Warning: (Vector * Quat) is now deprecated, " + "reverse the multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + copy_v3_v3(tvec, vec1->vec); mul_qt_v3(quat2->quat, tvec); return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); @@ -1226,6 +1267,24 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) return NULL; + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector *= Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else + printf("Warning: (Vector *= Matrix) is now deprecated, " + "reverse the (non in-place) multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + memcpy(vec->vec, rvec, sizeof(float) * vec->size); } else if (QuaternionObject_Check(v2)) { @@ -1242,6 +1301,25 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(BaseMath_ReadCallback(quat2) == -1) { return NULL; } + + +/* ------ to be removed ------*/ +#ifndef MATH_STANDALONE +#ifdef WITH_ASSERT_ABORT + PyErr_SetString(PyExc_ValueError, + "(Vector *= Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else + printf("Warning: (Vector *= Quat) is now deprecated, " + "reverse the (non in-place) multiplication order in the script.\n"); + PyC_LineSpit(); +#endif +#endif /* ifndef MATH_STANDALONE */ +/* ------ to be removed ------*/ + + mul_qt_v3(quat2->quat, vec->vec); } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 583b792f240..b385b507707 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -3375,7 +3375,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset) /* test for 100% transparant */ ok= 1; - if(ma->alpha==0.0f && ma->spectra==0.0f && ma->filter==0.0f && (ma->mode & MA_TRANSP)) { + if(ma->alpha==0.0f && ma->spectra==0.0f && ma->filter==0.0f && (ma->mode & MA_TRANSP) && (ma->mode & MA_RAYMIRROR)==0) { ok= 0; /* texture on transparency? */ for(a=0; amain= bmain; @@ -5778,6 +5778,14 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, if(re->r.mode & R_RAYTRACE) makeraytree(re); + /* point density texture */ + if(!re->test_break(re->tbh)) + make_pointdensities(re); + + /* voxel data texture */ + if(!re->test_break(re->tbh)) + make_voxeldata(re); + /* occlusion */ if((re->wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) && !re->test_break(re->tbh)) if(re->wrld.ao_gather_method == WO_AOGATHER_APPROX) diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 3aca334cffe..a7e19c8db4f 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2577,27 +2577,7 @@ void RE_bake_ibuf_filter(ImBuf *ibuf, char *mask, const int filter) /* Margin */ if(filter) { - char *temprect; - int i; - - /* extend the mask +2 pixels from the image, - * this is so colors dont blend in from outside */ - - for(i=0; i< filter; i++) - IMB_mask_filter_extend(mask, ibuf->x, ibuf->y); - - temprect = MEM_dupallocN(mask); - - /* expand twice to clear this many pixels, so they blend back in */ - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - IMB_mask_filter_extend(temprect, ibuf->x, ibuf->y); - - /* clear all pixels in the margin */ - IMB_mask_clear(ibuf, temprect, FILTER_MASK_MARGIN); - MEM_freeN(temprect); - - for(i= 0; i < filter; i++) - IMB_filter_extend(ibuf, mask); + IMB_filter_extend(ibuf, mask, filter); } /* if the bake results in new alpha then change the image setting */ diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 67294a8eb53..e6325e2101a 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -272,6 +272,7 @@ void WM_operator_py_idname(char *to, const char *from); /* *************** menu types ******************** */ struct MenuType *WM_menutype_find(const char *idname, int quiet); int WM_menutype_add(struct MenuType* mt); +int WM_menutype_contains(struct MenuType* mt); void WM_menutype_freelink(struct MenuType* mt); void WM_menutype_free(void); diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index bcd5cf38f88..a535c0bc1f8 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -175,6 +175,12 @@ int WM_menutype_add(MenuType* mt) return 1; } +/* inefficient but only used for tooltip code */ +int WM_menutype_contains(MenuType* mt) +{ + return (mt != NULL && BLI_findindex(&menutypes, mt) != -1); +} + void WM_menutype_freelink(MenuType* mt) { BLI_freelinkN(&menutypes, mt); -- cgit v1.2.3 From 3b6cb504b199471d0a3c80b917d16b11827ae84e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Jul 2011 13:03:56 +0000 Subject: minor warning fixes for clang-static-checker --- source/blender/blenkernel/intern/cdderivedmesh.c | 2 ++ source/blender/blenkernel/intern/customdata.c | 1 - source/blender/editors/transform/transform_snap.c | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 3abfa05e1fd..662c872b7f1 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1287,6 +1287,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang); offset += sizeof(float)*4; } + (void)offset; } curface++; if(mface->v4) { @@ -1327,6 +1328,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang); offset += sizeof(float)*4; } + (void)offset; } curface++; i++; diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 45faba8439c..8d19322c0db 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -466,7 +466,6 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), MDisps tris[2]; int vindex[4] = {0}; - S = 0; for(i = 0; i < 2; i++) for(y = 0; y < 4; y++) for(x = 0; x < 4; x++) diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 933d90ebbf2..f677e1ac6b4 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -1944,9 +1944,9 @@ static void applyGrid(TransInfo *t, float *val, int max_index, float fac[3], Gea int i; float asp[3] = {1.0f, 1.0f, 1.0f}; // TODO: Remove hard coded limit here (3) - if(max_index > 3) { + if(max_index > 2) { printf("applyGrid: invalid index %d, clamping\n", max_index); - max_index= 3; + max_index= 2; } // Early bailing out if no need to snap -- cgit v1.2.3 From 5fc54a7ccc47b865f77c667d45d4f3c7aab16eaf Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 27 Jul 2011 16:29:28 +0000 Subject: Material Effect Specular color animation Export. --- source/blender/collada/AnimationExporter.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 0e6fa4d0d92..640a4b36384 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -111,7 +111,7 @@ void AnimationExporter::exportAnimations(Scene *sce) while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "specular_hardness"))) + if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } @@ -204,7 +204,7 @@ void AnimationExporter::exportAnimations(Scene *sce) axis_name = axis_names[fcu->array_index];*/ } //maybe a list or a vector of float animations - else if ( !strcmp(transformName, "color") ) + else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color") ) { const char *axis_names[] = {"R", "G", "B"}; if (fcu->array_index < 3) @@ -840,6 +840,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 10; else if (!strcmp(name, "specular_hardness")) tm_type = 11; + else if (!strcmp(name, "specular_color")) + tm_type = 12; else tm_type = -1; @@ -881,6 +883,10 @@ void AnimationExporter::exportAnimations(Scene *sce) case 11: tm_name = "shininess"; break; + case 12: + tm_name = "specular"; + break; + default: tm_name = ""; break; -- cgit v1.2.3 From 41216990dc1e8807661c267a361d4ce02724839f Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 27 Jul 2011 17:43:32 +0000 Subject: Material Specular Color Animation import. --- source/blender/collada/AnimationImporter.cpp | 81 +++++++++++++++++----------- source/blender/collada/AnimationImporter.h | 7 ++- 2 files changed, 53 insertions(+), 35 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index eaf6835420e..60c0308a7bc 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -669,31 +669,49 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * } -void AnimationImporter:: Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, - std::vector* curves) +void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type) { char rna_path[100]; - BLI_strncpy(rna_path,"color", sizeof(rna_path)); - - switch (binding->animationClass) { + BLI_strncpy(rna_path,anim_type, sizeof(rna_path)); + + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + //all the curves belonging to the current binding + std::vector animcurves; + for (unsigned int j = 0; j < bindings.getCount(); j++) { + animcurves = curve_map[bindings[j].animation]; + //calculate rnapaths and array index of fcurves according to transformation and animation class + //Assign_color_animations( &bindings[j], &animcurves); + + switch (bindings[j].animationClass) { case COLLADAFW::AnimationList::COLOR_R: - modify_fcurve(curves, rna_path, 0 ); + modify_fcurve(&animcurves, rna_path, 0 ); break; case COLLADAFW::AnimationList::COLOR_G: - modify_fcurve(curves, rna_path, 1 ); + modify_fcurve(&animcurves, rna_path, 1 ); break; case COLLADAFW::AnimationList::COLOR_B: - modify_fcurve(curves, rna_path, 2 ); + modify_fcurve(&animcurves, rna_path, 2 ); break; case COLLADAFW::AnimationList::COLOR_RGB: case COLLADAFW::AnimationList::COLOR_RGBA: - modify_fcurve(curves, rna_path, -1 ); + modify_fcurve(&animcurves, rna_path, -1 ); break; default: fprintf(stderr, "AnimationClass %d is not supported for %s.\n", - binding->animationClass, "COLOR" ); + bindings[j].animationClass, "COLOR" ); } + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + BLI_addtail(AnimCurves, fcu); + } + } + + } void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type) @@ -809,7 +827,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - //if ( ((animType & LIGHT_COLOR) != 0)|| ((animType & LIGHT_FOA) != 0) || ((animType & LIGHT_FOE) != 0) ) if ((animType->light) != 0) { Lamp * lamp = (Lamp*) ob->data; @@ -828,23 +845,21 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); //transformation has animations - const COLLADAFW::AnimationList *animlist = animlist_map[listid]; - const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding - std::vector animcurves; - for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_color_animations( &bindings[j], &animcurves); + //const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + //const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + ////all the curves belonging to the current binding + //std::vector animcurves; + //for (unsigned int j = 0; j < bindings.getCount(); j++) { + // animcurves = curve_map[bindings[j].animation]; + // //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_color_animations(listid, AnimCurves, "color"); - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - BLI_addtail(AnimCurves, fcu); - } - } - + //std::vector::iterator iter; + ////Add the curves of the current animation to the object + //for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + // FCurve * fcu = *iter; + // BLI_addtail(AnimCurves, fcu); + //} } if ((animType->light & LIGHT_FOA) != 0 ) { @@ -862,7 +877,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } - //if ( ((animType & CAMERA_XFOV) != 0) || (animType & CAMERA_XMAG) != 0 ) if ( (animType->camera) != 0) { Camera * camera = (Camera*) ob->data; @@ -926,6 +940,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = shin->getAnimationList(); Assign_float_animations( listid, AnimCurves , "specular_hardness" ); } + + if((animType->material & MATERIAL_SPEC_COLOR) != 0){ + const COLLADAFW::ColorOrTexture *cot = &(efc->getSpecular()); + const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); + Assign_color_animations( listid, AnimCurves , "specular_color" ); + } } } } @@ -968,7 +988,6 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras(); for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) { @@ -978,11 +997,9 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD { types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XMAG); } - types->camera = setAnimType(&(camera->getFarClippingPlane()),(types->camera), CAMERA_ZFAR); types->camera = setAnimType(&(camera->getNearClippingPlane()),(types->camera), CAMERA_ZNEAR); - //if ( type != 0) break; if ( types->camera != 0) break; } @@ -996,6 +1013,8 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); COLLADAFW::EffectCommon *efc = commonEffects[0]; types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); + types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); + } } return types; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index b27fba18954..a274d0ebb01 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -108,7 +108,8 @@ private: enum matAnim { - MATERIAL_SHININESS = 2 + MATERIAL_SHININESS = 2, + MATERIAL_SPEC_COLOR = 4 }; enum AnimationType @@ -153,9 +154,7 @@ public: const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path); - void Assign_color_animations(const COLLADAFW::AnimationList::AnimationBinding * binding, - std::vector* curves); - + void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type); void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type); int setAnimType ( const COLLADAFW::Animatable * prop , int type, int addition); -- cgit v1.2.3 From 7e466266d36f326798de150e7d7d27a81a0e9ee5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Jul 2011 17:49:35 +0000 Subject: fix [#28098] Continuous Grab does not work for movement of the "Backdrop" in the Node Editor --- source/blender/editors/space_node/node_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 4230a43d2ec..18d4d85e3ff 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1101,7 +1101,7 @@ void NODE_OT_backimage_move(wmOperatorType *ot) ot->cancel= snode_bg_viewmove_cancel; /* flags */ - ot->flag= OPTYPE_BLOCKING; + ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; } static int backimage_zoom(bContext *C, wmOperator *op) -- cgit v1.2.3 From 4a32691416a3069e468bee81c862ccb77fce0556 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 27 Jul 2011 18:38:44 +0000 Subject: Material diffuse color animation COLLADA export. --- source/blender/collada/AnimationExporter.cpp | 11 ++++++++--- source/blender/collada/AnimationImporter.cpp | 18 +++--------------- 2 files changed, 11 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 640a4b36384..a4ff987d9ea 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -111,7 +111,8 @@ void AnimationExporter::exportAnimations(Scene *sce) while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color"))) + if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) + ||(!strcmp(transformName, "diffuse"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } @@ -204,7 +205,7 @@ void AnimationExporter::exportAnimations(Scene *sce) axis_name = axis_names[fcu->array_index];*/ } //maybe a list or a vector of float animations - else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color") ) + else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")) { const char *axis_names[] = {"R", "G", "B"}; if (fcu->array_index < 3) @@ -842,6 +843,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 11; else if (!strcmp(name, "specular_color")) tm_type = 12; + else if (!strcmp(name, "diffuse_color")) + tm_type = 13; else tm_type = -1; @@ -886,7 +889,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 12: tm_name = "specular"; break; - + case 13: + tm_name = "diffuse"; + break; default: tm_name = ""; break; diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 60c0308a7bc..3e56b3fb57e 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -844,33 +844,21 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , { const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); - //transformation has animations - //const COLLADAFW::AnimationList *animlist = animlist_map[listid]; - //const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - ////all the curves belonging to the current binding - //std::vector animcurves; - //for (unsigned int j = 0; j < bindings.getCount(); j++) { - // animcurves = curve_map[bindings[j].animation]; - // //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_color_animations(listid, AnimCurves, "color"); - - //std::vector::iterator iter; - ////Add the curves of the current animation to the object - //for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - // FCurve * fcu = *iter; - // BLI_addtail(AnimCurves, fcu); - //} } if ((animType->light & LIGHT_FOA) != 0 ) { const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& listid = foa->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "spot_size"); } if ( (animType->light & LIGHT_FOE) != 0 ) { const COLLADAFW::AnimatableFloat *foe = &(light->getFallOffExponent()); const COLLADAFW::UniqueId& listid = foe->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "spot_blend"); } -- cgit v1.2.3 From 90b64737f12f749b93e6a609b1b3680938ef6b85 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 27 Jul 2011 19:08:18 +0000 Subject: Material Diffuse Color animation COLLADA import. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/AnimationImporter.cpp | 7 +++++++ source/blender/collada/AnimationImporter.h | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index a4ff987d9ea..4c07b8c8b03 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -112,7 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse"))) + ||(!strcmp(transformName, "diffuse_color"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 3e56b3fb57e..dad10d91117 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -934,6 +934,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); Assign_color_animations( listid, AnimCurves , "specular_color" ); } + + if((animType->material & MATERIAL_DIFF_COLOR) != 0){ + const COLLADAFW::ColorOrTexture *cot = &(efc->getDiffuse()); + const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); + Assign_color_animations( listid, AnimCurves , "diffuse_color" ); + } } } } @@ -1002,6 +1008,7 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD COLLADAFW::EffectCommon *efc = commonEffects[0]; types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); + types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); } } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index a274d0ebb01..642d218dd41 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -109,7 +109,8 @@ private: enum matAnim { MATERIAL_SHININESS = 2, - MATERIAL_SPEC_COLOR = 4 + MATERIAL_SPEC_COLOR = 4, + MATERIAL_DIFF_COLOR = 1 << 3 }; enum AnimationType -- cgit v1.2.3 From f532ccedf5c3898a5726ba4295297ebb58ba4909 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Wed, 27 Jul 2011 20:36:11 +0000 Subject: refix for #27912: crash after mesh.materials.pop() (fixed wrongly on rev. 38299 - patch by Benoit Boilsee bug spotted while reviewing a patch. things are working now --- source/blender/blenkernel/intern/material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 962c7fd5e86..3f01c55e935 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -550,7 +550,7 @@ Material *material_pop_id(ID *id, int index) Material **mat; if(index + 1 != (*totcol)) - memmove((*matar), (*matar) + 1, sizeof(void *) * ((*totcol) - (index + 1))); + memmove((*matar)+index, (*matar)+(index+1), sizeof(void *) * ((*totcol) - (index + 1))); (*totcol)--; -- cgit v1.2.3 From 7e87165eea9af2e0e9b9e2192341a5a0842bc81e Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 28 Jul 2011 00:08:03 +0000 Subject: Don't write library_materials tag when there are no materials. --- source/blender/collada/MaterialExporter.cpp | 32 +++++++++++++++++++++++++---- source/blender/collada/MaterialExporter.h | 3 +++ 2 files changed, 31 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/MaterialExporter.cpp b/source/blender/collada/MaterialExporter.cpp index a44fa6802f2..9d29177578d 100644 --- a/source/blender/collada/MaterialExporter.cpp +++ b/source/blender/collada/MaterialExporter.cpp @@ -37,12 +37,36 @@ MaterialsExporter::MaterialsExporter(COLLADASW::StreamWriter *sw): COLLADASW::Li void MaterialsExporter::exportMaterials(Scene *sce, bool export_selected) { - openLibrary(); + if(hasMaterials(sce)) { + openLibrary(); - MaterialFunctor mf; - mf.forEachMaterialInScene(sce, *this, export_selected); + MaterialFunctor mf; + mf.forEachMaterialInScene(sce, *this, export_selected); - closeLibrary(); + closeLibrary(); + } +} + + +bool MaterialsExporter::hasMaterials(Scene *sce) +{ + Base *base = (Base *)sce->base.first; + + while(base) { + Object *ob= base->object; + int a; + for(a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + + // no material, but check all of the slots + if (!ma) continue; + + return true; + } + base= base->next; + } + return false; } void MaterialsExporter::operator()(Material *ma, Object *ob) diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h index 0a7a276d857..c080e4b0596 100644 --- a/source/blender/collada/MaterialExporter.h +++ b/source/blender/collada/MaterialExporter.h @@ -51,6 +51,9 @@ public: MaterialsExporter(COLLADASW::StreamWriter *sw); void exportMaterials(Scene *sce, bool export_selected); void operator()(Material *ma, Object *ob); + +private: + bool hasMaterials(Scene *sce); }; // used in forEachMaterialInScene -- cgit v1.2.3 From a5631dba8902b8f6732b88ddcc2ef2ba36c49b75 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 28 Jul 2011 02:15:58 +0000 Subject: only initialize snap from the scene settings for view3d and image spaces since snap in the 3D view was enabling snap in the graph editor and sequencer without a button to disable it in those spaces. --- source/blender/editors/transform/transform_snap.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index f677e1ac6b4..ca89670dedb 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -467,14 +467,17 @@ void initSnapping(TransInfo *t, wmOperator *op) /* use scene defaults only when transform is modal */ else if (t->flag & T_MODAL) { - if (ts->snap_flag & SCE_SNAP) { - t->modifiers |= MOD_SNAP; - } + if(ELEM(t->spacetype, SPACE_VIEW3D, SPACE_IMAGE)) + { + if (ts->snap_flag & SCE_SNAP) { + t->modifiers |= MOD_SNAP; + } - t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); - t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); - t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); - t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); + t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); + t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + } } t->tsnap.target = snap_target; -- cgit v1.2.3 From 784a68e8f1047de0e71beabbc44654ccad743910 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 28 Jul 2011 03:44:17 +0000 Subject: sequencer add strips now check for overlap by default (option can be disabled for python when this can become problematic for automation). --- .../editors/space_sequencer/sequencer_add.c | 33 ++++++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 36e334990cb..b105b2507ab 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -101,6 +101,8 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag) RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "replace the current selection"); + RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips"); + if(flag & SEQPROP_FILES) RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } @@ -250,7 +252,11 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) seq_active_set(scene, seq); seq->flag |= SELECT; } - + + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -303,8 +309,9 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad Scene *scene= CTX_data_scene(C); /* only for sound */ Editing *ed= seq_give_editing(scene, TRUE); SeqLoadInfo seq_load; - /* Sequence *seq; */ /* UNUSED */ + Sequence *seq; int tot_files; + const short overlap= RNA_boolean_get(op->ptr, "overlap"); seq_load_operator_info(&seq_load, op); @@ -324,13 +331,21 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad RNA_string_get(&itemptr, "name", file_only); BLI_join_dirfile(seq_load.path, sizeof(seq_load.path), dir_only, file_only); - /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); + seq= seq_load_func(C, ed->seqbasep, &seq_load); + + if(overlap == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } } RNA_END; } else { /* single file */ - /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); + seq= seq_load_func(C, ed->seqbasep, &seq_load); + + if(overlap == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } } if (seq_load.tot_success==0) { @@ -506,7 +521,11 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op) /* last active name */ strncpy(ed->act_imagedir, strip->dir, FILE_MAXDIR-1); - + + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -656,7 +675,9 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) } } - if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } update_changed_seq_and_deps(scene, seq, 1, 1); /* runs calc_sequence */ -- cgit v1.2.3 From 2dc826f083c2209aab83981a8d1dc39c621e0841 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 28 Jul 2011 11:16:10 +0000 Subject: New option for multires modifier: Subdivide UVs Enabled by default and also enabled for older filesm so there should be no regressions. In some cases it's useful to not use subdivided uvs for multires. --- source/blender/blenkernel/intern/multires.c | 18 ++++++++++-------- source/blender/makesdna/DNA_modifier_types.h | 1 + source/blender/makesrna/intern/rna_modifier.c | 5 +++++ 3 files changed, 16 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index d833c184274..88a670ecb22 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -465,12 +465,13 @@ static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lv return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0); } -static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal) +static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal, int plain_uv) { SubsurfModifierData smd= {{NULL}}; smd.levels = smd.renderLevels = lvl; - smd.flags |= eSubsurfModifierFlag_SubsurfUv; + if(!plain_uv) + smd.flags |= eSubsurfModifierFlag_SubsurfUv; if(simple) smd.subdivType = ME_SIMPLE_SUBSURF; if(optimal) @@ -591,7 +592,7 @@ void multiresModifier_base_apply(MultiresModifierData *mmd, Object *ob) /* subdivide the mesh to highest level without displacements */ cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0); + origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); /* calc disps */ @@ -626,7 +627,7 @@ static void multires_subdivide(MultiresModifierData *mmd, Object *ob, int totlvl /* create subsurf DM from original mesh at high level */ cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); /* create multires DM from original mesh at low level */ lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple); @@ -830,7 +831,7 @@ static void multiresModifier_update(DerivedMesh *dm) else cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); /* create multires DM from original mesh and displacements */ lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple); @@ -884,7 +885,7 @@ static void multiresModifier_update(DerivedMesh *dm) else cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0); + subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); multiresModifier_disp_run(dm, me, 1, 0, subdm->getGridData(subdm), mmd->totlvl); @@ -927,7 +928,8 @@ DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int loca return dm; result = subsurf_dm_create_local(ob, dm, lvl, - mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges); + mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges, + mmd->flags & eMultiresModifierFlag_PlainUv); if(!local_mmd) { ccgdm = (CCGDerivedMesh*)result; @@ -1633,7 +1635,7 @@ static void multires_apply_smat(Scene *scene, Object *ob, float smat[3][3]) MEM_freeN(vertCos); /* scaled ccgDM for tangent space of object with applied scale */ - dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple, 0); + dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); /*numGrids= dm->getNumGrids(dm);*/ /*UNUSED*/ diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index d2d8e014015..3787675f339 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -624,6 +624,7 @@ typedef struct MultiresModifierData { typedef enum { eMultiresModifierFlag_ControlEdges = (1<<0), + eMultiresModifierFlag_PlainUv = (1<<1), } MultiresModifierFlag; typedef struct FluidsimModifierData { diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index d2c1b862fee..ba655915fb6 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -805,6 +805,11 @@ static void rna_def_modifier_multires(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flags", eMultiresModifierFlag_ControlEdges); RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "use_subsurf_uv", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flags", eMultiresModifierFlag_PlainUv); + RNA_def_property_ui_text(prop, "Subdivide UVs", "Use subsurf to subdivide UVs"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); } static void rna_def_modifier_lattice(BlenderRNA *brna) -- cgit v1.2.3 From b948459031dd6d0f1ccc81d607a589fd7d1e8ab2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 28 Jul 2011 12:17:24 +0000 Subject: fix [#28096] Custom gradient for weightpainting in mask mode not working properly. --- source/blender/editors/interface/resources.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 3f825762d74..56ef5e9e8cc 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1115,10 +1115,11 @@ void init_userdef_do_versions(void) } if(U.pad_rot_angle==0) U.pad_rot_angle= 15; - - if(U.flag & USER_CUSTOM_RANGE) - vDM_ColorBand_store(&U.coba_weight); /* signal for derivedmesh to use colorband */ - + + /* signal for derivedmesh to use colorband */ + /* run incase this was on and is now off in the user prefs [#28096] */ + vDM_ColorBand_store((U.flag & USER_CUSTOM_RANGE) ? (&U.coba_weight):NULL); + if (bmain->versionfile <= 191) { strcpy(U.plugtexdir, U.textudir); strcpy(U.sounddir, "/"); -- cgit v1.2.3 From d55f6c64a24c9e8e46f2a7d33da17aff24ce6d1a Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 28 Jul 2011 13:44:36 +0000 Subject: speed button mapping to ndof sensitivity change operator. --- source/blender/windowmanager/intern/wm_operators.c | 47 +++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 44e42966c77..1b48e36d2b7 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3432,7 +3432,34 @@ static void WM_OT_memory_statistics(wmOperatorType *ot) } /* ******************************************************* */ - + +static int wm_ndof_sensitivity_exec(bContext *UNUSED(C), wmOperator *op) +{ + float change = 0.1f; + int dir = 1; + if(RNA_boolean_get(op->ptr, "decrease")) + dir = -1; + if(RNA_boolean_get(op->ptr, "fast")) + change = 1.0f; + + + U.ndof_sensitivity += (dir * change); + printf("new sensitivity: %f\n", U.ndof_sensitivity); + return OPERATOR_FINISHED; +} + +static void WM_OT_ndof_sensitivity_change(wmOperatorType *ot) +{ + ot->name= "Change NDOF sensitivity"; + ot->idname= "WM_OT_ndof_sensitivity_change"; + ot->description="Change NDOF sensitivity"; + + ot->exec= wm_ndof_sensitivity_exec; + + RNA_def_boolean(ot->srna, "decrease", 1, "Decrease NDOF sensitivity", "If true then action decreases NDOF sensitivity instead of increasing"); + RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then action change with factor 1.0, otherwise 0.1"); +} +/* ******************************************************* */ /* called on initialize WM_exit() */ void wm_operatortype_free(void) { @@ -3472,6 +3499,7 @@ void wm_operatortype_init(void) WM_operatortype_append(WM_OT_ndof_menu); WM_operatortype_append(WM_OT_call_menu); WM_operatortype_append(WM_OT_radial_control); + WM_operatortype_append(WM_OT_ndof_sensitivity_change); #if defined(WIN32) WM_operatortype_append(WM_OT_console_toggle); #endif @@ -3740,6 +3768,23 @@ void wm_window_keymap(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F12KEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(kmi->ptr, "data_path", "area.type"); RNA_string_set(kmi->ptr, "value", "DOPESHEET_EDITOR"); + + /* ndof speed */ + kmi= WM_keymap_add_item(keymap, "WM_OT_ndof_sensitivity_change", NDOF_BUTTON_PLUS, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "decrease", FALSE); + RNA_boolean_set(kmi->ptr, "fast", FALSE); + + kmi= WM_keymap_add_item(keymap, "WM_OT_ndof_sensitivity_change", NDOF_BUTTON_MINUS, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "decrease", TRUE); + RNA_boolean_set(kmi->ptr, "fast", FALSE); + + kmi= WM_keymap_add_item(keymap, "WM_OT_ndof_sensitivity_change", NDOF_BUTTON_PLUS, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "decrease", FALSE); + RNA_boolean_set(kmi->ptr, "fast", TRUE); + + kmi= WM_keymap_add_item(keymap, "WM_OT_ndof_sensitivity_change", NDOF_BUTTON_MINUS, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "decrease", TRUE); + RNA_boolean_set(kmi->ptr, "fast", TRUE); gesture_circle_modal_keymap(keyconf); gesture_border_modal_keymap(keyconf); -- cgit v1.2.3 From bd6ca0570e089afc1d29b4f18b8bb6cc086545ea Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Thu, 28 Jul 2011 13:58:59 +0000 Subject: 3D Audio GSoC: Implemented basic audio animation. * AnimatableProperty: Propper cache writing and spline interpolation for reading (the solution for stair steps in audio animation) * Animatable properties so far are: volume, pitch, panning * Users note: Changing the pitch of a sound results in wrong seeking, due to the resulting playback length difference. * Users note: Panning only works for mono sources, values are in the range [-2..2], this basically controls the angle of the sound, 0 is front, -1 left, 1 right and 2 and -2 are back. Typical stereo panning only supports [-1..1]. * Disabled animation of audio related ffmpeg output parameters. * Scene Audio Panel: 3D Listener settings also for Renderer, new Volume property (animatable!), Update/Bake buttons for animation problems, moved sampling rate and channel count here --- source/blender/blenkernel/BKE_fcurve.h | 2 +- source/blender/blenkernel/BKE_sound.h | 10 +++ source/blender/blenkernel/intern/fcurve.c | 12 ++-- source/blender/blenkernel/intern/scene.c | 9 ++- source/blender/blenkernel/intern/seqeffects.c | 2 +- source/blender/blenkernel/intern/sequencer.c | 3 +- source/blender/blenkernel/intern/sound.c | 28 +++++++- source/blender/blenloader/intern/readfile.c | 22 ++++-- source/blender/editors/sound/sound_ops.c | 97 ++++++++++++++++++++++++++ source/blender/makesdna/DNA_scene_types.h | 9 ++- source/blender/makesdna/DNA_sequence_types.h | 7 +- source/blender/makesrna/intern/rna_scene.c | 21 ++++++ source/blender/makesrna/intern/rna_sequencer.c | 45 +++++++++++- 13 files changed, 242 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h index b791e29a38e..244fda33a52 100644 --- a/source/blender/blenkernel/BKE_fcurve.h +++ b/source/blender/blenkernel/BKE_fcurve.h @@ -199,7 +199,7 @@ struct FCurve *list_find_fcurve(ListBase *list, const char rna_path[], const int struct FCurve *iter_step_fcurve (struct FCurve *fcu_iter, const char rna_path[]); /* high level function to get an fcurve from C without having the rna */ -struct FCurve *id_data_find_fcurve(ID *id, void *data, struct StructRNA *type, const char *prop_name, int index); +struct FCurve *id_data_find_fcurve(ID *id, void *data, struct StructRNA *type, const char *prop_name, int index, char *driven); /* Get list of LinkData's containing pointers to the F-Curves which control the types of data indicated * e.g. numMatches = list_find_data_fcurves(matches, &act->curves, "pose.bones[", "MyFancyBone"); diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 549dc475320..5ccb34338af 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -96,6 +96,16 @@ void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, i void sound_update_scene_sound(void* handle, struct bSound* sound); +void sound_set_cfra(int cfra); + +void sound_set_scene_volume(struct Scene *scene, float volume); + +void sound_set_scene_sound_volume(void* handle, float volume, char animated); + +void sound_set_scene_sound_pitch(void* handle, float pitch, char animated); + +void sound_set_scene_sound_pan(void* handle, float pan, char animated); + void sound_update_sequencer(struct Main* main, struct bSound* sound); void sound_play_scene(struct Scene *scene); diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 1f45cc56117..aa8f817ae3c 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -174,7 +174,7 @@ void copy_fcurves (ListBase *dst, ListBase *src) /* ----------------- Finding F-Curves -------------------------- */ /* high level function to get an fcurve from C without having the rna */ -FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, const char *prop_name, int index) +FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, const char *prop_name, int index, char *driven) { /* anim vars */ AnimData *adt= BKE_animdata_from_id(id); @@ -184,6 +184,9 @@ FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, const char *pro PointerRNA ptr; PropertyRNA *prop; char *path; + + if(driven) + *driven = 0; /* only use the current action ??? */ if (ELEM(NULL, adt, adt->action)) @@ -201,11 +204,12 @@ FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, const char *pro fcu= list_find_fcurve(&adt->action->curves, path, index); /* if not animated, check if driven */ -#if 0 if ((fcu == NULL) && (adt->drivers.first)) { - fcu= list_find_fcurve(&adt->drivers, path, but->rnaindex); + fcu= list_find_fcurve(&adt->drivers, path, index); + if(fcu && driven) + *driven = 1; + fcu = NULL; } -#endif MEM_freeN(path); } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 42793e4b4a4..74126fd57a1 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -473,9 +473,10 @@ Scene *add_scene(const char *name) BLI_strncpy(sce->r.engine, "BLENDER_RENDER", sizeof(sce->r.engine)); - sce->audio.distance_model = 2.0; - sce->audio.doppler_factor = 1.0; - sce->audio.speed_of_sound = 343.3; + sce->audio.distance_model = 2.0f; + sce->audio.doppler_factor = 1.0f; + sce->audio.speed_of_sound = 343.3f; + sce->audio.volume = 1.0f; BLI_strncpy(sce->r.pic, U.renderdir, sizeof(sce->r.pic)); @@ -1000,6 +1001,8 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) { float ctime = BKE_curframe(sce); Scene *sce_iter; + + sound_set_cfra(sce->r.cfra); /* clear animation overrides */ // XXX TODO... diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 688fdd8ff49..9e8cdb964b7 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -3163,7 +3163,7 @@ void sequence_effect_speed_rebuild_map(Scene *scene, Sequence * seq, int force) /* XXX - new in 2.5x. should we use the animation system this way? * The fcurve is needed because many frames need evaluating at once - campbell */ - fcu= id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "speed_factor", 0); + fcu= id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "speed_factor", 0, NULL); if (!v->frameMap || v->length != seq->len) { diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index e4dc3a31cb1..9ff3ce7afe2 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -1775,7 +1775,7 @@ static ImBuf* seq_render_effect_strip_impl( facf= fac; } else { - fcu = id_data_find_fcurve(&context.scene->id, seq, &RNA_Sequence, "effect_fader", 0); + fcu = id_data_find_fcurve(&context.scene->id, seq, &RNA_Sequence, "effect_fader", 0, NULL); if (fcu) { fac = facf = evaluate_fcurve(fcu, cfra); if( context.scene->r.mode & R_FIELDS ) { @@ -3496,6 +3496,7 @@ Sequence *alloc_sequence(ListBase *lb, int cfra, int machine) seq->mul= 1.0; seq->blend_opacity = 100.0; seq->volume = 1.0f; + seq->pitch = 1.0f; seq->scene_sound = NULL; return seq; diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 64ba9ed362a..6e8b26c6ca6 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -32,10 +32,11 @@ #include "BKE_context.h" #include "BKE_library.h" #include "BKE_packedFile.h" -#include "BKE_fcurve.h" #include "BKE_animsys.h" #include "BKE_sequencer.h" +// evil global ;-) +static int sound_cfra; struct bSound* sound_new_file(struct Main *bmain, const char *filename) { @@ -411,6 +412,31 @@ void sound_update_scene_sound(void* handle, struct bSound* sound) AUD_updateSequenceSound(handle, sound->playback_handle); } +void sound_set_cfra(int cfra) +{ + sound_cfra = cfra; +} + +void sound_set_scene_volume(struct Scene *scene, float volume) +{ + AUD_setSequencerAnimData(scene->sound_scene, AUD_AP_VOLUME, CFRA, &volume, (scene->audio.flag & AUDIO_VOLUME_ANIMATED) != 0); +} + +void sound_set_scene_sound_volume(void* handle, float volume, char animated) +{ + AUD_setSequenceAnimData(handle, AUD_AP_VOLUME, sound_cfra, &volume, animated); +} + +void sound_set_scene_sound_pitch(void* handle, float pitch, char animated) +{ + AUD_setSequenceAnimData(handle, AUD_AP_PITCH, sound_cfra, &pitch, animated); +} + +void sound_set_scene_sound_pan(void* handle, float pan, char animated) +{ + AUD_setSequenceAnimData(handle, AUD_AP_PANNING, sound_cfra, &pan, animated); +} + void sound_update_sequencer(struct Main* main, struct bSound* sound) { struct Scene* scene; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 87f2a72cfe0..51cb4cc64ed 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11507,12 +11507,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) kb->slidermax = kb->slidermin + 1.0f; } } - - { - Scene *scene; - for (scene=main->scene.first; scene; scene=scene->id.next) - scene->r.ffcodecdata.audio_channels = 2; - } } if (main->versionfile < 256 || (main->versionfile == 256 && main->subversionfile < 1)) { @@ -11750,7 +11744,21 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* put compatibility code here until next subversion bump */ { - + + { + Scene *scene; + Sequence *seq; + + for (scene=main->scene.first; scene; scene=scene->id.next) + { + scene->r.ffcodecdata.audio_channels = 2; + scene->audio.volume = 1.0f; + SEQ_BEGIN(scene->ed, seq) { + seq->pitch = 1.0f; + } + SEQ_END + } + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index b7e8fee922b..f0a0bcff3f3 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -41,6 +41,7 @@ #include "BLI_blenlib.h" #include "BLI_utildefines.h" +#include "DNA_anim_types.h" #include "DNA_packedFile_types.h" #include "DNA_scene_types.h" #include "DNA_space_types.h" @@ -49,11 +50,14 @@ #include "DNA_userdef_types.h" #include "BKE_context.h" +#include "BKE_fcurve.h" #include "BKE_global.h" #include "BKE_main.h" #include "BKE_report.h" #include "BKE_packedFile.h" +#include "BKE_scene.h" #include "BKE_sound.h" +#include "BKE_sequencer.h" #include "RNA_access.h" #include "RNA_define.h" @@ -293,6 +297,97 @@ static void SOUND_OT_unpack(wmOperatorType *ot) RNA_def_string(ot->srna, "id", "", MAX_ID_NAME-2, "Sound Name", "Sound datablock name to unpack."); /* XXX, weark!, will fail with library, name collisions */ } +/* ******************************************************* */ + +static int update_animation_flags_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Sequence* seq; + Scene* scene = CTX_data_scene(C); + struct FCurve* fcu; + char driven; + + SEQ_BEGIN(scene->ed, seq) { + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "volume", 0, &driven); + if(fcu || driven) + seq->flag |= SEQ_AUDIO_VOLUME_ANIMATED; + else + seq->flag &= ~SEQ_AUDIO_VOLUME_ANIMATED; + + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pitch", 0, &driven); + if(fcu || driven) + seq->flag |= SEQ_AUDIO_PITCH_ANIMATED; + else + seq->flag &= ~SEQ_AUDIO_PITCH_ANIMATED; + + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pan", 0, &driven); + if(fcu || driven) + seq->flag |= SEQ_AUDIO_PAN_ANIMATED; + else + seq->flag &= ~SEQ_AUDIO_PAN_ANIMATED; + } + SEQ_END + + fcu = id_data_find_fcurve(&scene->id, scene, &RNA_Scene, "audio_volume", 0, &driven); + if(fcu || driven) + scene->audio.flag |= AUDIO_VOLUME_ANIMATED; + else + scene->audio.flag &= ~AUDIO_VOLUME_ANIMATED; + + return OPERATOR_FINISHED; +} + +void SOUND_OT_update_animation_flags(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Update animation"; + ot->description= "Update animation flags"; + ot->idname= "SOUND_OT_update_animation_flags"; + + /* api callbacks */ + ot->exec= update_animation_flags_exec; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + +/* ******************************************************* */ + +static int bake_animation_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Main* bmain = CTX_data_main(C); + Scene* scene = CTX_data_scene(C); + int oldfra = scene->r.cfra; + int cfra; + + update_animation_flags_exec(C, NULL); + + for(cfra = scene->r.sfra; cfra <= scene->r.efra; cfra++) + { + scene->r.cfra = cfra; + scene_update_for_newframe(bmain, scene, scene->lay); + } + + scene->r.cfra = oldfra; + scene_update_for_newframe(bmain, scene, scene->lay); + + return OPERATOR_FINISHED; +} + +void SOUND_OT_bake_animation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Bake animation"; + ot->description= "Bakes the animation cache so that it's up to date"; + ot->idname= "SOUND_OT_bake_animation"; + + /* api callbacks */ + ot->exec= bake_animation_exec; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + + /* ******************************************************* */ void ED_operatortypes_sound(void) @@ -300,4 +395,6 @@ void ED_operatortypes_sound(void) WM_operatortype_append(SOUND_OT_open); WM_operatortype_append(SOUND_OT_pack); WM_operatortype_append(SOUND_OT_unpack); + WM_operatortype_append(SOUND_OT_update_animation_flags); + WM_operatortype_append(SOUND_OT_bake_animation); } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 937c33d6a65..b39f0a68854 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -149,6 +149,8 @@ typedef struct AudioData { int distance_model; short flag; short pad; + float volume; + float pad2; } AudioData; typedef struct SceneRenderLayer { @@ -1131,9 +1133,10 @@ typedef struct Scene { #define F_DUPLI 3 /* audio->flag */ -#define AUDIO_MUTE 1 -#define AUDIO_SYNC 2 -#define AUDIO_SCRUB 4 +#define AUDIO_MUTE (1<<0) +#define AUDIO_SYNC (1<<1) +#define AUDIO_SCRUB (1<<2) +#define AUDIO_VOLUME_ANIMATED (1<<3) #define FFMPEG_MULTIPLEX_AUDIO 1 /* deprecated, you can choose none as audiocodec now */ #define FFMPEG_AUTOSPLIT_OUTPUT 2 diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index b9bea7a89b0..aa04dc9ac13 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -155,7 +155,7 @@ typedef struct Sequence { void *scene_sound; float volume; - float level, pan; /* level in dB (0=full), pan -1..1 */ + float pitch, pan; /* pitch (-0.1..10), pan -2..2 */ int scenenr; /* for scene selection */ int multicam_source; /* for multicam source selection */ float strobe; @@ -284,6 +284,11 @@ typedef struct SpeedControlVars { #define SEQ_USE_PROXY_CUSTOM_FILE (1<<21) #define SEQ_USE_EFFECT_DEFAULT_FADE (1<<22) +// flags for whether those properties are animated or not +#define SEQ_AUDIO_VOLUME_ANIMATED (1<<24) +#define SEQ_AUDIO_PITCH_ANIMATED (1<<25) +#define SEQ_AUDIO_PAN_ANIMATED (1<<26) + #define SEQ_INVALID_EFFECT (1<<31) /* convenience define for all selection flags */ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 3a3a805f3ce..8f24048bc04 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -337,6 +337,15 @@ static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA * sound_update_fps(scene); } +static void rna_Scene_volume_set(PointerRNA *ptr, float value) +{ + Scene *scene= (Scene*)(ptr->data); + + scene->audio.volume = value; + if(scene->sound_scene) + sound_set_scene_volume(scene, value); +} + static void rna_Scene_framelen_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) { scene->r.framelen= (float)scene->r.framapto/(float)scene->r.images; @@ -2469,30 +2478,35 @@ static void rna_def_scene_render_data(BlenderRNA *brna) /* FFMPEG Audio*/ prop= RNA_def_property(srna, "ffmpeg_audio_codec", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "ffcodecdata.audio_codec"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_enum_items(prop, ffmpeg_audio_codec_items); RNA_def_property_ui_text(prop, "Audio Codec", "FFMpeg audio codec to use"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "ffmpeg_audio_bitrate", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_bitrate"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 32, 384); RNA_def_property_ui_text(prop, "Bitrate", "Audio bitrate(kb/s)"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "ffmpeg_audio_mixrate", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_mixrate"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 8000, 192000); RNA_def_property_ui_text(prop, "Samplerate", "Audio samplerate(samples/s)"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "ffmpeg_audio_volume", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "ffcodecdata.audio_volume"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Volume", "Audio volume"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "ffmpeg_audio_channels", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "ffcodecdata.audio_channels"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_enum_items(prop, audio_channel_items); RNA_def_property_ui_text(prop, "Audio Channels", "Sets the audio channel count"); #endif @@ -3464,6 +3478,13 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Distance Model", "Distance model for distance attenuation calculation"); RNA_def_property_update(prop, NC_SCENE, NULL); + prop= RNA_def_property(srna, "audio_volume", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "audio.volume"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Volume", "Audio volume"); + RNA_def_property_update(prop, NC_SCENE, NULL); + RNA_def_property_float_funcs(prop, NULL, "rna_Scene_volume_set", NULL); + /* Game Settings */ prop= RNA_def_property(srna, "game_settings", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 3dab8266c2f..0c889fd111f 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -43,6 +43,7 @@ #include "BKE_animsys.h" #include "BKE_global.h" #include "BKE_sequencer.h" +#include "BKE_sound.h" #include "MEM_guardedalloc.h" @@ -527,6 +528,33 @@ static void rna_Sequence_attenuation_set(PointerRNA *ptr, float value) seq->volume = from_dB(value); } +static void rna_Sequence_volume_set(PointerRNA *ptr, float value) +{ + Sequence *seq= (Sequence*)(ptr->data); + + seq->volume = value; + if(seq->scene_sound) + sound_set_scene_sound_volume(seq->scene_sound, value, (seq->flag & SEQ_AUDIO_VOLUME_ANIMATED) != 0); +} + +static void rna_Sequence_pitch_set(PointerRNA *ptr, float value) +{ + Sequence *seq= (Sequence*)(ptr->data); + + seq->pitch = value; + if(seq->scene_sound) + sound_set_scene_sound_pitch(seq->scene_sound, value, (seq->flag & SEQ_AUDIO_PITCH_ANIMATED) != 0); +} + +static void rna_Sequence_pan_set(PointerRNA *ptr, float value) +{ + Sequence *seq= (Sequence*)(ptr->data); + + seq->pan = value; + if(seq->scene_sound) + sound_set_scene_sound_pan(seq->scene_sound, value, (seq->flag & SEQ_AUDIO_PAN_ANIMATED) != 0); +} + static int rna_Sequence_input_count_get(PointerRNA *ptr) { @@ -558,9 +586,6 @@ static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *p Editing *ed= seq_give_editing(scene, FALSE); free_imbuf_seq(scene, &ed->seqbase, FALSE, TRUE); - - if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) - seq_update_sound_bounds(scene, ptr->data); } static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr) @@ -1368,13 +1393,27 @@ static void rna_def_sound(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "volume"); RNA_def_property_range(prop, 0.0f, 100.0f); RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound"); + RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_volume_set", NULL); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "attenuation", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, -100.0f, +40.0f); RNA_def_property_ui_text(prop, "Attenuation/dB", "Attenuation in decibel"); RNA_def_property_float_funcs(prop, "rna_Sequence_attenuation_get", "rna_Sequence_attenuation_set", NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "pitch", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "pitch"); + RNA_def_property_range(prop, 0.1f, 10.0f); + RNA_def_property_ui_text(prop, "Pitch", "Playback pitch of the sound"); + RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_pitch_set", NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + prop= RNA_def_property(srna, "pan", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "pan"); + RNA_def_property_range(prop, -2.0f, 2.0f); + RNA_def_property_ui_text(prop, "Pan", "Playback panning of the sound (only for Mono sources)"); + RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_pan_set", NULL); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH); -- cgit v1.2.3 From b8dcf3a662f35fef388294c635386b952f6bf981 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 28 Jul 2011 14:28:27 +0000 Subject: Fix part of #27944: color managment discrepancy in GLSL materials with nodes. --- source/blender/gpu/intern/gpu_material.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 806c70d841f..274884000db 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -1371,9 +1371,6 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr) mat->obcolalpha = 1; GPU_link(mat, "shade_alpha_obcolor", shr->combined, GPU_builtin(GPU_OBCOLOR), &shr->combined); } - - if(gpu_do_color_management(mat)) - GPU_link(mat, "linearrgb_to_srgb", shr->combined, &shr->combined); } static GPUNodeLink *GPU_blender_material(GPUMaterial *mat, Material *ma) @@ -1408,6 +1405,10 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma) GPU_material_output_link(mat, outlink); } + if(gpu_do_color_management(mat)) + if(mat->outlink) + GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink); + /*if(!GPU_material_construct_end(mat)) { GPU_material_free(mat); mat= NULL; -- cgit v1.2.3 From eb7b1f0c58fcf239f353f1cb967882a536f50737 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 28 Jul 2011 15:07:32 +0000 Subject: This allows the game engine to build again, but I'm not sure if it's the best approach. Aligorith: feel free to revert this if there is a better solution. --- source/blender/blenkernel/intern/anim_sys.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 3e59accc599..a3d0377b196 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -2151,7 +2151,6 @@ static void animsys_evaluate_overrides (PointerRNA *ptr, AnimData *adt) */ void BKE_animsys_evaluate_animdata (Scene *scene, ID *id, AnimData *adt, float ctime, short recalc) { - Main *bmain = G.main; // xxx - to get passed in! PointerRNA id_ptr; /* sanity checks */ @@ -2203,8 +2202,12 @@ void BKE_animsys_evaluate_animdata (Scene *scene, ID *id, AnimData *adt, float c animsys_evaluate_overrides(&id_ptr, adt); /* execute and clear all cached property update functions */ - RNA_property_update_cache_flush(bmain, scene); - RNA_property_update_cache_free(); + if (scene) + { + Main *bmain = G.main; // xxx - to get passed in! + RNA_property_update_cache_flush(bmain, scene); + RNA_property_update_cache_free(); + } /* clear recalc flag now */ adt->recalc= 0; -- cgit v1.2.3 From 6d2754e07d0785e30c75cf6498b94f1fb5f54f46 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 28 Jul 2011 15:51:59 +0000 Subject: Fix #27719: custom RNA properties fail to update drivers. Hopefully this is not too slow, but now we do a dependency graph tag also for these in addition to regular ID properties, not sure how to get around it. --- source/blender/makesrna/intern/rna_access.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index dcf2400b9ba..e71be8c153e 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1364,13 +1364,13 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } - else { + + if(!is_rna || (prop->flag & PROP_IDPROPERTY)) { /* WARNING! This is so property drivers update the display! * not especially nice */ DAG_id_tag_update(ptr->id.data, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); WM_main_add_notifier(NC_WINDOW, NULL); } - } /* must keep in sync with 'rna_property_update' -- cgit v1.2.3 From f9ef37059d70f28fe6c962a481ccb95363a4d17e Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 28 Jul 2011 18:25:23 +0000 Subject: Material transparency animation COLLADA export. --- source/blender/collada/AnimationExporter.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 4c07b8c8b03..ab2bf591321 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -112,7 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse_color"))) + ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } @@ -205,7 +205,8 @@ void AnimationExporter::exportAnimations(Scene *sce) axis_name = axis_names[fcu->array_index];*/ } //maybe a list or a vector of float animations - else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")) + else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| + (!strcmp(transformName, "alpha"))) { const char *axis_names[] = {"R", "G", "B"}; if (fcu->array_index < 3) @@ -845,6 +846,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 12; else if (!strcmp(name, "diffuse_color")) tm_type = 13; + else if (!strcmp(name, "alpha")) + tm_type = 14; else tm_type = -1; @@ -892,6 +895,10 @@ void AnimationExporter::exportAnimations(Scene *sce) case 13: tm_name = "diffuse"; break; + case 14: + tm_name = "transparency"; + break; + default: tm_name = ""; break; -- cgit v1.2.3 From 26589497529ca3c8da85391d4976d286a371e258 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 29 Jul 2011 01:24:03 +0000 Subject: pep8 cleanup, also print message when attempting to run in animation player mode. --- source/blender/windowmanager/intern/wm_init_exit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index ed28696ef69..4c280fe4341 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -155,7 +155,8 @@ void WM_init(bContext *C, int argc, const char **argv) BPY_python_start(argc, argv); BPY_driver_reset(); - BPY_app_handlers_reset(); + BPY_app_handlers_reset(); /* causes addon callbacks to be freed [#28068], + * but this is actually what we want. */ BPY_modules_load_user(C); #else (void)argc; /* unused */ -- cgit v1.2.3 From fb738f4929e88b21ebcfb724ae3f460ef6e0f949 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Fri, 29 Jul 2011 07:14:03 +0000 Subject: When relinking node group outputs from sockets of different type, automatically change the output to the source type. Feature request by Daniel Salazar. --- source/blender/editors/space_node/node_edit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 18d4d85e3ff..c719f749582 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2216,6 +2216,12 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) /* we might need to remove a link */ if(in_out==SOCK_OUT) node_remove_extra_links(snode, link->tosock, link); + + /* when linking to group outputs, update the socket type */ + /* XXX this should all be part of a generic update system */ + if (!link->tonode) { + link->tosock->type = link->fromsock->type; + } } else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) { /* automatically add new group socket */ -- cgit v1.2.3 From 24def76ac899e106b4a04364504ba0cbc100d7f7 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Fri, 29 Jul 2011 07:58:03 +0000 Subject: svn merge -r38753:38813 https://svn.blender.org/svnroot/bf-blender/trunk/blender . --- source/blender/blenkernel/intern/cdderivedmesh.c | 2 ++ source/blender/blenkernel/intern/customdata.c | 1 - source/blender/blenkernel/intern/material.c | 2 +- source/blender/blenkernel/intern/multires.c | 18 ++++++------ source/blender/collada/MaterialExporter.cpp | 32 ++++++++++++++++++--- source/blender/collada/MaterialExporter.h | 3 ++ source/blender/editors/interface/resources.c | 9 +++--- source/blender/editors/space_node/node_edit.c | 8 +++++- .../editors/space_sequencer/sequencer_add.c | 33 ++++++++++++++++++---- source/blender/editors/transform/transform_snap.c | 21 ++++++++------ source/blender/gpu/intern/gpu_material.c | 7 +++-- source/blender/makesdna/DNA_modifier_types.h | 1 + source/blender/makesrna/intern/rna_access.c | 4 +-- source/blender/makesrna/intern/rna_modifier.c | 5 ++++ source/blender/windowmanager/intern/wm_init_exit.c | 3 +- 15 files changed, 109 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 3abfa05e1fd..662c872b7f1 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1287,6 +1287,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang); offset += sizeof(float)*4; } + (void)offset; } curface++; if(mface->v4) { @@ -1327,6 +1328,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang); offset += sizeof(float)*4; } + (void)offset; } curface++; i++; diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 45faba8439c..8d19322c0db 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -466,7 +466,6 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), MDisps tris[2]; int vindex[4] = {0}; - S = 0; for(i = 0; i < 2; i++) for(y = 0; y < 4; y++) for(x = 0; x < 4; x++) diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 962c7fd5e86..3f01c55e935 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -550,7 +550,7 @@ Material *material_pop_id(ID *id, int index) Material **mat; if(index + 1 != (*totcol)) - memmove((*matar), (*matar) + 1, sizeof(void *) * ((*totcol) - (index + 1))); + memmove((*matar)+index, (*matar)+(index+1), sizeof(void *) * ((*totcol) - (index + 1))); (*totcol)--; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index d833c184274..88a670ecb22 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -465,12 +465,13 @@ static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lv return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0); } -static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal) +static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal, int plain_uv) { SubsurfModifierData smd= {{NULL}}; smd.levels = smd.renderLevels = lvl; - smd.flags |= eSubsurfModifierFlag_SubsurfUv; + if(!plain_uv) + smd.flags |= eSubsurfModifierFlag_SubsurfUv; if(simple) smd.subdivType = ME_SIMPLE_SUBSURF; if(optimal) @@ -591,7 +592,7 @@ void multiresModifier_base_apply(MultiresModifierData *mmd, Object *ob) /* subdivide the mesh to highest level without displacements */ cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0); + origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); /* calc disps */ @@ -626,7 +627,7 @@ static void multires_subdivide(MultiresModifierData *mmd, Object *ob, int totlvl /* create subsurf DM from original mesh at high level */ cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); /* create multires DM from original mesh at low level */ lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple); @@ -830,7 +831,7 @@ static void multiresModifier_update(DerivedMesh *dm) else cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); /* create multires DM from original mesh and displacements */ lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple); @@ -884,7 +885,7 @@ static void multiresModifier_update(DerivedMesh *dm) else cddm = CDDM_from_mesh(me, NULL); DM_set_only_copy(cddm, CD_MASK_BAREMESH); - subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0); + subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); multiresModifier_disp_run(dm, me, 1, 0, subdm->getGridData(subdm), mmd->totlvl); @@ -927,7 +928,8 @@ DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int loca return dm; result = subsurf_dm_create_local(ob, dm, lvl, - mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges); + mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges, + mmd->flags & eMultiresModifierFlag_PlainUv); if(!local_mmd) { ccgdm = (CCGDerivedMesh*)result; @@ -1633,7 +1635,7 @@ static void multires_apply_smat(Scene *scene, Object *ob, float smat[3][3]) MEM_freeN(vertCos); /* scaled ccgDM for tangent space of object with applied scale */ - dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple, 0); + dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv); cddm->release(cddm); /*numGrids= dm->getNumGrids(dm);*/ /*UNUSED*/ diff --git a/source/blender/collada/MaterialExporter.cpp b/source/blender/collada/MaterialExporter.cpp index a44fa6802f2..9d29177578d 100644 --- a/source/blender/collada/MaterialExporter.cpp +++ b/source/blender/collada/MaterialExporter.cpp @@ -37,12 +37,36 @@ MaterialsExporter::MaterialsExporter(COLLADASW::StreamWriter *sw): COLLADASW::Li void MaterialsExporter::exportMaterials(Scene *sce, bool export_selected) { - openLibrary(); + if(hasMaterials(sce)) { + openLibrary(); - MaterialFunctor mf; - mf.forEachMaterialInScene(sce, *this, export_selected); + MaterialFunctor mf; + mf.forEachMaterialInScene(sce, *this, export_selected); - closeLibrary(); + closeLibrary(); + } +} + + +bool MaterialsExporter::hasMaterials(Scene *sce) +{ + Base *base = (Base *)sce->base.first; + + while(base) { + Object *ob= base->object; + int a; + for(a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + + // no material, but check all of the slots + if (!ma) continue; + + return true; + } + base= base->next; + } + return false; } void MaterialsExporter::operator()(Material *ma, Object *ob) diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h index 0a7a276d857..c080e4b0596 100644 --- a/source/blender/collada/MaterialExporter.h +++ b/source/blender/collada/MaterialExporter.h @@ -51,6 +51,9 @@ public: MaterialsExporter(COLLADASW::StreamWriter *sw); void exportMaterials(Scene *sce, bool export_selected); void operator()(Material *ma, Object *ob); + +private: + bool hasMaterials(Scene *sce); }; // used in forEachMaterialInScene diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 5f405a5f51e..cdc839e084a 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1115,10 +1115,11 @@ void init_userdef_do_versions(void) } if(U.pad_rot_angle==0) U.pad_rot_angle= 15; - - if(U.flag & USER_CUSTOM_RANGE) - vDM_ColorBand_store(&U.coba_weight); /* signal for derivedmesh to use colorband */ - + + /* signal for derivedmesh to use colorband */ + /* run incase this was on and is now off in the user prefs [#28096] */ + vDM_ColorBand_store((U.flag & USER_CUSTOM_RANGE) ? (&U.coba_weight):NULL); + if (bmain->versionfile <= 191) { strcpy(U.plugtexdir, U.textudir); strcpy(U.sounddir, "/"); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 4230a43d2ec..c719f749582 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1101,7 +1101,7 @@ void NODE_OT_backimage_move(wmOperatorType *ot) ot->cancel= snode_bg_viewmove_cancel; /* flags */ - ot->flag= OPTYPE_BLOCKING; + ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; } static int backimage_zoom(bContext *C, wmOperator *op) @@ -2216,6 +2216,12 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) /* we might need to remove a link */ if(in_out==SOCK_OUT) node_remove_extra_links(snode, link->tosock, link); + + /* when linking to group outputs, update the socket type */ + /* XXX this should all be part of a generic update system */ + if (!link->tonode) { + link->tosock->type = link->fromsock->type; + } } else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) { /* automatically add new group socket */ diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 36e334990cb..b105b2507ab 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -101,6 +101,8 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag) RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "replace the current selection"); + RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips"); + if(flag & SEQPROP_FILES) RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } @@ -250,7 +252,11 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) seq_active_set(scene, seq); seq->flag |= SELECT; } - + + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -303,8 +309,9 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad Scene *scene= CTX_data_scene(C); /* only for sound */ Editing *ed= seq_give_editing(scene, TRUE); SeqLoadInfo seq_load; - /* Sequence *seq; */ /* UNUSED */ + Sequence *seq; int tot_files; + const short overlap= RNA_boolean_get(op->ptr, "overlap"); seq_load_operator_info(&seq_load, op); @@ -324,13 +331,21 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad RNA_string_get(&itemptr, "name", file_only); BLI_join_dirfile(seq_load.path, sizeof(seq_load.path), dir_only, file_only); - /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); + seq= seq_load_func(C, ed->seqbasep, &seq_load); + + if(overlap == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } } RNA_END; } else { /* single file */ - /* seq= */ seq_load_func(C, ed->seqbasep, &seq_load); + seq= seq_load_func(C, ed->seqbasep, &seq_load); + + if(overlap == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } } if (seq_load.tot_success==0) { @@ -506,7 +521,11 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op) /* last active name */ strncpy(ed->act_imagedir, strip->dir, FILE_MAXDIR-1); - + + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -656,7 +675,9 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) } } - if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + if(RNA_boolean_get(op->ptr, "overlap") == FALSE) { + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); + } update_changed_seq_and_deps(scene, seq, 1, 1); /* runs calc_sequence */ diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 933d90ebbf2..ca89670dedb 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -467,14 +467,17 @@ void initSnapping(TransInfo *t, wmOperator *op) /* use scene defaults only when transform is modal */ else if (t->flag & T_MODAL) { - if (ts->snap_flag & SCE_SNAP) { - t->modifiers |= MOD_SNAP; - } + if(ELEM(t->spacetype, SPACE_VIEW3D, SPACE_IMAGE)) + { + if (ts->snap_flag & SCE_SNAP) { + t->modifiers |= MOD_SNAP; + } - t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); - t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); - t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); - t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE); + t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF); + t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); + } } t->tsnap.target = snap_target; @@ -1944,9 +1947,9 @@ static void applyGrid(TransInfo *t, float *val, int max_index, float fac[3], Gea int i; float asp[3] = {1.0f, 1.0f, 1.0f}; // TODO: Remove hard coded limit here (3) - if(max_index > 3) { + if(max_index > 2) { printf("applyGrid: invalid index %d, clamping\n", max_index); - max_index= 3; + max_index= 2; } // Early bailing out if no need to snap diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 806c70d841f..274884000db 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -1371,9 +1371,6 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr) mat->obcolalpha = 1; GPU_link(mat, "shade_alpha_obcolor", shr->combined, GPU_builtin(GPU_OBCOLOR), &shr->combined); } - - if(gpu_do_color_management(mat)) - GPU_link(mat, "linearrgb_to_srgb", shr->combined, &shr->combined); } static GPUNodeLink *GPU_blender_material(GPUMaterial *mat, Material *ma) @@ -1408,6 +1405,10 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma) GPU_material_output_link(mat, outlink); } + if(gpu_do_color_management(mat)) + if(mat->outlink) + GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink); + /*if(!GPU_material_construct_end(mat)) { GPU_material_free(mat); mat= NULL; diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index d2d8e014015..3787675f339 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -624,6 +624,7 @@ typedef struct MultiresModifierData { typedef enum { eMultiresModifierFlag_ControlEdges = (1<<0), + eMultiresModifierFlag_PlainUv = (1<<1), } MultiresModifierFlag; typedef struct FluidsimModifierData { diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index dcf2400b9ba..e71be8c153e 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1364,13 +1364,13 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } - else { + + if(!is_rna || (prop->flag & PROP_IDPROPERTY)) { /* WARNING! This is so property drivers update the display! * not especially nice */ DAG_id_tag_update(ptr->id.data, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); WM_main_add_notifier(NC_WINDOW, NULL); } - } /* must keep in sync with 'rna_property_update' diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index d2c1b862fee..ba655915fb6 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -805,6 +805,11 @@ static void rna_def_modifier_multires(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flags", eMultiresModifierFlag_ControlEdges); RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "use_subsurf_uv", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flags", eMultiresModifierFlag_PlainUv); + RNA_def_property_ui_text(prop, "Subdivide UVs", "Use subsurf to subdivide UVs"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); } static void rna_def_modifier_lattice(BlenderRNA *brna) diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 7dd865984b3..e22829577f4 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -155,7 +155,8 @@ void WM_init(bContext *C, int argc, const char **argv) BPY_python_start(argc, argv); BPY_driver_reset(); - BPY_app_handlers_reset(); + BPY_app_handlers_reset(); /* causes addon callbacks to be freed [#28068], + * but this is actually what we want. */ BPY_modules_load_user(C); #else (void)argc; /* unused */ -- cgit v1.2.3 From 99997ccd181a6fcae5288fbd67a8eb32c71e9e3e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 29 Jul 2011 20:46:30 +0000 Subject: Fix for [#28117] Diffuse reflection IPO curve not imported correctly from 2.49b files --- source/blender/blenkernel/intern/ipo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 4f921f005f4..2ae6f533bd4 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -518,7 +518,7 @@ static const char *material_adrcodes_to_paths (int adrcode, int *array_index) return "alpha"; case MA_REF: - return "diffuse_reflection"; + return "diffuse_intensity"; case MA_EMIT: return "emit"; -- cgit v1.2.3 From 6a27da310c61b3372d565060506221a5afb9fe43 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 29 Jul 2011 20:59:46 +0000 Subject: While looking at the bug report, found some more issues... This is the result of RNA renaming at it's glance. ;-) --- source/blender/blenkernel/intern/ipo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 2ae6f533bd4..104ce2b3b32 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -527,7 +527,7 @@ static const char *material_adrcodes_to_paths (int adrcode, int *array_index) return "ambient"; case MA_SPEC: - return "specular_reflection"; + return "specular_intensity"; case MA_HARD: return "specular_hardness"; @@ -551,13 +551,13 @@ static const char *material_adrcodes_to_paths (int adrcode, int *array_index) return "raytrace_mirror.fresnel"; case MA_FRESMIRI: - return "raytrace_mirror.fresnel_fac"; + return "raytrace_mirror.fresnel_factor"; case MA_FRESTRA: return "raytrace_transparency.fresnel"; case MA_FRESTRAI: - return "raytrace_transparency.fresnel_fac"; + return "raytrace_transparency.fresnel_factor"; case MA_ADD: return "halo.add"; -- cgit v1.2.3 From aec91c0cf530d637a15c95cf1e4d0e27a7660a4c Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Fri, 29 Jul 2011 21:07:51 +0000 Subject: ndof sensitivity operator follows power curve and respects min/max --- source/blender/windowmanager/intern/wm_operators.c | 37 +++++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1b48e36d2b7..d813fd913ab 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3435,16 +3435,36 @@ static void WM_OT_memory_statistics(wmOperatorType *ot) static int wm_ndof_sensitivity_exec(bContext *UNUSED(C), wmOperator *op) { - float change = 0.1f; - int dir = 1; - if(RNA_boolean_get(op->ptr, "decrease")) - dir = -1; + const float min = 0.25f, max = 4.f; // TODO: get these from RNA property + float change; + float sensitivity = U.ndof_sensitivity; + if(RNA_boolean_get(op->ptr, "fast")) - change = 1.0f; + change = 0.5f; // 50% change + else + change = 0.1f; // 10% + if(RNA_boolean_get(op->ptr, "decrease")) + { + sensitivity -= sensitivity * change; + if (sensitivity < min) + sensitivity = min; + } + else + { + sensitivity += sensitivity * change; + if (sensitivity > max) + sensitivity = max; + } + + if (sensitivity != U.ndof_sensitivity) + { + U.ndof_sensitivity = sensitivity; + printf("new sensitivity: %f\n", U.ndof_sensitivity); + } + else + printf("same sensitivity: %f\n", U.ndof_sensitivity); - U.ndof_sensitivity += (dir * change); - printf("new sensitivity: %f\n", U.ndof_sensitivity); return OPERATOR_FINISHED; } @@ -3457,8 +3477,9 @@ static void WM_OT_ndof_sensitivity_change(wmOperatorType *ot) ot->exec= wm_ndof_sensitivity_exec; RNA_def_boolean(ot->srna, "decrease", 1, "Decrease NDOF sensitivity", "If true then action decreases NDOF sensitivity instead of increasing"); - RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then action change with factor 1.0, otherwise 0.1"); + RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then sensitivity changes 50%, otherwise 10%"); } + /* ******************************************************* */ /* called on initialize WM_exit() */ void wm_operatortype_free(void) -- cgit v1.2.3 From e9fed9bd8c2f18ed56a1ccfa5a3a0da12827c881 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 30 Jul 2011 05:04:49 +0000 Subject: Bugfix: When only one handle was selected in Graph Editor, the line of the other handle were not drawn This only happened when the "only on selected keyframes" option was enabled --- source/blender/editors/space_graph/graph_draw.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index f668b4b4a5f..67543d37859 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -356,10 +356,6 @@ static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu) float *fp; unsigned char col[4]; - /* if only selected keyframes have handles shown, skip the first round */ - if ((sel == 0) && (sipo->flag & SIPO_SELVHANDLESONLY)) - continue; - for (b= 0; b < fcu->totvert; b++, prevbezt=bezt, bezt++) { /* if only selected keyframes can get their handles shown, * check that keyframe is selected @@ -372,7 +368,7 @@ static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu) /* draw handle with appropriate set of colors if selection is ok */ if ((bezt->f2 & SELECT)==sel) { fp= bezt->vec[0]; - + /* only draw first handle if previous segment had handles */ if ( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) ) { @@ -382,14 +378,14 @@ static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu) glVertex2fv(fp); glVertex2fv(fp+3); } - + /* only draw second handle if this segment is bezier */ if (bezt->ipo == BEZT_IPO_BEZ) { UI_GetThemeColor3ubv(basecol + bezt->h2, col); col[3]= drawFCurveFade(fcu) * 255; glColor4ubv((GLubyte *)col); - + glVertex2fv(fp+3); glVertex2fv(fp+6); } } @@ -402,7 +398,7 @@ static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu) UI_GetThemeColor3ubv(basecol + bezt->h1, col); col[3]= drawFCurveFade(fcu) * 255; glColor4ubv((GLubyte *)col); - + glVertex2fv(fp); glVertex2fv(fp+3); } -- cgit v1.2.3 From 73183abfa98eeda9fb7deff8165a04ca6a28635d Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 30 Jul 2011 05:07:34 +0000 Subject: Removing some unused code - old gp editing stuff --- .../blender/editors/gpencil/editaction_gpencil.c | 48 ---------------------- 1 file changed, 48 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c index 518a90b2026..e70fd2f9abf 100644 --- a/source/blender/editors/gpencil/editaction_gpencil.c +++ b/source/blender/editors/gpencil/editaction_gpencil.c @@ -209,54 +209,6 @@ void borderselect_gplayer_frames (bGPDlayer *gpl, float min, float max, short se } } -#if 0 // XXX disabled until grease pencil code stabilises again - -/* De-selects or inverts the selection of Layers for a grease-pencil block - * mode: 0 = default behaviour (select all), 1 = test if (de)select all, 2 = invert all - */ -void deselect_gpencil_layers (void *data, short mode) -{ - ListBase act_data = {NULL, NULL}; - bActListElem *ale; - int filter, sel=1; - - /* filter data */ - filter= ACTFILTER_VISIBLE; - actdata_filter(&act_data, filter, data, ACTCONT_GPENCIL); - - /* See if we should be selecting or deselecting */ - if (mode == 1) { - for (ale= act_data.first; ale; ale= ale->next) { - if (sel == 0) - break; - - if (ale->flag & GP_LAYER_SELECT) - sel= 0; - } - } - else - sel= 0; - - /* Now set the flags */ - for (ale= act_data.first; ale; ale= ale->next) { - bGPDlayer *gpl= (bGPDlayer *)ale->data; - - if (mode == 2) - gpl->flag ^= GP_LAYER_SELECT; - else if (sel) - gpl->flag |= GP_LAYER_SELECT; - else - gpl->flag &= ~GP_LAYER_SELECT; - - gpl->flag &= ~GP_LAYER_ACTIVE; - } - - /* Cleanup */ - BLI_freelistN(&act_data); -} - -#endif // XXX disabled until Grease Pencil code stabilises again... - /* ***************************************** */ /* Frame Editing Tools */ -- cgit v1.2.3 From 632f59c7bce051f359e57bf872fb624cb6643d87 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 30 Jul 2011 05:23:10 +0000 Subject: improved visual rotation guide --- source/blender/editors/space_view3d/view3d_draw.c | 51 +++++++++++++++++++---- 1 file changed, 43 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 2b863bf794c..6e3f6549ba3 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -681,7 +681,7 @@ static void draw_rotation_guide(RegionView3D *rv3d) float o[3]; // center of rotation float end[3]; // endpoints for drawing - float color[4] = {1,1,0,1}; // bright yellow so it stands out during development + float color[4] = {0.f ,0.4235f, 1.f, 1.f}; // bright blue so it matches device LEDs negate_v3_v3(o, rv3d->ofs); @@ -699,7 +699,7 @@ static void draw_rotation_guide(RegionView3D *rv3d) mul_v3_v3fl(scaled_axis, rv3d->rot_axis, scale); glBegin(GL_LINE_STRIP); - color[3] = 0; // more transparent toward the ends + color[3] = 0.f; // more transparent toward the ends glColor4fv(color); add_v3_v3v3(end, o, scaled_axis); glVertex3fv(end); @@ -711,16 +711,52 @@ static void draw_rotation_guide(RegionView3D *rv3d) glColor4fv(color); glVertex3fv(o); - color[3] = 0; + color[3] = 0.f; glColor4fv(color); sub_v3_v3v3(end, o, scaled_axis); glVertex3fv(end); glEnd(); - color[3] = 1; // solid dot + // -- draw ring around rotation center -- + { + #define ROT_AXIS_DETAIL 13 + const float s = 0.05f * scale; + const float step = 2.f * M_PI / ROT_AXIS_DETAIL; + float angle; + int i; + + float q[4]; // rotate ring so it's perpendicular to axis + const int upright = fabsf(rv3d->rot_axis[2]) >= 0.95f; + if (!upright) + { + const float up[3] = {0.f, 0.f, 1.f}; + float vis_angle, vis_axis[3]; + + cross_v3_v3v3(vis_axis, up, rv3d->rot_axis); + vis_angle = acosf(dot_v3v3(up, rv3d->rot_axis)); + axis_angle_to_quat(q, vis_axis, vis_angle); + } + + color[3] = 0.25f; // somewhat faint + glColor4fv(color); + glBegin(GL_LINE_LOOP); + for (i = 0, angle = 0.f; i < ROT_AXIS_DETAIL; ++i, angle += step) + { + float p[3] = { s * cosf(angle), s * sinf(angle), 0.f }; + + if (!upright) + mul_qt_v3(q, p); + + add_v3_v3(p, o); + glVertex3fv(p); + } + glEnd(); + } + + color[3] = 1.f; // solid dot } else - color[3] = 0.5; // see-through dot + color[3] = 0.5f; // see-through dot // -- draw rotation center -- glColor4fv(color); @@ -2680,10 +2716,9 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) BDR_drawSketch(C); } -//#if 0 // not yet... - if (U.ndof_flag & NDOF_SHOW_GUIDE) + if ((U.ndof_flag & NDOF_SHOW_GUIDE) && (rv3d->viewlock != RV3D_LOCKED) && (rv3d->persp != RV3D_CAMOB)) + // TODO: draw something else (but not this) during fly mode draw_rotation_guide(rv3d); -//#endif ED_region_pixelspace(ar); -- cgit v1.2.3 From f66ec41b6a3b74f079c19494357c268e1ab39e85 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 30 Jul 2011 09:24:10 +0000 Subject: quiet some compiler warnings & fix possible (but unlikely) crash. also added GPLv2+ header to resources.c. --- source/blender/blenlib/intern/BLI_args.c | 6 ++++-- source/blender/editors/curve/editcurve.c | 15 ++++++++------ source/blender/editors/interface/interface_anim.c | 24 +++++++++++++++++++++++ source/blender/editors/interface/resources.c | 7 ++++--- source/blender/editors/object/object_relations.c | 6 +++--- 5 files changed, 44 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/BLI_args.c b/source/blender/blenlib/intern/BLI_args.c index 7bc93a3d3a0..5f31565d65b 100644 --- a/source/blender/blenlib/intern/BLI_args.c +++ b/source/blender/blenlib/intern/BLI_args.c @@ -290,8 +290,10 @@ void BLI_argsParse(struct bArgs *ba, int pass, BA_ArgCallback default_cb, void * } i += retval; } else if (retval == -1){ - if (a->key->pass != -1) - ba->passes[i] = pass; + if (a) { + if (a->key->pass != -1) + ba->passes[i] = pass; + } break; } } diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 06d88b16fa8..8b9477adf92 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -6544,12 +6544,15 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) BLI_assert(!"invalid nurbs type"); return NULL; } - - /* always do: */ - nu->flag |= CU_SMOOTH; - - test2DNurb(nu); - + + BLI_assert(nu != NULL); + + if(nu) { /* should always be set */ + nu->flag |= CU_SMOOTH; + + test2DNurb(nu); + } + return nu; } diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index 75e7ee701a2..03003173e20 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -1,3 +1,27 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): + * + * ***** END GPL LICENSE BLOCK ***** + */ + /** \file blender/editors/interface/interface_anim.c * \ingroup edinterface */ diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 56ef5e9e8cc..2b4003c7af0 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1,6 +1,3 @@ -/** \file blender/editors/interface/resources.c - * \ingroup edinterface - */ /* * $Id$ * @@ -33,6 +30,10 @@ * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ +/** \file blender/editors/interface/resources.c + * \ingroup edinterface + */ + #include #include #include diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index f21241b6e7a..0fb7cf8b640 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1096,7 +1096,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); View3D *v3d= CTX_wm_view3d(C); unsigned int lay, local; - int islamp= 0; + /* int islamp= 0; */ /* UNUSED */ lay= move_to_layer_init(C, op); lay &= 0xFFFFFF; @@ -1112,7 +1112,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) base->object->lay= lay; base->object->flag &= ~SELECT; base->flag &= ~SELECT; - if(base->object->type==OB_LAMP) islamp= 1; + /* if(base->object->type==OB_LAMP) islamp= 1; */ } CTX_DATA_END; } @@ -1124,7 +1124,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) local= base->lay & 0xFF000000; base->lay= lay + local; base->object->lay= lay; - if(base->object->type==OB_LAMP) islamp= 1; + /* if(base->object->type==OB_LAMP) islamp= 1; */ } CTX_DATA_END; } -- cgit v1.2.3 From d163ce55953bd04b42c2c79f6729e47228c01a9a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 30 Jul 2011 13:18:04 +0000 Subject: bpy fix for crash/assert on running dir() on a non collection property + some other minor corrections. --- source/blender/editors/transform/transform.c | 2 +- source/blender/makesrna/intern/rna_wm_api.c | 2 +- source/blender/python/intern/bpy_rna.c | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index eea77e36f7c..59e9e681e2b 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -4659,7 +4659,7 @@ static int createSlideVerts(TransInfo *t) #define EDGE_SLIDE_MIN 30 if (len_squared_v2v2(start, end) < (EDGE_SLIDE_MIN * EDGE_SLIDE_MIN)) { if(ABS(start[0]-end[0]) + ABS(start[1]-end[1]) < 4.0f) { - /* even more exceptional case, points are ontop of eachother */ + /* even more exceptional case, points are ontop of each other */ end[0]= start[0]; end[1]= start[1] + EDGE_SLIDE_MIN; } diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index e250cc84aa3..d44b68950f7 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -205,7 +205,7 @@ void RNA_api_operator(StructRNA *srna) /* check */ func= RNA_def_function(srna, "check", NULL); - RNA_def_function_ui_description(func, "Check the operator settings."); + RNA_def_function_ui_description(func, "Check the operator settings, return True to signal a change to redraw."); RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); parm= RNA_def_pointer(func, "context", "Context", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 6e1b9c807f3..2dcfe3731c7 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3262,11 +3262,15 @@ static PyObject *pyrna_prop_dir(BPy_PropertyRNA *self) * */ ret= PyList_New(0); - if (!BPy_PropertyRNA_CheckExact(self)) + if (!BPy_PropertyRNA_CheckExact(self)) { pyrna_dir_members_py(ret, (PyObject *)self); + } - if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) - pyrna_dir_members_rna(ret, &r_ptr); + if(RNA_property_type(self->prop) == PROP_COLLECTION) { + if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + pyrna_dir_members_rna(ret, &r_ptr); + } + } return ret; } -- cgit v1.2.3 From 805a169f7065222ce047d950c55b585b36bc4b24 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 30 Jul 2011 15:45:27 +0000 Subject: Bugfix #28121 Linked Library objects or object->data should not allow to go to sculptmode. Also cleaned up mode menu with invalid entries then. --- source/blender/editors/screen/screen_ops.c | 2 +- source/blender/editors/space_view3d/view3d_header.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 68326edfb11..1410331700f 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -301,7 +301,7 @@ int ED_operator_object_active_editable(bContext *C) int ED_operator_object_active_editable_mesh(bContext *C) { Object *ob = ED_object_active_context(C); - return ((ob != NULL) && !(ob->id.lib) && !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->type == OB_MESH); + return ((ob != NULL) && !(ob->id.lib) && !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->type == OB_MESH && !(((ID *)ob->data)->lib)); } int ED_operator_object_active_editable_font(bContext *C) diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index ae80a554e08..5b95ae63e56 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -280,7 +280,8 @@ static char *view3d_modeselect_pup(Scene *scene) str += sprintf(str, formatstr, "Object Mode", OB_MODE_OBJECT, ICON_OBJECT_DATA); - if(ob==NULL) return string; + if(ob==NULL || ob->data==NULL) return string; + if(ob->id.lib || ((ID *)ob->data)->lib) return string; /* if active object is editable */ if ( ((ob->type == OB_MESH) -- cgit v1.2.3 From 601eb684208eb3f5e8025b81be30817b87daeb98 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 31 Jul 2011 02:03:21 +0000 Subject: Added SkinNode DNA and customdata. --- source/blender/blenkernel/intern/customdata.c | 21 ++++++++++++++++----- source/blender/makesdna/DNA_customdata_types.h | 4 +++- source/blender/makesdna/DNA_meshdata_types.h | 5 +++++ 3 files changed, 24 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 8d19322c0db..1f18c78d070 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -805,7 +805,15 @@ static void layerDefault_mcol(void *data, int count) mcol[i] = default_mcol; } - +static void layerDefault_skin(void *data, int count) +{ + SkinNode *n = data; + int i; + + for(i = 0; i < count; i++) { + n[i].radius = 1; + } +} static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL}, @@ -843,7 +851,8 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "TexturedCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, - {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL} + {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + {sizeof(SkinNode), "SkinNode", 1, "Skin", NULL, NULL, NULL, NULL, layerDefault_skin} }; static const char *LAYERTYPENAMES[CD_NUMTYPES] = { @@ -851,7 +860,7 @@ static const char *LAYERTYPENAMES[CD_NUMTYPES] = { /* 5-9 */ "CDMTFace", "CDMCol", "CDOrigIndex", "CDNormal", "CDFlags", /* 10-14 */ "CDMFloatProperty", "CDMIntProperty","CDMStringProperty", "CDOrigSpace", "CDOrco", /* 15-19 */ "CDMTexPoly", "CDMLoopUV", "CDMloopCol", "CDTangent", "CDMDisps", - /* 20-23 */"CDWeightMCol", "CDIDMCol", "CDTextureMCol", "CDClothOrco" + /* 20-24 */ "CDWeightMCol", "CDIDMCol", "CDTextureMCol", "CDClothOrco", "CDSkinNode" }; const CustomDataMask CD_MASK_BAREMESH = @@ -859,10 +868,12 @@ const CustomDataMask CD_MASK_BAREMESH = const CustomDataMask CD_MASK_MESH = CD_MASK_MVERT | CD_MASK_MEDGE | CD_MASK_MFACE | CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | CD_MASK_MCOL | - CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS; + CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS | + CD_MASK_SKIN_NODE; const CustomDataMask CD_MASK_EDITMESH = CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | - CD_MASK_MCOL|CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS; + CD_MASK_MCOL|CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS | + CD_MASK_SKIN_NODE; const CustomDataMask CD_MASK_DERIVEDMESH = CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_ORIGINDEX | CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_CLOTH_ORCO | diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h index cdfcf465c6c..061e9460956 100644 --- a/source/blender/makesdna/DNA_customdata_types.h +++ b/source/blender/makesdna/DNA_customdata_types.h @@ -92,7 +92,8 @@ typedef struct CustomData { #define CD_ID_MCOL 21 #define CD_TEXTURE_MCOL 22 #define CD_CLOTH_ORCO 23 -#define CD_NUMTYPES 24 +#define CD_SKIN_NODE 24 +#define CD_NUMTYPES 25 /* Bits for CustomDataMask */ #define CD_MASK_MVERT (1 << CD_MVERT) @@ -117,6 +118,7 @@ typedef struct CustomData { #define CD_MASK_MDISPS (1 << CD_MDISPS) #define CD_MASK_WEIGHT_MCOL (1 << CD_WEIGHT_MCOL) #define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO) +#define CD_MASK_SKIN_NODE (1 << CD_SKIN_NODE) /* CustomData.flag */ diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h index e3510b3a25a..a71c4970eb5 100644 --- a/source/blender/makesdna/DNA_meshdata_types.h +++ b/source/blender/makesdna/DNA_meshdata_types.h @@ -184,6 +184,11 @@ typedef struct PartialVisibility { unsigned int totface, totedge, totvert, pad; } PartialVisibility; +typedef struct SkinNode { + float radius; + int pad; +} SkinNode; + /* mvert->flag (1=SELECT) */ #define ME_SPHERETEST 2 #define ME_VERT_TMP_TAG 4 -- cgit v1.2.3 From cae05598b1d10a70a0e37f28b6e49a5b5715a30f Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 31 Jul 2011 02:03:28 +0000 Subject: Added DNA and RNA for skin modifier, stubbed in skin modifier functions --- source/blender/makesdna/DNA_modifier_types.h | 14 +++++ source/blender/makesrna/intern/rna_modifier.c | 15 +++++ source/blender/modifiers/CMakeLists.txt | 1 + source/blender/modifiers/MOD_modifiertypes.h | 1 + source/blender/modifiers/intern/MOD_skin.c | 88 +++++++++++++++++++++++++++ source/blender/modifiers/intern/MOD_util.c | 1 + 6 files changed, 120 insertions(+) create mode 100644 source/blender/modifiers/intern/MOD_skin.c (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 3787675f339..483bd339b3d 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -71,6 +71,7 @@ typedef enum ModifierType { eModifierType_Solidify, eModifierType_Screw, eModifierType_Warp, + eModifierType_Skin, NUM_MODIFIER_TYPES } ModifierType; @@ -785,4 +786,17 @@ typedef enum { /* PROP_RANDOM not used */ } WarpModifierFalloff; +typedef enum SkinModifierFlags { + MOD_SKIN_DRAW_SKIN = (1<<0), + MOD_SKIN_DRAW_NODES = (1<<1), +} SkinModifierFlags; + +typedef struct SkinModifierData { + ModifierData modifier; + float threshold; + int subdiv; + int flag; + int pad; +} SkinModifierData; + #endif diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba655915fb6..b4a4c593ba9 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -68,6 +68,7 @@ EnumPropertyItem modifier_type_items[] ={ {eModifierType_Solidify, "SOLIDIFY", ICON_MOD_SOLIDIFY, "Solidify", ""}, {eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""}, {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, + {eModifierType_Skin, "SKIN", ICON_MOD_ARMATURE, "Skin", ""}, {0, "", 0, "Deform", ""}, {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, @@ -183,6 +184,8 @@ static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) return &RNA_ScrewModifier; case eModifierType_Warp: return &RNA_WarpModifier; + case eModifierType_Skin: + return &RNA_SkinModifier; default: return &RNA_Modifier; } @@ -2412,6 +2415,17 @@ static void rna_def_modifier_screw(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Modifier_update");*/ } +static void rna_def_modifier_skin(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "SkinModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Skin Modifier", "Generate Skin"); + RNA_def_struct_sdna(srna, "SkinModifierData"); + RNA_def_struct_ui_icon(srna, ICON_MOD_ARMATURE); +} + void RNA_def_modifier(BlenderRNA *brna) { StructRNA *srna; @@ -2509,6 +2523,7 @@ void RNA_def_modifier(BlenderRNA *brna) rna_def_modifier_smoke(brna); rna_def_modifier_solidify(brna); rna_def_modifier_screw(brna); + rna_def_modifier_skin(brna); } #endif diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt index d1f153265ac..7db03f48631 100644 --- a/source/blender/modifiers/CMakeLists.txt +++ b/source/blender/modifiers/CMakeLists.txt @@ -70,6 +70,7 @@ set(SRC intern/MOD_shapekey.c intern/MOD_shrinkwrap.c intern/MOD_simpledeform.c + intern/MOD_skin.c intern/MOD_smoke.c intern/MOD_smooth.c intern/MOD_softbody.c diff --git a/source/blender/modifiers/MOD_modifiertypes.h b/source/blender/modifiers/MOD_modifiertypes.h index 4e44a226c64..329037ee210 100644 --- a/source/blender/modifiers/MOD_modifiertypes.h +++ b/source/blender/modifiers/MOD_modifiertypes.h @@ -72,6 +72,7 @@ extern ModifierTypeInfo modifierType_ShapeKey; extern ModifierTypeInfo modifierType_Solidify; extern ModifierTypeInfo modifierType_Screw; extern ModifierTypeInfo modifierType_Warp; +extern ModifierTypeInfo modifierType_Skin; /* MOD_util.c */ void modifier_type_init(ModifierTypeInfo *types[]); diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c new file mode 100644 index 00000000000..adc47f32c9c --- /dev/null +++ b/source/blender/modifiers/intern/MOD_skin.c @@ -0,0 +1,88 @@ +/* +* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +* ***** END GPL LICENSE BLOCK ***** +* +*/ + +/** \file blender/modifiers/intern/MOD_skin.c + * \ingroup modifiers + */ + + +#include + +#include "BKE_cdderivedmesh.h" +#include "BKE_modifier.h" + +#include "DNA_mesh_types.h" +#include "DNA_object_types.h" + +#include "MOD_util.h" + +static void initData(ModifierData *md) +{ + SkinModifierData *smd = (SkinModifierData*)md; + + smd->threshold = 0; + smd->subdiv = 1; + smd->flag = MOD_SKIN_DRAW_NODES; +} + +static void copyData(ModifierData *md, ModifierData *target) +{ + SkinModifierData *smd = (SkinModifierData*) md; + SkinModifierData *tsmd = (SkinModifierData*) target; + + tsmd->threshold = smd->threshold; + tsmd->subdiv = smd->subdiv; + tsmd->flag = smd->flag; +} + +static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm, + int useRenderParams, int isFinalCalc) +{ + return dm; +} + + +ModifierTypeInfo modifierType_Skin = { + /* name */ "Skin", + /* structName */ "SkinModifierData", + /* structSize */ sizeof(SkinModifierData), + /* type */ eModifierTypeType_Constructive, + /* flags */ eModifierTypeFlag_AcceptsMesh, + + /* copyData */ copyData, + /* deformVerts */ NULL, + /* deformMatrices */ NULL, + /* deformVertsEM */ NULL, + /* deformMatricesEM */ NULL, + /* applyModifier */ applyModifier, + /* applyModifierEM */ NULL, + /* initData */ initData, + /* requiredDataMask */ NULL, + /* freeData */ NULL, + /* isDisabled */ NULL, + /* updateDepgraph */ NULL, + /* dependsOnTime */ NULL, + /* dependsOnNormals */ NULL, + /* foreachObjectLink */ NULL, + /* foreachIDLink */ NULL, +}; diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index e9b835eab81..e823a347ced 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -295,5 +295,6 @@ void modifier_type_init(ModifierTypeInfo *types[]) INIT_TYPE(Solidify); INIT_TYPE(Screw); INIT_TYPE(Warp); + INIT_TYPE(Skin); #undef INIT_TYPE } -- cgit v1.2.3 From cff57b14a122a7925d8fb6aeb0ecd53984fa0c58 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 31 Jul 2011 02:03:39 +0000 Subject: Imported bsphere.c, mostly ifdef'd out for now --- source/blender/blenkernel/CMakeLists.txt | 1 + source/blender/blenkernel/intern/bsphere.c | 1178 +++++++++++++++++++++++++ source/blender/blenkernel/intern/customdata.c | 2 +- 3 files changed, 1180 insertions(+), 1 deletion(-) create mode 100644 source/blender/blenkernel/intern/bsphere.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index defcef58463..e549a205325 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -81,6 +81,7 @@ set(SRC intern/boids.c intern/booleanops_mesh.c intern/brush.c + intern/bsphere.c intern/bullet.c intern/bvhutils.c intern/cdderivedmesh.c diff --git a/source/blender/blenkernel/intern/bsphere.c b/source/blender/blenkernel/intern/bsphere.c new file mode 100644 index 00000000000..d8a75f62172 --- /dev/null +++ b/source/blender/blenkernel/intern/bsphere.c @@ -0,0 +1,1178 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2011 by Nicholas Bishop + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include "MEM_guardedalloc.h" + +#include "DNA_mesh_types.h" +#include "DNA_meshdata_types.h" +#include "DNA_modifier_types.h" + +#include "BLI_utildefines.h" +#include "BLI_heap.h" +#include "BLI_ghash.h" +#include "BLI_listbase.h" +#include "BLI_math.h" + +#include "BKE_cdderivedmesh.h" +#include "BKE_DerivedMesh.h" +#include "BKE_global.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_subsurf.h" + +#include + +typedef struct Tri { + struct Tri *next, *prev; + unsigned int v[3]; + float no[3]; + float area; + int marked; +} Tri; + +typedef struct Edge { + struct Edge *next, *prev; + unsigned int v[2]; + Tri *tri[2]; +} Edge; + +/* note: a `frame' is four vertices (contiguous within the MVert + array), stored simply as the index of the first vertex */ + +static void create_frame(float frame[4][3], const float co[3], float radius, + const float mat[3][3], float x_offset) +{ + float rx[3], ry[3], rz[3]; + int i; + + mul_v3_v3fl(ry, mat[1], radius); + mul_v3_v3fl(rz, mat[2], radius); + + add_v3_v3v3(frame[3], co, ry); + add_v3_v3v3(frame[3], frame[3], rz); + + sub_v3_v3v3(frame[2], co, ry); + add_v3_v3v3(frame[2], frame[2], rz); + + sub_v3_v3v3(frame[1], co, ry); + sub_v3_v3v3(frame[1], frame[1], rz); + + add_v3_v3v3(frame[0], co, ry); + sub_v3_v3v3(frame[0], frame[0], rz); + + mul_v3_v3fl(rx, mat[0], x_offset); + for(i = 0; i < 4; i++) + add_v3_v3v3(frame[i], frame[i], rx); +} + +static void create_mid_frame(float frame[4][3], + const float co1[3], const float co2[3], + const SkinNode *n1, const SkinNode *n2, + const float mat[3][3]) +{ + create_frame(frame, co1, (n1->radius + n2->radius) / 2, + mat, len_v3v3(co1, co2) / 2); +} + +static void add_face(MFace *mface, int *totface, + int v1, int v2, int v3, int v4) +{ + MFace *f; + + f = &mface[*totface]; + f->v1 = v1; + f->v2 = v2; + f->v3 = v3; + f->v4 = v4 == -1 ? 0 : v4; + if(!v4) { + f->v1 = v3; + f->v2 = v4; + f->v3 = v1; + f->v4 = v2; + } + (*totface)++; +} + +static void connect_frames(MFace *mface, int *totface, int frame1, int frame2) +{ + int i; + + for(i = 0; i < 4; i++) { + add_face(mface, totface, + frame2 + i, + frame2 + (i+1) % 4, + frame1 + (i+1) % 4, + frame1 + i); + } +} + +static Tri *add_triangle(ListBase *tris, MVert *mvert, int v1, int v2, int v3) +{ + Tri *t; + + t = MEM_callocN(sizeof(Tri), "add_triangle.tri"); + t->v[0] = v1; + t->v[1] = v2; + t->v[2] = v3; + BLI_addtail(tris, t); + + normal_tri_v3(t->no, mvert[t->v[0]].co, mvert[t->v[1]].co, mvert[t->v[2]].co); + t->area = area_tri_v3(mvert[t->v[0]].co, mvert[t->v[1]].co, mvert[t->v[2]].co); + + return t; +} + +static int point_tri_side(const Tri *t, MVert *mvert, int v) +{ + float p[3], d; + sub_v3_v3v3(p, mvert[v].co, mvert[t->v[0]].co); + d = dot_v3v3(t->no, p); + if(d < 0) return -1; + else if(d > 0) return 1; + else return 0; +} + +static int mark_v_outside_tris(ListBase *tris, MVert *mvert, int v) +{ + Tri *t; + int outside = 0; + + /* probably there's a much better way to do this */ + for(t = tris->first; t; t = t->next) { + if((t->marked = point_tri_side(t, mvert, v) > 0)) + outside = 1; + } + return outside; +} + +static int edge_match(int e1_0, int e1_1, const unsigned int e2[2]) +{ + /* XXX: maybe isn't necesseary to check both directions? */ + return (e1_0 == e2[0] && e1_1 == e2[1]) || + (e1_0 == e2[1] && e1_1 == e2[0]); +} + +/* returns true if the edge (e1, e2) is already in edges; that edge is + deleted here as well. if not found just returns 0 */ +static int check_for_dup(ListBase *edges, unsigned int e1, unsigned int e2) +{ + Edge *e, *next; + + for(e = edges->first; e; e = next) { + next = e->next; + + if(edge_match(e1, e2, e->v)) { + /* remove the interior edge */ + BLI_freelinkN(edges, e); + return 1; + } + } + + return 0; +} + +static void expand_boundary_edges(ListBase *edges, Tri *t) +{ + Edge *new; + int i; + + /* insert each triangle edge into the boundary list; if any of + its edges are already in there, remove the edge entirely */ + for(i = 0; i < 3; i++) { + if(!check_for_dup(edges, t->v[i], t->v[(i+1)%3])) { + new = MEM_callocN(sizeof(Edge), "Edge"); + new->v[0] = t->v[i]; + new->v[1] = t->v[(i+1)%3]; + BLI_addtail(edges, new); + } + } +} + +static int tri_matches_frame(const Tri *t, int frame) +{ + int i, j, match = 0; + for(i = 0; i < 3; i++) { + for(j = 0; j < 4; j++) { + if(t->v[i] == frame + j) { + match++; + if(match >= 3) + return 1; + } + } + } + return 0; +} + +static void quad_from_tris(const Edge *e, int ndx[4]) +{ + int i, j, opp = -1; + + /* find what the second tri has that the first doesn't */ + for(i = 0; i < 3; i++) { + if(e->tri[1]->v[i] != e->tri[0]->v[0] && + e->tri[1]->v[i] != e->tri[0]->v[1] && + e->tri[1]->v[i] != e->tri[0]->v[2]) { + opp = e->tri[1]->v[i]; + break; + } + } + assert(opp != -1); + + for(i = 0, j = 0; i < 3; i++, j++) { + ndx[j] = e->tri[0]->v[i]; + /* when the triangle edge cuts across our quad-to-be, + throw in the second triangle's vertex */ + if((e->tri[0]->v[i] == e->v[0] || e->tri[0]->v[i] == e->v[1]) && + (e->tri[0]->v[(i+1)%3] == e->v[0] || e->tri[0]->v[(i+1)%3] == e->v[1])) { + j++; + ndx[j] = opp; + } + } +} + +static void add_quad_from_tris(MFace *mface, int *totface, const Edge *e) +{ + int ndx[4]; + + quad_from_tris(e, ndx); + + add_face(mface, totface, ndx[0], ndx[1], ndx[2], ndx[3]); +} + +static GHash *calc_edges(ListBase *tris) +{ + GHash *adj; + ListBase *edges; + Edge *e; + Tri *t; + int i, e1, e2; + + /* XXX: vertex range might be a little funky? so using a + hash here */ + adj = BLI_ghash_new(BLI_ghashutil_inthash, + BLI_ghashutil_intcmp, + "calc_edges adj"); + + for(t = tris->first; t; t = t->next) { + for(i = 0; i < 3; i++) { + e1 = t->v[i]; + e2 = t->v[(i+1)%3]; + assert(e1 != e2); + if(e1 > e2) + SWAP(int, e1, e2); + + edges = BLI_ghash_lookup(adj, SET_INT_IN_POINTER(e1)); + if(!edges) { + edges = MEM_callocN(sizeof(ListBase), + "calc_edges ListBase"); + BLI_ghash_insert(adj, SET_INT_IN_POINTER(e1), edges); + } + + /* find the edge in the adjacency list */ + for(e = edges->first; e; e = e->next) { + assert(e->v[0] == e1); + if(e->v[1] == e2) + break; + } + + /* if not found, create the edge */ + if(!e) { + e = MEM_callocN(sizeof(Edge), "calc_edges Edge"); + e->v[0] = e1; + e->v[1] = e2; + BLI_addtail(edges, e); + } + + /* should never be more than two faces + attached to an edge here */ + assert(!e->tri[0] || !e->tri[1]); + + if(!e->tri[0]) + e->tri[0] = t; + else if(!e->tri[1]) + e->tri[1] = t; + } + } + + return adj; +} + +static int is_quad_symmetric(const MVert *mvert, const Edge *e) +{ + int ndx[4]; + float a[3]; + + quad_from_tris(e, ndx); + + copy_v3_v3(a, mvert[ndx[0]].co); + a[0] = -a[0]; + + if(len_v3v3(a, mvert[ndx[1]].co) < FLT_EPSILON) { + copy_v3_v3(a, mvert[ndx[2]].co); + a[0] = -a[0]; + if(len_v3v3(a, mvert[ndx[3]].co) < FLT_EPSILON) + return 1; + } + else if(len_v3v3(a, mvert[ndx[3]].co) < FLT_EPSILON) { + copy_v3_v3(a, mvert[ndx[2]].co); + a[0] = -a[0]; + if(len_v3v3(a, mvert[ndx[1]].co) < FLT_EPSILON) + return 1; + } + + return 0; +} + +static void output_hull(const MVert *mvert, MFace *mface, int *totface, ListBase *tris) +{ + Heap *heap; + GHash *adj; + GHashIterator *iter; + ListBase *edges; + Edge *e; + Tri *t; + float score; + + heap = BLI_heap_new(); + adj = calc_edges(tris); + + /* unmark all triangles */ + for(t = tris->first; t; t = t->next) + t->marked = 0; + + /* build heap */ + iter = BLI_ghashIterator_new(adj); + while(!BLI_ghashIterator_isDone(iter)) { + edges = BLI_ghashIterator_getValue(iter); + for(e = edges->first; e; e = e->next) { + /* only care if the edge is used by more than + one triangle */ + if(e->tri[0] && e->tri[1]) { + score = (e->tri[0]->area + e->tri[1]->area) * + dot_v3v3(e->tri[0]->no, e->tri[1]->no); + + /* increase score if the triangles + form a symmetric quad */ + if(is_quad_symmetric(mvert, e)) + score *= 10; + + BLI_heap_insert(heap, -score, e); + } + } + + BLI_ghashIterator_step(iter); + } + BLI_ghashIterator_free(iter); + + while(!BLI_heap_empty(heap)) { + e = BLI_heap_popmin(heap); + + /* if both triangles still free, outupt as a quad */ + if(!e->tri[0]->marked && !e->tri[1]->marked) { + add_quad_from_tris(mface, totface, e); + e->tri[0]->marked = 1; + e->tri[1]->marked = 1; + } + } + + /* free edge list */ + iter = BLI_ghashIterator_new(adj); + while(!BLI_ghashIterator_isDone(iter)) { + edges = BLI_ghashIterator_getValue(iter); + BLI_freelistN(edges); + MEM_freeN(edges); + BLI_ghashIterator_step(iter); + } + BLI_ghashIterator_free(iter); + BLI_ghash_free(adj, NULL, NULL); + BLI_heap_free(heap, NULL); + + /* write out any remaining triangles */ + for(t = tris->first; t; t = t->next) { + if(!t->marked) + add_face(mface, totface, t->v[0], t->v[1], t->v[2], -1); + } +} + +/* for vertex `v', find which triangles must be deleted to extend the + hull; find the boundary edges of that hole so that it can be filled + with connections to the new vertex, and update the `tri' list to + delete the marked triangles */ +static void add_point(ListBase *tris, MVert *mvert, int v) +{ + ListBase edges = {NULL, NULL}; + Tri *t, *next; + Edge *e; + + for(t = tris->first; t; t = next) { + next = t->next; + + /* check if triangle is `visible' to v */ + if(t->marked) { + expand_boundary_edges(&edges, t); + /* remove the triangle */ + BLI_freelinkN(tris, t); + } + } + + /* fill hole boundary with triangles to new point */ + for(e = edges.first; e; e = e->next) + add_triangle(tris, mvert, e->v[0], e->v[1], v); + BLI_freelistN(&edges); +} + +static void build_hull(MFace *mface, int *totface, + MVert *mvert, int *frames, int totframe) +{ + ListBase tris = {NULL, NULL}; + Tri *t, *next; + int i, j; + + /* use first frame to make initial degenerate pyramid */ + add_triangle(&tris, mvert, frames[0], frames[0] + 1, frames[0] + 2); + add_triangle(&tris, mvert, frames[0] + 1, frames[0], frames[0] + 3); + add_triangle(&tris, mvert, frames[0] + 2, frames[0] + 1, frames[0] + 3); + add_triangle(&tris, mvert, frames[0], frames[0] + 2, frames[0] + 3); + + for(i = 1; i < totframe; i++) { + for(j = 0; j < 4; j++) { + int v = frames[i] + j; + + /* ignore point already inside hull */ + if(mark_v_outside_tris(&tris, mvert, v)) { + /* expand hull and delete interior triangles */ + add_point(&tris, mvert, v); + } + } + } + + /* remove triangles that would fill the original frames */ + for(t = tris.first; t; t = next) { + next = t->next; + + for(i = 0; i < totframe; i++) { + if(tri_matches_frame(t, frames[i])) { + BLI_freelinkN(&tris, t); + break; + } + } + } + + output_hull(mvert, mface, totface, &tris); + + BLI_freelistN(&tris); +} + +/* test: build hull on origdm */ +#if 0 +static DerivedMesh *test_hull(DerivedMesh *origdm) +{ + DerivedMesh *dm; + MVert *mvert, *origmvert; + MFace *mface; + int *frames; + int totvert = 0, totface = 0, totframe, i; + + /* TODO */ + totface = 2000; + totvert = origdm->getNumVerts(origdm); + dm = CDDM_new(totvert, 0, totface); + + mvert = CDDM_get_verts(dm); + mface = CDDM_get_faces(dm); + + origmvert = CDDM_get_verts(origdm); + for(i = 0; i < totvert; i++) + mvert[i] = origmvert[i]; + + assert(totvert % 4 == 0); + totframe = totvert / 4; + + frames = MEM_callocN(sizeof(int) * totframe, "frames"); + for(i = 0; i < totframe; i++) + frames[i] = i*4; + + totface = 0; + build_hull(mface, &totface, mvert, frames, totframe); + + CDDM_calc_edges(dm); + //CDDM_calc_normals(dm); + + MEM_freeN(frames); + + return dm; +} +#endif + +/* TODO */ +static void calc_edge_mat(float mat[3][3], const float a[3], const float b[3]) +{ + float Z[3] = {0, 0, 1}; + float dot; + + /* x = edge direction */ + sub_v3_v3v3(mat[0], b, a); + normalize_v3(mat[0]); + + dot = dot_v3v3(mat[0], Z); + if(dot > -1 + FLT_EPSILON && dot < 1 - FLT_EPSILON) { + /* y = Z cross x */ + cross_v3_v3v3(mat[1], Z, mat[0]); + normalize_v3(mat[1]); + + /* z = x cross y */ + cross_v3_v3v3(mat[2], mat[0], mat[1]); + normalize_v3(mat[2]); + } + else { + mat[1][0] = 1; + mat[1][1] = 0; + mat[1][2] = 0; + mat[2][0] = 0; + mat[2][1] = 1; + mat[2][2] = 0; + } +} + +/* BMesh paper */ +#if 0 +static float calc_R_sub_i_squared(const BSphereNode *n) +{ + const float alpha = 1.5; + //const float alpha = 1; + const float R_sub_i = n->size[0] * alpha; + return R_sub_i * R_sub_i; +} + +/* equation (2) */ +static float calc_r_squared(const float v[3], const BSphereNode *n) +{ + return len_squared_v3v3(v, n->co); +} + +/* equation (1) */ +static float calc_f_sub_i(const float v[3], const BSphereNode *n) +{ + float r_squared; + float R_sub_i_squared; + + r_squared = calc_r_squared(v, n); + R_sub_i_squared = calc_R_sub_i_squared(n); + + if(r_squared <= R_sub_i_squared) + return powf(1.0f - (r_squared / R_sub_i_squared), 2); + else + return 0; +} + +/* equation (3) */ +static float calc_I(const float x[3], float T, const ListBase *base) +{ + BSphereNode *n; + float a = -T; + + for(n = base->first; n; n = n->next) { + a += calc_I(x, 0, &n->children); + a += calc_f_sub_i(x, n); + } + + //printf("calc_I: %f, %f\n", -T, a); + + return a; +} + +/* kinda my own guess here */ +static void calc_gradient(float g[3], const float x[3], const ListBase *base) +{ + BSphereNode *n; + + for(n = base->first; n; n = n->next) { + float R_sub_i_squared = calc_R_sub_i_squared(n); + float dist = len_v3v3(x, n->co); + float f = calc_f_sub_i(x, n); + float d = 1.0f / R_sub_i_squared; + float tmp[3]; + + /* XXX: other possibilities... */ + if(f > 0) { + sub_v3_v3v3(tmp, x, n->co); + mul_v3_fl(tmp, -4*d * (1 - d * dist)); + + /* not sure if I'm doing this right; intent is + to flip direction when x is `beneath' the + level set */ + if(len_v3v3(x, n->co) > n->size[0]) + negate_v3(tmp); + + add_v3_v3(g, tmp); + } + + calc_gradient(g, x, &n->children); + } +} + +/* equation (5) */ +static float calc_F(const float x[3], const float K[2], float T, const ListBase *base) +{ + float f_of_K; + float I_target; + + /* TODO */ + f_of_K = 1.0f / (1 + fabs(K[0]) + fabs(K[1])); + //f_of_K = 1; + + /* TODO */ + I_target = 0; + + return (calc_I(x, T, base) - I_target) /*TODO: * f_of_K*/; +} + +static float smallest_radius(const ListBase *base) +{ + BSphereNode *n; + float s = FLT_MAX, t; + + for(n = base->first; n; n = n->next) { + if(n->size[0] < s) + s = n->size[0]; + if((t = smallest_radius(&n->children)) < s) + s = t; + } + + return s; +} + +/* equation (7) */ +static float calc_delta_t(float F_max, float k, const ListBase *base, int print) +{ + float min_r_sub_i; + float step; + + min_r_sub_i = smallest_radius(base); + step = min_r_sub_i / powf(2, k); + + if(print) { + printf("min_r: %f, 2^k=%f, step=%f\n", min_r_sub_i, powf(2, k), step); + } + + return step / F_max; +} + +/* equation (6) */ +static float evolve_x(float x[3], const float K[2], float T, + int k, const ListBase *base, int i, float F_max) +{ + float tmp[3], no[3]; + float F, dt; + + F = calc_F(x, K, T, base); + + if(F < FLT_EPSILON) { + //printf("stability reached for ndx=%d\n", i); + return 0; + } + + /* TODO ;-) */ + if(F > F_max) + F_max = F; + + dt = calc_delta_t(F_max, k, base, 0); + + dt = F / 2; + + if(i == 0) + ;//printf("F=%.3f, dt=%.3f\n", F, calc_delta_t(F_max, k, base, 1)); + + zero_v3(no); + calc_gradient(no, x, base); + normalize_v3(no); + negate_v3(no); + + mul_v3_v3fl(tmp, no, F * dt); + add_v3_v3(x, tmp); + + return F_max; +} + +static void bsphere_evolve(MVert *mvert, int totvert, const ListBase *base, + float T, int steps, float subdiv_level) +{ + int i, s; + + for(i = 0; i < totvert; i++) { + float F_max = 0; + /* TODO: for now just doing a constant number of steps */ + for(s = 0; s < steps; s++) { + /* TODO */ + float K[2] = {0, 0}; + + F_max = evolve_x(mvert[i].co, K, T, subdiv_level, base, i, F_max); + } + } +} +#endif + +typedef enum { + START_CAP = 1, + END_CAP = 2, + NODE_BISECT = 4, + CHILD_EDGE_BISECT = 8, + + IN_FRAME = 16, + OUT_FRAME = 32, +} FrameFlag; + +typedef struct { + int totframe; + int outbase; + FrameFlag flag; + float co[0][4][3]; +} Frames; + +static Frames *frames_create(FrameFlag flag) +{ + Frames *frames; + int totframe; + totframe = (!!(flag & START_CAP) + !!(flag & END_CAP) + + !!(flag & NODE_BISECT) + !!(flag & CHILD_EDGE_BISECT)); + assert(totframe); + frames = MEM_callocN(sizeof(Frames) + sizeof(float)*totframe*4*3, + "frames_create.frames"); + frames->totframe = totframe; + frames->flag = flag; + assert((flag & (END_CAP|CHILD_EDGE_BISECT)) != (END_CAP|CHILD_EDGE_BISECT)); + return frames; +} + +static int frame_offset(Frames *frames, FrameFlag flag) +{ + int n = 0; + + assert(flag == IN_FRAME || flag == OUT_FRAME || + !(flag & (IN_FRAME|OUT_FRAME))); + + if(flag == IN_FRAME) + return 0; + else if(flag == OUT_FRAME) + return frames->totframe-1; + + assert((flag & frames->flag) == flag); + + if(flag == START_CAP) return n; + if(frames->flag & START_CAP) n++; + + if(flag == NODE_BISECT) return n; + if(frames->flag & NODE_BISECT) n++; + + if(flag == END_CAP) return n; + if(frames->flag & END_CAP) n++; + + if(flag == CHILD_EDGE_BISECT) return n; + if(frames->flag & CHILD_EDGE_BISECT) n++; + + assert(!"bad frame offset flag"); +} + +static int frame_base(Frames *frames, FrameFlag flag) +{ + return frames->outbase + 4*frame_offset(frames, flag); +} + +static void *frame_co(Frames *frames, FrameFlag flag) +{ + return frames->co[frame_offset(frames, flag)]; +} + +static int frames_totvert(Frames *frames) +{ + return frames->totframe*4; +} + +#if 0 +static int bsphere_build_frames(BSphereNode *n, GHash *ghash, + float (*parent_mat)[3], FrameFlag flag); + +/* builds the `cap' of polygons for the end of a BSphere chain */ +static int bsphere_end_node_frames(BSphereNode *n, + GHash *ghash, + float parent_mat[3][3], + FrameFlag flag) +{ + Frames *frames; + float rad; + + assert(flag == 0 || flag == START_CAP); + frames = frames_create(NODE_BISECT|END_CAP|flag, n, ghash); + + /* TODO */ + rad = n->size[0]; + + if(flag & START_CAP) + create_frame(frame_co(frames, START_CAP), n, parent_mat, -rad, rad); + + /* frame to bisect the node */ + create_frame(frame_co(frames, NODE_BISECT), n, parent_mat, 0, rad); + + /* frame to cap end node */ + create_frame(frame_co(frames, END_CAP), n, parent_mat, rad, rad); + + return frames_totvert(frames); +} + +static int bsphere_connection_node_frames(BSphereNode *n, + GHash *ghash, + float parent_mat[3][3], + FrameFlag flag) +{ + Frames *frames; + BSphereNode *child; + float childmat[3][3], nodemat[3][3], axis[3], angle, rad, child_rad; + int totvert; + + assert(flag == 0 || flag == START_CAP); + + child = n->children.first; + + /* if child is not a branch node, bisect the child edge */ + if(BLI_countlist(&child->children) <= 1) + flag |= CHILD_EDGE_BISECT; + + frames = frames_create(NODE_BISECT|flag, n, ghash); + totvert = frames_totvert(frames); + + /* TODO */ + rad = n->size[0]; + child_rad = child->size[0]; + + /* build matrix to give to child */ + sub_v3_v3v3(childmat[0], child->co, n->co); + normalize_v3(childmat[0]); + angle = angle_normalized_v3v3(parent_mat[0], childmat[0]); + cross_v3_v3v3(axis, parent_mat[0], childmat[0]); + normalize_v3(axis); + rotate_normalized_v3_v3v3fl(childmat[1], parent_mat[1], axis, angle); + rotate_normalized_v3_v3v3fl(childmat[2], parent_mat[2], axis, angle); + + /* build child */ + totvert += bsphere_build_frames(child, ghash, childmat, 0); + + /* frame that bisects the node */ + angle /= 2; + copy_v3_v3(nodemat[0], parent_mat[0]); + rotate_normalized_v3_v3v3fl(nodemat[1], parent_mat[1], axis, angle); + rotate_normalized_v3_v3v3fl(nodemat[2], parent_mat[2], axis, angle); + create_frame(frame_co(frames, NODE_BISECT), n, nodemat, 0, rad); + + if(flag & START_CAP) + create_frame(frame_co(frames, START_CAP), n, nodemat, -rad, rad); + + if(flag & CHILD_EDGE_BISECT) + create_mid_frame(frame_co(frames, CHILD_EDGE_BISECT), n, child, childmat); + + return totvert; +} + +static int bsphere_branch_node_frames(BSphereNode *n, GHash *ghash) +{ + BSphereNode *child; + int totvert = 0; + float rad; + + rad = n->size[0]; + + /* build children */ + for(child = n->children.first; child; child = child->next) { + float childmat[3][3]; + + calc_edge_mat(childmat, n->co, child->co); + + totvert += bsphere_build_frames(child, ghash, childmat, 0); + } + + /* TODO: for now, builds no frames of its own */ + + return totvert; +} + +static int bsphere_build_frames(BSphereNode *n, GHash *ghash, + float parent_mat[3][3], FrameFlag flag) +{ + BSphereNode *child; + + child = n->children.first; + + if(!child) + return bsphere_end_node_frames(n, ghash, parent_mat, flag); + else if(!child->next) + return bsphere_connection_node_frames(n, ghash, parent_mat, flag); + else + return bsphere_branch_node_frames(n, ghash); +} + +static GHash *bsphere_frames(BSphere *bs, int *totvert) +{ + GHash *ghash; + BSphereNode *n, *child; + + ghash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, + "bsphere_frames.ghash"); + (*totvert) = 0; + + for(n = bs->rootbase.first; n; n = n->next) { + float mat[3][3]; + + child = n->children.first; + if(!child || (child && child->next)) { + set_v3(mat[0], 0, 0, 1); + set_v3(mat[1], 1, 0, 0); + set_v3(mat[2], 0, 1, 0); + } + else if(!child->next) { + calc_edge_mat(mat, n->co, child->co); + } + + (*totvert) += bsphere_build_frames(n, ghash, mat, START_CAP); + } + + return ghash; +} + +static void output_frames(Frames *frames, MVert *mvert, MFace *mface, + int *totvert, int *totface) +{ + int b, i, j; + + frames->outbase = (*totvert); + for(i = 0; i < frames->totframe; i++) { + for(j = 0; j < 4; j++) { + copy_v3_v3(mvert[(*totvert)].co, frames->co[i][j]); + (*totvert)++; + } + + if(i > 0) { + connect_frames(mface, totface, + frames->outbase + 4*(i-1), + frames->outbase + 4*i); + } + } + + if(frames->flag & START_CAP) { + b = frame_base(frames, START_CAP); + add_face(mface, totface, b, b+1, b+2, b+3); + } + if(frames->flag & END_CAP) { + b = frame_base(frames, END_CAP); + add_face(mface, totface, b+3, b+2, b+1, b+0); + } +} + +static void bsphere_build_skin(BSphereNode *parent, ListBase *base, + GHash *frames, MVert *mvert, + MFace *mface, int *totvert, int *totface) +{ + BSphereNode *n, *child; + Frames *node_frames, *child_frames, *parent_frames; + int *hull_frames, totchild, i; + + for(n = base->first; n; n = n->next) { + if((node_frames = BLI_ghash_lookup(frames, n))) + output_frames(node_frames, mvert, mface, totvert, totface); + + bsphere_build_skin(n, &n->children, frames, mvert, mface, totvert, totface); + + child = n->children.first; + if(child && !child->next) { + child_frames = BLI_ghash_lookup(frames, child); + if(child_frames) { + connect_frames(mface, totface, + frame_base(node_frames, OUT_FRAME), + frame_base(child_frames, IN_FRAME)); + } + } + else if(child && child->next) { + totchild = BLI_countlist(&n->children); + hull_frames = MEM_callocN(sizeof(int) * (1+totchild), + "bsphere_build_skin.hull_frames"); + i = 0; + for(child = n->children.first; child; child = child->next) { + child_frames = BLI_ghash_lookup(frames, child); + assert(child_frames); + hull_frames[i++] = frame_base(child_frames, IN_FRAME); + } + parent_frames = BLI_ghash_lookup(frames, parent); + if(parent_frames) + hull_frames[i] = frame_base(parent_frames, OUT_FRAME); + else + totchild--; + build_hull(mface, totface, mvert, hull_frames, totchild+1); + MEM_freeN(hull_frames); + } + } +} + +static DerivedMesh *bsphere_base_skin(BSphere *bs) +{ + DerivedMesh *dm; + GHash *ghash; + MVert *mvert; + MFace *mface; + int totvert, totface = 0; + + /* no nodes, nothing to do */ + if(!bs->rootbase.first) + return NULL; + + /* could probably do all this in one fell [recursive] swoop + using some tricksies and clevers, but multiple passes is + easier :) */ + ghash = bsphere_frames(bs, &totvert); + + totface = totvert * 1.5; + /* XXX: sizes OK? */ + dm = CDDM_new(totvert, 0, totface); + + mvert = CDDM_get_verts(dm); + mface = CDDM_get_faces(dm); + + totvert = totface = 0; + bsphere_build_skin(NULL, &bs->rootbase, ghash, mvert, mface, &totvert, &totface); + BLI_ghash_free(ghash, NULL, (void*)MEM_freeN); + + CDDM_lower_num_verts(dm, totvert); + CDDM_lower_num_faces(dm, totface); + + CDDM_calc_edges(dm); + CDDM_calc_normals(dm); + + return dm; +} + +/* generate random points (just for testing) */ +DerivedMesh *bsphere_random_points(BSphere *UNUSED(bs)) +{ + DerivedMesh *dm; + MVert *mvert; + const int totvert = 1;//50000; + int i; + + dm = CDDM_new(totvert, 0, 0); + + mvert = CDDM_get_verts(dm); + + srand(1); + for(i = 0; i < totvert; i++) { + mvert[i].co[0] = rand() / (float)RAND_MAX - 0.5; + mvert[i].co[1] = rand() / (float)RAND_MAX - 0.5; + mvert[i].co[2] = rand() / (float)RAND_MAX - 0.5; + } + + return dm; +} + +DerivedMesh *bsphere_test_surface(BSphere *bs, DerivedMesh *input) +{ + DerivedMesh *dm; + MVert *mvert; + + if(!input) + return NULL; + + dm = CDDM_copy(input); + mvert = CDDM_get_verts(dm); + bsphere_evolve(mvert, input->getNumVerts(input), &bs->rootbase, + bs->skin_threshold, bs->evolve, 2); + + return dm; +} + +DerivedMesh *bsphere_test_gradient(BSphere *bs, DerivedMesh *input) +{ + DerivedMesh *dm; + MVert *mvert; + MEdge *medge; + int totvert; + int i; + + if(!input) + return NULL; + + totvert = input->getNumVerts(input); + dm = CDDM_new(totvert*2, totvert, 0); + + mvert = CDDM_get_verts(dm); + medge = CDDM_get_edges(dm); + + memcpy(mvert, CDDM_get_verts(input), sizeof(MVert) * totvert); + + for(i = 0; i < totvert; i++) { + const float *b = mvert[i].co; + float *g = mvert[totvert+i].co; + float K[2] = {0, 0}; + + zero_v3(g); + calc_gradient(g, b, &bs->rootbase); + normalize_v3(g); + + mul_v3_fl(g, -calc_F(b, K, bs->skin_threshold, &bs->rootbase)); + add_v3_v3(g, b); + + medge[i].v1 = i; + medge[i].v2 = totvert+i; + } + + return dm; +} + +DerivedMesh *bsphere_get_skin_dm(BSphere *bs) +{ + DerivedMesh *dm, *subdm; + + dm = bsphere_base_skin(bs); + + /* subdivide once */ + if(dm && bs->subdiv_level > 0) { + SubsurfModifierData smd; + + memset(&smd, 0, sizeof(smd)); + smd.subdivType = ME_CC_SUBSURF; + smd.levels = bs->subdiv_level; + subdm = subsurf_make_derived_from_derived(dm, &smd, 0, 0, 0, 0); + dm->release(dm); + /* for convenience, convert back to cddm (could use ccgdm + later for better performance though? (TODO)) */ + dm = CDDM_copy(subdm); + subdm->release(subdm); + + bsphere_evolve(CDDM_get_verts(dm), dm->getNumVerts(dm), &bs->rootbase, + bs->skin_threshold, bs->evolve, bs->subdiv_level); + } + + return dm; +} +#endif diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 1f18c78d070..b9d6badfbe9 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -811,7 +811,7 @@ static void layerDefault_skin(void *data, int count) int i; for(i = 0; i < count; i++) { - n[i].radius = 1; + n[i].radius = 0.25; } } -- cgit v1.2.3 From 6c3bb8b9030a86388d42a752b0cba2826630c4c6 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 31 Jul 2011 02:03:48 +0000 Subject: EditMesh-based skin node drawing --- source/blender/blenkernel/CMakeLists.txt | 1 - source/blender/blenkernel/intern/bsphere.c | 1178 ------------------------ source/blender/blenkernel/intern/customdata.c | 21 +- source/blender/makesdna/DNA_customdata_types.h | 4 +- source/blender/makesdna/DNA_meshdata_types.h | 5 - source/blender/makesdna/DNA_modifier_types.h | 14 - source/blender/makesrna/intern/rna_modifier.c | 15 - source/blender/modifiers/CMakeLists.txt | 1 - source/blender/modifiers/MOD_modifiertypes.h | 1 - source/blender/modifiers/intern/MOD_skin.c | 88 -- source/blender/modifiers/intern/MOD_util.c | 1 - 11 files changed, 6 insertions(+), 1323 deletions(-) delete mode 100644 source/blender/blenkernel/intern/bsphere.c delete mode 100644 source/blender/modifiers/intern/MOD_skin.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index e549a205325..defcef58463 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -81,7 +81,6 @@ set(SRC intern/boids.c intern/booleanops_mesh.c intern/brush.c - intern/bsphere.c intern/bullet.c intern/bvhutils.c intern/cdderivedmesh.c diff --git a/source/blender/blenkernel/intern/bsphere.c b/source/blender/blenkernel/intern/bsphere.c deleted file mode 100644 index d8a75f62172..00000000000 --- a/source/blender/blenkernel/intern/bsphere.c +++ /dev/null @@ -1,1178 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2011 by Nicholas Bishop - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "MEM_guardedalloc.h" - -#include "DNA_mesh_types.h" -#include "DNA_meshdata_types.h" -#include "DNA_modifier_types.h" - -#include "BLI_utildefines.h" -#include "BLI_heap.h" -#include "BLI_ghash.h" -#include "BLI_listbase.h" -#include "BLI_math.h" - -#include "BKE_cdderivedmesh.h" -#include "BKE_DerivedMesh.h" -#include "BKE_global.h" -#include "BKE_library.h" -#include "BKE_main.h" -#include "BKE_subsurf.h" - -#include - -typedef struct Tri { - struct Tri *next, *prev; - unsigned int v[3]; - float no[3]; - float area; - int marked; -} Tri; - -typedef struct Edge { - struct Edge *next, *prev; - unsigned int v[2]; - Tri *tri[2]; -} Edge; - -/* note: a `frame' is four vertices (contiguous within the MVert - array), stored simply as the index of the first vertex */ - -static void create_frame(float frame[4][3], const float co[3], float radius, - const float mat[3][3], float x_offset) -{ - float rx[3], ry[3], rz[3]; - int i; - - mul_v3_v3fl(ry, mat[1], radius); - mul_v3_v3fl(rz, mat[2], radius); - - add_v3_v3v3(frame[3], co, ry); - add_v3_v3v3(frame[3], frame[3], rz); - - sub_v3_v3v3(frame[2], co, ry); - add_v3_v3v3(frame[2], frame[2], rz); - - sub_v3_v3v3(frame[1], co, ry); - sub_v3_v3v3(frame[1], frame[1], rz); - - add_v3_v3v3(frame[0], co, ry); - sub_v3_v3v3(frame[0], frame[0], rz); - - mul_v3_v3fl(rx, mat[0], x_offset); - for(i = 0; i < 4; i++) - add_v3_v3v3(frame[i], frame[i], rx); -} - -static void create_mid_frame(float frame[4][3], - const float co1[3], const float co2[3], - const SkinNode *n1, const SkinNode *n2, - const float mat[3][3]) -{ - create_frame(frame, co1, (n1->radius + n2->radius) / 2, - mat, len_v3v3(co1, co2) / 2); -} - -static void add_face(MFace *mface, int *totface, - int v1, int v2, int v3, int v4) -{ - MFace *f; - - f = &mface[*totface]; - f->v1 = v1; - f->v2 = v2; - f->v3 = v3; - f->v4 = v4 == -1 ? 0 : v4; - if(!v4) { - f->v1 = v3; - f->v2 = v4; - f->v3 = v1; - f->v4 = v2; - } - (*totface)++; -} - -static void connect_frames(MFace *mface, int *totface, int frame1, int frame2) -{ - int i; - - for(i = 0; i < 4; i++) { - add_face(mface, totface, - frame2 + i, - frame2 + (i+1) % 4, - frame1 + (i+1) % 4, - frame1 + i); - } -} - -static Tri *add_triangle(ListBase *tris, MVert *mvert, int v1, int v2, int v3) -{ - Tri *t; - - t = MEM_callocN(sizeof(Tri), "add_triangle.tri"); - t->v[0] = v1; - t->v[1] = v2; - t->v[2] = v3; - BLI_addtail(tris, t); - - normal_tri_v3(t->no, mvert[t->v[0]].co, mvert[t->v[1]].co, mvert[t->v[2]].co); - t->area = area_tri_v3(mvert[t->v[0]].co, mvert[t->v[1]].co, mvert[t->v[2]].co); - - return t; -} - -static int point_tri_side(const Tri *t, MVert *mvert, int v) -{ - float p[3], d; - sub_v3_v3v3(p, mvert[v].co, mvert[t->v[0]].co); - d = dot_v3v3(t->no, p); - if(d < 0) return -1; - else if(d > 0) return 1; - else return 0; -} - -static int mark_v_outside_tris(ListBase *tris, MVert *mvert, int v) -{ - Tri *t; - int outside = 0; - - /* probably there's a much better way to do this */ - for(t = tris->first; t; t = t->next) { - if((t->marked = point_tri_side(t, mvert, v) > 0)) - outside = 1; - } - return outside; -} - -static int edge_match(int e1_0, int e1_1, const unsigned int e2[2]) -{ - /* XXX: maybe isn't necesseary to check both directions? */ - return (e1_0 == e2[0] && e1_1 == e2[1]) || - (e1_0 == e2[1] && e1_1 == e2[0]); -} - -/* returns true if the edge (e1, e2) is already in edges; that edge is - deleted here as well. if not found just returns 0 */ -static int check_for_dup(ListBase *edges, unsigned int e1, unsigned int e2) -{ - Edge *e, *next; - - for(e = edges->first; e; e = next) { - next = e->next; - - if(edge_match(e1, e2, e->v)) { - /* remove the interior edge */ - BLI_freelinkN(edges, e); - return 1; - } - } - - return 0; -} - -static void expand_boundary_edges(ListBase *edges, Tri *t) -{ - Edge *new; - int i; - - /* insert each triangle edge into the boundary list; if any of - its edges are already in there, remove the edge entirely */ - for(i = 0; i < 3; i++) { - if(!check_for_dup(edges, t->v[i], t->v[(i+1)%3])) { - new = MEM_callocN(sizeof(Edge), "Edge"); - new->v[0] = t->v[i]; - new->v[1] = t->v[(i+1)%3]; - BLI_addtail(edges, new); - } - } -} - -static int tri_matches_frame(const Tri *t, int frame) -{ - int i, j, match = 0; - for(i = 0; i < 3; i++) { - for(j = 0; j < 4; j++) { - if(t->v[i] == frame + j) { - match++; - if(match >= 3) - return 1; - } - } - } - return 0; -} - -static void quad_from_tris(const Edge *e, int ndx[4]) -{ - int i, j, opp = -1; - - /* find what the second tri has that the first doesn't */ - for(i = 0; i < 3; i++) { - if(e->tri[1]->v[i] != e->tri[0]->v[0] && - e->tri[1]->v[i] != e->tri[0]->v[1] && - e->tri[1]->v[i] != e->tri[0]->v[2]) { - opp = e->tri[1]->v[i]; - break; - } - } - assert(opp != -1); - - for(i = 0, j = 0; i < 3; i++, j++) { - ndx[j] = e->tri[0]->v[i]; - /* when the triangle edge cuts across our quad-to-be, - throw in the second triangle's vertex */ - if((e->tri[0]->v[i] == e->v[0] || e->tri[0]->v[i] == e->v[1]) && - (e->tri[0]->v[(i+1)%3] == e->v[0] || e->tri[0]->v[(i+1)%3] == e->v[1])) { - j++; - ndx[j] = opp; - } - } -} - -static void add_quad_from_tris(MFace *mface, int *totface, const Edge *e) -{ - int ndx[4]; - - quad_from_tris(e, ndx); - - add_face(mface, totface, ndx[0], ndx[1], ndx[2], ndx[3]); -} - -static GHash *calc_edges(ListBase *tris) -{ - GHash *adj; - ListBase *edges; - Edge *e; - Tri *t; - int i, e1, e2; - - /* XXX: vertex range might be a little funky? so using a - hash here */ - adj = BLI_ghash_new(BLI_ghashutil_inthash, - BLI_ghashutil_intcmp, - "calc_edges adj"); - - for(t = tris->first; t; t = t->next) { - for(i = 0; i < 3; i++) { - e1 = t->v[i]; - e2 = t->v[(i+1)%3]; - assert(e1 != e2); - if(e1 > e2) - SWAP(int, e1, e2); - - edges = BLI_ghash_lookup(adj, SET_INT_IN_POINTER(e1)); - if(!edges) { - edges = MEM_callocN(sizeof(ListBase), - "calc_edges ListBase"); - BLI_ghash_insert(adj, SET_INT_IN_POINTER(e1), edges); - } - - /* find the edge in the adjacency list */ - for(e = edges->first; e; e = e->next) { - assert(e->v[0] == e1); - if(e->v[1] == e2) - break; - } - - /* if not found, create the edge */ - if(!e) { - e = MEM_callocN(sizeof(Edge), "calc_edges Edge"); - e->v[0] = e1; - e->v[1] = e2; - BLI_addtail(edges, e); - } - - /* should never be more than two faces - attached to an edge here */ - assert(!e->tri[0] || !e->tri[1]); - - if(!e->tri[0]) - e->tri[0] = t; - else if(!e->tri[1]) - e->tri[1] = t; - } - } - - return adj; -} - -static int is_quad_symmetric(const MVert *mvert, const Edge *e) -{ - int ndx[4]; - float a[3]; - - quad_from_tris(e, ndx); - - copy_v3_v3(a, mvert[ndx[0]].co); - a[0] = -a[0]; - - if(len_v3v3(a, mvert[ndx[1]].co) < FLT_EPSILON) { - copy_v3_v3(a, mvert[ndx[2]].co); - a[0] = -a[0]; - if(len_v3v3(a, mvert[ndx[3]].co) < FLT_EPSILON) - return 1; - } - else if(len_v3v3(a, mvert[ndx[3]].co) < FLT_EPSILON) { - copy_v3_v3(a, mvert[ndx[2]].co); - a[0] = -a[0]; - if(len_v3v3(a, mvert[ndx[1]].co) < FLT_EPSILON) - return 1; - } - - return 0; -} - -static void output_hull(const MVert *mvert, MFace *mface, int *totface, ListBase *tris) -{ - Heap *heap; - GHash *adj; - GHashIterator *iter; - ListBase *edges; - Edge *e; - Tri *t; - float score; - - heap = BLI_heap_new(); - adj = calc_edges(tris); - - /* unmark all triangles */ - for(t = tris->first; t; t = t->next) - t->marked = 0; - - /* build heap */ - iter = BLI_ghashIterator_new(adj); - while(!BLI_ghashIterator_isDone(iter)) { - edges = BLI_ghashIterator_getValue(iter); - for(e = edges->first; e; e = e->next) { - /* only care if the edge is used by more than - one triangle */ - if(e->tri[0] && e->tri[1]) { - score = (e->tri[0]->area + e->tri[1]->area) * - dot_v3v3(e->tri[0]->no, e->tri[1]->no); - - /* increase score if the triangles - form a symmetric quad */ - if(is_quad_symmetric(mvert, e)) - score *= 10; - - BLI_heap_insert(heap, -score, e); - } - } - - BLI_ghashIterator_step(iter); - } - BLI_ghashIterator_free(iter); - - while(!BLI_heap_empty(heap)) { - e = BLI_heap_popmin(heap); - - /* if both triangles still free, outupt as a quad */ - if(!e->tri[0]->marked && !e->tri[1]->marked) { - add_quad_from_tris(mface, totface, e); - e->tri[0]->marked = 1; - e->tri[1]->marked = 1; - } - } - - /* free edge list */ - iter = BLI_ghashIterator_new(adj); - while(!BLI_ghashIterator_isDone(iter)) { - edges = BLI_ghashIterator_getValue(iter); - BLI_freelistN(edges); - MEM_freeN(edges); - BLI_ghashIterator_step(iter); - } - BLI_ghashIterator_free(iter); - BLI_ghash_free(adj, NULL, NULL); - BLI_heap_free(heap, NULL); - - /* write out any remaining triangles */ - for(t = tris->first; t; t = t->next) { - if(!t->marked) - add_face(mface, totface, t->v[0], t->v[1], t->v[2], -1); - } -} - -/* for vertex `v', find which triangles must be deleted to extend the - hull; find the boundary edges of that hole so that it can be filled - with connections to the new vertex, and update the `tri' list to - delete the marked triangles */ -static void add_point(ListBase *tris, MVert *mvert, int v) -{ - ListBase edges = {NULL, NULL}; - Tri *t, *next; - Edge *e; - - for(t = tris->first; t; t = next) { - next = t->next; - - /* check if triangle is `visible' to v */ - if(t->marked) { - expand_boundary_edges(&edges, t); - /* remove the triangle */ - BLI_freelinkN(tris, t); - } - } - - /* fill hole boundary with triangles to new point */ - for(e = edges.first; e; e = e->next) - add_triangle(tris, mvert, e->v[0], e->v[1], v); - BLI_freelistN(&edges); -} - -static void build_hull(MFace *mface, int *totface, - MVert *mvert, int *frames, int totframe) -{ - ListBase tris = {NULL, NULL}; - Tri *t, *next; - int i, j; - - /* use first frame to make initial degenerate pyramid */ - add_triangle(&tris, mvert, frames[0], frames[0] + 1, frames[0] + 2); - add_triangle(&tris, mvert, frames[0] + 1, frames[0], frames[0] + 3); - add_triangle(&tris, mvert, frames[0] + 2, frames[0] + 1, frames[0] + 3); - add_triangle(&tris, mvert, frames[0], frames[0] + 2, frames[0] + 3); - - for(i = 1; i < totframe; i++) { - for(j = 0; j < 4; j++) { - int v = frames[i] + j; - - /* ignore point already inside hull */ - if(mark_v_outside_tris(&tris, mvert, v)) { - /* expand hull and delete interior triangles */ - add_point(&tris, mvert, v); - } - } - } - - /* remove triangles that would fill the original frames */ - for(t = tris.first; t; t = next) { - next = t->next; - - for(i = 0; i < totframe; i++) { - if(tri_matches_frame(t, frames[i])) { - BLI_freelinkN(&tris, t); - break; - } - } - } - - output_hull(mvert, mface, totface, &tris); - - BLI_freelistN(&tris); -} - -/* test: build hull on origdm */ -#if 0 -static DerivedMesh *test_hull(DerivedMesh *origdm) -{ - DerivedMesh *dm; - MVert *mvert, *origmvert; - MFace *mface; - int *frames; - int totvert = 0, totface = 0, totframe, i; - - /* TODO */ - totface = 2000; - totvert = origdm->getNumVerts(origdm); - dm = CDDM_new(totvert, 0, totface); - - mvert = CDDM_get_verts(dm); - mface = CDDM_get_faces(dm); - - origmvert = CDDM_get_verts(origdm); - for(i = 0; i < totvert; i++) - mvert[i] = origmvert[i]; - - assert(totvert % 4 == 0); - totframe = totvert / 4; - - frames = MEM_callocN(sizeof(int) * totframe, "frames"); - for(i = 0; i < totframe; i++) - frames[i] = i*4; - - totface = 0; - build_hull(mface, &totface, mvert, frames, totframe); - - CDDM_calc_edges(dm); - //CDDM_calc_normals(dm); - - MEM_freeN(frames); - - return dm; -} -#endif - -/* TODO */ -static void calc_edge_mat(float mat[3][3], const float a[3], const float b[3]) -{ - float Z[3] = {0, 0, 1}; - float dot; - - /* x = edge direction */ - sub_v3_v3v3(mat[0], b, a); - normalize_v3(mat[0]); - - dot = dot_v3v3(mat[0], Z); - if(dot > -1 + FLT_EPSILON && dot < 1 - FLT_EPSILON) { - /* y = Z cross x */ - cross_v3_v3v3(mat[1], Z, mat[0]); - normalize_v3(mat[1]); - - /* z = x cross y */ - cross_v3_v3v3(mat[2], mat[0], mat[1]); - normalize_v3(mat[2]); - } - else { - mat[1][0] = 1; - mat[1][1] = 0; - mat[1][2] = 0; - mat[2][0] = 0; - mat[2][1] = 1; - mat[2][2] = 0; - } -} - -/* BMesh paper */ -#if 0 -static float calc_R_sub_i_squared(const BSphereNode *n) -{ - const float alpha = 1.5; - //const float alpha = 1; - const float R_sub_i = n->size[0] * alpha; - return R_sub_i * R_sub_i; -} - -/* equation (2) */ -static float calc_r_squared(const float v[3], const BSphereNode *n) -{ - return len_squared_v3v3(v, n->co); -} - -/* equation (1) */ -static float calc_f_sub_i(const float v[3], const BSphereNode *n) -{ - float r_squared; - float R_sub_i_squared; - - r_squared = calc_r_squared(v, n); - R_sub_i_squared = calc_R_sub_i_squared(n); - - if(r_squared <= R_sub_i_squared) - return powf(1.0f - (r_squared / R_sub_i_squared), 2); - else - return 0; -} - -/* equation (3) */ -static float calc_I(const float x[3], float T, const ListBase *base) -{ - BSphereNode *n; - float a = -T; - - for(n = base->first; n; n = n->next) { - a += calc_I(x, 0, &n->children); - a += calc_f_sub_i(x, n); - } - - //printf("calc_I: %f, %f\n", -T, a); - - return a; -} - -/* kinda my own guess here */ -static void calc_gradient(float g[3], const float x[3], const ListBase *base) -{ - BSphereNode *n; - - for(n = base->first; n; n = n->next) { - float R_sub_i_squared = calc_R_sub_i_squared(n); - float dist = len_v3v3(x, n->co); - float f = calc_f_sub_i(x, n); - float d = 1.0f / R_sub_i_squared; - float tmp[3]; - - /* XXX: other possibilities... */ - if(f > 0) { - sub_v3_v3v3(tmp, x, n->co); - mul_v3_fl(tmp, -4*d * (1 - d * dist)); - - /* not sure if I'm doing this right; intent is - to flip direction when x is `beneath' the - level set */ - if(len_v3v3(x, n->co) > n->size[0]) - negate_v3(tmp); - - add_v3_v3(g, tmp); - } - - calc_gradient(g, x, &n->children); - } -} - -/* equation (5) */ -static float calc_F(const float x[3], const float K[2], float T, const ListBase *base) -{ - float f_of_K; - float I_target; - - /* TODO */ - f_of_K = 1.0f / (1 + fabs(K[0]) + fabs(K[1])); - //f_of_K = 1; - - /* TODO */ - I_target = 0; - - return (calc_I(x, T, base) - I_target) /*TODO: * f_of_K*/; -} - -static float smallest_radius(const ListBase *base) -{ - BSphereNode *n; - float s = FLT_MAX, t; - - for(n = base->first; n; n = n->next) { - if(n->size[0] < s) - s = n->size[0]; - if((t = smallest_radius(&n->children)) < s) - s = t; - } - - return s; -} - -/* equation (7) */ -static float calc_delta_t(float F_max, float k, const ListBase *base, int print) -{ - float min_r_sub_i; - float step; - - min_r_sub_i = smallest_radius(base); - step = min_r_sub_i / powf(2, k); - - if(print) { - printf("min_r: %f, 2^k=%f, step=%f\n", min_r_sub_i, powf(2, k), step); - } - - return step / F_max; -} - -/* equation (6) */ -static float evolve_x(float x[3], const float K[2], float T, - int k, const ListBase *base, int i, float F_max) -{ - float tmp[3], no[3]; - float F, dt; - - F = calc_F(x, K, T, base); - - if(F < FLT_EPSILON) { - //printf("stability reached for ndx=%d\n", i); - return 0; - } - - /* TODO ;-) */ - if(F > F_max) - F_max = F; - - dt = calc_delta_t(F_max, k, base, 0); - - dt = F / 2; - - if(i == 0) - ;//printf("F=%.3f, dt=%.3f\n", F, calc_delta_t(F_max, k, base, 1)); - - zero_v3(no); - calc_gradient(no, x, base); - normalize_v3(no); - negate_v3(no); - - mul_v3_v3fl(tmp, no, F * dt); - add_v3_v3(x, tmp); - - return F_max; -} - -static void bsphere_evolve(MVert *mvert, int totvert, const ListBase *base, - float T, int steps, float subdiv_level) -{ - int i, s; - - for(i = 0; i < totvert; i++) { - float F_max = 0; - /* TODO: for now just doing a constant number of steps */ - for(s = 0; s < steps; s++) { - /* TODO */ - float K[2] = {0, 0}; - - F_max = evolve_x(mvert[i].co, K, T, subdiv_level, base, i, F_max); - } - } -} -#endif - -typedef enum { - START_CAP = 1, - END_CAP = 2, - NODE_BISECT = 4, - CHILD_EDGE_BISECT = 8, - - IN_FRAME = 16, - OUT_FRAME = 32, -} FrameFlag; - -typedef struct { - int totframe; - int outbase; - FrameFlag flag; - float co[0][4][3]; -} Frames; - -static Frames *frames_create(FrameFlag flag) -{ - Frames *frames; - int totframe; - totframe = (!!(flag & START_CAP) + !!(flag & END_CAP) + - !!(flag & NODE_BISECT) + !!(flag & CHILD_EDGE_BISECT)); - assert(totframe); - frames = MEM_callocN(sizeof(Frames) + sizeof(float)*totframe*4*3, - "frames_create.frames"); - frames->totframe = totframe; - frames->flag = flag; - assert((flag & (END_CAP|CHILD_EDGE_BISECT)) != (END_CAP|CHILD_EDGE_BISECT)); - return frames; -} - -static int frame_offset(Frames *frames, FrameFlag flag) -{ - int n = 0; - - assert(flag == IN_FRAME || flag == OUT_FRAME || - !(flag & (IN_FRAME|OUT_FRAME))); - - if(flag == IN_FRAME) - return 0; - else if(flag == OUT_FRAME) - return frames->totframe-1; - - assert((flag & frames->flag) == flag); - - if(flag == START_CAP) return n; - if(frames->flag & START_CAP) n++; - - if(flag == NODE_BISECT) return n; - if(frames->flag & NODE_BISECT) n++; - - if(flag == END_CAP) return n; - if(frames->flag & END_CAP) n++; - - if(flag == CHILD_EDGE_BISECT) return n; - if(frames->flag & CHILD_EDGE_BISECT) n++; - - assert(!"bad frame offset flag"); -} - -static int frame_base(Frames *frames, FrameFlag flag) -{ - return frames->outbase + 4*frame_offset(frames, flag); -} - -static void *frame_co(Frames *frames, FrameFlag flag) -{ - return frames->co[frame_offset(frames, flag)]; -} - -static int frames_totvert(Frames *frames) -{ - return frames->totframe*4; -} - -#if 0 -static int bsphere_build_frames(BSphereNode *n, GHash *ghash, - float (*parent_mat)[3], FrameFlag flag); - -/* builds the `cap' of polygons for the end of a BSphere chain */ -static int bsphere_end_node_frames(BSphereNode *n, - GHash *ghash, - float parent_mat[3][3], - FrameFlag flag) -{ - Frames *frames; - float rad; - - assert(flag == 0 || flag == START_CAP); - frames = frames_create(NODE_BISECT|END_CAP|flag, n, ghash); - - /* TODO */ - rad = n->size[0]; - - if(flag & START_CAP) - create_frame(frame_co(frames, START_CAP), n, parent_mat, -rad, rad); - - /* frame to bisect the node */ - create_frame(frame_co(frames, NODE_BISECT), n, parent_mat, 0, rad); - - /* frame to cap end node */ - create_frame(frame_co(frames, END_CAP), n, parent_mat, rad, rad); - - return frames_totvert(frames); -} - -static int bsphere_connection_node_frames(BSphereNode *n, - GHash *ghash, - float parent_mat[3][3], - FrameFlag flag) -{ - Frames *frames; - BSphereNode *child; - float childmat[3][3], nodemat[3][3], axis[3], angle, rad, child_rad; - int totvert; - - assert(flag == 0 || flag == START_CAP); - - child = n->children.first; - - /* if child is not a branch node, bisect the child edge */ - if(BLI_countlist(&child->children) <= 1) - flag |= CHILD_EDGE_BISECT; - - frames = frames_create(NODE_BISECT|flag, n, ghash); - totvert = frames_totvert(frames); - - /* TODO */ - rad = n->size[0]; - child_rad = child->size[0]; - - /* build matrix to give to child */ - sub_v3_v3v3(childmat[0], child->co, n->co); - normalize_v3(childmat[0]); - angle = angle_normalized_v3v3(parent_mat[0], childmat[0]); - cross_v3_v3v3(axis, parent_mat[0], childmat[0]); - normalize_v3(axis); - rotate_normalized_v3_v3v3fl(childmat[1], parent_mat[1], axis, angle); - rotate_normalized_v3_v3v3fl(childmat[2], parent_mat[2], axis, angle); - - /* build child */ - totvert += bsphere_build_frames(child, ghash, childmat, 0); - - /* frame that bisects the node */ - angle /= 2; - copy_v3_v3(nodemat[0], parent_mat[0]); - rotate_normalized_v3_v3v3fl(nodemat[1], parent_mat[1], axis, angle); - rotate_normalized_v3_v3v3fl(nodemat[2], parent_mat[2], axis, angle); - create_frame(frame_co(frames, NODE_BISECT), n, nodemat, 0, rad); - - if(flag & START_CAP) - create_frame(frame_co(frames, START_CAP), n, nodemat, -rad, rad); - - if(flag & CHILD_EDGE_BISECT) - create_mid_frame(frame_co(frames, CHILD_EDGE_BISECT), n, child, childmat); - - return totvert; -} - -static int bsphere_branch_node_frames(BSphereNode *n, GHash *ghash) -{ - BSphereNode *child; - int totvert = 0; - float rad; - - rad = n->size[0]; - - /* build children */ - for(child = n->children.first; child; child = child->next) { - float childmat[3][3]; - - calc_edge_mat(childmat, n->co, child->co); - - totvert += bsphere_build_frames(child, ghash, childmat, 0); - } - - /* TODO: for now, builds no frames of its own */ - - return totvert; -} - -static int bsphere_build_frames(BSphereNode *n, GHash *ghash, - float parent_mat[3][3], FrameFlag flag) -{ - BSphereNode *child; - - child = n->children.first; - - if(!child) - return bsphere_end_node_frames(n, ghash, parent_mat, flag); - else if(!child->next) - return bsphere_connection_node_frames(n, ghash, parent_mat, flag); - else - return bsphere_branch_node_frames(n, ghash); -} - -static GHash *bsphere_frames(BSphere *bs, int *totvert) -{ - GHash *ghash; - BSphereNode *n, *child; - - ghash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, - "bsphere_frames.ghash"); - (*totvert) = 0; - - for(n = bs->rootbase.first; n; n = n->next) { - float mat[3][3]; - - child = n->children.first; - if(!child || (child && child->next)) { - set_v3(mat[0], 0, 0, 1); - set_v3(mat[1], 1, 0, 0); - set_v3(mat[2], 0, 1, 0); - } - else if(!child->next) { - calc_edge_mat(mat, n->co, child->co); - } - - (*totvert) += bsphere_build_frames(n, ghash, mat, START_CAP); - } - - return ghash; -} - -static void output_frames(Frames *frames, MVert *mvert, MFace *mface, - int *totvert, int *totface) -{ - int b, i, j; - - frames->outbase = (*totvert); - for(i = 0; i < frames->totframe; i++) { - for(j = 0; j < 4; j++) { - copy_v3_v3(mvert[(*totvert)].co, frames->co[i][j]); - (*totvert)++; - } - - if(i > 0) { - connect_frames(mface, totface, - frames->outbase + 4*(i-1), - frames->outbase + 4*i); - } - } - - if(frames->flag & START_CAP) { - b = frame_base(frames, START_CAP); - add_face(mface, totface, b, b+1, b+2, b+3); - } - if(frames->flag & END_CAP) { - b = frame_base(frames, END_CAP); - add_face(mface, totface, b+3, b+2, b+1, b+0); - } -} - -static void bsphere_build_skin(BSphereNode *parent, ListBase *base, - GHash *frames, MVert *mvert, - MFace *mface, int *totvert, int *totface) -{ - BSphereNode *n, *child; - Frames *node_frames, *child_frames, *parent_frames; - int *hull_frames, totchild, i; - - for(n = base->first; n; n = n->next) { - if((node_frames = BLI_ghash_lookup(frames, n))) - output_frames(node_frames, mvert, mface, totvert, totface); - - bsphere_build_skin(n, &n->children, frames, mvert, mface, totvert, totface); - - child = n->children.first; - if(child && !child->next) { - child_frames = BLI_ghash_lookup(frames, child); - if(child_frames) { - connect_frames(mface, totface, - frame_base(node_frames, OUT_FRAME), - frame_base(child_frames, IN_FRAME)); - } - } - else if(child && child->next) { - totchild = BLI_countlist(&n->children); - hull_frames = MEM_callocN(sizeof(int) * (1+totchild), - "bsphere_build_skin.hull_frames"); - i = 0; - for(child = n->children.first; child; child = child->next) { - child_frames = BLI_ghash_lookup(frames, child); - assert(child_frames); - hull_frames[i++] = frame_base(child_frames, IN_FRAME); - } - parent_frames = BLI_ghash_lookup(frames, parent); - if(parent_frames) - hull_frames[i] = frame_base(parent_frames, OUT_FRAME); - else - totchild--; - build_hull(mface, totface, mvert, hull_frames, totchild+1); - MEM_freeN(hull_frames); - } - } -} - -static DerivedMesh *bsphere_base_skin(BSphere *bs) -{ - DerivedMesh *dm; - GHash *ghash; - MVert *mvert; - MFace *mface; - int totvert, totface = 0; - - /* no nodes, nothing to do */ - if(!bs->rootbase.first) - return NULL; - - /* could probably do all this in one fell [recursive] swoop - using some tricksies and clevers, but multiple passes is - easier :) */ - ghash = bsphere_frames(bs, &totvert); - - totface = totvert * 1.5; - /* XXX: sizes OK? */ - dm = CDDM_new(totvert, 0, totface); - - mvert = CDDM_get_verts(dm); - mface = CDDM_get_faces(dm); - - totvert = totface = 0; - bsphere_build_skin(NULL, &bs->rootbase, ghash, mvert, mface, &totvert, &totface); - BLI_ghash_free(ghash, NULL, (void*)MEM_freeN); - - CDDM_lower_num_verts(dm, totvert); - CDDM_lower_num_faces(dm, totface); - - CDDM_calc_edges(dm); - CDDM_calc_normals(dm); - - return dm; -} - -/* generate random points (just for testing) */ -DerivedMesh *bsphere_random_points(BSphere *UNUSED(bs)) -{ - DerivedMesh *dm; - MVert *mvert; - const int totvert = 1;//50000; - int i; - - dm = CDDM_new(totvert, 0, 0); - - mvert = CDDM_get_verts(dm); - - srand(1); - for(i = 0; i < totvert; i++) { - mvert[i].co[0] = rand() / (float)RAND_MAX - 0.5; - mvert[i].co[1] = rand() / (float)RAND_MAX - 0.5; - mvert[i].co[2] = rand() / (float)RAND_MAX - 0.5; - } - - return dm; -} - -DerivedMesh *bsphere_test_surface(BSphere *bs, DerivedMesh *input) -{ - DerivedMesh *dm; - MVert *mvert; - - if(!input) - return NULL; - - dm = CDDM_copy(input); - mvert = CDDM_get_verts(dm); - bsphere_evolve(mvert, input->getNumVerts(input), &bs->rootbase, - bs->skin_threshold, bs->evolve, 2); - - return dm; -} - -DerivedMesh *bsphere_test_gradient(BSphere *bs, DerivedMesh *input) -{ - DerivedMesh *dm; - MVert *mvert; - MEdge *medge; - int totvert; - int i; - - if(!input) - return NULL; - - totvert = input->getNumVerts(input); - dm = CDDM_new(totvert*2, totvert, 0); - - mvert = CDDM_get_verts(dm); - medge = CDDM_get_edges(dm); - - memcpy(mvert, CDDM_get_verts(input), sizeof(MVert) * totvert); - - for(i = 0; i < totvert; i++) { - const float *b = mvert[i].co; - float *g = mvert[totvert+i].co; - float K[2] = {0, 0}; - - zero_v3(g); - calc_gradient(g, b, &bs->rootbase); - normalize_v3(g); - - mul_v3_fl(g, -calc_F(b, K, bs->skin_threshold, &bs->rootbase)); - add_v3_v3(g, b); - - medge[i].v1 = i; - medge[i].v2 = totvert+i; - } - - return dm; -} - -DerivedMesh *bsphere_get_skin_dm(BSphere *bs) -{ - DerivedMesh *dm, *subdm; - - dm = bsphere_base_skin(bs); - - /* subdivide once */ - if(dm && bs->subdiv_level > 0) { - SubsurfModifierData smd; - - memset(&smd, 0, sizeof(smd)); - smd.subdivType = ME_CC_SUBSURF; - smd.levels = bs->subdiv_level; - subdm = subsurf_make_derived_from_derived(dm, &smd, 0, 0, 0, 0); - dm->release(dm); - /* for convenience, convert back to cddm (could use ccgdm - later for better performance though? (TODO)) */ - dm = CDDM_copy(subdm); - subdm->release(subdm); - - bsphere_evolve(CDDM_get_verts(dm), dm->getNumVerts(dm), &bs->rootbase, - bs->skin_threshold, bs->evolve, bs->subdiv_level); - } - - return dm; -} -#endif diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index b9d6badfbe9..8d19322c0db 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -805,15 +805,7 @@ static void layerDefault_mcol(void *data, int count) mcol[i] = default_mcol; } -static void layerDefault_skin(void *data, int count) -{ - SkinNode *n = data; - int i; - - for(i = 0; i < count; i++) { - n[i].radius = 0.25; - } -} + static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL}, @@ -851,8 +843,7 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "TexturedCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, - {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, - {sizeof(SkinNode), "SkinNode", 1, "Skin", NULL, NULL, NULL, NULL, layerDefault_skin} + {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL} }; static const char *LAYERTYPENAMES[CD_NUMTYPES] = { @@ -860,7 +851,7 @@ static const char *LAYERTYPENAMES[CD_NUMTYPES] = { /* 5-9 */ "CDMTFace", "CDMCol", "CDOrigIndex", "CDNormal", "CDFlags", /* 10-14 */ "CDMFloatProperty", "CDMIntProperty","CDMStringProperty", "CDOrigSpace", "CDOrco", /* 15-19 */ "CDMTexPoly", "CDMLoopUV", "CDMloopCol", "CDTangent", "CDMDisps", - /* 20-24 */ "CDWeightMCol", "CDIDMCol", "CDTextureMCol", "CDClothOrco", "CDSkinNode" + /* 20-23 */"CDWeightMCol", "CDIDMCol", "CDTextureMCol", "CDClothOrco" }; const CustomDataMask CD_MASK_BAREMESH = @@ -868,12 +859,10 @@ const CustomDataMask CD_MASK_BAREMESH = const CustomDataMask CD_MASK_MESH = CD_MASK_MVERT | CD_MASK_MEDGE | CD_MASK_MFACE | CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | CD_MASK_MCOL | - CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS | - CD_MASK_SKIN_NODE; + CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS; const CustomDataMask CD_MASK_EDITMESH = CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | - CD_MASK_MCOL|CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS | - CD_MASK_SKIN_NODE; + CD_MASK_MCOL|CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS; const CustomDataMask CD_MASK_DERIVEDMESH = CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_ORIGINDEX | CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_CLOTH_ORCO | diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h index 061e9460956..cdfcf465c6c 100644 --- a/source/blender/makesdna/DNA_customdata_types.h +++ b/source/blender/makesdna/DNA_customdata_types.h @@ -92,8 +92,7 @@ typedef struct CustomData { #define CD_ID_MCOL 21 #define CD_TEXTURE_MCOL 22 #define CD_CLOTH_ORCO 23 -#define CD_SKIN_NODE 24 -#define CD_NUMTYPES 25 +#define CD_NUMTYPES 24 /* Bits for CustomDataMask */ #define CD_MASK_MVERT (1 << CD_MVERT) @@ -118,7 +117,6 @@ typedef struct CustomData { #define CD_MASK_MDISPS (1 << CD_MDISPS) #define CD_MASK_WEIGHT_MCOL (1 << CD_WEIGHT_MCOL) #define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO) -#define CD_MASK_SKIN_NODE (1 << CD_SKIN_NODE) /* CustomData.flag */ diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h index a71c4970eb5..e3510b3a25a 100644 --- a/source/blender/makesdna/DNA_meshdata_types.h +++ b/source/blender/makesdna/DNA_meshdata_types.h @@ -184,11 +184,6 @@ typedef struct PartialVisibility { unsigned int totface, totedge, totvert, pad; } PartialVisibility; -typedef struct SkinNode { - float radius; - int pad; -} SkinNode; - /* mvert->flag (1=SELECT) */ #define ME_SPHERETEST 2 #define ME_VERT_TMP_TAG 4 diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 483bd339b3d..3787675f339 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -71,7 +71,6 @@ typedef enum ModifierType { eModifierType_Solidify, eModifierType_Screw, eModifierType_Warp, - eModifierType_Skin, NUM_MODIFIER_TYPES } ModifierType; @@ -786,17 +785,4 @@ typedef enum { /* PROP_RANDOM not used */ } WarpModifierFalloff; -typedef enum SkinModifierFlags { - MOD_SKIN_DRAW_SKIN = (1<<0), - MOD_SKIN_DRAW_NODES = (1<<1), -} SkinModifierFlags; - -typedef struct SkinModifierData { - ModifierData modifier; - float threshold; - int subdiv; - int flag; - int pad; -} SkinModifierData; - #endif diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index b4a4c593ba9..ba655915fb6 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -68,7 +68,6 @@ EnumPropertyItem modifier_type_items[] ={ {eModifierType_Solidify, "SOLIDIFY", ICON_MOD_SOLIDIFY, "Solidify", ""}, {eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""}, {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, - {eModifierType_Skin, "SKIN", ICON_MOD_ARMATURE, "Skin", ""}, {0, "", 0, "Deform", ""}, {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, @@ -184,8 +183,6 @@ static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) return &RNA_ScrewModifier; case eModifierType_Warp: return &RNA_WarpModifier; - case eModifierType_Skin: - return &RNA_SkinModifier; default: return &RNA_Modifier; } @@ -2415,17 +2412,6 @@ static void rna_def_modifier_screw(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Modifier_update");*/ } -static void rna_def_modifier_skin(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna= RNA_def_struct(brna, "SkinModifier", "Modifier"); - RNA_def_struct_ui_text(srna, "Skin Modifier", "Generate Skin"); - RNA_def_struct_sdna(srna, "SkinModifierData"); - RNA_def_struct_ui_icon(srna, ICON_MOD_ARMATURE); -} - void RNA_def_modifier(BlenderRNA *brna) { StructRNA *srna; @@ -2523,7 +2509,6 @@ void RNA_def_modifier(BlenderRNA *brna) rna_def_modifier_smoke(brna); rna_def_modifier_solidify(brna); rna_def_modifier_screw(brna); - rna_def_modifier_skin(brna); } #endif diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt index 7db03f48631..d1f153265ac 100644 --- a/source/blender/modifiers/CMakeLists.txt +++ b/source/blender/modifiers/CMakeLists.txt @@ -70,7 +70,6 @@ set(SRC intern/MOD_shapekey.c intern/MOD_shrinkwrap.c intern/MOD_simpledeform.c - intern/MOD_skin.c intern/MOD_smoke.c intern/MOD_smooth.c intern/MOD_softbody.c diff --git a/source/blender/modifiers/MOD_modifiertypes.h b/source/blender/modifiers/MOD_modifiertypes.h index 329037ee210..4e44a226c64 100644 --- a/source/blender/modifiers/MOD_modifiertypes.h +++ b/source/blender/modifiers/MOD_modifiertypes.h @@ -72,7 +72,6 @@ extern ModifierTypeInfo modifierType_ShapeKey; extern ModifierTypeInfo modifierType_Solidify; extern ModifierTypeInfo modifierType_Screw; extern ModifierTypeInfo modifierType_Warp; -extern ModifierTypeInfo modifierType_Skin; /* MOD_util.c */ void modifier_type_init(ModifierTypeInfo *types[]); diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c deleted file mode 100644 index adc47f32c9c..00000000000 --- a/source/blender/modifiers/intern/MOD_skin.c +++ /dev/null @@ -1,88 +0,0 @@ -/* -* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -* -* ***** END GPL LICENSE BLOCK ***** -* -*/ - -/** \file blender/modifiers/intern/MOD_skin.c - * \ingroup modifiers - */ - - -#include - -#include "BKE_cdderivedmesh.h" -#include "BKE_modifier.h" - -#include "DNA_mesh_types.h" -#include "DNA_object_types.h" - -#include "MOD_util.h" - -static void initData(ModifierData *md) -{ - SkinModifierData *smd = (SkinModifierData*)md; - - smd->threshold = 0; - smd->subdiv = 1; - smd->flag = MOD_SKIN_DRAW_NODES; -} - -static void copyData(ModifierData *md, ModifierData *target) -{ - SkinModifierData *smd = (SkinModifierData*) md; - SkinModifierData *tsmd = (SkinModifierData*) target; - - tsmd->threshold = smd->threshold; - tsmd->subdiv = smd->subdiv; - tsmd->flag = smd->flag; -} - -static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm, - int useRenderParams, int isFinalCalc) -{ - return dm; -} - - -ModifierTypeInfo modifierType_Skin = { - /* name */ "Skin", - /* structName */ "SkinModifierData", - /* structSize */ sizeof(SkinModifierData), - /* type */ eModifierTypeType_Constructive, - /* flags */ eModifierTypeFlag_AcceptsMesh, - - /* copyData */ copyData, - /* deformVerts */ NULL, - /* deformMatrices */ NULL, - /* deformVertsEM */ NULL, - /* deformMatricesEM */ NULL, - /* applyModifier */ applyModifier, - /* applyModifierEM */ NULL, - /* initData */ initData, - /* requiredDataMask */ NULL, - /* freeData */ NULL, - /* isDisabled */ NULL, - /* updateDepgraph */ NULL, - /* dependsOnTime */ NULL, - /* dependsOnNormals */ NULL, - /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL, -}; diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index e823a347ced..e9b835eab81 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -295,6 +295,5 @@ void modifier_type_init(ModifierTypeInfo *types[]) INIT_TYPE(Solidify); INIT_TYPE(Screw); INIT_TYPE(Warp); - INIT_TYPE(Skin); #undef INIT_TYPE } -- cgit v1.2.3 From 670f58023c478995ed055e194482ab288db436a7 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sun, 31 Jul 2011 02:34:53 +0000 Subject: == PBVH == OK, after that failure of committing a bunch of old junk, hopefully this is what I actually meant to commit :) * Added big comments to some of the fields in struct PBVHNode. I always forget the details of these, so finally wrote it down properly. * Changed types of PBVHNode.face_vert_indices and PBVHNode.flag to better reflect their contents. * There should be no functional changes here. --- source/blender/blenlib/intern/pbvh.c | 83 +++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 85d79ae3b85..0613765b868 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -26,7 +26,6 @@ - #include "DNA_meshdata_types.h" #include "MEM_guardedalloc.h" @@ -85,25 +84,61 @@ struct PBVHNode { /* Opaque handle for drawing code */ void *draw_buffers; - int *vert_indices; - /* Voxel bounds */ BB vb; BB orig_vb; - /* For internal nodes */ + /* For internal nodes, the offset of the children in the PBVH + 'nodes' array. */ int children_offset; - /* Pointer into bvh prim_indices */ - int *prim_indices; - int *face_vert_indices; + /* Pointer into the PBVH prim_indices array and the number of + primitives used by this leaf node. + Used for leaf nodes in both mesh- and multires-based PBVHs. + */ + int *prim_indices; unsigned int totprim; + + /* Array of indices into the mesh's MVert array. Contains the + indices of all vertices used by faces that are within this + node's bounding box. + + Note that a vertex might be used by a multiple faces, and + these faces might be in different leaf nodes. Such a vertex + will appear in the vert_indices array of each of those leaf + nodes. + + In order to support cases where you want access to multiple + nodes' vertices without duplication, the vert_indices array + is ordered such that the first part of the array, up to + index 'uniq_verts', contains "unique" vertex indices. These + vertices might not be truly unique to this node, but if + they appear in another node's vert_indices array, they will + be above that node's 'uniq_verts' value. + + Used for leaf nodes in a mesh-based PBVH (not multires.) + */ + int *vert_indices; unsigned int uniq_verts, face_verts; - char flag; + /* An array mapping face corners into the vert_indices + array. The array is sized to match 'totprim', and each of + the face's corners gets an index into the vert_indices + array, in the same order as the corners in the original + MFace. The fourth value should not be used if the original + face is a triangle. + + Used for leaf nodes in a mesh-based PBVH (not multires.) + */ + int (*face_vert_indices)[4]; + + /* Indicates whether this node is a leaf or not; also used for + marking various updates that need to be applied. */ + PBVHNodeFlags flag : 8; - float tmin; // used for raycasting, is how close bb is to the ray point + /* Used for raycasting: how close bb is to the ray point. */ + float tmin; int proxy_count; PBVHProxyNode* proxies; @@ -339,15 +374,15 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node) node->uniq_verts = node->face_verts = 0; totface= node->totprim; - node->face_vert_indices = MEM_callocN(sizeof(int) * - 4*totface, "bvh node face vert indices"); + node->face_vert_indices = MEM_callocN(sizeof(int) * 4*totface, + "bvh node face vert indices"); for(i = 0; i < totface; ++i) { MFace *f = bvh->faces + node->prim_indices[i]; int sides = f->v4 ? 4 : 3; for(j = 0; j < sides; ++j) { - node->face_vert_indices[i*4 + j]= + node->face_vert_indices[i][j]= map_insert_vert(bvh, map, &node->face_verts, &node->uniq_verts, (&f->v1)[j]); } @@ -373,9 +408,17 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node) BLI_ghashIterator_free(iter); - for(i = 0; i < totface*4; ++i) - if(node->face_vert_indices[i] < 0) - node->face_vert_indices[i]= -node->face_vert_indices[i] + node->uniq_verts - 1; + for(i = 0; i < totface; ++i) { + MFace *f = bvh->faces + node->prim_indices[i]; + int sides = f->v4 ? 4 : 3; + + for(j = 0; j < sides; ++j) { + if(node->face_vert_indices[i][j] < 0) + node->face_vert_indices[i][j]= + -node->face_vert_indices[i][j] + + node->uniq_verts - 1; + } + } if(!G.background) { node->draw_buffers = @@ -1340,20 +1383,20 @@ int BLI_pbvh_node_raycast(PBVH *bvh, PBVHNode *node, float (*origco)[3], if(bvh->faces) { MVert *vert = bvh->verts; int *faces= node->prim_indices; - int *face_verts= node->face_vert_indices; int totface= node->totprim; int i; for(i = 0; i < totface; ++i) { MFace *f = bvh->faces + faces[i]; + int *face_verts = node->face_vert_indices[i]; if(origco) { /* intersect with backuped original coordinates */ hit |= ray_face_intersection(ray_start, ray_normal, - origco[face_verts[i*4+0]], - origco[face_verts[i*4+1]], - origco[face_verts[i*4+2]], - f->v4? origco[face_verts[i*4+3]]: NULL, + origco[face_verts[0]], + origco[face_verts[1]], + origco[face_verts[2]], + f->v4? origco[face_verts[3]]: NULL, dist); } else { -- cgit v1.2.3 From 4745e3da129fcf208e72d11e60e53a339c275fd7 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 31 Jul 2011 03:06:00 +0000 Subject: improved ndof fly: precision mode, camera position, camera animation --- source/blender/editors/space_view3d/view3d_fly.c | 244 +++++++++++++---------- 1 file changed, 136 insertions(+), 108 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index c7ebc296896..34e355c977e 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -599,6 +599,75 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) } } + +static void move_camera(bContext* C, RegionView3D* rv3d, FlyInfo* fly, int orientationChanged, int positionChanged) +{ + /* we are in camera view so apply the view ofs and quat to the view matrix and set the camera to the view */ + + View3D* v3d = fly->v3d; + Scene *scene= fly->scene; + ID *id_key; + + /* transform the parent or the camera? */ + if(fly->root_parent) { + Object *ob_update; + + float view_mat[4][4]; + float prev_view_mat[4][4]; + float prev_view_imat[4][4]; + float diff_mat[4][4]; + float parent_mat[4][4]; + + ED_view3d_to_m4(prev_view_mat, fly->rv3d->ofs, fly->rv3d->viewquat, fly->rv3d->dist); + invert_m4_m4(prev_view_imat, prev_view_mat); + ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist); + mul_m4_m4m4(diff_mat, prev_view_imat, view_mat); + mul_m4_m4m4(parent_mat, fly->root_parent->obmat, diff_mat); + object_apply_mat4(fly->root_parent, parent_mat, TRUE, FALSE); + + // where_is_object(scene, fly->root_parent); + + ob_update= v3d->camera->parent; + while(ob_update) { + DAG_id_tag_update(&ob_update->id, OB_RECALC_OB); + ob_update= ob_update->parent; + } + + id_key= &fly->root_parent->id; + } + else { + float view_mat[4][4]; + ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist); + object_apply_mat4(v3d->camera, view_mat, TRUE, FALSE); + id_key= &v3d->camera->id; + } + + /* record the motion */ + if (autokeyframe_cfra_can_key(scene, id_key)) { + ListBase dsources = {NULL, NULL}; + + /* add datasource override for the camera object */ + ANIM_relative_keyingset_add_source(&dsources, id_key, NULL, NULL); + + /* insert keyframes + * 1) on the first frame + * 2) on each subsequent frame + * TODO: need to check in future that frame changed before doing this + */ + if (orientationChanged) { + KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation"); + ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA); + } + if (positionChanged) { + KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location"); + ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA); + } + + /* free temp data */ + BLI_freelistN(&dsources); + } +} + static int flyApply(bContext *C, FlyInfo *fly) { @@ -611,11 +680,7 @@ static int flyApply(bContext *C, FlyInfo *fly) a fly loop where the user can move move the view as if they are flying */ RegionView3D *rv3d= fly->rv3d; - View3D *v3d = fly->v3d; ARegion *ar = fly->ar; - Scene *scene= fly->scene; - - float prev_view_mat[4][4]; float mat[3][3], /* 3x3 copy of the view matrix so we can move allong the view axis */ dvec[3]={0,0,0}, /* this is the direction thast added to the view offset per redraw */ @@ -638,8 +703,6 @@ static int flyApply(bContext *C, FlyInfo *fly) printf("fly timer %d\n", iteration++); #endif - if(fly->root_parent) - ED_view3d_to_m4(prev_view_mat, fly->rv3d->ofs, fly->rv3d->viewquat, fly->rv3d->dist); xmargin= ar->winx/20.0f; ymargin= ar->winy/20.0f; @@ -756,7 +819,7 @@ static int flyApply(bContext *C, FlyInfo *fly) mul_m3_v3(mat, upvec); } - axis_angle_to_quat( tmp_quat, upvec, (float)moffset[0] * time_redraw * FLY_ROTATE_FAC); /* Rotate about the relative up vec */ + axis_angle_to_quat(tmp_quat, upvec, (float)moffset[0] * time_redraw * FLY_ROTATE_FAC); /* Rotate about the relative up vec */ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat); if (fly->xlock) fly->xlock = 2;/*check for rotation*/ @@ -850,69 +913,9 @@ static int flyApply(bContext *C, FlyInfo *fly) ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X off/Z off, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB"); #endif - /* we are in camera view so apply the view ofs and quat to the view matrix and set the camera to the view */ - if (rv3d->persp==RV3D_CAMOB) { - ID *id_key; - /* transform the parent or the camera? */ - if(fly->root_parent) { - Object *ob_update; - - float view_mat[4][4]; - float prev_view_imat[4][4]; - float diff_mat[4][4]; - float parent_mat[4][4]; - - invert_m4_m4(prev_view_imat, prev_view_mat); - ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist); - mul_m4_m4m4(diff_mat, prev_view_imat, view_mat); - mul_m4_m4m4(parent_mat, fly->root_parent->obmat, diff_mat); - object_apply_mat4(fly->root_parent, parent_mat, TRUE, FALSE); - - // where_is_object(scene, fly->root_parent); - - ob_update= v3d->camera->parent; - while(ob_update) { - DAG_id_tag_update(&ob_update->id, OB_RECALC_OB); - ob_update= ob_update->parent; - } - - copy_m4_m4(prev_view_mat, view_mat); - - id_key= &fly->root_parent->id; + if (rv3d->persp==RV3D_CAMOB) + move_camera(C, rv3d, fly, (fly->xlock || fly->zlock || moffset[0] || moffset[1]), fly->speed); - } - else { - float view_mat[4][4]; - ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist); - object_apply_mat4(v3d->camera, view_mat, TRUE, FALSE); - id_key= &v3d->camera->id; - } - - /* record the motion */ - if (autokeyframe_cfra_can_key(scene, id_key)) { - ListBase dsources = {NULL, NULL}; - - /* add datasource override for the camera object */ - ANIM_relative_keyingset_add_source(&dsources, id_key, NULL, NULL); - - /* insert keyframes - * 1) on the first frame - * 2) on each subsequent frame - * TODO: need to check in future that frame changed before doing this - */ - if (fly->xlock || fly->zlock || moffset[0] || moffset[1]) { - KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation"); - ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA); - } - if (fly->speed) { - KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location"); - ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA); - } - - /* free temp data */ - BLI_freelistN(&dsources); - } - } } else /*were not redrawing but we need to update the time else the view will jump */ fly->time_lastdraw= PIL_check_seconds_timer(); @@ -931,13 +934,8 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) RegionView3D* rv3d = fly->rv3d; const int flag = U.ndof_flag; - const int shouldRotate = TRUE, - shouldTranslate = TRUE; - - // const int shouldRotate = flag & NDOF_SHOULD_ROTATE, - // shouldTranslate = flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM); - // might also be something in FlyInfo that restricts motion - // if so, change these ^^ + int shouldRotate = (flag & NDOF_SHOULD_ROTATE) && (fly->pan_view == FALSE), + shouldTranslate = (flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM)); float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); @@ -959,22 +957,36 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) forward_sensitivity * ndof->tz }; + if (fly->use_precision) + speed *= 0.2f; + mul_v3_fl(trans, speed * dt); // transform motion from view to world coordinates mul_qt_v3(view_inv, trans); if (flag & NDOF_FLY_HELICOPTER) - // could also use RNA to get a simple boolean value { // replace world z component with device y (yes it makes sense) trans[2] = speed * dt * vertical_sensitivity * ndof->ty; } - // move center of view opposite of hand motion (this is camera mode, not object mode) - sub_v3_v3(rv3d->ofs, trans); + if (rv3d->persp==RV3D_CAMOB) { + // respect camera position locks + Object *lock_ob= fly->root_parent ? fly->root_parent : fly->v3d->camera; + if (lock_ob->protectflag & OB_LOCK_LOCX) trans[0] = 0.0; + if (lock_ob->protectflag & OB_LOCK_LOCY) trans[1] = 0.0; + if (lock_ob->protectflag & OB_LOCK_LOCZ) trans[2] = 0.0; + } - fly->redraw = 1; + if (trans[0] || trans[1] || trans[2]) + { + // move center of view opposite of hand motion (this is camera mode, not object mode) + sub_v3_v3(rv3d->ofs, trans); + shouldTranslate = TRUE; + } + else + shouldTranslate = FALSE; } if (shouldRotate) @@ -985,44 +997,60 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) float axis[3]; float angle = turn_sensitivity * ndof_to_angle_axis(ndof, axis); - // transform rotation axis from view to world coordinates - mul_qt_v3(view_inv, axis); + if (fabsf(angle) > 0.0001f) + { + shouldRotate = TRUE; - // apply rotation to view - axis_angle_to_quat(rotation, axis, angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + if (fly->use_precision) + angle *= 0.2f; - if (flag & NDOF_LOCK_HORIZON) - // force an upright viewpoint - // TODO: make this less... sudden - { - float view_horizon[3] = {1, 0, 0}; // view +x - float view_direction[3] = {0, 0, -1}; // view -z (into screen) + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); - // find new inverse since viewquat has changed - invert_qt_qt(view_inv, rv3d->viewquat); - // could apply reverse rotation to existing view_inv to save a few cycles + // apply rotation to view + axis_angle_to_quat(rotation, axis, angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); - // transform view vectors to world coordinates - mul_qt_v3(view_inv, view_horizon); - mul_qt_v3(view_inv, view_direction); + if (flag & NDOF_LOCK_HORIZON) + // force an upright viewpoint + // TODO: make this less... sudden + { + float view_horizon[3] = {1, 0, 0}; // view +x + float view_direction[3] = {0, 0, -1}; // view -z (into screen) - // find difference between view & world horizons - // true horizon lives in world xy plane, so look only at difference in z - angle = -asinf(view_horizon[2]); + // find new inverse since viewquat has changed + invert_qt_qt(view_inv, rv3d->viewquat); + // could apply reverse rotation to existing view_inv to save a few cycles - #ifdef NDOF_FLY_DEBUG - printf("lock horizon: adjusting %.1f degrees\n\n", RAD2DEG(angle)); - #endif + // transform view vectors to world coordinates + mul_qt_v3(view_inv, view_horizon); + mul_qt_v3(view_inv, view_direction); - // rotate view so view horizon = world horizon - axis_angle_to_quat(rotation, view_direction, angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + // find difference between view & world horizons + // true horizon lives in world xy plane, so look only at difference in z + angle = -asinf(view_horizon[2]); + + #ifdef NDOF_FLY_DEBUG + printf("lock horizon: adjusting %.1f degrees\n\n", RAD2DEG(angle)); + #endif + + // rotate view so view horizon = world horizon + axis_angle_to_quat(rotation, view_direction, angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); + } + + rv3d->view = RV3D_VIEW_USER; } + else + shouldRotate = FALSE; + } - rv3d->view = RV3D_VIEW_USER; + if (shouldTranslate || shouldRotate) + { + fly->redraw = TRUE; - fly->redraw = 1; + if (rv3d->persp==RV3D_CAMOB) + move_camera(C, rv3d, fly, shouldRotate, shouldTranslate); } return OPERATOR_FINISHED; -- cgit v1.2.3 From f4293067c1420827ddfa62e62430870c6b790a8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 31 Jul 2011 03:15:37 +0000 Subject: py api: sphinx doc corrections, pep8 cleanup and style edits, also added __all__ to some modules which were missing it. --- source/blender/python/intern/bpy_rna.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 2dcfe3731c7..502b25842de 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -6411,7 +6411,9 @@ PyDoc_STRVAR(pyrna_register_class_doc, " If the class has a *register* class method it will be called\n" " before registration.\n" "\n" -" .. note:: :exc:`ValueError` exception is raised if the class is not a\n" +" .. note::\n" +"\n" +" :exc:`ValueError` exception is raised if the class is not a\n" " subclass of a registerable blender class.\n" "\n" ); -- cgit v1.2.3 From f3c867c3dbde6919653e7cc712099e48b7508715 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 31 Jul 2011 05:04:12 +0000 Subject: Camera Clipping animation COLLADA support fix. --- source/blender/collada/AnimationExporter.cpp | 6 +++--- source/blender/collada/AnimationImporter.cpp | 6 +++--- source/blender/collada/AnimationImporter.h | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index ab2bf591321..2f92d9212a9 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -94,7 +94,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ((!strcmp(transformName, "lens"))|| (!strcmp(transformName, "ortho_scale"))|| - (!strcmp(transformName, "clipend"))||(!strcmp(transformName, "clipsta"))) + (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) dae_animation(ob , fcu, transformName, true ); fcu = fcu->next; } @@ -836,9 +836,9 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 7; else if (!strcmp(name, "ortho_scale")) tm_type = 8; - else if (!strcmp(name, "clipend")) + else if (!strcmp(name, "clip_end")) tm_type = 9; - else if (!strcmp(name, "clipsta")) + else if (!strcmp(name, "clip_start")) tm_type = 10; else if (!strcmp(name, "specular_hardness")) tm_type = 11; diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index dad10d91117..8ae2d6970cd 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -896,14 +896,14 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , { const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane()); const COLLADAFW::UniqueId& listid = zfar->getAnimationList(); - Assign_float_animations( listid ,AnimCurves, "clipend"); + Assign_float_animations( listid ,AnimCurves, "clip_end"); } if ((animType->camera & CAMERA_ZNEAR) != 0 ) { const COLLADAFW::AnimatableFloat *znear = &(camera->getNearClippingPlane()); const COLLADAFW::UniqueId& listid = znear->getAnimationList(); - Assign_float_animations( listid ,AnimCurves, "clipsta"); + Assign_float_animations( listid ,AnimCurves, "clip_start"); } } @@ -1009,7 +1009,7 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); - + // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); } } return types; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 642d218dd41..02b7b05afec 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -110,7 +110,8 @@ private: { MATERIAL_SHININESS = 2, MATERIAL_SPEC_COLOR = 4, - MATERIAL_DIFF_COLOR = 1 << 3 + MATERIAL_DIFF_COLOR = 1 << 3, + MATERIAL_TRANSPARENCY = 1 << 4 }; enum AnimationType -- cgit v1.2.3 From e8c3c4097a146b059fa52893a2a1b6e89cdb3094 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sun, 31 Jul 2011 06:03:14 +0000 Subject: SVN maintenance. --- source/blender/editors/interface/interface_anim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index 03003173e20..d9691819b29 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -1,5 +1,5 @@ /* - * $Id: + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From 679b528177a29a1008efe26daeebef31d73978c1 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 31 Jul 2011 06:26:03 +0000 Subject: fix for immobile camera (NDOF_SHOULD_ROTATE etc.) -- should revisit later --- source/blender/editors/space_view3d/view3d_fly.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 34e355c977e..38d93ab59f3 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -29,7 +29,7 @@ /* defines VIEW3D_OT_fly modal operator */ -// #define NDOF_FLY_DEBUG +//#define NDOF_FLY_DEBUG #include "DNA_anim_types.h" #include "DNA_scene_types.h" @@ -145,7 +145,6 @@ void fly_modal_keymap(wmKeyConfig *keyconf) /* assign map to operators */ WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly"); - } typedef struct FlyInfo { @@ -670,7 +669,6 @@ static void move_camera(bContext* C, RegionView3D* rv3d, FlyInfo* fly, int orien static int flyApply(bContext *C, FlyInfo *fly) { - #define FLY_ROTATE_FAC 2.5f /* more is faster */ #define FLY_ZUP_CORRECT_FAC 0.1f /* amount to correct per step */ #define FLY_ZUP_CORRECT_ACCEL 0.05f /* increase upright momentum each step */ @@ -934,13 +932,16 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) RegionView3D* rv3d = fly->rv3d; const int flag = U.ndof_flag; - int shouldRotate = (flag & NDOF_SHOULD_ROTATE) && (fly->pan_view == FALSE), - shouldTranslate = (flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM)); +// int shouldRotate = (flag & NDOF_SHOULD_ROTATE) && (fly->pan_view == FALSE), +// shouldTranslate = (flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM)); + + int shouldRotate = (fly->pan_view == FALSE), + shouldTranslate = TRUE; float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); - rv3d->rot_angle = 0; // disable onscreen rotation doo-dad + rv3d->rot_angle = 0.f; // disable onscreen rotation doo-dad if (shouldTranslate) { @@ -974,9 +975,9 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) if (rv3d->persp==RV3D_CAMOB) { // respect camera position locks Object *lock_ob= fly->root_parent ? fly->root_parent : fly->v3d->camera; - if (lock_ob->protectflag & OB_LOCK_LOCX) trans[0] = 0.0; - if (lock_ob->protectflag & OB_LOCK_LOCY) trans[1] = 0.0; - if (lock_ob->protectflag & OB_LOCK_LOCZ) trans[2] = 0.0; + if (lock_ob->protectflag & OB_LOCK_LOCX) trans[0] = 0.f; + if (lock_ob->protectflag & OB_LOCK_LOCY) trans[1] = 0.f; + if (lock_ob->protectflag & OB_LOCK_LOCZ) trans[2] = 0.f; } if (trans[0] || trans[1] || trans[2]) @@ -1015,8 +1016,8 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // force an upright viewpoint // TODO: make this less... sudden { - float view_horizon[3] = {1, 0, 0}; // view +x - float view_direction[3] = {0, 0, -1}; // view -z (into screen) + float view_horizon[3] = {1.f, 0.f, 0.f}; // view +x + float view_direction[3] = {0.f, 0.f, -1.f}; // view -z (into screen) // find new inverse since viewquat has changed invert_qt_qt(view_inv, rv3d->viewquat); @@ -1124,6 +1125,7 @@ static int fly_modal(bContext *C, wmOperator *op, wmEvent *event) WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, fly_object); } + // puts("redraw!"); // too frequent, fix tomorrow. ED_region_tag_redraw(CTX_wm_region(C)); } -- cgit v1.2.3 From f4a1dc4c8dd353aa614bc7c00846e5076ddc2dc2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 31 Jul 2011 07:58:50 +0000 Subject: when converting curves from poly -> nurbs, dont enable Bezier-U flag. Not sure why this was enabled, possibly from copy/paste with bezier->nurbs code? If you have meny poly lines there was no nice way to convert these into a smoothed nurbs curve. Ran into this when trying to convert generated ivy into smooth nurbs. --- source/blender/editors/curve/editcurve.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 8b9477adf92..210f36ca074 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -3432,7 +3432,6 @@ static int convertspline(short type, Nurb *nu) nu->type = CU_NURBS; nu->orderu= 4; nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */ - nu->flagu |= CU_NURB_BEZIER; nurbs_knot_calc_u(nu); a= nu->pntsu*nu->pntsv; bp= nu->bp; -- cgit v1.2.3 From 432bd158fbdb9d56f9499dcc0e465f4e148abbf3 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 31 Jul 2011 11:12:38 +0000 Subject: bugfix [#28111] material.pop breaks mt->mat_nr create a new parameter for materials.pop() to not remove material slot. this way the mat_nr is still the old one. for the default behaviour we now have material remapping (i.e. data_delete_material_index_id(id, index)). This new function is brought from the material_slot remove function. --- source/blender/blenkernel/BKE_material.h | 2 +- source/blender/blenkernel/intern/material.c | 101 +++++++++++++++++----------- source/blender/blenkernel/intern/mesh.c | 4 +- source/blender/makesrna/intern/rna_ID.c | 1 + 4 files changed, 66 insertions(+), 42 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h index c445408609c..88965d12e4a 100644 --- a/source/blender/blenkernel/BKE_material.h +++ b/source/blender/blenkernel/BKE_material.h @@ -78,7 +78,7 @@ int object_remove_material_slot(struct Object *ob); /* rna api */ void material_append_id(struct ID *id, struct Material *ma); -struct Material *material_pop_id(struct ID *id, int index); +struct Material *material_pop_id(struct ID *id, int index, int remove_material_slot); /* rendering */ diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 3f01c55e935..1f2544c9706 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -61,7 +61,7 @@ #include "BKE_material.h" #include "BKE_mesh.h" #include "BKE_node.h" - +#include "BKE_curve.h" #include "GPU_material.h" @@ -515,6 +515,37 @@ short *give_totcolp_id(ID *id) return NULL; } +void data_delete_material_index_id(ID *id, int index) +{ + Mesh *me; + Curve *cu; + Nurb *nu; + int curvetype; + + switch(GS(id->name)) { + case ID_ME: + me=(Mesh *)id; + mesh_delete_material_index(me, index); + break; + case ID_CU: + cu= (Curve *)id; + nu= cu->nurb.first; + + curvetype=curve_type(cu); + if (!ELEM(curvetype, OB_CURVE, OB_SURF)) + return; + + while (nu) { + if(nu->mat_nr && nu->mat_nr>=index) { + nu->mat_nr--; + if (curvetype == OB_CURVE) nu->charidx--; + } + nu= nu->next; + } + break; + } +} + void material_append_id(ID *id, Material *ma) { Material ***matar; @@ -532,7 +563,7 @@ void material_append_id(ID *id, Material *ma) } } -Material *material_pop_id(ID *id, int index) +Material *material_pop_id(ID *id, int index, int remove_material_slot) { Material *ret= NULL; Material ***matar; @@ -540,27 +571,36 @@ Material *material_pop_id(ID *id, int index) short *totcol= give_totcolp_id(id); if(index >= 0 && index < (*totcol)) { ret= (*matar)[index]; - id_us_min((ID *)ret); - if(*totcol <= 1) { - *totcol= 0; - MEM_freeN(*matar); - *matar= NULL; - } - else { - Material **mat; - - if(index + 1 != (*totcol)) - memmove((*matar)+index, (*matar)+(index+1), sizeof(void *) * ((*totcol) - (index + 1))); + id_us_min((ID *)ret); - (*totcol)--; - - mat= MEM_callocN(sizeof(void *) * (*totcol), "newmatar"); - memcpy(mat, *matar, sizeof(void *) * (*totcol)); - MEM_freeN(*matar); + if (remove_material_slot) { + if(*totcol <= 1) { + *totcol= 0; + MEM_freeN(*matar); + *matar= NULL; + } + else { + Material **mat; + if(index + 1 != (*totcol)) + memmove((*matar)+index, (*matar)+(index+1), sizeof(void *) * ((*totcol) - (index + 1))); + + (*totcol)--; + + mat= MEM_callocN(sizeof(void *) * (*totcol), "newmatar"); + memcpy(mat, *matar, sizeof(void *) * (*totcol)); + MEM_freeN(*matar); + + *matar= mat; + test_object_materials(id); + } - *matar= mat; - test_object_materials(id); + /* decrease mat_nr index */ + data_delete_material_index_id(id, index); } + + /* don't remove material slot, only clear it*/ + else + (*matar)[index]= NULL; } } @@ -1025,8 +1065,6 @@ int object_remove_material_slot(Object *ob) { Material *mao, ***matarar; Object *obt; - Curve *cu; - Nurb *nu; short *totcolp; int a, actcol; @@ -1086,23 +1124,8 @@ int object_remove_material_slot(Object *ob) } /* check indices from mesh */ - - if(ob->type==OB_MESH) { - Mesh *me= get_mesh(ob); - mesh_delete_material_index(me, actcol-1); - freedisplist(&ob->disp); - } - else if ELEM(ob->type, OB_CURVE, OB_SURF) { - cu= ob->data; - nu= cu->nurb.first; - - while(nu) { - if(nu->mat_nr && nu->mat_nr>=actcol-1) { - nu->mat_nr--; - if (ob->type == OB_CURVE) nu->charidx--; - } - nu= nu->next; - } + if (ELEM3(ob->type, OB_MESH, OB_CURVE, OB_SURF)) { + data_delete_material_index_id(&ob->id, actcol-1); freedisplist(&ob->disp); } diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 45a60b842a7..32819226361 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -1254,10 +1254,10 @@ void mesh_to_curve(Scene *scene, Object *ob) void mesh_delete_material_index(Mesh *me, int index) { + MFace *mf; int i; - for (i=0; itotface; i++) { - MFace *mf = &((MFace*) me->mface)[i]; + for (i=0, mf=me->mface; itotface; i++, mf++) { if (mf->mat_nr && mf->mat_nr>=index) mf->mat_nr--; } diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 3ce84e3a19f..6d7fc0ee57b 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -418,6 +418,7 @@ static void rna_def_ID_materials(BlenderRNA *brna) RNA_def_function_ui_description(func, "Remove a material from the data block."); parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Index of material to remove.", 0, INT_MAX); RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_boolean(func, "remove_material_slot", 1, "", "Remove the material slot and assign 1st material to old faces."); parm= RNA_def_pointer(func, "material", "Material", "", "Material to remove."); RNA_def_function_return(func, parm); } -- cgit v1.2.3 From c74bb09584371520b9b557cbaa8ae13356bf5e1a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 31 Jul 2011 12:43:41 +0000 Subject: fix for material slot removal (r38879) - The object ID was being passed to the data_delete_material_index_id() from object_remove_material_slot(), rather then the object data. (so the material slot fix wouldnt run in that case). - add support for fixing text object materials too. --- source/blender/blenkernel/BKE_curve.h | 1 + source/blender/blenkernel/intern/curve.c | 25 ++++++++++++++++++++++++ source/blender/blenkernel/intern/material.c | 30 +++++++---------------------- source/blender/makesrna/intern/rna_ID.c | 5 +++-- 4 files changed, 36 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h index 0491116d199..557ce417b14 100644 --- a/source/blender/blenkernel/BKE_curve.h +++ b/source/blender/blenkernel/BKE_curve.h @@ -115,5 +115,6 @@ int minmax_curve(struct Curve *cu, float min[3], float max[3]); int curve_center_median(struct Curve *cu, float cent[3]); int curve_center_bounds(struct Curve *cu, float cent[3]); void curve_translate(struct Curve *cu, float offset[3], int do_keys); +void curve_delete_material_index(struct Curve *cu, int index); #endif diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 202a3f28d9a..66ab11938f3 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -3259,3 +3259,28 @@ void curve_translate(Curve *cu, float offset[3], int do_keys) } } } + +void curve_delete_material_index(Curve *cu, int index) +{ + const int curvetype= curve_type(cu); + + if(curvetype == OB_FONT) { + struct CharInfo *info= cu->strinfo; + int i; + for(i= cu->len-1; i >= 0; i--, info++) { + if (info->mat_nr && info->mat_nr>=index) { + info->mat_nr--; + } + } + } + else { + Nurb *nu; + + for (nu= cu->nurb.first; nu; nu= nu->next) { + if(nu->mat_nr && nu->mat_nr>=index) { + nu->mat_nr--; + if (curvetype == OB_CURVE) nu->charidx--; + } + } + } +} diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 1f2544c9706..9c455e84109 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -517,31 +517,15 @@ short *give_totcolp_id(ID *id) void data_delete_material_index_id(ID *id, int index) { - Mesh *me; - Curve *cu; - Nurb *nu; - int curvetype; - switch(GS(id->name)) { case ID_ME: - me=(Mesh *)id; - mesh_delete_material_index(me, index); + mesh_delete_material_index((Mesh *)id, index); break; case ID_CU: - cu= (Curve *)id; - nu= cu->nurb.first; - - curvetype=curve_type(cu); - if (!ELEM(curvetype, OB_CURVE, OB_SURF)) - return; - - while (nu) { - if(nu->mat_nr && nu->mat_nr>=index) { - nu->mat_nr--; - if (curvetype == OB_CURVE) nu->charidx--; - } - nu= nu->next; - } + curve_delete_material_index((Curve *)id, index); + break; + case ID_MB: + /* meta-elems dont have materials atm */ break; } } @@ -1124,8 +1108,8 @@ int object_remove_material_slot(Object *ob) } /* check indices from mesh */ - if (ELEM3(ob->type, OB_MESH, OB_CURVE, OB_SURF)) { - data_delete_material_index_id(&ob->id, actcol-1); + if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT)) { + data_delete_material_index_id((ID *)ob->data, actcol-1); freedisplist(&ob->disp); } diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 6d7fc0ee57b..8d57403ec35 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -35,6 +35,7 @@ #include "DNA_ID.h" #include "DNA_vfont_types.h" +#include "DNA_material_types.h" #include "DNA_object_types.h" #include "WM_types.h" @@ -416,9 +417,9 @@ static void rna_def_ID_materials(BlenderRNA *brna) func= RNA_def_function(srna, "pop", "material_pop_id"); RNA_def_function_ui_description(func, "Remove a material from the data block."); - parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Index of material to remove.", 0, INT_MAX); + parm= RNA_def_int(func, "index", 0, 0, MAXMAT, "", "Index of material to remove.", 0, MAXMAT); RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_boolean(func, "remove_material_slot", 1, "", "Remove the material slot and assign 1st material to old faces."); + RNA_def_boolean(func, "update_data", 0, "", "Update data by re-adjusting the material slots assigned."); parm= RNA_def_pointer(func, "material", "Material", "", "Material to remove."); RNA_def_function_return(func, parm); } -- cgit v1.2.3 From 5c8344bcc9f8f2c319346420766d9e4110beb607 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 31 Jul 2011 16:26:02 +0000 Subject: Bug fix: loading a file that had particles using a dupligroup from a liblinked file without the library file being present crashed --- source/blender/blenloader/intern/readfile.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 4ad99c02b2d..0633794c6ed 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3162,7 +3162,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main) if(part->effector_weights) part->effector_weights->group = newlibadr(fd, part->id.lib, part->effector_weights->group); - if(part->dupliweights.first) { + if(part->dupliweights.first && part->dup_group) { int index_ok = 0; /* check for old files without indices (all indexes 0) */ dw = part->dupliweights.first; @@ -3193,6 +3193,9 @@ static void lib_link_particlesettings(FileData *fd, Main *main) dw->ob = newlibadr(fd, part->id.lib, dw->ob); } } + else { + part->dupliweights.first = part->dupliweights.last = NULL; + } if(part->boids) { BoidState *state = part->boids->states.first; -- cgit v1.2.3 From f48b9062619ecc685e81dca12d588f5524efe41d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Aug 2011 02:52:08 +0000 Subject: fix for failure to create curve knots when both endpoint and bezier U were enabled. use default when invalid settings given. removed odd/annoying bit shifting of the flagu/v for such basic function made code hard to understand and would fail if new flags were added. --- source/blender/blenkernel/intern/curve.c | 35 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 66ab11938f3..07e450479e4 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -580,29 +580,24 @@ void addNurbPointsBezier(Nurb *nu, int number) /* ~~~~~~~~~~~~~~~~~~~~Non Uniform Rational B Spline calculations ~~~~~~~~~~~ */ -static void calcknots(float *knots, short aantal, short order, short type) -/* knots: number of pnts NOT corrected for cyclic */ -/* type; 0: uniform, 1: endpoints, 2: bezier */ +static void calcknots(float *knots, const short aantal, const short order, const short flag) { + /* knots: number of pnts NOT corrected for cyclic */ + const int t= aantal + order; float k; - int a, t; - - t = aantal+order; - if(type==0) { + int a; - for(a=0;a=order && a<=aantal) k+= 1.0f; } - } - else if(type==2) { - /* Warning, the order MUST be 2 or 4, if this is not enforced, the displist will be corrupt */ + break; + case CU_NURB_BEZIER: + /* Warning, the order MUST be 2 or 4, + * if this is not enforced, the displist will be corrupt */ if(order==4) { k= 0.34; for(a=0;aknotsu, nu->pntsu, nu->orderu, 0); /* cyclic should be uniform */ makecyclicknots(nu->knotsu, nu->pntsu, nu->orderu); } else { - calcknots(nu->knotsu, nu->pntsu, nu->orderu, nu->flagu>>1); + calcknots(nu->knotsu, nu->pntsu, nu->orderu, nu->flagu); } } else nu->knotsu= NULL; @@ -675,7 +676,7 @@ static void makeknots(Nurb *nu, short uv) calcknots(nu->knotsv, nu->pntsv, nu->orderv, 0); /* cyclic should be uniform */ makecyclicknots(nu->knotsv, nu->pntsv, nu->orderv); } else { - calcknots(nu->knotsv, nu->pntsv, nu->orderv, nu->flagv>>1); + calcknots(nu->knotsv, nu->pntsv, nu->orderv, nu->flagv); } } else nu->knotsv= NULL; -- cgit v1.2.3 From 9da712a581f59fc7794151fe5f07a4fb396881f2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Aug 2011 02:58:44 +0000 Subject: replace dutch variable name 'aantal' with 'tot' --- source/blender/blenkernel/intern/curve.c | 16 ++++++++-------- source/blender/blenkernel/intern/key.c | 8 ++++---- source/blender/editors/space_view3d/view3d_select.c | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 07e450479e4..7aa28c3f681 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -580,19 +580,19 @@ void addNurbPointsBezier(Nurb *nu, int number) /* ~~~~~~~~~~~~~~~~~~~~Non Uniform Rational B Spline calculations ~~~~~~~~~~~ */ -static void calcknots(float *knots, const short aantal, const short order, const short flag) +static void calcknots(float *knots, const short tot, const short order, const short flag) { /* knots: number of pnts NOT corrected for cyclic */ - const int t= aantal + order; + const int tot_order= tot + order; float k; int a; switch(flag & (CU_NURB_ENDPOINT|CU_NURB_BEZIER)) { case CU_NURB_ENDPOINT: k= 0.0; - for(a=1;a<=t;a++) { + for(a=1; a <= tot_order; a++) { knots[a-1]= k; - if(a>=order && a<=aantal) k+= 1.0f; + if(a >= order && a <= tot) k+= 1.0f; } break; case CU_NURB_BEZIER: @@ -600,15 +600,15 @@ static void calcknots(float *knots, const short aantal, const short order, const * if this is not enforced, the displist will be corrupt */ if(order==4) { k= 0.34; - for(a=0;a=order && a<=aantal) k+= 0.5f; + for(a=0; a < tot_order; a++) { + if(a >= order && a <= tot) k+= 0.5f; knots[a]= floorf(k); } } @@ -617,7 +617,7 @@ static void calcknots(float *knots, const short aantal, const short order, const } break; default: - for(a=0;aselcol; - aantal= (size-1)/2; + len= (size-1)/2; rc= 0; dirvec[0][0]= 1; @@ -910,7 +910,7 @@ static unsigned int samplerect(unsigned int *buf, int size, unsigned int dontdo) bufmin= buf; bufmax= buf+ size*size; - buf+= aantal*size+ aantal; + buf+= len*size+ len; for(tel=1;tel<=size;tel++) { -- cgit v1.2.3 From af39f2636019e387dc9f572249c09ad9cf9631bc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Aug 2011 05:25:30 +0000 Subject: fix, uvproject modifier wasn't copying the uv layer name, also edit var names from recent commit to better fit with other functions. --- source/blender/blenkernel/intern/curve.c | 16 ++++++++-------- source/blender/modifiers/intern/MOD_uvproject.c | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 7aa28c3f681..eb364af6ff8 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -580,19 +580,19 @@ void addNurbPointsBezier(Nurb *nu, int number) /* ~~~~~~~~~~~~~~~~~~~~Non Uniform Rational B Spline calculations ~~~~~~~~~~~ */ -static void calcknots(float *knots, const short tot, const short order, const short flag) +static void calcknots(float *knots, const short pnts, const short order, const short flag) { /* knots: number of pnts NOT corrected for cyclic */ - const int tot_order= tot + order; + const int pnts_order= pnts + order; float k; int a; switch(flag & (CU_NURB_ENDPOINT|CU_NURB_BEZIER)) { case CU_NURB_ENDPOINT: k= 0.0; - for(a=1; a <= tot_order; a++) { + for(a=1; a <= pnts_order; a++) { knots[a-1]= k; - if(a >= order && a <= tot) k+= 1.0f; + if(a >= order && a <= pnts) k+= 1.0f; } break; case CU_NURB_BEZIER: @@ -600,15 +600,15 @@ static void calcknots(float *knots, const short tot, const short order, const sh * if this is not enforced, the displist will be corrupt */ if(order==4) { k= 0.34; - for(a=0; a < tot_order; a++) { + for(a=0; a < pnts_order; a++) { knots[a]= floorf(k); k+= (1.0f/3.0f); } } else if(order==3) { k= 0.6f; - for(a=0; a < tot_order; a++) { - if(a >= order && a <= tot) k+= 0.5f; + for(a=0; a < pnts_order; a++) { + if(a >= order && a <= pnts) k+= 0.5f; knots[a]= floorf(k); } } @@ -617,7 +617,7 @@ static void calcknots(float *knots, const short tot, const short order, const sh } break; default: - for(a=0; a < tot_order; a++) { + for(a=0; a < pnts_order; a++) { knots[a]= (float)a; } break; diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c index a5d2e0b38c7..922ae8c1e92 100644 --- a/source/blender/modifiers/intern/MOD_uvproject.c +++ b/source/blender/modifiers/intern/MOD_uvproject.c @@ -42,6 +42,7 @@ #include "DNA_object_types.h" #include "BLI_math.h" +#include "BLI_string.h" #include "BLI_uvproject.h" #include "BLI_utildefines.h" @@ -83,6 +84,7 @@ static void copyData(ModifierData *md, ModifierData *target) tumd->aspecty = umd->aspecty; tumd->scalex = umd->scalex; tumd->scaley = umd->scaley; + BLI_strncpy(tumd->uvlayer_name, umd->uvlayer_name, sizeof(umd->uvlayer_name)); } static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md)) -- cgit v1.2.3 From cd793378dbe7b761e22b2c48540ff2afc92e22ad Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Aug 2011 06:50:24 +0000 Subject: fix [#28112] Vertex paint crash --- source/blender/blenkernel/intern/DerivedMesh.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index d9c98bc0200..62b8830de20 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1883,7 +1883,9 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos /* set the DerivedMesh to only copy needed data */ mask= (CustomDataMask)GET_INT_FROM_POINTER(curr->link); - DM_set_only_copy(dm, mask); + /* needMapping check here fixes bug [#28112], otherwise its + * possible that it wont be copied */ + DM_set_only_copy(dm, mask | (needMapping ? CD_MASK_ORIGINDEX : 0)); /* add cloth rest shape key if need */ if(mask & CD_MASK_CLOTH_ORCO) -- cgit v1.2.3 From c965d1d2ccfd57926476cb5c091afa35c6de217f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Aug 2011 08:53:57 +0000 Subject: fix [#28061] Texture (paint) bleeding on edges respect clamp u/v image options. --- source/blender/editors/sculpt_paint/paint_image.c | 26 +++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index c9a6aa87cd0..32004fd4525 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -2187,7 +2187,7 @@ static int IsectPoly2Df_twoside(const float pt[2], float uv[][2], const int tot) /* One of the most important function for projectiopn painting, since it selects the pixels to be added into each bucket. * initialize pixels from this face where it intersects with the bucket_index, optionally initialize pixels for removing seams */ -static void project_paint_face_init(const ProjPaintState *ps, const int thread_index, const int bucket_index, const int face_index, const int image_index, rctf *bucket_bounds, const ImBuf *ibuf) +static void project_paint_face_init(const ProjPaintState *ps, const int thread_index, const int bucket_index, const int face_index, const int image_index, rctf *bucket_bounds, const ImBuf *ibuf, const short clamp_u, const short clamp_v) { /* Projection vars, to get the 3D locations into screen space */ MemArena *arena = ps->arena_mt[thread_index]; @@ -2304,14 +2304,24 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i if (pixel_bounds_array(uv_clip, &bounds_px, ibuf->x, ibuf->y, uv_clip_tot)) { - + + if(clamp_u) { + CLAMP(bounds_px.xmin, 0, ibuf->x); + CLAMP(bounds_px.xmax, 0, ibuf->x); + } + + if(clamp_v) { + CLAMP(bounds_px.ymin, 0, ibuf->y); + CLAMP(bounds_px.ymax, 0, ibuf->y); + } + /* clip face and */ has_isect = 0; for (y = bounds_px.ymin; y < bounds_px.ymax; y++) { //uv[1] = (((float)y) + 0.5f) / (float)ibuf->y; uv[1] = (float)y / ibuf_yf; /* use pixel offset UV coords instead */ - + has_x_isect = 0; for (x = bounds_px.xmin; x < bounds_px.xmax; x++) { //uv[0] = (((float)x) + 0.5f) / ibuf->x; @@ -2630,6 +2640,7 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index LinkNode *node; int face_index, image_index=0; ImBuf *ibuf = NULL; + Image *ima = NULL; MTFace *tf; Image *tpage_last = NULL; @@ -2638,9 +2649,10 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index if (ps->image_tot==1) { /* Simple loop, no context switching */ ibuf = ps->projImages[0].ibuf; - + ima = ps->projImages[0].ima; + for (node = ps->bucketFaces[bucket_index]; node; node= node->next) { - project_paint_face_init(ps, thread_index, bucket_index, GET_INT_FROM_POINTER(node->link), 0, bucket_bounds, ibuf); + project_paint_face_init(ps, thread_index, bucket_index, GET_INT_FROM_POINTER(node->link), 0, bucket_bounds, ibuf, ima->tpageflag & IMA_CLAMP_U, ima->tpageflag & IMA_CLAMP_V); } } else { @@ -2659,14 +2671,14 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index for (image_index=0; image_index < ps->image_tot; image_index++) { if (ps->projImages[image_index].ima == tpage_last) { ibuf = ps->projImages[image_index].ibuf; + ima = ps->projImages[image_index].ima; break; } } } /* context switching done */ - project_paint_face_init(ps, thread_index, bucket_index, face_index, image_index, bucket_bounds, ibuf); - + project_paint_face_init(ps, thread_index, bucket_index, face_index, image_index, bucket_bounds, ibuf, ima->tpageflag & IMA_CLAMP_U, ima->tpageflag & IMA_CLAMP_V); } } -- cgit v1.2.3 From 3e85ec432ef050563d75488eca3049b77497153d Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 1 Aug 2011 11:44:20 +0000 Subject: 3D Audio GSoC: Adds new speaker object type. Notes: * Needs some nice icons * Quickily review by Joshua Leung (5 mins) * Properties UI updated (with help of Thomans Dinges) * Speakers have their own theme color * No real audio functionality yet. * Minor bug regarding lamps/lattices fixed in interface_templates.c I personality tested: * Creation, Deletion, Duplication * Saving, Loading * Library linking (incl. make local) * Tracking * Dope Sheet, Outliner * Animation * Drawing (incl. Theme) --- source/blender/CMakeLists.txt | 1 + source/blender/blenkernel/BKE_main.h | 1 + source/blender/blenkernel/BKE_object.h | 5 + source/blender/blenkernel/intern/anim_sys.c | 14 +- source/blender/blenkernel/intern/depsgraph.c | 2 +- source/blender/blenkernel/intern/idcode.c | 3 +- source/blender/blenkernel/intern/library.c | 18 ++- source/blender/blenkernel/intern/object.c | 99 +++++++++++- source/blender/blenloader/intern/readfile.c | 48 ++++++ source/blender/blenloader/intern/writefile.c | 19 +++ .../editors/animation/anim_channels_defines.c | 84 +++++++++- .../blender/editors/animation/anim_channels_edit.c | 5 + source/blender/editors/animation/anim_filter.c | 22 +++ source/blender/editors/animation/keyframes_draw.c | 1 + source/blender/editors/include/ED_anim_api.h | 2 + source/blender/editors/include/UI_resources.h | 2 + .../editors/interface/interface_templates.c | 4 +- source/blender/editors/interface/resources.c | 3 + source/blender/editors/object/object_add.c | 47 ++++++ source/blender/editors/object/object_intern.h | 1 + source/blender/editors/object/object_ops.c | 1 + source/blender/editors/object/object_relations.c | 16 +- source/blender/editors/sound/sound_ops.c | 4 +- .../editors/space_buttons/buttons_context.c | 8 +- source/blender/editors/space_file/filelist.c | 3 +- source/blender/editors/space_nla/nla_buttons.c | 1 + source/blender/editors/space_nla/nla_channels.c | 1 + .../blender/editors/space_outliner/outliner_draw.c | 3 + .../editors/space_outliner/outliner_tools.c | 2 +- .../blender/editors/space_outliner/outliner_tree.c | 8 + source/blender/editors/space_view3d/drawobject.c | 52 +++++++ source/blender/makesdna/DNA_ID.h | 1 + source/blender/makesdna/DNA_action_types.h | 3 +- source/blender/makesdna/DNA_object_types.h | 2 + source/blender/makesdna/DNA_speaker_types.h | 68 ++++++++ source/blender/makesdna/DNA_userdef_types.h | 2 +- source/blender/makesdna/intern/makesdna.c | 2 + source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/CMakeLists.txt | 1 + source/blender/makesrna/intern/makesrna.c | 1 + source/blender/makesrna/intern/rna_ID.c | 3 + source/blender/makesrna/intern/rna_action.c | 6 + source/blender/makesrna/intern/rna_internal.h | 2 + source/blender/makesrna/intern/rna_main.c | 7 + source/blender/makesrna/intern/rna_main_api.c | 52 +++++++ source/blender/makesrna/intern/rna_object.c | 2 + source/blender/makesrna/intern/rna_speaker.c | 172 +++++++++++++++++++++ source/blender/makesrna/intern/rna_userdef.c | 5 + 48 files changed, 788 insertions(+), 22 deletions(-) create mode 100644 source/blender/makesdna/DNA_speaker_types.h create mode 100644 source/blender/makesrna/intern/rna_speaker.c (limited to 'source/blender') diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt index a073f5083e5..b332cd35402 100644 --- a/source/blender/CMakeLists.txt +++ b/source/blender/CMakeLists.txt @@ -73,6 +73,7 @@ set(SRC_DNA_INC ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_smoke_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sound_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_space_types.h + ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_speaker_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_text_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_texture_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_userdef_types.h diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h index df6a304f0b3..c25882d1dd6 100644 --- a/source/blender/blenkernel/BKE_main.h +++ b/source/blender/blenkernel/BKE_main.h @@ -77,6 +77,7 @@ typedef struct Main { ListBase script; ListBase vfont; ListBase text; + ListBase speaker; ListBase sound; ListBase group; ListBase armature; diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index a6b5c04b5c3..f9e01a524ab 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -88,6 +88,11 @@ void make_local_lamp(struct Lamp *la); void free_camera(struct Camera *ca); void free_lamp(struct Lamp *la); +void *add_speaker(const char *name); +struct Speaker *copy_speaker(struct Speaker *spk); +void make_local_speaker(struct Speaker *spk); +void free_speaker(struct Speaker *spk); + struct Object *add_only_object(int type, const char *name); struct Object *add_object(struct Scene *scene, int type); diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index a3d0377b196..a43cdc8143e 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -85,6 +85,7 @@ short id_type_can_have_animdata (ID *id) case ID_PA: case ID_MA: case ID_TE: case ID_NT: case ID_LA: case ID_CA: case ID_WO: + case ID_SPK: case ID_SCE: { return 1; @@ -787,7 +788,10 @@ void BKE_animdata_main_cb (Main *mainptr, ID_AnimData_Edit_Callback func, void * /* particles */ ANIMDATA_IDS_CB(mainptr->particle.first); - + + /* speakers */ + ANIMDATA_IDS_CB(mainptr->speaker.first); + /* objects */ ANIMDATA_IDS_CB(mainptr->object.first); @@ -865,7 +869,10 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa /* particles */ RENAMEFIX_ANIM_IDS(mainptr->particle.first); - + + /* speakers */ + RENAMEFIX_ANIM_IDS(mainptr->speaker.first); + /* objects */ RENAMEFIX_ANIM_IDS(mainptr->object.first); @@ -2309,6 +2316,9 @@ void BKE_animsys_evaluate_all_animation (Main *main, Scene *scene, float ctime) /* particles */ EVAL_ANIM_IDS(main->particle.first, ADT_RECALC_ANIM); + /* lamps */ + EVAL_ANIM_IDS(main->speaker.first, ADT_RECALC_ANIM); + /* objects */ /* ADT_RECALC_ANIM doesn't need to be supplied here, since object AnimData gets * this tagged by Depsgraph on framechange. This optimisation means that objects diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index e14983a91a5..6083151f23f 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2383,7 +2383,7 @@ static void dag_id_flush_update(Scene *sce, ID *id) if(id) { idtype= GS(id->name); - if(ELEM7(idtype, ID_ME, ID_CU, ID_MB, ID_LA, ID_LT, ID_CA, ID_AR)) { + if(ELEM8(idtype, ID_ME, ID_CU, ID_MB, ID_LA, ID_LT, ID_CA, ID_AR, ID_SPK)) { for(obt=bmain->object.first; obt; obt= obt->id.next) { if(!(ob && obt == ob) && obt->data == id) { obt->recalc |= OB_RECALC_DATA; diff --git a/source/blender/blenkernel/intern/idcode.c b/source/blender/blenkernel/intern/idcode.c index 8c8a693e6e7..e84a2a04ded 100644 --- a/source/blender/blenkernel/intern/idcode.c +++ b/source/blender/blenkernel/intern/idcode.c @@ -73,7 +73,8 @@ static IDType idtypes[]= { { ID_SCE, "Scene", "scenes", IDTYPE_FLAGS_ISLINKABLE}, { ID_SCR, "Screen", "screens", 0}, { ID_SEQ, "Sequence", "sequences", 0}, /* not actually ID data */ - { ID_SO, "Sound", "sounds", IDTYPE_FLAGS_ISLINKABLE}, + { ID_SPK, "Speaker", "speakers", IDTYPE_FLAGS_ISLINKABLE}, + { ID_SO, "Sound", "sounds", IDTYPE_FLAGS_ISLINKABLE}, { ID_TE, "Texture", "textures", IDTYPE_FLAGS_ISLINKABLE}, { ID_TXT, "Text", "texts", IDTYPE_FLAGS_ISLINKABLE}, { ID_VF, "VFont", "fonts", IDTYPE_FLAGS_ISLINKABLE}, diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index a5da248a0eb..85f87992c28 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -65,6 +65,7 @@ #include "DNA_node_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" +#include "DNA_speaker_types.h" #include "DNA_sound_types.h" #include "DNA_text_types.h" #include "DNA_vfont_types.h" @@ -207,6 +208,9 @@ int id_make_local(ID *id, int test) case ID_CA: if(!test) make_local_camera((Camera*)id); return 1; + case ID_SPK: + if(!test) make_local_speaker((Speaker*)id); + return 1; case ID_IP: return 0; /* deprecated */ case ID_KE: @@ -289,6 +293,9 @@ int id_copy(ID *id, ID **newid, int test) case ID_LA: if(!test) *newid= (ID*)copy_lamp((Lamp*)id); return 1; + case ID_SPK: + if(!test) *newid= (ID*)copy_speaker((Speaker*)id); + return 1; case ID_CA: if(!test) *newid= (ID*)copy_camera((Camera*)id); return 1; @@ -439,6 +446,8 @@ ListBase *which_libbase(Main *mainlib, short type) return &(mainlib->text); case ID_SCRIPT: return &(mainlib->script); + case ID_SPK: + return &(mainlib->speaker); case ID_SO: return &(mainlib->sound); case ID_GR: @@ -523,7 +532,8 @@ int set_listbasepointers(Main *main, ListBase **lb) lb[a++]= &(main->latt); lb[a++]= &(main->lamp); lb[a++]= &(main->camera); - + lb[a++]= &(main->speaker); + lb[a++]= &(main->text); lb[a++]= &(main->sound); lb[a++]= &(main->group); @@ -615,6 +625,9 @@ static ID *alloc_libblock_notest(short type) case ID_SCRIPT: //XXX id= MEM_callocN(sizeof(Script), "script"); break; + case ID_SPK: + id= MEM_callocN(sizeof(Speaker), "speaker"); + break; case ID_SO: id= MEM_callocN(sizeof(bSound), "sound"); break; @@ -818,6 +831,9 @@ void free_libblock(ListBase *lb, void *idv) case ID_SCRIPT: //XXX free_script((Script *)id); break; + case ID_SPK: + free_speaker((Speaker *)id); + break; case ID_SO: sound_free((bSound*)id); break; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 862d583bd34..66bf4ea208b 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -54,7 +54,9 @@ #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "DNA_sequence_types.h" +#include "DNA_sound_types.h" #include "DNA_space_types.h" +#include "DNA_speaker_types.h" #include "DNA_view3d_types.h" #include "DNA_world_types.h" @@ -975,6 +977,99 @@ void free_lamp(Lamp *la) la->id.icon_id = 0; } +void *add_speaker(const char *name) +{ + Speaker *spk; + + spk= alloc_libblock(&G.main->speaker, ID_SPK, name); + + spk->attenuation = 1.0f; + spk->cone_angle_inner = 360.0f; + spk->cone_angle_outer = 360.0f; + spk->cone_volume_outer = 1.0f; + spk->distance_max = FLT_MAX; + spk->distance_reference = 1.0f; + spk->flag = 0; + spk->pitch = 1.0f; + spk->sound = NULL; + spk->volume = 1.0f; + spk->volume_max = 1.0f; + spk->volume_min = 0.0f; + + return spk; +} + +Speaker *copy_speaker(Speaker *spk) +{ + Speaker *spkn; + + spkn= copy_libblock(spk); + if(spkn->sound) + spkn->sound->id.us++; + + return spkn; +} + +void make_local_speaker(Speaker *spk) +{ + Main *bmain= G.main; + Object *ob; + int local=0, lib=0; + + /* - only lib users: do nothing + * - only local users: set flag + * - mixed: make copy + */ + + if(spk->id.lib==NULL) return; + if(spk->id.us==1) { + spk->id.lib= NULL; + spk->id.flag= LIB_LOCAL; + new_id(&bmain->speaker, (ID *)spk, NULL); + return; + } + + ob= bmain->object.first; + while(ob) { + if(ob->data==spk) { + if(ob->id.lib) lib= 1; + else local= 1; + } + ob= ob->id.next; + } + + if(local && lib==0) { + spk->id.lib= NULL; + spk->id.flag= LIB_LOCAL; + new_id(&bmain->speaker, (ID *)spk, NULL); + } + else if(local && lib) { + Speaker *spkn= copy_speaker(spk); + spkn->id.us= 0; + + ob= bmain->object.first; + while(ob) { + if(ob->data==spk) { + + if(ob->id.lib==NULL) { + ob->data= spkn; + spkn->id.us++; + spk->id.us--; + } + } + ob= ob->id.next; + } + } +} + +void free_speaker(Speaker *spk) +{ + if(spk->sound) + spk->sound->id.us--; + + BKE_free_animdata((ID *)spk); +} + /* *************************************************** */ static void *add_obdata_from_type(int type) @@ -989,6 +1084,7 @@ static void *add_obdata_from_type(int type) case OB_LAMP: return add_lamp("Lamp"); case OB_LATTICE: return add_lattice("Lattice"); case OB_ARMATURE: return add_armature("Armature"); + case OB_SPEAKER: return add_speaker("Speaker"); case OB_EMPTY: return NULL; default: printf("add_obdata_from_type: Internal error, bad type: %d\n", type); @@ -1008,6 +1104,7 @@ static const char *get_obdata_defname(int type) case OB_LAMP: return "Lamp"; case OB_LATTICE: return "Lattice"; case OB_ARMATURE: return "Armature"; + case OB_SPEAKER: return "Speaker"; case OB_EMPTY: return "Empty"; default: printf("get_obdata_defname: Internal error, bad type: %d\n", type); @@ -1051,7 +1148,7 @@ Object *add_only_object(int type, const char *name) ob->empty_drawtype= OB_PLAINAXES; ob->empty_drawsize= 1.0; - if(type==OB_CAMERA || type==OB_LAMP) { + if(type==OB_CAMERA || type==OB_LAMP || type==OB_SPEAKER) { ob->trackflag= OB_NEGZ; ob->upflag= OB_POSY; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 51cb4cc64ed..0387e260915 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -85,6 +85,7 @@ #include "DNA_scene_types.h" #include "DNA_sequence_types.h" #include "DNA_smoke_types.h" +#include "DNA_speaker_types.h" #include "DNA_sound_types.h" #include "DNA_space_types.h" #include "DNA_vfont_types.h" @@ -5566,6 +5567,37 @@ static void fix_relpaths_library(const char *basepath, Main *main) } } +/* ************ READ SPEAKER ***************** */ + +static void lib_link_speaker(FileData *fd, Main *main) +{ + Speaker *spk; + + spk= main->speaker.first; + while(spk) { + if(spk->id.flag & LIB_NEEDLINK) { + if (spk->adt) lib_link_animdata(fd, &spk->id, spk->adt); + + spk->sound= newlibadr(fd, spk->id.lib, spk->sound); + if (spk->sound) { + spk->sound->id.us++; + } + + spk->id.flag -= LIB_NEEDLINK; + } + spk= spk->id.next; + } +} + +static void direct_link_speaker(FileData *fd, Speaker *spk) +{ + spk->adt= newdataadr(fd, spk->adt); + direct_link_animdata(fd, spk->adt); + + /*spk->sound= newdataadr(fd, spk->sound); + direct_link_sound(fd, spk->sound);*/ +} + /* ************** READ SOUND ******************* */ static void direct_link_sound(FileData *fd, bSound *sound) @@ -5661,6 +5693,7 @@ static const char *dataname(short id_code) case ID_SCR: return "Data from SCR"; case ID_VF: return "Data from VF"; case ID_TXT : return "Data from TXT"; + case ID_SPK: return "Data from SPK"; case ID_SO: return "Data from SO"; case ID_NT: return "Data from NT"; case ID_BR: return "Data from BR"; @@ -5805,6 +5838,9 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID case ID_CA: direct_link_camera(fd, (Camera *)id); break; + case ID_SPK: + direct_link_speaker(fd, (Speaker *)id); + break; case ID_SO: direct_link_sound(fd, (bSound *)id); break; @@ -11796,6 +11832,7 @@ static void lib_link_all(FileData *fd, Main *main) lib_link_latt(fd, main); lib_link_text(fd, main); lib_link_camera(fd, main); + lib_link_speaker(fd, main); lib_link_sound(fd, main); lib_link_group(fd, main); lib_link_armature(fd, main); @@ -12712,6 +12749,14 @@ static void expand_camera(FileData *fd, Main *mainvar, Camera *ca) expand_animdata(fd, mainvar, ca->adt); } +static void expand_speaker(FileData *fd, Main *mainvar, Speaker *spk) +{ + expand_doit(fd, mainvar, spk->sound); + + if (spk->adt) + expand_animdata(fd, mainvar, spk->adt); +} + static void expand_sound(FileData *fd, Main *mainvar, bSound *snd) { expand_doit(fd, mainvar, snd->ipo); // XXX depreceated - old animation system @@ -12774,6 +12819,9 @@ static void expand_main(FileData *fd, Main *mainvar) case ID_CA: expand_camera(fd, mainvar, (Camera *)id); break; + case ID_SPK: + expand_speaker(fd, mainvar,(Speaker *)id); + break; case ID_SO: expand_sound(fd, mainvar, (bSound *)id); break; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index c9e7cd0486e..319657c8968 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -123,6 +123,7 @@ Any case: direct data is ALWAYS after the lib block #include "DNA_smoke_types.h" #include "DNA_space_types.h" #include "DNA_screen_types.h" +#include "DNA_speaker_types.h" #include "DNA_sound_types.h" #include "DNA_text_types.h" #include "DNA_view3d_types.h" @@ -2331,6 +2332,23 @@ static void write_texts(WriteData *wd, ListBase *idbase) mywrite(wd, MYWRITE_FLUSH, 0); } +static void write_speakers(WriteData *wd, ListBase *idbase) +{ + Speaker *spk; + + spk= idbase->first; + while(spk) { + if(spk->id.us>0 || wd->current) { + /* write LibData */ + writestruct(wd, ID_SPK, "Speaker", 1, spk); + if (spk->id.properties) IDP_WriteProperty(spk->id.properties, wd); + + if (spk->adt) write_animdata(wd, spk->adt); + } + spk= spk->id.next; + } +} + static void write_sounds(WriteData *wd, ListBase *idbase) { bSound *sound; @@ -2509,6 +2527,7 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil write_keys (wd, &mainvar->key); write_worlds (wd, &mainvar->world); write_texts (wd, &mainvar->text); + write_speakers (wd, &mainvar->speaker); write_sounds (wd, &mainvar->sound); write_groups (wd, &mainvar->group); write_armatures(wd, &mainvar->armature); diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 5e23b49fc22..4296d404cd3 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -55,6 +55,7 @@ #include "DNA_node_types.h" #include "DNA_world_types.h" #include "DNA_gpencil_types.h" +#include "DNA_speaker_types.h" #include "RNA_access.h" @@ -584,7 +585,9 @@ static int acf_object_icon(bAnimListElem *ale) return ICON_OUTLINER_OB_META; case OB_LATTICE: return ICON_OUTLINER_OB_LATTICE; - case OB_ARMATURE: + case OB_SPEAKER: + return ICON_SPEAKER; + case OB_ARMATURE: return ICON_OUTLINER_OB_ARMATURE; case OB_FONT: return ICON_OUTLINER_OB_FONT; @@ -2088,6 +2091,82 @@ static bAnimChannelType ACF_DSLAT= acf_dslat_setting_ptr /* pointer for setting */ }; +/* Speaker Expander ------------------------------------------- */ + +// TODO: just get this from RNA? +static int acf_dsspk_icon(bAnimListElem *UNUSED(ale)) +{ + return ICON_SPEAKER; +} + +/* get the appropriate flag(s) for the setting when it is valid */ +static int acf_dsspk_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg) +{ + /* clear extra return data first */ + *neg= 0; + + switch (setting) { + case ACHANNEL_SETTING_EXPAND: /* expanded */ + return SPK_DS_EXPAND; + + case ACHANNEL_SETTING_MUTE: /* mute (only in NLA) */ + return ADT_NLA_EVAL_OFF; + + case ACHANNEL_SETTING_VISIBLE: /* visible (only in Graph Editor) */ + *neg= 1; + return ADT_CURVES_NOT_VISIBLE; + + case ACHANNEL_SETTING_SELECT: /* selected */ + return ADT_UI_SELECTED; + + default: /* unsupported */ + return 0; + } +} + +/* get pointer to the setting */ +static void *acf_dsspk_setting_ptr(bAnimListElem *ale, int setting, short *type) +{ + Speaker *spk= (Speaker *)ale->data; + + /* clear extra return data first */ + *type= 0; + + switch (setting) { + case ACHANNEL_SETTING_EXPAND: /* expanded */ + GET_ACF_FLAG_PTR(spk->flag); + + case ACHANNEL_SETTING_SELECT: /* selected */ + case ACHANNEL_SETTING_MUTE: /* muted (for NLA only) */ + case ACHANNEL_SETTING_VISIBLE: /* visible (for Graph Editor only) */ + if (spk->adt) + GET_ACF_FLAG_PTR(spk->adt->flag) + else + return NULL; + + default: /* unsupported */ + return NULL; + } +} + +/* speaker expander type define */ +static bAnimChannelType ACF_DSSPK= +{ + "Speaker Expander", /* type name */ + + acf_generic_dataexpand_color, /* backdrop color */ + acf_generic_dataexpand_backdrop,/* backdrop */ + acf_generic_indention_1, /* indent level */ + acf_generic_basic_offset, /* offset */ + + acf_generic_idblock_name, /* name */ + acf_dsspk_icon, /* icon */ + + acf_generic_dataexpand_setting_valid, /* has setting */ + acf_dsspk_setting_flag, /* flag for setting */ + acf_dsspk_setting_ptr /* pointer for setting */ +}; + /* ShapeKey Entry ------------------------------------------- */ /* name for ShapeKey */ @@ -2370,7 +2449,8 @@ static void ANIM_init_channel_typeinfo_data (void) animchannelTypeInfo[type++]= &ACF_DSMESH; /* Mesh Channel */ animchannelTypeInfo[type++]= &ACF_DSTEX; /* Texture Channel */ animchannelTypeInfo[type++]= &ACF_DSLAT; /* Lattice Channel */ - + animchannelTypeInfo[type++]= &ACF_DSSPK; /* Speaker Channel */ + animchannelTypeInfo[type++]= &ACF_SHAPEKEY; /* ShapeKey */ animchannelTypeInfo[type++]= &ACF_GPD; /* Grease Pencil Datablock */ diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index eee7fb0badd..8331001d98e 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -124,6 +124,7 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int case ANIMTYPE_DSMESH: case ANIMTYPE_DSTEX: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { /* need to verify that this data is valid for now */ if (ale->adt) { @@ -168,6 +169,7 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int case ANIMTYPE_DSARM: case ANIMTYPE_DSMESH: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { /* need to verify that this data is valid for now */ if (ale && ale->adt) { @@ -247,6 +249,7 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype, case ANIMTYPE_DSNTREE: case ANIMTYPE_DSTEX: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { if ((ale->adt) && (ale->adt->flag & ADT_UI_SELECTED)) sel= ACHANNEL_SETFLAG_CLEAR; @@ -336,6 +339,7 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype, case ANIMTYPE_DSNTREE: case ANIMTYPE_DSTEX: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { /* need to verify that this data is valid for now */ if (ale->adt) { @@ -2071,6 +2075,7 @@ static int mouse_anim_channels (bAnimContext *ac, float UNUSED(x), int channel_i case ANIMTYPE_DSNTREE: case ANIMTYPE_DSTEX: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { /* sanity checking... */ if (ale->adt) { diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 047a7763fd8..4927b0f097a 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -67,6 +67,7 @@ #include "DNA_sequence_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" +#include "DNA_speaker_types.h" #include "DNA_world_types.h" #include "DNA_gpencil_types.h" #include "DNA_object_types.h" @@ -646,6 +647,19 @@ static bAnimListElem *make_new_animlistelem (void *data, short datatype, ID *own ale->adt= BKE_animdata_from_id(data); } break; + case ANIMTYPE_DSSPK: + { + Speaker *spk= (Speaker *)data; + AnimData *adt= spk->adt; + + ale->flag= FILTER_SPK_OBJD(spk); + + ale->key_data= (adt) ? adt->action : NULL; + ale->datatype= ALE_ACT; + + ale->adt= BKE_animdata_from_id(data); + } + break; case ANIMTYPE_DSSKEY: { Key *key= (Key *)data; @@ -1608,6 +1622,14 @@ static size_t animdata_filter_ds_obdata (bAnimContext *ac, ListBase *anim_data, expanded= FILTER_LATTICE_OBJD(lt); } break; + case OB_SPEAKER: /* ---------- Speaker ----------- */ + { + Speaker *spk= (Speaker *)ob->data; + + type= ANIMTYPE_DSSPK; + expanded= FILTER_SPK_OBJD(spk); + } + break; } /* add object data animation channels */ diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index b774bc947e4..56bc37709bc 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -59,6 +59,7 @@ #include "DNA_meta_types.h" #include "DNA_node_types.h" #include "DNA_particle_types.h" +#include "DNA_speaker_types.h" #include "DNA_world_types.h" #include "DNA_gpencil_types.h" diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 0b99c256183..3c4ca1a5d97 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -153,6 +153,7 @@ typedef enum eAnim_ChannelType { ANIMTYPE_DSMESH, ANIMTYPE_DSTEX, ANIMTYPE_DSLAT, + ANIMTYPE_DSSPK, ANIMTYPE_SHAPEKEY, @@ -243,6 +244,7 @@ typedef enum eAnimFilter_Flags { #define FILTER_ARM_OBJD(arm) ((arm->flag & ARM_DS_EXPAND)) #define FILTER_MESH_OBJD(me) ((me->flag & ME_DS_EXPAND)) #define FILTER_LATTICE_OBJD(lt) ((lt->flag & LT_DS_EXPAND)) +#define FILTER_SPK_OBJD(spk) ((spk->flag & SPK_DS_EXPAND)) /* Variable use expanders */ #define FILTER_NTREE_DATA(ntree) ((ntree->flag & NTREE_DS_EXPAND)) #define FILTER_TEX_DATA(tex) ((tex->flag & TEX_DS_EXPAND)) diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h index 2311aafbb17..2bc2aac165f 100644 --- a/source/blender/editors/include/UI_resources.h +++ b/source/blender/editors/include/UI_resources.h @@ -204,6 +204,8 @@ enum { TH_STRIP_SELECT, TH_LAMP, + + TH_SPEAKER, TH_NODE, TH_NODE_IN_OUT, diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 3d7d1bf95cc..28bfbfba6c8 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -298,11 +298,13 @@ static const char *template_id_browse_tip(StructRNA *type) case ID_MA: return "Browse Material to be linked"; case ID_TE: return "Browse Texture to be linked"; case ID_IM: return "Browse Image to be linked"; - case ID_LA: return "Browse Lattice Data to be linked"; + case ID_LT: return "Browse Lattice Data to be linked"; + case ID_LA: return "Browse Lamp Data to be linked"; case ID_CA: return "Browse Camera Data to be linked"; case ID_WO: return "Browse World Settings to be linked"; case ID_SCR: return "Choose Screen lay-out"; case ID_TXT: return "Browse Text to be linked"; + case ID_SPK: return "Browse Speaker Data to be linked"; case ID_SO: return "Browse Sound to be linked"; case ID_AR: return "Browse Armature data to be linked"; case ID_AC: return "Browse Action to be linked"; diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 2465c734aa0..1aa2fb391db 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -249,6 +249,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo cp= ts->wire; break; case TH_LAMP: cp= ts->lamp; break; + case TH_SPEAKER: + cp= ts->speaker; break; case TH_SELECT: cp= ts->select; break; case TH_ACTIVE: @@ -584,6 +586,7 @@ void ui_theme_init_default(void) SETCOLF(btheme->tv3d.grid, 0.251, 0.251, 0.251, 1.0); SETCOL(btheme->tv3d.wire, 0x0, 0x0, 0x0, 255); SETCOL(btheme->tv3d.lamp, 0, 0, 0, 40); + SETCOL(btheme->tv3d.speaker, 0, 0, 0, 255); SETCOL(btheme->tv3d.select, 241, 88, 0, 255); SETCOL(btheme->tv3d.active, 255, 170, 64, 255); SETCOL(btheme->tv3d.group, 8, 48, 8, 255); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index f5f97c6a5f6..48e138dfcdc 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -44,6 +44,7 @@ #include "DNA_object_fluidsim.h" #include "DNA_object_force.h" #include "DNA_scene_types.h" +#include "DNA_speaker_types.h" #include "DNA_vfont_types.h" #include "BLI_math.h" @@ -764,6 +765,40 @@ static int group_instance_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } +static int object_speaker_add_exec(bContext *C, wmOperator *op) +{ + Object *ob; + int enter_editmode; + unsigned int layer; + float loc[3], rot[3]; + + object_add_generic_invoke_options(C, op); + if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer)) + return OPERATOR_CANCELLED; + + ob= ED_object_add_type(C, OB_SPEAKER, loc, rot, FALSE, layer); + + return OPERATOR_FINISHED; +} + +void OBJECT_OT_speaker_add(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Add Speaker"; + ot->description = "Add a speaker object to the scene"; + ot->idname= "OBJECT_OT_speaker_add"; + + /* api callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= object_speaker_add_exec; + ot->poll= ED_operator_objectmode; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + ED_object_add_generic_props(ot, FALSE); +} + /* only used as menu */ void OBJECT_OT_group_instance_add(wmOperatorType *ot) { @@ -1600,6 +1635,18 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base id->us--; } break; + case OB_SPEAKER: + // AUD_XXX TODO: always duplicate Speakers on speaker object duplication? + if(dupflag!=0) { + ID_NEW_US2(obn->data ) + else { + obn->data= copy_speaker(obn->data); + didit= 1; + } + id->us--; + } + break; + } /* check if obdata is copied */ diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 801880f0f32..c308d36f838 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -116,6 +116,7 @@ void OBJECT_OT_armature_add(struct wmOperatorType *ot); void OBJECT_OT_lamp_add(struct wmOperatorType *ot); void OBJECT_OT_effector_add(struct wmOperatorType *ot); void OBJECT_OT_camera_add(struct wmOperatorType *ot); +void OBJECT_OT_speaker_add(struct wmOperatorType *ot); void OBJECT_OT_group_instance_add(struct wmOperatorType *ot); void OBJECT_OT_duplicates_make_real(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index ff9b13379a2..8f00f923b84 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -117,6 +117,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_armature_add); WM_operatortype_append(OBJECT_OT_lamp_add); WM_operatortype_append(OBJECT_OT_camera_add); + WM_operatortype_append(OBJECT_OT_speaker_add); WM_operatortype_append(OBJECT_OT_add); WM_operatortype_append(OBJECT_OT_add_named); WM_operatortype_append(OBJECT_OT_effector_add); diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index f21241b6e7a..ab9c69988fe 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -45,6 +45,7 @@ #include "DNA_meta_types.h" #include "DNA_particle_types.h" #include "DNA_scene_types.h" +#include "DNA_speaker_types.h" #include "DNA_world_types.h" #include "DNA_object_types.h" @@ -971,8 +972,8 @@ static int track_set_exec(bContext *C, wmOperator *op) data->tar = obact; ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; - /* Lamp and Camera track differently by default */ - if (ob->type == OB_LAMP || ob->type == OB_CAMERA) + /* Lamp, Camera and Speaker track differently by default */ + if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) data->trackflag = TRACK_nZ; } } @@ -990,8 +991,8 @@ static int track_set_exec(bContext *C, wmOperator *op) data->tar = obact; ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; - /* Lamp and Camera track differently by default */ - if (ob->type == OB_LAMP || ob->type == OB_CAMERA) { + /* Lamp, Camera and Speaker track differently by default */ + if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) { data->reserved1 = TRACK_nZ; data->reserved2 = UP_Y; } @@ -1011,8 +1012,8 @@ static int track_set_exec(bContext *C, wmOperator *op) data->tar = obact; ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; - /* Lamp and Camera track differently by default */ - if (ob->type == OB_LAMP || ob->type == OB_CAMERA) { + /* Lamp, Camera and Speaker track differently by default */ + if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) { data->trackflag = TRACK_nZ; data->lockflag = LOCK_Y; } @@ -1481,6 +1482,9 @@ static void single_obdata_users(Main *bmain, Scene *scene, int flag) ob->data= copy_armature(ob->data); armature_rebuild_pose(ob, ob->data); break; + case OB_SPEAKER: + ob->data= copy_speaker(ob->data); + break; default: if (G.f & G_DEBUG) printf("ERROR single_obdata_users: can't copy %s\n", id->name); diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index f0a0bcff3f3..8744ec5dfd6 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -376,8 +376,8 @@ static int bake_animation_exec(bContext *C, wmOperator *UNUSED(op)) void SOUND_OT_bake_animation(wmOperatorType *ot) { /* identifiers */ - ot->name= "Bake animation"; - ot->description= "Bakes the animation cache so that it's up to date"; + ot->name= "Update animation cache"; + ot->description= "Updates the audio animation cache so that it's up to date"; ot->idname= "SOUND_OT_bake_animation"; /* api callbacks */ diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 8e1a4b2d16c..35500ac9518 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -44,6 +44,7 @@ #include "DNA_node_types.h" #include "DNA_scene_types.h" #include "DNA_world_types.h" +#include "DNA_speaker_types.h" #include "DNA_brush_types.h" #include "BKE_context.h" @@ -188,6 +189,7 @@ static int buttons_context_path_data(ButsContextPath *path, int type) else if(RNA_struct_is_a(ptr->type, &RNA_Lattice) && (type == -1 || type == OB_LATTICE)) return 1; else if(RNA_struct_is_a(ptr->type, &RNA_Camera) && (type == -1 || type == OB_CAMERA)) return 1; else if(RNA_struct_is_a(ptr->type, &RNA_Lamp) && (type == -1 || type == OB_LAMP)) return 1; + else if(RNA_struct_is_a(ptr->type, &RNA_Speaker) && (type == -1 || type == OB_SPEAKER)) return 1; /* try to get an object in the path, no pinning supported here */ else if(buttons_context_path_object(path)) { ob= path->ptr[path->len-1].data; @@ -648,7 +650,7 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) const char *buttons_context_dir[] = { "world", "object", "mesh", "armature", "lattice", "curve", - "meta_ball", "lamp", "camera", "material", "material_slot", + "meta_ball", "lamp", "speaker", "camera", "material", "material_slot", "texture", "texture_slot", "bone", "edit_bone", "pose_bone", "particle_system", "particle_system_editable", "cloth", "soft_body", "fluid", "smoke", "collision", "brush", NULL}; @@ -701,6 +703,10 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r set_pointer_type(path, result, &RNA_Camera); return 1; } + else if(CTX_data_equals(member, "speaker")) { + set_pointer_type(path, result, &RNA_Speaker); + return 1; + } else if(CTX_data_equals(member, "material")) { set_pointer_type(path, result, &RNA_Material); return 1; diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 6736230e84f..e245e19ce96 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -1127,7 +1127,7 @@ void filelist_from_main(struct FileList *filelist) if( filelist->dir[0]==0) { /* make directories */ - filelist->numfiles= 23; + filelist->numfiles= 24; filelist->filelist= (struct direntry *)malloc(filelist->numfiles * sizeof(struct direntry)); for(a=0; anumfiles; a++) { @@ -1157,6 +1157,7 @@ void filelist_from_main(struct FileList *filelist) filelist->filelist[20].relname= BLI_strdup("Armature"); filelist->filelist[21].relname= BLI_strdup("Action"); filelist->filelist[22].relname= BLI_strdup("NodeTree"); + filelist->filelist[23].relname= BLI_strdup("Speaker"); filelist_sort(filelist, FILE_SORT_ALPHA); } else { diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index 677e818351d..b6de8e7fb59 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -146,6 +146,7 @@ static int nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSSPK: { /* for these channels, we only do AnimData */ if (ale->id && ale->adt) { diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index 5e81148c231..08a4de81013 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -180,6 +180,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho case ANIMTYPE_DSMESH: case ANIMTYPE_DSTEX: case ANIMTYPE_DSLAT: + case ANIMTYPE_DSSPK: { /* sanity checking... */ if (ale->adt) { diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 40a9f80e712..c2dda694a1d 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -1080,6 +1080,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; case OB_SURF: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; + case OB_SPEAKER: + tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; case OB_EMPTY: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; @@ -1123,6 +1125,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; case ID_IM: tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; + case ID_SPK: case ID_SO: tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; case ID_AR: diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 57ee2fe00ef..4525ea9c8d9 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -135,7 +135,7 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, break; case ID_ME: case ID_CU: case ID_MB: case ID_LT: - case ID_LA: case ID_AR: case ID_CA: + case ID_LA: case ID_AR: case ID_CA: case ID_SPK: case ID_MA: case ID_TE: case ID_IP: case ID_IM: case ID_SO: case ID_KE: case ID_WO: case ID_AC: case ID_NLA: case ID_TXT: case ID_GR: diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index 12d1865e28c..0c6ef67d603 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -50,6 +50,7 @@ #include "DNA_scene_types.h" #include "DNA_world_types.h" #include "DNA_sequence_types.h" +#include "DNA_speaker_types.h" #include "DNA_object_types.h" #include "BLI_blenlib.h" @@ -714,6 +715,13 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor } } break; + case ID_SPK: + { + Speaker *spk= (Speaker *)id; + + outliner_add_element(soops, &te->subtree, spk->adt, te, TSE_ANIM_DATA, 0); + } + break; case ID_WO: { World *wrld= (World *)id; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index e6889f4563f..86d3ddc3353 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -45,6 +45,7 @@ #include "DNA_meta_types.h" #include "DNA_scene_types.h" #include "DNA_smoke_types.h" +#include "DNA_speaker_types.h" #include "DNA_world_types.h" #include "DNA_armature_types.h" @@ -1491,6 +1492,52 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob } } +/* flag similar to draw_object() */ +static void drawspeaker(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int flag) +{ + //Speaker *spk = ob->data; + + float vec[3]; + int i, j; + + glEnable(GL_BLEND); + + for(j = 0; j < 3; j++) + { + vec[2] = .25f * j -.125f; + + glBegin(GL_LINE_LOOP); + for(i = 0; i < 16; i++) + { + vec[0] = cos(M_PI * i / 8.0f) * (j == 0 ? .5f : .25f); + vec[1] = sin(M_PI * i / 8.0f) * (j == 0 ? .5f : .25f); + glVertex3fv(vec); + } + glEnd(); + } + + for(j = 0; j < 4; j++) + { + vec[0] = (((j + 1) % 2) * (j - 1)) * .5f; + vec[1] = ((j % 2) * (j - 2)) * .5f; + glBegin(GL_LINE_STRIP); + for(i = 0; i < 3; i++) + { + if(i == 1) + { + vec[0] *= .5f; + vec[1] *= .5f; + } + + vec[2] = .25f * i -.125f; + glVertex3fv(vec); + } + glEnd(); + } + + glDisable(GL_BLEND); +} + static void lattice_draw_verts(Lattice *lt, DispList *dl, short sel) { BPoint *bp = lt->def; @@ -5759,6 +5806,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) else { if(ob->type==OB_LAMP) UI_ThemeColor(TH_LAMP); + else if(ob->type==OB_SPEAKER) UI_ThemeColor(TH_SPEAKER); else UI_ThemeColor(TH_WIRE); if((scene->basact)==base) { @@ -6006,6 +6054,10 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0 || (rv3d->persp==RV3D_CAMOB && v3d->camera==ob)) /* special exception for active camera */ drawcamera(scene, v3d, rv3d, ob, flag); break; + case OB_SPEAKER: + if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) + drawspeaker(scene, v3d, rv3d, ob, flag); + break; case OB_LATTICE: if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { drawlattice(scene, v3d, ob); diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 4cf9f47041b..8fd9f49cd0a 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -178,6 +178,7 @@ typedef struct PreviewImage { #define ID_SCRN MAKE_ID2('S', 'N') /* (depreciated?) */ #define ID_VF MAKE_ID2('V', 'F') /* VectorFont */ #define ID_TXT MAKE_ID2('T', 'X') /* Text */ +#define ID_SPK MAKE_ID2('S', 'K') /* Speaker */ #define ID_SO MAKE_ID2('S', 'O') /* Sound */ #define ID_GR MAKE_ID2('G', 'R') /* Group */ #define ID_ID MAKE_ID2('I', 'D') /* (internal use only) */ diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 3ead485e10a..88e67864456 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -552,6 +552,7 @@ typedef enum eDopeSheet_FilterFlag { ADS_FILTER_NOARM = (1<<18), ADS_FILTER_NONTREE = (1<<19), ADS_FILTER_NOTEX = (1<<20), + ADS_FILTER_NOSPK = (1<<21), /* NLA-specific filters */ ADS_FILTER_NLA_NOACT = (1<<25), /* if the AnimData block has no NLA data, don't include to just show Action-line */ @@ -561,7 +562,7 @@ typedef enum eDopeSheet_FilterFlag { ADS_FILTER_BY_FCU_NAME = (1<<27), /* for F-Curves, filter by the displayed name (i.e. to isolate all Location curves only) */ /* combination filters (some only used at runtime) */ - ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM|ADS_FILTER_NOMAT|ADS_FILTER_NOLAM|ADS_FILTER_NOCUR|ADS_FILTER_NOPART|ADS_FILTER_NOARM) + ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM|ADS_FILTER_NOMAT|ADS_FILTER_NOLAM|ADS_FILTER_NOCUR|ADS_FILTER_NOPART|ADS_FILTER_NOARM|ADS_FILTER_NOSPK) } eDopeSheet_FilterFlag; /* DopeSheet general flags */ diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index dfc7d42793d..ffa82092ef1 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -306,6 +306,8 @@ typedef struct DupliObject { #define OB_LAMP 10 #define OB_CAMERA 11 +#define OB_SPEAKER 12 + // #define OB_WAVE 21 #define OB_LATTICE 22 diff --git a/source/blender/makesdna/DNA_speaker_types.h b/source/blender/makesdna/DNA_speaker_types.h new file mode 100644 index 00000000000..50cb62c79e5 --- /dev/null +++ b/source/blender/makesdna/DNA_speaker_types.h @@ -0,0 +1,68 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Jörg Müller. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#ifndef DNA_SPEAKER_TYPES_H +#define DNA_SPEAKER_TYPES_H + +/** \file DNA_speaker_types.h + * \ingroup DNA + */ + +#include "DNA_ID.h" + +struct AnimData; +struct bSound; + +typedef struct Speaker { + ID id; + struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */ + + struct bSound *sound; + + short flag; + short pad1[3]; + + // not animatable properties + float volume_max; + float volume_min; + float distance_max; + float distance_reference; + float attenuation; + float cone_angle_outer; + float cone_angle_inner; + float cone_volume_outer; + + // animatable properties + float volume; + float pitch; +} Speaker; + +/* **************** SPEAKER ********************* */ + +/* flag */ +#define SPK_DS_EXPAND (1<<0) +#define SPK_MUTED (1<<1) +#define SPK_RELATIVE (1<<2) + +#endif /* DNA_SPEAKER_TYPES_H */ + diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 4757c112b09..4cf744a7878 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -197,7 +197,7 @@ typedef struct ThemeSpace { char grid[4]; char wire[4], select[4]; - char lamp[4]; + char lamp[4], speaker[4], pad2[4]; char active[4], group[4], group_active[4], transform[4]; char vertex[4], vertex_select[4]; char edge[4], edge_select[4]; diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index 80299d44a78..16d59356d25 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -132,6 +132,7 @@ const char *includefiles[] = { "DNA_anim_types.h", "DNA_boid_types.h", "DNA_smoke_types.h", + "DNA_speaker_types.h", // empty string to indicate end of includefiles "" @@ -1196,4 +1197,5 @@ int main(int argc, char ** argv) #include "DNA_anim_types.h" #include "DNA_boid_types.h" #include "DNA_smoke_types.h" +#include "DNA_speaker_types.h" /* end of list */ diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index f5d73bddc3b..2add02a7f4e 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -463,6 +463,7 @@ extern StructRNA RNA_SpaceTimeline; extern StructRNA RNA_SpaceUVEditor; extern StructRNA RNA_SpaceUserPreferences; extern StructRNA RNA_SpaceView3D; +extern StructRNA RNA_Speaker; extern StructRNA RNA_SpeedControlSequence; extern StructRNA RNA_Spline; extern StructRNA RNA_SplineIKConstraint; diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index cb593e7deab..7d7c5532fb5 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -78,6 +78,7 @@ set(DEFSRC rna_smoke.c rna_sound.c rna_space.c + rna_speaker.c rna_test.c rna_text.c rna_texture.c diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 7da538e171b..feb926fd28e 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2461,6 +2461,7 @@ static RNAProcessItem PROCESS_ITEMS[]= { {"rna_sequencer.c", "rna_sequencer_api.c", RNA_def_sequencer}, {"rna_smoke.c", NULL, RNA_def_smoke}, {"rna_space.c", NULL, RNA_def_space}, + {"rna_speaker.c", NULL, RNA_def_speaker}, {"rna_test.c", NULL, RNA_def_test}, {"rna_text.c", NULL, RNA_def_text}, {"rna_timeline.c", NULL, RNA_def_timeline_marker}, diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 3ce84e3a19f..48b5592dbfc 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -66,6 +66,7 @@ EnumPropertyItem id_type_items[] = { {ID_PA, "PARTICLE", ICON_PARTICLE_DATA, "Particle", ""}, {ID_SCE, "SCENE", ICON_SCENE_DATA, "Scene", ""}, {ID_SCR, "SCREEN", ICON_SPLITSCREEN, "Screen", ""}, + {ID_SPK, "SPEAKER", ICON_SPEAKER, "Speaker", ""}, {ID_SO, "SOUND", ICON_PLAY_AUDIO, "Sound", ""}, {ID_TXT, "TEXT", ICON_TEXT, "Text", ""}, {ID_TE, "TEXTURE", ICON_TEXTURE_DATA, "Texture", ""}, @@ -136,6 +137,7 @@ short RNA_type_to_ID_code(StructRNA *type) if(RNA_struct_is_a(type, &RNA_ParticleSettings)) return ID_PA; if(RNA_struct_is_a(type, &RNA_Scene)) return ID_SCE; if(RNA_struct_is_a(type, &RNA_Screen)) return ID_SCR; + if(RNA_struct_is_a(type, &RNA_Speaker)) return ID_SPK; if(RNA_struct_is_a(type, &RNA_Sound)) return ID_SO; if(RNA_struct_is_a(type, &RNA_Text)) return ID_TXT; if(RNA_struct_is_a(type, &RNA_Texture)) return ID_TE; @@ -169,6 +171,7 @@ StructRNA *ID_code_to_RNA_type(short idcode) case ID_PA: return &RNA_ParticleSettings; case ID_SCE: return &RNA_Scene; case ID_SCR: return &RNA_Screen; + case ID_SPK: return &RNA_Speaker; case ID_SO: return &RNA_Sound; case ID_TXT: return &RNA_Text; case ID_TE: return &RNA_Texture; diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 525868259a5..31a9d57bc93 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -416,6 +416,12 @@ static void rna_def_dopesheet(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data"); RNA_def_property_ui_icon(prop, ICON_NODETREE, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL); + + prop= RNA_def_property(srna, "show_speakers", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSPK); + RNA_def_property_ui_text(prop, "Display Speaker", "Include visualization of Speaker related Animation data"); + RNA_def_property_ui_icon(prop, ICON_SPEAKER, 0); + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL); } static void rna_def_action_group(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 9175806e2bb..f0028fb331c 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -168,6 +168,7 @@ void RNA_def_sensor(struct BlenderRNA *brna); void RNA_def_sequencer(struct BlenderRNA *brna); void RNA_def_smoke(struct BlenderRNA *brna); void RNA_def_space(struct BlenderRNA *brna); +void RNA_def_speaker(struct BlenderRNA *brna); void RNA_def_test(struct BlenderRNA *brna); void RNA_def_text(struct BlenderRNA *brna); void RNA_def_texture(struct BlenderRNA *brna); @@ -279,6 +280,7 @@ void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop); +void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop); void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop); diff --git a/source/blender/makesrna/intern/rna_main.c b/source/blender/makesrna/intern/rna_main.c index bb13a3b1bf1..021aa9660ed 100644 --- a/source/blender/makesrna/intern/rna_main.c +++ b/source/blender/makesrna/intern/rna_main.c @@ -187,6 +187,12 @@ static void rna_Main_text_begin(CollectionPropertyIterator *iter, PointerRNA *pt rna_iterator_listbase_begin(iter, &bmain->text, NULL); } +static void rna_Main_speaker_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) +{ + Main *bmain= (Main*)ptr->data; + rna_iterator_listbase_begin(iter, &bmain->speaker, NULL); +} + static void rna_Main_sound_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) { Main *bmain= (Main*)ptr->data; @@ -297,6 +303,7 @@ void RNA_def_main(BlenderRNA *brna) {"shape_keys", "Key", "rna_Main_key_begin", "Shape Keys", "Shape Key datablocks.", NULL}, {"scripts", "ID", "rna_Main_script_begin", "Scripts", "Script datablocks (DEPRECATED).", NULL}, {"texts", "Text", "rna_Main_text_begin", "Texts", "Text datablocks.", RNA_def_main_texts}, + {"speakers", "Speaker", "rna_Main_speaker_begin", "Speakers", "Speaker datablocks.", RNA_def_main_speakers}, {"sounds", "Sound", "rna_Main_sound_begin", "Sounds", "Sound datablocks.", RNA_def_main_sounds}, {"armatures", "Armature", "rna_Main_armature_begin", "Armatures", "Armature datablocks.", RNA_def_main_armatures}, {"actions", "Action", "rna_Main_action_begin", "Actions", "Action datablocks.", RNA_def_main_actions}, diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 8ac620c2fcf..7b951294aee 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -71,6 +71,7 @@ #include "DNA_material_types.h" #include "DNA_mesh_types.h" #include "DNA_object_types.h" +#include "DNA_speaker_types.h" #include "DNA_text_types.h" #include "DNA_texture_types.h" #include "DNA_group_types.h" @@ -147,6 +148,9 @@ Object *rna_Main_objects_new(Main *UNUSED(bmain), ReportList *reports, const cha case ID_LA: type= OB_LAMP; break; + case ID_SPK: + type= OB_SPEAKER; + break; case ID_CA: type= OB_CAMERA; break; @@ -406,6 +410,22 @@ void rna_Main_groups_remove(Main *bmain, Group *group) /* XXX python now has invalid pointer? */ } +Speaker *rna_Main_speakers_new(Main *UNUSED(bmain), const char *name) +{ + Speaker *speaker= add_speaker(name); + id_us_min(&speaker->id); + return speaker; +} +void rna_Main_speakers_remove(Main *bmain, ReportList *reports, Speaker *speaker) +{ + if(ID_REAL_USERS(speaker) <= 0) + free_libblock(&bmain->speaker, speaker); + else + BKE_reportf(reports, RPT_ERROR, "Speaker \"%s\" must have zero users to be removed, found %d.", speaker->id.name+2, ID_REAL_USERS(speaker)); + + /* XXX python now has invalid pointer? */ +} + Text *rna_Main_texts_new(Main *UNUSED(bmain), const char *name) { return add_empty_text(name); @@ -502,6 +522,7 @@ void rna_Main_groups_tag(Main *bmain, int value) { tag_main_lb(&bmain->group, va void rna_Main_shape_keys_tag(Main *bmain, int value) { tag_main_lb(&bmain->key, value); } void rna_Main_scripts_tag(Main *bmain, int value) { tag_main_lb(&bmain->script, value); } void rna_Main_texts_tag(Main *bmain, int value) { tag_main_lb(&bmain->text, value); } +void rna_Main_speakers_tag(Main *bmain, int value) { tag_main_lb(&bmain->speaker, value); } void rna_Main_sounds_tag(Main *bmain, int value) { tag_main_lb(&bmain->sound, value); } void rna_Main_armatures_tag(Main *bmain, int value) { tag_main_lb(&bmain->armature, value); } void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, value); } @@ -1076,6 +1097,37 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); } + +void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) +{ + StructRNA *srna; + FunctionRNA *func; + PropertyRNA *parm; + + RNA_def_property_srna(cprop, "BlendDataSpeakers"); + srna= RNA_def_struct(brna, "BlendDataSpeakers", NULL); + RNA_def_struct_sdna(srna, "Main"); + RNA_def_struct_ui_text(srna, "Main Speakers", "Collection of speakers"); + + func= RNA_def_function(srna, "new", "rna_Main_speakers_new"); + RNA_def_function_ui_description(func, "Add a new speaker to the main database"); + parm= RNA_def_string(func, "name", "Speaker", 0, "", "New name for the datablock."); + RNA_def_property_flag(parm, PROP_REQUIRED); + /* return type */ + parm= RNA_def_pointer(func, "speaker", "Speaker", "", "New speaker datablock."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "remove", "rna_Main_speakers_remove"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + RNA_def_function_ui_description(func, "Remove a speaker from the current blendfile."); + parm= RNA_def_pointer(func, "speaker", "Speaker", "", "Speaker to remove."); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); + + func= RNA_def_function(srna, "tag", "rna_Main_speakers_tag"); + parm= RNA_def_boolean(func, "value", 0, "Value", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); +} + void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 76bbfcbed41..3371f194e6e 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -115,6 +115,7 @@ EnumPropertyItem object_type_items[] = { {0, "", 0, NULL, NULL}, {OB_CAMERA, "CAMERA", 0, "Camera", ""}, {OB_LAMP, "LAMP", 0, "Lamp", ""}, + {OB_SPEAKER, "SPEAKER", 0, "Speaker", ""}, {0, NULL, 0, NULL, NULL}}; EnumPropertyItem object_type_curve_items[] = { @@ -365,6 +366,7 @@ static StructRNA *rna_Object_data_typef(PointerRNA *ptr) case OB_CAMERA: return &RNA_Camera; case OB_LATTICE: return &RNA_Lattice; case OB_ARMATURE: return &RNA_Armature; + case OB_SPEAKER: return &RNA_Speaker; default: return &RNA_ID; } } diff --git a/source/blender/makesrna/intern/rna_speaker.c b/source/blender/makesrna/intern/rna_speaker.c new file mode 100644 index 00000000000..60208de5aa5 --- /dev/null +++ b/source/blender/makesrna/intern/rna_speaker.c @@ -0,0 +1,172 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Jörg Müller. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/makesrna/intern/rna_speaker.c + * \ingroup RNA + */ + + +#include + +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "rna_internal.h" + +#include "DNA_speaker_types.h" +#include "DNA_sound_types.h" + +#ifdef RNA_RUNTIME + +#include "MEM_guardedalloc.h" + +#include "BKE_depsgraph.h" +#include "BKE_main.h" + +#include "WM_api.h" +#include "WM_types.h" + + +#else + +static void rna_def_speaker(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "Speaker", "ID"); + RNA_def_struct_ui_text(srna, "Speaker", "Speaker datablock for 3D audio speaker objects"); + RNA_def_struct_ui_icon(srna, ICON_SPEAKER); + + prop= RNA_def_property(srna, "muted", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SPK_MUTED); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, "Mute", "Mutes the speaker."); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + /* This shouldn't be changed actually, hiding it! + prop= RNA_def_property(srna, "relative", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SPK_RELATIVE); + RNA_def_property_ui_text(prop, "Relative", "Whether the source is relative to the camera or not."); + // RNA_def_property_update(prop, 0, "rna_Speaker_update");*/ + + prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "sound"); + RNA_def_property_struct_type(prop, "Sound"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this speaker."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_sound_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "volume_max", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "volume_max"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Maximum Volume", "Maximum volume, no matter how near the object is."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_volume_max_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "volume_min", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "volume_min"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Minimum Volume", "Minimum volume, no matter how far away the object is."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_volume_min_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "distance_max", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "distance_max"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, FLT_MAX); + RNA_def_property_ui_text(prop, "Maximum Distance", "Maximum distance for volume calculation, no matter how far away the object is."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_distance_max_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "distance_reference", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "distance_reference"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, FLT_MAX); + RNA_def_property_ui_text(prop, "Reference Distance", "Reference distance at which volume is 100 %."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_distance_reference_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "attenuation", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "attenuation"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, FLT_MAX); + RNA_def_property_ui_text(prop, "Attenuation", "How strong the distance affects volume, depending on distance model."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_attenuation_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "cone_angle_outer", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cone_angle_outer"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, 360.0f); + RNA_def_property_ui_text(prop, "Outer Cone Angle", "Outer angle of the cone in degrees, outside this cone the volume is the outer cone volume, between inner and outer cone the volume is interpolated."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_cone_angle_outer_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "cone_angle_inner", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cone_angle_inner"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, 360.0f); + RNA_def_property_ui_text(prop, "Inner Cone Angle", "Inner angle of the cone in degrees, inside the cone the volume is 100 %."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_cone_angle_inner_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "cone_volume_outer", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cone_volume_outer"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Outer Cone Volume", "Volume outside the outer cone."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_cone_volume_outer_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "volume"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Volume", "How loud the sound is."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_volume_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + prop= RNA_def_property(srna, "pitch", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "pitch"); + RNA_def_property_range(prop, 0.1f, 10.0f); + RNA_def_property_ui_text(prop, "Pitch", "Playback pitch of the sound."); + // RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_pitch_set", NULL); + // RNA_def_property_update(prop, 0, "rna_Speaker_update"); + + /* common */ + rna_def_animdata_common(srna); +} + + +void RNA_def_speaker(BlenderRNA *brna) +{ + rna_def_speaker(brna); +} + +#endif + diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 4a4b712ca40..36a6762074c 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -919,6 +919,11 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Lamp", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); + prop= RNA_def_property(srna, "speaker", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Speaker", ""); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + prop= RNA_def_property(srna, "object_selected", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "select"); RNA_def_property_array(prop, 3); -- cgit v1.2.3 From db494472ac02ff73dbc0984940e7758321e5642d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 02:28:37 +0000 Subject: don't include fcurve modifiers when getting an actions frame range. could too easily give a range of 600,000 which would make exporters hang. --- source/blender/makesrna/intern/rna_action.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 7fdb96fda6e..cfedee3c6cd 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -191,8 +191,9 @@ static void rna_Action_active_pose_marker_index_range(PointerRNA *ptr, int *min, static void rna_Action_frame_range_get(PointerRNA *ptr,float *values) -{ - calc_action_range(ptr->id.data, values, values+1, 1); +{ /* don't include modifiers because they too easily can have very large + * ranges: MINAFRAMEF to MAXFRAMEF. */ + calc_action_range(ptr->id.data, values, values+1, FALSE); } -- cgit v1.2.3 From f5cff8ad37edbb46f155e768a07ff6785938f1b9 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Tue, 2 Aug 2011 05:49:11 +0000 Subject: BGE Animations: Fixing a crash when an fcurve actuator is found, but the object doesn't have animation data (adt). --- source/blender/blenloader/intern/readfile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0387e260915..18b461eb31d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11752,7 +11752,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) aa->end = ia->end; strcpy(aa->name, ia->name); strcpy(aa->frameProp, ia->frameProp); - aa->act = ob->adt->action; + if (ob->adt) + aa->act = ob->adt->action; // Get rid of the old actuator MEM_freeN(ia); -- cgit v1.2.3 From fcd7d2b486f2435907423188ffdfe2840c966b0b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 05:52:27 +0000 Subject: NDOF related edits - fix for building without NDOF on X11 - quiet some warnings --- source/blender/editors/space_image/image_ops.c | 2 +- source/blender/editors/space_view3d/view3d_edit.c | 4 ++-- source/blender/windowmanager/intern/wm_operators.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 204d5dfb1b1..a7c90bb0aed 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -445,7 +445,7 @@ void IMAGE_OT_view_zoom(wmOperatorType *ot) * that explains the negative signs in the code below */ -static int view_ndof_invoke(bContext *C, wmOperator *op, wmEvent *event) +static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) { SpaceImage *sima= CTX_wm_space_image(C); ARegion *ar= CTX_wm_region(C); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 94224698063..09e703d6ce0 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -968,7 +968,7 @@ void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) q[3] = scale * z; } -static int ndof_orbit_invoke(bContext *C, wmOperator *op, wmEvent *event) +static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) // -- "orbit" navigation (trackball/turntable) // -- zooming // -- panning in rotationally-locked views @@ -1118,7 +1118,7 @@ void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot) ot->flag = 0; } -static int ndof_pan_invoke(bContext *C, wmOperator *op, wmEvent *event) +static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) // -- "pan" navigation // -- zoom or dolly? { diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index d813fd913ab..d9c3300fcef 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1411,7 +1411,7 @@ static void WM_OT_search_menu(wmOperatorType *ot) ot->poll= wm_search_menu_poll; } -static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) +static int wm_ndof_menu_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { uiPupMenuInvoke(C,"VIEW3D_MT_ndof_settings"); -- cgit v1.2.3 From ed306416f5db7516be502b69b677e90a332c3b91 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 06:40:40 +0000 Subject: replace WM_OT_ndof_menu with a key->menu assignment. --- source/blender/windowmanager/intern/wm_operators.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index d9c3300fcef..7dc4bfb65a6 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1411,22 +1411,6 @@ static void WM_OT_search_menu(wmOperatorType *ot) ot->poll= wm_search_menu_poll; } -static int wm_ndof_menu_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) -{ - uiPupMenuInvoke(C,"VIEW3D_MT_ndof_settings"); - - return OPERATOR_FINISHED; // <-- correct? - return OPERATOR_CANCELLED; // <-- correct? -} - -static void WM_OT_ndof_menu(wmOperatorType *ot) -{ - ot->name = "NDOF Menu"; - ot->idname = "WM_OT_ndof_menu"; - - ot->invoke = wm_ndof_menu_invoke; -} - static int wm_call_menu_exec(bContext *C, wmOperator *op) { char idname[BKE_ST_MAXNAME]; @@ -3517,7 +3501,6 @@ void wm_operatortype_init(void) WM_operatortype_append(WM_OT_debug_menu); WM_operatortype_append(WM_OT_splash); WM_operatortype_append(WM_OT_search_menu); - WM_operatortype_append(WM_OT_ndof_menu); WM_operatortype_append(WM_OT_call_menu); WM_operatortype_append(WM_OT_radial_control); WM_operatortype_append(WM_OT_ndof_sensitivity_change); @@ -3743,7 +3726,7 @@ void wm_window_keymap(wmKeyConfig *keyconf) /* menus that can be accessed anywhere in blender */ WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "WM_OT_ndof_menu", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); /* Space switching */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F2KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was DXF export */ -- cgit v1.2.3 From 70b4758ff8756a55a1c88156a852b80a0d3c2ef9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 07:08:22 +0000 Subject: Made wmNDOFMotionData use a vector rather then xyz members, makes it nicer to use with math functions. ndof_to_angle_axis and ndof_to_quat now use math functions. --- source/blender/editors/space_image/image_ops.c | 6 +-- source/blender/editors/space_view3d/view3d_edit.c | 63 +++++++--------------- source/blender/editors/space_view3d/view3d_fly.c | 8 +-- source/blender/editors/transform/transform_ops.c | 6 +-- source/blender/windowmanager/WM_types.h | 4 +- .../blender/windowmanager/intern/wm_event_system.c | 12 ++--- 6 files changed, 37 insertions(+), 62 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index a7c90bb0aed..6e84c1a7f0c 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -461,8 +461,8 @@ static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) const float zoom_sensitivity = 0.5f; const float pan_sensitivity = 300.f; - float pan_x = pan_sensitivity * dt * ndof->tx / sima->zoom; - float pan_y = pan_sensitivity * dt * ndof->ty / sima->zoom; + float pan_x = pan_sensitivity * dt * ndof->tvec[0] / sima->zoom; + float pan_y = pan_sensitivity * dt * ndof->tvec[1] / sima->zoom; /* "mouse zoom" factor = 1 + (dx + dy) / 300 * what about "ndof zoom" factor? should behave like this: @@ -470,7 +470,7 @@ static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) * move forward -> factor > 1 * move backward -> factor < 1 */ - float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->tz; + float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->tvec[2]; sima_zoom_set_factor(sima, ar, zoom_factor); sima->xof += pan_x; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 09e703d6ce0..8d77aeaea1b 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -931,42 +931,18 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) // NDOF utility functions // (should these functions live in this file?) float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]) - { - const float x = ndof->rx; - const float y = ndof->ry; - const float z = ndof->rz; - - float angular_velocity = sqrtf(x*x + y*y + z*z); - float angle = ndof->dt * angular_velocity; - - float scale = 1.f / angular_velocity; - - // normalize - axis[0] = scale * x; - axis[1] = scale * y; - axis[2] = scale * z; - - return angle; - } +{ + return ndof->dt * normalize_v3_v3(axis, ndof->rvec); +} void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) - { - const float x = ndof->rx; - const float y = ndof->ry; - const float z = ndof->rz; - - float angular_velocity = sqrtf(x*x + y*y + z*z); - float angle = ndof->dt * angular_velocity; - - // combined scaling factor -- normalize axis while converting to quaternion - float scale = sin(0.5f * angle) / angular_velocity; +{ + float axis[3]; + float angle; - // convert axis-angle to quaternion - q[0] = cos(0.5f * angle); - q[1] = scale * x; - q[2] = scale * y; - q[3] = scale * z; - } + angle= ndof_to_angle_axis(ndof, axis); + axis_angle_to_quat(q, axis, angle); +} static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) // -- "orbit" navigation (trackball/turntable) @@ -987,7 +963,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event const float pan_sensitivity = 1.f; // rather have bool, but... - int has_rotation = rv3d->viewlock != RV3D_LOCKED && (ndof->rx || ndof->ry || ndof->rz); + int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec); float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); @@ -998,19 +974,19 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); #endif - if (ndof->tz) { + if (ndof->tvec[2]) { // Zoom! // velocity should be proportional to the linear velocity attained by rotational motion of same strength // [got that?] // proportional to arclength = radius * angle - float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tvec[2]; rv3d->dist += zoom_distance; } if (rv3d->viewlock == RV3D_LOCKED) { /* rotation not allowed -- explore panning options instead */ - float pan_vec[3] = {ndof->tx, ndof->ty, 0}; + float pan_vec[3] = {ndof->tvec[0], ndof->tvec[1], 0.0f}; mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); /* transform motion from view to world coordinates */ @@ -1072,7 +1048,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event mul_qt_v3(view_inv, xvec); /* Perform the up/down rotation */ - angle = rot_sensitivity * dt * ndof->rx; + angle = rot_sensitivity * dt * ndof->rvec[0]; if (invert) angle = -angle; rot[0] = cos(angle); @@ -1080,7 +1056,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); /* Perform the orbital rotation */ - angle = rot_sensitivity * dt * ndof->ry; + angle = rot_sensitivity * dt * ndof->rvec[1]; if (invert) angle = -angle; @@ -1155,11 +1131,10 @@ static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) const float vertical_sensitivity = 0.4f; const float lateral_sensitivity = 0.6f; - float pan_vec[3] = { - lateral_sensitivity * ndof->tx, - vertical_sensitivity * ndof->ty, - forward_sensitivity * ndof->tz - }; + float pan_vec[3] = {lateral_sensitivity * ndof->tvec[0], + vertical_sensitivity * ndof->tvec[1], + forward_sensitivity * ndof->tvec[2] + }; mul_v3_fl(pan_vec, speed * dt); #endif diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 38d93ab59f3..5c53faf96a6 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -953,9 +953,9 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // ^^ this is ok for default cube scene, but should scale with.. something float trans[3] = { - lateral_sensitivity * ndof->tx, - vertical_sensitivity * ndof->ty, - forward_sensitivity * ndof->tz + lateral_sensitivity * ndof->tvec[0], + vertical_sensitivity * ndof->tvec[1], + forward_sensitivity * ndof->tvec[2] }; if (fly->use_precision) @@ -969,7 +969,7 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) if (flag & NDOF_FLY_HELICOPTER) { // replace world z component with device y (yes it makes sense) - trans[2] = speed * dt * vertical_sensitivity * ndof->ty; + trans[2] = speed * dt * vertical_sensitivity * ndof->tvec[1]; } if (rv3d->persp==RV3D_CAMOB) { diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index a779982099e..0efd25c4faa 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -361,10 +361,10 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) TransInfo *t = op->customdata; if (event->type == NDOF_MOTION) - { - // puts("transform_modal: passing through NDOF_MOTION"); + { + /* puts("transform_modal: passing through NDOF_MOTION"); */ return OPERATOR_PASS_THROUGH; - } + } /* XXX insert keys are called here, and require context */ t->context= C; diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 7476410ec19..7fd52e89a5f 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -389,8 +389,8 @@ typedef struct wmNDOFMotionData { /* awfully similar to GHOST_TEventNDOFMotionData... */ // Each component normally ranges from -1 to +1, but can exceed that. // These use blender standard view coordinates, with positive rotations being CCW about the axis. - float tx, ty, tz; // translation - float rx, ry, rz; // rotation: + float tvec[3]; // translation + float rvec[3]; // rotation: // axis = (rx,ry,rz).normalized // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] float dt; // time since previous NDOF Motion event diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 322cd3b5642..0abae2e06b7 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2323,13 +2323,13 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g const float s = U.ndof_sensitivity; - data->tx = s * ghost->tx; - data->ty = s * ghost->ty; - data->tz = s * ghost->tz; + data->tvec[0]= s * ghost->tx; + data->tvec[1]= s * ghost->ty; + data->tvec[2]= s * ghost->tz; - data->rx = s * ghost->rx; - data->ry = s * ghost->ry; - data->rz = s * ghost->rz; + data->rvec[0]= s * ghost->rx; + data->rvec[1]= s * ghost->ry; + data->rvec[2]= s * ghost->rz; data->dt = ghost->dt; -- cgit v1.2.3 From d4a6884fcfbedcb1b13f65b071bfcf1e04f3ef9d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 07:49:34 +0000 Subject: add back timer based redraw, not sure why this was removed r38908. Zealous redraws now use commented define. --- source/blender/editors/space_view3d/view3d_fly.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 5c53faf96a6..ca64476b35e 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -30,6 +30,7 @@ /* defines VIEW3D_OT_fly modal operator */ //#define NDOF_FLY_DEBUG +//#define NDOF_FLY_DRAW_TOOMUCH // is this needed for ndof? - commented so redraw doesnt thrash - campbell #include "DNA_anim_types.h" #include "DNA_scene_types.h" @@ -289,8 +290,10 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->zlock_momentum=0.0f; fly->grid= 1.0f; fly->use_precision= 0; - fly->redraw= 1; +#ifdef NDOF_FLY_DRAW_TOOMUCH + fly->redraw= 1; +#endif fly->dvec_prev[0]= fly->dvec_prev[1]= fly->dvec_prev[2]= 0.0f; fly->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); @@ -436,7 +439,10 @@ static int flyEnd(bContext *C, FlyInfo *fly) static void flyEvent(FlyInfo *fly, wmEvent *event) { - if (event->type == MOUSEMOVE) { + if (event->type == TIMER && event->customdata == fly->timer) { + fly->redraw = 1; + } + else if (event->type == MOUSEMOVE) { VECCOPY2D(fly->mval, event->mval); } else if (event->type == NDOF_MOTION) { @@ -746,9 +752,9 @@ static int flyApply(bContext *C, FlyInfo *fly) double time_current; /*time how fast it takes for us to redraw, this is so simple scenes dont fly too fast */ float time_redraw; float time_redraw_clamped; - +#ifdef NDOF_FLY_DRAW_TOOMUCH fly->redraw= 1; - +#endif time_current= PIL_check_seconds_timer(); time_redraw= (float)(time_current - fly->time_lastdraw); time_redraw_clamped= MIN2(0.05f, time_redraw); /* clamt the redraw time to avoid jitter in roll correction */ @@ -1125,7 +1131,7 @@ static int fly_modal(bContext *C, wmOperator *op, wmEvent *event) WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, fly_object); } - // puts("redraw!"); // too frequent, fix tomorrow. + // puts("redraw!"); // too frequent, commented with NDOF_FLY_DRAW_TOOMUCH for now ED_region_tag_redraw(CTX_wm_region(C)); } -- cgit v1.2.3 From 078dff64d2963e56675e490927d675c13626a956 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 08:12:50 +0000 Subject: no functional changes. style edits, also renamed ndof_to_angle_axis --> ndof_to_axis_angle --- source/blender/editors/space_view3d/view3d_edit.c | 6 +- source/blender/editors/space_view3d/view3d_fly.c | 237 +++++++++++---------- .../blender/editors/space_view3d/view3d_intern.h | 2 +- 3 files changed, 126 insertions(+), 119 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 8d77aeaea1b..e6fd9e8867b 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -930,7 +930,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) // NDOF utility functions // (should these functions live in this file?) -float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]) +float ndof_to_axis_angle(struct wmNDOFMotionData* ndof, float axis[3]) { return ndof->dt * normalize_v3_v3(axis, ndof->rvec); } @@ -940,7 +940,7 @@ void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) float axis[3]; float angle; - angle= ndof_to_angle_axis(ndof, axis); + angle= ndof_to_axis_angle(ndof, axis); axis_angle_to_quat(q, axis, angle); } @@ -1023,7 +1023,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event mul_qt_qtqt(rot, rot, view_inv_conj); #else // ---------------------------------------- Mike's revised version float axis[3]; - float angle = rot_sensitivity * ndof_to_angle_axis(ndof, axis); + float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis); if (invert) angle = -angle; diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index ca64476b35e..046037a092f 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -109,7 +109,7 @@ void fly_modal_keymap(wmKeyConfig *keyconf) wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "View3D Fly Modal"); /* this function is called for each spacetype, only needs to add map once */ - if(keymap) return; + if (keymap) return; keymap= WM_modalkeymap_add(keyconf, "View3D Fly Modal", modal_items); @@ -261,21 +261,21 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->ar = CTX_wm_region(C); fly->scene= CTX_data_scene(C); - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG puts("\n-- fly begin --"); - #endif +#endif - if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) { + if (fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) { BKE_report(op->reports, RPT_ERROR, "Cannot fly a camera from an external library"); return FALSE; } - if(fly->v3d->ob_centre) { + if (fly->v3d->ob_centre) { BKE_report(op->reports, RPT_ERROR, "Cannot fly when the view is locked to an object"); return FALSE; } - if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->constraints.first) { + if (fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->constraints.first) { BKE_report(op->reports, RPT_ERROR, "Cannot fly an object with constraints"); return FALSE; } @@ -319,7 +319,7 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even fly->dist_backup= fly->rv3d->dist; if (fly->rv3d->persp==RV3D_CAMOB) { Object *ob_back; - if((U.uiflag & USER_CAM_LOCK_NO_PARENT)==0 && (fly->root_parent=fly->v3d->camera->parent)) { + if ((U.uiflag & USER_CAM_LOCK_NO_PARENT)==0 && (fly->root_parent=fly->v3d->camera->parent)) { while(fly->root_parent->parent) fly->root_parent= fly->root_parent->parent; ob_back= fly->root_parent; @@ -337,7 +337,8 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even negate_v3_v3(fly->rv3d->ofs, fly->v3d->camera->obmat[3]); fly->rv3d->dist=0.0; - } else { + } + else { /* perspective or ortho */ if (fly->rv3d->persp==RV3D_ORTHO) fly->rv3d->persp= RV3D_PERSP; /*if ortho projection, make perspective */ @@ -373,12 +374,12 @@ static int flyEnd(bContext *C, FlyInfo *fly) float upvec[3]; - if(fly->state == FLY_RUNNING) + if (fly->state == FLY_RUNNING) return OPERATOR_RUNNING_MODAL; - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG puts("\n-- fly end --"); - #endif +#endif WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), fly->timer); @@ -390,14 +391,14 @@ static int flyEnd(bContext *C, FlyInfo *fly) /* Revert to original view? */ if (fly->persp_backup==RV3D_CAMOB) { /* a camera view */ Object *ob_back; - if(fly->root_parent)ob_back= fly->root_parent; - else ob_back= fly->v3d->camera; + ob_back= (fly->root_parent) ? fly->root_parent : fly->v3d->camera; /* store the original camera loc and rot */ object_tfm_restore(ob_back, fly->obtfm); DAG_id_tag_update(&ob_back->id, OB_RECALC_OB); - } else { + } + else { /* Non Camera we need to reset the view back to the original location bacause the user canceled*/ copy_qt_qt(rv3d->viewquat, fly->rot_backup); copy_v3_v3(rv3d->ofs, fly->ofs_backup); @@ -422,13 +423,13 @@ static int flyEnd(bContext *C, FlyInfo *fly) rv3d->rflag &= ~RV3D_NAVIGATING; //XXX2.5 BIF_view3d_previewrender_signal(fly->sa, PR_DBASE|PR_DISPRECT); /* not working at the moment not sure why */ - if(fly->obtfm) + if (fly->obtfm) MEM_freeN(fly->obtfm); - if(fly->ndof) + if (fly->ndof) MEM_freeN(fly->ndof); - if(fly->state == FLY_CONFIRM) { + if (fly->state == FLY_CONFIRM) { MEM_freeN(fly); return OPERATOR_FINISHED; } @@ -451,37 +452,37 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) // static const char* tag_name = "3D mouse position"; wmNDOFMotionData* incoming_ndof = (wmNDOFMotionData*) event->customdata; - switch (incoming_ndof->progress) - { + switch (incoming_ndof->progress) { case P_STARTING: // start keeping track of 3D mouse position - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG puts("start keeping track of 3D mouse position"); - #endif +#endif // fall through... case P_IN_PROGRESS: // update 3D mouse position - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG putchar('.'); fflush(stdout); - #endif - if (fly->ndof == NULL) +#endif + if (fly->ndof == NULL) { // fly->ndof = MEM_mallocN(sizeof(wmNDOFMotionData), tag_name); fly->ndof = MEM_dupallocN(incoming_ndof); // fly->ndof = malloc(sizeof(wmNDOFMotionData)); - else + } + else { memcpy(fly->ndof, incoming_ndof, sizeof(wmNDOFMotionData)); + } break; case P_FINISHING: // stop keeping track of 3D mouse position - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG puts("stop keeping track of 3D mouse position"); - #endif - if (fly->ndof) - { +#endif + if (fly->ndof) { MEM_freeN(fly->ndof); // free(fly->ndof); fly->ndof = NULL; - } + } /* update the time else the view will jump when 2D mouse/timer resume */ fly->time_lastdraw= PIL_check_seconds_timer(); break; @@ -511,7 +512,9 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) /*Mouse wheel delays range from 0.5==slow to 0.01==fast*/ time_wheel = 1.0f + (10.0f - (20.0f * MIN2(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */ - if (fly->speed<0.0f) fly->speed= 0.0f; + if (fly->speed < 0.0f) { + fly->speed= 0.0f; + } else { if (event->shift) fly->speed += fly->grid*time_wheel * 0.1f; @@ -530,7 +533,9 @@ static void flyEvent(FlyInfo *fly, wmEvent *event) fly->time_lastwheel = time_currwheel; time_wheel = 1.0f + (10.0f - (20.0f * MIN2(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */ - if (fly->speed>0) fly->speed=0; + if (fly->speed > 0.0f) { + fly->speed=0; + } else { if (event->shift) fly->speed-= fly->grid*time_wheel * 0.1f; @@ -614,7 +619,7 @@ static void move_camera(bContext* C, RegionView3D* rv3d, FlyInfo* fly, int orien ID *id_key; /* transform the parent or the camera? */ - if(fly->root_parent) { + if (fly->root_parent) { Object *ob_update; float view_mat[4][4]; @@ -702,10 +707,10 @@ static int flyApply(bContext *C, FlyInfo *fly) unsigned char apply_rotation= 1; /* if the user presses shift they can look about without movinf the direction there looking*/ - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG static unsigned int iteration = 1; printf("fly timer %d\n", iteration++); - #endif +#endif xmargin= ar->winx/20.0f; @@ -736,18 +741,18 @@ static int flyApply(bContext *C, FlyInfo *fly) * * the mouse moves isnt linear */ - if(moffset[0]) { + if (moffset[0]) { moffset[0] /= ar->winx - (xmargin*2); moffset[0] *= fabsf(moffset[0]); } - if(moffset[1]) { + if (moffset[1]) { moffset[1] /= ar->winy - (ymargin*2); moffset[1] *= fabsf(moffset[1]); } /* Should we redraw? */ - if(fly->speed != 0.0f || moffset[0] || moffset[1] || fly->zlock || fly->xlock || dvec[0] || dvec[1] || dvec[2] ) { + if (fly->speed != 0.0f || moffset[0] || moffset[1] || fly->zlock || fly->xlock || dvec[0] || dvec[1] || dvec[2] ) { float dvec_tmp[3]; double time_current; /*time how fast it takes for us to redraw, this is so simple scenes dont fly too fast */ float time_redraw; @@ -781,8 +786,8 @@ static int flyApply(bContext *C, FlyInfo *fly) mul_m3_v3(mat, dvec_tmp); mul_v3_fl(dvec_tmp, time_redraw * 200.0f * fly->grid); - - } else { + } + else { float roll; /* similar to the angle between the camera's up and the Z-up, but its very rough so just roll*/ /* rotate about the X axis- look up/down */ @@ -803,23 +808,24 @@ static int flyApply(bContext *C, FlyInfo *fly) if (moffset[0]) { /* if we're upside down invert the moffset */ - upvec[0]=0; - upvec[1]=1; - upvec[2]=0; + upvec[0]= 0.0f; + upvec[1]= 1.0f; + upvec[2]= 0.0f; mul_m3_v3(mat, upvec); - if(upvec[2] < 0.0f) + if (upvec[2] < 0.0f) moffset[0]= -moffset[0]; /* make the lock vectors */ if (fly->zlock) { - upvec[0]=0; - upvec[1]=0; - upvec[2]=1; - } else { - upvec[0]=0; - upvec[1]=1; - upvec[2]=0; + upvec[0]= 0.0f; + upvec[1]= 0.0f; + upvec[2]= 1.0f; + } + else { + upvec[0]= 0.0f; + upvec[1]= 1.0f; + upvec[2]= 0.0f; mul_m3_v3(mat, upvec); } @@ -831,25 +837,26 @@ static int flyApply(bContext *C, FlyInfo *fly) } if (fly->zlock==2) { - upvec[0]=1; - upvec[1]=0; - upvec[2]=0; + upvec[0]= 1.0f; + upvec[1]= 0.0f; + upvec[2]= 0.0f; mul_m3_v3(mat, upvec); /*make sure we have some z rolling*/ if (fabsf(upvec[2]) > 0.00001f) { - roll= upvec[2]*5; - upvec[0]=0; /*rotate the view about this axis*/ - upvec[1]=0; - upvec[2]=1; + roll= upvec[2] * 5.0f; + upvec[0]= 0.0f; /*rotate the view about this axis*/ + upvec[1]= 0.0f; + upvec[2]= 1.0f; mul_m3_v3(mat, upvec); axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->zlock_momentum * FLY_ZUP_CORRECT_FAC); /* Rotate about the relative up vec */ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat); fly->zlock_momentum += FLY_ZUP_CORRECT_ACCEL; - } else { - fly->zlock=1; /* dont check until the view rotates again */ + } + else { + fly->zlock= 1; /* dont check until the view rotates again */ fly->zlock_momentum= 0.0f; } } @@ -860,8 +867,8 @@ static int flyApply(bContext *C, FlyInfo *fly) upvec[2]=1; mul_m3_v3(mat, upvec); /*make sure we have some z rolling*/ - if (fabs(upvec[2]) > 0.00001) { - roll= upvec[2] * -5; + if (fabs(upvec[2]) > 0.00001f) { + roll= upvec[2] * -5.0f; upvec[0]= 1.0f; /*rotate the view about this axis*/ upvec[1]= 0.0f; @@ -873,7 +880,8 @@ static int flyApply(bContext *C, FlyInfo *fly) mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat); fly->xlock_momentum += 0.05f; - } else { + } + else { fly->xlock=1; /* see above */ fly->xlock_momentum= 0.0f; } @@ -920,9 +928,11 @@ static int flyApply(bContext *C, FlyInfo *fly) if (rv3d->persp==RV3D_CAMOB) move_camera(C, rv3d, fly, (fly->xlock || fly->zlock || moffset[0] || moffset[1]), fly->speed); - } else - /*were not redrawing but we need to update the time else the view will jump */ + } + else { + /* we're not redrawing but we need to update the time else the view will jump */ fly->time_lastdraw= PIL_check_seconds_timer(); + } /* end drawing */ copy_v3_v3(fly->dvec_prev, dvec); } @@ -932,14 +942,14 @@ static int flyApply(bContext *C, FlyInfo *fly) static int flyApply_ndof(bContext *C, FlyInfo *fly) { - // shorthand for oft-used variables + /* shorthand for oft-used variables */ wmNDOFMotionData* ndof = fly->ndof; const float dt = ndof->dt; RegionView3D* rv3d = fly->rv3d; const int flag = U.ndof_flag; -// int shouldRotate = (flag & NDOF_SHOULD_ROTATE) && (fly->pan_view == FALSE), -// shouldTranslate = (flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM)); +/* int shouldRotate = (flag & NDOF_SHOULD_ROTATE) && (fly->pan_view == FALSE), + shouldTranslate = (flag & (NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM)); */ int shouldRotate = (fly->pan_view == FALSE), shouldTranslate = TRUE; @@ -949,14 +959,13 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) rv3d->rot_angle = 0.f; // disable onscreen rotation doo-dad - if (shouldTranslate) - { + if (shouldTranslate) { const float forward_sensitivity = 1.f; const float vertical_sensitivity = 0.4f; const float lateral_sensitivity = 0.6f; - float speed = 10.f; // blender units per second - // ^^ this is ok for default cube scene, but should scale with.. something + float speed = 10.f; /* blender units per second */ + /* ^^ this is ok for default cube scene, but should scale with.. something */ float trans[3] = { lateral_sensitivity * ndof->tvec[0], @@ -972,11 +981,10 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) // transform motion from view to world coordinates mul_qt_v3(view_inv, trans); - if (flag & NDOF_FLY_HELICOPTER) - { - // replace world z component with device y (yes it makes sense) + if (flag & NDOF_FLY_HELICOPTER) { + /* replace world z component with device y (yes it makes sense) */ trans[2] = speed * dt * vertical_sensitivity * ndof->tvec[1]; - } + } if (rv3d->persp==RV3D_CAMOB) { // respect camera position locks @@ -986,79 +994,77 @@ static int flyApply_ndof(bContext *C, FlyInfo *fly) if (lock_ob->protectflag & OB_LOCK_LOCZ) trans[2] = 0.f; } - if (trans[0] || trans[1] || trans[2]) - { + if (!is_zero_v3(trans)) { // move center of view opposite of hand motion (this is camera mode, not object mode) sub_v3_v3(rv3d->ofs, trans); shouldTranslate = TRUE; - } - else + } + else { shouldTranslate = FALSE; } + } - if (shouldRotate) - { + if (shouldRotate) { const float turn_sensitivity = 1.f; float rotation[4]; float axis[3]; - float angle = turn_sensitivity * ndof_to_angle_axis(ndof, axis); + float angle = turn_sensitivity * ndof_to_axis_angle(ndof, axis); - if (fabsf(angle) > 0.0001f) - { + if (fabsf(angle) > 0.0001f) { shouldRotate = TRUE; if (fly->use_precision) angle *= 0.2f; - // transform rotation axis from view to world coordinates + /* transform rotation axis from view to world coordinates */ mul_qt_v3(view_inv, axis); // apply rotation to view axis_angle_to_quat(rotation, axis, angle); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); - if (flag & NDOF_LOCK_HORIZON) - // force an upright viewpoint - // TODO: make this less... sudden - { - float view_horizon[3] = {1.f, 0.f, 0.f}; // view +x - float view_direction[3] = {0.f, 0.f, -1.f}; // view -z (into screen) + if (flag & NDOF_LOCK_HORIZON) { + /* force an upright viewpoint + * TODO: make this less... sudden */ + float view_horizon[3] = {1.f, 0.f, 0.f}; /* view +x */ + float view_direction[3] = {0.f, 0.f, -1.f}; /* view -z (into screen) */ - // find new inverse since viewquat has changed + /* find new inverse since viewquat has changed */ invert_qt_qt(view_inv, rv3d->viewquat); - // could apply reverse rotation to existing view_inv to save a few cycles + /* could apply reverse rotation to existing view_inv to save a few cycles */ - // transform view vectors to world coordinates + /* transform view vectors to world coordinates */ mul_qt_v3(view_inv, view_horizon); mul_qt_v3(view_inv, view_direction); - // find difference between view & world horizons - // true horizon lives in world xy plane, so look only at difference in z + /* find difference between view & world horizons + * true horizon lives in world xy plane, so look only at difference in z */ angle = -asinf(view_horizon[2]); - #ifdef NDOF_FLY_DEBUG +#ifdef NDOF_FLY_DEBUG printf("lock horizon: adjusting %.1f degrees\n\n", RAD2DEG(angle)); - #endif +#endif - // rotate view so view horizon = world horizon + /* rotate view so view horizon = world horizon */ axis_angle_to_quat(rotation, view_direction, angle); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rotation); - } + } rv3d->view = RV3D_VIEW_USER; - } - else + } + else { shouldRotate = FALSE; } + } - if (shouldTranslate || shouldRotate) - { + if (shouldTranslate || shouldRotate) { fly->redraw = TRUE; - if (rv3d->persp==RV3D_CAMOB) + if (rv3d->persp==RV3D_CAMOB) { move_camera(C, rv3d, fly, shouldRotate, shouldTranslate); } + } return OPERATOR_FINISHED; } @@ -1069,14 +1075,14 @@ static int fly_invoke(bContext *C, wmOperator *op, wmEvent *event) RegionView3D *rv3d= CTX_wm_region_view3d(C); FlyInfo *fly; - if(rv3d->viewlock) + if (rv3d->viewlock) return OPERATOR_CANCELLED; fly= MEM_callocN(sizeof(FlyInfo), "FlyOperation"); op->customdata= fly; - if(initFlyInfo(C, fly, op, event)==FALSE) { + if (initFlyInfo(C, fly, op, event)==FALSE) { MEM_freeN(op->customdata); return OPERATOR_CANCELLED; } @@ -1111,23 +1117,24 @@ static int fly_modal(bContext *C, wmOperator *op, wmEvent *event) flyEvent(fly, event); - if (fly->ndof) // 3D mouse overrules [2D mouse + timer] - { - if (event->type==NDOF_MOTION) + if (fly->ndof) { /* 3D mouse overrules [2D mouse + timer] */ + if (event->type==NDOF_MOTION) { flyApply_ndof(C, fly); } - else if (event->type==TIMER && event->customdata == fly->timer) + } + else if (event->type==TIMER && event->customdata == fly->timer) { flyApply(C, fly); + } do_draw |= fly->redraw; exit_code = flyEnd(C, fly); - if(exit_code!=OPERATOR_RUNNING_MODAL) + if (exit_code!=OPERATOR_RUNNING_MODAL) do_draw= TRUE; - if(do_draw) { - if(rv3d->persp==RV3D_CAMOB) { + if (do_draw) { + if (rv3d->persp==RV3D_CAMOB) { WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, fly_object); } diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index c4207b0ce25..ab3ce37ff15 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -95,7 +95,7 @@ void VIEW3D_OT_drawtype(struct wmOperatorType *ot); void view3d_boxview_copy(ScrArea *sa, ARegion *ar); void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]); -float ndof_to_angle_axis(struct wmNDOFMotionData* ndof, float axis[3]); +float ndof_to_axis_angle(struct wmNDOFMotionData* ndof, float axis[3]); /* view3d_fly.c */ void view3d_keymap(struct wmKeyConfig *keyconf); -- cgit v1.2.3 From f1c68bdbec98edfd212e80aa7a80fe1f93c4a100 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 2 Aug 2011 09:12:58 +0000 Subject: Don't show NDOF guide by default. --- source/blender/editors/interface/resources.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 16f3789ecb1..0c755180b3a 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1587,7 +1587,7 @@ void init_userdef_do_versions(void) if (U.ndof_sensitivity == 0.0f) { U.ndof_sensitivity = 1.0f; - U.ndof_flag = NDOF_SHOW_GUIDE | NDOF_LOCK_HORIZON | + U.ndof_flag = NDOF_LOCK_HORIZON | NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM | NDOF_SHOULD_ROTATE; } -- cgit v1.2.3 From 73fc78c5d81920fc4b3dbcb8fcf4fdc6ab6dd3d6 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 2 Aug 2011 09:18:21 +0000 Subject: Debug print removed. --- source/blender/windowmanager/intern/wm_operators.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 7dc4bfb65a6..a47dfacf358 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3428,26 +3428,20 @@ static int wm_ndof_sensitivity_exec(bContext *UNUSED(C), wmOperator *op) else change = 0.1f; // 10% - if(RNA_boolean_get(op->ptr, "decrease")) - { + if(RNA_boolean_get(op->ptr, "decrease")) { sensitivity -= sensitivity * change; if (sensitivity < min) sensitivity = min; - } - else - { + } + else { sensitivity += sensitivity * change; if (sensitivity > max) sensitivity = max; - } + } - if (sensitivity != U.ndof_sensitivity) - { + if (sensitivity != U.ndof_sensitivity) { U.ndof_sensitivity = sensitivity; - printf("new sensitivity: %f\n", U.ndof_sensitivity); - } - else - printf("same sensitivity: %f\n", U.ndof_sensitivity); + } return OPERATOR_FINISHED; } -- cgit v1.2.3 From de0db6c8daaf4f6276b43bd4c78d623fdb0eafb9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Aug 2011 10:56:09 +0000 Subject: unit arg for FloatVectorProeprty --- source/blender/python/intern/bpy_props.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c index 0ba80bf0850..a0ad1ff7850 100644 --- a/source/blender/python/intern/bpy_props.c +++ b/source/blender/python/intern/bpy_props.c @@ -326,6 +326,11 @@ static int bpy_prop_callback_assign(struct PropertyRNA *prop, PyObject *update_c " :type description: string\n" \ +#define BPY_PROPDEF_UNIT_DOC \ +" :arg unit: Enumerator in ['NONE', 'LENGTH', 'AREA', 'VOLUME', 'ROTATION', 'TIME', 'VELOCITY', 'ACCELERATION'].\n" \ +" :type unit: string\n" \ + + #define BPY_PROPDEF_UPDATE_DOC \ " :arg update: function to be called when this value is modified,\n" \ " This function must take 2 values (self, context) and return None.\n" \ @@ -639,8 +644,7 @@ BPY_PROPDEF_DESC_DOC " :type options: set\n" " :arg subtype: Enumerator in ['UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n" " :type subtype: string\n" -" :arg unit: Enumerator in ['NONE', 'LENGTH', 'AREA', 'VOLUME', 'ROTATION', 'TIME', 'VELOCITY', 'ACCELERATION'].\n" -" :type unit: string\n" +BPY_PROPDEF_UNIT_DOC BPY_PROPDEF_UPDATE_DOC ); static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) @@ -679,7 +683,7 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_SUBTYPE_CHECK(FloatProperty, property_flag_items, property_subtype_number_items) if(pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { - PyErr_Format(PyExc_TypeError, "FloatProperty(unit='%s'): invalid unit"); + PyErr_Format(PyExc_TypeError, "FloatProperty(unit='%s'): invalid unit", pyunit); return NULL; } @@ -716,6 +720,7 @@ BPY_PROPDEF_DESC_DOC " :type options: set\n" " :arg subtype: Enumerator in ['COLOR', 'TRANSLATION', 'DIRECTION', 'VELOCITY', 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION', 'AXISANGLE', 'XYZ', 'COLOR_GAMMA', 'LAYER', 'NONE'].\n" " :type subtype: string\n" +BPY_PROPDEF_UNIT_DOC " :arg size: Vector dimensions in [1, and " STRINGIFY(PYRNA_STACK_ARRAY) "].\n" " :type size: int\n" BPY_PROPDEF_UPDATE_DOC @@ -727,7 +732,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec BPY_PROPDEF_HEAD(FloatVectorProperty) if(srna) { - static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "precision", "options", "subtype", "size", "update", NULL}; + static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "precision", "options", "subtype", "unit", "size", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; float min=-FLT_MAX, max=FLT_MAX, soft_min=-FLT_MAX, soft_max=FLT_MAX, step=3, def[PYRNA_STACK_ARRAY]={0.0f}; @@ -738,15 +743,17 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec int opts=0; char *pysubtype= NULL; int subtype= PROP_NONE; + char *pyunit= NULL; + int unit= PROP_UNIT_NONE; PyObject *update_cb= NULL; if (!PyArg_ParseTupleAndKeywords(args, kw, - "s#|ssOfffffiO!siO:FloatVectorProperty", + "s#|ssOfffffiO!ssiO:FloatVectorProperty", (char **)kwlist, &id, &id_len, &name, &description, &pydef, &min, &max, &soft_min, &soft_max, &step, &precision, &PySet_Type, - &pyopts, &pysubtype, &size, + &pyopts, &pysubtype, &pyunit, &size, &update_cb)) { return NULL; @@ -754,6 +761,11 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec BPY_PROPDEF_SUBTYPE_CHECK(FloatVectorProperty, property_flag_items, property_subtype_array_items) + if(pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { + PyErr_Format(PyExc_TypeError, "FloatVectorProperty(unit='%s'): invalid unit", pyunit); + return NULL; + } + if(size < 1 || size > PYRNA_STACK_ARRAY) { PyErr_Format(PyExc_TypeError, "FloatVectorProperty(size=%d): size must be between 0 and " STRINGIFY(PYRNA_STACK_ARRAY), size); return NULL; @@ -766,7 +778,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec return NULL; } - prop= RNA_def_property(srna, id, PROP_FLOAT, subtype); + prop= RNA_def_property(srna, id, PROP_FLOAT, subtype | unit); RNA_def_property_array(prop, size); if(pydef) RNA_def_property_float_array_default(prop, def); RNA_def_property_range(prop, min, max); -- cgit v1.2.3 From 3af9651b903e05cea956f2358394fec3e0c81ef6 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Tue, 2 Aug 2011 22:50:06 +0000 Subject: ndof changes: turned off 3D mouse during transform, removed timing bug in image/uv, added option for zoom axis (up/down vs. forward/backward) --- source/blender/editors/space_image/image_ops.c | 9 ++------ source/blender/editors/transform/transform_ops.c | 6 ++++++ source/blender/makesdna/DNA_userdef_types.h | 3 +++ .../blender/windowmanager/intern/wm_event_system.c | 25 +++++++++++++++++----- 4 files changed, 31 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 6e84c1a7f0c..1f37583b445 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -452,14 +452,9 @@ static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - float dt = ndof->dt > 0.25f ? 0.0125f : ndof->dt; - /* this is probably the first event for this motion, so set dt to something reasonable - * TODO: replace such guesswork with a flag or field from the NDOF manager - */ - /* tune these until it feels right */ - const float zoom_sensitivity = 0.5f; - const float pan_sensitivity = 300.f; + const float zoom_sensitivity = 0.5f; // 50% per second (I think) + const float pan_sensitivity = 300.f; // screen pixels per second float pan_x = pan_sensitivity * dt * ndof->tvec[0] / sima->zoom; float pan_y = pan_sensitivity * dt * ndof->tvec[1] / sima->zoom; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 0efd25c4faa..fb40cee95fb 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -360,11 +360,17 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) TransInfo *t = op->customdata; + #if 0 + // stable 2D mouse coords map to different 3D coords while the 3D mouse is active + // in other words, 2D deltas are no longer good enough! + // disable until individual 'transformers' behave better + if (event->type == NDOF_MOTION) { /* puts("transform_modal: passing through NDOF_MOTION"); */ return OPERATOR_PASS_THROUGH; } + #endif /* XXX insert keys are called here, and require context */ t->context= C; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 12f8cd656a0..0bf812f1ec2 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -600,6 +600,9 @@ extern UserDef U; /* from blenkernel blender.c */ /* actually... users probably don't care about what the mode is called, just that it feels right */ #define NDOF_ORBIT_INVERT_AXES (1 << 6) +/* zoom is up/down if this flag is set (otherwise forward/backward) */ +#define NDOF_ZOOM_UPDOWN (1 << 7) +#define NDOF_INVERT_ZOOM (1 << 8) #ifdef __cplusplus diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 0abae2e06b7..9a25c4b581d 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2324,12 +2324,27 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g const float s = U.ndof_sensitivity; data->tvec[0]= s * ghost->tx; - data->tvec[1]= s * ghost->ty; - data->tvec[2]= s * ghost->tz; - data->rvec[0]= s * ghost->rx; - data->rvec[1]= s * ghost->ry; - data->rvec[2]= s * ghost->rz; + + if (U.ndof_flags & NDOF_ZOOM_UPDOWN) + { + // swap Y and Z + data->tvec[1]= s * ghost->tz; + data->tvec[2]= s * ghost->ty; + + // should this affect rotation also? + // initial guess is 'yes', but get user feedback immediately! + data->rvec[1]= s * ghost->rz; + data->rvec[2]= s * ghost->ry; + } + else + { + data->tvec[1]= s * ghost->ty; + data->tvec[2]= s * ghost->tz; + + data->rvec[1]= s * ghost->ry; + data->rvec[2]= s * ghost->rz; + } data->dt = ghost->dt; -- cgit v1.2.3 From 17133e1a1d737771c6afcb701c1a32f035bf03c6 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 2 Aug 2011 23:49:07 +0000 Subject: Compile fix. --- source/blender/editors/space_image/image_ops.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 1f37583b445..e0ebde589a8 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -452,6 +452,7 @@ static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + float dt = ndof->dt; /* tune these until it feels right */ const float zoom_sensitivity = 0.5f; // 50% per second (I think) const float pan_sensitivity = 300.f; // screen pixels per second -- cgit v1.2.3 From dc4b104e60d99176fbe32c06dff0b190b3313e3d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 2 Aug 2011 23:52:07 +0000 Subject: typo fix. --- source/blender/windowmanager/intern/wm_event_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 9a25c4b581d..2f0c1a72be9 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2326,7 +2326,7 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g data->tvec[0]= s * ghost->tx; data->rvec[0]= s * ghost->rx; - if (U.ndof_flags & NDOF_ZOOM_UPDOWN) + if (U.ndof_flag & NDOF_ZOOM_UPDOWN) { // swap Y and Z data->tvec[1]= s * ghost->tz; -- cgit v1.2.3 From 2b446aa280af60aefd304aae904bc16b1b15f373 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 3 Aug 2011 01:22:31 +0000 Subject: Animation channels can now be renamed by Ctrl-Clicking on them, as in the Outliner Channels which can be renamed include: - Scenes, Objects, World, Material, Texture, etc. (i.e. "ID-blocks", or the dark and light blue channels) - Action Groups (green channels) - Action expanders (i.e. "CubeAction", "WorldAction", etc.) - Grease Pencil stuff Channels which CANNOT be renamed, as they mostly use hardcoded values or otherwise include: - Drivers expander - FCurves (they don't technically have a "name"; what is shown is just a user-friendly representation of their rna_paths) --- .../editors/animation/anim_channels_defines.c | 149 ++++++++++++++++++--- .../blender/editors/animation/anim_channels_edit.c | 106 +++++++++++++++ source/blender/editors/include/ED_anim_api.h | 7 +- source/blender/editors/space_action/action_draw.c | 4 +- source/blender/editors/space_graph/graph_draw.c | 4 +- source/blender/editors/space_nla/nla_draw.c | 4 +- source/blender/makesdna/DNA_action_types.h | 3 + 7 files changed, 257 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 4296d404cd3..f08b6e8b9a2 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -325,6 +325,26 @@ static void acf_generic_idblock_name(bAnimListElem *ale, char *name) BLI_strncpy(name, id->name+2, ANIM_CHAN_NAME_SIZE); } +/* name property for ID block entries */ +static short acf_generic_idblock_nameprop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) +{ + RNA_id_pointer_create(ale->id, ptr); + *prop = RNA_struct_name_property(ptr->type); + + return (*prop != NULL); +} + + +/* name property for ID block entries which are just subheading "fillers" */ +static short acf_generic_idfill_nameprop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) +{ + /* actual ID we're representing is stored in ale->data not ale->id, as id gives the owner */ + RNA_id_pointer_create(ale->data, ptr); + *prop = RNA_struct_name_property(ptr->type); + + return (*prop != NULL); +} + /* Settings ------------------------------------------- */ #if 0 @@ -455,6 +475,7 @@ static bAnimChannelType ACF_SUMMARY = NULL, /* offset */ acf_summary_name, /* name */ + NULL, /* name prop */ acf_summary_icon, /* icon */ acf_summary_setting_valid, /* has setting */ @@ -556,6 +577,7 @@ static bAnimChannelType ACF_SCENE = NULL, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_scene_icon, /* icon */ acf_scene_setting_valid, /* has setting */ @@ -702,6 +724,7 @@ static bAnimChannelType ACF_OBJECT = NULL, /* offset */ acf_object_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_object_icon, /* icon */ acf_object_setting_valid, /* has setting */ @@ -749,6 +772,15 @@ static void acf_group_name(bAnimListElem *ale, char *name) BLI_strncpy(name, agrp->name, ANIM_CHAN_NAME_SIZE); } +/* name property for group entries */ +static short acf_group_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) +{ + RNA_pointer_create(ale->id, &RNA_ActionGroup, ale->data, ptr); + *prop = RNA_struct_name_property(ptr->type); + + return (*prop != NULL); +} + /* check if some setting exists for this channel */ static short acf_group_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale), int setting) { @@ -819,6 +851,7 @@ static bAnimChannelType ACF_GROUP = acf_generic_group_offset, /* offset */ acf_group_name, /* name */ + acf_group_name_prop, /* name prop */ NULL, /* icon */ acf_group_setting_valid, /* has setting */ @@ -905,6 +938,7 @@ static bAnimChannelType ACF_FCURVE = acf_generic_group_offset, /* offset */ acf_fcurve_name, /* name */ + NULL, /* name prop */ NULL, /* icon */ acf_fcurve_setting_valid, /* has setting */ @@ -989,6 +1023,7 @@ static bAnimChannelType ACF_FILLACTD = acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idfill_nameprop, /* name prop */ acf_fillactd_icon, /* icon */ acf_fillactd_setting_valid, /* has setting */ @@ -1067,6 +1102,7 @@ static bAnimChannelType ACF_FILLDRIVERS = acf_generic_basic_offset, /* offset */ acf_filldrivers_name, /* name */ + NULL, /* name prop */ acf_filldrivers_icon, /* icon */ acf_filldrivers_setting_valid, /* has setting */ @@ -1144,6 +1180,7 @@ static bAnimChannelType ACF_DSMAT= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsmat_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1220,6 +1257,7 @@ static bAnimChannelType ACF_DSLAM= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dslam_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1303,6 +1341,7 @@ static bAnimChannelType ACF_DSTEX= acf_dstex_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idfill_nameprop, /* name prop */ acf_dstex_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1379,6 +1418,7 @@ static bAnimChannelType ACF_DSCAM= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idfill_nameprop, /* name prop */ acf_dscam_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1465,6 +1505,7 @@ static bAnimChannelType ACF_DSCUR= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dscur_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1541,6 +1582,7 @@ static bAnimChannelType ACF_DSSKEY= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsskey_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1617,6 +1659,7 @@ static bAnimChannelType ACF_DSWOR= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idfill_nameprop, /* name prop */ acf_dswor_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1693,6 +1736,7 @@ static bAnimChannelType ACF_DSPART= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dspart_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1769,6 +1813,7 @@ static bAnimChannelType ACF_DSMBALL= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsmball_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1845,6 +1890,7 @@ static bAnimChannelType ACF_DSARM= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsarm_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -1932,6 +1978,7 @@ static bAnimChannelType ACF_DSNTREE= acf_dsntree_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsntree_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -2008,6 +2055,7 @@ static bAnimChannelType ACF_DSMESH= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsmesh_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -2084,6 +2132,7 @@ static bAnimChannelType ACF_DSLAT= acf_generic_basic_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dslat_icon, /* icon */ acf_generic_dataexpand_setting_valid, /* has setting */ @@ -2108,17 +2157,17 @@ static int acf_dsspk_setting_flag(bAnimContext *UNUSED(ac), int setting, short * switch (setting) { case ACHANNEL_SETTING_EXPAND: /* expanded */ return SPK_DS_EXPAND; - + case ACHANNEL_SETTING_MUTE: /* mute (only in NLA) */ return ADT_NLA_EVAL_OFF; - + case ACHANNEL_SETTING_VISIBLE: /* visible (only in Graph Editor) */ *neg= 1; return ADT_CURVES_NOT_VISIBLE; - + case ACHANNEL_SETTING_SELECT: /* selected */ return ADT_UI_SELECTED; - + default: /* unsupported */ return 0; } @@ -2135,7 +2184,7 @@ static void *acf_dsspk_setting_ptr(bAnimListElem *ale, int setting, short *type) switch (setting) { case ACHANNEL_SETTING_EXPAND: /* expanded */ GET_ACF_FLAG_PTR(spk->flag); - + case ACHANNEL_SETTING_SELECT: /* selected */ case ACHANNEL_SETTING_MUTE: /* muted (for NLA only) */ case ACHANNEL_SETTING_VISIBLE: /* visible (for Graph Editor only) */ @@ -2143,7 +2192,7 @@ static void *acf_dsspk_setting_ptr(bAnimListElem *ale, int setting, short *type) GET_ACF_FLAG_PTR(spk->adt->flag) else return NULL; - + default: /* unsupported */ return NULL; } @@ -2153,15 +2202,16 @@ static void *acf_dsspk_setting_ptr(bAnimListElem *ale, int setting, short *type) static bAnimChannelType ACF_DSSPK= { "Speaker Expander", /* type name */ - + acf_generic_dataexpand_color, /* backdrop color */ acf_generic_dataexpand_backdrop,/* backdrop */ acf_generic_indention_1, /* indent level */ acf_generic_basic_offset, /* offset */ - + acf_generic_idblock_name, /* name */ + acf_generic_idblock_nameprop, /* name prop */ acf_dsspk_icon, /* icon */ - + acf_generic_dataexpand_setting_valid, /* has setting */ acf_dsspk_setting_flag, /* flag for setting */ acf_dsspk_setting_ptr /* pointer for setting */ @@ -2184,6 +2234,22 @@ static void acf_shapekey_name(bAnimListElem *ale, char *name) } } +/* name property for ShapeKey entries */ +static short acf_shapekey_nameprop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) +{ + KeyBlock *kb= (KeyBlock *)ale->data; + + /* if the KeyBlock had a name, use it, otherwise use the index */ + if (kb && kb->name[0]) { + RNA_pointer_create(ale->id, &RNA_ShapeKey, kb, ptr); + *prop = RNA_struct_name_property(ptr->type); + + return (*prop != NULL); + } + + return 0; +} + /* check if some setting exists for this channel */ static short acf_shapekey_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting) { @@ -2250,6 +2316,7 @@ static bAnimChannelType ACF_SHAPEKEY= acf_generic_basic_offset, /* offset */ acf_shapekey_name, /* name */ + acf_shapekey_nameprop, /* name prop */ NULL, /* icon */ acf_shapekey_setting_valid, /* has setting */ @@ -2324,6 +2391,7 @@ static bAnimChannelType ACF_GPD = acf_generic_group_offset, /* offset */ acf_generic_idblock_name, /* name */ + acf_generic_idfill_nameprop, /* name prop */ acf_gpd_icon, /* icon */ acf_gpd_setting_valid, /* has setting */ @@ -2342,6 +2410,19 @@ static void acf_gpl_name(bAnimListElem *ale, char *name) BLI_strncpy(name, gpl->info, ANIM_CHAN_NAME_SIZE); } +/* name property for grease pencil layer entries */ +static short acf_gpl_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) +{ + if (ale->data) { + RNA_pointer_create(ale->id, &RNA_GPencilLayer, ale->data, ptr); + *prop = RNA_struct_name_property(ptr->type); + + return (*prop != NULL); + } + + return 0; +} + /* check if some setting exists for this channel */ static short acf_gpl_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting) { @@ -2399,6 +2480,7 @@ static bAnimChannelType ACF_GPL = acf_generic_group_offset, /* offset */ acf_gpl_name, /* name */ + acf_gpl_name_prop, /* name prop */ NULL, /* icon */ acf_gpl_setting_valid, /* has setting */ @@ -2450,7 +2532,7 @@ static void ANIM_init_channel_typeinfo_data (void) animchannelTypeInfo[type++]= &ACF_DSTEX; /* Texture Channel */ animchannelTypeInfo[type++]= &ACF_DSLAT; /* Lattice Channel */ animchannelTypeInfo[type++]= &ACF_DSSPK; /* Speaker Channel */ - + animchannelTypeInfo[type++]= &ACF_SHAPEKEY; /* ShapeKey */ animchannelTypeInfo[type++]= &ACF_GPD; /* Grease Pencil Datablock */ @@ -2642,6 +2724,8 @@ void ANIM_channel_setting_set (bAnimContext *ac, bAnimListElem *ale, int setting #define ICON_WIDTH 17 // XXX hardcoded width of sliders #define SLIDER_WIDTH 80 +// XXX hardcoded width of rename textboxes +#define RENAME_TEXT_WIDTH 100 /* Draw the given channel */ // TODO: make this use UI controls for the buttons @@ -2731,6 +2815,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float } /* step 5) draw name ............................................... */ + // TODO: when renaming, we might not want to draw this, especially if name happens to be longer than channel if (acf->name) { char name[ANIM_CHAN_NAME_SIZE]; /* hopefully this will be enough! */ @@ -2868,6 +2953,19 @@ static void achannel_setting_flush_widget_cb(bContext *C, void *ale_npoin, void BLI_freelistN(&anim_data); } +/* callback for rename widgets - clear rename-in-progress */ +static void achannel_setting_rename_done_cb(bContext *C, void *ads_poin, void *UNUSED(arg2)) +{ + bDopeSheet *ads = (bDopeSheet *)ads_poin; + + /* reset rename index so that edit box disappears now that editing is done */ + ads->renameIndex = 0; + + /* send notifiers */ + // XXX: right notifier? + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_RENAME, NULL); +} + /* callback for widget sliders - insert keyframes */ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poin) { @@ -3060,12 +3158,11 @@ static void draw_setting_widget (bAnimContext *ac, bAnimListElem *ale, bAnimChan } /* Draw UI widgets the given channel */ -// TODO: make this use UI controls for the buttons -void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *block, float yminc, float ymaxc) +void ANIM_channel_draw_widgets (bContext *C, bAnimContext *ac, bAnimListElem *ale, uiBlock *block, float yminc, float ymaxc, size_t channel_index) { bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); View2D *v2d= &ac->ar->v2d; - float y, ymid /*, ytext*/; + float y, ymid/*, ytext*/; short offset; /* sanity checks - don't draw anything */ @@ -3116,11 +3213,31 @@ void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *b draw_setting_widget(ac, ale, acf, block, offset, ymid, ACHANNEL_SETTING_SOLO); offset += ICON_WIDTH; } - (void)offset; } - /* step 4) draw text... */ - /* NOTE: this is not done here, since nothing to be clicked on... */ + /* step 4) draw text - check if renaming widget is in use... */ + if (acf->name_prop && ac->ads) { + float channel_height = ymaxc - yminc; + + /* if rename index matches, add widget for this */ + if (ac->ads->renameIndex == channel_index+1) { + PointerRNA ptr; + PropertyRNA *prop; + + /* draw renaming widget if we can get RNA pointer for it */ + if (acf->name_prop(ale, &ptr, &prop)) { + uiBut *but; + + uiBlockSetEmboss(block, UI_EMBOSS); + + but = uiDefButR(block, TEX, 1, "", offset+3, yminc, RENAME_TEXT_WIDTH, channel_height, &ptr, RNA_property_identifier(prop), -1, 0, 0, -1, -1, NULL); + uiButSetFunc(but, achannel_setting_rename_done_cb, ac->ads, NULL); + uiButActiveOnly(C, block, but); + + uiBlockSetEmboss(block, UI_EMBOSSN); + } + } + } /* step 5) draw mute+protection toggles + (sliders) ....................... */ /* reset offset - now goes from RHS of panel */ diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 8331001d98e..551bc7e263e 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1965,6 +1965,107 @@ static void ANIM_OT_channels_select_border(wmOperatorType *ot) WM_operator_properties_gesture_border(ot, FALSE); } +/* ******************* Rename Operator ***************************** */ +/* Allow renaming some channels by clicking on them */ + +static void rename_anim_channels (bAnimContext *ac, int channel_index) +{ + ListBase anim_data = {NULL, NULL}; + bAnimChannelType *acf; + bAnimListElem *ale; + int filter; + + /* get the channel that was clicked on */ + /* filter channels */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); + ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); + + /* get channel from index */ + ale= BLI_findlink(&anim_data, channel_index); + if (ale == NULL) { + /* channel not found */ + if (G.f & G_DEBUG) + printf("Error: animation channel (index = %d) not found in rename_anim_channels() \n", channel_index); + + BLI_freelistN(&anim_data); + return; + } + + /* check that channel can be renamed */ + acf = ANIM_channel_get_typeinfo(ale); + if (acf && acf->name_prop) { + PointerRNA ptr; + PropertyRNA *prop; + + /* ok if we can get name property to edit from this channel */ + if (acf->name_prop(ale, &ptr, &prop)) { + /* actually showing the rename textfield is done on redraw, + * so here we just store the index of this channel in the + * dopesheet data, which will get utilised when drawing the + * channel... + * + * +1 factor is for backwards compat issues + */ + if (ac->ads) { + ac->ads->renameIndex = channel_index + 1; + } + } + } + + /* free temp data and tag for refresh */ + BLI_freelistN(&anim_data); + ED_region_tag_redraw(ac->ar); +} + +static int animchannels_rename_invoke (bContext *C, wmOperator *op, wmEvent *evt) +{ + bAnimContext ac; + ARegion *ar; + View2D *v2d; + int channel_index; + float x, y; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + /* get useful pointers from animation context data */ + ar= ac.ar; + v2d= &ar->v2d; + + /* figure out which channel user clicked in + * Note: although channels technically start at y= ACHANNEL_FIRST, we need to adjust by half a channel's height + * so that the tops of channels get caught ok. Since ACHANNEL_FIRST is really ACHANNEL_HEIGHT, we simply use + * ACHANNEL_HEIGHT_HALF. + */ + UI_view2d_region_to_view(v2d, evt->mval[0], evt->mval[1], &x, &y); + + if (ac.datatype == ANIMCONT_NLA) { + SpaceNla *snla = (SpaceNla *)ac.sl; + UI_view2d_listview_view_to_cell(v2d, NLACHANNEL_NAMEWIDTH, NLACHANNEL_STEP(snla), 0, (float)NLACHANNEL_HEIGHT_HALF(snla), x, y, NULL, &channel_index); + } + else { + UI_view2d_listview_view_to_cell(v2d, ACHANNEL_NAMEWIDTH, ACHANNEL_STEP, 0, (float)ACHANNEL_HEIGHT_HALF, x, y, NULL, &channel_index); + } + + /* handle click */ + rename_anim_channels(&ac, channel_index); + + return OPERATOR_FINISHED; +} + +static void ANIM_OT_channels_rename (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Rename Channels"; + ot->idname= "ANIM_OT_channels_rename"; + ot->description= "Rename animation channel under mouse"; + + /* api callbacks */ + ot->invoke= animchannels_rename_invoke; + ot->poll= animedit_poll_channels_active; +} + /* ******************** Mouse-Click Operator *********************** */ /* Handle selection changes due to clicking on channels. Settings will get caught by UI code... */ @@ -2288,7 +2389,9 @@ void ED_operatortypes_animchannels(void) { WM_operatortype_append(ANIM_OT_channels_select_all_toggle); WM_operatortype_append(ANIM_OT_channels_select_border); + WM_operatortype_append(ANIM_OT_channels_click); + WM_operatortype_append(ANIM_OT_channels_rename); WM_operatortype_append(ANIM_OT_channels_setting_enable); WM_operatortype_append(ANIM_OT_channels_setting_disable); @@ -2323,6 +2426,9 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1); RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "children_only", 1); + /* rename */ + WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0); + /* deselect all */ WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", AKEY, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1); diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 3c4ca1a5d97..b0df4070d23 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -57,6 +57,9 @@ struct FModifier; struct uiBlock; struct uiLayout; +struct PointerRNA; +struct PropertyRNA; + /* ************************************************ */ /* ANIMATION CHANNEL FILTERING */ /* anim_filter.c */ @@ -375,6 +378,8 @@ typedef struct bAnimChannelType { /* get name (for channel lists) */ void (*name)(bAnimListElem *ale, char *name); + /* get RNA property+pointer for editing the name */ + short (*name_prop)(bAnimListElem *ale, struct PointerRNA *ptr, struct PropertyRNA **prop); /* get icon (for channel lists) */ int (*icon)(bAnimListElem *ale); @@ -401,7 +406,7 @@ void ANIM_channel_debug_print_info(bAnimListElem *ale, short indent_level); /* Draw the given channel */ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc); /* Draw the widgets for the given channel */ -void ANIM_channel_draw_widgets(bAnimContext *ac, bAnimListElem *ale, struct uiBlock *block, float yminc, float ymaxc); +void ANIM_channel_draw_widgets(struct bContext *C, bAnimContext *ac, bAnimListElem *ale, struct uiBlock *block, float yminc, float ymaxc, size_t channel_index); /* ------------------------ Editing API -------------------------- */ diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index 9df6ceb9d75..d4d665171bc 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -122,6 +122,7 @@ void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) } { /* second pass: widgets */ uiBlock *block= uiBeginBlock(C, ar, "dopesheet channel buttons", UI_EMBOSS); + size_t channel_index = 0; y= (float)ACHANNEL_FIRST; @@ -134,11 +135,12 @@ void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) IN_RANGE(ymaxc, v2d->cur.ymin, v2d->cur.ymax) ) { /* draw all channels using standard channel-drawing API */ - ANIM_channel_draw_widgets(ac, ale, block, yminc, ymaxc); + ANIM_channel_draw_widgets(C, ac, ale, block, yminc, ymaxc, channel_index); } /* adjust y-position for next one */ y -= ACHANNEL_STEP; + channel_index++; } uiEndBlock(C, block); diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index 67543d37859..7e40f2e5159 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -1006,6 +1006,7 @@ void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) } { /* second pass: widgets */ uiBlock *block= uiBeginBlock(C, ar, "graph channel buttons", UI_EMBOSS); + size_t channel_index = 0; y= (float)ACHANNEL_FIRST; @@ -1022,11 +1023,12 @@ void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar) IN_RANGE(ymaxc, v2d->cur.ymin, v2d->cur.ymax) ) { /* draw all channels using standard channel-drawing API */ - ANIM_channel_draw_widgets(ac, ale, block, yminc, ymaxc); + ANIM_channel_draw_widgets(C, ac, ale, block, yminc, ymaxc, channel_index); } /* adjust y-position for next one */ y -= ACHANNEL_STEP; + channel_index++; } uiEndBlock(C, block); diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index ffccc4af30a..bc0b9616836 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -947,6 +947,7 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) } { /* second pass: UI widgets */ uiBlock *block= uiBeginBlock(C, ar, "NLA channel buttons", UI_EMBOSS); + size_t channel_index = 0; y= (float)(-NLACHANNEL_HEIGHT(snla)); @@ -964,11 +965,12 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar) IN_RANGE(ymaxc, v2d->cur.ymin, v2d->cur.ymax) ) { /* draw all channels using standard channel-drawing API */ - ANIM_channel_draw_widgets(ac, ale, block, yminc, ymaxc); + ANIM_channel_draw_widgets(C, ac, ale, block, yminc, ymaxc, channel_index); } /* adjust y-position for next one */ y -= NLACHANNEL_STEP(snla); + channel_index++; } uiEndBlock(C, block); diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 88e67864456..f40d41f59bd 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -519,6 +519,9 @@ typedef struct bDopeSheet { int filterflag; /* flags to use for filtering data */ int flag; /* standard flags */ + + int renameIndex; /* index+1 of channel to rename - only gets set by renaming operator */ + int pad; } bDopeSheet; -- cgit v1.2.3 From a10245a1fa0243cc2e8bb739b589693fc26aa2c8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 Aug 2011 05:32:07 +0000 Subject: fix [#28151] export OBJ don't save the extension also correct some typos --- source/blender/editors/space_view3d/view3d_view.c | 2 +- source/blender/render/intern/source/rendercore.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index eeaf87757ce..ed0b2645c99 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1190,7 +1190,7 @@ int ED_view3d_lock(RegionView3D *rv3d) return TRUE; } -/* dont set windows active in in here, is used by renderwin too */ +/* dont set windows active in here, is used by renderwin too */ void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d) { if(rv3d->persp==RV3D_CAMOB) { /* obs/camera */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index a7e19c8db4f..c08d6c0f456 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -730,7 +730,7 @@ static void atm_tile(RenderPart *pa, RenderLayer *rl) if(zpass==NULL) return; - /* check for at least one sun lamp that its atmosphere flag is is enabled */ + /* check for at least one sun lamp that its atmosphere flag is enabled */ for(go=R.lights.first; go; go= go->next) { lar= go->lampren; if(lar->type==LA_SUN && lar->sunsky && (lar->sunsky->effect_type & LA_SUN_EFFECT_AP)) -- cgit v1.2.3 From 9cf3bcd414bc0a6df0abc451040bc3098fe81e5d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 Aug 2011 06:30:19 +0000 Subject: add note in scene.frame_current that frace_set() updates animation data. --- source/blender/makesrna/intern/rna_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index f4028e45e96..b3d8bc8ea18 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -3251,7 +3251,7 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "r.cfra"); RNA_def_property_range(prop, MINAFRAME, MAXFRAME); RNA_def_property_int_funcs(prop, NULL, "rna_Scene_current_frame_set", NULL); - RNA_def_property_ui_text(prop, "Current Frame", "Current Frame"); + RNA_def_property_ui_text(prop, "Current Frame", "Current Frame, to update animation data from python frame_set() instead"); RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_frame_update"); -- cgit v1.2.3 From e320db106691a6912fca05f6a8dfb09a3d4f2128 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 Aug 2011 08:02:32 +0000 Subject: fix [#28135] Edge slide changes UV --- source/blender/editors/include/ED_transform.h | 1 + source/blender/editors/transform/transform.c | 14 ++++++-------- source/blender/editors/transform/transform_generics.c | 16 ++++++++++++++++ source/blender/editors/transform/transform_ops.c | 7 ++++++- 4 files changed, 29 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index d4d7f971b74..00ae7dda2e3 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -148,6 +148,7 @@ void BIF_selectOrientation(void); #define P_ALIGN_SNAP (P_GEO_SNAP|(1 << 5)) #define P_CONSTRAINT (1 << 6) #define P_OPTIONS (1 << 7) +#define P_CORRECT_UV (1 << 8) void Transform_Properties(struct wmOperatorType *ot, int flags); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 92ac8471172..39e26bc6436 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -4243,7 +4243,7 @@ static int createSlideVerts(TransInfo *t) /* UV correction vars */ GHash **uvarray= NULL; SlideData *sld = MEM_callocN(sizeof(*sld), "sld"); - int uvlay_tot= CustomData_number_of_layers(&em->fdata, CD_MTFACE); + const int uvlay_tot= (t->settings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) ? CustomData_number_of_layers(&em->fdata, CD_MTFACE) : 0; int uvlay_idx; TransDataSlideUv *slideuvs=NULL, *suv=NULL, *suv_last=NULL; RegionView3D *v3d = t->ar ? t->ar->regiondata : NULL; /* background mode support */ @@ -4615,7 +4615,7 @@ static int createSlideVerts(TransInfo *t) sld->end[0] = (int) end[0]; sld->end[1] = (int) end[1]; - if (uvlay_tot) { // XXX && (scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) { + if (uvlay_tot) { int maxnum = 0; uvarray = MEM_callocN( uvlay_tot * sizeof(GHash *), "SlideUVs Array"); @@ -4805,8 +4805,6 @@ void initEdgeSlide(TransInfo *t) int doEdgeSlide(TransInfo *t, float perc) { - Mesh *me= t->obedit->data; - EditMesh *em = me->edit_mesh; SlideData *sld = t->customData; EditVert *ev, *nearest = sld->nearest; EditVert *centerVert, *upVert, *downVert; @@ -4817,7 +4815,7 @@ int doEdgeSlide(TransInfo *t, float perc) int prop=1, flip=0; /* UV correction vars */ GHash **uvarray= sld->uvhash; - int uvlay_tot= CustomData_number_of_layers(&em->fdata, CD_MTFACE); + const int uvlay_tot= sld->uvlay_tot; int uvlay_idx; TransDataSlideUv *suv; float uv_tmp[2]; @@ -4843,7 +4841,7 @@ int doEdgeSlide(TransInfo *t, float perc) tempev = editedge_getOtherVert((perc>=0)?tempsv->up:tempsv->down, ev); interp_v3_v3v3(ev->co, tempsv->origvert.co, tempev->co, fabs(perc)); - if (uvlay_tot) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + if (uvlay_tot) { for (uvlay_idx=0; uvlay_idxfuv_list && suv->uv_up && suv->uv_down) { @@ -4873,7 +4871,7 @@ int doEdgeSlide(TransInfo *t, float perc) if(newlen < 0.0f) {newlen = 0.0;} if(flip == 0) { interp_v3_v3v3(ev->co, editedge_getOtherVert(tempsv->down,ev)->co, editedge_getOtherVert(tempsv->up,ev)->co, fabs(newlen)); - if (uvlay_tot) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + if (uvlay_tot) { /* dont do anything if no UVs */ for (uvlay_idx=0; uvlay_idxco, editedge_getOtherVert(tempsv->up,ev)->co, editedge_getOtherVert(tempsv->down,ev)->co, fabs(newlen)); - if (uvlay_tot) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) { + if (uvlay_tot) { /* dont do anything if no UVs */ for (uvlay_idx=0; uvlay_idxoptions |= CTX_NO_PET; } } + + /* initialize UV transform from */ + if (RNA_struct_find_property(op->ptr, "correct_uv")) { + if(RNA_property_is_set(op->ptr, "correct_uv")) { + if(RNA_boolean_get(op->ptr, "correct_uv")) { + t->settings->uvcalc_flag |= UVCALC_TRANSFORM_CORRECT; + } + else { + t->settings->uvcalc_flag &= ~UVCALC_TRANSFORM_CORRECT; + } + } + else { + RNA_boolean_set(op->ptr, "correct_uv", t->settings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT); + } + } + } else if(t->spacetype==SPACE_IMAGE) { diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index fb40cee95fb..54e0b31e201 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -508,6 +508,11 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) RNA_def_boolean(ot->srna, "texture_space", 0, "Edit Object data texture space", ""); } + if (flags & P_CORRECT_UV) + { + RNA_def_boolean(ot->srna, "correct_uv", 0, "Correct UV coords when transforming", ""); + } + // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit /*prop =*/ RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button"); //RNA_def_property_flag(prop, PROP_HIDDEN); @@ -755,7 +760,7 @@ void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot) RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f); - Transform_Properties(ot, P_MIRROR|P_SNAP); + Transform_Properties(ot, P_MIRROR|P_SNAP|P_CORRECT_UV); } void TRANSFORM_OT_edge_crease(struct wmOperatorType *ot) -- cgit v1.2.3 From 6d7490632f13f9744c6b3e507c838a34f3481846 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Wed, 3 Aug 2011 09:25:40 +0000 Subject: 3D Audio GSoC: * Minor audaspace library improvements. * Considering location, velocity and orientation in AUD_SequencerReader and AUD_SequencerHandle. * Bugfix: Maximum and Minimum volume weren't used before in the software device. * Bugfix: Adding speaker objects via info space crashed. * Listener settings now get updated in the audio system. --- source/blender/blenkernel/BKE_sound.h | 2 ++ source/blender/blenkernel/intern/sound.c | 11 +++++++++++ source/blender/editors/object/object_add.c | 4 +--- source/blender/makesdna/DNA_scene_types.h | 1 + source/blender/makesrna/intern/rna_scene.c | 14 +++++++++++--- 5 files changed, 26 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 5ccb34338af..632a2a0bb3b 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -84,6 +84,8 @@ void sound_mute_scene(struct Scene *scene, int muted); void sound_update_fps(struct Scene *scene); +void sound_update_scene_listener(struct Scene *scene); + void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip); void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip); diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 6e8b26c6ca6..59f5cdb678e 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -354,8 +354,11 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, void sound_create_scene(struct Scene *scene) { scene->sound_scene = AUD_createSequencer(FPS, scene->audio.flag & AUDIO_MUTE); + AUD_updateSequencerData(scene->sound_scene, scene->audio.speed_of_sound, + scene->audio.doppler_factor, scene->audio.distance_model); scene->sound_scene_handle = NULL; scene->sound_scrub_handle = NULL; + scene->speaker_handles = NULL; } void sound_destroy_scene(struct Scene *scene) @@ -366,6 +369,8 @@ void sound_destroy_scene(struct Scene *scene) AUD_stop(scene->sound_scrub_handle); if(scene->sound_scene) AUD_destroySequencer(scene->sound_scene); + if(scene->speaker_handles) + AUD_destroySet(scene->speaker_handles); } void sound_mute_scene(struct Scene *scene, int muted) @@ -380,6 +385,12 @@ void sound_update_fps(struct Scene *scene) AUD_setSequencerFPS(scene->sound_scene, FPS); } +void sound_update_scene_listener(struct Scene *scene) +{ + AUD_updateSequencerData(scene->sound_scene, scene->audio.speed_of_sound, + scene->audio.doppler_factor, scene->audio.distance_model); +} + void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip) { if(scene != sequence->scene) diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 48e138dfcdc..97a98d2017f 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -789,14 +789,13 @@ void OBJECT_OT_speaker_add(wmOperatorType *ot) ot->idname= "OBJECT_OT_speaker_add"; /* api callbacks */ - ot->invoke= WM_menu_invoke; ot->exec= object_speaker_add_exec; ot->poll= ED_operator_objectmode; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - ED_object_add_generic_props(ot, FALSE); + ED_object_add_generic_props(ot, TRUE); } /* only used as menu */ @@ -1636,7 +1635,6 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } break; case OB_SPEAKER: - // AUD_XXX TODO: always duplicate Speakers on speaker object duplication? if(dupflag!=0) { ID_NEW_US2(obn->data ) else { diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 7a5d417b59c..542aea00b00 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -806,6 +806,7 @@ typedef struct Scene { void *sound_scene; void *sound_scene_handle; void *sound_scrub_handle; + void *speaker_handles; void *fps_info; /* (runtime) info/cache used for presenting playback framerate info to the user */ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 0a97344928f..f2618280fa2 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -337,6 +337,11 @@ static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA * sound_update_fps(scene); } +static void rna_Scene_listener_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) +{ + sound_update_scene_listener(scene); +} + static void rna_Scene_volume_set(PointerRNA *ptr, float value) { Scene *scene= (Scene*)(ptr->data); @@ -3462,21 +3467,24 @@ void RNA_def_scene(BlenderRNA *brna) prop= RNA_def_property(srna, "audio_doppler_speed", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "audio.speed_of_sound"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0.01f, FLT_MAX); RNA_def_property_ui_text(prop, "Speed of Sound", "Speed of sound for Doppler effect calculation"); - RNA_def_property_update(prop, NC_SCENE, NULL); + RNA_def_property_update(prop, NC_SCENE, "rna_Scene_listener_update"); prop= RNA_def_property(srna, "audio_doppler_factor", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "audio.doppler_factor"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0.0, FLT_MAX); RNA_def_property_ui_text(prop, "Doppler Factor", "Pitch factor for Doppler effect calculation"); - RNA_def_property_update(prop, NC_SCENE, NULL); + RNA_def_property_update(prop, NC_SCENE, "rna_Scene_listener_update"); prop= RNA_def_property(srna, "audio_distance_model", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "audio.distance_model"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_enum_items(prop, audio_distance_model_items); RNA_def_property_ui_text(prop, "Distance Model", "Distance model for distance attenuation calculation"); - RNA_def_property_update(prop, NC_SCENE, NULL); + RNA_def_property_update(prop, NC_SCENE, "rna_Scene_listener_update"); prop= RNA_def_property(srna, "audio_volume", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "audio.volume"); -- cgit v1.2.3 From 461bb17d31cc17c07a4b00437b5b90d58f14a894 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 Aug 2011 09:28:16 +0000 Subject: fix [#27965] VSE: no visual feedback on locked strips added xpm -> opengl stipple conversion script. --- source/blender/editors/include/BIF_glutil.h | 2 ++ source/blender/editors/screen/glutil.c | 38 ++++++++++++++++++++++ .../editors/space_sequencer/sequencer_draw.c | 19 +++++++++++ 3 files changed, 59 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h index c9615204607..27bd31c20ff 100644 --- a/source/blender/editors/include/BIF_glutil.h +++ b/source/blender/editors/include/BIF_glutil.h @@ -52,6 +52,8 @@ void fdrawXORcirc(float xofs, float yofs, float rad); /* glStipple defines */ extern unsigned char stipple_halftone[128]; extern unsigned char stipple_quarttone[128]; +extern unsigned char stipple_diag_stripes_pos[128]; +extern unsigned char stipple_diag_stripes_neg[128]; /** * Draw a lined (non-looping) arc with the given diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c index 2918c98c84a..f56ae17d366 100644 --- a/source/blender/editors/screen/glutil.c +++ b/source/blender/editors/screen/glutil.c @@ -92,6 +92,44 @@ GLubyte stipple_quarttone[128] = { 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0}; +GLubyte stipple_diag_stripes_pos[128] = { + 0x00, 0xff, 0x00, 0xff, 0x01, 0xfe, 0x01, 0xfe, + 0x03, 0xfc, 0x03, 0xfc, 0x07, 0xf8, 0x07, 0xf8, + 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xe0, 0x1f, 0xe0, + 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x80, 0x7f, 0x80, + 0xff, 0x00, 0xff, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0xfc, 0x03, 0xfc, 0x03, 0xf8, 0x07, 0xf8, 0x07, + 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, + 0xc0, 0x3f, 0xc0, 0x3f, 0x80, 0x7f, 0x80, 0x7f, + 0x00, 0xff, 0x00, 0xff, 0x01, 0xfe, 0x01, 0xfe, + 0x03, 0xfc, 0x03, 0xfc, 0x07, 0xf8, 0x07, 0xf8, + 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xe0, 0x1f, 0xe0, + 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x80, 0x7f, 0x80, + 0xff, 0x00, 0xff, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0xfc, 0x03, 0xfc, 0x03, 0xf8, 0x07, 0xf8, 0x07, + 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, + 0xc0, 0x3f, 0xc0, 0x3f, 0x80, 0x7f, 0x80, 0x7f}; + + +GLubyte stipple_diag_stripes_neg[128] = { + 0xff, 0x00, 0xff, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0xfc, 0x03, 0xfc, 0x03, 0xf8, 0x07, 0xf8, 0x07, + 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, + 0xc0, 0x3f, 0xc0, 0x3f, 0x80, 0x7f, 0x80, 0x7f, + 0x00, 0xff, 0x00, 0xff, 0x01, 0xfe, 0x01, 0xfe, + 0x03, 0xfc, 0x03, 0xfc, 0x07, 0xf8, 0x07, 0xf8, + 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xe0, 0x1f, 0xe0, + 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x80, 0x7f, 0x80, + 0xff, 0x00, 0xff, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0xfc, 0x03, 0xfc, 0x03, 0xf8, 0x07, 0xf8, 0x07, + 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, + 0xc0, 0x3f, 0xc0, 0x3f, 0x80, 0x7f, 0x80, 0x7f, + 0x00, 0xff, 0x00, 0xff, 0x01, 0xfe, 0x01, 0xfe, + 0x03, 0xfc, 0x03, 0xfc, 0x07, 0xf8, 0x07, 0xf8, + 0x0f, 0xf0, 0x0f, 0xf0, 0x1f, 0xe0, 0x1f, 0xe0, + 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x80, 0x7f, 0x80}; + + void fdrawbezier(float vec[4][3]) { float dist; diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 594d2942e8f..98687bb90e0 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -639,6 +639,25 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline /* draw sound wave */ if(seq->type == SEQ_SOUND) drawseqwave(scene, seq, x1, y1, x2, y2, (ar->v2d.cur.xmax - ar->v2d.cur.xmin)/ar->winx); + /* draw lock */ + if(seq->flag & SEQ_LOCK) { + glEnable(GL_POLYGON_STIPPLE); + glEnable(GL_BLEND); + + /* light stripes */ + glColor4ub(255, 255, 255, 32); + glPolygonStipple(stipple_diag_stripes_pos); + glRectf(x1, y1, x2, y2); + + /* dark stripes */ + glColor4ub(0, 0, 0, 32); + glPolygonStipple(stipple_diag_stripes_neg); + glRectf(x1, y1, x2, y2); + + glDisable(GL_POLYGON_STIPPLE); + glDisable(GL_BLEND); + } + get_seq_color3ubv(scene, seq, col); if (G.moving && (seq->flag & SELECT)) { if(seq->flag & SEQ_OVERLAP) { -- cgit v1.2.3 From fde1dc0fb2fd6275e85821f12a6bc362cc6a2d38 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Wed, 3 Aug 2011 13:34:49 +0000 Subject: Speaker Object icons, thanks Phil Gosch. --- .../editors/animation/anim_channels_defines.c | 2 +- source/blender/editors/datafiles/blenderbuttons.c | 13390 ++++++++++--------- source/blender/editors/include/UI_icons.h | 4 +- .../blender/editors/space_outliner/outliner_draw.c | 4 +- 4 files changed, 6736 insertions(+), 6664 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index f08b6e8b9a2..20597ca5cdd 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -608,7 +608,7 @@ static int acf_object_icon(bAnimListElem *ale) case OB_LATTICE: return ICON_OUTLINER_OB_LATTICE; case OB_SPEAKER: - return ICON_SPEAKER; + return ICON_OUTLINER_OB_SPEAKER; case OB_ARMATURE: return ICON_OUTLINER_OB_ARMATURE; case OB_FONT: diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c index f0f20e8262e..b2b2612cd4a 100644 --- a/source/blender/editors/datafiles/blenderbuttons.c +++ b/source/blender/editors/datafiles/blenderbuttons.c @@ -1,6664 +1,6736 @@ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 213035; +int datatoc_blenderbuttons_size= 215334; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, - 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,104, -111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247, -222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, - 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225, -123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, - 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, - 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8, -128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39, -127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, - 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, - 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120, -153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121, -153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234, -191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37, -238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229, -228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93, -129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, - 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, - 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128, -104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, - 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100, -128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, - 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, - 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, - 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100, -116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196, -108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, - 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, - 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, - 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201, -218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83, -226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161, -182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17, -221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, - 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, - 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83, -227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89, -195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205, -217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156, -116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72, -171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, - 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, - 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, - 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15, -140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, - 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184, -101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17, -167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23, -103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58, -222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, - 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245, -157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229, -209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97, -239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67, -127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101, -246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, - 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119, -209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63, -198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, - 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22, -140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236, -145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, - 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7, -201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, - 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57, -178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77, -107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, - 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207, -102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151, -205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, - 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73, -251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29, -210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233, -247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, - 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103, -242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139, -231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187, -156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61, -221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65, -217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, - 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203, -174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, - 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83, -208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160, -189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, - 7,219, 7, 12, 5, 5, 6,222, 4,182,127, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213,226, 61, 51, 59,179, -187,217,146, 77, 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, 86,132,167,207,103,197,134, 5, 84, 68, 68, 32, - 54, 64,240, 39,242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201, 38,219,203,220,223, 31,217, - 89, 55,203,182, 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239,156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, 64, 57, 29,219,128,191, 59,103, 11,198,157, 52, - 35,231, 0, 7,231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166,228,163,230, 74, 79,151,112,146,230, 14,103, 75, -113, 54, 87, 57,242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221,243, 79,128,188, 77,226, 12, 48, 79, 53, 53,156, -164,185,195,217, 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197,117, 4,174, 5, 69, 86,192,200,204,204,100, 92, -248,153,191, 43,167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207,230,194,187,153,153,153,204,234,213,171,183, 2, - 24,208,156,113,111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202,247, 45,205,217, 92,101,201,157,179, 57,242,189, -167,251,222,130,247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188,238,156,205, 81,150,220, 57,155, 35,223,255, 25, -156,205, 81,150, 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129,123, 1, 31,248,119, 22, 68, 45, 37, 54,155,224, -192,252,229,156,205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145,223, 93, 57,155,139,223,157,167, 57,238,147, 39, -206,171, 13,175,151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, 44,185,113, 14,108,230,151,129,129, 46,191,223, -109, 78,206,230, 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, 61,238,205,241, 12,105, 41,222,107, 26, 45,213, -124,214,220,156, 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206,230,228,116, 15, 99,115, 54,247,180,100, 56,155, -147,179, 9, 97,189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202,155, 59,218, 18,225,108, 78,206, 0,185,175, 9, -206,171,184,247,215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211,146,194,181, 57,195, 57,176, 37, 28,194, 22, 64, -179,135,211,241,166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, 37,183, 60, 57,176, 25,157,162,102,117,158,221, - 57,155,227, 26,174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92,133, 11, 65, 57, 41, 39,229,164,156,148,147,114, - 82,206,235,150,243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,226, 31, 5,175,237,187, -113,113,113,171,149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147,240,175, 3,189, 71, 20,255, 32,176,248,195, 65, - 23, 0, 16,199, 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228,201, 14,130, 32,192,110,183,195,102,179, 57, 63, -205,102, 51,250,247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231,216,237,246,243,101,101,101,125,125, 28,178, 19, - 64, 10,195,252,161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, 73,113,231,243,194, 37,126,247,201, 25, 18, 18, -178,159,227,184, 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71,215, 51,162,163,163,115, 56,142,107,114,254, 44, - 45, 45,245,154, 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, 47, 94,236,235, 67,136,236, 4,144,226,243, 13, -202, 45, 63, 49, 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, 78,145,197,113, 92, 86, 84, 84,212, 51,122,189, -222, 8,128, 72, 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, 38, - 19,242,242,242, 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81,209,176, 89, 44, 80,181,138,116,114,151,157, 56, - 6,155,213, 2,155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, 62,248,224,131,168,224,224, 96, 24,141, 70, 24, -141, 70,152, 76, 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22,216,108, 54,152, 76, 38,100,103,103,219,173, 86, -171, 79,206,105,211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133,209,104,196,166, 77,155,124,114,114, 28,151, 80, - 82, 82, 18, 37,149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91,139,175, 64,182,208, 61,186,158,209, 97,218,210, - 53, 81, 33, 10, 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, 96,179,161,253,243,163,157,251, 59,117,234,228, - 51,127, 18, 66, 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37,104,112,155,189, 9,173, 4,131,193, 16,229,224, -191, 76, 16,177, 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, 95,142,178, 90,173, 48,155,205, 48,153, 76,176, - 90,173,176,217,108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100,125,112,219,109,183, 61,190,102,205, 26,213,207, - 63,255,172, 74, 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, 14, 55,223,124, 51, 67,179, 32, 5, 5,197,117, - 35,180, 76, 38, 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184,246,237,219,231,186,159,231,175,185, 42, 56, 42, - 26, 19, 91,135, 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93,168, 5, 0, 40, 20, 10, 48,174,175,209, 94,160, - 82,169,112,219,109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74,193,243,188,223, 68, 97, 24, 6,106,181, 26, 83, -166, 76, 17, 69, 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, 4, 28,199, 57,183, 64, 56,165, 82, 41,142, 30, - 61, 10,142,227, 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, 14, 10,133, 2,240, 51,115,176,235, 61, 50,155, -205,177, 50,153,204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81,200, 49,102,222, 79, 0,128,162, 89,207, 59,239, -221,158,103,223,113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, 89, 93, 93,109,120,232,161,135,182, 7, 7, 7, -175,215,106,181,240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115,230, 76,156, 57,115, 38,160,184, 27,141, 70, 44, - 88,176, 0,118,187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, 94,179,102, 77, 24,195, 48,248,236,179,207, 32, -149, 74, 49,124,248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215,105,230,163,160,160,240, 85,231,241, 0,110, 4, - 16,233, 48, 17,234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, 79, 47,199, 49, 21, 12,195,236,115,249,109, 6, - 32,243,176,191, 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174,203, 1, 13,235, 15, 1,216, 2, 96, 96,102,102, -230, 86, 0, 40, 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183,163,168,121, 28,205, 83, 82,155,205,214, 65,108, -170, 18,221,162, 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83,115,133, 55, 1, 99,177, 88,240,192, 3, 15, 0, -128,215,135,142,235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195,210,113, 19,177, 66, 87,207,192, 86,171,195, 61, -106, 43, 78,118,238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193,171,200,146, 72, 36,152, 55,111, 30, 30,122,232, - 33, 72, 36,146,128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76,142,123, 36,183,217,108, 26,155,205, 22, 97,183, -219, 35,154,114,143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, 86, 87, 87, 27, 50, 51, 51,119,203,229,242,133, -209,209,209, 37,197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48,103,206, 28, 12, 26, 52, 40,160,112,154, 76, 38, - 48, 12,131,249,243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, 23, 23,247,236,186,117,235, 52,226,177,173, 90, -181, 2,207,243,232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, 37, 5, 5,197,181, 11, 79, 90,196, 5,253, 39, - 78,156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106,151, 58, 49,211, 81,191,174, 22,127, 19, 66,122, -185,138, 30,135, 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, 76,252, 61,113,226,196,180,172,172,172,233, 19, - 38, 76,120,115,198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, 56, 60, 57, 90, 62,215,158, 18,155,168, 78,157, - 58,229,173,137,202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56,247, 79, 41,174,113, 62,192,230,246,104, 7,149, - 74,133, 97,239,125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129,114, 42, 21, 65,200,126,185, 11,138,170,100,120, -119, 87, 53,214, 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101,120,249,116, 33,172, 36,176, 62,189,132, 16,143, - 2, 75,252, 46, 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, 8, 13, 15,118, 5, 33, 36,140, 97,152, 58,135, -203, 21, 27,232, 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164,238,168,243,158,140,159,247, 33, 0, 96, 80,247, -155,253,150,135, 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61,122,116,193,230,205,155, 21,129,132,213,147,208, - 18, 93, 91, 81,100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, 74,175,196,209,130, 78,167, 51,175, 92,185, 18, -115,231,206, 69, 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, 60,255,252,243, 80, 40, 20,162,123, 77, 51, 32, - 5,197,245, 13, 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,165,249,121,254,175,118, 23, 79, -226,117, 25,134, 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, 50,153, 10,186,117,235, 22,144,154,208,235,245, -165,254,196,134,167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, 90,173, 78,161,178,113,227, 70, 40, 20, 10, 12, - 31, 62,252,170, 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85,157,193,249,128,217,146, 95,128,131,101,229,120, - 57, 99, 48, 84,138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, 3, 15, 60,224,116, 19, 92,251,173,192, 71,211, - 97, 68, 68,196,126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, 16,132,250,208,208,208, 31, 1,196, 17, 66, 18, - 0, 4, 7,114,143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85,134,204,204,204,221,118,131,249,155, 11, 23, 46, -236, 6, 16,116,211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115,230,204,113,254, 31,168,208,178,217,108,141, 4, -212,233,211,167, 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, 56,207,137,137,137, 65,104,104, 40, 4, 65,128, - 32, 8, 8, 10, 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, 76,152, 48,225, 77,134, 97, 86, 59,156,165, 99, - 62, 4,149, 39,237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98,226,196,137,105,238,225,240,212, 92,233,172, 85, -221,166,221,111, 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84,144, 72, 88, 48, 12, 67,252,113, 89, 44, 22,103, -197,255,204, 51,207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, 50,236,236, 54,231,185,226,198,114, 60,206,197, -116,132,228,212, 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0,203,178,206, 52,225, 56, 14,237,219,183, 71, 65, - 65,129, 79, 46,142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110,183,163,109,219,182,198,188,188,188, 23,105,209, -189, 58,145,229,109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212,168,173,181,181,181,223,220,112,195, 13,167,209, -120, 10, 4,191,124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171,213, 26,208,139,128,213,106,189, 76,240,124,252, -241,199,141, 62, 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226,182,219,110, 67,215,174, 93,241,243,207, 63, 67, - 16, 4, 60,247,220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3,234,104, 81, 80, 80,248,210, 34,166, 25, 51,102, - 28,155, 49, 99,134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, 1, 48,121, 18, 68,158, 92, 50,119, 1,230,186, - 47, 43, 43,107,186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, 91,210, 1, 52,110, 46,156,119,115, 71,168,212, - 42,168,130,213, 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170,170,242, 41,178,154,226,104,177, 50, 14, 43, 18, - 46,129,200,120,112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236,182,128, 56, 9, 33,151, 53, 21,142, 29, 59, 22, - 12,195, 56, 71,136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158,123,115,236, 7,149, 70, 90, 98,175, 36,127,238, -255, 18, 39,127,120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235,232, 86,167,251,248, 30, 94,189, 34,206,170,170, - 42,195, 77,157,210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, 24,218,173, 91,183,128,202,164, 56,184,194, 93, -100,185, 58, 89,226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200,243, 68,204,219, 26,141, 6,106,181,218, 57,226, - 54, 40, 40, 8, 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, 58, 14,177,212,200,105,114,244,173,202,116,253, -237,201,241,114, 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206,106,111, 34,141, 19, 21,164,235,103, 76, 76,204, -175,106,181, 58, 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, 96, 53, 20,106, 21, 20,193,106,175,174,151, 47, -161, 37, 58, 69,226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, 90, 78,161, 37,101,177, 65,190, 9, 18, 25,215, - 72,100,113, 28, 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107,107,193,113, 28, 38, 77,154,228,124,131,119, 21, - 89, 77,137,179, 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, 36,157, 78, 39,191,120,241,226,173,180,188,250, - 80, 6,118,235,101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199,142, 29,157, 78,150, 82,169, 20, 71,155,250,191, -199, 44,235, 81,100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205,152, 49,195,201,235,234,100,137,104, 74, 57, 18, -195,186,117,235, 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3,155,205,134,169, 83,167, 66,161, 80, 64, 38,147, -209,204, 71, 65, 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, 73, 96,185, 54, 19,138,223, 25,134,177,122,224, - 53,187, 53, 41,186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10,135, 95, 71, 75, 46,151, 39,231,229,229, 57, 39, -194,244,245,105, 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, 11,101,176, 26, 74, 77, 48, 20,106,181,187,224, - 96,252, 85,226,226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, 0,175,190,250,106,192,125,180, 68, 78,216, 25, - 20,147,179, 72,159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, 32,220, 52, 18,122,133, 26,156,221, 22,240,168, -195,234,234,106, 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72,182,141, 27, 55,250,141,187, 39, 39,107,242,249, -106, 39,143, 66,161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125,250, 8,180, 40,251, 17, 69,130, 45, 32, 81, 21, -104,254,116,231, 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, 71,135, 42,149, 74,124,245,213, 87,122, 0,178, -229,203,151, 43,252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, 26, 79, 89,226,175, 99,124, 32,121, 94, 12, 43, -195, 48,176,219,237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, 40, 40,252,213, 37,251, 2,174,199, 9,233,229, - 34,170,246, 93, 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, 64,121, 2,158, 24,179,117,207,155,241,222,133, - 90, 48, 12,131,255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, 31,157,254, 42,228, 42, 53,226,250, 13, 13,168, - 34, 23,155, 14, 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241,193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196,242, -229,203, 3,114,180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176,219, 38,227,130,153,195, 78,163, 18,253,141,199, - 33,219,240, 41,204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238,236, 83,101,179,217, 96,181, 90, 97,177, 88,240, -193, 7, 31, 4, 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35,182, -247,243,136,236,249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252,182, 97, 1,128,142, 73, 67,155,196, 89, 85, 85, -101,184,125, 80,159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227,248, 29,144, 93,198,178, 44, 36, 18,201,101,205, -133,222,196, 86, 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122,226,137, 39, 16, 27, 27,235,116,178,222,123,239, - 61, 40, 20, 10, 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20,127,186, 40,251, 51,224,177, 38, 53, 26,141,133, - 93,187,118,133,151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, 19,226, 16, 0,217,158, 42,117,134, 97, 16,172, - 9, 70,144, 90, 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95,198, 41,246, 45,113, 21, 90,226, 86, 91, 91, 11, -158,231, 49,119,238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, 95, 84,135,147,211,179, 33, 11,218,137,118, 67, - 31, 66, 44,175,128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14,120,231,157,119, 46,155,214,193, 27,226,227,227, -253,198,221,221,201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60,244,208, 67, 2, 0, 3,128, 10,131,193,112, 62, -144,244,108, 6,252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116,178,140, 2,255,117, 65, 65,129,232,100,133, 40, -149, 74,124,241,197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, 68, 34,193,172, 89,179, 60,246,201,242, 36,186, -154, 82,142, 92,207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, 68, 68, 56,157, 44,187,221,238, 28,109, 40,206, - 62,239,227,165,130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, 47,222,238,237,132,182,109,219,230,229,229,229, -181, 23,151,226,112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, 32,151,203, 65, 8,193,173,239,100,129, 97, 1, - 22,141, 31, 98, 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193,208,232,225,224,105,171,175,175,135,201,100, 10, -120, 54,111,163,209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91,160,253,118,130,130,130, 26, 53,253,248,113,172, -152, 64, 28, 45,215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71,209,108, 30, 56,196, 1, 11, 0,144,218,103, 56, - 4,193, 14, 98,183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147,201,223,180, 39, 76,101,101,165, 97,212,168, 81, - 91, 1,252,239,158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, 84, 3, 32,151, 46, 93, 10,185,112,225,130, 96, - 52, 26,219,248, 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80,162, 43,234, 58,187,123, 32,249, 83,108, 46,247, - 52, 35,188, 55, 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, 67, 42,149, 66,169, 84, 2, 0, 62,253,244, 83, -231,228,171, 20, 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104,179,217,138, 19, 19, 19,155,116, 49,187,221, 94, -230, 71,184, 21, 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22,175, 90,181, 74,234,201,221,240,182,192,180, 63, - 78,187,221, 94,156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, 48, 52, 18, 9,227,143, 23,121, 93, 59,145,194, -111, 94,243,145, 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232,232,232,170, 29, 59,118, 68,244,234,213, 43,194, -245,152, 94,189,122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220,227, 49,207,139,162,201, 67,254, 44,246,151,231, -247,238,221, 43,117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, 93,121,188,229,125,171,213, 90, 65,115, 33, 5, - 5,197,117, 47,180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170,170,170,158,205, 29, 1,171,213,218,231,159,192, - 89, 89, 89,217,172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119,143, 0,160,188,188,252, 38, 0,208,233,116,240, -183,172, 78, 19, 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131,230, 44, 10, 10, 10, 42,180,154, 0,186, 24,241, -223, 3, 45, 33, 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,150, 1,131,134,145, 3,158, -208,148,209, 4, 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188,238, 56,253,113,211,209,140, 45, 44,192, 40, - 39,229,164,156,148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, 95, - 6, 9,154, 48,163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43,224,100, 0, 72, 29,155, 56,209,145, 21,128, 5, -128,133, 97, 24,226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65,192,225, 54,109, 90, 31, 98,152, 59,204, 0,160, -138,238,212, 89,173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84,158, 87, 72,179, 7, 5,197, 95,130,187, 0, 76, - 65, 67,183,146, 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44,155,224,111,126, 30, 17,142,181,204,138, 47, 93, -186,212,179, 9,215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245,245,245,155, 1, 44, 7, 96,187,194, 56,105, 0, - 60, 0,224, 17,199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121,158, 84, 86, 86,246, 6,128,136,136,136,221, 86, -171,149,209,106,181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191,109,219,182,255, 1,152,219, 76,247, 82,206,178, -172, 71,129, 34, 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, 56,189,184,184,184, 11, 0, 36, 36, 36, 28, 29, - 61,122,244,161,113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, 43, 47,205,127,166,172,252,196, 3, 0, 16, 19, -219,101,153, 68,194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, 87,115,165, 73,201,173,177,105,231,193, 27,199, -189,248,102,218, 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, 25,247, 84,230,237,118,123,113,117,117,117, 79, -111,156, 28,199, 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, 26,141,102, 23,199,113,201,129,114,137,159, 54, -155,173,216,219, 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65,200,175,168,168,240, 22,206,203,226,222, 28,225, -188, 18, 78, 95,225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, 55,181, 90,109, 55,137, 68,130,240,240,240, 55, -205,102,243,153,144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130,162,185,160,209,104,202,234,235,235,137, 8, 65, - 16,136,213,106, 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106,181,164,182,182,150, 84, 85, 85,145,200,200, 72, -247,201, 27,189,181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, 88,136,197, 98, 33,133,133,133,228,163,143, 62, - 50,105, 52,154, 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233,230, 53,107,214, 16,163,209, 72,116, 58, 29, 89, -182,108, 25,185,225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, 49,197,103,207,158,181,111,220,184,209, 18, 18, - 18,146, 29, 18, 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0,125,155, 16, 78, 0, 24, 57,126,252,248,178,194, -194, 66, 50, 96,192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, 67, 8,137, 69,195, 36,151,151,109,132,144, 88, -199, 49, 97, 1,114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, 24,198, 28, 29, 29,157,149,159,159,223,154, 16, -162,242,197, 89,124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145,255,125, 61, 80,251,212,184, 71,151,198,182,237, -190, 32, 52, 33,109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231,191,206,191,119,220,236, 47, 34, 18,211,159,106, - 66,122, 94, 13, 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19,139,197, 66, 76, 38, 19,209,235,245,164,190,190, -158,212,213,213, 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, 86,102, 48, 24, 26,213, 29,102,179,217, 89,127, -232,245,122,162,215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, 56, 47,138,225, 20, 4,129,216,108, 54, 98,177, - 88,156,188, 70,163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, 16, 78,163,209, 72, 18, 18, 18, 74,188,113,134, -135,135,151, 25,141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, 51,144,112,250, 74, 79, 7,230,230,230,230, 18, -131,193, 64,226,227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233,233,233,194,192,129, 3, 45,149,149,149,228, 95, -255,250, 23,241,241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42,124,255,253,247, 94,151,227,112,253,222,166, 77, -155, 64,175,217, 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54,155, 17, 22, 22,134,231,158,123, 78,118,215, 93, -119,181, 31, 58,116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145,159, 77,154, 52, 41,250,193, 7, 31, 68, 68, 68, -163, 73,183, 49,106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248,208,188,121,243, 74,235,235,235,199, 1,248,209, - 23,169, 66,161,184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37,133,125,253,245,215,219,119,232,208, 65,145,144, -144,192, 94,188,120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105,139,197,178, 50,128,184,203, 34, 34, 34,222,124, -250,233,167, 91,105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, 70,175, 45, 91,182,124, 11,224,203, 43,113,178, - 8, 33, 90,252,209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, 60, 35, 35,227, 71,147,201,212,253,153,103,158, - 57, 63,125,250,116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103,207,158,253, 70,231,206,157, 7,239,218,181,235, - 62, 66,136,213, 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246,206,196, 87, 19, 62,156,150,124,110,223,241, 34, -129, 83,104,240, 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229,124, 90, 72,252, 13, 3,106, 47, 28,207,129,143, - 25,210, 41,154, 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, 90,113, 28,135,208,208, 80,191,171, 27, 4, 5, - 5, 97,227,198,141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12,131,160,160, 32,236,216,177, 3, 44,203,122, 92, - 26,200,125,159, 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, 86,171,129,134,166,127,239,133, 82, 46,199,246, -237,219,189,198,217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203,125, 73, 48,215,223, 42,149, 10,140, 31,210,176, -176,176,222, 9, 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, 79,131, 97, 24, 76,159, 62,157,185,225,134, 27, -248,210,210, 82,244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, 2, 66, 8, 15,224, 70, 0,145,104,232,118, 83, - 7, 32, 20, 13, 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, 87, 58,234, 22, 87,129, 80,225,186,248, 52, 33, -164,151,131, 91, 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0,176,122,245,106,241, 97, 54, 48, 51, 51,115,171, -107,228, 2, 17, 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247,238,221,138,200,200, 63,226, 96, 50,153, 80, 87, - 87,135,250,250,122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248,135,186,186,186, 14,142, 68,243,198, 57,235,226, -197,139,209, 54,155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, 55, 49,108,216,176,152, 65,131, 6,205,114, 19, - 90,151, 13, 37, 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197,197,197, 24, 63,126,124,107, 65, 16, 80, 84, 84, -132,211,167, 79,227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, 60, 13, 79,125,230,229,151, 95,238, 24, 22, 22, -198,126,244,209, 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251,247,143,250,247,191,255, 77,118,236,216,177,216, -113,227,188,166,167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, 7, 33, 36, 6,128,137, 97,152, 26, 15,156, 12, -128,144,161, 67,135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8,224,162,152,249, 66, 66, 66, 84,179,102,205,138, -206,204,204,204,189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, 10,151, 62, 91, 78, 78, 65,192,225,152,216, 46, -203,114,118,141,123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, 94,181,253,120,126, 5,234, 12, 54,220,123,107, -195, 2,230,189,187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253,103, 8, 84,245, 37,199,215,248, 72,207,171, 5, -229,132,179,137, 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60,118,237,218,133, 91,111,189, 21, 60,207,227,137, - 39,158, 8,136,147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, 9,178,221, 42, 91,112, 28, 7,150,101,189, 46, -164,237,206,233,175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176,200, 10,148, 83, 12, 39,199,113,232,211,167, 15, - 14, 29, 58,228, 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200,153, 59,119,110, 56, 0, 84, 85, 85, 57, 23,188, -151, 72, 36, 56,117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, 71,148,179, 37, 57,125,105, 17, 0,253, 39, 78, -156,216, 51, 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, 72,166,248, 57,113,226,196,180,172,172,172,233, - 19, 38, 76,120,115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166,155,136,139, 20,121, 28,101,174,209,177,158,126, -187,127,122,226,110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,126,250,244,233,209,190, - 68, 86,125,125, 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185,207,219,108,182,143,125,208, 74, 37, 18, 9,246, -238,221,139,242,242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214,174, 93,139,154,154, 26,244,232,209, 3,104,232, -220,237, 17,221,186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62,124, 24,221,187,119,199,247,223,127,143, 54,109, -218, 64,169, 84, 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244,244,116,155, 86,171,221, 86, 93, 93,189,249,220, -185,115,239,122, 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243,205, 55,219, 1,108, 7,240,252, 91,111,189,245, -248,176, 97,195,162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, 50, -153,172, 44,203, 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, 89, 89,249,220, 75, 47,189, 84,224, 16, 89,167, -208,208, 1, 30, 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126,248,204,210,165, 75,159, 27, 59,118,236,242,111, -190,249,166, 30,128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95,177,252,203,151,215,174,122,190,117, 81,209,133, -246, 17,173, 34,117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200,217, 82,240,188, 4, 39,138,106,209,255,246, 81, -252,153,188,105,125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22,159,142,214,174, 93,187,192,243, 60, 20, 10, 5, -102,207,158,237,147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, 65,112, 46,244,238,190,253,223,255,253, 31, 94, -122,233,165, 70,215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172,209,190, 64, 22,165,183,219,237,224,121, 30, 11, - 22, 44, 64,102,102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144,244,236,211,167, 15, 44, 22,139, 51,204,167, 78, -157,242,200, 59,111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26,132,156,156, 28,220,127,255,253, 38,139,197,146, - 7, 0,119,222,121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254,252,249,255,129,118,144,167,104, 97,120,210, 34, -226, 51, 47, 43, 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145,233, 42,138, 92,127,139,174,147,155,136, 75,115, -117,164, 92, 69,148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160,171, 11, 36, 86,190,254, 68,150,143, 55,199, 70, - 8, 9, 9, 25,126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191,115,115,115,209,179,103, 79,105, 72, 72,200,240, -170,170,170,143, 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, 68, 88,173, 86,172, 95,191, 30,181,181,181,224, -121, 30, 82,169, 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185,104,209,162, 75,226, 27,221,146, 37, 75, 64, 8, - 65,100,100, 36,244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106,164,164,164,200,238,185,231,158,190, 83,166, 76, -225,125, 8,173, 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, 12,199,190,201,227,198,141,139, 40, 44, 44, 52, - 63,249,228,147,123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150,213,106, 21,211,180,160,190,190, 30,173, 90,181, - 74,116,117,182,188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50,215, 48,152,205,102,212,215,215, 67,167,211, 89, -107,107,107,203, 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12,115,135, 89,163, 81,202, 8,145,188, 53,127,254, -124,245,176, 97,195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234,155, 50, 61,235,195, 13,154,132,174,101, 59, 14, -231,227, 66,105, 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139,211,209,114, 21, 21, 57, 57, 57,184,253,246,219, -157,101, 93, 42,149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103,203,150, 45, 30,221, 39,127,112, 21, 69,238,226, -200,147, 0, 99, 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, 95, 51, 7, 56,142,195,184,113,227,192,243, 60, - 94,127,253,117,112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91,111,189,181,201,113,223,189,123, 55,186,119,239, -238, 12, 83,122,122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, 67,135, 6,194,249,102, 93, 93, 93, 55,181, 90, -141,220,220, 92, 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6,111,130,189, 0, 0, 32, 0, 73, 68, 65, 84,215, -235,219, 26,141, 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, 26,169,208,162,104, 49,184,107, 17, 23, 24, 38, - 76,152,240, 38,195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80,251, 28,101,181,151,155,136,171, 96, 24,102, 31, - 33,228, 78,111,231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177,242, 13, 84,104,249,131,209,104,188, 49, 42, 42, -202,171,200,114,253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216,216, 88, 88, 44, 22,124,249,229,151,144, 74,165, -144, 74,255,208, 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, 71,143,176,159,126,250,169, 98,192,128, 1,145, -195,134, 13,131, 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, 20, 23, 23,227,215, 95,127,173,236,208,161, 67, -171, 61,123,246, 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117,235,214, 85, 2,216, 39,151,203,215, 78,155, 54, - 45,204,108, 54, 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, 96,192,128,140,236,236,236,111, 5, 65,152,221, -212,140,234,158,182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, 0,149, 74, 21, 14,224,140, 51,135, 27, 12,141, -196,176,217,108, 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138,115,231,242,131, 93,251,207,133,134,134,226,145, -135, 31,102,111,233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52,230,148,184, 8, 88,237, 86,100,111, 88, 47, 16, -193,186,129, 86, 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122,217, 62,169, 84,138,255,254,247,191, 1, 9, 3, - 81, 84,121,107, 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, 2, 8,130,128,151, 95,126,185, 81,115,162, 43, -127, 64,118,158,139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58,206, 9,200, 37,155, 59,119,110, 64,142,214,157, -119,222,233, 87,184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, 55, 61,237,118, 59,214,172, 89,227, 20,169, 34, -222,126,251,237,167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250,250,122,244,238,221, 59,133,101,217,195,165,165, -165,133, 39, 78,156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, 25, 51, 60, 58, 86,238,206,146, 47,231, 73, 20, - 88, 14, 65, 20, 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, 70,144,155,138,156,226,169,242, 13,164,249, 48, - 64, 59,157, 99, 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213,176,219,237, 87, 60,215,151,167, 55, 89,127, 66, -235,232,209,163,255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130,112,235,174, 93,187, 34, 57,142,131, 70,163,129, - 70,163,193,218,181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, 28, 97, 48, 24,126, 47, 45, 45,125,219,171,130, -225,249,161,253,250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244,209,219, 91,183,110,205, 76,155, 54,205,120,246, -236,217,217, 0,202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209,163,177,117,235,214,249, 0,140,129,198, 89,167, -211, 53, 18, 88, 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, 12, 65, 8,113,222, 27,135,155, 37,222, 31,194, -113,156, 56,170,209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187,221,142,178,178, 50,104, 52, 26, 76,122,251,109, -233,123,227,255,221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93,217,131,219,128,119,105,205,243, 39, 64, 20, 6, -119,223,125,247,101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, 61,122,244,240,251,114, 37, 10,131,187,238,186, -203,233, 12,173, 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, 5,112, 28,135,207, 62,251, 12,175,188,242, 10, - 88,150,197,204,153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252,176,225, 51,225, 21, 45,170,230, 69, 3, 0,130, - 53, 26, 49, 66, 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, 70, 6, 56,142,115, 58, 89,195,135, 15,119, 77, - 71, 18, 8, 39,199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28,238,188,243,206, 64,130, 57, 61, 52, 52,116, 74, -167, 78,157, 58,207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57,155,205, 22, 49,117,234, 84,165,135,115, 20, 0, -186,117,238,220, 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, 9, 47,146,171, 93,143, 23, 57,220,197,145,195, - 33,203,241,199,229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103,159, 23, 83, 42,149, 71,202,203,203, 51, 20, 10, - 69, 35,145,229, 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205,118, 19,253, 53, 29, 2, 48,158, 62,125,122,188, -203,239, 33,195,135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, 35, 35, 49,119,238,220,139,101,101,101,255, 2, -176,177,178,178,210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, 21,192,191,159,123,238, 57,198,106,181, 98,222, -188,121, 58, 0,235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217,217,218, 61,123,246,252, 22,160,200,178, 11,130, -112,153,192,114, 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59,202, 96, 48,104,229,114,121,176, 86,171, 53,185, - 10, 44,145,159,227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230,228, 56,110,240,224,193,131, 57,247,123, 80, 86, - 86,134,210,210, 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110,211, 58, 80,145,245, 39, 57, 90, 68, 44,235,226, - 40, 65, 79, 35, 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209,198,141, 27,125,118, 88,119,107, 58,244,107,141, -139,199,127,254,249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, 76,155, 54, 13, 19, 38, 76, 0,199,113,126,155, - 14, 93, 5, 76,210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, 98, 2, 21,111,190,220,188, 64, 90, 2, 92, 57, -197,243,130,130,130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238,200,200,200, 8,217,191,127, 63,102,206,156, 41, - 53,153, 76,109,178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75,184, 89, 62,254,174,112,235, 95,197,184, 54,227, -249,248,116, 63, 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229,126, 13,215, 99, 42,188, 58, 90,254, 42, 11,127, -130, 43, 16, 71, 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, 80,167,211, 33, 58, 58, 26,199,142, 29,179,233, -245,250,223, 2,112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190,125,123,196,199,199,195,104, 52,162,166,166, 70, - 2, 96, 99,128, 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, 14, 29,112,224,192, 1, 84, 87, 87,255, 8, 96, -216,148, 41, 83,122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, 86,107, 64, 74, 67, 16, 4,179,205,102, 75,102, - 89,214, 82, 83, 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, 13, 68,104,117,235,214,109,239,249,243,231, 49, -117,234,212,138,233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70,163,145,109,213,170,149,124,222,188,121, 10, 0, -232,214,173,219, 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, 45, 45, 69,105,105, 41,202,202,202, 80, 87, 87, -135,148,148, 20,232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118,125,144, 55,165,172,187, 10,152,187,239,190,219, -217,183, 75,116,200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, 94,120,225, 5, 4, 5, 5, 97,214,172, 89,141, -154, 14,221,197,129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, 17,207,148, 53,106,162,243, 32, 56, 2, 10,231, -244,233,211,155,165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141,194,182,109,219,174,184,233, 48, 45, 45,109,201, -234,213,171, 67,142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23,123,109, 21,112,212,229, 65,180,228, 80,252,201, -245,212,190, 63,147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38,211,172, 23, 95,124,241,185, 33, 67,134,132, 7, - 7, 7,163,164,164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, 86,105, 77, 38,211, 44,127,226,192,106,181, 34, - 42, 42, 10,149,149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128,159, 78,230,158, 30, 24, 22,139, 5, 86,171, 21, - 86,171, 21, 22,139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184,184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, 70, -246, 13,185,253,246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223,179,227,155,115,114,114,146, 1, 64,161, 80,228, - 2, 64,113,113,177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, 33,200,201,201, 73,150, 74,165, 4,222, 71, 53, - 26, 87,174, 92,121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116,233,146,172,211,233,202, 13, 6,131,193,104, 52, - 18,137, 68, 34, 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, 75, 87,174, 92,121,220,155,243,166, 82,169,138, -245,122,125,146,120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, 60,239,175, 89,151,162,229, 32,190, 84,185, 59, - 47,238,251, 2, 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20,189,242,202, 43,152, 51,103,206,101,142,214,180, -105,211, 0, 0,111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168,110, 20,118, 0, 96,196,240, 53,173,204,131,227, - 56, 76,157, 58,245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, 56,142, 67,120,120, 56, 30,121,228, 17, 12, 29, - 58,212,217, 4,217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225,253,247,223,175, 14, 13, 13, 13,254,207,127,254, -195,213,212,212, 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81,135, 94, 42,203, 33,104, 60,215, 70,173, 94,175, -127,228,182,219,110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174,174,134,217,108,134, 84, 42, 69,108,108, 44,106, -106,106,240,245,215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, 47, 62,254,248,227,160,244,244,116, 84, 87, 87, -163,190,190,222, 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126,253,122, 3,128,183,252,112,122, 82,115,176, 88, - 44, 78,193, 21,128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82,166, -180,109,219,150, 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, 66, 46, 1,136, 49,155,205, 82, 0,168,173,173, -181,180,106,213, 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, 54,155, 77, 10, 0,253,250,245, 51, 3, 40,117, - 91,163,208,149, 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, 73,123,246,217,103,143, 62,249,228,147,108,124, -124,124, 88, 93, 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15,225,121,254,220,252,249,243,167, 0,208, 50, 12, - 35,120,226,180,217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202,202,202,156, 34,171,172,172, 12,157, 58,117,194, -174, 93,187,236, 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235,222, 4,150,248, 50, 21, 40,167,171, 40, 26, 53, -106, 84, 35, 23, 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, 58,199,215, 27,111,188,209, 72,180, 77,154, 52, -201,107,117,230, 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41,214,157, 60,207, 99,210,164, 73, 1, 59, 90,184, -188,143,214,101,156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127,233,105,183,219, 95,152, 51,103, 14,209,104, 52, - 55,107,181,218, 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50,153, 76,114, 90,142, 40, 39, 90,102,126,174,235, - 71,104, 57, 30,146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, 3, 27,242,242,242,238,187,229,150, 91,190,125, -225,133, 23,130,211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, 99,182,149, 43, 87,106,245,122,253,163, 0, 2, - 25,117,182,232,248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121,178, 36, 53, 53, 21,181,181,181, 8, 11, 11, 67, - 84, 84, 20, 78,157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180,161,250,123,225,183, 88, 44,120,232,161,135, 32, - 8, 2,102,207,158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151,222, 49,187, 52, 78,159, 62, 13, 0,231,146,147, -147,131, 1, 32, 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234,212,169, 83,129,123,229, 40, 58, 89,162, 11,230, - 47,220, 12,195, 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127,254,240,231,159,127,126,217,113, 26,141,102,233, -204,153, 51,223,123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102,204,152, 7,142, 28, 57, 18, 28, 20, 20, 4,157, - 78,135,170,170, 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, 24, 12,239,210,226,248,215,192, 85, 24,120,115, -181, 2, 16, 89, 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129,206,109,229,235,165, 72,156,150,198,211,148, 17, - 77,172,215, 46,227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, 8, - 2,238,188,243,206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, 83,167, 78,169, 0,228,174,105,208, 68, 23,159, -130,130,194,159,208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106,181, 22, 7,120,221,245, 58,157, 46,101,230,204, -153, 47,170, 84,170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211,167,104,218, 34,208, 21, 0,158,223,189,123,247, -236, 97,195,134, 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121,228,236,217,179, 43, 28, 46,214,217, 43, 73,164, -240,240,240,227, 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20,193,193,193,199,171,171,171, 3,165, 40,223,180, -105,211, 55,125,250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125,251,246, 29,179,107,215,174, 37, 0,142,109,222, -188,121, 97,239,222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150,205,230,185,165,209,139,147,229,139, 83, 75, 8, -177, 60,254,248,227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, 0, 8, 13, 13, 61,210,171, 87,175,189,203,150, - 45, 59,229,112,178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239,191,175, 74, 75, 75,227,218,183,111,143,194,194, - 66, 28, 61,122,212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127,157,208, 34,132, 32, 52, 52,180,209, 75,148, 56, -228,191,169,205,133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, 86,171,157,147,155, 6,210,101, 65, 16,124,207, -199, 70, 8,113,114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50,189,131, 74,165,130,213,106,117,242, 6, 48,242, -179,169,106,241, 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66,235,210,165, 75, 61, 91,248,218, 90,147,201,244, -158,201,100,122, 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241,166, 77,155,196,118,132,169,240,191, 94,162, 79, -156, 60,121, 50,147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, 11, 11,255,211, 20, 14,187,221,254,248,174, 93, -187,158,131,163, 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237,246,199,247,236,217,227,252,221,196, 7, 37, 33, -132,152, 8, 33,113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, 28,198, 31,243,100, 89, 29,155,209,173,185,208, - 23, 54,235,116,186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, 85,100,179,217,126,211,235,245,111,161, 97,141, - 42,138,191, 8,102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94,172,236,118,123,113,135, 14, 29,252,190,156,121, -224,188,224, 67, 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, 37, 37, 5, 77,229,244, 23,247,228,228,100,143, -113,247, 35, 8,189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, 50, 50,178,222,104, 52,242, 38,147,137,183,217, -108,141,236, 71,133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199,126, 52, 44, 47,209, 92, 48, 29, 57,114,228, 49, -167, 61, 85, 94,126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, 66, 74,223, 76,116,149,245,245,245, 79,138, 63, -196, 62, 32, 20,127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171,172,172,204,104,129,184,247,188, 94, 57,125,161, -164,164,228,102, 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160,160,160,160,104, 25, 48,104, 24, 57,224, 9, 77, - 25, 77, 48,228, 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235,142,211, 31, 55, 29,205,216,194, 2,140,114, 82, - 78,202, 73, 57, 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, - 5, 5, 5, 21, 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, 0,198,182,240,181, 30,233,221,187,119,149, 92, - 46,223, 0, 32,149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218,181,235,246,147, 39, 79,118,202,206,206,142,139, -143,143,255,176, 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, 98, 98, 98,114,174, 80,108,165,182,105,211,230, - 68,106,106,106, 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, 4, 41,174, 3,116, 1,208,149, 10, 45, 10, 10, - 10,138, 22, 20, 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14,181,228, 5,115,115,115, 47,237,220,185, 19, 9, - 9, 9, 88,178,100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63,113,226, 68,167,236,236,236,248,168,168,168, 79, -154, 51,124, 55,221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228,149, 10, 65, 10,138,191, 51,228, 0, 30, 99, 24, -102,111,151, 46, 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, 25, 24, 86,175, 94,189,117,245,234,213, 91,105, - 30,161,160,160,104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125,246, 25, 9, 15, 15,183, 0,248, 13,192, 74, 15, -219,155, 0, 52, 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159,145,252,252,124,114,252,248,113,146,154,154,106, - 8, 80,208,164,118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, 81, 52, 26,205,177,156,156, 28,114,246,236, 89, -178, 97,195, 6, 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234,234,187,238,186,139,124,245,213, 87,100,213,170, - 85,228,199, 31,127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, 1,132, 94, 79, 90,132,113, 68,140, 0, 24, 8, - 0,153,153,153, 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186,186, 58,180,110,221, 26, 60,207,123, 60,176,188, -188, 28, 59,118,236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186,119,239,190,115,243,230,205,169,193,193,193,206, -157,130, 32,192, 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38,147, 65,161, 80, 32, 60, 60,252, 40,124, 55, 97, - 56,221, 55,131,193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, 54, 99,186,164, 70, 69, 69,229, 44, 90,180, 40, - 50, 37, 37, 5,231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, 10,138, 63, 19, 19,238,187,239,190,105,209,209, -209,108,151, 46, 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, 33, 4,181,181,181,200,201,201,193,230,205,155, - 77,151, 46, 93,250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, 51,147,161,121,133,130,130,162,153,112,164,182, -182,182,139,201,100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105,105,233, 45,240,188,168,188,166,123,247,238,123, -114,114,114, 82,141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, 34, 98, 23,128, 62,222,222,196,187,116,233,178, -127,215,174, 93,225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, 14,192, 91,224,171,209,176,142,234, 57, 15,255, - 37, 2,120,209,241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, 22,122,189, 30,163, 70,141,170,206,205,205,237, - 5,160,128,102, 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, 38,147, 9,122,189,222, 41,180, 36, 18, 9, 8, - 33,176,217,108,206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148,165,107, 86,139, 80,161, 69, 65, 65,209, 18, 72, -237,208,161,195,161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178,181,186,186,122,155,187,120,137,142,142, 78, 91, -184,112, 97,114, 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129,243, 77,173, 86, 59,205, 98,177,224,208,161, 67, - 24, 51,102, 76, 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225,123,244,232, 1,173, 86,139,145, 35, 71,234, 79, -157, 58,213, 27,192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, 36, 36, 36, 64, 42,149,250,140,156,193, 96, 64, - 82, 82,210,174,138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, 20, 62, 57, 44, 22, 11,138,139,139, 33,147,201, - 96, 50,153,208,174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124,184,195,119,223,125,135,238,221,187,163,115,231, -206,168,175,175,119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191,252,114, 30, 28,205,231,215,170, 22, 17, 59,166, - 77, 17,219, 68, 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94,250,144, 33, 67,182,173, 88,177,162,213,240,225, -195,209,174, 93, 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, 27, 51,102,204,254,162,162,162,100,199,174, 94, - 94, 56,123, 5, 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, 31, 62,124,152,151,201,100,216,183,111, 31,198, -142, 29, 91, 89, 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139,139,253, 70,238,252,249,243, 16, 4,193,228,233, - 63,150,101,229, 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, 54, 20,255, 80, 88,205,102, 51,122,246,236,137, -130,130, 2, 28, 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123,247,226,224,193,131,232,223,191,191, 59,207, 53, -169, 69,156,202,113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, 53, 46, 46, 46,103,209,162, 69,145,177,177,177, - 24, 52,104, 80, 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182,109,219,174, 2,112,207,149, 28,147,152,152, 88, -177,111,223,190, 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83,114,167, 78,157,246,109,216,176, 33,156,101, 89, - 28, 59,118, 44,144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132,123, 57, 87,213,161, 67,135,190,251,247,239,151, - 50, 12,131,194,194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113,255,123,238,185,231, 66,122,247,238,141,226,226, - 98, 92,184,112, 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, 66, - 2,212, 75,191,195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45,169, 84,186, 62, 62, 62,190, 28,158,231,165, 10, - 27, 57,114,100,137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, 61,123,150, 68, 71, 71,231, 3, 8,243,112,204, -216,152,152,152, 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, 34, 69, 69, 69,100,221,186,117, 36, 34, 34,162, - 37, 70, 4,166,118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, 96, -106, 74, 74,138,241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, 35,227,199,143, 39, 25, 25, 25, 36, 35, 35,131, -140, 26, 53,138,188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52,233, 40, 40, 40, 40,154, 23,137, 0,102, 57, 4, -213,202,145, 35, 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76,221,224, 9,111,150,150,150,146,210,210, 82,113, -106,132,124,252, 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, 39,133,133,133,100,237,218,181,196, 33,216,154, - 13, 10,133, 98,131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, 34, 10,192,220, 27,110,184,193, 58,123,246,108, -178,114,229, 74,242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224,131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77,174, -171, 7, 93,217,156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59,185,112,225, 2,217,176, 97, 3,137,137,137, 57, -134,198,243,105,185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, 98,177, 56, 57, 78,158, 60, 73, 0,108,109,134, -112,166,198,199,199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103,220,147,146,146,202, 43, 42, 42,200,166, 77,155, - 72,100,100,164, 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15,251,156, 57,115,200,211, 79, 63, 77, 18, 19, 19, -237,142,151,162,248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222,189, 27,114,185,220,185,227,247,223,127,119,157, - 71,203,219,188, 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, 58,138,105,203,150, 45, 0, 96,106,134,176,229, - 94,184,112,161,255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140,120, 97, 97,225, 43, 93,187,118,157, 94, 87, 87, -167,213,235,245,163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60,112,224,192, 91, 0, 8,128,247, 1,156,184,222, - 18,130, 10, 45, 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252,159, 15,145, 37,226, 82, 65, 65, 65,159, 59,239, -188,243, 57, 52, 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, 9, 75, 74, 75, 75,151,208, 44, 64,113, 29,225, - 24,128, 7,175,231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, 90,120,158,103,139,130,130,130,226,111, 7,186, -168, 52, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20,255, 44, 48,240, 62,114, 32,187, 9, 60, 87, 50, -162, 33,155,114, 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, 80,180,168, 0,163,156,148,147,114, 82, 78,202, -249,207,230,100, 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156,215, 36,254,170,206,240,226,141, 16,208, 48,228, -147,226,239, 7,215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, 29, 27,254,134,117,137,171, 40, 16,174,242,185, -212, 18,113,191,158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134,177,235,116,186, 35, 38,147,105, 62,128, 93, 87, -121,205,175,162,163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150,101,193,243,188,161,182,182, 86,115, 37,164,145, - 93, 70,188,202, 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, 24,169, 84,122, 95,120,120,120,104, 69, 69, 5, - 97,217,134,174,124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, 97,123,195,195,195, 67,197,243, 25,134, 65, 85, - 85, 85, 77,121,121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85,117, - 11,189, 21,255, 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, 34, 8, 76,173,141, 81,252,190,254,194, 87,103, - 2, 57,127,212,168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215,215,215,235, 25,134, 33, 12,195,128, 97, 26,222, -179,220, 63,237,118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137,137, 25,163,215,235,245, 14, 62,143,188, 0, 96, -181, 90,139, 43, 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, 29,195, 48,130,235,127,132, 16,215,135,249,217, -202,202,202,126,254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121,181,113,143,142,142, 30,163,211,233, 2,226,244, - 17,247,203, 56, 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207,158, 14, 60,207, 3, 0,140, 70, 99,215,185,115, -231, 62,246,198, 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114,114,216,149, 43, 87,178,189,122,245, 2,195, 48, -176,219,237,176,219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241,191, 65, 55, 14,121,242,133,114, 96,154,191,253, -190, 4, 38,128,183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89,182, 73,156,130, 32,228, 95,186,116,169,143, 15, - 1,211,236,156, 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70,161, 80, 64, 16, 4,216,237,118, 88,173, 86,220, -112,195, 13, 77,114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, 31,126,192, 99,143, 61,134,190,125,251,230,149, -151,151, 3, 0, 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182,182, 22,183,221,118, 27,170,170,170,254,209,133, -235,230,244,132,247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181,188,225,225,225, 7,229,114,121,180, 95,181,236, -242, 32, 51, 26,141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158,227,184,142, 0,146,108, 54, 91, 52, 0, 72,165, -210, 50,137, 68, 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135,197, 63,209,142,177,233, 71,214,153,132,225,202, -182, 89,169,250,179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, 72, 5,176, 12, 13, 11, 74, 63,141,134,121,128, -174, 6,241, 0,238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, 85, -213, 19,240,176, 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, 62, 80,220, 44, 15, 40,150,101, 63,205,204,204, -252,215,138, 21, 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26,107, 23, 32, 57, 57,217,159,171,193,177, 44, 59, -123,228,200,145, 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85,108,137,136,139,139, 11, 52,239,127, 53,116,232, -208,209,139, 22, 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, 47, 59,246,150, 91,110, 17,252, 71,157,253,244, -158,123,238, 25,253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, 85,199,125,196,136, 17, 15,127,247,221,119,202, - 35, 71,142, 40,219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136,243,238,187,239,126,120,217,178,101,202,131, 7, - 15, 42, 59,118,236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50,139,197,130,173, 91,183,130,101, 89,132,135,135, - 99,236,216,177,216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200,226, 1,224,199, 71, 71, 32,159, 7,198,149,155, - 33,149, 74,113,246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146,254,194, 62,185,193, 96,133,177,100,191, 82,161, - 80, 56, 31, 0,250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, 95,191,208, 27, 95,251,246,237,191, 61,118,236, - 88, 39, 79, 5,215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, 60,207, 39,156, 59,119, 46, 74, 38,147,129, 16, -226, 44,196,238,159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, 54, 27,130,130,130, 32,186, 81,102,179, 25,245, -245,245,254, 56, 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, 80, - 72, 36, 18, 12, 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170,104,121,158, 71,120,120, 56,214,173, 91, 7,141, - 70,131,196,196, 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237,237,183,118,226,110,238,206,125,238,120, 84,130, -101, 1, 65,104,120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51,174,176,176, 48, 42,208, 52,178,217,108,136,139, -139,147,248, 57,108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, 42, 5,199,113,224, 56, 78, 20,232,137,132,144, - 68, 65, 16, 6,150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, 88,177, 16, 67,183, 58,147, 48,124,219, 33,220, - 52,114,200, 27, 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, 86,106, 90, 90,218,161, 61,123,246, 4, 89, 44, - 22,244,238,221,123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113,226,232,103,159,125, 86, 18, 26, 26, 10,153, 76, -134,186,186, 58,156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, 92, 88, 88,152,177,119,239, 94, 12, 26, 52,232, - 69, 0, 47, 95,174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209,147, 45,107,112,113,220,143, 38, 16,236, 66,241, -222,195, 23, 2, 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188,121,184,239,190,251, 16, 30, 30, 14,165, 82, 9, -169, 84, 10,158,231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188,120,113, 48, 0, 44, 94,188, 24, 35, 70,140, 64, - 68, 68, 4,130,131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245,189,233,166,199, 23, 45, 90, 4, 0,120,235,165, -151,112,199,205, 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94,240,171, 47, 1,124,124,223,125,247, 61,240,253, -247,223, 7, 3,192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, 50,103,156, 25,134,129, 66,161, 8, 40,238,247, -221,119,223,200,239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46,151,203, 33,149, 74, 27,109,238,162,211, 19,231, -189,247,222, 59,114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, 11,115,166,167,200,213,148,123,244, 55,231,188, - 62,132,214,161, 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126,184,245,227,143, 63,142, 7, 31,124, 16,155, 54, -109,122,170,137, 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130,169,201, 15,112, 7, 38,237,127,234,169,152,172, - 51,245,216,189,247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51,222, 59, 91,215,176,223, 70,152,173,175,140,139, -185,113,246,255, 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32,138,138,138, 32, 8,130,201,151,187, 32,149, 74, -113,244,232,209,203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143,241,227,199,227,212,169, 83, 16,151, 42, 9,128, -147, 9, 15, 15, 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196,166, 61, 71,225, 10, 72, 24,179, 44,139,111,191, -253, 22, 31,124,240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19,114, 28,180, 90, 45,194,194,194, 16, 22, 22,214, - 72, 32,254,147,225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, 2, 2,129, 8, 40,187,112, 6,147,223,253, 40, -224,167, 15,207,243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164,164, 36,191,121, 73, 42,149, 78,249,249,231,159, -101,223,126,251, 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, 80, 68, 68, 68, 56,183,132,132, 4,230,127, 61, -184,254,121, 0, 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, 90,237, 90,207,247,156,132, 40,219,102,165,142, - 28,242, 6, 0, 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54,181,107,215,174,219,119,238,220, 25,164,215,235, - 33, 8, 2,214,174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, 73, 73,171,118,238,220,121, 75,100,100, 36,106, -107,107,161,213,106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185,231,158,123,158, 31, 51,102,140, 81,161, 80,136, -206, 70,146,231,188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163,207,234,242, 66,188,244,202,228,128,194,216,186, -117,235,167,127,248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6,108,155, 54,109, 30, 95,178,100,137,147,179, 85, -171, 86,224, 56, 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, 8,139,140,195,156,207,230,249, 13,103,100,100, -228,252, 97,195,134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35,170,149, 6,173,194,130, 27,210, 73, 96,240,251, -169, 2,191,207, 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140,171,248,242, 44,186,248,102,179, 25, 61,123,246, - 12, 40,238,174,156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, 23,133,176, 67,112, 54,226,224,121, 30,203,215, - 45,242,234,102, 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241,165,205,181,171, 80,124,124, 60,230,204,153,227, -183, 94,114, 43, 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207,195,113,226,126,222,209, 98, 21,137,134,126, 99, -117, 0, 66, 61,240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107,245,234,213, 98, 41, 30,152,153,153,185,213,241, -189, 70, 46,151, 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56,172,213,187, 67, 66, 66,142,121,112,117, 14,153, - 76,166, 55, 0,148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226,123,135,194, 76,128,244, 73, 51, 48, 44, 51, 19, -235,227,101,144, 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60,244,221,202,118,203, 80,146, 32,142, 67,239,237, -107, 48,126,251, 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175,106,133,215, 30,217,136, 62, 26, 57,100, 38, 29, - 88,150,245,148,179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249,104, 88,199, 9, 94,194, 9, 66, 8,186,117,235, - 6,134, 97,156,110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, 4, 7,149, 74,133,223,126,251,205,121,204,224, -193,131, 97, 52, 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, 94, 12,158,231, 17, 17, 17, 1,165, 82,201, 44, - 90,180,104,162, 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31,142,227,116, 90,173, 54,194, 27,167, 68, 34,193, -179,207, 62,139, 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, 26,209,170, 85, 43,167,216,242, 80, 0, 91, 98, -184,111,203,114, 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33,118, 8, 54,224,192,198,221, 29, 46,230,151,196, - 19,144,134,174,183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207,246, 23, 78,142,227, 96, 52, 26,241,243,207, 63, -227,228,201,147, 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124,243,205, 24, 51,102, 12,146,146,146,252,198,157, - 16,178,176,168,168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, 96,183,219, 97,179,217,192,113, 28,130,130,130, -160, 80, 40, 16, 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234,207, 78,200, 93,183,124,194, 77, 35,223, 32, 88, -241, 1,131,118,109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, 90, 11,196,106, 23, 42, 95,157,248,201,243,127, -250, 61,186, 92,100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88,209,234,174,187,238,202, 41, 41, 41,233,239, 67, -108, 93,198, 25, 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237,183,223, 80, 86, 86,118, 41, 46, 46, 46,100,224, -192,129,236, 75, 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40,204,219,134,194,211,219, 33, 8, 13,174,117,195, -230,249, 59, 9, 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168,209, - 67,214,245,193,235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, 68, 4,146,146,146,160, 84, 42, 33,147,201,192, -113, 28, 24,134,193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155,223,112, 42,149,202, 71, 23, 46, 92,216,200, 2, -137, 14, 11, 3,199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, 67,186,114, 50,117,117,117,198, 61,123,246,168, -247,239,223, 15, 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, 27,113,207, 61,247,224,219,111,191, 69, 70, 70, -134,223,184,215,215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186,117,107,103,220,197,141,231,121, 72, 36, 18,164, -164,164,160,182,182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, 11, 11, 67, 66, 66,130,211,113, 19,197,209, 7, -159,191,219,136, 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93,187,118,208,104, 52, 80,169, 84, 78,110, 95,156, - 94,180,136, 83,111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113,142,175,253, 39, 78,156,216, 51, 43, 43,107,122, - 70, 70,198,119, 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178,166,187, 30,239,225, 58,222, 29,173,204,204, 76, -198, 17, 73, 6, 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240,249,243,231, 81, 83, 83,131,224,224, 96,205,204, -153, 51, 53, 3, 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, 45, 0,119,223, 86, 96, 89, 22,125,250,244,193, - 49, 71,107,199,176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159,103,198,143, 31,207,137,110, 6, 33, 4, 6,131, - 1,177,177,177, 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127,112, 47,164, 50, 6,172,132, 65,119, 82,133, 95, - 7,245, 7, 3,192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51,103,206, 4,228,104, 57,226,197, 92, 41,167,232, -104,236,220,185, 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, 80, 40,160, 84, 42,153,239,190,251,238,237,228, -228,228,216,241,227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108,226, 76, 75, 75,243, 27,151,173, 91,183,226,139, - 47,190,192, 83, 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, 32, 0,176,216,172,208,215, 27,156, 77,186,118, -187, 29, 71,182, 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147,235,105,177,247,125,190, 44,117, 64, 24,191,103, -235, 37,235, 30, 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71,177,118,237, 90,188,243,206, 59,248,247,191,255, -125,153,171,229,239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29,223,120,227, 13, 86,116,180,148, 74, 37, 24,134, -129,209,104,132,201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, 54,255,215,107,115, 37,163,248, 93, 41,215,175, -109,155,192,182,211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, 38, -147, 14,207, 63,255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58,116, -232,128, 69,139, 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, 57, 50,241,198, 27,111,252,180,190,190,190,186, -190,190,254, 83, 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191,190,223,228,201,147, 37,110,125,116, 36,222,236, - 81,171,213, 6,131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99,199,142,184,235,174,187,192,243, 60,148, 74, 37, -212,106,117,163,102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, 31, 62, 28, 82,169,180, 17,167,152, 15,135, 15, - 31,142, 23,222,155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156,122,189,190,126,243,230,205,138, 87,159,122, 10, - 55,182,111,143, 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147,157, 0, 16, 36, 18, 9,186,116,233,130,178,178, - 50, 20, 20, 20,160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211,120,239,189,247, 96, 50,153, 2,142,123,251,246, -237,113,235,173,183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14,237,218,181,195,202,149, 43,145,154,154,234,151, -179, 83,167, 78, 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234,157,215,136,143,143,111, 18,231,134,189,231,241, -229,198,205, 48,153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138,187,200,185, 96,193, 2,212,212,212, 56,141, 3, -241,165, 92, 52, 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, 51,192,231,173,120,156,152,185,228, 89, 89, 89, -211,221,207,247,199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92,254,230,230,205,155,195,107,107,107,113,250,244, -105,176, 44,235,108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202,203,203, 33,151,203, 33,145, 72, 96, 54,155, 1, -160,187,183, 7, 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, 26, 10,134,216, 33,254,135, 31,126,128, 90,173, - 70,112,112,176,243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, 1,150, 1, 24, 9,192,178, 4, 44,195,128,221, -149, 3,134, 1, 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228,201,197,114,255,190,101,203, 22, 4,202,217,174, - 93, 59,168,213,106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32,156,164,193,141, 16, 16, 21, 21, 5,158,231,153, - 69,139, 22, 77, 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, 54, 61, 33, 33,148, 0, 82, 34, 77,225,194,165, -151, 0, 66,104, 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73,147, 42,200, 37, 32, 72,151, 46, 69,164,131, 5, - 20, 36,129, 64, 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, 33,194, 5,231,125,158,121,118,167,189,115,206, -156, 51,103,222,243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235,215,175, 35, 33, 33, 1,245,235,215,119,219,103, -171,168,168, 40,235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138,138,114,237,251, 53, 26, 77,126,159, 62,125,202, -248,109,228,229,229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, 82,235, 80,110,102,142,234,227, 15, 63, 16, 45, -155,250, 6, 0,224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191,220, 53, 19,192,224,202,248,117, 58, 29, 76, 38, - 19, 34, 34, 34,112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16,173, 6, 44, 25, 25, 25,157,162,163,163,127, 93, -177, 98, 69, 68,243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, 59,119,238, 76, 49, 24, 12,255,182,153,206, 93, -226, 68,198, 55,201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, 4,157,159, 33,213,107,140,119, 76, 12,151, 0, -142, 1, 24,176,224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, 63,147,201,132,107,215,174, 97,204,152, 49,150, -188,188, 60, 9, 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219,182, 45,224,213, 87, 95,221,163,215,235, 95,116, -147,250,219,172,172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, 31,154,166, 75,147,227,242,193,100, 1,138,162, - 96, 52,154, 81, 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182,118, 84, 34, 22,122,181,125, 49, 88,199,113, 28, - 72,130, 40,186,246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236,179,204,252,252,252, 32, 18,137,240,237,183,223, -226,198,165, 19,144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241,250, 3, 68, 53,243,114, 75, 16,250,251,251, 99, - 64,199,142,136,238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, 5,128, 99, 72,119,131, 8,176,246,116, 6, 5, - 5,225,183,223,126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183,111,223,198,238,221,187, 17, 21, 21, 85,237,188, -219, 45,120, 51,103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, 8, 69, 69, 69,248,247,191,255,141,156,156, 28, -183, 56, 29,135,247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, 18,130, 67,151,118,130, 0,129,171, 59, 62, 40, - 35, 10,215,239,186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100,117,170,242, 56,130, 32,174,217,141,173, 51,103, -206,156, 69, 16,196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, 65, 28,181,137,176, 1, 14,219,174, 85, 75,104, - 41, 20,138,246,158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18,137, 68, 77,242,242,242,164,185,185,185, 48, 24, - 12,186,249,243,231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61,194,246,237,219, 1,224,128,107,159, 13, 18, 44, -203,150, 86, 10,231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205,155, 55, 87,249,194,120,245,251,195,184,126,253, - 58, 28,195, 3,216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248,170, 28,224, 93,193, 93,223, 47, 87, 51,115, 42, - 66, 70, 70, 70,133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, 32,151,203, 9,177, 88, 76,136,197,226, 48,187, -200, 18, 8, 4,165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, 61, 50, 51, 51, 43,220,175, 86,171, 59,169,213, -106, 60,143,176, 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, 51,128,159, 59,189, 51, 13,147,251, 70,245,172, -238, 48,181,253,126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183,183, 55,250,246,237, 11,165, 82,137,153, 51,103, - 98,248,240,225,213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, 52,188,110,221,186,176, 88, 44,176, 90,173,176, - 88, 44, 72, 78, 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145,241, 77,242,254,243, 31,102,246, 30,249,170,241, -118,206, 15,200,206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160,105, 6, 98,177, 64,185,244,139, 15, 78,177,224, - 64,146,132, 5,192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, 19, 19,147,157,159,159,159, 8,160, 23, 0,228, -231,231, 95, 28, 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169,215,235,171,162,244, 4, 48, 25, 64, 31,148,248, -129,216, 81, 0, 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0,248,217,117, 15,200,102,209, 50,153,160,206, 47, -196,132,119,230,252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, 39, 25,111, 76,152, 38,173,170, 67,224,234, 69, - 88, 13, 31,157, 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191,124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, 29, - 88,139, 1,132, 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84,224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, 16, - 12, 81, 42, 72, 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242,100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, 38, -147, 9, 70,163, 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, 98,177, 24, 31,124,240, 1, 94,126,249,101,204, -155, 55, 15,177,177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50,178, 42, 94,206,177,140,236,247,211, 46,182, 28, -135,248, 0, 84,187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155,115,209,162, 69, 80,171,213,229, 44, 89,246,255, -161,161,161, 88,183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, 56,142,107,103,243,157, 50,199,197,197,221,138, -139,139,139, 38, 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253,210, 18, 58,141,141,118,119,220,105,191,209,190, -190,190,130,240,240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30,169, 80, 40, 62,251,238,187,239, 26,233,116, 58, -220,190,125, 27,171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102,201,114, 92, 31, 56,112, 32, 26, 52,104, 80,198, -154, 37,151,203, 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, 73, 73, 49,138,197, 98,132,133,133,201,179,179, -179,141, 98,177,184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, 93, 25, 11,150,227,175,227,255, 67,135, 14, 85, - 57,116,104,231,108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, 31, 88,150,133,191,191,191, 91,156,118, 81,107, -115,128,135,201,100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149,250,234,200,100,178, 82,107, 38, 15, 87, 13, 2, - 11, 11, 69,193,104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53,230,183, 55,176, 5, 5, 5, 56,113,226, 4,126, -248,225, 7,188,252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, 51,174, 46, 88,176,160,142,175,175, 47,172, 86, - 43, 30, 62,124,136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69,195,100, 48,163, 88,163,197,103, 95,108,173,176, -234, 1, 64, 65,238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206,157,191,208,106,181, 69, 6,131, 97, 56,128,101, -142,253,169,252,252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, 55, 40,103,166,166,166,206,170, 87,175, 94,153, -141,102,179, 25,245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175,195,110, 47, 0, 39, 1,172,171,168, 46,217,135, - 14,117, 58, 35,148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, 13,177,119,128, 43, 90,170,152, 25, 87, 46,169, -246, 99,237, 47,236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, 85, 0,228,190, 16,119,253, 24,132,202,118,143, - 38, 31,118,139, 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, 10,184,156,144,128, 93, 63,253,132,145, 61,122, - 64, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, 53,107,134,123,247,238,149, 9, 67,193,113,156, -187,249, 47,205,187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139,177,117,235, 86,156, 59,119, 14, 51,102,204,192, -248,241,227,209,189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195,185,213, 45, 35,103, 78,231,247,126, 77,202,221, -206,185, 96,193, 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100,183, 60, 57, 10, 35,231,117, 0, 62,246,109, 51, -103,206,156,229,238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116,153,156, 23, 20, 20, 92,189,122,245,106, 11, 15, - 15, 15,220,185,115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175,254,253,251,159, 90,182,108, 89, 24,203,178,200, -201,201,193, 71, 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195,135,203, 63,108, 7, 15, 30,116,107, 8,196, 46, -164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49,137,191,102, 42, 84, -101,125,170,202, 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, 90,158,154,154, 90, 97, 67,114,238,220, 57,176, -182,134,214, 93, 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82,200,229,242, 50, 34, 75, 42,149, 86,249,224, 84, - 21,144, 84, 38,147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, 5, 5,237,159,233,161, 67,112,160,173, 52,140, - 70, 19,116, 90, 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, 66,135, 14, 29,202,137,172, 26,154,231,211, 11, - 10, 10,186,175, 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45,214,233,116,221, 1,164, 87, 75,108,178, 28, 40, -171, 21, 6,147, 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206,222, 89,201,254,251, 52, 77, 71,219,227,190,185, -129,127,213,171, 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226,100,189,233,104, 72,198, 95,209,179, 43,234,197, -151, 88, 71,141,102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228,147, 85,147, 58, 68, 16, 68,169,211,247,212,169, - 83,113,243,198, 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63,212,114, 44, 91,113,172,218,220,187, 29, 92, 32, -150,237,222,237,114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, 83,238,125, 83,221,252, 59, 10,152, 21, 43, 86, - 96,198,140, 25,216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200,205,205,197,141, 27, 55, 96, 54,155,221, 78,167, -163,223, 92, 82, 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119,228,116, 22, 90,251, 79,255,142, 97, 81,109,107, -196,249,217,103,159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69,156,144,231,228, 11,101, 95,183, 56,137, 30,231, -117,231,227, 1, 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, 52, -120,240,224, 65,171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51,102, 32, 34, 34, 2,254,254,254,161, 42,149, 10, -249,249,249, 88,188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, 11,137,228,175, 14,171,221,178, 5, 0,227,199, -143, 47,103,209,178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, 24, 50,100,136,224,207, 63,255,100,250,246,237, -139,161, 67,135, 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212,236,223,191,255, 67, 0, 95,186, 33,182,106,205, - 49,222, 94,201,220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133,194, 82, 71,121,119, 56,237, 67,135,142, 15, 32, - 73,146, 80,169, 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, 80, 40,239,220,185,211,200, 62,241, 34, 47, 47, - 15, 61,123,246,188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, 25, 13,181, 70,107,127, 30, 54,110,220,136,196, -196, 68,152, 76, 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, 92,206,246,235,215, 15, 87,175, 94,133, 84, 42, -165, 80,131,248, 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, 84, 85, 39, 38, 38,194, 98,177, 96,222,188,121, -204,175,191,254,122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225,161, 58,122,244,232,123, 0,182, 86,246,242,166, -104,155,104,175,197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44,203, 98,226, 91,111,161,119, 29, 13,134,190, 20, - 0,125,214, 93, 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, 7, 0,253,186, 13, 70,171,102,229,195,131,117, -238, 85,210, 39,187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171,106, 88,180, 74,159, 57,251,253,107,211,166, 13, -154, 52,105,130,179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212,212, 84,220,188,121, 19,133,133,133,213, 46,163, -239, 79,238, 66,161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224,199, 46,119, 59,154, 14,248, 12, 0, 80, 39,192, -187, 90, 66,203,145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202,214,171,123,254,147, 68, 69, 66,235,129, 90,173, -238, 48,114,228,200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129,129, 61, 58,118,236, 40,148, 72, 36,184,124,249, - 50,246,239,223,191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43,162,253, 65, 84, 42,149,130,197,139, 23, 19,155, - 55,111,174,208,202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, 21,253,250,245, 99, 18, 19, 19, 33, 22,139, 49, -104,208, 32, 38, 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, 63,244, 1,208,181, 26,247,202,238, 24,239, 9, - 55, 29,224, 43,234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, 98, 49,109,143,252, 78,146, 36,172, 86, 43,218, -182,109,139,220,220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, 42, 20, 10, 97,177, 88,208,181,107, 87, 16, 4, -129, 53,107,214, 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, 2,203,214,238, 87,101, 98, 99, 99,203,136, 41, - 87,145,151,237,247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55,247, -160,211,230, 2, 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, 63,126, 92,112,224,192,129, 94,135, 14, 29, 74, -184,123,247,238,163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, 30, 94,122,233,165,207, 51, 50, 50, 42, 17, 90, -182,251,104, 50, 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238,220,255, 67,239,144, 34, 12,105,237,141,248, 35, -151, 48,186,141, 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220,126,169,178, 36,150,107,253,200, 14, 32, 31,221, -171,118,222, 29,211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31,127,140, 62,125,250,224,222,189,123, 56,127,254, - 60,238,221,187,135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211,123,161,209, 21,131, 36, 72, 20, 20,231,195,100, - 54, 34,118,210,220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, 57,123,246,108,100,103,103,151,177,100, 61,142, - 95,214,179,142,202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94,148,191,191, 63, 8,130,192,138, 21, 43,224,235, -235,219, 9,192, 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200,201,201,113, 57,111, 95,175,215, 91,163,162,162, - 68, 33, 33, 33,101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26,177,177,177, 88,184,112, 33,194,195,195, 49, 96, -192, 0, 68, 71, 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169,196,199,143, 31,239, 70,146,100,130,195, 11,164, - 12,167, 43,216, 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, 11, 23, 46,196,172, 89,149,187,122,108,216,176, - 1, 40,239, 79,245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26,162, - 50,156, 85, 5, 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224,224, 96, 87,129,252,170, 44,163, 26,224,111,229, -100, 56,246,218,210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, 20,150, 29, 78, 50, 91,255,154, 74, 45,105,219, - 11,150,235, 63,186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, 54,110,220,248,216,121,119, 83,108,149,231,100, - 57, 66,225,225, 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126,253,229,151, 95, 6,249,249,249, 33, 61, 61, 61, - 64, 36, 18, 13, 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226,156, 54,109,154,121,206,156, 57,210, 81,163, 70, - 97,232,208,161, 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233,233,248,241,199, 31,161, 86,171,111, 87,150, 78, -150,227, 8,185, 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171,184,163, 53,171,154, 34,203,101,253, 4,128, 95, -127, 60,136,185, 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80,131, 85,223,198, 71,163, 95,198,178, 29,191, 1, - 0,206,159,171,178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175,227,134,143, 86, 57, 78,123, 39, 81,171,213,162, -168,168, 8,241,241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, 23,223,125,247, 29, 20, 10, 69,141,202,232,195, -183,102, 99,206,178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241,177,203,221, 25,110, 88,179, 42,228, 92,185,114, -101, 77,235,210, 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, 25, -194, 11, 13, 13,221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199,190, 0,192,192,129, 3,113,248,240,225, 42,123, - 20,193,193,193,168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229,114, 28, 61,122, 52,187,160,160,160,128,227,184, -106, 77,115,179, 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239,222, 13,217,184,113,163,160,146,151, 95, 41,206, -159, 63, 79,163,138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, 4,170, 10, 72, 42, 20, 10,145,148,148,132,185, -115,231,130, 32, 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159,129,175,116,110, 9,130,128,213, 82,126,164,218, -179, 80, 87, 42,178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130,239,198,141, 27,133,238,148,251,133, 11, 23,104, -142,227,170, 61,236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57,238,139, 57, 81,219,190, 61, 38, 34, 8, 11,174, -156,219,135,226, 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, 46,186,181, 67,134, 12, 25,245,213, 87, 95,181, -112,181,211,141, 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, 19,235,177, 99,199,222,124,245,213, 87,209,186, -117,107,132,132,132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, 23,192,148, 42,238,227,193, 69, 95,204,137,137, -223,113, 76, 66, 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182,238,183,138,197,162, 59, 85, 89,139, 28,173, 89, -181,249, 98, 28, 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243,197,112, 44,239, 39,134,117,207,104,180,122,109, - 27,118,206,235, 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138,101, 54,113, 83, 61,171,169, 61,239,149, 89,174, -170,107,209, 34, 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219,162, 71,143, 30,184,113,227, 6,110,220,184,129, -105,211,166, 85, 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56,151,123,109,192,157,186, 52,121,242,100, 0,248, - 71, 89,183,170, 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165,251,210,210,210,192,178,172,161,186, 5, 99,177, - 88,236,193, 49,203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, 91,183,110,232,210,165, 75,233,240,137,227,226, - 32, 76,112,224,192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, 0,185,185,185,125,187,118,237,122, 74, 40, 20, -186,245, 21, 77,150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, 60, - 60, 60,240,253,247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191,155,159,228, 28,128,128,161, 95,238,122,120, 46, -223, 90,111,232,151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, 57,242,184,187,229, 78,211,244,131,236,236,236, -106,135, 75,224, 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36,255, 51,231,174, 94,190,240,243,169,126,253,162, - 58,180, 3, 9, 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214,240,225,195,159,102,177,105,178,179,179, 59, 13, - 27, 54,108, 10,254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, 69,129, 64, 32, 5, 48, 23, 64,218,165, 75,151, -214, 94,186,116,169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0,254,168,186, 30,229,190, 13,142, 13,235,215,251, - 95,125, 65, 16,156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222,200,106, 85, 89, 71,202,225, 11, 28,181, 62,100, - 63,101,202, 20, 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90,165,195,252,117,103, 16,202,112,183, 59,124, 0, - 48,251,255, 38,212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, 16, 32, 47, 47, 15, 73, 73, 73,200,201,201,129, -193, 96, 64, 98, 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, 85, 70, 79,147,243,159, 56,124, 88,109,161,101, -181, 90, 63,109,208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, 38,106,170, 61, 11, 79, 36, 18,153,154, 52,105, - 66,184,154,157, 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8,130, 16, 84,212, 11,177,255,103, 89,150, 17, 10, -133,113, 53,188, 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231,242,209, 55,107,214,172,244,139,246,206, 49, 81, -108, 31, 91,213, 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238,119, 12,104,250, 92,131,224,210,250,143,122,179, -222,185,124,107, 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253,221, 73, 75, 73, 73,177,252,235, 95,255,250, 86, -171,213, 78, 6, 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26,158,155,150,159,159,223,211,105,219, 31,118, 65, -101,143,107, 87,109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45,203, 13, 69, 81,233, 85,237,119,142, 17,230,136, - 91,240,198,172,171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69,213,204, 91,174,187,121, 15, 9, 9, 65,157, 58, -117, 74,127,237,112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, 17,223,157,125,178,220,225,172,237, 50,170,140, -179, 78,157,109,181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, 57, 5,252,253,228, 57,121, 78,158,243, 9,114, - 62,151,224,189,212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129,168, 68,149, 86,103,166, 79, 77,148,237,105,158, -147,231,228, 57,121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227,231, 26,188, 89,149,231,228, 57,121, 78,158,147, -231,228, 57,121,206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240, 66, -139, 7, 15, 30, 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, 30, 60,120,161,197,131, 7, 15, 30, 60,120,240, -224,193,131, 7, 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72,233, 7, 1,163,163,163, 9,254,182,240,224,193, -131, 7, 15, 30, 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, 7, 15, 94,139,212, 14, 72, 94,108,241,224,193, -131, 7, 15, 30, 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172,103, 10,101, 44, 90,188,224,226,193,131, 7, 15, - 30, 60,120, 60, 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, 30, 60,120,240,120, 76,129, 85,217, 47, 15, 30, - 60,120,240,224,193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158,243, - 31, 11, 33,127, 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30,181, - 39,178, 8, 87,235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143,199, - 3, 1,126,232,144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, 52,115,224,116, 53,200,107, 50,251,224, 52,207, -201,115,242,156, 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, 55, 0,103, 1,116,183,253, 86, 40,188,106, 27, -252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168,148,119,134,231, 81, 21,132,168,124,136,185,170, -253, 60,120,240,224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, 22, - 0,111,135,109,191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247,170, 76, 13,199,137,109,252, 82,219,194, 2, 48, - 1, 48, 3,208, 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87,170,185,255,185, 66, 72, 72,136,220,199,199,167, -207,245,235,215, 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225,201,172,172, 44, 35, 95, 93,158, 11,244, 5, 48, -211,246,127, 17,128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, 29,154,166, 9,131,193,144,169,215,235, 79,209, - 52,253,165,173,221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, 25,153,153,153, 59, 0,236, 1, 48,188, 78,157, - 58,163,235,215,175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211,201,131,199, 63, 9, 68,101,214, 8, 87,152,203, -113,220,232, 50, 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, 23,185, 92, 78, 3, 24, 87,133,200,242,187,124, -249,114,189,201,147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241,115, 96, 96,224,175,171, 86,173,250,142,227,184, -116,130, 32,180,213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28,199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81,212, - 55, 0,106, 34,222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10,133, 55,205,102,243, 9,154,166,215, 2,176,212, -128, 83, 38,145, 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, 70,115,202, 98,177,172,181, 9,206,167, 13, 33, -128,104,142,227, 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, 28,199,113,196,207, 63,255,220,134, 97, 24,210, - 86, 63,162, 1,252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180,208,100,178,151,175, 95,191,222,116,247,238,221, -204,215, 95,127, 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, 43,235, 61,231,227,253,252,252,150,147, 36,233, -239,206,245, 89,150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142,143,151, 53, 2,144, 94,195,250,253,247,113,154, - 98, 56, 0,136,151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59,173,237,202,113,192,148, 40, 47,242,113,133, 86, -104,104,104,124, 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, 77,175, 92,185,210,125,223,190,125, 47,107,181, -218,225,213,164,124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20,213,104,247,238,221,109,223,126,251,237,247, 55, -110,220, 88,119,196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0,190,124, 10,233,228,193,227,159,134,110, 40,235, -163,245, 57,128,207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, 57,115,230,144, 80, 40,180, 91,180,218,235,245, -250, 32, 39, 43,152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, 17,217, 10,133,162,201,171,175,190,170, 37, 8, - 66,176,123,247,238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28,199, 93, 32, 8, 66,237,102, 38, 91,248,250,250, -238, 95,178,100, 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67,143, 30, 61,218,239,243,207, 63,255,176,160,160, - 96, 8,128,132,106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, 97,112,112, 48, 76, 38, 19, 18, 19, 19,123,159, - 56,113,162,235,198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237,189,239,191, 31,127, 28,212,225,141, 55,132,190, -190,190,224, 56, 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226,226, 97,174,238,247,211,132, 68, 34, 33,183,111, -223,222, 90, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, 44, 51, 51,211, 91, 44, 22,187,220,207, 48, 12, -186,118,237,218, 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87,215,119,238,220,233,191,118,237,218,215, 0,148, - 19, 90, 36, 73,250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98,177,160,121,243,230, 79, 53,255,241,241,178, 48, - 0,211, 99, 98, 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, 78,199,250,182,220,225,255, 99,167,213, 1,245, - 0,224,216, 13, 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213,106, 53, 68, 34, 17,172, 86, 43,178,179,179, 17, - 25, 25, 41,248,246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224,216,177, 99,214,237,219,183, 91,162,162,162, 68, -227,199,143, 87,118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167,168, 49, 99,198, 72,226,226,226, 2,142, 30, 61, - 58, 48, 33, 33,225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18,181, - 9, 10, 10,138,167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109,199, 30,100, 89,118, 80, 85,150,172, 49, 99,198, -116, 60,126,252,248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225,135, 31,166, 2, 64, 74, 74, 74,195,129, 3, 7, -134, 78,157, 58, 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130,208, 87, 37,178, 34, 35, 35, 47,159, 63,127,222, - 75,165, 82,149,217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234,213,235, 82,114,114,114, 23, 0,127,186, 35,136, - 26, 55,110,124,250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, 6, 3,148, 74, 37, 70,140, 24, 33,238,214,185, - 83,221,169,211,222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119,198,197,121, 82, 15, 31, 66, 46,151, 67,167,211, - 1, 0,188,188,188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215,164,164,222, 79, 73,108, 73,109,191,102, 0, 71, - 4, 2,193, 96,137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102,221,161, 7, 15, 30, 12,185, 92, 14,139,197,194, -162,100,232,144,126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212,106, 53,242,243,243, 97, 54,155, 81, 84, 84, 4, -150,101, 9,185, 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, 74, 42,179,141,166,105,232,245,122,152,205,102, - 88,173, 86,104,181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10,190,204,201,201, 73,123,194,217,207,179, 11,162, -248,120,217,125, 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, 15,143,252,110, 10,183, 89,199, 30,212, 2, 31, - 11, 0, 23, 46, 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142,227,170, 61, 28,151,156,156,188,238,197, 23, 95, - 36,110,221,186,117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12,223,165, 75,151, 22,196,198,198, 46, 2,176,117, -247,238,221,239, 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219,224, 56,174, 29,128, 0,123,219, 98,107,119,253, - 28,214,111, 16, 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130,248,213,225, 60, 53, 65, 16,191,214, 52,153, 78, -191, 37,157,110, 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207,158,203,174, 93,187,214, 60, 43, 43,203, 39, 43, - 43,203,231,218,181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62,245,180,195, 62,241,229,203,151,235,237,223,191, -127,209,233,211,167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, 11,154,238,211,167, 79,238, 79, 63,253,196,116, -232,208, 65,126,252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4,174, 56,109, 16,169, 84,170,239,207,157, 59, 87, - 78,100, 57,162,110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, 54,200,100, 50,217,190,159,126,250,201,211,203, -203, 11,185,185,185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118,247, 46, 72,139, 5, 43,190,152,239, 37,151,203, -247,186,104,236,203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99,193, 2, 88,173,214,210, 33, 87,171,213,138, 75, -147, 39, 67,253,227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, 3,142,156,147, 1, 20,216,150,201, 0,174, 68, - 70, 70, 94, 75, 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, 99,198,140,201,123,246,236,105,213,165, 75, 23, - 36, 38, 38, 34, 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41,179,176,236, 95,239,152, 58,117,234,228,238,223, -191, 31, 35, 70,140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34,211,237,116,154, 76, 38, 24,141, 70,232,245,122, -164,164,164,200,151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179,102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, 9, -231,221,234,244,127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49,173, 29, 26,216,234,242, 86,118, 63,179,109,105, -213, 3, 72,123,156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10,197, 77,193,138, 85, 96,197, 42, 48,126,237,144, - 44,121, 5,225,225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151,173,167,156, 15, 96, 89,108,108,236,231, 4, 65, - 92,136,141,141,157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165,243,153,120,222,121,206,255, 45,206, 42,180, 72, - 0, 65, 16, 71, 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, 0, 72, 92,253,218, 23,135,237, 1, 28,199, 13, -112, 56, 47,160,134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163,237, 59,126, 33, 8,226, 16,128, 95, 68, 34, 81, -155,214,173, 91, 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238,221,235,213,162, 69,139,193, 34,145,168, 13,128, - 95,148, 74,229,161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, 54, 0, 80,148,144,144,160,232,208,161,131,158, -166,105,130,166,105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218,121,244,234,213, 43,117,250,244,233, 99, 92, 8, - 14, 71,188,190,120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, 48,121,242,228, 96,145, 72,244,102,101,119, 75, - 40, 20, 78, 89,188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88,144,148,148, 4,147, 94, 7, 74,171, 1,165, 41, -130,250,254, 61,168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, 77,108,108,144, 37, 53, 21, 41,123,246,128,161, -203, 27,127,104,171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, 83,158,176, 37,107, 41,199,113,114,142,227,228, - 4, 65,172,234,216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, 59,127,254,124,119,154,166, 69, 52, 77,139, 46, - 92,184,208,197,100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98,177, 24,114,185, 28,157, 59,119,190,191,121,243, -102, 42, 44, 44, 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171,213, 46,118,151,207,106,181,194,108, 54,195,104, - 52,194,100, 50,225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, 11, 40,138, 50,199,198,198, 42,125,125,125, 63, -124,146,249,140,137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, 56, 1, 88,108, 62, 89,118,248,219,184, 45,181, -116, 43,104, 0, 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104,227, 55,223,124, 19, 70, 74, 85,184,104,233,143, -239,216,207,113,210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199,113,107,106, 33,205, 95, 1,232, 10, 96, 85, 77, - 78,126, 2,233,172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134,103, 31, 7, 81,141,208,123, 80, 51, 50, 61, 42, - 2,220,160,102,100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113,209, 28,199, 69, 47, 90,180,104,161,195,251,221, -190, 46,119,211, 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, 41,209, 20,142, 74,210, 33,115,165,179, 11,131, -130,130,226,227,227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175,177, 99,199,190,151,158,158, 30, 83, 69, 34, 36, -217,217,217,109, 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237,237,205,216, 15,240,246,246,102,138,139,139, 69, -122,189, 94,192, 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, 64, 64, 64, 84,255,254,253, 43, 28, 58,160, 40, - 10,122,189, 30,122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110,110,238,250, 10, 21,135, 84, 26, 21, 21, 21, 37, - 42, 40, 40,128,183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, 88,117, 90,208, 90, 13, 56, 77, 49,242,239,221, - 65,135,102, 77,197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195,184,113, 66, 15, 15, 15,116, 31, 93, 50,207,224, -120,179,102,224, 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18,237, 10, 10,132,202,109,219,162,212,106,245,178, -167, 81,217,165, 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22,156, 60,121,242, 31,247,208, 75, 36, 18,200,100, - 50, 88,173, 86,212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, 30, 98,177,248,135,252,252,252,133, 89, 89, 89, - 41,238,242, 81, 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55,104,208,128,152, 60,121, 50, 99, 48, 24, 26,174, - 94,189, 58,249,228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, 83, 51, 0,205,226,227,101, 98,155,229,215,242, - 63,198,201,161,196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225,126, 66,189, 72, 0, 29, 0, 47,155, 40,120,149, - 32,136, 14,205,155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, 70,198,178, 44,193,178, 44,222,110, 95,132,201, - 29, 5,160,168, 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, 62,155,111,122,122,122,246,145,201,100,245,105, -154, 38,117, 58, 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, 29, 30, 30, 30, 75,102,205,154,213,201,219,219, - 27,191,255,254,123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91,150,175, 92, 19, 26, 26,168,194,141,243,135, 67, - 23,110,216,189, 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, 27, 64, 16,196, 17,103,161, 84, 45,179,211, 99, -158, 95,133, 69,203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86,171, -225,227,227, 3,171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34,145,217,104, 52, 66,161, 80,176, 34,145,136,179, - 93,135,176,205, 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, 20,149,248,146,113, 28,215,222,207,207,207,229, - 62,179,217, 12,157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, 52,221,182,210, 46, 45, 77,183, 12, 8, 8, 64, -102,102, 38,228,114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138,139,193,106, 52, 96,245, 26, 80, 22, 3, 66,155, - 52,131,125, 70, 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56,155,192,162,105, 26,180,205, 57,218, 62,156,232, -239,239, 15,251,140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, 38, 33, 43, 43,171, 76,157,152, 52,105, 82,169, - 79, 86,215,174, 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127,127, -125, 94, 94,222,207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70,112, 28,135,223,127,255, 29, 50,153, 76,196, 48, -204, 45,154,166, 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, 54, 11,209,155, 40,113, 56,207,112,209,144,184, -117,235,220,228,172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111,170,146, 44,143,235, 16,168,106, 61,208, 67,175, -144, 8,244,108, 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87,207,223,223, 95,150,156,156,108,154, 63,127,126, -131,237,219,183, 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254,253,251, 55,148, 74,165, 68,113,113, 49,212,106, - 53,114,114,114,240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, 36, 36,100,243,235,175,191, 62,246,165,151, 94, - 18,217, 45,164,122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175,118,189,124,244,232,209,158,217,179,103,123,188, -242,202, 43, 77,165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125,250, 52, 84, 42, 21, 72,146, 12,122,220,250,106, -178,178,161,117,130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242,252, 88,180, 42,120,215,183,179, 91,164,170, 16, - 75,198,153, 51,103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50,142,199, 57, 28,111,174,109,177, 85,173, 64,147, - 44,203, 34, 35, 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199,113,238,204, 62,227, 8,130, 96, 79,157, 58,229, -115,249,242,101,125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, 24, 34, 45, 45, 77,124,241,226, 69,213,237,219, -183,131,108,189, 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, 50,247, 84,135,237, 69,248,251,181,107, 37, 34, - 75,167,181, 13, 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25,220,190,127,142,176,139, 44,171, 77,104, 89, 44, - 22, 80, 20, 5,150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, 96,124, 70, 70,249,119,225,144, 33, 67,240,238, -187,239, 98,234,212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88,150,109, 13,160, 24,192,241,231,237,161, 55,155, -205,165, 22, 40,147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, 77,219,185,137, 3, 7,246,227,194,133, 11,100, - 66,194,173,176, 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, 40, 44, 40,241,127,170, 40,164, 66, 4, 42, 31, -178,227, 42,227,124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41,143,105,209,122, 69, 66, 18, 95, 79,107,233, 43, -251,176,149,159, 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, 97, 13, 84,117, 22, 46,252, 34,228,246,237, 59, -230, 57,115,230, 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38,147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26,116, - 53, 48, 48,176,193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101,245,122,253, 3,163,209,120,218,106,181,158, 6, -112,173, 58,137,245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, 86, 43,114,115,115,209,169, 83, 39,193,161, 67, -135, 90,212,228, 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82,169,124, 73, 42,149, 6, 3, 96,180, 90,109,142, - 94,175,255,163, 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, 62,124, 8,134, 97,114, 30,183, 14,200,196,228, -163,155,231, 15,213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61,247,176,251, 80,193, 81, 64,185, 16, 72,151,227, -226,226,228,139, 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187,101, 63,206,225,248,243,143,145,198,138, 45, 90, - 21, 41, 72,160,100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153,153,153,144, 72, 36, 72, 75, 75,131, 68, 34,201, -114,167, 19, 34,151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215,189,118,237,154,178, 83,167, 78, 47,202,229,114, -134,227, 56,152, 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180,111,223,254,250,238,221,187,141,168, 36,254, 21, - 65, 16,191,100,101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, 25,242, 20, 10,133,215, 43, 75,168, 80, 40,188, -153,148,148,212, 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, 46, -147, 33, 35, 61, 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, 74, 85,250, 18,165,104,186,100, 97, 24, 88,104, -186,212,162, 37, 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201,216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, 58, -116,192,148, 41, 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116, 40, - 44, 44, 20,202,229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240,224,129,166, 34, 78,155, 48, 43, 21, 93, 44,203, -130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136,223,178,157, 27, 52,104, 16,113,232,208, 33,176, - 44,155,254,132,179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, 21,113, 58,246,254, 28,183, 17, 46,142, 41,135, - 15, 62,248,224, 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25,104, 70,111, 62,183, 83,247,237, 93,141,126,222, -183, 43,127,179, 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174,223,184, 42,127,199,246,189,201, 15, 31, 62,212, -172, 93,187,182,227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69,227, 55,223,124,115, 92, 97, 97,161, 56, 62, 62, -126,119, 86, 86,214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100,107,231, 46, 2,152, 95, 89,127,141, 32, 8,252, -244,211, 79,229,102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, 39, 39,103,152,243, 78,177, 88, 60,175, 73,147, - 38,125,111,221,186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, 16, 8,234, 48, 12,147,105, 52, 26, 99, 31,219, -162, 69,177, 19,226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226,117,200,243,107,205,178, 65,237, 96,141, 82, 3, - 32,156,214,255,176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, 87,251,212,143, 17, 44,157,171,168,141,171,200, -162,245, 9,128,246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240,210,104, 52,200,201,201, 65,110,110, 46,132, 66, - 33,148, 74, 37,214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0,147,191,191,255,111,219,183,111, 15,254,250,235, -175,133, 49, 49, 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, 67,152,205,102,226,237,183,223,142, 88,177, 98, - 69,170, 64, 32, 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213,167,190,255,254,251,161,211,167, 79,151, 90, 44, - 22,151,150, 44,251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, 56,245,195,177,163, 93,255, 51,114,164,152,210, -106, 64,105, 53,160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,127,253,131, 50,155,205, -149, 6, 54,212,104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, 7, - 91,182, 4, 67, 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, 55,110,220,200, 29, 61,122,244, 53,150,101,219, -226, 9,125, 52,243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3,201,209,163, 71,187, 38, 38, 38,138,255,252,243, - 79, 92,184,112,161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170,196,155,171,160,191,176,249, 31,238,222,185, 7, -239,188,243, 14,145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,117,225,228,247,228, 34,164,194, -239,112, 51,164, 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, 56, 80, 22, 95,165,165, 12, 49,166, 24,141,205, - 33, 62,171, 22, 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140,243, 1,156,128,137,225,238, 93,231,110,188,244, -146,143, 63, 0,152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122,190,228,231,231,183, 46, 63, 63,191,179,171, 50, -141,142,142,238, 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179,243, 65, 17, 17, 17,115,110,223,190,221, 78, 36, - 18, 17, 85,212, 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35,110, 4, 78, 80, 12, 8,101, 96, 84,173,144, 38, -110,142,176,176,171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58,116,232,150,248,248,248,176,110,221,186,113,215, -175, 95, 39,157, 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97,215,174, 93,147, 81,118,166,109, 85, 72,179,197, - 27,172, 53,156, 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92,120,140,240, 12,143,149,196, 10, 13, 24, 21,108, -111,111,139,137,213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252,124,248,249,249,161,126,253,250, 32, 8, 2,235, -214,173, 51, 62,120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10,218,213,171, 87,239,218,182,109,155,234,218,181, -107, 2,154,166,149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152,189,118,237,154, 34, 34, 34,194, 68, 16,132,244, -199, 31,127,204,191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, 96,193,130,140,148,148, 20,152,205,102,104, 52, - 26, 20, 23, 23,151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246,239,223,159,101,139, 18, 95,153,101, 99,237,154, -117,235,213, 89, 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, 71, -163, 67,252,229, 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, 22,139, 81,111,248,112, 88,109, 67,133,142, 66, -139, 33, 8,132,247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, 79, - 76, 76,220, 5,224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153,162, 40,204,157, 59, 23, 98,177, 24,115,231,206, -197,167,159,126,138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, 6, 23, 47, 94, 20,159, 63,127,158,139,139,139, -203,139,136,136, 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, 94, 94,136,141,141,197,146, 37, 75,176,121,243, -102, 28, 60,120, 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, 87,175,206, 56,120,240,160,113,213,170, 85, 16, - 10,133,196, 83,106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81,181,111, 84, 69,156,144,197,199,215,181,137,163, -100, 7, 65,116, 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150,143,254,191, 68,213,166, 59,247,175,100, 25,103, - 3,248,193,158, 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148,148,228,253,253,247,223,203, 2, 3, 3,241,237, -183,223,202,228,114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, 9,253,218,181,107,247,190,173, 35,218, 11, 64, - 11,148,204, 94,140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, 32,173, 86,251,205,214,173, 91,235, 23, 48,190, - 56,166, 31,138,120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191,254,122, 29,134, 97, 54, 85,179,220, 95, 31, 50, -100,200,214,248,248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237,142,203,237,219,183,243,198,142, 29,155,181,105, -211,166,144, 17, 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, 29,186,120,225,150,254,207,205,205, 93, 93, 88, - 88,120,233,222,189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147,179,202, 33, 96,169, 43,191,146,222,176,197,218, - 32, 8,130,226, 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152,186,119,239,142,189,123,247,250,247,232,209,195, -192,178, 44,119,236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183,155, 54,105,210,100, 98,108,108,172,154, 32, 8, -214, 21,167,253, 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, 84,160,105, 26, 6,131, 1, 6,131, 1, 28,199, -193,219,219, 27,106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, 77, 38,147,105,216,228,247,167,159, 90,245,249, - 92,175,240, 6, 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37,114,220, 75,210,226,163, 93, 7,180, 70,147,233, - 53, 23,189,229,114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, 4, 5, 65, 32, 16,192,108, 54,131, 97, 24,136, - 68, 34, 68,198,196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20,143, 51,103,109,192,145,115,242,141, 27, 55,198, - 54,107,214, 12,147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250,245, 48,155,205, 99, 1, 92, 7,176, 14, 37, 67, - 29,112, 18, 89,127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, 9,171,213,138,207, 63,255, 28,118,193,105,175, -215, 83,166, 76,169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, 37,103,182,111,223,238,255,205, 55,223,188, 14, - 32,214,153,147,101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, 47, 47, 55, 60, 57,126,252,120, 88,173, 20, 4, - 2,161,197,100, 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188,159,161, 40, 9, 97,224,232,248,110,113,244,207, - 66,197, 33, 21,170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, 49,123,237, 38,253,106,112,218, 5, 97, 77, 56, - 79,217,150, 42, 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, 84,148, 78,179,217,252,231, 71, 31,125,116, 99, -211,166, 77,189,175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75,163, 41,138,226, 66, 66, 66,132,157, 59,119,150, -245,239,223,223, 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135,205, 57,239, 2,130, 32,240, 97, 87, 45, 98,123, - 8, 96,177, 88, 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56,142,172, 70,185,251, 1,152,253,221,119,223,133, - 74, 36, 18, 98,215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118,239,222, 61,207, 54,122,145,254, 44, 62,239, 60, -231,255, 44,231,179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148,162,168, 95, 92,132,112,248, 4,192, 92, 7, 43, - 88, 85,230, 60, 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233,147,149,149,149,213,112,249,242,229, 97, 52, 77, - 91, 19, 18, 18,200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190,125,251, 28, 65, 16, 86, 55, 50,152,144,156,156, -220,169, 71,143, 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, 68, 74, 74, 10,254,248,227, 15,203,238,221,187, -211,139,138,138,170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, 3,253,255,213,244, 5, 73, 72, 72, 8, 96, 52, -226,206,195,108, 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130,231,151,223,238,221,235,221,115,198,140,125,243, -254,243,159, 32,100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44,189,120,227,198, 28,155,200,122,210, 81,225,165, - 0,150,178, 44, 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96,203, -179,110,197,178,163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235,227,227, 3,173, 86, 11,154,166,153,140,140,140, - 59, 62, 62, 62, 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, 11, 72,146,172,200,242, 1,165, 82,153,118,230, -204,153,198,111,189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, 48, 28,199,237,127,210,247,160, 75,151,157,192, -134,152,215, 0,188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, 3,254,226,116, 28,198,179, 11, 34,155, 21,170, -185, 44, 62,126, 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221,129,163,246,213,235,245, 96, 24,166, 50,107,222, -239,123,247,238, 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101,143, 30, 61, 60, 29, 15, 48, 26,141,236,225,195, -135,245,235,215,175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, 31, 30, 93,184,112,161,119,255,254,253,155, 0, - 40,245,207, 82,171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, 75,249, 0,230,141, 26, 53,106,233,182,109,219, -234, 76,152, 48, 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105,185,109,219,182,144, 9, 19, 38,100,163,196,143, - 44, 29, 60,120,240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38,147,137, 51, 24, 12,156, 78,167,227,224,250, 43, -240, 7, 51, 51, 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, 39,197,235,170,193,242,216,177, 99, 71,163,208, -208,208,207, 21, 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 23, 47, 14,229, 56, 78, 92,137,138, -174, 8, 66,145, 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192,192,192,131, 34,145,232, 29, 0,162, 42,148,121, - 69,144, 9,133,194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225,113, 74, 40, 20,126,132,202, 3,169, 86,202, 41, -145, 72, 62, 10, 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, 68,242, 56,156,143,211, 43,177, 11, 45, 3,103, - 3, 65, 16, 84,235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213,234,107,155, 85,146,179, 89, 91, 12,168, 56,120, -227,223,153,206,167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77,154, 52, 41,152, 51,103,142,102,219,182,109,108, -100,100,228,246,154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148,148,196,109,218,180,137,142,140,140, 44,112,138, - 12,255, 36,242, 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68,140, 41,134,179,205, 62, 60, 1,160, 79, 5,101, -239, 46,103,152, 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191,158, 4,167, 75,180,104,209,226, 30,231, 0,139, -197,194,169,213,106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, 63, 0,111, 3, 56, 28, 28, 28,124,187, 99,199, -142, 15, 59,117,234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218,150,165, 0,154, 84,193,217, 81,165, 82, 45, 12, - 11, 11, 59,212,184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45,194, 95,145,177,171, 91,231,123, 12, 29, 58, 52, - 77,167,211, 49, 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70,142, 28,153, 14, 32,250,159,240,188,243,156, 79, -133,243, 31,133,198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118,110,149, 5,193,113,156,128,227, 56, 15,142,227, -188, 57,142,243,229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254,251, 56, 39,219, 4,148,193,246,223, 25, 85,237, -127,174,239,103,104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239,127,116,224,192,129,143,218,181,107, 55, 53, 52, - 52,212,231,113,210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121,243,230, 95, 57,137,172, 39,153,119,137, 77,196, - 52,179, 45, 13,109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195,105,231, 59, 4,160,175,109, 57,100,219, 22,246, - 20, 56,203,161, 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181,186,215,162, 69,139,123, 77,155, 54,189, 23, 17, - 17,113,175,110,221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103,192,158,118,157,239, 30, 25, 25,121, 85, 38,147, -185,140, 13, 38, 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, 11,173,255, 33,240,149,240,217,227,148,162,242, -207,140, 84,181,159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145,212, 2,167, 35,159,189, 78, 69, 56,136,166,167, -193,201,215, 37,158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230,126, 30,207,197,104, 60,126, 0, 0, 32, 0, 73, - 68, 65, 84, 54,170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, 81, 91,109,103,119, 0,231,236,189,194,138, 84, -105,117,102, 19,212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31,199,105,199,138, 10,182,223,113, 90,255, -250, 25, 21, 94, 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, 78,158,179,166,152,248,140,138,172,110,246, 21, -126,232,144, 7, 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, 8,236,255, 71,141, 26, 53,158, 97,152,169,246, -117,129, 64,176,230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, 85, 93,199, 21,103,139, 38,202, 73,126,222,138, -247,138,138, 13, 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178,101,203,221,218, 78,231,248,241,227,155, 56, 95, -167,126,152,168,187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236,169,192, 31, 64,180,151, 76, 60,168,133, 74,220, -241,207,124,211,101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, 42,149,202, 49, 0, 90, 24, 12,134, 64,133, 66, -145, 11, 32, 65,163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, 91,125,120, 46, 21,245,220,217, 87, 21,250, 68, -192,196, 1, 82,130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247,105, 4, 11,199, 65, 76, 0,230,147,247, 33,123, -142,138, 74, 9, 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120,174,224, 60, 84, 88,186, 46,172, 64, 76,116, 21, - 11,137,175, 56,112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66,190,246,237, 9,227, 63, 7,137, 34,138,198,187, - 91,182,108,169,241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123,248, 99,159,174, 3, 22, 47,178, 60,200,139,213, -106,181,164, 84, 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56,139, 88,236,113,121,197,138, 21,217, 53, 77,231, - 7, 31,124, 16,108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, 88,124,246,240,199,138,110,209,139, 62, 7,120, -161,245, 20, 32,169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, 76, 22,235,160,179,233,186, 65,159, 94,201,156, -158,174,179,182, 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70,110,220,184, 81,220,176, 97, 67,200,100, 50, 24, -141,198,144,251,247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22,238,125, 8, 46,252,236,214,255, 3, 0,116, 26, - 51, 63, 28, 37, 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, 44,148,132, 80,112,213,234, 72,142,108, 91,134, - 65, 99, 63, 18, 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, 9, 14,194,195,219,150, 33,122,236, 71, 21,126, - 71,177,111, 99,130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12,231,160, 36, 6, 88, 57, 74,148,124,208,217,229, -241, 3,154, 10,114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, 76, 27, 80, 20, 83,210,182,138,133, 96, 14,166, -120,159,157, 61,123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212,106,181, 63,218,238, 91, 50,255,248,242,224,241, - 92, 11, 46,215, 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, 98,231,206,157, 40, 44, 44,132,143,143, 15, 36, - 98,177,104,229,210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169,169,230,117, 26, 59,159, 79,216, 62,165, 35, 20, -144, 34,137, 68, 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, 69,159,200,149, 74, 79,249,155,147,103,118, 70, - 73,252,159, 26,193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112,190,142, 88, 44,102,236, 47, 22,190,142, 61, 21, -204,222,248,238,216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, 80, 0, 1,129,230, 49, 39, 82,103, 1,248,244, -121,201,108,195,134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, 78,175,215,195,104, 52, 34, 52, 52, 20,103,207, -158, 21,207,153, 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, 86,253,240,240,112, 19, 0, 12,108,233,229,188, -175,158,125, 31, 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253,188, 41,189, 66,153, 10,182,155, 0, 40, 42,227, - 98, 89, 78,120,242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54,108,104,116,220,238,233,233, 89,209, 41, 65, 58, -157, 46,220,121,163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, 6,194, 29, 59,118, 0, 0,190,252,104,180, 96, -211,207,121, 66,161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68,255,109,219,182,245, 63,120,240,224,202,138,132, - 42, 15, 30, 60,158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, 94,127, 27,199,143,255,128,174, 93,187,150,238, -107,208,160, 1,134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167,176, 88,255,105,191,145, 95,205,127,152,173,187, -114,228,200, 17,116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68,153,119, 11, 4, 71,138,189,148, 30, 24, 21,243, - 14, 92, 93,103,226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, 30,141,130,253,250,180,108,214, 20,133,251,215, -226,143, 34, 19,142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135,168,103,182,158,122, 46,132, 86,112,112,112,211, -128,128,128, 50, 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73,196,198,198,138,207,157, 59, 55, 50, 56, 56,248, -180, 27,195,136, 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, 40, 20,156, 80, 44,213,118, 31, 55,223, 11, 0, - 72,161, 88,187,114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210,157, 52,155,205,102,206,145,211, 98, 49,151,110, - 95,188,120,177, 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5,144,138, 5,144,138, 5,144, 73, 68,240,170,223, - 14,210,194, 63, 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34,145,136,167, 77,155, 86,101, 58,199,143, 31,207, -169, 84, 42,171, 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136,160,144, 10,209,184, 65, 24,164,156,209,237,180, - 10, 4,101,189, 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221,121,161,197,131,199,115,129, 10,103, 24, 10, 1, -224,200,145, 35,221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24,222, 28, 55, 10, 12,195,150,126,231,139, 32, 9, - 76,126,163, 63, 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, 0,160, 81,189, 16,110,226,155,255, 1,195,178, -127, 13,148, 8,128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133,171,235, 52,109, 84,135,164,173, 38, 16,101, 63, -246,248,119,124,108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, 59, 5,198, 83, 25,250, 64, 82,149,170, 94,245, - 90, 7,153, 64,157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179,113,227,198,114, 34, 43, 39, 39,135,212,233,116, -176, 90,173,172, 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179,179,231,217, 53,143, 43, 78,155,223,213,140, 91, -183,110,213,155, 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, 9, 9, 89, 21, 21, 21,229,187, 96,193, 2,107, -255,254,253, 83, 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155,119, 71,206, 45,103,214,112, 0, 64, 16, 4,162, -162,162,210, 26, 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, 52, 9,245,182, 53, 34, 4, 32,247, 44,245,196, -139,138,138, 74,111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85,142, 83, 46,151, 83,175,191,254,250,195, 59,119, -238,184, 58, 30, 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, 18,128,158, 51,101,180, 80, 37, 3,164, 94,254, -102,141, 70, 3,165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221,246,236,217,115,142,127,222,121, 78,158,243, 47, -184,210, 34,207,160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, 8, 15,194,226,255, 27, 15,134, 97,193, 48, 12, -104,219, 47,195, 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174,119,125,122, 14, 89,218, 43,110,246,184, 83, 12, - 3,176, 44, 5,138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245,194,130, 17, 55,123, 28,156,175,179,253,187, 61, - 3,207, 28,138, 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, 82, 33, 39,148,193, 98,161,161,181,176, 22, 0, -122, 19,197, 90, 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134,101, 68,214,178,101,203,252,215,173, 91, 23, 10, - 0,195,134, 13,203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, 1, 0,222,179,157, 59, 3,192,186, 10,120,245, -225,225,225,166,128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, 96, 96,160,185,113,227,198,122,177, 88, 12,146, - 36, 97, 23,122,110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, 16, 9,201,242,205,155, 3, 39, 73,146, 46,175, - 87, 97, 29,146,201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, 67, 4,224, 44,199,113,184,126,253, 58, 82, 82, - 82, 32, 22,139, 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, 6,224, 38,255, 4,243,224, 81,138,179,207,160, -192,114,182,106, 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68,236,184, 16, 63, 20, 13,138,178, 2, 28, 87, 43, - 66,171,162,235, 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, 77, 81,181,114,247, 88,134, 2,203, 82,112,117, - 29,130, 32, 25, 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23,104, 19, 66,253,164, 18,228, 25,209,240,133,102, -130,223, 13, 20, 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201,160,215,235, 75, 45, 89,235,214,173, 11,181, 88, - 44, 36, 0, 8,133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63,142,227, 8,155,224, 89, 10, 96, 11, 42,137,238, - 47, 22,139, 75, 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44,118,185,221,121,120,173, 42,136, 29,133, 22,184, - 18,171,150,147,216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, 10, 28,174, 39,168,190, 43,166,213,106,133, 78, -167, 67, 81, 81, 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, 49, 15, 30,174,181,200, 51, 44,182, 92, 11, 45, -148,152,236, 8, 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, 23,112,213,140,122, 58,114,228,200,173, 33, 33, - 33, 29,236,235, 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152,126,101, 68, 86,137, 69,203, 82,225, 55, 65, 10, -139,245,159,246, 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161,198, 28, 70,146,191,162,144, 8, 97,134,191,253, -217,120,135,198,253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77,228,132,158,205, 21,164,246,252,199,227,254,117, -192, 81,204,249,250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151,183,138, 12,123,185, 59, 94,126,239, 43,156,249, -228, 99, 14, 40,132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, 5, 10,158,139,188, 42, 20,138, 92,131,193, 16, - 98, 52, 26,161,209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, 88, 2,202,106,193,241,237, 95, 84,201,105, 15, -225, 48,176,165, 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240,218,143,223,219,191,252, 93, 47, 0,184,113,100, -173,102, 84,236,154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153,205,102,147, 77,160,217,133, 31, 30, 60,120, 80, -215,108, 54, 27, 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169,169,169,117, 40,138, 50, 8,133, 66, 88, 44, 22, -183, 84, 17, 73,146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224,150,128,196,219,237, 60,115,110,116, 68,109, 98, -235,137, 69,144,230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213,253,200,145, 35,156, 99, 15,145,166, 40,155,200, -250, 75,244, 48, 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145,247,130, 5, 11,164,115,230,204, 49,143, 28, 57, -114, 57,203,178,173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107,215, 26,218,215, 41,138,130,151,151, 23,188,188, -188,208,180,113, 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, 40,138, 1,195,178,165,226,167, 80, 99, 14, 59, -116,250,122, 35,135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124,236, 90, 63,119,250,130,205,155,165,133, 76,192, -180, 81,175,189, 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201,177, 84,233,245, 64,130,131,179,143, 22,143, 39, -132,228, 34, 61, 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191,200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77,212, -115,148,221,132,228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, 97, 25, 66,161, 40, 76, 40, 18, 17,209,163,166, -178,217,217,153, 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, 66,163,100,232,208,149, 53,203, 49,132,131, 87, - 84, 84,148,175,125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142,179, 14,221,180, 22, 17, 35, 71,142,148,135,135, -135, 19, 0,240,235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254,143,107,223,117,155,211, 95,193, 1,197, 15,128, -226,212,114,150,172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97,236, 46, 15, 33, 13,100, 95,119,139, 43,166, 13, -168, 80, 79, 8,151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131,135, 91,112,210, 34,207, 20,186,217, 4, 98,119, -219,111,169,224, 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, 6, 34,194,140,149, 43, 87,226,253,247,223, 7, - 0,241,244,233,211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68,101,189,198,179, 33, 33, 33, 57, 28,199,137, 72, -146,236,178,118,237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12,195,194,106,181, 84,248,153, 91, 31,165,124,193, - 15,123,166,249,244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, 41, 63, 55, 3, 39,143, 31,196,134,245, 27, 10, - 65,112,183,193,129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205,177, 96,243,102,233,173,107, 89, 7,166,126, 48, - 43,114,248,168, 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11,243, 6,254,196,251,104, 61, 45,248,158, 60,117, -138, 24, 51,102, 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153,247,223,127,159,204,206,206,134, 70,171, 19, 2, -240,197,115, 96,214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36,161,209,104,208,163, 71,143, 60, 53, 27, 42,155, -248,206, 84,255,204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, 71, 27, 71,141,127,191,206,251,179,227, 54,102, - 93, 94,191,206,157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, 42,149, 74,198,141, 27,231,214,248,161,197, 98, -225, 22, 47, 94,108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204,114,185,156,163,168,170,253, 62, 73,146,160,223, - 90,176,131,166,105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176,176, 48,139, 66,161,224,164, 82,169,216,157,116, - 78,157, 58,149,243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, 64,184, 96,109,105,120, 7,169,151,151, 23,180, - 90,109,105, 90, 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206,189, 56, 90, 44,160,203,201,205, 11,244, 15,170, - 15,154,166,109, 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173,168,233,211,167, 31, 0, 80,101, 99,182,107,215, -174,249,211,167, 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99,198, 12, 44, 93,186, 20, 34,137, 12,190, 1,117, - 75,175, 99,191,110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, 65, - 73,214, 78, 30, 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229,144,161,115, 38, 76, 48,187, 97, 4, 36,111, 93, -203, 58, 48,245,253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, 8, 75,175, 67,177, 44, 72, 82,192,251,104, 61, - 37,145, 37,149, 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162,144,151,151,135, 3, 7, 14, 36,112, 28, 7, 31, - 31, 31, 28, 59,118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179,179,239,200,229,242, 93,179,102,205, 26, 53,115, -230, 76, 17,203,178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16,197,197, 26, 86,225,169,202,178,114, 2,133, 72, - 44, 1, 41, 16, 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22,139,113,117,207, 50, 77,247,113,243,149, 0, 32, -150,202, 11,251,244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, 58, 63,159,244,144,113,177, 2,133, 92,166,143, -138,138,122,104,231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209,105,145,145,145,122,129, 64,128,196,131, 75, 52, - 67,198,197,202,136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, 5,213,191,127,255, 71,118,127,177,212,212,212, - 58, 3, 6, 12,144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, 69, - 81, 20,112,139, 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74,221,168,117,214, 90,220, 84,171,162,214, 81, 23, - 42, 46, 16, 7, 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, 65, 91,107,127,121, 62,159,124,146,220,189,247, -220,123,251,185,239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, 6, 70, 70, 70,138, 9, 19, 38,188,123,254,252, -121,109,163, 14,171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, 45, 3, 12,248,111,162, 98, 30,173,170, 51,195, - 43,148,138,111,167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223,127,255,157, 9, 0, 35,141,216,154, 59,119,110, -141,101, 78,180, 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248,227,143,140,248, 87,137,242,177,211, 87, 20, 84, - 88, 15,104,208,197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166,101,150,220, 25, 59,109,105,217,221, 75, 5,160, -144,224,171, 0, 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157,219,130,206,172,193,129,154,197, 22, 77,120,124, - 59,119,129,149, 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246,122, 0,192,218, 12,103,124,191,218,208, 59, 43, - 79,180,221,112,158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228,230,230, 66,165, 42, 61, 34,114,185, 28, 66,161, - 16, 69, 69, 69,144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174,150,201,100,211, 63,247,237,126,251,246,237,174, -115,231,206,225,214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9,133, 92, 6,128,166,179,179,179, 41, 99, 83, 75, -129,173,131,243,187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222,225,251, 23, 47, 94,212,219,180,105,147, 76, 59, - 18,112,248,130,157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198,121, 93, 23,103,248, 43,111, 48,251,197,139,103, -205, 42,114,250, 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106,100,237,233,233,153, 92, 29,111,131, 6, 13,196, -124, 62, 95,214,164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, 57, 56, 56,200,154, 54,109, 90,172,175,211,190, -145,145, 17,173,177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195,127,223,168,145, 96,212,168, 81,252,121,243,230, -225,224,193,131,184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252,135, 18,235, 26, 96,192,255, 25,170,207,163, 85, - 17,135, 14,133,252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206,156, 57, 16,139,197, 86,149, 52,235, 1,117,174, -141,202, 68, 86, 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28,234, 86,213,250,134, 12, 25,242, 30, 39, 77,144, - 12,146, 36,138, 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, 60,221,185, 45, 72, 12,160,103, 69,177,133,191, -202,140,148,113,106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, 89, 58,113,117,165,226,108,245,138, 41, 38, 36, - 73,116,172,224,163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227,227, 67,106,139, 44,153, 76, 86,150,184, 83,227, - 44,158,150,150,134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85,206,233,115,221,118,213,219,183,111,119, 56, 58, - 58, 94, 91,190,124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, 33,211,136,174,125, 71,136,100, 52,147,151, 42, -200,108,114,243,226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, 84,228, 44,209,164,113,104,210,164,137, 72, 91, -168,212,173, 91, 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219,174, 47,167,218,255, 75, 84,211,254,212,136,182, -138,105, 35,140,141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81,135,101,156,234,244, 14,229,116, 90, 72, 72, 72, -143,144,144,144, 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84,127, 12,215,187,129,243,255,149,243,115, 70, 87, -252,229,155, 5,148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220,185,249, 98,177,216,106,212,168, 81,213, 46,147, -145,145,113,240,240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202,202,170,213, 86, 89,153, 27,173,185,117,126,161, - 85,215,126, 27,230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, 42,136,173, 95, 1, 12,170, 74,149,246,250,114, - 32,142, 30,218,169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90,154,114, 87,169,251, 49,207,224,163,245,207,128, -205,102,251, 45, 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, 62,125,138,177, 99,199,114,163,163,163,253,228, -114,249,141,255,194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25,177, 71,140,159,227, 92, 22,117,120, 98, 23,164, - 18, 49, 0, 48,117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46,231,106,166, 63,126,252,216, 85,147, 91, 75, 34, -145,232, 28,117,248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153,236,200,200, 72,103, 13,167, 84, 42,213, 41,234, -144,195,225,176,163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, 88,174,214,162,218,183,140, 32, 8,130, 54, 12, - 27, 26, 96,192,103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97,186,184,184,244, 26, 62,124,120, 57,145,229,239, -239,175, 58,125,250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194,123,111,144, 32, 73,242,105,231,182, 77, 65,146, -228,211,165, 19, 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, 75, 51, 0, 54,246,117, 16, 48,238, 91, 4,140, -251,214, 10, 64, 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, 19, - 88, 69, 69, 69, 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, 4,241,159,246,163,147,203,229,202, 69, 43, 55, - 29,102, 48,217, 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84,226,123, 53,115,230,204, 74,167,127, 42,206, 37, - 75,150, 84, 26, 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, 14,117,191,125, 25, 96,128, 1,255, 49, 84, 26, -186, 87, 43,161, 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114,160,124,247,238,221, 74, 75, 75,203, 41, 34,145, -232,143, 65,131, 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104,133, 95,255,141,243, 10,138,165,193, 21,231, 85, -180, 60,105,196,214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, 85, 37,168,170,138, 86, 20, 22,138, 87,250,245, -223, 56, 39,191, 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98,202,218,214,171,194,194, 66,148,148,148, 64, 93, -146, 6, 0, 80, 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230,171,173, 85, 0, 48, 63,241,230, 14,237,115,251, -153,246,188,106,172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, 10, 68, 87,135, 76, 61,249, 50, 1,128,205, 98, -100, 85, 85, 60,154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184,178, 13, 48,224,243,125,255,255, 84, 43,238, 97, -224, 52,112, 26, 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13,156,255, 54,206,202, 48,249, 51, 17, 90,116, 37, - 31, 0,181,180,104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192,128, 15,199,123,197,164,181,103, 84,165, 74,245, -137, 38,168,141,178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,255,142,179, 38,110,237,229, 39, 3,216,247,153, -136,173, 79, 18,208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,172, 45, 12, 67,135, 6, 24, 96,128, 1, 6, - 24, 96,128, 1,255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, 59,131,144,114, 54,240,191,182,137,254,254,254, - 12,125,218, 39, 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, 43,130,107, 58, 17,109, 27,180, 26,109,204, 51, -158, 46,147,201,234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27,243, 7, 15, 30,240,125,124,124,210, 1, 20,105, -189, 41, 24, 96,128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138,142,129, 48,238, 80,185,118, 22, 30,227, 64, 18, -205,180,166,136, 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108,216, 48, 25, 64, 65,197,181, 87, 50,207,112,157, - 27,240, 57,163, 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, 12,104,140, 4,129,104, 36,134, 14,174, 21,143, -219, 55,117, 64, 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69,211,163,241,230,228, 19,189,249,234,251, 79, 67, -213,229, 44, 86, 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, 52,108, 61,104, 1,202,103,112,174, 45, 56, 0, -124, 73,146,108,102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249,181,228, 36, 1, 76, 48, 53, 49,233,227,106,198, -105,245, 46, 71,152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150,227,190, 57, 35,124,198, 6,205,234, 1, 75,191, -141, 11, 74,128,234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214,180,142,157, 41, 4, 57, 34,155,159, 14,134,108, - 10, 9, 57,218,111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, 48, 24,137,203,150, 45,251,117,197,138, 21, 52, - 81,117,165,114,190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, 40,159,101,188, 54,248, 44, 56,235,212,169,227, - 68, 81,212, 68, 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, 83,222,117,104,154,222, 75, 16,196,100,154,166, -247,233,241, 61, 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, 28,254,174,237,249, 39,215,245, 15,189,127, 79, -186,114,231, 69, 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75,249,118,158,170, 42,238,129, 4, 77,211, 88,185, -114, 37,177,106,213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169,111, 42,206,211,186,206, 13, 98,203,128,207, 21, -250, 21,149,174, 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25,221,159,160, 25, 60,140,152,180, 80,169, 55,151, -235, 88, 46, 24,226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, 22, 0,201,194,222,139, 73, 54,193, 65,203,118, - 3,240,169, 69, 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, 40,150, 80,232,245,245,152, 21, 0,126,210,243, -174, 68, 90, 26, 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, 61,123,182,137,167,167,167, 37,143,199,227, 72, - 36, 18,135,132,132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89,183,161,179,211,201,224,185, 19,218, 53,111,224, - 10,150,172, 24,148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, 71, 45, 74, 38,228,228,228, 16, 0, 96,107,107, - 75,151, 23, 89,237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14,235,122, 45, 70,125,243,205, 64,191,181, 63,204, - 52, 77,203,149, 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118,255, 26, 50,121,231,134,133,251, 85, 42,213, 23, - 0,218,168, 84,170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79,232,163, 12, 6,227,106,183,110,221,234, 79,156, - 56,145,104,221,186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, 42,213, 51, 0, 47,161, 46,123,162, 3, 88, 0, - 26, 51, 24, 12,239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119,236,216,209,187,127,255,254, 68,227,198,141, 17, - 31, 31,223,250,210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, 5, 2,129,248, 31,127,142, 19,196,100, 0, 78, -106,157,188, 82,135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, 67, 16,132,253,223,185, 61,122,174, 43,150, 32, - 8,107,117, 91, 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88,253, 34,165,179,214, 5, 80, 93, 34,104, 35, 0, -232,213,169, 89, 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93,185, 27, 99, 93,206, 10, 86,241, 45,118,229, 74, - 98,197,138, 21, 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, 41,170,108,222,138, 21, 43,182, 87,115,157, 27, - 96,192,231, 2, 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27,123,255, 89, 19,135, 26,121,122, 52,132, 4,166, - 72,202, 81,225, 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40,112,126, 19,223,118,158,120,158,166,192,227, 52, - 21, 74, 18, 21, 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231,165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, 90, -146, 81,178, 87,171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187,187,251,168, 85,171, 86, 89,102,100,100,152, 68, - 70, 70,130,203,229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107,214, 87,114,185, 60, 9, 64,142,142,156, 30,125, -219,120,223,219, 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98,138,250, 70, 70,184,244, 77, 67,107,255,176,196, -211, 15, 51, 69, 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230,237, 89, 44,150, 3,207,170, 30,149,206,108,147, -155, 77, 52,120,155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87,176,237,216,253, 95, 90, 33, 99,121,117,121,179, -141,141, 77,167,204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198,248,154, 97,238,151, 22, 8, 24, 49,204,228,212, -111,161, 83, 0,236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, 96,161, 76, 38, 35,217,108, 54,193,227,241, 70, -173, 93,187, 86, 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, 69, 13,110,220,184,209, 32, 36, 36, 68, 25, 17, - 17, 17, 11,224,108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238,221,155,187,116,233, 66,113,185,127,165,159,170, - 13, 39, 0, 88, 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213,171,119,165, 93,187,118,221,122,245,234,197,236, -212,169, 19,156,156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, 30, 30,190,251,202,149, 43, 59,158, 60,121,114, - 35, 41, 41,169,215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194,116,239,222,189,246,154,154,140, 10,133, 2, 42, -149,170,236, 91,243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246,145, 72,235,173, 89,243,161, 42,251,230,112, 56, -182,154,132,189, 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174,209,194,242, 13, 74,223,159, 69, 34, 81,178, 64, -106, 25, 3,160, 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, 61,100,200,144,138,101,175,188,213,223, 34,130, - 32,110,146, 36,121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128,157,214, 36, 25, 74, 71,133,160,126, 78, 18, 0, -108, 42, 76,215,110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241,168,150, 93,188,133, 42,252,180,152, 0, 16, 22, - 22, 70,247,235,215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, 59,130,228, 89,225, 85, 22, 16,241,142, 6,147, - 84,128, 4,141, 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239,188, 61, 61, 54, 30, 8,154,205,136,205, 98,226, - 80,120, 9,228,146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, 51,128, 88,161, 51,231,123, 7, 6, 80, 81,234, -119, 64, 10,168, 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144,139,226,116, 88,125, 85,156, 94,141, 26, 53, 26, -241,195, 15, 63, 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, 36,115, 62,159,159, 55,109,218,180, 70, 78, 78, - 78,230,131, 6, 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251,150, 17, 7,119,108, 53,201, 61, 21, 12, 89,194, - 83, 92, 20,136,112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, 59, 57,153,246, 61,147,176, 81, 65, 81, 1,213, -113,222,187,119,143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, 75,102,104, 68,174,197,194,221, 17, 78, 37, 82, - 57, 99, 68,183,122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, 81, 81, 85,115, 42,228,242,250,206,246,230,136, - 78, 18,227,208,237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53,133, 82,174,104, 60,100,200,144,195,234,183,246, - 71, 0,190, 30, 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242,234, 41, 86, 86, 86,232,218,181, 43, 60, 60, 60, -152, 93,186,116,241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51,178,177,177,177, 50, 51, 51,203,173,236, 65,165, - 15, 39, 0, 88, 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, 70,140, 24,241,214,220,220,188,156,245,215,196, -196, 4,141, 26, 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, 72, 72, 8, 8,130, 40,123,104,191,103, 44,118, -117,133,163,163, 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71,122,224, 90, 37, 22,173,149, 21,142, 83,149,195, -111,149,181,215,225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143,199, 43,179, 66, 85,178,174,247, 56, 73,146,196, -210,165, 75, 65, 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51,133, 32, 8,146,205,102, 47,100, 50,153, 19,165, - 82,169, 51,143,199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, 33,178, 42,229, 52, 49, 49,113,125,245,234,149, -123, 85, 29,145, 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205,205,173, 49, 0, 77,137,182,219, 52, 77,119,209, -250,175,141,219, 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255,167,206, 79, 3,231,191,143,179, 6, 45, 98, 71, - 16, 68,152,113, 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243,127,209,162, 69, 75,214,175, 95,255,130, 32,136, - 48,237,233,218,237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195,134, 13,235, 52,109,255, 14,145,168,143, 69,203, - 60, 91, 98,130,240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, 4, 20, 21, 22,220, 65,226,233, 68,221, 44, 89, -254,157, 90,180,240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185,137, 71, 55,127,207, 80, 41, 85,191,131,160, 31, - 3,100, 36,222, 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57,177,245,201,208,188, 73,147, 38,195,150, 45, 91, -102, 27, 21, 21,197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, 39, 39, 55,217,190,125, 59, 39, 40, 40,200,203, -203,203,139,127,242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, 57,188,216,147,187,192,137,141,196,210,167, 57, -170, 63, 5, 37, 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122,102,108, 52,180,228,248,197,229, 73,170,181,100, - 25, 27, 27,111, 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, 35,156, 46,175,239, 68,116,106,102,131,172, 2, - 41,102,239,138,198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, 21, 58,216,152,242, 48,186,179, 41,186,175, 77, -135,127, 27, 46,184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90,100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, 74, - 10,223,199,199, 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109,219,104, 47, 47,175, 98, 43, 43, 43,136,197, 98, - 72,165, 82,176,217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210,235, 64, 21, 23, 23,195,204,204, 12, 20, 69,125, - 48,167, 74,165, 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115,231,230, 54,109,218,244,241,176, 97,195, 94,219, -219,219, 75,159, 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, 38,147,129,201,100, 66, 44, 22,131,203,229,130, -201,100, 66,169, 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108,200,100,178, 79,241, 6,250,158,133,170,186,225, -183,218, 88,180,180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70,150,150,150, 11, 1, 8,106, 90, 23, 65, 16, 96, - 48, 24, 96,179,217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, 36, 36,224,248,241,227,120,244,232, 17, 88, 44, - 86, 89,123,157,199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, 7, 94,189,122,245, 16, 27, 27, 91,119,195,134, - 13, 11,175, 93,187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75,135, 11,251, 74,165, 82,196,198,198,234,179,204, -123,104,216,176, 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, 46,161,212, 47, 81, 27, 34,154,166,191, 36, 8, -162, 16,192, 51,146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197,255, 4, 65,132,173, 95,191,190, 95,101,226,170, -146,107,179,220,244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239,167,182,114,253, 37,180,194,194,194,170, 87, 32, - 20, 6,133,157, 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, 3, 64,255,162, 83, 87,248,253,140, 72, 6,243, -151, 61,235,102,146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33,128,158,139,196,208,194, 15, 62, 18,245, 6,121, -217,219,216, 90, 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, 71, 68, 68,216, 74, 36, 18,222,157, 59,119, 74, - 66, 66, 66, 50,228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9,131,201,100,114,228,114,121,117,190, 11,173,230, - 79, 28,115,103,227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55,179,196, 95, 3,208, 40,250,235, 81, 57,226, 52, - 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116,196,200,145, 35,249, 26,145, 5, 0, 57, 69, 10, -102,137, 84,193,232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, 4, -123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126,202, -231,243,195, 0,124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, 42, - 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, 45, - 90,232,117,176,114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, 43,107, 27,209,157,240,219,155,106,195, 73, 81, - 20, 1, 0,158,158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89,179,230,157,171,171,235, 81,177, 88, 92,206,114, -160,171,208,210,136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, 38,138,138, 74,131, 54, 45, 45, 45, 63,137,208, -170,194, 66,245,209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234,184, 45, 80, 42,149, 96,179,217,240,241,241, 65, -112,112, 48, 30, 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, 36, 94,188,120,161,111, 23,169,136,136,136,133, - 95,127,253,181,231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130,131,131,185,147, 39, 79,110,120,227,198,141,229, - 40, 13,126,169, 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, 90, 92,190,124,217,190, 76,128, 85,140, 72,124, - 31, 5,203,151, 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191,208,208, 80, 2, 0,252,253,253,105,130, 32, 52, - 15,164,103,167, 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74,139, 76,214, 92,147, 85, 9, 40,125,132,154,182, -197, 75,131,197,139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35,182,202, 30,166, 85, 14, 25,150,217,190, 72,190, -163,189,141,245,162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62,127, 84, 2, 30, 17,170, 83,119,184,156,160, 53, - 63,204,105, 16,157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, 53,254,227,136,172,161,222,142, 14,246,183,142, -237, 93, 77, 62,122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179,179, 11,184,127,255,190, 29,151,203,229,189,122, -245,138, 58,117,234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148,166,166,166, 16,137, 68,114,185, 92, 46,169, 70, -100, 57,251,181,106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, 69,145, 5, 0, 29,187,185,215,169, 67,240,204, - 64, 3, 72, 42,148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186,120,182,102, 44,165, 49,151,165,186, 27,147, 67, - 69,222, 56,133,240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, 99,246,252,126, 46,236,234,119,203,130,138, 75, - 68, 69,112,115, 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119,106,135, 83,167, 78,109, 64,169, 51, 56, 0,188, - 60,117,234,212,152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106,179,102,205,132, 30, 30, 30,194,220,220, 92,196, -196,196, 32, 63, 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, 23, 72,200,207,207, 51,165,105, 26,249,121,185, - 38, 63,252,240,131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, 26,187,164,164,196,242,221,187,119,230,218,243, -116,229,148,201,100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195,235,215,175,203, 68,150,122,253,159,204,162,165, -249,205,227,241, 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, 46, 90,253, 91, 95,113, 88,227,246,232,120,220, -193,102,179, 49, 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, 40, 41, 41, 65,207,158, 61,193,225,112,244,181, -104,209,108, 54,123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67,165, 82, 97,238,220,185, 70, 92, 46,119,164,190, -166,123,129, 64,208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, 69,104,104, 40,225,239,239, 79,251,251,251,211, - 26,193,101,128, 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, 80, 7,136,212, 2, 26,145,213, 85, 75,120, 17, - 26, 11,151,110, 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, 2,169, 41, 73,200, 22, 36,163, 77, 7, 63,196, - 62,143, 6,165, 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222,181,131, 23,130,194,138,241, 42,242, 50, 10,178, - 5, 59,145,116,234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149,229,165, 24, 18, 41, 41, 73, 56,251,235, 86, 90, - 33,151, 22,160,124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, 60,178,132,167,231, 32, 69, 6,128,240,173, 91, -183,118,111,223,190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154,185,187,187,247, 13, 14, 14,118, 72, 73, 73,193, -181,107,215, 50, 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, 53,104,130,237, 75,190, 83,134, 62,138, 25, 0, -224,146, 86, 27,143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38,222, 10,165,127, 86, 69,152,147,147, 67,148,148, -148,184, 90, 90, 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, 73, 34, 87,129,203, 34,233,217, 3, 93,211, 31, -158, 13,181,201,145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, 14, 11,187, 48, 93, 46,149,120, 53,105,210,152, -126, 28,113,227,233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24,229, 4,186,182,133, 72, 95, 75,145, 62,208,149, -179,162,208,210, 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50,193,248,119,108,191, 62, 22, 42,237, 33, 67,141, - 63,157, 68, 34,177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, 79,255, 72,146, 4, 69, 81, 96,179,217,104,209, -162, 5,194,194,194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, 54, 54,101, 66,139, 36,117,142,210,161,165, 82, -105,221,186,117,235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79,136, 68,162, 58,248,148,182,123, 3, 12,248,123, -239, 43, 97,218, 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, 84,102,225,250, 64,193, 85,206,186,197,212, 86, -144,149, 42, 73,181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, 81,164,144,203,242, 41, 74,225,250, 54, 62, 26, - 32,241,139, 78, 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, 31, 95, 78,130,152,179,248,163,137, 44, 7,219, - 27,135,119,173,180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, 32, 49,244,241,135, 80,143,100,179, 7,178, 93, -222,245,155,232,155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250,200, 48,109,100,103,103,159,221,186,117, 43,241, -227,143, 63,118,149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111,159,117, 74, 74, 10,235,206,157, 59,162, 27, 55, -110,208, 0,206,215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, 13, 0,240,135,214,108,207,126,173,155,221, 61, -184,126,185,153,226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, 80, 64, 40, 20, 66, 81,156,171,108,195, 23, 9, - 3,135,216, 75, 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, 54, 54,214,107, 95,238, 90, 63, 63, 4, 64,200, -144, 33, 67, 14, 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8,195,170,176, 10,192,220,142, 29, 59, 18, 62, 62, - 62, 15,182,109,219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178,138,253, 75,212,150, 83,219,162, 85,147,208,250, -148, 22,173,202, 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253,211,248,201,177,217,108, 68, 71, 71,195,197,197, - 5,114,185, 28,102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177,160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, 99, - 59, 59, 59,168, 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197,231,243, 47,171,163, 14,203,193,209,209,209,226, - 99,236, 87,109, 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, 43, 88,162,100, 90,255,179, 81,154,195,173,159, -250, 55, 42,249, 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38,104, 82, 60,148,139,112, 97,214,100,201,178,183, -182,186,113, 96,123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, 23,160,104, 65,196,181,211,161, 32, 80,130,183, -161,183,116,187, 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, 33,100,133,148,124,240,209,113, 27,212,194,222, -218,246,198,161,224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81,210, 29,137,167, 35,107, 75, 59, 1,176, 98,152, -240,118, 15,246,107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243,101, 84,201,239,225, 60,225, 73,170,152,154,158, -118, 95, 55, 7,186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52,116,247,238,221,118,169,169,169,188,168,168, 40, -241,222,189,123,179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124,190,156,230,243,199, 7, 68, 4,140,155,200, 75, -188, 22, 2,171,196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182,182,182,116, 78, 78, 78,114, 65, 65, 65, 99, 19, - 19, 19,228,230,230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, 40,243,192, 98,177,144,149,162,128, 74,165,202, -208,213,154, 5,192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, 78,115, 62, 52, 30, 50,100,200, 97,173,168, 67, -109,103,120, 77,122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212,202,196, 10,151,203,213,219, 81,186,170, 40,198, -218,112, 86,101,209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, 12, 6, 40,138,130, 14, 65, 21,127,171,104,209, -142, 14,172,141,200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, 11, 54,155,141,115,231,206, 97,220,184,113, 80, -169, 84, 48, 54, 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232,163, 95, 21, 10,197,145,245,235,215, 47,217,179, -103,143, 17, 77,211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36,180, 52, 25,223, 41, 58,198,196, 68, 89,109,212, - 97,101,203, 84,225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21,218,149, 75,253, 96, 72,239, 96,128, 14,247,147, - 71,255,226,238,105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242,198,254,237,129,230, 71, 31, 17, 72,124,251, 22, - 55,127,219, 81, 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, 58,191, 61, 17, 68, 43, 39,123, 75,228,137, 40, - 20,230,188, 3,104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, 72, 36, 38, 38,226,234,201, 29, 66,165, 82,242, -197,135,136,172,145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, 54,239,226,112,126,236, 80,172, 62,254, 13,204, -236, 24,104,215,215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212,218, 34,171, 85,253,250,245,135,222,191,127,223, -214,219,219,155, 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, 78,109,145,213,106,209,228,177, 17, 27,247, 31, -230,145,108, 14,130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, 82, 72,165,210,107,193,193,193, 82,146, 36,145, -151,151,135,156,156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245,235,178,194,194,194,251,186,118,240,222,189,123, -245,211,210,210, 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, 4,130,174, 0, 30,105,166,167,166,166,214,123, -240,224, 1,191, 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, 7, 40,149, 74,156, 56,113, 2, 0,242,170,227, - 96,179, 57, 2,146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15,167, 26,169, 95,126,249,165, 36, 50, 50,178, 82, -139, 86,109, 56,105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, 48, -101,202, 20,208, 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133,208,123,126, 90,186,250, 64,105,134, 6,105,154, -134, 70,112, 85,152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177,180, 59,244,222, 10,223,251,244,120, 40,148, 9, -173,216,216, 88, 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, 7, 17, 19, 19, 3, 14,135, 3,205,190,208, 85, -191,249,248,248,108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24,209,209,209,232,221,187,183,228,238,221,187, 9, - 98,177,120, 21,116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170,244, 83,213, 50, 21,145,144,144,224,170, 82,169, - 26,211, 52,237, 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, 52,237,171, 82,169, 26, 37, 36, 36,184, 26,228, -132, 1,159, 41,110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118,172, 52, 63,242,144, 68, 74,114, 2, 30, 95,220, - 45, 84, 81,138, 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26,206, 92,152,147, 2,208,140,218, 8,173,114,156, -160,200,224,131, 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149,210,238,120, 27, 26, 85, 27,206,145,108,246, 50, - 22,131, 88,218,171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196,102,231, 37,228, 75, 39,222, 37,228, 72,126, 35, - 61,208,119,146,181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18,201,105, 57,189, 94,112,183,172, 44, 69,249,126, -190, 15, 71, 51, 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246,238,221,155, 43, 22,139, 47, 2,136,208,105,219, -223,135,115, 91,119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224,171,206, 68, 60, 31,140,170, 19, 96,150,227,228, -114,185,199,142, 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138,139,139,203,156,171,237,236,236, 16, 27, 27, 75, - 37, 38, 38,166,115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135,209,226, 81, 33,186, 80,171,105, 99,129, 64,208, -150,207,231,223, 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196,163,232,232,232,226, 62,125,250,192,200,200, 8, - 34,145, 8,117,235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, 86, 37,226,181, 92, 63, 37, 18,113, 93, 0,164, -184,164,164,197,152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173,173,245,226, 4,128,188,188,188,166,127,252,241, -199,156,232,232,232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82,169,200,218,114,230,231,231, 91, 68, 69, 69,109, -234,220,185,243,140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, 25, 25,161,176,176, 16,171, 86,173,194,157, 59, -119,148, 52, 77,239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85,165,100,168,162,253,223,222,207, 10, 62, 93, 80, -167,112, 88, 88, 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246,238,221,251, 94, 30, 45, 77,250,135, 42,184, 43, -219,118,250,230,205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, 68, 34,103, 19, 19,147,116,133, 66,241,139, 88, - 44, 94,139, 82,127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128,101,181,156, 21,210, 59,148, 75,225, 80, 97,153, -114,169, 31, 42, 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, 44,125, 15,173, 38,179, 88, 98,133,119,120, 2, -241, 33, 34,235,125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204,151, 72, 58,145,245, 65,155,165,238,231,237, 4, - 2, 73,137,111,240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75,161,108,194,194, 26, 79,231,140, 67,122,129, 8, -151,222,230,159,164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50,118,251, 14,178, 24,106, 91,135,133, 45,243,127, - 1,111,145, 13,187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239,225,235,235,203, 29, 50,100, 72,101, 14,242,250, - 34,245,209,171, 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44,226,121,197, 40,196,106,225,225,225,161,186,119, -239,222,188, 41, 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5,151,203,197,155, 55,111, 16, 30, 30, 46,123,251, -246,109,122, 73, 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213,235, 32,212,195,133,109,160,142, 46,212, 52, 82, - 39, 45,109, 3,192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76,154,166, 51, 66, 66, 66, 58,156, 61,123,182,195, -220,185,115,217,125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, 11, 87, 93, 75,229, 80, 0,162,148, 74,229,243, -160,160,160, 14, 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37,128, 77,153,153,153, 63,133,132,132, 44,191,118, -237,218,248, 49, 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, 80, 40,156, 99,107,107,187,244,226,197,139,191, - 92,185,114,229,235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, 74,165, 82,157,101,177, 88, 99,114,114,114, 68, -159,226,174,163, 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, 74,160,217, 14, 63, 63,191, 50, 43,163,198, 10, -167,221,134, 32, 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, 89,225, 25,248, 43,115,188,174,140,205, 4, 82, -203, 24, 72, 17, 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117,197,138, 21, 91, 43,166,112,208,110, 84, 49,245, -195,202,149, 43, 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, 75,182,175, 91,176, 66,169,144, 9,105,200,253, -241,230,116,244,135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46,252,224,222,255, 77,253, 36, 44,172, 81,180,106, - 26,126,123,145, 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, 55, 36,249, 39,172,156, 88,103,230,124, 97, 67, - 92,200, 27,173,247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146,146,146,138, 14,242,181,197,130,254, 51, 23, 49, -218, 53,114,157,249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197,197, 5, 92,185,114,101,196,237,219,183,123,136, - 68, 34, 87,130, 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, 0,192,138, 21, 43,232,149, 43, 87, 18,113,113, -113, 52,131,193,248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, 48, 80,151, 7,226,237,226,226,226,200, 85,171, - 86,117, 89,181,106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217,108, 78, 58, 65, 16,206,108, 14, 87,116,239,222, -189,107, 31,200, 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19,147,182, 49, 49, 49,127,126, 8,167, 90, 68, 13, -182,182,182,118, 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, 34, 20, 10, 63,105, 81,105,117,129,232,149,122, -212, 58,212,137,247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, 69,225, 85,209,122,165,249,175, 78,229,162,203, - 62,213, 39,138,178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, 6, 32,174,233, 58, 39, 73,242, 44,128,151, 36, - 73,190,174, 24,232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, 59, 91, 32, 9, 4,214,214,147,246, 31, 52, 87, -126,156,126, 6,176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, 65,199,142, 88, 75, 19,152,171,222,153,235, 50, -238, 98, 77, 45,182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78,127,127,127, 70, 21, 15,243,114, 69,165,171, 66, -104,104, 89, 22,255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128,242, 78,255,149, 77,167,245,220,118, 6, 0,213, - 71,222,159,159, 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, 87,114, 90, 54,117, 1,129, 73,208,206, 29, 84, -173, 69, 75, 75,160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33,193,181, 97,195,134,201, 0, 10, 42,244,163,178, -121,180,225, 24,253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3, -103,109,133,214,103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, 32,170, 81,165,250,152, 4,107,163,108,175, 25, - 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249,207,117,232,240, 31,235,183,193,172,106,224, 52, -112, 26, 56, 13,156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, 0, 3, 12, 48,192,128,207, 6, 61,220,193,103, -170, 64,254,241, 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, 15,224, 43,173,255, 23,160,142,140, 55, 8,173, -207, 23,141, 0, 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, 80,132,210, 58,129,175,245, 89, 25, 73,146,235, -187,116,233, 50,253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, 51, -215, 43,149,202, 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, 36,100,102,102,174, 81, 42,149, 55, 63,128,211, -204,193,193,161, 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, 91,201, 63, 48,150, 93, 40, 82,178, 0,192,220, -132,169, 8, 13,108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201,229,208,219, 13,107,105, 37,190, 87, 1, 68,175, -250,216,113, 57, 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, 75, 57,122,185, 97,211,229, 55,168, 54,210, 94, - 23, 78, 13,246, 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, 21,150, 13, 29, 86, 43,180,134,185,131,175, 98, -130, 25, 26, 11, 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192,206,125, 46,156,255, 54, 44,167,105, 58,160,220, -201, 90, 73, 30,162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130,145,145,145, 18,192, 88, 61,214,101, 63,108,216, -176, 69, 7, 14, 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, 86, 86,254,150,150,150,193,251,247,239,183,107, -223,190, 3,193,225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102,101,101, 77,212,119,227,173,173,173, 71, 90, 90, - 90,110,217,187,119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153,211,226,221,187,119,199, 51, 51, 51,103,232,203, -105, 99, 99,227,110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67,116,116,180,233,212,169, 83, 29,211,210,210, 98, - 51, 51, 51,111,233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93,208,126, 75,196,249,103, 55,206,247,175,105,154, -127, 96,236,239, 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252,188,140, 4,128, 94,227, 87,207, 26,233,132,205, - 71,210,171,174, 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, 0,114, 14,147, 57,171,157,143,143,237,183,119, -239, 38,200,129, 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89,106, 49, 33,250, 52,196,241,171,137,140,240, 47, -190,248,162,225,132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, 93,184,112, 33, 65,165, 82, 69, 2,120, 1,221, -179, 90,179, 0,120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, 37, 58,125, 47,225,233,245,235,215,207, 49,153, - 76,141, 69,171,157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, 65,146, 36, 11, 64,125,188, 95, 82,163, 42, 56, - 27, 27, 27,239,142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, 3,135, 66,172,231,205,158, 49,248,230,205,155, -225, 69, 69, 69,191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, 12,138,162, 80, 84, 84, 4, 71, 71, 71,236,223, -191,223,114,222,188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11,139,110,207,159, 63, 55,210, 20,148,150,201,100, -112,118,118,198,209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222,234, 74, 88, 40, 82,178,148,114,105,208,225, 93, -129, 46, 0, 48,102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, 66,203,128,127, 26,173,109,109,109, 67,115,114, -114,110, 1,152,136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, 6, 35, 67, 36, 18, 61, 5,240,170,182,132, 54, -110,126,253,193, 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251,234,230,249, 15,226,228, 24,141, 7,232, 22, 36, - 64, 17, 36,249,148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216,205, 81,247,194,152, 31,131,111,120, 3,240, 73, - 10,228,209, 36,221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220,216,177,141,110,221,185, 67,116,213,167, 90,193, -231,137, 42, 29,223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, 6, 49, 98,246,250,128,131,187, 54,145, 61,251, - 15, 41, 27, 62,241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108,116,244,232, 81,101, 68, 68,196, 83, 0, 39,170, - 90, 89,111, 55,136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, 46, 23, 31,194, 9, 0, 61, 27,146,111, 89,214, - 13,158,142,152,185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106,109,229,226,226,210, 73,169, 84,242, 0,128,201, -100, 74, 82, 82, 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, 21, 3, 6, 12, 88,250,237,183,223,162,110,221, -186,152, 53,107, 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123,123,251,229,187,119,239,182,102,114, 76,208,106, - 97, 34, 4, 5, 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126,188, 70, 31,161,101,111,111,191,106,255,254,253, -214,198,198,198,160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12,243,216,216,216,141,250, 8, 45, 7, 7,135, 78, - 59,119,238, 52,226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, 37,180, 76, 38,147,207,156, 57,147,251,226,197, - 11, 63,129, 64,240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, 54,175, 95,191,126,162, 84, 42, 79, 3, 56,253, - 17, 94,166,186, 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, 56,156,190,119,239,158,203,238,221,187,199,110, -222,188,249, 34,128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38,154, -159, 60,121,210, 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96,154, 31,239,208,177, 83,231,161,131,191, 49,115, -176,177,128, 88,166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, 11,135,231,190,186, 87,172, 47,103,183,110,221, - 59,247,232,222,221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239,203,100, 26,221,166, 8,197,168,172,231, 87, 75, - 62,229,177,153, 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, 77,131,164,177,163,162, 53,107, 22,192,220, 81, - 90,246, 75, 47, 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, 65,130,232, 93,195, 48,165, 6,189, 0,174,165, -181,181,207,212,201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128,125,155, 68,189,179, 41,181, 23,219,255, 82,107, - 86,165, 67,135, 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134,245,235,215, 51, 1,180,174, 48,187,124,145, 85, -128, 27,182,103, 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, 64, 83,245, 59,214,165,191,124,244,235,146,177, -215,142,110,241, 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, 82,221, 56, 63, 28,255, 40,167,163,163, 99, 19, - 95, 95,223,214,215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110,217,161, 67,135,214,142,142,142, 77,202,118, 21, - 77,235,211,207,213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86,232,214,173, 27, 46, 94,188,200,220,188,121,243, - 58, 0, 75,107,234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88,223, 4,209,155, 60, 80, 36,161,145, 39, 44,132, - 88, 44,129,177,177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202,196, 85, 81, 81,233,167,184, 88, 4,153, 76, 14, - 46,151,107, 6,128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, 55,188,130,130, 2, 66, 40, 20, 66, 38,147,129, -197, 98,177, 81,179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, 84, -233, 50,205,220,132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36,121, 24,128,227, 7,114,182, 5,176,206,200,200, -232,154,135,135, 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241,245,117,235,214,157,122,242,228,201,208, 63,255, -252,179,254,179,103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189,175,205,250,245,235, 31,124,240,224, 65,219,142, - 29, 59, 30, 0,192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, 86,173, 90,185,240,120, 60,244,232,209, 3, 0, -252, 62,132,147,205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215,175, 95,199,195,135, 15,161, 84, 42, 49,109,218, - 52,238,152, 49, 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, 51,127,214, 36,179,167,239,228, 56,116,237, 29, -126,143, 16, 32,171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, 95,206, 69, 11, 23,246,153, 60, 62,192, 44, 70, - 64,225,220,253, 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, 21, 19,172, 95, 62,245, 49,218, 15,180,159, 61, -123,182,221,130, 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96,105,109, 98,242, 77,124,215,174,147,140, 74,235, -197, 86,203, 89,142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, 97, 69,198,149,159,151,145, 52,129, 89, 35,157, -202,221, 7, 42,237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23,164, 34, 81, 57,159,217,238, 46,232,115,205,152, -153,218,192,195, 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44,140,238,215,175, 31, 1, 0,161,177,200, 31,220, - 20, 27,135,125,187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108,108, 80, 82, 82, 2,169, 84, 10, 54,155, 13,137, - 68,130,119,239,222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, 53,133,169,169,233, 71,225, 92, 60,182, 7,247, - 77, 74, 54,247,242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205,122,110,110,231, 36,121,246,236, 25,238,221,187, -135,252,252,124,248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, 54,116,190,124,237,182, 85,177,132, 50, 79,202, - 84,176, 40,138,130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, 22,128,135,106,113, 91, 83, 77, 69, 30,128, 38, -254,254,254,139,166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220,142, 29, 59,218,236,223,191,223,104,222,188,121, -184,117,235,214,138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155,205,134, 82, 45, 27,228, 42,170, 76,223, 23, 22, - 22,130, 22,231,131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, 76,100,189,203, 44,196,187,172, 18, 20, 22,203, - 32, 22, 43, 33, 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, 60, - 30,148, 74, 37,138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, 83, 0,230, 0,242,116, 33, 84, 59,185,255,174, - 30, 6,196,163, 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41,195,198,185,197,157,150, 67,127,241, 40,155,246, -105,253,179,184,118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, 24, 50,100,136,143, 64, 32,104, 9,253,107, 50, - 26,147, 36,185,113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66,169, 84, 58, 39, 36, 36,116, 59,121,242,228,194, -131, 7, 15,238, 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62,164, -218,182,109, 75,142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246,173,165,101,203,181, 67,135, 14, 46, 12, 6, 3, - 29, 59,118,100,223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249,249,249,181,188,118,237, 90, 84, 70, 70,134,159, - 30,219, 11, 0, 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165,125, 15, 32, 84,199, 69,218,183,110,221, 26,201, -201,201,104,210,164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136,213,163,191,238,221,187,119,119,241,243,243, 35, - 66, 67, 67,203,252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200,200,200, 58,143, 30, 61,114,135, 14,195,136, 54, -110,126,253, 59,118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, 18, 76,130, 2,165,224,130,203,102,192,221,179, - 13, 35,254,197, 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211,183,105, 19,119,114,251,239,111, 80,144, 22,171, - 74,139,187,157, 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172,244,196, 23,221, 36,146, 46, 61,242, 19,110, 95, -251, 20, 23,228, 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201,208,243,207, 75, 20,184, 15, 0,183, 0,162, 47, -208,220,187, 93,187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, 69, 69,161,138,161,223,149, 0,195,214,209,177, -199,212,169, 83, 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110,238,236,209, 15,162,120,189,134, 41,251, 3, 28, - 7, 71,199,166, 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21,235, 28, 3, 59,155,185, 57,142, 91, 48,113, 0, -225,194,183,197,212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159,177,200,154, 92,169,208,170,136,223, 98,177,220, -140,141,250, 39, 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231,195,194,194, 2, 49, 49, 49,184,126,253, 58, 94, -190,124, 9,138,162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202,202,234,163,113,186,185,216,225, 91, 23, 59,118, -102,110, 33,251,218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, 38,147,225, 63,130,178,232, 66, 23, 23,151, 78, -135, 14, 29, 98, 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, 20, 25,212,248,187,213,171, 87,139,198,143, 31, -239,145,146,146,178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246,108, 0,192,152, 49, 99, 10,239,223,191,239, 14, - 32,235,250,245,235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, 74,101, 12,147,201,164,195,194,194, 86, 1, 8, -124,239,137, 72,146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, 75,111,112,198, 20, 82,147,222, 32,238,217, 67, - 56, 58, 58, 90,240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187,134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, 92, - 92,140,212,236, 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, 51, 34,101, 15,179,178,178,228, 50,153,108,153, - 80, 40, 60, 84, 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72,232,188,188, 60, 66, 36, 18,161,168,168,136,184, -112,225,194,215, 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156,150,150, 54, 73,151,161, 73,181, 96, 82, 49,153, -204,205,147, 39, 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120,122,122, 94,110,222,188,153, 83,200, 38,239, 29, - 0,126,252, 23,156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202,149, 43,177,124,249,242, 70, 83,167, 78,157, 12, - 96,171, 30, 60, 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, 17,199,142, 29,195,219,183,111,149,245,235,215, -103,250,248,248, 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79,111,165,163,248, 24,191, 98,197,138,129,157, 59, -119,198,216,177, 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, 86,232,145, 35, 71,140,214,173, 91,215, 99,222, -188,121, 83, 1, 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, 20,212,251, 3,133, 22,199,198,198,230,194,225, -195,135, 91, 54,110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, 1,232,116, 67,170, 83,167,206,198,179,103,207, - 54,172,106,100,161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66,235,232,209,163,248,254,251,239,209,162, 69,139, -230,237,219,183,223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212,114,141,224,241,120,205,135, 15, 31,206,121,240, -224, 1, 0,192,211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, 10, 7, 7, 7, 12, 26, 52,136,151,148,148,212, - 60, 39, 39,167, 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, 18,109, 26,154,195,199,195, 30,241,169,133,136, -140, 77,133, 74,198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80,179,191, 22,215,120,220,160,129, 95,153,158,139, - 72, 71, 65,122, 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, 71, 27,163,158,238,173,219, 48,252,122, 14,176, - 58,125, 44, 99, 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, 1,190, 52,203,202,249,161,153, 66,177, 83, 51, -175, 55,208,107,225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240,105, 84, 84,252,100,128,154, 82, 5,223, 78,192, -117,232,192,129, 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116,159, 51,127,126,167, 25, 51,102, 24,237, 89, 53, -253,113,239, 9,107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, 64,152,153,155, 99,246,236,217, 32,228,242,203, -101, 2,138,137, 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215,201,217,207,110, 8,240,230,115, 85, 85, 21, 80, -165,143, 86,181, 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, 70, 69,185,185,185,120,254,252, 57,242,243,243, - 17, 28, 28,140,184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56,216,152, 99, 84,223,118, 76,169, 68,196,203,206, -206, 46, 55,124,244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97,137,194, 52,227,104, 23, 34,227,104, 23, 66, 88, -162, 48,149,201,100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57,255,204,153, 51,172,181,107,215,194,203,203, 11, -114,185, 28,247,239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94,191,126, 61, 78,159, 62, 77,244,232,209, 99, 97, -101,231,147, 64, 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168,108,252, 60,240, 45, 70,216,156, 66, 94,230, 59, -236,219,183, 15, 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125,181,163, 78,157, 58, 97,213,117, 50, 61, 61,125, -237,140, 25, 51, 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, 83, 60,219,210, 20, 18,202, 8,187,118,238, 38, -159, 61,123,102,251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, 75, 75,123,240,237,183,223, 74, 10, 11, 11, 33, -147,201,228, 42,149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226,197,139,172,171, 87,175, 49,111,222,188,197,190, -126,253,186, 69,183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, 9, 9, 25,183,107,215, 46, 7, 31, 31,159,102, - 21,134,162,248, 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0,148, 79, 10, 91, 91,219,153, 3, 7, 14,196,174, - 93,187,112,254,252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161,251,176, 23, 0,252,184,117,235, 86, 15, 15, 15, - 15,140, 25, 51, 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, 47,191,212,155, 58,117,234,236,128,128, 0, 73, -131, 6, 13, 16, 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24,129, 77,155, 54,225,230,205,155,131, 81,250, 64, -149, 1,184,116,247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, 54,150,167,166, 77,155, 46,235,211,167, 15,194, -195,195,209,170, 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244,196,161, 67,135,124,235,213,171,135, 53,107,214, -192,205,205, 13, 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76,141,141,141,177,112,225, 66,122,240,224,193,121, - 53,125,230,205,155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58,122,121,121,225,254,253,251,184,122,245, 42,150, - 46, 93,138,185,115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219,219,217,217,161,176,176,180, 46,188,151,151, 23, -158, 60,121,130,236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, 49, 40,138,178,215,141,146,246,178,181,182, 64, - 86,190, 20, 76, 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200,200,202, 70, 29, 27, 30, 92, 92,234,130,166, 41, - 47,157, 20, 48,131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, 74, 65,226,221,148,130,196,187, 41,114,169,100, -202,227, 59, 87,115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144,186,112, 49, 49, 98,142,185,250,243, 50, 34,108, -255, 98, 66,154,251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191,251,238, 59, 94,102,102, 38, 21, 48,108, 88,222, -218,192,192,107,127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, 34,202, 0, 82, 1,192, 1,112, 25,240,205, 55, - 93,150, 44, 90,100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161,190, 46,254, 89, 42,192, 91,195,123,249,242,101, - 90, 12, 60, 6, 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199,236,181, 63, 99,207,201, 91,151, 45, 20,244, 23, -255,161, 71,241,228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, 1,243,119,112, 86,134,255,162,208,210, 64,161, - 40, 29, 37,145, 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, 31,158, 53,107, 22,182,108,217,130, 87,175, 94, -129,205,102,195,203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136,143,143,199,230,205,155, 49,126,252,120,250,222, -189,123, 7, 81,121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, 10,113, 62,178,210,222, 64, 42, 42,192,154,245, - 27, 81,162, 96, 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54,109,218,135,193, 96,244,171,166,159,247, 51, 51, - 51,247, 79,155, 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213,216,216, 24,219,182,109,179,112,119,119, 31,200, -100, 50,187, 85,195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, 16,231,206,157,235, 95,175, 94, 61,171, 13, 63, -110, 33, 68,114, 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71,142, - 28, 25, 61,108,216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144,248,109,219,182,157, 60,113,226, 68,209,252,249, -243,173,131,130,130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83,167,158, 1,216,122,230,204,153, 71, 82,169, 20, -195,135, 15,175,175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, 57,242,107,215,174,181, 6,176, 5,165, 67,185, - 52,128,100, 0, 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216,177,227, 1,248,214,192,219,113,196,136, 17, 30, - 20, 69,225,248,241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134,145, 35, 71, 54, 0,160,207,141,156,205,229,114, - 79,173, 94,189,218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208,200,194,194,226,162,214, 53,160, 51,184, 92,238, -190,159,126,250,105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211,167,203, 90,183,110,141, 93,187,118, 13,228,112, - 56,122,149,232, 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120,190,177,169,169,105,132,167,167,103,161,151,151, - 87, 27,165, 82,137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, 11, - 45, 6,131, 1,185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6,108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35,144, - 36,169, 83, 52, 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, 87, 80,224,177, 25, 96, 49, 9,128,166, 96,105, -194, 2,143,195, 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, 84,170,140,202, 30,142, 76,149,145,145, 17,135, -176, 53,231,130,199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135,110,218,188,153, 83, 88, 92,140,193,131, 7,231, - 37, 61,122, 20, 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, 84, 20,138,242,243, 95, 3,165,206,241, 28, 39, -167, 97,219,182,109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, 17,118, 60,185, 84,136,213,120,220,217,108, 71, - 13,175, 48, 63, 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72,176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, 95, -157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149,137,196, - 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245,198,223,177, 0, 0,107, 83,166, 80,174, 82, - 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136,213,136, - 17, 35, 18, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170,204,227, -146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, 92, 22, -137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94,189,218, - 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62,221, 42, - 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, 8, -137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, 92,233, -205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17, 35, 71,142,124, 14,192,107,254,252,249,214, - 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, 64, 97, - 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47,135, 15, 31,142, 75,151, 46, -225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,136, 17, 35,240,243,207, 63,247, 1, 80,157,131, -108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95,191,190, - 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254,249, 99, -199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,193,207,207, 15,243,230, -205, 83, 94,190,124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166, 9,179,103,207,206,166, - 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118,163, 70, -141, 86,203,100,178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98,162,165, -133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38,180,172, -229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, 19,103, - 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100,135,152, - 55,232, 52,153,201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, 33,165, -171, 27,239, 73,175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, 32,128, -202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96,129,141, -189,163, 35,198, 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, 0, 95, -174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54,174, 86, -172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,194,132, 9, -114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, 41, 41, - 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234,249,243, -231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156,220,208, -210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70,134, 59, -101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103,103,131, - 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16,189,201, - 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 54,108,152, 25, 0, -168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, 73,147, - 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153,160,203, - 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107,104, 91, -223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,176, 87,175, 94,207,110,220, -184,209,182, 99,199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, 73,183,145, 35, 71,138,220,221,221,113,235,214, - 45,143,145, 35, 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175,191,198,170, 85,171,232,147, 39, 79, 6, 0,184, -162,158,119,249,248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82,169, 32, - 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, 46, -147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194,194, 2, -174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21,233, -148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211,186,232, -218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220,196, 19, - 35, 39,204,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, 88, -120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232,251,229, -151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,175,190,250, - 10,217, 57, 57, 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, 6, 65,161, 80, 8, 2, 40, 4, 0,130,137,190, -237,188, 26, 33, 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35,124,237,124,180, 0,228,204,155, 55, 15, 92, 46, - 23,124, 62,191, 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227,199, 1, 32,167,218, 55, 60, 64, 58, 96,218,122, - 74,170,160, 75, 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94,229, 65, 49,181,225,252, 12,208, 78,157, 19,171, - 29,128,252,164,164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133,185, 41,130,148,183,207, 51,150, 44,156, 39, 76, - 77, 77, 77, 65,105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, 25, -137,177, 99,199,210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, 33,114, 21, 85, 54,228, 87, 88, 88,136,244,244, -116,200,100, 50,157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211,213, 4, 30, 46,198, 32,148,197,101, 34, 43, 59, - 59, 91,243,230, 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11,145,145,145, 1,149, 74, 85,213,131,140, 74, 75, - 75,187,124,226,196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, 42,249,236, 97, 50,153,119, 53,109, 55,109,218, -148,135,247,135,196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207,198,158, 61,123, 32, 16, 8, 22,225,175, 92, 60, - 84, 78, 78,206,130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, 21, 2, 24, 89, 21,161,157,157,157, 51,147,201, - 68, 84, 84, 84, 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124,183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, 90, - 90, 26,160,126, 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, 54,222,202,202,106,193,129, 3, 7,152, 47, 94, -188, 64,247,238,221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, 91,183,110, 47,175, 94,189,138,141, 27, 55, 18, - 45, 90,180,152, 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247,238,157, 6,224, 84,133, 38,199,118,237,218, 53, -107,239,222,189,152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126,126,126,145,175, 94,189,210,169,226,129,142,237, -187,249,248,248, 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234,212, 60,188,255,192,254,253,244,233,211, 24, 53, -106, 20, 90,180,104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83,108, 54, 27,174,174,174,232,215,175, 31, 2, 2, - 2,208,188,121,115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, 41,151, 82,238,171,155,231, 19, 19,255,199,222, -121,135, 71, 81,181, 81,252,204,246,190,155,222, 73, 8, 45,149, 22, 32,244, 18, 8, 65, 32,132, 34,138, 8,162,162,136, 20, 81, - 64,177, 0, 54, 16,164, 11, 34, 69, 44,124, 8, 8,138,180,208, 4, 20,164,147, 0, 33,129, 36, 64,122,221,244,178,217,190, 51, -247,251, 35, 4, 67, 76,217, 77,176,160,243,123,158,121, 54,185,179,115,246, 78,187,123,246,189,247,190,147,124,254,218,229,179, -102, 30,151, 3,111,119, 7,140, 13,239,138,151,198,247, 69,183, 0, 79,100, 20,232,112,250,244,207,230,180,180,148,139,214,204, - 56,172,209, 76,188, 21,119, 33,225,218, 57, 11,159, 71, 33,192,191, 3, 22,190,251,150,253,210,247, 23,216,117,104,235,141,184, -212,114,252,124,226,168, 57, 55, 59,235,151,191,107,198,225, 25, 64, 32, 23, 81, 50, 46,135, 3,154, 35,170,226,222,159, 72,211, - 49, 40,200,207,213,205, 13,209,209,209,224,216, 48, 35,244, 12, 32,144,203,171,123,193, 53, 26, 13,106,244,218,249,251,251,123, -251,248,224, 72,116, 52,184, 12,115,123,160,141, 9, 70,147,170,187,161, 31,232, 82,128,126, 70, 43, 40,218,181,114,241,183, 87, -201,112, 57,238, 46, 12,102,114,229,187, 82,252,173,249,200,254, 68,166,161,153, 93,135, 43, 55,111,222, 28,186,109,219,182,161, -115,231,206,149, 79,153, 50, 5, 98,177, 24, 90,173, 22, 94, 94, 94,160,105, 26,199,142, 29, 67, 76, 76,140,134, 97,152,159,241, -199,180, 1,225,168, 53, 75,227,120, 10, 36,213,126, 75, 27,122,224,169,167, 30,137, 38, 0,200,239, 50,202,226,214,198, 29,235, -247,158, 27,183,243,248, 53,234,245,137, 3, 57,221,252, 91, 1, 0, 92, 93, 93,161, 84, 42,109,214,124, 4,252,233,154,181,187, -117,243,243,243,147,242,243,243, 11, 94,126,249,229,128,154,129,239, 34,145, 72,127, 63,146, 85, 90,223, 54, 86,212,211, 4, 96, -198,182,109,219, 14,150,151,151, 31,127,243,205, 55,177,116,233, 82, 28, 58,116,168, 63,128,243,205,220,119,186,180,180,180,236, -202,149, 43,174,237, 3, 67,208,198,133,143, 1,139,238,128, 16, 2, 71, 41, 65,101, 89, 9,174, 95,191,134,202,202,202,203,182, -212,211,100, 50,149, 21, 20, 20, 56,185,184,184,160,164,164, 4, 69, 69, 69, 15, 76, 86,105,105, 41, 74, 74, 74, 8, 69,253, 33, -103, 75, 99,154, 85, 5, 5, 5,218,196,196, 68,161,107,171,246,104,235, 34, 64,207,119,147, 0, 66,224,237,192, 65,101, 69, 25, - 46, 94,188,136,242,242,242, 95, 27,210,100, 24,102,222,164, 73,147,184, 0,158,123,243,205, 55, 29, 0,116,121,235,173,183,126, - 70,157,153,133, 60, 30,111,237,142, 29, 59, 58,214,116, 49, 46, 88,176, 96, 13,128,109,127,213,181,228,232,232, 56, 47, 58, 58, - 90, 97, 50,153,176,126,253,122,172, 89,179,230, 43,252, 49, 81,101,244,231,159,127,190,145,195,225,204,156, 53,107, 22, 94,121, -229, 21,105,247,238,221,231,230,229,229,125, 87,159,102, 78, 78,206,194,110,221,186, 45, 46, 40, 40,248,196, 42,179,124,231,206, -180,110,221,186, 45, 44, 40, 40, 88,209,216, 57,146,201,100, 50,154,166,145,150,150, 86, 10, 52, 56,190, 67,159,150,150,150, 67, -211,180,151, 84, 42,117,104,234,250, 44, 45, 45,253,164,123,247,238, 31,168,213,234, 19, 0,150,212, 99,200,111,228,229,229, 5, -207,153, 51,103,246,242,229,203,199,229,231,231,239,110, 74, 51, 35, 35,227,147,176,176,176, 69,201,201,201,223,162,225, 46,224, -207, 63,252,240, 67,211,142, 29, 59, 94, 77, 75, 75, 91,214,132,230,225,162,162,162,195, 54,156,223,134,222,255, 64,147,203,229, -190,181,124,249,114,206,230,205,155, 65, 8, 89, 69,211,116, 67,245,140,219,191,127,255,246,190,125,251, 78,217,187,119,175, 56, - 56, 56,248, 21,131,193,176,171,169,235, 83,171,213,238,219,187,119,239,184,184,184, 56,175, 41, 83,166,136,253,252,252, 96, 50, -153,144,151,151,135,205,155, 55,235,227,227,227,179,203,202,202,246,217,210,134, 88,140, 21, 19, 47,156, 62,176, 43,253, 78,124, -239, 65, 79,140,182, 55,154,188, 32, 42,230,162,172, 56, 31,199, 14,239, 43, 77, 75, 75,185,168,213,150, 77,180, 69,211,100, 40, -127,230,226, 47, 7,119,103,167, 37,246, 26, 16, 54,194, 94,111,244,129, 72,192, 65,177, 58, 7,199,162, 15,148,164,165,165,254, -166, 55, 27,158,255,187,218,121,174, 47,150,112,243, 99, 94,158, 62,170, 43, 36,246, 94,215,249,192,250,190,128,196,201,213, 85, -112,255,222,129,188,122,204,163, 85,154,106, 64,216,254,126, 47,149, 86,171, 5, 31, 48,190, 0,240,157,157,157, 37, 0,144,156, -156, 12,105,117,175,134, 77,245,212, 0, 50,105, 45, 93, 14,160, 45,230,193,179,157, 82, 70, 1, 64,118,126, 49,140,230, 70,191, - 55, 30,119,182,214, 50, 92, 91,155, 35, 32, 0, 16, 46,151,203,151, 46, 94,188,120,213,229,203,151, 87, 69, 70, 70,174, 18,137, - 68, 75,239, 31,108, 65, 35, 39,226, 47,211,236,225, 1,135,176,182,212,217,136,118, 20, 51,189,191, 61,253,124, 79,153,113,240, -224,193, 27, 91, 88,207,150,220, 44,127,166,230, 1,179,217, 76, 80,221,109,119, 0, 13,119, 9,190, 83,107,125,126,102,102, 38, -185,255,183, 45,245,116,154, 48, 97, 2, 83, 89, 89, 73,158,126,250,105,130,166, 31,225,211,168,166, 72, 36, 10, 27, 48, 96,128, - 89, 93, 88, 66,146, 82,115,200,165,216, 91,228,248,233, 11,100,247,190,104,178, 97,227, 22,210,185,115,103, 35, 0, 31, 91, 52, -121, 60,222,224,176,176,176, 98,181, 90, 77, 18, 19, 19,201,217,179,103,201, 15, 63,252, 64,182,108,217, 66, 54,109,218, 68, 90, -181,106,165, 6,224,106,139,166, 68, 34, 25, 61,124,248,112,115, 89,133,150,164,229, 20,147,155,137,105,228,252,149,155,228,216, -233,243,228,187, 93,123, 73, 80, 80,144,222, 10, 77, 46,151,203,221,176,123,247,238, 10, 66, 8, 25, 61,122,116, 54, 30, 78,164, -218,102,222,188,121, 5,132, 16,178, 98,197,138, 98,212, 63, 16,254,207,190,150,158,240,244,244, 76, 18, 8, 4,209, 0,158,107, - 98,187,103,120, 60,222, 33, 55, 55,183,171, 0,198,254, 13,247, 81,164,139,139,203, 37, 0, 77, 61,225,160,230,125, 99,254, 37, -247,251,159,161, 57,152,199,227,157, 5, 26,127,136,112,173,246,250, 99, 46,151,123, 4,192, 16, 27,235,217,193,201,201,233,105, -123,123,251,215,237,237,237, 95,119,113,113,121, 90, 40, 20,118,104,201,190, 59,118, 8, 31,229, 29, 18,181,191, 85,151,145, 25, -222, 93, 35, 51,124,187,141,222,239,216, 33,124, 84, 75, 53,125,186,141, 62,224,221, 53, 50,211,187,235,168,244, 54, 61, 70,239, -119,242, 15, 31,254,119,158,163,231, 60,225, 49,180, 13, 44,228,236, 34, 66,206, 46, 34,225,109,192,244,182, 67, 80, 40,160, 24, - 22, 30,190,154,208,244,234,113, 99,198,172,110, 15, 56, 18,128, 91,119,169, 79, 51, 4, 80, 62,216,118,244,232,213,109, 1,167, -161,128,116, 96,255,254,171, 8, 77,175,158,244,204, 51,171,189, 1,183,250,244, 26,210, 36, 0,215, 19,240,168,173,235, 4,180, - 27,239,139,224,119, 70,249, 18,114,118, 17,249,240, 41, 63,210,205, 21,207, 53,161,217, 80,164,232,177,142,104,217,138,236,126, -227,186,236,254,171,236, 17, 92,132,143, 92,179,151, 59,252,194,219, 81,137, 35,252,121, 37,168,158,146, 44,251, 23, 54,146,223, - 26,141, 70,162,215,235,137, 86,171, 37, 26,141,166,174,129,122, 96,200,114,115,115, 73,118,118, 54,201,204,204, 36,233,233,233, - 4,191,143,189,177,186,158, 74,165,114,219, 83, 79, 61, 69,243,249,252, 13,143, 98,223, 29, 28, 28,150,245,236,217,211,244,217, -103,159,145,253,251,247,147, 47,191,252,146,204,154, 53,139,116,236,216,209, 96,103,103, 55,177, 57,154,110,110,110, 11,253,253, -253,139,191,250,234, 43,242,221,119,223,145,117,235,214,145,247,222,123,143,246,242,242,202, 87, 40, 20,195,154,163,233,226,226, -178,181, 95,191,126,166,173, 91,183,146,159,127,254,153,236,220,185,147,204,155, 55,143, 4, 4, 4, 24,100, 50,217,147, 86,106, -114,121, 60,222,234,233,211,167,231,123,120,120, 68,215, 89, 39, 13, 10, 10,186, 58,105,210,164, 92, 0, 11,254, 69,215, 39,171, -201,106,178,154,127,130,209,122,214, 3,158, 4,224, 74, 5,130,103, 6,246,239,191, 74, 0, 60, 99,171, 41, 18,115,185,227,251, -246,236,185, 74, 0, 76,172,121,175,152,203, 29, 63,176,127,255, 85,124, 46,119,114, 67,122,141,105, 18,128, 43,224,241, 22,244, -237,221,123, 53, 15,120,183,166,108,112, 27,234,246,188, 39, 90,145,254, 62,212,221,201, 46,144,254,139,141,214, 35,135,247, 39, - 92,132,143,139,230, 63,229,166,110,127,223, 48, 29,176, 33,162,117, 0,213, 79, 81,111,223,204,122, 74, 30,241,190,119,114,114, -114, 58,218,190,125,251,194,214,173, 91,231,218,219,219,239, 2,224,213, 66,205, 96, 55, 55,183,255,185,186,186,222,113,119,119, -143,115,114,114, 90,139,234,172,243,205,214,228,243,249, 61, 93, 93, 93,127,245,245,245, 45,243,241,241, 81, 59, 57, 57,237,174, - 39,146,101,141,166, 59,234,111, 84, 4,247,215,177, 95, 58,172, 38,171,201,106, 62,100, 96, 34,218, 98,249,208, 54,176, 12,109, - 3, 58,194, 23,107,107, 27,148, 72, 64,210, 92, 83,244, 60, 32,170,251,254,166,244,154,210, 36, 0,183, 15, 32,175,187,205, 8, - 47, 4, 89,169,249,184, 71,180,106,218,121,219,210, 59, 52,128,229, 79,168,228,227,162,249, 79,225, 46, 26, 25,140, 92,139,101, -143,240, 51,117,143,120, 31,110, 22, 21, 21, 13, 47, 42,122,164,115, 19, 18,242,243,243,159,123,148,130,102,179,249,178, 90,173, - 30,244, 8,164, 26,154,122,109,130,149,211,178, 89, 88, 88,254, 59, 80, 0,141, 20,188, 29,222, 1,235,121, 52, 56,199, 82,145, - 83,103, 74,158,142,106,142,102, 53,244,183,245,180,241, 84,115,235,249, 59,154, 63,104,100,227, 22,245,223, 57,109,121,168, 30, -163,213, 98,163,197,194,194,194,194,194,194,242, 23,112,242, 14,251, 67,236, 49, 32, 26, 15, 71,223,162,107, 25,209, 6, 67,159, -182,204,164,104, 78,248,244, 36,171,201,106,178,154,172, 38,171,201,106,178,154,255, 57,205, 26, 26,122,118,106, 82,157,255,155, - 53,139,239,191, 2,219,207,206,106,178,154,172, 38,171,201,106,178,154,172,230,191,157,102,231,209, 98, 97, 97, 97, 97, 97, 97, - 97, 97,105,156, 6,163,110,172,209, 98, 97, 97, 97, 97, 97, 97, 97,105, 25,238,168,126, 68, 85, 52,126,127, 84,213, 86,160,233, - 71,240, 60,196,242,229,203, 57,237,219,183,151, 11,133,194,142, 41, 41, 41,156, 25, 51,102,180,120, 34,193,170,181, 27, 56, 62, - 62, 62,114, 0, 29,139, 75, 43, 57, 47,190,244, 38,197,158, 47, 22, 22, 22, 22, 22, 22,150,199,136,145,247,141, 85,205,235,131, - 8,151, 77, 17,173, 37, 75,150,192,108, 54,203, 0, 76, 8, 14, 14,254, 88,175,215,235,247,236,217, 67,221,207, 22,222, 44,222, - 93, 48, 15, 38,147, 73, 6, 96,130,139,147,221,199, 52, 77,235,247, 30, 58, 71, 61, 53,170, 31, 97,207, 27, 11, 11, 11, 11, 11, - 11,203, 99,194,180, 58,175, 91,109, 54, 90, 60, 30,143,203,225,112,218,154,205,230,225, 98,177,248,132, 94,175, 63,219, 18,147, - 85,163, 73,113, 56,109, 45,102,243,112,145, 72,124, 66,171,173, 58,203,154, 44, 22, 22, 22, 22, 22, 22,150,199, 8,235,102, 70, - 30, 62,124,184, 65,131, 35, 20, 10, 57,193,193,193,253,124,124,124,206, 7, 6, 6, 26,189,188,188,126,144, 74,165,178, 22, 86, -140,211,222, 47,160,159,135,187,235,249,174,109,221,141, 46, 46, 46, 63,240,249,124, 25,123,190, 88, 88, 88, 88, 88, 88,254,155, - 52,230, 69,254,193,212,204, 52,252,195, 83, 62,108, 25,163,213, 69,173, 86,111, 28, 51,102, 76,175, 57,115,230, 8,184, 92,110, - 43,153, 76,214,209,201,201,233,161,168,216, 11, 47,188, 64,217,164,153,159,183,113,233,248, 46,189,206,191,219, 67,192,231,162, -149, 76, 38,235,168, 84, 42, 31,210,156,244,226, 43,236,184, 45, 22, 22, 22, 22, 22, 22,150,127, 42, 53,227,178, 70,194,150,244, - 14, 61,122,244, 16,101,101,101,117,213,233,116, 46, 2,129, 96, 65, 84, 84, 84,240,184,113,227,112,253,250,117, 58, 56, 56,216, -163,184,184,120,118,105,105,233,201,170,170,170,235, 12,195, 4,139, 68,162,211,187,118,237,146, 3,184,211,144,102,167, 46,221, - 69, 89, 25,169, 15, 52,167,143, 31, 28,252,220,220,225, 96,142,174,167, 7,119,246,246,200, 40,210,206, 46, 90, 11, 62,147, 0, - 0, 32, 0, 73, 68, 65, 84, 40, 46, 63,169,173,210, 92,167, 25, 18, 44, 18,137, 78,127,247,245,150, 70, 53, 89, 88, 88, 88, 88, - 88, 88, 88,254, 70,106,140, 85, 52,234, 60, 82,141, 7, 84,135,233, 34, 35, 35, 31,138, 26, 9,133,194, 47,146,147,147,251, 58, - 56, 56,180,229,243,249,244, 51,207, 60, 35,154, 52,105, 18, 10, 11, 11, 25,141, 70,195, 13, 9, 9,113,189,122,245,234,112,139, -197,210,223,206,206, 78, 91, 86, 86,230,100, 48, 24,238, 2,152,221, 72, 69,190,184,147, 20,223,215,209,222,161,173,144,207,165, -103, 77,157, 36,122,119,193, 19,160, 12,177, 12, 93, 80,204,253,184,155,157,235,218, 11, 85,195,147, 77,116,255, 42,149, 88,155, - 95,110,176, 70,147,133,133,133,133,133,133,229, 49,167, 62, 47,242, 24,209,100, 30,173, 65,247,251, 68,107, 63, 56,119,187,179, -179,179,155, 92, 46, 15,156, 54,109, 26,199,201,201, 9, 49, 49, 49, 76, 85, 85, 21,135,207,231,131,207,231,115, 7, 15, 30, 44, -183, 88, 44,210, 35, 71,142, 80,247,238,221, 43, 52,155,205, 31, 23, 23, 23, 95,109,164, 34,219,219,217,137,220, 36,118,194,192, - 67,111, 14,224, 56,183, 47, 6,142,127,200, 16, 77, 1,135,199, 16, 56,201, 24,238,234,254,148, 60, 95,229, 43,157,181,187,144, -250,237, 94, 89,161,217,108,254,184,178,178,242, 42,123, 9,178,176,176,176,176,176,252,171,169,207,139, 60, 46,212,206,163,245, - 80, 68,171, 65,231,232,234,234, 74,233,245,122, 55, 95, 95,223,105,206,206,206,147,165, 82,169,235,128, 1, 3, 36, 52, 77,131, - 16, 2,149, 74,197,180,110,221,154,217,181,107,151,229,220,185,115,217,175,189,246,218,152,153, 51,103,222, 30, 49, 98, 4,231, -200,145, 35, 76,125,154,118,246, 14,148, 69, 91,225,230,221, 54,112, 90, 39,103, 50,217, 87,101,114, 93, 20, 37,149,240,210,138, - 64,156,120,128,139, 47,195,233, 24,193, 44, 91,125,194,242,229,201,212,236,183, 22, 45, 27,243,234,212, 9,183,195, 35, 70,112, - 78,158,168, 95,147,133,133,133,133,133,133,133,229,111,102, 26,170,163, 90, 53,175, 77, 27,173,190,125,251, 82, 9, 9, 9,148, -143,143,143,180,184,184, 56, 8,192,218,249,243,231,135, 18, 66,104,137, 68,194,149, 72, 36,244, 47,191,252,162,253,241,199, 31, -207,153,205,230,231,140, 70, 99,169,175,175, 47,149,150,150,214,224,108,129, 30,189,122, 83,183,226,174, 83,222, 62,109,165,197, - 69,234, 32, 10,100,109,206,187, 30,161,124, 77, 41, 13, 15,103, 46, 20, 46,244,170,125,165,218,119,127,186,113,206,108, 54, 61, - 7,160,212,203,195,157,202,206,205, 99,211, 61,176,176,176,176,176,176,176,252,147,141, 86, 93, 26,207,163,117,254,252,121, 2, -128,228,228,228,208,102,179, 89, 57,112,224, 64,123, 46,151, 11, 71, 71, 71,174, 86,171,101,170,170,170,184, 78, 78, 78,185,124, - 62,255,187,170,170,170,210, 49, 99,198, 80,251,247,239,111,212, 16, 93,189,116,145, 0, 32,217,217, 89, 52, 99,214, 43,103,244, -107,109,207,179,152,192,132,244,229,106, 42, 41, 70,174, 75,227, 6,184,139,114, 5, 2,254,119,102,179,169,116,108,228, 72,234, -167,195,209,172,201, 98, 97, 97, 97, 97, 97, 97,249, 39,211,224, 24,173, 38,211, 59,104,181, 90,123,129, 64, 16, 30, 26, 26,218, -186,170,170,138, 89,178,100, 73,214,103,159,125,182,227,238,221,187,102, 59, 59,187,182, 18,137,228,245, 9, 19, 38, 56,237,223, -191,159,244,239,223,191,110,132,172,222,167,123,235,116, 26,123,145,128, 31,254,122, 79, 69,235, 44,147, 61, 19,248,250,149,172, -129,139, 47,236,248, 41,129,103,238,228,160,107,235, 32,164, 94,159, 48,225,105,167,159, 14, 71,147,222,189,123, 89,165,217, 66, - 88, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,123, 53, 31,119,166,161, 78,106, 7,192,138,204,240, 34,145,104,128,183,183, -119,191,132,132, 4,250,226,197,139,229, 28, 14,103,211,136, 17, 35,126,216,183,111, 95, 79, 7, 7, 7,151, 86,173, 90,185,158, - 58,117, 42, 12,192,158,223,126,251,205,170,232,147, 68, 36, 24,208,213, 75,213,111,235, 13, 66,127, 29,115,167,156,230,138, 54, - 13,126,242,201, 31, 94,219,177,179,167,135,147,194,165,171,187,210,245,200,145, 99, 97, 0,246, 92,188,120,137,141,104,177,176, -176,176,176,176,176,252,211, 77,214,214,250,254,111, 52,162, 37, 20, 10, 61,185, 92,110, 80,118,118,118,198,145, 35, 71, 18,122, -244,232, 49, 60, 35, 35, 99, 57, 33, 36, 93, 42,149, 78,203,202,202,186,147,149,149,101,212,233,116,211,109,168,140, 39, 56,130, -160,152, 92, 93,198,167,167,110, 37,116,234, 61,108,120,126,126,238,114,154,144,116,161, 84, 57, 45, 57,179,240,206,165, 2,131, - 81,175,183, 73,147,133,133,133,133,133,133,133,229, 31, 71, 83, 17, 45, 19, 77,211, 43, 13, 6,131,253, 79, 63,253,148, 19, 17, - 17, 97, 0,128, 47,190,248,130,153, 58,117,234,185,148,148,148, 33,183,111,223, 30,238,230,230,118, 26, 0,149,154,154,106, 77, -244,201,196, 48,244, 74,163,209, 96,127,234,151,216,156, 1,253, 58, 25, 0, 96,243,231,235,153,103,166,205, 57,151,146,152, 48, - 36, 57,254,218,112, 55, 55,183,211,180,133, 71,229,229,167,179, 17, 45, 22, 22, 22, 22, 22, 22,150,127, 50, 53, 51, 14,107,255, -223,180,209, 50, 26,141,133, 70,163, 17, 0, 74, 35, 34, 34, 30, 90,247,213, 87, 95, 17, 0, 85, 0,246, 22, 23, 23,219, 82,153, - 66,157, 78, 7, 0,165, 3,250,117,122,104,197,238,173,159, 61,208,212, 84, 86,176,167,141,133,133,133,133,133,133,229,113, 50, - 91,127,128,195, 30, 23, 22, 22, 22, 22, 22, 22, 22,150, 22, 49,173,161,255, 41, 52, 60,115,224,164, 13, 31,208,156,217, 7, 39, - 89, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,207,105, 54,165,125, 18,143, 31, 13, 14,134,255,179, 97,167,190,178,154,172, - 38,171,201,106,178,154,172, 38,171,249,111,199, 29, 15,167,119,112,175, 89,193, 99,143, 13, 11,203,227, 13,217, 11, 46, 74,253, -125, 65,136, 7,184,194, 60,228,221, 76,161, 62, 0,211, 98, 77,117,144, 15, 36,102, 87, 88,196,133, 80,199,165,182, 84,147,133, -133,229,223,135, 91,159, 25, 99, 41, 14,119, 19, 69, 24,232,212,137, 34,129, 46, 93, 90,144,151,241, 95,244, 22,121,104, 32,130, -197, 26, 45, 22,150,199,157,194, 0, 63,240,176, 12, 28,184,131,152,238,193, 57,104, 25,112, 43,190,197,154, 2,102, 9,104,142, - 23,136, 41, 25, 46,254,203,129,164, 91,236,193,254,247, 49,123,214,171,228,118,252,101,100,102,230,162,109, 59,119,248, 5,244, -193,103,235, 55, 82,236,145, 97,177,238, 87, 25,181, 53,124,212, 36, 7,137, 84, 1, 0, 96, 44,102,124, 53,183,235,207, 22,139, -101, 59,128,253, 0,116,255,245, 67,244,151, 15,134,231,243,249,106, 0,140, 88, 44,222,135, 90,161, 53, 22,150, 63, 1,247,251, -215, 25,115,255,186,179, 5, 57,143,199, 91, 44,149, 74,127, 17,137, 68, 5, 34,145,168, 64, 38,147,253,194,227,241, 22, 3,144, -255, 99,218,184,255,117,148,130, 67, 15, 55,154, 25,207, 99, 55,203, 92,180, 6,218, 15, 28,203, 8,242, 85, 7,121,139, 52,121, - 84,132,222,196,120,127,119, 69,235, 90,101,180, 4,130,160, 69,154,181,176, 19, 8, 4,199, 0, 56,177,151,231, 63,131,140,212, -120, 28, 57,188, 26, 75, 62,154,130,111,182, 78, 71,210,237, 75, 45,210, 11, 4,186,119,231,241,230, 7, 0,131,209,200,243,116, - 89,254, 37, 80,100,218,201, 67,223, 21, 30,218,245,121,225,247,171,167,147, 3,203, 34,177,126,253,250,240, 41, 83,166,124,231, -237,237, 93, 8,224, 41,214,104,253,197,152,205,102,151,162,162, 34,106,251,246,237, 81, 42,149,234, 30,143,199,123, 7,128,224, -191,114,192,229,114,249, 5,165, 82,169, 86,169, 84,106,165, 82,121,173,169,242,127, 41,126,206,206,206, 25, 14, 14, 14,201,181, - 11,157, 59,143,237,211,190,239,115,239, 59, 6,141, 30,216, 66,125, 1,143,199,123, 71,165, 82,221,219,190,125,123, 84, 78, 78, - 14,101, 54,155, 93,108,216,126,128,189,189,253,237,203,151, 47, 47, 42, 42, 42, 26,152,117,233, 43,231,252,203, 91,156, 51,126, - 93, 61, 40,230,200,134, 69,118,118,170, 91, 0, 6,252, 35,142,164,158,113, 5,135, 27,150,144,167,149,230, 85,152, 93, 99,211, -181, 10,128, 59, 8,198, 22,252,136, 41,103, 92, 1, 50,248, 70,182, 78,118,161,196,217,245,183, 20,131, 18, 28, 78, 24,244,148, - 91,139, 27, 28, 14,231, 85,134, 97,134, 10, 4,130,215,217,111,168,127, 6, 34,145, 0, 32, 4,114,153, 24, 0, 1,167,133,214, - 72,200,225,244,189, 16, 21,181,100, 65,231,206,179, 3,128, 81, 13,152, 45, 10,192,107, 1, 1, 1, 71, 1, 60,243, 8,119,231, - 83,127,127,255, 28, 0,115, 30, 85,187,212,173, 91,183, 62, 97, 97, 97,239,119,237,218,117,224,163,210,252, 55,145,127,225,139, -159,242,206,109,112,201, 61,191,209,165, 44,245,236,107,238,174,246, 76,106,106, 42, 70,142, 28,137,207, 63,255, 92, 26, 28, 28, -188, 3,128,199,127,224, 86, 10,169,249,129,143, 58, 99,180,172, 54, 90,227,125,209,119, 98, 27,156,121,218, 23,149, 19,218, 64, - 51,185, 13,206, 61,233,139,193,205,169,141,163,163, 35, 6, 12, 24,192,205,201,201,145,204,155, 55,239,125,177, 88,156, 6, 96, - 88,115,180, 36, 18, 73,140, 84, 42,205,226,241,120, 15,213, 69, 42,149,198,200,100,178, 44, 30,143, 55,164,118,185, 66,161,184, -160, 84, 42,213, 10,133,226, 90, 3, 70, 40, 70,169, 84,170,229,114,121, 76,237,114, 30,143, 55, 68, 46,151,103, 43, 20,138,186, -229,131, 21, 10, 69, 86,221,242,134,224,243,249, 94, 89, 89, 89, 46,217,217,217, 46, 66,161,208,181,118,121,102,102,166, 75, 86, - 86,214, 67,229,182,192,227,241, 6,203,100,178, 44,169, 84, 26, 83, 95,121,221,125,106,136, 90,199,110,176, 53,229,182, 54, 60, - 17, 17, 17,231,242,242,242,188,237,236,236,236,106,175,112, 80,217, 13,251,223, 87, 27,231,142, 30, 17,241,170,115,224,152, 78, -205,212, 31, 38, 22,139,211,230,205,155,247,126, 78, 78,142,164,119,239,222, 92, 14,199,166,223, 19,225,163, 71,143, 62,160, 86, -171, 61,187,116,233,194,181, 88, 44, 72, 56,184, 24,210,184,215, 33, 78,219,140, 86,146, 66,222,189,159,151,123, 69, 12,234,126, - 0,127,243, 96, 80,178, 55, 80, 0,138, 25,192, 16,226,124, 59, 71,239, 60, 50,234, 41,222,245, 44,157,179,153,166, 29, 0,238, - 32,242,141,143,168, 89,154, 60,115,127,134, 16,215, 83,233,124,231,176,167,103,115, 79,167,243,156,205, 52,237, 8, 14, 6, 54, - 71,179,246,229,207,229,114,231,174, 94,189,154, 3, 96, 22, 0,225,127,201,208,132,122,192,115,112, 59,238,149, 16,119,244,125, -132,178,193,247,239,119,191,150, 10,109,251,230, 40,166,190,178, 21, 29, 2,122,181, 72,199,200, 48, 73,187, 83, 83,143, 79,110, -215, 46,114, 65,231,206, 47,212, 99,182, 40, 0, 11,150, 47, 95,254, 92, 66, 66,130,115,155, 54,109, 94,121, 68, 63,250,215, 45, - 95,190,252,173,132,132, 4, 15, 95, 95,223, 15,109,212,108,176, 93,178,183,183, 31,182,109,219,182,185, 35, 71,142,124,181, 91, -183,110,157, 30,133,230,191,152,207,111,220,184,225,189,122,245,234,183,167, 78,157, 90, 1, 0, 67,134, 12, 17, 0,232,221,226, -246,142, 16, 33, 33, 36,140, 16, 50,146, 16, 50,132, 16, 18,122,255,239, 30,247,151,145,132,144,240, 58,175, 61,238,111, 91,179, -190,103, 3, 26, 35,235,110, 87,107,155,186,255, 63,244,119, 61, 70,107, 36,170,199,106,141,124,104, 7, 14, 31, 62, 76,106,191, -214,101,130, 47, 62,152,221,199, 83,123,251,208, 78,162,201, 74, 37,165,137,215,201,245,173,159,144,217, 61,156,181,207,182,193, -167,182, 31, 47, 66,206,159, 63, 79, 18, 18, 18,136, 70,163, 33,119,238,220, 33, 61,123,246,212, 73,165,210, 83, 0,124,109, 17, - 83, 40, 20,234, 83,167, 78,145,136,136,136,114,185, 92,190,170,230,230, 82, 42,149,234,243,231,207,147,136,136,136,114,133, 66, -177, 14, 0, 23, 0,158,124,242,201, 2, 66, 8,113,118,118,206,173, 79,111,244,232,209,165,132, 16,162, 82,169,106,186,154,184, - 10,133, 98,221,204,153, 51, 53, 87,175, 94, 37,246,246,246, 53,229, 28,165, 82,185,106,214,172, 89,154,216,216,216,218,229,141, -226,224,224,144, 69,211, 52, 57,116,232, 16,113,113,113,201,173,117, 51,103,209, 52, 77, 14, 28, 56,208, 96,221, 26, 11, 20,200, -229,242,149,147, 39, 79,174, 76, 79, 79, 39,142,142,142,234, 90,229,171,166, 76,153, 82,153,153,153, 73,156,156,156,172,170,163, -163,163,163,250,194,133, 11,100,220,184,113, 21,181,143,169,163,163,163,250,226,197,139, 53,229, 43,173,105,200, 60, 60, 60, 94, -113,113,113,201,117,113,113,201,181,179,179, 91,234,238,238,158, 95, 88, 88, 72, 8, 33,164,109,219,182, 5,181, 35, 89, 46,193, - 81,111,108,222,123,241,242,217,248,226,194,206, 67, 95, 93,169,234, 60, 90,101,195, 49,240,149, 74,165,167, 6, 14, 28,168,203, -202,202, 34, 85, 85, 85, 36, 46, 46,142,156, 63,127,158,220,189,123,151, 0,176,230, 9, 3, 10,185, 92,158, 99, 48, 24, 24,131, -193,192, 20, 22, 22,210, 5, 5, 5,116,226, 42,119, 66,190,230, 63, 88,202, 14,140, 34,249,103,151, 49, 74,185, 52, 27,128,226, -111, 51, 90, 27,131,188,200, 22,255,221,183, 22,123, 39,158, 93,254,132,153,164,159, 38, 59, 95,112, 54,159,121,195,243, 30,217, - 20,240, 35,217, 18,216,170, 89,154,155, 2,119,198,189,231,157,180,225,195,215,204, 25, 25, 25,100,254,148, 39, 44, 39,102,123, -166,144,205, 1,123,155,163, 89,139,137, 99,199,142,213,100,102,102,146,160,160,160, 42, 46,151, 59,245,191,100,178,194,253,132, - 57,113,223,205,103, 70, 5, 75,139, 31,145,217, 10,118,113,113, 41,250,246,219,111,137, 66,161, 40,104,174,217, 26, 63,102, 16, -209,149,159, 34, 99, 34, 67, 27,189, 71,158,126,250,105, 18, 22, 22, 70,102,207,158,221,212,189, 68, 5, 0, 81,219, 59,119, 62, -192,140, 31, 79,111,239,220,249, 64, 0, 16,117,223, 96, 81, 0,222, 94,177, 98, 69,172,217,108,142,253,230,155,111, 98,163,162, -162, 98, 1,204,111,225,177,248,236,211, 79, 63, 37,102,179,153,124,243,205, 55, 36, 42, 42,138, 0, 88,223,146,118,169, 38,146, - 21, 18, 18,242,198,254,253,251, 47, 39, 37, 37, 21, 70, 70, 70,174,236,220,185,179,170,185,154,255, 68,228,114,121,251, 78,157, - 58,237, 8, 10, 10,202,236,210,165,139, 49, 48, 48, 80,239,231,231,151, 30, 28, 28,252,173, 72, 36,242,109,166,108,175,190,125, -251,210,103,206,156, 33, 99,199,142, 37,181, 76, 72,163, 52,230, 69, 8, 33,161,111,191,253,246, 59, 0,200,219,111,191,253, 14, - 33,100,228,125, 63, 49,178,246,223,117, 95,107,204, 83,205,255,245,105,212, 44,245,105,214,247, 25,117, 62, 7, 13, 68,178,166, -253, 97,231, 14, 31, 62, 60,240,240,225,195,103,234,238,220, 83,109,208,103,118, 31, 79,157,174, 48,143,196,127,242, 58,249, 37, -204,139,156, 31,228, 70,146,231,142, 37,121,223,173, 35, 51,186,218,107,199,183, 65,152,173, 70, 43, 54, 54,150,196,198,198,146, -107,215,174,145,180,180, 52, 82, 94, 94, 78,190,255,254,123,218,209,209, 81, 39, 18,137,150, 3,144, 88, 35,166, 84, 42,213,132, - 16, 98, 48, 24,200,210,165, 75,245,247, 35, 85,174, 42,149, 74, 77, 8, 33,101,101,101,100,249,242,229,122,149, 74, 21, 7,192, -195,201,201, 41, 43, 53, 53,149,184,186,186,214,107,102,236,237,237,213, 73, 73, 73, 53,198,201,211,222,222, 62,254,224,193,131, - 38, 66, 8,201,206,206, 38, 14, 14, 14,106, 0,174,142,142,142,215, 15, 31, 62,108, 34,132,144,220,220,220,154,114,171,140,150, - 78,167, 35, 39, 78,156,120,168, 14, 53,229, 71,143, 30,125,200,128, 89,129,171, 74,165,138,253,254,251,239,141, 52, 77,147,248, -248,248, 26,147,232,106,103,103,119,109,239,222,189, 70,154,166, 73, 98, 98,162,213,102,176,117,235,214, 5,132, 16, 98,177, 88, -200,230,205,155, 13, 53,199,180,166,220,104, 52,146, 47,190,248,194,160, 84, 42, 99, 1, 52, 26,125,115,114,114,202, 53, 26,141, -164,172,172,140,244,236,217, 83,115,254,252,121, 82, 81, 81, 65, 8, 33,164,117,235,214, 5, 0,224, 63,112,234,199,151,239,104, - 42, 94,124,107,227, 30,223,208,103, 63, 57,126, 37, 39,123,219,254,152, 88,167,224,209, 79, 88, 19,212, 20,137, 68,203,221,221, -221,245,191,253,246, 27,109, 50,153, 72,102,102, 38,185,118,237,218,131,107,236,230,205,155, 86, 25, 45, 30,143,183,248,242,229, -203, 38,154,166,153,162,162, 34,186,160,160,128, 46, 40, 40,176,212, 53, 90,228,107, 62, 41, 58,250, 50,137,222, 58,199, 40, 16, - 8, 22,255, 61,209, 44,112,201, 22,255,209,100,139,127,236,183,147,157,138, 42,175,237, 34,228,231, 57, 36,229,227, 54,100,241, - 19,138, 74,102,139,127, 44,217, 18, 48,158,124, 48,144,103,147,230,214,192, 81,100,139,127,236,167, 79,249, 20, 95,143,189, 74, -206,156, 57, 67,190, 88,183,130,204, 14,247,172, 98,182,248,199,146, 77,129,227,108,209,172,141, 72, 36,186,115,238,220, 57,114, -246,236, 89,242,225,135, 31, 18,169, 84,154,249, 40,162,122,100,147,159, 15,249,210,111, 32,249,170,131, 59,249,117,224, 63,110, -130, 79,168, 7, 60,135,250, 9,179,139,174,239, 39,164,228, 46,201, 95, 21, 68,158,240,231,183,212,108, 5,187,184,184, 20,166, -167,167,147,252,252,124,178,102,205, 26,162, 84, 42,155,101,182,198,143, 25, 68,116,101, 39, 27, 53, 90,163, 71,143, 38,107,215, -174, 37,102,179,153,244,234,213,203,154, 31, 45,127, 48, 91,254,192,104, 0,239,172, 92,185,242,129,201,218,184,113, 99,236,205, -155, 55, 99,189,189,189,143,180,224, 88,172, 95,185,114,229, 3,147,181,113,227, 70,114,243,230, 77,226,227,227,147,213,146,118, -105,232,208,161, 31,167,165,165, 85, 44, 92,184,112,207,128, 1, 3, 62,185,126,253,122,118,116,116,116,108, 72, 72,200, 19,205, -213,124, 4, 81, 29,222,253,200,142,144, 16,194, 39,132,212,152, 87, 30, 0,126, 77, 64,193, 26, 38, 79,158, 44,237,211,167, 79, -236,164, 73,147,180,223,126,251, 45, 73, 79, 79, 39,113,113,113,100,229,202,149,228,253,247,223, 39, 95,127,253, 53, 25, 55,110, - 92, 85,207,158, 61, 47,143, 31, 63, 94,108, 67, 53,131,124,125,125,203, 15, 28, 56, 64,118,238,220, 73, 4, 2, 65,180,181, 27, - 54,230, 69, 26, 50, 83, 13, 25,172,186,235, 26, 49, 98,141, 26, 54, 43, 62,239,143,166,170,110, 36,164,214,223,191, 70, 70, 70, - 14,252,195,151, 15,193, 71,211,230,125, 44, 78,251,118, 13,212,223,127, 14,110,153, 26,252,202, 98, 24,206, 69,195,124,238, 32, -158,235,221, 91, 34,161,168, 37,182, 94, 48, 66,161, 16, 66,161, 16, 2,129, 0, 90,173, 22,185,185,185,232,215,175, 31,231,218, -181,107,226, 87, 94,121,101,142, 68, 34,201, 4, 48,166,201,187,153,170,142, 72, 95,184,112, 1, 47,191,252,178,104,199,142, 29, - 93,156,157,157,111,208, 52, 45, 4,128,196,196, 68, 76,152, 48, 65,180,107,215,174,142, 30, 30, 30,215, 76, 38,147, 84, 36, 18, -129,203,229, 54,168, 39, 20, 10, 97, 54,155, 69, 29, 58,116,136,187,113,227, 70,112,100,100, 36, 63, 35, 35, 3,169,169,169, 48, -155,205, 66, 63, 63,191,155,215,174, 93,235, 50,114,228, 72,126, 86, 86, 22, 50, 50, 50, 30,212,195,154,250, 26,141, 70,136, 68, - 34,212,238,210,162, 40, 10, 6,131, 1, 66,161,208,106, 45, 30,143, 55, 56, 32, 32,224,230,141, 27, 55, 66, 70,143, 30, 45,184, -122,245, 42,178,179,179, 65,211,180, 48, 48, 48,240,230,141, 27, 55,186, 70, 69, 69, 9,226,226,226,160, 86,171, 97,109, 23, 90, -205,251,110,220,184,129, 73,147, 38, 9,143, 29, 59,214,213,221,221, 61,206, 98,177, 8, 1,224,230,205,155,152, 48, 97,130,240, -248,241,227, 33,173, 90,181,138,107,162, 43,145, 11, 0,102,179, 25,175,188,242,138, 76,169, 84, 34, 43, 43, 11, 12,195,128,166, -105, 0, 64,113,105,241,205, 27, 55,227, 19,159,155,248,212, 64,157,201, 96,184,120, 37,230,118,219,214, 62, 94, 20, 69, 90, 55, - 81,213, 49, 50,153, 44,115,213,170, 85,111,164,167,167,139, 2, 2, 2, 56, 41, 41, 41,168,172,172,132, 64, 32,120,112,141, 89, -187,223, 66,161,112, 80, 80, 80, 16, 79,175,215,131, 97, 24, 0, 32, 28, 78,253, 35, 86,196,101,231, 16,232,106,225, 75, 36,146, - 65,127,203,183,119, 69,144, 35, 24, 12,205, 40, 52,138, 68,118, 94, 10,185,187, 31,144,121, 22,109,156, 69,224,114,184,226,171, -169, 90, 25, 64,134,194,187,200,209, 54, 77,102,104,106,129, 81,100,118,232, 40,247,240,242, 70,113,113, 49, 90,181, 13,128, 94, -232, 44,188,112,183, 74, 14,202, 70,205,223,233,223,161, 67, 7,183,246,237,219,163,168,168, 8, 33, 33, 33,176,183,183,183, 7, - 48,180,217, 95, 58,223,248,136, 80,129,190, 0,103, 21,104,234, 67,152,121,203,112,183, 48,132,108, 9,225,255,147, 76,150, 82, - 46,188,180,107,247,247,158,142,222,129, 64,244,139,112,181, 19,225,171, 87, 67, 28,156, 85,162, 3,205, 52, 91,193,174,174,174, -167, 47, 95,190,236, 36, 22,139,113,237,218, 53, 4, 5, 5, 97,205,154, 53,206,246,246,246,103,155, 23,217, 34, 32, 84,195, 38, -107,192,128, 1,152, 53,107, 22,118,236,216, 1, 7, 7, 7, 76,154, 52,169, 41,179, 69, 18,129, 67,159,198,197,125,179,227,222, -189,195,147,219,181,139,156,228,231,183,116,250, 51,207, 76,125,237,181,215,176, 98,197, 10, 28, 56,112, 0,125,251,246,197,180, -105,211,204,153,153,153,219,155,219, 85,181,106,213,170,217,115,230,204,169,171,105,202,200,200,248,180, 69,237, 82,113,241,205, -184,184,184,196,137, 19, 39, 14,212,235,245,134, 43, 87,174,220,246,245,245,245, 2,208,186,185,154, 45, 48, 88, 20, 33, 68, 12, - 64,122,127,145, 1,144,238,218,181, 75, 53,122,244,104,229,253, 50,201,253,165,201,238,253,160,160, 32,175, 59,119,238,228,204, -157, 59, 55,100,199,142, 29, 18,169, 84,138,178,178, 50,124,249,229,151,120,231,157,119, 64, 81, 20, 8, 33,248,250,235,175,165, - 47,188,240, 66,232,189,123,247,114,124,124,124,172, 25,210, 34,146,203,229,123,151, 46, 93,170,100, 24, 6, 11, 22, 44, 40, 50, -153, 76,179,238,175, 91,104,103,103,119, 9,213,134,187, 49,234,245, 34,181,190, 43, 15,215, 57, 54,145,117,203,234,174, 35,132, - 68, 54,166, 97,227,185,168,239,243,162, 27, 51, 91,181,191,129, 6,213,235, 34,129,206,110,190,254, 40,255,121, 47, 36, 60, 10, - 18,238,253,133, 71,129,147,114, 19,173,196,124,152, 9, 9,110,174,209,170, 89,248,124, 62,180, 90, 45,104,154,198, 59,239,188, - 35, 58,113,226,132, 35,135,195,249,177, 41,157,218,134, 41, 57, 57, 25,129,129,129,212,161, 67,135, 92,103,205,154, 37,169,249, -156,242,242,114,180,111,223,158, 58,122,244,168,203,123,239,189, 39,111,204,204, 80, 20, 5,129, 64,128, 57,115,230, 72,174, 92, -185,226,224,225,225,129,148,148, 20,148,148,148, 64, 46,151, 99,206,156, 57,146,203,151, 47, 59,123,120,120, 32, 61, 61, 29,229, -229,229,144,203,229, 54, 27, 45,129, 64,240,208, 54, 20, 69,193,100, 50,217,100, 12, 84, 42,213,206,216,216, 88,103,149, 74,133, -184,184, 56, 88, 44, 22,168, 84, 42,204,158, 61, 91, 18, 27, 27,235,108,103,103,135,196,196, 68, 16, 66,160, 84, 42,109,170, 35, - 0, 48, 12,131,196,196, 68,180,110,221, 26,103,207,158,117,153, 62,125,186,184,166,252,238,221,187,240,242,242,194,217,179,103, - 93,100, 50,217,206,134,180, 24,134, 65, 94, 94, 30, 18, 18, 18,144,146,146,130,194,194, 66, 20, 21, 21,161,178,178, 18, 22,139, - 5, 0, 32,173,172,136,222,181,231,208, 13,137, 68, 34, 13,242,235,224,125, 51,254, 86,129, 68, 34,145,250,120,123,251, 1, 31, -112, 26, 49,132, 63,102,100,100, 56,190,240,194, 11,130,252,252,124,148,150,150,130,199,227,253,225,218, 18, 10,173, 27, 10,100, -177, 88, 2,197, 98, 49,101, 50,153, 30, 68,192,132, 66, 33,222,216,169, 69,208, 98, 60,180, 60,179,174, 0,132, 54,195,104, 52, - 6,254,229,209, 44,128, 2,101,236, 0,138, 10,185,148, 82,229,208, 63,114,162, 0,169,199, 0,198, 12,112,120, 24,212,217,139, -119,224,102,149, 43, 8, 58,195,128, 0, 66,154,158,249, 69, 0, 10, 48,181, 7,168,238, 39,238, 88, 28,251,142,125, 85,144,147, -147, 3,129, 64, 0,145, 72,132,144,193, 79,242,118,221, 48,187,129, 66, 23,152,224,111,141,230, 67, 97, 71,137,100,209,251,239, -191, 47,171,173, 57,117,234, 84,153, 74,165,122,191,217, 38,171, 74,218, 27, 22, 50, 39, 33, 71,219,122,105,116,126,224,189, 2, -157, 63, 8,153, 11,152,187, 62, 2,179, 53, 72, 36, 18,165, 2,232,215, 34,147,165, 16, 94,220,189,251,123, 79,135, 86,213, 38, - 11, 22, 61,192,151,192,205,217, 14, 95,189, 17,230,224,108, 39,177,213,108, 5,187,186,186,158,186,116,233,146,147, 88, 44, 70, -108,108, 44, 4, 2, 1,196, 98, 49, 58,117,234,132, 45, 91,182, 56, 59, 56, 56,216,108,182, 8, 72,189, 49,223, 49, 99,198,144, - 1, 3, 6, 96,230,204,153,216,190,125, 59,140, 70, 35,150, 46, 93,138,140,140, 12,171,100, 19,129, 67,203,227,226,190, 93,150, -144,144,252,118,112,112,192, 24,153,204, 97,230,164, 73,170,247,222,123,239,240,193,131, 7,191, 25, 57,114,100,209,149, 43, 87, -214, 2,216,107,227,225,165, 0,108, 92,189,122,245,204, 26,227,246,222,123,239,125,125,240,224,193,101, 35, 71,142,204,187,114, -229,202, 92, 0, 27, 91,210, 46, 49, 12, 19,253,227,143, 63,222,144, 72, 36, 82,127,127,127,239,248,248,248, 2,137, 68, 34,245, -246,246,246, 27, 56,112, 32,167, 57,154,205,193,197,197,101,200,165, 75,151,130, 80, 61,105, 76, 84, 99,180,226,227,227,237, 42, - 42, 42,236,228,114,185,157,187,187,187,162,198,108,141, 29, 59,214,142,199,227, 53,122,221,106, 52,154,131, 11, 23, 46, 84,141, - 29, 59,182,230,127,156, 59,119, 14,219,183,111,135, 76, 38,123,232,189, 81, 81, 81,120,249,229,151,237,141, 70,227,143, 86, 84, -119,202, 43,175,188,226,239,234,234,138, 69,139, 22, 25,114,114,114,134, 0,200, 0,160, 10, 15, 15,255, 56, 62, 62,190,103,104, -104,232, 30, 0,221, 26,187,247,234,243, 34,181,141,142, 53,101,205,125,191,181,102,171, 78, 81,131, 57,180, 30, 50, 90,145,145, -145,103,208,192, 76, 42, 83,137, 26, 34,208,144,112, 41, 72,185,181,204, 22, 24,240,202, 11, 64, 53, 99,150, 74,125, 95,134, 66, -161, 16, 92, 46, 23, 70,163, 17,214, 62,168,186,198, 20, 40,149, 74,200,229,114,232,116, 58, 88, 44, 22,136,197,226, 26, 51, 2, -165, 82, 9, 62,159, 15, 62,159, 15,177, 88,252,135,104, 82,221,104,142, 64, 32,128, 76, 38, 67, 94, 94, 30, 50, 50, 50,192, 48, - 12,228,114, 57,100, 50, 25,132, 66, 33,114,115,115,145,155,155, 11, 66, 8,100, 50, 25,100, 50, 25,108, 25,112, 77,211,116,189, - 95,254,102,179,217,166,136,150,197, 98,193,237,219,183,145,153,153, 9,177, 88,252, 96, 95, 69, 34, 17,238,222,189,139,252,252, -124, 72,165, 82, 40,149, 74,168, 84, 42,171,117,107,246, 69,161, 80, 64, 34,145,160,180,180, 20, 90,173,246,193, 49, 85, 42,149, -144,201,100, 40, 47, 47, 71, 65, 65, 65,163,251, 78,211, 52,114,115,115, 81, 88, 88,136,172,172, 44, 20, 21, 21, 61,104,128,238, - 71,141, 90, 22,216,169,168, 64,113,113,241,131, 72,100, 67,139, 53, 48, 12,131,202,202, 74, 92,186,116,137, 98, 24, 6,101,101, -101, 76, 97,126, 62, 61, 35, 87,136, 3, 31,108, 34,223, 31,187,174,223,117, 36, 86,183,239, 84,130,110,227,190,155, 58,113,207, - 15, 45,248, 59,248, 34, 88, 5, 51, 63,162, 72, 99, 22, 21,154, 4, 42,215,224,112, 32,245, 40,192,225, 1, 98,123,244,234,216, - 6, 25,165,180, 44, 73,109, 20,131,194, 48,108,244,179,183, 74,147,230, 15, 45,172, 52,139,210, 77,206,202,192,206,221,160, 86, -171, 33, 18,137, 32, 18,137,208,189,111, 56, 82,139,105,233,173, 28,157, 20, 4, 17, 86,105,254, 78, 91,185, 92,222,187, 95,191, -126, 84,109,205, 17, 35, 70,128,162,168, 78, 0, 2,108,106,228,214,183, 21,194, 36,237, 5, 30,153,115, 43, 79,235,113, 32, 94, -239, 55,106,204,147, 14,159,157, 44, 8,188,157,111,240, 5, 49,207, 3, 49,117,107,129,217, 26,168, 80, 40, 14,111,216,176,193, - 87, 44, 22, 31, 5,208,191, 57, 34,114, 9,119,243,162,153, 19, 61,237,107, 76,150, 89, 11,240, 36, 0, 95, 2,240, 36,112,115, -113,194,146,151,135, 58, 72,197,252,125, 54, 24,214, 93, 27, 55,110,116,174,107,178,106,150,144,144, 16, 44, 94,188,216,217,193, -193, 97,167, 53,122,171, 86,174, 32,101,229,229, 0, 1, 42, 42, 52, 88,181,114, 69,105,205,186,177, 99,199,146,254,253,251, 99, -230,204,153, 88,182,108, 25,142, 28, 57,130, 94,189,122, 97,218,180,105, 8, 13, 13,109, 74, 58, 66,165, 82,237, 8, 15, 15,191, -148,171, 80,188,156,215,173,155,240,148, 74, 85, 62,164,188, 92,229, 19, 31,111,242, 7,110, 2,248, 34, 59, 59,251, 9, 27, 76, -214, 51, 74,165, 50,118,200,144, 33, 38,133, 66,145,185,102,205,154, 25,179,102,205,194,138, 21, 43,176,112,225,194, 47, 1,188, - 4,224,221,236,236,108,143,198, 76,214,159,213, 46,253, 89,109, 29, 77,211, 89,123,247,238, 13, 53,153, 76, 94,247,187, 7, 69, -101,101,101,202,146,146, 18,133,201,100,146, 49, 12, 35,179,179,179,147, 3,144, 62,247,220,115,188, 91,183,110, 5, 90, 44,150, -156,198, 52,243,243,243,159, 93,176, 96, 65, 81, 81, 81, 17, 0,160, 83,167, 78, 40, 43, 43,195,252,249,243,241,250,235,213, 19, -130,187,118,237, 10, 66, 8,212,106, 53, 86,173, 90,165,206,207,207,127,222,138,234,182,235,208,161, 3,226,227,227,113,251,246, -237,147, 0, 24, 84,143, 99, 45,191,126,253,250,141,194,194, 66,236,220,185, 83,224,233,233,121, 16, 13,164,120,105,204,139, 52, - 7,138,162,162,155,179, 93, 77,228,170,190,136, 88, 3, 52, 30,209,138,140,140,164,106,191, 62, 20, 49,162, 16,151, 25,115, 22, - 14,193,221, 30,138,102, 73,185, 20, 36, 74, 21, 82,179, 50, 32, 0,149,240,168,140, 86,105,105, 41,102,204,152,161,123,246,217, -103,139, 25,134,121,210, 90, 83,160, 82,169,160, 82,169,112,235,214, 45, 50,110,220, 56,245,154, 53,107,116,181,141, 86,114,114, - 50,137,136,136, 40,120,255,253,247, 53,141, 25,173,154,136,214,242,229,203,117,131, 6, 13, 42, 76, 72, 72, 32, 53,102, 74, 46, -151, 99,213,170, 85,186,176,176, 48,245,213,171, 87, 73, 77,153, 45, 17, 45, 14,135,243,192,104,213,222,134,195,225,128, 97, 24, -155,140, 86, 85, 85,213,179, 35, 71,142, 84, 39, 38, 38,146,154,253, 84,169, 84, 88,179,102,141,110,232,208,161,234,132,132, 4, - 82, 83,166, 84, 42,173, 54,131, 53,159,175, 80, 40,160, 84, 42,113,235,214, 45, 18, 17, 17,161, 94,191,126,189,190,118,249,237, -219,183, 73, 84, 84,148,186,178,178,242,217,198,204, 75, 77,119,158,197, 98,129, 94,175, 71, 81, 81, 17,178,178,178, 30,132,211, -117, 50,229, 19, 19,159, 30,213, 69,167,211,105,111, 37,223,201,236,212, 49,200, 69,167,211,105, 51, 50, 51,147,129, 15,152, 70, -180,159, 12, 14, 14, 46,158, 49, 99,134,174,180,180,180,197, 70, 75, 40, 20, 38,242,120, 60,210,191,127,127, 98, 52, 26, 73, 86, - 86,150,185,168,180,212, 18,240,201, 39, 36,225,141, 55, 40, 73, 76,140, 72, 46,151, 83,247, 53, 57, 41, 41, 41,140, 68, 34, 73, -252,203,141, 22,135,113, 3, 69,250,253,118, 71, 99, 55,116,212, 4, 33,149,127, 5, 48,105, 0,145, 61, 32,178, 7, 79,230,136, -225,253,187,114,191,189, 84,225, 6,194,244,129, 64,228,213,164, 38,159,184, 2, 76,255,159,147,245,246,253,198,207, 22,150,148, -148,128,203,229, 62, 48, 69, 82,153, 12, 67,198, 60,199,249,250,138,193, 13, 32,125, 65,113,189,108,184,215,223, 90,180,104,145, -160,180,180, 20, 28, 14,231,119, 77,169, 20,211,167, 79, 23, 41,149,202,133, 86, 55,126,123, 3, 5,224,139,122, 1,228,245,164, -124,189,199,193,155, 58,255,121,203,191,146, 4,119, 13,197, 43,131, 92, 36,203,163, 11,130,111,100,233,218, 0,244, 27,176, 24, -187, 55,195,108,245, 87, 40, 20,209, 49, 49, 49,210, 17, 35, 70, 96,213,170, 85, 50,137, 68,114,180, 57, 13,127,149,134,158,245, -209,250,255,169,227,214, 14, 3, 76, 85,213, 6,171,214, 82,160, 97,176,248,171,211,229,102, 51,153,104,173,166, 78,167,155,242, -210, 75, 47, 21,239,219,183,239, 15, 38, 75, 44, 22, 35, 45, 45, 13, 75,151, 46, 45, 41, 41, 41,105,242, 75,113,205,234, 85,177, -241, 55,126,193,215, 95,126, 4,128, 96,195,154, 87,113,241,183,221,118,131, 6, 14, 32,173, 91,183, 38,161,161,161,152, 49, 99, - 6,150, 44, 89,130,164,164, 36, 56, 57, 57,225,213, 87, 95,197,192,129, 3,177,122,245,234,198, 26,169,136, 89,179,102, 45,205, -206,206,246,255,249,231,159,121,133,133,133, 46,171,183,109, 43,255,161,188,188,100, 89,124,124,210,187, 29, 59,118,120,187,115, -231,231, 27, 73,253, 80,175,201,154, 57,115,230,174,236,236,236,144,147, 39, 79,242, 11, 11, 11,189,102,206,156,137,149, 43, 87, - 98,225,194,133, 91, 0,188, 2,235, 38,188, 88,221, 46,113,185,220, 39,158,124,242,201, 46, 58,157, 78,155,148,148,148,217,177, - 99, 71, 23,157, 78,167,205,204,204, 76, 62,115,230, 12,211, 28,205,230, 80, 92, 92,124,111,231,206,157,201,179,103,207, 14,201, -206,206, 14, 4,224, 88, 89, 89, 41,171,172,172, 20, 25,141, 70,137,189,189,189,125,215,174, 93,157,166, 77,155, 38,191,126,253, -122, 96,118,118,182,230,126, 20,169, 65, 76, 38, 83, 82,105,105,105,228,176, 97,195,202, 74, 75, 75,209,185,115,103,140, 26, 53, - 10,110,110,110,240,240,240,192,232,209,163,225,231,231,135,226,226, 98, 76,156, 56,177,164,176,176,112, 24,128, 20, 43,170,123, - 47, 63, 63, 31,125,250,244,193, 71, 31,125, 20,249,212, 83, 79, 37,244,239,223,191,162, 99,199,142, 90, 47, 47,175,128,207, 62, -251, 12,158,158,158,216,187,119,175,187, 72, 36,218, 89,143,201,106,208,139, 0, 40,188,111,120,140,117, 94, 11,155, 88,103,237, -182,245,254,109,197,251,234,154,173,218,203, 31,186, 14,235, 63, 33,192,226,237,123,191,213, 11,189,219, 67,229,223, 5, 82,177, - 24, 18,161, 16, 18,123, 71, 24, 24, 6,219,210,242,181, 85,132, 44,180,245,226,169,251, 69, 72, 81, 20, 62,255,252,115, 75,239, -222,189,245,167, 79,159,222,160,211,233,188, 81,157, 85,214,106, 83,176,126,253,122,237,156, 57,115,110, 20, 20, 20,116, 17,139, -197,198,154,242, 13, 27, 54,104,159,123,238,185,248,236,236,236, 16,169, 84,170,109,104,124, 86,109,163, 37, 18,137, 12, 5, 5, - 5,161, 83,167, 78, 77,252,226,139, 47,170,164, 82, 41,100, 50, 25, 68, 34,145,177,160,160,160,203,140, 25, 51,110,172, 92,185, - 82, 43,145, 72, 32,147,201,108,234,150, 35,132,252,193, 80,213, 46,183, 22,139,197,114,186,160,160,160,203,156, 57,115,174,127, -246,217,103, 85, 53, 6,168,118, 29, 87,175, 94,173,149,203,229, 54, 69,180,106,222, 39,147,201,176,110,221, 58,237,236,217,179, -111, 20, 20, 20,116, 17,137, 68,198, 90,229, 85,179,102,205,186, 94, 80, 80,208,197, 98,177,156,110,228,215, 24, 93, 81, 81, 1, - 30,143,135,248,248,120,131, 64, 32, 0,135,195,193,221,187,119, 31, 52, 62, 14, 14, 14, 65, 93, 58,117, 12,248,223,174,189,103, - 36, 2,145,168,119,104,247,192,148,244,140,108, 66,168,244, 38,170,186, 95,167,211,121,159, 62,125,122, 67,239,222,189,245,159, -127,254,185,165,161,200,150, 53, 24, 12,134, 51,215,174, 93, 51,139,197, 98, 42, 47, 47,207,194,229,114, 65,211, 52, 49,132,134, - 26, 58,125,246, 25,185,245,246,219,148, 82, 38,227, 9, 4, 2, 72,165, 82,234,216,177, 99, 70,173, 86,123,230,175, 55, 90,144, -130,130,228, 78,129, 65, 33,230, 88, 40, 36,239,175, 54, 89, 98, 59, 64,108, 15,136,237,225,233,233,133, 43,105, 90, 5, 56, 16, -130,182, 34,135, 24, 33, 50, 80,144,198,171,161,224, 11, 37, 84,126,126,254, 3, 67, 84,179,248,182, 15,196,181, 12,141, 28, 20, - 17,129, 11, 91, 82,144, 68, 58, 58, 58,242,242,242,242,254,160, 25, 20, 20,196, 53,155,205,214,167,118,201,165,221, 1,102,102, -114,190,222,253,167, 27, 85,254,111, 44,251, 90, 34,161,203,128,152,245, 8,110,235,129, 55,198,119, 21,190,119,176, 48,248,106, -186,182, 45,184,228, 21, 48,132,239,189, 76, 0, 0, 32, 0, 73, 68, 65, 84, 26,103, 27,234,217, 79,161, 80, 28,189,122,245,170, - 84,161, 80, 32, 37, 37, 5,161,161,161,216,186,117,171, 84, 42,149, 30, 1, 96,211,120,188,203,106,100,104, 42,233,222,111,237, -205,204,143,203,179, 60,100,178, 10,171, 8, 94,250,244, 96, 89,105,133,254,201, 75, 89, 13,223, 63,245,112,189,172,172, 44, 98, -225,194,133,197,133,133,133, 15,153,172,140,140,140,154, 47,197, 65, 0,154,252,241,251,235, 47,199, 67, 62, 89, 50, 7, 87, 99, - 18, 48, 60,242,117, 92,139,187,135,119, 23,140,129,157, 82,130,211,167, 79, 99,236,216,177,248,232,163,143,112,247,238, 93,124, -255,253,247,212,214,173, 91,169, 75,151, 46, 81,159,126,250, 41,213,196,144,134, 73,203,150, 45,195,213,171, 87, 49, 98,196, 8, -156, 61,123, 22, 37, 37, 37,216,125,244,232,157,157,119,238,188, 91, 51,102,171,129,212, 15,245,162, 84, 42,231, 45, 91,182, 12, - 49, 49, 49, 15, 52,139,139,139,177,108,217,178,108, 0,175,218, 98,178,108,105,151, 58,119,238, 28,176,107,215,174, 51, 98,177, - 88, 20, 26, 26, 26,152,150,150,150, 13, 32,189, 25,154, 21, 45,233,169, 42, 42, 42,186,176,117,235,214, 75,131, 7, 15,150, 78, -153, 50,197,249,192,129, 3,142, 90,173,214, 67, 36, 18,185, 24,141, 70,225,237,219,183,185, 63,252,240,131,219,173, 91,183,210, -244,122,253, 21,107,142, 71, 65, 65,193,149,164,164,164, 97,157, 59,119,190,189, 97,195,134,108,119,119,119,102,218,180,105,120, -233,165,151,224,236,236, 76,175, 91,183, 46,179,127,255,254,241,247,238,221, 11,215,106,181, 55,173,172,235, 55,159,124,242,201, -249, 93,187,118, 97,212,168, 81,248,244,211, 79,177,123,247,110,252,242,203, 47,146,223,126,251, 77,184,117,235, 86, 8, 4, 2, -244,234,213, 11, 17, 17, 17, 67,238,119,119, 90,251,189,116,149,162,168,104,138,162, 78,214,121,189,218,216, 58, 27,182,109,232, -239, 70,223, 87,167,154, 91,235, 44,214, 51,169, 45, 62,152,222, 81,161,189, 48,185, 23,201,159,214,143,168, 39, 4,146,115, 3, - 29,200,212,118, 84,213,148,102,166,119,208,233,116, 15,150,125,251,246, 17, 55, 55,183, 42,133, 66, 97,115,122, 7, 55, 55, 55, -117, 69, 69, 5,233,209,163, 71,137,179,179,243,131, 84, 4,238,238,238,234,170,170, 42,210,171, 87,175, 18, 23, 23,151, 7,233, - 29,188,188,188,178, 8, 33,196,199,199, 39,183, 33, 61,139,197, 66,220,220,220,106,102,232,241, 29, 28, 28, 54,245,236,217,179, - 68,173, 86, 19,119,119,247, 7,169, 19,156,157,157, 87,133,134,134,214, 45,111,170,190, 89,217,217,217, 36, 59, 59,155,180,106, -213, 42,183,118,121, 70, 70, 6,201,200,200, 32, 94, 94, 94, 54,167,119,112,118,118, 94, 89, 79, 93,154, 85, 71,111,111,111,181, - 78,167, 35,125,250,244,121,232,152,122,123,123,171,245,122,125, 77,185, 85,233, 29, 36, 18,201, 43, 98,177, 56, 87, 44, 22,231, -138, 68,162,165,173, 91,183, 46,216,179,103, 15, 89,183,110, 93,205,148,116, 56, 7, 69,245,110,223,231,249,119,157,131, 70,207, -107, 73,122, 7,133, 66,113,202,205,205,173,106,223,190,125, 15, 93, 95, 58,157,206,234,244, 14, 18,137, 36, 91,163,209, 48,106, -181,218,124,254,252,121,109, 76, 76,140, 54, 62, 62, 94,155,150,150,166, 43, 46, 40, 48,169,213,106, 93,121,121,185,225,198,141, - 27, 6,169,244,239, 73,239, 64,182,250,181, 39,155, 2, 14,222,251,200,247,214,156, 1, 82,253,205, 37, 93, 8,249,113, 44, 33, - 71, 94, 34,228,244, 91,228,202,150,105,164,143,175,136, 62, 63,191, 85, 50,217,236,255,147, 53, 41, 25,200,214, 78,237,201,166, -128, 35,119, 62,244,189, 53,165,191,135,126,219, 23,235,200,229,203,151, 73,124,124, 60, 73, 73, 73, 33, 71,246,239, 33,125,218, - 74,171, 53, 55, 5, 28,180, 49,205, 67, 95,145, 72,164, 89,179,102, 13,185,116,233,210, 3,205,131, 7, 15, 18,169, 84,170, 5, -172,155,181, 76, 0,138,108, 10, 26, 99,249,194,255,183,247,134,202, 43,139, 15,191, 69,200,205,111, 9,217, 26, 76,200, 55, 61, - 9,217, 51,146,144, 67,207,147, 75,235,198,147,190,190, 2, 51,217,236,127,150,108, 9,178,122,176, 61,159,207,175,216,183,111, - 31,201,205,205, 37,103,207,158, 37, 49, 49, 49, 36, 49, 49,145,100,102,102,146,232,232,104,194,231,243,245,104,198, 99,203,122, -186,194, 39,188,131, 32,239,198,242,190,132, 28,152, 72, 10,119, 78, 34,145, 29, 21, 37,189, 90,181, 40, 31, 93, 87, 71, 71,199, -162,232,232,104,146,150,150, 70,206,156, 57, 67, 92, 92, 92,138, 0, 88, 61, 94, 54,114,120,127, 66,140, 55, 72,216,128,142,164, -115,231,142,100, 96,223, 14, 36,231,222,122, 18,218,173, 53,217,180,105, 19, 81,171,213,164,117,235,214,196,214,138,133,135,135, - 95, 38,132,196,142, 24, 49, 34, 22,192,177,240,240,240,216,212,212,212,216,208,208,208, 75,104, 60,245, 67,131, 12, 25, 50,196, - 68, 8, 33, 35, 70,140, 32, 0,114,195,195,195, 73,106,106, 42, 9, 13, 13, 53, 54,231,224, 89,211, 46,133,132,132,244, 30, 60, -120,240,187, 33, 33, 33,243,172, 73,239,208,132,230,163, 74, 66,205, 69,117,242,207, 32, 0,221,239, 47,129,247,203,184, 45,208, -124,158,207,231,111,115,112,112,248,197,222,222,254, 52,151,203,221, 10, 96, 50,154,151,223,140,115, 63,194,120,194,217,217,249, -110,231,206,157,117,195,134, 13, 35,195,135, 15, 39, 51,103,206, 36, 12,195,144, 61,123,246,144,143, 62,250,136,180,115,116,180, -172, 3,138, 54, 3, 47,128,165, 58, 97,233, 11,109,169, 51,207,182, 65,229,196, 54,208,188,216,142,178, 38, 97,105,120, 67, 70, -139, 97, 24,146,156,156, 76,194,194,194,170,100, 50, 89, 14,172, 79, 88,250,144,166,147,147, 83,140,139,139,203, 31,146,104,214, - 42,127, 40, 97,169,139,139,203, 5,119,119,119,181,179,179,243,181,250, 52,157,156,156, 98,220,221,221,213, 78, 78, 78, 15, 37, -247,228,114,185, 35,156,156,156,114,234,150,243,120,188,193, 46, 46, 46, 89,117,203, 27,216,119,184,185,185,101,229,230,230,146, -194,194, 66,226,237,237,157, 91,215,128,229,231,231, 63,100,192,172,209,108,170, 46,141,212,177, 94, 77, 43,142,105,115,206,123, - 13,126,158,158,158, 5,171, 87,175, 38,114,185,252,161, 41,207,254, 3, 94, 92,116,249,142,166,226,165, 5,155,246,212,147,176, -212,218,228,160,195,100, 50, 89, 78, 88, 88, 88, 85,114,114, 50, 97, 24,134, 48, 12,211,144,209,170, 79,243,137,238,221,187, 23, - 23, 21, 21,209,149,149,149,150,172,172, 44, 67,106,106,170,110,201,146, 37,166,194,194, 66,189, 70,163, 49,198,197,197, 25,220, -221,221, 11, 1, 60, 97,235, 57,106, 38,225,117,187,207,200,150,192,190,100,115, 96,116,226,251, 62,183,159,239, 41, 51,196,174, - 30, 65,200,233,183,200,165, 77, 47,145,222,190,194,106, 67,180, 37,224, 40,249,218,111, 0, 89,223, 86,104,149,230,182,118,253, -201,150,128,163,183, 22,251,220, 30,219,205,217,184,235,219, 45,228,238,221,187,228,224, 15, 59, 73,175, 54,247, 77,214,230,192, - 19,100, 83, 96,152, 53,154,245,153,173,175,190,250,138,220,189,123,151,252,244,211, 79,214,154,172,240,250,140,214, 59,225,242, -178,151,122,138, 13, 19,187, 10,141,163,131, 5,166,136,246, 2, 75, 31, 31, 30,221,197,157,195, 4, 58,131, 68,248, 75, 12,100, -179,255, 89,178, 57,112,152,181,245, 20, 10,133,153,168,149, 83,167,238, 34, 18,137, 10, 27, 49, 90,225, 77,154, 45, 63, 81,222, -169,143, 6,147, 81,157, 21,197, 86,154,172,166,174,165,174, 78, 78, 78, 69,223,124,243, 13,113,117,117, 45,180,210,100, 61,208, -140,138,140, 32, 25,247,142,144,159,246, 44, 35, 97, 3, 2,201,142,175,230,144,203,103,223, 39, 35,135,135,145,240,240,112, 82, - 84, 84, 68, 6, 15, 30, 76,108,173,167, 74,165,218,161,209,104, 98,143, 31, 63, 30, 27, 30, 30, 30,187, 99,199,142,216,115,231, -206,197, 74,165,210, 29, 53,193,137,186,102, 43,240,143,237,127,120,157,136, 86,108,101,101, 37, 57,126,252, 56, 9, 15, 15, 39, - 59,118,236, 32,231,206,157, 35, 82,169, 52,182,185,247,145,181,237,210,208,161, 67, 23,165,165,165, 85, 44, 94,188,120, 79, 61, - 9, 75,173,213,188,251,136,234,249, 72,218,144,191, 65, 83, 33,145, 72, 98,111,220,184, 65, 74, 75, 75, 73, 71, 87, 87,242, 9, -151, 75,178, 5, 2,146, 43, 16,144, 77, 64,201,191,192, 38, 77,107,168,235,240,207,166, 94,163,165,215,235,201,252,249,243,141, - 98,177, 88, 43, 16, 8,108,125, 4,207, 99,125, 17, 58, 57, 57, 93,112,117,117, 85,187,186,186, 62,100,246,106,151, 59, 57, 57, - 93,251,151,223,128,126, 2,129, 32,131,207,231, 63,252, 8,158,160,168,222,237,250, 78, 89,232, 26, 28, 53,188,133,245, 20, 8, - 4,130,119,196, 98,177,118,254,252,249, 70,141, 70, 99,139,209, 2,128,161, 82,169, 52,103,251,246,237,186, 59,119,238,152, 75, - 74, 74, 44,151, 47, 95, 54,199,196,196, 24, 63,248,224,131, 74,169, 84,154,131,134,211, 18,252, 37,199,147,172,111, 43,172, 49, - 91, 55, 23,250, 36,142,234, 40, 53,109,157, 27, 65,122,183,174, 99,178, 26,206,228, 94,191,230,125,179,117,253, 61,239,196, 48, - 63,185,101,217,194, 55, 72,175, 54,146,135, 77,150, 13,154,117,205,150, 84, 42,173,124,255,253,247,109,137,100, 61,108, 8,183, -249,123,147, 45, 1, 59,170, 77, 84, 19,203, 38,255, 47,201,231,254,222,255,148,251,168,167, 43,124,134,248,137, 18,108,136,100, - 89, 83,207,174,246,246,246,183,109,136,100, 61,208,252,252,243, 13,100,210,132,161,228,222,237,125, 68, 83,124,132, 92,187,184, -134,140,139, 10, 33,189,122,133,146, 45, 91,182,144,164,164, 36,210,163, 71, 15,210,140,122, 70, 76,159, 62, 61, 54, 53, 53, 53, - 54, 37, 37, 37,246,220,185,115,177, 99,198,140,137, 5, 16, 81,187, 39,168,198,108,153,198,141, 51,116,229,112,222,104, 66,243, -153,233,211,167,147,212,212, 84,146,146,146, 66,206,157, 59, 71,198,140, 25, 67, 96,219,227,123,154,213, 46,133,132,132,244, 14, - 11, 11, 91,216,173, 91,183,225,143, 74,243, 63,104,180,100, 99,199,142,101,104,154, 38,195,135, 15,167, 63, 3,202,182, 82,148, -122, 43, 69,169,183, 0,133,255,246,136,214,159,253,192,207,112, 0, 39,107, 23,136,197, 98,181, 94,175,119,150,203,229,251, 53, - 26,205,108, 84, 79,139,108,145,230,159, 81, 79, 86,243, 95,161,233, 46,151,203, 55,104, 52,154, 49, 98,177,184, 80,175,215,187, -218,160,105, 39, 18,137,222, 16,139,197, 97, 90,173,214, 15, 0,100, 50, 89,178,193, 96,248, 69,167,211,173, 5, 80,246,119,239, - 59, 89,223, 86, 8,161,176, 59, 8,222,142,205,172,106,179,236,120,137,207,220,193,246,153,125,218,201,210,192,103, 62, 5,101, -184, 66,189,144, 97,176, 89, 83, 66,133,130,230,191,125, 37, 93,219,250,211,159, 43,125,230,133,201, 51,251,180,149,103,130,224, - 83,136,180, 23,109,213,172,107,182,100, 50,217,246,170,170,170,151, 1,252, 98,235,190,147,189,129, 2, 84,153, 61, 97,230,118, - 4,105,228, 17, 62,132,104,193,225,198, 35, 31,106,234,131,219, 38,246, 62,170, 95,243,139, 47, 54,146,147, 63, 31,129, 65, 91, -130,188,130, 10, 76,154,252, 34,186,118, 13,129,147,147, 19, 62,249,228, 19,180,111,223, 30, 31,125,244, 17,213,140,122, 70,200, -229,242, 73, 1, 1, 1,109,111,221,186,149,162,213,106,191, 3,112,162,238,247, 79, 0, 16, 38,229,241,186,232, 44,150,179,183, -129,152, 38, 52,159,145,203,229,243, 2, 2, 2,130,111,221,186,149,160,213,106, 87, 3,216,205,182,117,143,135, 38,135,195, 89, -235,227,227, 51, 46, 45, 45,237,109, 0,187,240, 31,226, 47, 55, 90,172, 38,171,249, 24,106,214,220, 39,228,159, 86,207,223,205, - 22, 51, 27, 20,218,128, 80,217, 16, 48,235,154, 48, 89, 77,107, 74,168, 80, 88,120,175,131, 66, 43, 16,228,131,112,214, 54, 97, -178,254, 90,147, 9, 80,248,160,145,246,235, 3, 16,170,225,243,197, 94,243,245,176,104,209, 34,114,236,216, 49, 72,165, 82,232, -116, 58, 12, 27, 54, 12, 31,127,252, 49,197,182, 33,172,230, 95,168,249,175,132,199, 30, 2, 22,150, 38, 33,255,212,138, 81,175, -165, 24,201,222,192,171, 40,226,206, 7, 7,109, 0, 75, 6,170, 44,249,212,107, 25,198, 22,106, 94, 70, 17, 53, 7, 92,248, 65, -104,185, 7,141, 49,159,122,181,249,154,127,194, 47, 68,130, 15,254,185,231,229,113,164,174,169,138,137,137, 97, 15, 10, 11,139, -245, 76,195,195, 51, 13, 31,252,207, 26, 45, 22,150,199, 28,234,169,219, 38, 0,217,247,151,127,172, 38, 11, 11, 11,203,127,208, -112,129, 66,195, 3,218,108, 9, 9, 54,103,160,221, 73, 86,179, 89,154, 92, 0, 42, 0,118,168,206, 65, 82, 51,165,183,169, 52, - 27,195, 1,152,217,227,201,106,178,154,172, 38,171,201,106,254,205,154, 77,105, 63,142, 93,146,245,205, 50,220,250, 87,124,112, - 56,171,249, 72, 25,198, 30, 79, 86,147,213,100, 53, 89, 77, 86,243, 95,170,249,175,132,195, 30,130,199, 10, 49,123, 8, 88, 88, - 88, 88, 88, 88,254,113,132,220,127,117, 71,117,116,203,189,102,197,223, 58, 70, 75,226,216,193, 29, 60, 78,103,138, 33, 1, 0, - 64, 56, 84, 34, 44, 76,156,174,248, 78, 94, 75,181,229, 30,126, 14, 4,194,189, 20,140, 79,105,114,147, 91,156, 12,173,163,159, -114,156,171,147, 98, 82,126,113,249,246,132, 36,205, 1, 91,182, 85,169,124, 84, 98, 7,251,241, 6,147,185,163, 80, 32,200, 52, -149, 85,108, 45, 45, 77,169,108, 70, 53, 28, 26, 91,249,193, 7,132, 58,156,119,141, 18, 72, 77, 28, 71,165,128,210, 64, 67, 52, -121,114,198,183, 44,141,252,240,195, 83,196,214,115, 67,113, 48, 72,166, 80,116, 19,137,165,161, 82,133,125, 7,134, 0, 37,234, -156,116,163,217,114,142, 54,106, 99, 9,131, 95, 31,197,185, 98, 97, 97, 97, 97, 97,249, 23, 24,173,107, 0, 70,162,186,203,176, -233,193,240, 62, 65,253,174,138,197, 18, 95, 0, 96, 8, 1, 67,128,170,138,178,216,252,148,152, 97, 0,224,212, 58,228, 56, 95, -172,236,198,144,234,245, 52, 3, 88, 76,250,180,138,140,203, 61,172,169,145,204,217,111,236,224,240, 33,227, 34, 35, 71,250,119, -234,216,169, 29, 0,220,140,191,121,239,240,225,232,164,211, 39,169,125, 85,133,201, 63,181,100,143, 9,196, 31,119,239,222,181, - 95, 76,204,181,143, 0,204,108,233, 17,116,116,148,207, 62,241,227,252, 1, 67,198,173,146, 1,182, 25, 45,177,131,253,248,209, -163,158,232,250,230,107,211, 57, 47,205,255,196,247,234,249, 95, 87,200,221,131,203, 8, 99, 62, 81,165,158,240, 91, 99, 15, 78, -174,235, 31, 27, 50, 88,223,149, 28,227,172,251,166,183,189,174,228,222, 4,194,208, 19, 40,138, 2, 87, 40,253,193,185,109,191, - 61,118,131,230,150, 2,176,122,198,152,210, 61, 40,220,197,221,107,223,132, 23,223, 16, 75, 85,174, 60,112, 5, 0, 40,228,166, -223,198,233,221,203,236, 95,255,240,171,144,243,113, 25,150, 83, 63,110,212, 83, 2,254, 56,109,222, 45,118,138, 47, 11, 11, 11, - 11,203,127,153,232,251,230, 42,186,238,138, 6,141,150, 88, 44,241,189,244,235, 97,135,159,206,101, 1, 0,194, 67,220,240,238, -146, 13, 17, 59,214,199, 36, 1, 64,239,193,145,126, 31,189,243, 26, 46, 36, 20,128, 16,130,174,237, 29, 49,124,244, 83,214, 25, - 15,215,192, 30,227,199, 63,249,236,252,249,243,162,238,222,189,155,190,107,215,174,223, 0,160,255,128, 1,237, 63,249,228,147, -167, 87,217, 59,136,190,255,225,199, 28,189,250,246,213,230,236,173,216,163,173,167,127,135, 54,147,190,255,122, 3,103,208,176, - 39, 39,166,163,106,153, 62, 55, 37,199,154,109,157,156,156,230,240,249,124, 21, 80,253, 52,246, 26, 76, 38,226, 6, 0, 22,154, - 81,216,123,248, 87,114, 5, 98, 90, 36, 18,220,170,212,104,182, 87,228,220,222,214,152,166,193,108, 14,126,253,213, 23, 56,215, - 83,138,225, 27,220,159,187,110,217,123, 96,104,179,253, 27,239, 44, 25, 31,115,249,123, 84,169,113,198,202, 93,227,215, 45,240, -244,236,197,253,120,153,124, 40, 69,225,121,159,222, 47,142,249,232,219, 31,248,221,219, 43, 97, 48, 51, 56, 26, 91,220,123,211, -218,143, 87,158,223, 52,242, 16,128, 45, 0, 78, 1,104,210,212, 57, 56, 58,124, 55,103,225, 90,121,149,241,247,217,222,247, 77, - 22,190,220,190, 23, 55,178, 24, 4,248, 7,240,220,230,172,144,111, 89, 50,237, 91,109,245,115,182, 88, 88, 88, 88, 88, 88,254, -171,228,225,225,193,239, 91,155, 52, 90, 0, 32,151,240,144,148,154, 15, 0,176,147, 0,179, 95,153,130,226,162, 66, 63,163,133, -193,139, 83, 38,227, 90, 98, 30,146,210, 10, 65, 8,129,159,151,213, 15,225, 6, 23, 76,247, 23,167,190, 56,240,248,137, 19, 87, - 22, 45, 92,244, 63,138,194, 69, 0,216,178,245,203,222,139,223, 95,252,242,228, 41,147,135,254,240,195, 15, 9, 0,154,101,180, -120,148, 98,195,202,229, 75,133,217, 69,122,253,156,249,111, 51,243,230,206, 89, 7,224, 73,171,156, 12,159,175,202,206,206,150, -115, 56, 15, 15, 95,251,116,233,219,103,135,142, 91,117, 39, 61,179,236,250,241,131, 7,123, 4, 5, 5, 33, 59, 39,191,239,138, -207, 54,119, 57,122, 92,242, 66,101,133,110,156,182,232,118,189, 15,109, 22,241,249, 9, 31,174,216,212,149,177,107,207,121,247, -229, 17, 8,110,231,129,156,130, 50, 12, 24, 22,197,139,189,122, 53, 2,176,218,104,213, 77, 30, 56,222,200, 20,116,249,100,251, -229, 33, 99,250,120,116,231,112,184,208,232,204, 40, 44, 55,128,102,128,254,129, 42, 60,177,227, 51, 94, 73,149,121,236,146, 31, -179,198, 94, 92, 31,169,214,151,231,206, 2,176,175,241,143, 33, 14, 94, 46, 74, 36,101, 85,214,107,178,170,244, 22, 0,128,128, - 75,131, 2,113,100,239, 47, 22, 22, 22, 22,150,255, 56, 13,206, 58,228, 0,192,225,195,135,235, 29,191, 67,211, 4, 73,105,121, - 72, 74,203,195,149,196, 66,152, 8, 31,235, 86,124,136,213,203,222, 71,137,142,131,159, 46,100, 33, 57, 45, 31,201,105,249, 40, - 42,213,212, 39,241, 80,151,210,170,101,146,144,181,107,149, 43, 35, 6,200, 6, 57,216,219,219,223, 73,248, 95,213,226,185,234, -192, 15, 95,207, 18,240,141,162,108,153, 92,214,103,239,222, 61, 65,174,206, 46, 50,185, 92,241,150,212,179,203, 87, 42,213, 31, -158,148,222,104, 55,149,196, 37, 32, 42,106,228, 19,131,221,220, 92,153,233,235, 98, 19, 59, 6, 6,152, 59,180,239,208, 87,226, -210, 33,170,145,205, 30,104, 50, 12, 3, 14,135, 3,181, 90,141,220,220, 92,164,166,166, 34, 57, 57, 25, 89, 89,233,106,134, 16, - 62, 13,134,227,238,238, 5, 30, 79, 8,223,214, 62,216,180,110,153,116,201, 7,239,134,138,101,194, 3,117,140,208, 3, 77,125, - 73,233, 15, 71,142,157,200, 57,186,107, 19, 13, 0, 5,165, 26,156,190,122, 23,215,110,101,217,122, 34,235,166,112,104,157,147, -113,183,194,146, 22,205,253,232,189,121, 89,231,206,157, 79, 47,175, 52,162, 82,107,130, 86,111,134,193, 72,195, 76, 51,240,113, - 22, 99,255,219, 29,113,240,151, 56, 87,138,162,214, 54,117, 60, 13, 6, 51,221, 47, 64,134,137, 97,173, 16,224, 37, 67, 78,210, - 69,204, 89,184, 22, 49,169, 6,148,150,150,193, 92, 85, 4, 70,147,141,162,180,107,176,208, 52,105,234,188, 63, 34, 88, 77, 86, -147,213,100, 53, 89,205,127,177,102, 67, 94,228, 49, 97,107, 61, 11, 30, 24,173,134,184,151, 85,130,164,212,124,116, 11,240, 68, -187,214,238,184,146, 92,138,239, 78,103,225,171,227, 25, 56,125,163, 16, 12, 79,129,252, 10,224, 78,186, 26,119, 50,138,154,204, -159,205, 21,241, 39,188,254,122,249,252, 78, 65, 21,189,126, 61, 58, 27,158,206,119,130, 22, 44, 40,155,205, 21,241, 39,216,183, - 82,236,122,123,254, 27,147, 20, 82,169,208,104, 48,162,109, 27, 31,241,107,179,102,191, 64,217,139,172,126, 38,146,194, 51,208, - 94, 36,145,108, 91,242,193, 91,162,181, 63,221,201,172, 50,162,106,223, 69,117,202,188,183, 23,151,240,248,226, 77, 10,207, 64, -123,107,181,204,102, 51, 12, 6, 3,140, 70, 35, 76, 38, 19,114,178,110, 71,157,250,233,205, 97,109, 90, 57, 12, 19,137,197, 32, - 0, 42,116, 22,164,230,105, 17, 54,100, 40,183, 91, 72, 72,176,220, 61,112,106,125, 90,229,229, 25,229, 12,225, 42, 14,239,223, -201,221,243,243,117,252,239,240, 85, 28,248,229, 58,174,156, 57,106, 33,140,249,193,243,191,228,238,237,253,228,238,157, 50,228, - 30,157,213, 15, 22,207,142,141,166,103,230,114, 57, 36,108, 72,248,201, 87,102,190,246,171,182,178,184, 96,219,134, 15,115, 10, -115,211,111,139, 4,148, 69, 42,226, 66,163,183,224,219, 83,185, 24,191,236, 6,110,101,106, 64, 8,105,242, 1,222, 12, 48,119, -194,212, 55,105,179,201, 4,127,111, 57,118,110, 93,142,168,176, 46, 24,220,201, 30, 61,218,201, 32,229, 25,144,144,152,132,221, - 59,191,181, 48, 12,103, 30,251, 67,134,133,133,133,133,133,141,104, 61, 88,220,107,175,104,176,235, 80,175,215,165, 61, 57, 97, - 50,220, 93,220,228,163, 7, 61, 47,136,189, 87,134,194,188, 12,220, 77,142,135, 86,111,134,192,190, 13, 32,118, 67,107, 95, 31, -196, 37, 29, 48,173, 95, 25,173, 97, 44,134,180,134,244,162,162,220,189,238, 38, 82,156,149, 43,188, 47, 37, 39,149,118,219,185, -240, 27, 60,251,172,220,105,229, 10,239, 75,233, 41, 50,142, 84, 76,250,188, 48,101, 34,197,161, 8, 22, 44,152,143,209,145, 79, -224,197, 23,158,163,182,111,255,182, 87,153,149,123,201,128,255,249, 59,239,125, 40, 84,151, 89,140, 87,146, 53, 6,169, 76, 34, - 57,127, 71, 83, 21,236,235, 45, 25, 49,238,249,220,232,189,219,214, 2,152, 98,141, 86,141,193, 50,155,205, 48,153, 76, 0, 64, - 3, 0,135, 83,253, 90, 92,105, 68, 65,153, 1,234, 50, 3, 44, 52,131,113, 19,166, 72,174,198,220,152, 2,160,129,241, 90, 12, - 99,182,152,177,239,231,107,200,185,250, 3, 67,113,184,229,181, 6,195, 67,238,222,222,207,205,205,251,108,228,184,231,156,133, -226,234,110,216,202, 42, 3,182,111, 94,209,104, 61, 57, 20, 69, 24,218, 82,102, 49,155,171,218,182,105,155, 19, 16,212, 69,124, -238,215,227, 81,231, 79,238,211, 88,218, 62,103,119, 47, 61, 15, 92,190, 8, 92,129, 24, 6,147,117, 63, 22,212,119, 47,109, 4, - 64, 77,157, 49,127,221, 27,111,190,203,157,187,254, 55, 24,245, 90, 24,116, 85,168, 40, 47,133,132,103, 70,194,133,131, 22, 66, -155,223,168,202,187,190,145,189,191, 88, 88, 88, 88, 88,254,227,212,125,252,206,131,178, 6,141, 86,198,173,115, 61, 0,192,175, -123, 68,177, 92,204,115,224,113, 40,168,179,239, 97,251,170, 57, 96, 24,130, 17, 47,175,132,194,215, 13, 18, 1, 23, 6, 77,177, -166,228,222,153, 70,199,234, 80,148,121,232,198, 45, 57,190, 51, 94,109,171,220,185, 83,195, 7,128,157, 59, 53,252, 87,167,183, - 82,126,177, 37,205,183,103,191,110, 32, 52,141,200,209, 79, 98,194, 51, 19,144,158,175,197,143,103, 51, 81,165, 51, 90, 53, 91, - 78,226, 20,208,197,201,209,249,137,215,159,127, 66,198,227, 82, 84, 7, 31, 21, 55,171,208,108,225,114,249,244,161,171,229,185, -227,198, 61,227,116,250,200,158,193,180, 83, 64, 23, 93, 81,226,141,166,244, 12, 6, 3,104,154,134,193, 96,128,217,108,134,131, - 83,155, 35, 67,159, 92,149,157,151, 95, 25,157, 95,170,239, 89,101,182, 64, 93,102, 64, 65,153, 1,101, 85, 38,184, 41,236, 97, - 49, 27, 59, 53,164, 71, 8,249,223,152, 39, 39, 63, 7,128, 67,113, 44,223,104,242, 18,147,171,215,252,110,178,158, 24,253,172, -243,217,216,123,184, 27,115,180,148, 48,150,234, 44,238, 20,147,221,248,113, 5,225, 82, 96, 4, 60,202,204,229,112, 24,147, 73, - 99,118,113,113, 62,125,230,244,177, 81,122, 75, 10,184, 2,209,131,247,234,140,180,213, 87,140,250,238,165,207, 1,224,179,245, -235, 86,247, 25,250,172,224,204,181, 52,232,204, 64,239, 16, 63,236,255,254, 75, 3, 33,230, 55,171,242,174,127,206,222, 91, 44, - 44, 44, 44, 44, 44, 15, 25,172,104, 84, 15,142,127, 56,162, 85,211, 55, 26, 25, 25,249,135,167,181,231,168, 75,224, 40,231,193, -217,195, 23,147,230,172,198,255,214,206, 5, 77,155, 65, 8, 96,161,173,203, 76, 64, 8,255,231,153,175,250, 6,180,246,229, 58, - 79,122, 86,170,251,110,167, 86, 50,233, 89,169,174, 99, 39,199,242,153,175,250,166, 85,234,189,251, 90,104, 26,231, 19, 10, 16, -159, 86,142,248,244, 10,200, 37,214,167,249,226, 10, 5,175,174, 88,190, 76,192,227, 82, 84, 66,134, 70,147, 93,108,209,112,249, -124,147, 84, 34, 36, 70,194, 51,164, 23,145,226, 33, 99, 94,208, 29,218,241,217, 84, 0,179, 26,210,169,153,105, 88, 19,201,170, -121, 37,132, 16, 10, 96, 24,138,166,179,139,244,208,152,204, 80,151,254,110,180, 40, 75,195, 61,167,114,247,246,126, 74,133,252, - 24,151,203, 21, 17, 2,152, 77,150,167,225,222,126,152, 38,239,110,114,109,147,117, 41, 33, 23,247,174,159, 84,211, 38,237,100, -109, 65,210, 41,107,247,157,162, 64,184, 92, 48, 92, 14,197, 80, 20, 24, 62,135, 24, 65, 8, 83,183, 70, 90, 27,140, 86,141,217, - 18,242,185, 11, 79,236, 94,235,242,226,200, 64,124,127,182,218,243,233, 43, 11, 43,170,114, 88,147,197,194,194,194,194,242,104, -105,204,139, 60, 70, 81,173, 63, 70,180, 26,219, 33, 66,128, 59, 25, 69,104,237,229, 12,175,214,237,144,124, 59,238,247,117, 0, - 44,180,117,221, 81, 7, 15,230,101,175, 94,173,100,230,206, 45,239,189, 98,133,247,197, 87,167,183, 82,117,236,228, 88,254,214, - 91,153,189,215,172, 81, 93,252,249, 18,159, 38,247,243,117,213,228,230, 34,196,150,113,113,156,208, 46, 65,109,184, 31,238,188, -147,121,234,102,101,129, 64, 32, 48,187,217,139, 41,133, 92,200,229,114,248, 66,131,153, 99,240, 11, 14,225, 30,226, 80, 33,141, -169,212, 24,173,186, 93,135,197,133,247,162, 78,252, 56,191,227,160, 49, 43, 29,114, 10,117, 40, 55,114, 31,116, 29,114, 57, 20, -110,222,206, 0,184,130,248,250, 52,149, 10,135,227,187,190,251,159,247,154, 21, 75, 97,178,208,152, 57,119, 17, 94,152, 50,249, - 56,220,219, 15,243,246,245,143,253,237,208, 55,210, 97,211, 55, 33, 35, 41, 38,223, 98,168,216,109,139,201,122, 96,182, 0, 66, - 19,134, 83, 82, 90, 33, 55, 88, 32, 70, 61,190,207, 96, 98,154,117,229,104,116, 22, 28,186,156,143,195, 63,237,134, 74, 33, 99, - 91, 2, 22, 22, 22, 22,150, 71,206, 99,106,174, 80,199, 92, 1, 13, 69,180, 26,195,199,203, 21,151,227,211,208, 41,160, 13, 84, - 74, 5, 18,239,101,131,203,225,131, 67, 1,102,139,245,102,136,152,204,223,175, 89,163, 66, 70,154,140,243,197,166, 52,223,153, -175,250,166,173, 89,163,186, 72, 76,230,239, 1, 76, 38, 4,168, 54, 91,213,134,139,182,193, 23, 16,198,220,202,213, 65,202,141, - 73,169, 42,230,112,184, 6, 71,149,152,113, 84,137, 56,142, 10, 33, 95,192,231, 50, 22,194, 49,121,185,248,234, 9,195,116,177, - 70,175,118,215, 33, 77,211,160, 40, 14,125,223,136,201,178,138,117, 40,215,115,161, 46, 51,160,180,210,132, 14,158, 50,156, 60, -253,131,150, 54,235,118,214,167,197,229, 11, 84,237,124,189,240,238,199,107,160, 51,208,184,147,163,129, 64, 36,114,115,117, 11, -190, 49,121,198,219,162,215,182,222,195,212,193,142,152,251,219,189, 28,173, 90,252,182, 45,103,150,166,105,232,244, 70,129,186, -168,212,190,162,178, 74, 41, 17,139,116,206, 14,170,162,250,222,171,183, 49,162, 85,131, 84,204,195,168, 94,110,208,155, 38, 66, -103,176,224,194,169,125,108,139,192,194,194,194,194,194,242, 59, 13, 62, 64,218, 42,163, 37,151,138, 65,184, 98,252, 22,123, 15, -254, 65,157,241,237,193, 43,104,223,169, 23,242, 42, 45, 32,224, 52, 57,219,176,134,249,239,232,174, 1,184, 22, 21, 37,245, 26, - 59,214,115, 40, 33,252,159, 55,109,169,200, 6,128, 54, 29,171,101, 24,134,128, 16,128, 48,213,134,203,106, 40, 94, 70, 90, 94, - 69,107, 95, 55, 25,110,101,155, 12, 50,145,128, 99, 47, 19,114,157, 85, 66,129,128,199, 3, 77, 40, 67, 94,222, 61, 3, 5,164, - 91, 35, 87,183,235, 80, 42,119, 63, 50,100,204,202,194,244,204,242,152, 14, 37,218, 46,229, 38, 33, 8, 1, 58,120,202, 16,127, - 41,154, 86,231,220,189,163, 83, 39,109,174, 79,139, 97,192, 53, 89, 24,220, 72, 41, 71, 89,149, 25,101, 26, 19,250,134,141, 18, -244, 13,143,194,111,241, 69, 96, 44,102,172,248, 50,186,146, 38,230, 9,192,109,179, 13, 59,205,185,124, 45,193,171,176,180, 74, -196,231,241,202, 2,218,251,164, 10, 5,124, 75, 69, 69,133,240,225,119,113, 33,147, 8, 81,162, 49, 3,128,217,214,171,167,188, -202,140,131,151,242,113,104,223, 46, 72, 36, 18, 16,246,134, 98, 97, 97, 97, 97, 97,169,141, 59,170, 31,191, 19,125,255,245,129, -249,250, 63,123,231, 29, 30, 69,181,134,241,119,102,182,151,244,100,211, 72,232, 36,244, 14, 9,189, 19,169,130, 32, 69, 4,165, - 90, 64, 17, 16, 84, 84, 58, 92,122, 21,165,137,244,222,171, 16,186,244, 18, 8,144, 0,105,164,103, 83,119, 55,219,119,102,238, - 31,155, 80, 83, 54, 4,175, 94, 61,191,231,201,179,153,205,238,155,153, 51, 51,103,222,243,157,239,156,227,208,162,210, 44,199, -195,211,195, 29, 82,133, 51,226,210, 45,208, 82, 42,228,232,121,176,172, 61,162, 85, 66,224,169,200,213,189, 15, 30, 76, 77, 58, -112, 32,115,253,193,131,169, 47, 36,122, 63,143,100, 61,123,229,120,135, 53, 41,158, 61,117,240,216,217,188, 94,205,189,220,104, -134, 49,136,132,180, 73, 32, 98, 44, 34, 1,109, 21, 9,104,179,183,179,144, 57,123,104,187,152,167,112,182, 52, 77,163,209,136, - 78,157, 58,161, 91,183,110,232,221,187, 55,250,247,239,143,160,160, 90, 42,154,161,204, 60,197,113, 94, 98, 45,170,121, 81, 16, - 24, 19,113,122,251,127,244,247, 46,237,191,195,154,140, 61,241,178,229,124,174,201,243, 92,118,158, 9, 70, 11,139, 28,157, 5, - 57,249, 22,216,188, 66,177,255,143, 20, 24,204, 44, 18,110,238, 54,168,211,146,190, 48,101, 60,142, 43,229, 84, 76,126,121,147, - 79, 26,241,241, 80,181,147,148,126,220,186, 69, 83,181,167,135,187,141,162,158, 71, 94, 41,138,130,212, 89, 5, 55, 87, 39,196, -221, 58,134,147,243, 59, 26, 0,124,231, 72,121,190,136,179, 92,128, 94,205,125,208,179,239, 32,212, 11,233,234,136,177, 38, 43, -218, 19, 77,162, 73, 52,137, 38,209,252, 55, 81,184,198, 97,225,171, 99, 51,195, 23, 26,160,170,190, 10, 84,247, 87,192,104, 81, -193,104,102,145,111,100,161,209, 91,160,209, 91, 17,151,166,199,189,131,229,223, 67,123, 20,203, 62,227, 39,207, 3,160,236, 6, -207,209,232,137,216, 98,158,185,104,254,156,247,183, 55,106,104, 30,215,221, 55, 32, 34,206,156, 66, 81,180,129,102, 4, 86,119, - 39,129,240,225,195, 8,245,229,243, 71,219, 72,109,236,135,250, 18,116,108, 54, 91,158,191,191, 63,128,151,151,224,169, 85, 77, -214,251,210,145,201, 85,218,246,154,239,181,100,246, 68, 61,205,136, 56, 74, 32,186,199, 90, 13,219, 12,233, 81,171, 81,130,253, -160, 69,210, 7, 87,111,223, 15,113,117, 15,192,227,228,124,228, 27,109,176,216, 56,184, 41, 69, 72,186,123,194, 18,247,240,198, - 78, 93, 74,196,198, 55, 40,182,173,209, 15,238, 85, 8, 11,235,250, 94, 72, 72, 40,243,195, 15,223, 35, 56, 56, 24, 6,131, 1, - 52, 77, 35,160, 82, 53,196, 69,223,198,149, 35, 51, 89,125, 86,252,207, 0,102, 0, 80,151,245,159,100,106,204, 56,118, 35, 3, - 71,246,237, 0, 35, 20,147,219,137, 64, 32, 16, 8,132,215, 25,245,202,235, 26,135,140,150,209,104,140,107,213,169, 39, 56,142, - 7,203, 3, 28, 91, 16,121,226,158, 71,159, 88,171, 49,174,188,123,199,113,236,181,149,107,214,119,107,212,172, 45, 83, 59, 80, - 9, 77, 86, 26,174, 92, 58, 99, 3,199, 95,118,228,251, 89, 89,143,116, 50,239,234,239,189,223,175,207,174,161, 31,143,201,109, -211,190,189, 66,165,242, 49, 37, 37, 39,233, 55,108,222, 98, 61,113,244, 64, 27, 14,182,129, 89, 89,143,117, 37,233,228,229,229, - 45, 43,234,125,137, 88,217, 18, 64, 21, 70, 64,153, 13,234, 71,101,202, 8,207, 76, 78,236, 59,103,230,180,248,193, 35,199,139, -171,250, 87, 67, 70, 30,131,184,164, 52, 60, 60,127,192,148, 28,125,125,159, 38,233,214,112, 7,165, 82,139,120, 47, 9,192,146, - 43, 87, 46,215, 9, 11, 11,235,218,161, 67, 7,126,212,168, 81,224,121,224,244,154, 79,248,236,184, 43,187, 97,143, 98,197,188, -225,121, 73, 56,127,249,182,123,255, 54, 77, 4, 30, 78,195,177,126,199, 81, 43,120, 46,129,220, 79, 4, 2,129, 64, 32, 60,227, -205,115,180, 18, 31,216,231,211,250,179,209,166,101, 12,217,184,113,211,172, 77,155,183,183, 52,154,205,254, 60, 68,137,172,205, -124, 78,199,226, 7, 71, 53, 12,233,143,111,120,120,212,168,187, 97,237,202,239, 54,172,255,169, 45, 56,182, 38, 5,196,243, 20, -206, 74,173,236,208,210, 76, 86,137,102, 41, 83,251, 75,231,247, 22, 26,178,178,116,155,202,250, 93, 67, 86, 84, 26,205, 88, 2, -126, 89, 58,115, 1, 77, 51, 93, 88,150, 19,114,172,245, 49,107, 49,254,199,160,142, 58, 8,135,179,220,144, 93,194,223, 34, 1, - 68,134,135,135,183, 14, 15, 15,111, 6, 96, 25,236,107, 40,222, 40,207,121, 49,101,105, 59, 78,154, 56,233,244, 4, 80, 21, 57, -142,135,141,229, 18, 68, 6,125, 71,114, 79, 17, 8, 4, 2,129,240,140, 81,120,125,210, 82,199, 34, 90,255, 43,114,114, 98,180, -200,193,184,242,234,100,101, 61,210, 1,120,109,228,158,190,156,186,247, 30,105,246,224,145,102,207,155,126, 63, 63, 35, 86, 13, -196, 14, 45,231,110, 56,146,200,126,161,224,231,173,144,153,249, 32, 31,153,104, 78,238, 33, 2,129, 64, 32, 16,202,108,184, 28, - 75,134, 39, 16, 8, 4, 2,129, 64, 32,148,106,178, 94,124, 5, 96,207, 61, 47,110,228, 64, 89, 86,230,126,147,209, 7,167,136, -102,185, 53,133, 0,196, 0,148, 0, 74,235,210,236,138,130,245, 26, 73,121, 18, 77,162, 73, 52,137, 38,209,252, 11, 53, 75,211, - 62, 5,194,159,106,192,136, 38,209, 36,154, 68,147,104, 18, 77,162,249,239,211,252,127,102, 84, 17, 63, 0,254, 70, 57, 90, 4, - 2,129, 64, 32,252,175,240,240,168,161, 4,158,229,245,150,138,220,179,150, 55, 0,232, 51, 31,164,147,210, 35, 20,193,139,235, - 28,190,149, 28, 45, 33, 45, 16, 79,146, 59,121, 60, 80,184,120, 36,255,203, 11,151, 10,170,164, 24,219,185, 77,229,253,193, 85, -100,189,203,242, 69,185, 87,208,175, 62,213,154, 63, 85,168,130,198,194,183,145,172, 60, 59,161, 80, 85,241, 82, 6, 52,185,228, -228, 95,231,157, 63,225, 24, 37,181,107,215, 14,173, 93,187,118, 40, 0,201,219, 16,148,171,130, 6, 85,168, 30,114, 94, 85,181, -225, 25,133,119,141,126,111,123,135,149,190,213, 61,148, 1,141,247, 40,253,234,231, 40,125,235,107,148, 21, 26,159,115,242,172, - 85,181,180,239, 5,244,154, 83,115,250,182,123,219, 2,122,205,169, 89,212,223,221,194,150, 59,253,184,253,209,108,143,158,255, - 81,146,122,229,205, 8,104, 57,200,213,183,237, 4,143,178,126,207, 63, 40, 36,178, 82,157,214, 25,126, 53,154,223,115,244, 59, - 21,130, 67,111, 85,172,221, 50,189, 66, 80,232, 13, 82,242,142, 33,245,170, 18, 42,117, 11, 60, 34,113, 11, 60, 42,113,175,210, -190,188,122,190,190,190,178,154, 53,107,134,133,132,132,140,238,216,177,227,151, 13, 27, 54, 28, 85,177, 98,197, 46,127,101, 67, - 95,174, 10,250,198, 36,164, 50, 77, 66, 42, 83,174, 10,250,166,244,250, 53,120, 22, 69,179, 41, 20,205,166, 40, 84,193,179,254, - 46,231, 74,226, 29, 84, 81,174, 10, 90,236,228, 83,251,154, 76, 85,163,103, 89,191,239,230,230,214,197,203,203,235,221,194, 31, - 55, 55,183, 46,228, 14,120, 99, 94,140, 98,149, 59,162,197, 8, 37,242,139,131, 63,254,172,238,188,105, 83,164, 75,215,239,199, -210,217, 19,239,155,242,115,107,255, 29,143,220,179, 74,179, 27, 12,205, 84,120,241, 61,150, 99,147, 50, 99,175, 53,121, 27,250, -193,149,100,195,191,251,122,200, 87,131,222,239, 84,177, 83,143, 47,168,168, 88,195, 1,199, 45, 26, 26,236,220,179, 47,224,252, -217, 51,203,215,175, 95, 51, 67,109, 11, 94, 44,148, 8, 86,106, 18, 35,115,203,178, 15,206, 94, 85,171, 8, 20,158,231, 91,245, -254,204,231,230,169, 45, 27, 89, 51,215, 89,159,249,194,234,223,111,142, 87, 50,102,230,242, 0, 0, 32, 0, 73, 68, 65, 84,181, -106,213,154, 50, 12,227, 49,118,236, 88, 17, 0, 44, 89,178,164, 58,203,178, 89, 79,158, 60,185,142, 55,152,252,212,110, 48,131, -135, 44, 91, 48,125,211, 59,239,116, 67, 74,102, 62,230, 47, 94,213,238,248,225,157,253,243,211, 31,237,126, 27,231,196,213,181, -178, 51, 68, 78,119,191,248,122,134, 42,172, 93, 83, 70,103,180,225,248,249,219,173,183,172,154,113, 13,168,213, 76,155,249,160, -216, 57,197, 56,125,222, 84,111, 37, 31,198,233,243, 0, 96,208,107, 15,123,165,181,147,151,140, 13,243,149, 8,110,103, 1,165, - 46,250,232, 90,169,229, 9,161, 68, 82,145,166,105,208, 20, 64,211, 20, 24,138,178,175, 19,106, 49, 36, 36, 63,188,208,245,239, -112,159, 56, 5, 54, 75, 3, 35,240,160,169,231,251, 71,209, 5,175, 60,175, 73,123,116,209,227, 45,252, 27,151,186,213, 93,235, -180,172,158,191,225, 92,108,182, 66,208,230,203, 35, 20, 79,255,244,244,194,226, 59, 14, 25, 0,169,212,237,208,161, 67, 94, 97, - 97, 97, 46,170, 58,189,207, 57,242, 29, 49,163,171,125,248,240, 65, 81, 88, 88,215, 50, 92,159, 65,157, 65,211,155, 41, 64,200, -113,252, 18,134,227,119,234,178,162,159, 0,101, 91,125, 74,166, 10, 30, 78,131,119,184,158,225, 64,221, 48,100, 68,173,127,211, -194, 21, 72,156, 59, 10, 69,162, 47,171, 4,213,107,148, 28,255,248, 70,190, 78,187,216,102,202, 59, 87,102, 33,171,109,210,169, - 11, 55,223, 17, 8,133, 84, 88,199,230,140, 9, 56, 83,158,147,238,237,237,253,238,138, 21, 43,170,134,134,134, 2, 0,108, 54, -155,243,174, 93,187,124,102,206,156,169,136,142,142,126,211,133, 83,253,189,188,188, 2,197, 98,177, 63, 0,152,205,230,100,181, - 90,253, 20, 64,169, 13,127,133,119, 85, 79,240,152,113,225,252,121, 1, 0,180,110,221,102, 86, 96,171,207,221, 24,145,210, 80, -100,113,152,181,138,220, 39,103,198, 95,185,122,153, 2,128,144,230,161, 83,228,158,181, 86,254,149,145, 45,169, 42,184, 57, 13, -124, 21,210,186, 83,223, 1, 3,135,208,117,106, 4,162, 75,231, 14,147, 13,192,161, 50, 93, 51, 2,129,236,218,181,107,213,104, -154,102,108, 54,155, 49, 36, 36,228,105,121,246,203, 47, 40,244, 15, 10,116,128,197,102, 94,171,142,185, 49, 11,120,109,225, 24, -198, 37,160,209,119, 96, 4, 35, 57,142, 75,212, 62,189,209,226, 31, 24,209,122,189,156,203,170, 68, 11,196, 95, 14,250,232,211, -186,227, 39,124, 43,253, 98,105, 56,142,172,154,146,249,119, 53, 89, 0,192,208, 76,133, 19, 39, 79,168,228, 98, 6, 0,160, 51, -218,240, 78, 88, 88,233, 79,132, 74,205,206,210, 20, 21, 92,184,160, 13,107,179, 72, 5, 66,177,145,178, 27, 36, 80, 0, 60,253, - 42,133,123,219, 46,202, 7,189,223,169,226,230,237,191, 39, 61, 77,202, 42,115,165, 70, 49, 34,132,180,233,130, 78,157,187,186, - 92,187,250,199,140, 53, 63,175,254,198,102,177,174,230,172,220, 98, 99,246,227,148, 82, 43,115,159, 26,141,197, 74,207,227,125, - 71,207,244, 48,210,238,248, 97,246, 50,207,243,199,182,158, 75, 78,108,192, 37, 36, 36, 26,121,138,186,159,147,157,250,101,126, -218,147, 40, 71,139, 76,169, 84, 86, 85, 42,149, 13,234,215,175, 47,157, 56,113,162,176, 93,187,118,207, 45,251,168, 81,162,179, -103,207,250, 46, 92,184,176, 91, 68, 68,132, 81,167,211,221,209,233,116, 49, 40, 67,162,189,143,143,215,231,239,245,233,137, 14, -125, 63, 3,203, 81, 24,245,233,120,156, 56,182,119, 12,128,183, 98,180,172,114,231,153, 35, 71, 79,244, 10,105,218,144,153,177, - 53, 10, 50,177, 0, 93,155, 4, 83, 31,141,157,234,186,126,249,140,117,200, 68,219,162, 34, 89,156, 62,111,106, 93, 79,243,192, - 94,161, 85,112,112,155,121, 32, 58,126, 13, 90,238, 50, 43,241,224,183, 15, 1,160,106,216, 88, 39, 9,171, 94,225,231,202,168, - 36,172,122, 69,213,176,177,167, 98,142,175,208,150,180, 47, 66,137,164,226,182,173, 91,107,184, 57,137, 32,160, 41, 48, 12, 5, - 1, 67,195,104,102,209,255,253,129,111,237, 50,151,169,106,116,163,129,143,236, 15,108,252,106,200,120,116,180, 44,231,132, 98, - 68, 30,135, 15,238, 19,168, 92, 36, 96, 24, 10, 12, 13, 48, 52,133,248,116, 3,134, 15,255,200,165,188,134,253,157,150,170,166, -147, 6, 4,119, 13,169,235, 94,127,199,101,202, 37,228,157, 1, 30,153, 70,249,176,237, 7,206, 12,228, 91,143,191,202,243,220, -130,164,139,203, 78,150, 36, 98, 50,153,210,187,134,189,227, 76, 9, 20,242, 83,251, 55,182, 17,208, 20,172, 44, 15, 27,203,131, - 45, 88, 27,149, 42,104,193,208, 52, 5,158,227, 49,114,228,112,116, 13,123, 71,207,217,184, 36,199, 43, 57,122,243,241, 83,151, -188, 76, 86, 14, 11, 87,172,159,145,159,167,158, 17,251,208, 35, 94,151,151, 57,222,144,241,200,225,117, 48,104,240, 77, 18, 99, -238,141,222,122,248, 10,234,214,174, 5,150,179,239,103,112, 5, 5,182, 30,185,130,154,193, 53,237,251,205,241, 8, 10, 80,162, -105,147,166, 0,240, 70, 70, 75, 32,113,250,161,109,247, 33,211,123,244,255, 24, 42, 47, 47,208,188,181,199,169, 35, 91,123,252, -250,211,130, 73, 54,163,102, 97,153,196,120,246,217,115,129,231,184,114, 71,157,252,252,252,188,154, 54,125, 62, 29,163,205,102, - 67,229,202,149,145,156,156, 28,252, 38,237, 52, 95, 95,223,238, 63,254,248,163,170, 91,183,110, 66, 31, 31, 31, 0, 64, 90, 90, -154,255,241,227,199, 27,253,248,227,143, 25,169,169,169, 71, 80,194,140, 62,172,149, 22,209, 2, 48, 82,169,220,126,140,160,232, -137,159,127, 88,223,219,215,207, 84,212,231,213,234, 52,241,215,159,157,161, 4, 2, 81,193,231, 65,243, 60, 71,149, 16, 37,234, - 36, 20, 10,139,236,161,176, 48,206, 33,188,208,101, 4,205,208,246,139,213,102, 85,231, 60,189, 85,171, 12,145,184, 58, 66,177, -104,245,123, 3, 62,110,209,175,111,111,248,122,185,224,212,197, 8,140,249,252, 43,171,205, 98, 93,252, 70,149, 7,195, 8, 50, - 50, 50,226,221,220,220,124,202,255,188,165,170,252,126,226,152,234,212,233,240, 41,139,150, 46,255,196, 98,182, 89, 57,158,127, -182,142,177, 76, 38, 17,118,238,241,190,179,170, 90,136,116,249,143, 35,132,255,192,136,214,154,183, 98,180,196, 50,167,247,191, -255,122,172,116,230,150, 43, 56,178,106, 76,166, 94,147,233,245,172,165,224,236,122, 43, 95,147,219,232, 77,246, 80,233, 21, 20, - 74, 49,130,209, 20,195, 40, 40,154, 18,115, 44,151,104, 51,155,103, 25,178, 30,165,150,247,232, 57,142,199,158, 63, 50,202,102, -128,120, 84,223,188, 99,159,202,219, 85, 2,163,133,197,128, 65, 67,176,105,211, 38, 39, 47, 23, 49,140,102, 27, 22, 44, 90,164, -213,197, 31, 81,197, 39,230, 36,119,234,249,213,201,152,184,140,123, 79, 83,141, 59,203,186,111, 38, 11, 11,141,222, 6,189,137, - 70,141, 58, 77,177, 96,113, 77,233,211,132,216,175, 54,254,186,110,220,253,251,204, 38,142,161,167, 27, 83, 31, 36, 22,121,211, -249,212,237,234,236,230,177,173,207,232,217,174,143, 50, 4,224, 97,193, 19,103, 41,222, 31, 54,206,185,170,143, 12, 10, 41,227, - 26,155,144,236, 59,113,210,164,139, 49, 44,223, 76,163,142,137, 45,109,127, 42, 85,170,212,183, 71,143, 30,242, 9, 19, 38, 8, - 3, 2, 2,240,235,214, 93, 21, 91,119,237,223, 51, 37, 53, 61,128,231,121,120,171, 84,137, 35, 63,234,127,232,232,209,163, 9, -137,137,137,194,249,243,231, 55,223,183,111, 95,237,180,180, 52,135, 91,166, 44,207,195,104, 98,193, 22, 60, 32,213,121,166, 50, -251, 83,127,127,127, 73,114,114,178,233,133, 40, 3,245, 60, 80, 72,117,237,216,182,185,224,151, 99,113,208, 25, 89, 40,164, 66, -196,165,235,209,164, 97, 61,106, 45,107,107, 80,148,224,240,247,187, 79,245, 86,242, 97,189, 66,171, 64,229, 38,199,134,149,179, -113,240,114,108, 88,186,142,194, 10,158, 25,237, 43, 17,116, 86,112,169, 43,218, 53,169,230,211,161,113, 69, 92,111, 82,205,231, -252,205,168,104, 89,255, 69, 99,147,117,194, 83, 57,199,199,105,139,174,120,104,184, 59,137,176,254, 68, 2,228, 82, 1, 20, 82, - 1, 20, 18,251, 43, 77, 83,229,107,213,250,214, 10, 96, 56,118, 56,195, 8,134, 15,124,191,191,223,224,129,253,121, 48, 52,118, -237, 57,212,123,203,150,205,169, 86,139,121, 29, 75, 51,235,139,187,126, 94, 42, 80, 26, 80,185,136, 49,105,221, 61, 56,203,132, -112,146, 11,225, 44, 23,162, 67,125, 47, 48,111, 62, 9,140,219,152,222, 85,187,141,233, 83,169,125,112,160,178,198,157, 39,121, -247,135,207,186,177,244,108,110,251, 47, 87, 46,169,237,161,203, 53, 11,126,152, 56, 82,144,148,146,210,126,215,161,115, 29, 88, -243,199, 81, 54, 75,254,183,234,136, 93, 69, 70,133,147,162, 46, 55,242, 15,233, 39,181,232,172,119,239, 68, 37, 85,203, 49, 73, - 16, 25,175,129, 66, 42,128,178,176,108,165, 2, 40,164, 66, 40,165, 2,164, 36,197, 33, 59,159,185,152,236, 65,183,199,185,203, -182,178,236,184,209,194,226,118,172, 14,149,130, 27,194,215,215, 15,230,110, 31, 84,186, 26,190,231,192,181,115,251,231,234,211, - 30,126,235,168,206,214,195, 87, 48,101,252,232,155, 20,112,171,224, 33,221,232,135,121,171, 26,207,152,242,217, 75,239, 77,156, -190,188,241,155, 71,178,156,166,118,232,243,233,244,214,157,251, 64,155,157,142, 63, 78,238, 68,215, 30,239,225,131,143,191,128, -171,171,231,130,197,179,190,190, 99, 51,105,194, 95,171,115,125,106,182,170, 87,183,214, 22,127, 63,191, 0,142,179,175,242,193, -243,128, 78,155,135,175,191, 28, 9,142,231,209,160, 81,179, 14,210,214,157,121,190, 96, 53,144,204,172,204,252,168,135,247, 59, - 25, 51,162,174, 58, 92,150, 70,163, 85,173, 86,227,246,237,219,136,142,142, 70,100,100, 36,178,178,178,224,226,226,162,203,207, -207, 47, 83,240,190,126,253,250,131,195,195,195,165,110,110,110,207,222, 52,155,205,112,114,114,194,224,193,131,133, 93,186,116, -241,239,222,189,251,208,123,247,238,109, 5,160, 41,114,127,178, 31,167, 56,121, 7,255,220,182, 93,219, 79, 0, 64,230,236, 27, -187,226,215, 67,145, 37, 54,104, 93,252, 42,182,104,209,178, 26,120, 30, 20,248,101,250,172,232,180, 18,162, 68,138, 43, 87,174, - 84,101, 24, 70,240,252, 25,196,225,167, 13, 59,106,254,126,225,110,223,121, 11, 22, 74,157, 21, 18,168,243,204, 24,241, 65, 31, -135,159,193, 50,239,224,110, 45, 90,180, 57, 48, 99,250,247, 2,165, 66,129,147, 87, 99, 48,246,203, 73,198,212,248,123, 11,121, - 78,184, 74,175,142,206, 40,231,163,146,199, 91,160, 70, 5, 37,156,122,117,149,142,249,176,151,212,108,101,145,155,111,133,201, -194,130,229,120,228,229, 91,113,255,169, 22,158,206,101, 95,202,141,231,249,166, 0,188, 0,168, 41,138,186,254,226,118, 97,131, -174,208, 27,191,178,157, 89,240,124,240, 0, 96,134,125,164,254,179,203,167, 96,187,184,247, 11,191,127, 31, 64,173, 2, 77, 22, -192, 53,138,162,114,138, 49, 91,175, 69,185, 4,135, 15, 31,230,123,244,232,241,172,198,127,117,251, 85, 36, 34,161,159,194,197, - 11, 60,255, 0, 47, 46, 96,172,242,241,207, 90,184,120,169,251,231,159,142, 78,208,228,102, 87, 44,120,251,148, 35, 15, 11, 1, -197, 44,110,219, 50,164,203, 39,159,126,138,224,170, 21, 68, 44,203,242,247,162, 99,173, 27,215,111, 24,118,254,178,120,169, 38, -233,222,212, 23, 66,144,101, 26,246,201,114,108,210,171, 17, 44,150, 99, 95,109,221,190,166, 73, 81,128,171, 82,140,159,143,197, -129,231, 1, 10, 60, 92, 20, 66,108, 63,155,132,216,155,123, 53, 61, 26,104,242, 7,207,155,214,161,125,183,113,225,247,159, 24, -119,102,100, 24, 79, 0, 72, 43, 73,179,232, 10,157,131,201,194,194,106,179, 97,247,161, 67, 8,235,208, 28, 45, 90, 52, 71,155, -214, 45, 4, 55,110, 70,124,252,233, 39, 35, 3,240,124,116,199, 51, 77,169,119,245,166, 74, 23,207,157,125, 63,153,239,116, 55, -201, 6, 1, 3, 84,241,145,193,221, 73, 4,179,141, 66,188,218, 82,112,231,184, 98,236,196,233,238, 83,190,250,228,168, 70, 45, -174, 11, 60,176,148,116,236,122,189, 94, 60,100,200, 16,161,213,106,181, 12, 30,241, 69,151,180, 52,117,239,159,150,253, 71,162, - 82,121, 67,111,180,225,102,228,227, 90, 51,102, 76,175,114,232,248,217,253,211, 38,141, 57, 16, 22, 22,230,178, 99,199, 14,174, -180,242,124,169,133,152,158,185,114,195,150,221,155,150, 44,156,131,168,132, 28,172,255,101, 21,120,214,246,115, 41, 69,245,162, - 38, 63,100,200, 16,217,254,253,251, 43, 36, 37, 37,105,244,122,189,250,165,120, 4, 77, 9,210,179,245,240,116, 18, 67, 36,160, -225,237, 38,133,202, 69, 2, 33, 3,208, 20,197, 22,165,185,126,231,145, 89,156, 62, 15, 7,183,153, 7,110, 88, 57, 27, 31,127, -254, 29,238,101,138,143,211,114,151, 89,159, 13,236, 59,197, 75,198,134,249,185,210,170, 14,141, 43, 65, 33, 21,225,155,113, 67, -208,236,102,188, 42, 57,151,251, 78,109, 96, 26, 78, 63,254,108,177,238, 83, 47, 7, 71,236, 17, 44, 39,185, 16,199,183, 44,200, -200,207, 83,231, 21,118,201,153, 77,198, 4, 7, 47,227, 83, 69,180,108,167, 52,172, 87,103,246, 39,163,134,211, 45, 67,155,241, - 52, 45, 68,166,214, 76,241, 60,240,229,216, 49,248,108,204, 72,159,196,148,140, 31, 86,173,250,121,106,248,239,252,204,124,245, -195,105, 37,105,210,148, 61, 10,164,148, 10,160,148,217,141,139, 82, 42,128,209,204,130,162,192,184, 6, 54,202,163,236,145,220, -148,236,132, 98, 91,224, 47,105,186, 7,214, 57,253,123,172, 83,205,156,157, 57,151,227, 82, 34,103,221,140, 72,191, 6, 32, 59, -160,141,235, 80,139,141,135,206,104, 67, 92,186, 30, 54, 11, 79,125,252, 78, 69, 84,238, 71, 5,207,217,112,107,211,177, 8, 56, -191, 80,233,191,164,153,124,101,183,209,163,110,159, 1, 75,150,255,114,125,225,236,239,152,204, 60, 51, 56,158,135, 84,204, 64, - 38, 22, 20,252, 48, 48,228,231, 97,213,234,181,105, 54, 80,125,113,238,156,173, 44,215, 39, 56,254,131, 62,221,218,108,167, 0, - 49, 69,139,146,252, 42, 86,170,216,177,231, 48,105,199, 94, 67,192,218,204, 83,110, 94,224,207,232, 51,162, 78, 59,162, 89,183, -118, 45, 80,192,173,252,140,232, 49, 0,160, 80, 5,253, 92, 51,184,102,227, 87,223,171, 94, 61,184,177, 35,231,253, 89,164, 84, -234,244,185,155,187,215,119,193,117, 26,170,210,115, 76,148,147, 71, 5,196, 61,186,141,109,171,127,216,204, 25,205,211, 79, 31, -217, 57,123,233,250,125,239,119, 12,235,131, 13, 63,253,231,155,172,212,103, 70,235,212, 11,209,170, 15, 54,174, 91, 19, 32, 20, - 75, 96,181,113,176,178,188,253,213,198, 34, 59, 59, 7, 86, 27, 7,169,220, 9, 54,142,130,149,229, 96,181,113, 48,153,109,138, - 49, 67,186,127,106, 4,174, 22,181,159,254, 53,219,158, 16, 73, 36, 21,121,216,215,174,229,121, 30,113,105, 6,218,215,215,119, - 43, 0, 72, 36, 18, 72, 36, 18,112, 28,135,155, 81,234,207, 61,131,131, 62, 65,129,193, 99, 45,230,132,220,248, 75, 93,139, 59, -118, 31, 31,159,158,175,154, 44,163,209, 8,157, 78,135, 11,151,175,187,172,219,180, 59, 44, 46, 33,169, 42,199,187,152,156, 84, - 85,187,106, 51, 98,122, 22, 87,158,218,244,168, 79,157, 67, 70,210, 19, 62, 27, 90,125,249,198,195,215, 30,159,152, 85, 98,158, - 86,229,142,147,205, 19, 70,191,215,100,222,178,245,143,114, 46,253, 60,190,180,115, 36, 16, 8,132,106,181,250,217,253,189, 98, -237,182, 38,183,162,146,223, 93,186,100,169,244,102,140, 22,119,227, 82, 48,180, 83,160,189,133,227,192,121, 87,120, 87,245,172, - 82,173,218,214, 85,203,230, 9, 30,165, 24,177,114,239, 53,132, 31,248,249, 66, 90,198,213, 48,164,167, 26,222,164, 14,121, 11, - 70,171, 88,205, 51, 17,153,208, 25,109, 48,153,109,176,114, 60, 52,122, 43, 50,114,205,208,232, 45,208, 25,108, 24,218, 57,176, -200,239,149,226, 71,188, 40,138, 58,204,243,124, 15,158,231, 59, 1, 16, 23,110,219,159,217,212,225, 2, 67,246,210,246,148, 41, - 83,190,157, 59,119,110,100,225,103, 11,223, 47,252,108, 73,239,191,240,125,143,111,190,249,166,238,188,121,243,230,132,134,134, -110,255,227,143, 63, 98, 1,228, 56,218,125, 40,120,241, 96, 14, 31, 62, 92, 90, 65, 87,181, 88, 45, 18,103,153, 16, 85, 42, 7, -226,163,111, 55,120,254, 54,111,120,134, 84, 44, 96,142, 29, 59,230,158,101, 86,130,166, 25,135,155, 40, 74,175, 26, 45, 68, 34, -241,145, 69,139, 22, 97, 96,207,214,178,167,153, 86, 93,196, 83, 67,122,190, 25, 54,149, 87,144,120,214,156,121,202,121,243, 23, -124,118,248, 32,151,171, 75,191,191,160,232, 46,190, 38, 55, 24,234,133, 28, 44,138, 2,207,177, 73, 57,241,215,155, 0, 64,121, -114,177,116, 70, 43,152,130,220, 26,138, 2,244, 70, 27, 24,134,202,200,141,218,121,127,240,204, 89, 29, 54,111,255, 61,133,167, - 93,181,249,249,113,114,216,215, 28, 44, 51, 70, 51, 11,147,149, 69,228,157,155,104, 19, 82, 27, 45,154,212,132,222,200, 66,111, -178,161,114,181, 96, 0,240, 44,242,196, 49,116, 44,207, 90,141, 60,207, 58,245,104,234, 5,149,171, 24,190,110, 18, 72,196, 2, - 88,109,128,193,204,193,104,102, 17,159, 97,128,214, 32, 67,189,182,253,171,120,248,222, 48,165,197,203,246,103, 63,189,209,183, - 68,115,202,178,216,184,117,119,245,148,148,244,222, 71,247,111,145,168, 53, 86, 68,196,231, 35, 35,215, 4, 48, 94,248,113,206, - 74,201,228,241,163,222,221,184,109, 79, 66,199,214,205, 19,202,122,204,122,117,212,230,157,187,118,255,220,163,199,187,178,200, -171, 71,241,232,246,233,217,249, 25,101,202,207,162, 27, 52,104, 96, 27, 53,106,148,118,206,156, 57, 1, 7, 15, 30,172,172, 86, -171,111, 3,176,186,186,186,214, 12,170, 94,241,206,201,227,199,252,187,191,219, 95,152,148,105,128,139, 92,132,138, 42, 57, 46, - 95, 56, 97, 21,139,133, 69,230,155, 20,116, 15, 14, 66,199,175,113,240,114,108, 88,100,150,244,236,200,225, 67, 19, 78,158,143, -202, 90,177,233,228,127,252,149,214,219, 82, 78,189,226, 70,147,106, 62, 83,198, 14,193,220,229,155,113,238,102, 84, 70, 62,237, - 59, 59,213,100,251,189,248, 80, 58, 32, 96, 40, 56,201,132,200,215,168,243,158,220, 58, 30,244,150,194,212, 67, 79,238,223, 76, -103,107,173, 72,204, 52, 82, 41,217, 90,176, 28, 15, 87,185, 8, 54,142, 71,110,118, 38,181,101,243, 38, 92,191,126,153, 6, 67, -143, 0, 48,173,196, 2,165,236, 93,133, 74,169,208, 30, 17,146,217, 95,173, 44,135,224,234,213,176,102,197, 98,103, 79,149, 55, - 90,181,113, 60, 55,218,201,163, 98,131,237,191,174,192,217, 63,110,181, 59,183,116,101, 83,165,159,215,114,138, 98, 23,130,135, -209,100, 97,145,151,155, 3,177, 57, 17,205,252,213,112,151,179,136,215,248,226, 94,218, 35,101,105, 21,126,214,189,125,183, 41, -254,221,169,187, 15,133,207,237,218,185, 29,238,197,107, 32, 19, 11, 32, 21, 51,144,138, 25, 8, 41, 22,139, 87,255,108,205,201, -211,246,200,138, 60,144,249, 6,215,231,169,130,214,175,221,220,177, 58,175,205,203,167,254, 54,242,235,249, 93,195,250, 12,163, -238, 93, 63,243,173, 30, 56,237, 88, 67,143,119,232, 61,142,115,252, 25, 39,117,242, 92, 54,110,242,172,113, 93,122,244, 7,195, - 8, 96,181, 90,177,103,199,102,252,186,242,199,135,102, 93,214, 48, 0,156, 57,131, 25,181,115,243,234,254, 95,255,176,152,170, -219,160, 89,243, 51,169,175, 47, 71,203, 49,212, 47, 31, 14, 31, 61,192,219,219,219,233,121, 68,139, 71, 80,112,109,116,235,245, - 30, 78, 28,216,135,251,145, 17,224,120,187, 97,226, 56, 30,185, 57, 89,105, 54,171,121, 99,177, 61, 30, 82,105,197, 13,191,110, -170, 65,211, 20, 44, 86, 14,102, 27,135,241,159,126,100, 30,243,229,183,173,186,117,105, 27, 41,102,160,137,127,154,234,122,249, -214,131,122,156, 80, 25, 48,124,226, 98,145,209,196, 34, 79,111,197,209,245,197,123, 29,169, 91, 96,104,165,198,221,134,143,249, -126,141, 68,194,208,150, 58, 65, 1,177,109, 67,234, 36, 6,250,121,106,103,204, 91,217,236,226,213, 91,221,222, 31, 60, 92, 58, -180,102, 99,202,207, 67,230,244,209,224, 62,245, 89,155,229, 67,125,118, 98,177,243, 11, 10,229,110,185,129,149,171,235,159, 71, -140,130,246, 82, 60,170,188,228, 60, 40,196, 26,210,163,251, 2,128,175, 95,160, 81, 40,113,214,150, 33, 2,195, 3,192,242,181, -219,154,220,137, 78, 25,185,100,201, 82,249,205, 24, 45,110,199,228, 65, 34,162, 97,177,114,160, 28, 12,106,115, 60, 51,250,187, -111,166, 56,231,228,179, 56, 27,161, 70,228,141, 51,188, 89,103, 28, 44,183, 57,247,133,202,233, 67, 0,213, 0, 60,161, 40,254, -151,252,116,159, 3,192, 57, 91, 89,175,123,142,179,183,151,157,189,170, 86, 97, 5,146,110, 66,177, 34,148,162,248, 58, 20, 15, - 55,128, 79,206, 46,120,166, 58,234,212,242,211,163, 49,127,206, 15, 88,182,110, 31, 82,178,140,112, 97, 19,113, 96,253, 44, 76, -152,187, 21, 6, 83,241, 89, 13,165,249,145,162,140,209,171,134,171,240,247,194,207,205,157, 59,183,199, 43,231,166, 71, 49,231, -236,181,207, 21,126,127,222,188,121,115, 94,248,187,222, 81,147,245,204,104, 21, 30, 84, 41,102, 43,200,203,183,226, 31, 7,246, -239,117,203,209, 89, 32, 21, 49, 8,172, 92, 29,211, 86, 28,240,122,167,137, 39, 50, 45, 46,216,182,102, 97,182, 81,175,221,225, - 80,101,161, 10,110, 46, 83, 42,142,238,221,179, 15, 85, 3, 85,162, 45, 23,178,227,110,197, 26,158,133,122, 53,234, 4,113,101, -103,189,160,111,159, 62,242,211,225,103,190,212, 1, 69, 26, 45,134, 98, 42,172,221,180, 71,229, 36, 19,130,162, 0,173,193,134, -145, 31,190, 87,254,199, 24,207, 49,195,135, 13, 5, 85, 96,178, 52, 89,105,248,118,242,167, 70,133,245,209,253,167,241, 79,147, - 59,245,156,112, 90,163,163,140, 3,134,124,122,253,126,244,220, 28,189,254,205, 22,249, 49,153, 89,152, 44, 28, 98, 98,158, 96, -252,208,206, 16, 50, 52, 24,134,179, 39, 75,219,138,191, 24,117, 41,209,217,240, 17,245,219,188,232,243,181,126,222, 42, 15,165, - 66,198, 43,229, 18,170, 78,205, 26,162,144,144, 22,226,202,193,245, 69, 23, 30, 24,240, 84,109, 64,108, 74, 30, 36,222, 13, 5, - 3, 59,188,131,205, 75, 39,182,203,126,122,131,198,235, 73,138, 47,241,251,217, 43, 61,215,173, 94, 34, 73,207,181,224,225, 83, - 29,210,114,140, 72,205, 49, 33, 45,219, 8,165, 76,136, 54,189, 70, 73,142, 28,248,165,103,199,214,205,151,191,201,113,199,198, -198, 29,137, 79, 78,237, 95,191, 81, 51,108,254,237,215,214,174,174,149,157,115,115,227, 52,142,158,157, 89,179,102,137,231,205, -155, 39, 88,177, 98,133, 38, 36, 36,196,231,155,111,190,233,154,145,145,113,173, 82,165, 74,193, 39,246,110, 12,111,216,166,119, - 83,112, 22,175,214,109,219,139, 36,156, 0, 39, 15, 31,182,236,220,177, 37,203, 96,208,142, 41,209,112,200, 93,102,165,235, 40, -120,249,251, 71, 42,197,108,103, 1,157, 27,157,115,124,220,166, 28, 96,111,213,176,177,167,206,220,136,138,110,114, 51, 94, 21, -126,243,113, 70,182,222, 18, 20,115,124, 66,137, 21, 47, 67, 81, 16, 50, 52,156,100, 2,208, 5,181,170,210,175,254, 99, 80,148, - 87, 97,228,148, 2, 85,240, 10, 80, 20, 82,114,158,222,118, 32,103,131,226, 57, 30,136, 74,202,135,206,104, 15,205, 87,240,148, - 67,157,158,132,159,150,111,196,173, 27,215,209,229,157, 94, 88,181,118, 11, 70,126,216,223, 88, 90,235,135,166, 11, 34, 90, 47, - 68,179,148, 50, 1, 0, 10,185,249, 86,236,185,152,136,106, 85,104,135, 31, 12, 0,224,164,148, 35, 79,107, 0, 45,114,194,147, -155, 71,229,199,206, 92,253,102,234,204, 37,147,114, 82, 35,158, 62,190,123, 1,193,158,121,168,226,111, 65,100,154, 51,110,100, - 85, 70,112,245,170,160, 69,215, 29,210,206,140,172, 55,255, 0,189,167, 71,147,134,181, 67, 43,170, 92, 97, 48,179, 5, 81, 45, - 6,191,110,216,132,248,184,164,225, 89,247, 15,220,122, 27,142, 54, 63, 35, 86, 45, 81, 85,255,236,238,213,211,177,125, 6,127, - 6, 95,255,192, 6,185, 79,111, 59,156,182,224,200,123,172,131, 70, 75, 36,119,253,102,252,119,255, 25,215,165,123, 63, 92,185, -112, 26,183, 35,159,160,121,243,166,120,231,221,129,208,106,178,107,238,218,180,180,179, 77,175, 61, 33,144,216,198, 53,107,209, -129,226, 88, 22,143, 30,222,123, 82,148,150, 33, 53,234,246,229,212, 40,231,151,186,167, 60,107, 54, 80,186,184,223, 54, 89, 88, - 36, 39, 39,225,210, 31,103, 27, 25, 82,163,110,151,165,188, 36, 34, 6, 39,111,101,192, 98,229, 96,177,113,104,211,182,179, 89, - 68,155, 90,207, 94,178, 33, 36, 53, 37,149, 86, 56,123,114,238,254,181, 68,190, 18,139,233, 78, 76,158,200, 98,229, 80,213, 79, - 81,162,166,151, 95,245, 57, 19, 39,142,175,197,136,100,208,230,155,204,169, 41,201, 62,107,182,157,209, 61,120,120,215,191,130, -202,197,249, 63, 75,127, 17,105,140, 20, 50,242, 76,200,214,106,168,193,163,191,246, 91,183,114,238, 7, 37, 25,173, 34,210, 69, -170, 28, 57,121,161,166,155,147,136,210, 25,109, 92,150,198,194, 14,126,183,124,131, 46, 11, 76,214,168, 37,139,151,202,111,197, -104,113, 39, 38, 15, 82, 17, 3,177,136,134,217,202,193,193,219,137,246, 81,249,140,105,209,164, 30, 78,220,206, 4,195,208, 48, -104,115,244, 2,100, 69, 55,105,215, 69,222,184, 89, 8,218,183,107,139,199,209, 81,129,135, 15,238,233,120,249,210,185, 52,155, - 37,232,243,124,117,244,190, 50, 5, 22,244,122,198, 42,246,249,200,215,191, 82,203,190, 3, 63,114,169, 24,232, 79,169, 60, 61, - 96,227, 5, 24,245,225,123, 14,223,249,118, 99, 14,204,155,249, 13, 76, 38, 51,188, 92,197,224,121, 96,195,242,105, 48,155,205, -240,243,144, 32, 47,191,248,213,228, 74,243, 35,197, 69,161,202,148,123,242,130, 25, 43,233,125,138,162, 14, 79,153, 50,229, 91, - 0,252,148, 41, 83,190, 45,220,158, 59,119,174, 1, 64, 74, 41, 93,135,107, 94, 50, 90,133, 7, 87,252,221, 45, 10,246,244,240, -189,124,242,196,113,151,253,119, 56, 92,217,119, 3,221,155,251, 66, 36,160, 33,119,241,195,157,184, 60, 28,217,187, 58,247,192, -246, 95,146, 77, 38,211,130,210,251,154,171, 55, 81,202, 21, 39,126,219,188,131,243,244,240,160,127, 58,169,142,201,210,218,158, -117,105, 69, 95, 61,200,221, 56,177,198,151, 7,117, 92, 42,149, 86, 55,155,205,110,165,157,216, 13, 39, 19, 10,146,120,169,183, - 81,183,130, 98, 24,118,243,150,205,240,116, 22,195,100,229, 48,101,210, 23,134,161, 93,148,185,131,223, 31,216,161,125,183,113, -225, 66, 69,141,211, 45, 26,213,224, 27, 54,108,152,203, 48,140, 67,169, 20, 42,149,106, 26, 77,211,131,196, 98,177,147,217,108, -214,154, 57,163, 60,223,104,134,209, 2,232,245, 70, 8, 69,118,179, 40,100, 40, 24,140,102,232, 13,230,146,111,140,180,123, 23, - 1, 4,105, 94,136, 41,157,126, 80, 85,188,117,215,129, 47,250,189, 63, 96,170,127,131,119,149,113,169,121, 16, 81, 22, 52,173, -229,139, 51,199,247,241, 73,241,209,227, 75, 51, 89, 0,144,161,206, 14,240,242,242,198,173, 88, 29,146,179, 12, 72, 43, 48, 89, -169, 57, 38,104, 13, 90,212,175,232,135,220,188,188,128, 55, 46, 95, 96,223,137, 19, 39,250,119,235, 61, 0,227, 38, 77,111,181, -126,245,194, 8,133, 88,248,113,126,250,163,179,142, 24,173,123,247,238,101, 79,158, 60,185,218,218,181,107,233, 15, 62,248,192, - 80,175, 94, 61,233,144, 33, 67, 90,109,218,180, 73, 42,151, 75, 13,119, 46, 28,156, 58, 98,236,148,222,107,150,205,106,144,147, -147, 67,217,172,214, 99,150,156,156, 41,186, 82,204, 92,226,193,111, 31,254, 24, 99, 25,214,185,181,215, 65,119, 57, 93, 71,194, -155, 7,162,214,180, 29,120, 48,205, 18,115,124,133, 86,214,127,209,216,148, 92,238, 59, 35,173,154, 93,154,201, 2, 0,154,161, - 96,182,177,112,146, 9, 65,211,116,161,137,247,253,117,199, 49,185,151,139, 24, 66,134,134,128,161,160,209, 91,145,169,177,224, -179,143, 28,157, 33,132,231,108, 44, 15,131,217, 6,125, 65,235, 80,171,201,196, 55,147,190,194, 59, 61,251, 96,196,152,175,144, - 99, 0,110,196,106, 97,177, 90, 75,189, 41,104,138,134,222,100,195,199, 93, 42, 34, 91,103, 65,190,193, 6,179,141,131, 92, 44, -128, 80, 64, 67, 33, 21,192, 89, 46, 4,120, 94, 84, 88,153, 8,133, 66,163,213,106,221, 92, 66,139, 30,149, 3,188, 97,176,210, -104, 54, 96, 33, 58,133, 6, 33,242,226, 30,193,185, 43,119,171,124, 57,233, 59,124, 49,178, 39,118, 63,172, 6,119, 85, 69, 40, - 21, 50, 88,121, 26, 0,239, 96,194,222, 52,142,182,244, 25,244,243,218, 13, 81, 51,126,152, 34,205,205,167, 32, 17, 49, 8, 63, -125, 10,151,175,222, 88,150,121,255,192,102,188, 69,132, 60,237,237,236,236, 12,169,152,129,217, 98, 50, 59,158,186,192,131, 7, - 26, 41, 84, 65, 63, 23,180,248, 27,177, 28,138,120,175,116,163, 37,144, 58, 79,249,124,210,140, 57, 93,186,247,195,201,195,187, -177,107,247, 14, 54, 52,108, 56,179,229,215,213,104,213,169, 23, 90,117, 25,128, 99,251, 54,125,149,207, 81,181, 71,141,155, 58, -179, 77,135,110, 56,121,100, 55,210,211,146, 22, 57,186,191,140,144, 26,215,161,115, 79, 24,205, 44, 90,119,236,129,227,135,246, -141, 69,193, 32, 11,199, 31, 98,175,212,207,160,109, 95,141, 31, 39,204,200, 53, 11,213, 26, 51,146,212,122,196,165,235,113, 96, -251,122,222,241,250,194,220,180, 77,253, 10,194, 81,243,195, 19, 3, 42,248,154,132, 38,131, 44,250, 73, 76,205, 17, 31, 13, 21, - 86,169, 94,147,206,200, 51, 65,157,103, 66,102,158, 9, 58,163, 13,213, 43,212,160,173, 54, 42,180,172,231,217,211, 69, 44, 92, -117, 40, 22,206, 10, 33, 90,212,124,243,129,182, 28,199, 61, 55, 89, 75,236, 38, 43, 34, 54, 15, 18, 17, 3,137,136,134, 68,196, -192,198,242, 14, 53, 92,100,170,160,110,159,125,254,169,159,217, 6,100,229,153, 33, 96, 40,168, 60,221, 20, 77, 27, 12,194,134, -133, 99, 1, 0, 35, 39,255,132, 17, 31, 15, 65,173, 58,245,144,155,147,227, 51,168, 95,183, 37, 0,246, 57,186,175, 71, 79,158, - 13, 60,121,254,214,228,207, 38,254,168,124,191,103,123,230,118, 76, 30, 82,179, 77,120, 18,173, 45, 83,228, 13, 0,108, 44, 7, - 30, 60, 54,238, 56, 12,153, 88, 0,117,158, 5, 60,207, 99,214,138,157,112,146, 9,145,154, 99,239,238, 47,137, 18,253, 72, 9, - 17,169, 50, 68, 27,123,192,158,203,229,229,104, 68,107,238,220,185,145,115,231,206, 45, 50, 66,246,130,201,122,179, 69,165, 69, - 34, 69, 77,103, 15,207, 43, 39,143, 31,117,218,119,135,197,153, 59, 89,232,215,186, 2,116,217, 79,177, 96,210,251,217, 20,120, - 51,205, 48,185, 38,131,126,175,193,144, 63, 27,128,165,196,139,198, 39,168,145, 66,170, 60,181,106,205,111, 54, 79,149, 10,155, - 47,100, 39,229,228,219,172,207,187,173,172,212,141, 19,107,170,216, 56,107,152, 49,253,241,245,210, 90,226, 28, 15,209,220,213, - 7, 0,240,224, 56, 14, 60,199, 65, 40, 85, 42, 60,171,134,164, 23, 84,116, 82, 1, 77, 25, 95,172, 1,120,206,150,148, 25, 91, -114, 24,148, 2,224, 34, 23, 98,199,185,100, 0, 72,103,180, 55, 31, 12,126,223,222, 93,104, 52, 75, 53,117,170, 85,227,155, 54, -109,154, 43,147, 57, 52,253, 21,227,237,237,125,109,234,212,169, 53, 71,140, 24, 33, 17,139,197,176,217,108,238,191,172, 89,195, -173,153, 61, 18,125,199,174,130, 72, 44,129,193,104,129, 80, 40, 64, 78,158, 14,185, 26, 61,180,122,107,217,175,160,152, 24,179, - 26,152,191,127,159,184, 79, 87,101,253,102, 98, 90,132,198,193,190, 56,115, 98, 63,127,229,248,134,145,134,140,232,223, 28,188, - 16,161, 51, 90,145,146,101, 68,114,150, 17,105, 57, 70,164,101,155,144,150, 99, 4, 69, 81, 48,154,109,229,122,112,229,103, 68, -237,218,252,219,186, 94, 38, 11, 6,182,233,210, 7, 95,253,184,170,226,230,159,231,157,138,229,233,150, 14, 38,218,178,145,145, -145,241, 31,125,244, 81,131,109,219,182, 49,117,235,214, 53, 60,120,240, 64, 94, 96, 34, 45, 74,165, 92,182,126,229,220, 19,205, -154, 53,219,158, 28,253, 48,188,160, 63,189,212,138,189, 98,219, 97, 18,153,229,214,168, 64, 69,139,174, 85,125,228, 8, 84,104, -187,214, 84,222, 89,144,213,225,139, 57,234,240,101, 25,169, 38,219,239,106, 3,211, 48, 89, 39,116, 40, 7,207,106, 50, 38,244, -237, 55, 16, 12, 69,195, 98,212, 39, 20, 94, 92, 42, 23, 49,166,109,121, 8,165, 84, 8, 39,153, 0, 74,153, 16,173,106,187,163, - 12,245, 25,111,101, 57,232, 77, 44, 12, 38, 27,140,102, 27, 60, 3,220,176,118,243, 46, 60,205, 48,224,192,245, 76, 68, 37,104, - 81,163,130, 2, 60, 95,122, 53,201,177,214,252,158,239,125,224,196,208, 20, 24,154,162,107,215, 12, 66,182,206, 2,145,128,134, - 72, 42,131, 66, 34,128,179, 76, 8,145, 72,136,140,140, 12,152, 76, 38, 4, 6, 6, 74, 75,182,130, 60,156,148, 50,212,168,226, - 7,139,213,134,163,231,239, 99,246,248,190,232,220,166, 9, 40,161, 18, 15, 77,141,224,228,238, 4,142,166, 97,177,113, 48, 91, - 88, 0,180,177, 56,189,128,128,128, 14, 10,133, 66,161,215,235,181, 79,159, 62, 61,155, 22,181,239, 41,203,244, 30,117,252,100, -248,230, 30,239,116,198,173,136, 72,236,222,119,240, 66,166, 71,222,196,194,239,212,169, 83, 39,196,211,211, 83,153,149,149,165, -185,119,239,222,181, 55,109, 23,240, 52,253,101,104,171,118,208,229,102, 32, 61, 49,206,225, 86,116,173,138, 78,248,126,238,170, -198,193, 65,193,141, 89,222,110,188,106, 7, 58, 97,194,143,203, 27, 87,171, 17,212,184,112, 64, 72,173,192,146,167,101, 19,200, -157,186,124, 56,226,171,185,189,250, 13, 67,248,201,131, 88, 60,123,210,102,133,139, 87, 45,119, 55,151,134,117, 67,186,224,194, -169,131,144, 58,249,192,205,195,167,213, 7, 31,127,222,169,223, 7,163,113,249,194, 41, 44,155,247,237, 38,214,164,221,234,200, -190, 42, 84, 85,188, 26, 52,106, 54,216,201,221, 27,185,121, 90, 56,185,169, 80,171,126,211,193,247,239,152, 38,231,103,196,170, -223,216,116,240, 60, 76, 22, 30, 57, 58, 11, 18,213, 6,196,167,217,141, 22,199,149, 33, 39,136,229, 40,165, 84, 32,112,183, 62, - 14,188,123, 42,156,175, 24,224, 77,205,159, 57,137,177, 64, 10,117,174,221,100,169, 53,102,168,243,204,208, 25,173,112, 87, 8, -192,177, 92,153, 91,221, 57, 58, 11,156,228, 66,184,200, 69, 14, 71, 25,139, 98,245,175, 59,130,239, 68,167,188,187,120,241, 82, -249,237,216, 23, 76,150,208, 30,205,146,136, 24,176, 28, 7, 56,112,199, 11, 5,194,113,189,187,117, 66, 98,166,193, 62,106,153, -166, 80,163, 94, 51,120,202, 56,116, 28, 48, 5, 0,208,179,155, 61,181, 45, 54, 53, 31,135,174,168,129,151, 19,187, 75,174,139, - 13, 6,102,205,150, 35, 95,238,218,185,221,197,200, 10,240,203,177,120,232, 77, 54, 72, 69, 12, 36, 34, 6, 50, 17,243, 82, 62, -118,233, 70,203,158,115,247, 52,211, 10,189,209, 8,141,193, 10, 30,192,181,199, 58, 24,204, 54,228,229, 91, 17, 82,211,173,124, -129, 16,138, 58,194,243,124,247, 87, 13,209,171,102,233,133,136, 84, 81, 26,215, 95,212, 40,252,124,113, 70,238,197,156, 45, 0, -101, 26,193, 37,120,213, 57,190,184, 45, 82,184,213,114,113,114,185,114,252,216, 97,229,190, 59, 28,206, 70,216, 77,150,213,144, -137, 69,147, 7, 37,105,114, 51,219, 3,136,113,244,159,201, 61,107,213,151,138, 37,225,255, 89,250,139, 69,229,237,207,237,189, -146,155,145,167,103, 95,114, 19,172,201, 68,243, 28, 47, 50,166, 63,118,168, 15,129,166, 41,203,143, 99,251,128,227,121, 76, 91, -186, 11,115, 38, 14,128, 82,246,129,156,162, 40,121,190,209,134,241,211,215, 97,209,247,195,157,228, 18, 1, 40,202,158, 19,245, -225,192, 62,142, 93,128, 70, 27,158, 92,221,166,211,198, 30,126,240, 98,119, 97,243, 86,239,220,104,222,188,121,174,155,155, 27, -100, 50,217,243, 72, 69, 49,120,123,123,127,255,227,143, 63, 6,143, 25, 51,230,217,100,159, 2,129, 0,159,125,250, 41,205,178, - 60,142, 29,219, 0,175, 74,141,112,240,247, 43, 8,235,208, 20, 58,189, 17,217,185, 90,112, 96,222,248, 66,212,230,102,134,225, -190,186,164, 0, 0, 32, 0, 73, 68, 65, 84,167,197,223,109,214,178,125, 79,156, 61,177,159,191,114,108,253,200,178,204,209,227, -230,238,150,120,243,238,147, 90, 20,229,110,143,104, 21,152, 44,179,149, 67, 69,111, 57, 18,227,159,192,213,197, 37,209, 81, 61, -153, 87,112,111,138,230,199, 80,224, 55,228,167, 63,218, 5,128,207, 79,125, 48,104,215,214, 53, 17,145,247,110,207,238, 49,120, -156,160, 75,191, 79,153,159,231,126,254, 45, 0, 71, 39,222,179, 68, 69, 69,221, 31, 62,124,120,139,203,151, 47,179, 0,244, 20, - 69, 89, 25,134,145,155,205,102, 81,251,246,237,243, 30, 62,124,120, 14, 69, 39, 45,190, 68,171,143,118,121, 82, 18,237, 59, 98, -206, 50,168,162,147,182,115,251,214,161, 8,173, 19,128,196,214,161, 0, 48, 46, 65,167, 12, 54, 86, 91,183,195,106,147, 29,253, -249,215, 67,115, 70, 14,232, 52,126,179, 96,218,226,212,195,211, 74, 76, 68, 77,124,112,174,107, 81, 54, 94,192,208,112,146, 9, -161,148, 9,224, 36, 19,194, 73, 42,132,213,198,151,165,229,200, 91,109,156, 61,162,101,182, 65,103,176, 33,252,118, 58,210,242, -204,200,213, 90, 96,176,176,224,193,219, 91,163, 14,212,230,234,199,151, 92, 11,159,164,174,129,141,242,214,172, 88,232,188,231, - 98,210,179, 17,125, 46,114, 49,156,228,246,209,216,231,207,159,135,135, 71,233,173,125,142,227,176,251,248, 53, 44,222, 24,142, -227, 27,190,134, 84,196,160,126,239,233, 24,246,110,115,112, 60,135, 39, 81,145,233, 53,106, 55,240,166,105, 25,104,138,130,201, -202, 1,224,139, 45, 79,179,217,236,241,244,233, 83, 77,245,234,213,125,252,252,252,250, 49, 12,195, 67,123,219,180,127,123,182, -254,244,225,173,242,124,131,137,149,219,242, 54, 84, 79, 53,116, 71,245,234,160, 40,138,119,118,118, 22,133,135,135,235,234,213, -171,231,245,134,183, 18, 45, 83, 5, 45, 27,241,201,151,253,170, 85,173,138, 93, 91, 55,128,231,169, 61,142,126,121,203,161,203, -152,249,205,203, 35, 12, 39,252,184,188,241,162,233,227, 94,122,239,147,111, 22,151, 56,234, 80, 38, 81, 78,236, 59,104, 20,110, - 92,251, 3, 11,166, 79,216,110,210,101, 15,179,218,172,253,179, 83, 99,183, 87,169,221, 28,188, 69,139,147, 59, 23, 98,192,144, -145,146, 46, 61,250,225,242,133, 83,152,243,237, 39, 91,244,185, 25, 31,193,193, 36,103,142, 23,142,105,223,245, 93,161,193,100, -193,242,249, 63, 96,244,196,217, 8,233,208, 83,120,239,246,149, 49, 0,102, 56,156, 14, 97, 97,209,190,158,167,221, 60, 91, 57, - 28,140,101, 4, 69, 93,129, 2,134,162, 27, 86,117,133,193,108,131,166,148, 70,165, 64, 36, 76,203,205,211, 84, 90, 57,231, 75, - 38,223,104,131, 58,207,140,140, 60, 19, 50,115,159, 27,172,204, 60, 19,212,121,102, 8, 5, 20,162, 99, 18, 64, 11, 5,101,206, -207,203,209, 89,209, 44,200,205,126,143,190, 97,239,136, 85,224,220,252,248,185, 59,125, 23, 47, 94, 34,189, 19,167, 69, 68,172, -166, 32,146,197, 64, 34,164, 33, 46,248,157,229,236,185,145, 37,225,236, 85,181,202,208, 15, 63,232,232,172,148, 33,229, 81, 6, - 4,140,125,138, 24, 23, 85, 0, 92, 36, 70,124,254,201, 40,120,122,184,226,105,166, 9,203,246, 69, 35,226,254, 99,112,134,178, - 29,246,242, 95,182,135,141,248,108,130, 43, 45, 20, 99,211,137, 56,251,126, 50, 44, 30, 94, 57,100, 76,121,114, 55, 95,167,201, -226,193,179, 14,230, 32, 83,188,141,181, 95,110,115,166, 77,193,246,141, 63,225,196,205,140,103, 87,224,197, 61,139,240,229, 55, -179,144,169, 49,163,168,235,178, 36, 63, 2, 64,253, 66, 36,234,181,237, 23,204, 81, 81,219, 84,193,182,185, 24, 13,243, 43,230, -202,252,202,251,230, 87,244,138,154,251,111, 77,169, 93,135,175,153, 34, 87,175,186,114,169,226,143, 99,199, 14, 41,246, 71,240, -207, 76,150, 69,159,201,207, 30,215, 51, 73,147,171,238, 82, 38,147,229, 85,163,174, 68, 46, 57, 55,117,214, 50,147,183,127, 37, -219,209,219,154, 44,173,145,181,189,158,131,160, 96, 21, 46, 94, 70,129, 88,178, 88,104, 48,255,144,153,249, 32,191,180,200, 19, -199,243, 56,124, 53, 13, 60,111,111, 34,237, 60,159,140,130,150, 57, 88,206,222,173,242,251,237, 12, 8, 10,242, 80, 28, 13,127, -175,254,229, 39, 77,247,122,121,249,131,231, 76,123,214, 93, 24,210,192, 30,201,114,118,118,134,171,171, 43,148, 74, 37, 74,235, - 58,164, 40,234,195, 17, 35, 70,188,214,250,207,200,200, 64,167,142,237,177,226,167,181,104,208,113, 40,126,191,116, 2, 22, 43, -135,250,181,171,162,146,159, 27, 18,211,181,111,116,163, 43,188,131, 63,107,214,254,221,111, 91,117,232,137,240,227,123,249, 43, -199,127, 29, 85,214,137, 16,187,119,106,113,104,230,204,105, 85,166,206, 94, 41,113,146, 10,240, 64,103, 6, 77, 81,168,232, 45, -135,135,130,198,217,253,155,140, 3,122,182,112,120,114,188,128, 0,255,205,139, 86,172, 81, 44,154, 55,189,253,141,155, 84,184, - 46, 37, 58, 27, 0,244,233, 81,243, 31, 2,247, 43,252,113,242,104,131,182,125,224,237, 87,181,115,108,250, 67,135,205, 6, 0, -125, 76, 76, 76,236,212,169, 83,131,231,205,155,199, 51, 12,195, 1,144, 44, 93,186, 84,255,232,209,163,219,176, 15,205, 69,105, - 15,155,142,157,235,140, 87,138,217, 16,119, 57, 93,167,170,143, 28,161,117,236,189,162, 3,186,183, 66, 64, 96, 32, 98,210,244, - 13,179,245,156, 80,103,102,170,174,250, 37,226,122,101, 79,102,164,205, 96,190, 15,224, 64, 89,207, 15,133,231, 9,242,133,209, - 44, 39,153, 16,156,253, 90, 41,147,209, 50, 89, 88, 24, 76, 44, 12,102, 27,242,205, 44,244,102, 22, 28,111,191, 39, 40,138,130, -197,198,193,161,102,243, 43,215,190,179,187, 39,170, 86,166,224, 44,183,239,155,115,193,116, 15, 20, 0, 15, 15, 15,168, 84, 42, -135,162,162,102,139,253, 22, 55, 91,185,103,221,250,102,139, 13, 60,207, 35, 58, 58,234,235,248,216,216,222,213,107, 84,111, 83, -187,126, 3,119,185,132, 6,128, 98,141,150, 94,175,103,157,156,156, 84,238,238,238,116,114,114,242, 51,243, 92,189, 97,123,219, -190,189,123,208,183,111, 31,221,131,107,119,158, 13,113, 55, 24, 12, 84,203,150, 45,157, 3, 2, 2,104,147,201,164, 41,235,105, - 82,120, 5,189,235,230,225, 62,251,195,143, 70, 7,181,239, 20,134, 51,167, 79,226,192,222,109,191,233,213,209, 39, 29, 21, 9, - 14,174,249,218,168,195,106, 53,130, 94, 27,117, 88,169, 74,141, 18,141, 86,237,250, 77,155,243,148, 0, 39, 14,239,228,141,180, -229, 19, 0, 28,107,212,238,220,177,250,251, 25,131,198,124, 83,173, 91,175, 65,248,112,200, 48, 8, 4, 12,206,254,126, 8,139, -166,127,117, 68,151,151, 49,212,145, 52, 1,123,232,173,150,200, 95, 22,240, 69, 96,181,186,184,121,229, 2,158, 68,223,139,188, -115,253,114,157,234,245, 66,224,229, 87,241,139, 4, 79,102, 30, 30, 60,176,148, 38, 99, 54, 26, 19,134, 13, 29,130, 23, 71, 29, -134, 54, 10,246,160, 94,189, 1, 0,232,181, 25,150,245, 11,199, 63, 42, 28,117,200, 89,204, 9,197,233,230,229,168,119,159,189, -116,117, 98,239,238, 97,116,166,198,108,143, 96,229,153, 11,126, 76,200, 44,252, 93, 99, 66, 13, 63, 37,162, 34,111,114,198,188, -204, 61,101,188, 47,141,195,250,119,189, 95,120,237,114, 28, 15, 10, 48,150,185, 91, 74,232, 60,106,254,130,197,210, 59,177, 58, - 68,196,105,236, 93,133, 66,198,110,176,132,244, 51,211,101, 31,205, 94, 74,116,136, 98,230,124, 60,116, 32, 50, 53, 22,112, 28, - 32, 96,232,130, 31, 17,158,106, 41, 36,106,245,200,204, 81, 35, 54, 62, 1,185,105, 79, 64,211, 52, 60,253,130, 28,158, 73,154, -229,197,190,122, 51, 95,175, 95,247, 54,130,189,127,164, 66, 46, 17,192,164, 77,199,177, 29, 11,213, 38,157,102,182, 65,175,219, -235,200,124,142,207, 83, 16, 40,181, 70,103,244,150, 8, 25,236,218,184, 18,253,135,125,242, 82,237,251,245,119, 51, 1,154, 66, -118,142, 22, 20, 69,169,203, 86, 47, 81,215, 75,218,126,195,200, 88,185, 53,138, 48, 91,175, 55, 20,138,111,141,242,199, 78, 30, - 63,164,184, 24, 47,193,181,168,212, 2,147,165,230,102,141,237,158,164,205,203,238, 10, 32,186,108,237, 66,186,235,128,143, 39, - 70, 86, 13,170,109, 58,115, 79, 23,151,155,111, 45, 54,207, 33,180,223,212,200, 27, 71, 86,116,203,179,198,124,170,240,173,205, -114, 54,219,124,131, 58,122,122, 49, 93,135,226,233,203,118, 61,235, 54,156, 60,111,147,253,119,150, 5,203,115,224, 57,224,243, -239, 87,195,198,177,224, 88, 22, 28,203,195,202,242,242,210,118, 87,229, 87,105,111,206,195,157, 53, 7,207,120,189,187,208,213, -213, 21, 30, 30, 30,240,240,240,128,179,179,115,169, 70, 75, 40, 20, 42, 5,130,151,139, 58, 33, 33, 1,241,241,241,112,118,118, - 6,207, 89, 97,182, 2,117, 67,186,224,238,147,123, 56,117,241, 54,120,142,133, 66, 89,246, 85, 94, 20,222,193,159, 54,109,215, -123,101,135, 94,195,241,251,222, 95,248,235,231, 15,141, 54,100, 68,175,115, 56, 66,207,178,148,213,106, 69,247, 46,237, 18,110, - 69, 62, 62,254,221,196, 49, 97, 45,122,140,150,132, 6,251,195,104,102,145, 20,255, 4,103,247,255,106, 12,170,226,123,162, 99, -235,230, 9, 86,171, 21, 44,203,150,250, 32, 55,154, 45,153,140, 80,166, 24, 56,112,176,240,250,181,107,123, 20, 94, 53,118,177, - 20,125,135,226,185,250, 20,207,247,173, 95,191, 22, 44, 86, 14,122,189, 38,167,172,199,172,213,106, 99, 55,108,216, 80,101,232, -208,161,242,218,181,107, 11,159, 60,121,130, 69,139, 22,101,105,181,218, 88, 71, 53, 78,158,143, 90, 42,160,114, 30, 21, 70,180, -158,182, 10,197,192, 30,173,176,253,200, 69,156,189,112, 25, 9, 58,229,109,157, 77,176, 63, 49, 33,197, 84,199, 93,179,167, 87, -104, 37,102,215,198,156, 61,145,237,166,188,207,243,146,147,153,231,166,229, 59,126,115, 3, 90,131, 21,206,114,251,124, 79,133, -145, 45,134,162, 28,118, 68, 20, 16,123,225,242,205,186, 77,106,212,198,173,216, 60,100,228,154, 96, 48,217,192,113, 60, 56,240, -240,112, 18, 67, 42,162,241, 52, 62, 22, 28,111,137, 43,227,163, 66,221,182, 77, 91, 1, 64,129,162,120,129, 80, 32, 0, 15,251, -252,138, 50,153, 76,167, 82,169, 28,138,104, 89,108, 54,244, 13,107,142,144,166,245,209,123,180,125,206,204,211,191, 77,129,155, - 82,136,237,155,215, 33,241,252,210,205, 85, 66,199,156,188,119, 55,242,189,200, 91,127, 12,126,167,177,172,161,143, 32, 69, 84, - 92,152, 52, 63, 63,127, 15, 0,177, 72, 36, 10,107,211,166,141,251,158, 61,123,114, 61, 61, 61, 57,177, 72,164,238,213,179, 7, - 39, 20,137,178, 11, 63,123,233,210, 37,225,232,209,163,157,114,114,114,158,166,167,167, 95, 6, 96, 45,185, 33, 24,220, 9, 52, -182,129,162,164, 74,153, 60,161,114,229,170,126, 77, 67,154,187,188,219,183, 63, 36, 98, 9,126, 63,121, 28,203,151,204,219,169, - 75,125,240,113, 89, 74,242,109,141, 58, 76,122, 26, 23,171, 55,152,234,213,109,210,142,186,112,114,255, 56, 11, 60,151, 48, 18, -203,194, 78,125, 63,169, 22,155,162,195,242,185, 95,195,205, 69,129,184, 39, 15, 13,143, 30,220, 93,109, 53,106,190,118,216,100, - 1,144,103,177,239,133, 14, 9,115, 51, 89, 88,156, 15, 63, 98,228,108, 92,216,229,115, 71,159, 84, 8,106, 42,173,219,180,163, - 91,230,129,117,125,245,192,246,210,116,146, 31,190, 30,193,229,205,185,113,167,195, 79,185,120, 87,172,195, 80,160, 96, 49, 25, -161,142,185,110,211,167, 63,212,104,146,239, 57, 52, 10, 55, 43, 17,223,127,243,227,127, 62,109,218,164,137,130,135,244,165, 8, - 86,161,193,202,212,152,225,233, 36,134, 65,163,198,163,235,199,141,122, 53, 83,226,124,103, 54,115,190, 60, 51, 35, 93,252, 60, -157, 33, 58,164,164,207,103,102,164,139,109,230,124,121,233,143, 58, 6,206, 10, 49,238,198, 37, 63, 75,124,151, 8,237,185, 89, - 98, 33,243, 44, 79,171,176, 46, 40,133,118, 34,169, 43,146,179,140,160,192,131, 99,109,176, 89,205,208,106, 52, 72, 78, 73, 67, -122, 90, 58,180,218, 92,200,149,110,168,219,176, 25,156, 20, 82,220, 57,187, 19, 60,207, 59, 52,175,161,149, 18, 6, 55, 13,105, - 45,185, 23,111,207,197,146, 10,121, 28,218, 54, 47, 75,167,201,104,173, 75,125,244,168,172,117,177,141,101, 79, 69,220,127, 84, -167,130,111,101,234,246,147, 60,108, 94,187, 2,230,130,200,166,213,202,226,222,211,124,164,102,235,241, 52,230, 1,207,177,236, - 41,252, 75, 16, 20, 31, 0,132,160,126,221, 90,232,242,193,187,248,233,167,213,136,137,141,231,102,143,235,246, 84,167,205,125, -167, 12, 38,171, 19, 10,230,218,208,167, 71,205, 55,184, 53, 77, 58,120, 43,155, 54,152,249, 18, 19,124,164, 94, 21,209,250,227, - 69, 39, 12,218,108, 49,107,210, 11, 14,109,254,120, 91, 81,154,118, 7, 13,243,236, 9, 3,160,148, 9, 64, 81, 20, 10,187, 11, - 87,205, 28, 5,185,196,222,183,108, 48,217,240,193,248,197,216,188,248, 43,240, 0, 6,245,191,168, 47,110, 63, 97, 95,187,240, -115, 95, 92,171,144, 16,159,145,220,169,231,132,211, 70,139,196,212,163,207,208, 27, 77,154, 52,201,149,201,100,144,201,100,112, -118,118,134,155,155, 27, 92, 93, 93, 75, 61,118,171,213,170, 51,155,205, 30, 98,177, 24, 28,199, 33, 46, 46, 14,113,113,113,200, -203,203,131, 90,173, 70,190, 78, 99,187,118,122,151,160,110,104, 55,248, 85,173,135,138, 53, 26, 64,200, 80, 16, 8,104,156, 61, -184,182,184,253, 44,218,100,181,237,181,170, 99,239, 17,248,125,239, 26,254,250,249, 67, 99, 12, 25,209,107, 29, 61, 71, 5,221, - 61,119,250,246,237, 91,111,244,232,209,162, 31, 39,142, 62,113,228,228,217,232, 93,135,215,244,204,201,201, 13,224,121, 30,174, - 46, 46,137, 3,122,182, 56,212,190,101,211,132,211,167, 79,115,219,182,109, 51, 81, 20,117,183, 36, 77,123, 37,149,241,219,233, - 83,225,211, 90,183,109,135,117, 27,183,181,141,188,255,160,237,147, 39,143, 16, 80,177, 42, 42, 87,169, 1, 61,229,134,240,115, - 23,160,203,205,248,205,145,253,124, 37,170, 69,229,228,228,252, 49, 96,192,128, 46, 23, 47, 94,164, 7, 12, 24,160,207,204,204, -188,244, 66, 20,139, 47, 77,243,242,207,125,212, 0,126,171,216,118,216,206,100, 75,238, 23, 0,230, 5, 86, 12,196,217, 11,151, -113,249,226,213,213,153,242,192,233, 31,127,240,209,168, 74,189,152, 17,189, 66, 43, 49, 42, 55, 57,182,174, 89,196, 28,188, 28, -191, 56, 62,139, 93, 55,239,220,180,153,142,156,163,103, 15, 14,173, 5, 45,107,185,195,202,242,224,120,123,133,235, 36, 21, 22, - 87,241,190,166, 41, 48, 75, 62, 30, 51,122,244,147,186,245, 27,126,249,193, 71, 99, 68, 13,171, 6,224,218,227, 92,128,162,224, -238,163, 64,106,106, 42,206,239, 94, 99,203, 73,126,184,154, 97,184, 25,101, 40, 79,228, 36,220,174,254,194,230,168,204,204, 76, -156, 61,123, 22,133, 6,203,203,203,171, 56,163,245,146,102, 86,122,202,165,153, 11,126,105, 57,242,195, 62,232,209,174, 14,206, - 93,127, 2,115,193,124, 77,133, 67,201, 99, 47,255, 44,254, 98, 64, 85,243,167,125,131, 52, 6,171, 56,254,251,184,188,243,176, -175,193,202, 21,179,159,230,236,236,236,131, 81, 81, 81,173, 26, 52,104, 80,233,232,209,163,217,145, 87, 79,140,123,113, 39, 38, - 76,152,160,252,233,167,159,228, 60,207, 95, 50,155,205, 49, 14, 29, 59,141,173, 55,111,220,240,176, 88, 57, 92,184,122,167, 86, -199,150, 13,193,241,192,245,235,215,177,110,253, 58,227,221,136,219, 11,243,211,125,102,148, 96, 94,138, 44, 79,182,124,163, 14, -159,105,166, 38,199, 47,252,253,200,238,205, 77,219,246,196,224,207,103,204, 56,123,100,219,180,198,173,123,208,181,154,118,193, -205,203,225, 56,117,244,248,127, 44,186,236,105, 40, 61,119,164,200,253,148,200,228, 99,107, 55,110,139,167, 9,241,136,123,116, -239, 55, 99,246,227,148,132, 39,204,111, 41, 73, 9, 99,170,212,105,137,139, 39,182,143, 43,193,104,149,120,205, 7,120,201,214, - 28, 61,124,112, 96, 82,210,207, 62,249, 6,163,132,231,121,163, 68, 44, 72, 83,210,218, 29, 26,135,247,243,129, 69,157, 82,169, -111,255, 15,198, 28, 89,190,124,137,208,219, 85,142,180, 28, 35, 52, 6, 11,180,122, 11,104,138, 66,117, 63, 5,244,218,108,156, -219,189,192,106,214,229, 12, 0,158, 88,138,211, 84,168,130,103,229, 60, 14,255,124,194, 39,103, 32,118, 9,240,171,220,225,155, - 18,163,117,218,228,219, 61, 39,124,114, 40,152,231,249,142, 10, 85,176, 54, 63, 35,106,106,113,199, 78, 81,246,251,123,112,251, - 0, 88,108,246,249,199,108, 28,192,114, 92, 65,148, 15,224,159,245,231, 83,165, 28, 59,197,237, 56,114, 9, 41,233,185, 48,152, -173, 48,153,109,176, 88, 89,208, 12, 3, 87, 55, 87,212,168,220, 8, 46,174,206, 72, 79, 75,193,229,211, 7, 17, 29,113,238, 18, -197, 99,186, 65,253,232,180, 35,231, 72, 36,115, 13,246,245,243,161, 83, 53,102,200,196, 12,110,159, 59,106,177,154, 77, 11, 29, - 52, 89,175,105,230,102,101, 47,254,114,226,164, 65,191,110,216,232, 83,175,138, 51,146, 50, 13, 72, 82, 27,161, 53, 90, 11,140, - 24, 7,147, 46, 19, 17,225, 27,211, 88,163,118, 49,254, 37, 20,107,180,108, 22,163,118,207,241,107, 30, 83,166, 45, 96, 30, 63, -137,177,206,250,162,123,146, 65,167,233, 86,230, 72,214, 11,252,250, 89,149,237,127,198, 65,188,214, 93,200,115,224,120, 30,135, -174,166, 61,235, 46,228, 10, 50, 47,111, 61, 41,121, 25,193, 23,215, 46,108,215,109,220,239, 17, 81,218, 45, 6, 67,186,203,195, -199, 11,115, 0,128, 97,152,103, 63,133,185, 89, 70,163,209, 92, 74, 23,202,166,181,107,215, 78, 30, 51,102,140, 36, 49, 49, 17, - 79,158, 60, 65,110,110, 46,164, 82, 41,142, 31, 63,110, 5,103, 91, 24,113,113, 95, 92,212,205,147, 63, 4, 55,233, 82,161, 94, -104, 55,200,229, 10, 8,120,199,147, 49,229,170,160,129, 77,218,246, 90,217,241,221,145, 56,181,111, 45,127,253,220,193, 79, 12, -234,232, 53,101, 45,203,220,220,220, 72, 0,143, 22, 46, 92,216,112,221,186,117, 85, 38, 78,156, 24,179,105,229,180,229, 0,144, -149,149, 5, 0,184,117,235, 22,255,201, 39,159,152,140, 70, 99,108, 78, 78,206, 77,148, 50, 0, 2, 0, 12,106,249,156,117,171, -230,213, 77, 76, 78,237, 83,181,110, 51,120, 85,105, 6,159,234,205,145,163,181,224,218,227, 20,196, 60, 56,141, 7, 23,118, 31, -213, 43,109,211, 80,198,249,141, 27, 52,104, 16, 64,211,116,101,157, 78,231, 83,187,118,237, 6, 10,133,226, 86,131, 6, 13, 26, - 9, 4,130,164, 27, 55,110,196,151, 69, 43,225,220, 70, 83,197,182,195,150, 37,104,157,218,199,164,233, 27, 37,104,157,110,233, - 37, 46, 95,169,195,151,153,126,101,252, 23,243,150,204,200, 93, 27, 53,123,182,174, 89,196,124, 48,106, 2,123, 47,207,237, 11, -129, 76,252,123,217,194,213,116,234,167, 67,123, 63,159,222,161, 32,146, 85,240,187, 67, 97,250,188,188,136, 60, 0,147, 35,238, - 11, 87,222,251, 98,244,204,250, 77, 91, 14,105,243,206, 0,218, 38, 82,226,196,190,159,249,216,136,240, 93, 2,158,253,206,224, -192,106, 0,165,118, 7,153,205,142,152,172,215,247, 49, 81,209,110,215,182,245,195,246,236,219, 59,247,221, 94,189, 61, 86,125, -255, 62, 22,252,178, 31, 10,153, 4, 60,199,225,253,246, 1,253,126, 24, 81,179,103,128,183,212,127,207,153,164,243,159, 47,185, - 55, 89,175,183, 68, 59, 16,137,225, 51, 51, 51, 47, 40,149, 74,117,171, 86,173, 66, 36, 18, 9,149,153,153, 41, 80,169, 84, 54, - 23, 23, 23,115, 82, 82,146,222,100, 50,237, 1, 80,166,105,199, 45, 86, 14,113,233, 70, 28,216,187, 7,119,174,158,198,131, 7, - 81,218, 7,247, 31,172,160, 4,252,146,252,244, 71,217, 64,153, 27,248,224,138, 28,117,200,151,121,212, 33,107,210,110,221,180, -122, 86, 7,189,209, 52,172, 65,139,238,168, 84,171, 37,109,177,178,184,123,253, 12,206,236, 94,178,192,162,203,158, 82,158,115, -236, 87,161, 74, 13,158, 17,227,143,179, 71,192,115,220,106, 0,224, 57,110,245,173,139, 71,199, 52,239, 54, 2,238,170, 74, 13, -114,159,222,162,240, 6,179,135,139, 4,116,254,177, 61,191,238,139,139,139,195,195,135, 15,241,248,241, 99,100,103,103, 99,235, -214,184, 50,157, 31,125, 78,252,239,209,247,233,174,239,189, 63,248, 80,191,129, 31, 74,171,212,168, 71, 7, 87,112,131,135, 82, -128,168,199,241,136,190, 17,193, 69, 93, 59,106,180,104, 50,222, 53,228,196, 23,107,252,228,158,181,188, 1,118, 74,225,218,133, -161,161, 45,131, 39,205,158, 27,226,225,165, 42,178, 30,207, 82,103,136,191,254,252, 96,240,229, 43,127, 56,180,214, 33,199,178, - 89,163,134, 13,224, 24,251, 66,161,120, 22,167, 46, 40, 61,123, 99,202,254, 62,207,217, 74,141,224,127,212,167, 53,108, 28,135, -124,131, 5,154,124, 19,242,180, 70,164,102,100,225, 78, 68, 4,206, 29, 58,136, 39, 81,119, 98,173,102,243, 73,154,166,118, 27, -210,163,207,149,173,167, 73, 80,197,195,221, 29,177,217, 58, 72,197, 2,196, 71,223, 48,229,107,242,182,188,233,117,100,200,122, -148,154,193, 80, 93, 6, 12, 24,120,188, 67,215, 94, 46, 77, 91,116,146,123, 58,187, 66, 36,224,241, 40, 46, 5, 55, 47, 29,207, -143,185,115, 94, 99, 53,235,194,222,198,170, 47,127,115, 74, 31,117,104, 49,229,247, 28,212,187,237, 94,134, 17,136, 57,206,102, -178,152, 77,239,149,199,100,253, 89,240, 60,155, 52,108, 80,159,151,218, 6, 54,142,151, 13,234,127,194,240, 98, 91,193,202,242, -242, 65,253, 47,233,237, 21, 72,241,137,125,190,190,238,221, 11,215, 46, 76, 72,200,186,158,157,109, 58, 3, 32,201,104, 52,190, -241, 62,166,167,167,207,156, 61,123,118, 15,189, 94, 95,179, 93,187,118, 18,103,103,103,100,101,101,225,228,201,147,214,195,135, - 15,223,207,200,200,248, 1,200,176, 25,208,232,183, 8,227,190,161, 81, 55, 78,254, 80,179, 73,215, 10,245, 90,116,115,188, 50, -147,200, 70,118,232, 53,156, 58,181,127, 45,127,237,236,254, 79, 13,234, 71,191,148,163, 88, 45, 70,163,241,170,209,104,188,247, -221,119,223, 53,245,246,246,246,254,225,135, 31,164, 26,141, 70,184,106,213, 42, 99,102,102,102,154, 70,163,185,140, 18,242,105, - 94,231,150, 53, 47, 25,125,143,237, 89,219,158,223,179,182,179,171,167,127, 23, 23,175, 10,213,114,213,201,177,121,234,148,147, - 0, 78, 21, 76, 20, 89, 38, 26, 54,108, 88,149,162,168, 1, 0,234, 42, 20,138,234, 74,165, 82,194,243,124, 77,138,162, 34, 57, -142,139,168, 93,187,246,225,251,247,239,151,105, 50,217,132,115, 27, 77, 1,193, 45,183,101,235, 57,145,153, 22,109, 75, 56,183, -209, 4, 0, 25,191, 79,210, 3, 56,112,191,221,228,190, 7, 47,199, 47,143,204,113, 25,167, 62, 59,247, 96, 89,247, 57, 47,233, - 78,245,183,117,253, 27, 83,239, 39, 1, 24, 22,113, 3,139,238,222,186,252, 35,197, 67,200,194, 54,203,144,241,248,198,219,208, - 23, 10,133, 70,127,127,255, 34, 71, 23, 74, 36, 18,163,201, 84, 82, 0,229,156, 77,151,138,117, 64,219,141,123,119,110, 28,182, -255,224,129,185,109, 58,190,235, 33,173, 80, 1,149, 85, 20, 54, 78,105, 60,238,244, 45,245,181, 94,147,206,255, 20,147, 98,140, - 64, 25,243, 97,116, 58, 93, 52,128, 28,157, 78,215,155,231,249, 68,138,162, 2,114,114,114,110, 91,173,214,187,101, 54, 4, 28, - 6,135,134, 54,219, 74, 81,148,128,183,113,243, 47, 11,153,109,198,212, 7, 73, 40,231,178, 36,245, 42, 59, 99,252, 15,203, 26, - 87,171, 30,212,184,112,173,195, 58,149,156, 48,122,242,162,198,149,170,212,104,252,124,253,195, 82,211, 4,120,171, 62,231,227, -189,235,231,159,191,117,229,204,183,158,190,149, 42,165, 37,197, 60, 72,124,124,123, 38,107,212,236, 45,239,121,142,123, 28,185, -100,221,194,201, 19, 83,147, 99,215,233,213,143,238, 1,128, 94,253,232,222,131,155,248, 62, 51, 45,105, 98, 86, 70,204,194, 55, - 45,139,252,252,252,148, 45, 91,182,184,182,108,217,146,246,246,246,134, 90,173,198,153, 51,103, 56,142,227,146,203,172,149, 29, -123, 38, 63,155,114,255,237,151,149,243, 69, 10,167,110, 54,155,205,143,231, 1,129, 64,144,106,214,107,142,107,105,197, 36,228, -196, 27, 75,126,102,112, 20, 0,186,112,237, 66,142,227,168,249,203, 55,198, 11,165, 78, 69, 78,134,104, 53,106,229, 28,199, 57, -188,214, 97,238,211,155,213,222,214,253, 77,241,252,244, 6, 77, 66,190,181, 90, 45,198,130,251,195, 8,192,200,243,200,162,105, -234, 28,195, 89, 79,104,202,209,152,162, 40, 56,243,148, 0, 78, 50, 1, 40, 80,208,229,101,243,101,201,201, 42,210, 16,103, 68, - 71,234, 51,218, 86, 60,102,222, 57, 52,252,247,163,253, 89,150,173, 92, 16, 51,136, 51, 25,242,119,233, 82,221,126, 3,110,216, -240,207,231, 72,161,217,162,254,228,127,228, 80, 55,202,223, 73, 51,184,138,172,119, 5,127,239,161,113,241, 25,215, 98, 18,245, -191,225,229,101,117,202,179,159,140,183,183,247,247, 20, 69, 13, 17,139,197, 74,179,217,156,207,243,252,166,244,244,244,153,120, -109,241,223, 70, 66,153,202, 48, 84, 44,149, 79,181, 24,243,255,208,103, 68, 15, 46,237,216,229, 94, 65, 93,164, 10,197,100,163, - 33,127,147, 62, 61,122,227, 91, 46, 79, 23,137, 68,210, 72,169, 84, 10, 51, 51, 51,175, 2,200,251, 59,157,247, 6, 13, 26, 4, -210, 52, 93,153,227, 56,111, 0, 46,176,143, 10,201, 20, 8, 4,201, 5, 17, 45,190,172,154,173, 62,218,229,217,177,115,157,241, - 39,207, 71, 45, 45,232, 86,124,134,127,191,197,210, 33,221,218, 79,248,109,239,129,162, 70, 29,254,223, 93,243,255, 59,205,182, - 2,165,111,230, 48, 90,236, 50,171, 99,176, 81,159,153,146,252,201,133,187,234,171, 0,180,229,217, 79,145, 72,244,129,197, 98, -145,137, 68, 34,131,197, 98,217,242,119, 57,118,153, 42,120, 56, 13,222,225,149, 41, 56, 80, 55, 94, 25,180,242, 79,185,150,152, -122,245,234,181, 22,137, 68,129, 44,203,202,205,102,179,222, 96, 48,196,197,199,199,255,129,226, 23, 62,255, 83,247, 83,161,170, -177, 68, 36,146,124, 1, 0, 22,139,105, 89,126,198,163,241, 37,125,177,132,207,255, 95,159, 35,207,202, 77, 30, 9, 24,161, 23, - 10, 38,230,230,108, 54,117,122,236,245, 26,127,225,126, 18,222,240,228, 18, 77,162, 73, 52,137,230,171,208,164, 60,137,230, 95, -169, 41,245,173, 21, 32,245,173,229,240,164,203,197,124,158,148, 39,161,144, 81, 69,252, 0,112, 96,194, 82, 2,129, 64,248, 19, -224, 72, 17, 16,254, 74,140,169, 15, 18,255,204,207, 19,254,117, 20,155, 19, 77,149,224, 74,203, 18, 18,124, 19,103,123,138,104, - 18, 77,162, 73, 52,137, 38,209, 36,154,255, 58,205,210,180,255, 31,187, 36, 71,189,178,125, 4,192,255, 36,225,159,132, 85,137, - 38,209, 36,154, 68,147,104, 18, 77,162,249,111,227,153,241,162, 73, 89, 16, 8, 4, 2,129, 64, 32,252, 57,144, 28, 45, 2,129, - 64, 32, 16, 8,132,242, 81, 84,215, 33, 49, 90, 4, 2,129, 64, 32, 16, 8,111,129, 98,147,225, 73,215, 33,129, 64, 32, 16, 8, - 4, 66,249, 40,140,104,249,226,149,233, 29,136,209, 34, 16, 8, 4, 2,129, 64,120, 59,164,162,168,232,214,225,195,135,249,162, -126, 39, 16, 8, 4, 2,129, 64,248, 95,240,127,238, 69, 94,140,100,141, 42,216, 6,240, 66, 68,139, 24, 44, 2,129, 64, 32, 16, - 8,127, 23,179,245,127, 70, 97, 36,171,240, 39,245, 53,163,213,163, 71, 15,138,152, 45, 2,129, 64, 32, 16, 8,127, 21,255, 68, - 47, 66,191,122,128,228, 52, 19, 8, 4, 2,129, 64,248, 43,205,214, 63,233,120,200,244, 14, 4, 2,129, 64, 32, 16, 8,229,195, - 23, 64,247, 23,182,255,103, 75,240, 16, 8, 4, 2,129, 64, 32,252,211, 25, 85,220, 54,137,104, 17, 8, 4, 2,129, 64, 32,188, -125,179, 69, 32, 16, 8, 4, 2,129, 64,248,127,134,172,108, 78, 52,137, 38,209, 36,154, 68,147,104, 18,205,127, 58,133,243,104, - 1,197,205,163, 69, 32, 16, 8, 4, 2,129, 64,120, 35,186,195, 62,127,214,168,130,215,238,196,104, 17, 8, 4, 2,129, 64, 32, -188, 93, 94, 91,126,135, 24, 45, 2,129, 64, 32, 16, 8,132,183,107,176,214, 16,163, 69, 32, 16, 8, 4, 2,129,240, 39, 67,140, - 22,129, 64, 32, 16, 8, 4,194,159, 4,133,226, 71, 14,156, 42,131,206,155,140, 62, 56, 69, 52,137, 38,209, 36,154, 68,147,104, - 18,205,127,157,102,105,218,167,240,255, 71,225,204,240, 71,240, 60, 17,126,205,255,226, 31,147,161,175, 68,147,104, 18, 77,162, - 73, 52,137, 38,209,252,167, 51,234,149,215,103,144,174, 67, 2,129, 64, 32, 16, 8,132,183,107,182,200, 18, 60, 4, 2,129, 64, - 32, 16, 8,111,137, 98,187, 9, 73, 68,139, 64, 32, 16, 8, 4, 2,161,124, 20,187,168, 52, 49, 90, 4, 2,129, 64, 32, 16, 8, -127,142,225, 34, 70,139, 64, 32, 16, 8, 4, 2,225, 45,154,172, 81, 69,254,245,240,225,195, 60, 41, 35, 2,129, 64, 32, 16, 8, -127, 21,255, 88, 47, 82,120, 96,196,108, 17, 8, 4, 2,129, 64, 32, 94,164,204,248,226,249,104,195, 81, 5,219, 0,200,168, 67, - 2,129, 64, 32, 16, 8,132,242,210, 29, 47,143, 60, 28, 85,184, 77,140, 22,129, 64, 32, 16, 8, 4, 66,249, 25, 85,226, 95, 73, -183, 33,129, 64, 32, 16, 8,132,191,146,127,162, 23,161,200,105, 37, 16, 8, 4, 2,129, 64, 40, 23, 69, 69,179,214,144, 98, 33, - 16, 8, 4, 2,129, 64,248,115, 13, 23,129, 64, 32, 16, 8, 4, 2,225,207, 48, 89,127,246,132,165,100,101,115,162, 73, 52,137, - 38,209, 36,154, 68,147,104,254, 91, 76,214,139, 83, 60, 0, 32,163, 14, 9, 4, 2,129, 64, 32, 16,202, 11, 89, 84,154, 64, 32, - 16, 8, 4, 2,225, 79,130, 44, 42, 77, 32, 16, 8, 4, 2,129,240, 63, 54, 92,196,104, 17, 8, 4, 2,129, 64, 32,188, 69,147, -245,146,217, 34, 57, 90, 4, 2,129, 64, 32, 16, 8,229,163,216, 28, 45, 10,197,143, 28, 56, 85,134,127,240, 38,163, 15, 78, 17, - 77,162, 73, 52,137, 38,209, 36,154, 68,243, 95,167, 89,154,246, 41,252,255, 51, 10,255,163, 9, 75,201,208, 87,162, 73, 52,137, - 38,209, 36,154, 68,147,104,254,219, 32,211, 59, 16, 8, 4, 2,129, 64, 32,188,109, 99,245, 42,196,104, 17, 8, 4, 2,129, 64, - 32,148, 15, 50,143, 22,129, 64, 32, 16, 8, 4,194,159,132, 47,236, 81,173,194,215, 70,196,104, 17, 8, 4, 2,129, 64, 32,188, - 29,186,195, 30,213, 42,124, 37, 70,139, 64, 32, 16, 8, 4, 2,225, 45, 82,228, 60, 90, 20, 0, 28, 62,124,152, 47,216,110,215, -163, 71,143,115,164,172, 8, 4, 2,129, 64, 32,252, 47,249,167,122,145,103, 17,173, 30, 61,122, 80, 0,206,146, 83, 77, 32, 16, - 8, 4, 2,225,175,224,159,232, 69,232, 87,156,100, 59,114,154, 9, 4, 2,129, 64, 32,252, 21,252, 19,189,136,224, 21, 23, 73, - 32, 16, 8, 4, 2,129,240,151,240,127,236, 69,124, 97, 79,132, 63, 82,240, 10, 20, 76,249, 64,230,209, 34, 16, 8, 4, 2,129, - 64, 40, 31,133,163, 13, 95, 91,122,135, 68,177, 8, 4, 2,129, 64, 32, 16,202, 71, 81, 51,195,175, 33,197, 66, 32, 16, 8, 4, - 2,129,240, 39, 66, 34, 90, 4, 2,129, 64, 32, 16, 8,229,231,197,168,214,255, 44,154, 69, 86, 54, 39,154, 68,147,104, 18, 77, -162, 73, 52,137,230,191,201,100,189,180, 77,102,134, 39, 16, 8, 4, 2,129, 64,248,147, 32,163, 14, 9, 4, 2,129, 64, 32, 16, -202, 71,225,136,195, 23,183,137,209, 34, 16, 8, 4, 2,129, 64,120,139,102,235, 53, 72,215, 33,129, 64, 32, 16, 8, 4, 66,249, - 24, 85,220, 31,136,209, 34, 16, 8, 4, 2,129, 64,248,147, 12, 23,133,226, 71, 14,156, 42,131,240,155,140, 62, 56, 69, 52,137, - 38,209, 36,154, 68,147,104, 18,205,127,157,102,105,218,167,240,255,199, 95, 54, 97, 41, 25,250, 74, 52,137, 38,209, 36,154, 68, -147,104, 18,205,127, 45,164,235,144, 64, 32, 16, 8, 4, 2,225,111, 96,180,188, 4, 2,193,183, 50,153,236, 39,153, 76,246,139, - 64, 32, 88, 8,192,173,172,255, 80,161, 80,140,243,241,241,121,232,227,227,147, 20, 24, 24,120,212,201, 73,254,101, 85, 9,218, - 0, 16,190,165,227, 9, 6,240,165, 76, 38,123, 32,149, 74,227, 1,108, 6,240, 37, 0,207,242, 8,207,244,195,123,247,190,232, -189,127,166, 31,222,123,229, 79,221,189,189,189, 47, 0,232,242,182, 78,202, 64, 57, 58,245, 83,224,105, 63, 5,158, 14,148,191, -121,171,193,201,201,105,136,175,175,239,101, 15, 15,143,100, 95, 95,223, 75, 82,169,180, 95, 25, 37, 84,222,222,222, 11, 2, 2, - 2,162,253,252,252,150,194,190, 58,249,223,150,214, 18,180, 14,145, 64, 29, 42,134,182,165, 24, 63,133,138,209,185, 51, 32,127, - 67,185, 86, 0,118, 59, 59, 59,223, 22, 8, 4,135, 1,244, 45,184,190,250, 10, 4,130,195,206,206,206,183, 1,236, 46,248,220, -155, 92,167, 11, 0, 36, 3,152, 83,176, 61, 54, 32, 32, 64, 91,191,126,253,248,250,245,235,255, 90,189,122,245, 15, 29, 21,147, -203,229,157, 3, 2, 2,246, 4, 6, 6,198,135,134,134,102,251,251,251, 71, 85,168, 80, 97,163, 68, 34,105, 71,170, 56, 2,129, - 64,248,251,211, 19,192, 92, 0, 43, 34, 34, 34,110,242, 60,127,147,231,249,155, 17, 17, 17, 55, 1,252, 4, 96, 30,138, 15, 33, -190,244,190,135,135,199,244, 89,179,102, 25, 83, 83, 83,121,181, 90,205, 71, 71, 71,243, 75,166, 78,230,186,186, 11,248,170, 94, -110,122, 95, 95,223, 39, 21, 43, 84,216, 94, 71, 73, 79, 6, 80,205, 17,205, 23,112,147,201,100, 87,167, 78,157,170,251, 47,123, -215, 29, 22,197,213,126,207, 54,118,151,221,133, 93,250,210, 85,138, 96, 1,197,222,176,119,236,198,174,177,199, 18,141,198,216, - 21, 48,106, 44,177,199, 36,250,217, 34, 26, 43,177, 96,239,216,149, 69, 17, 16, 1, 65,164,119,182, 2,219,239,239, 15, 74,136, -161,154,124,223, 47,101,206,243,204,179,176,123,231,204,189, 51,247,206,156,121,239,123,223,247,254,253,251, 74,141, 70,163, 52, - 26,141,202,204,204, 76,229,205,155, 55,149, 93,186,116, 81, 2, 88, 4,128,209, 0,206, 74,172,115,192, 61,114,112, 13, 89,231, -128,123, 85,191,247,246,246,142, 53, 26,141,100,212,168, 81,106, 0,142, 13,225,252, 16,142, 0,183,133, 57, 68,163, 5,200,209, - 31,249,154,144,189, 75,200,104, 62, 82, 63,134,211,214,214,246,252,130, 5, 11,228, 25, 25, 25, 68,173, 86,147,212,212, 84, 50, -123,246,108,153,173,173,237,177,122,182,221,202,199,199, 39,231,241,227,199, 70,169, 84, 74,238,222,189,107,108,217,178,101, 78, - 61,197, 86,159, 15,234,178,223,193,193,225,114, 67, 54, 91, 91,219, 3, 13,189, 70, 29, 56, 72,213, 74,238, 16,242,252, 58,185, - 48,170, 19,217,209,214,137,140,180,100, 75,187,178,241,121,247,234, 67,153,212,196,249, 73,247,238,221, 85,175, 94,189, 50, 20, - 20, 20,144,216,216, 88,227,204,153, 51, 75, 1,196,204,156, 57,179, 52, 54, 54,214, 88, 80, 80, 64, 94,189,122,101,232,222,189, -187, 10,192,140, 6,212,147, 14,224, 80, 80, 80, 16, 33,132,144,245,235,215, 19, 95, 95, 95,210,171, 87, 47,162, 84, 42, 9, 33, - 36,133, 16,114, 88,175,215,127, 90, 31, 78,161, 80, 56,105,193,130, 5,202,226,226, 98, 82, 1,163,209, 72,164, 82, 41,217,179, -103,143, 74, 44, 22, 95,174,225, 37,131,154,242,160, 56, 41, 78,138,243,175,198,249,119,134, 61,202,252,180, 42,182,122, 27, 38, -198, 47, 91,182,172, 66, 84, 93,233,218,181,235,179, 79, 63,253, 84,242,233,167,159, 74,186,118,237,122, 23,192,181,136,136, 8, -201,210,165, 75, 37, 0,198,215,113, 33, 44, 58,119,238, 44,205,206,206, 38,158,158,158,164, 81,163, 70, 36, 59, 59,155, 16, 66, -200,243, 79,218,144, 91,205, 64,210,194,175,144,235,191,156, 33, 51,237,153,164,155,189, 80,103, 47, 22, 23, 88, 91, 91,111,192, -111,115, 50, 86,119,113, 71, 52,107,214, 76, 17, 19, 19,163, 76, 72, 72, 80, 6, 7, 7, 43,123,245,234,165,244,241,241, 81,142, - 28, 57, 82,185,123,247,110,165, 86,171, 85, 30, 56,112, 64,105,110,110, 30, 83,141,216,250,104,161,197,100, 50,119, 69, 69, 69, -145,183,111,223,146,114, 43, 69, 77,156, 66,145, 72, 52,192,194,194, 98,145, 72, 36, 26, 0, 64, 8, 0,158,128,160,149, 16, 46, -159,183,114,243, 14, 27,223,199,125, 79,159,118,109, 70,155,209,165,186,239,150, 16, 50,202,229,163,132,150, 80, 40,156,244,197, - 23, 95, 40,212,106, 53, 41, 46, 46, 38, 74, 26,233, 44, 13, 0, 0, 32, 0, 73, 68, 65, 84,165,146, 20, 23, 23, 19,133, 66, 65, -198,143, 31, 47,231,114,185, 35,234,226,180,182,182,254, 58, 60, 60, 92,159,157,157, 77,194,195,195,201,229,203,151,201,222,189, -123,141,182,182,182,219, 27, 58, 0,197, 98,241,141,235,215,175, 75, 34, 35, 35, 37, 79,159, 62,149,232,116, 58,137, 86,171,149, -104,181, 90, 73, 88, 88,152, 36, 52, 52, 84,114,242,228, 73,137, 70,163,145,104, 52, 26,137, 90,173,150, 52,105,210,228,106, 67, -175, 81,123, 14,210, 52,247, 47, 16,178,125, 30,145,109,158, 67,164,139, 7,145,220,217,254,228,251,118, 78,196,223, 20, 23,241, -251,220,158,213,114,178, 88,172,123, 41, 41, 41,198, 21, 43, 86,104,154, 55,111, 46,155, 54,109, 90,169, 90,173, 38,132, 16,162, - 86,171,201,180,105,211, 74,155, 55,111, 46, 91,177, 98,133,230,221,187,119, 70, 38,147,121,179, 1,245,220, 84, 33,178,238,221, -187, 71,170, 66,169, 84,146, 94,189,122,165,248,250,250, 30,110,220,184,241,132,186, 56, 5, 2,193,176,229,203,151, 43, 73, 53, -208,233,116, 68,161, 80,144,119,239,222, 25, 27, 53,106,148, 9,192,138,186,153, 83,156, 20, 39,197, 73, 9,173,255, 26,102,213, -241,127,245, 39,113,233,210,165, 18, 66,136,100,213,170, 85,146,114,203,150, 9, 0, 65,249,198, 4, 48,110,249,242,229, 18, 66, -136,100,217,178,101, 21,101,106,186, 16, 67, 78,159, 62,173,221,185,115, 39,177,179,179, 35, 98,177,152,236,218,181,139, 24,141, - 70,146, 29,118,140,220,106, 6,242,122,229, 20, 66, 8, 33,241, 27,230,147, 91,205, 64,146,126, 88, 71, 38, 78,156, 88,204,227, -241,198,215,114,113, 45,219,180,105,163, 40, 41, 41, 81, 30, 57,114, 68,201,227,241,158, 3,104,142,178,169, 72, 90,121, 93, 39, - 55,111,222, 92, 30, 29, 29,173,252,249,231,159,149, 0,130,235,217, 97,220, 1,244,228,243,249, 35,151, 59,178, 18,200,193, 53, -100,185, 29, 94, 1,104, 9,192,166,188,140,195,178,101,203, 8, 33,132, 56, 59, 59,135,215,192, 41,244,241,241, 89,150,144,144, - 16,168,211,233, 2, 35, 35, 35, 3,155, 54,109,186, 98,104, 19,251, 78,231,198,247,245,147,173,155,227, 71,182, 45,246,249,118, - 96,251, 62, 39,198,246, 24, 63,181,177,245,253,105,182,220,226, 49, 66,134,226,131,169,195,122,117,108, 71, 71,199,167,169,169, -169,149,226, 74,161, 80,144,140,140, 12,146,156,156, 76,238,223,191, 79,236,237,237,111,213,197, 41, 22,139, 99, 83, 83, 83,201, - 15, 59,118,144, 81, 45,189,137,191,200,140,116,183, 48, 35,109, 5, 92, 85, 51,160,109, 67,133,214,139, 23, 47, 36, 0, 36, 0, - 36, 5, 5, 5,146,130,130, 2, 73, 81, 81, 81,229,119, 0, 36, 50,153, 76, 34,147,201, 36, 26,141, 70,226,230,230,214, 96,161, -213,133,139, 46, 29,184, 40,236,196, 65,201, 16, 71,235,204, 57, 77,172, 13, 79,198,119, 34, 69,243,122,145,157,126,142,164, 43, - 27,159,215,147,115, 8,155,205,190, 11, 96, 73,185, 40,159, 50, 96,192,128, 98, 66, 8, 25, 48, 96, 64, 49,128, 41,229,223,127, - 81, 46,178, 6,212,179,158,116, 15, 15, 15, 85,133, 37, 11,192, 35, 15, 15, 15,149,175,175, 47,241,245,245, 37,206,206,206,138, -114,238,122,221,208,220,221,221,227, 75, 74, 74, 42, 5,160, 84, 42, 37,153,153,153, 36, 41, 41,137,196,196,196,144,231,207,159, -147,148,148, 20,114,234,212, 41,131, 72, 36,186, 68,221,204, 41, 78,138,147,226,164,132,214,127, 85,104,125,184,253, 22, 97, 97, - 97,228,131,175, 54, 71, 68, 68, 72,150, 47, 95, 46,169, 67,153,205, 90,181,106, 85,133,213,235,155, 90, 30,254, 7,226,227,227, -201,148, 41, 83,136,151,151, 23,241,242,242, 34,159,126,250, 41,145,201,100, 68,153, 24, 77,110, 53, 3,121, 62,166, 45, 33,132, - 16,197,235, 72,114,171, 25,136,100, 98,103,242,242,229, 75,226,228,228,116,189,150,227, 95,124,248,240, 97,222,177, 99,199,178, - 81,230,143,197, 2,208, 17,192, 46, 83, 83,211, 67, 40,155, 46,108, 4,192,194,211,211,179,176,184,184, 88, 57,106,212, 40, 37, - 0,151, 90, 56,187,123,121,121,189, 61,112,224, 0,201,205,205, 37,133,133,133,100, 75,151,166,132, 28, 92, 67,214,183,109,100, -252,225,135, 31,212, 75,150, 44, 81, 89, 90, 90,134, 1,112, 24, 53,106,148,158, 16, 66,252,253,253,115,170, 35, 19,137, 68, 3, - 18, 18, 18, 2, 75, 75, 75, 3,165, 82,105, 96, 97, 97, 97,224,133,115,231, 2,251,183,108, 58, 69,182,110,142,223,185,241,125, -253, 6, 58, 90,140,220,222,175,221,103, 25, 43,102,140, 90,213,185,249,235,210, 77, 11,239,124,210,196,110,235,199, 92,109, 27, - 27,155, 44,181, 90, 77, 0,252,110,123,251,246, 45,177,178,178, 74,173,139,195,210,210,114,213, 23,227,198, 26, 70, 52,114, 36, -111,119,174, 38,186, 27, 63, 19,221,229, 35, 36,113,243, 98, 50, 84,108, 45,239,104, 66, 95, 94,223,250,136,197,226, 27, 79,159, - 62,253,141,208, 42, 42, 42,170, 86,104,201,229,114,137, 70,163,145,120,120,120, 92,253,163,189,190, 35, 27,110,221, 77, 25,207, - 35,167,116, 35,121,115,122,145, 1, 66, 86,202, 31,160, 27, 7,224, 46,128,137, 13,220,143, 14, 96, 83,133,160,218,188,121, 51, - 33,132, 16, 15, 15, 15, 21,254,216, 98, 20,161,183,183,119,242,140, 25, 51,244,205,154, 53,203,237,210,165,139,244,217,179,103, -228,222,189,123,228,242,229,203,228,204,153, 51, 36, 58, 58,154,100,100,100,144,248,248,120, 50,120,240, 96, 41,128,238,212,189, -144, 2, 5, 10,127,101, 84,163, 69,254,246,160, 87, 52, 44, 32, 32,128, 86,165,129, 66, 0,220,182,109,219,230,109,218,180,105, - 27,202, 98, 65,208,124, 24,248,164,151, 41,243,101, 47, 83,230, 75, 31, 6, 62, 41,183, 24,237,223,176, 97,195,215,190,190,190, - 89, 0, 76, 1,136,171, 59, 16, 33,164,155,149,149, 21, 82, 83, 83, 33, 20, 10, 33, 20, 10,145,154,154, 10, 66, 8,244, 4,208, - 17, 64,173,213,162,164,164, 4,165, 70,130, 18, 35, 32, 87, 42, 33, 22,139,161,213,106,221,106,168,127,171, 49, 99,198,184,249, -248,248,228, 45, 93,186, 52, 19,101,190, 50,135,166, 79,159,126,227,209,163, 71, 62, 74,165,178, 48, 38, 38,166,180,101,203,150, - 3, 0,136, 19, 18, 18, 38,237,217,179, 7, 83,166, 76, 65, 45, 15,157,150,131, 7, 15,190, 28, 29, 29,237, 54,113,226, 68,220, -189,123, 23, 91,182,108, 65,126,126, 62, 1, 0,181, 90, 77, 12, 6,131,182,115,231,206,218,157, 59,119,182,247,247,247,127,218, -164, 73, 19, 6, 0, 36, 39, 39, 39, 86, 71, 72,163,209,154,186,186,186, 66,173, 86, 35, 47, 47, 15,209,209,209, 48, 19, 10, 17, -149,153,111,215, 99,251, 15, 5, 43,207,221, 96,141,107,239, 99,185,168,111, 23,245,198,235,119, 61,155, 59,216,217,105,180, 58, -113,124, 86, 78,230,199, 92, 84, 19, 19,147,212,252,252,124,104, 52, 26,148,148,148, 64, 46,151,163,160,160, 0,249,249,249,200, -204,204,132,137,137,201,219,186, 56,204, 11, 11,195,147, 31,222,163,157,250,113, 51,220,244,133, 96,158,221, 5,230,249,239,225, -174,201,195,190,213,179,205, 52, 86, 54, 65,230,102,102, 69, 34,145,104, 63, 0,143,186,248,252,252,252, 80, 80, 80,128,130,130, - 2, 88, 89, 89,193,194,194, 2, 22, 22, 22,144, 74,165,144,201,100,144,203,229,240,244,244, 68,171, 86,173,112,244,232,209, 63, -165,115, 63,209, 32, 73, 15,195,156, 27,111, 50, 97,194,231,163,137,133,192,181,157, 0,150,181,236,210,139,197, 98,157,182,180, -180,188, 14, 96, 30, 0, 62,128,121,150,150,150,215, 89, 44,214,112, 0,235, 1, 28,107, 96, 53, 54, 6, 5, 5, 45, 75, 72, 72, -224,189,124,249, 18, 75,151, 46, 69,112,112, 48, 18, 19, 19,191, 3, 96, 44, 47, 51,215,202,202, 42,140, 78,167,255, 7,192, 32, - 0, 3,236,237,237,123,215,193, 59,124,201,146, 37,165,109,218,180,137,127,253,250,245,240,135, 15, 31,182, 93,188,120,177,236, -253,251,247,136,143,143,135,189,189, 61,156,157,157,161, 84, 42, 81, 84, 84,132,225,195,135, 11,205,205,205,199, 83,183,113, 10, - 20, 40,252,149, 69,214, 7, 90,228,239,102,209,170,246,255,106,223,168,121, 60, 94,144, 68, 34,233,228,235,235,203, 4,112, 10, - 0,124, 24, 24, 61,188,115,235, 67,231,246,111,246, 13,221,185,218,183,191,175,231, 33, 31, 6, 42, 86,177,133,181,109,219,214, - 66, 34,145,116,230,112, 56,159,215, 80, 9, 2, 0, 22, 22, 22, 16, 10,133, 16,137, 68,176,176,176,128,209,104,132,178,184, 20, - 42, 3,160, 40,213, 64, 38,147, 65, 81,254,191, 82,173,133, 74,165,170,220,183, 26,244,152, 49, 99, 70,222,158, 61,123,114,179, -178,178, 54, 3,104, 57,101,202,148, 97,187,119,239,198,237,219,183, 75, 7,121,185, 91,109,232,214,250,235,230, 89,137,129, 94, - 44,204, 4, 16, 30, 30, 30,142,206,157, 59,131, 70,163,141,173,142,208,212,212,244,251, 19, 39, 78,152,198,196,196,192,221,221, - 61,102,236,216,177,159,108,222,188,217,141,175, 44,124, 0, 0,250,130,236,152,249,243,231,175,217,176, 97, 67, 94, 94, 94,158, -182,184,184,216,118,232,208,161, 72, 77, 77, 69, 70, 70,198,163, 26, 68,102,124,100,100, 36,145,201,100, 72, 74, 74, 66,100,100, -164,233,154, 53,107,218, 27,232,244, 97,233, 48,155, 58,165, 75,219,246, 19, 59,182,198,177,199, 47, 77,238,191, 73, 22,181,109, -228,104,241, 34, 45,171,177,142,134,183, 31,115,181, 21, 10,197,174,175,191,254, 90,169, 84, 42,145,158,158,142, 87,175, 94,225, -245,235,215, 72, 73, 73,193,150, 45, 91,148,133,133,133,187,235,226,112,224, 50,191,220,186,120, 58,141, 25,251, 8,120,121, 15, - 40, 86, 0, 37, 74,168,227, 36, 56, 28,151,141,189,103,127, 97,191, 79, 77, 21,157, 60,121,114,134,139,139,139, 4,128,103,109, -124,132,148, 93, 66, 58,157,254,161, 8, 5,157, 78, 87, 0,200,230,243,249,105,102,102,102,105,116, 58, 61,155, 16,162,250, 83, -222, 36,244,208,130,193, 0,216,166,160,179,106, 77,237,249,201,216,177, 99, 79,164,165,165,245, 79, 74, 74,234,180,123,247,238, -175,185, 92,110,212,238,221,187,191, 78, 74, 74,234,148,150,150,214,127,236,216,177, 39, 0, 76,110,200,241, 61, 60, 60,230, 7, - 6, 6, 98,203,150, 45,104,213,170, 21, 60, 61, 61,139,131,130,130,118, 1, 88, 13,224,115, 15, 15,143, 7,243,231,207,159,150, -155,155, 43, 78, 79, 79,111,245,221,119,223,205,222,181,107, 87,187,204,204, 76,110, 29,212, 93,251,245,235,135, 43, 87,174, 0, - 64, 22,128,164,130,130, 2,125,102,102, 38,188,189,189,209,190,125,123, 40,149, 74, 40,149, 74, 72,165, 82,184,186,186,194,104, - 52,118,162,110,229, 20, 40, 80,160,240, 63, 21, 92,213, 11, 45, 46,151,107,225,231,231,135, 38, 77,154, 88,160,124,181,150, 21, -155,185, 98,209,140,113, 60,129,228, 42,104,145,183, 48,182, 91, 11,158, 21,155,185,162,124, 23,166,171,171, 43,199,207,207, 15, -124, 62,223,177,134,131,223,205,206,206,134,159,159, 31, 68, 34, 17,132, 66, 33,252,252,252,160,213,106, 33, 83, 40,160, 50, 0, -197, 58, 35,100, 50, 25, 10,243,114, 80,108, 0,244,102, 86, 72, 73, 73, 1,131,193, 72,174,129,211,222,221,221, 61, 47, 42, 42, - 42, 15, 64, 56,128,207,130,131,131,177,124,249,114,172, 93,187,246, 4, 47,235, 93,191, 19, 87,206, 91, 29, 15,154,107,227,201, -166,141, 3,160, 77, 75, 75,131, 72, 36, 2,159,207,175, 86, 24,248,251,251,183,225,243,249, 56,114,228, 8, 73, 79, 79,239,130, -178, 37,252,201, 52, 90,153,216, 51,165, 67, 6, 96,151, 68, 34,233,176,102,205,154, 55,125,250,244, 97,117,236,216, 17,235,215, -175, 7,128,176,234, 56,165, 82,233,147,201,147, 39,107,238,220,185,131,184,184, 56,254,185,115,231, 70,175, 95,191,190,197,251, -247,239, 57, 23, 47, 95, 29, 24,146, 38, 31,189,249,250,125,238,134,107,119,159, 88,155,243,155, 55,182,182, 68,228,251, 12, 19, - 3, 3,207,234,186,162, 29, 88,140, 25, 61,184,204,200,110, 28,122, 86, 15, 46, 83,210,142,197,152,174, 80, 40, 78, 94,184,112, -225,218,226,197,139,149,185,185,185, 48, 51, 51, 67, 65, 65, 1, 54,110,220,168,140,140,140, 60,171,209,104, 46,214,197,107, 48, -146, 54,206,141, 92,128,183, 81,149,223,105,141, 4,207, 52, 38, 8,248,108, 33,188,188,189,161,209,104,208,178,101, 75, 90,112, -112, 48, 95, 40, 20,126, 85,167,232,161,255,174,187,233,105, 52, 90, 54, 33, 36, 67,169, 84,166,155,154,154,190, 55, 49, 49,121, - 95, 88, 88,152, 78, 8,201,249, 51,116, 22,161,227,203,206, 45, 61, 0,142, 41,222, 23, 40, 51,159, 43, 81, 88, 93, 65, 51, 51, -179,233,123,247,238,229, 30, 60,120, 80, 55,127,254,124,245,236,217,179, 89, 37, 37, 37,182,179,103,207,102,205,159, 63, 95,125, -240,224, 65,221,222,189,123,185, 2,129, 96,228,199, 84, 68,167,211, 33, 42, 42,106,115, 98, 98, 34, 31,101,225, 70, 22, 6, 5, - 5, 77, 73, 72, 72,224,238,217,179, 7,103,206,156,193,153, 51,103, 48,108,216, 48, 44, 88,176, 0,129,129,129,181,209,241,124, -125,125,253,172,172,172,112,239,222,189, 76, 0,239, 1,180, 17, 8, 4,102,195,134, 13, 67,255,254,253, 81, 90, 90, 10,173, 86, - 91, 41,180, 24, 12, 6, 68, 34,145, 21,117, 15,164, 64,129, 2,133,255,186,200,250,141,216, 98, 2, 64,133,169, 46, 32, 32,128, - 86,219,131,209, 80,148, 11,169,170, 24, 41,178, 98,164, 22, 25,127,243,155,209,104,172,245,232,153,153,153, 23, 31, 63,126, 60, -221,207,207,143,153,153, 89, 54, 35,230,231,231,135,226,226, 98,100,190,124, 10,149, 17,224,187,251, 64,165, 82,161,232,245, 11, - 8,124, 59,193,106,240, 68,108,223,179, 71, 93, 80, 80,240, 99,117,156,108, 54,155,229,228,228,148,151,156,156,172, 7, 80, 40, - 20, 10,251,185,184,184,224,238,221,187, 0,112,140, 0, 91, 17,121, 7,184, 23, 10, 82,102, 82, 17,184,186,186, 34, 55, 55, 23, - 74,165,242,110,117,156,143, 31, 63, 78,208,233,116, 45,135, 14, 29, 74,251,233,167,159, 78,201,229,242,181, 0, 94,169,141, 96, -188, 76,203,129,202, 0, 46,128,190, 22, 22, 22, 95, 4, 6, 6,246,158, 63,127, 62, 46, 92,184,128,235,215,175,107, 81,230, 11, -246,184, 26, 90, 89, 82, 82,210,190, 37, 75,150,116,164,211,233,159,221,184,113, 67,239,233,233, 41,215,106,181,134,166, 94, 94, -244,181,193,235, 76,230,125, 54, 75, 84, 80,140,216,254, 77,237, 59,211,104, 64,108, 70,238,251, 68, 37, 10,106, 59,167,254,108, - 70,216,240, 46,190,254,211,199, 14, 17,240,221,155, 67, 21,253, 84,188,239,244,229,237,166,145, 9, 1,247,114,115,135, 93,184, -112, 97,244,221,187,119,231,105, 52,154, 38, 28, 14,231,173, 84, 42,221,169, 84, 42,235, 20, 89, 12, 6, 99,176,218,222,201, 66, - 90, 88, 8,110,185, 37, 74,174, 51, 34, 95,173, 71,156,200, 19,227,157,156, 43,167, 65,179,179,179, 33, 22,139,105, 6,131, 97, - 72,109,156,215,175, 95, 71, 64, 64, 64,133,240, 4,141, 70, 3,141, 70,203,247,242,242,202,225,112, 56, 5, 38, 38, 38,242,173, - 91,183,150,150,150,150,130,201,100,114, 13, 6, 3,227,143,244,246,246, 60,216,114, 8,237,251,217, 67,123,246,105,213,220,155, -132, 63,127, 73, 43, 42, 46, 61, 92,139, 21,240, 59, 15, 15, 15,102, 97, 97,225, 69, 0,113, 58,157,238,248,169, 83,167,184,147, - 38, 77, 42, 61,125,250,244, 4, 0,110,219,182,109, 27,173, 84, 42, 27,148, 82, 33, 49, 49,241,187, 13, 27, 54, 44, 91,181,106, - 21,142, 30, 61, 58, 63, 49, 49,113,121,185,165,107, 88, 96, 96, 32,182,110,221,138,163, 71,143, 26,227,226,226, 46, 27,141,198, -196,197,139, 23,251,218,217,217,229,103,101,101, 37,214, 66,219,118,192,128, 1,234, 7, 15, 30,176, 21, 10,197,125, 0, 95,204, -153, 51,103, 70,135, 14, 29,228, 99,199,142, 21, 20, 22, 22, 74,121, 60, 30,251,192,129, 3, 22, 76, 38, 19, 42,149, 10, 52, 26, - 13, 10,133, 66, 67,221, 7, 41, 80,160,240, 87, 69, 77, 90,228,111,130, 26,159, 13,204,234, 26, 88, 92, 92,156,147,154,154,234, -157,145,145,161, 7,160, 7,128, 2,141,254,155, 13, 7, 66, 15,142,236,232,193,207,210,233,112,238,121, 76,113,129, 70, 95,225, -252,174,207,200,200, 80,188,127,255,222,172,164,164, 68, 89,195,177, 30,125,255,253,247, 37,119,238,220, 49, 75, 74, 74,130,193, - 96, 64,155, 54,109, 16, 31, 31,143,162,184, 40,240,189,219,128,223, 61, 0, 49,146,231,136,188,126, 19,239,148, 26,253,155,213, - 27,100, 74,149, 42, 80,171,213,158,171,142,144,197, 98, 21, 2, 32,132, 16, 3, 0,200,229,242, 87, 74,165,178,155,157,157, 29, - 98, 99, 99,249, 42, 3, 22,140, 94,177,125, 55, 33,196, 96, 82,182,154,107,209,216,177, 99, 17, 17, 17, 1, 0, 17,213,113,202, -229,242,249, 51,103,206,188,115,228,200, 17,102, 82, 82, 82,255,131, 7, 15,246,127,243,230, 13,161, 21,166, 26, 30, 20,179,224, - 54,101, 65,187, 31, 92,189,174, 7, 4, 4,192,222,222, 30, 7, 14, 28,192,206,157, 59,117,115,231,206, 77,216,185,115,103,187, -220,220,220,227, 53,180, 95, 38,149, 74,175, 90, 89, 89,205,107,209,162,133, 66,165, 82,161,160,160, 0,153,153,153,176,180,178, -162,235, 65,239,108, 35, 18, 29,191,152,173,224, 51,175, 62,193,211,244,172, 90,173, 89, 29, 89,140,201, 35,253, 91,251,127,190, -106,133, 0, 15,206,129, 54, 51, 16,228,224,215, 88,248,233,104,179, 82,245,241,238,170,151, 41,147, 36,114,121,136, 92, 46, 63, -211,192,206, 50,160,115,231,206, 39, 54,108,216, 96,186,114,203, 6,108,243,118,132,190,160, 0,121,106, 3,242,213,122,200,139, -226, 16, 27, 27, 3, 43, 43,107,188,123,247, 14,165,165,165,120,253,250, 53, 97, 48, 24, 23,235,178,232, 84,160,202,116,161,148, -195,225, 20,176, 88,172, 28, 38,147, 89,152,148,148,164, 42, 45, 45, 5,157, 78,231, 27, 12, 6,211,122,212,213,201,218,218,122, - 49,202,130,137, 94, 80,228,231,239,242, 99, 65, 4, 38,122,184, 90, 91, 13, 92, 61,123,146,181,139,131,173, 52, 41,225,173,238, -199,107, 15,243, 75,213, 53, 47,214, 0, 16, 86, 88, 88, 88,105,145, 60,125,250,244,194,211,167, 79,207, 0,112, 8,101,121,183, -110, 74,165,210, 31, 62, 98,240,173, 62,123,246,236,178, 85,171, 86,193,212,212,180, 50,120,170,169,169, 41, 23, 0,126,254,249, -103,196,198,198,118, 64,185,191,150,209,104, 60,145,149,149, 85, 23,167,155,143,143, 79, 82,104,104, 40, 27,128,195,156, 57,115, - 58,237,222,189, 27,159,126,250,105, 94, 76, 76, 76, 71, 0,201, 0,220, 62,251,236,179,103, 71,143, 30,181, 48, 26,141, 40, 42, - 42,130, 70,163, 73,166,110,229, 20, 40, 80,160,196,214,127, 5,126, 0, 34, 81, 22, 63,107, 48,128, 75, 40,115,235,168, 17,206, -229,234,236, 26,128,161, 21,207,199, 26,156,225,129,178, 21, 89, 87, 1,252, 7,128, 93, 77,164, 86, 86, 86, 95, 77,153, 50, 69, -151,158,158, 78,178,179,179,201,153, 51,103,200,162,233, 83, 12,125,221, 29,140,238, 14,118, 42, 27, 27,155,120,123,107,203,195, -173,121, 88, 4,192,169, 30, 13,155,242,230,205,155, 89, 83,166, 76,153, 94,126,220,233, 39, 78,156, 80,222,184,113, 67,201, 96, - 48,194, 80, 22,218,161, 66, 80, 78, 30, 50,100,136, 82,173, 86, 43,189,188,188, 10, 81,230,184, 95, 19, 70,247,232,209,163,232, -202,149, 43,196, 96, 48,252, 46, 70, 81, 94, 94, 30,185,126,253, 58,233,210,165,139, 20,192,164,222,189,123,223,125,248,240,225, -221,174, 93,187,158,173,171,194,214,214,214, 43, 94,190,124, 25,145,146,146, 34,185,116,233,146,228,248,241,227,146,207, 62,251, -236,149,175,175,111, 73, 66, 66,130, 81,175,215,147,151, 47, 94, 16,175,166, 77, 85, 0, 92,107,226,233,101,202,124, 38, 63,240, - 53, 41, 93,255, 41, 41, 29,238, 76, 0, 16,197,246,175, 72,206,252, 62, 36,126,222, 64,210,147,203,120,252, 49, 61,197,210,210, -242, 90, 68, 68, 4, 81, 40, 20, 36, 58, 58,154, 76, 14,232, 79, 30,207,232, 67,174,246,247, 32, 71,187, 55, 38,219,251,249,146, -254,221,187,145,239,191,255,158,132,134,134,146, 21, 43, 86, 24,173,173,173, 21,168,197, 71, 75, 44, 22,223, 56,117,234,148, 4, -128,132,193, 96, 72,228,114,185, 68,161, 80, 92, 76, 75, 75,219,235,229,229,181,172, 69,139, 22, 19,188,189,189,123,245,108,236, -186,172,183, 25, 39,190,143, 57,247,109, 83, 1,111, 59,126, 31,247,170, 18, 66,192,213,221,205, 77,113,239,222, 61,163, 90,173, - 38,247,239,223, 55, 54,107,234, 89,186,109,204,128,179,239, 14,108, 58, 91,122,229,167,107,197,231,247, 63, 60, 61, 53, 32,170, - 7,143,254, 83, 39,126,101, 56,142,143,197, 56, 0,231,240,235,170,195, 41, 0,206,163,246, 85,136,116, 0,135,214,175, 95, 95, -117,165, 33, 0,208,125,125,125, 37,132, 16,137,175,175,175,164,161, 21,225,241,120,139, 47, 92,184, 16,228,226,226,178,101,236, -216,177, 7,164, 82,233,165, 9, 19, 38, 68,161,108, 49, 8, 13,101,217, 17,134, 56, 57, 57,229, 69, 70, 70,146,187,119,239,146, - 81,163, 70, 41, 76, 76, 76, 38, 82,183,113, 10, 20, 40, 80,248,175, 96, 86, 13,159,181, 98, 67, 84, 84, 84, 69, 12,173, 57,181, -145, 47, 95,190, 92, 18, 17, 17, 33, 65, 89,148,248, 90,193,100, 50,127,153, 59,119, 46,177,179,179, 83,218,218,218,254,194, 98, - 48,102, 56,155,194, 15, 31,183,212,189, 91, 72, 72,200,176,239,190,251,110, 48,128, 14, 0, 88,142,142,142,153,217,217,217,202, -135, 15, 31, 42,187,116,233,162,180,182,182,206,245,241,241, 81,110,219,182, 77,169,211,233,148,139, 23, 47, 86,226,247,241,190, -170, 3, 23,192, 60, 54,155,253, 75,179,102,205,162, 86, 15,237,165,219,178, 96, 6,153,226, 97,163, 4,240, 29,128,185, 0, 68, - 0, 88,163, 71,143,190,245,250,245,235,107, 62, 62, 62,251,234,193,235,208,162, 69,139,219, 39, 78,156,136, 8, 13, 13,149,124, -245,213, 87, 17, 86, 86, 86,233, 9, 9, 9,198,210,210, 82, 82, 84, 84, 68,164, 82, 41,185,116,233,146,193,210,210,114, 79,141, - 13,231, 48,178,200,245, 99,213,134,112, 72, 91, 53,145,116, 97,211, 51, 62,166,167,240,249,252,194,130,130, 2,146,157,157, 77, -146,146,146,200,217,179,103,201,128,206,237,201,201,207, 70,146, 99,211,135,145,173, 3,218,147, 14,102, 92,149,216, 76, 16, 97, -102,102,150, 91,159, 85,135, 98,177,248,134, 90,173,174, 12,223,224,228,228, 36,241,242,242, 10,245,241,241,217,126,225,194,133, -133, 59,118,236, 24,214,179,177,235,178,141,253, 59,151, 20,223, 60, 77, 20,167,190, 35,203,219,120,150,150,139,249,106,225,104, -101, 25,114,239,238, 93, 99,133,248,213,235,245,228,220, 47,191,144, 49, 3,251, 70,201,174,254,252,159,251,129,243, 79, 44,110, -227,121,174, 11, 23,227,106, 19,108,149,175, 34, 2, 88,249,155,211,247, 14,114,177,204,234, 38,164,127,215,209,236, 55,233,165, -198,120,122,122, 38, 17, 66,178,188,189,189,147, 0, 28,243,246,246,174,250,255,212, 26,104, 43,131,147, 6, 5, 5,145,242,241, - 65, 7,176,118,195,134, 13, 18, 66,136,196,195,195,227, 1, 0,180,226,195,186,187,144,254,159,161,110,118, 5,221,133,244,255, -180,226, 87,159, 50,202,213, 4, 77,187,217,240,238, 15,243,176, 87,244,112, 20,134, 31, 59,124,112,203,160, 65,131, 14, 0,216, - 3,224,107, 43, 43,171,251,227,198,141,139, 61,122,244,104,236,182,109,219,180, 9, 9, 9,100,218,180,105, 42, 14,135,243, 53, -117, 31,164, 64,129, 2,133,255, 26, 42, 34,195,219, 55, 68,104, 13, 89,182,108,153,132, 16, 82, 17, 75,107, 82, 53,101,134,174, - 90,181, 74, 66, 8,169,136, 14,255, 97, 0,179,234, 2,154, 5,237,221,187,151,112, 56,156,255,124,100, 99,170,114,138,135, 15, - 31,222, 81, 46,151,183,179,179,179,107, 87,110,185,114,182,182,182, 78, 58,126,252,184,178,164,164, 68, 73, 8, 81,234,245,122, -101, 68, 68,132,178, 71,143, 30,202, 42,111,253,117,213,243, 55, 88, 41,198,131,231,171,167,147,149, 98, 60,248,224,167,137,135, - 14, 29,186,146,156,156,124,209,220,220,124,105, 61, 57,157,109,108,108,214, 90, 90, 90, 94,179,182,182, 94,105,105,105,153,165, -213,106, 73, 81, 81, 17,137,143,143, 39,119,239,222, 37,143, 31, 63, 38,150,150,150,233, 53,213,179,183, 41,243, 73,209,150,121, -196,120,104, 3,209,236, 94, 65, 0, 16,233,142,229, 36,255,251, 96,242,124,102,127,210,131,203,120,244, 17,231, 19, 34,145,104, -255, 47,191,252, 98, 76, 76, 76, 36, 97, 97, 97,228,210,165, 75,100,193,130, 5,164,169,131,189,186, 35,155,158,211,141,195,188, -246, 49, 1, 75,213,106,181, 68, 46,151, 75,148, 74,165,164, 89,179,102,146,246,237,219,135,118,236,216,113,251,233,211,167, 23, -110,220,184,113, 88,111, 51, 78,124,241,205,211,132,124, 53,144,144,121, 93,201,219, 25, 61, 72, 47, 83,230,203, 26, 57,237,236, -210, 43,162,181,171, 84, 42, 18, 30, 30, 78,110,223,190, 77,196,214,214,114,127, 83,198,172, 46, 28,116,239, 98, 14, 81,125,235, -217, 83, 72, 63,252,228,251,111, 12, 37, 87,142,146,159,167, 12,212,247, 16,209,247, 86, 41,119,146, 16,146, 53,106,212,168,119, -132,144,172,179,103,207,166, 17, 66,178, 70,142, 28,249,142, 16,146, 5,224, 68,117,156, 31, 4, 39, 61, 84, 46,178,230, 5, 5, - 5, 73, 8, 33,146,160,160, 32, 9, 80, 22, 68,181,187,144,126,228,233,190,173, 70,245,165, 35,228,244,180,193,134,238, 66,250, -145,106,235, 41, 98, 94,140, 60,180,131,104,174, 29, 35,191, 44,152, 96,232, 42, 54,191,231,233,233,185,117,225,194,133,161,143, - 31, 63,126,101, 48, 24, 98,147,146,146, 98,247,236,217, 19,219,169, 83,167, 7, 86, 86, 86, 81,108, 54,123,110, 93,215,232, 79, - 2,197, 73,113, 82,156, 20, 39,133, 15, 13, 76,181,252,118,113,243,230,205,124, 66,200,226,209,163, 71, 99,211,166, 77, 99, 90, -180,104, 49,206,209,209,209, 6, 0, 50, 51, 51,139,163,163,163,229,163, 71,143,198,218,181,107,177,101,203,150,237, 40,243,101, -249, 95, 34,251,220,185,115, 78,243,231,207,207,221,184,113,163,113,218,180,105,222, 0,162,243,243,243,155, 78,152, 48, 97, 30, -147,201, 28,237,234,234,234,147,149,149,149, 87, 82, 82,114, 12,192, 62,212, 49,103, 90, 19, 56,116, 24,218, 54,178,199, 53, 58, - 12, 85,190, 30,184,118,237,218,177, 35, 71,142,212,238,216,177, 67, 47,151,203, 47,212,147, 46, 45, 47, 47,111, 93,197, 63,150, -150,150,226,151, 47, 95,206,181,181,181,165, 39, 37, 37, 65,173, 86, 35, 49, 49,209,136,178,169,169,106,161,212,147, 93, 63,156, -189,225,181,120, 98,128,121,113,220, 11,152, 48, 24,208,177,216,200,126,114, 13,135,194,227,228, 42, 45,118,127, 76, 59,165, 82, -233,183, 11, 22, 44,152,176,116,233, 82,174,171,171, 43,237,209,163, 71, 56,117,234,148, 58, 55, 55,119, 0,128,123,191,134,126, -106, 24,140, 70, 35,216,108, 54, 0, 96,249,242,229,160,211,233,172,220,220, 92, 54,141, 70,227,208,104, 52, 30,141, 70, 99,232, -146, 99, 97,148, 23, 33,167, 72,138,180, 28,105,173,124, 6,163,241,212,211,167, 79, 23,181,110,221,154,254,252,249,115,228,229, -229, 33, 49, 49,145, 24, 8, 57, 17, 94, 98, 40,115, 74, 84,215,191,126, 60, 75,171,225,173, 44, 56,116,246,225,181,240,215,208, - 25, 63, 26, 49, 10,101,177,180, 0,224, 16,141, 70, 51, 1, 80,208,172, 89,179,158,175, 95,191, 54,109,214,172, 89, 73, 92, 92, -220, 21, 26,141,230, 8,224, 72,117,156,166,166,166,249, 0,242,207,158, 61, 11, 0, 51, 81,118,242,218, 4, 6, 6,102,133,135, -135, 35, 40, 40, 40, 7,192, 94, 0, 16, 88, 88, 13,245, 17,154,208,216, 63, 5,161,147, 26,244,221, 70, 82,173,213, 85, 96,107, -215,171, 5,159, 14,214,193, 53,104, 39,246,162,179,245,218,150,193,193,193,225, 74,165, 82,125,242,228, 73,205,212,169, 83, 25, - 9, 9, 9,207, 0,220, 7,112, 22,229, 62,150, 20, 40, 80,160, 64,225,191,138, 15, 45, 88,117,250,104,125,168, 90, 55, 1,248, -225,205,155, 55,149, 73,165,223,188,121, 35, 1,240, 35,202,162,193, 15,105,128,226, 93, 93,110,209,218,247,145,141,249,144,147, -235,231,231,103,250,250,245,107, 19, 84,159,196,145,246, 17,156,191, 67,117,185, 14, 61, 61, 61,119,234,116,186,208, 31,127,252, -241, 52,131,193,152,240, 7,212,190,171,135,135, 71,209,241,227,199,141, 97, 97, 97,100,245,234,213, 6,123,123,251, 34,252,222, - 71,235, 55,156,254,108,198,153, 37,222,142,242,136, 73, 93,201,219,133, 67,201,253,137, 61,200, 44, 71,129,220,159,203, 56,245, - 7,223, 74, 60,132, 66,225, 33, 83, 83, 83,185,185,185,249, 13, 0,157,255,200, 53,178,178,178, 58, 42, 22,139,111, 84,221,236, -236,236, 66,109,108,108,190,179,182,182, 94, 45, 18,137,102,187,113,217, 59, 22, 54,117, 40,141, 26,222,140,220,236, 98, 67, 38, - 90,179, 63,156, 58,252,176,158,246,110,110,110, 5, 33, 33, 33,198,139, 23, 47,146, 21, 43, 86, 24, 27, 53,106, 36, 71, 45,126, -109,181, 90,180, 68,140, 83,103, 70,118, 52,230, 12,118, 36,155,188,205,140, 61, 45, 24, 53,173, 80,156, 88, 46,128,167,212,197, -233,238,238,254, 35, 33,228,240,250,245,235, 15,227,215, 92,160,125,131,131,131, 3, 9, 33,129,193,193,193,129, 0,250, 3,128, -191,144, 30,114,108, 88, 91, 67,230, 32, 7,242,141,183,192,224, 47,164,135, 84,107,201,180,100,158, 59, 63, 99,176, 49,107, 70, - 23,178,214,131,111,232,104,201,185,197,102,179, 23,162,204,226,220, 30, 0,155,122,107,166, 56, 41, 78,138,147,178,104,253,229, -132, 87,189, 32,182,180,180, 60,212,164, 73,147,211,174,174,174,167, 5, 2,193,118,148, 57,205, 55,244, 66,184,109,216,176, 65, - 46, 20, 10, 91,253,137, 23,215, 22,128, 35,126,159, 56,247, 79,235, 48,235,236, 49, 63, 97,233,152,151,235,236, 49,191,202,215, -237,189,189,189,191, 65, 89, 52,239, 63,218, 9, 93, 45, 45, 45,247, 88, 90, 90,166,151,251,102,185,214,135,179, 45,131, 49,161, - 39,151,241,168, 51,155,158,221,147,203,124,216,142,193, 24,255, 55, 29,128,181, 45,182,168,137,211,201,218,218,122,135,165,165, -101,166,181,181,245,158, 6,138,172,223,112,182, 50,133,125, 47, 17,227, 92,103, 51,154,170,151,144,113,182, 45,175,230, 69, 29, - 13,104,187, 95, 80, 80,208,167,132,144, 79, 29, 28, 28, 70, 87, 17,254, 62,107,215,174, 13, 32,132, 4, 84, 68,128,111,207,131, -109, 15, 17,227,120, 23,115,154,180,135,136,113,188, 61, 15,182, 53,213,179,167,136,113,170,139, 57, 77,234,111, 78, 63,238,194, - 65, 35,234,102, 78,113, 82,156, 20, 39, 37,180,254, 25, 66,139,234, 48, 20, 39,197, 73,113, 82,156, 20, 39,197, 73,113, 82, 66, -171,122, 97, 85,117,171,156, 97, 99, 82,231,134, 2, 5, 10, 20, 40, 80,160, 64,225, 15,161,198,128,165,180, 90, 84,105, 67, 28, -219, 63, 70,217,222,164, 56, 41, 78,138,147,226,164, 56, 41, 78,138,243, 95,199, 89, 23,247,255,122, 97,221,223, 26,148, 89,149, -226,164, 56, 41, 78,138,147,226,164, 56, 41,206,127, 45,232,212, 41,160, 64,129, 2, 5, 10, 20, 40, 80,248, 67,240, 43,255,252, - 48,112,105,245, 62, 90,204,246,235,115,244,122,189, 45, 0, 48,153,204, 92,221,179,213,246,181,177,179,128,222,250,178,244, 59, - 96, 2, 51,245,192,141,106, 56,111,232,245,122,139,114,206, 34,221,179,213,253,107,229,108,191,254, 90,213,242,250,103,171,251, -126, 88,134, 0, 12, 86,251,245,153, 31,212,213,161,190,103,133,134,223,196,196,250,175,213,243,239,194,249,111, 6,171,195,250, - 28,157,174,172, 31,177, 88,204, 92,237,211,218,251,145, 73,135,245,153, 85,203,235,158,174,182,171,141,147,103,202, 41,112,119, -180,217, 94, 27,103, 82,102,254, 98, 85,113,169, 85,109,156, 13, 29,155,206,246,246,189, 13,229, 99,147, 1,204, 76,207,202,186, -241, 23,235, 75,109, 1,172, 6, 96, 94,229,187, 40, 0, 95, 80,189,146, 2, 5, 10,127, 51,161, 21,137,178, 60,135,251,203,197, -214,254, 26,133,150, 94,175,183,149,252, 18, 8,149, 26,232, 61,121,189,173,219,240,125,191, 75,148,172, 47, 45, 98, 75, 99, 78, -250, 48,116,114, 11, 27,166,214, 60, 51, 51,147, 6, 0, 52, 26,237, 63, 0, 92,170,225,180,144,252, 18,136, 98, 13,224, 63, 46, -216,194, 5, 48,207, 51, 49,249,210,148,207,239, 89, 82, 82,210, 2, 0, 76, 77, 77, 99, 74, 84,170, 59, 54, 90,237,182, 15,203, -215,212,178,170,117,237, 53,105,189,173,247,240,125, 11, 12, 70, 35, 59,227,249,143,254,165,249, 9, 76,150, 94,189,119, 37,112, - 37,176, 26, 81, 85, 3,223,175,199,253,100,133, 21, 11,232,197,230,114, 91,137, 44, 44,186, 25, 9,105,102, 52, 26,105, 6,189, - 62, 86, 46,147,221, 55,234,245, 47,245, 26,149,149,228,194, 55,198,218,234,249, 97, 91, 62, 1,152,191, 0,163,249, 2, 65, 79, - 6,139,213, 25, 0, 12, 58,221, 35,149, 82,121,103, 4,112,166, 62,109,175,239,249,249,216,242,255, 54,232,116,122,219,228,107, -129, 80,235, 0,191, 81,223,216,250, 78,248,233, 56, 0,104,114, 95,218, 41, 19, 46,116, 0, 0,190,123,192, 83,142,216, 47, 7, - 0,152,239,179,108,227,195, 86, 65,173, 3,154, 5, 4,219,214,197, 57,117,237, 41,171,165,179, 70,114, 0,224,250,217,239,154, -222, 14,253, 97, 32, 0,244, 26, 57,231, 74,191, 81,243,227, 1, 96,203,254, 80,171, 19,223,140,169,149,179,126, 99, 83,102, 34, - 75, 8,243,208,200,179, 68,206,124,166, 56, 33, 33,129, 14, 0, 14, 14, 14,245, 26,155, 78,128, 48, 11,152, 71,103, 48,186,185, -123,120,248, 1, 32, 73,111,223, 70, 26,244,250, 7,246,192,222, 63,185, 47, 45, 32,228,183,193, 89,105, 52, 26,213, 33, 41, 80, -160,240,119,195,165,114,113,117,233,119, 47,179, 53,237,161, 82, 3,247, 18,129,238, 29,125, 49,107,194, 32, 65,213,223,206,236, - 11,118, 73,120,126,222,251,224, 79,219,232,190,190,190, 72, 78, 78,174, 87, 45,138, 53,192,221, 4, 0,210,215,102, 69,124,254, -219, 29, 91,183,154,247,237,219,151,233,224,224, 0, 26,141,134,236,236,236,142, 55,111,222,108,187,104,209,162,207, 32,125, 93, - 84,172,129,226,110, 66,221,188, 21,117,109,209,180, 17, 86,207, 31, 35, 4,128,149,147,247,182,125,254, 38,199,242,237,219,183, -189,151, 45, 91, 86,192,184,115,231, 7,107,224,112, 14,144, 86,159,122, 30,189,248,148, 43,204,250,217,109,226,252,249,103, 61, - 60, 60, 4,174,174,174, 52, 51, 51, 51, 48, 24, 12, 20, 21, 21,185, 68, 71, 71, 15,124,246,236,153,234,230,189,255,176, 35,158, - 13, 77,202,229,118, 40,173, 87,219, 75, 50,185,215,205,204, 98, 38,141, 24,225, 52,102,204, 24,174,187,187, 59, 0,224,237,219, -183,158,103,206,156, 25,119,246,236,217,181, 40,201,212, 23,107, 80, 90, 87,219, 43, 57, 1,112,129,206, 34, 91,219,137, 12, 22, -171,133, 94,175,119, 44,183, 54,100, 24,116,186, 24,105,110,238,177, 15,203, 83,248, 61,212, 58,224,117, 22,208,167,155, 31, 38, -141,236,195, 7,128,101, 99, 55,116,124,255, 46,209, 68,163,209,160,169, 87,179, 46, 95,127,179,253, 26,232,116,132,132,222,172, - 44, 95, 31,206,168,215,201, 8,252,122, 7, 50, 95,157,233,104,144, 37,246, 84,200,101, 12, 0, 48, 23, 10, 71,158, 57,249,243, - 29, 7,159,209, 79, 18,243,181,245,226,172,109,108, 94, 61,185,199, 62, 61,250, 78,243,239,175, 31, 98,185,184,184,224,213,171, - 87, 13, 27,155,178, 55,102, 70,123,251,216,109, 95,125, 37,246,247,247,135, 64, 32, 0,147,201,132, 94,175,239,243,224,193,131, - 62,129,129,129,115, 32,123,163,170,239,216,172, 7,182,209,104,180,158, 83,103, 45,176, 31, 52,108, 52, 70, 14,232, 66,117, 68, - 10, 20, 40,252,221, 80, 97,189,170,186,242,112,127,173, 66,139,201,100,230,246,157,178,209,182, 91,135,150,120,254, 50, 94,150, -146,154,165,172,248,173, 48,230, 76,211, 97, 93, 28,155,135,135,223,131, 90,173,198,163, 71,143,240,242,229, 75,188,123,247, 14, -179,103,207, 86,151, 79, 29, 86,199, 89,228, 63, 46,216, 2,178, 4,129, 39,251, 77,227,155,113,113,140,210,210, 82,132,135,135, -163,168,168, 8,108, 54, 27, 78, 78, 78,232,215,175, 31, 51, 46, 46,206,178,119,223, 1, 66,255, 1,227,147, 33,244, 84, 50,153, -204,162,154,242,136, 48,153,204,220,222,147,215,219, 54,247,108,132,183, 41,153,178,213,223, 28, 84, 26,141,132,153,244,238,189, -246,222,189,123,240,243,243,195,141, 27, 55,172, 10, 11, 11,215,236,221,187,119, 53,107,243,172, 73, 9,238, 0, 0, 32, 0, 73, - 68, 65, 84,247,187,116,154,130, 37,168,153,175,200,127, 92,176,133, 85,238,105,215,219, 87,207,153,196,196,196,152,252,248,227, -143, 40, 40, 40, 0,155,205,134, 72, 36,130, 88, 44, 70,211,166, 77,105, 43, 87,174, 20, 4, 4,196,224,243,153,163, 93,181,110, - 51,222,212, 84,207,202,182, 43,223,243,172,229,215,221, 67, 47, 93,162,119,237,218,245, 55,175,237, 77,154, 52, 65,255,254,253, -185, 19, 39, 78,116, 31, 51,110,130,209,127,240,212,183, 16,184, 22,215,201,169, 74, 51,181, 42,126,236,208,103,220,184, 11,193, -193,193, 34,177, 88, 12, 62,159, 15, 0,144,201,100, 78, 41, 41, 41, 29,215,174, 93, 59,234,105,212, 73,166,127, 64, 90, 38,248, -206, 37,181,157,207,127, 43, 88, 44,102,110,133, 21,201,140,111, 90,148,150,158,163, 2, 0,141, 70, 3,141, 70, 3,181, 90,141, -185,115,102, 51,102,142,106,239,225,218,109,193,139,119, 25, 57,133,205,110, 62,177,172,216, 87, 87, 7, 39,179,248,157, 84,154, -122,107,102,224, 87, 95,137,237,236,126,157, 17, 12, 57,122,148, 81, 88, 88,216, 39, 48, 48,176, 57,225,245,144, 54, 11, 8, 22, -213,198, 89,219,216,148,198, 95,106,252,245,252,254,173,246,125, 19, 6,131,193,128,199,143, 31, 35, 60, 60, 28,219,183,111, 39, - 87,174, 92,145,153,243,249, 51, 81,235,216,124, 99,214,213, 62,219,109,243,230,179, 52, 14,135,131,243,231,207, 35, 46, 46, 14, -116, 58, 29,190,190,190,152, 52,105, 18,250,244,233, 35,158, 53,107, 54,241, 31, 48, 54, 9, 66, 47,197, 31,236, 75,116, 0, 11, - 86, 4,110,182,159, 60, 99, 30,182,124,189,146, 18, 90, 20, 40, 80,248, 59, 91,179,106, 12,241,128,176,176, 48, 82,190,117, 7, - 0, 2,208,155, 12,223,119,226,116,132,241, 82,147,225,251, 78, 16,128, 78, 0,186, 57,208,168,117,235,214, 58,169, 84, 74,158, - 61,123, 70,230,206,157,171,218,181,107,215,157, 75,151, 46,157,209,107,181, 7, 28,236,237,191, 37, 53, 56,216, 19,128,238, 10, - 8,121, 60, 94, 94,106,106, 42,185,124,249, 50, 9, 10, 10, 34,199,142, 29, 35, 87,174, 92, 33, 55,111,222, 36, 87,174, 92, 33, - 39, 78,156, 32, 81, 81, 81, 36, 62, 62,158,240,249,252, 60, 87, 64, 88, 11, 39,131, 0,140,166,195,127, 92,114,246,185, 46,216, -107,248,190, 69, 4, 96, 88, 0,222,173, 91,183, 54,156, 57,115,134,132,132,132,144,159,126,250,137, 68, 69, 69,145,252,252,124, -194,228,240,243, 42,246,171,169,158, 4,160, 59, 58, 58,230, 73,165, 82,226,236,236, 76,216,108, 54,177,179,179, 35, 77,155, 54, - 37, 29, 59,118, 36, 3, 7, 14, 36, 19, 38, 76, 32,107,214,172, 33, 82,169,148,112,185,220,156,138,253,106,226,244, 3, 76,249, -124,126,170, 68, 34, 33, 53,161,164,164,132,228,231,231,147,107,215,174, 17, 62,159,159,234, 7,152,214,198,105, 10,180,241,241, -241,201,203,207,207, 39, 90,173,150,164,166,166,146,232,232,104, 18, 23, 23, 71, 82, 83, 83, 73, 73, 73, 73, 37,119,124,124, 60, -113,115,115,203, 51, 5,218, 16,106, 17, 68,141,125,233,195,205,197,206,110,160, 88, 44, 46, 57,123,246, 44,201,200,200, 32, 71, -142, 28, 33,116, 96,195,135,229,106,227,100, 3,253,186,118,237,106,120,252,248, 49,121,241,226, 5, 89,190,124, 57,233,223,191, - 63, 25, 48, 96, 0, 9, 12, 12, 36,233,233,233, 36, 61, 61,157, 12, 28, 56,208,192, 6,250,213,213, 63,171, 27,155, 66,192, 37, - 32, 32,160, 68,171,213,146,164,164, 36,210,162, 69,139,116, 6, 48,145, 15, 52,239, 14,112,234,234,159,142,128,133,189,189,125, -214,227,199,143, 73,104,104, 40,113,117,117,205, 99, 0, 83,205,129, 38,230, 64, 19, 6, 48,181, 73,147, 38,121,143, 31, 63, 38, - 5, 5, 5,196,197,197, 37,203, 17,176,248, 3,125,137, 14,224,208,138,192,205,228, 77,186,138,172, 8,220, 76, 0,164, 18, 66, - 8,170,241,241,164, 64,129,194, 63, 31, 31,106,145,127, 10, 42,111,146, 1, 1, 1, 52, 0,119,107, 43, 92,194, 96,108,220,178, -101, 11,179,180,180, 20, 7, 15, 30, 84,124, 50,106,212,233,238,221,186, 37, 53,118,117,149,210,232,244, 58,179, 13,231,113, 56, - 11,183,108,217, 34,210,104, 52,136,136,136, 64,219,182,109, 33, 22,139, 33, 16, 8, 32, 16, 8, 96,107,107, 11, 47, 47, 47,228, -230,230,194,204,204, 12, 75,151, 46, 21,230,113, 56, 11,235,226, 53, 26, 9, 19, 0, 12, 70, 35,219, 4,152,229,214,174, 93,196, -218,181,107,233, 86, 86, 86,176,180,180,132, 64, 32, 64, 92, 92, 28, 52, 26, 13,120,166,188,122, 5,105,165,211,233,116,129, 64, -128,219,183,111, 99,193,130, 5,232,220,185, 51, 68, 34, 17,204,204,204,208,162, 69, 11,244,235,215, 15, 51,103,206, 68, 82, 82, - 18,104,245,112, 42,137,101, 50,231,205,156, 57,211,214,207,207,175,218,223, 75, 75, 75, 33,149, 74,145,151,151, 7, 39, 39, 39, -140, 30, 61,218, 54,150,201,156, 87, 19,159, 21, 32,118,242,244,188,240,236,217, 51,107, 62,159,143,144,144, 16,156, 59,119, 14, - 87,175, 94,197,229,203,151, 17, 22, 22,134,243,231,207, 35, 47, 47, 15, 0,224,233,233,137, 83,167, 78, 89, 11,108,109,195,172, - 0, 49, 53,164,235,135,247, 57, 57,215, 91,100,103, 91, 79,156, 48,225,190, 82,169,196,196,137, 19,177,113,211,166,149, 44, 96, - 81,125,246,247, 2,132,150,246,246,135, 55,111,222, 76,207,206,206,198,136, 17, 35,242,183,109,218, 52, 61,242,218, 53,119,201, -213,171,238, 27,131,131,167,119,239,222, 61, 63, 61, 61, 29, 71,143, 30,165,219,185,184, 28,246, 2,132, 13,173,167, 2, 88,176, -115,231, 78,110,105,105, 41,250,246,237,155,100,140,137,241,210, 3, 63, 43,129,184,187,128,182,174,253,179,128,121, 75,151, 46, - 21,115, 56, 28,124,249,229,151,249,197,239,223,183,212, 3, 63,201,128, 20, 25,144,162, 7,126, 82, 36, 39,183,156, 60,121,114, - 62,135,195,193,142, 29, 59,196, 89,191, 38,221,174, 47,218, 2,184, 0,224, 30,128,204,169,179, 22, 76,245,107,223, 9, 71, 15, -236,197, 55,193,203, 14, 3,248,132, 70,163, 29, 3,176,132,234,121, 20, 40,252, 59, 81, 31, 45,242, 23, 69,141, 41,119,152, 85, -149, 36,128, 30,181,177, 88, 88, 89,181,109,217,178, 37,194,195,195,225,227,227,243, 76, 36, 18,233, 77, 56, 28,176, 88, 44, 16, - 99,157, 58, 11,166,124,126,239, 62,125,250, 48,159, 60,121, 2, 55, 55, 55,152,154,154,130,197, 98,253,102, 51, 49, 49,129,189, -189, 61,228,114, 57,122,247,238,205,218,189,123,119,111,168,213, 95,215,249, 64, 76,136, 22,228, 61,217, 60,225, 63, 71, 14, 55, -241,247,247,135, 76, 38,135,209,104, 4,143,199,131, 70,163, 1,147,201, 44,155, 2,210, 17,121,125,206,152,193, 96, 48, 48, 24, - 12,184,185,185, 97,227,198,141, 40, 45, 45,133,137,137, 9, 0, 64, 46,151, 67, 42,149, 34, 58, 58, 26, 41, 41, 41, 40,127, 11, -175, 21,102, 66,225,160, 49, 99,198, 84,155,240, 87,173, 86, 67, 38,147, 65, 38,147, 65, 42,149,162,180,180, 20,157, 58,117, 98, - 95, 10, 11, 27,132,130,130,109,213,238,195,229,142, 58,122,244,168, 45,155,205, 70, 73, 73, 9, 20, 10, 5,210,210,210,240,254, -253,251,210,220,220, 92,189,153,153, 25,221,213,213,149,206,225,112, 56,195,135, 15,167,201,229,114,208,104, 52, 4, 4, 4, 88, - 29, 15, 9, 25, 3,141,102, 59, 53,164,235,135,235,128,186,141, 70, 51,164, 67,251,246,183,159, 61,127,238,183,112,225, 66, 68, - 69, 69,109,230,157, 60,121,175, 24,120, 89,219,190, 73,192,188,111,171, 8, 24,242,254,189,143, 22,200,171, 82, 36,197, 53, 57, -249,234,228,201,147, 95, 69, 69, 69, 89,239,216,177, 67,252,201,136, 17,243, 0,108,104, 72, 29,205,132,194,118,246,246,246,184, -114,229, 10, 82,223,189, 91,166, 7, 74, 26,244,198,197, 96,116,245,247,247,199,249,243,231,145,254,254,253, 50,253,111,235, 88, -246,162, 4,228, 49,147,146,150, 29, 62,124,248,208,180,105,211,192, 96, 50,187, 66,223,160,137,195,223, 57,190, 79,155,189, 16, -135,247,239, 62, 12, 96, 6, 0, 35,128,103, 84,143,163, 64,225,223,109,213,170, 75,139,252,141,196,214,254, 6, 91,180,108,109, -109, 29, 5, 2, 1, 50, 51, 51,209,204,219, 59,151,195,225,128,205, 98,129,203,102,215,171, 6,197,197,197, 62, 14, 14, 14,144, -201,100,176,182,182,134,137,137, 73,229,198,102,179, 43,255, 54, 51, 51, 3,157, 78,135,139,139, 11,138,139,139,125,234,228,205, -137,182, 61,185,123,206,220,199,247,174, 52, 25, 49, 98, 36, 44, 44, 44,225,236,236, 4, 91, 91, 91,152,154,154,194,217,217, 25, -238,238,238,100,219,182,109,224,217,250,214,235, 70, 94, 85, 60, 49,153, 76, 24, 12, 6,228,228,228,224,205,155, 55,136,138,138, -194,227,199,143,241,226,197, 11, 40, 20, 10,212, 67,103,161,184,164,164, 21,147,201,172, 86,100, 73,165, 82, 72,165,210, 74,161, -149,151,151,135,148,148, 20, 40, 85,170,214,181,136,222,145, 45, 91,182,100, 0,128,169,169, 41, 90,183,110,141,125,251,246,233, - 47,158, 59, 55,182,249,227,199,150,206,215,174,137,254,243,227,143, 99, 71,143, 30,109,120,242,228, 9,228,114, 57, 94,191,126, - 13, 27, 27, 27, 38,155,203, 29, 67, 13,231,134, 65, 2,168,172, 21,138, 1,157, 59,119, 78,150,201,100,216,186,117, 43,157,101, -102,182, 63,184,134, 41,190, 74, 48, 24, 93,252,253,253,113,225,194, 5,100,190,127,191,252,125, 53, 2,230, 61,144,151,154,148, -180,252,240,225,195,232,215,175, 31,104, 76,102,131, 29,149, 58,118,236,216,210,104, 52,226,213,171, 87, 16, 1, 79, 27,186,191, -187,135,135, 95,133,229,151, 15,220,175,169, 28, 31,184, 31, 25, 25, 9, 83, 83, 83, 52,107,222,188, 77, 3, 15,179,141, 70,163, -101, 77,155,189, 16,161, 87, 31, 2, 0, 14,239,223,157, 83, 69,100, 81,160, 64,129,178,104,253, 93, 45, 90, 21,194,170,234,134, -223, 8,173,122,138, 15, 0, 0,139,197, 2,155,195, 1,155,205, 46, 19, 72, 28, 78,189, 57,104, 52, 26,184, 92,110,165,176,170, - 42,176,170,254,205,227,241,234, 37, 96, 0,160, 40,241,106,183, 25,211,167,177, 57, 28, 14, 52, 26, 53, 8, 33,224,112,184, 16, -137, 68,112,115,115,131, 92, 46, 71,231, 46,221,213,105, 82,147, 48,171,102,195,163, 62,230,236,233,245,122,168, 84, 42, 20, 21, - 21,161,176,176, 16,114,185, 28, 37, 37, 37,245, 94,138,110, 52, 26, 25,105,105,105,248,249,231,159, 81, 80, 80, 0,160,204,209, -186, 66, 92, 85,124, 38, 39, 39, 35, 36, 36, 4,239,222,189,107,208,245,233,214,173, 27,194,194,194, 24, 61,122,247, 62,112,195, -213, 53,243,134,171,107,102,143,222,189, 15, 92,184,112,129,225,232,232,136,148,148, 20, 68, 68, 68,160,168,168, 8,132, 16,106, -253,252, 71,224, 45, 80, 84, 92, 88, 56,109,229,202,149, 68, 32, 16, 96,235,183,223,182,218, 0,140,175,175,128, 17,214, 34, 96, -132,127, 76,192,128, 16, 2,163,209, 8,131,193,240, 81,109,163,209,104, 52, 22,139,213,208,208, 10, 13, 41, 92,233,248,190,116, -205, 70, 92, 62,127,166,226,251, 4, 74,100, 81,160, 64,225, 31,128, 26, 29,225,153, 85, 20,100,229,103, 77,200,201,201,201, 80, -169, 84, 77, 92, 93, 93,145,158,158,110,235,226,226,242,158,205, 98,193,132,205, 6,141, 94,183, 38,224,241,120,175, 50, 51, 51, -187, 56, 58, 58, 66,175,215, 87,138,170, 15,167, 14, 43,172, 52, 47, 94,188, 0,143,199,123,133,210, 90, 35, 39,192,160, 41,106, -212,166, 77,155, 74,203,144, 72, 36,130, 72, 36, 4,135,195,197,170, 85,171,140, 59,182,109,219,235,210, 43, 88,246,233,162,149, -100,229,134, 3,127,234,153,173,239,131,137,199,227,189,114,118,118,238, 36, 20, 10, 17, 26, 26,138,148,148, 20, 20, 21, 21,161, -184,184, 24,106,181, 26,197,197,197,208,104, 52,224,114,185,104,222,188, 57,204,205,205,113,243,230,205, 87, 80,171,171, 23,151, - 5, 5,161,175, 94,189,234,212,190,125,251, 74,139, 74,207,158, 61,105, 61,123,246,180,174,180,162, 21, 23, 35, 63, 63, 31,207, -158, 61,195,205,155, 55, 65,163,209,144,144,144, 96, 80,151,148,156,160,198,196,199,161, 20,120,196, 56,124,248,208,103,159,125, - 54,189, 75,151, 46, 48, 0, 3, 1,132,252, 63, 10, 24, 0,192,227,199,143,163, 13, 6, 67,151,166, 77,155, 66, 10,116, 0,112, -190, 65, 34, 50, 49, 49, 82,175,215,247,110,213,170, 21, 66, 79,159,238, 6, 32,165,186,114, 42,160,155,159,159, 31, 74, 74, 74, -240, 58, 54, 86,210, 0,145,117, 96, 69,224,230,169,147,103,204,195,209, 3,123,113,120,255,238,180, 67,251,118, 57,163, 30,254, - 99, 20, 40, 80,248, 87, 89,179,234,212, 34,127, 81,204,170, 73,124, 49, 27,194, 34, 43, 42,146, 68, 70, 70, 54,105,211,166, 13, - 14, 28, 56,208,190,115,167, 78, 25, 38,108,182,158,109, 98, 2,122, 61, 30, 36, 37, 42,213,173, 91,183,110,117, 24, 62,124, 56, -243,201,147, 39, 16,139,197,149, 66,171,226,147,201,100,130, 16, 2, 30,143,135, 95,126,249, 69, 91,162, 82,221,170,211, 90,100, - 48, 26,232,229, 66,143, 16, 2,169, 84, 10, 19, 19, 19,108,223,190, 3,123,182,109,155, 96, 0,206,120,242,109,190, 2,192,253, -127,123, 64, 23, 23,223,190,124,249,114,219,181,107,215,178,156,156,156, 32,149, 74, 81, 84, 84,132,130,130, 2,200,229,114,200, -229,114, 20, 21, 21, 65, 42,149,130,203,229, 34, 42, 42, 74, 87, 90, 92,124,187, 38, 62, 78,105,233,217, 41, 83,166, 44,141,140, -140,180,103, 50,153,208,233,116, 48, 26,141, 48, 26,141,208,106,181, 72, 76, 76, 68, 76, 76, 12,226,226,226, 80, 88, 88, 8, 22, -139, 5, 6,131,129, 23, 47, 94, 20,241,117,186,211, 26,106, 76,127, 52, 88, 64,232,131, 7, 15,166, 79,154, 52, 9, 14, 78, 78, -221,145,158, 94, 47, 1,115,174, 22, 1, 35,251, 56, 1,243,171, 0, 82, 40,158, 39, 39, 39,119,233,209,163, 7,236,157,156, 54, - 55, 79, 79,191, 17,219, 0, 63, 45,131, 94,127,255,193,131, 7,189, 39, 79,158,140, 3, 7, 14,108,182, 73, 78,190,154,247,193, - 52,167, 13, 96,211,216,221,125,243,212,169, 83,113,253,250,117, 24,244,250,251,181, 80, 86,141,248,222,104,234,172, 5,206, 31, - 56,190,239,163,209,104,243, 1,108,165,122, 20, 5, 10, 20,254,201, 22,173, 6, 77, 29,154, 26, 12, 43,150, 44, 89,162,163,211, -233, 24, 57,114,164,217,249, 11, 23, 70,191,120,249,210, 45, 55, 55, 87,100, 48, 24,234,228,178, 81,171,119, 45, 89,178, 68,170, -209,104,224,229,229,133,194,194, 66, 24, 12, 6, 48,153, 76, 48,153, 76,208,104, 52,208,233,116, 8, 4, 2, 68, 70, 70,226,208, -161, 67,114, 27,181,122, 87,157, 15, 9,131,225, 85, 72, 72, 8, 24, 12, 6,225,114,185,160,209,104, 96, 50,153,216,177, 99, 71, -238, 30, 32, 20, 0, 24,116,186, 6, 0,232,116, 90,125,189,119,235,156,183,100,179,217, 48,150, 45, 2,168,179,172,133, 90,189, -115,203,150, 45,138,215,175, 95, 67,165, 82, 85, 90,223,148, 74,101,165,115,189, 84, 42, 5,141, 70,131, 74,165,194,133, 11, 23, - 20, 22,106,245,206,154,248, 10,128,236,244,132,132,161,237,219,183, 47, 72, 78, 78,134, 76, 38,195,171, 87,175,112,243,230, 77, -156, 58,117, 10,215,175, 95, 71, 98, 98, 34,244,122, 61, 28, 29, 29, 65, 8,193,185,115,231,100,122,133, 98, 96, 1,144, 77,141, -137,154,209, 72, 44,238,109,103,107,155,106, 99,109,157,222, 72, 44,238,253,225,239, 66, 32, 62, 62, 62, 30,122,189, 30,110,110, -110,150,181,249,105, 17,189,254,193,131, 7, 15, 48,121,242,100, 56, 55,105,178,201, 21,176,249,176,140, 43, 96,227,234,238,190, -169, 66,192, 16,189,254, 65, 67,235,108, 6,236,254,234,171,175, 74, 76, 76, 76,112,242,228, 73, 55,157,135, 71, 28, 19, 24, 47, - 0,188,123, 0, 38,117,237,111, 15,236, 93,179,102, 77, 54,141, 70,195,177, 99,199,172,133,238,238,209, 76, 96,138, 16,104, 36, - 4, 26, 49,129, 41, 66,119,247,232,147, 39, 79, 90,235,245,122, 44, 90,180, 40,219, 30,216, 91, 11,229, 2, 66,200, 16, 66,136, - 63, 33,196,249,208,190, 93,184,124,254, 76,133,200,154,129, 50,167,247, 73, 0,162,169, 30, 71,129, 2,133,127, 50,170, 53, 67, - 49,219,175,207, 1,136,109,247,142,190,120,254,242,141,204,218,194,252, 90,197,111,133, 49,103,154,246,242, 49,247,253,254,251, -239,193, 98,177,144,150,150,134,216,216, 88,152,155,155, 99,194,132, 9,234, 18,133, 98,104,149, 92,135,125, 0,220, 44,231, 44, -203,167, 38, 75, 16,184, 51,163,154, 92,189, 28,198, 16, 10,133, 80, 42,149,160,211,233,224,114,185,224,241,120, 48, 53, 53, 69, - 68, 68, 4, 6, 15, 25,102,200,227,249,255, 26,176,244,215,124,106,149,156, 21,177,134, 58, 0,188, 72,224, 75, 91, 7,135, 37, -171, 87,175, 54,237,223,191, 63, 76, 76, 76,224,212,200, 51,219,109,192,214,221,116, 58, 77,159, 94, 32, 95,229,222,200, 65, 24, -155,144, 2,128,150,171,123,182,218,161, 74,174,195,223,213,211, 69,115,207,237,151,159,182,153,183,110, 93,230,143, 46,149, 74, -145,147,147,131,220,220, 92, 72,165, 82,168, 84, 42, 0, 64, 88, 88, 24, 46,135,199,201, 75,156, 70, 39,213, 84,207, 95,219,254, -198,204, 65,251,180,241,241,144,159, 24, 54, 54, 54,200,201,201, 65, 94, 94, 30,164, 82, 41, 74, 74, 74, 96, 48, 24, 80, 88, 88, -136,131,135,127, 50, 20, 8,252,223, 85, 6,132,172,141, 83,149,102,106,169,124,232,232,215,220,149, 76,159, 62,221,204,220,220, - 28, 70,163, 17, 69, 69, 69, 72, 77, 77, 69,114,114, 50,194,195,195, 85,185, 82, 13, 84,214,125,211, 43, 3,150, 86,195,249, 39, -226,111,199, 89, 53,110,149,131,189,125,230,251,247,239,109, 13, 6, 3, 28, 29, 29,245,210,194,194, 77,108,224,186, 25,144, 5, -128,228, 3,171,119,238,222, 61,109,216,176, 97,104,215,174, 93, 90,118, 78, 78,227,234,250, 18, 1, 24, 94,128,176,216,201, 41, -230,217,179,103,226,212,212, 84, 76,158, 60, 57,255,253,219,183,203, 43,252,181,100, 64, 55, 87,119,247, 77, 39, 79,158,180,110, -210,164, 9,124,124,124,178,185,169,169, 45,222, 0,178, 26,250,103,141, 99, 83, 26,127,169,241,156, 17, 45,219,205,157, 59, 23, -122,189, 30,225,225,225,120,250,244, 41,222,191,127,143,135, 15, 31, 74,205,249,252,177, 85,114, 29, 86,219, 63, 7,122,170,220, -142, 29, 11,161,153,152,152,224,240,225,195,136,140,140, 4, 0,248,249,249, 97,234,212,169,208,235,245,152, 56,113, 18,185,244, -198, 52,169,182,254, 9,160, 37,128,111, 81, 38,242,218, 17, 66,184, 52, 26, 45, 19,128, 51, 26,230,147, 69,245, 79,138,147,226, -252,247,112,254, 35, 81,103,174,195,245, 63, 64,248,219, 52, 31, 51, 51,207,236, 11,102,118,237,230,239, 29, 28, 20, 72,111,223, -190, 61,156,157,157,225,231,231,135,212,212, 84,142, 72, 36,170, 43,159,154,210,127,192,248,100, 95, 95, 95,209,242,229,203,133, -253,250,245, 99, 57, 59, 59,131, 16,130,200,200, 72,132,134,134,106, 15, 28, 56, 32, 47,182, 27, 34,149,220,249, 89, 89,159,124, -106, 79,129, 98, 0,235,156, 50, 51,247,207,155, 51, 39,176,117,155, 54,211,131,130,130,232, 2,158, 41,107,227,170, 25, 92, 0, - 88,255,221, 41,225,176,209, 19,176,211, 3,232, 62,190,250, 60,114, 85,235,153,154, 62,243,253,160, 17,189, 61,190,156, 63,205, - 48,102,204, 24,190,185,185, 57,156,157,157, 97, 97, 97,129,164,164, 36,164,167,167,147,139, 23, 47, 42, 31,191,136,103,157,187, -254,252, 61, 87,104, 95,159,188,132, 10,255,254,159,188, 27, 52,104,144,197,148, 41, 83,204,218,182,109,203,226,112, 56,224,112, - 56,200,201,201, 65, 98, 98,162,246,226,197,139,202, 98,219,129, 69,146, 59, 39, 21,245,204,117, 88,226, 63, 46, 56,241,254,141, -160, 69, 49,175, 94, 77, 50, 2,173,180, 90,173,163,193, 96,160,209,233,244, 44,163,209,248, 74,171, 80, 28, 82,251, 5,237,160, -114, 29,214, 15, 6,131,193,196, 96, 48, 64, 42,149,226,198,141, 27,204,183,111,223,174,126,249,242,229,234,204,204, 76,232,116, - 58,140, 26, 53, 10,126,126,126,184,115,231, 14,242,114,114, 46,214,198,245, 6,144,113,210,211,167,206,156, 57,243, 74, 72, 72, - 8,253,229,203,151,214,135, 15, 31, 62, 88,157,128,153, 52,105,146, 49, 39, 53,117,170, 26,144,213,210, 63,107, 27,155,249, 87, - 79,238,121, 57,124,228,232,230, 65,107, 87,179, 58,119,238, 12,107,107,107,116,235,214, 13, 90,173, 86,212,172, 89,179,186,198, -166,194,127,192,216,164, 86,173, 90,241,119,236,216, 33,158, 54,109, 26,230,207,159, 15, 0, 40, 41, 41,193,245,235,215,177,104, -209,162,236, 84,102, 7, 85, 93,253,179,220, 82, 85, 33,192,238, 1,240, 7,144, 4,202,241,157, 2, 5, 10,255, 76, 84, 36,149, -182, 71, 89, 98,233, 75, 40,123, 57,175, 59,215,225,253,167,209,168,154,230,163, 12,246,177,122,151, 41,111,103, 47,217,228,195, -208,201, 45, 88,180, 82,243,132,248,120, 90, 93, 57, 15, 43,243,169, 9, 61,149, 86,201, 39,218,111, 92,191,126,225,206,157, 59, -123, 87,132,112,224,241,120,175, 74, 84,170, 91, 54,106,245,174, 98,161,231,173,134,230,230, 75, 7,114, 0,204,177,144, 72,118, - 7, 12, 27,181,133,107,233,198, 90,185,225, 64, 41,131, 78,215, 36,102,230, 97,167, 7,192,175,199, 2,201, 98, 13, 16, 35,181, -215,231, 88,141,126,179,230,171,175,190, 92,191,110, 93,123,129, 64,208, 93,171,215,123, 26,141, 70,192,104, 76, 40, 86,169,238, - 17,173,246,153,218,111,237, 54,174,208,158,212, 59, 47,161,168,153,194,242,221,153,246, 71, 14, 29, 90,112,250,244,233,223,181, -221, 74,173,222, 93, 44,106,118,179, 62,109,175, 90,166, 20,120,132,220,220, 71,181,153, 46,169, 92,135,245,124,251, 48, 26,103, - 89, 88, 88, 28,237,221,187, 55,183, 79,159, 62, 24, 60,120, 48, 58,119,238, 12,163,209, 8, 66, 8, 20, 10, 5, 78,157, 58,133, - 45, 91,182, 36, 52, 6,214,213,197,167, 6,110,113, 46, 95, 30,216,170, 85,171,195,181, 9,152,114,145, 85,167, 79, 98,237, 99, -147,147,160, 23, 14, 77, 25, 55,111,163,135, 70,158, 37,178,226,233,197, 49,209,175,232,245, 31,155, 94, 10, 67,228,169, 14,163, - 70,140,152,199, 96, 50,187,149,175,128, 36,175, 99, 99, 37, 21, 73,165,225, 55,245, 70, 3,251, 82, 69,236, 58,202,241,157, 2, - 5, 10,255,116,161, 53, 24,101,254, 90,149, 41,121,106,204,117, 88, 97,245, 97, 50,153,185, 73,231,102, 79,168,141,157, 5,244, - 46,183,100,161,206, 92,135,229,127,167, 0, 10,168,213, 95,255, 38, 24,105,149,213,133,172, 15,202, 55, 36, 44, 98, 17,240, 6, -122,117, 0,114, 99,129, 11,115,202,248,218,175, 95, 86,181, 77, 53, 62,100,127,115, 92,147,194, 82,224, 62,148,202,251, 80, 42, -171,117,218,101, 49, 77, 10,235,170,231,135,109, 79, 5,228,127,180,237, 31,114,214, 41, 30,254,192,249,252,183, 33, 35, 63,255, - 28, 0,129, 83, 88,152,221,213,176,176, 49, 95, 46, 94, 60,202,222,193,193,221,218,218,218,194,204,204,140,254,228,201,147,100, -125,105,233,238,214,192,145,114,107,106,157, 80, 3,183,188, 82, 83, 91,124, 50, 98,196, 60, 26,147,217,181,170,128, 33,122,253, - 67, 55, 96,111,109,150,172,143, 29,155,206, 28,251,222,229,150, 44, 48,128,153,245,233, 27,233,101,245,216, 0,189,126, 3,162, -162,170,233,243, 13,238, 75,235,105, 52,154, 2,148,227, 59, 5, 10, 20,254,185,168,200,119,120,233,127,125,224, 62, 20, 39,197, -249, 15,226,100,160,108, 21, 29,117, 62, 41, 78,138,147,226,164, 56, 41,212, 11, 76,234, 20, 80,160, 80,111, 24,240,235, 52, 24, - 5, 10, 20, 40, 80,160, 80,129, 10,223,172,170,216, 15,148,185,238,212,164, 74, 27,178,154,224, 99,148,237, 77,138,147,226,164, - 56, 41, 78,138,147,226,164, 56,255,117,156,117,113,255, 29, 87, 51, 86,248,100, 85,250,102,253,175, 64,153, 85, 41, 78,138,147, -226,164, 56, 41, 78,138,147,226,252,167,195,190, 92,100, 85,221, 0, 52, 48, 96, 41, 5, 10, 20, 40,252, 83, 17, 20, 4, 58, 33, -160, 17, 18, 68, 39,228, 52,131,144,209, 12, 66,240,135, 82,129,140, 30, 93,125, 48,219,207, 39, 88,152, 81,103,156, 2,133,127, - 20,178, 80, 67, 82,105,202, 71,235,255, 23, 46, 98,177,120, 31, 0, 90,118,118,246, 44, 0,169,212, 41,249,235,193,210,210,178, -183, 94,175,135, 92, 46,191,245, 79,108, 95,115,119,140, 32,116, 52,171,252,130, 32,245,117, 34,142, 86, 87,182,153, 7, 38,131, -246,107, 44, 46,154, 17,175, 99,223,226,151, 6, 28,142, 62,176,143,243, 94, 0,184,114, 51,109, 30,254, 59,113,181,154,218,216, -216, 92, 99, 50,153, 76,131,193, 48, 39, 55, 55, 55,172,102, 33, 52,154, 1, 0, 44,114,103,133, 52,219,118,249, 23,159,209, 88, -197,234, 67, 82,117,137, 74,198, 96, 49,222,113, 88,226, 7,179,167,209,175, 20, 41, 59,197, 86,183,255,153, 51,103,106,204,226, -221,194, 3, 3,233,134,230, 67,252, 90, 38, 39,125,187,171,253,206,238,110,214,172,228,180, 23,130,205, 63,202,246,177, 69,174, - 67, 38,143,161,133, 49,121,180, 73,135, 14, 21, 40,169, 81, 86,127,108, 4, 44,181,128, 15,139,195,113, 54,232,245,118, 52,128, - 48,152,204, 28,157, 90,157,102, 2, 68,173, 0,164,255,116, 78, 19, 14,199,201,160,215,219, 1,192, 95,177,158, 20,126,139, 26, -133,150, 64, 32,136,160,211,233, 78, 85,147,225, 86,228, 19,172,248,174,234,111, 52, 26, 13, 6,131, 33,189,168,168,168,109, 3, -142,111, 14, 96, 12,128,138, 37,234,199, 1,156,194,199, 59, 28,155,155,152,152, 44,225,243,249,189, 74, 74, 74, 90, 0,128,169, -169,105,140, 74,165,186,173,213,106,191,253, 72, 94, 38,128, 79, 4, 2, 65, 79, 58,157,222,147, 16, 66, 35,132,220, 81, 42,149, -183, 1,156, 6,240, 49,145, 18, 76,109,109,109, 55, 88, 90, 90,142, 95,177, 98, 69,129,149,149,149,215,162, 69,139,158, 23, 22, - 22,254,156,159,159,191, 10, 13,200, 81,247, 95,134,187, 88, 44, 62,206, 98,177, 24,105,105,105, 61, 1,192,217,217,249,142, 70, -163, 49,228,230,230, 78, 0,240,182,129,124,124, 0, 29, 5, 2, 65, 91,129, 64,224,111, 48, 24,154,149,231,103,124,173, 84, 42, -195,181, 90,109, 4,128, 39, 0, 84,127,161, 49, 98,198,100, 50, 67,202,251,186, 39, 0,197, 63,237, 38, 64,232,104, 22, 27, 19, -231, 85, 41,188, 90,120,215, 92,152, 6,151,106,202,214, 91,104,245,234,110, 63,100,232,208,190,116, 0,208,232,174, 12,185,125, - 47,235,252,159,220,156,166, 35, 71,142,124, 20, 18, 18, 98,161, 86,171, 49,107,214,172,227, 55,111,222,220, 43,151,203, 87,212, -122,227, 16, 88, 44,218,186,227, 58,143, 70,163, 3,128,173,209,104,176,205,200,120,235, 25, 27,253,104, 64, 76,204,227,141, 37, -113,183,159, 24,105,172,217, 90,116,139,171, 79, 37,154,185, 33, 96,200,168, 17,131,215,173, 11,194,248,177,227, 27,197,196,148, -154, 58,154, 39,177, 11, 75,248, 30, 86, 54,182, 67,215,173, 63, 67,123,112,255,220,208,144,195,193,183,167, 77,179,234, 69,137, -173,122,129,182,158,201,236, 40,244,240,240, 31,123,238, 28, 4,206,206, 76, 38,135, 67, 7, 0,189, 90,237,172, 76, 75,179, 63, - 57,116,104,135,160,248,248,187, 65,192, 83,138,243,255,133,147, 66, 67,132, 22,157, 78,119,202,200,200,176,229,243,249,101, 55, - 99, 66, 96, 48, 24, 96, 48, 24, 42,147, 23, 19, 66, 42, 63,245,122, 61,188,189,189,235,245, 70, 11,160, 23,128, 79,123,244,232, - 49,250,219,111,191,101,249,248,248, 84,164, 12,233,182,114,229,202,239, 34, 35, 35,207, 2, 56,130,178,224,141,245,125,227,237, -207,231,243,143,109,221,186,213,188,111,223,190, 76, 7, 7, 7,208,104, 52,100,103,103,119,188,121,243,102,219, 69,139, 22,205, - 81,169, 84, 19, 1, 92,107,192,249,105,105,102,102,118,102,196,136, 17, 78,221,187,119,231, 54,111,222, 28, 6,131, 1, 47, 94, -188,152, 22, 17, 17, 49,238,236,217,179,129, 10,133, 98, 52,234,159,175,141, 38, 16, 8,166,152,155,155,111, 88,187,118,173,229, -196,137, 19,217,209,209,209, 69,110,110,110,180, 7, 15, 30,216,156, 58,117,106,206,166, 77,155, 62,145,203,229,171,148, 74,229, - 79,168, 71, 14, 69, 51, 51,179, 8, 58,157,238, 84, 31, 33, 12,160, 33, 98,184,117,227,198,141, 79,221,191,127,191,113, 74, 74, -138, 97,248,240,225, 71, 1,224,246,237,219, 62, 58,157,142,214,175, 95,191, 43,233,233,233, 99, 0,188,168,103,219,125, 45, 45, - 45,207,143, 31, 63,222,210,221,221,157,215,184,113, 99, 26,159,207, 7,131,193,128, 76, 38,115,136,142,142,238,243,244,233,211, -146,155, 55,111, 22,170,213,234,161, 0,162, 26,112,157, 58,219,218,218, 78, 98,177, 88, 45,245,122,189, 35, 0, 48,153,204, 12, -157, 78, 23,157,155,155, 27, 2,224,209,199, 14, 16, 59, 59,187, 61, 27, 54,108,176,206,205,205, 37,155, 54,109,218,163, 80, 40, -166,252, 83,111, 6,199,127, 62,141,136,231, 79,129,178,180, 57,180,106,250, 31, 13,128,201, 23, 95, 44, 70,219,118, 29, 48, 97, -252, 39,117,114, 14,234,237,180,149,197, 54,177, 42, 45, 45,125, 36, 43, 86,159,230,243,184, 99,198,143, 11, 72, 0,128, 43, 87, -239,142,105,223,222,226,142,144,199,249,132,203,229,118,214,105,180, 5,151,111,165,127,213, 16, 81,229,232,232,120,205,194,194, -130, 87, 88, 88,152,157,151,151,247,195,144, 33, 67,214, 31, 57,114,196, 34, 57, 57, 25,105,105,105, 88,184,112,161, 32, 61, 61, -125, 94, 84, 84,212, 99,141, 70, 83,163,101, 75,161, 40,220,181,114,249,176,181, 66,161, 53,131,207, 51,135,153,208, 18,110,238, -173,208,177,243, 16, 12, 28, 60, 29,137, 9,145, 29,143, 28, 94, 23,153,145,113,243, 27,129,101,147,245, 82,105,227, 26,239, 75, -205,155,162,251,208, 17,101, 34,107,237,218, 32,196,199,197, 41, 82,222,209, 63,191,116,142,201, 27,216,219,155,163,215,100,167, - 60,184,127,174,113,215,110,195, 1,160,109,200,225,224,219,159, 79,176,232,189,231,120,145,130,122, 36,213,124,239, 92,199, 98, - 77,233,191, 99,135,173,223,156, 57, 38,202,119,239,180, 73, 63,254, 88,156, 19, 30,110, 96,114, 56,196,121,192, 0,154, 77,207, -158,220, 57,175, 95,155, 60,220,180,201,159, 21, 28,236,182, 74,171, 61, 70,113,254, 79, 57,255,237,168,112,130,175,186,250,112, -127,173, 66,139, 70,163,129,207,231,227,228,201,147, 96,177, 88, 96, 50,153, 96,177, 88, 53,254,237,226,226, 82,159,138,140, 20, -139,197,223,237,221,187,215,174,127,255,254,224,114,185,149, 63, 48, 24, 12,244,237,219, 23,125,250,244, 97,101,102,102,142, 59, -121,242,228,184,141, 27, 55,230, 72,165,210,249, 40, 79, 12, 93, 11,122,122,121,121,133, 94,191,126,221,180,180,180, 20,225,225, -225, 40, 42, 42, 2,155,205,134,147,147, 19,250,245,235,199,140,139,139,179,236,219,183,111,104,124,124,124, 0,128, 59,245,168, -107, 91, 91, 91,219,123,167, 79,159,230,182,106,213,138,150,152,152, 8, 63, 63, 63, 0,128, 76, 38,195,240,225,195,185, 19, 39, - 78,116, 31, 55,110,220,147,220,220,220,238, 0, 34,234,224,107, 35, 22,139,127, 26, 49, 98,132,195,198,141, 27,205,205,204,204, -144,146,146,146, 37, 22,139, 61, 43,206,247,184,113,227,216, 67,134, 12,177,223,178,101,203,174, 51,103,206,124,149,155,155, 59, - 5,128,164, 86,213, 90, 46,136,121, 60, 30,114,114,114,112,252,248,113,204,155, 55, 15, 12, 6, 3,185,185,185, 56,117,234, 20, - 62,255,252,243, 10, 65, 83, 47, 49,204,227,241,250,120,120,120, 28,188,125,251,182,147, 72, 36,130,131,131, 3,125,205,154, 53, - 45,221,220,220, 76, 27, 53,106,196,200,202,202, 66,104,104,168,219,164, 73,147,206,167,166,166, 78, 83,171,213,117, 78,169,217, -217,217, 29,186,116,233,146, 75, 76, 76, 12,126,252,241, 71, 20, 22, 22,130,205,102, 67, 36, 18, 65, 44, 22,195,211,211,147,182, -124,249,114,222,144, 33, 67,120,243,231,207, 63,164,209,104, 90,215,227, 26,181,178,181,181,221,215,179,103, 79,183,224,224, 96, -145, 88, 44, 70,197,139,129, 76, 38,115, 74, 73, 73,233,184,118,237,218,209, 17, 17, 17,201,185,185,185,179, 1,188,108,224,192, -105,221,188,121,243,128,225,195,135, 51,178,178,178, 16, 18, 18, 18,160, 80, 40, 90, 55, 64, 92,254,173, 16,241,252, 41,102,205, - 93,168,116,112,118, 54,185,126,237,224,200, 51,191, 52,125, 46, 50, 45, 75, 72, 45, 45,129,118,244,136,248,118,253,250, 79, 55, - 25, 52,120,184,114,255,247,187, 4,245, 17, 90, 44,182,137,213,241, 99,219, 83,239, 63,136,104,121,227,230,211, 1, 35,135, 14, - 37, 38, 38, 34, 55, 0,248,106,209, 23,172,208, 11, 23, 14,247,237,211, 33,179, 91,215,182,169, 19, 38, 46,118,105, 64,117,155, - 54,109,218,244,110,100,100,164, 29,135,195, 65, 97, 97,161,213,254,253,251,183,119,237,218,149,158,148,148,132,184,184, 56,188, -123,247, 14, 50,153, 12,125,251,246, 21, 72, 36,146, 31, 0,212, 40,180,180,244, 94, 27, 28, 26,233,118, 91,153,242, 27,107, 13, -114, 91,162,203,106,126,227,210, 13,223, 19, 33, 37,126,118,246,222,158,159, 78, 13,196,186,245,103, 89, 63, 31,223,188,246,214, -205, 19, 0,189,113,205, 25, 1, 8, 58,175, 92,181, 2,114,133, 26, 19,199,207,196,164,241, 51,173, 8, 52,246,196, 80,202,215, -148, 20,137,204, 76, 94,135,237, 61,176,125, 4, 0,167, 42, 98,235, 22, 37,182,106,198, 58, 38,179, 67,192,119,223,217,180,156, - 49,131,243, 50, 56, 88,149, 31, 30, 94,226, 49,104, 80,145,223,103,159,169, 1, 64,241,238,157, 73,124, 96, 32,207,198,223,223, -180,211,146, 37, 22, 6,141, 70,188,110,221,186,246,107,203,146,151, 55,136,211,101,204, 24,195,218,195,135,219,133, 47, 94,220, -131,166,211, 49, 6,116,234,244, 98, 83, 72, 72,198, 31,225,252, 51,235,153,121,239,158,186,208,205, 13,126,195,135, 23,184,216, -218,170,255,204,182,255,145,122, 82,168, 68,133,175,214,172,170,111,168, 8, 11, 11,235, 14,224, 46,128,224,128,128,128, 32, 0, - 16, 10,133, 57, 82,169,212, 54, 52, 52,180, 78,145,197, 98,177, 96,111,111, 15, 79, 79,207,220,220,220, 92,187, 90, 42,144,102, - 52, 26,157, 8, 33,149,214,151,154,160, 86,171,145,144,144, 0, 95, 95,223,116,148, 37,162,173,209,168,195,227,241,146,226,226, -226,172, 99, 99, 99, 17, 17, 17, 1, 55, 55, 55, 88, 88, 88,128,197, 98, 65,167,211, 65, 46,151,195,203,203, 11, 28, 14, 7,109, -218,180,201, 87,169, 84,110,117, 76, 1,113,248,124,126,194,189,123,247,156,253,252,252,240,236,217, 51, 56, 59, 59, 67, 44, 22, - 3, 0,222,189,123,135, 7, 15, 30, 96,208,160, 65,136,140,140,196,168, 81,163,210, 84, 42,149, 39, 0,117, 77,132,150,150,150, - 89,183,111,223, 78,247,241,241, 41, 85,169, 84,244,156,156, 28, 86,120,120,184, 94,161, 80, 8,100, 50, 25, 75, 42,149,178,228, -114, 57, 83,165, 82,177,232,116,186, 73, 73, 73, 9,235,214,173, 91, 12,173, 86, 91,107,128,204,138,235,116,225,194, 5,248,248, -248, 32, 52, 52, 20, 95,126,249, 37, 30, 62,124, 8,103,103,103,156, 62,125, 26, 75,150, 44,193,155, 55,111, 96,109,109,141,230, -205,155,215,117,141,224,238,238,158,248,234,213, 43,119, 19, 19,147,138,188,142, 21,249,242,144,151,151,135,183,111,223, 34, 35, - 35, 3, 30, 30, 30, 24, 63,126,252,219,140,140, 12,143,186,122,158,163,163, 99, 94, 76, 76,140,181,175,175, 47,114,114,114, 32, - 18,137, 32, 20, 10, 33, 18,137, 42,255,118,115,115,195,226,197,139, 33, 22,139,115, 75, 75, 75,237,234, 18, 65, 62, 62, 62,215, -110,221,186,101,109,110,110,142,236,236,108,200,229,114, 48,153, 76,240,120, 60, 88, 91, 91, 87, 10,249,132,132, 4, 12, 30, 60, - 56, 63, 41, 41,169,127, 3, 68, 18,221,206,206, 46, 46, 42, 42,202,147, 16,130,212,212, 84,188,121,243, 6,115,231,206, 77, 40, - 45, 45,245,198, 63, 40,103, 95, 21,191, 43,147, 41, 83,103,153,140, 24,214, 89,243, 58, 38,140,198, 49,190, 65,235,150,230, 50, - 0,120, 17, 45, 23,170,233, 94,104,214, 34,128,252,114,254, 17,251,167, 35,251, 89, 48,194, 14, 52,188,121,157,240,127,236, 93, -119, 88, 20, 87,251, 61,179,189,209, 97,151, 38, 88, 8, 29,172, 88,162, 98,197, 10, 70, 99, 75, 49,209,196,110, 76,172, 49, 26, -141, 26, 83, 52,150,196, 18,141, 45,137, 5,163,198, 46, 86, 84,236, 37,138,149,174, 72,147, 93,216,165,237,194,246,157,157,249, -253, 33,240, 33, 1,118,177,124,191,152,111,207,243,236,179, 51,179,119,206,222, 59,247,206,220, 51,239,125,239,123,241, 77,125, -220,125,123,240,143,182,248, 0, 0, 32, 0, 73, 68, 65, 84,122,142,155, 62,253,227,240, 30, 93,187, 51,202,213,106,201, 47,191, -252,212, 46, 51, 51, 69, 2, 0,126,126, 33,242,201,147,103, 36,218,139, 68,242,243,151, 47, 80,171, 87,255,246,224,116,130,108, -171, 21, 89,246, 11, 8, 8,184,118,228,200, 17, 55,137, 68, 2, 71, 71, 71,168,213,106, 24,141, 70, 36, 39, 39,235,246,236,217, - 99,114,112,112,176, 47, 40, 40, 64, 89, 89, 25, 8,130,192,145, 35, 71,114, 1, 52,173, 77, 84,229,163, 5, 0, 83, 6,132,176, - 67,123, 5, 56,115,120,164, 64,192, 78,247, 4, 97,230, 17,180,157,251,137, 83,119, 90,157,136,255,235,253,183,135,206, 18, 71, -118,127, 27, 11, 23, 12, 55, 73,165,185,109,141,136, 76,173,203, 71, 43,216, 31,189,134, 12,123,123,196,146, 37,139,177,120,225, -215,136, 59,114, 72,105, 39, 98,232, 29,156,216,142,221, 58,117,209,205,252,100,112, 94, 69,133,212,103,201,242, 61,239, 69, 15, -158,217,164,107,228, 16, 92,190,116, 8, 59,127,255,250, 22, 33,160,109,195,136,181,176, 24,112,118,242,243,155,248, 89, 70, 6, -231,238,226,197, 21,164, 84, 90, 26, 49, 99, 70, 81, 93,105,159,196,199,139,184, 94, 94, 14,206,111,189,229,178,166,105, 83,218, - 36,151,111,170,203,199,168, 46,206, 51,118,118, 78,187, 79,156,232, 77,179,217,221,231,124,241,133, 32, 38, 38, 6, 42,149, 10, -251,247,239,199,166,141, 27,245,158,158,158,247,189, 30, 60,184, 29,174, 82, 45,176,150, 51, 98,198,140, 34,179,217, 76,140,152, - 61,187, 79, 82, 86, 86,175, 2,185,188, 25, 0,120,186,184,228, 69,248,249,221,250, 45, 46, 46,109, 93,243,230,148,181,249,220, -114,242,164,251,190,236,236,113, 46, 46, 46,130, 66,185,156,197,227,114,139, 59,133,134,254,185, 97,254,252,243,228,189,123, 28, -126,147, 38, 14,142, 49, 49,141, 46,123,196,140, 25, 69, 37,229,229,172,207,190,253,182, 75, 78, 97, 97,179, 10,189,222,191,172, -188,220,195,108, 50, 49, 28,132,194,226, 22, 65, 65,114,237,197,139,178, 22, 26,205,180,173,128,252, 85,213,117, 93, 90,228, 53, - 66,237, 56, 90,127, 91,235,240,124, 76, 76,204,223,102,215,208, 52,109,149, 53,139,205,102, 63, 51, 76,213, 0, 56, 4, 65, 32, - 49, 49, 17,174,174,174,240,240,240, 0,143,247,236,226,131, 10,133, 2, 87,174, 92, 65, 74, 74, 10, 90,183,110, 93, 53,140, 81, -191, 34,226,241,166, 47, 95,190,220,201, 96, 48,224,214,173, 91,136,136,136, 0,143,199, 3,135,195,121, 70, 4,202,229,114,132, -133,133, 97,206,156, 57,142,223,127,255,253,116,189, 94, 95,239, 27, 41,139,197,154, 58,126,252,120, 73,149, 5, 43, 47, 47, 15, -237,218,181,171,254, 93, 44, 22,227,206,157, 59,136,136,136, 64,147, 38, 77, 48,124,248,112,201,206,157, 59,167,146, 36,185,178, - 62, 78, 46,151,203,104,217,178,101,123, 0, 16,137, 68, 96, 48, 24,233, 14, 14, 14, 98,119,119,119,145,131,131,195,223,202,248, -251,239,191,151, 49, 24, 12,147, 69, 53,192, 96,160,160,160, 0,225,225,225, 80, 42,159,174,224,162, 86,171,225,239,239, 15,149, - 74, 85, 45, 90,189,188,188,160,213, 54,236,250,213,170, 85,171,197,193,193,193,125, 69, 34, 17,143,205,102,227,238,221,187,104, -219,182, 45,246,236,217, 3, 95, 95, 95, 8,133, 66,100,100,100,160,101,203,150,184,112,225, 2,196, 98, 49,194,194,194,120, 18, -137,228, 82, 73, 73, 73, 66, 78, 78,206,226, 6,242,201,176,179,179,195,133, 11, 23,240,219,111,191, 33, 43, 43, 11, 82,169, 20, -246,246,246,104,211,166, 13, 66, 67, 67,209,185,115,103,100,100,100,128,176,220,152, 60, 2, 2, 2,226,254,250,235, 47, 55,154, -166,177,115,231, 78, 84, 84, 84,192, 96, 48,128,193, 96,128,207,231,195,217,217, 25,189,122,245,130, 88, 44, 70, 64, 64, 0,246, -238,221,235, 54, 96,192,128,227,114,185,188, 13,128, 2, 75,215,213,217,217,121,218,162, 69,139,124, 36, 18, 9,178,179,179,161, - 84, 42,225,238,238,142, 30, 61,122,120,159, 57,115,102,154,201,100,250,233,223,210,145,213,112,124, 39, 78,159,250,117,104, 64, -139,210,150,173,131,132, 62, 7,226,220,125,246,196,201,195, 0, 32, 60,196, 61,105,104,140, 48,239,110, 82, 92,222,233, 83,135, -110,165,164,227, 0,172, 24,218, 86,106,244,127,198,159,185,209,191,109,235,118,212,242, 31,102, 71,127, 50,101, 28, 79,226, 62, - 22,133,185,135,112,230, 92,162,239,236, 89,227,197, 43, 87,109, 57, 17,127,230, 6, 67,169,209, 47,176,206,148,229,187,110,219, -134,206,110,229, 69,251,240, 48,149, 11,129,125, 56,252,252, 2,161, 82,169,192,231,243,249,239,189,247,158,121,222,188,121, 26, - 7, 7, 7, 33, 65, 16, 72, 72, 72,144, 3,232,103,137, 87, 39,113,166,205, 70, 19, 73,115,153, 20, 77,216,107, 9,115, 9,247, - 65,242, 99,244,141,234, 89,216,181, 99,248,247,243,150,172,250, 50, 32,176,173,248,227,113, 95,179,191, 93,252,254, 70, 16,136, -172,139, 39,245, 33,206, 17,127, 30, 20, 0,136, 94,242,205, 98,100,102,102, 56, 79, 24, 83,246, 53,139, 39,240, 10,110,218,197, -126,227,111, 9,253,253,253,155, 55,155, 57,117,248,177, 31,127,254, 49,186,166,101,107,219,239,139, 14, 3,232,109,205,181,253, - 31, 66,171, 15,226,226, 80,145,155,107, 42,185,116, 73,215,251,231,159,139,124,250,245,251,201, 96, 52,186, 85, 61, 42, 24, 4, - 1,162,202,117,130,162, 8,214,156, 57, 12,154,197,130,201,217,121, 12, 74, 75, 3, 45,113,206,146,201,134,190, 63,110, 92,244, -225,147, 39,209,188,121,243,234,254,204,201,201, 9,179,103,207,198,140, 25, 51,120,119,238,220,233,176,111,223,190, 14, 43, 87, -172,112, 7, 48,212,154,124,158,190,126,221,121,210,146, 37,243, 91, 71, 68,248,238,216,181,139,247,198, 27,111, 0, 0, 30, 61, -122, 20,240,195,178,101, 77,195, 91,182, 44,252,126,250,244,109, 73,243,230,133, 1,184,212, 16,103,193,197,139,134,125,217,217, -227,206, 37, 36, 56,133,135,135, 3, 0,210,210,210, 36,107,214,172, 25, 31, 54,124,248,168, 37,147, 39, 47,136,209,233,202, 28, - 20, 10, 94,204,186,117,172,221, 35, 70, 88,228,172,202, 39, 0,244,248,248,227,233,145, 61,123,134, 14, 29, 55,206,197,215,215, -151,176,179,179,131,209,104,132, 84, 42,117, 78, 74, 74,122, 35,174,188, 92,117,240,250,245,157, 48,155,251,188,194,186,174, 83, -139,188,102,150,172,191,107,138,202,239, 30,113,113,113, 52,128, 30, 49, 49, 49, 23,170, 58,112,179,217,108,149,200, 98,177, 88, - 32, 8,194, 90,177, 5,154,166, 81, 84, 84,132,162,162,162,234,161, 35,185, 92,142,115,231,206, 33, 35, 35, 3,108, 54, 27, 28, - 14, 7, 70,163,229, 53,104, 69, 34, 81, 84, 84, 84, 20,235,250,245,235,240,243,243,131, 64, 32,168,206, 87,213,135,195,225,192, -211,211, 19, 42,149, 10,189,123,247,102,175, 93,187, 54,170, 33,161,229,232,232, 56,112,228,200,145,220,170,253,138,138, 10, 48, -153,204,106,209, 82, 81, 81,129,146,146, 18,148,149,149, 65,167,211,225,205, 55,223,228,198,197,197, 13, 44, 46, 46, 94,105, 77, -249, 53, 26, 77,133, 92, 46,119,138,140,140,116,222,182,109, 91,218,155,111,190, 25,244, 76, 75, 59,127, 94,167,211,233,216, 12, - 6,195,170,117,244, 98, 99, 99,171,175,125,126,126, 62, 54,110,220, 88,253, 91, 70, 70, 6,214,174, 93, 11,154,166, 65,211,116, -131,117, 20, 28, 28, 60, 96,231,206,157, 17, 59,118,236, 40,101, 50,153, 72, 75, 75,195,174, 93,187, 64,211, 52,196, 98, 49, 52, - 26, 13, 10, 11, 11,145,144,144, 0,146, 36, 97,103,103, 7,111,111,111,254,212,169, 83,187,126,253,245,215,236,134,132,150,217, -108, 54, 51,153, 76, 52,109,218, 20, 11, 23, 46,132, 78,167, 3,135,243, 84, 95,170, 84, 42,148,149,149,225,246,237,219,200,206, -206, 6, 77,211, 13,118, 50,124, 62,127,248,142, 29, 59, 36, 92, 46, 23, 90,173, 22,229,229,229,200,203,203, 67, 78, 78,142, 78, - 46,151,147,246,246,246,140,166, 77,155, 50,120, 60, 30,111,200,144, 33, 68,149,224,140,137,137,113,221,185,115,231, 59, 6,131, -193,146, 72, 18,123,120,120,124, 57,126,252,120,126,205, 54, 91, 80, 80,128,161, 67,135, 10,175, 94,189, 58, 79,165, 82,237, 2, -160,248,151,117,104,244,190,131,129, 55,111,157, 73,107,121, 32,206,221, 39,231,137,185,203,236,207, 87,177, 0, 96,243,166,165, - 93, 14,196,229, 95, 9,110, 94,152,183,239, 96,224, 77,103,231, 20, 75, 66,128,209,171,187,231, 32,145,144, 63,114,232, 91,111, -209,191,252,242, 83,187, 79,166,140,227, 53, 13,156,253,212,194,201,150,160, 55,249, 13,161,209, 62,226,255,242,203, 79,237,134, -190, 53,236,118, 86, 86,246,166, 94,221,121,123,207, 93,144, 29,109,200, 98, 40,113,229,123, 11,121,106,120,251,133, 34, 40, 68, -132, 59,119,211,176,255,207,107, 8, 9,235, 4,189, 94, 15,146, 36, 69,131, 6, 13,210,236,217,179, 71,151,158,158, 94,174,213, -106,187, 3, 72,183, 84,248, 39, 79,146,169, 32,143, 78, 70,142,128, 71,150, 43, 57,154,185, 11,246,141,104,215,177,111,132,179, -167, 55, 91, 44,162,142, 14,232,211, 97,215,111, 91, 23,206, 88,176,104, 23,218,119,232,251,102, 74,218,165, 80, 0,247,235, 20, -175,153,136, 99,236, 63, 72,102, 62,124, 24,157,147,157,253, 36,208,221,195,240,168,140, 54, 77,155,187,165, 79,100,247,225,173, -222, 8,233,198, 77, 73,190, 64, 44,156,243,206, 31, 75,150,255,248, 94,149,216, 58, 27,255, 71,247, 49, 99,174,113,183,109,171, -223, 58,254,191, 6, 14,143,215,196,174,105, 83, 86,214,182,109, 90,191, 65,131, 74, 1,192, 96, 52,186,101,101,103, 59, 10,133, - 66,208, 52, 13,147,201,244,140, 15,113,149,223,112,120, 80,144,187, 53,156, 89, 95,125,213,106,206,156, 57, 40, 40, 40, 0, 73, -146, 96,179,217,181,159,217, 80,171,213, 24, 51,102, 12,214,173, 88,209,201, 26, 78,179,217, 76, 76, 90,178,100,254, 23,243,231, -191, 49,113,226, 68, 70,205,103,175,139,139, 11,246,237,223,207, 93,191,126,125,147, 47,215,173, 27,243, 62,143,151, 9,189,190, - 65,206, 34,127,127,184, 20, 22, 10,170, 68, 22, 0, 4, 5, 5, 97,227,198,141,188,177, 99,199,114, 7, 13, 26,180,234, 78,235, -214,107,126,234,218,245,161,107, 96,160, 3,151,199,107, 98,137,179,234,122, 2, 64,185, 78, 23,254,211,154, 53,206, 55,110,220, - 64, 97, 97, 33, 10, 10,158,190,143, 18, 4,129,246,237,219, 19, 31,124,240,129, 99, 11, 31,159, 14, 48,155, 95,101,117,255, 77, -139,188, 70,152, 80,199,177,255,248,104, 85, 22,136,168, 44, 32, 81,163,115,124, 70,176, 88, 18, 90,207,131,178,178, 50,148,149, -149, 97,235,214,173,224,112, 56,213,157, 47, 0, 24, 12, 6,107, 68, 75, 75, 47, 47, 47, 40,149, 74, 4, 6, 6, 62, 99,201,226, -112, 56, 96,177, 88,224,112, 56,224,241,120,208,235,245,240,245,245,133, 70,163,105,217, 16,167, 86,171,109,227,226,226, 82,221, -193,234, 43, 27,171, 94,175,175,206,175,193, 96, 64,105,105, 41, 42, 42, 42, 80, 94, 94, 14,181, 90,221,214,154,242, 82, 20,133, - 7, 15, 30, 60, 10, 10, 10,106,195,100, 50, 97,103,103, 39, 82,171,213,213,190, 69, 37, 37, 37,216,190,125,187,250,195, 15, 63, -116, 59,114,228,136, 69,161, 69, 16, 4, 62,253,244, 83,240,120, 60,104, 52, 26,252,242,203, 47,248,236,179,207,192,225,112, 80, - 94, 94,142,141, 27, 55, 98,230,204,153, 96,177, 88, 48, 24, 12, 88,179,102, 77,189, 92,201,201,201, 89,215,175, 95,111,219,174, - 93, 59,231,131, 7, 15, 42,250,244,233, 35,238,215,175, 31, 4, 2, 1,180, 90, 45, 76, 38, 19, 58,117,234,132,224,224, 96,200, -229,114,156, 56,113,162, 40, 32, 32,192,237,198,141, 27, 84, 65, 65, 65,142, 5,113, 77,215,176, 24,194,108, 54,163,176,176, 16, -101,101,101, 80, 40, 20,144, 74,165,120,242,228, 9, 88, 44, 22, 44,232, 44,184,186,186, 14, 11, 15, 15,103, 2,128, 64, 32, 64, -155, 54,109, 48,127,254,124, 82,171,213,142, 4,112,162, 50,217,128, 45, 91,182, 28,188,124,249, 50,203,203,203, 11,169,169,169, - 16,139,197, 44, 62,159,111, 81,104,121,120,120,252,126,244,232, 81,151, 42,113, 93,117,157, 53,154,167,213, 49,116,232, 80,151, - 29, 59,118,252, 78,146,228,192,127, 91,167,230, 36, 0,167, 77,184,131,114, 79,156, 60,108,246,231,171, 88,193,225, 79, 95, 94, - 39, 76, 4,107,229,138, 89, 97,163, 6, 59, 28,115, 18,168, 56,150,120, 6, 68,249,172,127,235,173, 62,140,247,222,141,201,224, -112,156,252, 54,109,254, 90, 34,113, 31, 91, 67,134, 57,192,213,205, 1,126, 77,185,196,190, 99, 41,146,185,243,190,209,199,238, -248, 49,243,143,221,113,253,185,236,248,190, 39,206,228, 77,174,143, 59,253, 81,217, 17,141,158, 31,162, 42,190, 71,184,184,119, - 65,155,214, 65,144,136, 75,177,229,247, 61,104,222,162, 61,244,122, 61, 28, 28, 28,132,102,179,217,200,100, 50, 99,173, 17, 89, - 0,112,246,108, 25, 21, 22, 86,102, 96,150, 83,228, 39,159,173,124,187,207,128,183, 66,123,245,138,162, 78,199,159, 54,118,105, -107,148, 13,232,215,166,240,100,252,250, 12,153,244,113, 64, 88,203,174, 72, 78, 74,232, 79,211,120, 64, 16,117, 91,159,146, 30, -226,164,142, 74, 78,216,179,103, 2,165,165,110, 11,190,253,238,254,128,232,232,209,225,221, 34,187, 81,241,103,206, 25,184, 40, - 74,113,232,218, 57,255,147,113, 3, 14,254, 26,187,166,239,201, 19,191,251, 43, 85, 57,113, 54,145, 85,235, 37,141, 36,221, 89, - 60, 30, 67,145,144, 64,182, 28, 59, 86, 95,117, 63, 10,133, 66, 28, 62,124, 24, 92, 46,183,250,195,225,112,170,183,221,221,221, - 65, 84, 78, 35,181,134, 19, 0,100, 50, 25, 10, 10, 10,224,232,232, 8,177, 88,140,130,130, 2, 92,189,122, 21,233,233,233, 96, -179,217,232,223,191, 63, 24,245,248, 54,215,230, 28, 49,123,118,159,144,150, 45,125,107,139, 44, 0, 48, 26,141, 40, 41, 41,193, -224,193,131, 25, 39, 78,156,240, 56,153,155,251, 22,128,216,134, 56,219, 70, 71, 23, 23,238,219, 87,231,127,183,107,215,142,184, -114,229, 10,175,127,191,126, 51,102,125,247,221,250,117, 59,118,228,153, 73,210,163, 49,101,103, 48, 24, 12,130, 32,224,227,227, -131,146,146, 18, 84, 84, 60, 29,193,182,179,179,131,179,179, 51, 76, 38, 19, 40,154,102,191,202,186,174, 79,139,188, 38,216, 92, - 67,112,109,254,155, 69,171,178, 80, 0,208,163,102,199, 66, 81,148, 85, 34,139,205,102, 91,244,185,178,198,202, 85, 27,214, 8, -173,170,188,242,249,252,234, 27,173,166,192,170,202, 39,131,193, 0,147,201,180,216,137, 87,138, 33,102,121,121, 57,246,239,223, -143,238,221,187, 87, 15, 75, 41,149, 74,148,149,149, 65,169, 84, 66,167,211, 33, 43, 43, 11,103,207,158,133,191,191, 63, 96,101, -240,215,204,204,204, 91,205,155, 55,143,168,234,196,123,246,236,217,100,219,182,109,210,129, 3, 7,122,209, 52,141, 5, 11, 22, - 20,117,234,212,201,173,102, 39,111, 9, 76, 38, 19, 87,175, 94,133,191,191, 63,104,154, 6,135,195, 65, 90, 90, 26, 36, 18, 9, - 40,138, 2,139,197,130, 66,161,128,189,125,195, 49, 18, 31, 60,120,240,209,199, 31,127, 44,117,116,116,108, 85, 92, 92, 44,227, -241,120,145, 23, 47, 94,244, 49, 26,141,112,112,112,128,131,131, 3,142, 31, 63, 14, 39, 39, 39, 76,159, 62, 61, 87,171,213, 94, - 21,137, 68,238, 90,173,246, 94, 65, 65,193,130,198,212, 55, 73,146, 80,171,213, 40, 45, 45, 69, 73, 73, 9, 84, 42, 21,116, 58, -157,197, 60,214,133,200,200, 72,196,197,197, 49,151, 46, 93,250,107,102,102, 38, 0,192,207,207, 15,211,167, 79,103,122,123,123, - 35, 43, 43, 11,183,110,221,130,209,104, 4, 77,211, 13,222,188, 44, 22,171,231,135, 31,126,216,213,215,215,151, 48, 26,141,160, - 40, 10,122,189, 30, 85,219,185,185,185, 8, 9, 9, 97, 52,109,218,244,205,204,204,204,158,176,110, 98,133, 13, 0, 10,115, 15, -193,155, 45, 1, 24, 14,160,181,135, 80, 92,244,124, 81, 92,228,114,249,119,115,190,186, 50,118,221,114,163,251, 19, 25, 16, 20, - 62, 4, 1,161,189,241,209, 7, 36,150,174,216, 15,223,166, 65,200,201,201, 65,207,158, 61, 57, 82,169,244,227,138,138,138,217, -214,114,199,199, 95, 55,159, 62,126, 98,248,136,119, 70, 71, 68, 69, 13, 36, 79,157, 58,142, 7,247, 78, 37,125,252,206, 48, 57, - 77, 85, 16, 46, 78,130,219,105,169, 55, 3, 90,181,233, 1, 3,105,142, 4, 22, 47, 7, 22,211,245,223,239, 48, 28, 59,230,201, - 56,118,232,247, 15,222, 27, 53,166,117,239,222,125, 77,167,226,143,226,214,181,248,187,171,150,143,191,176,116,205,222,158,125, -250, 15, 11, 19,187, 95, 61, 30, 30,168, 31,231,227,234,248,104,203,182, 18, 91, 99,169,235,222,228,243, 41, 84, 62, 23, 25, 4, - 1,154,166,159, 17, 89,181,133, 22,131,193,176,104, 0,168,201, 89,179, 47,170,122,161,222,180,105, 19,120, 60, 30,184, 92, 46, -216,108,182, 69,247,139,154,156, 73, 89, 89,189,182,199,198,242,234, 18, 89,197,197,197, 40, 46, 46, 70, 69, 69, 5,222,125,247, - 93,206,215, 55,111,182, 67,165,235, 71,125,156,190,158,158,122,145, 64, 80,152,156,156,236, 21, 26, 26,250, 76,126, 85, 42, 21, - 4, 2, 1, 98,119,237,226,196, 68, 71, 79,233,125,252,248, 42, 88,136,127, 85, 87,217, 9,130,128, 68, 34,129,179,179, 51, 8, -130, 0, 73,146, 40, 40, 40, 64, 82, 82, 18,110,222,188, 9, 38, 65,144,175,178,142,235,210, 34,175,161, 85,107,115,157, 67,135, -245,141,137, 54, 70,104, 49,153,204,231,182,106,213, 7,107,134, 14,133, 66,225,125,169, 84,218,197,219,219, 27, 36, 73, 86, 11, -173,218, 67,135, 85,214,143, 59,119,238, 64, 40, 20,222,215,233,116, 13,114,210, 52,253,102,135, 14, 29,112,224,192, 1, 36, 36, - 36,224,241,227,199,208,104, 52,208,235,245,208,106,181, 72, 74, 74, 2, 69, 81, 8, 15, 15,135, 72, 36,130, 80, 40,188,175,215, - 55,252, 34,170, 86,171,101,108, 54, 59, 72, 32, 16, 84, 31,243,244,244, 68,113,113, 49,101, 50,153,176,125,251,118,149,135,135, -135, 72, 32, 16, 88, 45, 92, 9,130,128, 92, 46, 71,147, 38, 77,170,125,180,202,203,203, 33,145, 72,170,132, 5,244,122, 61,236, -237,237, 45, 14, 29, 2,208, 61,124,248,112, 86,141,253,246, 35, 70,140,248, 99,207,158, 61, 45,206,156, 57,131, 27, 55,110, 64, - 44, 22,227,251,239,191,127,156,157,157,253, 30,128,155,114,249,203,245,139,180,166, 13, 21, 23, 23,239,191,127,255,254,155, 29, - 58,116,168,126, 74,244,236,217,147,232,217,179,167, 91, 77, 83,191, 66,161,192, 95,127,253,133, 51,103,206,128, 32, 8,100,100, -100,152,181, 90,237, 31, 13,141, 82,120,123,123,111,155, 63,127,190, 29, 73,146,213,109, 91, 32, 16,128,207,231,131,195,225,128, -201,100, 34, 59, 59, 27,131, 7, 15,118,252,249,231,159,127,215,235,245,111, 0, 48,226, 95,130, 50, 45,140,119, 30,168, 28,195, - 67,220,147, 54,111, 90,218,101,194, 68, 84, 13, 29,146,225, 33,146,164, 59, 15, 10, 29, 35, 36,150,203,123,226, 76,222, 39, 6, -211,137, 65, 39, 78,158, 31,249,249,140,233,108, 63,191, 16,249,153,115,137,190,189,201,111, 8, 87, 55, 7, 20, 23,169,144,157, - 91,136,204, 28, 3,237,231, 23, 34,191,245,215,125,222,138,159, 86, 7,168, 53,186,170,161,195, 6,219,233,165,171,143,135,172, - 90,203,187, 48,250,227,246, 92,129,192, 11, 37, 69,247,225,235, 43,198,224,152, 86,248,109,199, 85, 56, 58,186,192,221,221, 29, - 12, 6, 67,100,109,217,139,138,138,136,253,187, 47,141,253,112,204,248, 78,253,250, 70,147, 39, 79, 29, 99, 37,156, 62,114,245, -247,205, 95, 30,164,153,106, 33, 65,151, 11,154, 53,247,184,247,232,225,157,247,122, 69,189, 11, 1,199,222, 31, 8,174,179,193, - 86, 79, 48,160,145,123, 96,207, 98,254,135, 99, 38,116,238,215,239, 45,242,212,169, 67, 56,117,124,199,245, 69,139,154, 29,127, -156,191,139,115,237,230, 19,254,144,225,147, 75,227, 78,164, 24,134, 13,106,158,238, 37,106,163, 5, 30,219, 84, 85,205, 23, 73, - 22,171,144,212,235,125,154,244,235,199,212,228,228,176,237,220,221, 73, 0, 48,153, 76, 22,133, 22,234, 25,130,174,205,105,109, - 94, 52, 26, 13,168,122, 98, 39,214,230, 44,144,203,155, 85,190,132, 87,195,100, 50, 85,139,172,226,226, 98,148,149,149, 65, 36, - 18, 65,161,215,187, 91,195,217,183, 99,199,237, 95, 47, 94, 60,123,223,254,253,156,154, 34,171,234,195,102,179,241,195,242,229, -156,207, 62,255,124,242, 20, 22,107, 26, 72,210,234,235, 89,245,210,206,100, 50,193, 98,177,144,147,147,131,220,220, 92,228,228, -228, 32, 39, 39, 7, 2,129, 0,244, 43,158, 4,244, 26,251,103, 85,137,172,154,223,213, 86,174, 6,195, 59, 52,198, 25,222, 90, - 97, 96,110,196,248,174, 53, 66, 75,173, 86,159, 57,123,246,108,199, 33, 67,134,176,174, 95,191, 14, 15, 15,143,106,161, 85,245, - 93, 53, 28, 37, 20, 10,113,240,224, 65,163, 90,173, 62, 99,225,102, 58,123,252,248,241,136,133, 11, 23,178, 63,250,232, 35, 36, - 39, 39, 99,226,196,137, 40, 43, 43,131, 74,165, 66,113,113, 49, 52, 26, 13, 58,118,236, 8, 62,159,143,123,247,238,153, 52, 26, -205, 89, 11, 22, 59, 90, 46,151, 87,136,197, 98,207,218,191, 13, 31, 62,220,125,195,134, 13,154,212,212, 84, 83,151, 46, 93, 28, -172, 21, 28, 85,216,189,123,119,181,165, 46, 61, 61, 29, 27, 54,108,168,246,201, 74, 76, 76,196,202,149, 43,171, 99,159, 53, 18, - 55,139,138,138, 72,147,201, 4,127,127,127,120,123,123, 67,167,211, 97,245,234,213, 36,128,155,255, 95,173, 89,167,211,237, 27, - 61,122,244, 23,183,111,223,246,100,177, 88, 79, 77,218,149,229, 51, 26,141,120,248,240, 33,146,146,146,144,154,154,138,146,146, -146,234, 23,129, 59,119,238,148,154, 76,166,189,245,241,138,197,226, 5,191,253,246,155,135, 80, 40,124,166, 61, 87, 89, 67,171, -172,164, 10,133, 2, 78, 78, 78,232,221,187,183,228,236,217,179, 11,244,122,253,194,127, 73,159, 70, 12,127, 59,189,253,103,159, - 12,193,208, 24, 97,222,129,184,252, 43, 43, 87,204,170,116,134,151, 36, 13,141,241,206,187,155,230,132,225,111, 31,106, 15,224, - 9, 26,118,216,166,206, 93,144, 29,238,208,193, 57,225,192,145, 35,191,207,155, 51, 35,113,246,172,241, 98,141,246, 17,223,175, - 41,151, 0,128,204, 28, 3,125, 47,153,210,173, 92, 53, 35,113,233,242,159, 25,133,197,101, 19,255,250,171,254,240, 6, 53,197, - 11,131, 1,190, 95,112,119,105, 64, 96,215,230,215,175,198,194, 78,168, 69, 80,112,123,244,235,251, 38, 18,206,223, 65,129, 66, - 7,153, 76, 6,189, 94,223, 96,184,132,212,123, 7, 63,160, 9,218,151,160,137, 92,130, 65,243, 63, 24, 61, 46, 50, 58,250, 45, - 58, 46,238, 8,121,232, 96,236,229,189, 59,215,238, 99,112,216, 44,173,193,209, 64, 16, 58, 37, 24, 15,146, 43,212, 79, 95,104, -216, 60, 78,253,230,215,202,192,174,161, 97,193, 30, 31,140,158,232, 56,112,192, 96,250,248,241, 67,212,222, 61,219, 19,246,110, -109, 25, 75, 49, 84, 28, 89,158,134,167, 84,153,148, 52,193,117,170, 80, 81,154,194,204, 55,116, 94,209,195,141,192, 62,155,186, -170,217, 15,232,245, 79, 42,242,242, 60, 93,186,119,231, 61, 92,188, 88,232,222,177,163,142,168,244, 33,110, 72,104, 49,153, 76, -128,193,160,172,225,180, 54, 47, 90,173, 22, 20, 96,122, 30, 78,146, 36,159, 17, 89, 85, 66,171,234,126,177,134,115,243,162, 69, -215,125,251,245, 43, 57,127,254,188,123,143, 30, 61,136,242,242,114,148,151,151, 63, 35,182,188,188,188,136,208,240,112,225,238, -132, 4, 63,107,175,167, 53,101,103, 48, 24,175, 92,104,189,230,168,119, 33,233, 6,151,224,169,178,104, 89, 35,180,172,180,104, -153, 76, 38, 19, 36, 18, 9,138,138,138,234,237,248, 25, 12, 6, 4, 2, 65,213, 24,113,131, 51,239,244,122,253,234,217,179,103, - 79, 29, 48, 96,128, 91, 80, 80, 16, 20, 10, 5,220,221,221,193,231,243,171,125,199,170,248, 18, 19, 19,241,219,111,191,169,244, -122,253,106, 11,156, 63, 45, 95,190,252,147,161, 67,135,186,120,120,120,192,217,217, 25,247,238,221,131,179,179, 51, 84, 42, 21, -210,210,210, 96,111,111, 95,237,183,115,228,200,145,114,189, 94,255,147, 5,241, 70, 95,188,120,209,104,111,111,127, 79,161, 80, - 48, 75, 74, 74, 88,165,165,165, 44,149, 74,197, 86, 42,149,236,147, 39, 79,186, 57, 58, 58,106,206,157, 59,167,240,245,245,101, - 62,126,252,152,105, 50,153, 44,170, 87,130, 32, 48,109,218, 52,112, 56, 28,232,245,122,172, 94,189, 26,179,103,207,174,246,201, - 90,190,124, 57,230,207,159, 95, 45,156,183,108,217,210,168,150, 67,211, 52,140, 70, 35, 76, 38, 19, 76, 38,147, 85,226,247, 69, - 96,165, 96, 47,200,200,200,136,233,208,161,195,233, 63,255,252,211,181, 50, 38, 25, 10, 11, 11, 81, 88, 88, 8,133, 66,129,138, -138, 10,144, 36, 9,111,111,111, 20, 22, 22,226,208,161, 67,202,242,242,242,126,104, 96,198, 33,147,201, 28, 29, 25, 25,201,170, -157,135,170,183,188, 42,241,206,227,241, 32,149, 74,209,179,103, 79,238,249,243,231, 71, 3,120,173,133, 86,205,240, 14,125,251, -141,229,132,132,117, 54,220, 77,138,203, 11,110, 94,152, 55,106,176,195, 49, 0,184,243,160,208,241,110,154, 19, 66,194, 98,232, -190,253,156, 35, 10, 11, 54,183, 4, 96,108,104,185, 30, 0,112, 20,242, 70,244,137,234, 40,181, 23,137, 24, 43, 87,109, 57,241, -203, 47, 63,181,219,119,236, 63,225, 29, 86,174,122, 26,222,161, 79, 84, 71, 42, 53, 37,117, 4,128,173,214,138,151,152,152, 65, -183,127,219,246, 27, 82,147,206,121,125, 49,173, 21,183,164,208, 4,129,157, 15, 34,218,184, 99,243,182,251,184,123,247,110,129, -193, 96,232,217, 96,251, 38,104,223,164,228, 7,129, 45,195, 66, 61, 62, 24, 61,193, 33, 38,102, 48,226,226, 14, 99,231,246,173, - 23,135,189, 59,244,215,252, 82, 21, 83,194, 22,114,132, 52,197,101,114, 28, 89, 28,158, 64,110, 48, 60,157, 3,193,102,243, 29, -128, 17, 13,118, 60,147, 38,140,114,236, 21, 53, 24,199,142, 31,198,206,237,155, 47,124, 21, 54,124,107,243,182, 33, 68,199,118, - 43, 38, 55,111,209,188,169,186,162, 80,197, 32,184, 70,157,142,178, 95,177, 61,251,199,204,249,163, 51, 1,172,130,109,214, 97, - 77,220,219, 57,112, 96,135,207, 30, 61,226,136,187,118, 21, 72, 19, 18,132,149, 43,145, 52, 40,180, 88, 44, 22,232,250,135,186, -158,225, 36,118,236, 96, 0,104,112, 18, 22,135,195,129, 70,163,129,169,126, 11,246, 51,156,158,167, 78,229, 61,122,244, 40,192, -197,197,229, 25,145, 85, 82, 82, 82,189,173,211,233,160,209,104, 32, 16, 8,146,180,117,143,136, 60,195, 89,120,241,162,110,217, -180,105, 11,223,123,247,221,181,103,206,158,229,187,186,186, 66,169, 84, 62, 35,180, 12, 6, 3,122,245,238,205, 89,126,251,246, - 7, 80,169, 22, 89,115, 61,221,123,246,180,232, 15,204,100, 50, 65,189,226,161,195,127, 1, 38,212, 37,188, 24,150,134,112,172, -157,117, 88, 79, 7, 89,123,117,239,249, 17, 17, 17,186,244,244,116,248,250,250, 86,139,149,154,255,233,224,224, 0, 39, 39, 39, - 36, 38, 38,226,187,239,190,211, 2,152,111,129,179, 92,163,209,188,211,167, 79, 31, 45,139,197, 66,112,112,112,117,252, 44,138, -162,192,229,114, 33, 18,137,112,251,246,109, 12, 26, 52, 72,163,209,104,222,193,223, 99,104,213,230, 84,106, 52,154,247,251,246, -237,171, 73, 78, 78, 70,100,100, 36,238,222,189,139,138,138, 10, 84, 84, 84, 32, 43, 43, 11,161,161,161,208,104, 52,216,176, 97, -131, 86,163,209,188, 15, 64,217, 16,103,121,121,249,160,217,179,103, 51,255,248,227,143,230,222,222,222, 97,237,219,183, 15,234, -221,187,247, 27,111,191,253,118,211,129, 3, 7,122, 6, 4, 4,232,250,245,235, 39, 30, 48, 96,128, 88,163,209,176,175, 92,185, - 34, 51,153, 76, 3, 44,228,179, 90,156,164,167,167, 87, 15, 21,178, 88, 44, 20, 21, 21, 85, 71,238,175,122, 40,213, 35,132,163, - 44,137,237, 42,129, 85, 37,184,172,240,115,171,139,211,226, 73, 92, 46,183,202,226, 73, 91,193,121, 39, 37, 37,165, 79,247,238, -221,239,140, 29, 59,182,188,160,160, 0,246,246,246,240,243,243, 67, 96, 96, 32,220,220,220, 96, 52, 26,113,240,224, 65,245,161, - 67,135,238, 43,149,202,158,248,123, 12,173,168, 90,215, 49,171,174,135,108,149, 53,171, 74,104,241,249,124,120,123,123, 87, 93, -219,172,198, 92,207,231,196,171,229,172, 20, 48,189,123,245,107, 49, 48,122,136,227,193,195, 87,185,107,215, 31,186, 31, 17,133, - 45,174,205, 84, 71, 92,155,169,142, 68, 68, 97,203,218,245,135,238, 31, 60,124,149, 59, 48,122,136, 99,239, 94,253, 90, 36, 39, -165, 6,213, 92,247,176,174,124,242,249,252,206,145, 93, 35, 74,207, 95,190, 64, 45, 93,254, 51,163, 87,207, 97,183,183,254,122, -240,224,214, 95, 15, 30,236,213,115,216,237,165,203,127,102,156,191,124,129,138,236, 26, 81,202,231,243, 59, 91, 83,246, 73, 19, - 70, 57, 70, 15, 28,140,184,184,131,228,190,221, 27,150,239,217,159,209,125,220,212,139,133,233,233,119,105,249,147, 83, 96, 51, -114,144,146,146,162,172, 20, 89,233,214,112, 78, 28, 63,170,166,200,186,228,234, 17,185, 37, 37, 5,230,248,248,163,166,179,103, -111,107, 47,221,145, 43,111, 37, 23,149, 72, 21, 37,143, 85,170, 98, 3, 69,153, 97, 54,155,153, 95,127, 93,237,176, 91,103, 29, -117,233,210, 3,231,206,236,194,246,109,155,148, 20, 5,221,136,125,251,204, 35, 70, 44,166,155, 54,107,214, 52,118,247, 46, 34, -230,173, 33,142, 52, 64, 13, 26, 58,216,233,143, 61,127, 16, 45,252, 91, 52,243,243,171, 14,105,243,250,181,165, 87,192,185, 24, - 40, 85,229,228, 92, 72,252,249,103,189,251, 59,239,184,112,221,221, 29, 96, 54, 19, 85,207,247,250, 62, 44, 22,171,182, 5,166, - 94, 78,111, 55,183,252, 35, 71,142, 32, 48, 48, 16,222,222,222,168,233, 35, 91, 21,144,219,213,213, 21,251,247,239, 7,253,108, -112,234,122, 57,219, 54,111,158,248,195,178,101, 6,138,162, 80, 90, 90,250, 55,107, 86,105,105, 41, 40,138,194,241, 99,199, 12, -170,167, 43,129, 88, 85,246,158, 76,102,197,123,221,186, 45,141,142,142, 54, 62,122,244, 8, 20, 69,161,166,101, 75, 46,151,195, -206,206, 14, 58,189,222, 7,128,208, 26, 78,249,201,147, 34, 88,120,174,215, 97,209,122, 21,245,254,186,139,172,154, 11, 74, 79, -176,202,162, 69,146, 36,124,124,124,158, 89,210,133,193, 96, 60,243,105,228,140,195, 29,201,201,201,167,250,245,235,183,176, 83, -167, 78,147, 22, 46, 92,200, 12, 10, 10,130, 82,169,132,179,179, 51, 36, 18, 9,210,210,210,112,228,200, 17,115, 81, 81,209, 70, - 0, 75, 96,221, 20,250,132,140,140,140,152, 86,173, 90,237,153, 59,119,174, 99,223,190,125,217, 62, 62, 62,160,105, 26,183,111, -223,198,129, 3, 7,140, 91,183,110, 85, 85,138, 44,107,157,151, 79, 75,165,210, 97, 3, 6, 12,136, 29, 61,122,180,189,217,108, -102,103,101,101, 65,175,215,195,100, 50, 33, 55, 55,215, 24, 23, 23, 87,161,209,104, 70, 1, 56,109, 5, 95, 98, 89, 89, 89,104, -124,124,252,232, 43, 87,174,124, 55,118,236, 88,215,222,189,123,115, 72,146,196,229,203,151, 21,109,219,182,149,200,229,114,227, -254,253,251,139,117, 58,221,124,179,217,108,213, 18, 60, 4, 65, 64,165, 82,193,205,205, 13,122,189, 30, 20, 69,193, 96, 48,192, -206,206,174,122,217, 36,154,166,209, 24,231,250, 90,109,128,105, 52, 26,241,238,187,239,130,162, 40,172, 94,189, 26, 36, 73, 54, -154,204,209,209,241,214,157, 59,119, 98,218,180,105, 83, 45, 94,170,218, 16,143,199,131,155,155, 27, 92, 93, 93, 17, 23, 23, 7, - 54,155,125,203,146,191, 91, 37,238, 22, 21, 21,181,141,143,143,239,124,255,254,253, 15, 1,180, 49, 26,141,222,102,179,153, 96, - 48, 24, 50,154,166,239,169, 84,170, 95, 97,229, 18, 60,114,185,252,187, 49, 99,198,180,221,181,107,151, 29,139,245,159, 91,131, -197, 98,129,199,227,161, 42, 56, 38, 77,211, 48, 24, 12, 88,176, 96,129, 74,173, 86,127,247,111,121, 74, 68,180,239,136,205, 27, -214,216,157, 61,119, 74,145,146,129, 3,117,132,112,120, 82, 88,176,185,165, 52, 47,207, 46,162,125, 71,171, 56, 77, 6, 99,241, -251,163,102,250, 86, 46,193,179, 32, 43, 43,123, 83,236,142, 31, 51, 1, 96,197, 79,171, 3, 10,139,203, 38,166,166,164,142,216, -180,105,119,103,147,193, 88,108, 13,231,127,196, 75,172, 18, 52,116, 0,110,220,190, 95,216,124,208, 59, 39,231,251,183,112,120, - 75, 94,172,205,175,168,208,124, 10, 32,211,218,178,119,237,210, 29,231, 78,255,129,157,219, 99, 85, 52,197,212,185,185,185,209, - 0,144,146,226, 70,167,164,148,209,255,241, 43,118, 82,179,233,187, 75,102,126,218,123,166, 82, 85,242,211,234, 13, 13, 15,165, -180,106,221, 9,173, 90,119,194,212, 79,191,116, 12, 13, 11,246, 5,128,125,251, 96, 14,243, 79, 62,186,240,171,197,111, 45, 89, -178, 24,170,114, 61,170,150,235, 73,123,144,124, 44, 51, 19, 6, 91,159,245, 44, 22,146,228, 13,204,156, 25,160, 41, 41, 17,119, -253,226, 11, 55,214,231,159, 51, 26,114,134,175,121,255, 90,195,121,243,222,189, 99, 19,199,141,203, 95,180,112, 97,191,141,155, - 54, 9, 90,182,108,137,130,130, 2, 4, 7, 7,195,219,219, 27,241,241,241,216,191,119,175,186,172,188,124, 62,128, 95,172,225, -220,113,252,120, 90, 80, 88, 88,209,166, 77,155,188,162,163,163, 9,181, 90, 13,165, 82, 9,165, 82, 9,189, 94,143,202,128,208, -116,122, 70, 70,138,201,100,218,104,109,217,205, 10, 5,127, 73,199,142, 79, 56, 20,245,195,176,161, 67,103, 47,249,230, 27, 94, -139, 22, 45, 8,189, 94, 95,109,213, 50, 26,141,176,179,179, 51, 26, 12, 6, 87, 0, 26,107, 56,121, 91,183,146, 10,133, 2, 98, -177,184, 58, 92, 83,205,184,132,229,229,229,160,105,218, 22, 76,247, 57, 80,175, 66,114,118,118,190,197, 98,177,154,212,180,110, -213,181,118, 94,205, 99, 38,147,233, 73, 81, 81, 81, 68, 45,197, 91,159, 63,148, 31,128,239,123,245,234, 53,108,214,172, 89,196, -249,243,231,113,232,208, 33, 58, 51, 51,115, 95,165, 21, 43,179,129, 55,157,250, 56,237,121, 60,222,116,145, 72, 20, 85, 21,194, - 65, 40, 20,222, 87,171,213,103, 42,135, 11,203,159,131,211,129,199,227, 77, 19,137, 68,125, 42,151, 95,129,189,189,253, 29,181, - 90, 29,175,215,235,215,160,254,133,170, 27,226, 20, 56, 58, 58,126,231,230,230,246,254,231,159,127,238,122,241,226, 69,217,185, -115,231, 56,101,101,101,187, 12, 6, 67, 67,139, 74,255,141,211,197,197,229, 22,147,201,108,242,138,234, 8,173, 90,181,138, 27, - 52,104, 80,244,168, 81,163, 96, 50,153,240,203, 47,191, 32, 62, 62,254,216,195,135, 15, 99, 44,188,141,214,230,116,107,210,164, -201,249, 73,147, 38, 53,125,247,221,119,133,206,206,206, 96,177, 88, 80,171,213,120,248,240, 33,110,223,190, 77, 31, 62,124,184, - 34, 49, 49,241,137, 70,163,233, 1,160,168, 17,215,243, 69,222,154,159,225,100,177, 88,221,125,124,124,118, 47, 90,180,200,190, - 79,159, 62, 2, 87, 87, 87, 48,153, 76,152, 76, 38,200,100, 50, 60,120,240, 0,167, 78,157, 82,239,219,183, 79, 93, 92, 92,252, - 46,128, 11,255, 31,249,124,153,156, 33, 1,248,170,214, 66,209,245, 70,123,183,144,214, 98, 62,123,117,247, 28, 60, 98,216,128, -254, 0,240,231,254, 19, 39,173, 88, 84,186,222,124, 90,202,171, 53,156,193,254,140, 69, 73,201, 15,158, 9,104, 25, 22, 26,158, - 30,210,114,232,183,214, 16,213,136, 12,255, 76,217,107, 12,199,214,180,233, 62, 51,204, 26,226,135,152,193, 35,222,142,254,114, -254, 60,124,255,221, 82, 28,254,243,224,177,148,204,103,150, 9,122,237,218,210, 43,230, 36,190,101,177, 58, 9, 61, 61,187,173, -166,168,121,119, 31, 60,176,171,249,194, 86,101,121,174,249, 82,233,229,229, 37,151,201,100,238,214,112,198,172, 91,103,212,136, - 68,188,121, 63,252,208,189, 66,167,235,190,100,201, 18,214,205,155, 55,177,225,231,159, 73,221,147, 39,177, 10, 96, 90, 61,163, - 33,245,114, 54,157, 54,141, 63,103,195,134,143,252,252,253, 37, 31,126,248, 33,155,205,102, 67,173, 86, 35, 47, 47, 15,167, 79, -157, 50, 36,167,164, 36,171, 84,170,183, 0, 72,173,229,140, 89,183,206,232,228,231, 7,161, 88, 76,159, 77, 72,112,156, 56,125, -250,164,102,205,155, 59,246,235,223,159,237,224,224,128,210, 96,253, 38,115, 0, 0, 32, 0, 73, 68, 65, 84,210, 82,100,101,101, -225,224,193,131,242,138,138, 10, 47, 0,102,107, 56, 99,175, 92,105,117,252,194,133,225,223,126,251, 45, 55, 60, 60, 28,142,142, -142, 40, 47, 47,199,131, 7, 15,112,225,194, 5,253,198,141, 27,149, 74,165,114,146,217,108, 62,242, 10,235,253,223, 96,213,170, -194,102,139, 66,235,191,120, 3, 70, 0,248,170,114,251, 27, 88, 94, 51,240,223,244,240,241,117,113,113,217,172,211,233,104,173, - 86, 59, 17, 64,238, 63, 48,159,172,136,136,136, 13,114,185,188, 51, 77,211,112,116,116,188,154,148,148, 52, 5,245,204,188,177, -192,201, 4,208,217,206,206,174,163,189,189,125,119,189, 94, 31, 82, 57,252,150,162, 86,171, 47, 24,141,198, 27,149,214, 39,243, -255,115,217,153, 0,250,120,121,121,141,163, 40,202,159, 32, 8, 39,179,217, 12,147,201, 84, 70, 81,212, 67,165, 82,185, 21, 64, -252, 63, 32,159, 47,133, 51,244, 13,188, 77, 51, 16, 82,159, 32,120, 70,104,213, 18, 16, 4,133,148,228, 71, 56,216,136,124, 50, - 6, 68,249,172, 7,158,206, 76,132,101,231,218,255, 8, 45, 43,196, 75,163, 69,230, 27,204, 49, 52, 65, 63,195, 73,208, 68,110, -112,171,183,119,190,136,208,178, 22,161,129,232, 14, 26,157, 41, 26, 55, 82, 31,226,220,191,248, 89,247,210, 56,191, 7, 92,126, -118,118,190,202, 96,177, 60, 0, 48, 42,173, 47, 20, 69, 16,102,154, 32,200,154,195, 91,181, 94, 44, 27,228, 52, 2, 45,217, 60, -158,143,153, 36,221, 11, 0,187,227,102,115, 59, 29, 77, 87, 52, 1,190,186, 3,164, 61, 79, 62,141, 64, 75, 38,143,231,123,156, -166, 7, 43, 68,162, 86,114,173, 86, 12,128,182, 19,137, 82, 84,106,245,118,157, 78,183, 30,127, 31,185,176,200,201,225,241,154, -152, 73,210, 29, 0, 24, 44,150,124,143, 94,239,243,196,193,225, 67,157, 94,223,212,206,206,206,100, 48, 24, 84, 58,157,110, 20, - 73,146,103, 27, 83,246,135, 36, 25,122,133,193,136, 52,138, 68,174, 70,130, 16, 25, 72,210,104, 48, 26,243,116, 58,221,125, 0, - 63, 2,120,244,138,235,221,134,231,188, 89,108,156, 54, 78, 27,167,141,211,198,105,227,180,113,190,122, 78, 33, 0,223,202,151, -197,215,177,236,255, 38, 88,231,163,101,131, 13, 54,216, 96,131, 13, 54,188, 54,208,160, 14,159, 44, 27,254,127, 65, 52,160, 74, - 27, 99, 18,124, 30,101,123,198,198,105,227,180,113,218, 56,109,156, 54, 78, 27,231,255, 28,167, 37,238,215,113, 72,178,222,181, - 14, 95, 53,108,230, 95, 27,167,141,211,198,105,227,180,113,218, 56,109,156,255,179, 96,216, 46, 65,189,112,175,252,188,236,180, - 54,252,187,219, 66,109,120, 87,126, 26,147,222,211,118,201,109,176,193, 6, 27,108, 66,235, 85,119, 90, 47,210,185,189,168,240, - 89, 74, 16,144, 18, 4,164, 0,150,190,196,180,150,224,229,230,230,246, 89,104,104,104,172,187,187,251, 84, 0,146, 70,158, 31, - 32, 20, 10,215,136, 68,162,243, 34,145,232,188, 80, 40, 92, 3, 32,224, 37,213, 27, 1, 96, 34,143,199, 75,240,244,244,204,231, -114,185, 9, 0, 38,225,249,103,174, 6,225,105,156,180,111, 0,180,106,204,137,146,176,193,123,197, 97,131,239,137,195, 6, 63, -112, 13, 31, 20, 32, 14, 27,252, 64, 28, 54,248,158, 36,108,240,222, 87,208, 94, 95,164,126,151, 18, 4,114, 9, 2,185, 86,158, -251, 35, 1,228, 17, 4,158,188,132,182,100,131, 13, 54,216, 96,195,235, 6, 47, 47,175, 97,158,158,158,103, 60, 61, 61,227,189, -188,188,134, 89,113, 74, 84, 29, 29,143,153, 32, 96,182,208,145, 52,148,206,146,185,178,230,185, 43,173, 44, 90, 77, 78,119,130, -128,153,174, 4, 65,128,146, 72, 36,107, 61, 61, 61,151,214,254, 72, 36,146,181, 4, 1,170, 70, 90,115, 13,129,215, 88,179,170, -251, 7, 31,124,240,103,105,105,105,156,193, 96,136,203,200,200,136,235,209,163,199,158, 90,214,141,122, 57,249,124,254,123, 29, - 58,118, 78,188,112,249, 70, 70,250,195,108,105,114,218,227,236,163, 39,207,222, 12,111,217,234, 47, 62,159,255, 94, 35,234,136, - 0, 48,145,197, 98, 37,216,217,217, 61, 97,177, 88, 9, 0, 38, 51,153,204, 35,203,150, 45,203, 78, 74, 74, 42,188,114,229, 74, -217,133, 11, 23,242,199,142, 29,251,144, 32,136,163,117, 8,246,168, 58,172, 52,181,173, 58, 11,115,114,114, 78,202,100,178, 83, - 2,129,224, 59, 43,210, 87,115,138,195, 6,223,147, 43,141,180, 92,105,164,197, 97,131,233, 26,219,247, 26,121,205, 45,213,209, -223,218, 2,143,199,243,181, 32,232,163,234, 59, 23,128, 71,229,111, 17, 0,214, 85,126,170,166,158,123,240,121,188,151,213,150, - 94, 70,217,109,156, 54, 78, 27,167,141,243,191,205,249, 58,163,109,229,183, 39,158,250,107, 85,247,221,141,157,117,248, 73, 70, - 70,134, 29, 0, 4, 6, 6, 78, 1,176,191, 49, 66,130, 32, 48,135,162,104, 6, 0, 48, 24,196, 23, 61,123,246,106, 43, 16, 8, -158,137,130,172,213,106,185, 9, 9,231,122, 83, 20, 77, 84,166,155, 67,211, 88, 3,160,208,218,255, 48, 24,244, 12, 54,155, 11, - 6,131,152, 25, 30,222,178, 89, 81, 81,209, 69, 6,131, 17,155,159,159, 95,218,104, 51, 14, 65, 96,203,150, 45,129,158,158,158, -127,139,214, 44,147,201,184,131, 7,191,213, 40,190, 49, 0, 79,207,227,117,228, 16,132,167,153, 36,157, 0,128,197, 98,149,222, -228,114, 35,190,255,246, 91, 33, 65, 16, 84,113,113, 49,180, 90, 45,102,204,152, 33, 72, 78, 78, 30, 82, 84, 84,180,222, 2,109, - 96,171,214,109,103,156, 58,117, 50, 68, 85, 82,170,219,242,211,166, 68, 45,139,163,105, 30, 26,204,217,176,121,187,243,132,143, - 70,125,154,154,154,116, 7,117, 47, 71, 82, 19, 12, 0, 7,167, 79,159, 30, 22, 19, 19,195, 45, 47, 47,231,107,181,218,102,177, -177,177, 11, 34, 34, 34,236,218,180,105,195,221,189,123, 55,161, 84, 42, 65,211,180, 48, 56, 56,152, 30, 57,114,164,110,207,158, - 61, 83, 1,172,109, 64,248,206,121,122, 45, 25,171,131,130,130, 22, 1, 64, 70, 70, 6,167,198, 53,102,135,132,132,136, 0, 32, - 45, 45,237,107,154,166,166, 3, 0, 77, 99, 57,128,121,117,152,214, 50,194,186,142, 0, 8,248, 39, 93,254,147, 31, 22, 57, 66, - 7, 26, 15, 9, 32,163,242,133, 96, 9, 80, 35, 46,212,179, 72,145, 74,165,207,181, 54, 97,116,116, 12, 65, 16,196,190,196,196, -196,253,114,185,188, 57, 69,153,199, 55,148,207, 90,237,136,112,117,117, 29, 83, 84, 84,180, 20,192,184,148,148,148,182, 0, 16, - 18, 18,194, 1,112,203,193,193,161,139,209, 96, 32,108,207, 42, 27,108,176,193,134,215, 86,104,221, 6, 16,141,255, 44,193,179, -249,121,132, 22, 23, 0, 46, 94,188, 8, 0,188,231,200, 8, 81, 83,192, 76,155, 54, 13,158,158,158,181,197, 11,206,159, 79,120, -145,194, 62,243, 31,223,124,243,141, 93, 89, 89, 89,212,175,191,254,218,141,166,233,149, 82,169,244,186,133,243, 11,105, 26,203, - 25, 12,226, 11,130, 32,192,227,241,211, 39, 77,154,116,187,242,183,102, 71,143, 30, 21, 14, 26, 52, 72, 3, 32, 27, 0,120, 60, -190, 55,147,201, 8,164,105,186,170,195,173, 87, 16, 14, 7,252, 72, 46,183,215,196,117,235,200,118,131, 6,177, 68, 98, 49, 1, - 0,217,169,169,174,203, 87,172,232, 82,154,153,201,213,186,186, 22, 23,171,213,218,244,244,116,240,120, 60,130,201,100,182,179, - 84, 96,145, 72,244,217,183,223,255, 32, 82,149,148,105,117,170,114, 3,147, 52,233,237, 5, 66,115, 97,129,188,216, 78, 32,210, -124,241,213, 98,238, 39,227, 71,127,166, 86,171,167, 88,160,154, 58,115,230,204,144, 14, 29, 58,120,239,221,187,151, 80, 42,149, - 96,177, 88,118,109,218,180, 65, 68, 68,132,249,220,185,115, 68,243,230,205, 17, 30, 30,142,203,151, 47,227,234,213,171, 68,219, -182,109,133, 7, 14, 28,248,192,100, 50,173,181, 36,174,153, 76,198,140,224,224,224, 54, 34,145,200, 16, 24, 24,136,241,227,199, -131,166,105, 68, 69, 69,133,219,217,217,237, 87,171,213,220,180,180,212,110,150, 68,182, 60,233,240,200, 42,203, 22,128,150,160, -241, 80,145,116,184,230,240, 99, 72, 90, 90, 90,167,210,210, 82, 60,173, 23,186,122, 1,243,110,221,186, 53,166, 45, 21,210, 52, -150, 15, 26, 20,243, 5, 64, 16, 81, 81, 81,101, 83,167, 78,101,164,166,166,190,255,246,219, 67,194, 51, 50, 30,162,129,124,214, -108, 71,196,152, 49, 31, 21,218,217,217, 13,221,183,111, 95,154, 76, 38, 99,113, 56,213, 58,147, 41,145, 72,196,129,129,129,147, - 93, 92, 92,228, 76, 6, 67, 66,131,166, 45,181, 37, 27,108,176,193, 6, 27,254, 81, 56, 86, 41,174,142,213,254,129, 5, 0,113, -113,113,213,145,105, 99, 98, 98,234,125,171,166,105,186,240,238,221,187, 62, 26,141, 6, 52, 77, 91,211, 9,212,156,162, 89, 72, - 16,140, 13, 12, 6, 49,133, 32, 8,132,135,183,124,188,122,245,234,186,214,244, 50,132,135,183,124,204,100, 50, 90,208, 52, 13, -130, 96,252, 66,211, 84, 97, 61,156,117,118,140, 92, 46,111, 14, 0,120,120,120,102,158, 56,113,194, 48,124,248,112,172, 88,177, -130, 51,119,238,220,217, 44, 22,107,106,110,110,110, 65, 3,249, 4,128,121, 98,177, 68,184,101,203,150,192, 73,147, 38,221,150, -201,100,243, 0,192,211,211,115, 41,128, 80, 0,217, 53,142, 97,227,198, 61,249,227,199,143, 79,151,203,229,243,234,227, 28, 10, -188,225, 19, 28,220,107,201,197,139, 52, 67,175, 39,138, 46, 93, 82, 41, 10, 11, 77,143, 20, 10,225,182, 91,183, 98, 22, 44, 93, -202,246,241,245,197,249, 35, 71,220,138, 52, 26,133, 82,175,215, 21, 22, 22,210, 36, 73, 94,181,162,236, 97, 18,177, 68,184,233, -199, 95,110,218,179,153,148,164,137, 55,193,118,113, 97, 49,132, 14, 92, 38,139,161,111,209, 44,128, 11, 32,204, 82, 29,113, 56, -156, 15,250,246,237, 43,220,179,103, 15, 17, 30, 30, 14, 39, 39, 39, 92,186,116, 9,119,238,220, 65,105,105, 41,195,100, 50,161, -125,251,246,248,225,135, 31,224,235,235,139,178,178, 50,228,230,230,186,113,185, 92,177,201,100,170,239,122, 62,211,158,230,204, -153, 3, 79, 79, 79,144, 36,137,146,146, 18,144, 36, 9, 59, 59, 59, 0,192,147, 39, 79,112,228,200, 97,107,218,146, 69,208, 52, -141, 55,223,124,179,156, 32,136,148,218, 22,173,198,112,122,123,123,239, 86, 40,138, 6,244,234,213, 11,165,165,165,166,197,139, - 23,163, 85,171, 86, 8, 12, 12,180, 38,159,243, 56, 28,238,175, 77,155, 54,253,113,218,180,105,158, 46, 46, 46,208,235,245, 11, - 10, 10, 10, 48,121,242,100, 0,192,192,129, 3, 91,177,217,236, 19, 99,199,142, 69,243,230,205,243, 75, 74, 74,114, 19, 19, 19, -199,107, 52,154, 7,207, 91,118, 43, 97,227,180,113,218, 56,109,156,255, 40, 78,107,181,200, 63, 20, 50, 60, 27,206, 97,243, 51, - 66, 43, 38, 38,134,136,139,139,163,173, 40, 88,113,147, 38, 77,124, 4, 2, 1, 0, 20, 55, 54, 23, 20, 69, 77,117,117,117,149, -207,155, 55,175,107, 96, 96,160, 97,234,212,169, 15,178,179,179,231,215, 76,211,172, 89,179,239,126,254,249,103,164,167,167,103, - 47, 93,186,244,114,113,113,113, 99,215, 49,155, 75,211, 88, 93,105, 29, 43, 58,114,228, 72,171,139, 23, 47, 78,249,233,167,159, -196,159,124,242, 9,231,179,207, 62, 27, 5, 96,133, 37, 18, 38,147,169,169,107,184,176, 46,120,122,122, 26,152, 76,102,189, 65, -226, 98, 0, 1,159,203,237,185,228,226, 69,218,144,157,173,249,109,213, 42,251, 77,127,253,181,200, 68,211,238, 18,137, 4,145, - 93,186, 84,240,153,204, 34,121, 65, 1, 37,121,227, 13,102,214,137, 19,110, 90, 46, 87,186,103,207, 30,101,113,113,241, 33,139, - 38, 60,130, 80, 81, 52,109,176,107,226,107, 26, 62,164, 79,248,205, 27,119, 82,237, 37,110,140,182,109,194, 91,165,166,103, 39, -130,162,140, 4, 65,168, 44,241, 56, 58, 58, 6, 22, 23, 23, 67,165, 82, 65, 44, 22, 99,245,234,213,240,240,240,128, 70,163, 65, - 82, 82, 18,221,164, 73, 19,226,226,197,139,104,210,164, 9, 20, 10, 5, 12, 6, 3,202,203,203,229,122,189,190,190,181, 25, 11, - 25, 12,230,239, 12, 6,241, 17, 65, 16,104,209,194, 47,103,253,250,245, 6,138,162, 16, 18, 18,130,183,223,126, 27, 7, 14, 28, - 64, 82, 82, 82,149,229,201,208,180,105,179, 28, 6,131,104, 90,169,149,158,219,170, 83,181,180,143, 84, 42, 29,250,156, 55, 13, -195,203,203,107,148,191,191,255,148,247,222,123,207,196,229,114,161, 86,171,171,174,133,105,192,128,129,101,131, 6,197, 56, 30, - 59,118,172,193,124, 26, 12,134, 76,165, 82, 57,110,230,204,153,177, 27, 55,110,116,158, 63,127, 62, 40,138, 2, 77,211, 32, 73, -178,122,209,111,138,162,112,240,224, 65, 60,122,244,232,187, 90, 34,203, 6, 27,108,176,225,127, 2,141,208, 34,255, 68,120,226, -233,176, 33,106,139,173,255,122,100,120, 38,147,185,233,244,233,211,109,186,117,235,198,234,221,187,119,248,201,147, 39,195,243, -243,243, 31, 84, 90, 15,194,123,247,238, 29, 46,145, 72,176,102,205, 26, 13,147,201,220,244,156,127, 83,221,233, 21, 20, 20,220, - 6,176,242,192,129, 3,203, 39, 78,156, 8, 15, 15,143, 80,153, 76,246, 95, 45,179, 3,143,215,118,236,234,213, 36,219,100, 98, -172, 91,185,210, 97, 85, 66,194,242,189,127,254,201,122,243,205, 55, 9,154,166,113,255,222, 61,193, 15,107,215, 10,223, 29, 50, - 36, 59, 45, 51,147, 60,124,234,148,169, 48, 63,191, 36, 95,161, 88, 8,160,196, 18,191,201,100,186,150,145,145,225, 21,217,253, - 77,239, 11,127, 61,184, 51,124,200,192, 94,108, 22,131,120,152,253,228,150,167,135,155,227,249,132, 51, 90,147,201,116,205, 18, -143, 90,173,206, 34, 73,210,133,166,105,241,249,243,231, 33, 22,139, 81, 90, 90, 10,147,201, 4,131,193, 96,208,104, 52,252,226, -226, 98,232,116, 58,232,245,122, 56, 56, 56,224,254,253,251,133, 36, 73,158,171,143,211,108, 54,143,229,241,120,223,176,217,108, - 46,135,195,145,222,186,117, 11, 42,149,170,153,147,147,211, 10,146, 36, 33,149, 74,113,241,226,197,207, 29, 28, 28,178, 1,128, -207,231,131,203,229,185,234,245,122, 18, 64,254,243, 94,115,154,166,159,187,190, 60, 60, 60,124, 5, 2,193,146, 47,190,152, 19, -210,186,117, 27, 40, 20, 10, 80, 20, 5,145, 72, 4,141, 70, 3, 7, 7, 7,116,238,220, 57,107,201,146, 37, 50,154,198, 4, 75, - 98, 80, 46,151, 43, 88, 44,214,212,137, 19, 39,126, 19, 24, 24,216,130,166,105, 4, 4, 4,160,111,223,190, 56,113,226, 4,210, -211,211,161, 86,171,205,215,175, 95,255, 67, 38,147, 29,181, 61,110,109,176,193, 6, 27, 94, 59,252,205, 55,235, 25,139,214,127, - 19,114,185, 92,145,154,154,122, 50, 49, 49, 49,102,228,200,145, 56,127,254,252, 24, 0, 51, 1,128,199,227,141, 25, 57,114, 36, - 18, 19, 19,145,154,154,122, 82, 46,151, 43, 94,198,127,114,185, 92,157,193,240,212, 56,197,231,243,249,141, 60,189, 89,229,144, - 33, 0, 52,107,224, 88,253,166, 17, 22,203,179,101,255,254,172,210, 59,119, 84, 91,110,220,248, 38, 54, 54,150,213,181,107, 87, -194,100, 52,194, 76, 81,240,243,243, 35,122, 71, 69,137,126,143,141,117, 49,171,213, 23,191,253,226,139, 75,155,199,142,173,200, -168,244, 3,179, 4,189, 94,191,118,202,228,113, 81, 9,231, 47,121,135, 6,191,225,114,242,116,194,109, 87, 87, 71, 97,160,191, -191,168,184,180,196, 60,127,238,231, 44,189, 94,191,206, 18,143, 86,171, 61,120,230,204,153, 33, 62, 62, 62,226, 7, 15, 30,192, - 96, 48,192,108, 54,163,119,239,222,160,105,154, 7,128, 98,177, 88, 72, 77, 77,133,209,104,148,103,100,100, 72, 31, 62,124,200, - 3,176,204, 66,254,114,244,122, 61, 82, 82,158,142,218, 53,105,210,164, 79,116,116, 52, 72,146, 68,255,254,253,113,248,240,225, - 62, 41, 41, 41,171,106,106,190, 23,173,243, 74, 11, 89,136,151,151,215,129,202, 67, 86, 57,193,123,123,123,135,251,249,249,109, - 92,182,108, 25,167, 73,147, 38,160,105, 26,206,206, 78,208,104, 52, 40, 42, 42, 70,104,104, 40,124,124,124,176,108,217, 50, 0, -248,195, 90,139,155, 84, 42,125, 40,149, 74, 71,202,229,114, 78, 89, 89, 89, 68,159, 62,125,214, 68, 69, 69,225,246,237,219,184, -116,233,210,187, 60, 30, 79,110, 52, 26, 73, 15, 15,143, 9, 4, 65, 56, 24,141,198, 93,197,197,197, 50,219,179,203, 6, 27,108, -176,225,181, 64,149,143, 22,106,124, 55,206,162, 21, 18, 18, 34,202,206,206,254,176, 89,179,102, 92, 0, 16, 8, 4,161,126,126, -126,179, 51, 51, 51,203, 27,155, 27,141, 70,179, 55, 54, 54,182,239,143, 63,254,200, 25, 56,112,224, 27, 7, 14, 28,232, 0, 0, - 3, 7, 14,124,195,222,222, 30,177,177,177, 70,141, 70,243,210, 98, 34,153, 76,166,110,237,219,183, 71, 73, 73, 9,178,179,179, - 27, 53, 44,115,244,232, 81, 33,158,250,101, 53,120,172, 33,144, 6,131,179,147,183, 55, 35, 63, 33,193, 88,162, 82,121,118,235, -222,157, 48, 25,141, 96, 48, 24, 40, 46, 46, 70,110,110, 46, 28,157,156,136,212,140, 12,187,173,115,230, 28,109,214,186, 53,215, -108, 48,184, 54, 34,155,234, 34,121,225, 71,159, 78,253,228,224,174, 93,127,136,203, 84,170, 71, 2,129, 80,207,227,113, 60,166, -125,250,169,185,164,164,100, 52,128, 10, 43,120,150,237,218,181,171,127,255,254,253,239,249,250,250, 74, 20, 10,133, 71, 89, 89, -153,185,164,164,132,137,167,190, 86, 4, 0, 36, 36, 36, 64,165, 82,145,102,179,249, 34,158,198,194, 50, 88,155,209,166, 77,155, - 58, 70, 68, 68,244, 16,139,197, 80, 42,149,112,117,117, 69,155, 54,109,122, 48,153,204, 95,115,114,114,148, 47,179,213,199,199, -199,219,211, 52,221,137,166,105,244,239,223,223,170,115,204,102,243,199,209,209,209, 28,130, 32,160,213,106,192,231, 11, 32, 18, -217,193,222,222, 1,129,129, 65,144, 74,165,232,215,175,159,225,209,163, 71, 27,100, 50, 89,163,219,168, 82,169, 28,220,185,115, -231, 89,147, 39, 79, 6, 73,146, 24, 60,120, 48,242,242,242, 86,101,101,101,237,241,242,242, 26,245,241,199, 31,139, 93, 93, 93, - 49,107,214, 44, 1,128,175,109,207, 46, 27,108,176,193,134,215, 2,181,125,180,254,110,209,106,104, 76,212,195,195, 35,146, 32, -136, 5, 90,173,150, 91, 53, 36, 67, 16, 4, 87, 44, 22, 31,214,106,181, 75,101, 50, 89,163,156,226,202,202,202, 84,143, 31, 63, - 62,124,237,218,181, 17, 67,135, 14, 69,124,124,252,104, 0, 24, 58,116, 40,174, 93,187,134,199,143, 31, 31, 46, 43, 43, 83,189, -140,146,123,123,123, 15,232,222,189,251,208,246,237,219, 35, 46, 46, 14,102,179,249,106, 99,206,175, 57,195, 16,117,204, 58,172, - 58,102, 21, 25,147, 9,130, 32, 64,146, 36, 0,160, 72,161, 64,122, 90, 26, 74, 74, 75,161,215,233,160,214,104,204,129,205,155, -107,149, 6, 3,155, 0, 26, 59,246,149,147,120,243,122,174, 70,173,150,184, 58,187,104,133, 66, 30,202, 84, 74,206,173,155,215, - 43, 0, 60,178,146,195, 64,211,116,247, 19, 39, 78, 44,100, 50,153, 35,237,236,236, 48,101,202, 20,102,143, 30, 61,192,225,112, -160,215,235, 81, 86, 86,134,216,216, 88,133,217,108,110, 81,121,142,157, 80, 40,220,206,100, 50,159,148,151,151, 47,176,248, 7, - 6,195,192,152,152, 24,150,193, 96,192,183,223,126,139, 69,139, 22,161,127,255,254,172,155, 55,111, 14, 4,176,235,101,181,120, -138,162,208,167, 79,159,154,206,240, 41,214,156,199,102,179,195,253,253,253,161, 80, 40,160, 80, 40, 32, 22,139,225,229,229, 5, - 15, 15, 15,172, 90,181,138, 94,179,102,205, 73,163,209,184,161,168,168,168,240, 57,218,226,132,209,163, 71, 79, 24, 49, 98, 4, - 42, 42, 42,112,237,218, 53,116,233,210, 5,203,151, 47,247,188,120,241,226,204,246,237,219,131,205,102,227,252,249,243, 32, 73, - 50,207,246,220,178,193, 6, 27,254,215,240,154,250,103, 53,136, 6, 45, 90, 62, 62, 62, 78,102,179,249,243,232,232,232, 62, 67, -134, 12, 65,191,126,253,158,249,125,215,174, 93,246,251,247,239, 95,186,118,237,218,254, 70,163,113, 89, 99,134,250, 40,138, 58, -184,107,215,174,129,111,190,249,166,176,103,207,158,126, 0,192,227,241, 12,187,118,237,210, 80, 20,117,240, 57,202, 82, 21,220, -177, 16, 0,188,188,188, 90,177, 88,172,161, 3, 6, 12,104,245,209, 71, 31, 33, 41, 41, 9,177,177,177, 15, 3, 3, 3, 47, 23, - 22, 54,170,143,204,182, 48,235,112,169, 37,235, 22,147,203, 45, 46, 43, 40,112,178,243,245,101, 59,219,219,203,226,226,226,124, -162,162,162,136,188,188, 60,148,150,150, 66,167,211,225,230,205,155, 20, 11,200, 97, 57, 59, 19, 57,215,174, 17, 76, 46,183, 24, -207,206,228,179, 8, 31, 79,231,128,175,230, 78,106,166,211,235,194,148, 74, 37,201, 98,179,217, 77, 60,156,242,210, 30, 53,106, - 36, 78, 47, 20, 10, 35, 0,176, 40,138,210,184,184,184, 8, 79,159, 62, 13, 46,151, 11,130, 32,208,178,101, 75,240,249,124, 14, - 77,211,185, 0, 96,111,111,207,221,180,105,147,227,168, 81,163, 46, 89, 34,110,219,182, 45,155,199,227,189, 21, 24, 24,136,107, -215,174,225,193,131, 7, 57,215,174, 93,107,218,182,109, 91,248,250,250,190,229,233,233,249,231,237,219,183, 77, 47,163, 97, 63, -157,177,218,120,103,120,179,217, 76, 17, 4, 1, 6,131, 1,138,162,160, 80, 40,208,162, 69, 11,172, 95,191, 30,171, 87,175,254, - 86, 38,147, 29,121,158,252,132,132,132,112, 90,180,104, 49,122,196,136, 17,200,204,204,196,210,165, 75,139,100, 50, 89,194,169, - 83,167,134, 77,158, 60,153,217,165, 75, 23, 20, 23, 23,227,247,223,127, 39,111,221,186,245, 91, 65, 65,193, 14,219, 35,215, 6, - 27,108,176,225, 95, 44,180,124,124,124, 70,112, 56,156, 89,239,188,243, 14, 51, 40, 40, 8,133,133,133,112,112,112, 48, 17, 4, -193, 6, 0, 39, 39, 39,147, 64, 32,192,164, 73,147,208,186,117,235,200, 57,115,230,116, 97,177, 88,235,165, 82,233,118,107,254, - 88, 46,151,107, 24, 12,198,190, 41, 83,166, 44,187,115,231,118, 11, 0,248,235,175,191, 30, 75,165,210,185,114,185, 92,211,200, -114, 84, 5,197, 36,120, 60,254,141,128,128,128,172,136,136, 8,135, 33, 67,134, 64, 44, 22, 35, 49, 49, 17, 63,252,240, 67,134, -193, 96, 88,120,225,194, 5,242,191,125,145, 73,189,190,224,214,161, 67,246, 61,222,127,223, 97, 90,116,244,202, 79,166, 76,249, -241,171,175,190, 98, 5, 5, 5, 17, 26,141, 6, 55,110,220,160,247,239,223,111,250,253,155,111, 86, 67, 36, 98, 95,219,191,159, -107, 48, 24,114, 26,105, 45,233,222,181, 91,100,208,202, 31,215, 66,167,173,192,141,171,199, 80, 90,170,192,166,205, 7,130,188, -189,233,238,249,249,249, 23,172,229, 34, 8, 34, 48, 62, 62, 94, 66,211, 52,184, 92, 46,150, 44, 89, 2, 47, 47, 47, 56, 56, 56, -160,188,188, 28, 51,103,206,116,156, 62,125,186, 35, 0, 36, 37, 37, 85,135,103,176, 4,169, 84,218,121,210,164, 73,246, 36, 73, -226,228,201,147, 6,130, 32, 22,156, 57,115,230,215,150, 45, 91,114, 35, 35, 35,237,119,236,216,209, 5,192,249,151, 37,180,158, -243,188,135,167, 79,159,110, 63,114,228, 72,154,205,102, 19,101,101,101,112,114,114,194,250,245,235,213, 50,153,236,216,115,183, - 1,146,228, 10,133, 66, 46, 77,211,216,183,111, 31,114,114,114, 62, 46, 46, 46, 46, 48,155,205, 7, 62,255,252,243,217, 65, 65, - 65,205,211,210,210,114,202,203,203,151,203,229,242, 44,219,163,201, 6, 27,108,176,225,181, 66,149, 19,124,213,236,195, 99,120, - 58,156, 88,191,208, 50,155,205,147, 78,157, 58,197,164, 40, 10,155, 55,111,198,173, 91,183,104,161, 80,184, 64, 40, 20,254, 44, - 16, 8,204, 90,173,118,226,248,241,227, 71, 45, 90,180,136, 17, 25, 25,137,107,215,174, 49, 90,180,104, 49, 26, 64, 77,161, 21, -133, 6, 98,109, 40,149,202,155,133,133, 5, 45,106, 4,168,108,193,227,241,111, 90, 40, 76,109,206,218, 65, 49, 59, 46, 89,178, - 68,237,233,233,105,120,240,224, 1, 54,110,220, 72,221,186,117, 43,129,203,229,110,146,201,100,122, 43, 57, 95, 6,170, 57,185, - 36,153,184,115,246,236,144,118,131, 7, 83,227,102,205,170,224, 8, 4,159,173, 92,187,118, 78, 89,121,185, 23, 8,130,118,117, -116,204,217,188,100,201,210,254,111,189, 85,145,116,225, 2,255, 78,124, 60, 91,108, 50,221,109, 76, 62,243,243,243, 47,156, 63, -127, 9,219,182,252, 8,163, 81, 15, 89,254, 83,157, 86, 84,172,132, 5,145,245, 55, 78,146, 36,149,195,134, 13,227, 0, 16,124, -240,193, 7, 92,185, 92,142, 55,222,120, 3, 0,160, 82,169,112,236,216, 49, 4, 7, 7, 3, 0,238,223,191, 95,189,109, 41,159, - 34,145,232,173, 46, 93,186, 32, 39, 39, 7, 73, 73, 73,103,101, 50, 89, 49,128,179,121,121,121, 3,219,183,111,143,131, 7, 15, - 14,106, 64,104, 53,170,142,172, 20, 90,127,227, 20, 8, 4,115, 15, 28, 56,240,241,213,171, 87, 71,206,158, 61,155,221,187,119, -111, 0, 64,121,121,185, 6,128,249,121, 56,107,230,201,100, 50,129,162, 40,184,184,184,168,139,139,139, 33,151,203,179,228,114, -249,148, 71,143, 30, 61, 23,231,203,104,159, 54, 78, 27,167,141,211,198,249, 15,225,252, 55,192,250,200,240, 52, 77,147, 20, 69, -225,252,249,243, 56,112,224,128,217,104, 52, 78,144,201,100,247,107, 36, 89,155,152,152, 24, 63,108,216,176,237,105,105,105,204, -228,228,100,208, 52,109,110, 76,110,116, 58,157,137, 32,254,126,236, 69, 75,185,109,219, 54, 20, 20, 20, 24,243,242,242,206,144, - 36,121,240, 5,103, 47,190,240,172,195,109,128,254, 61,131,225,204,162,174, 93,251, 44,140,143,231,141,251,242, 75,253,152,143, - 62,250,220,108, 48,152,152, 28, 14,197, 21,137, 24,102, 30,143,157,116,225, 2,127,205,228,201, 46, 90,189,254,100,108, 35, 28, -204,171, 44, 90, 61,122, 68, 98,204,184, 25,208,214,176,104, 93,187,153, 14,189, 17,141,178,104,233,245,250, 48,153, 76, 6, 62, -159,159, 11,192,227,195, 15, 63, 4, 69, 81,208,106,181, 40, 47, 47,135, 84, 42, 85,126,244,209, 71,230, 74,241,196, 26, 58,116, -168,131, 53,188,126,126,126, 94,108, 54, 27, 39, 79,158, 4,155,205, 62, 6, 0,108, 54,251, 88,124,124,252,192,119,223,125, 23, -222,222,222,126,153,153,153, 4, 44,248,167, 73,194, 6,239,165,129, 0, 16,240,127,106,130,131,191, 56,108,240, 61, 2,200,168, -140, 26,159,210,182,109, 91,192, 74,191,172,154,168,156,220,177,218,100, 50,253, 57,103,206,156, 41, 29, 59,118,236,187,104,209, - 34, 2, 0,243,101,220,129, 36, 73,190, 80,232, 9, 27,108,176,193, 6, 27,254,209, 86,173,191,161, 94,161, 69, 16,196,230,238, -221,187, 79, 0,192, 36, 8, 98,163, 84, 42,189, 95, 59,141, 76, 38, 75,247,242,242, 90,209,188,121,243,137, 0,104,130, 32, 54, - 55, 50, 83,133, 52,141, 31, 24, 12, 98,206, 83,113,247, 92, 1, 42,171,150, 58,153, 3,128, 96, 48,152,219,111,223,190,253,101, -110,110,174,194, 74, 11, 68,131,120, 25,179, 14, 1,224, 15, 32,235,157,156,156, 83,179,194,195,163,250, 79,158,140, 86,253,251, - 59,120, 53,109,106,214, 26,141,212,253,203,151,137,171,251,246,113,238,196,199,179,181,122,253,201,131, 64,110, 99,243,153,159, -159,127,225, 92,194,133,211,195,135, 14,236,235,215,220,235,169,104,200,146,162,168, 68,121,186, 49, 34,171,150,232, 29,188,126, -253,250, 35, 28, 14,135, 85,115, 41, 27,163,209, 88,162,215,235,195, 0,160,180,180,212,107,243,230,205,187, 25, 12, 70,142, 37, -190,228,228,228,195, 11, 23, 46, 28,154,157,157,125, 58, 47, 47, 47, 27, 0,114,115,115,179, 77, 38,211,118,153, 76, 54, 52, 39, - 39,103, 63,172,152, 4, 64, 3, 1, 73,151,255,108, 9, 0, 97, 93, 71, 32,233,242,159,124, 0, 45,195,186,142, 0, 0, 60,239, - 90,134, 53, 81, 25, 90, 97,193,181,107,215,118,245,237,219,119, 60, 94, 32,166, 23, 0, 24, 12, 6,147, 86,171, 37,205,102, 51, -203,104, 52,210, 6,131,193,100,123, 38,217, 96,131, 13, 54, 88, 15,154,166,219, 3, 16, 87,238, 86, 25, 80,196,181,182, 13,168, - 92, 46,176,234,241, 91,185,175, 32, 8,226,102, 13,142,234,227, 86,156, 11, 0, 69, 0,238, 17, 4, 81,159, 17,100,115,125,251, -245, 10, 45,169, 84,186, 31, 86, 44, 26,109,109,186, 6, 48,175,114,157, 56,224,249,215,118,171,230, 48,155,205,133,185,185,185, - 47, 92,161, 12, 6, 35,107,208,160, 65,141, 74,111, 41,205, 30, 32,231, 83,189,126, 71,220,186,117,109, 78,110,220,232,109, 38, - 73, 87, 2,160,153, 92,110,177,193, 96,200, 22,155, 76,119, 27,107,201,122,198, 26,243, 56,191, 95,230,227,124,248,251,251,211, - 15, 31, 62,124,106,235,121, 49,220, 85,171,213, 62,150,154,128, 70,163,137,180, 82, 12,254,145,159,159,255, 71, 29,130,125,183, - 76, 38,219,109,109,166,170, 23,149, 6, 24, 20, 65, 13, 15,235, 58, 98, 31, 0,170,106, 81,233,151,137,130,130,130, 52, 84,198, -121,123, 17,228,228,228,232, 9,130,216,249,195, 15, 63,124,112,231,206,157, 61, 82,169, 84,111,123,108,218, 96,131, 13, 54, 52, - 78,100, 17, 4, 17, 87,185, 31, 83,105, 20,138,171,189, 93,149,166, 42, 93,205, 52, 85, 28,181,143, 55,116, 46, 0,204,157, 59, -247,203,165, 75,151, 10, 1, 88,187, 24,243,115, 47, 42,253,170, 80,248, 15,225,168, 41, 10,182,188,138,130,174, 3, 12, 32,201, -235, 32,107,248,228,155, 94,174,113,227,225,195,135,196,191,249,134,171, 90, 84,186, 6,194, 95,135,124,103,103,103,175,247,245, -245,221, 36,149, 74, 73,216, 96,131, 13, 54,216,208, 24,136,235, 18, 70,245,136,178,152,134,126,127,230,197,189,142,116,117,237, - 19, 4, 17,183,116,233,210,152, 70,228,183,218,162,197,176,213,157, 13, 54,252,247,240,255, 49,235,213, 6, 27,108,176,193,134, -186, 81,219,138, 85, 37,190,106,239,207,157, 59,247, 75, 52, 60,226,228,137,167, 86, 44,207,202,253,106,127, 45, 2, 79,103, 14, -212,133,198,204, 38,136,122,142,242,157,177,113,218, 56,109,156, 54, 78, 27,167,141,211,198,249, 63,199,105,137,251, 76, 29,130, - 40,186,190,161,190,134,134, 17,107,111, 91, 58,215, 82, 90,130, 32,234, 11,243, 83, 53, 84, 88,251,251,149, 35,202,198,105,227, -180,113,218, 56,109,156, 54, 78, 27,167,141,243, 69, 64,211,116,123,154,166,163,241,116,194, 20, 77,211,116, 52, 77,211,253,231, -206,157, 59,175,234,216,220,185,115,231,209, 52,221,187, 42, 93,101,154,234,115,170,142,213,254,174,125,172,161,180, 13,100,113, - 66,173,237,234,253,127,138,143,150, 13, 54,216, 96,131, 13, 54,216, 96, 67,157,168,154, 49, 88,195,218,164, 0,112,127,233,210, -165,165, 53,124,167, 20, 0,238, 2,104, 93,153, 78, 81, 41,210,106,250, 86, 25, 42,247, 13,117,164, 49, 88,147,182, 30,108,174, -103,219, 38,180,234, 67,107, 15,198, 55,190, 77, 36, 17,149, 21, 0,154,162, 0, 0, 84,101, 12, 36,186, 42, 24, 18, 69,129,166, -105, 72,229,101,137,247,229,248,234,121,255, 47,208, 11, 46, 18, 62,127, 53, 69,211, 93, 43, 15, 93, 80, 22,235,103, 36,169, 80, -102, 45, 71,176, 59, 66,248, 12,124, 78,209,104, 5, 0, 12, 2,247,116, 20, 86,164, 22, 54, 62,158, 84, 93,237, 60, 76,140, 9, - 92,129,240, 29, 71, 39,103,255,210,210,162, 12,163, 78,255,103,178, 2,155,208,248,117, 25,225,231,140, 78, 20,141, 47, 1, 48, -216, 12,172,202, 40,177,122, 38,135, 13, 54,216, 96,195,139, 90, 71, 94, 40, 46, 30, 65, 16,230, 58, 56,137, 23,228,180, 5,216, -179, 66,108,213,113,248,175, 58,142,221,252, 39,229,187, 81, 66, 43, 84,140,201, 32,176, 24, 0, 13, 26, 95, 39, 43,240, 75,163, -206,247, 68, 20,159,201,220, 10,128,169, 51,154,103,209, 20, 46,214,121, 49, 25,232,198,231, 48, 87, 1,160,116,102,243,216,100, -153,245,254, 98, 97,222,232,207,162, 24, 59, 41,154,102,155, 41,122, 59,104,196,217,113,112,229,122, 62,116,141,201,171,111, 19, - 73,196,161,191,100,125, 19,126,153,134,142,173,222, 0,109, 38, 1,202, 4, 97,228,231, 56,251,211,135,232, 24,226, 11,154, 50, - 1, 20, 9,187, 1, 43, 49, 32,220,145,190, 47,127,190,117,176, 3,189,224,210,212, 77,242, 96,203,150,173, 30, 94,126,161, 4, - 69, 26,145,246,215,233, 81,211,231, 44,236, 21, 6,101,184, 53, 98,171,149, 39,198,249, 54, 11,250,124,198,226, 31,153,158, 94, - 62, 34,202,164, 39, 11,178, 82,218,174, 93,190,112, 63,135,145,179,234,158, 12, 91,173,109,203,161, 98, 76,100,241,184, 35, 4, -124,145,191, 70, 83,254,208,108, 52,253,201, 96,179,250,175, 88,185,186, 77,143, 62, 3,237,204,229, 5, 12, 19,133,208,189,123, -118, 55, 93,183,126,195,192, 7, 50,243, 91, 0,168,198,148,153,162, 49, 39,125,199,132,129,108, 22,147, 8,249,120, 11, 19, 32, -159, 75,104,133, 72,240, 30, 65,195, 98,120, 9,154,192,165, 20, 57,254,120,158,255, 8,150,224, 87,130, 70, 32, 8,236, 35,104, -236, 78, 86, 64,110,123,228,217, 96,195,191, 11, 12, 6, 35,129,162,168,158, 47, 89, 24,116,162,105,250,186,237,234,254,111,163, -113, 22, 45, 2,223, 38, 61,202,115,134,217,136,176, 64,191,111,128,198, 9, 45, 62,147,185,253,102, 70,161, 7, 72, 35,182,124, - 55,101,143,193, 4,144, 38, 35,204,164, 9,102,210, 4,146, 52,194,108, 50,129, 54,233,177,240,183, 4,192, 80,142,136,240,128, -237,128,217,211,218,255, 96,211,140,157,137,151, 79,187, 16, 6, 37,254,248,101,233,167,121,138,138, 79,207,220,147, 22,133, 74, -180,243,146,229,248,189, 49,130, 32, 97,227, 52,196, 30, 60,246,100,205,175,234, 84,138,166,225,226, 32, 8, 26, 21,147,228,179, -227,112, 66,222,234,237,186, 84, 0,112, 20,113,131, 70,223,203,240,125,145, 74,144,240,249,171, 55,109, 88,231,225,233, 42, 32, -200,171,203, 64,154,205,240,105, 26,205,156, 55,117,148,231,183, 63,109,253, 9, 42,253,152,134,206, 15,146, 32,180, 89,243,144, - 89,219,143, 93,245, 85,171,228,134,211,187,190,124, 4, 61, 76, 30,222, 33,236,111,150,254,200,156,255,197,180,153, 6,243,147, - 27,105,114, 36, 91,122,214,132, 72,112,120,233,178,149,173,122, 13,136,177,163, 42, 20, 76,157,186, 34,112,203,111, 91, 23, 7, -183,234, 32,140, 12,111,194,145,255, 57,137,208,150,151,192,200,224,243,122,133, 69, 57,104, 63,120,215,180,101, 91,236,212,100, - 57,214, 54,166,204,102,250, 63,109,143,162,158, 63,234, 58, 65, 35,242,206,245,132,137,102,233, 77,208,102, 19, 96, 54, 86,127, -195,108, 2, 77, 61,253,238, 56,233, 55, 0,207, 39,180, 24, 52,250,158,185,124,211,179,176, 64,214,254,167,149,223,207,163,111, -222, 60, 1, 51,118,166,148,224, 66, 99, 5,166, 13, 54,216,240,143,182,152,144, 52, 77,179, 94, 50,231, 64,154,166,143,191, 32, -205,231, 0,198, 85,110,111, 5,176,226, 37,100,173, 9, 0,143,202,237, 2, 0, 79,108, 45,224,133, 80,219,249,253,185,227,104, -241, 65, 83,192,190, 33, 0, 32,104,108, 46,104,128, 15,130, 9,152,212, 24, 60,160, 15,220, 36, 30,128, 73, 3, 24, 53,128, 73, - 11,152,212,128, 73,139, 34, 89, 14, 96, 84, 3,153, 39, 64,210, 52,175,209,197,213, 43,129,244, 63,209,187,173, 47,196,142,124, - 76, 27, 28,234,182,249,100,250,214,173,167,211,162,146,229,120,199,170,188,210, 52, 58,182,244,199,154,173,234,212,163,183, 21, -253, 0, 96, 96,107,215,147, 29, 67,155,250,172,222,174, 75, 61,126,191,180, 63, 0,244, 15,115, 56,209, 33,200,211,151,194,243, - 91,125, 41,154,142,244,106,230, 79,152,239,108, 2,165,122, 2,149, 74,139, 39, 89, 59,224,236,221,142, 97,166,208,221,210,249, - 2, 38,230,126, 54,255, 7,182, 70, 85,104,160,140, 10,179,152, 89,202,100,113, 41, 2,249, 23,244, 21, 84,153,121,198,132, 15, -201, 89, 95,125, 55, 23,192,168,134,120, 66, 37,152,186,106,213,234,150, 93, 34,130, 37, 5,251,167, 17, 21,165,133, 32,153, 66, -222,224, 55,187,192, 41, 32,148, 42, 60,191,138,224,250, 69,193,201,213, 15,249, 87,119, 33,251,250, 1,162,107,219,161,188,223, -255,224,124, 0, 24,235, 20, 90,254,110,232,218,175, 91,135, 61,126,190, 94,158, 52, 77,129,162,104,208,148, 25, 21, 58, 19,230, -237,205,132,217,108,198,176,126, 93,123,139,184, 4, 77, 81, 20,104,154, 66, 94, 65,177,230,220,141,212,222,153,165,184, 97,141, -165,170,117,167,158, 93,239, 37, 94, 15, 54,165, 31, 69,196,168,165,169, 4,112,185, 70,155,235,122,251,212,239,193,192,111,207, -175,229, 8,152,179, 79, 46,131,111,183, 9,204, 77,127,156, 20, 43, 21,249,163,247,239,216, 48,252,151, 77,219, 30, 52,118, 0, - 0, 32, 0, 73, 68, 65, 84,155, 98, 83,229,152,100,123,190,216, 96,195,191, 3, 52, 77,191,116,177,149,147,147, 35,125, 17,177, -229,237,237,221, 45, 63, 63,127,121,149,183, 10, 65, 16,203,155, 53,107,182,240, 63, 47,170,207,188,235, 41,205,102,243,168,252, -252,252,139, 13,113, 70, 71, 71,123, 29, 59,118,172,121, 13,206,230, 0,154,215,149,214,201,201,201,220,185,115,231,236, 99,199, -142, 73,109, 45,228,185, 4, 87,163,133, 86,106,238,159,211,218,234,101, 21, 0,144,106, 69,250,103,134,252,116, 38,243,178,109, -139, 63, 92, 22,214,204, 5,229,106, 3, 78,223,202,134,217,108,130,153, 36, 43, 45, 91, 36,204,164, 9,253, 90,187,161,179,110, - 18,214,198,165,129, 52, 83, 75, 27,226,172, 13, 35, 77,189,215, 38,106,228, 94,138,162,185, 60, 54, 67, 25,232,227, 42,153, 53, -172, 53, 99,218,224, 48,104,141,228,200, 93,231, 31,157, 75,145, 99,139, 85,156,212,223, 67, 30,209,117, 29, 51,147, 22,203,222, -128, 53,170, 99, 84,143, 72, 7, 90,175,132,169, 40, 19,229, 26, 19, 50,139, 77, 40,208,149,129, 71,200,172,226,164,104,180,106, -226,237, 41,188,178,231,139, 44, 87,166,138, 37, 97,146, 28, 46,131,132,153,162,153,116, 89,178,222, 37,184, 15,187,202,111,171, -161,124, 10,132,246, 31,118,235, 27,237,152,187,107, 2, 33, 8,236, 7, 73, 91, 31,100, 93,220, 6,249,173, 56, 20, 75,179, 9, - 7, 93, 25,220, 93,223,192,128, 81,239, 96,197, 59,237, 81,174, 42, 7, 83,246,200,145,203,230, 57, 1,198, 58, 57,105, 51, 70, -173,250,225, 59, 79, 22,147,241,244,122, 86,125,204, 38,104,245,122,192, 76,130,207,162, 64,208, 85,191,153, 96, 54, 25,133,173, -134,126, 49, 5, 48,223,176, 84,246, 20, 57,254, 8, 21, 35, 18,148, 41,152, 54,105, 65, 0,151,147, 21,255, 17, 63, 33, 18,188, -215,174,223, 71,145, 52,129, 75,207, 83, 71,225,174,136,137,104,110, 39, 18,169, 82,241,100,223,167,120, 4, 62,237,222,101, 28, -222,251,120,170,112,243,230,205,131, 0,122, 50,158,245, 81,123, 21,139,172,218, 56,109,156,175, 37,167,131,131, 67,139,102,205, -154, 45, 52,153, 76,221, 56, 28,142,187,209,104, 4, 69, 81, 5, 92, 46,247, 82,118,118,246, 18,149, 74,245,248,159, 86,246,123, -247,238, 53, 70,108, 89,228,100,179,217, 72, 75, 75,123,216, 8,177,117,166,214,249, 59, 47, 95,190,140,189,123,247, 2, 0,210, -211,211, 17, 16, 16, 32,170,235,196,172,172, 44, 81,143, 30, 61,118, 2,240,105,136,243,254,253,251, 45,142, 30, 61,138,125,251, -246, 1, 0,210,210,210, 16, 24, 24, 88,103,102, 46, 95,190,204,124,255,253,247, 91, 0,144,254, 23,234,232,223, 32,178,106,126, -255, 71,104,197,197,197,209, 49, 49, 49, 68,237,237, 58,144,233,235,204,109, 11,157, 25, 0, 50, 27,155,131,148, 66,252,176,102, -199,169,254,103,247,173,239,198,231, 48,176,104,203,172, 60, 69, 73,121, 39, 22,241,116,248,133,164,193,112,182,227, 94, 91, 58, -186,181,111,105,133, 14, 71,254,202,191,152, 44,111,156,137, 52, 89,134,120,128,114,122,186,103,134, 78, 43, 15, 28,189, 34,126, -247,238,185,253, 91,205, 24,220, 10,135,175,102,207, 0, 72,139, 81,223,105,138, 2, 77,145,213,206,239,149,175, 14, 0,245,236, -162,192, 20,232,167,199,168,198, 89,180,186, 3,172, 82, 9, 6,216, 11,185, 63, 79,156, 56,222,193,164,200, 64,137,129,131,188, - 82, 29, 10,180,108, 84,176, 36,200, 79,189,111,102, 16,136,183,104,114, 33,160,162, 73,157,147, 51,215,142, 17,222,103,138,183, -234,228,151,165, 92,130,100, 58,188,253,173, 83,209,217, 31,179, 73,181, 66, 77, 16,176, 24,126,222,209,209, 41, 64, 87,156,205, - 84,150, 22,193,201, 35, 12,253, 71,198,224,235,232, 80,148,171,212, 80,148, 92,163,253, 61, 29,136,156, 75,177,152, 63, 32, 4, -197,133, 50,232, 77, 0,161,214,151,232, 12,186,138,122,175, 35, 3,155,166,255, 31,123,231, 29, 30, 69,181,134,241,119,202,182, -108,122,217,244, 66, 64, 66, 8, 4, 2,210,123, 71, 32, 92,138, 84, 81,218,165,136, 40, 32,136, 20, 17, 4,164,168, 72, 80,154, -128, 10,130,116,164, 4, 20,136,210, 75,164,167, 65, 32, 1,210,123, 47, 91,103,230,220, 63, 82,110, 2, 41,187, 9, 54,156,223, -243,204, 51, 91,102,223,157,153, 51, 51,231,157,239,156,243,205,188,249, 99,189, 92, 84,230,101,131, 10,136,192, 35,192,175, 17, -250,118,107,143,179,151,175,224, 70, 88, 52,132,210, 65, 5, 68, 16,144,152,158,147,166,209,243, 59, 77,218,161, 60, 7, 98,208, - 84,105,196, 80,135, 38, 67,127, 71, 40,121, 96, 73,219,134,150,147, 23, 4,122, 89,154,203, 41,104, 12, 60, 52, 58, 3, 10,174, -108,132,125,131, 22, 80, 42, 20, 84,107,168,217,219,128,248,220, 66, 17,145, 10,140, 24, 49, 66,145,150,150,118,222,195,195,163, - 89,223,190,125,149, 93,187,118, 69, 81, 81, 17,206,156, 57,131,162,162, 34, 47, 15, 15, 15,175, 51,103,206, 12,143,143,143,143, -116,119,119,239,113,232,208, 33,163,251,208,150, 26, 32,166,252, 18, 12,112, 20, 69,161,244, 51,170,244,179, 58, 63,231, 86, 38, -147, 33, 46, 46,238,133, 71,182,146,146,146, 30,213, 37,178, 85, 88, 88, 40,117,115,115,131, 74,165, 2,207,243, 40, 42, 42,194, -209,163, 71,145,151,151, 7, 65, 16, 96,102,102,134,149,235,182,227,254,237,243, 8, 13, 13, 69, 94, 94,158,180, 54,205,196,196, - 68, 42, 32, 32, 0, 90,173, 22, 28,199, 65,163,209, 32, 36, 36,164,252, 61,203,178,152,191, 98, 61,162,111,158,199,157, 59,119, -144,152,152,248,167, 60,109,196, 4, 47,242,119,164,218,156, 89,127,250,168, 67,158,231, 22,110,219,181,239,218,194,233,163, 49, -115, 76, 31,143,229,155,142,244,137,202,196, 46, 0,240,115,192,248, 55,123, 54,246,180, 81, 74,240,201,143, 55, 1, 66, 22,214, -247,255, 34,178, 17,221,204, 73,152,243, 83,104,220,249, 69,163, 91,163,145,139,149, 79,142, 44, 91, 22, 27,107,196, 51, 5, 5, - 14,182, 22,114,223,129, 1,246,191, 64, 16, 96, 99, 41,111, 10,158,131,141,133,220,247,181,230, 86, 63, 3,128,149, 82,210,180, -170,200, 87,117,180,241,144, 76, 85,202,217,169,230,150, 54,158, 19, 6,247, 53, 27, 56,120,184,153,133,132, 67, 86,232, 25,228, - 75,220, 97,176,243,130,214,144,141,196,199, 49,252,175,215,163,146, 50, 11,180,115,107, 93, 77,130,139, 73,143, 31,168, 26,182, -236,107,155, 25,188, 56,189,225,196, 31,189,105, 8,116,193,158, 97,105,230,142,237,204,126,143,125, 92, 40,144, 42, 35, 58,149, -200,207,203,123,106,224,225,162,230, 89,203,152,115,223, 99,193,128, 22,200,201, 78,135, 70,207, 33, 79,205,233,157,109, 20,114, -237,227,112,104,245, 28,116, 6, 1, 18, 27, 55,156,185, 22,150, 41, 24, 12, 63, 87,167, 25,155,133, 59,177, 71,239, 88, 84,252, -172,145, 3, 2, 62,180, 50,187, 3,131, 26,113,137,201,216,117,242, 90,235,216, 44,220,169, 79, 57, 19,129, 43,105,126,174, 16, -201,162, 8,186,214,165, 19,124, 83, 71,180,147, 42,164, 95,127, 54,231,141,102, 29,155,216,201,133,196,107,160, 4, 61,204,121, - 22,106, 25, 15,107,143, 70, 16,116, 5,164, 88,163,201,141, 0,196, 76,239, 34, 34, 21,240,245,245,117, 78, 74, 74,138,152, 55, -111,158,221,176, 97,195,240,211, 79, 63, 33, 63, 63, 31, 59,119,238, 68, 80, 80, 16,150, 45, 91, 6,131,193,128,109,219,182, 41, - 15, 31, 62,220,110,243,230,205,137,158,158,158,205,227,227,227, 83,107, 49, 88, 20, 0, 57, 0, 73,105,221, 69, 1, 16, 78,157, - 58,133,129, 3, 7,226,212,169, 83, 66,233,103, 60, 74,110,126,234,244, 60, 81,153, 76, 6,153, 76,134,188,188,188, 23, 98,182, - 36, 18, 9, 44, 44, 44, 32,147,201, 80, 80, 80, 96,178,217,226, 56,142, 73, 76, 76, 68, 94, 94, 30,250, 14, 30,140,245,171, 87, -163,103,207,158,232,219,183, 47, 8, 33, 8, 9, 9, 65,159,206,254, 24,253,159, 30,136,138,138, 2,199,113, 70,173,111,106,106, - 42,210,210,210,240,218,224,193,216,190,121, 51,218,183,111, 15, 95, 95, 95,112, 28,135,243,231,207, 99, 68,255,206, 80, 12,237, -131,232,232,104,241,160, 54, 62,154,245, 66,250,104,213,155,136, 12, 92, 23,142, 93, 8, 30,211,191, 93,224,224, 46,205,176,125, -255,175,159, 66,149,191, 15, 0,236,181,242,149,111,245,108,132,200,248, 28,252,122, 39, 57, 56, 42, 19, 47,100,180,134,192,195, -193,222, 74, 9, 48, 50,168,245, 2,103, 21, 91,123, 7,102,129, 16, 40,187,125,136, 55, 7, 71,122,180,111,230,225, 81, 54,234, -208, 98,224,151, 24, 31,246,200,179,173,175,179, 39,120, 3,192, 27, 96, 53,250, 71, 96,133,121,173,235,209,217, 91,118,118,246, -172, 89,157, 6, 12, 29,101, 38, 83, 90,131,207, 79,128, 33, 53, 12, 89, 15, 47,162, 72,233,131,212,184, 88, 28, 56, 29,154,247, - 48, 49, 43,159,166,113, 38, 45, 79,251, 65,108, 14, 10,107,211,213, 24,176,250,227,197,115, 7, 29,216,183,223, 82,222,168, 11, - 21,179,113, 96,158,140,229,228, 42,239, 87,233, 98,133, 3, 89,181,115,191, 85,145, 14,107,106,211, 41, 46,202, 63, 18,114,230, -151,209,141, 27,118,177,124,114,227, 36,212, 26, 45,180, 6,160,121,187, 30,224,121, 34,163,104, 74,176, 98, 24, 42, 61, 43, 7, -148,129, 79,187,116,247, 73,202,229,187,177,140,214, 18,107,106,204, 46,242,172,187,167,152,247, 6,247,104, 5, 24,212,248, 79, -183, 22, 88,191,231,215,119, 1,126, 98,253, 10,185, 36,162, 69,128, 46,205, 84,216, 74, 8,186,220, 60, 26,212,180,205,208,217, - 48, 37,162,213,220, 1, 3,252, 26,186,126,191,126,229,135,118,246,238, 62, 12, 37, 24, 64,156, 91, 2,249,137,132, 74,188, 6, -107,183,246,224, 93, 59, 99,219, 87, 95, 20, 10, 2,217, 7, 64, 28,146, 45, 34, 82,241,122,164,209, 28, 89,187,118,173, 93, 96, - 96, 96, 89, 68, 6,215,174, 93,195,142, 29, 59, 96,110, 94,249, 58, 57,112,224, 64, 16, 66,236,150, 46, 93,122, 4, 64,199,234, - 52, 59,117,234, 52,248,206,157, 59,201,173, 90,181,138, 45, 53, 91, 82, 0,116,120,120, 56,157,144,144, 64,217,218,218, 18, 87, - 87, 87, 67,114,114,178, 0,128,159, 52,105, 18,115,240,224,193,198, 69, 69, 69, 23,234,106,180,100, 50,217, 11,233,179, 37,145, - 72, 64, 81, 20,100, 50, 25,164, 82, 41, 8, 33, 38,153, 45,158,231,217, 83,167, 78,225,230,205,155, 88,214,170, 21,230,184,185, -193,206,206, 14,231,207,159, 7, 33, 4,230,230,230,200,206,206,198,190,125,251,208,171, 87, 47,112, 28, 39, 53, 70,247,208,161, - 67,184,117,235, 22, 86,180,105,131, 57,214,214,176,176,176, 64, 72, 72, 73,107,160, 92, 46, 71, 92, 92, 28, 66, 66, 66,208,163, - 71, 15,241,160,174, 39, 70, 31, 60,221, 1, 54,155,130,179, 94,167, 6,225, 8, 64,193,213,207, 15,210,168,168,202,157,115,140, -129,166,177,248,171, 93,193,131,190,156, 61,152,154, 58,164,181,235,242,239,207,189, 13, 0,147, 95,111,226,166,148,179,216,112, - 44,146,208, 52, 22,191,136, 13,244,243,131,148,202,194,219,125,219,251, 34, 57, 87,135,152,228,220,223,162,140,108,234,249,245, -203, 55,241,195,241,243, 9, 65, 63,104,238, 19, 66, 96, 99, 33,247, 29,127, 47,198,243,251, 83,183,226,215, 29,208,220, 39, 2, -129,141, 82,210,116, 98, 84,231, 90, 71, 29,182,241,144, 76,125,127,238,220,206, 67, 38,206, 83,112,247, 15, 66, 23,115, 26,130, - 94,141,124,189, 20,185,140, 51, 18,227,227,177,106, 91,112, 66,126,145,110,116, 68,134,105, 6,243, 97, 22, 10, 89, 42,127,216, -170, 79, 22,157, 93,189,114,169,133, 58,246,124, 33, 67,113,106,166, 65,119,118,229,178, 47,169, 2,173,110, 84,108, 14, 10,106, -211,209, 90, 98,205,218,117, 95, 13,154, 50,110,248,253, 38, 62,221,237,249,228,199,246,154,252,252,244, 31,127,185,229, 92,122, -167, 72, 1, 64, 76, 98, 22, 50,242,138, 56,158, 51, 92,176,148, 96,121,164, 49,209,193, 82, 26, 58, 66, 21,216,165,249, 27, 42, - 75, 41,212,133,185,112,180,148,160,127,251, 87,222, 48,252, 30,253,225,227,116, 83,236,218,179, 70,203, 0, 98, 80,227,250,154, - 94, 77, 9,111,104, 10,222, 0,253,189,221,166, 71,198, 40,204,153,217,205,194,202, 86,247,132, 70,145, 57, 96,230, 0,202,202, - 11,176,246,166, 36,126,163,144, 28, 27,193,189,251,198,184,172,199, 79, 19,191,117, 48,123, 33, 35,127, 68, 68, 94, 42,226,226, -226,222, 90,184,112,225,229,246,237,219, 59, 57, 56, 56,160, 69,139, 22, 56,126,252, 56,230,205,155, 87,190, 76,171, 86,173, 64, - 8, 65,118,118, 54,214,174, 93,155,154,156,156,252, 86,141, 55,232, 17, 17,247,127,248,225,135,110,205,154, 53,211, 75,165,210, - 92, 0,242,220,220, 92, 69,118,118, 54,165,209,104, 32, 8,130, 96,109,109,205, 39, 39, 39, 27, 70,143, 30,173,189,122,245,234, - 43, 69, 69, 69,113,245,137,104,121,120,120,132,103,101,101,229, 81, 20, 85,239,212, 15,101, 38,203,193,193, 65, 85, 88, 88, 40, - 0,200,169, 75,234, 7,142,227,208,166, 77, 27,156,190,120, 27,167,126,189,138,252,228, 7,120,123,202, 91,104,209,162, 5, 78, -159, 62, 93,231, 50, 11, 8, 8,192, 47, 33,151,113,249,230, 93,196, 69,223,195,187,111, 79, 65,243,230,205,241,203, 47,191,136, - 7,180,241,156, 68,229,190, 89, 39,159, 53, 90, 61,130,131,131,203,238,204,159,179,175, 77, 29, 16, 32,177,145,237, 94, 58,224, - 21, 63, 73,223,165,160, 36,102, 56,232,243, 75,231,197,171, 54,222,103, 28,227,198,133,167,215, 62, 58,172,210, 73,147,142, 8, - 18,122,127,239,221,168,166,111,252,167,189, 7,182, 31, 87, 46, 1,128, 81, 93, 27,226,247,135, 25, 8,141, 78,223, 27,153,129, -136,250,110,181,191, 35,148,124, 38,246,174,125,111, 72, 15, 47,119,103,236,248,233, 50, 40, 10, 71,140,170,112, 9, 33,237,155, -121, 33,232,135,103, 71, 24, 58,123,174, 59,160,185,127, 38,162, 96, 0, 0,244,109,170,252,185,237, 43,182,158,164, 98,199,173, - 42, 48,147,177,211, 6, 12,127, 83,193, 69, 31, 7,158,134,128,226,180, 80,235, 5,164,100, 22,160,216,218, 3,231,175,221, 85, -231,105,116,179, 35, 51,234, 22,197,139,202, 68,172,244,198,221,248,194, 34,181,139, 82,245,138,134,161, 5,161, 80, 75,240,123, -228,211,252,200, 84, 60, 48, 70, 35, 54, 22,186, 14,110, 92,215,173,187, 14,124, 44,145,202, 70, 49, 20, 40, 71, 27,115,213,214, - 47, 87,192,210,210, 2,130,174, 16, 40,202,192,176,119, 86,101,132, 39, 27, 26, 2,128,143, 61, 44,186, 54,148,236, 98,105, 42, -241, 92,140,254,163,218,254,131, 50, 96,250,184,254,173, 36,130,174, 8,239,173,221,143,111, 62, 28,130, 55,123,251, 73, 78, 94, -137,158, 14, 96,121, 93,203,154,240, 28,136, 65,141,142,139, 46,222,167,128,203, 4,232,114,243,192,202,166,192,109,163, 53, 90, - 3, 18,158,165,252, 90,122,154, 75,133,196, 43, 16, 18,175, 16,198,163, 51, 40,207,110, 20,229,220,134,124,253,217,178,162,237, -219,119,156, 17,104,124, 98, 68,170, 12, 17,145,127, 43,177,201,201,201,175, 13, 28, 56,240,215,211,167, 79,219,249,251,251, 3, - 0,110,222,188, 89,114,211,217,166, 13,154, 52,105,130,180,180, 52,140, 25, 51, 38, 51, 37, 37,229, 53,212,210,231,183,160,160, -224,241,161, 67,135,156,138,138,138, 90,125,244,209, 71,233, 94, 94, 94,249, 26,141,134,202,205,205, 21, 56,142,131,173,173,173, -172, 85,171, 86,232,212,169, 83,225,181,107,215, 26, 36, 36, 36, 20, 0,120, 90,151,149, 31, 50,100, 8, 46, 94, 44, 25,180,247, - 34,242,106, 73,165, 82,248,251,251,187,197,198,198, 38,149,214, 45, 38, 95,227, 43, 86, 47,119,239,222,197,133,219,137, 96,117, -106,200, 50,146,113,253,167, 67, 24, 60,109, 6, 56,174,238,189, 24,238,222,189,139,163, 33,215, 97, 46,103,241,224, 65, 4, 14, - 29, 58,132,183,223,126,187, 94,154,117,164, 70, 47,242, 55, 39, 5,213,244,211, 98, 1, 32, 48, 48,240, 66, 89,180,162, 34,141, - 26, 65, 38, 47,196,210,190,173,221,230,143,234,242, 10, 99,200, 79,134,192, 11, 96, 36,128,163,131, 21,118,239,222,219,112,239, -254,253,215, 54,111,218,252,149,192,113,139,195,211, 81,108,194, 74, 45,253,114,255,229, 81,187,231,246, 96,223, 30,208,212, 14, - 0,164, 44,141, 13,199, 35, 56, 0, 75,235,179,181, 29,220,160, 40, 52, 96,170,163,189,245,146,133,255, 29,100,215,163, 77, 19, - 92, 8, 13,199, 87,135,174, 93,148,165,227, 7,163, 15,110,193,128,103,253, 83, 85,163, 14, 33,212,222,239,146,231,137,179,212, -220, 22,250,167,231, 0,189, 6, 26,173, 30, 9, 89, 60, 18,178, 53, 96,149, 82,220,140, 78, 84,219,167, 34,184, 30,155, 77,153, - 43, 21,174, 31,127,186,206, 93,163, 46,228,242,115, 50, 57,169,236,186, 68,105, 38, 79, 49,165,171,194,245, 36,104,186,121, 75, - 94, 5, 4, 70,166, 32,197,139,222,159, 96,158, 20,121, 26,141,233,100, 80,132,192,204,111, 16, 44,205, 24,105,151, 6,146,120, - 0, 48, 55, 87,202,214,126, 50,207,122,246,135,159,212,218, 7,204, 15,144, 54,105,228, 60,219,223,203, 22, 23,111,221,199,197, -176,184,136,139, 55, 31, 52,239,217,194, 21, 77,220,109,102,201,114,114,215, 68,193,244, 8,105, 73,193,112,128, 65, 83, 62,234, -208,207, 17, 99,219,142,250,168,186,209,134, 85,226, 13, 8,209, 60, 1,197, 48, 0, 69,151,140,128, 76,184, 2,214,166, 17,217, -123,224,104,241,142, 29, 63,172,136,202, 20,163, 88, 34, 34,181,145,151,151,119, 47, 42, 42,170,127,203,150, 45,119,190,247,222, -123,150,227,198,141,115,157, 50,101, 10, 13, 0,105,105,105, 66, 80, 80, 80,242,215, 95,127,157,151,153,153, 57,209, 96, 48,132, - 25,115,134,167,164,164, 92,253,246,219,111, 51, 46, 93,186,212,188, 93,187,118,242, 87, 95,125, 85,176,181,181,101,229,114, 57, -175,211,233, 52,209,209,209,124,108,108,172, 75,110,110,238, 35, 0, 49,168, 67,179,126,105,244,106, 57,195, 48, 31, 19, 66,252, - 95, 68, 31, 45,165, 82,233, 10,224, 17, 69, 81,141, 77,109, 54,124,174,194,102, 89,228,228,228,160, 56, 53, 2,138,196,135,104, -105, 78,163,153,173, 5,172,172,172,234,101,138,242,242,242,128,162, 36, 92,190,124, 23,224, 56, 88, 91, 91,195,218,218,250, 79, - 55, 90,213,121,145,127, 8, 83,171,248,172,230, 62, 90,205, 84,120,219, 76,135,160,105,131, 94,145,122,123,186, 67,155,120, 19, -119, 19, 10,177,184, 67,187, 72, 70,110,169,153,246,214,144, 54,195, 71, 52, 64,143, 78,109, 41,111, 23,235, 89,107,190,220,242, - 78, 51,100,206,139, 76,199, 6, 99,214, 40, 50, 3,143, 5,164,239, 56,119, 47,113,186,187, 82, 13, 65, 32, 56, 23,150,130,176, -167, 57, 59,238,103,224,177, 41, 91,215,204, 5,125, 88,208,251, 9, 33, 10,107,115,243,130,102, 77,220, 29,250,116, 12,160, 95, -235,222, 6, 82, 6,184,252,251, 93,204,249,242,200,117, 65, 32,131,140, 30, 33, 38, 8,207, 25,168,146, 17,134,134, 74, 35, 12, - 9, 33,164,100,212, 97,205,221,190, 24,134, 74, 45,142,187,225, 44,177,247,129, 58,230, 28,158,230, 8,136, 75, 47, 64, 62,235, - 12,109, 82, 18, 64,132,248, 11,245,232, 88,237,224,224,224,216,176, 89,147, 87, 54,238, 58, 4,125,113, 30, 30,159,223,137,194, -156, 20,172,220,122,252, 21, 55, 55,251,238, 73, 73, 73, 23, 76,184,216, 52,249, 53,120,175, 35, 8,192, 72,228, 56,185,249, 0, - 50,237,205,224,160,148, 66, 80,103, 96,218,236,113,214, 3,250,142,179, 6,128,184, 7,119,224,165, 84, 27,165,171,183,199,240, - 81, 61,125,109, 96, 80, 99,215, 47,119, 52, 52,240,218, 15,103, 34, 98,122, 54,181, 81,140,234,226,101,187, 60, 57,247,117,100, -213, 45,169,104, 89, 68,171, 60,194, 87,135,209,134,135, 0,190,169,128,152,253, 87,211,205, 71,244,125, 85, 41,101, 41,138, 20, - 38,129,152, 57, 96,203,174,131,133, 50,195,159,243, 36,118, 17,145,151, 1,181, 90,125, 75,173, 86,183,248,224,131, 15,198, 46, - 90,180,168,155,185,185,121, 67, 0, 40, 42, 42,122,108, 48, 24, 46,150,158,159,166,140, 14, 36, 0, 30,197,196,196, 60,142,137, -137,113,218,179,103,143, 13, 0, 69,233,119, 26, 0,185, 0,210, 80,143, 17,135,101,166,138,162,168,143, 95,212,126, 40, 51, 85, - 20, 69, 53,174,203,239,105,154,230, 41,138, 2, 69, 81,144,203,229,184,116,233, 18, 70, 14,234,139,168,147,185,240,183,177, 64, -187,137,211,176,255,236, 89, 48, 12, 3,138,162,192, 48,140, 73,245, 8,203,178,184,124,249, 50,222, 28, 51, 2,114, 22,176,182, -182,198, 7, 31,124,128, 99,199,142,129,101,197,167,244,153,192,182, 10,134,203,200, 60, 90, 20,150,159,221,185, 74, 10,222,128, - 19, 59,191, 64,112,120,161,238, 65, 6, 22,251,102, 32,232, 16, 10,132,140, 47,127,152,126,246,114,248,231,147, 70, 7, 42,123, -245,236,139, 94, 61,122,178,205,219,118, 95, 2, 84, 50, 90,125, 80, 67,174, 13, 94,192,138,109,191,220,159,182,255,124, 52, 5, -125, 1, 70,247,107, 75,120, 1, 43,106,217,152,231, 52,173,205, 44,246, 95,190,118,205, 22,250, 66, 60,189,243,155,162, 65,195, - 87, 0, 94,143, 71,143, 30,226,235, 93, 63, 9,231,127,127,176, 91,199,225,189,216, 28, 20, 25,171, 89,226,172, 56, 88,155,203, -124, 95,107,110,245,179, 0, 2, 27,165,180, 41, 17,120,216, 40, 37, 77,251, 54, 85,254, 76, 8, 33,150,102,146,166,132, 55,212, -170,169,214,113,223,236,250,110,199,186,201,147, 39,155,103, 38,166, 34, 57, 63, 28,133, 50, 55, 24,148, 30,136,185,115, 81, 93, -172,229,140,169,196,171,221,159,153,153,153,233,183, 66,179,177,127,235,106, 24,116, 90,164, 39,150,120,213,228,204,124, 88, 57, -184, 93, 75, 74, 74, 50, 90, 83,207, 9,121,195,199, 77,149,154, 89,194,236,205,225,129,178,152, 44, 45, 90,187, 90,150, 92, 52, - 10, 51, 16, 21,114, 25, 61, 74,251,152,198, 38,208,240, 10,112, 53,106, 61, 45, 21,210,247, 6,188,234,134,199,241, 41,184, 20, -145,180,235,113, 54,146,249,251, 41,187, 98,146,115,167, 15,233,224,137,245,199, 34,223, 5, 12,123, 77,217,118, 63, 71,140, 37, - 4, 93, 74, 58,195,171, 65,128, 46,126,142, 24,107,228, 72,195,231, 52, 89, 41,222, 88,247,115,220, 71, 7,111,100, 14,153,255, - 70, 87,171, 78,157, 6,202,192,233, 80,160,214, 26,162,114,145, 95,159, 50,170, 7,162,166,168,249, 79,213,228, 1,236, 54, 24, - 12,187,115,115,115, 95,164,102, 50,158,207,235, 84,175,109,175,216, 76, 72, 8, 97, 75,163, 89,181,117,134,175, 81,179, 98, 51, - 33, 33,228, 84,105, 52,171,182,168, 86, 37, 77, 65, 16,146,219,180,105, 99, 55,120,240, 96,240, 60,143,135, 15, 31, 34, 46, 33, - 1,125,166,191, 11, 27, 27, 27, 92,188,119, 15, 15, 30, 60,192,199, 31,127, 12,131,193,128,163, 71,143, 38,214,166,201,178,172, -254,149, 87, 94,145, 14, 29, 58, 20, 28,199, 33, 54, 54, 22, 73, 73, 73,152, 51,103, 14,172,173,173,113,235,214,173,114,205,204, -204, 76,176, 44,171,175, 34,186,245, 71, 28, 75,255,116,158, 51, 89, 53, 27, 45,128, 7,111, 64,222,217,165,216,112, 9,122,189, - 1, 77, 35, 51,240, 36,242,255, 17,169, 45, 76,232,189, 19,247,194,239, 63,190,117,165,151, 12,233, 97, 48,245, 78,226, 97, 22, - 82, 44, 21, 5, 5,208, 23, 88, 33,246,103, 60, 73, 43, 40,124,152,133, 20,147,239, 24, 4,158,130,190, 24, 72,185,137,171, 23, - 47,224,252,245,187,184, 17,118,159,191,122, 43,122, 63, 45, 96, 69, 84, 22, 30,214,225, 46, 4, 22,131,214, 99, 66,216, 35,207, -182, 77,156, 60,193,115, 32,130, 1,214,163,247, 98, 98,100, 39,207,182,141,108, 60, 75, 34, 89, 6,216,254,247, 55, 96,157,162, - 70,189,155, 9,134,109,178, 99,167, 95, 47,200,205,234,208,187,123, 71,115,107,191, 1,200,124, 20,141,135,119, 47,171,111,133, -199, 92,189,153, 96,168, 87,180,196,205,205,173, 91,239,238,190, 24, 61,109, 33,244,197,121,136, 61,255, 29, 10,179, 83,113,233, -154, 5,238,231,231,119, 4, 96,116, 68,235, 90, 60,215, 28,241, 57,232,220, 64, 18,111, 9,173,243, 91,129,131, 33,167, 52, 16, -180,249,160,138, 51, 17,147,164,203,123,125,107, 2, 15, 0, 74, 57,197,154,147, 60, 43,163, 34,143, 94,246, 62, 74,198,128, 31, -206, 70, 64, 16, 74, 30,223, 36, 8,216,242,195,111, 49,211, 87,188,217, 26,205, 60,109, 3,238, 36,165, 83, 48, 33,228, 79, 17, -116,189,177,255,147,166,154, 95,151, 0,130, 30,151,103,217, 53,237,186, 33,187, 43,234,248,184,157,240,100, 36, 1,152, 14,182, -248,155, 89, 27,126, 89,210,230,108,100,151,185,255, 29, 98, 5, 34, 62,128, 93, 68, 68,228,207,167,176,176,112,218,196,137, 19, -191,145, 72, 36, 42, 0,148, 32, 8, 16, 4,129,253,252,243,207, 37, 60,207,211, 52, 77,243, 12,195,112,167, 78,157, 50,240, 60, -159,161,209,104,166,213,166,201,113, 92,204,140, 25, 51, 94,169,109,132,226,190,125,251,202, 76, 86,140, 88, 18, 70,153,172,138, -243,242, 40, 87,245,149, 7,193, 39,157,223, 92,186, 20, 0, 5,130,101,145, 25,120,242,236, 34, 97,217, 72,110,198,232,231, 52, -111,219,125,105,217,111, 76, 93, 51, 13,207,143,104,219,162,201, 62, 0,208, 18,254,205,186,108, 93,190, 86, 61,170, 85,219,142, -251, 5, 66, 88,142,144, 29,180,128,195, 26, 14, 81,198,140,180,171,142,228,244,220, 91, 3,252,173, 9, 80,210,100, 88,222, 92, - 88,154,198,129, 16, 66,202,155, 11,191, 80, 32, 51, 79, 91,107, 30,168, 43, 79,116,125,117,220,141,169,103,174,220,153,198,243, -196,153, 97,168, 84,181,142,251,166,190, 38, 11, 0,146,146,146, 46,132,156, 77, 58,115, 47,192,169,159,131,178, 52,202, 85, 12, -100, 22,227, 76, 82, 70,225,133,186,104,230, 20, 25,134, 44, 10, 58,118, 92, 38, 97, 88, 16, 82,146, 80,148, 16,104,244,124,246, -181,120,174, 57, 0,180,176,131,235, 7, 71,185,125, 12, 67,197,213,166, 23,250, 32,101,253,232, 53, 33,243, 34,158,230,236,120, -154,139,112, 0,120,154,139,240, 3,151,159, 44,137, 73, 45,152, 23, 30,151,243, 5, 76,236, 87, 65, 40, 92,106, 59,122,233,115, -159,213,119,127,222, 79,193, 93, 0,195,128,196,190,163,231,126, 61,151,162, 32, 62,126, 66, 68,228, 95, 68, 89, 84,139,166,233, -229, 47, 80,243, 20, 69, 81, 3, 1, 60, 50,225,103,161,133,133,133, 45, 94,240,230,101,113, 28,151,101,204,130,127, 65,135,248, -127, 42,127, 89,215,146, 62,162,230,159,175,217,184,113, 99, 98,130, 97, 17,247,167,168, 41,106,138,154,255, 42, 77, 66, 8, 83, -159,169, 26, 77,170, 62,147, 88, 70,255,120,166, 86,247, 94,108, 14,121, 9,121,244,232, 17, 37,238, 5, 17, 17, 17,145,170,161, - 40,138,255, 3, 52,197,228,197, 34,101, 6,171, 82,116,139, 22,247,137,136,136,136,136,136,136,136,200, 11, 49, 89, 21,231, 37, - 38, 28,213,135,255, 76, 25, 77, 80,151, 16, 98,136,168, 41,106,138,154,162,166,168, 41,106,138,154,255, 58,205,218,180,197,209, -140,127,176, 1, 19, 53, 69, 77, 81, 83,212, 20, 53, 69, 77, 81,243,223,167,249, 79,166,218, 62, 90, 98,211,161,136,136,136,136, -136,136,136,200, 31,132,216, 25, 94, 68, 68, 68, 68, 68, 68, 68,164,126,212,250, 80,105, 17, 17, 17, 17, 17, 17, 17, 17,145,186, - 81,243, 67,165, 69, 68, 68, 68, 68, 68, 68, 68, 68,234,140,233, 15,149, 22, 17, 17, 17, 17, 17, 17, 17, 17, 49,138,109,226, 46, - 16, 17, 17, 17, 17, 17, 17, 17,249,115,168, 60,234, 48, 56, 56,152, 84,156,139,136,136,136,136,136,136,136,252,153,188,172, 94, - 68,108, 58, 20, 17, 17, 17, 17, 17, 17, 17,169, 31, 83, 69,163, 37, 34, 34, 34, 34, 34, 34, 34,242,199, 80,109, 31,173,178,132, -165, 61, 74, 67,117, 61,196,125, 37, 34, 34, 34, 34, 34, 34,242, 23,240,114,123, 17,177,127,150,136,136,136,136,136,136,136,232, - 69, 68, 68, 68, 68, 68, 68, 68, 68, 68,254, 78,136,207, 58, 20, 17, 17, 17, 17, 17, 17, 17,249,147, 13,215, 31,110,180,196, 39, -155,139,154,162,166,168, 41,106,138,154,162,166,168,249,111, 50, 89,149,204,150, 56,234, 80, 68, 68, 68, 68, 68, 68, 68,164,126, -212, 58,234, 80, 68, 68, 68, 68, 68, 68, 68, 68,164,110, 76, 5, 16, 88,250, 58, 16, 21,162, 90, 98, 68, 75, 68, 68, 68, 68, 68, - 68, 68,164,126,108, 3,224, 82,106,176, 78, 2, 72, 17,141,150,136,136,136,136,136,136,136,200,139,161, 98,191,172, 65, 21,204, -151,104,180, 68, 68, 68, 68, 68, 68, 68, 68,234, 73,181,125,180, 40, 84, 63,114, 32,196,132, 63,168,203,232,131, 16, 81, 83,212, - 20, 53, 69, 77, 81, 83,212, 20, 53,255,117,154,181,105,135,224,159,199, 84, 83,204,215,139, 68, 28,250, 42,106,138,154,162,166, -168, 41,106,138,154,162,230,191,150, 23, 62,234,176, 53, 96, 38,238,214,151, 18,167,210, 73, 68, 68, 68, 68, 68, 68,164,102,254, -152, 81,135,126,192,127,199,249,171,182, 26,194, 51,172,194,129,226,154,150, 85,169, 84,223, 40,149,202,113,197,197,197, 69, 20, - 69, 9,101,159, 19, 66, 0,160,226,179,142, 98, 51, 50, 50,186,214,246,223, 50,153, 44,200,201,201,233,191,133,133,133,197, 20, - 69, 17,138,162, 64, 81, 20, 0, 60, 55,231,121, 62, 49, 43, 43,171,205, 63,186, 8, 9, 97, 28,156,156,126,151, 48,140,155,169, - 63,229, 5,225, 73,122, 90, 90, 71, 19,126,178,154,162, 48,191,228,111,241, 25,128,133, 47,219, 25, 65, 0,198,152,229,252, 1, -203,104, 96, 52, 79,211,239, 74,128, 77, 90, 65,216, 10, 0, 20,192,215,245,191,181,161,120,133, 34, 8,160, 40, 88, 19,130, 60, - 66,225,174,188, 61, 98,254,162, 93, 49, 92, 34,145, 12,177,178,178,178,200,202,202,186, 0, 96, 31,128, 49,246,246,246,221,243, -243,243, 11, 13, 6,195, 49, 0, 71,234, 34,220, 53, 0, 31,202,164,146, 73, 26,189, 97,237,149,187,248,174,123,107,216,115, 2, -214, 40,164,108, 87,173,142,251,236,242, 61,236, 48, 81,146, 42,157,202,174, 25, 38, 63, 35,237,160,145,229, 14, 0, 71,109,109, -155,200, 85, 86,191, 74,100,204,147,220,180,194,113, 35,210,211, 19, 70,214,163,220,255,142, 56, 56, 56, 76,160,105,250, 83, 66, - 8,120,158, 95,156,157,157,189,243, 5, 73, 47, 6, 96, 83,250, 58, 23,192,167,245,212,139, 3,224, 89,250, 58, 30,128,151, 88, -175,215,153, 45, 63,253,244,211,244,158, 61,123, 98,253,250,245,216,178,101,203,211,140,140,140, 53, 0,118, 1,208,253, 5, 58, - 34,213,209, 12, 24,248,121,255,246,188,225,251, 21, 66,133,143,251, 84,115, 50,127,251,214, 91,111,233, 9, 33,228,193,131, 7, - 68,167,211, 17,131,193, 64, 56,142, 35, 28,199, 17,131,193, 80, 62,185,185,185, 37, 61,243,243,231, 52,105,154,222,240,250,235, -175, 23, 16, 66,200,205,155, 55,137, 90,173, 38, 90,173,150,232,116, 58,162,209,104,136, 90,173,174, 52, 57, 57, 57,165,213,164, -105,101,101,117,211,214,214, 54,205,214,214, 54,205,206,206, 46,205,206,206, 46,205,222,222,190,124,114,112,112, 40,159, 84, 42, - 85,154, 74,165, 74,179,179,179,187, 89,219,122,150,210, 31,192, 5, 35,166,254, 85,252,182, 79, 69,163,229,226,226,146, 70,234, -128,187,187,123,130, 17,235, 89,134, 19, 69,129, 47,251, 45, 69, 65,144,203,229,158, 21,191,199,243,145,174, 90, 67,202,174,174, -174,175,187,184,184,132,184,184,184,156,117,117,117,125,221,136, 67,172,146,166,165,165,229, 77, 7, 7,135, 52,103,103,231,244, -178,201,197,197,165,210,228,234,234, 90, 62, 57, 57, 57,165,217,218,218, 86, 91, 70, 4, 96,170,155,206, 3,172, 28,232,197, 50, - 76,176,147,147, 83,126, 88, 88, 24, 79, 8, 33, 52, 77, 39,149, 45, 99,202,182, 63,107,178,138, 47, 99,113,230, 57,121,104,225, -147, 53,121,153,231,228,161,197,151,177, 88, 27,138, 87,234,170,105, 36, 85,105,142, 31, 63,126,252,221,180,180,180,164,220,220, -220,148,173, 91,183, 70, 43, 20,138,203, 91,183,110,141,206,205,205, 77, 73, 75, 75, 75, 26, 63,126,252, 93, 0, 51, 76,208, 4, - 0,116, 12, 64,135,201,195, 93,138,239, 30,125,179,184, 87, 91,246, 78,103,127, 4,246,237, 40, 77,218,184,192,175,248,226,246, - 46,197, 61, 95,165,195, 77,212,164, 88,150,237,228,233,233, 57, 73,165, 82,189, 85, 58,189, 89, 54, 57, 59, 59,191,233,236,236, -252,166,173,173,237,200,154, 52, 15, 2,140, 49,147,135, 66,209,105,100, 67,207,226,184,229,203, 72,216,236,119,201,164, 70, 30, -249, 35, 28, 29, 27,252, 5,101,244,135,106, 58, 58, 58, 38, 27, 12, 6,162,215,235,137,189,189,125,242, 11, 92,207, 47, 8, 33, - 95, 16, 66,190, 0,240,197, 11,208, 44,191,158,153, 96,176,107,210, 84,176, 52, 61, 87, 41,147,157,149,179,108,186,156,101,211, -149, 50,217, 89,150,166,231, 1, 80,252,157,202,232, 15,208,180, 80,169, 84,143,131,130,130, 72,113,113, 49, 41, 46, 46, 38, 65, - 65, 65, 68,165, 82, 61, 6, 96, 97,130,102, 93,117, 94,166, 8,214,179,211,139,139,104,249, 1,109,122, 5, 52, 62, 60,107,194, -104, 8,135,130,168, 90,238,152,190,237,216,166,205,164, 93,187,118, 1, 0,198, 13, 25,130,126,237,218,193,210,194, 28, 50, 89, -201,234, 80,132,130, 84, 34,197,208, 57,239, 27,243,247,159, 13, 29, 58,244,141, 67,135, 14, 89, 0,192,150, 45, 91, 48,124,248, -112,216,217,217, 65,169, 84, 66, 42,149, 66, 34,145, 84,154,215, 6,195, 48,238, 73, 73, 73,142, 10,133,162, 60,202, 38, 8, 66, -165,137, 16, 82, 22,125, 3,199,113,240,241,241, 49,118,119, 45,200,203,203,235, 86, 84, 84, 84,174, 81,213,212,176, 97, 67, 0, - 56,109,140,224,167, 43, 87, 64,224,138,192,178, 0,199, 1, 90, 61, 13,129, 84,105,110, 48, 99,198,140,242,245,174, 11,131, 6, - 5, 82, 20, 69, 29,186,117,235,214,225,244,244,116,111, 65,224,167,212, 49,210,245,206,195,135, 15, 45, 0,160, 73,147, 38, 51, - 0, 28, 54,101, 61, 88,150,117,191,119,239,158,163, 92, 46,175, 54,114, 89, 33,130, 9,189, 94,143,214,173, 91,115,166,252,135, - 19,224,153, 77,211, 83, 90,189,250,234,212,165, 67,135, 42,126,255,253,119, 5, 77,211,224, 56, 14,159,127,254, 57, 71, 8,177, -105, 6, 88, 69, 2,249, 53,200, 44, 2, 48,161,180, 50,216, 1,224,243, 74,110,129, 32, 64,109,144, 7,198, 22, 14,109,215,190, -193,135,136,140, 8,107,215,200,226, 40, 44, 89,109, 12,240,231, 70,181,172,172,172,134,172, 95,191, 94,181, 99,199,142,252, 7, - 15, 30,232,183,110,221,170,154, 54,109,154,165, 94,175,199,244,233,211, 51,124,125,125,165,235,215,175, 87, 29, 57,114,164, 87, - 81, 81,209,102,147,202,139,194,138, 49, 67,250, 65, 99,160, 97, 48,112, 42, 23,149,229,238, 89,227,123, 72, 8,209,225,135, 99, -183, 96,224,132,239, 76,140,100,117, 28, 49, 98, 68,163,189,123,247,178,247,239,223,103,155, 54,109, 10, 65, 16,192,243, 60, 12, - 6, 3, 0, 64, 16, 4, 52,110,220,184,222,251,101, 18,208,196,193,201,238,108,199,129, 3,204, 92, 20,114,216,229,100, 96,178, -148,181,220,169,212,238, 1,208,233,165,138,236, 18, 2,150,101,145,144,144, 0, 71, 71, 71, 51, 65, 16, 82, 0, 44,203,201,201, -217,134,151,151,118, 50,150, 61,252,195,119, 27,156,219,119,234,196, 56,185, 56, 34,250, 97, 60, 88,138,239,115,239,198,173, 30, -147,222,158, 59, 75,199,113,175, 3,248,253,101,219,112,231, 78, 51,134, 81, 52,179,133, 34, 2, 62,217,120,188, 96,245,103, 65, -202,233, 83,198, 51,115,230,204,129,135,135,135,247,176, 97,195, 62, 3,240,118,173, 58,237,103, 12, 3, 67,111, 1, 33, 88,250, -245,241,130, 85,159, 5, 41,223,174,131,206, 63,156,106,207,145,122, 27, 45, 63,160, 81,115, 15,199, 51,171,231,191, 45, 33, 63, -127, 79, 23,103,165, 87,187,172, 74,165,250,230,181,215, 94, 27,183,115,231,255,163,209, 29,253,253, 49,172, 87, 23, 56,218, 91, - 67,105, 46, 43,169,142, 4, 10,119, 31, 60, 49,202, 16,120,120,120, 76, 63,124,248,176, 69, 69, 51, 33,149, 74,203,167,138, 38, -171,108, 42,171,128,107, 66,161, 80, 32, 36, 36, 4, 44,203,130, 97, 24,176, 44, 91, 62, 85,124,207, 48, 12,156,156, 76,234,186, -180,198,218,218,186,101, 65, 65,129, 85,110,110, 46, 60, 61, 61,243, 1,220,171,240,125,203,140,140, 12, 43, 83, 4, 5,174, 8, -115, 38,251, 65,162,187, 14,157,164, 29,212,108,103, 92,189, 17,133,224,211, 23,144,148,156,138, 46, 29, 90,225,173,177, 35,112, -246,236, 89,240,188,201, 45, 29,105,132,224,179,193,131, 3, 63, 4, 40,170, 79,159, 62,185, 51,103,206,164,239,223,191,255,198, -176, 97, 67,253, 31, 62,124,116,176,126,228, 0, 0, 32, 0, 73, 68, 65, 84, 84, 26, 85,164,230, 19,130, 13, 0,210,140,212,149, - 1,192,197,139, 23, 1, 64, 94,151, 99, 79, 46,151,227,218,181,107, 40,107, 38,166,105, 26, 52, 77,131, 97, 24,156,120,228,128, - 34, 29,141,226,180,112,188, 27,232,137,134, 13, 27,130,166,107,239,146,216, 3, 80, 92, 5,134, 81, 18,201, 28, 23, 87, 87,239, -238,141, 26, 41, 67, 66, 66, 24, 0,240,242,242, 34, 41, 41, 41,185,199,142, 29, 43, 96,129, 45, 94,132,236,170,201,100,121,120, -120,116, 78, 74, 74,250,180,108,159, 83, 20,245, 89,131, 6, 13, 62, 46, 47, 55, 65,192,178,239,138, 36,179,102,205,150,182,239, -241, 17, 0,160,253,224,189,200,143, 93,237, 71,101, 47,178,254,179,175, 18,249,249,249,251, 27, 55,110,204,100,101,101, 93, 5, - 16,103, 48, 24, 22,236,222,189,219,113,242,228,201,233,123,246,236, 89, 3,192,117,237,218,181, 61,138,138,138, 14,152,162,219, -165, 37, 6,190,218,210,191,131,167,135, 7, 46, 92,253, 29, 82,153,196,102,198,132, 64, 88, 88,176,248, 98,199, 73, 33, 46, 49, -123,230,229,123,216,101,130,201,106, 55, 98,196, 8,239,189,123,247,202, 0,224,222,189,123, 72, 77, 77,133, 74,165,130,153,153, - 25, 36, 18, 9, 24,134,129, 68, 34,121, 33, 38,203,218,195, 62,244,232,209, 99,102,118,118, 54,216,248,254, 44,188,149,158, 6, - 27, 75, 11, 24, 10,139,188, 95,178,138,162, 73,215,174, 93, 21, 60,207,163,168,168, 8,231,207,159,183, 54, 51, 51,179,118,119, -119, 95, 10, 19, 70, 79, 41, 20,138, 52,141, 70,227, 88,250, 58, 93,163,209, 56, 1,200,151,203,229,101,215,233,194,210,185,177, -205,137,113,120,190,153, 48,158,162,168,138,159,213,149,182,237,218,182, 12, 57,114,232, 71,139,188,130, 84,216,216,166,131, 70, - 30,182,109,219, 4, 51, 51, 43, 44, 93,186,136,125,210,167,151, 91,255,129,175,135, 68, 68, 69,247,121,233,204, 22,161,182,245, - 25, 60,206,206, 76,105, 89, 90,151, 24,176,115,251, 44,208, 52,141,143, 63,254, 24,205,155, 55,159, 26, 17, 17,241, 17,128,236, -154,101,176,173, 69,183, 81,118, 50, 69, 73, 17, 11,188, 1, 91,247,205, 43,209, 89, 56, 13, 99, 6, 55,156,250,193,136,199,191, - 52,111,132,130,210, 27,115,181,132, 70, 60,213, 30,229,134, 33, 56, 56,184,123, 96, 96,224,133,234,222,255, 3,112,193,255,243, -103, 85, 50, 95,108,112,112, 48, 9, 12, 12,164, 42,108, 92,165,247, 53, 17, 0, 56,216, 90, 43, 67,182, 44,155,101,193, 94, 63, -201,168,227, 31, 33, 89, 83,169, 34,175, 52, 68, 83,169, 84,142,219,185,115,103,165,144,146,167,147, 35,164, 82, 9, 36, 82, 10, - 54, 93, 75,178,215,231, 94, 10, 6, 69, 85,107,178, 42,105, 22, 21, 21,105,238,220,185, 99,177, 99,199, 14, 56, 58, 58,194,219, -219, 27, 74,165, 18, 10,133,162,146,185,170,104,184,170, 48, 90,149, 52,203,190,103, 89, 22, 52, 77,227,236,217,179,224, 56, 14, - 35, 70,140,120,206,100,177, 44, 91,157,113,171,110,120,234,105, 0,247, 8, 33,221, 74, 43,224,123, 0,186, 87,248,190,191, 74, -165, 90, 0, 96,141,177,154, 12, 67,192,104,174, 66,112, 15, 2,155, 48, 11, 58, 73, 0,206, 93,190,133,157,223,172, 7, 0,120, - 55,109,139,145,195, 2,203,163,113, 70,174,103, 57,110,110,110,251, 50, 50, 50, 7,244,234,213, 11, 57, 57, 57,134,101,203,150, -161,101,203,150,104,210,164,137, 81,101, 84,205,157,115,218,189,123,247, 60,212,106, 53, 8, 33,198,152,179,231, 52, 41,138,194, -238,221,187,161,209,104,158, 91,216,182,251, 42,204, 27,238,133,137,239,238,194,103, 15, 14, 96,243,230,205, 53,110,187, 18,104, -169,177,110,188, 65,198,112, 45,215, 44,122, 71,254,214, 91,111, 49, 19, 39, 78, 68,124,124, 60, 38, 79,158,172, 57,123,246,172, - 46, 53, 37,229,152, 76, 16, 54,234, 43, 27,227,106, 53,229,114,249, 15,167, 79,159,198,129, 3, 37,190, 36, 58, 58, 26, 62, 62, - 62,230,149, 76,114,246, 65, 20,196,109, 68,232,137,251,104, 63,120, 47, 66, 79,140, 5,159,123, 82,210,198, 7,121,166,236,207, - 58, 80,149,230,129,172,172,172,114, 19,181,103,207, 30,179, 61,123,246, 12, 5,112, 28,192, 1, 0,200,206,206,254,210, 68, 77, -128,194,196, 81,195,135,130,149, 90,226,254,163, 68,116,239,216, 26, 78,142,142,184, 23, 21,131,184,164,236, 52,138,194,132,254, -157,100,107,212,106,221, 71,151,238,226,219, 90, 52, 41,119,119,247, 38, 7, 15, 30,148, 86,136, 64,151,159,227, 12,195,148,191, - 47, 51,222,117, 57, 62,203, 76,150,165,187, 69,232,138, 77,157,205, 67,195,246,192,199,107, 32,108, 7, 6,226,219, 51,103,240, - 48, 34, 82,163, 43,230,122,255, 5,101,244, 71,105, 54, 25, 62,124,248,213, 31,127,252,209, 38, 33, 33, 1, 23, 47, 94,132,183, -183, 55,138,139,139,141,185,225,173,164,169,209,104, 28,203,126, 67, 81,148, 99, 89,224, 93,167,211,149, 21, 70,217,137,104, 83, - 97, 57,155, 26, 52, 61, 43, 44, 87,102,174,188, 94,192,182,203, 20, 82,233,193,163, 71,246, 89, 68,222,191,136, 86, 1, 29, 96, - 97,221, 12, 2,159,138,172,236, 66,228, 60, 74,198,202,149,159, 97,233,178,197, 56,254,211, 33, 11, 95,191,128,195, 58,142,107, - 12, 64,243,210,148, 59, 69,166,134,156,216,179,133, 34, 2,212,105,247,229,146,162,199,202,113, 99, 95,103, 70,143, 30,141,227, -199,143, 35, 34, 34, 98, 75, 13, 38, 43,164, 66,100,126,106,248,197, 3, 91, 64, 8,212,233,247,229, 82,245, 99,229,248, 55, 70, - 50,111,141,233,135,235,191,109, 64,191, 86,143,195, 93, 29, 49, 44,167,212, 98,179, 12,178,228, 10, 92, 33,161,184, 94,193,108, -157, 7, 64, 85, 48, 88,231,241,255, 62,152,255, 4, 6,149, 26,171,169,207,222,152,176,117, 49, 88, 0,224, 3, 88, 80, 50,105, -232,206,165,239,184, 42,227, 35, 88,109,248, 53, 36,107, 5,178,245, 41, 39,180, 6,204,110, 3,234,103,127, 83, 92, 92, 92, 20, - 19, 19, 99, 54, 97,216, 48,116,242,247,135,139,189, 61, 26,187,187,195, 76, 46,131, 76, 42,169,116,203,106,116, 27, 2, 69, 17, - 95, 95, 95, 12, 30, 60, 24, 18,137, 4, 74,165, 18, 22, 22, 22,144,201,100, 85, 70,179,140,189,203, 37,132,128, 97, 24,132,135, -135, 35, 46, 46, 14, 54, 54, 54,184,114,229, 10,122,247,238,253, 92, 84,171,162, 57, 51, 37, 68, 95, 69,197, 95,102,196, 78,155, -162,197,243, 20, 10, 73, 0, 20, 79,103,162,152,106, 13,173,150,131, 86,171,197,183,151,245,248, 61,166, 8,122,189, 14, 90,173, -182,166,255,172, 14,218,213,213,117, 92,227,198,141,103,140, 29, 59,214, 32,147,201, 80, 84, 84,132,226,226, 98, 68, 68, 68, 24, - 6, 12, 24,152, 59,120,112,160,245,201,147, 39, 73,105,211, 97,154, 9,218, 89,110,110,110, 30,165,205,179, 89,117, 57,170, 41, -138, 42, 55, 49,207, 50,225,203, 72,176, 76, 73,153,108,217,178, 5, 60,207,131, 16, 82,109, 33,105, 40,234,215,101,171,214, 89, -175, 13,250, 14,214,118, 78,184,112,225, 2,255,203, 47,191, 20, 80, 64,244,195,136,136, 47,255, 3,156, 58, 8,232, 77, 89,191, -156,156, 28, 51,111,111,111,184,187,187, 67, 16, 4, 24, 12,134,242,232, 75, 86, 86, 22,212,106, 53,236,204,115,241,138,189, 59, -184,130,243, 72, 9,255, 4, 46, 22,247,177,235,180,206,240,106, 19,220,253, 27, 92, 56,190, 47,157,234,121,215, 12, 55, 71,103, - 15,208,196,128,228,244, 44, 12, 29,212, 15,140,212, 2, 79, 18, 50, 17,208,172,145,203, 27,255,233,236,194, 80, 28,230,175,217, - 59, 3, 16,190,173, 77,174,176,176,144,191,127,255, 62,238,221, 43,241,187, 86, 86, 86, 48, 55, 55,175,116,142,211, 52, 93,175, -136, 86,153,201, 90,181,165,183, 57, 45, 41, 66, 62, 31,130, 29,187,111, 33,192, 55, 16, 91, 67,111,104,248,180,236, 62, 95,104, - 52,209,251,254,193,193, 12,103,103,231,105,130, 32, 44, 37,132,228,118,233,210,197,105,239,222,189,182, 73, 73, 73,184,117,235, - 22, 62,254,248,227, 12,158,231, 57, 66, 8, 69, 8,249,228, 5,252,157, 80,193, 96,189, 72, 36, 74, 5,222,117,176,162,134,176, -180,149, 55,151, 95,248, 36, 83, 71,142, 21,115,194,215, 0, 12, 53, 94,220,104,250,191,135,246,111,113,117, 80, 9,232,161,234, -133,148, 52, 61, 86,189, 63, 30, 89, 89, 5,248,118,251,106, 0, 50,232, 57, 6,221,122,188, 14, 71, 71, 55, 76,157, 50,213,121, -203, 55, 91,223,225, 4,225, 11,188, 36,164, 94,221,252, 19,128, 16,149, 74, 21,241,206,212,169, 42,111,239, 55,161, 80, 40,176, -111,223, 62,236,221,184,145, 15, 2, 70,202,129,115,211,129,159,106,212, 9,253,191,206,172,233,211, 85,126,126,211, 33,151,203, -241,219, 47,223, 67,147,186,187, 96, 80, 39,232,139, 53, 24,212, 96, 48,177,123,122,130,202,150, 72,240, 8, 0, 36, 10,164, 0, -120,182, 25,236,159,102,176,202, 56,137,255,247,203,154, 90, 41,162, 85,231,107,167, 68, 22,182,125,246, 24, 47, 39,104, 41,221, -229, 19, 72,210, 10,252,218,135,122,230,118, 30,153, 23, 85,133,201, 42, 61,176, 5, 79, 79, 79,244,106,211, 6,195,186,118, 5, -203,178, 80,200,164,176, 84,152,129,240, 37,145,172,178,166,195, 26,234, 68, 84, 21,125,178,183,183,135, 84, 42, 45, 55, 88, 38, - 68,179,170,212, 20, 4, 1, 44,203,226,222,189,123,232,210,165, 11, 60, 60, 60,112,224,192, 1,244,239,223,255,185,166, 68, 83, - 77, 86,153,209,122,166, 25,175, 63,128,178, 72,150, 73, 70, 75,163,163,144,169, 11, 0, 69,249,131,227, 0,158, 0, 90,141, 6, -132, 0,132, 0, 6,189, 14, 26,141,166,252, 63,141,105,146,117,118,118,246, 52, 51, 51, 91,254,225,135,243,253, 2, 2, 90, 33, - 35, 35, 3,130, 32,192,220,220, 28,197,197,197,176,178,178, 66,167, 78,157,158, 44, 95,190, 60,133, 16, 76, 53,209,100,213,155, -178,125,126,230,204,153, 74,205,134,101, 83, 81, 74, 34, 38,190,183, 7, 50,182,164,105,169,172, 15, 79, 77,215,221,158,221, 58, -227,234,237,104,238,191,243, 55,104, 37, 89,183,214, 56, 11,194,206,196,122,108, 23, 33, 4,153,153,153, 72, 75, 75,195,144,161, - 67,177,247,199, 31,241,244,233, 83, 52,107,214, 12, 61,123,246,132,163,163, 35,158, 62,125,138,223, 47,105,161,205,201, 70,182, -238, 22,148,150,237,113,244, 66,140,246,227, 45,250,152,191,240,130, 49, 4,192,120, 43, 43,171,134,197,197,197, 41, 28,199, 29, - 4,112, 16,192, 72,150,101, 71, 42,149, 74,151,252,252,252,199, 40, 25, 77,116,172, 54, 49, 51,133,194, 94,174,176,130,192,105, -193,178, 44, 60, 60,188, 65,120, 29,114,242,213,152, 48,122, 48,110,223,139,194, 47,231,174,115, 6,131,240,149, 49,187,149, 97, - 24,210,164, 73, 19,164,167,167, 67, 34,145,192,204,204, 12, 22, 22, 22, 88,184,112, 33, 54,110,220, 88,110,178,234,106,180, 38, - 1, 77,172, 60, 45,174,127,186,169,196,100,165, 38,167, 32, 45, 81, 2,149,189, 19,190,218, 24, 84,148,243, 52,181,253,119, 64, -244, 63,189,146, 21, 4,225,147,164,164, 36, 71,150,101,157, 57,142, 67, 66, 66, 2,110,222,188,137,153, 51,103,166,101,101,101, -245, 64, 29,183, 81,161, 80,164,151, 69,178, 74,155, 14,171,107, 78,204,173, 16,201,202,173, 65,178,186,102,194, 70,222,238,150, -103,183,175,159,227,217,182,125, 39, 90,201, 90,229, 20, 62, 74,237,114,249,226,133, 78, 51,215,127,251, 78, 92, 78, 97, 63, 0, -177,213,137,202, 37,146, 1, 29, 58,119,102, 65,210,192,202,186,224,179,181,163,145,145,153,143,156,236, 2, 72,165,230,208, 25, - 24,240, 2,133, 78, 93,186,226,251, 93,251,209,124,202,100, 70, 38,145,244,229,116,186,151,198,104,149,178,250,235,175,191,246, -244,245,245,197,206,157, 59,113,238,135, 31,240, 86, 94, 30, 46,208, 52, 99,144, 72, 28, 78, 25, 12,219, 80,139,209,170,168,211, -188,121,115,124,247,221,119,216,189,123,119,252,184,222,233,135,231,140,131,163, 94,143,215,110, 61,128, 93,131,193,192,173, 7, -176,123,213, 23,141, 57, 22,143, 40,170,114, 58,168,224,224,224,238, 21,231,255, 48, 82, 80, 77, 19, 59, 11,160, 71,112,112, 48, -169, 56,175,245,194,169,242,153,190,186, 95, 67, 47,255, 87, 60, 41,195,129, 13, 72, 40,226,116, 31, 61,208,203, 30, 22,146, 57, - 81, 64, 80, 13,119, 16,132, 97, 24, 88,154,153, 65,101, 99, 83, 18,230,167,105, 64, 0, 4, 3, 64,241, 37, 6,128, 8, 20, 8, -111,210, 5, 3, 50,153,172,202,142,239,166,246,205,170,168, 89, 80, 80,128, 39, 79,158, 96,234,212,169, 80, 42,149, 37,206, 61, - 53, 21, 94, 94, 94, 96, 89, 22, 73, 73, 73,248,237,183,223,208,176, 97, 67,200,229,114,147,220, 86,133,232, 82, 75,148,140, 50, -108,153,146,146, 98,229,226,226, 2,147, 35, 90, 2, 65,177,150,130, 78,199,227,225,195,135, 72, 78, 78,198,147,199,143,208,182, - 40, 31, 4, 12, 8, 33, 38, 69,180,220,220,220,252, 27, 53,106,180,117,205,154, 53, 82,119,119,119, 16, 66, 96,107,107,131,226, -226, 98,100,102,102,161, 89,179,102,240,240,240,192,154, 53,107, 0, 96,239,159,109,178,158, 57,166,202,141, 86, 69,195,245,222, -127, 60,145,157,109, 1,134,161,203,141,115, 45,125,180,164, 0,208,163,223,112,246,236, 47,167,204, 57, 96,121, 42,195, 44,103, -107, 47, 71, 3, 47, 8,202,234,190, 79, 72, 72,128, 68, 34,193,161,131, 7,145,157,150,134,128,128, 0,180,107,215, 14,143, 30, - 61,194,237,219,183, 97,111,111, 15,149,123, 71, 92,120,172, 71,100,178, 26,214,214,214,136, 73,164,255,202,148, 1, 83,250,244, -233,243,241,151, 95,126,233,232,236,236, 44,201,200,200,240,221,180,105, 83,192,166, 77,155,102,189,243,206, 59, 78,239,188,243, -142,173, 74,165, 98, 83, 83, 83,155,188,255,254,251,175,134,132,132, 52, 4,176,174, 38, 65,115,115, 75, 59, 70,106, 14,138, 98, - 97, 99,109, 11, 86,102, 14,129, 99,193, 11,128,149,181, 10, 87,111, 31,194,149,176,130,105,233, 89, 56,104, 84,124,172,180,220, -237,237,237,159,139, 84,207,156, 57, 19,219,183,111, 47,111, 70,172,171,201, 90,181,169,183, 5, 85,106,178, 82, 19, 88, 80,218, -134, 56,241,211,181,220,156,167,169, 93, 94, 6,147, 85,118,141, 35,132,224,241,227,199, 40, 46, 46,198,165, 75,151,240,201, 39, -159,100, 60,107,178, 28, 29, 29,167, 88, 89, 89, 45, 43, 44, 44,252, 44, 53, 53,117, 67,173, 55,126, 37, 38,170,236,117,217,188, -202,230, 68, 35, 87,213,171,170, 72,150,135,139,226,244,237, 75,123,188,172,201, 93, 10,113, 83,129,135,249, 17,150,161,142,221, - 6,182, 29, 68,183,222,188,162, 65,187,105, 11, 79, 39,228,107,124,171,139,108, 9, 60,223,218,220,194, 18, 64, 58,110,221, 60, - 95,110,178,178,178,243,160,213, 51,208,234, 40,104,244, 52,122,245,121, 13, 27,183,238, 70, 82,122, 54,120,158,111,241,146,153, - 44, 59,127,127,255,233, 35, 71,142,196,242,229,203, 17,242,229,151,186,183, 41, 42,159, 5,200, 73,158,135, 64, 8, 69, 27,215, -137,189,146,206, 23, 95,124,241, 19,128, 49,107,102,162, 99, 78, 33, 38,184, 14, 38,118, 13, 6,151, 44, 56,226, 67, 2, 0,118, - 25, 33,149,171,204,192,192, 64,170,172,101,205,212, 22,182,191, 59,108, 96, 96,224,133,224,224, 96, 84,156,215,244, 3, 75, 39, -223,129, 31,204,157,177,182,109,255,174, 84,202,220,190,200,206,215,112,139, 34,245,178, 68,117,205, 38,171, 34, 31,108,218,132, -219,209, 37,231,177,187,163, 35,230,191,241, 6, 8, 7, 92,137,136,196,254,144, 16,140,238,211, 7,230, 10,133,209,145, 13, 65, - 16,170,140, 98, 85,140,102,153, 26,117,202,205,205,197,193,131, 7,209,174, 93, 59, 40,149, 74,176, 44,139,150, 45, 91, 34, 42, - 42, 10,141, 26, 53, 2, 69, 81, 56,122,244, 40,134, 13, 27,134,216,216, 88,116,236,216,209, 34, 46, 46,206,100,163, 21, 25, 25, -105, 69, 8,233, 86, 22,253,168, 43, 90,173, 22,247,239,223,199,224,193,131, 97,107,107, 11, 55,183,189, 8, 57,189, 7, 74,255, -183, 64, 81, 48,201,104,241, 60, 63,105,208,160, 65, 82,138,162,160, 86, 23, 67,161, 48,131,185,185, 5, 44, 45,173,208,164,137, - 47,146,147,147,209,191,127,127, 93, 76, 76,204,230,148,148,148, 3,166,174,171,159,159,159,249,211,167, 79,223,106,208,160,129, - 12, 0,204,204,204,154, 53,106,212,104, 94,108,108,108,129,169, 81,173, 50,131, 69, 81, 20, 24,134, 41, 55, 90, 44, 77,195,197, -217,177,252,125,105,255, 52,170, 6,173,252,164, 44,173, 28, 0, 60, 61, 61,177,241,155,227,244,160, 65,131, 48,107,214, 44, 24, - 12, 6,108,222, 92, 50,200,110,236,216,177,208,235,245, 56,124,184,100,144, 36,203,178, 53,134, 77,110,222,188,137, 91,183,110, -193, 96, 48, 32, 47, 47, 15, 63,255,252, 51, 46, 92,188,136,125, 71,127,197,211,199,143,208,210,215, 11,147, 39, 79,130, 68, 34, -193,174, 93,187,208,165, 75,151,191,244,130, 32,145, 72,198,109,223,190,221,101,231,206,157,185, 71,143, 30, 45,234,208,161,131, - 60, 40, 40,200,113,227,198,141, 42,157, 78,135,217,179,103,167, 95,191,126, 93, 59,116,232, 80,243,109,219,182,185,188,242,202, - 43,125, 57,142,171,202,104,153, 3, 24, 13,224,205,156, 2, 29,155, 91,160,134,192,233,240,248,233, 19,228, 21,234, 32,240,122, -196, 39, 38,163, 80,195, 35, 43,187, 0, 45, 91,247,251,250,252,249,243,139,245,122,253, 34, 0,193,181,173,103, 68, 68, 4,174, - 95,191,142,167, 79,159,226,241,227,199,149,157,226,148, 41,216,189,123,183,201, 17,173,170, 77, 22, 3, 74,219, 8,193, 71, 67, -115,211, 31,165,188, 52, 38,171,244, 26,180,212,197,197,101,169,139,139,139,226,204,153, 51,214, 13, 26, 52, 0,199,113,186,103, - 35, 89, 61,122,244,248,104,251,246,237, 46,141, 26, 53,154, 9, 96,195,223, 97,221,105, 26, 83, 62,219, 50,221,193, 82, 22,159, -140,135,235, 74,115, 9, 50, 64,113, 62,112,254, 71,176,157,151, 60,153, 57,244, 67,219, 5, 59,151, 79, 17, 32, 84, 59, 66, 54, - 38, 54, 1, 91,182,108,196,156,217, 19,240,253,183,159, 65, 16, 88,104, 13, 12, 60,189, 59, 64,171, 23, 64,209, 44, 2, 90,183, -193,185,243,151, 32,161,129,131, 59,183,188,100, 62, 11,217,225,225,225,155,143, 30, 61,250,238,172, 89,179, 32, 8,130,108,217, -150, 45,234,140,140,140,213, 48, 45,255,213,179, 58,195,182,108,217, 18,189, 96, 99,198, 79,115,198,129,121,122,130,202,190,245, - 0,118, 35, 62, 36, 56,180,150,194,171,190,200, 86, 86, 93,197, 95,124,102,254,114, 24,173, 50, 39, 89,113, 94, 21,173,125, 26, -174,176,182,179,157, 68, 91,186, 57,204,159,245, 54, 27,155,170,193,225, 6,111, 20,254,246,195, 87,230,169,156,252,235, 24,104, -130, 76,249,227,253,191,253, 86,254,250,243,189,123,171,252, 46,101,196, 8,163,239,204,170,139, 98,153, 26,201, 2, 0,165, 82, -105,211,183,111, 95,244,238,221, 27,175,191,254,122,121,159,172, 86,173, 90, 97,223,190,125, 24, 62,124, 56,238,220,185, 3, 23, - 23, 23, 52,109,218, 20, 77,155, 54,197,169, 83,167, 76,189,200,129,231,121,248,251,251,151,141, 58,108,153,152,152,104, 85,215, -130,212,106,181,200,202,202,130,157,157, 29,100, 50, 25,218,183,111,135,119,223,107, 15, 7,151,239,224,239,231,139,162,162,162, -242,225,239, 70, 84,182,254,141, 27, 55, 70, 70, 70, 6, 50, 50, 50,160, 82,169,224,234,234, 10,103,103,103,172, 91,183,142,108, -216,176,225, 23,189, 94,191, 57, 51, 51,211,228, 72,150,179,179,115, 87,138,162, 62, 82,171,213,178, 10,119,184, 50,149, 74,117, - 76,173, 86,175, 78, 73, 73, 49,186, 35, 40, 69, 81,208,235,245,160, 40, 10, 39, 31,187,162, 72, 71, 33, 63,241, 22,102,253,199, -171,146,241,146, 72, 36,181, 54,151, 18, 66,138,198,140, 25,227,232,225,225,142,132,152, 8, 28, 58, 68,240,229,151, 95,150,141, -138, 68,116,233,141, 65,217,251,158, 61,123,194,219,219, 27,196,132, 92, 25,130, 32,224,222,189,123,216,123,236, 2, 92,188,252, - 16,255,240, 62,110,159, 58,129, 6, 42, 59, 52,111,221, 6, 6,131,161, 94,169, 55, 94, 4, 6,131, 97,135,143,143, 15,209,233, -116, 23, 0,108, 12, 11, 11,155,144,146,146, 50,251,248,241,227,174, 35, 71,142, 76, 62,113,226, 68, 16,128,157, 97, 97, 97,211, - 87,174, 92,217,155,227,184, 42, 71, 11, 50, 12,243,253,251,239,191,223, 99,228,200,145,148,148, 54,232,206,156,222,197,114,156, -129,250, 96,209, 14,254,252,229, 11, 52,199, 25,168,215,199,188, 47,156,250, 45,140,158,246,222,231,124,171, 14,131, 16, 30, 30, -238, 28, 24, 24,184,210, 96, 48,212,104,180,202, 34, 85,213, 69, 40, 25,134,193,132, 9, 19,176,111,159,241, 61,168, 38, 3,141, -172,188, 44,174,175,218,212,199,130, 98, 11, 43,152,172, 87, 16,124, 52, 52, 55,237, 97,242, 75,101,178, 0, 32, 43, 43,235, 27, - 0,223, 8,130,144,102,110,110,142,130,130,130,170,142, 63, 69, 88, 88,152, 66, 38,147,161, 95,191,126,118, 33, 33, 33,209, 52, - 77,111, 72, 78, 78,174,214,113, 84,213, 76, 88, 85,115, 34,234, 49,234,208, 86,133,192,246, 93, 91, 91, 62,176, 94,110,169, 96, - 53,119, 26, 68, 43,172, 40, 0,121, 90,167,199, 87,227, 70,231, 83,233,242, 86,109,122,190, 10, 43,214, 60, 48,151, 43,168,210, -104,209, 12,115, 59, 47, 39,119, 64,126,129, 14,151,175,132, 99,204,232,198,208,234, 41, 8, 2,141,194, 34, 45,192, 72, 64, 3, - 24,251,198,120, 16,138, 69,118, 90, 50, 24,134, 9, 3,199,225, 37, 99,225,244,233,211, 7, 44, 90,180,168,225,252,249,243, 49, -127,254,124,175,237,219,183,127,179,106,213,170,249, 25, 25, 25, 45, 80, 75,242,241, 26,116, 26,156,216,183,100,238,177, 75, 91, -243, 6,117, 82, 63,124,213,183, 36,242,245,170, 47,178, 37, 18, 60, 98, 25,100, 17, 82,185,155, 81, 96, 96, 96,247,138,243,127, - 24,207,118,130, 47,127,111, 84, 31,173,198, 13,221, 94,107,221,202,255,189,197,139, 22, 91, 70, 93, 61,143, 5, 43, 54, 18,159, - 54,125, 11,190,185,116, 91, 87,104,238, 61,160, 48,243,209, 21, 99,253, 5, 0,188,214,107, 56, 90, 54,107,247,220,151, 93,122, -150, 36,107,191,124,238, 38,210, 50,146,140,174,108, 75,205, 65,149,125,178,140, 25,210,255, 44,106,181, 58, 55, 60, 60,220, 49, - 49, 49,177, 82,199,119,111,111,111, 80, 20,133,208,208, 80, 92,191,126, 29, 99,198,140, 1,203,178,144, 72, 36,184,112,225,130, - 73,209,152, 10,209,165,178, 81,135,253,221,221,221,171, 27,109, 88,171,150, 90,173, 70, 94, 94, 30, 78,159, 62,141,198,141, 27, - 99,213,170, 85,112,117,113,194,226,197,115, 33, 8, 2,242,243,243,193,243,188,177, 17, 45,161, 44, 90, 36, 8, 2, 50, 50, 50, -208,176, 97, 67,108,218,180, 9, 65, 65, 65, 43, 83, 82, 82,142,155,186,142, 30, 30, 30, 54, 60,207,127, 48,104,208,160,190, 67, -135, 14, 69,255,254,149,243,177,254,248,227,143,150,135, 15, 31, 94,253,213, 87, 95,189,166,215,235,215,164,167,167,103, 24,163, -251,221,119, 37,233,151,148, 29,150, 98,193,200, 6,120,115,198, 46,172, 91,119, 4,114,185,188, 82,197,187,124,249,242, 26, 77, -140, 64,136,143, 52,243,106,242,220, 15,191,112, 92,189, 58, 4, 33, 33,233,160,105, 26, 46, 46, 46,160,105, 26, 79,158, 60, 1, - 77,211,240,242,242, 2, 77,211, 72, 74, 74, 42,235, 19,152,131, 42, 70, 61, 86,125, 23, 78, 67,163,209, 32, 33,254, 41, 18, 99, -162, 97,145,159, 10,149,149, 18, 57, 17,247,208,114,242,148,242,252, 79,127, 49,187,117, 58,221,238, 10,239,191, 56,113,226,132, -142,162,168,215, 81,210, 79,163, 44,162,177,146,227,184,149,213,137,116,232,208,161,213,162, 69,139, 36,101,233, 54, 92, 61, 63, -229,244,122,189, 0, 0,190, 45,187, 85,114,251,143, 30, 61,194,186,117,235, 80, 84, 84, 4,169, 84, 42, 53,102, 63, 8,130, 80, - 62,194,176, 42, 19,102,138,201, 2, 0,123, 47,247,175, 67,111, 93,224,239,198,108, 85,135, 61,248,217, 44, 37,158, 6,173,123, -121, 77,214,179,145, 45,119,119,247,165,130, 32, 16, 66,200,146, 10, 95,201, 61, 61, 61, 47,157, 57,115,198,158,227, 56,124,245, -213, 87, 54,169,169,169, 54,221,186,117, 91, 0,160, 90,163, 85, 85, 51, 97, 85,205,137,168, 48,234, 80, 46,151,219,233,116,213, - 6, 79,158, 27,117,200,243,104, 98,101,105,131, 28, 36, 66,235, 96,104,149,107,207,101,159, 77,153,114,199, 53,174,117, 51,115, -222,208,144,206,215,193, 77,105, 3,129,144,106,135, 70,107, 13,134,159,239,220,186,221,207,211,163, 49,115, 60,248, 34,134, 12, - 27, 9,173,150,134,198, 64,129, 98, 36,160, 24, 41, 90,180,108,141,166,205, 91,130, 0,184,249,251, 85, 78,103, 48,156,125,153, -202,222,165,243,187, 99, 40, 10, 27, 64, 4, 82, 69, 30,173,134,195,134, 13, 91, 13,224,189,218,116, 28, 59,188, 59,134,166, 75, -116, 42,230,209,122,255,221,233,136,248, 93, 98,125,241,214, 90,105,255, 14, 56,153, 17, 66, 65,169,248,255,168, 67, 9, 93,175, -212, 28,255, 20,195, 85,187,209,242,240,240,176,177,146, 43,190,123,103,242, 36,203,184,187,215,144, 26, 25,138, 43, 23,163,115, -246, 31, 62,146, 93,148,149, 62,217, 4,147, 85,222,204,103,239,220, 0,222,126,207, 27, 45,133,133, 10, 0,224,237,215, 14,140, -185,105,105,132,170,138,102,213,197,100, 85,188, 96, 87,149, 67,107,218,180,105,216,190,125, 59, 58,119,238, 12, 31, 31,159,242, -139,189,169, 81,179, 42,162, 75, 38,143, 54,172, 72, 65, 65, 1,188,188,188,176,109,219, 54,132,133,133,193,210,210, 18, 99,198, -140, 65, 65, 65, 65,185,193, 50,182, 51, 60, 33,228,209,153, 51,103,218,142, 26, 53,138, 72, 36, 18, 42, 55, 55, 23, 54, 54, 54, -216,180,105, 83, 81, 74, 74,202,201, 58,152,172,145, 82,169,116,238,232,209,163, 25, 95, 95, 95,164,165,165,193,202,202,202, 64, - 81,148, 4, 0,108,108,108, 12,102,102,102,152, 62,125, 58, 2, 2, 2,186,206,159, 63,191, 51,203,178,155,146,147,147,119,213, -116, 44, 81, 20, 85, 94,161, 78,222,112, 31, 58, 93, 73, 5,189,121,243,102,148,246,117,251,127, 19, 65, 76, 12, 96,196, 72, 22, - 11, 11, 11,248,248,248, 84, 89,246, 93,187,118,197,205,155, 55, 75,154, 38, 89, 22,142,142,142,184,114,229,138, 81, 35,169,202, - 18, 65,134,135,135,195,207,219, 1, 97, 33,103,224,160,148, 32,192,213, 25,238, 93,187, 35, 58, 58,250,175,140,102, 81, 40,233, -135,209,167,244, 24,220, 1, 96, 90,133,247,155, 0,124,109,138, 32,199,113,132,166,105, 42, 33, 33, 65,175, 84, 42, 41, 59, 59, - 59, 86, 46,151, 67,171,213,150, 27,174, 71,143, 30, 33, 56, 56, 24,137,137,137,176,179,179,163,173,173,173,161,215,235,115,140, -209,111,210,164, 9,156,157,157, 43,117,124,159, 60,121,114,157, 76,214, 4,192,127,251,167,107, 26,200,105,198,218,207,225, 53, - 60,190,255, 68, 67,235,160,248, 55,152, 44, 0,200,205,205,253, 6,192, 55,101,239, 29, 28, 28, 38, 50, 12,179, 88,171,213, 90, - 95,184,112,193, 70,165, 82, 81,187,118,237, 50, 44, 89,178, 36,151, 97,152, 28,138,162,214,255,245,230, 16,145,153,121, 49, 94, - 18, 91, 87,225,174,134, 92,157,157,176,160,105,142,164,177,138,106,238,143, 97,233, 81,151, 39,114, 49,157,210, 82, 82,105, 2, - 33,178,134,107,240,142, 5,139,150,127, 16,125,255,182,167,194, 74,129,105,211, 23,225,228, 47,231, 64,209, 18, 92,186, 26, 10, -157,158, 71,102,118, 30, 70,143, 29, 7,119, 23, 7, 68, 94, 63,157,193, 9,194,166,151,203,100, 11, 27,251, 13,153,104, 43, 55, - 83,150,238, 19, 30,187,191,157, 11,154,222,128,143, 63,254, 24,254,254,254, 51,194,195,195, 63, 65, 45,121,180, 40, 74,216,216, -162,251, 88, 91,169,188, 68,135, 8, 60,182, 29, 92, 80,154, 71,107, 14, 54,125,115,184, 69,115,239,199,203,106,202,163,245, 18, -153,172,138,243,154,141,150,151,151,151,220, 92,130,169, 18,134,157,255,206, 27, 67, 85,233, 49, 17, 72,140,186, 93,210,188,160, - 87,235, 83, 31, 70, 25,147, 10,189, 15, 42,231,239, 32, 53, 53, 93,105, 52, 70,221,209, 87,210, 44,171,112,159,141,102,153,104, -178,158,211,172,104,182, 42,230,205,242,240,240,192,234,213,171,141,201,163,245,236,182,151,209, 31, 37, 29,224, 43,118,134,239, -111,164,201,170, 82, 83,165, 82, 33, 43,171, 36, 67, 66,143, 30, 61,208,163,199,255,199, 51,232,245,250,242, 40,150,165,165,101, - 85, 17,173,231, 52,205,204,204, 22, 28, 57,114,100,210,213,171, 87, 71,205,155, 55, 79,210,187,119,239, 50, 51, 87, 12,227,158, -237, 86, 73,147,231,249,233,167, 79,159,102, 4, 65,192,182,109,219,112,243,230, 77,162, 84, 42, 63, 82, 42,149, 27,205,204,204, -120,181, 90, 61,109,202,148, 41,227,150, 45, 91, 70,119,237,218, 21,215,174, 93,163, 27, 54,108, 56, 30,168,148,196,178,202,109, - 15, 13, 13, 5, 77,211,224,178,227, 49, 99,193,126,152,155,177,184,127,255, 62,178,179,179,159, 75, 98,106,204,254,172, 24, 41, - 41,155,186,118,237, 90,222, 12,217,190,125,123, 48, 12,131, 59,119,238, 84,215, 12, 91, 81,147,216,219,219,151, 31, 31, 82,169, - 20,231,206,157,195,138, 21, 43,224,105,103,131,156,168, 48, 56,247,232,133,190,147,166, 96,204,152, 49, 96, 24, 6,118,118,118, -229,145, 95, 35,142,165,250, 80, 81,115,146,159,159,223,248,200,200, 72,247, 22, 45, 90,184,132,135,135,247,244,247,247,247, 10, - 11, 11, 43,123, 47,135,113,125,115,202, 53,111,220,184,113,104,227,198,141,211, 39, 76,152, 32, 21, 4,129,143,139,139, 51, 0, -160,156,157,157,153, 27, 55,110, 8,199,143, 31,135, 90,173,134,187,187, 59,237,230,230, 70,157, 61,123, 86,136,138,138, 10, 37, -132, 44, 50,102,219,121,158,175,148,198,161,236,245,143, 63,254,104,242,249,222,160,105,147, 85,189,187,249,122,100, 38,223, 65, - 74, 82, 12,248, 60,149, 62,248,232, 9,173,137, 38,235,143, 46,163, 63, 83,115,249,195,135, 15,221,180, 90, 45,100, 50, 25, 54, -111,222,172, 95,189,122,117,100,102,102,102, 23, 84, 61,162,188,146,102, 29, 71, 29,102,215,160,249,220,168,195,188, 44,156, 60, -122,236, 70, 91,139, 97, 59, 48, 35, 57,163,188, 99, 35,161, 40,187, 35, 78,205,186, 40,219,181, 72,162, 79, 45,165, 11,248,226, -147, 53,108,187, 78,173,211,141, 28, 54,124,236,175,251,246,237,181, 88,178,116, 41,174,132,134, 33, 43,183, 16, 2, 97, 32, 80, - 20, 22, 47, 94, 2,103, 7, 59,228, 39, 63, 44,214,234,245,195, 80, 57,135,214, 63,190,220, 41,138,158,121,246,248,174, 13, 52, - 5,161, 40,237,129,156, 41,136, 81,190, 57,102, 24, 59,114,228, 72, 28, 57,114, 4,225,225,225, 91,107, 48, 89,229,154,132,208, - 51,195, 46,236,223, 64, 1,130, 58,227,129,156, 45,124,172, 28,255,198, 48,118,204,152, 49,248, 41,248, 42,246,157,120,188,101, -223, 9,156,192,203,141,233,153,225, 45, 89,132,119,105,214,200,173,107,235,230, 10,150, 87, 35, 49, 42, 6,217, 69, 26,156,141, -136,203,165, 9, 93,231,220, 58, 37, 23, 72, 41,226,227, 31, 86,113,103,165, 40,173,208, 53, 38,105,210, 52, 93, 41,154, 85,159, - 72, 86,197,245,116,114,114,170,244, 56,151,138, 21,119, 89, 31,160, 58,164,118, 88, 16, 31, 31,111, 21, 31, 31, 15, 66, 8, 66, - 67, 67,173,218,183,111,191,160, 62,209,172,185,115,231,150, 71,173,158,157, 87,245, 89,109,148,118, 74, 15, 50, 24, 12, 7,231, -207,159, 63,163,125,251,246,253,150, 46, 93, 74,193,132, 7,240, 62, 19,205,225, 4, 65,192,249,243,231,113,228,200, 17, 94,175, -215, 79, 77, 73, 73, 9,171,176,200, 87,183,110,221, 58, 59,124,248,240, 93, 15, 30, 60, 96, 34, 35, 35, 65, 72,237,227, 78,213, -106, 53,124,124,124,192,113, 28,214,206,240, 64, 65, 65, 11,112, 28, 7,158,231, 97,110,110, 94, 30,197,171,104,158,107, 59,142, -120,158,127,206,104,133,134,134,130, 97, 24,116,233,210, 5,183,111,223, 46,143,104,213, 22,129,210,235,245,241, 78, 78, 78, 78, -203,151, 47, 47, 95,175,140,140, 12,156, 57,115, 6, 29, 58,118, 66,179,169,211,144,156,156,140,245,235,215,195,213,213, 21,171, - 86,173, 66,118,118, 54, 56,142,251,179,195,233, 3, 34, 35, 35,221,223,120,227,141,244,176,176, 48,247,224,224, 96,155,192,192, - 64,243,177, 99,199,166,135,133,133,185, 83, 20,213, 9, 38,118,130, 22, 4, 97,225,226,197,139,127, 89,181,106,213,130,247,222, -123,175,253,132, 9, 19, 36, 18,137, 68, 72, 74, 74,226,246,238,221, 75,249,248,248,208, 82,169,148, 58,125,250,180,240,251,239, -191, 95,231, 56,110, 45,128, 75,166, 68,156, 43,154, 44,134, 97,140, 53, 89,149,152,237, 40, 31,111, 73,103,116,217,184,121, 53, -237,235,237,174,255, 97,239,153,132, 75,215, 30,198, 50, 90,110,246,119, 53,164, 6,120,153, 97, 24,230,128,159,159,223,196,153, - 51,103,154,245,239,223, 95,190,108,217,178,188,130,130,130,234, 76, 86, 21, 55,204,127,202,168,195,111, 23,206, 11,158,253,126, -139,137,141,254,235,220, 0, 33, 69,233,200, 97, 25,218,202,134, 70,107, 47, 6, 5,153,143, 84, 39,126,221,249, 4, 64,109,121, -217,110,220,186, 23,222,167,121,139, 86,135,215,174, 90,235,248,209,135,243, 37,135,131,127, 6,225,244, 8,189,112, 1, 22, 82, -158, 68,221, 10, 73,211,234,117, 67,241, 18, 62,130, 39,229,202,215,251, 0, 28,179,179,179,187, 59,105,194, 4, 31, 63,191,177, - 80, 42,149, 56,116,232, 16,118,127,245, 21, 31, 4,140,146, 3,183,167,215,146, 79, 47,253,122,185,206,157, 41,147, 38, 53,105, -221,250,191, 80, 42,149, 56,120,240, 32,118, 5, 5, 25,173,243, 15,167, 44, 51,252, 73,252, 63, 67,124, 45,125,180,104,170,224, -250,195,184,194,208,135,113,133, 16, 8, 17, 8,209,210, 52, 18,138,244,250, 85, 15, 31, 39,213,201, 20,148, 53, 29,174,252,116, -230,139,107,243,168, 96,126,234, 58,164,187, 10,147,149, 88,241, 25,105, 21, 43,233,234, 94, 27, 12,134, 68, 35,229,215,120,122, -122, 62,247, 89,221, 67,191,196, 36,147,101,108, 30, 45, 0,200,202,202, 74, 1,240,209,181,107,215,126,236,215,175,223, 20, 0, - 73,117, 44,163,109,221,187,119,159, 10,128,161, 40,106,107,114,114,114,216,115, 39,124, 74, 74,180,171,171,235,231,222,222,222, -211, 74,110, 76,169,109,181, 84,228,143, 91,180,104,161,175,170, 44,170,123, 47, 8, 66,173,101,148,155,155,139,118,237,218, 61, -247, 76, 75, 66, 8,226,226,226,202, 34, 78,229,251,190, 38, 3, 87, 88, 88, 56,237,221,119,223,253, 70, 34,145,120, 2,160,202, - 76, 46,207,243,204,215, 95,127,173,224,121,158, 1, 64,209, 52,205, 73, 36, 18,205,145, 35, 71, 56,142,227,226,181, 90,237,180, - 63,249, 2,113,144, 42,121, 20, 67, 81,100,100,164,111,105, 36, 43, 49, 60, 60,252,206,190,125,251, 84, 0,246,215, 81,247, 82, -113,113,241,165,213,171, 87,119,221,188,121,243,194,105,211,166,181, 27, 51,102, 12,219,163, 71, 15,156, 60,121,146, 63,127,254, -124,168, 90,173, 94, 99,138,193, 42, 45,203, 60, 15, 15,143,114,195, 85,203,185, 92, 99, 71, 94,123, 47,249,198,113,111,187, 42, -182,173, 57, 83,152,153,172,187,106, 40,212, 45,218, 9,132,227, 95, 76, 90, 90,218, 60, 0, 75,214,175, 95,159, 28, 16, 16, 32, -151, 74,165, 58, 99, 77,214,159, 8, 39,228, 22, 14,252,178,239,136, 99,221, 23,191,235,221,183,103, 23,165, 71, 3, 71,183,168, -152, 52, 60,186,118,178,232,238,137, 79,159, 18,109,206, 16, 0,198,244, 92,255, 93,171,215, 55,158, 59,127,238, 12,153, 68,210, -143,231,249,150,189,207, 30, 37, 12,195,132,233, 12,134,179,165,205,133,154,151,184,200, 87,126,254,249,231, 62,126,126,126, 56, -116,232, 16,206,238,217,131,209,153,153, 56,199, 48, 12, 45,149,218,159,208,235,191,128,113, 6,105,229,186,117,235,154,248,251, -251,227,192,129, 3, 56,189,107, 23, 70,213, 77,167,186,186,174, 45, 0, 85,233,219, 76, 0, 15, 0,188, 10,192, 12,128, 22, 37, -143,118,114,168, 88,133,149,126, 87,246,253, 69,138,162,254,200,142,176,181,103,134,127,150,240, 71, 79, 95,125,209,107,161, 86, -171,179,125,124,124, 76, 26,115,109, 48, 24,106,108,195,229, 56, 46,177, 81,163, 70, 70, 71, 45,140, 49, 69,217,217,217,109,254, -192,194,168, 87, 95,172, 74,149,136, 32, 60,117,113,113, 17,202, 42,253,170, 76, 88, 85,159, 17,224,137, 41,255,147,154,154,250, - 0,192,251,117, 93,207,228,228,228,195, 48,226,161,209,198, 46, 7, 0, 57, 57, 57, 47,252, 97,190, 20, 33, 73,203,150, 45, 51, -201, 96,131,144,154,204,103, 88, 97, 97, 97,123, 99,254, 91,175,215,227, 47,101, 63,176,208, 0, 0, 32, 0, 73, 68, 65, 84,228, - 64,233, 68,135,135,135, 79,161, 40,170, 63, 74,154, 4,182,226,197,100,243,190,148,159,159,127,233,179,207, 62,235,186,109,219, -182,217,132, 16,228,231,231, 7,153,106,176,202,239,158,211,211, 79,190,168, 13,207, 78,211,253,182,119,107, 98, 47,117,174,126, -246,246, 66,221, 46,136,148, 7,163, 8, 33,223,191,249,230,155, 29, 0,236,172,175, 88, 53,163, 14,235,203, 19, 33, 39, 47,224, -220,220, 21,147,206,217, 88, 14, 2,207,250, 66, 71,159,128, 46,235, 36,128,239, 96, 92, 55,135,242,237,229, 4, 97, 29,167,211, -173,171, 80,185,252, 27,202,217,206,223,223,127,246,196,137, 19,177,100,201, 18,156,254,226, 11,253,219, 20,149, 39, 1,200, 47, - 37, 55,154, 52, 5,124,104,172,206,248,241,227,177,100,201, 18,156, 90,187,182,174, 58, 53,161,162, 40, 42, 24, 0, 22, 44, 88, -176,104,245,234,213,182, 11, 23, 46,108,185,102,205,154, 85,165,239, 35,202,190, 47,173,235, 2, 23, 46, 92,216,188,194,247, 5, - 0,110,252,193,251,179,202,204,240,127, 52,125, 68, 77, 81, 83,212, 20, 53, 69, 77, 81, 83,212, 20, 53,235, 3, 33,100, 80,201, -172,250,121,117,175, 43,204,255, 18, 88,136,136,136,136,136,136,136,136,252, 3,169, 24,197,170,203,247, 47,144,178, 62, 90, 21, -217, 6,148, 12,235,174,206,149,154, 50,234,161, 46,206, 54, 68,212, 20, 53, 69, 77, 81, 83,212, 20, 53, 69,205,127,157,102,109, -218,207,253,158, 16, 50,136,162,168, 96, 66, 72, 96,117,243, 50, 99,245,236,235, 10,243, 23,214,237,160, 10,202,250,102, 61,215, - 71,235,143, 70, 12,171,138,154,162,166,168, 41,106,138,154,162,166,168, 89, 47,202,154, 0, 1,144, 5, 11, 22, 44,252, 27, 54, - 29,186,148,154,172,138, 19,128, 26,154, 14, 9, 57,200, 36, 37,193, 74, 38, 83, 74, 1, 64,167, 43,214,187,185, 33,159,162, 70, -254,149, 15,188, 21,249,103, 82, 54,220, 59,237, 5, 47, 43, 34, 34, 34, 34,242,239, 32,163, 44, 82, 5, 32, 3, 0, 85,250, 94, - 87, 58,207, 40, 53,100,207,190,174,244,253, 31, 72, 10,170,137,100,177,213,153,172,204, 76,165, 3,203,230, 52,225,121, 77, 83, - 0, 96, 89,250,126,102,166,109, 52, 33, 7, 51,235, 98,182, 28, 28, 29,111, 73, 24,198,205,152,101, 13, 60,159,148,153,150, 86, - 57,117, 60, 69,189, 12, 6,207, 88, 19, 81, 31,179,241,135, 27, 21, 7, 7, 7, 39, 39, 39,167,255, 88, 89, 89,117,204,205,205, -253, 61, 35, 35,227,167, 26,158,123,184,154,162, 48,191,228,184,194,103, 0, 22,214, 32,109,202,178,207,226,163, 84, 42,103, 80, - 20,229, 95,122,130,133, 23, 23, 23,111, 6,240,240, 95,120, 65, 50, 3, 48,148,101,217,241, 14, 14, 14,237, 82, 83, 83,151, 1, -168,107, 54,111, 22,192, 92, 27, 27,155,209, 54, 54, 54,141,178,179,179, 99,243,243,243, 15, 0, 88, 7,160,214,161,210,203,222, -115,233,216,163,127,143,143,206,159, 62,191,114,217, 87, 41,215,158,251,126,174,139,125,191,190,157,151,156, 63,113,117,249,162, - 77,201,217, 38,174, 27, 93, 58, 1, 37,163, 35, 9,158, 79,246, 90, 95, 36, 0, 6, 3,232, 1,224, 60,128, 19,198,108,119, 53, -116, 0,176,168,116,157,215, 1, 56,247, 55, 63,142,204,157,156,156,214, 2, 24,204,178,108,100, 82, 82,210, 84, 0,137,127,241, - 58,177, 0,218, 2,240, 71, 73, 26,142, 27, 48, 46,133, 67,173,216,219,219, 7,178, 44, 59,163, 52,181,203,230,172,172,172,224, -191,107,193,200,100,178, 32,103,103,231,255,170,213,234, 98,138,162, 72,197,124,143, 28,199, 37,102,102,102,182,121,217, 46,106, - 20, 69,221,248,155,175,226,212, 42, 62,171, 62,143, 86, 82, 18,172, 88, 54,167, 73,122,106,216,232,228,148,123,163, 0,192,213, -165,229, 1, 71,231, 22,251,147,146,100,122,103,223, 97, 22, 18, 37,187,153, 97, 36,173, 52, 58,173,131,132,149,100,234, 57,195, - 29, 90, 71,102,164, 62,248,169,202,100,139, 18,134,113,123, 26,125,206,145,211,103, 67,162,112,133,196,204,179,218,181,117,117, -117,173,211, 86,218,218, 54,178,212,203, 21,179, 37, 18,166,175, 64, 56,127, 34, 0, 52, 37, 9,231,120,195,175, 82,173,246,203, -156,156,216,130,186,238, 65, 95,123, 56, 19, 96, 12, 40,244, 5,193, 89, 10,216,247, 32, 11,169, 38, 72, 24,107, 34,234, 99, 54, - 42,254,118, 61,128,121, 47,250, 72,114,115,115,179, 13, 12, 12, 12, 90,177, 98,133,153,133,133, 5, 21, 31, 31,223,255,195, 15, - 63,236,118,243,230,205,247,147,146,146,146,159, 53,125, 20,133,249,130, 64,104, 0,160,105,234, 67,149,202, 81,201, 48,204,115, -185,141,120,158, 87,102,100,164,207, 20, 4, 66,149, 46, 59,159, 16,108, 48,198, 48, 42, 20,138,177,254, 45, 90,189,191,246,243, -117, 22, 78,142,142,230, 28, 47,232,159,196, 61, 85,126,180, 96, 94,251,152, 71, 15, 55,104, 52,154,189,117, 57,175, 25,134, 25, - 45,151,203, 3, 1,248,149,126, 22,165,213,106,131,121,158,223,111,108,133,238,228,228,116,145, 97,152, 6,166,252, 49,207,243, -241,105,105,105, 93,234, 88, 68, 35, 61, 61, 61,191,235,222,189,187,178, 93,187,118,144,201,100, 88,178,100,201,220,148,148,148, -218,140, 22, 11, 96,174, 82,169, 28,109,110,110,222,168,176,176, 48, 70,173, 86, 31,150,201,100,125, 54,108,216,224,209,185,115, -103,203,180,180, 52,138, 97, 24,167, 83,167, 78,189, 21, 20, 20,212,159,227,184,222,181, 85,114,121, 49,228, 35,249, 96,191,174, -121, 49,231, 62, 2, 48,224,217,239, 57,141, 98, 60, 97, 60, 2,213,228,118, 66,169,249, 48,218,100, 73, 36,146, 13,206,206,206, - 19, 53, 37,185, 2,200,179, 21, 14, 0,232,116,186,156,220,220, 92,223,186,156,242, 0, 38,219,216,216, 76,252,224,131, 15,108, - 7, 12, 24,128, 61,123,246,188,179,125,251,246,156,252,252,252,239, 81,146, 8,243,129,137,154,243, 83, 83, 83, 7, 74, 36, 18, -202,195,195,131, 81,171,213,166, 24,173, 38, 40,121, 8,243, 13, 0,155, 81,146,186,160, 39, 80,114,190, 3,248,172,204,184,209, - 52,189,217,215,215,247, 63, 81, 81, 81, 91, 0,172,172,235,185,238,236,236,252,205,166, 77,155, 70, 13, 25, 50,132,201,200,200, -112, 11, 8, 8,248, 49, 53, 53,181,235, 11,184,140, 76,146,203,229,115, 90,182,108,217,236,193,131, 7,209,249,249,249,235, 74, -247,103, 77,231,148, 59,128, 62, 54, 54, 54,189, 23, 47, 94,108, 17, 24, 24,136,109,219,182, 13,220,190,125,123, 97, 65, 65,193, -175, 40,233,211, 83, 47, 19,200,178,236,140,196,196, 68, 7, 66, 8, 92, 92, 92,102, 0,248, 91, 26, 45,154,166, 55, 12, 31, 62, -124,226,143, 63,254,168,124,250,244,169,210,205,205,173, 60,121, 54, 69, 81,117,174, 63, 69,234,205,182, 10,134,171,246, 60, 90, - 50,153, 82,202,243,154,166,201, 41,247, 70,117,235,254,181, 53, 0, 92,188,240,238, 40, 71,231,230,225, 50,153, 50, 90,110,165, - 56, 50,124,112,159, 86, 35, 2,187, 83,238, 46,142, 72, 76, 73,119,250,118,223,233,215,130, 79,159, 59,130,146, 4, 98, 85,194, -233,179, 97,166, 15,193,131,203, 95,193,161, 71, 50, 54,158, 74,196,181,187, 79, 80,156,151,137, 6,206,102,248,124,118, 63, 56, -219, 42,235,118,235,229,232,211,147, 99,229,251,223, 24,251,166,245,127,134,250, 73,188,156,157, 65,136, 28,209, 49,133,157,126, - 62,115,174,237,225,131,123,103,152, 75,124, 70, 23,165, 63, 52,250,226,214,218, 5,102, 69,122, 12,101, 25,234,173,206,109,154, -245, 30, 59,176, 43,221,204,175, 49, 34, 35,162,250, 29,251, 45,244,115,250,106,196,175, 28, 79,126, 48,151,226,232,237,148, 26, - 19,250, 61,103, 56,122,247,238,211, 85, 46,151, 87, 74,158,164,213,106,165,191,254, 26,210,161, 46,102,163,236, 63,116, 58, 45, - 45,145,200, 64,211,212,251,254,254, 45,252, 50, 51, 51,207, 81, 20,245, 93,114,178,105,209,130,119, 1, 89, 14,203,190, 74,203, -229, 46,188, 78,103, 15, 0,148, 76,150,243,132,166, 91, 44, 94,180,200,130, 97, 24, 33, 43, 43, 11,197,197,197,212,255,216,187, -238,176, 40,174,245,253,206,238,178,125,233, 93, 64,196, 2, 4,187,162,198,136,193,142,221,216,107,236, 29,123,195, 24,107,172, - 81,163,209,168, 88, 98, 20,123, 55, 98, 67, 65,177, 96, 7, 4, 69, 80,233, 44, 75,103,129,237,187,179, 51,191, 63, 40, 23,149, -178,104,146,123,239,239,238,251, 60,251,192,204,206,188,123,230,156, 51,115,222,249,190,115,190,111,234,212,169,188,247,239,223, - 15, 17,139,197,187,106,121, 35,193,193,131, 7, 61, 28, 29, 29, 63,201, 30, 43,145, 72, 56,131, 6, 13,252,156,166,247,104,217, -170,205,130,155, 55,111,120, 21, 23, 20,170, 14,238,216,255, 66,199, 19,168, 27,122,121,154,236, 61,112,212,124,218,196,177,115, -222,188,121, 21,133,186,229,171,171,207,231,243, 47,108,219,182,173,121,215,174, 93, 77,236,236,236,144,157,157,141,184,184,184, -230, 97, 97, 97,223, 29, 61,122,116,145, 82,169, 28, 2, 24,148, 16,213, 61, 52,232,176,157,208,202, 26,122,157, 14,245, 90,182, -169,136,111,246, 46, 44, 4,164, 86, 11, 74,167,131, 87,255,239,202,172,201, 52,188,188,188, 62, 55,234,110,189,102,205,154, 29, -219,184,113, 35, 91,173, 86,227,201,147, 39,184,115,231, 14, 37,145, 72,106, 11,136,203, 34, 8, 34,100,245,234,213,206, 62, 62, - 62,166,121,121,121,208,235,245, 54,151, 46, 93,154,213,186,117,107, 51, 23, 23, 23, 78, 80, 80, 16,100, 50, 25, 72,146,180,106, -212,168,145,213,232,209,163, 53, 65, 65, 65,139, 0,108,169,206,146, 85,252,158,254, 81, 66, 52,234,237,217,118, 60,178,136, 27, -189, 23,244,198,117,179,198, 68,133,101,171,119,163, 70,166,197, 98,193, 50,145, 89, 11,171, 98,241,237,101,189, 27, 53, 58,120, - 35,209,160,151, 33, 70,217, 96, 51,230,212,169, 83,130,184,184, 56,129,151,151, 23, 40,138,170,136,192, 95, 30,112,214,221,221, -253,115,234,113,243,140, 25, 51,150,141, 24, 49, 2, 45, 91,182,172, 8,138,186,106,213, 42, 44, 91,182,204,242,222,189,123,139, - 78,158, 60,185,232,226,197,139, 91, 0, 4,212,209, 26, 83,142,186,182,241,218,164,164,164,225, 23, 46, 92, 24,187,116,233, 82, -119, 0,254, 0, 86,230,231,231,251,150, 89, 99, 56,101, 66,107,210,162, 69,139,102, 6, 4, 4,160,111,223,190, 43,159, 60,121, -178,225, 51,173,124, 76,146, 36,251, 14, 26, 52,136,169,211,233, 32, 20, 10,161,211,233, 26,127,169, 81, 2,192,158,233,211,167, -207,156, 49, 99, 6, 44, 45, 45,161,211,233, 60, 78,157, 58,117,112,229,202,149, 29, 1, 76,174,166,172,227,103,206,156, 57,116, -220,184,113,240,246,246, 6,139, 85, 90,141,219,182,109,195,186,117,235, 68, 33, 33, 33,223, 5, 5, 5,125,119,249,242,229,243, -248, 48,109, 87,157, 64, 81, 20, 88, 44, 22,210,211,211, 97,103,103,199,165, 40,234, 38, 65, 16, 7, 10, 10, 10, 46,254, 7, 13, -230, 63, 15, 31, 62,124,204,137, 19, 39, 68, 0,176,117,235, 86, 44, 88,176, 0,246,246,246, 16,137, 68, 70,169,243,159, 99,209, -154, 86,171, 69,171, 54, 40, 20,138, 54,203,231,126, 15, 6,163,244,173,177, 73,195,250,216,244,195, 52,226,114,240,205, 54, 53, -218,224,121,245, 16,255, 96, 23,184, 46,243,161,214,145,120, 28,157,132, 91, 91,253, 74, 71,203, 62, 43,160,214,118, 47, 31,108, -172, 56,124,254,207, 26,189,254, 33, 28, 28,158, 32, 53, 53,183, 54,145,101,235, 96, 31, 28, 24,184,133,223,188,177, 39,180,164, - 14,226, 28, 49, 8,130, 11,103, 39, 83, 76, 26,223,199,196,215,183,158,205,218,181,251,175,102, 81, 24,172,200,123, 91,107,192, - 80, 15, 27, 28,105,211,220,125,196,232,126, 62,220, 22,205,155,129,205,229, 87,124,215,214,219, 27,109,189,189, 25, 1,178,146, -158, 79,159,189,232,121, 46,228,177, 90,161, 75, 61,147,144,135, 9,181, 60,100, 42, 4,199,188,121,243, 96,111,111,255,193, 1, -217,217,217, 8, 11, 11,173,242,156, 58, 60,200, 42,126, 99,195,134, 13,166,133,133,133,125, 14, 29, 58,212,141,162,168, 13, 89, - 89, 89, 15, 12, 33, 25, 7, 52, 40,226,114,187, 79,220,190,157,106, 61,112, 32,211,194,193,129, 65,233,245, 68,102, 98,162,245, -142, 93,187,186, 20,188,123,199,151, 91, 89, 21, 20, 42,149,138,132,132, 4,240,120, 60,130,197, 98,181,171,130, 42,155,166,241, - 51,131, 65, 44, 35, 8, 2, 92, 46, 47, 97,198,140, 25,145,101,223, 53,184,114,229,138, 96,192,128, 1, 10, 0, 41, 0,192,229, -242,156,152, 76,134, 71,105, 36,118,252,108,136,192, 20, 10,133,115,215,111,220, 34, 44, 46,144, 42,181,114,185,206,214, 76, 68, - 16, 34, 83,102,113, 81, 73,137, 88,146,171, 94,177,102, 29,115,250,164,113,115,229,114,249, 44, 67, 69, 86,171, 86,173,158, 94, -184,112,193,206,218,218, 26, 82,169, 20,249,249,249,120,250,244, 41, 40,138,194,144, 33, 67,184,223,116,104,223,230,135, 21, 63, - 62, 74, 23,139, 59, 26, 34,182,132, 86, 54,216,234,211,186,116,176, 78,201,175,104,159, 3,195,251, 87, 28,179, 46,163,168,220, - 58,247, 37, 41,164, 58,118,239,222,157, 13, 0,147, 39, 79, 46, 46, 41, 41,217, 4,224, 4,106,143,232,191,232,199, 31,127,116, -106,216,176,161,235,137, 19, 39, 32,147,201, 0,192,174, 97,195,134,240,240,240,208,223,189,123, 23, 30, 30, 30, 48, 53, 53,197, -189,123,247,240,232,209, 35,120,123,123,155,178,217,236, 17, 90,173,182, 74,161,213,197,175,203,143,220, 1, 94,157, 61,219,142, -135,200,204, 17, 7, 79,158, 70,252,139,163,157,213,218,184, 31,217,250,240,113, 74,154, 59, 33, 55, 77, 20,208,192,219,215,186, - 73,179,129,112,109, 27,105,163,210,223, 79,250,177,103,195,205, 44,158,234,232,154,237,146,252,234, 68, 22,128,173, 67,134, 12, - 25,126,234,212, 41, 11, 0,136,137,137, 65,118,118, 54,108,109,109,193,227,241, 96, 98, 98, 82,145,159,244, 51, 49, 97,239,222, -189, 21,162,141, 36,201,138, 44, 0, 2,129, 0,223,126,251, 45, 90,183,110,141,139, 23, 47, 78,168, 70,104,249,116,232,208,225, -184,171,171,171, 75,229,157,114,185, 28,163, 70,141, 2, 0,248,250,250,118,231,243,249,116,185, 32,148, 72, 36,178,103,207,158, -245, 4,240,164, 26,101,169, 20,139,197, 88,178,100, 9,146,147,147,103, 7, 6, 6,166, 2,224,113, 56,156,138,247, 99, 0, 30, -205,154, 53,251,117,193,130, 5,120,255,254, 61, 94,191,126,253, 20,159,239, 74,213, 11,133,194,119, 58,157,206,155, 36, 73, 40, -149, 74, 12, 30, 60,152,119,254,252,249,108, 38,147,249, 38, 47, 47,111, 44, 74,231,164, 24, 10, 30,128,237, 51,102,204,152,185, -116,233, 82,132,134,134,226,242,229,203, 24, 55,110, 28,230,207,159, 15,145, 72, 52,113,254,252,249,143, 80,154,208,252, 99,116, -223,187,119, 47,244,122,253, 39,247, 6,143,199,131,143,143, 15,154, 54,109,138,203,151, 47,119,255, 2,161,229,234,227,227,195, -161, 40, 10,114,185, 28,119,239,222, 21,241,249,124,145,179,179,243, 84, 0,255, 49, 66,203,213,213,117,198,169, 83,167, 68,149, -189, 63, 92, 46, 23,149,250,129, 17,255,126,139, 86,141,111, 88, 21,208,104, 20, 90, 22,139,241,166,158, 99,203, 51,247,194,231, - 84,184, 14, 1,198, 27,141, 70,161, 5, 0, 61, 69,163, 88, 65,130,207,101, 32, 37,171, 4,175, 18,243,170,162,250, 96,137,166, - 9,191, 62,184,237, 83, 64,211, 52, 52, 90, 61,212, 69, 89,216,116, 85,129,184, 12, 21, 52,242, 66,104,180,165,211,176,108,108, -108, 88, 55,111, 94, 95,112,251,118,216,204, 63,254,248,131,153, 97,110,254,186, 4,104, 83, 21,167,165,101, 35, 83,138,195, 57, -179, 47,112, 37,159,102, 38, 34, 33, 77,142, 38,206,237, 97, 99,225,130,172, 60, 57, 30,190,190,134, 55,111,131,209,208,209, 21, -243,231,246,230,173,223,120,226, 52,155,116,171, 47,149, 38, 23, 87, 87,206,242,183,168,253, 55, 18, 64, 22, 36, 66,159,255, 30, -250,146,204, 79, 14, 16,217,214, 71,219,174, 78,176,117,105,204,157, 48,127,221,120,224, 3,161, 85,153, 51,155, 32, 24,251, 24, - 12, 98, 38, 65, 16,104,217,178, 85,198,246,237,219,171, 10, 5,174,109,217,178, 85, 6,147,201,112, 46,125,176, 51,246,210, 52, -149, 93, 75, 57, 63, 16, 53, 28, 14,119,105,169,217,223, 49,253,234,213,171,218,225,195,135, 99,219,182,109,156,101,203,150,173, - 96, 50,153,147,171,112,239,125,192, 57, 24,168,111,209,184,113,175, 13, 15, 31,210, 38, 58, 29, 81,240,244,105,177, 84, 34, 33, -179, 74, 74, 56,103,223,188,233, 59,101,241, 98,142,139,139, 11, 30, 4, 7, 91,231,202,229,180, 84,173, 86, 74,165, 82,154, 36, -201,167,213,112, 46,183,181,181, 19, 28, 60,120,208, 99,198,140, 25,145, 18,137,100, 57, 0, 56, 58, 58,110, 2,208, 20, 64, 74, -165,125, 8, 12, 60, 45,158, 58,117,106, 66, 78, 78,206,242,154,202, 89, 9,205,236,108,237, 4, 39,247, 7,189,180, 50,229, 51, -108,157,235, 49, 76, 44, 44, 88, 36,135,207,166, 0,101, 67,151,198, 66, 0,205,170, 57,247, 99, 78,130,207,231, 95,248,243,207, - 63,237, 76, 76, 76,160,215,235, 97,107,107,139,228,228,100, 72,165, 82,148,148,148, 32,233, 77, 28,220, 92, 92,176, 54, 96,153, -163,255,178,128, 11, 10,133,194,251,163,193,236,211, 4,200, 58,237, 39,150,189,170,178, 24,124,236,246, 50,176,221, 43, 35, 57, - 45, 45, 13, 34,145, 8,205,155, 55, 23, 61,124,248,240,126, 13, 34,171,114, 18,224, 17,157, 58,117, 50, 61,113,226, 4,188,189, -189, 97,110,110,142,187,119,239, 34, 38, 38, 6, 90,173,150, 33,147,201, 32, 18,137,176,121,243,102,212,175, 95, 31, 37, 37, 37, - 72, 73, 73,177, 54, 49, 49,177,249, 40,162,125, 5,231,221,155,119,215, 23,189,191,243, 99, 22,113,163,247,193,147,167, 49,117, -244, 72, 56,208,137,247,205, 27, 19,235,123, 13,232,180,138,102,186,244, 23,154,182,180,116,111, 62, 0,108,142, 8,254, 75,215, - 33, 33,246,138,165,162,228,229,108, 66,159,238,178,102,251,217,121, 85, 92, 59, 1,128,225,226,226, 50,229,236,217,179,166, 21, -166, 23, 38,179, 34,231, 97,229, 36,240, 53, 36,124,175,181, 62, 9,130, 64,114,114, 50,236,236,236, 32, 18,137, 42, 18,136,199, -197,197,225,241,227,199, 40,207, 70, 81, 13,231,216,219,183,111,187, 8,133,194, 15, 14,160,105, 26,121,121,121, 32, 73, 18, 2, -129, 0,122,189, 30, 90,173, 22, 58,157, 14, 42,149, 74,212,180,105,211, 89, 58,157,238, 73, 85,156, 20, 69, 45, 28, 49, 98, 68, -167, 39, 79,158, 52,218,181,107, 23, 52, 26,205,214,172,172, 44, 12, 29, 58, 20, 20, 69,161,123,247,238, 95,211, 52, 29,191, 98, -197, 10, 0,192,130, 5, 11,116,114,185,124,198,231, 92,123, 25,154,182,109,219,182, 81,104,104, 40, 58,119,238, 12,181, 90,141, -109,219,182,153, 5, 6, 6,154, 5, 5, 5,217, 46, 93,186,244,112,110,110,174, 95, 45,156, 4,128,173, 14, 14, 14, 51,187,116, -233,194, 47,203, 97,138,163, 71,143, 98,237,218,181,167, 0,172,184,126,253,250,234,203,151, 47,143,159, 50,101, 10,214,174, 93, - 59, 95, 42,149, 30,170,142, 51, 41, 41, 9,182,182,182, 48, 51, 51, 43,125, 88,106,181,136,138,138,194,173, 91,183,240,213, 87, - 95, 25,114, 77,213,149,211,117,200,144, 33,135, 79,158, 60,105,154,158,158,142,123,247,238,193,205,205, 13, 10,133,194,144,220, -176,183,255,134, 1,187, 90, 78,165, 82,169, 74, 75, 75, 19,109,217,178, 5,142,142,142,112,117,117, 5,143,199, 3, 65, 16,208, -233,116, 53,165, 87,171,181,156,190,190, 96,229,137, 45, 7,153, 91, 88,206,166,105,154, 85, 84, 84,184, 95, 11,233,185,196, 68, -104,254,193,107,255,111, 70, 27, 0,145,248, 48,231,161,164, 66,104, 5, 7, 7,211,253,251,247, 39,202,255, 58, 57,161, 56, 47, -207, 50,193,206,161,197,105, 59,135,102,101,121,191, 24,111,152, 76,203, 4,123,123, 69, 49, 0,104, 73, 26, 17,111,164,120,249, - 46, 11, 49,239,178, 32,228, 26,102,124, 81,107,201,210, 25,171, 52, 13,149,236, 95, 47,173, 90, 69, 33,212,218,210,233, 30, 26, -181, 2, 69,185,175,137,225,131,123,242,102,206,156, 14, 71, 71, 39,219,234,248,180, 92,222,124,255, 5,125, 45,172, 44, 76, 16, -252,240, 6,190,254,106, 48,120, 92, 19,228, 23,169, 0, 2,120,155,120, 11,160, 76, 17,155,144,134, 14,205, 4,240,235,229, 37, -186,120, 46,126, 49,128,149,134,148,151,204,120, 10,182,123, 31,152,232,117,208,229,197,131,146,166, 2, 66, 7, 40, 9, 17,242, - 37,169,120,115,255,188, 65,239,140, 20, 69,205,182,177,177,145,174, 88,177,162, 75,147, 38, 77,180,179,102,205,138, 78, 77, 77, - 93,248,209,219,202, 47,123,247,238,197,187,119,239,196, 27, 54,108,184,155,151,151,247, 99, 29, 27, 58,128,166,177,179,204, 21, -151,119,233,210,165,182,225,225,225,243,119,238,220,105, 63,103,206, 28,206,156, 57,115, 38, 1,248,169, 38,119, 97, 49,151,219, - 99,195,189,123, 52,153,145,161, 62,182,123, 55,103, 79, 68,196, 10, 45, 69,213,179,177,179, 35,190,233,208, 65, 46, 96, 48,242, -242,179,179, 73,219, 70,141,152,201,183,110, 89,211,124,126,230,245,235,215,139,101, 50, 89,181,169,115,152, 76,166,162, 42,119, - 97, 85,112,116,116,212, 84, 53,135,171,134, 1,177,152,162,105,173, 69,195,134,116,175,238, 29,155,188,139, 79, 76,228, 89, 88, - 48,221,155,184,121,190,122,147,252,148,214,235, 85, 4, 65, 20, 27,228, 43, 97, 50, 71,238,220,185,179,133,153,153, 25, 40,138, -130,185,185, 57,114,115,115,161,209,104, 80, 92, 92, 12, 77, 73, 17, 52, 69, 69,136, 73, 77, 70,167, 46, 93, 48,188,119, 47,175, -160, 75,127,142,212,235,245,167,106,244,231,181,108, 83, 97,201, 90,215,192,250, 95,190,160,116,105,133,232,218,210,198, 29,108, -145, 8, 61, 23, 6,124,201,141, 30,121,245,234,213,107, 67,134, 12,233,187,120,241, 98,134, 68, 34,185,145,156,156,220, 9,192, -235,154, 78, 18,137, 68,141,243,242,242, 32,147,201, 96,110,110,142,157, 59,119,194,222,222, 30, 10,133, 2,207,158, 61,163,157, -157,157,137,187,119,239,194,217,217, 25,249,249,249,208,106,181, 80, 42,149, 89, 26,141,166, 90,119,121,153,123,176,207,130,222, -184, 30,255,226,104,103, 39, 34,233,217,136, 69,190,239,226, 99,222,164,133,220,122,248, 19,169,226,165, 75, 51,110, 47,107,216, - 46,210,102,246,146,181,248,109,235,106,196, 63,185, 87, 96, 95,191,120, 15,159, 80, 31,169,169,188,114,185, 92,245,230,205, 27, -211,232,232,104, 16, 4, 1,115,115,115, 8, 4,130, 42,197,214,103,128, 81,217, 2, 37,151,203,193,102,179, 97,109,109,141, 67, -135, 14, 85, 12,188,110,110,110, 53,113,236,239,217,179,231,200,250,245,235,155, 86,222,217,174, 93, 59, 76,159, 62, 29,251,246, -237, 67, 68, 68,196, 7,249, 52,179,178,178, 36, 58,157,174,166,235,150,102,103,103,247, 30, 60,120,240,139,251,247,239,155, 29, - 58,116, 8, 36, 73, 86,249, 57,120,240, 32, 30, 63,126,188, 18,192,155,207,236, 71, 95, 13, 29, 58,244,222,241,227,199, 45,114, -115,115, 81,222, 55,228,114, 57,244,122, 61, 60, 61, 61, 9,146, 36,107,155,247,198, 96, 50,153,151,118,239,222, 61, 96,234,212, -169, 96,177, 88,208,104, 52,216,189,123, 55,150, 45, 91,150, 93,246, 82,170, 5,176,226,200,145, 35,227, 7, 14, 28,136, 86,173, - 90,121,221,185, 83,253,204, 14,153, 76, 6,153, 76, 6, 19, 19, 19, 56, 56, 56, 96,253,250,245,208,104, 74, 31, 43, 30, 30, 30, - 21,183, 49,128,253, 30, 30, 30, 3, 18, 18, 18,182,161,116,238,218, 39,112,112,112, 24, 76,211,244, 52,189, 94, 95,210,185,115, -103,235,147, 39, 79,154,138,197, 98,188,120,241, 2, 43, 87,174, 44,164, 40, 74, 79, 81, 20,161, 84, 42,147,236,236,236, 94,112, -185, 92,190, 66,161, 40,200,207,207,223, 8,224,198,191,107, 36, 39, 8,130, 48, 49, 49,193,228,201,147,193, 98,177,192,231,243, -161, 82,169,160,211,233, 42,196, 60,234,232,150,110,210, 68,100,205, 2,123,170,165,105,211,249,195,231,245,183,117,172,231, 4, - 11, 51, 46,226,226, 94,119, 10, 11,189,181,155,195,138, 15,164, 52,186,192,248,148,162,191, 61,217,253,199, 90,228,191, 84,104, -125,146,243,144, 85,117, 99, 14,215,211,244,217, 60,177,152,163,229,112, 4, 9,229, 86, 46,123,123, 69, 49, 65, 12,215,219, 54, - 27, 4, 82,171, 43,123, 80,208,101, 31, 3,133,150, 78,143,119,241,177,184, 31,242, 39,108, 20, 98,228, 37,181, 6,216, 45,160, - 81, 22, 65,165,209,150,137, 18, 61,162, 95,132,162,184,168, 0,205,189,251, 3, 12,198,227,234,248,204,173,137,254,223,180,109, -201,124,151, 22,139,118, 30,195,208,200,185, 51, 82, 37,197,144,202,212, 40, 44, 86,161,117,243, 0,228, 22, 42, 81,172, 80,225, -245,187, 32, 56,213,107,196, 32, 88,137,221, 13, 21, 90,234,215, 23,160,126,115, 25,108,215, 78,224,120, 14, 4,211,213, 7,105, - 47,239, 32,250,250, 14,100,188,122, 0,154,210,195,209,163,189,161, 55,201,238, 27, 55,110,180,239,212,169, 19,171, 71,143, 30, -173,174, 93,187,214, 74, 34,145, 68,151, 9,140, 86, 61,122,244,104,101,107,107,139, 95,127,253, 85, 73, 16,196,238,207,108,236, - 10, 11, 88, 78, 78,206, 83, 0, 27, 46, 92,184,176,123,250,244,233,176,179,179,107,145,153,153, 89,237,137,185, 38, 38,173, 38, -108,220, 72,155, 48,153,244,169,223,126, 99,175,189,113, 99,251, 31, 71,142,176,187,117,237, 74,208, 52,141,168,168, 40,193,150, -223,126, 19,140, 25, 52, 40, 37, 53, 39,135, 12,143,136,208, 74, 50, 50, 74,114,228,242,181, 18,137, 36,235,223,209,179,117, 58, -221,163,164,228, 36, 39,239, 14,173,109, 35,227,146, 94,249,117,251,230, 27, 6,131,193,136, 79, 76,141,176,181, 53, 19,220, 10, -185,165,213,233,116,143, 12,225,226,114,185,253,187,117,235,198, 42, 44, 44, 68,189,122,245,144,155,155, 11,177, 88, 92,106,113, - 40, 42,132,182,168, 8,186, 98, 41,244,114, 25,146,158, 61, 69,235, 70, 13,185,103,185,220,254, 10,133,162, 70,161, 85,254,150, - 89, 85,162,235,242,125, 28, 83, 83,112, 68, 34, 16,117,119, 27, 14,178,176,176, 88, 38,149, 74,175, 1, 88,175,213,106,253,151, - 45, 91,214,110,215,174, 93, 54, 27, 54,108, 48,155, 54,109,218, 89,153, 76,214, 26,165, 73, 85,171, 27,192,222,147, 36,105, 13, -192, 62, 52, 52, 20,118,118,118, 40, 42, 42, 42,183,180,104, 20, 10, 5, 47, 63, 63, 31,106,181, 26, 26,141, 6,102,102,102,120, -254,252,121, 1, 73,146, 87,106, 43,156, 89, 99, 98,189, 90, 27,247,163,181,151, 48, 83, 75, 90,250,230, 20, 80,133,107,182, 75, -214, 1,216,222,187, 81,163,131, 90,234, 94,210,219,216, 43,150,201,207,238, 22,100,190,149, 55, 58,116, 45,169,166, 57, 90, 52, - 0,138, 32, 8,218,195,195, 3,185,185,185, 96, 50,153, 16, 8, 4, 16,137, 68, 88,190,124, 57,118,239,222,253, 57, 66,139, 39, - 20, 10, 55, 50, 24,140,145, 12, 6,195, 86,175,215, 35, 32, 32, 0, 3, 6, 12, 0,135,195,129, 86,171,173,176,104,150, 91,169, -106,177,116, 68, 61,126,252,216,236,241,227, 15, 30, 91, 93,109,108,108,194,212,106, 53, 18, 19, 19,113,233,210,165, 46, 0,194, -235,216,214,137, 81, 81, 81,189,125,124,124,142,182,109,219,182, 49, 77,211,104,209,162, 5, 70,141, 26,133,160,160, 32, 68, 71, - 71,163,168,168,136,186,117,235,214, 31, 0,182,213,117, 12, 47,171, 95,207,161, 67,135, 62, 56,113,226,132,101,126,126, 62,148, - 74, 37,228,114, 57,206,158, 61,139, 78,157, 58,193,198,198, 6,199,143, 31, 39,105,154,174,169,237, 25, 12, 6,227, 80, 96, 96, -224,128, 41, 83,166, 96,207,158, 61, 56,117,234, 20, 6, 14, 28,136,145, 35, 71, 34, 55, 55,215,126,235,214,173,227,203,220,132, -171, 71,141, 26, 5,153, 76,134,103,207,158,197, 25,120,207, 67, 42,149, 66, 42,149,130,207,231, 87,190,199, 8, 0, 65, 59,118, -236, 24, 61,127,254,124, 52,106,212,104,117, 82, 82,210, 14, 84,177, 74,148,162,168, 25, 98,177,216,146,197, 98, 89,147, 36,137, -244,244,116, 60,127,254, 28,179,103,207, 46, 40, 40, 40,152, 14, 32, 21,192,138,201,147, 39,175, 95,184,112, 97, 69, 95, 90,184, -112, 97,240,181,107,215,122,255,211,214, 28, 15, 15,139,102, 28, 38,119, 94, 97, 9,211,186,176,176,176,226,217,161,209,104,160, - 86,171, 63,176,100,177,217, 38,214,237, 90,215,191,170, 84,148,252,240,250,173,180,218, 4,233, 94,141,205, 91, 10,132,230,243, - 59,117,238, 54,182, 87,239,239,152,164, 78,135,155, 55,175,224,247,223,247,162,171,143, 7, 26, 53,105,129, 57,115,231,153,171, - 53,100,192,173, 91, 55,150, 89, 60,190,127,163,164, 88,186,188, 38,206,255,113, 92, 45, 19, 87, 87,171,116, 29, 86,165, 32,203, - 66, 56, 20,150,109,218, 88, 90, 90,254,166,215,235,187,154,153,153,129,146, 38,224,245,243, 39, 40, 40, 52,129, 90,169, 7, 69, -151,138, 45,131,132,139, 90,131,123, 55, 47, 99,231,142,237,200,207,207,135,207,183, 93, 32, 99,185,160,190, 75,125,168,148,138, -178,155, 6,208,106,116,176,181,119, 69,100,100,180,174, 88, 46,175,246,129,196,230,105,189,234,219,123, 64,173,237, 8, 30,135, -131,162, 18, 13, 10,203, 68,214,241,115, 35,160, 86, 40, 65,106,180, 32, 53, 58,216,214, 31,138,175,236,187,129,210, 95,105, 86, -167,234,163,244,208, 38,223,131, 54,249, 30,248, 29,231,226,207, 77,163, 63, 26, 72, 13,203,187,155,155,155,155,243,234,213,171, - 43, 81, 81, 81,131, 71,140, 24,129, 59,119,238, 76, 3, 48,179,204,125, 51,109,196,136, 17,136,138,138,194,171, 87,175,174,228, -230,230,230,252, 21, 45,207,225,112,148,106,117,233, 24, 43, 16, 8,120,181, 28,235,212,110,200, 16, 70, 81,100,100,241,142,135, - 15, 87, 31, 60,116,136,221,163,123,119, 66, 71,146,160,244,122, 52,113,119, 39,122,245,234, 37, 12, 58,115,198,154,169,211, 61, - 94,226,239, 31,186,111,220,184,146,167,114,185,161, 19,205, 27,148,185, 12, 1,160, 65, 13,251, 12,134, 90,173,222, 53, 99,234, -196, 30,225,247, 30,184,212,119,113, 50,187,121, 43, 60,154,203,231, 48, 26,185, 53,102, 22, 22, 21,176,214,173,254,129,175, 86, -171, 13, 21,173, 94, 54, 54, 54,200,202,202,194,187,119,239,160, 86,171,161,211,233, 64, 41,228,208, 20, 74,161, 41, 42, 0,161, - 82,130,171,215, 67,149,151,141, 6,141, 26, 2,255, 90,145, 88,171, 43,170, 42,161, 85,254,151,103,102, 6,182, 80, 4,134,137, -137,193,201,209, 1,180,109,223,190,253,153,243,231,207,179, 39, 77,154,212,225,246,237,219,191, 1, 72, 21,139,197,221, 87,174, - 92,249,244,183,223,126,227, 78,159, 62,221,115,219,182,109,227, 1,236,175,142, 68,165, 82,157,185,122,245,234, 24, 87, 87, 87, -251,152,152, 24,168, 84, 42, 80, 20,133, 62,125,250, 0,165,115,107, 0, 0,241,241,241, 74,149, 74,149, 19, 27, 27, 91,156,154, -154,170,133, 1,171, 4,215,236,146, 60, 42,206,186, 55,196,222,193,233, 49,143,223,192,141,150, 69, 14, 94, 48,204,105,235,142, -115, 98,213,141,196,196,146, 31,123, 54,220, 44, 47,121, 57,219,194, 89,182,231, 70,112,146, 33, 19,225, 43, 86, 23, 90, 91, 91, -131,197, 98,193,196,196, 4,108, 54, 27, 4, 65, 96,238,220,185, 56,112,224, 64,109,174,195, 15, 68,150,169,169,233,171,181,107, -215, 58, 79,159, 62,157,205,227,241, 80, 88, 88,136,227,199,143, 99,242,228,201,248,253,247,223,171,156,255, 98,128, 75,233, 99, -107,233,252,113,227,198, 65,163,209, 96,212,168, 81, 56,120,240,224,124,189, 94, 31,254, 25,183,244,227,232,232,104,247,232,232, -104, 51, 0, 3, 71,142, 28,121,100,232,208,161, 8, 15, 15,199,149, 43, 87,186,160,116,209,135, 18,192, 38, 0,118,101,127,107, -186, 63,133,246,246,246,123, 41,138, 26,104,107,107, 27,237,225,225,209,252,196,137, 19, 22, 57, 57, 57,229,139, 31,144,156,156, -140,195,135, 15, 75, 14, 29, 58, 84,172,215,235,173, 25, 12,198, 85,169, 84,186,188, 6,193,118,104,199,142, 29, 19,203,220,129, - 56,127,254, 60,189,125,251,118, 98,229,202,149, 40, 44, 44, 68,215,174, 93, 17, 24, 24, 56, 79, 38,147,181,218,190,125,251,212, -225,195,135, 99,221,186,117,144,203,229, 59,106,123, 89,169, 65,124, 17, 0,190,217,177, 99,135,235,252,249,243,113,254,252,121, -180,109,219,150,159,148,148,180, 15,192,148,170,218,143,166,105, 36, 37, 37, 65,161, 80,224,193,131, 7, 88,189,122,117, 97, 37, -145, 53,111,230,204,153,235,231,205,155,135,141, 27, 55,210, 49, 49, 49, 57, 67,135, 14,181, 63,112,224, 0,179, 73,147, 38,243, - 20, 10,197, 63, 38,180, 60,155, 88,109,110,215,182,243, 50, 71,167, 38, 56,126,226, 36, 10, 10, 10, 42,234,164,188, 94,104,154, - 70, 73, 73, 9,178,178,178, 96,110,102,138,173,219,214,247,157, 53,109,162, 11, 74,195, 96,124,106,178,108,100,185,109,232,200, - 73,139, 70,141,153,136,152,232, 23, 8, 58,178, 31,177, 49, 81, 21,124,164, 78,139,132,184,231, 72,136,123, 14,123, 7, 87,244, -234,209,133, 24, 61,122,116,159,113, 99, 70,218, 2,248,219, 66, 71,252, 23, 91,179,128, 79,227,104, 29,248, 64,104,213, 98,174, -179,177,180,180,124,117,250,244,105,107, 31, 31, 31, 38, 73,146,184,113,243, 38,102,207,252, 30,227,199, 5, 64, 11, 75,144, 26, - 54, 40, 54,207,160,146, 40,149, 10,208,160, 33,151,203, 17, 17, 17, 1,154, 34, 17,116, 96, 59,104,154,170, 16, 90, 0, 13,141, - 86, 11,167,250,158,216,123,112, 3, 9, 19,147,167,208, 85, 29,186,166, 56,159,169,215,145, 52,196, 57,105, 72,147,196,194,220, -180, 62, 88, 38,245,145, 47, 85,128,197,112,128, 78, 21, 15,125,217,185, 10,121, 6,148,218, 47,107, 63,125, 21,214, 83,186, 14, - 15, 93,165, 82,121,236,216,177, 99,125,127,249,229, 23, 78,191,126,253, 60,206,157, 59,247, 13, 0,244,235,215,207,195,204,204, - 12,199,142, 29,211, 40,149,202, 99,127,161,197,167, 91,251,246,237, 81, 88, 88,136,228,228,228,232, 26,175, 77,163,177, 22,217, -217, 49,115,238,220,209,229, 22, 22,186,116,235,214,141,208,145, 36, 24, 4,129,130,162, 34,164,166,164,192,194,194,130,120, 21, - 31, 47,218, 61,103,206, 69,143,230,205, 89,229, 43, 18, 13,193,149, 43, 87, 4, 40,157,151, 85,227,190, 58, 66,158,147,157, 53, -209,223,223,255,226,177, 99,199,205,179,115,178, 19,184, 28, 14, 41, 18,241,234,141, 27, 59,139, 37,149, 74,199, 0,144, 25, 74, - 86, 88, 88,136,164,164, 36,240,249,124,176, 77, 76, 64, 41, 21,208,203,101, 80, 21,228,130,169,213,128,163,215,195, 74,192,133, -139,189, 61,234,219,218, 24,196,249, 46, 44,164, 98,226,123,101,119,225,214,246, 94,224, 8, 69,224,152,138, 48, 43,248,110,217, -219, 40, 27, 88,249,147, 33,180, 54, 78, 78, 78,127,158, 56,113,130,157,155,155,139,168,168,168,104, 0, 69, 0, 76, 1, 80,113, -113,113,183, 99, 99, 99,251,151,173,186,171,109,181,216,246, 11, 23, 46,244,244,241,241, 33,221,220,220,132, 57, 57, 57, 46,133, -133,133,148, 68, 34,249,192, 36, 20, 18, 18,194, 45, 41, 41,145, 83, 20,117,177, 76,100,213, 26,191,104,193, 48, 39, 94, 68, 36, -230,250,250, 53,104, 97,102,211, 18, 5,100,100,139,199,209,146,185, 11,134, 57,237,218,113, 78,172,226, 19,234, 35,132, 62,221, -133,197, 83, 25, 58,137,153, 6, 74,231, 74, 69, 68, 68, 32, 53, 53, 21, 73, 73, 73, 31, 8,170,105,211,166, 33, 40, 40,200, 32, -139,150, 80, 40,220,184,102,205, 26,231,249,243,231,179, 43,137, 34,248,251,251,163,168,168, 8, 7, 15, 30,132,191,191,127,157, - 7,254,143,208,176, 91,183,110,253, 28, 29, 29,145,159,159, 15, 7, 7, 7,248,248,248, 12, 8, 15, 15,119, 3,144,252,153,253, -126,150,159,159,223,250,181,107,215, 66,167,211, 97,242,228,201,120,251,246,237,153,183,111,223,238,172, 95,191,254,220,165, 75, -151,218,219,219,219, 99,196,136, 17, 66,146, 36,135, 84, 71, 98,101,101,181,105,255,254,253, 99,250,245,235,199,208,106,181,223, -134,133,133, 33, 37, 37, 5, 26,141, 6, 36, 73,226,253,251,247,240,247,247,151,148,173,110,124,111, 64,185, 38,173, 88,177, 98, -226,220,185,115,177,101,203, 22,172, 89,179,230, 15,115,115,243,230,173, 91,183,110,179,102,205, 26, 44, 89,178, 4,174,174,174, -176,182,182,254,106,229,202,149, 94, 11, 23, 46,196,174, 93,187,176,122,245,234, 63, 0, 28,254,156,138,160, 40,138,216,188,121, -115,171, 29, 59,118, 56,150,139, 44, 6,131,129,211,167, 79, 35, 50, 50,114, 64, 98, 98, 98, 85,231, 4, 58, 56, 56, 76,115,127, -237,254,178, 0, 0, 32, 0, 73, 68, 65, 84,116,116,228,220,186,117, 75,228,234,234, 10,146, 36,117,101, 34,107,119,253,250,245, -103,191,127,255, 30,253,250,245, 67, 98, 98,226, 49, 0,227,205,205,205,229, 11, 23, 46, 20,240,249,124,115,133, 66,241, 79, 13, -222, 96, 50,136, 9, 27,215, 45,193,179,200,120, 92,184,192,198,179,103,207, 96,111,111, 15, 46,151, 11,154,166,161, 86,171,145, -155,155, 11,157, 86,141, 22,205, 26,226,232,161,205,200,201,201, 5, 24, 68,181, 83,110, 8, 6, 49,118,226,247,131,113,255,193, - 77,236,219,183, 31, 50,153,188,154,151,111, 30,154,120,120,193,169,158, 29,210, 51,210, 65, 48, 96,243,119, 94,235,127,185,235, -176,226, 17, 4, 67,194, 59, 84,134,133,133,197,206, 83,167, 78, 89,119,237,218,149, 41,151,203, 65, 81, 20, 58,251,248, 96,238, -252,249,184,114,226, 4,220, 59,140, 2,161, 17,129, 20, 24,182,234, 65,165, 84,160,105,155,111, 48,124,196, 72,164,165,166,194, -175,255, 80,168, 84,138,138, 55,140,114,139,150, 70,163,133,141,157, 11, 66, 66, 66,152,152, 60,249, 53,118, 87,109,148,208,107, - 57, 47, 19,222,171, 58, 73,149,145,136,120, 22, 4,173, 90,139, 22, 45, 86, 66, 75, 89,195,206,121, 26,116,186, 75, 40,206, 13, - 43,117, 99, 88,119, 69, 70, 90, 26, 24, 76,246,171,207,173, 65, 74,158,251, 69, 15,221,162,162,162,162,164,164,164,115, 17, 17, - 17, 99,135, 12, 25,130,144,144,144,169, 0, 48,100,200, 16, 68, 68, 68, 32, 41, 41,233, 92, 81, 81, 81,209, 95,209,218,142,142, -142, 3,187,116,233, 50,170, 93,187,118, 8, 14, 14, 6, 77,211,247, 13,186,177, 77, 76,104, 6,131, 1,138,162, 64, 0,200,151, - 74,241,246,237, 91,228,231,229, 65,167,211, 65, 46,147, 81, 94, 30, 30, 50,154,162, 76,235, 82,158,202, 43, 12, 81,197,170,195, -242,125,159,113,169,169, 79, 31, 63, 76, 43,145,201,108, 45, 45, 44, 75, 56, 28,142,190, 80, 42, 45,122,253, 42, 70, 99,224,224, - 80,142,184,216,216,216,230,153,153,153, 72, 75, 75, 3, 41, 47, 1, 83,173, 1, 67,173, 64,247,111, 58,130, 15, 26, 60, 80, 48, -161,116, 48, 97,154,160,164,116,117, 94,173,238, 14,125,165,151,132,114,145, 69, 16, 68,169,187, 80, 40, 4, 71,100,250,129,133, -203,144,254,196,229,114, 79,156, 61,123,214,209,201,201, 9,235,214,173,131,179,179,243, 87,245,234,213, 83,152,155,155,243,237, -237,237,209,180,105, 83,124,243,205, 55,184,126,253, 58, 12,168, 3,146,166,233, 94,247,239,223, 95,244,240,225,195,225, 66,161, -144,152, 51,103, 14,171, 79,159, 62,224,114,185, 80, 40, 20, 40, 44, 44,196,201,147, 39,243, 40,138, 42, 95,148, 98, 45, 16, 8, - 14, 19, 4,145, 44,151,203,231,127, 76,120,244,151, 22,245,114, 10,168,201,180, 76, 48,216,215,175, 65,139,110,126, 61,208,208, -189, 27,186,249,165, 1,192,102, 43, 86,202,168,159, 87, 88, 92,180, 48, 37, 14,135,220,184,181,218,199,183,219,138,101,178, 59, -235,183, 28,144,214, 58,159,142, 32, 8, 80, 20,245, 65,236,160,143,191, 31, 63,126, 60, 78,159, 62, 93,107, 61, 50, 24,140,145, -211,167, 79,103,127,100,121,134, 88, 44, 70,255,254,253, 49,100,200,144, 15,132,150,141,141, 13, 28, 28, 28,144,146,146, 2, 0, -249, 6,246,171,185,147, 38, 77, 34,148, 74, 37,166, 76,153,130,131, 7, 15, 98,212,168, 81, 68,120,120,248, 92, 0,243,235,218, -217, 25, 12,198,214,165, 75,151, 46,242,247,247, 71, 65, 65, 1,174, 93,187,134, 62,125,250,224,244,233,211,182,215,174, 93,219, -216,181,107, 87, 48,153, 76, 4, 7, 7,131, 36,201, 26, 99,125,177,217,236,129,253,250,245, 99,164,167,167,131,205,102,195,219, -219, 27, 25, 25, 25, 80, 40, 20, 16,139,197,152, 55,111, 94, 86,126,126,126, 23, 67,239, 35, 54,155, 61,127,238,220,185, 56,117, -234, 20, 2, 2, 2,142, 0,152, 82, 84, 84, 52,252,225,195,135,167, 6, 13, 26, 4,177, 88,140,139, 23, 47, 98,245,234,213,196, -248,241,227,177,103,207, 30,204,155, 55,239,143, 50,171, 83,117, 29,191, 36, 39, 39,199,188,113,227,198,200,206,206,134, 76, 38, -195,197,139, 23,237,174, 95,191,238,230,228,228,100,150,148,148,164,255,233,167,159, 56,243,231,207,199,206,157, 59, 17, 21, 21, -133,160,160, 32,116,235,214,141, 76, 76, 76,172,210, 74, 86, 22,178,225, 34, 77,211,183,132, 66, 33, 74, 74, 74,202,239,187,197, - 1, 1, 1,254,155, 54,149, 26,217, 51, 51, 51, 49, 97,194,132,113,161,161,161, 84,215,174, 93, 5,108, 54, 27, 42,149, 74,254, - 79,142,218,148,158, 2, 64,193,205, 69,132,155, 87, 14,225, 69,116, 34, 94, 68,199,130,195, 45,157, 4,175, 84, 42,208,166, 69, - 19,116,240,110,143, 76,137, 24,199,130, 14,193,202,198,169,198,231, 8, 77,211, 96,179,244,240,242,112,192,137,160,253, 8,190, - 22,138,160, 99, 39, 43,230,188,177, 88, 38,104,221,166, 3,188,189,125,144,152,244, 30,135, 14,237,131,173,157,139,209, 57,248, -153,168,112, 29, 86,254,251,145,242,239,230,227,227,195,148,201,100, 80,169, 84,200,202,202, 66, 74, 74, 10, 44, 44, 45,144,152, -153,140, 46, 2, 45,178,168, 98,196, 69,191,210, 19, 76,147,168,218,126,176,159,111,107,192,183, 53,102, 79, 26, 85,195, 43, 43, - 13,161,153, 77,169,235,134, 36,223, 97,215, 46,178, 58,161, 69,234,117,183,111,222, 10,107, 63,105,252, 64,147,144,176,131,208, -105, 40, 40,117,230,144,171, 52,144,107, 77,192, 48,239, 3,228,133,131,201,226,226,235, 86, 77,112,241,194,117, 45, 77,234, 66, - 13,174, 32,251,230, 32,179, 99, 43, 9,173,156,143,252, 14, 86, 6,187, 14, 43, 6, 94,189,254,244,241,227,199,191,235,216,177, -163,160,107,215,174,141,203, 6, 78,237,241,227,199, 21,101,193, 48,235,138, 15,162,193, 59, 56, 56,180, 97,179,217,163,250,244, -233,211,102,226,196,137,120,253,250, 53,142, 29, 59,150,208,164, 73,147, 59, 18, 73,245, 43,178,153, 28, 78,190, 44, 39,199, 66, -228,230,198,178, 52, 53,205,188,126,237,154,107,143,158, 61,137,180,180, 52,228,231,231, 67,165, 82, 33, 42, 58,154, 54, 97, 50, - 51, 8, 51, 51, 70,124,100, 36,131,201,225,228, 87,103,109,172, 2, 41,181,172, 58,220,244,185,214, 45, 23, 71,203,198,171, 3, -102, 52, 84,169, 85,205,139,139,139, 73,150,137,137,137,179,131, 69,106,252,123,195,159,137,106,181, 58,248,246,237,219,223,245, -232,209,131,155,240, 50, 10,100, 81, 17, 52, 69,133, 96, 83,122, 88,181,105, 5,166, 86, 13,104,116,112,242,162,161,146, 10, 16, -254, 36, 94,167, 86,171,107, 13,106, 88, 46,180, 24, 31, 9, 3,142, 72, 4,174,169, 25,184, 34,209,199,130,161,182, 55, 57, 65, -175, 94,189,186,127,253,245,215,160,105, 26, 7, 14, 28,128, 86,171,229,104,181, 90,104, 52, 26,104,181, 90, 20, 23, 23, 35, 40, - 40, 8,123,247,238,125, 8,224, 15, 3, 46,159,228,243,249,131, 8,130,176, 99,177, 88, 10, 91, 91, 91,225,233,211,167, 43,194, - 77,180,110,221, 26,166,166,166,108,148, 5,133,180,179,179, 51,249,253,247,223, 45, 6, 12, 24,112,175, 74,119, 71,139,175,150, - 52, 36, 45,125,121,252, 6,110,102, 54, 45,209,208,189, 27, 0,160,103,255, 73,104,216,164, 62,138,243, 94,186,169,148, 41,131, -217,172, 66,203, 87,187,196,175,249,253,154, 79,148,231,220,125,139,170,151,247, 87, 57, 80, 48, 24,140,106,221,177,134,136,172, - 82,205,194,176, 45,159,231, 3, 0,249,249,249,144, 72, 36,136,139,139,131,167,167, 39, 10, 10, 10,224,228,228, 4,141, 70,131, -118,237,218, 65,169, 84, 98,199,142, 29,120,240,224,193, 67, 0,243, 12,248, 13,190,187,187,251,132, 54,109,218,224,218,181,107, -120,246,236,153,248,230,205,155, 78, 62, 62, 62,112,115,115,155,152,156,156,252, 67,153,171,207, 80, 8,125,124,124,230,248,251, -251, 35, 54, 54, 22, 51,102,204,200, 79, 79, 79,191,120,230,204,153, 41,171, 87,175,102,248,249,249, 65, 34,145, 96,235,214,173, -250, 7, 15, 30,108, 3,176,174,150,122,124,147,158,158,238,172, 82,169, 80, 80, 80, 0,146, 36,161, 80, 40,112,253,250,117, 4, - 5, 5,101,151,137,172,119,134, 22,174, 85,171, 86, 77, 25, 12, 6, 78,157, 58, 5, 0, 63,162, 52, 98,255,197,193,131, 7,139, -127,250,233, 39,167,229,203,151, 99,234,212,169,208,106,181,216,178,101, 11,150, 47, 95,126,181, 76,100,213,244, 16,253,197,193, -193, 97,218,140, 25, 51,190, 90,184,112, 33, 34, 34, 34,236,158, 63,127,238, 29, 21, 21, 5, 23, 23, 23,228,231,231,179,172,173, -173,177,115,231, 78, 44, 88,176,224, 60,128,188, 71,143, 30,141, 76, 74, 74,218, 4, 96,107, 45,162, 61,208,201,201,105, 26, 77, -211,180, 66,161, 72, 9, 8, 8,216,186, 97,195, 6, 44, 88,176, 0,175, 94,189, 66, 81, 81, 17, 76, 77, 77,137,165, 75,151, 78, -248,241,199, 31, 49,121,242,100, 90, 46,151,239,253,167, 7,106,154,214, 67, 81, 24, 11,189,218, 18,173, 91,120,162,117,243, 6, -184, 25,246, 2, 0,208,125,168, 15, 20,242, 18, 28, 57,114, 0,239,222,189, 5,203,196, 4, 22, 86, 14,134, 88, 2,161, 41,126, - 3,169, 86,130, 30, 93,189,209,199,175, 11,254, 56,122, 26,164, 78,139, 41,147,198,160, 80, 42,197,209,163,135,144,152,244, 30, - 44, 19, 19, 88,219,252,253,129, 80,107,210, 34,255,245, 66,203, 0,247, 19, 40,138,130, 88, 44,198,243,231,207,145,156,156, 12, -129, 64, 0, 37,169,167,246,221,126, 64, 17, 4, 59,131,162,233,135, 52, 89, 17,165,248, 83, 14,189, 94, 92, 41, 98,173,185,165, -165, 37, 71,173, 86,130, 36,117,149, 70, 21, 2, 32, 0, 54, 11,112,172,215, 16,233,105,233,180, 74,165,186, 91,227, 27,148, 90, -181,243,242,197,179,254,223,116,242,177,233,211,125, 45, 46, 94, 90,137,194,226, 98,168,180, 38,144,171,180, 80,168, 0, 11, 43, - 15,180,107,209, 18,153,153,249,120,249, 44, 92,198, 82, 43, 12,153, 40,250,118,247,138, 73,238,147,102, 47, 1,223,181, 19,212, -113, 23, 65,201,178, 43, 44, 90, 60,145, 37,172,234,123, 65, 42, 87,227,108,232, 11,160, 14,169, 94,114,114,114, 20, 76, 38,243, -184,191,191,255,150, 23, 47,158, 59, 3,192,139, 23, 47, 50, 36, 18,201,178,156,156,156,186,218,164,203,163,193, 19, 60, 30,255, - 69,147, 38, 77, 50,189,189,189,205, 7, 15, 30, 12, 27, 27, 27, 68, 69, 69, 97,211,166, 77,111,180, 90,237,146,240,240,240, 26, - 93, 61, 26,141, 70,252,226,210, 37,179, 46,223,127,111,177,100,192,128,173,254,254,254, 59,215,173, 91,103,226,238,238, 78,232, -180, 90,196,196,196,208, 39,142, 31,215,237, 93,190,124, 7, 71, 40,100, 61,189,124,217,132, 84,171,197,255,238, 78,236,228,228, -228,235,243,109,103,175,109,191,236,130, 74, 41,195,147,136,171, 40, 44,204,197,254, 3, 23,188,156,156,104, 95,177, 88, 28,110, -168, 0, 62,124,248,240,162, 14,109,218,180,105,228,226,130,152,212,100,112, 40, 61,216, 36, 9,166, 86, 13, 6,169,130, 75,115, - 26, 4,195, 20,146,172, 98,108, 56,117, 46,214, 16, 97,252, 85,223,129, 88,151, 81, 4,130, 32,176,189, 99,115,112, 76, 69, 96, - 11, 69,152,245,103, 88,133, 48, 8, 94,183, 28, 28,145, 8,141, 59, 24, 20, 16, 94,113,231,206,157,231, 49, 49, 49,237,154, 55, -111,142, 69,139, 22, 33, 37, 37, 5, 20, 69, 33, 59, 59, 91, 37,145, 72,196,185,185,185, 41, 40,141,255,115,176,150, 65,172,178, -234,112, 10, 15, 15,175,112, 55,132,134,134,162, 94,189,122, 48, 55, 55, 71,113,113, 49,166, 79,159,110,177,106,213, 42, 0,192, -243,231,207, 81, 89,160,124,140,152, 23,113,219,164, 37,116, 33, 45,139, 28, 92, 64, 70,182,232,230,151,142,158,253, 39,226, 86, -240, 31, 8,187,121, 27, 86,172,148,100, 8, 75,174,231, 37,231, 21,103,200,221, 3,189,218, 78, 97, 74,228, 55, 3,231, 12, 76, - 96, 58, 58, 82,103,151,239, 43,150,214, 84, 86,119,119,119,216,219,219, 87,204,209, 98,177, 88,152, 60,121, 50,104,154, 54, 84, -100,149,141, 53, 84,174, 74,165,178,231,241,120,200,202,202,194,251,247,239,145,152,152, 88, 17, 58,128,162, 40,221,226,197,139, - 77,230,204,153,131,125,251,246,225,238,221,187, 15, 1,172, 5, 96,232,203,218,152, 17, 35, 70,152,106, 52, 26,156, 60,121,146, - 4,208,255,236,217,179,207,219,181,107,199,234,221,187,183,233,158, 61,123,198,148,181,145,193, 66,203,204,204,140,173,213,106, -177,103,207, 30,164,167,167,251, 2,136,123,250,244,105,224,136, 17, 35,246, 54,111,222,188, 73,108,108,236, 91,153, 76, 54, 11, -192,203,218,200,178,179,179, 39,121,123,123,159,165, 40,202,181, 71,143, 30,194, 95,126,249,197, 44, 62, 62, 30,206,206,206,160, - 40, 42, 6,117, 76, 97,245,246,237,219, 56,137, 68,226,213,165, 75, 23, 92,191,126,125,179, 94,175,223, 8, 96,203,204,153, 51, -157, 82, 83, 83,209,166, 77, 27, 88, 89, 89, 33, 62, 62,190, 68, 34,145,236, 69,105, 74,162,218, 76,184, 73, 0,150, 5, 6, 6, -182, 12, 12, 12, 28,101,101,101,245,117, 84, 84, 20,238,223,191,143,109,219,182, 97,213,170, 85,232,220,185, 51, 22, 45, 90,148, - 7, 96, 20, 0, 50, 41, 41,201,160,184,121,229,150, 45, 0,104,219,182,109,230,166, 77,155, 48,101,202, 20,250,247,223,127,255, -245,248,241,227,243,199,140, 25, 83, 49, 6, 78,152, 48,129, 62,118,236,216, 4,148,166, 97,250, 39,161,211,106, 53, 48,179,106, - 8,153, 52, 13,185,233, 17, 16,152, 58,192,175, 91, 43, 40,148, 26, 92,185,124, 30, 47, 99,162,193, 96, 48, 96,239,224, 2, 11, - 75, 27, 36, 36,188, 5,106, 94,109,172,211,106,181, 48,181,108, 0, 89, 81, 58, 52, 57, 47,192, 23,217, 97,226,247,131,161, 80, -106,113,225,226,121,196,198,190, 4,147,201,132,131,163, 11,204, 45, 74, 57, 9,186,230, 21,204, 70, 0,168, 34,158, 86,173, 66, -139,201,100,222,185,113,227,198,176, 14, 29, 58,176,222,189,123,135,119,239, 74, 95,110, 10, 11, 11, 73, 2,250,115, 57, 49,151, - 71,215,112,122, 15,148,173,206,168,156,187, 80,100,106, 42,142,127, 19,103, 95, 88,144,141,232,200, 7,120,151, 16,131,228,196, - 56,104,181, 42, 48, 25, 12, 48,152, 12, 52,104,216, 12, 15, 30, 70,104, 84, 36, 25, 81, 29,103,105, 57, 18, 75,132,118,238, 35, -215,175,251, 33,120,193,146, 53,252,225,195,246,225,101,252,107,200, 72, 7,208, 52,224, 96, 45, 68,235, 70, 75, 33,206,204,197, -169, 63,246, 40, 40,173,118,236, 71, 49,180, 62,225, 4, 0,251, 60, 52,221,123,224,143,201, 7,131, 78,172, 89, 50,103,186,253, -160, 33, 99,193, 41,120, 13, 93,230, 11, 52,108,215, 7, 4,215, 2,215, 66,194, 16,254,252,117, 54,165,167,215,216,231,227,247, -132, 90, 56, 43, 67, 42,149, 62,202,202,146, 56, 87,138, 2,239,204,229,242,106, 91, 29,247, 49,231, 7, 17,231,153, 76, 70,219, -245,235,215,235,236,237,237,181,177,177,177,216,183,111, 31,245,226,197,139, 16, 6,131,177, 91, 34,145,168,106,227,180,213,233, -162, 79, 4, 4, 52,109, 63,100, 8, 61,122,206, 28, 5,184,220,185, 91,183,111, 15,200, 45, 44,172, 71, 83, 20,108,173,172, 50, -182, 46, 95,190,105,216,136, 17,133,175, 30, 60,224, 71, 92,186,196,231,144,228, 11, 3,202,249, 87,160, 90, 78,177, 88, 28,126, -247,238,125, 28, 57,248, 11,180, 90, 53, 36,226, 84, 0, 64, 94,126, 17,106, 17, 89, 31,115,210, 10,133, 98,200,143,171, 86, 61, -254,113,193,124,135,111,187,247, 64, 90,116, 20,180, 5,185, 32,116, 36, 76, 8, 22,228, 57, 2,228,100,203,176,236,216,153, 28, -153, 66, 49,164,138, 65,162,202,114,150, 91,172,184,102,166, 96, 11, 69,224,136, 76, 63,176, 98,241,204,204,192, 17,138,192,226, -112,170,154,192,253, 9,167, 76, 38, 27, 58,108,216,176,151, 79,159, 62,181,156, 50,101, 10,190,249,230,155, 72,165, 82,217, 21, - 64,201,231,214, 39, 69, 81,226,111,191,253,150, 65, 16,132,104,236,216,177,220,220,220,220,138,200,234, 50,153, 12,215,175, 95, -135,167,103,233,170,254, 87,175, 94,161, 89,179,102,213,114, 78, 93, 22, 43, 6,176,110,193, 48,167,173,143,163, 37,115, 1,108, -110,216,196, 5, 97, 55,111,227,126, 88, 68,192,215,205,169, 93,125,199,182,251, 73,208,117,196, 18,175,182, 83,152, 34, 51, 71, - 28,189,112,158, 25,247,226,208, 6,133, 34,166, 49,246, 93, 92, 92, 93, 57, 9,130, 0, 77,211,159,132,114, 96, 50,153, 56,126, -252,120, 93,175,253,204,193,131, 7,103,206,152, 49,131, 45,145, 72,240,230,205, 27,200,229,114,240,120, 60,220,188,121,147, 4, -176,231,248,241,227, 55,143, 31, 63,222, 27,165,171,137, 66,235,210, 63,133, 66,161,191,159,159, 31,222,188,121,131,103,207,158, -157, 7,240, 50, 50, 50,242,252,187,119,239, 70,118,238,220, 25,127,252,241,135,191, 82,169, 60, 88, 23, 78,138,162, 42,199, 76, - 42,207,248, 16, 45,147,201,190,142,136,136,168,107,187, 75,242,243,243, 59,149, 9,235,116,123,123,123,179,232,232,104,212,175, - 95, 31, 90,173,182, 67, 93,251, 82, 81, 81,209, 47,187,119,239,254,125,210,164, 73,248,233,167,159,198,158, 57,115,102,108,223, -190,125,209,175, 95, 63, 28, 62,124, 24, 47, 95,190,220, 12,195,210,138, 85,117,237, 47, 1,188,180,183,183,159,237,226,226,130, -109,219,182, 33, 38, 38,102,211,186,117,235,150,191,124,249, 18,158,158,158,220,184,184, 56,242,115,158, 33, 0, 96,102,102,102, -166,211,233,112,233,210,165, 39, 0, 22,140, 29, 59,214,110,231,206,157,163, 68, 34, 17, 10, 10, 10,148,177,177,177, 99, 0, 92, -254,167,159,117, 52, 65,172,152, 50,117,110,224,212, 41, 99,120,222,109, 91, 67, 81,156, 1,165, 44, 27,138,146, 44,236, 62, 24, - 2,130, 96,192,214,214, 17,118, 14,206, 72, 77, 77,195,195,171,215, 52,114,133,114, 39, 71, 71,109,174,153,115, 78, 41,103,155, - 82, 78,133, 60, 7, 74, 89, 78, 5,167,157, 93,189, 50,206, 84, 60,136,184,166, 82,202,229,191,104,104,226,231,191,249,218,255, -155, 81,183, 92,135,149, 81, 88, 88, 56,111,250,244,233, 93,151, 45, 91,102, 77,146, 36,211,202,202, 10,169,169,169,228,185,115, -231, 10,100, 50,217,188,207, 41, 13,203,196,228,165,187,135,103,215, 65,131, 6,145, 3, 7, 14, 96,143,155,212,155,101,107,103, -135, 34,105, 62, 18,222, 68, 33,254,245, 11,184,123,182,194,234,117, 59, 0, 11,139, 90, 19, 73,150,165,213,233,191,246,199,197, -167, 59,249,246, 50,243,108,214,138,221,186,177, 57,180, 58, 18, 25, 25, 25,184,124, 41, 90, 27,251,252,126, 49, 69,106, 70, 42, -242, 12, 75,193, 19, 14,144,200,199,254,230,118,218,227, 27,183,238, 94,180,103,255,145, 37,203,230, 78, 17,118,246,233,137,152, -219,127,224,124,240,105,185, 74,173,217,202,102, 98,123,108, 62, 20, 9,117,172, 3,149, 74,165,253,120, 60, 85,169, 84,218, 47, -109,233,195,135, 15, 35, 59, 59, 91,147,146,146,114,131, 36,201, 51, 53, 36,123,254, 4,187, 1,205, 96,181,250,246,143, 62, 62, -189,127,188,121,147, 55, 97,233, 82,205,216,113,227, 22, 67,173,214,130,195,161, 89, 66, 33, 3, 92,174,201,171, 7, 15,248,191, -206,156,105, 69,104, 52,183,142,212, 16, 54,160, 10,252,229,171, 14,203, 45, 90, 93,186,116,198,132, 41, 11,160,172,100,209,122, -244, 44, 1,106, 45, 12,182,104,149, 33, 45, 37, 61,253,235,185, 43,126,188, 48,210,175,187, 87,115,215, 6, 92, 91,183, 6, 16, - 57, 56, 32, 63, 55, 23, 15,158,197,235,214,157,190, 16, 91, 38,178, 12,138, 43, 67, 81, 84,233, 36,119, 0,221,231, 45, 3,193, -100, 2,101, 97, 28,202, 87, 14,185,181,251, 6, 4,139, 5, 61, 77, 65,173, 86, 27, 50,233, 47,227,253,251,247, 67,199,142, 29, - 27, 26, 28, 28,204,240,243,243,107,125,241,226, 69,234, 75,250,142, 82,169,252, 26, 0,120, 60, 94,178,133,133,133,211,164, 73, -147,160,211,233,160, 80, 40, 80, 84, 84,132,140,140, 12,233,164, 73,147,180, 0,192,231,243, 57,195,134, 13, 51,171,141,115,199, - 57,177,106,193, 48,167, 93, 86,172,148, 81,197,121, 47,221,172, 88, 41,201, 95, 55,167,118,237, 56, 39, 86,153,213,147,175,207, - 75, 9, 79,144,200,111, 6, 30,189,112,158, 57,126,240, 80,189,179,232,109, 0,207,142, 62, 87, 27, 47, 65, 16,159, 4, 39, 53, - 80,100,125,128,146,146,146,229, 43, 87,174,236, 87, 88, 88,232,220,187,119,111,182,151,151, 23, 30, 63,126,140,224,224, 96,242, -209,163, 71,233,114,185,252, 7, 0, 42, 0, 33,159, 83,167, 30, 30, 30,110, 44, 22,171,220,149,246, 91,217,238,223, 46, 94,188, - 56,114,202,148, 41,104,208,160, 65,211,184,184, 56, 46,234,112, 31,209, 52, 93,225,101,248, 43, 65, 16, 68,226,175,191,254,234, -228,224,224, 64, 92,191,126,157,100, 50,153,159, 99,185, 57,124,232,208,161, 14, 58,157,110,234,180,105,211,224,235,235, 11,146, - 36,113,236,216, 49, 28, 58,116,200, 80,145, 85, 35, 18, 18, 18, 94,164,167,167,127,187,120,241, 98,108,219,182,109,249,226,197, -139,145,158,158,142,132,132,132,168, 47,225, 45, 46, 46, 86,166,165,165, 9, 58,118,236,232, 29, 27, 27, 27,219,181,107,215,102, - 83,166, 76,193,230,205,155,233,187,119,239, 14, 3,112,253,223, 49,122,199,191, 43, 8, 50,209,179,110,174, 91,255,203,170,198, -141,220,102, 76,158, 56,130,233,225,222, 12,242,162, 12, 88,219,216,195,217,165, 33,114,115,242,112,227,198,117,125, 94,158,244, -176,158, 65,172,125,247,174, 32,243, 75, 56,157,156, 27, 34, 39, 39, 7,215,174, 93,211, 75, 11,139, 15, 64,199, 88, 23,151, 42, -205,134, 17,134, 88,178,166,161,134, 40,241, 53,193,198,210,210,242,164,153,153, 89,182,153,153, 89,182,165,165,229, 73,192,160, -213, 7, 61, 42, 61, 29,152, 31,124,134, 13,227,129,199,251, 26, 44,214, 66, 11, 75,203,235,230,230,230,249, 93,186,116,209, 4, - 6, 6,170,226,226, 94, 81, 98,113, 58,109,110,110, 94, 84,113,124, 85,156, 31,193,210,178,145,169,208,177,217, 42,115,231,214, - 15, 68,142, 77, 75, 68,142, 77, 75,204,157, 91, 61, 20, 58, 54, 93, 99,105,217,200,212,160,114, 86,131,134,118,176,117,183,193, - 30, 79, 91, 66,233,110,131, 61, 13,237, 96,107,240,181,215,236,246,211, 19, 4,244, 40, 93,134,141,207,224, 44,231,160,152, 76, -230, 17,103,103,103, 71,212, 45, 96,221, 39,156,227,128, 6,227,184,220,169,103, 3, 2, 38, 36,223,189, 59,182, 56, 41,105,116, - 81, 98,226,136,168,211,167, 71,254, 54,114,228,184,209, 92,238,180, 97, 64, 35, 67, 57, 29, 29, 29, 55,189,120,241, 34,216,208, - 79, 37,225,101,112,125, 54,106,232,116,211,175, 71, 7,218,127,250, 16,218,127,250, 16,218,175, 71, 7,186, 81, 67,167,155, 95, -208, 70, 4,147,201, 28, 37, 16, 8, 78, 10, 5,130, 24,161, 64, 16, 35, 16, 8, 78, 50,153,204, 81,168,121, 14,213, 7,156,214, -214,214,207,237,237,237,179,235,242,177,177,177,137,172, 67, 57, 71,187,185,185,165, 51, 24,140, 29,117,188,167,107,226,116,231, -243,249,137, 66,161, 48,163,242,135,207,231, 87, 14, 12,101, 45, 16, 8,174, 8,133,194,157,134,112,254,188,162,217,170,135, 33, -179, 95,254,188,162,217,170,143,191,155,243,157,229,164,199,161,107,243,231,124,103, 57,201,144,114,218,217,217,221,181,179,179, -147,216,217,217, 73,236,237,237,107,252,216,216,216, 60, 55,128,147,103,106,106,186,211,212,212, 52, 91, 40, 20,234, 69, 34, 81, -182, 80, 40,220,129, 74,161, 45, 62,183, 62, 25, 12,198,230,166, 77,155,170,152, 76,230,239, 31,125,181,173,113,227,198, 42, 22, -139,181,181,142,156,102,157, 59,119,214, 71, 71, 71,211,190,190,190, 52, 0,203,191,176,221, 29, 44, 45, 45,175,155,153,153,165, -153,154,154,238, 6, 32,252, 76, 78, 2,192, 40, 39, 39,167,168,110,221,186, 41,156,156,156, 34, 0, 12,250, 11,203,217,239,187, -239,190,163,210,210,210,104,154,166,233,180,180, 52,250,187,239,190,163, 80, 26, 40,242, 75,158,201, 43,102,206,156, 73, 63,122, -244,136,126,244,232, 17, 29, 17, 17, 65,247,235,215,143, 2,240,253, 23, 62,231,241, 87, 93,187, 87, 67,155, 70, 95, 53,177, 60, - 51,102,168, 15, 21,114,121, 7,189,250,135, 25,116, 79,223,102,180,103, 99,203, 11,238,238,214,238,127, 5,231,170, 31,166,211, - 61,190,109, 74,121, 53,178, 60,237,213,208,166,209, 63,124,237,255, 31,173, 90,248,187, 39,156,253,203,180,248,161, 88,170, 26, -245,234,213, 67,126,126, 7, 30,139,229,195,229,114,187, 50,152,204, 59, 5,185,185,243,203, 94,183,244,255,148,169,182,198, 1, -189, 17, 56, 53,164, 36,248, 28,206, 15, 38,178,127, 38,103, 93, 56, 12,226,172, 46,169, 52,165, 86,103, 90,147,228,243,221,168, -177, 14, 62,224,116,114,114,154, 74, 81,148,155,161, 5, 98, 48, 24,201, 98,177,248,224,231,212,103,147, 38, 77,232, 50,247, 54, -241, 87,182,251,223,209,151,254,151, 56,143,254,210,162,158,103,139,175,150,196,188,136,219, 86,230, 86,172,192,154, 57,150,166, - 62,221,186,172,124, 16,118,247,167, 53,187, 11, 75,254,205,215,206,128,129,115,218,254, 2,206,242, 32,161,117,226, 52, 49, 49, - 9,108,223,190,253,212,199,143, 31,255,174,215,235,167,253,143,246,207,126, 76, 38,115,177,135,135, 71,235,132,132,132, 40,189, - 94,191, 13, 85, 4,138,252,140,114,254,224,230,230, 54,139,205,102,115,101, 50, 89, 97,102,102,230, 74, 0,103,254,211,234,211, -171,137,149, 55, 77, 87, 4,221,222,240,230,125,193,211,191,140,147,166,244, 20,205, 92,159,144,148, 31,249,111,104,247,255,111, - 34,235,192, 63,241,195, 61,140,156, 70, 78, 35,167,145,211,200,249,151,115,242,141,245,105,228,252,127,200,249,255, 18, 44, 99, - 21, 24, 97,132, 17, 70,252,215, 65,105,172, 2, 35,140,248,143, 67,101,171, 86,133, 53,139,168, 65,149,214,197, 36,248, 57,202, -246,182,145,211,200,105,228, 52,114, 26, 57,141,156, 70,206,255, 57,206,255,175, 34,235, 64, 13,219,127, 27,140,102, 85, 35,167, -145,211,200,105,228, 52,114, 26, 57,141,156,255, 11, 66,171,202,109,163,235,208,136,191, 29,187, 6,195, 9, 0,230, 94,132,248, -239, 56,222, 8, 35,140, 48,194, 8, 35,254,205, 56,128,106, 92,135,255, 9, 66,171, 30,128,175, 81,154,248, 54, 30,192,125, 0, -133, 95,192,103, 3, 96, 4, 65, 16,195, 1,128,166,233,179, 40, 93, 53,146,103,200,201, 60, 30, 47, 91,165, 82,217,149,253,159, -163, 82,169, 42,231, 50, 32,240,233,106, 54,186,210,167, 74,184,185,185,101,171,213,106, 59, 3,126,190,136,166,233,151, 12, 6, - 35, 70, 36, 18,133, 37, 36, 36, 4,215,229,194,187,118,237, 58,129,201,100,110, 0, 0,189, 94,191,226,206,157, 59, 71,254,198, -118,235,224, 82,207,225, 15,173, 78, 75,102,231, 22,172,196,167,129,252, 0, 0,123,250, 99, 19, 65, 98, 73,217,255, 91,103, 7, -215, 28, 71,167,174,199,215, 0,111, 19, 19, 19,127,123,123,251, 62, 25, 25, 25,207, 1, 44, 5,106,143,106,236,226,226,242, 61, -139,197, 26,171,215,235, 27, 49,153,204, 68,146, 36,143,167,167,167, 7, 25,159, 33, 70, 24, 97,132, 17, 70, 24, 32,182, 62, 65, -157,132,150,167, 53, 28,104, 96, 20, 8,244, 4,141, 91, 4,112, 42, 62, 31, 89,134,158,223,215, 19, 58, 29, 89,250,155,108, 6, -244,215,223, 51, 14,244,233,211,199,121,206,156, 57,248,230,155,111,240,248,241,227,142,135, 15, 31,158,116,230,204,153,151, 20, - 69,221, 1,240, 24, 48, 40,148,130, 16,165,113, 90,198,244,233,211,167,199,134, 13, 27,152,205,154, 53,131, 82,169,196,221,187, -119,125,182,110,221,186,243,225,195,135,183, 1,156, 40, 19, 4,213, 38,192, 83,169, 84,118,229,201, 56, 9,130,176, 27, 54,108, -216,211,202,226,170, 44,191, 26, 65,211,244, 35,130, 32, 34,244,122,253,227,115,231,206,165,123, 2, 29,166,187,177,207,205, 79, -214, 58,127,204,169, 86,171,237, 46,253,188, 17, 44, 46, 23,234,146, 98,116,156,248, 47,209,123,107,213, 18, 16, 20, 9, 38,232, -194,174,235,119,190, 4, 16,147,153,153,249,210,215,215, 55,185,174, 45,204,100, 50, 55,220,184,113,195,145,166,105,248,249,249, -109, 0,240,119, 9, 45,238,215,222,173,238, 92, 57,127,146, 39, 43,200, 70,239, 65, 35,143,191, 77,207,153, 0,224,252, 7,162, -169, 15,236, 9, 2, 75,102,110, 60,193, 4,128,189, 63,140, 89,186,163, 23,118, 45, 8, 65, 22,128,174,101,226, 7, 0,126, 6, -112,103, 79, 31,216, 3, 88, 54,115,227, 9, 2, 0,246,253, 48,102,201,158, 62,248,117,246,245, 58,135,173,152, 53, 97,194,132, - 93, 27, 54,108, 96, 58, 58, 58, 66, 44, 22,247,110,218,180,169, 71,113,113,113, 83,212, 48,137,184, 65,131, 6,167, 59,119, 27, -208,112,200,240, 81, 2, 91, 27, 75,100, 74,242,204, 78,159,252,125, 58,243,209,221, 62, 41, 41, 41, 35,141,207, 16, 35,140, 48, -194, 8, 35,170,193,231, 71,134,111,227, 8,190, 92,139,239, 88, 76,226,251, 78,222, 77,187,143,238,219,153,209,212,171, 9, 94, -191,138,235,117, 57,236,201, 86, 70,196,171, 80, 82, 79, 7, 9,217,184, 20, 41,169,121, 37,140,142, 4, 43,228,210,137,210,145, -112,210, 24,230,211,167, 79,155,180,109,219,182, 34, 53, 76,247,238,221,209,189,123,119, 98,239,222,189,173, 66, 66, 66, 90, 29, - 58,116, 72, 27, 26, 26,250, 7,106,142,143,226,223,184,113,227,173,187,118,237,226,250,250,250,130,203,229, 86,124, 33, 18,137, - 48, 96,192, 0, 12, 24, 48,128,153,153,153,233,119,229,202, 21,191,159,127,254, 89,147,154,154,186, 24,255,138,210, 92, 35, 86, -174, 92,233, 93,197,238, 27, 4, 65,188, 39, 73, 50,170, 85,171, 86,233, 30, 64,147,233,125,191,185, 53,171,147,187,112,254,242, -195, 85,242,176, 56, 28, 28,157, 80, 58, 86, 87, 22, 90,201, 97,215, 33, 50, 51,205, 23,152,154,190, 4, 16, 3,224, 37, 77,211, - 49,137,137,137,113, 95, 1,173,190,182,100,252,241,123, 33,213,178, 14, 98, 11,233,233,233, 48, 55, 55,231,251,250,250, 74, 8, -130, 88,115,247,238,221,191,122, 66, 94,135, 53, 75,102,177, 11, 83, 94, 34,235,205, 35, 44, 28,238, 35,152,191,251,207,159, 84, - 26,221,249,154, 78, 34, 8, 6,227,231, 8, 42, 0,165,201,120, 87,230,231,231,251, 2,128,181,181, 53, 7,192,157, 29, 79,208, -119, 65, 39,226, 75, 98,187,177,153, 76,230,158,195,135, 15, 79,249,254,251,239, 75, 83, 71, 60,120, 0,145, 72,132,117,235,214, - 53, 88,180,104,209, 38,146, 36,231, 85,103,201,234,220,109, 64,195, 95,183,253,212,180,164,160, 72,189,127,207,153,103,245,154, -123, 50,102,250, 47, 50,253, 85,171,118,208,235,245,223, 27, 45, 91, 70, 24, 97,132, 17, 70,212,197,154, 85,171,208,242,176,193, -145, 54,205,221, 71,140,238,231,195,109,209,188, 25,216,220,127,133,110,105,235,237,141,182,222,222,140, 0, 89, 73,207,167,207, - 94,244, 60, 23,242, 88,173,208,165,158, 73,200,195, 4, 67, 75, 85,158,148,118,195, 32,251,110,114,105, 14, 15, 0,132, 22,118, -170, 31, 46,101,133,117,234,212, 9,206,206,206,236,208,208,208,201,181, 8,173, 31,226,227,227,185, 76,102,205,241, 80,235,213, -171,135, 97,195,134,193,211,211,147,211,165, 75,151, 31,170, 19, 90, 60, 30, 47,135, 32, 8, 59, 0,176,178,178,210,175, 89,179, - 38,138, 46, 5, 0,208, 52, 77, 63, 98, 48, 24,143, 41,138,122,242,231,159,127,102, 52, 5,236,122,183,245,188, 63,107,220, 48, - 1,125,110,103,181, 34, 65, 85, 92, 92,229,126,129, 72,152,203, 23, 10, 95,114, 5,188, 24,148,230,242,138,113,118,118,142,107, - 10, 56,183,247,116, 11,217,187, 96,140,233,239,211,126,170,181, 46,219,180,105,227,209,178,101, 75,158, 94,175,135, 92, 46,199, -190,125,251,204,249,124,190,121,159, 62,125, 86, 87,238, 0, 94, 64,139,161,245,152,211,214,102,234,103,127, 70, 71,178,232,220, -209, 59,101,216,128, 62,102,222, 95,119,198,219, 59,199, 80, 80, 80,130, 34,169, 12, 20, 69,125, 18,215,103,246,117,100,239,233, -143,173,123,151,143, 89, 70, 48, 24, 68,171,193, 75, 49,208,161,104,110, 96, 96,224, 43, 0, 38, 28, 14,167,114, 63,172,199,119, -106,190,181, 73,175,206,216,183, 98, 28,104,138,162, 1,108,173,131, 53,203,206,212,212,244,114, 72, 72, 72,135,118,237,218,225, -241,227,199, 72, 74, 74,194,172, 89,179, 52,179,103,207,102,143, 31, 63,158, 88,184,112,225,156,159,127,254,249, 28,128,135,159, -220, 8, 44,214,216, 65, 67, 70,114,100,210, 98,149, 70,173,213, 88,217, 88, 80,106,185, 74,145, 87, 88,172, 26, 57,102,170,230, - 85,228,147,177, 0, 62, 17, 90, 95, 88,159, 70, 24, 97,132, 17, 70, 24, 0,154,166,219, 1,176, 5,144, 75, 16,196,179,202,219, -101,135,148,103,107,249,120, 59, 15,165, 94, 41,235, 74,116,121, 40,157,238, 99, 11, 64, 15,224, 41, 65, 16,133, 95, 88,196,154, - 87, 25, 6, 7, 7,211,149,255, 86, 18, 90, 52, 77,211,180, 46,255, 61,173, 78,184, 78, 43,158, 29,252,228,163,124,117,158,150, - 60, 61, 67, 63, 57,177,138,246,176,169, 57, 11,123, 95, 79,232,198,180, 4, 61,179, 29,232,121, 93, 44, 84, 79,159, 62, 13,165, - 40, 42, 56,160, 51,104,250,245, 9,154,126,125,130, 94,208, 17,244,185,115,231,110,108,218,180, 41, 56, 40, 40, 40, 24, 64,109, -243,148,178, 75,158, 69,208, 79,236, 64, 87,135,248,248,120, 58, 48, 48,144, 94,190,124, 57,253,251,239,191,211,168, 37,130,186, -159,159,223,221,216,216, 88,122,252,248,241, 81,168, 33, 48,160, 23, 32, 28,219,192,225,141,250,244, 78,173,230,251, 22,116,225, -183,188, 42,175,223,209,209,241,131,242,108,118,119,160,127,107,239, 78, 31,233,217, 54,139,166,233, 27, 52, 77,111,166,105,122, - 36, 77,211,158, 0,208, 6, 48, 27,228,104,253, 78,117,230, 87,165,102,218,215,181,230,189,107,211,166,141,199,226,197,139, 11, - 52, 26, 13,157,156,156, 76,239,223,191,159,190,117,235, 22,125,233,210, 37,218,199,199, 39,179, 82,121,237, 39,121,186,102,107, - 14,173, 85,127, 78, 47, 50, 97, 50,127,123,118,235, 28,253,238,254, 89,250,233,169, 77,244,241, 31, 71,211,115, 6,117,208,154, -241,185, 42, 0,221,170, 59,111,118, 39, 52,241,108, 96,155,144,154,154, 74,107,181, 90,122,226,196,137,180,159,159, 31,221,171, - 87, 47,186, 71,143, 30,116,247,238,221,233,110,221,186,209, 97, 97, 97,116,102,102, 38,221,163,115, 91,121,127, 47,120,215,161, -104,205, 93, 93, 93,179,146,147,147,105,173, 86, 75,135,134,134,210,199,142, 29,163, 67, 67, 67,233,128,128, 0, 26,192,145,153, - 51,103, 42, 11, 11, 11,105, 63, 63,191, 12, 84, 17, 53,222,213,213, 53, 46, 54, 33, 61,125,199,198,131, 97, 71,127, 59, 25,118, -225,220,173,176,203, 55,159, 94,189,116,243,217,153, 39,209,137,151, 92, 93, 93,227,170,104,255, 47,170, 79, 35,140, 48,194, 8, - 35,106,215, 34,101, 66,171, 95,153,177,163, 31, 77,211, 61, 62,218,238, 87, 38,156, 62,217, 14, 8, 8, 88, 94,121,187,252,152, -128,128,128,229, 0,232,142, 29, 59,158,164,105,186,201, 95, 80,252,105, 85,124,106,183,104,149,131,204,120, 10,182,123, 31,152, -232,117,208,229,197,131,146,166, 2, 66, 7, 40, 9, 17,242, 37,169,120,115,255,124,205,137, 36,202,112, 45, 30, 38, 0, 66,227, -226,226,240,230,205, 27,164,167,167, 67, 32, 16,124,114,220,131, 7, 15,192,231,243,225,232,232,104,152,210,213,124, 56,206,189, -108,235, 10, 81, 71, 95,228,141,158,129,208,208, 80,228,228,228,128,205,102,131,195,225,128, 36,201, 90,249, 24,140,210,140,191, -229, 86,172,170,142,241, 5, 88, 92, 43,209,149,189,171,231,185, 49, 30, 5,155, 40,211,222, 33, 83,165, 55,204,146, 39, 18, 66, - 32, 20, 72,248,124, 65,133,187, 16, 64, 12, 65, 16,111,219, 0, 38, 66, 17,239,202, 31,235, 23, 58, 48, 35, 67,121,202,119, 47, -171,228,232,209,163,199,116, 0,171,105,154,150,182,108,217,210,126,195,134, 13,150, 98,177, 24,175, 95,191,198,153, 51,103,114, -201,210, 11, 37,104,154, 94, 11, 0, 95, 3, 60, 11, 91,139,155,191,173,154,103,138, 59,167, 57,159,211,139,204,189, 6, 92, 29, - 58,126,230,236, 93,243, 6, 64, 94,162,196,137, 91,145,184,241,226,253, 64, 0, 15, 80,195,188,183, 61, 15,241, 14,200,237, 62, -100,200,144,168,123,247,238,217, 28, 58,116, 8, 36, 73, 86,249, 57,116,232, 16,110,223,127, 49, 23,192,115, 3,139, 85,207,205, -205,237,246,147, 39, 79,108, 5, 2, 1,110,221,186, 5,169, 84, 90, 97,201,154, 48, 97, 2, 33,149, 74, 71,237,219,183,111,104, - 74, 74,202,182,251,247,239,231,163, 52, 23,113,136, 88,194, 0, 0, 32, 0, 73, 68, 65, 84,228, 7, 29,129,201,100,190, 39, 73, -237, 87,142, 94, 77, 88,195, 7,116,238, 44,203,127, 9,145,117, 75, 60,138,126,127, 69, 90,152,175,100, 50,153,239, 43, 31,255, - 87,212,167, 17, 70, 24, 97,132, 17,117, 3, 65, 16,193, 52, 77,247, 39, 8, 34,248,227,125, 31,255, 95,126,220,166, 77,155, 42, -182,203,207,217,188,121,243,198, 74,219,138,191,168,120, 53, 78,134,239, 82,166, 32,187, 84,117,144,250,245, 5,168,223, 92, 6, -219,181, 19, 56,158, 3,193,116,245, 65,218,203, 59,136,190,190, 3, 25,175, 30,128,166,244,112,244,104,111,104, 65, 84, 95,125, -245, 21, 84,170,210,169, 89,106,181, 26,108,161,165,106,225,180, 49, 60, 0,160, 88, 60,117, 37, 5,107, 16,161,105,167,174,104, -159, 77,227,169,125,169,161,162,125,118,233,121,235, 39, 78, 4,155,205, 6,155,205, 6, 81, 54,245,199, 16,161, 69,148, 29, 76, -149,186,175,170, 42, 4,161,224,154,156, 56,181,218,191, 61, 55, 37,134,163,142,125,132, 76, 53, 69, 95,201,214, 95, 53,164,188, - 2,161, 64,204, 23, 8, 98,248, 34, 97,133,208, 34, 8,226, 61, 0,208, 38, 38, 65,199,214,250,183, 20,102, 39, 10, 85,207, 66, - 33, 81, 81,218,106,104,214, 94,191,126,221,142,197, 98, 57,232,245,122,164,165,165,225,213,171, 87,248,245,215, 95,179, 75, 74, - 74,186, 68, 70, 70, 38, 84,214,142,122, 62,231, 76,208,186,121, 13, 89, 47,195,121,234,247,177,117,238, 61, 54,205,191,243, 27, -216,165,213,213,233,227, 86,224,187,190,189, 48,190, 75, 83, 58, 57,179, 64, 5,224, 86,153,233,181, 54,136, 35, 35, 35,123,126, -251,237,183,199, 91,183,110,237, 69,211, 52, 90,180,104,129, 81,163, 70, 33, 40, 40, 8,209,209,209, 40, 46, 46,214,134,132,132, -236, 4,112,216,192, 98, 9, 44, 45, 45,111,132,133,133,217, 10, 4, 2,132,132,132, 64,169, 84,194,209,209, 17,179,103,207,230, -108,222,188,249,104,113,113,241,240, 77,155, 54,241,146,147,147,127,187,121,243,102, 3,148,230,157,251,164, 19,104, 52,154, 3, - 39,130,142,236,154,237, 63,199, 41,236,241,235, 80,181,172,196,220,213, 53,189,216,214, 82,100,186,115,203,218,250, 26,141,102, -122,213,245,121,247,179,234,211, 8, 35,140, 48,194,136, 79, 80,163, 22,169, 44,158, 62, 22, 91,117, 17,105, 0,148, 1, 1, 1, - 63, 16, 4, 17, 28, 16, 16,240,195,166, 77,155,148, 0, 50,255, 14,145, 85, 33,180,250,247,239, 31, 30, 28, 28,140,254,253,251, -135, 87, 75, 65,233,161, 77,190, 7,109,242, 61,240, 59,206,197,159,155, 70,127,116,241,212,103,151,110,192,186, 91, 97,106,181, -154,117,228,200,145,138,121, 91, 0,160,215,235,255,242, 86,172,139,208, 42, 19,122,159, 20,194,141, 43, 10, 63,176, 96,248,215, -214,122,133,137,230,193, 21,136,213, 20,185,237,157, 86,241, 76, 74,255, 92, 29,231,165,249,211,145,126,255, 54, 4, 34, 81,250, -148,123, 49, 21, 86,172, 50,145,149, 4, 0, 13,184,166,161,129,243,190,243,113, 96,131,173,185,122, 22,153,106, 74, 29,152,162, - 59, 92, 77,103, 3, 77,211, 72, 74, 74,130, 66,161, 64, 68, 68, 4,206,159, 63,159, 91,133,200,130, 27, 87,116,247,247,165, 99, - 59,152,149,100,177, 53,207,110, 35, 83, 77, 25,228,234,178,105,241, 93, 39, 54,131, 8, 33, 24, 76,126,247,175, 61, 48,127,234, - 96,236,248,253, 79, 82, 99,215,185,255,174,203,215, 70,200,212,218, 31, 12, 20, 89, 21,198,198,200,200,200,166,145,145,145, 92, - 0, 93, 71,141, 26,117,109,232,208,161, 8, 15, 15,199,149, 43, 87,220, 1, 72,202,142, 91,135,210, 68,217, 63, 3, 72,172,206, -240,200,102,179, 79,221,190,125,187, 89,189,122,245,112,251,246,109, 40,149, 74,204,156, 57, 83,227,239,239,207,158, 48, 97, 2, - 81, 84, 84, 84, 97,201,138,136,136,200,175, 78,100, 1,128, 88, 44,190,126,254,204,177,111,190,253,246,219,193, 13,221, 61,205, - 18, 75,138,115, 4, 2, 30,255,126,248, 29,246,179, 39, 15,127, 19,139,197, 79,171,174,207, 80,131,235,211, 8, 35,140, 48,194, -136,234, 97,144, 22,249,200, 50, 85, 23, 84, 58,207,100,211,166, 77,175, 54,109,218,244,129,197,235, 11,241,241,170,195,171,229, - 99,218,103,197,209,210, 23,165,125,122, 1, 20, 85,151,139,253,100,159,165,165, 37,201,231,243, 63, 16, 90,148,129,156, 5, 23, - 79, 34,113,214,152, 10, 75, 86,185,101, 11,189, 39,124,145,208,162, 40, 42, 2,192, 7,133, 16,216,121,140,222, 57,192,171, 83, -211,134, 78, 12,221,153, 95,145,161, 32, 85,171,227,181,170, 55, 37,244,192,184, 42, 38, 89, 87,112,146, 58,240,132,252, 84,190, - 72,248,177,200, 74, 1, 0,161,189,251,208,109,125, 60,187,180,242,108,204, 32, 79,255, 2,177, 66, 39, 11,136,211,106, 19,229, -244,133,106,234,112,117,175, 94,189, 86, 91, 91, 91,243,118,237,218,101,238,234,234, 10,146, 36, 53, 31,139, 44,129,157,199,232, - 95,191,107,222,201,195,193,146,161, 59,183, 27,233, 74,189,226,215, 68,221, 81, 67, 68,150,141,185,232,102,224,198, 89,124, 1, -215, 4, 42,149, 10,155,247,158, 67,200,195,216,254,121,177,151,110, 2,184,249, 5, 29,114, 74,255,254,253,119,172, 91,183, 14, - 58,157, 14,147, 39, 79,198,251,247,239, 67,226,227,227,127,173, 95,191,254,226,165, 75,151,214,115,112,112,192,136, 17, 35,216, - 58,157,110, 66, 53, 28, 91, 78,156, 56,209,191, 85,171, 86, 8, 15, 15,135, 84, 42,133,163,163, 35,252,253,253, 57,155, 54,109, - 58, 90, 92, 92, 60,124,227,198,141,188,164,164,164, 26, 45, 89, 31,244,107,189,126,253,254, 29,179, 22,183,251,218,135,241,238, - 93, 2,153,214,222,151,113,231,246,149,123,214,214,214, 71,211,210,210,254, 85,159,131, 91,212,185, 62,141, 48,194, 8, 35,140, -248,107, 64, 16,196,213,178,121, 87, 31, 88,185, 62, 22, 97,229, 22,171,202,219, 31, 31, 95,246,253, 95,241,178,124,160, 10,225, -245, 97,120,135,254,253,251, 27,188,172,158,146,231, 26, 36,158, 62, 70, 95, 79,232,156, 68, 96,253,224,203, 0, 91,104,169, 26, -176,238, 86, 88,117,199, 10,133, 66,131, 45, 90,148, 90, 85, 91,163,212, 73,104,149,205,209,186, 65,211,244, 7, 66,203,220,222, -195,119,217,210,121, 59,125,134,246,102,100, 79,237, 8,169, 76,173, 94,250,154,164, 50, 20, 53,139,172,210, 81, 92,151, 44, 16, -138, 98,120, 66, 65,101,145,149, 6, 0, 60,187,198,237,151,204,159,189,183,219,232, 1, 68,238, 76, 31, 20, 74,149,234,197,175, - 72, 66,172,164,135,199, 1,119,170,162, 11, 11, 11,219, 15, 96,191,175,175,111,182, 80, 40,132, 76, 38,251,164, 13,202,203,219, -105,104,111, 70,246,148, 14, 40,144,107,213, 75, 95,145,200, 84, 82,167,106, 19, 89,182, 22,166, 55, 3, 55,204, 18,100,102,164, -128,205,102, 67, 36, 18,225,214,131, 24,228,189,186,252, 37, 2, 11, 12, 6, 99, 77, 64, 64,192,234,217,179,103, 35, 63, 63, 31, - 87,174, 92, 65,223,190,125,113,242,228, 73,215,107,215,174,237,232,218,181, 43,152, 76, 38,130,131,131,161,211,233,222, 86, 67, - 51,120,218,180,105,139,135, 14, 29,138,167, 79,159, 66, 34,145,124, 96,201,146, 74,165,163,246,238,221, 59, 52, 57, 57,185, 86, - 75,214, 71,104,239,214,184, 13,123,249,202,237, 80, 43,114, 88,185,226,199,225,161,183, 24,143, 10, 10, 10, 4, 0,138, 62,183, - 62,141, 48,194, 8, 35,140, 48,216,170, 85,157, 22,201, 45, 19, 81,185, 85,109, 87, 18, 88, 85,109, 19, 31, 89,193, 52, 31,125, - 31,253,119, 94,147, 65, 22, 45,150,125,115,144,217,177,149,132, 86,206, 7,223,243, 76,173, 12,114, 29,234, 72,176, 2, 15, 87, -196,209,226,229,231,231,243,108,108,108, 84,149, 5,130, 64, 32, 64,189,122,245, 80, 88, 88,136, 3, 7, 14, 0,181, 79,138, 38, -205,134,142, 67,251,209,147,241,204,153, 3, 90,167,173,176,108, 5, 78,156,248,129,216, 98,179,217,229,115,195,106, 27,116,159, -148, 89,154, 30, 1,160,219,184, 55,252,137, 39, 20, 78,228,217,184,216,204,159, 53,197, 36, 57, 71,141, 48,159,229,210,115, 91, -150,137,210,105,209,236, 52, 20, 61,172,133, 47,113,208,190, 99, 31, 91,178, 50, 90,187, 55, 92,193, 19,240,166,114,172, 26, 56, - 4, 44,156,101,146,156,173, 38,194,218, 47, 45, 62,255,243, 82, 65, 18, 76, 23,103, 64,122,199,128,230, 89,221,183,111,223,213, - 52, 77,211, 20, 69,173, 4,128,202,229, 93,232, 63,213, 36, 49, 75,133, 80,159, 21,133,231,183, 44, 51, 77, 71,205,229,181,105, -241, 93, 39,123, 75,179,155,129, 27,103, 11, 36,226, 84,112,185, 92,152,154,154, 34, 61,187, 8, 38, 44,166,242, 11,251, 27,183, -115,231,206,203,102,205,154,133,152,152, 24,204,156, 57, 83,146,150,150,118,225,244,233,211, 51, 87,173, 90,197,242,243,243,131, - 68, 34,193,214,173, 91,117, 15, 30, 60,216, 8, 96,107,149,253,145,197,154,242,211, 79, 63,209,153,153,153, 68, 82, 82, 18, 28, - 29, 29, 49,103,206, 28,206,198,141, 27, 43,230,100,213,197,146, 85, 14,177, 88, 28, 30,114,251, 17, 6, 94,223, 9, 82,167, 14, -151,230,167,221,123,147, 88, 24,110,197,225, 44,114,106,211,226,179,234,211, 8, 35,140, 48,194,136,191,196,138,245,172,166,237, -255, 0, 84,229, 58, 52, 72,104,189,221,189, 98,146,251,164,217, 75,192,119,237, 4,117,220, 69, 80,178,236, 10,139, 22, 79,100, - 9,171,250, 94,144,202,213, 56, 27,250, 2, 0,222,214,165, 84, 37, 37, 37,104,219,182, 45,246, 76,240,232,166, 42,201,231,241, - 1,168,185,102,170, 75,156,206, 97,215,174, 93, 83, 80, 20,117, 10,192,181, 90,104,214, 52,107,214,236,183,237,219,183,115,188, - 70, 79,130,236,241,253,143, 45, 40,224,243,249,224,114,185,120,249,242, 37,194,194,194, 52, 0,214,212,210,160, 79, 72,146,140, - 62,125,250,116, 70,147,134, 78,189,219,182,110, 57,247,135,229, 1,166,175,239,135, 96,229,198,223,168, 38,222,126, 69,155, 79, - 94, 42, 41, 18,213,239,174,148,196, 71, 25,112,169,209, 31,137,172,204,175,220, 92,186,181,110,222,108,201,202,149, 43,204, 94, -221,191,133, 85, 63, 7,210,238,173,122, 20,253,124,254,114,113,158,160, 65, 47, 85,206,155,167,134,212, 97,120,120,248,126, 0, -251,203,183, 63, 46,111,192,186, 95, 41,143,118,189, 11, 55,159, 60, 47, 47, 54,173,223,163,166,242,218,122, 13,254,198,217,214, -242,230,238,245, 51, 4, 89,226, 52,112,185, 92,136, 68, 34,164, 73,164, 88,189,243,140, 92, 75, 81,189,191, 84,104,153,154,154, -114,181, 90, 45,246,236,217,131,180,180,180,142, 0,210,158, 63,127, 30, 56,114,228,200, 93, 45, 90,180,248,234,213,171, 87,111, -101, 50,217,108, 0,111,170, 35,177,176,176,232,104,107,107, 75, 60,122,244, 8, 51,102,204,208,204,153, 51,135, 61,126,252,120, -162,176,176,240,115, 45, 89, 0, 0, 39, 39, 39,223,158,221,191, 70,167,158, 51,195, 53, 42,233,189,228, 55, 71,195, 25,244, 67, -222,231,214,167, 17, 70, 24, 97,132, 17,255, 51,248,188,192,224,190, 0,203,195, 26,211,155, 57,177,179,130,182,204,161, 75, 18, - 35,104,229,211,253,116,241,197,169,244,213,173,227,233,107,187,231,211, 51,251, 53,163,191,178, 35,178, 60,172, 49,221,247, 83, -225,246, 65,118,239,190,158,208,245,108, 12,186,103, 99,208,253, 60,160, 3,240, 67,155, 54,109, 46,249,183,255, 87, 28, 45,255, -246,160, 1,204, 0, 32,170,166, 88, 85,101, 12,119, 4,112,160,109,219,182,228,157, 59,119,232,248,225, 61,232,200,175,108,232, -217,179,103,211,171, 86,173,162,199,140, 25, 67,219,218,218,146,101, 21,225, 88, 27,231,192,129, 3,157, 1,224,255,216,251,238, -240, 40,170,246,237,123,102,251,166,247, 6, 73,128, 64, 32,141,132, 22, 18, 90, 8, 69, 65,130, 2,130, 72, 87, 20, 94,149, 34, - 69, 9, 32, 82, 20, 18, 69,138, 8, 8,168, 72, 81, 74,164,135,162, 52, 65, 65, 74, 8,164,147, 64, 8,169,155, 94,118,147,109, -179, 83,190, 63,146, 44, 33, 36,217, 77,224,253,126,190,186,247,117,237, 53, 59, 59, 51,207,158, 57,103,230,156,251,220,207,115, -206,113,119,119,183,233,237,219,165, 48,225,226, 41,238,234,190, 45,220, 15,115,198,113,125,187,251,150,186,248, 12,186, 39,117, -237,214,195, 64,246,233,109,186,184,184, 44,229, 56,110, 4,199,113,174, 0,224,237,109,111,209,211,167, 75,193,189, 11,167,184, - 63,246,111,229,126,152, 51,142, 11, 9,244, 43,107,239, 27,158, 38,113,242, 9, 54,198,102, 83,104, 50,189, 1, 62,165,206, 93, -250,221,109, 33,189,122,155,157,130,223, 56,145, 87, 80,196,221,188,121,147, 59,115,230, 12,247,199, 31,127,112,251, 14,157,224, - 60,250, 76,168,118,232, 62,166,127, 43, 30,157,230,210,105, 61,106,212, 40, 46, 35, 35,131, 27, 57,114, 36, 7,192,186,141, 54, -143,103,101,101,113, 73, 73, 73,220,178,101,203, 56, 0,123,222,127,255,125, 85, 85, 85, 21, 55,108,216,176,156, 58,130,197,111, - 75, 58,189, 58,182,139, 30, 59,122,224,170, 57,255,121, 61,236,121,243,243, 5,194,100,211,100,211,100,211,100,243,223, 96,243, -127, 25,174,117,170, 86,253,182,167, 81,138,214, 21,128, 70, 25,118, 6, 56, 81, 63,173, 91,255,205,162,109, 59,247,124,180,100, -222, 59,230, 3, 7, 12, 71,226,133, 31,113, 36,246, 80,141, 90,163, 93, 47,228, 97, 67, 82, 25,148,233, 6, 82, 81, 55,143,214, - 83,136,143,143, 55,179,235,252,100, 14,166, 7,181,115,179,238,104,229, 13,202, 0,204,186,115,231,206,134,240,240,240,181,239, -246, 15, 30, 55,167,223, 16,232,116, 58,236,219,183, 15,217,217,217, 71, 1, 44, 55, 86,113, 75, 76, 76, 44,245,235,236, 57, 95, -192,227,127,244,193,228,177,142, 37, 15, 83,144,151, 26, 15, 0,208,104, 84,186,194,140,171, 65,173, 73,156, 84, 42,189,233,232, -232,120,223,209,209,177,162,107, 39,247, 89, 98, 8, 86,188,247,230,107, 78,101, 89,105,200, 77,174,245,140,106,212, 74, 42, 47, -227,178, 79, 91, 74,215,211,211, 83,108, 46,192,236, 38,211,171, 85,235,138, 30,164,245, 48,198,142, 82,163, 93,183,122,211,190, -151, 62,255,232, 45,177,149,149, 21,238, 36, 61,192,138,141, 7,106, 84, 90,221,136,210,196,227, 47,196, 61,198,113, 28,116, 58, -157,209, 3, 29,154,193,146,160,160,160,110,107,215,174,245,158, 49, 99, 6,158, 87,201,106,136,204,172,252,200,118,238, 94,126, - 15,238,223, 9,183,147, 10,127,122,158,252, 52,193, 4, 19, 76, 48,225, 95,131, 81,117, 98,206,172, 6,219,120,131, 68,171, 30, - 73,197, 80, 2, 88,211,137, 87,189, 99,233,218, 77, 43, 73, 98,243, 91, 44,199,253, 72,147, 88,253,168, 12, 37,207,153, 56,165, -128, 15,250,165, 49,147,249, 0, 32,224,183,173,129,172, 67, 6,128,215,191,187,118,171,207,119,215,110,125, 82,247,219,231, 0, - 90,229,203,181,228, 35,105,128,159, 87,187,129, 61,253, 37, 60, 70,133,188,212,135, 40,175, 81,227,124,114,118, 37,201,145, 63, -182, 54, 81,143, 30, 61,250, 29, 0,156,173,205, 82, 7,250,117,246, 24,212,203,223, 76, 64,104,145,151,114, 7, 85, 42, 45,126, - 75,206,174, 2, 65,180, 57,160,250, 69,165,183, 40,241,196,237,147, 32,134, 17, 4,113, 97,217,156, 73,226,149, 27, 15,190, 80, -146, 5, 64,153,159,159, 95,166, 84, 42,237, 11, 10, 10,180,104,251, 36,113, 15,228,114,121,247, 15, 63,252,112,205,226,197,139, - 63,250,226,139, 47,132,109,137,201,106, 14, 21,249,217,199, 6,249,191,184,242, 55,193, 4, 19, 76, 48,225, 95,129, 89,141,182, - 48,154,104,233, 9, 67, 49, 74, 0,124,224,229,197, 45,204,204,132,246, 69,165,172, 41,165,235, 57,113, 27,192,232, 54, 95, 77, - 18,138, 27, 25,217,213, 55, 51,178,171,193,114, 28,203,113, 26,146, 68,110, 13, 69,173,203,120,148,223,246, 81,119, 4,193,220, -126,144,163,138,123,152,171,230, 88,150, 99, 57, 78, 75, 16, 40,212,233,216,117,201,143,178, 79,252, 29,210, 91,154,120,252, 90, - 44, 77, 12,188,118, 51,105, 97, 77, 13,181,181, 52,245,248,245, 23, 88, 46,186,196,196,196, 41,161,161,161,111, 51, 12,179, 3, -128,238, 57,108,105,105,154, 94, 18, 29, 29,125, 52, 49, 49,241,240,245,235,215,101, 47,130,100,253, 87,203,223, 4, 19, 76, 48, -193,132,127, 42,218,182,168,116,115,120,145, 36,235,239,136,164, 7,143,123,253, 55,236, 38, 63,120, 28,240,191,144,222,162,212, - 99,113, 69,192,155,255,165,236,253,141, 97,152,223, 94, 36,169, 62,119,238, 92, 71, 52,177,172,206,223,173,252, 77, 48,193, 4, - 19, 76,248,199, 98, 86,115,228,139,111,202, 27, 19,254, 1,224, 94, 20,201, 50,193, 4, 19, 76, 48,193,132, 54,160, 89, 69,139, - 64,243, 35, 7, 46,180,226, 15,218, 50,250,224,130,201,166,201,166,201,166,201,166,201,166,201,166,201,230,191,206,230, 63, 17, -174,168, 13,136, 63, 93,183,109,145,124,189, 72,152,134,190,154,108,154,108,154,108,154,108,154,108,154,108,154,108,254,211,209, -100, 32, 60, 80, 27, 60,108,130, 9, 38,152, 96,130, 9,255, 45,136,235, 62,109, 61,110,130, 9,255,139,100, 75, 79,184,218, 18, -163,213,165,110,251,224,191,152,216, 57,174,174,174,179, 2, 3, 3,125,133, 66, 33,169, 80, 40, 86, 95,190,124,121, 85,227,147, - 6,250,241,227,120, 36,218, 63,249,133, 0, 8, 30, 64,146, 96, 56,228,253,145,160,234,109, 42,247,191, 53, 60,165, 86,142, 39, - 9,146, 39, 98,104, 10,140,142, 66,109,184, 85, 45, 88,150,206,102, 40,205,203,205, 93,236, 18, 52,214,131,102,216, 47, 0,110, - 27, 64,190, 15,176,219, 9,240,223,227, 64,127, 75,128,247, 31,240,184, 47,193, 16, 31,243, 5,188,165,178,248, 95,114,255, 9, - 25, 22, 19, 19,195,123,158,235, 39, 76,152,208,228, 2,162,110,110,110,177,102,102,102,157,155,187,174,166,166, 70, 38,147,201, -194,255,225,207,227, 32, 0,223, 0,240,111,244,123, 26,128,249, 0, 46, 62,239, 31,132, 1,124,103, 96,182, 16,248, 24, 0, 40, -224,203, 34, 96,231,149,191, 81,140,161,163,163,227, 85, 62,159,239, 93, 83, 83, 83,163, 80, 40,188, 44, 45, 45, 51,205,205,205, -205,105,154,206, 40, 41, 41, 25,212, 74,115,239,227,201, 82, 90, 31, 1,216,222,202,227, 38,152,240,191,130,231, 26,117,216,181, -182,126, 64, 24,128, 65,125,250,244,113,174,169,169, 65, 90, 90, 90, 17,128,171, 0,174,212,125,210, 95, 68, 74, 73,146,252,106, -211,166, 77,139,230,206,157,171, 95, 12, 58, 33, 33, 1, 65, 65,207,206, 17,202, 35,209,254,242,169, 11, 78,183, 19,211,209,103, -216,248, 58,162, 69, 2, 53, 50,132, 15, 15,110,107, 18, 44,109,109,109, 87, 19, 4, 49,129, 36, 73,131,141, 26,203,178, 12,199, -113, 49, 21, 21, 21, 43, 1, 40, 90,243, 71,230,102, 98, 29,205, 48, 77,254, 7,159,199, 99,106,148,154,102,167,189,176,179,179, -187, 78,146,100,167,134, 11,102, 3, 79, 47,160,221,220, 49,154,166,243, 74, 75, 75,141, 33,161, 18,146, 47,156, 79, 16,194,225, - 32,217,174, 0, 1, 2,100, 58,203,104,207,179, 52,245, 53, 0,245,243,144, 44, 87,119,175, 63, 22, 44,143,110,159,148,154,134, -101,115, 38,227,139,111,246, 96,233,252,183,241,245,174, 3,152, 63,107, 18,252,252,252,209,210,178,226, 44,132,235,150,207,155, - 48, 44,106,219,225, 1, 75, 63,152, 32,142,218, 22, 51,112,217,156,137,162,117, 91, 15, 15, 92, 54,231, 13,113,212,214,195, 3, -150,206,155, 32, 93,183,253, 23, 22,192,212,182, 36,114,146,183, 91, 13, 65,211, 77,246,182, 57, 62, 95,115, 32,163,192,252,255, -226,141,158, 49, 99, 70,160, 74,165,186, 51,121,120,207,232, 30, 93,219,229, 55,117, 78, 89, 97,126,187,204,251,241,145, 2,161, -180,215,107,145,123, 18, 90,148, 28,196,226, 78,105,105,105,222, 44,203,130, 97, 24,208, 52,173,223,106,181, 90, 12, 26, 52,232, - 69, 13,156, 25, 13, 96,117,237,203,138, 40, 0,135,159,195,150, 5,159,207, 95, 32, 18,137,194,104,154,246, 5, 0,129, 64,144, -170,209,104,174,208, 52,189, 9, 64,117, 43,237,109,206,207,207,247,179,176,176, 0, 69, 81,250, 5,232,121, 60,158,143,135,135, -199, 54,181, 90,237,253,188, 55,239, 12,204,238, 55, 96,192,215,211, 23, 45,226,169,174, 94,197,215,187,119,111,134, 92, 14, 0, -219, 12, 93, 43, 18,137,126, 37, 73,210,179, 53,255,199,178,108,182, 86,171,125,185, 53,215,240,249,124,239,130,130, 2, 39, 55, - 55, 55, 40, 20, 10,152,155,155,155,215,239,183, 65,201, 90,207,113,156,180,174,110,255, 58, 36, 36, 36,148, 32, 8, 26, 0,199, -178, 44,121,243,230,205, 73, 44,203,242,235,234,167,245, 0,118, 3,208,152,218,108, 19,254, 71,213,172, 93,173, 37, 90,103, 0, -132,245,233,211, 71,250,230,155,111, 34, 44, 44, 12,222,222,222,144, 72, 36,181,149,120, 89,153,243,221,187,119,223,184,122,245, -234, 27,167, 78,157, 66, 74, 74,138, 10,192,159, 0,154,124,169,135, 70, 12,152, 43,177, 16,111, 1,128,146,188, 50, 89,222,163, -226, 45, 50,153,108, 61,128,134, 83,132,123, 77,157, 58,117,225,188,121,243, 16, 27, 27,139, 3, 7, 14, 64,163,209, 64,161,104, -129,191, 40,139, 81,113, 41, 26, 48,207, 2,114,174, 0,102, 78,128,185,115,155,115,202,214,214,118,245,252,249,243, 63,244,243, -243,211,207, 98,174,211,233, 64,211, 52,116, 58, 29, 42, 42, 42,176,112,225,194,218,134,150,227,192,178, 44,206,158, 61, 59,119, -214,172, 89,168,168,168, 88,208,148,205,144, 94,238,113, 36, 65,182,175,215,106, 56,134,201,187,113, 55,175, 55,205, 48, 60,181, -154,106,114,165,114,137, 68,216, 34,201, 19, 8, 4,237, 83, 78,158,116, 34, 69, 34,112, 12, 3,176, 44, 56,150,173,203,206,186, - 15, 87,251, 27,199,176,224,116, 12, 88,154, 5,173,210, 32,248,253,247,141,201,138,126, 2,145,244,192,148,119, 23,185,244, 13, - 9, 17,116,112,119, 3,205,176,120,152,149,231,114, 39,238, 70,255,152,189,219,222,211,170, 20,147, 0,180,105,158, 45,145,153, -213,111, 91,191,253,174,253,237,187, 73,184,120,249, 42, 46, 92,186, 2, 0,248,245,242,245,122,194,109,176,168, 64, 87,119,159, - 63,115,140, 56,122,235, 65,193,252,153, 99,121, 95,108, 61, 36,152,247,246,107,188,232, 45, 7,132,243,222,126,141, 23,253,205, - 1,225,188,153, 99,120, 81, 95,255, 16, 8,192, 22, 64, 69,115,198,154, 43, 35,130,166,197, 63,101, 22,241, 0,160,100,199, 14, -232,138,139,225,182,114, 37, 0, 96,138,151,179,209,238, 14, 7, 7,135, 56,129, 64,208,222,208,121, 58,157,206, 32, 9,158, 49, - 99, 70,144, 74,165,138,163,105,154,227,243,249,145,147,199,190,116,124,196,192,160,178,134,231, 36, 36,220,179, 95,183,238,228, -152,195,119, 20,220, 27,189, 44,239,196,126, 53,163,119,196,226, 61,247, 90,104,144, 73,141, 70,131,140,140, 12, 52, 92,228,189, - 1,152,182,246,157, 0,124,109,111,111,223,183,172,172,108, 10,128,101,114,185, 60,144,199,227,193,206,206,110,153, 86,171,125, -104,109,109,253,125, 85, 85,213,245, 58,213,200,216, 37, 3, 6, 89, 89, 89,237, 59,118,236,152,109,207,158, 61,201,210,210, 82, -116,236,216, 17,229,229,229,193, 87,175, 94,237, 53,115,230,204,153, 10,133, 98, 90, 93,103,208, 88,116, 51, 51, 51,227,166, 79, -159, 78, 48,204,147,219,253,225,135, 31,240,114, 0,221,217,209,198, 76,169,214,114, 85, 23, 51,172,255, 35, 20, 10,255,204,206, -206,174,106,109,102, 8,129,143,167, 47, 90,196,179,120,252, 24, 22,247,238, 97,138, 92,206,255,162, 86,221, 50, 72,180, 72,146, -244,220,119,224, 71,111,145, 72, 4,154,166,245,100,176,190,142,210,233,116,160, 40, 10, 58,157, 14, 12,195, 64, 71,233, 16,245, -249,151,109,174, 11,205,204,204,204, 92, 93, 93,139,204,204,204,204, 94, 68, 43, 36, 22,139,249,123,247,238,157, 36, 18,137, 0, - 0, 90,173, 22, 1, 1, 1,132,169,125, 54,225, 31, 70,182,158, 81,185, 90, 34, 90, 35,229,114, 57, 24,134,129,165,165, 37,120, -188,167,219,125,123,123,123, 12, 31, 62, 28,131, 6, 13,194,155,111,190,137,148,148, 20,233,155,111,190, 57,188, 57, 99,147, 23, - 69,192,221,219,185,174, 49, 97, 93,175,157,190, 27,253,195,103,191, 56, 22, 22, 22, 46,106,112,218,204,217,179,103, 19,101,101, -101,152, 48, 97,194, 85,141, 70,243, 42, 0,121,115, 54, 25, 22,121,225,111, 78, 1,203, 17,210, 77, 55,191, 35,180,106, 21, 71, -146,164,170,222,117,216,150, 92, 34, 8, 98,130,155,155, 27, 14, 30, 60, 8,173,246,217,233,194,172,172,172,144,156,156,252, 68, - 85,227,241, 16, 18, 18,194, 35, 8, 98, 2,128, 5, 77,219, 36,219, 95,187,253,216,169,126, 63, 98,184,191, 48,164, 23, 89, 84, - 80, 84,195, 1, 32,150, 47, 95,174, 39,110, 0,176,122,245,106, 99,210, 9, 82, 32, 64,201,149, 43, 79, 42, 98, 62, 9, 82, 72, -128, 16, 0, 36,191,214,139, 10, 14,224, 24,128,165, 1, 86, 7, 72, 92,221,141,201,134,224,118, 30,222,177,235, 54,110,183,209, -232, 56, 28, 60,113, 17, 89, 89,143,192, 35, 73,120,117,246,198, 75,131, 7, 10,122,245, 9,117,255,114,213,162, 83, 5, 57, 15, - 70, 2,184,213,234,140,102, 57, 73,103, 15, 7,124,255,195, 29, 56,218, 90, 96,194,152, 87, 32,149,136,241,197, 55, 63,226,243, -165,115,224,237,229,137,157,155,215, 54,123,185,181,181,245, 26, 95,239,206,158,219,247,158,134,175,143, 15,111,251,190,211,240, -245,171,219,250,251,242,182,239, 59, 13, 63,127, 63,222,246,125,167, 17,232,223,173, 67,156,236,230,154,242,242,242, 57,205,231, -103,163, 50,122,169,182,140, 4,213,172,190, 33,120,252,222,123, 0,160, 39, 90,173,129, 64, 32,104, 95, 80, 80,224,100,232, 60, - 67,170, 65,157,146, 21, 71,211, 52,138,139,139,137,202,202, 74,206,198,198,102,204,185,157,203,142,189, 60, 32,168, 28, 0,238, -221,187,103, 23, 21,181,110,204,161, 56, 57, 84, 55,182, 18, 63,157,188,194, 78,121, 53, 44,238, 68,244,140, 94,168, 91, 18,162, - 49, 52, 26, 77, 86,143, 30, 61,184,186,239,237,196, 98,177,176,209,243,230,214,165, 75,151,103, 84,107, 35, 92,138, 95,255,245, -215, 95,115,252,252,252,224,227,227,115,189,111,223,190, 86,230,230,230, 56,119,238, 28,124,125,125,253,173,172,172,110,198,196, -196, 8,150, 44, 89, 18,180,123,247,110, 0,152,107, 68,118, 14, 11, 15, 15, 63, 24, 27, 27, 43, 17, 10,133, 80,169, 84, 72, 78, - 78,134,181,181, 53, 68, 34, 17, 94,123,237, 53, 94,255,254,253,237, 7, 15, 30,124, 36, 61, 61,125, 18, 90, 49, 2, 74,173, 86, -115,203,150, 45,131,153,153, 25,204,204,204, 96,110,110, 14,115,115,115, 88, 72, 64,236,152,239, 33,157,183,171, 82,186, 96,229, -142,232,125,219, 87, 93,118,119,103, 63,205,205,205,173,108,237,179,160,186,122, 21, 22,247,238, 1, 13,222, 93, 99, 97,109,110, -135,200,200, 72, 67,138, 20,132, 66, 33,250,245,235,103,208,158,157,157,221, 81, 62,159,255, 84,207,148,166,105, 73,100,100, 36, -147,158,158,110, 78,146,164, 57,203,178,136,140,140,100,104,154,150, 56, 57, 57, 93,103, 89,182,168,180,180,116,156, 17,201,213, - 0,248,136, 36,201,175,197, 98, 49,191, 67,135, 14,217, 43, 86,172,248,171, 78,205, 4,199,113,100,135, 14, 29,130,165, 82,169, -167, 70,163,161, 81,235, 58, 52,169, 89, 38, 52, 9,142,227,122,213,138,194,122,104, 1,136,234,190,151,213,182,118,112,104,244, - 59, 0,148,214,117, 20,157,155,217, 47, 3,144, 2,160, 27, 0,167,186, 99,183, 9,130, 40,111, 67, 50,155, 87,180, 98, 99, 99, -245, 93,216,136,136, 8,125,195, 98,105,105,137,219,183,111,131, 32, 8, 88, 90, 90,194,202,202, 10,214,214,214,144,203,229, 72, - 73, 73, 65, 90, 90, 26, 30, 63,126, 12,130, 32,224,229,229,133,250, 23,168, 1,244, 21,220,207, 27, 98, 33,177, 16,131, 32,128, -158, 67, 2, 17, 56, 40, 0,125,110,101,206,143,187, 64,236,146,201,100, 25, 0,248, 1, 1, 1, 51, 67, 66, 66,176,113,227, 70, -104, 52,154,141,205,144, 44,189,205, 63, 82,232,222, 0,224,234,234,186,120,255,185,135,102, 83, 71,116, 86,202,100,178,175,218, -144, 57, 79, 85,196,165,165,165, 70,175,197,199,178, 44, 42, 42, 42, 90,180,217, 88, 33,216,244,245, 86, 27, 69, 85, 17, 62,251, - 98, 63,116, 58, 29, 22, 45, 90, 4,150,101,245,159,202,202, 74,163,210,201, 49,204,179,218, 1, 89,235, 61, 37,248,128,199,196, - 90, 94,145,115,112, 43, 8, 14, 32, 24, 0,207,222, 87,227, 70, 72,194, 19, 74, 15,173,250, 98,139, 77,124, 90, 30, 78, 92,140, - 7, 37,207,135,236,222,177, 90,201,177,223, 36, 28,214,240,208, 55,176, 51, 62, 92,254,165,237, 39, 31, 78, 59,164, 85, 41,124, -240,180, 27,241,130,225,151,134,193,103,107,214, 96,215,150,141,248,114,227, 22,200,171, 42, 33, 16, 56,212, 85,244, 12, 24,134, -105,249,222, 57,110, 68,228,252,183,136, 47,190, 61,138, 96, 63, 87, 28, 57,119, 11, 3,122,120,226,216,111,113, 24,212,171, 35, - 78, 92,136,199,144,190,157,113,230, 74, 18, 62,156, 61,137,152,244,235,238, 17,173, 41,163,205,155,183,218, 40,228, 69,136, 93, -187, 23,197,219,182, 33,123,206, 28, 4,215,157,115,139, 32, 32,108,223, 30, 16, 26, 46,163,198, 72, 77, 77,133, 70,163,105,170, -183, 15, 95, 95, 95,131,229,174, 82,169,238,208, 52,205, 21, 21, 21, 17, 69, 69, 69, 48, 55, 55, 39,146,147,147, 24,127,255,128, -177, 92,218, 47,223, 1, 64, 84,212,186,177,135,239,200,161,188,190, 5,170,191,190,129,176, 99, 2,185,107,245,108,106,214,202, -157,119, 26,188,163, 79,165,179,176,176,112,100, 97, 97, 33, 0,160, 83,167, 78,105,233,233,233,221,234, 93,205,117, 46, 68, 33, - 77,211,222,245,238, 68,154,166,161,209,104, 48,108,216, 48, 94, 75,247,110,107,107, 27,226,235,235,139,248,248,120,108,217,178, -197, 46, 60, 60, 28, 15, 30, 60, 0, 65, 16, 88,183,110, 29,225,231,231, 39, 40, 45, 45,197,203, 47,191,140,163, 71,143,246,147, -203,229,134,242,211,210,220,220,124,247,169, 83,167, 36, 36, 73, 66,161, 80,128,101, 89,244,239,223, 31, 36, 73, 34, 41, 41, 9, -203,151, 47,199,209,163, 71,113,252,248,113,105,175, 94,189,118, 43,149, 74, 95, 60,237,214,111,174,140, 56,181, 90,205,137,197, - 98,136,197, 98, 72, 36, 18, 72, 36, 18,136, 68, 34, 84,171,129, 89,155,178, 53, 60,137, 3,235,223, 99, 64,231,183,230,173, 35, -191, 90,241,246, 37, 0, 39,140,125,230,129,218,152,172,175,127,252,113,203,148,170, 42, 18, 0,190, 39, 8,150,226,184, 47,141, -121,223, 1,160, 90, 93, 5, 79,175,246, 56,114,232, 56, 94,159, 56,166, 73,146, 37, 16, 8, 33, 20, 8, 96,101,103,110,208,166, - 80, 40,116, 78, 75, 75,179, 23, 8, 4,224, 56, 14, 12,195,128,162,168,162, 79, 62,249,196,113,212,168, 81,150,103,207,158, 37, - 71,141, 26,197,218,218,218,214,220,186,117,171,152,166,105,251,129, 3, 7,182,230,153,223, 30, 24, 24,216,243,216,177, 99,111, - 71, 70, 70,198, 45, 94,188,248,179,134, 7,215,175, 95,191,230,204,153, 51,158, 99,199,142,221,119,239,222,189,237,173,169, 67, -158,183,158, 55,217,252,251,217,108,142,139,212,193,153, 32,136,216, 6,117,118, 68,253,126,100,100,228,178,168,168,168,100,130, - 32, 98, 27,254, 94,127, 94, 93,103, 49,182,169,253,186,107,237,150, 46, 93, 26, 16, 29, 29,189, 46, 52, 52,244,224,245,235,215, - 31, 1,104, 45,209,106, 57, 70,171,254,134, 26,222,100,163, 70, 13,114,185, 28,114,185, 28,185,185,185,216,177, 99, 71,221, 11, - 45, 0,159,207, 7,159,207,215,199, 51, 52,135,139,177,127,126, 3,224,155,158, 61,123, 10, 18,255,138, 57,251,241,174,121, 67, -123, 15,235,201,187,115, 49,113, 60,106,215, 35, 28, 57,125,250,116, 7, 0,216,187,119,111, 41,128,179,255, 71,172, 57, 38, 35, - 35,227, 67, 87, 87, 87,125,140, 74, 67,247, 33, 77,211,144, 72, 36,168,143,101, 81,171,213,216,177, 99, 7,205,113, 92, 76, 11, - 54,145,158,124, 9, 25,201,151,107,175, 99, 89,176,204,147,235, 87,173, 90, 5,142,227,244,141,253,123,117,202,137, 65,146,215, - 84,158,115,141,182,141,126,231, 24,198,128,123, 66, 56,111,252,180, 57,174, 44,193,199,201, 75,119, 33, 16, 8,192, 54, 80, 51, - 5,188,218,222,114,242,131, 2,184, 57,251,227,213, 73,179, 93,142,237,219, 58,143,166,212, 95,180, 54,175,125, 2, 67, 49,255, -195, 15,241,221,174, 93, 88,190,114,141,158, 1,208, 12, 3,218, 96, 58, 73,114, 88,255, 0,208,213, 5,224,241,120, 24, 18,220, - 25, 60, 30, 15,195, 67,187,130,199,227,225,229,254, 62,224,243,249, 24, 49,192, 15, 93,186,116, 1,159,207, 39, 13,148, 59,210, -147, 47, 34, 35,249,247, 6,164,151, 3, 7,128,146,201,158, 57, 95, 39,147,129,243,176,111,237,179,133,153, 51,103, 86,230,230, -230, 82,141,143,185,187,187, 11,175, 94,189,106,211,140,219, 78, 15,169, 84,218,139,207,231,223, 41, 47, 47,103,205,204,204, 72, -150,101, 88,127,255, 0,222,185,157,203,142,213,159,179,116,233,178, 99,111,244,178, 26,187, 63, 38,150, 19,118, 24, 64, 16, 2, - 49,253,238,202,157, 66,129, 80,218, 11, 80, 25,211,121, 32, 53, 26, 13,238,223,191, 15, 67,233,225, 56,174, 69,215, 79, 69, 69, -197,116, 95, 95,223,171,223,124,243,141, 29, 65, 16,248,227,143, 63,192,227,241,244,159,204,204, 76,144, 36,137,143, 63,254,152, -146,203,229,239, 24, 74, 27,159,207,255,240,200,145, 35,214, 34,145, 8, 10,133, 66,255,222,240,120, 60,164,165,165,225,171,175, -190,194,244,233,211,145,147,147, 3, 55, 55, 55, 44, 90,180,200, 34, 58, 58,250, 67,138,162,214, 24, 81, 68, 9, 90,173,182,183, -153,153, 25, 36, 18, 9,234, 9, 23, 0,252,150, 44, 72, 82,169, 84,221,237,237,149, 46,142, 87, 98, 79,246, 11,127, 53,200,222, -209, 53, 84, 38,147,181,106,233,172,135,192,174, 44,134,249,100,228,177, 99, 78,215,142, 29, 99,111,156, 58,149, 39, 86, 40,118, - 26,253, 12,233, 72,100,103,230,161, 87,175, 94,184,115,231, 14,122,245,234,213,144, 52, 65, 36, 18, 65, 40, 20, 66, 40, 20,194, -193,214,168, 16, 10,142, 36, 73, 92,187,118, 13, 12,195, 64,171,213, 66,171,213,194,207,207,175,252,242,229,203, 22, 0,144,153, -153,201, 77,157, 58,181,242,230,205,155,232,209,163,229,245,212,157,157,157,175,242,120,188, 14, 13,127, 43, 43, 43,179, 29, 55, -110, 28, 42, 42, 42, 94, 25, 55,110,220,128,186,247, 55,255,151, 95,126,153, 10, 0, 34,145, 8, 36, 73, 50, 48,225, 95, 15, 67, - 92,164, 33, 81,106, 76,184,162,162,162, 34, 26,255,214,144, 84, 53,245,189,225,181,209,209,209,235, 26,216, 86,181, 33,249,134, - 99,180, 98, 99, 99,185, 38, 24,164,209, 48, 68,180,234, 17, 31, 31,175,115,115,115,251, 46,227,238,227,161,157, 3,189, 32, 53, - 23,191, 4,224, 27,177, 88,188,112,218,180,105,184,113,227, 6,146,146,146,126,192,115,142,194, 9, 8, 8,248, 85, 44, 22,123, - 54,227, 38,201, 78, 74, 74,122,185,153,134, 97,229,169, 83,167,208, 82, 48,252,165, 75,151, 26, 54, 74, 13,131,225,155,126, 48, - 88, 14, 58, 74,135, 26,165,234, 73, 35, 94, 71,180,106,106,106, 48,113,226,196,167, 20,173,226,226, 98,131,247, 71, 16, 4,190, - 58,113, 2,231, 99, 98,240, 74, 80, 16,142,222,186,133,232,105,147,225,227,217, 14, 28, 67,128, 35,128,156, 3, 91, 81, 38,175, -198,207, 23,175,161, 92,161,196,148,129, 3,225,109,229,208,178, 93,129,112,120,112, 72,168,240,194,245, 20, 8, 4,124,144, 96, -193,233,148,112,243, 29, 12, 30, 73,194,218,185, 35,132, 2, 1, 4, 2, 62, 50,115, 75,225, 27,208, 71, 20, 43,146, 12,111, 11, -209,114,247,236, 8,134, 97, 48,125,250,116, 28, 60,120, 16,246, 46,158,176,118, 15,192,231, 27,119,225,149, 97, 3, 13,222,127, -125, 15,158,207,231,131,199,227, 61,179,173,255,110,140, 58,201,177, 28,168,198,101,196,114, 0,199,161,253,218,181,104,191,118, - 45,110,213,253,167, 95, 77, 13, 84, 42, 21,208,215,191, 85, 36, 75,171,213, 34, 55, 55,151, 42, 44, 44,116,110,226,120,145, 86, -171, 53, 72,108,246,236,217,147, 48, 99,198,140,222,118,118,118,113, 9,247,238,233, 2,131,130, 4,103,119, 44, 59, 94,239, 54, - 4,128,160,160,160,242,101,203,150, 29,159, 58, 33, 98,204,246,200, 55,153,247,215,236,227,139,165,210,222, 17,139,247, 36, 28, -152, 48,193,176,191, 71,163,201, 10, 12, 12,228,140,185, 47,165, 82, 89,216,194,225,209, 0, 86,247,236,217,211, 42, 60, 60, 28, - 87,175, 94,197,235,175,191,174,161, 40, 42, 3, 0, 70,141, 26,213,245,231,159,127, 22,165,109, 11, 20,172, 0, 0, 32, 0, 73, - 68, 65, 84,164,164,192,209,209, 81,144,157,157,189, 27, 6, 2,228, 69, 34,209,224, 62,125,250,144, 26,141,230, 25,146, 21, 29, - 29,141, 73,147, 38,161,107,215,174, 96, 89, 22,213,213,213, 8, 15, 15, 23,108,217,178,101,176,145, 68,107,190,143,143,207, 87, -168, 29,117,216,176, 46, 76, 69,173, 91, 11,101,101,101,133,119,111, 94, 76, 30, 56,108, 92,239, 14, 93, 2, 92,147, 18,238,180, -104,208,201,201,105, 41, 73,146,111,176, 44,203,147,203,229,185,119,181,218, 46,126,158,158,206,253,199,140, 65,149, 64,192,251, -250,226, 69,178, 72,161,176, 0, 96,148, 11, 82,173,171,129,167, 87,109,168,223,235, 19,199,224,206,157, 59, 24,255,230, 88, 8, -133, 66,240,249,130,218,119, 83, 88,171,104,217, 56, 88, 25,245,108,234,116, 58,125, 29, 94, 31,231, 69, 81, 20,234, 67,179,204, -204,204,244,199, 52, 26, 13, 8,130,104,233,217,240, 62,188,102,133,147,212,202, 26,140, 78, 7,255, 49,227,245,207,244,205,239, -183, 75,193,178,210,202,236, 44,204,141, 57, 37,128, 9, 38, 52,163,106,181,196, 69, 26, 18,165,231, 5, 65, 16,177,145,145,145, -203, 0,112,145,145,145,203,234,247,163,162,162, 84, 0,242,219, 72,182,158, 81,185,248, 47,130,100,213,187, 23, 90, 66,120,120, -248, 92, 75, 75,203, 45,245,251,185, 55,242,145,123, 35, 31,190,221,252,251,247, 12,234, 93, 53,105,210, 36,216,219,219, 99,241, -226,197, 28,128, 31, 90,251,255,153,233,201, 22, 0, 56, 87, 87,215,197,117, 21,114,208,173, 91,183, 28,111,223,190,141, 62,125, -250, 60,145,238, 41, 10, 3, 6, 12,104,201,148,162, 46,168,125,193,139, 83,201, 88, 80, 20, 5,165, 82, 5,173,150, 2,173, 99, - 65,211, 52,122,249, 91, 98,223,174,200,218,223,232,122,245,172, 86, 53,107,239, 98, 9, 75, 11,129,142, 36, 9, 85, 92, 66, 97, -147, 53,166, 86,171, 69, 66,118, 54,238, 61,126, 12, 0,120, 53,170,229,192,215,125, 23,175,194,207,207,207, 80,106, 59,183,119, -115, 65,193,249,132,218,202, 91,149,139,219,127, 30,134,165,165, 5, 0,192, 63,108, 10,132,194, 90,162, 85,163,162,224,208,205, - 29, 4,199, 53, 59, 45,128,153,173,203,175,124,161,196,147, 99, 88,112, 28, 11,142,101,192,113, 44,120, 2,161,217,220,247,222, - 6,203, 50, 8, 14, 14, 6,193,227,129,209,105, 48, 97,244,112, 84, 84, 41, 96,111, 99, 92, 35, 33, 20, 10, 17, 22, 22, 38,109, -238,248,131, 7, 15, 84, 13,137, 89,203,101,164, 67, 77,141, 10, 26,141, 6,148,150, 6,165,163,193,116, 18,226,179, 79, 38,131, -166,104, 40,223, 12, 5,165,163,193,126, 56, 22,148, 86,135, 28, 51,146, 12,244,117,208,145, 32, 84,119, 83, 75,172, 12, 17,173, -122,114,208, 28,154,138, 9,108,134,108,221,155, 49, 99, 70,175,192,160,160, 59,111, 12, 11,218,144,152,148, 92,144,152,148,252, -204,121,158, 93,131,178,222,143, 62,184, 72, 32,148,246,138, 88,220,242,168,195,134,104,232, 70,124, 78, 44, 83, 40, 20,129, 22, - 22, 22, 72, 79, 79, 7,143,199, 3, 65, 16, 15, 0, 4, 2,128,171,171,235, 67, 62,159,239,197,227,241,176,109,219, 54,130,207, -231,119, 15, 13, 13, 93,166, 86,171, 15,183,208,161,243,181,180,180,124, 74,205, 18, 10,133,136,140,140,196,212,169, 83,245, 36, - 75, 40, 20, 98,207,158, 61,232,221,187, 55,180, 90,173,175,145,233,189, 13, 96,160, 17,138, 31, 81, 71,206, 13,146, 81,154,166, -103,148,189,241, 70, 23, 92,185,130,254, 94, 94,126,189,122,245, 2, 69, 61, 17, 52,189,188,188,220, 21, 10, 69,161, 74,165,250, - 9,181, 83, 27,220,109,145, 20,169, 89,100,103,214,134,159,222,185,115, 7,193,193,193,122, 5,171,161,154, 37, 20, 10, 33, 21, - 89,180,138,104,177,108,109,189,164, 80, 40,200, 43, 87,174, 56,248,248,248, 16, 0,224,227,227, 67,220,189,123,215,206,204,204, -172,180,115,231,206, 6, 59,192, 82, 43,107,236,153, 49, 17, 0,240,233,176, 17,250,142,209,185,213,203, 32, 16, 8, 48,116,241, -178,103,158,123,150,101,121, 48,193, 68,178,140,224, 34, 47,138,100, 53, 86,180,162,162,162,146,163,162,162,158, 81,199, 90, 9, -195,138, 86, 67,233,174,181,168,127, 89,155,195,198,141, 27,209,189,123,247, 22, 27,162, 45, 91,182, 96,255,254,253, 27, 1,100, -182, 90,114, 28,218,211, 31,155,142, 37,123,117,245, 39, 0, 96,205,135,163,201,154,154, 26, 92,187,118, 13,214,214,214,120,240, -192,232,105,191, 44,173,173,173, 87,147, 36, 57,129,215,120, 4, 64,211, 4,147, 97, 89, 54,166,170,170,170,217,233, 29, 56, 14, -160,116, 52,106,148,106,104,181, 90,124,248,241, 86,131,137,136, 2, 8, 74,171,224,135, 13, 10,149, 54,167,232, 4,119, 31,140, - 15,166, 89, 60,211,120,243, 72,128, 36,129, 30,193,181,138,203,221, 91,201, 96, 89,128, 97, 1, 7, 39, 91,252,112, 96, 67,139, - 36,159,102,216,186,222, 49,131,106, 13, 3,223,144, 8,228,165, 94,209, 43, 72, 34, 97,173,203, 88, 40, 16,128,229,136,218, 89, - 31,154, 35, 66, 34,169,103,133, 44,211,123, 87,108, 34,102, 69,116,199, 47, 23, 18, 48,126, 88, 32, 46,223, 76, 65,120, 95, 63, - 36,103, 60,134,191,119, 7,108,219, 29, 3,142,131,226,219, 77,159, 23, 62,105,208,232,108, 99, 20,173, 27, 55,110,168, 26,171, - 88, 13,183,156,225,246, 16, 28,247, 68,209, 82,169, 53, 88,188,212,168,233,124,106,203,104, 96,136,212,152,147, 91, 82,172,140, - 33, 98,141,149, 45, 24,152,158,165, 19,128,222,192,146,255,203,138,147, 97, 24,156, 62,125, 90, 95, 30, 77,149, 99,195,178, 51, -130,228, 32, 59, 59, 27,201,201,201, 8, 9, 9, 65, 85, 85, 21, 4, 36,137, 69,137,137,240,155, 54, 13, 90,161, 16, 44,203, 66, - 36, 18, 97,246,236,217, 70,231,103, 43,107,231,186, 96,110,198,144,241, 13,161,161,161, 93,210,107,106,144,156,150,134, 97,171, - 86, 1, 0,206,156, 57,243,212, 51,177,112,225, 66, 81, 74, 74,202,204,184,184,184,153, 5, 5, 5, 27, 1, 44,106,182,158,229, - 52,250, 24,173, 55, 38,191,142, 46, 62,157,176,255,199, 3,250,227, 11, 63,154, 15,129, 64, 8,129, 80, 0, 27,107, 27,163,238, - 70,167,211,233, 73,171, 82,169, 36,207,156, 57,211,126,248,240,225,194,249,243,231, 19, 0,176,127,255,126,242,155,111,190, 49, - 63,127,254,188,176, 93,187,118, 50,131,228,146,162,158, 41, 99,130, 32, 32, 16, 8, 32, 20, 9, 1,150, 5, 65, 16,230,235,215, -175, 95,147,156,156,220,199,199,199, 7, 26,141,102, 26,106, 7,106,152,230,209, 50,145,173, 22,185, 72, 83,177, 86,117,170, 84, -115, 40,105, 24,183,213, 28, 81,107, 24,179,133,182, 13,202, 48, 46, 70,171, 41,240,120, 60,131,106, 21, 73,146, 6, 93,135, 11, - 23, 46,132,165,165,101,115, 13, 16,151,152,152,152, 34,147,201,118, 1,216,218,166,194,185, 24,159,188,122,193, 88, 5,234,124, -171, 54, 54, 54,165, 67,134, 12,169, 6, 64, 29, 62,252,116, 7, 89,163,209, 52,219,128, 91, 91, 91,175,254,254,251,239,231,141, - 25, 51,134,108, 60,197, 64, 67,247, 94,253, 71,167,211,225,240,225,195,243,150, 44, 89,130,170,170,170, 5, 45, 53,226,202, 26, - 21, 84,117,129,208, 15,147,126, 49,182, 82,111,246,144,133,141, 43,218,119, 10,108,182, 49, 33,133,181, 49, 68,206, 30, 79, 26, - 48, 75, 75, 9,152, 22,108, 18, 4,153,249, 56,167,160,157,187,139, 29, 30,230,150,192,185, 67,119, 84,228, 63,201, 7, 62,159, - 7, 65,157,235,208,198,202, 28, 37,197,197, 32, 73, 94,139,196,248,243,159,227,113, 51,233, 49,142, 92,184, 11, 74, 93,131, 77, -123,207,129,210, 84,131, 82,215,128, 82,215,110,215, 45,121, 23, 4,129, 66,157,166,166,107,107,202,157,207,231,163,111,223,190, -205, 18,157,252,252,124, 35, 21, 45, 78,175,104,169,212,173, 44, 35,227,122, 78, 45, 42, 86,245,199,219, 74, 12,234,167,124,144, - 74,165,189,247,236,105,126, 26,135,166,224,226,226,114,214,194,194,162,163,177,231,183, 98,242,210,117, 54, 54, 54,171,125,124, -124,124, 55,109,218, 36,224,241,120, 24, 58,116,104, 87, 23, 23,151,108, 0,240,247,247,119,171,175, 99,222,127,255,125,238,198, -141, 27, 73,181,125,140,230, 33, 18,137,210,172,173,173,123,135,135,135,163,170,170, 10,185,185,185, 48, 55, 55,135,223,134, 13, - 72,124,255,125, 4,237,216, 1,114,200, 16, 16, 4, 1,145, 72,132,196,196, 68, 72,165,210, 52,181,186,217, 41,223,250, 2,248, - 18, 64,127, 60,113, 23,114, 0,174,161,118,218,133,155, 77,212,119, 36, 0, 48, 44,107,168,176, 38, 47, 94,188, 24,149, 2, 1, - 48,106, 20,132,153,153,160, 40, 10, 33, 33, 33,122,149, 61, 36, 36, 4,124, 62, 31,129,129,129,112,115,115,195,182,109,219, 38, -183, 68,180,212,213, 20,178, 51,243, 16, 26, 26,170, 87,174, 70,141, 26,165, 87,180, 4, 2,129, 94,217, 34, 24,195,196,149, 32, - 8,174, 97, 39,153, 97, 24,130,207,231,243, 23, 44, 88, 64,188,254,250,235,156, 86,171,101, 69, 34, 17,121,228,200, 17,226,242, -229,203,252,154,154, 26,131, 29,241,128,177, 19,240,233,240,145,181,239,126, 71, 71, 8,132, 2,136,132, 66, 44, 78,203,211,151, -139,213,158,131,162,232,232,232,241, 62, 62, 62,181,110,120,128,111,154, 71,203, 4, 3, 66, 79, 73, 35,146,164,109,176, 95, 2, -128,168,219, 47,105, 64,168, 74, 8,130,184,205,113, 92,159, 70,231,214, 31,215, 54,218,214, 31,191,215,134,228,215,175,117,248, - 12,249,106,169, 71,156,241,215, 95,127,121,247,234,213, 11, 57, 57, 57,207,140,132,171,111,184,204,205,205, 33,149, 74,113,253, -250,117, 0,200,104,206,216,229,203,151,191, 65,237,172,203,181, 41,114,117, 13, 13,127, 99,240,245,224, 17,125,240,115,212,129, - 42,153, 76, 22,136, 39,115,232, 16,110,110,110, 83, 5, 34,254, 68,175, 0,143, 48,176,236,151, 23, 79, 93, 91,213,210, 29,122, -117,245,175, 6,160,170, 31,117,216,198,209,135, 32, 73,114,194,152, 49, 99,200,148,148, 20, 76,156, 56, 17,251,247,239,111,246, -220,169, 83,167,226,224,193,131, 24, 51,102, 12,185,116,233,210,102,167,119,120, 90, 45,209,190,176,135, 50,253,193, 61,236, 59, -248,125,179, 49, 72, 78, 78,181,241, 88,197,197,165,250,223,250,244,106,217, 51,194,210,218,243,241,113,183, 66,251, 13, 26, 42, -204, 45,170, 4, 75,107,160, 86, 60,185, 94, 89, 89, 4,142, 86, 67,104,102, 7, 23, 7,107,220,249,235, 55, 45,165, 85,159,111, -201,230,188, 49,254,120,127,180, 47,192,177, 24,187,232, 7,196,110,157,171,239, 65, 15,120,125, 62, 46, 30,254,218,232, 24,191, -198, 16, 8, 4, 72, 76, 76, 84, 53,167,102,241,120, 60, 99,230,228,170, 83, 29,117, 80, 42, 85, 80,170,212, 47,178,238,112,116, -118,118,254,214,214,214, 86,210, 12,145,114,116,116,116,252,214,222,222, 94, 98,172,235,176, 57,146, 85, 55,175, 86,220,140, 25, - 51, 90, 69,182,196, 98,113,199,140,140, 12,253,100,165, 45,109,181, 90, 45,194,195,195,141,157,188,244, 20,128, 71,174,174,174, -215,252,252,252,172, 31, 62,124,136, 3, 7, 14, 8, 5, 2,129, 71,125,253,161, 80, 40,192,227,241, 80, 92, 92,172, 3,240, 54, - 12,184,206, 52, 26,205,149, 43, 87,174,244, 24, 61,122, 52, 47, 45, 45, 13, 60, 30,175, 54, 93,161,161, 8,218,177, 3, 73, 11, - 22, 32,236,241, 99,168, 41, 10, 18,137, 4,191,254,250, 43,165, 84, 42,175, 52,103, 79, 42,149,238,202,202,202,242,151, 72, 36, -160, 40, 10, 44,203,130, 36, 73,130,207,231, 15,176,177,177,217, 2,160, 79,163,194,114, 10,234, 19,222,141,161,105, 70,150,243, -176,196, 80, 6,148,149,149,225,212,169, 83, 8, 9, 9, 65, 88, 88, 24,242,243,243,145,153,153,137, 87, 94,121, 69,127,206,189, -123,247, 16, 31, 31,143,206,157, 59, 27, 86,244, 72, 29, 58,119,235, 8,161, 80, 88,171, 16, 9,132,117, 29, 31,129, 94,201, 18, - 10,132, 16,240, 5,144, 72, 37, 70, 43, 90, 4, 65,128, 36, 73, 16, 4, 1,169, 84, 90,223,201,102,219,183,111, 47, 43, 47, 47, -119, 5,192,147, 74,165, 96, 24,198,168, 78, 75,125, 27, 81, 79,178,132, 34,161, 94,217, 2,128,202,202, 74,245,152, 49, 99,126, -210,104, 52,111,161,109, 43,148,152,240, 47, 3, 65, 16,183,255, 47,174,109, 5, 70,213, 17,171,103,130,226, 91,122,192, 95,233, -215,175,223,142, 73,147, 38, 13,221,188,121, 51, 44, 44, 44, 32,147,201,244, 13,162, 72, 36,130,187,187, 59,202,203,203,177,115, -231, 78,228,229,229, 93, 2, 48,219,216, 20,201,100,178, 27, 15,238,102,148,133,143,239,103,239,223,175,155, 77,110, 70, 94,136, - 76, 38,187, 94, 71,178,126,152,180,240,149,183,194,199, 5, 67, 40, 18, 32,247, 65, 33, 46,158,186,246,255,165, 48,121, 60, 30, -143, 32, 8, 76,156, 56,209,168,243,223,124,243, 77, 92,185,114, 5, 45,185, 25,217,122, 69, 75,169, 70,141,234,197,117,214, 62, -152, 59, 21, 31,204,157,170, 39, 19,198,184, 94, 0,192,205,237, 80, 11, 68,139,218, 28,123,104,231,172,158,193,161,158,189,253, - 59,226,102,220, 93,252,188,227,137,200,176,251,155, 53,248, 98,247, 37,184, 59,219,130,210,212,224,236, 47,223, 21, 82, 26,229, -230, 54,138,114,181,228,150, 32,192,113,108,171,238,189,158, 60, 9, 4, 2, 4, 4, 4, 52,171,104,149,151,151,171, 12, 53, 12, -250, 50,210,234, 80, 93,163,130, 74,249,194,136, 86,208,128, 1, 3,206,199,196,196,216, 59, 57, 57,161,160,160,160, 49,209, 10, -234,223,191,255,249,152,152, 24,123,103,103,103,228,230,230, 26, 61,173, 72, 19, 36, 11, 37, 37, 37, 68, 69, 69, 5,107,107,107, -219, 42,178, 69,146, 36, 52, 26, 13, 82, 83, 83,141,253, 91,163, 71,136, 89, 91, 91,239, 57,120,240,160,117,105,105, 41,120, 60, - 30, 82, 83, 83,159, 26,117, 88,255,249,225,135, 31,132, 99,199,142,253,190,178,178,178,197, 97,109, 52, 77,111,156, 58,117,234, -204,252,252,124, 91, 39, 39, 39,200,100, 50,136, 68, 34,112, 28, 7, 34, 60, 28, 3, 31, 61, 2,197, 48,144, 74,165, 72, 79, 79, -199,174, 93,187,106,234,166,138,105, 82, 32, 35, 8,194, 91, 40, 20, 98,202,148, 41, 79, 29,216,187,119, 47, 94,237,205,235,237, -104,205,175,166, 33,209, 20, 73, 71,158,229,241,120, 68, 80,223, 33, 93,251, 14, 26, 21,112, 63,233,230,195,146,162, 60, 67,149, -146, 78,171,213,194,199,199, 7,183,111,223,198,133, 11, 23, 48,100,200, 16,132,133,133, 33, 33, 33, 1,191,253,246, 27,226,227, -227, 65, 16, 4,236,237,237,235,195, 47, 90,140,193,208, 42,105, 20, 23,148, 61,163, 94, 53,222, 23, 10,133,208,168, 40,163,202, - 40, 45, 45, 13,183,111,223,214, 79, 45,195,227,241,232,105,211,166,129,227, 56, 46, 43, 43, 11,150,150,150,220,140, 25, 51, 24, - 62,159, 79,231,231, 27, 23, 31, 92, 79,170,234, 73, 22, 95, 40,120,138,160,177, 44,171, 72, 72, 72,152, 5, 32,161, 78,201, 2, - 76,243,104,153,240,191,141,211,120,118, 97,105,131,138,214, 35, 0,195, 14, 28, 56, 48,249,248,241,227, 27,183,108,217,226, 24, - 17, 17,129,138,138, 10,120,122,122,194,213,213, 21,177,177,177, 56,115,230, 76, 41,195, 48,139, 0, 52, 37,253, 12, 67, 11,115, -214,228, 63,148,197,104,170,171,223,239, 21,230,139, 75,135,255,136,114,113,113,153,205,227,241, 62,156,177,236,181,183, 6,143, -233,131,244,248, 44,220,248, 45, 17, 69, 57,165, 6,109, 54, 14,134,183,177,177,153,105,102,102, 38, 2, 64, 53,209, 43,110, 60, -234, 80,111,147, 97, 24, 70,171,213,226,208,161, 67, 70,145,173, 3, 7, 14, 64,173, 86,131,121,214,191,170,183,201,177, 28,193, - 23,136,225,230,238, 3,138,170, 1,203,182,121, 64,165,222,102,125, 15,244,161, 72, 4,167,210, 82,220,188,121,211, 56,202, 61, -106,148,161, 50, 82,107,213,138, 41, 95,175, 93, 28, 59, 39,242, 75,155, 33,253,122,224,211, 13,123, 65, 81,187, 65,242, 72, 72, -197, 66,244, 10,238, 15, 30, 52,248, 54,250,163, 74,165,188, 98, 10,158, 93,138,231, 41,155, 92, 75, 30, 22, 14, 96, 88, 22, 23, -174,222, 50,250,222,245,173, 61,195,128,207,231,227,193,131, 7,170,166, 70, 27,242,120,181,110,206,250,158,122, 75, 54, 57,150, - 37, 4, 66, 9,220, 61,253,160,213, 84,191,144, 50,114,114,114,250,232,216,177, 99,246,245, 83, 37, 36, 36, 36,128, 32,136,212, - 39,138, 99,237,113,149, 74,133,164,164, 36, 36, 36, 36, 0,181, 35,220,140,126,143,234,149,172,146,146, 18, 66, 38,147,193,204, -204,140, 76, 72, 72,208, 4, 6, 6,198, 25,120,191,245, 54,213,106,245,227,230,226, 39,213,106,117, 59,137, 68, 34,104,212,136, -186,117,233,210, 37,189, 9, 23,226, 51,233,172,170,170,186,185,100,201,146, 94, 35, 70,140,192, 71, 31,125, 84,110,107,107,107, -249,237,183,223,242,121, 60, 30, 49,103,206, 28,166,184,184,184,250,187,239,190,179, 62,126,252, 56, 42, 43, 43,175, 27,113,239, - 10,181, 90, 61,171, 95,191,126,123,207,157, 59,103,230,237,237, 13,185, 92, 14,142,227,176,103,207, 30,204,153, 51, 7, 18,137, - 4,233,233,233,120,245,213, 87,149, 74,165,114, 22,158,141,157,172,183, 73, 16, 4,193,177, 44,139, 21, 43, 86,232, 39, 39,173, -159,172,212, 82, 74, 96,215,194, 78,230,243,191,171, 50,159,252,233,119,211, 0,128,161,105,230,126,210,205,135,123,182,126,122, - 89, 40, 20, 94, 53, 80, 70,203,231,207,159,255,237,168, 81,163,164, 22, 22, 22, 40, 47, 47,199,181,107,215,240,215, 95,127,225, -198,141, 27,208,106,181,176,183,183,135,173,173, 45,100, 50, 25,210,210,210, 84, 0,150,183,100, 83,100, 38,128, 87,215,250,145, -191,181, 10,150,160,193,104,195,134,234,150, 80, 32, 48,234, 61, 26, 52,104, 16,250,246,237, 91, 79,128,152,236,236,108,153, 70, -163, 33, 26,144,254,252,122, 66,238,225,225, 65,239,223,191,159,107,201,230,141, 93,219,112,238,179,229, 16, 9,133, 88,148,154, -171, 39, 93,123,135,244,132, 64, 36,132,239,232,215, 27, 94,187, 29,181,238, 66, 52, 34, 89, 45,181, 29,207,253,110,154,108,254, -109,109,254, 47, 67,134, 54, 44,193, 83,143,159,213,106,245,217,119,223,125, 55, 58, 40, 40,232,221, 77,155, 54, 17, 66,161, 16, -171, 86,173,226, 10, 10, 10,126,172,235,133, 84,180, 37, 85, 28,199,253,248,251,209,235,239, 77,143, 28, 67, 44,220, 60, 99, 64, -220,197,164,180,238,253,188,209,189,159, 55,226, 46,165, 96,235,178, 3,251, 25, 29,179,162,176,176, 48,199,128, 41,205,176,254, -221, 26, 7,195,219, 95,185,124,209,190,181,163, 14, 89,150,141, 57,112,224,192,188,113,227,198,145,183,110,221,122, 38, 38,171, -126,217, 29,150,101,113,254,252,121, 80, 20,133, 31,127,252,145,101, 89,182,249,121,180,192,157,248,122,115,244,244, 31,247,157, - 16,137,132, 4,254,186,122, 4, 85, 21, 45,143,234, 18, 10, 5,248, 97,207, 81, 74, 40, 20,220,111,234, 56, 69, 81,185, 23, 47, - 94,116,126,153, 97, 4, 36, 73, 54, 69,160,154, 68, 76, 76,140,142,101,217,108, 3,167, 93, 47,202,203, 25,253,249, 71,111, 31, - 24,245,198,187,206,253,250, 13, 16, 56, 56, 57,131, 32, 8, 20, 23, 21, 35, 61,233,150,238,236,145,239,139,106,148,198, 45,193, -243,246, 87,191,235, 99,178, 0, 32, 98,206, 22,125,124, 22, 0,140,158,177, 4,225, 33,254, 32,140,145,158,158,144, 44,150,166, -105,152,155,155,131,166,233, 38,167,120,176,182,182,150,170,213,106, 85,221, 68,140, 45, 74, 69, 28,240,194,203,136, 97, 24,223, -138,138, 10,212,212,212,224,175,191,254,226,214,174, 93, 91, 82, 82, 82,162, 15,218,212,233,116,190,229,229,229,168,174,174,198, -245,235,215,185,232,232,232,146,178,178,178,101,173,121,135,164, 82,105,111, 62,159, 31, 87, 81, 81,193,154,153,153,145, 58,157, - 78, 23, 24, 24, 40,150, 74,165, 70, 47,168, 46,147,201, 70, 52,119,204,203,203, 43, 35, 35, 35,163, 11,195, 48, 13,215, 64, 20, -170,213,106,239,126,253,250, 25, 83,127,204,223,189,123, 55,142, 30, 61, 26, 44,151,203,167,102,103,103,239, 5, 16,204,231,243, -113,247,238,221, 84,181, 90, 61,105,220,184,113,123, 42, 42, 42,110,162,118, 9, 30, 99,112, 46, 61, 61,125,138,175,175,239,238, -213,171, 87, 91,132,133,133,241,221,220,220,208,167, 79, 31,164,167,167,227,244,233,211,186,237,219,183,215, 40,149,202,183, 1, -156,111,185,216, 65,208, 52, 13,145, 72,164,255,136,197, 98, 8,133, 66, 40, 84, 28,222,217,144,169,162, 33, 85,109, 92, 53,235, - 52, 7, 16,133,185,153,165,197,133,185, 55, 9,130,184, 42,147,201,170,154,201, 51,145, 90,173,238,193,113, 28,143, 32,136,205, - 20, 69,205,152, 59,119,174,235,186,117,235,208,173, 91, 55,148,150,150,194,220,220, 28,222,222,222, 40, 41, 41,193,173, 91,183, - 24,165, 82,185, 3,192, 26,212,197,143, 52,135,202, 82, 57,218,187,120, 60,165,124,114, 28, 7,142, 1,116, 26, 6, 12,197, 65, - 75,232, 32, 16,232, 32, 20, 10,141, 81,158, 56,150,101, 81,225,234, 10, 54, 41, 9, 55,110,220, 0,199,113,205,170,106, 62, 62, - 62, 70, 84,236, 44, 68, 98,209, 83,238, 66,130, 32, 32, 20,137, 32, 16, 9,155, 26, 57, 99, 82,177, 76,248, 71,195, 88,223,120, - 37,128,217,247,238,221,219, 59,120,240,224, 88,142,227, 4,168,245, 71,254,241, 60,127, 94, 88, 88,120,231,250,233, 59, 75,157, -219,219, 70,143,156, 58, 0,221,122,120,130,161, 25, 92, 59,115, 23, 63,174, 59,126, 48, 63, 55,127, 6,140, 88,251,140,101,217, -203,253,123,119, 35,209, 96,174,110, 55, 55, 55,182, 45,163, 14,171,170,170, 86, 46, 90,180, 8, 31,125,244, 81, 91, 70, 29, 54, -137,196,180,146,217, 4,184,246,163, 71, 14,124, 25, 4,201,105,181,154, 22, 42, 62,232,103, 46, 21, 10, 5,247,111, 39,200, 2, -155, 58,175,164,164,228,229,183,222,122,235, 60,159,207,239,216,154, 60,103, 89, 54,187,168,168,104,168,225, 51,233,107, 26,149, -220,251,212,193,157, 11,206, 29,221,253, 50,203, 50,157, 9, 0, 60,190,240,161,142,162,126,213,168,228,155, 96,228,162,210,235, -103,135, 98,254,215,191, 97,219, 71,163, 49, 55,250, 48,190, 95,241, 14,150,110, 56,128, 47, 63,154,143,181, 91,126,194,167,243, -167, 96,252,228,183, 88,142, 32,255, 52,246, 62,120, 60,222,185,157, 59,119, 78,127,231,157,119,244,131, 22, 56,142,123,170, 98, -215,233,116, 42,150,101,177, 99,199, 14, 22,192,185,150,236, 61, 93, 70, 4,215, 82,188,148,177,101, 36,151,203,223, 14, 13, 13, -221, 3, 64,204,113,220,131,138,138,138,255, 0, 79,150,134,170,174,174,126,187, 95,191,126,123, 56,142, 19, 19, 4,241,204,113, - 99, 80, 55,213, 67,111, 91, 91,219,184, 58, 37, 75,220,150,128,248,150,178,186, 5,183,162, 49, 46, 68, 22,192,220, 6, 51,190, -175, 11, 14, 14,110,184,168,116,106, 69, 69, 69,239, 54,164,235,188, 74,165,242, 95,177, 98,197, 2,137, 68, 18,174, 84, 42,187, - 2,128,185,185,121,186, 70,163,185,172, 82,169, 54,193,240,220, 84, 90,150,101,211,105,154, 14,112,116,116,172, 29, 81, 91, 71, -182, 0,224,100, 28, 19, 7, 48,125,106, 69,241,159,141, 78,216,153, 51,103, 58,216,218,218,190, 68, 16,196,120,142,227,124, 20, - 10,133,102,197,138, 21,215, 99, 98, 98,170, 58,118,236, 56,114,212,168, 81,132,157,157, 29,110,223,190,205,149,149,149, 29, 1, -176, 12, 70,140,180,102, 89, 54,123,253,250,245,104,237,251,222,210,113,138,162, 10,207,156, 57,227, 48,162,184,152,207,178, 44, - 70,143, 30,253, 20,129,107,140,251,247,239, 67,163,209,180, 56,153,163,166,170, 2, 67, 22, 44, 1,234, 70,127,214,163, 86,201, -226,192,105, 77,188,202,132,127, 23,254,219, 11,122, 26, 37, 45,186,186,186, 78,148,152,139, 63,240,236,234, 26, 88,144, 89,156, -162,168, 82,238,151,201,100, 59,155,169,200,141,178,217,202, 9, 75, 77,242,239,127,201,230,147,121,180, 24,112, 28, 3,142,229, -192,113, 44, 88,150,169, 93,240,154, 99,193, 49, 12, 65, 16,248, 83,171,106,113,102,240,198,233,180,117,112,112, 88,195,113,220, - 8, 30,143, 71, 54, 20,195, 26,126,175, 83,178,206,149,148,148,124,218,132,242,250, 63,151,159, 49, 49, 49, 77,146,127, 99, 71, - 29, 78,152, 48,129,105,229,187,121,217,220,220,220,181,169, 99, 53, 53, 53, 57, 50,153,236,165,191, 73,126, 54, 28, 49,216, 26, -155,173, 30,117,104,200,166,167,167,167,152,162,168,158, 0,188, 9,130,176, 1, 80, 78, 81,212,175,165,165,165, 69, 0,122, 3, - 88, 81,119,205,103, 0,226,254,143,223,119,169,131,131,195,110,146, 36,219, 27,115, 49, 77,211,218,242,242,242,233,141, 58, 4, -122,155,246,246,246,113,124, 62,191,189, 17,118,242,202,202,202,122,155,234, 79,147,205,127, 16, 26, 7,193, 55, 59, 83,252,127, -131,104,153,108,154,108,154,108,154,108,154,108,154,108,154,108,154,108,254,211,137, 86,147,251,166, 97,181, 38,152, 96,130, 9, - 38,152, 96,130, 9,207,135,211,141,200,214,233,250, 47, 68, 11,172,180, 53,146, 96, 91,152,237, 5,147, 77,147, 77,147, 77,147, - 77,147, 77,147, 77,147,205,127,157, 77, 19, 94, 32, 76,178,170,201,166,201,166,201,166,201,166,201,166,201,166,201,230, 63, 29, -205,186, 14, 73, 83,222,152, 96,130, 9, 38,152, 96,130, 9, 38,252,119, 96, 52,209, 50,119,246,241,117,240, 12,220, 99,219,190, -123,130,109,251,238, 9, 14,158,129,123,204,157,125,124,255,165,249, 38, 5, 48,153,207,231,159,119,113,113,145,163,153,165,119, -254, 1,176, 2, 48, 30,181,243,251,140, 5, 96,246, 34,141,135, 1,252,137,192, 7,211,128,156,105, 64,206, 68,224,131,176,127, - 96,220,224,170,121,174,161, 87,207, 78, 62,187,106,158,107,104,147,199, 23,185,218,223,248,109,194,215,235, 62,112,179,123, 65, -127,105,233,228,228,180,203,217,217,249,177,147,147, 83,182,147,147,211,110, 0,214,166,234,206, 4, 19, 76, 48,225,191,134,250, - 24,173,250,143, 62, 70,139, 15, 0,177,177,177, 97, 0,126, 7, 48, 56, 34, 34,226, 74,227,171,109, 61, 2,222,233,220,169,243, - 71,159,175, 90, 70,184, 56, 57,152,209, 12, 75,101, 61,206,245, 91,249,121,244, 47, 5, 34,254,198,138,156,164,239,219,144, 40, -130,199,227, 77, 20,139,197, 17, 0,234, 9, 91,170, 70,163,137,101, 24,230, 16,140, 27,166, 13,103,103,231,171, 60, 30,175, 67, -107,254,152, 97,152,156,162,162,162, 1,109,204,204, 9, 30, 30, 30,187,195,194,194,204,130,131,131, 33, 18,137,176, 98,197,138, - 69, 50,153,108,147,177, 6,108,109,189, 44, 41,177,228, 67,190, 72, 52,156,211,105, 3, 56,112, 0, 41, 78, 98,105,205, 69,161, - 70,179,177,162, 34, 83, 97,164,169,101, 0,102,212,229,213,247, 0,214, 63,207, 83, 50,189, 7,116, 58,166,246,153, 16,242,193, -156,120,100,253,251,242,229,203,249, 17, 17, 17,248,254,251,239, 7,236,218,181,107,150, 66,161,184, 8,224, 36,128,135,207,251, - 84, 58, 3,179,251, 13, 24,240,245,244, 69,139,120,170,171, 87,241,245,238,221,155, 81, 59,223,210,182,214, 62, 75, 66, 33,198, - 59, 56, 8, 34, 56, 14, 61, 9,128, 32,128,187, 37,101,236, 25,138, 98, 14,193,136,185,216, 90,192,100, 60, 61, 28,255,231,214, - 26,168,122,200,125, 34, 30,237, 59,176,234,225,229, 79, 0,140,108,124,156, 86, 75,166,115, 60,247, 8, 21, 23,159, 11, 96,195, -115,102,171,153,163,163, 99,194,137, 19, 39,218, 7, 7, 7,243, 1, 32, 46, 46,110, 90, 68, 68,196,144,146,146,146, 0, 0,242, -255,163, 74, 72,194, 39,201, 15, 68, 2,193,112,134, 97,186, 3, 0,143,199, 75,212,234,116,231,105,150,221, 6, 35,231,100, 51, -193, 4, 19,254,185, 48,196, 69,254,230,104,118,102,248,250,155,227, 26,110, 27,194,220,169,155, 95,200,208,215,239, 87, 41,148, -234,199,143,243, 43, 22,126,176,246,252,172,249, 95, 29,223,240, 93,236,153, 43, 55, 83,111,248, 6,191,148, 98,238,212,205,175, - 25,211,205,249,112, 61,164, 82,233,157,237,219,183, 83,233,233,233, 92,101,101, 37,119,255,254,125,238,200,145, 35,220,123,239, -189,167,150, 74,165,119, 0,120, 24, 99,211,217,217,185,232,254,165,223,184,188,132,120, 46, 59,238, 38,167,211,233, 56,138,162, - 56,138,162,184,148,115,177, 92,194,201,163,220,221, 35,135, 56,173, 86,203,105,181, 90, 78,163,209,112,157, 58,117, 42, 48, 50, -157,141,225,230,239,239,175,141,141,141,229,126,249,229, 23,110,209,162, 69, 92, 80, 80, 16, 3, 96,142,177,247,110,238,228, 29, -110,217, 46,176,228,157,200,109,212,233,235,191,114,201,143,238,114,201,143, 50,184,152, 11,169,220,140,197, 91, 40,203,118, 65, - 37,230, 78,222,225,134,238,221,214,214, 54,132, 32, 8,174, 30, 0,184, 14, 29, 58, 84, 55,252,120,120,120, 60,245,113,119,119, -175,238,216,177,227, 67,123,123,251,158, 77,217,156,212, 29, 28,151,242, 51,199,165,252,204, 45, 31, 4, 46, 57, 57,249, 6,199, -113,191,215,127, 84, 42,213,239,199,142, 29,251,253,181,215, 94,251, 29,192,171, 45,228,147, 81,249, 57, 13,200, 81,156, 56,193, -113,155, 54,113, 92, 88, 24,151, 10,112,211,128,156, 86,218,236,228,226, 34,184,251,213,250, 89,218, 19, 39,126,228,206,158, 61, -205,157, 57, 19,203, 29, 63,182,155,219,188,233, 3,202,217, 89,144, 4,160, 75, 43,108,242, 1,172, 5,176, 17,181,202,101,122, - 73, 73, 9, 87, 88, 88,200, 1, 72,175,251,109,163,163,163,227, 6, 52,173,190, 13,107,168,100, 45, 24,225,114,246,141,145, 3, - 56, 69, 85, 1,247,198,200, 1,220,130, 17, 46, 79, 41, 91, 35,188,188, 44,231,142,238, 94,146, 28,183,159,153, 59,186,123,201, - 8, 47, 47,203, 54,230, 39,129,218,117, 66,183, 95,186,116,137,230, 26, 64,167,211,113,123,247,238,101,108,109,109,127,108,133, -205,174,142,142,142,217,118,118,118,233, 13,127,116, 12, 28,219,207,103,224,180,149,246,126,175,133,181, 34,157,193, 18,161, 48, -239,252,225,111,153,178,156, 68, 78,171, 42,226,170, 30,196,115,121,169, 55,184,189, 59, 55,234, 68,124,126, 30,128,224,231,121, -150, 90, 9,147, 77,147, 77,147,205,191,161,205,150,184,200,255, 50,248,141,111,176, 49,196, 98, 81,228,202,229, 75,136,202,178, - 74,149, 90,174,208,234,212,106, 53, 41,228,212,137, 41,143,138, 73, 62,175,114,193,252,121,150,145, 75,151, 71,214, 0, 83,140, -252, 79,143,160,160,160, 91, 71,143, 30,117,178,179,179, 67, 85, 85, 21,202,202,202,112,235,214, 45,112, 28,135,113,227,198,137, -251,246,233,211,243,147, 21, 43,254,202,203,207, 15, 69,243, 13,239, 19,242, 98,231,128,245, 3,106,215,162,253,244,113, 89,109, -171, 67, 16,216, 53, 33, 66,127,206,154,188,218,213, 50, 36, 18,137,126, 65,226, 54, 32,116,232,208,161, 66, 0,152, 57,115,166, - 92,161, 80, 68,213, 41, 28, 70,173,180,106,238,228, 29,238,224,234, 22,251,237,142,245,210,238,157,189, 65,233,104,100, 23, 22, -128, 47,176, 65,251,246, 66,188, 53,101,184, 96, 80, 63, 59,135,181,159,237, 58, 93,200, 98,172,178, 52,227,215,230,108,217,216, -216,236, 61,116,232, 16, 14, 31, 62, 12, 0, 72, 79, 79,135,183,183,183,185,161, 52, 36, 37, 37,121,189,250,234,171, 7,203,202, -202,186, 24, 58,183,241,196,248, 98,177, 24, 3, 6, 12,128,159,159, 31, 78,156, 56, 49,184, 78,217,122, 46,168,174, 94,133,197, -189,123,192,149, 54,117, 94, 58,245,234,229,121,227,204,233,253, 14,167,207,164, 98,195,134,221,120,248,176, 86,104,243,242,242, -194,228, 73, 19, 4,137,137,215,253,199,143,159,124,253,143, 63, 30, 14,168, 35, 74,134,176,250,187,239,190, 91,214,177, 99, 71, -140, 31, 63,126,130,191,191,191,139,149,149, 21,118,238,220, 9, 87, 87, 87, 47,173, 86,251,224,196,137, 19,110,133,133,133,152, - 55,111, 30,138,138,138, 22, 53,103,104,240,203,131, 63, 17,143,246, 29,216,173,215,116, 88, 88,185,226,187, 3,135,112,255,206, -222,129, 26, 42,245, 19, 33,115,101,170,138, 19,207, 40,201,177,136,236,208, 59,204,190,139,255,171,240,236, 21,239,160,102,254, -120,244,201,240, 78,209,124,137,122,239,170, 13,178,178,103,140,142,143,225, 5,200,211,236,146,206,163, 12, 88,197,214, 19, 44, -189, 90,203,225,213, 65,131, 6,233, 11,238,241,227,199,208,104, 52,240,245,245, 37,181, 90,109,184,145,249,218,245,165,151, 94, -250,243,204,153, 51,246, 93,187,118, 45, 41, 47, 47,215, 31,112,177,183,121,249,202,209,205,243,214,126,253,147,207, 62,142,168, - 44, 73, 61,158,104,192, 86,112,255,144, 94, 23,206, 30,221,111, 65, 84,231, 66,100, 83, 10,176,101,200, 60,248, 3, 8, 51, 59, - 76,124,111, 33, 63,124,232,144,118,195, 71,190,126,225,126,198,195,161, 0,110,155,250,245, 38,152,240,175, 86,181,184,127,218, - 61,233,137, 86, 68, 68, 4,209,212, 13,178, 28, 27,232,236,100, 47,221,252,213,158,219, 60, 74,171, 53,183,177,214, 10,172,173, - 88,194,210,154, 71,105,117,213,158, 94,158, 34,150, 99, 3,155,177,223,120,136, 39, 33,149, 74,143,158, 60,121,210, 73, 32, 16, -128,101, 89, 56, 58, 58, 34, 43, 43, 11,149,149,149, 80, 40, 20,120,152,154,138,142, 30,238, 88, 21,185,196,117,222,146,200,163, - 74,165,178, 55,158,118, 35, 62, 51,108,148,209, 61,189,110,116,253, 18, 44,207,116,249,235,126,107,226,152,177, 67, 81,179,114, -114,114, 96, 97, 97,129,128,128, 0,139,107,215,174,253,209, 2,201,122,202,166,173,173,151, 37, 43, 22, 29,222,254,237, 10, 41, -165, 75, 66, 74,102, 57,186,117, 28, 8,103,123, 15, 20,148,107,113,227,214, 73, 36, 37,252,140,206,237, 60, 48,231,189, 33,146, -232,245,191, 28, 18,210, 29, 61, 42, 43,179,228, 77,217,148,203,229, 22,157, 58,117,130,135, 71,237,186,103, 12,195, 32, 37, 37, - 5, 12,195,232,247, 27,110,247, 28,185, 4, 90,158,141,233,211,166,161,172,172,204,162, 41,155, 2, 30,232,133,179, 38,243,165, - 2, 64,100,110,167,173,174,174,214, 47,195, 65, 81, 20,238,222,189,139,208,208,208,176,152,152, 24, 67,172,200,168,252,164,128, - 47,191,254,241,199, 45, 83,170,170, 72, 0,248,158, 32, 88,138,227,190, 52,246, 89,114,114, 18, 28, 57,119,118,159, 3,143, 76, -131,157,245, 23,184,117, 43, 27, 20, 85,155,222,178,178, 98,204,253, 64, 14,161,192, 18, 39, 78,252,100,239,235, 59,224, 72, 97, - 33, 21,128,167,221,136, 77,165, 83,114,246,236, 89,204,157, 59, 23, 41, 41, 41,110, 60, 30, 15, 55,111,222,132, 84, 42,197, 87, - 95,125,197,243,245,245,117, 51, 55, 55,199,185,115,231, 80, 84, 84, 68,180,148,206,223,127,253,253,243,170,135,151, 63, 41, 36, -206,141,248,238,192, 33,188, 59,105, 34, 92,184,204, 63,172, 59, 19,159,191, 52,186,255,167, 28,207, 61,194,220, 50,208,214, 59, - 96, 52,132, 34, 11,204,249,120, 13,210,147, 78,217, 42, 21, 9, 31, 16, 76,174,251,170, 13, 49,243,159, 73,231, 47, 19,152,153, - 63, 95,235,117,222,227,182,231,189,187,179,110,202,226,119, 37, 60, 33, 90, 94,124,130,100,172,129,218,229, 83, 30, 60,120,128, -135, 15, 31,130,207,231, 67,165, 82,129,166,233, 38,211,233,230,230, 54,155,166,233, 79,235,202,121,143, 68, 34,121,123,255,254, -253,246, 13,137,182, 99,224,216,126,246,150,230, 67,139,138,203, 42,174,223, 78,190,191,112,246,248,193, 87,111, 36,229, 82,130, -215,114,170, 18, 78, 84, 53,147,159, 18,169, 72,116,228,220,177,159, 44,116,143, 46,193,220,119, 48, 4, 22,222, 96,116,249, 80, - 86,212, 64,241, 80, 6,205,183, 91,209,227,131, 5, 56,117,252, 23, 11,255,238,189, 99, 52, 58,157, 55, 0,109, 27,222,205,214, -192,100,211,100,211,100,243,239,105,179, 89, 46,194,113, 92, 47, 0,206,117,187,101,117,188,192, 1, 64, 41,106, 87,145,113,174, -171, 59, 68, 13, 46,107,188,223,240,220,198,251, 13,191,151,213,125,119,170,219,222, 38, 8,162,220, 64,210, 93, 81,187, 52,225, -233,186, 45, 80,231, 74, 52, 24,120, 76, 16,164,156, 97, 88,177,208,209, 73, 61,243,141,161,221,127,187, 16,119,215,204,193,138, -255,242,224,158, 97,183, 18, 31,253, 69,144,132,142, 32, 72,163,226, 62,120, 60,222,196,205,155, 55,119,183,178,178, 2,203,178, -176,182,182, 70, 73, 73, 9,180, 90, 45,170,170,170,160, 81,200, 65, 41,228,184,151,251, 24,253,195, 6,227,245, 17, 47,249,254, -116,252,228, 68,134, 97, 14,182,100,215, 45,176,167, 94,201, 90,211,193,254,137, 52,145, 91,169, 39, 93, 95,244,244,134,208,194, - 2,195, 23, 70, 62,207, 51, 16,127,250,244,233,179,227,198,141, 27,185,120,241, 98, 82, 38,147,157,203,202,202,234, 15, 32,197, - 32,169, 16, 67,242,131,130, 0, 0, 32, 0, 73, 68, 65, 84, 75, 62,124,255,195, 8, 91, 91, 11, 14, 49,231, 79, 98, 80,207, 73, - 48, 19,241, 80, 38,167, 64, 16, 64,106,242, 81, 16,132, 29, 18,210,101, 24,216,195, 10, 47,189,236,107,113,252,151,212,197,120, - 18, 31,244, 76,209, 84, 84, 84,160,184,184, 24, 58,157, 14, 58,157, 14,227, 39, 76,192,190,189,123, 81, 83, 83, 3,149, 74, 5, -173, 86, 11,134, 97, 64,146, 36,206,199,198, 32,247, 81, 42,250,133,134, 2,205, 44,189,180,247, 46, 4, 0,110,220,191,127, 31, -169,169,169,200,203,203,131, 68, 34,129,139,139, 11,214,172, 89, 3,141,166,118,141,178, 9, 19, 38,132, 1, 72,124,222, 23,234, - 33,176, 43,139, 97, 62, 25,121,236,152,211,181, 99,199,216, 27,167, 78,229,137, 21,138,157,198, 92, 43, 20, 98,252,250, 47,223, -235,102,110,110,142,188,156,205,240,241, 17, 98,209, 2,123, 68,125, 81, 10, 0,152, 55,183, 61,250,244,118,128,188,242, 23, 56, - 56, 45,195,150, 45,243, 59,207,152,177,113,154, 82,201,236, 49, 96,250,147,147, 39, 79,190,238,237,237,221, 46, 62, 62,158, 16, -137, 68,144, 74,165,144, 74,165,144, 72, 36, 40, 46, 46, 70, 86, 86, 22,183,126,253,250,124, 0,159,180,100,104,213, 22,217, 95, - 0, 70, 46, 24,129,179,247,239,236, 29,216,142,247,232,222,235,115, 6, 60, 78,184, 17,175,248,237,252,181,207,104,181, 36,183, - 50,239,194,146, 78,125,226, 29, 62,248,104, 53,182,174, 95,137,251, 55,175,150, 59,123,200,183, 73, 9, 77,147,233, 12, 11, 91, -197,119,117,182,163,103,207,120,221,230,148,243,245,217,103,248, 68, 73, 97,233,157,175,144, 21,175, 18,119,233, 57,181,171, 23, -169,189,116,233,146,116,208,160, 65, 80,171,213,122,101,114,255,254,253, 44, 77,211,151,155,124, 54, 41,234,211,252,252,124, 87, -149, 74,133, 17, 35, 70,204,251,234,171,175,204,235,215,168, 99, 24,230, 41, 37,235,243, 77,251,126,253,240,211,109,151,127, 61, -248,133,219,231,145,111, 15,158, 50,103,237,101, 52,179,142, 36,159, 36, 63, 56,117,108,183,139,196, 86, 7,169,221, 75, 80, 23, -169,112,127,215,187, 80,202,213,232,243,249,106, 0, 34,104,117, 36,118,142, 30, 15,129,189, 27, 86,190,243,182,219,242,157,223, -189,199,178,236,102, 83,191,222, 4, 19, 76,104, 4,103,130, 32, 98, 1, 32, 50, 50,114, 89, 84, 84, 84, 50, 65, 16,177, 28,199, - 69,212, 9, 40,177, 28,199, 69,212,159, 83, 71,206,158,217,175, 63,183,241,126,227,239, 75,151, 46,245,143,142,142, 94, 23, 26, - 26,122,240,250,245,235,143, 0, 24, 34, 90,163,234,136,213, 51, 75,239,144,245, 12,178,225,246, 41, 69,139,101,175, 62,120,244, - 88,249,210,176,190,237, 99,175, 36,222,126,235,173, 81, 67, 39,142, 30,244,114, 86, 78, 89,106,103, 79, 23,135,228,228, 68, 43, -150,101,175, 26,147, 75, 98,177, 56, 98,200,144, 33,252,138,138, 10,152,153,153,161,164,164, 4,249,249,249,160, 40, 10,234,170, - 74,104,170, 42,161,174,172, 0, 85, 85,129,135,113,183, 16,216,217, 75, 92, 23, 44,223, 34,234, 85,151,198, 74, 85, 67,101, 75, -100,105, 9,177,165, 37,136,214,187, 13, 95,179,177,177,185, 81,223,168, 82, 20,245,193,146, 37, 75, 74, 89,150,197,218,181,107, -173, 44, 44, 44, 98, 0,136, 13, 25,177,116,228, 69,132,246, 8, 32,211,178, 18, 48, 32,104, 58,186,118,122, 5, 89, 69, 42,148, - 42, 40, 20, 87, 82,232, 51,232, 27,116, 8, 90, 13,247, 30, 81, 72,205, 46,135, 91, 59,111, 18,124,113,139,139, 63,231,230,230, - 62,181,127,240,192, 1, 40,149, 74,116,238,220, 25,147, 38, 77,194,146, 37, 75, 48,105,210, 36,184,185,185, 97,202, 27,175, 98, -229,202,149, 40, 44, 44, 52,148, 84, 77,215,174, 93, 53,158,158,158, 26, 79, 79, 79, 13, 69, 81,168,174,174, 70,101,101,101,227, -252,158,223,218,140,116,114,114, 90,234,226,226,146,224,228,228,148, 44, 22,139,207,220, 37,136, 52,181,167,167,115,255, 49, 99, - 8,191, 55,222,224,101, 75,165,196, 21,192,194, 24, 91, 14,118,130, 81,225, 67, 70,138, 42, 43,118,235, 69,170,183,223,114,196, -159, 87,252,113,237,143,222,152,251, 65,103, 16,164, 4, 4, 41,130,178,230, 18,250, 6,135, 10,109,108, 8, 67,207,210,100, 0, -119,251,247,239,239, 54,103,206, 28, 66, 44, 22, 99,222,188,121,212, 59,239,188,147, 49,105,210,164,140,139, 23, 47, 50,158,158, -158,112,119,119, 39,220,221,221, 93, 1,220,173,187,166, 69, 88,117, 38, 62,215, 80,169,127,216,120,155, 63, 98,224,208,175, 90, - 39, 30,191,106,131,172,236,243,237,143, 54,100,221, 87,122,221,191,121,181, 44, 35,233, 20,155,117,251,247,210,130, 12,133,215, -231,219, 31,109, 88,182,173,160,201,151,250,202, 21,176, 71, 99,175, 80,202, 26, 37,127,204,232,112,229,236,153, 19,187,218, 89, -248,239, 71,187,151,130, 58,120,180,159,178,114,221, 22,234,157,247, 62,164,190,255, 97, 55,167, 80, 40, 32,151,203,177,101,203, - 22,250,212,169, 83,249, 12,195,124,216, 92, 31, 8, 0,116, 58, 29,102,207,158,109,110,101,101,133,220,220, 92,189, 34, 10, 0, -178,146,178,196,107,183,147,210, 22,254,103, 66, 88,141, 70,163,249,245,247,184, 84, 63,111,207,246, 4,193, 53, 59, 16, 69, 36, - 16, 12,239,221,183, 47,143,227, 42, 65,240, 61,240,112,239,122,200, 11,203, 33, 47, 46, 7, 79, 96, 14, 26, 98,232, 88, 17,108, - 2,131,145,126, 59, 30,237, 28,157,249, 98,129,224,101, 83,123, 98,130, 9,255, 78,180,196, 69, 26,146,165,232,232,232,117, 45, - 29,111,176,213, 54,218,215, 19,169,198, 36,172,225,119, 0,136,142,142, 94,199,113, 92,196,245,235,215, 15, 0, 80, 25,121, 11, -179, 26,108,141,159, 71,139,167,214, 70, 45, 94,242, 9,108,173,165,214,193, 61,189, 93, 78,156,187, 18,119,245,122, 92,106, 7, -119, 7, 71, 78,167,181,253,114,227,214,246,132, 82, 21,109,100, 34,124, 29, 28, 28, 64, 81, 20, 30, 60,120,128,188,188, 60, 80, - 20, 5,186,166, 6,154,202, 74,168, 43, 42,192,212, 40, 32,100, 24,168, 74,138, 97,111, 38, 1,158,140, 72, 52,160,188, 17, 77, - 18,173,250,173,196,202, 10, 98, 75, 43,144, 2, 65,147,110,197,102,208, 43, 56, 56,248,112, 82, 82, 82,223, 97,195,134,125,134, -218, 33,242,217,249,249,249, 67, 87,172, 88,161,113,118,118,198,236,217,179,187, 1,152,110,144,100,138,180,190,158, 46,221,208, -213,107, 58, 58,184, 15, 65,101,141, 14, 37,114, 29,138, 43, 41,236,252, 38, 20, 71,190, 15,198,159, 71, 6, 34,233,215,225,168, -212,185,192,194,237, 53,112,140,214,191, 37,155,231,207,159,199,154, 53,107,240,217,103,159, 97,237,218,181,248,236,179,207,144, -159,159,143,128,128, 0,228,228,228,224,236,217,179,144,201,100,112,112,112,192,173, 91,183,176,105,211, 38,252,249,231,159, 6, -111,186,158,184, 26,113, 78,171,124,233, 52, 77,207,144,141, 25,211,189,200,206,206,175,103,207,158, 35,231,205,155,231,213,191, -127,127,253,113, 47, 47, 47, 15,169, 84, 90,136,218, 17,148, 61, 90,178,197, 2, 61, 29, 29, 3,160,213,164,213,149,177, 0, 4, - 33,193,144,225,169,232, 63, 48, 14,148, 78, 8,146, 16,131, 36, 37,160,233, 50,216,218,186,129,227,136, 0, 3, 73, 92, 81, 82, - 82,226,125,225,194, 5, 50, 43, 43, 11, 18,137, 4, 0, 30,175, 90,181,106,235,134, 13, 27, 82,236,237,237,153,216,216, 88, 28, - 63,126, 28, 17, 17, 17,188,119,222,121,199,219,221,221,125,135,161,251, 94,181, 69,246,215,207, 27,207,190, 41,208,217,246,144, - 72, 59,116, 68,141,197,107,239,135, 57,152, 3,192,185,204, 76,133,147,135, 60,186, 70,145,144, 99,211,190,250,139,115,153,134, - 70,156,174, 98,239,100,164,221,248,249,216,185,170,226,162, 10, 65,207,238,254,170,168, 53, 31, 9, 59,116,236,242,229,202, 37, -255,113,201,151, 75, 42,135,207, 59,155,118,244,220,173,234,169,111,189, 75,207,156, 53, 71,125,246,220,249, 99, 44,203,118, 71, - 51, 35, 14, 89,150,133, 76, 38, 67,114,114, 50, 50, 51, 51, 81, 82, 82,130,210,210, 82, 40, 20, 10,189,187,209, 76, 33, 63,189, -245,199, 83,247,204,165, 82,179,190,221,189, 61,110,198,167, 20,155, 75,165,102,222, 29, 61,186, 2,171,154,172, 71, 24,134,233, - 46, 49,147, 2, 32, 80,153,116, 21,213, 21,213,168,174,172,134,162,188, 26, 26,138, 7,181,134,132, 74, 75,194, 51,236, 37, 84, -215,168, 81, 93, 86, 5,150, 97,130, 76,205,141, 9, 38,152,208, 66, 91, 31, 27, 25, 25,185,204,200,115,141,118,111, 54, 38, 94, -145,145,145,203, 8,130,136, 93,186,116,169, 63,154, 31, 80,213, 16,187,154,248, 0, 48, 98,122,135,178,178,140,106, 75,194,119, -220,130,143, 63, 61,123,224,135,111,156, 52, 26,101,142,189,173, 5, 99, 97, 38,114,152, 57,123, 45, 20,213, 21, 99,107,140,159, -142, 0, 21, 21, 21,120,244,232, 17,164, 82, 41,132, 2, 1, 24,149, 10,140,170, 6,170,138, 50,144,148, 6, 66,134,129,157,153, - 20,158,110, 46,232,224,236, 98,148,205, 7,151,126,211, 7,190, 55,116, 23,174, 15,246,133,200,220, 2, 34, 75, 11,188, 31,251, - 59, 0, 64, 40, 20, 2, 43, 62, 51, 74, 52,105,215,174,221,201,159,127,254, 89, 88, 82, 82,130,187,119,239,222, 3, 80, 5,192, - 18, 0,155,154,154,122, 33, 41, 41, 41,194,219,219, 27, 0, 58, 27, 50, 38, 47, 37, 25, 29,205, 33,183,240, 49,178,242,226, 97, -103,221, 9, 2,179,174, 40,174,164, 32,150,118,130, 78,243,196,251,168,150,103, 67, 69,241,140,186,119,173, 86, 11,154,166, 65, -211, 52,180, 90, 45,102,205,154,133,107,215,175,227,224,241,139,120,244, 48, 29,221, 58,186, 96,218,180,169, 8, 14, 14,198,245, -235,215, 91,180, 53,189, 7,116,237, 44,192,223, 56,146,132,200,194, 94, 19,178,228,215,155,134,200, 22, 65, 16, 28,154,113, 69, - 54,194,134,208,208,208, 46,233, 53, 53, 72, 78, 75,195,176, 85,171, 0, 0,103,206,156,121,234, 94, 22, 46, 92, 40, 74, 73, 73, -153, 25, 23, 23, 55,179,160,160, 96, 35,128,166,131,205, 57,224,244,233,191,240,159,255,164,160,164,164, 4, 0,112,232,192, 19, - 94,154,245,136,194,136, 81,181, 30, 45, 27, 27, 27,108,220, 24, 96, 84,126, 50, 12,131, 93,187,118,233,221,133, 0,192,231,243, -251, 47, 92,184,112, 92, 83,231,119,233,210, 69,104,200,230,130,241,237, 36,127,222,227, 62,176,238,210,193,223,202, 33, 16,101, -186,248,128,248,124,217,220, 5,227,219,109,222,244, 75,190, 90, 74,104,246, 16, 76,174, 59, 95,162,222,107, 76, 26, 51,207,125, -163, 45,243,156,177,183,176, 68,190,124,206,187,147,237,173,108,156,106,190,223, 26,101, 75,242, 72,238,100, 28, 85,233,239,101, -111,243, 90,200,215,213,255, 89,176, 34, 94, 75,231,206, 65,238,201,116,180, 48,197, 5,195, 48, 40, 40, 40, 64, 73, 73, 9,114, -114,114, 80, 90, 90,235,126, 45, 45, 45, 5,203,178,207, 83, 33, 66,149,147,131,236, 99,223,163,195,212,169,232,243,217, 26, 48, - 44, 31, 42, 37,131,141,253,134,162,162, 74, 5, 13, 75,192,173, 87, 63,188,123,230, 15,144, 28, 3,236,220,102,106, 73, 76, 48, -225, 95, 10, 99,166,119,168, 39, 68, 81, 81, 81, 17, 47,250,255, 27,146,173,168,168,168,228,168,168,168,214,252, 87, 99,151,161, -126,191, 62, 70,235,247, 6, 1,104,207, 52,154,138,210,212,204,148, 20,126, 65,141,170,198,204,217,201, 81, 99, 38, 17,179, 85, -114, 5, 47, 62,241, 30, 85, 83,248,240,126, 43,238, 35, 53, 41, 41, 41,160,160,160, 0, 57,217,217,160, 85, 53, 32, 53, 90,112, -106, 37,134, 13,232, 7, 9, 0, 9, 73, 64,200, 82,224,243, 68, 80, 84,203, 1, 32,213, 96,227,168,211, 61,163,108, 17, 4, 1, -145,165, 37, 68,230,230, 16, 89, 88, 62,165,112, 25,163,216,136,197,226,159, 99, 98, 98, 92,219,181,107,135, 53,107,214,160,125, -251,246, 62,110,110,110, 74,107,107,107,169,179,179, 51,252,252,252,208,175, 95, 63,156, 61,123, 22, 48, 98, 78, 41, 29, 45, 73, -184,255, 24,253, 75,203,175,227,143,223,191,133, 86,165, 65,207,176,111, 65,241, 59,192,209,127, 53,216, 7,251,161, 44, 60, 81, -171, 30,184,140, 70, 94,206, 99, 16, 60, 81,178,177,202, 83,253,247,123,247,238,225,192,137, 43,112,245,244, 69, 78, 70, 26,210, - 46, 95,192, 53, 71,123,120,250,250,233,221, 64,205,166,145, 1,255,243,109,181,211, 68,125,242,193,100,113,121,121,185,216,206, -206, 78, 83,159,119,174,174,174,207, 67,182, 38, 47, 94,188, 24,149, 2, 1, 48,106, 20,132,153,153,160, 40, 10, 33, 33, 33,232, -211,167, 15, 0, 32, 36, 36, 4,124, 62, 31,129,129,129,112,115,115,195,182,109,219, 38, 55, 71,180, 72, 2,119,105,186,204,199, -203,203, 75, 79,180,246,238, 43, 65,124,220,112, 16, 16, 97,203,214, 7,250,115, 61, 60, 60, 80, 40,203, 4, 65,112, 73, 6,210, -248,153,139,139,203, 10, 87, 87, 87,175, 13, 27, 54,240, 36, 18, 9,222,123,239,189, 78,213,213,213, 29,234,164,100, 44, 93,186, - 20, 0,176,114,229, 74,172, 90,181, 10, 26,141, 70,217,156,177,189, 27,187,187, 21,151,179, 51,185,106,179,177,225, 14, 29,186, - 15,121,121, 24, 58,121, 15,193,144,151,115, 0, 96,157, 29,255,241, 27, 95, 46,183, 57,102, 99, 73,236,254,237,220,249,149, 3, -194,134, 44, 95, 82,125,249,243, 47,118, 85, 26,140,121,172,202,222,163,184, 47,154,184,233,155, 29,251, 54,125,186,116,190, 36, -167, 68, 91,145, 95,193, 85, 91,136,249, 22,157,157, 9,139,185, 31,127,246,168,160, 32,115, 17,114,207, 25, 28,105,201,178, 44, - 50, 51, 51,245, 49,125,106,181, 26, 53, 53, 53,200,205,205,213, 63, 51, 42,115,171, 17,115,222, 26, 29, 84,163, 82, 41,111, 38, -102,228,124, 50,111, 74,104,141, 74,165,204,200,202, 73, 7,182, 52,201,198, 72,146, 76, 84, 42,148,195,148,149,106,148,220,189, -143,246, 67, 61,161,163, 9,104,105, 6, 37,101, 10,104,104,128, 33, 5,240,127, 99, 26, 24,130,143,210,130,124,144, 60,222, 61, - 60, 29,180,111,130, 9, 38,252,123,208, 34, 23,169, 87,180, 66, 67, 67, 15, 54, 84,157,234,191, 3,208,160,229, 80,158,146,134, -100,170,222,157,216,220,255, 52,178,107, 44,158,137,209, 50, 56,189, 67,253,127,186, 91,203,221,214,175,156,210,158,165,233,110, -197,165, 69, 52,159, 47, 22,184, 91,171,100,229, 57,198,255,187, 70,163,137,189,112,225,194,152,225,195,135,139, 51, 18,239, 65, - 91, 85, 5,109, 85, 37, 4, 44, 13, 59,105,111,144,148, 6,132, 86,139,118, 62, 44,212, 10, 41,174, 92, 75,210,105, 52,154, 88, - 99,137, 22,201,227, 61, 29,151,101, 97, 1,177,165, 21,196, 22, 22,141, 93,139,134, 72,129,217, 75, 47,189, 52, 52, 36, 36, 4, - 28,199, 97,215,174, 93,160, 40, 74, 68, 81, 20,180, 90, 45, 40,138,130, 92, 46,199,190,125,251,176,125,251,246,107, 0,126, 52, -216,152,209,218, 11,191,158,191, 20,252,246,148, 8,193,153,216,141,160,181, 12, 84, 68,123,212,212,232, 80,173, 53, 3, 99, 63, - 21, 40, 58, 13, 30, 95,130,208,192, 78, 56,241,203, 81, 10,180,230,162,145, 44,252, 41, 85, 40, 55,231, 49,242, 30,166,195, 66, - 94, 8, 71, 43, 51, 40, 51,211,209,115,218,244, 54,169, 19,238,238,238, 96, 89, 22,225,225,225,250,224,234,182,146,173,178,178, - 50,156, 58,117, 10, 33, 33, 33, 8, 11, 11, 67,126,126, 62, 50, 51, 51,241,202, 43,175,232,207,185,119,239, 30,226,227,227,209, -185,115,203, 34, 97,105,185,238, 76, 94,238,221, 9,175,189,246,154,240,198,141, 27,224, 56, 14,222,222, 86,176,178, 52, 7, 65, -138,225,235,235, 4,160,182, 15, 48,120,240, 96,200,229,153,116, 69, 5,119,198,192,237,254, 12,224,184, 86,171,125, 48,104,208, - 32,183,135, 15, 31, 98,193,130, 5,252, 67,135, 14,213, 75,201,136,140,124,122, 48,133, 74,213,188,235,190, 91,119,159,143, 58, -209,182, 97, 18,105,135,142, 86, 14,129,232,228, 61, 4, 0, 48, 60,226,109,116,234,226, 1,121,105, 66, 71,181,234,241, 88, 33, -191,194, 54, 97, 75,126,138,116, 84,192, 91,234,226,223, 51, 80,235, 58, 53, 88,236,170,140, 67, 69, 57,255,143,189,235,142,139, -226,106,187,103,102, 43,219,128,165,179,128, 10, 40,136, 8, 2, 17, 17, 59,106, 52,246,138, 37,246,104, 52,137, 37, 49,198,168, -209,196,174,241, 51,177, 39,150, 96,141,177, 98, 84, 52, 86, 20,123, 3, 84, 84,148,222,123, 93,216,101,235,204,124,127, 80, 94, - 84,202,162, 38,111,242,102,207,239, 55,174,187,236,156,189,247,206,204,189,231, 62,247,185,207,195, 25,127,228,247, 83,127, 76, -239, 63,112, 48, 71, 71,233,245, 94,205, 57,230, 71, 79,156,201,203, 76, 77,219,132,180,115, 49,255,177,255, 53,104,197,163,228, -114, 57, 68, 34, 17, 98, 98, 98,212, 3, 6, 12,224,147, 36,137,248,248,248, 26,161,101, 99,101,225,217,217,223,203, 99,229,134, -253,231, 69,124, 62,191,111,143,246,109,158,198,165,102, 48, 12,145, 82,175,181, 85,167,187,248, 56,250, 97,144,181,172, 21, 43, -241,234, 29, 88,118,237, 15,181,154, 68,133,134,134, 90, 15,232, 89, 92,216,251, 6,192,188,101, 27, 48, 0,238,223,185,169, 83, -235,116,231,141, 99,141, 17, 70,252,171,173, 90, 76, 67, 34,169,234,255, 69, 0, 82,214,172, 89, 83, 80,203,218,148, 15,224, 33, - 0,159,170,239,229,191,114, 94, 62, 65, 16,247, 25,134,241,175,197,147, 95, 75,112,213,254,191,230,149,239, 60,108,130,200,170, -253,250,178,208,170,111, 75, 37, 0, 88, 89, 89,217,248,249,181,111,185, 43,228, 8, 24,134,193,243,168,245, 40,206,139,197,146, -213,183, 91, 58, 56, 56,116,207,204,204,140, 48,164, 4, 20, 69, 29,222,189,123,247,151, 1,239,249,249, 57, 59, 58,226, 97, 74, - 50,184, 12, 5, 46, 69,129,212,170,193,166, 52,112,244,162, 64, 18, 98,100,101,149, 98,237,193, 35, 49, 85, 81,226, 27,132, 71, -255,193, 88,158, 81, 10,130, 32,240, 67,160, 23,120, 18, 49,184, 34, 49, 62, 61, 21, 94, 35,174,194,150, 47, 4, 79, 44, 70,203, - 0,131, 2,194, 43,175, 92,185,242,224,241,227,199,254, 94, 94, 94,248,242,203, 47,145,146,146, 2,154,166,145,155,155,171,202, -206,206,206,204,207,207, 79, 1,112, 2,192, 46, 24, 16,121,156,171, 86,109, 12, 59,190,111,102, 96,151,238, 86, 67,134,253,132, -223,143,205, 69, 73,169, 28, 74,189, 0, 10,149, 30, 10, 53, 11, 22,150,222, 8,104,215, 14, 89,153,121,120,114,231,124, 57, 91, -173, 92,223,148, 27,148, 32, 8, 68, 69, 69,193, 85, 38,193,139,235, 17,176, 18,114,224, 35,179,131,172,115,151,154,248, 82, 13, -129,195,130,254,195, 15, 63,172,137, 12,223,167, 79,159,228,241,227,199,219,207,157, 59, 23, 33, 33, 33,184,121,243,230,107, 14, -218,221,187,119,199,181,107,215,150, 1,248,174, 49,163,158, 70,163,129,135,135, 7,238,223,191,143, 75,151, 46,161,103,207,158, -232,222,189, 59, 30, 61,122,132, 11, 23, 46, 32, 42, 42, 10, 4, 65,192,210,210, 18,186, 74,241,172,171,143, 76,171,197,209,239, -215,237, 94,180, 97,195, 79,109,199,141, 27,135,227,199, 15, 97,202,228,214, 32, 72, 62, 8,130,143,193,131, 90, 99,249,138,251, - 8, 8,232, 1, 43, 43, 14, 54,252,120, 50,169,162,130,218,111, 64, 51,174,188,112,225,130, 76,165, 82,161,164,164,132, 17,139, -197, 68, 97, 97,229,142,214,186, 44, 90, 74,165,210,164, 62,162,199,145,207,214,151,148, 49,197, 76,121,212,176, 34,125,148,119, -207,190,233,120,127,224,100, 92, 12,219,131,240,243,151, 96,193, 78, 73,134,168,236,143,130,228, 2,121,182,194,109,123,155,247, -166,178, 50, 20,231,183,207, 26,252,130,101,111, 79, 31, 93,248,179,188,164, 33,161, 5,128, 40,122,122,224,212, 9, 6,131, 59, - 5, 6,180,242,106,102,207, 43, 46,200, 99,142,157,252, 35, 70,155,124,252,116, 45,129,197, 52, 34,212,151, 47, 88,176,224,219, -170,255,239, 93,188,120,241,212,181,107,215, 90,231,228,228,212,248,104,229, 21, 20,133,119, 26, 48,139, 42, 44, 41,213,236,222, - 48,127,164,192,132,207, 91,188,118,247, 85, 29, 11,119,234,227,213,211,244,182, 81, 95, 44,153, 19,247, 60,202,161,133,128,135, -147,243,191,195,195, 11, 87,160, 35,185,152,113,233, 46,212, 90, 10, 37, 5,133,184,252,209,103, 16,219, 74,241,211,213,227,185, - 52, 77,255,108, 28,106,140, 48,226,223,139,250,180, 8, 65, 16,117,197,216,203,173,227,179,251, 13,157, 87, 15,207,187, 64,189, - 81,225, 13,218,130, 87, 80, 80,144,119,237,218, 93, 92, 13, 91,137,136,176,149,120, 18,245, 16, 89,153, 26,100,230,170, 96,106, -106,122,187,129, 83, 95,141, 28,203, 40,149,202,225,139,151,124,155, 99, 34, 16,162, 91,175, 94,176,179,182,129,144,203, 1, 75, - 79,131, 69,112, 80,158,111,142, 23,143,148,248,122,247,129,188,114,165,114,120, 29,131, 68,239,250, 68, 6, 65, 16,224,155, 74, -192, 19, 75,192,151,152,190,180,140,104, 98,106, 10, 19,137, 41,216, 60, 94, 93,206,240,175,113,150,151,151,143, 24, 57,114,100, -113,105,105, 41,166, 78,157,138,136,136,136,168,243,231,207,155, 62,122,244, 72,144,159,159,223, 10, 64, 31, 0, 59, 26, 16, 89, - 47,113, 22, 23, 39,150, 49,122,245,232, 53,223,126, 94,161,210, 91, 34,120,226, 97,136,200,116,232, 41, 26, 12, 0,153, 5, 15, -157,123,175, 64,158,166, 19, 14,111, 95,165,164,181,170,113,175,196,208,122,137,147, 97, 24,198,214,214,246,181, 54,184,116,233, - 18,130, 71,142, 64,223, 97, 67, 97,237,236, 10,155,222,253,209,119,234, 12,108,223,190, 29, 36, 73,194,202,202,234,213,129,183, -134,115, 95, 52, 56,191, 61, 6,241,219, 99, 16,123,163,192, 6, 48,225,192,129, 3,223,251,248,248, 92,185,121,243,230,122, 0, -163,107,255, 86, 45, 44,125,197,154, 85,215, 53,250,102,206,156, 57, 21,113,113,113, 16,137, 68,208,235,245,184,121,243, 38,126, -250,233, 39,252,240,195, 15,136,138,138,130,165,165, 37, 90,182,108, 9,181, 90,141,251,247,239, 87, 0,248,166, 1, 78, 58, 63, - 95, 63, 98,243,230,181,133, 3, 7,118,197,238,221, 91, 97,103,215, 9, 28,182, 29,216, 28,107,136,196, 30,248,101,215,247,232, -215,207, 15,167, 78, 30, 41, 42, 40,212,143, 0,160, 55,224, 94, 82,221,189,123, 23,219,183,111,199,200,145, 35, 51,131,131,131, -169,210,210,210, 26,139, 22,195, 48, 96, 24, 6, 75,171,124,204,212,106, 53,191, 62,206,105, 95,199,100,206, 95,245,100,121,110, - 78,102,199,136, 43,183, 63, 12, 63,127, 9, 73,113,225, 8, 63,127, 9,215,195,111, 45,200,205,201,236,232,215,193,157, 59,124, -234,204,175,246,133, 30,103,137, 77,237,177, 47,244, 56,107,236,172,207, 87,181,239,219,243,155,198,238,249,170,235,200,148,231, -229, 46, 92,189,126, 75,185, 94,171, 34,255,111,211,182,172,138,252,236,111,106,221,151, 76, 99,247,103, 69, 69,197, 14,149, 74, - 37, 83,169, 84, 50,181, 90,253, 77, 74, 74, 74,183, 47,191,252, 50,159,162,168, 26,107,105,254,211, 83,183, 99,111,236, 93,109, - 99, 37, 21,116,242,111,219,250,199, 29,199,174,166,165,231,254, 90, 43,134, 86, 93,229, 84,149, 87,168, 70, 12, 29, 62, 94, 81, - 82,172, 70,224,231, 11, 64,155,136,161,166, 0, 29,195,130,158, 96,227,241,202, 31, 33,176,144,224, 96,114,164,178, 84,167, 29, -129,151, 99,104, 53, 84,247,183,129,145,211,200,105,228,252,123,114,254,147, 97,143,151,115, 29,218,191,100,209,106,108, 75,165, -131,131, 67,183, 33,131,123,163,199,192,197, 96, 24, 6,177,145,235, 80,156,255, 28, 14,118,124, 36,166,201, 3, 1, 68, 52,161, - 48,105, 41,233,233, 29,231,124,179, 56, 52,184, 79,175, 54, 94,206,206,252, 22, 45,154, 67,100, 99,131,130,130,124,220,184,243, - 84,183,234,183,163, 49, 85, 34,203,160,133, 73,154,166, 43,157,220, 1,244,154,243, 53, 8, 22, 11,168, 10,227, 80, 61, 48, 58, -251,119, 2,193,102,131, 98,104,168,213,106, 67,118,203,101, 36, 36, 36,140, 24, 55,110,220,229,176,176, 48,178,111,223,190,190, - 39, 78,156,120,155,156,121, 80,228,197, 93, 1, 48,112,213,194,233,135, 59,246, 28,106,234,214,182, 61,183,125, 11, 22,180, 58, - 2, 89,153,169, 8, 11,189,167,125,122,247,188,156,209,171, 70, 43, 11,226,174, 52,196,165,213,106,211, 90,181,106,101,187,125, -251,246, 26,103,120,138,162, 80, 80, 80,128,219,183,111,195,219, 63, 0,109, 38,127,132,252,252,124,108,222,188, 25,205,154, 53, -195,160, 65,131, 80, 84, 84, 4,189, 94,111,232,130, 47, 5,224,124,213,129, 87, 68, 22, 81,149, 2,168,193,101, 67, 87, 87, 87, -158, 74,165,242,101, 24,134, 69, 16,196, 70,141, 70, 51,105,225,194,133,246,171, 87,175, 70,235,214,173, 81, 80, 80, 0,145, 72, - 4, 55, 55, 55,228,231,231,227,222,189,123,148, 82,169,220,142,202, 68,214,249,141,148, 47,254,222,189,228,142,179,103,127, 26, -250,253,218,233,110, 42,117, 15,158,133, 69, 23, 48,140, 30,249,249, 41, 40,147,223,212,174, 88,190, 39, 33, 55, 79, 55, 28, 64, -156,129,117,254,110,230,204,153, 0, 96, 2, 96,113, 98, 98, 98,116,155, 54,109,220,234,179,104, 25,130, 13,199, 50, 85, 0,126, - 27,209, 87,246,133,188,224,145,155, 5, 59, 37,185,163, 23,189,121,195,177, 76,149,169, 76,177,178, 32, 37,226, 69,182,226,252, -246,125,161,199, 89, 19,135,141,160, 28,197,113, 11, 76,108,152, 99, 6, 80, 51, 62, 62, 62, 78, 4, 81,228,146, 87,248,252,193, -148,169,211, 71,153,113, 43,206,250, 56, 22,182, 36,155,249,153, 68, 69, 69, 37,163,137, 59, 67,171,240, 34, 51, 51,179,219,194, -133, 11,207, 51, 12,243,146,111, 66, 94, 65, 81,120,224,192,153, 76, 73, 73,105,116,254,179, 83,134,196, 82,187,119, 47, 50,170, -151,151,183,223,241,239, 87,175,181,237, 49,231, 75,246,139, 43, 87, 1, 74,135,212,136,171,160,248, 26,250,199, 91, 23,115, 75, -181,218, 97, 48, 70,133, 55,194,136,127,189, 53,171, 33, 45,242, 55,199, 0,212,227, 12,111,112,101, 92, 93, 28,206,183,118,107, -209,167,153,163, 53, 0, 32, 49, 57, 11,137,201,153, 23, 18,147, 50,251, 54,162,120,235,219, 94, 89,147, 84,154,168, 10,225,192, - 24,150, 84,250, 37, 78, 75, 75,203, 7,108, 54,219,177, 41,173, 65, 81, 84, 86, 65, 65,129,159,129,229, 28,235,236,236,188, 54, - 53, 53, 53,148,166,233, 47,154,168,246,235,228,172, 78, 42, 77,178,121,189, 25,189,198, 27, 0, 8, 54,207,144,164,210,181, 57, -189,197, 98,241, 14, 14,135,211,172,250, 58, 86,251, 96, 81, 20,197,210,106,181, 38, 20, 69,177, 0, 16, 36, 73,234, 57, 28,142, -138, 32, 8,189, 94,175, 79, 83,171,213,211,241,159,128,163, 13,213,189,209,129,190, 74,104,161, 14,139,214, 37, 0,136,139,139, -115,151, 74,165,163, 9,130, 24,201, 48,140, 71, 89, 89,153,122,201,146, 37, 81, 71,143, 30,149, 59, 59, 59,127, 48, 96,192, 0, -226,209,163, 71,136,137,137, 97, 10, 11, 11,143, 85, 89,177, 18,155,120, 47,145,124, 62,107,140,133, 5, 57,128, 97,224, 3, 6, - 4, 65,226,113,105, 41,125, 86,169,164,126,173, 18,140, 77,189, 63,171,241, 97,139, 22, 45,246, 36, 39, 39,115,234,179,164,214, - 87,247, 87,177,238,155,182,139, 3,187,118, 29,113,251,250,245, 19,243, 87, 61, 89, 94,251,111,179,134, 74,167,140,253,108,206, -186,223,182,109,154,191,229,247,226,221,134,148,211,215,215,215,149, 32,136,209, 0,188, 24,134,105,197, 48,132, 9, 65, 48,197, - 4, 65, 60, 1,240, 72,163,209,132, 61,125,250, 52,227, 45,234,254, 38, 51,220,250, 56,107,146, 74,131,162,218, 81, 0, 99, 96, - 82,233,191,186,156, 70, 78, 35,167,145,243,191,199,249, 79,198,199,117,124,102, 88,100,248,106, 36, 38,101,246, 77, 76,202, 68, -171, 86,173,152,248,248,248, 38,137,180,250, 6,105,138,162, 14, 41,149,202, 67,111, 67, 82, 88, 88,216,254, 79,110,188,223,146, -147,147,127,123,151,132, 85, 66,106,121,213,241,166,120, 92, 94, 94, 30, 96,232,151,181, 90,237,159,209, 54, 68,149, 53,107, 89, -125, 95,232,211,167, 79,170, 86,171,189, 4, 32,157, 32, 8,115, 0, 69, 90,173,246,188, 94,175,207,141,143,143,111,255,227,143, - 63, 86, 71,190, 95, 1,224,193, 27,150,131, 86,171,169,131, 89, 89,212,193, 63,161,142, 7, 53, 26,205, 92, 75, 75,203,150, 42, -149,138,167, 82,169,184,181, 55, 31, 8, 4,130,252,134, 28,226,107,195, 92, 66,236,229,178,139, 45,205, 37,196,171, 66, 10, 22, - 14, 56, 94,161,136,105,109,225,128,227,134, 22, 44, 58, 58, 58,209,199,199,231, 0, 73,146,206, 12,195,216, 2,140, 25,195, 32, -159, 97,152, 2, 54,155,157,249,244,233,211,204,191, 81, 39,164,210,211,244,122,189, 70,243, 31,191, 67,227,238, 66, 35,140, 48, -226,127, 7,245,250,104,177,155,202, 20, 31, 31, 79, 24,219,211,136,218, 98,171,161, 63,166,166,166,170, 1,220,170, 58, 94,197, - 3, 0,131,254,238, 21,204,206,206,246,171,239,111,134,138, 44,160,210,103, 11,136,169, 51, 58,251,210, 45,197,101,216, 18,250, - 85, 83,203,246,240,225,195, 52, 24,184,196,110,132, 17, 70, 24, 97,196,159,134,183,183,104, 25, 97,132, 17, 70, 24, 97,132, 17, - 70, 24, 81, 39,118,214, 18, 92, 47, 89,183, 8,212,191,115,160, 41,107,175,111,178,251,224,146,145,211,200,105,228, 52,114, 26, - 57,141,156, 70,206,127, 29,231,255, 42, 94, 19, 89,127, 5,140, 91, 95,141,156, 70, 78, 35,167,145,211,200,105,228, 52,114,254, - 27, 68,214,171, 7, 0,227,210,161, 17, 70, 24,241, 47,198,209,163, 71, 13, 74, 42, 58,102,254, 47, 3,197, 98,233,146,114,121, -233,218, 67,235,167,156,168,254, 60, 56, 56,152, 50,182,162, 17, 70, 24,129, 55,113,134,119,113,113,244, 36, 41,186, 51,195,144, - 44,134,100,116,132,188,226,112, 98,113,241, 75, 97, 7,156,156,156,204, 57, 36, 6, 17, 12, 35, 34, 8,154,162, 89,228,205,164, -164,140,167, 77, 40, 24, 79, 42,149,206,228,114,185,189, 53, 26,141, 35, 73,146, 25,106,181,250,146, 82,169,220,138,215, 3, 23, -254,215,224,238,238, 62,246,234,213,171,230, 93,186,116, 81, 11, 4, 2,125, 69, 69, 5,251,220,185,115,252,126,253,250,149, 36, - 36, 36,188,209,142, 68,153, 76,214,243,151, 95,126,113,233,219,183, 47, 90,181,106,165, 24, 61,122, 52, 55, 48, 48,144, 59,117, -234,212,164,172,172,172,240, 38,210,121, 18, 4,177,159, 32, 8, 22, 77,211, 19,240,159,208, 13,239, 26, 36, 73,146,211, 9,130, - 24,198, 48,140, 43, 65, 16,137, 12,195,156,160,105,186,161,192,173, 13, 97, 4,128,254, 36, 73,250, 1, 0, 77,211, 81, 0,206, - 2,134,239,188,251, 43, 57,133, 66,161, 47, 0, 40,149,202,232,119,197, 73, 16,132, 47, 0, 48, 12,243,166,156,147, 5, 2,193, - 52, 0,168,168,168,216, 5, 3,210, 65,189, 10,102,187, 7,227,183, 44, 22, 0, 16,245,157, 7, 0,160, 41,239,137, 25,177, 68, - 83,126,171, 46,190,166,112,212,129,254,227,198,141, 91,253,235,175,191,126, 7,224,228,159,113,227,219,217, 57,109,253, 97,211, - 78,217,231, 51, 63, 90,139,202,140, 16, 13, 63,144,192,251, 60, 22,107,176,134,162,174, 63, 5,142, 2, 96, 91, 88, 88,140,229, -241,120,221, 52, 26,141, 61,155,205,206,214,104, 52,215, 74, 75, 75,127, 67, 3, 25, 16, 12,110,215,103,144,106,149,176, 35,232, -255,228,121, 99, 72,168,185, 66,228, 16,109, 80,252, 55,232, 70, 73, 0,115,170,234, 26,130,250,195,121, 52,212,249,124, 46,147, -201,134,201,229,114, 37,139,197, 98, 80,185,235,185,242,159,202,191, 19, 52, 77,231, 21, 21, 21, 77,104,140, 75,212, 12,173,121, - 34, 98, 63,165, 67,133, 94,205,124,162, 72, 71,172,216, 9,157, 24, 96, 2, 3, 56,147, 44,210,154,166,233,108, 0,225,164, 30, -167,203,179, 16,255, 55, 29,220,155, 87,181,107,139,170,247, 28, 0,182, 0, 30, 1,248, 28, 64,185, 81,255,252,101,120,213, 25, -254, 12,128,236, 26,161, 85, 43,220,125,143,129, 3, 7, 70,184,184, 56,122,142, 28, 58,124,245,140,233,159, 16, 44, 22,137,152, - 39, 79,216, 31, 78,152,220, 71, 42,149, 58,136,213,234, 54, 32, 8, 90,105, 98, 18, 35,151,151,102, 30,253,237, 87,137, 71,235, -214, 20, 69,209,216,190,227,231,126,199,126, 15, 93,100,160,216,114,183,179,179,219,191, 96,193, 2,187,193,131, 7,179,236,236, -236,144,146,146, 98,126,232,208,161,214, 91,182,108, 25, 85, 92, 92, 60, 1,192,139, 55,168,108, 87, 59, 11,178,143, 68, 64,244, - 66, 25,133, 50, 29, 46,231, 84,224, 2,128,235,111,218,122, 74,165,114,150, 82,169, 12,240,247,247,103, 66, 66, 66,136, 73,147, - 38, 49, 4, 65, 16, 21, 21, 21,123, 1,188,145,208, 18,137, 68,219,250,246,237,235,230,230,230,150,152,144,144,208,255,200,145, - 35,103, 39, 78,156,232, 42, 18,137,226, 0,184, 55,145,110, 79, 97, 97,161, 79, 69, 69, 5, 28, 29, 29, 67, 0,188,247, 39,220, - 68, 4,139,197, 58,225,224,224,192,172, 91,183,238,164,143,143,143,109, 81, 81,145,254,171,175,190,234,125,231,206,157,126, 20, - 69, 13,110,130,216,146, 18, 4,177,195,214,214,214,106,237,218,181,241,237,219,183,127,196,231,243,121,113,113,113,194,185,115, -231,126,241,226,197,139, 81, 12,195, 76, 7,154, 52, 64, 72, 9,130,216, 33,147,201,172, 86,175, 94,157,226,231,231, 23,195,229, -114,185,113,113,113,162,175,191,254,250,243,216,216,216, 55,226, 36, 73,114,123, 64, 64,128,244,187,239,190,123,214,186,117,235, - 91, 44, 22,139,151,145,145, 65, 46, 93,186,116,230,197,139, 23,131,105,154,158,241, 38,229,180,177,177,145, 46, 93,186,244, 89, - 96, 96,224, 29, 46,151,203,125,254,252, 57,185, 96,193,130,153,241,241,241, 6,151,211,194,194, 34,136, 32,136,157, 57, 57, 57, -108, 0,176,183,183,239, 96,106,106,186,165,118, 78,203,234, 80, 20, 58,157,174, 76,165, 82,141, 43, 42, 42,170, 51, 16,238,164, -133,155, 7, 1,192, 22,109,245,251,202,215,198,222, 3,219, 79, 27, 82,105, 95,187,202,184,120, 63, 40,166, 12, 5,128,177, 85, -169,194,127, 80, 0,108, 54,155,246,181,251,156,137,206,105, 82,200,152, 33, 61,123,246, 92, 26, 30, 30,254,115,143, 30, 61,190, - 62,112,224,128, 77,122,122,250,247,215,175, 95,119, 26, 51,102,204,164,203,151, 47,175, 41, 40, 40, 56,246,174,110,126, 30,151, -207, 39, 72, 2, 2, 19,161,169, 33,223,231,144,228,192, 91, 67,134, 76,219,245,252,185,223,150,216, 88, 23,133,189,125,192,236, -217,179,109,135, 15, 31, 78, 58, 57, 57, 33, 62, 62,222,242,192,129, 3,109,118,237,218, 53,172,164,164,100, 14,128,212,183, 17, - 89,138, 18,120,171, 53,240, 99, 24,152,215, 60,176, 4, 74,248, 90, 68, 49,207,240,248,111, 32,182,190,221,179,103,207,119,241, -241,241, 88,179,102, 13, 0,108,109,226,249,115,135, 12, 25, 50, 32, 52, 52, 84,112,244,232, 81,129,191,191, 63,236,236,236, 80, - 53,153,170, 9, 76,237,226,226, 98, 88,155,209,248, 97,227,217, 41,239,197, 20,253,129,109,195,115,214, 8, 28,161,239, 52,196, -109,216,192, 73,126, 48,179, 22,194, 68,204, 70, 73,161,220,235,121, 84,122,223, 43, 71,226,191,143,143,204, 95,171, 72,195,183, -168, 63, 38,223,127, 5,150,150,150, 33, 73, 73, 73, 65, 34,145,232,165,207, 19, 19, 19,125,221,220,220, 74, 1,124,217, 84,225, -102,109,109,125,144,166,105,117, 97, 97,225, 71, 0, 32,145, 72,126, 21,137, 68,210,236,236,236, 69,127,214, 68,166, 26,175,106, -145,127,184, 69,171,198, 95,171,174, 92,135, 4, 73,209,157,103, 76,255,132, 24, 61,118, 76, 78,124, 98, 18,205,230,240,198,158, - 59,127, 94,232,233,233, 73,170,183,110,133, 62, 63, 31,186, 47,190,232,116,233,210, 37, 93,240,216,241, 21, 28, 22,177,199,213, -197, 89,120,248,183, 67,118,161,199,143,117, 6,208,152,208,226,217,217,217,237,191,122,245,170,131,139,139, 11, 74, 74, 74,144, -146,146, 2,133, 66,129, 81,163, 70,113, 58,119,238,236, 48,114,228,200,253,165,165,165, 93,154, 96,217,178,109,229,200, 14,155, - 62,121,184,123,191, 62,157, 69, 14, 78, 45,193,228,168,144,158, 16,235, 31,118,245,206,236, 61,199,207,190,136, 47,101, 6,162, -238,220, 72, 13,162,160,160, 96,254,176, 97,195,142, 7, 5, 5, 89,243,249,124,200,100, 50, 98,240,224,193,121, 89, 89, 89,203, -222, 88,181, 84,165,176, 33, 73,146,170,253, 90, 71,122, 32, 67,224, 40,149, 74, 33,149, 74, 1,192,225,109,103,158,230,230,230, - 91, 37, 18,201, 72,185, 92, 94, 65,146, 36, 67, 16, 4,163,209,104, 4, 82,169,244,225,179,216, 23, 50,181, 90,221,106,253,198, - 93,155,122,118,245, 49,189,120,241, 34,134, 15, 31,206, 92,209, 15, 19,103, 0, 0, 32, 0, 73, 68, 65, 84,184,112, 97,186,161, -121,234, 8,130,216, 49,108,216, 48,229,146, 37, 75, 84,241,137, 41, 14,207, 94, 36, 18, 34, 19, 30,109,101,101,197,185,119,239, - 30,123,195,134, 13, 38, 75,151, 46,221,193, 48,204,200, 38,180,231,142, 49, 99,198,104,231,205,155,151,253, 60, 62,201,230,241, -179,120, 70,108,194,209, 91, 89, 89,178,238,220,185, 67,191, 9, 39, 73,146,219,231,207,159, 47,159, 62,125,122,113, 97, 81,169, - 93,177,188,156,225,115, 88, 58, 59, 59, 59,246,201,147, 39,213, 7, 15, 30, 36,167, 77,155,182,157,166,233,224, 38,180,239,246, -193,131, 7,151, 45, 88,176,160, 36, 46, 49,217,238,241,211, 23, 16,242, 57, 58, 91, 91, 27,214,253,251,247,181,235,215,175, 39, - 87,174, 92,105, 80, 57, 69, 34,209,190, 35, 71,142,176, 79,158,172,236,251,110,223,190, 77,186,186,186, 10,107,127,167, 66,165, - 6, 73, 0, 5, 5, 5,194,192,192,192,125, 0, 94, 11,238,235,183, 44, 22,147, 22, 2,179,102,205,202,110,234,205,226,103, 63, -187,209,239, 80, 63,123, 48, 27,148, 83,134,178,217,108,122,218,180,105, 57,175,254, 93,165, 82, 17, 0, 6,227,123,195,197, 86, -255,254,253,191, 57,115,230, 76,203, 3, 7, 14,252,120,240,224, 65, 13, 0,152,152,152, 88, 29, 58,116,104,205,168, 81,163, 48, -106,212,168, 37,199,142, 29,123,103, 66,139, 98, 40, 45, 0,240, 77,248,252,216,216, 88,194,195,195,163,193,136,251, 90,154,126, -176,235,249,243,246,159,122,120,248, 23,209,116, 43,110,191,126,229,115,231,206, 45,144,203,229, 72, 73, 73,129, 86,171,197,164, - 73,147, 88, 61,122,244,144,141, 26, 53,106,115, 89, 89,217, 8, 0, 90, 3,238,201,245, 14, 14, 14, 31,151,150,150,150, 87, 91, -117,186, 76,160,216,221,124,245,252,118,173,116, 60, 46, 75,207, 29,244, 5, 77, 92,216, 74, 40, 60, 92,112, 3, 0,184, 74,228, - 55,113, 50, 80, 39, 76, 29,225, 66,113,176,210,218, 81,208, 51, 63,181, 98,185, 34,173, 65,177, 52, 66, 36, 18, 13, 85, 40, 20, -199,170, 6,103,247,129, 3, 7,226,206,157, 59, 0,208,185, 74,104,245, 36, 73,242, 67,154,166,127, 1,208, 80, 42,183,217, 67, -134, 12,121, 63, 52, 52, 84, 2, 0,199,142, 29,131, 78,167,131,171,171, 43,184, 92, 46,120, 60, 30, 56, 28, 78, 77,118, 16, 3, - 97,111,109,109, 5, 43, 51, 14,164, 22,162,126, 95,255, 52,132,221,204,211, 20,121,212, 19, 20, 49, 37,208, 51,106,112, 45, 69, -104,221,215, 28,126,125,122,146,167,183,199, 44, 58,189,237, 89,123, 37,137, 65, 72,133,250,239, 50,178,147, 36,201,127,244,232, - 17,100, 50,217, 75,159,179, 88, 44, 0,232,246, 6,148, 75, 18, 19, 19, 3, 35, 35, 35, 17, 20, 20,180,196,219,219,251,131,136, -136, 8,187,194,194, 66, 4, 5, 5,109,206,200,200, 56,249,103,215,169,182, 22,249, 95, 49,117,145,175, 40,201, 30,149,179, 96, -146,197, 98,145, 72, 74, 76,209, 5, 5,245,154,152,150,150, 38, 14, 8, 8, 32, 57, 28, 14, 20,225,225, 80,221,191, 15,177, 88, -140, 97,195,134,113,174, 93,187,102,106, 42, 54,157,154,156,148, 92,198, 98,145, 96, 24,178, 81,159, 7,169, 84, 58,115,209,162, - 69,118,110,110,110,208,235,245, 53, 17,205,245,122, 61,210,211,211, 33, 22,139, 49, 97,194, 4, 27,161, 80, 56,211,192,122,180, -112,119,181,137,186,122,118,199,123,115,103,244, 23,185, 11, 47, 66,148, 62, 7,226, 99,159,162, 77,214, 57, 44, 24, 26, 32,186, -176,109,137, 95, 75,153, 69, 84, 45, 19,171,193, 80,171,213, 55, 98, 98, 98,166, 70, 68, 68,208, 0,112,229,202, 21,230,217,179, -103,211,223,102, 22, 74,211, 52, 74, 74, 74, 64,211, 52,171,234,125,245,235,127,245,126, 48, 53, 53,221,254,193, 7, 31,140, 73, - 77, 77, 21,252,241,199, 31,150,105,105,105, 86,201,201,201,214,238,238,238,236, 53,107,214,156, 81,169,181, 44, 29,197,104,244, -148,174, 44,251,201,147,196,226,220,220,168,221,187,119, 87, 16, 4, 49,204,192,223, 24, 97,111,111,111,185,112,225, 66, 16, 28, - 97,135,214,109,188,221, 88, 28,129, 25,201,225,153, 85, 84,168,168,164,164,164,244,133, 11, 23, 58,251,248,248,200, 80,185,188, -102, 16,167, 76, 38,179,154, 55,111, 30,216,124,137,111, 59, 31,191,150, 60,190, 72,194,226, 8, 36, 1, 1, 1, 61, 18, 19, 19, -179, 22, 44, 88, 96,239,239,239,223, 36, 78,127,127,127,233,180,105,211,244, 38, 2, 73,160,139,139,107,155,118,109,219, 12,112, -119,119, 31,202,102,179,245,249,249,249,169, 19, 38, 76,176, 31, 52,104,144,109, 83, 56,109,108,108,164, 11, 22, 44,208, 59, 53, -119,237,219,247,253, 62, 29,185, 2,137, 25,155, 39, 50, 87, 42, 85,212,243,231,207, 83, 23, 47, 94,108,239,235,235,107, 99, 8, -167, 82,169,228, 88, 89, 89,193,203,203, 11,158,174,174, 40, 45, 45, 69,104,104, 40,246,236,217,131, 95,126,249, 5,191,253,246, - 27,218,119,233, 3,137, 68,130,172,172, 44,200,229,114,206, 95,125, 67, 81, 63,123, 48, 91, 52, 31, 15,254,228,147, 79,178,166, - 77,155,150, 35, 16, 8,232, 87, 15, 11, 11, 11,106,220,184,113,185, 19,190,222, 56,184,122,105,177, 17, 75,214,163,179,103,207, - 38, 28, 56,112, 0,158,158,158,232,219,183, 47, 15, 0,102,206,156,201, 27, 53,106, 20,142, 28, 57,130, 99,199,142, 61,117,115, -115,187, 9, 96,136, 33,229,156, 48, 97, 66,151,224,224,224,235,193,193,193,209,163, 71,143,222, 57,125,250,244,151, 70,174,236, -172,140, 7, 26,141, 6, 62,126,254,194, 21, 33,119,199, 53,198,247, 12, 56,176, 51, 54,118,207,218, 39, 79, 82,151,120,122,154, - 55, 79, 78,182,216,187,126,189, 85,117,146,110,157, 78,135,244,244,116, 72,165, 82,140, 27, 55,206,138,207,231, 79, 48,160,152, - 27,134, 12, 25, 50, 57, 45, 45, 77,188,107,215, 46,251,232,232,104, 89,118,118,182,253,229, 75,231,173,191,250,114,166,196, 76, -204,227,101,229, 51, 4, 0, 36,103, 65, 20,155,132, 46, 12, 3,243,218,203,137,111, 4,123, 8, 4,142,216,210,178,139,249,139, -121, 71,124, 71, 47, 8,243,179,146,218,243, 23, 54,112, 70,187,117,235,214, 29, 61,125,250,244,216, 46, 93,186, 28, 7, 32,168, -227, 59, 38,237,219,183, 15, 61,114,228,200,228,174, 93,187,222, 0,224, 85,239, 44,210,209,113,216,239,191,255,110, 89,253,222, -202,202, 10, 38, 38, 38,175,137, 44, 46,151, 11,146, 36,155, 92,189, 85,135,198,178, 45,218,168, 17, 83,124, 22, 71,214, 61,194, -186,126,207,233,213,157,146,213, 91, 39,196,226,194,145, 71,200,195, 35,244,255,180, 37,198, 46,246,233, 45,164,176,242,239, 52, -128,231,231,231,127,216,173, 91,183,163,253,251,247, 87, 71, 70, 70, 34, 63, 63, 31, 14, 14, 53,115,237,156, 55,160,180, 16, 10, -133,112,114,114,130,155,155,219,216,107,215,174,217,233,116, 58, 36, 39, 39, 35, 47, 47, 47,234,175,168, 83,109, 45,242, 15,195, -171,142,240,103, 94, 19, 90, 85,185,133,174, 2, 0, 67, 16,138, 71, 49, 49, 28, 22,143, 55,254,215,131, 7,249, 92, 46, 23,169, -169,169,120,250,244, 41,148,151, 47,163,226,214, 45,228,230,230,162,188,188, 28,182,182,182,216, 17, 18, 34,210, 80,204,148,231, - 47, 94,176, 24,146,169,237,111, 80,231, 22, 79, 62,159,223,123,248,240,225,245, 10,178,172,172, 44,244,239,223,159,195, 98,177, -234,218,213,240, 42, 39, 33,179, 38, 78, 95, 62,190,194,222,158,247, 20,136,159, 11,148, 69, 1,140, 26,208,107,128,204,199,192, -153,101,104, 94, 30, 75,156, 95, 49,209,206, 65,200, 62, 93,135, 82,110,108, 43,170,171,135,135,199, 47,227,199,143, 39, 1,160, -103,207,158,132,135,135,199, 78, 0,174, 13,156,115,169,145, 65,242, 78,113,113, 49, 70,141, 26,101,217,178,101,203, 75,163, 70, -141,178,172,254,252, 77, 57,171,173,201,158,158,158,133, 38, 38, 38,191, 1, 6,117,176, 53,156,230,230,230, 91,251,247,239, 63, -242,224,193,131, 92, 0,184,122,245, 42, 78,159, 62,141, 39, 79,158, 32, 46, 46,142,246,243,243,179,222,248,203,209,237, 91,127, -222,183, 97,104,103, 31, 89,143, 14,126,109,196,229,197,229,182,182,182,157, 25,134,113, 53,176,156,253,151, 45, 91,246,244, 89, - 66,170, 25,201,230,176,185, 28, 54,223,212, 84,100, 43,149,136, 28, 45,132, 38, 14,124,146, 16, 43,149,202,156,223,126,251,141, - 6,208,223, 80,206, 21, 43, 86, 36, 61,139, 79, 53, 39, 72, 54,155,195,230,112,197, 98,161,121,191,190, 65,254, 0,192, 5,195, -149,203,229,185,123,246,236,209, 54,133,243,187,239,190,139, 41, 42, 41,151,178, 57, 28, 14,155,205,170,105, 75,145, 64, 96, 45, -228,243,121,106,181, 58,115,211,166, 77, 21, 77,225, 92,182,108,217,211,231, 9,105, 22, 36, 65,176, 8,130,100,155, 74, 68,150, -150,102, 66,107,107,177,192, 74,200,102,241,228,114,121,230,254,253,251, 13,226,212,106,181,220,220,220, 92, 60,123,246, 12, 78, -254,254,184,120,241, 34,154, 53,107,134, 81,163, 70, 97,204,152, 49, 16, 8, 4,232, 25,232,141,133, 11, 23, 34, 33, 33, 1, 90, -173,150, 95, 23,103,181,159,212,171,144,201,100,145,141,221, 60,175,156,251, 82, 57,125,237,192,108,209,124, 60,184,182,192,170, -143,223,194,194,130,170,203,218,245, 42,103,255,254,253,191,185,124,249,114,203,253,251,247, 15,158, 48, 97,194,141,253,251,247, -163, 99,199,142,120,246,236, 25,156,157,157,177,119,239, 94,140, 25, 51,230,198,230,205,155, 7, 71, 70, 70,250,184,184,184, 44, -106,140,115,244,232,209,159,249,250,250,134,231,228,228, 4, 22, 21, 21,121,133,134,134, 78, 25, 54,108, 88,210,216,177, 99,123, -213, 8, 70,157,238,224,153, 83,199, 49, 96,240,112,180,110,235,181,125,210,162, 3,222,141, 60,155,204, 19, 96,231,158,236,236, -252,131, 42,149,114, 20,135, 35, 20,222,189,107,113,236,231,159,173,106,103, 22,200,204,204,196,160, 65,131, 56, 92, 46,183,107, - 35,229, 92, 55,116,232,208, 81,161,161,161,210,106,171,206,173, 91,183,240,248,241, 99,164,164,164,160,164,164, 4,189,166,151, -227,147, 53,149,220,159,172, 97,208,103, 38, 35,122,195, 62,164, 6,130,102,176,179, 52,101,223,156,178,169,245,204,143,183,123, -178,197, 22, 28,252,250,117, 28, 10,146,213,199,234,225, 36, 2, 3, 3, 15, 4, 7, 7, 19, 26,141, 6, 26,141, 70, 3,160,206, -168,190, 14, 14, 14, 38,237,218,181,195,244,233,211, 73, 83, 83,211,205,245,149, 83,161, 80,168,207,158, 61,139, 9, 19, 38, 96, -206,156, 57,104,213,170, 21,164, 82, 41, 56, 28, 14,246, 29, 56,108, 53,102,202, 12,247,247,186,116,243,241,124,175, 99,187, 50, - 53,203,159, 35,144, 78,171,199, 26, 82,103,221,203,109, 34, 17,147,124, 27, 91, 6,103,208,247,246, 42,203,191,250,240,255, 98, -159, 71,228, 62, 89, 20,188, 51,134,185,221,169,224,192,231,105,200,213, 61, 67,215, 81,205,225,226, 43,253, 66,228, 4,143, 55, -109, 79, 3,209, 36, 78,111,111,239, 46,247,238,221,227,119,235,214, 13,169,169,169,224,112,106,230, 83,212,219,148,115,217,178, -101,124,149, 74,133,135, 15, 31, 98,226,196,137,153, 90,173,246,139,183, 41,103, 83, 44, 90,213, 90,228, 31,134,157,175, 28,217, -245, 89,180,150, 1,128,142,198,233,241, 19,167, 40,195,194,194,132, 60, 30, 15,169,169,169,200,206,206,198,190, 61,123,168,158, - 54, 54,101,125, 29, 28,228,251,246,236, 97, 52, 26, 13, 24,134,129,135,135, 7, 70,142, 28, 41, 24, 49,106,108, 30, 33,175, 56, -108,192, 50,143,125,245,250,250,148, 41, 83, 94,251,251, 87, 95,125, 5, 83, 83, 83, 16, 4, 97,103, 64,229,130,103, 47, 27,234, - 40,117, 49,207,101,114,246, 21,129,101, 2,176, 37, 0,219, 20, 48, 49, 3,248, 18,128, 39,132, 58, 50,188,136,100,250,166, 12, -239,250,145, 3,128,166, 44,245, 64, 38,147, 45, 9, 15, 15,183,142,140,140,100,228,114, 57,178,179,179,153,213,171, 87, 91,203, -100,178, 37,111,122, 69,178,178,178, 86, 12, 24, 48, 32,119,226,196,137,102,231,206,157,115,154, 56,113,162,217,128, 1, 3,114, -179,178,178, 86,188,205,149,230,114,185,172, 39, 79,158, 88,172, 92,185,114, 12,128, 7,109,219,182, 45,116,112,112,120,128, 74, -167,201, 6, 33,145, 72,106, 68, 86,181,117,141,205,102,131,195,225, 64, 38,147,105,138,138,138,168,174,239,185, 10, 60,204, 72, -157,140,207, 21, 88, 8, 76, 28, 37,166,102, 1,133,133,133,143, 8,130, 72, 52,112,137,207,183, 67,135, 14, 28,138,225,208,159, -140,239, 41,155, 57, 57,200,230,167,149,211,154,109, 90,241,177,195,186,165, 83, 61, 86,204, 31, 23, 68,210,180,202,217,217,217, -174,218,161,221, 0,243,185, 95,251,246,237,217, 52, 56,120,246, 34, 37, 55, 53, 35,179,236,253, 30,129, 53,150, 75, 79, 95,191, -190,214,214,214,221, 60, 60, 60,218, 19, 4, 97,208,150,100,129, 64,224,219,186,117,107, 54,201,226, 16,150, 82,137,147, 68, 44, -176,173, 89, 66, 49, 55,239,100, 97,109, 29, 76, 50, 76,169,189,189,189,141, 64, 32,240,109, 66,221,217, 52,184,176,181,177, 48, -179,182, 50, 23,247, 13,234,220, 42,176, 83,160,187,119, 64,199,192,182,239,181, 31, 65,232,245,114, 87, 87, 87,155,106, 39,249, - 70, 44,173, 38, 7, 15, 30,196,202,149, 43,209,174,121,115, 56, 56, 56,192,198,198, 6,183,110,221,194,189,123,247, 32,149, 74, -145,151,151,135,245,235,215,227,196,137, 19,208,106,181,146,166,222, 79,134,136,173,134,160,215,235,201, 87, 5, 86,125,252, 2, -129,128,174,118,146,175, 15,103,207,158, 61, 80,109,201,250,252,243,207,187,108,220,184,241, 70,108,108, 44,196, 98, 49,238,221, -187,135, 41, 83,166,220,216,188,121,115,151, 25, 51,102, 96,207,158, 61, 72, 74, 74, 10,105,136,111,244,232,209, 75,167, 78,157, -186, 41, 34, 34,130,180,181,181,133, 84, 42,197,208,161, 67, 17, 18, 18,194,214,235,245,187,131,131,131,163,131,131,131,163,169, -244, 11,223, 28,253,101,245,173,152, 71,209,248,108,246, 60,158, 70,175, 91, 96, 64,245,153, 10,177,184, 76,223,173, 91,209, 17, -157, 78, 57,154,203, 21,154, 69, 71, 91,156,222,189,187, 70,108, 45, 92,184, 16,102,102,102, 64,165, 3, 51, 26,176,234,124,124, -226,196,137,154,254,208,210,210, 18, 60, 30, 15, 92, 46, 23, 28, 14, 7, 44, 22, 11,151,182,139,240,243,194, 74,125,241,243, 66, - 2, 23,182, 18,138,183,185,118, 66, 7,120, 73,109,121,209,159,238,109,235,227,213,203, 18,183, 14,229, 96,245,128,200,140,123, - 71,242,231,170,242,240, 67, 61,167,189,247,213, 87, 95,121,230,229,229,225,254,253,251,184,127,255,126,125, 22, 32,213,169, 83, -167,190, 47, 47, 47,135,139,139, 11,134, 12, 25,210, 13,128,127, 61,207, 13,218,183,111,143, 65,131, 6, 33, 40, 40, 8,237,218, -181,131, 70,171,231, 4,143,255,184,245,147,164,124,135,213,235, 87, 11,195,175,132,146, 55,110, 68,176, 14, 28,191, 96, 22, 24, -212,103, 19, 87, 98,127, 7, 2, 75,123, 67,234,169,164, 10,225,107,223, 15, 59, 47,207, 38,183, 92,157, 40,222,119,122,139,171, - 68, 34, 33,162,238, 71,235,246,109, 59,146,230, 37, 26,146,119,231, 80, 33,148, 68, 14,122, 77,118, 33,105, 96,228,223,101,100, - 55, 49, 49,217, 24, 17, 17, 97,167,213,106, 17, 19, 19,131, 57,115,230,168,222,146,178,198, 0,226,228,228,132,171, 87,175, 98, -220,184,113,170,220,220,220,219,127, 85,157,106,107,145,255, 21,176,107, 41,200, 26,164,167,167,151, 72,165, 82,135,214,173, 91, -147, 26,141,166,114, 73,226,216, 49,234,151,221,187,207,168, 84,170,217, 0,184, 91,127,250,105,187,131,163, 99,208,248, 9, 19, - 8,157, 78,135, 1, 3, 6,240,194,194,194, 44, 19,243,242,202, 12, 24,112, 94,250,189, 73,147, 38, 97,227,198,141, 0,128, 89, -179,102,213,152,214, 9, 3, 28,150,196,102,232,223,119, 96,123,211,116,209, 22, 83,109, 39, 93,121,139, 4,201, 29, 81,185,160, - 61, 72, 30, 27, 38, 44,208, 90,157, 62, 46,111,216,131,132,184, 54,158,130,162, 66,231,222,109,187,227,151,139,251,251, 43, 41, -213, 17,131, 59, 28,161,176,131, 88, 44,198,131, 7, 15,138,218,183,111, 95,194, 48,140,217,138, 21, 43,172,132, 66, 97,135,183, -104,251,228, 23, 47, 94,116,235,220,185,243, 76,146, 36,123,211, 52,125, 41, 55, 55,119, 43,128,100, 3,207,255, 4,192,119, 0, -106,102,150, 26,141, 6, 36, 73,130, 97, 24,140, 30, 61, 26, 11, 23, 46,244,124,252,248, 49,194,195,195, 45,122,247,238,125, 7, - 64, 9,128,143, 0,212,105, 53,147,203,229, 21,247,238,221, 19,132,135,135,131,166,105, 88, 88, 88,192,212,212, 20,124, 62, 31, - 67,135, 14, 21, 47, 88,176,160,215,249,243,231,243,228, 45,154,177, 76,178, 51, 21,124,177, 88, 2, 59,135,174, 51,198,126, 24, -203, 48,204,137, 38,116, 14, 60, 1, 91,175, 34, 40, 53,185,238,219,205,164,144,203, 37, 76,184,108,240,105, 37,190,249,126, 21, -193,101, 40, 54,154,184, 62,207,229,114,185, 18, 62, 52, 44, 30, 75, 39, 36,192,188,139,135,131,197, 98,241, 76,184,245,251, 99, -112, 72,146, 36, 73,146, 11,192,224,164,125,124, 62,159, 43,225, 51,245,114, 10, 88, 4,139, 32, 8, 30,234,217,137,230,107, 7, -166,218,138,196,155,157,168,174, 45,138,187,118,237,138, 51,225, 15,112,236,244, 37, 20,164, 62,194,226,175, 63,135,191,191, 63, -194,194,194, 26, 44, 83,181,143, 86,125,214,101,153, 76, 22,153,149,149,245, 94,125,231, 54,180,100, 88,143,149,234,117,254,111, -205,224,183, 44, 22,141,248,104, 13,233,218,181,235,103, 7, 15, 30,212,124,240,193, 7,188,209,163, 71,195,203,203,171,203,228, -201,147, 1, 0,189,123,247,198,198,141, 27,187, 76,158, 60, 25,135, 15, 31, 70,104,104,168,186, 71,143, 30, 95, 95,189,122, 53, - 19,149, 59, 58, 95, 3, 77,211,131,118,236,216,241,170,165, 16,122,189, 30, 58,157,206, 94,175,215,219, 87,245, 69,216,180,105, -115,193,133,243, 97,248,122,209, 50,216, 88,219,249, 26,120, 15, 17,147,230,205, 43,216,187,126, 61,214, 31, 62,140,121,206,206, -194,253, 79,159,226,130, 74,133, 35,225,225, 5, 85,191,211,168,111,166, 66,161,168, 56,123,246,172,233,145, 35, 71, 96,110,110, -142, 86,173, 90,193,194,194, 2, 28, 14, 7, 36, 75, 0, 22, 87,138,214,109, 59, 0,184, 7, 0,112,150, 65,225,225,130, 27, 4, -129, 18,134,108,186, 79, 17,191, 25, 90, 88, 57,154, 68,124,182,199,203,220,212,134,139,115, 91,211,112,126, 75,250, 9, 85, 1, -126,132, 30,207, 81,191,207, 87,123, 23, 23, 23,228,229,229,225,236,217,179, 10,160, 94, 65, 6,154,166,191,255,233,167,159,190, - 90,180,104, 17,223,195,195, 3, 0,124, 1,220,175,235,187, 34,145, 8, 14, 14, 14, 53,194,114,244,196, 25,174,211,231,206, 16, - 12,235, 19, 4, 54,219, 10, 37, 10, 29, 10,203,116,144, 90,137,241,245,220, 96,147, 75,237, 29,252,119,108,254,245, 84, 69, 5, -252,129,215,251, 3,130,192,253,187,143,110,120,155,120, 0, 4, 9,164,147, 87, 64,128, 64, 57,161, 3,193, 98, 49, 20, 69, 33, - 45, 45, 13, 12,195, 96,220,176, 41,233, 31,175, 14,181,233, 50, 78, 14,167,214, 50, 16, 12,186,255, 93,132,128,165,165,165,111, - 97, 97, 33,146,147,147, 49,113,226,196,204,130,130,130,139, 10,133, 98, 74, 86, 86, 22, 0, 20,189, 1,101,141,152,247,245,245, - 69,135, 14, 29, 48,106,212, 40, 19,165, 82, 25,236,234,234,234,144,159,159,223,233,207,172,207,171, 90,228,127, 74,104,213,249, -160,233,116,173,213,219,183, 67,113,233, 18,120, 23, 46,224,136, 76, 86,174, 82,169,190, 4,144, 94,245,224,127,190,103,239,222, -155,131,111,223, 54,213,196,198,194,245,241, 99,112,204,205,125,155, 90,128,221,187,119, 67, 46,151,163,180,180, 20, 0,176,101, -203, 22,200,229,114,232, 13, 76, 56,203,230,162,139,157,141, 51,114, 16, 7,154, 77,138, 83, 90, 43, 59,138, 85,146, 44,135, 52, - 91, 69, 41,233,128,216,212, 0, 81, 69,161,166, 35,193,210, 64, 85,160,132, 67,231, 86, 96,131,221,165, 41,101,172, 94,247,103, -179,217, 69, 47, 94,188, 24,228,238,238,126, 26,128,213,155,248, 3,188,130,248,220,220,220,217,111,114, 34,139,197,250, 46, 41, - 41,201, 38, 36, 36,100,230,138, 21, 43,152,218, 66,171,250,255,108, 54, 27, 12,195,192,204,204, 12, 28, 14,199,246,214,173, 91, -182, 1, 1, 1,219,104,154,246,173,167,158,140,151,151, 23,146,146,146,192,102,179, 97,102,102, 6, 90,175,197,178,185, 51, 64, -177,248,236,249,243,231,251, 14, 31, 62, 60, 38, 36, 36, 68,103, 26,216,185, 83, 97, 97,225,147,207,198,141,143, 57,121,242,164, -166, 42,196, 67,227, 83,124,134,137,142,139,139, 99, 57,202,108, 89,140, 94, 73,139,184,128,201,163, 77, 12, 79,108, 7, 19, 54, -139,225, 18, 36,248, 38, 2,179,228,140,140, 66,154,166,159, 25,194, 73,211,116, 84, 82, 82,146,192,214,198,146,173,172,208,148, - 11, 56, 12, 47, 37,234, 65, 98, 11,191,246,174, 0,160,138,186,119,149,223,186,141, 32, 37, 55, 95,228,236,236,108, 16,103, 69, - 69, 69,116,102,102, 38,203,214,214,150,157,154,158,113,202, 92, 44,178, 54, 53, 55,239, 8, 0,218,178,210,123,164, 90,157,207, -226,176,109,243, 11, 11,139, 42, 42, 42,146, 12,173,123, 66, 66, 2,219,222,222,134,117,238,194,229,211,182, 66,190,141,132,199, - 54,229, 19, 4, 33,100, 17,114,174,158, 46, 48, 17, 10,109,146, 51, 50,138, 24,134,169,215, 66,184,182,100,252,176,202,235,181, -236,112, 45,110, 60,122,244, 8,127,220,120, 6, 17,163, 1,161, 42,197,133, 61,187, 48,110,254,162,183,246,251,107, 76,108,189, -145, 53,107, 71,155,200, 87,248,145,221,136, 35,252,184,113,227,150, 29, 56,112,160,198, 1,229,217,179,103,232,217,179,103,245, - 50, 7,250,246,237,139,128,128, 0, 60,123,246, 12,110,110,110, 8, 15, 15,231,179, 88, 44,254,248,241,227, 87,255,250,235,175, -103, 27,181,251,239,220,137, 41, 83,166,212,229, 88,157, 0, 64, 69, 72, 61,202, 23,174,221,103, 85, 84, 88,128,188,252,156,104, - 67,219,129, 32, 8, 76,154, 55,175, 96,135, 70,131,131,119,239, 98,130, 72, 36,220, 27, 31,143, 1, 1, 1,240,238,217,179,192, -144,190,174,218,170,163, 82,169,192,225,112, 96,106,106, 10, 75, 75, 75,112,185, 92,176, 56, 50,176,121, 62, 32,185, 92,248,117, -245,193,250, 47, 69,202,137,253,176,153, 32, 80,194,231, 33,138, 43,172,215, 87,135, 16, 53,195, 80,134,129, 92,153,142, 43,213, -130,196,172, 57,204, 56, 18,206,133,169,219, 60,204, 77,109,184,248, 99,115, 42, 46,108,203, 56,174,202,193,226,170,182,160, 27, -152, 72,120,155,155,155, 35, 61, 61, 29,105,105,105, 79,209,176,131,191,242,217,179,103,137,124, 62,223,211,218,218, 26, 0, 92, -234,155,152,211, 52, 93,227,135,181,255,224, 81, 43,223,110,174, 38,239,119,241,196,190,211,171,240,105,240,102,112, 88, 4, 40, - 74,139, 31, 55, 14, 4,165, 46, 71,240,224,143,137,238,189,221,124, 46,157,214, 76,213, 85, 20,239,122,109, 34,192,198,202,255, - 27,115,203,156, 47, 38,189, 65, 19,230, 86, 86, 54, 34, 46,151, 11, 75, 83,123,205,162,233, 95,100, 51, 12, 83,243,220,112, 88, - 92, 29, 89,102, 81, 81,152, 83, 46, 48,231, 84, 0, 12,217,226,205,162,217,188,123,100,100,100,204,238,214,173,219,234,178,178, -178, 98,133, 66, 49, 14, 0, 92, 92, 92,154,147, 36,201, 7,208,208,234, 72,115,212, 29, 22,130,251,248,241, 99, 72, 36, 18,100, -102,102,214, 54,190,128,166,233,191,205, 38,128,191, 41,252, 0, 68, 1,176, 7, 48, 0,181,194, 59,144, 85,166,186,238, 97, 97, - 97, 76, 88, 88, 88,247,154,193,139, 97,104,125, 81, 17, 24,117,101,219,114, 56, 28, 6, 64,237, 29, 77, 66,115,115,115,130,227, -232, 8,130, 95,233,250,193,188,195,173,175, 58,157, 97,161,101,104, 10, 44, 16, 90, 48,181, 38, 45, 10, 19, 2,171,172,122, 97, - 54,111, 9,114,120,230,181, 71, 58, 64,207,128, 2,205,106, 98,113, 24,133, 66, 1,189, 94, 47,109,217,178,229, 25,189, 94, 47, -173, 26,220,152,255,214, 21,165, 40, 42,145,197, 98, 97,230,204,153,168,182,254,104, 52, 26,228,228,228, 64,173, 86, 67,163,209, - 32, 41, 41, 9,165,165,165,208,104, 52,120,242,228, 9, 92, 92, 92,192, 98,177,236, 27,232,204, 25,134, 97,224,228,228,132, 22, - 45, 90,128, 69, 48,248,101,221, 82,124, 51,103, 6,198,184,208,216,189,245, 71,244,232,209,163,141,179,179,115, 32,155,205,166, -236,236,236,184,161,161,161,167, 40,138, 26, 10,195,123,158,179, 11, 23, 46,108,209,182,109, 91, 27,115, 83,137,142,207, 99,129, -167, 83, 48,124,117, 33,195, 86, 22,192,201,169,185, 30, 2,161,219,132, 9, 19,168,250,172, 16,117,113,126,249,229,151,246, 30, - 30, 30,102, 82,115,137,130,199, 97,229,113,193, 20,148, 62,186,127, 7, 0,120,214, 54, 42,152, 8, 61, 39, 78,156,168,111, 10, -231,146, 37, 75, 92,172,173,173,205, 73, 48,101,148, 86,251,159,245,118,181,166,144,224,112, 42,192,229,181,159, 53,107, 22,209, - 20,206,175,190,250,202,217,211,211,211,220,220, 84, 84,206,230,176,178,185, 52,157,109, 2, 58,135,163,209, 22,155, 88, 91, 41, - 33, 20,251, 77,152, 48,161, 94,206,106,107,214,130, 5, 11,210, 95, 17,222, 40, 42, 42,130, 42, 39, 6,220,204, 88,248,136, 57, -240,183,150,130,207,231,215,108,125,175,239,118,173,207, 71,171, 46,177,101,232,185,237,151, 55,176, 4,184,163, 77,228,171,113, -179,178,178,178, 96,111,111,223,224,243,244,235,175,191, 46, 10, 10, 10,202,235,219,183,175,230,204,153, 51, 32, 8, 2,225,225, -225,200,204,204, 68,223,190,125,193, 48, 76,245,174, 54, 68, 71, 71,163,119,239,222,154,110,221,186,101, 86,197,215,106, 20, 83, -166, 76,129, 78,167, 67,121,121, 57,138,138,138, 16, 22, 22, 6, 31, 31, 31, 70, 40, 20, 14,103, 57,245, 89, 21, 60,117, 81, 39, -175,118,190,216,182,121,189,134,199,230,172,109,202,243, 74, 16, 4, 38,126,249,101, 65,169,159, 95,209,126,133, 66, 57,201,212, - 84,216, 50, 61,221,226,193,249,243, 86, 90,173,214, 32,142,106,171,142,163,163, 99,141,200,226,114,185, 96,243,172,193, 18,121, -131,103,217, 23, 66,187,225,184, 18,197, 87,155,137,112, 66, 34,198, 57,145,121,253,161, 29,132, 78, 88,213,105,180,125,104,231, - 49,246,151,133,205, 16, 82, 53, 30,144, 12,155, 8,157,252,163,123, 75,235, 22, 2,220, 62,154,131, 11,219, 50,126, 87,229, 96, - 41,128,248,198,158,115,173, 86,171,162, 40, 10, 36, 73,130,205,102,215,246, 9,188,249,251,239,191,227,193,131, 7, 64,173,176, - 61,101,101,101, 20,139,197,130,137,137, 9, 0,136, 27,232,239,192,225,112,192,225,112,112,245,206, 53,203, 49, 35, 6, 18,183, - 30, 94, 68,103,159,177, 40, 44,215, 34,183, 84,139, 18, 37,208,214,127, 49,188,122,159,192,163,164, 50,248,182,243, 98,177,120, -162,137,117,241,169,146,145,174, 72,195,200,194,167,116, 43, 77,134,224,143,219, 39,159, 61,189,118,236,209,147, 67, 63,157,142, -239,228,223, 77, 81,101, 76, 64,121,121, 57, 67, 16, 4,243,197,180, 69,137,251,167, 20, 83,155,199, 61,162,217,106,147,132,191, -176,171,111,110,109,109,125,203,210,210, 50,188, 74, 28, 53,151, 72, 36, 55,237,237,237, 99, 81,185,209,227,100,118,118,182,135, - 66,161,232,140,202,205, 89,169,133,133,133, 61,171, 44, 79,169, 13, 88,194, 66,228,114,249,231, 20, 69, 13,174, 58,250, 81, 20, -229, 27, 23, 23,231,233,235,235,251,212,213,213, 53,218,213,213,245, 15, 87, 87,215, 83,174,174,174,167,130,130,130, 54, 86,135, -123,248,147,151, 13, 95,211, 34,255, 48,161,133, 42,145,181,179,234, 21, 53, 66, 11,192,213, 87, 29,208,244,124,254, 19,253,103, -159,193,252,212, 41,112,226,226, 48,121,226, 68, 83,161, 80,184, 25,149, 49,154, 58,139,197,226,109, 75,151, 46,149, 88,173, 89, - 3,217,181,107, 72, 9, 11,131,142,195,185,255, 38,165,171,168,168, 0,155,205,174,177,196,136, 68, 34, 80, 20,133,186, 76,190, -175, 61,128,122,220,206,204,141, 5, 15, 45, 64,131, 41, 63, 39,239,118,119,108,226, 98,155, 48,185,139, 91,188,130,235,182,220, -186,163,205,230,230, 93,238, 42, 8,118, 57,207,220, 4,105,105,233,160, 64, 55,105,189, 89,165, 82,149, 42, 20, 10,248,250,250, - 90, 62,120,240,160,165,143,143,143, 69,213,231,247,222,242,194, 4,202,100,178,163, 14, 14, 14,201, 50,153,236, 40,128,192, 38, -156, 27,114,253,250,117,176, 88, 44, 44, 93,186, 20,101,101,101,208,106,181, 40, 44, 44, 68, 90, 90, 26, 52, 26, 13, 50, 50, 50, -240,252,249,115,104, 52, 26,164,164,164, 64,173,110,124, 66, 66,211, 52, 76, 77, 77,161,170, 40,199,207,171,190,193,146, 5,115, - 81,154, 16,137,140,172, 92,152,155,137, 48,123,246,108,150, 84, 42,165,105,154,110, 65, 81, 84,111,154,166,183, 27,114,157,106, -221,111, 55,156,156,156,188,214,173, 91,231,249,205,170,237, 92, 83,118, 57,195,151,152,208, 60, 9,159,225,181,233,136, 41,139, - 55,115, 55,109,248,225,197,237,219,183, 51, 97, 88,240, 78, 18,192, 13, 63, 63, 63,247,204,204, 76, 31, 15, 15,143,214, 86,205, -157,249,124,123,135, 18,174,125, 51, 57,163, 86,221, 37, 28,154,117,221,190,125,123,204,205,155, 55,179,154,194, 41, 18,137,218, -236,219,183,207,203,214,214,214,139, 35, 16,152, 40, 75, 75,143,232,149,138,163, 44,115,169, 9,105,106,222,239,196,137, 19,145, -199,143, 31,207,105, 10,167,155,155,155,199,170, 85,171,218,122,123,123,183,181,115,105,201, 23, 56, 56, 21,154, 56, 54, 47, 20, -120,251,240,225,216,226,131,109,219,182, 69,223,190,125,219, 32, 78, 22,139,165, 39, 73, 18, 28, 14, 7, 66,161, 16,231,206,157, -195,103, 83,199,194,201,193, 18,173, 61, 60,208,235,211,207,113,252,248,241, 26, 31, 30, 22,139, 85,239,136,190,119,205,236,211, -126,246, 68, 36,118,180,137,196,142, 54,145,126,246, 68,100,189, 98,171,234,239,117,125,199,160,222,168,158,229, 70, 3,196,214, -217,171, 87,175,126, 63,105,210, 36, 94,255,254,253,113,247,238, 93, 76,153, 50,229, 70,104,104, 40, 0,224,238,221,187,248,226, -139, 47,110, 92,190,124, 25, 51,102,204, 64,207,158, 61,121,215,175, 95,223, 6, 3, 98,255,232,245,122,236,222,189, 27,122,189, - 30, 98,177, 24, 22, 22, 22, 24, 56,112, 32, 98, 98, 98,102,236,217,179, 39,150,197,225,124, 56, 96,240, 8,156, 57, 21,138,231, - 79, 98,102,236, 93, 61,190,201, 65,129, 73,146, 68,255,137, 19, 11, 10,218,182, 45,218, 43,151, 43, 63,146, 74,133, 30, 57, 57, - 22, 87,142, 30,181, 50, 64,168, 17, 20, 69,213,136,171,106,209, 81,125,176,121,214, 96,139,188,192,150,248,227, 81, 60, 87,199, - 13, 64, 20,207, 31,207, 26,138,159,197,225,145, 83,134,127,227,130,225,223,184, 96,200,124,231,201,194,102,248, 69,212, 12,159, -244,159,211, 34,200,213,223, 12,242, 60, 45,194,126, 76, 73, 85, 21, 98, 13,128,231,134, 60,231, 52, 77, 63,205,204,204, 4,143, -199, 67,179,102,205,220, 1, 84,251, 5,134, 76,155, 54,109,214,242,229,203,231, 2, 88, 94,245,153, 56, 40, 40,168,109,121,121, - 57,226,226,226, 0,224, 65, 3,214,224,154, 93,134, 69,242, 20,190,179,204, 27, 62,109,166, 67, 42,109,135,204, 34, 13,178,138, - 52,248,229,231,161,136,188,190, 18, 15, 46, 76, 64,106, 78, 14, 4,118,195, 64,233,213, 94, 6, 76,234,101, 15, 31, 62, 36,174, - 95,191, 78,208, 52, 13,157, 78,199,148,201,229, 76,212,141, 27,168,136,136, 32, 76, 77, 77,137, 46, 29,186,149,239, 93,121,230, -222,137,173, 55, 30,104,149, 77,158,168,191, 13,150, 36, 38, 38, 6, 30, 61,122, 52, 8,192, 18,111,111,239,219,105,105,105,157, -174, 93,187,214,218,209,209,113,243,155,146, 86,135,133, 72, 73, 73,121,233,168, 10, 11,161,169, 18, 13,253,171,196,220, 16, 0, - 95,224, 45,118,217, 55, 1, 87,255,193,206,240,103,240,202,110,195, 87,133, 86,237, 64, 97,112,149, 74, 37, 58,157, 54,227,226, -197,139, 90,146, 36, 33, 20, 10, 49,105,202, 20,242,231,159,126,234, 58, 54, 48, 48,252,227,247,223,255, 35,252,242,101,191,128, -128, 0, 48, 12, 3,146, 36,113,248,240,225, 10,149,170,162,208,201,201,201,220,144, 78,163,246, 3, 36,151,203,107,132, 86,105, -105, 41,108,109,109, 13, 94, 58, 84,200,113,233,242,185,200, 98,134,250, 52,173,127,252, 6,237,218,156,161, 1, 37, 52,197, 46, -165,116, 40,173, 96, 80,166, 2,251, 46,105, 17, 48,201,109,152, 54,169,119,192,243,136,216, 91,133, 42, 74,213,164,221, 18,121, -121,121,223, 4, 7, 7, 23,218,219,219, 19,166,166,166,112,112,112, 32,135, 12, 25, 82,144,158,158,190,252, 77,175,136,165,165, -229,152,160,160,160,211,153,153,153, 35, 35, 34, 34, 90, 92,187,118,109,100, 80, 80,208,105, 75, 75,203, 49, 6, 82, 28, 89,180, -104,145,130,199,227,161, 99,199,142, 40, 43, 43, 67,213, 46,159, 6, 15, 67,150, 72,185, 92, 46,118,172,251, 14, 75, 22,204, 69, - 81,236, 93, 60,186,113, 17, 87,115, 8, 44, 94,245, 3,184, 92,238, 27,197,250,106,101, 45,244,246,150, 73,158,125, 49,101,116, -214,194, 5, 11, 36,209,209,209,156, 89,115,190, 96, 82,178,139,192,235,191,158,133,238,223,144, 15, 21,214, 24,208,175, 23,150, - 46,153,231, 93, 21,180,179, 65,180,177, 22,122,123,201, 36, 79,231,125, 60, 54,113,206,156, 57,130,181,107,215,170, 2, 3, 3, - 43,114,115,115, 5, 34,169,133, 7,219,204,220, 43, 37, 59, 71, 28, 24, 24,152,244,233,167,159,150, 52,149,115,241,226,197,194, -243,231,207,179,131,131,131,245,197,197,197, 98,142, 64,224, 75,240, 77, 58,228, 23, 23,155,141, 12, 14,142, 31, 57,114,164,178, - 42, 96,169,193,156,223,126,251,173,240,249,243,231,236,192,192, 64, 93, 78, 78,142, 68,100,105,229,195, 50,183,240, 79,206,206, - 53,237, 16, 16,144, 48,107,214, 44, 69, 67,229,172, 45, 82, 36, 18, 73,102,231,206,157,241,227,143, 63, 98,211,166, 77,248,224, -131, 15, 16,243, 36, 6, 3,102,205,133,231, 39, 95,224,212,173, 59,200,204,204,196,138, 21, 43,224,227,227, 3, 46,151,251,188, -206,231,113, 70, 44, 17,157, 3, 34, 58, 7, 4, 49, 35,150,168,126, 95,175,101,107,121, 41,106,127,191,174,239, 61,248,182,110, - 75,151,159, 61, 17,217,144, 31, 86, 99, 98,107,228,200,145,159, 85,135,112,248,232,163,143,110,108,222,188,185,203, 71, 31, 85, - 78,180, 59,118,236,136,149, 43, 87,118, 89,188,120,241,141, 85,171, 86,161, 87,175, 94,112,117,117,109,116,227, 11, 69, 81,208, -235,245, 24, 59,118, 44,244,122, 61,242,243,243,241,226,197, 11,236,220,185, 19, 12,195,152, 0,128,189,204,177, 61,143,199,195, -195,168,251,202, 37, 31, 5,252,218, 4, 75, 22, 81,123, 18, 83, 94, 94,142,145,159,124, 82,144,209,170, 85,209,246,130, 2,229, - 84,169, 84,232,156,154,106, 33,209,104, 28,208,128, 95, 34, 65, 16,160,105,186, 70, 88, 85, 11,174, 87,143,170,129,210, 32,104, -149,244,217,107, 7,178, 0, 0,221,198,203, 48,100,190,243,100,123, 55,225,150,174,227, 42,141,222,199, 87, 38, 50,101, 89,212, - 90,232,240,180, 9, 22,235,187,119,239,222,133,185,185, 57,130,131,131,249, 36, 73,174,169,158,175,162, 50,118,214,134,106, 46, - 62,159,191,126,194,132, 9,100, 73, 73, 9, 30, 61,122, 4, 0,151,235,235,151, 24,134,169,169,123,121, 17, 1,138,230,225,102, -212, 57, 92,184,118, 12,201,153,249, 72,205, 83, 1,108, 51,168, 20, 25,208, 86,100, 66, 83, 18, 5,185, 90,104, 80,129,185, 92, -110,190,183,183, 55,227,239,239,207, 48, 12,131,132,132, 4,125, 74,106,170,254,254,198,141,204,227,233,211, 9,201,139, 23, 92, -129, 64, 64,184,184,184,192,196,196,132, 54, 49, 49, 41,252, 11, 7,239, 63, 37,220,194,159, 16, 22,226, 93, 90,181, 24,252, 51, -145,141,151,119, 27,214, 4, 48,173, 43, 96, 41, 24, 83,193,232, 99,219,126, 54, 11, 30, 59, 94,225,227,227, 35,117,112,112, 0, - 65, 16, 24, 58,108, 24, 17, 20, 17, 33,225,200,100,176,124,239,189,154,229,136, 75, 23, 47,226,220,185,115,138, 51,191,159,112, -152, 50,117,234, 32, 0,251, 26, 40, 12,155,207,231,215,252,110,118,118, 54,248,124,126,141, 79,132, 92, 46,135,181,181, 53,178, -179,179, 97,224,202,220,254,133, 11,238, 44,200, 11,248,198, 37, 64,194, 33,254, 80,228,128, 98, 24,112, 8, 10,168, 96,160,163, - 0,181,142, 65,123,103,150,197,133, 10,189, 52,236,110,104, 18,128,253, 77,105, 61,181, 90,125, 37, 58, 58,229,226, 60, 97, 0, - 0, 32, 0, 73, 68, 65, 84,122, 58, 77,211,199, 0,144, 17, 17, 17,244,211,167, 79, 63,131,225,142,235,175,155,237,133,194,249, -225,225,225, 22,243,231,207, 47, 14, 11, 11, 43, 29, 56,112,160,217,206,157, 59, 45,122,246,236, 57,191,176,176,240,144, 33,134, -192,180,180,180,125,233,233,233,159,249,251,251,163,168,168, 8, 90,173, 22,145,145,145,112,115,115,195,131, 7, 15,224,238,238, -142,251,247,239,163,117,235,214,160, 40, 10, 42,149, 10, 52, 77, 83,141,117,230, 69, 5,249, 64, 97, 26,178,238,254,129, 23,143, - 35, 17,158, 69, 96,235,161,211,104,214,194,229,141,226,212,184,219, 8,219,218, 91, 91, 94, 88,187,236, 91,155,148, 43,135, 17, -186,123, 43,125,245,143, 63, 60,121, 18, 76,239, 62,246,243, 17, 26, 29,154, 3,224,117, 10,240, 71,127,233,115, 74,216, 2, 57, -225, 79, 27, 14,176,232,110, 35,108,107,107,101,121,254,255,214, 44,151, 36,156,219,139, 35, 59,126,100,142, 31,248,205, 71, 5, - 4,180,109,219,182, 63, 73,146,230, 0, 84, 85,126, 94, 6,165,182,169,139,243,210,233,211,126, 42, 32,224,228,201,147,253,133, - 66,161, 29, 0,157, 82,169, 76,124, 27,206,203, 97, 97,126,213,229, 36, 8,194, 6,128,150, 97,152, 4, 52, 49, 5,207,168, 81, -163, 86,126,241,197, 23, 11, 40,138,178,174, 53, 59,103,173, 95,191,158, 77,211, 52,139, 97, 24, 45, 73,146,218,243,231,207, 83, -122,189, 62, 75,165, 82,125,242, 54,189,200,136, 17, 35,112,231,206,157,101,168,220,132, 97,168,181,250, 37, 63,173,170,148, 61, -111,204, 31, 17, 17,177,226,195, 15, 63, 92,120,232,208,161, 23,155, 55,111, 30, 60, 99,198, 12, 28, 62,124, 24,173, 90,181,194, -195,135, 15,241,205, 55,223, 0, 64,151,197,139, 23,159, 10, 9, 9,113, 77, 73, 73, 89,111,128, 69, 3,122,189, 30,191,253,246, - 27,134, 14, 29, 10,107,107,107,200,100, 50, 16, 4,113,101,234,212,169, 63, 1, 0,139, 96,113, 1, 64,173, 82,171, 61, 60,252, - 13,182,224,114,185,220,154,190, 46, 39, 39,167,102,167, 96,159, 15, 63, 44,248,101,237, 90,252, 90, 81,129,169, 82,169, 48,195, -209,209,254, 84, 66,194,199, 79, 42, 59,103,166, 33,171, 78, 99, 34,203, 80,151,134,138,108, 44,250,125,117,178, 29,128, 15,186, -141,151,161,219,120, 25,252,135,216, 16, 36,139,192,227, 11,133,136,185, 84,116, 92, 39,199, 21, 52, 45, 93,206,211, 53,107,214, -156,234,222,189,251,224, 54,109,218, 96,218,180,105,159,238,222,189,155,171,211,233,230,224, 63, 97, 30,204, 72,146, 92,190, 99, -199,142,143, 45, 44, 44,112,253,250,117, 92,187,118,237, 10,128,180,250,250, 37, 0, 53, 49,179,154, 57,185,171,158,167,148, 11, -243, 50,111,226,198,245,223,209,202,231,115, 8,236, 6,193,194, 99, 21,180,177,155,160, 41,188, 0, 11,167,129,200, 72, 73, 0, -139,205,143,105,204, 9,133, 97,152, 39, 25, 25, 25,174,174,174,174, 68,114,114,178, 30, 0, 67, 81, 20,163,237,218, 85,231,185, -118, 45, 39,230,211, 79,137, 78,207,159,179, 24,130,160, 35, 35, 35, 1,224,217,127, 99, 20,175, 14,183, 16, 19, 19, 83, 95,184, -133, 38,193,219,219,187,203,181,107,215,248, 42,149, 10, 87,175, 94, 69,135, 14, 53,123,187,254,171,209,239,107,107,145,127, 24, - 62,174,227,179,157, 47, 89,180, 94,186,177,105,130,211,218,221,157,226,146,216, 51,116,208, 32,101,116,116,116,205,172, 79,117, -239, 30, 20,231,206,129,162, 40, 48, 12,131,107, 17, 17,152, 48,126,124, 57,135, 69,252,226,236,220,130, 33,152,151, 98,183,244, -174, 99,246, 16, 28, 28, 28, 92,211,249,164,167,167, 67, 36, 18,129,199,227,129,166,105,232,245,122,176, 88, 44,152,153,153, 65, -175,215,215,101,130,121,149, 83, 71, 21, 41, 70,134, 12, 24,151, 45, 43,215, 50,211,205,157,209,156, 43,168,121, 56,237, 76, 9, - 12,246,225,192,138,157,199, 92, 94,255,126, 22,173, 46, 28,137,215,119,116, 53,182,229,223,189, 93,187,118, 63, 77,152, 48,129, - 4,128,222,189,123,147,237,218,181,219,130,134, 83,229, 52,200,105, 98, 98,194, 7,128,211,167, 79, 23,189,120,241,226,131,211, -167, 79, 23,213,254,220, 64,206,157,235,214,173,131, 80, 40,132, 94,175,135, 70,163,169,241,207,170,253,170,213,106, 97,101,101, -133, 51,103,206,128,162,168, 51,141,149,211,169,121, 11, 16,214, 45,177,239,116, 56,174, 21,112,223, 68,100,213,112,182,180, 19, -181,182,179,178,188,248,127,171, 87, 88, 23,199, 71, 34, 35, 35,131, 57,127,238,204,109, 21,144, 89, 90,134, 37, 37, 10,180,174, -208,192,164,131, 43,210, 46,238,248,154, 89,220, 13, 58,212,189,107,176,134,211,211, 78,212,218,193,218,242,252, 15,255,183, 90, - 82, 18, 31,137,236,156, 28,156, 61,115, 58, 90, 5, 84, 47, 55, 78,166,105,218,139,166,105, 47, 0,147, 27, 16, 47, 77,226, 84, - 42,149,222, 74,165,210,251, 93,114, 50, 12,227,205, 48,140,193,156,181,125,162, 54,108,216, 16,155,157,157, 61, 33, 47, 47,175, -111,245, 81, 92, 92,220,187,188,188,188,135, 82,169,236, 90,177,161,133,153, 82,169,180, 41, 47, 47,183, 87,169, 84,237, 1, 68, - 54,225,158,175, 65,237,168,211,217,217,217, 75,179,179,179,137,198,202,201,250, 36,150, 56,248,195,188,223,119,236,216, 97,255, -150,252, 47,149,179,160,160,224,216,161, 67,135,124, 93, 92, 92, 92, 39, 79,158,140,237,219,183, 99,243,230,205,106, 0, 8, 9, - 9, 81,215,178,100, 57,165,164,164,248,215,179,108,216,187,150,181,100,127,159, 62,125,152,107,215,174, 97,232,208,161, 53,129, - 68,119,237,218, 5,189, 94, 47,239,213,171, 23, 13, 0, 21, 42,165,156,161, 25,104,180,245,174,191,191,214,158, 60, 30,175, 95, -237,120,129,213,193,152,121, 60, 30, 24,134, 65,235, 46, 93, 10, 74,124,124,138,118,151,150, 42,151,122,123,155,126,236,225, 49, -185, 13, 48,190, 46, 78,130, 32, 94,178,234,188,122, 52,193,146, 85,187,156,121, 21, 89,152,246,251,234,228,115,213,150, 45, 19, - 49, 27,170, 50, 61, 78,172, 77,206, 87,229, 99, 87,125,226,167,161,186, 23, 21, 21,205, 90,187,118,173, 90, 42,149, 98,196,136, - 17, 88,181,106,213,212, 46, 93,186,148,218,216,216,220,105,213,170,213,227,209,163, 71,103, 71, 70, 70,206, 10, 10, 10, 66, 92, - 92, 28,126,248,225,135,146,226,226,226,113, 13,113, 18, 4, 81, 99,201, 27, 50,160,119,209,207, 91,126,164,123,117,255, 12, 66, -129, 41,116, 28, 39, 20,149,235, 80,172, 96,160,225, 7,128,199,229,163,111, 96, 91,220, 57,191, 87, 73,105, 20,251, 26,187,231, -203,203,203,143, 79,154, 52, 73,206,229,114,161,209,104, 24, 14,135, 3,126,165,223, 49,205,249,224, 3,109,167,167, 79,245, 20, -195,208, 4, 65,224,203, 47,191, 84, 20, 23, 23, 31,122,147,231,168, 9,168,205,249,174,194, 45,244,126,101,252,121, 23, 97, 33, -254,140,186,255,147,177,179,142,227, 63, 22,173,234, 45,149,213,175, 4, 65, 83, 20, 69,195,217,197, 89,146,146,156,182,117,212, -168,224,143,250,247, 31, 32, 28, 48, 96,128, 73,219,216,202,217,232,233,211,167, 17, 26, 26,170,188,112,225,130,156,207, 97,133, - 56, 53,115,178,165, 40, 26, 4, 65, 55,168,134, 37, 18,201,156, 69,139, 22, 9, 74, 75, 75,177,121,243,102,218,215,215,151, 20, -137, 68,208,106,181, 8, 9, 9,209,181,109,219,150, 67,146, 36, 74, 75, 75, 65,146,228,115, 3, 43,248,168, 52, 45,179,239, 79, - 65,195, 67,253,103, 78,177,244, 12,234, 36,237,225,228, 0,221,123, 12,178,210,147,241,226,242,133,226, 39,231, 55, 22, 66,149, - 59, 28,141,167, 7,170,107, 32,248,238,194,133, 11, 54,179,102,205, 98, 84, 42, 21,145,150,150,198,172, 94,189,218,102,218,180, -105,223,101,101,101,141,121,195,139, 66,148,148,148,128, 32, 8,186,170, 35,169,158,245, 55,101, 93, 46,102,223,190,125, 39,135, - 13, 27, 54,164, 87,175, 94,136,141,141,173, 89, 34,172, 45,180,170,119, 31,174, 89,179,166, 4,192,194,198, 72, 57, 28, 14, 54, -239, 59,134,146,226, 2,216,218,202, 96, 34, 16,224, 77,119, 88,242, 72,114,233,247, 43,190,181, 41,120,118,135,136,185, 29, 78, - 31,125,148,155,167,167,152,186, 35,254,151,101, 49, 85,234,191,225,217, 12,201, 90,250,253,234,229,102,213,203,154,135,162,178, -229, 4,197,204,122,171, 71,228,159,194,249, 23, 67, 38,147, 33, 59, 59,155,144,201,100, 76,149,143, 22,211,128,208,122,249, 6, -175, 92, 46, 35, 26, 90, 54,124, 83,254,164,164,164,213,239,189,247,222,188,184,184,184,163,158,158,158, 51, 0, 52, 83,171,213, - 37,139, 23, 47,254,191,144,144,144,143, 12,177,100, 1,192,225,195,135, 55, 78,153, 50,229,220,160, 65,131,190,166,105,186, 93, -173,129, 61,201,198,198,166,102, 9, 55, 63, 55,103,193,244,143,198, 46, 40, 47, 47, 54, 56,206,157, 88, 44,254,120,241,226,197, - 38, 10,133, 2,219,182,109,163,219,182,109, 75, 86, 79,138, 14, 28, 56,160,119,119,119,103, 7,127,246, 89,193,134,156, 28,172, -188,126, 93,177,192,203,203,119,247,139, 23,237, 65,211,251,235,179,234,212,101,201,170,118,187,120, 67,100, 85,137,173, 93, 0, - 62,232, 52,202, 14, 39,215, 37,163, 56, 69,243,127,208, 35, 1, 6,164, 5,170, 3, 25,199,143, 31,239,155,155,155,123,242,219, -111,191, 53,107,223,190, 61,188,188,188, 56, 98,177, 56,160, 58, 92, 76,105,105, 41, 46, 93,186,132,237,219,183,107,158, 60,121, - 50,172,161,229, 42,138,162,242,220,221,221,171,219,129, 33, 8,162, 80,174, 38,204,142,180, 9, 16, 79,158,126,148,184,113,255, - 22,178,180, 52,212, 58, 26,206, 46,126,232,241,193, 6,156,250,227, 49,149,149,242,244,169,174,162,248, 23, 3,202,155, 16, 31, - 31,127, 98,197,138, 21,163,190,254,250,107, 65, 65, 65, 1,165, 86,171,233, 99,199,142,177, 38, 79,158, 76, 49,108, 54,205,101, -179, 49,103,206,156,138,146,146,146,223,129,191, 52,193,244,159, 18,110,225, 79, 8, 11,241,206,172, 89,181, 95,255, 87, 80,231, - 19, 74,179,200,155,219,119,252,220,239,240,111,135,236, 88, 44,210, 46, 33, 49,241,254,224,225, 35, 51, 47, 94,188,104,193, 53, - 51,235, 0,128,214,204,152,113, 91,171,174, 40, 10, 59,121,178,185,179,115, 11,159,170,164,210, 12,205, 34,111, 54,244,131,229, -229,229,138,235,215,175, 43, 23, 46, 92, 72,164,167,167, 31,180,181,181, 29,253,199, 31,127,136,135, 15, 31, 94, 17, 27, 27,123, -220,206,206,110, 72, 80, 80,144,100,222,188,121,234,242,242,242,166, 36, 30,125,202,228, 23,183,185,247,237,250, 15,239,173,251, -249,125,176, 89,157,161,230, 0,180,238, 38,180,101, 23, 1, 28, 68, 19,226, 29,213,134, 72, 36,242, 17, 10,133,136,142,142, 46, - 14, 8, 8,208,168, 84, 42,238,170, 85,171, 44, 69, 34,145,207,155, 54, 60,195, 48, 76,113,113, 49,104,154,102, 3, 32,170, 94, - 65, 55,125, 47,254,152,193,131, 7,159, 60,114,228, 72,159, 1, 3, 6,192,213,213, 21, 58,157, 14,238,238,238,208,104, 52,112, -115,115,131, 90,173,198,178,101,203, 80, 90, 90, 58, 23, 13,228, 60, 35, 8, 2,122,189,190,198,217,214,193,177,121,101,156,158, -183, 8, 99, 33,226,144,174,207,195,118, 35,175,176,128, 62,242, 48, 55, 87,169,165,250,198,231, 43,159,188,250, 61, 37, 5, 69, -208,228,217,153, 0,160,166, 27,206, 56, 47,226,193,245,197,153, 93,200,205, 43,192,225,168,236, 18,133,150,254,224, 69, 29,156, - 77, 42,231, 63,132,211,111, 89, 44, 70,206, 54,252,187,111, 3, 67, 5, 85,125,136,206, 1,241, 64,184,155,193,142,221,117,198, -200,122, 75,254,147,113,113,113, 39, 1,224,233,211,167,233, 99,199,142, 93,144,156,156,188, 2,192,217,148,148,148, 29, 77, 33, -218,189,123,119, 28,128, 41, 13,125,231,208,250, 41, 39, 0,156,104, 10,111, 89, 89,153, 42, 50, 50, 82, 53,111,222, 60, 34, 61, - 61,253, 15, 59, 59,187, 62,231,206,157, 19, 14, 31, 62, 92, 29, 19, 19,115, 89, 38,147,117,235,221,187,183,248,236,221,187,153, -202,132,132,176,176,228,100, 71, 29, 77,135, 53,244,124,190, 99,145,245,146,216, 58,177, 50,249,251,147,223, 39,247,166,213, 56, -174, 41,198,109, 0, 25,111,193,121,237,230,205,155,158,227,199,143, 63, 50,112,224,192, 78,158,158,158,104,214,172, 25, 94,188, -120,129,252,252,124, 60,122,244, 8,167, 79,159, 62,173, 82,169, 26, 77,168, 93, 84, 84,244,122,122, 34, 19, 11,217,222,109, 75, - 79,223,191,209,193,189,235,128, 73, 2, 47, 25, 13,141,150, 65,122,106, 2,150, 45,249, 69,153,157, 26,247, 84,171,215, 14,131, -129, 27,117, 42, 42, 42,118,110,218,180,137, 19, 22, 22, 54, 96,235,214,173,146,230,205,155,179,184, 92, 46, 9,128,121,240,224, - 1, 51,123,246,108, 69, 65, 65,193, 25,185, 92,190,243, 47, 30,163,175, 37, 38, 38,250,177, 88,172,119, 26,110,225, 45,194, 66, - 24,241, 46,225,226,226,232,217,178,185,108,134,107, 51,199,207, 92,154, 59, 77,172,203,201,221, 85, 42,149,184,180,112,248,216, -181,153,227,103, 45,155,203,102,184,184, 56,122, 26, 96, 90,116, 53, 53, 53,253,195,222,222,222, 23, 0,204,204,204,134,152,155, -155, 63, 49, 51, 51, 27, 82, 53, 11, 28, 34, 22,139,159,181,109,219,118,218, 95,104,174,108,144,211,221,221,125,108,121,121,249, -167,238,238,238, 99,171,223, 39, 36, 36,212,188,127, 19, 78, 39, 39,167, 94, 15, 30, 60, 24,179,126,253,250, 17,173, 90,181, 26, -178,122,245,234, 17,191,255,254,251, 24, 71, 71,199,246,111,192,201, 7,240, 43,135,195,201,229,241,120,121, 28, 14, 39,183,250, - 96,179,217,185, 44, 22, 43, 23,192,142,122,172,101,189,107,205,114,110,216,218,218,166,216,218,218,166,216,217,217,165,216,217, -217,165,216,219,219,191,118, 88, 89, 89,221, 48,180, 61, 61,236,196, 93, 2,154, 73,110,122,219,139,111,180,177, 21,121,188,139, -107,228, 97, 39,238,210,161,153,217, 77,111,123,201,245,127, 27,167,175, 29, 24,102,187, 7,195,108,247, 96,124,237,192, 52,246, -254, 93,154,253,237,237,237, 25,123,123,251,165,127,214, 82, 66, 61,252,127,249,243,254, 14, 57, 93, 37, 18,201,161,102,205,154, - 85,247,117,131, 76, 77, 77,175,136,197,226, 65, 85,125,221, 32,145, 72, 20,209,182,109,219, 73,141,113, 90, 88, 88, 60,176,177, -177,201,169, 58,178,109,109,109,179,109,109,109,179,109,108,108,178,108,108,108,178,172,173,173, 51,171, 15,115,115,243, 59,111, - 88,119, 27, 0, 29, 1,180, 7, 96,250, 14,219,211, 5,192,244,170, 62,104, 45,128,105, 0,218,189,131,107, 68,112, 4, 22,159, -240,205,157,110,114,196,214,101, 28,177,117, 25,223,204,241,102, 3, 41,120, 12,225,108,109, 97, 97,177,202,212,212,244,119,137, - 68,114, 93, 34,145,156,180,178,178, 90, 13,160,245,127,233, 94, 18, 3, 8, 65,101,124,166,179,168, 92, 10, 63,137,202, 77, 5, -205,255,134,247,252,191, 25, 31,255,183,126,184,183,145,211,200,105,228, 52,114, 26, 57,141,156,255, 64, 78,210,216,158, 70,161, -213, 68,161,245,234, 1,160,129,200,240, 70, 24, 97,132, 17, 70, 24,241, 47, 6,109,108, 2, 35,154,136, 58,151,150,137, 6, 84, -105, 83, 98, 77,189,137,178,189,100,228, 52,114, 26, 57,141,156, 70, 78, 35,167,145,243, 95,199,105,196, 59,132,209,172,106,228, - 52,114, 26, 57,141,156, 70, 78, 35,167,145,243,127, 29,198,165, 67, 35,140, 48,194, 8, 35,140, 48,194,136, 63, 9, 59,107, 9, -174,151,150, 16,141, 66,171,233, 32, 1,124, 10, 96, 36,128,150,168,204,102,127, 12,192, 79,120,179, 53,125, 83, 0, 11, 0,116, - 70,229,238,156, 36, 0,215, 81,185, 59,167,220,216,220,117,195,202,202,106, 17,135,195, 49, 7, 42, 83,155, 84,191,214,254, 63, - 69, 81, 37,114,185,124,245,159, 84, 4, 22, 12,140,160, 92, 93,214,218,101,171,253,170,211,233,254,204,114, 26,241,247,132,187, -133,133,197,175, 69, 69, 69,227, 80, 43,201,178, 17, 70,252, 47,192,218,218,122,134, 86,171, 93,204,229,114, 87,229,231,231,255, -252, 47,170,250,107, 34,235, 37,161, 21, 22, 22, 22, 1, 0, 3, 7, 14,236, 14, 0,230,230,230,183, 72,146,116,105,202, 47,208, - 52,157, 84, 82, 82, 82,111, 0, 53,115,115,243, 91, 44, 22,235, 53, 78,157, 78, 39, 97,179,217,101,117,157,163,215,235, 51,228, -114,121,251,191, 73, 35, 18, 0,194,164, 82,169,106,197,138, 21, 63,245,232,209,195, 41, 43, 43, 75, 63,127,254,252,110, 15, 31, - 62, 28, 0,160, 95, 19,197, 86, 32, 65, 16,123,125,125,125, 79, 76,156, 56,241, 72, 64, 64, 0,175,176,176, 80,114,236,216, 49, -135,125,251,246, 69,210, 52, 61, 14, 13, 36, 90,253, 55,131,195,225,152,103,100,100, 72,128,202,212, 36, 85,194, 10, 58,157, 14, - 58,157, 14, 10,133, 2, 62, 62, 62,239,252,119,237,236,236,252, 8,130,216, 42, 22,139,219,151,151,151,223, 7,240, 89,118,118, -246,195,166,148, 85,175,215,131, 97,152,154,114,122,122,122, 26, 47,104,211, 48,149,199,227,125,224,230,230,214, 65,173, 86, 23, - 39, 37, 37,221,163, 40,234, 91,188,187, 28,109,102, 0,190,229,243,249, 1, 45, 91,182,116,138,139,139, 75,215,106,181,119, 81, -153, 12,185,244, 93,136,172,238,221,187,223,216,182,109,155,229, 39,159,124,114,227,250,245,235, 93,140, 98,203,136,255, 22,156, -156,156,204, 21, 10,197, 47, 0,252, 56, 28,142,157,137,137, 9, 4, 2, 65, 14,159,207,143, 22, 8, 4, 31,221,188,121,179,164, -169,156, 20, 69,125,155,146,146, 98,215,177, 99,199,117, 54, 54, 54,203, 10, 10, 10, 84, 90,173,246,114,113,113,241, 92, 0,242, -134,206,125, 85,139,252,195, 68, 86,237, 87, 84,139, 46,118, 85,197, 24, 0, 61, 94, 82, 96,108,182, 99,106,106,170,141,137,137, - 9,104,154,174, 25,204, 94, 61,170, 63,215,104, 52,240,242,242,210, 54, 50,224, 56,165,167,167,219,240,120,188,154,207, 52, 26, - 13, 28, 28, 28,232,140,140, 12,155,170,180, 7, 53, 80,171,213,112,116,116,252, 59,229, 60,250,212,194,194,162, 52, 45, 45,221, - 71,165,214, 46,159, 54,107,225,162,113, 35,223,151,222,186,117,139,238,215,175,159, 58, 34, 34,226, 83, 84, 38, 78, 53,168, 51, - 39, 8, 98,223,252,249,243,151,153, 8, 77, 45,195,111, 61, 85,239, 59,118, 38,211,215,221,153,152, 59,119, 46,107,246,236,217, -215,252,252,252,126,165,105,250, 61, 52,193,178, 37,149, 74,207,241,249,252, 22, 85,237,151, 86, 92, 92,220,231,111,120, 67,178, -241,122,240,216,186, 62,107, 20,133,133,133,168,168,168,120,237,240,244,244, 52, 52, 87,102,147,202,205,225,112, 78,174, 89,179, -198, 33, 39, 59, 27, 63,110,216,208, 17,149,150,204,142,134,156,156,151,151,247, 90, 57, 61, 60, 60, 96, 68,147,176, 96,217,178, -101,107, 62,252,240, 67, 80, 20,133,138,138, 10, 89,124,124,124,219,197,139, 23, 15, 75, 72, 72,232, 0, 32,241,109, 39,227,110, -110,110,177,159,127,254,185, 69,135, 14, 29, 80,149,165, 66,118,253,250,245,142, 33, 33, 33, 19,210,210,210, 60, 0,228,191,205, - 15, 88, 88, 88,252,186,107,215, 46, 75,161, 80,136, 83,167, 78, 89,246,234,213,235,122, 84, 84, 84,215,183, 16, 91,164,165,165, -229,108, 0, 61,105,154,230, 1,184, 91, 92, 92,188, 18, 77,143,234,110, 47, 22,139,143,147, 36,233, 12,252, 39, 26, 61, 73,146, - 86, 4, 65, 20, 84,127, 70, 16,132, 13, 77,211,183,139,138,138, 58, 25,111,199,127, 54, 44, 45, 45,167,230,230,230,110,227,243, -249, 92,169, 84, 10,161, 80, 8, 54,155, 13, 54,155,221,140,207,231, 55,227,243,249,253,131,130,130, 62,187,114,229, 74,131, 17, -246, 3,125,109, 39,131, 36,150,179, 8,146, 5, 0, 36, 71,100,106,102,102,134,229,203,151,139,134, 12, 25, 34, 2,128, 27, 55, -110, 76,156, 52,105, 82,175,140,140, 12,175,250,196, 86, 93, 90,228, 31,132,157, 13, 13,120,168, 82,143, 17, 47, 61,185, 36, 9, - 30,143,135, 59,119,238,192,144, 96,229,213, 41, 18, 26,236, 13,170, 34,140, 63,124,248, 31, 3, 64,245, 64,195,227,241,112,243, -230,203, 65,229, 3, 3, 3,107, 30,246,191, 10, 35, 61, 43,131, 60, 30,157, 89, 89,174,224,173,149,209,181,143,206,244, 64,183, - 31, 82, 49,114,246,210,209, 74,149,214, 31,128,162,164,184,184,248,126,104,104,150,175,187, 59,247,255,219,187,238,248,166,170, -254,253,220,123,179,147, 54,109,211,153, 82,104, 1, 41,171,172,150,189, 17, 20, 4, 20,101,190,202,124,193, 34,226, 0, 20, 28, -168, 96, 89,130,240,130,130,140, 10,202, 16, 84,150,108,144, 33, 5,100,183, 8,165,148, 41,148,238, 54, 77,147, 52,105,230,189, -185,191, 63,154,196,180,116, 36,109,202,240,215,231,243,185,159,230,230,222, 62, 57,247,220, 51,158,243, 61,223,243, 61, 63,253, -244, 83,199,122,245,234, 13,119, 67,104,125, 28, 19, 19,179,147, 18,249, 4,140, 27, 63, 97,220, 68, 14,105, 30, 59,249,195, 5, -233,217, 10, 93,108,108,236,174,189,123,247,142, 91,188,120,241,141,153, 51,103,126, 12, 96,182,171,233, 23, 10,133, 17, 55,111, -222,140,100, 24, 6, 45, 91,182,124, 26,183, 49,104,135,146,224,123,111, 0,216,102,251,238,117,148, 68,238,143, 6,112,197, 29, - 50,187, 5,171,188,195,211,168, 87,175, 94,243, 49, 99,198, 4, 40, 21, 10,252,111,249,114,251,215,237, 81,197, 52,162,189,254, -152, 76, 38, 12, 27, 54,108, 12,195, 48, 28,187, 8, 52, 26,141, 38,181, 90,109,192, 63,142,165,249, 0, 94,112, 33, 57,141, 36, - 18,201,215, 0,162,245,122,125, 61, 0,144, 72, 36,153, 86,171,117,183, 78,167,155,141,127, 54,240,117,123,128, 11, 32, 10, 21, -111, 5,197, 46, 90,180,232,246, 39,159,124,114,239, 9,112, 70, 4, 7, 7, 47, 28, 49, 98, 4, 14, 28, 56,128,131, 7, 15, 90, - 68, 34, 17,103,252,248,241,196,212,169, 83,253,166, 77,155, 54, 16,192, 55, 53,124,205, 3,191,252,242, 75, 89,139, 22, 45,176, - 99,199, 14, 92,189,122, 85, 31, 25, 25, 41,234,221,187, 55, 56, 28,142,236,211, 79, 63,125, 9,192,198,154,252,128, 82,169,156, -255,225,135, 31,110,218,182,109,155,247,223,127,255,141, 85,171, 86, 5,140, 26, 53, 42,225,225,195,135,189,220, 16, 91, 2, 0, -239, 1,232, 67, 81, 84,143,241,227,199,211,239,190,251, 46,151, 36, 73,203,242,229,203, 3, 55,108,216, 48,138,203,229, 70, 23, - 20, 20,184, 50, 72, 35, 1,196, 77,156, 56,241,191,127,252,241,135,223,197,139, 23,249,254,254,254, 96, 24,198, 97, 41,182, 90, -173, 65,246, 50, 75,211, 52,154, 55,111, 30,230,244,255,162,103, 85,104,144, 36,105,182, 90,173, 92, 0, 66, 0,198,170,206,255, - 77, 34, 75, 38,147, 77, 81, 42,149,171, 67, 66, 66, 16, 28, 28,252, 72, 95,107, 52, 26, 33, 20, 10,121, 33, 33, 33,223, 15, 25, - 50,132,187,103,207,158, 10,167, 0, 9,138,248, 98,239,207,243,234,201,252,188, 1, 0, 43,214, 30, 41, 6,128,223,126,251, 13, - 89, 89, 89,240,243,243, 67,171, 86,173,168,121,243,230,201,103,204,152,241,191,194,194,194,137, 21,113,149,213, 34,207,152, 69, - 43,190,188,243, 74,125,180, 88,150,117,236,147,231, 98,161, 45,251,213,177, 50,124,132,201,100, 66, 89,139,150,189,242,114,185, -220,178,230, 71, 16, 4,193, 86,198, 89, 14,198, 75, 36,146,182, 58,157,110,165, 27,163, 91, 7,231,246,119,154, 99,147, 96,214, -235,246,157, 72, 7,126, 88,242,119, 19,128,179,247, 39,174,250,174, 87,175,122,239,125,254,237, 92,125, 65,150,226,211, 49, 47, - 71, 68,134,248,139, 36,170, 60,181,172, 89,179,254,101, 44, 50, 85,165,179,231,184,113,227, 54,255,126,254, 1, 33, 20,242,120, - 28,138,226,118,111,221,212,191,190, 15,229,227, 13,248,164,223,187,125,118,194,132, 9,173,103,206,156,217,195, 13, 78,216, 58, - 92,108,217,178, 5, 4, 65,144,238, 60,187, 7,113,172, 50,145,197,178, 44, 8,130,216,234,212,169,108,181,125,151,228, 36,182, - 56,149,229,167,221,154,106, 23, 85,227,199,143, 31, 67,211, 52,199,169,145, 40, 43, 96,202, 19, 49, 46, 61,187, 92, 46,255, 29, -192, 11, 4, 65,192,100, 48,152,190, 94,182,204,249,242,229, 50, 34,235, 88, 69,117,201, 98,177,128, 97, 24, 78, 82, 82, 18,215, -169,172,115, 1, 72, 0, 4,176, 44, 11,146, 36,175,185,144,159,205,197, 98,241,217,125,251,246, 73,219,183,111, 79,240,249,124, -208, 52,141,228,228,228,250,139, 23, 47,158,124,236,216,177,151,116, 58, 93, 75, 60,186,121,186, 43,239, 40,234,244,233,211,186, -198,141, 27,151, 43, 28, 53, 26, 13,167,105,211,166,189, 42, 16, 69,181,205,153,145,155,155,251,234, 11, 47,188,240, 86, 78, 78, - 78, 42, 77,211, 31, 1,104, 21, 16, 16,144, 52,116,232, 80,136, 68,162, 62,122,189,254,155,154,148,249,160,160,160, 33, 93,187, -118,197,170, 85,171,176,120,241,226,126, 0,142, 3,232,171,209,104,142,189,242,202, 43,240,245,245,125, 85,165, 82,109,172, 65, - 61,106,218,179,103,207,239,227,226,226,188, 15, 28, 56,128,200,200, 72, 20, 21, 21,225,131, 15, 62, 8,154, 51,103,206, 73,149, - 74,213,219,169, 94, 84,196,217, 82, 32, 16,108,220,182,109,155, 87,227,198,141, 27,243,120, 60,178,113,227,198, 80, 42,149, 48, - 24, 12,130, 5, 11, 22,180, 22,137, 68,127,125,243,205, 55, 27, 1, 12,173, 34,157, 36,128,249,235,214,173,123, 43, 54, 54,214, -119,204,152, 49,140,201,100,194,175,191,254, 10,138,162,192,229,114, 33, 22,139, 29,155, 87,243,120, 60, 52,107,246, 72,144,244, -189,149, 60,175, 26, 37,126,168,190,112,111,218,245, 88, 37,124,142,169, 15, 46,151, 11,161, 80, 8,161, 80, 8,129, 64,128,155, - 55,111,126, 46, 20, 10,151, 19, 4, 65,187,194, 73,252,163, 46,218, 2,184, 88,213, 57, 30,117, 13,121,156,237,167, 29, 97, 4, - 65,172, 0,208,167,164,219, 37, 19, 2, 2, 2,222,207,205,205, 77,115,149, 83, 46,151,251, 23, 20, 20,124, 35,151,203, 17, 28, - 28,236,232,191,235,213,171, 7,139,197,130,220,220, 92,176, 44, 11,149, 74, 5,177, 88,140,208,208,208,111, 98, 99, 99,119,196, -199,199, 23,148,203,105,197,226, 87, 70,125,246, 5, 69, 81, 36, 0, 80, 28, 47,175,105,159, 0, 17, 17, 17,232,222,189, 59, 12, - 6, 3,212,106, 53,162,162,162, 56, 4, 65,140, 35, 8, 66,202,178,236, 26, 0, 39,254,133,134,194, 10,157,225,191, 44, 59, 47, -106,223, 45,158,199,227,185, 36,180,108,247, 87,101, 65, 33, 45, 22, 11,120, 60, 94, 41,139, 4, 65, 16, 96, 24,166,212,247,118, -161, 85, 29,161, 62,117,234, 84,235,247,223,127,255, 86, 97, 97,225, 90, 84,115, 42, 97,220,184,113,143,248,123,204,152, 49, 35, - 35, 47, 47,143, 29,214,191,173, 36,245, 80, 86,246,115,126, 94,162, 64,111,239,134, 66, 63,153,111, 65, 65,193, 57, 91, 99,226, - 42,154,196,196,196,136, 54,237, 58,157,241,230,244, 69,243,218, 55,246,151,182, 9, 11,240, 11,241, 17,241,189, 72, 66, 39,164, - 45, 25, 50,153, 44,210,221,116,219,219, 5,177, 88, 12,146, 36,159, 38,139, 22,199, 46,178,148, 74, 37, 14, 28, 56,128, 65,131, - 6, 37,217, 69,136, 70,163, 65,118,118, 54,228,114,121,146,205,242, 81,229, 52,162,213,106,133,217,108,134,217,108,118, 8, 24, -167, 50,228, 16, 48,246,123, 41,138,186, 86,205,180,207,243,243,243,235,217,167, 79, 31,254,207,191,254,202,103, 89, 86,135,146, - 61,212,180, 44, 91,193, 6,217,101, 64,211,180,195,202,198,229,114,241,240,225, 67, 71,199,101,223, 91, 82, 40, 20,186,102,202, - 16, 8, 62,252,229,151, 95,164, 29, 59,118, 36, 10, 10, 10, 96,181, 90, 29,141,228,234,213,171,133,195,135, 15,175,151,152,152, -248,169,209,104,252,178, 26,207, 74, 84, 36,136, 0, 64, 42,149,210,112, 45, 98,118,149,156, 52, 77, 19,221,186,117,155,169, 80, - 40, 90,235,245,250, 5,174,100, 35,128,189, 25, 25, 25,206, 29,251, 95,169,169,169,250,145, 35, 71,138, 26, 54,108,216, 41, 37, - 37,165, 70,133,180,105,211,166, 93,184, 92, 46, 46, 92,184, 96, 4, 96, 31, 89, 39, 92,189,122,213, 56,116,232, 80, 65,253,250, -245,187,168, 84, 46,187,172, 52,109,222,188,249,209,160,160, 32,145,189, 13, 13, 12, 12,228,198,199,199,123,103,102,102,194,108, - 54,227,227,143, 63,198,224,193,131, 17, 16, 16,128, 25, 51,102, 4, 47, 89,178,228, 39,173, 86, 27, 83,153,209,154,207,231,111, -190,115,231, 78,164, 92, 46, 23,157, 63,127, 30,109,218,180,129, 66,161, 64, 78, 78, 14,180, 90, 45,114,114,114, 48,113,226,196, -160,255,253,239,127,161, 46, 88,178, 28, 34, 43, 62, 62, 94,181,115,231, 78,106,253,250,245,222, 92, 46,215, 33,180, 56, 28,142, - 67,104,217,247, 86,172,198, 76,131,202, 38,218,124,213,106,117, 77,252,220, 4, 0,248,206, 34, 75, 32, 16, 64, 32, 16, 64, 40, - 20,214,104, 95,214,103, 4,245, 8,130, 72,225,241,120, 2,177, 88,204, 35, 73, 18, 2,129,160,191, 76, 38,187,222,170, 85,171, - 86, 71,143, 30,125,224, 10,137,193, 96,216, 44, 16, 8,184, 65, 65, 65, 0,128,200,200, 72,180,105,211, 6, 58,157,206,170, 86, -171,225,235,235, 75,166,165,165, 65,175,215, 35, 59, 59, 27,225,225,225, 92,146, 36, 55,163,196, 15,249, 17,156, 77,202, 89, 11, - 96,173,253, 60, 32, 32, 32,215,217,210, 41, 20, 10, 81,175, 94, 61,100,102,102,194,219,219,155,154, 51,103,206,208, 95,127,253, -245,181,179,103,207,142, 3,176,197,137,234,203,103,216, 71,203, 46,178,156,255,254, 35,180, 6, 15, 30, 60,119,255,254,253,189, -202, 27,133,115,185, 92,143,249,186,216, 5,149, 84, 42, 45,107,181,130,213,106,173,200,162,229,246,239, 8,133, 66,209,148, 41, - 83,138,214,172, 89,227,182,216, 26,177, 42,213, 97,197,122,100, 24,217,178,229,217, 79, 63,253,116,200, 31,127,252,145,217,190, -113, 67,142, 36, 43, 77, 43,148,250,250, 34,172,193,160,241,175, 14,189,138,146,213,135,174,226, 78, 81, 81,145,232,185, 48,177, -137, 36, 13, 68, 3, 1,199, 91, 46,225, 9, 66,252,252,234,241, 76,198, 60,169,159, 31,223,104, 52,170, 80,201, 38,208, 0, 16, - 28, 28,124, 68, 36, 18,133,219,207,253,252,252,124, 88,150,133, 88, 44,134, 92, 46,247,162, 40,234,150, 83,229, 74,203,205,205, -237, 95, 85,194,124,125,125,143, 8, 4,130,112,146, 36, 65, 16, 4, 40,138, 2, 73,146, 32, 73,210,241,153,162, 40, 16, 4,129, -226,226,226,180, 7, 15, 30,244,119,225,121,105, 0,209, 4, 65, 36, 29, 56,112, 0,157, 58,117,194,161, 67,135, 48, 96,192, 0, -168,213,106, 36, 39, 39,163,103,207,158, 64,201,148,162, 75,112,118,126,183, 15, 10,110,222,188,233, 16, 46,206,135,183,183,119, - 77, 76,236,103, 70,140, 24,129,239,191,255,158,181, 13, 38, 36, 4, 65,180,241,241,241,185,121,227,198, 13,151,252, 96, 88,150, -133,217,252,207,173,246,206,203,230, 15,225,214,230,192, 20, 69,245,143,137,137, 33,212,106,181, 93, 64,130,195,225,128,162, 40, - 80, 20,133,239,190,251, 78,212,177, 99,199,207, 4, 2,193, 76, 30,143,167,177, 88, 44, 63, 27, 12,134, 5, 0, 84, 79, 83,139, -212,163, 71,143,233,233,233,233,131,195,195,195,247,213,128,134,181, 88, 44, 38, 0, 34,138,162,184, 30,104,163, 40, 91,217, 50, - 56,137,125,218,118, 46, 64,201, 52,177, 75, 8, 8, 8,248,233,224,193,131, 97,225,225,225,176, 88, 44,160,105, 26, 90,173, 22, - 9, 9, 9, 48, 26,141,160,105, 26,145,145,145,248,226,139, 47, 12,239,191,255,190,112,221,186,117,121, 90,173,118,116, 21,180, -239,239,216,177, 67, 34,151,203, 69,122,189, 30,247,238,221, 67, 76, 76, 12,138,138,138,160,211,233, 80, 92, 92, 12,179,217, 12, -141, 70,227,203, 48,140,169, 10,174,207,157, 69,214,228,201,147,175,241,249,252,152,119,223,125, 23, 25, 25, 25,142, 58,255,230, -155,111, 34, 56, 56,216, 81,151,108,109,178, 91, 13, 51,135,195,129, 64, 32, 0,143,199, 83, 53,104,208, 0, 4, 65, 8,211,210, -210,170, 51, 21, 39, 5,160,225,114,185,124,103,129, 37, 16, 8,112,225,194,133, 79,249,124,126, 69,214,172,138,234, 37,235,206, -249,147, 6, 65, 16, 43,120, 60,158, 64, 38,147,241,156, 6,156, 60, 47, 47, 47, 4, 5, 5,173, 2, 48,208,197,231,110, 39,147, -201, 28,237,123,219,182,109,145,158,158,190, 91,173, 86,143,205,203,203, 3, 73,146,155, 73,146,124,205, 62, 72, 45, 44, 44, 68, -253,250,245,219, 85,196,215, 53, 58,228, 45, 16,108, 41,139, 86,153, 1, 26,164, 82, 41,238,223,191, 15,157, 78,199,222,190,125, -155,152, 50,101, 10, 97, 50,153,126, 76, 76, 76, 60,135,146,213,246, 21,106,145,103, 4,238,251,104,217, 45, 90,174,118, 0, 4, - 65, 84, 57,154,176, 88, 44, 94, 81, 81, 81,229, 57,124, 17,229, 9, 45,219,116, 82,181, 10, 58,151,203,245,174,174,216, 42,139, -125, 59,183, 5, 47,254,226,227, 47,100,161, 13,159,155, 57,243,115,206,203, 47,191,124,126,211,166, 77,140,172,197,192,190, 39, -142,108, 9,254,230,131, 89,135, 14, 30, 60, 8,148, 56, 70,187,138, 51,251,247,239, 15,153,241,222, 84,124,241,225,251,135,165, -145, 1,124, 47, 66, 38, 17, 26,117,249, 94, 96,245,130, 38,205, 7,239,218,183, 47, 27, 64, 98,101, 36, 98,177, 56, 60, 37, 37, - 37,210,121, 33,129,201,100,130, 88, 44,198,137, 19, 39, 2, 69, 34, 81, 32, 0,232,245,122,180,106,213,202, 85,139, 73,248,173, - 91,183, 34,189,189,189, 81, 92, 92, 12,163,209, 8,139,197, 2,171,213, 10,130, 32,192,229,114,193,231,243, 33,145, 72,220, 93, -217,119, 5,192, 27,131, 6, 13,218,122,232,208, 33, 68, 69, 69,161,176,176, 16,169,169,169,118,145,229,150,143,150,221, 74,228, -236,143,197,225,112,240, 83,227,198,120, 51, 43,203, 33, 96, 86,248,248,224, 11,107,245,118,211,104,213,170, 21,123,230,204, 25, - 28, 62,124, 24,175,188,242, 10,177,103,207, 30, 51,195, 48,188,172,172,172,107, 89, 89, 89, 46,113, 88,173, 86, 71, 90,237,237, -182,179,192,114, 87,104,209, 52,237,205,231,243, 97, 48, 24, 96,183, 60, 56, 31,141, 26, 53,130, 82,169,228,104, 52, 26, 78, 86, - 86,150,120,254,252,249,239,158, 60,121, 82, 94, 84, 84,244,250,147,108,133,214,172, 89, 19,254,230,155,111, 62,228,112, 56,236, -128, 1, 3,198,164,165,165,189, 42,151,203,143,255,241,199, 31,203, 0, 52,117,151, 47, 32, 32,224, 50,135,195, 9,211,104, 52, -188,237,219,183, 91,138,138,138,120,129,129,129,185,246,182,195,158,215, 22,139,197,165,149,203, 1, 1, 1,151, 21, 10, 5,111, -229,202,149,150,130,130, 2, 94,112,112,112,174,157, 71,165, 82,241,182,111,223,110,209,104, 52, 60, 31, 31,159,203,106,181,186, - 74, 62,133, 66, 49,122,220,184,113,167,143, 31, 63, 30, 64, 81, 20,210,210,210, 80, 80, 80, 0, 95, 95, 95,108,222,188, 25,225, -225,225,216,177, 99,135, 82,169, 84, 78,250,250,235,175, 63,179,137,172,170,124,180,122,118,234,212, 41, 92,165, 82,193,215,215, - 23, 58,157, 14,151, 47, 95, 70,203,150, 45,145,149,149, 5,146, 36,225,235,235,139,213,171, 87, 23, 19, 4,161,172,140, 72, 36, - 18,189, 26, 27, 27,235, 11, 0,177,177,177,190,177,177,177,229,118,112, 93,186,116,193,170, 85,171,202, 10, 45,119, 6, 6, 14, -171,147,147, 56, 50,116,238,220, 25, 39, 79,158,156,229,166, 56, 50,217, 69, 91, 89,107,150, 64, 32,112,123, 49,141,213,106,229, -161,196,165,129,112,229,252, 41, 64, 47,145, 72,196, 43,251,101,113,113, 49, 79, 46,151,247,112, 67,248,250,139, 68, 37, 6,167, -240,240,112,168,213,106,198,100, 50,141,218,178,101,139, 5, 0,162,163,163, 71, 49, 12, 99,160,105,154,226,243,249,208,233,116, - 8, 10, 10,242,175,196, 54,250,209,222,159,231,135,148,245,209,146,203,229,136,142,142,134,209,104, 68,118,118, 54, 18, 18, 18, - 44, 12,195,108, 93,179,102,141, 53, 48, 48,240,191,195,134, 13,163, 18, 19, 19,223, 1, 48,189, 34, 45,242,140, 89,179,226, 43, - 20, 90, 54, 5,121, 18, 64,239,178, 15, 89, 86,252, 84, 38,180,170,154, 58,228,243,249,170,135, 15, 31, 74,156, 59, 21,154,166, - 17, 26, 26,106,101, 89,150, 40, 79,104,213,196, 20,204,229,114,189, 63,249,228, 19,213,154, 53,107, 70,223,191,127,127,174, 43, -255,179,253,157,230,216, 84, 70,100,173, 93, 28,183,106,229,226,249,178,187,135,127,196,250,111,151, 50, 12,131,196,214,173, 91, -247,208,106,181, 28, 31,137, 5, 10, 21, 14,217, 68,150,171,162,144, 4,240,195,197,139, 23, 19, 7, 14, 28,248,231, 15,191,236, -146,101,221,187,119, 78,160, 81,100, 75,155, 68,114,120,245,194, 95, 43, 50, 24,120,163, 70,141, 10, 4, 48,172,170, 70, 76,165, - 82, 33, 39, 39,167,172, 0,210,107, 91, 69, 0, 0, 32, 0, 73, 68, 65, 84,195,205,155, 55, 31,185,215,165,196,145, 36, 24,134, -193,206,157, 59, 33, 22,139, 33,145, 72, 74, 29,118,145, 85,205,133, 10,183, 0, 96,192,128, 1, 80, 42,149,240,242,242,114, 57, - 93,101,197, 11,203,178, 48,153, 76, 48,153, 76, 48,155,205, 12, 0, 46,135,195,193,196,140, 12,135,149,199, 29, 1, 83, 22,173, - 91,183,102,207,158, 61,139, 63,255,252, 19, 58,157, 14, 43, 87,174,132, 92, 46,127, 30,192,231,238,114, 57, 57,233, 51, 26,141, -134,171,209,104, 28,214, 65, 46,151,235,176, 30,184,104,201,227,113, 56, 28,199,104,212,126, 56, 91,181, 40,138, 66,112,112, 48, - 66, 66, 66,176,118,237, 90, 94,195,134, 13, 7, 63,201, 22,104,201,146, 37, 77, 86,172, 88,177, 97,211,166, 77,135, 70,143, 30, -253,107,114,114,242, 4, 31, 31,159,107, 39, 78,156,152, 47, 16, 8,172,213,172,223, 97, 89, 89, 89, 65,206, 95, 89,173, 86, 49, - 77,211, 14, 97, 91, 92, 92,236,242, 0,131,203,229,134,165,164,164,136, 1, 96,254,252,249, 92, 0, 98,187, 51,184,157,179,184, -184,152,219,178,101,203, 48, 87,203,250,233,211,167,123,244,235,215,239,236,209,163, 71,253,194,195,195,145,153,153,137,204,204, - 76, 52,105,210, 4, 11, 23, 46,212,105, 52,154,110, 0,110,105,181,218, 61, 46,114,134,250,249,249,113, 31, 62,124, 8,154,166, -209,174, 93, 59,172, 94,189, 26,163, 70,141, 66,171, 86,173,160,209,104,144,146,146,130,141, 27, 55,250,241,120,188, 74,219, 14, -189, 94,191, 39, 62, 62,190,126, 89,139,214,152, 49, 99, 36,185,185,185,142, 50, 25, 23, 23, 87,106, 10,209,157, 54,217, 54,181, - 85,225, 81, 29,208, 52, 45, 21, 10,133, 26,129, 64,192,183,251,103, 37, 36, 36,184,109,205, 42, 51, 0,116,231,252,137,193, 46, - 90,203,233, 91, 17, 18, 18,226, 50,143, 64, 32, 32,236,109, 35, 77,211, 80,171,213,140, 92, 46,119, 76,239, 39, 37, 37, 49, 17, - 17, 17, 12, 69, 81, 20,159,207, 7, 65, 16, 16,139,197, 21, 54,248, 44,195,198,189, 60,234,243, 82,171, 14,167,125, 2,152,205, -102, 36, 37, 37,193,108, 54, 35, 33, 33,193,242,245,215, 95,103,169, 84,170,105, 0, 56, 71,142, 28, 25, 55,107,214, 44, 42, 40, - 40,168, 95, 94, 94, 30,170,210, 34,207,144,216,122,196,202,101,239,133, 78, 14, 30, 60,152,176, 45,173, 36,236,194,201, 29,161, -101,171,124, 85,246,188, 4, 65, 32, 59, 59,219,113, 30, 20, 20,228,246,111,185, 10,127,127,127, 93,151, 46, 93,188, 21, 10,197, -158, 37, 75,150, 84,203,146,181,118,113,220,170, 69,243,230,200,148, 55,206, 35, 35, 43, 27,202, 60, 75,226,153,107,247,119, 3, -216, 13, 0, 88,215,226, 36,241, 86,234,119,174,114, 54, 15, 16,181,229,242, 56,187, 95, 24, 56,184,254,200,216,233,228,219,111, -191,221,125,220,184,113,234,209,163, 71,191,231,229,229,213,212,108, 54, 23,238, 58,112,224,193,200,145, 35, 27, 50, 12, 51, 14, - 85,196, 28,209,235,245,105,189,123,247,118,206, 79,233,177, 99,199,130, 31, 60,120,128,169, 83,167,230,103,102,102,170,156,239, -117, 37,141,102,179, 57,173,109,219,182, 21, 78, 23,218,167, 20, 1,160,168,168, 40,205,141, 44,125, 29, 54,199,247,130,130, 2, -220,188,121, 19, 28, 14, 7,157, 59,119,198,153, 51,103,208,189,123,247, 36,119,172, 90, 6,131, 1,225,225,225, 48, 24, 12,208, -233,116,197, 0, 4,155, 27, 54, 4, 0,188, 83, 80,128,203, 95,127,141,243,139, 22,193,185, 60,187,138, 54,109,218,176,231,207, -159,199,181,107,215, 96, 52, 26, 49,105,210, 36, 0, 32,108,101,215,157,144, 25,141, 41,138, 26, 48,112,224,192, 80, 0,208,233, -116,196,197,139, 23, 33, 20, 10, 29,117, 97,223,190,125,200,204,204, 4, 65, 16,240,243,243, 11, 43, 44, 44,108, 8,224,126, 37, -102,127,226,254,253,251,248,234,171,175, 96,181, 90, 49,107,214, 44, 68, 70, 70, 58, 4, 86, 90, 90, 26,230,207,159, 15,134, 97, - 48,103,206, 28, 52,105,210, 4, 22,139, 69,136,106,134,208,240, 4,102,204,152,113,119,247,238,221,135,210,211,211, 95, 90,188, -120,113, 47,130, 32,172, 51,103,206,252, 74, 42,149, 50, 53,225, 45, 84, 23,225,230,157, 52,135, 16, 42,123, 4, 6,200,220,230, -187,125, 47,221,241,255, 12,227,204,199,192, 95,230,231,110, 18,139, 45, 22,139,238,181,215, 94,243,221,185,115, 39,209,164, 73, - 19,252,253,247,223,118,203, 80, 49,220, 15,233,144,169, 84, 42, 35, 41,138,226,221,185,115, 7, 17, 17, 17,232,212,169, 19, 22, - 44, 88, 0,133, 66, 1,154,166, 17, 20, 20,100,181, 88, 44, 73,102,179,249, 84, 21, 92,113,147, 39, 79,230, 1,120,203,102,217, -106, 61,109,218, 52,235,210,165, 75,145,148,148,228,176, 96, 57, 59,195,187, 59,117,232,108,117,114, 62, 18, 18, 18,102,241,249, -124, 22,192, 5,184, 31,232,217, 84,214,162, 85, 29,107, 86,109,161, 54, 87, 50,202,229,242, 4,111,111,239,193,133,133,133,165, -172, 90,221,186,117, 51, 7, 7, 7,159,118,149,199,203,203,171,144,162, 40,127, 0,200,204,204,132, 68, 34,225,221,187,119,111, - 17, 74,130,103,163, 97,195,134,139,148, 74, 37,175,161,173, 61, 13, 9, 9,129,201,100,170,208,141,229,220,149,220, 31, 1,252, -104, 63,151,201,100,217,106,181, 90,180,116,233, 82,237,162, 69,139,244, 12,195, 24, 1,156, 80,169, 84,142, 56, 90, 57, 57, 57, -106, 46,151, 43,243,245,245,173,103, 23, 90,229,105,145,103, 12, 21, 91,180,108, 74,146, 45, 43,136, 8,130,120,196, 65,189, 10, -161, 85,165,200, 98, 24,166,148,149,193,238,240, 94,222,111,217, 58,245,106, 77, 29,218, 68,150,112,215,174, 93,155,151, 44, 89, -114,193,213,255,115,246,209, 90,183,108,222, 98,187,200,186,250,231, 81,236, 73, 85, 43,102, 45, 90,190,162,186,111,160, 69,128, -184, 77,112,176,255,201,175, 23,198, 73,239, 30,222,136, 95,215,253,143,189,122,233, 82,199, 75,151, 46,141,157, 58,117,106, 3, - 91,193, 82, 2,248, 11,192, 72,184,176, 74, 39, 51, 51,179,127,153, 78,248, 22,143,199, 11, 22,139,197,200,204,204,212,222,190, -125,219,237, 41, 25,133, 66,209,191, 22, 10, 32,199, 46,178, 20, 10, 5, 82, 82, 82,208,167, 79, 31, 0,192,153, 51,103,208,173, - 91, 55, 36, 38, 38, 34, 38, 38, 38, 9, 64, 7, 84, 17,168,213, 98,177,168, 90,180,104,225,176,110,169,213,106, 43, 0,196,102, -103, 35, 94, 46, 7,135,195,193,249, 69,139, 48,219, 98,193, 2, 55, 5,124,219,182,109,217,139, 23, 47,226,193,131, 7,160,105, - 26, 67,134, 12, 65, 53, 43,125,171,230,205,155, 31, 59,113,226, 68,160,151,151, 23,116, 58, 29,180, 90, 45,198,143, 31,143, 81, -163, 70,193,104, 52, 98,251,246,237,216,187,119, 47,188,189,189,161,211,233,160,211,233,252, 6, 13, 26,116,246,214,173, 91, 61, - 1,220,169, 64,104,177,253,251,247,199,233,211,167, 65, 81, 20, 58,118,236,136,130,130,127, 22, 3, 5, 7, 7,151,119,141,122, -146, 66,139,195,225,176, 9, 9, 9,139,123,245,234,133,244,244,244,151, 98, 98, 98, 86, 78,152, 48, 33,179,166,188,126, 62,222, -104,219,178, 49,140, 70, 35,140, 70, 35, 66, 67, 67, 81, 84, 84,132,187,119,239,194,104, 52, 34, 56,200,215,109,190,232, 86, 77, - 28,124, 65, 65, 65,208,233,116,184,127,255, 62, 76, 38, 19, 2, 2,220, 18, 90,245,251,247,239,255,199,214,173, 91,253, 55,110, -220,104,234,221,187, 55,127,229,202,149,132, 84, 42,133, 83,199,226, 46, 18,206,156, 57, 19,222,175, 95,191,102, 55,110,220, 64, - 66, 66, 2, 76, 38, 19,162,163,163,113,251,246,109,116,233,210, 5, 90,173,246,194,165, 75,151,246,186, 98, 24, 6,240,217,228, -201,147, 97, 23, 91,167, 79,159, 70,118,118, 54,188,189,189, 31, 17, 90,118,223, 71,219,170,241, 80, 87, 18,107, 23, 68, 78,150, -167,217,190,190,190,102, 0, 43,170,105,125, 2, 0,164,167,167, 11, 90,183,110,109, 20, 10,133,124,155,104, 91, 94, 19, 62, 79, -194, 3, 43, 25, 43, 68, 72, 72,200,180,128,128,128,126,141, 26, 53, 66,110,110, 46,143,207,231,163, 91,183,110,230, 14, 29, 58, -152, 67, 66, 66,222,113,149, 71, 32, 16,220,224,241,120, 61, 75, 6, 19, 12, 30, 62,124, 8,150,101,103,181,106,213,234,253,162, -162, 34, 20, 20, 20,240,165, 82,169, 99, 80,221,172, 89, 51, 24,141,198, 27,110, 88,222,226, 34, 34, 34, 62,227,241,120, 11, 20, - 10, 69,121, 97, 33,248,190,190,190, 82, 30,143, 7,179,217, 92, 74,108,150,213, 34,207,186,200, 42, 37,180,156, 84,100, 41,161, -227,142, 69,203, 21,171,129,221,193,222,249,220, 46,234,202,254, 86,117, 99,104,249,248,248, 24,237, 34,107,193,130, 5, 23,170, -195,177, 99,235, 22,185,143,181,184,126,214,133,131,184,117, 45, 17,187, 83, 84,138, 89,139,150,191,247,242,176,215,115,203, 10, - 51, 87, 16, 25, 40,110, 21, 28,228,127,114,217,146, 69, 82,229,141,243,200,206,201,193,193, 11,151, 18,205, 64, 10,128, 89,158, - 52, 45, 3, 37, 83,135, 20, 69, 61, 77, 5,214,225, 12,159,157,157,109, 23, 89,209, 0,208,189,123,247, 36,155,200,130,171, 22, - 45,149, 74, 85,118,203,154,126, 0, 2,236,207,207,225,112,208,237,179,207,220, 22, 89, 0,216,196,196, 68, 40,149, 74,251, 72, -177,186, 34, 11, 33, 33, 33, 31,158, 56,113, 34,240,135, 31,126,208,108,218,180,169,192,106,181,114,219,182,109, 27,214,190,125, -123, 98,243,230,205, 0,128,145, 35, 71, 98,214,172, 89,184,126,253, 58, 36, 18, 9,186,119,239,206,204,157, 59, 55,104,218,180, -105,239,228,230,230,190, 87,110,239,104,181,242,132, 66,225,113, 0,207,223,184,113, 3, 0,206,162,100, 11, 39,187, 21,161,194, -107,174,116,190, 69, 69, 69, 92,111,111,239,114, 67, 67,240, 74, 70, 67,238, 90, 32, 28,156,127,254,249,231, 87,203,150, 45,219, -253,193, 7, 31,220,169, 33,103,185, 22,173,193,131, 7, 67,111, 52, 35, 35, 87, 13,134,161,161, 55,231,185,205,231,108,209, 26, - 60,120, 48,138, 13, 38, 60,204, 86,130,166, 25, 20,233, 93,238,203,197, 47,188,240,194,145,159,127,254, 57,228,220,185,115, 96, - 24,198,122,251,246,237,251,175,189,246,154,116,230,204,153,254, 53, 88,100,244,237,235,175,191, 62,252,207, 63,255, 84, 54,107, -214, 76,118,225,194, 5,228,229,229,129,166,105, 60,255,252,243,224,243,249, 15, 23, 45, 90,196, 3,240,173,171,239,198, 38,182, -204,151, 46, 93,122,243,252,249,243, 50,153, 76,198,183, 54,111,142,236,163, 71,177,115,231,206, 71,254, 97,221,186,117,128,139, - 81,248,237, 22,167,139, 23, 47,122, 68, 96,149,234,169,249,252,106, 79, 63, 62,171,184,120,241, 98,230,219,111,191,221, 82, 42, -149,174,232,209,163, 71, 31,127,127,127,210,207,207, 47,161, 94,189,122,239,183,109,219,214,229,217, 5, 46,151, 59, 65, 34,145, -220,165,105,154,210,106,181,208,233,116, 37,141, 52, 77,243, 73,146, 68,195,134, 13, 29,125, 73,199,142, 29, 17, 18, 18,194,164, -166,166, 78,112,149, 63, 63, 63,191,212, 42,196,114, 48,185, 91,183,110, 28,163,209,136, 7, 15, 30,156,113,190, 80,158, 22,121, - 70, 16, 91,169,248,178, 63,148,243,195,213,171, 87, 47,221, 98,177,176, 41, 0,251,215, 95,127,177,177,177,177,149, 30, 6,131, -129, 13, 10, 10,202, 46,167,243,131, 51,167,209,104, 44,245,127, 70,163,145, 13, 14, 14,102,244,122,253, 35,156,122,189,158, 13, - 11, 11,203,172,140,179, 28,140,191,114,229,202,154,217,179,103,119,114, 35,131, 28,156,236,218,230,236,198,141, 27,255,195,178, -108,175, 30, 45,195,175,141,104, 27,204,118,139, 12,202,218,187, 99,235, 40,150,101,123,149, 61,236, 1, 78, 43,227,108, 30, 44, -105,209, 55,170, 65,225,213,195,219,216, 19, 75,223,101,151, 13,137,100, 99,194,188, 85,205, 3, 68,238,238, 17, 83,229,110,233, - 81, 81, 81,183,172, 86, 43,107, 50,153,216,168,168,168,219,158,224,172, 6, 42,227,108,135, 18, 95,182,215,203,249,174, 93, 13, -210,121,149,101, 89, 86,169, 84,178, 90,173,150, 53, 26,141, 44,195, 48,172, 51, 0, 92,117,129,147, 53,155,205,108, 97, 97, 33, - 11,215,125,238,202,229,148,203,229,247,239,221,187,199, 62,247,220,115,233, 54,115,252, 52,157, 78,199,150,133, 78,167, 99,251, -244,233,195,222,190,125,155,141,136,136, 48,220,190,125,155,149,203,229, 55,171, 72,103,163,250,245,235, 31, 15, 8, 8, 72, 0, - 16,233,198,181, 74,243,115,251,246,237,141, 89,150,157,196,178,108,108, 5,199, 36,150,101,155, 63,105, 78, 91,254,230,178, 44, -203, 22, 23, 23,179, 74,165,146,205,202,202, 98,139,139,139, 89,173, 86,203, 94,185,114,133, 61,119,238, 28,123,237,218, 53, 86, - 38,147,229,186,194,105,231, 51,153, 76,172, 70,163, 97,243,242,242, 88,189, 94,207,234,116, 58, 54, 57, 57,153,189,124,249, 50, -123,227,198,141,242,248, 30,225,244,247,247, 95,151,147,147,163, 61,123,246,108,241,218,181,107,139, 67, 66, 66,110, 0, 8, 7, -208,212,207,207, 47,231,221,119,223,101,189,188,188,210,170, 89,143, 90,114,185,220, 43,139, 23, 47,190,184,127,255,254,220,189, -123,247,154, 54,108,216,144, 49,117,234,212, 83, 28, 14,231, 10,128,150,213,172, 71, 65,190,190,190,103, 47, 92,184, 64, 23, 22, - 22,178, 42,149,138,213,104, 52,172, 78,167, 99,245,122, 61,107, 50,153, 88,139,197,194,158, 58,117,138, 13, 14, 14,118,158,150, -252,168,146,129,245,116,150,101, 63,100, 89,150,227,233,182,206,137,187,135,167, 56, 61,209,214,145, 36,105,182,181, 29,157, 75, - 78, 43, 63,127, 82,233,236,219,183,239,156, 81,163, 70,177, 3, 6, 12, 96,163,163,163, 31, 57, 98, 98, 98,216, 41, 83,166,176, -251,247,239,103,191,254,250,235, 57, 30, 72, 39, 7, 37,139, 94, 22,246,237,219,215,114,250,244,105,118,228,200,145, 44,128,254, -149,105,145,127,131,224,178,135,119, 32,156,255, 2,128,217,108, 78,191,117,235,150,188, 25, 77, 83, 0,240,221,119,223, 61, 98, -153,114,198,233,211,167,105,130, 32,238, 86,246,235,102,179, 57,253,196,137, 19,193,171, 86,173,226, 58,153,128, 65,211,180, 53, - 43, 43,139, 92,185,114,101,169,251, 79,158, 60, 73,211, 52,253,208,205,135,220,216,174, 93,187,141,158,200,173, 83,215, 31,188, -127,228,224,111, 1,157, 59,245, 80, 73,101,178,114, 71, 97,219,223,105, 14,226,173,202,173, 90, 4,135, 92,176,120, 97,156,175, -125, 10,242,151,164, 28,149,193,200,244, 73, 85,232,175,122,250, 13,107,181,218, 7,246,149,128, 58,157,238,225, 83, 88, 8,175, -160, 36,198, 21, 93,230,187, 14,168,161,211,169,213,106,133,143,143,143,195, 26, 90, 13,139, 40,107,183,176,218, 95, 93, 77,210, -195,178,236,159,201,201,201, 17,227,199,143,247,222,180,105,211, 61,134, 97,184, 19, 39, 78, 52,135,132,132,240,206,156, 57, 99, - 1, 64,244,234,213,139,147,147,147,195,102,102,102, 42, 95,121,229,149,162, 55,223,124,211,255,175,191,254,226, 91,173,214,170, -130, 22,254,157,158,158,222,183, 26,215, 42,197,136, 17, 35,238,161,230,219,216,212, 58,167, 29, 74,149, 6,247, 30,100,218, 34, -152, 91,193,164,229, 58,252,170, 44, 22, 26, 74, 77,129,219, 22,173,187,247, 51,109, 91,140, 49, 96,152, 44, 27, 95,137, 67, 60, - 91, 88, 92,117,111,194,225,116,159, 59,119,238, 64,146, 36,201,243,231,207, 27,151, 44, 89,146,158,159,159, 63, 4,192, 67, 0, - 40, 44, 44,236,189,113,227,198,159, 92, 8,229, 80, 17, 82, 44, 22, 75,151,143, 62,250,232, 61, 0,221, 1, 52,176,113,159,177, - 89,178,170, 27,193, 60, 79,165, 82,189, 56,112,224,192,163, 20, 69, 53,116,170, 71, 1, 0, 20,246,122,193,178,108, 80,110,110, -238, 75,174, 16, 18, 4,177,188,182, 26,146,218,228,174, 97, 59,244, 76,172,100, 60,126,252,248,151, 67,134, 12,225,132,135,135, -127, 26, 30, 30, 78, 22, 22, 22, 66,171,213,130, 36, 73,132,132,132, 32, 42, 42, 10, 33, 33, 33,214, 27, 55,110, 44,252,248,227, -143,171,140,201,215,162, 69,139,198, 22,139,229, 57,146, 36, 27, 3,104,204,178,108, 99,130, 32, 26, 3,144, 1,128, 84, 42,149, - 70, 68, 68,112, 58,119,238,140, 78,157, 58,225,228,201,147,216,177, 99,199,143, 0,142, 56, 91,179,202,106,145,167, 1, 41,237, -192,182,188, 2,226,122, 12,122, 17, 86,156,100, 73,244,142, 74,116,196,217, 43, 43,178, 42,222, 84,186, 28,211, 95,255,231,159, -127,222, 81,225, 92,232, 84, 30, 84, 85,249,242,243,243,251, 79,152, 48,161, 20, 39,195, 48,198,130,130,130,183,187,118,237,186, -154,162, 40, 65,153, 2,155,150,151,151,247, 88,247,234, 43, 27, 71,171,255,192, 87, 21, 53,229,244,226,145,207,221, 58,240, 61, -114,243, 20,248, 37, 41,167,176,200,196,244,190,173, 40, 78,174,141,244,167,165,165, 13,120, 6, 20,127,121,162,181,166,155,103, -231,187, 16,144,180,170, 61,234, 8, 91, 56, 17,143, 84,242,156,156,156,165,159,125,246,217,139, 11, 23, 46, 12, 60,116,232,144, -212, 62, 64, 25, 58,116,104, 94,114,114,114, 15, 0, 2,131,193,112,108,225,194,133,129,113,113,113,254, 0,252, 1, 96,208,160, - 65,185,185,185,185,171, 80,135, 74, 97,177, 88, 50,162, 90, 52,115, 12,252,156, 67, 58, 56,127,166,105, 58,195, 29,190,242,120, -156,207, 25,134,169,148,143,162,168, 15, 58,117,234, 68,125,240,193, 7,185,135, 14, 29,178,111,164,235,172,208,110, 85, 17,148, -212, 21, 24, 1, 44,177, 29,158,132, 78,169, 84,118,113,243,127,152,186,210, 88,238,128,210,157,243, 39,130, 61,123,246,124, 62, -114,228,200,141, 50,153,108, 75,227,198,141,155, 5, 7, 7, 75, 69, 34, 17,140, 70, 99,145,201,100,186,121,235,214,173,209,159, -127,254,249,223, 46, 89, 56, 54,110,164, 0,240,172, 86,171,144, 36, 73, 9, 0, 41, 65, 16,126,118,161, 69, 16, 4,204,102, 51, - 30, 60,120,128,217,179,103, 51,199,143, 31,255, 26,192, 28, 55, 6,174, 29, 0, 4, 58,181,227,129, 0, 76, 40, 9, 96,155, 79, - 16,196,165,218,206, 47,194,138,147, 45,175,128, 72,105,135,242,250,137,202, 55,149,174,168,194,229,231,231,119,241,116, 37,174, -136, 51, 63, 63, 63,252,105,169, 33,227,140, 75,182, 97,221,146, 82,251, 28,218, 69, 88,121,231, 85, 65,173,167,167,126,123,228, -250, 82, 35,205, 90,205,180,245,191,183,243,139, 83,234,218, 33,143,227, 5, 79,213, 37, 15,166, 41, 57, 53, 53,181,235,212,169, - 83, 63, 23,139,197, 29, 1,160,184,184,248,124, 86, 86,214, 60,216, 86, 21, 86,117,189, 14, 21, 67,161, 80,180,127, 26,249, 76, - 38,211,251, 93,187,118,253,134, 97,152,101, 52, 77,159,249,127,240, 42, 12,117,165,241,217,197,175,191,254,250, 55,128, 46, 0, - 48,124,248,112, 10, 0,118,236,216,225,182,120, 30, 63,126, 60,195,178,172,217, 86, 30,116, 40, 89, 93, 88,104,111, 83,117, 58, - 93, 97, 86, 86,214, 13,134, 97,110, 0,248, 9,238,175,184, 13, 36, 8, 98, 63,203,178,131,109,194,109, 63,203,178,131,157,191, -171,109,171, 86, 21,183, 84,237, 12, 95,135, 18,236, 72, 1, 81,118, 42,176,170,243,170,112, 43, 87,151, 0, 32,166, 46,119,255, - 95,226, 94, 86, 86,214,184, 26, 92,175,195,179,135,135, 38,147,105,200,255,163,231, 85,215,189,242,127, 73,255, 87, 13,129,101, -199,141, 27, 55,106,205, 69,224, 73,163,229,149,210, 3,240,178,231, 78,136, 45, 79,120,213, 9,173, 58,212,161, 14,117,168, 67, - 77,160,170,203,130, 58,252,155, 97,247,205,178,159, 87,224,163, 85,214, 63,203,113, 78,160,226,149, 3,238,236, 74, 94,157, 85, - 18,199,234, 56,235, 56,235, 56,235, 56,235, 56,159, 56,167, 47,128, 8, 0,139,171,184,175,236,234,194, 92, 0, 10, 0,150,186, -252,172,227,172,129,126,112, 9, 44,203, 14,170,108,234,144, 32,136, 3,181, 37,180, 28,206,240,237, 48, 55,234, 10,230,218,207, - 93, 21, 90,181,141,126,117,156,117,156,117,156,117,156,117,156,117,156,117,156,117,156, 53, 20, 90,125, 62,254,248,227, 79, 80, - 18, 26,131,253,248,227,143, 63, 97, 89,118, 80,201, 37,118, 80,109,254,246,245, 24,244, 74,105, 7,214,126, 92,143, 65,175, 10, -110,141,117, 58, 28,168,155, 58,172, 67, 29,234, 80,135, 58,212,161, 14, 79, 59,206, 46, 90,180,168,120,209,162, 69,118,199,247, -124, 0,132,205,194,149, 95,155, 63,108,155, 38,116,101,161, 84,229, 91,240, 60, 1,132,146, 28,222, 24, 46, 79,208, 7,172, 53, - 10, 0, 64, 82,215, 25,147,225, 15,154, 54,111, 1,144, 85, 93,226,230, 64,139, 38,190,162,189, 70,134,225,165, 23,153,134,167, -150,108,115,224, 54,134, 3,221, 4,124,254,239, 2, 95, 95, 81,121,215,141, 42,149,222,104, 50,189,184, 3,248,179,174, 14,212, -161, 14,117,168, 67, 29,158, 17, 72,252,252,252,142,147, 36, 25,110,255,194, 57,238, 96,217, 24,132, 12,195,100, 43,149,202, 23, - 81, 50, 85,252, 56, 57,157,255,223,132,106,246,229,158,134,187, 83,135, 28,160, 84, 20,214,199,178, 99, 54,197, 21,188,233,237, -227,187,224, 63, 19,222,247,143,108,218,140,168, 95,191, 30,192, 2, 15,211, 51,130,239,222,185,221,247,215, 77,223,206,208,168, -149,179, 45, 70,227,247,238,114,183, 0, 36, 13,188, 4,103,190,255,248, 13, 95, 14,104,188, 62,127,235, 97, 66,107,174,127,163, -100,185,169, 91, 34,203,215,223,255,200,162, 99,199, 68,126,109,218,148,186,198,178,108,201,254,122, 87,175,138, 62,125,241,197, - 35,195,149,202,254,117, 98,235, 95,137, 16,169, 84, 58,141,203,229,246, 54,155,205,225,124, 62, 63,157, 97,152,132,194,194,194, - 21, 0, 50,235,178,231,223,141,102, 33,146, 30,205, 26,135,111,205,202,201, 77,210, 24, 76, 19,111,101,105,149,117,185,226, 54, - 42,219, 95,243,137,237,189, 9, 0, 94, 94, 94,151, 73,146, 12,115, 22, 1,246, 61,123,237,231,101,255, 90,173,214,191,149, 74, -101,215, 74,104, 27,203,100,178,213, 0, 58, 84, 21, 48,217, 22,155,237,146, 82,169,124, 27, 21,175,214,243,246,243,243,251,146, - 32,136, 17, 36, 73, 82, 85, 61,147,213,106,101, 88,150,221, 94, 88, 88, 56, 7, 64, 81, 69,247,249,249,249, 29, 75, 77, 77,237, - 16, 20, 20, 84,165,149,134,166,105, 60,124,248, 48,176, 99,199,142,167,148, 74,101,243,218,228,124,220, 90,164,186,168,100,213, - 97,133, 5, 29, 64,169,253,133,106, 53, 34, 43, 79,232,181,183, 75,207,254,125,166,188,247,129,228, 74,242, 77,252,126,242, 28, - 52, 58, 35, 40,146,132,175,183, 24, 77,155, 62, 71, 44,143,223, 25,240,227,218,229,203,206,159, 62, 58,200,160, 83,191,226,150, - 76, 23,115,102,207,122,173,163,196, 95,198, 0, 86, 6, 31, 14,108, 43,249,116,127,210,108, 20,211,159,184, 45,178,142, 31, 23, -231,229,230, 34, 46, 52, 20, 28,154,134,144, 36, 33, 36, 8, 8, 73, 18, 18,161, 16, 3, 54,108,192,188, 67,135,196,159,191,244, - 82,157,216,250,151,193,203,203,107, 66,104,104,232,146,245,235,215,251, 55,106,212, 8, 18,137, 4, 74,165, 50,224,214,173, 91, -237,166, 79,159, 62, 46, 59, 59,251, 51,141, 70,179,174, 46,167,254,189,176, 90, 49,230,135, 5,111,215,203, 78,187, 83,111,242, -194,109, 77, 9,127,166,247,205, 2,125, 78, 93,206,184,140,118, 0,146, 80,254,254,165,149, 93,171, 16, 66,161, 48,215, 96, 48, - 4, 85,118, 15,159,207,207, 51,153, 76,193, 85,113,145, 36, 25,150,153,153, 25, 36, 22,139,193, 48,140,109, 55, 0,171, 99, 32, -237,188,251,137, 45, 80, 45,154, 55,111,110,174,140,211,219,219,251,187,188,188,188,126,246,125, 2,157, 4, 85,185,200,204,204, -236,215,178,101,203,239,138,138,138, 94,172, 64,188,124,249,222,123,239, 77,107,213,170,149,221, 10,100,219, 5,161,228,175, 66, -161,192,212,169, 83, 29,191, 97,181, 90,113,244,232,209,247, 38, 76,152,128,194,194,194,233,149, 60,123,120, 80, 80, 16, 97,219, - 80,188, 66,204,157, 59, 23,115,231,206,197,183,223,126, 75,112,185, 92,223, 42,242,211, 35,156,143, 75,139, 84,199,130, 85, 69, -100,248, 3, 40,237,155,117,224, 17,161,245, 56, 64,113, 5,255,237,208,181, 95,239,169,211,102, 73,182,253,118, 2,183,110, 92, - 69,234,153,159, 75,221,211,254,197, 9,200, 81, 20, 97,194,148, 15,189, 8,138,211,251,244,177, 61,255,181, 24,245, 63,184,104, -205, 10, 14, 23,240,223,237,220, 49,138,155, 41,186,133, 16, 63, 17,186,199, 52,225,214, 63,114,237, 93, 29,232,111,110,148,172, -146,113, 75,100,173,127,227, 13,244,176, 88, 16, 68, 81,160, 8, 2, 20, 0,146, 32, 96, 48, 26,113,105,204, 24,116,220,188, 25, -115,246,237, 19,127,249,242,203,110,137, 45,137, 68,114,133, 32, 8, 63,173, 86, 59, 8, 37, 27, 75, 63, 11,104,233,229,229,117, -128,101,217, 66,157, 78,215,238, 41, 74,151, 28, 37,115,244,101, 71,199, 60,148,172,168,114,107,103, 97,129, 64,240,230,240,225, -195,151,175, 90,181, 74,156,155,155,139,172,172, 44, 48, 12, 3,161, 80,136,200,200, 72,226,216,177, 99,254,179,102,205, 90,122, -224,192, 1, 65, 81, 81,209, 55,238, 12,108,184, 92,110,188, 76, 38,123, 41, 56, 56, 88,146,151,151, 87,172, 82,169,142, 26,141, -198, 55, 81,253,109, 83, 72, 46,151, 59, 58, 34, 34,226,213,208,208,208,224,204,204, 76, 69, 70, 70,198, 94,163,209,248, 35,170, -185, 81,179, 83,158,182,129, 45, 90, 61,128,236,136,136,136,235, 15, 30, 60,200,243, 32,103, 86, 68, 68, 68, 74, 53, 56, 37, 0, -126, 5, 16, 90,197,125, 89, 0, 70,194, 77,107,182, 35, 99, 89,235,193,249, 43,214, 79,140, 27,223,157,248, 97,122,191,200,183, -190, 61,118,142,228,177, 61,111,100, 27,210,235, 52,148,107, 34,203,182,165, 85, 89, 65, 85,217,181, 74, 97, 52, 26, 3,205,102, - 51,184, 21,108, 22,175,211,233,224,237,237, 29,232,106, 34, 69, 34, 17,126,254,249,103,112,185, 92,112,185, 92, 20, 22, 22, 34, - 44, 44,204,113,206,227,241, 28,159, 27, 52,104, 80, 37, 31,195, 48, 29, 41,138,130, 86,171, 5,195, 48,142, 67,165, 82,129,101, - 89, 8, 4, 2, 48, 76,201,118, 78, 78,215, 59, 86,196, 71, 16,196,136,208,208, 80,108,219,182, 13, 38,147,233,145,235, 82,169, - 20,201,201,255,108, 50, 66, 81, 20, 58,117,234, 68, 18, 4, 49, 2,192,244, 74,120, 89, 0,136,141,141, 5, 69, 81,160, 40, 10, - 36, 73, 58, 62,219, 15,134, 97, 48,119,238, 92,148,217,154,236,177,113, 62,109,168, 34, 50,124, 54, 42,240,209, 34,107, 57, 93, -206, 75, 60, 67,197, 18,233, 87,111,191,255,161,215,129, 83,215,240, 48,253,225, 35, 34, 11, 0, 46,255,254, 35,178,179, 50,145, -148,154,129,209,255,125,199, 75, 42,245,253,170, 76,131, 90,225,178, 81, 31,111,222,215, 31,143,236, 46,212, 90,178, 80,228, 7, - 80,141,249,224,138,117,152, 53,184,141, 64,234,205, 91,226, 74, 58, 5,124,254,239,139,142, 29,115,136,172,110, 70, 35, 4, 12, - 3,154, 97, 28, 34,203, 68,211,208,155, 76,144,107,181,184, 59, 97, 2, 88,139, 5,159,237,222, 45, 22,240,249,191,187,146, 78, - 0,224,241,120,242,189,123,247, 54,104,221,186,245, 73,184, 30,204,244, 88, 45,191,163,202, 16,211,182,109,219,132,205,155, 55, - 55,224,241,120,114, 79,112, 10,133,194, 97, 18,137, 36, 95, 40, 20, 14,171,102, 58, 73, 0,243, 39, 78,156,152,248,220,115,207, -157,176, 9, 43,135,168,121,238,185,231,142, 77,156, 56,241, 10,128,185, 21,148,245,242, 56,235,133,134,134, 46, 88,181,106,149, -248,246,237,219,200,204,204,132,197, 98,193,235,175,191, 14,134, 97,160,215,235, 97, 50,153,176,120,241, 98,137,191,191,255,108, -148,108, 20,236,202,179,243,124,124,124,110,111,218,180,105,248,253,251,247,189, 78,156, 56, 65, 36, 39, 39, 75,150, 46, 93, 58, -196,223,223,255, 22, 0, 65, 53,242,147,148,203,229, 63,236,217,179,231,237,228,228,228,176, 93,187,118,113,207,159, 63, 47, 95, -187,118,237, 36,185, 92,190, 25, 0, 85,205,119,212, 78, 44, 22,247,157, 57,115,166,245,236,217,179,153,103,207,158,205, 92,190, -124, 57,122,244,232,209, 45, 46, 46, 46,186,154,156, 49,222,222,222,207,207,156, 57,211,122,250,244,233,172, 11, 23, 46,100, 44, - 93,186,148,124,254,249,231,187, 47, 88,176,160,141,155,156,191,158, 61,123,182, 87,122,122,122,163,140,140,140,134, 25, 25, 25, - 17, 25, 25, 25, 17,153,153,153,225,217,217,217, 13,114,114,114,234,231,229,229,213, 79, 72, 72,232, 14, 96,171, 43,156,205,130, - 37,111, 79,127,189, 95,241,236,255, 14,100, 63, 25,251, 2, 59,235,245, 94,236, 75, 61, 91,255, 70,113, 56,196,133,148,135, 8, -243, 1,126,156,218, 33,188,126,128, 36, 57, 74,230,213,244, 41,171,155, 79, 27, 39,199, 46,164,148, 74, 37, 14, 28, 56, 0,155, -245,170,157,179,200,210,104, 52,200,206,206,182, 95,227,184,146, 78,169, 84,122,124,253,250,245,172,193, 96,128, 90,173, 70, 94, - 94, 30,210,211,211,113,247,238, 93, 20, 20, 20,224,230,205,155, 16,139,197,199, 93, 73, 39, 65, 16, 96, 24,198, 33,164,142, 30, - 61,138,137, 19, 39, 66,169, 84, 58,190,227,112, 56,142,207,246,255,169,138,211,110,121, 98, 24, 6, 23, 46, 92,192,228,201,147, -177,124,249,114,108,221,186, 21,251,247,239,135, 82,169,116,136, 45,154,166,171,228, 84, 40, 20,176, 90, 93, 27, 51,177, 44, 11, -181, 90,237,242,123,119, 22, 64, 28, 14,231, 17, 81,100, 63,220, 41, 75, 53,228,124,106,225, 66,100,248,138, 71,216,246, 15, 54, - 83, 93,239,218, 74, 36,201,225,141, 30, 49,254, 61,255,140, 60, 13, 50,115,213,160,200,127,250,189,232,126,227,193,161, 72, 92, - 60, 82, 98,184, 34, 41, 10,106,157, 17, 42,173, 25,195,199, 79,147,125,191,252,139,209,180,217, 80,105,140,151, 86, 64,100,148, -151,215,107, 45, 91, 54, 32,111, 8, 82, 17,253,210, 25, 48, 86,128, 61,253, 50,218, 21, 6, 81,205,127,231,191,166, 43, 50, 47, - 72, 6,110, 87,106,205,240,245, 21,249,181,105,131,184,208, 80,244,180, 88,192, 99, 89,188,144,155,139,171,211,166,193,184,115, - 39, 72, 0,188, 97,195,208,103,197, 10,156, 10, 13, 69,136, 94, 15,213,140, 25, 8, 60,124, 24, 60,169, 84,132,124,215, 22, 63, - 16, 4,129,222,189,123,227,216,177, 99,254, 3, 6, 12, 56,114,237,218,181,161, 52, 77,159,170, 78,222,250,248,248, 92,230,112, - 56, 97, 85,221, 71,211,116,134, 90,173,118,123,155, 17, 14,135,211,179, 83,167, 78,187,119,237,218,229,103, 54,155, 61, 50, 10, -225,243,249, 3,134, 12, 25,178,126,205,154, 53,210, 73,147, 38,173,223,191,127,127,177,201,100, 58,236, 78,145, 2, 48,127,221, -186,117,111,197,198,198,250, 78,154, 52,137,189,123,247,174,179,245, 42,176, 71,143, 30,207,173, 95,191, 62,164, 67,135, 14,239, - 77,158, 60,153, 7,224,179,170,172, 60, 94, 94, 94, 83,214,175, 95, 31,160, 80, 40,160,213,106, 29,141,108, 70, 70, 6, 68, 34, - 17, 72,146, 4, 73,146,224,114,185,248,234,171,175,252,167, 76,153, 50, 77,169, 84, 78,115,193, 74, 22,191,122,245,234,192, 23, - 95,124,145,188,127,255, 62, 72,146,132, 80, 40,196, 27,111,188, 65,234,245,122,191,184,184,184,141, 58,157,110,148, 59,121,200, -229,114, 71,199,199,199, 55,237,214,173, 27, 39, 53, 53, 21, 93,186,116,193,197,139, 23, 49,108,216, 48,110, 81, 81, 81,195, 89, -179,102, 77, 52, 26,141,238,198,113,145,139,197,226, 86,127,252,241, 71,122,253,250,245, 29, 13, 75,195,134, 13,153, 65,131, 6, - 41, 83, 83, 83,155,157, 61,123,182,160,107,215,174,238,108, 88, 94, 79, 44, 22, 55, 63,120,240, 96,118, 92, 92, 92,223,117,235, -214, 13, 1,128,142, 29, 59,238,157, 55,111,222, 9,165, 82, 25,117,234,212, 41,101,207,158, 61, 51, 92,228, 11,149,203,229,204, -212,169, 83,189, 42,187,105,195,134, 13, 42,148,108,184,220, 8, 64,165,251,181, 53,139, 8,153,189,100,218, 8, 17, 24, 51, 88, -139, 30, 48, 23, 3,102, 45,172,166, 98, 16, 60, 17, 96,209, 35, 80,160,196,175, 83,154, 73, 63,218,118,239, 6,115,147, 24,148, -170, 40, 58,140, 58,148,219,212, 0,136, 38, 8, 34,233,192,129, 3,232,212,169, 19, 14, 28, 56,128, 65,131, 6, 37, 57,139,129, -228,228,100,244,236,217, 19, 54,139,150, 75,190, 90,106,181,250,227,185,115,231,158, 30, 61,122,180,184, 84, 99, 64,146,240,245, -245,197,192,129, 3, 13, 58,157,238, 99, 87, 19,202, 48, 12, 56, 28, 14, 50, 50, 50,176, 97,195, 6, 44, 92,184, 16,145,145,145, -176, 88, 44,143,136, 45, 91,187,231, 82,227, 71,211, 52, 46, 93,186,132, 45,155, 55,227,179,217,179,225,237,237, 13, 0, 48,155, -205, 80, 22, 22, 66, 40, 20, 58,196, 88, 21,194,105,251,157, 59,119,166,133,133,133,149,154, 50,180,255,181,181, 89,176, 90,173, -160,105, 26, 6,131, 1,203,151, 47,167, 89,150,221, 94, 85,255, 99, 23, 69,211,166, 77,131,209,248,143, 65,189,141,205, 39, 57, - 34, 34, 2,109,219,182,117,156,147, 36,201,186,202,249,125,215, 86,208, 59,221,221,108,238, 82, 0, 64, 88, 88, 24,154, 53,107, - 6,185, 92, 94, 33,103,109,107,145,234,192,141,200,240, 21, 11,173,199,177, 83, 54,151, 39,236,211,184, 73, 83,226, 97,182, 18, - 28, 14, 7, 18,159, 0,116,125,117, 58, 40,138,132,151,111, 0, 8, 70,255,143, 34, 38, 41,112, 40, 14,148, 69,122, 68, 52,106, - 66, 10,132,162, 62,186, 42,132,150,212,135,187,122,230,168,174,194, 2, 58, 3,162, 6, 66, 48,246,238, 52,148, 15,210,191, 8, - 31, 12,136, 20,197,238,189,182, 26,106,203,243,174,164,151,162,105, 4, 81, 20,204, 44,139,171,211,166, 33, 58, 62, 30, 73,118, - 97, 24, 31,143,164,216, 88,200,184, 92, 8, 72, 18,172,197,242,200,156,190, 43, 66, 11, 0,210,211,211,177,115,231, 78,217,136, - 17, 35,118, 39, 39, 39,143,118, 83,108,216,185, 2, 46, 92,184, 16,212,168, 81,163, 10,239,249,251,239,191,209,190,125,123,183, -167,167,248,124,254,128,231,159,127,126,219,206,157, 59,125, 82, 82, 82, 16, 20, 20, 84, 99,161, 37, 16, 8,122,246,235,215,111, -219,166, 77,155,164,249,249,249,136,143,143,151,190,252,242,203, 91, 19, 19, 19, 95, 53, 26,141,174,136,205, 82, 34, 43, 62, 62, - 94,181, 97,195,134,239, 81,122,138, 48,123,195,134, 13, 63,116,232,208,225,237,216,216, 88, 95, 0,111,217,124, 7, 42, 21, 91, - 2,129,160,119,227,198,141, 75,141,106, 5,130, 18, 99,147, 68, 34,129,143,143, 15,120, 60, 30,140, 70, 35,162,163,163, 9, 62, -159,223,221,149,103,246,246,246,238,247,218,107,175,145,103,206,156, 65, 78, 78, 14,124,125,125,225,229,229, 5,134, 97, 48,105, -210, 36,106,249,242,229,189,117, 58,247,102,184,234,215,175, 63,164,111,223,190,156,235,215,175,227,254,253,251, 48, 26,141,184, -117,235, 22,164, 82, 41,198,142, 29,203, 91,178,100,201,203,153,153,153,238, 10,173, 86,177,177,177,185,206, 34,203, 14,137, 68, - 66, 52,109,218, 84,233,239,239, 31, 3,192, 29,161,213,234,157,119,222,201, 91,180,104, 81,207, 99,199,142, 57,130, 94, 30, 59, -118,108, 22, 0,124,243,205, 55,167, 3, 3, 3, 99, 0,184, 42,180,192,178,172,245, 63,255,249, 79, 26,159,207, 7,151,203, 5, -159,207, 47,117,240,120, 60,144, 36,233,109,175,206, 85,241,221,184,159,179,120,210,172,165, 75, 37, 66,138,251,254,171,173,209, -192,151, 7,136,100,224,245,252, 8,132,111,137,209,146, 85,254, 13,252,254, 17,150,189,166, 36, 99,127, 50,252,102,102,252, 2, -239, 21, 22, 22, 61,225, 62,160, 3,128,255,161,100,115,221,217, 0, 46, 60, 37,125,211, 21, 0,209,131, 6, 13,114,136,173, 67, -135, 14, 97,192,128, 1, 80,169, 84,184,126,253,186,179,200,114,103,131,229, 43, 22,139,229,175,159,127,254,185,235,136, 17, 35, - 8,167,250,133,148,148, 20,220,188,121, 51,201, 85, 62,146, 36, 97,181, 90,193,229,114,177,116,233, 82,152,205,102,252,244,211, - 79,216,177, 99, 7, 72,146, 4, 65, 16, 32, 8, 2, 82,169, 20,223,126,251,173, 91,237, 30,195, 48,216,184,113, 35, 62,154, 53, -203, 33,178,108, 51, 25, 8, 9, 14,134,127, 64, 0,238,221,187, 87,165,208, 42, 44, 44,156,179,111,223, 62, 84,230, 12,191,111, -223, 62,199,231, 50,206,240, 85,247,115, 20, 5,163,209,136, 23, 94,248,103,171,216,119,222,121,199,241, 89,169, 84,130,162, 40, -123, 94, 16,174,114,234, 89,224, 85,225, 63,223, 13,252,224,131, 82, 22,186,138, 56, 31,135, 22,241,148,117,171, 28,177, 21,109, -179,206,202, 1, 12, 66,137,143, 86, 54,240, 24,125,180, 88,214,218, 60,172, 94, 40,254,186,155, 12, 14, 69,129,239, 19, 0, 31, - 89, 48,172,180, 9,234,188,251, 56,185,235, 59, 0,192,186,141,219, 65,146,150,243,244,219, 0, 0, 20, 49, 73, 68, 65, 84, 36, - 56, 28, 10, 70, 19,131,200, 6,161,176, 90,173,205, 43,227,110, 1,116,237, 29, 28,208,169,126,184, 47,113,221,239, 62,154, 6, -249,151,153, 8, 17, 32, 50,203,139,232,226, 37,234, 88,168,214,116,189, 1,156,173, 82, 12,144, 36, 72,130,128,152,199,131,113, -231,206, 18,175,205,248,146, 62, 43, 41, 54, 22,228,111,191,193, 91, 32, 0, 69, 16,224,216, 76,208,213,129, 70,163, 1, 65, 16, -216,178,101,139,223,216,177, 99,183, 94,191,126, 61,214, 96, 48,236,116,135, 67,165, 82, 13,234,214,173,219,137,141, 27, 55, 6, -134,132,132, 60,114, 61, 39, 39, 7,227,199,143,207, 87,169, 84,110, 5,117, 19, 10,133,195,134, 12, 25,178,254,199, 31,127,148, -222,185,115, 7, 90,173, 22,129,129,129, 53, 45, 10, 49,157, 59,119,222,189,115,231, 78,159,156,156, 28,168,213,106, 24,141, 70, -108,217,178,197,119,224,192,129, 59, 83, 83, 83, 7, 0, 72,172,130,227,115,103,145, 53,121,242,228,107, 0,130, 0,172, 46,171, - 65,109,215, 90, 59,137, 45, 53,128, 37,149,140, 68,195, 37, 18, 9,242,242,242, 48,126,252,120,220,190,253,143, 1, 52, 52, 52, -212, 49,210,187,119,239, 30, 2, 3, 3, 65, 16, 68,144, 43, 15, 29, 24, 24,232,101, 50,153, 48,113,226, 68,164,167,167,151,226, -204,200,200, 0, 65, 16, 98,119, 51, 50, 56, 56, 56, 88,175,215,163, 71,143, 30, 48, 24, 74,246,245, 29, 57,114, 36,184, 92, 46, -242,242,242,192,229,114, 3,170,241,126, 2, 6, 13, 26, 84, 97,104, 21,169, 84,106,246,243,243,107,225, 38,167,255,203, 47,191, -156, 25, 31, 31,255,200,194,150,139, 23, 47,190, 34,147,201,142,201,100,178,166,110,114, 90,157, 69, 21,143,199, 43, 37,180,184, - 92, 46, 72,146,116,217, 71,237,118,158,110, 21,135,200,110,187,104,234,139,227, 27, 4,249,128,213,230,130,247,252, 28,252,149, - 47,194,210,229, 7, 1, 0, 31,190,209, 30,109,250,205,135,233,199, 23, 49,173, 11,197, 31,147, 97,156, 9,224,243, 39,220,230, -127, 13,192,190, 10,110, 13,128,182, 79, 81,127,228, 16, 91,135, 14, 29, 66, 84, 84, 20, 10, 11, 11,145,154,154, 90, 93,145,101, -111,239, 62,250,242,203, 47,127, 31, 58,116,168,196, 62,104, 21,137, 68,152, 49, 99,134, 94,171,213,126,228, 86, 33,178, 90,193, -225,112, 28,131,100,161, 80,136,232,232,104,135,200, 34, 8, 2,197,197,197,224,112, 56,246, 21,137,132,139,105,132, 60, 36, 4, -222,222,222,104, 18, 25,137, 59,182,118,196,254, 89, 32, 16,128, 32, 8,208,116,149,134,188, 34,155, 83,251,116, 79,119,201,118, - 81, 84,169,233, 56, 52, 20, 86,171,213, 46, 50, 89, 79,112, 6, 4, 4, 64,171,213,186,202,249, 84,162, 2,139,150, 93,104, 13, - 66,137,175,214, 35,225, 29,122, 1, 56,137, 90, 92, 82, 73,128, 37,172, 44, 11, 14, 69,218,230,110, 41, 80, 20, 9,101,126, 54, - 86,204,121,203, 38,178,118,224,192,233, 84,132, 53,142,250,103, 30,151, 32, 0,182,242,194, 29,232,195,139,159, 50,180,179, 40, -151,200,134,111,168, 24, 66, 97, 25,253,232,199, 3, 17, 65, 98,106,239, 48,241,165,125,134,248, 27,106,115,149, 29,133,144, 36, - 75,156,223, 9,162, 92,231, 30,210,118,141, 34, 8,176, 44, 11,214,234,158,223,177, 93,200,139, 68, 34,152,205,102, 80, 20,133, -149, 43, 87,250,246,235,215,111,181,187, 66, 11, 64, 74,110,110,238,192, 73,147, 38, 29,218,190,125,123, 64, 64, 64, 64,169,209, -195,164, 73,147, 20,185,185,185, 3,225,166,211, 61,151,203, 93,189,102,205, 26,233,131, 7, 15, 80, 92, 92, 12,145, 72,228,104, -124,170, 91, 62, 59,118,236,120,228,240,225,195,126,106,181, 26,102,179, 25, 34,145, 8, 44,203,130,162, 40,252,242,203, 47,254, -131, 7, 15, 62,248,240,225,195,231, 43, 75,171, 72, 36,122,213, 38,156, 16, 27, 27,235, 27, 27, 27,219, 11,168, 48, 82,175, 3, -177,177,177,190,211,167, 79,127, 89,175,215, 47,169,228,153,211,149, 74,101,136, 72, 36,194,174, 93,187,224,229,229, 5,177, 88, -140,208,208, 80, 40,149, 74,136,197, 98,176, 44, 11,139,197, 98,111, 44, 10, 92,121,240,252,252,124, 45, 77,211, 62,135, 14, 29, - 66, 65,193, 63,255,210,160, 65, 3,168, 84, 42, 88,173,214, 98,119, 51, 51, 43, 43, 43,151, 32,136,250,127,253,245, 23, 30, 60, -120,128, 1, 3, 6,224,183,223,126, 67,251,246, 37,179,195, 38,147,169, 58, 65,252, 24,138,162,216, 74,202, 45, 1,192,207,147, -156,182,206,203, 45, 78,171,213,106,181,139, 44,231,191,206,226,171,138,223, 44, 85,157, 91, 4,123,109, 88, 52,165,239,248, 23, -163, 2,160,207,191, 15,161,119, 0, 8,223, 8, 44, 93,126, 16,215,255, 46,121, 95, 75,183, 94,198,182,184,129,128, 72,134,102, - 62, 10,132,120,115, 94,187,153,247,196,133,150,143,243, 56,225,105,237,152, 6, 12, 24, 0,165, 82, 9, 47, 47, 47, 79,248,231, -156,211,235,245,183,246,236,217, 19, 51,104,208, 32,240,249,124,220,186,117, 11,137,137,137,169, 0,206,185, 43,180,184, 92, 46, -190,252,242, 75,188,245,214, 91, 8, 14, 14,198, 71, 31,125, 4, 14,135,227, 56, 8,130,112, 88,184,220, 65, 80,112,229, 11, 31, -237, 14,241, 85, 25,195,125,124,124,190, 36, 73,114, 4,229, 66,198, 49, 12,195, 88,173,214,237,106,181,186,210,240, 14,118,199, -117, 87,222,133,115, 30, 84,209,167,213,152,243,113,104,145,234,160,236,106,195, 10, 44, 90,246, 85,135,143,108, 5,100,127,202, -147, 54,147,221,201,218, 74, 40, 65, 82, 55, 51, 50,179,224,239,231,101, 19, 89,182,131, 36,209, 38,170,100, 48,123,224,116, 42, -194, 26, 69,129, 67, 81,224, 80, 20,188, 68, 2,228,230,100,131,195, 33,111, 86,196,219,138,194,208,161, 77,235, 71,248,249,115, -161, 8, 52, 65, 30, 92,129, 97, 32,198, 27, 97,114, 62,250,251, 11,195, 91, 81, 24, 90,185,245,141,117, 8, 45, 51, 77,131, 55, -108,152, 99,186, 48, 41, 54, 22,209,241,241, 96,134, 12,129,206,108, 46,101, 42,174,174,208, 18,137, 68, 40, 42, 42,194,232,209, -163,149, 22,139,229,237,106,102,113, 98, 65, 65,193,240, 49, 99,198, 20,216, 5,140,217,108,198,152, 49, 99, 10, 10, 10, 10,134, -187, 96, 37,122, 4, 22,139,229,237,246,237,219, 43, 21, 10,133, 35,157,213,105,112,236,144,201,100, 7, 54,108,216, 32, 51, 26, -141,160,105,218,193, 41, 18,137, 64, 81, 20, 2, 3, 3,177,109,219,182, 64,153, 76, 86,233,158, 85,122,189,126, 79,124,124,188, - 10, 0,226,227,227, 85, 4, 65, 36, 16, 4,177,150, 32,136, 53,101,142,181, 4, 65, 36, 56,223,171,215,235,119, 87,198,109, 50, -153, 18, 82, 83, 83, 89,177, 88, 12,138,162, 96, 54,155, 33, 20, 10, 29, 38,113,141, 70, 3,189,190,100,154, 59, 49, 49, 17, 22, -139,229,140, 43,207, 94, 84, 84,116,124,227,198,141,214, 6, 13, 26, 32, 42, 42, 10,209,209,209,232,220,185, 51,194,195,195, 49, -111,222, 60, 70,167,211,185, 93,247,178,178,178, 14,252,250,235,175,150,250,245,235, 35, 38, 38, 6, 2,129, 0,109,218,180, 65, -104,104, 40, 22, 46, 92,104, 82,171,213,135,170,241,154, 30, 38, 39, 39, 83,149,136, 92, 41, 92, 88,189, 91, 6,233,151, 46, 93, -162, 58,119,238,188,183,236,133,142, 29, 59,238,245,242,242,242,177,155,216,221, 25,145, 59,139, 43,129, 64,224, 56,236,223,115, - 56, 28, 87, 70, 63,100,139, 96,175, 13, 95,189,213,103,252,139, 81,126,216,123,252, 2,120,102, 21, 96,170,100, 70,144,177,128, -224, 73, 16,236,195, 13,123, 10,250,128,105, 0,174,161, 36, 14,211, 71,120,186,224,112,124, 47, 40, 40, 64,106,106, 42, 18, 19, - 19,209,185,115,103,156, 57,115, 6,248,199, 65,222,109,168,213,234,143,226,226,226,116,246,149,124,179,103,207,214, 23, 21, 21, -125,228,110, 27,204,178, 44,184, 92, 46,154, 53,107,134,233,211,167,227,224,193,131,184,117,235, 22, 44, 22,139, 67, 8,217,125, - 50,221,177,104,241,120, 60, 4, 7, 7,195, 98,177, 56,172, 89, 0,112,231,246,109,112, 56, 28, 88,173, 86,152, 76,166, 42, 45, - 90, 62, 62, 62, 95,174, 95,191,254, 61,133, 66, 33,207,207,207, 15,114, 62,114,115,115,131,178,179,179,131, 50, 51, 51,131,210, -211,211,131,210,210,210,130,238,223,191, 47, 95,188,120,241,123, 62, 62, 62, 95,186,146, 78,138,162,208,166, 77, 27,188,243,206, - 59,142, 99,213,170, 85,142,227,228,201,147,110, 59,175, 83, 20,133,102,115,151, 98, 96, 62,235, 56, 14, 6, 18,142,227,250,135, -147, 43,227,172,117, 45, 82, 45,253, 98, 91,109,232,188,177,116, 57,176,175, 58,180,183,101, 14,183,141,178,206,240,181, 6,218, -100, 56,241,247,221,219,125,154,181,234, 64,230, 40,180,165,150,127, 70,247, 30, 14,130, 32, 80,175, 81, 20, 40, 14, 7, 20, 69, -130, 67, 81,240,149, 10,145,250,215, 95, 86,163, 94,127,162, 60,206, 94, 0,135, 47,226,175,122,163,127, 27, 97, 22, 63, 15,129, -114, 9,120,220, 18,237,200,254, 61,188, 76, 15,193, 1, 90,121, 99, 66,166,191,232, 68,174, 97,149,159,206,188, 55,161,130, 17, -160,213,106,133,151, 64, 0,131,209, 8, 61, 77,163,247,138, 21,142,233, 66,146, 32,112, 5, 64,235, 21, 43,112,118,231, 78, 72, -249,124, 64, 32,112,121, 85, 72,121, 66, 75,161, 80, 96,220,184,113, 5,217,217,217, 99,171,227,163,101,135,209,104, 60,149,147, -147, 51,118,248,240,225, 91,118,237,218, 37, 27, 62,124,184, 50, 39, 39,103,172,139,126, 79,143,192, 96, 48,236, 76, 79, 79, 47, - 30, 55,110,220,230,173, 91,183,250, 7, 4, 4, 56, 70, 34,213, 42,172, 4,161,232,219,183,175,192,149,251,170,184, 37,206,230, -220,254,150,205,178,213,122,242,228,201,103, 81,226,127,229,140,185,235,214,173, 27,233, 52,197,184, 22,192,138,202,136, 53, 26, -205,154,233,211,167,255,247,212,169, 83, 1, 66,161, 16, 4, 65,128,199,227,161, 73,147, 38,142, 85, 52, 92, 46, 23, 44,203,226, -131, 15, 62, 80,228,229,229,125,227,226,187,153, 28, 23, 23,215,211, 96, 48,248,141, 27, 55,142, 18, 10,133,200,205,205,197,242, -229,203,153, 31,127,252, 81,165,211,233,198, 87, 67, 8,111,252,226,139, 47,122,107,181,218, 70,147, 38, 77,226,169,213,106,232, -245,122,204,156, 57,211,244,195, 15, 63,100,232,245,122,183, 3,254,118,233,210,229,110, 90, 90, 90,247,226,226,226, 66,177, 88, - 92,214,218, 71, 72, 36,146, 14, 0, 54,187,195, 25, 29, 29,125,239,225,195,135,157,231,207,159,159, 96,177, 88,184, 23, 47, 94, -116, 56,195,175, 92,185,242,164, 80, 40,236, 11, 55, 55, 95, 37, 8,194, 42, 16, 8, 74, 89,176,202,126,230,112, 56, 85,182,105, -205, 67,196,243,191,122,179,231,248, 23, 90,248, 96,207,241,203,136,219,253,247,205,200,241,129,205,158,243,203,135, 53, 63, 21, - 31,190,209, 30, 75,183, 94, 6, 80, 50,117,104,205,187, 14,182,240, 30, 88,239,250,184,175, 84,100, 61, 5,125,192, 73,148,132, -204,120,218, 80, 74,100, 93,191,126, 29,125,250,244, 1, 0,156, 57,115, 6,221,186,117,195,153, 51,103,208,189,123,119,183, 99, -105,217,240,135, 70,163, 73, 59,121,242,100,203,250,245,235,227,220,185,115,247, 1,252,225,110, 34,237, 66,139,195,225,224,245, -215, 95, 71,191,126,253,208,160, 65,131, 82,171, 13,237,159,221, 17, 27, 52, 77,163, 85,171, 86, 48,154, 76,224,241,120,142,169, - 73, 14,135,131,192,160, 32,220,189,123,215, 37,139, 22, 73,146, 35, 94,125,245, 85, 50, 37, 37, 5,163, 70,141,194,150, 45, 91, - 42,188,119,204,152, 49,248,249,231,159,241,234,171,175,146,159,124,242, 73,165,225, 29,236, 78,232,174, 60,147,189,159,174,170, -221,247, 20,103,109,107,145,154,192, 41,180, 67,185,147, 38,229,124, 23, 95, 74,104, 57, 5, 9,171, 29,161, 69,155,183,252,246, -211,119,211, 59,175,238, 30, 40, 15,242,129, 82,173,119,136,173,164,147, 59, 0, 0, 67, 39, 47, 0,135, 42,153, 82,148,122, 9, - 33,226, 81,216,185,233, 27,133,217,108, 40,183,116, 21,113,201,183, 62,233,218,196,135, 47,177, 64, 19,194, 34, 42,240,159,157, -114,136, 70, 59, 30, 21, 92,237,252, 16,112,189, 16,111, 60,231, 37,253, 38, 69,245, 22, 44,214, 85,143,116,136, 42,149, 94,245, -215, 95,162, 1,235,215,227,226,216,177,168,199, 48, 72, 8, 13,133,140,203,133,143, 64, 0,146, 32,160,223,191, 31,103,119,237, - 66,176, 64, 0,120,123,131,158, 55, 15,198,212, 84, 88,138,138,244,213, 24,153, 97,228,200,145, 10,133, 66, 49,220,100, 50,157, -170,105, 62,235,245,250,195,233,233,233,111,117,233,210,101,181,197, 98,121, 91,175,215,215,104,101,148,201,100, 58,156,147,147, - 51,108,228,200,145, 59,118,239,222, 29,224,235,235, 91,109,174,130,130,130,246, 30, 42, 78, 86, 0,159,217,156,219,223,138,141, -141,245,189,116,233,210,127, 55,108,216,176,218,105, 52, 17, 52,113,226,196, 55,203,136,172, 42, 87, 29, 2,120,152,151,151, 55, -111,198,140, 25, 11,150, 45, 91,230,101,119,124,191,122,245, 42,104,154, 6,151,203, 5,195, 48,152, 56,113,162,182,160,160, 96, - 41, 42,142,232,252, 72,209,210,104, 52, 77,230,207,159,191, 97,197,138, 21,253, 40,138,146, 48, 12,163, 43, 46, 46, 78, 48, 24, - 12,227, 81,189, 56, 90,214,252,252,252,113,159,127,254,249,184,229,203,151,191, 74,146,100, 16, 77,211,138,162,162,162,125,122, -189,254, 7, 84, 99, 42,233,220,185,115,249,111,188,241,198,223,249,249,249,205,195,194,194,212, 94, 94, 94, 38,147,201, 68,137, - 68, 34,169, 68, 34,137, 6,112,142, 32,136, 27,238,112, 38, 37, 37,229, 76,154, 52,233,129,209,104,108,182,118,237,218,211, 82, -169,244, 56, 65, 16, 4,143,199,243, 19,137, 68,125, 0, 36, 16, 4,113,199, 29, 78,146, 36,173,206,214,171,178,254, 89,124, 62, -223, 37, 31,173, 70,129,226, 9,253,154,112,176,231,196,101,196,237,121,184,145, 97,217, 93,187,146, 10,247,127,212, 13, 48,111, -127, 3,109,134,111, 46,153, 46, 4, 96,205,187, 14,243,246, 49, 32,196, 1, 56,157,201,133, 90,111, 62,128, 58,148, 7, 71,120, - 7,133, 66,129,148,148, 20,187,200,138, 6,128,238,221,187, 39,217,197, 86, 98, 98, 34, 98, 98, 98,146, 0,112,221, 45,175, 26, -141,102,198,232,209,163, 15,219, 6,199, 51,170, 49,240,115, 8, 45,187,160,106,208,160,129,227,220,249,112,242,209,114, 9, 12, -195,128,199,227,129,195,225, 64, 30, 26,234,248, 45,150,101,113,247,238, 93, 40,149, 74,151,132, 22, 69, 81, 20, 65, 16, 24, 53, -202,181, 5,201,255,249,207,127,144,144,144, 0,202, 69, 85, 72, 81, 20, 34, 34, 34,170,188,199,174, 75, 93,229, 12, 11, 11,171, - 54,103,109,107,145,234, 10,172,242, 62,151, 39,170, 42,170, 16,143, 11, 89, 90,173,250,179, 77,235, 87, 46,155, 56,229, 3,175, -235,247,114,161,214, 26, 65, 81,164,115,227, 9, 14,135,130, 84, 34, 68,253, 16, 31,108,253,254,127, 69, 69, 26,213,231,168, 96, -223,195, 6,222,188,201,125, 59, 60, 39,224,201,117,104,214,122, 36, 40,225, 63, 34,128,205,169, 96,118,176,219,239,120,233,161, - 78,248,219, 67,221,228, 43,133,166, 71,133,150,201,244,226,236,254,253,143,196, 29, 60, 40,238,184,113, 35,238, 77,156,136, 80, -189, 30, 2,219, 84, 34, 73, 16,240,226,241,224,197,227,149,136,172,229,203,161,167,105,172, 24, 59,182,216,104, 50,245,119,167, -146, 23, 20, 20, 96,200,144, 33,249, 89, 89, 89, 3, 81,141,169,189,138,160,211,233,118, 2,216,233, 41, 62,163,209,120, 42, 35, - 35,227,165, 33, 67,134, 28, 60,124,248,112,224, 83, 18,100,206, 46,182,204,151, 46, 93,122,243,244,233,211,247, 80,122, 99, 81, -213,233,211,167,239, 77,154, 52,137,216,176, 97,195, 15, 0,190,128,139, 1, 60,117, 58,221,202,163, 71,143,162,103,207,158, 95, - 44, 90,180,200,191,125,251,246, 8, 10, 10, 66, 81, 81, 17, 18, 19, 19, 49,109,218, 52,165, 70,163, 89,164, 82,169,150,185,153, -102,179,209,104, 28,227,188,148,218, 19,249, 96, 52, 26,127,204,206,206,254,209, 83,132, 83,167, 78,189,122,247,238,221,130,192, -192,192, 78, 60, 30,175, 53, 74,252,128,114, 0,252,224,174, 32,178, 99,202,148, 41,127,221,189,123, 87, 81,175, 94,189,206, 54, - 78, 95,148,108, 99,180,190, 26,156, 89,151, 47, 95, 14,235,208,161, 3,201,229,114, 89,138,162,192,229,114, 89, 14,135,195,218, -252,106, 88, 0,216,183,111,159, 0, 64,165,219,230,220,203,211,207, 31,243,191, 63, 63,185,145, 99,216,149,154, 91, 60, 29, 0, -187,253,186,248,247, 54,129,212,139, 47, 54,205,128, 49,190, 59, 8,105, 73,160, 74, 86,155, 13, 66, 18,140, 12,107, 61,204,221, -123, 51,135, 6,177,164, 78, 83,149, 63,174,134, 45,188, 67,118,118,182,179,200,178, 91,173,162,187,119,239,158,100, 19, 89,246, -107,213,241, 47, 59,102,181, 90,107,212,135,177, 44,139,184,184, 56,172, 91,183, 14, 85, 69, 52,183,173,238, 35,170,226,179, 91, -180, 24,134,129,217,108,198,245,235,215, 29, 49,187,236,211,133,246,208, 14, 52, 77, 87,186, 90,157, 97, 24,198,100, 50,225,151, - 95,126,113, 73,108,109,219,182, 13, 6,131, 1, 76, 21, 10,206, 57, 20, 67,219,182,109,161, 84, 42, 29,139,125,162,163,255, 9, -149,103, 54,155,221, 18,174,118,206,102,205,154, 65,161, 80,192,238, 47, 92,127,236, 63,198, 30, 90,167,251,183,150,251, 10, 45, - 90,143,189,199, 20,136,165,135,219,119,237,215,109,236,155,211, 36, 90, 35,131, 7, 15,210,144,159,151, 13,146, 32, 33,175, 23, -134,240,240, 8,136,248, 36,182,196, 47,211, 37,157, 61,254,167,182,168,112, 64, 69, 92,131,124,120,103,151, 15,235,214,185,113, - 99,111, 2,180, 5, 96, 44, 0,109, 1,172,182,191,246,239,172,165,203, 92, 74,138,138,253,228,138,242,252, 1,181,185,220, 61, -171,134, 3,221,124,101,178, 35,115,247,237, 19, 91,205,102, 20,204,152, 1, 49, 77, 67,104, 27,149,148, 60,136, 0,244,188,121, - 37, 34,107,204,152, 98,181, 74,229,214, 22, 60, 1, 1, 1,151, 9,130, 8,200,207,207,127,166, 34,195, 7, 6, 6, 30, 96, 89, - 86,161, 80, 40,218, 63, 69,233, 10, 2,160, 2, 96, 46,103, 32, 17, 8,247,253,127,236,136, 8, 12, 12,252,132, 36,201, 46, 44, -203,250,147, 36, 89,104,181, 90,207,229,229,229, 45, 6,112,183,174, 63,125, 98,176, 71,134,111, 88,197,125,121, 0,222, 71,137, - 83,240, 3, 87,201,219,248,248,248, 24,249,150,221,175, 68, 9,122,143,136,246, 65,163, 16,111,112,121, 66,100,105,104, 28,187, -161,193,250,147, 57,233,122, 11, 51,248,118,126,113,114,221,171,168, 20, 30,223,130,199,147,144,201,100, 23,142, 28, 57,210,190, - 81,163, 70,164,179,195,187, 61, 86,158,125,122,139,195, 41,209,114,167, 78,157,162, 71,141, 26,117, 46, 55, 55,183,103, 69,156, -222,222,222,191, 95,187,118,237, 5,181, 90,253,136,160,114,142, 20,111, 63,215,233,116,152, 50,101,202,209,138,182,224,241,241, -241, 89,190,108,217,178,247,134, 14, 29, 74,218,195, 81, 56, 31,246,237,130,236,135,217,108,198,230,205,155,173,223,124,243,205, -183,106,181,186,194,169, 67,185, 92,158,158,149,149, 21,102, 15,181,224, 74, 80,209,136,136,136,236,180,180,180,208,199,201,249, - 12, 11,174, 82,214,173, 39, 98,154,224,138, 68, 83,189,189,252,230, 12, 29,253,142,127, 68,227, 72, 34, 88, 94, 15, 4, 72,228, -230,100, 34,237,239,219,236,238,159,190, 43,208,105,148, 95,234,245,186,239, 42,227,105, 1, 52,110, 40,229,109,231, 51,104, 10, -187, 0, 42,179, 63,213, 35, 35, 14, 0,102, 46,121,243, 65,145,101,228,141, 74,166,125,236, 98,235,179,221,187,197,252,166, 77, - 31, 9, 20,103,181, 90, 97, 76, 77,197,138,177, 99,221, 22, 89,117,168, 67, 29, 60,130, 70,168, 58, 70,150, 5, 37,241,185,220, -181,152, 16,205,130, 36, 35, 89, 96, 4, 9,107, 43,146, 32,248, 52,139, 91, 96,241,187,152, 83,188, 58, 41, 27,250,186,236,119, - 9, 79,237,166,210, 0, 36, 50,153,236, 56, 69, 81,225,118,139,140,179,181,190,156, 13,165, 31,228,230,230,246, 5, 80,217, 10, -225,198,222,222,222,223, 49, 12,211,209,149, 77,165, 41,138,186, 88, 84, 84, 52, 21,149,108, 42, 93, 27,171, 14,253,253,253,239, -166,165,165, 53,182,175,162,118,238, 43,203, 91, 89,126,231,206, 29,244,234,213, 43, 45, 39, 39, 39,226,113,114, 62,173,168, 96, -213,225,211, 99,209,114, 66, 40, 79,224, 53,142, 47, 18, 62,111,181,208,205, 64, 0, 28, 46,247,166,201,160, 63, 97,212,107, 55, -161,130,233,194,199,137,225, 64, 55, 1,159,255, 59, 79, 42, 21,149, 39,218, 44, 69, 69,122,163,201,244, 98,157,200,170, 67, 29, -234, 80,135, 58, 60, 67,104, 42,147,201,142,112,185, 92,129,179,152, 44,251,217, 14,154,166, 13,249,249,249, 3, 0,220,122,204, -156,255, 63,225,166,147, 90, 63, 87, 57,109, 71,175,167,157,179, 22,159,157,245, 32,103, 47, 27,231,220,103, 36,157,189,158, 86, - 78,251,243,186,193,219,207,157,114,228,169,252,116, 74, 39,235,233,116,214, 22,167,167,234, 81, 57,233,100,107,225,189,207,125, - 70,210,217,235,105,227, 44, 91,126, 92,228,117,139,211,197, 50,229,110, 58, 89, 79,167,179,182, 56,107, 90,143, 42, 73, 39, 91, -211,178, 84,193,187,159,139,103, 16, 41,237,192,166,180, 3,123, 61,166,220,184,141,177, 21,253,159, 91,142,132,181,181, 18,192, - 30,118,223,198, 79, 60,173,156,206,249,224,201,173, 2,106, 97,219,129,147,158,230, 44,147,159,158,194, 92,219, 10,147, 4,184, - 16,112,212,157,103,247,196,123, 47,243,172, 30,225,173,134,200,114,139,211, 83,229,190,182, 57, 61, 85,151,202,114,122,162,220, -151,247,222,107,241, 29,121, 42,157, 30,169, 75,181, 81,230,203, 41, 63, 53,230, 45,203,233,137,186, 84,150,211, 19,229,254,113, -112,122,162, 46,149,199,233,137,114, 95,209,187,127, 86, 13, 77,246,233, 66, 91,136, 7,194, 5,177, 21, 15, 0,100,117, 50,173, - 22, 45,101,189, 61,205,233,233, 52,215,134,216,116,195, 2,243,196, 57, 61,252,142,230,218, 56, 61, 57,186,233,237,169,119, 84, - 27,229,221,153,211, 83,252,101,121, 60,241,158,202,227,172,105,122, 43, 72,167,199,159,189,166,229,254,113,113,122,248, 29,121, -164, 46,149,225,236,237,225,193, 64,111,167,243,185,158,228,244, 84, 93, 42, 39,157, 53,126, 79,229,113,214, 52,189, 21,164,211, -227,207,238,137, 62,164,182,120,159,164, 69,139, 37, 43, 44, 19,241,101,142,199, 34, 52,158,216,148,156,155,220,255, 42, 78, 55, -167,103,250,213,194,187,127,162,233,244, 36,103,217, 52,122,114,186,167, 54,211,233, 73, 78, 55,210,250,175,227,124,214,222,251, -211,152,159, 21,241,213,100, 90,170, 34,235,104,109,164,211,147,156, 46,114,255, 43, 56,107,240,238,255,117,224, 60, 45, 9,177, -103,188,135, 71, 38,240,176, 5,166,214,158,219,195,233,236, 93, 27, 22,194, 90,128,199,211,105, 27, 41,207,169,133,103,127, 86, -242,180,174, 46,213,213,165,167,174, 46,149, 41,147,189, 61,104, 41,242,168,229,185, 44,167, 39,126,195,153,195, 83,101,180,182, -159,221,147,117,169, 54,222,253,179,134,255, 3, 32,187, 36, 94,196,121,194,218, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, + 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, + 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, + 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33, +161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163, +136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53, +128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, + 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192, +116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, + 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, + 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11, +178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16, +231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97, +154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142, +182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6, +128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161, +144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190, +226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, + 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44, +251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193, +212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, + 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, + 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, + 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, + 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61, +114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, + 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192, +232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, + 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, + 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, + 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, + 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, + 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53, +143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105, +175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25, +155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, + 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125, +174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, + 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, + 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7, +227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150, +151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103, +143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152, +158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, + 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163, +213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, + 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, + 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214, +187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182, +125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180, +114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, + 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, + 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195, +200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183, +165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111, +158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191, +142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231, +152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26, +209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, + 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226, +157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, + 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, + 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32, +109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139, +183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137, +202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88, +230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174, +126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223, +181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169, +171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245, +246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, + 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213, +102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182, +215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35, +112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70, +155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218, +233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116, +225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254, +147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255, +214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, + 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254, +145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, + 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25, +175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255, +104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, + 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, + 7,116, 73, 77, 69, 7,219, 8, 3, 13, 27, 3,174, 15,171, 16, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213, +226, 61, 51, 59, 91,178, 37,155, 70,122, 32,133, 18,192, 0,134,162, 4,169,130,160, 24, 21, 21,172, 8, 79,159,207,138, 13, 11, +168,136,136, 64,108,128,224, 79,228,161, 79, 1, 65, 1, 11,188,192,163, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201,102,123, +155,251,251, 35, 59,235,102,179, 45,144,160,194, 61,223, 55,223,238,206,206,156,185,247,206,189,119,206,156,219, 24, 66, 8, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 90, 30, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,191, 8,178,179,179,155, 99,129, 13, 11,148, +211,177, 13,250,171,115,182, 98,220, 73, 11,114, 14,114,112,190,255, 55, 9,231,160,191, 42,167, 16,223,102,240, 14,107, 78, 62, +106,169,244,116, 9, 39,105,233,112,182, 22,103, 75,149, 35, 15,225, 36,173,112,223,223,255,155,132,115,208, 95,141,211, 61,255, + 4,200,219, 44,206, 0,243, 84,115,195, 73, 90, 58,156,173,197,121,181,229,200, 71, 56,201,213,230, 37, 47,247,254,125,220, 32, + 32,132,128,107, 69,145, 21, 48, 50, 51, 51, 25, 23,126,230,175,202,233,154, 14, 2,127, 75,134,181, 5,177,181,165, 57,221,210, +179,165,240,126,102,102, 38,147,157,157,189, 13,192,160,150,140,123, 75,220,119,183,184,182, 8,239, 21,136,172,102,113,182, 84, +190,111,109,206,150, 42, 75,238,156, 45,145,239, 61,221,247, 86,188, 71, 45, 21,206, 22, 41, 75,173,145,231, 61,228,159,171,230, +117,231,108,137,178,228,206,217, 18,249,254, 90,112,182, 68, 89,242,196,217, 18,249,222,219,189,191,209, 12, 42,246, 74, 18,173, + 21,157,178,193,127,101, 65,212, 90, 98,179, 25, 14,204,159,206,217,194,247,232,125, 7,103, 75,190,221, 12,110,169,123,212, 26, +249,221,149,179,165,248,221,121, 90,226, 62,121,226,188,218,240,122, 9,103,139,199,253,106,243,253,181,226,108,225,123,212, 34, +101,201,141,115,112, 11,191, 12, 12,118,249,253,126, 75,114,182, 84, 89,242, 16,206,171,190, 79,158, 56,175, 54,188, 94,194,217, +226,113,111,137,103, 72,107,241, 94,215,104,173,230,179,150,230,108, 38,247,117,197,217,204,230,153, 97,173,112,239,255,212,112, +182, 36,167,123, 24, 91,178,185,167, 53,195,217,146,156,205, 8,235,117,199,249,119,187,239,127,197,244,244,198,119, 53,205, 82, +222,220,209,214, 8,103, 75,114, 6,200,125, 93,112, 94,197,189,191,174,208,236,166,195,107, 33,224, 90,248,205, 4, 45,236,192, +180,166,112,109,201,112, 14,110, 13,135,176, 21,208,226,225,116,188, 41, 79,109,133,184,255, 93,210,148,150, 37, 90,150,254,114, +101,201, 45, 79, 14,110, 65,167,168, 69,157,103,119,206,150,184,134, 43, 71, 75,229,209,214,142,123, 75,150,165,214,184,247, 20, + 87,225, 66, 80, 78,202, 73, 57, 41, 39,229,164,156,148,243,134,229,188,238, 64, 8,161,211, 59, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80,252,141,224,179,143, 86, 92, 92, 92,182, 66,161,232,224,237,127,157, 78,119,233,210,165, 75, + 67,104, 50,254,121,160,247,136,226,111, 4, 22,127,140,114,230, 1, 16,199, 70, 65, 65, 65,113, 93,195,171,208,146,201,100, 41, +167, 78,157,234,196,243, 60,236,118, 59,108, 54,155,243,211,108, 54, 99,224,192,129,205,238, 72, 31, 29, 29,157, 43, 18,137,146, +154,115,142,221,110,191, 80, 94, 94,222,223,199, 33,187, 0,164, 48,204, 31,125, 2,133,239,222, 62, 1,148, 90,173,214,158,190, + 56, 25,134, 73,113,231,243,194, 37,124,247,201, 25, 18, 18,114,128,227,184, 4, 79, 92,222,190,243, 60, 95, 80, 89, 89,217,239, + 90,222,163, 27, 25,209,209,209,185, 28,199, 53, 59,127,150,149,149,121,205,159,177,177,177,135, 89,150,141,107, 6,165,136,231, +249,188, 75,151, 46,245,247, 33, 68,118, 1, 72,241, 69,226,158,159, 24,134, 41,177,219,237,189,253,149, 35, 95, 92, 30,242,168, + 63, 78,167,200,226, 56, 46, 43, 42, 42,234, 57,189, 94,111, 4, 64, 68, 34, 17,113, 9, 27, 0,192,102,179, 85,214,214,214,118, +163, 57,145,130,130,226,134, 16, 90, 60,207,179, 38,147, 9,249,249,249,240,178, 30,162,253, 10,174,215,233,224,111,155,162,130, +163,162, 97,179, 88,160,108, 19,233,228, 46, 63,121, 28, 54,171, 5, 54,179, 25,237,250,244, 21,194,128,174, 93,187,138,252,112, + 38,124,244,209, 71, 81,193,193,193, 48, 26,141, 48, 26,141, 48,153, 76, 48, 26,141, 48,155,205, 48,155,205,176, 88, 44,176, 88, + 44,176,217,108, 48,153, 76,200,201,201,177, 91,173, 86,159,156, 51,102,204,136, 82,171,213, 78, 62, 97, 19, 56, 5, 94,171,213, + 10,163,209,136,205,155, 55,251,228,228, 56, 46,161,180,180, 52, 74, 34,145,128, 16, 2,158,231, 65, 8,105,180,185,163,125,251, +246, 22, 95,129,108,165,123,116, 35,163,211,140,229,107,163, 66,228, 50,216,120, 30,153, 61,218, 59,255, 40,248,122, 37,136,205, + 14,222,102, 67,199, 23,199, 58,247,119,233,210,197,103,254, 36,132, 36,206, 88,190, 54, 52, 80,206,234,234,106, 67,231,206,157, + 75,209, 48,185,159, 55,161,149, 96, 48, 24,162, 28,252, 77, 4, 17,203,178,141,182, 13, 27, 54, 32, 51, 51,211, 95,220, 19, 94, +125,245,213, 40,171,213, 10,179,217, 12,147,201, 4,171,213, 10,155,205,230,220,236,118,187,115, 51,155,205,216,187,119,111,160, + 78,214, 71,119,220,113,199,147,107,215,174, 85,254,250,235,175,202,164,164, 36, 72, 36, 18,136, 68, 34,136, 68, 34,176, 44, 11, +142,227,112,235,173,183, 50, 52, 11, 82, 80, 80,220, 48, 66,203,100, 50, 21,166,167,167, 19,199,247,120,153, 76, 38,113,123,203, +141,235,216,177, 99,158,251,121,254,154,171,130,163,162, 49,185,109, 56, 0,224,189,243,213,206, 7,196,199,253,110,118, 30,243, +193,197, 58, 0,128, 92, 46, 7,227,250, 26,237, 5, 74,165, 18,119,220,113, 7,164, 82, 41,122,247,238, 13,177, 88,236,113,147, + 72, 36, 16,139,197,126, 19,133, 97, 24,168, 84, 42, 76,155, 54, 77, 16, 73, 80, 6,201, 48,161, 95,111, 4,129,224,223,199,207, +192,204, 19,112, 28,231,220, 2,225,148, 72, 36, 56,118,236, 24, 56,142,131, 72, 36,114,126, 10,223,215,172, 89,131,209,163, 71, +131,227, 56,200,229,114,192,207,204,193,174,247,200,108, 54,199, 74,165, 82, 11, 0, 65,156, 73, 24,134,137,185,146,123,116, 35, + 35, 68, 46,195,184, 5,191, 0, 0,138,231,188,232,188,119,123,159,127,207,121, 76,226,191, 30, 2,195, 48, 16,139,197, 96, 89, +182,197, 56,107,106,106, 12,143, 60,242,200,142,224,224,224, 13, 26,141, 6,126, 4, 28,138,139,139,193,113,156,215,252,206,178, + 44,102,207,158,141,179,103,207, 6, 20,119,163,209,136, 69,139, 22,193,110,183, 55,226, 21,190,187,239, 11, 80,100,125, 56,124, +248,240,177,107,215,174, 13, 99, 24, 6, 95,124,241, 5, 36, 18, 9, 70,142, 28,137,136,136, 8,108,220,184, 17, 18,137, 4,111, +190,249, 38,205,124, 20, 20, 20,190,234, 60, 49,128,155, 1, 68, 58, 76,132,122, 0,161, 46,135, 84, 58, 62, 35,133,223, 12,195, +236,247,192,211,199,113, 76, 37,195, 48,251, 93,126,155, 1, 72, 61,236,175, 6, 32,119,108, 38, 52,184,255,105, 46,215, 17,206, +131,183,235,114, 64,195,250, 67, 0,182, 2, 24,156,153,153,185, 13, 0,202,202,202,238, 42, 43, 43, 3, 0,164,164,164,156,202, +203,203,235, 44,104, 30, 71,243,148,196,102,179,117, 18,154,170, 4,183,104,216,176, 97, 62,223,240,109, 22, 75, 19, 1,226, 73, + 75,121,106,174,240, 38, 96, 44, 22, 11, 30,122,232, 33, 0,240,250,208,113,221, 2,208,110, 48,155,205,224, 56, 14,169,109, 35, + 49,101, 68, 58,110, 33, 86,232,180, 12,108,117, 58,220,167,178,226, 84,215,158, 88,120,161, 18,231, 53, 90,112, 28, 23, 16, 39, +207,243, 94, 69,150, 72, 36,194,130, 5, 11,240,200, 35,143, 64, 36, 18, 5,196,231,122,143,146,147,147,215,230,229,229, 69, 48, + 12, 99,114,220, 35,153,205,102, 83,219,108,182, 8,187,221, 30,209,156,123,116, 35,195,198,243, 30,243,161,183, 60, 27,200,125, + 10,132,179,166,166,198,144,153,153,185, 71, 38,147, 45,142,142,142, 46, 45, 41, 41,241, 43,180,220,197,143,251, 75,197,103,159, +125,134,121,243,230, 97,200,144, 33, 1,133,211,100, 50,129, 97, 24, 44, 92,184,176,201,127,211,167, 79,111,114, 61, 63,156, 12, + 0, 54, 46, 46,238,249,245,235,215,171,133, 99,219,180,105, 3,177, 88,140,110,221,186, 33, 56, 56, 24, 59,118,236,128,221,110, + 15,184, 92, 82, 80, 80, 92,191,240,164, 69, 92, 48,112,242,228,201,189,179,178,178,102,102,100,100,252,176,107,215,174,229, 12, +195,100,187,212,137,153,142,250, 53, 91,248, 77, 8,233,227, 42,122, 28, 98, 45,146, 97,152,108,225,120,215,223,194, 39, 33,100, + 24, 0,169,240,123,242,228,201,105, 89, 89, 89, 51, 39, 77,154,244,246,172, 89,179, 36,147, 39, 79,238,158,149,149, 53, 83,184, +142,167,112,120,114,180,124,174, 61, 37, 52, 81,157, 62,125,218, 91, 19,149,235, 3,192,103,109,169,108, 19,233,116,178, 62, 72, +140,112,238,159, 86, 82,235,124,128,205,239,213, 1, 74,165, 18, 35, 62,248, 36, 32,167,200,108, 54,163,162,162,194,233, 50,248, +219, 2,229, 84,200,131,144,243,106, 55, 20, 87, 75,241,254,238, 26,172, 61,114, 22, 98,177, 24,119,118,237,134,187, 36,193,120, + 55, 81,138, 87,207, 20,193, 74, 2,235,211, 75, 8,241, 40,176,132,239, 66, 19, 74,160, 66,203,237, 30, 21, 27,141,198,234,252, +252,124, 3,223,240, 96,151, 19, 66,194, 24,134,169,119,184, 92,177,129,222,163, 27, 25,153, 61,218, 59, 93,167,189,193, 67,157, +251, 71,235,142, 57,239,201,196, 5, 31, 3, 0,134,244,188,213,111,121, 8,132,179,186,186,218,208,127,232,224,109,118,131,249, +187,177, 99,199, 22,110,217,178, 69, 30, 72, 88, 61, 9, 45,193,181, 21, 68, 22,199,113, 48,155,205, 1,197,221,108, 54,123, 45, + 31, 18,137,228, 74, 28, 45,232,116, 58,243,234,213,171, 49,127,254,124, 68, 68, 68, 96,248,240,225,136,141,141,197,202,149, 43, + 65, 8,193,139, 47,190, 8,185, 92, 46,184,215, 52, 3, 82, 80,220,216,240,165, 69,100, 89, 89, 89, 51,221,133,140,235,111, 87, + 1,229, 38,166, 92,197, 90,154,159,231,127,182,187,120, 18,174,203, 48, 76,246,172, 89,179, 50,253,132,163,210,155,208,242, 57, + 37,190,201,100, 42,236,209,163, 71, 64,106, 66,175,215,151,249, 19, 27,158,222,234, 93, 93, 2,149, 74, 5,165, 90, 5, 54,192, +122,215,106,181, 58,133,202,166, 77,155, 32,151,203, 49,114,228,200,171,114,180, 44, 22, 11,164, 18, 49,216, 54,209, 24, 55,103, + 11,170,235, 13,206, 7,204,214,130, 66, 28, 42,175,192,171, 25, 67,161,148, 87, 64,107, 54, 7,228,188,241, 60,223, 68,100,113, + 28,135,135, 30,122,200,233, 38,184,246, 91,129,143,166,195,136,136,136, 3, 28,199, 37,184,220,163,160,148,148, 20,224,143,126, + 61, 12,207,243,218,208,208,208,159, 1,196, 17, 66, 18, 0, 4, 7,114,143, 40, 60,231, 79,247,253,188,155, 83,117, 37,156,213, +213,213,134,204,204,204, 61,118,131,249,187,139, 23, 47,238, 1, 16,116,203, 45,183, 52, 91,104, 9, 2, 75, 44, 22, 99,246,236, +217,152, 55,111,158,243,255, 64,133,150,205,102,107, 36,160,206,156, 57,211,232, 90,238,194,206, 79,179, 41, 65,195,232, 66, 62, + 37, 37,197,121, 78, 76, 76, 12, 66, 67, 67,193,243, 60,120,158, 71, 80, 80, 16,228,114, 57, 36, 18, 9,205,116, 20, 20, 20,190, +180,136, 97,210,164, 73,111, 51, 12,147,237,112,150,142,251, 16, 84,158,180, 71, 31, 55,177, 86,233,229,184, 76, 79, 98,203,245, +187,128,201,147, 39,167,185,135,195, 83,115,165,179, 86,117,155,118,191, 17, 92,155,168, 90,234, 33,230,235, 65,166, 10, 85, 67, +174, 84, 66, 36, 98,193, 48, 12,241,199,101,177, 88,156, 21,255,115,207, 61,231,179,223, 74,160,253,169, 44, 22, 11, 88, 78,132, + 75, 49,201,176,179,219,157,231, 10, 27,203,137,113, 62,166, 51, 68,167, 15, 67, 28,224, 3,215,221,209,122,241,197, 23,177,104, +209, 34,176, 44,235, 76, 19,142,227,208,177, 99, 71, 20, 22, 22,250,228,226, 56, 46,225,252,249,243, 81,174,233, 40,136, 88, 66, + 8,236,118, 59,218,183,111,111,204,207,207,127,153, 22,221,171, 19, 89,222,246,219,237,124,192, 46,140,167,227,170,171,171, 13, + 99,198,140,217, 86, 87, 87,247,221, 77, 55,221,116, 6,141,167, 64,240,203,199,113, 92, 35,129, 37,136,172,207, 63,255,188,145, + 40,178, 90,173, 1,189, 8, 88,173,214, 38,130,231,211, 79, 63,109,244, 9, 0,253,250,245, 11,200, 25, 6, 64, 88,150, 37, 18, +137, 4,119,220,113, 7,186,119,239,142, 95,127,253, 21, 60,207,227,133, 23, 94,128, 92, 46,199,220,185,115, 97,179,217,240,209, + 71, 31, 81, 71,139,130,130,194,151, 22, 49,205,154, 53,235,248,172, 89,179,156,206,146,187,163,229,229,185,123,183, 67, 84, 69, + 10, 34, 13,128,201,147, 32,242,228,146,185, 11, 48,215,125, 89, 89, 89, 51,221,195,225,222, 92,217, 72,104, 93, 43,148,157, 56, +134, 79,110, 75, 7,208,184,185,112,193,173,157,161, 84, 41,161, 12, 86, 97,204,154,237, 0,224,168,244, 39, 5,228,104, 9, 66, +171,186,186,218,167,200,106,142,163,197, 74, 57,172, 74,184, 12, 34, 21,131, 51, 91, 27, 9, 45, 17, 39, 70,113, 68, 50, 88,177, + 4,156,221, 22, 16, 39, 33,164, 73, 83,225,248,241,227,193, 48,140,115,132, 88,143, 30, 61, 92,185, 24,127, 15,199, 55,194, 27, +250,224,185, 55,199,126, 84,101,164, 37,246, 74,242,231,129,175,113,234,167,231, 1, 0,253,117, 58,231,189,152,209,227,143,177, + 3,115,142,109,115,186,143, 31,224,245, 43,226,172,174,174, 54,220,210, 37,109,143, 36, 60,228,187, 11, 23, 46,236, 1,192, 62, +252,240,195,161, 61,122,244, 8,168, 76, 10,131, 43,220, 69,150,171,147, 37,124,250, 25, 97,235, 34, 28,237, 1, 9, 40,161, 25, + 49,128, 60, 79,132,188,173, 86,171,161, 82,169,156, 35,110,131,130,130,160, 80, 40,156,253, 59, 3, 20,110, 20, 20, 20, 55, 46, +194, 4,161,227, 16, 75,141,156, 38, 71,223,170, 76,215,223,158, 28, 47,135, 3,149,235,167,126, 93,235, 16,104, 30, 33, 56,107, +110,231,100,123, 19,105,156,160, 32, 93, 63, 99, 98, 98,254,167, 82,169,146, 3,141,125,115, 70,177,217,173,150, 38,206, 22,195, + 48, 80, 5,171, 32, 87, 41, 33, 15, 86,121,117,189,124, 9, 45,193, 41, 18, 30, 58,139, 23, 47,134, 74,165,194, 63,254,241,143, +102,247,209,114, 10, 45, 9,139,141,178,205, 16, 73,185, 70, 34,139,227, 56,136,196, 98,148,169, 98,193,138,197,224,108,129,185, +100,117,117,117,224, 56, 14, 83,166, 76,113,190,193,187,138,172,230,196,217, 23, 88,134, 17,220, 45, 89,135, 14, 29, 94,103, 24, + 38, 17, 64,146, 78,167,147, 93,186,116,233,118, 90, 94,125, 40, 3,187,181,137, 11,229,205,125,189, 82, 78,193,201,146,132,135, +124,215,185,115,103,167,147,165, 80, 40,132,209,166,254,239, 49,203,122, 20, 89,238, 35, 4, 57,142,107,200,203,126, 70, 71,186, + 58, 90,179,102,205,114,242,186, 58, 89, 2,154, 83,142,132,176,110,219,182, 13,135, 14, 29,194,115,207, 61, 7,185, 92,142,121, +243,230,193,102,179, 97,250,244,233,144,203,229,144, 74,165, 52,243, 81, 80, 80, 55,171,145, 22,113, 67,165, 91, 63, 40,198, 77, +212, 84,122, 18, 88,174,205,132,194,119,134, 97,172, 30,120,205,110, 77,138,238,251,133,207,234, 89,179,102,109, 17,156, 44,151, +253,141,194,225,215,209,146,201,100,201,249,249,249,206,137, 48,125,125,154,205,102, 12, 25, 50, 36, 96,103, 76, 24,117,200,113, +162, 70,194, 66, 17,172,130, 66, 29, 12,185, 74,229, 46, 56, 24,127,149,184,240, 70,236, 42,180,166, 78,157, 10,142,227,176,104, +209, 34, 0,192,235,175,191, 30,112, 31, 45,129, 19,118, 6, 37,228, 28,210,231,140,134,249,123, 43,202,119,254, 14,142,227, 16, +213,247, 46,240,183,140,134, 94,174, 2,103,183, 5, 60,234,176,166,166, 6,133,133,133, 16,137, 68,120,237,181,215, 26,205,117, +228, 62,146,109,211,166, 77,126,227,238,201,201,154,122,161,198,201, 35,151,203,217,223,127,255, 61,153,231,249, 20,131,193,208, +161, 95,191,126, 60, 45,202,126, 68, 17,111, 11, 72, 84, 5,154, 63,221, 57,133, 62, 89,117,117,117,223, 93,184,112, 97, 47, 0, +118,236,216,177,161, 10,133, 2,223,124,243,141, 30,128,116,229,202,149,114,127,162, 72,200, 55,254, 68,150, 88, 44,110,200,203, +129,196,157, 52,158,178,196, 95,199,248, 64,242,188, 16, 86,134, 97, 96,183,219, 33,151,203, 27, 57, 89, 65, 65, 65,144,201,100, + 52,227, 81, 80, 80,248,171, 75,246, 7, 92,143, 19,210,199, 69, 84,237,191, 18,222,230, 92,207, 31, 56,111, 66,195,100, 50,225, +228,201,147,129,242, 4, 60, 49,102,219,222,183,226,131,139,117, 96, 24, 6,255,238,119, 19,148,106, 21, 20, 74, 37, 30,252,117, +155,179,226, 62, 54,243,117,200,148, 42,196, 13, 24, 30, 80, 69, 46, 52, 29,186, 10,173,218,218, 90,136,197, 98,124,248,225,135, + 96, 89, 22, 31,125,244, 17,226,227,227,113,233,210, 37,172, 92,185, 50, 32, 71, 75,100, 23, 33,246,137, 46, 80,140, 15,129,250, +137,129, 8,187, 99, 42, 46,154, 57,236, 50, 42, 48,208,120, 2,210,141,159,195,204,219, 3, 30,129,101,179,217,176,109,219, 54, +247, 14,239,206, 62, 85, 54,155, 13, 86,171, 21, 22,139, 5, 31,125,244, 81, 32, 35, 60,155,220, 55, 33, 13, 29,147,160,138,242, +242,242, 34, 9, 33,225, 0, 66, 0, 84,209,226,234, 27,177,125, 95, 68,100,239,103, 1, 0,107,102, 61,229,220, 63,229,216, 31, +249,115,246,247, 13, 11, 0,116, 78, 26,222, 44,206,234,234,106,195,157, 67,250,229, 26,121,241,183,221,186,117,107,228,100, 5, + 5, 5, 49,142,223, 1,217,101, 44,203, 66, 36, 18, 53,105, 46,244, 38,182, 2,233,163,101,179,217,156, 19,137,250,234,207,120, + 37,142,214, 83, 79, 61,133,216,216, 88,167,147,245,193, 7, 31, 64, 46,151, 99,242,228,201,176, 90,173,248,252,243,207,105,230, +163,160,160,184,230,162,236, 90,192, 99, 77,106, 52, 26,139,186,119,239, 14, 47,255,197, 7, 5, 5,137,221, 34, 21,215,177, 99, +199, 60, 15, 77,136,195, 0,228,120,170,212, 25,134, 65,176, 58, 24, 65, 42, 37, 20,110, 46, 86, 80,176, 26, 50,149, 10,172,196, + 99,101,222,132, 83,232, 91,226, 42,180,132,173,174,174, 14, 98,177, 24,243,231,207,135, 90,173,134,201,100,242,203, 41, 60,116, + 68, 34, 17,244,197,245, 56, 53, 51, 7,210,160, 93,232, 48,252, 17,196,138,229,144,236,248, 25, 6,187,213,223,132,165, 77, 56, + 59,117,234,132,247,222,123,175,201,180, 14,222, 16, 31, 31,239, 55,238,238, 78,214,236,155,218, 65, 34,149, 96,226,137, 98,152, + 76, 38,230,145, 71, 30,225, 1, 24, 0, 84, 26, 12,134, 11,129,164,103, 11,224,111,207,233,107, 84,172, 0,158,216, 61, 9, 24, +143,156,130,147,101,228,197,223, 22, 22, 22, 10, 78, 86,136, 66,161,192, 87, 95,125,165, 7,192, 78,159, 62, 93,145,152,152, 40, + 10, 36, 47,137, 68, 34,204,153, 51,199, 99,159, 44, 79,162,171, 57,229,200,245,220, 65,131, 6,121,156,176,212,139,120,107,194, + 41,132, 53, 34, 34,194,233,100,217,237,118,231,104, 67, 97,246,121, 31, 47, 21, 52,127, 82, 78,202,121,227,112, 94,151,240, 88, + 3, 95,186,116,233, 78,111, 39,180,111,223, 62, 63, 63, 63,191,163,176, 20,135,163,226,148, 24,141,198, 78,253,250,245,243,107, +237,240, 60, 15,153, 76, 6, 66, 8,110,127, 47, 11, 12, 11,176,104,252, 16,139,186,109, 40, 68, 34, 14,124,195, 82, 31,126, 71, + 29, 26, 12,134, 70, 15, 7, 79,155, 86,171,133,201,100, 10,120, 54,111,163,209,216,104, 10, 6,134,240, 56,255,219,138, 38,163, + 15,133, 45,208,126, 59, 65, 65, 65,141,154,126,252, 56, 86, 76, 32,142,150,107,211,163, 68, 42, 1, 39, 17, 11,142, 86,253,153, + 51,103,198,208,108, 30, 56,132, 1, 11, 0,144,218,111, 36,120,222, 14, 98,183, 55, 90, 38,169, 75,242,157,224,137, 29, 22,171, + 30, 38,147,201,223,180, 39, 76, 85, 85,149, 97,204,152, 49,219, 0,252,231,190,251,238,203, 67,195,236,194, 68,165, 82,201,196, + 98, 49, 15,160, 6, 0,185,124,249,114,200,197,139, 23,121,163,209,216,206, 95, 56,215,174, 93,139,147, 39, 79, 98,192,128, 1, +141,150,131, 18, 92, 81,215,217,221, 3,201,159, 66,115,185,167, 25,225,189, 9,185, 64, 33, 18,137, 16, 18, 18, 2,137, 68,130, + 15, 63,252, 16, 18,137, 4, 10,133, 2, 0,240,249,231,159, 59, 39, 95,165,160,160,160,184, 97,132,150,191,122,211, 71,179,162, +207, 38, 68,155,205, 86,146,152,152,216,172,139,217,237,246,114, 63,194,173,100,229,202,149, 18, 87, 23,194,223, 39, 33,164,220, +207,195,182,100,205,154, 53, 18, 79,238,134,183, 5,166,253,113,218,237,246,146,164,164, 36,175,142,137, 39, 88,173,214,139,254, + 68,107, 86,165,161,145, 72,152,120,162,216,235,218,137, 20,126,243,154,143,252,249,206,149,230,207, 51,169,169,169, 23, 67, 67, + 67,215, 69, 71, 71, 87,239,220,185, 51,162, 79,159, 62, 17,174,199,244,233,211, 39,214,237, 52, 51,188,175,115, 8,134, 97, 74, +238,187,239, 62,143,121, 94, 16, 77, 30,242,103,137,191, 60,191,111,223, 62,137,235,249,222,248, 93,202, 81, 73, 0,194,245,124, +122,122, 58,235,202,227, 45,239, 91,173,214, 74,154, 11, 41, 40, 40,110,120,161,101, 48, 24,138,187,119,239,110,243,242,223, 5, + 95,231, 86, 87, 87,247,110,233, 8, 88,173,214,126,127, 7,206,170,170,170, 22,141,187,205,102, 43,113, 76, 80,234,243, 24,154, +197,255,188,123, 4, 0, 21, 21, 21,183, 0,128, 78,167,131,191,101,117,154, 33, 8, 91, 60,127,218,108,182,126,173,145,166, 53, + 53, 53, 25, 52,103, 81, 80, 80, 80,161,213, 12,208,197,136,255, 26,104, 13,209, 74, 65, 65, 65, 65, 65, 65,209,178, 96,105, 18, + 80, 80, 80, 80, 80, 80, 80, 80,180, 14, 24, 52,140, 28,240,132,230,140, 38, 24,118, 5,215,206,161,156,148,147,114, 82, 78,202, + 73, 57, 41,231, 13,199,233,143,251,186, 25,205,120, 45,250, 75, 15,163,156,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188, 17, + 65, 8,161, 77,135, 20, 20, 20, 20, 20, 20, 20, 20,173, 5,142, 38,193,159, 6, 17,154, 49,163,126, 0,170, 57, 12,128,183, 5, +227,204, 12,195, 92,190, 2, 78, 6,128,196,177, 9, 19, 29, 89, 1, 88, 0, 88, 24,134, 33,254, 57,222,103, 75, 75,195,210,136, + 93,220,135, 48,140,152,231,113,164, 93,187,182,135, 25,230, 46, 51, 0, 40,163,187,116, 85, 41,229,195, 76, 22,115,178, 76, 44, + 61, 89,171,211,110, 50, 85,228, 23,209,236, 65, 65,241,167,224, 30, 0,211,208,208,173,100, 22,128, 21, 52, 73, 40, 40, 90, 73, +104,169, 84,170, 3, 44,203, 38,248,155,159, 71,128, 99, 45,179,146,203,151, 47,247,110,198,181,199,168, 84,170, 33, 98,177,248, + 54, 0,176, 90,173, 59,181, 90,237, 22, 0, 43, 1,216,174, 48, 78,106, 0, 15, 1,120,204,241,123,153,163,178,208, 92, 33, 95, +247,144,144,144,159,196, 98, 49,169,170,170,234, 11, 0, 17, 17, 17,123,172, 86, 43,163,209,104, 30, 4,112,180,153,124,172, 88, + 44,158,221,183,111,223,129,219,183,111,255, 15,128,249, 45,116, 47,101, 44,203,122, 20, 40, 60,207, 39, 93,129,200,146, 0, 8, +153, 63,127,126,196,210,165, 75,211, 75, 74, 74,186, 1, 64, 66, 66,194,177,177, 99,199, 30,158, 48, 97, 66, 53, 33,164,142, 97, + 24,139, 47,158,210,210,176,180,138,178,130,231,202, 43, 78, 62, 4, 0, 49,177,221, 86,136, 68,172,132,144,131,187, 21,109, 30, +107,211,177, 67,210,179, 63,124, 51, 95,146,148,220, 22,155,119, 29,186,121,194,203,111,167, 93, 4, 62,163, 98,235,218, 33, 56, + 56,248, 0,203,178, 9,190,202,184,167, 50,111,183,219, 75,106,106,106,122,123,227,228, 56, 46,193, 87,125,225,105, 31,207,243, + 5, 85, 85, 85, 30,167,154, 80,171,213,187, 57,142, 75, 14,148, 75,248,180,217,108, 37,222, 70,233,170,213,234, 3, 34,145, 40, +193, 87, 60, 61,253,199,243,124, 65,101,101,165,183,112, 54,137,123, 75,132,243, 74, 56,125,133, 83,168,143, 0,124, 30, 17, 17, +113,107,117,117,245,227, 0,222,214,104, 52, 61, 68, 34, 17,194,195,195,223, 54,155,205,103, 67, 66, 66,190,174,171,171,219, 5, +224,101, 0,116,189, 84, 10,138,150,130, 90,173, 46,215,106,181, 68, 0,207,243,196,106,181, 18,147,201, 68, 12, 6, 3,209,233, +116, 68,171,213, 18,141, 70, 67,234,234,234, 72,117,117, 53,137,140,140,116,159,188,209, 91, 27,110, 55,181, 90,157,159,149,149, +101, 42, 44, 44, 36, 22,139,133, 88, 44, 22, 82, 84, 84, 68, 62,249,228, 19,147, 90,173,206, 7,208,205,203,185,195,188, 84, 22, +119, 0, 88,158,158,158,110, 94,187,118, 45, 49, 26,141, 68,167,211,145, 21, 43, 86,144,155,110,186,201, 12, 96,185,227, 24, 54, + 64, 78, 0,232, 31, 19, 19, 83,114,238,220, 57,251,166, 77,155, 44, 33, 33, 33, 57, 33, 33, 33, 57, 69, 69, 69,246,115,231,206, +241,109,218,180, 41, 1,208,191, 25,225, 4,128,209, 19, 39, 78, 44, 47, 42, 42, 34,131, 6, 13, 58,226,178,159,129,255,117,238, +134,121,114,178, 8, 33, 49,132,144, 88, 52, 76,114,217,100, 35,132,196, 58,142, 9, 11,144, 83, 89, 80, 80,208, 54, 58, 58, 58, +139, 97, 24,179, 59, 31,195, 48,230,232,232,232,172,130,130,130,182,132, 16,165, 47,206,146, 11, 11,158, 94,183,118,104,173,238, +242,105,162,187,124,154,252,231,219,193,154,103, 38, 60,190, 60,182,125,207, 69,161, 9,105,243, 79,158, 62,179,144, 16,178,112, +203,254,252,133, 83,191,252,223,194,251, 39,204,253, 42, 34, 49,253,153,102,164,231,213,128,114, 2, 8, 13, 13, 45,211,233,116, +132, 16, 66,236,118, 59,177, 88, 44,196,100, 50, 17,189, 94, 79,180, 90, 45,169,175,175,119,150,243,186,186, 58,231,247,168,168, + 40,175,229, 61, 44, 44,172,220, 96, 48, 52,170, 59,204,102,179,179,254,208,235,245, 68,175,215, 19,157, 78,231,220,180, 90, 45, +137,139,139, 43,246, 17,206, 75, 66, 56,121,158, 39, 54,155,141, 88, 44, 22, 39,175,209,104,108,180,153, 76, 38, 98, 50,153, 72, + 98, 98, 98,192,225, 12,132,211,104, 52,146,132,132,132, 82,111,156,225,225,225,229, 70,163,177, 17,167,107,252,221,121,133,223, + 49, 49, 49,101,205,225, 12, 36,156,190,210,211,129,249,121,121,121,196, 96, 48,144,248,248,248,234, 7, 31,124,208,106,183,219, +201,218,181,107, 73,122,122, 58, 63,120,240, 96, 75, 85, 85, 21,249,199, 63,254, 65,124,188, 20,210,114, 68, 57, 41,188,155, 22, +222, 29, 45,134, 97,160, 84, 42,241,227,143, 63,122, 93,142,195,245,123,187,118,237, 2,189,110,239,228,228,228,109, 59,118,236, +144,199,198,254, 49, 33,182,217,108, 70, 88, 88, 24, 94,120,225, 5,233, 61,247,220,211,113,248,240,225,123,206,159, 63, 63, 8, +192, 1, 63,124, 15, 68, 70, 70,126, 49,101,202,148,232,135, 31,126, 24, 17, 17,141, 38,221,198,152, 49, 99,240,224,131, 15, 74, +242,242,242, 30, 89,188,120,241, 35, 11, 22, 44, 40,211,106,181, 19, 0,252,236,139, 84, 46,151,223, 23, 23, 23,247,213,142, 29, + 59,162,162,162,162,144,146,146,194,190,249,230,155, 29, 59,117,234, 36, 79, 72, 72, 96, 47, 93,186,132, 95,127,253, 53,254,209, + 71, 31, 93, 85, 94, 94,254,172,197, 98, 89, 29, 64,220,165, 17, 17, 17,111, 63,251,236,179,109, 52, 26,141,237,224,193,131,249, +194,126,169, 84, 58, 61, 35, 35,163,207,214,173, 91,191, 7,240,245,149, 56, 89,132, 16, 13,254,104,226, 19, 96, 21,254, 15,196, +217, 34,132, 72,143, 28, 57, 18,158,145,145,241,179,201,100,234,249,220,115,207, 93,152, 57,115,166, 92,173, 86,171, 1, 48, 26, +141,230,242,180,105,211,204,115,231,206,125,171,107,215,174, 67,119,239,222,253, 0, 33,196,234, 16,100, 77,249, 24,198, 25,158, +226,139,149,216,182,139,151,190, 55,249,245,132,143,103, 36,159,223,127,162,152,231,228,106,252, 55,247, 56,202,171,181,248,223, +238, 19,136,137, 8,102, 36, 50,113, 90, 72,252, 77,131,234, 46,158,200,133,143, 25,210, 41, 90, 6, 12,195, 64,161, 80,224,191, +255,253,111,147,165,171, 60, 45,107,197,113, 28, 66, 67, 67,253,174,110, 16, 20, 20,132, 77,155, 54,121, 92,123,209,211,146, 62, + 33, 33, 33,240,245,178,193, 48, 12,130,130,130,176,115,231, 78,176, 44,235,113,105, 32,247,125, 74,165, 18,172,143,181,174, 4, +206,220,220, 92,191, 92,194,167, 74,165, 2, 26,154,254,189, 23, 74,153, 12, 59,118,236,240, 26,103,247,239, 42,199,122,175,254, + 56,119,238,220,217,104,233, 47,247, 37,193, 92,127, 43,149, 74, 48,126, 72,195,194,194,250, 38, 36, 36, 96,223,190,125, 88,185, +114,101,120, 90, 90, 26,206,156, 57, 3,134, 97, 48,115,230, 76,230,166,155,110, 18,151,149,149, 97,192,128, 1,248,229,151, 95, +250,105, 52, 26, 90, 96, 40,254, 44,193, 34, 6,112, 51,128, 72, 52,116,187,169, 7, 16,138,134,149, 52,164, 0,170, 1,200, 29, +155, 9,128, 22, 64, 27,199,233, 85,142,186,197, 85, 32, 84,186, 46, 62, 77, 8,233,227,224, 22, 86,168,136,116, 57, 86,184,134, +251,111,247, 79,143,220, 28, 0,100,103,103, 11, 15,179,193,153,153,153,219, 92, 35, 23,136,200, 18,214, 41,243, 80,166,221,135, +104,202,148, 74,229, 79,123,246,236,145, 71, 70,254, 17, 7,147,201,132,250,250,122,104,181, 90,212,215,215, 35, 56, 56, 24, 43, + 87,174,148, 15, 29, 58,244,167,250,250,250, 78,142, 68,243,198, 57,231,210,165, 75,209, 54,155, 13, 82,169,231, 46, 74, 44,203, +162, 75,151, 46,120,251,237,183, 49, 98,196,136,152, 33, 67,134,204,113, 19, 90, 77,134,146, 42, 20,138,175, 14, 30, 60, 24,165, + 80, 40,144,159,159,143,146,146, 18, 76,156, 56,177, 45,207,243, 40, 46, 46,198,153, 51,103,112,241,226, 69, 44, 94,188, 56,106, +212,168, 81, 95,121, 16, 90,158,134,167, 62,247,234,171,175,118, 14, 11, 11, 99, 63,249,228,147, 90,157, 78,247,127,142,253,239, +205,155, 55,239,137,129, 3, 7, 70,253,243,159,255, 36, 59,119,238, 92,234,184,113, 94,211,211,181, 79,150,163,153, 15,142,204, +119,202,237,156, 46, 46,255,131, 16, 18, 3,192,196, 48, 76,173, 7, 78, 6, 64,200,240,225,195, 95, 51,153, 76, 61,119,236,216, +113,246,182,219,110, 75, 4,112, 73,200,124, 33, 33, 33,202, 57,115,230, 68,103,102,102,230,221,126,251,237, 61,135, 15, 31,254, + 90,101,101,229, 76, 66, 72,165, 75,159, 45, 39, 39,207,227, 72, 76,108,183, 21,185,187, 39, 60,180,117,167, 89,242,250,203, 83, + 47,180,107,155, 84,119, 36,191,198,126,162,160, 18,245, 6, 27,238,191,189, 97, 1,243,190,221,218,225,139, 31,119,224,133, 87, +222, 17,255,188, 98,201,131,103, 9,148,218,210, 19,107,125,164,231,213,130,114,194,217,196, 4,177, 88,140,187,238,186, 11, 12, +195, 52, 89,203, 83, 44, 22, 99,247,238,221,184,253,246,219, 33, 22,139,241,212, 83, 79, 5,196,201,113, 28,134, 15, 31,238, 92, + 71,209,149,207, 93, 52,120,209, 4, 57, 77,222, 14, 57, 14, 44,203,122, 93, 72,219,157,211, 95,189, 36,132,211, 23,151,235,127, +254,194,233, 88,242, 40, 96,145, 21, 40,167, 16, 78,142,227,208,175, 95, 63, 28, 62,124,216,167,232,242,162, 47, 27,197,253,242, +229,203,227, 58,117,234,148, 59,127,254,252,112, 0,168,174,174,118, 46,120, 47, 18,137,112,250,244,105,152,205,102,188,255,254, +251, 22,141, 70,243, 79, 90,142, 40,103,107,114,250,210, 34, 0, 6, 78,158, 60,185,119, 86, 86,214,204,140,140,140, 31,118,237, +218,181,156, 97,152,108, 66, 72,166,240, 57,121,242,228,180,172,172,172,153,147, 38, 77,122,123,214,172, 89,199, 25,134,201, 6, + 0,247,223,142,186, 36,211, 77,196, 69, 10, 60,142, 50,215,232, 88, 79,191,221, 63, 61,113, 59,133, 22, 0,100,102,102, 50,142, + 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,113,230,204,153,209,190, 68,150, 86,171, 69,105,105, 41, 18, 19, 19,241, +212, 83, 79, 69,207,159, 63,255, 69,155,205,246,169, 15, 90,137, 72, 36,194,190,125,251, 80, 81, 81,129,238,221,187, 35, 57, 57, +185,209, 1,231,206,157,195,186,117,235, 80, 91, 91,139, 94,189,122, 1, 13,157,187, 61,162, 71,143, 30,239,119,233,210,101, 56, +203,178, 54,185, 92,142, 35, 71,142,160,103,207,158,248,241,199, 31,209,174, 93, 59, 40, 20, 10,228,229,229,161,123,247,238,216, +182,109, 27, 34, 35, 35,145,158,158,110,211,104, 52,219,107,106,106,182,156, 63,127,254,125,111,225,140,143,143,159,250,204, 51, +207, 72, 75, 75, 75,249,239,190,251,110, 7,128, 29, 0, 94,124,231,157,119,158, 28, 49, 98, 68,212,161, 67,135,234,246,239,223, +191,215,139,200, 10,196,201,178,185, 63,148,236,118,187,201, 96, 48,152, 77, 38,147,149,101,217, 34,134, 97,204,118,187,189,147, + 55, 19, 98,252,248,241,237,171,170,170, 94,120,229,149, 87, 10, 29, 34,235, 52, 26, 58,192, 3, 0,108, 54,155, 73,171,213,106, + 50, 50, 50, 18, 31,125,244,209,179,203,151, 47,127, 97,252,248,241, 43,191,251,238, 59, 45, 0,131, 59, 97,187,118,109, 15,139, + 68,172, 68, 87, 31, 94,176,106,229,215,175,174, 91,243, 98,219,226,226,139, 29, 35,218, 68,234, 36,170,200,210,149,203,190, 61, + 0,192, 92, 90,169,193,209,115,101, 16,139, 69, 56, 89, 92,135,129,119,142, 17,159,205,159,209, 31,192, 90,250, 46,215,250, 47, +139,194, 34,212, 91,183,110,245,233,104,237,222,189, 27, 98,177, 24,114,185, 28,115,231,206,245, 73, 42, 8, 3,193, 45,242, 39, +102,132,197,209,125,185, 79, 60,207, 59, 23,122,119,223,254,239,255,254, 15,175,188,242, 74,163,107, 56,196, 6,227,143,211, 91, +248, 18,147,146, 80, 81, 94,222,104, 95, 32,139,210,219,237,118,136,197, 98, 44, 90,180, 8,153,153,153,200,206,206,246,249,121, +215, 93,119,129,101, 89, 18, 72,122,246,235,215, 15, 22,139,197, 25,230,211,167, 79,123,228, 93,176, 96,129,191, 96,222, 3, 96, + 90,207,158, 61,213, 67,134, 12, 65,110,110, 46, 30,124,240, 65,147,197, 98,201, 7,128,187,239,190, 59,117,254,252,249,210,131, + 7, 15, 34, 34, 34, 66,124,225,194,133,255,128,118,144,167,104,101,120,210, 34,194, 51, 47, 43, 43,107,166,187,136,113,133,240, + 63,195, 48,217,179,102,205,202,116, 21, 69,174,191, 5,215,201, 77,196,165,185, 58, 82,174, 34,202,155,128,114,123,222,186, 30, + 95,233, 81,104, 57, 34, 54,216,213, 5, 18, 42, 95,127, 34,203,199,155, 99, 35,132,132,132,140,188,255,254,251,157, 34,199,104, + 52, 58, 5,150, 32,178,132,223,121,121,121,232,221,187,183, 36, 36, 36,100,100,117,117,245,167, 1,136, 56,196,197,197,161,170, +170, 10,199,142, 29, 67, 98, 98, 34,172, 86, 43, 54,108,216,128,186,186, 58,136,197, 98, 72, 36, 18, 88, 44, 62,251,110,163, 75, +151, 46,119, 45, 93,186,180,247,146, 37, 75, 46, 11,111,116,203,150, 45, 3, 33, 4,145,145,145,208,235,245, 40, 47, 47,199,150, + 45, 91, 96,179,217,160, 82,169,144,146,146, 34,189,239,190,251,250, 79,155, 54, 77,236, 67,104,245,123,240,193, 7, 67,212,106, + 53, 94,126,249,101, 98,177, 88,102, 57,246, 77,157, 48, 97, 66, 68, 81, 81,145,249,233,167,159,222,103,177, 88, 62, 17,204, 68, + 87,129,227,229,198,122,117,178,172, 86,171,144,166,133, 90,173, 22,109,218,180, 73,116,117,182,188,137,193,157, 59,119,246, 3, + 32,154, 62,125,122, 16,128,114,215, 48,152,205,102,104,181, 90,232,116, 58,107, 93, 93, 93,197, 27,111,188, 97, 91,190,124,185, +200,113,206, 73, 79, 66,139, 97,238, 50,171,213, 10, 41, 33,162,119, 22, 46, 92,168, 26, 49, 98, 4,171, 82,169, 80, 95, 95,175, +254,223,250,245,170,161, 67,250,167,204,204,250,120,163, 58,161,123,249,206, 35, 5,184, 88, 86, 7,179,213,138,148,216,144, 6, + 63,140,162,213,225, 24,200,226,116,180, 92, 69, 69,110,110, 46,238,188,243, 78,103, 89,151, 72, 36,141,156, 47,127,156, 28,199, +225,206, 59,239,108,226,240,108,221,186,213,163,251,228, 15,174,162,200, 93, 28,121, 18, 96, 44,203,250,157, 48, 80,112,243, 60, +137, 45, 87, 87,223, 77,188,249,107,230, 0,199,113,152, 48, 97, 2,196, 98, 49,222,124,243, 77,112, 28,135,244,244,116,112, 28, +135,140,140, 12,136,197, 98,220,126,251,237,205,142,251,158, 61,123,208,179,103, 79,103,152,210,211,211,209,167, 79, 31,112, 28, +135, 1, 3, 6, 64, 44, 22, 99,248,240,225,129,112,190, 93, 95, 95,223, 67,165, 82, 33, 47, 47, 11, 97,163,210, 0, 0, 32, 0, + 73, 68, 65, 84, 15, 34,145, 8, 12,195,156, 1,208, 3, 0, 98, 99, 99,207,234,245,250,246, 70,163, 17,207, 60,243, 12, 99, 54, +155,187,191,249,230,155,239, 24,141, 70, 42,180, 40, 90, 13,238, 90,196, 5,134, 73,147, 38,189,205, 48, 76,182,224, 80,185, 59, + 79,158,126,123,168,155, 4, 7,106,191,163,172,246,113, 19,113,149, 12,195,236, 39,132,220,237,237, 92, 0,102, 55, 97,213,168, +233,208,181,217,208,175,163, 37, 84,190,129, 10, 45,127, 48, 26,141, 55, 71, 69, 69,121, 21, 89,174,159,102,179, 25,201,201,201, + 48, 26,141, 55, 55,247,161, 17, 27, 27, 11,139,197,130,175,191,254, 26, 18,137, 4, 18,201, 31,250,194,108,246,109, 22,157, 56, +113,162,112,207,158, 61, 61,123,245,234, 21,246,203, 47,191, 84, 14, 26, 52, 40,114,196,136, 17,144,203,229, 48, 24, 12,176, 90, +173,232,219,183, 47,186,116,233,130,146,146, 18,252,239,127,255,171,234,212,169, 83,155,189,123,247,242,101,101,101,231,125, 80, +223, 49,116,232, 80, 48, 12,131,245,235,215, 87, 1,216, 47,147,201,214,205,152, 49, 35,204,108, 54,243, 99,199,142,189, 80, 83, + 83,243, 10, 0,139, 84, 42,157, 55,104,208,160,140,156,156,156,239,121,158,159,219,220,140,234,158,182, 58,157, 14, 65, 65, 65, +129, 76, 37, 33,174,169,169,233, 6, 0, 74,165, 50, 28,192, 89,103, 14, 55, 24, 26,137, 97,179,217,108, 12, 15, 15, 87, 2,128, +227, 28,177, 23,206, 72,155, 13,171,206,159, 47, 8,118,237, 63, 23, 26, 26,138,199, 30,125,148,189,173, 95, 63,105,143,155,111, + 30,254,238,103, 75,126,140,139, 80,155, 83,226, 34, 96,181, 91,145,179,113, 3, 79,120,235, 70, 90,237, 92, 27,161, 37,136, 13, +119, 71, 75, 44, 22, 99,219,182,109, 77,246, 73, 36, 18,252,251,223,255, 14, 72, 24, 8,162,202, 91,211,153, 91, 83, 23,227, 79, +192,136,197, 98,136, 68, 34, 44, 90,180, 8, 60,207,227,213, 87, 95,109,212,156,232,202, 31,144,157,231, 34, 2,187, 76,229, 1, +152, 81, 50, 91,230, 60,223, 61,188,142,115, 2,114,201,230,207,159, 31,144,163,117,247,221,119,251, 21,174,174, 45, 12,174,225, + 58,124,248,176, 71,222,133, 11, 23,250, 77, 79,187,221,142,181,107,215, 58, 69,170,128,119,223,125,247, 25,169, 84, 26,189,125, +251,118,148,149,149, 65,167,211, 65,171,213,162,111,223,190, 41, 44,203, 30, 41, 43, 43, 43, 58,121,242,228,253,180,244, 80, 92, + 67, 71,203, 52,107,214,172,227,179,102,205,242,232, 88,185, 59, 75,190,156, 39, 65, 96, 57, 4, 81,164, 32,222,208,208,173,102, +191,191,115, 1, 72,221,155, 14,125, 26, 65,110, 42,114,154,167,202, 55,144,230,195, 0,237,116,142, 97, 24, 24,141, 70,143, 2, +203, 85, 28, 88, 44, 22,212,212,212,192,110,183, 95,241, 92, 95,158,222,100,253, 9,173, 99,199,142,253,227,201, 39,159, 44, 13, + 9, 9,233, 81, 89, 89, 89,193,243,252,237,187,119,239,142,228, 56, 14,106,181, 26,106,181, 26,235,214,173,131, 66,161,192,132, + 9, 19, 42,236,118,123,110,112,112,112,132,193, 96,248,189,172,172,236, 93,175, 10, 70, 44, 30, 62, 96,192, 0, 28, 60,120, 16, +151, 47, 95,222, 4, 32,253,241,199, 31,191,179,109,219,182,204,140, 25, 51,140,231,206,157,155, 11,160, 66,169, 84, 46, 93,186, +116,233,144, 94,189,122, 5,143, 29, 59, 22,219,182,109, 91, 8,192, 24,104,156,117, 58, 93, 35,129,165,209,104, 80, 95, 95, 15, +165, 82,105, 11, 48,205,196,248, 99,132, 33, 8, 33,206,123,227,112,179,132,251, 67, 56,142, 19, 70, 53,122, 19, 89, 80, 42,149, +211,151, 44, 89, 34,119, 31,164, 96,183,219, 81, 94, 94, 14,181, 90,141, 41,239,190, 43,249, 96,226, 63,123,138, 84,209,187, 89, +150,129,217, 66,106, 9,111,222,160, 43,127,120, 59,240, 62,173,121,174, 1, 4, 97,112,239,189,247, 54,105, 46,148, 72, 36,216, +180,105, 19, 70,141, 26,229,124,113,233,213,171,151,223,151, 43, 65, 24,220,115,207, 61, 78,103,104,195,134, 13, 30,155,253, 4, + 71, 42, 16, 65, 40, 28,251,210, 75, 47,129,227, 56,124,241,197, 23,120,237,181,215,192,178, 44,102,207,158, 13,150,101,241,222, +123,239, 5, 44, 50, 93, 5, 76,209,199, 13,159, 9,175,105, 80,189, 32, 26, 0, 16,172, 86, 11, 17,106, 86,221,195,113,156,211, +201,186,249,230,155, 33, 22,139,145,145,145, 1,142,227,156, 78,214,200,145, 35, 93,211,145, 4,194,201,113, 28,242,243,243,157, + 97,206,200,200,104,228,100,113, 28,135,187,239,190, 59,144, 96,206, 12, 13, 13,157,214,165, 75,151,174,115,230,204, 17,139, 68, + 34, 12, 29, 58, 52, 53, 38, 38,230,188,205,102,139,152, 62,125,186,194,195, 57,114, 0, 61,186,118,237,170,164,165,134,162, 21, + 29,173,105, 30,254, 10,115,237,115,213,140, 23,201,108,215,227, 5, 14,119,113,228,112,200,114,253,113,121, 58,215, 31, 56, 65, + 65,250,178,212, 3, 17, 90, 14,219,217,231,197, 20, 10,197,209,138,138,138, 12,185, 92,222, 72,100,121, 18, 92, 34,145, 8,101, +101,101, 80, 40, 20, 71, 77, 38, 83,139,221, 68,127, 77,135, 0,140,103,206,156,153,232,242,123,216,200,145, 35,191,219,180,105, + 83,108, 78, 78, 14,246,238,221,139,200,200, 72,204,159, 63,255, 82,121,121,249, 63, 0,108,170,170,170,242,123,221,246,237,219, +119, 83,169, 84,216,185,115, 39, 0,108, 3,240,207, 23, 94,120,129,177, 90,173, 88,176, 96,129, 14,192,250,208,208,208,181, 43, + 87,174,236,217,163, 71, 15,105, 78, 78,142,102,239,222,189,191, 5, 40,178,236, 60,207, 55, 17, 88,174,105, 26, 28, 28, 28,136, +163,101, 13, 9, 9, 57,166,209,104,198, 24, 12, 6,141, 76, 38, 11,214,104, 52, 38, 87,129, 37,240,115, 28, 39,206,207,207, 47, + 5,144, 18, 18, 18,114, 12, 94,154, 57, 57,142, 27, 58,116,232, 80,206,253, 30,148,151,151,163,172,172, 12, 22,139, 5,189,122, +245, 98, 68,140, 85,116,185,248,168,219,180, 14, 84,100, 93, 35, 71,139, 8,101, 93, 24, 37,232,105,164,225,134, 13, 27,156,191, + 89,150,197,183,223,126, 27,144, 40,218,180,105,147,207, 14,235,110, 77,135,126,173,113,225,248, 47,191,252,178, 97,121, 11,135, +147,197,178, 44, 38, 77,154, 4,153, 76,134, 25, 51,102, 96,210,164, 73,224, 56,206,111,211,161,171,128, 73,122, 83,239,250,114, +212, 80, 40, 28,253,161, 24,134,113, 21, 91, 76,160,226,205,151,155, 23, 72, 75,128, 43,167,112, 94, 80, 80,144,215,142,240,110, +156,190, 46,240, 95, 0, 5,177,177,177, 59, 51, 50, 50, 66, 14, 28, 56,128,217,179,103, 75, 76, 38, 83,187,156,156, 28,231,117, + 61,165,151, 78,167,147,211,146, 67,209, 26,110,150,143,191, 43,221,250, 87, 49,174,205,120, 62, 62,221,143,135,203, 62, 87,222, + 74,134, 97,172, 30,174, 87,233, 65, 92,185, 95,195,245,152, 74,175,142,150,191,202,194,159,224, 10,196,209,210,235,245,191,173, + 95,191,190,207,163,143, 62,202,249,106, 54,212,233,116,136,142,142,198,241,227,199,109,122,189,254,183, 0,156,178,150, 20, 90, +238,200,169,168,168, 16, 89,173, 86,116,236,216, 17,241,241,241, 48, 26,141,168,173,173, 21, 1,216, 20, 32,135, 68,169, 84,138, + 0,160,182,182, 22,104, 24,106,154,218,169, 83, 39, 28, 60,120, 16, 53, 53, 53, 63, 3, 24, 49,109,218,180, 94,125,251,246,149, +252,248,227,143,250,231,158,123,238,103,171,213, 26,144,210,224,121,222,108,179,217,146, 89,150,181,212,214,214, 94,116, 77,207, +232,232,232,112,165, 82,201,148,151,151, 91, 3, 17, 90, 61,122,244,216,119,225,194, 5, 76,159, 62,189,114,230,204,153,157,234, +235,235, 47,215,213,213,217, 92,197,150,209,104,100,219,180,105, 35, 91,176, 96,129, 28, 0,122,244,232,177,207,155,208,210,233, +116,109, 21,138, 63, 94,140, 77, 38, 19,202,202,202, 80, 86, 86,134,242,242,114,212,215,215, 35, 37, 37, 5,122,189, 62,145, 86, + 51,127,154,208,106,212,124,230, 90,190, 93, 31,228,205, 41,235,174, 2,230,222,123,239,117,246,237, 18, 28, 50, 97, 91,181,106, +149,123, 7,243,128,132,214,151, 95,126,137,151, 94,122, 9, 65, 65, 65,152, 51,103, 78,163,166, 67,119,113,192,243, 60, 19, 72, +220,147,223, 50,160,108, 94, 56,196, 98, 49, 34,158, 43,111,212, 68,231, 65,112, 4, 20,206,153, 51,103,182, 72,211,161, 43,103, + 98, 98, 67, 81, 89,180,104, 17,198,140, 25,131,237,219,183, 95,113,211, 97, 90, 90,218,178,236,236,236,144, 19, 39, 78, 64,163, +209,160,178,178, 18, 38,147, 9, 37, 37, 37, 94, 91, 5, 28,117,121, 16, 45, 57, 20,215,184,158,218,127, 45,121, 91,242,122,156, +159, 7,120,192, 66, 43, 16, 71,203,100, 50,205,121,249,229,151, 95, 24, 54,108, 88,120,112,112, 48, 74, 75, 75,155,136, 44,173, + 86, 11,149, 74, 5,131,193,128, 53,107,214,104, 76, 38,211, 28,127,226,192,106,181, 34, 42, 42, 10, 85, 85, 85,224,189,244,159, +102, 89, 22,114,185, 28, 90,173, 22,240,211,201,220,211, 3,195, 98,177,192,106,181,194,106,181,194, 98,177, 52,119, 69,110,133, + 82,169, 20,132, 7, 0,232,226,226,226, 58, 6, 5, 5,161,176,176, 16,104, 24,217, 55,236,206, 59,239, 20, 87, 87, 87,147,167, +159,126,122, 7, 33,228, 25,248,158, 29,223,156,155,155,155, 12, 0,114,185, 60, 15, 0, 74, 74, 74,172,181,181,181,141,156, 66, +133, 66, 65, 70,141, 26, 21, 75, 8, 65,110,110,110,178, 68, 34, 33,240, 62,170,209,184,122,245,234, 19, 33, 33, 33,203,179,178, +178, 30,205,204,204, 60,222,173, 91,183,100,157, 78, 87, 97, 48, 24, 12, 70,163,145,136, 68, 34, 73, 88, 88, 88,208,198,141, 27, +207,238,222,189,123,152, 90,173, 94,190,122,245,234, 19,222,156, 55,165, 82, 89,162,215,235,147,132,123,234, 42,178,202,202,202, + 64, 8, 65, 65, 65, 1, 20, 10,197, 5,127,205,186, 20,173, 7,225,165,202,221,121,113,223, 23,168,200,114, 21, 6, 27, 55,110, +244, 57,135, 86,160,156,174,162,232,181,215, 94,195,188,121,243,154, 56, 90, 51,102,204, 0, 0,188,251,238,187, 1,247,209, 18, +220,171,178,121,225,136,121,169,166, 81,216, 1,128, 17,194,215,188, 50, 15,142,227, 48,125,250,244, 38,157,212, 93,155,246, 2, +108,226,107, 20,206,138,138, 10,112, 28,135,240,240,112, 60,246,216, 99, 24, 62,124,184,179, 9,178,185,188,167, 78,157,218,249, +214, 91,111,117, 79, 75, 75,195,135, 31,126, 88, 19, 26, 26, 26,252,175,127,253,139,171,173,173,101,124, 57, 90, 84,104, 81, 80, +180,128,208, 18, 10, 88,160,163, 14,189, 84,150,195,208,120,174,141, 58,189, 94,255,216, 29,119,220,241,203,138, 21, 43,228,237, +219,183,199,169, 83,167, 80, 83, 83, 3,179,217, 12,137, 68,130,216,216, 88,212,214,214,226,219,111,191, 53,232,245,250,199, 0, +212,249,225,124,167,119,239,222, 95,125,250,233,167, 65,233,233,233,168,169,169,129, 86,171,117, 10, 33,134, 97,160, 86,171, 33, +151,203,177,111,223, 62,108,216,176,193, 0,224, 29, 63,156,158,212, 28, 44, 22,139, 83,112, 5, 32,180, 92, 57,149,130,171,163, +215,235, 1,192,218,182,109,219, 24, 0, 40, 40, 40, 0,128,162,148,148,148,105,237,219,183,103,150, 46, 93, 74, 8, 33, 27,188, +136, 44, 39, 39,195, 48, 53,132,144,203, 0, 98,204,102,179, 4, 0,234,234,234, 44,109,218,180,137,146,201,100,188, 92, 46,231, +131,130,130,248,210,210, 82,155,205,102,147, 0,192,128, 1, 3,204, 0,202,220,214, 40,116,229,228, 9, 33,154,133, 11, 23, 78, + 27, 59,118,108, 70,191,126,253,210,158,127,254,249, 99, 79, 63,253, 52, 27, 31, 31, 31, 86, 95, 95,111, 60,115,230,204,229,207, + 62,251,172,126,207,158, 61,195,196, 98,241,249,133, 11, 23, 78, 3,160, 97, 24,134,247,196,105,179,217,126,203,201,201,249, 71, +102,102, 38,119,241,226, 69,148,151,151, 59, 69, 86,121,121, 57,186,116,233,130,221,187,119,219, 45, 22, 75, 78, 51,210,179,165, + 64, 57, 27, 94, 66,136, 80,214,189, 9, 44,225,101, 42, 80, 78, 87, 81, 52,102,204,152, 70, 46,150, 68, 34,193, 79, 63,253,228, +177,222,240, 80,174, 26,197,221,117,142,175,183,222,122,171,145,104,155, 50,101,138,215,234,204, 95,122, 10, 60,117,139,226, 27, +143, 58,244, 82,206,125,133, 83,168, 59,197, 98, 49,166, 76,153, 18,176,163,133,166,125,180,154,112, 10,113, 31, 52,104, 16,244, +122,189, 83,200,122,115,180,252,165,167,221,110,127,105,222,188,121, 68,173, 86,223,170,209,104, 30,191,112,225,194, 98,189, 94, +127, 75, 93, 93,157, 79, 71,203,100, 50,201,104, 57,162,156,104,157,249,185,110, 28,161,229,120, 72,162,109,219,182,141,214,206, + 98, 89,182,209,214,156,126, 6, 14,108,204,207,207,127,224,182,219,110,251,254,165,151, 94, 10, 78, 79, 79, 23, 39, 37, 37, 65, +167,211,161,176,176, 16,199,143, 31,183,173, 94,189, 90,163,215,235, 31, 7, 16,200,168,179, 37, 39, 78,156,216, 48, 98,196,136, +247,250,246,237,251,236,212,169, 83, 69,169,169,169,168,171,171, 67, 88, 88, 24,162,162,162,112,250,244,105,172, 89,179,198, 94, + 85, 85,245, 21,128, 15,224,161, 13,213,223, 11,191,197, 98,193, 35,143, 60, 2,158,231, 49,119,238, 92, 4,178,160,178, 11, 44, + 22,139,133, 0, 96, 28,253,185,244,142,217,165,113,230,204, 25, 0, 56,159,156,156, 28, 12, 0, 57, 57, 57, 12, 26,230,215, 10, +228, 13,159, 16, 66,156,206, 86,151, 46, 93, 10,221, 43, 71,193,201, 18, 92, 48,127,225,102, 24,198, 72, 8,169,208,235,245, 35, + 94,123,237,181,247,190,252,242,203, 71,191,252,242,203, 38,199,169,213,234,229,179,103,207,254,224,161,135, 30,170, 96, 24,198, +107, 63, 50,157, 78,247,238,184,113,227, 30, 58,122,244,104,112, 80, 80, 16,116, 58, 29,170,171,171, 97,177, 88,144,146,146,130, +138,138, 10, 44, 89,178,164,222, 96, 48,188, 79,139,227,159, 3, 87, 97,224,205,213, 10, 64,100,121,117,117,254,251,223,255,122, +156,163,170,185,156,238, 98, 35,208,185,173,124,189, 20, 9,211,210,120,154, 50,162,153,245, 90, 19, 94,142,227,240,201, 39,159, + 56, 39,109,245,228,100, 53,199,209, 18, 56,195,195,195, 27,108,114,133, 2, 60,207,227,238,187,239,190, 26, 94, 30,192, 4,151, + 25,223,103,190,241,198, 27,211,186,116,233,146, 10, 64,230,154, 6,205,116,241, 41, 40, 40,252, 9, 45,187,221, 94,210,185,115, +231, 70, 21,156,191,197, 76,173, 86,107, 73,128,215,221,160,211,233, 82,102,207,158,253,178, 82,169, 28,166,215,235,187, 59, 42, +142,163, 58,157, 46,199,100, 50,125,142,230, 45, 2, 93, 9,224,197, 61,123,246,204, 29, 49, 98,196,140,219,111,191,125,244,196, +137, 19, 25, 66, 8, 22, 44, 88, 64,206,157, 59,183,202,225, 98,157,187,146, 68, 10, 15, 15, 63,241,237,183,223, 70,255,242,203, + 47,176, 90,173,248,252,243,207, 17, 28, 28,124,162,166,166, 38, 80,138,138,205,155, 55,127,215,175, 95,191, 39,118,239,222,189, + 4,192,239,219,182,109, 91,220,191,127,255,113,187,119,239, 94, 6,224,248,150, 45, 91, 22,247,237,219,119,220,254,253,251, 87, + 2, 56,220,140,202,215,233,108,217,108,158, 91, 26,189, 56, 89,190, 56, 53,132, 16,203,147, 79, 62, 57,241,161,135, 30,250,122, +255,254,253,183,212,214,214,118, 7,128,208,208,208,163,125,250,244,217,183, 98,197,138,211, 14, 39,203, 95,103,253, 74,157, 78, + 55,170,123,247,238, 63,127,248,225,135,202,180,180, 52,174, 99,199,142, 40, 42, 42,194,177, 99,199,108,255,249,207,127,180, 6, +131,225, 94, 0,151,105,113,252,243,132, 22, 33, 4,161,161,161,141, 94,162,132, 33,255,205,109, 46,116,125, 48, 11, 75,245,184, +243,122,227,244, 53,109,130, 0,149, 74,229,156,220, 52,144, 46, 11, 60,239,123, 62, 54, 66,136,147, 83,216, 2, 16, 89,126, 71, + 8, 58,150,192, 9,152, 51,144,233, 29,148, 74, 37,172, 86,171,147, 55,128,145,159,205, 85,139,255, 5,240, 95,171,213,122, 6, + 64, 7, 42,174, 40, 40, 90, 81,104, 93,190,124,185,119, 43, 95, 91, 99, 50,153, 62, 48,153, 76, 31, 8, 59,140, 70,227,213,114, +158, 3,240,208,230,205,155, 63,221,188,121,179,208,142, 48, 29,254,215, 75,244,137, 83,167, 78,101,138,197,226,127, 47, 95,190, +188, 47, 33, 4, 33, 33, 33,123,138,138,138,254,213, 28, 14,187,221,254,228,238,221,187, 95,128,163, 47,147,197, 98,121,114,231, +206,157, 47,163, 97, 61, 38,216,237,246, 39,247,238,221,235,252,221,204, 7, 37, 33,132,152, 8, 33,113, 94, 14, 49, 53,211,129, + 19,156, 45,243,138, 21, 43,180, 0,142,224,143,121,178,172,142,205,232,214, 92,232, 11, 91,116, 58, 93,199, 41, 83,166,204, 20, +137, 68, 67,117, 58, 93,188, 82,169, 44,182,217,108,191,233,245,250,119,208,176, 70, 21,197,159, 4,179,217,124,177,115,231,206, +156,167, 23, 40, 95, 15,114, 95, 47, 86,118,187,189,164, 83,167, 78,126, 95,206, 60,112, 94,244, 33, 26,206,167,164,164,176,129, +114, 9,176, 88, 44, 21,190,194,153,146,146,130,230,114,250,139,123,114,114,178,199,184,251, 17,132, 94,227,110,179,217,174,136, +211, 87,122,250,130,193, 96,184, 28, 25, 25,169, 53, 26,141, 98,147,201, 36,182,217,108,141,236, 71,185, 92, 94,105, 48, 24,104, +225,161,160,184, 26,161,245, 55,199, 1, 52, 44, 47,209, 82, 48, 29, 61,122,244, 9,167, 61, 85, 81,113,165, 60,238, 74, 82,235, +231,119,115,132, 81,139, 59, 66, 14, 33,165,111, 33,186, 42,173, 86,251,180,240, 67,232, 3, 66,241,231,163,186,186,250,214,150, +230,172,169,169,105,241, 23,181,170,170,170,140, 86,136,123,239, 27,149,211, 23, 74, 75, 75,111,245, 35,196,104,193,161,160, 8, + 16, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,214, 1,131,134,145, 3,158,208,156,209, 4,195,174,224,218, 57,148,147,114, 82, + 78,202, 73, 57, 41, 39,229,188,225, 56,253,113, 95, 55,163, 25,175, 69, 63,199, 97,148,147,114, 82, 78,202, 73, 57, 41, 39,229, +164,156, 55, 34, 8, 33,180,233,144,130,130,130,130,130,130,130,162,181, 64,133, 22, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, + 20, 20,127, 83,164,182,109,219,246,100,106,106,234, 69, 0,227, 91,249, 90,143,245,237,219,183, 90, 38,147,109, 4,144, 74,147, +158,130,130,130, 10, 45, 10, 10,138,235, 90,100,117,239,222,125,199,169, 83,167,186,228,228,228,196,197,199,199,127,220,154, 23, +235,221,187,247, 71,219,183,111, 15, 95,191,126,253, 29, 49, 49, 49,185, 87, 40,182, 82,219,181,107,119, 50, 53, 53,181, 4,192, + 99, 45, 28,196,241, 25, 25, 25, 53, 82,169,116, 3, 21,130, 20, 55, 0,186, 1,232, 78,133, 22, 5, 5, 5, 69, 43,138,172, 93, +187,118, 69, 24,141, 70,156, 58,117, 10,149,149,149,135, 91,243,130,121,121,121,151,119,237,218,133,132,132, 4, 44, 91,182, 44, + 50, 57, 57,121,123, 51, 5, 77,106,247,238,221,119,156, 60,121,178, 75, 78, 78, 78,124, 84, 84,212,103, 45, 25,190, 91,110,185, +101,198,246,237,219,195, 54,110,220, 56, 60, 50, 50,242, 74,133, 32, 5,197, 95, 25, 50, 0, 79, 48, 12,179,175, 91,183,110, 71, +211,210,210,126,103, 24,102, 55,128, 49,184,126,231,238, 12, 12,217,217,217,219,178,179,179,183,209, 60, 66, 65, 65,209, 2, 72, + 75, 75, 75,211,233,116, 58, 82, 89, 89, 73,190,248,226, 11, 18, 30, 30,110, 1,240, 27,128,213, 30,182,183, 1,168, 3,228, 86, + 59,142,247,196,243, 91,120,120,184,229,139, 47,190, 32, 5, 5, 5,228,196,137, 19, 36, 53, 53,213, 16,160,160, 73,237,222,189, +123,149, 16,230,117,235,214, 17,142,227, 54,180,100,162,168,213,234,227,185,185,185,228,220,185,115,100,227,198,141, 36, 58, 58, +186,130,138, 45,138,235, 4, 73, 0, 62, 82,169, 84, 53,247,220,115, 15,249,230,155,111,200,154, 53,107,200,207, 63,255, 76,230, +204,153, 67,134, 12, 25, 66,164, 82,233, 69, 0,111, 2, 8,189, 81,180, 8, 33,164, 97, 85,251,236,236,108, 2, 96, 48, 0,100, +102,102, 82,177, 69, 65, 65,113,181,216,165,215,235, 51,244,122, 61,234,235,235,209,182,109, 91,136,197, 98,143, 7, 86, 84, 84, + 96,231,206,157,152, 48, 97,194,137,178,178,178,129,240,189,238,101, 88,207,158, 61,119,109,217,178, 37, 53, 56, 56,216,185,147, +231,121, 88, 44, 22, 88,173, 86, 88, 44, 22,152, 76, 38,152, 76, 38, 72,165, 82,200,229,114,132,135,135, 31,131,239, 38, 12,167, +251,102, 48, 24,112,232,208, 33,140, 29, 59,182,178,186,186,122, 32,128,188, 22, 76,151,212,168,168,168,220, 37, 75,150, 68,166, +164,164,224,194,133, 11,120,234,169,167,170,206,159, 63, 63,160,133,175, 67, 65,113, 45, 49,233,129, 7, 30,152, 17, 29, 29,205, +118,235,214, 13,177,177,177, 48,153, 76, 48, 24, 12, 32,132,128,227, 56, 16, 66, 80, 87, 87,135,220,220, 92,108,217,178,197,116, +249,242,229,111, 1,124, 14, 32,223, 69,100, 93,119, 90,164,145,208,202,204,204,100,104, 94,161,160,160,104, 33, 28,173,171,171, +235,102, 50,153,160,211,233, 2, 58,161,160,160, 0,227,199,143, 63, 81, 86, 86,118, 27, 60, 47, 42,175,238,217,179,231,222,220, +220,220, 84,163,209, 8,141,198,255,186,243, 82,169, 20, 65, 65, 65,136,136,136,216, 13,160,159,183, 55,241,110,221,186, 29,216, +189,123,119,184,193, 96,192,225,195,135,241,216, 99,143, 89,106,106,106,118, 0,240, 22,248, 26, 52,172,163,122,222,195,127,137, + 0, 94,118,188,225,123,130, 50, 50, 50,178,255,210,165, 75, 37,237,219,183,135, 94,175,199,152, 49, 99,106,242,242,242,250, 0, + 40,164, 89,135,226,111,136,188, 83,167, 78,117,178,219,237,168,170,170,130,201,100,130, 94,175,119, 10, 45,145, 72, 4, 66, 8, +108, 54,155,243,197,232,224,193,131,200,201,201, 33, 5, 5, 5, 83, 29,101,233,186,212, 34, 84,104, 81, 80, 80,180, 22, 82, 59, +117,234,116,248,127,255,251, 95,144, 68, 34,193,154, 53,107, 48,117,234, 84,107, 77, 77,205,118,119,241, 18, 29, 29,157,182,120, +241,226,228,148,148, 20,252,254,251,239,120,240,193, 7,223, 1, 48,211, 3,231,219, 26,141,102,134,197, 98,193,225,195,135, 49, +110,220,184,194,242,242,242,227,238, 34, 38, 57, 57,121,192,103,159,125, 38,238,213,171, 23, 52, 26, 13, 70,143, 30,173, 63,125, +250,116, 95, 0,199,189,132,245,179,154,154,154,215,236,118, 59,234,235,235,145,144,144, 0,137, 68,226, 51,114, 6,131, 1, 73, + 73, 73,187, 43, 43, 43,155,136,183,136,136,136,205, 23, 46, 92, 24, 34,151,203,125,114, 88, 44, 22,148,148,148, 64, 42,149,194, +100, 50,161, 67,135, 14,223, 2,120,146,102, 29,138,191,163,208, 58,114,228, 72,167, 31,126,248, 1, 61,123,246, 68,215,174, 93, +161,213,106,157,162,203,108, 54,195,106,181, 54, 57, 73,163,209,224,213, 87, 95,205,135,163,249,252,122, 21, 90, 66,199,180,105, + 66,155,104,102,102,230, 32,154,103, 40, 40, 40,174,182,226,205,207,207, 79, 31, 54,108,216,246, 85,171, 86,181, 25, 57,114, 36, + 58,116,232, 32,190,255,254,251, 35,245,122,253, 80,215, 3,203,203,203,195,198,141, 27,119,160,184,184, 56,217,177,171,143, 23, +206, 62,193,193,193, 40, 40, 40, 16, 68, 86,111,184, 53, 51, 74,165,210, 13, 71,142, 28, 17, 75,165, 82,236,223,191, 31,227,199, +143,175, 42, 44, 44,244,215, 44, 23,106, 54,155, 33, 18,137, 0, 0, 37, 37, 37,126, 35,119,225,194, 5,240, 60,111,242,244, 31, +203,178,178,131, 7, 15, 34, 46, 46,206, 39, 7,203,178,238,130,174,150,102, 27,138,191, 41,172,102,179, 25,189,123,247, 70, 97, + 97, 33, 14, 30, 60,232, 20, 92, 85, 85, 85, 40, 45, 45,109,116,240,190,125,251,112,232,208, 33, 12, 28, 56,208,157,231,186,212, + 34, 78,229,152,157,157, 61,200, 17,185,109, 52,207, 80, 80, 80,180, 16, 82,227,226,226,114,151, 44, 89, 18, 25, 27, 27,139, 33, + 67,134, 20,151,149,149,181,243,112,220,106, 66,200,189, 5, 5, 5,104,223,190,253, 26, 0,247, 93,201, 49,137,137,137,149,251, +247,239,111,115,226,196, 9, 60,246,216, 99,149,142, 62, 95,254,250, 62, 37,119,233,210,101,255,198,141, 27,195, 89,150,197,241, +227,199, 3,105, 58, 44, 66, 67,255,146,243, 30,254, 75, 4, 48, 5, 64,184,151,115,149,157, 58,117,234,127,224,192, 1, 9,195, + 48, 40, 42, 42, 18,154, 14,123, 59,120, 41, 40,254,110, 24, 21, 23, 23,247,159, 23, 94,120, 33,164,111,223,190, 40, 41, 41,193, +197,139, 23,113,249,242,101,164,167,167, 35, 45, 45, 13,231,206,157,195,134, 13, 27,112,232,208, 33,200,100, 50, 36, 36, 36, 64, +181,252, 7,252,155,193, 9, 0,105,215,171, 22,185, 22,107, 29, 82, 80, 80, 80,164, 74, 36,146, 13,241,241,241, 21,240, 60, 47, + 85,216,232,209,163, 75,237,118, 59, 57,119,238, 28, 65,195,232, 65,120, 17, 90,228,220,185,115, 36, 58, 58,186, 0, 64,152,135, + 99,198,199,196,196, 20, 43, 20,138, 99,104,230,180, 14, 29, 59,118,172, 60,125,250, 52, 41, 46, 46, 38,235,215,175, 39, 17, 17, + 17,173, 49, 34, 48,181,115,231,206, 85,245,245,245,196,104, 52,146,220,220, 92,146,152,152, 88, 9, 58,242,144,226,239,143, 96, + 0,211, 83, 82, 82,140,159,126,250, 41,217,176, 97, 3, 89,180,104, 17,153, 49, 99, 6,153, 56,113, 34,201,200,200, 32, 25, 25, + 25,100,204,152, 49,228,181,215, 94, 35,119,222,121, 39, 81,169, 84,117, 0,238,191,158, 19,133, 10, 45, 10, 10,138, 63, 3,137, + 0,230, 56, 4,213,234,209,163, 71,151,154, 76, 38,114,241,226, 69,242,211, 79, 63, 17, 52, 76,221,224, 9,111,151,149,149,145, +178,178, 50, 97,106,132, 2,252, 49,173,195, 55, 14,222,171, 18, 65, 73, 73, 73,149, 7, 14, 28, 32, 69, 69, 69,100,221,186,117, +196, 33,216, 90, 12,114,185,124,163, 70,163, 33, 70,163,145,108,222,188,153, 78,239, 64,113, 61, 34, 10,192,252,155,110,186,201, + 58,119,238, 92,178,122,245,106,242,197, 23, 95,144, 81,163, 70,145, 55,223,124,147, 60,252,240,195, 36, 50, 50,210, 4, 32, 11, + 64,200,245,158, 24,215, 66,104,209,149,205, 41, 39,229,164,156,238,216,112,226,196, 9, 34,192,110,183,147,139, 23, 47,146,141, + 27, 55,146,152,152,152,227,104, 60,159,150, 43,167,186,107,215,174,167, 78,159, 62, 77, 46, 92,184, 64, 44, 22,139,147,227,212, +169, 83, 4,192,182, 22, 8,103,106,124,124,124,197,214,173, 91,201,233,211,167, 73, 76, 76, 76,113, 75,198, 61, 41, 41,169,162, +178,178,146,108,222,188,153, 68, 70, 70,250, 19, 89, 52, 47, 81,206,191, 51,103, 18,128,165,189,122,245,178,207,155, 55,143, 60, +251,236,179, 36, 49, 49,209,238,120, 41,138,191, 81, 84,167,107,103,120, 10, 10, 10,138,107, 5,217,158, 61,123, 32,147,201,156, + 59,126,255,253,119,215,121,180,188,205,219,160, 57,121,242,228,109, 35, 71,142,220, 62,111,222,188,174,174,163,152,182,110,221, + 10, 0,166, 22, 8, 91,222,197,139, 23, 7,142, 24, 49,226,243,136,136,136,155,203,202,202,222,107,201,136, 23, 21, 21,189,214, +189,123,247,153,245,245,245, 26,189, 94, 63, 6,116,238, 44,138,235, 23, 69, 0,198, 30, 60,120,240,227,131, 7, 15,190, 3,128, + 0,248, 16,192,201, 27, 45, 33,168,208,162,160,160,184,214, 24,255,244,211, 79,187,119, 22,223, 15,224,255,124,136, 44, 1,151, + 11, 11, 11,251,221,125,247,221, 47,160,241,232, 68,161,115,122, 75, 32,207,108, 54, 15,119, 31, 41,213, 66, 88, 86, 86, 86,182, +140,102, 1,138, 27, 8,199, 1, 60,124, 35, 39, 0, 21, 90, 20, 20, 20,215, 26,231, 1, 60,117, 21,231,107,224,121,158, 45, 10, + 10, 10,138,191, 28,232,162,210, 20, 20, 20, 20, 20, 20, 20, 20, 84,104, 81, 80, 80, 80, 80, 80, 80, 80,252,189,192,192,251,200, +129,156,102,240, 92,201,136,134, 28,202, 73, 57, 41, 39,229,164,156,148,147,114,222,112,156,254,184,115,112,157,128, 78,239, 64, + 57, 41, 39,229,164,156,148,179, 53, 56, 25,199,198, 58, 54,225,247, 95, 57,238,204, 95, 56,238, 55, 10,231,117,135, 63,115,122, + 7,225, 70,240,104, 24,242, 73,241,215,131,107, 1, 33,244, 62, 81, 80, 80, 52,179,238, 16,185, 60,108,237,142, 13,127,193,186, +196, 85, 20,240, 87,249, 92,106,141,184,223,200,156,215, 5,124, 9,173,155,149, 74,229, 84,169, 84,154,194, 48,140, 93,167,211, + 29, 53,153, 76, 11, 1,236,190,202,107,126, 19, 29, 29, 61,190,186,186,154,103, 89, 22, 44,203,130, 97, 24,176, 44, 11,177, 88, +108,168,171,171, 83, 95, 9,105,100,183, 81,175,115, 12,243,146,157,216, 23, 86, 28, 91, 51,195,223,126, 10,223, 5, 70, 34,145, + 60, 16, 30, 30, 30, 90, 89, 89, 73, 88,182,161, 43,159, 72, 36, 18, 22,194,181,213,213,213,125, 23, 40, 89, 88, 88,216,190,240, +240,240, 80,225,124,134, 97, 80, 93, 93, 93, 91, 81, 81,113, 11, 0, 4, 5, 5,237, 84, 42,149, 17, 28,199, 65, 36, 18, 65, 36, + 18, 65,175,215, 87, 87, 87, 87,223, 70,111,197,223, 19, 43, 87,174, 20,141,136,127,170, 3, 71, 12, 61, 88,150,132,240, 60, 83, +103, 99,228,191,111,184,248,205,217, 64,206, 31, 51,102,140,157,166,226,181,131, 84, 42,157, 27, 29, 29,253, 79,173, 86,171,103, + 24,134, 48, 12, 3,134,105,120,207,114,255,180,219,237, 37,213,213,213,189,253, 60,108,197, 82,169,116,118, 76, 76,204, 56,189, + 94,175,119,240,121,228, 5, 0,171,213, 90, 82, 85, 85,213, 59,160,186, 62, 50,114,161, 92, 46,127, 92,175,215,235, 24,134,225, +221,220, 3,215,135,249,185,170,170,170, 1,254,132,129, 84, 42,253, 60, 58, 58,250, 31,142,184, 59,195,121,181,113,143,142,142, + 30,167,211,233, 2,226,244, 17,247, 38,156,173, 17,206,191, 40,231,245, 47,180,210,211,211,127,216,187,119,111, 39,177, 88, 12, + 0, 48, 26,141,221,231,207,159,255,196, 91,111,189,149, 5, 96,242, 21, 94,111,241,128, 1, 3, 30,201,205,205,101, 87,175, 94, +205,246,233,211, 7, 12,195,192,110,183,195,110,183,163, 91,183,110,242, 43,141, 72,136, 82, 49,233,208,166,127, 7,221, 60,236, +233,151, 42,128, 25,254,246,251, 18,152, 0,222, 5,144,210,204, 32, 84, 58,210,229,144, 23,177,177,139,101,217,102,113,242, 60, + 95,112,249,242,229,126, 62, 4, 76,139,115, 58, 68,214,131, 3, 6, 12, 8,201,201,201, 97,138,139,139, 25,185, 92, 14,158,231, + 97,183,219, 97,181, 90,113,211, 77, 55, 53,203, 9, 13, 13, 13, 85, 79,154, 52,169,195, 93,119,221,133,159,126,250, 9, 79, 60, +241, 4,250,247,239,159, 95, 81, 81, 1, 0, 80, 42,149, 17, 39, 78,156,232, 20, 30, 30, 14,189, 94,143,186,186, 58,220,113,199, + 29,168,174,174,254, 91, 23,174, 91,211, 19, 62,100, 88,198, 57, 87, 20,177,217,107,246,254, 94,250,238,213,242,134,135,135, 31, +146,201,100,209,126,213,178,203,131,204,104, 52,150,215,212,212,244,244,115, 74, 18,128,123, 68, 34, 81, 71,142,227, 58, 3, 72, +178,217,108,209, 0, 32,145, 72,202, 69, 34, 81,145,213,106, 61,109, 54,155,207, 0,248, 47,124, 44,128, 60, 34,254,169, 14,140, + 77, 63,186,222,196,143, 84,180,207, 74,213,159,155,148,167,144,233,215,141,136,127,106, 85,160, 98,235, 79, 68, 42,128, 21,104, + 88, 80,250, 89, 52,204, 3,116, 53,136, 7,112, 47, 26,214,124, 76,182, 88, 44, 85, 0, 14,162,161, 31, 74, 62,128,196,200,200, +200,101, 60,207,155,170,171,171,159,130,135,133,170,251,246,106,123,128,101,217, 4,193, 19,224,137,189,100,207,193,146, 22,121, + 64,177, 44,251,121,102,102,230, 63, 86,173, 90,165, 56,120,240,160,162,107,215,174,206, 23, 34,158,231,155,244, 49, 73, 78, 78, +246,231,106,112, 44,203,206, 29, 61,122,244,163, 75,151, 46, 85,156, 63,127, 94, 17, 23, 23,231,228,116, 21, 91, 2,226,226,226, + 2,205,251,223, 12, 31, 62,124,236,146, 37, 75,196,107,214,172,145,183,105,211, 6, 17, 17, 17,144, 72, 36, 77,142,189,237,182, +219,120,255, 81,103, 63,191,239,190,251,198,254,248,227,143,138,189,123,247, 42,186,117,235, 6,145, 72,116,213,113, 31, 53,106, +212,163, 63,252,240,131,226,232,209,163,138,142, 29, 59, 66, 48, 21,220,249, 88,150, 69,219,182,109, 3,226,188,247,222,123, 31, + 93,177, 98,133,226,208,161, 67,138,206,157, 59, 59,211,147, 16,114,197,225,252,139,115,222, 16,142,150,212, 98,177, 96,219,182, +109, 96, 89, 22,225,225,225, 24, 63,126, 60, 54,109,218, 52,105,243,230,205,217, 87,224,108,125,227, 16, 89, 98, 0,248,249,241, + 81, 40, 16, 3, 19, 42,204,144, 72, 36, 56,119,238, 28, 68, 34, 81,179,173, 69,153, 76, 54,142, 16, 50, 69,127,113,191,204, 96, +176,194, 88,122, 64, 33,151,203,157, 15, 0,125,169, 99,255,165, 3, 10,185, 92,126, 78, 36, 18, 77,215,106,181,139,189,241,117, +236,216,241,251,227,199,143,119,241, 84,112,125, 65,175,215,163, 93,187,118,137, 53, 53, 53, 29, 61,253, 47, 22,139, 19,206,159, + 63, 31, 37,149, 74, 65, 8,113, 22, 98,247, 79,225,187,197, 98,193, 77, 55,221,100,241,117, 77, 95,156, 54,155, 13, 65, 65, 65, + 16,220, 40,179,217, 12,173, 86,235,143,147,145, 72, 36, 15, 8, 34, 11, 0,150, 47, 95,142,152,152, 24, 68, 69, 69, 65,169, 84, + 66, 46,151, 59, 57, 3,133, 72, 36,194,136, 17, 35,240,254,251,239, 35, 43, 43, 11,111,188,241, 70,163,138, 86, 44, 22, 35, 60, + 60, 28,235,215,175,135, 90,173, 70, 98, 98, 34, 4,129,255,183,182, 5, 89, 38,124,247,129, 11, 78,135,246,206,219,187,112,183, +246,228,190,116, 60, 42,193,178, 0,207, 55, 60, 58, 25, 6,196,102,229, 47, 31, 56, 90,250, 94, 0,233, 25, 87, 84, 84, 20, 21, +104, 26,217,108, 54,196,197,197,137,252, 28, 54, 50, 45, 45,237,231,231,159,127, 94,210,177, 99, 71, 70, 34,145,128,227, 56,112, + 28, 39, 8,244, 68, 66, 72, 34,207,243,131,203,203,203,201,252,249,243, 63,222,186,117,235,253, 0,214,121,172, 88,136,161, 71, +189,137, 31,185,253, 48,110, 25, 61,236, 45,172, 95, 57,233,150, 1,233, 60,130, 21,134,179, 0,254,202, 66, 43, 53, 45, 45,237, +240,222,189,123,131, 44, 22, 11,250,246,237,187, 39, 47, 47,175, 23,174,108, 6,247, 48, 0,159, 77,158, 60,121,236,243,207, 63, + 47, 10, 13, 13,133, 84, 42, 69,125,125, 61,206,158, 61, 59,238,187,239,190, 35, 95,125,245,213,255, 1, 8, 46, 42, 42,202,216, +183,111, 31,134, 12, 25,242, 50,128, 87,155, 42, 2, 81,194,206,125,133, 81,194,239,123, 71,116,151,100,244,102,203, 27, 92, 28, +247,163, 9,120, 59, 95,178,239,200,197, 64,132,216,199,163, 70,141,122,108,213,170, 85, 42, 0, 88,176, 96, 1, 30,120,224, 1, +132,135,135, 67,161, 80, 64, 34,145, 64, 44, 22, 55,250,244,243,176, 21, 1,248,248,225,135, 31, 30,189,116,233,210, 96, 0, 88, +186,116, 41, 70,141, 26,133,136,136, 8, 4, 7, 7, 67, 42,149, 66, 36, 18, 53, 59, 49,195,195,195,191,233,127,203, 45, 79, 46, + 89,178, 4, 0,240,206, 43,175,224,174, 91,111,133, 74, 33,135, 66, 46,133,144, 22, 82,145, 24,119, 78,120,201,175,190, 4,240, +233, 3, 15, 60,240,208,143, 63,254, 24, 12, 0, 7, 15, 30, 68, 69, 69, 5,162,163,163, 33,151,203, 33,149, 74,157,113,102, 24, + 6,114,185, 60,160,184, 63,240,192, 3,163,127,248,225,135, 96, 0, 88,188,120, 49, 70,140, 24,225,140,187, 76, 38,131, 68, 34, +105,180,185,139, 78, 79,156,247,223,127,255,232, 21, 43, 86, 4, 3,192,119,223,125,135, 97,195,134, 33, 44, 44,204,153,158, 2, + 87,115,238,209, 95,156,243,198, 16, 90,135, 15, 31,126, 80,169, 84,206, 2, 16, 41,149, 74, 67, 31,125,244,209,182, 79, 62,249, + 36, 30,126,248, 97,108,222,188,249,153,102, 10, 45, 38, 58, 58,122,124,110,110,174,243, 9,109, 38, 77, 4, 83,179, 31,224, 14, + 76, 57,240,204, 51, 49, 89,103,181,216,179,239, 52,130,192, 50,251, 62,253, 52,210,120,230, 12,236,102, 51, 62, 56, 87,223,176, +223, 70,152,109,175, 77,136,185,121,238,255, 77, 1,176,216,135, 11, 32, 51,153, 76,200,207,207,111, 86, 32,138,139,139,193,243, +188,201,151,187, 32,145, 72,112,236,216,177,128, 70, 33, 36, 38, 38,250, 42,128,126, 57, 55,108,216,128,137, 19, 39,226,244,233, +211, 16,150, 42, 9,128,147, 9, 15, 15, 15, 21, 68,150, 32,130,228,114, 57,196, 98, 49,195,113, 28, 35, 52,237, 57, 10, 87, 64, +194,152,101, 89,124,255,253,247,248,232,163,143,240,230,155,111, 98,225,194,133,232,209,163,199, 31,153,144,227,160,209,104, 16, + 22, 22,134,176,176,176, 70, 2,241,239, 12,247,219, 60,123,206, 60, 5,120,210,208, 9,132,240, 0, 15, 16, 16,240,132, 71,249, +197,179,152,250,254, 39, 1, 63,125,196, 98, 49,206,156, 57,227,204, 7,130, 51, 44, 8, 35, 87,215, 32, 41, 41,201,111, 94,146, + 72, 36,211,126, 42,220,225,142, 0, 0, 32, 0, 73, 68, 65, 84,253,245, 87,233,247,223,127,143, 31,127,252, 17, 12,195, 64, 38, +147, 65,169, 84, 34, 52, 52, 20, 17, 17, 17,206, 45, 33, 33,129,249,207,127,254, 35,233,209,163,199, 52,141, 70,179,206,243, 61, + 39, 33,138,246, 89,169,163,135,189, 5, 0, 24,253, 22,193,229,252, 25, 55,179,181,239,253,149, 23,145, 77,237,222,189,251,142, + 93,187,118, 5,233,245,122,240, 60,143,117,235,214, 41,134, 13, 27,182,189,176,176,112, 64,115,197, 86, 82, 82,210,154, 93,187, +118,221, 22, 25, 25,137,186,186, 58,104, 52, 26, 88,173, 86,136, 68, 34, 36, 38, 38,226,227,143, 63,102,238,187,239,190, 23,199, +141, 27,103,148,203,229,130,179,145,228, 57, 47, 53,206, 76,243,191,248, 50,148,144,134,252, 67,120,210,232,179,166,162, 8,175, +188, 54, 53,160, 48,182,109,219,246,217,159,126,250, 73,229,234, 44,185,138, 0, 87,145, 37,108,126,132, 1,219,174, 93,187, 39, +151, 45, 91,230,228,108,211,166, 13, 56,142,131, 88, 44, 6,199,113, 96, 89, 22,219,183,111,199,172,105,147, 17, 22, 25,135,121, + 95, 44,240, 27,206,200,200,200,133, 35, 70,140,120,124,241,226, 63,170,238,238,237,219,227,238,219,110, 69, 84, 27, 53,218,132, + 5, 55,164, 19,207,224,247,211,133,126,159, 71, 0,216,182,109,219, 62,181,114,229, 74,149,235, 11,161, 16, 87,225,229, 89,112, +241,205,102, 51,122,247,238, 29, 80,220, 93, 57, 5,183, 77, 16,109, 66,122, 10,215, 17,202,171,159,112, 62, 41, 8, 97,135,224, +108,196, 33, 22,139,177,114,253, 18,175,110,246,149,114, 54,247,190,187,115, 22, 21, 21, 97,230,204,153, 16, 94,218, 92,187, 10, +197,199,199, 99,222,188,121,126,235, 37,183, 50,208, 7, 64,164,203, 46, 51, 0,169,203,103, 37,195, 48,251, 61, 28, 39,236, 23, + 59, 90,172, 34,209,208,111,172, 30, 64,168, 7, 62,111, 60, 85,142,103, 94,164,219,241,141,174,227, 85,104,101,103,103, 11,165, +120,112,102,102,230, 54,199,247, 90,153, 76, 86,172, 80, 40, 98, 0,212,175, 91,183, 14,255,250,215,191,224,176, 86,239, 13, 9, + 9, 57,238,193,213, 57,108, 50,153,222, 2, 80,238,216, 37, 12,209,100,107,106,106,248, 77,155, 54,177, 75,239, 31, 14, 51, 1, +210,167,204,194,136,204, 76,108,136,151, 66, 4,224,150, 83, 85, 80, 40, 20,156, 70,163,177,186,246,219,242,208,119, 43,199, 45, + 67,137,130, 56, 14,125,119,172,197,196, 29,107,113,139, 82,138,234, 85, 43, 80,191, 51, 23, 44,203, 96,160,178, 13,222,120,108, + 19,250,169,101,144,154,116, 96, 89,214, 83,206,118,114,230,231,231,143, 81,171,213,179,220, 18, 56, 16, 20,160, 97, 29, 39,120, + 9, 39, 8, 33,232,209,163, 7, 24,134,113,186, 5,194, 38, 20, 58, 97, 59,116,200, 99, 11,164, 87, 78, 71, 19, 28,148, 74, 37, +126,251,237, 55,231, 49, 67,135, 14,133,209,104, 68,120,120,120, 64,156,149,149,149,164,180,180,148, 89,186,116, 41,196, 98, 49, + 34, 34, 34,160, 80, 40,152, 37, 75,150, 76,150, 72, 36, 9, 70,163,145, 55,155,205,144, 74,165,243,132,251,195,113,156, 78,163, +209, 68,120,227, 20,137, 68,120,254,249,231,241,250,235,175, 99,225,194,133,120,230,153,103,154, 56, 94, 70,163, 17,109,218,180, +113,138, 45, 15, 5,176, 53,134,251,182, 46, 39, 79,112,252,208, 6,156, 56,154, 3,222,206,195,206, 19, 16, 98, 7,111, 3, 14, +110,218,211,233, 82, 65,105, 60, 1,105,232,122, 11, 64, 86,167,181, 13,138,144,118, 6,176,122, 91,181,121,174,191,112,114, 28, + 7,163,209,136, 95,127,253, 21,167, 78,157,194,186,117,235, 96, 48, 24,208,166, 77, 27,132,134,134,226,214, 91,111,197,184,113, +227,144,148,148,228, 55,238,132,144,197,197,197,197,233,253,251,247,103,106,107,107, 81, 91, 91, 11,131,193, 0,187,221, 14,155, +205, 6,142,227, 16, 20, 20, 4,185, 92,142,232,232,104, 24,141, 70, 98, 50,153, 22,123,227,228,121,166, 78,127,110, 82,222,250, +149,147,110, 25,253, 22,193,170,143, 24,116,104, 39,211,255,118, 32,248,201,213, 59,222,184, 3, 0,225,137,211, 90, 32, 86, 59, + 95,245,250,228,207, 94,188,230,247,168,169,200,138, 48, 24, 12,168,175,175,111,176,245,165, 82,172, 90,181,170,205, 61,247,220, +147, 91, 90, 90, 58,208,135,216,106,194, 25, 28, 28,156, 40, 18,137,112,236,216, 49,124,245,213, 87,248,237,183,223, 80, 94, 94, +126, 57, 46, 46, 46,100,240,224,193,236, 43,175,188,130,244,244,116,124,251,237,183, 65,254, 56, 9, 33, 40,202,223,142,162, 51, + 59,192,243, 13,174,117,195,230,249, 59, 9, 48,238, 58,157,206,120,248,240, 97,213,215, 95,127,141,168,168, 40, 36, 39, 39, 67, +161, 80, 32, 40, 40,168,209, 67,214,245,193,235,175,108, 26, 12, 6, 99, 81, 81,145,234,135, 31,126, 64, 68, 68, 4,146,146,146, +160, 80, 40, 32,149, 74,193,113, 28, 24,134,193,210,165, 75,177,252,253,199, 80,116,250, 40, 70,221,125,135,223,112, 42, 20,138, +199, 23, 47, 94,220,200, 2,137, 14, 11, 3, 39,102, 33, 18, 51, 8, 27,122, 63, 0,224,242,230, 95,124,205, 14,233,202,201,212, +215,215, 27,247,238,221,171, 58,112,224, 0,120,158, 71, 82, 82, 18,244,122, 61,212,106,181, 51,254,155, 54,109,194,125,247,221, +135,239,191,255, 30, 25, 25, 25,126,227,174,213,106,141, 71,143, 30, 85, 45, 91,182, 12,225,225,225,104,219,182,173, 51,238,194, + 38, 22,139, 33, 18,137,144,146,146,130,186,186, 58,168, 84, 42,191,247,232,224,193,131,170,101,203,150, 33, 44, 44, 12, 9, 9, + 9, 78,199, 77, 16, 71, 31,125,249,126, 35,130, 32, 38,246,170, 57,155,123,223,221, 57, 71,141, 26,133, 14, 29, 58, 64,173, 86, + 67,169, 84, 58,185,125,113,122,209, 34, 78,189,205, 48, 76,182, 75,153,200,100, 24, 38,219,245,211,219,113,142,175, 3, 39, 79, +158,220, 59, 43, 43,107,102, 70, 70,198, 15,187,118,237, 90,238,141,207, 27,207,228,201,147,211,178,178,178,102,186, 30,239,225, + 58,222, 29,173,204,204, 76,198, 17, 73, 6, 64,114,175, 94,189,246,111,222,188, 57, 60, 56, 56,216,121,240,133, 11, 23, 80, 91, + 91,139,224,224, 96,245,236,217,179,213,131, 7, 15, 70,116,116,180,243, 13, 32, 63, 63,255,166,212,212, 84, 13, 0,119,223,150, +103, 89, 22,253,250,245,195,113, 71,107,199,136,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,197, 23, 95,100, 38, 78,156,200, + 9,110, 6, 33, 4, 6,131, 1,177,177,177,114, 95,174, 14, 0,164, 25,170,240,203,224,129, 96, 25, 64,127,104, 31, 36, 82, 6, +172,136, 65, 79, 82,141,255, 13, 25, 8, 6,128,249,200,110, 4,224,194, 28, 2,112, 71,235, 56, 28, 4,103,207,158, 13,200,209, +114,196,139,185, 82, 78,193,209,216,181,107, 23,236,118,123,160,156,132,101, 89, 40,149, 74,196,196,196, 64, 46,151, 67,161, 80, + 48, 63,252,240,195,187,201,201,201,177, 19, 39, 78,100, 53, 26, 13,219,175, 95, 63, 60,240,192, 3,156,208,196,153,150,150,230, + 55, 46,219,182,109,195, 87, 95,125,133,103,158,121,198,163,163,197, 48, 12, 34, 35, 35,161, 86,171,113,189,128, 7, 96,177, 89, +161,215, 26,156, 77,186,118,187, 29, 71,183, 30,233, 84,112, 36, 63, 45,251,135,239,197, 0, 96,220,250,139,235,105,177, 15,124, +185, 34,117, 80,152,120,239,182,203,214,189,190,242, 60,199,113, 24, 63,126, 60,178,178,178,240,248,227,143, 99,221,186,117,120, +239,189,247,240,207,127,254,179,137,171,229,239,205,209,106,181,254,251,137, 39,158,120,102,213,170, 85,157,223,122,235, 45, 86, +112,180, 20, 10, 5, 24,134,129,209,104,132,201,100,130,193, 96,192,233,211,167,249,167,159,126, 58,207,108, 54,255,219,107,115, + 37, 35,255, 93, 33,211,175,107,159,192,118,208, 21,126, 18,220,255,214, 36, 3, 35,239, 85,119,127,234, 48, 50,114,124, 82, 24, + 8, 1,225, 1,158, 0, 38,147, 14, 47,190,248,178,232, 79,188, 85, 78,145,101, 52, 26,113,248,240, 97, 12, 25, 50, 4,197,197, +197, 56,121,242, 36, 58,117,234,132, 37, 75,150, 68, 62,250,232,163,185, 21, 21, 21, 3, 3,117,182,142, 30, 61, 58,249,230,155, +111,254, 92,171,213,214,104,181,218,207, 1, 44, 7, 80,123,246,236,217,174,103,207,158,157,191, 97,195,134, 1, 83,167, 78, 21, +185,245,209, 17,121,179, 71,173, 86, 27, 12, 6,147, 79,129, 37,252, 38,132, 15, 40,226, 12,195,144,206,157, 59,227,158,123,238, +129, 88, 44,134, 66,161,128, 74,165,106,212,108,230, 46,184,124,213, 31, 0,120,134, 97, 16, 23, 23,135,145, 35, 71, 66, 34,145, + 52,226, 20,242,225,200,145, 35,241,210, 7, 83,240,239,151,110,199, 87, 79,116,194,176, 15,203,125,134, 83,175,215,107,183,108, +217, 34,127,253,153,103,112,115,199,142,104,163, 86,163, 93,116, 36,228, 50, 41, 36,174, 97, 98, 2, 50,217, 9, 0, 94, 36, 18, +161, 91,183,110, 40, 47, 47, 71, 97, 97, 33, 10, 11, 11,193,178, 44,250,247,239,239,116, 97,206,156, 57,131, 15, 62,248, 0, 38, +147, 41,224,184,119,236,216, 17,183,223,126, 59,164, 82, 41, 20, 10, 69,163, 38, 67, 33, 77,235,235,235,209,161, 67, 7,172, 94, +189, 26,169,169,169,126, 57,187,116,233,130, 65,131, 6, 53, 74, 79,185, 92,238, 20, 69, 0, 80,188, 87,235,188, 70,124,124,124, +179, 56, 55,238,187,128,175, 55,109,129,201,204, 67,163,183, 54, 58, 33,182,141, 26, 59,150,189, 21, 80,220, 5,206, 69,139, 22, +161,182,182,214,105, 28, 8, 47,229,130,137,210,182,109, 91, 44, 88,224,217,201,116,211, 34,158,158,121,153, 1, 62,111,133,227, +132,204, 37,203,202,202,154,233,126,190, 63, 62,215,255,221,206, 55,187,137,179,242,102, 53, 29,202,100,178,183,183,108,217, 18, + 94, 87, 87,135, 51,103,206,128,101, 89,103,155, 58,199,113,176, 88, 44, 56,119,238, 28,194,195,195, 81, 81, 81, 1,153, 76, 6, +145, 72, 4,179,217, 12, 0, 61,189, 61,192, 9, 33,120,169,178,161,139,208,250, 56, 9,138, 0,220, 93,217, 80, 48,132, 14,241, + 63,253,244, 19, 84, 42, 21,130,131,131,157,159,254,154,145,142, 22,158, 69,185,152, 1,187,123, 59, 24, 22, 96, 25,128, 17, 1, + 44, 75,192, 50, 12,216,221,185, 96, 24, 64, 25, 17,214,220, 10,216, 95,199,120,159, 29,224,189,185, 79,158, 92, 44,247,239, 91, +183,110, 69,160,156, 29, 58,116,128, 74,165,114,110, 27, 54,108,104,228,104,217,237,118, 68, 68, 68, 4,194, 73, 26,220, 8, 30, + 81, 81, 81,255,207,222,117,135, 71, 81,181,223, 51,179,125, 55,201,102,211, 19, 18, 66, 9, 32, 37,210, 20, 62,144, 94, 2, 8, +161,137, 20,249, 32,136,136, 82, 68, 5,137, 8,252, 80, 1, 9, 77,154, 84, 65, 62, 2,130,116,233, 82, 68, 58, 88, 64, 65, 18, + 8,132, 18, 72,223,212,237,101,218,239,143,236,198,205,102,147,108,138, 32, 56,231,121,230,217,157,118,230,222,185,119,238,156, +251,222,247,190, 3,145, 72, 68,108,221,186,245,147,250,245,235,135, 76,157, 58,149, 20, 8, 4,184,118,237, 26, 18, 18, 18, 80, +183,110, 93,183,125,182, 10, 10, 10, 50, 62,249,228, 19,230,147, 79,138,230, 80, 68, 70, 70,162,160,160, 32,219,190, 95,163,209, +228,246,234,213,171,132,223, 70, 78, 78,206,179,237, 9,111,187,143,180,149,134,193,100,130, 78,107, 40,182, 14,101,167,103,169, + 62,158,246,161,104,233,228, 55, 1, 0,211, 86,172,134,118,195, 95, 13,217,254,105, 35, 2, 7,127,185,115, 6,128,129,229,241, +235,116, 58,152, 76, 38, 68, 68, 68,224,210,165, 75,208,106,181,232,211,167, 15, 8,130, 40,158, 33, 90, 9, 88,210,210,210, 58, + 68, 71, 71,255,186,124,249,242,136,166, 77,155, 18,122,189, 30, 6,131, 1,142,191, 55,110,220,224,118,236,216,113,223, 96, 48, +188, 98, 51,157,187,196,241,180,111,146,123,135,190,181,231,199,107,130,232,192, 6, 73,202,180,252, 8, 58, 55, 77,170,215, 24, +111,155, 24, 46, 1, 28, 3, 48, 96,193,209, 44, 24,219,176,215,211,130, 92, 46,255,234,194,133, 11,126, 38,147, 9, 87,175, 94, +197,168, 81,163, 44, 57, 57, 57, 18, 0,248,239,127,255,107,217,182,109,155,164, 65,131, 6,216,186,117,107,192,107,175,189,182, + 91,175,215,191,232, 38,245,183, 25, 25, 25,223, 58,111,244,243,243, 91,245,232,209,163,174,142, 62, 63, 52, 77, 23, 39,199,229, +131,201, 2, 20, 69,193,104, 52,163,176, 80, 11,139,149,178,181,153, 44, 24,134,182,253,178,160,109,237,168, 68, 44,244,106,253, + 98,176,142,227, 56,144, 4, 81,112,245,207,204,218,229,137,118, 87, 67, 92,110, 90,179,156,193,216,103,153,249,249,249, 65, 36, + 18,225,219,111,191,197,245,139,199, 33, 17,112, 96,104, 10, 52,101, 5, 67, 89, 32, 18, 8,240,227,181, 7,136,106,226,229,150, + 32,244,247,247, 71,191,246,237, 17,221,190,125,209,244, 54,161, 16,158, 82, 41, 20, 98, 89,145, 37, 11, 0,199,144,238, 6, 17, + 96,237,233, 12, 10, 10,194,111,191,253,134, 41, 83,166, 96,209,162, 69,144,203,229,197,179,159,111,221,186,133, 93,187,118, 33, + 42, 42,170,210,121,183, 91,240,102,204,152,129,244,244,116,172, 88,177, 2, 47,189,244, 18, 68, 34, 17, 10, 10, 10,240,202, 43, +175, 32, 43, 43,203, 45, 78,199,225, 61,137, 68, 82,194,250,100, 23,128,149, 45, 35, 71,206, 55, 7,133,224,224,197, 29, 32, 64, +224,202,246, 15, 75,136,194,117, 59,207, 87,154,115,206,156, 57, 37,210,233,142, 53,203, 93, 56, 89,157, 42, 60,142, 32,136,171, +118, 99,235,140, 25, 51,102, 18, 4,113,120,198,140, 25, 51,227,226,226,110,186,195,231,106, 63, 65, 16, 71,108, 34,172,159,195, +182,171,149, 18, 90, 10,133,162,173,167,167, 39,238,222,189,139, 62,125,250, 88,114,115,115,147, 68, 34, 81,163,156,156, 28,105, +118,118, 54, 12, 6,131,110,222,188,121, 15, 0,200,219,181,107,215,224,199, 31,127,196,227,199,143,177,109,219, 54, 0,216,239, +218,103,131, 4,203,178,197,149,194,185,219, 38, 16, 8,112,249,242,101, 92,190, 92,210,245,107,211,166, 77, 21,190, 48, 94,251, +254, 16,174, 93,187, 6,199,240, 0,246,255,142,219,100, 50, 25, 80,254, 12,143, 18,168,200, 49,190, 34, 7,120, 87,112,215,247, +203,213,204,156,178,144,150,150, 86,230,249,151, 47, 95, 46, 97,209,170,136, 83, 32, 16,128, 97, 24,200,229,114, 66, 44, 22, 19, + 98,177, 56,204, 46,178, 4, 2, 65,241, 3, 35,149, 74, 33,149, 74, 75,244, 82,203, 66,122,122,122,183,244,244,244, 50,247,171, +213,234, 14,106,181, 26,207, 35,172, 20, 5,163,193, 2,173,206,136,207,227,254, 87,180,241,115,252, 12,224,231, 14,239, 78,193, +196,222, 81,221, 43, 59, 76,109,191,223,129,129,129, 56,123,246, 44, 8,130,192,238,221,187,225,237,237,141,222,189,123, 67,169, + 84, 98,198,140, 25, 24, 58,116,104,101, 27,179,194,220,220,220, 14, 31,124,240,193,175, 75,150, 44, 9,175, 93,187, 54, 44, 22, + 11,172, 86, 43, 44, 22, 11,146,147,147,177, 99,199,142,199, 6,131,161, 3,128,194,138,200,142,167,125,147,188,239,220,180,244, +158,195, 95, 51,222,202,250, 1,153,153,185,160,233, 52,176, 12, 13, 43,205, 20, 89,248,104, 26, 52,205, 64, 44, 22, 40,151,124, +241,225, 73, 22, 28, 72,146,176, 0,120,245, 73,149,145, 74,165,138, 84,171,213,184,115,231, 14, 98, 98, 98, 50,115,115,115, 19, + 1,244, 0,128,220,220,220, 11,163, 70,141,106, 26, 31, 31, 31, 92,175, 94, 61,120,122,122, 42,245,122,125, 69,148,158, 0, 38, + 2,232,133, 34, 63, 16, 59,242, 0,204, 35, 73, 82,122,245,234,213, 82, 51,237,206,157, 59, 7, 0, 63,187,238, 1,217, 44, 90, + 38, 19,212,185,249, 24,247,238,236,191,122, 70,224, 74,136, 11, 14, 28, 38,188, 7, 25, 0,228,100, 37,227,205,113, 83,164, 21, +117, 8, 92,189, 8, 43,225,163, 83,162,163,102,175,163,158,158,158, 69,195,111, 7,118,224,200,151,239, 2,140, 21, 28,101, 4, +172, 6,192,170, 3,107, 49,128, 16,203, 1,202,232,150,208,242,244,244,132,167, 92,142, 64,149,170, 40, 8,164, 64, 0,145, 72, + 8,150, 2, 8,134, 40, 22,164,172,123,129, 65,138, 59,149,114,185, 28, 15, 31, 62,196,196,137, 19, 97,181, 90, 49,104,208, 32, + 88, 44, 22,152, 76, 38, 24,141, 70,212,175, 95, 31, 6,131,193, 45, 62,251,108, 69, 79, 79, 79,136,197, 98,124,248,225,135,120, +249,229,151, 49,119,238, 92,196,198,198,162,126,253,250,152, 48, 97, 2,118,236,216,129,200,200,200,138,120, 57,199, 50,178,223, + 79,187,216,114, 28,226, 3, 80,233, 50,114,230, 36, 8,178,132, 96,179, 47,239,143,238, 81,105,206,133, 11, 23, 66,173, 86,151, +178,100,217,255,135,134,134, 98,237,218,181, 85, 29, 25,178, 91,143,130, 92,236,235,231,108,137,226, 56,174,141,205,119,202, 28, + 23, 23,119, 51, 46, 46, 46,154, 32,136,195,113,113,113,209,101, 89,180, 92,241,184,216,239,246, 75, 75,232, 52, 54,218,213,113, +167,253, 70,251,250,250, 10,194,195,195, 73,165, 82,137,130,130, 2, 4, 4, 4,112,106,181,122,184, 66,161,248,236,187,239,190, +107,160,211,233,112,235,214, 45,172, 90,181,234,103, 0, 43,203, 19, 90, 71, 3,108,166, 99,155, 37,203,113,189,127,255,254,168, + 87,175, 94, 9,107,150, 92, 46, 47,183,242,216,247,217, 45, 66, 2,129, 0, 47,188,240,130,252,254,253,251, 70,177, 88,140,176, +176, 48,121,102,102,166, 81, 44, 22, 87,122,166, 75, 69,142,241, 21, 57,192,187, 18, 62,109,218,180, 41, 97,193,114,252,117,252, +127,240,224,193, 10,135, 14,237,156, 77,155, 54, 45,190, 95, 94, 94, 94,246,115, 1, 0,125,250,244, 1,203,178,240,247,247,119, +139,211, 46,106,109, 14,240, 48,153, 76,172, 86,171, 37,175, 94,189, 10,137, 68, 2, 47, 47,175, 98, 95, 29,153, 76, 86,108,205, +228,225,170, 65, 96, 97,161, 40, 24,141, 70,232,116, 58, 0, 64,242,159,123, 75, 10, 49,179,166,202,252,246, 6, 54, 47, 47, 15, +199,143, 31,199, 15, 63,252,128,151, 95,126,217,165,168,174,132,224, 82,231,229,229,117,156, 62,125,250,149,249,243,231,215,242, +245,245,133,213,106,197,163, 71,143,176,121,243,230,116,131,193,208,177, 50, 13, 12, 56,128,162,104,152, 12,102, 20,106,180,248, +236,139, 45,101, 86, 61, 0,200,203,190,141,254, 3,134, 74,158,100, 57,165,167,167, 79,237,216,177,227, 23, 90,173,182,192, 96, + 48, 12, 5,176,212,177, 63,149,155,155,219,105,192,128, 1,203,125,125,125, 95,202,206,206,158,233, 6,229,140,135, 15, 31,206, +172, 83,167, 78,137,141,102,179, 25,117,234,212,121, 33, 59, 59,123,100,231,206,157,255, 15,128,175,195,110, 47, 0, 39, 0,172, + 45,171, 46,217,135, 14,117, 58, 35,148,170, 16,164, 61, 56, 91, 97, 66,196, 2, 19, 56,150, 45,183, 13,177,119,128,203, 90, 42, +152, 25, 87, 42,169,246, 99,237, 47,236, 87,135,140,198,171, 19, 23, 66, 33, 2, 22,188,217, 1,245, 85, 0,228,190, 16,119,254, + 24,132,202,118,143, 38, 30,114,139, 60,118,253,122, 92,179,181,199, 97, 1, 1,152, 62,124, 56, 56, 10,184,148,144,128,157, 63, +253,132,225,221,186, 65, 33,147,185,221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,116,233, 18,154, 52,105,130,187,119,239,150, + 8, 67,193,113,156,187,249, 47,206,187, 84, 42,133, 72, 36, 66,102,102, 38,162,163,163, 33, 22,139,177,101,203, 22,156, 61,123, + 22,211,167, 79,199,216,177, 99,209,181,107, 87, 36, 38, 38,186,197,201,113, 92,169,217,138,206,195,185,149, 45, 35,103, 78,231, +247,126, 85,202,221,206, 57,127,254,124,151, 19, 42,220,225,116,165, 69, 92,148,221, 85, 71, 49,100,183, 60, 57, 10, 35,231,117, + 0, 62,246,109, 51,102,204,152,233,238,121,142,235,118,139, 88,101,134, 48,139,133, 86,116,116,116,137,156,231,229,229, 93,185, +114,229, 74, 51, 15, 15, 15,220,190,125, 91,162, 84, 42,155,217, 27,116,146, 36,177,123,247,110,175,190,125,251,158, 92,186,116, +105, 24,203,178,200,202,202,194, 71, 31,125,164,163,105,122, 4, 0,186,172, 23,120, 69,150,169, 67,135, 74, 63,108, 7, 14, 28, +112,107, 8,196, 46,164,132, 66, 33,124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49, +137,191,102, 42, 84,100,125,170,200, 49,222,217, 1,190, 66, 36, 36, 36,184,117,156,109,168,213,173, 90,254,240,225,195, 50, 27, +146,179,103,207,130,181, 53,180,238,114,218,122,121,156, 93,248, 41, 20, 10,248,250,250, 66, 42,149, 66, 46,151,151, 16, 89, 82, +169,180,194, 7,167,162,128,164, 50,153,236, 23, 15, 15, 15,149,125,191, 72, 36,130, 86,171, 45,200,203,203,107,251, 76, 15, 29, +130, 3,109,165, 97, 52,154,160,211, 26,107,156,223, 98,177, 64, 42,149, 98,199,142, 29,232,208,161, 3,218,181,107, 87, 74,100, + 85,209, 60,159,154,151,151,215,117,229,202,149, 63, 47, 91,182,204, 71,167,211,225,127,255,251, 95,161, 78,167,235, 10, 32,181, + 82, 98,147,229, 64, 89,173, 48,152,204,208,235,138,238,193,189,155,123,255,105, 69,181, 35, 51, 51,115, 71, 57,251,239,209, 52, + 29,109,143,251,230, 6,254, 83,167, 78, 29,100,102,102,150,216,152,146,146, 2,134, 97,204, 40,138,147,245,150,163, 33, 25,127, + 69,207, 46,171, 23, 95,100, 29, 53,154,161,211, 21, 89, 65, 76,250,156,154,169,167, 54,177, 81,150, 79, 86, 85,234, 16, 65, 16, +197, 78,223,147, 39, 79,198,141,235,215,209,163,150, 6,245,131,189,192,105,210, 32,238,254, 41,254, 80,203,177,116,249,209, 74, +115,239,114,112,129, 88,186,107,151,203,125,247, 6, 14,172, 84,222,147,146,146, 32,151,203,193, 48, 76,169,247, 77,101,243,239, + 40, 96,150, 47, 95,142,233,211,167, 99,203,150, 45,184,113,227, 6, 90,182,108,137,158, 61,123, 34, 59, 59, 27,215,175, 95,135, +217,108,118, 59,157,142,126,115, 73,247, 19,112,234,210, 49,164,164, 62, 64,122,230,227, 42,151,187, 35,167,179,208,218,119,234, +119, 12,137,106, 93, 37,206,207, 62,251, 12,217,217,217, 37, 44, 89,142,237, 82, 89, 22, 45,103, 45,226,132, 28, 39, 95, 40,251, +186,197, 73,244, 56,175, 59, 31, 15, 0,217, 0, 4, 21,156,231,188,158, 19, 23, 23,119,198,110, 9,179,241, 10, 42,242,207, 42, + 97,209,114,194,194,129, 3, 7, 14, 88,181,106, 85,128, 76, 38, 43,158,129, 52, 99,198, 12, 76,159, 62, 29, 17, 17, 17,240,247, +247, 15, 85,169, 84,200,205,205,197,162, 69,139,240,240,225,195,241,112, 17,104,207, 89,104,117,186,175,133, 68,242, 87,135,213, +110,217, 2,128,177, 99,199,150,178,104,217, 11,168, 60, 80, 20, 5, 63, 63, 63, 24, 12, 6, 8, 4, 2, 12, 26, 52, 72,240,231, +159,127, 50,189,123,247,198,224,193,131, 5,215,175, 95,103,250,245,235, 7,129, 64,128,238,221,187,107,246,237,219, 55, 13,192, +151,110,136,173, 26,115,140,183, 87, 50,119, 99, 31,185, 35, 46,203,227, 36, 8, 2, 6,131, 1, 66,161,176,216, 81,222, 29, 78, +251,208,161,227, 3, 72,146, 36, 84, 42, 85,113,227, 97,183,104,217,133, 86, 69,188, 21, 5, 36, 85, 40, 20,202,219,183,111, 55, +176, 79,188,200,201,201, 65,247,238,221,239,228,229,229, 61,219, 38, 45, 22,176,210, 12,116, 70, 19,116, 70, 67,141,209,218,159, +135, 13, 27, 54, 32, 49, 49, 17, 38,147, 9, 95,125,245, 85,241,164, 2, 71,145, 85, 13,193,149, 44,151,203,217, 62,125,250,224, +202,149, 43,144, 74,165, 20,170, 16,255,138,229, 88, 88,105, 26, 38,163, 17,186,138,135,220,158, 23, 20,171,234,196,196, 68, 88, + 44, 22,204,157, 59,151,249,245,215, 95,207,160, 40, 0,170,221,130, 55,178, 75,151, 46,243, 60, 60, 60, 84, 71,142, 28,121, 31, +192,150,242, 94,222, 20,109, 19,237, 53,120, 31, 29, 71, 4, 92,249,100, 85, 37,204,138,227,139,149,101, 89,140,127,251,109,244, +172,165,193,224,151, 2,160,207,184, 3,133,119, 0, 8, 85, 93, 44, 93,126, 20, 55,239,187,237,138,201, 1, 64,159, 46, 3,209, +162, 73,233,240, 96, 29,123, 20,245,201, 46,252,248, 11,178,114,210, 43,157,119,189, 94, 95,166,229,170, 18, 22,173,226,103,206, +126,255, 90,181,106,133, 70,141, 26,225,204,153, 51,104,221,186, 53,238,222,189,139,187,119,239,226,225,195,135,184,113,227, 6, +242,243,243, 43, 93, 70,223,159,216,137,124,109, 30, 36, 98, 9,242, 10,114,144,146,246, 0, 65,126,193,213, 46,119, 59, 26,247, +251, 12, 0, 80, 43,192,187, 82, 66,203,145,115,241,226,197,165,196,123,117, 67,246, 16, 4,241, 75,121,235,149, 61,255, 73,162, + 44,161,245, 64,173, 86,183, 27, 62,124,248, 12, 0,109,108,219, 10, 1,236, 58,121,242,228,192,192,192,192,110,237,219,183, 23, + 74, 36, 18, 92,186,116, 9,251,246,237,219, 2, 96,103,121, 23,146, 72, 36,198,186,117,235,202,237, 21,209,254, 32, 42,149, 74, +193,162, 69,139,136, 77,155, 54,149,105,229,170,168,128, 10, 11, 11,161,215,235,225,237,237, 13,171,213,138, 62,125,250, 48,137, +137,137, 16,139,197, 24, 48, 96, 0,147,144,144, 80, 92,208, 27, 55,110, 12, 51, 26,141,175,252,240,195, 15,189, 0,116,174,196, +189,178, 59,198,123,194, 77, 7,248,178,122,121,238,192,221,225,184,178, 56,167, 76,153, 82, 37, 78,177, 88, 76,219, 35,191,147, + 36, 9,171,213,138,214,173, 91, 35, 59, 59,187,248,161,241,240,240, 40, 22, 89,238, 8,173,138, 2,146, 10,133, 66, 88, 44, 22, +116,238,220, 25, 4, 65, 96,245,234,213,207,199,112, 36,203, 18,158,158,126,168, 85,235, 5, 4, 4,154,192,178, 53,251, 85,153, +216,216,216, 18, 98,202, 85,228,101,251,253,175, 10,236, 92,213,249,250, 60, 7, 20, 15,121,233,245,166,103,174, 8, 3, 3, 3, +219,101,103,103, 31,112,218,156, 7, 96, 94, 57, 29,203,226,130,126,252,248, 49,122,247,238,141, 99,199,142, 9,246,239,223,223, +227,224,193,131, 9,119,238,220,121,220,186,117,235,218,239,188,243,142,180,115,231,206,200,201,201,193, 75, 47,189,244,121, 90, + 90, 90, 57, 66,203,118, 31, 77,102,232,245, 53,111, 29,117,101,205,170,206,139,209, 94, 39,231,204,249, 63,244, 12, 41,192,160, +150,222,136, 63,124, 17, 35, 91,201, 1,139,180,210,124,246,180,248,214,170,135,186,145,237, 74,237,151, 42,139, 98,185,214,141, +108, 7,242,241,221, 74,231,221, 49,205,206,162,170, 42, 22, 61,199,251, 57,110,220, 56,124,252,241,199,232,213,171, 23,238,222, +189,139,115,231,206,225,238,221,187,152, 50,101, 10, 34, 35, 35,209,178,101,203, 74,113, 30, 60,181, 7, 26, 93, 33, 72,130, 68, + 94, 97, 46, 76,102, 35, 98, 39,204,169,118,185, 23,191,252, 79,197, 1, 0,246,158,188, 86,101,206, 89,179,102, 33, 51, 51,179, +132, 37,171, 58,126, 89,207, 58,202,139,150,246, 0,192,120,231,141, 22,139,197,107,238,220,185, 81,254,254,254, 32, 8, 2,203, +151, 47,135,175,175,111, 7, 0, 55, 45, 22, 75,142, 94,175,159,238, 32, 66,122,194, 22,107, 35, 43, 43,203,229,188,125,189, 94, +111,141,138,138, 18,133,132,132,148,152,109,232,225,225, 81,150,117,167,152,211,190,143,166,105,196,198,198, 98,193,130, 5, 8, + 15, 15, 71,191,126,253, 16, 29, 29, 13,130, 32,208,167, 79, 31,244,235,247,215, 80,174, 74,165, 18, 31, 59,118,172, 11, 73,146, + 9, 14, 47,144, 18,156,174, 96,119,140,167, 40,202, 93, 7,248, 18,156,246,202, 54,101,202, 20, 44, 88,176, 0, 51,103,150,239, +234,177,126,253,122,160,180, 63,213,223,206,153,151,151, 87,162,177, 87, 40, 20,171, 7, 15, 30, 44,124,252,248,113, 9,113,229, +184,184,104,136, 74,112, 86, 20,144, 84, 32, 16, 32, 40, 40, 8,243,231,207,135,159,159, 31,130,131,131, 93, 5,242,171,176,140, +170,128,191,149,147,225,216,171, 75, 22,254, 95,199,255,109, 59, 40,146, 74,128,203,231,246, 66,147, 95,114, 56,201,108,253,107, + 42,181,164,117, 15, 88,174,253,232, 86, 93,178,139,233,207, 62,251, 12,159,125,246, 89,185, 9,218,176, 97, 67,181,243,238,166, +216, 42,205,201,114,132,194,195, 7, 50,143, 90,104, 22,233, 3,150,163,255, 81,101, 84, 6,126,253,229,151, 95, 6,248,249,249, + 33, 53, 53, 53, 64, 36, 18, 13, 40, 97,174, 50, 26, 81,183,110,221, 23,212,106,245, 43, 21,113, 78,153, 50,197, 60,123,246,108, +233,136, 17, 35, 48,120,240, 96,140, 24, 49, 66, 42, 22,139, 27,114, 28, 7,171,213,138,212,212, 84,252,248,227,143, 80,171,213, +183,202, 75, 39,203,113,132, 92,161,130,204, 35, 4,205, 94, 84,129,101,233, 26,201,187,163, 85,220,209,154, 85, 73,145,229,178, +126, 2,192,175, 63, 30,192,156, 15, 95,196,150, 35, 63, 99,213, 47, 64, 11, 85, 54,154, 5,168,193,170,111,225,163,145, 47, 99, +233,246,223, 0, 0,231,206, 86, 88, 70, 92,121,117,208,100,180, 86, 43,239,142,150, 43,199,235,184,225,163, 85,138,211,222, 73, +212,106,181, 40, 40, 40, 64,124,124, 60,222,124,243, 77,100,103,103,227,225,195,135,184,115,231, 14,190,251,238, 59, 40, 20,138, + 42,149,209,180,183,103, 97,246,210,169,224,192,161,113,131,102,152, 49,241, 51,180,105,209,190,218,229,238, 12, 55,172, 89,101, +114,174, 88,177,162,170,117,233, 95, 39,180, 92,194,223,223,127, 68,151, 46, 93, 96, 50,153, 16, 16, 16,128,135, 15, 31,130, 36, +201, 8,160,104, 8, 47, 52, 52,116,151, 90,173,142,112,151, 79, 32, 16,128,166,233, 98,223, 31,251, 2, 0,253,251,247,199,161, + 67,135, 42,236, 81, 4, 7, 7,163,118,237,218,248,224,131, 15, 74,205,114,112,156,233, 32,151,203,113,228,200,145,204,188,188, +188, 60,142,227, 42, 53,205,205,238, 24,127,225,194, 5,183, 29,224, 29, 97,181, 90, 31,223,185,115, 39,100,195,134, 13,130,114, + 94,126,197, 56,119,238, 28,141, 10,134,106,254, 14, 78, 87, 61, 83,142,227,202, 20, 89,238,132, 17,168, 40, 32,169, 80, 40, 68, + 82, 82, 18,230,204,153, 3,130, 32,176,119,239,222,231,226,225,250,243,118,238, 38,146, 36,125,250,191,218,177, 57, 8, 2, 86, + 75,233,145,106,207,124, 93,177,200, 26,252,229, 78,236,159, 54,220, 29,209,147,124,254,252,121,223, 13, 27, 54, 8,221, 41,247, +243,231,207,211, 28,199, 85,122,216,207,254,194,177, 90,173, 48, 26,171,102, 69,225, 56,238, 82,220, 23,179,163,182,126,123, 84, + 68, 16, 22, 92, 62,187, 23,133, 5,174,221, 25, 36, 34, 33, 54,197,239,163,197, 34,193,227,167, 92,116,107, 6, 13, 26, 52,226, +171,175,190,106,230,106,167, 27,147, 96, 30,154, 76, 38,164,165,165,193, 96, 48,236,249,228,147, 79,172, 71,143, 30,125,235,181, +215, 94, 67,203,150, 45, 17, 18, 18,130,140,140, 12, 36, 39, 39, 35, 62, 62,158,187,120,241,226, 30, 0,147, 42,184,143, 7, 22, +126, 49, 59, 38,126,251, 81, 9, 73, 88,113,249,220, 94, 20, 58,137,246,210,214,105, 17,190,217,178,207, 42, 22,139,110, 87,100, + 45,114,180,102,213,228,139,113,192,168,137, 24,188,114, 21, 34,218,244,198,194, 69, 61,241,205, 23, 67,177,172,143, 24,214,221, + 35,209,226,245,173,216, 49,183, 47, 0,160,214, 55,110, 90, 75,132, 98, 60,114, 97,177, 42, 40,148,217,196, 77,229,172,166,246, +188,151,103,185,170,172, 69,139, 36, 73,212,171, 87, 15, 17, 17, 17,232,208,161, 3, 90,183,110,141,110,221,186,225,250,245,235, +184,126,253, 58,166, 76,153, 82,158,200,170,176,140,186,190, 18,133,159, 59,221,174,118,217, 56,151,123, 77,192,157,186, 52,113, +226, 68, 0,248, 87, 89,183, 42, 45,180, 52, 26,205,117,150,101,155,123,123,123,219, 45, 82,197,251, 82, 82, 82,192,178,172,161, +178, 5, 99,177, 88,236,193, 49, 75,196,101,178, 59,199,151,247,224,115, 28,199,228,229,229,161, 75,151, 46,232,212,169, 83,241, +240,137,227,226, 32, 76,176,127,255,126,112, 28, 87,105, 39,107, 7,199,120, 29, 42,233, 0, 15, 0,217,217,217,189, 59,119,238, +124, 82, 40, 20,186,245, 21, 77,150,101, 31,102,101,101,189,250,164, 57, 93,149, 15,203,178,101,138, 44,119, 26,162,138, 2,146, + 10,133, 66,120,120,120,224,251,239,191,135,191,191,255,115,245,128, 93, 79, 84, 47, 46,111,127, 23, 63,201, 89, 0, 1,131,191, +220,249,232,108,174,181,206,224, 47,119,166,236,159, 54, 60,188,188,115, 50, 51, 51,123, 13, 31, 62,252,152,187,229, 78,211,244, +131,204,204,204, 74,135, 75,224, 56, 14,183,111,223,102,199,141, 27,151,163, 86,171,135, 86, 37,255, 51,230,172, 90,182,224,243, +201,126,125,162,218,181, 1, 9, 88,202,118,254,229, 8,128, 19,138, 4,143,167,207, 92,241,246,208,161, 67,159,102,177,105, 50, + 51, 51, 59, 12, 25, 50,100, 18,254,114,157, 40, 33,164, 80,198,236,106, 27, 86,214,174, 93,251, 69,129, 64, 32, 5, 48, 7, 64, +202,197,139, 23,215, 92,188,120,177, 23,128,255, 8, 4,130, 16,134, 97,210,108,157,158,157, 0,254,168,184, 30,101,191, 3,142, + 13,235,211,243, 63,189, 65, 16,156,197, 98,174,160,131, 4, 14, 28,199,137,197,162,219,191, 94,207,104, 81, 94, 71,202,225, 11, + 28, 53, 62,100, 63,105,210, 36, 76,154, 52,169,184, 62,173, 94,221, 9,123,254,188,128,215, 91,164,194,252,117, 71, 16,202,112, +183, 59,124, 0, 48,235,255,198,213, 88,218, 28,243,238,104,209,114,245, 28, 84,198, 71, 75, 32, 16, 32, 39, 39, 7, 73, 73, 73, +200,202,202,130,193, 96, 64, 98, 98, 34,172, 86, 43,242,243,243,241,226,139, 47, 86, 57,157, 53, 85, 70, 79,147,243,223, 56,124, + 88,105,161,101,181, 90, 63,173, 87,175,158, 72, 38,147, 53, 99, 24, 6, 28,199,129, 97, 24,206, 38,106, 42, 61, 11, 79, 36, 18, +153, 26, 53,106, 68,184,154,157, 96,255,239,225,225, 97, 44,199, 90, 18, 87,183,110,221, 79, 8,130, 16,148,213, 11,177,255,103, + 89,150, 17, 10,133,113, 85,188, 87,213,117,140,215,171,213,234,246, 53, 92,126,127, 7,167,115,249,232,155, 52,105, 82,252, 69, +123,231,152, 40,182,143,173,234, 43, 16,231,229, 6, 36,213,235,245, 25,189,123,247,102, 28,247, 59, 6, 52,125,174, 65,112, 41, +125, 71,188, 85,231,108,174,181, 14, 0,216,197, 22, 56, 46,165,156,179,140,153,153,153, 93,254,238,164,221,191,127,223,242,159, +255,252,231, 91,173, 86, 59, 17, 64,149,189,249,103,126,186,122,230, 51, 88, 50, 26, 0, 11,170,120,110, 74,110,110,110,119,167, +109,127,216, 5,149, 61,174, 93,165, 69,251,173,156, 26,143, 45, 70,211,116,106, 68, 68, 68,165, 44, 55, 20, 69,165, 86,180,223, + 57, 70,152, 35,110,194, 27, 51,175, 0, 69,147,191,115,221,226, 52,153, 76,121,237,219,183, 23, 85, 50,111,217,238,230, 61, 36, + 36, 4,181,106,213, 42,254,181,195,121,123, 69,233,164,105, 58, 53, 44, 44, 12,254,254,254,101, 70,124,119,246,201,114,135,179, +166,203,168, 60,206, 90,181,182,214, 56,103, 85,211,201,195, 61,244,228, 57,121, 78,158,243,153,229, 20,240,247,147,231,228, 57, +121,206, 39,200,249,220,129,227, 56,240, 94,106, 60,120,240, 40, 11, 12,127, 11,120,240,224,193,163,122, 32,202, 81,165,149,153, +233, 83, 21,101,123,138,231,228, 57,121, 78,158,147,231,228, 57,121,206,127, 29,103, 69,220, 53, 61,211,248,169,161, 58,225,113, +254, 78, 1,198,115,242,156, 60, 39,207,201,115,242,156, 60,231,191,143,243,185, 3, 63,116,200,131, 7, 15, 30, 60,120,240,224, +241, 55,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30,188,208,226,193,131, 7, 15, 30, 60,120,240,224,133, 22, 15, 30, 60,120, +240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240,224,193,131, 7, 15, 30, 60,120,240,120,166,192,113, 92, +209, 39,120, 14, 31, 62, 92, 28,232, 33, 58, 58,154,224,111, 13, 15, 30, 60,120,240,224,193,227, 73,226,121,213, 34, 66, 94, 96, +241,224,193,131, 7, 15, 30, 60,254, 9,120, 30,181, 8,233, 74, 73,242,224,193,131, 7, 15, 30, 60,120, 60,105, 60,143, 90,132, +124,158, 85, 36, 15, 30, 60,120,240,224,193,227,217,193,115,111,209,226,173, 90, 60,120,240,224,193,131, 7,143,167,133,103, 88, +139,112,182,197,113,157, 7, 15, 30, 60,120,240,224,193,131, 71, 53, 5, 86,153,191,252,183, 14,121,240,224,193,131, 7, 15, 30, + 60,170, 14,194,197,250, 19,181,102,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 95,137,226, 56, 90, 60,120, +240,224,193,131, 7, 15, 30, 60,170,167,171, 28,254, 23, 91,186,120,161,197,131, 7, 15, 30, 60,120,240,224, 81,125,145, 69,184, + 90,231,125,180,120,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143,234,193,217, 9,158, + 31, 58,228,193,131, 7, 15, 30, 60,120,240,168, 97,177,229,114, 99, 89, 51, 7, 78, 85,130,188, 42,179, 15, 78,241,156, 60, 39, +207,201,115,242,156, 60, 39,207,249,175,227,172,136,251, 20,158, 13,137,148,178, 0, 0, 32, 0, 73, 68, 65, 84, 61,116, 1,112, + 6, 64, 87,219, 47, 0, 16, 28,247,247, 71,122,224,167,190,242,156, 60, 39,207,201,115,242,156, 60, 39,207,249,188,195, 57, 96, +105,209, 10, 31,176,148,135, 27, 16,162,252, 33,230,138,246,243,224,193,131, 7, 15, 30,255, 54,177,197, 57,190, 36, 93,161, 33, +128,153, 0,188, 29,182,253, 2, 32,206,233,184,237, 0, 20, 14,235,122, 0,115, 1,220,173, 48, 53, 28, 39,182,241, 75,109, 11, + 11,192, 4,192, 12, 64, 75, 16, 4,197,151,217, 83, 71,123, 0,209,182,255,135, 1, 92,174,228,254,231, 10, 33, 33, 33,114, 31, + 31,159, 94,215,174, 93,147, 36, 38, 38,226,252,249,243,220,166, 77,155,172,249,249,249, 39, 50, 50, 50,140,124,117,121, 46,208, + 27,192, 12,219,255,133, 0,142, 87,147,143, 80, 40, 20, 83, 60, 60, 60,250, 74,165,210, 90, 52, 77, 19, 6,131, 33, 93,175,215, +159,164,105,250, 75, 91,187, 87, 89, 12,244,245,245,125,171,113,227,198, 13, 31, 62,124,152,150,158,158,190, 29,192,110, 0, 67, +107,213,170, 53,178,110,221,186,161,183,111,223,190,155,151,151,247, 13,128, 3, 79, 49,157, 60,120,252,155, 64,148,103,141,112, +133, 57, 28,199,141, 44,193, 64,148,230,232,222,189,251,128, 19, 39, 78, 40, 88,150,133,125,145,203,229, 52,128, 49, 21,136, 44, +191, 75,151, 46,213,153, 56,113,226,224,244,244,244,151,181, 90,109, 91, 0, 80, 40, 20, 63, 7, 6, 6,254,186,114,229,202,239, + 56,142, 75, 37, 8, 66, 91,201,140, 10, 69, 34,209,155, 62, 62, 62,125,105,154,110,205,113, 28, 68, 34,209,181,252,252,252,227, + 20, 69,125, 3,160, 42,226, 77, 34, 20, 10, 39, 73,165,210,222, 52, 77, 55, 7, 0,161, 80,120,195,108, 54, 31,167,105,122, 13, + 0, 75, 21, 56,101, 18,137,100,146, 82,169,140,178, 88, 44,205, 1, 64, 34,145,220,208,104, 52, 39, 45, 22,203, 26,155,224,124, +218, 16, 2,136,230, 56, 78, 4, 0, 2,129, 96, 96,219,182,109,235, 16, 4,193, 18, 4,193,113, 28, 71,252,252,243,207,173, 24, +134, 33,109,245, 35, 26,192,175, 0,232,103,241, 9,241,247,247, 95,192,178,108,173,114, 11, 77, 38,123,249,218,181,107,141,119, +237,218,197,124,253,245,215, 5, 99,199,142,245,156, 56,113,162,112,245,234,213,107, 50, 50, 50,222,119, 62,222,207,207,111, 25, + 73,146,254,238, 92,159,101,217,156,220,220,220,169, 79, 43,255, 49, 49,166, 18,230,238,248,120, 89, 3, 0,169, 85,172,223,127, + 31,167, 41,134, 3,128,120, 89,124,131, 24, 83, 76,178,253,127,117,121, 29, 48, 99,237, 41,109,103,142, 3, 38, 69,121,145,213, + 21, 90,161,161,161,241, 49, 49, 49, 35,154, 55,111, 46,228, 56, 14, 20, 69,193,108, 54, 55,190,124,249,114,215,189,123,247,190, +172,213,106,135, 86,146,242,237,143, 63,254,120,254,188,121,243,252, 69, 34, 17, 65, 81, 84,131, 93,187,118,181,126,231,157,119, + 62,216,176, 97, 67,237, 97,195,134,121,217,183,207,153, 51,167,205,194,133, 11,235, 3,248,242, 41,164,147, 7,143,127, 27,186, +160,164,143,214,231, 0, 62, 43, 79,104,121,216, 94,158, 89, 54, 75, 22, 28,126,139,113,250,244,233,131, 66,161,208,110,209,106, +171,215,235,131,156,172, 96,174, 68, 86,221, 81,163, 70,181,223,179,103,207,130, 97,195,134,101, 42, 20,138, 70,175,189,246,154, +150, 32, 8,193,174, 93,187, 90, 69, 68, 68,200,251,247,239, 63,170,123,247,238,211, 56,142, 59, 79, 16,132,218,205, 76, 54,243, +245,245,221,183,120,241,226, 58,189,123,247, 22,251,251,251,131,227, 56,164,167,167,135, 30, 57,114,164,207,231,159,127, 62, 45, + 47, 47,111, 16,128,132, 74,220,184, 54,114,185,124,207,231,159,127, 30,210,167, 79, 31, 97,112,112, 48, 76, 38, 19, 18, 19, 19, +123, 30, 63,126,188,243,134, 13, 27,222, 55, 26,141,175,219, 4,134,187,104,235,237,237,189,247,127, 31,127, 28,212,238,205, 55, +133,190,190,190,224, 56, 14,106,181,186,231,133,173, 91,187, 78, 88,188,248,253,194,194,194, 33,174,238,247,211,132, 68, 34, 33, +183,109,219,214, 82, 34,145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,166, 43, 66, 16, 97,233,233,233,222, 98,177,216,229,126,134, + 97,208,185,115,231,122, 98,177, 24, 95,126,249, 37,149,147,147,211,234,171,175,190,186,182, 99,199, 14,255, 53,107,214,188, 14, +160,148,208, 34, 73,210, 63, 53, 53,213, 37, 39,195, 48,176, 90,173,160,105, 26, 22,139, 5, 77,155, 54,125,170,249,143,143,151, +133, 1,152, 26, 19, 99,250,208,182,233, 75, 0,211, 0,220, 71, 21,191,219,245, 55,112, 58,214,183,101, 14,255,171,157, 86, 7, +212, 1,128,163,215, 77, 0,224, 91,221,251,234,225,225,209,228,141, 55,222, 16,170,213,106,136, 68, 34, 88,173, 86,100,102,102, + 34, 50, 50, 82,240,237,183,223,190, 80, 89,190, 6, 13, 26,140, 93,184,112, 97,192,209,163, 71,173,219,182,109,179, 68, 69, 69, +137,198,142, 29,171,236,220,185,115,211,176,176, 48,114,243,230,205,230,147, 39, 79, 82,163, 70,141,146,196,197,197, 5, 28, 57, +114,164,127, 66, 66,194,151, 79, 58,157, 60,120,252, 11,113, 6,127,133,120,176,255,150, 43,180,224, 32,174, 6, 2,128, 72, 36, +106, 21, 20, 20, 20, 79,211,116,176,205,170,147,153,149,149,245, 37, 69, 81,191,219,142, 61,192,178,236,128,138, 44, 89,163, 70, +141,106,127,236,216,177,165,151, 47, 95, 46,204,205,205, 13, 62,120,240,160,105,218,180,105, 15, 1,224,254,253,251,245,251,247, +239, 31, 58,121,242,228,212, 94,189,122,173,236,214,173,219,123, 28,199,157, 36, 8, 66, 95,145,200,138,140,140,188,116,238,220, + 57, 47,149, 74, 85, 98, 71,221,186,117,241,222,123,239,137, 7, 12, 24, 16,209,163, 71,143,139,201,201,201,157, 0,252,233,142, + 32,106,216,176,225,169,211,167, 79,123,250,248,248,160,160,160, 0,153,153,153, 48, 24, 12, 80, 42,149, 24, 54,108,152,184, 75, +199, 14,181, 39, 79,121,255, 84,106, 90, 90, 79, 55,197, 86,219, 14,205,154,157,218, 17, 23,231, 73, 61,122, 4,185, 92, 14,157, + 78, 7, 0,240,242,242,194,203,245,234, 9,127,219,186, 53,116,100,108,236,169, 95,147,146,122, 62, 37,177, 37,181,253,154, 1, + 28, 22, 8, 4, 3, 37, 18, 9, 57,112,224, 64,156, 58,117,138, 48,153, 76, 66,155,117,135, 30, 56,112, 32,228,114, 57, 44, 22, + 11,139,162,161, 67,250, 89,126, 74, 36, 18, 9,146,147,147, 75,108,211,106,181, 80,171,213,200,205,205,133,217,108, 70, 65, 65, + 1, 88,150, 37,228,114,185,154,101, 89,144, 36,233, 44, 0, 74, 64, 44, 22, 35, 41, 41,169,196, 54,154,166,161,215,235, 97, 54, +155, 97,181, 90,161,213,106,229, 94, 94, 94, 13,253,253,253, 83, 1, 28,200,203,203,251, 50, 43, 43, 43,229, 9,103, 63,199, 46, +136,226,227,101,247, 0, 72,254,137,156, 14,150,172, 80,219,250, 31, 53,148, 86, 59, 30, 29,254,221, 20,110,179,142, 61,168, 1, + 62, 22, 0,206,159, 63,143,172,172, 44,228,228,228, 64,173, 86, 35, 44, 44, 12, 28,199, 85,122, 56, 46, 57, 57,121,237,139, 47, +190, 72,220,188,121,243, 56,128,213,187,118,237, 26,147,151,151, 55, 99,250,244,233,190, 75,150, 44,201,139,141,141, 93, 8, 96, +203,174, 93,187,222,109,210,164, 73,223, 91,183,110,109,120, 26,233,228,193,163,166,193,113, 92, 27, 0, 1,246,182,197,214,238, +250, 57,172, 95, 39, 8,194,226,112,156,197,214, 54, 56,255,218, 97, 95, 87, 19, 4,241,171,195,121,106,130, 32,126,173,106, 50, +157,126,139, 58,221, 0,112,248,240, 97,206,190,184, 58, 51, 48, 48,112, 74,247,238,221,151, 94,189,122,181,105, 70, 70,134, 79, + 70, 70,134,207,213,171, 87,155,118,239,222,125,105, 96, 96,224, 20,135, 27,225,124,234, 41,135,125,226, 75,151, 46,213,217,183, +111,223,194, 83,167, 78, 21,182,106,213,202,114,250,244,105,186, 87,175, 94,217,182, 23, 52,221,171, 87,175,236,159,126,250,137, +105,215,174,157,252,216,177, 99,143, 47, 94,188,184,108,207,158, 61, 65, 28,199, 9, 92,113,218, 32, 82,169, 84,223,159, 61,123, +182,148,200,114, 68,237,218,181,113,248,240, 97,165, 74,165, 58, 0, 64, 92, 86, 58,109,144,201,100,178,189, 63,253,244,147,167, +151,151, 23,178,179,179, 33, 18,137, 16, 24, 24,136,194,194, 66,100,102,100, 32,229,206, 29,144, 22, 11,150,127, 49,207, 75, 46, +151,239,113,209,216,151,226,244,246,246,222,187, 99,193, 2,207,220, 83,167,240,199,252,249,176, 90,173,197, 67,174, 86,171, 21, + 23, 39, 78,132,250,199, 31,177,121,206, 28, 79,111,111,239,189, 0,100, 21,112,214, 4, 28, 57, 39, 2,200,179, 45, 19, 1, 92, +142,140,140,188,154,152,152,136, 78,157, 58, 97,247,238,221, 45,166, 79,159, 62,113,250,244,233, 19,119,239,222,221,162, 83,167, + 78, 72, 76, 76, 68,100,100,228, 85,148,244,207,250,187,211,249,183,113, 50, 12, 83, 98, 97,217,191,222, 49,181,106,213,202,222, +183,111, 31,134, 13, 27, 70, 74, 36,146,140,225,195,135, 75, 47, 92,184,192,217, 68,166,219,233, 52,153, 76, 48, 26,141,208,235, +245,184,127,255,190,124,241,226,197, 29, 63,251,236,179, 6,167, 78,157, 10,157, 57,115,230,132,128,128,128,107, 65, 65, 65,117, +158,112,222,173, 78,255,151, 3, 72,171,164,133,232,239,230,228,108,231, 35,198, 20,211,210,161,129,173, 44,111,121,247, 51,211, +150, 86, 61,128,148,234,212,165,238,221,187,191,216,160, 65,131,160, 93, 55,125,144, 47,110, 12, 86,172, 2, 43, 86,129,241,107, +131,100,201,171, 8, 15, 15, 15,242,244,244,108, 95,201,116,110,187,121,243,230,127,108, 61,229, 92, 0, 75, 99, 99, 99, 63, 39, + 8,226,124,108,108,236, 60, 0, 75,109,219,231,223,186,117,171, 29,128, 29, 79, 41,157,207,196,243,206,115,254,179, 56, 43,208, + 34, 1, 4, 65, 28, 38, 8,226,240, 39,159,124,210, 13,128,159,211,250, 43,142,199, 1,144,184,250,181, 47, 14,219, 3, 56,142, +235,231,112, 94, 64, 21,147, 79,184, 88,254, 18, 90, 0, 16, 29, 29, 77, 68, 71, 71,219,119,252, 66, 16,196, 65, 0,191,136, 68, +162, 86, 45, 91,182, 28,248,195, 15, 63,120, 5, 4,252,117,253,128,128, 0,236,217,179,199,171, 89,179,102, 3, 69, 34, 81, 43, + 0,191, 40,149,202,131,229, 88, 97, 84, 19, 39, 78, 28, 60,122,244,104, 77,171, 86,173, 0,160, 32, 33, 33, 65,209,174, 93, 59, + 61, 77,211, 4, 77,211, 68,187,118,237,244, 9, 9, 9, 10,138,162,180,109,218,180,241,232,209,163,199,195,169, 83,167,142,114, + 33, 56, 28,241,198,162, 69,139,194,124,124,124,202, 83,194,208,106,181, 8, 10, 10,194,196,137, 19,131, 69, 34,209, 91,229,221, + 45,161, 80, 56,105,209,162, 69,129, 42,149, 10,249,249,249, 8, 11, 11,131,197, 98, 65, 82, 82, 18, 76,122, 29, 40,173, 6,148, +166, 0,234,123,119,161, 18, 9, 49,106, 64,116,144, 80, 40,156, 84,129,181,100,210, 55,177,177, 65,150,135, 15,113,127,247,110, + 48,116,105,227, 15,109,181,226,198,198,141, 48,165,166, 98,225,184,113, 65, 18,137,100,210, 19,182,100, 45,225, 56, 78,206,113, +156,156, 32,136,149,237,219,183,255, 86, 46,151, 79,140,139,139,235,125,226,196,137, 62,231,206,157,235, 74,211,180,136,166,105, +209,249,243,231, 59,153, 76, 38,161, 84, 42,133, 80, 40,228,240,156, 66, 36, 18, 65, 44, 22, 67, 46,151,163, 99,199,142,247, 54, +109,218, 68,133,133,133,137,246,238,221,235, 83,171, 86, 45,143,213,171, 87, 23,104,181,218, 69,238,242, 89,173, 86,152,205,102, + 24,141, 70,152, 76, 38,156, 62,125,186,222,228,201,147,133, 38,147,137,233,223,191,127, 30, 69, 81,230,216,216, 88,165,175,175, +239,180, 39,153,207,152, 24, 19,107,179, 60,221,178,137,150, 7,168,166,207,211,223,193, 9,192, 98,243,201,178,195,223,198,109, +169,161, 91, 65, 3,208,217,132,150,217,233,249,104,238, 96,241,173, 16, 5, 5, 5, 27,190,249,230,155, 48, 82,170,194, 5, 75, + 95,124,199,126,142, 19,222,171,145, 93,231, 35, 4,134, 53,192,136, 17, 35, 2, 57,142, 91, 93, 3,105,254, 10, 64,103, 0, 43, +171,114,242, 19, 72,103, 29, 15, 15,143,221, 94, 94, 94, 23, 60, 60, 60,118,195, 54, 60, 91, 29, 68, 53, 64,207, 1, 77,200,212, +168, 8,112, 3,154,144,169, 81, 13,248, 80, 3,207, 11,156,180,136, 35,212, 28,199, 69,115, 28, 23,189,112,225,194, 5, 14,239, +119,251,186,220, 77,203, 88, 52,199,113,209, 37, 20, 82,145,192,170,182,209,205,197, 82,164, 41, 28,149,164, 67,230,138,103, 23, + 6, 5, 5,197,199,199,199,123, 57, 51,102,100,100, 64,163,209, 96,246,236,217, 94,163, 71,143,126, 63, 53, 53, 53,166,130, 68, + 72, 50, 51, 51, 91,143, 28, 57, 82,102,181, 90,243, 89,150, 37, 53, 26,141,208,219,219,155,177, 31,224,237,237,205, 20, 22, 22, +138,244,122,189,128, 97, 24,243,232,209,163, 37,227,198,141,123, 25,128,160, 44,210,128,128,128,168,190,125,251,150, 57,116, 64, + 81, 20,244,122, 61,244,122, 61,172, 86, 43, 58,118,236, 40,221,180,105, 83,175,236,236,236,117,101, 42, 14,169, 52, 42, 42, 42, + 74,148,151,151, 7,111,111,111,164,164,164,224,193,131, 7, 48,235,116,176,234, 52,176,234,180,160,181, 26,112,154, 66,228,222, +189,141,118, 77, 26,139,183, 75,165,189,245,122,253,178,178, 56,149, 74,101, 84,187, 49, 99,132, 30, 30, 30,232, 58,178,104,158, +193,177, 38, 77,192, 49, 12, 88,134, 1, 67,211,232,157,148, 4,138,162, 64,146, 36,218,228,229, 9,149, 91,183, 70,169,213,234, +165, 79,163,178, 75,165, 82,225,182,109,219,222,144, 72, 36,224, 56,142,176, 88, 44, 56,113,226,196,191,238,161,151, 72, 36,144, +201,100,176, 90,173,168, 91,183,174,113,228,200,145,151,190,248,226,139,112,146, 36, 61,196, 98,241, 15,185,185,185, 11, 50, 50, + 50,238,187,203, 71, 81, 20, 44, 22, 11, 44, 22, 11,140, 70, 35,238,221,187, 23, 92,175, 94, 61, 98,226,196,137,140,193, 96,168, +191,106,213,170,228, 19, 39, 78, 40, 22, 45, 90,244, 26,128,247,158,116,126, 99, 98, 76, 77, 0, 52,137,143,151,137,109,150, 95, +203, 63,140,147, 67,145,227, 59,226,101,241,137, 0,212, 53, 40,178, 36, 0,188,195,253,132,122,145, 0, 58, 0, 94, 54, 81,240, + 26, 65, 16,237,154, 54,109,234,147,152,152,152,207,113,220, 21, 0,223, 1,200, 40,143,140,101, 89,130,101, 89,188,211,182, 0, + 19,219, 11, 64, 81,133, 40, 44, 44, 68, 74, 74, 10, 18, 18, 18,240,243,207, 9, 85,125, 54,223,242,244,244,236, 37,147,201,234, +210, 52, 77,234,116,186, 20,131,193,112,138,101,217, 13,168,130,143,218,223,149, 78, 59, 60, 60, 60, 22,207,156, 57,179,131,183, +183, 55,126,255,253,247,250, 59,119,238, 92,172,215,235,171,229, 92, 47, 19,145,155,151,173, 88, 29, 26, 26,168,194,245,115,135, + 66, 23,172,223,181, 25, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142,235, 71, 16,196, 97,103,161, 84, 41,179, 83, + 53,207,175,192,162,229,252, 97,233,146, 66,171, 12, 5, 9,154,166,131, 29, 45, 89, 28,199, 33, 35, 35, 3,105,105,105, 80,171, +213,240,241,241,129,213,106, 13,118,167,125,208,106,181,109,253,252,252, 12, 34,145,200,108, 52, 26,161, 80, 40, 88,145, 72,196, +217,174, 67,216,102, 45, 50,102,179,153, 16, 10,133,148,151,151,151,167,217,108,110,140,114,124,201, 56,142,107,235,231,231,231, +114,159,217,108,134, 78,167,131, 94,175,135, 78,167,131,217,108, 70, 80, 80, 16,104,154,110, 93,110,151,150,166,155, 7, 4, 4, + 32, 61, 61, 29,114,185, 28,169,169,169,176,232,180,176,106,181,160,245, 26, 48,133,133, 96, 53, 26,176,122, 13, 40,139, 1,161, +141,154,192, 62, 35,177,204,110,184,197,210,220,207,207, 15,122,253, 95,238,102,156, 77, 96,209, 52, 13,218,230, 28,109, 31, 78, +244,247,247,135,125, 70,226, 19,130, 25,192,116,146, 36, 87, 74,165, 82,225,132, 9, 19,144,145,145, 81,162, 78, 76,152, 48,161, +216, 39,171,115,231,206,231,101, 50, 25,173, 86,171, 97, 54,155, 69,207,235, 67, 79, 16, 4, 8,130, 40, 42, 35,154,134,191,191, +191, 62, 39, 39,231,231,130,130,130, 55,170,194, 71, 81,148,125, 70, 23,140, 70, 35, 56,142,195,239,191,255, 14,153, 76, 38, 98, + 24,230, 38, 77,211, 10,145, 72, 4,210,230,252,245,164, 96,155, 17,248, 37,128, 48,155,133,232, 45, 20, 57,156,167,185,104, 72, +220,186,117,110,114, 86, 94,184,153, 98,236,150,166, 52, 84,109, 56,210, 21,186, 54, 86, 73,150,197,181, 11, 84,181,236,239,161, + 87, 72, 4,122, 54,165,101,221,255, 45, 73,216, 57,122,212, 91, 94,115,231,206,173,227,239,239, 47, 75, 78, 78, 54,205,155, 55, +175,222,182,109,219, 8, 20, 13,211,149,137, 71,143, 30,237,159, 57,115,166,111,223,190,125,235, 75,165, 82,162,176,176, 16,106, +181, 26, 89, 89, 89,120,240,224, 1,119,253,250,245,123,102,179,121,119,101, 18, 25, 18, 18,178,233,141, 55,222, 24,253,210, 75, + 47,137,236, 22, 82,189, 94,223,234,236,217,179, 3,142, 29, 59,214, 73,175,215, 87,186, 94, 62,126,252,120,247,172, 89,179, 60, + 94,125,245,213,198, 82,169,148,172,137,116, 58,130, 36,201, 32, 79, 79, 79,156, 58,117, 10, 42,149, 10, 36, 73, 6, 85,183,190, +154,172,108,104,173, 96, 63,152, 46, 46, 67,227,128, 58, 48, 89,217, 80, 94,162, 60, 63, 22,173, 50,222,245,109,236, 22,169, 10, +196,146,113,198,140, 25, 51, 9,130, 56, 60, 99,198,140,153,174, 44, 90,182,191,140,227,113, 14,199,155,107, 90,108, 85, 42,208, + 36,203,178, 72, 75, 75, 67,122,122, 58,210,210,210,144,155,155, 11,146, 36,193,113,156, 59,179,207, 56,130, 32,216,147, 39, 79, +250, 92,186,116, 73,223,166, 77,155, 2,187,255, 11, 77,211, 4, 69, 81,132,205, 47,134, 72, 73, 73, 17, 95,184,112, 65,117,235, +214,173, 32, 91,111,149,173,192, 20, 88,106,155, 93, 96, 57, 46, 38,147, 9, 50,153,204, 61,213, 97,123, 17,254,126,245,106,145, +200,210,105,109, 67,134,133, 96, 52,133,224,244, 90, 72, 24, 10, 18,112, 32, 76, 6,183,239,159, 35,236, 34,203,106, 19, 90, 22, +139, 5, 20, 69,129,101, 89,208,244, 83,241, 43, 95,219,162, 69,139,214,251,247,239, 31,155,150, 86,250, 93, 56,104,208, 32,188, +247,222,123,152, 60,121,242,173,126,253,250, 93, 63,116,232, 16, 38, 77,154, 4,150,101, 91, 2, 40, 4,112,236,121,123,232,205, +102,115,177, 5,202,100, 50,193,106,181, 2,229, 56,191, 87, 84, 55,237,101, 75,211,180,157,155,216,191,127, 31,206,159, 63, 79, + 38, 36,220, 12,155, 48, 97,162,221,225,254, 73,103, 53, 21, 69, 51,247, 36,182,134,194,130, 34,255,167,178, 66, 42, 68,160,252, + 33, 59,174, 60,206,234,160,197,250, 22,195, 62,252,240,195, 40, 20,205,112,190, 95, 77,139,214,171, 18,146,248,122, 74,115, 95, +217,180, 22,126,122,137,144,208, 37,125, 61, 83,247, 32, 92,169, 15,170,173,176,132,213, 83,213, 90,176,224,139,144, 91,183,110, +155,103,207,158,157, 56,124,248,240,192,105,211,166, 53,221,187,119,111, 39,147,201,244, 13,128,130,178,140, 46, 3, 6, 12,184, + 18, 24, 24, 88,111,253,250,245,217,143, 31, 63,246,161, 40,202,195,106,181,178,122,189,254,129,209,104, 60,101,181, 90, 79, 1, +184, 90,153,196,122,121,121,181, 24, 51,102,140,168,160,160, 0, 66,161, 16, 86,171, 21,217,217,217,232,208,161,131,224,224,193, +131,205,170,114, 3,242,243,243,151,125,243,205, 55,103,118,236,216,209, 75,169, 84,190, 36,149, 74,131, 1, 48, 90,173, 54, 75, +175,215,255, 81,149,116,150,104,231, 24, 38,235,234,213,171, 17, 74,165, 18,143, 30, 61, 2,195, 48, 89,213,173, 3, 50, 49,249, +248,198,185,131,181,155,248,215,195,133, 75, 87, 32, 19,147,143,249, 80, 95,207, 61,236, 62, 84,112, 20, 80, 46, 4,210,165,184, +184, 56,249,194,133, 11, 17, 23, 23,119,211,149, 69,203, 46,184,226,226,226,110,218,143,115, 56,254, 92, 53,210, 88,182, 69,171, + 44, 5, 9, 20,205, 46, 84,171,213, 62, 42,149,170, 88, 96,165,167,167, 35, 61, 61, 29, 18,137, 4, 41, 41, 41,144, 72, 36, 25, +238,116, 66,228,114,249,111,173, 90,181,122,225,254,253,251,226,121,243,230,213,190,122,245,170,178, 67,135, 14, 47,202,229,114, +134,227, 56,152, 76, 38, 50, 49, 49,209,115,233,210,165,161,109,219,182,181,180,109,219,246,218,174, 93,187,140, 40, 39,254, 21, + 65, 16,191,100,100,100,212,175, 91,183,174, 93,180,149, 16, 87,142,130, 11, 40, 26,242, 20, 10,133,215,202, 75,168, 80, 40,188, +145,148,148,212, 83, 33,147,194,162,213,192,170,211,128,214,106,193,104, 11,193, 20, 22, 2,122, 13, 36, 52, 13, 17, 67, 65, 46, +147, 33, 45, 53, 21, 66,161,240, 70,121,156, 18,137,228, 70, 86, 86, 86, 79,149, 74, 85,252, 18,165,104,186,104, 97, 24, 88,104, +186,216,162, 37, 18,137,240,248,241, 99, 72, 36,146, 27, 79,186, 38,147, 36,201,216, 67, 56,148,145, 15, 4, 5, 5,177,237,218, +181,195,164, 73,147,192, 48,140,173, 24,136,174, 0, 46,160,200,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116,200, +207,207, 23,202,229,242, 23, 66, 67, 67,175, 88, 44,150,221, 52, 77,111,126,240,224,129,166, 44, 78,155, 48, 43, 22, 93, 44,203, +130,227, 56, 48, 12, 3,138,162, 32, 22,139,217,179,103,207, 97,233,242,197,136,223,188,141, 27, 48, 96, 0,113,240,224, 65,176, + 44,155,250,132,179,111,177,137,150,242, 26, 13,231,144, 10, 31,161,252,144, 10,101,113, 58,246,254, 28,183, 17, 46,142, 41,133, + 15, 63,252,240, 56,138,134, 12,115,108, 98,174, 58,156, 95, 22,124,247,133, 12, 52,163, 55,159,221,161,251,246,142, 70, 63,247, +219, 21,191, 89, 36, 2,205,203, 93,130,154,215,175,247,130, 64,165,242, 33,215,109, 88,153,187,125,219,158,228, 71,143, 30,105, +214,172, 89,211,254,133, 23, 94,240,254,227,143, 63, 66,203, 18, 90, 10,133,162,225, 91,111,189, 53, 38, 63, 63, 95, 28, 31, 31, +191, 43, 35, 35,227, 55, 20,133,150,113,156, 65,221, 15,192, 22,155, 16, 13,178,181,115, 23, 0,204, 43,175,191, 70, 16, 4,126, +250,233,167, 82,179, 3,217,234,169,115, 85,131, 6, 13,134,221,191,127,255,124, 86, 86,214, 16,231,157, 98,177,120,110,163, 70, +141,122,223,188,121,243,115, 0, 71, 43, 67,108, 48, 24, 98,247,236,217,179, 68, 32, 16,212, 98, 24, 38,221,104, 52,198, 86,219, +162, 69,177,227,226,214,237,220,104,180, 48,225,114,137,224,145,137, 98,223,230,117,200,243,107,205,178, 65,237, 96,141, 82,163, +232, 59,130,142,235,127,216, 94, 70, 22,142,227,236,199,170, 29,172, 88, 22, 39, 43,152,171,125,234,106, 4, 75,231,202,106,227, +202,178,104,125, 2,160, 45,128, 95,178,178,178, 86,142, 30, 61,122,233,246,237,219,189, 52, 26, 13,178,178,178,144,157,157, 13, +161, 80, 8,165, 82,137,181,107,215, 26,179,178,178, 86, 58,158,131,210, 17,228, 1,192,228,239,239,255,219,182,109,219,130,191, +254,250,107, 97, 76, 76, 76, 74,191,126,253, 26,175, 93,187,246,190, 88, 44,230, 24,134, 33,204,102, 51,241,206, 59,239, 68, 44, + 95,190,252,161, 64, 32, 80, 12, 27, 54,140,240,240,240,248, 5,229,132, 13, 80,171,213, 39,191,255,254,251,193, 83,167, 78,149, + 90, 44, 22,151,150, 44,251, 54,149, 74,133,139, 23, 47, 90,242,243,243, 79, 84, 96,197, 56,249,195,209, 35,157,255, 59,124,184, +152,210,106, 64,105, 53,160, 53, 26, 48,218, 2, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,126,253,131, 50, +155,205,229, 6, 54,212,104, 52, 39, 47,196,199,119,109, 91,167,142,240,226,148, 41,176, 82, 20, 94, 77, 74, 42, 22, 87, 86,171, + 21, 7,154, 55, 7, 67, 16,104, 57,126, 60,238,210, 52,173,209,104, 78,254, 19, 31,134,235,215,175,103,143, 28, 57,242, 42,203, +178,173, 43, 99,221,249,167,131,162,168, 82,214, 40,134, 97,138,172,142, 69,150, 3,201,145, 35, 71, 58, 39, 38, 38,138,255,252, +243, 79,156, 63,127,190,229,246,237,219, 63, 9, 15, 15,111,254,232,209,163,204,138,196,155,171,160,191,176,249, 31,238,218,177, + 27,239,190,251, 46,145,153,153,137,239,190,251, 14, 21, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,181,225,228,247,228, 34,164, +194,239,112, 51,164, 66, 89,156,166,152, 34, 43,153, 44,190, 40,216,168, 41,166,104, 56, 80, 22, 95,161,165, 12, 49,166, 24,141, +205, 33, 62,163, 6, 56,245,160, 25,185,229,236, 14, 93,191,163,143,180,151, 51,140,243, 0, 28,135,137,225,238, 94,227,174,191, +244,146,143, 63, 0,152, 77, 76,112,195,134, 13,187, 8,133, 66, 9, 0,120,122,122,190,228,231,231,183, 54, 55, 55,183,163,171, + 50,141,142,142,110, 23, 24, 24,216,234,216,177, 99,127,100,100,100,220, 4,240,179,243, 65, 17, 17, 17,179,111,221,186,213, 70, + 36, 18, 17, 21,212, 17, 0, 64,151, 46, 93, 94,144, 74,165,126, 71,239,120, 67, 35,110, 0, 78, 80, 8, 8,101, 96, 84, 45,144, + 34,110,138,176,176, 43,126,249,249,249, 45, 11, 11, 11,255,168,100,209,119, 27, 60,120,240,230,248,248,248,176, 46, 93,186,112, +215,174, 93, 35,157, 71, 17, 34, 34, 34,122, 93,190,124,185,245,219,111,191,189,126,231,206,157, 19, 81,114,166,109, 69, 72,177, +197, 27,172, 49,156, 76,198, 41,128,169, 99,179,153,241, 10,229, 95,128,202,132, 92,168, 70,120,134,106, 37,177, 76, 3, 70, 25, +219,219,218, 98, 98,181,165, 40,234,247,235,215,175, 31, 24, 54,108,152, 46, 55, 55, 23,126,126,126,168, 91,183, 46, 8,130,192, +218,181,107,141, 15, 30, 60,216,107,139,165,213, 54, 61, 61,125,128, 77,108,185,130,118,213,170, 85, 59,183,110,221,170,186,122, +245,170,128,166,105,101,227,198,141, 13,151, 46, 93,242, 20,137, 68,156, 88, 44,102,175, 94,189,170,136,136,136, 48, 17, 4, 33, +253,241,199, 31,115,175, 92,185, 18, 62,125,250,244,111, 80,114,154,184, 51,118,204,159, 63, 63,237,254,253,251, 48,155,205,208, +104, 52, 40, 44, 44, 44, 94, 10, 10, 10, 80, 88, 88, 8,145, 72,132,204,204, 76,236,219,183, 47,195, 22, 37,190, 60,203,198,154, +213,107,215,169, 51, 30,165, 64,169,144,131,214, 20,128, 41,204, 5,180,133,144, 80, 86,120,136, 24,212,110, 32,135, 76,161, 68, +150, 70,135,248, 75,191,102,218,162,196,151,109, 46,176, 88,214,188,183,124,121, 22, 45, 22,163,206,208,161,176,218,134, 10, 29, +133, 22, 67, 16, 8,239,209, 3,164,183, 55, 22,236,221,155,101,139, 18,255, 68,193,178,172,192, 98,177,148,151, 15,176, 44,155, +154,152,152,184, 19,192, 25,130, 32, 56,130, 32, 56, 20, 5,107,211, 61,203, 15, 50, 69, 81,152, 51,103, 14,196, 98, 49,230,204, +153,131, 79, 63,253, 20, 75,151, 46,197,186,117,235,240,237,183,223,226,200,145, 35,245, 46, 92,184, 32, 62,119,238, 28, 23, 23, + 23,151, 19, 17, 17, 33, 24, 63,126,188, 74, 46,151,127, 88, 30,103,108,108, 44,188,188,188, 16, 27, 27,139,197,139, 23, 99,211, +166, 77, 56,112,224, 0, 46, 94,188, 8,129, 64,192,166,166, 62,134,201,100,226, 86,173, 90,149,118,224,192, 1,227,202,149, 43, + 33, 20, 10,137,167,212, 72,124,104, 19, 84,142,150, 32,231,144, 10,185, 0, 86,160, 98,223,168,178, 56, 33,139,143,175,109, 19, + 71,201, 14,130,232, 16,128,169, 40,127,122,181,157, 99, 34,128,224, 26,224,156, 37, 31,249,127,137,170,141,183,239, 93,206, 48, +206, 2,240,131, 61, 79, 74,165, 82,190,127,255,247, 66, 0,216,187,103,159, 40, 41, 41,201,251,251,239,191,151, 5, 6, 6,226, +219,111,191,149,201,229,242,192, 50, 56,153, 3, 7, 14,152, 37, 18,137,223,184,113,227,250,180,105,211,230, 3, 91, 71,180, 7, +128,102, 40,154,189, 24,117,239,222,189, 4,127,127,255, 59, 39, 78,156,208,187, 83, 64, 90,173,246,155, 45, 91,182,212,205, 99, +124,113, 84, 63, 24,241,236, 18, 28, 81,109, 70, 74,157, 79,161,168,245, 50,222,120,227,141, 90, 12,195,108,172,100,185,191, 49, +104,208,160, 45,241,241,241, 97,227,198,141,203,188,118,237, 90, 22,128,120, 0,219, 28,151, 91,183,110,229,140, 30, 61, 58, 99, +227,198,141, 33,195,134, 13, 91, 7, 96, 8,255,234,231,193,163,100, 95, 8, 21,205, 58,116,241,194, 45,254,159,157,157,189, 42, + 63, 63,255,226,221,187,119,223,183, 88, 44, 33, 4, 65,112, 98,177, 56, 51, 43, 43,107,165, 67,192, 82, 87,126, 37, 61, 97,139, +181, 65, 16, 4,197,113, 92,106,183,110,221, 62,236,209,163,199, 87,135, 15, 31, 54,117,237,218, 21,123,246,236,241,239,214,173, +155,129,101, 89,238,232,209,163,254,189,123,247, 54,156, 57,115, 70,255,206, 59,239, 52,110,212,168,209,248,216,216, 88, 53, 65, + 16,172, 43, 78,251,187,172,160,160, 96, 80,159, 62,125, 46,238,221,187, 87,169, 82,169, 64,211, 52, 12, 6, 3, 12, 6, 3, 56, +142,131,183,183, 55,212,106, 53,230,205,155,167, 41, 44, 44, 28,232, 66,184, 57,115,154, 76, 38,211,144,137, 31, 76, 61,185,242, +243, 57, 94,225,245,234, 33,247,182, 9,180,201, 0, 17, 71,162,246, 11,222, 16, 75,228,184,155,164,197, 71, 59,247,107,141, 38, +211,235, 46,122,203,165, 56, 11, 11, 11,135,196,124,250,233,169,245,211,167,123,182, 10, 10,130, 64, 32,128,217,108, 6,195, 48, + 16,137, 68,136,140,137,129, 56, 32, 0,179,119,238,212,107, 52,154, 33, 40,253, 41, 30,103,206,154,128, 35,231,196,235,215,175, +143,110,210,164, 9, 38, 76,152,128, 65,131, 6,149, 56,240,251,239,191,199,186,117,235, 96, 54,155, 71, 3,184, 6, 96, 45,138, +134, 58,224, 36,178,254,238,116,214, 56, 39,195, 48,249, 73, 73, 73,202, 37, 75,150, 16, 86,171, 21,159,127,254, 57,236,130,211, + 94,175, 39, 77,154, 84,203,203,203, 11,159,125,246,153, 37, 39, 39,167,251,226,197,139, 79,111,219,182,205,255,155,111,190,121, + 3, 64,172, 51, 39,203,178,217, 55,110,220,240, 90,191,126, 61, 73,211, 52,150, 45, 91, 86,106,120,114,236,216,177,176, 90, 41, + 8, 4, 66,139,201,100,110, 38,151,203,147,253,252,252,228, 92, 73,231,174, 39,121, 63, 67, 81, 20,194,192,209,241,221,226,232, +159,133,178, 67, 42, 84,134, 83, 45,139,143,239,106,138,137, 57, 99, 19, 68,137,182, 99,246,216, 77,250,149,224,180, 11,194,170, +112,158,180, 45, 21,194,100, 50, 65,173, 86, 35, 39, 39, 7, 42,149, 10, 2,129,128, 40, 43,157,102,179,249,207,143, 62,250,232, +250,198,141, 27,123, 94,190,124,185,255,185,115,231,186,157, 58,117,202,148,146,146, 66, 83, 20,197,133,132,132, 8, 59,118,236, + 40,235,219,183,175,135, 84, 42, 37,103,205,154,149,243,197, 23, 95,248,163,164, 15,155,115,222, 5, 4, 65, 96, 90,103, 45, 98, +187, 9, 96,177, 88, 81, 80, 80,128,180,180, 84, 36, 36, 36,224,242,229,219,224, 56,142,172, 68,185,251, 1,152,245,221,119,223, +133, 74, 36, 18, 98,231,206,157,181,118,238,220, 89,161, 37,117,251,246,237,181,118,237,218, 53,215, 54,122,145,250, 44, 62,239, + 60,231, 63,150,243, 89,134,115,100,120, 84, 40,180,108,237,124, 91,216, 62, 74, 74, 81,212, 47, 46, 66, 56,124, 2, 96,142,131, + 21,172, 34,115,158,134,227,184,243, 61,123,246,156,212,163, 71,143,229,189,122,245,202,200,200,200,168,191,108,217,178, 48,154, +166,173, 9, 9, 9,100,114,114,114,202,111,191,253,214,160, 81,163, 70,227,111,221,186,117,150, 32, 8,171, 27, 25, 76, 72, 78, + 78,238,208,173, 91,183,125,227,199,143, 15,111,215,174,157, 68,165, 82, 65, 40, 20,226,254,253,251,248,227,143, 63, 44,187,118, +237, 74, 45, 40, 40,168,204, 39,120,126,121,152,150, 22, 53,108,242,251,123,199, 15,234,239,255,159,198, 47, 72, 66, 66, 66, 0, +163, 17,183, 31,101,226,202,237, 63,172,155,206, 95, 81,155,205,230, 33,112,255, 19, 60,191,252,118,247,110,207,238,211,167,239, +157,251,223,255, 6, 33, 35, 67, 24, 18, 18, 2,137, 68,130, 7, 15, 30, 32,153,101,233, 69, 27, 54,100,217, 68,214,147,142, 10, + 47, 5,176,132,101, 89, 33, 0,200,229,114,188,247,222,123,112,252,228,206,186,117,235, 96, 52, 26, 1, 64, 72, 16,196, 18, 0, +155,159,117, 43,150, 29,121,121,121,179, 95,125,245,213, 56,161, 80, 88,102,212, 91, 31, 31, 31,104,181, 90,208, 52,205,164,165, +165,221,246,241,241,129, 72, 36, 2,199,113, 46,159,163,220,220,220,217, 67,134, 12,153, 79,146,100, 89,150, 15, 40,149,202,148, +211,167, 79, 55,124,251,237,183,201,255,253,239,127,247,199,141, 27, 39, 61,125,250, 52,195,113,220,190, 39,125, 15, 58,117,218, + 1,172,143,121, 29,192,235, 64, 41,135,247, 52,219,182, 74,133, 84,232,212,105, 7,214,227, 47, 78,199, 97, 60,187, 32,178, 89, +161,154,202,226,227,151,163,200,207,162, 92,238, 78, 59, 58, 97,125, 12,106,148,211, 29, 56,106, 95,189, 94, 15,134, 97,202,179, +230,253,190,103,207,158,229,191,253,246, 91,192,164, 73,147,234,255,247,191,255, 85,118,235,214,205,211,241, 0,163,209,200, 30, + 58,116, 72,191,110,221,186,194,243,231,207, 63, 28, 59,118,108,187,242,210,249,232,209,163, 35, 11, 22, 44,240,238,219,183,111, + 35, 0,197,254, 89,106,181, 26, 41, 41, 41,248,243,207, 63, 83,172, 86,235,193, 74,100, 41, 23,192,220, 17, 35, 70, 44,217,186, +117,107,173,113,227,198,101,238,218,181,235, 79, 20, 5, 44,118,134,106,208,160, 65,205,183,110,221, 26, 50,110,220,184, 76, 20, +249,145,165,130, 7, 15, 30,118,116, 69,105, 63,173,114, 71, 38,182, 88, 44, 22,206,100, 50,113, 6,131,129,211,233,116, 28, 92, +127, 5,254, 64,122,122, 58,151,154,154,202, 61,122,244,136,123,248,240, 33, 7,224, 91, 39,197,235,170,193,242,216,190,125,123, +131,208,208,208,207, 21, 10,197,113,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 22, 45, 10,229, 56, 78, 92, +142,138, 46, 11, 66,145, 72,244,118, 96, 96,224, 1, 95, 95,223, 84, 31, 31,159,212,192,192,192, 3, 34,145,232, 93, 0,162, 10, +148,121, 89,144, 9,133,194,143, 60, 60, 60, 78, 74,165,210,108,169, 84,154,237,225,225,113, 82, 40, 20,126,132,242, 3,169,150, +203, 41,145, 72, 62, 10, 8, 8, 56,169, 84, 42,179,149, 74,101,118, 64, 64,192, 73,137, 68, 82, 29,206,234,244, 74,236, 66,203, +192,217, 64, 16, 4,213,178,101,203,245,173, 91,183, 94,219,186,117,235,181, 45, 90,180,248,218,102,149,228,108,214, 22, 3,202, + 14,222,248,119,166,243,169,113, 70, 70, 70,110,219,186,117, 43, 59,123,246,108, 77,163, 70,141,242,102,207,158,173,217,186,117, + 43, 27, 25, 25,185,173,170,156, 65, 65, 65,117, 34, 35, 35,243, 54,110,220, 72, 39, 37, 37,113, 27, 55,110,164, 35, 35, 35,243, +156, 34,195, 63,137,188, 19, 0, 34,108,214,159,131, 0,118,163,200,249, 61, 20, 0, 17, 99,138,225,108,179, 15,143, 3,232, 85, + 70,217,187,203, 25,102,138,137,225,108, 62, 85, 39, 0, 36, 58,172,119, 65, 73,255,175, 39,193,233, 18,205,154, 53,187,203, 57, +192, 98,177,112,106,181,154, 75, 74, 74,226,206,159, 63,207,133,133,133,221,117,131,211, 15,192, 59, 0, 14, 5, 7, 7,223,106, +223,190,253,163, 14, 29, 58, 60,170, 83,167,206,125,145, 72,116, 25, 69, 17,222, 35,109,203, 18, 0,141, 42,224,108,175, 82,169, + 22,132,133,133, 29,108,216,176,225,197,186,117,235, 94,246,245,245, 61, 44,147,201, 22,226,175,200,216,149,173,243,221, 6, 15, + 30,156,162,211,233,152,151, 94,122,233,150,171,147,154, 52,105,114, 65,167,211, 49,195,135, 15, 79, 5, 16,253,111,120,222,121, +206,167,194,249,220,193, 85, 84, 4, 59, 26,218, 4,211, 1,135,229, 19, 23,199,125,226,116,204, 22,219,185, 21, 22, 4,199,113, + 2,142,227, 60, 56,142,243,230, 56,206,151,227, 56, 21,199,113,158, 28,199, 73, 43, 48,127,243, 21,251,239,227,156,104, 19, 80, + 6,219,127,103, 84,180,255,185,190,159,161,161,161, 62,109,218,180,153,188,127,255,254,143,238,221,187,247,209,254,253,251, 63, +106,211,166,205,228,208,208, 80,159,234,164, 51, 40, 40,168, 78,211,166, 77,191,106,210,164, 73,106,211,166, 77,191,114, 18, 89, + 79, 50,239, 18,155,136,105, 98, 91,234,219,182, 17, 40,138,133,181,198, 38,108, 34,202,232,169, 85,134,211,206,119, 16, 64,111, +219,114,208,182, 45,236, 41,112,150, 66,189,122,245,142, 53,111,222,252,110,139, 22, 45,146, 91,180,104,113,183, 89,179,102,119, + 27, 55,110,124, 55, 34, 34,226,110,237,218,181,239,250,251,251, 31,171, 66, 25,249, 2, 8, 65,233,207,128, 61,237, 58,223, 53, + 50, 50,242,138, 76, 38,115, 25, 27, 76, 40, 20,206,109,209,162,197, 13, 20,205,148,228,219, 79,158,147, 23, 90,162, 32,200, 0, + 0, 0, 32, 0, 73, 68, 65, 84, 53, 32,180,248, 10,243,239,229,148,162,252,207,140, 84,180,159,191,159,207, 54,167,203,111,117, +217,132, 76,125,155,192,145,212, 0,167, 35,159,189, 78, 69, 56,136,166,167,193,201,215, 37,158,147,231,228,133, 86,141, 11, 45, + 33,127, 27,120, 56,193, 92,205,253, 60,158,241,118,161,140,237,174, 98, 98, 85,135,211, 21,223,189,167,204,201,131, 7, 15, 30, + 53,213,118,118, 5,112,214,222, 43, 44, 75,149, 86,102, 54, 65, 85,148,237, 41,158,147,231,228, 57,121, 78,158,147,231,228, 57, +255,117,156,118, 44, 47, 99,251,109,167,245,175,159, 81,225, 69,240, 67,135, 60, 39,207,201,115,242,156, 60, 39,207,201,115,254, + 83, 56, 93, 97,252, 51, 42,178,186, 0,252,208, 33, 15, 30, 60,120,240,224,193,131, 71, 77,163,226, 56, 90,187,119,239, 22,216, +255,143, 24, 49, 98, 44,195, 48,147,237,235, 2,129, 96,245,119,223,125,183,185,188, 43, 12, 29, 58,148, 41,143,211, 21, 42,186, +142, 43,206,102,141,148, 19,252,188, 21,239, 23, 20, 26, 86,220, 79,103,206,155, 76,166,166,246,125, 50,153, 44,113,243,230,205, +119,106, 58,157, 99,199,142,109,228,124,157,186, 97,162,174,190, 94,178,247,242, 10,116,203,110,222,213,125,205,215,177,167, 2, +127, 0,209, 94, 50,241,128,102, 42,113,251, 63,115, 77,151,244, 86,230, 16,138,102,195,230, 63,143, 25, 14, 14, 14,110,172, 84, + 42, 71, 1,104,102, 48, 24, 2, 21, 10, 69, 54,128, 4,141, 70,179, 45, 51, 51,243,182,187, 60, 93,234, 34, 5, 64,184,109,245, +209,217,135,168,227,206,190,138,208, 43, 2, 38, 14,144, 18, 4,172, 39,146,255,114, 70,239,221, 0, 38,150, 43,189,189, 87, 3, + 88, 56, 14, 98, 2, 48,159,184, 7,217,115, 84, 84, 74, 0, 81, 40, 10,225,112, 29, 69,225, 39, 12,252, 35,203,131,199,115, 5, +231, 64,165,197,235,194, 50,196, 68,103,177,144,248,138, 3,167, 2, 56, 63,179,217, 44,146, 72, 36,176, 88, 44, 80, 40,228,107, +222, 25, 55,246,115,144, 40,160,104,188,183,121,243,230, 42,127,233,186, 50,215, 1,240,147,243,249, 62, 74,249,252, 51,135, 62, +246,233,220,111,209, 66,203,131,156, 88,173, 86, 75, 74,165, 82,152,205,102,120,123,123,119,152, 48,126,252, 75,164,136,179,136, +197, 30,151,150, 47, 95,158, 89,213,116,126,248,225,135,193, 86,171,233, 21,150,101, 37, 22,139, 69,234,124, 29,111,133,199,162, + 51,135, 62, 86,116,137, 94,248, 57,192, 11,173,167, 0, 73, 29, 31,143,179, 43, 70,116,109,210,190, 89, 67,176, 9,231, 96,178, + 88, 7,156, 73,213, 13,248,244,114,250,212, 84,157,181, 53,106, 32, 96,229, 63, 8,130,250,245,235, 79, 10, 8, 8, 24,190, 97, +195, 6,113,253,250,245, 33,147,201, 96, 52, 26, 67,238,221,187, 23, 50, 97,194,132, 46,114,185,124,231,253,251,247,215,192,189, + 15,193,133,159,217,242,127, 0,128, 14,163,230,133,163,232, 99,209, 6,231,125, 93,199,204, 11, 7, 48, 29, 37, 63,140,156,129, +162, 16, 10,174, 90, 29,201,225,173, 75, 49, 96,244, 71, 66, 0, 19,138, 19, 79, 2, 63,124,187, 18,125, 70,188, 95, 98, 59,193, + 65,120,104,235, 82, 68,143,254,168,204,239, 40,246,110, 72, 80, 44,203,149,105,137, 39, 73,130, 62,126,151,115,245,129,225, 44, + 20,197, 0, 43, 69,137,162, 15, 58,187, 60,190, 95, 99, 65,150,149, 98, 92, 6,156, 21,139, 4,217, 71,110, 51,165,206,141,105, + 5,138, 98,138,218, 86,177, 16,204,129,251,222,103,102,205,154, 37,140,142,142,198,166, 77,155, 58,126,253,245,215,227,181, 90, +237,143,182,251,150,204, 63,190, 60,120, 60,215,130,203,181,208, 18, 10,176,254,224,222,205, 13,178,178,115, 16,243,246, 52,236, +216,177, 3,249,249,249,240,241,241,129, 68, 44, 22,173, 88,242,127,193, 74,165, 71,112,204,248,216,245, 0, 26, 87, 53, 53,149, +188, 78, 67,231,243, 9,219,167,116,132, 2, 82, 36,145, 72,200,157, 59,119,162,160,160, 0, 42,149, 10, 18,137,136, 92,190,240, + 19,185, 82,233, 41,127,107,226,140,142, 40,138,255, 83, 37, 88, 44,186,142,251,119,108, 86,170,213,106,140,121, 55, 22,206,215, + 17,139,197,140,253,197,194,215,177,167,130, 89, 27,222, 27,221,228, 69, 47,192,122,243, 34, 68, 2, 1, 20,222, 62,136, 18, 10, + 32, 32,208, 52,230,248,195,153, 0, 62,125, 94, 50, 91,191,126,253, 73, 67,135, 14, 29, 62,127,254,124, 49, 73, 22,133,156,211, +235,245, 48, 26,141, 8, 13, 13,197,153, 51,103,196,179,103,207, 30,254,253,247,223,227,254,253,251,171, 42,203,127,243,230,205, +186,225,225,225, 38, 0,232,223,220,203,121, 95, 29,251, 62, 0,240,242,242,170,144,207, 79,229, 97,190,121,243, 74, 51,251,121, +147,122,132, 50,101,108, 55, 1, 80,148,199,197,178,156,240,196, 87, 19,202,220,255,246,252,237,244,245,221,231, 27,215,175, 95, +223,232,184,221,211,211,179,172, 83,130,116, 58, 93,184,243, 70,251,241, 86,138, 9, 44,235,122,189,222, 91,231, 82,128, 81, 12, +132,219,183,111, 7, 0,124,249,209, 72,193,198,159,115,132, 66, 97, 81, 83,187,100,201, 18,204,157, 59, 87,114,252,248,241,190, + 91,183,110,237,123,224,192,129, 21,101, 9, 85, 30, 60,120, 60,147, 34,203,241,183,108,161, 69, 18,132,151,210,203, 19,175,191, +241, 14,142, 29,251, 1,157, 59,119, 46,222, 87,175, 94, 61, 12, 29, 50, 16,223,109, 89, 14, 0, 94,213, 73, 81,117,175,147, 95, +168,255,180,207,240,175,230, 61,202,212, 93, 62,124,248, 48, 58,117,234, 84,226,252, 55,134,189,142,111,191, 89,130,114,162,204, +187, 5,130, 35,197, 94, 74, 15,140,136,121, 23,174,174, 51,126,204,160,195,189,135,174,236,153,149,171, 95,206,215,179, 39,143, + 6,193,126,189,154, 55,105,140,252,125,107,240, 71,129, 9,199,210, 77,120, 43,234, 63,136,244,149,163, 19,205, 32,216, 67,212, + 61, 83, 79, 61, 23, 66, 43, 56, 56,184,113, 64, 64, 64, 9,145,165,213,106,161,211,233,160,209,104,160,213,106, 65,146, 36, 98, + 99, 99,197,103,207,158, 29, 30, 28, 28,124,202,141, 97,196, 71, 54, 75, 22, 32, 16,233,230,204,153, 99, 14, 12, 12, 52, 43, 20, + 10, 78, 40,150,106,187,142,153,231, 5, 0,164, 80,172, 93,177, 98,133, 37, 52, 52,212, 36, 20, 10, 37,239,191,255, 62,233, 78, +154,205,102, 51,231,200,105,177,152,139,183, 47, 90,180,200, 18, 20, 20,100, 86, 40, 20,156,213,234,190,209,241,198,131, 60, 72, +197, 2, 72,197, 2,200, 36, 34,120,213,109, 3,105,254,159,160,105, 26,139, 23, 47,182, 6, 7, 7, 91, 20, 10, 5, 39,145, 72, +196, 83,166, 76,169, 48,157, 99,199,142,229, 84, 42,149, 85,161, 80,136,231,206,157, 91, 42, 24,235,233,235,105,144, 75, 68, 80, + 72,133,104, 88, 47, 12, 82,206,232,118, 90, 5,130,146,222, 8, 82,169, 20, 29, 59,118, 68,179,102,205,112,224,192,129,174,188, +208,226,193,227,185, 64,153,159,219, 17, 2,192,225,195,135,187,160,232,131,136,136,142,142, 38,138,206,224, 48,125,210, 16,188, + 53,102, 4, 24,134, 45,142,110, 74,144, 4, 38,190,217, 23, 44,235,206,136, 68,197, 83, 60,171,112,157, 98, 78,142, 32, 5, 0, +208,160, 78, 8, 55,254,173,255,130, 97,217,191, 6, 74, 4,192, 59, 99,250, 20,109,171,129,116, 10,192, 96,218,132,215,224,234, + 58,141, 27,212, 34,105,171, 9, 68,201,143, 61,254, 29, 31,219,228, 57, 93,160, 89,237,144, 8,202,104,132,201, 68, 33,254,118, +158,241,100,154, 62,144, 84, 61, 84,175,124,189,157, 76,160, 78, 71, 29, 47, 73,195, 76, 61,245, 92,228, 93,169, 84,142,218,176, + 97, 67, 41,145,149,149,149, 69,234,116, 58, 88,173, 86, 86,171,213,130, 97, 24,204,152, 49, 67, 52,123,246,236, 81,153,153,153, +115,237,154,199, 21,167,205,239,106,250,205,155, 55,235,204,154, 53,203,218,189,123,247, 71,245,234,213,211, 11, 4, 2,132,132, +132,172,140,138,138,242,157, 63,127,190,181,111,223,190, 15, 5, 2, 1, 26, 54,108,168,255,243,207, 63,235, 0,144,187,155,119, + 71,206,205,167, 87,115, 0, 64, 16, 4,162,162,162, 82, 26, 54,108,168, 23, 8, 4,184,115,104, 17,231,238,253, 20, 9, 73, 52, + 10,245,182, 53, 34, 4, 32,247, 44,246,196,139,138,138, 74,109,220,184,177,142, 36, 73,220,184,113, 35, 12,165, 63,107, 85,138, + 83, 46,151, 83,111,188,241,198,163,219,183,111,187, 58, 30, 66, 1,137,118,141,109, 6,172,208,214, 64,234,133, 50,211, 41, 18, +128,158, 61,105,164, 80, 37, 3,164, 94,254,102,141, 70, 3,165, 82, 89,100, 33,179, 90,241,251,239,191,163,125,251,246, 93,118, +239,222,125,150,127,222,121, 78,158,243, 47,184,210, 34,207,160, 53,203,241, 67,247, 37,124,180,206, 56,103,138, 97,104,212, 11, + 15,194,162,255, 27, 11,134, 97,193, 48, 12,104,219, 47,195, 48,160,172,214, 26, 73, 89,117,174,227,163,148,207,255, 97,231,123, + 62,221, 7, 45,233, 17, 55,107,204, 73,134, 1, 88,150, 2, 69, 1, 12, 75,129,101, 24, 80, 84,205,184,230, 80, 44,139, 58, 97, +193,136,155, 53, 6,206,215,217,246,221,238,254,167, 15,198, 42, 58, 71, 47,156,118, 39,197,176,152, 23,246, 79, 22, 50,177, 84, +200, 9,101,176, 88,104,104, 45,172, 5,128,222, 68,177, 86,206,195, 95, 6, 0, 66,146,120,158,102,215, 54,171, 95,191,126, 9, +145,181,116,233, 82,255,181,107,215,134, 2,192,144, 33, 67,210,122,244,232,145,147,148,148,132,144,144, 16, 34, 39, 39,167, 31, +128,247,109,231, 78, 7,176,182, 12, 94,125,120,120,184, 41, 32, 32,192,108, 23, 68, 36, 73, 66, 40, 20, 34, 60, 60,220, 20, 24, + 24,104,110,216,176,161, 94, 44, 22,131, 36, 73,216,133,158, 91,221, 60,130,128, 64, 32,128,157,211,217,218, 99,231,172, 12, 68, + 66,178,116,243,230,192, 73,146,164,203,235,149, 89,135,100, 50, 14, 64,153,199, 11, 72,135,230, 81, 88,190,135, 64,252,239, 16, + 1, 56,195,113, 28,174, 93,187,134,251,247,239, 67, 44, 22, 35, 56, 56, 24,115,231,206,133,217, 92,164,119,135, 14, 29,218, 5, +192, 13,254, 9,230,193,163, 24,103,158, 65,129,229,108,213, 42,223, 71,235,240,225,195, 93,162,163,163,207,218, 5, 80,145,216, +113, 33,126, 40, 26, 20,101, 5,106, 32, 16, 87,121,215, 97, 24,182,220,235,216,125,180, 88,150, 19,186, 20, 89, 44, 11,154,162, +106,228,238,177, 12, 5,150,165,224,234, 58, 4, 65, 50,182, 6, 95,204, 63, 39, 79, 30,193,225,117, 72, 42,188, 30,206,211, 38, +132,250, 73, 37,200, 49,162,254, 11, 77, 4,191, 27, 40, 92,188,158, 8,127, 79,229,115, 83, 46, 6,131, 33, 80, 38,147, 65,175, +215, 23, 91,178,214,174, 93, 27,106,177, 88, 72, 0, 16, 10, 69, 97,106, 54, 84,198,176,128,183, 50, 3,249,249,133,126, 28,199, + 17, 54,193,179, 4,192,102,148, 19,221, 95, 44, 22, 23, 11, 20, 71, 1, 36,149, 74,171, 36, 96,236,176,139, 51,177, 88,236,114, +187,243,240, 90, 69, 16, 59, 10, 45,112, 69, 86, 45, 39,177, 37, 16, 8, 96,247,141,170, 8, 18,137,164, 56,239,174, 32, 20, 56, + 92, 79, 80,121, 87, 76,171,213, 10,157, 78,135,130,130, 2,200,100, 69, 6, 51,142,227, 64, 16,196,251, 0, 62,224,159, 98, 30, + 60, 92,107,145,103, 88,108,185, 22, 90, 40, 50,217, 17, 0, 64, 83, 86,151,226,103,247,161,139,120,148,169, 71,176,255, 47,224, +202, 25,147,116,133,225,195,135,111, 9, 9, 9,105,103, 95,151,202, 61,253,198,191,247, 25,104,218, 10, 47, 57,137,183, 71,245, + 41, 33,178,138, 44, 90,150, 50,191, 9,146, 95,168,255,180,207,208, 85,243,188,149,126,151,157,197, 79, 92,252,213,215,243, 53, +230, 48,146,252, 21,249, 68, 8, 51,244,157,207,198, 58, 52,238,215,119,174,155, 51,213,109,123, 32, 65,138, 94,159,176,114, 60, + 39,244,108,170, 32,181,231, 62, 30,243,159,253,142, 98,206,215,215,247,112,175,215, 87,244,204,202,227,125,180,158, 6,188,188, + 85,100,216,203, 93,241,242,251, 95,225,244, 39, 31,115, 64, 62,252, 66, 66,201,110,147,190,128,231,203,253,113,229,237, 81, 44, +144,247, 92,228, 85,161, 80,100, 27, 12,134, 16,163,209, 8,141, 70, 3,141, 70, 83, 82, 16,136, 68,196,248,119, 39,251,139,196, + 18, 80, 86, 11,142,109,251,162, 66, 78,123, 8,135,254,205,189, 32, 16, 73,180, 9,245,235,175, 20, 10,133, 32, 73, 18,135,214, +124,252,254,190,101,239,121, 1,192,245,195,107, 52, 35, 98, 87,175, 34, 73, 18,102,179, 89, 90,153,116, 63,126,252, 56,204,108, + 54,155,108, 2,205, 46,252,240,224,193,131,218,102,179,217,232,184,221, 29,200, 21, 94,128,170, 30,160, 8, 44,101, 61,123,248, +240, 97, 45,138,162, 12, 66,161, 16, 22,139,197, 45, 85, 68,146,164,248,198,141, 27, 97, 44,203,186, 60,190, 89, 68, 45, 32,184, + 57, 32,241,118, 59,207,238, 68,132,182,137, 45, 14,149,108, 75,121,240,120,222, 45, 91,207,224, 51, 65,148,241,191, 88,104,117, + 61,124,248, 48,231,216, 67,164, 41,202, 38,178,254, 18, 61, 12,195, 34, 93,109, 66, 82,210, 29,172, 88,177, 2, 23,175,124,228, + 61,127,254,124,233,236,217,179,205,195,135, 15, 95,198,178,108, 11,146, 36,175,227,175,161,138,146, 86, 33,150,173,125,245,234, +213,250,246,117,138,162,224,229,229, 5, 47, 47, 47, 52,110, 24, 86, 74,100, 49, 12, 3,107, 57, 67,135,118, 31, 45,130, 99, 57, +138, 98,192,176,108,177,248,201,215,152,195, 14,158,186,214,192,225,240, 23,236,127, 58,182,105, 90,182, 24,156, 48,183, 56, 31, + 59,215,205,153, 58,127,211, 38,105, 62, 19, 48,101,196,235,111, 69, 14, 29, 49, 10,111,188,246,106, 23,179,197,114, 64, 64,114, + 44, 85,124, 61,144,224,224,236,163,197,227, 9, 33,185, 64, 79,137,164,114,120, 6,215,197, 29, 29, 35, 22, 8, 4,191,220, 43, + 48,136, 73,129, 16,164, 80,140,132,124, 19,245, 28,101, 55, 33, 57, 57, 57,164,118,237,218,208,104, 52,160,105,154, 29, 50,100, + 72,154, 80, 40, 10, 19,138, 68, 68,244,136,201,108,102,102, 58, 69,146, 2,112, 28,131, 87,135, 78, 32,164, 50,185,216,106,177, +208, 40, 26, 58,116,101,205,114, 12,225,224, 21, 21, 21,229,107,159, 9,184,111,217,123, 94, 14,251,148, 47,189,244,146,175,227, +172, 67, 55,173, 69,196,240,225,195,229,225,225,225, 4, 0,252,186,109,150,221,122, 70,244,239,223, 95, 22, 30, 94,228,135,255, +227,154,247,220,230,244, 87,112, 64,225, 3,160,240, 97, 41, 75, 86,255,254,253,165,245,235,215,175,212,179,104,115,128, 47, 51, +118,151,135,144, 6, 50,175,185,197, 21,211, 10, 84,168, 39,132,203, 94, 37, 33,241,244, 51,183,251,248,248,207,188,216,226,193, +195, 45, 56,105,145,103, 10, 93,108, 2,177,171,237,183, 88,112, 9, 1,192,102,162, 35, 28,116, 22, 40,218, 90, 74,100, 49, 12, + 3, 17, 97,198,138, 21, 43,240,193, 7, 31, 0,128,120,234,212,169,251,231,207,159, 63,152,101,217, 22, 28,199,117, 34, 8,162, +188, 94,227,153,144,144,144, 44,142,227, 68, 36, 73,118, 90,179,102,141,111,223,190,125,225,229,229, 5,142,229, 74,137, 44,134, + 97, 97,181, 90,202,252,204,173,143, 82, 62,255,135,221, 83,124,186, 15, 92,210,131, 97,217,147,118,145,197, 50, 12,192, 22,157, +148,155,157,134, 19,199, 14, 96,253,186,245,249, 32,184, 91,224,192,218,196, 32,202, 16,131, 45, 46,252,154,216,169, 99,155,166, +152,191,105,147,244,230,213,140,253,147, 63,156, 25, 57,116,196, 40,236,254,110, 27, 72,186,224,154,163,200, 98, 40, 22,133,249, + 57,253,127,226,125,180,158, 22,124, 79,156, 60, 73,140, 26, 53,138,213,106,181, 16, 75, 36, 44, 69, 81,130, 87, 94,121,133,249, +224,131, 15,200,204,204, 76,104,180, 58, 33, 0, 95, 60, 7,102, 45,141, 70,179,109,194,132, 9, 93,206,157, 59, 39, 38, 73, 18, + 26,141, 6,221,186,117,203, 81,179,161,178,241,239, 78,246, 79, 79, 79,163,149,114,161, 89, 44, 22, 33, 59, 59,155,237,210,119, +164,113,196,216, 15,106,125, 48, 43,110, 67,198,165,117,107,221,185,134,227, 76, 64,231,125, 27, 55,110,180,132,134,134,154,164, + 82,169,100,204,152, 49,110,141, 31, 90, 44, 22,110,209,162, 69,102,231,217,133, 22,139,133, 91,177, 98,133, 37, 44, 44,204, 44, +151,203, 57,138,170,216,239,147, 36, 9,250,237,249,219,105,154,166, 75, 88,177,236, 34,139, 98, 9,221, 87, 95,125,101, 13, 11, + 11,179, 40, 20, 10, 78, 42,149,138,221, 73,231,228,201,147, 57, 31, 31, 31,171,135,135,135, 56, 54, 54,182, 90,179, 14, 41, 6, +194,249,107,138,195, 59, 72,189,188,188,160,213,106,139,211, 26, 18, 18,194,139, 45, 30, 60, 92,160,148, 22,121, 54,173,112,238, +197,209, 98, 1, 93, 86,118, 78,160,127, 80, 93,208, 52,109, 91, 40,208, 20,133, 41,239,140,192,178,117, 95, 1,128, 93,108, 69, + 77,157, 58,117, 63,128, 10, 27,179,157, 59,119,206,155, 58,117,170, 50, 43, 43,235,248,150, 45, 91,124, 71,142, 28,137,233,211, +167, 99,201,146, 37, 16, 73,100,240, 13,168, 93,124, 29,251,117,115,212,121,224,192,233,202,176,211, 89,139, 26, 41, 8,253, 2, +234,128, 98, 40,176, 20, 5,138,162, 64, 8,138,178,118,226,216, 1,140,124,115, 50, 68, 82,165,207,234, 21,139,141,145, 47,135, + 12,158, 61,110,156,217, 13, 35, 32,121,243,106,198,254,201, 31,196, 70,217, 69,214,222,109,235,110,125, 57, 99,224, 14,169, 68, + 88,124, 29,138,101, 65,146, 2,222, 71,235, 41,137, 44,169, 84,186,231,232,209,163,119, 91,183,110, 77,232,245,122, 80, 20,133, +156,156, 28,236,223,191, 63,129,227, 56,248,248,248,224,232,209,163,236,200,145, 35,247,152,205,230,215,159,117,177,149,153,153, +121, 91, 46,151,239,156, 57,115,230,136, 25, 51,102,136, 88,150, 69, 82, 82, 18, 64, 16,156, 72, 44, 1, 73,146, 16,137,132, 40, + 44,212,176, 10, 79, 85,134,149, 19, 40, 68, 98, 9, 72,129,184,188,105,194,143,108,193, 72, 65, 10,197, 90,251, 76, 64,177, 88, +140, 43,187,151,106,186,142,153,167, 4, 0,177, 84,158,223,171, 87,175,148,166, 77,155,234,127,251,237,183, 58, 40, 61,235,208, +249,249,164, 7,141,137, 21, 40,228, 50,125, 84, 84,212, 35, 59,231,195,147,171, 53,163, 38,206, 34, 8,129, 68, 31, 29, 29,157, + 18, 25, 25,169, 23, 8, 4, 72, 60,176, 88, 51,104, 76,172,140, 40, 39,200,234,241,187,220,219,215,119,159,111,252,197, 23, 95, + 80,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, 69, 81, 20,112,139, 11,197, 58,235,108, 21, 23,110,235,174, +179,117,214,129, 91,169, 27,181,206, 90,139,155,106, 85,212, 58,234, 66,197, 5,226, 96,168, 40, 32, 35,108, 8, 16,178,115,247, +251,131,132, 6,100, 36,104,107,237, 47,207,231,147, 79,146,187,247,158,123,111, 63,247,125,191,163,111,223,190, 41, 26,127,177, +164,164, 36,167,126,253,250,113,183,110,221,170,232,215,175, 95,170,151,151, 87, 49, 73,146,136,140,140,116,174,206, 82,165,129, +145,145,145, 98,226,196,137,239,158, 63,127, 94,219,168,195,106,225,226,226, 2,138,162,208,173, 91, 55, 72, 36, 18,131,101,203, + 0, 3,254,155,168,152, 71,171,234,204,240, 10,165,226,219, 41,179, 87,238, 4, 8, 83,173,187,192, 95,134, 37, 26,196,247,223, +127,103, 2,192, 72, 35,182,230,206,157, 91, 99,153, 19, 45,145,213, 38, 32, 32, 0,139, 23, 47,198,230,205,155, 85, 63,254,248, + 35, 35,254, 85,162,124,220,244, 21, 5, 21,214, 3, 26,116, 49,165,160,190,173,140, 47, 95, 40, 90,225,219,111,195,202,180,204, +146, 59,227,166, 45, 45,187,123,169, 0, 20, 18,124, 21, 0,236,249,233, 39, 17,139,107,110, 50,116,196,104, 0,232,185,115, 91, +208,153, 53, 56, 80,179,216,162, 9,143,111,231, 46,176,210,136,172, 93, 91,215, 62,183, 32, 50,131,103,126, 23,163,208, 94, 15, + 0, 88,155,225,140,111,191, 13,189,179,242, 68,219, 13,231,217, 63, 7, 14,135,179,250,250,245,235, 38,222,222,222, 68,110,110, + 46, 84,170,210, 35, 34,151,203, 33, 20, 10, 81, 84, 84, 4,169, 84,138,214,173, 91,147, 59,118,236, 48,153, 57,115,230,106,153, + 76, 54,253,115,223,238,183,111,223,238, 58,119,238, 28,110,221,186, 53,124,209,162, 69, 44, 71, 71, 71,194,194, 34,147, 80,200, +101, 0,104, 58, 59, 59,155, 50, 54,181, 20,216, 58, 56,191, 75,207,200,242, 80,200,101,160, 84,242, 42,189,205,213,233, 29,190, +127,241,226, 69,189, 77,155, 54,201,180, 35, 1, 71, 44,216,185,163,117,235,214,214,193,193,193,178,254,253,251, 39,107,156,215, +117,113,134,191,242, 6,179, 95,188,120,214,172, 34,167,223,228, 77, 7, 53,156,218,209,136, 3,190,219,123,176, 81,163, 70,214, +158,158,158,201,213,241, 54,104,208, 64,204,231,243,101, 77,154, 52, 41,102,177, 88,165,150, 44,133,162,164, 65,131, 6,148,131, +131,131,172,105,211,166,197,250, 58,237, 27, 25, 25,209, 26,171, 88,101,208, 39,234,144,197,128, 50, 32, 32,160, 44, 51,252,247, +141, 26, 9, 70,143, 30,205,159, 55,111, 30, 14, 30, 60,136,187,119,239,190, 39,246,187,118,237,138,219,183,111,175,196,127, 40, +177,174, 1, 6,252,159,161,250, 60, 90, 21,113,232, 80,200,159,208,242,105,170, 12,107,214,172,225,170, 45, 89, 61,231,204,153, + 3,177, 88,108, 85, 73,179, 30, 80,231,218,168, 76,100, 5, 5, 5, 29,163,105,218, 25, 64,103,149,138,122,176,255,192,161,110, + 85,173,111,232,208,161,239,113,210, 4,201, 32, 73,162,152,195,162,159,252,180,239,224,145,114,237, 75,157,223, 27,131,192,211, +157,219,130,196, 0,122, 86, 20, 91,248,171,204, 72, 25,167, 6, 83,167, 77, 45, 19, 89, 59,183, 5, 93,245,108, 83,247,235,165, +223,172,174, 84,156,173, 94, 49,197,132, 36,137,142, 21,124,180,222,227,252, 8, 48,112,254,133,110, 1, 1, 1,205,125,124,124, + 72,109,145, 37,147,201,202, 18,119,106,156,197,211,210,210,208,181,107, 87,178,121,243,230, 94, 15, 31, 62,236,134,191,202, 57, +125,174,219,174,122,251,246,237, 14, 71, 71,199,107,203,151, 47, 31,157,147,147,211, 47, 63,191,192, 38,236,208,106,244, 25, 58, +141,232,218,119,164, 72, 70, 51,121,169,130,204, 38, 55, 47, 30,181,190,116, 98, 23,228, 50,217, 20, 0,113,248, 43,189, 67, 69, +206, 18, 77, 26,135, 38, 77,154,136,180,133, 74,221,186,117, 37, 78, 78, 78, 82, 79, 79,207,178,233, 85, 68,243,189,183,237,250, +114,170,253,191, 68, 53,237, 79,141,104,171,152, 54,194,216,216, 24, 26,241,165, 79, 63,181,163, 45, 43,189, 81,214, 28,117, 88, +198,169, 78,239, 80, 78,167,133,132,132,244, 8, 9, 9,105, 3,224, 9, 74,107, 29, 42,128,210,161, 68, 45,167,249, 64,245,199, +112,189, 27, 56,255, 95, 57, 63,103,116,197, 95,190, 89, 64,169,175,214,173, 42,133, 86, 77,208, 56,190, 3, 32,231,206,157,155, + 47, 22,139,173, 70,143, 30, 93,237, 50, 25, 25, 25, 7, 15, 31, 62, 92, 78,100, 13, 30, 60,120,124,104,104,232,181,172,172,172, + 90,109,149,149,185,209,154, 91,231, 23, 90,117,237,191, 97, 14,128, 31,171, 48,228, 81,158,109,248, 95,239,220, 22,116,166,130, +216,250, 21,192,224,170, 84,105,175, 47, 7,225,232,161,157, 26,223, 46,163,231,143,211, 46, 13,143, 90, 85,105,180,162,165, 41, +119,149,186, 31,243, 12, 62, 90,255, 12,216,108,182,223,162, 69,139,216, 34,145,232, 61,145, 85, 81,104, 21, 22, 22,226,233,211, +167, 24, 55,110, 28, 55, 58, 58,218, 79, 46,151,223,248, 47,236,131,140,140,140,120,117, 50,210,217,154, 20, 14, 92,158, 17,123, +228,132, 57,206,101, 81,135, 39,118, 65, 42, 17, 3, 0, 83,151,244, 14, 76, 38,147, 29, 29, 29,237,170,177, 90,201,229,114,174, +102,250,227,199,143, 93, 53,185,181, 36, 18,137,206, 81,135,127, 23,231,179,103,207,156, 53,209,145,154,232, 66, 38,147,201,142, +140,140,116,214,112, 74,165, 82,157,162, 14, 57, 28, 14, 59, 58, 58,218, 89,165, 82,125,180,168, 67,109, 97,140,210, 58,139,229, +106, 45,170,125,203, 8,130, 32,104,195,176,161, 1, 6,124,246,168, 24, 41, 89,125, 81,233,154,160,113,124,215, 99, 17,166,139, +139, 75,175, 17, 35, 70,148, 19, 89,254,254,254,170,211,167, 79,223,228,243,249,153, 36, 73,198,235,219,143, 50, 31, 45,188,247, + 6, 9,146, 36,159,118,110,219, 20, 36, 73, 62, 93,250,205, 55,210, 53, 56, 80, 78,108,157, 61,115,178,119,106,126, 76,229,210, + 12,128,141,125, 29, 4,140,255, 22, 1,227,191,181, 2,208, 9,168, 58, 90,177,186,126, 24,240,247,128, 32, 8,142,147,147,211, +115,137, 68, 2,130, 32, 32,149, 74,203, 4, 86, 81, 81, 17,132, 66, 97,217,127,185, 92,142,236,236,108,212,173, 91, 23, 4, 65, +252,167,253,232,228,114,185,114,209,202, 77,135, 25, 76,182,146,162,228,132, 92, 46,159,160,207,117,190,104,209, 34, 18,149,248, + 94,205,156, 57,179,210,233,159,138,115,201,146, 37,149, 70, 9,206,156, 57,179,218,232,193,170,240,221,119,223,125,180,168, 67, +221,111, 95, 6, 24, 96,192,127, 12,149,134,238,213, 74,104,145, 36,249,180,146,232, 66, 2, 0, 77,146,228,211, 74,178, 28, 40, +223,189,123,183,210,210,210,114,138, 72, 36,250, 99,240,224,193,115,253,253,253, 85, 64,169,131,124,109,183, 40, 95, 40, 90,225, + 55, 96,227,188,130, 98,105,112,197,121, 21, 45, 79, 26,177,181,107,123,208,238, 51,161,199,253, 51,210, 83,119, 87,181,109, 85, + 9,170,170,162, 21,133,133,226,149,126, 3, 54,206,201, 47, 20, 27,124,180,254, 33,168, 84,170, 43, 70, 70, 70,132,166,152,178, +182,245,170,176,176, 16, 37, 37, 37, 80,151,164, 1, 0, 20, 23, 23,195,194,194, 2, 42,149,138,254,143,237, 10, 41,128,249,106, +107, 21, 0,204, 79,188,185, 67,251,220,126,166, 61,175, 26,107,150, 64,151, 2,209,149, 45, 87,221,188,191,129, 51,179,154, 2, +209,213, 33, 83, 79,190, 76, 0, 96,179, 24, 89, 85, 21,143,102,179, 24, 89,213,248,237,235,249,222, 64,208, 0, 86, 26,174,108, + 3, 12,248,124,223,255, 63,213,138,123, 24, 56, 13,156, 6,206,127,132,147,171,254,232, 58,207,176, 63, 13,156, 6, 78, 3,231, +191,141,179, 50, 76,254, 76,132, 22, 93,201, 7, 52, 77,227,191, 84, 3,206, 0, 3,254,159, 33,173,229, 60, 3, 12, 48,192, 0, + 3, 62, 28,239, 21,147,214,158, 81,149, 42,213, 39,154,160, 54,202,246,154,129,211,192,105,224, 52,112, 26, 56, 13,156, 6,206, +255, 59,206,154,184,181,151,159, 12, 96,223,103, 34,182,222, 19, 89, 52,253,247,123,171, 24,204,170, 6, 78, 3,167,129,211,192, +105,224, 52,112, 26, 56,107, 11,195,208,161, 1, 6, 24, 96,128, 1, 6, 24, 96,192,255, 57,244, 75, 88,106, 64, 37,168, 59,104, + 41, 40, 44, 81,239,206, 32,164,156, 13,252,175,109,162,191,191, 63, 67,159,246,137,137,150,100, 20,248,155,205, 77,216, 3,138, + 69,138,205, 84,212,138,224,154, 78, 68,219, 6,173,198, 24,243,140,167,203,100,178,250,166,102,102, 89,121,185,217,123,242,222, + 61,219,165,213,198,252,193,131, 7,124, 31, 31,159,116, 0, 69, 90,111, 10, 6, 24, 96,192,199,132,101, 83, 23, 16,196, 4,128, +254, 43,236,146,162, 99, 32,140, 59, 84,174,157,133,199,120,144, 68, 51,173, 41, 98,208,216,143,130,216,148, 26, 30, 56,150, 9, + 9, 9,174, 13, 27, 54, 76, 6, 80, 80,113,237,149,204, 51, 92,231, 6,124,206,232,138,242, 9, 75,203,174,133, 15, 23, 90,141, + 6,215,135,146, 28, 11, 26,163, 64, 32, 26,137,161, 67,106,197,227,246,117, 29, 80,204,118, 0, 90, 1,116, 43, 19, 35, 94, 75, +177, 76,158, 69,209,244, 24,188, 57,249, 68,111,190,250,254,211, 80,117, 57,139,149, 72, 12,253, 73, 47, 62,138,254,225,209,237, +211, 92, 75, 99, 2, 13, 91, 15, 94,128,242, 25,156,107, 11, 14, 0, 95,146, 36,155, 25, 27, 27,243, 75, 74, 74,178, 41,138, 74, + 65,233,248,116,126, 45, 57, 73, 0, 19, 77, 77, 76,250,184,154,113, 90,189,203, 17,166, 21, 41, 84,225, 40, 77,232,154,255,177, +206,168, 82,145,229,184,111,206, 72,159,113, 65,179,122,192,210,111,227,130, 18,160, 58,161, 69, 56, 55,238,120,118,248,136,161, +126, 51, 38,143, 51,173, 99,103, 10, 65,142,200,230,167,131, 33,155, 66, 66,142,246,255,102,120,207, 62, 0,176,122,245,234,175, + 92, 92, 92,234, 49, 24,140,196,101,203,150,253,186, 98,197, 10,154,168,186, 82, 57, 95,125, 14,107,110,248, 38, 0, 60, 1, 52, + 0,240, 22,192, 11,148,207, 50, 94, 27,124, 22,156,117,234,212,113,162, 40,234, 27, 7, 7,135,126,153,153,153, 23, 72,146, 60, +144,150,150,150,254, 41,239, 58, 52, 77,239, 37, 8, 98, 50, 77,211,251,244,248,158,162,207, 58,120, 60, 94,166, 68, 34,177, 87, +255,206,146, 72, 36, 14,127,215,246,252,147,235,250,135,222,191, 39, 93,185,243,162,143,246,164, 94,157,155, 85,114, 71, 33,154, + 93,185, 19,211,165,124, 59, 79, 85, 21,247, 64,130,166,105,172, 92,185,146, 88,181,106,213,120, 55, 55,183, 70, 36, 73,190, 92, +190,124,121,185,212, 55, 21,231,105, 93,231, 6,177,101,192,231, 10,253,138, 74,215,136,166,254, 38,144,208,254, 0, 49,174,107, +219,150,157,167,140, 25, 64,208, 12, 30, 70, 78, 90,168,212,155,203,117, 28, 23, 12,241, 26,239,102,141,231, 14, 29,208,131,108, +227, 89, 15,124, 59, 11,128,100, 97,239,197, 36,155,224,160,101,187, 1,248,212,162,151, 43,222, 68, 28,179, 23, 20,168, 64, 16, + 0, 65, 0, 36, 1, 20, 75, 40,244,250,106,236, 10, 0, 63,233,121, 87, 34, 45,141, 9,204, 61, 38, 1, 0,198, 71, 56, 40,245, +236,236,236,198,207,158, 61,219,196,211,211,211,146,199,227,113, 36, 18,137, 67, 66, 66,130,221,178,101,203, 60,197, 98,241,121, + 0,143,244,228,172,219,208,217,233,100,240,220,137,237,154, 55,112, 5, 75, 86, 12, 74, 42,114,121,149,240,186,195,212,221,167, + 38,197,228, 73, 70,160, 22, 37, 19,114,114,114, 8, 0,176,181,181,165,203,139,172,246,227,182,206,235,133,185, 91,174,160, 68, + 34, 59, 82, 29,135,117,189, 22,163,191,254,122,144,223,218, 31,102,154,166,229,202, 17,157, 40,134,181, 41, 27, 43,230, 79,227, + 72,165,138, 14,187,127, 13,153,188,115,195,194,253, 42,149,234, 11, 0,109, 84, 42,213, 99, 0,191,174, 92,185,178,170,155,239, + 42, 0, 75,212, 39,244, 81, 6,131,113,181, 91,183,110,245,191,249,230, 27,162,117,235,214,136,140,140,108,112,236,216,177, 30, + 23, 46, 92, 72, 84,169, 84,207, 0,188,132,186,236,137, 14, 96, 1,104,204, 96, 48,188,255,205,156,124, 62,223, 72, 38,147,141, +117,118,118,158,220,177, 99, 71,239, 1, 3, 6, 16,141, 27, 55, 70,124,124,124,235, 75,151, 46,173, 8, 15, 15,127,150,154,154, +186,143,195,225, 28, 22, 8, 4,226,127,252, 57, 78, 16,147, 1, 56,169,117,242, 74, 29,190,211, 81,154, 75, 74,160,235, 58, 36, + 18,137,189,198,217,148, 32, 8,251,191,115,123,244, 92, 87, 44, 65, 16,214,234,182,168,238,155, 36, 73, 40,149, 74,145, 74,165, +114,171,129,179,177,250, 69, 74,103,173, 11,160,186, 68,208, 70, 0,208,171, 83,179, 60, 16,136, 41,179,104,189,255,146, 25, 83, + 38,192,104, 52,187,114, 55,198,186,156, 21,172,226, 91,236,202,149,196,138, 21, 43, 16, 24, 24, 56, 0,128, 47, 69, 81,225, 30, + 30, 30, 59,202, 81, 82, 84,217,188, 21, 43, 86,108,175,230, 58, 55,192,128,207, 5,126,208,167,168,116,149,239, 63,110, 67,186, + 64,133,113,174, 54,246,254,179,190, 25,102,228,233,209, 16, 18,152, 34, 41, 71,133,139, 97,151, 0,224,132,126, 86,167, 97,109, +152, 76,201,225,160,192,249, 77,124,219,121,226,121,154, 2,143,211, 84, 40, 73, 84,128, 65, 42,160,162,104,128,134,164,182, 91, +157,154,175,196,157,151, 50,144, 4,192, 32, 1,146, 36,192, 32,107, 73, 70,201, 94,173, 62, 20,229,153,147, 73, 1,148,236,213, + 7, 30,144,102,238,238,238,163, 87,173, 90,101,153,145,145, 97, 18, 25, 25, 9, 46,151, 11, 43, 43, 43, 6,159,207,119,218,178, +101,139,120,214,172, 89,253,228,114,121, 18,128, 28, 29, 57, 61,250,182,241,190,183, 47,104,181,133,226,193, 37, 20, 28,255, 13, + 12,146, 6,219,196, 20,245,141,140,112,233,235,134,214,254, 97,137,167, 31,102,138, 60, 0,164,213, 68, 22, 23, 23,199,144, 74, +165, 35,204,205,205,219,179, 88, 44, 7,158, 85, 61, 42,157,217, 38, 55,155,104,240, 54,203,190,164,203,188, 30, 14,125, 54,207, +233,134,185, 91,174, 96,219,177,251,191,180, 66,198,242,234,242,102, 27, 27,155, 78,153, 53,253, 27,211,212, 28, 57,214,156,206, +193,161,219,133, 24,235,107,134,185, 95, 90, 32, 96,228,112,147, 83,191,133, 78, 1,176, 95,107,145,120, 15, 15, 15, 34, 46, 46, +174,178,155,175, 21,128,133, 50,153,140,100,179,217, 4,143,199, 27,189,118,237, 90,249,200,145, 35, 83, 53, 13,124,125,125,225, +235,235, 75, 20, 21, 21, 53,184,113,227, 70,131,144,144, 16,101, 68, 68, 68, 44,128,179, 85, 91, 44,140,222, 73, 36, 98, 23,158, +145, 81,201, 79,187,119,111,238,210,165, 11,197,229,254,149,126,170, 54,156, 0, 96, 97, 97,177,223,222,222,158, 88,188,120,113, +250,199,226,172, 87,175,222,149,118,237,218,117,235,213,171, 23,179, 83,167, 78,112,114,114, 42,155,103,107,107, 11, 95, 95, 95, + 34, 37, 37,165,121,120,120,248,238, 43, 87,174,236,120,242,228,201,141,164,164,164, 94,255,176, 69,107,159, 90, 76, 8,244,108, +255,217,131, 32, 8,211,189,123,247,218,107,106, 50, 42, 20, 10,168, 84,170,178,111,205,135,162, 40,168, 84, 42,172, 93,187, 86, + 37, 18,137,116,217, 71, 34,173,183,102,205,135,170,236,155,195,225,216,106, 18,246,214,112,103,143,225,115, 11,154,154,152,152, +184, 2,232, 11,187, 70, 11,203, 55, 40,125,127, 22,137, 68,201, 2,169,101, 12,128, 46,213,176, 89,174, 90,181,106,108, 96, 96, +224, 32, 45, 43,173,247,208,161, 67, 43,150,189,242, 86,127,139, 8,130,184, 73,146,228,121, 0,135,240, 17,173,238, 6,252,183, + 64,211,116, 91, 0,118, 90,147,100, 40, 29, 21,130,250, 57, 73, 0,176,169, 48, 93,187,157,230, 59, 91, 61,221, 78,189, 28,173, +197,155, 77, 16,196,163, 90,118,241, 22,170,240,211, 98, 2, 64, 88, 88, 24,221,191,127,127, 66,243, 93,185, 40,242,191, 56,113, +228,192, 62,253,186,119, 4,201,179,194,171, 44, 32,226, 29, 13, 38,169, 0, 9, 26, 15,238,222,160,193,164, 14, 87, 88,170,106, +235, 73,189, 33,223,121,123,122,108, 60, 16, 52,155, 17,155,197,196,161,240, 18,200, 37,197,200,206,120,135,172,244,100, 8, 82, +223, 34,237,221,219,103, 0,177, 66,103,206,247, 14, 12,160,162,212,239,128, 20, 42,179,232,233,206, 41, 23,197, 53,104,236,233, +153,207, 81, 1,114, 81,156, 14,171,175,138,211,171, 81,163, 70, 35,127,248,225, 7,235, 23, 47, 94, 24,149,148,148, 72, 47, 93, +186, 20,159,148,148,100,206,231,243,243,166, 77,155,214,200,201,201,201,124,240,224,193,156,227,199,143,127,133,242, 97,173, 85, +113,122, 14,108,223, 50,226,224,142,173, 38,185,167,130, 33, 75,120,138,139, 2, 17,238,102,150,208, 13, 44,184,196,183,205,237, + 96,202,101, 98,117, 39, 39,211,190,103, 18, 54, 42, 40, 42,160, 58,206,123,247,238,241,141,141,141,183,140, 26, 53,138, 63,115, +230, 76,174,138,105,201, 12,141,200,181, 88,184, 59,194,169, 68, 42,103,140,236, 86, 15,243, 70,121, 99,222,182,235, 26,145, 53, +185,126,253, 2, 42, 42,170,106, 78,133, 92, 94,223,217,222, 28,209, 73, 98, 28,186, 93,136, 63,127,112, 66,247,181,233, 24,220, +138, 9,143,186,166, 80,202, 21,141,135, 14, 29,122, 88,253,214,254, 8,192, 87, 67,135, 14,109,194, 96, 48,174, 3,248,189,166, + 99,196,227, 85, 94, 61,197,202,202, 10, 93,187,118,133,135,135, 7,179, 75,151, 46,222, 21, 4, 76, 57, 78,185, 92,198,167, 40, + 26,102,102,102, 70, 54, 54, 54, 86,102,102,102,185,149, 61,168,244,225, 4, 0,107,107,235, 33, 93,187,118,101, 30, 59,118, 44, + 39, 49, 49,241,193,200,145, 35,223,154,155,155,151,179,254,154,152,152,160, 81,163, 70, 88,182,108, 25,179, 79,159, 62, 53,114, + 58, 56, 56,244, 12, 9, 9, 1, 65, 16,101, 15,237,247,140,197,174,174,112,116,116, 68,223,190,125,153, 67,134, 12,233,153,148, +148, 84,171,235, 72, 15, 92,171,196,162,181,178,194,113,170,114,248,173,178,246, 58, 28,247, 44,141,117, 73,205,135, 15,184, 54, +171, 29,238,228,241,120,101, 86,168, 74,214,245, 30, 39, 73,146, 88,186,116, 41, 8,130, 0,139,197, 2,155,205,174,244,219,207, +207, 79,223,126,166, 16, 4, 65,178,217,236,133, 76, 38,243, 27,169, 84,234,204,227,241,210, 85, 42,213, 47, 82,169,116, 45, 0, + 5, 77,211,150, 85,136,172, 74,105,239,132, 46, 0, 0, 32, 0, 73, 68, 65, 84, 57, 77, 76, 76, 92, 95,189,122,229, 94, 85, 71, +164, 82, 41,188,189,189, 1, 41, 98,171,227, 76, 72, 72,112,117,115,115,107, 12, 64, 83,162,237, 54, 77,211, 93,180,254,107,227, + 54, 77,211, 95,170,127,191,124,243,230,141,107,195,134, 13,243,255,169,243,211,192,249,239,227,172, 65,139,216, 17, 4, 17,166, +117,173,246,215,252, 95,180,104,209,146,245,235,215,191, 32, 8, 34, 76,123,186,118, 59,237,111,245,253, 38,140,166,233,254,139, + 23, 47,246,220,176, 97,195, 58, 77,219,191, 67, 36,234, 99,209, 50,207,150,152, 32,252,157, 57,152, 12, 21,152, 36, 1, 38, 3, + 0, 77, 32, 57, 41, 1, 69,133, 5,119,144,120, 58, 81, 55, 75,150,127,167, 22, 45,188,130,142,110, 91, 64,254, 28, 94,130, 2, +145, 4,113, 79,110,226,209,205,223, 51, 84, 74,213,239, 32,232,199, 0, 25,137,183, 84, 60, 16, 90,187, 26, 23, 4,205, 44, 21, + 90,106,113, 85, 78,108,125, 50, 52,111,210,164,201,240,101,203,150,217, 70, 69, 69,241,132, 66, 97,209,209,163, 71,211,165, 82, +105, 18,128,203,201,201,201, 77,182,111,223,206, 9, 10, 10,242,242,242,242,226,159, 60,121, 82, 86, 73, 57,163,247, 56,231,143, + 11,136,248,102,214, 28, 94,236,201, 93,224,196, 70, 98,233,211, 28,213,159,130,146, 31, 0,108, 67, 74,113,167,108,137,242,234, +214,174, 46,100, 61, 51, 54, 26, 90,114,252,226,242, 36,213, 90,178,140,141,141,183,132,132,132,184,182,109,219,150, 4,128,240, +151, 74,238,194,221, 17, 78,151,215,119, 34, 58, 53,179, 65, 86,129, 20,179,119, 69,227, 82, 68,214, 31, 26,145, 85, 83, 39,205, +204,204,178, 83,179, 10, 29,108, 76,121, 24,211,217, 20,221,215,166,195,191, 13, 23, 92, 54,129,248,196, 12, 52,116,171, 71, 68, +223, 57,219, 70, 45,178,218, 10, 4, 2, 0,104, 3, 32, 49, 37, 37,133,239,227,227, 35,212,162,203, 7,176,145,195,225, 44, 37, + 8,130,110,219,182,109,180,151,151, 87,177,149,149, 21,196, 98, 49,164, 82, 41,216,108, 54,196, 98, 49,146,147,147,241,224,193, + 3, 88, 89, 89,233,117,160,138,139,139, 97,102,102, 6,138,162, 62,152, 83,165, 82, 17,123,246,236, 49,121,241,226,133, 73,104, +104,168,195,220,185,115,115,155, 54,109,250,120,248,240,225,175,237,237,237,165, 79,159, 62,197,189,123,247,144,159,159,143,246, +237,219,235,196, 41,147,201,192,100, 50, 33, 22,139,193,229,114,193,100, 50,161, 84, 42, 65, 81, 84,153,248, 42, 46, 46, 70, 94, + 94, 30,216,108, 54,100, 50,217,167,120, 3,125,207, 66, 85,221,240, 91,109, 44, 90,218, 66, 77, 71,145, 85,147, 37,170,202,225, +206,130,130, 2, 35, 75, 75,203,133, 0, 4, 53,173,139, 32, 8, 48, 24, 12,176,217,108, 16, 4,129, 46, 93,186, 96,226,196,137, +104,213,170, 21, 18, 18, 18,112,252,248,113, 60,122,244, 8, 44, 22,171,172,189,206,227, 19,126,126, 12, 30,143,119,111,224,192, +129,158, 63,252,240, 3,175, 94,189,122,136,141,141,173,187, 97,195,134,133,215,174, 93, 27, 36, 18,137,218,104,238,118,213, 91, +233,213, 67,130,165,195,133,125,165, 82, 41, 98, 99, 99,245, 89,230, 61, 52,108,216, 48,153, 36,201,215, 20, 69,133, 3,240,166, +105,186, 11, 65, 16,151, 80,234,151,168, 13, 17, 77,211, 95, 18, 4, 81, 8,224, 25, 73,146, 47, 41,138, 74, 54,216,109, 12,208, +225,190,210,191,226,127,130, 32,194,214,175, 95,223,191, 50,113, 85,201,181, 89,110,250,134, 13, 27,214,105,253,255, 16,139,106, + 87,148,119,134,247, 83, 91,185,254, 18, 90, 97, 97, 97,213, 43, 16, 10,131,195, 78, 31,187,223, 93, 14, 87,207,214,190, 90,214, + 33, 26,145, 15,238, 1,160,127,209,169, 43,252,254, 70, 36,131,249,203,158,117, 51,201,189, 55, 75,144,146,158,133,123, 23,127, + 65,182, 32,233, 16, 64,207, 69, 98,104,225, 7, 31,137,122,131,189,236,109,108, 45, 37,114, 26, 20, 13,224, 61,177,245, 73,208, +170,113,227,198, 67, 34, 34, 34,108, 37, 18, 9,239,206,157, 59, 37, 33, 33, 33, 25,114,185,252, 38,128,187,234, 54, 81,217,217, +217, 67,213,194,132,193,100, 50, 57,114,185,188, 58,223,133, 86,243,191, 25,123,103,227,158,131,188,215,207,163,177, 61,244, 34, + 10, 74, 74, 84, 55,179,196, 95, 1,208, 40,250,235, 81, 57,226, 52, 26,180, 11,139, 36,192, 55, 97, 57,198,229, 73,120, 64,229, + 67,178, 82,169,116,228,168, 81,163,248, 26,145, 5, 0, 57, 69, 10,102,137, 84,193,232,212,204, 6,173,187, 13, 69,228,141, 83, + 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, 4,123,182, 6,239,221,186,113,229,124,206,188,190, 22,240,111, +195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126,202,231,243,195, 0,124, 37, 16, 8,192,231,243,139, 1,188,100, + 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, 42, 20,138,226,132,132, 4, 56, 58, 58,194,193,193, 1, 22, 22, + 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, 45, 90,232,117,176,114,115,115,241,244,233, 83,244,237,219,111, +110,118,118,150,185,149,181,141,232, 78,248,237, 77,181,225,164, 40,138, 0, 0, 79, 79, 79,120,122,122,242,210,210,210,156,195, +194,194,236,215,172, 89,243,206,213,213,245,168, 88, 44, 46,103, 57,208, 85,104,105,196,133, 70, 4,242,120, 60,176,217,108, 20, + 22, 22, 34, 51, 51, 19, 69, 69,165, 65,155,150,150,150,159, 68,104, 85, 97,161,250,104,237,255,102,113,248,222,112,167,165,165, +229, 40, 0, 11,117,220, 22, 40,149, 74,176,217,108,248,248,248, 32, 56, 56, 24,143, 30, 61,194,239,191,255,142,186,117,235, 98, +220,184,113, 32, 73, 18, 47, 94,188,208,183,139, 84, 68, 68,196,194,175,190,250,202,243,240,225,195,188,228,228,100,196,199,199, +195,210,210, 18,193,193,193,220,201,147, 39, 55,188,113,227,198,114,148, 6,191, 84, 15,173,232, 66,145, 17,127,152,183,183,247, +123, 77, 28, 29, 29, 45, 46, 95,190,108, 95, 38,192, 42, 70, 36,190,143,130,229,203,151,111,245,240,240,216,166, 30, 46,244, 5, + 96, 66,211,180, 95,104,104, 40, 1, 0,254,254,254, 52, 65, 16,154, 7,210,179, 83,167, 78,117,139,139,139,163, 3, 3, 3, 13, + 62, 90, 6, 84,165, 69, 38,107,174,201,170, 4,148, 62, 66, 77,219,226,165,193,226,197,139, 61,215,175, 95,255,240, 3, 69,150, +246, 27, 19,173, 17, 91,101, 15,211, 42,135, 12,203,108, 95, 36,223,209,222,198,122,209,184, 78,160, 40, 64,169, 2,148, 42, 26, +162, 18, 49, 98,159, 63, 42, 1,143, 8,213,169, 59, 92, 78,208,154, 31,230, 52,136, 78, 37,145,158, 47,199,173,179,123,233,108, + 65,210, 16, 36,158,154,240,113, 68,214, 48,111, 71, 7,251, 91,199,246,174, 38, 31,189,149, 65, 69,149,234, 44,138,162,203,126, +127, 2, 56,218,217,217, 5,220,191,127,223,142,203,229,242, 94,189,122, 69,157, 58,117, 42, 95, 46,151, 95,211, 18, 89, 0,208, +169, 77,155, 54, 74, 83, 83, 83,136, 68, 34,185, 92, 46,151, 84, 35,178,156,253, 90, 53,191,189,113,207, 65,158, 68, 38,131, 80, + 44, 5,195,198,190,162,200, 2,128,142,221,220,235,212, 33,120,102,160, 1, 36, 21,202,211,171, 18, 89, 0,192,229,114,123,204, +156, 57,179, 92, 93, 60, 91, 51,150,210,152,203, 82,221,141,201,161, 34,111,156, 66,248,139, 28,138,199,102,168,236,232,183, 13, +116,221, 1, 5,169, 49,123,126, 63, 23,118,245,187,101, 65,197, 37,162, 34,184, 57, 25,161,184, 72,136,181,235, 55, 42, 34, 34, +194,111, 46,156, 59,181,195,169, 83,167, 54,160,212, 25, 28, 0, 94,158, 58,117,106,236,178,101,203,126,197, 95,105, 30, 42, 34, + 61, 32, 32, 32,181, 89,179,102, 66, 15, 15, 15, 97,110,110, 46, 98, 98, 98,144,159,159,143,237,219,183, 35, 54, 54, 22, 26,139, +160, 78,190, 42,239, 11, 36,228,231,231,153,210, 52,141,252,188, 92,147, 31,126,248,193,162, 54,156, 42,149,170,220,181, 85,167, + 78, 29, 76,155, 54,141, 93, 82, 82, 98,249,238,221, 59,115,237,121,186,114,202,100,178,178,140,195, 52, 77, 67, 38,147, 65, 40, + 20, 66, 38,147,225,245,235,215,101, 34, 75,189,254, 79,102,209,210,252,230,241,120,153,154,115, 89, 51, 4,199,227,241,178,170, +106,255, 33,208, 90, 23,173,254,173,175, 56,172,113,123,116, 60,238, 96,179,217,152, 56,113, 34, 30, 62,124,136,132,132, 4, 48, + 24, 12,136, 68, 34,148,148,148,160,103,207,158,224,112, 56,250, 90,180,104, 54,155, 61,106,201,146, 37,188,196,196, 68,228,228, +228,104,156,233,161, 82,169, 48,119,238, 92, 35, 46,151, 59, 74, 95,211,189, 64, 32,232,253,250,245,235,198, 21, 63, 25, 25, 25, + 66,109,159,194,218, 34, 52, 52,148,240,247,247,167,253,253,253,105,141,224, 50,192,128,202, 80,133, 22,217, 87,149, 69,235, 99, + 88,197, 52,150, 45,168, 3, 68,106, 1,141,200,234,170, 37,188, 8,141,133, 75,183,161, 67,183, 97, 45, 29,108,172,111, 28,222, +181,202, 52,236, 57,129,212,148, 36,100, 11,146,209,166,131, 31, 98,159, 71,131, 82,168, 78,227,117,104,205,158,156,245,252,221, + 61, 60,154, 78,239,218,193, 11, 65, 97,197,120, 21,121, 25, 5,217,130,157, 72, 58,117,250,163, 28, 33, 87,255,230, 14,246,214, + 55,126,221,181,202,242, 82, 12,137,148,148, 36,156,253,117, 43,173,144, 75, 11, 80, 62,146, 75,239,183,102, 35, 74,198, 41, 46, +200,132,172, 72, 5, 30, 89,194,211,115,144, 34, 3, 64,248,214,173, 91,187,183,111,223,158, 19, 16, 16,144,145,159,159,127, 22, +192,125,173, 54,205,220,221,221,251, 6, 7, 7, 59,164,164,164,224,218,181,107, 25, 40, 13,253,175, 10,169,183,163,159,239,254, +243,215,253,243,141, 26, 52,193,246, 37,223, 41, 67, 31,197, 12, 4,112, 73,171,141, 71, 15,111,247,176, 53,223,207, 32,169,168, + 63,240, 52, 57, 19,111,133,210, 63,171, 34,204,201,201, 33, 74, 74, 74, 92, 45, 45, 45,181, 79, 72,240, 77, 68,210, 5,195,220, +211,123, 46,188,227, 36,145,171,192,101,145,244,236, 65,174,233, 15,207,134,218,228, 72,114, 8, 77, 52, 98, 77,152, 52,188,199, +160, 93, 33,103,198,132,133, 93,152, 46,151, 74,188,154, 52,105, 76, 63,142,184,241,116,225,220,169,125,106,121,196, 77, 31, 62, +124, 72, 50, 24,140,114, 2, 93,219, 66,164,175,165, 72, 31,232,202, 89, 81,104,105,160, 84, 42,137,218,114, 74,165,210, 74, 75, + 59, 84,230,171, 69, 81,212,223,178,253,250, 88,168,180,135, 12, 53,254,116, 18,137,196, 94,237,179,229,240, 49, 45, 90, 31, 18, +137, 88,221,240,165, 62,253, 35, 73, 18, 20, 69,129,205,102,163, 69,139, 22, 8, 11, 11,131,181,181, 53,204,205,205, 97,110,110, + 14, 35, 35, 35,216,216,216,148, 9, 45,146,212, 57, 74,135,150, 74,165,117,235,214,173,139,215,175, 95,131,199,227,149,125,184, + 92, 46, 60, 61, 61, 33, 18,137,234,224, 83,218,238, 13, 48,224,239,189,175,132,105,139, 37,130, 32,194, 22, 45, 90,180,164,182, +124,139, 22, 45, 90, 82,153,133,235, 3, 5, 87, 57,235, 22, 83, 91, 65, 86,170, 36,213, 34,235,208,206,149,230,103,158, 0,169, +169,137,184,122,114, 71,145, 66, 46,203,167, 40,133,235,219,248,104,128,196, 47, 58,117,129,164,219, 13,234,219,141,184,250, 66, +134,194,130,108,188,124,124, 57, 9, 98,206,226,143, 38,178, 28,108,111, 28,222,181,210,242,252,115, 2, 41, 41, 73,184,116,108, +123,161, 66, 46,239,129,196,208,199, 31, 66, 61,138,205, 30,196,118,121,215,255, 27,223,116,168, 8, 21, 70,197,198,125,153,149, +129, 65,130, 59,213, 71,134,105, 35, 59, 59,251,236,214,173, 91,137, 31,127,252,177,171, 68, 34,249, 13,128,182,137,210,203,205, +205,109,196,190,125,251,172, 83, 82, 82, 88,119,238,220, 17,221,184,113,131, 6,112,190, 6,139,203,130,158, 19,166, 49, 90,213, +171, 51, 51, 42, 41,109, 32,128, 63,180,102,123,246,111,221,236,238,193,245,203,205, 20,119, 67, 81, 44, 72,193,226,187,169,133, + 0,116,222,223, 10,133, 2, 66,161, 16,138,226, 92,101, 27,190, 72, 24, 56,212, 94,154,153, 47, 97,178,168, 18,165,135,121,150, +244, 70,238, 91,134,177,177,177, 94,251,114,215,250,249, 33, 0, 66,134, 14, 29,122,248, 89,196,133, 54,124, 62,255,130,135,135, + 7, 1, 0, 85, 68, 24, 86,133, 85, 0,230,118,236,216,145,240,241,241,121,176,109,219,182, 43,213,137,149,218, 88,180,106,130, +174,156, 20, 69,145, 85,236, 95,162,182,156,218, 22,173,154,132,214,167,180,104, 85, 38, 90,180, 69,162,182, 16,250, 55, 68, 29, + 86, 39,166,244,233,159,198, 79,142,205,102, 35, 58, 58, 26, 46, 46, 46,144,203,229, 48, 51, 51,131,153,153, 25, 76, 77, 77, 81, + 84, 84, 4, 22,139, 5, 61,183,153,226,241,120,239, 98, 98, 98, 26,219,217,217, 65,165, 82,149, 19, 91,175, 94,189,130,137,137, + 73,154,190, 22, 45, 62,159,127, 89, 29,117, 88, 14,142,142,142, 22, 31, 99,191,106, 91,178,252,253,253, 13, 67,132, 6, 84,107, +205,170,194,170,149, 93,193, 18, 37,211,250,159,141,210, 28,110,253,213,191, 81,201,111, 89, 37,211,114,215,175, 95,127, 67,203, +191, 43,251, 3, 55, 65,147,226,161, 92,132, 11,179, 38, 75,150,189,181,213,141, 3,219, 3,205, 79, 70, 2,105, 41,137,184,117, + 58, 88,168, 84,201,191, 0, 69, 11, 34,174,157, 14, 5,129, 18,188, 13,189,165,219, 45, 2,173, 90, 53,117,197,239, 47, 20,200, + 78,125, 5,154,166, 14, 33, 43,164,228,131,143,142,219,224, 22,246,214,182, 55, 14, 5, 7, 90,156,137, 38,144,154,146,136,171, + 39,131, 11,149,138,146,238, 72, 60, 29, 89, 91,218,137,128, 21,195,132,183,123,136, 95,171, 97,174,110,206,160,104, 5, 40, 54, +141,193, 11,108,153, 47,163, 74,126, 15,231, 9, 79, 82,197,212,244,180,251,186, 57,208, 21, 23, 23,255, 14,224, 49,202,167, 87, +104,222,168, 81,163, 97,187,119,239,182, 75, 77, 77,229, 69, 69, 69,137,247,238,221,155, 69, 81,212, 25, 0,186, 12,165,126, 23, +149,148,118, 0,229,243,229, 52,159, 63, 33, 32, 34, 96,252, 55,188,196,107, 33,176, 74,140,197,247,119,211, 85, 47,243,101, 35, +213,214,181, 74, 97,107,107, 75,231,228,228, 36, 23, 20, 20, 52, 54, 49, 49, 65,110,110, 46,242,242,242, 32, 20, 10, 33, 45,204, + 83,218,168, 10, 68,132, 50, 15, 44, 22, 11, 89, 41, 10,168, 84,170, 12, 93,173, 89, 0,172, 86,173, 90, 53,137,162, 40, 77, 70, +196,114,209,133, 90,237, 52,231, 67,227,161, 67,135, 30,214,138, 58,212,118,134,215,164,119, 32,212,233, 29,218,255,241,199, 31, +113,125,250,244, 73,173, 76,172,112,185, 92,189, 29,165,171,138, 98,172, 13,103, 85, 22,173,138,211,245,225,212, 12, 95,106,156, +224, 43, 78,215,128,193, 96,128,162, 40,232, 16, 84,241,183,138, 22,237,232,192,218,136,156, 10,199,166,218,196,161,181,140, 68, +252,168, 22, 45,205,177, 96,179,217, 56,119,238, 28,198,143, 31, 15,149, 74, 5, 99, 99, 99,152,154,154,194,196,196, 4,167, 79, +159,134, 38,253,131, 62,250, 85,161, 80, 28, 89,191,126,253,146, 61,123,246, 24,209, 52, 13, 14,135, 83, 38,180, 2, 3, 3,197, +114,185,252,136, 78, 66, 75,147,241,157,162, 99, 76, 76,148,213, 70, 29, 86,182, 76, 21,254, 90,150,171, 86,173, 26, 75, 81,212, + 32, 84, 72,225, 80,161, 93,185,212, 15,134,244, 14, 6,232,112, 63,121,244, 47,238,158, 70, 96, 17, 90,150,172, 50,193, 69, 86, + 39, 94,236,172, 44,111,236,223, 30,104,126,244, 17,129,196,183,111,113,243,183, 29,165, 34,235,205,201, 39, 72, 14,205, 68, 98, +104,103,188, 13,237,173,243,219, 19, 65,180,114,178,183, 68,158,136, 66, 97,206, 59,128, 70,212,199, 16, 89,118, 86,118, 55,126, + 14, 14,180, 56,245,132, 68, 98, 98, 34,174,158,220, 33, 84, 42, 37, 95,124,136,200, 26,197,102, 15,106,228,238,156,176,116,210, +160, 97, 62, 13, 29, 97,243, 46, 14,231,199, 13,195,234,227, 95,195,204,142,129,118,125,205, 48,113,173,227, 48,190, 39,247, 53, +191, 51, 6,233, 65,173, 45,178, 90,213,175, 95,127,216,253,251,247,109,189,189,189,121,241,241,241,146,189,123,247,102,137,197, +226, 43, 0,162,245,224,212, 22, 89,173, 22, 77, 30, 23,177,113,255, 97, 30,201,230, 32,232,200,121,204,186,157,170,186,144, 92, + 56, 20,229,135, 21, 43,133, 84, 42,189, 22, 28, 28, 44, 37, 73, 18,121,121,121,200,201,201, 65, 86, 86, 86,217,119, 65, 65, 1, + 24, 12, 6,174, 95,191, 46, 43, 44, 44,188,175,107, 7,239,221,187, 87, 63, 45, 45,205, 67, 32, 16,180, 81,127,226, 81, 26, 93, +104,170, 53,173,141, 64, 32,232, 10,224,145,102,122,106,106,106,189, 7, 15, 30,240,107,226, 55, 51, 51, 3,155,205, 46,103,209, +226,114,185,112,112,112,128, 82,169,196,137, 19, 39, 0, 32,175, 58, 14, 54,155, 35, 32, 73, 2, 20, 77, 73,121, 60, 30,197,231, +243, 43, 21, 88,250,112,170,145,250,229,151, 95, 74, 34, 35, 35, 43,181,104,213,134,147,166,233,146, 94,189,122, 33, 61, 61, 29, + 60, 30,175,236, 97,173, 17, 84, 36, 73,130,203,229, 34, 35, 35, 3, 83,166, 76, 1, 77,211, 37,255,244,157, 71,219,167, 73, 45, +134, 8, 0,132, 90, 8,189,231,167,165,171, 15,148,102,104,144,166,105,104, 4, 87,133,249,101,235,210, 37,123,123, 5,159,174, +201, 5, 5, 5, 27, 75,187, 67,239,173,240,189, 79,143,135, 66,153,208,138,141,141,197,225,195,135, 81, 80, 80, 0, 14,135,131, +252,252,124, 28, 60,120, 16, 49, 49, 49,224,112, 56,208,236, 11, 93,245,155,143,143,207,198,240,240,240,152,145, 35, 71,138,163, +163,163, 33, 22,139, 17, 29, 29,141,222,189,123, 75,238,222,189,155, 32, 22,139, 87, 65,151,161, 67, 77,198,119,117,121, 29,169, + 84,138,168,168,168, 74, 63, 85, 45, 83, 17, 9, 9, 9,174, 42,149,170, 49, 77,211,190, 52, 77,155, 67,157,194, 65,253, 95,251, +243,165,122,158, 57, 77,211,190, 42,149,170, 81, 66, 66,130,171, 65, 78, 24,240,153,226,150,150,216,162,181, 68,214,173,234, 45, + 90, 20, 25,124, 96,199, 74,243, 35, 15, 73,164, 36, 39,224,241,197,221, 66, 21,165,248, 66,207,114, 56, 61,160,149,107,131,103, +100,226, 69, 17,165,225,204,133, 57, 41, 0,205,168,141,208, 42,199, 9,138, 12, 62,184, 35,208,226,216, 99, 2,233, 41,111,112, +247,236, 46,161, 82, 41,237,142,183,161, 81,181,225, 28,197,102, 47, 99, 49,136,165,189, 58,181,100,119,110,233, 14,147,172, 36, +100,164,166,227, 68,108,118, 94, 66,190,244,155,187,132, 28,201,111,164, 7,250, 78,178,182,182,114,100,161,255, 84, 27,235,251, +231, 11,127, 39, 88, 34, 57, 45,167,215, 11,238,150,149,165, 40,223,207,247,225,104,102,102, 54,242,241,227,199,230, 60, 30,207, +232,241,227,199,212,222,189,123,115,197, 98,241, 69, 0, 17, 58,109,251,251,112,110,235,238,118,107,221,174,253,188, 98, 81, 9, + 68, 50, 57,184, 14,124,213,153,136,231, 67, 80,117, 2,204,114,156, 92, 46,247,216,177, 99,199,250,118,233,210,197,213,203,203, +139,204,203,203, 67,113,113,113,153,115,181,157,157, 29, 98, 99, 99,169,196,196,196,116, 46,151,123, 92,215,126,118,236,216, 49, +145, 36,201,120,245, 48, 90, 60, 42, 68, 23,106, 53,109, 44, 16, 8,218,242,249,252, 91, 0,140,181,162, 14,181, 57, 53,233, 29, +150, 0, 32, 9,130,120, 20, 29, 29, 93,220,167, 79, 31, 24, 25, 25, 65, 36, 18,161,110,221,186, 80, 42,149,184,120,241, 34, 34, + 35, 35, 69, 20, 69,221,170, 68,188,150,235,167, 68, 34,174, 11,128, 20,151,148,180, 24, 59,118,108,215,121,243,230,149, 11, 73, +183,183,183,135,181,181,181, 94,156, 0,144,151,151,215,244,143, 63,254,152, 19, 29, 29,253, 93,223,190,125, 45,150, 44, 89,194, +173, 95,191, 62, 84, 42, 21, 89, 91,206,252,252,124,139,168,168,168, 77,157, 59,119,158,209,167, 79, 31,230,186,117,235, 96, 97, + 97, 1,149, 74, 5, 35, 35, 35, 20, 22, 22, 98,213,170, 85,184,115,231,142,146,166,233, 93, 66,161,240,123, 61,207, 37,124,232, +181, 89,149, 5,168,170,148, 12, 85,180,255,219,251, 89,193,167, 11,234, 20, 14, 11,171,200, 96, 15, 93,207,121,141,208, 98, 48, + 24, 72, 74, 74,194,222,189,123,223,203,163,165, 73,255, 80, 5,119,101,219, 78,223,188,121, 83, 69, 16, 68,135,199,143, 31, 47, + 28, 51,102,204, 55, 34,145,200,217,196,196, 36, 93,161, 80,252, 34, 22,139,215,162,212, 31,149,173,207, 61, 68, 36, 18, 37, 87, + 22,117, 88,177, 13, 96, 89, 45,103,133,244, 14,229, 82, 56, 84, 88,166, 92,234,135, 74,210, 59,252,237,199,221,192,249,175,228, +252,220,197, 86,213, 9, 75,223, 67,171,201, 44,150, 88,225, 29,158, 64,124,136,200,122,223, 90, 34, 41, 73, 88,126,236, 93, 75, +153, 84, 2,145, 48,243, 37,146, 78,100,125,208,102,169,251,121, 59,129, 64, 82,226, 27, 60, 12,219, 85,218,207,183,161,181,238, + 39, 1, 44,254,233, 82, 40,155,176,176,198,211, 57,227,145, 94, 32,194,165,183,249, 39,233, 18,233,244, 35, 64, 62,238, 0,164, + 82, 26,126,240,135,140,221,190,131, 45,134,217,214, 97, 97,203,252, 95,192, 91,100,195,110,215,189,139, 62, 53, 16, 51,120, 60, + 94,248,246,237,219,123,248,250,250,114,135, 14, 29, 90,153,131,188,190, 72,125,244,234,205, 79, 23,246,108,158,111,227,221, 30, + 59,151, 45, 80, 29,139,120, 94, 49, 10,177, 90,120,120,120,168,238,221,187, 55,111,202,148, 41, 91,122,244,232,225, 52,112,224, + 64, 78,221,186,117,193,229,114,241,230,205, 27,132,135,135,203,222,190,125,155, 94, 82, 82, 50,175,121,243,230,250,228, 56,203, + 95,190,124,249, 70,245, 58, 8,245,112, 97, 27,168,163, 11, 53,141,212, 73, 75,219, 0, 48, 14, 12, 12, 28, 3, 0, 85,132,125, + 47, 7,176, 7, 0,147,166,233,140,144,144,144, 14,103,207,158,237, 48,119,238, 92,118,223,190,125,113,255,254,125, 92,189,122, + 85, 46,151,203, 35,212,194, 85,215, 82, 57, 20,128, 40,165, 82,249, 60, 40, 40,168, 3,131,193, 88,174,153, 17, 19, 19,131, 67, +135, 14,213,134, 83, 9, 96, 83,102,102,230, 79, 33, 33, 33,203,175, 93,187, 54, 97,236,216,177,230, 10,133, 2,177,177,177,248, +249,231,159,107,197, 41, 20, 10,231,216,218,218, 46,189,120,241,226, 47, 87,174, 92,249,106,244,232,209,228,172, 89,179, 16, 28, + 28,140,223,126,251,141, 82,169, 84,103, 89, 44,214,216,156,156, 28,209,167,184,235,168,135,225,210,245,172,117, 88, 35,239,135, + 12, 13,234, 8,193,135, 18,104,182,195,207,207,175,204,202,168,177,194,105,183, 33, 8, 66,239,161, 67, 0,150, 52, 77, 83, 0, +118,161,180,190,168,118, 86,120, 6,254,202, 28,175, 43, 99, 51,129,212, 50, 6, 82,196, 86, 95, 84,218, 18,160,209,172, 6,182, +130,229,203,151,111, 93,177, 98,197,214,138, 41, 28,180, 27, 85, 76,253,176,114,229, 74, 24,210, 59, 24,240, 95, 69,229, 66, 43, +106,159, 66,209, 96,200,146,237,235, 22,172, 80, 42,100, 66, 26,114,127,188, 57, 29,253,161, 43,163, 41,122,209,245,163,129,193, +160,145, 79,171,148, 11, 63,184,247,127, 83, 63, 9, 11,107, 20,173,154,134,223, 94,164,211, 25, 34,197,215, 71,228,242,114,214, +160, 82,159, 44,106,248, 13, 73,254, 9, 43, 39,214,153, 57, 95,216, 16, 23,242,198,232,189,158,172,172,172,115, 91,183,110, 37, + 55,111,222,220,181,164,164,164,162,131,124,109,177, 96,192,204, 69,140,118,141, 92,103, 62,124,157, 60, 8, 58, 12, 23, 86, 68, +199,142, 29, 5,113,113,113, 1, 87,174, 92, 25,121,251,246,237, 30, 34,145,200,149, 32, 8, 24, 27, 27, 39, 75,165,210,107, 92, + 46,247,152,158, 34, 11, 0,176, 98,197, 10,122,229,202,149, 68, 92, 92, 28,205, 96, 48,254, 4,144,200, 96, 48,146,180,157,224, +181,167,107,150, 9, 12, 12,212,229,129,120,187,184,184, 56,114,213,170, 85, 93, 86,173, 90,213, 66,109, 21,186,141,191,124,190, +244,133, 2,192,109, 54,155,147, 78, 16,132, 51,155,195, 21,221,187,119,239,218, 7,114,150,200,229,242,133, 41, 41, 41, 91,182, +108,217,178,214,196,196,164,109, 76, 76,204,159, 31,194,169, 22, 81, 67,172,173,173,157, 14, 31, 62,124,234,224,193,131,237,153, + 76,230,125,130, 32,134, 10,133,194, 79, 90, 84, 90, 93, 32,122,165, 30,181, 14,117,226,253,216, 73, 74,255, 14,225,166, 82,169, +138,151, 46, 93,154, 85, 81,120, 85,180, 94,105,254,171, 83,185,232,178, 79,245,137,162,172, 65,184, 16,197, 0, 80, 90,187,176, +180,172,142,174, 69,165, 1,136,107,186,206, 73,146, 60, 11,224, 37, 73,146,175, 43, 6,186,104,207, 91,185,114,101, 77,215,185, + 1, 6,124,214,208,225,206, 22, 72, 2,129,181,245,164,253, 7,205,149, 31,167,159, 1,108,246, 74, 18,152, 15,128,160,129, 45, + 71,228,242, 31,170, 91,208,177, 35,214,210, 4,230,170,119,230,186,140,187, 88, 83,139,109,175, 3, 29,234, 15,234,201,217, 4, +213, 23,148,125,143,211,223,223,159, 81,197,195,188, 92, 81,233,170, 16, 26, 90,150,197,191,170,126,106,159,111,102, 15, 30, 60, +112,242,241,241, 17,160,188,211,127,101,211,105, 61,183,157, 1, 64,245,145,247,231,103,193,233,230,230,198,121,243,230,141,236, +223,117,109, 26, 56,255,149,156,150, 77, 93, 64, 96, 18,180,115, 7, 85,107,209,210, 18,104, 52,253, 51, 10, 98, 83,170,232,167, +230, 58,183, 76, 72, 72,112,109,216,176, 97, 50,128,130, 10,253,168,108, 30,109, 56, 70,255,247,156,149, 97, 50,202,151,162,251, +172, 80, 89,116, 56,254,134, 3, 97,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,211,192, 89, 91,161,245,217,130,166,105,144, + 48,192, 0, 3, 12, 48,192, 0, 3, 12, 48,224,111, 1, 81,141, 42,213,199, 36, 88, 27,101,123,205,192,105,224, 52,112, 26, 56, + 13,156, 6, 78, 3,231,255, 29,103, 77,220,218,203,127,174, 67,135,147, 1,236, 51, 12, 29, 26, 56, 13,156, 6, 78, 3,167,129, +211,192,105,224,252,183,112, 86, 37, 88, 62, 91,208, 52,173, 99,173, 67, 3, 12, 48,192, 0, 3, 12, 48,224, 95,129, 30,238,224, + 51, 85, 32,255,120,163, 83, 16, 85,141,232,227,134, 58, 0,240,177,248,254, 79,193, 7,208, 79,235,255, 5,168, 35,227, 13, 66, +235,243, 69, 35, 0, 75, 0,104,215, 34,123, 8, 96,125,133,118, 71, 1,104, 23, 36, 20,161,180, 78,224,107,125, 86, 70,146,228, +250, 46, 93,186, 76,191,115,231,206,102,165, 82,185,170, 22,253,117,229,243,249, 27, 9,130,104, 13,128, 69, 16,196,155,204,204, +204,245, 74,165,242, 67,162, 86, 26, 56, 58, 58,110, 0,208,146, 36, 73, 22, 65, 16, 9,153,153,153,107,148, 74,229,205, 15,224, + 52,115,112,112,232, 68,211,180, 35, 0, 6,139,197,202, 77, 75, 75,123,128, 90,230, 86,242, 15,140,101, 23,138,148, 44, 0, 48, + 55, 97, 42, 66, 3,155,202,117,157,102, 56,197, 13, 48,224,255, 27,116,105,100,114, 57,244,118,195, 90, 90,137,239, 85, 0,209, +171, 62,118, 92, 78,196,247, 85, 45, 79, 84, 18,213, 92,145,179,183, 27,214,170,232, 82,142, 94,110,216,116,249, 13,170,141,180, +215,133, 83,131,125, 0, 57, 89,135, 42, 5,132,110,209,215,255,118,244, 67,249, 33,206,178, 33,207,106,133,214,112,119,240, 85, + 76, 48, 67, 99,161, 9,227, 53, 3,208, 66,253,144,127,141,210, 92, 69, 69, 31,216,185,207,133,243,223,134,229, 52, 77, 7,148, + 59, 89, 43,201, 67,244,197, 23, 95, 12,188,114,229,138,177,166,222, 29, 69, 81, 48, 50, 50, 82, 2, 24,167,199,186,236,135, 15, + 31,190,232,192,129, 3, 24, 54,108,216,210,176,176,176,173, 0,138,117, 93,216,202,202,202,223,210,210, 50,120,255,254,253,118, +237,219,119, 32, 56, 28, 14,222,188, 73,112,158, 50,101,138, 87, 92, 92,220,217,172,172,172,111,244,221,120,107,107,235, 81,150, +150,150, 91,246,238,221,107,219,185,115,103, 16, 4,129,200,200, 72,231, 57,115,230,180,120,247,238,221,241,204,204,204, 25,250, +114,218,216,216,184, 91, 88, 88,116,219,185,115,167, 81,167, 78,157,192,227,241, 16, 29, 29,109, 58,117,234, 84,199,180,180,180, +216,204,204,204, 91,250,138,172,103,145,231,191, 82,202,165, 65, 0,192,100,115, 23,180,223, 18,113,254,217,141,243, 3,106,154, +230, 31, 24,251,187, 65,108, 25, 96,128, 1,218, 24,229, 4, 71,154,198,252, 43, 63, 47, 35, 1,160,215,132,213,179, 70, 57, 97, +243,145,244,170,107,216,234,201,247,253,216, 58, 8, 62,156,134,204, 15,233,231, 62,128,156,195,100,206,106,231,227, 99,251,237, +221,187, 9,114,224,151,255,147, 67, 84,233, 48,103,149, 66,107, 72, 83,172, 82,150, 90, 76,136, 62, 13,113,252,106, 34, 35,252, +139, 47,190,104, 56,113,226, 68,162, 85,171, 86,136,140,140,116, 63,126,252,120,191, 11, 23, 46, 36,168, 84,170, 72, 0, 47,160, +123, 86,107, 22, 0, 79, 6,131,209,250, 95,206,249,111,134,137, 90, 92,101,226,175, 68,167,239, 37, 60,189,126,253,250, 57, 38, +147,169,177,104,181, 19,137, 68, 14, 21,172, 96,186,160,158, 66,161, 64,124,124, 60, 72,146,100, 1,168,143,247, 75,106, 84, 5, +103, 99, 99,227,221, 17, 15, 35,109, 8,166, 17,242, 37, 0, 36,114,112, 76, 29,112,224, 80,136,245,188,217, 51,134,220,188,121, + 51,188,168,168,232, 87, 61,250, 83,223,196,196,100,235,211,167, 79,109,140,141,141, 65, 81, 20,138,138,138,224,232,232,136,253, +251,247, 91,206,155, 55, 47,160,176,176,240,166, 68, 34,249, 77, 31,113,110, 97, 97,209,237,249,243,231, 70,154,130,210, 50,153, + 12,206,206,206, 56,122,244, 40,119,214,172, 89, 77, 11, 10, 10, 82,101, 50,217, 91, 93, 9, 11, 69, 74,150, 82, 46, 13, 58,188, + 43,208, 5, 0,198,206, 8, 12,226, 20,153, 95,212,101, 90,161, 72,121, 1,128, 65,104, 25,240, 79,163,181,173,173,109,104, 78, + 78,206, 45, 0,223,224,227, 88, 26,220,121, 60, 94,115,138,162, 28, 73,146, 4,131,193,200, 16,137, 68, 79, 1,188,170, 45,161, +141,155,223, 0,112,141,199,131,166, 90,144, 0, 8,146,140, 86,201, 75, 14,229,190,186,121,254,131, 56, 57, 70, 19, 0,186, 5, + 9, 80, 4, 73, 62,165,148, 37,251,115,226,111, 94,250,183, 28,156,251, 66, 52,118,115,212,189, 48,230,199,224, 27,209, 0,124, +146, 2,121, 52, 73,247, 97,197,153, 64,223,217,179,103, 59,206,152, 62,157, 24, 63,110, 92,163, 91,119,238, 16, 93,245,169, 86, +240,121,162, 74,135,253, 74,133,150,127, 83, 88,209,192,194,227,193, 75, 72, 38,131, 65,140,156,189, 62,224,224,174, 77,100,207, + 1, 67,203,134, 79,124,125,125,225,235,235, 75, 4, 5, 5, 53,250,243,207, 63, 27, 29, 61,122, 84, 25, 17, 17,241, 20,192,137, +170, 86,214,219, 13, 98, 10,224,177, 89, 76,209,200,101,191,238,245,241,241, 1,151,203,197,135,112, 2, 64,207,134,228, 91,150, +117,131,167, 35,103, 46, 79,110,223,190, 35,253, 49, 56, 63, 35, 60, 4,202,138, 90, 91,185,184,184,116, 82, 42,149, 60, 0, 96, + 50,153,146,148,148,148,153, 40,173, 13, 8, 0,103, 41,138, 26,168, 7, 55, 9, 96,197,192,129, 3,151,126,251,237,183,168, 91, +183, 46,102,205,154, 5,133, 66, 17,121,233,210,165,229, 0, 54,160,134,139,199,222,222,126,249,238,221,187,173,153, 28, 19,180, + 90,152, 8, 65,129, 18, 0, 96,202, 5,206, 77,163, 49,107,214, 44,243,199,143, 31,175,209, 71,104,217,219,219,175,218,191,127, +191,181,177,177, 49,104,154, 46,171,197, 88, 92, 92,140,226,226, 98,204,152, 49,195, 60, 54, 54,118,163, 62, 66,203,193,193,161, +211,206,157, 59,141,120, 60, 30,138,139,139,217,114,185,156, 40, 42, 42, 66, 73, 73, 9, 45,147,201,228, 51,103,206,228,190,120, +241,194, 79, 32, 16,188,133, 1,255, 22, 48, 0,124,205, 98,177, 6, 55,108,216,176,205,235,215,175,159, 40,149,202,211, 0, 78, +127,132,151,169,238, 78, 78, 78,107,211,211,211,119, 2, 8,249,127,217,161, 14, 14, 14,167,239,221,187,231,178,123,247,238,113, +155, 55,111,190, 8,224,183, 15,160, 99,179,217,236, 33, 93,187,118,117, 25, 59,118, 44,199,193,193, 1, 82,169, 20,137,137,137, +230, 39, 79,158,116,141,142,142, 78, 85, 87,196,208,249,133,194,198,189,163, 41,152,230,199, 59,116,236,212,121,216,144,175,205, + 28,108, 44, 32,150,169,240, 58, 89, 80,247,143,139,231,186,198,177,141,238,201,229,194, 17,185,175,238, 21,235,203,217,173, 91, +247,206, 61,186,119, 55,179,176,180,128, 80, 36,199,155,164, 52,215, 27, 87,207,251, 50,153, 70,183, 41, 66, 49, 58,235,249,213, +146, 79,121,108,102, 1, 76, 17,207,166,121,139,142,173, 30,247,154,184,166, 13, 77,211, 32,105,236,168,104,205,154, 5, 48,119, +148,150,253,210,139, 15, 52, 77, 19, 4, 54,105, 91,179,122,187, 97, 45, 77,227,123,144, 32,122,215, 48, 76,169, 65, 47,128,107, +105,109,237, 51,117,242,100,162,168,176, 16,209,209,209, 37, 21, 69,214,214, 58, 96,223, 38, 81,239,108, 74,237,197,246,191,212, +154, 85,233,208,161,206,121,180,140,141,141, 43,157,110, 97, 97,129,110,221,186, 97,253,250,245, 76, 0,173, 43,204, 46, 95,100, + 21,224,134,237, 89, 12, 11, 19, 46, 89,183,110, 93, 51,115,115,243, 15,230, 4, 0,208, 84,253,142,117,233, 47, 31,253,186,100, +220,181,163, 91, 60, 69, 69, 5,172,138, 77, 76, 77, 77,209,184,113, 99, 44, 93,186, 84, 55,206, 15,199, 63,202,233,232,232,216, +196,215,215,183,245,245, 91,183, 44,211,211,211,185,233,233,233,220, 43,215,175, 91,118,232,208,161,181,163,163, 99,147,178, 93, +245,126,168,105,117,253, 92,189,107,215,174,229,103,207,158, 37,125,125,125, 97,101,101,133,110,221,186,225,226,197,139,204,205, +155, 55,175, 3,176,180,166,126,146, 36,217,217,215,215,151, 0, 77, 35, 67,168,196,131,245, 77, 16,189,201, 3, 69, 18, 26,121, +194, 66,136,197, 18, 24, 27, 27,243, 80, 58,220,171,235,182,119,236,208,161, 3, 1,160, 76, 92, 21, 21,149,126,138,139, 69,144, +201,228,224,114,185,102, 0,120,186,114,210, 52,237,216,169, 83, 39, 0,128, 92, 46, 47,123,195, 43, 40, 40, 32,132, 66, 33,100, + 50, 25, 88, 44, 22, 27, 53,251, 53,150,113,154,155, 48, 21, 76, 54,119,193,216, 25,129, 41, 99,103, 4,166, 48,217,220, 5, 50, +179, 66,149, 46,211,204, 77,152,138, 79,124,126,218,145, 36,249,179,155,155, 91, 44, 73,146,135, 1, 56,126, 32,103, 91, 0,235, +140,140,140,174,121,120,120,164, 24, 27, 27, 95, 87, 11,245, 14,181,228,228, 24, 27, 27, 95, 95,183,110,221,169, 39, 79,158, 12, +251,243,207, 63,235, 63,123,246,108, 72, 80, 80,208,113, 83, 83,211,112,148,247, 75,212,251,218,172, 95,191,254,193, 7, 15, 30, +180,237,216,177,227, 1, 0,220,143,116,189, 51, 0,180,132, 78, 21, 57, 62,201,113,119,106,213,170,149, 11,143,199, 67,143, 30, + 61, 0,192,239, 67, 56,217,108,246,144,165, 75,151,186, 45, 91,182,140, 35, 16, 8,112,253,250,117, 60,124,248, 16, 74,165, 18, +211,166, 77,227,142, 29, 59,182,129,153,153,217, 16,189,250,201, 52, 63, 62,123,206,220, 62,243,103, 77, 50,123,250, 78,142, 67, +215,222,225,247, 8, 1,178, 74, 56, 24, 48,100,172, 69,239, 65,195,123,115,184, 22,199,245,229, 92,180,112, 97,159,201, 19, 2, +204, 98, 4, 20,206,221,207,192,253,120, 33,148, 44, 75,244, 29,242,141, 85,139, 78,125,250, 49,193,250,229, 83, 31,163,253, 64, +251,217,179,103,219, 45,216,116,228,174, 83,219,175,119,100,231,195, 87, 91,248,184, 3,150,214, 38, 38, 95,199,119,237, 58,201, +168,180, 94,108,181,156,229,248, 90, 15, 10,206,202, 71, 23,109,255,172, 46,214,104,164, 30, 86,100, 92,249,121, 25, 73, 19,152, + 53,202,169,220,125,160,210,126,222, 4,134,205,158, 59,151,101, 97,101,133, 93,187,118, 65, 42, 18,149,243,153,237,238,130, 62, +215,140,153,169, 13, 60,156, 99,187,185, 18,225,255,193,247,149,201, 85, 90,180,194,194,194,232,254,253,251, 19, 0, 16, 26,139, +252, 33, 77,177,113,248,183,235,150, 18, 36, 65,215,243,236, 24, 83,199,173,153,200,198,198, 6, 37, 37, 37,144, 74,165, 96,179, +217,144, 72, 36,120,247,238, 29,238,223,191, 15, 43, 43, 43,189,122, 82, 88, 88, 8, 83, 83, 83,152,154,154,126, 20,206,197,227, +122,112,223,164,100,115, 47,223,191,217,117,251,244,223,218,187,181,244,123,214,125,248,172,231,230,118, 78,146,103,207,158,225, +222,189,123,200,207,207,135,143,143,207,127,229, 96, 62, 84,251,100, 61, 4, 96,213,176, 97, 67,231,203,215,110, 91, 21, 75, 40, +243,164, 76, 5,139,162, 40, 24, 27,243,149, 39, 66,207, 9,135, 13, 25, 64,100,100,100,100, 1,120,168, 22,183, 53,213, 84,228, + 1,104,226,239,239,191,104,250,244,233, 72, 72, 72,192,164, 73,147,196, 15, 31,100,113,178,147, 0, 0, 32, 0, 73, 68, 65, 84, + 62,204,237,216,177,163,205,254,253,251,141,230,205,155,135, 91,183,110,173, 8, 11, 11, 59, 3, 32, 17, 64,165,181,218,104,154, +102,179,217,108, 40,213,178, 65,174,162,202,244,125, 97, 97, 33,104,113, 62,216,108, 54, 3,128, 29,116,244,163,163, 40,138,205, + 98,177,202, 68,214,187,204, 66,188,203, 42, 65, 97,177, 12, 98,177, 18, 50, 49, 13,134,177, 13, 19, 72,114, 0,144,164,171,117, +132,199,227, 65,169, 84,162,168,168,180, 27, 26, 75,153, 76, 38,131, 80, 40, 4,131,193, 48, 5, 96, 14, 32, 79, 23, 66,181,147, +251,239,234, 97, 64, 60, 58, 50,208,246,245,133,197,229,166,153,155, 48, 21,161,243,154, 50,108,156, 91,220,105, 57,236, 23,143, +178,105,159,214, 63,139,107,103,103,119,227,212,169, 83, 77, 27, 53,106,132,196,196, 68,143,161, 67,135,250, 8, 4,130,150,208, +191, 38,163, 49, 73,146, 27,199,142, 29, 59,125,228,200,145,132,187,187, 59,152, 76, 38,148, 74,165,115, 66, 66, 66,183,147, 39, + 79, 46, 60,120,240,224,126,149, 74,245, 29,116,247,251, 35, 57, 28,206,137,189,123,247,118,241,241,241,193,225,195,135,241,240, +225, 67,170,109,219,182,228,152, 49, 99,224,234,234,234, 51,102,204,152,223,165, 82,105,223, 90, 90,182, 92, 59,116,232,224,194, + 96, 48,208,177, 99, 71,246,189,123,247, 90, 1,184,247,129,251,212,212,217,217,249,150,159,159, 95,203,107,215,174, 69,101,100, +100,248,233,177,189, 0, 48,200,201,201, 41,200,194,194,194, 74,143,123,108, 73, 90, 90,218,247, 0, 66,117, 92,164,125,235,214, +173,145,156,156,140, 38, 77,154,128,205,102,119,144,203,229, 83, 0,244, 1,240, 3,128, 88, 61,250,235,222,189,123,119, 23, 63, + 63, 63, 34, 52, 52,180,204, 63,148, 36, 73, 40,149, 74,176,217,108,180,111,223,158,140,140,140,172,243,232,209, 35,119,232, 48, +140,104,227,230, 55,160, 99,231,174,157,187,248, 52, 39, 55,135,190,134,138, 82,129, 65, 40,193, 36, 40, 80, 10, 46,184,108, 6, +220, 61,219, 48,226, 95, 60,245,145, 73,229, 3,114, 95, 93, 59,175, 11,103,159, 94, 61,125,155, 54,113, 39,183,255,254, 6, 5, +105,177,170,180,184,219, 57, 36,131, 68,211,214, 95,216,186, 55,107,201,104,233,227,199, 74, 79,124,209, 77, 34,233,210, 35, 63, +225,246,181, 79,113, 65,174, 4, 24,206,117,108,191,238,223,211,143, 45, 72, 79, 23,157, 12, 61,255,188, 68,129,251, 0,112, 11, + 32,250, 2,205,189,219,181,235,186,127,195, 6, 27, 62,159,207, 26, 61,114,164,114, 95, 84, 84, 20,170, 24,250, 93, 9, 48,108, + 29, 29,123, 76,157, 58,149, 33, 72, 79,167, 79,158,190,240, 76,195,135,210,183, 20,239,230,206, 30,253, 33,138,215,107,152,114, + 0,192,113,112,116,108, 58,101,202, 20,100,164,167,227,112, 72, 72,177, 4,136,208, 88,177,206, 49,176,179,153,155,227,248, 5, +223, 12, 36, 92,248,182,152,186, 98, 95,135,110,242, 44, 55, 8,254, 58,254,218, 90,228, 51, 22, 89,147, 43, 21, 90, 21,241, 91, + 44,150,155,177, 81,255,228,201, 99,100,118,145, 92,148,144,144, 0, 91, 91, 91,240,249,124, 88, 88, 88, 32, 38, 38, 6,215,175, + 95,199,203,151, 47, 65, 81, 20, 90,180,104,161, 87,111,114,114,114,240,244,233, 83, 88, 89, 89,125, 52, 78, 55, 23, 59,124,235, + 98,199,206,204, 45,100, 95,123,248,210,103,223,226, 33,205, 72,143, 33, 7,181,139,196,202,100, 50,252, 71, 80, 22, 93,232,226, +226,210,233,208,161, 67,108,169, 18,102,238, 83, 34,126, 20, 73, 84, 38, 0, 96,194, 99,136, 34,131, 26,127,183,122,245,106,209, +132, 9, 19, 60, 82, 82, 82,214,235, 96,235, 95,219,189,123,247,249, 52, 77,179,102,207,158, 13, 0, 24, 59,118,108,225,253,251, +247,221, 1,100, 93,191,126,221,105,226,196,137,175,110,220,184, 97, 60,119,238, 92,134, 82,169,140, 97, 50,153,116, 88, 88,216, + 42, 0,129,239, 61, 17, 73,242,113, 84, 84, 84, 61, 39,215,198,112,181, 33,225,187,244,101,233, 13,206,152, 66,106,210, 27,196, + 61,123, 8, 71, 71, 71, 11, 62,159, 31,155,154,154, 42, 79, 75, 75, 91, 40, 18,137,118,215,208,199,232,200,200, 72,190,171,171, + 43,138,139,139,145,154, 93,130, 89,167,141, 81, 40, 46, 53, 98,176, 32, 70, 75,151,198,102, 70,164,236, 97, 86, 86,150, 92, 38, +147, 45, 19, 10,133,135,170,227,100,177, 88,185,207,158, 61, 51,173, 91,183, 46, 36, 18, 9,157,151,151, 71,136, 68, 34, 20, 21, + 21, 17, 23, 46, 92,248, 74, 32, 16,180,173, 95,191, 62,225,236,236,188, 74, 32, 16,136,211,210,210, 38,233, 50, 52,169, 22, 76, + 42, 38,147,185,121,242,228,201,195,206,156, 57,243, 56, 52,176,233, 32,173,225, 18, 11, 79, 79,207,203,205,155, 55,115, 10,217, +228,189, 3,192,143,255,130,115,107,252,146, 37, 75,154, 90, 91, 91, 99,234,212,169, 88,185,114, 37,150, 47, 95,222,104,234,212, +169,147, 1,108,213,131,199,200,209,209,241,209,246,237,219, 61, 58,117,234,132,139, 23, 47,226,216,177, 99,120,251,246,173,178, +126,253,250, 76, 31, 31, 31,172, 88,177, 2,189,123,247,158, 52,115,230,204,174,233,233,233,173,116, 20, 31, 19, 86,172, 88, 49, +168,115,231,206, 24, 55,110,156,244,230,205,155,195, 0, 92,185,122,245,234, 23,183,110,221, 10, 61,114,228,136,209,186,117,235, +122,204,155, 55,111, 42,128,224, 90,108,255, 87, 93,186,148,214, 80,238,220,185, 51,130,130,130,122,127,160,208,226,216,216,216, + 92, 56,124,248,112,203,198,141, 27, 99,244,232,209,173,134, 13, 27,118, 33, 63, 63,191, 39, 0,157,110, 72,117,234,212,217,120, +246,236,217,134, 85,141, 44, 84, 6,169, 84,106,253,245,215, 95,111, 72, 74, 74,210, 75,104, 29, 61,122, 20,223,127,255, 61, 90, +180,104,209,188,125,251,246,123,166, 76,153, 2,127,127,255,238, 49, 49, 49, 14, 40,141, 90,174, 17, 60, 30,175,249,136, 17, 35, + 56, 15, 30, 60, 0, 0,120,122,122,162,101,203,150, 72, 78, 78,198,227,199,143, 33,149, 74,225,224,224,128,193,131, 7,243,146, +146,146,154,231,228,228,212, 40,180, 72,174,241,248, 65,253,251,154,157,187, 47,128,138, 82,162, 77, 67,115,248,120,216, 35, 62, +181, 16,145,177,169, 80,201,216, 48,183,182, 65,135,174,189,172, 51,210,222,142,207, 5,106,246,215,226, 26,143, 31, 60,168,159, +233,185,136,116, 20,164,199,209,175, 31,158,185,174,144,136, 38, 1,192,227, 63,143,239,113,180, 49,234,233,222,186, 13,195,175, +231, 64,171,211,199, 50,198,231,255, 51,181,253,222,195, 45, 23,236,117,101,229,140, 93, 16,224, 75,179,172,156, 31,154, 41, 20, + 59, 53,243,122, 3,189, 22, 46, 89,210,254,155,201,147,121, 20, 69,225,200,175,191, 22, 62,141,138,138,159, 12, 80, 83,170,224, +219, 9,184, 14, 27, 52,136,107,102,110,142, 57,179,102,193, 76,161,184, 81,182, 75,128,238,115,230,207,239, 52, 99,198, 12,163, + 61,171,166, 63,238, 61,113, 77,107,138,166, 9,205, 48,229,209,234, 77,113,109, 39, 14, 26, 4, 51,115,115,204,158, 61, 27,132, + 92,126,185, 76, 64, 49,113, 99,194, 87,190, 62, 1, 3, 58,131, 0,129, 99, 97,119,240, 58, 57,251,217, 13, 1,222,124,174,170, +170, 2,170,244,209,170,118,232,176, 72,142,204,238,253,134, 8,220,221,221,139, 26, 53,106, 84,148,155,155,139,231,207,159, 35, + 63, 63, 31,193,193,193,136,139,139, 3, 69, 81,181, 22, 48, 20, 69,225, 99,115, 2,128,131,141, 57, 70,247,109,199,148, 74, 68, +188,236,236,236,114,195, 71,255, 33,161, 85, 6,165, 82,201,171, 95,191, 62, 72,128, 16,150, 40, 76, 51,142,118, 33, 50,142,118, + 33,132, 37, 10, 83,153, 76, 70,154,154,154, 66, 42,149,242,116,160, 98,125,249,229,151,243,207,156, 57,195, 90,187,118, 45,188, +188,188, 32,151,203,113,255,254,253, 84, 0, 89,234, 54,233,183,111,223, 78,215, 8,225,245,235,215,227,244,233,211, 68,143, 30, + 61, 22, 86,118, 62, 9, 4,130,141, 83,166, 76,201, 43, 41,202,195,222,225, 98,132,142,206,198,207,131,222, 98,164,205, 41,228, +101,190,195,190,125,251,112,245,234, 53,226,202,149,171,236,155, 55,111,154,244,235,215,111, 71,157, 58,117,194,170,235,100,122, +122,250,218, 25, 51,102, 20, 20, 21, 21,161,168,168, 8, 98,177, 4,121, 34,224,217,150,166,120,182,165, 41, 36,148, 17,118,237, +220, 77, 62,123,246,204,246,237,219,183, 78, 3, 6, 12,216,194,231,243, 15, 86,199,153,150,150,246,224,219,111,191,149, 20, 22, + 22, 66, 38,147,201, 85, 42,149, 76, 44, 22, 43,142, 31, 63, 62,215,198,198,166,195,197,139, 23, 89, 87,175, 94, 99,222,188,121, +139,125,253,250,117,139,110,221,186,157,112,112,112,248, 69, 23, 75, 25,131,193,216, 22, 18, 18, 50,126,215,174, 93, 14, 62, 62, + 62,205, 42, 12, 69,241,123,246,236, 89,239,215, 95,127,173, 19, 20, 20,180, 16,165, 1, 40,159, 20,182,182,182, 51, 7, 13, 26, +132, 93,187,118,225,252,249,243,243,118,236,216,129, 47,191,252, 18, 78, 78, 78,223, 66,247, 97, 47, 0,248,113,235,214,173, 30, + 30, 30, 30, 24, 59,118,172,108,210,164, 73,223, 29, 58,116,168,126,120,120, 56,251,151, 95,126,169, 55,117,234,212,217, 1, 1, + 1,146, 6, 13, 26, 32, 56, 56,184, 33, 73,146,219,116,186,190, 29, 28,230,142, 28, 57, 18,155, 54,109,194,205,155, 55,135,160, +244,129, 42, 3,112,233,238,221,187, 3,214,173, 91,135, 33, 67,134,192,217,217,121,118,109, 44, 79, 77,155, 54, 93,214,167, 79, + 31,132,135,135,163, 85,171, 86,232,208,161,195, 60, 0,182,181,220,157,164,169,169,233,137, 67,135, 14,249,214,171, 87, 15,107, +214,172,129,155,155, 27, 14, 30, 60,232,107, 98, 98,114, 2, 58,186,111, 88, 88, 88,152, 26, 27, 27, 99,225,194,133,244,144, 33, + 67,242,106,250,204,155, 55,143,230,114,185,176,178,178,210, 53,240,197,136,199,227,117,244,242,242,194,253,251,247,113,245,234, + 85, 44, 93,186, 20,115,231,206, 69,118,118, 54, 70,140, 24, 97, 12,192, 95,143,237,182,183,179,179, 67, 97, 97,105, 93,120, 47, + 47, 47, 60,121,242, 4,217,217,217,112,118,118, 70, 70, 70, 6,108,108,108,208,184,113, 99, 80, 20,101,175, 27, 37,237,101,107, +109,129,172,124, 41,152, 80,162,181,187, 45,110, 60,207,197,187,108, 25,236,109, 44,145,145,149,141, 58, 54, 60,184,184,212, 5, + 77, 83, 94, 58, 41, 96, 6,217,154,203, 51, 66, 94,145, 28,105,177, 55,115,229, 42,233,148,130,196,187, 41, 5,137,119, 83,228, + 82,201,148,199,119,174,230,214,115, 48,130,139,139, 11, 8,154,106,247, 41,174,199,161,117,225, 98, 98,196, 28,123,245,231,101, + 68,216,254,197,132, 52,247, 93,219, 62, 14,165,150,101, 59,160,254,208, 17, 35, 58,126,247,221,119,188,204,204, 76, 42, 96,248, +240,188,181,129,129,215,254,168,225,197,160, 24,104,212,179,103, 79,144, 0,254,184,114, 69,148, 1,164, 2,128, 3,224, 50,240, +235,175,187, 44, 89,180,200, 40, 39, 55,151,186,159, 80,124, 46, 46,139, 30,108,173, 66,125, 93,252,179, 84,128,183,134,247,242, +229,203,180, 24,120, 12, 0,126, 46,248,182, 87, 39, 79,159, 49,131,186, 64,144,149,143,217,107,127,198,158,147,183, 46, 91, 40, +232, 47,254, 67,143,226,201,181, 18, 90,234,161,159,247,166,149,148,188, 63,122,240,161, 2,230,239,224,172, 12,255, 69,161,165, +129, 66, 81, 58, 74, 34, 83, 80,144, 41, 40,205, 91, 45,196, 98,177,206, 20,151, 47, 95, 62, 60,107,214, 44,108,217,178, 5,175, + 94,189, 2,155,205,134,151,151, 23, 31,128,169,230,158,223,186,117,107,123,146, 36, 17, 31, 31,143,205,155, 55, 99,194,132, 9, +244,189,123,247, 14,162,242,124, 41, 79,242,242,242,118, 78,153, 52,161, 32, 63,243, 29, 20,226,124,100,165,189,129, 84, 84,128, + 53,235, 55,162, 68,193, 68,134, 80,142, 12,161, 28, 36,215, 26,123,246, 31, 98, 52,109,218,180, 15,131,193,232, 95, 77, 63,239, +103,102,102,238,159, 54,109, 90, 65, 70, 70, 70,217,246,201, 20, 52,100,138,242,231,171,177,177, 49,182,109,219,102,225,238,238, + 62,136,201,100,118,171,134, 83,144,146,146, 18, 55,109,218, 52, 89,102,102, 38,132, 66, 33,206,157, 59, 55,160, 94,189,122, 86, + 27,126,220, 66,136,228, 76,100, 20,200,145, 81, 32, 7,199,212, 30, 39, 66,207, 48, 26, 55,110, 28,192,100, 50, 59,212, 36,178, +142, 28, 57, 50,102,248,240,225,102, 63,254,248, 99,222,217,179,103,119, 1,208, 62, 32,241,219,182,109, 59,121,226,196,137,162, +249,243,231, 91, 7, 5, 5,205,251,196, 98,171,219,240,225,195,155, 80, 20,133, 83,167, 78, 61, 3,176,245,204,153, 51,143,164, + 82, 41, 70,140, 24, 81, 95, 61,140,164, 11,218, 6, 4, 4, 76,247,245,245,197,156, 57,115,228,215,174, 93,107, 13, 96, 11, 74, +135,114,105, 0,201, 0,118,220,186,117,171,197,204,153, 51,165,237,218,181,195,184,113,227, 38, 0,240,173,129,183,227,200,145, + 35, 61, 40,138,194,241,227,199,159, 2,184, 88, 97,254,245,208,208,208,251, 50,153, 12,163, 70,141,106, 0, 64,159, 27, 57,155, +203,229,158, 90,189,122,181,101, 90, 90, 26,198,140, 25, 35,141,143,143, 71, 96, 96,160,145,133,133,197, 69,173,107, 64,103,112, +185,220,125, 63,253,244,211, 32,111,111,111, 76,155, 54, 77,182,123,247,238, 89,211,167, 79,151,181,110,221, 26,187,118,237, 26, +196,225,112,244, 42, 45,146,158,158, 94, 16, 27, 27,107, 83,211, 39, 53, 53, 85,215,240,124, 99, 83, 83,211, 8, 79, 79,207, 66, + 47, 47,175, 54, 74,165, 18, 49, 49, 49,111, 14, 31, 62, 76,121,121,121, 97,231,206,157, 8, 10, 10, 66,255,254,253,193, 96, 48, +116, 22, 90, 12, 6, 3,114,185, 28,198,198,198, 96, 50,153,120,243,230,141, 38,181, 12,216,108, 54, 0,192,196,196, 4, 70, 70, + 70, 32, 73, 82,167,104, 52,130, 0, 93, 88,162, 0,139, 69,130, 73, 82,136, 75, 22, 66,174,160,192, 99, 51,192, 98, 18, 0, 77, +193,210,132, 5, 30,135, 1,146, 32, 40, 29, 57, 33, 20,201,193, 97,147, 96,177, 57, 4,169, 84, 25,149, 61, 28,153, 42, 35, 35, + 35, 14, 97,107,206, 5,143,253, 47, 42, 11, 76,148, 58,150,143, 7, 88, 38,117,235, 14,219,180,121, 51,167,176,184, 24, 67,134, + 12,201, 75,122,244, 40, 68, 12, 60,234, 90, 67,144, 18,201,100,186,251,117,237,138,200,168, 40, 20,229,231,191, 6, 74,157,227, + 57, 78, 78,195,183,109,219,198, 17, 75, 36, 24, 50,120,112,193,171, 59,119,142,164, 20, 35,236,120,114,169, 16,171,241,184,179, +217,142, 26, 94, 97,126,126, 62, 80,154, 66,194,193,206,116,195,140,128,222, 40, 42,145, 96,193,198, 16, 42, 42, 78,240,109,120, + 42,250,157, 73,135,240, 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149, +137,196, 15,229,252, 55,130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245, 38,220,177, 0, 0,107, 83,166, 80, +174, 82, 80,233,233,233,224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136, +213,200,145, 35, 19, 98, 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170, +204,227,146,153,153, 25,152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, + 92, 22,137,104,110, 68,226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94, +189,218, 98,225,220,210,206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62, +221, 42, 33, 33, 97, 97, 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, + 34, 8,137,140, 66,243,133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, + 92,233,205,140, 36,131,180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17,163, 70,141,122, 14,192,107,254,252, +249,214, 52, 77,207, 91,184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, + 64, 97, 97,225,214,163, 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47, 71,140, 24,129, 75, +151, 46,225,207, 63,255, 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,200,145, 35,241,243,207, 63,247, 1, 80, +157,131,108,207,222,189,123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95, +191,190, 39,128,235, 58,108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254, +249, 99,199,142,153, 29, 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,209,207,207, 15, +243,230,205, 83, 94,190,124,121, 32,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166,137,179,103,207, +206,166, 40,234, 83,137,235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118, +163, 70,141, 86,203,100,178,243, 38, 38, 38, 99,205,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98, +162,165,133,133, 5,148, 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38, +180,172,229, 53,136, 34,242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, + 19,103, 16, 4,129,130,220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100, +135,152, 55,232, 52,153,201, 32, 24, 28,174,233,222,137,227,198,217, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, + 33,165,171, 27,239, 73,175,137,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, + 32,128,202, 77, 75,187, 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96, +129,141,189,163, 35, 38, 76,156, 72,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, + 64, 95,174,137, 17, 23,235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54, +174, 86,172,240,120,188, 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,226, +196,137,114,165, 92, 90,116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, + 41, 41, 41,113,218,203,212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234, +249,243,231,214, 30, 30, 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156, +220,208,210,210, 82, 97,105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70, +134, 59,101,213,164,139,123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103, +103,131, 32, 8, 40, 20,138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16, +189,201, 3,209,155, 60,144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 62,124,184, + 25, 0,168, 5, 84,119,154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, + 73,147, 38,181,225,241,120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153, +160,203, 76, 67,108,118,235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107, +104, 91,223,197,197, 5,241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,168, 87,175, 94,207, +110,220,184,209,182, 99,199,142,152, 56,113,162,236,193,131, 7,125, 1,220,126,242,228, 73,183, 81,163, 70,137,220,221,221,113, +235,214, 45,143, 81,163, 70,221, 35, 73,114,141, 14,156, 19, 86,173, 90,181,248,171,175,190,194,170, 85,171,232,147, 39, 79, 6, + 0,184,162,158,119,249,248,241,227, 99,214,174, 93, 75, 15, 30, 60, 24, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82, +169, 32, 18,137,116, 50,201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, + 16, 46,147,201,186, 0,216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194, +194, 2,174,174,174,104,208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, + 21,233,148,147, 79, 41, 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211, +186,232,218,186, 30,114,132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220, +196, 19,163, 38,206,106,217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, + 88, 88,120,232, 83,220,232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232, +251,229,151, 72, 77, 77,197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,126, +253,250, 33, 59, 39, 7, 71,143, 28,201,190, 4, 68,233,211,207, 1, 0,199,216,168,212, 32, 40, 20, 10, 65, 0,133, 0, 64, 48, +209,183,157, 87, 35,100,231, 21,226,198,195,184,226,122, 98, 76,175,142,231, 51,118,132,175,157,143, 22,128,156,121,243,230,129, +203,229,130,207,231,151,137, 35,141, 88,225,112, 56,224,243,249, 80, 42,149, 56,126,252, 56, 0,228, 84,251,134, 7, 72, 7, 78, + 91, 79, 73, 21,116, 9,139,197,250, 40,156,234, 55, 71,233,144, 5, 63, 83,127,220,171, 60, 40,166, 54,156,159, 1,218,169,115, + 98,181, 3,144,159,148,148,148, 58,108,200, 64, 97,114,194,139, 12, 81, 65,186,160, 48, 55, 69,144,242,246,121,198,146,133,243, +132,169,169,169, 41, 40,205,165,213, 46, 61, 61, 93,179,140, 46,152, 55,108,216,176,159, 38, 77,154, 68, 71, 71, 71, 3, 0, 34, + 35, 35, 49,110,220, 56,122,204,152, 49,219, 0, 44,170, 69,191, 69, 98,177,184,156, 53, 68,174,162,202,134,252, 10, 11, 11,145, +158,158, 14,153, 76,166,179, 34,126,117,121,211,203,188,164,199, 10, 79, 87, 19,120,186,154,192,195,197, 24,132,178,184, 76,100, +101,103,103,107,222,156, 37,122,244,179, 80, 42,149,150,235,167,246,208,100, 97, 97, 33, 50, 50, 50,160, 82,169,170,122,144, 81, +105,105,105,151, 79,156, 56, 81, 4, 0, 63,254,248, 99, 30, 65, 16,127, 18, 4,241, 83, 37,159, 61, 76, 38,243,174,166,237,166, + 77,155,242,240,254,144,216,223,137,175,188,189,189,243, 23, 47, 94,188,115,246,236,217,216,179,103, 15, 4, 2,193, 34,252,149, +139,135,202,201,201, 89,176,107,215, 46,140, 31, 63, 30,203,151, 47,223,212,170, 85,171, 66, 0,163,170, 34,180,179,179,115,102, + 50,153,136,138,138, 42, 4,240,166,134,245,103, 68, 69, 69,101, 18, 4, 1, 62,159,239, 86, 93, 67,107,107,235,134,102,102,102, + 72, 75, 75, 3,212,111,204,149, 32, 41, 61, 61,157,230,112, 56,112,114,114,106, 84,211,198, 91, 89, 89, 45, 56,112,224, 0,243, +197,139, 23,232,222,189,123,234,173, 91,183,122, 2,208,132,164, 71, 69, 70, 70,250,118,235,214,237,229,213,171, 87,177,113,227, + 70,162, 69,139, 22,211,106,226,116,117,117,157, 58, 97,194, 4, 4, 7, 7, 99,239,222,189,211, 0,156,170,208,228,216,174, 93, +187,102,237,221,187, 23, 19, 39, 78, 68,253,250,245, 71, 85,199,151,156,156,188,208,207,207, 47,242,213,171, 87, 58, 85, 60,208, +177,125, 55, 31, 31,159,134, 98,177, 24,135, 14, 29,122,211,176, 97,195, 71,167, 78,157,154,135,247, 31,216,191,159, 62,125, 26, +163, 71,143, 70,139, 22, 45, 14, 1, 24,169,203,101, 25, 27, 27,155,114,253,250,117,138,205,102,227,127,236,157,119,120, 20, 85, +219,198,239,217,222,119,211, 59, 9,161,165,210, 2,132, 94, 2, 33, 8,132, 80, 68, 17, 65, 84, 20,145, 34, 10, 40, 22,192, 6, +130,116, 65,164,136,133, 23, 1, 65,145, 22,154,128,130,116, 18, 32, 36,144, 4, 72,175,155, 94, 54,219,119,230,124,127,144, 96, +136, 41,187, 9,126,130,206,239,186,230,218,228,204,206,189,103,218,217,123,159,115,206, 51, 62, 62, 62,136,140,140,196,243,207, + 63,143,206,157, 59,195,100, 50, 97,223,190,125, 76,124,124,124,182,209,104,180, 42,151, 82,241,157,223, 15,165,165, 37,159,191, +118,249,172,153,199,229,192,219,221, 1, 99,195,187,226,149,241,125,209, 45,192, 19, 25, 5, 58,156, 62,253,171, 57, 45, 45,229, +162, 53, 51, 14,107, 52, 19,111,197, 93, 72,184,118,206,194,231, 81, 8,240,239,128,133,239,191, 99,191,244,195, 5,118, 29,218, +122, 35, 46,181, 28,191,158, 56,106,206,205,206,250,237,159,154,113,120, 6, 16,200, 69,148,140,203,225,128,230,136,170,184,213, + 19,105, 58, 6, 5,249,185,186,185, 33, 58, 58, 26, 28, 27,102,132,158, 1, 4,114,249,253, 94,112,141, 70,131, 26,189,118,254, +254,254,222, 62, 62, 56, 18, 29, 13, 46,195,220, 30,104, 99,130,209,164,251,221,208, 15,116, 41, 64, 63,163, 21, 20,237, 90,185, +248,219,171,100,184, 28,119, 23, 6, 51,185,242, 67, 41,254,209,124,100,127, 35,211,208,204,174,195,149,155, 55,111, 14,221,182, +109,219,208,185,115,231,202,167, 76,153, 2,177, 88, 12,173, 86, 11, 47, 47, 47,208, 52,141, 99,199,142, 33, 38, 38, 70,195, 48, +204,175,248,107,218,128,112,212,154,165,113, 60, 5,146,251,126, 75, 27,122,224,153,103, 30,137, 38, 0,200,239, 50,202,226,214, +198, 29,235,247,158, 27,183,243,248, 53,234,205,137, 3, 57,221,252, 91, 1, 0, 92, 93, 93,161, 84, 42,109,214,124, 4,252,237, +154,181,187,117,243,243,243,147,242,243,243, 11, 94,125,245,213,128,154,129,239, 34,145, 72, 95, 29,201, 42,173,111, 27, 43,234, +105, 2, 48, 99,219,182,109, 7,203,203,203,143,191,253,246,219, 88,186,116, 41, 14, 29, 58,212, 31,192,249,102,238, 59, 93, 90, + 90, 90,118,229,202, 21,215,246,129, 33,104,227,194,199,128, 69,119, 64, 8,129,163,148,160,178,172, 4,215,175, 95, 67,101,101, +229,101, 91,234,105, 50,153,202, 10, 10, 10,156, 92, 92, 92, 80, 82, 82,130,162,162,162, 7, 38,171,180,180, 20, 37, 37, 37,132, +162,254,146,179,165, 49,205,170,130,130, 2,109, 98, 98,162,208,181, 85,123,180,117, 17,160,231,251, 73, 0, 33,240,118,224,160, +178,162, 12, 23, 47, 94, 68,121,121,249,239, 13,105, 50, 12, 51,111,210,164, 73, 92, 0, 47,188,253,246,219, 14, 0,186,188,243, +206, 59,191,162,206,204, 66, 30,143,183,118,199,142, 29, 29,107,186, 24, 23, 44, 88,176, 6,192,182,255,175,107,201,209,209,113, + 94,116,116,180,194,100, 50, 97,253,250,245, 88,179,102,205, 55,248,107,162,202,232, 47,191,252,114, 35,135,195,153, 57,107,214, + 44,188,246,218,107,210,238,221,187,207,205,203,203,251,161, 62,205,156,156,156,133,221,186,117, 91, 92, 80, 80,240,153, 85,102, +249,206,157,105,221,186,117, 91, 88, 80, 80,176,162,177,115, 36,147,201,100, 52, 77, 35, 45, 45,173, 20,104,112,124,135, 62, 45, + 45, 45,135,166,105, 47,169, 84,234,208,212,245, 89, 90, 90,250, 89,247,238,221, 63, 82,171,213, 39, 0, 44,169,199,144,223,200, +203,203, 11,158, 51,103,206,236,229,203,151,143,203,207,207,223,221,148,102, 70, 70,198,103, 97, 97, 97,139,146,147,147,191, 71, +195, 93,192, 95,126,252,241,199,166, 29, 59,118,188,158,150,150,182,172, 9,205,195, 69, 69, 69,135,109, 56,191, 13,189,255,129, + 38,151,203,125,103,249,242,229,156,205,155, 55,131, 16,178,138,166,233,134,234, 25,183,127,255,254,237,125,251,246,157,178,119, +239, 94,113,112,112,240,107, 6,131, 97, 87, 83,215,167, 86,171,221,183,119,239,222,113,113,113,113, 94, 83,166, 76, 17,251,249, +249,193,100, 50, 33, 47, 47, 15,155, 55,111,214,199,199,199,103,151,149,149,237,179,165, 13,177, 24, 43, 38, 94, 56,125, 96, 87, +250,157,248,222,131,158, 26,109,111, 52,121, 65, 84,204, 69, 89,113, 62,142, 29,222, 87,154,150,150,114, 81,171, 45,155,104,139, +166,201, 80,254,220,197,223, 14,238,206, 78, 75,236, 53, 32,108,132,189,222,232, 3,145,128,131, 98,117, 14,142, 69, 31, 40, 73, + 75, 75,253, 67,111, 54,188,248, 79,181,243, 92, 95, 44,225,230,199,188, 58,125, 84, 87, 72,236,189,174,243,129,245,125, 1,137, +147,171,171,160,250,222,129,252,254,152, 71,171, 52,213,128,176,125,117, 47,149, 86,171, 5, 31, 48,190, 4,240,157,157,157, 37, + 0,144,156,156, 12,233,253, 94, 13,155,234,169, 1,100,210, 90,186, 28, 64, 91,204,131,103, 59,165,140, 2,128,236,252, 98, 24, +205,141,126,111, 60,233,108,173,101,184,182, 54, 71, 64, 0, 32, 92, 46,151, 47, 93,188,120,241,170,203,151, 47,175,138,140,140, + 92, 37, 18,137,150, 86, 31,108, 65, 35, 39,226,255, 77,179,135, 7, 28,194,218, 82,103, 35,218, 81,204,244,254,246,244,139, 61, +101,198,193,131, 7,111,108, 97, 61, 91,114,179,252,157,154, 7,204,102, 51,193,253,110,187, 3,104,184, 75,240,189, 90,235,243, + 51, 51, 51, 73,245,223,182,212,211,105,194,132, 9, 76,101,101, 37,121,246,217,103, 9,154,126,132, 79,163,154, 34,145, 40,108, +192,128, 1,102,117, 97, 9, 73, 74,205, 33,151, 98,111,145,227,167, 47,144,221,251,162,201,134,141, 91, 72,231,206,157,141, 0, +124,108,209,228,241,120,131,195,194,194,138,213,106, 53, 73, 76, 76, 36,103,207,158, 37, 63,253,244, 19,217,178,101, 11,217,180, +105, 19,105,213,170,149, 26,128,171, 45,154, 18,137,100,244,240,225,195,205,101, 21, 90,146,150, 83, 76,110, 38,166,145,243, 87, +110,146, 99,167,207,147, 31,118,237, 37, 65, 65, 65,122, 43, 52,185, 92, 46,119,195,238,221,187, 43, 8, 33,100,244,232,209,217, +120, 56,145,106,155,121,243,230, 21, 16, 66,200,138, 21, 43,138, 81,255, 64,248,191,251, 90,122,202,211,211, 51, 73, 32, 16, 68, + 3,120,161,137,237,158,227,241,120,135,220,220,220,174, 2, 24,251, 15,220, 71,145, 46, 46, 46,151, 0, 52,245,132,131,154,247, +141,249,151,220,239,127,135,230, 96, 30,143,119, 22,104,252, 33,194,181,218,235, 79,185, 92,238, 17, 0, 67,108,172,103, 7, 39, + 39,167,103,237,237,237,223,180,183,183,127,211,197,197,229, 89,161, 80,216,161, 37,251,238,216, 33,124,148,119, 72,212,254, 86, + 93, 70,102,120,119,141,204,240,237, 54,122,191, 99,135,240, 81, 45,213,244,233, 54,250,128,119,215,200, 76,239,174,163,210,219, +244, 24,189,223,201, 63,124,248, 63,121,142, 94,240,132,199,208, 54,176,144,179,139, 8, 57,187,136,132,183, 1,211,219, 14, 65, +161,128, 98, 88,120,248,106, 66,211,171,199,141, 25,179,186, 61,224, 72, 0,110,221,165, 62,205, 16, 64,249, 96,219,209,163, 87, +183, 5,156,134, 2,210,129,253,251,175, 34, 52,189,122,210,115,207,173,246, 6,220,234,211,107, 72,147, 0, 92, 79,192,163,182, +174, 19,208,110,188, 47,130,223, 27,229, 75,200,217, 69,228,227,103,252, 72, 55, 87,188,208,132,102, 67,145,162, 39, 54,162, 85, +223, 88,241,166,144, 85, 55,174,203,170, 95,101,143,224, 34,124,228,154,189,220,225, 23,222,142, 74, 28,225,207, 43,193,253, 41, +201,178,127, 97, 35,249,189,209,104, 36,122,189,158,104,181, 90,162,209,104,234, 26,168, 7,134, 44, 55, 55,151,100,103,103,147, +204,204, 76,146,158,158, 78,240,231,216, 27,171,235,169, 84, 42,183, 61,243,204, 51, 52,159,207,223,240, 40,246,221,193,193, 97, + 89,207,158, 61, 77, 95,124,241, 5,217,191,127, 63,249,250,235,175,201,172, 89,179, 72,199,142, 29, 13,118,118,118, 19,155,163, +233,230,230,182,208,223,223,191,248,155,111,190, 33, 63,252,240, 3, 89,183,110, 29,249,224,131, 15,104, 47, 47,175,124,133, 66, + 49,172, 57,154, 46, 46, 46, 91,251,245,235,103,218,186,117, 43,249,245,215, 95,201,206,157, 59,201,188,121,243, 72, 64, 64,128, + 65, 38,147, 61,109,165, 38,151,199,227,173,158, 62,125,122,190,135,135, 71,116,157,117,210,160,160,160,171,147, 38, 77,202, 5, +176,224, 95,116,125,178,154,172, 38,171,249, 55, 24,173,231, 61,224, 73, 0,174, 84, 32,120,110, 96,255,254,171, 4,192,115,182, +154, 34, 49,151, 59,190,111,207,158,171, 4,192,196,154,247,138,185,220,241, 3,251,247, 95,197,231,114, 39, 55,164,215,152, 38, + 1,184, 2, 30,111, 65,223,222,189, 87,243,128,247,107,202, 6,183,161,110,207,123,170, 21,233,239, 67,221,157,236, 2,233,191, +216,104,213, 75,115,140,214,131, 0,194,223,112, 17, 62, 41,154,143,203, 77,221,190,218, 48, 29,176, 33,162,117, 0,247,159,162, +222,190,153,245,148, 60,226,125,239,228,228,228,116,180,125,251,246,133,173, 91,183,206,181,183,183,223, 5,192,171,133,154,193, +110,110,110,255,115,117,117,189,227,238,238, 30,231,228,228,180, 22,247,179,206, 55, 91,147,207,231,247,116,117,117,253,221,215, +215,183,204,199,199, 71,237,228,228,180,187,158, 72,150, 53,154,238,168,191, 81, 17, 84,175, 99,191,116, 88, 77, 86,147,213,124, +200,192, 68,180,197,242,161,109, 96, 25,218, 6,116,132, 47,214,214, 54, 40,145,128,164,185,166,232, 69, 64, 84,247,253, 77,233, + 53,165, 73, 0,110, 31, 64, 94,119,155, 17, 94, 8,178, 82,243, 73,143,104,213,180,243, 15, 69,180,120,205, 20,180,252, 13,149, +124, 82, 52, 31, 23,238,162,145,193,200,181, 88,246, 8, 63, 83,247,136,247,225,102, 81, 81,209,240,162,162, 71, 58, 55, 33, 33, + 63, 63,255,133, 71, 41,104, 54,155, 47,171,213,234, 65,143, 64,170,161,169,215, 38, 88, 57, 45,155,133,133,229,191, 3, 5,208, + 72,193,187,225, 29,176,158, 71,131,115, 44, 21, 57,117,166,228,233,168,230,104,222,135,254,190,158, 54,158,106,110, 61,255, 68, +243, 23,141,108,220,162,254, 59,167, 45, 15,247,199,104, 89,159, 71,139,133,133,133,133,133,133,229,159,227,228, 29,246,135,216, + 19, 64, 52, 30,142,190, 69,215, 50,162, 13,134, 62,109,153, 73,209,156,240,233, 73, 86,147,213,100, 53, 89, 77, 86,147,213,100, + 53,255,115,154, 53, 52,244,236,212,164, 58,255, 55,107, 22,223,227, 64, 75,198,104,253,157, 6,140,213,100, 53, 89, 77, 86,147, +213,100, 53, 89,205,255,158,230,147, 76,131,179, 14,217,174, 67, 22, 22, 22, 22, 22, 22, 22,150,150,209, 96,212,141, 53, 90, 44, + 44, 44, 44, 44, 44, 44, 44, 45,195, 29,247, 31, 81, 21,141, 63, 31, 85,181, 21,104,250, 17, 60, 15,177,124,249,114, 78,251,246, +237,229, 66,161,176, 99, 74, 74, 10,103,198,140, 25, 45,158, 72,176,106,237, 6,142,143,143,143, 28, 64,199,226,210, 74,206,203, +175,188, 77,177,231,139,133,133,133,133,133,133,229, 9, 98,100,181,177,170,121,125, 16,225,178, 41,162,181,100,201, 18,152,205, +102, 25,128, 9,193,193,193,159,234,245,122,253,158, 61,123,168,234,108,225,205,226,253, 5,243, 96, 50,153,100, 0, 38,184, 56, +217,125, 74,211,180,126,239,161,115,212, 51,163,250, 17,246,188,177,176,176,176,176,176,176, 60, 33, 76,171,243,186,213,102,163, +197,227,241,184, 28, 14,167,173,217,108, 30, 46, 22,139, 79,232,245,250,179, 45, 49, 89, 53,154, 20,135,211,214, 98, 54, 15, 23, +137,196, 39,180,218,170,179,172,201, 98, 97, 97, 97, 97, 97, 97,121,130,176,110,102,228,225,195,135, 27, 52, 56, 66,161,144, 19, + 28, 28,220,207,199,199,231,124, 96, 96,160,209,203,203,235, 39,169, 84, 42,107, 97,197, 56,237,253, 2,250,121,184,187,158,239, +218,214,221,232,226,226,242, 19,159,207,151,177,231,139,133,133,133,133,133,229,191, 73, 99, 94,228, 49,166,102,166,225, 67, 79, +249, 32,132,216, 52, 70,171,139, 90,173,222, 56,102,204,152, 94,115,230,204, 17,112,185,220, 86, 50,153,172,163,147,147,211, 67, + 81,177,151, 94,122,137,178, 73, 51, 63,111,227,210,241, 93,122,157,127,191,135,128,207, 69, 43,153, 76,214, 81,169, 84, 62,164, +233, 61, 87, 77, 0, 0, 32, 0, 73, 68, 65, 84, 57,233,229,215,216,113, 91, 44, 44, 44, 44, 44, 44, 44,143, 43, 53,227,178, 70, +214, 50, 93, 0,154,232, 58,236,209,163,135, 40, 43, 43,171,171, 78,167,115, 17, 8, 4, 11,162,162,162,130,199,141, 27,135,235, +215,175,211,193,193,193, 30,197,197,197,179, 75, 75, 75, 79, 86, 85, 85, 93,103, 24, 38, 88, 36, 18,157,222,181,107,151, 28,192, +157,134, 52, 59,117,233, 46,202,202, 72,125,160, 57,125,252,224,224, 23,230, 14, 7,115,116, 61, 61,184,179,183, 71, 70,145,118, +118, 65,113,249, 73,109,149,230, 58,205,144, 96,145, 72,116,250,135,111,183, 52,170,201,194,194,194,194,194,194,194,242, 15, 82, + 99,172,162, 81,231,145,106, 60,224,126,152, 46, 50, 50,242,161,168,145, 80, 40,252, 42, 57, 57,185,175,131,131, 67, 91, 62,159, + 79, 63,247,220,115,162, 73,147, 38,161,176,176,144,209,104, 52,220,144,144, 16,215,171, 87,175, 14,183, 88, 44,253,237,236,236, +180,101,101,101, 78, 6,131,225, 46,128,217,141, 84,228,171, 59, 73,241,125, 29,237, 29,218, 10,249, 92,122,214,212, 73,162,247, + 23, 60, 5,202, 16,203,208, 5,197,220, 79,187,217,185,174,189, 80, 53, 60,217, 68,247,175, 82,137,181,249,229, 6,107, 52, 89, + 88, 88, 88, 88, 88, 88,158,112,234,243, 34, 79, 16, 77,230,209, 26, 84,221, 39, 90,251,193,185,219,157,157,157,221,228,114,121, +224,180,105,211, 56, 78, 78, 78,136,137,137, 97,170,170,170, 56,124, 62, 31,124, 62,159, 59,120,240, 96,185,197, 98,145, 30, 57, +114,132,186,119,239, 94,161,217,108,254,180,184,184,248,106, 35, 21,217,222,206, 78,228, 38,177, 19, 6, 30,122,123, 0,199,185, +125, 49,112,252, 99,134,104, 10, 56, 60,134,192, 73,198,112, 87,247,167,228,249, 42, 95,233,172,221,133,212, 31,247,202, 10,205, +102,243,167,149,149,149, 87,217, 75,144,133,133,133,133,133,229, 95, 77,125, 94,228, 73,161,118, 30,173,135, 34, 90, 13, 58, 71, + 87, 87, 87, 74,175,215,187,249,250,250, 78,115,118,118,158, 44,149, 74, 93, 7, 12, 24, 32,161,105, 26,132, 16,168, 84, 42,166, +117,235,214,204,174, 93,187, 44,231,206,157,203,126,227,141, 55,198,204,156, 57,243,246,136, 17, 35, 56, 71,142, 28, 97,234,211, +180,179,119,160, 44,218, 10, 55,239,182,129,211, 58, 57,147,201,190, 42,147,235,162, 40,169,132,151, 86, 4,226,196, 3, 92,124, + 25, 78,199, 8,102,217,234, 19,150,175, 79,166,102,191,179,104,217,152,215,167, 78,184, 29, 30, 49,130,115,242, 68,253,154, 44, + 44, 44, 44, 44, 44, 44, 44,255, 48,211,112, 63,170, 85,243, 10,224,254, 96,248, 6,141, 86,223,190,125,169,132,132, 4,202,199, +199, 71, 90, 92, 92, 28, 4, 96,237,252,249,243, 67, 9, 33,180, 68, 34,225, 74, 36, 18,250,183,223,126,211,254,252,243,207,231, +204,102,243, 11, 70,163,177,212,215,215,151, 74, 75, 75,107,112,182, 64,143, 94,189,169, 91,113,215, 41,111,159,182,210,226, 34, +117, 16, 5,178, 54,231,125,143, 80,190,166,148,134,135, 51, 23, 10, 23,122,213,190, 82,237,251,191,220, 56,103, 54,155, 94, 0, + 80,234,229,225, 78,101,231,230,177,233, 30, 88, 88, 88, 88, 88, 88, 88, 30,103,163, 85,151,173,141, 62,235,240,252,249,243, 4, + 0,201,201,201,161,205,102,179,114,224,192,129,246, 92, 46, 23,142,142,142, 92,173, 86,203, 84, 85, 85,113,157,156,156,114,249, +124,254, 15, 85, 85, 85,165, 99,198,140,161,246,239,223,223,168, 33,186,122,233, 34, 1, 64,178,179,179,104,198,172, 87,206,232, +215,218,158,103, 49,129, 9,233,203,213, 84, 82,140, 92,151,198, 13,112, 23,229, 10, 4,252, 31,204,102, 83,233,216,200,145,212, + 47,135,163, 89,147,197,194,194,194,194,194,194,242, 56,211,224, 24,173, 38,211, 59,104,181, 90,123,129, 64, 16, 30, 26, 26,218, +186,170,170,138, 89,178,100, 73,214, 23, 95,124,177,227,238,221,187,102, 59, 59,187,182, 18,137,228,205, 9, 19, 38, 56,237,223, +191,159,244,239,223,191,110,132,172,222,167,123,235,116, 26,123,145,128, 31,254,102, 79, 69,235, 44,147, 61, 19,248,230,149,172, +129,139, 47,236,248, 37,129,103,238,228,160,107,235, 32,164,222,156, 48,225, 89,167, 95, 14, 71,147,222,189,123, 89,165,217, 66, + 88, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,103, 53,159,116,166,161, 78,106, 7,192,138,204,240, 34,145,104,128,183,183, +119,191,132,132, 4,250,226,197,139,229, 28, 14,103,211,136, 17, 35,126,218,183,111, 95, 79, 7, 7, 7,151, 86,173, 90,185,158, + 58,117, 42, 12,192,158, 63,254,248,195,170,232,147, 68, 36, 24,208,213, 75,213,111,235, 13, 66,127, 27,115,167,156,230,138, 54, + 13,126,250,233,159,222,216,177,179,167,135,147,194,165,171,187,210,245,200,145, 99, 97, 0,246, 92,188,120,137,141,104,177,176, +176,176,176,176,176, 60,238, 38,107,107,125,255, 55, 26,209, 18, 10,133,158, 92, 46, 55, 40, 59, 59, 59,227,200,145, 35, 9, 61, +122,244, 24,158,145,145,177,156, 16,146, 46,149, 74,167,101,101,101,221,201,202,202, 50,234,116,186,233, 54, 84,198, 19, 28, 65, + 80, 76,174, 46,227,243, 83,183, 18, 58,245, 30, 54, 60, 63, 63,119, 57, 77, 72,186, 80,170,156,150,156, 89,120,231, 82,129,193, +168,215,219,164,201,194,194,194,194,194,194,194,242,216,209, 84, 68,203, 68,211,244, 74,131,193, 96,255,203, 47,191,228, 68, 68, + 68, 24, 0,224,171,175,190, 98,166, 78,157,122, 46, 37, 37,101,200,237,219,183,135,187,185,185,157, 6, 64,165,166,166, 90, 19, +125, 50, 49, 12,189,210,104, 52,216,159,250, 45, 54,103, 64,191, 78, 6, 0,216,252,229,122,230,185,105,115,206,165, 36, 38, 12, + 73,142,191, 54,220,205,205,237, 52,109,225, 81,121,249,233,108, 68,139,133,133,133,133,133,133,229,113,166,102,198, 97,237,255, +155, 54, 90, 70,163,177,208,104, 52, 2, 64,105, 68, 68,196, 67,235,190,249,230, 27, 2,160, 10,192,222,226,226, 98, 91, 42, 83, +168,211,233, 0,160,116, 64,191, 78, 15,173,216,189,245,139, 7,154,154,202, 10,246,180,177,176,176,176,176,176,176, 60, 73,102, +235, 47,112,216,227,194,194,194,194,194,194,194,194,210, 34,166, 53,244, 63,133,134,103, 14,156,180,225, 3,154, 51,251,224, 36, +171,201,106,178,154,172, 38,171,201,106,178,154,255, 57,205,166,180, 79,226,201,163,222,193,240,132,252,253,163,159,216,169,175, +172, 38,171,201,106,178,154,172, 38,171,201,106,254,219,113,199,195,233, 29,220,129,251,153,225,121,236,177, 97, 97,121,178, 33, +123,193, 69,169,191, 47, 8,241, 0, 87,152,135,188,155, 41,212, 71, 96, 90,172,169, 14,242,129,196,236, 10,139,184, 16,234,184, +212,150,106,178,176,176,252,251,112,235, 51, 99, 44,197,225,110,162, 8, 3,157, 58, 81, 36,208,165, 75, 11,242, 50,254,139,222, + 34, 15, 13,140,209, 98,141, 22, 11,203,147, 78, 97,128, 31,120, 88, 6, 14,220, 65, 76,247,224, 28,180, 12,184, 21,223, 98, 77, + 1,179, 4, 52,199, 11,196,148, 12, 23,255,229, 64,210, 45,246, 96,255,251,152, 61,235,117,114, 59,254, 50, 50, 51,115,209,182, +157, 59,252, 2,250,224,139,245, 27, 41,246,200,176, 88,247,171,140,218, 26, 62,106,146,131, 68,170, 0, 0, 48, 22, 51,190,153, +219,245, 87,139,197,178, 29,192,126, 0,186,255,250, 33,250,127, 31, 12,207,231,243,213, 0, 24,177, 88,188, 15,213,161, 53, 22, +150,191, 9,247,234,235,140,169,190,238,108, 65,206,227,241, 22, 75,165,210,223, 68, 34, 81,129, 72, 36, 42,144,201,100,191,241, +120,188,197, 0,228,143, 77, 27,247,191,142, 82,112,232,225, 70, 51,227,121,236,102,153,139,214, 64,251,129, 99, 25, 65,190,233, + 32,111,145, 38,143,138,208,155, 24,239, 31,174,104, 93,171,140,150, 64, 16,180, 72,179, 22,118, 2,129,224, 24, 0, 39,246,242, +124, 60,200, 72,141,199,145,195,171,177,228,147, 41,248,110,235,116, 36,221,190,212, 34,189, 64,160,123,119, 30,111,126, 0, 48, + 24, 0,107,216,254,237, 80,100,218,201, 67, 63, 20, 30,218,245,101,225,143,171,167,147, 3,203, 34,177,126,253,250,240, 41, 83, +166,252,224,237,237, 93, 8,224, 25,214,104,253, 63, 99, 54,155, 93,138,138,138,168,237,219,183, 71,169, 84,170,123, 60, 30,239, + 61, 0,130,255,202, 1,151,203,229, 23,148, 74,165, 90,165, 82,169,149, 74,229,181,166,202,255,165,248, 57, 59, 59,103, 56, 56, + 56, 36,215, 46,116,238, 60,182, 79,251,190, 47,124,232, 24, 52,122, 96, 11,245, 5, 60, 30,239, 61,149, 74,117,111,251,246,237, + 81, 57, 57, 57,148,217,108,118,177, 97,251, 1,246,246,246,183, 47, 95,190,188,168,168,168,104, 96,214,165,111,156,243, 47,111, +113,206,248,125,245,160,152, 35, 27, 22,217,217,169,110, 1, 24,240, 88, 28, 73, 61,227, 10, 14, 55, 44, 33, 79, 43,205,171, 48, +187,198,166,107, 21, 0,119, 16,140, 45,248, 17, 83,206,184, 2,100,240,141,108,157,236, 66,137,179,235, 31, 41, 6, 37, 56,156, + 48,232, 41,183, 22, 55, 56, 28,206,235, 12,195, 12, 21, 8, 4,111,178,223, 80,143, 7, 34,145, 0, 32, 4,114,153, 24, 0, 1, +167,133,214, 72,200,225,244,189, 16, 21,181,100, 65,231,206,179, 3,128, 81, 13,152, 45, 10,192, 27, 1, 1, 1, 71, 1, 60,247, + 8,119,231,115,127,127,255, 28, 0,115, 30, 85,187,212,173, 91,183, 62, 97, 97, 97, 31,118,237,218,117,224,163,210,252, 55,145, +127,225,171, 95,242,206,109,112,201, 61,191,209,165, 44,245,236, 27,238,174,246, 76,106,106, 42, 70,142, 28,137, 47,191,252, 82, + 26, 28, 28,188, 3,128,199,127,224, 86, 10,169,249,129,143, 90, 99,180,108, 50, 90,227,125,209,119, 98, 27,156,121,214, 23,149, + 19,218, 64, 51,185, 13,206, 61,237,139,193,205,169,141,163,163, 35, 6, 12, 24,192,205,201,201,145,204,155, 55,239, 67,177, 88, +156, 6, 96, 88,115,180, 36, 18, 73,140, 84, 42,205,226,241,120, 15,213, 69, 42,149,198,200,100,178, 44, 30,143, 55,164,118,185, + 66,161,184,160, 84, 42,213, 10,133,226, 90, 3, 70, 40, 70,169, 84,170,229,114,121, 76,237,114, 30,143, 55, 68, 46,151,103, 43, + 20,138,186,229,131, 21, 10, 69, 86,221,242,134,224,243,249, 94, 89, 89, 89, 46,217,217,217, 46, 66,161,208,181,118,121,102,102, +166, 75, 86, 86,214, 67,229,182,192,227,241, 6,203,100,178, 44,169, 84, 26, 83, 95,121,221,125,106,136, 90,199,110,176, 53,229, +182, 54, 60, 17, 17, 17,231,242,242,242,188,237,236,236,236,106,175,112, 80,217, 13,251,223, 55, 27,231,142, 30, 17,241,186,115, +224,152, 78,205,212, 31, 38, 22,139,211,230,205,155,247, 97, 78, 78,142,164,119,239,222, 92, 14,199,166,223, 19,225,163, 71,143, + 62,160, 86,171, 61,187,116,233,194,181, 88, 44, 72, 56,184, 24,210,184, 55, 33, 78,219,140, 86,146, 66,222,189, 95,151,123, 69, + 12,234,126, 0,255,240, 96, 80,178, 55, 80, 0,138, 25,192, 16,226,124, 59, 71,239, 60, 50,234, 25,222,245, 44,157,179,153,166, + 29, 0,238, 32,242,157,143,168, 89,154, 60,115,127,134, 16,215, 83,233,124,231,176,103,103,115, 79,167,243,156,205, 52,237, 8, + 14, 6, 54, 71,179,246,229,207,229,114,231,174, 94,189,154, 3, 96, 22, 0,225,127,201,208,132,122,192,115,112, 59,238,149, 16, +119,244,125,132,178,193,213,247,187, 95, 75,133,182,125,119, 20, 83, 95,219,138, 14, 1,189, 90,164, 99,100,152,164,221,169,169, +199, 39,183,107, 23,185,160,115,231,151,234, 49, 91, 20,128, 5,203,151, 47,127, 33, 33, 33,193,185, 77,155, 54,175, 61,162, 31, +253,235,150, 47, 95,254, 78, 66, 66,130,135,175,175,239,199, 54,106, 54,216, 46,217,219,219, 15,219,182,109,219,220,145, 35, 71, +190,222,173, 91,183, 78,143, 66,243, 95,204,151, 55,110,220,240, 94,189,122,245,187, 83,167, 78,173, 0,128, 33, 67,134, 8, 0, +244,110,113,123, 71,136,144, 16, 18, 70, 8, 25, 73, 8, 25, 66, 8, 9,173,254,187, 71,245, 50,146, 16, 18, 94,231,181, 71,245, +182, 53,235,123, 54,160, 49,178,238,118,181,182,169,251,255, 67,127,215, 99,180, 70,226,254, 88,173,145, 15,237,192,225,195,135, + 73,237,215,186, 76,240,197, 71,179,251,120,106,111, 31,218, 73, 52, 89,169,164, 52,241, 58,185,190,245, 51, 50,187,135,179,246, +249, 54,248,220,246,227, 69,200,249,243,231, 73, 66, 66, 2,209,104, 52,228,206,157, 59,164,103,207,158, 58,169, 84,122, 10,128, +175, 45, 98, 10,133, 66,125,234,212, 41, 18, 17, 17, 81, 46,151,203, 87,213,220, 92, 74,165, 82,125,254,252,121, 18, 17, 17, 81, +174, 80, 40,214, 1,224, 2,192,211, 79, 63, 93, 64, 8, 33,206,206,206,185,245,233,141, 30, 61,186,148, 16, 66, 84, 42, 85, 77, + 87, 19, 87,161, 80,172,155, 57,115,166,230,234,213,171,196,222,222,190,166,156,163, 84, 42, 87,205,154, 53, 75, 19, 27, 27, 91, +187,188, 81, 28, 28, 28,178,104,154, 38,135, 14, 29, 34, 46, 46, 46,185,181,110,230, 44,154,166,201,129, 3, 7, 26,172, 91, 99, +129, 2,185, 92,190,114,242,228,201,149,233,233,233,196,209,209, 81, 93,171,124,213,148, 41, 83, 42, 51, 51, 51,137,147,147,147, + 85,117,116,116,116, 84, 95,184,112,129,140, 27, 55,174,162,246, 49,117,116,116, 84, 95,188,120,177,166,124,165, 53, 13,153,135, +135,199,107, 46, 46, 46,185, 46, 46, 46,185,118,118,118, 75,221,221,221,243, 11, 11, 11, 9, 33,132,180,109,219,182,160,118, 36, +203, 37, 56,234,173,205,123, 47, 94, 62, 27, 95, 92,216,121,232,235, 43, 85,157, 71,171,108, 56, 6,190, 82,169,244,212,192,129, + 3,117, 89, 89, 89,164,170,170,138,196,197,197,145,243,231,207,147,187,119,239, 18, 0,214,204,177, 85,200,229,242, 28,131,193, +192, 24, 12, 6,166,176,176,144, 46, 40, 40,160, 19, 87,185, 19,242, 45,255,193, 82,118, 96, 20,201, 63,187,140, 81,202,165,217, + 0, 20,255,152,209,218, 24,228, 69,182,248,239,190,181,216, 59,241,236,242,167,204, 36,253, 52,217,249,146,179,249,204, 91,158, +247,200,166,128,159,201,150,192, 86,205,210,220, 20,184, 51,238, 3,239,164, 13, 31,191, 97,206,200,200, 32,243,167, 60,101, 57, + 49,219, 51,133,108, 14,216,219, 28,205, 90, 76, 28, 59,118,172, 38, 51, 51,147, 4, 5, 5, 85,113,185,220,169,255, 37,147, 21, +238, 39,204,137,251, 97, 62, 51, 42, 88, 90,252,136,204, 86,176,139,139, 75,209,247,223,127, 79, 20, 10, 69, 65,115,205,214,248, + 49,131,136,174,252, 20, 25, 19, 25,218,232, 61,242,236,179,207,146,176,176, 48, 50,123,246,236,166,238, 37, 42, 0,136,218,222, +185,243, 1,102,252,120,122,123,231,206, 7, 2,128,168,106,131, 69, 1,120,119,197,138, 21,177,102,179, 57,246,187,239,190,139, +141,138,138,138, 5, 48,191,133,199,226,139,207, 63,255,156,152,205,102,242,221,119,223,145,168,168, 40, 2, 96,125, 75,218,165, +154, 72, 86, 72, 72,200, 91,251,247,239,191,156,148,148, 84, 24, 25, 25,185,178,115,231,206,170,230,106, 62,142,200,229,242,246, +157, 58,117,218, 17, 20, 20,148,217,165, 75, 23, 99, 96, 96,160,222,207,207, 47, 61, 56, 56,248,123,145, 72,228,219, 76,217, 94, +125,251,246,165,207,156, 57, 67,198,142, 29, 75,106,153,144, 70,105,204,139, 16, 66, 66,223,125,247,221,247, 0,144,119,223,125, +247, 61, 66,200,200,106, 63, 49,178,246,223,117, 95,107,204, 83,205,255,245,105,212, 44,245,105,214,247, 25,117, 62, 7, 13, 68, +178,166, 85,215,251,207,157, 59,124,248,240,192,195,135, 15,159,169,187,115,207,180, 65,159,217,125, 60,117,186,194, 60, 18,255, +217,155,228,183, 48, 47,114,126,144, 27, 73,158, 59,150,228,253,176,142,204,232,106,175, 29,223, 6, 97,182, 26,173,216,216, 88, + 18, 27, 27, 75,174, 93,187, 70,210,210,210, 72,121,121, 57,249,241,199, 31,105, 71, 71, 71,157, 72, 36, 90, 14, 64, 98,141,152, + 82,169, 84, 19, 66,136,193, 96, 32, 75,151, 46,213, 87, 71,170, 92, 85, 42,149,154, 16, 66,202,202,202,200,242,229,203,245, 42, +149, 42, 14,128,135,147,147, 83, 86,106,106, 42,113,117,117,173,215,204,216,219,219,171,147,146,146,106,140,147,167,189,189,125, +252,193,131, 7, 77,132, 16,146,157,157, 77, 28, 28, 28,212, 0, 92, 29, 29, 29,175, 31, 62,124,216, 68, 8, 33,185,185,185, 53, +229, 86, 25, 45,157, 78, 71, 78,156, 56,241, 80, 29,106,202,143, 30, 61,250,144, 1,179, 2, 87,149, 74, 21,251,227,143, 63, 26, +105,154, 38,241,241,241, 53, 38,209,213,206,206,238,218,222,189,123,141, 52, 77,147,196,196, 68,171,205, 96,235,214,173, 11, 8, + 33,196, 98,177,144,205,155, 55, 27,106,142,105, 77,185,209,104, 36, 95,125,245,149, 65,169, 84,198, 2,104, 52,250,230,228,228, +148,107, 52, 26, 73, 89, 89, 25,233,217,179,167,230,252,249,243,164,162,162,130, 16, 66, 72,235,214,173, 11, 0,192,127,224,212, + 79, 47,223,209, 84,188,252,206,198, 61,190,161,207,127,118,252, 74, 78,246,182,253, 49,177, 78,193,163,159,178, 38,168, 41, 18, +137,150,187,187,187,235,255,248,227, 15,218,100, 50,145,204,204, 76,114,237,218,181, 7,215,216,205,155, 55,173, 50, 90, 60, 30, +111,241,229,203,151, 77, 52, 77, 51, 69, 69, 69,116, 65, 65, 1, 93, 80, 80, 96,169,107,180,200,183,124, 82,116,244, 85, 18,189, +117,142, 81, 32, 16, 44,254,103,162, 89,224,146, 45,254,163,201, 22,255,216,239, 39, 59, 21, 85, 94,219, 69,200,175,115, 72,202, +167,109,200,226,167, 20,149,204, 22,255, 88,178, 37, 96, 60,249,104, 32,207, 38,205,173,129,163,200, 22,255,216,207,159,241, 41, +190, 30,123,149,156, 57,115,134,124,181,110, 5,153, 29,238, 89,197,108,241,143, 37,155, 2,199,217,162, 89, 27,145, 72,116,231, +220,185,115,228,236,217,179,228,227,143, 63, 38, 82,169, 52,243, 81, 68,245,200, 38, 63, 31,242,181,223, 64,242, 77, 7,119,242, +251,192,199,110,130, 79,168, 7, 60,135,250, 9,179,139,174,239, 39,164,228, 46,201, 95, 21, 68,158,242,231,183,212,108, 5,187, +184,184, 20,166,167,167,147,252,252,124,178,102,205, 26,162, 84, 42,155,101,182,198,143, 25, 68,116,101, 39, 27, 53, 90,163, 71, +143, 38,107,215,174, 37,102,179,153,244,234,213,203,154, 31, 45,127, 49, 91,254,192,104, 0,239,173, 92,185,242,129,201,218,184, +113, 99,236,205,155, 55, 99,189,189,189,143,180,224, 88,172, 95,185,114,229, 3,147,181,113,227, 70,114,243,230, 77,226,227,227, +147,213,146,118,105,232,208,161,159,166,165,165, 85, 44, 92,184,112,207,128, 1, 3, 62,187,126,253,122,118,116,116,116,108, 72, + 72,200, 83,205,213,124, 4, 81, 29, 94,117,100, 71, 72, 8,225, 19, 66,106,204, 43, 15, 0,191, 38,160, 96, 13,147, 39, 79,150, +246,233,211, 39,118,210,164, 73,218,239,191,255,158,164,167,167,147,184,184, 56,178,114,229, 74,242,225,135, 31,146,111,191,253, +150,140, 27, 55,174,170,103,207,158,151,199,143, 31, 47,182,161,154, 65,190,190,190,229, 7, 14, 28, 32, 59,119,238, 36, 2,129, + 32,218,218, 13, 27,243, 34, 13,153,169,134, 12, 86,221,117,141, 24,177, 70, 13,155, 21,159,247,192, 84, 53,112,206, 30,138, 72, +252, 30, 25, 25, 57,240, 47, 95, 62, 4,159, 76,155,247,169, 56,237,251, 53, 80,255,248, 37,184,101,106,240, 43,139, 97, 56, 23, + 13,243,185,131,120,161,119,111,137,132,162,150,216,122,193, 8,133, 66, 8,133, 66, 8, 4, 2,104,181, 90,228,230,230,162, 95, +191,126,156,107,215,174,137, 95,123,237,181, 57, 18,137, 36, 19,192,152, 38,239,102,234,126, 68,250,194,133, 11,120,245,213, 87, + 69, 59,118,236,232,226,236,236,124,131,166,105, 33, 0, 36, 38, 38, 98,194,132, 9,162, 93,187,118,117,244,240,240,184,102, 50, +153,164, 34,145, 8, 92, 46,183, 65, 61,161, 80, 8,179,217, 44,234,208,161, 67,220,141, 27, 55,130, 35, 35, 35,249, 25, 25, 25, + 72, 77, 77,133,217,108, 22,250,249,249,221,188,118,237, 90,151,145, 35, 71,242,179,178,178,144,145,145,241,160, 30,214,212,215, +104, 52, 66, 36, 18,161,118,151, 22, 69, 81, 48, 24, 12, 16, 10,133, 86,107,241,120,188,193, 1, 1, 1, 55,111,220,184, 17, 50, +122,244,104,193,213,171, 87,145,157,157, 13,154,166,133,129,129,129, 55,111,220,184,209, 53, 42, 42, 74, 16, 23, 23, 7,181, 90, + 13,107,187,208,106,222,119,227,198, 13, 76,154, 52, 73,120,236,216,177,174,238,238,238,113, 22,139, 69, 8, 0, 55,111,222,196, +132, 9, 19,132,199,143, 31, 15,105,213,170, 85, 92, 19, 93,137, 92, 0, 48,155,205,120,237,181,215,100, 74,165, 18, 89, 89, 89, + 96, 24, 6, 52, 77, 3, 0,138, 75,139,111,222,184, 25,159,248,194,196,103, 6,234, 76, 6,195,197, 43, 49,183,219,182,246,241, +162, 40,210,186,137,170,142,145,201,100,153,171, 86,173,122, 43, 61, 61, 93, 20, 16, 16,192, 73, 73, 73, 65,101,101, 37, 4, 2, +193,131,107,204,218,253, 22, 10,133,131,130,130,130,120,122,189, 30, 12,195, 0, 0,225,112,234, 31,177, 34, 46, 59,135, 64, 87, + 11, 95, 34,145, 12,250, 71,190,189, 43,130, 28,193, 96,104, 70,161, 81, 36,178,243, 82,200,221,253,128,204,179,104,227, 44, 2, +151,195, 21, 95, 77,213,202, 0, 50, 20,222, 69,142,182,105, 50, 67, 83, 11,140, 34,179, 67, 71,185,135,151, 55,138,139,139,209, +170,109, 0,244, 66,103,225,133,187, 85,114, 80, 54,106,254, 73,255, 14, 29, 58,184,181,111,223, 30, 69, 69, 69, 8, 9, 9,129, +189,189,189, 61,128,161,205,254,210,249,206, 71,132, 10,244, 5, 56,171, 64, 83, 31,195,204, 91,134,187,133, 33,100, 75, 8,255, +113, 50, 89, 74,185,240,210,174,221, 63,122, 58,122, 7, 2,209, 47,195,213, 78,132,111, 94, 15,113,112, 86,137, 14, 52,211,108, + 5,187,186,186,158,190,124,249,178,147, 88, 44,198,181,107,215, 16, 20, 20,132, 53,107,214, 56,219,219,219,159,109, 94,100,139, +128, 80, 13,155,172, 1, 3, 6, 96,214,172, 89,216,177, 99, 7, 28, 28, 28, 48,105,210,164,166,204, 22, 73, 4, 14,125, 30, 23, +247,221,142,123,247, 14, 79,110,215, 46,114,146,159,223,210,233,207, 61, 55,245,141, 55,222,192,138, 21, 43,112,224,192, 1,244, +237,219, 23,211,166, 77, 51,103,102,102,110,111,110, 87,213,170, 85,171,102,207,153, 51,167,174,166, 41, 35, 35,227,243, 22,181, + 75,197,197, 55,227,226,226, 18, 39, 78,156, 56, 80,175,215, 27,174, 92,185,114,219,215,215,215, 11, 64,235,230,106,182,192, 96, + 81,132, 16, 49, 0,105,245, 34, 3, 32,221,181,107,151,106,244,232,209,202,234, 50, 73,245,210,100,247,126, 80, 80,144,215,157, + 59,119,114,230,206,157, 27,178, 99,199, 14,137, 84, 42, 69, 89, 89, 25,190,254,250,107,188,247,222,123,160, 40, 10,132, 16,124, +251,237,183,210,151, 94,122, 41,244,222,189,123, 57, 62, 62, 62,214, 12,105, 17,201,229,242,189, 75,151, 46, 85, 50, 12,131, 5, + 11, 22, 20,153, 76,166, 89,213,235, 22,218,217,217, 93,194,125,195,221, 24,245,122,145, 90,223,149,135,235, 28,155,200,186,101, +117,215, 17, 66, 34, 27,211,176,241, 92,212,247,121,209,141,153,173,218,223, 64,131,234,117,145, 64,103, 55, 95,127,148,255,186, + 23, 18, 30, 5, 9,183,122,225, 81,224,164,220, 68, 43, 49, 31,102, 66,130,155,107,180,106, 22, 62,159, 15,173, 86, 11,154,166, +241,222,123,239,137, 78,156, 56,225,200,225,112,126,110, 74,167,182, 97, 74, 78, 78, 70, 96, 96, 32,117,232,208, 33,215, 89,179, +102, 73,106, 62,167,188,188, 28,237,219,183,167,142, 30, 61,234,242,193, 7, 31,200, 27, 51, 51, 20, 69, 65, 32, 16, 96,206,156, + 57,146, 43, 87,174, 56,120,120,120, 32, 37, 37, 5, 37, 37, 37,144,203,229,152, 51,103,142,228,242,229,203,206, 30, 30, 30, 72, + 79, 79, 71,121,121, 57,228,114,185,205, 70, 75, 32, 16, 60,180, 13, 69, 81, 48,153, 76, 54, 25, 3,149, 74,181, 51, 54, 54,214, + 89,165, 82, 33, 46, 46, 14, 22,139, 5, 42,149, 10,179,103,207,150,196,198,198, 58,219,217,217, 33, 49, 49, 17,132, 16, 40,149, + 74,155,234, 8, 0, 12,195, 32, 49, 49, 17,173, 91,183,198,217,179,103, 93,166, 79,159, 46,174, 41,191,123,247, 46,188,188,188, +112,246,236, 89, 23,153, 76,182,179, 33, 45,134, 97,144,151,151,135,132,132, 4,164,164,164,160,176,176, 16, 69, 69, 69,168,172, +172,132,197, 98, 1, 0, 72, 43, 43,162,119,237, 57,116, 67, 34,145, 72,131,252, 58,120,223,140,191, 85, 32,145, 72,164, 62,222, +222,126,192, 71,156, 70, 12,225,207, 25, 25, 25,142, 47,189,244,146, 32, 63, 63, 31,165,165,165,224,241,120,127,185,182,132, 66, +235,134, 2, 89, 44,150, 64,177, 88, 76,153, 76,166, 7, 17, 48,161, 80,136,183,118,106, 17,180, 24, 15, 45,207,173, 43, 0,161, +205, 48, 26,141,129,255,239,209, 44,128, 2,101,236, 0,138, 10,185,148, 82,229,208, 63,114,162, 0,169,199, 0,198, 12,112,120, + 24,212,217,139,119,224,102,149, 43, 8, 58,195,128, 0, 66,154,158,249, 69, 0, 10, 48,181, 7,168,238, 39,238, 88, 28,251,142, +125, 93,144,147,147, 3,129, 64, 0,145, 72,132,144,193, 79,243,118,221, 48,187,129, 66, 23,152,224,111,141,230, 67, 97, 71,137, +100,209,135, 31,126, 40,171,173, 57,117,234, 84,153, 74,165,250,176,217, 38,171, 74,218, 27, 22, 50, 39, 33, 71,219,122,105,116, +126,224,189, 2,157, 63, 8,153, 11,152,187, 62, 2,179, 53, 72, 36, 18,165, 2,232,215, 34,147,165, 16, 94,220,189,251, 71, 79, +135, 86,247, 77, 22, 44,122,128, 47,129,155,179, 29,190,121, 43,204,193,217, 78, 98,171,217, 10,118,117,117, 61,117,233,210, 37, + 39,177, 88,140,216,216, 88, 8, 4, 2,136,197, 98,116,234,212, 9, 91,182,108,113,118,112,112,176,217,108, 17,144,122, 99,190, + 99,198,140, 33, 3, 6, 12,192,204,153, 51,177,125,251,118, 24,141, 70, 44, 93,186, 20, 25, 25, 25, 86,201, 38, 2,135,150,199, +197,125,191, 44, 33, 33,249,221,224,224,128, 49, 50,153,195,204, 73,147, 84, 31,124,240,193,225,131, 7, 15,126, 55,114,228,200, +162, 43, 87,174,172, 5,176,215,198,195, 75, 1,216,184,122,245,234,153, 53,198,237,131, 15, 62,248,246,224,193,131,203, 70,142, + 28,153,119,229,202,149,185, 0, 54,182,164, 93, 98, 24, 38,250,231,159,127,190, 33,145, 72,164,254,254,254,222,241,241,241, 5, + 18,137, 68,234,237,237,237, 55,112,224, 64, 78,115, 52,155,131,139,139,203,144, 75,151, 46, 5,225,254,164, 49, 81,141,209,138, +143,143,183,171,168,168,176,147,203,229,118,238,238,238,138, 26,179, 53,118,236, 88, 59, 30,143,215,232,117,171,209,104, 14, 46, + 92,184, 80, 53,118,236,216,154,255,113,238,220, 57,108,223,190, 29, 50,153,236,161,247, 70, 69, 69,225,213, 87, 95,181, 55, 26, +141, 63, 91, 81,221, 41,175,189,246,154,191,171,171, 43, 22, 45, 90,100,200,201,201, 25, 2, 32, 3,128, 42, 60, 60,252,211,248, +248,248,158,161,161,161,123, 0,116,107,236,222,171,207,139,212, 54, 58,214,148, 53,247,253,214,154,173, 58, 69, 13,230,208,122, +200,104, 69, 70, 70,158, 65, 3, 51,169, 76, 37,106,136, 64, 67,194,165, 32,229,214, 50, 91, 96,192, 43, 47, 0,213,140, 89, 42, +245,125, 25, 10,133, 66,112,185, 92, 24,141, 70, 88,251,160,234, 26, 83,160, 84, 42, 33,151,203,161,211,233, 96,177, 88, 32, 22, +139,107,204, 8,148, 74, 37,248,124, 62,248,124, 62,196, 98,241, 95,162, 73,117,163, 57, 2,129, 0, 50,153, 12,121,121,121,200, +200,200, 0,195, 48,144,203,229,144,201,100, 16, 10,133,200,205,205, 69,110,110, 46, 8, 33,144,201,100,144,201,100,176,101,192, + 53, 77,211,245,126,249,155,205,102,155, 34, 90, 22,139, 5,183,111,223, 70,102,102, 38,196, 98,241,131,125, 21,137, 68,184,123, +247, 46,242,243,243, 33,149, 74,161, 84, 42,161, 82,169,172,214,173,217, 23,133, 66, 1,137, 68,130,210,210, 82,104,181,218, 7, +199, 84,169, 84, 66, 38,147,161,188,188, 28, 5, 5, 5,141,238, 59, 77,211,200,205,205, 69, 97, 97, 33,178,178,178, 80, 84, 84, +244,160, 1,170,142, 26,181, 44,176, 83, 81,129,226,226,226, 7,145,200,134, 22,107, 96, 24, 6,149,149,149,184,116,233, 18,197, + 48, 12,202,202,202,152,194,252,124,122, 70,174, 16, 7, 62,218, 68,126, 60,118, 93,191,235, 72,172,110,223,169, 4,221,198,125, + 55,117,226,158, 31, 91,240, 79,240, 85,176, 10,102,126, 68,145,198, 44, 42, 52, 9, 84,174,193,225, 64,234, 81,128,195, 3,196, +246,232,213,177, 13, 50, 74,105, 89,146,218, 40, 6,133, 97,216,232,103,111,149, 38,205, 31, 90, 88,105, 22,165,155,156,149,129, +157,187, 65,173, 86, 67, 36, 18, 65, 36, 18,161,123,223,112,164, 22,211,210, 91, 57, 58, 41, 8, 34,172,210,252,147,182,114,185, +188,119,191,126,253,168,218,154, 35, 70,140, 0, 69, 81,157, 0, 4,216,212,200,173,111, 43,132, 73,218, 11, 60, 50,231, 86,158, +214,227, 64,188,222,111,212,152,167, 29,190, 56, 89, 16,120, 59,223,224, 11, 98,158, 7, 98,234,214, 2,179, 53, 80,161, 80, 28, +222,176, 97,131,175, 88, 44, 62, 10,160,127,115, 68,228, 18,238,230, 69, 51, 39,122,218,215,152, 44,179, 22,224, 73, 0,190, 4, +224, 73,224,230,226,132, 37,175, 14,117,144,138,249,251,108, 48,172,187, 54,110,220,232, 92,215,100,213, 44, 33, 33, 33, 88,188, +120,177,179,131,131,195, 78,107,244, 86,173, 92, 65,202,202,203, 1, 2, 84, 84,104,176,106,229,138,210,154,117, 99,199,142, 37, +253,251,247,199,204,153, 51,177,108,217, 50, 28, 57,114, 4,189,122,245,194,180,105,211, 16, 26, 26,218,148,116,132, 74,165,218, + 17, 30, 30,126, 41, 87,161,120, 53,175, 91, 55,225, 41,149,170,124, 72,121,185,202, 39, 62,222,228, 15,220, 4,240, 85,118,118, +246, 83, 54,152,172,231,148, 74,101,236,144, 33, 67, 76, 10,133, 34,115,205,154, 53, 51,102,205,154,133, 21, 43, 86, 96,225,194, +133, 95, 3,120, 5,192,251,217,217,217, 30,141,153,172,191,171, 93,250,187,218, 58,154,166,179,246,238,221, 27,106, 50,153,188, +170,187, 7, 69,101,101,101,202,146,146, 18,133,201,100,146, 49, 12, 35,179,179,179,147, 3,144,190,240,194, 11,188, 91,183,110, + 5, 90, 44,150,156,198, 52,243,243,243,159, 95,176, 96, 65, 81, 81, 81, 17, 0,160, 83,167, 78, 40, 43, 43,195,252,249,243,241, +230,155,247, 39, 4,119,237,218, 21,132, 16,168,213,106,172, 90,181, 74,157,159,159,255,162, 21,213,109,215,161, 67, 7,196,199, +199,227,246,237,219, 39, 1, 48,184, 63,142,181,252,250,245,235, 55, 10, 11, 11,177,115,231, 78,129,167,167,231, 65, 52,144,226, +165, 49, 47,210, 28, 40,138,138,110,206,118, 53,145,171,250, 34, 98, 13,208,120, 68, 43, 50, 50,146,170,253,250, 80,196,136, 66, + 92,102,204, 89, 56, 4,119,123, 40,154, 37,229, 82,144, 40, 85, 72,205,202,128, 0, 84,194,163, 50, 90,165,165,165,152, 49, 99, +134,238,249,231,159, 47,102, 24,230,105,107, 77,129, 74,165,130, 74,165,194,173, 91,183,200,184,113,227,212,107,214,172,209,213, + 54, 90,201,201,201, 36, 34, 34,162,224,195, 15, 63,212, 52,102,180,106, 34, 90,203,151, 47,215, 13, 26, 52,168, 48, 33, 33,129, +212,152, 41,185, 92,142, 85,171, 86,233,194,194,194,212, 87,175, 94, 37, 53,101,182, 68,180, 56, 28,206, 3,163, 85,123, 27, 14, +135, 3,134, 97,108, 50, 90, 85, 85, 85,207,143, 28, 57, 82,157,152,152, 72,106,246, 83,165, 82, 97,205,154, 53,186,161, 67,135, +170, 19, 18, 18, 72, 77,153, 82,169,180,218, 12,214,124,190, 66,161,128, 82,169,196,173, 91,183, 72, 68, 68,132,122,253,250,245, +250,218,229,183,111,223, 38, 81, 81, 81,234,202,202,202,231, 27, 51, 47, 53,221,121, 22,139, 5,122,189, 30, 69, 69, 69,200,202, +202,122, 16, 78,215,201,148, 79, 77,124,118, 84, 23,157, 78,167,189,149,124, 39,179, 83,199, 32, 23,157, 78,167,205,200,204, 76, + 6, 62, 98, 26,209,126, 58, 56, 56,184,120,198,140, 25,186,210,210,210, 22, 27, 45,161, 80,152,200,227,241, 72,255,254,253,137, +209,104, 36, 89, 89, 89,230,162,210, 82, 75,192,103,159,145,132,183,222,162, 36, 49, 49, 34,185, 92, 78, 85,107,114, 82, 82, 82, + 24,137, 68,146,248,255,110,180, 56,140, 27, 40,210,239,143, 59, 26,187,161,163, 38, 8,169,252, 43,128, 73, 3,136,236, 1,145, + 61,120, 50, 71, 12,239,223,149,251,253,165, 10, 55, 16,166, 15, 4, 34,175, 38, 53,249,196, 21, 96,250,255,154,172,183,239, 55, +126,182,176,164,164, 4, 92, 46,247,129, 41,146,202,100, 24, 50,230, 5,206,183, 87, 12,110, 0,233, 11,138,235,101,195,189,254, +206,162, 69,139, 4,165,165,165,224,112, 56,127,106, 74,165,152, 62,125,186, 72,169, 84, 46,180,186,241,219, 27, 40, 0, 95,212, + 11, 32,111, 38,229,235, 61, 14,222,212,249,207, 91,254,141, 36,184,107, 40, 94, 27,228, 34, 89, 30, 93, 16,124, 35, 75,215, 6, +160,223,130,197,216,189, 25,102,171,191, 66,161,136,142,137,137,145,142, 24, 49, 2,171, 86,173,146, 73, 36,146,163,205,105,248, +171, 52,244,172, 79,214,255, 79, 29,183,118, 24, 96,170,186,111,176,106, 45, 5, 26, 6,139,191, 57, 93,110, 54,147,137,214,106, +234,116,186, 41,175,188,242, 74,241,190,125,251,254, 98,178,196, 98, 49,210,210,210,176,116,233,210,146,146,146,146, 38,191, 20, +215,172, 94, 21, 27,127,227, 55,124,251,245, 39, 0, 8, 54,172,121, 29, 23,255,216,109, 55,104,224, 0,210,186,117,107, 18, 26, + 26,138, 25, 51,102, 96,201,146, 37, 72, 74, 74,130,147,147, 19, 94,127,253,117, 12, 28, 56, 16,171, 87,175,110,172,145,138,152, + 53,107,214,210,236,236,108,255, 95,127,253,149, 87, 88, 88,232,178,122,219,182,242,159,202,203, 75,150,197,199, 39,189,223,177, + 99,135,119, 59,119,126,177,145,212, 15,245,154,172,153, 51,103,238,202,206,206, 14, 57,121,242, 36,191,176,176,208,107,230,204, +153, 88,185,114, 37, 22, 46, 92,184, 5,192,107,176,110,194,139,213,237, 18,151,203,125,234,233,167,159,238,162,211,233,180, 73, + 73, 73,153, 29, 59,118,116,209,233,116,218,204,204,204,228, 51,103,206, 48,205,209,108, 14,197,197,197,247,118,238,220,153, 60, +123,246,236,144,236,236,236, 64, 0,142,149,149,149,178,202,202, 74,145,209,104,148,216,219,219,219,119,237,218,213,105,218,180, +105,242,235,215,175, 7,102,103,103,107,170,163, 72, 13, 98, 50,153,146, 74, 75, 75, 35,135, 13, 27, 86, 86, 90, 90,138,206,157, + 59, 99,212,168, 81,112,115,115,131,135,135, 7, 70,143, 30, 13, 63, 63, 63, 20, 23, 23, 99,226,196,137, 37,133,133,133,195, 0, +164, 88, 81,221,123,249,249,249,232,211,167, 15, 62,249,228,147,200,103,158,121, 38,161,127,255,254, 21, 29, 59,118,212,122,121, +121, 5,124,241,197, 23,240,244,244,196,222,189,123,221, 69, 34,209,206,122, 76, 86,131, 94, 4, 64, 97,181,225, 49,214,121, 45, +108, 98,157,181,219,214,251,183, 21,239,171,107,182,106, 47,127,233, 58,172,255,132, 0,139,183,239,253, 94, 47,244,110, 15,149, +127, 23, 72,197, 98, 72,132, 66, 72,236, 29, 97, 96, 24,108, 75,203,215, 86, 17,178,208,214,139,167,238, 23, 33, 69, 81,248,242, +203, 47, 45,189,123,247,214,159, 62,125,122,131, 78,167,243,198,253,172,178, 86,155,130,245,235,215,107,231,204,153,115,163,160, +160,160,139, 88, 44, 54,214,148,111,216,176, 65,251,194, 11, 47,196,103,103,103,135, 72,165, 82,109, 67,227,179,106, 27, 45,145, + 72,100, 40, 40, 40, 8,157, 58,117,106,226, 87, 95,125, 85, 37,149, 74, 33,147,201, 32, 18,137,140, 5, 5, 5, 93,102,204,152, +113, 99,229,202,149, 90,137, 68, 2,153, 76,102, 83,183, 28, 33,228, 47,134,170,118,185,181, 88, 44,150,211, 5, 5, 5, 93,230, +204,153,115,253,139, 47,190,168,170, 49, 64,181,235,184,122,245,106,173, 92, 46,183, 41,162, 85,243, 62,153, 76,134,117,235,214, +105,103,207,158,125,163,160,160,160,139, 72, 36, 50,214, 42,175,154, 53,107,214,245,130,130,130, 46, 22,139,229,116, 35,191,198, +232,138,138, 10,240,120, 60,196,199,199, 27, 4, 2, 1, 56, 28, 14,238,222,189,251,160,241,113,112,112, 8,234,210,169, 99,192, +255,118,237, 61, 35, 17,136, 68,189, 67,187, 7,166,164,103,100, 19, 66,165, 55, 81,213,253, 58,157,206,251,244,233,211, 27,122, +247,238,173,255,242,203, 47, 45, 13, 69,182,172,193, 96, 48,156,185,118,237,154, 89, 44, 22, 83,121,121,121, 22, 46,151, 11,154, +166,137, 33, 52,212,208,233,139, 47,200,173,119,223,165,148, 50, 25, 79, 32, 16, 64, 42,149, 82,199,142, 29, 51,106,181,218, 51, +255,255, 70, 11, 82, 80,144,220, 41, 48, 40,196,127, 29,166,161, 0, 0, 32, 0, 73, 68, 65, 84, 28, 11,133,228,253,247, 77,150, +216, 14, 16,219, 3, 98,123,120,122,122,225, 74,154, 86, 1, 14,132,160,173,200, 33, 70,136, 12, 20,164,241,106, 40,248, 66, 9, +149,159,159,255,192, 16,213, 44,190,237, 3,113, 45, 67, 35, 7, 69, 68,224,194,150, 20, 36,145,142,142,142,188,188,188,188,191, +104, 6, 5, 5,113,205,102,179,245,169, 93,114,105,119,128,153,153,156,175,119,255,229, 70,149,255, 91,203,190,149, 72,232, 50, + 32,102, 61,130,219,122,224,173,241, 93,133, 31, 28, 44, 12,190,154,174,109, 11, 46,121, 13,140,198,217,134,122,246, 83, 40, 20, + 71,175, 94,189, 42, 85, 40, 20, 72, 73, 73, 65,104,104, 40,182,110,221, 42,149, 74,165, 71, 0,216, 52, 30,239,178, 26, 25,154, + 74,186,247, 59,123, 51,243,227,242, 44, 15,153,172,194, 42,130, 87, 62, 63, 88, 86, 90,161,127,250, 82, 86,195,247, 79, 61, 92, + 47, 43, 43,139, 88,184,112, 97,113, 97, 97,225, 67, 38, 43, 35, 35,163,230, 75,113, 16,128, 38,127,252,254,254,219,241,144,207, +150,204,193,213,152, 4, 12,143,124, 19,215,226,238,225,253, 5, 99, 96,167,148,224,244,233,211, 24, 59,118, 44, 62,249,228, 19, +220,189,123, 23, 63,254,248, 35,181,117,235, 86,234,210,165, 75,212,231,159,127, 78, 53, 49,164, 97,210,178,101,203,112,245,234, + 85,140, 24, 49, 2,103,207,158, 69, 73, 73, 9,118, 31, 61,122,103,231,157, 59,239,215,140,217,106, 32,245, 67,189, 40,149,202, +121,203,150, 45, 67, 76, 76,204, 3,205,226,226, 98, 44, 91,182, 44, 27,192,235,182,152, 44, 91,218,165,206,157, 59, 7,236,218, +181,235,140, 88, 44, 22,133,134,134, 6,166,165,165,101, 3, 72,111,134,102, 69, 75,122,170,138,138,138, 46,108,221,186,245,210, +224,193,131,165, 83,166, 76,113, 62,112,224,128,163, 86,171,245, 16,137, 68, 46, 70,163, 81,120,251,246,109,238, 79, 63,253,228, +118,235,214,173, 52,189, 94,127,197,154,227, 81, 80, 80,112, 37, 41, 41,105, 88,231,206,157,111,111,216,176, 33,219,221,221,157, +153, 54,109, 26, 94,121,229, 21, 56, 59, 59,211,235,214,173,203,236,223,191,127,252,189,123,247,194,181, 90,237, 77, 43,235,250, +221,103,159,125,118,126,215,174, 93, 24, 53,106, 20, 62,255,252,115,236,222,189, 27,191,253,246,155,228,143, 63,254, 16,110,221, +186, 21, 2,129, 0,189,122,245, 66, 68, 68,196,144,234,238, 78,107,191,151,174, 82, 20, 21, 77, 81,212,201, 58,175, 87, 27, 91, +103,195,182, 13,253,221,232,251,234, 84,115,107,157,197,122, 38,181,197, 71,211, 59, 42,180, 23, 38,247, 34,249,211,250, 17,245, +132, 64,114,110,160, 3,153,218,142,170,154,210,204,244, 14, 58,157,238,193,178,111,223, 62,226,230,230, 86,165, 80, 40,108, 78, +239,224,230,230,166,174,168,168, 32, 61,122,244, 40,113,118,118,126,144,138,192,221,221, 93, 93, 85, 85, 69,122,245,234, 85,226, +226,226,242, 32,189,131,151,151, 87, 22, 33,132,248,248,248,228, 54,164,103,177, 88,136,155,155, 91,205, 12, 61,190,131,131,195, +166,158, 61,123,150,168,213,106,226,238,238,254, 32,117,130,179,179,243,170,208,208,208,186,229, 77,213, 55, 43, 59, 59,155,100, +103,103,147, 86,173, 90,229,214, 46,207,200,200, 32, 25, 25, 25,196,203,203,203,230,244, 14,206,206,206, 43,235,169, 75,179,234, +232,237,237,173,214,233,116,164, 79,159, 62, 15, 29, 83,111,111,111,181, 94,175,175, 41,183, 42,189,131, 68, 34,121, 77, 44, 22, +231,138,197,226, 92,145, 72,180,180,117,235,214, 5,123,246,236, 33,235,214,173,171,153,146, 14,231,160,168,222,237,251,188,248, +190,115,208,232,121, 45, 73,239,160, 80, 40, 78,185,185,185, 85,237,219,183,239,161,235, 75,167,211, 89,157,222, 65, 34,145,100, +107, 52, 26, 70,173, 86,155,207,159, 63,175,141,137,137,209,198,199,199,107,211,210,210,116,197, 5, 5, 38,181, 90,173, 43, 47, + 47, 55,220,184,113,195, 32,149,254, 51,233, 29,200, 86,191,246,100, 83,192,193,123,159,248,222,154, 51, 64,170,191,185,164, 11, + 33, 63,143, 37,228,200, 43,132,156,126,135, 92,217, 50,141,244,241, 21,209,231,231,183, 74, 38,155,253,127,177, 38, 37, 3,217, +218,169, 61,217, 20,112,228,206,199,190,183,166,244,247,208,111,251,106, 29,185,124,249, 50,137,143,143, 39, 41, 41, 41,228,200, +254, 61,164, 79, 91,233,125,205, 77, 1, 7,109, 76,243,208, 87, 36, 18,105,214,172, 89, 67, 46, 93,186,244, 64,243,224,193,131, + 68, 42,149,106, 1,235,102, 45, 19,128, 34,155,130,198, 88,190,242,255,227,131,161,242,202,226,195,239, 16,114,243,123, 66,182, + 6, 19,242, 93, 79, 66,246,140, 36,228,208,139,228,210,186,241,164,175,175,192, 76, 54,251,159, 37, 91,130,172, 30,108,207,231, +243, 43,246,237,219, 71,114,115,115,201,217,179,103, 73, 76, 76, 12, 73, 76, 76, 36,153,153,153, 36, 58, 58,154,240,249,124, 61, +154,241,216,178,158,174,240, 9,239, 32,200,187,177,188, 47, 33, 7, 38,146,194,157,147, 72,100, 71, 69, 73,175, 86, 45,202, 71, +215,213,209,209,177, 40, 58, 58,154,164,165,165,145, 51,103,206, 16, 23, 23,151, 34, 0, 86,143,151,141, 28,222,159, 16,227, 13, + 18, 54,160, 35,233,220,185, 35, 25,216,183, 3,201,185,183,158,132,118,107, 77, 54,109,218, 68,212,106, 53,105,221,186, 53,177, +181, 98,225,225,225,151, 9, 33,177, 35, 70,140,136, 5,112, 44, 60, 60, 60, 54, 53, 53, 53, 54, 52, 52,244, 18, 26, 79,253,208, + 32, 67,134, 12, 49, 17, 66,200,136, 17, 35, 8,128,220,240,240,112,146,154,154, 74, 66, 67, 67,141,205, 57,120,214,180, 75, 33, + 33, 33,189, 7, 15, 30,252,126, 72, 72,200, 60,107,210, 59, 52,161,249,168,146, 80,115,113, 63,249,103, 16,128,238,213, 75, 96, +117, 25,183, 5,154, 47,242,249,252,109, 14, 14, 14,191,217,219,219,159,230,114,185, 91, 1, 76, 70,243,242,155,113,170, 35,140, + 39,156,157,157,239,118,238,220, 89, 55,108,216, 48, 50,124,248,112, 50,115,230, 76,194, 48, 12,217,179,103, 15,249,228,147, 79, + 72, 59, 71, 71,203, 58,160,104, 51,240, 18,254,165, 60, 72,239, 96, 13,227,125,209,247,165,182,212,153,231,219,160,114, 98, 27, +104, 94,110, 71, 89,147,176, 52,188, 33,163,197, 48, 12, 73, 78, 78, 38, 97, 97, 97, 85, 50,153, 44, 7,214, 39, 44,125, 72,211, +201,201, 41,198,197,197,229, 47, 73, 52,107,149, 63,148,176,212,197,197,229,130,187,187,187,218,217,217,249, 90,125,154, 78, 78, + 78, 49,238,238,238,106, 39, 39,167,135,146,123,114,185,220, 17, 78, 78, 78, 57,117,203,121, 60,222, 96, 23, 23,151,172,186,229, + 13,236, 59,220,220,220,178,114,115,115, 73, 97, 97, 33,241,246,246,206,173,107,192,242,243,243, 31, 50, 96,214,104, 54, 85,151, + 70,234, 88,175,166, 21,199,180, 57,231,189, 6, 63, 79, 79,207,130,213,171, 87, 19,185, 92,254,208,148,103,255, 1, 47, 47,186, +124, 71, 83,241,202,130, 77,123,234, 73, 88,106,109,114,208, 97, 50,153, 44, 39, 44, 44,172, 42, 57, 57,153, 48, 12, 67, 24,134, +105,200,104,213,167,249, 84,247,238,221,139,139,138,138,232,202,202, 74, 75, 86, 86,150, 33, 53, 53, 85,183,100,201, 18, 83, 97, + 97,161, 94,163,209, 24,227,226,226, 12,238,238,238,133, 0,158,178,245, 28, 53,147,240,186,221,103,100, 75, 96, 95,178, 57, 48, + 58,241, 67,159,219, 47,246,148, 25, 98, 87,143, 32,228,244, 59,228,210,166, 87, 72,111, 95,225,125, 67,180, 37,224, 40,249,214, +111, 0, 89,223, 86,104,149,230,182,118,253,201,150,128,163,183, 22,251,220, 30,219,205,217,184,235,251, 45,228,238,221,187,228, +224, 79, 59, 73,175, 54,213, 38,107,115,224, 9,178, 41, 48,204, 26,205,250,204,214, 55,223,124, 67,238,222,189, 75,126,249,229, + 23,107, 77, 86,120,125, 70,235,189,112,121,217, 43, 61,197,134,137, 93,133,198,209,193, 2, 83, 68,123,129,165,143, 15,143,238, +226,206, 97, 2,157, 65, 34,252, 37, 6,178,217,255, 44,217, 28, 56,204,218,122, 10,133,194, 76,212,202,169, 83,119, 17,137, 68, +133,141, 24,173,240, 38,205,150,159, 40,239,212, 39,131,201,168,206,138, 98, 43, 77, 86, 83,215, 82, 87, 39, 39,167,162,239,190, +251,142,184,186,186, 22, 90,105,178, 30,104, 70, 69, 70,144,140,123, 71,200, 47,123,150,145,176, 1,129,100,199, 55,115,200,229, +179, 31,146,145,195,195, 72,120,120, 56, 41, 42, 42, 34,131, 7, 15, 38,182,214, 83,165, 82,237,208,104, 52,177,199,143, 31,143, + 13, 15, 15,143,221,177, 99, 71,236,185,115,231, 98,165, 82,233,142,154,224, 68, 93,179, 21,248,215,246, 63,188, 78, 68, 43,182, +178,178,146, 28, 63,126,156,132,135,135,147, 29, 59,118,144,115,231,206, 17,169, 84, 26,219,220,251,200,218,118,105,232,208,161, +139,210,210,210, 42, 22, 47, 94,188,167,158,132,165,214,106,222,125, 68,245,124, 36,109,200, 63,160,169,144, 72, 36,177, 55,110, +220, 32,165,165,165,164,163,171, 43,249,140,203, 37,217, 2, 1,201, 21, 8,200, 38,160,228, 95,224,169,166,213,215,117,104,147, +209,122,132, 39,130,232,245,122, 50,127,254,124,163, 88, 44,214, 10, 4, 2, 91, 31,193,243, 68, 95,132, 78, 78, 78, 23, 92, 93, + 93,213,174,174,174, 15,153,189,218,229, 78, 78, 78,215,254,229, 55,160,159, 64, 32,200,224,243,249, 15, 63,130, 39, 40,170,119, +187,190, 83, 22,186, 6, 71, 13,111, 97, 61, 5, 2,129,224, 61,177, 88,172,157, 63,127,190, 81,163,209,216, 98,180, 0, 96,168, + 84, 42,205,217,190,125,187,238,206,157, 59,230,146,146, 18,203,229,203,151,205, 49, 49, 49,198,143, 62,250,168, 82, 42,149,230, +160,225,180, 4,255, 47,199,147,172,111, 43,172, 49, 91, 55, 23,250, 36,142,234, 40, 53,109,157, 27, 65,122,183,174, 99,178, 26, +206,228, 94,191,102,181,217,186,254,129,119, 98,152,159,220,178,108,225, 91,164, 87, 27,201,195, 38,203, 6,205,186,102, 75, 42, +149, 86,126,248,225,135,182, 68,178, 30, 54,132,219,252,189,201,150,128, 29,247, 77, 84, 19,203, 38,255,175,201,151,254,222,143, +203,125,212,211, 21, 62, 67,252, 68, 9, 54, 68,178,172,169,103, 87,123,123,251,219, 54, 68,178, 30,104,126,249,229, 6, 50,105, +194, 80,114,239,246, 62,162, 41, 62, 66,174, 93, 92, 67,198, 69,133,144, 94,189, 66,201,150, 45, 91, 72, 82, 82, 18,233,209,163, + 7,105, 70, 61, 35,166, 79,159, 30,155,154,154, 26,155,146,146, 18,123,238,220,185,216, 49, 99,198,196, 2,136,168,221, 19, 84, + 99,182, 76,227,198, 25,186,114, 56,111, 53,161,249,220,244,233,211, 73,106,106, 42, 73, 73, 73, 33,231,206,157, 35, 99,198,140, + 33,176,237,241, 61,205,106,151, 66, 66, 66,122,135,133,133, 45,236,214,173,219,240, 71,165,249, 31, 52, 90,178,177, 99,199, 50, + 52, 77,147,225,195,135,211, 95, 0,101, 91, 41, 74,189,149,162,212, 91,128,194,127,123, 68,235,239,126,224,103, 56,128,147,181, + 11,196, 98,177, 90,175,215, 59,203,229,242,253, 26,141,102, 54,238, 79,139,108,145,230,223, 81, 79, 86,243, 95,161,233, 46,151, +203, 55,104, 52,154, 49, 98,177,184, 80,175,215,187,218,160,105, 39, 18,137,222, 18,139,197, 97, 90,173,214, 15, 0,100, 50, 89, +178,193, 96,248, 77,167,211,173, 5, 80,246, 79,239, 59, 89,223, 86, 8,161,176, 59, 8,222,141,205,172,106,179,236,120,137,207, +220,193,246,153,125,218,201,210,192,103, 62, 7,101,184, 66,189,148, 97,176, 89, 83, 66,133,130,230,191,123, 37, 93,219,250,243, + 95, 43,125,230,133,201, 51,251,180,149,103,130,224,115,136,180, 23,109,213,172,107,182,100, 50,217,246,170,170,170, 87, 1,252, +102,235,190,147,189,129, 2, 84,153, 61, 97,230,118, 4,105,228, 17, 62,132,104,193,225,198, 35, 31,106,234,163,219, 38,246, 62, +170, 95,243,171,175, 54,146,147,191, 30,129, 65, 91,130,188,130, 10, 76,154,252, 50,186,118, 13,129,147,147, 19, 62,251,236, 51, +180,111,223, 30,159,124,242, 9,213,140,122, 70,200,229,242, 73, 1, 1, 1,109,111,221,186,149,162,213,106,127, 0,112,162,206, +123,168, 0, 32, 76,202,227,117,209, 89, 44,103,111, 3, 49, 77,104, 62, 39,151,203,231, 5, 4, 4, 4,223,186,117, 43, 65,171, +213,174, 6,176,155,109,235,158, 12, 77, 14,135,179,214,199,199,103, 92, 90, 90,218,187, 0,118,225, 63,194, 63, 98,180, 88, 77, + 86,243, 9,212,172,185, 79,200,227, 86,207, 63,205, 22, 51, 27, 20,218,128, 80,217, 16, 48,235,154, 48, 89, 77,107, 74,168, 80, + 88,120,111,130, 66, 43, 16,228,131,112,214, 54, 97,178,254,127, 77, 38, 64,225,163, 70,218,175,143, 64,168,134,207, 23,123,205, +215,195,162, 69,139,200,177, 99,199, 32,149, 74,161,211,233, 48,108,216, 48,124,250,233,167, 20,219,134,176,154,255,143,154,255, + 74,163,197, 99, 15, 3, 11, 75,211,247,202,227, 90, 49,234,141, 20, 35,217, 27,120, 21, 69,220,249,224,160, 13, 96,201, 64,149, + 37,159,122, 35,195,216, 66,205,203, 40,162,230,128, 11, 63, 8, 45,247,160, 49,230, 83,175, 55, 95,243,145,239, 55, 64,240,209, +227,123, 94,158, 68,234,154,170,152,152, 24,246,160,176,176, 88,207, 52, 60, 60,211,240,193,255,172,209, 98, 97,121,194,161,158, +185,109, 2,144, 93,189, 60,182,154, 44, 44, 44, 44,255, 65,195, 5, 10, 13, 15,104,179, 37, 36,216,156,129,118, 39, 89,205,102, +105,114, 1,168, 0,216,225,126, 14,146,154, 41,189, 77,165,217, 24, 14,192,204, 30, 79, 86,147,213,100, 53, 89, 77, 86,243, 31, +214,108, 74,251, 73,236,146,172, 47, 51,252,214,127,106,214, 33,171,217,124,134,177,199,147,213,100, 53, 89, 77, 86,147,213,252, +151,106,254,235, 32,132, 52, 43, 25, 25,203, 63,135,152, 61, 4, 44, 44, 44, 44, 44, 44,143, 29, 33,213,175,238,184, 31,221,114, +175, 89,241,143,142,209,146, 56,118,112, 7,143,211,153, 98, 72, 0, 0, 16, 14,149, 8, 11, 19,167, 43,190,147,215, 82,109,185, +135,159, 3,129,112, 47, 5,227, 51,154,220,228, 22, 39, 67,235,232,167, 28,231,234,164,152,148, 95, 92,190, 61, 33, 73,115,192, +150,109, 85, 42, 31,149,216,193,126,188,193,100,238, 40, 20, 8, 50, 77,101, 21, 91, 75, 75, 83, 42,155, 81, 13,135,198, 86,126, +244, 17,161, 14,231, 93,163, 4, 82, 19,199, 81, 41,160, 52,208, 16, 77,158,156,241, 45, 75, 35, 63,253,244, 12,177,245,220, 80, + 28, 12,146, 41, 20,221, 68, 98,105,168, 84, 97,223,129, 33, 64,137, 58, 39,221,104,182,156,163,141,218, 88,194,224,247, 71,113, +174, 88, 88, 88, 88, 88, 88,254, 5, 70,235, 26,128,145,184, 63, 70,171,233,193,240, 62, 65,253,174,138,197, 18, 95, 0, 96, 8, + 1, 67,128,170,138,178,216,252,148,152, 97, 0,224,212, 58,228, 56, 95,172,236,198,144,251,235,105, 6,176,152,244,105, 21, 25, +151,123, 88, 83, 35,153,179,223,216,193,225, 67,198, 69, 70,142,244,239,212,177, 83, 59, 0,184, 25,127,243,222,225,195,209, 73, +167, 79, 82,251,170, 10,147,127,105,201, 30, 19,136, 63,237,222,189,107,191,152,152,107,159, 0,152,217,210, 35,232,232, 40,159, +125,226,231,249, 3,134,140, 91, 37, 3,108, 51, 90, 98, 7,251,241,163, 71, 61,213,245,237, 55,166,115, 94,153,255,153,239,213, +243,191,175,144,187, 7,151, 17,198,124,162, 74, 61,225,143,198, 30,156, 92,215, 63, 54,100,176,126, 40, 57,198, 89,247, 93,111, +123, 93,201,189, 9,132,161, 39, 80, 20, 5,174, 80,250,147,115,219,126,123,236, 6,205, 45, 5, 96,245,140, 49,165,123, 80,184, +139,187,215,190, 9, 47,191, 37,150,170, 92,121,224, 10, 0, 80,200, 77,191,141,211,187,151,217,191,249,241, 55, 33,231,227, 50, + 44,167,126,222,168,167, 4,252,113,218,188, 91,236, 20, 95, 22, 22, 22, 22,150,255, 50,209,213,230, 42,186,238,138, 6,141,150, + 88, 44,241,189,244,251, 97,135, 95,206,101, 1, 0,194, 67,220,240,254,146, 13, 17, 59,214,199, 36, 1, 64,239,193,145,126,159, +188,247, 6, 46, 36, 20,128, 16,130,174,237, 29, 49,124,244, 51,214, 25, 15,215,192, 30,227,199, 63,253,252,252,249,243,162,238, +222,189,155,190,107,215,174, 63, 0,160,255,128, 1,237, 63,251,236,179,103, 87,217, 59,136,126,252,233,231, 28,189,250,246,213, +230,236,173,216,163,173,167,127,135, 54,147,126,252,118, 3,103,208,176,167, 39,166,163,106,153, 62, 55, 37,199,154,109,157,156, +156,230,240,249,124, 21,112,255,105,236, 53,152, 76,196, 13, 0, 44, 52,163,176,247,240,175,228, 10,196,180, 72, 36,184, 85,169, +209,108,175,200,185,189,173, 49, 77,131,217, 28,252,230,235, 47,113,174,167, 20,195, 55,184, 63,119,221,178, 15,192,208,102,251, +183,222, 91, 50, 62,230,242,143,168, 82,227,140,149,187,198,175, 91,224,233,217,139,251,233, 50,249, 80,138,194,139, 62,189, 95, + 30,243,201,247, 63,241,187,183, 87,194, 96,102,112, 52,182,184,247,166,181,159,174, 60,191,105,228, 33, 0, 91, 0,156, 2,208, +164,169,115,112,116,248, 97,206,194,181,242, 42,227,159,179,189,171, 77, 22,190,222,190, 23, 55,178, 24, 4,248, 7,240,220,230, +172,144,111, 89, 50,237,123,237,253,231,108,177,176,176,176,176,176,252, 87,201,195,195,179, 13,183, 54,105,180, 0, 64, 46,225, + 33, 41, 53, 31, 0, 96, 39, 1,102,191, 54, 5,197, 69,133,126, 70, 11,131,151,167, 76,198,181,196, 60, 36,165, 21,130, 16, 2, + 63, 47,171, 31,194, 13, 46,152,238, 47, 79,125,121,224,241, 19, 39,174, 44, 90,184,232,127, 20,133,139, 0,176,101,235,215,189, + 23,127,184,248,213,201, 83, 38, 15,253,233,167,159, 18, 0, 52,203,104,241, 40,197,134,149,203,151, 10,179,139,244,250, 57,243, +223,101,230,205,157,179, 14,192,211, 86, 57, 25, 62, 95,149,157,157, 45,231,112, 30, 30,190,246,249,210,119,207, 14, 29,183,234, + 78,122,102,217,245,227, 7, 15,246, 8, 10, 10, 66,118, 78,126,223, 21, 95,108,238,114,244,184,228,165,202, 10,221, 56,109,209, +237,122, 31,218, 44,226,243, 19, 62, 94,177,169, 43, 99,215,158,243,254,171, 35, 16,220,206, 3, 57, 5,101, 24, 48, 44,138, 23, +123,245,106, 4, 96,181,209,170,155, 60,112,188,145, 41,232,242,217,246,203, 67,198,244,241,232,206,225,112,161,209,153, 81, 88, +110, 0,205, 0,253, 3, 85,120,106,199, 23,188,146, 42,243,216, 37, 63,103,141,189,184, 62, 82,173, 47,207,157, 5, 96, 95,227, + 31, 67, 28,188, 92,148, 72,202,170,172,215,100, 85,233, 45, 0, 0, 1,151, 6, 5,226,200,222, 95, 44, 44, 44, 44, 44,255,113, +234,157,117, 8, 84, 63,153,251,240,225,195,245,142,223,161,105,130,164,180, 60, 36,165,229,225, 74, 98, 33, 76,132,143,117, 43, + 62,198,234,101, 31,162, 68,199,193, 47, 23,178,144,156,150,143,228,180,124, 20,149,106,234,147,120,168, 75,105,213, 50, 73,200, +218,181,202,149, 17, 3,100,131, 28,236,237,237,239, 36,252,175,106,241, 92,117,224,199,111,102, 9,248, 70, 81,182, 76, 46,235, +179,119,239,158, 32, 87,103, 23,153, 92,174,120, 71,234,217,229, 27,149,234, 47, 79, 74,111,180,155, 74,226, 18, 16, 21, 53,242, +169,193,110,110,174,204,244,117,177,137, 29, 3, 3,204, 29,218,119,232, 43,113,233, 16,213,200,102, 15, 52, 25,134, 1,135,195, +129, 90,173, 70,110,110, 46, 82, 83, 83,145,156,156,140,172,172,116, 53, 67, 8,159, 6,195,113,119,247, 2,143, 39,132,111,107, + 31,108, 90,183, 76,186,228,163,247, 67,197, 50,225,129, 58, 70,232,129,166,190,164,244,167, 35,199, 78,228, 28,221,181,137, 6, +128,130, 82, 13, 78, 95,189,139,107,183,178,108, 61,145,117, 83, 56,180,206,201,184, 91, 97, 73,139,230,126,242,193,188,172,115, +231,206,167,151, 87, 26, 81,169, 53, 65,171, 55,195, 96,164, 97,166, 25,248, 56,139,177,255,221,142, 56,248, 91,156, 43, 69, 81, +107,155, 58,158, 6,131,153,238, 23, 32,195,196,176, 86, 8,240,146, 33, 39,233, 34,230, 44, 92,139,152, 84, 3, 74, 75,203, 96, +174, 42, 2,163,201, 70, 81,218, 53, 88,104,154, 52,117,222, 31, 17,172, 38,171,201,106,178,154,172,230,191, 88,179, 33, 47,242, +132,176,181,158, 5, 15,140, 86, 67,220,203, 42, 65, 82,106, 62,186, 5,120,162, 93,107,119, 92, 73, 46,197, 15,167,179,240,205, +241, 12,156,190, 81, 8,134,167, 64,126, 5,112, 39, 93,141, 59, 25, 69, 77,230,207,230,138,248, 19,222,124,179,124,126,167,160, +138, 94,191, 31,157, 13, 79,231, 59, 65, 11, 22,148,205,230,138,248, 19,236, 91, 41,118,189, 59,255,173, 73, 10,169, 84,104, 52, + 24,209,182,141,143,248,141, 89,179, 95,162,236, 69, 86, 63, 19, 73,225, 25,104, 47,146, 72,182, 45,249,232, 29,209,218, 95,238, +100, 86, 25, 81,181,239,162, 58,101,222,187,139, 75,120,124,241, 38,133,103,160,189,181, 90,102,179, 25, 6,131, 1, 70,163, 17, + 38,147, 9, 57, 89,183,163, 78,253,242,246,176, 54,173, 28,134,137,196, 98, 16, 0, 21, 58, 11, 82,243,180, 8, 27, 50,148,219, + 45, 36, 36, 88,238, 30, 56,181, 62,173,242,242,140,114,134,112, 21,135,247,239,228,238,249,245, 58,254,119,248, 42, 14,252,118, + 29, 87,206, 28,181, 16,198,252,224,249, 95,114,247,246,126,114,247, 78, 25,114,143,206,234, 7,139,103,199, 70,211, 51,115,185, + 28, 18, 54, 36,252,228,107, 51,223,248, 93, 91, 89, 92,176,109,195,199, 57,133,185,233,183, 69, 2,202, 34, 21,113,161,209, 91, +240,253,169, 92,140, 95,118, 3,183, 50, 53, 32,132, 52,249, 0,111, 6,152, 59, 97,234,219,180,217,100,130,191,183, 28, 59,183, + 46, 71, 84, 88, 23, 12,238,100,143, 30,237,100,144,242, 12, 72, 72, 76,194,238,157,223, 91, 24,134, 51,143,253, 33,195,194,194, +194,194,194, 70,180, 30, 44,238,181, 87, 52,216,117,168,215,235,210,158,158, 48, 25,238, 46,110,242,209,131, 94, 20,196,222, 43, + 67, 97, 94, 6,238, 38,199, 67,171, 55, 67, 96,223, 6, 16,187,161,181,175, 15,226,146, 14,152,214,175,140,214, 48, 22, 67, 90, + 67,122, 81, 81,238, 94,119, 19, 41,206,202, 21,222,151,146,147, 74,187,237, 92,248, 29,158,127, 94,238,180,114,133,247,165,244, + 20, 25, 71, 42, 38,125, 94,154, 50,145,226, 80, 4, 11, 22,204,199,232,200,167,240,242, 75, 47, 80,219,183,127,223,171,204,202, +189,100,192,255,242,189, 15, 62, 22,170,203, 44,198, 43,201, 26,131, 84, 38,145,156,191,163,169, 10,246,245,150,140, 24,247, 98, +110,244,222,109,107, 1, 76,177, 70,171,198, 96,153,205,102,152, 76, 38, 0,160, 1,128,195,185,255, 90, 92,105, 68, 65,153, 1, +234, 50, 3, 44, 52,131,113, 19,166, 72,174,198,220,152, 2,160,129,241, 90, 12, 99,182,152,177,239,215,107,200,185,250, 19, 67, +113,184,229,181, 6,195, 67,238,222,222,207,205,205,251,108,228,184, 23,156,133,226,251,221,176,149, 85, 6,108,223,188,162,209, +122,114, 40,138, 48,180,165,204, 98, 54, 87,181,109,211, 54, 39, 32,168,139,248,220,239,199,163,206,159,220,167,177,180,125,193, +238, 94,122, 30,184,124, 17,184, 2, 49, 12, 38,235,126, 44,168,239, 94,218, 8,128,154, 58, 99,254,186,183,222,126,159, 59,119, +253, 31, 48,234,181, 48,232,170, 80, 81, 94, 10, 9,207,140,132, 11, 7, 45,132, 54,191, 85,149,119,125, 35,123,127,177,176,176, +176,176,252,199,169,251,248,157, 7,101, 13, 26,173,140, 91,231,122, 0,128, 95,247,136, 98,185,152,231,192,227, 80, 80,103,223, +195,246, 85,115,192, 48, 4, 35, 94, 93, 9,133,175, 27, 36, 2, 46, 12,154, 98, 77,201,189, 51,141,142,213,161, 40,243,208,141, + 91,114,124,103,188,222, 86,185,115,167,134, 15, 0, 59,119,106,248,175, 79,111,165,252,106, 75,154,111,207,126,221, 64,104, 26, +145,163,159,198,132,231, 38, 32, 61, 95,139,159,207,102,162, 74,103,180,106,182,156,196, 41,160,139,147,163,243, 83,111,190,248, +148,140,199,165,168, 14, 62, 42,110, 86,161,217,194,229,242,233, 67, 87,203,115,199,141,123,206,233,244,145, 61,131,105,167,128, + 46,186,162,196, 27, 77,233, 25, 12, 6,208, 52, 13,131,193, 0,179,217, 12, 7,167, 54, 71,134, 62,189, 42, 59, 47,191, 50, 58, +191, 84,223,179,202,108,129,186,204,128,130, 50, 3,202,170, 76,112, 83,216,195, 98, 54,118,106, 72,143, 16,242,191, 49, 79, 79, +126, 1, 0,135,226, 88,190,211,228, 37, 38,223, 95,243,167,201,122,106,244,243,206,103, 99,239,225,110,204,209, 82,194, 88,238, +103,113,167,152,236,198,143, 43, 8,151, 2, 35,224, 81,102, 46,135,195,152, 76, 26,179,139,139,243,233, 51,167,143,141,210, 91, + 82,192, 21,136, 30,188, 87,103,164,173,190, 98,212,119, 47,125, 9, 0, 95,172, 95,183,186,207,208,231, 5,103,174,165, 65,103, + 6,122,135,248, 97,255,143, 95, 27, 8, 49,191, 93,149,119,253, 75,246,222, 98, 97, 97, 97, 97, 97,121,200, 96, 69,227,254,224, +248,135, 35, 90, 53,125,163,145,145,145,127,121, 90,123,142,186, 4,142,114, 30,156, 61,124, 49,105,206,106,252,111,237, 92,208, +180, 25,132, 0, 22,218,186,204, 4,132,240,127,157,249,186,111, 64,107, 95,174,243,164,231,165,186, 31,118,106, 37,147,158,151, +234, 58,118,114, 44,159,249,186,111, 90,165,222,187,175,133,166,113, 62,161, 0,241,105,229,136, 79,175,128, 92, 98,125,154, 47, +174, 80,240,250,138,229,203, 4, 60, 46, 69, 37,100,104, 52,217,197, 22, 13,151,207, 55, 73, 37, 66, 98, 36, 60, 67,122, 17, 41, + 30, 50,230, 37,221,161, 29, 95, 76, 5, 48,171, 33,157,154,153,134, 53,145,172,154, 87, 66, 8,161, 0,134,161,104, 58,187, 72, + 15,141,201, 12,117,233,159, 70,139,178, 52,220,115, 42,119,111,239,167, 84,200,143,113,185, 92, 17, 33,128,217,100,121, 22,238, +237,135,105,242,238, 38,215, 54, 89,151, 18,114,113,239,250, 73, 53,109,210, 78,214, 22, 36,157,178,118,223, 41, 10,132,203, 5, +195,229, 80, 12, 69,129,225,115,136, 17,132, 48,117,107,164,181,193,104,213,152, 45, 33,159,187,240,196,238,181, 46, 47,143, 12, +196,143,103,239,123, 62,125,101, 97, 69, 85, 14,107,178, 88, 88, 88, 88, 88, 30, 45,141,121,145, 39, 40,170,245,215,136, 86, 99, + 59, 68, 8,112, 39,163, 8,173,189,156,225,213,186, 29,146,111,199,253,185, 14,128,133,182,174, 59,234,224,193,188,236,213,171, +149,204,220,185,229,189, 87,172,240,190,248,250,244, 86,170,142,157, 28,203,223,121, 39,179,247,154, 53,170,139,191, 94,226,211, +164, 58, 95, 87, 77,110, 46,219,158, 17,196, 9,237, 18,212,134,251,241,206, 59,153,167,110, 86, 22, 8, 4, 2,179,155,189,152, + 82,200,133, 92, 46,135, 47, 52,152, 57, 6,191,224, 16,238, 33, 14, 21,210,152, 74,141,209,170,219,117, 88, 92,120, 47,234,196, +207,243, 59, 14, 26,179,210, 33,167, 80,135,114, 35,247, 65,215, 33,151, 67,225,230,237, 12,128, 43,136,175, 79, 83,169,112, 56, +190,235,135,255,121,175, 89,177, 20, 38, 11,141,153,115, 23,225,165, 41,147,143,195,189,253, 48,111, 95,255,216, 63, 14,125, 39, + 29, 54,125, 19, 50,146, 98,242, 45,134,138,221,182,152,172, 7,102, 11, 32, 52, 97, 56, 37,165, 21,114,131, 5, 98,212,227,251, + 12, 38,166, 89, 87,142, 70,103,193,161,203,249, 56,252,203,110,168, 20, 50,182, 37, 96, 97, 97, 97, 97,121,228, 60,161,230, 10, +117,204, 21,208, 80, 68,171, 49,124,188, 92,113, 57, 62, 13,157, 2,218, 64,165, 84, 32,241, 94, 54,184, 28, 62, 56, 20, 96,182, + 88,111,134,136,201,252,227,154, 53, 42,100,164,201, 56, 95,109, 74,243,157,249,186,111,218,154, 53,170,139,196,100,254, 17,192, +100, 66,238, 63, 23,168, 38, 65, 42,109,131, 47, 32,140,185,149,171,131,148, 27,147, 82, 85,204,225,112, 13,142, 42, 49,227,168, + 18,113, 28, 21, 66,190,128,207,101, 44,132, 99,242,114,241,213, 19,134,233, 98,141, 94,237,174, 67,154,166, 65, 81, 28,186,218, +136,201,178,138,117, 40,215,115,161, 46, 51,160,180,210,132, 14,158, 50,156, 60,253,147,150, 54,235,118,214,167,197,229, 11, 84, +237,124,189,240,254,167,107,160, 51,208,184,147,163,129, 64, 36,114,115,117, 11,190, 49,121,198,187,162, 55,182,222,195,212,193, +142,152,251,199,189, 28,173, 90,252,174, 45,103,150,166,105,232,244, 70,129,186,168,212,190,162,178, 74, 41, 17,139,116,206, 14, +170,162,250,222,171,183, 49,162, 85,131, 84,204,195,168, 94,110,208,155, 38, 66,103,176,224,194,169,125,108,139,192,194,194,194, +194,194,242, 39, 91, 27, 90, 97,149,209,146, 75,197, 32, 92, 49,254,136,189, 7,255,160,206,248,254,224, 21,180,239,212, 11,121, +149, 22, 16,112,154,156,109, 88,195,252,247,116,215, 0, 92,139,138,146,122,141, 29,235, 57,148, 16,254,175,155,182, 84,100, 3, + 64,155,142,247,101, 24,134,128, 16,128, 48,247, 13,151,213, 80,188,140,180,188,138,214,190,110, 50,220,202, 54, 25,100, 34, 1, +199, 94, 38,228, 58,171,132, 2, 1,143, 7,154, 80,134,188,188,123, 6, 10, 72,183, 70,174,110,215,161, 84,238,126,100,200,152, +149,133,233,153,229, 49, 29, 74,180, 93,202, 77, 66, 16, 2,116,240,148, 33,254, 82, 52,173,206,185,123, 71,167, 78,218, 92,159, + 22,195,128,107,178, 48,184,145, 82,142,178, 42, 51,202, 52, 38,244, 13, 27, 37,232, 27, 30,133, 63,226,139,192, 88,204, 88,241, +117,116, 37, 77,204, 19,128,219,102, 27,118,154,115,249, 90,130, 87, 97,233,255,177,119,222,225, 81, 20,255, 31,127,239,238,245, +146, 70,146, 75, 35,116, 72,232, 29, 18,122, 39, 82, 5, 65,138, 8, 10, 4, 80, 65, 17, 80, 84, 84, 58,124,233, 85,148, 38,210, +123,175, 66,232,210,123,128, 4, 72, 35, 61,151,122,189,238,238,239,143, 75,168, 41, 23,130,229,167,243,122,158, 60,151,189,220, +189, 51,219,102,223,243,153,207,204,232, 37, 66,129, 32,183,102,245,138,177, 98,145,208,174,209,104,196, 47,127,138,129, 66, 38, + 70,182,206, 6, 0,182,210, 94, 61,121,122, 27, 14, 92, 78,195,193, 61, 91, 33,147,201,192,147, 27,138, 64, 32, 16, 8,132, 23, +241,131, 99,249,157,195,249,175,207,204,151, 83,139, 74,179, 28, 15, 47,207,114,144, 42, 92, 17,151,110,133,150, 82, 33,199,192, +131,101, 29, 17,173, 98, 2, 79,133,174,238,125,224, 64,106,210,254,253,153,235, 14, 28, 72,125, 33,209,251,121, 36,235,217, 43, +199, 59,173, 73,241,236,201, 3, 71,207,228,245,106,238,237, 65, 51,140, 81, 36,164,205, 2, 17, 99, 21, 9,104,155, 72, 64, 91, +124, 92,133,204,153,131,219,196, 60,133, 51, 37,105,154, 76, 38,116,234,212, 9,221,186,117, 67,239,222,189,209,191,127,127, 4, + 5,213, 82,209, 12,101,225, 41,142,243, 22,107, 81,205,155,130,192,148,136, 83,219,254,103,184,119,113,223,109,214,108,234,137, +151, 45,231,115, 77,158,231,178,243,204, 48, 89, 89,228,232,172,200,209, 91, 97,247, 14,197,190, 63, 82, 96,180,176, 72,184,177, +203,168, 78, 75,250,220,156,241, 56,174,132, 83,241,245,203,155,124,210,136,143,135,170, 93,164,244,227,214, 45,154,170,189, 60, +203,217, 41,234,121,228,149,162, 40, 72, 93, 85,240,112,119, 65,220,205,163, 56, 49,175,163, 17,192,119,206, 28,207, 23,113,149, + 11,208,171,185, 47,122,246, 29,132,122, 33, 93,157, 49,214,100, 69,123,162, 73, 52,137, 38,209, 36,154,255, 37, 10,214, 56, 44, +120,117,110,102,248, 2, 3, 84,213, 79,129,234, 1, 10,152,172, 42,152, 44, 44,244, 38, 22, 26,131, 21, 26,131, 13,113,105, 6, +220, 59, 80,246, 18, 58,162, 88,142, 25, 63,121, 30, 0,229, 48,120,206, 70, 79,196, 86,203,140,133,243,102,191,191,173, 81, 67, +203,184,238,126,129,119,226, 44, 41, 20, 69, 27,105, 70, 96, 43,231, 34, 16, 62,124,120, 71,125,233,220,145, 54, 82, 59,251,161, +161, 24, 29,187,221,158, 23, 16, 16, 0,224,229, 37,120,106, 85,147,245,190,120,248,235, 42,109,123,205,243, 94, 60,107,162,129, +102, 68, 28, 37, 16,221, 99,109,198,173,198,244,168, 85, 40,198,126,208, 34,233,131, 43,183,238,135,184,151, 11,196,227,100, 61, +244, 38, 59,172,118, 14, 30, 74, 17,146,238, 30,183,198, 61,188,190, 67,151,114,103,195, 27, 28,182, 45,209, 15,238,149, 15, 11, +235,250, 94, 72, 72, 40,243,195, 15,223, 35, 56, 56, 24, 70,163, 17, 52, 77, 35,176, 82, 53,196, 69,223,194,229,195, 51, 88, 67, + 86,252,207, 0,166, 3, 80,151,246,159,100,106, 44, 56,122, 61, 3,135,247,110, 7, 35, 20,147,219,137, 64, 32, 16, 8,132,215, + 9,127,229,117,181, 83, 70,203,100, 50,197,181,234,212, 19, 28,199,131,229, 1,142,205,143, 60,113,207,163, 79,172,205, 20, 87, +214,210,113, 28,123,117,197,234,117,221, 26, 53,107,203,212,174,160,132, 38, 43, 13,151, 47,158,182,131,227, 47, 57,243,253,172, +172, 71, 58,153, 79,245,247,222,239,215,103,231,208,143, 71,231,182,105,223, 94,161, 82,249,154,147,146,147, 12,235, 55,109,182, + 29, 63,178,191, 13, 7,251,192,172,172,199,186,226,116,242,242,242,150, 22,246,190, 68,172,108, 9,160, 10, 35,160, 44, 70,245, +163, 82,101,132,103, 38, 39,246,157, 61, 99,106,252,224,145,227,197, 85, 3,170, 33, 35,143, 65, 92, 82, 26, 30,158,219,111, 78, +142,190,182, 87,147,116,115,184,147, 82,169,133,188,151, 4, 96,241,229,203,151,234,132,133,133,117,237,208,161, 3, 31, 30, 30, + 14,158, 7, 78,173, 30,195,103,199, 93,222, 5, 71, 20, 43,230, 13,207, 75,194,185, 75,183,202,245,111,211, 68,224,233, 50, 28, +235,182, 31,177,129,231, 18,200,253, 68, 32, 16, 8, 4,194, 51,222, 60, 71, 43,241,129, 99, 62,173, 63, 27,109, 90,198,144, 13, + 27, 54,206,220,184,105, 91, 75,147,197, 18,192, 67,148,200,218, 45,103,117, 44,126,112, 86,195,152,254,248,186,167,103,141,186, +235,215,172,248,110,253,186,159,218,130, 99,107, 82, 64, 60, 79,225,140,212,198, 14, 45,201,100, 21,107,150, 50,181,191,116,126, +111,129, 49, 43, 75,183,177,180,223, 53,102, 69,165,209,140, 53,240,151, 37, 51,230,211, 52,211,133,101, 57, 33,199,218, 30,179, + 86,211,255,140,234,168, 3,112, 58,203, 13,217,197,252, 45, 18, 64,100, 68, 68, 68,235,136,136,136,102, 0,150,194,177,134,226, +245,178,156, 23,115,150,182,227,164,137,147, 78, 77, 0, 85,145,227,120,216, 89, 46, 65,100, 52,116, 36,247, 20,129, 64, 32, 16, + 8,207, 8,199,235,147,150, 58, 23,209,250,171,200,201,137,209, 34, 7,227,202,170,147,149,245, 72, 7,224,181,145,123,134, 50, +234,222,123,164,217,141, 71,154,221,111,250,125,125, 70,172, 26,136, 29, 90,198, 98, 56,147,200,126, 62,255,231,173,144,153,249, + 64,143, 76, 52, 39,247, 16,129, 64, 32, 16, 8,165, 54, 92,206, 37,195, 19, 8, 4, 2,129, 64, 32, 16, 74, 52, 89, 47,190, 2, +112,228,158, 23, 53,114,160, 52, 43,115,191,201,232,131,147, 68,179,204,154, 66, 0, 98, 0, 74, 0, 37,117,105,118, 69,254,122, +141,228,120, 18, 77,162, 73, 52,137, 38,209,252, 27, 53, 75,210, 62,137,127, 9,165,155,120,253,205, 32, 67, 95,137, 38,209, 36, +154, 68,147,104, 18, 77,162,249,111, 39,188,144, 31,240, 60,255,207,201,209, 34, 16, 8, 4, 2,225,175,194,211,179,134, 18,120, +150,215, 91, 34,114,175, 90, 62, 0, 96,200,124,144, 78,142, 30,161, 16, 94, 92,231,240,173,228,104, 9,105,129,120,146,220,197, +243,129,194,205, 51,249, 63,126,112,169,160, 74,138,177,157,219, 84,222, 23, 92, 69,214,187, 52, 95,148,123, 7,253,234, 91,173, +249, 83,133, 42,104, 44,252, 26,201,202, 82, 8,133,170,138,183, 50,176,201, 69,151,128, 58,239,252, 9,251, 40,169, 93,187,118, +104,237,218,181, 67, 1, 72,222,134,160, 92, 21, 52,168,124,245,144,115,170,170, 13, 79, 43,124,106,244,123,219, 5, 86,250, 85, +247, 84, 6, 54,222,173,244,175,159,163,244,171,175, 81,150,111,124,214,197,171, 86,213,146,190, 23,216,107,118,205,105, 91,239, +109, 13,236, 53,187,102, 97,127,247, 8, 91,230,242,227,182, 71,179, 60,123,254, 79, 73,234,149, 55, 35,176,229, 32,119,191,182, + 19, 60, 75,251,189,128,160,144,200, 74,117, 90,103,248,215,104,126,207,217,239,148, 15, 14,189, 89,177,118,203,244,242, 65,161, +215,201,145,119, 14,169,119,149, 80,169, 71,133,195, 18,143, 10, 71, 36,229,170,180, 47,171,158,159,159,159,172,102,205,154, 97, + 33, 33, 33,163, 58,118,236,248, 69,195,134, 13,195, 43, 86,172,216, 5,127,227, 96, 44,185, 42,232, 27,179,144,202, 52, 11,169, + 76,185, 42,232,155,146,235,215,224,153, 20,205,166, 80, 52,155,162, 80, 5,207,252,167,156, 43,137, 79, 80, 69,185, 42,104,145, +139,111,237,171, 50, 85,141,158,165,253,190,135,135, 71, 23,111,111,239,119, 11,126, 60, 60, 60, 12, 35, 15, 31, 0, 0, 32, 0, + 73, 68, 65, 84,186,144, 59,224,141,121, 22,197,122,229,247, 55,186,208, 25,161, 68,126, 97,240,199,159,214,157, 59,117,178,116, +201,186,125, 88, 50,107,226,125,179, 62,183,246, 63,113,207,189,170, 52,187,206,208, 76,249, 23,223, 99, 57, 54, 41, 51,246,106, +147,183,161, 31, 92, 73, 54,252,187,175,134,124, 57,232,253, 78, 21, 59,245,248,156,138,138, 53,238,119,222,162,161,193,142,221, +123, 3,207,157, 57,189,108,221,186,213,211,213,246,224, 69, 66,137, 96,133, 38, 49, 50,183, 52,101,112,245,174, 90, 69,160,240, + 58,215,170,247,167,190, 55, 78,110,222,192, 90,184,206,134,204, 23, 86,255,126,115,188,171, 85,171,214,148, 97, 24,207,177, 99, +199,138, 0, 96,241,226,197,213, 89,150,205,122,242,228,201, 53,188,193,228,167, 14,131, 25, 60,100,233,252,105, 27,223,121,167, + 27, 82, 50,245,152,183,104,101,187, 99,135,118,244,215,167, 63,218,245, 54,206,137,187,123,101, 87,136, 92,238,126,254,213,116, + 85, 88,187,166,140,206,100,199,177,115,183, 90,111, 94, 57,253, 42, 80,171,153, 54,243, 65,145,115,138,113,134,188, 41, 62, 74, + 62,140, 51,228, 1,192,160,215, 30,246, 74, 91, 39,111, 25, 27,230, 39, 17,220,202, 2, 74, 92,244,209,189, 82,203,227, 66,137, +164, 34, 77,211,160, 41,128,166, 41, 48, 20,229, 88, 39,212,106, 76, 72,126,120,190,235, 63,225, 62,113,169,208, 44, 13,140,192, +147,166,158,151,143,162,243, 95,121, 94,147,246,232,130,231, 91,248, 55,110,117,171,187,215,105, 89, 93,191,254,108,108,182, 66, +208,230,139,195, 20, 79,255,244,244,252,162,219, 78, 25, 0,169,212,227,224,193,131,222, 97, 97, 97,110,170, 58,189,207, 58,243, + 29, 49,163,171,125,232,208, 1, 81, 88, 88,215, 82, 92,159, 65,157, 65,211,155, 40, 64,200,113,252, 98,134,227,119,232,178,162, +159, 0,165, 91,125, 74,166, 10, 30, 78,131,119,186,158,225, 64, 93, 55,102, 68,173,123,211,131, 43,144,184,118, 20,138, 68, 95, + 84, 9,170,215, 40, 57,254,241,117,189, 78,187,200,110,206, 59, 91,106, 33,155,125,210,201,243, 55,222, 17, 8,133, 84, 88,199, +230,140, 25, 56, 93,150,147,238,227,227,243,238,242,229,203,171,134,134,134, 2, 0,236,118,187,235,206,157, 59,125,103,204,152, +161,136,142,142,126,211,133, 83, 3,188,189,189, 43,136,197,226, 0, 0,176, 88, 44,201,106,181,250, 41,128, 18, 27,254, 10,159, +170, 94,224, 49,253,252,185,115, 2, 0,104,221,186,205,204, 10,173, 62,243, 96, 68, 74, 99,161,135,195,162, 85,228, 62, 57, 61, +254,242,149, 75, 20, 0,132, 52, 15,157, 44,247,170,181,226,239,140,108, 73, 85,193,205,105,224,203,144,214,157,250, 14, 24, 56, +132,174, 83,163, 2,186,116,238,240,181, 17, 56, 88,170,107, 70, 32,144, 93,189,122,181, 26, 77,211,140,221,110, 55,133,132,132, + 60, 45, 75,185,252,131, 66,255,160, 64, 7, 90,237,150, 53,234,152,235, 51,129,215, 22,142, 97,220, 2, 27,125, 7, 70, 48,146, +227,184, 68,237,211,235, 45,254,133, 17,173,215,143,115,105,149,104,129,248,139, 65, 31,125, 82,119,252,132,111,165,159, 47,137, +192,225,149,147, 51,255,169, 38, 11, 0, 24,154, 41,127,252,196,113,149, 92,204, 0, 0,116, 38, 59,222, 9, 11, 43,249,137, 80, +169,217, 25,154,162,130, 11, 22,180, 97,237, 86,169, 64, 40, 54, 81, 14,131, 4, 10,128,151,127,165, 8, 31,251, 5,249,160,247, + 59, 85,220,180,237,247,164,167, 73, 89,165,174,212, 40, 70,132,144, 54, 93,208,169,115, 87,183,171, 87,254,152,190,250,231, 85, +223,216,173,182, 85,156,141, 91,100,202,126,156, 82, 98,101,238, 91,163,177, 88,233,117,172,239,168, 25,158, 38,186, 28,126,152, +181,212,235,220,209, 45,103,147, 19, 27,112, 9, 9,137, 38,158,162,238,231,100,167,126,161, 79,123, 18,229,236, 33, 83, 42,149, + 85,149, 74,101,131,250,245,235, 75, 39, 78,156, 40,108,215,174,221,115,203, 30, 30, 46, 58,115,230,140,223,130, 5, 11,186,221, +185,115,199,164,211,233,110,235,116,186, 24,148, 34,209,222,215,215,251,179,247,250,244, 68,135,190,159,130,229, 40,132,127, 50, + 30,199,143,238, 25, 13,224,173, 24, 45,155,220,117,198,200, 81, 19,189, 67,154, 54,100,166,111,137,130, 76, 44, 64,215, 38,193, +212, 71, 99,167,184,175, 91, 54,125, 45, 50,209,182,176, 72, 22,103,200,155, 82,215,203, 50,176, 87,104, 21, 28,216,106, 25,136, +142, 95,129,150,187,205, 76, 60,240,237, 67, 0,168, 26, 54,214, 69,194,170,151,251,187, 51, 42, 9,171, 94, 94, 53,108,236,201, +152, 99,203,181,197,149, 69, 40,145, 84,220,186,101, 75, 13, 15, 23, 17, 4, 52, 5,134,161, 32, 96,104,152, 44, 44,250,191, 63, +240,173, 93,230, 50, 85,141,110, 52,240,145,227,129,141, 95,141, 25,143,142,148,230,156, 80,140,200,243,208,129,189, 2,149,155, + 4, 12, 67,129,161, 1,134,166, 16,159,110,196,240,225, 31,185,149,213,176,191,211, 82,213,116,210,128,224,174, 33,117,203,213, +223,126,137,114, 11,121,103,128,103,166, 73, 62,108,219,254,211, 3,249,214,227,175,240, 60, 55, 63,233,194,210, 19,197,137,152, +205,230,244,174, 97,239,184, 82, 2,133,252,228,190, 13,109, 4, 52, 5, 27,203,195,206,242, 96,243,215, 70,165,242, 91, 48, 52, + 77,129,231,120,140, 28, 57, 28, 93,195,222, 49,112,118, 46,201,249, 74,142,222,116,236,228, 69,111,179,141,195,130,229,235,166, +235,243,212,211, 99, 31,122,198,235,242, 50,199, 27, 51, 30, 57,189, 14, 6, 13,190, 73, 98,204,189, 81, 91, 14, 93, 70,221,218, +181,192,114,142,114, 6,151, 87, 96,203,225,203,168, 25, 92,211, 81,110,142, 71, 80,160, 18, 77,155, 52, 5,128, 55, 50, 90, 2, +137,203, 15,109,187, 15,153,214,163,255,199, 80,121,123,131,230,109, 61, 78, 30,222,210,227,215,159,230, 79,178,155, 52, 11, 74, + 37,198,179,207,158, 11, 60,199,149, 57,234,228,239,239,239,221,180,233,243,233, 24,237,118, 59, 42, 87,174,140,228,228,228,224, + 55,105,167,249,249,249,117,255,241,199, 31, 85,221,186,117, 19,250,250,250, 2, 0,210,210,210, 2,142, 29, 59,214,232,199, 31, +127,204, 72, 77, 77, 61,140, 98,102,244, 97,109,180,136, 22,128,145, 74,229,142,125, 4, 69, 79,252,236,195,250, 62,126,254,230, +194, 62,175, 86,167,137,191,250,244, 52, 37, 16,136,242, 63, 15,154,231, 57,170,152, 40, 81, 39,161, 80, 88,104, 15,133,149,113, + 13,225,133,110, 35,104,134,118, 92,172,118,155, 58,231,233,205, 90,165,136,196,213, 17,138, 69,171,222, 27,240,113,139,126,125, +123,195,207,219, 13, 39, 47,220,193,232,207,190,180,217,173,182, 69,111, 84,121, 48,140, 32, 35, 35, 35,222,195,195,195,183,236, +207, 91,170,202,239,199,143,170, 78,158,138,152,188,112,201,178, 49, 86,139,221,198,241,252,179,117,140,101, 50,137,176,115,143, +247, 93, 85,213, 66,164,203,126, 28, 33,252, 23, 70,180, 86,191, 21,163, 37,150,185,188,255,253, 87, 99,165, 51, 54, 95,198,225, +149,163, 51, 13,154, 76,239,103, 45, 5, 87,247,155,122, 77,110,163, 55, 41,161,210, 59, 40,148, 98, 4,163, 40,134, 81, 80, 52, + 37,230, 88, 46,209,110,177,204, 52,102, 61, 74, 45,235,222,115, 28,143,221,127,100,148,206, 0,241,168,190,105,251, 94,149,143, +187, 4, 38, 43,139, 1,131,134, 96,227,198,141, 46,222,110, 98,152, 44,118,204, 95,184, 80,171,139, 63,172,138, 79,204, 73,238, +212,243,203, 19, 49,113, 25,247,158,166,154,118,148,182,108,102, 43, 11,141,193, 14,131,153, 70,141, 58, 77, 49,127, 81, 77,233, +211,132,216, 47, 55,252,186,118,220,253,251,204, 70,142,161,167,153, 82, 31, 36, 22,122,211,249,214,237,234,234,225,185,181,207, +168, 89,238,143, 50, 4,224, 97,197, 19, 87, 41,222, 31, 54,206,181,170,175, 12, 10, 41,227, 30,155,144,236, 55,113,210,164, 11, + 49, 44,223, 76,163,142,137, 45,169, 60,149, 42, 85,234,219,163, 71, 15,249,132, 9, 19,132,129,129,129,248,117,203,206,138,173, +187,246,239,153,146,154, 30,200,243, 60,124, 84,170,196,145, 31,245, 63,120,228,200,145,132,196,196, 68,225,188,121,243,154,239, +221,187,183,118, 90, 90,154,211, 45, 83,150,231, 97, 50,179, 96,243, 31,144,234, 60,115,169,253,105, 64, 64,128, 36, 57, 57,217, +252, 66,148,129,122, 30, 40,164,186,118,108,219, 92,240,203,209, 56,232, 76, 44, 20, 82, 33,226,210, 13,104,210,176, 30,181,134, +181, 55, 40, 76,112,248,251,221,167,248, 40,249,176, 94,161, 85,160,242,144, 99,253,138, 89, 56,112, 41, 54, 44, 93, 71, 97, 57, +207,140,242,147, 8, 58, 43,184,212,229,237,154, 84,243,237,208,184, 34,174, 53,169,230,123,238, 70, 84,180,172,255,194,177,201, + 58,225,201,156, 99,227,180,133, 87, 60, 52,202,185,136,176,238,120, 2,228, 82, 1, 20, 82, 1, 20, 18,199, 43, 77, 83,101,107, +213,250,213, 10,100, 56,118, 56,195, 8,134, 15,124,191,191,255,224,129,253,121, 48, 52,118,238, 62,216,123,243,230, 77,169, 54, +171,101, 45, 75, 51,235,138,186,126, 94, 58,160, 52,160,114, 19, 99,210,218,123,112,149, 9,225, 34, 23,194, 85, 46, 68,135,250, +222, 96,222,124, 18, 24,143,209,189,171,118, 27,221,167, 82,251,224, 10,202, 26,183,159,228,221, 31, 62,243,250,146, 51,185,237, +191, 88,177,184,182,167, 46,215, 34,248, 97,226, 72, 65, 82, 74, 74,251,157, 7,207,118, 96, 45, 31, 71,217,173,250,111,213,119, +118, 22, 26, 21, 78,138,186,212, 40, 32,164,159,212,170,179,221,189, 29,149, 84, 45,199, 44, 65,100,188, 6, 10,169, 0,202,130, + 99, 43, 21, 64, 33, 21, 66, 41, 21, 32, 37, 41, 14,217,122,230, 66,178, 39,221, 30,103, 47,217, 75, 83,112,147,149,197,173, 88, + 29, 42, 5, 55,132,159,159, 63, 44,221, 62,168,116, 37, 98,247,254,171,103,247,205, 49,164, 61,252,214, 89,157, 45,135, 46, 99, +242,248, 81, 55, 40,224,102,254, 67,186,209, 15,115, 87, 54,158, 62,249,211,151,222,155, 56,109, 89,227, 55,143,100,185, 76,233, +208,231,147,105,173, 59,247,129, 54, 59, 29,127,156,216,129,174, 61,222,195, 7, 31,127, 14,119,119,175,249,139,102,126,117,219, +110,214, 68,188, 86,231,250,214,108, 85,175,110,173,205, 1,254,254,129, 28,231, 88,229,131,231, 1,157, 54, 15, 95,125, 49, 18, + 28,207,163, 65,163,102, 29,164,173, 59,243,124,254,106, 32,153, 89,153,250,168,135,247, 59,153, 50,162,174, 56,125, 44, 77, 38, +155, 90,173,198,173, 91,183, 16, 29, 29,141,200,200, 72,100,101,101,193,205,205, 77,167,215,235, 75, 21,188,175, 95,191,254,224, +136,136, 8,169,135,135,199,179, 55, 45, 22, 11, 92, 92, 92, 48,120,240, 96, 97,151, 46, 93, 2,186,119,239, 62,244,222,189,123, + 91, 0,104, 10, 45, 79,246,227, 20, 23,159,224,159,219,182,107, 59, 6, 0,100,174,126,177,203,127, 61, 24, 89,108,131,214,205, +191, 98,139, 22, 45,171,129,231, 65,129, 95,106,200,138, 78, 43, 38, 74,164,184,124,249,114, 85,134, 97, 4,207,159, 65, 28,126, + 90,191,189,230,239,231,239,246,157, 59,127,129,212, 85, 33,129, 58,207,130, 17, 31,244,113,250, 25, 44,243, 9,238,214,162, 69, +155,253,211,167,125, 47, 80, 42, 20, 56,113, 37, 6, 99,191,152,100, 74,141,191,183,128,231,132, 43, 13,234,232,140, 50, 62, 42, +223,202,240,184, 26,229,149,112,233,213, 85, 58,250,195, 94, 82,139,141, 69,174,222, 6,179,149, 5,203,241,200,211,219,112,255, +169, 22, 94,174,165, 95,202,141,231,249,166, 0,188, 1,168, 41,138,186,246,226,118, 65,131,174,192, 27,191,178,157,153,255,124, +240, 4, 96,129, 99,164,254,179,203, 39,127,187,168,247, 11,190,127, 31, 64,173,124, 77, 22,192, 85,138,162,114,138, 48, 91,175, + 69,185, 4,135, 14, 29,226,123,244,232,241,172,198,127,117,251, 85, 36, 34,161,191,194,205, 27, 60,255, 0, 47, 46, 96,172,242, + 13,200, 90,176,104, 73,185,207, 62, 25,149,160,201,205,174,152,255,246, 73,103, 30, 22, 2,138, 89,212,182,101, 72,151, 49,159, +124,130,224,170,229, 69, 44,203,242,247,162, 99,109, 27,214,173, 31,118,238,146,120,137, 38,233,222,148, 23, 66,144,165, 26,246, +201,114,108,210,171, 17, 44,150, 99, 95,109,221,190,166, 73, 81,128,187, 82,140,159,143,198,129,231, 1, 10, 60,220, 20, 66,108, + 59,147,132,216, 27,123, 52, 61, 26,104,244,131,231, 78,237,208,190,219,184,136,251, 79, 76, 59, 50, 50, 76,199, 1,164, 21,167, + 89,120,133,206,193,108,101, 97,179,219,177,235,224, 65,132,117,104,142, 22, 45,154,163, 77,235, 22,130,235, 55,238,124,252,201, +152,145,129,120, 62,186,227,153,166,212,167,122, 83,165,155,215,142,190, 99,230,185,220, 77,178, 67,192, 0, 85,124,101, 40,231, + 34,130,197, 78, 33, 94,109,205,191,115,220, 49,118,226,180,114,147,191, 28,115, 68,163, 22,215, 5, 30, 88,139,219,119,131,193, + 32, 30, 50,100,136,208,102,179, 89, 7,143,248,188, 75, 90,154,186,247, 79, 75,255, 39, 81,169,124, 96, 48,217,113, 35,242,113, +173,233,211,167, 85, 57,120,236,204,190,169,147, 70,239, 15, 11, 11,115,219,190,125, 59, 87,210,241,124,169,133,152,158,185, 98, +253,230, 93, 27, 23, 47,152,141,168,132, 28,172,251,101, 37,120,214,254,115, 9,135,234, 69, 77,126,200,144, 33,178,125,251,246, +149, 79, 74, 74,210, 24, 12, 6,245, 75,241, 8,154, 18,164,103, 27,224,229, 34,134, 72, 64,195,199, 67, 10,149,155, 4, 66, 6, +160, 41,138, 45, 76,115,221,142,195, 51, 57, 67, 30, 14,108,181, 12, 92,191, 98, 22, 62,254,236, 59,220,203, 20, 31,163,229,110, + 51, 63, 29,216,119,178,183,140, 13,243,119,167, 85, 29, 26, 87,130, 66, 42,194, 55,227,134,160,217,141,120, 85,114, 46,247,157, +218,200, 52,156,118,236,217, 98,221, 39, 95, 14,142, 56, 34, 88, 46,114, 33,142,109,158,159,161,207, 83,231, 21,116,201, 89,204, +166, 4, 39, 47,227,147,133,180,108, 39, 55,172, 87,103,214,152,240,225,116,203,208,102, 60, 77, 11,145,169,181, 80, 60, 15,124, + 49,118, 52, 62, 29, 61,210, 55, 49, 37,227,135,149, 43,127,158, 18,241, 59, 63, 67,175,126, 56,181, 56, 77,154,114, 68,129,148, + 82, 1,148, 50,135,113, 81, 74, 5, 48, 89, 88, 80, 20, 24,247, 10,141,242, 40, 71, 36, 55, 37, 59,161,200, 22,248, 75,154,229, + 42,212, 57,245,123,172, 75,205,156, 29, 57,151,226, 82, 34,103,222,184,147,126, 21, 64,118, 96, 27,247,161, 86, 59, 15,157,201, +142,184,116, 3,236, 86,158,250,248,157,138,168,220,143, 10,158,189,254,230,198,163,119,224,250, 66,165,255,146,102,242,229, 93, + 38,207,186,125, 6, 44, 94,246,203,181, 5,179,190, 99, 50,243, 44,224,120, 30, 82, 49, 3,153, 88,144,255,195,192,168,207,195, +202, 85,107,210,236,160,250,226,236, 89,123,105,174, 79,112,252, 7,125,186,181,217, 70, 1, 98,138, 22, 37,249, 87,172, 84,177, + 99,207, 97,210,142,189,134,128,181, 91, 38,223, 56,207,159, 54,100, 68,157,114, 70,179,110,237, 90,160,128,155,250,140,232,209, + 0,160, 80, 5,253, 92, 51,184,102,227, 87,223,171, 94, 61,184,177, 51,231,253, 89,164, 84,234,242,153, 71, 57,239,239,130,235, + 52, 84,165,231,152, 41, 23,207,242,136,123,116, 11, 91, 87,253,176,137, 51, 89,166,157, 58,188, 99,214,146,117,123,223,239, 24, +214, 7,235,127,250,223, 55, 89,169,207,140,214,201, 23,162, 85, 31,108, 88,187, 58, 80, 40,150,192,102,231, 96, 99,121,199,171, +157, 69,118,118, 14,108,118, 14, 82,185, 11,236, 28, 5, 27,203,193,102,231, 96,182,216, 21,163,135,116,255,196, 4, 92, 41,172, +156, 1, 53,219, 30, 23, 73, 36, 21,121, 56,214,174,229,121, 30,113,105, 70,218,207,207,111, 11, 0, 72, 36, 18, 72, 36, 18,112, + 28,135, 27, 81,234,207,188,130,131,198, 32,223,224,177, 86, 75, 66,110,252,197,174, 69,237,187,175,175,111,207, 87, 77,150,201, +100,130, 78,167,195,249, 75,215,220,214,110,220, 21, 22,151,144, 84,149,227,221,204, 46,170,170, 93,181, 25, 49, 61,139, 58,158, +218,244,168, 79, 92, 67, 70,210, 19, 62, 29, 90,125,217,134, 67, 87, 31, 31,159, 89,108,158, 86,229,142, 95, 91, 38,140,122,175, +201,220,165,235, 30,229, 92,252,121,124, 73,231, 72, 32, 16, 8,213,106,245,179,251,123,249,154,173, 77,110, 70, 37,191,187,100, +241, 18,233,141, 24, 45,238,198,165, 96,104,167, 10,142, 22,142, 19,231, 93,225, 83,213,171, 74,181,106, 91, 86, 46,157, 43,120, +148, 98,194,138, 61, 87, 17,177,255,231,243,105, 25, 87,194,144,158,106,124,147, 58,228, 45, 24,173, 34, 53, 79,223,201,132,206, +100,135,217, 98,135,141,227,161, 49,216,144,145,107,129,198, 96,133,206,104,199,208,206, 21, 10,253, 94, 9,126,196,155,162,168, + 67, 60,207,247,224,121,190, 19, 0,113,193,182,227,153, 77, 29,202, 55,100, 47,109, 79,158, 60,249,219, 57,115,230, 68, 22,124, +182,224,253,130,207, 22,247,254, 11,223,247,252,230,155,111,234,206,157, 59,119,118,104,104,232,182, 63,254,248, 35, 22, 64,142, +179,221,135,130, 23,119,230,208,161, 67, 37, 29,232,170, 86,155, 85,226, 42, 19,162, 74,229, 10,248,232,219,245, 94,191,205, 29, +158, 33, 21, 11,152,163, 71,143,150,203,178, 40, 65,211,140,211, 77, 20,165,119,141, 22, 34,145,248,240,194,133, 11, 49,176,103, +107,217,211, 76,155,238,206, 83, 99,186,222, 2,187,202, 59, 72, 60,115,246, 92,229,220,121,243, 63, 61,116,128,203,213,165,223, +159, 95,120, 23, 95,147,235, 12,245, 66, 14, 22, 69,129,231,216,164,156,248,107, 77, 0,160, 44,185, 88, 58,147, 13, 76,126,110, + 13, 69, 1, 6,147, 29, 12, 67,101,228, 70,237,184, 63,120,198,204, 14,155,182,253,158,194,211,238, 90,189, 62, 78, 14,199,154, +131,165,198,100, 97, 97,182,177,136,188,125, 3,109, 66,106,163, 69,147,154, 48,152, 88, 24,204,118, 84,174, 22, 12, 0, 94,133, +158, 56,134,142,229, 89,155,137,231, 89,151, 30, 77,189,161,114, 23,195,207, 67, 2,137, 88, 0,155, 29, 48, 90, 56,152, 44, 44, +226, 51,140,208, 26,101,168,215,182,127, 21, 79,191,235,230,180,120,217,190,236,167,215,251, 22,107, 78, 89, 22, 27,182,236,170, +158,146,146,222,251,200,190,205, 18,181,198,134, 59,241,122,100,228,154, 1,198, 27, 63,206, 94, 33,249,122,124,248,187, 27,182, +238, 78,232,216,186,121, 66,105,247,217,160,142,218,180, 99,231,174,159,123,244,120, 87, 22,121,229, 8, 30,221, 58, 53, 75,159, + 81,170,252, 44,186, 65,131, 6,246,240,240,112,237,236,217,179, 3, 15, 28, 56, 80, 89,173, 86,223, 2, 96,115,119,119,175, 25, + 84,189,226,237, 19,199,142, 6,116,127,183,191, 48, 41,211, 8, 55,185, 8, 21, 85,114, 92, 58,127,220, 38, 22, 11, 11,205, 55, +201,239, 30, 28,132,142, 95,225,192,165,216,176,200, 44,233,153,145,195,135, 38,156, 56, 23,149,181,124,227,137,255, 5, 40,109, +183,164,156,122,249,245, 38,213,124, 39,143, 29,130, 57,203, 54,225,236,141,168, 12, 61,237, 55, 43,213,108,255,189,232, 80, 58, + 32, 96, 40,184,200,132,208,107,212,121, 79,110, 30, 11,122, 75, 97,234,161, 39,246,109,162,179,181, 54, 36,102,154,168,148,108, + 45, 88,142,135,187, 92, 4, 59,199, 35, 55, 59,147,218,188,105, 35,174, 93,187, 68,131,161, 71, 0,152, 90,236, 1,165, 28, 93, +133, 74,169,208, 17, 17,146, 57, 94,109, 44,135,224,234,213,176,122,249, 34, 87, 47,149, 15, 90,181,113, 62, 55,218,197,179, 98, +131,109,191, 46,199,153, 63,110,182, 59,187,100, 69, 83,165,191,247, 50,138, 98, 23,128,135,201,108,101,145,151,155, 3,177, 37, + 17,205, 2,212, 40, 39,103, 17,175,241,195,189,180, 71,202,146, 42,252,172,123,123,111, 81,252,187, 83,118, 29,140,152,211,181, +115, 59,220,139,215, 64, 38, 22, 64, 42,102, 32, 21, 51, 16, 82, 44, 22,173,250,217,150,147,167,237,145, 21,185, 63,243, 13,174, +207,147,249,173, 95,135,185, 99,117,222,155,150, 77,249,109,228, 87,243,186,134,245, 25, 70,221,187,118,250, 91, 3,112,202,185, +134, 30,239,212,123, 28,231,252, 51, 78,234,226,181,116,220,215, 51,199,117,233,209, 31, 12, 35,128,205,102,195,238,237,155,240, +235,138, 31, 31, 90,116, 89,195, 0,112,150, 12, 38,124,199,166, 85,253,191,250, 97, 17, 85,183, 65,179,230,167, 83, 95, 95,142, +150, 99,168, 95, 62, 28, 62,106,128,143,143,143,203,243,136, 22,143,160,224,218,232,214,235, 61, 28,223,191, 23,247, 35,239,128, +227, 29,134,137,227,120,228,230,100,165,217,109,150, 13, 69,246,120, 72,165, 21,215,255,186,177, 6, 77, 83,176,218, 56, 88,236, + 28,198,127,242,145,101,244, 23,223,182,234,214,165,109,164,152,129, 38,254,105,170,251,165,155, 15,234,113, 66,101,224,240,137, +139, 68, 38, 51,139, 60,131, 13, 71,214, 21,237,117,164, 30, 21, 66, 43, 53,238, 54,124,244,247,171, 37, 18,134,182,214, 9, 10, +140,109, 27, 82, 39,177,130,191,151,118,250,220, 21,205, 46, 92,185,217,237,253,193,195,165, 67,107, 54,166,252, 61,101, 46, 31, + 13,238, 83,159,181, 91, 63, 52,100, 39, 22, 57,191,160, 80,238,145, 91,161,114,117,195,243,136, 81,208, 30,138, 71,149,151,156, + 7,133, 88, 99,122,116, 95, 0,240,243,175, 96, 18, 74, 92,181,165,136,192,240, 0,176,108,205,214, 38,183,163, 83, 70, 46, 94, +188, 68,126, 35, 70,139, 91, 49,121,144,136,104, 88,109, 28, 40, 39,131,218, 28,207,140,250,238,155,201,174, 57,122, 22,103,238, +168, 17,121,253, 52,111,209,153, 6,203,237,174,125,161,114,249, 16, 64, 53, 0, 79, 40,138,255, 69,159,238,187, 31, 56,107, 47, +237,117,207,113,142,246,178,171,119,213, 42,172, 64,210, 77, 40, 86,132, 82, 20, 95,135,226,225, 1,240,201,217,249,207, 84,103, +157,154, 62, 61, 26,243,102,255,128,165,107,247, 34, 37,203, 4, 55, 54, 17,251,215,205,196,132, 57, 91, 96, 52, 23,157,213, 80, +146, 31, 41,204, 24,189,106,184, 10,126, 47,248,220,156, 57,115,122,188,114,110,122, 20,113,206, 94,251, 92,193,247,231,206,157, + 59,251,133,191, 27,156, 53, 89,207,140, 86,193, 78,149, 96,182,130,188,253, 42,254,177,127,223, 30,143, 28,157, 21, 82, 17,131, + 10,149,171, 99,234,242,253,222,239, 52,241, 66,166,213, 13, 91, 87, 47,200, 54, 25,180,219,157,170, 44, 84,193,205,101, 74,197, +145, 61,187,247,162,106, 5,149,104,243,249,236,184,155,177,198,103,161, 94,141, 58, 65, 92,217,213, 32,232,219,167,143,252, 84, +196,233, 47,116, 64,161, 70,139,161,152,242,107, 54,238, 86,185,200,132,160, 40, 64,107,180, 99,228,135,239,149,253, 49,198,115, +204,240, 97, 67, 65,229,155, 44, 77, 86, 26,190,253,250, 19,147,194,246,232,254,211,248,167,201,157,122, 78, 56,165,209, 81,166, + 1, 67, 62,185,118, 63,122, 78,142,193,240,102,139,252,152, 45, 44,204, 86, 14, 49, 49, 79, 48,126,104,103, 8, 25, 26, 12,195, + 57,146,165,237, 69, 95,140,186,148,232,108,248,138,250,109, 90,248,217, 26,127, 31,149,167, 82, 33,227,149,114, 9, 85,167,102, + 13, 81, 72, 72, 11,113,229,224,250,162,243, 15,140,120,170, 54, 34, 54, 37, 15, 18,159,134,130,129, 29,222,193,166, 37, 19,219, +101, 63,189, 78,227,245, 36,197,151,248,253,204,229,158,107, 87, 45,150,164,231, 90,241,240,169, 14,105, 57, 38,164,230,152,145, +150,109,130, 82, 38, 68,155, 94,225,146,195,251,127,233,217,177,117,243,101,111,178,223,177,177,113,135,227,147, 83,251,215,111, +212, 12,155,126,251,181,181,187,123,101,215,220,220, 56,141,179,103,103,230,204,153,226,185,115,231, 10,150, 47, 95,174, 9, 9, + 9,241,253,230,155,111,186,102,100,100, 92,173, 84,169, 82,240,241, 61, 27, 34, 26,182,233,221, 20,156,213,187,117,219,246, 34, + 9, 39,192,137, 67,135,172, 59,182,111,206, 50, 26,181,163,139, 53, 28,114,183,153,233, 58, 10,222, 1, 1,145, 74, 49,219, 89, + 64,231, 70,231, 28, 27,183, 49, 7,216, 83, 53,108,236,201,211,215,163,162,155,220,136, 87, 69,220,120,156,145,109,176, 6,197, + 28,155, 80,108,197,203, 80, 20,132, 12, 13, 23,153, 0,116,126,173,170,244,175,255, 24, 20,229, 93, 16, 57,165, 64,229,191, 2, + 20,133,148,156,167,183,156,200,217,160,120,142, 7,162,146,244,208,153, 28,161,249,242, 94,114,168,211,147,240,211,178, 13,184, +121,253, 26,186,188,211, 11, 43,215,108,198,200, 15,251,155, 74,106,253,208,116,126, 68,235,133,104,150, 82, 38, 0, 64, 33, 87, +111,195,238, 11,137,168, 86,133,118,250,193, 0, 0, 46, 74, 57,242,180, 70,208, 34, 23, 60,185,113, 68,126,244,244,149,111,166, +204, 88, 60, 41, 39,245,206,211,199,119,207, 35,216, 43, 15, 85, 2,172,136, 76,115,197,245,172,202, 8,174, 94, 21,180,232,154, + 83,218,153,145,245,230,237,167,119,247,104,210,176,118,104, 69,149, 59,140, 22, 54, 63,170,197,224,215,245, 27, 17, 31,151, 52, + 60,235,254,254,155,111,195,209,234, 51, 98,213, 18, 85,245, 79,239, 94, 57, 21,219,103,240,167,240, 11,168,208, 32,247,233, 45, +167,211, 22,156,121,143,117,210,104,137,228,238,223,140,255,238,127,227,186,116,239,135,203,231, 79,225, 86,228, 19, 52,111,222, + 20,239,188, 59, 16, 90, 77,118,205,157, 27,151,116,182, 27,180,199, 5, 18,251,184,102, 45, 58, 80, 28,203,226,209,195,123, 79, + 10,211, 50,166, 70,221,186,148, 26,229,250, 82,247,148, 87,205, 6, 74,183,114,183,204, 86, 22,201,201, 73,184,248,199,153, 70, +198,212,168, 91,165, 57, 94, 18, 17,131, 19, 55, 51, 96,181,113,176,218, 57,180,105,219,217, 34,162,205,173,103, 45, 94, 31,146, +154,146, 74, 43, 92,189,184,114, 1,181, 68,126, 18,171,249,118, 76,158,200,106,227, 80,213, 95, 81,172,166,183,127,245,217, 19, + 39,142,175,197,136,100,208,234,205,150,212,148,100,223,213, 91, 79,235, 30, 60,188, 27, 80, 94,229,230,250,191, 37,191,136, 52, + 38, 10, 25,121,102,100,107, 53,212,224, 81, 95,249,175, 93, 49,231,131,226,140, 86, 33,233, 34, 85, 14,159, 56, 95,211,195, 69, + 68,233, 76,118, 46, 75, 99,101, 7,191, 91,182, 65,151,249, 38, 43,124,241,162, 37,242,155, 49, 90,220,142,201,131, 84,196, 64, + 44,162, 97,177,113,112,242,118,162,125, 85,190,163, 91, 52,169,135,227,183, 50,193, 48, 52,140,218, 28,131, 0, 89,209, 77,218, +117,145, 55,110, 22,130,246,237,218,226,113,116, 84,133, 67, 7,118,119,188,116,241,108,154,221, 26,244,153, 94, 29,189,183, 84, +129, 5,131,129,177,137,125, 63,242, 11,168,212,178,239,192,143,220, 42, 86, 8,160, 84, 94,158,176,243, 2,132,127,248,158,211, +119,190,195,152, 3,115,103,124, 3,179,217, 2,111,119, 49,120, 30, 88,191,108, 42, 44, 22, 11,252, 61, 37,200,211, 23,189,154, + 92, 73,126,164,168, 40, 84,169,114, 79, 94, 48, 99,197,189, 79, 81,212,161,201,147, 39,127, 11,128,159, 60,121,242,183, 5,219, +115,230,204, 49, 2, 72, 41,161,235,112,245, 75, 70,171, 96,231,138,190,187, 69,193, 94,158,126,151, 78, 28, 63,230,182,239, 54, +135,203,123,175,163,123,115, 63,136, 4, 52,228,110,254,184, 29,151,135,195,123, 86,229,238,223,246, 75,178,217,108,158, 95,114, + 95,115,245, 38, 74,185,226,248,111,155,182,115, 94,158,158,244, 79, 39,212, 49, 89, 90,251,179, 46,173,232, 43, 7,184,235,199, + 87,251,241,160,142, 73,165,210,234, 22,139,197,163,164, 19,187,254, 68, 66,126, 18, 47,245, 54,234, 86, 80, 12,195,110,218,188, + 9, 94,174, 98,152,109, 28, 38, 79,250,220, 56,180,139, 50,119,240,251, 3, 59,180,239, 54, 46, 66,168,168,113,170, 69,163, 26, +124,195,134, 13,115, 25,134,113, 42,149, 66,165, 82, 77,165,105,122,144, 88, 44,118,177, 88, 44, 90, 11,103,146,235, 77, 22,152, +172,128,193, 96,130, 80,228, 48,139, 66,134,130,209,100,129,193,104, 41,254,198, 72,187,119, 1, 64,144,230,133,152,210,169, 7, + 85,197, 91,118,238,255,188,223,251, 3,166, 4, 52,120, 87, 25,151,154, 7, 17,101, 69,211, 90,126, 56,125,108, 47,159, 20, 31, + 61,190, 36,147, 5, 0, 25,234,236, 64,111,111, 31,220,140,213, 33, 57,203,136,180,124,147,149,154, 99,134,214,168, 69,253,138, +254,200,205,203, 11,124,227,227, 11,236, 61,126,252,120,255,110,189, 7, 96,220,164,105,173,214,173, 90,112, 71, 33, 22,126,172, + 79,127,116,198, 25,163,117,239,222,189,236,175,191,254,186,218,154, 53,107,232, 15, 62,248,192, 88,175, 94, 61,233,144, 33, 67, + 90,109,220,184, 81, 42,151, 75,141,183,207, 31,152, 50, 98,236,228,222,171,151,206,108,144,147,147, 67,217,109,182,163,214,156, +156,201,186, 18,204, 92,226,129,111, 31,254, 24, 99, 29,214,185,181,247,129,114,114,186,142,132,183, 12, 68,173,169,219,241, 96, +170, 53,230,216,114,173,172,255,194,177, 41,185,220,119, 38, 90, 53,171, 36,147, 5, 0, 52, 67,193, 98,103,225, 34, 19,130,166, +233, 2, 19,239,247,235,246,163,114,111, 55, 49,132, 12, 13, 1, 67, 65, 99,176, 33, 83, 99,197,167, 31, 57, 59, 67, 8,207,217, + 89, 30, 70,139, 29,134,252,214,161, 86,147,137,111, 38,125,137,119,122,246,193,136,209, 95, 34,199, 8, 92,143,213,194,106,179, +149,120, 83,208, 20, 13,131,217,142,143,187, 84, 68,182,206, 10,189,209, 14,139,157,131, 92, 44,128, 80, 64, 67, 33, 21,192, 85, + 46, 4,120, 94, 84, 80,153, 8,133, 66,147,205,102,219, 84, 76,139, 30,149, 3,125, 96,180,209,104, 54, 96, 1, 58,133, 6, 33, +242,194,110,193,217,203,119,171,124, 49,233, 59,124, 62,178, 39,118, 61,172,134,114,170,138, 80, 42,100,176,241, 52, 0,222,201, +132,189,169, 28,109,237, 51,232,231, 53,235,163,166,255, 48, 89,154,171,167, 32, 17, 49,136, 56,117, 18,151,174, 92, 95,154,121, +127,255, 38,188, 69,132, 60,237,227,234,234, 10,169,152,129,197,106,182, 56,159,186,192,131, 7, 26, 41, 84, 65, 63,231,183,248, + 27,177, 28, 10,121,175,100,163, 37,144,186, 78,254,108,210,244,217, 93,186,247,195,137, 67,187,176,115,215,118, 54, 52,108, 56, +179,249,215, 85,104,213,169, 23, 90,117, 25,128,163,123, 55,126,169,231,168,218,225,227,166,204,104,211,161, 27, 78, 28,222,133, +244,180,164,133,206,150,151, 17, 82,227, 58,116,238, 9,147,133, 69,235,142, 61,112,236,224,222,177,200, 31,100,225,252, 67,236, +149,250, 25,180,253,203,241,227,132, 25,185, 22,161, 90, 99, 65,146,218,128,184,116, 3,246,111, 91,199, 59, 95, 95, 88,154,182, +169, 95, 94, 24, 62, 47, 34, 49,176,188,159, 89,104, 54,202,162,159,196,212, 28,241,209, 80, 97,149,234, 53,233,140, 60, 51,212, +121,102,100,230,153,161, 51,217, 81,189,124, 13,218,102,167, 66, 75,123,158,189,220,196,194,149, 7, 99,225,170, 16,162, 69,205, + 55, 31,104,203,113,220,115,147,181,216, 97,178,238,196,230, 65, 34, 98, 32, 17,209,144,136, 24,216, 89,222,169,134,139, 76, 21, +212,237,211,207, 62,241,183,216,129,172, 60, 11, 4, 12, 5,149,151,135,162,105,131, 65, 88,191, 96, 44, 0, 96,228,215, 63, 97, +196,199, 67, 80,171, 78, 61,228,230,228,248, 14,234,215,109, 49,128,189,206,150,245,200,137, 51, 21, 78,156,187,249,245,167, 19, +127, 84,190,223,179, 61,115, 43, 38, 15,169,217,102, 60,137,214,150, 42,242, 6, 0,118,150, 3, 15, 30, 27,182, 31,130, 76, 44, +128, 58,207, 10,158,231, 49,115,249, 14,184,200,132, 72,205,113,116,247, 23, 71,177,126,164,152,136, 84, 41,162,141, 61,224,200, +229,242,118, 54,162, 53,103,206,156,200, 57,115,230, 20, 26, 33,123,193,100,189,217,162,210, 34,145,162,166,171,167,215,229, 19, +199,142,184,236,189,205,226,244,237, 44,244,107, 93, 30,186,236,167,152, 63,233,253,108, 10,188,133,102,152, 92,179,209,176,199, +104,212,207, 2, 96, 45,246,162,241, 13,106,164,144, 42, 79,174, 92,253,155,221, 75,165,194,166,243,217, 73, 57,122,187,237,121, +183,149,141,186,126,124,117, 21, 59,103, 11, 51,165, 63,190, 86, 82, 75,156,227, 33,154,179,106, 63, 0, 30, 28,199,129,231, 56, + 8,165, 74,133, 87,213,144,244,252,138, 78, 42,160, 41,211,139, 53, 0,207,217,147, 50, 99,139, 15,131, 82, 0,220,228, 66,108, + 63,155, 12, 0,233,140,246,198,131,193,239, 59,186, 11, 77, 22,169,166, 78,181,106,124,211,166, 77,115,101, 50,167,166,191, 98, +124,124,124,174, 78,153, 50,165,230,136, 17, 35, 36, 98,177, 24,118,187,189,220, 47,171, 87,115,171,103,141, 68,223,177, 43, 33, + 18, 75, 96, 52, 89, 33, 20, 10,144,147,167, 67,174,198, 0,173,193, 86,250, 43, 40, 38,198,162, 6,230,237,219, 43,238,211, 85, + 89,191,153,152, 22,161,113,176, 31, 78, 31,223,199, 95, 62,182,126,164, 49, 35,250, 55, 39, 47, 68,232, 76, 54,164,100,153,144, +156,101, 66, 90,142, 9,105,217,102,164,229,152, 64, 81, 20, 76, 22,123,153, 30, 92,250,140,168,157,155,126, 91,219,203,108,197, +192, 54, 93,250,224,203, 31, 87, 86,220,244,243,220,147,177, 60,221,210,201, 68, 91, 54, 50, 50, 50,254,163,143, 62,106,176,117, +235, 86,166,110,221,186,198, 7, 15, 30,200,243, 77,164, 85,169,148,203,214,173,152,115,188, 89,179,102,219,146,163, 31, 70,228, +247,167,151, 88,177, 87,108, 59, 76, 34,179,222, 12,175,160,104,209,181,170,175, 28, 21, 20,218,174, 53,149,183,231,103,117,248, +124,182, 58, 98,105, 70,170,217,254,187,218,200, 52, 76,214, 9,157,202,193,179,153, 77, 9,125,251, 13, 4, 67,209,176,154, 12, + 9, 5, 23,151,202, 77,140,169,155, 31, 66, 41, 21,194, 69, 38,128, 82, 38, 68,171,218,229, 80,138,250,140,183,177, 28, 12,102, + 22, 70,179, 29, 38,139, 29, 94,129, 30, 88,179,105, 39,158,102, 24,177,255, 90, 38,162, 18,180,168, 81, 94, 1,158, 47,185,154, +228, 88,155,190,231,123, 31,184, 48, 52, 5,134,166,232,218, 53,131,144,173,179, 66, 36,160, 33,146,202,160,144, 8,224, 42, 19, + 66, 36, 18, 34, 35, 35, 3,102,179, 25, 21, 42, 84,144, 22,111, 5,121,184, 40,101,168, 81,197, 31, 86,155, 29, 71,206,221,199, +172,241,125,209,185, 77, 19, 80, 66, 37, 30,154, 27,193,165,156, 11, 56,154,134,213,206,193, 98,101, 1,208,166,162,244, 2, 3, + 3, 59, 40, 20, 10,133,193, 96,208, 62,125,250,244, 76, 90,212,222,167, 44,211, 59,252,216,137,136, 77, 61,222,233,140,155,119, + 34,177,107,239,129,243,153,158,121, 19, 11,190, 83,167, 78,157, 16, 47, 47, 47,101, 86, 86,150,230,222,189,123, 87,223,180, 93, +192,211,244, 23,161,173,218, 65,151,155,129,244,196, 56,167, 91,209,181, 42,186,224,251, 57, 43, 27, 7, 7, 5, 55,102,121,135, +241,170, 93,193, 5, 19,126, 92,214,184, 90,141,160,198, 5, 3, 66,106, 85, 40,126, 90, 54,129,220,165,203,135, 35,190,156,211, +171,223, 48, 68,156, 56,128, 69,179, 38,109, 82,184,121,215, 42,231,225,214,176,110, 72, 23,156, 63,121, 0, 82, 23, 95,120,120, +250,182,250,224,227,207, 58,245,251, 96, 20, 46,157, 63,137,165,115,191,221,200,154,181, 91,156, 41,171, 66, 85,197,187, 65,163, +102,131, 93,202,249, 32, 55, 79, 11, 23, 15, 21,106,213,111, 58,248,254,109,243,215,250,140, 88,245, 27,155, 14,158,135,217,202, + 35, 71,103, 69,162,218,136,248, 52,135,209,226,184, 82,228, 4,177, 28,165,148, 10, 4,229,108,143, 43,220, 61, 25,193, 87, 12, +244,161,230,205,152,196, 88, 33,133, 58,215, 97,178,212, 26, 11,212,121, 22,232, 76, 54,148, 83, 8,192,177, 92,169, 91,221, 57, + 58, 43, 92,228, 66,184,201, 69, 78, 71, 25, 11, 99,213,175,219,131,111, 71,167,188,187,104,209, 18,249,173,216, 23, 76,150,208, + 17,205,146,136, 24,176, 28, 7, 56,113,199, 11, 5,194,113,189,187,117, 66, 98,166,209, 49,106,153,166, 80,163, 94, 51,120,201, + 56,116, 28, 48, 25, 0,208,179,155, 35,181, 45, 54, 85,143,131,151,213,192,203,137,221,197,215,197, 70, 35,179,122,243,225, 47, +118,238,216,230,102, 98, 5,248,229,104, 60, 12,102, 59,164, 34, 6, 18, 17, 3,153,136,121, 41, 31,187,100,163,229,200,185,123, +154,105,131,193,100,130,198,104, 3, 15,224,234, 99, 29,140, 22, 59,242,244, 54,132,212,244, 40, 91, 32,132,162, 14,243, 60,223, +253, 85, 67,244,170, 89,122, 33, 34, 85,152,198,181, 23, 53, 10, 62, 95,148,145,123, 49,103, 11, 64,169, 70,112, 9, 94,117,142, + 47,110,139, 20, 30,181,220, 92,220, 46, 31, 59,122, 72,185,247, 54,135, 51,119, 28, 38,203,102,204,196,194,175, 7, 37,105,114, + 51,219, 3,136,113,246,159,201,189,106,213,151,138, 37, 17,255, 91,242,139, 85,229, 19,192,237,185,156,155,145,103, 96, 95,114, + 19,172,217, 76,216, 55,223,224, 0, 0, 32, 0, 73, 68, 65, 84,243, 28, 47, 50,165, 63,118,170, 15,129,166, 41,235,143, 99,251, +128,227,121, 76, 93,178, 19,179, 39, 14,128, 82,246,129,156,162, 40,185,222,100,199,248,105,107,177,240,251,225, 46,114,137, 0, + 20,229,200,137,250,112, 96, 31,231, 46, 64,147, 29, 79,174,108,213,105, 99, 15, 61,120,177,187,176,121,171,119,174, 55,111,222, + 60,215,195,195, 3, 50,153,236,121,164,162, 8,124,124,124,190,255,241,199, 31,131, 71,143, 30,253,108,178, 79,129, 64,128, 79, + 63,249,132,102, 89, 30, 71,143,174,135,119,165, 70, 56,240,251,101,132,117,104, 10,157,193,132,236, 92, 45, 56, 48,111,124, 33, +106,115, 51, 35,210,226,239, 54,107,217,190, 39,206, 28,223,199, 95, 62,186,110,100,105,230,232,241, 40,231,145,120,227,238,147, + 90, 20, 85,206, 17,209,202, 55, 89, 22, 27,135,138, 62,114, 36,198, 63,129,187,155, 91,162,179,122, 50,239,224,222, 20,205,143, +166,192,175,215,167, 63,218, 9,128,215,167, 62, 24,180,115,203,234, 59,145,247,110,205,234, 49,120,156,160, 75,191, 79,152,159, +231,124,246, 45, 0,103, 39,222,179, 70, 69, 69,221, 31, 62,124,120,139, 75,151, 46,177, 0, 12, 20, 69,217, 24,134,145, 91, 44, + 22, 81,251,246,237,243, 30, 62,124,120, 22,133, 39, 45,190, 68,171,143,118,122, 81, 18,237, 59, 98,206, 58,168,162,139,182,115, +251,214,161, 8,173, 19,136,196,214,161, 0, 48, 46, 65,167, 12, 54, 85, 91,187,221,102,151, 29,249,249,215,131,179, 71, 14,232, + 52,126,147, 96,234,162,212, 67, 83,139, 77, 68, 77,124,112,182,107, 97, 54, 94,192,208,112,145, 9,161,148, 9,224, 34, 19,194, + 69, 42,132,205,206,151,166,229,200,219,236,156, 35,162,101,177, 67,103,180, 35,226, 86, 58,210,242, 44,200,213, 90, 97,180,178, +224,193, 59, 90,163, 78,212,230,234,199, 23,221, 11,158,164,238, 21, 26,229,173, 94,190,192,117,247,133,164,103, 35,250,220,228, + 98,184,200, 29,163,177,207,157, 59, 7, 79,207,146, 91,251, 28,199, 97,215,177,171, 88,180, 33, 2,199,214,127, 5,169,136, 65, +253,222,211, 48,236,221,230,224,120, 14, 79,162, 34,211,107,212,110,224, 67,211, 50,208, 20, 5,179,141, 3,192, 23,121, 60, 45, + 22,139,231,211,167, 79, 53,213,171, 87,247,245,247,247,239,199, 48, 12, 15,237, 45,243,190,109,217,134, 83,135,182,200,245, 70, + 51, 43,183,231,173,175,158,106,236,142,234,213, 65, 81, 20,239,234,234, 42,138,136,136,208,213,171, 87,207,251, 13,111, 37, 90, +166, 10, 90, 58, 98,204, 23,253,170, 85,173,138,157, 91,214,131,231,169,221,206,126,121,243,193, 75,152,241,205,203, 35, 12, 39, +252,184,172,241,194,105,227, 94,122,111,204, 55,139,138, 29,117, 40,147, 40, 39,246, 29, 20,142,235, 87,255,192,252,105, 19,182, +153,117,217,195,108,118, 91,255,236,212,216,109, 85,106, 55, 7,111,213,226,196,142, 5, 24, 48,100,164,164, 75,143,126,184,116, +254, 36,102,127, 59,102,179, 33, 55,227, 35, 56,153,228,204,241,194,209,237,187,190, 43, 52,154,173, 88, 54,239, 7,140,154, 56, + 11, 33, 29,122, 10,239,221,186, 60, 26,192,116,167,211, 33,172, 44,218,215,243,114,152,103, 27,135, 3,177,140,160,176, 43, 80, +192, 80,116,195,170,238, 48, 90,236,208,148,208,168, 20,136,132,105,185,121,154, 74, 43,102,127,193,232, 77,118,168,243, 44,200, +200, 51, 35, 51,247,185,193,202,204, 51, 67,157,103,129, 80, 64, 33, 58, 38, 1,180, 80, 80,234,252,188, 28,157, 13,205,130, 60, + 28,247,232, 27,246,142,216, 4,174,205,143,157,189,221,119,209,162,197,210,219,113, 90,220,137,213,228, 71,178, 24, 72,132, 52, +196,249,191,179,156, 35, 55,178, 56, 92,189,171, 86, 25,250,225, 7, 29, 93,149, 50,164, 60,202,128,128,113, 76, 17,227,166, 10, +132,155,196,132,207,198,132,195,203,211, 29, 79, 51,205, 88,186, 55, 26,119,238, 63, 6,103, 44,221,110, 47,251,101, 91,216,136, + 79, 39,184,211, 66, 49, 54, 30,143,115,148,147, 97,241,240,242, 65, 83,202,147,187,122,157, 38,139, 7,207, 58,153,131, 76,241, +118,214,113,185,205,158, 58, 25,219, 54,252,132,227, 55, 50,158, 93,129, 23,118, 47,196, 23,223,204, 68,166,198,130,194,174,203, +226,252, 8, 0,245, 11,145,168,215,182, 95, 48, 71,133,109, 83,249,219,150, 34, 52, 44,175,152, 43,203, 43,239, 91, 94,209, 43, +108,238,191,213, 37,118, 29,190,102,138,220,189,235,202,165,138, 63,142, 30, 61,168,216,119,135,127,102,178,172,134, 76,126,214, +184,158, 73,154, 92,117,151, 82,153, 44,239, 26,117, 37,114,201,217, 41, 51,151,154,125, 2, 42,217,143,220,210,100,105, 77,172, +253,245, 28, 4, 5,171,112,243, 54, 9,196,146, 69, 66,163,229,135,204,204, 7,250,146, 34, 79, 28,207,227,208,149, 52,240,188, +163,137,180,227, 92, 50,242, 91,230, 96, 57, 71,183,202,239,183, 50, 32,200,207, 67,113, 54,252,189,234,151,159, 52,221,235,229, +233, 7,207,158,250,172,187, 48,164,129, 35,146,229,234,234, 10,119,119,119, 40,149, 74,148,212,117, 72, 81,212,135, 35, 70,140, +120,173,245,159,145,145,129, 78, 29,219, 99,249, 79,107,208,160,227, 80,252,126,241, 56,172, 54, 14,245,107, 87, 69, 37,127, 15, + 36,166,107,223,232, 70, 87,248, 4,127,218,172,253,187,223,182,234,208, 19, 17,199,246,240,151,143,253, 26, 94,218,137, 16,187, +119,106,113,112,198,140,169, 85,166,204, 90, 33,113,145, 10,240, 64,103, 1, 77, 81,168,232, 35,135,167,130,198,153,125, 27, 77, + 3,122,182,112,122,114,188,192,192,128, 77, 11,151,175, 86, 44,156, 59,173,253,245, 27, 84,132, 46, 37, 58, 27, 0, 12,233, 81, +243, 30, 2,247,203,255,113,226, 72,131,182,125,224,227, 95,181,115,108,250, 67,167,205, 6, 0, 67, 76, 76, 76,236,148, 41, 83, +130,231,206,157,203, 51, 12,195, 1,144, 44, 89,178,196,240,232,209,163, 91,112, 12,205, 69, 73, 15,155,142,157,235,140, 87,138, +217,144,114,114,186, 78, 85, 95, 57, 66,235, 56,122, 69, 7,116,111,133,192, 10, 21, 16,147,102,104,152,109,224,132, 58, 11, 83, +117,229, 47,119,174, 85,246, 98, 70,218,141,150,251, 0,246,151,246,252, 80,120,158, 32, 95, 16,205,114,145, 9,193, 57,174,149, + 82, 25, 45,179,149,133,209,204,194,104,177, 67,111, 97, 97,176,176,224,120,199, 61, 65, 81, 20,172,118, 14, 78, 53,155, 95,185, +246, 93,203,121,161,106,101, 10,174,114, 71,217, 92,243,167,123,160, 0,120,122,122, 66,165, 82, 57, 21, 21,181, 88, 29,183,184, +197,198, 61,235,214,183, 88,237,224,121, 30,209,209, 81, 95,197,199,198,246,174, 94,163,122,155,218,245, 27,148,147, 75,104, 0, + 40,210,104, 25, 12, 6,214,197,197, 69, 85,174, 92, 57, 58, 57, 57,249,153,121,174,222,176,189,125,239,158,221,232,219,183,143, +238,193,213,219,207,134,184, 27,141, 70,170,101,203,150,174,129,129,129,180,217,108,214,148,246, 52, 41,188,131,222,245,240, 44, + 55,235,195,143, 70, 5,181,239, 20,134,211,167, 78, 96,255,158,173,191, 25,212,209, 39,156, 21, 9, 14,174,249,218,168,195,106, + 53,130, 94, 27,117, 88,169, 74,141, 98,141, 86,237,250, 77,155,243,148, 0,199, 15,237,224, 77,180,117, 12, 0,142, 53,105,119, +108, 95,245,253,244, 65,163,191,169,214,173,215, 32,124, 56,100, 24, 4, 2, 6,103,126, 63,136,133,211,190, 60,172,203,203, 24, +234, 76,154,128, 35,244, 86, 75, 20, 32, 11,252,188, 66,181,186,184,113,249, 60,158, 68,223,139,188,125,237, 82,157,234,245, 66, +224,237, 95,241,243, 4, 47,102, 46, 30, 60,176,150, 36, 99, 49,153, 18,134, 13, 29,130, 23, 71, 29,134, 54, 10,246,164, 94,189, + 1, 0, 24,180, 25,214,117, 11,198, 63, 42, 24,117,200, 89, 45, 9, 69,233,230,229,168,119,157,185,120,101, 98,239,238, 97,116, +166,198,226,136, 96,229, 89,242,127,204,200, 44,248, 93, 99, 70, 13,127, 37,162, 34,111,112,166,188,204,221,165,188, 47, 77,195, +250,119,189, 95,112,237,114, 28, 15, 10, 48,149,186, 91, 74,232, 26, 62,111,254, 34,233,237, 88, 29,238,196,105, 28, 93,133, 66, +198, 97,176,132,244, 51,211,229, 24,205, 94, 66,116,136, 98,102,127, 60,116, 32, 50, 53, 86,112, 28, 32, 96,232,252, 31, 17,158, +106, 41, 36,106, 13,200,204, 81, 35, 54, 62, 1,185,105, 79, 64,211, 52,188,252,131,156,158, 73,154,229,197,126, 6, 11, 95,175, + 95,247, 54,130, 61,127,164, 66, 46, 17,192,172, 77,199,209,237, 11,212,102,157,102,150,209,160,219,227,204,124,142,207, 83, 16, + 40,181, 70,103,242,145, 8, 25,236,220,176, 2,253,135,141,121,169,246,253,234,187, 25, 0, 77, 33, 59, 71, 11,138,162,212,165, +171,151,168,107,197,109,191, 97,100,172,204, 26,133,152,173,215, 27, 10, 69,183, 70,249,163, 39,142, 29, 84, 92,136,151,224,106, + 84,106,190,201, 82,115, 51,199,118, 79,210,230,101,119, 5, 16, 93,186,118, 33,221,117,192,199, 19, 35,171, 6,213, 54,159,190, +167,139,203,213,219,138,204,115, 8,237, 55, 37,242,250,225,229,221,242,108, 49,159, 40,252,106,179,156,221, 62,207,168,142,158, + 86, 68,215,161,120,218,210,157,207,186, 13,191,158,187,209,241, 59,203,130,229, 57,240, 28,240,217,247,171, 96,231, 88,112, 44, + 11,142,229, 97, 99,121,121, 73,197, 85,249, 87,218,147,243,112, 71,205,193,211, 95,239, 46,116,119,119,135,167,167, 39, 60, 61, + 61,225,234,234, 90,162,209, 18, 10,133, 74,129,224,229, 67,157,144,144,128,248,248,120,184,186,186,130,231,108,176,216,128,186, + 33, 93,112,247,201, 61,156,188,112, 11, 60,199, 66,161, 44,253, 42, 47, 10,159,224, 79,154,182,235,189,162, 67,175,225,248,125, +207, 47,252,181,115, 7, 71, 25, 51,162,215, 58, 29,161,103, 89,202,102,179,161,123,151,118, 9, 55, 35, 31, 31,251,110,226,232, +176, 22, 61, 70, 73, 66,131, 3, 96,178,176, 72,138,127,130, 51,251,126, 53, 5, 85,241, 59,222,177,117,243, 4,155,205, 6,150, +101, 75,124,144,155, 44,214, 76, 70, 40, 83, 12, 28, 56, 88,120,237,234,213,221, 10,239, 26, 59, 89,138,190, 77,241, 92,125,138, +231,251,214,175, 95, 11, 86, 27, 7,131, 65,147, 83,218,125,214,106,181,177,235,215,175,175, 50,116,232, 80,121,237,218,181,133, + 79,158, 60,193,194,133, 11,179,180, 90,109,172,179, 26, 39,206, 69, 45, 17, 80, 57,143, 10, 34, 90, 79, 91,133, 98, 96,143, 86, +216,118,248, 2,206,156,191,132, 4,157,242,150,206, 46,216,151,152,144, 98,174, 83, 78,179,187, 87,104, 37,102,231,134,156,221, +145,237, 38,191,207,243,146, 19,153,103,167,234,157,191,185, 1,173,209, 6, 87,185, 99,190,167,130,200, 22, 67, 81, 78, 59, 34, + 10,136, 61,127,233, 70,221, 38, 53,106,227,102,108, 30, 50,114,205, 48,154,237,224, 56, 30, 28,120,120,186,136, 33, 21,209,120, + 26, 31, 11,142,183,198,149,242, 81,161,110,219,166,173, 0,160, 64, 81,188, 64, 40, 16,128,135, 99,126, 69,153, 76,166, 83,169, + 84, 78, 69,180,172,118, 59,250,134, 53, 71, 72,211,250,232, 61,202, 49,103,230,169,223, 38,195, 67, 41,196,182, 77,107,145,120, +110,201,166, 42,161,163, 79,220,187, 27,249, 94,228,205, 63, 6,191,211, 88,214,208, 87,144, 34, 42, 42, 76,170,215,235,119, 3, + 16,139, 68,162,176, 54,109,218,148,219,189,123,119,174,151,151, 23, 39, 22,137,212,189,122,246,224,132, 34, 81,118,193,103, 47, + 94,188, 40, 28, 53,106,148, 75, 78, 78,206,211,244,244,244, 75, 0,108,197, 55, 4,131, 59,129,198, 86, 80,148, 84, 41,147, 39, + 84,174, 92,213,191,105, 72,115,183,119,251,246,135, 68, 44,193,239, 39,142, 97,217,226,185, 59,116,169, 15, 62, 46,205,145,124, + 91,163, 14,147,158,198,197, 26,140,230,122,117,155,180,163,206,159,216, 55,206, 10,175,197,140,196,186,160, 83,223, 49,213, 98, + 83,116, 88, 54,231, 43,120,184, 41, 16,247,228,161,241,209,131,187,171,108, 38,205, 87, 78,155, 44, 0,242, 44,246,189,208, 33, + 97, 30,102, 43,139,115, 17,135, 77,156,157, 11,187,116,246,200,147,242, 65, 77,165,117,155,118,244,200,220,191,182,175, 1,216, + 86,146, 78,242,195,215, 35,184,188, 37, 55,238, 84,196, 73, 55,159,138,117, 24, 10, 20,172,102, 19,212, 49,215,236,134,244,135, + 26, 77,242, 61,167, 70,225,102, 37,226,251,111,126,252,223, 39, 77,155, 52, 81,240,144,190, 20,193, 42, 48, 88,153, 26, 11,188, + 92,196, 48,106,212,120,116,237,152,201,160,102,138,157,239,204,110,209,203, 51, 51,210,197,207,211, 25,162, 67,138,251,124,102, + 70,186,216,110,209,203, 75,126,212, 49,112, 85,136,113, 55, 46,249, 89,226,187, 68,232,200,205, 18, 11,153,103,121, 90, 5,117, + 65, 9,180, 19, 73,221,145,156,101, 2, 5, 30, 28,107,135,221,102,129, 86,163, 65,114, 74, 26,210,211,210,161,213,230, 66,174, +244, 64,221,134,205,224,162,144,226,246,153, 29,224,121,222,169,121, 13,109,148, 48,184,105, 72,107,201,189,120, 71, 46,150, 84, +200,227,224,214,185, 89, 58, 77, 70,107, 93,234,163, 71,165,173,139,237, 44,123,242,206,253, 71,117,202,251, 85,166,110, 61,201, +195,166, 53,203, 97,201,143,108,218,108, 44,238, 61,213, 35, 53,219,128,167, 49, 15,120,142,101, 79,226, 63,130,160,232, 0, 32, + 4,245,235,214, 66,151, 15,222,197, 79, 63,173, 66, 76,108, 60, 55,107, 92,183,167, 58,109,238, 59,165, 48, 89,157,144, 63,215, +134, 33, 61,106,158,209,163,105,210,129,155,217,180,209,194, 23,155,224, 35,245,174,136,214, 31, 47, 60,110,212,102,139, 89,179, + 65,112,112,211,199, 91, 11,211,116, 56,104, 88,102, 77, 24, 0,165, 76, 0,138,162, 80,208, 93,184,114, 70, 56,228, 18, 71,223, +178,209,108,199, 7,227, 23, 97,211,162, 47,193, 3, 24,212,255,130,161,168,114,194,177,118,225,103,126,184, 90, 62, 33, 62, 35, +185, 83,207, 9,167, 76, 86,137,185, 71,159,161,215,155, 52,105,146, 43,147,201, 32,147,201,224,234,234, 10, 15, 15, 15,184,187, +187,151,184,239, 54,155, 77,103,177, 88, 60,197, 98, 49, 56,142, 67, 92, 92, 28,226,226,226,144,151,151, 7,181, 90, 13,189, 78, + 99,191,122,106,167,160,110,104, 55,248, 87,173,135,138, 53, 26, 64,200, 80, 16, 8,104,156, 57,176,166,168,114, 22,110,178,218, +246, 90,217,177,247, 8,252,190,103, 53,127,237,220,193,209,198,140,232, 53,206,158,163,252,238,158,219,125,251,246,173, 55,106, +212, 40,209,143, 19, 71, 29, 63,124,226, 76,244,206, 67,171,123,230,228,228, 6,242, 60, 15,119, 55,183,196, 1, 61, 91, 28,108, +223,178,105,194,169, 83,167,184,173, 91,183,154, 41,138,186, 91,156,166,163,146,202,248,237,212,201,136,169,173,219,182,195,218, + 13, 91,219, 70,222,127,208,246,201,147, 71, 8,172, 88, 21,149,171,212,128,129,242, 64,196,217,243,208,229,102,252,230, 76, 57, + 95,137,106, 81, 57, 57, 57,127, 12, 24, 48,160,203,133, 11, 23,232, 1, 3, 6, 24, 50, 51, 51, 47,190, 16,197,226, 75,210,188, +244,115, 31, 53,128,223, 42,182, 29,182, 35,217,154,251, 57,128,185, 21, 42, 86,192,153,243,151,112,233,194,149, 85,153,242, 10, +211, 62,254,224,163,240, 74,189,152, 17,189, 66, 43, 49, 42, 15, 57,182,172, 94,200, 28,184, 20,191, 40, 62,139, 93, 59,247,236, +212, 25,206,156,163,103, 15, 14,173, 21, 45,107,149,131,141,229,193,241,142, 10,215, 69, 42, 44,170,226,125, 77, 83, 96,145,124, + 60,122,212,168, 39,117,235, 55,252,226,131,143, 70,139, 26, 86, 13,196,213,199,185, 0, 69,161,156,175, 2,169,169,169, 56,183, +107,181, 61, 39,249,225, 42,134,225,166,151,226,120, 34, 39,225, 86,245, 23, 54,195, 51, 51, 51,113,230,204, 25, 20, 24, 44,111, +111,239,162,140,214, 75,154, 89,233, 41, 23,103,204,255,165,229,200, 15,251,160, 71,187, 58, 56,123,237, 9, 44,249,243, 53, 21, + 12, 37,143,189,244,179,248,243, 1, 85, 45,159,244, 13,210, 24,109,226,248,239,227,242,206,193,177, 6, 43, 87, 68, 57, 45,217, +217,217, 7,162,162,162, 90, 53,104,208,160,210,145, 35, 71,178, 35,175, 28, 31,247, 98, 33, 38, 76,152,160,252,233,167,159,228, + 60,207, 95,180, 88, 44, 49, 78,237, 59,141, 45, 55,174, 95,247,180,218, 56,156,191,114,187, 86,199,150, 13,193,241,192,181,107, +215,176,118,221, 90,211,221, 59,183, 22,232,211,125,167, 23, 99, 94, 10, 61,158,108,217, 70, 29, 62,211, 76, 77,142, 95,240,251, +225, 93,155,154,182,237,137,193,159, 77,159,126,230,240,214,169,141, 91,247,160,107, 53,237,130, 27,151, 34,112,242,200,177,255, + 89,117,217, 83, 81,114,238, 72,161,229,148,200,228, 99,107, 55,110,139,167, 9,241,136,123,116,239, 55, 83,246,227,148,132, 39, +204,111, 41, 73, 9,163,171,212,105,137, 11,199,183,141, 43,198,104, 21,123,205, 7,122,203, 86, 31, 57,116, 96, 96, 82,210,207, +190,122,163, 73,194,243,188, 73, 34, 22,164, 41,105,237,118,141,211,229,124, 96, 85,167, 84,234,219,255,131,209,135,151, 45, 91, + 44,244,113,151, 35, 45,199, 4,141,209, 10,173,193, 10,154,162, 80,221, 95, 1,131, 54, 27,103,119,205,183, 89,116, 57, 3,128, + 39,214,162, 52, 21,170,224,153, 57,143, 35, 62,155, 48,230, 52,196,110,129,254,149, 59,124, 83,108,180, 78,155,124,171,231,132, + 49, 7,131,121,158,239,168, 80, 5,107,245, 25, 81, 83,138,218,119,138,114,220,223,131,219, 7,194,106,119,204, 63,102,231, 0, +150,227,242,163,124, 0,255,172, 63,159, 42, 97,223, 41,110,251,225,139, 72, 73,207,133,209, 98,131,217, 98,135,213,198,130,102, + 24,184,123,184,163, 70,229, 70,112,115,119, 69,122, 90, 10, 46,157, 58,128,232, 59,103, 47, 82, 60,166, 25,213,143, 78, 57,115, +142, 68, 50,247, 96, 63,127, 95, 58, 85, 99,129, 76,204,224,214,217, 35, 86,155,197,188,192, 73,147,245,154,102,110, 86,246,162, + 47, 38, 78, 26,244,235,250, 13,190,245,170,184, 34, 41,211,136, 36,181, 9, 90,147, 45,223,136,113, 48,235, 50,113, 39, 98, 67, + 26,107,210, 46,194,127,132, 34,141,150,221,106,210,238, 62,118,213,115,242,212,249,204,227, 39, 49,182,153,159,119, 79, 50,234, + 52,221, 74, 29,201,122,129, 95, 63,173,178,237,207,216,137,215,186, 11,121, 14, 28,207,227,224,149,180,103,221,133, 92,126,230, +229,205, 39,197, 47, 35,248,226,218,133,237,186,141,251,253, 78,148,118,179,209,152,238,246,240,241,130, 28, 0, 96, 24,230,217, + 79, 65,110,150,201,100,178,148,208,133,178,113,205,154, 53, 95,143, 30, 61, 90,146,152,152,136, 39, 79,158, 32, 55, 55, 23, 82, +169, 20,199,142, 29,179,129,179, 47,184,115, 97,111, 92,212,141, 19, 63, 4, 55,233, 82,190, 94,104, 55,200,229, 10, 8,120,231, +147, 49,229,170,160,129, 77,218,246, 90,209,241,221,145, 56,185,119, 13,127,237,236,129, 49, 70,117,244,234,210, 30,203,220,220, +220, 72, 0,143, 22, 44, 88,208,112,237,218,181, 85, 38, 78,156, 24,179,113,197,212,101, 0,144,149,149, 5, 0,184,121,243, 38, + 63,102,204, 24,179,201,100,138,205,201,201,185,129, 18, 6, 64, 0,128, 81, 45,159,189,118,229,220,186,137,201,169,125,170,214, +109, 6,239, 42,205,224, 91,189, 57,114,180, 86, 92,125,156,130,152, 7,167,240,224,252,174, 35, 6,165,125, 42, 74, 57,191,113, +131, 6, 13, 2,105,154,174,172,211,233,124,107,215,174,221, 64,161, 80,220,108,208,160, 65, 35,129, 64,144,116,253,250,245,248, +210,104, 37,156,221, 96,174,216,118,216,210, 4,173, 75,251,152, 52, 67,163, 4,173,203, 77,131,196,237, 75,117,196, 82,243,175, + 76,192, 34,222,154, 25,185,115,131,102,247,150,213, 11,153, 15,194, 39,176,247,242, 60, 62, 23,200,196,191,151, 46, 92, 77,167, +126, 50,180,247,243,233, 29,242, 35, 89,249,191, 59, 21,166,207,203,187,147, 7,224,235, 59,247,133, 43,238,125, 62,106, 70,253, +166, 45,135,180,121,103, 0,109, 23, 41,113,124,239,207,124,236,157,136,157, 2,158,253,206,232,196,106, 0, 37,118, 7, 89, 44, +206,152,172,215,203,152,168,104,183,115,235,186, 97,187,247,238,153,243,110,175,222,158, 43,191,127, 31,243,127,217, 7,133, 76, + 2,158,227,240,126,251,192,126, 63,140,168,217, 51,208, 71, 26,176,251,116,210,185,207, 22,223,251,218, 96,176, 70, 59, 17,137, +225, 51, 51, 51,207, 43,149, 74,117,171, 86,173, 66, 36, 18, 9,149,153,153, 41, 80,169, 84,118, 55, 55, 55, 75, 82, 82,146,193, +108, 54,239, 6, 80,170,105,199,173, 54, 14,113,233, 38,236,223,179, 27,183,175,156,194,131, 7, 81,218, 7,247, 31, 44,167, 4, +252, 98,125,250,163,108,160,212, 13,124,112,133,142, 58,228, 75, 61,234,144, 53,107,183,108, 92, 53,179,131,193,100, 30,214,160, + 69,119, 84,170,213,146,182,218, 88,220,189,118, 26,167,119, 45,158,111,213,101, 79, 46,203, 57,246, 47, 95,165, 6,207,136,241, +199,153,195,224, 57,110, 21, 0,240, 28,183,234,230,133, 35,163,155,119, 27,129,114,170, 74, 13,114,159,222,164,240, 6,179,135, +139, 4,180,254,232,238, 95,247,198,197,197,225,225,195,135,120,252,248, 49,178,179,179,177,101, 75, 92,169,206,143, 33, 39,254, +247,232,251,116,215,247,222, 31,124,176,223,192, 15,165, 85,106,212,163,131,203,123,192, 83, 41, 64,212,227,120, 68, 95,191,195, + 69, 93, 61, 98,178,106, 50,222, 53,230,196, 23,105,252,228, 94,181,124, 0,118,114,193,218,133,161,161, 45,131, 39,205,154, 19, +226,233,173, 42,180, 30,207, 82,103,136,191,250,236, 64,240,165,203,127, 56,181,214, 33,199,178, 89,225,195, 6,112,140, 99,161, + 80, 60,139, 83,231, 31, 61, 71, 99,202,241, 62,207,217, 75,140,224,127,212,167, 53,236, 28, 7,189,209, 10,141,222,140, 60,173, + 9,169, 25, 89,184,125,231, 14,206, 30, 60,128, 39, 81,183, 99,109, 22,203, 9,154,166,118, 25,211,163,207,150,174,167, 73, 80, +197,179, 92, 57,196,102,235, 32, 21, 11, 16, 31,125,221,172,215,228,109,126,211,235,200,152,245, 40, 53,131,161,186, 12, 24, 48, +240, 88,135,174,189,220,154,182,232, 36,247,114,117,135, 72,192,227, 81, 92, 10,110, 92, 60,166,143,185,125, 78, 99,179,232,194, +222,198,170, 47,255,112, 74, 30,117,104, 53,235,123, 14,234,221,118, 15,195, 8,196, 28,103, 55, 91, 45,230,247,202, 98,178,254, + 44,120,158, 77, 26, 54,168,207, 75,109, 3, 59,199,203, 6,245, 63,110,124,177,173, 96, 99,121,249,160,254, 23, 13,142, 10,164, +232,196, 62, 63,191,114,221, 11,214, 46, 76, 72,200,186,150,157,109, 62, 13, 32,201,100, 50,189,113, 25,211,211,211,103,204,154, + 53,171,135,193, 96,168,217,174, 93, 59,137,171,171, 43,178,178,178,112,226,196, 9,219,161, 67,135,238,103,100,100,252, 0,100, +216,141,104,244,219, 29,211,222,161, 81,215, 79,252, 80,179, 73,215,242,245, 90,116,115,190, 50,147,200, 70,118,232, 53,156, 58, +185,111, 13,127,245,204,190, 79,140,234, 71,191,148,225,176, 90, 77, 38,211, 21,147,201,116,239,187,239,190,107,234,227,227,227, +243,195, 15, 63, 72, 53, 26,141,112,229,202,149,166,204,204,204, 52,141, 70,115, 9,197,228,211,188,206, 77, 91, 94, 50,250, 30, +221,189,166, 61,191,123, 77,103,119,175,128, 46,110,222,229,171,229,170,147, 99,243,212, 41, 39, 0,156,204,159, 40,178, 84, 52, +108,216,176, 42, 69, 81, 3, 0,212, 85, 40, 20,213,149, 74,165,132,231,249,154, 20, 69, 69,114, 28,119,167,118,237,218,135,238, +223,191, 95,170,201,100, 19,206,110, 48, 7, 6,183,220,154,109,224, 68, 22, 90,180, 53,225,236, 6, 51, 0,100,252, 62,201, 0, + 96,255,253,118, 95,247, 61,112, 41,126, 89,100,142,219, 56,245,153, 57, 7, 74, 91,230,188,164,219,213,223,214,245,111, 74,189, +159, 4, 96,216,157,235, 88,120,247,230,165, 31, 41, 30, 66, 22,246,153,198,140,199,215,223,134,190, 80, 40, 52, 5, 4, 4, 20, + 58,186, 80, 34,145,152,204,230,226, 2, 40,103,237,186, 84,172, 5,218,110,216,179, 99,195,176,125, 7,246,207,105,211,241, 93, + 79,105,249,242,168,172,162,176, 97,114,227,113,167,110,170,175,246,154,116,238,167,152, 20,211, 29,148, 50, 31, 70,167,211, 69, + 3,200,209,233,116,189,121,158, 79,164, 40, 42, 48, 39, 39,231,150,205,102,187, 91,106, 67,192, 97,112,104,104,179, 45, 20, 69, + 9,120, 59, 55,239,146,144,217,106, 74,125,144,132, 50, 46, 75, 82,175,178, 43,198,255,176,180,113,181,234, 65,141, 11,214, 58, +172, 83,201, 5,163,190, 94,216,184, 82,149, 26,141,159,175,127, 88, 98,154, 0,111, 51,228,124,188,103,221,188,115, 55, 47,159, +254,214,203,175, 82,165,180,164,152, 7,137,143,111,205, 96, 77,154, 61,101, 61,207,113,143, 35, 23,175, 93,240,245,196,212,228, +216,181, 6,245,163,123, 0, 96, 80, 63,186,247,224, 6,190,207, 76, 75,154,152,149, 17,179,224, 77,143,133, 94,175, 79,217,188, +121,179,123,203,150, 45,105, 31, 31, 31,168,213,106,156, 62,125,154,227, 56, 46,185,212, 90,217,177,167,245,217, 84,185,223,126, + 89, 49, 79,164,112,233,102,183,219,253,121, 30, 16, 8, 4,169, 22,131,230,152,150, 86, 76, 66, 78,188,169,248,103, 6, 71, 1, +160, 11,214, 46,228, 56,142,154,183,108, 67,188, 80,234, 82,232,100,136, 54,147, 86,206,113,156,211,107, 29,230, 62,189, 81,237, +109,221,223, 20,207, 79,107,208, 36,228, 91,155,205,106,202,191, 63, 76, 0, 76, 60,143, 44,154,166,206, 50,156,237,184,166, 12, +141, 41,138,130, 43, 79, 9,224, 34, 19,128, 2, 5, 93, 94, 54, 95,154,156,172, 66, 13,113, 70,116,164, 33,163,109,197,163,150, + 29, 67, 35,126, 63,210,159,101,217,202,249, 49,131, 56,179, 81,191, 83,151,234,241, 27,112,221,142,127, 63,135, 11,204, 22,245, + 39,255, 35,167,186, 81,254, 73,154,193, 85,100,189,203, 7,248, 12,141,139,207,184, 26,147,104,248, 13, 47, 47,171, 83,150,114, + 50, 62, 62, 62,223, 83, 20, 53, 68, 44, 22, 43, 45, 22,139,158,231,249,141,233,233,233, 51,240,218,226,191,141,132, 50,149,113, +168, 88, 42,159, 98, 53,233,255, 48,100, 68, 15, 46,105,223,229,222, 65, 93,164, 10,197,215, 38,163,126,163, 33, 61,122,195, 91, + 62,158,110, 18,137,164,145, 82,169, 20,102,102,102, 94, 1,144,247, 79, 58,239, 13, 26, 52,168, 64,211,116,101,142,227,124, 0, +184,193, 49, 42, 36, 83, 32, 16, 36,231, 71,180,248,210,106,182,250,104,167, 87,199,206,117,198,159, 56, 23,181, 36,191, 91,241, + 25, 1,253, 22, 73,135,116,107, 63,225,183, 61,251, 11, 27,117,248,255,238,154,255,235, 52,219, 10,148,126,153,195,104,177,219, +204,142,193, 38, 67,102, 74,242,152,243,119,213, 87, 0,104,203, 82, 78,145, 72,244,129,213,106,149,137, 68, 34,163,213,106,221, +252, 79,217,119,153, 42,120, 56, 13,222,233,149, 41, 56, 80,215, 95, 25,180,242,111,185,150,152,122,245,234,181, 22,137, 68, 21, + 88,150,149, 91, 44, 22,131,209,104,140,139,143,143,255, 3, 69, 47,124,254,167,150, 83,161,170,177, 88, 36,146,124, 14, 0, 86, +171,121,169, 62,227,209,248,226,190, 88,204,231,255, 95,159, 35,175,202, 77, 30, 9, 24,161, 55,242, 39,230,230,236,118,117,122, +236,181, 26,127, 99, 57,255,117,240, 60,255,167,255,143, 78, 68,147,104, 18, 77,162, 89, 8, 52, 57,158, 68,243,239,212,148,250, +213, 10,148,250,213,114,122,210,229, 34, 62, 79,142, 39,161,128,240, 66,126,192,243, 60, 4,228,216, 16, 8,132,191, 1,142, 28, + 2,194,223,137, 41,245, 65,226,159,249,121,194,127,142, 34,115,162,169, 98, 92,105,105, 66,130,111,226,108, 79, 18, 77,162, 73, + 52,137, 38,209, 36,154, 68,243, 63,167, 89,146,246,255,199, 46,201,240, 87,182, 15, 3, 72, 37, 93,135, 68,147,104, 18, 77,162, + 73, 52,137, 38,209,252,167,104,254,155,120,214,117, 72,147, 99, 65, 32, 16, 8, 4, 2,129,240,231, 64,114,180, 8, 4, 2,129, + 64, 32, 16,202, 70, 97, 93,135,196,104, 17, 8, 4, 2,129, 64, 32,188, 5,138, 76,134, 39, 93,135, 4, 2,129, 64, 32, 16, 8, +101,163, 32,162,229,135, 23,166,119, 32, 70,139, 64, 32, 16, 8, 4, 2,225,237,145,138,194,162, 91,135, 14, 29,226, 11,251,157, + 64, 32, 16, 8, 4, 2,225,175,224,255,185, 23,121, 49,146, 21,158,191,253,242,168, 67, 98,176, 8, 4, 2,129, 64, 32,252, 83, +204,214,255, 51, 10, 34, 89, 5, 63,207, 22,205,126,102,180,122,244,232, 65, 17,179, 69, 32, 16, 8, 4, 2,225,239,226,223,232, + 69,232, 87,119,144,156,102, 2,129, 64, 32, 16, 8,127,167,217,250, 55,237, 15,153,222,129, 64, 32, 16, 8, 4, 2,161,108,248, + 1,232,254,194,246, 97,188,208,125, 72, 32, 16, 8, 4, 2,129, 64,120,115,194, 11,219,230,121,158, 68,180, 8, 4, 2,129, 64, + 32, 16,254, 4,179, 69, 32, 16, 8, 4, 2,129, 64,248,179,248, 43, 22,149, 38, 43,155, 19, 77,162, 73, 52,137, 38,209, 36,154, + 68,243,223, 78,193, 60, 90,192, 11,243,104, 1,100,102,120, 2,129, 64, 32, 16, 8,132,178,210, 29,142,249,179,194,243, 95,187, + 19,163, 69, 32, 16, 8, 4, 2,129,240,118,121,109,249, 29, 98,180, 8, 4, 2,129, 64, 32, 16,222,174,193, 90, 77,140, 22,129, + 64, 32, 16, 8, 4,194,159, 12, 49, 90, 4, 2,129, 64, 32, 16, 8,127, 18, 20,138, 30, 57,112,178, 20, 58,111, 50,250,224, 36, +209, 36,154, 68,147,104, 18, 77,162, 73, 52,255,115,154, 37,105,159,196,255, 63, 10,102,134, 63,140,231,137,240,171,121,254,207, + 95,182,145, 12,125, 37,154, 68,147,104, 18, 77,162, 73, 52,137,230,191,157,240, 87, 94, 1,252, 53,243,104, 17, 8, 4, 2,129, + 64, 32,252,215,204,214, 51,195, 69,150,224, 33, 16, 8, 4, 2,129, 64, 40, 27,171,139,250, 3,137,104, 17, 8, 4, 2,129, 64, + 32,148,141,240,162,182,137,209, 34, 16, 8, 4, 2,129, 64,248,115, 12, 23, 49, 90, 4, 2,129, 64, 32, 16, 8,111,209,100,133, + 23,250,215, 67,135, 14,241,228, 24, 17, 8, 4, 2,129, 64,248,187,248,183,121,145,103,211, 59, 20,236, 24, 49, 91, 4, 2,129, + 64, 32, 16,254, 78,147,245,255,212,139,248,225,249,104,195,240,252,109,240, 60, 79, 70, 29, 18, 8, 4, 2,129, 64, 32,148,145, +238,120,121,228, 97,120,193, 54, 49, 90, 4, 2,129, 64, 32, 16, 8,101, 39,188,216,191,146,110, 67, 2,129, 64, 32, 16, 8,127, + 39,255,198, 28, 45,138,156, 86, 2,129, 64, 32, 16, 8,132, 50, 81, 88, 52,235, 47, 89,235,144, 64, 32, 16, 8, 4, 2,225, 63, +105,184,136,209, 34, 16, 8, 4, 2,129, 64,248, 19, 76, 86,129,209,250,179, 39, 44, 37, 43,155, 19, 77,162, 73, 52,137, 38,209, + 36,154, 68,243,191, 98,178, 94,156,226, 1, 0, 25,117, 72, 32, 16, 8, 4, 2,129, 80, 86,200,162,210, 4, 2,129, 64, 32, 16, + 8,127, 18,100, 81,105, 2,129, 64, 32, 16, 8,132,191,216,112, 17,163, 69, 32, 16, 8, 4, 2,129,240, 22, 77,214, 75,102,139, +228,104, 17, 8, 4, 2,129, 64, 32,148,141, 34,115,180, 40, 20, 61,114,224,100, 41,254,193,155,140, 62, 56, 73, 52,137, 38,209, + 36,154, 68,147,104, 18,205,255,156,102, 73,218, 39,241,255,159,112,252, 69, 19,150,146,161,175, 68,147,104, 18, 77,162, 73, 52, +137, 38,209,252,175, 17, 14, 56,230,209, 34, 93,135, 4, 2,129, 64, 32, 16, 8,111,193, 88, 21, 6, 49, 90, 4, 2,129, 64, 32, + 16, 8,101,131,204,163, 69, 32, 16, 8, 4, 2,129,240, 39,225, 7, 71, 84,171,224,181, 17, 49, 90, 4, 2,129, 64, 32, 16, 8, +111,135,238,112, 68,181, 10, 94,137,209, 34, 16, 8, 4, 2,129, 64,120,139, 20, 58,143, 22, 5, 0,135, 14, 29, 42, 24,127,216, +174, 71,143, 30,103,201,177, 34, 16, 8, 4, 2,129,240, 87,242,111,244, 34, 60,207, 63,143,104,245,232,209,131, 2,112,134,156, +106, 2,129, 64, 32, 16, 8,127, 7,255, 70, 47, 66,191,226, 36,219,145,211, 76, 32, 16, 8, 4, 2,225,239,224,223,232, 69, 4, +175,184, 72, 2,129, 64, 32, 16, 8,132,191,133,255,199, 94,196, 15,142, 68,248,195,249,175, 64,254,148, 15,100, 30, 45, 2,129, + 64, 32, 16, 8,132,178, 81, 48,218, 48, 28,175,204,169, 69,162, 88, 4, 2,129, 64, 32, 16, 8,101,163,176,153,225,255,146,181, + 14, 9, 4, 2,129, 64, 32, 16,254,147,144,181, 14, 9, 4, 2,129, 64, 32, 16,222, 14, 47, 70,181, 86,255, 85,255,148,172,108, + 78, 52,137, 38,209, 36,154, 68,147,104, 18,205,255,146,201,122,182,253,210, 60, 90, 4, 2,129, 64, 32, 16, 8,132,183, 11,233, + 58, 36, 16, 8, 4, 2,129, 64, 40, 27, 5, 35, 14, 95,220, 38, 70,139, 64, 32, 16, 8, 4, 2,225, 45,154,173,215, 32, 93,135, + 4, 2,129, 64, 32, 16, 8,101, 35,188,168, 63, 16,163, 69, 32, 16, 8, 4, 2,129,240, 39, 25, 46, 10, 69,143, 28, 56, 89, 10, +225, 55, 25,125,112,146,104, 18, 77,162, 73, 52,137, 38,209, 36,154,255, 57,205,146,180, 79,226,255, 31,127,219,132,165,100,232, + 43,209, 36,154, 68,147,104, 18, 77,162, 73, 52,255,147,144,233, 29, 8, 4, 2,129, 64, 32, 16,254, 68, 74, 99,180,188, 5, 2, +193,183, 50,153,236, 39,153, 76,246,139, 64, 32, 88, 0,192,163,180,255, 80,161, 80,140,243,245,245,125,232,235,235,155, 84,161, + 66,133, 35, 46, 46,242, 47,170, 74,208, 6,128,240, 45,237, 79, 48,128, 47,100, 50,217, 3,169, 84, 26, 15, 96, 19,128, 47, 0, +120,149, 69,120,134, 63,222,187,247,121,239,125, 51,252,241,222, 43,127,234,238,227,227,115, 30, 64,151,183,117, 82, 6,202,209, +169,159, 2, 79,251, 41,240,116,160,252,205, 91, 13, 46, 46, 46, 67,252,252,252, 46,121,122,122, 38,251,249,249, 93,148, 74,165, +253, 74, 41,161,242,241,241,153, 31, 24, 24, 24,237,239,239,191, 4,142,213,201,255,177,180,150,160,117,136, 4,234, 80, 49,180, + 45,197,248, 41, 84,140,206,157, 1,249, 27,202,181, 2,176,203,213,213,245,150, 64, 32, 56, 4,160,111,254,245,213, 87, 32, 16, + 28,114,117,117,189, 5, 96, 87,254,231,222,228, 58,157, 15, 32, 25,192,236,252,237,177,129,129,129,218,250,245,235,199,215,175, + 95,255,215,234,213,171,127,232,172,152, 92, 46,239, 28, 24, 24,184,187, 66,133, 10,241,161,161,161,217, 1, 1, 1, 81,229,203, +151,223, 32,145, 72,218,145, 42,142,240,127,236,125,119, 88, 20,215,251,253,217,198,238,194, 46,236,210,151,174, 82, 4, 11, 40, + 42,118,236, 53,216,137, 93, 99,143,209,104, 52,198,174,128, 81, 99,137, 61, 38,209,143, 45,162,177, 18, 11,118,108,216,149, 69, + 17, 16, 1, 65,164,119,182, 2,219,239,239, 15, 74,136,161,154,228,251, 75,153,243, 60,243, 44,236,222, 57,115,239,204,189, 51, +103,222,251,222,247,165, 64,129,194,223, 31,195, 0,124, 3, 96, 79, 76, 76,140,152, 16, 34, 38,132,136, 99, 98, 98,196, 0,190, + 7,176, 9,117,155, 16,127,243,189,165,165,101,200,250,245,235,203,115,114,114, 72, 65, 65, 1, 73, 76, 76, 36, 59, 86, 47, 51, + 12,178, 96, 18, 87,107,243, 82, 59, 59,187, 55, 46,142,142, 39,218,240,233,203, 0,184, 53,134,179, 6,204,141,141,141,159,172, + 94,189, 90,113,239,222, 61,133, 90,173, 86, 24, 12, 6, 69,118,118,182, 34, 34, 34, 66,209,189,123,119, 5,128, 69, 0, 24, 77, +224,172,198, 58,123,220, 37, 7,215,144,117,246,184, 91,243,123, 47, 47,175,120,131,193, 64,198,140, 25,163, 2,224,208, 20,206, +247,225, 0,112,219,152, 65, 24,200, 71,158,238,200,215,132,236, 93, 66, 2,121, 72,255, 16, 78, 27, 27,155,243, 11, 22, 44,144, +101,101,101, 17,149, 74, 69,210,211,211,201,156, 57,115,164, 54, 54, 54,199, 26,217,118, 75,111,111,239,188, 71,143, 30, 25, 36, + 18, 9,185,115,231,142,161,109,219,182,121,141, 20, 91,253,223,171,203,126,123,123,251,203, 77,217,108,108,108, 14, 52,245, 26, +117,230, 32, 93, 35,190, 77,200,179,235,228,194,152,174,100, 71, 71, 71, 50,218,130, 45,233,193,198,231,189,106, 15,101, 82, 23, +231,199,189,122,245, 82,190,124,249, 82, 95, 84, 84, 68,226,227,227, 13,179,102,205, 42, 7, 16, 55,107,214,172,242,248,248,120, + 67, 81, 81, 17,121,249,242,165,190, 87,175, 94, 74, 0, 51,155, 80, 79, 58,128, 67,193,193,193,132, 16, 66,214,175, 95, 79,124, +124,124, 72,223,190,125,137, 66,161, 32,132,144, 52, 66,200, 97,157, 78,247, 73, 99, 56, 5, 2,193,228, 5, 11, 22, 40, 74, 75, + 75, 73, 21, 12, 6, 3,145, 72, 36,100,207,158, 61, 74,145, 72,116,185,142,151, 12,106,202,131,226,164, 56, 41,206,191, 27,231, + 63, 25,118,168,240,211,170,218,236,128,138,169,195,134, 48, 97,217,178,101, 85,162,234, 74,143, 30, 61,158,126,242,201, 39,226, + 79, 62,249, 68,220,163, 71,143, 59, 0,174, 69, 69, 69,137,151,246, 11, 11, 36, 0, 0, 32, 0, 73, 68, 65, 84, 46, 93, 42, 6, + 48,161,129, 11, 97,222,173, 91, 55, 73,110,110, 46,241,240,240, 32,205,154, 53, 35,185,185,185,132, 16, 66,158,125,220,129,220, +108, 5,146, 17,121,133, 92,255,229, 12,153,101,199, 36, 61,237, 4, 90, 59,145,168,200,202,202,106, 3, 42,156,246,235,187,184, +163, 90,181,106, 37,143,139,139, 83, 36, 37, 37, 41, 66, 66, 66, 20,125,251,246, 85,120,123,123, 43, 70,143, 30,173,216,189,123, +183, 66,163,209, 40, 14, 28, 56,160, 48, 51, 51,139,171, 69,108,125,176,208, 98, 50,153,187, 98, 98, 98,200,155, 55,111, 72,165, +149,162, 46, 78,129, 80, 40, 28,108,110,110,190, 72, 40, 20, 14, 6, 32, 0, 0, 15,128,223, 78, 0,231,207,219,185,122,133, 79, +232,239,182,167,127,167, 14,129,166,116,137,246,187, 37,132,140,113,254, 32,161, 37, 16, 8, 38,127,241,197, 23,114,149, 74, 69, + 74, 75, 75,137, 66,161, 32,165,165,165, 68, 46,151,147, 9, 19, 38,200,184, 92,238,168,134, 56,173,172,172,190,142,140,140,212, +229,230,230,146,200,200, 72,114,249,242,101,178,119,239, 94,131,141,141,205,246,166, 14, 64,145, 72,116,227,250,245,235,226,232, +232,104,241,147, 39, 79,196, 90,173, 86,172,209,104,196, 26,141, 70, 28, 30, 30, 46, 14, 11, 11, 19,159, 60,121, 82,172, 86,171, +197,106,181, 90,172, 82,169,196, 45, 90,180,184,218,212,107,228,199, 65,134,250,222, 5, 66,182,207, 35,210,205,115,137,100,241, + 80,146, 63,199,159,124,223,201,145,248, 27,227,226,123,253,168, 78, 78, 22,139,117, 55, 45, 45,205,176, 98,197, 10,117,235,214, +173,165,211,167, 79, 47, 87,169, 84,132, 16, 66, 84, 42, 21,153, 62,125,122,121,235,214,173,165, 43, 86,172, 80,191,125,251,214, +192,100, 50, 35,154, 80,207, 77, 85, 34,235,238,221,187,164, 38, 20, 10, 5,233,219,183,111,154,143,143,207,225,230,205,155, 79, +108,136,147,207,231,143, 88,190,124,185,130,212, 2,173, 86, 75,228,114, 57,121,251,246,173,161, 89,179,102,217, 0, 44,169,155, + 57,197, 73,113, 82,156,148,208,250,203, 80,103, 10,158,122, 79,226,210,165, 75,197,132, 16,241,170, 85,171,196,149,150, 45, 35, + 0,252,202,141, 9, 96,252,242,229,203,197,132, 16,241,178,101,203,170,202,212,117, 33,134,157, 62,125, 90,179,115,231, 78, 98, +107,107, 75, 68, 34, 17,217,181,107, 23, 49, 24, 12, 36, 55,252, 24,185,217, 10,228,213,202,169,132, 16, 66, 18, 55,204, 39, 55, + 91,129,164,252,176,142, 76,154, 52,169,212,196,196,100, 66, 61, 23,215,162, 67,135, 14,242,178,178, 50,197,145, 35, 71, 20, 38, + 38, 38,207, 0,180, 70,197, 84, 36,173,178,174, 83, 90,183,110, 45,139,141,141, 85,252,252,243,207, 10, 0, 33,141,236, 48,110, + 0,250,240,120,188,209,203, 29, 88, 73,228,224, 26,178,220, 22, 47, 1,180, 5, 96, 93, 89,198,126,217,178,101,132, 16, 66,156, +156,156, 34,235,224, 20,120,123,123, 47, 75, 74, 74, 10,210,106,181, 65,209,209,209, 65, 45, 91,182, 92, 49,188,133, 93,215,115, + 19, 6,248, 74,215,205,245, 37,219, 22,123,127, 59,196,175,255,137,113,189, 39, 76,107,110,117,111,186, 13,183,116,172,128, 33, +127,111,234,176, 81, 29,219,193,193,225, 73,122,122,122,181,184,146,203,229, 36, 43, 43,139,164,166,166,146,123,247,238, 17, 59, + 59,187,155, 13,113,138, 68,162,248,244,244,116,242,195,142, 29,100, 76, 91, 47,226, 47, 52, 37,189,204, 77, 73, 71, 62, 87,217, + 10,232,216, 84,161,245,252,249,115, 49, 0, 49, 0,113, 81, 81,145,184,168,168, 72, 92, 82, 82, 82,253, 29, 0,177, 84, 42, 21, + 75,165, 82,177, 90,173, 22,187,186,186, 54, 89,104,117,231,162,123,103, 46,138,187,114, 80, 54,204,193, 42,123,110, 11, 43,253, +227, 9, 93, 73,201,188,190,100,167,175, 3,233,193,198,231,141,228, 28,198,102,179,239, 0, 88, 82, 41,202,167, 14, 30, 60,184, +148, 16, 66, 6, 15, 30, 92, 10, 96,106,229,247, 95, 84,138,172,193,141,172, 39,221,221,221, 93, 89,101,201, 2,240,208,221,221, + 93,233,227,227, 67,124,124,124,136,147,147,147,188,146,187, 81, 55, 52, 55, 55,183,196,178,178,178,106, 1, 40,145, 72, 72,118, +118, 54, 73, 73, 73, 33,113,113,113,228,217,179,103, 36, 45, 45,141,156, 58,117, 74, 47, 20, 10, 47, 81, 55,115,138,147,226,164, + 56, 41,161,245,151, 10,173,247,183,223, 10,173,240,240,240,247,101,215,230,168,168, 40,241,242,229,203,197,168, 39, 16, 23,128, +217,171, 86,173,170,178,122,125, 83,207,195,255, 64, 98, 98, 34,153, 58,117, 42,241,244,244, 36,158,158,158,228,147, 79, 62, 33, + 82,169,148, 40,146, 99,201,205, 86, 32,207,198,118, 36,132, 16, 34,127, 21, 77,110,182, 2, 17, 79,234, 70, 94,188,120, 65, 28, + 29, 29,175,215,115,252,139, 15, 30, 60, 40, 56,118,236, 88, 46, 42,252,177, 88, 0,186, 0,216,101,108,108,124, 8, 21,211,133, +205, 0,152,123,120,120, 20,151,150,150, 42,198,140, 25,163, 0,224, 92, 15,103, 47, 79, 79,207, 55, 7, 14, 28, 32,249,249,249, +164,184,184,152,108,233,222,146,144,131,107,200,250,142,205, 12, 63,252,240,131,106,201,146, 37, 74, 11, 11,139,112, 0,246, 99, +198,140,209, 17, 66,136,191,191,127, 94,109,100, 66,161,112,112, 82, 82, 82, 80,121,121,121,144, 68, 34, 9, 42, 46, 46, 14,186, +112,238, 92,208,160,182, 45,167, 74,215,205,245, 61, 55, 97,128,239, 16, 7,243,209,219, 7,118,250, 52,107,197,204, 49,171,186, +181,126, 85,190,105,225,237,143, 91,216,110,253,144,171,109,109,109,157,163, 82,169, 8,128,223,109,111,222,188, 33,150,150,150, +233, 13,113, 88, 88, 88,172,250, 98,252, 56,253,168,102, 14,228,205,206,213, 68,123,227,103,162,189,124,132, 36,111, 94, 76,134, +139,172,100, 93,140,232,203, 27, 91, 31,145, 72,116,227,201,147, 39,191, 17, 90, 37, 37, 37,181, 10, 45,153, 76, 38, 86,171,213, + 98,119,119,247,171,127,180,215,119, 97,195,181,151, 49,227, 89,244,212,158,164, 96,110, 95, 50, 88,192, 74,251, 3,116,227, 1, +220, 1, 48,169,137,251,209, 1,108,170, 18, 84,155, 55,111, 38,132, 16,226,238,238,174,196, 31,139, 99, 39,240,242,242, 74,157, + 57,115,166,174, 85,171, 86,249,221,187,119,151, 60,125,250,148,220,189,123,151, 92,190,124,153,156, 57,115,134,196,198,198,146, +172,172, 44,146,152,152, 72, 62,250,232, 35, 9,128, 94,212,189,144, 2, 5, 10,127,103,212,162, 69,254,209,168, 94,117, 24, 30, + 30, 78, 2, 2, 2,104, 53, 26, 40, 0,192,237,216,177, 99,193,166, 77,155,182,161, 34,172, 60,205,155,129,143,251, 26, 51, 95, +244, 53,102,190,240,102,224,227, 74,139,209,254, 13, 27, 54,124,237,227,227,147, 3,192, 24,128,168,142,131,245,180,180,180, 68, +122,122, 58, 4, 2, 1, 4, 2, 1,210,211,211, 65, 8,129,142, 0, 90, 2,168, 52, 26,148,149,149,161,220, 64, 80,102, 0,100, + 10, 5, 68, 34, 17, 52, 26,141,107, 29,109,104, 55,118,236, 88, 87,111,111,239,130,165, 75,151,102,163,194, 87,230,208,140, 25, + 51,110, 60,124,248,208, 91,161, 80, 20,199,197,197,149,183,109,219,118, 48, 0, 81, 82, 82,210,228, 61,123,246, 96,234,212,169, +168,231,161,211,246,163,143, 62,186, 28, 27, 27,235, 58,105,210, 36,220,185,115, 7, 91,182,108, 65, 97, 97, 33, 1, 0,149, 74, + 69,244,122,189,166, 91,183,110,154,157, 59,119,250,249,251,251, 63,105,209,162, 5, 3, 0, 82, 83, 83,147,107, 35,164,209,104, + 45, 93, 92, 92,160, 82,169, 80, 80, 80,128,216,216, 88,152, 10, 4,136,201, 46,180,237,189,253,135,162,149,231,110,176,198,251, +121, 91, 44, 26,208, 93,181,241,250, 29,143,214,246,182,182,106,141, 86,148,152,147,151,253, 33, 23,214,200,200, 40,189,176,176, + 16,106,181, 26,101,101,101,144,201,100, 40, 42, 42, 66, 97, 97, 33,178,179,179, 97,100,100,244,166, 33, 14,179,226,226,200,212, + 7,119,105,167,126,220, 12, 87, 93, 49,152,103,119,129,121,254,123,184,169, 11,176,111,245, 28, 83,181,165,117,176,153,169,105, +137, 80, 40,220, 15,192,189, 33, 62, 95, 95, 95, 20, 21, 21,161,168,168, 8,150,150,150, 48, 55, 55,135,185,185, 57, 36, 18, 9, +164, 82, 41,100, 50, 25, 60, 60, 60,208,174, 93, 59, 28, 61,122,244, 79,233,224,143,213, 72,209, 65, 63,247,198,235,108, 24,241, +120,104, 97,206,119,233,196,135, 69, 61,187,244,101,177, 88,167, 45, 44, 44,174, 3,152, 7,128, 7, 96,158,133,133,197,117, 22, +139, 53, 18,192,122, 0,199,154, 88,141,141,193,193,193,203,146,146,146, 76, 94,188,120,129,165, 75,151, 34, 36, 36, 4,201,201, +201,223, 1, 48, 84,150,249,204,210,210, 50,156, 78,167,255, 15,192, 80, 0,131,237,236,236,250, 53,192, 59,114,201,146, 37,229, + 29, 58,116, 72,124,245,234,213,200, 7, 15, 30,116, 92,188,120,177,244,221,187,119, 72, 76, 76,132,157,157, 29,156,156,156,160, + 80, 40, 80, 82, 82,130,145, 35, 71, 10,204,204,204, 38, 80,183,113, 10, 20, 40,252,157, 69,214,123, 90,228,159,102,209,170,245, +255, 90,223,168, 77, 76, 76,130,197, 98,113, 87, 31, 31, 31, 38,128, 83, 0,224,205, 64,224,200,110,237, 15,157,219,191,217, 39, +108,231,106,159, 65, 62, 30,135,188, 25,168, 90,197, 22,222,177, 99, 71,115,177, 88,220,141,195,225,124, 94,151,176, 3, 0,115, +115,115, 8, 4, 2, 8,133, 66,152,155,155,195, 96, 48, 64, 81, 90, 14,165, 30,144,151,171, 33,149, 74, 33,175,252, 95,161,210, + 64,169, 84, 86,239, 91, 11,122,207,156, 57,179, 96,207,158, 61,249, 57, 57, 57,155, 1,180,157, 58,117,234,136,221,187,119,227, +214,173, 91,229, 67, 61,221, 44, 55,244,108,255,117,235,156,228, 32, 79, 22,102, 1,136,140,140,140, 68,183,110,221, 64,163,209, +198,213, 70,104,108,108,252,253,137, 19, 39,140,227,226,226,224,230,230, 22, 55,110,220,184,143, 55,111,222,236,202, 83, 20,223, + 7, 0, 93, 81,110,220,252,249,243,215,108,216,176,161,160,160,160, 64, 83, 90, 90,106, 51,124,248,112,164,167,167, 35, 43, 43, +235, 97, 29, 34, 51, 49, 58, 58,154, 72,165, 82,164,164,164, 32, 58, 58,218,120,205,154, 53,126,122, 58,125, 68, 38, 76,167, 77, +237,222,209,111, 82,151,246, 56,246,232,133,209,189,215,169,194,142,205, 28,204,159,103,228, 52,215,210,240,230, 67,174,182, 92, + 46,223,245,245,215, 95, 43, 20, 10, 5, 50, 51, 51,241,242,229, 75,188,122,245, 10,105,105,105,216,178,101,139,162,184,184,120, +119, 67, 28,246, 92,230,151, 91, 23,207,160, 49,227, 31, 2, 47,238, 2,165,114,160, 76, 1, 85,130, 24,135, 19,114,177,247,236, + 47,236,119,233,233,194,147, 39, 79,206,116,118,118, 22, 3,240,104, 72,213, 3, 0,157, 78,127, 95,132,130, 78,167,203, 1,228, +242,120,188, 12, 83, 83,211, 12, 58,157,158, 75, 8, 81,254, 25, 61,159,174,131, 6, 12, 6,192, 54, 6,157, 85,111,106,207,143, +199,141, 27,119, 34, 35, 35, 99, 80, 74, 74, 74,215,221,187,119,127,205,229,114, 99,118,239,222,253,117, 74, 74, 74,215,140,140, +140, 65,227,198,141, 59, 1, 96, 74, 83,142,239,238,238, 62, 63, 40, 40, 8, 91,182,108, 65,187,118,237,224,225,225, 81, 26, 28, + 28,188, 11,192,106, 0,159,187,187,187,223,159, 63,127,254,244,252,252,124, 81,102,102,102,187,239,190,251,110,206,174, 93,187, + 58,101,103,103,115, 27,160,238, 49,112,224, 64, 92,185,114, 5, 0,114, 0,164, 20, 21, 21,233,178,179,179,225,229,229, 5, 63, + 63, 63, 40, 20, 10, 40, 20, 10, 72, 36, 18,184,184,184,192, 96, 48,116,165,110,229, 20, 40, 80,160,240,127, 42,184,106, 23, 90, + 92, 46,215,220,215,215, 23, 45, 90,180, 48, 71,229,106, 45, 75, 54,115,197,162,153,227, 77,248,226,171,160, 69,223,196,184,158, +109, 76, 44,217,204, 21,149,187, 48, 93, 92, 92, 56,190,190,190,224,241,120, 14,117, 28,252, 78,110,110, 46,124,125,125, 33, 20, + 10, 33, 16, 8,224,235,235, 11,141, 70, 3,169, 92, 14,165, 30, 40,213, 26, 32,149, 74, 81, 92,144,135, 82, 61,160, 51,181, 68, + 90, 90, 26, 24, 12, 70,106, 29,156,118,110,110,110, 5, 49, 49, 49, 5, 0, 34, 1,124, 26, 18, 18,130,229,203,151, 99,237,218, +181, 39, 76,114,222, 14, 60,113,229,188,229,241,224,207,172, 61,216,180,241, 0, 52, 25, 25, 25, 16, 10,133,224,241,120,181, 10, + 3,127,127,255, 14, 60, 30, 15, 71,142, 28, 33,153,153,153,221, 81,177,132, 63,149, 70,171, 16,123,198,116, 72, 1,236, 18,139, +197,157,215,172, 89,243,186,127,255,254,172, 46, 93,186, 96,253,250,245, 0, 16, 94, 27,167, 68, 34,121, 60,101,202, 20,245,237, +219,183,145,144,144,192, 59,119,238, 92,224,250,245,235,219,188,123,247,142,115,241,242,213, 33,161, 25,178,192,205,215,239,113, + 55, 92,187,243,216,202,140,215,186,185,149, 5,162,223,101, 25,233, 25,120,218,208, 21,237,204, 98,204,236,205,101, 70,247,228, +208,115,122,115,153,226, 78, 44,198, 12,185, 92,126,242,194,133, 11,215, 22, 47, 94,172,200,207,207,135,169,169, 41,138,138,138, +176,113,227, 70, 69,116,116,244, 89,181, 90,125,177, 33, 94,189,129,116,112,106,230, 12,188,137,169,254, 78, 99, 32,120,170, 54, + 66,192,167, 11,225,233,229, 5,181, 90,141,182,109,219,210, 66, 66, 66,120, 2,129,224,171, 6, 69, 15,253,119,221, 77, 71,163, +209,114, 9, 33, 89, 10,133, 34,211,216,216,248,157,145,145,209,187,226,226,226, 76, 66, 72,222,159,161,179, 8, 29, 95,118,107, +235, 14,112,140,241,174, 72,145,253, 76,129,226,218, 10,154,154,154,206,216,187,119, 47,247,224,193,131,218,249,243,231,171,230, +204,153,195, 42, 43, 43,179,153, 51,103, 14,107,254,252,249,170,131, 7, 15,106,247,238,221,203,229,243,249,163, 63,164, 34, 90, +173, 22, 49, 49, 49,155,147,147,147,121,168, 8, 55,178, 48, 56, 56,120,106, 82, 82, 18,119,207,158, 61, 56,115,230, 12,206,156, + 57,131, 17, 35, 70, 96,193,130, 5, 8, 10, 10,170,143,206,196,199,199,199,215,210,210, 18,119,239,222,205, 6,240, 14, 64, 7, + 62,159,111, 58, 98,196, 8, 12, 26, 52, 8,229,229,229,208,104, 52,213, 66,139,193, 96, 64, 40, 20, 90, 82,247, 64, 10, 20, 40, + 80,248,203, 69,214,111,196, 22, 19, 0,170, 76,117, 1, 1, 1,180,250, 30,140,250,146,124, 72,148,165, 72,147,150, 34,189,196, +240,155,223, 12, 6, 67,189, 71,207,206,206,190,248,232,209,163, 25,190,190,190,204,236,236,138, 25, 49, 95, 95, 95,148,150,150, + 34,251,197, 19, 40, 13, 0,207,205, 27, 74,165, 18, 37,175,158,131,239,211, 21,150, 31, 77,194,246, 61,123, 84, 69, 69, 69, 63, +214,198,201,102,179, 89,142,142,142, 5,169,169,169, 58, 0,197, 2,129, 96,160,179,179, 51,238,220,185, 3, 0,199, 8,176, 21, +209,183,129,187, 97, 32, 21, 38, 21,190,139,139, 11,242,243,243,161, 80, 40,238,212,198,249,232,209,163, 36,173, 86,219,118,248, +240,225,180,159,126,250,233,148, 76, 38, 91, 11,224,165,202, 0,198,139,140, 60, 40,245,224, 2, 24, 96,110,110,254, 69, 80, 80, + 80,191,249,243,231,227,194,133, 11,184,126,253,186, 6, 21,190, 96,143,106,161,149,166,164,164,236, 91,178,100, 73, 23, 58,157, +254,233,141, 27, 55,116, 30, 30, 30, 50,141, 70,163,111,233,233, 73, 95, 27,178,206,104,222,167,179,133, 69,165,136, 31,212,210, +174, 27,141, 6,196,103,229,191, 75, 86,160,168,190,115,234,207,102,132,143,236,238,227, 63, 99,220, 48, 62,207,173, 53,148,177, + 79, 68,251, 78, 95,222,110, 28,157, 20,112, 55, 63,127,196,133, 11, 23, 2,239,220,185, 51, 79,173, 86,183,224,112, 56,111, 36, + 18,201, 78,133, 66,209,160,200, 98, 48, 24, 31,169,236, 28,205, 37,197,197,224, 86, 90,162,100, 90, 3, 10, 85, 58, 36, 8, 61, + 48,193,209,169,122, 26, 52, 55, 55, 23, 34,145,136,166,215,235,135,213,199,121,253,250,117, 4, 4, 4, 84, 9, 79,208,104, 52, +208,104,180, 66, 79, 79,207, 60, 14,135, 83,100,100,100, 36,219,186,117,107,121,121,121, 57,152, 76, 38, 87,175,215, 51,254, 72, +111,247, 51,129, 13,135,208,190,159, 51,188, 79,255,118,173,189, 72,228,179, 23,180,146,210,242,195,245, 88, 1,191,115,119,119, +103, 22, 23, 23, 95, 4,144,160,213,106,143,159, 58,117,138, 59,121,242,228,242,211,167, 79, 79, 4,224,186,109,219,182, 64,133, + 66,177,191, 41,245, 72, 78, 78,254,110,195,134, 13,203, 86,173, 90,133,163, 71,143,206, 79, 78, 78, 94, 94,105,233, 26, 17, 20, + 20,132,173, 91,183,226,232,209,163,134,132,132,132,203, 6,131, 33,121,241,226,197, 62,182,182,182,133, 57, 57, 57,201,245,208, +118, 28, 60,120,176,234,254,253,251,108,185, 92,126, 15,192, 23,115,231,206,157,217,185,115,103,217,184,113,227,248,197,197,197, + 18, 19, 19, 19,246,129, 3, 7,204,153, 76, 38,148, 74, 37,104, 52, 26,228,114,185,154,186, 15, 82,160, 64,225,239,138,186,180, +200, 63, 4,117, 62, 27,152,181, 53,176,180,180, 52, 47, 61, 61,221, 43, 43, 43, 75, 7, 64, 7, 0, 69,106,221, 55, 27, 14,132, + 29, 28,221,197,157,151,163,213,226,220,179,184,210, 34,181,174,202,249, 93,151,149,149, 37,127,247,238,157,105, 89, 89,153,162, +142, 99, 61,252,254,251,239,203,110,223,190,109,154,146,146, 2,189, 94,143, 14, 29, 58, 32, 49, 49, 17, 37, 9, 49,224,121,117, + 0,175, 87, 0,226,196,207, 16,125, 61, 2,111, 21,106,221,235,213, 27,164, 10,165, 50, 72,163,209,156,171,141,144,197, 98, 21, + 3, 32,132, 16, 61, 0,200,100,178,151, 10,133,162,167,173,173, 45,226,227,227,121, 74, 61, 22, 4,174,216,190,155, 16,162, 55, +170, 88,205,181,104,220,184,113,136,138,138, 2,128,168,218, 56,101, 50,217,252, 89,179,102,221, 62,114,228, 8, 51, 37, 37,101, +208,193,131, 7, 7,189,126,253,154,208,138,211,245,247, 75, 89,112,157,186,160,211, 15, 46,158,215, 3, 2, 2, 96,103,103,135, + 3, 7, 14, 96,231,206,157,218,207, 62,251, 44,105,231,206,157,157,242,243,243,143,215,209,126,169, 68, 34,185,106,105,105, 57, +175, 77,155, 54,114,165, 82,137,162,162, 34,100,103,103,195,194,210,146,174, 3,189,155,181, 80,120,252, 98,174,156,199,188,250, + 24, 79, 50,115,234,181,102,117, 97, 49,166,140,246,111,239,255,249,170, 21,124,220, 63, 7,218,172, 32,144,131, 95, 99,225, 39, +129,166,229,170,227,189,148, 47,210, 38,139,101,178, 80,153, 76,118,166,137,157,101,112,183,110,221, 78,108,216,176,193,120,229, +150, 13,216,230,229, 0, 93, 81, 17, 10, 84,122, 20,170,116,144,149, 36, 32, 62, 62, 14,150,150, 86,120,251,246, 45,202,203,203, +241,234,213, 43,194, 96, 48, 46, 54,100,209,169, 66,141,233, 66, 9,135,195, 41, 98,177, 88,121, 76, 38,179, 56, 37, 37, 69, 89, + 94, 94, 14, 58,157,206,211,235,245,198,141,168,171,163,149,149,213, 98, 84, 4, 19,189, 32, 47, 44,220,229,203,130, 16, 76,244, +118,177,178, 28,178,122,206,100, 43,103,123, 27, 73, 74,210, 27,237,143,215, 30, 20,150,171,234, 94,172, 1, 32,188,184,184,184, +218, 34,121,250,244,233,133,167, 79,159,158, 9,224, 16, 42,242,110, 69, 72, 36,146, 31, 62, 96,240,173, 62,123,246,236,178, 85, +171, 86,193,216,216,184, 58,120,170,177,177, 49, 23, 0,126,254,249,103,196,199,199,119, 70,165,191,150,193, 96, 56,145,147,147, +211, 16,167,171,183,183,119, 74, 88, 88, 24, 27,128,253,220,185,115,187,238,222,189, 27,159,124,242, 73, 65, 92, 92, 92, 23, 0, +169, 0, 92, 63,253,244,211,167, 71,143, 30, 53, 55, 24, 12, 40, 41, 41,129, 90,173, 78,165,110,229, 20, 40, 80,160,196,214, 95, + 2, 95, 0,209,168,136,159,245, 17,128, 75,168,112,235,168, 19, 78,149,234,236, 26,128,225, 85,207,199, 58,156,225,129,138, 21, + 89, 87, 1,252, 15,128,109, 93,164,150,150,150, 95, 77,157, 58, 85,155,153,153, 73,114,115,115,201,153, 51,103,200,162, 25, 83, +245, 3,220,236, 13,110,246,182, 74,107,107,235, 68, 59, 43,139,195,237, 77,176, 8,128, 99, 35, 26, 54,245,245,235,215,179,167, + 78,157, 58,163,242,184, 51, 78,156, 56,161,184,113,227,134,130,193, 96,132,163, 34,180, 67,149,160,156, 50,108,216, 48,133, 74, +165, 82,120,122,122, 22,163,194,113,191, 46, 4,246,238,221,187,228,202,149, 43, 68,175,215,255, 46, 70, 81, 65, 65, 1,185,126, +253, 58,233,222,189,187, 4,192,228,126,253,250,221,121,240,224,193,157, 30, 61,122,156,109,168,194, 86, 86, 86, 43, 94,188,120, + 17,149,150,150, 38,190,116,233,146,248,248,241,227,226, 79, 63,253,244,165,143,143, 79, 89, 82, 82,146, 65,167,211,145, 23,207, +159, 19,207,150, 45,149, 0, 92,234,226,233,107,204,124, 42, 59,240, 53, 41, 95,255, 9, 41, 31,233, 68, 0, 16,249,246,175, 72, +222,252,254, 36,113,222, 16,210,135,203,120,244, 33, 61,197,194,194,226, 90, 84, 84, 20,145,203,229, 36, 54, 54,150, 76, 9, 24, + 68, 30,205,236, 79,174, 14,114, 39, 71,123, 53, 39,219, 7,250,144, 65,189,122,146,239,191,255,158,132,133,133,145, 21, 43, 86, + 24,172,172,172,228,168,199, 71, 75, 36, 18,221, 56,117,234,148, 24,128,152,193, 96,136,101, 50,153, 88, 46,151, 95,204,200,200, +216,235,233,233,185,172, 77,155, 54, 19,189,188,188,250,246,105,238,178,172,159, 41, 39,177,191, 25,247, 77, 75,190,201,118,252, + 62,238, 85, 53, 4,128,139,155,171,171,252,238,221,187, 6,149, 74, 69,238,221,187,103,104,213,210,163,124,219,216,193,103,223, + 30,216,116,182,252,202, 79,215, 74,207,239,127,112,122, 90, 64, 76,111, 19,250, 79, 93,121,213,225, 56, 62, 20,227, 1,156,195, +175,171, 14,167, 2, 56,143,250, 87, 33,210, 1, 28, 90,191,126,125,205,149,134, 0, 64,247,241,241, 17, 19, 66,196, 62, 62, 62, +226,166, 86,196,196,196,100,241,133, 11, 23,130,157,157,157,183,140, 27, 55,238,128, 68, 34,185, 52,113,226,196, 24, 84, 44, 6, +161,161, 34, 59,194, 48, 71, 71,199,130,232,232,104,114,231,206, 29, 50,102,204, 24,185,145,145,209, 36,234, 54, 78,129, 2, 5, + 10,127, 9,102,215,246,217, 80, 28,173, 13, 49, 49, 49, 85, 49,180,230,214, 71,190,124,249,114,113, 84, 84,148, 24, 21, 81,226, +235, 5,147,201,252,229,179,207, 62, 35,182,182,182, 10, 27, 27,155, 95, 88, 12,198, 76, 39, 99,248,226,195,150,186,247, 12, 13, + 13, 29,241,221,119,223,125, 4,160, 51, 0,150,131,131, 67,118,110,110,174,226,193,131, 7,138,238,221,187, 43,172,172,172,242, +189,189,189, 21,219,182,109, 83,104,181, 90,197,226,197,139, 21,248,125,188,175,218,192, 5, 48,143,205,102,255,210,170, 85,171, +152,213,195,251,106,183, 44,152, 73,166,186, 91, 43, 0,124, 7,224, 51, 0, 66, 0,172,192,192,192,155,175, 94,189,186,230,237, +237,189,175, 17,188,246,109,218,180,185,117,226,196,137,168,176,176, 48,241, 87, 95,125, 21,101,105,105,153,153,148,148,100, 40, + 47, 47, 39, 37, 37, 37, 68, 34,145,144, 75,151, 46,233, 45, 44, 44,246,212,217,112, 14, 35,135, 92, 63, 86,107, 8,135,140, 85, +147, 72,119, 54, 61,235, 67,122, 10,143,199, 43, 46, 42, 42, 34,185,185,185, 36, 37, 37,133,156, 61,123,150, 12,238,230, 71, 78, +126, 58,154, 28,155, 49,130,108, 29,236, 71, 58,155,114,149, 34, 83,126,148,169,169,105,126, 99, 86, 29,138, 68,162, 27, 42,149, +170, 58,124,131,163,163,163,216,211,211, 51,204,219,219,123,251,133, 11, 23, 22,238,216,177, 99, 68,159,230, 46,203, 54, 14,234, + 86, 86, 26,113,154,200, 79,125, 71,150,119,240, 40,175, 20,243,181,194,193,210, 34,244,238,157, 59,134, 42,241,171,211,233,200, +185, 95,126, 33, 99,135, 12,136,145, 94,253,249,127,247,130,230,159, 88,220,193,227, 92,119, 46,198,215, 39,216,170, 95, 69,248, +176,244, 55,163,239, 29,234,108,145,211, 83, 64,255,174,139,233,111,210, 75,141,245,240,240, 72, 33,132,228,120,121,121,165, 0, + 56,230,229,229, 85,243,255,105,117,208, 86, 7, 39, 13, 14, 14, 38,149,227,131, 14, 96,237,134, 13, 27,196,132, 16,177,187,187, +251,125, 0,104,199,131, 85, 47, 1,253,127,195, 93,109,139,122, 9,232,255,107,199,171, 61,101,148,139, 17, 90,246,180, 54,185, + 55,194,221, 78,222,219, 65, 16,121,236,240,193, 45, 67,135, 14, 61, 0, 96, 15,128,175, 45, 45, 45,239,141, 31, 63, 62,254,232, +209,163,241,219,182,109,211, 36, 37, 37,145,233,211,167, 43, 57, 28,206,215,212,125,144, 2, 5, 10, 20,254, 50, 84, 69,134,183, +107,138,208, 26,182,108,217, 50, 49, 33,164, 42,150,214,228, 90,202, 12, 95,181,106,149,152, 16, 82, 21, 29,254,253, 0,102,181, + 5, 52, 11,222,187,119, 47,225,112, 56,255,251,192,198,212,228, 20,141, 28, 57,178,139, 76, 38,235,100,107,107,219,169,210,114, +229,100,101,101,149,114,252,248,113, 69, 89, 89,153,130, 16,162,208,233,116,138,168,168, 40, 69,239,222,189, 21, 53,222,250, 27, +170,231,111,176, 82,132,251,207, 86,207, 32, 43, 69,184,255,222, 79,147, 14, 29, 58,116, 37, 53, 53,245,162,153,153,217,210, 70, +114, 58, 89, 91, 91,175,181,176,176,184,102,101,101,181,210,194,194, 34, 71,163,209,144,146,146, 18,146,152,152, 72,238,220,185, + 67, 30, 61,122, 68, 44, 44, 44, 50,235,170,103, 63, 99,230,227,146, 45,243,136,225,208, 6,162,222,189,130, 0, 32,146, 29,203, + 73,225,247, 33,228,217,172, 65,164, 55,151,241,240, 3,206, 39,132, 66,225,254, 95,126,249,197,144,156,156, 76,194,195,195,201, +165, 75,151,200,130, 5, 11, 72, 75,123, 59, 85, 23, 54, 61,175, 39,135,121,237, 67, 2,150,170, 84, 42,177, 76, 38, 19, 43, 20, + 10,113,171, 86,173,196,126,126,126, 97, 93,186,116,217,126,250,244,233,133, 27, 55,110, 28,209,207,148,147, 88, 26,113,154,144, +175,134, 16, 50,175, 7,121, 51,179, 55,233,107,204,124, 81, 39,167,173,109,102, 85,180,118,165, 82, 73, 34, 35, 35,201,173, 91, +183,136,200,202, 74,230,111,204,152,221,157,131, 94,221,205, 32,108,108, 61,251, 8,232,135, 31,127,255,141,190,236,202, 81,242, +243,212, 33,186,222, 66,250,222, 26,229, 78, 18, 66,114,198,140, 25,243,150, 16,146,115,246,236,217, 12, 66, 72,206,232,209,163, +223, 18, 66,114, 0,156,168,141,243,189,224,164,135, 42, 69,214,188,224,224, 96, 49, 33, 68, 28, 28, 28, 44, 6, 42,130,168,246, + 18,208,143, 60,217,183,213,160,186,116,132,156,158,254,145,190,151,128,126,164,214,122, 10,153, 23,163, 15,237, 32,234,107,199, +200, 47, 11, 38,234,123,136,204,238,122,120,120,108, 93,184,112, 97,216,163, 71,143, 94,234,245,250,248,148,148,148,248, 61,123, +246,196,119,237,218,245,190,165,165,101, 12,155,205,254,172,161,107,244, 39,129,226,164, 56, 41, 78,138,147, 66, 13, 16, 66, 80, +223,122,247,139,155, 55,111,230, 17, 66, 22, 7, 6, 6, 98,211,166, 77, 99,219,180,105, 51,222,193,193,193, 26, 0,178,179,179, + 75, 99, 99, 99,101,129,129,129, 88,187,118, 45,182,108,217,178, 29, 21,190, 44,255,151,200, 61,119,238,156,227,252,249,243,243, + 55,110,220,104,152, 62,125,186, 23,128,216,194,194,194,150, 19, 39, 78,156,199,100, 50, 3, 93, 92, 92,188,115,114,114, 10,202, +202,202,142, 1,216,135, 6,230, 76,235, 2,135, 14,125,199,102,118,184, 70,135,190,198,215, 67,214,174, 93, 59,110,244,232,209, +154, 29, 59,118,232,100, 50,217,133, 70,210,101, 20, 20, 20,172,171,250,199,194,194, 66,244,226,197,139,207,108,108,108,232, 41, + 41, 41, 80,169, 84, 72, 78, 78, 54,160, 98,106,170, 86, 40,116,100,215, 15,103,111,120, 46,158, 20, 96, 86,154,240, 28, 70, 12, + 6,180, 44, 54,114, 31, 95,195,161,200, 4,153, 82,131,221, 31,210, 78,137, 68,242,237,130, 5, 11, 38, 46, 93,186,148,235,226, +226, 66,123,248,240, 33, 78,157, 58,165,202,207,207, 31, 12,224,238,175,161,159,154, 6,131,193, 0, 54,155, 13, 0, 88,190,124, + 57,232,116, 58, 43, 63, 63,159, 77,163,209, 56, 52, 26,205,132, 70,163, 49,180,169,241, 48,200, 74,144, 87, 34, 65, 70,158,164, + 94, 62,189,193,112,234,201,147, 39,139,218,183,111, 79,127,246,236, 25, 10, 10, 10,144,156,156, 76,244,132,156,136, 44,211, 87, + 56, 37,170, 26, 95, 63, 19, 11,203,145,237,204, 57,116,246,225,181,240, 87,211, 25, 63, 26, 48, 6, 21,177,180, 0,224, 16,141, + 70, 51, 2, 80,212,170, 85,171, 62,175, 94,189, 50,110,213,170, 85, 89, 66, 66,194, 21, 26,141,230, 0,224, 72,109,156,198,198, +198,133, 0, 10,207,158, 61, 11, 0,179, 80,113,242, 58, 4, 5, 5,229, 68, 70, 70, 34, 56, 56, 56, 15,192, 94, 0,224,155, 91, + 14,247, 22, 24,209,216, 63, 5,163,171, 10,244,221, 6, 82,171,213,149,111, 99,219,183, 13,143, 14,214,193, 53,232, 36,242,164, +179,117,154,182, 33, 33, 33,145, 10,133, 66,117,242,228, 73,245,180,105,211, 24, 73, 73, 73, 79, 1,220, 3,112, 22,149, 62,150, + 20, 40, 80,160, 64,225, 47,197,251, 97, 29, 26,244,209,122, 95,181,110, 2,240,195,235,215,175,171,147, 74,191,126,253, 90, 12, +224, 71, 84, 68,131, 31,214, 4,197,187,186,210,162,181,239, 3, 27,243, 62, 39,215,215,215,215,248,213,171, 87, 70,168, 61,225, + 49,237, 3, 56,127,135,218,114, 29,122,120,120,236,212,106,181, 97, 63,254,248,227,105, 6,131, 49,241, 15,168,125, 23,119,119, +247,146,227,199,143, 27,194,195,195,201,234,213,171,245,118,118,118, 37,248,189,143,214,111, 56,253,217,140, 51, 75,188, 28,100, + 81,147,123,144, 55, 11,135,147,123,147,122,147,217, 14,124,153, 63,151,113,234, 15,190,149,184, 11, 4,130, 67,198,198,198, 50, + 51, 51,179, 27, 0,186,253,145,107,100,105,105,121, 84, 36, 18,221,168,185,217,218,218,134, 89, 91, 91,127,103,101,101,181, 90, + 40, 20,206,113,229,178,119, 44,108,105, 95, 30, 51,178, 21,137,232,110, 77, 38, 89,177,223,159, 58,124,191,158,118,174,174,174, + 69,161,161,161,134,139, 23, 47,146, 21, 43, 86, 24,154, 53,107, 38, 67, 61,126,109,245, 90,180,132,140, 83,103, 70,119, 49,228, +125,228, 64, 54,121,153, 26,250,152, 51,234, 90,161, 56,169, 82, 0, 79,109,136,211,205,205,237, 71, 66,200,225,245,235,215, 31, +198,175,185, 64, 7,132,132,132, 4, 17, 66,130, 66, 66, 66,130, 0, 12, 2, 0,127, 1, 61,244,216,136,142,250,236,161,246,228, + 27, 47,190,222, 95, 64, 15,173,213,146,105,193, 60,119,126,230, 71,134,156,153,221,201, 90,119,158,190,139, 5,231, 38,155,205, + 94,136, 10,139,179, 31, 0, 54,245,214, 76,113, 82,156, 20, 39,101,209,250,123, 8,175,198, 36,149,174, 9,145,133,133,197,161, + 22, 45, 90,156,118,113,113, 57,205,231,243,183,163,194,105,190,169, 23,194,117,195,134, 13, 50,129, 64,208,238, 79,188,184, 54, + 0, 28,240,251,196,185,127, 90,135, 89,103,135,249, 73, 75,199,190, 88,103,135,249, 53,190,246,243,242,242,250, 6, 21,209,188, +255,104, 39,116,177,176,176,216, 99, 97, 97,145, 89,233,155,229,210, 24,206,142, 12,198,196, 62, 92,198,195,110,108,122,110, 31, + 46,243, 65, 39, 6, 99,194, 63,116, 0,214,183,216,162, 46, 78, 71, 43, 43,171, 29, 22, 22, 22,217, 86, 86, 86,123,154, 40,178, +126,195,217,206, 24,118,125,133,140,115,221, 76,105,202,190, 2,198,217,142, 38,117, 47,234,104, 66,219,125,131,131,131, 63, 33, +132,124, 98,111,111, 31, 88, 67,248,123,175, 93,187, 54,128, 16, 18, 80, 21, 1,222,207, 4, 54,189,133,140,227,221,205,104,146, +222, 66,198,113, 63, 19,216,212, 85,207, 62, 66,198,169,238,102, 52,137,191, 25,253,184, 51, 7,205,168,155, 57,197, 73,113, 82, +156,148,208,250,119, 8, 45,170,195, 80,156, 20, 39,197, 73,113, 82,156, 20, 39,197, 73, 9,173,218,133, 85,205,205,174, 74,104, + 49,169,115, 67,129, 2, 5, 10, 20, 40, 80,160,240,135, 80,103,192, 82, 90, 61,170,180, 41,142,237, 31,162,108, 35, 40, 78,138, +147,226,164, 56, 41, 78,138,147,226,252,207,113, 54,196,253,127,189,176,238, 47, 3, 53,117, 72,113, 82,156, 20, 39,197, 73,113, + 82,156, 20,231,223,133,243, 95, 7, 66,200, 7, 5, 9,165, 64,129, 2, 5, 10, 20, 40, 80,160,240, 43,124, 43, 63,171, 3,151, + 86, 89,179,106,245,209, 98,250,173,207,211,233,116, 54, 0,192,100, 50,243,181, 79, 87,219,213,199,206, 2,250,233, 42,210,239, +128, 9,204,210, 1, 55,106,225,188,161,211,233,204, 43, 57, 75,180, 79, 87, 15,170,151,211,111,253,181,154,229,117, 79, 87, 15, +248,157, 82, 4, 24, 44,191,245,217,239,213,213,190,177,103,133,134,223,196,196,250,203,234,249, 79,225,252, 47,131,213,121,125, +158, 86, 91,209,143, 88, 44,102,190,230, 73,253,253,200,168,243,250,236,154,229,181, 79, 86,219,214,199,105, 98,204, 41,114,115, +176,222, 94, 31,103, 74,118,225, 98,101,105,185,101,125,156, 77, 29,155, 78,118,118,253,244,149, 99,147, 1,204,202,204,201,185, +241, 55,235, 75, 29, 1,172, 6, 96, 86,227,187, 24, 0, 95, 80,189,146, 2, 5, 10,255, 48,161, 21,141,138, 60,135,251, 43,197, +214,254, 58,133,150, 78,167,179, 17,255, 18, 4,165, 10,232, 55,101,189,141,235,200,125,191, 75,148,172, 43, 47, 97, 75,226, 78, +122, 51,180, 50,115,107,166,198, 44, 59, 59,155, 6, 0, 52, 26,237,127, 0,156,107,225, 52, 23,255, 18,132, 82, 53,224, 63, 62, +196,220, 25, 48, 43, 48, 50,250,210,152,199,235, 83, 86, 86,214, 6, 0,140,141,141,227,202,148,202,219,214, 26,205,182,247,203, +215,213,178,154,117,237, 59,121,189,141,215,200,125, 11,244, 6, 3, 59,235,217,143,254,229,133, 73, 76,150, 78,181,119, 37,112, + 37,168, 22, 81, 85, 7,223,175,199,253,120,133, 37, 11,232,203,230,114,219, 9,205,205,123, 26, 8,105,101, 48, 24,104,122,157, + 46, 94, 38,149,222, 51,232,116, 47,116,106,165,165,248,194, 55,134,250,234,249,126, 91, 62, 6,152,191, 0,129, 60, 62,191, 15, +131,197,234, 6, 0,122,173,246,161, 82,161,184, 61, 10, 56,211,152,182, 55,246,252,124,104,249,255, 26,180, 90,157, 77,234,181, + 32,168,180,128,239,152,111,108,124, 38,254,116, 28, 0,212,249, 47,108, 21, 73, 23, 58, 3, 0,207, 45,224, 9, 71,228,155, 7, + 0,204,119, 57, 54,137,225,171,160,210, 2,173, 2, 66,108, 26,226,156,182,246,148,229,210,217,163, 57, 0,112,253,236,119, 45, +111,133,253, 48, 4, 0,250,142,158,123,101,224,152,249,137, 0,176,101,127,152,229,137,111,198,214,203,217,184,177, 41, 53,146, + 38,133,187,171,101, 57, 66, 39, 30, 83,148,148,148, 68, 7, 0,123,123,251, 70,141, 77, 71, 64,144, 3,204,163, 51, 24, 61,221, +220,221,125, 1,144,148, 55,111,162,245, 58,221,125, 59, 96,239,159,220,151, 22, 16,242,219,224,172, 52, 26,141,234,144, 20, 40, + 80,248,167,225, 82,165,184,186,244,187,151,217,186,246, 80,170,128,187,201, 64,175, 46, 62,152, 61,113, 40,191,230,111,103,246, +133, 56, 39, 61, 59,239,117,240,167,109,116, 31, 31, 31,164,166,166, 54,170, 22,165,106,224, 78, 18, 0,201, 43,211, 18, 30,239, +205,142,173, 91,205, 6, 12, 24,192,180,183,183, 7,141, 70, 67,110,110,110,151,136,136,136,142,139, 22, 45,250, 20,146, 87, 37, +165,106,200,239, 36, 53,204, 91, 85,215, 54, 45,155, 97,245,252,177, 2, 0, 88, 57,101,111,199,103,175,243, 44,222,188,121,211, +111,217,178,101, 69,140,219,183,127,176, 2, 14,231, 1, 25,141,169,231,209,139, 79,184,130,156,159, 93, 39,205,159,127,214,221, +221,157,239,226,226, 66, 51, 53, 53, 5,131,193, 64, 73, 73,137,115,108,108,236,144,167, 79,159, 42, 35,238,254,143, 29,245,116, +120, 74, 62,183,115,121,163,218, 94,150,205,189,110,106, 26, 55,121,212, 40,199,177, 99,199,114,221,220,220, 0, 0,111,222,188, +241, 56,115,230,204,248,179,103,207,174, 69, 89,182,174, 84,141,242,134,218, 94,205, 9,128, 11,116, 19,218,216, 76, 98,176, 88, +109,116, 58,157, 67,165,181, 33, 75,175,213,198, 73,242,243,143,189, 95,158,194,239,161,210, 2,175,114,128,254, 61,125, 49,121, +116,127, 30, 0, 44, 27,183,161,203,187,183,201, 70,106,181, 26, 45, 61, 91,117,255,250,155,237,215, 64,167, 35, 52, 44,162,186, +124, 99, 56, 99, 94,165, 34,232,235, 29,200,126,121,166,139, 94,154,220, 71, 46,147, 50, 0,192, 76, 32, 24,125,230,228,207,183, +237,189, 3, 31, 39, 23,106, 26,197, 89,223,216,188,122,114,143, 93,102,236,237,214,223, 95, 63,196,114,118,118,198,203,151, 47, +155, 54, 54,165,175, 77, 13,118,118,241,219,190,250, 74,228,239,239, 15, 62,159, 15, 38,147, 9,157, 78,215,255, 42,105,207, 98, + 0, 0, 32, 0, 73, 68, 65, 84,254,253,251,253,131,130,130,230, 66,250, 90,217,216,177,217, 8,108,163,209,104,125,166,205, 94, + 96, 55,116, 68, 32, 70, 15,238, 78,117, 68, 10, 20, 40,252,211, 80,101,189,170,185,242,112,127,189, 66,139,201,100,230, 15,152, +186,209,166,103,231,182,120,246, 34, 81,154,150,158,163,168,250,173, 56,238, 76,203, 17,221, 29, 90, 71, 70,222,133, 74,165,194, +195,135, 15,241,226,197, 11,188,125,251, 22,115,230,204, 81, 85, 78, 29,214,198, 89,226, 63, 62,196, 28,210, 36,190, 7,251,117, +243,136,132, 4, 70,121,121, 57, 34, 35, 35, 81, 82, 82, 2, 54,155, 13, 71, 71, 71, 12, 28, 56,144,153,144,144, 96,209,111,192, + 96,129,255,224, 9,169, 16,120, 40,152, 76,102, 73, 93,121, 68,152, 76,102,126,191, 41,235,109, 90,123, 52,195,155,180,108,233, +234,111, 14, 42, 12, 6,194, 76,121,251, 78,115,247,238, 93,248,250,250,226,198,141, 27,150,197,197,197,107,246,238,221,187,154, +181,249,251, 93, 90,117,209, 18,212,205, 87,226, 63, 62,196,220, 50,255,180,203,173,171,231,140,226,226,226,140,126,252,241, 71, + 20, 21, 21,129,205,102, 67, 40, 20, 66, 36, 18,161,101,203,150,180,149, 43, 87,242, 3, 2,226,240,249,172, 64, 23,141,235,204, +215,117,213,179,186,237,138,119, 38, 86,178,235,110, 97,151, 46,209,123,244,232,241,155,215,246, 22, 45, 90, 96,208,160, 65,220, + 73,147, 38,185,141, 29, 63,209,224,255,209,180, 55,224,187,148, 54,200,169,204, 48,182, 44,125,100,223,127,252,248, 11, 33, 33, + 33, 66,145, 72, 4, 30,143, 7, 0,144, 74,165,142,105,105,105, 93,214,174, 93, 59,230, 73,204, 73,166,127, 64, 70, 54,120, 78, +101,245,157,207,255, 42, 88, 44,102,126,149, 21,201,148,103, 92,146,145,153,167, 4, 0,181, 90, 13,181, 90, 13,149, 74,133,207, +230,206, 97,204, 26,227,231,238,210,115,193,243,183, 89,121,197,173, 34, 30, 91, 84,237,171,109,128,147, 89,250, 86, 34, 73,191, + 57, 43,232,171,175, 68,182,182,191,206, 8,134, 30, 61,202, 40, 46, 46,238, 31, 20, 20,212,154,152,244,150,180, 10, 8, 17,214, +199, 89,223,216,148, 36, 94,106,254,245,252, 65,237,246,125, 19, 14,189, 94,143, 71,143, 30, 33, 50, 50, 18,219,183,111, 39, 87, +174, 92,145,154,241,120,179, 80,239,216,124,109,218,195, 46,215,117,243,230,179, 52, 14,135,131,243,231,207, 35, 33, 33, 1,116, + 58, 29, 62, 62, 62,152, 60,121, 50,250,247,239, 47,154, 61,123, 14,241, 31, 60, 46, 5, 2, 79,249, 31,236, 75,116, 0, 11, 86, + 4,109,182,155, 50,115, 30,182,124,189,146, 18, 90, 20, 40, 80,248, 39, 91,179,234, 12,241,128,240,240,112, 82,185,245, 2, 0, + 2,208, 91,140,220,119,226,116,148,225, 82,139,145,251, 78, 16,128, 78, 0,186, 25,208,172,125,251,246, 90,137, 68, 66,158, 62, +125, 74, 62,251,236, 51,229,174, 93,187,110, 95,186,116,233,140, 78,163, 57, 96,111,103,247, 45, 65,237, 14,246, 4,160,187, 0, + 2, 19, 19,147,130,244,244,116,114,249,242,101, 18, 28, 28, 76,142, 29, 59, 70,174, 92,185, 66, 34, 34, 34,200,149, 43, 87,200, +137, 19, 39, 72, 76, 76, 12, 73, 76, 76, 36, 60, 30,175,192, 5, 16,212,195,201, 32, 0,163,229,200, 31,151,156,125,166, 13,241, + 28,185,111, 17, 1, 24,230,128, 87,251,246,237,245,103,206,156, 33,161,161,161,228,167,159,126, 34, 49, 49, 49,164,176,176,144, + 48, 57,188,130,170,253,234,170, 39, 1,232, 14, 14, 14, 5, 18,137,132, 56, 57, 57, 17, 54,155, 77,108,109,109, 73,203,150, 45, + 73,151, 46, 93,200,144, 33, 67,200,196,137, 19,201,154, 53,107,136, 68, 34, 33, 92, 46, 55,175,106,191,186, 56,125, 1, 99, 30, +143,151, 46, 22,139, 73, 93, 40, 43, 43, 35,133,133,133,228,218,181,107,132,199,227,165,251, 2,198,245,113, 26, 3, 29,188,189, +189, 11, 10, 11, 11,137, 70,163, 33,233,233,233, 36, 54, 54,150, 36, 36, 36,144,244,244,116, 82, 86, 86, 86,205,157,152,152, 72, + 92, 93, 93, 11,140,129, 14,117,113,254,151, 81,213, 39,222,223,156,109,109,135,136, 68,162,178,179,103,207,146,172,172, 44,114, +228,200, 17, 66, 7, 54,188, 95,174, 62, 78, 54, 48,176, 71,143, 30,250, 71,143, 30,145,231,207,159,147,229,203,151,147, 65,131, + 6,145,193,131, 7,147,160,160, 32,146,153,153, 73, 50, 51, 51,201,144, 33, 67,244,108, 96, 96, 67,253,179,182,177, 41, 0,156, + 3, 2, 2,202, 52, 26, 13, 73, 73, 73, 33,109,218,180,201,100, 0,147,120, 64,235, 94, 0,167,161,254,233, 0,152,219,217,217, +229, 60,122,244,136,132,133,133, 17, 23, 23,151, 2, 6, 48,205, 12,104, 97, 6,180, 96, 0,211, 90,180,104, 81,240,232,209, 35, + 82, 84, 84, 68,156,157,157,115, 28, 0,243, 63,208,151,232, 0, 14,173, 8,218, 76, 94,103, 42,201,138,160,205, 4, 64, 58,169, +240, 30,189, 65,245, 72, 10, 20,254,123,120, 95,139,252,227,159, 43,132,252,118,213, 97, 64, 64, 0, 13,192,157,250,118, 42, 99, + 48, 54,110,217,178,133, 89, 94, 94,142,131, 7, 15,202, 63, 30, 51,230,116,175,158, 61, 83,154,187,184, 72,104,116,122,131,217, +134, 11, 56,156,133, 91,182,108, 17,170,213,106, 68, 69, 69,161, 99,199,142, 16,137, 68,224,243,249,224,243,249,176,177,177,129, +167,167, 39,242,243,243, 97,106,106,138,165, 75,151, 10, 10, 56,156,133, 13,241, 26, 12,132, 9, 0,122,131,129,109, 4,204,118, +237,212, 41,106,237,218,181,116, 75, 75, 75, 88, 88, 88,128,207,231, 35, 33, 33, 1,106,181, 26, 38,198, 38,141, 10,210, 74,167, +211,233,124, 62, 31,183,110,221,194,130, 5, 11,208,173, 91, 55, 8,133, 66,152,154,154,162, 77,155, 54, 24, 56,112, 32,102,205, +154,133,148,148, 20,208, 26,225, 84, 18,207,100,206,155, 53,107,150,141,175,175,111,173,191,151,151,151, 67, 34,145,160,160,160, + 0,142,142,142, 8, 12, 12,180,137,103, 50,231,213,197,103, 9,136, 28, 61, 60, 46, 60,125,250,212,138,199,227, 33, 52, 52, 20, +231,206,157,195,213,171, 87,113,249,242,101,132,135,135,227,252,249,243, 40, 40, 40, 0, 0,120,120,120,224,212,169, 83, 86,124, + 27,155,112, 75, 64, 68, 13,233,198,225, 93, 94,222,245, 54,185,185, 86,147, 38, 78,188,167, 80, 40, 48,105,210, 36,108,220,180, +105, 37, 11, 88,212,152,253, 61, 1,129,133,157,221,225,205,155, 55,211,115,115,115, 49,106,212,168,194,109,155, 54,205,136,190, +118,205, 77,124,245,170,219,198,144,144, 25,189,122,245, 42,204,204,204,196,209,163, 71,233,182,206,206,135, 61, 1, 65, 83,235, + 41, 7, 22,236,220,185,147, 91, 94, 94,142, 1, 3, 6,164, 24,226,226, 60,117,192,207, 10, 32,225, 14,160,105,104,255, 28, 96, +222,210,165, 75, 69, 28, 14, 7, 95,126,249,101, 97,233,187,119,109,117,192, 79, 82, 32, 77, 10,164,233,128,159,228,169,169,109, +167, 76,153, 82,200,225,112,176, 99,199, 14, 81,206,175, 73,183, 27,139,142, 0, 46, 0,184, 11, 32,123,218,236, 5,211,124,253, +186,226,232,129,189,248, 38,100,217, 97, 0, 31,211,104,180, 99, 0,150, 80, 61,143, 2,133,255, 38, 26,163, 69,254,166,152, 93, +215, 15,204,154, 74, 18, 64,239,250, 88,204, 45, 45, 59,182,109,219, 22,145,145,145,240,246,246,126, 42, 20, 10,117, 70, 28, 14, + 88, 44, 22,136,161, 65,157, 5, 99, 30,175, 95,255,254,253,153,143, 31, 63,134,171,171, 43,140,141,141,193, 98,177,126,179, 25, + 25, 25,193,206,206, 14, 50,153, 12,253,250,245, 99,237,222,189,187, 31, 84,170,175, 27,124, 32, 38,197,242, 11, 30,111,158,248, +191, 35,135, 91,248,251,251, 67, 42,149,193, 96, 48,192,196,196, 4,106,181, 26, 76, 38,179, 98, 10, 72, 75,100,141, 57, 99,122, +189, 94,207, 96, 48,224,234,234,138,141, 27, 55,162,188,188, 28, 70, 70, 70, 0, 0,153, 76, 6,137, 68,130,216,216, 88,164,165, +165,129, 52, 34, 34,153,169, 64, 48,116,236,216,177,181, 38,252, 85,169, 84,144, 74,165,144, 74,165,144, 72, 36, 40, 47, 47, 71, +215,174, 93,217,151,194,195,135,162,168,104, 91,173,251,112,185, 99,142, 30, 61,106,195,102,179, 81, 86, 86, 6,185, 92,142,140, +140, 12,188,123,247,174, 60, 63, 63, 95,103,106,106, 74,119,113,113,161,115, 56, 28,206,200,145, 35,105, 50,153, 12, 52, 26, 13, + 1, 1, 1,150,199, 67, 67,199, 66,173,222, 78, 13,233,198,225, 58,160,234,160, 86, 15,235,236,231,119,235,233,179,103,190, 11, + 23, 46, 68, 76, 76,204,102,147,147, 39,239,150, 2, 47,234,219, 55, 5,152,247,109, 13, 1, 67,222,189,243,214, 0, 5, 53,138, +164,185,164,166, 94,157, 50,101,202,203,152,152, 24,171, 29, 59,118,136, 62, 30, 53,106, 30,128, 13, 77,169,163,169, 64,208,201, +206,206, 14, 87,174, 92, 65,250,219,183,203,116, 64, 89,147,204, 75, 12, 70, 15,127,127,127,156, 63,127, 30,153,239,222, 45,211, +253,182,142, 21, 47, 74, 64, 1, 51, 37,101,217,225,195,135, 15, 77,159, 62, 29, 12, 38,179, 7,116, 77,154, 56,252,157,227,251, +244, 57, 11,113,120,255,238,195, 0,102, 2, 48, 0,120, 74,245, 56, 10, 20,254,219, 86,173,134,180,200, 63, 72,108,237, 7,208, + 52,139,150,141,141,141, 3,159,207, 71,118,118, 54, 90,121,121,229,115, 56, 28,176, 89, 44,112,217,236, 70,213,160,180,180,212, +219,222,222, 30, 82,169, 20, 86, 86, 86, 48, 50, 50,170,222,216,108,118,245,223,166,166,166,160,211,233,112,118,118, 70,105,105, +169,119,131,188,121,177, 54, 39,119,207,253,236,209,221, 43, 45, 70,141, 26, 13,115,115, 11, 56, 57, 57,194,198,198, 6,198,198, +198,112,114,114,130,155,155, 27,217,182,109, 27, 76,108,124, 26,117, 35,175, 41,158,152, 76, 38,244,122, 61,242,242,242,240,250, +245,107,196,196,196,224,209,163, 71,120,254,252, 57,228,114,121,163, 34,191,150,150,149,181, 99, 50,153,181,138, 44,137, 68, 2, +137, 68, 82, 45,180, 10, 10, 10,144,150,150, 6,133, 82,217,190, 30,209, 59,186,109,219,182, 12, 0, 48, 54, 54, 70,251,246,237, +177,111,223, 62,221,197,115,231,198,181,126,244,200,194,233,218, 53,225,255,126,252,113, 92, 96, 96,160,254,241,227,199,144,201, +100,120,245,234, 21,172,173,173,153,108, 46,119, 44, 53,156,155, 6, 49,160,180,146,203, 7,119,235,214, 45, 85, 42,149, 98,235, +214,173,116,150,169,233,254,144, 58,166,248,170,193, 96,116,247,247,247,199,133, 11, 23,144,253,238,221,242,119,181, 8,152,119, + 64, 65,122, 74,202,242,195,135, 15, 99,224,192,129,160, 49,153, 77,118, 84,234,210,165, 75, 91,131,193,128,151, 47, 95, 66, 8, + 60,105,234,254,110,238,238,190, 85,150, 95, 30,112,175,174,114, 60,224, 94,116,116, 52,140,141,141,209,170,117,235, 14, 77, 60, +204, 54, 26,141,150, 51,125,206, 66,132, 93,125, 0, 0, 56,188,127,119, 94, 13,145, 69,129, 2, 5,202,162,245, 79,181,104, 85, + 9,171,154, 27,126, 35,180, 26, 41, 62, 0, 0, 44, 22, 11,108, 14, 7,108, 54,187, 66, 32,113, 56,141,230,160,209,104,224,114, +185,213,194,170,166,192,170,249,183,137,137, 73,163, 67,215,151, 36, 95,237, 57,115,198,116, 54,135,195,129, 90,173, 2, 33, 4, + 28, 14, 23, 66,161, 16,174,174,174,144,201,100,232,214,189,151, 42, 67, 98, 20,110,217,106,100,204,135,156, 61,157, 78, 7,165, + 82,137,146,146, 18, 20, 23, 23, 67, 38,147,161,172,172,172,209, 75,209, 13, 6, 3, 35, 35, 35, 3, 63,255,252, 51,138,138,138, + 0, 84, 56, 90, 87,137,171,170,207,212,212, 84,132,134,134,226,237,219,183, 77,186, 62, 61,123,246, 68,120,120, 56,163,119,191, +126, 7,110,184,184,100,223,112,113,201,238,221,175,223,129, 11, 23, 46, 48, 28, 28, 28,144,150,150,134,168,168, 40,148,148,148, +128, 16, 66,173,159,255, 0,188, 1, 74, 74,139,139,167,175, 92,185,146,240,249,124,108,253,246,219,118, 27,128, 9,141, 21, 48, +130,122, 4,140,224,143, 9, 24, 16, 66, 96, 48, 24,160,215,235, 63,168,109, 52, 26,141,198, 98,177,154, 26, 90,161, 41,133,171, + 29,223,151,174,217,136,203,231,207, 84,125,159, 68,137, 44, 10, 20, 40,252, 11, 80,167, 35, 60,179,134,130,172,254,172, 11,121, +121,121, 89, 74,165,178,133,139,139, 11, 50, 51, 51,109,156,157,157,223,177, 89, 44, 24,177,217,160,209, 27,214, 4, 38, 38, 38, + 47,179,179,179,187, 59, 56, 56, 64,167,211, 85,139,170,247,167, 14,171,172, 52,207,159, 63,135,137,137,201, 75,148,215, 27, 57, + 1,122,117, 73,179, 14, 29, 58, 84, 91,134,132, 66, 33,132, 66, 1, 56, 28, 46, 86,173, 90,101,216,177,109,219, 94,231,190, 33, +210, 79, 22,173, 36, 43, 55, 28,248, 83,207,108, 99, 31, 76, 38, 38, 38, 47,157,156,156,186, 10, 4, 2,132,133,133, 33, 45, 45, + 13, 37, 37, 37, 40, 45, 45,133, 74,165, 66,105,105, 41,212,106, 53,184, 92, 46, 90,183,110, 13, 51, 51, 51, 68, 68, 68,188,132, + 74, 85,187,184, 44, 42, 10,123,249,242,101, 87, 63, 63,191,106,139, 74,159, 62,125,104,125,250,244,177,170,182,162,149,150,162, +176,176, 16, 79,159, 62, 69, 68, 68, 4,104, 52, 26,146,146,146,244,170,178,178, 19,212,152,248, 48,148, 3, 15, 25,135, 15, 31, +250,244,211, 79,103,116,239,222, 29,122, 96, 8,128,208,255,143, 2, 6, 0,240,232,209,163, 88,189, 94,223,189,101,203,150,144, + 0,157, 1,156,111,146,136, 76, 78,142,214,233,116,253,218,181,107,135,176,211,167,123, 2, 72,171,173,156, 18,232,233,235,235, +139,178,178, 50,188,138,143, 23, 55, 65,100, 29, 88, 17,180,121,218,148,153,243,112,244,192, 94, 28,222,191, 59,227,208,190, 93, + 78,104,132,255, 24, 5, 10, 20,254, 83,214,172, 6,181,200,223, 20,179,235, 18, 95,204,166,176, 72, 75, 74,196,209,209,209, 45, + 58,116,232,128, 3, 7, 14,248,117,235,218, 53,203,136,205,214,177,141,140, 64,111,196,131,164, 76,169,188,121,243,230,205,206, + 35, 71,142,100, 62,126,252, 24, 34,145,168, 90,104, 85,125, 50,153, 76, 16, 66, 96, 98, 98,130, 95,126,249, 69, 83,166, 84,222, +108,208, 90,164, 55,232,233,149, 66,143, 16, 2,137, 68, 2, 35, 35, 35,108,223,190, 3,123,182,109,155,168, 7,206,120,240,172, +191, 2,192,253,255,246,128, 46, 45,189,117,249,242,229,142,107,215,174,101, 57, 58, 58, 66, 34,145,160,164,164, 4, 69, 69, 69, +144,201,100,144,201,100, 40, 41, 41,129, 68, 34, 1,151,203, 69, 76, 76,140,182,188,180,244, 86, 93,124,156,242,242,179, 83,167, + 78, 93, 26, 29, 29,109,199,100, 50,161,213,106, 97, 48, 24, 96, 48, 24,160,209,104,144,156,156,140,184,184, 56, 36, 36, 36,160, +184,184, 24, 44, 22, 11, 12, 6, 3,207,159, 63, 47,225,105,181,167,213,212,152,254, 96,176,128,176,251,247,239,207,152, 60,121, + 50,236, 29, 29,123, 33, 51,179, 81, 2,230, 92, 61, 2, 70,250, 97, 2,230, 87, 1, 36,151, 63, 75, 77, 77,237,222,187,119,111, +216, 57, 58,110,110,157,153,121, 35,190, 9,126, 90,122,157,238,222,253,251,247,251, 77,153, 50, 5, 7, 14, 28,216,108,157,154, +122,181,224,189,105, 78,107,192,186,185,155,219,230,105,211,166,225,250,245,235,208,235,116,247,234,161,172, 25,241,189,217,180, +217, 11,156,222,115,124,223, 71,163,209,230, 3,216, 74,245, 40, 10, 20, 40,252,155, 45, 90, 77,154, 58, 52,214,235, 87, 44, 89, +178, 68, 75,167,211, 49,122,244,104,211,243, 23, 46, 4, 62,127,241,194, 53, 63, 63, 95,168,215,235, 27,228,178, 86,169,118, 45, + 89,178, 68,162, 86,171,225,233,233,137,226,226, 98,232,245,122, 48,153, 76, 48,153, 76,208,104, 52,208,233,116,240,249,124, 68, + 71, 71,227,208,161, 67, 50,107,149,106, 87,131, 15, 9,189,254,101,104,104, 40, 24, 12, 6,225,114,185,160,209,104, 96, 50,153, +216,177, 99, 71,254, 30, 32, 12, 0, 24,116,186, 26, 0,232,116, 90, 99,189,119, 27,156,183,100,179,217, 48, 84, 44, 2,104,176, +172,185, 74,181,115,203,150, 45,242, 87,175, 94, 65,169, 84, 86, 91,223, 20, 10, 69,181,115,189, 68, 34, 1,141, 70,131, 82,169, +196,133, 11, 23,228,230, 42,213,206,186,248,138,128,220,204,164,164,225,126,126,126, 69,169,169,169,144, 74,165,120,249,242, 37, + 34, 34, 34,112,234,212, 41, 92,191,126, 29,201,201,201,208,233,116,112,112,112, 0, 33, 4,231,206,157,147,234,228,242, 33, 69, + 64, 46, 53, 38,234, 70, 51,145,168,159,173,141, 77,186,181,149, 85,102, 51,145,168,223,251,191, 11,128,196,196,196, 68,232,116, + 58,184,186,186, 90,212,231,167, 69,116,186,251,247,239,223,199,148, 41, 83,224,212,162,197, 38, 23,192,250,253, 50, 46,128,181, +139,155,219,166, 42, 1, 67,116,186,251, 77,173,179, 41,176,251,171,175,190, 42, 51, 50, 50,194,201,147, 39, 93,181,238,238, 9, + 76, 96, 2, 31,240,234, 13, 24, 53,180,191, 29,176,119,205,154, 53,185, 52, 26, 13,199,142, 29,179, 18,184,185,197, 50,129,169, + 2,160,153, 0,104,198, 4,166, 10,220,220, 98, 79,158, 60,105,165,211,233,176,104,209,162, 92, 59, 96,111, 61,148, 11, 8, 33, +195, 8, 33,254,132, 16,167, 67,251,118,225,242,249, 51, 85, 34,107, 38, 42,156,222, 39, 3,136,165,122, 28, 5, 10, 20,254,205, +168,213, 12,197,244, 91,159, 7, 16,155, 94, 93,124,240,236,197,107,169,149,185,217,181,170,223,138,227,206,180,236,235,109,230, +243,253,247,223,131,197, 98, 33, 35, 35, 3,241,241,241, 48, 51, 51,195,196,137, 19, 85,101,114,249,240, 26,185, 14,251, 3,136, +168,228,172,200,167, 38, 77,226,187, 49, 99, 90, 92,189, 28,206, 16, 8, 4, 80, 40, 20,160,211,233,224,114,185, 48, 49, 49,129, +177,177, 49,162,162,162,240,209,176, 17,250, 2, 19,255, 95, 3,150,254,154, 79,173,154,179, 42,214, 80,103,192, 36, 26,248,210, +198,222,126,201,234,213,171,141, 7, 13, 26, 4, 35, 35, 35, 56, 54,243,200,117, 29,188,117, 55,157, 78,211,101, 22,201, 86,185, + 53,179, 23,196, 39,165, 1,160,229,107,159,174,182,175,145,235,240,119,245,116, 86,223,117,253,229,167,109,102,237,219, 87,248, +163, 75, 36, 18,228,229,229, 33, 63, 63, 31, 18,137, 4, 74,165, 18, 0, 16, 30, 30,142,203,145, 9,178, 50,199,192,148,186,234, +249,107,219, 95,155,218,107,158, 52, 63, 30,250, 19,195,218,218, 26,121,121,121, 40, 40, 40,128, 68, 34, 65, 89, 89, 25,244,122, + 61,138,139,139,113,240,240, 79,250, 34,190,255,219,234,128,144,245,113, 42, 51,140, 45, 20, 15, 28,124, 91,187,144, 25, 51,102, +152,154,153,153,193, 96, 48,160,164,164, 4,233,233,233, 72, 77, 77, 69,100,100,164, 50, 95,162,134,210,106, 64,102,117,192,210, + 90, 56,255, 68,252,227, 56,107,198,173,178,183,179,203,126,247,238,157,141, 94,175,135,131,131,131, 78, 82, 92,188,137, 13, 92, + 55, 5,114, 0,144, 66, 96,245,206,221,187,167,143, 24, 49, 2,157, 58,117,202,200,205,203,107, 94, 91, 95, 34, 0,195, 19, 16, +148, 58, 58,198, 61,125,250, 84,148,158,158,142, 41, 83,166, 20,190,123,243,102,121,149,191,150, 20,232,233,226,230,182,233,228, +201,147, 86, 45, 90,180,128,183,183,119, 46, 55, 61,189,205,107, 64, 90, 71,255,172,115,108, 74, 18, 47, 53,159, 59,170,109,167, +207, 62,251, 12, 58,157, 14,145,145,145,120,242,228, 9,222,189,123,135, 7, 15, 30, 72,204,120,188,113, 53,114, 29,214,218, 63, +135,120, 40, 93,143, 29, 11,165, 25, 25, 25,225,240,225,195,136,142,142, 6, 0,248,250,250, 98,218,180,105,208,233,116,152, 52, +105, 50,185,244,218, 56,165,190,254, 9,160, 45,128,111, 81, 33,242, 58, 17, 66,184, 52, 26, 45, 27,128, 19,154,230,147, 69,245, + 79,138,147,226,252,239,112,254,171, 80,111, 82,233,154,249,212,214,255, 0,193,111,211,124,204,202, 62,179, 47,132,217,163,167, +191, 87, 72,112, 16,221,207,207, 15, 78, 78, 78,240,245,245, 69,122,122, 58, 71, 40, 20, 54,148, 79, 77,225, 63,120, 66,170,143, +143,143,112,249,242,229,130,129, 3, 7,178,156,156,156, 64, 8, 65,116,116, 52,194,194,194, 52, 7, 14, 28,144,149,218, 14,147, +136,111,255,172,104, 76, 62,181, 39, 64, 41,128,117,142,217,217,251,231,205,157, 27,212,190, 67,135, 25,193,193,193,116,190,137, + 49,107,227,170,153, 92, 0, 88,255,221, 41,193,136,192,137,216,233, 14,244,154, 80,123, 30,185,154,245, 76,207,156,245,110,232, +168,126,238, 95,206,159,174, 31, 59,118, 44,207,204,204, 12, 78, 78, 78, 48, 55, 55, 71, 74, 74, 10, 50, 51, 51,201,197,139, 23, + 21,143,158, 39,178,206, 93,127,246,142, 43,176,107, 76, 94, 66,185,255,160,143,223, 14, 29, 58,212,124,234,212,169,166, 29, 59, +118,100,113, 56, 28,112, 56, 28,228,229,229, 33, 57, 57, 89,115,241,226, 69, 69,169,205,144, 18,241,237,147,242, 70,230, 58, 44, +243, 31, 31,146,124,239, 70,240,162,184,151, 47, 39, 27,128,118, 26,141,198, 65,175,215,211,232,116,122,142,193, 96,120,169,145, +203, 15,169,124,131,119, 80,185, 14, 27, 7,189, 94,111,164,215,235, 33,145, 72,112,227,198, 13,230,155, 55,111, 86,191,120,241, + 98,117,118,118, 54,180, 90, 45,198,140, 25, 3, 95, 95, 95,220,190,125, 27, 5,121,121, 23,235,227,122, 13, 72, 57,153,153,211, +102,205,154,117, 37, 52, 52,148,254,226,197, 11,171,195,135, 15, 31,172, 77,192, 76,158, 60,217,144,151,158, 62, 77, 5, 72,235, +233,159,245,141,205,194,171, 39,247,188, 24, 57, 58,176,117,240,218,213,172,110,221,186,193,202,202, 10, 61,123,246,132, 70,163, + 17,182,106,213,170,161,177, 41,247, 31, 60, 46,165, 93,187,118,188, 29, 59,118,136,166, 79,159,142,249,243,231, 3, 0,202,202, +202,112,253,250,117, 44, 90,180, 40, 55,157,217, 89,217, 80,255,172,180, 84, 85, 9,176,187, 0,252, 1,164,128,114,124,167, 64, +129,194,191, 19, 85, 73,165,237, 80,145, 88,250, 18, 42, 94,206, 27,206,117,120,239, 73, 44,106,166,249,168,128, 93,188,206,121, +234,155, 57, 75, 54,121, 51,180, 50,115, 22,173,220, 44, 41, 49,145,214, 80,206,195,234,124,106, 2, 15,133,101,234, 9,191,141, +235,215, 47,220,185,115,103,191,170, 16, 14, 38, 38, 38, 47,203,148,202,155,214, 42,213,174, 82,129,199,205,166,230,230,203, 4, +242, 0,204, 53, 23,139,119, 7,140, 24,179,133,107,225,202, 90,185,225, 64, 57,131, 78, 87, 39,103, 23, 96,167, 59,192,107,196, + 2,201, 82, 53, 16, 39,177,211,229, 89, 6,190, 94,243,213, 87, 95,174, 95,183,206,143,207,231,247,210,232,116, 30, 6,131, 1, + 48, 24,146, 74,149,202,187, 68,163,121,170,242, 93,187,141, 43,176, 35,141,206, 75, 40,108, 37,183,120,123,198,239,200,161, 67, + 11, 78,159, 62,253,187,182, 91,170, 84,187, 75,133,173, 34, 26,211,246,154,101,202,129,135,200,207,127, 88,159,233,146,202,117, +216, 56, 48, 13,134,217,230,230,230, 71,251,245,235,199,237,223,191, 63, 62,250,232, 35,116,235,214, 13, 6,131, 1,132, 16,200, +229,114,156, 58,117, 10, 91,182,108, 73,106, 14,172,107,136, 79, 5,220,228, 92,190, 60,164, 93,187,118,135,235, 19, 48,149, 34, +171, 65,159,196,250,199, 38, 39, 73, 39, 24,158, 54,126,222, 70,119,181, 44, 71,104,105,162, 19,197,197,190,164, 55,126,108,122, +202,245,209,167, 58,143, 25, 53,106, 30,131,201,236, 89,185, 2,146,188,138,143, 23, 87, 37,149,134,239,180, 27, 77,236, 75, 85, +177,235, 40,199,119, 10, 20, 40,252,219,133,214, 71,168,240,215,170, 78,201, 83,103,174,195, 42,171, 15,147,201,204, 79, 57, 55, +103, 98,125,236, 44,160, 95,165, 37, 11, 13,230, 58,172,252, 59, 13,144, 67,165,250,250, 55,193, 72,107,172, 46,100,189, 87,190, + 41, 97, 17, 75,128,215,208,169, 2,144, 31, 15, 92,152, 91,193,231,183,126, 89,205, 54,213,249,144,253,205,113,141,138,203,129, +123, 80, 40,238, 65,161,168,213,105,151,197, 52, 42,110,168,158,239,183, 61, 29,144,253,209,182,191,207,217,160,120,248, 3,231, +243,191,134,172,194,194,115, 0,248,142,225,225,182, 87,195,195,199,126,185,120,241, 24, 59,123,123, 55, 43, 43, 43,115, 83, 83, + 83,250,227,199,143, 83,117,229,229,187,219, 3, 71, 42,173,169, 13, 66, 5,220,244, 76, 79,111,243,241,168, 81,243,104, 76,102, +143,154, 2,134,232,116, 15, 92,129,189,245, 89,178, 62,116,108, 58,113,236,250, 85, 90,178,192, 0,102, 53,166,111,100, 86,212, + 99, 3,116,186, 13,136,137,169,165,207, 55,185, 47,173,167,209,104,114, 80,142,239, 20, 40, 80,248,247,162, 42,223,225,165,255, +235, 3,247,167, 56, 41,206,127, 17, 39, 3, 21,171,232,168,243, 73,113, 82,156, 20, 39,197, 73,161, 94, 84,229, 58,100, 82,167, +130, 2,133, 70, 67,143, 95,167,193, 40, 80,160, 64,129, 2,133, 42, 84,249,102,213,196,126,160,194,117,167, 46, 85,218,148,213, + 4, 31,162,108, 35, 40, 78,138,147,226,164, 56, 41, 78,138,147,226,252,207,113, 54,196,253, 79, 92,205, 88,229,147, 85,237,155, +213,216,236, 54,127, 20,148, 89,149,226,164, 56, 41, 78,138,147,226,164, 56, 41,206,127, 59,236, 42, 69, 86,245, 86, 53,117, 72, +167,206, 13, 5, 10, 20, 40, 0,193,193,160, 19, 2, 26, 33,193,116, 66, 78, 51, 8, 9,100, 16,130, 63,148, 10, 36, 48,176,246, + 96,182,159, 79, 52, 55,165,206, 56, 5, 10,255, 42,228,160,142,164,210,148,143,214,255, 95, 56,139, 68,162,125, 0,104,185,185, +185,179, 1,164, 83,167,228,239, 7, 11, 11,139,126, 58,157, 14, 50,153,236,230,191,177,125,173,221, 48,138,208,209,170,250, 11, +130,244, 87,201, 56, 90, 91,217, 86,238,152, 2,218,175,177,184,104, 6,188,138,127,131, 95,154,112, 56,250,144,254, 78,123, 1, +224, 74, 68,198, 60,252, 53,113,181, 90, 90, 91, 91, 95, 99, 50,153, 76,189, 94, 63, 55, 63, 63, 63,188,110, 33, 20,200, 0, 0, + 22,185,189, 66,146,107,179,252,139, 79,105,172, 82,213, 33,137,170, 76, 41,101,176, 24,111, 57, 44,209,253, 57,211,233, 87, 74, + 20, 93,227,107,219,255,204,153, 51,117,102,241,110,227,142, 33,116,125,235, 97,190,109, 83, 83,190,221,229,183,179,151,171, 21, + 43, 53,227, 57,127,243,143,210,125,108,161,203,176, 41, 99,105,225, 76, 19,218,228, 67,135,138, 20,212, 40,107, 60, 54, 2, 22, + 26,192,155,197,225, 56,233,117, 58, 91, 26, 64, 24, 76,102,158, 86,165,202, 48, 2, 98, 86, 0,146,127, 59,167, 17,135,227,168, +215,233,108, 1,224,239, 88, 79, 10,191, 69,157, 66,139,207,231, 71,209,233,116,199,154,201,112,171,242, 9, 86,125, 87,243, 55, + 26,141, 6,189, 94,159, 89, 82, 82,210,177, 9,199, 55, 3, 48, 22, 64,213, 18,245,227, 0, 78,225,195, 29,142,205,140,140,140, +150,240,120,188,190,101,101,101,109, 0,192,216,216, 56, 78,169, 84,222,210,104, 52,223,126, 32, 47, 19,192,199,124, 62,191, 15, +157, 78,239, 67, 8,161, 17, 66,110, 43, 20,138, 91, 0, 78, 3,248,144, 72, 9,198, 54, 54, 54, 27, 44, 44, 44, 38,172, 88,177, +162,200,210,210,210,115,209,162, 69,207,138,139,139,127, 46, 44, 44, 92,133, 38,228,168,251,139,225, 38, 18,137,142,179, 88, 44, + 70, 70, 70, 70, 31, 0,112,114,114,186,173, 86,171,245,249,249,249, 19, 1,188,105, 34, 31, 15, 64, 23, 62,159,223,145,207,231, +251,235,245,250, 86,149,249, 25, 95, 41, 20,138, 72,141, 70, 19, 5,224, 49, 0,229,223,104,140,152, 50,153,204,208,202,190,238, + 1, 64,254,111,187, 9, 16, 58, 90,197,199, 37,120, 86, 11,175, 54, 94,117, 23,166,193,185,150,178,141, 22, 90,125,123,217, 13, + 27, 62,124, 0, 29, 0,212,218, 43,195,110,221,205, 57,255, 39, 55,167,229,232,209,163, 31,134,134,134,154,171, 84, 42,204,158, + 61,251,120, 68, 68,196, 94,153, 76,182,162,222, 27, 7,223,124,209,214, 29,215, 77,104, 52, 58, 0,216, 24, 12,122,155,172,172, + 55, 30,241,177, 15, 7,199,197, 61,218, 88,150,112,235,177,129,198,154,163, 65,207,132,198, 84,162,149, 43, 2,134,141, 25,245, +209,186,117,193,152, 48,110, 66,179,184,184,114, 99, 7,179, 20,118,113, 25,207,221,210,218,102,248,186,245,103,104,247,239,157, + 27, 30,122, 56,228,214,244,233,150,125, 41,177,213, 40,208,214, 51,153, 93, 4,238,238,254,227,206,157, 3,223,201,137,201,228, +112,232, 0,160, 83,169,156, 20, 25, 25,118, 39,135, 15,239, 28,156,152,120, 39, 24,120, 66,113,254,127,225,164,208, 20,161, 69, +167,211, 29,179,178,178,108,120, 60, 94,197,205,152, 16,232,245,122,232,245,250,234,228,197,132,144,234, 79,157, 78, 7, 47, 47, +175, 70,189,209, 2,232, 11,224,147,222,189,123, 7,126,251,237,183, 44,111,111,239,170,148, 33, 61, 87,174, 92,249, 93,116,116, +244, 89, 0, 71, 80, 17,188,177,177,111,188,131,120, 60,222,177,173, 91,183,154, 13, 24, 48,128,105,111,111, 15, 26,141,134,220, +220,220, 46, 17, 17, 17, 29, 23, 45, 90, 52, 87,169, 84, 78, 2,112,173, 9,231,167,173,169,169,233,153, 81,163, 70, 57,246,234, +213,139,219,186,117,107,232,245,122, 60,127,254,124,122, 84, 84,212,248,179,103,207, 6,201,229,242, 64, 52, 62, 95, 27,141,207, +231, 79, 53, 51, 51,219,176,118,237, 90,139, 73,147, 38,177, 99, 99, 99, 75, 92, 93, 93,105,247,239,223,183, 62,117,234,212,220, + 77,155, 54,125, 44,147,201, 86, 41, 20,138,159,208,136, 28,138,166,166,166, 81,116, 58,221,177, 49, 66, 24, 64, 83,196,112,251, +230,205,155,159,186,119,239, 94,243,180,180, 52,253,200,145, 35,143, 2,192,173, 91,183,188,181, 90, 45,109,224,192,129, 87, 50, + 51, 51,199, 2,120,222,200,182,251, 88, 88, 88,156,159, 48, 97,130,133,155,155,155, 73,243,230,205,105, 60, 30, 15, 12, 6, 3, + 82,169,212, 62, 54, 54,182,255,147, 39, 79,202, 34, 34, 34,138, 85, 42,213,112, 0, 49, 77,184, 78,221,108,108,108, 38,179, 88, +172,182, 58,157,206, 1, 0,152, 76,102,150, 86,171,141,205,207,207, 15, 5,240,240, 67, 7,136,173,173,237,158, 13, 27, 54, 88, +229,231,231,147, 77,155, 54,237,145,203,229, 83,255,173, 55,131,227, 63,159, 70,212,179, 39, 64, 69,218, 28, 90, 45,253,143, 6, +192,232,139, 47, 22,163, 99,167,206,152, 56,225,227, 6, 57,135,246,115,220,202, 98, 27, 89,150,151,151, 63,148,150,170, 78,243, + 76,184, 99, 39,140, 15, 72, 2,128, 43, 87,239,140,245,243, 51,191, 45, 48,225,124,204,229,114,187,105,213,154,162,203, 55, 51, +191,106,138,168,114,112,112,184,102,110,110,110, 82, 92, 92,156, 91, 80, 80,240,195,176, 97,195,214, 31, 57,114,196, 60, 53, 53, + 21, 25, 25, 25, 88,184,112, 33, 63, 51, 51,115, 94, 76, 76,204, 35,181, 90, 93,167,101, 75, 46, 47,222,181,114,249,136,181, 2, +129, 21,131,103, 98, 6, 83,129, 5, 92,221,218,161, 75,183, 97, 24,242,209, 12, 36, 39, 69,119, 57,114,120, 93,116, 86, 86,196, + 55,124,139, 22,235, 37,146,230,117,222,151, 90,183, 68,175,225,163, 42, 68,214,218,181,193, 72, 76, 72,144,167,189,165,127,126, +233, 28,211,100, 72, 63, 47,142, 78,157,155,118,255,222,185,230, 61,122,142, 4,128,142,161,135, 67,110,125, 62,209,188,223,158, +227, 37,114,234,145, 84,247,189,115, 29,139, 53,117,208,142, 29, 54,190,115,231, 26, 41,222,190,213,164,252,248, 99,105, 94,100, +164,158,201,225, 16,167,193,131,105,214,125,250,112,231,190,122,101,244, 96,211, 38,127, 86, 72,136,235, 42,141,230, 24,197,249, +127,202,249, 95, 71,149, 19,124,205,213,135,251,235, 21, 90, 52, 26, 13, 60, 30, 15, 39, 79,158, 4,139,197, 2,147,201, 4,139, +197,170,243,111,103,103,231,198, 84,100,180, 72, 36,250,110,239,222,189,182,131, 6, 13, 2,151,203,173,254,129,193, 96, 96,192, +128, 1,232,223,191, 63, 43, 59, 59,123,252,201,147, 39,199,111,220,184, 49, 79, 34,145,204, 71,101, 98,232,122,208,199,211,211, + 51,236,250,245,235,198,229,229,229,136,140,140, 68, 73, 73, 9,216,108, 54, 28, 29, 29, 49,112,224, 64,102, 66, 66,130,197,128, + 1, 3,194, 18, 19, 19, 3, 0,220,110, 68, 93, 59,218,216,216,220, 61,125,250, 52,183, 93,187,118,180,228,228,100,248,250,250, + 2, 0,164, 82, 41, 70,142, 28,201,157, 52,105,146,219,248,241,227, 31,231,231,231,247, 2, 16,213, 0, 95, 7,145, 72,244,211, +168, 81,163,236, 55,110,220,104,102,106,106,138,180,180,180, 28,145, 72,228, 81,117,190,199,143, 31,207, 30, 54,108,152,221,150, + 45, 91,118,157, 57,115,230,171,252,252,252,169, 0,196,245,170,214, 74, 65,108, 98, 98,130,188,188, 60, 28, 63,126, 28,243,230, +205, 3,131,193, 64,126,126, 62, 78,157, 58,133,207, 63,255,188, 74,208, 52, 74, 12,155,152,152,244,119,119,119, 63,120,235,214, + 45, 71,161, 80, 8,123,123,123,250,154, 53,107,218,186,186,186, 26, 55,107,214,140,145,147,147,131,176,176, 48,215,201,147, 39, +159, 79, 79, 79,159,174, 82,169, 26,156, 82,179,181,181, 61,116,233,210, 37,231,184,184, 56,252,248,227,143, 40, 46, 46, 6,155, +205,134, 80, 40,132, 72, 36,130,135,135, 7,109,249,242,229, 38,195,134, 13, 51,153, 63,127,254, 33,181, 90,221,190, 17,215,168, +157,141,141,205,190, 62,125,250,184,134,132,132, 8, 69, 34, 17,170, 94, 12,164, 82,169, 99, 90, 90, 90,151,181,107,215, 6, 70, + 69, 69,165,230,231,231,207, 1,240,162,137, 3,167,125,235,214,173, 3, 70,142, 28,201,200,201,201, 65,104,104,104,128, 92, 46, +111,223, 4,113,249,143, 66,212,179, 39,152,253,217, 66,133,189,147,147,209,245,107, 7, 71,159,249,165,229, 51,161,113, 69, 66, +106, 73, 25, 52,129,163, 18, 59, 13, 28, 52,195,104,232, 71, 35, 21,251,191,223,197,111,140,208, 98,177,141, 44,143, 31,219,158, +126,239,126, 84,219, 27, 17, 79, 6,143, 30, 62,156, 24, 25, 9, 93, 1,224,171, 69, 95,176,194, 46, 92, 56, 60,160,127,231,236, +158, 61, 58,166, 79,156,180,216,185, 9,213,109,217,178,101,203, 59,209,209,209,182, 28, 14, 7,197,197,197,150,251,247,239,223, +222,163, 71, 15,122, 74, 74, 10, 18, 18, 18,240,246,237, 91, 72,165, 82, 12, 24, 48,128, 47, 22,139,127, 0, 80,167,208,210,208, +251,110,176,111,166,221,109,105,204,107,174,209,203,108,136, 54,167,245,141, 75, 55,124, 78,132,150,249,218,218,121,121,124, 50, + 45, 8,235,214,159,101,253,124,124,243,218,155, 17, 39, 0,122,243,186, 51, 2, 16,116, 91,185,106, 5,100,114, 21, 38, 77,152, +133,201, 19,102, 89, 18,168,237,136,190,156,167, 46, 43, 17,154, 26,189, 10,223,123, 96,251, 40, 0,142, 53,196,214, 77, 74,108, +213,141,117, 76,102,231,128,239,190,179,110, 59,115, 38,231, 69, 72,136,178, 48, 50,178,204,125,232,208, 18,223, 79, 63, 85, 1, +128,252,237, 91,163,196,160, 32, 19,107,127,127,227,174, 75,150,152,235,213,106,209,186,117,235,252,214, 86, 36, 47,111, 18,167, +243,216,177,250,181,135, 15,119,138, 92,188,184, 55, 77,171,101, 12,238,218,245,249,166,208,208,172, 63,194,249,103,214, 51,251, +238, 93, 85,177,171, 43,124, 71,142, 44,114,182,177, 81,253,153,109,255, 35,245,164, 80,141, 42, 95,173,217, 53,223, 80, 17, 30, + 30,222, 11,192, 29, 0, 33, 1, 1, 1,193, 0, 32, 16, 8,242, 36, 18,137, 77, 88, 88, 88,131, 34,139,197, 98,193,206,206, 14, + 30, 30, 30,249,249,249,249,182,245, 84, 32,195, 96, 48, 56, 18, 66,170,173, 47,117, 65,165, 82, 33, 41, 41, 9, 62, 62, 62,153, +168, 72, 68, 91,167, 81,199,196,196, 36, 37, 33, 33,193, 42, 62, 62, 30, 81, 81, 81,112,117,117,133,185,185, 57, 88, 44, 22,180, + 90, 45,100, 50, 25, 60, 61, 61,193,225,112,208,161, 67,135, 66,165, 82,233,218,192, 20, 16,135,199,227, 37,221,189,123,215,201, +215,215, 23, 79,159, 62,133,147,147, 19, 68, 34, 17, 0,224,237,219,183,184,127,255, 62,134, 14, 29,138,232,232,104,140, 25, 51, + 38, 67,169, 84,122, 0, 80,213, 69,104, 97, 97,145,115,235,214,173, 76,111,111,239,114,165, 82, 73,207,203,203, 99, 69, 70, 70, +234,228,114, 57, 95, 42,149,178, 36, 18, 9, 75, 38,147, 49,149, 74, 37,139, 78,167, 27,149,149,149,177,110,222,188,201,208,104, + 52,245, 6,200,172,186, 78, 23, 46, 92,128,183,183, 55,194,194,194,240,229,151, 95,226,193,131, 7,112,114,114,194,233,211,167, +177,100,201, 18,188,126,253, 26, 86, 86, 86,104,221,186,117, 67,215, 8,110,110,110,201, 47, 95,190,116, 51, 50, 50,170,202,235, + 88,149, 47, 15, 5, 5, 5,120,243,230, 13,178,178,178,224,238,238,142, 9, 19, 38,188,201,202,202,114,111,168,231, 57, 56, 56, + 20,196,197,197, 89,249,248,248, 32, 47, 47, 15, 66,161, 16, 2,129, 0, 66,161,176,250,111, 87, 87, 87, 44, 94,188, 24, 34,145, + 40,191,188,188,220,182, 33, 17, 79, 8, 2,211, 0, 0, 32, 0, 73, 68, 65, 84,228,237,237,125,237,230,205,155, 86,102,102,102, +200,205,253,127,236, 93,119, 92, 20, 87,219, 61,179,189,209, 97,151, 38, 88,136,116,108, 65,141, 45,246, 10, 70, 99, 73, 51,209, +196,110,140, 61, 70,163, 81, 99,138, 61,182,104,108,177, 98, 98, 98, 15, 86, 84,196,110, 20, 80,233, 32,210,148,133, 93,218, 46, +108,223,217,153,239, 15, 89, 94, 36,192, 46, 70,243,189,241,221,243,251, 45,187, 59,220, 57,123,239,204,157, 59,103,158,251,220, +231, 41,130, 82,169, 4,139,197,130, 80, 40,132,155,155, 91,141,144,207,204,204, 68, 68, 68, 68, 73,118,118,246,192, 38,136, 36, +134,187,187,123,218,253,251,247,253,105,154, 70,126,126, 62,210,211,211, 49,109,218,180, 76,173, 86, 27,132, 87, 40,103, 95, 45, +191, 43,206,216,143, 39,113,222, 30,214, 85,159,154, 28, 77,240,168,116,180, 15,115, 80, 0, 64, 98,146,210, 81,199, 8, 68,112, +104, 36,125,236,196, 13,238,190,189, 59,216,160,224, 14, 2,233,169,153,248,166, 33,238, 1,189, 61, 39,204,154,245, 73, 88,175, +238, 61, 25,149, 42,149,228,167,159,214,191,158,157,157, 42, 1, 0, 63,191, 96,217,212,169,179,227,237, 69, 34,217,229,107,113, +212,134, 13,187,147,206,199, 74,119, 89, 81,101, 63,127,127,255,155, 39, 79,158,116,147, 72, 36,112,116,116,132, 74,165,130,193, + 96, 64, 74, 74,138,246,208,161, 67, 70, 7, 7, 7,251,162,162, 34, 84, 84, 84,128, 32, 8,156, 60,121, 50, 31, 64,243,186, 68, +102, 31, 45, 0,152, 54, 56,152, 29,210,199,223,153,195, 35, 5, 2,118,134, 39, 8, 19,143,160,237,220,207,156, 75,108,123, 38, +230,207, 15,222, 30, 49, 87,220,163,231,219, 88,178,120,148,177,176, 48,191,131, 1, 61,210,234,243,209, 10,106,141, 62,195, 71, +190, 61,122,249,242,101, 88,182,228,107, 68,159, 60,174,176, 19, 49,116, 14, 78,108,199, 55,223,232,166,157,243,233,176,130,170, +170, 66,159,229,171, 15,189, 31, 49,108, 78,179,238, 61,134,227,218,213,227, 56,176,231,235,187,132,128,182, 77, 35,214,193, 50, +192,217,201,207,111,242,140,204, 76,206,189,101,203,170,200,194,194,242,240,217,179, 75,234, 43,251, 56, 38, 70,196,245,242,114, +112,126,235, 45,151,141,205,155,211, 70,153,108,123,125, 62, 70,245,113, 94,176,179,115,250,245,204,153,190, 52,155,221,115,254, + 23, 95, 8, 34, 35, 35,161, 84, 42,113,228,200, 17,108,223,182, 77,231,233,233,249,192, 43, 41, 41, 33, 76,169, 92,108, 45,103, +248,236,217, 37, 38,147,137, 24, 61,111, 94,255,228,156,156, 62, 69, 50, 89, 11, 0,240,116,113, 41, 8,247,243,187,187, 59, 58, + 58,125,115,203,150,148,181,245,220,121,246,172,251,225,220,220, 9, 46, 46, 46,130, 98,153,140,197,227,114, 75,223, 8, 9,249, +125,235,162, 69,151,201,251,247, 57,252,102,205, 28, 28, 35, 35,155,220,246,240,217,179, 75,202, 42, 43, 89, 51,190,253,182, 91, + 94,113,113,139, 42,157,174,117, 69,101,165,135,201,104,100, 56, 8,133,165,173, 2, 3,101,154, 43, 87,164,173,212,234,153,187, + 0,217,203, 58,215,245,105,145,127, 17,234,198,209, 58, 69,211,244, 51,185, 14, 47, 71, 70, 70,254,101,117, 13, 77,211, 86, 89, +179,216,108,246, 51,211, 84,141,128, 67, 16, 4,226,227,227,225,234,234, 10, 15, 15, 15,240,120,207, 38, 31,148,203,229,184,126, +253, 58, 82, 83, 83,209,174, 93, 59,243, 52, 70,195,138,136,199,155,181,122,245,106, 39,189, 94,143,187,119,239, 34, 60, 60, 28, + 60, 30, 15, 28, 14,231, 25, 17, 40,147,201, 16, 26, 26,138,249,243,231, 59,126,255,253,247,179,116, 58, 93,131, 79,164, 44, 22, +107,250,196,137, 19, 37,102, 11, 86, 65, 65, 1, 94,127,253,245,154,255,139,197, 98, 36, 38, 38, 34, 60, 60, 28,205,154, 53,195, +168, 81,163, 36, 7, 14, 28,152, 78,146,228,218,134, 56,185, 92, 46,163, 77,155, 54, 29, 1, 64, 36, 18,129,193, 96,100, 56, 56, + 56,136,221,221,221, 69, 14, 14, 14,127,105,227,158, 61,123, 42, 24, 12,134,209,162, 26, 96, 48, 80, 84, 84,132,176,176, 48, 40, + 20, 79, 51,184,168, 84, 42,180,110,221, 26, 74,165,178, 70,180,122,121,121, 65,163,105,220,245,171,109,219,182,203,130,130,130, + 6,136, 68, 34, 30,155,205,198,189,123,247,208,161, 67, 7, 28, 58,116, 8,190,190,190, 16, 10,133,200,204,204, 68,155, 54,109, + 16, 23, 23, 7,177, 88,140,208,208, 80,158, 68, 34,185, 90, 86, 86, 22,155,151,151,183,172,145,122, 50,236,236,236, 16, 23, 23, +135,221,187,119, 35, 39, 39, 7,133,133,133,176,183,183, 71,251,246,237, 17, 18, 18,130,174, 93,187, 34, 51, 51, 19,132,229,206, +228,225,239,239, 31,253,231,159,127,186,209, 52,141, 3, 7, 14,160,170,170, 10,122,189, 30, 12, 6, 3,124, 62, 31,206,206,206, +232,211,167, 15,196, 98, 49,252,253,253,241,219,111,191,185, 13, 30, 60,248,180, 76, 38,107, 15,160,200,210,113,117,118,118,158, +185,116,233, 82, 31,137, 68,130,220,220, 92, 40, 20, 10,184,187,187,163, 87,175, 94,222, 23, 46, 92,152,105, 52, 26,215,191, 42, + 55,178, 90,142,239,196,249,115, 63,143,240,111, 85,222,166, 93,160,208,231,104,180,187,207,161,104, 89, 40, 0,132, 5,187, 39, +143,136, 20, 22,220, 75,142, 46, 56,127,238,248,221,212, 12, 28,133, 21, 83,219, 10,181,238,247,152, 11,183, 7,117,104,247, 58, +181,122,213,188,136, 79,167, 77,224, 73,220,199,163, 56,255, 56, 46, 92,138,247,157, 55,119,162,120,237,186,157,103, 98, 46,220, +102, 40,212,186,197,214,153,178,124, 55,239,221,218,213,173,178,228, 48,178,210,184, 16,216,135,193,207, 47, 0, 74,165, 18,124, + 62,159,255,254,251,239,155, 22, 46, 92,168,118,112,112, 16, 18, 4,129,216,216, 88, 25,128,129,150,120,181, 18,103,218,100, 48, +146, 52,151, 73,209,132,189,134, 48,149,113,147, 82, 30, 97, 64,191,222,197,221, 59,135,125,191,112,249,186, 47,253, 3, 58,136, + 63,153,240, 53,251,219,101, 31,108, 3,129, 30,245,241,164,101,225, 18,241,251, 49, 1,128,136,229,223, 44, 67,118,118,166,243, +164,113, 21, 95,179,120, 2,175,160,230,221,236,183,237,142, 29,212,186,117,203, 22,115,166,143, 58,245,195,143, 63, 68,212,182, +108,237,221,179,244, 4,128,190,214, 28,219,255, 33,180,253, 48, 58, 26, 85,249,249,198,178,171, 87,181,125,127,252,177,196,103, +224,192,245,122,131,193,205, 60, 84, 48, 8, 2,132,217,117,130,162, 8,214,252,249, 12,154,197,130,209,217,121, 28,202,203, 3, + 44,113,206,149, 74, 71,124, 48, 97, 66,196,137,179,103,209,178,101,203,154,251,153,147,147, 19,230,205,155,135,217,179,103,243, + 18, 19, 19, 59, 29, 62,124,184,211,218, 53,107,220, 1,140,176,166,158,231,111,221,114,158,178,124,249,162,118,225,225,190,251, + 15, 30,228,189,246,218,107, 0,128,135, 15, 31,250,175, 90,185,178,121, 88,155, 54,197,223,207,154,181, 55,121,225,194, 80, 0, + 87, 27,227, 44,186,114, 69,127, 56, 55,119,194,165,216, 88,167,176,176, 48, 0, 64,122,122,186,100,227,198,141, 19, 67, 71,141, + 26,179,124,234,212,197,145, 90,109,133,131, 92,206,139,220,188,153,245,235,232,209, 22, 57,205,245, 4,128, 94,159,124, 50,171, + 71,239,222, 33, 35, 38, 76,112,241,245,245, 37,236,236,236, 96, 48, 24, 80, 88, 88,232,156,156,156,252, 90,116,101,165,242,216, +173, 91, 7, 96, 50,245,127,137,231,186, 94, 45,242, 47,179,100,253, 85, 83, 84,191,247,138,142,142,166, 1,244,138,140,140,140, + 51,223,192, 77, 38,147, 85, 34,139,197, 98,129, 32, 8,107,197, 22,104,154, 70, 73, 73, 9, 74, 74, 74,106,166,142,100, 50, 25, + 46, 93,186,132,204,204, 76,176,217,108,112, 56, 28, 24, 12,150,115,208,138, 68,162,126,253,250,245, 99,221,186,117, 11,126,126, +126, 16, 8, 4, 53,245, 50,191, 56, 28, 14, 60, 61, 61,161, 84, 42,209,183,111, 95,246,166, 77,155,250, 53, 38,180, 28, 29, 29, +135,188,243,206, 59, 92,243,247,170,170, 42, 48,153,204, 26,209, 82, 85, 85,133,178,178, 50, 84, 84, 84, 64,171,213,162, 75,151, + 46,220,232,232,232, 33,165,165,165,107,173,105,191, 90,173,174,146,201,100, 78, 61,122,244,112,222,187,119,111,122,151, 46, 93, + 2,159,233,105,151, 47,107,181, 90, 45,155,193, 96, 88,149, 71, 47, 42, 42,170,230,216, 63,121,242, 4,219,182,109,171,249, 95, +102,102, 38, 54,109,218, 84,147, 10,160,177,115, 20, 20, 20, 52,248,192,129, 3,225,251,247,239, 47,103, 50,153, 72, 79, 79,199, +193,131, 7, 65,211, 52,196, 98, 49,212,106, 53,138,139,139, 17, 27, 27, 11,146, 36, 97,103,103, 7,111,111,111,254,244,233,211, +187,127,253,245,215,236,198,132,150,201,100, 50, 49,153, 76, 52,111,222, 28, 75,150, 44,129, 86,171, 5,135,243, 84, 95, 42,149, + 74, 84, 84, 84, 32, 33, 33, 1,185,185,185,160, 45, 68,121,227,243,249,163,246,239,223, 47,225,114,185,208,104, 52,168,172,172, + 68, 65, 65, 1,242,242,242,180, 50,153,140,180,183,183,103, 52,111,222,156,193,227,241,120,195,135, 15, 39,204,130, 51, 50, 50, +210,245,192,129, 3,239,234,245,122, 75, 34, 73,236,225,225,241,229,196,137, 19,249,181,251,108, 81, 81, 17, 70,140, 24, 33,188, +113,227,198, 66,165, 82,121, 16,128,252, 21,187,161,209,135,143, 5,220,185,123, 33,189,205,209,104,119,159,188,199,166,110,243, + 62, 95,199, 2,128, 29,219, 87,116, 59, 26,253,228,122, 80,203,226,130,195,199, 2,238, 56, 59,167, 90, 18, 2,140, 62, 61, 61, +135,138,132,252,119, 70,188,245, 22,253,211, 79,235, 95,255,116,218, 4, 94,243,128,121, 79, 45,156,108, 9,250,146,223, 16,106, +205, 67,254, 79, 63,173,127,125,196, 91, 35, 19,114,114,114,183,247,233,201,251,237, 82,156,244,143,198, 44,134, 18, 87,190,183, +144,167,130,183, 95, 8, 2,131, 69, 72,188,151,142, 35,191,223, 68,112,232, 27,208,233,116, 32, 73, 82, 52,116,232, 80,245,161, + 67,135,180, 25, 25, 25,149, 26,141,166, 39,128, 12, 75,141,127,252, 56,133, 10,244,120,195,192, 17,240,200, 74, 5, 71,189, 96, +241,225,209,175,119, 30, 16,238,236,233,205, 22,139,168, 63, 6,247,239,116,112,247,174, 37,179, 23, 47, 61,136,142,157, 6,116, + 73, 77,191, 26, 2,224, 65,189,226, 53, 27,209,140, 35,199,200,236,172,172,136,188,220,220,199, 1,238, 30,250,135, 21,180,113, +230,130,157,253,123,244, 28,213,246,181,224, 55,185,169, 41,113,196,146,249,239,254,178,124,245, 15,239,155,197,214,197,152, 95, +122,142, 27,119,147,187,119,111,195,214,241,255, 53,112,120,188,102,118,205,155,179,114,246,238,213,248, 13, 29, 90, 14, 0,122, +131,193, 45, 39, 55,215, 81, 40, 20,130,166,105, 24,141,198,103,124,136,205,126,195, 97,129,129,238,214,112,230,124,245, 85,219, +249,243,231,163,168,168, 8, 36, 73,130,205,102,215, 29,179,161, 82,169, 48,110,220, 56,108, 94,179,230, 13,107, 56, 77, 38, 19, + 49,101,249,242, 69, 95, 44, 90,244,218,228,201,147, 25,181,199, 94, 23, 23, 23, 28, 62,114,132,187,101,203,150,102, 95,110,222, + 60,238, 3, 30, 47, 27, 58, 93,163,156, 37,173, 91,195,165,184, 88, 96, 22, 89, 0, 16, 24, 24,136,109,219,182,241,198,143, 31, +207, 29, 58,116,232,186,196,118,237, 54,174,239,222, 61,203, 53, 32,192,129,203,227, 53,179,196,105, 62,158, 0, 80,169,213,134, +173,223,184,209,249,246,237,219, 40, 46, 46, 70, 81,209,211,231, 81,130, 32,208,177, 99, 71,226,195, 15, 63,116,108,229,227,211, + 9, 38,211,203, 60,221,127,209, 34,255, 34, 76,170,103,219,127,124,180,170, 27, 68, 84, 55,144,168,117,115,124, 70,176, 88, 18, + 90,207,131,138,138, 10, 84, 84, 84, 96,215,174, 93,224,112, 56, 53, 55, 95, 0,208,235,245,214,136,150, 54, 94, 94, 94, 80, 40, + 20, 8, 8, 8,120,198,146,197,225,112,192, 98,177,192,225,112,192,227,241,160,211,233,224,235,235, 11,181, 90,221,166, 49, 78, +141, 70,211,222,197,197,165,230, 6,171,171,238,172, 58,157,174,166,190,122,189, 30,229,229,229,168,170,170, 66,101,101, 37, 84, + 42, 85, 7,107,218, 75, 81, 20,146,146,146, 30, 6, 6, 6,182,103, 50,153,176,179,179, 19,169, 84,170, 26,223,162,178,178, 50, +236,219,183, 79,245,209, 71, 31,185,157, 60,121,210,162,208, 34, 8, 2,159,125,246, 25,120, 60, 30,212,106, 53,126,250,233, 39, +204,152, 49, 3, 28, 14, 7,149,149,149,216,182,109, 27,230,204,153, 3, 22,139, 5,189, 94,143,141, 27, 55, 54,200,149,146,146, +146,115,235,214,173, 14,175,191,254,186,243,177, 99,199,228,253,251,247, 23, 15, 28, 56, 16, 2,129, 0, 26,141, 6, 70,163, 17, +111,188,241, 6,130,130,130, 32,147,201,112,230,204,153, 18,127,127,127,183,219,183,111, 83, 69, 69, 69,121, 22,196, 53, 93,203, + 98, 8,147,201,132,226,226, 98, 84, 84, 84, 64, 46,151,163,176,176, 16,143, 31, 63, 6,139,197,178, 24, 77,215,213,213,117,100, + 88, 88, 24, 19, 0, 4, 2, 1,218,183,111,143, 69,139, 22,145, 26,141,230, 29, 0,103,170,139, 13,222,185,115,231,177,107,215, +174,177,188,188,188,144,150,150, 6,177, 88,204,226,243,249, 22,133,150,135,135,199,158, 63,254,248,195,197, 44,174,205,199, 89, +173,126,122, 58, 70,140, 24,225,178,127,255,254, 61, 36, 73, 14,121,213,110,106, 78, 2,112,218,135, 57, 40, 14, 69,203, 66,231, +125,190,142, 21, 20,246,244,225,117,210,100,176,214,174,153, 27, 58,102,152,195, 41, 39,129,146, 99,137,103,112, 63,159, 45,111, +189,213,159,241,254,123,145,153, 28,142,147,223,246, 29, 95, 75, 36,238,227,107,201, 48, 7,184,186, 57,192,175, 57,151, 56,124, + 42, 85,178, 96,225, 55,186,168,253, 63,100,255,242,107,244, 32, 46, 59,102,192,153, 11, 5, 83, 27,226,206,120, 88,113, 82,173, +227, 7, 43, 75,239, 19, 46,238,221,208,190, 93, 32, 36,226,114,236,220,115, 8, 45, 91,117,132, 78,167,131,131,131,131,208,100, + 50, 25,152, 76,102,148, 53, 34, 11, 0, 46, 94,172,160, 66, 67, 43,244,204, 74,138,252,116,198,218,183,251, 15,126, 43,164, 79, +159,126,212,249,152,243,134,110, 29, 12,210,193, 3,219, 23,159,141,217,146, 41, 45,124,228, 31,218,166, 59, 82,146, 99, 7,209, + 52,146, 8,162,126,235, 83,114, 22,206,106,169,148,216, 67,135, 38, 81, 26, 42, 65,240,237,119, 15, 6, 71, 68,140, 13,123,179, +199,155, 84,204,133, 75,122, 46, 74, 82, 29,186,119,125,242,233,132,193,199,126,142,218, 56,224,236,153, 61,173, 21,202,188,104, +155,200,170,243,144, 70,146,238, 44, 30,143, 33,143,141, 37,219,140, 31,175, 51, 95,143, 66,161, 16, 39, 78,156, 0,151,203,173, +121,113, 56,156,154,207,238,238,238, 32,170,151,145, 90,195, 9, 0, 82,169, 20, 69, 69, 69,112,116,116,132, 88, 44, 70, 81, 81, + 17,110,220,184,129,140,140, 12,176,217,108, 12, 26, 52, 8,140, 6,124,155,235,114,142,158, 55,175,127,112,155, 54,190,117, 69, + 22, 0, 24, 12, 6,148,149,149, 97,216,176, 97,140, 51,103,206,120,156,205,207,127, 11, 64, 84, 99,156, 29, 34, 34, 74,139, 15, + 31,174,247,183, 95,127,253,117,226,250,245,235,188, 65, 3, 7,206,158,251,221,119, 91, 54,239,223, 95, 96, 34, 73,143,166,180, +157,193, 96, 48, 8,130,128,143,143, 15,202,202,202, 80, 85,245,116, 6,219,206,206, 14,206,206,206, 48, 26,141,160,104,154,253, + 50,207,117, 67, 90,228, 95,130, 29,181, 4,215,142,191, 88,180,170, 27, 5, 0,189,106,223, 88, 40,138,178, 74,100,177,217,108, +139, 62, 87,214, 88,185,234,194, 26,161,101,174, 43,159,207,175,185,208,106, 11, 44,115, 61, 25, 12, 6,152, 76,166, 85, 33,241, + 41,138, 98, 86, 86, 86,226,200,145, 35,232,217,179,103,205,180,148, 66,161, 64, 69, 69, 5, 20, 10, 5,180, 90, 45,114,114,114, +112,241,226, 69,180,110,221, 26,128,117,193, 95,179,179,179,239,182,108,217, 50,220,124, 19,239,221,187,119,179,189,123,247, 22, + 14, 25, 50,196,139,166,105, 44, 94,188,184,228,141, 55,222,112,171,125,147,183, 4, 38,147,137, 27, 55,110,160,117,235,214,160, +105, 26, 28, 14, 7,233,233,233,144, 72, 36,160, 40, 10, 44, 22, 11,114,185, 28,246,246,141,199, 72, 76, 74, 74,250,248,147, 79, + 62, 41,116,116,116,108, 91, 90, 90, 42,229,241,120, 61,174, 92,185,226, 99, 48, 24,224,224,224, 0, 7, 7, 7,156, 62,125, 26, + 78, 78, 78,152, 53,107, 86,190, 70,163,185, 33, 18,137,220, 53, 26,205,253,162,162,162,197, 77, 57,223, 36, 73, 66,165, 82,161, +188,188, 28,101,101,101, 80, 42,149,208,106,181, 22,235, 88, 31,122,244,232,129,232,232,104,230,138, 21, 43,126,206,206,206, 6, + 0,248,249,249, 97,214,172, 89, 76,111,111,111,228,228,228,224,238,221,187, 48, 24, 12,160,105,186,209,139,151,197, 98,245,254, +232,163,143,186,251,250,250, 18, 6,131, 1, 20, 69, 65,167,211,193,252, 57, 63, 63, 31,193,193,193,140,230,205,155,119,201,206, +206,238, 13,235, 22, 86,216, 0,160, 56,255, 56,188,217, 18,128,225, 0, 90,115, 28,165, 37,207, 23,197, 69, 38,147,125, 55,255, +171,235,227, 55,175, 54,184, 63,150, 2,129, 97,195,225, 31,210, 23, 31,127, 72, 98,197,154, 35,240,109, 30,136,188,188, 60,244, +238,221,155, 83, 88, 88,248, 73, 85, 85,213, 60,107,185, 99, 98,110,153,206,159, 62, 51,106,244,187, 99,195,251,245, 27, 66,158, + 59,119, 26, 73,247,207, 37,127,242,238, 72, 25, 77, 85, 17, 46, 78,130,132,244,180, 59,254,109,219,247,130,158, 52,245, 0,150, +173, 6,150,209, 13, 95,239,208,159, 58,229,201, 56,117,124,207,135,239,143, 25,215,174,111,223, 1,198,115, 49,127,224,238,205, +152,123,235, 86, 79,140, 91,177,241,183,222,253, 7,141, 12, 21,187,223, 56, 29, 22,160,155,224,227,234,248,112,231,222, 50, 91, +103,169,239,218,228,243, 41, 84,143,139, 12,130, 0, 77,211,207,136,172,186, 66,139,193, 96, 88, 52, 0,212,230,172,125, 47, 50, + 63, 80,111,223,190, 29, 60, 30, 15, 92, 46, 23,108, 54,219,162,251, 69,109,206,228,156,156, 62,251,162,162,120,245,137,172,210, +210, 82,148,150,150,162,170,170, 10,239,189,247, 30,231,235, 59,119, 94, 71,181,235, 71, 67,156,190,158,158, 58,145, 64, 80,156, +146,146,226, 21, 18, 18,242, 76,125,149, 74, 37, 4, 2, 1,162, 14, 30,228, 68, 70, 68, 76,235,123,250,244, 58, 88,136,127, 85, + 95,219, 9,130,128, 68, 34,129,179,179, 51, 8,130, 0, 73,146, 40, 42, 42, 66,114,114, 50,238,220,185, 3, 38, 65,144, 47,243, + 28,215,167, 69,254,133, 86,173, 29,245, 78, 29, 54, 52, 39,218, 20,161,197,100, 50,159,219,170,213, 16,172,153, 58, 20, 10,133, + 15, 10, 11, 11,187,121,123,123,131, 36,201, 26,161, 85,119,234,208,108,253, 72, 76, 76,132, 80, 40,124,160,213,106, 27,229,164, +105,186, 75,167, 78,157,112,244,232, 81,196,198,198,226,209,163, 71, 80,171,213,208,233,116,208,104, 52, 72, 78, 78, 6, 69, 81, + 8, 11, 11,131, 72, 36,130, 80, 40,124,160,211, 53,254, 32,170, 82,169,164,108, 54, 59, 80, 32, 16,212,108,243,244,244, 68,105, +105, 41,101, 52, 26,177,111,223, 62,165,135,135,135, 72, 32, 16, 88, 45, 92, 9,130,128, 76, 38, 67,179,102,205,106,124,180, 42, + 43, 43, 33,145, 72,204,194, 2, 58,157, 14,246,246,246, 22,167, 14, 1,104,179,178,178,230,214,250,222,113,244,232,209,191, 28, + 58,116,168,213,133, 11, 23,112,251,246,109,136,197, 98,124,255,253,247,143,114,115,115,223, 7,112, 71, 38,123,177,126,145,214, +244,161,210,210,210, 35, 15, 30, 60,232,210,169, 83,167,154, 81,162,119,239,222, 68,239,222,189,221,106,155,250,229,114, 57,254, +252,243, 79, 92,184,112, 1, 4, 65, 32, 51, 51,211,164,209,104,126,105,108,150,194,219,219,123,239,162, 69,139,236, 72,146,172, +233,219, 2,129, 0,124, 62, 31, 28, 14, 7, 76, 38, 19,185,185,185, 24, 54,108,152,227,143, 63,254,184, 71,167,211,189, 6,192, +128, 87, 4, 21, 26, 24, 18,147,148,142, 97,193,238,201, 59,182,175,232, 54,105, 50,204, 83,135,100, 88,176, 36, 57, 49,169,216, + 49, 92, 98,185,189,103, 46, 20,124,170, 55,158, 25,122,230,236,229,119, 62,159, 61,139,237,231, 23, 44,187,112, 41,222,183, 47, +249, 13,225,234,230,128,210, 18, 37,114,243,139,145,157,167,167,253,252,130,101,119,255,124,192, 91,179,126,131,191, 74,173, 53, + 79, 29, 54,218, 79,175,222,120, 52,124,221, 38, 94,220,216, 79, 58,114, 5, 2, 47,148,149, 60,128,175,175, 24,195, 34,219, 98, +247,254, 27,112,116,116,129,187,187, 59, 24, 12,134,200,218,182,151,148,148, 16, 71,126,189, 58,254,163,113, 19,223, 24, 56, 32, +130, 60,123,238, 20, 43,246,252,201, 27,123,118,124,121,140,102,170,132, 4, 93, 41,104,209,210,227,254,195,172,196,247,251,244, +123, 15, 2,142,125,107, 32,168,222, 14, 91,179,192,128, 70,254,209, 67,203,248, 31,141,155,212,117,224,192,183,200,115,231,142, +227,220,233,253,183,150, 46,109,113,250,209,147,131,156,155,119, 30,243,135,143,154, 90, 30,125, 38, 85, 63,114,104,203, 12, 47, + 81,123, 13,240,200,166,170,106, 63, 72,178, 88,197,164, 78,231,211,108,224, 64,166, 58, 47,143,109,231,238, 78, 2,128,209,104, +180, 40,180,208,192, 20,116, 93, 78,107,235,162, 86,171, 65, 53, 16, 59,177, 46,103,145, 76,214,162,250, 33,188, 6, 70,163,177, + 70,100,149,150,150,162,162,162, 2, 34,145, 8,114,157,206,221, 26,206, 1,157, 59,239,251,122,217,178,121,135,143, 28,225,212, + 22, 89,230, 23,155,205,198,170,213,171, 57, 51, 62,255,124,234, 52, 22,107, 38, 72,210,234,227,105,126,104,103, 50,153, 96,177, + 88,200,203,203, 67,126,126, 62,242,242,242,144,151,151, 7,129, 64, 0,250, 37, 47, 2,250, 23,251,103,153, 69, 86,237,247, 26, + 43, 87,163,225, 29,154,226, 12,111,173, 48, 48, 53, 97,126,215, 26,161,165, 82,169, 46, 92,188,120,177,243,240,225,195, 89,183, +110,221,130,135,135, 71,141,208, 50,191,155,167,163,132, 66, 33,142, 29, 59,102, 80,169, 84, 23, 44, 92, 76, 23, 79,159, 62, 29, +190,100,201, 18,246,199, 31,127,140,148,148, 20, 76,158, 60, 25, 21, 21, 21, 80, 42,149, 40, 45, 45,133, 90,173, 70,231,206,157, +193,231,243,113,255,254,125,163, 90,173,190,104,193, 98, 71,203,100,178, 42,177, 88,236, 89,247,127,163, 70,141,114,223,186,117, +171, 58, 45, 45,205,216,173, 91, 55, 7,107, 5,135, 25,191,254,250,107,141,165, 46, 35, 35, 3, 91,183,110,173,241,201,138,143, +143,199,218,181,107,107, 98,159, 53, 17,119, 74, 74, 74, 72,163,209,136,214,173, 91,195,219,219, 27, 90,173, 22, 27, 54,108, 32, + 1,220,249,255,234,205, 90,173,246,240,216,177, 99,191, 72, 72, 72,240,100,177, 88, 79, 77,218,213,237, 51, 24, 12,200,202,202, + 66,114,114, 50,210,210,210, 80, 86, 86, 86,243, 32,144,152,152, 88,110, 52, 26,127,107,136, 87, 44, 22, 47,222,189,123,183,135, + 80, 40,124,166, 63,155,173,161,102, 43,169, 92, 46,135,147,147, 19,250,246,237, 43,185,120,241,226, 98,157, 78,183,228, 21,185, +167, 17,163,222,206,232, 56,227,211,225, 24, 17, 41, 44, 56, 26,253,228,250,218, 53,115,171,157,225, 37,201, 35, 34,189, 11,238, +165, 59, 97,212,219,199, 59, 2,120,140,198, 29,182,169, 75,113,210, 19,157, 58, 57,199, 30, 61,121,114,207,194,249,179,227,231, +205,157, 40, 86,107, 30,242,253,154,115, 9, 0,200,206,211,211,247, 83, 40,237,218,117,179,227, 87,172,254,145, 81, 92, 90, 49, +249,207, 63, 27, 14,111, 80, 91,188, 48, 24,224,251, 5,245, 44,244, 15,232,222,242,214,141, 40,216, 9, 53, 8, 12,234,136,129, + 3,186, 32,246,114, 34,138,228, 90, 72,165, 82,232,116,186, 70,195, 37,164,221, 63,246, 33, 77,208,190, 4, 77,228, 19, 12,154, +255,225,216, 9, 61, 34, 34,222,162,163,163, 79,146,199,143, 69, 93,251,237,192,166,195, 12, 14,155,165,209, 59,234, 9, 66,171, + 0, 35, 41,165, 74,245,244,129,134,205,227, 52,108,126,173, 14,236, 26, 18, 26,228,241,225,216,201,142, 67, 6, 15,163, 79,159, + 62, 78,253,118,104, 95,236,111,187,218, 68, 81, 12, 37, 71, 90,160,230, 41,148, 70, 5, 77,112,157,170,148,148,186, 56,251, 53, +173, 87,196, 40, 3,112,216,166,174,106,223, 7,116,186,199, 85, 5, 5,158, 46, 61,123,242,178,150, 45, 19,186,119,238,172, 37, +170,125,136, 27, 19, 90, 76, 38, 19, 96, 48, 40,107, 56,173,173,139, 70,163, 1, 5, 24,159,135,147, 36,201,103, 68,150, 89,104, +153,175, 23,107, 56,119, 44, 93,122,203,119,224,192,178,203,151, 47,187,247,234,213,139,168,172,172, 68,101,101,229, 51, 98,203, +203,203,139, 8, 9, 11, 19,254, 26, 27,235,103,237,241,180,166,237, 12, 6,227,165, 11,173,127, 57,118, 52,104, 61,108,108, 47, +179, 69,203, 26,161,101,165, 69,203,104, 52, 26, 33,145, 72, 80, 82, 82,210,224,141,159,193, 96, 64, 32, 16,152,231,136, 27, 93, +121,167,211,233, 54,204,155, 55,111,250,224,193,131,221, 2, 3, 3, 33,151,203,225,238,238, 14, 62,159, 95,227, 59,102,230,139, +143,143,199,238,221,187,149, 58,157,110,131, 5,206,245,171, 87,175,254,116,196,136, 17, 46, 30, 30, 30,112,118,118,198,253,251, +247,225,236,236, 12,165, 82,137,244,244,116,216,219,219,215,248,237,156, 60,121,178, 82,167,211,173,183, 32,222,232, 43, 87,174, + 24,236,237,237,239,203,229,114,102, 89, 89, 25,171,188,188,156,165, 84, 42,217, 10,133,130,125,246,236, 89, 55, 71, 71, 71,245, +165, 75,151,228,190,190,190,204, 71,143, 30, 49,141, 70,163, 69,245, 74, 16, 4,102,206,156, 9, 14,135, 3,157, 78,135, 13, 27, + 54, 96,222,188,121, 53, 62, 89,171, 87,175,198,162, 69,139,106,132,243,206,157, 59,155,212,115,104,154,134,193, 96,128,209,104, +132,209,104,180, 74,252,254, 29, 88, 41,216,139, 50, 51, 51, 35, 59,117,234,116,254,247,223,127,119,173,142, 73,134,226,226, 98, + 20, 23, 23, 67, 46,151,163,170,170, 10, 36, 73,194,219,219, 27,197,197,197, 56,126,252,184,162,178,178,114, 32, 26, 89,113,200, +100, 50,199,246,232,209,131, 85,183, 14,230,167, 60,179,120,231,241,120, 40, 44, 44, 68,239,222,189,185,151, 47, 95, 30, 11,224, + 95, 45,180,106,135,119, 24, 48,112, 60, 39, 56,180,171,254, 94,114,116, 65, 80,203,226,130, 49,195, 28, 78, 1, 64, 98, 82,177, +227,189,116, 39, 4,135, 70,210, 3, 6, 58,135, 23, 23,237,104, 3,192,208, 88,186, 30, 0,112, 20,242, 70,247,239,215,185,208, + 94, 36, 98,172, 93,183,243,204, 79, 63,173,127,253,240,169,255,132,119, 88,187,238,105,120,135,254,253, 58, 83,105,169,105,163, + 1,236,178, 86,188, 68, 70, 14, 77,216,189,119, 55,210,146, 47,121,125, 49,179, 45,183,172,216, 8,129,157, 15,194,219,187, 99, +199,222, 7,184,119,239, 94,145, 94,175,239,221,104,255, 38,104,223,228,148,164,128, 54,161, 33, 30, 31,142,157,228, 16, 25, 57, + 12,209,209, 39,112, 96,223,174, 43, 35,223, 27,241,243,147,114, 37, 83,194, 22,114,132, 52,197,101,114, 28, 89, 28,158, 64,166, +215, 63, 93, 3,193,102,243, 29,128,209,141,222,120,166, 76, 26,227,216,167,223, 48,156, 58,125, 2, 7,246,237,136,251, 42,116, +212,174,150, 29,130,137,206,175,175,153,218,178, 85,203,230,170,170, 98, 37,131,224, 26,180, 90,202,126,205,190,220, 31,178, 23, +141,205, 6,176, 14,182, 85,135,181,113,255,192,144, 33,157,102, 60,124,200, 17,119,239, 46, 40,140,141, 21, 86,103, 34,105, 84, +104,177, 88, 44,208, 13, 79,117, 61,195, 73,236,223,207, 0,208,232, 34, 44, 14,135, 3,181, 90, 13, 99,195, 22,236,103, 56, 61, +207,157, 43,120,248,240,161,191,139,139,203, 51, 34,171,172,172,172,230,179, 86,171,133, 90,173,134, 64, 32, 72,214,212, 63, 35, +242, 12,103,241,149, 43,218,149, 51,103, 46,121,255,189,247, 54, 93,184,120,145,239,234,234, 10,133, 66,241,140,208,210,235,245, +232,211,183, 47,103,117, 66,194,135, 80, 42,151, 90,115, 60,221,123,247,182,232, 15,204,100, 50, 65,189,228,169,195, 87, 0,147, +234, 19, 94, 12, 75, 83, 56,214,174, 58,108,224, 6, 89, 55,187,247,162,240,240,112,109, 70, 70, 6,124,125,125,107,196, 74,237, +223,116,112,112,128,147,147, 19,226,227,227,241,221,119,223,105, 0, 44,178,192, 89,169, 86,171,223,237,223,191,191,134,197, 98, + 33, 40, 40,168, 38,126, 22, 69, 81,224,114,185, 16,137, 68, 72, 72, 72,192,208,161, 67,213,106,181,250, 93,252, 53,134, 86, 93, + 78,133, 90,173,254, 96,192,128, 1,234,148,148, 20,244,232,209, 3,247,238,221, 67, 85, 85, 21,170,170,170,144,147,147,131,144, +144, 16,168,213,106,108,221,186, 85,163, 86,171, 63, 0,160,104,140,179,178,178,114,232,188,121,243,152,191,252,242, 75, 75,111, +111,239,208,142, 29, 59, 6,246,237,219,247,181,183,223,126,187,249,144, 33, 67, 60,253,253,253,181, 3, 7, 14, 20, 15, 30, 60, + 88,172, 86,171,217,215,175, 95,151, 26,141,198,193, 22,234, 89, 35, 78, 50, 50, 50,106,166, 10, 89, 44, 22, 74, 74, 74,106, 34, +247,155, 7,165, 6,132,112, 63, 75, 98,219, 44,176,204,130,203, 10, 63,183,250, 56, 45,238,196,229,114,205, 22, 79,218, 10,206, +196,212,212,212,254, 61,123,246, 76, 28, 63,126,124,101, 81, 81, 17,236,237,237,225,231,231,135,128,128, 0,184,185,185,193, 96, + 48,224,216,177, 99,170,227,199,143, 63, 80, 40, 20,189,241,215, 24, 90,253,234, 28,199,156,250, 6, 89,179, 53,203, 44,180,248, +124, 62,188,189,189,205,199, 54,167, 41,199,243, 57,241,114, 57,171, 5, 76,223, 62, 3, 91, 13,137, 24,238,120,236,196, 13,238, +166, 45,199, 31,132,247,195, 78,215, 22,202,147,174, 45,148, 39,195,251, 97,231,166, 45,199, 31, 28, 59,113,131, 59, 36, 98,184, + 99,223, 62, 3, 91,165, 36,167, 5,214,206,123, 88, 95, 61,249,124,126,215, 30,221,195,203, 47, 95,139,163, 86,172,254,145,209, +167,247,200,132, 93, 63, 31, 59,182,235,231, 99,199,250,244, 30,153,176, 98,245,143,140,203,215,226,168, 30,221,195,203,249,124, +126, 87,107,218, 62,101,210, 24,199,136, 33,195, 16, 29,125,140, 60,252,235,214,213,135,142,100,246,156, 48,253, 74,113, 70,198, + 61, 90,246,248, 28,216,140, 60,164,166,166, 42,170, 69, 86,134, 53,156,147, 39,142,169, 45,178,174,186,122,244,216,153,154, 10, + 83, 76,204, 31,198,139, 23, 19, 52, 87, 19,101,138,187, 41, 37,101,133,242,178, 71, 74,101,169,158,162, 76, 48,153, 76,204,175, +191,174,113,216,173,247, 28,117,235,214, 11,151, 46, 28,196,190,189,219, 21, 20, 5,237,232,195,135, 77,163, 71, 47,163,155,183, +104,209, 60,234,215,131, 68,228, 91,195, 29,105,128, 26, 58, 98,152,211, 47,135,126, 33, 90,181,110,213,194,207,175, 38,164,205, +191,175, 47,189, 4,206,101, 64,185, 50, 47, 47, 46,254,199, 31,117,238,239,190,235,194,117,119,119,128,201, 68,152,199,247,134, + 94, 44, 22,171,174, 5,166, 65, 78,111, 55,183, 39, 39, 79,158, 68, 64, 64, 0,188,189,189, 81,219, 71,214, 28,144,219,213,213, + 21, 71,142, 28, 1,253,108,112,234, 6, 57, 59,180,108, 25,191,106,229, 74, 61, 69, 81, 40, 47, 47,255,139, 53,171,188,188, 28, + 20, 69,225,244,169, 83,122,229,211, 76, 32, 86,181,189, 55,147, 89,245,254,155,111,174,136,136,136, 48, 60,124,248, 16, 20, 69, +161,182,101, 75, 38,147,193,206,206, 14, 90,157,206, 7,128,208, 26, 78,217,217,179, 34, 88, 24,215,235,177,104,189,140,243,254, +111, 23, 89,181, 19, 74, 79,178,202,162, 69,146, 36,124,124,124,158, 73,233,194, 96, 48,158,121, 53,113,197,225,254,148,148,148, +115, 3, 7, 14, 92,242,198, 27,111, 76, 89,178,100, 9, 51, 48, 48, 16, 10,133, 2,206,206,206,144, 72, 36, 72, 79, 79,199,201, +147, 39, 77, 37, 37, 37,219, 0, 44,135,117, 75,232, 99, 51, 51, 51, 35,219,182,109,123,104,193,130, 5,142, 3, 6, 12, 96,251, +248,248,128,166,105, 36, 36, 36,224,232,209,163,134, 93,187,118, 41,171, 69,150,181,206,203,231, 11, 11, 11, 71, 14, 30, 60, 56, +106,236,216,177,246, 38,147,137,157,147,147, 3,157, 78, 7,163,209,136,252,252,124, 67,116,116,116,149, 90,173, 30, 3,224,188, + 21,124,241, 21, 21, 21, 33, 49, 49, 49, 99,175, 95,191,254,221,248,241,227, 93,251,246,237,203, 33, 73, 18,215,174, 93,147,119, +232,208, 65, 34,147,201, 12, 71,142, 28, 41,213,106,181,139, 76, 38,147, 85, 41,120, 8,130,128, 82,169,132,155,155, 27,116, 58, + 29, 40,138,130, 94,175,135,157,157, 93, 77,218, 36,154,166,209, 20,231,250, 58,125,128,105, 48, 24,240,222,123,239,129,162, 40, +108,216,176, 1, 36, 73, 54,153,204,209,209,241,110, 98, 98, 98,100,251,246,237,107,196,139,185, 15,241,120, 60,184,185,185,193, +213,213, 21,209,209,209, 96,179,217,119, 45,249,187, 85,227, 94, 73, 73, 73,135,152,152,152,174, 15, 30, 60,248, 8, 64,123,131, +193,224,109, 50,153, 8, 6,131, 33,165,105,250,190, 82,169,252, 25, 86,166,224,145,201,100,223,141, 27, 55,174,195,193,131, 7, +237, 88,172,255, 92, 26, 44, 22, 11, 60, 30, 15,230,224,152, 52, 77, 67,175,215, 99,241,226,197, 74,149, 74,245,221,171, 50, 74, +132,119,236,140, 29, 91, 55,218, 93,188,116, 78,158,154,137,163,245,132,112,120, 92, 92,180,163, 77, 97, 65,129, 93,120,199,206, + 86,113, 26,245,134,210, 15,198,204,241,173, 78,193,179, 56, 39, 39,119,123,212,254, 31,178, 1, 96,205,250, 13,254,197,165, 21, +147,211, 82,211, 70,111,223,254,107, 87,163,222, 80,106, 13,231,127,196, 75,148, 2, 52,180, 0,110, 39, 60, 40,110, 57,244,221, +179,139, 90,183,114,120, 75, 86,170,121, 82, 85,165,254, 12, 64,182,181,109,239,222,173, 39, 46,157,255, 5, 7,246, 69, 41,105, +138,169,117,115,115,163, 1, 32, 53,213,141, 78, 77,173,160,255,227, 87,236,164, 98,211,247,150,207,249,172,239, 28,133,178,108, +253,134,173,141, 79,165,180,109,247, 6,218,182,123, 3,211, 63,251,210, 49, 36, 52,200, 23, 0, 14, 31,134, 41,180,117,202, 31, + 75,190, 90,246,214,242,229,203,160,172,212,193,156,174, 39, 61, 41,229, 84,118, 54,244,182,123,214,179, 88, 66,146,183, 49,103, +142,191,186,172, 76,220,253,139, 47,220, 88,159,127,206,104,204, 25,190,246,245,107, 13,231,157,251,247, 79, 77,158, 48,225,201, +210, 37, 75, 6,110,219,190, 93,208,166, 77, 27, 20, 21, 21, 33, 40, 40, 8,222,222,222,136,137,137,193,145,223,126, 83, 85, 84, + 86, 46, 2,240,147, 53,156,251, 79,159, 78, 15, 12, 13, 45,217,190,125,187, 87, 68, 68, 4,161, 82,169,160, 80, 40,160, 80, 40, +160,211,233, 80, 29, 16,154,206,200,204, 76, 53, 26,141,219,172,109,187, 73, 46,231, 47,239,220,249, 49,135,162, 86,141, 28, 49, + 98,222,242,111,190,225,181,106,213,138,208,233,116, 53, 86, 45,131,193, 0, 59, 59, 59,131, 94,175,119, 5,160,182,134,147,183, +107, 23, 41,151,203, 33, 22,139,107,194, 53,213,142, 75, 88, 89, 89, 9,154,166,109,193,116,159, 3, 13, 42, 36,103,103,231,187, + 44, 22,171, 89,109,235, 86,125,185,243,106,111, 51, 26,141,143, 75, 74, 74,194,235, 40,222,134,252,161,252, 0,124,223,167, 79, +159,145,115,231,206, 37, 46, 95,190,140,227,199,143,211,217,217,217,135,171,173, 88,217,141, 60,233, 52,196,105,207,227,241,102, +137, 68,162,126,230, 16, 14, 66,161,240,129, 74,165,186, 80, 61, 93, 88,249, 28,156, 14, 60, 30,111,166, 72, 36,234, 95,157,126, + 5,246,246,246,137, 42,149, 42, 70,167,211,109, 68,195,137,170, 27,227, 20, 56, 58, 58,126,231,230,230,246,193,231,159,127,238, +122,229,202, 21,233,165, 75,151, 56, 21, 21, 21, 7,245,122,125, 99, 73,165,255,194,233,226,226,114,151,201,100, 54,123, 73,231, + 8,109,219,182,141, 30, 58,116,104,196,152, 49, 99, 96, 52, 26,241,211, 79, 63, 33, 38, 38,230, 84, 86, 86, 86,164,133,167,209, +186,156,110,205,154, 53,187, 60,101,202,148,230,239,189,247,158,208,217,217, 25, 44, 22, 11, 42,149, 10, 89, 89, 89, 72, 72, 72, +160, 79,156, 56, 81, 21, 31, 31,255, 88,173, 86,247, 2, 80,210,132,227,249,119,158,154,159,225,100,177, 88, 61,125,124,124,126, + 93,186,116,169,125,255,254,253, 5,174,174,174, 96, 50,153, 48, 26,141,144, 74,165, 72, 74, 74,194,185,115,231, 84,135, 15, 31, + 86,149,150,150,190, 7, 32,238,255,163,158, 47,146, 51,216, 31, 95,213, 73, 20,221, 96,180,119, 11,101, 45,214,179, 79, 79,207, + 97,163, 71, 14, 30, 4, 0,191, 31, 57,115,214,138,164,210, 13,214,211, 82, 93, 57, 2,187,231, 0, 0, 32, 0, 73, 68, 65, 84, +173,225, 12,106,205, 88,154,156,146,244, 76, 64,203,208,144,176,140,224, 54, 35,190,181,134,168, 86,100,248,103,218, 94,107, 58, +182,182, 77,247,153,105,214, 96, 63, 68, 14, 27,253,118,196,151,139, 22,226,251,239, 86,224,196,239,199, 78,165,102, 63,147, 38, +232, 95,215,151, 94, 50, 39,241, 45,139,245,134,208,211,243,205, 13, 20,181,240, 94, 82,146, 93,237, 7, 54,179,229,185,246, 67, +165,151,151,151, 76, 42,149,186, 91,195, 25,185,121,179, 65, 45, 18,241, 22,174, 90,213,179, 74,171,237,185,124,249,114,214,157, + 59,119,176,245,199, 31, 73,237,227,199, 81,114, 96,102, 3,179, 33, 13,114, 54,159, 57,147, 63,127,235,214,143,253, 90,183,150, +124,244,209, 71,108, 54,155, 13,149, 74,133,130,130, 2,156, 63,119, 78,159,146,154,154,162, 84, 42,223, 2, 80,104, 45,103,228, +230,205, 6, 39, 63, 63, 8,197, 98,250, 98,108,172,227,228, 89,179,166,180,104,217,210,113,224,160, 65,108, 7, 7, 7,148,151, +151, 35, 39, 39, 7,199,142, 29,147, 85, 85, 85,121, 1, 48, 89,195, 25,117,253,122,219,211,113,113,163,190,253,246, 91,110, 88, + 88, 24, 28, 29, 29, 81, 89, 89,137,164,164, 36,196,197,197,233,182,109,219,166, 80, 40, 20, 83, 76, 38,211,201,151,120,222, 95, + 5,171,150, 25, 59,204,179, 63, 47,219,195,223,154, 19, 17, 14,224,171,234,207,223,192,114,206,192, 87,105,240,241,117,113,113, +217,161,213,106,105,141, 70, 51, 25, 64,254,127, 97, 61, 89,225,225,225, 91,101, 50, 89, 87,154,166,225,232,232,120, 35, 57, 57, +121, 26, 26, 88,121, 99,129,147, 9,160,171,157,157, 93,103,123,123,251,158, 58,157, 46,184,122,250, 45, 85,165, 82,197, 25, 12, +134,219,213,214, 39,211,255,115,219,153, 0,250,123,121,121, 77,160, 40,170, 53, 65, 16, 78, 38,147, 9, 70,163,177,130,162,168, + 44,133, 66,177, 11, 64,204,127, 65, 61, 95, 8,103,200,107,120,155,102, 32,184, 33, 65,240,140,208,170, 35, 32, 8, 10,169, 41, + 15,113,172, 9,245,100, 12,238,231,179, 5,120,186, 50, 17,150,157,107,255, 35,180,172, 16, 47, 77, 22,153,175, 49,199,209, 4, +253, 12, 39, 65, 19,249, 65,109,223, 62,240,119,132,150,181, 8, 9, 64, 79,208,232, 74,209,184,157,150,133, 75,175,240, 88,247, +194, 56,191, 7, 92,126,116,118,190,193, 96,177, 60, 0, 48,170,173, 47, 20, 69, 16, 38,154, 32,200,218,211, 91,117, 30, 44, 27, +229, 52, 0,109,216, 60,158,143,137, 36,221,139, 0,187,211, 38,211,235, 90,154,174,106, 6,124,149, 8,164, 63, 79, 61, 13, 64, + 27, 38,143,231,123,154,166,135,201, 69,162,182, 50,141, 70, 12,128,182, 19,137, 82,149, 42,213, 62,173, 86,187, 5,127,157,185, +176,200,201,225,241,154,153, 72,210, 29, 0, 24, 44,150,236,144, 78,231,243,216,193,225, 35,173, 78,215,220,206,206,206,168,215, +235,149, 90,173,118, 12, 73,146, 23,155,210,246, 44,146, 12,185,206, 96,244, 48,136, 68,174, 6,130, 16,233, 73,210,160, 55, 24, + 10,180, 90,237, 3, 0, 63, 0,120,248,146,207,251, 43, 5,107,194, 73,189,168,139,197,198,105,227,180,113,218, 56,109,156, 54, + 78, 27,231,203,231, 20, 2,240,173,126, 88,252, 55,182,253,149,178,110,153, 87,255,179,108,199,194, 6, 27,108,176,193, 6, 27, + 94, 9,168, 81,143, 79,150, 13,255,191, 32, 26, 81,165, 77, 49, 9, 62,143,178,189, 96,227,180,113,218, 56,109,156, 54, 78, 27, +167,141,243,127,142,211, 18,247,191,113, 74,242, 47,185, 14,105,154,222,241, 79,252,176,205,252,107,227,180,113,218, 56,109,156, + 54, 78, 27,167,141,243,127, 14,230,169, 67,134,237, 80, 52, 8,247,234,215,139, 46,107,195,171,221, 23,254, 9,120, 87,191,154, + 82,222,211,118, 26,109,176,193, 6, 27,254,121,252,127, 8, 45,107,111, 90,127,231,230,246,119,111,140, 43, 8, 2,133, 4,129, + 66, 0, 43, 94, 96, 89, 75,240,114,115,115,155, 17, 18, 18, 18,229,238,238, 62, 29,128,164,137,251,251, 11,133,194,141, 34,145, +232,178, 72, 36,186, 44, 20, 10, 55, 2,240,127, 65,231,141, 0, 48,153,199,227,197,122,122,122, 62,225,114,185,177, 0,166,224, +249, 87,174, 6,226,105,156,180,111, 0,180,109,202,142,146,208, 97,191,137, 67,135,221, 23,135, 14, 75,114, 13, 27,234, 47, 14, + 29,150, 36, 14, 29,118, 95, 18, 58,236,183,151,208, 95,255,214,249, 37,136,167,175,166, 28,100, 11,229, 87, 16, 4,242, 9, 2, +249, 86,214,231, 7, 2, 40, 32, 8, 60,126, 1,253,211, 6, 27,108,176,193,134,151, 9, 47, 47,175,145,158,158,158, 23, 60, 61, + 61, 99,188,188,188, 70, 90,177, 75,191,122,110, 18, 38,130,128,201,194,160,223, 88, 57, 75,230,202,218,251,174,181,178,105,181, + 57,221, 9, 2, 38,186, 26, 4, 1, 74, 34,145,108,242,244,244, 92, 81,247, 37,145, 72, 54, 17, 4,168, 90,101, 77,181, 4, 94, + 83,205,170,238, 31,126,248,225,239,229,229,229,209,122,189, 62, 58, 51, 51, 51,186, 87,175, 94,135,234, 88, 34, 26,228,228,243, +249,239,119,234,220, 53, 62,238,218,237,204,140,172,220,194,148,244, 71,185,127,156,189,120, 39,172, 77,219, 63,249,124,254,251, + 77, 56, 71, 4,128,201, 44, 22, 43,214,206,206,238, 49,139,197,138, 5, 48,149,201,100,158, 92,185,114,101,110,114,114,114,241, +245,235,215, 43,226,226,226,158,140, 31, 63, 62,139, 32,136, 63,234, 17,236,253,172,176,192, 44,201,203,203, 59, 43,149, 74,207, + 9, 4,130,239,172, 40, 95,195, 41, 14, 29,118, 95,166, 48,208, 50,133,129, 22,135, 14,163,107,125,190,223,196, 99,110,233, 28, +253,165, 47,240,120, 60, 95, 11,130,190, 95,109,145,101, 54, 29, 91, 35,182,248, 60, 94, 67,229,251, 53, 84, 31, 0, 30,213,255, + 11, 7,176,185,250,101, 94,206,238,193,231,241, 94, 84,255,124, 17,199,211,198,105,227,180,113,218, 56, 95, 85,116,168,126,247, +196, 83,127, 45,207,231, 93,117,248,105,102,102,166, 29, 0, 4, 4, 4, 76, 3,112,164, 41, 66,130, 32, 48,159,162,104, 6, 0, + 48, 24,196, 23,189,123,247,233, 32, 16, 8,158,137,130,172,209,104,184,177,177,151,250, 82, 20, 77, 84,151,155, 79,211,216, 8, +160,216,218,223,208,235,117, 12, 54,155, 11, 6,131,152, 19, 22,214,166, 69, 73, 73,201, 21, 6,131, 17,245,228,201,147,242,166, + 91, 36, 8,236,220,185, 51,192,211,211,243, 47,209,154,165, 82, 41,119,216,176,183,154,196, 55, 14,224,233,120,188,206, 28,130, +240, 52,145,164, 19, 0,176, 88,172,242, 59, 92,110,248,247,223,126, 43, 36, 8,130, 42, 45, 45,133, 70,163,193,236,217,179, 5, + 41, 41, 41,195, 75, 74, 74,182, 88,160, 13,104,219,174,195,236,115,231,206, 6, 43,203,202,181, 59,215,111,143,215,176, 56,234, +150, 33, 65,156,173, 59,246, 57, 79,250,120,204,103,105,105,201,137,168, 63, 29, 73,109, 48, 0, 28,155, 53,107, 86,104,100,100, + 36,183,178,178,146,175,209,104, 90, 68, 69, 69, 45, 14, 15, 15,183,107,223,190, 61,247,215, 95,127, 37, 20, 10, 5,104,154, 22, + 6, 5, 5,209,239,188,243,142,246,208,161, 67,211, 1,108,106, 68,248,206,127,122, 44, 25, 27, 2, 3, 3,151, 2, 64,102,102, + 38,167,214, 49,102, 7, 7, 7,139, 0, 32, 61, 61,253,107,154,166,102, 1, 0, 77, 99, 53,128,133,245, 88,125, 50, 67,187,143, + 6, 8,180, 78,190,246, 59, 63,180,199,104, 45,104,100, 17, 64,102,245, 3,193,114,160, 86, 92,168,103,145, 90, 88, 88,248, 92, +185, 9, 35, 34, 34, 9,130, 32, 14,199,199,199, 31,145,201,100, 45, 41,202, 52,177,177,122,214,237, 71,174,174,174, 40, 41, 41, + 9, 16,139,197,231, 76, 38,147,238,234,213,171, 1,193,193, 79,171, 41,110,251,118, 87, 87,123, 81, 95,183,208,225, 87, 74,146, +143,199, 89,217, 55, 9, 87, 87,215,113, 37, 37, 37, 43, 0, 76, 72, 77, 77,237, 0, 0,193,193,193, 28, 0,119, 29, 28, 28,186, + 25,244,122,194, 54,254,217, 96,131, 13, 54,252, 35, 66, 43, 1, 64, 4,254,147,130,103, 7,128, 38, 11, 45, 46, 0, 92,185,114, + 5, 0,120,207, 81, 17,162,246,141,103,230,204,153,240,244,244,172, 43, 94,112,249,114,236,223,105,236, 51,191,241,205, 55,223, +216, 85, 84, 84,244,251,249,231,159,223,164,105,122,109, 97, 97,225, 45, 11,251, 23,211, 52, 86, 51, 24,196, 23, 4, 65,128,199, +227,103, 76,153, 50, 37,161,250,127, 45,254,248,227, 15,225,208,161, 67,213, 0,114, 1,128,199,227,123, 51,153,140,128,167,202, + 21,171, 27, 19,132,163, 0, 63,146,203,237, 51,121,243,102,242,245,161, 67, 89, 34,177,152, 0,128,220,180, 52,215,213,107,214, +116, 43,207,206,230,106, 92, 93, 75, 75, 85, 42, 77, 70, 70, 6,120, 60, 30,193,100, 50, 95,183,212, 96,145, 72, 52,227,219,239, + 87,137,148,101, 21, 26,173,178, 82,207, 36,141, 58,123,129,208, 84, 92, 36, 43,181, 19,136,212, 95,124,181,140,251,233,196,177, + 51, 84, 42,213, 52, 11, 84,211,231,204,153, 19,220,169, 83, 39,239,223,126,251,141, 80, 40, 20, 96,177, 88,118,237,219,183, 71, +120,120,184,233,210,165, 75, 68,203,150, 45, 17, 22, 22,134,107,215,174,225,198,141, 27, 68,135, 14, 29,132, 71,143, 30,253,208, +104, 52,110,178, 36,174,153, 76,198,236,160,160,160,246, 34,145, 72, 31, 16, 16,128,137, 19, 39,130,166,105,244,235,215, 47,204, +206,206,238,136, 74,165,226,166,167,167,189,105, 73,100,203,146, 79,188, 99,182,108, 1,104, 3, 26, 89,242,228, 19,181,167, 31, +131,211,211,211,223, 40, 47, 47,175,177, 16,153, 19,152,191,249,230,155, 77,233, 75,197, 52,141,213, 67,135, 70,126, 1, 16, 68, +191,126,253, 42,166, 79,159,206, 72, 75, 75,251,224,237,183,135,135,101,102,102,161,177,122,210, 52,192, 96, 60, 77,101, 49,110, +220,199,216,189,123,119,192,128, 1, 3,174,157, 62,125,218, 53, 32, 32, 64,206,225, 60,213,154, 18,137, 4,238,174, 78, 3,227, +142,110,152,241,221,198,168, 32, 73,200,219, 21, 52,141, 7, 22,250, 38, 49,110,220,199,197,118,118,118, 35, 14, 31, 62,156, 46, +149, 74, 89,102, 62, 0, 76,137, 68, 34, 14, 8, 8,152,234,226,226, 34, 99, 50, 24, 18, 26, 52,109,169,127,218, 96,131, 13, 54, +216,240,220, 56, 85, 45,174, 78,213,253, 7, 11, 0,162,163,163,107,194,151, 70, 70, 70, 54,248, 4, 76,211,116,241,189,123,247, +124,212,106, 53,104,154,182,102,192,174,189, 68,179,152, 32, 24, 91, 25, 12, 98, 26, 65, 16, 8, 11,107,243,104,195,134, 13,245, +229,244,210,135,133,181,121,196,100, 50, 90, 61,157, 66, 97,252, 68,211, 84,113, 3,156,245,222,136,184, 92,222,124, 0,240,240, +240,204, 62,115,230,140,126,212,168, 81, 88,179,102, 13,103,193,130, 5,243, 88, 44,214,244,252,252,252,162, 70,234, 9, 0, 11, +197, 98,137,112,231,206,157, 1, 83,166, 76, 73,144, 74,165, 11, 1,192,211,211,115, 5,128, 16, 0,185,181,182, 97,219,182, 67, + 79, 38, 78,156,152, 33,147,201, 22, 54,196, 57, 2,120,205, 39, 40,168,207,242, 43, 87,104,134, 78, 71,148, 92,189,170,148, 23, + 23, 27, 31,202,229,194,189,119,239, 70, 46, 94,177,130,237,227,235,139,203, 39, 79,186,149,168,213,114,133, 78,167, 45, 46, 46, +166, 73,146,188, 97, 69,219, 67, 37, 98,137,112,251, 15, 63,221,177,103, 51, 41, 73, 51,111,130,237,226,194, 98, 8, 29,184, 76, + 22, 67,215,170,133, 63, 23, 64,168,165,115,196,225,112, 62, 28, 48, 96,128,240,208,161, 67, 68, 88, 88, 24,156,156,156,112,245, +234, 85, 36, 38, 38,162,188,188,156, 97, 52, 26,209,177, 99, 71,172, 90,181, 10,190,190,190,168,168,168, 64,126,126,190, 27,151, +203, 21, 27,141,198,134,142,231, 51,253,105,254,252,249,240,244,244, 4, 73,146, 40, 43, 43, 3, 73,146,176,179,179, 3, 0, 60, +126,252, 24, 39, 79,158,176,166, 47, 89, 4, 77,211,232,210,165, 75, 37, 65, 16,169,117, 45, 90, 77,225,244,246,246,254, 85, 46, + 47, 25,220,167, 79, 31,148,151,151, 27,151, 45, 91,134,182,109,219, 34, 32, 32,192, 98, 61,189,188,188, 38,147, 36,185, 4, 0, +142, 31, 63,190,215,211,211,243,147, 3, 7, 14,184,154, 83,132, 76,157, 58, 21,226,182,111,119,117,177, 23,245, 45,150,149,150, +223,184,147,156, 62,103,242,168, 94, 87,110, 37, 21, 24,216,195,242, 21,247, 79, 40,234,225, 92, 88, 90, 90,250,115,243,230,205, +127,152, 57,115,166,167,139,139, 11,116, 58,221,226,162,162, 34, 76,157, 58, 21, 0, 48,100,200,144,182,108, 54,251,204,248,241, +227,209,178,101,203, 39,101,101,101,249,241,241,241, 19,217,175,245, 75, 82,220, 63,241, 92,199,211, 74,216, 56,109,156, 54, 78, + 27,231,115,195, 90, 45,242, 95, 10,169,217,130, 85,141, 29,207, 8,173,200,200, 72, 34, 58, 58,154,182,162, 97,165,205,154, 53, +243, 17, 8, 4, 0, 80,218,212, 90, 80, 20, 53,221,213,213, 85,182,112,225,194,238, 1, 1, 1,250,233,211,167, 39,229,230,230, + 46,170, 93,166, 69,139, 22,223,253,248,227,143,200,200,200,200, 93,177, 98,197,181,210,210,210,166,230, 49, 91, 64,211,216, 80, +109, 29, 43, 57,121,242,100,219, 43, 87,174, 76, 91,191,126,189,248,211, 79, 63,229,204,152, 49, 99, 12,128, 53,150, 72,152, 76, +166,186,190,233,194,250,224,233,233,169,103, 50,153, 13, 6,137,139, 4, 4,124, 46,183,247,242, 43, 87,104,125,110,174,122,247, +186,117,246,219,255,252,115,169,145,166,221, 37, 18, 9,122,116,235, 86,197,103, 50, 75,100, 69, 69,148,228,181,215,152, 57,103, +206,184,105,184,220,194, 67,135, 14, 41, 74, 75, 75,143, 91, 52,225, 17,132,146,162,105,189, 93, 51, 95,227,168,225,253,195,238, +220, 78, 76,179,151,184, 49, 58,180, 15,107,155,150,145, 27, 15,138, 50, 16, 4,161,180,196,227,232,232, 24, 80, 90, 90, 10,165, + 82, 9,177, 88,140, 13, 27, 54,192,195,195, 3,106,181, 26,201,201,201,116,179,102,205,136, 43, 87,174,160, 89,179,102,144,203, +229,208,235,245,168,172,172,148,233,116,186,134,114, 51, 22, 51, 24,204, 61, 12, 6,241, 49, 65, 16,104,213,202, 47,111,203,150, + 45,122,138,162, 16, 28, 28,140,183,223,126, 27, 71,143, 30, 69,114,114,178,217,242,164,111,222,188, 69, 30,131, 65, 52,175,214, + 74,207,109,129, 49,167,246, 41, 44, 44, 28,241,156, 23, 13,195,203,203,107, 76,235,214,173,167,189,255,254,251, 70, 46,151, 11, +149, 74,101, 62, 22,198,193,131,135, 84, 12, 29, 26,233,120,234,212,169, 6,235,105, 48, 24,150, 60,121,242,196, 83,163,209, 96, +208,160, 65, 51,214,174, 93, 43,226,114,185, 0, 0,147,201,132,159,126,250, 9, 35,167,174, 28, 24,119,116,195,140,111,215,239, + 63, 55,107,201,150,216,115,191,174,242,250,118,193, 39,189,198, 76,255, 46, 22,192,217,122, 56, 81, 89, 89,153,237,227,227, 51, + 97,206,156, 57, 81,219,182,109,115, 94,180,104, 17, 40,138, 2, 77,211, 32, 73,178, 38,145, 56, 69, 81, 56,118,236, 24, 30, 62, +124,248,221,177, 51,113, 73, 99,166,191, 50,249,175,109,176,193,134, 87, 16, 77,208, 34,255,141,240,196,211,105, 67,212, 21, 91, +255,120,100,120, 38,147,185,253,252,249,243,237,223,124,243, 77, 86,223,190,125,195,206,158, 61, 27,246,228,201,147,164,106,235, + 65, 88,223,190,125,195, 36, 18, 9, 54,110,220,168,102, 50,153,219,159,243,103,106,110,122, 69, 69, 69, 9, 0,214, 30, 61,122, +116,245,228,201,147,225,225,225, 17, 34,149, 74,255,209, 54, 59,240,120, 29,198,111,216, 64,178,141, 70,198,230,181,107, 29,214, +197,198,174,254,237,247,223, 89, 93,186,116, 33,104,154,198,131,251,247, 5,171, 54,109, 18,190, 55,124,120,110,122,118, 54,121, +226,220, 57, 99,241,147, 39,101, 79,228,242, 37, 0,202, 44,241, 27,141,198,155,153,153,153, 94, 61,122,118,241,142,251, 51, 41, +113,212,240, 33,125,216, 44, 6,145,149,251,248,174,167,135,155,227,229,216, 11, 26,163,209,120,211, 18,143, 74,165,202, 33, 73, +210,133,166,105,241,229,203,151, 33, 22,139, 81, 94, 94, 14,163,209, 8,189, 94,175, 87,171,213,252,210,210, 82,104,181, 90,232, +116, 58, 56, 56, 56,224,193,131, 7,197, 36, 73, 94,106,136,211,100, 50,141,231,241,120,223,176,217,108, 46,135,195, 41,188,123, +247, 46,148, 74,101, 11, 39, 39,167, 53, 36, 73,162,176,176, 16, 87,174, 92,249,220,193,193, 33, 23, 0,248,124, 62,184, 92,158, +171, 78,167, 35, 1, 60,121,222, 99,254,119,114, 76,121,120,120,248, 10, 4,130,229, 95,124, 49, 63,184, 93,187,246,144,203,229, +160, 40, 10, 34,145, 8,106,181, 26, 14, 14, 14,232,218,181,107,206,242,229,203,165, 52,141, 73,141,136, 65,102,245,249,193,228, +201,147, 69, 14, 14, 14, 40, 40, 40, 64, 80, 80, 16, 76, 38, 19, 72,146,132, 84, 94,250,224,250,157,164,180, 57, 83, 70,247, 60, +120, 50, 54,245,220,229,187,169,195, 7,117,107, 71, 16,116,139,198,234,152,156,156, 44,111,215,174,221,244,201,147, 39,127, 19, + 16, 16,208,138,166,105,248,251,251, 99,192,128, 1, 56,115,230, 12, 50, 50, 50,160, 82,169, 76,183,110,221,250,229,203,239,182, +252, 17,226,223, 28, 4, 65,219, 70,114, 27,108,176,193,134,151,131,191,248,102, 61, 99,209,250, 39, 33,147,201,228,105,105,105, +103,227,227,227, 35,223,121,231, 29, 92,190,124,121, 28,128, 57, 0,192,227,241,198,189,243,206, 59,136,143,143, 71, 90, 90,218, + 89,153, 76, 38,127, 17,191,201,229,114,181,122,253, 83,227, 20,159,207,231, 55,113,247, 22,213, 83,134, 0,208,162,145,109, 13, +155, 70, 88, 44,207, 54,131, 6,177,202, 19, 19,149, 59,111,223,254, 38, 42, 42,138,213,189,123,119,194,104, 48,192, 68, 81,240, +243,243, 35,250,246,235, 39,218, 19, 21,229, 98, 82,169,174,124,251,197, 23, 87,119,140, 31, 95,149, 89,237, 7,102, 9, 58,157, +110,211,180,169, 19,250,197, 94,190,234, 29, 18,244,154,203,217,243,177, 9,174,174,142,194,128,214,173, 69,165,229,101,166, 69, + 11, 62,103,233,116,186,205,150,120, 52, 26,205,177, 11, 23, 46, 12,247,241,241, 17, 39, 37, 37, 65,175,215,195,100, 50,161,111, +223,190,160,105,154, 7,128, 98,177, 88, 72, 75, 75,131,193, 96,144,101,102,102, 22,102,101,101,241, 0,172,180, 80,191, 60,157, + 78,135,212,212,167,179,118,205,154, 53,235, 31, 17, 17, 1,146, 36, 49,104,208, 32,156, 56,113,162,127,106,106,234,186,218,154, +239,239,158,243,106, 11, 89,176,151,151,215,209,234, 77, 86, 57,193,123,123,123,135,249,249,249,109, 91,185,114, 37,167, 89,179, +102,160,105, 26,206,206, 78, 80,171,213, 40, 41, 41, 69, 72, 72, 8,124,124,124,176,114,229, 74, 0,248,165, 49,139, 27, 69, 81, +144, 74,165,200,201,201, 65,118,118, 54,124,124,124, 64, 16, 4, 42, 43, 43, 65,146, 36, 40,138,130,176, 82,121,234,199, 61,127, +244,254,125,219,146,208,206,109,252,125,111, 39,164,200, 62, 28,209, 95,232,223,210, 55, 64,158,180,140, 1, 44,163, 26,226, 28, + 55,110, 92, 86,239,222,189,223,153, 49, 99, 6,167,162,162, 34,188,127,255,254, 27,251,245,235,135,132,132, 4, 92,189,122,245, + 61, 30,143, 39, 51, 24, 12,228,119, 95, 78,155,244,253, 34,194,129, 50, 24, 14, 2,203,164,192, 50,219,144,104,131, 13, 54,216, +240, 98, 97,246,209, 66,173,247,166, 89,180,130,131,131, 69,185,185,185, 31,181,104,209,130, 11, 0, 2,129, 32,196,207,207,111, + 94,118,118,118,101, 83,107,163, 86,171,127,139,138,138, 26,240,195, 15, 63,112,134, 12, 25,242,218,209,163, 71, 59, 1,192,144, + 33, 67, 94,179,183,183, 71, 84, 84,148, 65,173, 86,191,176,152, 72, 70,163,241,205,142, 29, 59,162,172,172, 12,185,185,185, 73, + 77,217,247,143, 63,254, 16,226,169, 95, 86,163,219, 26, 3,169,215, 59, 59,121,123, 51,158,196,198, 26,202,148, 74,207, 55,123, +246, 36,140, 6, 3, 24, 12, 6, 74, 75, 75,145,159,159, 15, 71, 39, 39, 34, 45, 51,211,110,215,252,249,127,180,104,215,142,107, +210,235, 93,155, 80, 77, 85,137,172,248,227,207,166,127,122,236,224,193, 95,196, 21, 74,229, 67,129, 64,168,227,241, 56, 30, 51, + 63,251,204, 84, 86, 86, 54, 22, 64,149, 21, 60, 43, 15, 30, 60, 56,104,208,160, 65,247,125,125,125, 37,114,185,220,163,162,162, +194, 84, 86, 86,198, 68,117,136, 39, 0,136,141,141,133, 82,169, 36, 77, 38,211, 21, 60,141,133,165,183,182,162,205,155, 55,119, + 12, 15, 15,239, 37, 22,139,161, 80, 40,224,234,234,138,246,237,219,247, 98, 50,153, 63,231,229,229, 41, 94,100,175,143,137,137, +177,167,105,250, 13,154,166, 49,104,208, 32,171,246, 49,153, 76,159, 68, 68, 68,112, 8,130,128, 70,163, 6,159, 47,128, 72,100, + 7,123,123, 7, 4, 4, 4,162,176,176, 16, 3, 7, 14,212, 63,124,248,112,171, 84, 42,253,205, 2, 23, 10, 11, 11, 33,151,203, +145,159,159,143,146,146, 18, 0, 64, 73, 73, 9, 40,138, 2, 73,146, 77,110, 83,125,156, 10,133, 98, 88,215,174, 93,231, 78,157, + 58, 21, 36, 73, 98,216,176, 97, 40, 40, 40, 88,151,147,147,115,200,203,203,107,204, 39,159,124, 34,118,117,117,197,220,185,115, + 5, 0,190,182,141,135, 54,216, 96,131, 13, 47, 28,117,125,180,254,106,209,106,108, 78,212,195,195,163, 7, 65, 16,139, 53, 26, + 13,215, 60, 37, 67, 16, 4, 87, 44, 22,159,208,104, 52, 43,164, 82,105,147,156,226, 42, 42, 42,148,143, 30, 61, 58,113,243,230, +205,209, 35, 70,140, 64, 76, 76,204, 88, 0, 24, 49, 98, 4,110,222,188,137, 71,143, 30,157,168,168,168, 80,190,136,150,123,123, +123, 15,238,217,179,231,136,142, 29, 59, 34, 58, 58, 26, 38,147,233, 70, 83,246,175,189,194, 16,245,172, 58, 52,111,179,138,140, +201, 4, 65, 16, 53, 55,216, 18,185, 28, 25,233,233, 40, 43, 47,135, 78,171,133, 74,173, 54, 5,180,108,169, 81,232,245,108, 2, +104,234, 60, 79, 94,252,157, 91,249,106,149, 74,226,234,236,162, 17, 10,121,168, 80, 42, 56,119,239,220,170, 2,240,208, 74, 14, + 61, 77,211, 61,207,156, 57,179,132,201,100,190, 99,103,103,135,105,211,166, 49,123,245,234, 5, 14,135, 3,157, 78,135,138,138, + 10, 68, 69, 69,201, 77, 38, 83,171,234,125,236,132, 66,225, 62, 38,147,249,184,178,178,114,177,197, 31,208,235,135, 68, 70, 70, +178,244,122, 61,190,253,246, 91, 44, 93,186, 20,131, 6, 13, 98,221,185,115,103, 8,128,131, 47,170,199, 83, 20,133,254,253,251, +215,118,134, 79,181,102, 63, 54,155, 29,214,186,117,107,200,229,114,200,229,114,136,197, 98,120,121,121,193,195,195, 3,235,214, +173,163, 55,110,220,120,214, 96, 48,108, 45, 41, 41, 41,182,166, 14,217,217,217, 53,150, 65,173, 86, 11,149, 74,133,130,130, 2, +152, 76, 38,196,198,198, 66, 35,114, 24, 52,253,227,161,237, 84, 26,141,250,246,131,204,252,197, 51,198,116, 81,105, 52,234,204, +156,252, 12, 96, 19,101,137,115,222,188,121,147,198,141, 27, 55,105,244,232,209,168,170,170,194,205,155, 55,209,173, 91, 55,172, + 94,189,218,243,202,149, 43,115, 58,118,236, 8, 54,155,141,203,151, 47,131, 36,201, 2,155, 53,203, 6, 27,108,248,111,198,191, +212, 63,171, 81, 52,106,209,242,241,241,113, 50,153, 76,159, 71, 68, 68,244, 31, 62,124, 56, 6, 14, 28,248,204,255, 15, 30, 60, +104,127,228,200,145, 21,155, 54,109, 26,100, 48, 24, 86, 54,101,170,143,162,168, 99, 7, 15, 30, 28,210,165, 75, 23, 97,239,222, +189,253, 0,128,199,227,233, 15, 30, 60,168,166, 40,234,216,115,180,197, 28,136,177, 24, 0,188,188,188,218,178, 88,172, 17,131, + 7, 15,110,251,241,199, 31, 35, 57, 57, 25, 81, 81, 81, 89, 1, 1, 1,215,138,139,155,228, 95,157,107, 97,213,225, 10, 75,214, + 45, 38,151, 91, 90, 81, 84,228,100,231,235,203,118,182,183,151, 70, 71, 71,251,244,235,215,143, 40, 40, 40, 64,121,121, 57,180, + 90, 45,238,220,185, 67,177,128, 60,150,179, 51,145,119,243, 38,193,228,114, 75,241,236, 74, 62,139,240,241,116,246,255,106,193, +148, 22, 90,157, 54, 84,161, 80,144, 44, 54,155,221,204,195,169, 32,253, 97,147,102,226,116, 66,161, 48, 28, 0,139,162, 40,181, +139,139,139,240,252,249,243,224,114,185, 32, 8, 2,109,218,180, 1,159,207,231,208, 52,157, 15, 0,246,246,246,220,237,219,183, + 59,142, 25, 51,230,170, 37,226, 14, 29, 58,176,121, 60,222, 91, 1, 1, 1,184,121,243, 38,146,146,146,242,110,222,188,217,188, + 67,135, 14,240,245,245,125,203,211,211,243,247,132,132, 4,227,139,232,216, 79, 87,172, 54,221, 25,222,100, 50, 81, 4, 65,128, +193, 96,128,162, 40,200,229,114,180,106,213, 10, 91,182,108,193,134, 13, 27,190,149, 74,165, 39,155,192,101, 82, 42,149, 16,137, + 68, 72, 74, 74,210, 69, 68, 68,240, 24, 12, 6,178,178,178, 96, 50,153,176,102,205, 26, 72,252, 7,134,116,235, 24, 22,244,237, +250,253,231, 68, 60, 30,111, 96,175,240,224,148,204,188,199, 52, 77,228, 54,100,209,170,197,201,105,223,190,253,216,209,163, 71, + 35, 59, 59, 27, 43, 86,172, 40,145, 74,165,177,231,206,157, 27, 57,117,234, 84,102,183,110,221, 80, 90, 90,138, 61,123,246,144, +119,239,222,221, 93, 84, 84,180,223, 54,140,219, 96,131, 13, 54,252,151, 8, 45, 31, 31,159,209, 28, 14,103,238,187,239,190,203, + 12, 12, 12, 68,113,113, 49, 28, 28, 28,140, 4, 65,176, 1,192,201,201,201, 40, 16, 8, 48,101,202, 20,180,107,215,174,199,252, +249,243,187,177, 88,172, 45,133,133,133,251,172,249, 97,153, 76,166,102, 48, 24,135,167, 77,155,182, 50, 49, 49,161, 21, 0,252, +249,231,159,143, 10, 11, 11, 23,200,100, 50,117, 19,219, 97, 14,138, 73,240,120,252,219,254,254,254, 57,225,225,225, 14,195,135, + 15,135, 88, 44, 70,124,124, 60, 86,173, 90,149,169,215,235,151,196,197,197,145,255,244, 65, 38,117,186,162,187,199,143,219,247, +250,224, 3,135,153, 17, 17,107, 63,157, 54,237,135,175,190,250,138, 21, 24, 24, 72,168,213,106,220,190,125,155, 62,114,228,136, +113,207, 55,223,108,128, 72,196,190,121,228, 8, 87,175,215,231, 53,209,114,215,179,251,155, 61, 2,215,254,176, 9, 90, 77, 21, +110,223, 56,133,242,114, 57,182,239, 56, 26,232,237, 77,247,124,242,228, 73,156,181, 92, 4, 65, 4,196,196,196, 72,104,154, 6, +151,203,197,242,229,203,225,229,229, 5, 7, 7, 7, 84, 86, 86, 98,206,156, 57,142,179,102,205,114, 4,128,228,228,228,154,240, + 12,150, 80, 88, 88,216,117,202,148, 41,246, 36, 73,226,236,217,179,122,130, 32, 22, 95,184,112,225,231, 54,109,218,112,123,244, +232, 97,191,127,255,254,110, 0, 46,191, 40,161,245,156,251,101,157, 63,127,190,227, 59,239,188, 67,179,217,108,162,162,162, 2, + 78, 78, 78,216,178,101,139, 74, 42,149,158,106, 34,215,242, 5, 11, 22, 44,169,254,188,119,241,226,197, 19, 86,174, 92, 41, 46, + 42, 42,122,234, 8, 47,149,130,116, 46,187,212, 53,226, 51, 83,105,133, 66,191,123,253,252, 81, 2, 62,143,187,120,229,238,203, + 70, 38,110, 53,212,174, 5, 11, 22,152,175, 81,174, 80, 40,228,210, 52,141,195,135, 15, 35, 47, 47,239,147,210,210,210, 34,147, +201,116,244,243,207, 63,159, 23, 24, 24,216, 50, 61, 61, 61,175,178,178,114,181, 79,251,183,115,180,146, 34,212, 10,239, 96,131, + 13, 54,216, 96,195,139,131,217, 9,222,188,250,240, 20,158, 78, 39, 54,156,235,208,100, 50, 77, 57,119,238, 28,243,163,143, 62, +194,189,123,247,176,103,207, 30, 90, 40, 20, 46,246,244,244, 20,250,249,249,241,248,124,254,188,137, 19, 39, 82, 89, 89, 89,232, +209,163, 7,110,222,188,201, 0, 48,182, 14, 77,163, 33,250, 21, 10,197,157,132,132,248, 86, 38, 19, 69,152, 76, 20,145,144, 16, +223, 74,161, 80,220,177,208,152,186,156, 53, 65, 49, 41,138, 38,244,122, 93,231,229,203,151,139, 39, 79,158,140,226,226, 98, 44, + 95,190,156,250,250,235,175, 47,210, 52,189, 88, 42,149,106,172,228,124, 17,168,225,228,146,100,252,129,121,243, 88, 85,106, 53, + 61, 97,238,220,202,239,199,143,159,177,101,211,166,188, 15, 62,248,192,240,197,130, 5,250,107,113,113, 89, 59,150, 47,159, 60, +232,173,183,170,146,227,226,184,137, 49, 49,108,177,209,120,175, 41,245,124,242,228, 73,220,229,203, 87,177,119,231, 15, 56,176, +103, 51,174,196, 94, 70,242,253, 84,148,148, 42, 96, 65,100,253,133,147, 36, 73,197,200,145, 35, 43, 70,141, 26,165, 63,124,248, + 48,100, 50, 25,170, 67,122, 64,169, 84,226,212,169, 83,136,137,137, 65, 76, 76, 12,206,157, 59, 87,227,228,110,169,158, 34,145, +232,173,110,221,186, 33, 47, 47, 15,201,201,201, 23,165, 82,105,105,114,114,242,197,130,130, 2,116,236,216, 17, 34,145,104,104, + 83,234,249, 2,132,214, 95, 56, 5, 2,193,130,163, 71,143, 70,205,152, 49,131,124,244,232, 17,218,183,111, 15, 0,168,172,172, + 84, 3, 48, 53,133, 83,163,209,108,215,106,181, 94, 90,173,214,203,215,215,119, 81,110,110,238,155,115,231,206,149,155,195, 47, + 0,128, 60,229,228,205,180,107,123,191,151,184, 57, 11,186,118, 12, 13,252, 97,251,225,203,249, 5,197, 81,181, 98,104,213,229, +132, 86,171,133, 86,171,173,105,167,209,104, 4, 69, 81,112,113,113, 81, 85, 63,196,228, 60,124,248,112, 90,110,149,235,192, 59, +241,137, 83, 62,252,116, 89, 78,126, 65,113, 93,145,101, 75, 29, 98,227,180,113,218, 56,255,219, 56, 95, 5,152, 87, 31, 70, 88, +180,104,209, 52, 77, 82, 20,133,203,151, 47,227,232,209,163, 38,131,193, 48, 73, 42,149,214,142, 86,189, 41, 62, 62, 62,102,228, +200,145,251,210,211,211,153, 41, 41, 41,160,105,218,212,148,218,104,181, 90, 99,221, 28,112, 90,173,246,111, 79, 29,237,221,187, + 23, 69, 69, 69,134,130,130,130, 11, 36, 73, 30,251,155,171, 23,255,246,170,195,189,128,238,125,189,254,194,210,238,221,251, 47, +137,137,225, 77,248,242, 75,221,184,143, 63,254,220,164,215, 27,153, 28, 14,197, 21,137, 24, 38, 30,143,157, 28, 23,199,223, 56, +117,170,139, 70,167, 59, 27,213, 4, 7,115,179, 69,171, 87,175, 30, 24, 55, 97, 54, 52,181, 44, 90, 55,239,100, 64,103, 64,147, + 44, 90, 58,157, 46, 84, 42,149,130,207,231,231, 3,240,248,232,163,143, 64, 81, 20, 52, 26, 13, 42, 43, 43, 81, 88, 88,168,248, +248,227,143, 77,213,226,137, 53, 98,196, 8, 7,107,120,253,252,252,188,216,108, 54,206,158, 61, 11, 54,155,125, 10, 0,216,108, +246,169,152,152,152, 33,239,189,247, 30,188,189,189,253,178,179,179, 9, 88,240, 79,147,132, 14,251,141, 6,252, 65,160,245, 83, + 19, 28, 90,139, 67,135,221, 39,128,204,234,168,241,169, 29, 58,116, 0,172,244,203,170,141,234,197, 29, 27,140, 70,227,239,243, +231,207,159,214,185,115,231, 1, 75,151, 46, 37, 80, 29,170,225,239,224,221,119,223,205, 56,116,232,208,155, 11, 23, 46, 60, 71, +211,180,174,246,255,100, 37,101,151,186, 68, 78,167, 43, 42, 20,137,242,212,147, 15,154,194, 75,146,100,189,194, 82, 86, 82,134, + 46,145,211, 81, 81,161,128, 60,245,164,109,248,179,193, 6, 27,108,120,249, 86,173,191,160, 65,161, 69, 16,196,142,158, 61,123, + 78, 2,192, 36, 8, 98, 91, 97, 97,225, 95, 6,127,169, 84,154,225,229,229,181,166,101,203,150,147, 1,208, 4, 65,236,104, 98, +165,138,105, 26,171, 24, 12, 98,254, 83,113,247, 92, 1, 42,205,105, 73,230, 3, 32, 24, 12,230,190,132,132,132, 47,243,243,243, +229, 86, 90, 32, 26,197,139, 88,117, 8, 0,191, 0, 57,239,230,229,157,155, 27, 22,214,111,208,212,169,104, 59,104,144,131, 87, +243,230, 38,141,193, 64, 61,184,118,141,184,113,248, 48, 39, 49, 38,134,173,209,233,206, 30, 3,242,155, 90,207, 39, 79,158,196, + 93,138,141, 59, 63,106,196,144, 1,126, 45,189,158,138,134,156, 66,148,148, 41,206, 55, 69,100,213, 17,189,195,182,108,217,114, +146,195,225,176,106,167,178, 49, 24, 12,101, 58,157, 46, 20, 0,202,203,203,189,118,236,216,241, 43,131,193,200,179,196,151,146, +146,114, 98,201,146, 37, 35,114,115,115,207, 23, 20, 20,228, 2, 64,126,126,126,174,209,104,220, 39,149, 74, 71,228,229,229, 29, +129, 21,139, 0,104,192, 63,249,218,239,109, 0, 32,180,251,104, 36, 95,251,157, 15,160, 77,104,247,209, 0,128,231,205,101, 88, + 27,165,165,165, 82, 0,139,111,222,188,121,112,192,128, 1, 19,241, 55, 98,122, 1,128, 94,175,135, 70,163,193,245,235,215, 51, +214,172, 89,211,252,193,131, 7,200,203,251,207, 33,147,167,156,188, 41, 7,110, 54,145,211,168,209,104, 72,147,201,196, 50, 24, + 12,180, 94,175,127,230, 33, 69,158,114, 18,114,219,192,103,131, 13, 54,188, 34,160,105,186, 35, 0,177,121,136,171,126, 23,215, +249,172, 71,117,186, 64,243, 80, 89,253, 93, 78, 16,196,157, 90, 28, 53,219,173,216, 23, 0, 74, 0,220, 39, 8,162, 33, 35,200, +142,134,190, 55, 40,180, 10, 11, 11,143,192,138,164,209,214,150,107, 4, 11,171,243,196, 1,207,159,135,173,134,195,100, 50, 21, +231,231,231,255,237, 19,202, 96, 48,114,134, 14, 29,218,164,242,150,202, 28, 2,242, 62,211,233,246, 71,111,222,220,254,236,182, +109,222, 38,146,116, 37, 0,154,201,229,150,234,245,250, 92,177,209,120,175,169,150,172,103,172, 49,143,158, 12,204,126,244, 4, +173, 91,183,166,179,178,178,158,218,122,254, 30,238,169, 84, 42, 31, 75, 93, 64,173, 86,247,176, 82, 12,254,242,228,201,147, 95, +234, 17,236,191, 74,165,210, 95,173,173, 84, 77, 82,105,128, 65, 17,212,168,208,238,163, 15, 3,160,204, 73,165, 95, 36,138,138, +138,210, 81, 29,231,237,239, 32, 47, 47, 15, 4, 65, 96,213,170, 85, 72, 76, 76, 68, 97, 97, 33, 94, 0,167,142, 32,136, 3,171, + 86,173,250, 48, 49, 49,241, 80, 97, 97,161,206, 54, 20,219, 96,131, 13,175,178,200, 34, 8, 34,186,250,123,100,181, 81, 40,186, +238,103,115, 25,115,185,218,101,204, 28,117,183, 55,182, 47, 0, 44, 88,176,224,203, 21, 43, 86, 8, 1, 88,155,140,249,185,147, + 74,191, 44, 20,255,151,112,212, 22, 5, 59, 95, 70, 67, 55, 3,122,144,228, 45,212,142,161,100, 52,190,208,223,200,202,202, 34, + 94,229, 11,206,156, 84,186, 22,194,254, 13,245,206,205,205,133,175,175,239, 11, 17, 89,181, 56,183,248,250,250,110, 47, 44, 44, + 36, 97,131, 13, 54,216,240,234, 66, 92,159, 48,106, 64,148, 69, 54,246,255,103, 30,220,235, 41, 87,223,119,130, 32,162, 87,172, + 88, 17,217,132,250,214, 88,180, 24,182,115,103,131, 13,255, 28,226,226,226, 94, 6,167, 77,100,217, 96,131, 13, 54, 60, 7,234, + 90,177,204,226,171,238,247, 5, 11, 22,124,137,198,103,156, 60,241,212,138,229, 89,253,189,198, 95,139, 64,195, 43, 7,154, 18, +132,244,121, 86, 31, 92,176,113,218, 56,109,156, 54, 78, 27,167,141,211,198,249, 63,199,105,137,251, 66, 61,130, 40,162,161,169, +190,198,166, 17,235,126,182,180,175,165,178, 4, 65, 52, 20,230,199, 60, 85, 88,243, 78,211,244, 14,252, 3,176, 45,125,181,113, +218, 56,109,156, 54, 78, 27,167,141,211,198,249,183, 64,211,116, 71,154,166, 35,240,116,193, 20, 77,211,116, 4, 77,211,131, 22, + 44, 88,176,208,188,109,193,130, 5, 11,105,154,238,107, 46, 87, 93,166,102, 31,243,182,186,239,117,183, 53, 86,182,145, 42, 78, +170,243,121,146,121, 17,217,127,139,143,150, 13, 54,216, 96,131, 13, 54,216, 96, 67,189, 48,175, 24,172,101,109,146, 3,120,176, + 98,197,138,242, 90,190, 83,114, 0,247, 0,180,171, 46, 39,175, 22,105,181,125,171,244,213,223,245,245,148,209, 91, 83,182, 1, +236,104,224,179, 77,104, 53,132,118, 30,140,111,124,155, 73,194,171, 79, 0,104,234,105,218, 57,170, 58, 94, 17,109, 14, 92, 68, + 81,160,105, 26,133,178,138,248, 7, 50,124,245,188,191, 23,224, 5, 23, 9,159,191,129,162,233,238,213,155,226, 20,165,186,217, +201, 74, 84, 88,203, 17,228,142, 96, 62, 3,159, 83, 52,218, 2, 0,131,192,125, 45,133, 53,105,197, 77,143, 39, 85, 95, 63, 15, + 21, 99, 18, 87, 32,124,215,209,201,185,117,121,121, 73,166, 65,171,251, 61, 69,142,237,104,122, 94, 70,248, 57,227, 13,138,198, +151, 0, 24,108, 6,214,101,150, 89,189,146,195, 54,224, 16,230, 39, 60, 43,203, 87,255,121,206, 96,249, 54,216,240,202,129,166, +105,230,223,187, 6, 9, 83, 61,156,196,223,228,180, 93,161, 86,136,173,122, 54,255, 89,207,182, 59,255, 77,245,110,146,208, 10, + 17, 99, 42, 8, 44, 3, 64,131,198,215, 41,114,252,212,164,253, 61,209,143,207,100,238, 2,192,212, 26, 76,115,105, 10, 87,234, + 61,152, 12,188,201,231, 48,215, 1,160,180, 38,211,248, 20,169,245,254, 98,161,222, 24,196,162, 24, 7, 40,154,102,155, 40,122, + 40, 53, 96,187, 0, 0, 32, 0, 73, 68, 65, 84, 31,104, 68,219,113,112,253,214, 19,104,155, 82, 87,223,102,146,240,227,127, 74, + 7,196,254, 52, 19,157,219,190, 6,218, 68, 2,148, 17,194, 30,159,227,226,250,143,208, 57,216, 23, 52,101, 4, 40, 18,118,131, +215, 98,112,152, 35,253, 64,246,124,121,176, 3,188,224,210,220, 77,146,180,115,231, 46, 15, 47,191, 16,130, 34, 13, 72,255,243, +252,152, 89,243,151,244, 9,133, 34,204, 26,177,213,214, 19, 19,124, 91, 4,126, 62,123,217, 15, 76, 79, 47, 31, 17,101,212,145, + 69, 57,169, 29, 54,173, 94,114,132,195,200, 91,119, 95,138, 93,214,246,229, 16, 49, 38,179,120,220,209, 2,190,168,181, 90, 93, +153,101, 50, 24,127,103,176, 89,131,214,172,221,208,190, 87,255, 33,118,166,202, 34,134,145, 66,200,111,135,126,109,190,121,203, +214, 33, 73, 82,211, 91, 0,168,166,180,153,162, 49, 63, 99,255,164, 33,108, 22,147, 8,254,100, 39, 19, 32,159, 75,104, 5, 75, +240, 62, 65,195, 98,120, 9,154,192,213, 84, 25,126,121,158,223, 8,146,224,103,130, 70, 0, 8, 28, 38,104,252,154, 34,135,236, +255, 83,100, 81,212,211,241,152,193, 32, 44,138, 39, 62,143, 7, 77,117, 20,121,107,202,219, 96,195,255, 42, 24, 12, 70, 44, 69, + 81,189, 95,176, 48,120,131,166,233, 91,182,163,251,191,141,166, 89,180, 8,124,155,252,176,192, 25, 38, 3, 66, 3,252,190, 1, +154, 38,180,248, 76,230,190, 59,153,197, 30, 32, 13,216,249,221,180, 67,122, 35, 64, 26, 13, 48,145, 70,152, 72, 35, 72,210, 0, +147,209, 8,218,168,195,146,221,177,128,190, 18,225, 97,254,251, 0,147,167,181,191,193,166, 25, 7,226,175,157,119, 33,244, 10, +252,242,211,138,207, 10,228, 85,159, 93,184, 95, 88, 18, 34,209, 44, 76,145, 97, 79, 83, 4, 65,236,182,153,136, 58,118,234,241, +198,159, 85,105, 20, 77,195,197, 65, 16, 56, 38, 50,217,103,255,137,216,130, 13,251,180,105, 0,224, 40,226, 6,142,189,159,233, +251,119, 78,130,132,207,223,176,125,235,102, 15, 79, 87, 1, 65,222, 88, 9,210,100,130, 79,243, 8,230,194,233, 99, 60,191, 93, +191,107, 61,148,186,113,141,237, 31, 40, 65, 72,139,150,193,115,247,157,186,225,171, 82,202,244,231, 15,126,249, 16, 58, 24, 61, +188,131,217,223,172,248,129,185,232,139,153,115,244,166,199,183,211,101, 72,177, 52,214, 4, 75,112, 98,197,202,181,109,251, 12, +142,180,163,170,228, 76,173,170, 42, 96,231,238, 93,203,130,218,118, 18,246, 8,107,198,145,253, 62,133,208, 84,150,193,192,224, +243,250,132,246,115,208,124,248,158,113,231,222,168,233, 41, 50,108,106, 74,155, 77,181,166,173, 41,234,249,163,174, 19, 52,122, + 36,222,138,157,108, 42,188, 3,218,100, 4, 76,134,154,119,152,140,160,169,167,239,157,167,236, 6,240,124, 66,139, 65, 99,192, +133,107,119, 60,139,139,164, 29,215,175,253,126, 33,125,231,206, 25,152,112, 32,181, 12,113, 77, 21,152, 0, 2, 90,185, 50,207, + 25, 77,208, 21, 84,152, 2, 0,160, 79, 0, 15, 0,186,122,218, 17,125,243, 21,196,149,171, 15, 53,113, 86, 14,226,112,117,117, + 69, 73, 73, 9, 0,212,164, 66, 10, 14, 14, 6, 0, 56, 56, 56,192,160,215,219, 70, 57, 27,108,176, 94, 24,145, 52, 77,179, 94, + 48,231, 16,154,166, 79,255, 77,154,207, 1, 76,168,254,188, 11,192,154, 23, 80,181,102, 0, 60,170, 63, 23, 1,120,108,235, 1, +127, 11, 53,113,179,234,126,111,106,135,226,131,166,128,195,195, 1, 64,208,212, 90,208, 0, 31, 4, 19, 48,170, 48,108,112,127, +184, 73, 60, 0,163, 26, 48,168, 1,163, 6, 48,170, 0,163, 6, 37,210, 60,192,160, 2,178,207,128,164,105, 94,147,155,171, 83, + 0, 25,191,163,111, 7, 95,136, 29,249,152, 57, 44,196,109,199,217,140, 93,187,206,167,247, 75,145,225, 93,171,234, 74,211,232, +220,166, 53, 54,238, 82,165,253,145, 32, 31, 8, 0, 67,218,185,158,237, 28,210,220,103,195, 62,109,218,233, 7,229,131, 0, 96, + 80,168,195,153, 78,129,158,190, 20,158,223, 84, 64,209,116, 15,175, 22,173, 9, 83,226,118, 80,202,199, 80, 42, 53,120,156,179, + 31,206,222,175, 51, 76, 20,122, 90,218, 95,192,196,130, 25,139, 86,177,213,202, 98, 61,101,144,155,196,204,114, 38,139, 75, 17, +120, 18,167,171,162, 42, 76,179, 39,125, 68,206,253,234,187, 5, 0,198, 52,106,113,148, 96,250,186,117, 27,218,116, 11, 15,146, + 20, 29,153, 73, 84,149, 23,131,100, 10,121,195,186,116,131,147,127, 8, 85,124,121, 29,193,245,235, 7, 39, 87, 63, 60,185,113, + 16,185,183,142, 18,221, 59,140,224,237,249, 63,246,206, 59, 60,138,170,109,227,247,148, 45,201,166,247,158,144, 80, 18, 2,161, + 73,239, 40, 69, 32,188, 20, 65,154,212,151, 34,162,136, 40, 42, 40, 32, 42,197, 6, 40, 29, 84,154,180,128,148,128,148, 40,189, + 68, 19, 74, 42,129, 36,164,247,158,108,182,206,204,249,254, 72, 49,129,148,221, 4,245,149,111,126,215, 53,215,108,189,119,102, +206,236,156,123,158,115,158,115, 14, 74, 95, 3,116,117, 26,173,214,246,232, 59,172,127,247,195, 45, 61, 93, 93, 8, 17, 32, 8, + 4, 68,224, 81,166,214,227,195, 35, 9,224,121, 30,175, 12,235,251,146,153,140, 34,130, 32,128, 16, 1,169, 89,249,229,191,133, +198,190,148, 80,136, 80, 67, 34, 85,157,122, 14,234,123, 63,252,118, 91,125,220,105,116,157,186, 54,150, 2,174,215, 56,231,250, +222, 57,255, 99, 91,224,135,166,123, 57, 10,124,210,185,117,240,236, 63,151,217,113,240,156, 67,113,110,250,244, 99,251,182,142, +223,182, 99,199,129,216, 28,204, 55,198,100,189,221, 95,118,125,195,111, 37,118,189, 90,154,229,166, 86,198, 41,125,108,104, 0, + 24,182,253,108,244, 91,183, 86,247,104,187,252, 12, 41,186, 26,175,142,168,251,188,172,136, 76, 81, 20,133, 25, 51,102,194,220, +220, 28, 65, 65, 65,200,204,204,132, 84, 42,253,211,188, 59, 58,194,215,215, 23,182,182,182, 96,104, 26, 4, 68,140,102,137,136, + 24,112,221,127,214,102, 43, 57, 57, 57,163, 57,102,203,205,205,173,127,122,122,250, 23, 85,189, 85, 40,138,250,162, 69,139, 22, + 43,254,188, 81,173,117,175, 87,204,243,252,212,244,244,244,171, 13,105,142, 28, 57,210,245,204,153, 51,222, 53, 52,189, 1,120, +215,245, 89,107,107,107,190,119,239,222, 73,103,206,156,201, 16,207,144, 38, 25, 46,163,141, 86,108,202,209, 69, 93, 52,153,101, + 0, 16,107,192,231,107, 53,249,169,245,252,186, 61,171,166,173,107,223,194, 22,165, 74, 45, 46,132, 37,129,231,245,224, 57,174, + 50,178,197,129,231,244, 24,214,201, 30,189,213,243,241,109,240, 3,112,188,176,182, 33,205, 39,209, 17, 97,114,231,193,175, 30, + 17, 4, 34,147, 75,232, 98, 95, 15, 59,199, 37,175,116,162, 23,141,110, 15,149,142,123,245,167,203,241,191,197,228, 96,151, 65, +154,194,211,195, 19,145,186, 94,227,185, 70,247,189,129,104, 84,143,193, 3,251, 89, 18, 77, 49,244,121, 9, 40, 45,215, 35, 33, + 95,143, 44,117, 17,228, 84,166, 65,154, 2, 65, 71,119, 55, 23,197,141,195,239, 63,182, 99, 74, 88, 71,134,147,202,104, 14,188, + 64, 24, 82, 20,173,177,109, 59, 68, 82,213,111,171,161,237, 52, 85, 88, 76,235, 63,116,164, 85,202, 79,115, 41, 83,223, 97,112, +236,226,129,199, 87,247, 32, 39, 44, 24,249, 25, 73,148,165,186, 8, 78,118,173, 48,124,234, 68,124, 57,177, 27, 74, 75, 74,193, +100,198, 91,201, 36,114,107, 64, 87,167, 38,225, 49,245,235,245,159,187,176, 12, 93,113, 60,171, 22, 94, 15,149, 70, 3,240, 28, + 76, 88, 1, 20,169,122, 79, 15, 94,175, 83,116, 28,247,254, 2,128, 15,109,108,223, 99,114,112,176,157, 3,250, 65,208,183, 37, +122, 21, 40,224,122,116,238,159,230,199,223, 17,147, 95, 24, 54,179, 31,161,112,173, 41,101, 20, 96,135,192,174,222,230,102,102, + 37,177, 72, 11,122, 19,241, 48, 33, 78,125,254,139,201,179, 22, 42,118,238,220, 57, 10, 32,175,163,118, 31,181, 16, 0,104,235, +196, 0,192, 60, 61,143, 21, 0,160,210,147, 61, 22, 50,106,214,215,135,110,217,129,169,152,209,161, 42,146,165,214,147,151,210, + 75, 72,161,238,210, 71, 15,122, 46, 9, 30,216,225,238,192, 84,138,146,167, 92,121,164, 41,174,107, 59,165, 82, 25,188,188,188, +176,104,209, 34,216,218,218, 66,163,209, 32, 43, 43, 11,175,191,254, 58, 0, 96,196,136, 17,144, 72, 36,152, 61,123, 54,188,189, +189, 81, 80, 80,128,240,240,112,148,151,151, 27,125,126, 26,137,168, 41,106,214,194,210,210,210,167, 69,139, 22, 43,244,122,125, +127,169, 84,234,164,211,233, 32, 8, 66,150, 76, 38,187,150,148,148,180,186,164,164, 36,241,127,109,223,239,223,191,111,140,217, +106, 84, 83, 34,145,224,193,131, 7,143,140, 48, 91, 33, 79,124,127,255,245,235,215,113,228,200, 17, 0, 64, 92, 92, 28,218,180, +105, 99, 86,215, 23, 31, 63,126,108, 54,112,224,192,253, 0, 60, 26,210,140,136,136,240, 57,125,250, 52,130,130,130, 0, 0, 15, + 30, 60,128,175,175,111,157, 27,115,253,250,117,102,202,148, 41, 62, 0, 50,254,134, 50,122, 30, 76, 86,205,245,159, 70, 43, 56, + 56,152, 4, 6, 6, 82, 79, 62,174,131, 4, 79, 27, 89, 23,168,121, 0, 72, 48,118, 11, 98,178,177,126,211,190,243, 47,255, 26, +180,165,191,137,148,198,202, 93, 75, 82,115, 11, 74,123,178, 84, 69,243, 11, 71, 64,219,152,203,110,173,157,222,201,179,176, 76, +141, 83,191,167, 95,141,206, 49, 46, 68, 26,157,137,139,128, 96, 93,241,140,135, 90,149,227, 59,253,203,139,135, 14,125,240,114, +199,197,163, 59,226,228,205,164,197, 0,215,232,168,239, 68, 16, 64, 4,174,186,243,123,229,173, 3, 32,212,158,192, 87, 0,169, +120, 77, 48, 46, 92, 48, 0, 96, 11, 29, 49,220, 66, 33,219, 60,111,222, 28, 75,125,238, 67, 20,104,165, 72, 45, 84, 35, 75, 37, + 65, 25,235,136,244,216, 8,158,166,112,177,209,144, 11,133, 18,194,169,173,109,100,230,116,192,144, 5,110, 37,231,150, 21,202, + 40,142,177, 28,251,153,117,222,175,223, 36,113,202, 92, 37, 69,161,209,225,231,173,172,172,219,168,243,147,152,226,194, 60, 88, + 59,183,199,203,175, 6,226,147,145,237, 80, 90,162, 68,110,193, 45,210,218,197,146, 74,190,118, 0,203,135,251, 35, 63, 59, 19, + 26, 61, 64, 41, 53, 5,106,173,186,172,222,227, 72, 99,199,219,239, 46,157,236,229,226, 96, 86,149, 84, 64, 4, 30,157,252, 91, + 98, 72,255, 30,184,120,253, 6,254,136,136,131, 80,153, 84, 64, 4, 1,105, 57,133,217,106, 29,191,199,168, 3,202,115, 32,122, +117,157, 70, 12, 77,104, 50, 12,112,132,130, 7, 62,238,230, 99, 49,251,131, 64, 47, 11, 51, 57, 5,181,158,135, 90,171, 71,233, +141,205,176,107,209, 1, 10, 19, 19,170, 11, 84,236, 29, 60,125,108, 43,167, 70, 95,145,152, 89,228,130,178, 44, 76, 25,210,254, +173,189,107,223, 48,163, 76, 42, 78, 77, 61, 95, 59,146,117, 99, 85,183,243, 83, 62, 61,113,233,200,209, 73,174, 95,190, 55,109, +224,176,119,246, 92, 2,112,174,174,109,211,106,181, 40, 46, 46,198, 59,239,188,131,237,219,183, 99,249,242,229,213,199,143,227, + 56,240, 60, 95, 61, 47,229,207, 63,255,140,248,248,248, 39, 77,150,136,200, 95,202,248,241,227, 77,178,179,179, 47,123,120,120, +180, 27, 50,100,136,162, 95,191,126, 80, 42,149,184,112,225, 2,148, 74,165,151,135,135,135,215,133, 11, 23,198,165,164,164, 68, +187,187,187, 15, 12, 10, 10, 50,184, 15,109,165, 1, 98,170, 47,193, 0, 71, 85,100,136, 48,168,200,253, 16,208,140,121,110,101, + 50, 89,213,148, 89,207, 52,178,149,158,158,254,168, 41,145,173,178,178, 50,169,155,155, 27, 28, 28, 28,192,243, 60,148, 74, 37, + 78,156, 56,129,226,226, 98, 8,130, 0, 83, 83, 83,124,246,245, 46,196,222,185,140,208,208, 80, 20, 23, 23, 75, 27,211, 76, 75, + 75,163, 58,117,234, 4,141, 70, 3,142,227,160, 86,171, 17, 18, 18, 82,253,156,101, 89, 44,253,116, 3,226,194, 46,227,238,221, +187, 72, 75, 75,251, 91,102, 27, 49,194,139,252, 47, 82,239,152, 89,127,123,214, 33,207,115, 31,238,220,123,232,214,135,243, 39, + 98,225,164,193, 30,171,183, 28, 31, 28,147,135,189, 0,224,111,143,233,175, 13,106,237,105,173,144,224,147,159,194, 0, 66, 62, +108,238,239, 69, 21, 32,174,157,147,176,248,231,208,228,203,203, 38,118, 65, 75, 23,203, 54,133,178, 2, 89, 66,130, 1,115, 10, + 10, 28,108,204,229,126, 35, 58,217,157,131, 32,192,218, 66,222, 22, 60, 7,107,115,185,223,203,237, 45,127, 1, 0, 75,133,164, +109, 93,145,175,250,232,234, 33,153,171,144,179,115,205, 44,172, 61,103,140, 26, 98, 58, 98,212, 56, 83,115, 9,135,252,208, 11, + 40,145,184, 67,111,235, 5,141,190, 0,105,137,241,252,175,183, 99,210,243, 74, 53, 75, 26,221, 76,130,171,233,137, 15, 28,124, + 58, 14,177,201, 11, 94,158,227, 51,243, 39,111, 26, 2, 93,122, 96,108,182,153, 99,119,211,223, 19, 18,203, 4, 82,103, 68,167, + 22, 37,197,197, 73,122, 30, 46, 42,158,181,136,191,244, 35, 62, 24,222, 1,133, 5, 57, 80,235, 56, 20,171, 56,157,179,181,137, + 92,147, 24, 9,141,142,131, 86, 47, 64, 98,237,134, 11,183, 34,242, 4,189,254,151,250, 52, 19,242,113, 55,225,196, 93,243,154, +175,181,180, 71,167,247, 45, 77,239, 66,175, 66,114, 90, 6,246,158,185,213, 37, 33, 31,119,155, 83,206, 68,224, 42,154,159,107, + 68,178, 40,130,126, 77,233, 4,223,214, 17,221,165, 38,210,239,190, 88, 60,165, 93, 47, 95, 91,185,144,118, 11,148,160,131, 25, +207, 66, 37,227, 97,229,209, 18,130,182,148,148,171,213, 69, 81, 64, 67,133,207, 0, 0,209, 41,241,229,180,246,102,148, 77, 75, +240, 9,231,192,118,158, 11,189, 0,196,231, 11, 0, 16,161,187,244, 81,108,239,119, 79, 15,248,244,226,160,152,140, 51, 43, 99, +220,198,111,238, 4,236,105,209,208, 54,230,228,228,128,101, 89,204,155, 55, 15,190,190,190, 32,132,160, 77,155, 54, 24, 58,116, + 40,126,249,229, 23,196,197,197, 65,169, 84,226,246,237,219,200,204,204, 20,107,126,145,191, 13, 63, 63, 63,231,244,244,244,168, +119,223,125,215,118,236,216,177,248,249,231,159, 81, 82, 82,130, 61,123,246, 96,227,198,141, 88,181,106, 21,244,122, 61,118,238, +220,169, 56,118,236, 88,247,173, 91,183,166,121,122,122,182, 79, 73, 73,201,106,196, 96, 81, 0,228, 0, 36,149,117, 23, 5, 64, + 56,123,246, 44, 70,140, 24,129,179,103,207, 10,149,175,241,168,184,249,105,210,220,159, 50,153, 12, 50,153, 12,197,197,197,207, +196,108, 73, 36, 18,152,155,155, 67, 38,147,161,180,180,212,104,179,197,113, 28,147,150,150,134,226,226, 98, 12, 25, 53, 10, 27, +214,174,197,160, 65,131, 48,100,200, 16, 16, 66, 16, 18, 18,130,193,125, 2, 48,241, 63, 3, 17, 19, 19, 3,142,227, 12,218,222, +172,172, 44,100,103,103,227,229, 81,163,176,107,235, 86,244,232,209, 3,126,126,126,224, 56, 14,151, 47, 95,198,248, 97,125, 96, + 50,102, 48,226,226,226,196,147,218,240,104,214, 51,233,163,213,108,162,114,113, 91, 56,121, 37,120,210,176,238,129,163,250,182, +195,174,195,191,126, 14,135,146, 67, 0, 96,167,145,127, 54,109, 80, 75, 68,167, 20,226,215,187, 25,193, 49,121,120, 38,217, 26, + 2, 15,123, 59, 75, 5,192,200,160,210, 9,156,101, 66,227, 29,152, 5, 66,160,232,255, 62, 94, 27, 21,237,209,163,157,135, 71, + 85,214,161,249,136,111, 48, 61,226,145,103, 55, 63,103, 79,240,122,128,215,195,114,226, 79,192,167,102,141,110, 71, 31,111,217, +197,183, 23, 45,234, 61,124,204,171,166, 50,133, 21,248,146, 84,232,179, 34,144,255,240, 42,148,138, 54,200, 74, 78,192,145,243, +161,197, 15,211,242, 75,104, 26, 23,178,139, 53,239, 37, 20,162,172, 49, 93,181, 30,107, 87, 44, 95, 50,242,200,161,195, 22,242, +150,125,169,248,205, 35,138,101, 44, 39,119,240,126,129, 46, 55,177, 39,107,246, 28,182, 84,106,177,174, 49,157,114,101,201,241, +144, 11,231, 38,182,246,233,107,241,248,143, 51, 80,169, 53,208,232,129,246,221, 7,130,231,137,140,162, 41,193,146, 97,168,156, +252, 66, 80,122, 62,251,218,189,199,153,215,239, 37, 48, 26, 11,172,107,112,116,145, 39,221, 61,197,188, 53,106, 96,103, 64,175, +194,127,250,119,192,134, 3,191,190, 9,240, 51,155, 87,200, 21, 17, 45, 2,244,109,231,128,237,132,160,111,216,137,141,109,187, +142,121, 27,198, 68,180,218,219, 99,184,191,143,235,143, 27, 62,123,223,214,206,189, 13, 67, 9,122, 16,231,142, 64, 73, 26,161, +210,110,193,202,173, 7,120,215, 62,216,249,237, 87,101,130, 64, 14,161,158,161, 45,248,202, 51, 76, 72,185, 2, 62,246,103, 36, + 36, 36,192,222, 43, 12,160,104,144, 22,143,161,227, 8, 52, 58, 2, 0,103, 54,237, 57, 61,232,189, 23,215,182, 31,213,150,245, +188,117, 47, 62,231,213, 89,174,138,158,158,140,111,116,166, 25,157,167, 84,214,123,174,102,100,100, 32, 35, 35, 3, 57, 57, 57, + 40, 42, 42,194,144, 33, 67, 48,120,240, 96,220,185,115, 7,215,174, 93,131, 92, 46,135, 78,167,131,179,179, 51, 40,138,130, 78, +167, 67,126,126,190,120, 57, 20,249, 75, 81,171,213,199,215,175, 95,111, 27, 24, 24, 88, 21,145,193,173, 91,183,176,123,247,110, +152,153,213,190, 78,142, 24, 49, 2,132, 16,219,149, 43, 87, 30, 7,208,171, 62,205,222,189,123,143,186,123,247,110, 70,231,206, +157, 19, 42,205,150, 20, 0, 29, 25, 25, 73,167,166,166, 82, 54, 54, 54,196,213,213, 85,159,145,145, 33, 0,224,103,205,154,197, + 28, 61,122,180,181, 82,169,188,210, 84,163, 37,147,201,158, 73,159, 45,137, 68, 2,138,162, 32,147,201, 32,149, 74, 65, 8, 49, +202,108,241, 60,207,158, 61,123, 22, 97, 97, 97, 88,213,185, 51, 22,187,185,193,214,214, 22,151, 47, 95, 6, 33, 4,102,102,102, + 40, 40, 40,192,161, 67,135,240,226,139, 47,130,227, 56,169, 33,186, 65, 65, 65, 8, 15, 15,199,167, 93,187, 98,177,149, 21,204, +205,205, 17, 18, 82,209, 26, 40,151,203,145,156,156,140,144,144, 16, 12, 28, 56, 80, 60,169,155,137,193, 39,207, 0,128, 45,160, +224,172,211,170, 64, 56, 2, 80,112,245,247,135, 52, 38,166,118,231, 28, 67,160,105, 44,255,118,111,240,200,111,222, 30, 69,205, + 29,221,197,117,245,143,151, 94, 7,128,217,175,248,186, 41,228, 44, 54,157,140, 38, 52,141,229,207, 98, 7,253,253, 33,165,242, +241,250,144, 30,126,200, 40,210, 34, 62,163,232,183, 24,192,160, 89,156,127,253,230, 53,236, 59,117, 57,117,227, 62,117, 44, 33, + 4,214,230,114,191,233,247,227, 61,127, 60, 27,158,242,245, 17,117, 44, 17, 8,172, 21,146,182, 51, 99,250, 52,154,117,216,213, + 67, 50,247,157, 37, 75,250,140,158,249,174, 9, 23,123, 20,218,248,243, 16,116, 42,148,232,164, 40, 98,156,145,150,146,130, 53, + 59,131, 83, 75,148,218,137, 81,185,198, 25,204,135,249, 40, 99,169,146,177,107, 62, 89,118,113,237,103, 43,205, 85, 9,151,203, + 24,138, 83, 49, 45, 6,176,159,173,250,134, 42,213,104, 95, 77, 40, 68,105, 99, 58, 26, 11,172, 91,255,245,183, 35,231, 76, 29, + 23,235,219,102,128, 29,159,145,104,167, 46, 41,201,249,233, 92,184,115,229,157, 34, 5, 0,241,105,249,200, 45, 86,114, 60,167, +191, 98, 33,193,234,104, 67,162,131,149,248, 56,194, 33,176,111,251, 41, 14, 22, 82,168,202,138,224,104, 33,193,176, 30,173,166, +232,127,143,123, 63, 49,199, 24,187,246,164,209,210,131,232, 85,184,189,238,197,182,132,215,183, 5,175,135,238,254,126,227, 35, + 99, 20, 22, 47,236,111,110,105,163,125, 76, 67,105, 6,152,218,131,178,244, 2,172,188, 41,137,255,171,200, 72,136,226,222,156, + 50, 53, 63, 49, 41,237,123,123,211,250,155,181,245,149, 77,201, 66,210,101,148,101,199, 35, 50, 67,135,246, 57, 21,173,237,150, +217,119,192, 63,195,142,233,197,197,197,232,221,187, 55, 94,127,253,117,112, 28,135,209,163, 71, 35, 53, 53, 21,143, 31, 63,134, +171,171, 43,102,205,154, 5, 59, 59, 59, 44, 89,178, 68,188,226,137,252,229, 36, 39, 39, 79,251,240,195, 15,175,247,232,209,195, +201,222,222, 30, 29, 58,116,192,169, 83,167,240,238,187,239, 86,127,166,115,231,206, 32,132,160,160,160, 0,235,215,175,207,202, +200,200,152,214,224, 13,122, 84, 84,236,190,125,251,250,183,107,215, 78, 39,149, 74,139, 0,200,139,138,138, 76, 10, 10, 10, 40, +181, 90, 13, 65, 16, 4, 43, 43, 43, 62, 35, 35, 67, 63,113,226, 68,205,205,155, 55, 91, 41,149,202,228,230, 68,180, 60, 60, 60, + 34,243,243,243,139, 41,138,106,246,208, 15, 85, 38,203,222,222,222,161,172,172, 76, 0, 80,216,148,161, 31, 56,142, 67,215,174, + 93,113,254,234, 29,156,253,245, 38, 74, 50, 30,224,245, 57,211,208,161, 67, 7,156, 63,127,190,201,101,214,169, 83, 39,156, 11, +185,142,235, 97,247,144, 28,119, 31,111,190, 62, 7,237,219,183,199,185,115,231,196, 19,218,112,206,160,118,223,172, 51, 79, 26, +173,129,193,193,193, 85,151,254,167,236,107, 91,123,116,146, 88,203,246,175, 28,222,202, 95, 50,100, 37, 40,137, 41,142,182, 57, +215,103,249,154,205,177,140, 99,242,212,200,156,198,179,195,106,253,105,114, 16, 69, 66, 99, 15,222,139,105, 59,229, 63, 61, 60, +176,235,148,226, 99, 0,120,181,159, 15,126,127,152,139,208,184,156,131,209,185,136,106,238, 94, 7, 56, 66,193,231,225,224,250, +183, 70, 15,244,114,119,198,238,159,175,131,162,112,220,160, 10,151, 16,210,163,157, 23, 54,238,123, 50,195,208,217,243,235, 35, +234,216, 11, 81,165,195, 1, 96, 72, 91,197, 47,221, 90,217,120, 18,210,112, 78,151,169,140,157, 55,124,220,107, 38, 92,220, 41, + 32, 41, 4, 20,167,129, 74, 39, 32, 51,175, 20,229, 86, 30,184,124,235,158,170, 88,173,125, 59, 58,183,105, 81,188,152, 60, 36, + 72,255,184,151, 82,166, 84,185, 40, 28, 90,169, 25, 90, 16,202, 52, 4,191, 71, 39,149, 68,103,225,129, 33, 26, 9, 9,208,246, +116,227,250,109,223,123,100,133, 68, 42,123,149,161, 64, 57, 90,155, 57,108,255,230, 83, 88, 88,152, 67,208,150, 1,202, 92,140, +125, 99, 77,110,100,134,222, 7, 0,218,216,193,188,159,143,100, 47, 75, 83,105,151,226,117, 31, 53,246, 27,148, 30,243,167, 14, +235, 44, 17,180, 74,188,181,254, 48,118,188, 63, 26,175,189,228, 47, 57,115, 35,110, 62,128,213, 77, 45,107,194,115, 32,122, 21, +122, 45,187, 26, 75, 1,215, 9,208, 55,236,200,103,109,129, 59, 6,107,116, 1, 36, 60, 75,249,119,244, 52,147, 10,105, 55, 32, +164,221, 32,140, 71, 31, 80,158,253, 41,202,185, 43,249,238,139, 85,202, 93,187,118, 95, 16,104,124,210,216, 80, 25, 85, 17,173, +188,184,235,208,106,181,208,243,128, 90,173,134, 82,169,132, 89,252, 57,232,121, 64, 42,161, 0,224,229, 69, 51, 70,117, 34,101, + 25,229,167, 99,185,148,221,115,218,246, 34,101, 25,229,183, 83,248,184, 60,165,166,209,200,171,155,155, 27,166, 79,159,142, 9, + 19, 38, 84, 71, 14,250,244,233,131, 47,190,248, 2, 87,175, 94, 69,183,110,221, 32,145, 72,112,249,242,101,112,156, 56,247,180, +200,223, 66, 66, 70, 70,198,203, 35, 70,140,248,245,252,249,243,182, 1, 1, 1, 0,128,176,176,176,138,155,206,174, 93,225,235, +235,139,236,236,108, 76,154, 52, 41, 47, 51, 51,243,101, 52,210,231,183,180,180, 52, 49, 40, 40,200, 73,169, 84,118,254,232,163, +143,114,188,188,188, 74,212,106, 53, 85, 84, 84, 36,112, 28, 7, 27, 27, 27, 89,231,206,157,209,187,119,239,178, 91,183,110,181, + 72, 77, 77, 45, 5,144,212,148,141, 31, 61,122, 52,174, 94,173, 72,218,123, 22,227,106, 73,165, 82, 4, 4, 4,184, 37, 36, 36, +164, 87,214, 45, 70, 95,227,107, 86, 47,247,238,221,195,149, 59,105, 96,181, 42,200,114, 51,112,251,231, 32,140,154,183,160, 89, +255,239,123,247,238,225, 68,200,109,152,201, 89, 60,120, 16,133,160,160,160,234, 27,183,191,153, 6,189,200,255, 56,153,168,167, +159, 22, 11, 0,129,129,129, 87,170,162, 21, 53,105,217, 18, 50,121, 25, 86, 14,233,226,182,244,213,190,173, 24,125, 73, 6, 4, + 94, 0, 35, 1, 28,237, 45,177,127,255, 65,159,131,135, 15,223,218,186,101,235,183, 2,199, 45,143,204,129, 49, 61,110, 87,126, +115,248,250,171,251,151, 12,100, 95, 31,222,214, 22, 0,164, 44,141, 77,167,162, 56, 0, 43,155,179,183, 61,221, 96, 82,166,199, + 92, 71, 59,171,143, 63,252,239, 72,219,129, 93,125,113, 37, 52, 18,223, 6,221,186, 42,203,193, 62,131, 79,110, 65,143, 39,253, + 83, 93, 89,135, 16, 26,239,119,201,243,196, 89,106,102, 3, 93,210, 37, 64,167,134, 90,163, 67,106, 62,143,212, 2, 53, 88,133, + 20, 97,113,105, 42,187, 44, 4, 55, 99,183, 41, 51,133,137,235,138,207,191,118, 87,171,202,184,146,194, 60, 78, 42,187, 45, 81, +152,202, 51,141,233,170,112, 59, 29,234,254,222,146, 23, 0,129,145,153,144,242,101,239,204, 48, 75,143, 62,143,214,116, 6, 40, + 66, 96,234, 63, 18, 22,166,140,180,111, 11, 73, 10, 0,152,153, 41,100,235, 63,121,215,234,237,247, 63,105,180, 15,152, 63, 32, +245,109,233,252,118,128,151, 13,174,134,199,226,106, 68,114,212,213,176, 7,237, 7,117,112,133,175,187,245, 34, 89, 97,209,186, + 24, 24, 31, 33,173, 40, 24, 14,208,171,171,179, 14,253, 29, 49,185,219,171, 31,213,151,109, 88, 39,222,128, 16,199, 19, 80, 12, + 3, 80,116, 69, 6,100,234, 13,176,214, 45,201,193, 35, 39,202,119,239,222,247,105, 76,158, 97,201, 25,250,138, 83,130, 47, 41, + 41,129,153,153, 25,206,197,113,154,215,134, 73,229, 52, 77, 35, 53,238, 78, 69,103,120, 91, 26, 0,218, 73, 7,125,214,246,198, +170,110,231, 45,100,148,220,117,228, 39,254, 92,196,190, 52, 67, 42, 9,127,127,127,248,248,248, 96,194,132, 9, 72, 72, 72,192, +218,181,107,145,153,153,137,243,231,207,227,245,215, 95, 71,159, 62,125,144,159,159,143, 31,127,252, 17, 97, 97, 97,200,202,202, + 18, 45,128,200,223, 66,113,113,241,253,152,152,152, 97, 29, 59,118,220,243,214, 91,111, 89, 76,157, 58,213,117,206,156, 57, 52, + 0,100,103,103, 11, 27, 55,110,204,248,238,187,239,138,243,242,242,102,234,245,250, 8, 67,254,225,153,153,153, 55,191,255,254, +251,220,107,215,174,181,239,222,189,187,252,133, 23, 94, 16,108,108,108, 88,185, 92,206,107,181, 90,117, 92, 92, 28,159,144,144, +224, 82, 84, 84,244, 8, 64, 60,154, 48, 99, 69,101,244,106, 53,195, 48, 43, 8, 33, 1,207,162,143,150, 66,161,112, 5,240,136, +162,168,214,198, 54, 27, 62, 85, 97,179, 44, 10, 11, 11, 81,158, 21, 5,147,180,135,232,104, 70,163,157,141, 57, 44, 45, 45,155, +101,138,138,139,139, 1,101, 58,174, 95,191, 7,112, 28,172,172,172, 96,101,101,245,183, 27,173,250,188,200,191,132,185,117,188, +214,112, 31,173,118, 14,120,221, 84,139,141,243, 70,182,146,122,123,186, 67,147, 22,134,123,169,101, 88,222,179,123, 52, 35,183, + 80,207,155, 54,186,235,184,241, 45, 48,176,119, 55,202,219,197,106,209,186,111,182,189,209, 14,121,239, 70,231, 96,147, 33, 91, + 20,157,139, 68, 1, 57,187, 47,221, 79,155,239,174, 80, 65, 16, 8, 46, 69,100, 34, 34,169,112,119,108, 46, 18,141,217,187,118, + 46, 24,204,130, 62, 76, 8, 49,177, 50, 51, 43,109,231,235,110, 63,184, 87, 39,250,229, 1, 93, 33,101,128,235,191,223,195,226, +111,142,223, 22, 4, 50,242,142,129,205,134, 21, 25,134,181, 13, 84, 69,134,161,190, 86,134, 33, 33,132, 84,100, 29, 54, 28,124, + 96, 24, 42,171, 60,249, 15,103,137, 93, 27,168,226, 47, 33,169, 80, 64,114, 78, 41, 74, 88,103,104,210,211, 1, 34,164, 92,105, +184, 99,117,131,216,219,219, 59,250,180,243,109,181,121,111, 16,116,229,197, 72,188,188, 7,101,133,153,248,108,251,169, 86,110, +110,118, 3,210,211,211,175, 24,113,177,241,253, 53,248,160, 35, 8,192, 72,228, 56,179,245, 8,242,236, 76, 97,175,144, 66, 80, +229, 98,222,219, 83,173,134, 15,153,106, 5, 0,201, 15,238,194, 75,161, 50, 72, 87,103,135,113,175, 14,242,179,134, 94,133,189, +231,238,170,105,224,229,125, 23,162,226, 7,181,181, 54,121,181,175,151,205,234,140,162, 87,144,223,180, 65, 69,171, 34, 90,213, + 17,190, 38,100, 27, 6, 1,124, 91, 1,241,135,111,230,152,141, 31,242,130, 66,202, 82, 20, 41, 75, 7, 49,181,199,182,189, 71, +203,100,122, 24, 60, 19,123,229,217,176,186,199,218,196, 21, 21,231, 9,246, 12, 95, 27,246,223,139, 31,247,116,200,202,202,130, +142, 39, 72, 44, 16, 0,224,183,105, 67,218,241,105,197,130,246,194,186,177,227, 41, 83, 7,217,123, 95,238,187, 76,208,120,100, +147,227, 56, 40, 20, 10, 16, 66, 16, 20, 20,132,228,228,100,228,231,231,131,231,121,188,247,222,123,240,243,243,195,131, 7, 15, + 80, 90, 90,138,156,156, 28,136,136,252,157,168, 84,170,112,149, 74,213,225,189,247,222,155,188,108,217,178,254,102,102,102, 62, + 0,160, 84, 42, 19,245,122,253,213,202,255,167, 49,217,129, 4,192,163,248,248,248,196,248,248,120,167, 3, 7, 14, 88, 3, 48, +169,124, 79, 13,160, 8, 64, 54,154,145,113, 88,101,170, 40,138, 90,241,172,142, 67,149,169,162, 40,170,117, 83,190, 79,211, 52, + 79, 81, 21, 99,231,201,229,114, 92,187,118, 13, 19, 70, 14, 65,204,153, 34, 4, 88,155,163,251,204,121, 56,124,241, 34, 24,134, + 1, 69, 81, 96, 24,198,168,122,132,101, 89, 92,191,126, 29,175, 77, 26, 15, 57, 11, 88, 89, 89,225,189,247,222,195,201,147, 39, +193,178,226, 44,125, 70,176,179,134,225, 50,112, 28, 45, 10,171, 47,238, 89, 35, 5,175,199,233, 61, 95, 33, 56,178, 76,251, 32, + 23,203,253,114,177, 49, 8,165, 66,238, 55,251,230, 95,188, 30,249,229,172,137,129,138, 23, 7, 13,193,139, 3, 7,177,237,187, + 13,248, 24,168,101,180, 6,163,129,177, 54,120, 1,159,238, 60, 23, 59,239,240,229, 56, 10,186, 82, 76, 28,218,141,240, 2, 62, +109,100,103,158,210,180, 50, 53, 63,124,253,214, 45, 27,232,202,144,116,247, 55,147, 22, 62,173, 0, 94,135, 71,143, 30,226,187, +189, 63, 11,151,127,127,176, 95,203,225,173,132, 66, 40, 13,213,172,168, 45, 57, 88,153,201,252, 94,110,111,249,139, 0, 2,107, +133,180, 45, 17,120, 88, 43, 36,109,135,180, 85,252, 66, 8, 33, 22,166,146,182,132,215, 55,170,169,210,114, 59,246,254,176,251, +235,217,179,103,155,229,165,101, 33,163, 36, 18,101, 50, 55,232, 21, 30,136,191,123, 85, 85,174,225, 12,169,196,235, 61,158,121, +121,121, 57,225,161, 5, 56,188,125, 45,244, 90, 13,114,210, 42,188,106, 70, 94, 9, 44,237,221,110,165,167,167, 27,172,169,227, +132,226,113, 83,231, 74, 77, 45, 96,250,218,184, 64, 89,124,190, 6, 93, 92, 45, 42, 46, 26,101,185,136, 9,185,142,129,149,125, + 76, 19, 82,105,120,117,114, 53,104, 59, 45, 76,164,111, 13,127,193, 13,137, 41,153,184, 22,149,190, 55,177, 0, 25,124,108,230, +222,248,140,162,249,163,123,122, 98,195,201,232, 55, 1,253, 65, 99,246,221,223, 17,147, 9, 65,223,138,206,240, 42, 16,160,175, +191, 35, 38, 27,152,105,248,148, 38, 43,197,148,175,127, 73,254,232,232, 31,121,163,151, 78,233,103,217,187,247, 8, 25, 56, 45, + 74, 85, 26,125, 76, 17, 74, 12,213, 44, 81, 9, 0,176,163,114, 1, 0,132,167, 9,251,251,173,188,117,245,224, 28, 15, 7,129, + 0, 87,227, 53, 0,112,107, 86, 15,211, 91, 62,182,244,199,210, 65,159,249,221, 90,221,227,124, 68,166,112,224,106,124,245, 24, + 90, 13,150, 59, 33, 4,122,189, 30,130, 32,192,214,214, 22,249,249,249,200,201,201, 65, 78, 78, 14,226,227,227,155,116, 46, 53, + 3, 81, 83,212,124,234, 50, 15, 96,191, 94,175,223, 95, 84, 84,244, 44, 53, 51,240,244,184, 78,205,218,247,154,205,132,132, 16, +182, 50,154,213, 88,103,248, 6, 53,107, 54, 19, 18, 66,206, 86, 70,179, 26,139,106,213,210, 20, 4, 33,163,107,215,174,182,163, + 70,141, 2,207,243,120,248,240, 33,146, 83, 83, 49,120,254,155,176,182,182,198,213,251,247,241,224,193, 3,172, 88,177, 2,122, +189, 30, 39, 78,156, 72,107, 76,147,101, 89, 93,171, 86,173,164, 99,198,140, 1,199,113, 72, 72, 72, 64,122,122, 58, 22, 47, 94, + 12, 43, 43, 43,132,135,135, 87,107,230,229,229,129,101, 89, 93, 29,209,173,191,226, 92,250,183,243,148,201,106,216,104, 1, 60, +120, 61,138, 47,174,196,166,107,208,233,244,104, 27,157,139,199,209,127, 70,164,182, 49,161,247, 79,223,143,140, 77, 12,191,241, +162, 12, 57, 17, 48,246, 78,226, 97, 62, 50, 45, 76, 74, 75,161, 43,181, 68,194, 47,120,156, 93, 90,246, 48, 31, 70,231,162, 19, +129,167,160, 43, 7, 50,195,112,243,234, 21, 92,190,125, 15,127, 68,196,242, 55,195,227, 14,211, 2, 62,141,201,199,195, 38,220, +133,192,124,228, 6,204,136,120,228,217,205,215,201, 19, 60, 7, 34,232, 97, 53,241, 32,102, 70,247,246,236,214,210,218,179, 34, +146,165,135,205,127,127, 3,190, 54,105, 80, 47, 44, 85,191, 83,118,242,252, 43,165, 69,249, 61, 95, 26,208,203,204,202,127, 56, +242, 30,197,225,225,189,235,170,240,200,248,155, 97,169,250,157,205, 41, 93, 55, 55,183,254, 47, 13,240,195,196,121, 31, 66, 87, + 94,140,132,203, 63,160,172, 32, 11,215,110,153, 35,182,164,164, 23, 0,131, 35, 90,183, 82,184,246, 72, 41, 68,159, 22,146, 20, + 11,104,156,167, 5,142,130,156, 82, 67,208,148,128, 42,207, 67,124,186,182,248,149,237,169, 60, 0, 40,228, 20,107, 70,138, 45, + 13,138, 60,122,217,181, 81, 48,122,236,187, 24, 5, 65,168,152,190, 73, 16,176,109,223,111,241,243, 63,125,173, 11,218,121,218, +116,186,155,158, 67,193,136,144, 63, 69,208,239,143,195,159,180, 85,255,250, 49, 32,232,112,125,145,109,219,126,155, 10,250,161, +137,211,237, 68,102, 32, 29,192,124,176,229, 59, 22,109, 58,247,113,215,139,209,125,151,252,119,180, 37,200, 51,201,208,141,139, +206,226,251,247, 88,151,124, 94, 32,127,182,231,254, 25,217,242, 39, 25, 37,228,238,213,120, 77,132, 49,162, 28,199,129,136,195, +190,139,136, 60,151,148,149,149,205,155, 57,115,230, 14,137, 68,226, 0,128, 18, 4, 1,130, 32,176, 95,126,249,165,132,231,121, +154,166,105,158, 97, 24,238,236,217,179,122,158,231,115,213,106,245, 60, 3,174, 25,241, 11, 22, 44,104,213, 88,134,226,161, 67, +135,170, 76, 86,188, 88, 18, 6,153,172,154,235,234, 40, 23,219, 64,144,246,147, 62,175,173, 92, 9,128, 2,193,170,232, 92, 60, +126,242, 35, 17, 5,200,104,199,232, 22,183,239, 54, 96,101,213,119,140,221, 50, 53,207,143,239,214,193,247, 16, 0,104, 8,255, + 90, 83,246,174, 68,163,122,181,115,183, 94,135, 5, 66, 88,142,144,221,180,128, 99,106, 14, 49,134,100,218,213, 71, 70, 78, 81, +248,240, 0, 43, 2, 84, 52, 25, 86, 55, 23, 86, 14,227, 64, 8, 33,213,205,133, 95,153, 32,175, 88,211,232, 56, 80, 55, 30,107, +135,104,185, 63,230, 94,184,113,119, 30,207, 19,103,134,161,178, 84, 90,110, 71,115, 77, 22, 0,164,167,167, 95, 9,185,152,126, +225,126, 39,167,161,246,138,202, 40, 87, 57,144, 87,142, 11,233,185,101, 87,154,162, 89,168,212,143, 94,182,241,228, 41,153,132, + 97, 65, 72,197,128,162,132, 64,173,227, 11,110,165,112,237, 1,160,131, 45, 92,223, 59,193, 29, 98, 24, 42,185, 49,189,208, 7, +153, 27, 38,174, 11,121, 55, 42,169,112,119, 82, 17, 34, 1, 32,169, 8,145, 71,174, 63,254, 56, 62,171,244,221,200,228,194,175, + 96,100,191, 10, 66,225, 90,183,137, 43,159,122,173,185,199, 51, 54, 19,247, 0,140, 5,210,134, 76, 92,242,221, 18,138,194,179, +154,126, 34, 78,165, 35, 94, 53, 95,168,138,108, 85, 46, 6,163,213,106,161, 82,169,192,243, 60,116, 58, 29,180,226,188,134, 34, + 34,207,140,170,168, 22, 77,211,171,159,161,230, 89,138,162, 70, 0,120,100,196,215, 66,203,202,202, 58, 60,227,221,203,231, 56, +206,160,177, 94,196, 36, 26,131,217,249, 79,253,240, 96, 81,243,239,215,108,221,186, 53, 49,194,176,136,199,243, 95,172,217,162, + 69, 11, 4, 6, 6,194,213,213, 85, 60,158,162,166,168,105,160, 38, 33,132,105,206, 82,143, 38,213,156, 69, 44,163,127, 61, 79, +118,134,159, 91, 21,156,160,197, 99,243,252,241,232,209,163,234, 49,175, 68,158,111,146,146,146, 80, 86, 86,134,140, 12,113,190, + 87, 17, 17, 67,161, 40,138,111,206, 82,143, 38,105,206, 34,150,202,115,107,184, 68,163, 37, 34,242,111,231,202,149, 43,226, 65, + 16, 17, 17, 17,249,223, 49, 89,181,204, 22,133,111,195, 47,213, 0, 0, 32, 0, 73, 68, 65, 84,250,195,127,198,100, 19, 52, 37, +132, 24, 34,106,138,154,162,166,168, 41,106,138,154,162,230,255, 59,205,198,180,159,139,108,198,191, 43, 73, 73,236, 15, 32,106, +138,154,162,166,168, 41,106,138,154,162,230,243,142,216, 71, 75, 68, 68, 68, 68, 68, 68, 68,228,239, 70, 28,246, 85, 68, 68, 68, + 68, 68, 68, 68,164,121, 52, 58,169,180,136,136,136,136,136,136,136,136, 72,211,104,120, 82,105, 17, 17, 17, 17, 17, 17, 17, 17, +145, 38, 99,252,164,210, 34, 34, 34, 34, 34, 34, 34, 34, 34, 6,177, 83, 60, 4, 34, 34, 34, 34, 34, 34, 34, 34,127, 15,181,179, + 14,131,131,131, 73,205,181,136,136,136,136,136,136,136,200,223,201,243,234, 69,196,166, 67, 17, 17, 17, 17, 17, 17, 17,145,230, + 49, 87, 52, 90, 34, 34, 34, 34, 34, 34, 34, 34,127, 13,245,246,209,170, 26,176,116, 96,101,168,110,160,120,172, 68, 68, 68, 68, + 68, 68, 68,254, 1,158,111, 47, 34,246,207, 18, 17, 17, 17, 17, 17, 17, 17,189,200,179,161,170, 51,188,136,136,136,136,136,136, +136,136, 72,243, 16,231, 58, 20, 17, 17, 17, 17, 17, 17, 17,249,155, 13,215, 95,110,180,196,153,205, 69, 77, 81, 83,212, 20, 53, + 69, 77, 81, 83,212,252,255,100,178,106,153, 45, 49,235, 80, 68, 68, 68, 68, 68, 68, 68,164,121, 52,154,117, 40, 34, 34, 34, 34, + 34, 34, 34, 34,210, 52,230, 2, 8,172,124, 28,136, 26, 81, 45, 49,162, 37, 34, 34, 34, 34, 34, 34, 34,210, 60,118, 2,112,169, + 52, 88,103, 0,100,138, 70, 75, 68, 68, 68, 68, 68, 68, 68,228,217, 80,179, 95,214,200, 26,230, 75, 52, 90, 34, 34, 34, 34, 34, + 34, 34, 34,205,164,222, 62, 90, 20,234,207, 28, 8, 49,226, 7,154,146,125, 16, 34,106,138,154,162,166,168, 41,106,138,154,162, +230,255, 59,205,198,180, 67,240,239,227,169, 97, 29, 8, 33, 59,255,142, 31, 22, 83, 95, 69, 77, 81, 83,212, 20, 53, 69, 77, 81, + 83,212,252,127,199, 95, 54, 96,105, 23,192, 84, 60,188,207, 37, 78,149,139,136,136,136,136,136,136, 72,195,252, 53, 89,135,254, +192,127,167, 6, 56,108,215, 71,230, 90, 70, 2,229, 13,125,214,193,193, 97,135, 66,161,152, 90, 94, 94,174,164, 40, 74,168,233, + 0, 1,212,156, 28, 40, 33, 55, 55,183, 95, 99,191, 45,147,201, 54, 58, 57, 57,253,183,172,172,172,156,162, 40, 66, 81, 20, 40, +138, 2,128,167,214, 60,207,167,229,231,231,119,253,151, 91,101,198,222,201,233,119, 9,195,184, 25,251, 85, 94, 16, 30,231,100, +103,247, 50,226, 43,107, 41, 10, 75, 43,126, 22, 95, 0,248,240,185,187,243, 0, 24, 67, 62, 23, 0, 88,196, 1, 19,121,154,126, + 83, 2,108,209, 8,194,118, 0,160, 0,190,169,191,173, 9, 69, 43,138,160, 19, 69,193,138, 16, 20, 19, 10,247,228, 61, 16,255, + 15, 29,138,113, 18,137,100,180,165,165,165,121,126,126,254, 21, 0,135, 0, 76,178,179,179, 27, 80, 82, 82, 82,166,215,235, 79, + 2, 56,222, 20,225,126,157,240,190, 76, 42,153,165,214,233,215,223,184,135, 31, 6,116,129, 29, 39, 96,157,137,148,237,167,209, +114, 95, 92,191,143,221, 70, 74, 82,149, 75,213, 53,195,232, 73,197,142, 26, 88,238, 0,112,194,198,198, 87,238, 96,249,171, 68, +198, 60, 46,202, 46,155, 58, 62, 39, 39,117, 66, 51,202,253,127, 17,123,123,251, 25, 52, 77,127, 78, 8, 1,207,243,203, 11, 10, + 10,246, 60, 35,233,229, 0,172, 43, 31, 23, 1,248,188,153,122,201, 0, 60, 43, 31,167, 0,240, 18,235,245, 38,179,237,231,159, +127,158, 63,104,208, 32,108,216,176, 1,219,182,109, 75,202,205,205, 93, 7, 96, 47, 0,237, 63,160, 35, 82, 31,237,128, 17, 95, + 14,235,193,235,127,252, 84,168,241,242,224,122,254,204,223, 79,155, 54, 77, 71, 8, 33, 15, 30, 60, 32, 90,173,150,232,245,122, +194,113, 28,225, 56,142,232,245,250,234,197,205,205, 45,253,137,175, 63,165, 73,211,244,166, 87, 94,121,165,148, 16, 66,194,194, +194,136, 74,165, 34, 26,141,134,104,181, 90,162, 86,171,137, 74,165,170,181, 56, 57, 57,101, 55,164,105,105,105, 25,102, 99, 99, +147,109, 99, 99,147,109,107,107,155,109,107,107,155,109,103,103, 87,189,216,219,219, 87, 47, 14, 14, 14,217, 14, 14, 14,217,182, +182,182, 97,141,109,103, 37,195, 0, 92, 49, 96, 25, 86,199,119, 7,215, 52, 90, 46, 46, 46,217,164, 9,184,187,187,167, 26,176, +157, 85, 56, 81, 20,248,170,239, 82, 20, 4,185, 92,238, 89,243,125, 60, 29,233,106, 52,164,236,234,234,250,138,139,139, 75,136, +139,139,203, 69, 87, 87,215, 87, 12, 56,197,106,105, 90, 88, 88,132,217,219,219,103, 59, 59, 59,231, 84, 45, 46, 46, 46,181, 22, + 87, 87,215,234,197,201,201, 41,219,198,198,166,222, 50, 34, 0, 83,223,114, 25, 96,229,192,139, 44,195, 4, 59, 57, 57,149, 68, + 68, 68,240,132, 16, 66,211,116,122,213,103,140,217,247, 39, 77, 86,249,117, 44,207,187, 36, 15, 45,123,188,174, 56,239,146, 60, +180,252, 58,150,107, 66,209,170,169,154, 6, 82,151,230,244,233,211,167,223,203,206,206, 78, 47, 42, 42,202,220,190,125,123,156, +137,137,201,245,237,219,183,199, 21, 21, 21,101,102,103,103,167, 79,159, 62,253, 30,128, 5, 70,104, 2, 0,122,117, 66,207,217, +227, 92,202,239,157,120,173,252,197,110,236,221, 62, 1, 8, 28,210, 75,154,190,249, 3,255,242,171,187,250,150, 15,122,129,142, + 52, 82,147, 98, 89,182,183,167,167,231, 44, 7, 7,135,105,149,203,107, 85,139,179,179,243,107,206,206,206,175,217,216,216, 76, +104, 72,243, 40,192, 24,178,120,152,152,244,158,224,227, 89,158,188,122, 21,137,120,251, 77, 50,171,165, 71,201,120, 71,199, 22, +255, 64, 25,253,165,154,142,142,142, 25,122,189,158,232,116, 58, 98,103,103,151,241, 12,183,243, 43, 66,200, 87,132,144,175, 0, +124,245, 12, 52,171,175,103, 70, 24,236,134, 52, 77, 88,154, 94,162,144,201, 46,202, 89, 54, 71,206,178, 57, 10,153,236, 34, 75, +211,239, 2, 48,249, 95, 42,163,191, 64,211,220,193,193, 33,113,227,198,141,164,188,188,156,148,151,151,147,141, 27, 55, 18, 7, + 7,135, 68, 0,230, 70,104, 54, 85,231,121,138, 96,213, 90,170,154, 14,159, 73, 68,203, 31,232,250, 98,167,214,199, 22,205,152, + 8, 33,104, 35,213,200, 29,211,247,189,186,118,157,181,119,239, 94, 0,192,212,209,163, 49,180,123,119, 88,152,155, 65, 38,171, +216, 28,138, 80,144, 74,164, 24,179,248, 29, 67,126,254,139, 49, 99,198, 76, 9, 10, 10, 50, 7,128,109,219,182, 97,220,184,113, +176,181,181,133, 66,161,128, 84, 42,133, 68, 34,169,181,110, 12,134, 97,220,211,211,211, 29, 77, 76, 76,170,163,108,130, 32,212, + 90,106,206,202,205,113, 28,218,180,105, 99,232,225,250,160,184,184,184,191, 82,169,172,214,168,107,241,241,241, 1,128,243,134, + 8,126,254,217,167, 16, 56, 37, 88, 22,224, 56, 64,163,163, 33,144, 58,205, 13, 22, 44, 88,208,172,217,196, 71,142, 12,164, 40, +138, 10, 10, 15, 15, 63,150,147,147,227, 45, 8,252,156, 38, 70,186,222,120,248,240,161, 57, 0,248,250,250, 46, 0,112,204,152, +237, 96, 89,214,253,254,253,251,142,114,185,188,222,200,101,141, 8, 38,116, 58, 29,186,116,233,194, 25,243, 27, 78,128,103, 1, + 77,207,233,252,194, 11,115, 87,142, 25, 99,242,251,239,191,155,208, 52, 13,142,227,240,229,151, 95,114,132, 16,235,118,128,101, + 52, 80,210,128,204, 50, 0, 51, 42, 43,131,221, 0,190,172,229, 22, 8, 58,169,244,242,192,132,178, 49,221,123,180,120, 31,209, + 81, 17,221, 91,154,159,128, 5,171,137, 7,254,222,168,150,165,165,229,232, 13, 27, 54, 56,236,222,189,187,228,193,131, 7,186, +237,219,183, 59,204,155, 55,207, 66,167,211, 97,254,252,249,185,126,126,126,210, 13, 27, 54, 56, 28, 63,126,252, 69,165, 82,185, +213,168,242,162,240,233,164,209, 67,161,214,211,208,235, 57, 7, 23, 7,139,253,139,166, 15,148, 16,162,197,190,147,225,208,115, +194, 15, 70, 70,178,122,141, 31, 63,190,229,193,131, 7,217,216,216, 88,182,109,219,182, 16, 4, 1, 60,207, 67,175,215, 3, 0, + 4, 65, 64,235,214,173,155,125, 92,102, 1,190,246, 78,182, 23,123,141, 24,110,234, 98, 34,135,109, 97, 46,102, 75, 89,139, 61, + 10,205, 1, 0,189,159,171,200, 46, 33, 96, 89, 22,169,169,169,112,116,116, 52, 21, 4, 33, 19,192,170,194,194,194,157,120,126, +233, 46, 99,217, 99,251,126,216,228,220,163,119,111,198,201,197, 17,113, 15, 83,192, 82,252,224,251,127,132, 15,156,245,250,146, + 69, 90,142,123, 5,192,239,207,219,142, 59,247, 94, 48,150,162,153,109, 20, 17,240,201,230, 83,165,107,191,216,168,152, 63,103, + 58,179,120,241, 98,120,120,120,120,143, 29, 59,246, 11, 0,175, 55,170,211, 99,193, 88, 48,244, 54, 16,130,149,223,157, 42, 93, +243,197, 70,197,235, 77,208,249,151, 83,239,127,164,217, 70,203, 31,104,217,222,195,241,194,218,165,175, 75,200, 47, 63,210,229, +249, 57,245,126,214,193,193, 97,199,203, 47,191, 60,117,207,158, 63,163,209,189, 2, 2, 48,246,197,190,112,180,179,130,194, 76, + 86, 81, 29, 9, 20,238, 61,120,108,144, 33,240,240,240,152,127,236,216, 49,243,154,102, 66, 42,149, 86, 47, 53, 77, 86,213, 82, + 85, 1, 55,132,137,137, 9, 66, 66, 66,192,178, 44, 24,134, 1,203,178,213, 75,205,231, 12,195,192,201,201,168,174, 75,235,172, +172,172, 58,150,150,150, 90, 22, 21, 21,193,211,211,179, 4,192,253, 26,239,119,204,205,205,181, 52, 70, 80,224,148, 88, 60,219, + 31, 18,237,109,104, 37,221,161, 98,251,224,230, 31, 49, 8, 62,127, 5,233, 25, 89,232,219,179, 51,166, 77, 30,143,139, 23, 47, +130,231,141,110,233,200, 38, 4, 95,140, 26, 21,248, 62, 64, 81,131, 7, 15, 46, 90,184,112, 33, 29, 27, 27, 59,101,236,216, 49, + 1, 15, 31, 62,170,140, 42, 82, 75, 9,193, 38, 0,217, 6,234,202, 0,224,234,213,171, 0, 32,111,202,185, 39,151,203,113,235, +214, 45, 84, 53, 19,211, 52, 13,154,166,193, 48, 12, 78, 63,178,135, 82, 75,163, 60, 59, 18,111, 6,122,194,199,199, 7, 52,221, +120,151,196,129,128,201, 77, 96, 44, 37,145, 44,118,113,117,245, 30,208,178,165, 34, 36, 36,132, 1, 0, 47, 47, 47,146,153,153, + 89,116,242,228,201, 82, 22,216,230, 69,200,222,134, 76,150,135,135, 71,159,244,244,244,207,171,142, 57, 69, 81, 95,180,104,209, + 98, 69,117,185, 9, 2, 86,253,160,148, 44, 90,244,182,180,199,192,143, 0, 0, 61, 70, 29, 68, 73,194, 90,127,170, 96,153,213, +223,125,149, 40, 41, 41, 57,220,186,117,107, 38, 63, 63,255, 38,128,100,189, 94,255,193,254,253,251, 29,103,207,158,157,115,224, +192,129,117, 0, 92,215,175, 95, 63, 80,169, 84, 30, 49, 70,183,111, 71,140,120,161, 99, 64, 79, 79, 15, 15, 92,185,249, 59,164, + 50,137,245,130, 25,129, 48, 55,103,241,213,238, 51, 66,114, 90,193,194,235,247,177,215, 8,147,213,125,252,248,241,222, 7, 15, + 30,148, 1,192,253,251,247,145,149,149, 5, 7, 7, 7,152,154,154, 66, 34,145,128, 97, 24, 72, 36,146,103, 98,178,172, 60,236, + 66, 79,156, 56,105,106,107,107,141,205,239, 44,194,180,156,108, 88, 91,152, 67, 95,166,244,126,206, 42, 10,223,126,253,250,153, +240, 60, 15,165, 82,137,203,151, 47, 91,153,154,154, 90,185,187,187,175,108,168, 18,169,227,218,153,173, 86,171, 29, 43, 31,231, +168,213,106, 39, 0, 37,114,185,188,234, 58, 93, 86,185, 54,180, 57, 49, 25, 79, 55, 19,166, 80, 20, 85,243,181,166,210,173,123, +183,142, 33,199,131,126, 50, 47, 46,205,130,181, 77, 14,104, 20, 99,231,206, 45, 48, 53,181,196,202,149,203,216,199,131, 95,116, + 27, 54,226,149,144,168,152,184,193,207,157,217, 34,212,206,193,163,166,218,154, 42, 44, 42,235, 18, 61,246,236, 90, 4,154,166, +177, 98,197, 10,180,111,223,126,110, 84, 84,212, 71, 0, 10, 26,150,193,206, 14,253, 95,181,149,153, 84, 20,177,192,235,177,253, +208,187, 21, 58, 31,206,195,164, 81, 62,115,223, 27,159,120,174,125, 75,148, 86,222,152,171, 36, 52, 82,168, 30,168, 54, 12,193, +193,193, 3, 2, 3, 3,175,212,247,252, 95,128, 11,254, 28, 63,171,150,249, 98,131,131,131, 73, 96, 96, 32, 85, 99,231,106, 61, +111,136, 78,128,189,141,149, 34,100,219,170, 69,230,236,237, 51,140, 42,229, 17, 50,212,181, 42,242, 90, 41,154, 10,133, 98,234, +158, 61,123,106,133,148, 60,157, 28, 33,149, 74, 32,145, 82,176,238, 87, 49,122,125,209,181, 96, 80, 84,189, 38,171,150,166, 82, +169, 84,223,189,123,215,124,247,238,221,112,116,116,132,183,183, 55, 20, 10, 5, 76, 76, 76,106,153,171,154,134,171, 14,163, 85, + 75,179,234,125,150,101, 65,211, 52, 46, 94,188, 8,142,227, 48,126,252,248,167, 76, 22,203,178,245, 25,183,250,210, 83,207, 3, +184, 79, 8,233, 95, 89, 1,223, 7, 48,160,198,251,195, 28, 28, 28, 62, 0,176,206, 80, 77,134, 33, 96,212, 55, 33,184,111, 4, +155,186, 8, 90, 73, 39, 92,186, 30,142, 61, 59, 54, 0, 0,188,219,118,195,132,177,129,213,209, 56, 3,183,179, 26, 55, 55,183, + 67,185,185,121,195, 95,124,241, 69, 20, 22, 22,234, 87,173, 90,133,142, 29, 59,194,215,215,215,160, 50,170,231,206, 57,251,254, +253,251, 30, 42,149, 10,132, 16, 67,204,217, 83,154, 20, 69, 97,255,254,253, 80,171,213, 79,125,216,102,192, 26,188, 59,206, 11, + 51,223,220,139, 47, 30, 28,193,214,173, 91, 27,220,119, 5,208, 81,109,213,122,147,140,225, 58,174, 91,246,134,124,218,180,105, +204,204,153, 51,145,146,146,130,217,179,103,171, 47, 94,188,168,205,202,204, 60, 41, 19,132,205,186,218,198,184, 94, 77,185, 92, +190,239,252,249,243, 56,114,164,194,151,196,197,197,161, 77,155, 54,102,181, 76,114,193, 81,148, 38,111, 70,232,233, 88,244, 24, +117, 16,161,167, 39,131, 47, 58, 35,233,218, 6,197,198, 28,207, 38, 80,151,230,145,252,252,252,106, 19,117,224,192, 1,211, 3, + 7, 14,140, 1,112, 10,192, 17, 0, 40, 40, 40,248,198, 72, 77,128,194,204, 87,199,141, 1, 43,181, 64,236,163, 52, 12,232,213, + 5, 78,142,142,184, 31, 19,143,228,244,130,108,138,194,140, 97,189,101,235, 84, 42,237, 71,215,238,225,251, 70, 52, 41,119,119, +119,223,163, 71,143, 74,107, 68,160,171,255,227, 12,195, 84, 63,175, 50,222, 77, 57, 63,171, 76,150,133,187,121,232,167, 91,250, +152,133, 70, 28, 64, 27,175, 17,176, 25, 17,136,239, 47, 92,192,195,168,104,181,182,156,123,233, 31, 40,163,191, 74,211,119,220, +184,113, 55,127,250,233, 39,235,212,212, 84, 92,189,122, 21,222,222,222, 40, 47, 47, 55,228,134,183,150,166, 90,173,118,172,250, + 14, 69, 81,142, 85,129,119,173, 86, 91, 85, 24, 85,127, 68,235, 26,159,179,110, 64,211,179,198,231,170,204,149,215, 51,216,119, +153,137, 84,122,244,196,241, 67,230,209,177, 87,209,185, 83, 79,152, 91,181,131,192,103, 33,191,160, 12,133,143, 50,240,217,103, + 95, 96,229,170,229, 56,245,115,144,185,159,127,167, 99, 90,142,107, 13, 64,253,220,148, 59, 69,230,134,156, 62,176,141, 34, 2, + 84,217,177,114,137, 50, 81, 49,117,242, 43,204,196,137, 19,113,234,212, 41, 68, 69, 69,109,107,192,100,133,212,136,204,207,141, +188,122,100, 27, 8,129, 42, 39, 86, 46, 85, 37, 42,166, 79,153,192, 76,155, 52, 20,183,127,219,132,161,157, 19, 35, 93, 29, 49, +182,176,210, 98,179, 12,242,229, 38,184, 65, 66,113,187,134,217,186, 12,128,170, 97,176, 46,227,207, 62,152,255, 6, 70, 86, 26, +171,185, 79,222,152,176, 77, 49, 88, 0,208, 6, 48,167,100,210,208, 61, 43,223,112, 85,164, 68,177,154,200, 91,200,208, 8,100, +123, 18, 39,116, 1, 76,239, 0,170, 39,191, 83, 94, 94,174,140,143,143, 55,157, 49,118, 44,122, 7, 4,192,197,206, 14,173,221, +221, 97, 42,151, 65, 38,149,212,186,101, 53,184, 13,129,162,136,159,159, 31, 70,141, 26, 5,137, 68, 2,133, 66, 1,115,115,115, +200,100,178, 58,163, 89,134,222,229, 18, 66,192, 48, 12, 34, 35, 35,145,156,156, 12,107,107,107,220,184,113, 3, 47,189,244,210, + 83, 81,173,154,230,204,152, 16,125, 29, 21,127,149, 17, 59,111,140, 22,207, 83, 40, 35,157, 96,146,180, 16,229, 84, 23,104, 52, + 28, 52, 26, 13,190,191,174,195,239,241, 74,232,116, 90,104, 52,154,134,126,179, 62,104, 87, 87,215,169,173, 91,183, 94, 48,121, +242,100,189, 76, 38,131, 82,169, 68,121,121, 57,162,162,162,244,195,135,143, 40, 26, 53, 42,208,234,204,153, 51,164,178,233, 48, +219, 8,237,124, 55, 55, 55,143,202,230,217,252,166,156,213, 20, 69, 85,155,152, 39,153,241, 77, 52, 88,166,162, 76,182,109,219, + 6,158,231, 65, 8,169,183,144,212, 20,245,235,170, 53, 95, 91,173,223,248, 3,172,108,157,112,229,202, 21,254,220,185,115,165, + 20, 16,247, 48, 42,234,155,255, 0,103,143, 2, 58, 99,182,175,176,176,208,212,219,219, 27,238,238,238, 16, 4, 1,122,189,190, + 58,250,146,159,159, 15,149, 74, 5, 91,179, 34,180,178,115, 7, 87,122, 25,153,145,159,192,197, 60, 22,123,207,107,245, 47,248, +226,222,255,192,133,227,199,202,165,153,119,205,112,115,116,246, 0, 77,244,200,200,201,199,152,145, 67,193, 72,205,241, 56, 53, + 15,157,218,181,116,153,242,159, 62, 46, 12,197, 97,233,186,131, 11, 0,225,251,198,228,202,202,202,248,216,216, 88,220,191, 95, +225,119, 45, 45, 45, 97,102,102, 86,235, 63, 78,211,116,179, 34, 90, 85, 38,107,205,182,151,204,104,137, 18, 37,124, 8,118,239, + 15, 71, 39,191, 64,108, 15,253, 67,205,103, 23, 12,254, 74,173,142, 59,244, 47, 14,102, 56, 59, 59,207, 19, 4, 97, 37, 33,164, +168,111,223,190, 78, 7, 15, 30,180, 73, 79, 79, 71,120,120, 56, 86,172, 88,145,203,243, 60, 71, 8,161, 8, 33,159, 60,131,159, + 19,106, 24,172,103,137, 68, 97,130, 55,237, 45,169,209, 44,109,233,205,149,148, 61,206,211,146,147,229,156,240, 29, 0,125,131, + 23, 55,154,254,111,208,225,109,174,246, 14, 2, 6, 58,188,136,204,108, 29,214,188, 51, 29,249,249,165,248,126,215, 90, 0, 50, +232, 56, 6,253, 7,190, 2, 71, 71, 55,204,157, 51,215,121,219,142,237,111,112,130,240, 21,158, 19,178,110,110,253, 25, 64,136, +131,131, 67,212, 27,115,231, 58,120,123,191, 6, 19, 19, 19, 28, 58,116, 8, 7, 55,111,230, 55, 2, 19,228,192,165,249,192,207, + 13,234,132,254,169,179,104,254,124, 7,127,255,249,144,203,229,248,237,220,143, 80,103,237, 47, 29,217, 27,186,114, 53, 70,182, + 24, 69,108,147, 78, 83, 5, 18, 9, 30, 1,128,196, 4,153, 0,158,108, 6,251,183, 25,172, 42,206,224,207, 76,195,185,181, 34, + 90, 77,190,118, 74,100, 17,187,222,158,228,229, 4, 13,165,189,126, 26,233, 26,129, 95,255, 80,199,220, 41, 38,239,198,212, 97, +178, 42, 79,108,193,211,211, 19, 47,118,237,138,177,253,250,129,101, 89,152,200,164,176, 48, 49, 5,225, 43, 34, 89, 85, 77,135, + 13,212,137,168, 43,250,100,103,103, 7,169, 84, 90,109,176,140,136,102,213,169, 41, 8, 2, 88,150,197,253,251,247,209,183,111, + 95,120,120,120,224,200,145, 35, 24, 54,108,216, 83, 77,137,198,154,172, 42,163,245, 68, 51,222, 48, 0, 85,145, 44,163,140,150, + 90, 75, 33, 79,219, 9, 20, 21, 0,142, 3,120, 2,104,212,106, 16, 2, 16, 2,232,117, 90,168,213,234,234,223, 52,164, 73,214, +217,217,217,211,212,212,116,245,251,239, 47,245,239,212,169, 51,114,115,115, 33, 8, 2,204,204,204, 80, 94, 94, 14, 75, 75, 75, +244,238,221,251,241,234,213,171, 51, 9,193, 92, 35, 77, 86,179,169, 58,230, 23, 46, 92,168,213,108, 88,181, 40, 51,211, 48,243, +173, 3,144,177, 21, 77, 75, 85,125,120, 26,186,238, 14,234,223, 7, 55,239,196,113,255, 93,186, 73, 35,201, 15, 95,231, 44, 8, +123,210,154,177, 95,132, 16,228,229,229, 33, 59, 59, 27,163,199,140,193,193,159,126, 66, 82, 82, 18,218,181,107,135, 65,131, 6, +193,209,209, 17, 73, 73, 73,248,253,154, 6,154,194, 2, 20,104,195,161,176,232,129, 19, 87,226, 53, 43,182,233,226,255,193, 11, +198,104, 0,211, 45, 45, 45,125,202,203,203, 51, 57,142, 59, 10,224, 40,128, 9, 44,203, 78, 80, 40, 20, 46, 37, 37, 37,137,168, +200, 38, 58,217,152,152,169,137,137,157,220,196, 18, 2,167, 1,203,178,240,240,240, 6,225,181, 40, 44, 81, 97,198,196, 81,184, +115, 63, 6,231, 46,221,230,244,122,225, 91, 67, 14, 43,195, 48,196,215,215, 23, 57, 57, 57,144, 72, 36, 48, 53, 53,133,185,185, + 57, 62,252,240, 67,108,222,188,185,218,100, 53,213,104,205, 2,124, 45, 61,205,111,127,190,165,194,100,101,101,100, 34, 59, 77, + 2, 7, 59, 39,124,187,121,163,178, 48, 41,171,199, 15, 64,220,191,189,146, 21, 4,225,147,244,244,116, 71,150,101,157, 57,142, + 67,106,106, 42,194,194,194,176,112,225,194,236,252,252,252,129,104,226, 62,154,152,152,228, 84, 69,178, 42,155, 14,235,107, 78, + 44,170, 17,201, 42,106, 64,178,190,102,194,150,222,238, 22, 23,119,109, 88,236,217,173, 71,111, 90,193, 90, 22,150, 61,202,234, +123,253,234,149,222, 11, 55,124,255, 70,114, 97,217, 80, 0, 9,245,137,202, 37,146,225, 61,251,244, 97, 65,178,193,202,250,226, +139,245, 19,145,155, 87,130,194,130, 82, 72,165,102,208,234, 25,240, 2,133,222,125,251,225,199,189,135,209,126,206,108, 70, 38, +145, 12,225,180,218,231,198,104, 85,178,246,187,239,190,243,244,243,243,195,158, 61,123,112,105,223, 62, 76, 43, 46,198, 21,154, +102,244, 18,137,253, 89,189,126, 39, 26, 49, 90, 53,117,218,183,111,143, 31,126,248, 1,251,247,239, 79,153,250, 82,206,177,197, + 83,225,168,211,225,229,240, 7,176,109, 49, 10, 8,127, 0,219, 23,252,208,154, 99,241,136,162,106, 15, 7, 21, 28, 28, 60,160, +230,250, 95, 70, 38,234,105, 98,103, 1, 12, 12, 14, 14, 38, 53,215,141, 94, 56, 29,218,204, 95, 59,212,199, 43,160,149, 39,165, + 63,178, 9,169, 74, 78,251,209, 3,157,236, 97, 25, 89, 28, 3,108,108,224, 14,130, 48, 12, 3, 11, 83, 83, 56, 88, 91, 87,132, +249,105, 26, 16, 0, 65, 15, 80,124,133, 1, 32, 2, 5,194, 27,117,193,128, 76, 38,171,179,227,187,177,125,179,106,106,150,150, +150,226,241,227,199,152, 59,119, 46, 20, 10, 69,133,115,207,202,130,151,151, 23, 88,150, 69,122,122, 58,126,251,237, 55,248,248, +248, 64, 46,151, 27,229,182,106, 68,151, 58,162, 34,203,176, 99,102,102,166,165,139,139, 11,140,142,104, 9, 4,229, 26, 10, 90, + 45,143,135, 15, 31, 34, 35, 35, 3,143, 19, 31,161,155,178, 4, 4, 12, 8, 33, 70, 69,180,220,220,220, 2, 90,182,108,185,125, +221,186,117, 82,119,119,119, 16, 66, 96, 99, 99,141,242,242,114,228,229,229,163, 93,187,118,240,240,240,192,186,117,235, 0,224, +224,223,109,178,158, 56,167,170,141, 86, 77,195,245,214,127, 60, 81, 80, 96, 14,134,161,171,141,115, 35,125,180,164, 0, 48,112, +232, 56,246,226,185,179,102, 28,176, 58,139, 97, 86,179,141,151,163,158, 23, 4, 69,125,239,167,166,166, 66, 34,145, 32,232,232, + 81, 20,100,103,163, 83,167, 78,232,222,189, 59, 30, 61,122,132, 59,119,238,192,206,206, 14, 14,238,189,112, 37, 81,135,232, 12, + 21,172,172,172, 16,159, 70,255,147, 67, 6,204, 25, 60,120,240,138,111,190,249,198,209,217,217, 89,146,155,155,235,183,101,203, +150, 78, 91,182,108, 89,244,198, 27,111, 56,189,241,198, 27, 54, 14, 14, 14,108, 86, 86,150,239, 59,239,188,243, 66, 72, 72,136, + 15,128,175, 27, 18, 52, 51,179,176,101,164,102,160, 40, 22,214, 86, 54, 96,101,102, 16, 56, 22,188, 0, 88, 90, 57,224,230,157, + 32,220,136, 40,157,151,147,143,163, 6,197,199, 42,203,221,206,206,238,169, 72,245,194,133, 11,177,107,215,174,234,102,196,166, +154,172, 53, 91, 94, 50,167, 42, 77, 86, 86, 42, 11, 74,227,131,211, 63,223, 42, 42, 76,202,234,251, 60,152,172,170,107, 28, 33, + 4,137,137,137, 40, 47, 47,199,181,107,215,240,201, 39,159,228, 62,105,178, 28, 29, 29,231, 88, 90, 90,174, 42, 43, 43,251, 34, + 43, 43,107, 83,163, 55,126, 21, 38,170,234,113,213,186,206,230, 68, 3, 55,213,171,174, 72,150,135,139,201,249, 59,215, 14,120, + 89,145,123, 20,146,231, 2, 15, 75,162, 44, 66, 29,251,143,232, 54,146,238,178,245,211, 22,221,231,125,120, 62,181, 68,237, 87, + 95,100, 75,224,249, 46,102,230, 22, 0,114, 16, 30,118,185,218,100,229, 23, 20, 67,163, 99,160,209, 82, 80,235,104,188, 56,248, +101,108,222,190, 31,233, 57, 5,224,121,190,195,115,102,178,108, 3, 2, 2,230, 79,152, 48, 1,171, 87,175, 70,200, 55,223,104, + 95,167,168, 18, 22, 32,103,120, 30, 2, 33, 20,109, 88, 39,246, 90, 58, 95,125,245,213,207, 0, 38,173, 91,136, 94,133,101,152, +225, 58,138,216,182, 24, 85,241,193,241,239, 19, 0,176,205, 13,169, 93,101, 6, 6, 6, 82, 85, 45,107,198,182,176,253,175,195, + 6, 6, 6, 94, 9, 14, 14, 70,205,117, 67, 95,176,112,242, 27,241,222,146, 5,235,187, 13,235, 71,101, 46, 25,130,130, 18, 53, +183, 44, 90, 39, 75, 83, 53,108,178,106,242,222,150, 45,184, 19, 87,241, 63,118,119,116,196,210, 41, 83, 64, 56,224, 70, 84, 52, + 14,135,132, 96,226,224,193, 48, 51, 49, 49, 56,178, 33, 8, 66,157, 81,172,154,209, 44, 99,163, 78, 69, 69, 69, 56,122,244, 40, +186,119,239, 14,133, 66, 1,150,101,209,177, 99, 71,196,196,196,160,101,203,150,160, 40, 10, 39, 78,156,192,216,177, 99,145,144, +144,128, 94,189,122,153, 39, 39, 39, 27,109,180,162,163,163, 45, 9, 33,253,171,162, 31, 77, 69,163,209, 32, 54, 54, 22,163, 70, +141,130,141,141, 13,220,220, 14, 34,228,252, 1, 40, 2,166,129,162, 96,148,209,226,121,126,214,200,145, 35,165, 20, 69, 65,165, + 42,135,137,137, 41,204,204,204, 97, 97, 97, 9, 95, 95, 63,100,100,100, 96,216,176, 97,218,248,248,248,173,153,153,153, 71,140, +221, 86,127,127,127,179,164,164,164,105, 45, 90,180,144, 1,128,169,169,105,187,150, 45, 91,190,155,144,144, 80,106,108, 84,171, +202, 96, 81, 20, 5,134, 97,170,141, 22, 75,211,112,113,118,172,126, 94,217, 63,141,106, 64,171, 36, 61, 95, 35, 7, 0, 79, 79, + 79,108,222,113,138, 30, 57,114, 36, 22, 45, 90, 4,189, 94,143,173, 91, 43,146,236, 38, 79,158, 12,157, 78,135, 99,199, 42,146, + 36, 89,150,109, 48,108, 18, 22, 22,134,240,240,112,232,245,122, 20, 23, 23,227,151, 95,126,193,149,171, 87,113,232,196,175, 72, + 74,124,132,142,126, 94,152, 61,123, 22, 36, 18, 9,246,238,221,139,190,125,251,254,163, 23, 4,137, 68, 50,117,215,174, 93, 46, +123,246,236, 41, 58,113,226,132,178,103,207,158,242,141, 27, 55, 58,110,222,188,217, 65,171,213,226,237,183,223,206,185,125,251, +182,102,204,152, 49,102, 59,119,238,116,105,213,170,213, 16,142,227,234, 50, 90,102, 0, 38, 2,120,173,176, 84,203, 22,149,170, + 32,112, 90, 36, 38, 61, 70,113,153, 22, 2,175, 67, 74, 90, 6,202,212, 60,242, 11, 74,209,177,203,208,239, 46, 95,190,188, 92, +167,211, 45, 3, 16,220,216,118, 70, 69, 69,225,246,237,219, 72, 74, 74, 66, 98, 98, 98,109,167, 56,103, 14,246,239,223,111,116, + 68,171,110,147,197,128,210,180, 68,240,137,208,162,156, 71,153,207,141,201,170,188, 6,173,116,113,113, 89,233,226,226, 98,114, +225,194, 5,171, 22, 45, 90,128,227, 56,237,147,145,172,129, 3, 7,126,180,107,215, 46,151,150, 45, 91, 46, 4,176,233,127, 97, +219,105, 26,115,190,216, 54,223,222, 66,150,146,129,135, 95, 87,142, 37,200, 0,229, 37,192,229,159,192,246,249,248,241,194, 49, +239,219,124,176,103,245, 28, 1, 66,189, 25,178,241, 9,169,216,182,109, 51, 22,191, 61, 3, 63,126,255, 5, 4,129,133, 70,207, +192,211,187, 39, 52, 58, 1, 20,205,162, 83,151,174,184,116,249, 26, 36, 52,112,116,207,182,231,204,103,161, 32, 50, 50,114,235, +137, 19, 39,222, 92,180,104, 17, 4, 65,144,173,218,182, 77,149,155,155,187, 22,198,141,127,245,164,206,216,109,219,182,197,125, +176, 57,247,231,197, 83,193, 36,157,166, 10,194, 31,192,118,252,251, 4, 65,235, 41,188,224,135, 2, 69,221, 85,252,213, 39,214, +207,135,209,170,114,146, 53,215,117,209,165,141,207,167, 86,182, 54,179,104, 11, 55,251,165,139, 94,103, 19,178,212, 56,214, 98, + 74,217,111,251,190, 53,203,226,228,223,197, 67,189,209,152, 31, 62,252,219,111,213,143,191, 60,120,176,206,247, 50,199,143, 55, +248,206,172,190, 40,150,177,145, 44, 0, 80, 40, 20,214, 67,134, 12,193, 75, 47,189,132, 87, 94,121,165,186, 79, 86,231,206,157, +113,232,208, 33,140, 27, 55, 14,119,239,222,133,139,139, 11,218,182,109,139,182,109,219,226,236,217,179,198, 94,228,192,243, 60, + 2, 2, 2,170,178, 14, 59,166,165,165, 89, 54,181, 32, 53, 26, 13,242,243,243, 97,107,107, 11,153, 76,134, 30, 61,186,227,205, +183,122,192,222,229, 7, 4,248,251, 65,169, 84, 86,167,191, 27, 80,217, 6,180,110,221, 26,185,185,185,200,205,205,133,131,131, + 3, 92, 93, 93,225,236,236,140,175,191,254,154,108,218,180,233,156, 78,167,219,154,151,151,103,116, 36,203,217,217,185, 31, 69, + 81, 31,169, 84, 42, 89,141, 59, 92,153,131,131,195, 73,149, 74,181, 54, 51, 51,211,224,142,160, 20, 69, 65,167,211,129,162, 40, +156, 73,116,133, 82, 75,161, 36, 45, 28,139,254,227, 85,203,120, 73, 36,146, 70,155, 75, 9, 33,202, 73,147, 38, 57,122,120,184, + 35, 53, 62, 10, 65, 65, 4,223,124,243, 77, 85, 86, 36,226, 42,111, 12,170,158, 15, 26, 52, 8,222,222,222, 32, 70,140,149, 33, + 8, 2,238,223,191,143,131, 39,175,192,197,203, 31, 41, 15, 99,113,231,236,105,180,112,176, 69,251, 46, 93,161,215,235,155, 53, +244,198,179, 64,175,215,239,110,211,166, 13,209,106,181, 87, 0,108,142,136,136,152,145,153,153,249,246,169, 83,167, 92, 39, 76, +152,144,113,250,244,233,141, 0,246, 68, 68, 68,204,255,236,179,207, 94,226, 56,174,206,108, 65,134, 97,126,124,231,157,119, 6, + 78,152, 48,129,146,210,122,237,133,243,123, 89,142,211, 83,239, 45,219,205, 95,190,126,133,230, 56, 61,245,202,164,119,132,179, +191, 69,208,243,222,250,146,239,220,115, 36, 34, 35, 35,157, 3, 3, 3, 63,211,235,245, 13, 26,173,170, 72, 85,125, 17, 74,134, + 97, 48, 99,198, 12, 28, 58,100,120, 15,170,217, 64, 75, 75, 47,243,219,107,182, 12, 54,167,216,178, 26, 38,171, 21,130, 79,132, + 22,101, 63,204,120,174, 76, 22, 0,228,231,231,239, 0,176, 67, 16,132,108, 51, 51, 51,148,150,150,214,117,254,153, 68, 68, 68, +152,200,100, 50, 12, 29, 58,212, 54, 36, 36, 36,142,166,233, 77, 25, 25, 25,245, 58,142,186,154, 9,235,106, 78, 68, 51,178, 14, +109, 28, 16,216,163, 95, 23,139, 7, 86,171, 45, 76, 88,245,221, 22,113, 38,150, 20,128, 98,141, 83,226,205,228,137, 37, 84,142, +188,115,215, 65, 47,192,146, 53, 11, 44,226, 74,235, 52, 90, 52,195,220, 41, 46, 44, 26, 94, 82,170,197,245, 27,145,152, 52,177, + 53, 52, 58, 10,130, 64,163, 76,169, 1, 24, 9,104, 0,147,167, 76, 7,161, 88, 20,100,103,128, 97,152, 8,112, 28,158, 51, 62, +156, 63,127,254,240,101,203,150,249, 44, 93,186, 20, 75,151, 46,245,218,181,107,215,142, 53,107,214, 44,205,205,205,237,128, 70, + 6, 31,111, 64,167,197,233, 67, 31, 47, 57,121,109,123,241,200,222,170,135, 47,248, 85, 68,190, 94,240, 67,129, 68,130, 71, 44, +131,124, 66,106,119, 51, 10, 12, 12, 28, 80,115,253, 47,227,201, 78,240,213,207, 13,234,163,213,218,199,237,229, 46,157, 3,222, + 90,190,108,185, 69,204,205,203,248,224,211,205,164, 77,215, 33,165, 59,174,221,209,150,153,121, 15, 47,203,123,116,195, 80,127, + 1, 0, 47,191, 56, 14, 29,219,117,127,234,205,190,131, 42, 6,107,191,126, 41, 12,217,185,233, 6, 87,182,149,230,160,206, 62, + 89,134,164,244, 63,137, 74,165, 42,138,140,140,116, 76, 75, 75,171,213,241,221,219,219, 27, 20, 69, 33, 52, 52, 20,183,111,223, +198,164, 73,147,192,178, 44, 36, 18, 9,174, 92,185, 98, 84, 52,166, 70,116,169, 42,235,112,152,187,187,123,125,217,134,141,106, +169, 84, 42, 20, 23, 23,227,252,249,243,104,221,186, 53,214,172, 89, 3, 87, 23, 39, 44, 95,190, 4,130, 32,160,164,164, 4, 60, +207, 27, 26,209, 18,170,162, 69,130, 32, 32, 55, 55, 23, 62, 62, 62,216,178,101, 11, 54,110,220,248, 89,102,102,230, 41, 99,183, +209,195,195,195,154,231,249,247, 70,142, 28, 57,100,204,152, 49, 24, 54,172,246,120,172, 63,253,244,147,197,177, 99,199,214,126, +251,237,183, 47,235,116,186,117, 57, 57, 57,185,134,232,254,240, 67,197,240, 75,138,158, 43,241,193,132, 22,120,109,193, 94,124, +253,245,113,200,229,242, 90, 21,239,234,213,171, 27, 52, 49, 2, 33,109,164,121, 55, 51,150,188,255,149,227,218,181, 33, 8, 9, +201, 1, 77,211,112,113,113, 1, 77,211,120,252,248, 49,104,154,134,151,151, 23,104,154, 70,122,122,122, 85,159,192, 66,212,145, +245, 88,247, 93, 56, 13,181, 90,141,212,148, 36,164,197,199,193,188, 36, 11, 14,150, 10, 20, 70,221, 71,199,217,115,170,199,127, +250,135,217,175,213,106,247,215,120,254,213,233,211,167,181, 20, 69,189,130,138,126, 26, 85, 17,141,207, 56,142,251,172, 62,145, +158, 61,123,118, 94,182,108,153,164,106,184, 13, 87,207,207, 57,157, 78, 39, 0,128, 95,199,254,181,220,254,163, 71,143,240,245, +215, 95, 67,169, 84, 66, 42,149, 74, 13, 57, 14,130, 32, 84,103, 24,214,101,194,140, 49, 89, 0, 96,231,229,254, 93,104,248, 21, +254, 94,252,118, 85,196,131, 95, 76, 51, 83,104,208,218,231,215,100, 61, 25,217,114,119,119, 95, 41, 8, 2, 33,132,124, 92,227, + 45,185,167,167,231,181, 11, 23, 46,216,113, 28,135,111,191,253,214, 58, 43, 43,203,186,127,255,254, 31, 0,168,215,104,213,213, + 76, 88, 87,115, 34,106,100, 29,202,229,114, 91,173,182,222,224,201, 83, 89,135, 60, 15, 95, 75, 11,107, 20, 34, 13, 26,123,125, +231, 34, 59,174,224, 98,230,156,187,174,201, 93,218,153,241,122, 31,186, 68, 11, 55,133, 53, 4, 66,234, 77,141,214,232,245,191, +220, 13,191, 51,212,211,163, 53,115, 42,248, 42, 70,143,157, 0,141,134,134, 90, 79,129, 98, 36,160, 24, 41, 58,116,236,130,182, +237, 59,130, 0, 8,251,253, 38,167,213,235, 47, 62, 79,101,239,210,231,205, 73, 20,133, 77, 32, 2,169, 99, 28, 45,159,177, 99, +199,174, 5,240, 86, 99, 58,142, 61,223,156, 68,211, 21, 58, 53,199,209,122,231,205,249,136,250, 93, 98,117, 53,124,189,116, 88, + 79,156,201, 13,161,160, 48,249, 51,235, 80, 66, 55,107,104,142,127,139,225,106,220,104,121,120,120, 88, 91,202, 77,126,120, 99, +246, 44,139,228,123,183,144, 21, 29,138, 27, 87,227, 10, 15, 31, 59, 94,160,204,207,153,109,132,201,170,110,230,179,115,110, 1, +111,255,167,141,150,137,185, 3, 0,192,219,191, 59, 24, 51,227,134, 17,170, 43,154,213, 20,147, 85,243,130, 93,215, 24, 90,243, +230,205,195,174, 93,187,208,167, 79, 31,180,105,211,166,250, 98,111,108,212,172,142,232,146,209,217,134, 53, 41, 45, 45,133,151, +151, 23,118,238,220,137,136,136, 8, 88, 88, 88, 96,210,164, 73, 40, 45, 45,173, 54, 88,134,118,134, 39,132, 60,186,112,225, 66, +183, 87, 95,125,149, 72, 36, 18,170,168,168, 8,214,214,214,216,178,101,139, 50, 51, 51,243, 76, 19, 76,214, 4,169, 84,186,100, +226,196,137,140,159,159, 31,178,179,179, 97,105,105,169,167, 40, 74, 2, 0,214,214,214,122, 83, 83, 83,204,159, 63, 31,157, 58, +117,234,183,116,233,210, 62, 44,203,110,201,200,200,216,219,208,185, 68, 81, 84,117,133, 58,123, 83, 44,180,218,138, 10,122,235, +214,173,168,236,235,246,103, 19, 65,124, 60, 96, 64, 38,139,185,185, 57,218,180,105, 83,103,217,247,235,215, 15, 97, 97, 97, 21, + 77,147, 44, 11, 71, 71, 71,220,184,113,195,160, 76,170,170,129, 32, 35, 35, 35,225,239,109,143,136,144, 11,176, 87, 72,208,201, +213, 25,238,253, 6, 32, 46, 46,238,159,140,102, 81,168,232,135, 49,184,242, 28,220, 13, 96, 94,141,231, 91, 0,124,103,140, 32, +199,113,132,166,105, 42, 53, 53, 85,167, 80, 40, 40, 91, 91, 91, 86, 46,151, 67,163,209, 84, 27,174, 71,143, 30, 33, 56, 56, 24, +105,105,105,176,181,181,165,173,172,172,160,211,233, 10, 13,209,247,245,245,133,179,179,115,173,142,239,179,103,207,110,146,201, +154, 1, 4,236,250,124, 93, 11, 57,205, 88,249,219,191,140,196,216,199,106, 90, 11,147,255, 15,167, 78,133,254, 0, 0, 32, 0, + 73, 68, 65, 84, 38, 11, 0,138,138,138,118, 0,216, 81,245,220,222,222,126, 38,195, 48,203, 53, 26,141,213,149, 43, 87,172, 29, + 28, 28,168,189,123,247,234, 63,254,248,227, 34,134, 97, 10, 41,138,218,240,207,155, 67, 68,231, 21,199,123, 73,108, 92,133,123, +106,114,243,237,212, 15,218, 22, 74, 90, 59, 80,237, 3, 48, 54, 39,230,250, 76, 46,190,119,118,102, 22, 77, 32, 68, 55,112, 13, +222,253,193,178,213,239,197,197,222,241, 52,177, 52,193,188,249,203,112,230,220, 37, 80,180, 4,215,110,134, 66,171,227,145, 87, + 80,140,137,147,167,194,221,197, 30,209,183,207,231,114,130,176,229,249, 50,217,194,230,161,163,103,218,200, 77, 21,149,199,132, +199,254,239,151,128,166, 55, 97,197,138, 21, 8, 8, 8, 88, 16, 25, 25,249, 9, 26, 25, 71,139,162,132,205, 29, 6, 76,182,145, +202, 43,116,136,192, 99,231,209, 15, 42,199,209, 90,140, 45, 59,142,117,104,239,157,184,170,161,113,180,158, 35,147, 85,115,221, +176,209,242,242,242,146,155, 73, 48, 87,194,176, 75,223,152, 50,198, 33, 39, 62, 10,105, 49,119, 42,154, 23,116, 42, 93,214,195, + 24, 67,134, 66, 31,140,218,227,119,144,134,154,174,212,106,131,238,232,107,105, 86, 85,184, 79, 70,179,140, 52, 89, 79,105,214, + 52, 91, 53,199,205,242,240,240,192,218,181,107, 13, 25, 71,235,201,125,175, 98, 24, 42, 58,192,215,236, 12, 63,204, 64,147, 85, +167,166,131,131, 3,242,243, 43, 70, 72, 24, 56,112, 32, 6, 14,252, 51,159, 65,167,211, 85, 71,177, 44, 44, 44,234,138,104, 61, +165,105,106,106,250,193,241,227,199,103,221,188,121,243,213,119,223,125, 87,242,210, 75, 47, 85,153,185,114, 24, 54,183, 91, 45, + 77,158,231,231,159, 63,127,158, 17, 4, 1, 59,119,238, 68, 88, 88, 24, 81, 40, 20, 31, 41, 20,138,205,166,166,166,188, 74,165, +154, 55,103,206,156,169,171, 86,173,162,251,245,235,135, 91,183,110,209, 62, 62, 62,211,129, 90,131, 88,214,185,239,161,161,161, +160,105, 26, 92, 65, 10, 22,124,112, 24,102,166, 44, 98, 99, 99, 81, 80, 80,240,212, 32,166,134, 28,207,154,145,146,170,165, 95, +191,126,213,205,144, 61,122,244, 0,195, 48,184,123,247,110,125,205,176, 53, 53,137,157,157, 93,245,249, 33,149, 74,113,233,210, + 37,124,250,233,167,240,180,181, 70, 97, 76, 4,156, 7,190,136, 33,179,230, 96,210,164, 73, 96, 24, 6,182,182,182,213,145, 95, + 3,206,165,230, 80, 83,115,150,191,191,255,244,232,232,104,247, 14, 29, 58,184, 68, 70, 70, 14, 10, 8, 8,240,138,136,136,168, +122, 46,135, 97,125,115,170, 53,255,248,227,143,160,205,155, 55,207,159, 49, 99,134, 84, 16, 4, 62, 57, 57, 89, 15,128,114,118, +118,102,254,248,227, 15,225,212,169, 83, 80,169, 84,112,119,119,167,221,220,220,168,139, 23, 47, 10, 49, 49, 49,161,132,144,101, +134,236, 59,207,243,181,134,113,168,122,252,211, 79, 63, 25,253,127,111,209,214,119,205, 75,253,253, 60,242, 50,238, 34, 51, 61, + 30,124,177,131, 46,248,196,105,141,145, 38,235,175, 46,163,191, 83,115,245,195,135, 15,221, 52, 26, 13,100, 50, 25,182,110,221, +170, 91,187,118,109,116, 94, 94, 94, 95,212,157, 81, 94, 75,179,137, 89,135, 5, 13,104, 62,149,117, 88,156,143, 51, 39, 78,254, +209,205,124,236,110, 44,200,200,173,238,216, 72, 40,202,246,184, 83,187,190,138,238, 29,210,233,179, 43,233, 82,190,252, 76, 3, +251,174, 85,105,181, 19,198,142,155,252,235,161, 67, 7,205, 63, 94,185, 18, 55, 66, 35,144, 95, 84, 6,129, 48, 16, 40, 10,203, +151,127, 12,103,123, 91,148,100, 60, 44,215,232,116, 99, 81,123, 12,173,127,125,185, 83, 20,189,240,226,169,189,155,104, 10,130, + 50,251,129,156, 41,141, 87,188, 54,105, 44, 59, 97,194, 4, 28, 63,126, 28,145,145,145,219, 27, 48, 89,213,154,132,208, 11, 35, +174, 28,222, 68, 1,130, 42,247,129,156, 45, 75, 84, 76,159, 50,150,157, 52,105, 18,126, 14,190,137, 67,167, 19,183, 29, 58,141, +211,120,190, 49,126,100,120, 11, 22,145,125,219,181,116,235,215,165,189, 9,203,171,144, 22, 19,143, 2,165, 26, 23,163,146,139, +104, 66, 55,121,108,157,138, 11,164, 20, 41, 41, 15,235,184,179, 50,169,172,208,213, 70,105,210, 52, 93, 43,154,213,156, 72, 86, +205,237,116,114,114,170, 53,157, 75,205,138,187,170, 15, 80, 19,134,118,248, 32, 37, 37,197, 50, 37, 37, 5,132, 16,132,134,134, + 90,246,232,209,227,131,230, 68,179,150, 44, 89, 82, 29,181,122,114, 93,215,107,141, 81,217, 41,125,163, 94,175, 63,186,116,233, +210, 5, 61,122,244, 24,186,114,229, 74, 10, 70, 76,192,251, 68, 52,135, 19, 4, 1,151, 47, 95,198,241,227,199,121,157, 78, 55, + 55, 51, 51, 51,162,198, 71,190, 13, 15, 15,191, 56,110,220,184,189, 15, 30, 60, 96,162,163,163, 65, 72,227,121,167, 42,149, 10, +109,218,180, 1,199,113, 88,191,192, 3,165,165, 29,192,113, 28,120,158,135,153,153, 89,117, 20,175,166,121,110,236, 60,226,121, +254, 41,163, 21, 26, 26, 10,134, 97,208,183,111, 95,220,185,115,167, 58,162,213, 88, 4, 74,167,211,165, 56, 57, 57, 57,173, 94, +189,186,122,187,114,115,115,113,225,194, 5,244,236,213, 27,237,230,206, 67, 70, 70, 6, 54,108,216, 0, 87, 87, 87,172, 89,179, + 6, 5, 5, 5,224, 56,238,239, 14,167, 15,143,142,142,118,159, 50,101, 74, 78, 68, 68,132,123,112,112,176,117, 96, 96,160,217, +228,201,147,115, 34, 34, 34,220, 41,138,234, 13, 35, 59, 65, 11,130,240,225,242,229,203,207,173, 89,179,230,131,183,222,122,171, +199,140, 25, 51, 36, 18,137, 68, 72, 79, 79,231, 14, 30, 60, 72,181,105,211,134,150, 74,165,212,249,243,231,133,223,127,255,253, + 54,199,113,235, 1, 92, 51, 38,226, 92,211,100, 49, 12, 99,168,201,170,197,219,142,242,233, 22,116,110,223,205, 91,215,210,126, +222,238,186,125, 7, 47,164, 94,187,245, 48,129,209,112,111,255,208,192,208, 0,207, 51, 12,195, 28,241,247,247,159,185,112,225, + 66,211, 97,195,134,201, 87,173, 90, 85, 92, 90, 90, 90,159,201,170,227,134,249,111,201, 58,252,254,195,119,131,223,126,167,195, +204,150,255,117,110,129, 16,101, 14, 10, 89,134,182,180,166,209,197,139, 65,105,222, 35,135,211,191,238,121, 12,160,177,113,217, +254, 8,191, 31, 57,184,125,135,206,199,214,175, 89,239,248,209,251, 75, 37,199,130,127, 1,225,116, 8,189,114, 5,230, 82,158, +196,132,135,100,107,116,218, 49,120, 14,167,224,201,188,241,221, 33, 0, 39,109,109,109,239,205,154, 49,163,141,191,255,100, 40, + 20, 10, 4, 5, 5, 97,255,183,223,242, 27,129, 87,229,192,157,249,141,140,167,151,115,187, 90,231,238,156, 89,179,124,187,116, +249, 47, 20, 10, 5,142, 30, 61,138,189, 27, 55, 26,172,243, 47,167,106,100,248, 51,248,115,132,248, 70,250,104,209, 84,233,237, +135,201,101,161, 15,147,203, 32, 16, 34, 16,162,161,105,164, 42,117,186, 53, 15, 19,211,155,100, 10,170,154, 14, 63,251,124,225, +179,107,243,168, 97,126,154,154,210, 93,135,201, 74,171, 57, 71, 90,205, 74,186,190,199,122,189, 62,205, 64,249,117,158,158,158, + 79,189,214,244,208, 47, 49,202,100, 25, 58,142, 22, 0,228,231,231,103, 2,248,232,214,173, 91, 63, 13, 29, 58,116, 14,128,244, + 38,150,209,206, 1, 3, 6,204, 5,192, 80, 20,181, 61, 35, 35, 35,226,169, 63,124,102,102,156,171,171,235,151,222,222,222,243, + 42,110, 76,169,157,141, 84,228,137, 29, 58,116,208,213, 85, 22,245, 61, 23, 4,161,209, 50, 42, 42, 42, 66,247,238,221,159,154, +211,146, 16,130,228,228,228,170,136, 83,245,177,111,200,192,149,149,149,205,123,243,205, 55,119, 72, 36, 18, 79, 0, 84,149,201, +229,121,158,249,238,187,239,254,143,189,235, 14,139,226,106,191,103,182, 87,154,116, 1, 17, 81, 32, 40, 86,212, 24, 49,216,177, + 27,187, 81, 99,239,189, 99,212, 88, 98,141, 26, 91, 44, 81, 99,193,222,141,216, 69,177, 97, 23, 4, 69, 80,233, 44, 75, 95,202, +246,221,217,153,223, 31,148, 31, 42,101, 65, 83,190,239,219,243, 60,243,236,238,148,179,119,238,157,153,123,230,125,239,125, 95, +190,193, 96, 96, 2, 32, 24, 12, 6,201,102,179,213,103,207,158, 37, 73,146, 76,214,104, 52, 19,255,230, 7,196, 41,162, 40, 21, +131,226,245,235,215, 94,197,150,172,212,168,168,168,240,227,199,143,219, 2, 56, 81, 67,222,123, 74,165,242,222,218,181,107,219, +237,220,185,115,209,196,137, 19, 91, 13, 29, 58,148,213,190,125,123, 92,186,116,201, 16, 26, 26,250, 88,165, 82,173,171,142,192, + 42,110,203,124, 23, 23,151, 82,193, 85,197,189, 92,233, 64, 94,107, 87,222,111,195, 39,215,230,239, 89,119, 93,158,157,166, 13, +211,203,181, 63, 30, 4,162,240, 63,140,140,140,140,121, 0,150,110,222,188, 57,173,105,211,166, 60, 14,135,163, 53, 86,100,253, +141, 32,169, 60,121,143, 95,187, 12,188,224,191,120,186, 91,151, 14,126, 66,151,186,118, 78,209,239, 51,240,238,225, 37, 69,196, +197,213,137,180, 70,214, 23,128, 49, 35,215,159,104,116,186, 6,115, 23,204,157,194,101,179,187, 26, 12,134, 38,157,110,156,167, +153, 76,102,164, 86,175,191, 81,236, 46, 84,255, 23, 55,249,170, 13, 27, 54,120,120,123,123,227,244,233,211,184,113,228, 8,134, +100,103,227, 54,147,201,100,112, 56,214, 23,117,186,141, 48, 78, 32,173,218,180,105,147,167,143,143, 15, 78,158, 60,137,107,135, + 14, 97,112,205,120, 42,234,235, 90, 2,176, 45,254,153, 13, 32, 6, 64, 11, 0, 2, 0, 26, 20,165,118,178, 41,219,133, 21,111, + 43,217,126,151, 32,136,191,114, 32,108,213,145,225, 63, 70,212,187,196, 22, 95,186, 20, 42,149, 42,215,195,195,163, 90,115,174, +245,122,125,165, 62, 92,146, 36, 83,221,221,221,141,182, 90, 24, 35,138,114,115,115,125,255,194,198,248,172,177, 88, 31,116, 34, + 20,149,232,232,232, 72,149,116,250,229,137,176,242,214,209, 64, 66,117,254, 39, 61, 61, 61, 6,192,156,154,150, 51, 45, 45,237, + 12,140, 72, 26,109,236,126, 0, 32,147,201,190,120, 50, 95,130,166, 37,203,151, 47,175,150,192, 6, 77, 87, 38, 62, 35,229,114, +121,107, 99,254, 91,167,211,225, 31,196,201,226,133, 17, 21, 21, 53,158, 32,136, 0, 20,185, 4,118,227,203, 68,243,190, 87, 80, + 80,112,239,151, 95,126,105,183,103,207,158, 89, 52, 77,163,160,160, 96, 75,117, 5, 86,233,219,115,102,230,165, 47,117,226,185, + 25,218, 91,199,118,167,118, 84,229,233,102,237,149,107, 15,193,132, 82, 99, 20, 77,211, 7, 70,140, 24,241, 53,128,131,159, 75, + 86,193,172,195,207, 69, 2, 37,203,111,122,123,238,207, 99,110, 91,154,245,132,129,229, 5, 45,227, 34,180, 57,151, 0,236,135, +113,195, 28, 74,207,151,164,168, 77,164, 86,187,169, 76,231,242,191,208,206,181,124,124,124,102,141, 30, 61, 26, 75,151, 46,197, +181,141, 27,117,147, 9, 34,159, 13,208, 87,139, 94, 52, 25, 4,176,208, 88,158,145, 35, 71, 98,233,210,165,184,188,126,125, 77, +121, 42,131, 45, 65, 16,193, 0, 16, 24, 24,248,227,218,181,107,173, 22, 45, 90,212,100,221,186,117,107,138,127,191, 42,217, 94, +220,215,245, 90,180,104, 81,163, 50,219, 11, 1, 60,253,139,235,179,220,200,240,127, 53, 58,155, 56, 77,156, 38, 78, 19,167,137, +211,196,105,226, 52,113,126, 14,104,154,238, 89,244, 81,241,103, 69,223,203,124,226,111, 46,115,209, 68, 40,211,139,155, 9, 38, +152, 96,130, 9, 38,152,240,159,136,178, 86,172,154,108,255,130, 40, 25,163, 85, 22,123,128,162,105,221, 21,169,210,234,204,122, +168,137,178,189,105,226, 52,113,154, 56, 77,156, 38, 78, 19,167,137,243,127,142,179, 42,238, 79,142,167,105,186, 39, 65, 16,193, + 52, 77,247,170,232,179, 68, 88,125,252,189,204,231, 23, 27,118, 80, 14, 74,198,102,149,142,209,250,187, 66,246,152,204,170, 38, + 78, 19,167,137,211,196,105,226, 52,113,154, 56, 63, 11, 37, 46, 64, 0,116, 96, 96,224,162,127,161,235,208,177, 88,100,149, 46, + 85,186, 14,105,250, 20, 83, 34,129, 57,151, 43,228, 0,128, 86,171,212, 57, 57,161,128, 32, 6,253,147, 9,111, 77,248,207, 68, +201,116,239,140, 47,188,175, 9, 38,152, 96,130, 9,255, 27,200, 42,177, 84, 1,200, 2, 64, 20,255,214, 22,127,102, 21, 11,178, +143,191,127,176,253, 47,132, 20, 21, 12,126,103, 85, 36,178,178,179,133, 54, 44,150,204,211, 96, 80,127, 5, 0, 44, 22,227, 77, +118,182, 85, 44, 77,159,202,174,137,216,178,177,179,123,206,102, 50,157,140,217, 87,111, 48, 72,178, 51, 50, 62, 12, 29, 79, 16, +255, 13, 2,207, 88, 17,241, 57, 98,227, 47, 23, 42, 54, 54, 54,246,246,246,246,125,204,205,205,219,228,229,229, 61,201,202,202, + 58, 87, 73,222,195,181, 4,129, 5, 69,215, 21,126, 1,176,168, 18,234,234,236,251, 49, 60,132, 66,225, 20,130, 32,124,138,111, +176, 40,165, 82,185, 19,192,219,255,193, 7,146, 0,192,119, 44, 22,107,164,141,141, 77,171,244,244,244,229, 0,106, 26,205,155, + 5, 96,174,165,165,229, 16, 75, 75, 75,247,220,220,220,184,130,130,130,147, 0, 54, 1,168,114,170,244,242, 25,142,109,218, 7, +180, 95, 18,122, 45,116,213,242,109,210,135,159,108,159,235,104,221,181, 75,219,165,161, 23,195, 86,254,184, 35, 45,183,154,101, + 99, 20, 47, 64,209,236, 72, 26,159, 6,123,253, 92,176, 1,244, 6,208, 30, 64, 40,128,139,198,156,119, 5,248, 26,192,143,197, +101,222, 4,224,246,191,252, 58, 18,217,219,219,175, 7,208,155,197, 98,189,150, 72, 36, 19, 0,164,254,195,101, 98, 1,104, 9, +192, 7, 69, 97, 56,158,194,184, 16, 14, 85,194,218,218,186, 23,139,197,154, 82, 28,218,101,103, 78, 78, 78,240,191,181, 97,184, + 92,238, 22, 7, 7,135,113, 42,149, 74, 73, 16, 4, 93, 54,222, 35, 73,146,169,217,217,217,190,255,109, 15, 53,130, 32,158,254, +203,139, 56,161,156,117, 21,199,209,146, 72, 96,206, 98,201, 60, 51,211, 35,135,164, 73, 95, 14, 6,128,218,142, 77, 78,218, 57, + 52, 62, 33,145,112,117, 14, 94,253,196,108, 33,107, 39,147,201,110,166,214,106,108,216, 44,118,182,142,212,135, 51,180,244,148, +244,152,115,229, 6, 91,100, 51,153, 78,137,177,183,237, 72, 93, 46,216,252,218, 96, 11,234, 84, 88,218,218,181,107,215,232, 44, +173,172,220,205,116, 60,254, 44, 54,155,217,133,162, 73, 31,154, 2, 24, 4, 59,138, 52,232, 67, 56, 26,205,175, 50, 89, 92, 97, + 77,107,208,203, 26, 14, 52, 48, 20, 4,186,128,198, 13, 2, 56, 30,147,131,244,106, 80, 24, 43, 34, 62, 71,108,148, 61,118, 51, +128,121, 95,250, 74,114,114,114,178,234,213,171,215,150,159,127,254, 89, 32, 22,139,137,228,228,228,128,133, 11, 23,126,251,236, +217,179, 57, 18,137, 36,237, 99,209, 71, 16, 88, 64, 81, 52, 3, 0, 24, 12, 98,161,173,173,157,144,201,100,126, 18,219,200, 96, + 48, 8,179,178, 50,167, 81, 20, 77, 20,239,187,128,166,177,213, 24,193,200,231,243,191,247,105,220,108,206,250, 13,155,196,246, +118,118, 34,210, 64,233, 18,146, 18,133, 75, 2,231,181,126,255,238,237, 86,181, 90,125,172, 38,247, 53,147,201, 28,194,227,241, +122, 1,240, 46, 94, 23,173,209,104,130, 13, 6,195, 9, 99, 59,116,123,123,251,187, 76, 38,179,110,117,254,216, 96, 48, 36,103, +100,100,248,213,176,137, 6,213,169, 83,103,191,191,191,191,176, 85,171, 86,224,114,185, 88,186,116,233, 92,169, 84, 90,149,208, + 98, 1,152, 43, 20, 10,135,136, 68, 34,119,185, 92,254, 94,165, 82,157,225,114,185,157,183,110,221,234,210,182,109, 91,179,140, +140, 12,130,201,100,218, 95,190,124,249,135, 45, 91,182, 4,144, 36,217,169,170, 78, 46,255, 61,189,132,215,219,187, 93,254,251, +219, 75, 0,116,255,120, 59,169,230,143,164,153, 46,189, 84,244,139,148, 98,241, 97,180,200, 98,179,217, 91, 29, 28, 28, 70,171, +139, 98, 5,208, 31,119, 56, 0,160,213,106,101,121,121,121, 94, 53,185,229, 1,140,181,180,180, 28, 61,127,254,124,171,238,221, +187,227,200,145, 35, 83,247,238,221, 43, 43, 40, 40, 56,128,162, 64,152, 49,213,228, 92,144,158,158,222,131,205,102, 19, 46, 46, + 46, 76,149, 74, 85, 29,161,229,137,162, 36,204, 79, 1,236, 68, 81,232,130, 14, 64,209,253, 14,224,151, 18,225,198, 96, 48,118, +122,121,121,245,137,142,142,222, 5, 96, 85, 77,239,117, 7, 7,135,223,119,236,216, 49,184,111,223,190,204,172,172, 44,167,166, + 77,155, 30, 77, 79, 79,111,247, 5, 30, 35, 99,120, 60,222,236, 38, 77,154, 52,140,137,137,137, 45, 40, 40,216, 84, 92,159,149, +221, 83,206, 0, 58, 91, 90, 90,118, 90,188,120,177,184, 87,175, 94,216,179,103, 79,143,189,123,247,202, 11, 11, 11, 67, 80, 52, +166,231,179, 68, 32,139,197,154,146,154,154,106, 67,211, 52, 28, 29, 29,167, 0,248, 87, 10, 45, 6,131,177,181,127,255,254,163, +143, 30, 61, 42, 76, 76, 76, 20, 58, 57, 57,149, 6,207, 38, 8,162,198,253,167, 9,159,141, 61,101, 4, 87,213,113,180,184, 92, + 33,199, 96, 80,127,149, 38,125, 57,248, 91,255,237, 22, 0,112,247,206,244,193,118, 14,141,162,184, 92, 97, 44,207,156,127,182, +127,239,206,205, 6,246,242, 39,156, 29,237,144, 42,205,180,255,227,248,181,110,193,215,110,159, 69, 81, 0,177,114, 65,234,114, + 33,208,221, 68,204,253,109,176,105,159,134,223, 46,167,226, 97, 68, 2,148,249,217,168,235, 32,192,134, 89, 93,225, 96, 37,172, +217,171,151,157, 71, 7,146,197, 59, 49,236,251, 17, 22,125,190,243,102,187, 58, 56,128,166,121,136,125, 47,255,230,202,245,219, + 45,207,156, 58, 54, 69,196,246, 24,162,200,124,107,244,195,173,185, 35, 4, 10, 29,190, 99, 49,137, 31,218,250, 54,236,244,125, +143,118,140,134,222, 13,240,250, 85,116,215, 11,183, 30,111, 96,132,189, 10, 33, 13,116,144,136,131,243, 47,164,149, 6,244,251, + 68,112,116,234,212,185, 29,143,199,251, 32,120,146, 70,163,225,132,132,220,252,186, 38, 98,163,228, 63,180, 90, 13,131,205,230, +130,193, 32,230,248,248, 52,246,206,206,206,190, 77, 16,196,254,180,180,234, 89, 11,166, 3, 92, 25,139,213,130,193,227, 57, 26, +180, 90,107, 0, 32,184, 92, 89, 2,131,209,120,241,143, 63,138,153, 76, 38,149,147,147, 3,165, 82, 73,140, 31, 63,158,255,254, +253,251,254, 18,137,100, 91, 21,111, 36,216,187,119,175,167,163,163,227, 39,217, 99,165, 82, 41,183,111,223, 62, 53,105,122,207, + 38, 77,155,207,190,118,237,170,119, 65,174, 76,189,119,243,239,207,245,124,161,166,158,183, 23,123,231,158, 67, 22, 19, 70, 15, +159,254,230,205,171,112, 84, 47, 95, 93, 29,129, 64,112,118,227,198,141, 62, 29, 58,116, 96,219,217,217, 33, 35, 35, 3,209,209, +209, 62,183,110,221,250,238,208,161, 67,115, 85, 42, 85,127,192,168,132,168, 30, 33, 65,251,237, 68,181,172, 97,208,235, 81,187, + 73,243,210, 1,146,239,110, 93, 7,169,211,129,210,235,225,221,235,187, 98,107, 50, 13,111,111,239,154, 70,221,173,221,168, 81, +163,195,107,214,172,225,104, 52, 26, 60,126,252, 24,183,111,223,166,164, 82,105, 85, 1,113, 89, 4, 65, 92, 95,182,108,153,179, +159,159,159, 89,118,118, 54, 12, 6,131,205,249,243,231,167, 52,107,214,204,220,197,197,133, 27, 20, 20, 4,185, 92, 14,146, 36, +107,185,187,187,215,250,254,251,239,181, 65, 65, 65,115, 1,172,175,200,146, 85,240,158, 94, 34, 37,220,187,121,181, 24,137,116, +226,106,183,217,221,112,197,188, 62, 81,106,217,234,230,238,110, 86, 32, 17, 46, 20,155, 55,174, 85, 32,185,185,176,155,187,251, +222,171,113, 70,189, 12, 49,138, 59,155, 97,199,143, 31, 23, 70, 71, 71, 11,189,189,189, 65, 81, 84,105, 4,254,146,128,179, 30, + 30, 30, 53,169,199,117,147, 38, 77, 90, 56,120,240, 96, 52,105,210,164, 52, 40,234, 79, 63,253,132,133, 11, 23, 90,221,189,123, +119,238,177, 99,199,230,158, 59,119,110, 61,128,192,106, 90, 99, 74, 80,221, 54, 94, 17, 31, 31, 63,232,236,217,179,195, 23, 44, + 88,224, 1, 96, 26,128,165, 57, 57, 57,254,197,214, 24,110,177,208, 26, 51,119,238,220,201,129,129,129,232,209,163,199,210,199, +143, 31,175,174,161,149,143, 73,146,100,143,190,125,251, 50,245,122, 61, 68, 34, 17,244,122,125,253,207, 53, 74, 0,216, 49,113, +226,196,201,147, 38, 77,130,149,149, 21,244,122,189,231,241,227,199,247, 46, 93,186,180, 13,128,177, 21,148,117,228,228,201,147, + 7,140, 24, 49, 2,190,190,190, 96,177,138,170,113,227,198,141, 88,185,114,165,248,250,245,235,223, 5, 5, 5,125,119,225,194, +133, 51,248, 48,109, 87,181, 64, 81, 20, 88, 44, 22, 82, 82, 82, 96,103,103,199,163, 40,234, 26, 65, 16,123,114,115,115,207,253, +139, 58,243, 95, 6, 13, 26, 52,236,232,209,163, 98, 0,216,176, 97, 3,102,207,158, 13,123,123,123,136,197, 98,147,212,249,247, + 88,180, 38, 84,105,209,170, 10, 74,165,178,249,162, 25, 63,128,193, 40,122,107,108, 80,175, 14,214,254, 56,129,184, 16,124,173, +121,165, 54,120,126,109,196,220,223, 6,158,203, 44,104,244, 36, 30, 69,196,227,198,134,128,162,222,178,251, 98,104,116,157, 74, + 58,155, 90, 92,129,224, 23,173,193,240, 0, 14, 14,143,145,148,148, 85,149,200,178,117,176, 15,222,189,123,189,192,167,190, 23, +116,164, 30,146, 76, 9, 8,130, 7,103, 39, 51,140, 25,217,157,237,239, 95,219,102,197,138,223, 47,165, 83,232,167,204,126, 91, +101,192, 80, 79, 27, 28,108,238,227, 49,248,251,158,126,188,198, 62,141,192,225, 9, 74,183,181,240,245, 69, 11, 95, 95, 70,160, +188,176,203,147,167,207,187,156,190,254, 72,163,212, 39,157,140,205,198,168, 42, 30, 50,165,130, 99,230,204,153,176,183,183,255, + 96,135,140,140, 12,220,186, 21, 82,238, 49,213,120,144,149,254,199,234,213,171,205,100, 50, 89,247,125,251,246,117,164, 40,106, +117,122,122,250,125, 99, 72, 70, 0,117,243,121,188, 78,163, 55,109,162,154,245,233,195,180,116,112, 96, 80, 6, 3,145, 22, 23, +103,189,121,219,182,246,185,239,222, 9, 20,181,106,229,202, 84, 42,101,108,108, 44,248,124, 62,193, 98,177, 90,150, 67,149, 65, +211,248,133,193, 32, 22, 18, 4, 1, 30,143, 31, 59,105,210,164, 23,197,219,234, 94,188,120, 81,216,187,119,111, 37,128, 68, 0, +224,241,248, 78, 76, 38,195,179,104, 0, 33,126, 49, 70, 96,138, 68,162, 25,171,214,172, 23, 21,228,230,169,116, 10,133,222,214, + 92, 76, 16, 98, 51,102, 65,126, 97,161, 68,154,165, 89,188,124, 37,115,226,152, 17, 51, 20, 10,197, 20, 99, 69, 86,211,166, 77, +159,156, 61,123,214,206,218,218, 26,121,121,121,200,201,201,193,147, 39, 79, 64, 81, 20,250,247,239,207,251,166,117,171,230, 63, + 46, 94,242, 48, 69, 34,105, 99,140,216, 18,213,178,193, 6,191,102, 69,157,117, 98, 78,105,251,236, 25,212,171,116,159,149,169, +249, 37,214,185,207, 73, 33,213,166, 83,167, 78, 28, 0, 24, 59,118,108, 65, 97, 97,225, 90, 0, 71, 81,117, 68,255,185, 75,150, + 44,113,170, 87,175,158,235,209,163, 71, 33,151,203, 1,192,174, 94,189,122,240,244,244, 52,132,134,134,194,211,211, 19,102,102, +102,184,123,247, 46, 30, 62,124, 8, 95, 95, 95, 51, 14,135, 51, 88,167,211,149, 43,180,218, 7,180, 95,194,235,237,221,206,171, +197, 72,136,205, 29,177,247,216, 9,196, 60, 63,212, 78,163,139, 94,194, 49,220, 25,161,162,121,163,178,146,197,129,117,125,253, +173, 27, 52,234, 3,215, 22, 47,108,212,134,123,241, 75,186,212, 91,199,226,171, 15, 45,223, 36,205,169, 72,100, 1,216,208,191, +127,255, 65,199,143, 31,183, 4,128,200,200, 72,100,100,100,192,214,214, 22,124, 62, 31,108, 54,187, 52, 63,105, 13, 49,106,231, +206,157,165,162,141, 36,201,210, 44, 0, 66,161, 16,223,126,251, 45,154, 53,107,134,115,231,206,141,170, 64,104,249,181,110,221, +250,136,171,171,171, 75,217,149, 10,133, 2, 67,135, 14, 5, 0,248,251,251,119, 18, 8, 4,116,137, 32,148, 74,165,242,167, 79, +159,118, 1,240,184, 2,101,169,146, 72, 36,152, 63,127, 62, 18, 18, 18,166,238,222,189, 59, 9, 0,159,203,229,150,190, 31, 3, +240,108,212,168,209,214,217,179,103,227,253,251,247,120,253,250,245, 19,212,220,149,106, 16,137, 68,239,244,122,189, 47, 73,146, + 80,169, 84,232,215,175, 31,255,204,153, 51, 25, 76, 38,243, 77,118,118,246,112, 20,141, 73, 49, 22,124, 0,155, 38, 77,154, 52, +121,193,130, 5, 8, 9, 9,193,133, 11, 23, 48, 98,196, 8,204,154, 53, 11, 98,177,120,244,172, 89,179, 30,162, 40,161,249,199, +232,180,115,231, 78, 24, 12,134, 79,238, 13, 62,159, 15, 63, 63, 63, 52,108,216, 16, 23, 46, 92,232,244, 25, 66,203,213,207,207, +143, 75, 81, 20, 20, 10, 5, 66, 67, 67,197, 2,129, 64,236,236,236, 60, 30,192,191, 70,104,185,186,186, 78, 58,126,252,184,184, +172,247,135,199,227,161,204,117, 96,194, 63,111,209,170,244, 13,171, 20, 90,173, 82,199, 98, 49,222,212,118,108,114,242,238,157, +233,165,174, 67,128,241, 70,171, 85,234, 0,192, 64,209, 40, 80,146, 16,240, 24, 72, 76, 47,196,171,184,236,242,168, 62,152,162, +201, 22,212, 1,175, 85, 34,104,154,134, 86,103,128, 38, 63, 29,107, 47, 41, 17,157,170,134, 86, 33,131, 86, 87, 52, 12,203,198, +198,134,117,237,218,149,217, 55,111,222,154,124,224,192, 1,102,170,133,197,235, 66,160,121,121,156, 86, 86,238,102, 20,151,123, +114,215,238,165, 2,154, 25,135,216,100, 5, 26, 56,183,130,141,165, 11,210,179, 21,120,240,250, 50,222,188, 13, 70, 61, 71, 87, +204,154,209,141,191,106,205,209, 19, 28,210,173, 78, 94, 94, 66, 65, 69,229, 44,121,139,250,253,106, 44,200,220, 56, 24,114,222, +195, 80,152,246,201, 14, 98,219, 58,104,209,193, 9,182, 46,245,121,163,102,173, 28, 9,124, 32,180,202,114,102, 16, 4, 99, 23, +131, 65, 76, 38, 8, 2, 77,154, 52, 77,221,180,105, 83,121,161,192,117, 77,154, 52, 77,101, 50, 25,206, 69, 15,118,198, 78,154, +166, 50,170, 40,231, 7,162,134,203,229, 45, 40, 50,251, 59,166, 92,186,116, 73, 55,104,208, 32,108,220,184,145,187,112,225,194, +197, 76, 38,115,108, 57,238,189, 15, 56,251, 1,117, 44,235,215,239,186,250,193, 3,154,173,215, 19,185, 79,158, 20,228, 73,165, +100,122, 97, 33,247,212,155, 55, 61,198,205,155,199,117,113,113,193,253,224, 96,235, 44,133,130,206,211,104, 84,121,121,121, 52, + 73,146, 79, 42,224, 92,100,107,107, 39,220,187,119,175,231,164, 73,147, 94, 72,165,210, 69, 0,224,232,232,184, 22, 64, 67, 0, +137,101,214, 97,247,238, 19,146,241,227,199,199,102,102,102, 46,170,172,156,101,208,200,206,214, 78,120,236,247,160,151,181,204, + 4, 12, 91,231,218, 12,182,165, 37,139,228, 10, 56, 20,160,170,231, 82, 95, 4,160, 81, 5,199,126,204, 73, 8, 4,130,179,127, +254,249,167, 29,155,205,134,193, 96,128,173,173, 45, 18, 18, 18,144,151,151,135,194,194, 66,196,191,137,134,155,139, 11, 86, 4, + 46,116,156,182, 48,240,172, 82,169,244,253,168, 51,251, 52, 1,178, 94,247,137,101,175,188, 44, 6, 31,187,189,140,108,247,178, + 72, 72, 78, 78,134, 88, 44,134,143,143,143,248,193,131, 7,247, 42, 17, 89,101,147, 0, 15,110,219,182,173,217,209,163, 71,225, +235,235, 11, 11, 11, 11,132,134,134, 34, 50, 50, 18, 58,157,142, 33,151,203, 33, 22,139,177,110,221, 58,212,169, 83, 7,133,133, +133, 72, 76, 76,180,102,179,217, 54, 31, 69,180, 47,229, 12,189, 22,186, 42,255,253,237, 37,233,196,213,110,123,143,157,192,248, +239,135,192,129,142,187,103, 81,159, 88,213,181,119,219,159,104,166, 75, 47,145, 89, 19, 43, 15,159,222,224,112,197,152,182, 96, + 37, 98,163, 46, 90, 41, 11, 95, 78, 37, 12, 41, 46,203, 55,157,154, 89,206,185, 19, 0, 24, 46, 46, 46,227, 78,157, 58,101, 86, +106,122, 97, 50, 75,115, 30,150, 77, 2, 95, 73,194,247, 42,235,147, 32, 8, 36, 36, 36,192,206,206, 14, 98,177,184, 52,129,120, +116,116, 52, 30, 61,122,132,146,108, 20, 21,112, 14,191,121,243,166,139, 72, 36,250, 96, 7,154,166,145,157,157, 13,146, 36, 33, + 20, 10, 97, 48, 24,160,211,233,160,215,235,161, 86,171,197, 13, 27, 54,156,162,215,235, 31,151,199, 73, 81,212,156,193,131, 7, +183,125,252,248,177,251,182,109,219,160,213,106, 55,164,167,167, 99,192,128, 1,160, 40, 10,157, 58,117,250,154,166,233,152,197, +139, 23, 3, 0,102,207,158,173, 87, 40, 20,147,106,114,238,197,104,216,162, 69, 11,247,144,144, 16,180,107,215, 14, 26,141, 6, + 27, 55,110, 52,223,189,123,183,121, 80, 80,144,237,130, 5, 11,246,103,101,101, 5, 84,193, 73, 0,216,224,224,224, 48,185,125, +251,246,130,226, 28,166, 56,116,232, 16, 86,172, 88,113, 28,192,226, 43, 87,174, 44,187,112,225,194,200,113,227,198, 97,197,138, + 21,179,242,242,242,246, 85,196, 25, 31, 31, 15, 91, 91, 91,152,155,155, 23, 61, 44,117, 58,132,135,135,227,198,141, 27,248,234, +171,175,140, 57,167,138,202,233,218,191,127,255,253,199,142, 29, 51, 75, 73, 73,193,221,187,119,225,230,230, 6,165, 82,105, 76, +110,216,155,127, 65,135, 93, 33,167, 74,165, 82, 39, 39, 39,139,215,175, 95, 15, 71, 71, 71,184,186,186,130,207,231,131, 32, 8, +232,245,250,202,194, 9, 84, 89, 78,127,127,176,178, 37, 86,125, 45, 44,173,166,210, 52,205,202,207,151,253,174, 67,222,233,184, + 56,104,255,198,115,255, 79, 70,115, 0, 47,240, 97,206, 67,105,169,208, 10, 14, 14,166,123,245,234, 69,148,124, 58, 57,161, 32, + 59,219, 42,214,206,161,241, 9, 59,135, 70,197,121,191, 24,111,152, 76,171, 88,123,123,101, 1, 0,232, 72, 26, 97,111,242,240, +242, 93, 58, 34,223,165, 67,196, 51,206,248,162,209,145, 69, 35, 86,105, 26,106,249,255,191,180,234,148, 50,104,116, 69,195, 61, +180, 26, 37,242,179, 94, 19,131,250,117,225, 79,158, 60, 17,142,142, 78,182, 21,241,233,120,252, 89,211,102,247,176,172,101,201, + 70,240,131,171,248,250,171,126,224,243,216,200,201, 87, 3, 4,240, 54,238, 6, 64,153, 33, 42, 54, 25,173, 27, 9, 17,208,213, + 91,124,238,116,204, 60, 0, 75,141, 41, 47,153,250, 4, 28,143,238, 96, 27,244,208,103,199,128,202, 75, 2, 68, 14, 80, 17, 98, +228, 72,147,240,230,222, 25,163,222, 25, 41,138,154,106, 99, 99,147,183,120,241,226,246, 13, 26, 52,208, 77,153, 50, 37, 34, 41, + 41,105,206, 71,111, 43,191,238,220,185, 19,239,222,189,147,172, 94,189, 58, 52, 59, 59,123, 73, 53, 27, 58,144,166,177,165,216, + 21,151,125,254,252,249, 22,119,238,220,153,181,101,203, 22,251,233,211,167,115,167, 79,159, 62, 6,192,207,149,185, 11, 11,120, +188,206,171,239,222,165,201,212, 84,205,225,237,219,185, 59,194,194, 22,235, 40,170,182,141,157, 29,241, 77,235,214, 10, 33,131, +145,157,147,145, 65,218,186,187, 51, 19,110,220,176,166, 5,130,180, 43, 87,174, 20,200,229,242, 10, 83,231, 48,153, 76,101,121, +238,194,242,224,232,232,168, 45,111, 12, 87, 37, 29, 98, 1, 69,211, 58,203,122,245,232,174,157,218, 52,120, 23, 19, 23,199,183, +180,100,122, 52,112,243,122,245, 38,225, 9,109, 48,168, 9,130, 40, 48,202, 87,194,100, 14,217,178,101, 75, 99,115,115,115, 80, + 20, 5, 11, 11, 11,100,101,101, 65,171,213,162,160,160, 0,218,194,124,104,243,243, 17,153,148,128,182,237,219, 99, 80,183,174, +222, 65,231,255, 28, 98, 48, 24,142, 87,234,207,107,210,188,212,146,181,178,174,245,255,251,130, 82,242, 74, 69,215,250,230, 30, +224,136,197,232, 50, 39,240,115,110,244, 23,151, 46, 93,186,220,191,127,255, 30,243,230,205, 99, 72,165,210,171, 9, 9, 9,109, + 1,188,174,236, 32,177, 88, 92, 63, 59, 59, 27,114,185, 28, 22, 22, 22,216,178,101, 11,236,237,237,161, 84, 42,241,244,233, 83, +218,217,217,153, 8, 13, 13,133,179,179, 51,114,114,114,160,211,233,160, 82,169,210,181, 90,109,133,238,242, 98,247, 96,247,217, +221,112, 37,230,249,161,118, 78, 68,252,211,193,115,253,223,197, 68,190, 73,190,126,227,193,207,164,154,159,146,151,122,115, 97, +189,150, 47,108,166,206, 95,129,223, 54, 44, 67,204,227,187,185,246,117, 10,118, 8, 8,205,193,202,202,171, 80, 40,212,111,222, +188, 49,139,136,136, 0, 65, 16,176,176,176,128, 80, 40, 44, 87,108,213, 0,140,178, 22, 40,133, 66, 1, 14,135, 3,107,107,107, +236,219,183,175,180,227,117,115,115,171,140,227,247, 46, 93,186, 12,169, 83,167,142, 89,217,149, 45, 91,182,196,196,137, 19,177, +107,215, 46,132,133,133,125,144, 79, 51, 61, 61, 93,170,215,235, 43, 59,239,188,140,140,140,110,253,250,245,123,126,239,222, 61, +243,125,251,246,129, 36,201,114,151,189,123,247,226,209,163, 71, 75, 1,188,169,225,117,244,213,128, 1, 3,238, 30, 57,114,196, + 50, 43, 43, 11, 37,215,134, 66,161,128,193, 96,128,151,151, 23, 65,146,100, 85,227,222, 24, 76, 38,243,252,246,237,219,123,143, + 31, 63, 30, 44, 22, 11, 90,173, 22,219,183,111,199,194,133, 11, 51,138, 95, 74,117, 0, 22, 31, 60,120,112,100,159, 62,125,208, +180,105, 83,239,219,183, 43, 30,217, 33,151,203, 33,151,203,193,102,179,225,224,224,128, 85,171, 86, 65,171, 45,122,172,120,122, +122,150,222,198, 0,126,247,244,244,236, 29, 27, 27,187, 17, 69, 99,215, 62,129,131,131, 67, 63,154,166, 39, 24, 12,134,194,118, +237,218, 89, 31, 59,118,204, 76, 34,145,224,249,243,231, 88,186,116,169,140,162, 40, 3, 69, 81,132, 74,165,138,183,179,179,123, +206,227,241, 4, 74,165, 50, 55, 39, 39,103, 13,128,171,255, 84, 79, 78, 16, 4,193,102,179, 49,118,236, 88,176, 88, 44, 8, 4, + 2,168,213,106,232,245,250, 82, 49,143,106,186,165, 27, 52, 16, 91,179,192, 25,111,101,214,112,214,160,153,189,108, 29,107, 59, +193,210,156,135,232,232,215,109,111,133,220,216,206,101,197,236,166,180,250,221, 49,137,249,127,121,178,251,143,181,200,127,168, +208,250, 36,231, 33,171,252,198, 28,100,160,233, 83,217, 18, 9, 87,199,229, 10, 99, 75,172, 92,246,246,202, 2,130, 24,100,176, +109,212, 23,164, 78, 95,252,160,160,139, 23, 35,133,150,222,128,119, 49, 81,184,119,253, 79,216, 40, 37,200,142,111, 6,112, 26, + 67,171,202,135, 90,171, 43, 22, 37, 6, 68, 60, 15, 65, 65,126, 46,124,124,123, 1, 12,198,163,138,248, 44,172,137, 94,223,180, +104,194,124,151, 28,133,150,158, 3,225,238,220, 14, 73,210, 2,228,201, 53,144, 21,168,209,204, 39, 16, 89, 50, 21, 10,148,106, +188,126, 23, 4,167,218,238, 12,130, 21,215,201, 88,161,165,121,125, 22,154, 55, 23,192,113,109, 11,174, 87, 31, 48, 93,253,144, +252,242, 54, 34,174,108, 70,234,171,251,160, 41, 3, 28, 61, 91, 25,123,147,108,191,122,245,106,171,182,109,219,178, 58,119,238, +220,244,242,229,203, 77,165, 82,105, 68,177,192,104,218,185,115,231,166,182,182,182,216,186,117,171,138, 32,136,237, 53,108,236, + 82, 11, 88,102,102,230, 19, 0,171,207,158, 61,187,125,226,196,137,176,179,179,107,156,150,150, 86,225,129, 89,108,118,211, 81, +107,214,208,108, 38,147, 62,254,219,111,156, 21, 87,175,110, 58,112,240, 32,167, 99,135, 14, 4, 77,211, 8, 15, 15, 23,174,255, +237, 55,225,176,190,125, 19,147, 50, 51,201, 59, 97, 97, 58,105,106,106, 97,166, 66,177, 66, 42,149,166,255, 19, 87,182, 94,175, +127, 24,159, 16,239,228,219,186,153,237,139,232,248, 87, 1, 29,191,249,134,193, 96, 48, 98,226,146,194,108,109,205,133, 55,174, +223,208,233,245,250,135,198,112,241,120,188, 94, 29, 59,118,100,201,100, 50,212,174, 93, 27, 89, 89, 89,144, 72, 36, 69, 22,135, +124, 25,116,249,249,208, 23,228,193,160,144, 35,254,233, 19, 52,115,175,199, 59,197,227,245, 82, 42,149,149, 10,173,146,183,204, +242, 18, 93,151,172,227,154,153,129, 43, 22,131,168,190,219,176,175,165,165,229,194,188,188,188,203, 0, 86,233,116,186,105, 11, + 23, 46,108,185,109,219, 54,155,213,171, 87,155, 79,152, 48,225,148, 92, 46,111,134,162,164,170, 21,117, 96,239, 73,146,180, 6, + 96, 31, 18, 18, 2, 59, 59, 59,228,231,231,151, 88, 90,180, 74,165,146,159,147,147, 3,141, 70, 3,173, 86, 11,115,115,115, 60, +123,246, 44,151, 36,201,139, 85, 21,206,188, 62,177, 74,163,139, 94, 98,237, 45, 74,211,145, 86,254,153,185,148,108,249, 38,233, + 74, 0,155,186,185,187,239,213, 81,119,227,223, 70, 93,180, 74,120, 26,154,155,246, 86,225,190,239,114,124,101, 99,180,104, 0, + 20, 65, 16,180,145,103,230,210, 0, 0, 32, 0, 73, 68, 65, 84,167,167, 39,178,178,178,192,100, 50, 33, 20, 10, 33, 22,139,177, +104,209, 34,108,223,190,189, 38, 66,139, 47, 18,137,214, 48, 24,140, 33, 12, 6,195,214, 96, 48, 32, 48, 48, 16,189,123,247, 6, +151,203,133, 78,167, 43,181,104,150, 88,169,170,176,116,132, 63,122,244,200,252,209,163, 15, 30, 91, 29,108,108,108,110,105, 52, + 26,196,197,197,225,252,249,243,237, 1,220,169,102, 91,199,133,135,135,119,243,243,243, 59,212,162, 69,139,250, 52, 77,163,113, +227,198, 24, 58,116, 40,130,130,130, 16, 17, 17,129,252,252,124,234,198,141, 27, 7, 0,108,172,110, 31, 94, 92,191, 94, 3, 6, + 12,184,127,244,232, 81,171,156,156, 28,168, 84, 42, 40, 20, 10,156, 58,117, 10,109,219,182,133,141,141, 13,142, 28, 57, 66,210, + 52, 93, 89,219, 51, 24, 12,198,190,221,187,119,247, 30, 55,110, 28,118,236,216,129,227,199,143,163, 79,159, 62, 24, 50,100, 8, +178,178,178,236, 55,108,216, 48,178,216, 77,184,108,232,208,161,144,203,229,120,250,244,105,180,145,247, 60,242,242,242,144,151, +151, 7,129, 64, 80,246, 30, 35, 0, 4,109,222,188,249,251, 89,179,102,193,221,221,125, 89,124,124,252,102,148, 51, 75,148,162, +168, 73, 18,137,196,138,197, 98, 89,147, 36,137,148,148, 20, 60,123,246, 12, 83,167, 78,205,205,205,205,157, 8, 32, 9,192,226, +177, 99,199,174,154, 51,103, 78,233,181, 52,103,206,156,224,203,151, 47,119,251,187,173, 57,158,158,150,141,184, 76,222, 76, 89, + 33,211, 90, 38,147,149, 62, 59,180, 90, 45, 52, 26,205, 7,150, 44, 14,135,109,221,178, 89,157, 75, 42,101,225,143,175,223,230, + 85,152, 32,221,187,190, 69, 19,161,200, 98, 86,219,118, 29,135,119,237,246, 29,147,212,235,113,237,218, 69,252,241,199, 78,116, +240,243,132,123,131,198,152, 62, 99,166,133, 70, 75, 6,222,184,113,117,161,229,163,123, 87, 11, 11,242, 22, 85,198,249, 63,142, + 75,197,226,234, 82,185,174,195,242, 20,100,113, 8, 7, 89,241, 79, 27, 43, 43,171,223, 12, 6, 67, 7,115,115,115, 80,121,177, +120,253,236, 49,114,101,108,104, 84, 6, 80,116,145,216, 50, 74,184,104,180,184,123,237, 2,182,108,222,132,156,156, 28,248,125, +219, 30,114,150, 11,234,184,212,129, 90,165, 44,190,105, 0,157, 86, 15, 91,123, 87,188,120, 17,161, 47, 80, 40, 42,124, 32,113, +248, 58,239, 58,246,158,208,232,218,128,207,229, 34,191, 80, 11, 89,177,200, 58,114,122, 48, 52, 74, 21, 72,173, 14,164, 86, 15, +219, 58, 3,240,149,125, 71, 80,134,139,141,170, 85,125,148, 1,186,132,187,208, 37,220,133,160,205, 12,252,185,246,251,143, 58, + 82,227,242,238,102,101,101,101,190,122,245,234, 98,120,120,120,191,193,131, 7,227,246,237,219, 19, 0, 76, 46,118,223, 76, 24, + 60,120, 48,194,195,195,241,234,213,171,139, 89, 89, 89,153, 95,162,229,185, 92,174, 74,163, 41,234, 99,133, 66, 33,191,138,125, +157, 90,246,239,207,200,127,241,162, 96,243,131, 7,203,246,238,219,199,233,220,169, 19,161, 39, 73, 80, 6, 3, 26,120,120, 16, + 93,187,118, 21, 5,157, 60,105,205,212,235, 31,205,159, 54, 45,100,215,136, 17,133, 79, 20, 10, 99, 7,154,215, 45,118, 25, 2, + 64,221, 74,214, 25, 13,141, 70,179,109,210,248,209,157,239,220,189,239, 82,199,197,201,252,218,141, 59, 17, 60, 1,151,225,238, + 86,159, 41,203,207,101,173, 92,246,163, 64,163,209, 24, 43, 90,189,109,108,108,144,158,158,142,119,239,222, 65,163,209, 64,175, +215,131, 82, 42,160,149,229, 65,155,159, 11, 66,173, 2,207, 96,128, 58, 59, 3,117,221,235, 1,255, 63, 35,177, 74, 87, 84,121, + 66,171,228,147,111,110, 14,142, 72, 12, 6,155,109,116,114,116, 0, 45, 90,181,106,117,242,204,153, 51,156, 49, 99,198,180,190, +121,243,230,111, 0,146, 36, 18, 73,167,165, 75,151, 62,249,237,183,223,120, 19, 39, 78,244,218,184,113,227, 72, 0,191, 87, 68, +162, 86,171, 79, 94,186,116,105,152,171,171,171,125,100,100, 36,212,106, 53, 40,138, 66,247,238,221,129,162,177, 53, 0,128,152, +152, 24,149, 90,173,206,140,138,138, 42, 72, 74, 74,210,193,136, 89,130,203,183, 73, 31, 22,164,223,237,111,239,224,244,136, 47, +168,235, 70,203, 95,244,155, 61,208,105,195,230,211, 18,245,213,184,184,194, 37, 93,234,173, 83, 20,190,156,106,233, 44,223,113, + 53, 56,222,152,129,240,165,179, 11,173,173,173,193, 98,177,192,102,179,193,225,112, 64, 16, 4,102,204,152,129, 61,123,246, 84, +229, 58,252, 64,100,153,153,153,189, 90,177, 98,133,243,196,137, 19, 57,124, 62, 31, 50,153, 12, 71,142, 28,193,216,177, 99,241, +199, 31,127,148, 59,254,197, 8,151,210,199,214,210, 89, 35, 70,140,128, 86,171,197,208,161, 67,177,119,239,222, 89, 6,131,225, + 78, 13,110,233, 71, 17, 17, 17, 30, 17, 17, 17,230, 0,250, 12, 25, 50,228,224,128, 1, 3,112,231,206, 29, 92,188,120,177, 61, +138, 38,125,168, 0,172, 5, 96, 87,252, 89,217,253, 41,178,183,183,223, 73, 81, 84, 31, 91, 91,219, 8, 79, 79, 79,159,163, 71, +143, 90,102,102,102,150, 76,126, 64, 66, 66, 2,246,239,223, 47,221,183,111, 95,129,193, 96,176,102, 48, 24,151,242,242,242, 22, + 85, 34,216,246,109,222,188,121,116,177, 59, 16,103,206,156,161, 55,109,218, 68, 44, 93,186, 20, 50,153, 12, 29, 58,116,192,238, +221,187,103,202,229,242,166,155, 54,109, 26, 63,104,208, 32,172, 92,185, 18, 10,133, 98,115, 85, 47, 43,149,136, 47, 2,192, 55, +155, 55,111,118,157, 53,107, 22,206,156, 57,131, 22, 45, 90, 8,226,227,227,119, 1, 24, 87, 94,251,209, 52,141,248,248,120, 40, +149, 74,220,191,127, 31,203,150, 45,147,149, 17, 89, 51, 39, 79,158,188,106,230,204,153, 88,179,102, 13, 29, 25, 25,153, 57, 96, +192, 0,251, 61,123,246, 48, 27, 52,104, 48, 83,169, 84,254,109, 66,203,171, 65,173,117, 45, 91,180, 91,232,232,212, 0, 71,142, + 30, 67,110,110,110,105,157,148,212, 11, 77,211, 40, 44, 44, 68,122,122, 58, 44,204,205,176, 97,227,170, 30, 83, 38,140,118, 65, + 81, 24,140, 79, 77,150,238, 86, 27, 7, 12, 25, 51,119,232,176,209,136,140,120,142,160,131,191, 35, 42, 50,188,148,143,212,235, + 16, 27,253, 12,177,209,207, 96,239,224,138,174,157,219, 19,223,127,255,125,247, 17,195,134,216, 2,248,203, 66, 71,252, 7, 91, +179,128, 79,227,104,237,249, 64,104, 85, 97,174,179,177,178,178,122,117,226,196, 9,107, 63, 63, 63, 38, 73,146,184,122,237, 26, +166, 78,254, 1, 35, 71, 4, 66, 7, 43,144, 90, 14, 40, 14,223,168,146,168, 84, 74,208,160,161, 80, 40, 16, 22, 22, 6,154, 34, + 17,180,103, 19,104,154, 42, 21, 90, 0, 13,173, 78, 7,167, 58, 94,216,185,119, 53, 9, 54,251, 9,244,229,135,174, 41,200, 97, + 26,244, 36, 13, 73,102, 50,146,165, 81,176, 48,171, 3, 22,187, 14,114,242,148, 96, 49, 28,160, 87,199,192, 80,124,172, 82,145, + 10,149,238,243,218,207, 80,142,245,148,174,198, 67, 87,165, 82, 29, 62,124,248,112,143, 95,127,253,149,219,179,103, 79,207,211, +167, 79,127, 3, 0, 61,123,246,244, 52, 55, 55,199,225,195,135,181, 42,149,234,240, 23,180,248,116,108,213,170, 21,100, 50, 25, + 18, 18, 18, 34, 42, 61, 55,173,214, 90,108,103,199,204,188,125, 91,159, 37,147,185,116,236,216,145,208,147, 36, 24, 4,129,220, +252,124, 36, 37, 38,194,210,210,146,120, 21, 19, 35,222, 62,125,250, 57, 79, 31, 31, 86,201,140, 68, 99,112,241,226, 69, 33,138, +198,101, 85,186,174,154, 80,100,102,164,143,158, 54,109,218,185,195,135,143, 88,100,100,102,196,242,184, 92, 82, 44,230,215, 30, + 49,124, 10, 43, 47, 47,111, 24, 0,185,177,100, 50,153, 12,241,241,241, 16, 8, 4,224,176,217,160, 84, 74, 24, 20,114,168,115, +179,192,212,105,193, 53, 24, 80, 75,200,131,139,189, 61,234,216,218, 24,197,249,238,214,245,210,129,239,101,221,133, 27, 90,121, +131, 43, 18,131,107, 38,198,148,224,208,226,183, 81, 14,176,244,103, 99,104,109,156,156,156,254, 60,122,244, 40, 39, 43, 43, 11, +225,225,225, 17, 0,242, 1,152, 1,160,162,163,163,111, 70, 69, 69,245, 42,158,117, 87,213,108,177, 77,103,207,158,237,226,231, +231, 71,186,185,185,137, 50, 51, 51, 93,100, 50, 25, 37,149, 74, 63, 48, 9, 93,191,126,157, 87, 88, 88,168,160, 40,234, 92,177, +200,170, 50,126,209,236,129, 78,252,176, 23,152,225, 31, 80,183,177,185, 77, 19,228,146, 47, 26, 63,138,144,206,152, 61,208,105, +219,230,211, 18,181,128,208, 28, 36, 12, 41, 46, 44,190,218,216, 65,204, 52, 80, 52, 86, 42, 44, 44, 12, 73, 73, 73,136,143,143, +255, 64, 80, 77,152, 48, 1, 65, 65, 65, 70, 89,180, 68, 34,209,154,229,203,151, 59,207,154, 53,139, 83, 70, 20, 97,218,180,105, +200,207,207,199,222,189,123, 49,109,218,180,106,119,252, 31,161, 94,199,142, 29,123, 58, 58, 58, 34, 39, 39, 7, 14, 14, 14,240, +243,243,235,125,231,206, 29, 55, 0, 9, 53,188,238,167, 4, 4, 4,172, 90,177, 98, 5,244,122, 61,198,142, 29,139,183,111,223, +158,124,251,246,237,150, 58,117,234,204, 88,176, 96,129,189,189,189, 61, 6, 15, 30, 44, 34, 73,178,127, 69, 36,181,106,213, 90, +251,251,239,191, 15,235,217,179, 39, 67,167,211,125,123,235,214, 45, 36, 38, 38, 66,171,213,130, 36, 73,188,127,255, 30,211,166, + 77,147, 22,207,110,124,111, 68,185,198, 44, 94,188,120,244,140, 25, 51,176,126,253,122, 44, 95,190,252,128,133,133,133, 79,179, +102,205,154, 47, 95,190, 28,243,231,207,135,171,171, 43,172,173,173,191, 90,186,116,169,247,156, 57,115,176,109,219, 54, 44, 91, +182,236, 0,128,253, 53,169, 8,138,162,136,117,235,214, 53,221,188,121,179, 99,137,200, 98, 48, 24, 56,113,226, 4, 94,188,120, +209, 59, 46, 46,174,188, 99,118, 59, 56, 56, 76,112,116,116,228,222,184,113, 67,236,234,234, 10,146, 36,245,197, 34,107,123,157, + 58,117,166,190,127,255, 30, 61,123,246, 68, 92, 92,220, 97, 0, 35, 45, 44, 44, 20,115,230,204, 17, 10, 4, 2, 11,165, 82,249, +119,117,222, 96, 50,136, 81,107, 86,206,199,211, 23, 49, 56,123,150,131,167, 79,159,194,222,222, 30, 60, 30, 15, 52, 77, 67,163, +209, 32, 43, 43, 11,122,157, 6,141, 27,213,195,161,125,235,144,153,153, 5, 48,136, 10,135,220, 16, 12, 98,248,232, 31,250,225, +222,253,107,216,181,235,119,200,229,138, 10, 94,190,249,104,224,233, 13,167,218,118, 72, 73, 77, 1,193,128,205, 95,121,174,255, +225,174,195,210, 71, 16,140, 9,239, 80, 22,150,150,150, 91,142, 31, 63,110,221,161, 67, 7,166, 66,161, 0, 69, 81,104,231,231, +135, 25,179,102,225,226,209,163,240,104, 61, 20,132, 86, 12, 82,104,220,172, 7,181, 74,137,134,205,191,193,160,193, 67,144,156, +148,132,128, 94, 3,160, 86, 43, 75,223, 48, 74, 44, 90, 90,173, 14, 54,118, 46,184,126,253, 58, 19, 99,199,190,198,246,242,141, + 18, 6, 29,247,101,236,123,117,219, 60,213, 11,132, 61, 13,130, 78,163, 67,227,198, 75,161,163,172, 97,231, 60, 1,122,253,121, + 20,100,221, 42,114, 99, 88,119, 64,106,114, 50, 24, 76,206,171,154,214, 32,165,200,250,172,135,110,126,126,126,126,124,124,252, +233,176,176,176,225,253,251,247,199,245,235,215,199, 3, 64,255,254,253, 17, 22, 22,134,248,248,248,211,249,249,249,249, 95,162, +181, 29, 29, 29,251,180,111,223,126,104,203,150, 45, 17, 28, 28, 12,154,166,239, 25,117, 99,179,217, 52,131,193, 0, 69, 81, 32, + 0,228,228,229,225,237,219,183,200,201,206,134, 94,175,135, 66, 46,167,188, 61, 61,229, 52, 69,153, 85,167, 60,101,103, 24,162, +156, 89,135, 37,235,106,112,170, 73, 79, 30, 61, 72, 46,148,203,109,173, 44,173, 10,185, 92,174, 65,150,151,151,255,250, 85,164, +214,200,206,161, 4,209, 81, 81, 81, 62,105,105,105, 72, 78, 78, 6,169, 40, 4, 83,163, 5, 67,163, 68,167,111,218, 64, 0, 26, +124, 80, 96, 83,122,176,153,108, 20, 22,205,206,171,210,221, 97, 40,243,146, 80, 34,178, 8,130, 40,114, 23,138, 68,224,138,205, + 62,176,112, 25,115, 61,241,120,188,163,167, 78,157,114,116,114,114,194,202,149, 43,225,236,236,252, 85,237,218,181,149, 22, 22, + 22, 2,123,123,123, 52,108,216, 16,223,124,243, 13,174, 92,185, 2, 35,234,128,164,105,186,235,189,123,247,230, 62,120,240, 96, +144, 72, 36, 34,166, 79,159,206,234,222,189, 59,120, 60, 30,148, 74, 37,100, 50, 25,142, 29, 59,150, 77, 81, 84,201,164, 20,107, +161, 80,184,159, 32,136, 4,133, 66, 49,235, 99,194, 67,191, 54,174,157,153, 75,141,165,229,194,126,254, 1,117, 27,119, 12,232, +140,122, 30, 29,209, 49, 32, 25, 0,214,213, 98, 37, 14,253,101,177,229, 57, 75, 51, 98,255,245,171, 55,150,249,249,119, 92,188, + 80,126,123,213,250, 61,121, 85,142,167, 35, 8, 2, 20, 69,125, 16, 59,232,227,237, 35, 71,142,196,137, 19, 39,170,172, 71, 6, +131, 49,100,226,196,137,156,143, 44,207,144, 72, 36,232,213,171, 23,250,247,239,255,129,208,178,177,177,129,131,131, 3, 18, 19, + 19, 1, 32,199,200,235,106,198,152, 49, 99, 8,149, 74,133,113,227,198, 97,239,222,189, 24, 58,116, 40,113,231,206,157, 25, 0, +102, 85,247, 98,103, 48, 24, 27, 22, 44, 88, 48,119,218,180,105,200,205,205,197,229,203,151,209,189,123,119,156, 56,113,194,246, +242,229,203,107, 58,116,232, 0, 38,147,137,224,224, 96,144, 36, 89,105,172, 47, 14,135,211,167,103,207,158,140,148,148, 20,112, + 56, 28,248,250,250, 34, 53, 53, 21, 74,165, 18, 18,137, 4, 51,103,206, 76,207,201,201,105,111,236,125,196,225,112,102,205,152, + 49, 3,199,143, 31, 71, 96, 96,224, 65, 0,227,242,243,243, 7, 61,120,240,224,120,223,190,125, 33,145, 72,112,238,220, 57, 44, + 91,182,140, 24, 57,114, 36,118,236,216,129,153, 51,103, 30, 40,182, 58, 85,116,225, 23,102,102,102, 90,212,175, 95, 31, 25, 25, + 25,144,203,229, 56,119,238,156,221,149, 43, 87,220,156,156,156,204,227,227,227, 13, 63,255,252, 51,119,214,172, 89,216,178,101, + 11,194,195,195, 17, 20, 20,132,142, 29, 59,146,113,113,113,229, 90,201,138, 67, 54,156,163,105,250,134, 72, 36, 66, 97, 97, 97, +201,125, 55, 47, 48, 48,112,218,218,181, 69, 70,246,180,180, 52,140, 26, 53,106, 68, 72, 72, 8,213,161, 67, 7, 33,135,195,129, + 90,173, 86,252,157,189, 54,101,160, 0, 80,112,115, 17,227,218,197,125,120, 30, 17,135,231, 17, 81,224,242,138, 6,193,171, 84, + 74, 52,111,220, 0,173,125, 91, 33, 77, 42,193,225,160,125,168,101,227, 84,233,115,132,166,105,112, 88, 6,120,123, 58,224,104, +208,239, 8,190, 28,130,160,195,199, 74,199,188,177, 88,108, 52,107,222, 26,190,190,126,136,139,127,143,125,251,118,193,214,206, +197,228, 28,172, 33, 74, 93,135,101, 63, 63, 82,254, 29,253,252,252,152,114,185, 28,106,181, 26,233,233,233, 72, 76, 76,132,165, +149, 37,226,210, 18,208, 94,168, 67, 58, 85,128,232,136, 87, 6,130,201, 14,175,234, 15,123,250, 55, 3,252,155, 97,234,152,161, +149,188,178,210, 16,153,219, 20,185,110, 72,242, 29,182,109, 35, 43, 18, 90,164, 65,127,243,218,141, 91,173,198,140,236,195,190, +126,107, 47,244, 90, 10, 42,189, 5, 20,106, 45, 20, 58, 54, 24, 22,221,129,236, 59, 96,178,120,248,186,105, 3,156, 59,123, 69, + 71,147,250, 16,163, 43,200,222, 7,100, 70, 84, 25,161,149,249,145,223,161,150,209,174,195,210,142,215, 96, 56,113,228,200,145, +239,218,180,105, 35,236,208,161, 67,253,226,142, 83,119,228,200, 17,101,113, 48,204,234,226,131,104,240, 14, 14, 14,205, 57, 28, +206,208,238,221,187, 55, 31, 61,122, 52, 94,191,126,141,195,135, 15,199, 54,104,208,224,182, 84, 90,241,140,108, 38,151,155, 35, +207,204,180, 20,187,185,177,172,204,204,210,174, 92,190,236,218,185, 75, 23, 34, 57, 57, 25, 57, 57, 57, 80,171,213, 8,143,136, +160,217, 76,102, 42, 97,110,206,136,121,241,130,193,228,114,115, 42,178, 54,150,131,196, 42,102, 29,174,173,169,117,203,197,209, +170,254,178,192, 73,245,212, 26,181, 79, 65, 65, 1,201, 98,179,217,206, 14,150, 73, 49,239,141,127, 38,106, 52,154,224,155, 55, +111,126,215,185,115,103, 94,236,203,112,144,249,249,208,230,203,192,161, 12,168,213,188, 41,152, 58, 13,160,213,195,201,155,134, + 58, 79,136, 59,143, 99,244, 26,141,166,202,160,134, 37, 66,139,241,145, 48,224,138,197,224,153,153,131, 39, 22,127, 44, 24,170, +122,147, 19,118,237,218,181,211,215, 95,127, 13,154,166,177,103,207, 30,232,116, 58,174, 78,167,131, 86,171,133, 78,167, 67, 65, + 65, 1,130,130,130,176,115,231,206, 7, 0, 14, 24,113,250,164, 64, 32,232, 75, 16,132, 29,139,197, 82,218,218,218,138, 78,156, + 56, 81, 26,110,162, 89,179,102, 48, 51, 51,227,160, 56, 40,164,157,157, 29,251,143, 63,254,176,236,221,187,247,221,114,221, 29, +141,191,154, 95,143,180,242,231, 11,234,186,153,219, 52, 65, 61,143,142, 0,128, 46,189,198,160, 94,131, 58, 40,200,126,233,166, + 86, 37,246,227,176,100, 86,175,182, 73, 94, 11,122,250,140, 86,100,134,190, 69,249,211,251,203,237, 40, 24, 12, 70,133,238, 88, + 99, 68, 86,145,102, 97,216,150,140,243, 1,128,156,156, 28, 72,165, 82, 68, 71, 71,195,203,203, 11,185,185,185,112,114,114,130, + 86,171, 69,203,150, 45,161, 82,169,176,121,243,102,220,191,127,255, 1,128,153, 70,252,135,192,195,195, 99, 84,243,230,205,113, +249,242,101, 60,125,250, 84,114,237,218, 53, 39, 63, 63, 63,184,185,185,141, 78, 72, 72,248,177,216,213,103, 44, 68,126,126,126, +211,167, 77,155,134,168,168, 40, 76,154, 52, 41, 39, 37, 37,229,220,201,147, 39,199, 45, 91,182,140, 17, 16, 16, 0,169, 84,138, + 13, 27, 54, 24,238,223,191,191, 17,192,202, 42,234,241, 77, 74, 74,138,179, 90,173, 70,110,110, 46, 72,146,132, 82,169,196,149, + 43, 87, 16, 20, 20,148, 81, 44,178,222, 25, 91,184,166, 77,155, 54,100, 48, 24, 56,126,252, 56, 0, 44, 65, 81,196,254,115,253, +250,245,147,252,252,243,207, 78,139, 22, 45,194,248,241,227,161,211,233,176,126,253,122, 44, 90,180,232, 82,177,200,170,236, 33, +250,171,131,131,195,132, 73,147, 38,125, 53,103,206, 28,132,133,133,217, 61,123,246,204, 55, 60, 60, 28, 46, 46, 46,200,201,201, + 97, 89, 91, 91, 99,203,150, 45,152, 61,123,246, 25, 0,217, 15, 31, 62, 28, 18, 31, 31,191, 22,192,134, 42, 68,251,110, 39, 39, +167, 9, 52, 77,211, 74,165, 50, 49, 48, 48,112,195,234,213,171, 49,123,246,108,188,122,245, 10,249,249,249, 48, 51, 51, 35, 22, + 44, 88, 48,106,201,146, 37, 24, 59,118, 44,173, 80, 40,118,254,221, 29, 53, 77, 27,160,148, 69,193,160,177, 66,179,198, 94,104, +230, 83, 23,215,110, 61, 7, 0,116, 26,224, 7,165,162, 16, 7, 15,238,193,187,119,111,193, 98,179, 97, 89,203,193, 24, 75, 32, +180, 5,111,144,167,147,162,115, 7, 95,116, 15,104,143, 3,135, 78,128,212,235, 48,110,204, 48,200,242,242,112,232,208, 62,196, +197,191, 7,139,205,134,181,205, 95, 31, 8,181, 50, 45,242, 31, 47,180,140,112, 63,129,162, 40, 72, 36, 18, 60,123,246, 12, 9, + 9, 9, 16, 10,133, 80,145, 6,106,215,205,251, 20, 65,112, 82, 41,154,126, 64,147,165, 81,138, 63,229, 48, 24, 36,101, 34,214, + 90, 88, 89, 89,113, 53, 26, 21, 72, 82, 95,166, 87, 33, 0, 2,224,176, 0,199,218,245,144,146,156, 66,171,213,234,208, 74,223, +160, 52,234, 45, 23,206,157,154,246, 77, 91, 63,155,238,157, 86,224,220,249,165,144, 21, 20, 64,173, 99, 67,161,214, 65,169, 6, + 44,107,121,162,101,227, 38, 72, 75,203,193,203,167,119,228, 44,141,210,152,129,162,111,183, 47, 30,227, 49,102,234,124, 8, 92, +219, 66, 19,125, 14,148, 60,163,212,162,197, 23, 91,161, 86, 29,111,228, 41, 52, 56, 21,242, 28,168, 70,170,151,204,204, 76, 37, +147,201, 60, 50,109,218,180,245,207,159, 63,115, 6,128,231,207,159,167, 74,165,210,133,153,153,153,213,181, 73,151, 68,131, 39, +248,124,193,243, 6, 13, 26,164,249,250,250, 90,244,235,215, 15, 54, 54, 54, 8, 15, 15,199,218,181,107,223,232,116,186,249,119, +238,220,169,212,213,163,213,106, 37,207,207,159, 55,111,255,195, 15,150,243,123,247,222, 48,109,218,180, 45, 43, 87,174,100,123, +120,120, 16,122,157, 14,145,145,145,244,209, 35, 71,244, 59, 23, 45,218,204, 21,137, 88, 79, 46, 92, 96,147, 26,141,228,159,190, +136,157,156,156,252,253,190,109,231,189,241,215,109, 80,171,228,120, 28,118, 9, 50, 89, 22,126,223,115,214,219,201,137,246,151, + 72, 36,119,140, 21,192,251,247,239,159,219,186,121,243,230,238, 46, 46,136, 76, 74, 0,151, 50,128, 67,146, 96,234, 52, 96,144, +106,184,248,208, 32, 24,102,144,166, 23, 96,245,241,211, 81,198, 8,227,175,122,244,193,202,212,124, 16, 4,129, 77,109,124,192, + 53, 19,131, 35, 18, 99,202,159,183, 74,133, 65,240,202, 69,224,138,197,168,223,218,168,128,240,202,219,183,111, 63,139,140,140, +108,233,227,227,131,185,115,231, 34, 49, 49, 17, 20, 69, 33, 35, 35, 67, 45,149, 74, 37, 89, 89, 89,137, 40,138,255,179,183,138, + 78,172,172,234,112,186,115,231, 78,169,187, 33, 36, 36, 4,181,107,215,134,133,133, 5, 10, 10, 10, 48,113,226, 68,203,159,126, +250, 9, 0,240,236,217, 51,148, 21, 40, 31, 35,242,121,244,198,188, 66, 90, 70,203, 95,244,203, 37, 95, 52,238, 24,144,130, 46, +189, 70,227, 70,240, 1,220,186,118, 19,181, 88,137, 9, 16, 21, 94,201, 78,200, 46, 72, 85,120,236,246,110, 49,142, 41, 85, 92, +219, 61,189, 79, 44,211,209,145, 58,181,104, 87, 65, 94,101,101,245,240,240,128,189,189,125,233, 24, 45, 22,139,133,177, 99,199, +130,166,105, 99, 69, 86,113, 95, 67,101,169,213,106,123, 62,159,143,244,244,116,188,127,255, 30,113,113,113,165,161, 3, 40,138, +210,207,155, 55,143, 61,125,250,116,236,218,181, 11,161,161,161, 15, 0,172, 0, 96,236,203,218,176,193,131, 7,155,105,181, 90, + 28, 59,118,140, 4,208,235,212,169, 83,207, 90,182,108,201,234,214,173,155,217,142, 29, 59,134, 21,183,145,209, 66,203,220,220, +156,163,211,233,176, 99,199, 14,164,164,164,248, 3,136,126,242,228,201,238,193,131, 7,239,244,241,241,105, 16, 21, 21,245, 86, + 46,151, 79, 1,240,178, 42,178,140,140,140, 49,190,190,190,167, 40,138,114,237,220,185,179,232,215, 95,127, 53,143,137,137,129, +179,179, 51, 40,138,138, 68, 53, 83, 88,189,125,251, 54, 90, 42,149,122,183,111,223, 30, 87,174, 92, 89,103, 48, 24,214, 0, 88, + 63,121,242,100,167,164,164, 36, 52,111,222, 28,181,106,213, 66, 76, 76, 76,161, 84, 42,221,137,162,148, 68, 85,153,112,227, 1, + 44,220,189,123,119,147,221,187,119, 15,173, 85,171,214,215,225,225,225,184,119,239, 30, 54,110,220,136,159,126,250, 9,237,218, +181,195,220,185,115,179, 1, 12, 5, 64,198,199,199, 27, 21, 55,175,196,178, 5, 0, 45, 90,180, 72, 91,187,118, 45,198,141, 27, + 71,255,241,199, 31, 91,143, 28, 57, 50,107,216,176, 97,165,125,224,168, 81,163,232,195,135, 15,143, 66, 81, 26,166,191, 19,122, +157, 78, 11,243, 90,245, 32,207, 75, 70, 86, 74, 24,132,102, 14, 8,232,216, 20, 74,149, 22, 23, 47,156,193,203,200, 8, 48, 24, + 12,216, 59,184,192,210,202, 6,177,177,111,129,202,103, 27,235,117, 58, 29,204,172,234, 66,158,159, 2,109,230,115, 8,196,118, + 24,253, 67, 63, 40, 85, 58,156, 61,119, 6, 81, 81, 47,193,100, 50,225,224,232, 2, 11,203, 34, 78,130,174,124, 6,179, 9, 0, +202,137,167, 85,165,208, 98, 50,153,183,175, 94,189, 58,176,117,235,214,172,119,239,222,225,221,187,162,151, 27,153, 76, 70, 18, + 48,156,206,140,188,240,125, 37,135,119, 70,241,236,140,178,185, 11,197,102,102,146,152, 55,209,246,178,220, 12, 68,188,184,143, +119,177,145, 72,136,139,134, 78,167, 6,147,193, 0,131,201, 64,221,122,141,112,255, 65,152, 86, 77,146, 97, 21,113, 22,149, 35, +174, 80,100,231, 49,100,213,202, 31,131,103,207, 95, 46, 24, 52,112, 23, 94,198,188,134,156,116, 0, 77, 3, 14,214, 34, 52,115, + 95, 0, 73, 90, 22,142, 31,216,161,164,116,186,225, 31,197,208,250,132, 19, 0,236,179,209,112,231,158, 3, 99,247, 6, 29, 93, + 62,127,250, 68,251,190,253,135,131,155,251, 26,250,180,231,168,215,178, 59, 8,158, 37, 46, 95,191,133, 59,207, 94,103, 80, 6, +122,185,125, 14,254,136,173,130,179, 44,242,242,242, 30,166,167, 75,157,203, 68,129,119,230,241,248, 85,205,142,251,152,243,131, +136,243, 76, 38,163,197,170, 85,171,244,246,246,246,186,168,168, 40,236,218,181,139,122,254,252,249,117, 6,131,177, 93, 42,149, +170,171,226,180,213,235, 35,142, 6, 6, 54,108,213,191, 63,253,253,244,233, 74,240,120, 51, 54,108,218, 20,152, 37,147,213,166, + 41, 10,182,181,106,165,110, 88,180,104,237,192,193,131,101,175,238,223, 23,132,157, 63, 47,224,146,228,115, 35,202,249, 37, 80, + 33,167, 68, 34,185, 19, 26,122, 15, 7,247,254, 10,157, 78, 3,169, 36, 9, 0,144,157,147,143, 42, 68,214,199,156,180, 82,169, +236,191,228,167,159, 30, 45,153, 61,203,225,219, 78,157,145, 28, 17, 14, 93,110, 22, 8, 61, 9, 54,193,130, 34, 83,136,204, 12, + 57, 22, 30, 62,153, 41, 87, 42,251,151,211, 73,148, 91,206, 18,139, 21,207,220, 12, 28,145, 24, 92,177,217, 7, 86, 44,190,185, + 57,184, 34, 49, 88, 92,110,121, 3,184, 63,225,148,203,229, 3, 6, 14, 28,248,242,201,147, 39, 86,227,198,141,195, 55,223,124, +243, 66,165, 82,117, 0, 80, 88,211,250,164, 40, 74,242,237,183,223, 50, 8,130, 16, 15, 31, 62,156,151,149,149, 85, 26, 89, 93, + 46,151,227,202,149, 43,240,242, 42,154,213,255,234,213, 43, 52,106,212,168, 66,206,241, 11,163, 36, 0, 86,206, 30,232,180,225, + 81,132,116, 6,128,117,245, 26,184,224,214,181,155,184,119, 43, 44,240,107, 31,106, 91,143,225, 45,127, 22,118, 24, 60,223,187, +197, 56,166,216,220, 17,135,206,158, 97, 70, 63,223,183, 90,169,140,172,143, 93,231,230, 85, 84, 78,130, 32, 64,211,244, 39,161, + 28,152, 76, 38,142, 28, 57, 82,221,115, 63,185,119,239,222,201,147, 38, 77,226, 72,165, 82,188,121,243, 6, 10,133, 2,124, 62, + 31,215,174, 93, 35, 1,236, 56,114,228,200,181, 35, 71,142,116, 67,209,108,162,144,234, 92,159, 34,145,104, 90, 64, 64, 0,222, +188,121,131,167, 79,159,158, 1,240,242,197,139, 23,103,222,189,123, 55,164, 93,187,118, 56,112,224,192, 52,149, 74,181,183, 58, +156, 20, 69,149,141,153, 84,146,241, 33, 66, 46,151,127, 29, 22, 22, 86,221,118,151,230,228,228,180, 45, 22,214, 41,246,246,246, +230, 17, 17, 17,168, 83,167, 14,116, 58, 93,235,234, 94, 75,249,249,249,191,110,223,190,253,143, 49, 99,198,224,231,159,127, 30, +126,242,228,201,225, 61,122,244, 64,207,158, 61,177,127,255,126,188,124,249,114, 29,140, 75, 43, 86,222,185,191, 4,240,210,222, +222,126,170,139,139, 11, 54,110,220,136,200,200,200,181, 43, 87,174, 92,244,242,229, 75,120,121,121,241,162,163,163,201,154, 60, + 67, 0,192,220,220,220, 92,175,215,227,252,249,243,143, 1,204, 30, 62,124,184,221,150, 45, 91,134,138,197, 98,228,230,230,170, +162,162,162,134, 1,184,240,119, 63,235,104,130, 88, 60,110,252,140,221,227,199, 13,227,251,182,104, 6,101, 65, 42, 84,242, 12, + 40, 11,211,177,125,239,117, 16, 4, 3,182,182,142,176,115,112, 70, 82, 82, 50, 30, 92,186,172, 85, 40, 85, 91,184,122,106, 93, +229,156,211,139, 56,155, 23,113, 42, 21,153, 80,201, 51, 75, 57,237,236,106, 23,115, 38,225,126,216,101,181, 74,161,248, 85, 75, + 19,191,252,197,231,254,159,140,234,229, 58, 44, 11,153, 76, 54,115,226,196,137, 29, 22, 46, 92,104, 77,146, 36,179, 86,173, 90, + 72, 74, 74, 34, 79,159, 62,157, 43,151,203,103,214,164, 52, 44, 54,251,165,135,167, 87,135,190,125,251,146,125,250,244,230,140, + 24,211,141,101,107,103,135,252,188, 28,196,190, 9, 71,204,235,231,240,240,106,138,101, 43, 55, 3,150,150, 85, 38,146, 44, 78, +171,211,107,197,146,121, 39,218,250,119, 53,247,106,212,148,211,172,190, 5,116,122, 18,169,169,169,184,112, 62, 66, 23,245,236, + 94, 1, 69,106,135, 40,179,141, 75,193,115, 7, 32,145,131,223,125,236,116, 71,214,108,216, 62,119,199,239, 7,231, 47,156, 49, + 78,212,206,175, 11, 34,111, 30,192,153,224, 19, 10,181, 70,187,129,195,196,166,168, 28, 40, 99,171, 89, 7,106,181, 90,247,113, +127,170, 86,171,117,159,219,210,251,247,239, 71, 70, 70,134, 54, 49, 49,241, 42, 73,146, 39, 43, 73,246,252, 9,182, 3,218,126, + 26,205,205, 37,126,126,221,150, 92,187,198, 31,181, 96,129,118,248,136, 17,243,160,209,232,192,229,210, 44,145,136, 1, 30,143, +253,234,254,125,193,214,201,147,107, 17, 90,237,141,131,149,132, 13, 40, 7, 95,124,214, 97,137, 69,171,125,251,118, 24, 53,110, + 54, 84,101, 44, 90, 15,159,198, 66,163,131,209, 22,173, 98, 36, 39,166,164,124, 61, 99,241,146,179, 67, 2, 58,121,251,184,214, +229,217,186,213,133,216,193, 1, 57, 89, 89,184,255, 52, 70,191,242,196,217,168, 98,145,101, 84, 92, 25,138,162,138, 6,185, 3, +232, 52,115, 33, 8, 38, 19, 40, 14,227, 80, 50,115,200,173,229, 55, 32, 88, 44, 24,104, 10, 26,141,198,152, 65,127,169,239,223, +191, 31, 48,124,248,240,144,224,224, 96, 70, 64, 64, 64,179,115,231,206, 81,159,115,237,168, 84,170,175, 1,128,207,231, 39, 88, + 90, 90, 58,141, 25, 51, 6,122,189, 30, 74,165, 18,249,249,249, 72, 77, 77,205, 27, 51,102,140, 14, 0, 4, 2, 1,119,224,192, +129,230, 85,113,110, 62, 45, 81,207, 30,232,180,173, 22, 43,113,104, 65,246, 75,183, 90,172,196,132,175,125,168,109,155, 79, 75, +212,230,181, 21,171,178, 19,239,196, 74, 21,215,118, 31, 58,123,134, 57,178,223, 0,131,179,248,109, 32,223,142, 62, 93, 21, 47, + 65, 16,159, 4, 39, 53, 82,100,125,128,194,194,194, 69, 75,151, 46,237, 41,147,201,156,187,117,235,198,241,246,246,198,163, 71, +143, 16, 28, 28, 76, 62,124,248, 48, 69,161, 80,252, 8, 64, 13,224,122, 77,234,212,211,211,211,141,197, 98,149,184,210,126, 43, + 94,253,219,185,115,231,134,140, 27, 55, 14,117,235,214,109, 24, 29, 29,205, 67, 53,238, 35,154,166, 75,189, 12, 95, 18, 4, 65, +196,109,221,186,213,201,193,193,129,184,114,229, 10,201,100, 50,107, 98,185,217,191,111,223,190,214,122,189,126,252,132, 9, 19, +224,239,239, 15,146, 36,113,248,240, 97,236,219,183,207, 88,145, 85, 41, 98, 99, 99,159,167,164,164,124, 59,111,222, 60,108,220, +184,113,209,188,121,243,144,146,146,130,216,216,216,240,207,225, 45, 40, 40, 80, 37, 39, 39, 11,219,180,105,227, 27, 21, 21, 21, +213,161, 67,135, 70,227,198,141,195,186,117,235,232,208,208,208,129, 0,174,252, 19,189,119,204,187,220, 32,182,129,117,109,229, +170, 95,127,170,239,238, 54,105,236,232,193, 76, 79,143, 70, 80,228,167,194,218,198, 30,206, 46,245,144,149,153,141,171, 87,175, + 24,178,179,243,246, 27, 24,196,138,119,239,114,211, 62,135,211,201,185, 30, 50, 51, 51,113,249,242,101, 67,158,172, 96, 15,244, +140,149,209, 73,121, 25, 48,193, 24, 75,214, 4, 84, 18, 37,190, 50,216, 88, 89, 89, 29, 51, 55, 55,207, 48, 55, 55,207,176,178, +178, 58, 6, 24, 53,251,160,115,153,167, 3,243,131,101,224, 64, 62,248,252,175,193, 98,205,177,180,178,186, 98, 97, 97,145,211, +190,125,123,237,238,221,187,213,209,209,175, 40,137, 36,133,182,176,176,200, 47,221,191, 60,206,143, 96,101,229,110, 38,114,108, +244,147,133,115,179,251, 98,199,134,133, 98,199,134,133, 22,206, 77, 31,136, 28, 27, 46,183,178,114, 55, 51,170,156, 21,160,158, + 29,108, 61,108,176,195,203,150, 80,121,216, 96, 71, 61, 59,216, 26,125,238,149,187,253, 12, 4, 1, 3,138,166, 97,163, 6,156, + 37, 28, 20,147,201, 60,232,236,236,236,136,234, 5,172,251,132,115, 4, 80,119, 4,143, 55,254, 84, 96,224,168,132,208,208,225, + 5,241,241,223,231,199,197, 13, 14, 63,113, 98,200,111, 67,134,140,248,158,199,155, 48, 16,112, 55,150,211,209,209,113,237,243, +231,207,131,141, 93,202, 8, 47,163,235,211,189,158,211,181,128,206,173,233,105, 19,251,211,211, 38,246,167, 3, 58,183,166,221, +235, 57, 93,251,140, 54, 34,152, 76,230, 80,161, 80,120, 76, 36, 20, 70,138,132,194, 72,161, 80,120,140,201,100, 14, 69,229, 99, +168, 62,224,180,182,182,126,102,111,111,159, 81,157,197,198,198,230, 69, 53,202,249,189,155,155, 91, 10,131,193,216, 92,205,123, +186, 50, 78, 15,129, 64, 16, 39, 18,137, 82,203, 46, 2,129,160,108, 96, 40,107,161, 80,120, 81, 36, 18,109, 49,134,243,151,197, +141,126,122,112,125,234,203, 95, 22, 55,250,233,227,109,211,191,179, 26,243, 40,100, 69,206,244,239,172,198, 24, 83, 78, 59, 59, +187, 80, 59, 59, 59,169,157,157,157,212,222,222,190,210,197,198,198,230,153, 17,156,124, 51, 51,179, 45,102,102,102, 25, 34,145, +200, 32, 22,139, 51, 68, 34,209,102,148, 9,109, 81,211,250,100, 48, 24,235, 26, 54,108,168,102, 50,153,127,124,180,105, 99,253, +250,245,213, 44, 22,107, 67, 53, 57,205,219,181,107,103,136,136,136,160,253,253,253,105, 0, 86, 95,176,221, 29,172,172,172,174, +152,155,155, 39,155,153,153,109, 7, 32,170, 33, 39, 1, 96,168,147,147, 83,120,199,142, 29,149, 78, 78, 78, 97, 0,250,126,193, +114,246,252,238,187,239,168,228,228,100,154,166,105, 58, 57, 57,153,254,238,187,239, 40, 20, 5,138,252,156,103,242,226,201,147, + 39,211, 15, 31, 62,164, 31, 62,124, 72,135,133,133,209, 61,123,246,164, 0,252,240,153,207,121,124,169,115,247,174,103,227,254, + 85, 3,171,147,195, 6,248, 81,215, 47,108,166,151,253, 56,137,238,226,223,136,246,170,111,117,214,195,195,218,227, 75,112,254, +244,227, 68,186,243,183, 13, 41,111,119,171, 19,222,245,108,220,255,230,115,255,175,178,106,149,188, 72,255,213, 3,206,254,223, +180,248,161, 88, 42, 31,181,107,215, 70, 78, 78,107, 62,139,229,199,227,241, 58, 48,152,204,219,185, 89, 89,179,138, 95,183, 12, +127,151,169,182,210, 14,221, 29,220, 74, 82, 18,212,132,243,131,129,236, 53,228,172, 14,135, 81,156, 21, 37,149,166, 52,154, 52, +107,146,124,182, 29,149,214,193, 7,156, 78, 78, 78,227, 41,138,114, 51,182, 64, 12, 6, 35, 65, 34,145,236,173, 73,125, 54,104, +208,128, 46,118,111, 19, 95,178,221,255,138,107,233,127,137,243,208,175,141,107,123, 53,254,106,126,228,243,232,141,197,110,197, + 82, 44,159,110,101,230,215,177,253,210,251,183, 66,127, 94,190, 93, 86,248, 15,159, 59, 3, 70,142,105,251, 2,156, 37, 65, 66, +171,197,201,102,179,119,183,106,213,106,252,163, 71,143,254, 48, 24, 12, 19,254, 71,175,207,158, 76, 38,115,158,167,167,103,179, +216,216,216,112,131,193,176, 17,229, 4,138,172, 65, 57,127,116,115,115,155,194,225,112,120,114,185, 92,150,150,150,182, 20,192, +201,127, 91,125,122, 55,168,229, 75,211,165, 65,183, 87,191,121,159,251,228,139,113,210,148,129,162,153,171, 98,227,115, 94,252, + 3,237,254, 95, 35,178,138,133,214,158,191,227,143, 59,155, 56, 77,156, 38, 78, 19,167,137,243,139,115, 10, 76,245,105,226,252, + 47,228,252,175, 66,137, 69,139,101,170, 10, 19, 76, 48,193,132,255, 56,168, 76, 85, 96,130, 9,255, 58,148,181,106,149, 90,179, +136, 74, 84,105,117, 76,130, 53, 81,182, 55, 77,156, 38, 78, 19,167,137,211,196,105,226, 52,113,254,207,113,254,183,138,172,178, +174,194, 9, 38,215,161,137,211,196,105,226, 52,113,154, 56, 77,156, 38,206,127, 19,231,127,186,208,194, 71, 66,203,228, 58, 52, +225,239,193,182,126,112, 2,128, 25,231, 32,249, 43,246, 55,193, 4, 19, 76, 48,193,132,127, 24,123, 80,129,235,240,223, 32,180, +106, 3,248, 26, 69,137,111, 99, 0,220, 3, 32,251, 12, 62, 27, 0,131, 9,130, 24, 4, 0, 52, 77,159, 66,209,172,145,108, 99, + 14,230,243,249, 25,106,181,218,174,248,123,166, 90,173, 46,155,203,128,192,167,179,217,232, 50, 75,185,112,115,115,203,208,104, + 52,118, 70,252,125, 62, 77,211, 47, 25, 12, 70,164, 88, 44,190, 21, 27, 27, 27, 92,157, 19,239,208,161,195, 40, 38,147,185, 26, + 0, 12, 6,195,226,219,183,111, 31,252, 11,219,173,181, 75,109,132,110,109,220, 0, 0, 32, 0, 73, 68, 65, 84,135, 3, 58,189, +142,204,200,202, 93,138, 79, 3,249, 1, 0,118,244,194, 90,130,196,252,226,239, 27,166, 6, 87, 30, 71,167,186,251, 87, 2, 95, + 54,155, 61,205,222,222,190,123,106,106,234, 51, 0, 11,128,170,163, 26,187,184,184,252,192, 98,177,134, 27, 12, 6,119, 38,147, + 25, 71,146,228,145,148,148,148, 32,211, 51,196, 4, 19, 76, 48,193, 4, 35,196,214, 39,168,150,208,242,178,134, 3, 13, 12, 5, +129, 46,160,113,131, 0,142,199,228, 32,221,216,227,123,120, 65,175, 39,139,254,147,195,128,225,202,123,198,158,238,221,187, 59, + 79,159, 62, 29,223,124,243, 13, 30, 61,122,212,102,255,254,253, 99, 78,158, 60,249,146,162,168,219, 0, 30, 1, 70,133, 82, 16, +161, 40, 78,203,176,238,221,187,119, 94,189,122, 53,179, 81,163, 70, 80,169, 84, 8, 13, 13,245,219,176, 97,195,150, 7, 15, 30, +220, 4,112,180, 88, 16, 84,152, 0, 79,173, 86,219,149, 36,227, 36, 8,194,110,224,192,129, 79,202,138,171,226,252,106, 4, 77, +211, 15, 9,130, 8, 51, 24, 12,143, 78,159, 62,157,226, 5,180,158,232,198, 57, 61, 43, 65,231,252, 49,167, 70,163,177, 59,255, +203, 26,176,120, 60,104, 10, 11,208,102,244,255,139,222, 27, 63,205, 7, 65,145, 96,130,150,117, 88,181,229, 37,128,200,180,180, +180,151,254,254,254, 9,213,109, 97, 38,147,185,250,234,213,171,142, 52, 77, 35, 32, 32, 96, 53,128,191, 74,104,241,190,246,109, +122,251,226,153, 99,124,121,110, 6,186,245, 29,114,228,109, 74,230, 40, 0,103, 62, 16, 77,221, 97, 79, 16,152, 63,121,205, 81, + 38, 0,236,252,113,216,130,205, 93,177,109,246,117,164, 3,232, 80, 44,126, 0,224, 23, 0,183,119,116,135, 61,128,133,147,215, + 28, 37, 0, 96,215,143,195,230,239,232,142,173, 83,175, 84, 59,108,197,148, 81,163, 70,109, 91,189,122, 53,211,209,209, 17, 18, +137,164, 91,195,134, 13, 61, 11, 10, 10, 26,162,146, 65,196,117,235,214, 61,209,174, 99,239,122,253, 7, 13, 21,218,218, 88, 33, + 77,154,109,126,226,216, 31, 19,153, 15, 67,187, 39, 38, 38, 14, 49, 61, 67, 76, 48,193, 4, 19, 76,168, 0, 53,143, 12,223,220, + 17, 2,133, 14,223,177,152,196, 15,109,125, 27,118,250,190, 71, 59, 70, 67,239, 6,120,253, 42,186,235,133, 91,143, 55, 48,194, + 94,133,144, 6, 58, 72,196,193,249, 23,210,202,103,194,232, 73,176,174,159, 63, 90,212, 19,142, 25,198,124,242,228, 73,131, 22, + 45, 90,148,166,134,233,212,169, 19, 58,117,234, 68,236,220,185,179,233,245,235,215,155,238,219,183, 79, 23, 18, 18,114, 0,149, +199, 71,153, 86,191,126,253, 13,219,182,109,227,249,251,251,131,199,227,149,110, 16,139,197,232,221,187, 55,122,247,238,205, 76, + 75, 75, 11,184,120,241, 98,192, 47,191,252,162, 77, 74, 74,154,135,255,143,210, 92, 41,150, 46, 93,234, 91,206,234,171, 4, 65, +188, 39, 73, 50,188,105,211,166, 41,158, 64,131,137, 61,190,185, 49,165,173,135,104,214,162,253,229,242,176,184, 92, 28, 26, 85, +212, 87,151, 21, 90, 9,183,174, 64,108,110,150, 35, 52, 51,123, 9, 32, 18,192, 75,154,166, 35,227,226,226,162,191, 2,154,126, +109,197, 56,240,135,140,106, 82, 13,177,133,148,148, 20, 88, 88, 88, 8,252,253,253,165, 4, 65, 44, 15, 13, 13,253,210, 3,242, + 90, 47,159, 63,133, 35, 75,124,137,244, 55, 15, 49,103,144,159,112,214,246, 63,127, 86,107,245,103, 42, 59,136, 32, 24,140, 95, +194,168, 64, 20, 37,227, 93,154,147,147,227, 15, 0,214,214,214, 92, 0,183, 55, 63, 70,143,217,109,137,207,137,237,198, 97, 50, +153, 59,246,239,223, 63,238,135, 31,126, 40, 74, 29,113,255, 62,196, 98, 49, 86,174, 92, 89,119,238,220,185,107, 73,146,156, 89, +145, 37,171, 93,199,222,245,182,110,252,185, 97, 97,110,190,230,247, 29, 39,159,214,246,241, 98, 76,158, 54,215,108,171, 78,227, + 96, 48, 24,126, 48, 89,182, 76, 48,193, 4, 19, 76,168,142, 53,171, 74,161,229,105,131,131,205,125, 60, 6,127,223,211,143,215, +216,167, 17, 56,188,255, 15,221,210,194,215, 23, 45,124,125, 25,129,242,194, 46, 79,158, 62,239,114,250,250, 35,141, 82,159,116, + 50, 54, 27,163,140, 45, 85, 73, 82,218,213,125,237, 59, 42,242, 50,249, 0, 32,178,180, 83,255,120, 62,253, 86,219,182,109,225, +236,236,204, 9, 9, 9, 25, 91,133,208,250, 49, 38, 38,134,199,100, 86, 30, 15,181,118,237,218, 24, 56,112, 32,188,188,188,184, +237,219,183,255,177, 34,161,197,231,243, 51, 9,130,176, 3,128, 90,181,106, 25,150, 47, 95, 30, 78, 23, 1, 0,104,154,166, 31, + 50, 24,140, 71, 20, 69, 61,254,243,207, 63, 83, 27, 2,118,221, 90,120,221,155, 50, 98,160,144, 62,189,165, 66,145,160, 46, 40, + 40,119,189, 80, 44,202, 18,136, 68, 47,121, 66,126, 36,138,114,121, 69, 58, 59, 59, 71, 55, 4,156, 91,121,185, 93,223, 57,123, +152,217, 31, 19,126,174,178, 46,155, 55,111,238,217,164, 73, 19,190,193, 96,128, 66,161,192,174, 93,187, 44, 4, 2,129, 69,247, +238,221,151,149,189, 0,188,129,198, 3,106, 51, 39,172, 72, 51, 76,173,193,133,100,217,174,141,111,226,192,222,221,205,125,191, +110,135,183,183, 15, 35, 55,183, 16,249,121,114, 80, 20,245, 73, 92,159,169, 87,144,177,163, 23, 54,236, 92, 52,108, 33,193, 96, + 16, 77,251, 45, 64, 31,135,252, 25,187,119,239,126, 5,128,205,229,114,203, 94,135,181, 5, 78, 62, 27, 26,116,109,135, 93,139, + 71,128,166, 40, 26,192,134,106, 88,179,236,204,204,204, 46, 92,191,126,189,117,203,150, 45,241,232,209, 35,196,199,199, 99,202, +148, 41,218,169, 83,167,114, 70,142, 28, 73,204,153, 51,103,250, 47,191,252,114, 26,192,131, 79,110, 4, 22,107,120,223,254, 67, +184,242,188, 2,181, 86,163,211,214,178,177,164, 52, 10,181, 50, 91, 86,160, 30, 50,108,188,246,213,139,199,195, 1,124, 34,180, + 62,179, 62, 77, 48,193, 4, 19, 76, 48, 2, 52, 77,183, 4, 96, 11, 32,139, 32,136,167,101,127, 23,239, 82,146,173,229,227,223, +217, 40,242, 74, 89,151,161,203, 70,209,112, 31, 91, 0, 6, 0, 79, 8,130,144,125,102, 17, 43, 79,189, 19, 28, 28, 76,151,253, + 44, 35,180,104,154,166,105,125,206,123, 90, 19,123,133, 86, 62,221,251,201,162,122,117,134,150, 62, 57, 73, 63, 62,250, 19,237, +105, 83,121, 22,246, 30, 94,208, 15,107, 2,122,114, 75,208, 51,219, 91,170,159, 60,121, 18, 66, 81, 84,112, 96, 59,208,244,235, +163, 52,253,250, 40, 61,187, 13,232,211,167, 79, 95, 93,187,118,109,112, 80, 80, 80, 48,128,170,198, 41,101, 20, 62, 13,163, 31, +219,129,174, 8, 49, 49, 49,244,238,221,187,233, 69,139, 22,209,127,252,241, 7,141, 42, 34,168, 7, 4, 4,132, 70, 69, 69,209, + 35, 71,142, 12, 71, 37,129, 1,189, 1,209,240,186, 14,111, 52, 39,182,232,180, 63, 52,166,101,223,242,203, 61,127, 71, 71,199, + 15,202,179,206,195,129,254,173,149, 7,125,176, 75,139,116,154,166,175,210, 52,189,142,166,233, 33, 52, 77,123, 1, 64,115,192, +188,175,163,245, 59,245,201,173, 42,237,132,175,171,204,123,215,188,121,115,207,121,243,230,229,106,181, 90, 58, 33, 33,129,254, +253,247,223,233, 27, 55,110,208,231,207,159,167,253,252,252,210,202,148,215,126,140,151,107,134,118,223, 10, 77, 77,174, 34, 54, +147,249,219,211, 27,167,233,119,247, 78,209, 79,142,175,165,143, 44,249,158,158,222,183,181,206, 92,192, 83, 3,232, 88,209,113, + 83,219,162,129, 87, 93,219,216,164,164, 36, 90,167,211,209,163, 71,143,166, 3, 2, 2,232,174, 93,187,210,157, 59,119,166, 59, +117,234, 68,119,236,216,145,190,117,235, 22,157,150,150, 70,119,110,215, 66,209,203, 27,190,213, 40,154,143,171,171,107,122, 66, + 66, 2,173,211,233,232,144,144, 16,250,240,225,195,116, 72, 72, 8, 29, 24, 24, 72, 3, 56, 56,121,242,100,149, 76, 38,163, 3, + 2, 2, 82, 81, 78,212,120, 87, 87,215,232,168,216,148,148,205,107,246,222, 58,244,219,177, 91,103, 79,223,184,117,225,218,147, + 75,231,175, 61, 61,249, 56, 34,238,188,171,171,107,116, 57,237,255, 89,245,105,130, 9, 38,152, 96, 66,213, 90,164, 88,104,245, + 44, 54,118,244,164,105,186,243, 71,191,123, 22, 11,167, 79,126, 7, 6, 6, 46, 42,251,187,100,159,192,192,192, 69, 0,232, 54, +109,218, 28,163,105,186,193, 23, 40,254,132,143,151,106,205, 58, 36, 83,159,128,227,209, 29,108,131, 30,250,236, 24, 80,121, 73, +128,200, 1, 42, 66,140, 28,105, 18,222,220, 59, 83,121, 34,137, 98, 92,142, 1, 27, 64, 72,116,116, 52,222,188,121,131,148,148, + 20, 8,133,194, 79,246,187,127,255, 62, 4, 2, 1, 28, 29, 29,141, 83,186,218, 15,251,185,151, 45, 92, 33,110,227,143,236,239, + 39, 33, 36, 36, 4,153,153,153,224,112, 56,224,114,185, 32, 73,178, 74, 62, 6,163, 40,227,111,137, 21,171,188,125,252, 1, 22, +175,150,248,226,206,101, 51,221, 24, 15,131,217,170,228,119, 72, 83, 27,140,179,228,137, 69, 16,138,132, 82,129, 64, 88,234, 46, + 4, 16, 73, 16,196,219,230, 0, 91, 36,230, 95, 60,176,106,142, 3,243, 69, 8, 95,245,238,101,185, 28,157, 59,119,158, 8, 96, + 25, 77,211,121, 77,154, 52,177, 95,189,122,181,149, 68, 34,193,235,215,175,113,242,228,201, 44,178,232, 68, 9,154,166, 87, 0, +192,215, 0,223,210,214,242,218,111, 63,205, 52,195,237, 19,220,154, 92, 69, 22,222,189, 47, 13, 24, 57,121,234,182,153,189,161, + 40, 84,225,232,141, 23,184,250,252,125, 31, 0,247, 81,201,184,183, 29, 15,240, 14,200,234,212,191,127,255,240,187,119,239,218, +236,219,183, 15, 36, 73,150,187,236,219,183, 15, 55,239, 61,159, 1,224,153,145,197,170,237,230,230,118,243,241,227,199,182, 66, +161, 16, 55,110,220, 64, 94, 94, 94,169, 37,107,212,168, 81, 68, 94, 94,222,208, 93,187,118, 13, 72, 76, 76,220,120,239,222,189, + 28, 20,229,130,252,224, 66, 96, 50,153,239, 73, 82,247,149,163,119, 3,214,160,222,237,218,201,115, 94, 66,108,221, 4, 15, 35, +222, 95,204,147,229,168,152, 76,230,251,178,251,127,137,250, 52,193, 4, 19, 76, 48,161,122, 32, 8, 34,152,166,233, 94, 4, 65, + 4,127,188,238,227,239, 37,251,173, 93,187,182,244,119,201, 49,235,214,173, 91, 83,230,183,242, 11, 21,175,210,193,240,237,139, + 21,100,251,242,118,210,188, 62, 11,205,155, 11,224,184,182, 5,215,171, 15,152,174,126, 72,126,121, 27, 17, 87, 54, 35,245,213, +125,208,148, 1,142,158,173,140, 45,136,250,171,175,190,130, 90, 93, 52, 52, 75,163,209,128, 35,178, 82,207,153, 48,140, 15, 0, + 20,139,175, 41,163, 96,141, 34, 52,107,219, 1,173, 50,104, 60,177, 47, 50, 84,180,202, 40, 58,110,213,232,209,224,112, 56,224, +112, 56, 32,138,135,254, 24, 35,180,136,226,157,169, 34,247, 85,121,133, 32,148, 60,246,209,227,203,166,181,226, 37, 70,114, 53, + 81, 15,145,166,161,232,139, 25,134, 75,198,148, 87, 40, 18, 74, 4, 66, 97,164, 64, 44, 42, 21, 90, 4, 65,188, 7, 0,154,205, + 14, 58,188, 98, 90, 19, 81, 70,156, 72,253, 52, 4, 82, 53,165,171,128,102,197,149, 43, 87,236, 88, 44,150,131,193, 96, 64,114, +114, 50, 94,189,122,133,173, 91,183,102, 20, 22, 22,182,127,241,226, 69,108, 89,237,104, 16,112, 79, 6,173,156, 89,143,245,242, + 14, 95,243, 62,170,218, 87,143,141,207,119, 1,125,218, 55,189, 52,113,196, 98,124,215,163, 43, 70,182,111, 72, 39,164,229,170, + 1,220, 40, 54,189, 86, 5,201,139, 23, 47,186,124,251,237,183, 71,154, 53,107,230, 77,211, 52, 26, 55,110,140,161, 67,135, 34, + 40, 40, 8, 17, 17, 17, 40, 40, 40,208, 93,191,254,127,236,125,119, 88, 20, 87,227,245,153,217,190, 44,189,131, 5, 21, 69, 41, + 10,138,162,216, 16, 75,212,136,137,221,216, 19, 19,125,237, 53, 17, 53,198,146, 40, 36,198, 94,162, 38, 49,150, 55, 22, 98,139, +216, 91,192,136, 29,165, 8,130, 5,105, 46,189, 45,176,125,230,126,127,176,172,136,148, 5,205,247,203,155,236,121,158,125,102, +103,103,230,236,157,123,103,238, 61,247,220,118,113, 51,128,189, 6, 6,203,196,202,202,234,252,213,171, 87,237, 76, 76, 76,112, +241,226, 69,200,229,114, 56, 57, 57, 97,214,172, 89,130,208,208,208,253, 37, 37, 37,163, 67, 66, 66, 68, 41, 41, 41,219, 47, 92, +184,208, 2, 21,235,206,189,241, 16,168, 84,170, 61,191, 30,216,183,117,214,236, 57, 77,174,222,122,116, 69, 89, 42,179,112,113, + 73, 47,177,179, 50, 53,219,252,237,234,230, 42,149,106,122,205,241,249, 71,163,226,211, 8, 35,140, 48,194,136, 55, 80,167, 22, +169, 42,158,170,139,173,134,136, 52, 0,242,224,224,224,101, 20, 69,133, 7, 7, 7, 47, 11, 9, 9,145, 3,120,249, 87,136, 44, +189,208, 10, 10, 10,138, 8, 15, 15, 71, 80, 80, 80, 68,173, 20, 44, 3,117, 74, 36,212, 41,145, 16,251,207,197,239, 33,227,170, +221, 60,219,232,208, 13, 93,115,233,170, 82,169,228,238,219,183, 79,223,111, 11, 0, 24,134,121,231,169,216, 16,161,165, 19,122, +111, 4,162,165,208, 52, 98,207,130,209,221,108,152,114,158,234,207,211,200, 84,178,218,239,159,168,203,239, 22,145,239,106,227, + 60, 57,127, 58,210,175, 95,134,137,169,105,250,167,145,177,122, 23, 75, 39,178,158, 3, 64, 11,161,217,149, 93,243,134,245,116, +228,131,175, 58, 19,134,151, 74, 86,185,235,133,102,111, 45, 15, 27, 8, 33,120,254,252, 57,202,203,203, 17, 21, 21,133, 99,199, +142,229,214, 32,178,208, 82,104,250,199,207, 95, 76,232,106, 46,203,226,171,238, 94,198, 75, 37,107, 80, 83,151,109,135, 97, 61, +248, 52,117,145,162, 57,226,126,221,218, 98,254,103,195,177,233,231,223,181, 42,251, 94, 65, 91, 79,157, 29, 83,170, 84, 47, 51, + 80,100,233,205,198,232,232,104,207,232,232,104, 33,128,192,143, 62,250,232,236,200,145, 35, 17, 17, 17,129,211,167, 79,187, 1, +144,234,206, 91,131,138,133,178,191, 3,240,172, 54,227,145,207,231, 31,190,124,249,178,151,179,179, 51, 46, 95,190, 12,185, 92, +142, 25, 51,102,168,102,207,158,205,159, 50,101, 10, 85, 92, 92,172,119,178,162,162,162,242,107, 19, 89, 0,144,153,153,121,238, +216,209,131,221,123,247,238, 61,188,149, 91, 59,243,103,178,146, 28, 19, 19,145,248,122,196, 53,254,221,219, 55,182,103,102,102, +222,169, 57, 62,175, 24, 28,159, 70, 24, 97,132, 17, 70,212, 14,131,180, 72, 53,103,170, 33,168,114, 29, 47, 36, 36, 36, 62, 36, + 36,228, 53,199,235, 45, 81,125,212,225,153,202, 50,173, 81,243,104, 49,197,105,111,222, 0,203, 54,228,102,223,248,205,202,202, + 74, 43, 22,139, 95, 19, 90,172,129,156, 5, 39, 14,225,217,204,241,122, 39,171,210,217,194,160, 41,111, 37,180, 88,150,141, 2, +240, 90, 32, 76,236,219,142,219, 60,212,163,135,103,171, 38,180,230,232, 22,100,148,107, 21, 43, 31,171, 21,137, 50,242, 65, 66, + 13,157,172,245,156, 90, 13, 68, 18,113,170,216, 84, 82, 93,100,189, 0, 0,137,131,219,200,239, 7,183,235,227,211,174, 53,173, + 61,178, 17,153,229,154,210,224, 4,181,250, 89, 25, 57, 94, 75, 28,174,124,239,189,247, 86,218,216,216,136,182,110,221,106,225, +226,226, 2,173, 86,171,170, 46,178, 76,236,219,142,219, 50,172,125,143,182,142, 86,180,230,183,109, 72,151, 51,229, 91,158,105, +246, 27, 34,178,108, 45, 76, 47,236, 90, 55, 83,108, 34,228, 65,161, 80, 32,116,231,111,184,120, 35, 46, 40, 47,238,228, 5, 0, + 23,222,226,129,252, 52, 40, 40,104,211,154, 53,107,160,209,104, 48,117,234, 84, 60,125,250,244,226,227,199,143,183, 52,111,222, +124,241, 23, 95,124,225,236,232,232,136, 49, 99,198,240, 53, 26,205,148, 90, 56,190,253,245,215, 95,131,124,124,124, 16, 17, 17, +129,162,162, 34, 56, 57, 57, 97,246,236,217,130,144,144,144,253, 37, 37, 37,163,215,173, 91, 39,122,254,252,121,157, 78,214,107, +207, 53,195,124,179,123,211,204,197, 93,186,245,164,159, 60, 73,210,166,249, 5,208,215, 46,159,142,180,177,177,217,159,150,150, +246, 42, 62,135,119,104,112,124, 26, 97,132, 17, 70, 24,241,110, 64, 81,212, 25, 93,191,171,215, 92,174,234, 34,172,210,177,170, +186, 95,253,124,221,241,119, 81, 89,222, 83,131,240,122,125,122,135,160,160, 32,131,135,213,179,101,185, 6,137,167,234,120,191, + 29, 52, 77, 76,193, 93, 22, 64,131, 47,177, 82, 12, 93,115,233,106,109,231, 74, 36, 18,131, 29, 45, 86,169,168, 47, 81, 26, 36, +180,116,125,180,206, 19, 66, 94, 19, 90, 22, 14,109, 3,150,124, 49,111,115,207,145,131,232,236,207,252, 81, 84,170, 84,126,241, + 72,203,102,148,215, 45,178, 42, 74,113, 77,138,137,196, 52, 86, 36, 49,169, 42,178,210, 0, 64,100,223,218,239,243,249,179,118, +246, 29, 55,148,202,157,209, 19,133, 69,114,229,226,120, 45,149, 41, 39,163, 19,128,107, 53,209, 93,189,122,117, 55,128,221, 1, + 1, 1,217, 18,137, 4,165,165,165,111,164, 65,101,120,123,140, 28, 68,103,127,218, 21, 5,101,106,229, 23,241, 90,188,148,179, +135,235, 19, 89,118,150,102, 23,118,173,157,105,242, 50,227, 5,248,124, 62, 76, 77, 77,113,233,207, 88,228,197,159,122, 27,129, + 5,154,166, 87, 5, 7, 7,175,156, 53,107, 22,242,243,243,113,250,244,105,188,255,254,251, 56,116,232,144,203,217,179,103, 55, + 5, 6, 6,130,195,225, 32, 60, 60, 28, 26,141, 38,185, 22,154,225,211,166, 77, 91, 60,114,228, 72,220,185,115, 7, 82,169,244, + 53, 39,171,168,168,232,163,157, 59,119,142, 76, 73, 73,169,215,201,170, 6,191,150,173, 59,241,151,174,216, 0,101,121, 14, 55, + 55,243, 86,196,149, 75,244,205,130,130, 2, 19, 0,197,141,141, 79, 35,140, 48,194, 8, 35, 12,118,181,106,211, 34,185, 58, 17, +149, 91,211,126, 21,129, 85,211, 62, 85,205, 5, 83, 85, 59,254,240,175,188, 39,131, 28, 45,174, 67,123,104,179,227,170, 8,173, +156,215,142,139,204,172, 13,106, 58,212,104,193,221,181, 87, 63,143,150, 40, 63, 63, 95,100,107,107,171,168, 42, 16, 76, 76, 76, +224,236,236,140,194,194, 66,236,217,179, 7,168,191, 83,180,214,124,228, 68,248,141,155,138,187, 77, 5, 32, 26,181,222,217,218, +245,241,199,175,137, 45, 62,159, 95,217, 55,172,190, 66,247,182,206,105,186, 9,128,116,114,107,245,181, 72, 34,249, 88,100,219, +204,118,254,204, 79,121, 41, 57, 74, 92,237,185,180,232,183,111,151,152,166, 19,211, 89,105, 40,190, 81, 15,223,179, 15,127, 56, + 88,221,201,202,232,232,214,106,185,200, 68,244,153,192,186,133, 99,240,194,153,188,148,108, 37,117,213,239,139,146, 99,223,125, + 97,242, 28,102,139, 51, 80,116,205,128,228, 89,249,254,251,239,175, 36,132, 16,150,101, 87, 0, 64,213,240, 46,156,253, 25,239, + 89,150, 2, 87,122, 46, 47, 60,246,237, 18,179,116,212, 29, 94,219, 14,195,122, 56, 88,153, 95,216,181,110,150,137, 52, 51, 21, + 66,161, 16,102,102,102, 72,207, 46, 6,143,203,145,191,229,243, 38,236,213,171,215,146,153, 51,103, 34, 54, 54, 22, 51,102,204, +144,166,165,165, 29, 63,114,228,200,140,175,190,250,138, 59,112,224, 64, 72,165, 82,172, 95,191, 94,243,231,159,127,174, 3,176, +190,198,231,145,203,253,244,235,175,191, 38, 47, 95,190,164,158, 63,127, 14, 39, 39, 39,204,153, 51, 71,176,110,221, 58,125,159, +172,134, 56, 89,149,200,204,204,140,184,120,249, 38, 62, 56,183, 25, 90,141, 50,162, 40, 63, 45, 50,241, 89, 97,132,181, 64,176, +168, 73,167, 14,141,138, 79, 35,140, 48,194, 8, 35,222,137,139,117,183,174,253,191, 1,106,106, 58, 52, 72,104, 37,111, 91,254, +137,219, 39,179, 62,135,216,165, 7,148, 9, 39,192,150,102,235, 29, 45,145,169, 21,172,155,123,160,168, 76,137,176, 43,247, 1, + 32,185, 33,161,146,201,100,240,245,245,197,142, 41,109,251, 42,100,249, 34, 49, 0,165,208, 92,113, 82,208,235,234,217,179,103, +203, 89,150, 61, 12,224,108, 61, 52,171,188,188,188,182,111,216,176, 65,224, 49,238, 19,148,222,186, 94,221, 65,129, 88, 44,134, + 80, 40, 68, 76, 76, 12,174, 94,189,170, 2,176,170,158, 4,189,173,213,106, 31, 30, 57,114, 36,163, 77,171, 38,131,124, 59,122, +207, 93,182, 52,216,236,209,245,139, 88,177,110, 59,219,166,243,192,226,208, 67, 39,101,197,166,205,251,201,165,143, 31, 24,112, +171, 15,171,137,172,151,238, 45,155,245,237,216,222,235,243, 21, 43,150,155,199, 95,191,132,175,190,219, 69,220,124,250, 23,127, +119,236, 84, 73,158, 73,139,247, 20, 57,137,119, 12,137,195,136,136,136,221, 0,118, 87,238, 87, 15,111,240,154, 45,108,219, 46, +131, 10, 67, 15, 29, 43, 43, 49,107,222,191,174,240,218,121, 12,239,222,212,206,234,194,182,111,254, 99,146,149,153, 6,161, 80, + 8, 83, 83, 83,164, 73,139,176,114,243,209, 50, 53,203, 14,122, 91,161,101,102,102, 38, 84,171,213,216,177, 99, 7,210,210,210, +252, 1,164,221,187,119,111,215,216,177, 99,183,118,232,208,193, 61, 62, 62, 62,185,180,180,116, 22,128,196,218, 72, 44, 45, 45, +253,237,236,236,168,155, 55,111,226, 63,255,249,143,106,206,156, 57,252,201,147, 39, 83,133,133,133,141,117,178, 0, 0, 77,154, + 52, 9, 24,208,175, 27,122, 12,152, 17,161, 82, 20, 69,166, 36,238,143,160,201, 13, 81, 99,227,211, 8, 35,140, 48,194,136,127, + 13, 26, 55, 49,120, 0,192,109,107,131,233, 94, 77,248, 89, 7,190,157, 67,100,207,162,136,252,206,110, 82,114,226, 51,114,102, +253,100,114,118,219,124, 50, 99,136, 23,113,183,167,178,218,218, 96,122,192,155,194,237,181,213,189,223,111, 7,205,128,214, 32, + 3, 90,131, 12,105, 11, 13,128,101,157, 58,117, 58, 57,219,239,213, 60, 90,179,253, 64, 0,252, 7,128,105, 45,193,170,105,197, +112, 39, 0,123,124,125,125,181,215,174, 93, 35,143, 71,247, 39,209,238,182,100,214,172, 89,228,171,175,190, 34,227,199,143, 39, +118,118,118, 90, 93, 68, 56,213,199,249,193, 7, 31, 52, 5,128,102,205,154, 89,118,246,104,147, 21,115,229, 52,137, 60,176,149, +252, 60,123, 4,233,218,193, 35,207,209,189,247, 67,177, 83,187,142,245, 68,159,158,211,209,209,113, 41, 33,100, 16, 33,196, 9, + 0,220,220,108, 76, 59,185,183,121,249,240,242,105,114,253,224,118,242,243,236, 17,164,155,183,103,126, 83,143,192, 68,145,189, +187,159, 33,156, 53,161,198,240,182,119,207,115,104,211,253, 65, 29,225,213,115,182,242, 27,115, 42,227,101, 54,185,125,251, 54, + 57,123,246, 44,185,126,253, 58, 57,112,228, 20,105,222,101,116,169,109,135, 97, 61, 26,240,232,212, 22, 78,139, 33, 67,134,144, +228,228,100, 50,120,240, 96, 2,192,162,145,156, 39, 83, 82, 82, 72, 92, 92, 28, 89,182,108, 25, 1,176,111,230,204,153,242,226, +226, 98,210,191,127,255, 52,157,192,226, 54, 38,156,174, 45,155,132, 14, 31,218,107,213,236,255,140, 12,120,219,248,124,135, 48, +114, 26, 57,141,156, 70,206,127, 3,231,255, 50,156,116,174, 86,229,182,147, 65,243,104, 69, 0, 90,228, 99,119,123,123,245,127, +215,173,223,182,104,199,238,125,159, 47,153,251,169,164, 87,207, 1,136,189,252, 11,142,133, 31, 41, 83, 40, 85,235,249, 28,108, +136,203, 71,121, 82, 61,161,208,205,163,245, 26,162,163,163, 77,172, 91,191,154,131,233, 73,197,220,172,187, 26,120,131, 82, 0, +211,238,223,191,191, 33, 48, 48,112,237,103, 61,252, 70,204,238,222, 23, 26,141, 6, 7, 14, 28, 64,106,106,234,113, 0,203, 13, +117,220, 98, 99, 99,243, 60, 91,187,204,227,113,184,159,207, 26, 63,220, 46,247,233, 35,100, 36, 68, 3, 0,148, 74,185, 38, 43, + 57,210,167, 33,129, 19,139,197,183,237,236,236, 30,219,217,217, 21,182,109,213,108,154, 16,188, 21, 51, 62,250,208, 62, 63, 37, + 17,233,241, 21, 45,163, 74, 69,185, 58, 35,249,154,123, 99, 82,215,197,197, 69, 40,225, 97,122,141,225, 85, 41, 52,217, 79, 18, + 59, 26,194, 83,174, 84,173, 91,189,233,192,123,223,124,254,177,208,220,220, 28,247,227,158, 96,197,198, 67,101,114,149,102, 80, + 94,236,201,119,210, 60, 70, 8,129, 70,163, 49,120,160, 67, 45, 88,226,227,227,211,110,237,218,181,110, 83,166, 76,193,219, 58, + 89, 85,241, 44, 37, 51,184, 73, 51, 87,207, 39,143,239, 7, 90,139,249,255,125,155,248, 52,194, 8, 35,140, 48,226, 95,131, 33, + 58, 51,103, 90,149,109, 52, 12,172,245, 35, 46, 7,229, 0,214,180,226,148,238, 90,186,118,211, 74,154,218,252, 49, 75,200, 47, + 90, 26,171,159,231, 35,247, 45, 3, 87,206,227, 66,251,222,176,241, 92, 0,224,113, 27, 87, 64,234,144, 12, 96,228,143, 55,238, +116,249,241,198,157, 47,117,191,125, 3,160, 65,109,185,102, 92,196,245,244,116,109,210,171,147,151,136,195,200,145,145,240, 20, + 5,101, 10, 92,138, 79, 45,162, 9,253, 75, 67, 3,245,252,249,243, 63, 0,192,193,194, 36,161,151,103,235,230,189,125,189, 76, +120,148, 10, 25,143,238,163, 88,174,194,197,248,212, 98, 80, 84,163, 59, 84,191,171,240,102,199,158,186,251, 59,168,254, 20, 69, + 93, 94, 54,123,156,112,229,198,195,239, 84,100, 1, 40,207,204,204,204, 47, 47, 47,183,121,249,242,165, 10,141,159, 36,238, 73, + 73, 73, 73,135,249,243,231,175, 89,188,120,241,231,223,126,251, 45,191, 49,125,178,106, 67, 97,102,234,137,222, 94,239, 46,253, +141, 48,194, 8, 35,140,248, 87, 96, 90,181, 45, 12, 22, 90,122,193,144,131, 92, 0,179, 92, 93,201,194,103,207,160,122, 87, 33, +171,201,233,122, 75,220, 5, 48,180,209, 87,211,148,236, 86,114,106,233,237,228,212, 82,176,132,176,132, 40,105, 26,233,101,106, +245,186,228,231,153,141, 31,117, 71, 81,204,221, 39,105,242,123, 79,211, 21,132,101, 9, 75,136,138,162,144,165,209,176,235,226, +159,167,158,250, 59,132, 55, 47,246,228,141,112, 45,213,235,198,237,184,133,101,101,234,237,121, 9, 39,163,222, 97,186,104, 98, + 99, 99, 39,248,251,251,127,194, 48,204, 46, 0,154,183,224, 82,105,181,218, 37,161,161,161,199, 99, 99, 99,143, 70, 69, 69, 73, +223,133,200,250, 75,211,223, 8, 35,140, 48,194,136,127, 42, 26,183,168,116,109,120,151, 34,235,239,136,184, 39, 47,124,255, 10, +222,248, 39, 47,218,255, 47,132, 55, 59,225,196,189,108,224,163,191, 40,122, 47, 50, 12,115,241, 93,138,234,243,231,207,183, 68, + 13,203,234,252,221,210,223, 8, 35,140, 48,194,136,127, 44,166,213, 38,190,184,198,184, 49,226, 31, 0,242,174, 68,150, 17, 70, + 24, 97,132, 17, 70, 52, 2,181, 58, 90, 20,106, 31, 57,112,185, 1,127,208,152,209, 7,151,141,156, 70, 78, 35,167,145,211,200, +105,228, 52,114,254,235, 56,255,137,112, 66, 69,135,248, 51,186, 45, 8, 33,123,254,127,252,177,113,232,171,145,211,200,105,228, + 52,114, 26, 57,141,156, 70,206,127, 58,222,232, 8, 95, 57,189, 3,109,140, 27, 35,140, 48,194, 8, 35,254, 66, 8,117,159,198, + 30, 55,194,136,255, 69,177,165, 23, 92,141,233,163,213, 70,183,125,242, 23, 6,118,182,147,147,211, 52,111,111,111, 15, 62,159, + 79,203,100,178,213,215,174, 93, 91, 85,253,164, 94,158,220,123, 28, 26, 77, 95,253, 66, 1, 20, 7,160,105, 48, 4, 25,215, 99, +228,157,141,233,254,183,134,139,216,220,238,119,138,230, 8, 24,173, 26,140, 70,141,138,238, 86, 21, 96, 89,109, 42,163, 86, 14, +172,237, 98, 71,159,225,205,181, 12,251, 45, 64,118, 0,244, 76,128,221, 73,129, 59,131, 64,251, 3, 5,206,127,192, 33,223,129, +161,190,224,242, 56, 75,165,209,191,165,255, 19, 34, 44, 44, 44,140,243, 54,215,143, 30, 61,186,198, 5, 68,157,157,157,195, 77, + 76, 76, 90,215,118, 93, 89, 89,153, 84, 42,149, 6,254,195,159,199,222, 0,182, 1,240,170,246,123, 34,128,121, 0,174,188,237, + 31, 4, 0, 92, 7, 96, 58, 31,248, 2, 0,212,192,119,217,192,238,136,191, 81, 31, 67, 59, 59,187, 72, 46,151,235, 86, 86, 86, + 86, 38,147,201, 92,205,204,204,158, 73, 36, 18,137, 86,171, 77,206,205,205,237,221, 64,186,153,120,181,148,214,231, 0,118, 54, +240,184, 17, 70,252,175,224,173, 70, 29,182,173,200, 31, 16, 0,160,119,151, 46, 93, 28,202,202,202,144,152,152,152, 13, 32, 18, + 64,132,238,147,244, 46, 66, 74,211,244,247,155, 54,109, 90, 52,103,206, 28,253, 98,208, 49, 49, 49,240,241,121,115,142, 80, 14, +141,166,215, 78, 95,182,191, 27,155,132, 46,253, 71,233,132, 22, 13,148, 73, 17, 56,192,175,177, 65, 48,179,178,178, 90, 77, 81, +212,104,154,166,235, 45,212, 88,150,101, 8, 33, 97,133,133,133, 43, 1,200, 26,242, 71, 18, 19,161, 70,203, 48, 53,254, 7,151, +195, 97,202,202,149,181, 78,123, 97,109,109, 29, 69,211,116,171,170, 11,102, 3,175, 47,160, 93,219, 49,173, 86,155,145,151,151, +103,136, 8, 21,209, 92,254, 60,138,226, 15, 0,205,182, 5, 40, 80,160,147, 88, 70,117,137,213,170,183, 0, 80,188,141,200,114, +106,230,122,125,193,242,208,166,113, 9,137, 88, 54,123, 60,190,221,182, 15, 75,231,125,130, 45,123, 14, 97,222,180,113,240,244, +244, 66, 93,203,138,179,224,175, 91, 62,119,116,255,144, 29, 71,123, 46,157, 53, 90, 24,178, 35,172,215,178,217, 99, 5,235,182, + 31,237,181,108,246, 24, 97,200,246,163, 61,151,206, 29, 45, 94,183,243, 55, 22,192,196,198, 4,114,156,155,115, 25,165,213,214, + 88,219, 38, 92,174,242, 80,242, 75,201,255,197, 27, 61,101,202, 20,111,185, 92,126,127,252,128, 78,161, 29,219, 54,201,172,233, +156,252,172,204, 38,207, 30, 71, 7,243,248, 98,223, 15,131,247,197,212,105, 57, 8,133,173, 18, 19, 19,221, 88,150, 5,195, 48, +208,106,181,250,173, 74,165, 66,239,222,189,223,213,192,153,161, 0, 86, 87,188,172, 8, 1,112,244, 45,184, 76,185, 92,238, 2, +129, 64, 16,160,213,106, 61, 0,128,199,227, 37, 40,149,202, 8,173, 86,187, 9, 64,105, 3,249, 54,103,102,102,122,154,154,154, + 66,173, 86,235, 23,160,231,112, 56,238,205,155, 55,223,161, 80, 40,220,222,246,230, 29,128,233,221,123,246,220, 50,121,209, 34, +142, 60, 50, 18, 91,246,238,221,140,146, 18, 0,216, 81,223,181, 2,129,224, 2, 77,211, 46, 13,249, 63,150,101, 83, 85, 42,213, +192,134, 92,195,229,114,221, 94,190,124,105,239,236,236, 12,153, 76, 6,137, 68, 34,169,220,111,132,147,181,158, 16, 34,214,229, +237, 91,186,117,235,230, 79, 81,148, 22, 0, 97, 89,150,190,125,251,246, 56,150,101,185,186,252,105, 61,128,189, 0,148,198, 50, +219,136,255, 81, 55,107, 79, 67,133,214, 89, 0, 1, 93,186,116, 17,127,244,209, 71, 8, 8, 8,128,155,155, 27, 68, 34, 81, 69, + 38,158,159,239,240,224,193,131, 49,145,145,145, 99, 78,159, 62,141, 71,143, 30,201, 1,252, 9,160,198,151,186, 95, 80,207, 57, + 34, 83,225, 86, 0,200,205,200,151,102, 60,207,217, 42,149, 74,215, 3,168, 58, 69,184,235,196,137, 19, 23,206,157, 59, 23,225, +225,225, 56,116,232, 16,148, 74, 37,100,178, 58,244, 75,121, 14, 10,175,134, 2,146, 20, 32, 45, 2, 48,177, 7, 36, 14,141,142, + 41, 43, 43,171,213,243,230,205,155,239,233,233,169,159,197, 92,163,209, 64,171,213, 66,163,209,160,176,176, 16, 11, 23, 46,172, + 40,104, 9, 1,203,178, 56,119,238,220,156,105,211,166,161,176,176,112, 65, 77,156,221,124,155,221,163, 41,186,105,165, 87, 67, + 24, 38,227,214,131,140,206, 90,134,225, 40, 20,234, 26, 87, 42, 23,137,248,117,138, 60, 30,143,215,244,209,239,191,219,211, 2, + 1, 8,195, 0, 44, 11,194,178,186,232,212,125, 72,197,111,132, 97, 65, 52, 12, 88, 45, 11,173, 92, 9,191,153, 51, 13,137,138, +238, 60,129,248,208,132,207, 22, 57,118,237,214,141,215,162,153, 51,180, 12,139,167, 41, 25,142,247,239,221,234, 17,182,127,199, + 12,149, 92, 54, 14, 64,163,230,217, 18,152,152, 95,220,254,195,143, 77,239, 62,136,195,149,107,145,184,124, 53, 2, 0,112,225, + 90, 84,165,224,174, 55,169,160, 45,237, 48,111,234, 48, 97,232,246,195,188,121, 83,135,115,190,221,126,132, 55,247,147, 15, 57, +161, 91, 15,241,231,126,242, 33, 39,116,219, 33,254,220,169,195, 56, 33, 91,126,246, 6, 96, 5,160,176, 54,178,218,210,136,210, +106,133,255,125,150,205, 1,128,220, 93,187,160,201,201,129,243,202,149, 0,128, 9,174, 14, 6, 55,119,216,218,218,222,227,241, +120, 77,235, 59, 79,163,209,212, 43,130,167, 76,153,226, 35,151,203,239,105,181, 90,194,229,114,131,199, 15,127,239,228,160, 94, + 62,249, 85,207,137,137,121,104,179,110,221,239,195,142,222,151,145, 49,190,102,247,195,191,159,210, 57,104,241,190,135,117, 20, +200,180, 82,169, 68,114,114, 50,170, 46,242, 94, 5, 76, 99,235, 78, 0,182,216,216,216,116,205,207,207,159, 0, 96, 89, 73, 73, +137, 55,135,195,129,181,181,245, 50,149, 74,245,212,194,194,226,167,226,226,226, 40,157,107,100,232,146, 1,189,205,205,205, 15, +156, 56,113,194,170, 83,167, 78,116, 94, 94, 30, 90,182,108,137,130,130, 2,191,200,200, 72,223,169, 83,167, 78,149,201,100,147, +116,149, 65, 67,209,206,196,196,132, 76,158, 60,153, 98,152, 87,183,251,243,207, 63, 99, 96,123,109,107, 59, 75,147,114,133,138, + 20, 95, 73,182,248, 15,159,207,255, 51, 53, 53,181,184,161,145,193, 7,190,152,188,104, 17,199,244,197, 11,152, 62,124,136, 9, + 37, 37,220,111, 43,220,173,122,133, 22, 77,211, 46, 7, 14,253,226, 38, 16, 8,160,213,106,245, 98,176, 50,143,210,104, 52, 80, +171,213,208,104, 52, 96, 24, 6, 26,181, 6, 33,223,124,215,232,188,208,196,196,196,196,201,201, 41,219,196,196,196,228, 93,148, + 66, 66,161,144,187,127,255,254,113, 2,129, 0, 0,160, 82,169,208,190,125,123,202, 88, 62, 27,241, 15, 19, 91,111,184, 92,117, + 9,173,193, 37, 37, 37, 96, 24, 6,102,102,102,224,112, 94, 47,247,109,108,108, 48, 96,192, 0,244,238,221, 27, 31,125,244, 17, + 30, 61,122, 36,254,232,163,143, 6,212, 70, 54,126, 81, 16,154,185, 57,232, 10, 19,214,233,198,153, 7,161, 63,127,253,155, 93, + 86, 86,214,162, 42,167, 77,157, 62,125, 58,149,159,159,143,209,163, 71, 71, 42,149,202, 15, 0,148,212,198,201,176,200, 8,252, +104, 2, 88, 66,137, 55,221,254,145, 82, 41,228,132,166,105,121,101,211, 97, 99, 98,137,162,168,209,206,206,206, 56,124,248, 48, + 84,170, 55,167, 11, 51, 55, 55, 71,124,124,252, 43, 87,141,195, 65,183,110,221, 56, 20, 69,141, 6,176,160,102, 78,186,233,141, +187, 47,236, 43,247,131, 6,120,241,187,249,210,217, 47,179,203, 8, 0,106,249,242,229,122,225, 6, 0,171, 87,175, 54, 36,156, +160,121, 60,228, 70, 68,188,202,136,185, 52,104, 62, 5,138, 7,208,220,138, 86, 84, 16,128, 48, 0,171, 5, 88, 13, 32,114,106, +102, 72, 52,248, 53,105,238, 22,190,110,227, 78, 75,165,134,224,240,169, 43, 72, 73,121, 14, 14, 77,195,181,181, 27,222,235,211, +139,231,219,197,191,217,119,171, 22,157,126,153,246,100, 48,128, 59, 13,142,104,150,136, 90, 55,183,197, 79, 63,223,135,157,149, + 41, 70, 15,123, 31, 98,145, 16,223,110,251, 5,223, 44,157, 13, 55, 87, 23,236,222,188,182,214,203, 45, 44, 44,214,120,184,181, +118,217,185,255, 12, 60,220,221, 57, 59, 15,156,129,135,167,110,235,229,193,217,121,224, 12, 60,189, 60, 57, 59, 15,156,129,183, + 87,187, 22,247,164,183,215, 20, 20, 20,204,174, 61, 62,171,165,209,123, 21,105,196, 43,101,245, 5,193,139, 25, 51, 0, 64, 47, +180, 26, 2, 30,143,215,244,229,203,151,246,245,157, 87,159,107,160,115,178,238,105,181, 90,228,228,228, 80, 69, 69, 69,196,210, +210,114,216,249,221,203, 78, 12,236,233, 83, 0, 0, 15, 31, 62,180, 14, 9, 89, 55,236,200,189, 18,200,111,109,167,254,251,123, + 4, 59,225,131,128,123,167, 66,167,248, 66,183, 36, 68,117, 40,149,202,148,142, 29, 59, 18,221,247, 38, 66,161,144, 95,237,121, +115,110,211,166,205, 27,174,181, 1, 77,138, 91,110,222,188, 57,219,211,211, 19,238,238,238, 81, 93,187,118, 53,151, 72, 36, 56, +127,254, 60, 60, 60, 60,188,204,205,205,111,135,133,133,241,150, 44, 89,226,179,119,239, 94, 0,152, 99, 64,116,246, 15, 12, 12, + 60, 28, 30, 30, 46,226,243,249,144,203,229,136,143,143,135,133,133, 5, 4, 2, 1, 62,252,240, 67, 78,143, 30, 61,108,250,244, +233,115, 44, 41, 41,105, 28, 26, 48, 2, 74,161, 80,144,101,203,150,193,196,196, 4, 38, 38, 38,144, 72, 36,144, 72, 36, 48, 21, +129,218, 53,175,185,120,238,158, 34,241,130,149,187, 66, 15,236, 92,117,173, 89, 51,246,171,244,244,244,162,134, 50, 47,200,121, + 0, 0, 32, 0, 73, 68, 65, 84, 62, 11,242,200, 72,152, 62,124, 8, 84,121,119, 13,133,133,196, 26,193,193,193,245, 57, 82,224, +243,249,232,222,189,123,189,124,214,214,214,199,185, 92,238,107, 53, 83,173, 86, 43, 10, 14, 14,102,146,146,146, 36, 52, 77, 75, + 88,150, 69,112,112, 48,163,213,106, 69,246,246,246, 81, 44,203,102,231,229,229,141, 48, 32,184, 74, 0,159,211, 52,189, 69, 40, + 20,114, 91,180,104,145,186, 98,197,138,155, 58, 55, 19,132, 16,186, 69,139, 22,126, 98,177,216, 69,169, 84,106, 81,209,116,104, +116,179,140,168, 17,132, 16,223, 10, 83, 88, 15, 21, 0,129,238,123,126, 69,105, 7,219,106,191, 3, 64,158,174,162,232, 80,203, +126, 62,128, 71, 0,218, 1,176,215, 29,187, 75, 81, 84, 65, 35,130, 89,187,163, 21, 30, 30,174,175,194, 6, 5, 5,233, 11, 22, + 51, 51, 51,220,189,123, 23, 20, 69,193,204,204, 12,230,230,230,176,176,176, 64, 73, 73, 9, 30, 61,122,132,196,196, 68,188,120, +241, 2, 20, 69,193,213,213, 21,149, 47, 80, 21,232, 51,184, 95, 55,132, 67,100, 42, 4, 69, 1,157,250,122,195,187,119,123,116, +185,243,108,222,189,203,212, 30,169, 84,154, 12,128,219,190,125,251,169,221,186,117,195,198,141, 27,161, 84, 42, 55,214, 34,178, +244,156,215, 31,105, 59, 3,128,147,147,211,226,131,231,159,154, 76, 28,212,186, 92, 42,149,126,223,136,200,121, 45, 35,206,203, +203, 51,120, 45, 62,150,101, 81, 88, 88, 88, 39,103,117,135, 96,211,150,237,150,178,226,108,124,253,237, 65,104, 52, 26, 44, 90, +180, 8, 44,203,234, 63, 69, 69, 69, 6,133,147, 48,204,155,222, 1, 93,209,122, 74,113,129,230, 99, 43,116, 69,218,225,237,160, + 8, 64, 49, 0,222,188,175,234,133,144,136,195, 23, 31, 89,245,237, 86,203,232,196, 12,156,186, 18, 13,117, 73, 38,164, 15, 79, + 84, 88,142,221,199,225,168,146,131,174,222,173, 49,127,249,119, 86, 95,206,159,116, 68, 37,151,185,227,245,102,196,203,245,191, + 52, 12,190, 94,179, 6,123,182,110,196,119, 27,183,162,164,184, 8, 60,158,173, 46,163,103,192, 48, 76,221,247, 78,200,160,224, +121, 31, 83,223,254,112, 28,126,158, 78, 56,118,254, 14,122,118,116,193,137,139,247,208,219,183, 37, 78, 93,142, 70,223,174,173, +113, 54, 34, 14,243,167,143,163,198, 93,216, 59,168, 33,105,180,121,243,118, 75, 89, 73, 54,194,215,238, 71,206,142, 29, 72,157, + 61, 27,126,186,115,238, 80, 20,248, 77,155, 2,252,250,211,168, 58, 18, 18, 18,160, 84, 42,107,170,237,195,195,195,163,222,116, +151,203,229,247,181, 90, 45,201,206,206,166,178,179,179, 33,145, 72,168,248,248, 56,198,203,171,253,112,146,248,219,143, 0, 16, + 18,178,110,248,209,251, 37, 40,143,218, 10,249,205,109,224,183,140,161,247,172,158,174,158,182,114,247,253, 42,239,232,107,225, +204,202,202, 26,156,149,149, 5, 0,104,213,170, 85, 98, 82, 82, 82,187,202,166,102, 93, 19, 34, 95,171,213,186, 85, 54, 39,106, +181, 90, 40,149, 74,244,239,223,159, 83,215,189, 91, 89, 89,117,243,240,240, 64,116,116, 52,182,110,221,106, 29, 24, 24,136, 39, + 79,158,128,162, 40,172, 91,183,142,242,244,244,228,229,229,229, 97,224,192,129, 56,126,252,120,247,146,146,146,250,226,211, 76, + 34,145,236, 61,125,250,180,136,166,105,200,100, 50,176, 44,139, 30, 61,122,128,166,105,196,197,197, 97,249,242,229, 56,126,252, + 56, 78,158, 60, 41,246,245,245,221, 91, 94, 94,238,129,215,155,245,107, 75, 35,162, 80, 40,136, 80, 40,132, 80, 40,132, 72, 36, +130, 72, 36,130, 64, 32, 64,169, 2,152,182, 41, 85,201, 17,217,178, 94, 29,123,182,254,120,238, 58,250,251, 21,159, 92, 5,112, +202,208,103, 30,168,232,147,181,229,151, 95,182, 78, 40, 46,166, 1,224, 39,138, 98,213,132,124,103,200,251, 14, 0,165,138, 98, +184,184, 54,197,177, 35, 39, 49,114,236,176, 26, 69, 22,143,199, 7,159,199,131,185,181,164, 94, 78, 62,159,239,144,152,152,104, +195,227,241, 64, 8, 1,195, 48, 80,171,213,217, 95,126,249,165,221,144, 33, 67,204,206,157, 59, 71, 15, 25, 50,132,181,178,178, + 42,187,115,231, 78,142, 86,171,181,233,213,171, 87, 67,158,249,157,222,222,222,157, 78,156, 56,241, 73,112,112,240,189,197,139, + 23,127, 93,245,224,250,245,235,215,156, 61,123,214,101,248,240,225, 7, 30, 62,124,184,179, 33,121,200,219,230,243, 70,206,191, + 31,103,109, 90, 68, 7, 7,138,162,194,171,228,217, 65,149,251,193,193,193,203, 66, 66, 66,226, 41,138, 10,175,250,123,229,121, +186,202, 98,120, 77,251,186,107,173,151, 46, 93,218, 62, 52, 52,116,157,191,191,255,225,168,168,168,231, 0, 26, 42,180,234,238, +163, 85,121, 67, 85,111,178, 90,161,134,146,146, 18,148,148,148, 32, 61, 61, 29,187,118,237,210,189,208, 60,112,185, 92,112,185, + 92,125,127,134,218,112, 37,252,207,109, 0,182,117,234,212,137, 23,123, 51,236,220, 23,123,230,246,235,220,191, 19,231,254,149, +216, 81,168, 88,143,112,240,228,201,147,109, 1, 96,255,254,253,121, 0,206,253, 31,169,230,176,228,228,228,249, 78, 78, 78,250, + 62, 42, 85,155, 15,181, 90, 45, 68, 34, 17, 42,251,178, 40, 20, 10,236,218,181, 75, 75, 8, 9,171,131, 19, 73,241, 87,145, 28, +127,173,226, 58,150, 5,203,188,186,126,213,170, 85,250, 97,160, 0, 48, 67,231,156,212, 43,242,106,138,115, 82,109, 91,237,119, +194, 48,245, 52, 79,240,231,142,154, 52,219,137,165,184,248,253,234, 3,240,120, 60,176, 85,220, 76, 30,167,162,182, 28,255,228, + 37,156, 29,188,240,193,184,233,142, 39, 14,108,159,171, 85, 43,190,109,104, 92,187,123,251, 99,222,252,249,248,113,207, 30, 44, + 95,185, 70,175, 0,180, 12, 3,109,189,225,164,233,254, 61,218, 67, 91,250, 18, 28, 14, 7,125,253, 90,131,195,225, 96,128,127, + 91,112, 56, 28, 12,236,225, 14, 46,151,139, 65, 61, 61,209,166, 77, 27,112,185, 92,186,158,116, 71, 82,252, 21, 36,199,255, 81, + 69,244, 18, 16, 0,106,169,244,141,243, 53, 82, 41, 72,115,155,134, 62, 91,152, 58,117,106, 81,122,122,186,186,250,177,102,205, +154,241, 35, 35, 35, 45,107,105,182,211, 67, 44, 22,251,114,185,220,251, 5, 5, 5,172,137,137, 9,205,178, 12,235,229,213,158, +115,126,247,178, 19,149,231, 44, 93,186,236,196, 24, 95,243,225, 7,195,194, 9,191, 69, 79,138,226, 9,181,159,173,220,205,231, +241,197,190,128,220,144,202, 3,173, 84, 42,241,248,241, 99,212, 23, 30, 66, 72,157, 77, 63,133,133,133,147, 61, 60, 60, 34,183, +109,219,102, 77, 81, 20,174, 95,191, 14, 14,135,163,255, 60,123,246, 12, 52, 77,227,139, 47,190, 80,151,148,148,124, 90, 95,216, +184, 92,238,252, 99,199,142, 89, 8, 4, 2,200,100, 50,253,123,195,225,112,144,152,152,136,239,191,255, 30,147, 39, 79, 70, 90, + 90, 26,156,157,157,177,104,209, 34,211,208,208,208,249,106,181,122,141, 1, 73, 20,163, 82,169, 58,155,152,152, 64, 36, 18,161, + 82,112, 1,192,197,120, 94,156, 92, 46,239, 96, 99, 83,238,104, 23, 17,254,123,247,192, 15,124,108,236,156,252,165, 82,105,131, +150,206,122, 10,236, 73, 97,152, 47, 7,159, 56, 97,127,227,196, 9,246,214,233,211, 25, 66,153,108,183,193,207,144,134, 70,234, +179, 12,248,250,250,226,254,253,251,240,245,245,173, 42,154, 32, 16, 8,192,231,243,193,231,243, 97,107,101, 80, 23, 10, 66,211, + 52,110,220,184, 1,134, 97,160, 82,169,160, 82,169,224,233,233, 89,112,237,218, 53, 83, 0,120,246,236, 25,153, 56,113, 98,209, +237,219,183,209,177, 99,221,235,169, 59, 56, 56, 68,114, 56,156, 22, 85,127,203,207,207,183, 26, 49, 98, 4, 10, 11, 11,223, 31, + 49, 98, 68, 79,221,251,155,249,219,111,191, 77, 4, 0,129, 64, 0,154,166, 25, 24,241,175, 71,125, 90,164,170, 80,170, 46,184, + 66, 66, 66,130,170,255, 86, 85, 84,213,244,189,234,181,161,161,161,235,170,112,203, 27, 17,252,250,251,104,133,135,135,147, 26, + 20,164,193,168, 79,104, 85, 34, 58, 58, 90,227,236,236,252, 99,242,131, 23,253, 90,123,187, 66, 44, 17,190, 7, 96,155, 80, 40, + 92, 56,105,210, 36,220,186,117, 11,113,113,113, 63,227, 45, 71,225,180,111,223,254,130, 80, 40,116,169,165,153, 36, 53, 46, 46, +110, 96, 45, 5,195,202,211,167, 79,163,174,206,240, 87,175, 94,173, 90, 40, 85,237, 12, 95,243,131,193, 18,104,212, 26,148,149, +203, 95, 21,226, 58,161, 85, 86, 86,134,177, 99,199,190,230,104,229,228,228,212,123,127, 20, 69,225,251, 83,167,112, 41, 44, 12, +239,251,248,224,248,157, 59, 8,157, 52, 30,238, 46, 77, 64, 24, 10,132, 2,210, 14,109, 71,126, 73, 41,126,189,114, 3, 5,178, +114, 76,232,213, 11,110,230,182,117,243,242,248, 3,252,186,249,243, 47, 71, 61, 2,143,199, 5, 13, 22, 68, 83, 14,103,143, 62, +224,208, 52, 44, 28, 90,130,207,227,129,199,227,226, 89,122, 30, 60,218,119, 17,132, 11, 68, 3, 26, 35,180,154,185,180, 4,195, + 48,152, 60,121, 50, 14, 31, 62, 12, 27, 71, 23, 88, 52,107,143,111, 54,238,193,251,253,123,213,123,255,149, 53,120, 46,151, 11, + 14,135,243,198,182,242,187, 33,238, 36, 97, 9,212,213,211,136, 37, 0, 33,104,186,118, 45,154,174, 93,139, 59,186,255,244, 44, + 43,131, 92, 46, 7,186,122, 53, 72,100,169, 84, 42,164,167,167,171,179,178,178, 28,106, 56,158,173, 82,169,234, 21, 54,251,246, +237,139,153, 50,101, 74,103,107,107,235,123, 49, 15, 31,106,188,125,124,120,231,118, 45, 59, 89,217,108, 8, 0, 62, 62, 62, 5, +203,150, 45, 59, 57,113,116,208,176,157,193, 31, 49, 51,215, 28,224, 10,197,226,206, 65,139,247,197, 28, 26, 61,186,254,246, 30, +165, 50,197,219,219,155, 24,114, 95,229,229,229, 89,117, 28, 30, 10, 96,117,167, 78,157,204, 3, 3, 3, 17, 25, 25,137,145, 35, + 71, 42,213,106,117, 50, 0, 12, 25, 50,164,237,175,191,254, 42,120,244,232, 17,236,236,236,120,169,169,169,123, 81, 79, 7,121, +129, 64,208,167, 75,151, 46,180, 82,169,124, 67,100,133,134,134, 98,220,184,113,104,219,182, 45, 88,150, 69,105,105, 41, 2, 3, + 3,121, 91,183,110,237, 99,160,208,154,231,238,238,254, 61, 42, 70, 29, 86,205, 11, 19, 80,209,172,133,252,252,252,172, 7,183, +175,196,247,234, 63,162,115,139, 54,237,157,226, 98,238,215, 73,104,111,111,191,148,166,233, 49, 44,203,114, 74, 74, 74,210, 31, +168, 84,109, 60, 93, 92, 28,122, 12, 27,134, 98, 30,143,179,229,202, 21, 58, 91, 38, 51, 5, 96, 80, 19,164, 66, 83, 6, 23,215, +138,174,126, 35,199, 14,195,253,251,247, 49,234,163,225,224,243,249,224,114,121, 21,239, 38,191,194,209,178,180, 53, 55,232,217, +212,104, 52,250, 60,188,178,159,151, 90,173, 70,101,215, 44, 19, 19, 19,253, 49,165, 82, 9,138,162,234,122, 54,220,142,174, 89, + 97, 47, 54,183, 0,163,209,192,107,216, 40,253, 51,125,251,167,157, 98,176,172,184, 40, 53, 5,115,194, 78,243, 96,132, 17,181, +184, 90,117,105,145,170, 66,233,109, 65, 81, 84,120,112,112,240, 50, 0, 36, 56, 56,120, 89,229,126, 72, 72,136, 28, 64,102, 35, +197,214, 27, 46, 23,247, 93,136,172,202,230,133,186, 16, 24, 24, 56,199,204,204,108,107,229,126,250,173, 76,164,223,202,132, 71, + 59,175, 30,157,124, 58, 23,143, 27, 55, 14, 54, 54, 54, 88,188,120, 49, 1,240,115, 67,255,255, 89, 82,188, 41, 0,226,228,228, +180, 88,151, 33,251,220,185,115,199,238,238,221,187,232,210,165,203, 43,235, 94,173, 70,207,158, 61,235,162,146,233, 58,181, 47, +120,119, 46, 25, 11,181, 90,141,242,114, 57, 84, 42, 53,180, 26, 22, 90,173, 22,190, 94,102, 56,176, 39,184,226, 55,109,165,123, + 86,225,154, 53,117, 52,131,153, 41, 79, 67,211,148,252, 94, 76, 86,141, 57,166, 74,165, 66, 76,106, 42, 30,190,120, 1, 0,248, + 32,164,238,142,175, 7,174, 68,194,211,211,179,190,208,182,110,234,236,136,151,151, 98, 42, 50,111,121, 58,238,254,121, 20,102, +102,166, 0, 0,175,128, 9,224,243, 43,132, 86,153, 92, 13,219,118,205, 64, 17, 82,235,180, 0, 38, 86,142, 23,184,124,145, 11, + 97, 88, 16,194,130,176, 12, 8, 97,193,225,241, 77,230,204,248, 4, 44,203,192,207,207, 15, 20,135, 3, 70,163,196,232,161, 3, + 80, 88, 44,131,141,165, 97,133, 4,159,207, 71, 64, 64,128,184,182,227, 79,158, 60,145, 87, 21,102,117,167,145, 6,101,101,114, + 40,149, 74,168, 85, 90,168, 53, 90, 48,173,248,248,250,203,241,208,170,181, 40,255,200, 31,106,141, 22,236,252,225, 80,171, 52, + 72, 51,161,105,111, 15, 91, 13, 13, 74,254, 32, 33,215,188, 62,161, 85, 41, 14,106, 67, 77,125, 2,107, 17, 91, 15,167, 76,153, +226,235,237,227,115,127, 76,127,159, 13,177,113,241, 47, 99,227,226,223, 56,207,165,173, 79,202,204,208,195,139,120,124,177,111, +208,226,186, 71, 29, 86, 69,213,102,196,183,196, 50,153, 76,230,109,106,106,138,164,164, 36,112, 56, 28, 80, 20,245, 4,128, 55, + 0, 56, 57, 57, 61,229,114,185,174, 28, 14, 7, 59,118,236,160,184, 92,110, 7,127,127,255,101, 10,133,226,104, 29, 21, 58, 15, + 51, 51,179,215,220, 44, 62,159,143,224,224, 96, 76,156, 56, 81, 47,178,248,124, 62,246,237,219,135,206,157, 59, 67,165, 82,121, + 24, 24,222,187, 0,122, 25,224,248, 81, 58,113, 94,175, 24,213,106,181, 83,242,199,140,105,131,136, 8,244,112,117,245,244,245, +245,133, 90,253,202,208,116,117,117,109, 38,147,201,178,228,114,249,127, 81, 49,181,193,131, 58, 69,145,130, 69,234,179,138,238, +167,247,239,223,135,159,159,159,222,193,170,234,102,241,249,124,136, 5,166, 13, 18, 90, 44, 91,145, 47,201,100, 50, 58, 34, 34, +194,214,221,221,157, 2, 0,119,119,119,234,193,131, 7,214, 38, 38, 38,121,173, 91,183,174,183, 2, 44, 54,183,192,190, 41, 99, + 1, 0, 95,245, 31,164,175, 24,157, 95,189, 12, 60, 30, 15,253, 22, 47,123,227,185,103, 89,150, 3, 35,140, 34,203, 0, 45,242, +174, 68, 86,117, 71, 43, 36, 36, 36, 62, 36, 36,228, 13,119,172,129,168,223,209,170,106,221, 53, 20,149, 47,107,109,216,184,113, + 35, 58,116,232, 80,103, 65,180,117,235, 86, 28, 60,120,112, 35,128,103, 13,182, 28,251,117,242,194,166, 19,241,174,109,189, 40, + 0, 88, 51,127, 40, 93, 86, 86,134, 27, 55,110,192,194,194, 2, 79,158, 24, 60,237,151,153,133,133,197,106,154,166, 71,115,170, +143, 0,168, 89, 96, 50, 44,203,134, 21, 23, 23,215, 58,189, 3, 33,128, 90,163, 69, 89,185, 2, 42,149, 10,243,191,216, 94,111, + 32, 66, 0, 74,173,146,113, 3,122,251,139,107,115,116,252, 58,244,193,172, 73,166,111, 20,222, 28, 26,160,105,160,163, 95,133, +227,242,224, 78, 60, 88, 22, 96, 88,192,214,222, 10, 63, 31,218, 80,167,200,215, 50,172,174,118,204,160, 84,201,192,163, 91, 16, + 50, 18, 34,244, 14,146,128, 95,209,100,204,231,241,192, 18,170, 98,214,135,218,132,144, 64,236, 82, 40,125,230,182, 39, 60, 22, +211,130, 58,224,183,203, 49, 24,213,223, 27,215,110, 63, 66, 96, 87, 79,196, 39,191,128,151, 91, 11,236,216, 27, 6, 66, 32,251, + 97,211, 55, 89,175, 10, 52,109,170, 33,142,214,173, 91,183,228,213, 93,172,170, 91, 82,127,121, 8, 66, 94, 57, 90,114,133, 18, +139,151, 26, 52,157, 79, 69, 26,245,234, 38, 54,228,228,186, 28, 43, 67,132, 88,117,103, 11,245, 76,207,210, 10, 64,103, 96,201, +255,101,198,201, 48, 12,206,156, 57,163, 79,143,154,210,177,106,218, 25, 32,114,144,154,154,138,248,248,120,116,235,214, 13,197, +197,197,224,209, 52, 22,197,198,194,115,210, 36,168,248,124,176, 44, 11,129, 64,128,233,211,167, 27, 28,159, 13,204,157,117,157, +185,153,250,200, 55,248,251,251,183, 73, 42, 43, 67,124, 98, 34,250,175, 90, 5, 0, 56,123,246,236,107,207,196,194,133, 11, 5, +143, 30, 61,154,122,239,222,189,169, 47, 95,190,220, 8, 96, 81,173,249, 44, 81,234,251,104,141, 25, 63, 18,109,220, 91,225,224, + 47,135,244,199, 23,126, 62, 15, 60, 30, 31, 60, 62, 15,150, 22,150, 6,221,141, 70,163,209,139,214,242,242,114,250,236,217,179, + 77, 7, 12, 24,192,159, 55,111, 30, 5, 0, 7, 15, 30,164,183,109,219, 38,185,116,233, 18,191, 73,147, 38,210,122,197,165, 90, +253, 70, 26, 83, 20, 5, 30,143, 7,190,128, 15,176, 44, 40,138,146,172, 95,191,126, 77,124,124,124, 23,119,119,119, 40,149,202, + 73,168, 24,168, 97,156, 71,203, 40,182,234,212, 34, 53,245,181,210,185, 82,181, 33,183,106,191,173,218,132, 90,213, 62, 91,104, +220,160, 12,195,250,104,213, 4, 14,135, 83,175, 91, 69,211,116,189, 77,135, 11, 23, 46,132,153,153, 89,109, 5, 16,137,141,141, +125, 36,149, 74,247, 0,216,222,168,196,185, 18, 29,191,122,193,112, 25,116,109,171,150,150,150,121,125,251,246, 45, 5,160, 62, +122,244,245, 10,178, 82,169,172,181, 0,183,176,176, 88,253,211, 79, 63,205, 29, 54,108, 24, 93,125,138,129,170,205,123,149, 31, +141, 70,131,163, 71,143,206, 93,178,100, 9,138,139,139, 23,212, 85,136,151,151,201, 33,215,117,132,126, 26,247,155,161,153,122, +173,135, 76, 45,157,208,180,149,119,173,133, 9,205,175,232, 67,228,208,252, 85, 1,102,102, 38, 2, 83, 7, 39, 69,209,207, 94, +164,189,108,210,204,209, 26, 79,211,115,225,208,162, 3, 10, 51, 95,197, 3,151,203, 1, 79,215,116,104,105, 46, 65,110, 78, 14, +104,154, 83,167, 48,254,230,215,104,220,142,123,129, 99,151, 31, 64,173, 40,195,166,253,231,161, 86,150, 66,173, 40,131, 90, 81, +177, 93,183,228, 51, 80, 20,178, 52,202,178,182, 13, 73,119, 46,151,139,174, 93,187,214, 42,116, 50, 51, 51, 13,116,180,136,222, +209,146, 43, 26,152, 70,134,213,156,234,116,172, 42,143, 55, 86, 24, 84, 78,249, 32, 22,139, 59,239,219, 87,251, 52, 14, 53,193, +209,209,241,156,169,169,105, 75, 67,207,111,192,228,165,235, 44, 45, 45, 87,187,187,187,123,108,218,180,137,199,225,112,208,175, + 95,191,182,142,142,142,169, 0,224,229,229,229, 92,153,199,204,156, 57,147,220,186,117, 43,174,162,142, 81, 59, 4, 2, 65,162, +133,133, 69,231,192,192, 64, 20, 23, 23, 35, 61, 61, 29, 18,137, 4,158, 27, 54, 32,118,230, 76,248,236,218, 5,186,111, 95, 80, + 20, 5,129, 64,128,216,216, 88,136,197,226, 68,133,162,214, 41,223,186, 2,248, 14, 64, 15,188,106, 46, 36, 0,110,160, 98,218, +133,219, 53,228,119, 52, 0, 48, 44, 91, 95, 98,141, 95,188,120, 49,138,120, 60, 96,200, 16,240,159, 61,131, 90,173, 70,183,110, +221,244, 46,123,183,110,221,192,229,114,225,237,237, 13,103,103,103,236,216,177, 99,124, 93, 66, 75, 81,170, 70,234,179, 12,248, +251,251,235,157,171, 33, 67,134,232, 29, 45, 30,143,167,119,182, 40,166,126,225, 74, 81, 20,169, 90, 73,102, 24,134,226,114,185, +220, 5, 11, 22, 80, 35, 71,142, 36, 42,149,138, 21, 8, 4,244,177, 99,199,168,107,215,174,113,203,202,202,234,173,136,183, 31, + 62, 26, 95, 13, 24, 92,241,238,183,180, 3,143,207,131,128,207,199,226,196, 12,125,186,152,239, 59, 44, 8, 13, 13, 29,229,238, +238, 94,209, 12, 15,112,141,243,104, 25, 81,143,209,147, 91, 77, 36,169,170,236,231, 2,160,116,251,185, 85, 4, 85, 46, 69, 81, +119, 9, 33, 93,170,157, 91,121, 92, 85,109, 91,121,252, 97, 35,130, 95,185,214,225, 27,226,171,174, 26,113,242,205,155, 55,221, +124,125,125,145,150,150,246,198, 72,184,202,130, 75, 34,145, 64, 44, 22, 35, 42, 42, 10, 0,146,107, 35,187,118,237,218, 54, 84, +204,186, 92, 17, 34, 39, 39,255,192, 49,125,162,252, 6,117,193,175, 33,135,138,165, 82,169, 55, 94,205,161, 67, 57, 59, 59, 79, +228, 9,184, 99, 93,219, 55, 15, 0,203,126,119,229,244,141, 85,117,221,161,107, 91,175, 82, 0,242,202, 81,135,141, 28,125, 8, +154,166, 71, 15, 27, 54,140,126,244,232, 17,198,142, 29,139,131, 7, 15,214,122,238,196,137, 19,113,248,240, 97, 12, 27, 54,140, + 94,186,116,105,173,211, 59,188,238,150,168,222,217, 67,153,244,228, 33, 14, 28,254,169,214, 62, 72,246,246, 21,253,177,114,114, +242,244,191,117,241,173,187,101,132,213,170, 46, 69,223,187,227,223,189,119, 63,126,122,118, 17, 88,173, 18, 10,217,171,235,203, +139,178, 65,180, 10,240, 77,172,225,104,107,129,251, 55, 47,170,212, 42,197,165,186, 56,231, 14,243,194,204,161, 30, 0, 97, 49, +124,209,207, 8,223, 62, 71, 95,131,238, 57,114, 30,174, 28,221, 98,112, 31,191,234,224,241,120,136,141,141,149,215,230,102,113, + 56, 28, 67,230,228,210,185,142, 26,148,151,203, 81, 46, 87,188,203,188,195,206,193,193,225, 7, 43, 43, 43, 81, 45, 66,202,206, +206,206,238, 7, 27, 27, 27,145,161, 77,135,181,137, 44,221,188, 90,247,166, 76,153,210, 32,177, 37, 20, 10, 91, 38, 39, 39,235, + 39, 43,173,107,171, 82,169, 16, 24, 24,104,232,228,165,167, 1, 60,119,114,114,186,225,233,233,105,241,244,233, 83, 28, 58,116, +136,207,227,241,154, 87,230, 31, 50,153, 12, 28, 14, 7, 57, 57, 57, 26, 0,159,160,158,166, 51,165, 82, 25, 17, 17, 17,209,113, +232,208,161,156,196,196, 68,112, 56,156,138,112,249,251,195,103,215, 46,196, 45, 88,128,128, 23, 47,160, 80,171, 33, 18,137,112, +225,194, 5,117,121,121,121, 68,109,124, 98,177,120, 79, 74, 74,138,151, 72, 36,130, 90,173, 6,203,178,160,105,154,226,114,185, + 61, 45, 45, 45,183, 2,232, 82, 45,177,236,125,186, 4,182, 99,180, 90, 70,154,246, 52,183,190, 8,200,207,207,199,233,211,167, +209,173, 91, 55, 4, 4, 4, 32, 51, 51, 19,207,158, 61,195,251,239,191,175, 63,231,225,195,135,136,142,142, 70,235,214,173,235, +119,244,104, 13, 90,183,107, 9, 62,159, 95,225, 16,241,248,186,138, 15, 79,239,100,241,121,124,240,184, 60,136,196, 34,131, 29, + 45,138,162, 64,211, 52, 40,138,130, 88, 44,174,172,100,179, 77,155, 54,149, 22, 20, 20, 56, 1,224,136,197, 98, 48, 12, 99, 80, +165,165,178,140,168, 20, 89,124, 1, 95,239,108, 1, 64, 81, 81,145, 98,216,176, 97,255, 85, 42,149, 31,163,113, 43,148, 24,241, + 47, 3, 69, 81,119,255, 47,174,109, 0,134,232,132,213, 27,157,226,235,122,192,223,239,222,189,251,174,113,227,198,245,219,188, +121, 51, 76, 77, 77, 33,149, 74,245, 5,162, 64, 32, 64,179,102,205, 80, 80, 80,128,221,187,119, 35, 35, 35,227, 42,128,233,134, +134, 72, 42,149,222,122,242, 32, 57, 63,112, 84,119, 27,175,238,237, 44,211,147, 51,186, 73,165,210, 40,157,200,250,121,220,194, +247, 63, 14, 28,225, 7,190,128,135,244, 39, 89,184,114,250,198,255,151,196,228,112, 56, 28,138,162, 48,118,236, 88,131,206,255, +232,163,143, 16, 17, 17,129,186,154, 25,217, 74, 71,171, 92,129, 50,249,187,171,172,205,154, 51, 17,179,230, 76,212,139, 9, 67, +154, 94, 0,192,217,249, 72, 29, 66, 75,189, 57,252,200,238,105,157,252,252, 93, 58,123,181,196,237,123, 15,240,235,174, 87, 38, +195,222,109,107,240,237,222,171,104,230, 96, 5,181,178, 12,231,126,251, 49, 75,173, 44,223,220, 72, 83,174, 66,220, 82, 20, 8, + 97, 27,116,239,149,226,137,199,227,161,125,251,246,181, 58, 90, 5, 5, 5,242,250, 10, 6,125, 26,169, 52, 40, 45,147, 67, 94, +254,206,132,150, 79,207,158, 61, 47,133,133,133,217,216,219,219,227,229,203,151,213,133,150, 79,143, 30, 61, 46,133,133,133,217, + 56, 56, 56, 32, 61, 61,221,224,105, 69,106, 16, 89,200,205,205,165, 10, 11, 11, 89, 43, 43,171, 6,137, 45,154,166,161, 84, 42, +145,144,144, 96,232,223, 26, 60, 66,204,194,194, 98,223,225,195,135, 45,242,242,242,192,225,112,144,144,144,240,218,168,195,202, +207,207, 63,255,204, 31, 62,124,248, 79, 69, 69, 69,117, 14,107,211,106,181, 27, 39, 78,156, 56, 53, 51, 51,211,202,222,222, 30, + 82,169, 20, 2,129, 0,132, 16, 80,129,129,232,245,252, 57,212, 12, 3,177, 88,140,164,164, 36,236,217,179,167, 76, 55, 85, 76, +141, 6, 25, 69, 81,110,124, 62, 31, 19, 38, 76,120,237,192,254,253,251,241, 65,103, 78,103, 59, 11,110,169, 22, 34,101,182,120, +240, 57, 14,135, 67,249,116,237,219,182,107,239, 33,237, 31,199,221,126,154,155,157, 81, 95,166,164, 81,169, 84,112,119,119,199, +221,187,119,113,249,242,101,244,237,219, 23, 1, 1, 1,136,137,137,193,197,139, 23, 17, 29, 29, 13,138,162, 96, 99, 99, 83,217, +253,162,206, 62, 24,170,114, 45,114, 94,230,191,225, 94, 85,223,231,243,249, 80,202,213, 6,165, 81, 98, 98, 34,238,222,189,171, +159, 90,134,195,225,104, 39, 77,154, 4, 66, 8, 73, 73, 73,129,153,153, 25,153, 50,101, 10,195,229,114,181,153,153,134,245, 15, +174, 20, 85,149, 34,139,203,231,189, 38,208, 88,150,149,197,196,196, 76, 3, 16,163,115,178, 0,227, 60, 90, 70,252,111,227, 12, +222, 92, 88,186, 94, 71,235, 57,128,254,135, 14, 29, 26,127,242,228,201,141, 91,183,110,181, 11, 10, 10, 66, 97, 97, 33, 92, 92, + 92,224,228,228,132,240,240,112,156, 61,123, 54,143, 97,152, 69, 0,106,178,126,250,163,142, 57,107, 50,159, 74,195,148,165,165, + 51,125, 3, 60,112,245,232,245, 16, 71, 71,199,233, 28, 14,103,254,148,101, 31,126,220,103, 88, 23, 36, 69,167,224,214,197, 88, +100,167,229,213,203, 89,189, 51,188,165,165,229, 84, 19, 19, 19, 1, 0,117, 13,181,226,234,163, 14,245,156, 12,195, 48, 42,149, + 10, 71,142, 28, 49, 72,108, 29, 58,116, 8, 10,133, 2,204,155,237,171,122, 78,194, 18,138,203, 19,194,185,153, 59,212,234, 50, +176,108,163, 7, 84,234, 57, 43,107,160, 79, 5, 2,216,231,229,225,246,237,219,134, 73,238, 33, 67,234, 75, 35,133, 74, 33,155, +176,101,237,226,240,217,193,223, 89,246,237,222, 17, 95,109,216, 15,181,122, 47,104, 14, 13,177,144, 15, 95,191, 30,224, 64,137, + 31, 66, 63, 47, 42, 47, 41,156,128, 55,151,226,121,141,147,212,213,194, 66, 0,134,101,113, 57,242,142,193,247,174, 47,237, 25, + 6, 92, 46, 23, 79,158, 60,145,215, 52,218,144,195,169,104,230,172,172,169,215,197, 73, 88,150,226,241, 69,104,230,226, 9,149, +178,244,157,164,145,189,189,253,231, 39, 78,156,176,169,156, 42, 33, 38, 38, 6, 20, 69, 37,188,114, 28, 43,142,203,229,114,196, +197,197, 33, 38, 38, 6,168, 24,225,102,240,123, 84,233,100,229,230,230, 82, 82,169, 20, 38, 38, 38,116, 76, 76,140,210,219,219, +251, 94, 61,239,183,158, 83,161, 80,188,168,173,255,164, 66,161,104, 34, 18,137,120,213, 10, 81,231, 54,109,218, 36,213,208,132, +248, 70, 56,139,139,139,111, 47, 89,178,196,119,208,160, 65,248,252,243,207, 11,172,172,172,204,126,248,225, 7, 46,135,195,161, +102,207,158,205,228,228,228,148,254,248,227,143, 22, 39, 79,158, 68, 81, 81, 81,148, 1,247, 46, 83, 40, 20,211,186,119,239,190, +255,252,249,243, 38,110,110,110, 40, 41, 41, 1, 33, 4,251,246,237,195,236,217,179, 33, 18,137,144,148,148,132, 15, 62,248,160, +188,188,188,124, 26,222,236, 59, 89,201, 73, 81, 20, 69, 88,150,197,138, 21, 43,244,147,147, 86, 78, 86,106, 38,166,176,103, 97, + 43,201,188, 31,139, 37,227,191,250,113, 18, 0, 48, 90, 45,243, 56,238,246,211,125,219,191,186,198,231,243, 35,235, 73,163,229, +243,230,205,251, 97,200,144, 33, 98, 83, 83, 83, 20, 20, 20,224,198,141, 27,184,121,243, 38,110,221,186, 5,149, 74, 5, 27, 27, + 27, 88, 89, 89, 65, 42,149, 34, 49, 49, 81, 14, 96,121, 93,156, 2, 19, 30, 92,219, 86,142,252,173,112,176,120, 85, 70, 27, 86, +117,183,248, 60,158, 65,239, 81,239,222,189,209,181,107,215, 74, 1,196,164,166,166, 74,149, 74, 37, 85, 69,244,103, 86, 10,242, +230,205,155,107, 15, 30, 60, 72,234,226,188,181,103, 7,206,127,189, 28, 2, 62, 31,139, 18,210,245,162,107,127,223, 78,224, 9, +248,240, 24, 58,178,234,181, 59, 81,209, 92,136,106, 34,171,174,178,227,173,223, 77, 35,231,223,150,243,127, 25, 82, 52, 98, 9, +158, 74,252,170, 80, 40,206,125,246,217,103,161, 62, 62, 62,159,109,218,180,137,226,243,249, 88,181,106, 21,121,249,242,229, 47, +186, 90, 72, 97, 99, 66, 69, 8,249,229,143,227, 81, 51, 38, 7, 15,163, 22,110,158,210,243,222,149,184,196, 14,221,221,208,161, +187, 27,238, 93,125,132,237,203, 14, 29,100, 52,204,138,172,172,172,180,122,168,148,253,123,180,171,222, 25,222, 38,226,218, 21, +155,134,142, 58,100, 89, 54,236,208,161, 67,115, 71,140, 24, 65,223,185,115,231,141, 62, 89,149,203,238,176, 44,139, 75,151, 46, + 65,173, 86,227,151, 95,126, 97, 89,150,173,125, 30, 45,144, 83, 91, 54,135, 78,254,229,192, 41,129,128, 79,225,102,228, 49, 20, + 23,214, 61,170,139,207,231,225,231,125,199,213,124, 62,239,113, 77,199,213,106,117,250,149, 43, 87, 28, 6, 50, 12,143,166,233, +154, 4, 84,141, 8, 11, 11,211,176, 44,155, 90,207,105, 81,217, 25,105, 67,191,249,252,147, 67, 67,198,124,230,208,189,123, 79, +158,173,189, 3, 40,138, 66, 78,118, 14,146,226,238,104,206, 29,251, 41,187,172,220,176, 37,120, 62,249,254, 15,125,159, 44, 0, + 8,154,189, 85,223, 63, 11, 0,134, 78, 89,130,192,110, 94,160, 12,177,158, 94,137, 44, 86,171,213, 66, 34,145, 64,171,213,214, + 56,197,131,133,133,133, 88,161, 80,200,117, 19, 49,214,105, 21, 17,224,157,167, 17,195, 48, 30,133,133,133, 40, 43, 43,195,205, +155, 55,201,218,181,107,115,115,115,115,245,157, 54, 53, 26,141, 71, 65, 65, 1, 74, 75, 75, 17, 21, 21, 69, 66, 67, 67,115,243, +243,243,151, 53,228, 29, 18,139,197,157,185, 92,238,189,194,194, 66,214,196,196,132,214,104, 52, 26,111,111,111,161, 88, 44, 54, +120, 65,117,169, 84, 58,168,182, 99,174,174,174,201,201,201,201,109, 24,134,169,186, 6, 34, 95,161, 80,184,117,239,222,221,144, +252, 99,222,222,189,123,113,252,248,113,191,146,146,146,137,169,169,169,251, 1,248,113,185, 92, 60,120,240, 32, 65,161, 80,140, + 27, 49, 98,196,190,194,194,194,219,168, 88,130,199, 16,156, 79, 74, 74,154,224,225,225,177,119,245,234,213,166, 1, 1, 1, 92, +103,103,103,116,233,210, 5, 73, 73, 73, 56,115,230,140,102,231,206,157,101,229,229,229,159, 0,184, 84,119,178,131,210,106,181, + 16, 8, 4,250,143, 80, 40, 4,159,207,135, 76, 78,240,233,134,103,114, 45,196,242,141,171,166,157, 33, 0,149,149,254, 44, 47, + 39, 43,253, 54, 69, 81,145, 82,169,180,184,150, 56, 19, 40, 20,138,142,132, 16, 14, 69, 81,155,213,106,245,148, 57,115,230, 56, +173, 91,183, 14,237,218,181, 67, 94, 94, 30, 36, 18, 9,220,220,220,144,155,155,139, 59,119,238, 48,229,229,229,187, 0,172,129, +174,255, 72,109, 40,202, 43, 65, 83,199,230,175, 57,159,132, 16, 16, 6,208, 40, 25, 48,106, 2, 21,165, 1,143,167, 1,159,207, + 55,196,121, 34, 44,203,162,208,201, 9,108, 92, 28,110,221,186, 5, 66, 72,173,174,154,187,187,187, 1, 25, 59, 11,129, 80,240, + 90,115, 33, 69, 81,224, 11, 4,224, 9,248, 53,141,156, 49,186, 88, 70,252,163, 97,104,219,120, 17,128,233, 15, 31, 62,220,223, +167, 79,159,112, 66, 8, 15, 21,237,145,215,223,230,207,179,178,178,238, 71,157,185,191,212,161,169, 85,232,224,137, 61,209,174, +163, 11, 24, 45,131, 27,103, 31,224,151,117, 39, 15,103,166,103, 78,129, 1,107,159,177, 44,123,173, 71,231,118, 52,170,204,213, +237,236,236,204, 54,102,212, 97,113,113,241,202, 69,139, 22,225,243,207, 63,111,204,168,195, 26, 17,155,152, 59,157, 2,105, 58, +116,112,175,129,160,104,162, 82, 41,235,200,248,160,159,185,148,207,231, 61,190, 27, 35,245,174,233,188,220,220,220,129, 31,127, +252,241, 37, 46,151,219,178, 33,113,206,178,108,106,118,118,118,191,250,207,212,222, 80,202, 75,220, 78, 31,222,189,224,252,241, +189, 3, 89,150,105, 77, 1,224,112,249, 79, 53,106,245, 5,165,188,100, 19, 12, 92, 84,122,253,116,127,204,219,114, 17, 59, 62, + 31,138, 57,161, 71,241,211,138, 79,177,116,195, 33,124,247,249, 60,172,221,250, 95,124, 53,111, 2, 70,141,255,152, 37, 20,253, +167,161,247,193,225,112,206,239,222,189,123,242,167,159,126,170, 31,180, 64, 8,121, 45, 99,215,104, 52,114,150,101,177,107,215, + 46, 22,192,249,186,248, 94, 79, 35,138,212,213, 95,202,208, 52, 42, 41, 41,249,196,223,223,127, 31, 0, 33, 33,228, 73, 97, 97, +225,127,128, 87, 75, 67,149,150,150,126,210,189,123,247,125,132, 16, 33, 69, 81,111, 28, 55, 4,186,169, 30, 58, 91, 89, 89,221, +211, 57, 89,194,198,116,136,175, 43,170,235,104, 86, 52,164, 9,145, 5, 48,167,202,140,239,235,252,252,252,170, 46, 42,157, 80, + 88, 88,216,185, 17,225,186, 36,151,203,189, 86,172, 88,177, 64, 36, 18, 5,150,151,151,183, 5, 0,137, 68,146,164, 84, 42,175, +201,229,242, 77,168,127,110, 42, 21,203,178, 73, 90,173,182,189,157,157, 93,197,136, 90,157,216, 2,128,223,239, 49,247, 0,166, + 75,133, 41,254,171,193, 1, 59,123,246,108, 11, 43, 43,171,247, 40,138, 26, 69, 8,113,151,201,100,202, 21, 43, 86, 68,133,133, +133, 21,183,108,217,114,240,144, 33, 67, 40,107,107,107,220,189,123,151,228,231,231, 31, 3,176, 12, 6,140,180,102, 89, 54,117, +253,250,245,104,232,251, 94,215,113,181, 90,157,117,246,236, 89,219, 65, 57, 57, 92,150,101, 49,116,232,208,215, 4, 92,117, 60, +126,252, 24, 74,165,178,206,201, 28,149,197,133,232,187, 96, 9,160, 27,253, 89,137, 10, 39,139,128,168,140,186,202,136,127, 23, +254,234, 5, 61, 13,178, 22,157,156,156,198,138, 36,194, 89, 46,109,157,188, 95, 62,203,121, 36, 43, 46, 63, 40,149, 74,119,215, +146,145, 27,196,217,192, 9, 75,141,246,239, 95,196,249,106, 30, 45, 6,132, 48, 32, 44, 1, 33, 44, 88,150,169, 88,240,154,176, + 32, 12, 67, 81, 20,254, 84,201,235,156, 25,188,122, 56,173,108,109,109,215, 16, 66, 6,113, 56, 28,186,170, 25, 86,245,187,206, +201, 58,159,155,155,251, 85, 13,206,235,255, 92,124,134,133,133,213, 40,254, 13, 29,117, 56,122,244,104,166,129,239,230, 53,137, + 68,226, 84,211,177,178,178,178, 52,169, 84,250,222,223, 36, 62,171,142, 24,108, 8,103,131, 71, 29,214,199,233,226,226, 34, 84, +171,213,157, 0,184, 81, 20,101, 9,160, 64,173, 86, 95,200,203,203,203, 6,208, 25,192, 10,221, 53, 95, 3,184,247,127,252,190, +139,109,109,109,247,210, 52,221,212,144,139,181, 90,173,170,160,160, 96,114,181, 10,129,158,211,198,198,230, 30,151,203,109,106, + 0, 79, 70,126,126,126,103, 99,254,105,228,252, 7,161,122, 39,248,105,132,144, 61,255, 63,254,184,191,145,211,200,105,228, 52, +114, 26, 57,141,156, 70, 78, 35,231,191, 64,104,161,154,208, 2, 33,196, 56,172,214, 8, 35,140, 48,194, 8, 35,140, 48,226, 45, +113,166,154,216, 58, 83,249,133,170, 67,149, 54,196, 18,108,140,178,189,108,228, 52,114, 26, 57,141,156, 70, 78, 35,167,145,243, + 95,199,249,175,192, 95,178, 50,197, 59, 74, 32, 35,167,145,211,200,105,228, 52,114, 26, 57,141,156,255, 62,206,255,101,212,218, +116, 72, 27,227,198, 8, 35,140, 48,194, 8, 35,140, 48,226,175,129,193, 66, 75,226,224,238, 97,235,226,189,207,170,105,135, 24, +171,166, 29, 98,108, 93,188,247, 73, 28,220, 61,254,165,241, 38, 6, 48,158,203,229, 94,114,116,116, 44, 65, 45, 75,239,252, 3, + 96, 14, 96, 20, 42,230,247, 25, 14,192,228, 93,146, 7, 0,220,177,192,172, 73, 64,218, 36, 32,109, 44, 48, 43,224, 31,184, 28, +199,170,185, 78,254,145,231,198,159, 91, 53,215,201,191,198,227,139,156,108,110, 93, 28,189,101,221, 44,103,235,119,244,151,102, +246,246,246,123, 28, 28, 28, 94,216,219,219,167,218,219,219,239, 5, 96, 97,204,238,140, 48,194, 8, 35,254, 50, 84,246,209,170, +252,232,251,104,113, 1, 32, 60, 60, 60, 0,192, 31, 0,250, 4, 5, 5, 69, 84,191,218,170,121,251, 79, 91,183,106,253,249, 55, +171,150, 81,142,246,182, 38, 90,134, 85,167,188, 72,247, 92,249, 77,232,111, 47, 5,220,141,133,105,113, 63, 53, 34, 80, 20,135, +195, 25, 43, 20, 10,131, 0, 84, 10,182, 4,165, 82, 25,206, 48,204, 17, 24, 54, 76, 27, 14, 14, 14,145, 28, 14,167, 69, 67,254, +152, 97,152,180,236,236,236,158,141,140,204,209,205,155, 55,223, 27, 16, 16, 96,226,231,231, 7,129, 64,128, 21, 43, 86, 44,146, + 74,165,155, 12, 37,176,178,114, 53, 83, 11, 69,243,185, 2,193, 0,162, 81,181, 39, 32, 0, 45,140, 99,181,202, 43,124,165,114, + 99, 97,225, 51,153,129, 84,203, 55,111,183,181, 0, 0, 32, 0, 73, 68, 65, 84, 0, 76,209,197,213, 79, 0,214,191,205, 83, 50, +185, 35, 52, 26,166,226,153,224,115,193,156,122,110,241,199,242,229,203,185, 65, 65, 65,248,233,167,159,122,238,217,179,103,154, + 76, 38,187, 2,224,119, 0, 79,223,246,169,116, 0,166,119,239,217,115,203,228, 69,139, 56,242,200, 72,108,217,187,119, 51, 42, +230, 91,218,209,208,103,137,207,199, 40, 91, 91, 94, 16, 33,232, 68, 1, 20, 5, 60,200,205,103,207,170,213,204, 17, 24, 48, 23, + 91, 29, 24,143,215,135,227,255,218, 80,130,226,167,228, 75,225, 80,143, 94,197, 79,175,125, 9, 96,112,245,227, 90,133,104, 50, +225, 52, 11,146,147,232,116, 0, 27,222, 50, 90, 77,236,236,236, 98, 78,157, 58,213,212,207,207,143, 11, 0,247,238,221,155, 20, + 20, 20,212, 55, 55, 55,183, 61,128,146,255,163, 76, 72,196,165,233, 89, 2, 30,111, 0,195, 48, 29, 0,128,195,225,196,170, 52, +154, 75, 90,150,221, 1, 3,231,100, 51,194, 8, 35,254,185,168, 79,139,252,205, 81,235,204,240,149, 55, 71,170,110,171, 66, 98, +223,206,179, 91,191,145,143,139,101,229,138, 23, 47, 50, 11, 23,206, 90,123,105,218,188,239, 79,110,248, 49,252,108,196,237,132, + 91, 30,126,239, 61,146,216,183,243,172,133,186,182, 54,220,230, 98,177,248,254,206,157, 59,213, 73, 73, 73,164,168,168,136, 60, +126,252,152, 28, 59,118,140,204,152, 49, 67, 33, 22,139,239, 3,104,110, 8,167,131,131, 67,246,227,171, 23, 73, 70, 76, 52, 73, +189,119,155,104, 52, 26,162, 86,171,137, 90,173, 38,143,206,135,147,152,223,143,147, 7,199,142, 16,149, 74, 69, 84, 42, 21, 81, + 42,149,164, 85,171, 86, 47, 13, 12,103,117, 56,123,121,121,169,194,195,195,201,111,191,253, 70, 22, 45, 90, 68,124,124,124, 24, + 0,179, 13,189,119,137,189, 91,160, 89, 19,239,220, 79,131,119,168,207, 68, 93, 32,241,207, 31,144,248,231,201, 36,236,114, 2, +153,178,120,171,218,172,137, 79,174,196,222, 45,176,190,123,183,178,178,234, 70, 81, 20,169, 4, 0,210,162, 69,139,210,170,159, +230,205,155,191,246,105,214,172, 89,105,203,150, 45,159,218,216,216,116,170,137,115, 92, 7, 16,242,232, 87, 66, 30,253, 74,150, +247, 6,137,143,143,191, 69, 8,249,163,242, 35,151,203,255, 56,113,226,196, 31, 31,126,248,225, 31, 0, 62,168, 35,158, 12,138, +207, 73, 64,154,236,212, 41, 66, 54,109, 34, 36, 32,128, 36, 0,100, 18,144,214, 64,206, 86,142,142,188, 7,223,175,159,166, 58, +117,234, 23,114,238,220, 25,114,246,108, 56, 57,121, 98, 47,217,188,105,150,218,193,129, 23, 7,160, 77, 3, 56,185, 0,214, 2, +216,136, 10,231, 50, 41, 55, 55,151,100,101,101, 17, 0, 73,186,223, 54,218,217,217,109, 64,205,238, 91,255,170, 78,214,130, 65, +142,231,198, 12,238, 73,100,197, 47,201,152,193, 61,201,130, 65,142,175, 57, 91,131, 92, 93,205,230, 12,237,144, 27,127,239, 32, + 51,103,104,135,220, 65,174,174,102,141,140, 79, 10, 21,235,132,238,188,122,245,170,150, 84,129, 70,163, 33,251,247,239,103,172, +172,172,126,105, 0,103, 91, 59, 59,187, 84,107,107,235,164,170, 63,218,121, 15,239,238,222,107,210, 74, 27,207, 15, 3, 26, 16, + 78, 63, 17,159,159,113,233,232, 15, 76,126, 90, 44, 81,201,179, 73,241,147,104,146,145,112,139,236,223,189, 81, 35,224,114, 51, + 0,248,189,205,179,212, 64, 24, 57,141,156, 70,206,191, 33,103, 93, 90,228,127, 17,111, 76,239, 80,219,141, 9,133,130,224,149, +203,151, 80, 69,249, 69,114, 69,137, 76,165, 81, 40, 20, 52,159, 40, 98, 31, 61,207,161,185,156,162, 5,243,230,154, 5, 47, 93, + 30, 92, 6, 76, 48,240,191,155,251,248,248,220, 57,126,252,184,189,181,181, 53,138,139,139,145,159,159,143, 59,119,238,128, 16, +130, 17, 35, 70, 8,187,118,233,210,233,203, 21, 43,110,102,100,102,250,163,246,130,247,149,120,177,182,197,250,158, 21,107,209, +126,245, 34,191,162,212,161, 40,236, 25, 29,164, 63,103, 77, 70,197,106, 25, 34,145, 72,191, 32,113, 35,224,223,175, 95, 63, 62, + 0, 76,157, 58,181, 68, 38,147,133,232, 28, 14,131, 86, 90,149,216,187, 5,218, 58, 57,135,255,176,107,189,184, 67,107, 55,168, + 53, 90,164,102,189, 4,151,103,137,166, 77,249,248,120,194, 0, 94,239,238,214,182,107,191,222,115, 38,139,197,240,242,188,228, + 11,181,113, 89, 90, 90,238, 63,114,228, 8,142, 30, 61, 10, 0, 72, 74, 74,130,155,155,155,164,190, 48,196,197,197,185,126,240, +193, 7,135,243,243,243,219,212,119,110,245,137,241,133, 66, 33,122,246,236, 9, 79, 79, 79,156, 58,117,170,143,206,217,122, 43, +200, 35, 35, 97,250,240, 33, 16,209,168,202, 75, 43, 95, 95,151, 91,103,207, 28,180, 61,115, 54, 1, 27, 54,236,197,211,167, 21, + 70,155,171,171, 43,198,143, 27,205,139,141,141,242, 26, 53,106,124,212,245,235, 79,123,234,132, 82,125, 88,253,227,143, 63, 46, +107,217,178, 37, 70,141, 26, 53,218,203,203,203,209,220,220, 28,187,119,239,134,147,147,147,171, 74,165,122,114,234,212, 41,231, +172,172, 44,204,157, 59, 23,217,217,217,139,106, 35,234, 51,176,207,151,194,161, 30,189,218,249, 78,134,169,185, 19,126, 60,116, + 4,143,239,239,239,165, 84, 39,124,201,103, 34, 38,202,137,112, 74,110,154,105,112,139,206, 1, 54,109,188, 62,128,139,111,180, +173,130,185,254,252,203, 1,173, 66,185, 34,197,254, 85, 27,164,249,111,144,142, 10,227,180, 47, 73,180,142,187,132,124, 96, 21, + 91, 41,176,244,110, 45,193, 7,189,123,247,214, 39,220,139, 23, 47,160, 84, 42,225,225,225, 65,171, 84,170, 64, 3,227,181,237, +123,239,189,247,231,217,179,103,109,218,182,109,155, 91, 80, 80,160, 63,224,104, 99, 57, 48,226,248,230,185,107,183,252,215,253, + 0,161,138,114, 19, 78,198,214,195,229,215,163,155,239,229,115,199, 15,154, 82,165,233, 16, 88,230, 1,108, 62,158, 29,254, 25, +148,137, 53,198,206, 88,200, 13,236,215,183,201,128,193, 35, 47, 63, 78,126,218, 15,192, 93, 99,189,222, 8, 35,254,213,174, 22, +249,167,221,147, 94,104, 5, 5, 5, 81, 53,221, 32, 75, 88,111, 7,123, 27,241,230,239,247,221,229,168, 85, 42,137,165,133,138, +103, 97,206, 82,102, 22, 28,181, 74, 83,234,226,234, 34, 96, 9,235, 93, 11,127,245, 33,158,148, 88, 44, 62,254,251,239,191,219, +243,120, 60,176, 44, 11, 59, 59, 59,164,164,164,160,168,168, 8, 50,153, 12, 79, 19, 18,208,178,121, 51,172, 10, 94,226, 52,119, + 73,240,241,242,242,242,206,120,189, 25,241,141, 97,163,140,230,245,117,163, 43,151, 96,121,163,202,175,251,173,134, 99,134, 14, + 69, 77, 73, 75, 75,131,169,169, 41,218,183,111,111,122,227,198,141,235,117,136,172,215, 56,173,172, 92,205, 88,161,224,232,206, + 31, 86,136,213,154, 56, 60,122, 86,128,118, 45,123,193,193,166, 57, 94, 22,168,112,235,206,239,136,139,249, 21,173,155, 52,199, +236, 25,125, 69,161,235,127, 59,194,215,182,108, 94, 84,148, 82, 82, 19,103, 73, 73,137,105,171, 86,173,208,188,121,197,186,103, + 12,195,224,209,163, 71, 96, 24, 70,191, 95,117,187,239,216, 85,104, 75, 82, 49,121,210, 36,228,231,231,155,214,196,201,227, 64, +187,112,218,120,174,152, 7, 8, 36,214,170,210,210, 82,253,240, 84,181, 90,141, 7, 15, 30,192,223,223, 63, 32, 44, 44,172, 62, + 85,100, 80,124,170,129,239,182,252,242,203,214, 9,197,197, 52, 0,252, 68, 81,172,154,144,239, 12,125,150,236,237,121,199,206, +159, 59, 96,203,161, 19, 97,109,241, 45,238,220, 73,133, 90, 93, 17,222,252,252, 28,204,153, 85, 2, 62,207, 12,167, 78,253,215, +198,195,163,231,177,172, 44,117,123,188,222,140, 88, 83, 56, 69,231,206,157,195,156, 57,115,240,232,209, 35,103, 14,135,131,219, +183,111, 67, 44, 22,227,251,239,191,231,120,120,120, 56, 75, 36, 18,156, 63,127, 30,217,217,217, 84, 93,225,252,227,194, 31,223, + 20, 63,189,246,101, 22,117,126,208,143,135,142,224,179,113, 99,225, 72,158, 93,183,104, 77,125,243,222,208, 30, 95, 17, 78,179, + 32,137,153,183,149, 91,251,161,224, 11, 76, 49,251,139, 53, 72,138, 59,109, 85, 46,139,153, 69, 49,233,205, 86,109, 8,155,247, + 70, 56,127, 27,205, 76,253,245,134,239,165,230,119, 93, 30, 62,152,118, 91, 26,189, 39,230,149,208,114,229, 82, 52, 99, 81, 89, +147,122,242,228, 9,158, 62,125, 10, 46,151, 11,185, 92, 14,173, 86, 91, 99, 56,157,157,157,167,107,181,218,175,116,233,188, 79, + 36, 18,125,114,240,224, 65,155,170, 66,219,206,123,120,119, 27, 51, 73,191,236,156,252,194,168,187,241,143, 23, 78, 31,213, 39, +242, 86, 92,186,154,247, 97, 90,113,204,169,226, 90,226, 83, 36, 22, 8,142,157, 63,241, 95, 83,205,243,171,144,120,244, 1,207, +212, 13,140, 38, 19,229,133,101,144, 61,149, 66,249,195,118,116,156,181, 0,167, 79,254,102,234,213,161,115,152, 82,163,113, 3, +160,106,196,187,217, 16, 24, 57,141,156, 70,206,191, 39,103,173, 90,132, 16,226, 11,192, 65,183,155,175,211, 5,182, 0,242, 80, +177,138,140,131, 46,239, 16, 84,185,172,250,126,213,115,171,239, 87,253,158,175,251,110,175,219,222,165, 40,170,160,158,160, 59, +161, 98,105,194, 51,186, 45,160,107, 74,172,183,227, 49, 69,209, 37, 12,195, 10,249,118,246,138,169, 99,250,117,184,120,249,222, + 3, 19, 91,115,238,192, 62,157, 2,238,196, 62,191, 73,209,148,134,162,104,131,250,125,112, 56,156,177,155, 55,111,238, 96,110, +110, 14,150,101, 97, 97, 97,129,220,220, 92,168, 84, 42, 20, 23, 23, 67, 41, 43,129, 90, 86,130,135,233, 47,208, 35,160, 15, 70, + 14,122,207,227,191, 39,127, 31,203, 48,204,225,186,120,157,189, 59,233,157,172, 53, 45,108, 94, 89, 19,233, 69,122,209,245,109, + 39, 55,240, 77, 77, 49, 96, 97,240,219, 60, 3,209,103,206,156, 57, 55, 98,196,136,193,139, 23, 47,166,165, 82,233,249,148,148, +148, 30, 0, 30,213, 43, 42,132,162,249, 51,231, 7, 89, 89,153, 18,132, 93,250, 29,189, 59,141,131,137,128,131,252, 18, 53, 40, + 10, 72,136, 63, 14,138,178, 70, 76,146, 20,189, 58,154,227,189,129, 30,166, 39,127, 75, 88,140, 87,253,131,222, 72,154,194,194, + 66,228,228,228, 64,163,209, 64,163,209, 96,212,232,209, 56,176,127, 63,202,202,202, 32,151,203,161, 82,169,192, 48, 12,104,154, +198,165,240, 48,164, 63, 79, 64,119,127,127,160,150,165,151,246, 63, 0, 15,192,173,199,143, 31, 35, 33, 33, 1, 25, 25, 25, 16, +137, 68,112,116,116,196,154, 53,107,160, 84, 86,172, 81, 54,122,244,232, 0, 0,177,111,251, 66, 61, 5,246,164, 48,204,151,131, + 79,156,176,191,113,226, 4,123,235,244,233, 12,161, 76,182,219,144,107,249,124,140, 90,255,221,140,118, 18,137, 4, 25,105,155, +225,238,206,199,162, 5, 54, 8,249, 54, 15, 0, 48,119, 78, 83,116,233,108,139,146,162,223, 96,107,191, 12, 91,183,206,107, 61, +101,202,198, 73,229,229,204,190,122,168,191,252,253,247,223, 71,186,185,185, 53,137,142,142,166, 4, 2, 1,196, 98, 49,196, 98, + 49, 68, 34, 17,114,114,114,144,146,146, 66,214,175, 95,159, 9,224,203,186,136, 86,109,149,222, 4, 48,120,193, 32,156,123,124, +127,127,175, 38,156,231, 15, 71,206,238,249, 34,230, 86,180,236,226,165, 27, 95,107, 21,162,244,162,140,203, 75, 90,117,137,182, +157,245,249,106,108, 95,191, 18,143,111, 71, 22, 56, 52, 47,217, 33,166,148, 53,134, 51, 32, 96, 21,215,201,193, 90, 59,125,202, + 72,203,211, 14, 81,211,207,114,169,220,172,188,251,223, 35, 37, 90, 46,108,211,105, 98, 91, 87, 90,117,245,234, 85,113,239,222, +189,161, 80, 40,244,206,228,193,131, 7, 89,173, 86,123,173,198,103, 83,173,254, 42, 51, 51,211, 73, 46,151, 99,208,160, 65,115, +191,255,254,123, 73,229, 26,117, 12,195,188,230,100,125,179,233,192,133,249, 95,237,184,118,225,240,183,206,223, 4,127,210,103, +194,236,181,215, 80,203, 58,146, 92,154,158,117,250,196, 94, 71,145,149, 6, 98,235,247,160,200,150,227,241,158,207, 80, 94,162, + 64,151,111, 86, 3, 16, 64,165,161,177,123,232, 40,240,108,156,177,242,211, 79,156,151,239,254,113, 6,203,178,155,141,245,122, + 35,140, 48,162, 26, 28, 40,138, 10, 7,128,224,224,224,101, 33, 33, 33,241, 20, 69,133, 19, 66,130,116, 6, 74, 56, 33, 36,168, +242, 28,157, 56,123, 99,191,242,220,234,251,213,191, 47, 93,186,212, 43, 52, 52,116,157,191,191,255,225,168,168,168,231, 0,234, + 19, 90, 67,116,194,170,250, 82, 60, 21,163, 14,131,130,130,168,170,219,215, 28, 45,150,141,124,242,252, 69,249,123,253,187, 54, + 13,143,136,189,251,241,199, 67,250,141, 29,218,123, 96, 74, 90,126, 66,107, 23, 71,219,248,248, 88,115,150,101, 35, 13,137, 37, +161, 80, 24,212,183,111, 95,110, 97, 97, 33, 76, 76, 76,144,155,155,139,204,204, 76,168,213,106, 40,138,139,160, 44, 46,130,162, +168, 16,234,226, 66, 60,189,119, 7,222,173, 93,133,186,206,242,117,162,210,117,169,238, 84, 85,117,182, 4,102,102, 16,154,153, +129,106,120,179,225,135,150,150,150,183, 42, 11, 85,181, 90, 61,107,201,146, 37,121, 44,203, 98,237,218,181,230,166,166,166, 97, + 0,132,245,145,152,217,113,130,252, 59,182,167, 19, 83, 98,208,211,103, 50,218,182,122, 31, 41,217,114,228,201,212,200, 41, 82, +163, 75,239,109,104,225,179, 26,205, 58,134, 32, 33,181, 0,206, 77,220,104,112,133,117, 46,254,156,158,158,254,218,254,225, 67, +135, 80, 94, 94,142,214,173, 91, 99,220,184,113, 88,178,100, 9,198,141, 27, 7,103,103,103, 76, 24,243, 1, 86,174, 92,137,172, +172,172,250,130,170,108,219,182,173,210,197,197, 69,233,226,226,162, 84,171,213, 40, 45, 45, 69, 81, 81, 81,245,248,158,215,208, +136,180,183,183, 95,234,232,232, 24, 99,111,111, 31, 47, 20, 10,207, 62,160,168, 68,133,139,139, 67,143, 97,195, 40,207, 49, 99, + 56,169, 98, 49, 21, 1,152, 26,194,101,107,205, 27, 18,216,119,176,160,168,112,175,222,164,250,228, 99, 59,252, 25,225,133, 27, +215, 59, 99,206,172,214,160,104, 17, 40, 90,128,242,178,171,232,234,231,207,183,180,164,234,123,150,198, 3,120,208,163, 71, 15, +231,217,179,103, 83, 66,161, 16,115,231,206, 85,127,250,233,167,201,227,198,141, 75,190,114,229, 10,227,226,226,130,102,205,154, + 81,205,154, 53,115, 2,240, 64,119, 77,157, 48,111, 77,125,163, 84, 39, 92,183,116,147, 60,103, 96,219,189, 84, 35, 28,181,106, +131, 52,255,155,157,207, 55,164, 60, 46,119,125,124, 59, 50, 63, 57,238, 52,155,114,247,143,188,151,201, 50,215,111,118, 62,223, +176,108,199,203, 26, 95,234,136, 8,176,199,195, 35,212,229,101,229,220, 97, 67, 3,203,167, 79, 29,219,214,218,212,235, 32,154, +188,231,211,162,121,211, 9, 43,215,109, 85,127, 58, 99,190,250,167,159,247, 18,153, 76,134,146,146, 18,108,221,186, 85,123,250, +244,233, 76,134, 97,230,215, 86, 7, 2, 0,141, 70,131,233,211,167, 75,204,205,205,145,158,158,174,119, 68, 1, 64,154,155, 31, +123,227,110, 92,226,194,255,140, 14, 40, 83, 42,149, 23,254,184,151,224,233,230,210,148,162, 72,173, 3, 81, 4, 60,222,128,206, + 93,187,114, 8, 41, 2,197,109,142,167,251,215,163, 36,171, 0, 37, 57, 5,224,240, 36,208, 66, 8, 13, 43,128,165,183, 31,146, +238, 70,163,137,157, 3, 87,200,227, 13, 52,150, 39, 70, 24,241,239, 68, 93, 90,164,170, 88, 10, 13, 13, 93, 87,215,241, 42, 91, + 85,181,125,189,144,170, 46,194,170,126, 7,128,208,208,208,117,132,144,160,168,168,168, 67, 0,228, 6,222,194,180, 42,219,105, +175, 9,173, 58, 93, 40,133, 42,100,241,146, 47, 97,101, 33,182,240,235,228,230,120,234,124,196,189,200,168,123, 9, 45,154,217, +218, 17,141,202,234,187,141,219,155, 82,229,242, 80, 3, 3,225, 97,107,107, 11,181, 90,141, 39, 79,158, 32, 35, 35, 3,106,181, + 26,218,178, 50, 40,139,138,160, 40, 44, 4, 83, 38, 3,159, 97, 32,207,205,129,141,137, 8,120, 53, 34,177, 30,231,141,170, 81, +104, 85,110, 69,230,230, 16,154,153,131,230,241,106,108, 86,172, 5,190,126,126,126, 71,227,226,226,186,246,239,223,255,107, 84, + 12,145, 79,205,204,204,236,183, 98,197, 10,165,131,131, 3,166, 79,159,222, 14,192,228,122, 69,166, 64,229,225,226,216, 14,109, + 93, 39,163, 69,179,190, 40, 42,211, 32,183, 68,131,156, 34, 53,118,111,243,199,177,159,252,240,231,177, 94,136,187, 48, 0, 69, + 26, 71,152, 58,127, 8,194,168,188,234,226,188,116,233, 18,214,172, 89,131,175,191,254, 26,107,215,174,197,215, 95,127,141,204, +204, 76,180,111,223, 30,105,105,105, 56,119,238, 28,164, 82, 41,108,109,109,113,231,206, 29,108,218,180, 9,127,254,249,103,189, + 55,109,200,108,182,186,115, 26,212,150,174,213,106,167, 72,135, 13,235,144,109,109,237,217,169, 83,167,193,115,231,254, 63,246, +174, 59, 46,138,107,109, 63, 51,219, 27,101,233, 44,160, 2,138,162,130, 64, 68,196,142, 26, 73,236, 13, 75, 20, 75, 52,154,196, + 18, 77, 98,176,197, 94,226,181,197,146,168,137, 61,118, 49, 42,118,197,222, 5, 11, 2, 10,210,123,135,101,123,153,153,239, 15, +129,139,134,178,104,114,111,242, 93,158,223,111, 88,118,119,230,217,115,166,156,243,156,247,125,207,123,102,184,119,238,220,185, +234,123,119,119,247, 38, 66,161, 48, 23,175,103, 80,250,214,197, 69, 3,126,182,182, 94,208,105,227, 43,174, 49, 7, 4, 33, 64, +207, 15,227,208,185,235, 35,232, 13, 92,144, 4, 31, 36, 41,128,209, 88, 4,169, 84, 6,134, 33,188,234, 41,226,194,130,130, 2, +143,203,151, 47,147, 41, 41, 41, 16, 8, 4, 0,144,186,120,241,226, 45,235,214,173,139,181,182,182,166, 34, 34, 34,240,251,239, +191,163,127,255,254,172, 73,147, 38,121,184,184,184,108,171,175,222,139, 55,229,220, 61,176,254,220, 40,142, 65,234, 43, 16, 54, +115,133, 82, 50,232,139,238, 54, 98, 0, 56,159,148, 84,110,215, 68,190, 90, 89,254, 52,221,210, 89,241,195,249,164,250,102,156, + 46,166,163, 18,226,239, 29, 56,113,190, 44, 63,175,132,227,231,221, 86,189,106,233,183,220,102,174, 45,214, 44,250,110,170, 67, +150, 92, 80,250,225,140,115,241,225,231, 31, 40,198, 78,152,108,252,244,179,105,154,115,231, 47,157,160,105,218, 27,181,204, 56, +164,105, 26, 57, 57, 57,120,254,252, 57,146,146,146, 80, 80, 80,128,194,194, 66,148,151,151, 87,185, 27, 69,229,242, 51, 91,118, +159,126, 34, 22, 10, 69, 1,222, 30, 77,238, 71,199,230,139,133, 66,145,135,107,147,150,192,226, 26,219, 17,138,162,188, 5, 34, + 33, 0, 2,165, 49, 55,160, 40, 81, 64, 81,170, 64,121,177, 2, 90, 61, 11, 26, 45, 9,181,142, 68,211,238,125,160, 80,106,160, + 40, 42, 3, 77, 81, 62,141,221, 77, 35, 26,209,136, 58,250,250,136,176,176,176,121, 38,238,107,178,123,243,109,225, 21, 22, 22, + 54,143, 32,136,136,185,115,231,182, 69,237, 19,170,170, 99, 71, 13, 27, 0, 19,210, 59, 20, 21, 37, 40,204,136,214, 67,103,205, +249,254,220,193,157,155,237,180, 90, 85,186,181, 84, 66, 73, 68, 60,155, 79,167,172, 64,185,162,100,136,210,244,116, 4, 40, 41, + 41, 65,114,114, 50,132, 66, 33,184, 28, 14, 40,181, 26,148, 90, 9,117, 73, 17, 72,189, 22, 92,138,130,149, 72,136,166, 50, 7, + 52,179,119, 48,137, 51, 49,242, 98, 85,224,123,117,119,225,191, 58,180, 6, 79, 44, 1,207, 76,130, 47, 34,174, 1, 0,184, 92, + 46,176,112,153, 73, 70, 19, 39, 39,167, 83, 7, 14, 28,224, 22, 20, 20,224,241,227,199, 79, 0,148, 1, 48, 3, 64,199,197,197, + 93,142,137,137,233,239,225,225, 1, 0,205,235, 35,147, 23,146,148,193,200, 32, 35, 55, 21, 41,153,209,176,178,112, 3, 71,212, + 18,249,165,122,240,133,110, 48,104,255,237,125,212,200,211,160,214,179, 76,170,187, 78,167,131,209,104,132,209,104,132, 78,167, +195,103,159,125,134,219,119,238,224,208,239, 87,144,252,234, 37, 90,185, 58, 32, 52,116, 44, 58,116,232,128, 59,119,238,212,201, + 53,206, 23, 6, 39, 9,216,235, 63, 38,193,147, 88,107, 59,126,119,225,126,125, 98,139, 32, 8, 6,181,184, 34,223,194,186,192, +192,192, 22, 47,149, 74, 60,143,143, 71,239,197,139, 1, 0,103,207,158,125,163, 46,179,103,207,230,197,198,198,126,250,232,209, +163, 79,179,179,179,215, 3,168, 57,216,156, 1,206,156,185,139,169, 83, 99, 81, 80, 80, 0, 0, 56,124,240,223,186, 52, 37, 89, +143,143,250,189,246,104, 89, 90, 90, 98,253,122, 47,147,206, 39, 69, 81,216,177, 99, 71,149,187, 16, 0,216,108,118,231,217,179, +103, 15,173,105,255, 22, 45, 90,112,235,227,156, 53,220, 73,112,235, 9,243,165, 69,139,102,109,205,109,218,161,200, 16,237, 21, +157,149, 51,125,214,112,167,141, 27,142,101,105,132,132,118, 15, 65,101,184,176, 5,154,189,166,148, 49,233,252,102, 93, 81,211, +241,123,115, 11,228,243,167, 77,254,196,218,220,210, 78,249,235,150, 85, 82,146, 69, 50,167, 30,233, 75,219,186, 91, 91, 14,234, +248,163, 98,234,172,133,209, 58, 99,198, 52,100,156,122,137, 58, 82, 92, 80, 20,133,236,236,108, 20, 20, 20, 32, 61, 61, 29,133, +133,175,221,175,133,133,133,160,105,250,125, 26, 68,168,211,211,145,118,226, 87, 52, 27, 59, 22,254,203,150,130,162,217, 80,171, + 40,172,239,212, 11, 37,101,106,104,105, 2,178, 15, 58, 97,242,217,155, 32, 25, 10,216,190,181,177, 39,105, 68, 35,254, 71, 97, + 74,122,135, 74, 65,180,106,213,170,254,127,246,239, 87, 23, 91,171, 86,173,122,190,106,213,170,134,252,214,219, 46,195,170,247, +149, 49, 90,215,170, 5,160,253,161,211, 44, 47,140, 75,138,141,101,103, 43,213, 74,145,189,157,173, 86, 36,224,211,101,242,114, + 86,244,179, 39,122,101,238,171, 23, 13,168, 71, 92, 76, 76,140, 87,118,118, 54,210,211,210, 96, 84, 43, 65,106,117, 96, 52, 42, +244,238,210, 9, 2, 0, 2,146, 0,151,214,131,205,226,161, 92, 33, 7,128,184,122, 59, 71,131,225, 15,150, 45,130, 32,192, 51, + 51, 3, 79, 44, 6, 79, 98,246,134,133,203, 20,139, 13,159,207, 63,112,244,232, 81, 71, 39, 39, 39, 44, 93,186, 20,206,206,206, +158, 50,153, 76,101, 97, 97, 33,180,183,183, 71,155, 54,109,208,169, 83, 39,156, 59,119, 14, 48, 33,167,148,193, 40,120,250, 34, + 21,157, 11,139,239,224,230,181,159,161, 83,107,225,215,253,103,232,217,205, 96,219,118, 9,232,196,253, 80,229,158,124,109, 61, +112, 24,128,204,244, 84, 16, 44,222,115, 83, 45, 79,149,255, 63,121,242, 4, 7, 79, 94,135, 99,211,214, 72, 79,136, 71,252,213, +203,184,109,107,141,166,173,219, 84,185,129,106, 45, 35, 5,246,242,173,175,211, 68, 45,248,242, 19,126,113,113, 49,223,202,202, + 74, 91,121,238, 28, 29, 29,223, 71,108,125,242,205, 55,223,160,148,195, 1,250,245, 3, 55, 41, 9,122,189, 30, 29, 59,118,132, +191,191, 63, 0,160, 99,199,142, 96,179,217,104,215,174, 29,100, 50, 25,182,110,221,250, 73,109, 66,139, 36,240,216,104, 44,242, +116,119,119,175, 18, 90,123,247, 21, 32,250,209,135, 32,192,195,166, 45,137, 85,251, 54,105,210, 4,185, 57, 73, 32, 8, 38,166, +158, 50, 46,115,112,112, 88,232,232,232,232,190,110,221, 58,150, 64, 32,192,231,159,127,238,166, 80, 40,154, 85,152,146, 49,119, +238, 92, 0,192,162, 69,139,176,120,241, 98,104,181, 90, 85,109,100,123,215,123,203,242,139,233, 79, 25,133,104, 72,144, 77, 51, +239,158,193,189,225,230,209, 19, 61,131,211, 1, 96,165, 21, 59,117,196,154,249,150, 39, 44,205,136, 93, 23,207, 95, 90,212,165, +123,207,249,223, 41,174, 46,255, 97, 71,105,189, 49,143,101,105,123,202, 95,240, 70,110,216,188,109,223,134,239,231,206, 20,164, + 23,232, 74,178, 74, 24,133,132,207,150, 52,183, 39, 36,211,231, 44, 75,206,206, 78,250, 26, 25,231,235,157,105, 73,211, 52,146, +146,146,170, 98,250, 52, 26, 13,148, 74, 37, 50, 50, 50,170,238, 25,181,216,252,163,105, 19, 6,248, 40,213,106,213,253,103, 9, +233, 11,102,140, 9, 84,170,213,170,132,148,244,151,192,166, 26,213, 24, 73,146,207, 84,229,170,222,170, 82, 13, 10, 30,191,128, +115,175,166, 48, 24, 9,232,140, 20, 10,138,202,161, 53, 2, 20,201, 65,219, 17,161,160, 8, 54, 10,179,179, 64,178, 88, 79,240, +102,208,126, 35, 26,209,136,255, 29,212,169, 69, 42, 45, 90,129,129,129,135,170, 91,157, 42,255, 7,160, 69,221,161, 60, 5,213, +197, 84,165, 59,177,182,223,121,139,215, 84,252, 33, 70,171,222,244, 14,149,191,233, 98, 33,151,253,107,209, 24,103,218,104,108, +149, 95,152,103,100,179,249, 28, 23, 11,117, 78,113,186,233,191,174,213,106, 35, 46, 95,190, 60,248,195, 15, 63,228, 39, 60,123, + 2, 93, 89, 25,116,101,165,224,208, 70, 88, 9,219,131,212,107, 65,232,116,112,242,164,161, 41, 23,226,250,237, 24,131, 86,171, +141, 48, 85,104,145, 44,214,155,113, 89, 18, 9,248,102,230,224, 75, 36,111,187, 22,235, 19, 5,162, 62,125,250,244,234,216,177, + 35, 24,134,193,142, 29, 59,160,215,235,121,122,189, 30, 58,157, 14,122,189, 30,114,185, 28,251,246,237,195, 79, 63,253,116, 27, +192,238,122, 59, 51,163,238,242,133, 75,145, 29, 38,142,233,207, 57, 27,177, 30, 70, 29, 5, 53,225, 12,165,210, 0,133, 78, 4, +202,122, 44,144,119, 6, 44,182, 0,129,237,220,112,242, 88,184, 30, 70,237, 21, 19, 85,248, 27, 86,161,140,244, 84,100,190,122, + 9,137, 60, 23,182,230, 34,168,146, 94,194, 47,116,220, 59, 89, 39, 92, 92, 92, 64,211, 52,130,130,130,170,130,171,223, 85,108, + 21, 21, 21,225,244,233,211,232,216,177, 35,186,119,239,142,172,172, 44, 36, 37, 37,161,111,223,190, 85,251, 60,121,242, 4,209, +209,209,104,222,188,110, 35, 97, 97,177,225,108,102,198,227,144, 65,131, 6,113,239,221,187, 7,134, 97,224,225, 97, 14,115, 51, + 49, 8,146,143,214,173,237, 0,188, 30, 3,244,232,209, 3,114,121,146,177,164,132, 57, 91, 79,117, 15, 0,248, 93,167,211, 37, +118,235,214, 77,246,234,213, 43,204,154, 53,139,125,248,240,225, 74, 83, 50,194,194,222,156, 76,161, 86,215,238,186,111,229,237, +249,173,155, 81,218, 93, 32,108,230,106,110,211, 14,110, 30, 61, 1, 0, 31,246,159, 8,183, 22, 77, 32, 47,124,234,170, 81,167, + 14,225,178, 75,164, 79, 55,101,197, 10,251,121, 77,208,228, 95, 75,192,107,215,105,189,151, 93,157,112, 56, 47,157, 51,246,200, +239,167,206, 77,233,219,127, 32,199, 64, 25,141, 94, 77, 57,150, 71, 79,156,201,207, 74, 75,255, 17,233,231, 99,254,109,255,171, +211,138, 71,201,229,114,136,197, 98,196,196,196,104,251,245,235,199, 39, 73, 18,137,137,137, 85, 66,203,206,198,170, 77,103,127, + 47,207,229, 27,246, 93, 16,243,249,252,224, 30,237, 91,199, 38,164,101, 50, 12,145, 90,171,181,213, 96,184,244,236,241,147, 32, + 91, 89, 11, 86,210,181,123,176,238,218, 23, 90, 45, 9,181,142,134,214, 8, 24, 89, 92, 56,250, 6,192,178,121,107, 48, 0, 30, +222,187,109,208, 26, 12, 23, 26,251,154, 70, 52,226,127,218,170,197,212, 37,146, 42,254, 47, 6,144,186,106,213,170,194,106,214, +166, 2, 0, 79, 0,248, 84,236, 87,240,214,113, 5, 4, 65, 60,100, 24,198,191, 26, 79, 65, 53,193, 85,253,127,221, 91,251, 60, +105,128,200,170,254,250,166,208,170,109, 74, 37, 0,216,216,216,216,249,249,181,111,254,203,206, 35, 96, 24, 6, 47,162,215,162, + 36, 63, 30, 11, 87,222,109,238,228,228,212, 61, 43, 43,235,186, 41, 37,160, 40,234,240,174, 93,187,190, 14,248,192,207,207,213, +217, 25, 79, 82, 83,192,101, 40,112, 41, 10,164, 94, 11, 54,165,131,179, 23, 5,146,144, 32, 59,187, 12,171, 15, 28,137,169,200, + 18, 95, 39, 60,251, 14,196,210,204, 50, 16, 4,129,117,129, 94,224,153, 73,192, 21, 75,240,197,169,200, 42,113, 21,177,116, 46, +120, 18, 9,154, 7,152,148, 16, 94,117,245,234,213, 71,207,158, 61,243,247,242,242,194,215, 95,127,141,212,212, 84,208, 52,141, +188,188, 60, 77, 78, 78, 78, 86, 65, 65, 65, 42,128, 19, 0,126,129, 9,153,199,185, 90,205,198,136,227,123,167, 5,118,233,110, + 51,104,200, 79,248,253,216,108,148,150,201,161, 50, 10,161,212, 24,161,212,178, 96,101,237,141,128,118,237,144,157,149,143,231, +247, 46, 40,216, 90,213,218,134,220,160, 4, 65, 32, 58, 58, 26,238, 50, 51,188,188,121, 29, 54, 34, 14,124,100, 14,144,117,238, + 82,149, 95,170, 46,112, 88, 48,126,242,201, 39, 85,153,225,251,244,233,147, 50,118,236, 88,199,217,179,103, 99,231,206,157,184, +125,251,246, 31, 2,180,187,119,239,142, 27, 55,110, 44, 1,176,168, 62,163,158, 78,167,131,167,167, 39, 30, 62,124,136,203,151, + 47,163,103,207,158,232,222,189, 59,158, 62,125,138,139, 23, 47, 34, 58, 58, 26, 4, 65,192,218,218, 26,134,215,226,217, 80, 27, +153, 94,143,163, 63,172,217, 53,111,195,134,159,218,142, 25, 51, 6,199,143, 31,194,196, 9,173, 64,144,124, 16, 4, 31, 3, 7, +180,194,210,101, 15, 17, 16,208, 3, 54, 54, 28,108, 88,127, 50, 89,173,166,246,153,112, 26,151, 95,188,120, 81,166,209,104, 80, + 90, 90,202, 72, 36, 18,162,168,232,245,140,214,154, 44, 90, 42,149, 74, 80, 27,209,179,168,184,181,165,229, 76, 9,163,136, 30, + 82,108,140,246,238, 25,156,129, 15,251, 79,192,165,136,221,136,188,112, 25, 86,236,212, 20,136,203,207, 21,166, 20,202,115,148, + 30,219, 90,127, 48,137,149,169,188,176,109,250,192,151, 44, 71, 71,250,232,220,159,229,165,117, 9, 45, 0, 68,113,236,254, 83, + 39, 24, 12,236, 20, 24,208,194,171,137, 35,175,164, 48,159, 57,118,242, 92,140, 62,229,248,233,106, 2,139,169, 71,168, 47, 13, + 11, 11,251,190,226,255, 61, 11, 22, 44,152,180,122,245,106,219,220,220,220,170, 24,173,252,194,226,200, 78,253,166, 83, 69,165, +101,186, 93, 27,230, 12, 23, 10,248,188, 5,171,119, 93, 51,176,112,175, 54, 94, 35, 77,111, 29, 49,107,225,204,132, 23,209, 78, +205,132, 60,156,156,179, 8, 79, 46, 94,133,129,228, 98,234,229,251,208,234, 41,148, 22, 22,225,202,167, 95, 66, 98, 47,197, 79, +215,142,231,209, 52,253,115, 99, 87,211,136, 70,252,239,162, 54, 45, 66, 16, 68, 77, 57,246,242,106,248,236, 97, 93,199,213,194, +243,103,160,214,172,240, 38, 77,193, 43, 44, 44,204,191,113,227, 62,174, 69, 44,199,245,136,229,120, 30,253, 4,217, 89, 58,100, +229,105, 96,110,110,126,183,142, 67,223,206, 28,203,168, 84,170,161, 11, 22,126,159, 43, 16,138,208,173, 87, 47, 56,216,218, 65, +196,229,128,101,164,193, 34, 56, 80, 20, 88,226,229, 83, 21,190,219,181, 63, 95,161, 82, 13,173,161,147,232, 93,155,200, 32, 8, + 2,124,115, 51,240, 36,102,224,155,153,191,225, 70, 20,152,155, 67, 96,102, 14, 54,143, 87, 83, 48,252, 31, 56, 21, 10,197,176, +225,195,135,151,148,149,149, 97,210,164, 73,184,126,253,122,244,133, 11, 23,204,159, 62,125, 42, 44, 40, 40,104, 1,160, 15,128, +237,117,136,172, 55, 56, 75, 74,146,202, 25,163,118,228,170,239,191, 82,107,140,214, 8, 25,119, 24, 98, 50, 3, 70,138, 6, 3, + 64,102,197, 67,231,222,203,144,175,235,132,195,219, 86,168,104,189,102,204, 91, 57,180,222,224,100, 24,134,177,183,183,255,195, + 57,184,124,249, 50, 66,134, 15, 67,240,144,193,176,117,117,135, 93,239,190, 8,158, 52, 21,219,182,109, 3, 73,146,176,177,177, +121,187,227,173,226,220,251, 24,156,131,207, 64, 28,124, 6, 98, 79, 52,216, 0, 66,247,239,223,255,131,143,143,207,213,219,183, +111,175, 5, 48,178,250,111, 85,195,226,183,172, 89, 53, 93,163,249, 51,103,206, 84, 39, 36, 36, 64, 44, 22,195,104, 52,226,246, +237,219,248,233,167,159,176,110,221, 58, 68, 71, 71,195,218,218, 26,205,155, 55,135, 86,171,197,195,135, 15,213, 0,230,215,193, + 73, 23, 20, 24,135,109,218,180,186,168,127,255,174,216,181,107, 11, 28, 28, 58,129,195,118, 0,155, 99, 11,177,196, 19,191,254, +242, 3, 62,254,216, 15,167, 78, 30, 41, 46, 44, 50, 14, 3, 96, 52,225, 94,210,220,191,127, 31,219,182,109,195,240,225,195,179, + 66, 66, 66,168,178,178,178, 42,139, 86,101,166,223,197, 21, 49,102, 90,173,150, 95, 27,231,228,239, 98,178,230,172,120,190, 52, + 47, 55,171,227,245,171,119, 63,137,188,112, 25,201, 9,145,136,188,112, 25, 55, 35,239,132,229,229,102,117,244,235,208,146, 59, +116,210,180,111,247,134, 31,103, 73,204, 29,177, 55,252, 56,107,244,244,175, 86,180, 15,238, 57,191,190,123,190,226, 58, 50,138, +252,188,185, 43,215,110, 86, 24,245, 26,242, 95, 63,110,205, 86, 23,228,204,175,118, 95, 50,245,221,159,106,181,122,187, 70,163, +145,105, 52, 26,153, 86,171,157,159,154,154,218,237,235,175,191, 46,160, 40,170,202, 90, 90, 16,123,234,110,252,173, 61, 43,237, +108,164,194, 78,254,109, 91,173,223,126,236, 90,122, 70,222,111,213,114,104,213, 84, 78,141, 66,173, 25, 54,120,232, 88,101,105, +137, 22,129, 95,133,129, 22, 72,160,165, 0, 3,195,130,145, 96,227,217,242,245, 16, 90,153,225, 64, 74,148,170,204,160, 31,134, + 55,115,104,213, 85,247,247, 65, 35,103, 35,103, 35,231,223,147,243,159, 12, 71,188,185,214,161,227, 27, 22,173,250,166, 84, 58, + 57, 57,117, 27, 52,176, 55,122,244, 95, 0,134, 97, 16, 31,181, 6, 37, 5, 47,224,228,192, 71, 82,186, 60, 16,192,245, 6, 20, + 38, 61, 53, 35,163,227,204,249, 11,194, 67,250,244,106,237,229,234,202,111,214,172, 41,196,118,118, 40, 44, 44,192,173,123,177, +134, 21, 7,143,198, 84,136, 44,147, 28,147, 52, 77,191, 14,114, 7,208,107,230,119, 32, 88, 44,160, 34,141, 67,101,199,232,234, +223, 9, 4,155, 13,138,161,161,213,106, 77,153, 45,151,249,234,213,171, 97, 99,198,140,185, 18, 17, 17, 65, 6, 7, 7,251,158, + 56,113,226,125,214,204,131, 50, 63,225, 42,128,254, 43,230, 78, 57,220,177,231, 96,115,143,182,237,185,237,155,177,160, 55, 16, +200,206, 74, 67, 68,248, 3,125,236,253, 11,114,198,168, 25,169, 42, 76,184, 90, 23,151, 94,175, 79,111,209,162,133,253,182,109, +219,170,130,225, 41,138, 66, 97, 97, 33,238,222,189, 11,111,255, 0,180,158,240, 41, 10, 10, 10,176,105,211, 38, 52,105,210, 4, + 3, 6, 12, 64,113,113, 49,140, 70,163,169, 14, 95, 10,192,133,138, 13,111,137, 44,162, 98, 9,160, 58,221,134,238,238,238, 60, +141, 70,227,203, 48, 12,139, 32,136,141, 58,157,110,252,220,185,115, 29, 87,174, 92,137, 86,173, 90,161,176,176, 16, 98,177, 24, + 30, 30, 30, 40, 40, 40,192,131, 7, 15, 40,149, 74,181, 13,175, 23,178, 46,168,167,124,137, 15, 30,164,116,156, 49,227,139,240, + 31, 86, 79,241,208,104,123,240,172,172,186,128, 97,140, 40, 40, 72, 69,185,252,182,126,217,210,221,175,242,242, 13, 67, 1, 36, +152, 88,231, 69,211,166, 77, 3, 0, 1,128, 5, 73, 73, 73,143, 91,183,110,237, 81,155, 69,203, 20,108, 56,150,165, 1,112,112, + 88,176,108,150,188,240,169,135, 21, 59, 53,165,163, 23,189,105,195,177, 44,141,185, 76,185,188, 48,245,250,203, 28,229,133,109, +123,195,143,179,198, 13, 25, 70, 57, 75, 18,194, 4,118,204, 49, 19,168, 25, 31, 31, 31, 23,130, 40,118,203, 47,122,241,104,226, +164, 41, 35, 44,184,234,179, 62,206, 69,205,201, 38,126,130,232,232,232, 20, 52,112,102,104, 5, 94,102,101,101,117,155, 59,119, +238, 5,134, 97,222,136, 77,200, 47, 44,142, 12,236, 63,141, 41, 45, 45,123, 92, 16,119,202,148, 92,106, 15, 30, 68, 69,247,242, +242,246, 59,254,195,202,213,246, 61,102,126,205,126,121,245, 26, 64, 25,144,118,253, 26, 40,190,142, 94,127,231, 82, 94,153, 94, + 63, 4,141, 89,225, 27,209,136,255,121,107, 86, 93, 90,228,111,142,126,168, 37, 24,222,228,202,184,187, 57, 93,104,229,209,172, + 79, 19,103, 91, 0, 64, 82, 74, 54,146, 82,178, 46, 38, 37,103, 5,215,163,120,107,155, 94, 89,181,168, 52, 81,145,194,129, 49, +109, 81,233, 55, 56,173,173,173, 31,177,217,108,231,134,156, 13,138,162,178, 11, 11, 11,253, 76, 44,231,104, 87, 87,215,213,105, +105,105,225, 52, 77,207,106,160,218,175,145,179,114, 81,105,146,205,235,205, 24,117,222, 0, 64,176,121,166, 44, 42, 93,157,211, + 91, 34,145,108,231,112, 56, 77, 42,175, 99,101, 12, 22, 69, 81, 44,189, 94, 47,160, 40,138, 5,128, 32, 73,210,200,225,112, 52, + 4, 65, 24,141, 70, 99,186, 86,171,157,130,127, 39, 28,173,171,238,245,118,244,175,178,100, 50, 0, 0, 32, 0, 73, 68, 65, 84, + 21, 66, 11, 53, 88,180, 46, 3, 64, 66, 66, 66, 75,169, 84, 58,146, 32,136,225, 12,195,120,150,151,151,107, 23, 46, 92, 24,125, +244,232, 81,185,171,171,235, 71,253,250,245, 35,158, 62,125,138,152,152, 24,166,168,168,232, 88,133, 21, 43,169,129,247, 18,201, +231,179, 70, 89, 89,145,253, 24, 6, 62, 96, 64, 16, 36,158,149,149,209,103, 85, 42,234,183, 10,193,216,208,251,179, 18,159, 52, +107,214,108,119, 74, 74, 10,167, 54, 75,106,109,117,127, 27,107,230,183, 93, 16,216,181,235,176,187, 55,111,158,152,179,226,249, +210,234,223, 77, 31, 44,157, 56,250,203,153,107, 14,110,253,113,206,230,223, 75,118,153, 82, 78, 95, 95, 95,119,130, 32, 70, 2, +240, 98, 24,166, 5,195, 16, 2,130, 96, 74, 8,130,120, 14,224,169, 78,167,139,136,141,141,205,124,143,186,191,203, 8,183, 54, +206,170, 69,165, 65, 81,237, 40,128, 49,113, 81,233,255,116, 57, 27, 57, 27, 57, 27, 57,255,123,156,255,100,124, 86, 67, 7,105, + 90,102,248, 74, 36, 37,103, 5, 39, 37,103,161, 69,139, 22, 76, 98, 98, 98,131, 68, 90,109,157, 52, 69, 81,135, 84, 42,213,161, +247, 33, 41, 42, 42,106,255, 23,159,188,131, 41, 41, 41, 7,255, 76,194, 10, 33,181,180, 98,123, 87, 60, 83, 40, 20, 1,166,238, +172,215,235,255,138,115, 67, 84, 88,179,150,212,182, 67,159, 62,125,210,244,122,253,101, 0, 25, 4, 65, 88, 2, 40,214,235,245, + 23,140, 70, 99, 94, 98, 98, 98,251,245,235,215, 87,102,190, 95, 6,224,209, 59,150,131,214,106,169, 3,217,217,212,129,191,160, +142, 7,116, 58,221,108,107,107,235,230, 26,141,134,167,209,104,184,213, 39, 31, 8,133,194,130,186, 2,226,171,195,210,140,216, +195,101,151, 88, 91,154, 17,111, 11, 41, 88, 57,225,184, 90, 25,211,202,202, 9,199, 77, 45,216,227,199,143,147,124,124,124,246, +147, 36,233,202, 48,140, 61,192, 88, 48, 12, 10, 24,134, 41,100,179,217, 89,177,177,177, 89,127,163, 70, 72, 99,164,233,181, 70, +157,238,223,113,135,141,179, 11, 27,209,136, 70,252,255, 65,173, 49, 90,236,134, 50, 37, 38, 38, 18,141,231,179, 17,213,197, 86, + 93, 95,166,165,165,105, 1,220,169,216,222,198, 35, 0, 3,254,238, 21,204,201,201,241,171,237, 59, 83, 69, 22,240, 58,102, 11, +136,169, 49, 59,251,226,205, 37,229,216, 28,254,109, 67,203,246,228,201,147,116,152,232, 98,111, 68, 35, 26,209,136, 70,252,101, +248,172, 54,241,197,110, 60, 55,141,104, 68, 35, 26,209,136, 70, 52,162, 17,239,133, 29,213, 4,215, 27,214, 45, 2,181,207, 28, +104,136,239,245, 93,102, 31, 92,110,228,108,228,108,228,108,228,108,228,108,228,108,228,252,159,227,252,255,138, 55, 68,150, 41, +201,209,255, 12, 52, 78,125,109,228,108,228,108,228,108,228,108,228,108,228,108,228,252, 95, 16, 89,111,108,149, 89, 15, 26, 93, +135,141,104, 68, 35,254,103,113,244,232, 81,147, 22, 21, 29, 53,231,215,254, 18,137,116,161, 66, 94,182,250,208,218,137, 39, 42, + 63, 15, 9, 9,161, 26,207, 98, 35, 26,209, 8,188, 75, 48,188,155,155,115, 27,146,162, 59, 51, 12,201, 98, 72,198, 64,200,213, +135,147, 74, 74,222, 72, 59,224,226,226, 98,201, 33, 49,128, 96, 24, 49, 65,208, 20,205, 34,111, 39, 39,103,198, 54,160, 96, 60, +169, 84, 58,141,203,229,246,214,233,116,206, 36, 73,102,106,181,218,203, 42,149,106, 11,254,152,184,240,191,134,150, 45, 91,142, +190,118,237,154,101,151, 46, 93,180, 66,161,208,168, 86,171,217,231,207,159,231,127,252,241,199,165,175, 94,189,122,167, 25,137, + 50,153,172,231,175,191,254,234, 22, 28, 28,140, 22, 45, 90, 40, 71,142, 28,201, 13, 12, 12,228, 78,154, 52, 41, 57, 59, 59, 59, +178,129,116,109, 8,130,216, 71, 16, 4,139,166,233, 80,252, 59,117,195,159, 13,146, 36,201, 41, 4, 65, 12, 97, 24,198,157, 32, +136, 36,134, 97, 78,208, 52, 93, 87,226,214,186, 48, 12, 64, 95,146, 36,253, 0,128,166,233,104, 0,103, 1,211,103,222,253, 39, + 57, 69, 34,145, 47, 0,168, 84,170,199,127, 22, 39, 65, 16,190, 0,192, 48,204,187,114, 78, 16, 10,133,147, 1, 64,173, 86,255, + 2, 19,150,131,122, 27,204, 54, 79,198,111, 73, 60, 0, 32,122,145, 39, 0,160, 33,239,137,169,241, 68, 67,126,171, 38,190,134, +112,212,128,190, 99,198,140, 89,249,219,111,191, 45, 2,112,242,175,184,241, 29, 28, 92,182,172,251,113,135,236,171,105,159,174, +198,235, 21, 33,234,126, 32,129, 15,121, 44,214, 64, 29, 69,221,140, 5,142, 2, 96, 91, 89, 89,141,230,241,120,221,116, 58,157, + 35,155,205,206,209,233,116, 55,202,202,202, 14,162,142, 21, 16, 76, 62,175,113,144,234, 85,112, 32,232,127,175,243,198,144,208, +114, 69,200, 37, 90,163,228,111,208,140,146, 0,102, 86,212,117, 39,106, 79,231, 81, 87,227,243,149, 76, 38, 27, 34,151,203, 85, + 44, 22,139,193,235, 89,207,175,255,188,254,158,160,105, 58,191,184,184, 56,180, 62, 46,113, 19,180,226,137,137,125,148, 1,106, +163,150,249, 92,153,129,120,137, 11, 58, 49, 64, 40, 3,184,146, 44,210,150,166,233, 28, 0,145,164, 17,167, 21,217, 72,252,155, +118,238, 77, 43,206,107,179,138,247, 28, 0,246, 0,158, 2,248, 10,128,162, 81,255,252,199,240,118, 48,252, 25, 0, 57, 85, 66, +171, 90,186,251, 30,253,251,247,191,238,230,230,220,102,248,224,161, 43,167, 78,249,156, 96,177, 72,196, 60,127,206,254, 36,116, + 66, 31,169, 84,234, 36,209,106, 91,131, 32,104,149, 64, 16, 35,151,151,101, 29, 61,248,155,153,103,171, 86, 20, 69,209,216,182, +253,231,143,143,253, 30, 62,207, 68,177,213,210,193,193, 97, 95, 88, 88,152,195,192,129, 3, 89, 14, 14, 14, 72, 77, 77,181, 60, +116,232, 80,171,205,155, 55,143, 40, 41, 41, 9, 5,240,242, 29, 42,219,213,193,138,236, 99, 38, 36,122,161,156, 66,185, 1, 87, +114,213,184, 8,224,230,187,158, 61,149, 74, 53, 93,165, 82, 5,248,251,251, 51, 59,119,238, 36,198,143, 31,207, 16, 4, 65,168, +213,234, 61, 0,222, 73,104,137,197,226,173,193,193,193, 30, 30, 30, 30, 73,175, 94,189,234,123,228,200,145,179,227,198,141,115, + 23,139,197, 9, 0, 90, 54,144,110,119, 81, 81,145,143, 90,173,134,179,179,243, 78, 0, 31,252, 5, 55, 17,193, 98,177, 78, 56, + 57, 57, 49,107,214,172, 57,233,227,227, 99, 95, 92, 92,108,252,246,219,111,123,223,187,119,239, 99,138,162, 6, 54, 64,108, 73, + 9,130,216,110,111,111,111,179,122,245,234,196,246,237,219, 63,229,243,249,188,132,132, 4,209,236,217,179,103,189,124,249,114, + 4,195, 48, 83,128, 6,117, 16, 82,130, 32,182,203,100, 50,155,149, 43, 87,166,250,249,249,197,112,185, 92,110, 66, 66,130,248, +187,239,190,251, 42, 62, 62,254,157, 56, 73,146,220, 22, 16, 16, 32, 93,180,104, 81, 92,171, 86,173,238,176, 88, 44, 94,102,102, + 38,185,120,241,226,105,151, 46, 93, 10,161,105,122,234,187,148,211,206,206, 78,186,120,241,226,184,192,192,192,123, 92, 46,151, +251,226,197, 11, 50, 44, 44,108, 90, 98, 98,162,201,229,180,178,178, 10, 34, 8, 98, 71,110,110, 46, 27, 0, 28, 29, 29, 59,152, +155,155,111,174,190,166,101,101,140,128,193, 96, 40,215,104, 52, 99,138,139,139,107, 76,132, 59,126,238,166, 1, 0,176, 89, 95, +249,254,245,107,125,239,129,109,167, 77,169,180,175,195,235,188,120,235,148, 19, 7, 3,192,232,138,165,194,215, 41, 1, 54,155, + 77,251, 58,124,197, 60,206,109, 80,202,152, 65, 61,123,246, 92, 28, 25, 25,249,115,143, 30, 61,190,219,191,127,191, 93, 70, 70, +198, 15, 55,111,222,116, 25, 53,106,212,248, 43, 87,174,172, 42, 44, 44, 60,246,103,221,252, 60, 46,159, 79,144, 4,132, 2,145, +185, 41,251,115, 72,178,255,157, 65,131, 38,255,242,226,133,223,230,248,120, 55,165,163, 99,192,140, 25, 51,236,135, 14, 29, 74, +186,184,184, 32, 49, 49,209,122,255,254,253,173,127,249,229,151, 33,165,165,165, 51, 1,164,189,143,200, 82,150,194, 91,171,131, + 31,195,192,178,234,129, 37, 80,202,215, 35,154,137,195,179,191,129,216,250,126,247,238,221,139, 18, 19, 19,177,106,213, 42, 0, +216,210,192,227,103, 15, 26, 52,168, 95,120,120,184,240,232,209,163, 66,127,127,127, 56, 56, 56,160, 98, 48, 85,149,152,218,205, +205,205,180,115, 70, 99,221,198,179, 19, 63,136, 41, 62,135,173, 67,115, 87, 9,157, 97,236, 52,200, 99, 72,255,241,126,176,176, + 21, 65, 32, 97,163,180, 72,238,245, 34, 58, 35,248,234,145,196, 31, 18,163, 10, 86, 43,211,241, 61,106,207,201,247, 95,129,181, +181,245,206,228,228,228, 32,177, 88,252,198,231, 73, 73, 73,190, 30, 30, 30,101, 0,190,110,168,112,179,181,181, 61, 64,211,180, +182,168,168,232, 83, 0, 48, 51, 51,251, 77, 44, 22, 75,115,114,114,230,253, 85, 3,153, 74,188,173, 69,254,225, 22,173,170,120, +173,154,214, 58, 36, 72,138,238, 60,117,202,231,196,200,209,163,114, 19,147,146,105, 54,135, 55,250,252,133, 11,162, 54,109,218, +144,218, 45, 91, 96, 44, 40,128, 97,214,172, 78,151, 47, 95, 54,132,140, 30,171,230,176,136,221,238,110,174,162,195, 7, 15, 57, +132, 31, 63,214, 25, 64,125, 66,139,231,224,224,176,239,218,181,107, 78,110,110,110, 40, 45, 45, 69,106,106, 42,148, 74, 37, 70, +140, 24,193,233,220,185,179,211,240,225,195,247,149,149,149,117,105,128,101,203,190,133, 51, 59, 98,202,132,161, 45, 63,238,211, + 89,236,228,210, 28, 76,174, 6, 25,175,226,253, 35,174,221,155,177,251,248,217,151,137,101, 76,127,212,188, 54, 82,157, 40, 44, + 44,156, 51,100,200,144,227, 65, 65, 65,182,124, 62, 31, 50,153,140, 24, 56,112, 96,126,118,118,246,146,119, 86, 45, 21, 75,216, +144, 36, 73, 85,127,173, 97,121, 32, 83,224, 44,149, 74, 33,149, 74, 1,192,233,125, 71,158,150,150,150, 91,204,204,204,134,203, +229,114, 53, 73,146, 12, 65, 16,140, 78,167, 19, 74,165,210, 39,113,241, 47,101, 90,173,182,197,218,141,191,252,216,179,171,143, +249,165, 75,151, 48,116,232, 80,230,226,197,139, 83, 76, 93,167,142, 32,136,237, 67,134, 12, 81, 45, 92,184, 80,147,152,148,234, + 20,247, 50,137, 16, 11,120,180,141,141, 13,231,193,131, 7,236, 13, 27, 54, 8, 22, 47, 94,188,157, 97,152,225, 13, 56,159,219, + 71,141, 26,165,255,230,155,111,114, 94, 36, 38,219, 61,139, 75,100, 36, 2,142,209,198,198,154,117,239,222, 61,250, 93, 56, 73, +146,220, 54,103,206, 28,249,148, 41, 83, 74,138,138,203, 28, 74,228, 10,134,207, 97, 25, 28, 28, 28,216, 39, 79,158,212, 30, 56, +112,128,156, 60,121,242, 54,154,166, 67, 26,112,126,183, 13, 28, 56,176, 60, 44, 44,172, 52, 33, 41,197,225, 89,236, 75,136,248, + 28,131,189,189, 29,235,225,195,135,250,181,107,215,146,203,151, 47, 55,169,156, 98,177,120,239,145, 35, 71,216, 39, 79,190,110, +251,238,222,189, 75,186,187,187,139,170,239,163,214,104, 65, 18, 64, 97, 97,161, 40, 48, 48,112, 47,128, 63, 36,247,245, 91, 18, +143,241,115,129,233,211,167,231, 52,244,102,241,115,156, 81,239, 62,212,207,158,204, 6,213,196,193,108, 54,155,158, 60,121,114, +238,219,223,107, 52, 26, 2,192, 64,252, 96,186,216,234,219,183,239,252, 51,103,206, 52,223,191,127,255,250, 3, 7, 14,232, 0, + 64, 32, 16,216, 28, 58,116,104,213,136, 17, 35, 48, 98,196,136,133,199,142, 29,251,211,132, 22,197, 80,122, 0,224, 11,248,252, +248,248,120,194,211,211,179,206, 40, 87, 61, 77, 63,250,229,197,139,246, 95,120,122,250, 23,211,116, 11,238,199, 31, 43,102,207, +158, 93, 40,151,203,145,154,154, 10,189, 94,143,241,227,199,179,122,244,232, 33, 27, 49, 98,196,166,242,242,242, 97, 0,244, 38, +220,147,107,157,156,156, 62, 43, 43, 43, 83, 84, 90,117,186,132, 82,236,110,190, 70,126,187, 22, 6, 30,151,101,228, 14,152, 69, + 19, 23,183, 16, 74, 79, 55,220, 2, 0,174, 10, 5, 13, 28, 12,212, 8,115,103,184, 81, 28, 44,183,117, 22,246, 44, 72, 83, 47, + 85,166,215, 41,150,134,137,197,226,193, 74,165,242, 88, 69,231,220,178,127,255,254,184,119,239, 30, 0,116,174, 16, 90, 61, 73, +146,252,132,166,233, 95, 1,212,181,148,219,140, 65,131, 6,125, 24, 30, 30,110, 6, 0,199,142, 29,131,193, 96,128,187,187, 59, +184, 92, 46,120, 60, 30, 56, 28, 78,213,234, 32, 38,194,209,214,214, 6, 54, 22, 28, 72,173,196, 31,127,247,211, 32,118,147, 54, +230,200,167,158,163,152, 41,133,145,209,130,107, 45, 70,171, 96, 75,248,245,233, 73,158,222, 22, 51,239,244,214,184,246, 42, 18, + 3,144, 6,237,223,165,103, 39, 73,146,255,244,233, 83,200,100,178, 55, 62,103,177, 88, 0,208,237, 29, 40, 23, 38, 37, 37, 5, + 70, 69, 69, 33, 40, 40,104,161,183,183,247, 71,215,175, 95,119, 40, 42, 42, 66, 80, 80,208,166,204,204,204,147,127,117,157,170, +107,145,255, 47,166, 46,242, 45, 37,217,227,245, 40,152,100,177, 88, 36,146,147, 82, 13, 65, 65,189,198,165,167,167, 75, 2, 2, + 2, 72, 14,135, 3,101,100, 36, 52, 15, 31, 66, 34,145, 96,200,144, 33,156, 27, 55,110,152,155, 75,204, 39,165, 36,167,148,179, + 88, 36, 24,134,172, 55,230, 65, 42,149, 78,155, 55,111,158,131,135,135, 7,140, 70, 99, 85, 70,115,163,209,136,140,140, 12, 72, + 36, 18,132,134,134,218,137, 68,162,105, 38,214,163, 89, 75,119,187,232,107,103,183,127, 48,123,106, 95,113, 75,209, 37,136, 51, +102, 66,114,236, 11,180,206, 62,143,176,193, 1,226,139, 91, 23,250, 53,151, 89, 69, 87, 51,177,154, 12,173, 86,123, 43, 38, 38, +102,210,245,235,215,105, 0,184,122,245, 42, 19, 23, 23, 55,229,125, 70,161, 52, 77,163,180,180, 20, 52, 77,179, 42,222, 87,190, +254, 87,239, 7,115,115,243,109, 31,125,244,209,168,180,180, 52,225,185,115,231,172,211,211,211,109, 82, 82, 82,108, 91,182,108, +201, 94,181,106,213, 25,141, 86,207, 50, 80,140,206, 72, 25,202,115,158, 63, 79, 42,201,203,139,222,181,107,151,154, 32,136, 33, + 38,254,198, 48, 71, 71, 71,235,185,115,231,130,224,136, 58,180,106,237,237,193,226, 8, 45, 72, 14,207, 66,173,214, 80,201,201, +201, 25,115,231,206,117,245,241,241,145,225,181,123,205, 36, 78,153, 76,102,243,205, 55,223,128,205, 55,243,109,231,227,215,156, +199, 23,155,177, 56, 66,179,128,128,128, 30, 73, 73, 73,217, 97, 97, 97,142,254,254,254, 13,226,244,247,247,151, 78,158, 60,217, + 40, 16,154, 5,186,185,185,183,110,215,182,117,191,150, 45, 91, 14,102,179,217,198,130,130,130,180,208,208, 80,199, 1, 3, 6, +216, 55,132,211,206,206, 78, 26, 22, 22,102,116,105,234, 30, 28,252, 97,159,142, 92,161,153, 5,155, 39,182, 84,169, 52,212,139, + 23, 47,210, 22, 44, 88,224,232,235,235,107,103, 10,167, 74,165,226,216,216,216,192,203,203, 11,109,220,221, 81, 86, 86,134,240, +240,112,236,222,189, 27,191,254,250, 43, 14, 30, 60,136,246, 93,250,192,204,204, 12,217,217,217,144,203,229,156,255,244, 13, 69, +253,236,201,108,214,125, 54,240,243,207, 63,207,158, 60,121,114,174, 80, 40,164,223,222,172,172,172,168, 49, 99,198,228,133,126, +183,113, 96,165,107,177, 30, 75,214,211,179,103,207,190,218,191,127, 63,218,180,105,131,224,224, 96, 30, 0, 76,155, 54,141, 55, + 98,196, 8, 28, 57,114, 4,199,142, 29,139,245,240,240,184, 13, 96,144, 41,229, 12, 13, 13,237, 18, 18, 18,114, 51, 36, 36,228, +241,200,145, 35,119, 76,153, 50,229,141,158, 43, 39, 59,243,145, 78,167,131,143,159,191,104,217,206,251, 99,234,227,139, 3,246, +239,136,143,223,189,250,249,243,180,133,109,218, 88, 54, 77, 73,177,218,179,118,173, 77,229, 34,221, 6,131, 1, 25, 25, 25,144, + 74,165, 24, 51,102,140, 13,159,207, 15, 53,161,152, 27, 6, 13, 26, 52, 33, 61, 61, 93,242,203, 47,191, 56, 62,126,252, 88,150, +147,147,227,120,229,242, 5,219,111,191,158,102,102, 33,225,241,178, 11, 24, 2, 0, 82,178, 33,142, 79, 70, 23,134,129,101,117, +119,226, 59,193, 17, 66,161, 51, 54, 55,239, 98,249,242,155, 35,190, 35,195, 34,252,108,164,142,252,185,117, 28,209,110,205,154, + 53, 71, 79,159, 62, 61,186, 75,151, 46,199, 1, 8,107,216, 71,208,190,125,251,240, 35, 71,142, 76,232,218,181,235, 45, 0, 94, +181,142, 34,157,157,135,252,254,251,239,214,149,239,109,108,108, 32, 16, 8,254, 32,178,184, 92, 46, 72,146,108,112,245, 86, 28, + 26,205,182,106,173, 69, 76,201, 89, 28, 89,243, 20,107, 62,126, 65,175,236,148,162,221, 18, 26,143,139, 71,158, 34, 31, 79,209, +247,139,230, 24,189,192,167,183,136,194,242,191, 83, 7, 94, 80, 80,240, 73,183,110,221,142,246,237,219, 87, 27, 21, 21,133,130, +130, 2, 56, 57, 85,141,181,115,223,129,210, 74, 36, 18,193,197,197, 5, 30, 30, 30,163,111,220,184,225, 96, 48, 24,144,146,146, +130,252,252,252,232,255, 68,157,170,107,145,127, 24,222, 14,134, 63,243, 7,161, 85,177,182,208, 53, 0, 96, 8, 66,249, 52, 38, +134,195,226,241,198,254,118,224, 0,159,203,229, 34, 45, 45, 13,177,177,177, 80, 93,185, 2,245,157, 59,200,203,203,131, 66,161, +128,189,189, 61,182,239,220, 41,214, 81,204,196, 23, 47, 95,178, 24,146,169, 30,111, 80,227, 20, 79, 62,159,223,123,232,208,161, +181, 10,178,236,236,108,244,237,219,151,195, 98,177,106,154,213,240, 54, 39, 33,179, 37, 78, 95, 57,190,204,209,145, 23, 11, 36, +206, 6,202,163, 1, 70, 11, 24,117, 64,214, 51,224,204, 18, 52, 85,196, 19, 23,150,141,115,112, 18,177, 79,215,160,148,235,155, +138,234,238,233,233,249,235,216,177, 99, 73, 0,232,217,179, 39,225,233,233,185, 3,128,123, 29,199, 92,174,167,147,188, 87, 82, + 82,130, 17, 35, 70, 88, 55,111,222,252,242,136, 17, 35,172, 43, 63,127, 87,206, 74,107,114,155, 54,109,138, 4, 2,193, 65,192, +164, 6,182,138,211,210,210,114, 75,223,190,125,135, 31, 56,112,128, 11, 0,215,174, 93,195,233,211,167,241,252,249,115, 36, 36, + 36,208,126,126,126,182, 27,127, 61,186,109,203,207,123, 55, 12,238,236, 35,235,209,193,175,181, 68, 81,162,176,183,183,239,204, + 48,140,187,137,229,236,187,100,201,146,216,184, 87,105, 22, 36,155,195,230,114,216,124,115,115,177,189,212, 76,236,108, 37, 18, + 56,241, 73, 66,162, 82,169,114, 15, 30, 60, 72, 3,232,107, 42,231,178,101,203,146,227, 18,211, 44, 9,146,205,230,176, 57, 92, +137, 68,100,249,113,112,144, 63, 0,112,193,112,229,114,121,222,238,221,187,245, 13,225, 92,180,104, 81, 76,113,169, 66,202,230, +112, 56,108, 54,171,234, 92,138,133, 66, 91, 17,159,207,211,106,181, 89, 63,254,248,163,186, 33,156, 75,150, 44,137,125,241, 42, +221,138, 36, 8, 22, 65,144,108,115, 51,177,181,181,133,200,214, 86, 34,180, 17,177, 89, 60,185, 92,158,181,111,223, 62,147, 56, +245,122, 61, 55, 47, 47, 15,113,113,113,112,241,247,199,165, 75,151,208,164, 73, 19,140, 24, 49, 2,163, 70,141,130, 80, 40, 68, +207, 64,111,204,157, 59, 23,175, 94,189,130, 94,175,231,215,196, 89, 25, 39,245, 54,100, 50, 89, 84,125, 55,207, 91,199,190, 81, + 78, 95, 7, 48,155,117,159, 13,172, 46,176,106,227,183,178,178,162,106,178,118,189,205,217,183,111,223,249, 87,174, 92,105,190, +111,223,190,129,161,161,161,183,246,237,219,135,142, 29, 59, 34, 46, 46, 14,174,174,174,216,179,103, 15, 70,141, 26,117,107,211, +166, 77, 3,163,162,162,124,220,220,220,230,213,199, 57,114,228,200, 47,125,125,125, 35,115,115,115, 3,139,139,139,189,194,195, +195, 39, 14, 25, 50, 36,121,244,232,209,189,170, 4,163,193,112,224,204,169,227,232, 55,112, 40, 90,181,245,218, 54,126,222,126, +239,122,158, 77,230, 57,176, 99,119, 78, 78,193, 1,141, 70, 53,130,195, 17,137,238,223,183, 58,246,243,207, 54,213,167,124,103, +101,101, 97,192,128, 1, 28, 46,151,219,181,158,114,174, 25, 60,120,240,136,240,240,112,105,165, 85,231,206,157, 59,120,246,236, + 25, 82, 83, 83, 81, 90, 90,138, 94, 83, 20,248,124,213,107,238,207, 87, 49,232, 51,141, 17,191, 99, 27, 82, 5, 97, 19, 56, 88, +155,179,111, 79,252,177,213,180,207,182,181, 97, 75,172, 56,248,237,187, 4, 20,166,104,143,213,194, 73, 4, 6, 6,238, 15, 9, + 9, 33,116, 58, 29,116, 58,157, 14, 64,141, 89,125,157,156,156, 4,237,218,181,195,148, 41, 83, 72,115,115,243, 77,181,149, 83, +169, 84,106,207,158, 61,139,208,208, 80,204,156, 57, 19, 45, 90,180,128, 84, 42, 5,135,195,193,222,253,135,109, 70, 77,156,218, +242,131, 46,221,124,218,124,208,177, 93,185,150,229,207, 17, 74, 39,215, 98, 13,169,177,238, 10,187, 40,196,164,220,197,230,129, +153,244,131, 61, 42,197,183,159,252, 43,254,197,245,188,231,243, 66,118,196, 48,119, 59, 21,238,255, 42, 29,121,134, 56,116, 29, +209, 20,110,190,210, 89, 98, 23,120,190,235,249, 52, 17, 13,226,244,246,246,238,242,224,193, 3,126,183,110,221,144,150,150, 6, + 14,167,106, 60, 69,189, 79, 57,151, 44, 89,194,215,104, 52,120,242,228, 9,198,141, 27,151,165,215,235,103,189, 79, 57, 27, 98, +209,170,212, 34,255, 48,236,120,107,203,169,205,162,181, 4, 0, 12, 52, 78,143, 29, 55, 81, 21, 17, 17, 33,226,241,120, 72, 75, + 75, 67, 78, 78, 14,246,238,222, 77,245,180,179, 43, 15,118,114,146,239,221,189,155,209,233,116, 96, 24, 6,158,158,158, 24, 62, +124,184,112,216,136,209,249,132, 92,125,216, 4, 55,143, 99,165,127,125,226,196,137,127,248,254,219,111,191,133,185,185, 57, 8, +130,112, 48,161,114, 33, 51,150, 12,118,150,186, 89,230, 49,185,123,139,193, 18, 0,108, 51,128,109, 14, 8, 44, 0,190, 25,192, + 19, 65, 27, 21, 89, 76, 50,193,169, 67,187,126,234, 4,160, 33,174, 30,200,100,178,133,145,145,145,182, 81, 81, 81,140, 92, 46, + 71, 78, 78, 14,179,114,229, 74, 91,153, 76,182,240, 93,175, 72,118,118,246,178,126,253,250,229,141, 27, 55,206,226,252,249,243, + 46,227,198,141,179,232,215,175, 95, 94,118,118,246,178,247,185,210, 92, 46,151,245,252,249,115,171,229,203,151,143, 2,240,168, +109,219,182, 69, 78, 78, 78,143,240, 58,104,178, 78,152,153,153, 85,137,172, 74,235, 26,155,205, 6,135,195,129, 76, 38,211, 21, + 23, 23, 83, 93, 63,112, 23,122, 90,144, 6, 25,159, 43,180, 18, 10,156,205,204, 45, 2,138,138,138,158, 18, 4,145,100,162,139, +207,183, 67,135, 14, 28,138,225,208,159,143,237, 41,155, 54, 33,200,238,167,229,147,155,252,184,236, 51,167, 53,139, 39,121, 46, +155, 51, 38,136,164,105,141,171,171,171, 67,101, 64,187, 9,230,115,191,246,237,219,179,105,112, 16,247, 50, 53, 47, 45, 51,171, +252,195, 30,129, 85,150,203, 54,190,126,193,182,182,182,221, 60, 61, 61,219, 19, 4, 97,210,148,100,161, 80,232,219,170, 85, 43, + 54,201,226, 16,214, 82, 51, 23, 51,137,208,190,202,133, 98,105,217,201,202,214, 54,132,100,152, 50, 71, 71, 71, 59,161, 80,232, +219,128,186,179,105,112, 97,111,103,101, 97,107, 99, 41, 9, 14,234,220, 34,176, 83, 96, 75,239,128,142,129,109, 63,104, 63,140, + 48, 26,229,238,238,238,118,149, 65,242,245, 88, 90, 5, 7, 14, 28,192,242,229,203,209,174,105, 83, 56, 57, 57,193,206,206, 14, +119,238,220,193,131, 7, 15, 32,149, 74,145,159,159,143,181,107,215,226,196,137, 19,208,235,245,102, 13,189,159, 76, 17, 91,117, +193,104, 52,146,111, 11,172,218,248,133, 66, 33, 93, 25, 36, 95, 27,206,158, 61,187,191,210,146,245,213, 87, 95,117,217,184,113, +227,173,248,248,120, 72, 36, 18, 60,120,240, 0, 19, 39, 78,188,181,105,211,166, 46, 83,167, 78,197,238,221,187,145,156,156,188, +179, 46,190,145, 35, 71, 46,158, 52,105,210,143,215,175, 95, 39,237,237,237, 33,149, 74, 49,120,240, 96,236,220,185,147,109, 52, + 26,119,133,132,132, 60, 14, 9, 9,121, 76,101, 92,156,127,244,215,149,119, 98,158, 62,198,151, 51,190,225,233,140,134, 48, 19, +170,207,168, 37,146,114, 99,183,110,197, 71, 12, 6,213, 72, 46, 87,100,241,248,177,213,233, 93,187,170,196,214,220,185,115, 97, + 97, 97, 1,188, 14, 96, 70, 29, 86,157,207, 78,156, 56, 81,213, 30, 90, 91, 91,131,199,227,129,203,229,130,195,225,128,197, 98, +225,242, 54, 49,126,158,251, 90, 95,252, 60,151,192,197, 45,132,242,125,174,157,200, 9, 94, 82,123,222,227, 47,246,180,245,241, +234,101,141, 59,135,114,177,178, 95, 84,230,131, 35, 5,179, 53,249, 88, 87,203, 97, 31,124,251,237,183,109,242,243,243,241,240, +225, 67, 60,124,248,176, 54, 11,144,230,212,169, 83, 63, 40, 20, 10,184,185,185, 97,208,160, 65,221, 0,248,215,242,220,160,125, +251,246, 24, 48, 96, 0,130,130,130,208,174, 93, 59,232,244, 70, 78,200,216,207, 90, 61, 79, 46,112, 90,185,118,165, 40,242,106, + 56,121,235,214,117,214,254,227, 23, 45, 2,131,250,252,200, 53,115,188, 7,161,181,163, 41,245, 84, 81, 69,240,117,252, 24, 59, +174,204, 32, 55, 95, 27, 39,217,123,122,179,187,153,153, 25, 17,253,240,177, 97,239,214, 35,233, 94,226, 65,249,247, 14, 21, 65, + 69,228,162,215, 4, 55,146, 6,134,255, 93,122,118,129, 64,176,241,250,245,235, 14,122,189, 30, 49, 49, 49,152, 57,115,166,230, + 61, 41,171, 12, 32, 46, 46, 46,184,118,237, 26,198,140, 25,163,201,203,203,187,251,159,170, 83,117, 45,242,255, 5,236,106, 10, +178, 10, 25, 25, 25,165, 82,169,212,169, 85,171, 86,164, 78,167,123,237,146, 56,118,140,250,117,215,174, 51, 26,141,102, 6, 0, +238,150,159,126,218,230,228,236, 28, 52, 54, 52,148, 48, 24, 12,232,215,175, 31, 47, 34, 34,194, 58, 41, 63,191,220,132, 14,231, +141,223, 27, 63,126, 60, 54,110,220, 8, 0,152, 62,125,122,149,105,157, 48, 33, 96, 73, 98,129,190,193,253,219,155,103,136, 55, +155,235, 59, 25, 20,205, 94,153,221, 19, 43,132,237, 65,242,216, 16,176, 64,235, 13,198,132,252, 33,143, 94, 37,180,110, 35, 44, + 46,114,237,221,182, 59,126,189,180,175,175,138,210, 28, 49,185,193, 17,137, 58, 72, 36, 18, 60,122,244,168,184,125,251,246,165, + 12,195, 88, 44, 91,182,204, 70, 36, 18,117,120,143,115,159,242,242,229,203,110,157, 59,119,158, 70,146,100,111,154,166, 47,231, +229,229,109, 1,144, 98,226,241,159, 3, 88, 4,160,106,100,169,211,233, 64,146, 36, 24,134,193,200,145, 35, 49,119,238,220, 54, +207,158, 61, 67,100,100,164, 85,239,222,189,239, 1, 40, 5,240, 41,128, 26,173,102,114,185, 92,253,224,193, 3, 97,100,100, 36, +104,154,134,149,149, 21,204,205,205,193,231,243, 49,120,240, 96, 73, 88, 88, 88,175, 11, 23, 46,228,203,155, 53, 97, 9,114,178, +148,124,137,196, 12, 14, 78, 93,167,142,254, 36,158, 97,152, 19, 13,104, 28,120, 66,182, 81, 67, 80, 90,114,205,247,155, 72, 17, +151, 75, 8,184,108,240,105, 21,230,255,176,130,224, 50, 20, 27, 13,244,207,115,185, 92,174, 25, 31, 58, 22,143,101, 16, 17,248, + 83,178,196,177, 88, 44,158,128, 91,123, 60, 6,135, 36, 73,146, 36,185, 0, 76, 94,180,143,207,231,115,205,248, 76,173,156, 66, + 22,193, 34, 8,130,135, 90,102,162,249, 58,128,169,180, 34,241,102, 36,105,171,139,226,174, 93,187,226, 76,228, 35, 28, 59,125, + 25,133,105, 79,177,224,187,175,224,239,239,143,136,136,136, 58,203, 84, 25,163, 85,155,117, 89, 38,147, 69,101,103,103,127, 80, +219,177,117,185, 12,107,177, 82,253,145,255,123, 11,248, 45,137, 71, 61, 49, 90,131,186,118,237,250,229,129, 3, 7,116, 31,125, +244, 17,111,228,200,145,240,242,242,234, 50, 97,194, 4, 0, 64,239,222,189,177,113,227,198, 46, 19, 38, 76,192,225,195,135, 17, + 30, 30,174,237,209,163,199,119,215,174, 93,203,194,235, 25,157,127, 0, 77,211, 3,182,111,223,254,182,165, 16, 70,163, 17, 6, +131,193,209,104, 52, 58, 86,180, 69,248,241,199, 77,133, 23, 47, 68,224,187,121, 75, 96,103,235,224,107,226, 61, 68,140,255,230, +155,194, 61,107,215, 98,237,225,195,248,198,213, 85,180, 47, 54, 22, 23, 53, 26, 28,137,140, 44,172,248,157,122, 99, 51,149, 74, +165,250,236,217,179,230, 71,142, 28,129,165,165, 37, 90,180,104, 1, 43, 43, 43,112, 56, 28,144, 44, 33, 88, 92, 41, 90,181,237, + 0,224, 1, 0,192, 85, 6,165,167, 27,110, 17, 4, 74, 25,178,225, 49, 69,252, 38,104,102,227, 44,184,254,229,110, 47, 75,115, + 59, 46,206,111, 73,199,133,205, 25, 39, 52,133, 88, 15, 35, 94,160,246,152,175,246,110,110,110,200,207,207,199,217,179,103,149, + 64,173,130, 12, 52, 77,255,240,211, 79, 63,125, 59,111,222, 60,190,167,167, 39, 0,248, 2,120, 88,211,190, 98,177, 24, 78, 78, + 78, 85,194,114,228,184,169,238, 83,102, 79, 21, 14,233, 19, 4, 54,219, 6,165, 74, 3,138,202, 13,144,218, 72,240,221,236, 16, +193,229,246, 78,254,219, 55,253,118, 74,173,134, 63,240,199,246,128, 32,240,240,254,211, 91,222, 2, 79,128, 32,129, 12,242, 42, + 8, 16, 80, 16, 6, 16, 44, 22, 67, 81, 20,210,211,211,193, 48, 12,198, 12,153,152,241,217,202,112,187, 46, 99,228,112,105, 37, + 3,193,160,251,223, 69, 8, 88, 91, 91,251, 22, 21, 21, 33, 37, 37, 5,227,198,141,203, 42, 44, 44,188,164, 84, 42, 39,102,103, +103, 3, 64,241, 59, 80, 86,137,121, 95, 95, 95,116,232,208, 1, 35, 70,140, 16,168, 84,170, 16,119,119,119,167,130,130,130, 78, +127,101,125,222,214, 34,255,175,132, 86,141, 15,154,193,208, 74,187,109, 27,148,151, 47,131,119,241, 34,142,200,100, 10,141, 70, +243, 53,128,140,138, 7,255,171,221,123,246,220, 30,120,247,174,185, 46, 62, 30,238,207,158,129, 99,105,233,219,208, 2,236,218, +181, 11,114,185, 28,101,101,101, 0,128,205,155, 55, 67, 46,151,195,104,226,130,179,108, 46,186, 56,216,185, 34, 23, 9,160,217, +164, 36,181,149,170,163, 68, 99,150,237,148,110,175, 44, 35,157, 16,159, 22, 32, 86, 23,233, 58, 18, 44, 29, 52,133, 42, 56,117, +110, 1, 54,216, 93, 26, 82,198, 74,191, 63,155,205, 46,126,249,242,229,128,150, 45, 91,158, 6, 96,243, 46,241, 0,111, 33, 49, + 47, 47,111,198,187, 28,200, 98,177, 22, 37, 39, 39,219,237,220,185,115,218,178,101,203,152,234, 66,171,242,127, 54,155, 13,134, + 97, 96, 97, 97, 1, 14,135, 99,127,231,206, 29,251,128,128,128,173, 52, 77,251,214, 82, 79,198,203,203, 11,201,201,201, 96,179, +217,176,176,176, 0,109,212, 99,201,236,169,160, 88,124,246,156, 57,115,124,135, 14, 29, 26,179,115,231, 78,131,121, 96,231, 78, + 69, 69, 69,207,191, 28, 51, 54,230,228,201,147,186,138, 20, 15,245, 15,241, 25,230,113, 66, 66, 2,203, 89,102,207, 98,140, 42, + 90,204, 5, 4, 79,127,100,120, 18, 7, 8,216, 44,134, 75,144,224, 11,132, 22, 41,153,153, 69, 52, 77,199,153,194, 73,211,116, +116,114,114,178,208,222,206,154,173, 82,235, 20, 66, 14,195, 75,141,126,148,212,204,175,189, 59, 0,104,162, 31, 92,227,183,106, + 45, 76,205, 43, 16,187,186,186,154,196,169, 86,171, 31,103,101,101,177,236,237,237,217,105, 25,153,167, 44, 37, 98, 91,115, 75, +203,142, 0,160, 47, 47,123, 64,106,181, 5, 44, 14,219,190,160,168,168, 88,173, 86, 39,155, 90,247, 87,175, 94,177, 29, 29,237, + 88,231, 47, 94, 57,109, 47,226,219,153,241,216,230,124,130, 32, 68, 44, 66,206, 53,210,133, 2,145,200, 46, 37, 51,179,152, 97, +152, 90, 45,132,171, 75,199, 14,121,125,189,150, 28,174,198,141,167, 79,159,226,220,173, 56,136, 25, 29, 8, 77, 25, 46,238,254, + 5, 99,230,204,123,239,184,191,250,196,214, 59, 89,179,182,183,142,122,139, 31, 57,245, 4,194,143, 25, 51,102,201,254,253,251, +171, 2, 80,226,226,226,208,179,103,207, 74, 55, 7,130,131,131, 17, 16, 16,128,184,184, 56,120,120,120, 32, 50, 50,146,207, 98, +177,248, 99,199,142, 93,249,219,111,191,157,173,215,238,191, 99, 7, 38, 78,156, 88, 83, 96,245, 43, 0, 26, 66,234,169,152,187, +122,175, 77,113, 81, 33,242, 11,114, 31,155,122, 30, 8,130,192,248,111,190, 41,220,174,211,225,192,253,251, 8, 21,139, 69,123, + 18, 19,209, 47, 32, 0,222, 61,123, 22,154,210,214, 85, 90,117, 52, 26, 13, 56, 28, 14,204,205,205, 97,109,109, 13, 46,151, 11, + 22, 71, 6, 54,207, 7, 36,151, 11,191,174, 62, 88,251,181, 88, 53,238, 99,108, 34, 8,148,242,121,136,230,138,106,141,213, 33, +196, 77, 48,152, 97, 32, 87,101,224,106,165, 32,177,104, 10, 11,142, 25,231,226,164,173,158,150,230,118, 92,156,219,148,134,139, + 91, 51,143,107,114,177,160,226, 92,208,117, 12, 36,188, 45, 45, 45,145,145,145,129,244,244,244, 88,212, 29,224,175,138,139,139, + 75,226,243,249,109,108,109,109, 1,192,173,182,129, 57, 77,211, 85,113, 88,251, 14, 28,181,241,237,230, 46,248,176, 75, 27,236, + 61,189, 2, 95,132,108, 2,135, 69,128,162,244, 88,191,177, 63, 40,173, 2, 33, 3, 63, 35,186,247,246,240,185,124, 90, 55,201, +160, 46,249,229, 15, 3, 1, 54,150,255,107,212, 29, 75,190,132,244, 6, 77, 88,218,216,216,137,185, 92, 46,172,205, 29,117,243, +166,204,202, 97, 24,166,234,185,225,176,184, 6,178,220, 74, 93,148,171, 16, 90,114,212, 0, 67, 54,123,183,108, 54,127, 62, 50, + 51, 51,103,116,235,214,109,101,121,121,121,137, 82,169, 28, 3, 0,110,110,110, 77, 73,146,228, 3,168,203, 59,210, 20, 53,167, +133,224, 62,123,246, 12,102,102,102,200,202,202,170,110,124, 1, 77,211,127,155, 73, 0,127, 83,248, 1,136, 6,224, 8,160, 31, +170,165,119, 32, 43, 76,117,221, 35, 34, 34,152,136,136,136,238, 85,157, 23,195,208,198,226, 98, 48,218,215,231,150,195,225, 48, + 0,170,207,104, 18, 89, 90, 90, 18, 28,103,103, 16,252,215,161, 31,204,159, 56,245,213, 96, 48, 45,181, 12, 77,129, 5, 66, 15, +166,218,160, 69, 41, 32,176,194,166, 23,102,240, 22, 34,151,103, 89,189,167, 3,140, 12, 40,208,172, 6, 22,135, 81, 42,149, 48, + 26,141,210,230,205,155,159, 49, 26,141,210,138,206,141,249,111, 93, 81,138,162,146, 88, 44, 22,166, 77,155,134, 74,235,143, 78, +167, 67,110,110, 46,180, 90, 45,116, 58, 29,146,147,147, 81, 86, 86, 6,157, 78,135,231,207,159,195,205,205, 13, 44, 22,203,177, +142,198,156, 97, 24, 6, 46, 46, 46,104,214,172, 25, 88, 4,131, 95,215, 44,198,252,153, 83, 49,202,141,198,174, 45,235,209,163, + 71,143,214,174,174,174,129,108, 54,155,114,112,112,224,134,135,135,159,162, 40,106, 48, 76,111,121,206,206,157, 59,183, 89,219, +182,109,237, 44,205,205, 12,124, 30, 11, 60,131,146,225,107,139, 24,182,170, 16, 46, 46, 77,141, 16,138, 60, 66, 67, 67,169,218, +172, 16, 53,113,126,253,245,215,142,158,158,158, 22, 82, 75, 51, 37,143,195,202,231,130, 41, 44,123,250,240, 30, 0,240,108,237, + 52, 16,136,218,140, 27, 55,206,216, 16,206,133, 11, 23,186,217,218,218, 90,146, 96,202, 41,189,254,223,254,118,173,174,136,224, +112,212,224,242,218, 79,159, 62,157,104, 8,231,183,223,126,235,218,166, 77, 27, 75, 75,115,177,130,205, 97,229,112,105, 58, 71, + 0, 58,151,163,211,151, 8,108,109, 84, 16, 73,252, 66, 67, 67,107,229,172,180,102,133,133,133,101,188, 37,188, 81, 92, 92, 12, + 77,110, 12,184, 89,241,240,145,112,224,111, 43, 5,159,207,175,154,250, 94,219,237, 90, 91,140, 86, 77, 98,203,212, 99,219, 47, +173,195, 5,184,189,117,212,219,121,179,178,179,179,225,232,232, 88,231,243,244,219,111,191,205, 11, 10, 10,202, 15, 14, 14,214, +157, 57,115, 6, 4, 65, 32, 50, 50, 18, 89, 89, 89, 8, 14, 14, 6,195, 48,149,179,218,240,248,241, 99,244,238,221, 91,215,173, + 91,183,172,138,252, 90,245, 98,226,196,137, 48, 24, 12, 80, 40, 20, 40, 46, 46, 70, 68, 68, 4,124,124,124, 24,145, 72, 52,148, +229,210,103, 69,200,164,121,157,188,218,249, 98,235,166,181, 58, 30,155,179,186, 33,207, 43, 65, 16, 24,247,245,215,133,101,126, +126,197,251,148, 74,213,120,115,115, 81,243,140, 12,171, 71, 23, 46,216,232,245,122,147, 56, 42,173, 58,206,206,206, 85, 34,139, +203,229,130,205,179, 5, 75,236, 13,158,117, 48, 68, 14, 67,113, 53,154,175,181, 16,227,132,153, 4,231,197,150,181,167,118, 16, +185, 96, 69,167,145,142,225,157, 71, 57, 94, 17, 53,193,206,138,254,128,100,216, 68,248,132,245, 45,155,219, 54, 19,226,238,209, + 92, 92,220,154,249,187, 38, 23,139, 1, 36,214,247,156,235,245,122, 13, 69, 81, 32, 73, 18,108, 54,187,122, 76,224,237,223,127, + 96,217, 72, 25, 0, 0, 32, 0, 73, 68, 65, 84,255, 29,143, 30, 61, 2,170,165,237, 41, 47, 47,167, 88, 44, 22, 4, 2, 1, 0, + 72,234,104,239,192,225,112,192,225,112,112,237,222, 13,235, 81,195,250, 19,119,158, 92, 66,103,159,209, 40, 82,232,145, 87,166, + 71,169, 10,104,235,191, 0, 94,189, 79,224,105,114, 57,124,219,121,177, 88, 60,241,184,154,248, 52, 41,200, 80,166, 99,120, 81, + 44,221, 66,151, 41, 60,119,247,100, 92,236,141, 99, 79,159, 31,250,233,116, 98, 39,255,110,202, 10, 99, 2, 20, 10, 5, 67, 16, + 4, 51,107,242,188,164,125, 19, 75,168, 77, 99,158,210,108,173,224,213,127,176,169,111,106,107,107,123,199,218,218, 58,178, 66, + 28, 53, 53, 51, 51,187,237,232,232, 24,143,215, 19, 61, 78,230,228,228,120, 42,149,202,206,120, 61, 57, 43,173,168,168,168,103, +133,229, 41,173, 14, 75,216, 78,185, 92,254, 21, 69, 81, 3, 43,182,143, 41,138,242, 77, 72, 72,104,227,235,235, 27,235,238,238, +254,216,221,221,253,156,187,187,251, 41,119,119,247, 83, 65, 65, 65, 27, 43,211, 61,252,197,110,195, 63,104,145,127,152,208, 66, +133,200,218, 81,241,138, 42,161, 5,224,218,219, 1,104, 70, 62,255,185,241,203, 47, 97,121,234, 20, 56, 9, 9,152, 48,110,156, +185, 72, 36,218,132,215, 57,154, 58, 75, 36,146,173,139, 23, 47, 54,179, 89,181, 10,178, 27, 55,144, 26, 17, 1, 3,135,243,240, + 93, 74,167, 86,171,193,102,179,171, 44, 49, 98,177, 24, 20, 69,161, 38,147,239, 31, 30, 64, 35,238,102,229,197,131,135,102,160, +193, 40,206,203,187,221, 31,157,180,192, 46, 66,238,230,145,168,228,122, 44,181,237,104,183,169,105,151,251, 74,130,173,224, 89, + 10,144,158,158, 1, 10,116,131,252,205, 26,141,166, 76,169, 84,194,215,215,215,250,209,163, 71,205,125,124,124,172, 42, 62,127, +240,158, 23, 38, 80, 38,147, 29,117,114,114, 74,145,201,100, 71, 1, 4, 54,224,216,157, 55,111,222, 4,139,197,194,226,197,139, + 81, 94, 94, 14,189, 94,143,162,162, 34,164,167,167, 67,167,211, 33, 51, 51, 19, 47, 94,188,128, 78,167, 67,106,106, 42,180,218, +250, 7, 36, 52, 77,195,220,220, 28, 26,181, 2, 63,175,152,143,133, 97,179, 81,246, 42, 10,153,217,121,176,180, 16, 99,198,140, + 25, 44,169, 84, 74,211, 52,221,140,162,168,222, 52, 77,111, 51,229, 58, 85,187,223,110,185,184,184,120,173, 89,179,166,205,252, + 21,219,184,230,108, 5,195, 55, 19,208, 60, 51, 62,195,107,221, 17, 19, 23,108,226,254,184, 97,221,203,187,119,239,102,193,180, +228,157, 36,128, 91,126,126,126, 45,179,178,178,124, 60, 61, 61, 91,217, 52,117,229,243, 29,157, 74,185,142, 77,228,140, 86,115, +159,112,106,210,117,219,182,109, 49,183,111,223,206,110, 8,167, 88, 44,110,189,119,239, 94, 47,123,123,123, 47,142, 80, 40, 80, +149,149, 29, 49,170,148, 71, 89,150, 82, 1,105,110,249,241,137, 19, 39,162,142, 31, 63,158,219, 16, 78, 15, 15, 15,207, 21, 43, + 86,180,245,246,246,110,235,224,214,156, 47,116,114, 41, 18, 56, 55, 45, 18,122,251,240,225,220,236,163,173, 91,183, 62,190,123, +247,174, 73,156, 44, 22,203, 72,146, 36, 56, 28, 14, 68, 34, 17,206,159, 63,143, 47, 39,141,134,139,147, 53, 90,121,122,162,215, + 23, 95,225,248,241,227, 85, 49, 60, 44, 22,171,214, 30,125,207,170, 25,167,253, 28,137, 40,108,111, 29,133,237,173,163,252, 28, +137,168, 90,197, 86,197,247, 53,237, 99, 82,107, 84,139,187,209, 4,177,117,246,218,181,107, 63,140, 31, 63,158,215,183,111, 95, +220,191,127, 31, 19, 39, 78,188, 21, 30, 30, 14, 0,184,127,255, 62,102,205,154,117,235,202,149, 43,152, 58,117, 42,122,246,236, +201,187,121,243,230, 86,152,144,251,199,104, 52, 98,215,174, 93, 48, 26,141,144, 72, 36,176,178,178, 66,255,254,253, 17, 19, 19, + 51,117,247,238,221,241, 44, 14,231,147,126, 3,135,225,204,169,112,188,120, 30, 51,117,207,202,177, 13, 78, 10, 76,146, 36,250, +142, 27, 87, 88,216,182,109,241, 30,185, 92,245,169, 84, 42,242,204,205,181,186,122,244,168,141, 9, 66,141,160, 40,170, 74, 92, + 85,138,142,202,141,205,179, 5, 91,236, 5,182,153, 63,158, 38,114, 13,220, 0, 68,243,252, 17, 87, 87,254, 44, 14,143,156, 56, +116,190, 27,134,206,119,195,160, 57,174, 19, 68, 77,240,171,184, 9, 62,239, 59,179, 89,144,187,191, 5,228,249,122, 68,172, 79, + 77,211, 20, 97, 21,128, 23,166, 60,231, 52, 77,199,102,101,101,129,199,227,161, 73,147, 38, 45, 1, 84,198, 5,238,156, 60,121, +242,244,165, 75,151,206, 6,176,180,226, 51, 73, 80, 80, 80, 91,133, 66,129,132,132, 4, 0,120, 84,135, 53,184,106,150, 97,177, + 60,149,239, 42,243,134, 79,235, 41,144, 74,219, 33,171, 88,135,236, 98, 29,126,253,121, 48,162,110, 46,199,163,139,161, 72,203, +205,133,208, 97, 8, 40,163,214,203,132, 65,189,236,201,147, 39,196,205,155, 55, 9,154,166, 97, 48, 24,152,114,185,156,137,190, +117, 11,234,235,215, 9,115,115,115,162, 75,135,110,138, 61,203,207, 60, 56,177,229,214, 35,189,170,193, 3,245,247,193,194,164, +164,164,192,163, 71,143, 6, 1, 88,232,237,237,125, 55, 61, 61,189,211,141, 27, 55, 90, 57, 59, 59,111,122, 87,210,202,180, 16, +169,169,169,111,108, 21,105, 33,116, 21,162,161,111,133,152, 27, 4, 96, 22,222, 99,150,125, 3,112,237, 31, 28, 12,127, 6,111, +205, 54,124, 91,104, 85, 79, 20, 6,119,169,212,204, 96,208,103, 94,186,116, 73, 79,146, 36, 68, 34, 17,198, 79,156, 72,254,252, +211, 79, 93, 71, 7, 6, 70,126,246,225,135,231, 34,175, 92,241, 11, 8, 8, 0,195, 48, 32, 73, 18,135, 15, 31, 86,107, 52,234, + 34, 23, 23, 23, 75, 83, 26,141,234, 15,144, 92, 46,175, 18, 90,101,101,101,176,183,183, 55,217,117,168,148,227,242,149,243, 81, + 37, 12,245, 69,122,223,196, 13,250,213,185,131, 3, 74,105,138, 93, 70, 25, 80,166,102, 80,174, 1,251, 62,105, 21, 48,222, 99, +136, 62,185,119,192,139,235,241,119,138, 52,148,166, 65,179, 37,242,243,243,231,135,132,132, 20, 57, 58, 58, 18,230,230,230,112, +114,114, 34, 7, 13, 26, 84,152,145,145,177,244, 93,175,136,181,181,245,168,160,160,160,211, 89, 89, 89,195,175, 95,191,222,236, +198,141, 27,195,131,130,130, 78, 91, 91, 91,143, 50,145,226,200,188,121,243,148, 60, 30, 15, 29, 59,118, 68,121,121, 57, 42,102, +249,212,185,153,226, 34,229,114,185,216,190,102, 17, 22,134,205, 70,113,252,125, 60,189,117, 9,215,114, 9, 44, 88,177, 14, 92, + 46,247,157,114,125,181,176, 21,121,123,203,204,226,102, 77, 28,153, 61, 55, 44,204,236,241,227,199,156,233, 51,103, 49,169, 57, +197,224,245, 93,203, 66,247,249,228, 19,165, 45,250,125,220, 11,139, 23,126,227, 93,145,180,179, 78,180,182, 21,121,123,201,204, + 98,191,249,108,116,210,204,153, 51,133,171, 87,175,214, 4, 6, 6,170,243,242,242,132, 98,169,149, 39,219,194,210, 43, 53, 39, + 87, 18, 24, 24,152,252,197, 23, 95,148, 54,148,115,193,130, 5,162, 11, 23, 46,176, 67, 66, 66,140, 37, 37, 37, 18,142, 80,232, + 75,240, 5, 29, 10, 74, 74, 44,134,135,132, 36, 14, 31, 62, 92, 85,145,176,212,100,206,239,191,255, 94,244,226,197, 11,118, 96, + 96,160, 33, 55, 55,215, 76,108,109,227,195,178,180,242, 79,201,201, 51,239, 16, 16,240,106,250,244,233,202,186,202, 89, 93,164, +152,153,153,101,117,238,220, 25,235,215,175,199,143, 63,254,136,143, 62,250, 8, 49,207, 99,208,111,250,108,180,249,124, 22, 78, +221,185,135,172,172, 44, 44, 91,182, 12, 62, 62, 62,224,114,185, 47,106,124, 30,167,198, 19,143,115, 65, 60,206, 5, 65, 76,141, + 39, 42,223,215,106,217, 90, 90,134,234,251,215,180,223,163,239,107,182,116,249, 57, 18, 81,117,197, 97,213, 39,182,134, 15, 31, +254,101,101, 10,135, 79, 63,253,244,214,166, 77,155,186,124,250,233,235,129,118,199,142, 29,177,124,249,242, 46, 11, 22, 44,184, +181, 98,197, 10,244,234,213, 11,238,238,238,245, 78,124,161, 40, 10, 70,163, 17,163, 71,143,134,209,104, 68, 65, 65, 1, 94,190, +124,137, 29, 59,118,128, 97, 24, 1, 0, 56,202,156,219,243,120, 60, 60,137,126,168, 90,248,105,192,111, 13,176,100, 17,213, 7, + 49, 10,133, 2,195, 63,255,188, 48,179, 69,139,226,109,133,133,170, 73, 82,169,200, 53, 45,205,202, 76,167,115, 66, 29,113,137, + 4, 65,128,166,233, 42, 97, 85, 41,184,222,222, 42, 58, 74,147,160, 87,209,103,111,236,207, 6, 0,116, 27, 43,195,160, 57,174, + 19, 28, 61, 68,155,187,142,121,109,244, 62,190, 60,137, 41,207,166, 86,195,128,216, 6, 88,172,239,223,191,127, 31,150,150,150, + 8, 9, 9,225,147, 36,185,170,114,188,138,215,185,179, 54, 84,114,241,249,252,181,161,161,161,100,105,105, 41,158, 62,125, 10, + 0, 87,106,107,151, 24,134,169,170,187,162,152, 0, 69,243,112, 59,250, 60, 46,222, 56,134,148,172, 2,164,229,107, 0,182, 5, + 52,202, 76,232,213, 89,208,149, 70, 67,174, 21,153, 84, 96, 46,151, 91,224,237,237,205,248,251,251, 51, 12,195,224,213,171, 87, +198,212,180, 52,227,195,141, 27,153,103, 83,166, 16,102, 47, 95,114,133, 66, 33,225,230,230, 6,129, 64, 64, 11, 4,130,162,255, + 96,231,253,151,164, 91,248, 11,210, 66,252,153, 86, 45, 6,255, 76,228,224,205,217,134, 85, 9, 76,107, 74, 88, 10,198, 92, 56, +242,216,214,159, 45, 66, 70,143, 85,250,248,248, 72,157,156,156, 64, 16, 4, 6, 15, 25, 66, 4, 93,191,110,198,145,201, 96,253, +193, 7, 85,238,136,203,151, 46,225,252,249,243,202, 51,191,159,112,154, 56,105,210, 0, 0,123,235, 40, 12,155,207,231, 87,253, +110, 78, 78, 14,248,124,126, 85, 76,132, 92, 46,135,173,173, 45,114,114,114, 76, 93,249,122,223,220,176,123, 97,249, 1,243,221, + 2,204, 56,196, 57,101, 46, 40,134, 1,135,160, 0, 53, 3, 3, 5,104, 13, 12,218,187,178,172, 46,170,141,210,136,251,225,201, + 0,246, 53,228,236,105,181,218,171,143, 31, 63,158, 66,211,244, 49, 0,228,245,235,215,233,216,216,216, 47, 97,122,224,250, 31, +205,246, 34,209,156,200,200, 72,171, 57,115,230,148, 68, 68, 68,148,245,239,223,223, 98,199,142, 29, 86, 61,123,246,156, 83, 84, + 84,116,200, 20, 67, 96,122,122,250,222,140,140,140, 47,253,253,253, 81, 92, 92, 12,189, 94,143,168,168, 40,120,120,120,224,209, +163, 71,104,217,178, 37, 30, 62,124,136, 86,173, 90,129,162, 40,104, 52, 26,208, 52, 77,213,215,152, 23, 23, 22, 0, 69,233,200, +190,127, 14, 47,159, 69, 33, 50,155,192,150, 67,167,209,164,153,219, 59,229,169,105,105, 39,106,235,104,107,125,113,245,146,239, +237, 82,175, 30, 70,248,174, 45,244,181,115,231,218,240,204, 48,165,251,232,175,134,233, 12,104, 10,128,215, 41,192, 31,125,165, + 47, 40, 81, 51,228, 70,198,214,157, 96,177,165,157,168,173,189,141,245,133,127,173, 90,106,246,234,252, 30, 28,217,190,158, 57, +190,255,160,143, 6, 8,104,219,182,109, 95,146, 36, 45, 1,104, 42,226,188, 76, 90,218,166, 38,206,203,167, 79,251,105,128,128, +147, 39, 79,246, 21,137, 68, 14, 0, 12, 42,149, 42,233,125, 56,175, 68, 68,248, 85,150,147, 32, 8, 59, 0,122,134, 97, 94,161, +129, 75,240,140, 24, 49, 98,249,172, 89,179,194, 40,138,178,173, 54, 58,103,173, 93,187,150, 77,211, 52,139, 97, 24, 61, 73,146, +250, 11, 23, 46, 80, 70,163, 49, 91,163,209,124,254, 62,173,200,176, 97,195,112,239,222,189, 37,120, 61, 9,195, 84,107,245, 27, +113, 90, 21, 75,246,188, 51,255,245,235,215,151,125,242,201, 39,115, 15, 29, 58,244,114,211,166, 77, 3,167, 78,157,138,195,135, + 15,163, 69,139, 22,120,242,228, 9,230,207,159, 15, 0, 93, 22, 44, 88,112,106,231,206,157,238,169,169,169,107, 77,176,104,192, +104, 52,226,224,193,131, 24, 60,120, 48,108,109,109, 33,147,201, 64, 16,196,213, 73,147, 38,253, 4, 0, 44,130,197, 5, 0,173, + 70,171,245,244,244, 55,217,130,203,229,114,171,218,186,220,220,220,170,153,130,125, 62,249,164,240,215,213,171,241,155, 90,141, + 73, 82,169, 40,211,217,217,241,212,171, 87,159, 61,127,221, 56, 51,117, 89,117,234, 19, 89,166,134, 52,168,115, 48,239,247,149, + 41, 14, 0, 62,234, 54, 86,134,110, 99,101,240, 31,100, 71,144, 44, 2,207, 46, 22, 33,230,114,241,113,131, 28, 87,209,176,229, +114, 98, 87,173, 90,117,170,123,247,238, 3, 91,183,110,141,201,147, 39,127,177,107,215, 46,174,193, 96,152,137,127,167,121,176, + 32, 73,114,233,246,237,219, 63,179,178,178,194,205,155, 55,113,227,198,141,171, 0,210,107,107,151, 0, 84,229,204,106,226,210, + 82,243, 34, 85, 33,202,207,186,141, 91, 55,127, 71, 11,159,175, 32,116, 24, 0, 43,207, 21,208,199,255, 8, 93,209, 69, 88,185, +244, 71,102,234, 43,176,216,252,152,250,130, 80, 24,134,121,158,153,153,233,238,238,238, 78,164,164,164, 24, 1, 48, 20, 69, 49, +250,174, 93, 13,109, 86,175,230,196,124,241, 5,209,233,197, 11, 22, 67, 16,116, 84, 84, 20, 0,196,253, 55,122,241,202,116, 11, + 49, 49, 49,181,165, 91,104, 16,188,189,189,187,220,184,113,131,175,209,104,112,237,218, 53,116,232, 80, 53,183,235,191,154,253, +190,186, 22,249,135,225,179, 26, 62,219,241,134, 69,235,141, 27,155, 38, 56,173, 90,182,164,184, 36,118, 15, 30, 48, 64,245,248, +241,227,170, 81,159,230,193, 3, 40,207,159, 7, 69, 81, 96, 24, 6, 55,174, 95, 71,232,216,177, 10, 14,139,248,213,213,181, 25, + 67, 48,111,228,110,233, 93,195,232, 33, 36, 36, 36,164,170,241,201,200,200,128, 88, 44, 6,143,199, 3, 77,211, 48, 26,141, 96, +177, 88,176,176,176,128,209,104,172,201, 4,243, 54,167,129, 42, 86, 14,223,217,111, 76,142, 76,161,103,166, 88,186,162, 41, 87, + 88,245,112, 58,152, 19, 24,232,195,129, 13, 59,159,185,178,246,195,108, 90, 91, 52, 28,127,156,209, 85,223,148,255,150,237,218, +181,251, 41, 52, 52,148, 4,128,222,189,123,147,237,218,181,219,140,186,151,202,169,147, 83, 32, 16,240, 1,224,244,233,211,197, + 47, 95,190,252,232,244,233,211,197,213, 63, 55,145,115,199,154, 53,107, 32, 18,137, 96, 52, 26,161,211,233,170,226,179,170,191, +234,245,122,216,216,216,224,204,153, 51,160, 40,234, 76,125,229,116,105,218, 12,132,109,115,236, 61, 29,137, 27,133,220,119, 17, + 89, 85,156,205, 29,196,173, 28,108,172, 47,253,107,229, 50,219,146,196, 40,100,102,102, 50, 23,206,159,185,171, 1,178,202,202, +177,176, 84,137, 86,106, 29, 4, 29,220,145,126,105,251,119,204,130,110, 48,160,230, 89,131, 85,156,109, 28,196,173,156,108,173, + 47,172,251,215, 74,179,210,196, 40,228,228,230,226,236,153,211,143, 53, 64,165,187,113, 2, 77,211, 94, 52, 77,123, 1,152, 80, +135,120,105, 16,167, 74,165,242, 86,169, 84,222,127, 38, 39,195, 48,222, 12,195,152,204, 89, 61, 38,106,195,134, 13,241, 57, 57, + 57,161,249,249,249,193,149, 91, 73, 73, 73,111,133, 66,209, 67,165, 82,117, 85,111,104,102,161, 82,169,236, 20, 10,133,163, 70, +163,105, 15, 32,170, 1,247,124, 21,170,103,157,206,201,201, 89,156,147,147, 67,212, 87, 78,214,231,241,196,129,117,223,252,190, +125,251,118,199,247,228,127,163,156,133,133,133,199, 14, 29, 58,228,235,230,230,230, 62, 97,194, 4,108,219,182, 13,155, 54,109, +210, 2,192,206,157, 59,181,213, 44, 89, 46,169,169,169,254,181,184, 13,123, 87,179,150,236,235,211,167, 15,115,227,198, 13, 12, + 30, 60,184, 42,145,232, 47,191,252, 2,163,209, 40,239,213,171, 23, 13, 0,106,141, 74,206,208, 12,116,250, 90,253,239,127, 56, +159, 60, 30,239,227,234,249, 2, 43,147, 49,243,120, 60, 48, 12,131, 86, 93,186, 20,150,250,248, 20,239, 42, 43, 83, 45,246,246, + 54,255,204,211,115, 66,107, 96,108, 77,156, 4, 65,188, 97,213,121,123,107,128, 37,171,122, 57,243,213,217,152,252,251,202,148, +243,149,150, 45,129,132, 13, 77,185, 17, 39, 86,167, 20,104, 10,240, 75,109,226,167,174,186, 23, 23, 23, 79, 95,189,122,181, 86, + 42,149, 98,216,176, 97, 88,177, 98,197,164, 46, 93,186,148,217,217,217,221,107,209,162,197,179,145, 35, 71,230, 68, 69, 69, 77, + 15, 10, 10, 66, 66, 66, 2,214,173, 91, 87, 90, 82, 82, 50,166, 46, 78,130, 32,170, 44,121,131,250,245, 46,254,121,243,122,186, + 87,247, 47, 33, 18,154,195,192,113, 65,177,194,128, 18, 37, 3, 29, 63, 0, 60, 46, 31,193,129,109,113,239,194, 30, 21,165, 83, +238,173,239,158, 87, 40, 20,199,199,143, 31, 47,231,114,185,208,233,116, 12,135,195, 1,255,117,220, 49,205,249,232, 35,125,167, +216, 88, 35,197, 48, 52, 65, 16,248,250,235,175,149, 37, 37, 37,135,222,229, 57,106, 0,170,115,254, 89,233, 22,122,191,213,255, +252, 25,105, 33,254,138,186,255,147,177,163,134,237,223, 22,173,202, 41,149,149,175, 4, 65, 83, 20, 69,195,213,205,213, 44, 53, + 37,125,203,136, 17, 33,159,246,237,219, 79,212,175, 95, 63, 65,219,248,215,163,209,211,167, 79, 35, 60, 60, 92,117,241,226, 69, + 57,159,195,218,233,210,196,197,158,162,104, 16, 4, 93,167, 26, 54, 51, 51,155, 57,111,222, 60, 97, 89, 89, 25, 54,109,218, 68, +251,250,250,146, 98,177, 24,122,189, 30, 59,119,238, 52,180,109,219,150, 67,146, 36,202,202,202, 64,146,228, 11, 19, 43,248,180, + 44, 61, 43,248,167,160,161,225,254,211, 38, 90,183, 9,234, 36,237,225,226, 4,195, 7, 12,178, 51, 82,240,242,202,197,146,231, + 23, 54, 22, 65,147, 55, 20,245, 47, 15, 84, 83, 71,176,232,226,197,139,118,211,167, 79,103, 52, 26, 13,145,158,158,206,172, 92, +185,210,110,242,228,201,139,178,179,179, 71,189,227, 69, 33, 74, 75, 75, 65, 16, 4, 93,209,144, 84,142,250, 27,226,151,139,217, +187,119,239,201, 33, 67,134, 12,234,213,171, 23,226,227,227,171, 92,132,213,133, 86,229,236,195, 85,171, 86,149, 2,152, 91, 31, + 41,135,195,193,166,189,199, 80, 90, 82, 8,123,123, 25, 4, 66, 33,222,117,134, 37,143, 36, 23,255,176,236,123,187,194,184,123, + 68,204,221, 72,250,232,211,188,124, 35,197,212,156,241,191, 60,155,169, 80,255,117,143,102, 72,214,226, 31, 86, 46,181,168,116, +107, 30,138,206,145, 19, 20, 51,253,189, 30,145,127, 10,231,127, 24, 50,153, 12, 57, 57, 57,132, 76, 38, 99, 42, 98,180,152, 58, +132,214,155, 55,248,107,119, 25, 81,151,219,240, 93,249,147,147,147, 87,126,240,193, 7,223, 36, 36, 36, 28,109,211,166,205, 84, + 0, 77,180, 90,109,233,130, 5, 11,254,181,115,231,206, 79, 77,177,100, 1,192,225,195,135, 55, 78,156, 56,241,252,128, 1, 3, +190,163,105,186, 93,181,142, 61,217,206,206,174,202,133, 91,144,151, 27, 54,229,211,209, 97, 10, 69,137,201,121,238, 36, 18,201, +103, 11, 22, 44, 16, 40,149, 74,108,221,186,149,110,219,182, 45, 89, 57, 40,218,191,127,191,177,101,203,150,236,144, 47,191, 44, +220,144,155,139,229, 55,111, 42,195,188,188,124,119,189,124,217, 30, 52,189,175, 54,171, 78, 77,150,172,202,176,139,119, 68,118, +133,216,250, 5,192, 71,157, 70, 56,224,228,154, 20,148,164,234,254, 5, 35, 94,193,132,101,129,106, 64,230,241,227,199,131,243, +242,242, 78,126,255,253,247, 22,237,219,183,135,151,151, 23, 71, 34,145, 4, 84,166,139, 41, 43, 43,195,229,203,151,177,109,219, + 54,221,243,231,207,135,212,229,174,162, 40, 42,191,101,203,150,149,231,129, 33, 8,162, 72,174, 37, 44,142,180, 14,144, 76,152, +114,148,184,245,240, 14,178,245, 52,180, 6, 26,174,110,126,232,241,209, 6,156, 58,247,140,202, 78,141,141, 53,168, 75,126, 53, +161,188,175, 18, 19, 19, 79, 44, 91,182,108,196,119,223,125, 39, 44, 44, 44,164,180, 90, 45,125,236,216, 49,214,132, 9, 19, 40, +134,205,166,185,108, 54,102,206,156,169, 46, 45, 45,253, 29,248,143, 46, 48,253,151,164, 91,248, 11,210, 66,252,105,214,172,234, +175,255, 95, 80,227, 19, 74,179,200,219,219,182,255,252,241,225,131,135, 28, 88, 44,242,255,216,187,238,248,166,170,247,253,220, +123,179, 71,211, 52, 29,105, 58,104, 89,101,149, 85,246, 6, 65, 65, 64, 81,100,124, 17, 4,190, 96, 1, 81, 4, 20, 28, 56,160, + 44, 65,252,130,130,140, 10,202, 16,148, 41, 27,101, 72,109,217,180,128, 80,202, 30,221, 35, 77,147, 54,105,246,205,253,253,209, + 36,166,165, 35, 41, 69,193, 95,158,207,231,126,146,155,123,243,228,220,147,123,207,121,206,123,222,243,190,193,119,238,222,189, +240,242,208, 97, 89, 71,143, 30,149,113,124,125, 59, 2,176,153, 38, 79, 62, 99, 54,234, 85, 7,246,238,141,168, 95, 63,178,141, + 61,169, 52, 99,163,200, 83,213,253,160, 86,171,213, 37, 38, 38,150,126,244,209, 71, 68, 70, 70,198, 86,185, 92, 62,242,240,225, +195,226,161, 67,135,234,211,210,210,118, 5, 7, 7, 15,233,211,167,143,207,251,239,191,111,212,106,181,158, 36, 30, 77,101, 10, +138,154,159,255,108,217,235,231,151,174,121, 30, 44,170, 27,140,108,192,102, 57, 5,115,201, 81, 0, 91,225, 65,188, 35, 87,136, + 68,162, 54, 66,161, 16,151, 46, 93, 42,234,212,169,147,201, 96, 48,112, 22, 46, 92,232, 47, 18,137,218,212,182,226, 25,134, 97, +138,138,138, 96,179,217, 88, 0, 8,251, 43,108,158,175,197,255,207,203, 47,191,188,119,251,246,237, 47, 12, 26, 52, 8, 13, 27, + 54,132,197, 98, 65,147, 38, 77, 96, 50,153, 16, 21, 21, 5,163,209,136,121,243,230, 65,163,209,204, 68, 53, 57,207, 8,130,128, +213,106,117, 58,219,134,134, 69,148,197,233,121,140, 48, 22, 34, 54,217,240,198,129,239,145, 95,168,180,109,191,156,151, 87,106, +166,251,223, 46, 40,189, 86,241,188, 82, 26,186, 62,227,167,101, 1,128,209, 86,125,198,121, 17, 23, 13,111, 30,252, 14,121,249, + 74,252,156,146,163,214,153,109, 3,110, 86,194,233, 81, 57,159, 17,206,152,121,105, 24, 54,205,253,115, 31, 7,238, 10,170,170, +112, 41, 23,196, 69,225,247, 12,214,125, 95,105,140,172,199,228,223,123,235,214,173,189, 0,144,154,154,154, 49,106,212,168, 15, +239,223,191, 63, 31,192,161, 7, 15, 30,172,243,132,232,251,239,191,191, 5,224,191,213,157,243,211,178,255,238, 1,176,199, 19, +222,146,146, 18, 67,114,114,178,225,253,247,223, 39, 50, 50, 50, 14, 7, 7, 7,191,112,228,200, 17,225,208,161, 67,141, 87,175, + 94, 61, 30, 18, 18,210,179, 95,191,126,226, 67,231,206,101,149,222,185,115,224,192,253,251, 97, 22,155,237, 64,117,207,103, 29, +139,172,114, 98,107,207,130,251, 75,246, 46,185,223,207,102,196, 46, 83, 17,206, 0,200,124, 12,206, 63, 78,157, 58,213, 98,204, +152, 49,219, 7, 15, 30,220,181, 69,139, 22,168, 87,175, 30,110,222,188,137,130,130, 2, 92,185,114, 5,251,247,239,223,111, 48, + 24,106, 76,168,173, 82,169, 30, 77, 79,196,151,133,108,252,118,238,254, 11, 73, 29,155,244, 24, 52, 78,208, 50,196, 6,147,153, + 65,198,195, 59,152,247,233,250,210,156,135,183, 82,205, 86,243,171,112,115,161,142, 94,175,143,255,250,235,175,217, 7, 14, 28, + 24,180,106,213, 42,159,136,136, 8,138,195,225,144, 0,152,139, 23, 47, 50,211,166, 77,211, 41,149,202,131,197,197,197,241,127, +115, 31,253,199,221,187,119, 99, 40,138,170,211,112, 11,143, 17, 22,194,139,186, 68,131, 6, 97, 45, 26, 69,132, 76,110, 88, 47, +108,106,131,136,240,177,149, 57,185, 55,244,243,243,105, 16, 25, 26,219,176, 94,216,212, 70, 17, 33,147, 27, 52, 8,107,225,134, +105,177,161, 68, 34, 57,172, 80, 40,218, 2,128,175,175,239, 16,169, 84,122,205,215,215,119,136,125, 20, 56, 68, 44, 22, 95,143, +142,142,126,243,111, 52, 87, 86,203,217,164, 73,147, 81, 90,173,246,173, 38, 77,154,140,114,236,223,185,115,199,185, 95, 27,206, +240,240,240,190, 23, 47, 94,252,207,178,101,203, 94,107,220,184,241,144, 69,139, 22,189,246,203, 47,191,252, 39, 44, 44,172,125, + 45, 56,121, 0,126,100,179,217,121, 92, 46, 55,159,205,102,231, 57, 54, 22,139,149, 71, 81, 84, 30,128,117, 85, 88,203,250,185, +140,114,146,228,114,249, 3,185, 92,254, 32, 56, 56,248, 65,112,112,240, 3,133, 66,241,200, 22, 16, 16,144,228,110,125, 54, 11, + 22,119,239, 84,207,231, 84, 43,133, 56,169,185, 92,212,172, 46,254,163,102,193,226,238, 29,235,249,158,106,165,240, 73,252,255, +198,217, 54, 24, 12,179,182, 25,195,172,109,198,180, 13, 6, 83,211,126, 93,154,253, 21, 10, 5,163, 80, 40,230, 62,169,169,132, + 42,248,255,246,231,189, 14, 57, 27,250,248,248,252, 84,175, 94, 61, 71, 91,247,146, 68, 34,249, 93, 44, 22,191,100,111,235, 94, + 18,137, 68, 9,209,209,209,227,106,226,148,201,100, 23,131,130,130,114,237, 91,142, 92, 46,207,145,203,229, 57, 65, 65, 65,217, + 65, 65, 65,217,129,129,129, 89,142, 77, 42,149,158,173,229,181, 7, 1,232, 12,160, 61, 0, 73, 29,214,103, 3, 0,147,236,109, +208, 23, 0,222, 4,208,186, 14,254, 35,130, 45,144, 77,225, 73,195, 79,177,197,129, 37,108,113, 96, 9,207, 55,236, 84, 53, 41, +120,220,225,108, 42,147,201, 22, 74, 36,146, 95,124,124,124, 18,125,124,124,246, 6, 4, 4, 44, 2,208,244, 31,186,151,196, 0, + 54,160, 44, 62,211, 33,148, 77,133,239, 69,217,162,130,136,167,240,158,255,255,140,216, 74, 12, 42,248, 59,162, 64,245,243,114, +122, 57,189,156, 94, 78, 47,167,151,243, 25,228, 36,189,245,233, 21, 90, 30, 10,173,114,155, 67,104,177,188,117,227,133, 23, 94, +120,225,133, 23,143,192,230,173, 2, 47, 60, 68,165, 83,203, 68, 53,170,212,147, 88, 83,181, 81,182,199,188,156, 94, 78, 47,167, +151,211,203,233,229,244,114,254,191,227,252,127,129,191, 43,121,140,215,172,234,229,244,114,122, 57,189,156, 94, 78, 47,167,151, +243,223, 14,239,212,161, 23, 94,120,225,133, 23, 94,120,225,197, 19, 66,188,139,224, 42, 55,133,232, 21, 90,158,131, 4,240, 22, +128, 97, 0, 26,161, 44,155,253, 78, 0,171, 81,187, 57,125, 9,128, 15, 1,116, 67,217,234,156,123, 0, 18, 81,182, 58, 71,235, +173,238,202, 17, 16, 16,240, 49,155,205,150, 2,101,169, 77, 28,175,174,239,105,154, 86, 23, 23, 23, 47,122, 66, 69,160,224,102, + 4,101, 71, 89, 93,203,230,250,106,177, 88,158,100, 57,189,120, 58,209, 68, 38,147,253,168, 82,169, 70,195, 37,201,178, 23, 94, +252, 27, 16, 24, 24, 56,217,108, 54,127,194,225,112, 22, 22, 20, 20,172,249,127,116,233,143,136,172,114, 66,235,192,129, 3, 9, + 0, 48,120,240,224, 94, 0, 32,149, 74, 79,147, 36,217,192,147, 95,176,217,108,247,212,106,117,149, 1,212,164, 82,233,105,138, +162, 30,225,180, 88, 44, 62, 44, 22,171,164,178,239, 88,173,214,204,226,226,226,246, 79, 73, 37, 18, 0, 14,248,249,249, 25,230, +207,159,191,186,119,239,222,225,217,217,217,214,217,179,103,247,188,124,249,242, 32, 0, 47,122, 40,182,186, 16, 4,177,177,109, +219,182,123,198,142, 29,187,189, 83,167, 78,220,194,194, 66,159,157, 59,119,134,110,218,180, 41,217,102,179,141, 70, 53,137, 86, +255, 63,131,205,102, 75, 51, 51, 51,125,128,178,121,112,187,176,130,197, 98,129,197, 98,129, 78,167, 67,155, 54,109,234,252,119, +131,131,131, 99, 8,130, 88, 37, 22,139,219,107,181,218, 11, 0,166,230,228,228, 92,246,164,172, 86,171, 21, 12,195, 56,203,217, +162, 69, 11,239, 31,234, 25, 38,114,185,220, 1, 81, 81, 81, 29,141, 70, 99,209,189,123,247,206,211, 52,253, 25,234, 46, 71,155, + 47,128,207,120, 60, 94,167, 70,141, 26,133,223,186,117, 43,195,108, 54,159, 67, 89, 50,100, 77, 93,136,172, 94,189,122, 37,125, +251,237,183,254, 83,166, 76, 73, 74, 76, 76,236,238, 21, 91, 94,252, 83, 8, 15, 15,151,234,116,186,245, 0, 98,216,108,118, 48, +159,207,135, 64, 32,200,229,241,120,151, 4, 2,193,132, 83,167, 78,169, 61,229,164,105,250,179, 7, 15, 30, 4,119,238,220,121, +105, 80, 80,208, 60,165, 82,105, 48,155,205,199,139,138,138,102, 2, 40,174,238,187, 21,181,200, 51, 38,178, 92, 95,225, 16, 93, + 44,251,133, 49, 0,122,151, 83, 96, 44, 86,216,195,135, 15,131,248,124, 62,108, 54,155,179, 51,171,184, 57, 62, 55,153, 76,104, +217,178,165,185,134, 14, 39, 60, 35, 35, 35,136,203,229, 58, 63, 51,153, 76, 8, 13, 13,181,101,102,102, 6,217,211, 30, 56, 97, + 52, 26, 17, 22, 22,246, 52,229, 60,122, 75, 38,147,105,210,211, 51,218, 24,140,230,184, 55,223,249,232,227,209,195,158,247, 59, +125,250,180,237,197, 23, 95, 52, 38, 36, 36,188,133,178,196,169,110, 53,230, 4, 65,108,154, 61,123,246, 60,190, 80,226,127,226, +116,170,113,211,206,131, 89,109,155,212, 39,102,206,156, 73, 77,155, 54,237,143,152,152,152, 31,109, 54, 91, 59,120, 96,217,242, +243,243, 59,194,227,241, 34,237,245,151, 94, 84, 84,244,194, 83,120, 67,178,240,104,240,216,202, 62,171, 17,133,133,133,208,235, +245,143,108, 45, 90,180,120, 18,142,136, 44, 54,155,189,119,241,226,197,161,185, 57, 57,248,223,242,229,157, 81,102,201,236,236, +206,151,243,243,243, 31, 41,103,179,102,205,224,133, 71,248,112,222,188,121,139, 95,127,253,117,208, 52, 13,189, 94, 31,114,251, +246,237,232, 79, 62,249,228,213, 59,119,238,116, 4,112,247,113, 7,227, 81, 81, 81,105,211,167, 79,151,117,236,216, 17,246, 44, + 21, 33,137,137,137,157, 55,108,216,240, 70,122,122,122, 51, 0, 5,143,243, 3, 50,153,236,199,239,190,251,206, 95, 40, 20, 98, +223,190,125,254,125,251,246, 77, 76, 73, 73,233,241, 24, 98,139,244,247,247,159, 6,224, 57,155,205,198, 5,112,174,168,168,104, + 1, 60,143,234,174, 16,139,197,187, 72,146,172, 15,252, 21,141,158, 36,201, 0,130, 32,148,142,207, 8,130, 8,178,217,108,103, + 84, 42, 85, 87,239,237,248,108,195,223,223,127, 98, 94, 94,222,183, 60, 30,143,227,231,231, 7,161, 80, 8, 22,139, 5, 22,139, + 85,143,199,227,213,227,241,120, 3,251,244,233, 51,245,247,223,127,175, 54,194,126,151,182,242,241, 32,137, 56,138, 32, 41, 0, + 32,217, 34,137,175,175, 47,226,226,226, 68, 67,134, 12, 17, 1, 64, 82, 82,210,216,113,227,198,245,205,204,204,108, 89,149,216, +170, 76,139, 60, 67,136,175,174,195,131, 93, 61, 38,148,123,114, 73, 18, 92, 46, 23,103,207,158,133, 59,193,202, 29, 41, 18,170, +109, 13,236, 17,198, 47, 95,254,203, 0,224,232,104,184, 92, 46, 78,157, 42, 31, 84,190, 75,151, 46,206,135,253,239,194,176, 22, +101, 65, 30,119,188, 93, 86,174,225,171,202,162,107,239,120,187, 25,122,126,245, 16,195,166,205, 29, 89,106, 48,119, 0,160, 83, + 23, 21, 21, 93,216,189, 59,187,109,147, 38,156, 31,127,252,177, 99,104,104,232, 48, 15,132,214,135,237,218,181,219, 69, 9,124, + 3,198,142, 27, 63,118, 2,139, 52,191, 49,233,253,133, 25, 57, 74, 93,108,108,236,238,125,251,246,141, 93,178,100,201,245, 89, +179,102,125, 8, 96,142,187,229,231,243,249,145, 55,110,220,136,162,105, 26, 45, 90,180,120, 26,211, 24,180, 69, 89,240,189,215, + 1,108,179,127, 54, 10,101,145,251, 99, 0, 92,242,132,204, 97,193,170,108,171,107,132,134,134, 54, 27, 51,102, 76,128, 74,169, +196,255,150, 47,119,124,220, 30, 53, 76, 35, 58,158, 31,147,201,132,215, 94,123,109, 12, 77,211, 44,135, 8, 52, 26,141, 38,141, + 70, 99,192, 95,142,165, 5, 0,158,119,163, 56, 13, 68, 34,209,151, 0, 98,244,122,125, 40, 0,136, 68,162, 44,155,205,182, 71, +167,211,205,193, 95, 9,124, 61, 30,224, 2,136, 70,213,169,160,152,197,139, 23,223,250,232,163,143,238,254, 3,156,145,114,185, +124,209,240,225,195,113,240,224, 65, 28, 58,116,200, 34, 16, 8, 88,227,198,141, 35,166, 78,157,234, 55,125,250,244,129, 0,190, +126,204,191,121,224,188,121,243,100,205,155, 55,199,206,157, 59,113,229,202, 21,125, 84, 84,148,160,119,239,222, 96,177, 88,178, +143, 63,254,248, 69, 0, 27, 31,231, 7, 84, 42,213,130,247,223,127,127,211,182,109,219,124,238,221,187,135, 85,171, 86, 5,140, + 28, 57, 50, 33, 61, 61,189,151, 7, 98,139, 7, 96, 26,128, 62, 20, 69,245, 24, 55,110,156,245,157,119,222, 97,147, 36,105, 89, +190,124,121,224,134, 13, 27, 70,178,217,236,152,194,194, 66,119, 6,105, 36,128,184, 9, 19, 38,252,247,247,223,127,247, 59,127, +254, 60,215,223,223, 31, 52, 77, 59, 45,197, 54,155, 45,200,113,207, 90,173, 86, 52,107,214, 44,204,229,251,130,103, 85,104,144, + 36,105,182,217,108,108, 0,124, 0,198,154,246,255, 77, 34, 75, 38,147, 77, 81,169, 84,171,131,131,131, 33,151,203, 31,233,107, +141, 70, 35,248,124, 62, 39, 56, 56,248,187, 33, 67,134,176,247,238,221, 91,229, 20, 32, 65, 17,159,237,251,105,126,168,204,207, + 7, 0,176, 98,237,175,165, 0,240,203, 47,191, 32, 59, 59, 27,126,126,126,104,217,178, 37, 53,127,254,124,197,204,153, 51,255, + 87, 84, 84, 52,161, 42,174,138, 90,228, 25,179,104,197, 87,182, 95,173,143, 22,195, 48,206, 60,121,110,222,180, 21, 63, 58, 86, +129,143, 48,153, 76,168,104,209,114, 60,188,108, 54,187,162,249, 17, 4, 65, 48,213,113, 86,130,113, 34,145,168,141, 78,167, 91, +233,193,232,214,201,185,227,237,102,216,196,155, 61,202,145,137,116,224,251,101,175,155, 0,156,190, 63, 97,213,183,189,122,133, + 78,251,244,155,185,250,194,108,229,199, 99, 94,138,140, 10,246, 23,136,212,249, 26, 89,211,166,253, 43, 88,100,106, 42,103,207, +177, 99,199,110,254,237,236, 3,130,207,231,112, 88, 20,197,238,222,170,137,127,184, 47,229,235, 3,248,102,220,189,117,122,252, +248,241,173,102,205,154,213,195, 3, 78,216, 59, 92,108,217,178, 5, 4, 65,144,158, 92,123, 29,226, 88,117, 34,139, 97, 24, 16, + 4,177,213,165, 83,217,106,255, 44,197, 69,108,177,170,171, 79,135, 53,213, 33,170,198,141, 27, 55,198,106,181,178, 92, 26,137, +138, 2,166, 50, 17,227,214,181, 43, 20,138,223, 0, 60, 79, 16, 4, 76, 6,131,233,203,175,190,114, 61,124,177,130,200, 58, 86, +213,179,100,177, 88, 64,211, 52, 43, 37, 37,133,237,114,175,179, 1,136, 0, 4, 48, 12, 3,146, 36,255,116,163, 62,155, 9,133, +194,211,251,247,239,151,180,111,223,158,224,114,185,176, 90,173,184,122,245,106,248,146, 37, 75, 38, 29, 59,118,236, 69,157, 78, +215, 2,143, 38, 79,119,231, 63,138, 78, 76, 76,212, 53,108,216,176, 82,225, 88, 92, 92,204,106,210,164, 73,175, 42, 68,209,147, +230,204,204,203,203,123,229,249,231,159,159,156,155,155,155,102,181, 90, 63, 0,208, 50, 32, 32, 32,101,232,208,161, 16, 8, 4, +125,244,122,253,215,143,115,207, 7, 5, 5, 13,233,218,181, 43, 86,173, 90,133, 37, 75,150,244, 3,112, 28, 64,223,226,226,226, + 99, 47,191,252, 50,164, 82,233, 43,106,181,122,227, 99, 60, 71, 77,122,246,236,249, 93, 92, 92,156,207,193,131, 7, 17, 21, 21, +133,146,146, 18,188,247,222,123, 65,159,127,254,249, 73,181, 90,221,219,229,185,168,138,179, 5,143,199,219,184,109,219, 54,113, +195,134, 13, 27,114, 56, 28,178, 97,195,134, 80,169, 84, 48, 24, 12,188,133, 11, 23,182, 18, 8, 4,151,191,254,250,235,141, 0, +134,214, 80, 78, 18,192,130,117,235,214, 77,142,141,141,149,142, 25, 51,134, 54,153, 76,216,190,125, 59, 40,138, 2,155,205,134, + 80, 40,116, 38,175,230,112, 56,104,218,244,145, 32,233,251,170,185, 94, 13,202,252, 80,165,240,108,218,245, 88, 53,124,206,169, + 15, 54,155, 13, 62,159, 15, 62,159, 15, 30,143,135, 27, 55,110,124,202,231,243,151, 19, 4, 97,117,135,147,248, 75, 93,180, 1, +112,190,166,125, 60,234, 26,242,119,182,159, 14,132, 17, 4,177, 2, 64,159,178,110,151, 76, 8, 8, 8,120, 55, 47, 47,239,161, +187,156, 10,133,194,191,176,176,240,107,133, 66, 1,185, 92,238,236,191, 67, 67, 67, 97,177, 88,144,151,151, 7,134, 97,160, 86, +171, 33, 20, 10, 17, 18, 18,242,117,108,108,236,206,248,248,248,194, 74, 57,109, 88,242,242,200, 79, 62,163, 40,138, 4, 0,138, + 37, 22, 79,255, 8,136,140,140, 68,247,238,221, 97, 48, 24,160,209,104, 16, 29, 29,205, 34, 8, 98, 44, 65, 16, 18,134, 97,214, + 0, 56,241, 47, 52, 20, 86,233, 12, 63,175,226,188,168, 35, 91, 60,135,195,113, 75,104,217,207,175,201,130, 66, 90, 44, 22,112, + 56,156,114, 22, 9,130, 32, 64,211,116,185,207, 29, 66,171, 54, 66,125,234,212,169,182,239,190,251,110,114, 81, 81,209, 90,212, +114, 42, 97,236,216,177,143,248,123,204,156, 57,201, 18, 85,156, 0, 0, 32, 0, 73, 68, 65, 84, 51, 51, 63, 63,159,121,173,127, + 27, 81,218,225,236,156, 70,126, 98, 65,160,143, 79,125,190,159, 76, 90, 88, 88,120,198,222,152,184,139,198,237,218,181, 19,108, +218,157,152,249,230,140,197,243,219, 55,244,151,180, 14, 11,240, 11,246, 21,112,197, 36,161,227, 91, 45,153, 50,153, 44,202,211, +114, 59,218, 5,161, 80, 8,146, 36,159, 38,139, 22,203, 33,178, 84, 42, 21, 14, 30, 60,136, 65,131, 6,165, 56, 68, 72,113,113, + 49,114,114,114,160, 80, 40, 82,236,150,143, 26,167, 17,109, 54, 27,204,102, 51,204,102,179, 83,192,184,220, 67, 78, 1,227, 56, +151,162,168, 63,107, 89,246,249,126,126,126, 61,251,244,233,195,253,105,251,118, 46,195, 48, 58,148,229, 80,211, 50, 76, 21, 9, +178, 43,192,106,181, 58,173,108,108, 54, 27,233,233,233,206,142,203,145, 91,146,207,231,187,103,202,224,241,222,255,249,231,159, + 37, 29, 59,118, 36, 10, 11, 11, 97,179,217,156,141,228,234,213,171,249,195,134, 13, 11, 77, 78, 78,254,216,104, 52,206,171,197, +181, 18, 85, 9, 34, 0,144, 72, 36, 86,184, 23, 49,187, 70, 78,171,213, 74,116,235,214,109,150, 82,169,108,165,215,235, 23,186, + 83,141, 0,246,101,102,102,186,118,236,151,211,210,210,244, 35, 70,140, 16,212,175, 95,191, 83,106,106,234, 99,221,164, 77,154, + 52,233,194,102,179,113,238,220, 57, 35, 0,199,200, 58,225,202,149, 43,198,161, 67,135,242,194,195,195,187,168,213,110,187,172, + 52,105,214,172,217,209,160,160, 32,129,163, 13, 13, 12, 12,100,199,199,199,251,100,101,101,193,108, 54,227,195, 15, 63,196,224, +193,131, 17, 16, 16,128,153, 51,103,202,151, 46, 93,250,163, 86,171,109, 87,157,209,154,203,229,110,190,125,251,118,148, 66,161, + 16,156, 61,123, 22,173, 91,183,134, 82,169, 68,110,110, 46,180, 90, 45,114,115,115, 49, 97,194,132,160,255,253,239,127, 33,110, + 88,178,156, 34, 43, 62, 62, 94,189,107,215, 46,106,253,250,245, 62,108, 54,219, 41,180, 88, 44,150, 83,104, 57,114, 43,214, 98, +166, 65,109, 23,109, 82,141, 70,243, 56,126,110, 60, 0, 92, 87,145,197,227,241,192,227,241,192,231,243, 31, 43, 47,235, 51,130, + 80,130, 32, 82, 57, 28, 14, 79, 40, 20,114, 72,146, 4,143,199,235, 47,147,201,174,181,108,217,178,229,209,163, 71, 31,184, 67, + 98, 48, 24, 54,243,120, 60,118, 80, 80, 16, 0, 32, 42, 42, 10,173, 91,183,134, 78,167,179,105, 52, 26, 72,165, 82,242,225,195, +135,208,235,245,200,201,201, 65, 68, 68, 4,155, 36,201,205, 40,243, 67,126, 4,167, 83,114,215, 2, 88,235,216, 15, 8, 8,200, +115,181,116,242,249,124,132,134,134, 34, 43, 43, 11, 62, 62, 62,212,231,159,127, 62,116,251,246,237,175,158, 62,125,122, 44,128, + 45, 46, 84,243,158, 97, 31, 45,135,200,114,125,253, 75,104, 13, 30, 60,120,238,129, 3, 7,122, 85, 54, 10,103,179,217,117,230, +235,226, 16, 84, 18,137,164,162,213, 10, 54,155,173, 42,139,150,199,191,195,231,243, 5, 83,166, 76, 41, 89,179,102,141,199, 98, +107,248,170, 52,167, 21,235,145, 97,100,139, 22,167, 63,254,248,227, 33,191,255,254,123, 86,251,134,245, 89,162,236,135, 90,190, + 68, 42, 69, 88,189, 65,227, 94, 25,122, 5,101,171, 15,221,197,237,146,146, 18, 65,163, 48,161,137, 36, 13, 68, 61, 30,203, 71, + 33,226,240,130,253,252, 66, 57, 38, 99,190,196,207,143,107, 52, 26,213,168, 38, 9, 52, 0,200,229,242, 95, 5, 2, 65,132, 99, +223,207,207,207,151, 97, 24, 8,133, 66, 40, 20, 10, 49, 69, 81, 55, 93, 30,174,135,121,121,121,253,107, 42,152, 84, 42,253,149, +199,227, 69,144, 36, 9,130, 32, 64, 81, 20, 72,146, 4, 73,146,206,247, 20, 69,129, 32, 8,148,150,150, 62,124,240,224, 65,127, + 55,174,215, 10, 32,134, 32,136,148,131, 7, 15,162, 83,167, 78, 56,124,248, 48, 6, 12, 24, 0,141, 70,131,171, 87,175,162,103, +207,158, 64,217,148,162, 91,112,117,126,119, 12, 10,110,220,184,225, 20, 46,174,155,143,143,207,227,152,216,147,134, 15, 31,142, +239,190,251,142,177, 15, 38, 68, 4, 65,180,246,245,245,189,113,253,250,117,183,252, 96, 24,134,129,217,252,215,169,142,206,203, +238, 15,225, 81,114, 96,138,162,250,183,107,215,142,208,104, 52, 14, 1, 9, 22,139, 5,138,162, 64, 81, 20,190,253,246, 91, 65, +199,142, 29, 63,225,241,120,179, 56, 28, 78,177,197, 98,249,201, 96, 48, 44, 4,160,126,154, 90,164, 30, 61,122,204,200,200,200, + 24, 28, 17, 17,177,255, 49,104, 24,139,197, 98, 2, 32,160, 40,138, 93, 7,109, 20,101,191,183, 12, 46, 98,223,106,223,231,161, +108,154,216, 45, 4, 4, 4,252,120,232,208,161,176,136,136, 8, 88, 44, 22, 88,173, 86,104,181, 90, 36, 36, 36,192,104, 52,194, +106,181, 34, 42, 42, 10,159,125,246,153,225,221,119,223,229,175, 91,183, 46, 95,171,213,142,174,129,246,221,157, 59,119,138, 20, + 10,133, 64,175,215,227,238,221,187,104,215,174, 29, 74, 74, 74,160,211,233, 80, 90, 90, 10,179,217,140,226,226, 98, 41, 77,211, +166, 26,184, 62,117, 21, 89,147, 38, 77,250,147,203,229,182,123,231,157,119,144,153,153,233,124,230,223,124,243, 77,200,229,114, +231,179,100,111,147, 61,106,152, 89, 44, 22,120, 60, 30, 56, 28,142,186, 94,189,122, 32, 8,130,255,240,225,195,218, 76,197, 73, + 0, 20,179,217,108,174,171,192,226,241,120, 56,119,238,220,199, 92, 46,183, 42,107, 86, 85,207, 37,227,201,254, 63, 13,130, 32, + 86,112, 56, 28,158, 76, 38,227,184, 12, 56, 57, 98,177, 24, 65, 65, 65,171, 0, 12,116,243,186,219,202,100, 50,103,251,222,166, + 77, 27,100,100,100,236,209,104, 52,111,228,231,231,131, 36,201,205, 36, 73,190,234, 24,164, 22, 21, 21, 33, 60, 60,188,109, 85, +124, 93, 99,130, 39,131, 96,202, 89,180, 42, 12,208, 32,145, 72,112,255,254,125,232,116, 58,230,214,173, 91,196,148, 41, 83, 8, +147,201,244, 67,114,114,242, 25,148,173,182,175, 82,139, 60, 35,240,220, 71,203, 97,209,114,183, 3, 32, 8,162,198,209,132,197, + 98, 17, 71, 71, 71, 87,230,240, 69, 84, 38,180,236,211, 73,181,186,209,217,108,182, 79,109,197, 86, 69,236,223,181, 77,190,228, +179, 15, 63,147,133,212,111, 52,107,214,167,172,151, 94,122,233,236,166, 77,155,104, 89,243,129,125, 79,252,186, 69,254,245,123, +179, 15, 31, 58,116, 8, 40,115,140,118, 23, 73, 7, 14, 28, 8,158, 57,109, 42, 62,123,255,221, 35,146,168, 0,174,152,144,137, +248, 70, 93,129, 24,140,158,215,184,217,224,221,251,247,231, 0, 72,174,142, 68, 40, 20, 70,164,166,166, 70,185, 46, 36, 48,153, + 76, 16, 10,133, 56,113,226, 68,160, 64, 32, 8, 4, 0,189, 94,143,150, 45, 91,186,107, 49,137,184,121,243,102,148,143,143, 15, + 74, 75, 75, 97, 52, 26, 97,177, 88, 96,179,217, 64, 16, 4,216,108, 54,184, 92, 46, 68, 34,145,167, 43,251, 46, 1,120,125,208, +160, 65, 91, 15, 31, 62,140,232,232,104, 20, 21, 21, 33, 45, 45,205, 33,178, 60,242,209,114, 88,137, 92,253,177, 88, 44, 22,126, +108,216, 16,111,102,103, 59, 5,204, 10, 95, 95,124,102,171, 93, 54,141,150, 45, 91, 50, 73, 73, 73, 56,114,228, 8, 94,126,249, +101, 98,239,222,189,102,154,166, 57,217,217,217,127,102,103,103,187,197, 97,179,217,156,101,117,180,219,174, 2,203, 83,161,101, +181, 90,125,184, 92, 46, 12, 6, 3, 28,150, 7,215,173, 65,131, 6, 80,169, 84,172,226,226, 98, 86,118,118,182,112,193,130, 5, +239,156, 60,121, 82, 81, 82, 82, 50,234,159,108,133,214,172, 89, 19,241,230,155,111,166,179, 88, 44,102,192,128, 1, 99, 30, 62, +124,248,138, 66,161, 56,254,251,239,191,127, 5,160,137,167,124, 1, 1, 1, 23, 89, 44, 86, 88,113,113, 49,103,199,142, 29,150, +146,146, 18, 78, 96, 96, 96,158,163,237,112,212,181,197, 98,113,107,229,114, 64, 64,192, 69,165, 82,201, 89,185,114,165,165,176, +176,144, 35,151,203,243, 28, 60,106,181,154,179, 99,199, 14, 75,113,113, 49,199,215,215,247,162, 70,163,169,145, 79,169, 84,142, + 30, 59,118,108,226,241,227,199, 3, 40,138,194,195,135, 15, 81, 88, 88, 8,169, 84,138,205,155, 55, 35, 34, 34, 2, 59,119,238, + 84,169, 84,170,137, 95,126,249,229, 39,118,145, 85,147,143, 86,207, 78,157, 58, 69,168,213,106, 72,165, 82,232,116, 58, 92,188, +120, 17, 45, 90,180, 64,118,118, 54, 72,146,132, 84, 42,197,234,213,171, 75, 9,130, 80, 85, 71, 36, 16, 8, 94,137,141,141,149, + 2, 64,108,108,172, 52, 54, 54,182,210, 14,174, 75,151, 46, 88,181,106, 85, 69,161,229,201,192,192,105,117,114, 17, 71,134,206, +157, 59,227,228,201,147,179, 61, 20, 71, 38,135,104,171,104,205,226,241,120, 30, 47,166,177,217,108, 28,148,185, 52, 16,238,236, + 63, 5,232, 37, 16, 8, 56, 21, 63, 44, 45, 45,229, 40, 20,138, 30, 30, 8, 95,127,129,160,204,224, 20, 17, 17, 1,141, 70, 67, +155, 76,166,145, 91,182,108,177, 0, 64, 76, 76,204, 72,154,166, 13, 86,171,149,226,114,185,208,233,116, 8, 10, 10,242,175,198, + 54,250,193,190,159, 22, 4, 87,244,209, 82, 40, 20,136,137,137,129,209,104, 68, 78, 78, 14, 18, 18, 18, 44, 52, 77,111, 93,179, +102,141, 45, 48, 48,240,191,175,189,246, 26,149,156,156,252, 54,128, 25, 85,105,145,103,204,154, 21, 95,165,208,178, 43,200,147, + 0,122, 87,188,200,138,226,167, 58,161, 85,211,212, 33,151,203, 85,167,167,167,139, 92, 59, 21,171,213,138,144,144, 16, 27,195, + 48, 68,101, 66,235,113, 76,193,108, 54,219,231,163,143, 62, 82,175, 89,179,102,244,253,251,247,231,186,243,157, 29,111, 55,195, +166, 10, 34,107,237,146,184, 85, 43,151, 44,144,221, 57,242, 3,214,127,179,140,166,105, 36,183,106,213,170,135, 86,171,101,249, +138, 44, 80,170,113,216, 46,178,220, 21,133, 36,128,239,207,159, 63,159, 60,112,224,192, 83,223,255,188, 91,150,125,247,238, 25, + 94,177, 50, 71,210, 56,138,197, 9,141,120,181,196, 96,224,140, 28, 57, 50, 16,192,107, 53, 53, 98,106,181, 26,185,185,185, 21, + 5, 24,110,220,184,241,200,185,110, 21,142, 36, 65,211, 52,118,237,218, 5,161, 80, 8,145, 72, 84,110,115,136,172, 90, 46, 84, +184, 9, 0, 3, 6, 12,128, 74,165,130, 88, 44,118,187, 92, 21,197, 11,195, 48, 48,153, 76, 48,153, 76, 48,155,205, 52, 0, 54, +139,197,194,132,204, 76,167,149,199, 19, 1, 83, 17,173, 90,181, 98, 78,159, 62,141, 83,167, 78, 65,167,211, 97,229,202,149, 80, + 40, 20,207, 1,248,212, 83, 46, 23, 39,125,186,184,184,152, 93, 92, 92,236,180, 14,178,217,108,167,245,192, 77, 75, 30,135,197, + 98, 57, 71,163,142,205,213,170, 69, 81, 20,228,114, 57,130,131,131,177,118,237, 90, 78,253,250,245, 7,255,147, 45,208,210,165, + 75, 27,175, 88,177, 98,195,166, 77,155, 14,143, 30, 61,122,251,213,171, 87,199,251,250,250,254,121,226,196,137, 5, 60, 30,207, + 86,203,231, 59, 44, 59, 59, 59,200,245, 35,155,205, 38,180, 90,173, 78, 97, 91, 90, 90,234,246, 0,131,205,102,135,165,166,166, + 10, 1, 96,193,130, 5,108, 0, 66,135, 51,184,131,179,180,180,148,221,162, 69,139, 48,119,239,245,196,196,196, 30,253,250,245, + 59,125,244,232, 81,191,136,136, 8,100,101,101, 33, 43, 43, 11,141, 27, 55,198,162, 69,139,116,197,197,197,221, 0,220,212,106, +181,123,221,228, 12,241,243,243, 99,167,167,167,195,106,181,162,109,219,182, 88,189,122, 53, 70,142, 28,137,150, 45, 91,162,184, +184, 24,169,169,169,216,184,113,163, 31,135,195,169,182,237,208,235,245,123,227,227,227,195, 43, 90,180,198,140, 25, 35,202,203, +203,115,222,147,113,113,113,229,166, 16, 61,105,147,237, 83, 91, 85,110,181,129,213,106,149,240,249,252, 98, 30,143,199,117,248, +103, 37, 36, 36,120,108,205,170, 48, 0,244,100,255, 31,131, 67,180, 86,210,183, 34, 56, 56,216,109, 30, 30,143, 71, 56,218, 70, +171,213, 10,141, 70, 67, 43, 20, 10,231,244,126, 74, 74, 10, 29, 25, 25, 73, 83, 20, 69,113,185, 92, 16, 4, 1,161, 80, 88,101, +131,207,208, 76,220, 75, 35, 63, 45,183,234,112,250, 71,128,217,108, 70, 74, 74, 10,204,102, 51, 18, 18, 18, 44, 95,126,249,101, +182, 90,173,158, 14,128,245,235,175,191,142,157, 61,123, 54, 21, 20, 20,212, 47, 63, 63, 31, 53,105,145,103, 72,108, 61, 98,229, +114,244, 66, 39, 7, 15, 30, 76,216,151, 86, 18, 14,225,228,137,208,178, 63,124, 53,246,188, 4, 65, 32, 39, 39,199,185, 31, 20, + 20,228,241,111,185, 11,127,127,127, 93,151, 46, 93,124,148, 74,229,222,165, 75,151,214,202,146,181,118, 73,220,170,197,243, 63, +151,169,174,159, 69,102,118, 14, 84,249,150,228,164, 63,239,239, 1,176, 7, 0,176,174,249, 73, 98,114,218,183,238,114, 54, 11, + 16,180, 97,115, 88,123,158, 31, 56, 56,124, 68,236, 12,242,173,183,222,234, 62,118,236, 88,205,232,209,163,167,137,197,226, 38, +102,179,185,104,247,193,131, 15, 70,140, 24, 81,159,166,233,177,168, 33,230,136, 94,175,127,216,187,119,111,215,250,148, 28, 59, +118, 76,254,224,193, 3, 76,157, 58,181, 32, 43, 43, 75,237,122,174, 59,101, 52,155,205, 15,219,180,105, 83,229,116,161, 99, 74, + 17, 0, 74, 74, 74, 30,122, 80,165,163, 96,119,124, 47, 44, 44,196,141, 27, 55,192, 98,177,208,185,115,103, 36, 37, 37,161,123, +247,238, 41,158, 88,181, 12, 6, 3, 34, 34, 34, 96, 48, 24,160,211,233, 74, 1,240, 54,215,175, 15, 0,120,187,176, 16, 23,191, +252, 18,103, 23, 47,134,235,253,236, 46, 90,183,110,205,156, 61,123, 22,127,254,249, 39,140, 70, 35, 38, 78,156, 8, 0,132,253, +222,245, 36,100, 70, 67,138,162, 6, 12, 28, 56, 48, 4, 0,116, 58, 29,113,254,252,121,240,249,124,231,179,176,127,255,126,100, +101,101,129, 32, 8,248,249,249,133, 21, 21, 21,213, 7,112,191, 26,179, 63,113,255,254,125,124,241,197, 23,176,217,108,152, 61, +123, 54,162,162,162,156, 2,235,225,195,135, 88,176, 96, 1,104,154,198,231,159,127,142,198,141, 27,195, 98,177,240, 81,203, 16, + 26,117,129,153, 51,103,222,217,179,103,207,225,140,140,140, 23,151, 44, 89,210,139, 32, 8,219,172, 89,179,190,144, 72, 36,244, +227,240, 22,105, 74,112,227,246, 67,167, 16,170,184, 5, 6,200, 60,230,187,117, 55,195,249,125,154,118,229,163,225, 47,243,243, +180,136,165, 22,139, 69,247,234,171,175, 74,119,237,218, 69, 52,110,220, 24,247,238,221,115, 88,134, 74,225,121, 72,135, 44,149, + 74, 21, 69, 81, 20,231,246,237,219,136,140,140, 68,167, 78,157,176,112,225, 66, 40,149, 74, 88,173, 86, 4, 5, 5,217, 44, 22, + 75,138,217,108,254,163, 6,174,184, 73,147, 38,113, 0, 76,182, 91,182, 90, 77,159, 62,221,182,108,217, 50,164,164,164, 56, 45, + 88,174,206,240,158, 78, 29,186, 90,157, 92,183,132,132,132,217, 92, 46,151, 1,112, 14,158, 7,122, 54, 85,180,104,213,198,154, +245,164,240, 36, 87, 50, 42, 20,138, 4, 31, 31,159,193, 69, 69, 69,229,172, 90,221,186,117, 51,203,229,242, 68,119,121,196, 98, +113, 17, 69, 81,254, 0,144,149,149, 5,145, 72,196,185,123,247,238, 98,148, 5,207, 70,253,250,245, 23,171, 84, 42, 78,125,123, +123, 26, 28, 28, 12,147,201, 84,165, 27,203,153, 75,121, 63, 0,248,193,177, 47,147,201,114, 52, 26,141, 96,217,178,101,218,197, +139, 23,235,105,154, 54, 2, 56,161, 86,171,157,113,180,114,115,115, 53,108, 54, 91, 38,149, 74, 67, 29, 66,171, 50, 45,242,140, +161,106,139,150, 93, 73, 50, 21, 5, 17, 65, 16,143, 56,168,215, 32,180,106, 20, 89, 52, 77,151,179, 50, 56, 28,222, 43,251, 45, +123,167, 94,171,169, 67,187,200,226,239,222,189,123,243,210,165, 75,207,185,251, 61, 87, 31,173,117, 95,205, 95,226, 16, 89, 87, + 78, 29,197,222, 52,141,114,246,226,229, 43,106,251, 15, 52, 15, 16,182,150,203,253, 79,126,185, 40, 78,114,231,200, 70,108, 95, +247, 63,230,202,133, 11, 29, 47, 92,184,240,198,212,169, 83,235,217,111, 44, 21,128,203, 0, 70,192,141, 85, 58, 89, 89, 89,253, + 43,116,194, 55, 57, 28,142, 92, 40, 20, 34, 43, 43, 75,123,235,214, 45,143,167,100,148, 74,101,255, 39,112, 3,178, 28, 34, 75, +169, 84, 34, 53, 53, 21,125,250,244, 1, 0, 36, 37, 37,161, 91,183,110, 72, 78, 78, 70,187,118,237, 82, 0,116, 64, 13,129, 90, + 45, 22,139,186,121,243,230, 78,235,150, 70,163,177, 1, 64,108, 78, 14,226, 21, 10,176, 88, 44,156, 93,188, 24,115, 44, 22, 44, +244, 80,192,183,105,211,134, 57,127,254, 60, 30, 60,120, 0,171,213,138, 33, 67,134,160,150, 15,125,203,102,205,154, 29, 59,113, +226, 68,160, 88, 44,134, 78,167,131, 86,171,197,184,113,227, 48,114,228, 72, 24,141, 70,236,216,177, 3,251,246,237,131,143,143, + 15,116, 58, 29,116, 58,157,223,160, 65,131, 78,223,188,121,179, 39,128,219, 85, 8, 45,166,127,255,254, 72, 76, 76, 4, 69, 81, +232,216,177, 35, 10, 11,255, 90, 12, 36,151,203, 43, 59, 70,253,147, 66,139,197, 98, 49, 9, 9, 9, 75,122,245,234,133,140,140, +140, 23,219,181,107,183,114,252,248,241, 89,143,203,235,231,235,131, 54, 45, 26,194,104, 52,194,104, 52, 34, 36, 36, 4, 37, 37, + 37,184,115,231, 14,140, 70, 35,228, 65, 82,143,249, 98, 90, 54,118,242, 5, 5, 5, 65,167,211,225,254,253,251, 48,153, 76, 8, + 8,240, 72,104,133,247,239,223,255,247,173, 91,183,250,111,220,184,209,212,187,119,111,238,202,149, 43, 9,137, 68, 2,151,142, +197, 83, 36, 36, 37, 37, 69,244,235,215,175,233,245,235,215,145,144,144, 0,147,201,132,152,152, 24,220,186,117, 11, 93,186,116, +129, 86,171, 61,119,225,194,133,125,238, 24,134, 1,124, 50,105,210, 36, 56,196, 86, 98, 98, 34,114,114,114,224,227,227,243,136, +208,114,248, 62,218, 87,141,135,184, 83, 88,135, 32,114,177, 60,205,145, 74,165,102, 0, 43,106,105,125, 2, 0,100,100,100,240, + 90,181,106,101,228,243,249, 92,187,104, 91,254, 56,124,117,137, 58, 88,201, 88, 37,130,131,131,167, 7, 4, 4,244,107,208,160, + 1,242,242,242, 56, 92, 46, 23,221,186,117, 51,119,232,208,193, 28, 28, 28,252,182,187, 60, 60, 30,239, 58,135,195,233, 89, 54, +152,160,145,158,158, 14,134, 97,102,183,108,217,242,221,146,146, 18, 20, 22, 22,114, 37, 18,137,115, 80,221,180,105, 83, 24,141, +198,235, 30, 88,222,226, 34, 35, 35, 63,225,112, 56, 11,149, 74,101,101, 97, 33,184, 82,169, 84,194,225,112, 96, 54,155,203,137, +205,138, 90,228, 89, 23, 89,229,132,150,139,138, 44, 39,116, 60,177,104,185, 99, 53,112, 56,216,187,238, 59, 68, 93,197,223,170, +109, 12, 45, 95, 95, 95,163, 67,100, 45, 92,184,240, 92,109, 56,118,110,221,162,240,181,149,134,103,159, 59,132,155,127, 38, 99, + 79,170, 90, 57,123,241,242,105, 47,189, 54, 42,175,162, 48,115, 7, 81,129,194,150,242, 32,255,147, 95, 45, 93, 44, 81, 93, 63, +139,156,220, 92, 28, 58,119, 33,217, 12,164, 2,152, 93,151,166,101,160,108,234,144,162,168,167,233,134,117, 58,195,231,228,228, + 56, 68, 86, 12, 0,116,239,222, 61,197, 46,178,224,174, 69, 75,173, 86, 87, 76, 89,211, 15, 64,128,227,250, 89, 44, 22,186,125, +242,137,199, 34, 11, 0,147,156,156, 12,149, 74,229, 24, 41,214, 86,100, 33, 56, 56,248,253, 19, 39, 78, 4,126,255,253,247,197, +155, 54,109, 42,180,217,108,236, 54,109,218,132,181,111,223,158,216,188,121, 51, 0, 96,196,136, 17,152, 61,123, 54,174, 93,187, + 6,145, 72,132,238,221,187,211,115,231,206, 13,154, 62,125,250,219,121,121,121,211, 42,237, 29,109, 54, 14,159,207, 63, 14,224, +185,235,215,175, 3,192,105,148,165,112,114, 88, 17,170, 60,230, 78,231, 91, 82, 82,194,246,241,241,169, 52, 52, 4,167,108, 52, +228,169, 5,194,201,121,234,212,169, 47,190,250,234,171, 61,239,189,247,222,237,199,228,172,212,162, 53,120,240, 96,232,141,102, +100,230,105, 64,211, 86,232,205,249, 30,243,185, 90,180, 6, 15, 30,140, 82,131, 9,233, 57, 42, 88,173, 52, 74,244,110,247,229, +194,231,159,127,254,215,159,126,250, 41,248,204,153, 51,160,105,218,118,235,214,173,251,175,190,250,170,100,214,172, 89,254,143, +177,200,232,155, 81,163, 70, 13, 59,117,234,148,170,105,211,166,178,115,231,206, 33, 63, 63, 31, 86,171, 21,207, 61,247, 28,184, + 92,110,250,226,197,139, 57, 0,190,113,247,191,177,139, 45,243,133, 11, 23,222, 60,123,246,172, 76, 38,147,113,109,205,154, 33, +231,232, 81,236,218,181,235,145, 47,172, 91,183, 14,112, 51, 10,191,195,226,116,254,252,249, 58, 17, 88,229,122,106, 46,183,214, +211,143,207, 42,206,159, 63,159,245,214, 91,111,181,144, 72, 36, 43,122,244,232,209,199,223,223,159,244,243,243, 75, 8, 13, 13, +125,183, 77,155, 54,110,207, 46,176,217,236,241, 34,145,232,142,213,106,165,180, 90, 45,116, 58, 93, 89, 35,109,181,114, 73,146, + 68,253,250,245,157,125, 73,199,142, 29, 17, 28, 28, 76,167,165,165,141,119,151,191,160,160,160,220, 42,196, 74, 48,169, 91,183, +110, 44,163,209,136, 7, 15, 30, 36,185, 30,168, 76,139, 60, 35,136,173, 86,124, 57, 46,202,245,226, 66, 67, 67, 51, 44, 22, 11, +147, 10, 48,151, 47, 95,102, 98, 99, 99,171,221, 12, 6, 3, 19, 20, 20,148, 83, 73,231, 7, 87, 78,163,209, 88,238,123, 70,163, +145,145,203,229,180, 94,175,127,132, 83,175,215, 51, 97, 97, 97, 89,213,113, 86,130,113,151, 46, 93, 90, 51,103,206,156, 78, 30, + 84,144,147,147, 89,219,140,217,184,113,227,127, 24,134,233,213,163, 69,196,159,195,219,200,153,110, 81, 65,217,251,118,110, 29, +201, 48, 76,175,138,155, 35,192,105,117,156,205,228,162,230,125,163,235, 21, 93, 57,178,141, 57,177,236, 29,230,171, 33, 81, 76, +187, 48, 31,117,179, 0,129,167, 57, 98,106,204,150, 30, 29, 29,125,211,102,179, 49, 38,147,137,137,142,142,190, 85, 23,156,181, + 64,117,156,109, 81,230,203, 54,170,146,207,218, 62, 70, 57,175, 48, 12,195,168, 84, 42, 70,171,213, 50, 70,163,145,161,105,154, +113, 5,128, 43,110,112, 50,102,179,153, 41, 42, 42, 98,224,190,207, 93,165,156, 10,133,226,254,221,187,119,153, 70,141, 26,101, +216,205,241,211,117, 58, 29, 83, 17, 58,157,142,233,211,167, 15,115,235,214, 45, 38, 50, 50,210,112,235,214, 45, 70,161, 80,220, +168,161,156, 13,194,195,195,143, 7, 4, 4, 36, 0,136,242,224, 88,181,245,185, 99,199,142,134, 12,195, 76,100, 24, 38,182,138, +109, 34,195, 48,205,254,105, 78,123,253,230, 49, 12,195,148,150,150, 50, 42,149,138,201,206,206,102, 74, 75, 75, 25,173, 86,203, + 92,186,116,137, 57,115,230, 12,243,231,159,127, 50, 50,153, 44,207, 29, 78, 7,159,201,100, 98,138,139,139,153,252,252,124, 70, +175,215, 51, 58,157,142,185,122,245, 42,115,241,226, 69,230,250,245,235,149,241, 61,194,233,239,239,191, 46, 55, 55, 87,123,250, +244,233,210,181,107,215,150, 6, 7, 7, 95, 7, 16, 1,160,137,159,159, 95,238, 59,239,188,195,136,197,226,135,181,124,142, 90, +176,217,236, 75, 75,150, 44, 57,127,224,192,129,188,125,251,246,153, 54,108,216,144, 57,117,234,212, 63, 88, 44,214, 37, 0, 45, +106,249, 28, 5, 73,165,210,211,231,206,157,179, 22, 21, 21, 49,106,181,154, 41, 46, 46,102,116, 58, 29,163,215,235, 25,147,201, +196, 88, 44, 22,230,143, 63,254, 96,228,114,185,235,180,228, 7,213, 12,172,103, 48, 12,243, 62,195, 48,172,186,110,235, 92,184, +123,212, 21,103, 93,180,117, 36, 73,154,237,109, 71,231,178,221,234,247,255,169,114,246,237,219,247,243,145, 35, 71, 50, 3, 6, + 12, 96, 98, 98, 98, 30,217,218,181,107,199, 76,153, 50,133, 57,112,224, 0,243,229,151, 95,126, 94, 7,229,100,161,108,209,203, +162,190,125,251, 90, 18, 19, 19,153, 17, 35, 70, 48, 0,250, 87,167, 69,158,101,193,229, 88, 76,227, 8,239, 64,184,190, 2,128, +217,108,206,184,121,243,166,162,169,213, 74, 1,192,183,223,126,251,136,101,202, 21,137,137,137, 86,130, 32,238, 84,247,235,102, +179, 57,227,196,137, 19,242, 85,171, 86,177, 93, 76,192,176, 90,173,182,236,236,108,114,229,202,149,229,206, 63,121,242,164,213, +106,181,166,123,120,145, 27,219,182,109,187,177, 46,106,235,143,107, 15,222,253,245,208, 47, 1,157, 59,245, 80, 75,100,178, 74, + 71, 97, 59,222,110, 6, 98,114,245, 86, 45,130, 69, 46, 92,178, 40, 78,234,152,130,252, 57, 37, 87,109, 48,210,125,210,148,250, + 43,117,253, 15,107,181,218, 7,142,149,128, 58,157, 46,253, 41,188, 9, 47,161, 44,198,149,181,194,103, 29,240,152, 78,167, 54, +155, 13,190,190,190, 78,107,104, 45, 44,162,140,195,194,234,248,235, 30,167, 60, 12,195,156,186,122,245,106,228,184,113,227,124, + 54,109,218,116,151,166,105,246,132, 9, 19,204,193,193,193,156,164,164, 36, 11, 0,162, 87,175, 94,172,220,220, 92, 38, 43, 43, + 75,245,242,203, 47,151,188,249,230,155,254,151, 47, 95,230,218,108,182,154,130, 22,222,203,200,200,232, 91,139, 99,213, 98,248, +240,225,119,241,248,105,108,158, 56,167, 3, 42,117, 49,238, 62,200,178, 71, 48,183,129,126,152,231,244,171,178, 88,172, 80, 21, + 23,122,108,209,186,115, 63,203,158, 98,140, 6, 77,103,219,249,202, 28,226,153,162,210,154,123, 19, 22,171,251,220,185,115, 7, +146, 36, 73,158, 61,123,214,184,116,233,210,140,130,130,130, 33, 0,210, 1,160,168,168,168,247,198,141, 27,127,116, 35,148, 67, + 85, 72,181, 88, 44, 93, 62,248,224,131,105, 0,186, 3,168,103,231, 78,178, 91,178,106, 27,193, 60, 95,173, 86,191, 48,112,224, +192,163, 20, 69,213,119,121,142, 2, 0, 40, 29,207, 5,195, 48, 65,121,121,121, 47,186, 67, 72, 16,196,242, 39,213,144, 60, 73, +238,199,108,135,158,137,149,140,199,143, 31,159, 55,100,200, 16, 86, 68, 68,196,199, 17, 17, 17,100, 81, 81, 17,180, 90, 45, 72, +146, 68,112,112, 48,162,163,163, 17, 28, 28,108,187,126,253,250,162, 15, 63,252,176,198,152,124,205,155, 55,111,104,177, 88, 26, +145, 36,217, 16, 64, 67,134, 97, 26, 18, 4,209, 16,128, 12, 0, 36, 18,137, 36, 50, 50,146,213,185,115,103,116,234,212, 9, 39, + 79,158,196,206,157, 59,127, 0,240,171,171, 53,171,162, 22,121, 26,144,218, 22, 76,139, 75, 32,174,181, 67, 47,194,134,147, 12, +137,222,209,201,206, 56,123, 21, 69, 86,213, 73,165, 43, 49,253,245,127,238,185,231,156, 15,156, 27,157,202,131,154, 30,190,130, +130,130,254,227,199,143, 47,199, 73,211,180,177,176,176,240,173,174, 93,187,174,166, 40,138, 87,225,134,125,152,159,159,255,183, +230,234,171, 24, 71,171,255,192, 87,148,143,203, 41,230,144,141,110, 30,252, 14,121,249, 74,252,156,146, 91, 84, 98,162,123,223, + 82,150, 94,125, 18,229,127,248,240,225,128,103, 64,241, 87, 38, 90, 31, 55,121,118,129, 27, 1, 73,107,202, 81, 71,216,195,137, +212,201, 67,158,155,155,187,236,147, 79, 62,121, 97,209,162, 69,129,135, 15, 31,150, 56, 6, 40, 67,135, 14,205,191,122,245,106, + 15, 0, 60,131,193,112,108,209,162, 69,129,113,113,113,254, 0,252, 1, 96,208,160, 65,121,121,121,121,171,224, 69,181,176, 88, + 44,153,209,205,155,150, 27, 57, 58, 6,128,174,239,173, 86,107,166, 39,124,149,241,184,238,211, 52, 93, 45, 31, 69, 81,239,117, +234,212,137,122,239,189,247,242, 14, 31, 62,236, 72,164,235,170,208,110,214, 16,148,212, 29, 24, 1, 44,181,111,117, 9,157, 74, +165,234,226,225,119,104,239,221, 88,233,128,210,147,253,127, 4,123,247,238,253,116,196,136, 17, 27,101, 50,217,150,134, 13, 27, + 54,149,203,229, 18,129, 64, 0,163,209, 88, 98, 50,153,110,220,188,121,115,244,167,159,126,122,207, 45, 11,199,198,141, 20, 0, +142,205,102,227,147, 36, 41, 2, 32, 33, 8,194,207, 33,180, 8,130,128,217,108,198,131, 7, 15, 48,103,206, 28,250,248,241,227, + 95, 2,248,220,131,129,107, 7, 0,129, 46,237,120, 32, 0, 19,202, 2,216, 22, 16, 4,113,225, 73,215, 23, 97,195,201, 22,151, + 64,164,182, 69,101,253, 68,245, 73,165,171,122,224, 10, 10, 10,186,212,245, 67, 92, 21,103, 65, 65, 65,196,211,242,132,140, 53, + 46,221,134,117, 75,203,229, 57,116,136,176,202,246,107,130, 70,111,157,250,205,175,215,150, 25,173,140,205,108,181,253,247, 86, + 65,105,170,183, 29,170,115, 60, 95, 87,207, 82, 29,150,233,106, 90, 90, 90,215,169, 83,167,126, 42, 20, 10, 59, 2, 64,105,105, +233,217,236,236,236,249,176,175, 42,172,233,184, 23, 85, 67,169, 84,182,127, 26,249, 76, 38,211,187, 93,187,118,253,154,166,233, +175,172, 86,107,210,255,131,191,194,224,189, 27,159, 93,108,223,190,253, 30,128, 46, 0, 48,108,216, 48, 10, 0,118,238,220,233, +177,120, 30, 55,110, 28,205, 48,140,217,126, 63,232, 80,182,186,176,200,209,166,234,116,186,162,236,236,236,235, 52, 77, 95, 7, +240, 35, 60, 95,113, 27, 72, 16,196, 1,134, 97, 6,219,133,219, 1,134, 97, 6,187,126,246,164,173, 90, 53,156, 82,179, 51,188, + 23,101,216,153, 10,162,226, 84, 96, 77,251, 53,225,102,158, 46, 1, 64, 59,111,237,254,191,196,221,236,236,236,177,143,113,220, +139,103, 15,233, 38,147,105,200,255,163,235,213,120,255,242,127, 73,255, 87, 11,129,229,192,245,235,215,159,152,139,192, 63,141, + 22,151,202, 15,192, 43,238,187, 32,182, 50,225,229, 21, 90, 94,120,225,133, 23, 94, 60, 14,212,222, 42,240,226,223, 12,135,111, +150, 99,191, 10, 31,173,138,254, 89,206,125, 2, 85,175, 28,240, 36, 43,121,109, 86, 73, 28,243,114,122, 57,189,156, 94, 78, 47, +231, 63,206, 41, 5, 16, 9, 96, 73, 13,231, 85, 92, 93,152, 7, 64, 9,192,226,173, 79, 47,231, 99,232, 7,183,192, 48,204,160, +234,166, 14, 9,130, 56,248,164,132,150,211, 25,190, 45,230, 70, 95,194, 92,199,126, 77, 66,139, 97,152,248,191, 67, 8,246,243, +114,122, 57,189,156, 94, 78, 47,167,151,211,203,233,229,124, 76,161,213,231,195, 15, 63,252, 8,101,161, 49,152, 15, 63,252,240, + 35,134, 97, 6,149, 29, 98, 6, 61,201,223,190,214, 14,189, 82,219,130,113,108,215,218,161, 87, 21,167,198,186,108,229,195, 59, +120,225,133, 23, 94,120,225,133, 23, 94, 60,197, 56,189,120,241,226,210,197,139, 23, 59, 28,223, 11, 0, 16,118, 11, 87,193,147, +252, 97,251, 52,161, 59, 11,165,170, 79,193,243, 15, 32,132,100,113,198,176, 57,188, 62, 96,108,209, 0, 0,146,186, 70,155, 12, +191, 91,173,230, 45, 0,178,107, 75,220, 12,104,222, 88, 42,216,103,164,105, 78, 70,137,105, 88, 90, 89,154, 3,143, 49, 12,232, +198,227,114,127,227, 73,165,130,202,142, 27,213,106,189,209,100,122, 97, 39,112,202,251, 12,120,225,133, 23, 94,120,241,140, 64, +228,231,231,119,156, 36,201, 8,199, 7,174,113, 7, 43,198, 32,164,105, 58, 71,165, 82,189,128,178,169,226,191,147,211,245,251, + 38,212,178, 47,175,107,184, 59,117, 8,215,240, 14, 46, 81, 88,255,150,140,217, 20,155,247,166,143,175,116,225,127,198,191,235, + 31,213,164, 41, 17, 30, 30, 10, 48, 64,122, 70,166,252,206,237, 91,125,183,111,250,102,102,177, 70, 53,199, 98, 52,126,231, 41, +119,115, 64, 84, 79,204, 75,250,238,195,215,165, 44, 88, 49,106,193,214, 35,132,214, 28,126,189,108,185,169, 71, 34, 75,234,239, +255,235,226, 99,199, 4,126,173, 91,151, 59,198, 48, 76, 89,126,189, 43, 87, 4, 31,191,240,194,175,195, 84,170,254, 94,177,245, +175, 68,176, 68, 34,153,206,102,179,123,155,205,230, 8, 46,151,155, 65,211,116, 66, 81, 81,209, 10, 0, 89,222,234,249,119,163, +105,176,168, 71,211,134, 17, 91,179,115,243, 82,138, 13,166, 9, 55,179,181, 42,111,173,120,140,234,242,107,254, 99,185, 55, 1, + 64, 44, 22, 95, 36, 73, 50,204, 85, 4, 56,114,246, 58,246, 43,190,218,108,182,123, 42,149,170,107, 53,180, 13,101, 50,217,106, + 0, 29,106, 10,152,108,143,205,118, 65,165, 82,189,133,170, 87,235,249,248,249,249,205, 35, 8, 98, 56, 73,146, 84, 77,215,100, +179,217,104,134, 97,118, 20, 21, 21,125, 14,160,164,170,243,252,252,252,142,165,165,165,117, 8, 10, 10,170,209, 74, 99,181, 90, +145,158,158, 30,216,177, 99,199, 63, 84, 42, 85,179, 39,201,249,119,107,145,218,162,154, 85,135, 85,222,232, 0,202,229, 23,122, +162, 17, 89, 57,124,241,190, 46, 61,251,247,153, 50,237, 61,209,165,171, 55,240,219,201, 51, 40,214, 25, 65,145, 36,164, 62, 66, + 52,105,210,136, 88, 30,191, 43,224,135,181,203,191, 58,155,120,116,144, 65,167,121,217, 35,153, 46,100,205,153,253,106, 71,145, +191,140, 6,108, 52,222, 31,216, 70,244,241,129,148, 57, 40,181,126,228,177,200, 58,126, 92,152,159,151,135,184,144, 16,176,172, + 86,240, 73, 18,124,130, 0,159, 36, 33,226,243, 49, 96,195, 6,204, 63,124, 88,248,233,139, 47,122,197,214,191, 12, 98,177,120, +124, 72, 72,200,210,245,235,215,251, 55,104,208, 0, 34,145, 8, 42,149, 42,224,230,205,155,109,103,204,152, 49, 54, 39, 39,231, +147,226,226,226,117,222,154,250,247,194,102,195,152,239, 23,190, 21,154,243,240,118,232,164, 69,219,154, 16,254,116,239, 27,133, +250, 92,111,205,184,141,182, 0, 82, 80,121,254,210,234,142, 85, 9, 62,159,159,103, 48, 24,130,170, 59,135,203,229,230,155, 76, + 38,121, 77, 92, 36, 73,134,101,101,101, 5, 9,133, 66,208, 52,109,207, 6, 96,115, 14,164, 93,179,159,216, 3,213,162, 89,179, +102,230,234, 56,125,124,124,190,205,207,207,239,231,200, 19,232, 34,168, 42, 69, 86, 86, 86,191, 22, 45, 90,124, 91, 82, 82,242, + 66, 21,226,101,222,180,105,211,166,183,108,217,210, 97, 5,178,103, 65, 40,123, 85, 42,149,152, 58,117,170,243, 55,108, 54, 27, +142, 30, 61, 58,109,252,248,241, 40, 42, 42,154, 81,205,181, 71, 4, 5, 5, 17,246,132,226, 85, 98,238,220,185,152, 59,119, 46, +190,249,230, 27,130,205,102, 75,107,168,207, 58,225,252,187,180, 72,109, 44, 88, 53, 68,134, 63,136,242,225, 29, 14, 62, 34,180, +254, 14, 80,108,222,127, 59,116,237,215,123,234,244,217,162,109,191,156,192,205,235, 87,144,150,244, 83,185,115,218,191, 48, 30, +185,202, 18,140,159,242,190,152,160, 88,189, 19,143,237,253,175,197,168,255,222, 77,107,150, 60,130,199,125,167,115,199,104,118, +150,224, 38,130,253, 4,232,222,174, 49, 59,252,215, 63,223,209,193,250,245,245,178, 85, 50, 30,137,172,245,175,191,142, 30, 22, + 11,130, 40, 10, 20, 65,128, 2, 64, 18, 4, 12, 70, 35, 46,140, 25,131,142,155, 55,227,243,253,251,133,243, 94,122,201, 35,177, + 37, 18,137, 46, 17, 4,225,167,213,106, 7,161, 44,177,244,179,128, 22, 98,177,248, 32,195, 48, 69, 58,157,174,237, 83, 84, 46, + 5,202,230,232, 43,142,142, 57, 40, 91, 81,229, 81,102, 97, 30,143,247,230,176, 97,195,150,175, 90,181, 74,152,151,151,135,236, +236,108,208, 52, 13, 62,159,143,168,168, 40,226,216,177, 99,254,179,103,207, 94,118,240,224, 65, 94, 73, 73,201,215,158, 12,108, +216,108,118,188, 76, 38,123, 81, 46,151,139,242,243,243, 75,213,106,245, 81,163,209,248, 38,106,159, 54,133,100,179,217,163, 35, + 35, 35, 95, 9, 9, 9,145,103,101,101, 41, 51, 51, 51,247, 25,141,198, 31, 80,203, 68,205, 46,117,218, 26,246,104,245, 0,114, + 34, 35, 35,175, 61,120,240, 32,191, 14, 57,179, 35, 35, 35, 83,107,193, 41, 2,176, 29, 64, 72, 13,231,101, 3, 24, 1, 15,173, +217,206,138,101,108,135, 22,172, 88, 63, 33,110, 92,119,226,251, 25,253,162, 38,127,115,236, 12,201, 97,122, 94,207, 49,100,120, + 53,148,123, 34,203,158,210,170,162,160,170,238, 88,181, 48, 26,141,129,102,179, 25,236, 42,146,197,235,116, 58,248,248,248, 4, +186, 91, 72,129, 64,128,159,126,250, 9,108, 54, 27,108, 54, 27, 69, 69, 69, 8, 11, 11,115,238,115, 56, 28,231,251,122,245,234, +213,200, 71,211,116, 71,138,162,160,213,106, 65,211,180,115, 83,171,213, 96, 24, 6, 60, 30, 15, 52, 93,150,206,201,229,120,199, +170,248, 8,130, 24, 30, 18, 18,130,109,219,182,193,100, 50, 61,114, 92, 34,145,224,234,213,191,146,140, 80, 20,133, 78,157, 58, +145, 4, 65, 12, 7, 48,163, 26, 94, 6, 0, 98, 99, 99, 65, 81, 20, 40,138, 2, 73,146,206,247,142,141,166,105,204,157, 59, 23, + 21, 82,147,253,109,156, 79, 27,106,136, 12,159,131, 42,124,180,200, 39, 92, 46,215, 37,158, 33, 66,145,228,139,183,222,125, 95, +124,240,143, 63,145,158,145,254,136,200, 2,128,139,191,253,128,156,236, 44,164,164,101, 98,244,150, 61, 49, 16, 0, 0, 29, 44, + 73, 68, 65, 84,127,223, 22, 75, 36,210, 47, 42, 52,168, 85, 46, 27,245,245,225,124,249,225,136,238,124,173, 37, 27, 37,126, 0, +213,144, 11,182, 80,135,217,131, 91,243, 36, 62,156,165,238,148,147,199,229,254,182,248,216, 49,167,200,234,102, 52,130, 71,211, +176,210,180, 83,100,153,172, 86,232, 77, 38, 40,180, 90,220, 25, 63, 30,140,197,130, 79,246,236, 17,242,184,220,223,220, 41, 39, + 0,112, 56, 28,197,190,125,251,234,181,106,213,234, 36,220, 15,102,122,236, 9,255, 71,213,161, 93,155, 54,109, 18, 54,111,222, + 92,143,195,225, 40,234,130,147,207,231,191, 38, 18,137, 10,248,124,254,107,181, 44, 39, 9, 96,193,132, 9, 19,146, 27, 53,106, +116,194, 46,172,156,162,166, 81,163, 70,199, 38, 76,152,112, 9,192,220, 42,238,245,202, 56, 67, 67, 66, 66, 22,174, 90,181, 74, +120,235,214, 45,100,101,101,193, 98,177, 96,212,168, 81,160,105, 26,122,189, 30, 38,147, 9, 75,150, 44, 17,249,251,251,207, 65, + 89,162, 96,119,174,157,227,235,235,123,107,211,166, 77,195,238,223,191, 47, 62,113,226, 4,113,245,234, 85,209,178,101,203,134, +248,251,251,223, 4,192,171, 69,125,146, 10,133,226,251,189,123,247,190,117,245,234,213,176,221,187,119,179,207,158, 61,171, 88, +187,118,237, 68,133, 66,177, 25, 0, 85,203,255,168,173, 80, 40,236, 59,107,214, 44,219,233,211,167,179, 78,159, 62,157,181,124, +249,114,244,232,209,163, 91, 92, 92, 92, 76, 45, 57,219,249,248,248, 60, 55,107,214, 44, 91, 98, 98, 98,246,185,115,231, 50,151, + 45, 91, 70, 62,247,220,115,221, 23, 46, 92,216,218, 67,206,237,167, 79,159,238,149,145,145,209, 32, 51, 51,179,126,102,102,102, +100,102,102,102,100, 86, 86, 86, 68, 78, 78, 78,189,220,220,220,240,252,252,252,240,132,132,132,238, 0,182,186,195,217, 84, 46, +122,107,198,168,126,165,115,254, 59,144,249,232,141,231,153,217,163,122, 49, 47,246,108,245, 11,197, 98, 17,231, 82,211, 17,230, + 11,252, 48,181, 67, 68,120,128,232,106,180, 76,220,228, 41,123, 54,159, 54, 78,150, 67, 72,169, 84, 42, 28, 60,120, 16,118,235, + 85, 91, 87,145, 85, 92, 92,140,156,156, 28,199, 49,150, 59,229,148, 72, 36,199,215,175, 95,207, 24, 12, 6,104, 52, 26,228,231, +231, 35, 35, 35, 3,119,238,220, 65, 97, 97, 33,110,220,184, 1,161, 80,120,220,157,114, 18, 4, 1,154,166,157, 66,234,232,209, +163,152, 48, 97, 2, 84, 42,149,243, 51, 22,139,229,124,239,248, 78, 77,156, 14,203, 19, 77,211, 56,119,238, 28, 38, 77,154,132, +229,203,151, 99,235,214,173, 56,112,224, 0, 84, 42,149, 83,108, 89,173,214, 26, 57,149, 74, 37,108, 54,247,198, 76, 12,195, 64, +163,209,184,253,191,187, 10, 32, 22,139,245,136, 40,114,108,158,220, 75,143,201,249,212,194,141,200,240, 85,143,176, 29,111,236, +166,186,222, 79,170,144, 36,139, 51,122,248,184,105,254,153,249,197,200,202,211,128, 34,255,234,247, 98,250,141, 3,139, 34,113, +254,215, 50,195, 21, 73, 81,208,232,140, 80,107,205, 24, 54,110,186,236,187,229,159,141,182,154, 13,213,198,120,105, 9, 68, 69, +139,197,175,182,104, 81,143,188,206, 75, 67,204,139, 73,160,109, 0,147,248, 18,218, 22, 5, 81,205,126,227,190,170, 43, 49, 47, +188, 10,220,170,214,154, 33,149, 10,252, 90,183, 70, 92, 72, 8,122, 90, 44,224, 48, 12,158,207,203,195,149,233,211, 97,220,181, + 11, 36, 0,206,107,175,161,207,138, 21,248, 35, 36, 4,193,122, 61,212, 51,103, 34,240,200, 17,112, 36, 18, 1, 10,220, 91,252, + 64, 16, 4,122,247,238,141, 99,199,142,249, 15, 24, 48,224,215, 63,255,252,115,168,213,106,253,163, 54,117,235,235,235,123,145, +197, 98,133,213,116,158,213,106,205,212,104, 52, 30,167, 25, 97,177, 88, 61, 59,117,234,180,103,247,238,221,126,102,179,185, 78, + 70, 33, 92, 46,119,192,144, 33, 67,214,175, 89,179, 70, 50,113,226,196,245, 7, 14, 28, 40, 53,153, 76, 71, 60,185,165, 0, 44, + 88,183,110,221,228,216,216, 88,233,196,137, 19,153, 59,119,238,184, 90,175, 2,123,244,232,209,104,253,250,245,193, 29, 58,116, +152, 54,105,210, 36, 14,128, 79,106,178,242,136,197,226, 41,235,215,175, 15, 80, 42,149,208,106,181,206, 70, 54, 51, 51, 19, 2, +129, 0, 36, 73,130, 36, 73,176,217,108,124,241,197, 23,254, 83,166, 76,153,174, 82,169,166,187, 97, 37,139, 95,189,122,117,224, + 11, 47,188, 64,222,191,127, 31, 36, 73,130,207,231,227,245,215, 95, 39,245,122,189, 95, 92, 92,220, 70,157, 78, 55,210,147, 58, +100,179,217,163,227,227,227,155,116,235,214,141,149,150,150,134, 46, 93,186,224,252,249,243,120,237,181,215,216, 37, 37, 37,245, +103,207,158, 61,193,104, 52,122, 26,199, 69, 33, 20, 10, 91,254,254,251,239, 25,225,225,225,206,134,165,126,253,250,244,160, 65, +131, 84,105,105,105, 77, 79,159, 62, 93,216,181,107, 87, 79, 18,150,135, 10,133,194,102,135, 14, 29,202,137,139,139,235,187,110, +221,186, 33, 0,208,177, 99,199,125,243,231,207, 63,161, 82,169,162,255,248,227, 15, 85,207,158, 61, 51,221,228, 11, 81, 40, 20, +244,212,169, 83,197,213,157,180, 97,195, 6, 53,202, 18, 46, 55, 0, 80,109,190,182,166,145,193,115,150, 78, 31, 46, 0,109, 6, + 99,209, 3,230, 82,192,172,133,205, 84, 10,130, 35, 0, 44,122, 4,242, 84,216, 62,165,169,228,131,109,119,175,211, 55,136, 65, +105,202,146, 35,240,162,210,166, 6, 64, 12, 65, 16, 41, 7, 15, 30, 68,167, 78,157,112,240,224, 65, 12, 26, 52, 40,197, 85, 12, + 92,189,122, 21, 61,123,246,132,221,162,229,150,175,150, 70,163,249,112,238,220,185,137,163, 71,143, 22,150,107, 12, 72, 18, 82, +169, 20, 3, 7, 14, 52,232,116,186, 15,221, 45, 40, 77,211, 96,177, 88,200,204,204,196,134, 13, 27,176,104,209, 34, 68, 69, 69, +193, 98,177, 60, 34,182,236,237,158, 91,141,159,213,106,197,133, 11, 23,176,101,243,102,124, 50,103, 14,124,124,124, 0, 0,102, +179, 25,170,162, 34,240,249,124,167, 24,171, 65, 56,237,184,125,251,246,244,176,176,176,114, 83,134,142, 87,123,155, 5,155,205, + 6,171,213, 10,131,193,128,229,203,151, 91, 25,134,217, 81, 83,255,227, 16, 69,211,167, 79,135,209,248,151, 65,189,181,221, 39, + 57, 50, 50, 18,109,218,180,113,238,147, 36,201,184,203,249, 93,215,150,208,187,156,221,116,238, 50, 0, 64, 88, 88, 24,154, 54, +109, 10,133, 66, 81, 37,231,147,214, 34,181,129, 7,145,225,171, 22, 90,127, 71,166,108, 54,135,223,167, 97,227, 38, 68,122,142, + 10, 44, 22, 11, 34,223, 0,116,125,101, 6, 40,138,132, 88, 26, 0,130,214,255,165,136, 73, 10, 44,138, 5, 85,137, 30,145, 13, + 26,147, 60,190,160,143,174, 6,161, 37,241,101,175,158, 53,178, 43,191,208,154, 9, 65, 61, 62,104, 71,119, 26,194, 5,233, 95, +130,247, 6, 68, 9, 98,247,253,185, 26, 26,203,115,238,148,151,178, 90, 17, 68, 81, 48, 51, 12,174, 76,159,142,152,248,120,164, + 56,132, 97,124, 60, 82, 98, 99, 33, 99,179,193, 35, 73, 48, 22,203, 35,115,250,238, 8, 45, 0,200,200,200,192,174, 93,187,100, +195,135, 15,223,115,245,234,213,209, 30,138, 13, 7, 87,192,185,115,231,130, 26, 52,104, 80,229, 57,247,238,221, 67,251,246,237, + 61,158,158,226,114,185, 3,158,123,238,185,109,187,118,237,242, 77, 77, 77, 69, 80, 80,208, 99, 11, 45, 30,143,215,179, 95,191, +126,219, 54,109,218, 36, 41, 40, 40, 64,124,124,188,228,165,151, 94,218,154,156,156,252,138,209,104,116, 71,108,150, 19, 89,241, +241,241,234, 13, 27, 54,124,135,242, 83,132, 57, 27, 54,108,248,190, 67,135, 14,111,197,198,198, 74, 1, 76,182,251, 14, 84, 43, +182,120, 60, 94,239,134, 13, 27,150, 27,213,242,120,101,198, 38,145, 72, 4, 95, 95, 95,112, 56, 28, 24,141, 70,196,196,196, 16, + 92, 46,183,187, 59,215,236,227,227,211,239,213, 87, 95, 37,147,146,146,144,155,155, 11,169, 84, 10,177, 88, 12,154,166, 49,113, +226, 68,106,249,242,229,189,117, 58,207,102,184,194,195,195,135,244,237,219,151,117,237,218, 53,220,191,127, 31, 70,163, 17, 55, +111,222,132, 68, 34,193, 27,111,188,193, 89,186,116,233, 75, 89, 89, 89,158, 10,173,150,177,177,177,121,174, 34,203, 1,145, 72, + 68, 52,105,210, 68,229,239,239,223, 14,128, 39, 66,171,229,219,111,191,157,191,120,241,226,158,199,142, 29,115, 6,189, 60,118, +236,216,108, 0,248,250,235,175, 19, 3, 3, 3,219, 1,112, 87,104,129, 97, 24,219,127,254,243,159,135, 92, 46, 23,108, 54, 27, + 92, 46,183,220,198,225,112, 64,146,164,143,227,113,174,137,239,250,253,220, 37, 19,103, 47, 91, 38,226, 83,236,119, 95,105,133, +122, 82, 14, 32,144,129,211,243, 3, 16,210, 50,163, 37,163,186, 7,252,246, 1,190,122, 85, 69,198,254,104,248,197, 76,251, 5, +222, 45, 42, 42,249,135,251,128, 14, 0,254,135,178,228,186,115, 0,156,123, 74,250,166, 75, 0, 98, 6, 13, 26,228, 20, 91,135, + 15, 31,198,128, 1, 3,160, 86,171,113,237,218, 53, 87,145,229, 73,130,229, 75, 22,139,229,242, 79, 63,253,212,117,248,240,225, +132,203,243,133,212,212, 84,220,184,113, 35,197, 93, 62,146, 36, 97,179,217,192,102,179,177,108,217, 50,152,205,102,252,248,227, +143,216,185,115, 39, 72,146, 4, 65, 16, 32, 8, 2, 18,137, 4,223,124,243,141, 71,237, 30, 77,211,216,184,113, 35, 62,152, 61, +219, 41,178,236, 51, 25, 8,150,203,225, 31, 16,128,187,119,239,214, 40,180,138,138,138, 62,223,191,127, 63,170,115,134,223,191, +127,191,243,125, 5,103,248,154,251, 57,138,130,209,104,196,243,207,255,149, 42,246,237,183,223,118,190, 87,169, 84,160, 40,202, + 81, 23,132,187,156,122, 6,120,133,255,215,103, 3,223,123,175,156,133,174, 42,206,191, 67,139,212,149,117,171, 18,177, 21, 99, +183,206, 42, 0, 12, 66,153,143, 86, 14,240, 55,250,104, 49,140,173, 89, 88,104, 8, 46,223,185, 10, 22, 69,129,235, 27, 0, 95, +153, 28, 54,171, 9,154,252,251, 56,185,251, 91, 0,192,186,141, 59, 64,146, 36, 88, 44, 10, 70, 19,141,168,122, 33,176,217,108, +205,170,227,110, 14,116,237, 45, 15,232, 20, 30, 33, 37,174,249,221, 71,147, 32,255, 10, 19, 33, 60, 68,101,139,137, 46, 98, 65, +199, 34, 77,113,215,235,192,233, 26,197, 0, 73,130, 36, 8, 8, 57, 28, 24,119,237, 42,243,218,140, 47,235,179, 82, 98, 99, 65, +254,242, 11,124,120, 60, 80, 4, 1,150,221, 4, 93, 27, 20, 23, 23,131, 32, 8,108,217,178,197,239,141, 55,222,216,122,237,218, +181, 88,131,193,176,203, 19, 14,181, 90, 61,168, 91,183,110, 39, 54,110,220, 24, 24, 28, 28,252,200,241,220,220, 92,140, 27, 55, +174, 64,173, 86,123, 20,212,141,207,231,191, 54,100,200,144,245, 63,252,240,131,228,246,237,219,208,106,181, 8, 12, 12,124,220, + 91,161, 93,231,206,157,247,236,218,181,203, 55, 55, 55, 23, 26,141, 6, 70,163, 17, 91,182,108,145, 14, 28, 56,112, 87, 90, 90, +218, 0, 0,201, 53,112,124,234, 42,178, 38, 77,154,244, 39,128, 32, 0,171, 43,106, 80,251,177, 86, 46, 98, 75, 3, 96,105, 53, + 35,209, 8,145, 72,132,252,252,124,140, 27, 55, 14,183,110,253,101, 0, 13, 9, 9,113,142,244,238,222,189,139,192,192, 64, 16, + 4, 17,228,206, 69, 7, 6, 6,138, 77, 38, 19, 38, 76,152,128,140,140,140,114,156,153,153,153, 32, 8, 66,232,105, 69,202,229, +114,185, 94,175, 71,143, 30, 61, 96, 48,148,229,245, 29, 49, 98, 4,216,108, 54,242,243,243,193,102,179, 3,106,241,255, 4, 12, + 26, 52,168,202,208, 42, 18,137,196,236,231,231,215,220, 67, 78,255,151, 94,122, 41, 43, 62, 62,254,145,133, 45,231,207,159,127, + 89, 38,147, 29,147,201,100, 77, 60,228,180,185,138, 42, 14,135, 83, 78,104,177,217,108,144, 36,233,182,143,218,173,124,221, 42, + 22,145,211,102,241,212, 23,198,213, 11,242, 5,163,205, 3,231,185,207,113,185, 64,128,101,203, 15, 1, 0,222,127,189, 61, 90, +247, 91, 0,211, 15, 47, 96,122, 23,138, 59, 38,211, 56, 11,192,167,255,112,155,255, 37, 0,199, 42,184, 53, 0,218, 60, 69,253, +145, 83,108, 29, 62,124, 24,209,209,209, 40, 42, 42, 66, 90, 90, 90,109, 69,150,163,189,251, 96,222,188,121,191, 13, 29, 58, 84, +228, 24,180, 10, 4, 2,204,156, 57, 83,175,213,106, 63,240,232, 38,178,217,192, 98,177,156,131,100, 62,159,143,152,152, 24,167, +200, 34, 8, 2,165,165,165, 96,177, 88,142, 21,137,132,155,101,132, 34, 56, 24, 62, 62, 62,104, 28, 21,133,219,246,118,196,241, +158,199,227,129, 32, 8, 88,173, 53, 26,242, 74,236, 78,237, 51,234,186, 75,118,136,162,106, 77,199, 33, 33,176,217,108, 14,145, +201,212, 5,103, 64, 64, 0,180, 90,173,187,156, 79, 37,170,176,104, 57,132,214, 32,148,249,106, 61, 18,222,161, 23,128,147,120, +130, 75, 42, 9, 48,132,141, 97,192,162, 72,251,220, 45, 5,138, 34,161, 42,200,193,138,207, 39,219, 69,214, 78, 28, 76, 76, 67, + 88,195,232,191,230,113, 9, 2, 96,170,191,185, 3,125, 57,241, 83,134,118, 22,228, 17, 57,144,134, 8,193,231, 87,208,143,126, + 28, 16,145, 36,166,246, 14, 19, 94,216,111,136,191,174, 49,215,216, 81,240, 73,178,204,249,157, 32, 42,117,238, 33,237,199, 40, +130, 40,139,254,106,243,204,239,216, 33,228, 5, 2, 1,204,102, 51, 40,138,194,202,149, 43,165,253,250,245, 91,237,169,208, 2, +144,154,151,151, 55,112,226,196,137,135,119,236,216, 17, 16, 16, 16, 80,110,244, 48,113,226, 68,101, 94, 94,222, 64,120,232,116, +207,102,179, 87,175, 89,179, 70,242,224,193, 3,148,150,150, 66, 32, 16, 56, 27,159,218,222,159, 29, 59,118,252,245,200,145, 35, +126, 26,141, 6,102,179, 25, 2,129, 0, 12,195,128,162, 40,252,252,243,207,254,131, 7, 15, 62,148,158,158,254, 92,117,101, 21, + 8, 4,175,216,133, 19, 98, 99, 99,165,177,177,177,189,128, 42, 35,245, 58, 17, 27, 27, 43,157, 49, 99,198, 75,122,189,126,105, + 53,215,156,161, 82,169,130, 5, 2, 1,118,239,222, 13,177, 88, 12,161, 80,136,144,144, 16,168, 84, 42, 8,133, 66, 48, 12, 3, +139,197,226,104, 44, 10,221,185,240,130,130, 2,173,213,106,245, 61,124,248, 48, 10, 11,255,250, 74,189,122,245,160, 86,171, 97, +179,217, 74, 61,173,204,236,236,236, 60,130, 32,194, 47, 95,190,140, 7, 15, 30, 96,192,128, 1,248,229,151, 95,208,190,125,217, +236,176,201,100,170, 77, 16, 63,154,162, 40,166,154,251,150, 0,224, 87,151,156,246,206,203, 35, 78,155,205,102,115,136, 44,215, + 87, 87,241, 85,195,111,150,123,156,155,203,197, 27, 22, 79,233, 59,238,133,232, 0,232, 11,238,131,239, 19, 0, 66, 26,137,101, +203, 15,225,218,189,178,255,107,217,214,139,216, 22, 55, 16, 16,200,208,212, 87,137, 96, 31,214,171, 55,242,255,113,161,229,235, + 58, 78,120, 90, 59,166, 1, 3, 6, 64,165, 82, 65, 44, 22,215,133,127,206, 25,189, 94,127,115,239,222,189,237, 6, 13, 26, 4, + 46,151,139,155, 55,111, 34, 57, 57, 57, 13,192, 25, 79,133, 22,155,205,198,188,121,243, 48,121,242,100,200,229,114,124,240,193, + 7, 96,177, 88,206,141, 32, 8,167,133,203, 19, 4,201,171, 95,248,232,112,136,175,201, 24,238,235,235, 59,143, 36,201,225,148, + 27, 21, 71,211, 52,109,179,217,118,104, 52,154,106,195, 59, 56, 28,215,221,249, 47, 92,235,160,134, 62,237,177, 57,255, 14, 45, + 82, 27, 84, 92,109, 88,133, 69,203,177,234,240,145, 84, 64,142,171, 60,105, 55,217,157,124, 82, 5, 37, 72,234, 70,102, 86, 54, +252,253,196,118,145,101,223, 72, 18,173,163,203, 6,179, 7, 19,211, 16,214, 32, 26, 44,138, 2,139,162, 32, 22,240,144,151,155, + 3, 22,139,188, 81, 21,111, 75, 10, 67,135, 54, 9,143,244,243,103, 67, 25,104,130, 66, 94,133, 97,160,157, 15,194, 20, 92,244, +247,231, 71,180,164, 48,180,122,235, 27,227, 20, 90,102,171, 21,156,215, 94,115, 78, 23,166,196,198, 34, 38, 62, 30,244,144, 33, +208,153,205,229, 76,197,181, 21, 90, 2,129, 0, 37, 37, 37, 24, 61,122,180,202, 98,177,188, 85,203, 42, 78, 46, 44, 44, 28, 54, +102,204,152, 66,135,128, 49,155,205, 24, 51,102, 76, 97, 97, 97,225, 48, 55,172, 68,143,192, 98,177,188,213,190,125,123,149, 82, +169,116,150,179, 54, 13,142, 3, 50,153,236,224,134, 13, 27,100, 70,163, 17, 86,171,213,201, 41, 16, 8, 64, 81, 20, 2, 3, 3, +177,109,219,182, 64,153, 76, 86,109,206, 42,189, 94,191, 55, 62, 62, 94, 13, 0,241,241,241,106,130, 32, 18, 8,130, 88, 75, 16, +196,154, 10,219, 90,130, 32, 18, 92,207,213,235,245,123,170,227, 54,153, 76, 9,105,105,105,140, 80, 40, 4, 69, 81, 48,155,205, +224,243,249, 78,147,120,113,113, 49,244,250,178,105,238,228,228,100, 88, 44,150, 36,119,174,189,164,164,228,248,198,141, 27,109, +245,234,213, 67,116,116, 52, 98, 98, 98,208,185,115,103, 68, 68, 68, 96,254,252,249,180, 78,167,243,248,217,203,206,206, 62,184, +125,251,118, 75,120,120, 56,218,181,107, 7, 30,143,135,214,173, 91, 35, 36, 36, 4,139, 22, 45, 50,105, 52,154,195,181,248,155, +210,175, 94,189, 74, 85, 35,114, 37,112, 99,245,110, 5,100, 92,184,112,129,234,220,185,243,190,138, 7, 58,118,236,184, 79, 44, + 22,251, 58, 76,236,158,140,200, 93,197, 21,143,199,115,110,142,207, 89, 44,150, 59,163, 31,178,185, 92,188,225,139,201,125,198, +189, 16,237,135,125,199,207,129, 99, 86, 3,166,106,102, 4,105, 11, 8,142, 8,114, 95,118,216, 83,208, 7, 76, 7,240, 39,202, +226, 48,125,128,167, 11, 78,199,247,194,194, 66,164,165,165, 33, 57, 57, 25,157, 59,119, 70, 82, 82, 18,240,151,131,188,199,208, +104, 52, 31,196,197,197,233, 28, 43,249,230,204,153,163, 47, 41, 41,249,192,211, 54,152, 97, 24,176,217,108, 52,109,218, 20, 51, +102,204,192,161, 67,135,112,243,230, 77, 88, 44, 22,167, 16,114,248,100,122, 98,209,226,112, 56,144,203,229,176, 88, 44, 78,107, + 22, 0,220,190,117, 11, 44, 22, 11, 54,155, 13, 38,147,169, 70,139,150,175,175,239,188,245,235,215, 79, 83, 42,149,138,130,130, +130, 32,215, 45, 47, 47, 47, 40, 39, 39, 39, 40, 43, 43, 43, 40, 35, 35, 35,232,225,195,135, 65,247,239,223, 87, 44, 89,178,100, +154,175,175,239, 60,119,202, 73, 81, 20, 90,183,110,141,183,223,126,219,185,173, 90,181,202,185,157, 60,121,210, 99,231,117,138, +162,208,116,238, 50, 12, 44, 96,156,219,161, 64,194,185, 93,123,127, 82,117,156, 79, 92,139,212, 74,191,216, 87, 27,186, 38,150, +174, 4,142, 85,135,142,182,204,233,182, 81,209, 25,254,137,193,106, 50,156,184,119,231, 86,159,166, 45, 59,144,185, 74,109,185, +229,159, 49,189,135,129, 32, 8,132, 54,136, 6,197, 98,129,162, 72,176, 40, 10, 82, 9, 31,105,151, 47,219,140,122,253,137,202, + 56,123, 1, 44,174,128,187,234,245,254,173,249,217,220,124, 4, 42, 68,224,176,203,180, 35,115,111, 88,133, 30,130, 5,180,244, +193,248, 44,127,193,137, 60,195, 42, 63,157,121, 95, 66, 21, 35, 64,155,205, 6, 49,143, 7,131,209, 8,189,213,138,222, 43, 86, + 56,167, 11, 73,130,192, 37, 0,173, 86,172,192,233, 93,187, 32,225,114, 1, 30,207,237, 85, 33,149, 9, 45,165, 82,137,177, 99, +199, 22,230,228,228,188, 81, 27, 31, 45, 7,140, 70,227, 31,185,185,185,111, 12, 27, 54,108,203,238,221,187,101,195,134, 13, 83, +229,230,230,190,225,166,223,211, 35, 48, 24, 12,187, 50, 50, 50, 74,199,142, 29,187,121,235,214,173,254, 1, 1, 1,206,145, 72, +173,110, 86,130, 80,246,237,219,151,231,206,121, 53,156, 18,103,119,110,159,108,183,108,181,154, 52,105,210,105,148,249, 95,185, + 98,238,186,117,235, 70,184, 76, 49,174, 5,176,162, 58,226,226,226,226, 53, 51,102,204,248,239, 31,127,252, 17,192,231,243, 65, + 16, 4, 56, 28, 14, 26, 55,110,236, 92, 69,195,102,179,193, 48, 12,222,123,239, 61,101,126,126,254,215,110,254, 55,147,226,226, +226,122, 26, 12, 6,191,177, 99,199, 82,124, 62, 31,121,121,121, 88,190,124, 57,253,195, 15, 63,168,117, 58,221,184, 90, 8,225, +141,159,125,246, 89,111,173, 86,219, 96,226,196,137, 28,141, 70, 3,189, 94,143, 89,179,102,153,190,255,254,251, 76,189, 94,239, +113,192,223, 46, 93,186,220,121,248,240, 97,247,210,210,210, 34,161, 80, 88,209,218, 71,136, 68,162, 14, 0, 54,123,194, 25, 19, + 19,115, 55, 61, 61,189,243,130, 5, 11, 18, 44, 22, 11,251,252,249,243, 78,103,248,149, 43, 87,158,228,243,249,125, 81,197,178, +232,106,238, 17, 27,143,199, 43,103,193,170,248,158,197, 98,213,216,166, 53, 11, 22, 46,248,226,205,158,227,158,111,238,139,189, +199, 47, 34,110,207,189, 27, 81,227, 2,155, 54,242, 43,128,173, 32, 13,239,191,222, 30,203,182, 94, 4, 80, 54,117,104,203,191, + 6,166,232, 46, 24,159,112,220, 87, 41,179,159,130, 62,224, 36,202, 66,102, 60,109, 40, 39,178,174, 93,187,134, 62,125,250, 0, + 0,146,146,146,208,173, 91, 55, 36, 37, 37,161,123,247,238, 30,199,210,178,227,247,226,226,226,135, 39, 79,158,108, 17, 30, 30, +142, 51,103,206,220, 7,240,187,167,133,116, 8, 45, 22,139,133, 81,163, 70,161, 95,191,126,168, 87,175, 94,185,213,134,142,247, +158,136, 13,171,213,138,150, 45, 91,194,104, 50,129,195,225, 56,167, 38, 89, 44, 22, 2,131,130,112,231,206, 29,183, 44, 90, 36, + 73, 14,127,229,149, 87,200,212,212, 84,140, 28, 57, 18, 91,182,108,169,242,220, 49, 99,198,224,167,159,126,194, 43,175,188, 66, +126,244,209, 71,213,134,119,112, 56,161,187,115, 77,142,126,186,166,118,191,174, 56,159,180, 22,121, 28,184,132,118,168,116,210, +164,146,207,226,203, 9, 45,151, 32, 97, 79, 70,104, 89,205, 91,126,249,241,219, 25,157, 87,119, 15, 84, 4,249, 66,165,209, 59, +197, 86,202,201,157, 0,128,161,147, 22,130, 69,149, 77, 41, 74,196,124, 8, 56, 20,118,109,250, 90,105, 54, 27, 42,189,187, 74, +216,228,228,143,186, 54,246,229,138, 44, 40, 14,102, 16, 29,248, 87,166, 28,162,193,206, 71, 5, 87, 91, 63, 4, 92, 43,194,235, +141,196,146,175, 83,213,147, 97,177,173,122,164, 67, 84,171,245,234,203,151, 5, 3,214,175,199,249, 55,222, 64, 40, 77, 35, 33, + 36, 4, 50, 54, 27,190, 60, 30, 72,130,128,254,192, 1,156,222,189, 27,114, 30, 15,240,241,129,117,254,124, 24,211,210, 96, 41, + 41,209,215, 98,100,134, 17, 35, 70, 40,149, 74,229, 48,147,201,244,199,227,214,179, 94,175, 63,146,145,145, 49,185, 75,151, 46, +171, 45, 22,203, 91,122,189,254,177, 86, 70,153, 76,166, 35,185,185,185,175,141, 24, 49, 98,231,158, 61,123, 2,164, 82,105,173, +185, 10, 11, 11,219,215,209,237,100, 3,240,137,221,185,125,114,108,108,172,244,194,133, 11,255,221,176, 97,195,106,151,209, 68, +208,132, 9, 19,222,172, 32,178,106, 92,117, 8, 32, 61, 63, 63,127,254,204,153, 51, 23,126,245,213, 87, 98,135,227,251,149, 43, + 87, 96,181, 90,193,102,179, 65,211, 52, 38, 76,152,160, 45, 44, 44, 92,134,170, 35, 58, 63,114,107, 21, 23, 23, 55, 94,176, 96, +193,134, 21, 43, 86,244,163, 40, 74, 68,211,180,174,180,180, 52,193, 96, 48,140, 67,237,226,104,217, 10, 10, 10,198,126,250,233, +167, 99,151, 47, 95,254, 10, 73,146, 65, 86,171, 85, 89, 82, 82,178, 95,175,215,127,143, 90, 76, 37,157, 57,115,166,224,245,215, + 95,191, 87, 80, 80,208, 44, 44, 44, 76, 35, 22,139, 77, 38,147,137, 18, 8, 4, 18,145, 72, 20, 3,224, 12, 65, 16,215, 61,225, + 76, 73, 73,201,157, 56,113,226, 3,163,209,216,116,237,218,181,137, 18,137,228, 56, 65, 16, 4,135,195,241, 19, 8, 4,125, 0, + 36, 16, 4,113,219, 19, 78,146, 36,109,174,214,171,138,254, 89, 92, 46,215, 45, 31,173, 6,129,194,241,253, 26,179,176,247,196, + 69,196,237, 77,223, 72, 51,204,238,221, 41, 69, 7, 62,232, 6,152,119,188,142,214,195, 54,151, 77, 23, 2,176,229, 95,131,121, +199, 24, 16,194, 0, 36,102,177,161,209,155, 15,194,139,202,224, 12,239,160, 84, 42,145,154,154,234, 16, 89, 49, 0,208,189,123, +247, 20,135,216, 74, 78, 78, 70,187,118,237, 82, 0,176, 61,189, 95,139,139,139,103,142, 30, 61,250,136,125,112, 60,179, 22, 3, + 63,167,208,114, 8,170,122,245,234, 57,247, 93, 55, 23, 31, 45,183, 64,211, 52, 56, 28, 14, 88, 44, 22, 20, 33, 33,206,223, 98, + 24, 6,119,238,220,129, 74,165,114, 75,104, 81, 20, 69, 17, 4,129,145, 35,221, 91,144,252,159,255,252, 7, 9, 9, 9,160,220, + 84,133, 20, 69, 33, 50, 50,178,198,115, 28,186,212, 93,206,176,176,176, 90,115, 62,105, 45, 82, 91,129, 85,217,251,202, 68, 85, + 85, 15,196,223,133,108,173, 86,243,201,166,245, 43,191,154, 48,229, 61,241,181,187,121,208,104,141,160, 40,210,181,241, 4,139, + 69, 65, 34,226, 35, 60,216, 23, 91,191,251, 95, 73, 73,177,250, 83, 84,145,247,176,158, 15,103, 82,223, 14,141,120, 28,133, 14, + 77, 91,141, 0,197,255, 75, 4, 48,185, 85,204, 14,118,251, 13, 47,166,235,248,191,164,235, 38, 93, 42, 50, 61, 42,180, 76,166, + 23,230,244,239,255,107,220,161, 67,194,142, 27, 55,226,238,132, 9, 8,209,235,193,179, 79, 37,146, 4, 1, 49,135, 3, 49,135, + 83, 38,178,150, 47,135,222,106,197,138, 55,222, 40, 53,154, 76,253, 61,121,200, 11, 11, 11, 49,100,200,144,130,236,236,236,129, +168,197,212, 94, 85,208,233,116,187, 0,236,170, 43, 62,163,209,248, 71,102,102,230,139, 67,134, 12, 57,116,228,200,145,192,167, + 36,200,156, 67,108,153, 47, 92,184,240,102, 98, 98,226, 93,148, 79, 44,170, 78, 76, 76,188, 59,113,226, 68, 98,195,134, 13,223, + 3,248, 12,110, 6,240,212,233,116, 43,143, 30, 61,138,158, 61,123,126,182,120,241, 98,255,246,237,219, 35, 40, 40, 8, 37, 37, + 37, 72, 78, 78,198,244,233,211, 85,197,197,197,139,213,106,245, 87, 30,150,217,108, 52, 26,199,184, 46,165,174,139,122, 48, 26, +141, 63,228,228,228,252, 80, 87,132, 83,167, 78,189,114,231,206,157,194,192,192,192, 78, 28, 14,167, 21,202,252,128,114, 1,124, +239,169, 32,114, 96,202,148, 41,151,239,220,185,163, 12, 13, 13,237,108,231,148,162, 44,141,209,250, 90,112,102, 95,188,120, 49, +172, 67,135, 14, 36,155,205,102, 40,138, 2,155,205,102, 88, 44, 22, 99,247,171, 97, 0, 96,255,254,253, 60, 0,213,166,205,185, +155,175, 95, 48,230,127,167, 62,186,158,107,216,157,150, 87, 58, 3, 0,179,227,154,240,183,214,129,212, 11, 47, 52,201,132, 49, +190, 59, 8, 73, 89,160, 74, 70,155, 3, 66, 36, 71,166, 45, 20,115,247,221,200,181,130, 88,234,213, 84,149,143,171, 97, 15,239, +144,147,147,227, 42,178, 28, 86,171,152,238,221,187,167,216, 69,150,227, 88,109,252,203,142,217,108,182,199,234,195, 24,134, 65, + 92, 92, 28,214,173, 91,135,154, 34,154,219, 87,247, 17, 53,241, 57, 44, 90, 52, 77,195,108, 54,227,218,181,107,206,152, 93,142, +233, 66, 71,104, 7,171,213, 90,237,106,117,154,166,105,147,201,132,159,127,254,217, 45,177,181,109,219, 54, 24, 12, 6,208, 53, + 40, 56,215, 80, 12,109,218,180,129, 74,165,114, 46,246,137,137,249, 43, 84,158,217,108,246, 72,184, 58, 56,155, 54,109, 10,165, + 82, 9,135,191,112,248, 27,127, 25,123,172, 58,221,191,245,190,175,210,162,245,183,247,152, 60,161,228, 72,251,174,253,186,189, +241,230,116,145,214, 72,227,193,131,135, 40,200,207, 1, 73,144, 80,132,134, 33, 34, 34, 18, 2, 46,137, 45,241, 95,233, 82, 78, + 31, 63,165, 45, 41, 26, 80, 21,215, 32,223,255,107,239,108, 98,219, 40,162, 56,254,223,117,252,145,164,117, 12,235,184,144,130, +132,107, 75, 77,133, 64,168, 80, 33, 80, 36,108, 65, 64, 28, 16,135,208, 54, 7, 90,110,149,162, 34,144,122,171,132, 84,163,158, + 56, 68, 37, 72,225, 16,113, 33,226,196, 33,135,170, 7,135, 15,149, 28, 40, 32, 4, 82, 32,253, 74, 85,197,170, 72,237, 56, 45, +113,140,227, 38,246,122,135,131,189,210,118,179,235,122,227, 55,182, 55,218,191,180,202,135,162, 95,222,204,123, 35,191,153,217, +121,227,249,249,194,123, 67,175, 68,163,126, 1,114, 25,168,148, 1,185, 12, 40,181,175,234,239,148,135, 99,110, 97, 97,141,157, +253,243,254, 47,151,114, 37,195, 59,171,142, 2, 67,143, 73, 82, 50,113,241, 98,175, 82, 42,225,222,153, 51,232,149,101,116,215, +102, 37,213,134,248, 32,159, 63, 95, 77,178, 78,156,216,200,173,173, 89,186,130,167,191,191,255,119, 65, 16,250,179,217,172,173, + 42,195,135, 66,161, 75,140,177,213,213,213,213, 35, 29,100,215, 62, 0,107, 0, 74, 6, 19,137, 16,172,191,255,163, 42, 28, 10, +133,206,138,162,248, 42, 99, 44, 40,138,226,191,138,162, 92, 89, 89, 89,249, 12,192, 45,231,243,180,109, 82, 43,195, 31,120,196, +223,173, 0,248, 24,213,151,130,151, 26,133,191, 16, 8, 4, 54,189,229,153,119,159,243,197,143,189, 24, 64,228, 73, 63,220,158, +110, 44,175,203,248,254,234, 58,190,186,156,190, 83, 44, 87,222,185,153,221,248,203,113, 69, 93,145, 95,193, 67, 41, 73,146,126, + 77, 38,147, 71, 34,145,136,168,125,225, 93,173,149,167,110,111,117,117, 85,115,185,185,185, 57,121,116,116,244, 74, 38,147,121, +205,140,233,247,251,103,231,231,231,223,204,229,114,219, 18, 42,109,165,120,245,231, 66,161,128,177,177,177,239,204,174,224, 9, + 4, 2, 23,198,199,199, 63, 26, 25, 25, 17,213,114, 20,218, 71,189, 46, 72,125, 74,165, 18,166,167,167,149,137,137,137, 47,114, +185,156,233,214,225,192,192,192,157,229,229,229,167,213, 82, 11,141, 20, 21, 13,135,195,119, 83,169,212,254, 86, 50,109,156,112, + 77,105, 19,239,182, 44, 77,184,123,122, 78,251,247, 62,126,110,228,253, 15,131,225,232, 65,225,137,129,167, 32, 64, 68, 38,253, + 15, 82,183,111,178,153,111, 38,239, 21,214,239,127, 90, 44, 22, 38,235,113,158, 5,162, 7,250, 60,223,122, 43, 24,132,154, 0, +233,238,167,218, 54,227, 0, 80,114,139,215,151,242,229,227, 87,235,108,251,168,201,214, 39, 51, 51,189,222,193,193,109,133,226, + 20, 69,193,230,181,107,248,252,228, 73,203, 73,150, 35, 71,142, 72, 20,193,163,107,100,149, 81,173,207,101,117,197, 68, 56,180, +111,207,113, 6, 28, 19,161, 60, 47, 10,130, 87,102,184, 1,134,217,222,174,141, 47,255,184,139,162,211,253, 13,169, 99, 47,149, + 6,176, 71,146,164, 31, 92, 46,215, 51,234,138,140,118,181,222,224, 66,233,165, 76, 38,243, 6,128,122, 39,132,163,126,191,127, +178, 82,169,188,220,200,165,210, 46,151,235,183,124, 62,127, 26,117, 46,149,230,113,234, 48, 24, 12,222, 74,165, 82, 81,245, 20, +181,246,179,210,232,100,249,226,226, 34, 98,177, 88, 42,157, 78,135, 91,201,236, 84,153,156, 58, 60,101,224,227,246,172,104,105, +180,223,227,219,251,129,183,167,251,117,165, 44, 31,130, 0,116,185,221,215,183, 30, 20,127,220, 44,254,247, 53, 76,182, 11, 91, +169,163,192,144,207,235,157,245,244,245,245, 24, 37,109,229,124,190,184,185,181,245,150,147,100, 57,114,228,200,145, 35, 27,105, + 80,146,164,164,219,237,246,105,147, 73,253,247,170,100, 89,126,144,205,102,223, 6,112,163,197, 76, 91,203, 74, 17,243,135,100, +241, 37,181,225, 70,153,181, 39,214,233, 76,142,109,103,132,204, 88,141,153,176,137,157,177, 78,101,170,237,181,192, 29,182, 18, + 71, 84,253,169,177,147, 81,219,201,139, 73, 53,142, 12,236,100, 28,252,158,176,137,157,177, 78, 99,234,227,167, 65,174, 37,102, +131, 49,101,213, 78, 70,109, 39, 47,102,179,227,168,142,157,172,217, 88, 50,241,125, 2, 54,212,194, 97,176,133,195, 96,127,191, +100, 88,183,209,104, 69, 11,140, 49,107, 47,195,243, 58, 9,160,150,221,175,241,133, 78,101,106,251,129,242,170, 0, 14,215, 14, + 92,166,102,234,250,147, 74,137,218, 9,147,159,208, 64,193, 81, 43,109,167,240,187,174,173, 36,220, 29, 36, 89,150,152, 84,113, +207,155, 73, 53,150,244, 76,138,184, 55,242, 59, 71, 31, 81,217, 73, 50,150,120,196,188, 65,252, 52,205,213, 51, 41,198,146,158, + 73, 17,247,173, 96, 82,140, 37, 35, 38, 69,220,155,249,222,174, 43, 84,234,118, 97,173,196,131,208, 64,178, 53, 5, 0,226, 78, + 58,141,135,120, 92, 36, 73,157, 16,241, 74, 54, 45,172,192,180,157, 73,236,163, 68,141, 73, 57,187,137, 83,249,136, 71,188,107, +153, 84,124, 61,135,194, 79, 70,204,102,237, 53,177,147,188,237,205,198,125,171,152,196, 62, 34, 25, 75, 58,102,156,120, 50, 16, +215,252,156,160,100, 82,141, 37, 3, 59,155,246,147, 17,179, 89,123, 77,236, 36,111, 59,197,103, 8, 47,110, 59, 87,180,152,104, + 26, 19, 83,186,167, 37,137, 70,219,182,228, 44,178,119, 21,211,226,246,204, 48, 7,223,183,213, 78, 74,166,222, 70,202,237, 30, +158,118, 82, 50, 45,216,186,235,152,118,243,123, 39,246,167, 25,175,153,109, 41,179,213, 81, 30,118, 82, 50, 27,100,239, 10,102, + 19,190,223, 53,218,209,214, 33, 79,169, 29, 79, 60, 51, 1,241, 10, 12,183,118, 19,219, 25,231,177, 66,200, 65,228,118,214,102, +202,231, 56,180,221, 46,125,234,140, 37,103, 44,117,220, 88,210,197,100,156,112,165,136,116,229, 89,207,164,248, 31, 90, 6, 85, +140,242,110, 59,229, 88,226,225,123,187,233,127,210, 11,149,201, 8, 25,190, 81, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index b4fad1f849a..b4263935407 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -322,8 +322,8 @@ DEF_ICON(OUTLINER_OB_CAMERA) DEF_ICON(OUTLINER_OB_ARMATURE) DEF_ICON(OUTLINER_OB_FONT) DEF_ICON(OUTLINER_OB_SURFACE) +DEF_ICON(OUTLINER_OB_SPEAKER) #ifndef DEF_ICON_BLANK_SKIP - DEF_ICON(BLANK119) DEF_ICON(BLANK120) DEF_ICON(BLANK121) DEF_ICON(BLANK122) @@ -354,9 +354,9 @@ DEF_ICON(OUTLINER_DATA_CAMERA) DEF_ICON(OUTLINER_DATA_ARMATURE) DEF_ICON(OUTLINER_DATA_FONT) DEF_ICON(OUTLINER_DATA_SURFACE) +DEF_ICON(OUTLINER_DATA_SPEAKER) DEF_ICON(OUTLINER_DATA_POSE) #ifndef DEF_ICON_BLANK_SKIP - DEF_ICON(BLANK129) DEF_ICON(BLANK130) DEF_ICON(BLANK131) DEF_ICON(BLANK132) diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index c2dda694a1d..67d0e68c1c4 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -1081,7 +1081,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto case OB_SURF: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; case OB_SPEAKER: - tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SPEAKER); break; case OB_EMPTY: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; @@ -1127,7 +1127,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; case ID_SPK: case ID_SO: - tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_SPEAKER); break; case ID_AR: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; case ID_CA: -- cgit v1.2.3 From 9eef0646d4fc5344e85e8e4eae63795ffd4b766b Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 3 Aug 2011 14:21:49 +0000 Subject: Crash in MMB moves (etc): commit of today was reading NULL pointer. --- source/blender/editors/transform/transform_generics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index f8df4e4ee75..c81c398e696 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -887,6 +887,7 @@ void resetTransRestrictions(TransInfo *t) t->flag &= ~T_ALL_RESTRICTIONS; } +/* the *op can be NULL */ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) { Scene *sce = CTX_data_scene(C); @@ -1015,7 +1016,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } /* initialize UV transform from */ - if (RNA_struct_find_property(op->ptr, "correct_uv")) { + if (op && RNA_struct_find_property(op->ptr, "correct_uv")) { if(RNA_property_is_set(op->ptr, "correct_uv")) { if(RNA_boolean_get(op->ptr, "correct_uv")) { t->settings->uvcalc_flag |= UVCALC_TRANSFORM_CORRECT; -- cgit v1.2.3 From cbdc67e2e81cb136a0dca2218dd0ccb6ecc557ca Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 3 Aug 2011 19:12:18 +0000 Subject: Find all key frames for baked animation export. --- source/blender/collada/AnimationExporter.cpp | 53 ++++++++++++++++++++++++++++ source/blender/collada/AnimationExporter.h | 6 ++++ 2 files changed, 59 insertions(+) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 2f92d9212a9..5a5ec4fea2d 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -61,6 +61,13 @@ void AnimationExporter::exportAnimations(Scene *sce) bool isMatAnim = false; if(ob->adt && ob->adt->action) { + if ( ob->type == OB_ARMATURE ) + { + bArmature *arm = (bArmature*)ob->data; + for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) + bake_bone_animation(ob, bone); + + } fcu = (FCurve*)ob->adt->action->curves.first; while (fcu) { transformName = extract_transform_name( fcu->rna_path ); @@ -318,6 +325,17 @@ void AnimationExporter::exportAnimations(Scene *sce) closeAnimation(); } + void AnimationExporter::bake_bone_animation(Object *ob_arm, Bone *bone) + { + if (!ob_arm->adt) + return; + + sample_and_bake_bone_animation(ob_arm, bone); + + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + bake_bone_animation(ob_arm, child); + } + void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) { if (!ob_arm->adt) @@ -334,6 +352,22 @@ void AnimationExporter::exportAnimations(Scene *sce) write_bone_animation(ob_arm, child); } + void AnimationExporter::sample_and_bake_bone_animation(Object *ob_arm, Bone *bone) + { + bArmature *arm = (bArmature*)ob_arm->data; + int flag = arm->flag; + std::vector fra; + char prefix[256]; + + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); + + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); + if (!pchan) + return; + + find_all_frames(ob_arm, fra); + } + void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) { bArmature *arm = (bArmature*)ob_arm->data; @@ -920,6 +954,25 @@ void AnimationExporter::exportAnimations(Scene *sce) return dot ? (dot + 1) : rna_path; } + void AnimationExporter::find_all_frames(Object *ob, std::vector &fra) + { + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + std::vector keys; + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; // + if (std::find(keys.begin(), keys.end(), f) == keys.end()) + keys.push_back(f); + } + + std::sort(keys.begin(), keys.end()); + + for ( float fAll = *(keys.begin()) ; fAll != *(keys.end()) ; fAll+=1.0f ) + { + fra.push_back(fAll); + } + return; + + } void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) { FCurve *fcu= (FCurve*)ob->adt->action->curves.first; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 3e3150cd8ef..388d7dbb24d 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -96,10 +96,14 @@ protected: void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material *ma = NULL); + void bake_bone_animation(Object *ob_arm, Bone *bone); + void write_bone_animation(Object *ob_arm, Bone *bone); void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type); + void sample_and_bake_bone_animation(Object *ob_arm, Bone *bone); + void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); // dae_bone_animation -> add_bone_animation @@ -134,6 +138,8 @@ protected: std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); + + void find_all_frames(Object *ob, std::vector &fra); void find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode); -- cgit v1.2.3 From e5e6f91856efe3d78eab747c25be4e1d0a5988ef Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Aug 2011 01:56:36 +0000 Subject: fix [#28114] Render Crash existing check for driver to use GIL was not thread safe and could cause, details in the report. This bug was caused by a check to avoid hanging, a fix for [#27683] that worked in 2.4x because the UI didn't use python to draw while rendering. Apply a different fix for [#27683], when calling an operator, call PyEval_SaveThread(), then PyEval_RestoreThread() so the GIL can be aquired by threads started by the operator - in this case bake starting a thread that evaluates drivers. --- source/blender/python/intern/bpy_driver.c | 17 ++++++++++------- source/blender/python/intern/bpy_operator.c | 21 ++++++++++++++++++++- 2 files changed, 30 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index bcd5df97c2c..d68fd9a9111 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -41,8 +41,6 @@ #include "bpy_driver.h" -#include "../generic/py_capi_utils.h" - /* for pydrivers (drivers using one-line Python expressions to express relationships between targets) */ PyObject *bpy_pydriver_Dict= NULL; @@ -89,7 +87,7 @@ int bpy_pydriver_create_dict(void) void BPY_driver_reset(void) { PyGILState_STATE gilstate; - int use_gil= !PYC_INTERPRETER_ACTIVE; + int use_gil= 1; /* !PYC_INTERPRETER_ACTIVE; */ if(use_gil) gilstate= PyGILState_Ensure(); @@ -120,9 +118,14 @@ static void pydriver_error(ChannelDriver *driver) /* This evals py driver expressions, 'expr' is a Python expression that * should evaluate to a float number, which is returned. * - * note: PyGILState_Ensure() isnt always called because python can call the - * bake operator which intern starts a thread which calls scene update which - * does a driver update. to avoid a deadlock check PYC_INTERPRETER_ACTIVE if PyGILState_Ensure() is needed. + * (old)note: PyGILState_Ensure() isnt always called because python can call + * the bake operator which intern starts a thread which calls scene update + * which does a driver update. to avoid a deadlock check PYC_INTERPRETER_ACTIVE + * if PyGILState_Ensure() is needed - see [#27683] + * + * (new)note: checking if python is running is not threadsafe [#28114] + * now release the GIL on python operator execution instead, using + * PyEval_SaveThread() / PyEval_RestoreThread() so we dont lock up blender. */ float BPY_driver_exec(ChannelDriver *driver) { @@ -149,7 +152,7 @@ float BPY_driver_exec(ChannelDriver *driver) return 0.0f; } - use_gil= !PYC_INTERPRETER_ACTIVE; + use_gil= 1; /* !PYC_INTERPRETER_ACTIVE; */ if(use_gil) gilstate= PyGILState_Ensure(); diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index b8883e655f2..4a17c45ae38 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -55,6 +55,10 @@ #include "BKE_report.h" #include "BKE_context.h" +/* so operators called can spawn threads which aquire the GIL */ +#define BPY_RELEASE_GIL + + static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args) { wmOperatorType *ot; @@ -219,7 +223,22 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) reports= MEM_mallocN(sizeof(ReportList), "wmOperatorReportList"); BKE_reports_init(reports, RPT_STORE | RPT_OP_HOLD); /* own so these dont move into global reports */ - operator_ret= WM_operator_call_py(C, ot, context, &ptr, reports); +#ifdef BPY_RELEASE_GIL + /* release GIL, since a thread could be started from an operator + * that updates a driver */ + /* note: I havve not seen any examples of code that does this + * so it may not be officially supported but seems to work ok. */ + { + PyThreadState *ts= PyEval_SaveThread(); +#endif + + operator_ret= WM_operator_call_py(C, ot, context, &ptr, reports); + +#ifdef BPY_RELEASE_GIL + /* regain GIL */ + PyEval_RestoreThread(ts); + } +#endif error_val= BPy_reports_to_error(reports, PyExc_RuntimeError, FALSE); -- cgit v1.2.3 From c284725a1a69be3f9a80d88e17be922e6ce63f72 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Thu, 4 Aug 2011 07:12:03 +0000 Subject: 3D Audio GSoC: * versioning stuff for btheme->tv3d.speaker * separating object.c speaker functions in own source file Thanks Brecht for the suggestions. --- source/blender/blenkernel/BKE_object.h | 5 - source/blender/blenkernel/BKE_speaker.h | 43 +++++++ source/blender/blenkernel/CMakeLists.txt | 2 + source/blender/blenkernel/intern/library.c | 1 + source/blender/blenkernel/intern/object.c | 95 +--------------- source/blender/blenkernel/intern/speaker.c | 139 +++++++++++++++++++++++ source/blender/editors/interface/resources.c | 7 ++ source/blender/editors/object/object_add.c | 1 + source/blender/editors/object/object_relations.c | 1 + source/blender/makesrna/intern/rna_main_api.c | 1 + 10 files changed, 196 insertions(+), 99 deletions(-) create mode 100644 source/blender/blenkernel/BKE_speaker.h create mode 100644 source/blender/blenkernel/intern/speaker.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index f9e01a524ab..a6b5c04b5c3 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -88,11 +88,6 @@ void make_local_lamp(struct Lamp *la); void free_camera(struct Camera *ca); void free_lamp(struct Lamp *la); -void *add_speaker(const char *name); -struct Speaker *copy_speaker(struct Speaker *spk); -void make_local_speaker(struct Speaker *spk); -void free_speaker(struct Speaker *spk); - struct Object *add_only_object(int type, const char *name); struct Object *add_object(struct Scene *scene, int type); diff --git a/source/blender/blenkernel/BKE_speaker.h b/source/blender/blenkernel/BKE_speaker.h new file mode 100644 index 00000000000..111bd86fdd3 --- /dev/null +++ b/source/blender/blenkernel/BKE_speaker.h @@ -0,0 +1,43 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Jörg Müller. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BKE_SPEAKER_H +#define BKE_SPEAKER_H + +/** \file BKE_speaker.h + * \ingroup bke + * \brief General operations for speakers. + */ + +void *add_speaker(const char *name); +struct Speaker *copy_speaker(struct Speaker *spk); +void make_local_speaker(struct Speaker *spk); +void free_speaker(struct Speaker *spk); + +#endif diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index defcef58463..c1797427cc2 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -140,6 +140,7 @@ set(SRC intern/smoke.c intern/softbody.c intern/sound.c + intern/speaker.c intern/subsurf_ccg.c intern/suggestions.c intern/text.c @@ -220,6 +221,7 @@ set(SRC BKE_smoke.h BKE_softbody.h BKE_sound.h + BKE_speaker.h BKE_subsurf.h BKE_suggestions.h BKE_text.h diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 85f87992c28..8668168936b 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -109,6 +109,7 @@ #include "BKE_particle.h" #include "BKE_gpencil.h" #include "BKE_fcurve.h" +#include "BKE_speaker.h" #include "RNA_access.h" diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 66bf4ea208b..a615bc42f66 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -56,7 +56,6 @@ #include "DNA_sequence_types.h" #include "DNA_sound_types.h" #include "DNA_space_types.h" -#include "DNA_speaker_types.h" #include "DNA_view3d_types.h" #include "DNA_world_types.h" @@ -98,6 +97,7 @@ #include "BKE_sca.h" #include "BKE_scene.h" #include "BKE_sequencer.h" +#include "BKE_speaker.h" #include "BKE_softbody.h" #include "BKE_material.h" @@ -977,99 +977,6 @@ void free_lamp(Lamp *la) la->id.icon_id = 0; } -void *add_speaker(const char *name) -{ - Speaker *spk; - - spk= alloc_libblock(&G.main->speaker, ID_SPK, name); - - spk->attenuation = 1.0f; - spk->cone_angle_inner = 360.0f; - spk->cone_angle_outer = 360.0f; - spk->cone_volume_outer = 1.0f; - spk->distance_max = FLT_MAX; - spk->distance_reference = 1.0f; - spk->flag = 0; - spk->pitch = 1.0f; - spk->sound = NULL; - spk->volume = 1.0f; - spk->volume_max = 1.0f; - spk->volume_min = 0.0f; - - return spk; -} - -Speaker *copy_speaker(Speaker *spk) -{ - Speaker *spkn; - - spkn= copy_libblock(spk); - if(spkn->sound) - spkn->sound->id.us++; - - return spkn; -} - -void make_local_speaker(Speaker *spk) -{ - Main *bmain= G.main; - Object *ob; - int local=0, lib=0; - - /* - only lib users: do nothing - * - only local users: set flag - * - mixed: make copy - */ - - if(spk->id.lib==NULL) return; - if(spk->id.us==1) { - spk->id.lib= NULL; - spk->id.flag= LIB_LOCAL; - new_id(&bmain->speaker, (ID *)spk, NULL); - return; - } - - ob= bmain->object.first; - while(ob) { - if(ob->data==spk) { - if(ob->id.lib) lib= 1; - else local= 1; - } - ob= ob->id.next; - } - - if(local && lib==0) { - spk->id.lib= NULL; - spk->id.flag= LIB_LOCAL; - new_id(&bmain->speaker, (ID *)spk, NULL); - } - else if(local && lib) { - Speaker *spkn= copy_speaker(spk); - spkn->id.us= 0; - - ob= bmain->object.first; - while(ob) { - if(ob->data==spk) { - - if(ob->id.lib==NULL) { - ob->data= spkn; - spkn->id.us++; - spk->id.us--; - } - } - ob= ob->id.next; - } - } -} - -void free_speaker(Speaker *spk) -{ - if(spk->sound) - spk->sound->id.us--; - - BKE_free_animdata((ID *)spk); -} - /* *************************************************** */ static void *add_obdata_from_type(int type) diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c new file mode 100644 index 00000000000..200dbd41899 --- /dev/null +++ b/source/blender/blenkernel/intern/speaker.c @@ -0,0 +1,139 @@ +/* speaker.c + * + * + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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): Jörg Müller. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/blenkernel/intern/speaker.c + * \ingroup bke + */ + +#include "DNA_object_types.h" +#include "DNA_sound_types.h" +#include "DNA_speaker_types.h" + +#include "BLI_math.h" + +#include "BKE_animsys.h" +#include "BKE_global.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_speaker.h" + +void *add_speaker(const char *name) +{ + Speaker *spk; + + spk= alloc_libblock(&G.main->speaker, ID_SPK, name); + + spk->attenuation = 1.0f; + spk->cone_angle_inner = 360.0f; + spk->cone_angle_outer = 360.0f; + spk->cone_volume_outer = 1.0f; + spk->distance_max = FLT_MAX; + spk->distance_reference = 1.0f; + spk->flag = 0; + spk->pitch = 1.0f; + spk->sound = NULL; + spk->volume = 1.0f; + spk->volume_max = 1.0f; + spk->volume_min = 0.0f; + + return spk; +} + +Speaker *copy_speaker(Speaker *spk) +{ + Speaker *spkn; + + spkn= copy_libblock(spk); + if(spkn->sound) + spkn->sound->id.us++; + + return spkn; +} + +void make_local_speaker(Speaker *spk) +{ + Main *bmain= G.main; + Object *ob; + int local=0, lib=0; + + /* - only lib users: do nothing + * - only local users: set flag + * - mixed: make copy + */ + + if(spk->id.lib==NULL) return; + if(spk->id.us==1) { + spk->id.lib= NULL; + spk->id.flag= LIB_LOCAL; + new_id(&bmain->speaker, (ID *)spk, NULL); + return; + } + + ob= bmain->object.first; + while(ob) { + if(ob->data==spk) { + if(ob->id.lib) lib= 1; + else local= 1; + } + ob= ob->id.next; + } + + if(local && lib==0) { + spk->id.lib= NULL; + spk->id.flag= LIB_LOCAL; + new_id(&bmain->speaker, (ID *)spk, NULL); + } + else if(local && lib) { + Speaker *spkn= copy_speaker(spk); + spkn->id.us= 0; + + ob= bmain->object.first; + while(ob) { + if(ob->data==spk) { + + if(ob->id.lib==NULL) { + ob->data= spkn; + spkn->id.us++; + spk->id.us--; + } + } + ob= ob->id.next; + } + } +} + +void free_speaker(Speaker *spk) +{ + if(spk->sound) + spk->sound->id.us--; + + BKE_free_animdata((ID *)spk); +} diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index adabfe5f230..dd63cdf5861 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1594,6 +1594,13 @@ void init_userdef_do_versions(void) NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM | NDOF_SHOULD_ROTATE; } + { + bTheme *btheme; + for(btheme= U.themes.first; btheme; btheme= btheme->next) { + btheme->tv3d.speaker[3] = 255; + } + } + /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); /* this timer uses U */ diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 97a98d2017f..22e6a5243c7 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -73,6 +73,7 @@ #include "BKE_particle.h" #include "BKE_report.h" #include "BKE_sca.h" +#include "BKE_speaker.h" #include "BKE_texture.h" #include "RNA_access.h" diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index ce1f47c1b7b..39300cabd5e 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -76,6 +76,7 @@ #include "BKE_report.h" #include "BKE_sca.h" #include "BKE_scene.h" +#include "BKE_speaker.h" #include "BKE_texture.h" #include "WM_api.h" diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 7b951294aee..e99958c2217 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -63,6 +63,7 @@ #include "BKE_particle.h" #include "BKE_font.h" #include "BKE_node.h" +#include "BKE_speaker.h" #include "DNA_armature_types.h" #include "DNA_camera_types.h" -- cgit v1.2.3 From 0578d55f1ef700b96ae8a8c33c1f8b54a200c7d9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Aug 2011 09:47:09 +0000 Subject: when appending with a NULL context dont print warnigns about scene not being set - was annoying for BGE LibLoad. --- source/blender/blenloader/intern/readfile.c | 36 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0633794c6ed..0a24dfaed72 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -13047,10 +13047,10 @@ static void append_do_cursor(Scene *scene, Library *curlib, short flag) } } +/* Context == NULL signifies not to do any scene manipulation */ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, int idcode, short flag) { Main *mainvar; - Scene *scene= CTX_data_scene(C); Library *curlib; /* make main consistent */ @@ -13079,22 +13079,28 @@ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, in lib_verify_nodetree(mainvar, FALSE); fix_relpaths_library(G.main->name, mainvar); /* make all relative paths, relative to the open blend file */ - /* give a base to loose objects. If group append, do it for objects too */ - if(scene) { - const short is_link= (flag & FILE_LINK) != 0; - if(idcode==ID_SCE) { - /* dont instance anything when linking in scenes, assume the scene its self instances the data */ - } - else { - give_base_to_objects(mainvar, scene, curlib, idcode, is_link); + if(C) { + Scene *scene= CTX_data_scene(C); - if (flag & FILE_GROUP_INSTANCE) { - give_base_to_groups(mainvar, scene); + /* give a base to loose objects. If group append, do it for objects too */ + if(scene) { + const short is_link= (flag & FILE_LINK) != 0; + if(idcode==ID_SCE) { + /* dont instance anything when linking in scenes, assume the scene its self instances the data */ + } + else { + give_base_to_objects(mainvar, scene, curlib, idcode, is_link); + + if (flag & FILE_GROUP_INSTANCE) { + give_base_to_groups(mainvar, scene); + } } } - } - else { - printf("library_append_end, scene is NULL (objects wont get bases)\n"); + else { + printf("library_append_end, scene is NULL (objects wont get bases)\n"); + } + + append_do_cursor(scene, curlib, flag); } /* has been removed... erm, why? s..ton) */ /* 20040907: looks like they are give base already in append_named_part(); -Nathan L */ @@ -13105,8 +13111,6 @@ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, in blo_freefiledata( *fd ); *fd = NULL; } - - append_do_cursor(scene, curlib, flag); } void BLO_library_append_end(const bContext *C, struct Main *mainl, BlendHandle** bh, int idcode, short flag) -- cgit v1.2.3 From 9da70f74d37c7c0001a2705afc8fe5044f63bb0a Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 4 Aug 2011 10:05:14 +0000 Subject: UserPref/Node editor feature: Change the level of noodle curving. Some people like curved lines, other hate them. This commit will let the user change the level of curving. In UserPreferences=>Themes=>Node editor=>Noodle curving the level can be modified. Allowed range is 0-10 with the default on 5 The patch will default everything to the way blender works ATM. File subversion has been increased otherwise older 258 files got straight lines. The data is stored in the ThemeSpace.noodle_curving the bezierdrawing is done in the drawnode. Also tested the Line cut tool --- source/blender/editors/include/UI_resources.h | 4 +++- source/blender/editors/interface/resources.c | 14 ++++++++++++-- source/blender/editors/space_node/drawnode.c | 4 ++-- source/blender/makesdna/DNA_userdef_types.h | 2 +- source/blender/makesrna/intern/rna_userdef.c | 7 +++++++ 5 files changed, 25 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h index 2311aafbb17..d0c2b387445 100644 --- a/source/blender/editors/include/UI_resources.h +++ b/source/blender/editors/include/UI_resources.h @@ -242,7 +242,9 @@ enum { TH_DRAWEXTRA_EDGELEN, TH_DRAWEXTRA_FACEAREA, - TH_DRAWEXTRA_FACEANG + TH_DRAWEXTRA_FACEANG, + + TH_NODE_CURVING }; /* XXX WARNING: previous is saved in file, so do not change order! */ diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 0c755180b3a..f58383830cb 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -360,7 +360,9 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo cp= ts->syntaxv; break; case TH_NODE_GROUP: cp= ts->syntaxc; break; - + case TH_NODE_CURVING: + cp= &ts->noodle_curving; break; + case TH_SEQ_MOVIE: cp= ts->movie; break; case TH_SEQ_IMAGE: @@ -787,6 +789,7 @@ void ui_theme_init_default(void) SETCOL(btheme->tnode.syntaxb, 108, 105, 111, 255); /* operator */ SETCOL(btheme->tnode.syntaxv, 104, 106, 117, 255); /* generator */ SETCOL(btheme->tnode.syntaxc, 105, 117, 110, 255); /* group */ + btheme->tnode.noodle_curving = 5; /* space logic */ btheme->tlogic= btheme->tv3d; @@ -1553,7 +1556,14 @@ void init_userdef_do_versions(void) /* clear "AUTOKEY_FLAG_ONLYKEYINGSET" flag from userprefs, so that it doesn't linger around from old configs like a ghost */ U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET; } - + + if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 2)) { + bTheme *btheme; + for(btheme= U.themes.first; btheme; btheme= btheme->next) { + btheme->tnode.noodle_curving = 5; + } + } + /* GL Texture Garbage Collection (variable abused above!) */ if (U.textimeout == 0) { U.texcollectrate = 60; diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 50e657bbb61..c32d05e9c30 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1768,8 +1768,8 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa vec[3][0]= snode->mx; vec[3][1]= snode->my; } - - dist= 0.5f*ABS(vec[0][0] - vec[3][0]); + + dist= UI_GetThemeValue(TH_NODE_CURVING)*0.10f*ABS(vec[0][0] - vec[3][0]); /* check direction later, for top sockets */ vec[1][0]= vec[0][0]+dist; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 0bf812f1ec2..aa6da3aaeca 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -220,7 +220,7 @@ typedef struct ThemeSpace { char console_cursor[4]; char vertex_size, outline_width, facedot_size; - char bpad; + char noodle_curving; char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes char syntaxv[4], syntaxc[4]; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 7a9193571fd..a1a99c34e70 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1351,6 +1351,13 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna) RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Group Node", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "noodle_curving", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "noodle_curving"); + RNA_def_property_int_default(prop, 5); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Noodle curving", "Curving of the noodle"); + RNA_def_property_update(prop, 0, "rna_userdef_update"); } static void rna_def_userdef_theme_space_logic(BlenderRNA *brna) -- cgit v1.2.3 From cdea64e32cbe1a8b9c9312b04cf15b0ac3daf685 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Aug 2011 11:27:13 +0000 Subject: remove append to cursor code, wasnt used and made some naive assumptions about object locations. --- source/blender/blenloader/intern/readfile.c | 49 ----------------------------- source/blender/makesdna/DNA_space_types.h | 2 +- 2 files changed, 1 insertion(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0a24dfaed72..d60ac492f97 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -12999,53 +12999,6 @@ Main* BLO_library_append_begin(const bContext *C, BlendHandle** bh, const char * return library_append_begin(C, &fd, filepath); } -static void append_do_cursor(Scene *scene, Library *curlib, short flag) -{ - Base *centerbase; - Object *ob; - float *curs, centerloc[3], vec[3], min[3], max[3]; - int count= 0; - - /* when not linking (appending)... */ - if(flag & FILE_LINK) - return; - - /* we're not appending at cursor */ - if((flag & FILE_ATCURSOR) == 0) - return; - - /* find the center of everything appended */ - INIT_MINMAX(min, max); - centerbase= (scene->base.first); - while(centerbase) { - if(centerbase->object->id.lib==curlib && centerbase->object->parent==NULL) { - VECCOPY(vec, centerbase->object->loc); - DO_MINMAX(vec, min, max); - count++; - } - centerbase= centerbase->next; - } - /* we haven't found any objects to move to cursor */ - if(!count) - return; - - /* move from the center of the appended objects to cursor */ - mid_v3_v3v3(centerloc, min, max); - curs = scene->cursor; - VECSUB(centerloc,curs,centerloc); - - /* now translate the center of the objects */ - centerbase= (scene->base.first); - while(centerbase) { - if(centerbase->object->id.lib==curlib && centerbase->object->parent==NULL) { - ob= centerbase->object; - ob->loc[0] += centerloc[0]; - ob->loc[1] += centerloc[1]; - ob->loc[2] += centerloc[2]; - } - centerbase= centerbase->next; - } -} /* Context == NULL signifies not to do any scene manipulation */ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, int idcode, short flag) @@ -13099,8 +13052,6 @@ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, in else { printf("library_append_end, scene is NULL (objects wont get bases)\n"); } - - append_do_cursor(scene, curlib, flag); } /* has been removed... erm, why? s..ton) */ /* 20040907: looks like they are give base already in append_named_part(); -Nathan L */ diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index ff9f2269f53..1549bd71748 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -703,7 +703,7 @@ enum FileSortTypeE { #define FILE_HIDE_DOT (1<<3) #define FILE_AUTOSELECT (1<<4) #define FILE_ACTIVELAY (1<<5) -#define FILE_ATCURSOR (1<<6) +/* #define FILE_ATCURSOR (1<<6) */ /* deprecated */ #define FILE_DIRSEL_ONLY (1<<7) #define FILE_FILTER (1<<8) #define FILE_BOOKMARKS (1<<9) -- cgit v1.2.3 From 26fe903502368f1a255f44bbc75e308e08a5d659 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 4 Aug 2011 12:19:50 +0000 Subject: Typo when reading line curving. The subversion is 1, so smaller than 1 should be converted --- source/blender/editors/interface/resources.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index f58383830cb..32e87b3a793 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1557,7 +1557,7 @@ void init_userdef_do_versions(void) U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET; } - if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 2)) { + if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) { bTheme *btheme; for(btheme= U.themes.first; btheme; btheme= btheme->next) { btheme->tnode.noodle_curving = 5; -- cgit v1.2.3 From 36bf4385c2c2a1d3f462d30138b6815287d8e548 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Aug 2011 13:22:38 +0000 Subject: fix for building with clang. makesrna wasnt linking with sqrt --- source/blender/makesrna/intern/rna_object_api.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 21fa28af01a..d48f1c93da8 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -45,9 +45,9 @@ // #include "ED_mesh.h" -#include "BLI_math.h" #ifdef RNA_RUNTIME +#include "BLI_math.h" #include "BKE_main.h" #include "BKE_global.h" @@ -544,7 +544,8 @@ void RNA_api_object(StructRNA *srna) /* location of point for test and max distance */ parm= RNA_def_float_vector(func, "point", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_float(func, "max_dist", sqrt(FLT_MAX), 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); + /* default is sqrt(FLT_MAX) */ + RNA_def_float(func, "max_dist", 1.844674352395373e+19, 0.0, FLT_MAX, "", "", 0.0, FLT_MAX); /* return location and normal */ parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The location on the object closest to the point", -1e4, 1e4); -- cgit v1.2.3 From 2ed11158db7cfc157c26475a2dcb5f513043cd72 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 4 Aug 2011 14:06:30 +0000 Subject: Bugfix: Setting of new default settings for new Graph Editors was done in wrong place, leading to loss of settings everytime the view changed (i.e. after open/saving) --- source/blender/editors/space_graph/space_graph.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index fea9e5d71e8..3cc83b12124 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -110,6 +110,10 @@ static SpaceLink *graph_new(const bContext *C) sipo->ads= MEM_callocN(sizeof(bDopeSheet), "GraphEdit DopeSheet"); sipo->ads->source= (ID *)scene; + /* settings for making it easier by default to just see what you're interested in tweaking */ + sipo->ads->filterflag |= ADS_FILTER_ONLYSEL; + sipo->flag |= SIPO_SELVHANDLESONLY; + /* header */ ar= MEM_callocN(sizeof(ARegion), "header for graphedit"); @@ -187,10 +191,6 @@ static void graph_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa) sipo->ads->source= (ID *)(G.main->scene.first); // FIXME: this is a really nasty hack here for now... } - /* settings for making it easier by default to just see what you're interested in tweaking */ - sipo->ads->filterflag |= ADS_FILTER_ONLYSEL; - sipo->flag |= SIPO_SELVHANDLESONLY; - ED_area_tag_refresh(sa); } -- cgit v1.2.3 From 900928f8bf47b8f1bbb1b2cd863d2d9649c940a0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 4 Aug 2011 14:13:05 +0000 Subject: Bassam Feature Request: "Auto Clamped" handles can now be set per handle/key This used to be a weird per-curve setting which would happen to get applied/work correctly if handles were set to "auto", and was a source of constant confusion for both old and new animators. The main effect of this handle-type/option was really to just ensure that auto-handles stayed horizontal, instead of tilting as the keys were moved. This commit simply changes this from a per-curve to per keyframe/handle setting. --- source/blender/blenkernel/intern/curve.c | 10 ++--- source/blender/blenkernel/intern/fcurve.c | 11 ++---- source/blender/blenkernel/intern/ipo.c | 13 ++++++- source/blender/blenkernel/intern/nla.c | 4 +- source/blender/blenloader/intern/readfile.c | 32 ++++++++++++++++ source/blender/editors/animation/drivers.c | 6 +-- source/blender/editors/animation/keyframes_edit.c | 46 ++++++++++++++--------- source/blender/editors/animation/keyframing.c | 2 +- source/blender/editors/include/UI_resources.h | 2 + source/blender/editors/interface/resources.c | 23 +++++++++++- source/blender/editors/space_action/action_edit.c | 19 +--------- source/blender/editors/space_graph/graph_edit.c | 19 +--------- source/blender/makesdna/DNA_anim_types.h | 2 + source/blender/makesdna/DNA_curve_types.h | 2 +- source/blender/makesdna/DNA_userdef_types.h | 7 +++- source/blender/makesrna/RNA_enum_types.h | 1 + source/blender/makesrna/intern/rna_curve.c | 8 ++++ source/blender/makesrna/intern/rna_fcurve.c | 9 +---- source/blender/makesrna/intern/rna_userdef.c | 17 ++++++++- 19 files changed, 147 insertions(+), 86 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index eb364af6ff8..2f1a85c57b3 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -2473,7 +2473,7 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) if(len2==0.0f) len2=1.0f; - if(bezt->h1==HD_AUTO || bezt->h2==HD_AUTO) { /* auto */ + if(ELEM(bezt->h1,HD_AUTO,HD_AUTO_ANIM) || ELEM(bezt->h2,HD_AUTO,HD_AUTO_ANIM)) { /* auto */ vx= dx1/len2 + dx/len1; vy= dy1/len2 + dy/len1; vz= dz1/len2 + dz/len1; @@ -2484,13 +2484,13 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) if(len1>5.0f*len2) len1= 5.0f*len2; if(len2>5.0f*len1) len2= 5.0f*len1; - if(bezt->h1==HD_AUTO) { + if(ELEM(bezt->h1,HD_AUTO,HD_AUTO_ANIM)) { len1/=len; *(p2-3)= *p2-vx*len1; *(p2-2)= *(p2+1)-vy*len1; *(p2-1)= *(p2+2)-vz*len1; - if(mode==2 && next && prev) { // keep horizontal if extrema + if((bezt->h1==HD_AUTO_ANIM) && next && prev) { // keep horizontal if extrema float ydiff1= prev->vec[1][1] - bezt->vec[1][1]; float ydiff2= next->vec[1][1] - bezt->vec[1][1]; if( (ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f) ) { @@ -2512,13 +2512,13 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) } } } - if(bezt->h2==HD_AUTO) { + if(ELEM(bezt->h2,HD_AUTO,HD_AUTO_ANIM)) { len2/=len; *(p2+3)= *p2+vx*len2; *(p2+4)= *(p2+1)+vy*len2; *(p2+5)= *(p2+2)+vz*len2; - if(mode==2 && next && prev) { // keep horizontal if extrema + if((bezt->h2==HD_AUTO_ANIM) && next && prev) { // keep horizontal if extrema float ydiff1= prev->vec[1][1] - bezt->vec[1][1]; float ydiff2= next->vec[1][1] - bezt->vec[1][1]; if( (ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f) ) { diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index aa8f817ae3c..28f17b3cf86 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -792,13 +792,10 @@ void calchandles_fcurve (FCurve *fcu) if (bezt->vec[2][0] < bezt->vec[1][0]) bezt->vec[2][0]= bezt->vec[1][0]; /* calculate auto-handles */ - if (fcu->flag & FCURVE_AUTO_HANDLES) - calchandleNurb(bezt, prev, next, 2); /* 2==special autohandle && keep extrema horizontal */ - else - calchandleNurb(bezt, prev, next, 1); /* 1==special autohandle */ + calchandleNurb(bezt, prev, next, 1); /* 1==special autohandle */ /* for automatic ease in and out */ - if ((bezt->h1==HD_AUTO) && (bezt->h2==HD_AUTO)) { + if (ELEM(bezt->h1,HD_AUTO,HD_AUTO_ANIM) && ELEM(bezt->h2,HD_AUTO,HD_AUTO_ANIM)) { /* only do this on first or last beztriple */ if ((a == 0) || (a == fcu->totvert-1)) { /* set both handles to have same horizontal value as keyframe */ @@ -846,9 +843,9 @@ void testhandles_fcurve (FCurve *fcu) /* one or two handles selected only */ if (ELEM(flag, 0, 7)==0) { /* auto handles become aligned */ - if (bezt->h1==HD_AUTO) + if (ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM)) bezt->h1= HD_ALIGN; - if (bezt->h2==HD_AUTO) + if (ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM)) bezt->h2= HD_ALIGN; /* vector handles become 'free' when only one half selected */ diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 104ce2b3b32..d41a3a36b2d 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -1157,7 +1157,6 @@ static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve * if (icu->flag & IPO_ACTIVE) fcu->flag |= FCURVE_ACTIVE; if (icu->flag & IPO_MUTE) fcu->flag |= FCURVE_MUTED; if (icu->flag & IPO_PROTECT) fcu->flag |= FCURVE_PROTECTED; - if (icu->flag & IPO_AUTO_HORIZ) fcu->flag |= FCURVE_AUTO_HANDLES; /* set extrapolation */ switch (icu->extrap) { @@ -1242,6 +1241,12 @@ static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve * /* 'hide' flag is now used for keytype - only 'keyframes' existed before */ dst->hide= BEZT_KEYTYPE_KEYFRAME; + /* auto-handles - per curve to per handle */ + if (icu->flag & IPO_AUTO_HORIZ) { + if (dst->h1 == HD_AUTO) dst->h1 = HD_AUTO_ANIM; + if (dst->h2 == HD_AUTO) dst->h2 = HD_AUTO_ANIM; + } + /* correct values, by checking if the flag of interest is set */ if ( ((int)(dst->vec[1][1])) & (abp->bit) ) dst->vec[0][1]= dst->vec[1][1]= dst->vec[2][1] = 1.0f; @@ -1292,6 +1297,12 @@ static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve * /* 'hide' flag is now used for keytype - only 'keyframes' existed before */ dst->hide= BEZT_KEYTYPE_KEYFRAME; + + /* auto-handles - per curve to per handle */ + if (icu->flag & IPO_AUTO_HORIZ) { + if (dst->h1 == HD_AUTO) dst->h1 = HD_AUTO_ANIM; + if (dst->h2 == HD_AUTO) dst->h2 = HD_AUTO_ANIM; + } /* correct values for euler rotation curves * - they were degrees/10 diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 8391e9f6ab1..f2ce8e4e6f1 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1185,7 +1185,7 @@ void BKE_nlastrip_validate_fcurves (NlaStrip *strip) BLI_addtail(&strip->fcurves, fcu); /* set default flags */ - fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED); /* store path - make copy, and store that */ fcu->rna_path= BLI_strdupn("influence", 9); @@ -1206,7 +1206,7 @@ void BKE_nlastrip_validate_fcurves (NlaStrip *strip) BLI_addtail(&strip->fcurves, fcu); /* set default flags */ - fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED); /* store path - make copy, and store that */ fcu->rna_path= BLI_strdupn("strip_time", 10); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1737b44a56f..435ae62123a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11799,6 +11799,38 @@ static void do_versions(FileData *fd, Library *lib, Main *main) SEQ_END } } + { + /* Make "auto-clamped" handles a per-keyframe setting instead of per-FCurve + * + * We're only patching F-Curves in Actions here, since it is assumed that most + * drivers out there won't be using this (and if they are, they're in the minority). + * While we should aim to fix everything ideally, in practice it's far too hard + * to get to every animdata block, not to mention the performance hit that'd have + */ + bAction *act; + FCurve *fcu; + + for (act = main->action.first; act; act = act->id.next) { + for (fcu = act->curves.first; fcu; fcu = fcu->next) { + BezTriple *bezt; + unsigned int i = 0; + + /* only need to touch curves that had this flag set */ + if ((fcu->flag & FCURVE_AUTO_HANDLES) == 0) + continue; + if ((fcu->totvert == 0) || (fcu->bezt == NULL)) + continue; + + /* only change auto-handles to auto-clamped */ + for (bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) { + if (bezt->h1 == HD_AUTO) bezt->h1 = HD_AUTO_ANIM; + if (bezt->h2 == HD_AUTO) bezt->h2 = HD_AUTO_ANIM; + } + + fcu->flag &= ~FCURVE_AUTO_HANDLES; + } + } + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index c9e422baa3e..3df65a942da 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -108,7 +108,7 @@ FCurve *verify_driver_fcurve (ID *id, const char rna_path[], const int array_ind /* use default settings to make a F-Curve */ fcu= MEM_callocN(sizeof(FCurve), "FCurve"); - fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED); /* store path - make copy, and store that */ fcu->rna_path= BLI_strdupn(rna_path, strlen(rna_path)); @@ -386,10 +386,6 @@ short ANIM_paste_driver (ReportList *reports, ID *id, const char rna_path[], int copy_fmodifiers(&fcu->modifiers, &channeldriver_copypaste_buf->modifiers); /* flags - on a per-relevant-flag basis */ - if (channeldriver_copypaste_buf->flag & FCURVE_AUTO_HANDLES) - fcu->flag |= FCURVE_AUTO_HANDLES; - else - fcu->flag &= ~FCURVE_AUTO_HANDLES; /* extrapolation mode */ fcu->extend= channeldriver_copypaste_buf->extend; diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index 9f3d40a5709..ae9107ebe5a 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -756,20 +756,37 @@ KeyframeEditFunc ANIM_editkeyframes_mirror(short type) /* ******************************************* */ /* Settings */ +/* standard validation step for a few of these (implemented as macro for inlining without fn-call overhead): + * "if the handles are not of the same type, set them to type free" + */ +#define ENSURE_HANDLES_MATCH(bezt) \ + if (bezt->h1 != bezt->h2) { \ + if ELEM3(bezt->h1, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM) bezt->h1= HD_FREE; \ + if ELEM3(bezt->h2, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM) bezt->h2= HD_FREE; \ + } + /* Sets the selected bezier handles to type 'auto' */ static short set_bezier_auto(KeyframeEditData *UNUSED(ked), BezTriple *bezt) { - if((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) { - if (bezt->f1 & SELECT) bezt->h1= HD_AUTO; /* the secret code for auto */ + if ((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) { + if (bezt->f1 & SELECT) bezt->h1= HD_AUTO; if (bezt->f3 & SELECT) bezt->h2= HD_AUTO; - /* if the handles are not of the same type, set them - * to type free - */ - if (bezt->h1 != bezt->h2) { - if ELEM(bezt->h1, HD_ALIGN, HD_AUTO) bezt->h1= HD_FREE; - if ELEM(bezt->h2, HD_ALIGN, HD_AUTO) bezt->h2= HD_FREE; - } + ENSURE_HANDLES_MATCH(bezt); + } + return 0; +} + +/* Sets the selected bezier handles to type 'auto-clamped' + * NOTE: this is like auto above, but they're handled a bit different + */ +static short set_bezier_auto_clamped(KeyframeEditData *UNUSED(ked), BezTriple *bezt) +{ + if ((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) { + if (bezt->f1 & SELECT) bezt->h1= HD_AUTO_ANIM; + if (bezt->f3 & SELECT) bezt->h2= HD_AUTO_ANIM; + + ENSURE_HANDLES_MATCH(bezt); } return 0; } @@ -781,13 +798,7 @@ static short set_bezier_vector(KeyframeEditData *UNUSED(ked), BezTriple *bezt) if (bezt->f1 & SELECT) bezt->h1= HD_VECT; if (bezt->f3 & SELECT) bezt->h2= HD_VECT; - /* if the handles are not of the same type, set them - * to type free - */ - if (bezt->h1 != bezt->h2) { - if ELEM(bezt->h1, HD_ALIGN, HD_AUTO) bezt->h1= HD_FREE; - if ELEM(bezt->h2, HD_ALIGN, HD_AUTO) bezt->h2= HD_FREE; - } + ENSURE_HANDLES_MATCH(bezt); } return 0; } @@ -824,8 +835,9 @@ KeyframeEditFunc ANIM_editkeyframes_handles(short code) { switch (code) { case HD_AUTO: /* auto */ - case HD_AUTO_ANIM: /* auto clamped */ return set_bezier_auto; + case HD_AUTO_ANIM: /* auto clamped */ + return set_bezier_auto_clamped; case HD_VECT: /* vector */ return set_bezier_vector; diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 109da669ce6..fbedb466f7e 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -174,7 +174,7 @@ FCurve *verify_fcurve (bAction *act, const char group[], const char rna_path[], /* use default settings to make a F-Curve */ fcu= MEM_callocN(sizeof(FCurve), "FCurve"); - fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED); if (act->curves.first==NULL) fcu->flag |= FCURVE_ACTIVE; /* first one added active */ diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h index 2bc2aac165f..ff9a1f539a1 100644 --- a/source/blender/editors/include/UI_resources.h +++ b/source/blender/editors/include/UI_resources.h @@ -183,10 +183,12 @@ enum { TH_HANDLE_AUTO, TH_HANDLE_VECT, TH_HANDLE_ALIGN, + TH_HANDLE_AUTOCLAMP, TH_HANDLE_SEL_FREE, TH_HANDLE_SEL_AUTO, TH_HANDLE_SEL_VECT, TH_HANDLE_SEL_ALIGN, + TH_HANDLE_SEL_AUTOCLAMP, TH_ACTIVE_SPLINE, TH_LASTSEL_POINT, diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index dd63cdf5861..00c92b85ee7 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -328,6 +328,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo cp= ts->handle_free; break; case TH_HANDLE_AUTO: cp= ts->handle_auto; break; + case TH_HANDLE_AUTOCLAMP: + cp= ts->handle_auto_clamped; break; case TH_HANDLE_VECT: cp= ts->handle_vect; break; case TH_HANDLE_ALIGN: @@ -336,11 +338,13 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo cp= ts->handle_sel_free; break; case TH_HANDLE_SEL_AUTO: cp= ts->handle_sel_auto; break; + case TH_HANDLE_SEL_AUTOCLAMP: + cp= ts->handle_sel_auto_clamped; break; case TH_HANDLE_SEL_VECT: cp= ts->handle_sel_vect; break; case TH_HANDLE_SEL_ALIGN: cp= ts->handle_sel_align; break; - + case TH_SYNTAX_B: cp= ts->syntaxb; break; case TH_SYNTAX_V: @@ -667,6 +671,8 @@ void ui_theme_init_default(void) SETCOL(btheme->tipo.handle_vertex, 0, 0, 0, 255); SETCOL(btheme->tipo.handle_vertex_select, 255, 133, 0, 255); + SETCOL(btheme->tipo.handle_auto_clamped, 0x99, 0x40, 0x30, 255); + SETCOL(btheme->tipo.handle_sel_auto_clamped, 0xf0, 0xaf, 0x90, 255); btheme->tipo.handle_vertex_size= 4; SETCOL(btheme->tipo.ds_channel, 82, 96, 110, 255); @@ -1557,6 +1563,21 @@ void init_userdef_do_versions(void) U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET; } + if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) { + bTheme *btheme; + + /* if new keyframes handle default is stuff "auto", make it "auto-clamped" instead */ + if (U.keyhandles_new == HD_AUTO) + U.keyhandles_new = HD_AUTO_ANIM; + + /* theme color additions */ + for (btheme= U.themes.first; btheme; btheme= btheme->next) { + /* auto-clamped handles -> based on auto */ + SETCOL(btheme->tipo.handle_auto_clamped, 0x99, 0x40, 0x30, 255); + SETCOL(btheme->tipo.handle_sel_auto_clamped, 0xf0, 0xaf, 0x90, 255); + } + } + /* GL Texture Garbage Collection (variable abused above!) */ if (U.textimeout == 0) { U.texcollectrate = 60; diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 40d73a59a42..5276e62b9eb 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -1103,17 +1103,6 @@ void ACTION_OT_interpolation_type (wmOperatorType *ot) /* ******************** Set Handle-Type Operator *********************** */ -static EnumPropertyItem actkeys_handle_type_items[] = { - {HD_FREE, "FREE", 0, "Free", ""}, - {HD_VECT, "VECTOR", 0, "Vector", ""}, - {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, - {0, "", 0, "", ""}, - {HD_AUTO, "AUTO", 0, "Auto", "Handles that are automatically adjusted upon moving the keyframe"}, - {HD_AUTO_ANIM, "ANIM_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"}, - {0, NULL, 0, NULL, NULL}}; - -/* ------------------- */ - /* this function is responsible for setting handle-type of selected keyframes */ static void sethandles_action_keys(bAnimContext *ac, short mode) { @@ -1136,12 +1125,6 @@ static void sethandles_action_keys(bAnimContext *ac, short mode) /* any selected keyframes for editing? */ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL)) { - /* for auto/auto-clamped, toggle the auto-handles flag on the F-Curve */ - if (mode == HD_AUTO_ANIM) - fcu->flag |= FCURVE_AUTO_HANDLES; - else if (mode == HD_AUTO) - fcu->flag &= ~FCURVE_AUTO_HANDLES; - /* change type of selected handles */ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve); } @@ -1195,7 +1178,7 @@ void ACTION_OT_handle_type (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* id-props */ - ot->prop= RNA_def_enum(ot->srna, "type", actkeys_handle_type_items, 0, "Type", ""); + ot->prop= RNA_def_enum(ot->srna, "type", keyframe_handle_type_items, 0, "Type", ""); } /* ******************** Set Keyframe-Type Operator *********************** */ diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index d88a18ffcbc..900aa6f6197 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -1447,8 +1447,6 @@ void GRAPH_OT_interpolation_type (wmOperatorType *ot) /* ******************** Set Handle-Type Operator *********************** */ -/* ------------------- */ - /* this function is responsible for setting handle-type of selected keyframes */ static void sethandles_graph_keys(bAnimContext *ac, short mode) { @@ -1471,12 +1469,6 @@ static void sethandles_graph_keys(bAnimContext *ac, short mode) /* any selected keyframes for editing? */ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL)) { - /* for auto/auto-clamped, toggle the auto-handles flag on the F-Curve */ - if (mode == HD_AUTO_ANIM) - fcu->flag |= FCURVE_AUTO_HANDLES; - else if (mode == HD_AUTO) - fcu->flag &= ~FCURVE_AUTO_HANDLES; - /* change type of selected handles */ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve); } @@ -1513,15 +1505,6 @@ static int graphkeys_handletype_exec(bContext *C, wmOperator *op) void GRAPH_OT_handle_type (wmOperatorType *ot) { - /* sync with editcurve_handle_type_items */ - static EnumPropertyItem graphkeys_handle_type_items[] = { - {HD_AUTO, "AUTO", 0, "Automatic", "Handles that are automatically adjusted upon moving the keyframe. Whole curve"}, - {HD_VECT, "VECTOR", 0, "Vector", ""}, - {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, - {HD_FREE, "FREE_ALIGN", 0, "Free", ""}, - {HD_AUTO_ANIM, "ANIM_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot. Whole curve"}, - {0, NULL, 0, NULL, NULL}}; - /* identifiers */ ot->name= "Set Keyframe Handle Type"; ot->idname= "GRAPH_OT_handle_type"; @@ -1536,7 +1519,7 @@ static int graphkeys_handletype_exec(bContext *C, wmOperator *op) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* id-props */ - ot->prop= RNA_def_enum(ot->srna, "type", graphkeys_handle_type_items, 0, "Type", ""); + ot->prop= RNA_def_enum(ot->srna, "type", keyframe_handle_type_items, 0, "Type", ""); } /* ************************************************************************** */ diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 00a9786fc6f..374799ecf08 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -473,7 +473,9 @@ typedef enum eFCurve_Flags { FCURVE_PROTECTED = (1<<3), /* fcurve will not be evaluated for the next round */ FCURVE_MUTED = (1<<4), + /* fcurve uses 'auto-handles', which stay horizontal... */ + // DEPRECATED FCURVE_AUTO_HANDLES = (1<<5), /* skip evaluation, as RNA-path cannot be resolved (similar to muting, but cannot be set by user) */ diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h index b51612037fc..a38b33e6640 100644 --- a/source/blender/makesdna/DNA_curve_types.h +++ b/source/blender/makesdna/DNA_curve_types.h @@ -314,7 +314,7 @@ typedef enum eBezTriple_Handle { HD_AUTO, HD_VECT, HD_ALIGN, - HD_AUTO_ANIM /* not real handle type, but is just used as dummy item for anim code */ + HD_AUTO_ANIM /* auto-clamped handles for animation */ } eBezTriple_Handle; /* interpolation modes (used only for BezTriple->ipo) */ diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 85a64e02ddb..e5558c1738b 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -210,10 +210,13 @@ typedef struct ThemeSpace { char bone_solid[4], bone_pose[4]; char strip[4], strip_select[4]; char cframe[4]; + char nurb_uline[4], nurb_vline[4]; char act_spline[4], nurb_sel_uline[4], nurb_sel_vline[4], lastsel_point[4]; - char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4]; - char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4]; + + char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4], handle_auto_clamped[4]; + char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4]; + char ds_channel[4], ds_subchannel[4]; // dopesheet char console_output[4], console_input[4], console_info[4], console_error[4]; diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index 56eb20f01b2..d09d1359ce8 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -58,6 +58,7 @@ extern EnumPropertyItem image_type_items[]; extern EnumPropertyItem beztriple_keyframe_type_items[]; extern EnumPropertyItem beztriple_handle_type_items[]; extern EnumPropertyItem beztriple_interpolation_mode_items[]; +extern EnumPropertyItem keyframe_handle_type_items[]; extern EnumPropertyItem keyingset_path_grouping_items[]; diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 260d483b9d2..4e7fceed7e1 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -51,6 +51,14 @@ EnumPropertyItem beztriple_handle_type_items[] = { {HD_VECT, "VECTOR", 0, "Vector", ""}, {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem keyframe_handle_type_items[] = { + {HD_FREE, "FREE", 0, "Free", ""}, + {HD_AUTO, "AUTO", 0, "Auto", ""}, + {HD_AUTO_ANIM, "AUTO_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"}, + {HD_VECT, "VECTOR", 0, "Vector", ""}, + {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, + {0, NULL, 0, NULL, NULL}}; EnumPropertyItem beztriple_interpolation_mode_items[] = { {BEZT_IPO_CONST, "CONSTANT", 0, "Constant", ""}, diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index cd85e100521..2f37a6921d1 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1336,13 +1336,13 @@ static void rna_def_fkeyframe(BlenderRNA *brna) /* Enums */ prop= RNA_def_property(srna, "handle_left_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "h1"); - RNA_def_property_enum_items(prop, beztriple_handle_type_items); + RNA_def_property_enum_items(prop, keyframe_handle_type_items); RNA_def_property_ui_text(prop, "Left Handle Type", "Handle types"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); prop= RNA_def_property(srna, "handle_right_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "h2"); - RNA_def_property_enum_items(prop, beztriple_handle_type_items); + RNA_def_property_enum_items(prop, keyframe_handle_type_items); RNA_def_property_ui_text(prop, "Right Handle Type", "Handle types"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); @@ -1541,11 +1541,6 @@ static void rna_def_fcurve(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Muted", "F-Curve is not evaluated"); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL); - prop= RNA_def_property(srna, "use_auto_handle_clamp", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", FCURVE_AUTO_HANDLES); - RNA_def_property_ui_text(prop, "Auto Clamped Handles", "All auto-handles for F-Curve are clamped"); - RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_PROP, NULL); - prop= RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", FCURVE_VISIBLE); RNA_def_property_ui_text(prop, "Hide", "F-Curve and its keyframes are hidden in the Graph Editor graphs"); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 64cd7dc646f..7cafc39d0ff 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -878,6 +878,21 @@ static void rna_def_userdef_theme_spaces_curves(StructRNA *srna, short incl_nurb RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Align handle selected color", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); + + if (incl_nurbs == 0) { + /* assume that when nurbs are off, this is for 2D (i.e. anim) editors */ + prop= RNA_def_property(srna, "handle_auto_clamped", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_float_sdna(prop, NULL, "handle_auto_clamped"); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Auto-Clamped handle color", ""); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "handle_sel_auto_clamped", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_float_sdna(prop, NULL, "handle_sel_auto_clamped"); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Auto-Clamped handle selected color", ""); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + } prop= RNA_def_property(srna, "lastsel_point", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "lastsel_point"); @@ -2254,7 +2269,7 @@ static void rna_def_userdef_edit(BlenderRNA *brna) RNA_def_property_ui_text(prop, "New Interpolation Type", ""); prop= RNA_def_property(srna, "keyframe_new_handle_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, beztriple_handle_type_items); + RNA_def_property_enum_items(prop, keyframe_handle_type_items); RNA_def_property_enum_sdna(prop, NULL, "keyhandles_new"); RNA_def_property_ui_text(prop, "New Handles Type", ""); -- cgit v1.2.3 From e9bd246e3bb71403690364ffb4b58d2cdd7e3998 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 4 Aug 2011 14:19:35 +0000 Subject: Clarifying tooltips on userpref keyframing options These probably still need a good review (based on discussions I've had with animators), but this should be a good stop-gap measure in the mean time --- source/blender/makesrna/intern/rna_userdef.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 7cafc39d0ff..879ff3f3090 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2238,13 +2238,13 @@ static void rna_def_userdef_edit(BlenderRNA *brna) /* auto keyframing */ prop= RNA_def_property(srna, "use_auto_keying", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "autokey_mode", AUTOKEY_ON); - RNA_def_property_ui_text(prop, "Auto Keying Enable", "Automatic keyframe insertion for Objects and Bones"); + RNA_def_property_ui_text(prop, "Auto Keying Enable", "Automatic keyframe insertion for Objects and Bones (default setting used for new Scenes)"); RNA_def_property_ui_icon(prop, ICON_REC, 0); prop= RNA_def_property(srna, "auto_keying_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, auto_key_modes); RNA_def_property_enum_funcs(prop, "rna_userdef_autokeymode_get", "rna_userdef_autokeymode_set", NULL); - RNA_def_property_ui_text(prop, "Auto Keying Mode", "Mode of automatic keyframe insertion for Objects and Bones"); + RNA_def_property_ui_text(prop, "Auto Keying Mode", "Mode of automatic keyframe insertion for Objects and Bones (default setting used for new Scenes)"); prop= RNA_def_property(srna, "use_keyframe_insert_available", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_INSERTAVAIL); @@ -2266,12 +2266,12 @@ static void rna_def_userdef_edit(BlenderRNA *brna) prop= RNA_def_property(srna, "keyframe_new_interpolation_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, beztriple_interpolation_mode_items); RNA_def_property_enum_sdna(prop, NULL, "ipo_new"); - RNA_def_property_ui_text(prop, "New Interpolation Type", ""); + RNA_def_property_ui_text(prop, "New Interpolation Type", "Interpolation mode used for first keyframe on newly added F-Curves. Subsequent keyframes take interpolation from preceeding keyframe"); prop= RNA_def_property(srna, "keyframe_new_handle_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, keyframe_handle_type_items); RNA_def_property_enum_sdna(prop, NULL, "keyhandles_new"); - RNA_def_property_ui_text(prop, "New Handles Type", ""); + RNA_def_property_ui_text(prop, "New Handles Type", "Handle type for handles of new keyframes"); /* frame numbers */ prop= RNA_def_property(srna, "use_negative_frames", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From 74b94dcdf64000c7d681530bf8c833196c58f17d Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Fri, 5 Aug 2011 01:21:08 +0000 Subject: BGE Animations: Moving the do_versions code for the actuators back into the "put compatibility code here until next subversion bump" block. It got sucked into the 2.58.1 block during a merge sometime. --- source/blender/blenloader/intern/readfile.c | 77 ++++++++++++++--------------- 1 file changed, 38 insertions(+), 39 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 435ae62123a..e22f5dcb3de 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11733,45 +11733,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } - - { - /* convert fcurve and shape action actuators to action actuators */ - Object *ob; - bActuator *act; - bIpoActuator *ia; - bActionActuator *aa; - - for (ob= main->object.first; ob; ob= ob->id.next) { - for (act= ob->actuators.first; act; act= act->next) { - if (act->type == ACT_IPO) { - // Create the new actuator - ia= act->data; - aa= MEM_callocN(sizeof(bActionActuator), "fcurve -> action actuator do_version"); - - // Copy values - aa->type = ia->type; - aa->flag = ia->flag; - aa->sta = ia->sta; - aa->end = ia->end; - strcpy(aa->name, ia->name); - strcpy(aa->frameProp, ia->frameProp); - if (ob->adt) - aa->act = ob->adt->action; - - // Get rid of the old actuator - MEM_freeN(ia); - - // Assign the new actuator - act->data = aa; - act->type= act->otype= ACT_ACTION; - - } - else if (act->type == ACT_SHAPEACTION) { - act->type = act->otype = ACT_ACTION; - } - } - } - } { ParticleSettings *part; @@ -11831,6 +11792,44 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + { + /* convert fcurve and shape action actuators to action actuators */ + Object *ob; + bActuator *act; + bIpoActuator *ia; + bActionActuator *aa; + + for (ob= main->object.first; ob; ob= ob->id.next) { + for (act= ob->actuators.first; act; act= act->next) { + if (act->type == ACT_IPO) { + // Create the new actuator + ia= act->data; + aa= MEM_callocN(sizeof(bActionActuator), "fcurve -> action actuator do_version"); + + // Copy values + aa->type = ia->type; + aa->flag = ia->flag; + aa->sta = ia->sta; + aa->end = ia->end; + strcpy(aa->name, ia->name); + strcpy(aa->frameProp, ia->frameProp); + if (ob->adt) + aa->act = ob->adt->action; + + // Get rid of the old actuator + MEM_freeN(ia); + + // Assign the new actuator + act->data = aa; + act->type= act->otype= ACT_ACTION; + + } + else if (act->type == ACT_SHAPEACTION) { + act->type = act->otype = ACT_ACTION; + } + } + } + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ -- cgit v1.2.3 From f77af0a8cef8e7be6245c6f4c52dd05f6c7a387f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 05:26:19 +0000 Subject: change BLO_library_append_begin to take a main argument rather then a context, means the BGE doesnt need to make a new empty context just to pass as an arg. added doxygen description too. this quiets the print when the BGE does linking. --- source/blender/blenloader/BLO_readfile.h | 16 ++++++++++------ source/blender/blenloader/intern/readfile.c | 7 +++---- source/blender/python/intern/bpy_library.c | 3 ++- source/blender/windowmanager/intern/wm_operators.c | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/BLO_readfile.h b/source/blender/blenloader/BLO_readfile.h index 85d4b936c51..47931477728 100644 --- a/source/blender/blenloader/BLO_readfile.h +++ b/source/blender/blenloader/BLO_readfile.h @@ -211,7 +211,16 @@ int BLO_has_bfile_extension(char *str); */ int BLO_is_a_library(const char *path, char *dir, char *group); -struct Main* BLO_library_append_begin(const struct bContext *C, BlendHandle** bh, const char *filepath); + +/** + * Initialize the BlendHandle for appending or linking library data. + * + * @param mainvar The current main database eg G.main or CTX_data_main(C). + * @param bh A blender file handle as returned by BLO_blendhandle_from_file or BLO_blendhandle_from_memory. + * @param filepath Used for relative linking, copied to the lib->name + * @return the library Main, to be passed to BLO_library_append_named_part as mainl. + */ +struct Main* BLO_library_append_begin(struct Main *mainvar, BlendHandle** bh, const char *filepath); /** @@ -243,11 +252,6 @@ void BLO_library_append_end(const struct bContext *C, struct Main *mainl, BlendH void *BLO_library_read_struct(struct FileData *fd, struct BHead *bh, const char *blockname); -/* deprecated */ -#if 1 -void BLO_script_library_append(BlendHandle **bh, char *dir, char *name, int idcode, short flag, struct Main *mainvar, struct Scene *scene, struct ReportList *reports); -#endif - BlendFileData* blo_read_blendafterruntime(int file, char *name, int actualsize, struct ReportList *reports); #ifdef __cplusplus diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index d60ac492f97..44c8ca97be9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -12975,9 +12975,8 @@ static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r) /* common routine to append/link something from a library */ -static Main* library_append_begin(const bContext *C, FileData **fd, const char *filepath) +static Main* library_append_begin(Main *mainvar, FileData **fd, const char *filepath) { - Main *mainvar= CTX_data_main(C); Main *mainl; /* make mains */ @@ -12993,10 +12992,10 @@ static Main* library_append_begin(const bContext *C, FileData **fd, const char * return mainl; } -Main* BLO_library_append_begin(const bContext *C, BlendHandle** bh, const char *filepath) +Main* BLO_library_append_begin(Main *mainvar, BlendHandle** bh, const char *filepath) { FileData *fd= (FileData*)(*bh); - return library_append_begin(C, &fd, filepath); + return library_append_begin(mainvar, &fd, filepath); } diff --git a/source/blender/python/intern/bpy_library.c b/source/blender/python/intern/bpy_library.c index 85bffb5a8cc..4ce3e0356e2 100644 --- a/source/blender/python/intern/bpy_library.c +++ b/source/blender/python/intern/bpy_library.c @@ -39,6 +39,7 @@ #include "BKE_library.h" #include "BKE_idcode.h" #include "BKE_report.h" +#include "BKE_context.h" #include "BLI_utildefines.h" #include "BLI_string.h" @@ -317,7 +318,7 @@ static PyObject *bpy_lib_exit(BPy_Library *self, PyObject *UNUSED(args)) flag_all_listbases_ids(LIB_PRE_EXISTING, 1); /* here appending/linking starts */ - mainl= BLO_library_append_begin(BPy_GetContext(), &(self->blo_handle), self->relpath); + mainl= BLO_library_append_begin(CTX_data_main(BPy_GetContext()), &(self->blo_handle), self->relpath); { int i= 0, code; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index a47dfacf358..5a05be0fefc 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1690,7 +1690,7 @@ static int wm_link_append_exec(bContext *C, wmOperator *op) flag_all_listbases_ids(LIB_PRE_EXISTING, 1); /* here appending/linking starts */ - mainl = BLO_library_append_begin(C, &bh, libname); + mainl = BLO_library_append_begin(bmain, &bh, libname); if(totfiles == 0) { BLO_library_append_named_part_ex(C, mainl, &bh, name, idcode, flag); } -- cgit v1.2.3 From 82e863bdae70b1297318aa7fd98f72cab074ef66 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 06:06:15 +0000 Subject: fix [#28102] Typing 'C:' into the file selector's directory asks to make a new directory. --- source/blender/editors/space_file/file_ops.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 77524c7e117..d4253495e97 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -64,6 +64,7 @@ #include #include #include +#include /* for events */ #define NOTACTIVEFILE 0 @@ -1079,8 +1080,18 @@ static void file_expand_directory(bContext *C) } #ifdef WIN32 - if (sfile->params->dir[0] == '\0') + if (sfile->params->dir[0] == '\0') { get_default_root(sfile->params->dir); + } + /* change "C:" --> "C:\", [#28102] */ + else if ( (isalpha(sfile->params->dir[0]) && + (sfile->params->dir[1] == ':')) && + (sfile->params->dir[2] == '\0') + + ) { + sfile->params->dir[2]= '\\'; + sfile->params->dir[3]= '\0'; + } #endif } } -- cgit v1.2.3 From c946969bb90c177319c183e7155c6f360230ea2f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 06:09:30 +0000 Subject: fix for possible uninitialized RNA strings, when RNA_string_get property is not found, initialize the string to "". --- source/blender/makesrna/intern/rna_access.c | 7 +++++-- source/blender/windowmanager/intern/wm_operators.c | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e71be8c153e..f1056c86a4c 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4007,10 +4007,13 @@ void RNA_string_get(PointerRNA *ptr, const char *name, char *value) { PropertyRNA *prop= RNA_struct_find_property(ptr, name); - if(prop) + if(prop) { RNA_property_string_get(ptr, prop, value); - else + } + else { printf("RNA_string_get: %s.%s not found.\n", ptr->type->identifier, name); + value[0]= '\0'; + } } char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen) diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 5a05be0fefc..7238cede2cc 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1621,7 +1621,6 @@ static int wm_link_append_exec(bContext *C, wmOperator *op) int idcode, totfiles=0; short flag; - name[0] = '\0'; RNA_string_get(op->ptr, "filename", name); RNA_string_get(op->ptr, "directory", dir); -- cgit v1.2.3 From f48631e9a4afb8d7d4ab4e15963b38ba75605f68 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 06:26:54 +0000 Subject: fix [#28160] Pressing Y on an image sequence to seperate the images takes them out of their meta strips dont show a popup anymore, was silly because you had to change the value for before anything was done, can use f6 redo popup instead, sequencer should eventually have a view3d operator redo panel. --- source/blender/editors/space_sequencer/sequencer_edit.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index b7a7b6b5412..6a69d32d307 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1785,7 +1785,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) se = give_stripelem(seq, cfra); seq_new= seq_dupli_recursive(scene, scene, seq, SEQ_DUPE_UNIQUE_NAME); - BLI_addtail(&ed->seqbase, seq_new); + BLI_addtail(ed->seqbasep, seq_new); seq_new->start= start_ofs; seq_new->type= SEQ_IMAGE; @@ -1839,7 +1839,6 @@ void SEQUENCER_OT_images_separate(wmOperatorType *ot) ot->description="On image sequences strips, it return a strip for each image"; /* api callbacks */ - ot->invoke= WM_operator_props_popup; ot->exec= sequencer_separate_images_exec; ot->poll= sequencer_edit_poll; -- cgit v1.2.3 From ad7ea2f89205dd67b84ec76d70352ad56004293a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 09:04:11 +0000 Subject: get a tad more vertical space in the toolbar. --- source/blender/editors/curve/editfont.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 649ff9e953a..6c95df53d39 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -1649,10 +1649,10 @@ static int open_exec(bContext *C, wmOperator *op) VFont *font; PropertyPointerRNA *pprop; PointerRNA idptr; - char str[FILE_MAX]; - RNA_string_get(op->ptr, "filepath", str); + char filepath[FILE_MAX]; + RNA_string_get(op->ptr, "filepath", filepath); - font = load_vfont(str); + font= load_vfont(filepath); if(!font) { if(op->customdata) MEM_freeN(op->customdata); -- cgit v1.2.3 From a157112ac5c6465fd8d9518af87ce86a5250eeba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 10:45:32 +0000 Subject: fix for icon scaling with the DPI setting - icons were scaling by the sqrt(dpi)/8.48528, but infact they only need to be scaled by (dpi/72). - UI_icon_get_width value was being used without multiplying by dpi scale. --- source/blender/editors/include/UI_interface.h | 3 +++ source/blender/editors/interface/interface_handlers.c | 2 +- source/blender/editors/interface/interface_icons.c | 3 ++- source/blender/editors/interface/interface_widgets.c | 15 +++++++-------- 4 files changed, 13 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 61e19655f8d..1bae6ce0214 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -164,6 +164,9 @@ typedef struct uiLayout uiLayout; /* scale fixed button widths by this to account for DPI * 8.4852 == sqrtf(72.0f)) */ #define UI_DPI_FAC (sqrtf((float)U.dpi) / 8.48528137423857f) +#define UI_DPI_ICON_FAC (((float)U.dpi) / 72.0f) +/* 16 to copy ICON_DEFAULT_HEIGHT */ +#define UI_DPI_ICON_SIZE ((float)16 * UI_DPI_ICON_FAC) /* Button types, bits stored in 1 value... and a short even! - bits 0-4: bitnr (0-31) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index c5275ea98b5..b3272a2e3d4 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1290,7 +1290,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho else if(ELEM(but->type, TEX, SEARCH_MENU)) { startx += 5; if (but->flag & UI_HAS_ICON) - startx += 16; + startx += UI_DPI_ICON_SIZE; } /* mouse dragged outside the widget to the left */ diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 3bf2a9ddd02..412c0233c35 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -742,6 +742,7 @@ static DrawInfo *icon_create_drawinfo(void) return di; } +/* note!, returns unscaled by DPI, may need to multiply result by UI_DPI_ICON_FAC */ int UI_icon_get_width(int icon_id) { Icon *icon = NULL; @@ -952,7 +953,7 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al Icon *icon = NULL; DrawInfo *di = NULL; IconImage *iimg; - float fdraw_size= UI_DPI_FAC*draw_size; + float fdraw_size= UI_DPI_ICON_FAC*draw_size; int w, h; icon = BKE_icon_get(icon_id); diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 25a64994f5c..d235fd0c16a 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -771,7 +771,6 @@ static void widget_draw_preview(BIFIconID icon, float UNUSED(alpha), rcti *rect) /* icons have been standardized... and this call draws in untransformed coordinates */ -#define ICON_HEIGHT UI_DPI_FAC*16.0f static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, rcti *rect) { @@ -791,15 +790,15 @@ static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, rcti *rect if(aspect != but->aspect) { /* prevent scaling up icon in pupmenu */ if (aspect < 1.0f) { - height= ICON_HEIGHT; + height= UI_DPI_ICON_SIZE; aspect = 1.0f; } else - height= ICON_HEIGHT/aspect; + height= UI_DPI_ICON_SIZE/aspect; } else - height= ICON_HEIGHT; + height= UI_DPI_ICON_SIZE; /* calculate blend color */ if ELEM4(but->type, TOG, ROW, TOGN, LISTROW) { @@ -866,7 +865,7 @@ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect) int border= (but->flag & UI_BUT_ALIGN_RIGHT)? 8: 10; int okwidth= rect->xmax-rect->xmin - border; - if (but->flag & UI_HAS_ICON) okwidth -= 16; + if (but->flag & UI_HAS_ICON) okwidth -= UI_DPI_ICON_SIZE; /* need to set this first */ uiStyleFontSet(fstyle); @@ -1149,7 +1148,7 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB if (but->flag & UI_HAS_ICON) { widget_draw_icon(but, but->icon+but->iconadd, 1.0f, rect); - rect->xmin += UI_icon_get_width(but->icon+but->iconadd); + rect->xmin += (int)((float)UI_icon_get_width(but->icon+but->iconadd) * UI_DPI_ICON_FAC); if(but->editstr || (but->flag & UI_TEXT_LEFT)) rect->xmin += 5; @@ -3133,7 +3132,7 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, const char *name, int ic /* text location offset */ rect->xmin+=5; - if(iconid) rect->xmin+= ICON_HEIGHT; + if(iconid) rect->xmin+= UI_DPI_ICON_SIZE; /* cut string in 2 parts? */ cpoin= strchr(name, '|'); @@ -3158,7 +3157,7 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, const char *name, int ic if(iconid) { int xs= rect->xmin+4; - int ys= 1 + (rect->ymin+rect->ymax- ICON_HEIGHT)/2; + int ys= 1 + (rect->ymin+rect->ymax- UI_DPI_ICON_SIZE)/2; glEnable(GL_BLEND); UI_icon_draw_aspect(xs, ys, iconid, 1.2f, 0.5f); /* XXX scale weak get from fstyle? */ glDisable(GL_BLEND); -- cgit v1.2.3 From dca090abc87fc57cb0a98bbe07ea8868f04f8c97 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 5 Aug 2011 11:23:28 +0000 Subject: Assorted loose ends for auto-clamped handles work * Tweaked order of handle types to make it easier to find Auto/Auto- clamped in the list * Fixed a number of places which were still just checking for auto- handles when they should have included auto-clamped too, including handle rotation --- source/blender/blenkernel/intern/curve.c | 10 +++++----- source/blender/editors/animation/keyframes_edit.c | 4 ++-- source/blender/editors/transform/transform_conversions.c | 2 +- source/blender/makesrna/intern/rna_curve.c | 6 +++--- source/blender/makesrna/intern/rna_fcurve.c | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 2f1a85c57b3..b1beb6c449a 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -2674,15 +2674,15 @@ void testhandlesNurb(Nurb *nu) if(bezt->f1 & SELECT) flag++; if(bezt->f2 & SELECT) flag += 2; if(bezt->f3 & SELECT) flag += 4; - + if( !(flag==0 || flag==7) ) { - if(bezt->h1==HD_AUTO) { /* auto */ + if(ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM)) { /* auto */ bezt->h1= HD_ALIGN; } - if(bezt->h2==HD_AUTO) { /* auto */ + if(ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM)) { /* auto */ bezt->h2= HD_ALIGN; } - + if(bezt->h1==HD_VECT) { /* vector */ if(flag < 4) bezt->h1= 0; } @@ -2692,7 +2692,7 @@ void testhandlesNurb(Nurb *nu) } bezt++; } - + calchandlesNurb(nu); } diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index ae9107ebe5a..d5fb8b17440 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -634,8 +634,8 @@ static short snap_bezier_horizontal(KeyframeEditData *UNUSED(ked), BezTriple *be if (bezt->f2 & SELECT) { bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1]; - if ((bezt->h1==HD_AUTO) || (bezt->h1==HD_VECT)) bezt->h1= HD_ALIGN; - if ((bezt->h2==HD_AUTO) || (bezt->h2==HD_VECT)) bezt->h2= HD_ALIGN; + if (ELEM3(bezt->h1, HD_AUTO, HD_AUTO_ANIM, HD_VECT)) bezt->h1= HD_ALIGN; + if (ELEM3(bezt->h2, HD_AUTO, HD_AUTO_ANIM, HD_VECT)) bezt->h2= HD_ALIGN; } return 0; } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index b0488ef8b08..7b43d0955a7 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -3452,7 +3452,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t) * then check if we're using auto-handles. * - If so, change them auto-handles to aligned handles so that handles get affected too */ - if ((bezt->h1 == HD_AUTO) && (bezt->h2 == HD_AUTO) && ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) { + if (ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM) && ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM) && ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) { if (hdata && (sel1) && (sel3)) { bezt->h1= HD_ALIGN; bezt->h2= HD_ALIGN; diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 4e7fceed7e1..95a76dd7729 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -47,17 +47,17 @@ EnumPropertyItem beztriple_handle_type_items[] = { {HD_FREE, "FREE", 0, "Free", ""}, - {HD_AUTO, "AUTO", 0, "Auto", ""}, {HD_VECT, "VECTOR", 0, "Vector", ""}, {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, + {HD_AUTO, "AUTO", 0, "Auto", ""}, {0, NULL, 0, NULL, NULL}}; EnumPropertyItem keyframe_handle_type_items[] = { {HD_FREE, "FREE", 0, "Free", ""}, - {HD_AUTO, "AUTO", 0, "Auto", ""}, - {HD_AUTO_ANIM, "AUTO_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"}, {HD_VECT, "VECTOR", 0, "Vector", ""}, {HD_ALIGN, "ALIGNED", 0, "Aligned", ""}, + {HD_AUTO, "AUTO", 0, "Automatic", ""}, + {HD_AUTO_ANIM, "AUTO_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"}, {0, NULL, 0, NULL, NULL}}; EnumPropertyItem beztriple_interpolation_mode_items[] = { diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 2f37a6921d1..6bb1416e7fc 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -596,15 +596,15 @@ static void rna_FKeyframe_points_add(FCurve *fcu, int tot) else { fcu->bezt= MEM_callocN(sizeof(BezTriple) * tot, "rna_FKeyframe_points_add"); } - + bezt= fcu->bezt + fcu->totvert; fcu->totvert += tot; - + while(tot--) { /* defaults, no userprefs gives pradictable results for API */ bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->ipo= BEZT_IPO_BEZ; - bezt->h1= bezt->h2= HD_AUTO; + bezt->h1= bezt->h2= HD_AUTO_ANIM; bezt++; } } -- cgit v1.2.3 From 861d15738890409067eead832ceab7645c3a4708 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 5 Aug 2011 11:31:41 +0000 Subject: Bugfix [#28106] Missing 3D view update after copy of constraints --- source/blender/editors/object/object_constraint.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index a3df25824a4..2055c906b41 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -1115,14 +1115,19 @@ static int object_constraint_copy_exec(bContext *C, wmOperator *UNUSED(op)) CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { /* if we're not handling the object we're copying from, copy all constraints over */ - if (obact != ob) + if (obact != ob) { copy_constraints(&ob->constraints, &obact->constraints, TRUE); + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + } } CTX_DATA_END; /* force depsgraph to get recalculated since new relationships added */ DAG_scene_sort(bmain, scene); /* sort order of objects */ - + + /* notifiers for updates */ + WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, NULL); + return OPERATOR_FINISHED; } -- cgit v1.2.3 From d368716aed1cf5b7fd3f4edc34dbd729160c2fad Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 5 Aug 2011 12:17:49 +0000 Subject: Timeline UI Nitpicks: * "Only Selected channels" -> "Only Selected Channels" * Use Keying Set icon for "only keying set" toggle for autokeying --- source/blender/makesrna/intern/rna_scene.c | 5 ++--- source/blender/makesrna/intern/rna_space.c | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 4b33d23cfe2..170e590522d 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1010,9 +1010,8 @@ static TimeMarker *rna_TimeLine_add(Scene *scene, const char name[]) static void rna_TimeLine_remove(Scene *scene, ReportList *reports, TimeMarker *marker) { - /* try to remove the F-Curve from the action */ if (!BLI_remlink_safe(&scene->markers, marker)) { - BKE_reportf(reports, RPT_ERROR, "TimelineMarker '%s' not found in action '%s'", marker->name, scene->id.name+2); + BKE_reportf(reports, RPT_ERROR, "TimelineMarker '%s' not found in scene '%s'", marker->name, scene->id.name+2); return; } @@ -1231,7 +1230,7 @@ static void rna_def_tool_settings(BlenderRNA *brna) prop= RNA_def_property(srna, "use_keyframe_insert_keyingset", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_ONLYKEYINGSET); RNA_def_property_ui_text(prop, "Auto Keyframe Insert Keying Set", "Automatic keyframe insertion using active Keying Set only"); - RNA_def_property_ui_icon(prop, ICON_KEY_HLT, 0); // XXX: we need a dedicated icon + RNA_def_property_ui_icon(prop, ICON_KEYINGSET, 0); /* UV */ prop= RNA_def_property(srna, "uv_select_mode", PROP_ENUM, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index fccd00d36df..2ad3022bceb 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -2131,7 +2131,7 @@ static void rna_def_space_time(BlenderRNA *brna) /* view settings */ prop= RNA_def_property(srna, "show_only_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TIME_ONLYACTSEL); - RNA_def_property_ui_text(prop, "Only Selected channels", "Show keyframes for active Object and/or its selected channels only"); + RNA_def_property_ui_text(prop, "Only Selected Channels", "Show keyframes for active Object and/or its selected bones only"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, NULL); prop= RNA_def_property(srna, "show_frame_indicator", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From db319f8544a908a280a92550fc4c2cc706fc12e2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 14:53:13 +0000 Subject: move the ndof menu into the userpref's since it adjusts preferences, also renamed VIEW3D_MT_ndof_settings -> USERPREF_MT_ndof_settings since it has no view3d specific settings. --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 7238cede2cc..cea2d6b3fe5 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -3719,7 +3719,7 @@ void wm_window_keymap(wmKeyConfig *keyconf) /* menus that can be accessed anywhere in blender */ WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); - WM_keymap_add_menu(keymap, "VIEW3D_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); + WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); /* Space switching */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F2KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was DXF export */ -- cgit v1.2.3 From 85fe36ab611aae8b47089c24110d4d176bc8143c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 16:21:37 +0000 Subject: pyrna - add own callable function type rather then using a standard python method, gives small speedup drawing buttons since every layout.prop/col/operator/menu etc creates and throws away one of these. --- source/blender/python/intern/bpy_rna.c | 135 +++++++++++++++++++++++++-------- source/blender/python/intern/bpy_rna.h | 10 +++ 2 files changed, 115 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 502b25842de..d517205e2fe 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -908,6 +908,13 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) return ret; } + +static PyObject *pyrna_func_repr(BPy_FunctionRNA *self) +{ + return PyUnicode_FromFormat("<%.200s %.200s.%.200s()>", Py_TYPE(self)->tp_name, RNA_struct_identifier(self->ptr.type), RNA_function_identifier(self->func)); +} + + static long pyrna_struct_hash(BPy_StructRNA *self) { return _Py_HashPointer(self->ptr.data); @@ -1344,36 +1351,16 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const cha return error_val; } -static PyObject *pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw); -static PyObject *pyrna_func_to_py(BPy_DummyPointerRNA *pyrna, FunctionRNA *func) +static PyObject *pyrna_func_to_py(PointerRNA *ptr, FunctionRNA *func) { - static PyMethodDef func_meth= {"", (PyCFunction)pyrna_func_call, METH_VARARGS|METH_KEYWORDS, "python rna function"}; - PyObject *self; - PyObject *ret; - - if(func==NULL) { - PyErr_Format(PyExc_RuntimeError, - "%.200s: type attempted to get NULL function", - RNA_struct_identifier(pyrna->ptr.type)); - return NULL; - } - - self= PyTuple_New(2); - - PyTuple_SET_ITEM(self, 0, (PyObject *)pyrna); - Py_INCREF(pyrna); - - PyTuple_SET_ITEM(self, 1, PyCapsule_New((void *)func, NULL, NULL)); - - ret= PyCFunction_New(&func_meth, self); - Py_DECREF(self); - - return ret; + BPy_FunctionRNA* pyfunc= (BPy_FunctionRNA *) PyObject_NEW(BPy_FunctionRNA, &pyrna_func_Type); + pyfunc->ptr= *ptr; + pyfunc->func= func; + return (PyObject *)pyfunc; } - static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyObject *value, const char *error_prefix) { /* XXX hard limits should be checked here */ @@ -3001,7 +2988,7 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) } /* RNA function only if callback is declared (no optional functions) */ else if ((func= RNA_struct_find_function(&self->ptr, name)) && RNA_function_defined(func)) { - ret= pyrna_func_to_py((BPy_DummyPointerRNA *)self, func); + ret= pyrna_func_to_py(&self->ptr, func); } else if (self->ptr.type == &RNA_Context) { bContext *C= self->ptr.data; @@ -3303,7 +3290,7 @@ static PyObject *pyrna_prop_collection_getattro(BPy_PropertyRNA *self, PyObject } else if ((func= RNA_struct_find_function(&r_ptr, name))) { PyObject *self_collection= pyrna_struct_CreatePyObject(&r_ptr); - ret= pyrna_func_to_py((BPy_DummyPointerRNA *)self_collection, func); + ret= pyrna_func_to_py(&((BPy_DummyPointerRNA *)self_collection)->ptr, func); Py_DECREF(self_collection); return ret; @@ -4257,11 +4244,11 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat return ret; } -static PyObject *pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) +static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject *kw) { /* Note, both BPy_StructRNA and BPy_PropertyRNA can be used here */ - PointerRNA *self_ptr= &(((BPy_DummyPointerRNA *)PyTuple_GET_ITEM(self, 0))->ptr); - FunctionRNA *self_func= PyCapsule_GetPointer(PyTuple_GET_ITEM(self, 1), NULL); + PointerRNA *self_ptr= &self->ptr; + FunctionRNA *self_func= self->func; PointerRNA funcptr; ParameterList parms; @@ -5045,6 +5032,91 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= { NULL }; +/*-----------------------BPy_PropertyRNA method def------------------------------*/ +PyTypeObject pyrna_func_Type= { + PyVarObject_HEAD_INIT(NULL, 0) + "bpy_func", /* tp_name */ + sizeof(BPy_FunctionRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + NULL, /* tp_dealloc */ + NULL, /* printfunc tp_print; */ + NULL, /* getattrfunc tp_getattr; */ + NULL, /* setattrfunc tp_setattr; */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + (reprfunc) pyrna_func_repr, /* tp_repr */ + + /* Method suites for standard classes */ + + NULL, /* PyNumberMethods *tp_as_number; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ + + /* More standard operations (here for binary compatibility) */ + + NULL, /* hashfunc tp_hash; */ + (ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */ + NULL, /* reprfunc tp_str; */ + + /* will only use these if this is a subtype of a py class */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ + + /* Functions to access object as input/output buffer */ + NULL, /* PyBufferProcs *tp_as_buffer; */ + + /*** Flags to define presence of optional/expanded features ***/ + Py_TPFLAGS_DEFAULT, /* long tp_flags; */ + + NULL, /* char *tp_doc; Documentation string */ + /*** Assigned meaning in release 2.0 ***/ + /* call function for all accessible objects */ + NULL, /* traverseproc tp_traverse; */ + + /* delete references to contained objects */ + NULL, /* inquiry tp_clear; */ + + /*** Assigned meaning in release 2.1 ***/ + /*** rich comparisons ***/ + NULL, /* richcmpfunc tp_richcompare; */ + + /*** weak reference enabler ***/ +#ifdef USE_WEAKREFS + offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ +#else + 0, +#endif + + /*** Added in release 2.2 ***/ + /* Iterators */ + NULL, /* getiterfunc tp_iter; */ + NULL, /* iternextfunc tp_iternext; */ + + /*** Attribute descriptor and subclassing stuff ***/ + NULL, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMemberDef *tp_members; */ + NULL, /* struct PyGetSetDef *tp_getset; */ + NULL, /* struct _typeobject *tp_base; */ + NULL, /* PyObject *tp_dict; */ + NULL, /* descrgetfunc tp_descr_get; */ + NULL, /* descrsetfunc tp_descr_set; */ + 0, /* long tp_dictoffset; */ + NULL, /* initproc tp_init; */ + NULL, /* allocfunc tp_alloc; */ + NULL, /* newfunc tp_new; */ + /* Low-level free-memory routine */ + NULL, /* freefunc tp_free; */ + /* For PyObject_IS_GC */ + NULL, /* inquiry tp_is_gc; */ + NULL, /* PyObject *tp_bases; */ + /* method resolution order */ + NULL, /* PyObject *tp_mro; */ + NULL, /* PyObject *tp_cache; */ + NULL, /* PyObject *tp_subclasses; */ + NULL, /* PyObject *tp_weaklist; */ + NULL +}; + #ifdef USE_PYRNA_ITER /* --- collection iterator: start --- */ /* wrap rna collection iterator functions */ @@ -5516,6 +5588,9 @@ void BPY_rna_init(void) if(PyType_Ready(&pyrna_prop_collection_idprop_Type) < 0) return; + if(PyType_Ready(&pyrna_func_Type) < 0) + return; + #ifdef USE_PYRNA_ITER if(PyType_Ready(&pyrna_prop_collection_iter_Type) < 0) return; diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h index 5db352af53d..3796984ea81 100644 --- a/source/blender/python/intern/bpy_rna.h +++ b/source/blender/python/intern/bpy_rna.h @@ -71,6 +71,7 @@ extern PyTypeObject pyrna_struct_Type; extern PyTypeObject pyrna_prop_Type; extern PyTypeObject pyrna_prop_array_Type; extern PyTypeObject pyrna_prop_collection_Type; +extern PyTypeObject pyrna_func_Type; #define BPy_StructRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_struct_Type)) #define BPy_StructRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_struct_Type) @@ -142,6 +143,15 @@ typedef struct { CollectionPropertyIterator iter; } BPy_PropertyCollectionIterRNA; +typedef struct { + PyObject_HEAD /* required python macro */ +#ifdef USE_WEAKREFS + PyObject *in_weakreflist; +#endif + PointerRNA ptr; + FunctionRNA *func; +} BPy_FunctionRNA; + /* cheap trick */ #define BPy_BaseTypeRNA BPy_PropertyRNA -- cgit v1.2.3 From 3a82a690abca993866c30f03696e8d2415455f64 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Aug 2011 16:29:38 +0000 Subject: ifdef out support for for python owning and freeing BPy_StructRNA because this is only used for doc generation and it makes _every_ blender/python instance 4 bytes bigger - vertex/bezier point/object/scene/group etc. --- source/blender/python/intern/bpy_operator.c | 2 ++ source/blender/python/intern/bpy_rna.c | 4 ++++ source/blender/python/intern/bpy_rna.h | 8 ++++++++ 3 files changed, 14 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 4a17c45ae38..4b05a9c0c72 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -397,7 +397,9 @@ static PyObject *pyop_getrna(PyObject *UNUSED(self), PyObject *value) pyrna= (BPy_StructRNA *)pyrna_struct_CreatePyObject(&ptr); +#ifdef PYRNA_FREE_SUPPORT pyrna->freeptr= TRUE; +#endif return (PyObject *)pyrna; } diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index d517205e2fe..4447a0476f4 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -957,11 +957,13 @@ static int pyrna_struct_clear(BPy_StructRNA *self) /* use our own dealloc so we can free a property if we use one */ static void pyrna_struct_dealloc(BPy_StructRNA *self) { +#ifdef PYRNA_FREE_SUPPORT if (self->freeptr && self->ptr.data) { IDP_FreeProperty(self->ptr.data); MEM_freeN(self->ptr.data); self->ptr.data= NULL; } +#endif /* PYRNA_FREE_SUPPORT */ #ifdef USE_WEAKREFS if (self->in_weakreflist != NULL) { @@ -5495,7 +5497,9 @@ PyObject *pyrna_struct_CreatePyObject(PointerRNA *ptr) } pyrna->ptr= *ptr; +#ifdef PYRNA_FREE_SUPPORT pyrna->freeptr= FALSE; +#endif #ifdef USE_PYRNA_STRUCT_REFERENCE pyrna->reference= NULL; diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h index 3796984ea81..30f6c02115a 100644 --- a/source/blender/python/intern/bpy_rna.h +++ b/source/blender/python/intern/bpy_rna.h @@ -62,6 +62,11 @@ #if defined(USE_PYRNA_INVALIDATE_GC) && defined(USE_PYRNA_INVALIDATE_WEAKREF) #error "Only 1 reference check method at a time!" #endif + +/* only used by operator introspection get_rna(), this is only used for doc gen + * so prefer the leak to the memory bloat for now. */ +// #define PYRNA_FREE_SUPPORT + /* --- end bpy build options --- */ struct ID; @@ -108,7 +113,10 @@ typedef struct { * hold onto the collection iterator to prevent it from freeing allocated data we may use */ PyObject *reference; #endif /* !USE_PYRNA_STRUCT_REFERENCE */ + +#ifdef PYRNA_FREE_SUPPORT int freeptr; /* needed in some cases if ptr.data is created on the fly, free when deallocing */ +#endif /* PYRNA_FREE_SUPPORT */ } BPy_StructRNA; typedef struct { -- cgit v1.2.3 From 9747e5f2a0f86517f4c96a363544d90f07821cbc Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 5 Aug 2011 17:19:31 +0000 Subject: --- source/blender/collada/AnimationExporter.cpp | 69 ++++++++++++++++++++++++++-- source/blender/collada/AnimationExporter.h | 2 + 2 files changed, 68 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 5a5ec4fea2d..be70ec137fb 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -366,6 +366,17 @@ void AnimationExporter::exportAnimations(Scene *sce) return; find_all_frames(ob_arm, fra); + + if (flag & ARM_RESTPOS) { + arm->flag &= ~ARM_RESTPOS; + where_is_pose(scene, ob_arm); + } + + if (fra.size()) { + //int total = fra.back() - fra.front(); + float *values = (float*)MEM_callocN(sizeof(float) * 16 * fra.size(), "temp. anim frames"); + sample_animation(values, fra, bone, ob_arm, pchan); + } } void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) @@ -431,6 +442,54 @@ void AnimationExporter::exportAnimations(Scene *sce) where_is_pose(scene, ob_arm); } + void AnimationExporter::sample_animation(float *v, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pchan) + { + bPoseChannel *parchan = NULL; + bPose *pose = ob_arm->pose; + + pchan = get_pose_channel(pose, bone->name); + + if (!pchan) + return; + + parchan = pchan->parent; + + enable_fcurves(ob_arm->adt->action, bone->name); + + std::vector::iterator it; + int j = 0; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + + //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); + //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); + } + else + copy_m4_m4(mat, pchan->pose_mat); + + for ( int i = 0; i < 4 ; i++) + { + for ( int k = 0; k<4 ; k++ ) + { + v[j*16 + 4*i + k] = mat[i][k]; + } + + } + // copy_m4_m4(v[j*16 + i], mat ) ; + + j++; + } + + enable_fcurves(ob_arm->adt->action, NULL); + } void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) { bPoseChannel *parchan = NULL; @@ -965,10 +1024,14 @@ void AnimationExporter::exportAnimations(Scene *sce) } std::sort(keys.begin(), keys.end()); - - for ( float fAll = *(keys.begin()) ; fAll != *(keys.end()) ; fAll+=1.0f ) + float first, last; + std::vector::reference ref = keys.front(); + first = ref; + ref = keys.back(); + last = ref; + for (float i = first ; i != last ; i+=1.0f ) { - fra.push_back(fAll); + fra.push_back(i); } return; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 388d7dbb24d..00a0402b810 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -106,6 +106,8 @@ protected: void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); + void sample_animation(float *v, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pChan); + // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) void dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name); -- cgit v1.2.3 From 6829b93c11a4a338e57509465a7d764d9802a013 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 5 Aug 2011 18:32:39 +0000 Subject: create_4x4_source function --- source/blender/collada/AnimationExporter.cpp | 88 ++++++++++++++++++++++++++-- source/blender/collada/AnimationExporter.h | 6 +- 2 files changed, 87 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index be70ec137fb..1ba9bc3cd28 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -376,6 +376,9 @@ void AnimationExporter::exportAnimations(Scene *sce) //int total = fra.back() - fra.front(); float *values = (float*)MEM_callocN(sizeof(float) * 16 * fra.size(), "temp. anim frames"); sample_animation(values, fra, bone, ob_arm, pchan); + + dae_baked_animation(fra ,values, id_name(ob_arm), bone->name ); + } } @@ -489,6 +492,8 @@ void AnimationExporter::exportAnimations(Scene *sce) } enable_fcurves(ob_arm->adt->action, NULL); + + } void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) { @@ -540,6 +545,47 @@ void AnimationExporter::exportAnimations(Scene *sce) enable_fcurves(ob_arm->adt->action, NULL); } + void AnimationExporter::dae_baked_animation(std::vector &fra, float *values, std::string ob_name, std::string bone_name) + { + char anim_id[200]; + + if (!fra.size()) + return; + + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + (char*)translate_id(bone_name).c_str(), "pose_matrix"); + + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); + + // create input source + std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, false, anim_id, ""); + + // create output source + std::string output_id; + output_id = create_4x4_source( values, fra.size(), anim_id); + + // create interpolations source + std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, ""); + + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + + // TODO create in/out tangents source + + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + + addSampler(sampler); + + std::string target = translate_id(ob_name + "_" + bone_name) + "/transform"; + addChannel(COLLADABU::URI(empty, sampler_id), target); + + closeAnimation(); + } + // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) void AnimationExporter::dae_bone_animation(std::vector &fra, float *values, int tm_type, int axis, std::string ob_name, std::string bone_name) @@ -628,7 +674,7 @@ void AnimationExporter::exportAnimations(Scene *sce) } void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, - COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis) + COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis, bool transform) { switch(semantic) { case COLLADASW::InputSemantic::INPUT: @@ -642,7 +688,11 @@ void AnimationExporter::exportAnimations(Scene *sce) if (axis) { param.push_back(axis); } - else { //assumes if axis isn't specified all axises are added + else + if ( transform ) + { + param.push_back("TRANSFORM"); + }else{ //assumes if axis isn't specified all axises are added param.push_back("X"); param.push_back("Y"); param.push_back("Z"); @@ -739,7 +789,7 @@ void AnimationExporter::exportAnimations(Scene *sce) COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_angle, axis_name); + add_source_parameters(param, semantic, is_angle, axis_name, false); source.prepareToAppendValues(); @@ -768,7 +818,7 @@ void AnimationExporter::exportAnimations(Scene *sce) source.setAccessorStride(1); COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name); + add_source_parameters(param, semantic, is_rot, axis_name, false); source.prepareToAppendValues(); @@ -798,7 +848,7 @@ void AnimationExporter::exportAnimations(Scene *sce) source.setAccessorStride(1); COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name); + add_source_parameters(param, semantic, is_rot, axis_name, false); source.prepareToAppendValues(); @@ -817,6 +867,32 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } + std::string AnimationExporter::create_4x4_source(float *v, int tot, const std::string& anim_id) + { + COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::Float4x4Source source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(16); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, false, NULL, false); + + source.prepareToAppendValues(); + + for (int i = 0; i < tot; i++) { + for ( int j = 0 ; j < 4 ; j++ ) + source.appendValues(*(v+j*4), *(v + 4*j +1), *(v + 2 + 4*j), *(v+3 + 4*j)); + v += 16; + } + + source.finish(); + + return source_id; + } // only used for sources with OUTPUT semantic ( locations and scale) std::string AnimationExporter::create_xyz_source(float *v, int tot, const std::string& anim_id) { @@ -830,7 +906,7 @@ void AnimationExporter::exportAnimations(Scene *sce) source.setAccessorStride(3); COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, false, NULL); + add_source_parameters(param, semantic, false, NULL, false); source.prepareToAppendValues(); diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 00a0402b810..cadd6940e9d 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -111,6 +111,8 @@ protected: // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) void dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name); + + void dae_baked_animation(std::vector &fra, float *values, std::string ob_name, std::string bone_name); float convert_time(float frame); @@ -119,7 +121,7 @@ protected: std::string get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic); void add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, - COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis); + COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis , bool transform); void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); @@ -133,6 +135,8 @@ protected: std::string create_xyz_source(float *v, int tot, const std::string& anim_id); + std::string create_4x4_source(float *v, int tot, const std::string& anim_id); + std::string create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents); std::string fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name); -- cgit v1.2.3 From e6e4c7ef8bd53b06c879302bbfd3d6a00c6c48af Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Aug 2011 20:45:26 +0000 Subject: KEYMAP REFACTORING Diff Keymaps User edited keymaps now no longer override the builtin keymaps entirely, but rather save only the difference and reapply those changes. This means they can stay better in sync when the builtin keymaps change. The diff/patch algorithm is not perfect, but better for the common case where only a few items are changed rather than entire keymaps The main weakness is that if a builtin keymap item changes, user modification of that item may need to be redone in some cases. Keymap Editor The most noticeable change here is that there is no longer an "Edit" button for keymaps, all are editable immediately, but a "Restore" buttons shows for keymaps and items that have been edited. Shortcuts for addons can also be edited in the keymap editor. Addons Addons now should only modify the new addon keyconfiguration, the keymap items there will be added to the builtin ones for handling events, and not get lost when starting new files. Example code of register/unregister: km = wm.keyconfigs.addon.keymaps.new("3D View", space_type="VIEW_3D") km.keymap_items.new('my.operator', 'ESC', 'PRESS') km = wm.keyconfigs.addon.keymaps["3D View"] km.keymap_items.remove(km.keymap_items["my.operator"]) Compatibility The changes made are not forward compatible, i.e. if you save user preferences with newer versions, older versions will not have key configuration changes that were made. --- source/blender/blenkernel/intern/blender.c | 33 +- source/blender/blenloader/intern/readfile.c | 40 +- source/blender/blenloader/intern/writefile.c | 24 +- .../blender/editors/interface/interface_handlers.c | 25 +- source/blender/editors/interface/resources.c | 2 +- source/blender/makesdna/DNA_userdef_types.h | 3 +- source/blender/makesdna/DNA_windowmanager_types.h | 24 +- source/blender/makesrna/intern/rna_internal.h | 3 + source/blender/makesrna/intern/rna_scene.c | 2 +- source/blender/makesrna/intern/rna_userdef.c | 6 - source/blender/makesrna/intern/rna_wm.c | 247 ++----- source/blender/makesrna/intern/rna_wm_api.c | 183 +++++- source/blender/windowmanager/WM_api.h | 44 +- source/blender/windowmanager/WM_keymap.h | 104 +++ source/blender/windowmanager/intern/wm.c | 10 +- .../blender/windowmanager/intern/wm_event_system.c | 6 + source/blender/windowmanager/intern/wm_files.c | 13 +- source/blender/windowmanager/intern/wm_keymap.c | 718 ++++++++++++++++----- 18 files changed, 1022 insertions(+), 465 deletions(-) create mode 100644 source/blender/windowmanager/WM_keymap.h (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 8b4bbbd3c83..7e2097d1233 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -330,28 +330,45 @@ static int handle_subversion_warning(Main *main) return 1; } +static void keymap_item_free(wmKeyMapItem *kmi) +{ + if(kmi->properties) { + IDP_FreeProperty(kmi->properties); + MEM_freeN(kmi->properties); + } + if(kmi->ptr) + MEM_freeN(kmi->ptr); +} + void BKE_userdef_free(void) { wmKeyMap *km; wmKeyMapItem *kmi; + wmKeyMapDiffItem *kmdi; - for(km=U.keymaps.first; km; km=km->next) { - for(kmi=km->items.first; kmi; kmi=kmi->next) { - if(kmi->properties) { - IDP_FreeProperty(kmi->properties); - MEM_freeN(kmi->properties); + for(km=U.user_keymaps.first; km; km=km->next) { + for(kmdi=km->diff_items.first; kmdi; kmdi=kmdi->next) { + if(kmdi->add_item) { + keymap_item_free(kmdi->add_item); + MEM_freeN(kmdi->add_item); + } + if(kmdi->remove_item) { + keymap_item_free(kmdi->remove_item); + MEM_freeN(kmdi->remove_item); } - if(kmi->ptr) - MEM_freeN(kmi->ptr); } + for(kmi=km->items.first; kmi; kmi=kmi->next) + keymap_item_free(kmi); + + BLI_freelistN(&km->diff_items); BLI_freelistN(&km->items); } BLI_freelistN(&U.uistyles); BLI_freelistN(&U.uifonts); BLI_freelistN(&U.themes); - BLI_freelistN(&U.keymaps); + BLI_freelistN(&U.user_keymaps); BLI_freelistN(&U.addons); } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 44c8ca97be9..bd12677485c 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4726,6 +4726,8 @@ static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm) wm->keyconfigs.first= wm->keyconfigs.last= NULL; wm->defaultconf= NULL; + wm->addonconf= NULL; + wm->userconf= NULL; wm->jobs.first= wm->jobs.last= NULL; wm->drags.first= wm->drags.last= NULL; @@ -11762,33 +11764,57 @@ static void lib_link_all(FileData *fd, Main *main) lib_link_library(fd, main); /* only init users */ } +static void direct_link_keymapitem(FileData *fd, wmKeyMapItem *kmi) +{ + kmi->properties= newdataadr(fd, kmi->properties); + if(kmi->properties) + IDP_DirectLinkProperty(kmi->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); + kmi->ptr= NULL; + kmi->flag &= ~KMI_UPDATE; +} static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead) { UserDef *user; wmKeyMap *keymap; wmKeyMapItem *kmi; + wmKeyMapDiffItem *kmdi; bfd->user= user= read_struct(fd, bhead, "user def"); /* read all data into fd->datamap */ bhead= read_data_into_oldnewmap(fd, bhead, "user def"); + if(user->keymaps.first) { + /* backwards compatibility */ + user->user_keymaps= user->keymaps; + user->keymaps.first= user->keymaps.last= NULL; + } + link_list(fd, &user->themes); - link_list(fd, &user->keymaps); + link_list(fd, &user->user_keymaps); link_list(fd, &user->addons); - for(keymap=user->keymaps.first; keymap; keymap=keymap->next) { + for(keymap=user->user_keymaps.first; keymap; keymap=keymap->next) { keymap->modal_items= NULL; keymap->poll= NULL; + keymap->flag &= ~KEYMAP_UPDATE; + link_list(fd, &keymap->diff_items); link_list(fd, &keymap->items); - for(kmi=keymap->items.first; kmi; kmi=kmi->next) { - kmi->properties= newdataadr(fd, kmi->properties); - if(kmi->properties) - IDP_DirectLinkProperty(kmi->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); - kmi->ptr= NULL; + + for(kmdi=keymap->diff_items.first; kmdi; kmdi=kmdi->next) { + kmdi->remove_item= newdataadr(fd, kmdi->remove_item); + kmdi->add_item= newdataadr(fd, kmdi->add_item); + + if(kmdi->remove_item) + direct_link_keymapitem(fd, kmdi->remove_item); + if(kmdi->add_item) + direct_link_keymapitem(fd, kmdi->add_item); } + + for(kmi=keymap->items.first; kmi; kmi=kmi->next) + direct_link_keymapitem(fd, kmi); } // XXX diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index bf86527b9d3..7d65248c0e9 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -717,11 +717,19 @@ static void write_renderinfo(WriteData *wd, Main *mainvar) /* for renderdeamon } } +static void write_keymapitem(WriteData *wd, wmKeyMapItem *kmi) +{ + writestruct(wd, DATA, "wmKeyMapItem", 1, kmi); + if(kmi->properties) + IDP_WriteProperty(kmi->properties, wd); +} + static void write_userdef(WriteData *wd) { bTheme *btheme; wmKeyMap *keymap; wmKeyMapItem *kmi; + wmKeyMapDiffItem *kmdi; bAddon *bext; uiStyle *style; @@ -730,15 +738,19 @@ static void write_userdef(WriteData *wd) for(btheme= U.themes.first; btheme; btheme=btheme->next) writestruct(wd, DATA, "bTheme", 1, btheme); - for(keymap= U.keymaps.first; keymap; keymap=keymap->next) { + for(keymap= U.user_keymaps.first; keymap; keymap=keymap->next) { writestruct(wd, DATA, "wmKeyMap", 1, keymap); - for(kmi=keymap->items.first; kmi; kmi=kmi->next) { - writestruct(wd, DATA, "wmKeyMapItem", 1, kmi); - - if(kmi->properties) - IDP_WriteProperty(kmi->properties, wd); + for(kmdi=keymap->diff_items.first; kmdi; kmdi=kmdi->next) { + writestruct(wd, DATA, "wmKeyMapDiffItem", 1, kmdi); + if(kmdi->remove_item) + write_keymapitem(wd, kmdi->remove_item); + if(kmdi->add_item) + write_keymapitem(wd, kmdi->add_item); } + + for(kmi=keymap->items.first; kmi; kmi=kmi->next) + write_keymapitem(wd, kmi); } for(bext= U.addons.first; bext; bext=bext->next) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index b3272a2e3d4..d8d8354b0b9 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4067,7 +4067,6 @@ static void but_shortcut_name_func(bContext *C, void *arg1, int UNUSED(event)) /* complex code to change name of button */ if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { - wmKeyMap *km= NULL; char *butstr_orig; // XXX but->str changed... should not, remove the hotkey from it @@ -4080,10 +4079,6 @@ static void but_shortcut_name_func(bContext *C, void *arg1, int UNUSED(event)) but->str= but->strdata; ui_check_but(but); - - /* set the keymap editable else the key wont save */ - WM_key_event_operator_id(C, but->optype->idname, but->opcontext, prop, 1, &km); - WM_keymap_copy_to_user(km); } else { /* shortcut was removed */ @@ -4095,6 +4090,7 @@ static void but_shortcut_name_func(bContext *C, void *arg1, int UNUSED(event)) static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg) { + wmWindowManager *wm= CTX_wm_manager(C); uiBlock *block; uiBut *but = (uiBut *)arg; wmKeyMap *km; @@ -4107,7 +4103,7 @@ static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg) kmi = WM_keymap_item_find_id(km, kmi_id); - RNA_pointer_create(NULL, &RNA_KeyMapItem, kmi, &ptr); + RNA_pointer_create(&wm->id, &RNA_KeyMapItem, kmi, &ptr); block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetHandleFunc(block, but_shortcut_name_func, but); @@ -4126,6 +4122,7 @@ static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg) static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg) { + wmWindowManager *wm= CTX_wm_manager(C); uiBlock *block; uiBut *but = (uiBut *)arg; wmKeyMap *km; @@ -4134,19 +4131,25 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg) uiLayout *layout; uiStyle *style= U.uistyles.first; IDProperty *prop= (but->opptr)? but->opptr->data: NULL; + int kmi_id; /* XXX this guess_opname can potentially return a different keymap than being found on adding later... */ km = WM_keymap_guess_opname(C, but->optype->idname); kmi = WM_keymap_add_item(km, but->optype->idname, AKEY, KM_PRESS, 0, 0); + kmi_id = kmi->id; - if (prop) { + /* copy properties, prop can be NULL for reset */ + if(prop) prop= IDP_CopyProperty(prop); - } - - /* prop can be NULL */ WM_keymap_properties_reset(kmi, prop); - RNA_pointer_create(NULL, &RNA_KeyMapItem, kmi, &ptr); + /* update and get pointers again */ + WM_keyconfig_update(wm); + + km = WM_keymap_guess_opname(C, but->optype->idname); + kmi = WM_keymap_item_find_id(km, kmi_id); + + RNA_pointer_create(&wm->id, &RNA_KeyMapItem, kmi, &ptr); block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetHandleFunc(block, but_shortcut_name_func, but); diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 32e87b3a793..f3db6ad11ae 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1425,7 +1425,7 @@ void init_userdef_do_versions(void) if (bmain->versionfile < 250 || (bmain->versionfile == 250 && bmain->subversionfile < 8)) { wmKeyMap *km; - for(km=U.keymaps.first; km; km=km->next) { + for(km=U.user_keymaps.first; km; km=km->next) { if (strcmp(km->idname, "Armature_Sketch")==0) strcpy(km->idname, "Armature Sketch"); else if (strcmp(km->idname, "View3D")==0) diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index aa6da3aaeca..a555a196060 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -341,7 +341,8 @@ typedef struct UserDef { struct ListBase themes; struct ListBase uifonts; struct ListBase uistyles; - struct ListBase keymaps; + struct ListBase keymaps; /* deprecated in favor of user_keymaps */ + struct ListBase user_keymaps; struct ListBase addons; char keyconfigstr[64]; diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 31e59f18626..1f0ae28a00d 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -144,7 +144,9 @@ typedef struct wmWindowManager { ListBase drags; /* active dragged items */ ListBase keyconfigs; /* known key configurations */ - struct wmKeyConfig *defaultconf; /* default configuration, not saved */ + struct wmKeyConfig *defaultconf; /* default configuration */ + struct wmKeyConfig *addonconf; /* addon configuration */ + struct wmKeyConfig *userconf; /* user configuration */ ListBase timers; /* active timers */ struct wmTimer *autosavetimer; /* timer for auto save */ @@ -239,15 +241,26 @@ typedef struct wmKeyMapItem { struct PointerRNA *ptr; /* rna pointer to access properties */ } wmKeyMapItem; +/* used instead of wmKeyMapItem for diff keymaps */ +typedef struct wmKeyMapDiffItem { + struct wmKeyMapDiffItem *next, *prev; + + wmKeyMapItem *remove_item; + wmKeyMapItem *add_item; +} wmKeyMapDiffItem; + /* wmKeyMapItem.flag */ -#define KMI_INACTIVE 1 -#define KMI_EXPANDED 2 +#define KMI_INACTIVE 1 +#define KMI_EXPANDED 2 +#define KMI_USER_MODIFIED 4 +#define KMI_UPDATE 8 /* stored in WM, the actively used keymaps */ typedef struct wmKeyMap { struct wmKeyMap *next, *prev; ListBase items; + ListBase diff_items; char idname[64]; /* global editor keymaps, or for more per space/region */ short spaceid; /* same IDs as in DNA_space_types.h */ @@ -263,9 +276,12 @@ typedef struct wmKeyMap { /* wmKeyMap.flag */ #define KEYMAP_MODAL 1 /* modal map, not using operatornames */ -#define KEYMAP_USER 2 /* user created keymap */ +#define KEYMAP_USER 2 /* user keymap */ #define KEYMAP_EXPANDED 4 #define KEYMAP_CHILDREN_EXPANDED 8 +#define KEYMAP_DIFF 16 /* diff keymap for user preferences */ +#define KEYMAP_USER_MODIFIED 32 /* keymap has user modifications */ +#define KEYMAP_UPDATE 64 typedef struct wmKeyConfig { struct wmKeyConfig *next, *prev; diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 9175806e2bb..c0ae7b02b1a 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -238,9 +238,12 @@ void RNA_api_image(struct StructRNA *srna); void RNA_api_operator(struct StructRNA *srna); void RNA_api_macro(struct StructRNA *srna); void RNA_api_keyconfig(struct StructRNA *srna); +void RNA_api_keyconfigs(struct StructRNA *srna); void RNA_api_keyingset(struct StructRNA *srna); void RNA_api_keymap(struct StructRNA *srna); +void RNA_api_keymaps(struct StructRNA *srna); void RNA_api_keymapitem(struct StructRNA *srna); +void RNA_api_keymapitems(struct StructRNA *srna); void RNA_api_area(struct StructRNA *srna); void RNA_api_main(struct StructRNA *srna); void RNA_api_material(StructRNA *srna); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index b3d8bc8ea18..29cfc695911 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1409,7 +1409,7 @@ void rna_def_render_layer_common(StructRNA *srna, int scene) prop= RNA_def_property(srna, "layers_zmask", PROP_BOOLEAN, PROP_LAYER); RNA_def_property_boolean_sdna(prop, NULL, "lay_zmask", 1); RNA_def_property_array(prop, 20); - RNA_def_property_ui_text(prop, "Zmask Layers", "Zmask scene layers"); + RNA_def_property_ui_text(prop, "Zmask Layers", "Zmask scene layers for solid faces"); if(scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); else RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index a1a99c34e70..b3dbafeab7d 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2795,12 +2795,6 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_range(prop, 0, 32); RNA_def_property_ui_text(prop, "Wheel Scroll Lines", "The number of lines scrolled at a time with the mouse wheel"); - /* U.keymaps - custom keymaps that have been edited from default configs */ - prop= RNA_def_property(srna, "edited_keymaps", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "keymaps", NULL); - RNA_def_property_struct_type(prop, "KeyMap"); - RNA_def_property_ui_text(prop, "Edited Keymaps", ""); - prop= RNA_def_property(srna, "active_keyconfig", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "keyconfigstr"); RNA_def_property_ui_text(prop, "Key Config", "The name of the active key configuration"); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index a046be59ab5..307cf0e175a 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -578,22 +578,6 @@ static EnumPropertyItem *rna_KeyMapItem_propvalue_itemf(bContext *C, PointerRNA wmKeyConfig *kc; wmKeyMap *km; - /* check user keymaps */ - for(km=U.keymaps.first; km; km=km->next) { - wmKeyMapItem *kmi; - for (kmi=km->items.first; kmi; kmi=kmi->next) { - if (kmi == ptr->data) { - if (!km->modal_items) { - if (!WM_keymap_user_init(wm, km)) { - return keymap_propvalue_items; /* ERROR */ - } - } - - return km->modal_items; - } - } - } - for(kc=wm->keyconfigs.first; kc; kc=kc->next) { for(km=kc->keymaps.first; km; km=km->next) { /* only check if it's a modal keymap */ @@ -654,12 +638,13 @@ static PointerRNA rna_WindowManager_active_keyconfig_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_KeyConfig, kc); } -static void rna_WindowManager_active_keyconfig_set(PointerRNA *UNUSED(ptr), PointerRNA value) +static void rna_WindowManager_active_keyconfig_set(PointerRNA *ptr, PointerRNA value) { + wmWindowManager *wm= ptr->data; wmKeyConfig *kc= value.data; if(kc) - BLI_strncpy(U.keyconfigstr, kc->idname, sizeof(U.keyconfigstr)); + WM_keyconfig_set_active(wm, kc->idname); } static void rna_wmKeyMapItem_idname_get(PointerRNA *ptr, char *value) @@ -1130,93 +1115,6 @@ static StructRNA* rna_MacroOperator_refine(PointerRNA *opr) return (op->type && op->type->ext.srna)? op->type->ext.srna: &RNA_Macro; } -static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km, ReportList *reports, const char *idname, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier) -{ -// wmWindowManager *wm = CTX_wm_manager(C); - char idname_bl[OP_MAX_TYPENAME]; - int modifier= 0; - - /* only on non-modal maps */ - if (km->flag & KEYMAP_MODAL) { - BKE_report(reports, RPT_ERROR, "Not a non-modal keymap."); - return NULL; - } - - WM_operator_bl_idname(idname_bl, idname); - - if(shift) modifier |= KM_SHIFT; - if(ctrl) modifier |= KM_CTRL; - if(alt) modifier |= KM_ALT; - if(oskey) modifier |= KM_OSKEY; - - if(any) modifier = KM_ANY; - - return WM_keymap_add_item(km, idname_bl, type, value, modifier, keymodifier); -} - -static wmKeyMapItem *rna_KeyMap_item_new_modal(wmKeyMap *km, bContext *C, ReportList *reports, const char *propvalue_str, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier) -{ - wmWindowManager *wm = CTX_wm_manager(C); - int modifier= 0; - int propvalue = 0; - - /* only modal maps */ - if ((km->flag & KEYMAP_MODAL) == 0) { - BKE_report(reports, RPT_ERROR, "Not a modal keymap."); - return NULL; - } - - if (!km->modal_items) { - if(!WM_keymap_user_init(wm, km)) { - BKE_report(reports, RPT_ERROR, "User defined keymap doesn't correspond to a system keymap."); - return NULL; - } - } - - if (!km->modal_items) { - BKE_report(reports, RPT_ERROR, "No property values defined."); - return NULL; - } - - - if(RNA_enum_value_from_id(km->modal_items, propvalue_str, &propvalue)==0) { - BKE_report(reports, RPT_WARNING, "Property value not in enumeration."); - } - - if(shift) modifier |= KM_SHIFT; - if(ctrl) modifier |= KM_CTRL; - if(alt) modifier |= KM_ALT; - if(oskey) modifier |= KM_OSKEY; - - if(any) modifier = KM_ANY; - - return WM_modalkeymap_add_item(km, type, value, modifier, keymodifier, propvalue); -} - -static wmKeyMap *rna_keymap_new(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid, int modal) -{ - if (modal == 0) { - return WM_keymap_find(keyconf, idname, spaceid, regionid); - } else { - return WM_modalkeymap_add(keyconf, idname, NULL); /* items will be lazy init */ - } -} - -static wmKeyMap *rna_keymap_find(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid) -{ - return WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); -} - -static wmKeyMap *rna_keymap_find_modal(wmKeyConfig *UNUSED(keyconf), const char *idname) -{ - wmOperatorType *ot = WM_operatortype_find(idname, 0); - - if (!ot) - return NULL; - else - return ot->modalkeymap; -} - /* just to work around 'const char *' warning and to ensure this is a python op */ static void rna_Operator_bl_idname_set(PointerRNA *ptr, const char *value) { @@ -1242,6 +1140,12 @@ static void rna_Operator_bl_description_set(PointerRNA *ptr, const char *value) else assert(!"setting the bl_description on a non-builtin operator"); } +static void rna_KeyMapItem_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + wmKeyMapItem *kmi= ptr->data; + WM_keyconfig_update_tag(NULL, kmi); +} + #else /* RNA_RUNTIME */ static void rna_def_operator(BlenderRNA *brna) @@ -1566,9 +1470,6 @@ static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; PropertyRNA *prop; - FunctionRNA *func; - PropertyRNA *parm; - RNA_def_property_srna(cprop, "KeyConfigurations"); srna= RNA_def_struct(brna, "KeyConfigurations", NULL); RNA_def_struct_sdna(srna, "wmWindowManager"); @@ -1578,23 +1479,24 @@ static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_property_struct_type(prop, "KeyConfig"); RNA_def_property_pointer_funcs(prop, "rna_WindowManager_active_keyconfig_get", "rna_WindowManager_active_keyconfig_set", NULL, NULL); RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Active KeyConfig", "Active wm KeyConfig"); + RNA_def_property_ui_text(prop, "Active KeyConfig", "Active key configuration (preset)"); prop= RNA_def_property(srna, "default", PROP_POINTER, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "defaultconf"); RNA_def_property_struct_type(prop, "KeyConfig"); - RNA_def_property_ui_text(prop, "Default Key Configuration", ""); + RNA_def_property_ui_text(prop, "Default Key Configuration", "Default builtin key configuration"); + + prop= RNA_def_property(srna, "addon", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_pointer_sdna(prop, NULL, "addonconf"); + RNA_def_property_struct_type(prop, "KeyConfig"); + RNA_def_property_ui_text(prop, "Addon Key Configuration", "Key configuration that can be extended by addons, and is added to the active configuration when handling events"); + + prop= RNA_def_property(srna, "user", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_pointer_sdna(prop, NULL, "userconf"); + RNA_def_property_struct_type(prop, "KeyConfig"); + RNA_def_property_ui_text(prop, "User Key Configuration", "Final key configuration that combines keymaps from the active and addon configurations, and can be edited by the user"); - /* funcs */ - func= RNA_def_function(srna, "new", "WM_keyconfig_new_user"); // add_keyconfig - parm= RNA_def_string(func, "name", "", 0, "Name", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Added key configuration."); - RNA_def_function_return(func, parm); - - func= RNA_def_function(srna, "remove", "WM_keyconfig_remove"); // remove_keyconfig - parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Removed key configuration."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_api_keyconfigs(srna); } static void rna_def_windowmanager(BlenderRNA *brna) @@ -1631,107 +1533,30 @@ static void rna_def_windowmanager(BlenderRNA *brna) static void rna_def_keymap_items(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; -// PropertyRNA *prop; - - FunctionRNA *func; - PropertyRNA *parm; RNA_def_property_srna(cprop, "KeyMapItems"); srna= RNA_def_struct(brna, "KeyMapItems", NULL); RNA_def_struct_sdna(srna, "wmKeyMap"); RNA_def_struct_ui_text(srna, "KeyMap Items", "Collection of keymap items"); - func= RNA_def_function(srna, "new", "rna_KeyMap_item_new"); - RNA_def_function_flag(func, FUNC_USE_REPORTS); - parm= RNA_def_string(func, "idname", "", 0, "Operator Identifier", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_enum(func, "type", event_type_items, 0, "Type", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_enum(func, "value", event_value_items, 0, "Value", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_boolean(func, "any", 0, "Any", ""); - RNA_def_boolean(func, "shift", 0, "Shift", ""); - RNA_def_boolean(func, "ctrl", 0, "Ctrl", ""); - RNA_def_boolean(func, "alt", 0, "Alt", ""); - RNA_def_boolean(func, "oskey", 0, "OS Key", ""); - RNA_def_enum(func, "key_modifier", event_type_items, 0, "Key Modifier", ""); - parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item."); - RNA_def_function_return(func, parm); - - func= RNA_def_function(srna, "new_modal", "rna_KeyMap_item_new_modal"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); - parm= RNA_def_string(func, "propvalue", "", 0, "Property Value", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_enum(func, "type", event_type_items, 0, "Type", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_enum(func, "value", event_value_items, 0, "Value", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_boolean(func, "any", 0, "Any", ""); - RNA_def_boolean(func, "shift", 0, "Shift", ""); - RNA_def_boolean(func, "ctrl", 0, "Ctrl", ""); - RNA_def_boolean(func, "alt", 0, "Alt", ""); - RNA_def_boolean(func, "oskey", 0, "OS Key", ""); - RNA_def_enum(func, "key_modifier", event_type_items, 0, "Key Modifier", ""); - parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item."); - RNA_def_function_return(func, parm); - - func= RNA_def_function(srna, "remove", "WM_keymap_remove_item"); - parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - - func= RNA_def_function(srna, "from_id", "WM_keymap_item_find_id"); - parm= RNA_def_property(func, "id", PROP_INT, PROP_NONE); - RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_property_ui_text(parm, "id", "ID of the item"); - parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); - RNA_def_function_return(func, parm); - + RNA_api_keymapitems(srna); } static void rna_def_wm_keymaps(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; - //PropertyRNA *prop; - - FunctionRNA *func; - PropertyRNA *parm; - RNA_def_property_srna(cprop, "KeyMaps"); srna= RNA_def_struct(brna, "KeyMaps", NULL); RNA_def_struct_sdna(srna, "wmKeyConfig"); RNA_def_struct_ui_text(srna, "Key Maps", "Collection of keymaps"); - func= RNA_def_function(srna, "new", "rna_keymap_new"); // add_keymap - parm= RNA_def_string(func, "name", "", 0, "Name", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", ""); - RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", ""); - RNA_def_boolean(func, "modal", 0, "Modal", ""); - parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Added key map."); - RNA_def_function_return(func, parm); - - func= RNA_def_function(srna, "find", "rna_keymap_find"); // find_keymap - parm= RNA_def_string(func, "name", "", 0, "Name", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", ""); - RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", ""); - parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); - RNA_def_function_return(func, parm); - - func= RNA_def_function(srna, "find_modal", "rna_keymap_find_modal"); // find_keymap_modal - parm= RNA_def_string(func, "name", "", 0, "Operator Name", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); - parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); - RNA_def_function_return(func, parm); - + RNA_api_keymaps(srna); } static void rna_def_keyconfig(BlenderRNA *brna) { StructRNA *srna; - // FunctionRNA *func; - // PropertyRNA *parm; PropertyRNA *prop; static EnumPropertyItem map_type_items[] = { @@ -1794,8 +1619,8 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Items", "Items in the keymap, linking an operator to an input event"); rna_def_keymap_items(brna, prop); - prop= RNA_def_property(srna, "is_user_defined", PROP_BOOLEAN, PROP_NEVER_NULL); - RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_USER); + prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NEVER_NULL); + RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_USER_MODIFIED); RNA_def_property_ui_text(prop, "User Defined", "Keymap is defined by the user"); prop= RNA_def_property(srna, "is_modal", PROP_BOOLEAN, PROP_NONE); @@ -1826,6 +1651,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Identifier", "Identifier of operator to call on input event"); RNA_def_property_string_funcs(prop, "rna_wmKeyMapItem_idname_get", "rna_wmKeyMapItem_idname_length", "rna_wmKeyMapItem_idname_set"); RNA_def_struct_name_property(srna, prop); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -1836,62 +1662,73 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_struct_type(prop, "OperatorProperties"); RNA_def_property_pointer_funcs(prop, "rna_KeyMapItem_properties_get", NULL, NULL, NULL); RNA_def_property_ui_text(prop, "Properties", "Properties to set when the operator is called"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "map_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "maptype"); RNA_def_property_enum_items(prop, map_type_items); RNA_def_property_enum_funcs(prop, "rna_wmKeyMapItem_map_type_get", "rna_wmKeyMapItem_map_type_set", NULL); RNA_def_property_ui_text(prop, "Map Type", "Type of event mapping"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); RNA_def_property_enum_items(prop, event_type_items); RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_KeyMapItem_type_itemf"); RNA_def_property_ui_text(prop, "Type", "Type of event"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "value", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "val"); RNA_def_property_enum_items(prop, event_value_items); RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_KeyMapItem_value_itemf"); RNA_def_property_ui_text(prop, "Value", ""); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "id", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "id"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "id", "ID of the item"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "any", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_KeyMapItem_any_getf", "rna_KeyMapItem_any_setf"); RNA_def_property_ui_text(prop, "Any", "Any modifier keys pressed"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "shift", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "shift", 0); // RNA_def_property_enum_sdna(prop, NULL, "shift"); // RNA_def_property_enum_items(prop, keymap_modifiers_items); RNA_def_property_ui_text(prop, "Shift", "Shift key pressed"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "ctrl", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ctrl", 0); // RNA_def_property_enum_sdna(prop, NULL, "ctrl"); // RNA_def_property_enum_items(prop, keymap_modifiers_items); RNA_def_property_ui_text(prop, "Ctrl", "Control key pressed"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "alt", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "alt", 0); // RNA_def_property_enum_sdna(prop, NULL, "alt"); // RNA_def_property_enum_items(prop, keymap_modifiers_items); RNA_def_property_ui_text(prop, "Alt", "Alt key pressed"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "oskey", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "oskey", 0); // RNA_def_property_enum_sdna(prop, NULL, "oskey"); // RNA_def_property_enum_items(prop, keymap_modifiers_items); RNA_def_property_ui_text(prop, "OS Key", "Operating system key pressed"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "key_modifier", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "keymodifier"); RNA_def_property_enum_items(prop, event_type_items); RNA_def_property_ui_text(prop, "Key Modifier", "Regular key pressed as a modifier"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_EXPANDED); @@ -1903,15 +1740,21 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_enum_items(prop, keymap_propvalue_items); RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_KeyMapItem_propvalue_itemf"); RNA_def_property_ui_text(prop, "Property Value", "The value this event translates to in a modal keymap"); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "active", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item"); RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); + prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_USER_MODIFIED); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "User Modified", "Is this keymap item modified by the user"); + prop= RNA_def_property(srna, "is_user_defined", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "User Defined", "Is this keymap item user defined (doesn't just override a builtin item)"); + RNA_def_property_ui_text(prop, "User Defined", "Is this keymap item user defined (doesn't just replace a builtin item)"); RNA_def_property_boolean_funcs(prop, "rna_KeyMapItem_userdefined_get", NULL); RNA_api_keymapitem(srna); diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index d44b68950f7..89e946f498a 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -84,6 +84,85 @@ void rna_event_timer_remove(struct wmWindowManager *wm, wmTimer *timer) WM_event_remove_timer(wm, timer->win, timer); } +static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km, ReportList *reports, const char *idname, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier) +{ +// wmWindowManager *wm = CTX_wm_manager(C); + char idname_bl[OP_MAX_TYPENAME]; + int modifier= 0; + + /* only on non-modal maps */ + if (km->flag & KEYMAP_MODAL) { + BKE_report(reports, RPT_ERROR, "Not a non-modal keymap."); + return NULL; + } + + WM_operator_bl_idname(idname_bl, idname); + + if(shift) modifier |= KM_SHIFT; + if(ctrl) modifier |= KM_CTRL; + if(alt) modifier |= KM_ALT; + if(oskey) modifier |= KM_OSKEY; + + if(any) modifier = KM_ANY; + + return WM_keymap_add_item(km, idname_bl, type, value, modifier, keymodifier); +} + +static wmKeyMapItem *rna_KeyMap_item_new_modal(wmKeyMap *km, ReportList *reports, const char *propvalue_str, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier) +{ + int modifier= 0; + int propvalue = 0; + + /* only modal maps */ + if ((km->flag & KEYMAP_MODAL) == 0) { + BKE_report(reports, RPT_ERROR, "Not a modal keymap."); + return NULL; + } + + if (!km->modal_items) { + BKE_report(reports, RPT_ERROR, "No property values defined."); + return NULL; + } + + + if(RNA_enum_value_from_id(km->modal_items, propvalue_str, &propvalue)==0) { + BKE_report(reports, RPT_WARNING, "Property value not in enumeration."); + } + + if(shift) modifier |= KM_SHIFT; + if(ctrl) modifier |= KM_CTRL; + if(alt) modifier |= KM_ALT; + if(oskey) modifier |= KM_OSKEY; + + if(any) modifier = KM_ANY; + + return WM_modalkeymap_add_item(km, type, value, modifier, keymodifier, propvalue); +} + +static wmKeyMap *rna_keymap_new(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid, int modal) +{ + if (modal == 0) { + return WM_keymap_find(keyconf, idname, spaceid, regionid); + } else { + return WM_modalkeymap_add(keyconf, idname, NULL); /* items will be lazy init */ + } +} + +static wmKeyMap *rna_keymap_find(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid) +{ + return WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); +} + +static wmKeyMap *rna_keymap_find_modal(wmKeyConfig *UNUSED(keyconf), const char *idname) +{ + wmOperatorType *ot = WM_operatortype_find(idname, 0); + + if (!ot) + return NULL; + else + return ot->modalkeymap; +} + #else #define WM_GEN_INVOKE_EVENT (1<<0) @@ -301,11 +380,8 @@ void RNA_api_keymap(StructRNA *srna) parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Active key map."); RNA_def_function_return(func, parm); - func= RNA_def_function(srna, "copy_to_user", "WM_keymap_copy_to_user"); - parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "User editable key map."); - RNA_def_function_return(func, parm); - - RNA_def_function(srna, "restore_to_default", "WM_keymap_restore_to_default"); + func= RNA_def_function(srna, "restore_to_default", "WM_keymap_restore_to_default"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); func= RNA_def_function(srna, "restore_item_to_default", "rna_keymap_restore_item_to_default"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); @@ -324,5 +400,102 @@ void RNA_api_keymapitem(StructRNA *srna) parm= RNA_def_boolean(func, "result", 0, "Comparison result", ""); RNA_def_function_return(func, parm); } + +void RNA_api_keymapitems(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "new", "rna_KeyMap_item_new"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + parm= RNA_def_string(func, "idname", "", 0, "Operator Identifier", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_enum(func, "type", event_type_items, 0, "Type", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_enum(func, "value", event_value_items, 0, "Value", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_boolean(func, "any", 0, "Any", ""); + RNA_def_boolean(func, "shift", 0, "Shift", ""); + RNA_def_boolean(func, "ctrl", 0, "Ctrl", ""); + RNA_def_boolean(func, "alt", 0, "Alt", ""); + RNA_def_boolean(func, "oskey", 0, "OS Key", ""); + RNA_def_enum(func, "key_modifier", event_type_items, 0, "Key Modifier", ""); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "new_modal", "rna_KeyMap_item_new_modal"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + parm= RNA_def_string(func, "propvalue", "", 0, "Property Value", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_enum(func, "type", event_type_items, 0, "Type", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_enum(func, "value", event_value_items, 0, "Value", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_boolean(func, "any", 0, "Any", ""); + RNA_def_boolean(func, "shift", 0, "Shift", ""); + RNA_def_boolean(func, "ctrl", 0, "Ctrl", ""); + RNA_def_boolean(func, "alt", 0, "Alt", ""); + RNA_def_boolean(func, "oskey", 0, "OS Key", ""); + RNA_def_enum(func, "key_modifier", event_type_items, 0, "Key Modifier", ""); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "remove", "WM_keymap_remove_item"); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + + func= RNA_def_function(srna, "from_id", "WM_keymap_item_find_id"); + parm= RNA_def_property(func, "id", PROP_INT, PROP_NONE); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_ui_text(parm, "id", "ID of the item"); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); + RNA_def_function_return(func, parm); +} + +void RNA_api_keymaps(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "new", "rna_keymap_new"); // add_keymap + parm= RNA_def_string(func, "name", "", 0, "Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", ""); + RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", ""); + RNA_def_boolean(func, "modal", 0, "Modal", ""); + parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Added key map."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "find", "rna_keymap_find"); // find_keymap + parm= RNA_def_string(func, "name", "", 0, "Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", ""); + RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", ""); + parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "find_modal", "rna_keymap_find_modal"); // find_keymap_modal + parm= RNA_def_string(func, "name", "", 0, "Operator Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); + RNA_def_function_return(func, parm); +} + +void RNA_api_keyconfigs(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "new", "WM_keyconfig_new_user"); // add_keyconfig + parm= RNA_def_string(func, "name", "", 0, "Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Added key configuration."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "remove", "WM_keyconfig_remove"); // remove_keyconfig + parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Removed key configuration."); + RNA_def_property_flag(parm, PROP_REQUIRED); +} + #endif diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index e6325e2101a..42c3096dfc9 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -41,6 +41,7 @@ /* dna-savable wmStructs here */ #include "DNA_windowmanager_types.h" +#include "WM_keymap.h" #ifdef __cplusplus extern "C" { @@ -114,50 +115,9 @@ void WM_paint_cursor_end(struct wmWindowManager *wm, void *handle); void WM_cursor_warp (struct wmWindow *win, int x, int y); - /* keyconfig and keymap */ -wmKeyConfig *WM_keyconfig_new (struct wmWindowManager *wm, const char *idname); -wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname); -void WM_keyconfig_remove (struct wmWindowManager *wm, struct wmKeyConfig *keyconf); -void WM_keyconfig_free (struct wmKeyConfig *keyconf); -void WM_keyconfig_userdef(void); - -void WM_keymap_init (struct bContext *C); -void WM_keymap_free (struct wmKeyMap *keymap); - -wmKeyMapItem *WM_keymap_verify_item(struct wmKeyMap *keymap, const char *idname, int type, - int val, int modifier, int keymodifier); -wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, int type, - int val, int modifier, int keymodifier); -wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, int type, - int val, int modifier, int keymodifier); - -void WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); -char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len); - -wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid); -wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid); -wmKeyMap *WM_keymap_find_all(const struct bContext *C, const char *idname, int spaceid, int regionid); -wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap); -wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname); -int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap); -wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); -void WM_keymap_restore_to_default(struct wmKeyMap *keymap); -void WM_keymap_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties); -void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); - -wmKeyMapItem *WM_keymap_item_find_id(struct wmKeyMap *keymap, int id); -int WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2); + /* event map */ int WM_userdef_event_map(int kmitype); -wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, const char *idname, struct EnumPropertyItem *items); -wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, const char *idname); -wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value); -void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname); - -const char *WM_key_event_string(short type); -int WM_key_event_operator_id(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, int hotkey, struct wmKeyMap **keymap_r); -char *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, char *str, int len); - /* handlers */ struct wmEventHandler *WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap); diff --git a/source/blender/windowmanager/WM_keymap.h b/source/blender/windowmanager/WM_keymap.h new file mode 100644 index 00000000000..e00cd288c9a --- /dev/null +++ b/source/blender/windowmanager/WM_keymap.h @@ -0,0 +1,104 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef WM_KEYMAP_H +#define WM_KEYMAP_H + +/** \file WM_keymap.h + * \ingroup wm + */ + +/* dna-savable wmStructs here */ +#include "DNA_windowmanager_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct EnumPropertyItem; + +/* Key Configuration */ + +wmKeyConfig *WM_keyconfig_new (struct wmWindowManager *wm, const char *idname); +wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname); +void WM_keyconfig_remove (struct wmWindowManager *wm, struct wmKeyConfig *keyconf); +void WM_keyconfig_free (struct wmKeyConfig *keyconf); + +void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname); + +void WM_keyconfig_update(struct wmWindowManager *wm); +void WM_keyconfig_update_tag(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); + +/* Keymap */ + +void WM_keymap_init (struct bContext *C); +void WM_keymap_free (struct wmKeyMap *keymap); + +wmKeyMapItem *WM_keymap_verify_item(struct wmKeyMap *keymap, const char *idname, int type, + int val, int modifier, int keymodifier); +wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, int type, + int val, int modifier, int keymodifier); +wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, int type, + int val, int modifier, int keymodifier); + +void WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); +char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len); + +wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_find_all(const struct bContext *C, const char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap); +wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname); + +wmKeyMapItem *WM_keymap_item_find_id(struct wmKeyMap *keymap, int id); +int WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2); + +/* Modal Keymap */ + +wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, const char *idname, struct EnumPropertyItem *items); +wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, const char *idname); +wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value); +void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname); + +/* Keymap Editor */ + +void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct bContext *C); +void WM_keymap_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties); +void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); + +/* Key Event */ + +const char *WM_key_event_string(short type); +int WM_key_event_operator_id(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, int hotkey, struct wmKeyMap **keymap_r); +char *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, char *str, int len); + +#ifdef __cplusplus +} +#endif + +#endif /* WM_KEYMAP_H */ + diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index a535c0bc1f8..1d5cf1cdc53 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -210,12 +210,18 @@ void WM_keymap_init(bContext *C) if(!wm->defaultconf) wm->defaultconf= WM_keyconfig_new(wm, "Blender"); + if(!wm->addonconf) + wm->addonconf= WM_keyconfig_new(wm, "Blender Addon"); + if(!wm->userconf) + wm->userconf= WM_keyconfig_new(wm, "Blender User"); - if(wm && CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) { + if(CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) { /* create default key config */ wm_window_keymap(wm->defaultconf); ED_spacetypes_keymap(wm->defaultconf); - WM_keyconfig_userdef(); + + WM_keyconfig_update_tag(NULL, NULL); + WM_keyconfig_update(wm); wm->initialized |= WM_INIT_KEYMAP; } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 2f0c1a72be9..0dac0bd7401 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1735,6 +1735,9 @@ void wm_event_do_handlers(bContext *C) wmWindowManager *wm= CTX_wm_manager(C); wmWindow *win; + /* update key configuration before handling events */ + WM_keyconfig_update(wm); + for(win= wm->windows.first; win; win= win->next) { wmEvent *event; @@ -1938,6 +1941,9 @@ void wm_event_do_handlers(bContext *C) CTX_wm_window_set(C, NULL); } + + /* update key configuration after handling events */ + WM_keyconfig_update(wm); } /* ********** filesector handling ************ */ diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 27fc0caeccc..20f9d2237c2 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -224,6 +224,14 @@ static void wm_window_match_do(bContext *C, ListBase *oldwmlist) oldwm= oldwmlist->first; wm= G.main->wm.first; + /* move addon key configuration to new wm, to preserve their keymaps */ + if(oldwm->addonconf) { + wm->addonconf= oldwm->addonconf; + BLI_remlink(&oldwm->keyconfigs, oldwm->addonconf); + oldwm->addonconf= NULL; + BLI_addtail(&wm->keyconfigs, wm->addonconf); + } + /* ensure making new keymaps and set space types */ wm->initialized= 0; wm->winactive= NULL; @@ -794,11 +802,14 @@ int WM_write_homefile(bContext *C, wmOperator *op) wmWindow *win= CTX_wm_window(C); char filepath[FILE_MAXDIR+FILE_MAXFILE]; int fileflags; - + /* check current window and close it if temp */ if(win->screen->temp) wm_window_close(C, wm, win); + /* update keymaps in user preferences */ + WM_keyconfig_update(wm); + BLI_make_file_string("/", filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_STARTUP_FILE); printf("trying to save homefile at %s ", filepath); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 1720c738dd7..bf48f0e21e4 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -61,14 +61,67 @@ #include "wm_event_system.h" #include "wm_event_types.h" -/* ********************* key config ***********************/ +/******************************* Keymap Item ********************************** + * Item in a keymap, that maps from an event to an operator or modal map item */ -static void keymap_properties_set(wmKeyMapItem *kmi) +static wmKeyMapItem *wm_keymap_item_copy(wmKeyMapItem *kmi) +{ + wmKeyMapItem *kmin = MEM_dupallocN(kmi); + + kmin->prev= kmin->next= NULL; + kmin->flag &= ~KMI_UPDATE; + + if(kmin->properties) { + kmin->ptr= MEM_callocN(sizeof(PointerRNA), "UserKeyMapItemPtr"); + WM_operator_properties_create(kmin->ptr, kmin->idname); + + kmin->properties= IDP_CopyProperty(kmin->properties); + kmin->ptr->data= kmin->properties; + } + + return kmin; +} + +static void wm_keymap_item_free(wmKeyMapItem *kmi) +{ + /* not kmi itself */ + if(kmi->ptr) { + WM_operator_properties_free(kmi->ptr); + MEM_freeN(kmi->ptr); + } +} + +static void wm_keymap_item_properties_set(wmKeyMapItem *kmi) { WM_operator_properties_alloc(&(kmi->ptr), &(kmi->properties), kmi->idname); WM_operator_properties_sanitize(kmi->ptr, 1); } +static int wm_keymap_item_equals_result(wmKeyMapItem *a, wmKeyMapItem *b) +{ + if(strcmp(a->idname, b->idname) != 0) + return 0; + + if(!((a->ptr==NULL && b->ptr==NULL) || + (a->ptr && b->ptr && IDP_EqualsProperties(a->ptr->data, b->ptr->data)))) + return 0; + + return (a->propvalue == b->propvalue); +} + +static int wm_keymap_item_equals(wmKeyMapItem *a, wmKeyMapItem *b) +{ + return (wm_keymap_item_equals_result(a, b) && + a->type == b->type && + a->val == b->val && + a->shift == b->shift && + a->ctrl == b->ctrl && + a->alt == b->alt && + a->oskey == b->oskey && + a->keymodifier == b->keymodifier && + a->maptype == b->maptype); +} + /* properties can be NULL, otherwise the arg passed is used and ownership is given to the kmi */ void WM_keymap_properties_reset(wmKeyMapItem *kmi, struct IDProperty *properties) { @@ -78,9 +131,41 @@ void WM_keymap_properties_reset(wmKeyMapItem *kmi, struct IDProperty *properties kmi->ptr = NULL; kmi->properties = properties; - keymap_properties_set(kmi); + wm_keymap_item_properties_set(kmi); +} + +/**************************** Keymap Diff Item ********************************* + * Item in a diff keymap, used for saving diff of keymaps in user preferences */ + +static wmKeyMapDiffItem *wm_keymap_diff_item_copy(wmKeyMapDiffItem *kmdi) +{ + wmKeyMapDiffItem *kmdin = MEM_dupallocN(kmdi); + + kmdin->next = kmdin->prev = NULL; + if(kmdi->add_item) + kmdin->add_item = wm_keymap_item_copy(kmdi->add_item); + if(kmdi->remove_item) + kmdin->remove_item = wm_keymap_item_copy(kmdi->remove_item); + + return kmdin; +} + +static void wm_keymap_diff_item_free(wmKeyMapDiffItem *kmdi) +{ + if(kmdi->remove_item) { + wm_keymap_item_free(kmdi->remove_item); + MEM_freeN(kmdi->remove_item); + } + if(kmdi->add_item) { + wm_keymap_item_free(kmdi->add_item); + MEM_freeN(kmdi->add_item); + } } +/***************************** Key Configuration ****************************** + * List of keymaps for all editors, modes, ... . There is a builtin default key + * configuration, a user key configuration, and other preset configurations. */ + wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname) { wmKeyConfig *keyconf; @@ -106,6 +191,7 @@ void WM_keyconfig_remove(wmWindowManager *wm, wmKeyConfig *keyconf) if (keyconf) { if (strncmp(U.keyconfigstr, keyconf->idname, sizeof(U.keyconfigstr)) == 0) { BLI_strncpy(U.keyconfigstr, wm->defaultconf->idname, sizeof(U.keyconfigstr)); + WM_keyconfig_update_tag(NULL, NULL); } BLI_remlink(&wm->keyconfigs, keyconf); @@ -125,21 +211,6 @@ void WM_keyconfig_free(wmKeyConfig *keyconf) MEM_freeN(keyconf); } -void WM_keyconfig_userdef(void) -{ - wmKeyMap *km; - wmKeyMapItem *kmi; - - for(km=U.keymaps.first; km; km=km->next) { - /* modal keymaps don't have operator properties */ - if ((km->flag & KEYMAP_MODAL) == 0) { - for(kmi=km->items.first; kmi; kmi=kmi->next) { - keymap_properties_set(kmi); - } - } - } -} - static wmKeyConfig *wm_keyconfig_list_find(ListBase *lb, char *idname) { wmKeyConfig *kc; @@ -151,23 +222,84 @@ static wmKeyConfig *wm_keyconfig_list_find(ListBase *lb, char *idname) return NULL; } -/* ************************ free ************************* */ +wmKeyConfig *WM_keyconfig_active(wmWindowManager *wm) +{ + wmKeyConfig *keyconf; -void WM_keymap_free(wmKeyMap *keymap) + /* first try from preset */ + keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); + if(keyconf) + return keyconf; + + /* otherwise use default */ + return wm->defaultconf; +} + +void WM_keyconfig_set_active(wmWindowManager *wm, const char *idname) { - wmKeyMapItem *kmi; + /* setting a different key configuration as active: we ensure all is + updated properly before and after making the change */ + + WM_keyconfig_update(wm); + + BLI_strncpy(U.keyconfigstr, idname, sizeof(U.keyconfigstr)); + + WM_keyconfig_update_tag(NULL, NULL); + WM_keyconfig_update(wm); +} + +/********************************** Keymap ************************************* + * List of keymap items for one editor, mode, modal operator, ... */ + +static wmKeyMap *wm_keymap_new(const char *idname, int spaceid, int regionid) +{ + wmKeyMap *km= MEM_callocN(sizeof(struct wmKeyMap), "keymap list"); + + BLI_strncpy(km->idname, idname, KMAP_MAX_NAME); + km->spaceid= spaceid; + km->regionid= regionid; + + return km; +} + +static wmKeyMap *wm_keymap_copy(wmKeyMap *keymap) +{ + wmKeyMap *keymapn = MEM_dupallocN(keymap); + wmKeyMapItem *kmi, *kmin; + wmKeyMapDiffItem *kmdi, *kmdin; + + keymapn->modal_items= keymap->modal_items; + keymapn->poll= keymap->poll; + keymapn->items.first= keymapn->items.last= NULL; + keymapn->flag &= ~(KEYMAP_UPDATE|KEYMAP_EXPANDED); + + for(kmdi=keymap->diff_items.first; kmdi; kmdi=kmdi->next) { + kmdin= wm_keymap_diff_item_copy(kmdi); + BLI_addtail(&keymapn->items, kmdin); + } for(kmi=keymap->items.first; kmi; kmi=kmi->next) { - if(kmi->ptr) { - WM_operator_properties_free(kmi->ptr); - MEM_freeN(kmi->ptr); - } + kmin= wm_keymap_item_copy(kmi); + BLI_addtail(&keymapn->items, kmin); } - BLI_freelistN(&keymap->items); + return keymapn; } -/* ***************** generic call, exported **************** */ +void WM_keymap_free(wmKeyMap *keymap) +{ + wmKeyMapItem *kmi; + wmKeyMapDiffItem *kmdi; + + for(kmdi=keymap->diff_items.first; kmdi; kmdi=kmdi->next) + wm_keymap_diff_item_free(kmdi); + + for(kmi=keymap->items.first; kmi; kmi=kmi->next) + wm_keymap_item_free(kmi); + + BLI_freelistN(&keymap->diff_items); + BLI_freelistN(&keymap->items); +} static void keymap_event_set(wmKeyMapItem *kmi, short type, short val, int modifier, short keymodifier) { @@ -229,7 +361,7 @@ wmKeyMapItem *WM_keymap_verify_item(wmKeyMap *keymap, const char *idname, int ty keymap_item_set_id(keymap, kmi); keymap_event_set(kmi, type, val, modifier, keymodifier); - keymap_properties_set(kmi); + wm_keymap_item_properties_set(kmi); } return kmi; } @@ -243,10 +375,12 @@ wmKeyMapItem *WM_keymap_add_item(wmKeyMap *keymap, const char *idname, int type, BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME); keymap_event_set(kmi, type, val, modifier, keymodifier); - keymap_properties_set(kmi); + wm_keymap_item_properties_set(kmi); keymap_item_set_id(keymap, kmi); + WM_keyconfig_update_tag(keymap, kmi); + return kmi; } @@ -266,6 +400,232 @@ void WM_keymap_remove_item(wmKeyMap *keymap, wmKeyMapItem *kmi) MEM_freeN(kmi->ptr); } BLI_freelinkN(&keymap->items, kmi); + + WM_keyconfig_update_tag(keymap, kmi); + } +} + +/************************** Keymap Diff and Patch **************************** + * Rather than saving the entire keymap for user preferences, we only save a + * diff so that changes in the defaults get synced. This system is not perfect + * but works better than overriding the keymap entirely when only few items + * are changed. */ + +static void wm_keymap_addon_add(wmKeyMap *keymap, wmKeyMap *addonmap) +{ + wmKeyMapItem *kmi, *kmin; + + for(kmi=addonmap->items.first; kmi; kmi=kmi->next) { + kmin = wm_keymap_item_copy(kmi); + keymap_item_set_id(keymap, kmin); + BLI_addhead(&keymap->items, kmin); + } +} + +static wmKeyMapItem *wm_keymap_find_item_equals(wmKeyMap *km, wmKeyMapItem *needle) +{ + wmKeyMapItem *kmi; + + for(kmi=km->items.first; kmi; kmi=kmi->next) + if(wm_keymap_item_equals(kmi, needle)) + return kmi; + + return NULL; +} + +static wmKeyMapItem *wm_keymap_find_item_equals_result(wmKeyMap *km, wmKeyMapItem *needle) +{ + wmKeyMapItem *kmi; + + for(kmi=km->items.first; kmi; kmi=kmi->next) + if(wm_keymap_item_equals_result(kmi, needle)) + return kmi; + + return NULL; +} + +static void wm_keymap_diff(wmKeyMap *diff_km, wmKeyMap *from_km, wmKeyMap *to_km, wmKeyMap *orig_km, wmKeyMap *addon_km) +{ + wmKeyMapItem *kmi, *to_kmi, *orig_kmi; + wmKeyMapDiffItem *kmdi; + + for(kmi=from_km->items.first; kmi; kmi=kmi->next) { + to_kmi = WM_keymap_item_find_id(to_km, kmi->id); + + if(!to_kmi) { + /* remove item */ + kmdi = MEM_callocN(sizeof(wmKeyMapDiffItem), "wmKeyMapDiffItem"); + kmdi->remove_item = wm_keymap_item_copy(kmi); + BLI_addtail(&diff_km->diff_items, kmdi); + } + else if(to_kmi && !wm_keymap_item_equals(kmi, to_kmi)) { + /* replace item */ + kmdi = MEM_callocN(sizeof(wmKeyMapDiffItem), "wmKeyMapDiffItem"); + kmdi->remove_item = wm_keymap_item_copy(kmi); + kmdi->add_item = wm_keymap_item_copy(to_kmi); + BLI_addtail(&diff_km->diff_items, kmdi); + } + + /* sync expanded flag back to original so we don't loose it on repatch */ + if(to_kmi) { + orig_kmi = WM_keymap_item_find_id(orig_km, kmi->id); + + if(!orig_kmi) + orig_kmi = wm_keymap_find_item_equals(addon_km, kmi); + + if(orig_kmi) { + orig_kmi->flag &= ~KMI_EXPANDED; + orig_kmi->flag |= (to_kmi->flag & KMI_EXPANDED); + } + } + } + + for(kmi=to_km->items.first; kmi; kmi=kmi->next) { + if(kmi->id < 0) { + /* add item */ + kmdi = MEM_callocN(sizeof(wmKeyMapDiffItem), "wmKeyMapDiffItem"); + kmdi->add_item = wm_keymap_item_copy(kmi); + BLI_addtail(&diff_km->diff_items, kmdi); + } + } +} + +static void wm_keymap_patch(wmKeyMap *km, wmKeyMap *diff_km) +{ + wmKeyMapDiffItem *kmdi; + wmKeyMapItem *kmi_remove, *kmi_add; + + for(kmdi=diff_km->diff_items.first; kmdi; kmdi=kmdi->next) { + /* find item to remove */ + kmi_remove = NULL; + if(kmdi->remove_item) { + kmi_remove = wm_keymap_find_item_equals(km, kmdi->remove_item); + if(!kmi_remove) + kmi_remove = wm_keymap_find_item_equals_result(km, kmdi->remove_item); + } + + /* add item */ + if(kmdi->add_item) { + /* only if nothing to remove or item to remove found */ + if(!kmdi->remove_item || kmi_remove) { + kmi_add = wm_keymap_item_copy(kmdi->add_item); + kmi_add->flag |= KMI_USER_MODIFIED; + + if(kmi_remove) { + kmi_add->flag &= ~KMI_EXPANDED; + kmi_add->flag |= (kmi_remove->flag & KMI_EXPANDED); + kmi_add->id = kmi_remove->id; + BLI_insertlinkbefore(&km->items, kmi_remove, kmi_add); + } + else { + keymap_item_set_id(km, kmi_add); + BLI_addtail(&km->items, kmi_add); + } + } + } + + /* remove item */ + if(kmi_remove) { + wm_keymap_item_free(kmi_remove); + BLI_freelinkN(&km->items, kmi_remove); + } + } +} + +static void wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap *addonmap, wmKeyMap *usermap) +{ + wmKeyMap *km; + int expanded = 0; + + /* remove previous keymap in list, we will replace it */ + km = WM_keymap_list_find(lb, defaultmap->idname, defaultmap->spaceid, defaultmap->regionid); + if(km) { + expanded = (km->flag & (KEYMAP_EXPANDED|KEYMAP_CHILDREN_EXPANDED)); + WM_keymap_free(km); + BLI_freelinkN(lb, km); + } + + /* copy new keymap from an existing one */ + if(usermap && !(usermap->flag & KEYMAP_DIFF)) { + /* for compatibiltiy with old user preferences with non-diff + keymaps we override the original entirely */ + wmKeyMapItem *kmi, *orig_kmi; + + km = wm_keymap_copy(usermap); + km->modal_items = defaultmap->modal_items; + km->poll = defaultmap->poll; + + /* try to find corresponding id's for items */ + for(kmi=km->items.first; kmi; kmi=kmi->next) { + orig_kmi = wm_keymap_find_item_equals(defaultmap, kmi); + if(!orig_kmi) + orig_kmi = wm_keymap_find_item_equals_result(defaultmap, kmi); + + if(orig_kmi) + kmi->id = orig_kmi->id; + else + kmi->id = -(km->kmi_id++); + } + + km->flag |= KEYMAP_UPDATE; /* update again to create diff */ + } + else + km = wm_keymap_copy(defaultmap); + + /* add addon keymap items */ + if(addonmap) + wm_keymap_addon_add(km, addonmap); + + /* tag as being user edited */ + if(usermap) + km->flag |= KEYMAP_USER_MODIFIED; + km->flag |= KEYMAP_USER|expanded; + + /* apply user changes of diff keymap */ + if(usermap && (usermap->flag & KEYMAP_DIFF)) + wm_keymap_patch(km, usermap); + + /* add to list */ + BLI_addtail(lb, km); +} + +static void wm_keymap_diff_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap *addonmap, wmKeyMap *km) +{ + wmKeyMap *diffmap, *prevmap, *origmap; + + /* create temporary default + addon keymap for diff */ + origmap = defaultmap; + + if(addonmap) { + defaultmap = wm_keymap_copy(defaultmap); + wm_keymap_addon_add(defaultmap, addonmap); + } + + /* remove previous diff keymap in list, we will replace it */ + prevmap = WM_keymap_list_find(lb, km->idname, km->spaceid, km->regionid); + if(prevmap) { + WM_keymap_free(prevmap); + BLI_freelinkN(lb, prevmap); + } + + /* create diff keymap */ + diffmap= wm_keymap_new(km->idname, km->spaceid, km->regionid); + diffmap->flag |= KEYMAP_DIFF; + wm_keymap_diff(diffmap, defaultmap, km, origmap, addonmap); + + /* add to list if not empty */ + if(diffmap->diff_items.first) { + BLI_addtail(lb, diffmap); + } + else { + WM_keymap_free(diffmap); + MEM_freeN(diffmap); + } + + /* free temporary default map */ + if(addonmap) { + WM_keymap_free(defaultmap); + MEM_freeN(defaultmap); } } @@ -292,11 +652,10 @@ wmKeyMap *WM_keymap_find(wmKeyConfig *keyconf, const char *idname, int spaceid, wmKeyMap *km= WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); if(km==NULL) { - km= MEM_callocN(sizeof(struct wmKeyMap), "keymap list"); - BLI_strncpy(km->idname, idname, KMAP_MAX_NAME); - km->spaceid= spaceid; - km->regionid= regionid; + km= wm_keymap_new(idname, spaceid, regionid); BLI_addtail(&keyconf->keymaps, km); + + WM_keyconfig_update_tag(km, NULL); } return km; @@ -304,29 +663,9 @@ wmKeyMap *WM_keymap_find(wmKeyConfig *keyconf, const char *idname, int spaceid, wmKeyMap *WM_keymap_find_all(const bContext *C, const char *idname, int spaceid, int regionid) { - wmWindowManager *wm = CTX_wm_manager(C); - wmKeyConfig *keyconf; - wmKeyMap *km; - - /* first user defined keymaps */ - km= WM_keymap_list_find(&U.keymaps, idname, spaceid, regionid); - if (km) - return km; - - /* then user key config */ - keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); - if(keyconf) { - km= WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); - if (km) - return km; - } - - /* then use default */ - km= WM_keymap_list_find(&wm->defaultconf->keymaps, idname, spaceid, regionid); - if (km) - return km; - else - return NULL; + wmWindowManager *wm= CTX_wm_manager(C); + + return WM_keymap_list_find(&wm->userconf->keymaps, idname, spaceid, regionid); } /* ****************** modal keymaps ************ */ @@ -366,6 +705,8 @@ wmKeyMapItem *WM_modalkeymap_add_item(wmKeyMap *km, int type, int val, int modif keymap_item_set_id(km, kmi); + WM_keyconfig_update_tag(km, kmi); + return kmi; } @@ -588,169 +929,209 @@ int WM_keymap_item_compare(wmKeyMapItem *k1, wmKeyMapItem *k2) return 1; } -/* ***************** user preferences ******************* */ +/************************* Update Final Configuration ************************* + * On load or other changes, the final user key configuration is rebuilt from + * the preset, addon and user preferences keymaps. We also test if the final + * configuration changed and write the changes to the user preferences. */ + +static int WM_KEYMAP_UPDATE = 0; -int WM_keymap_user_init(wmWindowManager *wm, wmKeyMap *keymap) +void WM_keyconfig_update_tag(wmKeyMap *km, wmKeyMapItem *kmi) { - wmKeyConfig *keyconf; - wmKeyMap *km; + /* quick tag to do delayed keymap updates */ + WM_KEYMAP_UPDATE= 1; - if(!keymap) - return 0; + if(km) + km->flag |= KEYMAP_UPDATE; + if(kmi) + kmi->flag |= KMI_UPDATE; +} - /* init from user key config */ - keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); - if(keyconf) { - km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - if(km) { - keymap->poll= km->poll; /* lazy init */ - keymap->modal_items= km->modal_items; - return 1; - } - } +static int wm_keymap_test_and_clear_update(wmKeyMap *km) +{ + wmKeyMapItem *kmi; + int update; + + update= (km->flag & KEYMAP_UPDATE); + km->flag &= ~KEYMAP_UPDATE; - /* or from default */ - km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - if(km) { - keymap->poll= km->poll; /* lazy init */ - keymap->modal_items= km->modal_items; - return 1; + for(kmi=km->items.first; kmi; kmi=kmi->next) { + update= update || (kmi->flag & KMI_UPDATE); + kmi->flag &= ~KMI_UPDATE; } - - return 0; + + return update; } -wmKeyMap *WM_keymap_active(wmWindowManager *wm, wmKeyMap *keymap) +static wmKeyMap *wm_keymap_preset(wmWindowManager *wm, wmKeyMap *km) { - wmKeyConfig *keyconf; - wmKeyMap *km; + wmKeyConfig *keyconf= WM_keyconfig_active(wm); + wmKeyMap *keymap; + keymap= WM_keymap_list_find(&keyconf->keymaps, km->idname, km->spaceid, km->regionid); if(!keymap) - return NULL; - - /* first user defined keymaps */ - km= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - if(km) { - km->poll= keymap->poll; /* lazy init */ - km->modal_items= keymap->modal_items; - return km; - } - - /* then user key config */ - keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); - if(keyconf) { - km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - if(km) { - km->poll= keymap->poll; /* lazy init */ - km->modal_items= keymap->modal_items; - return km; - } - } + keymap= WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, km->spaceid, km->regionid); - /* then use default */ - km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - return km; + return keymap; } -wmKeyMap *WM_keymap_copy_to_user(wmKeyMap *keymap) +void WM_keyconfig_update(wmWindowManager *wm) { - wmKeyMap *usermap; + wmKeyMap *km, *defaultmap, *addonmap, *usermap; wmKeyMapItem *kmi; + wmKeyMapDiffItem *kmdi; + int compat_update = 0; - usermap= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - - /* XXX this function is only used by RMB setting hotkeys, and it clears maps on 2nd try this way */ - if(keymap==usermap) - return keymap; + if(!WM_KEYMAP_UPDATE) + return; - if(!usermap) { - /* not saved yet, duplicate existing */ - usermap= MEM_dupallocN(keymap); - usermap->modal_items= NULL; - usermap->poll= NULL; - usermap->flag |= KEYMAP_USER; + /* update operator properties for non-modal user keymaps */ + for(km=U.user_keymaps.first; km; km=km->next) { + if((km->flag & KEYMAP_MODAL) == 0) { + for(kmdi=km->diff_items.first; kmdi; kmdi=kmdi->next) { + if(kmdi->add_item) + wm_keymap_item_properties_set(kmdi->add_item); + if(kmdi->remove_item) + wm_keymap_item_properties_set(kmdi->remove_item); + } - BLI_addtail(&U.keymaps, usermap); + for(kmi=km->items.first; kmi; kmi=kmi->next) + wm_keymap_item_properties_set(kmi); + } } - else { - /* already saved, free items for re-copy */ - WM_keymap_free(usermap); + + /* update U.user_keymaps with user key configuration changes */ + for(km=wm->userconf->keymaps.first; km; km=km->next) { + /* only diff if the user keymap was modified */ + if(wm_keymap_test_and_clear_update(km)) { + /* find keymaps */ + defaultmap= wm_keymap_preset(wm, km); + addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid); + + /* diff */ + wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km); + } } - BLI_duplicatelist(&usermap->items, &keymap->items); + /* create user key configuration from preset + addon + user preferences */ + for(km=wm->defaultconf->keymaps.first; km; km=km->next) { + /* find keymaps */ + defaultmap= wm_keymap_preset(wm, km); + addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid); + usermap= WM_keymap_list_find(&U.user_keymaps, km->idname, km->spaceid, km->regionid); - for(kmi=usermap->items.first; kmi; kmi=kmi->next) { - if(kmi->properties) { - kmi->ptr= MEM_callocN(sizeof(PointerRNA), "UserKeyMapItemPtr"); - WM_operator_properties_create(kmi->ptr, kmi->idname); + /* add */ + wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap, addonmap, usermap); - kmi->properties= IDP_CopyProperty(kmi->properties); - kmi->ptr->data= kmi->properties; - } + /* in case of old non-diff keymaps, force extra update to create diffs */ + compat_update = compat_update || (usermap && !(usermap->flag & KEYMAP_DIFF)); } - for(kmi=keymap->items.first; kmi; kmi=kmi->next) - kmi->flag &= ~KMI_EXPANDED; + WM_KEYMAP_UPDATE= 0; + + if(compat_update) { + WM_keyconfig_update_tag(NULL, NULL); + WM_keyconfig_update(wm); + } +} + +/********************************* Event Handling ***************************** + * Handlers have pointers to the keymap in the default configuration. During + * event handling this function is called to get the keymap from the final + * configuration. */ + +wmKeyMap *WM_keymap_active(wmWindowManager *wm, wmKeyMap *keymap) +{ + wmKeyMap *km; + + if(!keymap) + return NULL; + + /* first user defined keymaps */ + km= WM_keymap_list_find(&wm->userconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + + if(km) + return km; - return usermap; + return keymap; } +/******************************* Keymap Editor ******************************** + * In the keymap editor the user key configuration is edited. */ + void WM_keymap_restore_item_to_default(bContext *C, wmKeyMap *keymap, wmKeyMapItem *kmi) { wmWindowManager *wm = CTX_wm_manager(C); - wmKeyConfig *keyconf; - wmKeyMap *km = NULL; + wmKeyMap *defaultmap, *addonmap; + wmKeyMapItem *orig; - /* look in user key config */ - keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); - if(keyconf) { - km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - } + if(!keymap) + return; + + /* construct default keymap from preset + addons */ + defaultmap= wm_keymap_preset(wm, keymap); + addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); - if (!km) { - /* or from default */ - km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + if(addonmap) { + defaultmap = wm_keymap_copy(defaultmap); + wm_keymap_addon_add(defaultmap, addonmap); } - if (km) { - wmKeyMapItem *orig = WM_keymap_item_find_id(km, kmi->id); + /* find original item */ + orig = WM_keymap_item_find_id(defaultmap, kmi->id); - if (orig) { - if(strcmp(orig->idname, kmi->idname) != 0) { - BLI_strncpy(kmi->idname, orig->idname, sizeof(kmi->idname)); + if(orig) { + /* restore to original */ + if(strcmp(orig->idname, kmi->idname) != 0) { + BLI_strncpy(kmi->idname, orig->idname, sizeof(kmi->idname)); + WM_keymap_properties_reset(kmi, NULL); + } - WM_keymap_properties_reset(kmi, NULL); - } - - if (orig->properties) { - kmi->properties= IDP_CopyProperty(orig->properties); - kmi->ptr->data= kmi->properties; + if (orig->properties) { + if(kmi->properties) { + IDP_FreeProperty(kmi->properties); + MEM_freeN(kmi->properties); + kmi->properties= NULL; } - kmi->propvalue = orig->propvalue; - kmi->type = orig->type; - kmi->val = orig->val; - kmi->shift = orig->shift; - kmi->ctrl = orig->ctrl; - kmi->alt = orig->alt; - kmi->oskey = orig->oskey; - kmi->keymodifier = orig->keymodifier; - kmi->maptype = orig->maptype; - + kmi->properties= IDP_CopyProperty(orig->properties); + kmi->ptr->data= kmi->properties; } + kmi->propvalue = orig->propvalue; + kmi->type = orig->type; + kmi->val = orig->val; + kmi->shift = orig->shift; + kmi->ctrl = orig->ctrl; + kmi->alt = orig->alt; + kmi->oskey = orig->oskey; + kmi->keymodifier = orig->keymodifier; + kmi->maptype = orig->maptype; + + WM_keyconfig_update_tag(keymap, kmi); + } + + /* free temporary keymap */ + if(addonmap) { + WM_keymap_free(defaultmap); + MEM_freeN(defaultmap); } } -void WM_keymap_restore_to_default(wmKeyMap *keymap) +void WM_keymap_restore_to_default(wmKeyMap *keymap, bContext *C) { + wmWindowManager *wm = CTX_wm_manager(C); wmKeyMap *usermap; - usermap= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + /* remove keymap from U.user_keymaps and update */ + usermap= WM_keymap_list_find(&U.user_keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(usermap) { WM_keymap_free(usermap); - BLI_freelinkN(&U.keymaps, usermap); + BLI_freelinkN(&U.user_keymaps, usermap); + + WM_keyconfig_update_tag(NULL, NULL); + WM_keyconfig_update(wm); } } @@ -951,3 +1332,4 @@ wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname) return km; } + -- cgit v1.2.3 From d78be1f76209bed9924ff2439ac3f817aee7966c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Aug 2011 04:19:30 +0000 Subject: remove copy modifiers function, now handled in link data operator. --- source/blender/editors/object/object_edit.c | 107 +--------------------------- 1 file changed, 3 insertions(+), 104 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 395705dc029..c8d38218533 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1049,109 +1049,6 @@ static void copymenu_logicbricks(Scene *scene, View3D *v3d, Object *ob) } } -static void copymenu_modifiers(Main *bmain, Scene *scene, View3D *v3d, Object *ob) -{ - Base *base; - int i, event; - char str[512]; - const char *errorstr= NULL; - - strcpy(str, "Copy Modifiers %t"); - - sprintf(str+strlen(str), "|All%%x%d|%%l", NUM_MODIFIER_TYPES); - - for (i=eModifierType_None+1; iflags&eModifierTypeFlag_AcceptsCVs) || - (ob->type==OB_MESH && (mti->flags&eModifierTypeFlag_AcceptsMesh))) { - sprintf(str+strlen(str), "|%s%%x%d", mti->name, i); - } - } - - event = pupmenu(str); - if(event<=0) return; - - for (base= FIRSTBASE; base; base= base->next) { - if(base->object != ob) { - if(TESTBASELIB(v3d, base)) { - - base->object->recalc |= OB_RECALC_OB|OB_RECALC_DATA; - - if (base->object->type==ob->type) { - /* copy all */ - if (event==NUM_MODIFIER_TYPES) { - ModifierData *md; - object_free_modifiers(base->object); - - for (md=ob->modifiers.first; md; md=md->next) { - ModifierData *nmd = NULL; - - if(ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_ParticleInstance)) continue; - - if(md->type == eModifierType_Collision) - continue; - - nmd = modifier_new(md->type); - modifier_copyData(md, nmd); - BLI_addtail(&base->object->modifiers, nmd); - modifier_unique_name(&base->object->modifiers, nmd); - } - - copy_object_particlesystems(base->object, ob); - copy_object_softbody(base->object, ob); - } else { - /* copy specific types */ - ModifierData *md, *mdn; - - /* remove all with type 'event' */ - for (md=base->object->modifiers.first; md; md=mdn) { - mdn= md->next; - if(md->type==event) { - BLI_remlink(&base->object->modifiers, md); - modifier_free(md); - } - } - - /* copy all with type 'event' */ - for (md=ob->modifiers.first; md; md=md->next) { - if (md->type==event) { - - mdn = modifier_new(event); - BLI_addtail(&base->object->modifiers, mdn); - modifier_unique_name(&base->object->modifiers, mdn); - - modifier_copyData(md, mdn); - } - } - - if(event == eModifierType_ParticleSystem) { - object_free_particlesystems(base->object); - copy_object_particlesystems(base->object, ob); - } - else if(event == eModifierType_Softbody) { - object_free_softbody(base->object); - copy_object_softbody(base->object, ob); - } - } - } - else - errorstr= "Did not copy modifiers to other Object types"; - } - } - } - -// if(errorstr) notice(errorstr); - - DAG_scene_sort(bmain, scene); - -} - /* both pointers should exist */ static void copy_texture_space(Object *to, Object *ob) { @@ -1196,6 +1093,7 @@ static void copy_texture_space(Object *to, Object *ob) } +/* UNUSED, keep incase we want to copy functionality for use elsewhere */ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) { Object *ob; @@ -1221,7 +1119,8 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) return; } else if(event==24) { - copymenu_modifiers(bmain, scene, v3d, ob); + /* moved to object_link_modifiers */ + /* copymenu_modifiers(bmain, scene, v3d, ob); */ return; } -- cgit v1.2.3 From d096f271513dd5e10098818d567f35b99ca9c6cb Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 6 Aug 2011 06:11:31 +0000 Subject: Material ray trace transparency animation COLLADA export. --- source/blender/collada/AnimationExporter.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 1ba9bc3cd28..53f3cc9aae3 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -119,11 +119,13 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))) + ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))|| + (!strcmp(transformName, "ior"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } } + } //if (!ob->adt || !ob->adt->action) // fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() @@ -318,7 +320,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if( ma ) target = translate_id(id_name(ma)) + "-effect" - +"/common/" /* should take dynamically */ + get_transform_sid(fcu->rna_path, -1, axis_name, true); + +"/common/" /*profile common is only supported */ + get_transform_sid(fcu->rna_path, -1, axis_name, true); } addChannel(COLLADABU::URI(empty, sampler_id), target); @@ -467,7 +469,7 @@ void AnimationExporter::exportAnimations(Scene *sce) float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); - //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); // compute bone local mat @@ -1017,6 +1019,8 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 13; else if (!strcmp(name, "alpha")) tm_type = 14; + else if (!strcmp(name, "ior")) + tm_type = 15; else tm_type = -1; @@ -1067,6 +1071,9 @@ void AnimationExporter::exportAnimations(Scene *sce) case 14: tm_name = "transparency"; break; + case 15: + tm_name = "index_of_refraction"; + break; default: tm_name = ""; -- cgit v1.2.3 From dc4dede8029801580683551b39f967c206720736 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Aug 2011 06:38:18 +0000 Subject: for UI text drawing use BLF_ascender(fs->uifont_id) rather then BLF_height(fs->uifont_id, "2"), while profiling draw noticed that the hash lookup on the character and utf8 next were being called on every text draw, use BLF_ascender since it doesn't do any lookups. --- source/blender/editors/interface/interface_style.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 5f2a757d2e3..8d4b4209120 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -149,9 +149,9 @@ void uiStyleFontDrawExt(uiFontStyle *fs, rcti *rect, const char *str, int xofs=0, yofs; uiStyleFontSet(fs); - - height= BLF_height(fs->uifont_id, "2"); /* correct offset is on baseline, the j is below that */ - yofs= floor( 0.5f*(rect->ymax - rect->ymin - height)); + + height= BLF_ascender(fs->uifont_id); + yofs= ceil( 0.5f*(rect->ymax - rect->ymin - height)); if(fs->align==UI_STYLE_TEXT_CENTER) { xofs= floor( 0.5f*(rect->xmax - rect->xmin - BLF_width(fs->uifont_id, str))); @@ -206,9 +206,9 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, const char *str) uiStyleFontSet(fs); - height= BLF_height(fs->uifont_id, "2"); /* correct offset is on baseline, the j is below that */ + height= BLF_ascender(fs->uifont_id); /* becomes x-offset when rotated */ - xofs= floor( 0.5f*(rect->ymax - rect->ymin - height)) + 1; + xofs= ceil( 0.5f*(rect->ymax - rect->ymin - height)); /* ignore UI_STYLE, always aligned to top */ -- cgit v1.2.3 From e73cf35f4ad470d553540d6adbe89af5cc0c1f4f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 6 Aug 2011 07:01:07 +0000 Subject: Graph Editor "Active Keyframe" settings This commit makes some tweaks to the way that the "active keyframe" settings in the Properties region in the Graph Editor work (for the better, hopefully). Basically, the problem was that previously, these were clunky and non- intuitive to use, since they were just directly displaying the RNA properties for those keyframes for editing purposes. But due to limitations of RNA (i.e. from a RNA pointer to a keyframe, you couldn't see which F-Curve you came from), several things were impossible, notably: 1) Doing proper updates, including validating that the handles are in a valid state - that requires access to the F-Curve to provide to the F-Curve-based curve validity checking functions 2) Having the values of the keyframes display in whatever unit that the property the F-Curve affects displays as - for this, you once again need to know the F-Curve in order to resolve the property that it affects; also the fact that only a single unit could be set for RNA properties further limited things This commit basically gets around these problems by moving away from a layout-engine based approach to one where we attach custom update callbacks and also override the units of the y-co widgets when creating the widgets for these, thus allowing the buttons to work in the ways that animators expect. --- source/blender/editors/interface/interface.c | 12 ++- source/blender/editors/space_graph/graph_buttons.c | 87 +++++++++++++++++++--- 2 files changed, 86 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 40d86ec1147..c7c2235097f 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -3216,11 +3216,17 @@ void uiButSetUnitType(uiBut *but, const int unit_type) int uiButGetUnitType(uiBut *but) { - if(but->rnaprop) { - return RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop)); + int ownUnit = (int)but->unit_type; + + /* own unit define always takes precidence over RNA provided, allowing for overriding + * default value provided in RNA in a few special cases (i.e. Active Keyframe in Graph Edit) + */ + // XXX: this doesn't allow clearing unit completely, though the same could be said for icons + if ((ownUnit != 0) || (but->rnaprop == NULL)) { + return ownUnit << 16; } else { - return ((int)but->unit_type)<<16; + return RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop)); } } diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 3073ff13075..d8fd53b83d8 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -53,6 +53,7 @@ #include "BKE_fcurve.h" #include "BKE_main.h" #include "BKE_screen.h" +#include "BKE_unit.h" #include "WM_api.h" @@ -77,8 +78,7 @@ /* ******************* graph editor space & buttons ************** */ -#define B_NOP 1 -#define B_REDR 2 +#define B_REDR 1 /* -------------- */ @@ -244,6 +244,35 @@ static short get_active_fcurve_keyframe_edit(FCurve *fcu, BezTriple **bezt, BezT return 0; } +/* update callback for active keyframe properties - base updates stuff */ +static void graphedit_activekey_update_cb(bContext *UNUSED(C), void *fcu_ptr, void *UNUSED(bezt_ptr)) +{ + FCurve *fcu = (FCurve *)fcu_ptr; + + /* make sure F-Curve and its handles are still valid after this editing */ + sort_time_fcurve(fcu); + testhandles_fcurve(fcu); +} + +/* update callback for active keyframe properties - handle-editing wrapper */ +static void graphedit_activekey_handles_cb(bContext *C, void *fcu_ptr, void *bezt_ptr) +{ + FCurve *fcu = (FCurve *)fcu_ptr; + BezTriple *bezt = (BezTriple *)bezt_ptr; + + /* since editing the handles, make sure they're set to types which are receptive to editing + * see transform_conversions.c :: createTransGraphEditData(), last step in second loop + */ + if (ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM) && ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM)) { + /* by changing to aligned handles, these can now be moved... */ + bezt->h1= HD_ALIGN; + bezt->h2= HD_ALIGN; + } + + /* now call standard updates */ + graphedit_activekey_update_cb(C, fcu_ptr, bezt_ptr); +} + static void graph_panel_key_properties(const bContext *C, Panel *pa) { bAnimListElem *ale; @@ -262,27 +291,66 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa) /* only show this info if there are keyframes to edit */ if (get_active_fcurve_keyframe_edit(fcu, &bezt, &prevbezt)) { - PointerRNA bezt_ptr; + PointerRNA bezt_ptr, id_ptr, fcu_prop_ptr; + PropertyRNA *fcu_prop = NULL; + uiBut *but; + int unit = B_UNIT_NONE; /* RNA pointer to keyframe, to allow editing */ RNA_pointer_create(ale->id, &RNA_Keyframe, bezt, &bezt_ptr); + /* get property that F-Curve affects, for some unit-conversion magic */ + RNA_id_pointer_create(ale->id, &id_ptr); + if (RNA_path_resolve(&id_ptr, fcu->rna_path, &fcu_prop_ptr, &fcu_prop) && fcu_prop) { + /* determine the unit for this property */ + unit = RNA_SUBTYPE_UNIT(RNA_property_subtype(fcu_prop)); + } + /* interpolation */ col= uiLayoutColumn(layout, 0); uiItemR(col, &bezt_ptr, "interpolation", 0, NULL, ICON_NONE); - /* numerical coordinate editing */ + /* numerical coordinate editing + * - we use the button-versions of the calls so that we can attach special update handlers + * and unit conversion magic that cannot be achieved using a purely RNA-approach + */ + // XXX: col= uiLayoutColumn(layout, 1); /* keyframe itself */ - uiItemR(col, &bezt_ptr, "co", 0, "Key", ICON_NONE); + { + uiItemL(col, "Key:", ICON_NONE); + + but = uiDefButR(block, NUM, B_REDR, "Frame", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "co", 0, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_update_cb, fcu, bezt); + + but = uiDefButR(block, NUM, B_REDR, "Value", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "co", 1, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_update_cb, fcu, bezt); + uiButSetUnitType(but, unit); + } /* previous handle - only if previous was Bezier interpolation */ - if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ)) - uiItemR(col, &bezt_ptr, "handle_left", 0, NULL, ICON_NONE); + if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ)) { + uiItemL(col, "Left Handle:", ICON_NONE); + + but = uiDefButR(block, NUM, B_REDR, "X", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "handle_left", 0, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_handles_cb, fcu, bezt); + + but = uiDefButR(block, NUM, B_REDR, "Y", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "handle_left", 1, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_handles_cb, fcu, bezt); + uiButSetUnitType(but, unit); + } /* next handle - only if current is Bezier interpolation */ - if (bezt->ipo == BEZT_IPO_BEZ) - uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NONE); + if (bezt->ipo == BEZT_IPO_BEZ) { + uiItemL(col, "Right Handle:", ICON_NONE); + + but = uiDefButR(block, NUM, B_REDR, "X", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "handle_right", 0, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_handles_cb, fcu, bezt); + + but = uiDefButR(block, NUM, B_REDR, "Y", 0, 0, UI_UNIT_X, UI_UNIT_Y, &bezt_ptr, "handle_right", 1, 0, 0, -1, -1, NULL); + uiButSetFunc(but, graphedit_activekey_handles_cb, fcu, bezt); + uiButSetUnitType(but, unit); + } } else { if ((fcu->bezt == NULL) && (fcu->modifiers.first)) { @@ -659,7 +727,6 @@ static void graph_panel_drivers(const bContext *C, Panel *pa) static void do_graph_region_modifier_buttons(bContext *C, void *UNUSED(arg), int event) { switch (event) { - case B_REDR: case B_FMODIFIER_REDRAW: // XXX this should send depsgraph updates too WM_event_add_notifier(C, NC_ANIMATION, NULL); // XXX need a notifier specially for F-Modifiers break; -- cgit v1.2.3 From 2f5809d8317e8dd7a3e4edc30a6f709fb632bb83 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Aug 2011 14:57:55 +0000 Subject: make ui_def_but_rna into 2 functions, once which takes a prop, another which takes a propname, no functional change yet but lets us avoid duplicate hash lookups. --- source/blender/editors/interface/interface.c | 238 ++++++++++++++------------- 1 file changed, 128 insertions(+), 110 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 8aed0d58a07..78e24c3bccb 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2490,138 +2490,141 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, return but; } -static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip) +/* ui_def_but_rna_propname and ui_def_but_rna + * both take the same args except for propname vs prop, this is done so we can + * avoid an extra lookup on 'prop' when its already available. + * + * When this kind of change won't disrupt branches, best look into making more + * of our UI functions take prop rather then propname. + */ + +#define UI_DEF_BUT_RNA_DISABLE(but) \ + but->flag |= UI_BUT_DISABLED; \ + but->lock = 1; \ + but->lockstr = "" + + +static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip) { uiBut *but; - PropertyRNA *prop; PropertyType proptype; int freestr= 0, icon= 0; - prop= RNA_struct_find_property(ptr, propname); + proptype= RNA_property_type(prop); - if(prop) { - proptype= RNA_property_type(prop); - - /* use rna values if parameters are not specified */ - if(!str) { - if(type == MENU && proptype == PROP_ENUM) { - EnumPropertyItem *item; - DynStr *dynstr; - int i, totitem, value, free; - - RNA_property_enum_items(block->evil_C, ptr, prop, &item, &totitem, &free); - value= RNA_property_enum_get(ptr, prop); - - dynstr= BLI_dynstr_new(); - BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(prop)); - for(i=0; ievil_C, ptr, prop, &item, &totitem, &free); + value= RNA_property_enum_get(ptr, prop); + + dynstr= BLI_dynstr_new(); + BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(prop)); + for(i=0; ievil_C, ptr, prop, &item, &totitem, &free); - for(i=0; ievil_C, ptr, prop, &item, &totitem, &free); + for(i=0; itype), propname); - str= propname; } /* now create button */ but= ui_def_but(block, type, retval, str, x1, y1, x2, y2, NULL, min, max, a1, a2, tip); - if(prop) { - but->rnapoin= *ptr; - but->rnaprop= prop; + but->rnapoin= *ptr; + but->rnaprop= prop; - if(RNA_property_array_length(&but->rnapoin, but->rnaprop)) - but->rnaindex= index; - else - but->rnaindex= 0; - } + if(RNA_property_array_length(&but->rnapoin, but->rnaprop)) + but->rnaindex= index; + else + but->rnaindex= 0; if(icon) { but->icon= (BIFIconID)icon; @@ -2629,10 +2632,8 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s but->flag|= UI_ICON_LEFT; } - if (!prop || !RNA_property_editable(&but->rnapoin, prop)) { - but->flag |= UI_BUT_DISABLED; - but->lock = 1; - but->lockstr = ""; + if (!RNA_property_editable(&but->rnapoin, prop)) { + UI_DEF_BUT_RNA_DISABLE(but); } /* If this button uses units, calculate the step from this */ @@ -2645,6 +2646,23 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s return but; } +static uiBut *ui_def_but_rna_propname(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip) +{ + PropertyRNA *prop= RNA_struct_find_property(ptr, propname); + uiBut *but; + + if(prop) { + but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip); + } + else { + but= ui_def_but(block, type, retval, propname, x1, y1, x2, y2, NULL, min, max, a1, a2, tip); + + UI_DEF_BUT_RNA_DISABLE(but); + } + + return but; +} + static uiBut *ui_def_but_operator(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip) { uiBut *but; @@ -2857,7 +2875,7 @@ uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, { uiBut *but; - but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); + but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); if(but) ui_check_but(but); @@ -2942,7 +2960,7 @@ uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int { uiBut *but; - but= ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); + but= ui_def_but_rna_propname(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); if(but) { if(icon) { but->icon= (BIFIconID) icon; @@ -3027,7 +3045,7 @@ uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const c { uiBut *but; - but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); + but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); if(but) { if(icon) { but->icon= (BIFIconID) icon; -- cgit v1.2.3 From 79e359f92af3b26d10c3f65ba9548863b7010546 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Aug 2011 16:00:00 +0000 Subject: rna/ui: avoid duplicate property gHash lookups by passing the property when its already been found. added _prop suffix to ui functions which take a prop rather then a propname, may change this later since its not that nice but for gsoc branches this keeps existing UI functions working the same. --- source/blender/editors/include/UI_interface.h | 3 + source/blender/editors/interface/interface.c | 102 +++++++++------------ .../blender/editors/interface/interface_layout.c | 18 ++-- .../blender/editors/interface/interface_regions.c | 29 +++--- .../editors/interface/interface_templates.c | 14 +-- source/blender/editors/interface/interface_utils.c | 43 ++++----- 6 files changed, 95 insertions(+), 114 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 1bae6ce0214..3fe012ea73e 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -410,6 +410,7 @@ uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *s uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip); +uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip); uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip); @@ -429,6 +430,7 @@ uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip); +uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip); uiBut *uiDefIconTextBut(uiBlock *block, @@ -447,6 +449,7 @@ uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int i uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip); +uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip); uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip); /* for passing inputs to ButO buttons */ diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 78e24c3bccb..e31e3a26b40 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2830,6 +2830,16 @@ static void autocomplete_id(bContext *C, char *str, void *arg_v) } } +static void ui_check_but_and_iconize(uiBut *but, int icon) +{ + if(icon) { + but->icon= (BIFIconID) icon; + but->flag|= UI_HAS_ICON; + } + + ui_check_but(but); +} + static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) { int bitIdx= findBitIndex(bit); @@ -2874,31 +2884,29 @@ uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *s uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip) { uiBut *but; - but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); - if(but) - ui_check_but(but); - + ui_check_but(but); + return but; +} +uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip) +{ + uiBut *but; + but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip); + ui_check_but(but); return but; } uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip) { uiBut *but; - but= ui_def_but_operator(block, type, opname, opcontext, str, x1, y1, x2, y2, tip); - if(but) - ui_check_but(but); - + ui_check_but(but); return but; } uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) { uiBut *but= ui_def_but_operator_text(block, type, opname, opcontext, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip); - - if(but) - ui_check_but(but); - + ui_check_but(but); return but; } @@ -2906,12 +2914,7 @@ uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) { uiBut *but= ui_def_but(block, type, retval, "", x1, y1, x2, y2, poin, min, max, a1, a2, tip); - - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - - ui_check_but(but); - + ui_check_but_and_iconize(but, icon); return but; } static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) @@ -2959,29 +2962,22 @@ uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip) { uiBut *but; - but= ui_def_but_rna_propname(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); - if(but) { - if(icon) { - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - } - ui_check_but(but); - } - + ui_check_but_and_iconize(but, icon); + return but; +} +uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip) +{ + uiBut *but; + but= ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip); + ui_check_but_and_iconize(but, icon); return but; } uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip) { uiBut *but; - but= ui_def_but_operator(block, type, opname, opcontext, "", x1, y1, x2, y2, tip); - if(but) { - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - ui_check_but(but); - } - + ui_check_but_and_iconize(but, icon); return but; } @@ -2989,14 +2985,8 @@ uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) { uiBut *but= ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip); - - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - + ui_check_but_and_iconize(but, icon); but->flag|= UI_ICON_LEFT; - - ui_check_but(but); - return but; } static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip) @@ -3044,31 +3034,25 @@ uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int i uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip) { uiBut *but; - but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); - if(but) { - if(icon) { - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - } - but->flag|= UI_ICON_LEFT; - ui_check_but(but); - } - + ui_check_but_and_iconize(but, icon); + but->flag|= UI_ICON_LEFT; + return but; +} +uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip) +{ + uiBut *but; + but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip); + ui_check_but_and_iconize(but, icon); + but->flag|= UI_ICON_LEFT; return but; } uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip) { uiBut *but; - but= ui_def_but_operator(block, type, opname, opcontext, str, x1, y1, x2, y2, tip); - if(but) { - but->icon= (BIFIconID) icon; - but->flag|= UI_HAS_ICON; - but->flag|= UI_ICON_LEFT; - ui_check_but(but); - } - + ui_check_but_and_iconize(but, icon); + but->flag|= UI_ICON_LEFT; return but; } diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 2f0bcc9d5b4..85cc944f03b 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -419,7 +419,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in } } else if(subtype == PROP_DIRECTION) { - uiDefButR(block, BUT_NORMAL, 0, name, x, y, UI_UNIT_X*3, UI_UNIT_Y*3, ptr, RNA_property_identifier(prop), 0, 0, 0, -1, -1, NULL); + uiDefButR_prop(block, BUT_NORMAL, 0, name, x, y, UI_UNIT_X*3, UI_UNIT_Y*3, ptr, prop, 0, 0, 0, -1, -1, NULL); } else { if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand) @@ -461,11 +461,9 @@ static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *pt { uiBut *but; EnumPropertyItem *item; - const char *identifier; const char *name; int a, totitem, itemw, icon, value, free; - identifier= RNA_property_identifier(prop); RNA_property_enum_items(block->evil_C, ptr, prop, &item, &totitem, &free); uiBlockSetCurLayout(block, ui_item_local_sublayout(layout, layout, 1)); @@ -479,11 +477,11 @@ static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *pt itemw= ui_text_icon_width(block->curlayout, name, icon, 0); if(icon && name[0] && !icon_only) - but= uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefIconTextButR_prop(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL); else if(icon) - but= uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefIconButR_prop(block, ROW, 0, icon, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL); else - but= uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefButR_prop(block, ROW, 0, name, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL); if(ui_layout_local_dir(layout) != UI_LAYOUT_HORIZONTAL) but->flag |= UI_TEXT_LEFT; @@ -540,7 +538,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *n WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL); } else if(flag & UI_ITEM_R_EVENT) { - uiDefButR(block, KEYEVT, 0, name, x, y, w, h, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL); + uiDefButR_prop(block, KEYEVT, 0, name, x, y, w, h, ptr, prop, index, 0, 0, -1, -1, NULL); } else if(flag & UI_ITEM_R_FULL_EVENT) { if(RNA_struct_is_a(ptr->type, &RNA_KeyMapItem)) { @@ -548,7 +546,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *n WM_keymap_item_to_string(ptr->data, buf, sizeof(buf)); - but= uiDefButR(block, HOTKEYEVT, 0, buf, x, y, w, h, ptr, RNA_property_identifier(prop), 0, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, HOTKEYEVT, 0, buf, x, y, w, h, ptr, prop, 0, 0, 0, -1, -1, NULL); uiButSetFunc(but, ui_keymap_but_cb, but, NULL); if (flag & UI_ITEM_R_IMMEDIATE) uiButSetFlag(but, UI_BUT_IMMEDIATE); @@ -1008,11 +1006,11 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index const char *identifier= RNA_property_identifier(prop); if(icon && name[0] && !icon_only) - uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + uiDefIconTextButR_prop(block, ROW, 0, icon, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); else if(icon) uiDefIconButR(block, ROW, 0, icon, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL); else - uiDefButR(block, ROW, 0, name, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + uiDefButR_prop(block, ROW, 0, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); } /* expanded enum */ else if(type == PROP_ENUM && (expand || RNA_property_flag(prop) & PROP_ENUM_FLAG)) diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 9e7717260e6..f7460e77030 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1934,31 +1934,31 @@ static void do_picker_new_mode_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(a #define PICKER_TOTAL_W (PICKER_W+PICKER_SPACE+PICKER_BAR) -static void circle_picker(uiBlock *block, PointerRNA *ptr, const char *propname) +static void circle_picker(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop) { uiBut *bt; /* HS circle */ - bt= uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, PICKER_H, PICKER_W, ptr, propname, 0, 0.0, 0.0, 0, 0, "Color"); + bt= uiDefButR_prop(block, HSVCIRCLE, 0, "", 0, 0, PICKER_H, PICKER_W, ptr, prop, 0, 0.0, 0.0, 0, 0, "Color"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); /* value */ - bt= uiDefButR(block, HSVCUBE, 0, "", PICKER_W+PICKER_SPACE,0,PICKER_BAR,PICKER_H, ptr, propname, 0, 0.0, 0.0, UI_GRAD_V_ALT, 0, "Value"); + bt= uiDefButR_prop(block, HSVCUBE, 0, "", PICKER_W+PICKER_SPACE,0,PICKER_BAR,PICKER_H, ptr, prop, 0, 0.0, 0.0, UI_GRAD_V_ALT, 0, "Value"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); } -static void square_picker(uiBlock *block, PointerRNA *ptr, const char *propname, int type) +static void square_picker(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int type) { uiBut *bt; int bartype = type + 3; /* HS square */ - bt= uiDefButR(block, HSVCUBE, 0, "", 0, PICKER_BAR+PICKER_SPACE, PICKER_TOTAL_W, PICKER_H, ptr, propname, 0, 0.0, 0.0, type, 0, "Color"); + bt= uiDefButR_prop(block, HSVCUBE, 0, "", 0, PICKER_BAR+PICKER_SPACE, PICKER_TOTAL_W, PICKER_H, ptr, prop, 0, 0.0, 0.0, type, 0, "Color"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); /* value */ - bt= uiDefButR(block, HSVCUBE, 0, "", 0, 0, PICKER_TOTAL_W, PICKER_BAR, ptr, propname, 0, 0.0, 0.0, bartype, 0, "Value"); + bt= uiDefButR_prop(block, HSVCUBE, 0, "", 0, 0, PICKER_TOTAL_W, PICKER_BAR, ptr, prop, 0, 0.0, 0.0, bartype, 0, "Value"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); } @@ -1973,7 +1973,6 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR static char hexcol[128]; float rgb_gamma[3]; float min, max, step, precision; - const char *propname = RNA_property_identifier(prop); float *hsv= ui_block_hsv_get(block); ui_block_hsv_get(block); @@ -1999,16 +1998,16 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR switch (U.color_picker_type) { case USER_CP_CIRCLE: - circle_picker(block, ptr, propname); + circle_picker(block, ptr, prop); break; case USER_CP_SQUARE_SV: - square_picker(block, ptr, propname, UI_GRAD_SV); + square_picker(block, ptr, prop, UI_GRAD_SV); break; case USER_CP_SQUARE_HS: - square_picker(block, ptr, propname, UI_GRAD_HS); + square_picker(block, ptr, prop, UI_GRAD_HS); break; case USER_CP_SQUARE_HV: - square_picker(block, ptr, propname, UI_GRAD_HV); + square_picker(block, ptr, prop, UI_GRAD_HV); break; } @@ -2027,11 +2026,11 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR /* RGB values */ uiBlockBeginAlign(block); - bt= uiDefButR(block, NUMSLI, 0, "R ", 0, -60, butwidth, UI_UNIT_Y, ptr, propname, 0, 0.0, 0.0, 0, 3, "Red"); + bt= uiDefButR_prop(block, NUMSLI, 0, "R ", 0, -60, butwidth, UI_UNIT_Y, ptr, prop, 0, 0.0, 0.0, 0, 3, "Red"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); - bt= uiDefButR(block, NUMSLI, 0, "G ", 0, -80, butwidth, UI_UNIT_Y, ptr, propname, 1, 0.0, 0.0, 0, 3, "Green"); + bt= uiDefButR_prop(block, NUMSLI, 0, "G ", 0, -80, butwidth, UI_UNIT_Y, ptr, prop, 1, 0.0, 0.0, 0, 3, "Green"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); - bt= uiDefButR(block, NUMSLI, 0, "B ", 0, -100, butwidth, UI_UNIT_Y, ptr, propname, 2, 0.0, 0.0, 0, 3, "Blue"); + bt= uiDefButR_prop(block, NUMSLI, 0, "B ", 0, -100, butwidth, UI_UNIT_Y, ptr, prop, 2, 0.0, 0.0, 0, 3, "Blue"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); // could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", ICON_NONE); @@ -2048,7 +2047,7 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR uiBlockEndAlign(block); if(rgb[3] != FLT_MAX) { - bt= uiDefButR(block, NUMSLI, 0, "A ", 0, -120, butwidth, UI_UNIT_Y, ptr, propname, 3, 0.0, 0.0, 0, 0, "Alpha"); + bt= uiDefButR_prop(block, NUMSLI, 0, "A ", 0, -120, butwidth, UI_UNIT_Y, ptr, prop, 3, 0.0, 0.0, 0, 0, "Alpha"); uiButSetFunc(bt, do_picker_rna_cb, bt, NULL); } else { diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 34315494e14..2d443bbfcd0 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1884,7 +1884,7 @@ void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, const char *propnam col = uiLayoutColumn(layout, 0); row= uiLayoutRow(col, 1); - but= uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, propname, -1, 0.0, 0.0, 0, 0, ""); + but= uiDefButR_prop(block, HSVCIRCLE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, 0, 0, ""); if(lock) { but->flag |= UI_BUT_COLOR_LOCK; @@ -1903,7 +1903,7 @@ void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, const char *propnam uiItemS(row); if (value_slider) - uiDefButR(block, HSVCUBE, 0, "", WHEEL_SIZE+6, 0, 14, WHEEL_SIZE, ptr, propname, -1, softmin, softmax, UI_GRAD_V_ALT, 0, ""); + uiDefButR_prop(block, HSVCUBE, 0, "", WHEEL_SIZE+6, 0, 14, WHEEL_SIZE, ptr, prop, -1, softmin, softmax, UI_GRAD_V_ALT, 0, ""); } /********************* Layer Buttons Template ************************/ @@ -2034,7 +2034,7 @@ static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon, int return rnaicon; } -static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *itemptr, int i, int rnaicon, PointerRNA *activeptr, const char *activepropname) +static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *itemptr, int i, int rnaicon, PointerRNA *activeptr, PropertyRNA *activeprop) { uiBlock *block= uiLayoutGetBlock(layout); uiBut *but; @@ -2048,7 +2048,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe /* list item behind label & other buttons */ sub= uiLayoutRow(overlap, 0); - but= uiDefButR(block, LISTROW, 0, "", 0,0, UI_UNIT_X*10,UI_UNIT_Y, activeptr, activepropname, 0, 0, i, 0, 0, ""); + but= uiDefButR_prop(block, LISTROW, 0, "", 0,0, UI_UNIT_X*10,UI_UNIT_Y, activeptr, activeprop, 0, 0, i, 0, 0, ""); uiButSetFlag(but, UI_BUT_NO_TOOLTIP); sub= uiLayoutRow(overlap, 0); @@ -2201,7 +2201,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * row= uiLayoutRow(col, 0); icon= list_item_icon_get(C, &itemptr, rnaicon, 1); - but= uiDefIconButR(block, LISTROW, 0, icon, 0,0,UI_UNIT_X*10,UI_UNIT_Y, activeptr, activepropname, 0, 0, i, 0, 0, ""); + but= uiDefIconButR_prop(block, LISTROW, 0, icon, 0,0,UI_UNIT_X*10,UI_UNIT_Y, activeptr, activeprop, 0, 0, i, 0, 0, ""); uiButSetFlag(but, UI_BUT_NO_TOOLTIP); @@ -2241,7 +2241,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * /* next/prev button */ sprintf(str, "%d :", i); - but= uiDefIconTextButR(block, NUM, 0, 0, str, 0,0,UI_UNIT_X*5,UI_UNIT_Y, activeptr, activepropname, 0, 0, 0, 0, 0, ""); + but= uiDefIconTextButR_prop(block, NUM, 0, 0, str, 0,0,UI_UNIT_X*5,UI_UNIT_Y, activeptr, activeprop, 0, 0, 0, 0, 0, ""); if(i == 0) uiButSetFlag(but, UI_BUT_DISABLED); } @@ -2280,7 +2280,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * /* create list items */ RNA_PROP_BEGIN(ptr, itemptr, prop) { if(i >= pa->list_scroll && ilist_scroll+items) - list_item_row(C, col, ptr, &itemptr, i, rnaicon, activeptr, activepropname); + list_item_row(C, col, ptr, &itemptr, i, rnaicon, activeptr, activeprop); i++; } diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index 1ec125c2f26..f660dbb9edd 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -51,56 +51,53 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, const char *name, int icon, int x1, int y1, int x2, int y2) { uiBut *but=NULL; - const char *propname= RNA_property_identifier(prop); - char prop_item[MAX_IDPROP_NAME+4]; /* size of the ID prop name + room for [""] */ - int arraylen= RNA_property_array_length(ptr, prop); - - /* support for custom props */ - if(RNA_property_is_idprop(prop)) { - sprintf(prop_item, "[\"%s\"]", propname); - propname= prop_item; - } switch(RNA_property_type(prop)) { - case PROP_BOOLEAN: { + case PROP_BOOLEAN: + { + int arraylen= RNA_property_array_length(ptr, prop); if(arraylen && index == -1) return NULL; if(icon && name && name[0] == '\0') - but= uiDefIconButR(block, ICONTOG, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconButR_prop(block, ICONTOG, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else if(icon) - but= uiDefIconTextButR(block, ICONTOG, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconTextButR_prop(block, ICONTOG, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else - but= uiDefButR(block, OPTION, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, OPTION, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; } case PROP_INT: case PROP_FLOAT: + { + int arraylen= RNA_property_array_length(ptr, prop); + if(arraylen && index == -1) { if(ELEM(RNA_property_subtype(prop), PROP_COLOR, PROP_COLOR_GAMMA)) - but= uiDefButR(block, COL, 0, name, x1, y1, x2, y2, ptr, propname, 0, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, COL, 0, name, x1, y1, x2, y2, ptr, prop, 0, 0, 0, -1, -1, NULL); } else if(RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR) - but= uiDefButR(block, NUMSLI, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, NUMSLI, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else - but= uiDefButR(block, NUM, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, NUM, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; + } case PROP_ENUM: if(icon && name && name[0] == '\0') - but= uiDefIconButR(block, MENU, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconButR_prop(block, MENU, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else if(icon) - but= uiDefIconTextButR(block, MENU, 0, icon, NULL, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconTextButR_prop(block, MENU, 0, icon, NULL, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else - but= uiDefButR(block, MENU, 0, NULL, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, MENU, 0, NULL, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; case PROP_STRING: if(icon && name && name[0] == '\0') - but= uiDefIconButR(block, TEX, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconButR_prop(block, TEX, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else if(icon) - but= uiDefIconTextButR(block, TEX, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconTextButR_prop(block, TEX, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); else - but= uiDefButR(block, TEX, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefButR_prop(block, TEX, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; case PROP_POINTER: { PointerRNA pptr; @@ -112,7 +109,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind if(icon == ICON_DOT) icon= 0; - but= uiDefIconTextButR(block, IDPOIN, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL); + but= uiDefIconTextButR_prop(block, IDPOIN, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; } case PROP_COLLECTION: { -- cgit v1.2.3 From c334bf69a7282254bb80bb2896bd8716930a4adf Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Sat, 6 Aug 2011 17:57:20 +0000 Subject: 3D Audio GSoC: Mixdown functionality. * Mixdown possible via libsndfile and ffmpeg! * Fixed some ffmpeg deprecation warnings * Mixdown UI only shows working Container, Codec and Format combinations! * Minor bugs and warnings fixed --- source/blender/editors/sound/CMakeLists.txt | 8 + source/blender/editors/sound/sound_ops.c | 287 +++++++++++++++++++++++++++- 2 files changed, 287 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt index f66288812ad..11da4165ec8 100644 --- a/source/blender/editors/sound/CMakeLists.txt +++ b/source/blender/editors/sound/CMakeLists.txt @@ -47,4 +47,12 @@ if(WITH_AUDASPACE) add_definitions(-DWITH_AUDASPACE) endif() +if(WITH_CODEC_FFMPEG) + add_definitions(-DWITH_FFMPEG) +endif() + +if(WITH_CODEC_SNDFILE) + add_definitions(-DWITH_SNDFILE) +endif() + blender_add_lib(bf_editor_sound "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 8744ec5dfd6..c6a3663d512 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -82,7 +82,7 @@ static void open_init(bContext *C, wmOperator *op) { PropertyPointerRNA *pprop; - + op->customdata= pprop= MEM_callocN(sizeof(PropertyPointerRNA), "OpenPropertyPointerRNA"); uiIDContextProperty(C, &pprop->ptr, &pprop->prop); } @@ -101,7 +101,7 @@ static int open_exec(bContext *C, wmOperator *op) if(!op->customdata) open_init(C, op); - + if (sound==NULL || sound->playback_handle == NULL) { if(op->customdata) MEM_freeN(op->customdata); BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); @@ -120,15 +120,15 @@ static int open_exec(bContext *C, wmOperator *op) if (RNA_boolean_get(op->ptr, "cache")) { sound_cache(sound, 0); } - + /* hook into UI */ pprop= op->customdata; - + if(pprop->prop) { /* when creating new ID blocks, use is already 1, but RNA * pointer se also increases user, so this compensates it */ sound->id.us--; - + RNA_id_pointer_create(&sound->id, &idptr); RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); @@ -153,12 +153,12 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *event) { if(!RNA_property_is_set(op->ptr, "relative_path")) RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - + if(RNA_property_is_set(op->ptr, "filepath")) return open_exec(C, op); - + open_init(C, op); - + return WM_operator_filesel(C, op, event); } @@ -181,6 +181,276 @@ void SOUND_OT_open(wmOperatorType *ot) RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory."); } +/******************** mixdown operator ********************/ + +static int mixdown_exec(bContext *C, wmOperator *op) +{ + char path[FILE_MAX]; + char filename[FILE_MAX]; + Scene *scene; + Main *bmain; + + int bitrate, accuracy; + AUD_DeviceSpecs specs; + AUD_Container container; + AUD_Codec codec; + const char* result; + + RNA_string_get(op->ptr, "filepath", path); + bitrate = RNA_int_get(op->ptr, "bitrate") * 1000; + accuracy = RNA_int_get(op->ptr, "accuracy"); + specs.format = RNA_enum_get(op->ptr, "format"); + container = RNA_enum_get(op->ptr, "container"); + codec = RNA_enum_get(op->ptr, "codec"); + scene = CTX_data_scene(C); + bmain = CTX_data_main(C); + specs.channels = scene->r.ffcodecdata.audio_channels; + specs.rate = scene->r.ffcodecdata.audio_mixrate; + + BLI_strncpy(filename, path, sizeof(filename)); + BLI_path_abs(filename, bmain->name); + + result = AUD_mixdown(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, + accuracy, filename, specs, container, codec, bitrate); + + if(result) + { + BKE_report(op->reports, RPT_ERROR, result); + return OPERATOR_CANCELLED; + } + + return OPERATOR_FINISHED; +} + +static int mixdown_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + if(!RNA_property_is_set(op->ptr, "relative_path")) + RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); + + if(RNA_property_is_set(op->ptr, "filepath")) + return mixdown_exec(C, op); + + return WM_operator_filesel(C, op, event); +} + +static int mixdown_draw_check_prop(PropertyRNA *prop) +{ + const char *prop_id= RNA_property_identifier(prop); + return !( strcmp(prop_id, "filepath") == 0 || + strcmp(prop_id, "directory") == 0 || + strcmp(prop_id, "filename") == 0 + ); +} + +static void mixdown_draw(bContext *C, wmOperator *op) +{ + static EnumPropertyItem pcm_format_items[] = { + {AUD_FORMAT_U8, "U8", 0, "U8", "8 bit unsigned"}, + {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, +#ifdef WITH_SNDFILE + {AUD_FORMAT_S24, "S24", 0, "S24", "24 bit signed"}, +#endif + {AUD_FORMAT_S32, "S32", 0, "S32", "32 bit signed"}, + {AUD_FORMAT_FLOAT32, "F32", 0, "F32", "32 bit floating point"}, + {AUD_FORMAT_FLOAT64, "F64", 0, "F64", "64 bit floating point"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem mp3_format_items[] = { + {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, + {AUD_FORMAT_S32, "S32", 0, "S32", "32 bit signed"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem ac3_format_items[] = { + {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, + {AUD_FORMAT_FLOAT32, "F32", 0, "F32", "32 bit floating point"}, + {0, NULL, 0, NULL, NULL}}; + +#ifdef WITH_SNDFILE + static EnumPropertyItem flac_format_items[] = { + {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, + {AUD_FORMAT_S24, "S24", 0, "S24", "24 bit signed"}, + {0, NULL, 0, NULL, NULL}}; +#endif + + static EnumPropertyItem all_codec_items[] = { + {AUD_CODEC_AAC, "AAC", 0, "AAC", "Advanced Audio Coding"}, + {AUD_CODEC_AC3, "AC3", 0, "AC3", "Dolby Digital ATRAC 3"}, + {AUD_CODEC_FLAC, "FLAC", 0, "FLAC", "Free Lossless Audio Codec"}, + {AUD_CODEC_MP2, "MP2", 0, "MP2", "MPEG-1 Audio Layer II"}, + {AUD_CODEC_MP3, "MP3", 0, "MP3", "MPEG-2 Audio Layer III"}, + {AUD_CODEC_PCM, "PCM", 0, "PCM", "Pulse Code Modulation (RAW)"}, + {AUD_CODEC_VORBIS, "VORBIS", 0, "Vorbis", "Xiph.Org Vorbis Codec"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem ogg_codec_items[] = { + {AUD_CODEC_FLAC, "FLAC", 0, "FLAC", "Free Lossless Audio Codec"}, + {AUD_CODEC_VORBIS, "VORBIS", 0, "Vorbis", "Xiph.Org Vorbis Codec"}, + {0, NULL, 0, NULL, NULL}}; + + uiLayout *layout = op->layout; + wmWindowManager *wm= CTX_wm_manager(C); + PointerRNA ptr; + PropertyRNA *prop_format; + PropertyRNA *prop_codec; + PropertyRNA *prop_bitrate; + + AUD_Container container = RNA_enum_get(op->ptr, "container"); + AUD_Codec codec = RNA_enum_get(op->ptr, "codec"); + + prop_format = RNA_struct_find_property(op->ptr, "format"); + prop_codec = RNA_struct_find_property(op->ptr, "codec"); + prop_bitrate = RNA_struct_find_property(op->ptr, "bitrate"); + + RNA_def_property_clear_flag(prop_bitrate, PROP_HIDDEN); + RNA_def_property_flag(prop_codec, PROP_HIDDEN); + RNA_def_property_flag(prop_format, PROP_HIDDEN); + + switch(container) + { + case AUD_CONTAINER_AC3: + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + RNA_def_property_enum_items(prop_format, ac3_format_items); + RNA_def_property_enum_items(prop_codec, all_codec_items); + RNA_enum_set(op->ptr, "codec", AUD_CODEC_AC3); + break; + case AUD_CONTAINER_FLAC: + RNA_def_property_flag(prop_bitrate, PROP_HIDDEN); + RNA_def_property_enum_items(prop_codec, all_codec_items); + RNA_enum_set(op->ptr, "codec", AUD_CODEC_FLAC); +#ifdef WITH_SNDFILE + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + RNA_def_property_enum_items(prop_format, flac_format_items); +#else + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); +#endif + break; + case AUD_CONTAINER_MATROSKA: + RNA_def_property_clear_flag(prop_codec, PROP_HIDDEN); + RNA_def_property_enum_items(prop_codec, all_codec_items); + + switch(codec) + { + case AUD_CODEC_AAC: + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + break; + case AUD_CODEC_AC3: + RNA_def_property_enum_items(prop_format, ac3_format_items); + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + break; + case AUD_CODEC_FLAC: + RNA_def_property_flag(prop_bitrate, PROP_HIDDEN); + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + break; + case AUD_CODEC_MP2: + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + break; + case AUD_CODEC_MP3: + RNA_def_property_enum_items(prop_format, mp3_format_items); + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + break; + case AUD_CODEC_PCM: + RNA_def_property_flag(prop_bitrate, PROP_HIDDEN); + RNA_def_property_enum_items(prop_format, pcm_format_items); + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + break; + case AUD_CODEC_VORBIS: + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + break; + } + + break; + case AUD_CONTAINER_MP2: + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + RNA_enum_set(op->ptr, "codec", AUD_CODEC_MP2); + RNA_def_property_enum_items(prop_codec, all_codec_items); + break; + case AUD_CONTAINER_MP3: + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + RNA_def_property_enum_items(prop_format, mp3_format_items); + RNA_def_property_enum_items(prop_codec, all_codec_items); + RNA_enum_set(op->ptr, "codec", AUD_CODEC_MP3); + break; + case AUD_CONTAINER_OGG: + RNA_def_property_clear_flag(prop_codec, PROP_HIDDEN); + RNA_def_property_enum_items(prop_codec, ogg_codec_items); + RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); + break; + case AUD_CONTAINER_WAV: + RNA_def_property_flag(prop_bitrate, PROP_HIDDEN); + RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); + RNA_def_property_enum_items(prop_format, pcm_format_items); + RNA_def_property_enum_items(prop_codec, all_codec_items); + RNA_enum_set(op->ptr, "codec", AUD_CODEC_PCM); + break; + } + + RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); + + /* main draw call */ + uiDefAutoButsRNA(layout, &ptr, mixdown_draw_check_prop, '\0'); +} + +void SOUND_OT_mixdown(wmOperatorType *ot) +{ + static EnumPropertyItem format_items[] = { + {AUD_FORMAT_U8, "U8", 0, "U8", "8 bit unsigned"}, + {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, + {AUD_FORMAT_S24, "S24", 0, "S24", "24 bit signed"}, + {AUD_FORMAT_S32, "S32", 0, "S32", "32 bit signed"}, + {AUD_FORMAT_FLOAT32, "F32", 0, "F32", "32 bit floating point"}, + {AUD_FORMAT_FLOAT64, "F64", 0, "F64", "64 bit floating point"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem container_items[] = { +#ifdef WITH_FFMPEG + {AUD_CONTAINER_AC3, "AC3", 0, "ac3", "Dolby Digital ATRAC 3"}, +#endif + {AUD_CONTAINER_FLAC, "FLAC", 0, "flac", "Free Lossless Audio Codec"}, +#ifdef WITH_FFMPEG + {AUD_CONTAINER_MATROSKA, "MATROSKA", 0, "mkv", "Matroska"}, + {AUD_CONTAINER_MP2, "MP2", 0, "mp2", "MPEG-1 Audio Layer II"}, + {AUD_CONTAINER_MP3, "MP3", 0, "mp3", "MPEG-2 Audio Layer III"}, +#endif + {AUD_CONTAINER_OGG, "OGG", 0, "ogg", "Xiph.Org Ogg Container"}, + {AUD_CONTAINER_WAV, "WAV", 0, "wav", "Waveform Audio File Format"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem codec_items[] = { +#ifdef WITH_FFMPEG + {AUD_CODEC_AAC, "AAC", 0, "AAC", "Advanced Audio Coding"}, + {AUD_CODEC_AC3, "AC3", 0, "AC3", "Dolby Digital ATRAC 3"}, +#endif + {AUD_CODEC_FLAC, "FLAC", 0, "FLAC", "Free Lossless Audio Codec"}, +#ifdef WITH_FFMPEG + {AUD_CODEC_MP2, "MP2", 0, "MP2", "MPEG-1 Audio Layer II"}, + {AUD_CODEC_MP3, "MP3", 0, "MP3", "MPEG-2 Audio Layer III"}, +#endif + {AUD_CODEC_PCM, "PCM", 0, "PCM", "Pulse Code Modulation (RAW)"}, + {AUD_CODEC_VORBIS, "VORBIS", 0, "Vorbis", "Xiph.Org Vorbis Codec"}, + {0, NULL, 0, NULL, NULL}}; + + /* identifiers */ + ot->name= "Mixdown"; + ot->description= "Mixes the scene's audio to a sound file"; + ot->idname= "SOUND_OT_mixdown"; + + /* api callbacks */ + ot->exec= mixdown_exec; + ot->invoke= mixdown_invoke; + ot->ui= mixdown_draw; + + /* flags */ + ot->flag= OPTYPE_REGISTER; + + /* properties */ + WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH); + RNA_def_int(ot->srna, "accuracy", 1024, 1, 16777216, "Accuracy", "Sample accuracy. Important for animation data. The lower the value, the more accurate.", 1, 16777216); + RNA_def_enum(ot->srna, "container", container_items, AUD_CONTAINER_FLAC, "Container", "File format"); + RNA_def_enum(ot->srna, "codec", codec_items, AUD_CODEC_FLAC, "Codec", "Audio Codec"); + RNA_def_enum(ot->srna, "format", format_items, AUD_FORMAT_S16, "Format", "Sample format"); + RNA_def_int(ot->srna, "bitrate", 192, 32, 512, "Bitrate", "Bitrate in kbit/s", 32, 512); +} + /* ******************************************************* */ static int sound_poll(bContext *C) @@ -393,6 +663,7 @@ void SOUND_OT_bake_animation(wmOperatorType *ot) void ED_operatortypes_sound(void) { WM_operatortype_append(SOUND_OT_open); + WM_operatortype_append(SOUND_OT_mixdown); WM_operatortype_append(SOUND_OT_pack); WM_operatortype_append(SOUND_OT_unpack); WM_operatortype_append(SOUND_OT_update_animation_flags); -- cgit v1.2.3 From 5dd2b3e06f0164bf4313a172240ad7f4d37bacbe Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 6 Aug 2011 22:31:16 +0000 Subject: fixed crash when NDOF operators were called without an NDOF_MOTION event --- source/blender/editors/space_image/image_ops.c | 49 ++-- source/blender/editors/space_view3d/view3d_edit.c | 318 +++++++++++----------- 2 files changed, 185 insertions(+), 182 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index e0ebde589a8..ea8c7fc0cfa 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -447,34 +447,41 @@ void IMAGE_OT_view_zoom(wmOperatorType *ot) static int view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) { - SpaceImage *sima= CTX_wm_space_image(C); - ARegion *ar= CTX_wm_region(C); + if (event->type != NDOF_MOTION) + return OPERATOR_CANCELLED; + else { + SpaceImage *sima= CTX_wm_space_image(C); + ARegion *ar= CTX_wm_region(C); - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - float dt = ndof->dt; - /* tune these until it feels right */ - const float zoom_sensitivity = 0.5f; // 50% per second (I think) - const float pan_sensitivity = 300.f; // screen pixels per second + float dt = ndof->dt; + /* tune these until it feels right */ + const float zoom_sensitivity = 0.5f; // 50% per second (I think) + const float pan_sensitivity = 300.f; // screen pixels per second - float pan_x = pan_sensitivity * dt * ndof->tvec[0] / sima->zoom; - float pan_y = pan_sensitivity * dt * ndof->tvec[1] / sima->zoom; + float pan_x = pan_sensitivity * dt * ndof->tvec[0] / sima->zoom; + float pan_y = pan_sensitivity * dt * ndof->tvec[1] / sima->zoom; - /* "mouse zoom" factor = 1 + (dx + dy) / 300 - * what about "ndof zoom" factor? should behave like this: - * at rest -> factor = 1 - * move forward -> factor > 1 - * move backward -> factor < 1 - */ - float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->tvec[2]; + /* "mouse zoom" factor = 1 + (dx + dy) / 300 + * what about "ndof zoom" factor? should behave like this: + * at rest -> factor = 1 + * move forward -> factor > 1 + * move backward -> factor < 1 + */ + float zoom_factor = 1.f + zoom_sensitivity * dt * -ndof->tvec[2]; - sima_zoom_set_factor(sima, ar, zoom_factor); - sima->xof += pan_x; - sima->yof += pan_y; + if (U.ndof_flag & NDOF_ZOOM_INVERT) + zoom_factor = -zoom_factor; - ED_region_tag_redraw(ar); + sima_zoom_set_factor(sima, ar, zoom_factor); + sima->xof += pan_x; + sima->yof += pan_y; - return OPERATOR_FINISHED; + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; + } } void IMAGE_OT_view_ndof(wmOperatorType *ot) diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index e6fd9e8867b..3e6bbc13334 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -949,134 +949,125 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event // -- zooming // -- panning in rotationally-locked views { - RegionView3D* rv3d = CTX_wm_region_view3d(C); - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + if (event->type != NDOF_MOTION) + return OPERATOR_CANCELLED; + else { + RegionView3D* rv3d = CTX_wm_region_view3d(C); + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; - rv3d->rot_angle = 0.f; // off by default, until changed later this function + rv3d->rot_angle = 0.f; // off by default, until changed later this function - if (ndof->progress != P_FINISHING) { - const float dt = ndof->dt; - - // tune these until everything feels right - const float rot_sensitivity = 1.f; - const float zoom_sensitivity = 1.f; - const float pan_sensitivity = 1.f; - - // rather have bool, but... - int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec); - - float view_inv[4]; - invert_qt_qt(view_inv, rv3d->viewquat); - - //#define DEBUG_NDOF_MOTION - #ifdef DEBUG_NDOF_MOTION - printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", - ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); - #endif - - if (ndof->tvec[2]) { - // Zoom! - // velocity should be proportional to the linear velocity attained by rotational motion of same strength - // [got that?] - // proportional to arclength = radius * angle - - float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tvec[2]; - rv3d->dist += zoom_distance; - } - - if (rv3d->viewlock == RV3D_LOCKED) { - /* rotation not allowed -- explore panning options instead */ - float pan_vec[3] = {ndof->tvec[0], ndof->tvec[1], 0.0f}; - mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); - - /* transform motion from view to world coordinates */ + if (ndof->progress != P_FINISHING) { + const float dt = ndof->dt; + + // tune these until everything feels right + const float rot_sensitivity = 1.f; + const float zoom_sensitivity = 1.f; + const float pan_sensitivity = 1.f; + + // rather have bool, but... + int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec); + + float view_inv[4]; invert_qt_qt(view_inv, rv3d->viewquat); - mul_qt_v3(view_inv, pan_vec); - - /* move center of view opposite of hand motion (this is camera mode, not object mode) */ - sub_v3_v3(rv3d->ofs, pan_vec); - } - - if (has_rotation) { - - const int invert = U.ndof_flag & NDOF_ORBIT_INVERT_AXES; - - rv3d->view = RV3D_VIEW_USER; - - if (U.flag & USER_TRACKBALL) { - float rot[4]; - #if 0 // -------------------------- Mike's nifty original version - float view_inv_conj[4]; - - ndof_to_quat(ndof, rot); - // mul_qt_fl(rot, rot_sensitivity); - // ^^ no apparent effect - - if (invert) - invert_qt(rot); - - copy_qt_qt(view_inv_conj, view_inv); - conjugate_qt(view_inv_conj); - - // transform rotation from view to world coordinates - mul_qt_qtqt(rot, view_inv, rot); - mul_qt_qtqt(rot, rot, view_inv_conj); - #else // ---------------------------------------- Mike's revised version - float axis[3]; - float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis); - - if (invert) - angle = -angle; - - // transform rotation axis from view to world coordinates - mul_qt_v3(view_inv, axis); - - // update the onscreen doo-dad - rv3d->rot_angle = angle; - copy_v3_v3(rv3d->rot_axis, axis); - - axis_angle_to_quat(rot, axis, angle); - #endif // -------------------------------------------- - // apply rotation - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - } else { - /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ - float angle, rot[4]; - float xvec[3] = {1,0,0}; - - /* Determine the direction of the x vector (for rotating up and down) */ - mul_qt_v3(view_inv, xvec); - - /* Perform the up/down rotation */ - angle = rot_sensitivity * dt * ndof->rvec[0]; - if (invert) - angle = -angle; - rot[0] = cos(angle); - mul_v3_v3fl(rot+1, xvec, sin(angle)); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); - - /* Perform the orbital rotation */ - angle = rot_sensitivity * dt * ndof->rvec[1]; - if (invert) - angle = -angle; - - // update the onscreen doo-dad - rv3d->rot_angle = angle; - rv3d->rot_axis[0] = 0; - rv3d->rot_axis[1] = 0; - rv3d->rot_axis[2] = 1; - - rot[0] = cos(angle); - rot[1] = rot[2] = 0.0; - rot[3] = sin(angle); - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + + //#define DEBUG_NDOF_MOTION + #ifdef DEBUG_NDOF_MOTION + printf("ndof: T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f) dt=%.3f delivered to 3D view\n", + ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt); + #endif + + if (ndof->tvec[2]) { + // Zoom! + // velocity should be proportional to the linear velocity attained by rotational motion of same strength + // [got that?] + // proportional to arclength = radius * angle + + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tvec[2]; + + if (U.ndof_flag & NDOF_ZOOM_INVERT) + zoom_distance = -zoom_distance; + + rv3d->dist += zoom_distance; + } + + if (rv3d->viewlock == RV3D_LOCKED) { + /* rotation not allowed -- explore panning options instead */ + float pan_vec[3] = {ndof->tvec[0], ndof->tvec[1], 0.0f}; + mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); + + /* transform motion from view to world coordinates */ + invert_qt_qt(view_inv, rv3d->viewquat); + mul_qt_v3(view_inv, pan_vec); + + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, pan_vec); + } + + if (has_rotation) { + + const int invert = U.ndof_flag & NDOF_ORBIT_INVERT_AXES; + + rv3d->view = RV3D_VIEW_USER; + + if (U.flag & USER_TRACKBALL) { + float rot[4]; + float axis[3]; + float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis); + + if (invert) + angle = -angle; + + // transform rotation axis from view to world coordinates + mul_qt_v3(view_inv, axis); + + // update the onscreen doo-dad + rv3d->rot_angle = angle; + copy_v3_v3(rv3d->rot_axis, axis); + + axis_angle_to_quat(rot, axis, angle); + + // apply rotation + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + } else { + /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */ + float angle, rot[4]; + float xvec[3] = {1,0,0}; + + /* Determine the direction of the x vector (for rotating up and down) */ + mul_qt_v3(view_inv, xvec); + + /* Perform the up/down rotation */ + angle = rot_sensitivity * dt * ndof->rvec[0]; + if (invert) + angle = -angle; + rot[0] = cos(angle); + mul_v3_v3fl(rot+1, xvec, sin(angle)); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + + /* Perform the orbital rotation */ + angle = rot_sensitivity * dt * ndof->rvec[1]; + if (invert) + angle = -angle; + + // update the onscreen doo-dad + rv3d->rot_angle = angle; + rv3d->rot_axis[0] = 0; + rv3d->rot_axis[1] = 0; + rv3d->rot_axis[2] = 1; + + rot[0] = cos(angle); + rot[1] = rot[2] = 0.0; + rot[3] = sin(angle); + mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot); + } } } - } - ED_region_tag_redraw(CTX_wm_region(C)); + ED_region_tag_redraw(CTX_wm_region(C)); - return OPERATOR_FINISHED; + return OPERATOR_FINISHED; + } } void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot) @@ -1098,57 +1089,62 @@ static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) // -- "pan" navigation // -- zoom or dolly? { - RegionView3D* rv3d = CTX_wm_region_view3d(C); - wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + if (event->type != NDOF_MOTION) + return OPERATOR_CANCELLED; + else { + RegionView3D* rv3d = CTX_wm_region_view3d(C); + wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + - rv3d->rot_angle = 0.f; // we're panning here! so erase any leftover rotation from other operators + rv3d->rot_angle = 0.f; // we're panning here! so erase any leftover rotation from other operators - if (ndof->progress != P_FINISHING) { - const float dt = ndof->dt; - float view_inv[4]; + if (ndof->progress != P_FINISHING) { + const float dt = ndof->dt; + float view_inv[4]; #if 0 // ------------------------------------------- zoom with Z - // tune these until everything feels right - const float zoom_sensitivity = 1.f; - const float pan_sensitivity = 1.f; - - float pan_vec[3] = { - ndof->tx, ndof->ty, 0 - }; - - // "zoom in" or "translate"? depends on zoom mode in user settings? - if (ndof->tz) { - float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; - rv3d->dist += zoom_distance; - } - - mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); + // tune these until everything feels right + const float zoom_sensitivity = 1.f; + const float pan_sensitivity = 1.f; + + float pan_vec[3] = { + ndof->tx, ndof->ty, 0 + }; + + // "zoom in" or "translate"? depends on zoom mode in user settings? + if (ndof->tz) { + float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz; + rv3d->dist += zoom_distance; + } + + mul_v3_fl(pan_vec, pan_sensitivity * rv3d->dist * dt); #else // ------------------------------------------------------- dolly with Z - float speed = 10.f; // blender units per second - // ^^ this is ok for default cube scene, but should scale with.. something + float speed = 10.f; // blender units per second + // ^^ this is ok for default cube scene, but should scale with.. something - // tune these until everything feels right - const float forward_sensitivity = 1.f; - const float vertical_sensitivity = 0.4f; - const float lateral_sensitivity = 0.6f; + // tune these until everything feels right + const float forward_sensitivity = 1.f; + const float vertical_sensitivity = 0.4f; + const float lateral_sensitivity = 0.6f; - float pan_vec[3] = {lateral_sensitivity * ndof->tvec[0], - vertical_sensitivity * ndof->tvec[1], - forward_sensitivity * ndof->tvec[2] - }; + float pan_vec[3] = {lateral_sensitivity * ndof->tvec[0], + vertical_sensitivity * ndof->tvec[1], + forward_sensitivity * ndof->tvec[2] + }; - mul_v3_fl(pan_vec, speed * dt); + mul_v3_fl(pan_vec, speed * dt); #endif - /* transform motion from view to world coordinates */ - invert_qt_qt(view_inv, rv3d->viewquat); - mul_qt_v3(view_inv, pan_vec); + /* transform motion from view to world coordinates */ + invert_qt_qt(view_inv, rv3d->viewquat); + mul_qt_v3(view_inv, pan_vec); - /* move center of view opposite of hand motion (this is camera mode, not object mode) */ - sub_v3_v3(rv3d->ofs, pan_vec); - } + /* move center of view opposite of hand motion (this is camera mode, not object mode) */ + sub_v3_v3(rv3d->ofs, pan_vec); + } - ED_region_tag_redraw(CTX_wm_region(C)); + ED_region_tag_redraw(CTX_wm_region(C)); - return OPERATOR_FINISHED; + return OPERATOR_FINISHED; + } } void VIEW3D_OT_ndof_pan(struct wmOperatorType *ot) -- cgit v1.2.3 From 6c821f4078414c81128ebf0d35187054df238371 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sat, 6 Aug 2011 23:13:36 +0000 Subject: stricter NDOF guards for Windows (forgot in earlier commit) --- source/blender/makesdna/DNA_userdef_types.h | 2 +- source/blender/makesrna/intern/rna_userdef.c | 13 +++++++++++++ source/blender/windowmanager/intern/wm_event_system.c | 12 +++++++----- 3 files changed, 21 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index a555a196060..556f554eb98 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -603,7 +603,7 @@ extern UserDef U; /* from blenkernel blender.c */ #define NDOF_ORBIT_INVERT_AXES (1 << 6) /* zoom is up/down if this flag is set (otherwise forward/backward) */ #define NDOF_ZOOM_UPDOWN (1 << 7) -#define NDOF_INVERT_ZOOM (1 << 8) +#define NDOF_ZOOM_INVERT (1 << 8) #ifdef __cplusplus diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index b3dbafeab7d..57044188dd9 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2746,19 +2746,32 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Drag Threshold", "Amount of pixels you have to drag before dragging UI items happens"); /* 3D mouse settings */ + /* global options */ prop= RNA_def_property(srna, "ndof_sensitivity", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.25f, 4.0f); RNA_def_property_ui_text(prop, "Sensitivity", "Overall sensitivity of the 3D Mouse"); + prop= RNA_def_property(srna, "ndof_zoom_updown", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ZOOM_UPDOWN); + RNA_def_property_ui_text(prop, "Zoom = Up/Down", "Zoom using up/down on the device (otherwise forward/backward)"); + + prop= RNA_def_property(srna, "ndof_zoom_invert", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ZOOM_INVERT); + RNA_def_property_ui_text(prop, "Invert Zoom", "Zoom using opposite direction"); + + /* 3D view */ prop= RNA_def_property(srna, "ndof_show_guide", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_SHOW_GUIDE); RNA_def_property_ui_text(prop, "Show Navigation Guide", "Display the center and axis during rotation"); /* TODO: update description when fly-mode visuals are in place ("projected position in fly mode")*/ + /* 3D view: orbit */ prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES); RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed"); + /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' + /* 3D view: fly */ prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_LOCK_HORIZON); RNA_def_property_ui_text(prop, "Lock Horizon", "Keep horizon level while flying with 3D Mouse"); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 0dac0bd7401..258d6bbc025 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2330,26 +2330,28 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g const float s = U.ndof_sensitivity; data->tvec[0]= s * ghost->tx; + data->rvec[0]= s * ghost->rx; + data->rvec[1]= s * ghost->ry; + data->rvec[2]= s * ghost->rz; if (U.ndof_flag & NDOF_ZOOM_UPDOWN) { - // swap Y and Z + // rotate so Y is where Z was (maintain handed-ness) data->tvec[1]= s * ghost->tz; - data->tvec[2]= s * ghost->ty; + data->tvec[2]= s * -ghost->ty; // should this affect rotation also? // initial guess is 'yes', but get user feedback immediately! +#if 0 // after turning this on, my guess becomes 'no' data->rvec[1]= s * ghost->rz; data->rvec[2]= s * ghost->ry; +#endif } else { data->tvec[1]= s * ghost->ty; data->tvec[2]= s * ghost->tz; - - data->rvec[1]= s * ghost->ry; - data->rvec[2]= s * ghost->rz; } data->dt = ghost->dt; -- cgit v1.2.3 From 117ec4a91ac996480611788998645bd6de40d706 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 7 Aug 2011 04:22:33 +0000 Subject: comment unused vars --- source/blender/editors/interface/interface_handlers.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index d8d8354b0b9..6f3ca2bf003 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2856,7 +2856,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event) { - int mx, my, click= 0; + int mx, my /*, click= 0 */; int retval= WM_UI_HANDLER_CONTINUE; int horizontal= (but->x2 - but->x1 > but->y2 - but->y1); @@ -2878,8 +2878,10 @@ static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } - else if(ELEM(event->type, PADENTER, RETKEY) && event->val==KM_PRESS) + /* UNUSED - otherwise code is ok, add back if needed */ + /* else if(ELEM(event->type, PADENTER, RETKEY) && event->val==KM_PRESS) click= 1; + */ } } else if(data->state == BUTTON_STATE_NUM_EDITING) { @@ -3677,6 +3679,9 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt return WM_UI_HANDLER_BREAK; } + /* UNUSED but keep for now */ + (void)changed; + return WM_UI_HANDLER_CONTINUE; } @@ -3691,12 +3696,12 @@ static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx Histogram *hist = (Histogram *)but->poin; /* rcti rect; */ int changed= 1; - float dx, dy, yfac=1.f; + float /* dx, */ dy, yfac=1.f; /* UNUSED */ /* rect.xmin= but->x1; rect.xmax= but->x2; */ /* rect.ymin= but->y1; rect.ymax= but->y2; */ - dx = mx - data->draglastx; + /* dx = mx - data->draglastx; */ /* UNUSED */ dy = my - data->draglasty; @@ -3774,12 +3779,12 @@ static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx, Scopes *scopes = (Scopes *)but->poin; /* rcti rect; */ int changed= 1; - float dx, dy, yfac=1.f; + float /* dx, */ dy /* , yfac=1.f */; /* UNUSED */ /* rect.xmin= but->x1; rect.xmax= but->x2; */ /* rect.ymin= but->y1; rect.ymax= but->y2; */ - dx = mx - data->draglastx; + /* dx = mx - data->draglastx; */ /* UNUSED */ dy = my - data->draglasty; @@ -3788,7 +3793,7 @@ static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx, scopes->wavefrm_height = (but->y2 - but->y1) + (data->dragstarty - my); } else { /* scale waveform values */ - yfac = scopes->wavefrm_yfac; + /* yfac = scopes->wavefrm_yfac; */ /* UNUSED */ scopes->wavefrm_yfac += dy/200.0f; CLAMP(scopes->wavefrm_yfac, 0.5f, 2.f); -- cgit v1.2.3 From a02d7c1ba76adbf3ff432111af4c3c81a0812c3a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 7 Aug 2011 11:01:55 +0000 Subject: Fix #28169: keymap bug when using a preset configuration, e.g. object mode keymap was also being used in edit mode. --- source/blender/windowmanager/intern/wm_keymap.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index bf48f0e21e4..2fb0a1b2ab9 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -532,7 +532,7 @@ static void wm_keymap_patch(wmKeyMap *km, wmKeyMap *diff_km) } } -static void wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap *addonmap, wmKeyMap *usermap) +static wmKeyMap *wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap *addonmap, wmKeyMap *usermap) { wmKeyMap *km; int expanded = 0; @@ -552,8 +552,6 @@ static void wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap wmKeyMapItem *kmi, *orig_kmi; km = wm_keymap_copy(usermap); - km->modal_items = defaultmap->modal_items; - km->poll = defaultmap->poll; /* try to find corresponding id's for items */ for(kmi=km->items.first; kmi; kmi=kmi->next) { @@ -587,6 +585,8 @@ static void wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap /* add to list */ BLI_addtail(lb, km); + + return km; } static void wm_keymap_diff_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap *addonmap, wmKeyMap *km) @@ -977,7 +977,7 @@ static wmKeyMap *wm_keymap_preset(wmWindowManager *wm, wmKeyMap *km) void WM_keyconfig_update(wmWindowManager *wm) { - wmKeyMap *km, *defaultmap, *addonmap, *usermap; + wmKeyMap *km, *defaultmap, *addonmap, *usermap, *kmn; wmKeyMapItem *kmi; wmKeyMapDiffItem *kmdi; int compat_update = 0; @@ -1021,7 +1021,12 @@ void WM_keyconfig_update(wmWindowManager *wm) usermap= WM_keymap_list_find(&U.user_keymaps, km->idname, km->spaceid, km->regionid); /* add */ - wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap, addonmap, usermap); + kmn= wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap, addonmap, usermap); + + if(kmn) { + kmn->modal_items= km->modal_items; + kmn->poll= km->poll; + } /* in case of old non-diff keymaps, force extra update to create diffs */ compat_update = compat_update || (usermap && !(usermap->flag & KEYMAP_DIFF)); -- cgit v1.2.3 From 2d884fc035d403d43c7a18e3e61cd56ccdfbec2b Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Sun, 7 Aug 2011 11:54:58 +0000 Subject: 3D Audio GSoC: * Pepper depends on ffmpeg 0.7.1 or higher now, windows and mac build systems set to ffmpeg-0.8 * Fixed orientation retrieval in OpenAL device code. * Added stopAll() method to AUD_IDevice (also for Python) and call it on BGE exit * Changed BGE to use audaspace via native C++ instead over the C API. * Made AUD_SequencerFactory and AUD_SequencerEntry thread safe. * Changed sound caching into a flag which fixes problems on file loading, especially with undo. * Removed unused parameter from sound_mute_scene_sound * Fixed bug: changing FPS didn't update the sequencer sound positions. * Fixed bug: Properties of sequencer strips weren't set correctly. * Minor warning fixes. --- source/blender/blenkernel/BKE_sequencer.h | 3 +- source/blender/blenkernel/BKE_sound.h | 6 ++-- source/blender/blenkernel/intern/sequencer.c | 36 +++++++++++++++++----- source/blender/blenkernel/intern/sound.c | 35 ++++++++++++++++----- source/blender/blenloader/intern/readfile.c | 12 +++++--- source/blender/editors/sound/sound_ops.c | 6 +++- .../editors/space_sequencer/sequencer_add.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 10 +++--- source/blender/makesdna/DNA_sound_types.h | 3 +- source/blender/makesrna/intern/rna_scene.c | 2 ++ source/blender/makesrna/intern/rna_sequencer.c | 2 +- source/blender/makesrna/intern/rna_sound.c | 4 +-- 12 files changed, 87 insertions(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index cebf99097aa..773096d1e0d 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -282,8 +282,9 @@ void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_m struct Sequence *seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, struct Sequence * seq, int dupe_flag); int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b, const char **error_str); +void seq_update_sound_bounds_all(struct Scene *scene); void seq_update_sound_bounds(struct Scene* scene, struct Sequence *seq); -void seq_update_muting(struct Scene* scene, struct Editing *ed); +void seq_update_muting(struct Editing *ed); void seq_update_sound(struct Scene *scene, struct bSound *sound); void seqbase_sound_reload(struct Scene *scene, ListBase *seqbase); void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq); diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 632a2a0bb3b..2cd006385e0 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -62,9 +62,9 @@ struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, floa void sound_delete(struct bContext *C, struct bSound* sound); -void sound_cache(struct bSound* sound, int ignore); +void sound_cache(struct bSound* sound); -void sound_cache_notifying(struct Main* main, struct bSound* sound, int ignore); +void sound_cache_notifying(struct Main* main, struct bSound* sound); void sound_delete_cache(struct bSound* sound); @@ -92,7 +92,7 @@ void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int void sound_remove_scene_sound(struct Scene *scene, void* handle); -void sound_mute_scene_sound(struct Scene *scene, void* handle, char mute); +void sound_mute_scene_sound(void* handle, char mute); void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, int endframe, int frameskip); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 9ff3ce7afe2..93e0c920745 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3145,6 +3145,28 @@ int shuffle_seq_time(ListBase * seqbasep, Scene *evil_scene) return offset? 0:1; } +void seq_update_sound_bounds_all(Scene *scene) +{ + Editing *ed = scene->ed; + + if(ed) + { + Sequence *seq; + + for(seq = ed->seqbase.first; seq; seq = seq->next) + { + if(seq->type == SEQ_META) + { + seq_update_sound_bounds_recursive(scene, seq); + } + else if(ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) + { + seq_update_sound_bounds(scene, seq); + } + } + } +} + void seq_update_sound_bounds(Scene* scene, Sequence *seq) { if(seq->scene_sound) @@ -3154,7 +3176,7 @@ void seq_update_sound_bounds(Scene* scene, Sequence *seq) } } -static void seq_update_muting_recursive(Scene *scene, ListBase *seqbasep, Sequence *metaseq, int mute) +static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, int mute) { Sequence *seq; int seqmute; @@ -3170,26 +3192,26 @@ static void seq_update_muting_recursive(Scene *scene, ListBase *seqbasep, Sequen if(seq == metaseq) seqmute= 0; - seq_update_muting_recursive(scene, &seq->seqbase, metaseq, seqmute); + seq_update_muting_recursive(&seq->seqbase, metaseq, seqmute); } else if(ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) { if(seq->scene_sound) { - sound_mute_scene_sound(scene, seq->scene_sound, seqmute); + sound_mute_scene_sound(seq->scene_sound, seqmute); } } } } -void seq_update_muting(Scene *scene, Editing *ed) +void seq_update_muting(Editing *ed) { if(ed) { /* mute all sounds up to current metastack list */ MetaStack *ms= ed->metastack.last; if(ms) - seq_update_muting_recursive(scene, &ed->seqbase, ms->parseq, 1); + seq_update_muting_recursive(&ed->seqbase, ms->parseq, 1); else - seq_update_muting_recursive(scene, &ed->seqbase, NULL, 0); + seq_update_muting_recursive(&ed->seqbase, NULL, 0); } } @@ -3469,7 +3491,7 @@ void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) if(seq_load->flag & SEQ_LOAD_SOUND_CACHE) { if(seq->sound) - sound_cache(seq->sound, 0); + sound_cache(seq->sound); } seq_load->tot_success++; diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 59f5cdb678e..890fc114e68 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -91,6 +91,7 @@ void sound_free(struct bSound* sound) if(sound->cache) { AUD_unload(sound->cache); + sound->cache = NULL; } #endif // WITH_AUDASPACE } @@ -250,23 +251,25 @@ void sound_delete(struct bContext *C, struct bSound* sound) } } -void sound_cache(struct bSound* sound, int ignore) +void sound_cache(struct bSound* sound) { - if(sound->cache && !ignore) + sound->flags |= SOUND_FLAGS_CACHING; + if(sound->cache) AUD_unload(sound->cache); sound->cache = AUD_bufferSound(sound->handle); sound->playback_handle = sound->cache; } -void sound_cache_notifying(struct Main* main, struct bSound* sound, int ignore) +void sound_cache_notifying(struct Main* main, struct bSound* sound) { - sound_cache(sound, ignore); + sound_cache(sound); sound_update_sequencer(main, sound); } void sound_delete_cache(struct bSound* sound) { + sound->flags &= ~SOUND_FLAGS_CACHING; if(sound->cache) { AUD_unload(sound->cache); @@ -279,6 +282,12 @@ void sound_load(struct Main *bmain, struct bSound* sound) { if(sound) { + if(sound->cache) + { + AUD_unload(sound->cache); + sound->cache = NULL; + } + if(sound->handle) { AUD_unload(sound->handle); @@ -330,6 +339,11 @@ void sound_load(struct Main *bmain, struct bSound* sound) break; } #endif + if(sound->flags & SOUND_FLAGS_CACHING) + { + sound->cache = AUD_bufferSound(sound->handle); + } + if(sound->cache) sound->playback_handle = sound->cache; else @@ -400,7 +414,12 @@ void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip) { - return AUD_addSequence(scene->sound_scene, sequence->sound->playback_handle, startframe / FPS, endframe / FPS, frameskip / FPS); + void* handle = AUD_addSequence(scene->sound_scene, sequence->sound->playback_handle, startframe / FPS, endframe / FPS, frameskip / FPS); + AUD_muteSequence(handle, (sequence->flag & SEQ_MUTE) != 0); + AUD_setSequenceAnimData(handle, AUD_AP_VOLUME, CFRA, &sequence->volume, 0); + AUD_setSequenceAnimData(handle, AUD_AP_PITCH, CFRA, &sequence->pitch, 0); + AUD_setSequenceAnimData(handle, AUD_AP_PANNING, CFRA, &sequence->pan, 0); + return handle; } void sound_remove_scene_sound(struct Scene *scene, void* handle) @@ -408,7 +427,7 @@ void sound_remove_scene_sound(struct Scene *scene, void* handle) AUD_removeSequence(scene->sound_scene, handle); } -void sound_mute_scene_sound(struct Scene *scene, void* handle, char mute) +void sound_mute_scene_sound(void* handle, char mute) { AUD_muteSequence(handle, mute); } @@ -612,7 +631,7 @@ void sound_force_device(int UNUSED(device)) {} void sound_init_once(void) {} void sound_init(struct Main *UNUSED(bmain)) {} void sound_exit(void) {} -void sound_cache(struct bSound* UNUSED(sound), int UNUSED(ignore)) { } +void sound_cache(struct bSound* UNUSED(sound)) { } void sound_delete_cache(struct bSound* UNUSED(sound)) {} void sound_load(struct Main *UNUSED(bmain), struct bSound* UNUSED(sound)) {} void sound_create_scene(struct Scene *UNUSED(scene)) {} @@ -621,7 +640,7 @@ void sound_mute_scene(struct Scene *UNUSED(scene), int UNUSED(muted)) {} void* sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; } void* sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; } void sound_remove_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle)) {} -void sound_mute_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), char UNUSED(mute)) {} +void sound_mute_scene_sound(void* UNUSED(handle), char UNUSED(mute)) {} void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {} static void sound_start_play_scene(struct Scene *UNUSED(scene)) {} void sound_play_scene(struct Scene *UNUSED(scene)) {} diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index e22f5dcb3de..07e2bbf5bca 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4473,7 +4473,7 @@ static void lib_link_scene(FileData *fd, Main *main) #endif if(sce->ed) - seq_update_muting(sce, sce->ed); + seq_update_muting(sce->ed); if(sce->nodetree) { lib_link_ntree(fd, &sce->id, sce->nodetree); @@ -5608,6 +5608,13 @@ static void direct_link_sound(FileData *fd, bSound *sound) sound->handle = NULL; sound->playback_handle = NULL; + // versioning stuff, if there was a cache, then we enable caching: + if(sound->cache) + { + sound->flags |= SOUND_FLAGS_CACHING; + sound->cache = NULL; + } + sound->packedfile = direct_link_packedfile(fd, sound->packedfile); sound->newpackedfile = direct_link_packedfile(fd, sound->newpackedfile); } @@ -5623,9 +5630,6 @@ static void lib_link_sound(FileData *fd, Main *main) sound->ipo= newlibadr_us(fd, sound->id.lib, sound->ipo); // XXX depreceated - old animation system sound_load(main, sound); - - if(sound->cache) - sound_cache_notifying(main, sound, 1); } sound= sound->id.next; } diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index c6a3663d512..31d22f9dd54 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -118,7 +118,7 @@ static int open_exec(bContext *C, wmOperator *op) } if (RNA_boolean_get(op->ptr, "cache")) { - sound_cache(sound, 0); + sound_cache(sound); } /* hook into UI */ @@ -356,6 +356,8 @@ static void mixdown_draw(bContext *C, wmOperator *op) case AUD_CODEC_VORBIS: RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); break; + default: + break; } break; @@ -382,6 +384,8 @@ static void mixdown_draw(bContext *C, wmOperator *op) RNA_def_property_enum_items(prop_codec, all_codec_items); RNA_enum_set(op->ptr, "codec", AUD_CODEC_PCM); break; + default: + break; } RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index b105b2507ab..54229a683a3 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -354,7 +354,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad } sort_seq(scene); - seq_update_muting(scene, ed); + seq_update_muting(ed); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 4252d051154..14dad30467f 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1228,7 +1228,7 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op) } } - seq_update_muting(scene, ed); + seq_update_muting(ed); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -1275,7 +1275,7 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op) } } - seq_update_muting(scene, ed); + seq_update_muting(ed); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -1901,7 +1901,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *UNUSED(op)) } - seq_update_muting(scene, ed); + seq_update_muting(ed); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; @@ -1965,7 +1965,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm, scene); - seq_update_muting(scene, ed); + seq_update_muting(ed); seqbase_unique_name_recursive(&scene->ed->seqbase, seqm); @@ -2038,7 +2038,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op)) } sort_seq(scene); - seq_update_muting(scene, ed); + seq_update_muting(ed); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h index 3e5f82a8052..56ad0e1ff84 100644 --- a/source/blender/makesdna/DNA_sound_types.h +++ b/source/blender/makesdna/DNA_sound_types.h @@ -106,7 +106,8 @@ typedef enum eSound_Type { #define SND_DRAWFRAMES 1 #define SND_CFRA_NUM 2 -#define SOUND_FLAGS_3D (1 << 3) +#define SOUND_FLAGS_3D (1 << 3) /* deprecated! used for sound actuator loading */ +#define SOUND_FLAGS_CACHING (1 << 4) /* to DNA_sound_types.h*/ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 170e590522d..6d0e9661e04 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -182,6 +182,7 @@ EnumPropertyItem image_type_items[] = { #include "BKE_mesh.h" #include "BKE_sound.h" #include "BKE_screen.h" +#include "BKE_sequencer.h" #include "BKE_animsys.h" #include "WM_api.h" @@ -335,6 +336,7 @@ static void rna_Scene_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) { sound_update_fps(scene); + seq_update_sound_bounds_all(scene); } static void rna_Scene_listener_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 0c889fd111f..6e18f955bf5 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -602,7 +602,7 @@ static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Editing *ed= seq_give_editing(scene, FALSE); - seq_update_muting(scene, ed); + seq_update_muting(ed); rna_Sequence_update(bmain, scene, ptr); } diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c index f471e5e0fe5..e78bc092040 100644 --- a/source/blender/makesrna/intern/rna_sound.c +++ b/source/blender/makesrna/intern/rna_sound.c @@ -49,14 +49,14 @@ static void rna_Sound_filepath_update(Main *bmain, Scene *UNUSED(scene), Pointer static int rna_Sound_caching_get(PointerRNA *ptr) { bSound *sound = (bSound*)(ptr->data); - return sound->cache != NULL; + return (sound->flags & SOUND_FLAGS_CACHING) != 0; } static void rna_Sound_caching_set(PointerRNA *ptr, const int value) { bSound *sound = (bSound*)(ptr->data); if(value) - sound_cache(sound, 0); + sound_cache(sound); else sound_delete_cache(sound); } -- cgit v1.2.3 From 022e815fbd6d81f9b1baa177cce1abf2f42bcb21 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 7 Aug 2011 12:27:20 +0000 Subject: Sound clip NLA Strips for Nexyon These are basically just for specifying when a speaker should fire off it's soundclip, and as such, many NLA operations are irrelevant for it. They can only be specified on object-level for speaker objects. I've still got some UI tweaks I'll need to work on in order for these to be able to be added even when the speaker doesn't have any NLA tracks yet. (EDIT: while typing this, I had an idea for how to do this, but that'll be for next commit). In the mean time, you'll need to add a single keyframe for the object, snowflake that action and delete the NLA strip before you can start editing. --- source/blender/blenkernel/BKE_nla.h | 3 + source/blender/blenkernel/intern/anim_sys.c | 3 + source/blender/blenkernel/intern/nla.c | 40 +++++++++++ source/blender/editors/animation/anim_filter.c | 3 +- source/blender/editors/space_nla/nla_buttons.c | 80 +++++++++++++++------- source/blender/editors/space_nla/nla_draw.c | 19 +++++- source/blender/editors/space_nla/nla_edit.c | 95 +++++++++++++++++++++++++- source/blender/editors/space_nla/nla_intern.h | 1 + source/blender/editors/space_nla/nla_ops.c | 2 + source/blender/makesdna/DNA_anim_types.h | 5 +- source/blender/makesrna/intern/rna_nla.c | 2 +- 11 files changed, 222 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_nla.h b/source/blender/blenkernel/BKE_nla.h index 0206756a1ad..49c1f8acd24 100644 --- a/source/blender/blenkernel/BKE_nla.h +++ b/source/blender/blenkernel/BKE_nla.h @@ -39,6 +39,8 @@ struct AnimData; struct NlaStrip; struct NlaTrack; struct bAction; +struct Scene; +struct Speaker; /* ----------------------------- */ /* Data Management */ @@ -54,6 +56,7 @@ void copy_nladata(ListBase *dst, ListBase *src); struct NlaTrack *add_nlatrack(struct AnimData *adt, struct NlaTrack *prev); struct NlaStrip *add_nlastrip(struct bAction *act); struct NlaStrip *add_nlastrip_to_stack(struct AnimData *adt, struct bAction *act); +struct NlaStrip *add_nla_soundstrip(struct Scene *scene, struct Speaker *spk); /* ----------------------------- */ /* API */ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index a43cdc8143e..832d13c9c2f 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -1921,6 +1921,9 @@ void nlastrip_evaluate (PointerRNA *ptr, ListBase *channels, ListBase *modifiers case NLASTRIP_TYPE_META: /* meta */ nlastrip_evaluate_meta(ptr, channels, modifiers, nes); break; + + default: /* do nothing */ + break; } /* clear temp recursion safe-check */ diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index f2ce8e4e6f1..dad49646622 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -46,6 +46,8 @@ #include "DNA_anim_types.h" #include "DNA_scene_types.h" +#include "DNA_sound_types.h" +#include "DNA_speaker_types.h" #include "BKE_action.h" #include "BKE_fcurve.h" @@ -53,6 +55,9 @@ #include "BKE_global.h" #include "BKE_library.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +#endif #include "RNA_access.h" #include "nla_private.h" @@ -337,6 +342,41 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act) return strip; } +/* Add a NLA Strip referencing the given speaker's sound */ +NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker) +{ + NlaStrip *strip = MEM_callocN(sizeof(NlaStrip), "NlaSoundStrip"); + + /* if speaker has a sound, set the strip length to the length of the sound, + * otherwise default to length of 10 frames + */ +#ifdef WITH_AUDASPACE + if (speaker->sound) + { + AUD_SoundInfo info = AUD_getInfo(speaker->sound->playback_handle); + + strip->end = ceil(info.length * FPS); + } + else +#endif + { + strip->end = 10.0f; + } + + /* general settings */ + strip->type = NLASTRIP_TYPE_SOUND; + + strip->flag = NLASTRIP_FLAG_SELECT; + strip->extendmode = NLASTRIP_EXTEND_NOTHING; /* nothing to extend... */ + + /* strip should be referenced as-is */ + strip->scale= 1.0f; + strip->repeat = 1.0f; + + /* return this strip */ + return strip; +} + /* *************************************************** */ /* NLA Evaluation <-> Editing Stuff */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 4927b0f097a..b4d1253c764 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -397,6 +397,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) * 2A) nla tracks: include animdata block's data as there are NLA tracks+strips there * 2B) actions to convert to nla: include animdata block's data as there is an action that can be * converted to a new NLA strip, and the filtering options allow this + * 2C) allow non-animated datablocks to be included so that datablocks can be added * 3) drivers: include drivers from animdata block (for Drivers mode in Graph Editor) * 4) normal keyframes: only when there is an active action */ @@ -1625,7 +1626,7 @@ static size_t animdata_filter_ds_obdata (bAnimContext *ac, ListBase *anim_data, case OB_SPEAKER: /* ---------- Speaker ----------- */ { Speaker *spk= (Speaker *)ob->data; - + type= ANIMTYPE_DSSPK; expanded= FILTER_SPK_OBJD(spk); } diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index b6de8e7fb59..0f0662d84b1 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -213,6 +213,24 @@ static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *UNUSED(pt) return (strip->type == NLASTRIP_TYPE_CLIP); } +static int nla_strip_eval_panel_poll(const bContext *C, PanelType *UNUSED(pt)) +{ + PointerRNA ptr; + NlaStrip *strip; + + if (!nla_panel_context(C, NULL, NULL, &ptr)) + return 0; + if (ptr.data == NULL) + return 0; + + strip= ptr.data; + + if (strip->type == NLASTRIP_TYPE_SOUND) + return 0; + + return 1; +} + /* -------------- */ /* active AnimData */ @@ -278,6 +296,7 @@ static void nla_panel_properties(const bContext *C, Panel *pa) uiLayout *layout= pa->layout; uiLayout *column, *row, *subcol; uiBlock *block; + short showEvalProps = 1; if (!nla_panel_context(C, NULL, NULL, &strip_ptr)) return; @@ -297,32 +316,41 @@ static void nla_panel_properties(const bContext *C, Panel *pa) uiItemR(column, &strip_ptr, "frame_start", 0, NULL, ICON_NONE); uiItemR(column, &strip_ptr, "frame_end", 0, NULL, ICON_NONE); - /* extrapolation */ - row= uiLayoutRow(layout, 1); - uiItemR(row, &strip_ptr, "extrapolation", 0, NULL, ICON_NONE); + /* Evaluation-Related Strip Properties ------------------ */ - /* blending */ - row= uiLayoutRow(layout, 1); - uiItemR(row, &strip_ptr, "blend_type", 0, NULL, ICON_NONE); - - /* blend in/out + autoblending - * - blend in/out can only be set when autoblending is off - */ - column= uiLayoutColumn(layout, 1); - uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_influence")==0); - uiItemR(column, &strip_ptr, "use_auto_blend", 0, NULL, ICON_NONE); // XXX as toggle? - - subcol= uiLayoutColumn(column, 1); - uiLayoutSetActive(subcol, RNA_boolean_get(&strip_ptr, "use_auto_blend")==0); - uiItemR(subcol, &strip_ptr, "blend_in", 0, NULL, ICON_NONE); - uiItemR(subcol, &strip_ptr, "blend_out", 0, NULL, ICON_NONE); + /* sound properties strips don't have these settings */ + if (RNA_enum_get(&strip_ptr, "type") == NLASTRIP_TYPE_SOUND) + showEvalProps = 0; + + /* only show if allowed to... */ + if (showEvalProps) { + /* extrapolation */ + row= uiLayoutRow(layout, 1); + uiItemR(row, &strip_ptr, "extrapolation", 0, NULL, ICON_NONE); - /* settings */ - column= uiLayoutColumn(layout, 1); - uiLayoutSetActive(column, !(RNA_boolean_get(&strip_ptr, "use_animated_influence") || RNA_boolean_get(&strip_ptr, "use_animated_time"))); - uiItemL(column, "Playback Settings:", ICON_NONE); - uiItemR(column, &strip_ptr, "mute", 0, NULL, ICON_NONE); - uiItemR(column, &strip_ptr, "use_reverse", 0, NULL, ICON_NONE); + /* blending */ + row= uiLayoutRow(layout, 1); + uiItemR(row, &strip_ptr, "blend_type", 0, NULL, ICON_NONE); + + /* blend in/out + autoblending + * - blend in/out can only be set when autoblending is off + */ + column= uiLayoutColumn(layout, 1); + uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_influence")==0); + uiItemR(column, &strip_ptr, "use_auto_blend", 0, NULL, ICON_NONE); // XXX as toggle? + + subcol= uiLayoutColumn(column, 1); + uiLayoutSetActive(subcol, RNA_boolean_get(&strip_ptr, "use_auto_blend")==0); + uiItemR(subcol, &strip_ptr, "blend_in", 0, NULL, ICON_NONE); + uiItemR(subcol, &strip_ptr, "blend_out", 0, NULL, ICON_NONE); + + /* settings */ + column= uiLayoutColumn(layout, 1); + uiLayoutSetActive(column, !(RNA_boolean_get(&strip_ptr, "use_animated_influence") || RNA_boolean_get(&strip_ptr, "use_animated_time"))); + uiItemL(column, "Playback Settings:", ICON_NONE); + uiItemR(column, &strip_ptr, "mute", 0, NULL, ICON_NONE); + uiItemR(column, &strip_ptr, "use_reverse", 0, NULL, ICON_NONE); + } } @@ -476,14 +504,14 @@ void nla_buttons_register(ARegionType *art) strcpy(pt->idname, "NLA_PT_evaluation"); strcpy(pt->label, "Evaluation"); pt->draw= nla_panel_evaluation; - pt->poll= nla_strip_panel_poll; + pt->poll= nla_strip_eval_panel_poll; BLI_addtail(&art->paneltypes, pt); pt= MEM_callocN(sizeof(PanelType), "spacetype nla panel modifiers"); strcpy(pt->idname, "NLA_PT_modifiers"); strcpy(pt->label, "Modifiers"); pt->draw= nla_panel_modifiers; - pt->poll= nla_strip_panel_poll; + pt->poll= nla_strip_eval_panel_poll; BLI_addtail(&art->paneltypes, pt); } diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index bc0b9616836..eb9529b5186 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -198,7 +198,24 @@ static void nla_strip_get_color_inside (AnimData *adt, NlaStrip *strip, float co color[1]= 0.15f; color[2]= 0.26f; } - } + } + else if (strip->type == NLASTRIP_TYPE_SOUND) { + /* Sound Clip */ + if (strip->flag & NLASTRIP_FLAG_SELECT) { + /* selected - use a bright teal color */ + // FIXME: hardcoded temp-hack colors + color[0]= 0.12f; + color[1]= 0.48f; + color[2]= 0.48f; + } + else { + /* normal, unselected strip - use (hardly noticable) teal tinge */ + // FIXME: hardcoded temp-hack colors + color[0]= 0.17f; + color[1]= 0.24f; + color[2]= 0.24f; + } + } else { /* Action Clip (default/normal type of strip) */ if ((strip->flag & NLASTRIP_FLAG_ACTIVE) && (adt && (adt->flag & ADT_NLA_EDIT_ON))) { diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index eb22495c977..fa24bd2f895 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -36,6 +36,7 @@ #include #include "DNA_anim_types.h" +#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "MEM_guardedalloc.h" @@ -536,12 +537,15 @@ static int nlaedit_add_transition_exec (bContext *C, wmOperator *op) /* check if there's space between the two */ if (IS_EQ(s1->end, s2->start)) continue; - /* make neither one is a transition + /* make sure neither one is a transition * - although this is impossible to create with the standard tools, * the user may have altered the settings */ if (ELEM(NLASTRIP_TYPE_TRANSITION, s1->type, s2->type)) continue; + /* also make sure neither one is a soundclip */ + if (ELEM(NLASTRIP_TYPE_SOUND, s1->type, s2->type)) + continue; /* allocate new strip */ strip= MEM_callocN(sizeof(NlaStrip), "NlaStrip"); @@ -608,6 +612,91 @@ void NLA_OT_transition_add (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* ******************** Add Sound Clip Operator ***************************** */ +/* Add a new sound clip */ + +static int nlaedit_add_sound_exec (bContext *C, wmOperator *op) +{ + bAnimContext ac; + + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + Scene *scene; + int cfra; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + scene = ac.scene; + cfra = CFRA; + + /* get a list of the editable tracks being shown in the NLA */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* for each track, add sound clips if it belongs to a speaker */ + // TODO: what happens if there aren't any tracks... well that's a more general problem for later + for (ale= anim_data.first; ale; ale= ale->next) { + Object *ob = (Object *)ale->id; /* may not be object until we actually check! */ + + AnimData *adt = ale->adt; + NlaTrack *nlt= (NlaTrack *)ale->data; + NlaStrip *strip; + + /* does this belong to speaker - assumed to live on Object level only */ + if ((GS(ale->id->name) != ID_OB) || (ob->type != OB_SPEAKER)) + continue; + + /* create a new strip, and offset it to start on the current frame */ + strip= add_nla_soundstrip(ac.scene, ob->data); + + strip->start += cfra; + strip->end += cfra; + + /* firstly try adding strip to our current track, but if that fails, add to a new track */ + if (BKE_nlatrack_add_strip(nlt, strip) == 0) { + /* trying to add to the current failed (no space), + * so add a new track to the stack, and add to that... + */ + nlt= add_nlatrack(adt, NULL); + BKE_nlatrack_add_strip(nlt, strip); + } + + /* auto-name it */ + BKE_nlastrip_validate_name(adt, strip); + } + + /* free temp data */ + BLI_freelistN(&anim_data); + + /* refresh auto strip properties */ + ED_nla_postop_refresh(&ac); + + /* set notifier that things have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL); + + /* done */ + return OPERATOR_FINISHED; +} + +void NLA_OT_soundclip_add (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Add Sound Clip"; + ot->idname= "NLA_OT_soundclip_add"; + ot->description= "Add a strip for controlling when speaker plays its sound clip"; + + /* api callbacks */ + ot->exec= nlaedit_add_sound_exec; + ot->poll= nlaop_poll_tweakmode_off; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + /* ******************** Add Meta-Strip Operator ***************************** */ /* Add new meta-strips incorporating the selected strips */ @@ -1923,6 +2012,10 @@ static int nla_fmodifier_add_exec(bContext *C, wmOperator *op) continue; } + /* sound clips are not affected by FModifiers */ + if (strip->type == NLASTRIP_TYPE_SOUND) + continue; + /* add F-Modifier of specified type to selected, and make it the active one */ fcm= add_fmodifier(&strip->modifiers, type); diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h index 43ef5beb216..bd76d2484dd 100644 --- a/source/blender/editors/space_nla/nla_intern.h +++ b/source/blender/editors/space_nla/nla_intern.h @@ -99,6 +99,7 @@ void NLA_OT_view_selected(wmOperatorType *ot); void NLA_OT_actionclip_add(wmOperatorType *ot); void NLA_OT_transition_add(wmOperatorType *ot); +void NLA_OT_soundclip_add(wmOperatorType *ot); void NLA_OT_meta_add(wmOperatorType *ot); void NLA_OT_meta_remove(wmOperatorType *ot); diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index 38e12c46060..8ed117755c7 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -140,6 +140,7 @@ void nla_operatortypes(void) WM_operatortype_append(NLA_OT_actionclip_add); WM_operatortype_append(NLA_OT_transition_add); + WM_operatortype_append(NLA_OT_soundclip_add); WM_operatortype_append(NLA_OT_meta_add); WM_operatortype_append(NLA_OT_meta_remove); @@ -233,6 +234,7 @@ static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap) /* add strips */ WM_keymap_add_item(keymap, "NLA_OT_actionclip_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "NLA_OT_transition_add", TKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "NLA_OT_soundclip_add", KKEY, KM_PRESS, KM_SHIFT, 0); /* meta-strips */ WM_keymap_add_item(keymap, "NLA_OT_meta_add", GKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 374799ecf08..5a031e04fe4 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -651,7 +651,10 @@ typedef enum eNlaStrip_Type { /* 'transition' - blends between the adjacent strips */ NLASTRIP_TYPE_TRANSITION, /* 'meta' - a strip which acts as a container for a few others */ - NLASTRIP_TYPE_META + NLASTRIP_TYPE_META, + + /* 'emit sound' - a strip which is used for timing when speaker emits sounds */ + NLASTRIP_TYPE_SOUND } eNlaStrip_Type; /* NLA Tracks ------------------------------------- */ diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c index 01bfbc0e133..5756044d12b 100644 --- a/source/blender/makesrna/intern/rna_nla.c +++ b/source/blender/makesrna/intern/rna_nla.c @@ -380,6 +380,7 @@ static void rna_def_nlastrip(BlenderRNA *brna) {NLASTRIP_TYPE_CLIP, "CLIP", 0, "Action Clip", "NLA Strip references some Action"}, {NLASTRIP_TYPE_TRANSITION, "TRANSITION", 0, "Transition", "NLA Strip 'transitions' between adjacent strips"}, {NLASTRIP_TYPE_META, "META", 0, "Meta", "NLA Strip acts as a container for adjacent strips"}, + {NLASTRIP_TYPE_SOUND, "SOUND", 0, "Sound Clip", "NLA Strip representing a sound event for speakers"}, {0, NULL, 0, NULL, NULL}}; /* struct definition */ @@ -447,7 +448,6 @@ static void rna_def_nlastrip(BlenderRNA *brna) RNA_def_property_update(prop, NC_ANIMATION|ND_NLA, NULL); /* this will do? */ /* Action */ - // TODO: this should only be editable if it is not being edited atm... prop= RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "act"); RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Action_id_poll"); -- cgit v1.2.3 From b057cf1bb118a070e2eeb3b2029aa80fad00a9b2 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 7 Aug 2011 12:43:44 +0000 Subject: Nla Sound Strips + Add Speaker Second part of previous commit. Now, when speaker objects are created, they are created by default with an NLA sound strip so that it is easy to just start immediately using this to do cool stuff (i.e. timing when you want the sound to start). --- source/blender/editors/object/object_add.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 22e6a5243c7..97d109118d1 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -35,6 +35,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_anim_types.h" #include "DNA_curve_types.h" #include "DNA_group_types.h" #include "DNA_lamp_types.h" @@ -69,6 +70,7 @@ #include "BKE_mball.h" #include "BKE_mesh.h" #include "BKE_modifier.h" +#include "BKE_nla.h" #include "BKE_object.h" #include "BKE_particle.h" #include "BKE_report.h" @@ -778,6 +780,25 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; ob= ED_object_add_type(C, OB_SPEAKER, loc, rot, FALSE, layer); + + /* to make it easier to start using this immediately in NLA, a default sound clip is created + * ready to be moved around to retime the sound and/or make new sound clips + */ + { + /* create new data for NLA hierarchy */ + AnimData *adt = BKE_id_add_animdata(&ob->id); + NlaTrack *nlt = add_nlatrack(adt, NULL); + NlaStrip *strip = add_nla_soundstrip(CTX_data_scene(C), ob->data); + + /* hook them up */ + BKE_nlatrack_add_strip(nlt, strip); + + /* auto-name the strip, and give the track an interesting name */ + strcpy(nlt->name, "SoundTrack"); + BKE_nlastrip_validate_name(adt, strip); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL); + } return OPERATOR_FINISHED; } -- cgit v1.2.3 From 0dea4df76442ffce1e0e7162fab103f6cca99b12 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 7 Aug 2011 14:57:25 +0000 Subject: Changed do_version condition for noodle_curving. It should be re-set to 5 for files saved in 2.58.1 release. --- source/blender/editors/interface/resources.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index f3db6ad11ae..e71f709f89b 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1557,7 +1557,7 @@ void init_userdef_do_versions(void) U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET; } - if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) { + if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 2)) { bTheme *btheme; for(btheme= U.themes.first; btheme; btheme= btheme->next) { btheme->tnode.noodle_curving = 5; -- cgit v1.2.3 From 3a55da7616fa5613b8a95a591059bb55102dbfb4 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 7 Aug 2011 17:01:44 +0000 Subject: removed old ndof transform code, to be replaced with modern stuff in 2.6 --- source/blender/editors/transform/CMakeLists.txt | 1 - source/blender/editors/transform/transform.c | 5 - source/blender/editors/transform/transform.h | 26 ---- .../blender/editors/transform/transform_generics.c | 1 - .../editors/transform/transform_ndofinput.c | 162 --------------------- source/blender/editors/transform/transform_ops.c | 7 +- 6 files changed, 2 insertions(+), 200 deletions(-) delete mode 100644 source/blender/editors/transform/transform_ndofinput.c (limited to 'source/blender') diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt index 283b09f42e4..e44cc1f5df3 100644 --- a/source/blender/editors/transform/CMakeLists.txt +++ b/source/blender/editors/transform/CMakeLists.txt @@ -41,7 +41,6 @@ set(SRC transform_generics.c transform_input.c transform_manipulator.c - transform_ndofinput.c transform_ops.c transform_orientations.c transform_snap.c diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 39e26bc6436..c1c812e8c68 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1006,11 +1006,6 @@ int transformEvent(TransInfo *t, wmEvent *event) else view_editmove(event->type); t->redraw= 1; break; -#if 0 - case NDOF_MOTION: - // should have been caught by tranform_modal - return OPERATOR_PASS_THROUGH; -#endif default: handled = 0; break; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index d8e42488787..485344875d4 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -67,14 +67,6 @@ struct wmTimer; struct ARegion; struct ReportList; -typedef struct NDofInput { - int flag; - int axis; - float fval[7]; - float factor[3]; -} NDofInput; - - /* The ctrl value has different meaning: 0 : No value has been typed @@ -273,7 +265,6 @@ typedef struct TransInfo { TransCon con; /* transformed constraint */ TransSnap tsnap; NumInput num; /* numerical input */ - NDofInput ndof; /* ndof input */ MouseInput mouse; /* mouse input */ char redraw; /* redraw flag */ float prop_size; /* proportional circle radius */ @@ -340,9 +331,6 @@ typedef struct TransInfo { /* ******************** Macros & Prototypes *********************** */ -/* NDOFINPUT FLAGS */ -#define NDOF_INIT 1 - /* transinfo->state */ #define TRANS_STARTING 0 #define TRANS_RUNNING 1 @@ -683,20 +671,6 @@ void calculatePropRatio(TransInfo *t); void getViewVector(TransInfo *t, float coord[3], float vec[3]); -/*********************** NDofInput ********************************/ - -void initNDofInput(NDofInput *n); -int hasNDofInput(NDofInput *n); -void applyNDofInput(NDofInput *n, float *vec); -int handleNDofInput(NDofInput *n, struct wmEvent *event); - -/* handleNDofInput return values */ -#define NDOF_REFRESH 1 -#define NDOF_NOMOVE 2 -#define NDOF_CONFIRM 3 -#define NDOF_CANCEL 4 - - /*********************** Transform Orientations ******************************/ void initTransformOrientation(struct bContext *C, TransInfo *t); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index c81c398e696..306796efee9 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1165,7 +1165,6 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) setTransformViewMatrices(t); initNumInput(&t->num); - initNDofInput(&t->ndof); return 1; } diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c deleted file mode 100644 index c5946163770..00000000000 --- a/source/blender/editors/transform/transform_ndofinput.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is: all of this file. - * - * Contributor(s): Martin Poirier - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/transform/transform_ndofinput.c - * \ingroup edtransform - */ - - - #include /* fabs */ -#include /* for sprintf */ - -#include "BLI_utildefines.h" - -#include "BKE_global.h" /* for G */ - /* ABS */ - -#include "WM_types.h" - -#include "transform.h" - -#if 0 -static int updateNDofMotion(NDofInput *n); // return 0 when motion is null -#endif -static void resetNDofInput(NDofInput *n); - -void initNDofInput(NDofInput *n) -{ - int i; - - n->flag = 0; - n->axis = 0; - - resetNDofInput(n); - - for(i = 0; i < 3; i++) - { - n->factor[i] = 1.0f; - } -} - -static void resetNDofInput(NDofInput *n) -{ - int i; - for(i = 0; i < 6; i++) - { - n->fval[i] = 0.0f; - } -} - - -int handleNDofInput(NDofInput *UNUSED(n), wmEvent *UNUSED(event)) -{ - int retval = 0; - // TRANSFORM_FIX_ME -#if 0 - switch(event) - { - case NDOFMOTION: - if (updateNDofMotion(n) == 0) - { - retval = NDOF_NOMOVE; - } - else - { - retval = NDOF_REFRESH; - } - break; - case NDOFBUTTON: - if (val == 1) - { - retval = NDOF_CONFIRM; - } - else if (val == 2) - { - retval = NDOF_CANCEL; - resetNDofInput(n); - n->flag &= ~NDOF_INIT; - } - break; - } -#endif - return retval; -} - -int hasNDofInput(NDofInput *n) -{ - return (n->flag & NDOF_INIT) == NDOF_INIT; -} - -void applyNDofInput(NDofInput *n, float *vec) -{ - if (hasNDofInput(n)) - { - int i, j; - - for (i = 0, j = 0; i < 6; i++) - { - if (n->axis & (1 << i)) - { - vec[j] = n->fval[i] * n->factor[j]; - j++; - } - } - } -} - -// TRANSFORM_FIX_ME -#if 0 - -static int updateNDofMotion(NDofInput *n) -{ - float fval[7]; - int i; - int retval = 0; - - getndof(fval); - - if (G.vd->ndoffilter) - filterNDOFvalues(fval); - - for(i = 0; i < 6; i++) - { - if (!retval && fval[i] != 0.0f) - { - retval = 1; - } - - n->fval[i] += fval[i] / 1024.0f; - } - - n->flag |= NDOF_INIT; - - return retval; -} -#endif - - - - diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 54e0b31e201..231293024f0 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -360,17 +360,14 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) TransInfo *t = op->customdata; - #if 0 +#if 0 // stable 2D mouse coords map to different 3D coords while the 3D mouse is active // in other words, 2D deltas are no longer good enough! // disable until individual 'transformers' behave better if (event->type == NDOF_MOTION) - { - /* puts("transform_modal: passing through NDOF_MOTION"); */ return OPERATOR_PASS_THROUGH; - } - #endif +#endif /* XXX insert keys are called here, and require context */ t->context= C; -- cgit v1.2.3 From f12df1e3863ca2043947c64786e0f3c7f0fccca0 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 7 Aug 2011 17:22:47 +0000 Subject: ndof data change: operators can access values as vectors or components, as both are handy --- source/blender/windowmanager/WM_types.h | 10 +++++-- .../blender/windowmanager/intern/wm_event_system.c | 33 ++++++++++++---------- 2 files changed, 26 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 7fd52e89a5f..697133bb163 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -389,8 +389,14 @@ typedef struct wmNDOFMotionData { /* awfully similar to GHOST_TEventNDOFMotionData... */ // Each component normally ranges from -1 to +1, but can exceed that. // These use blender standard view coordinates, with positive rotations being CCW about the axis. - float tvec[3]; // translation - float rvec[3]; // rotation: + union { + float tvec[3]; // translation + struct { float tx, ty, tz; }; + }; + union { + float rvec[3]; // rotation: + struct { float rx, ry, rz; }; + }; // axis = (rx,ry,rz).normalized // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] float dt; // time since previous NDOF Motion event diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 258d6bbc025..c1fd903c479 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2329,29 +2329,32 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g const float s = U.ndof_sensitivity; - data->tvec[0]= s * ghost->tx; + data->tx = s * ghost->tx; - data->rvec[0]= s * ghost->rx; - data->rvec[1]= s * ghost->ry; - data->rvec[2]= s * ghost->rz; + data->rx = s * ghost->rx; + data->rx = s * ghost->ry; + data->rx = s * ghost->rz; if (U.ndof_flag & NDOF_ZOOM_UPDOWN) { - // rotate so Y is where Z was (maintain handed-ness) - data->tvec[1]= s * ghost->tz; - data->tvec[2]= s * -ghost->ty; - - // should this affect rotation also? - // initial guess is 'yes', but get user feedback immediately! -#if 0 // after turning this on, my guess becomes 'no' - data->rvec[1]= s * ghost->rz; - data->rvec[2]= s * ghost->ry; + /* rotate so Y is where Z was */ + data->ty = s * ghost->tz; + data->tz = s * ghost->ty; + /* maintain handed-ness? or just do what feels right? */ + + /* should this affect rotation also? + * initial guess is 'yes', but get user feedback immediately! + */ +#if 0 + /* after turning this on, my guess becomes 'no' */ + data->ry = s * ghost->rz; + data->rz = s * ghost->ry; #endif } else { - data->tvec[1]= s * ghost->ty; - data->tvec[2]= s * ghost->tz; + data->ty = s * ghost->ty; + data->tz = s * ghost->tz; } data->dt = ghost->dt; -- cgit v1.2.3 From 5681380db0f46ec16f942ecba9002061ce37b87d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 7 Aug 2011 17:38:36 +0000 Subject: simplify x11 path code, had unneeded NULL checks and std namespace --- source/blender/windowmanager/intern/wm_event_system.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index c1fd903c479..413ff181f11 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2332,8 +2332,8 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g data->tx = s * ghost->tx; data->rx = s * ghost->rx; - data->rx = s * ghost->ry; - data->rx = s * ghost->rz; + data->ry = s * ghost->ry; + data->rz = s * ghost->rz; if (U.ndof_flag & NDOF_ZOOM_UPDOWN) { -- cgit v1.2.3 From c095397c988cd2ef6a956ce2742814ea2d3e7f0d Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 7 Aug 2011 18:15:40 +0000 Subject: Armature bake animation export ( not as pose matrices. Still needs fixing ) --- source/blender/collada/AnimationExporter.cpp | 21 ++++++++++++++++++++- source/blender/collada/AnimationExporter.h | 1 + source/blender/collada/AnimationImporter.cpp | 7 +++++++ source/blender/collada/AnimationImporter.h | 3 ++- 4 files changed, 30 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 53f3cc9aae3..b1b26fa2915 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -367,7 +367,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if (!pchan) return; - find_all_frames(ob_arm, fra); + find_frames(ob_arm, fra); if (flag & ARM_RESTPOS) { arm->flag &= ~ARM_RESTPOS; @@ -1119,6 +1119,25 @@ void AnimationExporter::exportAnimations(Scene *sce) return; } + + void AnimationExporter::find_frames(Object *ob, std::vector &fra) + { + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + + for (; fcu; fcu = fcu->next) { + + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; // + if (std::find(fra.begin(), fra.end(), f) == fra.end()) + fra.push_back(f); + } + } + + // keep the keys in ascending order + std::sort(fra.begin(), fra.end()); + } + + void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) { FCurve *fcu= (FCurve*)ob->adt->action->curves.first; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index cadd6940e9d..d4559782ff4 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -144,6 +144,7 @@ protected: std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); + void find_frames(Object *ob, std::vector &fra); void find_all_frames(Object *ob, std::vector &fra); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 8ae2d6970cd..0fc01e51020 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -929,6 +929,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , Assign_float_animations( listid, AnimCurves , "specular_hardness" ); } + if((animType->material & MATERIAL_IOR) != 0){ + const COLLADAFW::FloatOrParam *ior = &(efc->getIndexOfRefraction()); + const COLLADAFW::UniqueId& listid = ior->getAnimationList(); + Assign_float_animations( listid, AnimCurves , "raytrace_transparency.ior" ); + } + if((animType->material & MATERIAL_SPEC_COLOR) != 0){ const COLLADAFW::ColorOrTexture *cot = &(efc->getSpecular()); const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); @@ -1010,6 +1016,7 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); + types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); } } return types; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 02b7b05afec..ea7de961382 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -111,7 +111,8 @@ private: MATERIAL_SHININESS = 2, MATERIAL_SPEC_COLOR = 4, MATERIAL_DIFF_COLOR = 1 << 3, - MATERIAL_TRANSPARENCY = 1 << 4 + MATERIAL_TRANSPARENCY = 1 << 4, + MATERIAL_IOR = 1 << 5 }; enum AnimationType -- cgit v1.2.3 From 28ae6d85fee9ec32c7a16b9fa004ba6fef3d84f8 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Sun, 7 Aug 2011 18:57:39 +0000 Subject: fixed typo --- source/blender/makesrna/intern/rna_userdef.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 57044188dd9..a685c6deb34 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2769,7 +2769,7 @@ static void rna_def_userdef_input(BlenderRNA *brna) prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES); RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed"); - /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' + /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' */ /* 3D view: fly */ prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From 3aa0953d95e43296e756f9763144c8c127be5ca5 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 7 Aug 2011 19:22:39 +0000 Subject: COLLADA Armature bake animation export fixed( needs more testing ) --- source/blender/collada/AnimationExporter.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index b1b26fa2915..fc13207dd2e 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -382,6 +382,10 @@ void AnimationExporter::exportAnimations(Scene *sce) dae_baked_animation(fra ,values, id_name(ob_arm), bone->name ); } + + if (flag & ARM_RESTPOS) + arm->flag = flag; + where_is_pose(scene, ob_arm); } void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) @@ -458,7 +462,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return; parchan = pchan->parent; - + enable_fcurves(ob_arm->adt->action, bone->name); std::vector::iterator it; -- cgit v1.2.3 From 349c838996a5d042bb3ebb06162ab9b2c6716fdd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 8 Aug 2011 05:43:04 +0000 Subject: add missing header to cmake files (else some IDE's wont index it) --- source/blender/windowmanager/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index 20ac3ba7077..dc83e29b497 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -67,6 +67,7 @@ set(SRC intern/wm_window.c WM_api.h + WM_keymap.h WM_types.h wm.h wm_cursors.h -- cgit v1.2.3 From cc0ec3aa33e09b964cc6f4d0c8d253671ebebf4a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 8 Aug 2011 08:22:01 +0000 Subject: fix [#28178] make single user copy of object data doesn't work --- source/blender/editors/include/ED_object.h | 2 +- .../editors/interface/interface_templates.c | 38 +++++++++++++--------- source/blender/editors/object/object_relations.c | 14 ++++++++ source/blender/makesrna/RNA_access.h | 1 + 4 files changed, 39 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 28d0a9520b2..c646ec55506 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -108,7 +108,7 @@ int ED_object_add_generic_get_opts(struct bContext *C, struct wmOperator *op, fl struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, float *rot, int enter_editmode, unsigned int layer); void ED_object_single_users(struct Main *bmain, struct Scene *scene, int full); - +void ED_object_single_user(struct Scene *scene, struct Object *ob); /* object motion paths */ void ED_objects_clear_paths(struct bContext *C); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 2d443bbfcd0..35125d1483e 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -53,6 +53,7 @@ #include "BKE_displist.h" #include "ED_screen.h" +#include "ED_object.h" #include "ED_render.h" #include "RNA_access.h" @@ -275,18 +276,28 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) break; case UI_ID_ALONE: if(id) { + const int do_scene_obj= (GS(id->name) == ID_OB) && + (template->ptr.type == &RNA_SceneObjects); + /* make copy */ - if(id_copy(id, &newid, 0) && newid) { - /* copy animation actions too */ - BKE_copy_animdata_id_action(id); - /* us is 1 by convention, but RNA_property_pointer_set - will also incremement it, so set it to zero */ - newid->us= 0; - - /* assign copy */ - RNA_id_pointer_create(newid, &idptr); - RNA_property_pointer_set(&template->ptr, template->prop, idptr); - RNA_property_update(C, &template->ptr, template->prop); + if(do_scene_obj) { + Scene *scene= CTX_data_scene(C); + ED_object_single_user(scene, (struct Object *)id); + WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); + } + else { + if(id_copy(id, &newid, 0) && newid) { + /* copy animation actions too */ + BKE_copy_animdata_id_action(id); + /* us is 1 by convention, but RNA_property_pointer_set + will also incremement it, so set it to zero */ + newid->us= 0; + + /* assign copy */ + RNA_id_pointer_create(newid, &idptr); + RNA_property_pointer_set(&template->ptr, template->prop, idptr); + RNA_property_update(C, &template->ptr, template->prop); + } } } break; @@ -404,10 +415,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str sprintf(str, "%d", id->us); - if(id->us<10) - but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy."); - else - but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X+10,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy."); + but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X + ((id->us < 10) ? 0:10), UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy."); uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ALONE)); if(!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib) || !editable) diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 0fb7cf8b640..225e6e73563 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1402,6 +1402,20 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag) set_sca_new_poins(); } +/* not an especially efficient function, only added so the single user + * button can be functional.*/ +void ED_object_single_user(Scene *scene, Object *ob) +{ + Base *base; + + for(base= FIRSTBASE; base; base= base->next) { + if(base->object == ob) base->flag |= OB_DONE; + else base->flag &= ~OB_DONE; + } + + single_object_users(scene, NULL, OB_DONE); +} + static void new_id_matar(Material **matar, int totcol) { ID *id; diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 882fbce9271..0033a1ff437 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -392,6 +392,7 @@ extern StructRNA RNA_Scene; extern StructRNA RNA_SceneGameData; extern StructRNA RNA_SceneRenderLayer; extern StructRNA RNA_SceneSequence; +extern StructRNA RNA_SceneObjects; extern StructRNA RNA_Scopes; extern StructRNA RNA_Screen; extern StructRNA RNA_ScrewModifier; -- cgit v1.2.3 From 24acf58fc47f1ed6132bcaa07b86b756e1b3194a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 8 Aug 2011 09:01:09 +0000 Subject: quiet harmless py resource warning - file opened but not closed. --- source/blender/editors/interface/interface_templates.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 35125d1483e..305a4a8b3d6 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -277,7 +277,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) case UI_ID_ALONE: if(id) { const int do_scene_obj= (GS(id->name) == ID_OB) && - (template->ptr.type == &RNA_SceneObjects); + (template->ptr.type == &RNA_SceneObjects); /* make copy */ if(do_scene_obj) { -- cgit v1.2.3 From 85b77c931d2de579671dbe68640341407f91ecb2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 8 Aug 2011 14:50:10 +0000 Subject: fix [#28183] Wavefront OBJ import has no preset saving --- .../blender/editors/interface/interface_layout.c | 38 +++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 85cc944f03b..df654cf3645 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -2745,6 +2745,25 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in uiItemL(layout, "* Redo Unsupported *", ICON_NONE); // XXX, could give some nicer feedback or not show redo panel at all? } + /* menu */ + if(op->type->flag & OPTYPE_PRESET) { + /* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */ + PointerRNA op_ptr; + uiLayout *row; + + row= uiLayoutRow(layout, TRUE); + uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE); + + WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add"); + RNA_string_set(&op_ptr, "operator", op->type->idname); + op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); + + WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add"); + RNA_string_set(&op_ptr, "operator", op->type->idname); + RNA_boolean_set(&op_ptr, "remove_active", 1); + op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); + } + if(op->type->ui) { op->layout= layout; op->type->ui((bContext*)C, op); @@ -2759,25 +2778,6 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - /* menu */ - if(op->type->flag & OPTYPE_PRESET) { - /* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */ - PointerRNA op_ptr; - uiLayout *row; - - row= uiLayoutRow(layout, TRUE); - uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE); - - WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add"); - RNA_string_set(&op_ptr, "operator", op->type->idname); - op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); - - WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add"); - RNA_string_set(&op_ptr, "operator", op->type->idname); - RNA_boolean_set(&op_ptr, "remove_active", 1); - op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); - } - /* main draw call */ empty= uiDefAutoButsRNA(layout, &ptr, check_prop, label_align) == 0; -- cgit v1.2.3 From cbec4e2768022596ff6acb145db3ae073e528397 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Mon, 8 Aug 2011 16:38:57 +0000 Subject: export bone transform matrix with sid. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/TransformWriter.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index fc13207dd2e..4beab6f7608 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -586,7 +586,7 @@ void AnimationExporter::exportAnimations(Scene *sce) addSampler(sampler); - std::string target = translate_id(ob_name + "_" + bone_name) + "/transform"; + std::string target = translate_id(bone_name) + "/transform"; addChannel(COLLADABU::URI(empty, sampler_id), target); closeAnimation(); diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp index 546ca3e3019..3ac0654c866 100644 --- a/source/blender/collada/TransformWriter.cpp +++ b/source/blender/collada/TransformWriter.cpp @@ -48,8 +48,13 @@ void TransformWriter::add_node_transform(COLLADASW::Node& node, float mat[][4], copy_m4_m4(local, mat); } + double dmat[4][4]; + for ( int i = 0 ; i< 4 ; i ++ ) + for ( int j =0 ; j < 4 ; j++) + dmat[i][j] = (double)local[i][j]; + TransformBase::decompose(local, loc, rot, NULL, scale); - + node.addMatrix("transform",dmat); add_transform(node, loc, rot, scale); } -- cgit v1.2.3 From 2dfc51388c7f67a271a4765d2492ab3cb36c2814 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 9 Aug 2011 07:33:51 +0000 Subject: Blender 2.59: * Update the readme file * Update link to release logs, they point to http://www.blender.org/development/release-logs/blender-259/ now --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index cea2d6b3fe5..610a962ba62 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1247,7 +1247,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NONE); uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-258/"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-259/"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.5/Manual"); uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // -- cgit v1.2.3 From 13249b925eda7752b65a36d8270a3af3bdc02981 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 9 Aug 2011 08:38:14 +0000 Subject: 3D Audio GSoC: Speaker objects fully functional! Minor changes: * Fixed three memory bugs found via valgrind. * Fixed bug with jack transport crashing after file loading. * Sound NLA Strips now start at CFRA instead of 0. --- source/blender/blenkernel/BKE_sound.h | 4 ++ source/blender/blenkernel/intern/blender.c | 3 + source/blender/blenkernel/intern/library.c | 2 +- source/blender/blenkernel/intern/scene.c | 3 + source/blender/blenkernel/intern/sound.c | 88 +++++++++++++++++++++++++++++- source/blender/editors/object/object_add.c | 3 + source/blender/makesdna/DNA_anim_types.h | 2 + 7 files changed, 103 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 2cd006385e0..c36532ee4cc 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -46,6 +46,8 @@ void sound_init_once(void); void sound_init(struct Main *main); +void sound_init_main(struct Main *bmain); + void sound_exit(void); void sound_force_device(int device); @@ -124,6 +126,8 @@ int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, flo int sound_get_channels(struct bSound* sound); +void sound_update_scene(struct Main* bmain, struct Scene* scene); + void* sound_get_factory(void* sound); #endif diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index a3a4c5b555b..5f33059e117 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -82,6 +82,7 @@ #include "BKE_scene.h" #include "BKE_screen.h" #include "BKE_sequencer.h" +#include "BKE_sound.h" #include "BLO_undofile.h" @@ -247,6 +248,8 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath G.main= bfd->main; CTX_data_main_set(C, G.main); + + sound_init_main(G.main); if (bfd->user) { diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 8668168936b..c362f3eb2fe 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -533,7 +533,6 @@ int set_listbasepointers(Main *main, ListBase **lb) lb[a++]= &(main->latt); lb[a++]= &(main->lamp); lb[a++]= &(main->camera); - lb[a++]= &(main->speaker); lb[a++]= &(main->text); lb[a++]= &(main->sound); @@ -541,6 +540,7 @@ int set_listbasepointers(Main *main, ListBase **lb) lb[a++]= &(main->brush); lb[a++]= &(main->script); lb[a++]= &(main->particle); + lb[a++]= &(main->speaker); lb[a++]= &(main->world); lb[a++]= &(main->screen); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 74126fd57a1..12e81e8296e 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -966,6 +966,9 @@ static void scene_update_tagged_recursive(Main *bmain, Scene *scene, Scene *scen /* scene drivers... */ scene_update_drivers(bmain, scene); + + /* update sound system animation */ + sound_update_scene(bmain, scene); } /* this is called in main loop, doing tagged updates before redraw */ diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 890fc114e68..17df6ba23cb 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -13,13 +13,16 @@ #include "MEM_guardedalloc.h" #include "BLI_blenlib.h" +#include "BLI_math.h" #include "DNA_anim_types.h" +#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_sequence_types.h" #include "DNA_packedFile_types.h" #include "DNA_screen_types.h" #include "DNA_sound_types.h" +#include "DNA_speaker_types.h" #ifdef WITH_AUDASPACE # include "AUD_C-API.h" @@ -175,7 +178,12 @@ void sound_init(struct Main *bmain) if(!AUD_init(device, specs, buffersize)) AUD_init(AUD_NULL_DEVICE, specs, buffersize); - + + sound_init_main(bmain); +} + +void sound_init_main(struct Main *bmain) +{ #ifdef WITH_JACK AUD_setSyncCallback(sound_sync_callback, bmain); #else @@ -617,6 +625,84 @@ int sound_get_channels(struct bSound* sound) return info.specs.channels; } +void sound_update_scene(struct Main* bmain, struct Scene* scene) +{ + Object* ob; + NlaTrack* track; + NlaStrip* strip; + Speaker* speaker; + + void* new_set = AUD_createSet(); + void* handle; + float quat[4]; + + for(ob = bmain->object.first; ob; ob = ob->id.next) + { + if(ob->type == OB_SPEAKER) + { + if(ob->adt) + { + for(track = ob->adt->nla_tracks.first; track; track = track->next) + { + for(strip = track->strips.first; strip; strip = strip->next) + { + if(strip->type == NLASTRIP_TYPE_SOUND) + { + speaker = (Speaker*)ob->data; + + if(AUD_removeSet(scene->speaker_handles, strip->speaker_handle)) + { + AUD_moveSequence(strip->speaker_handle, strip->start / FPS, -1, 0); + } + else + { + if(speaker && speaker->sound) + { + strip->speaker_handle = AUD_addSequence(scene->sound_scene, speaker->sound->playback_handle, strip->start / FPS, -1, 0); + AUD_setRelativeSequence(strip->speaker_handle, 0); + } + } + + if(strip->speaker_handle) + { + AUD_addSet(new_set, strip->speaker_handle); + AUD_updateSequenceData(strip->speaker_handle, speaker->volume_max, + speaker->volume_min, speaker->distance_max, + speaker->distance_reference, speaker->attenuation, + speaker->cone_angle_outer, speaker->cone_angle_inner, + speaker->cone_volume_outer); + + mat4_to_quat(quat, ob->obmat); + AUD_setSequenceAnimData(strip->speaker_handle, AUD_AP_LOCATION, CFRA, ob->obmat[3], 1); + AUD_setSequenceAnimData(strip->speaker_handle, AUD_AP_ORIENTATION, CFRA, quat, 1); + AUD_setSequenceAnimData(strip->speaker_handle, AUD_AP_VOLUME, CFRA, &speaker->volume, 1); + AUD_setSequenceAnimData(strip->speaker_handle, AUD_AP_PITCH, CFRA, &speaker->pitch, 1); + AUD_updateSequenceSound(strip->speaker_handle, speaker->sound->playback_handle); + AUD_muteSequence(strip->speaker_handle, ((strip->flag & NLASTRIP_FLAG_MUTED) != 0) || ((speaker->flag & SPK_MUTED) != 0)); + } + } + } + } + } + } + } + + while((handle = AUD_getSet(scene->speaker_handles))) + { + AUD_removeSequence(scene->sound_scene, handle); + } + + if(scene->camera) + { + mat4_to_quat(quat, scene->camera->obmat); + AUD_setSequencerAnimData(scene->sound_scene, AUD_AP_LOCATION, CFRA, scene->camera->obmat[3], 1); + AUD_setSequencerAnimData(scene->sound_scene, AUD_AP_ORIENTATION, CFRA, quat, 1); + } + + AUD_destroySet(scene->speaker_handles); + scene->speaker_handles = new_set; +} + void* sound_get_factory(void* sound) { return ((struct bSound*) sound)->playback_handle; diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 97d109118d1..09ce2562e3b 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -774,6 +774,7 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op) int enter_editmode; unsigned int layer; float loc[3], rot[3]; + Scene *scene = CTX_data_scene(C); object_add_generic_invoke_options(C, op); if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer)) @@ -789,6 +790,8 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op) AnimData *adt = BKE_id_add_animdata(&ob->id); NlaTrack *nlt = add_nlatrack(adt, NULL); NlaStrip *strip = add_nla_soundstrip(CTX_data_scene(C), ob->data); + strip->start = CFRA; + strip->end += strip->start; /* hook them up */ BKE_nlatrack_add_strip(nlt, strip); diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 5a031e04fe4..c0030cd0e5e 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -585,6 +585,8 @@ typedef struct NlaStrip { short type; /* type of NLA strip */ + void *speaker_handle; /* handle for speaker objects */ + int flag; /* settings */ int pad2; } NlaStrip; -- cgit v1.2.3 From a672ab5e737202bede956a88357a96cf2728df15 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 9 Aug 2011 14:10:32 +0000 Subject: 3D Audio GSoC: Improved waveform drawing in the sequencer. * Drawing the waveform of a sequencer strip is now independent from whether the sound is cached or not. * Improved drawing of the waveform in the sequencer (especially speed!). * Making it possible to vertically zoom more in the sequencer to better see the waveform for lipsync. * Fixed a bug which crashed blender on loading a sound file via ffmpeg. --- source/blender/blenkernel/BKE_sound.h | 12 ++++- source/blender/blenkernel/intern/sound.c | 35 +++++++++++-- source/blender/blenloader/intern/readfile.c | 31 +++++++++++ .../editors/space_sequencer/sequencer_draw.c | 61 +++++++++++++++++----- .../editors/space_sequencer/space_sequencer.c | 2 +- source/blender/makesdna/DNA_sequence_types.h | 1 + source/blender/makesdna/DNA_sound_types.h | 5 ++ source/blender/makesrna/intern/rna_sequencer.c | 5 ++ 8 files changed, 131 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index c36532ee4cc..ecf0d7e459a 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -35,6 +35,8 @@ * \author nzc */ +#define SOUND_WAVE_SAMPLES_PER_SECOND 250 + struct PackedFile; struct bSound; struct bContext; @@ -42,6 +44,12 @@ struct ListBase; struct Main; struct Sequence; +typedef struct SoundWaveform +{ + int length; + float *data; +} SoundWaveform; + void sound_init_once(void); void sound_init(struct Main *main); @@ -122,7 +130,9 @@ float sound_sync_scene(struct Scene *scene); int sound_scene_playing(struct Scene *scene); -int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, float start, float end); +void sound_free_waveform(struct bSound* sound); + +void sound_read_waveform(struct bSound* sound); int sound_get_channels(struct bSound* sound); diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 17df6ba23cb..888c719a304 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -24,6 +24,7 @@ #include "DNA_sound_types.h" #include "DNA_speaker_types.h" +#define WITH_AUDASPACE #ifdef WITH_AUDASPACE # include "AUD_C-API.h" #endif @@ -96,6 +97,8 @@ void sound_free(struct bSound* sound) AUD_unload(sound->cache); sound->cache = NULL; } + + sound_free_waveform(sound); #endif // WITH_AUDASPACE } @@ -608,12 +611,34 @@ int sound_scene_playing(struct Scene *scene) return -1; } -int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, float start, float end) +void sound_free_waveform(struct bSound* sound) +{ + if(sound->waveform) + { + MEM_freeN(((SoundWaveform*)sound->waveform)->data); + MEM_freeN(sound->waveform); + } + + sound->waveform = NULL; +} + +void sound_read_waveform(struct bSound* sound) { - AUD_Sound* limiter = AUD_limitSound(sound->cache, start, end); - int ret= AUD_readSound(limiter, buffer, length); - AUD_unload(limiter); - return ret; + AUD_SoundInfo info; + + info = AUD_getInfo(sound->playback_handle); + + if(info.length > 0) + { + SoundWaveform* waveform = MEM_mallocN(sizeof(SoundWaveform), "SoundWaveform");; + int length = info.length * SOUND_WAVE_SAMPLES_PER_SECOND; + + waveform->data = MEM_mallocN(length * sizeof(float) * 3, "SoundWaveform.samples"); + waveform->length = AUD_readSound(sound->playback_handle, waveform->data, length, SOUND_WAVE_SAMPLES_PER_SECOND); + + sound_free_waveform(sound); + sound->waveform = waveform; + } } int sound_get_channels(struct bSound* sound) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index ef71df31df4..ae5bafa2d08 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5609,6 +5609,7 @@ static void direct_link_sound(FileData *fd, bSound *sound) { sound->handle = NULL; sound->playback_handle = NULL; + sound->waveform = NULL; // versioning stuff, if there was a cache, then we enable caching: if(sound->cache) @@ -11766,6 +11767,36 @@ static void do_versions(FileData *fd, Library *lib, Main *main) SEQ_END } } + { + bScreen *screen; + for(screen= main->screen.first; screen; screen= screen->id.next) { + ScrArea *sa; + /* add regions */ + for(sa= screen->areabase.first; sa; sa= sa->next) { + SpaceLink *sl= sa->spacedata.first; + if(sl->spacetype==SPACE_SEQ) { + ARegion *ar; + for (ar=sa->regionbase.first; ar; ar= ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + if(ar->v2d.min[1] == 4.0f) + ar->v2d.min[1]= 0.5f; + } + } + } + for (sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype==SPACE_SEQ) { + ARegion *ar; + for (ar=sl->regionbase.first; ar; ar= ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + if(ar->v2d.min[1] == 4.0f) + ar->v2d.min[1]= 0.5f; + } + } + } + } + } + } + } { /* Make "auto-clamped" handles a per-keyframe setting instead of per-FCurve * diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 7e4207c75fe..bc97ff341db 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -173,30 +173,63 @@ static void drawseqwave(Scene *scene, Sequence *seq, float x1, float y1, float x x2 the end x value, same for y1 and y2 stepsize is width of a pixel. */ - if(seq->sound->cache) + if(seq->flag & SEQ_AUDIO_DRAW_WAVEFORM) { - int i; + int i, j, pos; int length = floor((x2-x1)/stepsize)+1; float ymid = (y1+y2)/2; float yscale = (y2-y1)/2; - float* samples = MEM_mallocN(length * sizeof(float) * 2, "seqwave_samples"); - if(!samples) - return; - if(sound_read_sound_buffer(seq->sound, samples, length, - (seq->startofs + seq->anim_startofs)/FPS, - (seq->startofs + seq->anim_startofs + seq->enddisp - seq->startdisp)/FPS) != length) + float samplestep; + float startsample, endsample; + float value; + + SoundWaveform* waveform; + + if(!seq->sound->waveform) + sound_read_waveform(seq->sound); + + waveform = seq->sound->waveform; + + startsample = floor((seq->startofs + seq->anim_startofs)/FPS * SOUND_WAVE_SAMPLES_PER_SECOND); + endsample = ceil((seq->startofs + seq->anim_startofs + seq->enddisp - seq->startdisp)/FPS * SOUND_WAVE_SAMPLES_PER_SECOND); + samplestep = (endsample-startsample) * stepsize / (x2-x1); + + if(length > floor((waveform->length - startsample) / samplestep)) + length = floor((waveform->length - startsample) / samplestep); + + glBegin(GL_LINE_STRIP); + for(i = 0; i < length; i++) { - MEM_freeN(samples); - return; + pos = startsample + i * samplestep; + + value = waveform->data[pos * 3]; + + for(j = pos+1; (j < waveform->length) && (j < pos + samplestep); j++) + { + if(value > waveform->data[j * 3]) + value = waveform->data[j * 3]; + } + + glVertex2f(x1+i*stepsize, ymid + value * yscale); } - glBegin(GL_LINES); + glEnd(); + + glBegin(GL_LINE_STRIP); for(i = 0; i < length; i++) { - glVertex2f(x1+i*stepsize, ymid + samples[i * 2] * yscale); - glVertex2f(x1+i*stepsize, ymid + samples[i * 2 + 1] * yscale); + pos = startsample + i * samplestep; + + value = waveform->data[pos * 3 + 1]; + + for(j = pos+1; (j < waveform->length) && (j < pos + samplestep); j++) + { + if(value < waveform->data[j * 3 + 1]) + value = waveform->data[j * 3 + 1]; + } + + glVertex2f(x1+i*stepsize, ymid + value * yscale); } glEnd(); - MEM_freeN(samples); } } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index d1df9699fa3..36471c7ffcf 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -223,7 +223,7 @@ static SpaceLink *sequencer_new(const bContext *C) ar->v2d.cur= ar->v2d.tot; ar->v2d.min[0]= 10.0f; - ar->v2d.min[1]= 4.0f; + ar->v2d.min[1]= 0.5f; ar->v2d.max[0]= MAXFRAMEF; ar->v2d.max[1]= MAXSEQ; diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index aa04dc9ac13..359ef8449e9 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -288,6 +288,7 @@ typedef struct SpeedControlVars { #define SEQ_AUDIO_VOLUME_ANIMATED (1<<24) #define SEQ_AUDIO_PITCH_ANIMATED (1<<25) #define SEQ_AUDIO_PAN_ANIMATED (1<<26) +#define SEQ_AUDIO_DRAW_WAVEFORM (1<<27) #define SEQ_INVALID_EFFECT (1<<31) diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h index 56ad0e1ff84..d7546e84bbf 100644 --- a/source/blender/makesdna/DNA_sound_types.h +++ b/source/blender/makesdna/DNA_sound_types.h @@ -84,6 +84,11 @@ typedef struct bSound { */ void *cache; + /** + * Waveform display data. + */ + void *waveform; + /** * The audaspace handle that should actually be played back. * Should be cache if cache != NULL; otherwise it's handle diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 6e18f955bf5..38575242fd6 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -976,6 +976,11 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be transformed"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + prop= RNA_def_property(srna, "waveform", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_AUDIO_DRAW_WAVEFORM); + RNA_def_property_ui_text(prop, "Draw Waveform", "Whether to draw the sound's waveform."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + /* strip positioning */ prop= RNA_def_property(srna, "frame_final_duration", PROP_INT, PROP_TIME); -- cgit v1.2.3 From 8655385c9edb5e61416018406f8a3fe3b8e7d141 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 9 Aug 2011 14:34:42 +0000 Subject: Fix for last commit: MSVC dislikes ;; --- source/blender/blenkernel/intern/sound.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 888c719a304..80cb2072357 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -630,7 +630,7 @@ void sound_read_waveform(struct bSound* sound) if(info.length > 0) { - SoundWaveform* waveform = MEM_mallocN(sizeof(SoundWaveform), "SoundWaveform");; + SoundWaveform* waveform = MEM_mallocN(sizeof(SoundWaveform), "SoundWaveform"); int length = info.length * SOUND_WAVE_SAMPLES_PER_SECOND; waveform->data = MEM_mallocN(length * sizeof(float) * 3, "SoundWaveform.samples"); -- cgit v1.2.3 From 22694c993a7e32767db4719e9fa37e93445b66a8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 9 Aug 2011 14:50:40 +0000 Subject: fix [#28186] textboxes properties not animatable --- source/blender/makesrna/intern/rna_curve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 260d483b9d2..599d36ec8b8 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -651,7 +651,7 @@ static char *rna_TextBox_path(PointerRNA *ptr) int index= (int)(tb - cu->tb); if (index >= 0 && index < cu->totbox) - return BLI_sprintfN("textboxes[%d]", index); + return BLI_sprintfN("text_boxes[%d]", index); else return BLI_strdup(""); } -- cgit v1.2.3 From 407ec19431971c4e408fa9e6cda63a71a9b1e9b0 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 9 Aug 2011 16:28:08 +0000 Subject: temporary fix for quat rotations --- source/blender/collada/AnimationExporter.cpp | 2 ++ source/blender/collada/AnimationImporter.cpp | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 4beab6f7608..337fd89a7fa 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -208,10 +208,12 @@ void AnimationExporter::exportAnimations(Scene *sce) if ( !strcmp(transformName, "rotation_quaternion") ) { + fprintf(stderr, "quaternion rotations are not supported. rotation curves will not be exported\n"); quatRotation = true; /*const char *axis_names[] = {"", "X", "Y", "Z"}; if (fcu->array_index < 4) axis_name = axis_names[fcu->array_index];*/ + return; } //maybe a list or a vector of float animations else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 0fc01e51020..4b467c4a149 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -90,11 +90,12 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) { COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER ) { COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); } + float fps = (float)FPS; size_t dim = curve->getOutDimension(); unsigned int i; @@ -661,6 +662,14 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * } case COLLADAFW::Transformation::MATRIX: + /*{ + COLLADAFW::Matrix* mat = (COLLADAFW::Matrix*)transform; + COLLADABU::Math::Matrix4 mat4 = mat->getMatrix(); + switch (binding->animationClass) { + case COLLADAFW::AnimationList::TRANSFORM: + + } + }*/ case COLLADAFW::Transformation::SKEW: case COLLADAFW::Transformation::LOOKAT: fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); -- cgit v1.2.3 From ef40d8e4f0c69f4a2da24ea6bd8ce560aa3b180a Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 9 Aug 2011 17:37:12 +0000 Subject: Another error in last bigger commit. --- source/blender/blenkernel/intern/sound.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 80cb2072357..1b09db84125 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -24,7 +24,6 @@ #include "DNA_sound_types.h" #include "DNA_speaker_types.h" -#define WITH_AUDASPACE #ifdef WITH_AUDASPACE # include "AUD_C-API.h" #endif -- cgit v1.2.3 From 944a891b48e707eded78c0a59f14715e04302c40 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 9 Aug 2011 19:30:17 +0000 Subject: sid addressing fix --- source/blender/collada/AnimationExporter.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 337fd89a7fa..0f7edc9ad7d 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -169,7 +169,7 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu = fcu->next; } - for ( int i = 0 ; i < fcu->totvert ; i++){ + for ( int i = 0 ; i < keys ; i++){ for ( int j = 0;j<4;j++) temp_quat[j] = quat[(i*4)+j]; @@ -208,7 +208,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ( !strcmp(transformName, "rotation_quaternion") ) { - fprintf(stderr, "quaternion rotations are not supported. rotation curves will not be exported\n"); + fprintf(stderr, "quaternion rotation curves are not supported. rotation curve will not be exported\n"); quatRotation = true; /*const char *axis_names[] = {"", "X", "Y", "Z"}; if (fcu->array_index < 4) @@ -261,18 +261,18 @@ void AnimationExporter::exportAnimations(Scene *sce) // create output source std::string output_id ; - /*if(quatRotation) + if(quatRotation) { float * eul = get_eul_source_for_quat(ob); - float * eul_axis = + float * eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); for ( int i = 0 ; i< fcu->totvert ; i++) eul_axis[i] = eul[i*3 + fcu->array_index]; output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); } - else*/ - - output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); - + else + { + output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); + } // create interpolations source std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents); @@ -1085,12 +1085,15 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = ""; break; } - + if (tm_name.size()) { if (is_rotation) - return tm_name + std::string(axis_name); + return tm_name + std::string(axis_name) + ".ANGLE"; else - return tm_name; + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; } return std::string(""); -- cgit v1.2.3 From 4262bd2906dca0c7c8a3eec189e0abd817df6b01 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 9 Aug 2011 20:00:53 +0000 Subject: fix [#28196] Unwrap tris in lightmap pack --- source/blender/python/intern/bpy_rna_array.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index 9843a57e0f2..e50ce233671 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -285,17 +285,20 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, int int totdim= RNA_property_array_dimension(ptr, prop, NULL); const int seq_size= PySequence_Size(seq); - /* General note for 'data' being NULL or PySequence_GetItem() failing. + /* Regarding PySequence_GetItem() failing. * * This should never be NULL since we validated it, _but_ some triky python * developer could write their own sequence type which succeeds on - * validating but fails later somehow, so include checks for safety. */ + * validating but fails later somehow, so include checks for safety. + */ + + /* Note that 'data can be NULL' */ if(seq_size == -1) { return NULL; } - for (i= 0; (i < seq_size) && data; i++) { + for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); if(item) { if (dim + 1 < totdim) { -- cgit v1.2.3 From 3ddbc3869d4fba5ca911117ca591826cc61adac1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 9 Aug 2011 20:33:35 +0000 Subject: fix [#28197] Undoing Grease pencil removes last 2 strokes --- source/blender/editors/gpencil/gpencil_paint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 28a54b20277..93963b3f7ed 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1722,7 +1722,7 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) /* standard undo/redo shouldn't be allowed to execute or else it causes crashes, so catch it here */ // FIXME: this is a hardcoded hotkey that can't be changed // TODO: catch redo as well, but how? - if (event->type == ZKEY) { + if (event->type == ZKEY && event->val == KM_RELEASE) { /* oskey = cmd key on macs as they seem to use cmd-z for undo as well? */ if ((event->ctrl) || (event->oskey)) { /* just delete last stroke, which will look like undo to the end user */ -- cgit v1.2.3 From a10e00dc5741794f125abfcfa3f7b445335b34dc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 9 Aug 2011 21:32:46 +0000 Subject: fix for crash undoing grease pencil session, last action would free entire frame which the session held a reference to. --- source/blender/editors/gpencil/gpencil_paint.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 93963b3f7ed..2311f4a3a64 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1728,7 +1728,12 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) /* just delete last stroke, which will look like undo to the end user */ //printf("caught attempted undo event... deleting last stroke \n"); gpencil_frame_delete_laststroke(p->gpl, p->gpf); - + /* undoing the last line can free p->gpf + * note, could do this in a bit more of an elegant way then a search but it at least prevents a crash */ + if(BLI_findindex(&p->gpl->frames, p->gpf) == -1) { + p->gpf= NULL; + } + /* event handled, so force refresh */ ED_region_tag_redraw(p->ar); /* just active area for now, since doing whole screen is too slow */ estate = OPERATOR_RUNNING_MODAL; -- cgit v1.2.3 From fafe6e354044d28be71ab76c2211d785773a9c0f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 10 Aug 2011 00:46:20 +0000 Subject: Gianmichele request: Pose Sliding tools show percentage indicator in header --- source/blender/editors/armature/poseSlide.c | 43 +++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c index 3d6888d87dc..9b92bccd979 100644 --- a/source/blender/editors/armature/poseSlide.c +++ b/source/blender/editors/armature/poseSlide.c @@ -93,7 +93,8 @@ /* Temporary data shared between these operators */ typedef struct tPoseSlideOp { Scene *scene; /* current scene */ - ARegion *ar; /* region that we're operating in (needed for */ + ScrArea *sa; /* area that we're operating in (needed for modal()) */ + ARegion *ar; /* region that we're operating in (needed for modal()) */ Object *ob; /* active object that Pose Info comes from */ bArmature *arm; /* armature for pose */ @@ -132,6 +133,7 @@ static int pose_slide_init (bContext *C, wmOperator *op, short mode) pso->scene= CTX_data_scene(C); pso->ob= ED_object_pose_armature(CTX_data_active_object(C)); pso->arm= (pso->ob)? pso->ob->data : NULL; + pso->sa= CTX_wm_area(C); /* only really needed when doing modal() */ pso->ar= CTX_wm_region(C); /* only really needed when doing modal() */ pso->cframe= pso->scene->r.cfra; @@ -519,6 +521,33 @@ static void pose_slide_reset (tPoseSlideOp *pso) /* ------------------------------------ */ +/* draw percentage indicator in header */ +static void pose_slide_draw_status (bContext *C, tPoseSlideOp *pso) +{ + char statusStr[32]; + char mode[32]; + + switch (pso->mode) { + case POSESLIDE_PUSH: + strcpy(mode, "Push Pose"); + break; + case POSESLIDE_RELAX: + strcpy(mode, "Relax Pose"); + break; + case POSESLIDE_BREAKDOWN: + strcpy(mode, "Breakdown"); + break; + + default: + // unknown + strcpy(mode, "Sliding-Tool"); + break; + } + + sprintf(statusStr, "%s: %d %%", mode, (int)(pso->percentage*100.0f)); + ED_area_headerprint(pso->sa, statusStr); +} + /* common code for invoke() methods */ static int pose_slide_invoke_common (bContext *C, wmOperator *op, tPoseSlideOp *pso) { @@ -587,6 +616,9 @@ static int pose_slide_invoke_common (bContext *C, wmOperator *op, tPoseSlideOp * /* set cursor to indicate modal */ WM_cursor_modal(win, BC_EW_SCROLLCURSOR); + /* header print */ + pose_slide_draw_status(C, pso); + /* add a modal handler for this operator */ WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; @@ -601,7 +633,8 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt) switch (evt->type) { case LEFTMOUSE: /* confirm */ { - /* return to normal cursor */ + /* return to normal cursor and header status */ + ED_area_headerprint(pso->sa, NULL); WM_cursor_restore(win); /* insert keyframes as required... */ @@ -615,7 +648,8 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt) case ESCKEY: /* cancel */ case RIGHTMOUSE: { - /* return to normal cursor */ + /* return to normal cursor and header status */ + ED_area_headerprint(pso->sa, NULL); WM_cursor_restore(win); /* reset transforms back to original state */ @@ -639,6 +673,9 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt) pso->percentage= (evt->x - pso->ar->winrct.xmin) / ((float)pso->ar->winx); RNA_float_set(op->ptr, "percentage", pso->percentage); + /* update percentage indicator in header */ + pose_slide_draw_status(C, pso); + /* reset transforms (to avoid accumulation errors) */ pose_slide_reset(pso); -- cgit v1.2.3 From 3a9b288bc7982fc69c8ebf1005122cba45e725dd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 07:36:44 +0000 Subject: fix for [#28201] blender crashes when "mpeg" selected 2 changes - When writing OGG only allow Theora encoding, this fixes the crash. - When setting the MPEG preset, dont allow the 'Codec' to be left as Theora, this is just confusing. * note that this is highly confusing for users and devs - there are 4 places to set the codec/format, with both python and C presets :S. --- source/blender/blenkernel/intern/writeffmpeg.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 4db53999f10..fe7a7a18177 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -658,10 +658,12 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report switch(ffmpeg_type) { case FFMPEG_AVI: case FFMPEG_MOV: - case FFMPEG_OGG: case FFMPEG_MKV: fmt->video_codec = ffmpeg_codec; break; + case FFMPEG_OGG: + fmt->video_codec = CODEC_ID_THEORA; + break; case FFMPEG_DV: fmt->video_codec = CODEC_ID_DVVIDEO; break; @@ -1310,6 +1312,9 @@ void ffmpeg_verify_image_type(RenderData *rd) /* Don't set preset, disturbs render resolution. * ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD); */ } + if(rd->ffcodecdata.type == FFMPEG_OGG) { + rd->ffcodecdata.type = FFMPEG_MPEG2; + } audio= 1; } -- cgit v1.2.3 From 4da9a8959fd74de665ac06aeee69cbfb4d2a6376 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 10 Aug 2011 07:36:57 +0000 Subject: =?UTF-8?q?Fix=20[#28195]=20Particles=20objects=20disappear=20in?= =?UTF-8?q?=20viewport,=20and=2090=C2=B0=20rotation=20Reported=20by=20Jean?= =?UTF-8?q?=20Francois=20Sarazin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lack of normal normalisation caused scaling issues. SIGGRAPH fix by jahka and jesterKing. Thanks to host dfelinto with entertainment provided by slikdigit. --- source/blender/blenkernel/intern/particle.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 5995b895061..9aa1c6e29eb 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -4389,6 +4389,7 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, ParticleData *pa copy_m3_m4(nmat, ob->imat); transpose_m3(nmat); mul_m3_v3(nmat, nor); + normalize_v3(nor); /* make sure that we get a proper side vector */ if(fabs(dot_v3v3(nor,vec))>0.999999) { -- cgit v1.2.3 From 958c468b07655b83fb4bf884b2e650ab018fe216 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 07:49:18 +0000 Subject: fix [#28203] Misplaced string in bone constraints --- source/blender/makesrna/intern/rna_constraint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 0163dd5db32..8127c180706 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -85,7 +85,7 @@ static EnumPropertyItem target_space_pchan_items[] = { static EnumPropertyItem owner_space_pchan_items[] = { {0, "WORLD", 0, "World Space", "The constraint is applied relative to the world coordinate system"}, {2, "POSE", 0, "Pose Space", "The constraint is applied in Pose Space, the object transformation is ignored"}, - {3, "LOCAL_WITH_PARENT", 0, "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, + {3, "LOCAL_WITH_PARENT", 0, "Local With Parent", "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, {1, "LOCAL", 0, "Local Space", "The constraint is applied relative to the local coordinate sytem of the object"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From cff2caa8a787887c544359972c5959127f71e22c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 15:53:46 +0000 Subject: fix [#28206] Motion Paths shown in 3DView even when Only Render option is enabled --- source/blender/editors/space_view3d/drawobject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index e6889f4563f..78788777f49 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5734,7 +5734,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) /* if( ((int)ob->ctime) != F_(scene->r.cfra)) where_is_object(scene, ob); */ /* draw motion paths (in view space) */ - if (ob->mpath) { + if (ob->mpath && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { bAnimVizSettings *avs= &ob->avs; /* setup drawing environment for paths */ -- cgit v1.2.3 From 45d99da8a298ec1c8b5e86b15ab72fd1199b998f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 16:02:02 +0000 Subject: Version bump for 2.59 --- source/blender/blenkernel/BKE_blender.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 18f6ad21333..25eaab82a99 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,7 +43,7 @@ extern "C" { /* these lines are grep'd, watch out for our not-so-awesome regex * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ -#define BLENDER_VERSION 258 +#define BLENDER_VERSION 259 #define BLENDER_SUBVERSION 1 #define BLENDER_MINVERSION 250 @@ -51,9 +51,9 @@ extern "C" { /* used by packaging tools */ /* can be left blank, otherwise a,b,c... etc with no quotes */ -#define BLENDER_VERSION_CHAR a +#define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE beta +#define BLENDER_VERSION_CYCLE release struct ListBase; struct MemFile; -- cgit v1.2.3 From e8471be5f225dd692e20e5fb841e33a2480c2bec Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Wed, 10 Aug 2011 16:03:45 +0000 Subject: 2.59 Splash screen by tomket7. Congratulations! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chosen by the jury Ben Simonds, Reynante Martinez and Hjalti Hjálmarsson. --- source/blender/editors/datafiles/splash.png.c | 12713 ++++++++++++------------ 1 file changed, 6402 insertions(+), 6311 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index aa358275335..a3343496be7 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,6314 +1,6405 @@ /* DataToC output of file */ -int datatoc_splash_png_size= 201866; +int datatoc_splash_png_size= 204738; char datatoc_splash_png[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, - 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 2, 0, 0, 0,135, 56, 89, 17, 0, 0, 10, 79,105, 67, 67, 80, 80, -104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61, -247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81, -193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251, -225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, - 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34, -192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, - 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, - 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86, -138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, - 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0, -120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194, -121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45, -234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, - 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217, -229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, - 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98, -185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, - 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3, -128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, - 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10, -100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, - 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133, -248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, - 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208, -100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51, -196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, - 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3, -132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67, -196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147, -201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, - 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173, -161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, - 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24, -103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145, -202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, - 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, - 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177, -205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248, -156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, - 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157, -231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128, -158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60, -197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, - 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, - 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182, -184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, - 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, - 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, - 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71, -103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210, -245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81, -229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, - 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, - 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219, -101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206, -105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53, -119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, - 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227, -123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, - 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146, -236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58, -189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, - 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171, -158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, - 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, - 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134, -157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100, -207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47, -151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221, -181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, - 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, - 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228, -233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, - 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147, -103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255, -139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199, -187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, - 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, - 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, - 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254, -203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194, -198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, - 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0, -249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, - 69, 7,219, 6, 21, 16, 50, 48,139, 37,211,236, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,105,148, 93,215,117, 30,184,135, -115,135, 55,215,171, 1, 19, 1, 2, 40, 78, 18, 73,137,166, 65, 41, 22,101,205,160, 90, 67,162, 88,138, 1,183,149,216, 89,113, - 98, 32,238,100,181,148,172,101, 3, 29,219,105,199, 75,178, 72,175,229, 33,113,187, 19,194, 67, 71,109, 39,110, 17,146, 45,219, -138,221, 22,161,182, 45,107,176, 45, 66,150,100, 81,226, 0, 20, 49,213,128, 26,222,171, 55,223,225,156,189,251,199,121, 85,134, - 1, 18, 4, 41,208, 36,237,251,253, 32, 11, 85,119, 56,247,220,123,191,253,157,111,239,123, 14, 64,129, 2, 5, 10, 20, 40, 80, -160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, - 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40,240,210, 7,191, 64,199,125,239,119,236,254,207,255,226,222, 67,111,191, 45,119, -242,151,103,219, 69, 71, 23, 40, 80,160,192,223, 6,126,127,203,171,182,253,222,191,249,142,221,152,237,154,170,191,239,190, 59, -111,217, 86,253,244, 95, 92,200,172, 20,221, 93,160, 64,129, 2,127, 99,160, 23,226,160, 21,200, 96,241,204,104,241,252,240,212, - 55,135, 79, 60,249,254, 55,220,250,181, 95, 56,112,235, 13,141,162,187, 11, 20, 40, 80,224,229,173,223,159, 92, 25, 37, 0,239, -188,163,169, 86, 93,175,107,123,189,153,109, 91,255,213,119,221,253,232,185,181,111,158, 95, 47, 58,189, 64,129, 2, 5, 94,174, -252, 14, 0,159,155,235,255,249,252,232,192,183, 79,197,108,242,209,200,173,183, 32, 42,127,239, 59,239,158, 40,243, 31,253,229, -130, 19, 45,186,190, 64,129, 2, 5, 94, 80,224, 11,122,244,155,102,162,223,251, 23,183,221, 90, 11,134,195, 28,152,105,199,158, -120,215,174,175,158, 94,250,174, 15,253,254,153,139,189, 23,247,202,247,237,219,215,108, 54, 1, 96,110,110,110,110,110,238,101, -113,183, 94,142,109, 46, 80,160,192,223, 78,126, 7,128, 74, 72,191,254,125,123,223, 51,219, 72, 70, 14, 64,112,235,206,210,141, -123, 51,149,191,255,147,159,122,248,203, 23,158,247, 97,103,103,103,103,103,103,175,178, 65,187,221, 62,121,242,228, 85, 54,120, -248,225,135,247,239,223, 15, 0, 71,143, 30,125,224,129, 7, 94, 22,119,235,165,217,230,125,251,246,237,223,191,191,217,108,238, -219,183,207,255,230,228,201,147,115,115,115,199,143, 31,111,183,159,115,233,212,165,199,185, 58,158,245, 22, 23, 40,240,119, 28, -230, 57,239,192, 24, 25,186, 50, 74,168,255, 63,254, 85,196, 64, 68, 68, 0,192, 15,254,238, 82,116, 48,126,251,174,122,150, 43, -180,215,146,114, 53,152,218,250,233, 15,189,247,223,255,250,159,126,228, 99,143, 88,247,124,188,154, 3, 7, 14,220,127,255,253, -207,186,217,241,227,199, 79,156, 56,113,236,216,177,226, 78,191, 16,180,126,224,192,129, 3, 7, 14, 92, 25,104,125, 16,122,240, -193, 7,143, 29, 59,118,244,232,209,231,196,242,251,246,237,123,248,225,135,175,101,203, 19, 39, 78,220,119,223,125,197,141, 40, - 80,224, 58,240, 59, 33, 30,122,221,182, 31,125,235,141,211,213, 80,144, 0, 17,136,128, 8, 16,209,240,230,207, 64,132,204,227, -159,145,128,200, 41,166, 2, 54, 12,104, 99, 47,235,114, 25,225, 79,126,255,235,223,118,247,174, 3, 31,254,253,149,245,209, 11, -116,121, 7, 54,112,240,224,193,231,161, 37, 11, 92, 5,143, 60,242,200,179,110,115,232,208,161,253,251,247, 31, 60,120,176, 16, -218, 5, 10,188,164,249,253, 3,111,218,241,179,239,185, 57, 27,138, 10, 50, 33, 0,129, 34, 40, 2, 16, 10,130, 2, 40, 0, 33, - 8,128, 40, 48, 32, 34, 16,128, 2, 35, 6,140,170, 94,226,251, 45, 85, 16,211, 97,246,166, 59,118, 61,246, 75,223,119,223,191, -251,173, 47, 63,185,242,188,175,225,196,137, 19, 87,254,210, 75,200,205,159, 31,126,248,225,251,238,187,175,160,248, 23, 2, 39, - 79,158, 60,126,252,248,201,147, 39,253,141,104, 54,155,251,247,239,247,204, 14, 0,179,179,179, 15, 61,244,208, 61,247,220,243, - 60, 58,255,216,177, 99, 87, 73, 51, 20,119,179, 64,129,235,195,239,132,240, 67,175,219,166,131, 60, 79, 82, 16, 65,244, 70, 12, - 2, 2, 32, 0,226,216,164, 97,162,169, 45, 64, 8, 34, 72, 0, 66, 0, 2, 8,224,153,158, 4, 68,129, 8, 28, 0, 3, 32,100, -105,222,140,162,147,191,240,143,127,232, 23, 63,243,224,167,190, 62,142, 1,207, 17,207, 52, 72,247, 30,142,119, 15,246,237,219, -119,232,208,161,151,139,207,254,114,193,177, 99,199,142, 29, 59,118,153, 54,111,183,219,199,143, 31, 63,126,252,248,131, 15, 62, -120,232,208, 33, 79,241,207,175,243,189,189, 86,244,115,129, 2,207, 15,215,250,125,147, 40,252,204,103,231,145,210, 74,232, 42, - 37, 40,199, 90,142,181, 28,203,248,135, 72, 98,202,192,229, 24,149, 1, 17, 68, 64,228, 18,178,206, 64, 18,144, 17,104, 2,144, -130, 36,160, 25,136,128,168,170,228, 78,108,234,254,243, 7,222,254,208,143,191,187, 28, 5,215,241,218,142, 31, 63,126,169,102, - 63,112,224, 64,113,191,175, 35,238,187,239,190,195,135, 15, 95,197,120, 57,124,248,240,166,250, 62,114,228, 72,209, 99, 5, 10, -188,116,253,153, 7, 63,191,244,153,199,219, 55,207, 68, 8, 40, 27,220,237, 11,217, 83, 43,175,187,169,113,228, 29,183,149,131, -146,136, 0, 51, 32,128,136,102,125,100,164, 93,119,209,204,205, 88,223,134,113, 29,108, 42,131, 21,237, 45,202,202, 19, 96, 71, -128, 37, 5,231, 20,164,159,125,247, 27, 94,177,119, 71,227, 77, 31,124,104,144,228,215,235,242,124, 21,135, 87,145,215, 88,149, -113, 25, 46, 43, 11,121, 30,158,192,102,169,207,181, 23, 53, 62,143, 93,174, 99,155, 55,207,126,245,125,175, 69, 89, 31, 59,118, -204,167,193,125,147, 10, 23,190, 64,129,151, 40,191, 3,192,169,213,244,212,106,122,229,239, 95,189,171,254, 79, 94, 55, 91,229, -200,138, 2, 33, 36,137,166, 3,112, 3,190,245, 13,230,158,247,243,222,239,184,114,200,160,173, 51,246,244,103,220,217,207, 35, -135,160,170, 8,217, 48,219,119,211,246,223,251,169,247,237,255,145,227,249,245,155,172,230,249,213,137, 55,155,205, 67,135, 14, - 29, 56,112,224,178,168, 48, 55, 55,231, 77,137, 43,137,239,254,251,239,247, 27, 31, 63,126,252,216,177, 99,254, 8,135, 14, 29, -186,180,188,100,110,110,238,129, 7, 30,184, 74, 61,207,161, 67,135,142, 28, 57,114,217, 46,207,116,198,111,177,205, 87, 54,248, -200,145, 35,135, 14, 29,242, 37,246,112, 61, 10, 84, 46, 37,244,205,195, 22, 40, 80,224,101,131,195,111,222,169,191,248,118,251, -115,111, 31,254,236,219, 7, 15,188,169,255, 31, 94,211,255,241, 87,247,255,195,171,242, 47,253,119,125, 54,216,115,127,158,124, -226, 80,242,201,195,201, 39,255,117,250, 59,255,107,250,219, 31,208, 63, 60,242,161,127,118,239,179,158,244,200,145, 35,155, 7, -185,250,150,247,223,127,191,223,172,213,106, 93,250,251,135, 31,126,216,255,254, 74,235, 96,255,254,253,173, 86,235, 42,205, 62, -125,250,244,149,163,129, 75, 15,184,111,223,190, 71, 30,121,228,153,118,127,240,193, 7,159,150,157, 31,122,232,161,103,218,229, -145, 71, 30,105, 54,155,215,183,205,151, 53,248,202,221,175,177, 78,241, 42,216,191,127,255,230,209, 46,205,120, 95,223, 93, 10, - 20, 40,112, 29,244,251,101, 40,135,252, 11,223,115,235, 15,188,246,134,116, 36,206,229,144,142,192,230,128,138, 1, 68,239,253, - 8,223,249,110,191, 89,119,148,254,193, 87,206,252,193, 87,207,180,250,163,128,241,149, 59, 38,223,115,207,205,223,126,211,118, - 0,224, 93,175,193,176,150,127,238,103, 32, 52, 0, 10,132,182,159,254,232,251,239,253,175,159,254,198,169,249,235, 48, 83, 77, -179,217,220,180,221,175, 49, 83,119,224,192,129,135, 30,122,232, 82, 5,122,226,196, 9,175,124, 55,165,241,236,236,172, 47,200, -121, 90,195,193, 51,181,215,224,190,176, 4, 54,170,197, 55, 69,186, 23,242,151,197,161, 75, 51, 4,155, 59,250,147,238,219,183, -239,210, 86, 93,223, 54,251,200,225,245,245,230, 71, 67, 87,255,124,236,218,249,253,105,181,252,223,164, 63, 86,160, 64,129,231, -140, 91,182,148,158,252,241,191,167, 63,251,214,225,253,111, 25,124,248,222,193, 79,236, 27,252,196,190,193, 79,222, 51,248,247, -175,204, 62,243, 51,155, 18,236,139, 79, 44,124,231,255,254,177, 29,255,234,151,103,255,237, 71,111,251,145, 95,123,229, 15,255, -218,109,255,230, 87,239,248,192,177,163,191,246,153, 65,146,141, 85,252, 99,159, 78,126,227,123,211, 79,125, 48,253,212, 7,210, - 79,125, 80, 63,253,195,255,227,195,239,251,214,245,251,101,138,248, 50, 49,248,180, 90,120,118,118,118, 83,198,158, 62,125,250, - 74,253,120,169, 76,190,172, 0,124,243,128, 30, 15, 61,244,208,101,142,196,236,236,236,166,168,111,181, 90,151,254,245,208,161, - 67,151, 74,245,203,184,245, 74,109,126, 93,218,124, 89,131, 79,159, 62,125, 89, 10,250, 91,119, 84, 78,159, 62,253,180,125,117, -141,250,253,202, 33,197,233,211,167, 55,107,162, 10, 20, 40,240,130,232,247,119,220,222,252,228, 63,187,221,136, 25,166, 57,184, - 12,156, 5, 66, 64, 0,117, 56,189,203,188,246,251,253,102, 79, 46,181,191,255, 23,255, 96,121,100,203,149, 82,206, 28, 4, 28, - 50,178,134,232,236, 39,254,236, 20, 19,125,232,253,111, 6, 0,190,249, 45,238,241,255, 23, 92, 31, 76, 9, 16,108,150,239,191, -251,198,237, 83,149,197,181,193,181, 52,230,105,107, 51,246,239,223,127, 41,211, 29, 62,124,248, 90,244,251,131, 15, 62,184, 41, - 99,159,182,100,219, 91,210, 94,237,250,154,203,167, 53,211, 79,156, 56,113,240,224,193,203,126, 57, 55, 55,119,244,232, 81,111, -122,248, 34,241,227,199,143, 95,118, 9,115,115,115, 87,214,233,251,147, 62, 19, 69, 94,151, 54,207,205,205, 93,185,239,183, 40, -150, 47, 77, 36, 60,191, 79,136,175, 12, 48,179,179,179, 71,142, 28, 57,114,228,200,203,104, 86,137, 2, 5, 94, 54,252, 30, 48, -126,232,221,187,127,228,205, 55,164, 9,164,152,131,228,128, 10, 1, 1, 0, 32,104,158,153, 91,223,136,213,105,191,241,209,255, -246,249, 39, 47,116,160, 81,237,244, 45,160, 99,132, 50,227,116,197, 52, 75,166,209,168,126,242,207,159,124,243, 29,187,247,223, -181, 23,216,240,236, 27,237, 87, 62,138, 51,123, 64, 69, 16,195, 82,248, 15,239,189,233,191,252,238,215,174,165, 73, 87,159,168, -224,216,177, 99,215, 88, 70,237,231, 81, 25,183,252,153,191,170, 63,121,242,228,177, 99,199, 60, 35,239,223,191,255,105,153,235, -240,225,195, 79,187,239,137, 19, 39, 78,158, 60,185,105,152,108,186, 43,155, 63, 63,240,192, 3, 79,123, 94,127, 82, 95, 8,244, - 66,180,249,153,206,251,188,177,111,223,190,205,251,226,207,254, 92,143,224, 39,177,217,116,117, 54,103,185,217,188,233,179,179, -179,207,212,207, 5, 10, 20,128,231,186,190,199,206,137,240,243,255,250,142, 31,121,253,246,225,208, 57,112, 32, 57, 16, 0, 35, - 50,162, 65,100, 66,131,180,227, 78,191,241, 83, 23,215,127,255, 43,231,160, 92, 2, 63, 93, 1,179, 3,234,165,238,169,149,225, -220,242, 48, 87, 20,230,207,252,229, 89,191, 49, 78,223,172,163, 46,128, 5, 4, 64, 5, 43,175,189,109,219,117,185, 66,111, 64, - 95,139,213,176, 73,148,237,118,251,234,124,180, 25, 45,158,182,166,222, 19,211, 85,104,235,178,211, 93, 58,206,184,202,121, 55, -197,254,117,111,179, 47,176,185,142, 79,149,247,250, 55, 27,246,156, 88,184,221,110, 31, 61,122,244,166,155,110,186,231,158,123, - 14, 30, 60,248,192, 6, 14, 30, 60, 56, 57, 57,121,105, 12,243,197, 66,197, 59, 92,160,192,117,208,239,175,159,173,125,230,159, -223, 22, 8, 15, 51, 1, 86, 80, 65, 5, 20, 84, 70, 32, 4, 68, 0, 69, 19, 82,243, 70,191,253,153,149,238,104,152, 67, 61,242, - 95,184,250, 25,200,128, 8, 84,215,251,121,158,217,157, 13,211,219, 40,117,199,218, 86, 0,134,116,136,165,154,130,130,181,119, -205, 78, 19,161, 92,195, 76,241, 71,143, 30,125, 90,138,217,191,127,255,236,236,108,179,217,244,169,203,103,157,159, 96,147, 43, -159, 53, 19,120,233,104,224,202,178,238,171,143, 21,174,164,254, 77,241,126,245, 29,175, 62, 13,195,183,210,230,235, 91,150,238, -211, 30,155, 1,245,232,209,163,207,233,248, 39, 79,158,188,202,246, 15, 60,240,192,137, 19, 39, 54,173,170,251,239,191,255,105, -195, 94,129, 2, 5,174,149,223,153,240,223,190,113,235, 79,191,125,103,150, 65, 18, 8, 18,168, 83,204, 37, 12,169,109, 93, 5, - 8, 12,251,149, 66, 16, 0,212,250,189,182, 52,202, 28, 6, 78, 0, 20, 65, 21, 20, 0, 20, 20, 64, 17,152, 6,195,252,108,146, - 68,119,109, 52, 64, 29,104, 14, 54, 1,170,163,138,138,236,104,198, 1, 83, 42,238, 89,155,119, 21, 31,214,123,181,222,119,126, -248,225,135,239,185,231,158,171, 91, 10, 87,202,207,107,161,179, 43, 21,232,115,186, 7,215,206,209,155,222,206,245,109,243,117, -228,119, 95,138,179,217,170,195,135, 15, 95,247,201, 59, 79,158, 60,121,244,232, 81,111,254,204,206,206, 30, 56,112,160,160,248, - 2, 5,158, 39,191, 55, 74,252,241,127, 50,187,127,119,125,148, 9, 68, 6, 9, 52, 23,147, 75, 88,226, 31,252,228,153,217,169, -232,232, 27,182, 39, 10,232, 37,124,158,203,234, 41,218,245, 26, 0,120,229, 13, 83,127,239,150, 45, 95,248,230, 10, 24, 3,138, - 64, 10, 10,224,191, 91, 18, 4,196,164, 53,184,101,219,152,104,180,187, 0,105, 87,211,137,141,233,199, 20, 20,240, 91,158,157, -222, 83,191,231,130,171,164, 67, 47, 99,189,103,157, 92,254, 5,194,179, 6,134, 43, 55,120,209,219,124, 21,114, 63,122,244,232, - 11, 52, 51,243,230,103,177,112,157,234, 56, 11, 20,248,187,200,239,119,237, 40,255,238,247,221,180,171, 18, 14, 5,177,204, 0, -160,153,196,162, 73, 8,239,249,232, 19,127,240,205,206,135,222,121, 3,122, 34,102, 4, 4, 48,164, 23,191, 14, 99, 39, 6,127, -236,189,247,188,235, 27,159,130, 36,135, 40, 4, 69, 0, 0, 1, 16, 0, 21,232, 15,239,190,253,134,239,123,211, 29,126, 99, 89, -254,166,106,142, 46, 3, 16, 80, 37,212,197,214, 32,187, 30, 95,177, 62,240,192, 3,155, 92,112,224,192,129,107, 97,156,231, 52, - 43,192, 75,164, 34,251,165,208,230, 75,201,253,216,177, 99, 47, 92,125,139, 47,210,247,231,218,191,127,127, 81, 72, 83,160,192, -115,227,119, 4,248,129,215, 78,253,210,123,246, 88, 11, 67, 67, 24,145,138,234,200, 85, 12, 62, 62,200,255,193,175, 60,241,228, -114, 2, 0,167, 86, 83, 64,213,177,126, 7,136,203,238,204,231, 76,251, 12, 54,247, 0,192, 59,239,222,115,236,135,222,242,193, - 95,249,147,225,122, 10,113, 4, 76,160, 10, 89, 14,195,209,183,191, 98,235,199,127,248,221,149, 56, 0, 0,200, 71,238, 27,159, -192, 48, 2,116,160,162,226,128,232, 47,158, 90,145,235,180, 76,235,137, 19, 39,188, 7,114,141,223, 67,190,160,220,244, 2,225, - 69,111,243,131, 15, 62,120, 41,185,191,208,149, 45,197,135, 78, 5, 10, 60, 43,158,177,126,230,208,235,102,126,249,187,246, 36, - 22,242,178,193, 18,171, 0, 12, 93, 37,230,223, 60,213,121,237,207, 63,234,201, 29, 0, 30, 93, 30, 1, 33,248, 53,152,152,192, - 24,176,253,252,115, 63,183,121,156, 31,124,219, 29, 95,252,200,119,127,240,239,191,106,239,100, 20,107, 94, 37,119,239, 45,211, -255,199,255,242,214,207,126,248,192,222,173, 13,191,141,253,210, 47,235,250, 25, 8, 34, 69, 4, 80,176, 14, 8, 79, 62,185,252, - 55,220, 23, 87, 86,182,188,212,206,123,229, 6, 47, 86,155,175, 36,247,205,218,205,191, 1,114, 47, 80,160,192,243,215,239,229, -144,126,234, 45,219,179, 68,160, 26, 96,136,154, 41, 39, 54,170,240, 79,127,118,233,199,254,199,249,252,146, 21,245, 30, 93, 28, -157,239,100,219,170,161, 83, 29,207, 5, 95, 42,203,185,207,218,207,255,188,121,253, 7,253, 54,175,222, 61,253,115, 63,240,198, -143,124,159, 93,106, 13,194,192,236,152,172, 92,122, 46,247,141,223,182, 95,251, 53,136,203, 0,128,196,234, 4,157,228, 73,250, -169, 63, 61,115,189, 46,242, 26, 45,218, 75,135,252,205,102,243,111, 76, 33,206,205,205,249,243, 94,125,134,203,167,253,235,139, -213,230, 23,157,220,175, 61, 41, 93,160, 64,161,223,255, 26,166, 43,166, 25,177, 21, 80,167, 58,116, 97,230, 48,194,131,191,113, -234,200,239,156,203,255,250,114,169,195, 76,126,225, 79,151, 3, 3,154, 56, 0, 69, 2,100,194,114,205,125,237,255,206, 79,252, -152, 14, 87, 55,183,140, 3,179,103,107,227,175,145,123, 62,114,127,246,127,218, 63,249, 48, 70, 33, 50, 35, 2, 4, 17,228, 54, - 32,248,189, 71,206,156, 91,238, 95, 47,114,223,228,247,171,115,193,165, 21,132, 87,126, 73,244,194, 97,243,188,254,163,214,107, - 23,239, 47, 98,155, 95, 92,114,191,244, 74,159,223,252,160, 5, 10,252,221,229,247,165, 94,126, 38,177,229, 50,151,115, 87,102, -232,145,188,241,191, 60,118,252,100,235,105, 55,254,229, 47,174,116,114,103,114, 7,185,128, 95,147,143, 17, 42, 53, 57,253,251, -217, 39,190,223, 61,250, 9,237,206, 95,182,139, 14, 86,228,244,137,236,183,126,192,254,197, 47, 65, 28, 3, 27, 64, 5, 68,164, - 0,147, 28, 88,255,183,255,250,165,235,114,121,190, 22,123,243,159, 87, 47,164, 59,126,252,248,165,235, 81, 60,191,249,226,159, - 7,142, 31, 63,190,169,187,159,105, 29, 12, 63,121,239, 75,167,205, 87,146,187, 47, 91,124, 78,113,247,200, 6, 54, 67,215,181, -124,134,230, 63,104,240, 63,251,181,162,138,215,184, 64,129,231,192,239,153,213, 55, 63,248,196,127,124,100,229,227,115,221, 35, - 39,230,111,251,200, 95,254,217, 83,207,168,166,219, 67,251,131, 31, 63, 27, 68,172,125,171,185, 0, 32, 32, 2, 34,148,235, 96, - 59,249,231,126, 42,251,196,251,179,223, 57,108, 63,247,211,246, 79,255,147,253,194,207,100,191,247,129,236,227,223,155,159, 56, -170,253, 51, 80,105, 0, 17,248, 58, 72, 33, 77, 49,136,233, 35, 15,253,197, 55,207,127,171,147, 71,250, 53,225, 30,121,228,145, - 77,202,123,214, 47, 60,225,146,121, 5,124,169,223, 85,212,244, 38, 61,125,235,247,160,221,110,111,166, 70,247,239,223,127,229, -236,193,151,206,239,248, 18,105,243,149,228,254, 92,151,183,157,157,157,189,127, 3,155,247,200,127,166,112,149,175, 82,253, 6, -155, 93,113,221,167, 85, 40, 80,224,111, 19,158,177,126,230, 92, 43,253,224,111,158,189,198,163,124,252,203,107, 63,191,183,250, -193, 55,108, 27,117, 51,172,135, 16, 17, 16, 2, 40, 4, 1, 6, 1,168,232,218, 87,237,242, 73, 0, 5, 0, 36, 3, 38,132, 74, -245, 18, 61, 15,144, 57,149, 82, 28,133,127,248,181, 11, 63,241,223,191,242,156,174,225, 26, 87,109, 61,124,248,240,179,114,193, -137, 19, 39, 14, 31, 62,236, 25,214,211,229,137, 19, 39,252,164, 49,151,186, 61,251,247,239,247,148,244,156, 20,235, 85,112,236, -216,177,205,137,124,253,202,212,155,235,154,250,181,170,155,205,230,220,220, 92,187,221,190, 82,161,191, 40,109,246,173,186,244, - 55, 87,153,190,120,115,168,113, 45,197,169,126, 98,184,185,185,185, 19, 39, 78, 92, 54,255,204,165,115, 44,251,160, 82, 84, 70, - 22, 40,240,124,248,253,185, 49, 44,192,143,124,242,220,150,122,240,254,187,166,146, 78, 6,181, 0, 99, 30, 87,196, 3, 0, 18, -132, 49, 62,211,158,162,144, 58,233,102,165,237, 91, 79,158, 89,121,223, 79,253, 81,118,253, 22,111,218, 36,130,171,175, 20,122, - 25,213, 2,192,253,247,223,239, 69,226,101,243, 80,190, 64,104,183,219, 7, 15, 30,124,248,225,135,125,170,192,107,219, 43, 55, -120,166,153,212, 94,148, 54, 95, 38,171,159,117,155,231,180, 82,182, 31,126, 93,253, 54, 93,175,224, 90,160,192,223, 45,127,230, -121, 32,119,250, 79, 63,122,250,167,255,104, 49, 14, 41,232,230,210,201, 33, 17,176, 0, 10, 8,120, 57, 0, 17, 16, 28, 64, 38, -218,181,216, 78, 75,205,137,223,252,218,202, 91,126,244,211,235,131,236,122, 53,233,196,137, 19,199,142, 29, 59,120,240,224, 61, -247,220,243,156,170, 44,142, 29, 59,118,207, 61,247, 92,125, 73,188,227,199,143, 95,223,143,239,253, 12,189,207, 52,219,240,179, - 94,194,139,210,230,235, 14,111,226, 95,253, 74,253,178,233,215, 50, 26, 43, 80,224,239, 56,240,186, 31,241,173,183, 53,126,245, -253,123,119, 55, 35,155,170, 53, 8, 49,163, 33,240,115,144,109,248, 41,224, 64,173, 64,226, 56,151, 32,192,174,131,127,249, 91, -243, 31,251,252,188,168,190,212, 58,104,211,214,216,100,225,118,187,253,156,164,232,115,133,247, 82, 54,167,116,247, 54,197, 75, -188,205, 47, 80,207,251,233,225, 46,101,255, 98, 9,167, 2, 5, 94, 76,126, 7,128,122,204,223,243,154,169,127,247,214, 29,123, - 38, 66, 80, 84, 85, 65,148,141, 83,145, 2,169, 34, 2, 32,172,140,220,207,127,118,233, 87,191,184,178,212,201,138,155, 81,160, - 64,129, 2, 47,117,126,247,136, 2,186,117, 75,252,221,223, 54,249,250,217,218,246,106, 48, 17, 81,200,152, 59,232,228,238,226, -192,126,229,252,224, 55,190,188,246,232,194,168,159,186,226, 54, 20, 40, 80,160,192,203,137,223, 47,133, 97, 52,132, 76, 32, 10, -214,233,101, 31, 73, 21, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, - 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64, -129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 94,210,192, 95,251, 79, 63,139,136, 10, 10, 0,196, 12, 0, 42, 14,156, 34, 17, - 18, 40, 16, 51, 33,249, 73,125,129,144, 56, 96, 85, 69, 96, 4, 61, 51,247,196,142,221,183,133, 70,156, 40, 17, 2,224,120,186, - 3, 68, 36, 12, 16, 68, 65, 65, 1, 8, 9,213,137, 10, 16, 19, 33, 18, 83, 16,176,168,130,128, 56, 0, 68, 17, 5, 64, 80,161, -144, 9, 8, 17, 1,128, 8, 0, 64, 65, 85,149, 0,137,200, 47,229, 65,196,164, 0,140,170,126,238, 50, 4,192, 63,254,227, 63, - 68,228, 59,110,191,157,131, 32,207,242,213,165,149, 71, 30,253,250, 91,247,223,247,138,217,157,189,110,207,230, 73, 20,242,176, -211, 10,234,211,146,182, 79,125,227,113, 83, 42,205, 76, 54, 75,149, 74, 20,213, 76, 16, 0,177,225, 0, 16, 17, 65, 69, 20, 80, -213, 17, 32, 16, 17, 50, 17,249,150,136,106,200, 70, 17, 1, 9,145, 16,192, 57,135, 8,132,172,170,128, 10,138, 64, 8,170,227, - 93,209,128,138,170, 32, 32, 16, 1,168, 10,154,128, 1, 65, 69,129, 16, 1,197, 58,100, 32,242,157, 47,227,213,175, 20, 1,148, -153, 0, 64, 68, 1, 65, 68, 12, 27, 17,241, 55, 67, 68, 16, 20, 56, 64, 0, 16, 17, 16,102, 3,128, 72,136,196,190, 91, 69,133, -201,119, 38,178, 9,178,100,216, 91, 62,195, 1, 2, 32, 34, 35, 2, 41, 8, 0,179, 65, 4, 68, 84,113, 20, 84,103,118,223,201, -153, 77, 71,157,184, 84, 62,127,254,169,143,254,198,111,221,126,211, 45,255,232, 61,111,183, 20, 0,200,185, 39, 30,255,210, 87, -190, 30, 69, 49, 51,155,176, 92,153,217,158,165, 25, 56,235, 40, 88, 56,253,167,147,245,106,127, 48, 58,249,245,111,158, 91, 90, - 94, 94,105,125,231,189,111,189,113,215,246, 44, 3,201, 71,128, 65,181,222,116,105, 47, 27, 14, 70,253,118, 62,232, 13,250, 93, - 50, 1, 33,213,227,176, 62, 57, 83,106,110,205,179, 97,169, 62,185,117,231,238,184, 62,211,235,246,178,164,189,248,248, 35,147, - 55,220, 82,111,110,201,211, 81,142, 1, 42,113, 96,108, 50, 4, 2,198, 64,156,123,234,236, 19, 54,205,235, 19,205, 60,233,238, -188,249,149,103, 31,253,115,142,167, 9,176,212,104,100,163, 78, 92,155, 82, 7,105,178, 94,170, 76,219, 60, 27, 13, 86, 84, 41, -207,242, 56, 10, 43,213,134, 42, 36,233,168,191,190, 58,189,101,199,212,150, 27, 91,139, 79,214,167,182,128, 41,247, 59,237, 97, -119, 49, 8,171, 38,174, 72,214,103,138, 52, 44, 25,162,128,176, 92,171,138, 98, 80, 42,167,105,154,245,123,105,127,173, 62,181, - 83,144,122,107, 23, 37, 89,189,241,206,123,151,151,230,215,151, 23,226,250, 36, 37,235,253,238,122, 20,150,219, 43,103, 51, 8, - 92,150,199, 1, 89,103, 47,182,214, 74, 97, 92, 42, 87, 75,113, 84, 42, 87, 37, 29,118,251,157,229,213,229, 90,125,154, 77, 88, -171, 55, 75, 81, 9, 8, 91,171, 23, 70,195, 81,169, 82, 37, 10,211, 81,223, 58,155,166,105,173, 20,246, 7, 73,154,167,132, 80, -137,203,173, 78,123,190,213,189,101,231, 13,185,211, 48, 14, 80,236,160,183, 94,105,108,137,163,184, 18, 5, 97, 64,231, 46,156, -153,158,217,179,103,239,206,187,239,186,145, 56, 84,231,128, 0, 65, 85, 68,129, 17, 25, 85,129, 72, 84, 81, 1, 8, 21, 16, 0, -196, 9,160,127,213, 16, 20, 84,133,152, 68,198,239, 34, 48,177, 56,107,237,210,202, 74,183, 55,152,221,189,171, 86,141, 71,105, -134,200, 34, 0,168,254,229, 21, 43, 0, 66,102, 99,133, 9, 79, 49, 8,168, 42,128, 42,142, 0, 20,157, 8,182, 59,163, 97,202, -149,198, 68,100,176,219, 94, 95, 90, 90, 88, 88, 90, 88,106,181, 91,157,206,210,234, 90,175, 63,108, 54,106,111,187,119,223, 91, - 95,115, 39, 3, 38, 22, 98, 34,206,243,245,229,149,211,243, 11, 75,235,189, 97,150, 85,226,232,214, 87,220,186,180,116, 49, 8, - 77,125, 98,226,179,127,246,149,225,250,122, 16,176,128,160,106, 41, 42, 49, 83, 64,236,223, 14, 98, 66,164,241,178, 64,136,153, -205, 73, 33, 10, 66,244,196,194,100,136, 50, 85, 98, 69, 7,169,181,224, 68, 17, 17,193,138,250, 21,138,156,170, 1, 0, 32, 1, - 5, 39,192, 8,170, 0, 72,136, 78,197, 40, 90,223,153, 42,130,224, 15, 11, 10,162,162,138,136,170, 10,170,160, 42,160,106, 85, -213,119,183, 40, 17,170,170, 83,145, 60, 87, 28,243, 36, 17, 89, 85, 84, 84,155,131,225,128, 13, 33,137,191, 87, 10,162, 0, 0, -170,234, 84, 13, 32, 16, 32, 5,170,150,144, 80, 53,181,150,223,247,206,251, 0, 0,136,136, 8,128, 84,101,124, 39,252,196,237, -128, 72,196,200, 68, 68,136,136, 36,162,136, 4, 32, 65, 20,187, 44, 31,229,174, 18,135,136, 8,160, 72,228,159, 8, 66, 4,103, -253,109,222,156,241, 23, 61,243,248, 69, 86, 9,124,204, 80, 5, 80,117,170,132, 12,160, 0,168, 34,200,138,254, 81, 0, 20, 21, - 2, 64, 0, 1, 85, 81, 64, 36,100, 98, 32, 30, 31, 93, 65, 84,149,144,171,149,232,137, 39, 79, 69, 81, 28, 71,113,169, 92, 99, - 86,205,221, 99, 79,204,221, 52,123, 83, 41, 10,179, 44, 87,117,198, 4,189,246,218,214,157,123,187,157,214, 43, 95,253,218,116, -212,182, 86,226,184,132, 48,110, 63, 19,161,162,162, 2, 34, 1, 9, 40, 51, 35,145,168, 16,177,170, 0,168,147, 28, 0, 16, 61, -227, 3,109,206,105,239,251, 12, 55, 46,118,131, 88,193, 7, 13, 66, 85, 5, 68, 31, 47, 1, 17,145, 64, 55, 58,200, 47,133, 66, -128, 68, 32,160,128,160, 74,100, 68, 28,136, 2,145, 63,220,198, 74, 85,168, 10, 2, 72, 68,104,124, 44, 65, 68, 26,119, 25, 34, -168,128, 2, 33,108, 68, 68,255,156, 64, 50, 26,217,108,157,145, 13,177, 95, 97, 11, 8, 8, 9,137, 1, 84, 85, 65,121,122,247, -157, 81, 24, 38,221,245, 40, 10,207,156, 57,245,235, 31,251,237, 93, 91,183,191,247, 31,190, 27,152, 84,164,181,188,252,231,143, - 60, 66, 28, 16,170,137,171,113,117,194,162, 81,155, 16, 7,253, 94,203, 37,173, 90,173,210,234,116,206,206, 47,173,247, 6, 86, -244,238, 87,221, 19,154,192, 57,196,160,100,216,128,138, 36,253,124,212,149,100, 96,243, 52,205, 70,164, 84,138,194,184, 84,226, - 40,140,202, 77, 19, 87,131,184,188,101,251, 30, 1,114,249, 8,197,153,210, 68,154, 75,169, 54, 81,153,152,177,121, 38, 2,214, - 14, 93, 58,234,247,122, 28,132,163,193, 96,148,164, 54,235,149,171,141, 81,123, 65, 52, 76, 83,225, 48, 76,211,174,179,185, 29, -117,131,168,130, 38, 72,134,189,106,185, 62,234,175, 85, 39,111, 8,131,168,209,168,247,147, 97, 58,236,130,104,169, 20,113, 80, - 17,117,149,106,189,213, 90,234,182,214, 56,136, 20,205,168,187,170,192, 2,129, 77,147,184, 62,157, 14, 90,206, 57,201, 19, 73, - 7, 65, 92,149, 60, 5,103,173,205, 41, 44, 5, 97, 20,150, 75, 0,184,182, 54, 63, 49,181, 51, 46, 87,134,189,181, 82,101,130, -216,164,131,158, 2,169, 16, 51,165, 89,110, 76, 16,132, 37, 1,100, 14, 74,149,186, 81, 71, 28,168,138, 49, 81, 80,106, 32,134, - 6,181,223,111, 35,234,176,191,110,130,160, 55, 24, 84,170, 13,155,166,195, 97, 15,213, 41,106,218,107,213,170, 85,231, 92, 57, -142, 50, 7, 97, 16,154,192,156,185,120,177, 81, 46,151,194,176, 63, 24,176, 9, 41, 8,243, 44, 47,151, 74,185,179,204,145,178, -185,184,220, 22,167,211,205, 32, 42,197,226, 28, 0,224,198, 19, 53,214, 25,254,209, 85, 20, 0, 5, 69, 66,245,143, 19, 17,160, -248, 7,218,115, 99, 16, 24,201,178,133,149,181,165,149,149,114,165,182,103,215,142, 48, 52,137,181,168,136,104,112, 44, 19, 16, - 0,148,188,222, 67,242,175, 4, 33,232,248, 13, 65, 85, 54,104,157,116,250, 89,187,151,115,216,152,156,108,228, 73,178,180, 56, -127,230,236,217,243, 11,243,243, 43,203, 11,171,171, 23, 22,151,197,201,235,191,253, 85,239,127,231,155, 94,115,199, 77,121,238, - 64, 48, 86, 29,173,183,230,230,206, 62,121, 97,241, 66,187,147,165,233, 77,123,118,236,220,179,253,212,249,165,246,218,170,137, -227, 47,127,237, 27,118, 56,156,168,149, 9,137, 80, 17, 41, 10,130,128, 13, 51,177, 33, 38, 50, 72, 10,162, 10, 68, 8, 8,108, -152,144,152,199,175,108, 16, 4,128, 10,170,206, 58, 81,101, 64, 68,100, 36, 11,234,223,108, 43, 46,100, 6, 5, 64, 34, 34, 32, - 96, 68, 5, 4, 66, 66, 84, 65,167,162,158, 8,136, 16, 81, 0, 16, 20, 17,212, 33, 49, 58,209,192,235, 60, 31, 44, 1,157,138, -136,128,122,137, 12, 10,170,136, 42, 96,216, 43, 72, 97, 50, 72, 8, 28, 48, 97,192, 6,137, 8, 16,145,156,232, 38,185,123, 70, - 17, 4, 20, 5, 0, 70,200, 69,197, 57,126,223,187,254, 39,212,113,200, 5, 80, 68, 64,175, 64, 17,152,145,136,144,144,153, 24, -128,189,192, 84,117, 42,128,164,162,113, 20,174,175,175, 55,106, 53,245,234, 85, 21, 68, 0,199,203,240,161,103,116, 4, 68,127, - 91,217,207,102, 70, 64,204, 4,136,160,160,128,170,128, 62,100,160,162, 1, 66, 98, 34, 5, 29,255,217,247, 15, 2, 35,161,215, -209,232,167, 23, 70, 85,113,155, 15,140, 72,173,222, 28, 14,215,207,158,159,159,153,158, 12,194, 40, 12,227,128,105,121,117,105, -165,221,190,101,118,150, 77,152,102,137, 97, 21,235,150, 47,206,183,214, 86,227, 82,165, 86,175,181,150,150,194, 40, 10,163, 24, - 20,208,160,205,114, 32, 70, 68, 80, 96, 66, 36, 82, 21, 81, 69, 0,242,193, 14, 17, 0, 85,213, 57, 71, 72,134,140,234, 95, 91, -193,196,175, 92,130,138, 0, 56, 30,189,160,128,167, 99, 54, 60,238, 17, 66, 0, 98, 3,226, 16, 4, 1, 16,198,225,205,223, 5, -242,157, 35, 78,156, 83, 66,102, 6,244,239, 36,136,117,234, 28,248, 67, 40,128,128, 63,170,170,250, 72, 2,170,136, 24, 4,129, -138, 40, 0, 17, 34,168,130, 34, 81, 50,236, 99, 62, 98,230,113,115,137, 16, 9,136,252, 46,106,221,150,155,239,174, 77,111, 77, -187,157,184, 84,106, 47, 47,252,234,127,251,127,166, 39,183,124,255, 63,254,158,168, 90,177,105,154,141,250, 95,251,234, 87,251, - 35, 65, 73,140,137,195,198, 54,113, 78,236,208, 4, 33, 71,141,108,212, 69, 55, 48, 97,184,178,210, 89,110,181, 58,189, 1, 51, -237,221,121, 3, 33,170, 83,151,245, 13, 89,100,182,195,110, 54,234, 57,235, 68, 1,208, 88,200, 9,164, 82,169, 84, 38,102, 40, -142, 37, 79,103,118,236,169,212, 39, 70,163, 65,150, 12,109,110, 43,149, 74,158,229, 46,205,179, 65, 91,213,165,105, 58, 28, 12, -109,150,138,112,181,214, 92, 95, 95, 25,101,121, 41, 10, 89, 53,174,214, 21,201, 58,167,249, 96,106,235,174,184,212, 40,215,182, - 84, 27,117,176,214, 2, 77, 52,106,224,146,110,167, 29,134, 37,151,117,178, 36,113,162,245,230, 13,154,117,234,141,153,250,228, -214,114,101,178,215,237,244, 58,173, 82,181,234,210, 30,135, 37,230, 48, 46,149, 64, 44,184,212, 10,113, 16, 77,109,221,102,109, -194, 38, 6,213,220,102,121, 50,140,203,141,124,212,203,179,145,130, 10, 26,114, 25,169,205, 83, 91,111, 78,170,115,134, 96,216, -239, 68,113,196,128, 10,129, 2,132, 6,195, 48,136,162, 50, 32,244, 59,171, 89, 50, 98,142,242,108,148,140,146, 36, 79, 66, 38, - 80, 65, 19,137,203, 42,213,102,183,211, 14,131,208,230,163,208, 68,195,225, 42, 19, 87,234, 91,157, 56, 0,104, 78,204, 12, 58, -171,195, 36,153,158,168, 59,224,167,150,230, 43, 97, 80,138, 75, 66,134,208,168,230, 44,163,114, 84,142, 75, 85,112,110,152,246, -215, 91,221,126, 47,159,222, 58, 83, 45, 71,206,137, 87,216,160,168, 99,110, 34, 0,135,196,176,241,246,146, 87, 88,170,170,138, - 4, 32, 66,204,113, 20,175,119,218,143,157,122,178, 92,174,222,120,195,182,122,173,230,156, 19, 81, 38,220,144, 32, 94, 23,145, - 31,176,250, 87,193,203, 23, 79, 29, 8,192,170,204,212, 29,142,150, 91, 35, 52,213,102,115, 75, 28, 6,107,203, 75,231,206, 62, -117,238,194,133,249,149,165,133,149,181,243, 23,151, 47,182,218,187,183,111,255,193, 3,239,124,243,190, 87,150, 74,129,115, 88, -162,208,246,251,231,207,158, 63,125,126,241,252,234,234,210,122,103,215, 84,179,210,168,174,180,187,103,231, 23, 83, 7, 23,230, - 23, 58,173,142, 1,136,195,208, 4, 33, 32,196, 65, 96, 56,100, 38, 66, 12, 67, 19, 48, 41,128, 19, 21, 81, 66, 54, 68,162,202, - 64,228, 25, 80, 20,145, 25, 48,119, 78, 65, 81, 1, 9, 68, 84, 65, 17,209,137, 42, 40, 35, 6, 76,138, 72,136, 28, 50, 18,140, - 5, 58,128, 1,204,124,199,142,165, 60, 24, 67,168, 32, 72,128,104, 16, 77,200,170,200, 32, 2,154,139, 3, 81, 1,112, 42, 34, -206, 83,171, 31,241, 19, 49, 17, 25, 98, 50, 20,112, 96, 69,141, 97, 67,100,152, 13,179, 42, 16, 42, 18,139, 8,129, 0, 49, 18, - 18,146, 10,228,206, 50,141, 3,182,170, 24, 54,204,204,239,123,199,219, 97, 60, 18,131,177,226, 6, 37, 19, 4,198,248,136,198, -134,193, 9,120, 37, 10, 4, 4,226,172,181, 14, 85,136,185,223,235,155,184,204, 8, 0,130,224,159, 27, 68,246,244, 1,140, 36, -170, 0,200,228,131,186, 23,178,140, 4, 27, 93,131, 72, 34, 0, 42, 74, 62, 96, 17, 16, 26, 68,149,141, 1,161, 23, 15, 0,180, - 33, 7, 20, 17,101, 99,180,227, 7, 1, 68,192,200, 91,183,109,123,242,137,199,243,204,150, 75,113, 92, 46, 9, 96,100,130, 71, - 31,123, 98,203,246,173, 19,213,146,181,226,108, 90, 42,149, 69,225,214, 59,247, 45,159, 63, 85,159,190, 65, 37, 3, 64, 14, 2, - 31,184,136,141,120, 59, 9, 17, 80, 65,188, 26,182, 72, 6, 25,199, 44,140, 74, 68, 76, 44, 27, 61,182,209,111,227, 39,218,143, -154,254,234, 15, 0, 72,196, 76,168, 64,204,108, 80,196,249,105,241,253,184, 4,199, 99, 69,221, 60,154,202,120, 81, 89,102, 67, -190,211, 12, 35, 0, 56,177,214,137,115, 27,177, 6,137,201, 71, 56,220,240,143,144,136, 0,114,103,137,152, 3,163, 10,158,208, -137, 77,210,235,160,228,136, 6,213, 1, 18,140, 3,230,248,133,172,205,236,153,190, 97,214,165, 35, 86, 73,250,173,143,254, 95, -191,210, 25, 6,141, 90,101,239,238, 27, 3, 68,100, 60,117,250,236,252,194, 60,177, 33,142,130,202,132, 41, 85, 76, 84, 42,215, - 38,156,160,230,233,104,208, 10, 88, 16, 97,109,173,213,234,244, 46,174,181,234,181,230,237,183,239, 19,117, 78, 53, 42,149, 53, - 25,216,100,228,172,213, 52,205,179, 20, 0, 6,163, 62,169, 76,214,155, 81, 41, 14,227, 42, 25, 14, 74,181,169,237,187,243,100, -221, 41, 6, 97, 20, 70, 85,116,169, 40,167,121, 46, 46, 43,149,106,113,173, 97,147,172,183,190,140, 0,234,178,213,165,179, 38, - 44, 87,234,211, 78, 68, 57,204,211,132, 77, 24,215,167,243, 65, 59,205,210, 81, 58, 92, 57,243,141,245,181,243,113, 84,179, 18, -228, 14, 1,145,195, 88, 53, 74, 6, 23,227,114,173, 54, 57,213,235,180,173,115,181,137,105,219, 91,238,244, 90, 86,141,164,131, -204,230,165, 90, 51, 25,116,203,113,212,152,220, 34,206,230,142,103,182,110,109,135,221,156,195, 0, 0, 32, 0, 73, 68, 65, 84, - 76, 52,146, 68,114,155, 57,155,102,105,194, 65, 69, 80, 7,221, 69,226,216, 57, 27, 85, 38,243,100,148, 14,215, 43,181,201, 60, -207, 59,171, 23,114,135, 96, 71, 1, 75,107,109, 9,213,142,146,129,136, 84,106,205,100,208, 3,149, 70,163,153, 99, 48, 28,116, - 13,155, 52, 29,245,250, 45, 22,113,105,127,199,182, 93,136,148,228,163, 60,207, 51,155, 84,171,205,193,104,128, 92, 98, 14, 76, - 16, 34, 82,146,101,129,230,235,157,149, 52,179, 97,104, 34, 70,235,116,173,215,223,218,108, 24,102, 0,137,226, 74,110,109,154, - 14,146,204, 13, 71,125, 43, 46,205,157,117, 48, 24,216,230,100, 57, 14, 3,231, 28,130,215, 25, 8, 2, 72,128,202, 48,142,248, -168,254,213, 27, 51, 52, 42, 40, 41,128,218, 51,103, 46,156,191,184,242,138, 91,111,218, 50, 53,229, 60,245,143,227,129, 31, 2, -226, 37,250,157, 0,189,139, 73, 0,160,214,191,170, 64,164, 78,117,173, 51,234, 12, 97,106,122, 71,173, 90, 73,211,222,133,243, -103,231,230, 78,157, 89, 88, 88,105,183, 47, 44, 46,207,175,172,146,194,254,239,216,247,207,191,235,109,219,166,235,163,204, 6, - 28, 5, 78,151, 23,206, 61,113,234,236,133,139, 43, 43,189,126,104,176, 92,105,128,100,213,137,122,185, 57,245,232,163, 79, 12, - 59,221,106, 96,162, 32, 48, 76,204,108,115, 9, 2,102,102, 68, 98,102, 34,227, 45, 40,113, 42,224,226,208, 56, 21, 43, 98,152, - 17,192, 57, 29,123, 54, 0, 86,196,233,248,229,205,157, 24, 68, 67,228, 64, 12,177, 97, 34,196, 52,119,158,169, 68,196, 58, 33, - 68, 4,117,170, 78, 53, 52,108, 69, 64, 33, 12,195, 49,161, 50, 25, 0, 81,151, 89, 69, 68, 66,112, 0, 78, 21, 68,157,130,147, - 92,192, 33,176, 85, 33, 0,246,236, 8, 24, 48, 5, 97, 96,136, 1,212, 95,144,215,216, 12,168, 48,214,142, 62,112, 50, 27,111, - 18, 8, 64, 96,140,122,233, 41, 26,135,134,131,192, 9,240,123,223,113,223,216, 92, 22, 65,130,141,155,164,134, 25,112, 44, 94, - 9,128,252,240, 74, 21, 8, 65,145, 9,189,178, 71, 80,107, 53,142, 3, 80,245,227, 33, 64,224,192,120, 5,138,222, 46, 71,218, - 20,244,222,121,242, 79, 18, 40, 48, 50,160, 23,181, 72,136,228,159, 54,111, 22,168,122, 67,130,152, 65,197,135,181, 13, 79, 70, -253, 14,222,230, 70, 5, 64,116,206,197,229,122,189, 94,254,198, 55,191, 81, 10,130,114,165, 86,169, 85,153,120,212,239, 45,174, -180,111,153,221,131, 72, 54,203,131, 48,136,194,112,216,105, 47, 46,204, 39,163, 81,158, 39, 8, 96, 8,152, 13,155,144, 77, 64, -128, 68,232, 31,111,221,112,150, 0,209,199, 48,167, 22,145, 84, 81, 68, 54, 28,152,191,162,112,220, 92,236, 27, 55,199,165,127, -165,169, 9, 73, 65, 92, 46,168,136,164, 10, 34, 86,253,181,251,211,121, 59, 30, 54,188, 79,239,174, 40, 32, 19, 3, 8, 56, 21, - 1,113, 34, 54, 23,113,196,134,216,248,213,176,136, 88, 21, 20,156,151,235,158,184,253,176,102,220, 70, 1, 21,151, 12,123, 6, -199,207, 49, 18, 27, 10, 17,141, 42,168,216,184, 62,179,253, 21,119,129, 2,137, 14,150,231, 63,246,177,227,167, 23,123,181, 74, -240,198,183,190,109,235,238,189,221, 78,239,236,169,199,158, 58,115,142, 20, 24,208,148,106, 65, 24, 7, 81, 37, 46,199, 42,249, -176,125,209,196,213, 78,235, 66,185, 18,165,163,100,105,101,109, 97,117,173,211,237,238,216,190,103,251,182,157,233,160, 31,134, -229, 16,193, 89,135,234,210, 65, 43, 75,211,209,176,215, 77,134, 12, 84, 45,149,227, 74,149, 76,152, 91, 75,200,113,185, 86,169, -213,243,204,137,179, 42,214,138,154, 32, 30,246,186,136, 80,105,212, 7, 73, 26,129, 29,117, 86,170,245, 45,128, 98, 51,187,184, -116, 33,233,174,148,171,117, 0, 81, 69, 33,204,135,189,168, 58,193, 65, 28, 6,209,176,215,141,234, 83,229,198,142,116,216,234, -183, 46, 84,106,147,229, 40,242,189,137,170,245,230,118,231, 50, 52,113,169,210,212,100, 61,201,109, 46,106, 45, 12,134,157, 45, -219,111,118,105,191,187,190,108, 93,206,224, 64,105,148,102, 81,104,106,245, 90,150,231,221,245,238,250,197,179,206, 41, 71, 97, - 88,170, 5, 38, 18, 65, 64,206,135, 93, 50, 6, 36, 67,132,184, 54,137, 20,172,175,183,152,184, 20,135,195, 52, 31,244, 59, 78, -185, 90,107,168,104,167,223, 67,100, 54, 36, 54, 3, 98,102, 42,197,241, 96,208,171, 53,102,144,204,182,173,219, 20, 33, 79,179, -204,201,112, 56, 66,144, 70,189, 97, 76, 56, 74, 6, 32, 46, 8,130,254,112, 96, 76, 96,202,141, 82,185, 26,134, 49,161, 76, 78, - 52, 3,198, 51, 75, 75,219, 38,167, 26,149,154,147, 60,179,208,172, 79,148,194,184,189,222,177,249, 8, 68, 85,165,215,237,166, - 9, 77,111,105, 6,129, 81,245, 47, 28,123,181,228,173, 61,245,146, 30, 1,145, 84, 69, 69, 67,195, 8,186,214, 90, 95, 88, 92, -142, 74,165,219,110,190, 41,142,163, 36, 77,199, 82,125, 60,220,100, 29, 15, 92,121, 28, 22, 54,172, 73,239, 37, 2, 41, 19,170, -213,222, 48, 91,235,102, 24, 84,167,183,108, 53, 42, 75,243,103,159,124,226,241,185,179,103,207, 95, 92,153,191,184,124,225,226, -106,111, 56,250,182, 59,110,249,167,255,224, 45,111,125,205,237,136,144, 91,140, 49,200, 58,235,231,159, 58,123,234,220,252, 66, -187, 51,204,242,157, 91, 38,103,103,247, 92, 28, 12,203, 1,141, 20, 31,127,236,113,116,110,178, 86, 54,204, 94,246, 24,166, 48, - 32,102, 70,111, 60, 51,251, 87,204,191, 28,132, 36,130, 68, 68, 8, 4,128,136,134, 9, 16,157, 83, 1, 53,204, 68, 64, 48, 30, - 80, 59,167,214,251,242, 4,162,154,229, 22, 17, 66, 99,156,138,127, 87,189,233,234, 37,178,248, 33, 56, 98,238,156, 33, 34, 38, -231,156, 3, 5,192,192, 24, 39, 98,197,121, 18,244, 1,144,201,243, 40, 8,248,180, 29, 1,104,192, 28, 4, 6, 20, 55, 50,149, - 28, 4, 20, 50, 17,170, 19, 0, 16, 5,197, 77,165,143,232, 0, 8,125, 56, 5,167,160,162,129, 33, 85, 33, 5, 36,230,127,244, -174,119,168,247,103,136,200, 4,155, 41,149,141,241, 62,123, 99,192,223, 46, 5,240,222,207, 6,173, 49, 7,220,239,173, 87,170, - 13, 80,245,140, 14, 10, 99,226,247,214, 47,249, 61, 85,252,144,109, 60,244, 3, 21,128,177, 5, 70,136, 4, 42,136, 27, 25, 24, - 68,244, 97, 47, 87,111, 85,123,189, 12, 62, 59,233,221, 28, 81, 64,244,118,183,110, 12, 3,157,181,147,147,211,237,214,234,242, -234, 90,173, 82, 46, 87,170,204, 20, 24,243,216,227,143, 85, 27,147, 55,238,216,154, 57, 7, 2, 81, 92,177, 89, 62,179,107, 54, -224, 44,119,102,106,122, 50,207,109, 16,132,132, 62, 70, 10,241,216,178, 66, 4, 34, 70,246,193, 10, 64,201, 41, 24, 68, 25,143, -120,132, 48, 32, 98, 80,241,254,137,239, 52,192,205,120,201, 62,206,249,102,142,169,159,128,188, 85,165, 58,142, 89, 10,200,132, - 0,226, 28,168, 2, 1,121,107,104,156, 45, 69, 0, 32, 38,102, 68, 0, 17,113,226,136, 24, 84,153, 13, 25,218, 48, 6,145,144, -125,148,245,105, 15, 68, 32, 68,239,243, 33, 34, 18,247,219,171,225,198,168,140, 40, 64, 38, 4,117,154,113, 84,219,118,203,171, -131, 48,178,105,230,214,150, 63,241,241,143,159, 94,234,139,164,111,126,227, 27, 95,255,166, 55,148,235,213,198,244,214,139, 75, -173,115,231,207, 90,129,106,115,154,163, 82, 84,169, 85,170,117, 4,155,142, 44,133,161,181,210,107,159,175,196,241,112,152, 44, -174,172, 46,174,182, 70,163,116,215,142, 27, 38,235, 21, 70, 52,140,234,114,176, 35,181, 46, 29, 14, 20,100,100,109, 16,196, 17, -101,108, 98, 54, 97, 20,132,104, 2, 11,184,235,230, 59, 65,243,206,234, 98, 80,174, 26,194,225,160, 99, 5,109, 54, 90, 91,248, -134, 40, 75,150,166,195, 97,111,125,129, 76, 56, 88,111,165,121, 54, 74,134, 72,152, 13,215,171, 91,118,187, 44, 69, 17, 99, 2, -210, 44,239, 47,133, 81,153, 3,195,204, 0, 24, 87,234, 89,210, 35, 50,189,238, 50, 82, 4, 8,121,210, 17, 53, 4, 82, 41,149, -243,108,148, 12,211, 44,207, 93, 62, 10,163,210,196,196,180, 9,226,209,168,175, 88, 14,194,106, 50,236,165,217, 40,138, 99,230, -192,144,102,253,245, 81,103, 69, 57,230, 48,172, 53,102, 80,173,203, 50, 69,142, 74,213,128,169, 90,155,112,214,149, 43,205,133, -167,254, 98,148, 90,235,136, 56, 8, 48, 15,163,138,136, 41,197,209, 68,173, 82, 41,151,147, 65,183, 62, 49, 57, 92, 95, 67, 98, - 39,106,179, 52,183,153, 9,202,229, 82, 57,177,121, 72, 48, 53, 61,221,106,173, 24,142, 65, 93,146,165, 54,203, 84,115, 68, 10, -194, 88, 92, 30, 6, 65,150,165,113, 24, 6,198, 48,106, 24,132, 83,141,250,182,169,201,213,110,114,126,249,226,100,204, 32,106, - 85,135,131, 30,100,189,173, 83,211,232,243,120, 28,177, 9, 49,136,114, 87,174, 86, 98, 99,198,111,178,110, 26, 40,227,247,147, -198, 73, 40,226, 40, 14, 7,253,193,169,185,115, 74,188,107,215,141,147,205, 9, 17,235,114, 7,160, 27,254,224,216,132,245, 98, - 98,156,101, 28,219,194,226, 77, 25,131, 38, 8, 76,146,229, 23,219,195, 84,131,122,115,178, 26,151, 6,157,181,167,158, 58,245, -196,169,185,133,165,139,139,173,181,133,229,181,139,107,237,102,163,254, 63,191,243,245,239,121,203,190, 70,181,146, 58, 12, 32, -160,204, 46,205, 95, 56,117,230,236,185,229,181,214,160, 95,171, 84, 69, 92,185, 86, 90,233,245,207, 47,172,174, 44,175,182, 86, -214, 2,128, 74, 28, 25, 34, 64, 96, 98,226,141, 60, 31, 18, 19,179, 23,107,234,243, 3, 62,235,228, 95,152,141,215, 6, 1, 0, -172,170, 55,153,144, 8,144, 17, 8, 64,145, 24, 81,153,144,137, 5, 4, 20,162, 40, 0,192, 92, 28, 51, 33,146,119,108, 4,192, -187,231,138,184,145, 35,220, 40, 6,217,176, 41,116, 60,224,166,141, 88,224,101,234, 56,123,103,144,198,255, 37,242, 14, 7,143, -115,116,158, 31, 52,117,146,139, 50,161, 32, 26, 66,227,229, 49, 34, 0,133, 99,234, 0, 98, 10, 9,137,216,137, 6, 65,200,196, -162,150,223,251,142,183,143,125, 50, 4,220, 48,206, 65,198,170,148, 55, 92,229,177, 57,226, 51,162,155,166, 4, 42, 34, 15, 7, - 61, 54,113,104, 0, 1, 68, 20, 69,124,171, 5, 4, 54, 92, 94,208, 49, 83,163, 2, 33, 91,117,228, 19,249,164,170, 2, 4, 98, -197, 87,134, 16, 17,141,203, 80, 16, 60,243,171,194,152, 98, 69,193,249,203, 86, 4, 2, 26, 27,220,227,102,131, 19, 33,196,137, -137,198, 19,167, 79,161, 72,169, 82, 46,151,171, 76,152, 13, 71, 95,125,236,177, 87,222,118,107, 28, 71,105, 50, 10,194, 32, 10, - 3,103,211,106,163, 1,214,166,201,160,223, 27,148, 75, 21,175, 54,140, 49,162, 0,170, 76,140, 72,161, 9, 68,156, 56,241, 73, - 41, 20, 21, 34, 0,144,113, 66, 66, 1,193,223, 16,177, 66, 76,190,215, 21,198,105, 21, 34,162,192,120,175,105, 51,245,170, 0, -136,204, 76, 50, 30,201, 16,128,138,138,175,101,241,105, 47,241, 67, 92, 39, 62,241,139, 8,227, 82, 33, 34, 95,238, 98,130,192, -191, 98,226,159, 34, 34,255,110,138,147,205, 78,247,133, 73, 68,172, 0, 78, 32, 31,245,194,136, 1,124,130, 6,144,200,103,211, -182,222,116,119,185, 57, 9, 78,121,208, 61,241,251,191,249,165,111,158, 31,141,122,187,183,207,188,251, 29,239, 82, 21,113,182, -189,178,182,190,222,109,181, 90,253, 4, 71,195, 94,169, 82,155,152,154, 98,195,171,243,231,195, 74, 13,208,228,217, 48, 29,172, -150,163,184,221,107, 47,175,182,151,219,107,105, 46,175,188,245,206,201,122, 29,216, 16,128, 56,103,140,201,134, 61, 39,214, 58, - 59, 24,142,226, 32, 36, 67,128, 32, 78,234, 19,147,200, 84,159,218,182,231,182,187, 71,217, 72,213,152, 40, 90,159, 63,213,239, -172,148,203, 19, 6, 50, 75,241,212,204,158,193,250,121,144, 60,119,138, 20, 50,201, 83, 79, 61, 90, 46, 55, 57,136, 59,107,139, -245,122, 3,145,109,154, 40,134, 89,158,244, 86,207, 83,121, 26,212,181, 46,206,169,106, 24,149,227,250, 84,185, 82,203, 83,171, -224, 68,209, 57, 33,198, 52, 25,170, 27,218,204, 82, 80,234,117, 91,204,198, 89, 48, 65, 60,236, 46, 83, 80,206, 70,189,238,250, - 50, 32,131, 9,202,229,114, 58,236,215, 38,166,152,163, 81,210, 47,215,183,132, 97, 57, 10, 40, 27,118, 22,231,159,234,247, 59, -131,126,127,189,211,238, 15,186,173,245,214, 90,123,117,109,117,117,117,125,173,223,107,239,217,123, 83,167,219, 94,239,180, 29, - 25,118,233,206, 93, 55,132, 38, 72,178, 52, 10, 34, 5,169,213,103,234,181,106,183, 61,223,104,238,184,253,214, 91,115,197, 86, -167, 19,134,229,192, 48,146,233,172,175,245,187,107,166,220, 8, 56, 32,208,220, 89, 85,137,152, 12, 7,131,126,143, 66, 3,128, - 73,150,161,205,183, 76, 78,139,234, 68,173,218,234, 14, 46,172,172, 6,154, 76,212, 27, 1,135,163,209, 48,142, 99, 67, 88,174, -212,146,209, 16, 9, 37, 79,147,100,100,169, 50, 81, 11, 66, 67, 99, 5,129,227, 97,191, 31,119,170, 2, 6,204, 68, 43,203, 11, -115,103, 23,118,239,218,185,109,219, 12, 33,230,121,166,168,227,119,115,108, 70, 42,160, 79,164,162, 42,160, 23, 12, 62,121,230, -147,109, 4,136,176,188,218, 89,237,228,229,218,228, 68,125, 66,108,186,178,120,225,201,211,115,167,206,156, 91, 88, 89,185,184, -214, 90, 92, 94, 27, 37,217,189,223,126,199,191,252,158,119,220,186,119,123,150, 41, 83, 92,162, 96,125,249,226,169, 83,167,207, -158, 95, 90,234,116, 6, 73, 26, 71,225,174, 29, 51, 22, 41, 85, 60,245,212, 57,155,164, 33, 97, 41, 52,177, 9,140, 33,255,170, -177, 33, 34,244,165, 7, 94,149,203,248,165,241, 47, 29, 25, 4,241, 41, 99, 21, 99,140,170, 58,245,217, 44, 36, 34,235,116, 60, - 8,119, 34, 78, 75, 33,123, 27,202,140,223, 92, 35, 78, 0, 32, 10, 67, 4, 82, 85, 98, 6, 29,235, 95,148,241,171,109,136, 16, - 73, 85,125, 73,132,117,170,162,232, 85, 34,128,241,246,213,216,216,240,132,143,155, 25,111, 20, 12,140,241,233, 73,102, 12, 3, -178, 0, 78,148, 17,152, 88, 1,152,137, 17, 51, 25,215,196, 24,194, 92, 84, 0,141, 79, 16, 3, 34, 97, 41,142, 17,129, 24, 1, -217, 40,168, 90, 65, 70,100,159, 35, 5,175,139, 65, 21, 5,212, 39,161, 85, 84, 20,152,156,117,160, 10,134,137,216, 87, 58, 25, - 67,149, 74,185,213,238,236,216, 58, 1,226, 72, 17, 13,171,168, 83, 65,102,242,162, 21,137,152,196, 87, 23, 2,138, 82, 96,200, -115, 50, 1,138,168, 56, 81, 7,160, 0, 10,194, 10,228,189, 17, 31, 3, 29,160, 2, 56, 7,136,226,252,120, 5,212, 87,149,120, -123,126, 99,104,137,128, 42,185,205, 39,167,102,110,222,125,227, 19,167,206,148, 75,149,114,181, 82,170,148,119,239,218,181,176, -188,252,135, 95,248,226,187,246,191,137, 48, 76,147, 52,142,204,160,215,229,104,155,106, 54,191,212,218,115,227,206, 81,191,109, -194, 40,144, 88, 5, 56, 96, 36, 70, 36, 14, 2,155, 39,128,100,140,209, 13,179, 8, 73, 85, 24, 64, 0,192, 1, 24, 0, 4,114, - 86, 16,209, 90,139,160,136,198, 71, 47, 64, 16,177,224, 54, 66,248, 88,233,176,170, 3,117,146, 43, 50, 1,128,162,218,220, 49, -161, 50, 18,144,138, 32, 19,121, 89,197,168,170, 2,162,130,204,134,124,218, 85, 33, 12, 98, 0,116,206, 34,192,120,144,135, 64, -108, 84,156, 47,114, 21,245,202,138,140, 33,167,121,104,226, 36, 77,136,116,156, 47,242,226, 69, 85, 68,166,246,190,170, 54,179, -197, 37, 35, 6,250,147, 79,127,242, 51, 95,252, 26,154, 74, 37,192,119,191,237,109, 28, 16, 0,164,131, 65,123,113,105,121,117, -213, 58,105, 78,212, 3, 99,250,195, 76,151,151,227, 40, 10,194,208,165, 67, 21,151, 36, 35, 67,104, 85,134,195, 52, 77, 50,151, - 75, 64, 92,173,213,115, 52, 97, 64, 46,233,170,205,114, 17, 16,117, 89,218,233,172,229, 22, 13, 97,150, 43, 19,213, 27,229, 82, - 24,244,115,152,222,177, 55,203, 70,171, 75, 75,185,181, 21, 1, 46,213, 3, 80,102,189,112,230,137,176,188,181,179,122, 65, 52, - 80, 37, 16, 84,107,101,212,179, 78,195, 40, 38,130, 61,179,175, 76,134, 29, 53, 53,177, 57, 42,144, 9,202,205, 61,131,238, 26, -136,204,220,112,123,150, 14,196,229, 4,194, 81, 20, 85,202,104, 56, 79,179,176, 84, 14,163,210,112,216, 83, 83, 53,145,233,183, -151, 4,177, 55, 26,245,123,109, 92, 15,109,238,166, 38, 93,171,189,212, 25, 12,169,221,142,162,120,117,101, 41,119, 58,119,254, - 76, 24, 86,172,205,134,201,233, 44, 29, 5, 65, 96, 51, 43,146,198, 97,200, 36,104,130,233, 45,183,246, 86, 23,195,218, 84,185, -190,173, 74,162,136,203,107,173,133,165,101, 80,176,110, 56,236,181,206,174,174,130, 64, 16,151,179,108, 85,108, 70,176,140, 76, - 40,216, 91,190, 56,191,188,216,235,247, 20, 49, 73,211, 71, 31,255,203,137,137, 9,103, 53,168, 52, 7,131, 65, 38,169, 2, 88, -235,130, 32,156,156,106, 90,151, 3,104,128, 68, 76,150,141, 97, 28, 14,219,130,193,104, 56,184,107,239,141, 23,218,221,133,149, -139,184,178, 72,166,220,172, 87, 76, 96,122,105,146,103, 3, 38, 96,151,151,226, 70,158,167,195, 65,114,118, 65,103,119,196,165, - 82,121, 60, 50, 29,103,112,144,216,136,184,181,213,214,218, 90,171, 86,107,220,253,234, 59,136, 48,205,173,231,160,113,225, 7, - 5,170, 14,145, 4,156, 47,207,213, 13, 91, 81, 21,144, 20, 84,189, 27,217, 31,166,107,157, 52,140,107,211,219, 26,140,174,211, - 90, 58,191,112,225,220,133,133,229,181, 86,171,219, 93,110,119, 6,195,100,231,214,233,247,237,191,247,238,219,103,115,177,195, -158,148,130, 56,237,245,158, 90,152, 63,179,112,113,173, 59,112,226,166,167, 26, 55,223,188,247,244,217, 69, 96, 46, 85,226,211, -103,230,201, 74,189, 20,129, 8, 18, 41,162, 83,165,241, 40,130,137,192, 0, 16,162,211,113, 70,148,137,157, 8, 33,168, 74,174, -132,160,140,232,124, 25, 40,184,136,140, 29,151,178, 64,192,228,172, 16,162, 34, 24, 3, 35,107,197, 10, 51, 91, 39,234,237, 29, - 38, 43, 98,173,245,217, 50, 85, 37, 99,172,179,222,107, 6, 85,102, 82, 69,102, 20,241,166,133, 26,166,220,186, 60,115,202,192, -100,236,184,220, 5,153,145, 17, 28,128, 56, 69, 37, 81,107, 76, 8, 52,166, 50, 38, 64,194,212, 42,168, 16,129,183, 13, 12,162, - 83,205, 84, 2,230,205, 50, 14, 67,132,128, 42,154,137, 26, 34, 2, 80,113,140, 68,134, 93,154, 27, 80, 80, 18, 4, 22,103,125, - 38,194, 41,160,103, 88, 68,167,130,130,196,140, 76,190, 12,214, 23,184,122,141,141, 68, 34, 80,171, 77, 92, 92, 62,157,231,181, -144, 80,212,169,207, 28, 26, 38,149,113, 9, 18, 2,146, 33,103, 61,209, 9,100,224,216, 32, 43,146, 56, 21,231, 64,209,123, 8, -138, 10, 34,162,190,114,156,198,174, 3,130,170,146,250, 33, 4,137,115, 62,230,249, 66,130,113,194, 90, 69, 21, 56, 96, 64, 99, -157,222,249,234,187,207, 95,152, 95, 88, 89,154,218,178,101,122,102,102,106,203,204,205,187,119, 63,246,212,153,179,231,110,221, -185,101,107,127,212, 67,212,122,109, 98,208,105, 35, 81,181, 90,217,186,107,247, 83, 95,127, 36,207,147,220,166,213, 90, 96,130, -128,137, 1,213, 89, 11,104, 16, 65,197,137, 8, 33,138, 2, 43, 35,130,241,163, 51, 34,240, 67, 50, 28,103,160, 9,141, 31, 39, - 58, 95, 45,235, 61, 19,239, 75, 33,170,170,130, 69, 16, 64,163,164,126,112,162,226,179, 29, 64,232, 75, 89,216,103, 61,152, 65, -156,243, 9,115, 28,199, 74, 69,255, 9,130,136,130, 18,147, 79, 18,248,196, 4, 0,176, 65,151,171, 83,161,113, 32, 1,171, 57, - 3, 33,163,117, 74, 27,114, 65, 21,145,212,229,131,233,217,123,106, 51, 59, 92,158,178, 49,127,246, 7,191,253,187,127,242,117, - 19, 79, 72,214,125,239,187,222,177,109,231,174, 52,207, 2,209,214,202,202,252,217, 83, 43,171, 45,224, 82,109,106, 6,178,129, -129, 32, 29, 37,221,245,174,184, 60, 46,213,154,211, 77,237,182, 74,113,100,109, 38,206,101, 54, 77, 93, 94, 42, 85,235,229, 10, - 75, 82,170,110,145,128, 51,238,117, 58, 29, 10,227,220,229, 10,204, 1, 13,147,196,170,196,198, 89,173, 15, 70, 3,199,229, 82, -109, 34,203,134,224, 18, 84, 84,117,206, 57, 19,212,231, 47,156,201,168, 49, 53,177, 5, 70,171,106, 2, 43, 32,106, 21,113,126, -121,129, 77,108,109,154,231, 41, 84,234,195, 84, 34, 22,151,103,131,225,186,100,105,192,108, 69, 68,212,103,115,122,157, 86,226, -242,198,196,204,104, 48,232,118, 86, 21, 89, 1,196, 90, 1, 80,133,100,212, 37, 48,213,198,132,203,179, 94,175, 23,133,129,137, - 42, 75, 11,103,178,209,122,115,219, 45,229,200,220,176,125,103, 54,234,153,184,220, 27, 38,245,106, 61, 10,203,189,206, 90, 92, -170,142,186,139,149,153,189,165,128, 85, 52, 52,148,231,125, 50,113, 9,183,212,154, 91,201,132, 65, 16, 24, 54,233, 96,117,219, -204,119,116, 86, 22, 6,131,182, 76, 54,195, 82,221, 74, 14, 46, 79,135, 61, 32, 50, 65,144,167, 46, 87, 23, 33,143,178,180, 82, -174, 37,233, 96,219,150, 27, 90,181, 70,150,165, 26,106, 24, 69, 1,241, 32, 97, 67,148,185, 94,187,219, 73, 50,231,242,132,162, -184,187,218, 66, 65,231, 50, 50,193,133, 85, 37,164, 44, 79,213, 89, 19,198,140,124,186, 53,216, 53,201, 2, 21,177,105, 92, 42, - 37,253,110, 35,174,138, 75, 71,157,213,230,142,221,195, 81,175,213, 94, 67,217,246,138,155, 74,140,234,198,190, 49, 50,113,127, -208,153, 59,191, 88, 46,197, 55,207,238, 49, 97,148,187,204,229,138, 14,253,248,123,236,212,131,140,125, 6,241, 58, 75,198, 57, - 54,167,222, 67, 36, 34,107,243,139,173, 65, 38,220,152,218, 22, 71, 81,210, 95, 95, 92, 94,124,234,204,217,179, 11,139,237, 94, -175,213,233,118,122,189, 82, 92,126,231, 27, 94,251,206, 55,237,171,150,195, 81,226, 2, 53,145, 38,171,243,231,207,157, 91, 92, - 90,239, 14, 70,137, 32,108,105, 84,102, 95,121,235,133,197,229,199,207, 94, 40, 7,184,182,222,139,201, 84, 75, 33, 42,134, 65, -224,198,222, 0, 16,142, 5, 59, 40, 56,149,141,178, 58, 5, 6, 95,255, 38, 10,226, 36, 12,200, 41,138,117, 34, 68,164, 72,156, -139,168, 42, 51,123,211,213, 48, 17,177,117,121,234,124,165, 10,102,214, 5, 76, 1,147, 83, 80, 85, 38, 22,117, 42,192, 72, 10, - 10, 32,226, 52, 52,236, 68,112,108, 61,131,127,246,136,208, 1,128, 8, 51, 25, 0, 98, 84, 1, 2, 96, 36, 32, 20,159,158,246, - 66,158,129, 48, 96, 4, 69,100, 66, 1, 85, 37,113, 62, 31, 71,138,224, 69,165, 56, 65,194, 72, 89,124,157,147, 2, 51, 90, 39, - 2, 42, 0,145, 65, 5, 18, 21, 98, 54, 68,128,148,169,122, 39, 7, 80, 65,156, 2,169, 19, 1, 4, 52,140, 66,214, 90, 66,212, -208,215, 74, 17, 19,138, 8,140, 77, 9, 95,252,135,170,121, 16,150, 38, 43,165,245,110,111, 75,179,225,131,156, 34,130,128, 16, -160,108,184, 21, 46, 87, 81, 68, 84, 64, 81, 85,181, 10, 64,164, 99,205,192, 8, 2,170,138,130, 52,254,244, 64, 1, 4,137, 65, - 81,172, 35, 38,246,151, 74,164, 54, 21, 37, 7,186, 81,227,130,160,110,236,114, 32, 19,170,179,121,169, 90,187,235,219,238,250, -227, 63,249,194,242,210, 98,181, 86, 15,162,248,134,237, 59, 86, 90,107, 95,254,234,215,182,239,127, 75, 28,151,179,124, 24,215, -106,177,228, 23, 47, 14, 67, 99,150, 22, 22, 43, 19, 19,235,173,118, 24,123, 19,204,224,216,222, 64,207,192,170, 42,121, 38,200, -204, 70,196, 17, 49, 81,232, 63, 43,218,240,179, 16, 0, 12, 27,111, 21,233,216, 95,115,234, 11,131, 2,190, 36,105,140, 8,140, - 8, 34,234,247, 38,102, 36,244, 55, 15, 68,199,229,236,168, 32, 32,190,150,212,215,216,128,142, 75,109, 68,113, 92,180, 48,182, - 63, 85, 85, 69,137,213,151, 69, 48, 7,164, 98,157, 35, 38, 14, 24,133, 16, 89, 37, 71, 96, 36, 22,201,136, 66, 21, 23,213,118, -212,182,236, 68, 4,230,224,212,151,190,240, 59,159,250,255,106,181,173,157,214,185,183,190,238,222, 91,111,125, 69,150,165, 28, - 5,157,149,133,238,106,123,121,117,197, 90,104, 76,149,226,184,100, 9,195,176,108,162,164, 1,178,222,110,159, 63, 63,119,113, - 37,170, 82,178,109,186, 62, 72,135, 73,154, 39,105,110, 51, 91,159, 40,199, 1, 4,165,173,170,132,146, 35, 50,228,105,150,118, - 45, 4,169,115,226, 50, 75, 84,173,148,137, 57,181,118,152,185,153,157, 59, 42,149,242, 96,208, 67, 66, 21,181,121, 42, 38,130, - 60, 3,200,107,245,109,105,154, 14,214, 22,201,148,157, 64,192,156, 13,215, 19, 9, 87, 90, 75,235,221,238, 40,203, 51,155,169, -205, 40, 44, 27, 19,174,183, 22,163,184,142, 6,140,137,145, 41, 57,115,222, 4, 17,163, 68,198,116,187, 29,181, 26,134, 81,185, - 82,115,226,162,106, 9,200, 25, 14, 20,110,112,214,109,223,182,221,102,195, 76, 48, 27,246, 65, 29,153, 64,192, 86,170,211,131, -238,106, 92,138,182,110,217,181,182,114,126,170,222, 84, 67,206, 13,107, 19, 19, 1, 2, 75, 53,144, 60, 25, 14,162,114,205, 84, -170, 49,213, 37,235, 7, 51,187, 7,253, 85,102,142,202,187, 64, 29,112, 41,203,134, 81,173,225, 72, 13, 7, 73,175,213,168, 79, -165,214,154, 32,170, 54,102,192, 37, 75,231, 30,157,154,222,147, 59, 11,163, 65, 20,149,203, 1,198,129,169,150, 75,221,254, 80, - 65, 93,218,199,184, 81,203,157, 77,250, 65,174,219,118,108, 71, 19,217, 44, 85,113, 64, 84, 41,213,109,158, 17, 3,128,201,211, -190,179, 57, 6,165,222, 96, 80, 14,227, 85,130,149, 94,210,152,112,208, 31, 0, 64,158,230, 61, 24, 13,147,164,222,152,110,175, -181,106,147,145,203, 7,167,207,205, 15,134,201,171,110,105,198,149, 10, 10,137,216,179,243, 23,218,189,225,238, 27,119, 77, 55, - 39,178, 44,115, 89,134,136,138,168, 62, 25,132,254,193,219,168,114,240, 41,214,113,246, 94, 64, 21, 81,128, 80,156,180,186,195, -206,208,197,229,137,153, 90,197,142, 70, 75,231,206,205, 47,204,159,159,191,184,212,106,181,187,221, 86,175,151,165,246,206,155, -103,223,251,142,239,188,249,198,109,163,204,166, 73, 94, 22, 28,244, 86,207,159, 95, 56,187,176,214, 29,140,172,186,173, 83,141, -198,150,173, 23,206,158,251,236, 23, 78,150,131, 32,207,178, 52,135,233,114, 89, 84, 16, 9, 9,212,123,153, 34, 56,118, 55,208, -169, 58,231,216,144,115, 18, 18,163, 33,171,194, 42,128, 24, 18,229, 0,110, 92,157, 1,129, 33,231, 68,172, 53,134,189, 74, 52, - 72,128,224, 92,158,185,156, 96, 35, 87,139, 24,109,102,138,201,128, 42,128, 18,250, 79, 48,189, 55, 5,113, 76, 10, 34,153, 50, -128, 34,230, 78,152, 8, 72,179, 60, 67, 50,198,127, 59,164,222,178, 85, 1, 82,151, 19, 27, 5, 13,144, 19,231,194,200,168, 83, -245,197, 60,136, 2, 40,226, 24,124,217,166, 26, 36, 50,152, 89,117, 78,195,144, 69,209, 58,103,173, 35, 0, 38, 18,135, 0, 24, - 24,114, 78,243,220, 5, 1, 48,155,192,248, 50, 80,112, 98,141,138, 67, 36, 81, 71,134, 68, 4,145, 16, 72,172, 48,131, 49, 36, - 42, 2, 32,160,164,226, 54,138, 66,112,252, 25,212, 56,155,154,229, 73,109,114,106,101,101,109, 28,207,189,208,222,240,154, 17, - 81, 9,212,249, 76,186,108,116, 21,170, 47,209, 3,207, 77,130, 48,246, 42,128, 54, 62,246, 25, 39, 97,217,187,211,214, 9,179, - 81,151, 19,178, 83, 63,142,193, 49,217, 33,248, 17,205, 56, 5, 12,154, 12, 71,123,102,111, 57,125,250,244,133,197,165, 70,163, -185,101,199,142,234, 68,109,239,141,187,190,252,245,199,159, 58,191,244,138, 91,246,228,121,146,140,134,113,185,182, 99, 87, 20, - 24, 57,245,248,233, 93,123,247,152, 32, 41, 85,234, 68, 1,128, 32, 69,224,220,248, 35, 47, 68, 38, 35,148, 89,107,137, 25, 20, - 69, 69, 92,230, 83, 57,170,162,190, 40, 17,141,194, 56,167, 36,170, 68,232,172,168, 2, 35,128, 19, 96, 2, 85,223,131, 72,236, -172, 85, 81, 52, 6, 8, 21, 68,133,137, 89, 20, 20,128, 9, 85, 85, 4, 8,193, 16,142,211, 84, 32,224,227, 8,121,151, 19, 67, - 34,231, 3,207,255, 79,213,155,253, 74,214,165,103, 94,239,176,214,218, 83,236,136, 56,113,134,204, 60,249,205, 67,125,245, 85, -149,171,108,183,171, 61,202,237,169,236,114,149,237,178,171, 12,182,154, 73,160,166,251,134,255, 4, 80,171,155, 65, 72, 8, 9, -209,146,133, 68, 35,220, 72, 92,210, 32,104, 48, 32, 89,242, 88,245, 77, 57,103,158, 49, 78,204,177,199,181,222,151,139,181, 35, - 11, 50,165, 84, 94,100, 70,158, 19,185, 99, 13,207,251, 60,191, 7,148,137, 21, 85, 69,137,152, 73,189, 6, 47,113,233, 7, 20, - 84, 85,239,125,232, 58,107, 48,222,231, 84,213, 36,217,233,187, 95, 37, 4, 74,204,139, 79,255,230,159,253, 55,127,162,110,180, -188,123,241,213,143,222,255,185,159,255,217, 46,120, 96,244, 93,104,218,254,102,177,171,193, 38, 9,151,179,135, 64,224,210, 98, -183, 94, 24,195,100, 56, 79,243, 15,190,244,177,181,233,242,213, 95, 3,105,219,132,237,182,170,186, 62,248,112,118,118,127, 58, - 59,111,154,125, 0,169,235,202, 11,144,113,237,186,107,219, 29, 25,139,100,186,206,247, 94, 70, 46,181, 0,187,166,121,119,114, - 4,168,155,249, 85,223,122, 87, 76,172,115,208, 87,189, 49, 73, 90, 74,168,193,140,178,241,189,213,221,173, 73,210, 34, 47,119, - 55, 23,139,229,221,174,237,117, 95,251,118,211, 7, 63, 61,126,216,245,126, 52,153, 30, 1, 88, 3, 89, 62, 65,114,128,222,158, -165,121,146,167,105,102,152, 84,186,229,106,147, 39, 6, 80,136,178,209,228,220, 88, 84,223, 72,144,106, 95,161,111,179,188,196, -182, 41,102, 39, 8,208,213,123,147, 30, 17, 33,205,206,170,218,135,230, 57,187, 4,129,250,174, 77,138, 50,207,143,154,102, 75, - 46, 51, 46, 81, 47, 73, 90,132,182, 49,142, 66,223, 58,151,245,198, 73,232, 52,116,171,187,235, 98,122,146, 22, 71,190,107, 12, - 83, 93,175,211,209, 24, 73,178,209, 36, 47,198, 62, 8,132,108,118,254,177, 53,148, 1,251,242,120,185,184, 42,138,113, 39,125, - 49, 30,239,154, 94,136,243,108,212, 84, 43,144, 22, 56, 17,224, 81, 98,171,190, 13,125,207,214, 54, 77, 5, 96, 64,252,126,183, -152, 28,157,250,224, 67, 8,142,123,223,238,217,218,137,213,206,211, 23, 47, 94,125,244,240, 62, 42, 74, 16, 84,153,142, 71,105, - 49, 42, 39, 51,101,102, 55, 6,128,203,249, 46,207,138,119, 30,146,248,230,114,190, 24,149,147,175,125,249, 13, 67,212,212, 13, -128,196,241,215, 96,116, 68, 5,140,118,222,131, 27, 66, 5, 84, 80, 15,167, 25, 16, 36,106,218,126,185,235,132,178,211,211, 41, -128,236,215,183, 23, 47, 47,158,189,120,113,113, 59, 95,172,215,183,203,245,102, 87,189,255,198,249,183,255,222, 55,127,234,227, -119, 44,187,253,182,117, 72, 88,181, 47,175,174, 94, 93,221,222, 44,183,117,215,191,243,214,131,147,251, 39, 79,158,190, 68,210, -227,123, 39,207,254,246,209, 46,108,167,206,154,193,225, 67,162,241,164, 27, 53,211,232,234,132, 32,130,128,214,112, 28, 4,196, -207,138, 1,138,150,142,160, 26,143, 80, 68,136,214,136, 23,195, 24,212,196, 89, 89, 28, 10,247, 65, 25,137, 1,172,165,198, 7, - 11,106,136,131, 6, 80, 12, 74,128,195, 13, 56, 26,251, 68,212, 32,244,209, 75, 42,154, 25, 91,249,158, 20, 28,155, 56, 85, 82, - 50,136,104,163,193,148,200,135, 48, 88, 10,137,226,118, 34, 42, 28, 71,109,136,206, 26, 81,144, 0,200,234,144,227,103,158,152, - 64,201, 7, 69, 0,107, 89, 68, 69, 4,227,228, 79, 69, 80,153,136,129, 36, 32,168, 26,199, 10, 72,160, 34, 24, 68,218,174,117, -136,252,251,191,245,173, 97,220, 6,168,162, 72,175, 61, 27,136, 8, 76, 3, 57,128,227, 59,166,175,135,126, 8, 58,172,215,204, -128,236,154,253,154, 92,150, 36, 12,196,241, 37, 98, 70, 32,122, 57, 68, 5, 84, 3,196,212, 67,156, 66,176, 68,186,128, 34,129, - 34, 34, 25, 98, 99, 16,135,191, 70, 67,186,211, 67, 52,150, 96,180,114,197,131,132,210,143, 29,245, 49, 43,134,132,164, 97,200, -143, 74, 16, 4, 62,154,142,127,248,233, 39, 68, 48, 30,141,147, 52,203,146,108,191, 93,126,246,248,233,199, 31,127,148, 37,182, -174,107, 66, 80,239,159, 63,125,218,116, 97,113,123,169, 64,121, 90,152, 52,161, 97,240,136, 32, 74,209,199, 2,138,136,108, 76, -100, 57,224,193, 26,140, 0, 8, 6, 34,126, 0,130, 72, 0,160, 56,250,136,130, 13, 27, 27,141, 4, 68, 76,108,162,163, 37, 72, -128,104, 93, 31, 50, 92,131,135, 61,142, 92, 6,187,165,101,130,215,184,135,104, 0,245, 56,196, 78,134,205, 16, 16, 85,149, 7, -159,232, 48,174, 8,162, 28,125, 59,131,171, 85, 1,145,172,173,246,107, 75,136,132,140, 24,188,156,189,251, 19,105, 81,114,238, - 86, 47,159,253,103,255,225,127,212,248,164,217,109, 30,220, 59,254,227, 63,254, 55,157,195,222, 7, 98,187,190,189,221,238,171, -171,235,155,166,247,227,201,145,177,174, 93,223, 74,223, 5,213, 52,207,122, 31,218,221, 38,203, 83,223,110,250,250, 46,205,210, -229,114,253,242,250,122,185, 93,239,247,245,116,148, 55, 77, 91,215, 45,170,162,239, 12, 66, 85,109,171,118, 95,183,149,146,171, -118,123,237,155,162, 40, 70,197, 24, 92,126,122,255,173,119, 62,248, 56,136,174, 23, 55, 38, 25,245, 77,131, 32,171,155,167, 2, -100, 56,247,221, 62,207, 50,241,109,211, 6, 54,110,179,184,122,249,252,211, 94,112, 50, 59, 43, 82,158, 76,142,206, 78,207,207, -238,189,153,229,101, 98,168,200,115,107,243,196,210,241,100, 58, 59, 58, 97,195,134, 57, 75,115, 38, 5, 5, 52, 73, 90, 28, 21, -163,177,229,132,136, 67,183,214,160, 93,187, 67,192,166,173,119,251,182,109, 27,235,220,110,241,188,105,118,163,233, 73,223,110, - 85,130, 37, 90, 46,174,187,118,239,210,162,241, 61,179,171,183,139, 98,116,156,164,101,215, 86,171,155,207, 93, 90,102,121,222, -238, 22,251,205,210, 38, 69,239, 59, 91, 76, 8,185,173, 87,190,175, 37,244,162,228,146,196,166, 37, 32,238, 23,215,192,201,120, -114, 66,100,155,106,125,118,254, 78, 91,175,125,187, 33,162,182,105,125, 8,156, 29,133,190, 78,211, 4,137,179, 98, 90,239,215, - 65, 84,196,231,121,177, 93,223,181, 29, 0, 83, 85, 87,139,229, 93, 80,204, 51,151, 37,174,235, 91,107, 18, 96, 72, 93, 74, 54, -201,211,204,184, 36, 39,220,182,225,106,185, 58, 41, 83, 32, 83,213, 85,219,181,204, 46,201,198, 46, 73,179, 52,223,239,119,251, -237,186,174,214, 47, 47, 46, 81,251,143, 62,124,127, 58, 30,139,130,136, 68,119,111, 20, 15,134, 88,182,198,103,137,200, 25,141, -122,251, 0, 21, 65, 85,181,132,190, 15, 55,155,106,223, 80, 54, 62, 46,139, 81,232,171,235,139, 23,143, 31, 63,254,225, 23,143, -159, 94, 94,221, 44,150, 23,183, 43, 66,252,222,175,255,194,191,245,189, 95,127,251,205, 51,239, 9,123,178, 33,108, 22,183,143, - 31, 61,123,118,113,119,117,183,244,193,255,157,159,254,170, 41,211,207,158,188,184,185, 93,172,119,213,103,143,158,165,168,211, - 44,183, 4, 97,136,104, 3, 68,119, 39,161,115, 22, 0, 33,102,172,226, 16, 14,193, 48,201,193, 21,148, 16, 67,212,226, 85,226, -194, 22, 36,136,130, 49, 20,130, 26, 66, 66, 66,132, 32,234, 37,240, 65,232,140, 30, 17, 66,236, 85, 12, 57,195,212, 41,164,142, -145,204,193, 16,135,200,208,118,194, 68,214,196, 40,169, 18, 34,177, 5, 84, 64,116, 76,113,177, 69, 21, 98,210,129,109, 64,113, - 24, 29, 21, 33, 98, 2, 0,102,102, 84, 32, 66, 38,199, 4,204, 17, 82,130,241,232,168, 64, 8, 76, 16, 84,131,168, 2, 48, 98, - 84,102, 40,154,115,112,216,179, 16,145, 77,100,143, 80,221, 7, 8,125,145, 39,252, 7,223,254, 13, 61,184,119, 32,190, 63, 81, - 33,145,225,128, 44, 65,137,249,240, 82, 8,113,113, 81, 80, 13, 0, 0, 2, 2, 2,170,224,101,189,171, 71,101, 1, 26, 87,174, -168, 91, 8, 18,137,246, 64, 20, 55,177,248,178, 3,133, 33, 42,243, 68, 81,134,102,107, 6, 97, 66,226,219,165,160, 10, 1,128, - 7,235, 33, 8,224,107, 67, 97,156, 88,170, 32, 17,113,188, 24, 69,145, 90, 68, 85, 33,248,208, 79, 38,211,122,183,190,184,188, -201,210,236,248,228,216, 57, 75,170,183,183, 55,155,170,249,240,189,119,189, 15, 93, 87,165, 89, 49,158, 30,127,249, 43, 95,109, -251,246,195, 47,127,109,183,153, 27, 78,226,117,239, 96, 56, 12, 68, 28, 69, 12,137,175,141,135,159, 49, 30, 2,114,112,197, 12, - 70,196, 67,134, 0,152, 8, 48, 62, 88, 68,196,100, 24, 1, 37, 40, 17, 25, 34, 5, 85, 15,198,152, 56,241, 4, 68, 20,137,238, -182,190, 29,161, 0, 0, 32, 0, 73, 68, 65, 84,210,184, 43,134,136,154,137,142,174,225, 55, 48,108, 11,162,196,104, 0,227,163, -131, 68, 76, 8, 64, 94, 36, 98, 9,226, 89, 67, 68, 0,133,200, 16,185,122, 55, 79,153, 0, 21,130, 47,207,222, 62,122,235,125, - 16,237,170,221,127,245, 79,254,233,213,170, 75, 51,155, 37,246,223,249,247,254,225,241,236,168,218,239,200,119,187,229, 98, 87, -215, 47, 94,188,218,108,150, 73, 49,153,156,156,249,190,101,231,128, 93, 8,146, 48, 43, 48, 24, 50,201,168,222,220,181,213, 93, - 98,146,229,102,253,234,250,102,189,217, 6,193,223,248,213,223,235,219,118, 49,191,186,186,122,186,175,118,183,183,175,124, 16, -199,198,247, 34,202,125,187,207,210,180, 44, 10,195,228,202,163, 55,223,253,210,244,236, 65, 83,239,250,182,118,233, 40, 27,143, - 17,144, 92,105, 93,230,251, 30, 84,250,174,221,205, 95,112,146, 45, 87,243,128,238,250,246,210,165,227,212,130, 74,200,243,137, - 49,166,111,183, 94, 2,187,172,223, 92,229, 89,234, 18,227,146,188,235,118,109,189, 27, 77, 79, 65,186,229,226, 82,218,122, 58, - 59, 7,109, 49, 52, 77,179,113,105, 81,237, 54,189, 8,114, 90,213, 53,160, 33,194, 32, 82,237, 86,161,111,102,247,223, 47, 70, -211,253,110,213,215,173,115,217,236,244,205,147,179,243, 94,250,224, 1,217,161, 77,172,181,210, 44, 85,125, 54,154, 37,197, 81, - 91,237,140, 27,155, 52, 77,242,145,203, 70,214,230,117,187, 35,147,155, 36,103, 67, 46, 29, 85,235,185, 37, 76,210, 44, 59, 58, - 31,141,143,251,118,139,108,136,141,223,207,145,204,232,248,156, 93,201,214,248,110, 75, 73, 62, 61,122,144, 36,142,141, 73,178, -204, 37,169, 73,138, 36, 47,154,102,183, 93, 47, 44, 81,154,101,132, 66, 54, 57,157, 30,237,234,250,238,246,154,141,173,234,170, -107,235,206,123, 38,211,183,219,213,122,233, 69, 63,120,227,222,182,237,151,155, 13,133,198, 37,229, 40, 27,185,180, 92,239,107, - 34,241,245, 22, 3, 84,237,254,114,126, 53, 57,122, 99, 84,158, 78, 39,169, 97, 82, 17,124,125, 46, 64, 2, 80,160,168, 18,131, - 4, 69, 38, 9, 18,215, 82,149,128, 0, 0,194,140,219,166,191,217,244, 1,220,209,244,152, 49,236, 86,243,103,207, 31,127,242, -249,163, 31,126,254,248,226,250,230,118,185,220, 87,205,199, 31,188,253,143,254,248, 59,191,252,115,223,240, 34,190,131, 4,201, -239, 54, 47,159, 63,253,228,139,231,215,203,205,106,183,127,120, 58, 61,185,119,246,249,203, 23,159,124,250,248,141,251,103,159, - 62,126,213, 85,213, 89,153, 23,169, 83,208, 32, 26, 68, 85, 5,163,237,131, 32, 6,119,172, 97,112,164, 33, 14,117,129,136,122, - 47, 42, 18,207,209, 65,197, 43,112,244, 46, 0,244,126,208,117, 5, 1, 68,153, 49,250, 62, 16, 49, 49, 6, 9,131, 42, 15,139, - 48, 8, 2, 19, 89,195, 30, 48,179, 22, 5,188,134,120, 8, 19, 0, 5,112,214, 32, 66, 8, 66,128, 48, 28,133, 21, 8, 0, 48, - 72, 24,178, 94,138,204, 28, 79, 89, 17, 84, 67,108,144, 8, 85, 84,145, 9,117, 96,216,160, 42, 9,136,202, 96,196, 16, 37, 4, - 77,172, 17, 80, 17,140,192, 32, 2, 13,170, 28,121, 35, 0, 4,100, 12,139,130,136, 26,195,168, 74,134, 59,213,166,105, 82,103, -153,137,191,255,157,223,164,193, 3, 27,255, 43,113, 56, 82, 14,110, 62, 53,150,162,219, 58, 26,209,117, 72,240, 12, 22, 60,208, -120,188, 14,198,218,219,249,109, 94,148,206,177,198, 23, 84,193,131,129,230,199,145, 7,130,225,172, 13,128, 24,167, 13, 8, 68, -108, 57, 90,252, 76,132,176,196,113, 13,197,220,231,193,131, 79, 28, 65,104,195,227, 6, 26,185, 5,164,140,160,196,150,145, 67, - 52,226, 40,196, 51,242,249,189,251,207,158, 63,109,219,182,200,179,241,120,102,140,181,172,127,253,195, 79, 79,206, 78,238,157, - 28,119,189, 39, 32, 8,253,118,183, 33, 8,183,151,175, 86,203, 85,154,100,196,198, 88, 23, 79, 3,175,173,193,130, 2, 66,113, -226, 11, 32,136,134, 40,186,144, 56, 98, 12,134,141,148, 7,136, 2,188,118, 35, 29, 28,184, 18,130, 30,192, 2,226,163,134,136, -135,189,250,199,139,120,124,239, 48,230, 9, 68, 95,179,110,226, 9, 29, 21, 52, 62, 23,128,192,164, 50,120,187,162,186,207,131, -243, 17,135,108, 25, 2, 51,147,117, 65,197,239,214,206, 26, 13,158,147,226,244,163,159,100,102,145,246, 79,255,228, 79,126,244, -249,243,196, 25, 75,240,123,223,253,238,151,190,244,222,118,117,135,100,219,186,106, 3, 94,221,204, 23,203, 85, 47, 48, 57,154, -161, 73,250,182,202, 38, 39,125,211, 36, 9, 33,185,116, 84, 52,187,109,183, 91,246,161, 69, 95,177,179, 55,139,213,197,245,237, -114,179, 45,199,227,159,253,198,207, 1, 64, 78,112, 60,202, 13,202,114,219,174,246,213,118,191,107,218, 94,180,103,194, 34, 47, - 38,229,212,230,229,244,228,236,225, 59, 31, 5,213,186,218,239,151,175, 4, 8,149,148, 64,130,239,219,150,216,182,213, 70,196, -231,229,177, 74,111,109, 10, 34,183, 55,151,121,158,213,155, 59,103,147,114, 60,201,199,167,117,179, 67,118,121, 81,250, 32,214, -165,163, 98,214,117,149,177, 57, 24,183,189,254, 36, 27, 29,179, 49,134, 19,147,100,108, 24, 52, 32,217,188, 60, 82, 96, 64,118, -206, 25,118, 73,154,163,116,105, 49, 33, 99,219,174,149,126,135,208, 50,115,146,151, 77, 93,245,221,158,216, 58,227,210, 52,147, -208, 97,240,162,128,224,243,242,184, 24, 77,156,113,189,111,108, 58, 98, 55, 66,245, 74,228,235, 93,223,109,242,242,132, 20,122, -241,134, 25,173, 51,198,238,182, 43,182,142,140, 97, 99, 99,186,210, 24,199,217, 68, 85, 33, 52,117,189,201, 70, 39,163,209,152, - 13, 89,151, 4,223,245,189, 10, 0,160,233,155, 42,244, 45,113, 66,198,132,208, 55,117,195,132, 41, 67,211, 54,147,241, 52,201, -179,201,248,168, 24, 77, 20,176,109, 27,239, 67, 89,142,203, 34, 67,208,220,152, 77, 47,109,144,113,158, 1, 99, 85,173,242, 44, - 29, 21,121,211,237,151,187,181, 97,120,112,255,173,179,147,147,106,187, 94, 44,119,229, 40,201, 83,171,138, 42, 66, 48, 92,209, -135, 73,219, 0,152, 82, 38, 36, 80, 20,136,200,150,222,251,249,166,219,214, 56, 25,207,202, 34,107,170,213,197,243,103,159,126, -241,197, 39, 95, 60,125,252,226,226,213,205,124,179,175,207,207, 78,191,247,107,191,248, 71,223,253,123,199,179,241,110,215, 27, - 49, 86,252,245,171, 23, 95, 60,121,252,236,114,190,221, 55,247,206, 78,198,179,169, 97,117,229, 72, 20, 94, 93,222,173, 23,171, -113, 98,167,101,106,145, 68, 85, 20, 66, 76,209,255,255,115,127,113, 2, 23,231,169,140,112,192,155, 69,176, 10, 4,141,209, 36, - 36, 32, 25, 78,147, 24,189,136, 3,171, 64, 69, 69, 13,198, 56,186, 26, 68,136,142, 65, 80, 69,160, 40,204, 14,218,189, 40, 0, -227,193,251, 73,200,136,170,106,136, 37,202, 53, 3,175,140,130,132, 32, 18, 1, 39,160,135,241, 24, 0, 30, 66,142,175,131, 53, -206,146, 2, 17, 64, 12,161, 19, 2, 35, 25,102, 66, 18, 47, 49,168, 31, 68, 52, 40,198,239, 14, 81, 7, 7, 53, 5, 80,199,230, - 64,157,194,214,183,187,106, 11,234,157,117,251,170,119, 4,121,150, 2, 16,255,193,183,191,133,128, 32,175, 23,225,248,134, 28, -244, 25, 27, 67, 68,131,183,250,240,103,226,152, 69, 20, 15, 75, 60, 34,147, 37,241,141, 15,121,158, 31,210,249, 26,205,253,209, -208,205, 68,134, 34, 25, 17,226,238, 19, 95, 41,134,155,226,228, 48, 90,194,225, 0,210,138, 99,113, 24,214,188, 65,111,127,109, - 24, 29, 88, 25, 24, 81, 92, 49,195, 48,172,161, 17,209, 3, 10,105, 86,140,203,209,211,103,207,153,185, 44,203,108, 52, 10, 93, -232,251,238,217,197,213, 87,190,252, 1, 2,181, 77,197,132,109,211,148,211,217,252,246,250,205,247,190, 74,208,249,222,179, 51, -113,202, 26,255,209, 32, 66, 58,124, 85, 10,192,104, 40, 14, 22,226, 20, 34,154, 96, 20,137,137,162, 85, 95, 33, 14, 21,136,137, -140, 9,189, 87, 64, 98,139,168, 34,253, 0,212, 68,208, 32, 68, 6, 35, 82,143,136,137,226,162,124,152,208,202, 1, 25, 54,248, -236,163,111, 21, 16, 72, 68, 34,129,136, 40, 18, 14, 16,128,137,192, 48,200,240, 22, 34,162, 49, 6, 17, 25,185,105, 26,232,247, - 8, 2,156,223,251,248,103,146, 36, 1,134,127,241, 39,255,237,255,243,127,253, 37,160, 26,196,239,254,238,239,127,253,103,126, -170,243, 33,180,173, 2,118,166, 32,103, 30,127,254,105, 35,198,229,163, 52, 43,200,164,140,218, 53, 85, 62,158, 16,160,203,242, -221,106,153,100, 37,166, 73,187,124, 73,136,226,195,139,171,155,235,249,124,187,223,190,255,206,151, 63,120,231, 75,221,126,169, -205, 70,212,247,109,171,234, 45,163,134, 80,181,181, 97,195,200,153, 99,227,242,201,233, 27,179,211,183,239,189,249, 86,219,214, -187,253,222,216,210,185,164,171,215,100,178,174,173,251, 94,234,253,109,223,183,157,247, 73,146, 74,223,230,121,190, 92,221,117, - 34,227,241, 44,203,138,114, 60,214,208,231,229,209,110,179, 40,203, 19, 98,139,136, 10,237,102,187, 12,192,142, 2, 38, 83, 82, -200,203, 99,237,122,180, 22, 65,251,102,143, 12,105, 49,147,222, 19,120, 36, 98,230,182,221,131,244,251,245,157,181,217,126,121, - 1,192,105, 62,203,199,227,166,217, 27, 87,244,138,189,247,132,241, 14,174,198,166,117,215,248,110,107,216, 41,168, 75,138,196, -242,250,238,185,117, 5, 51,245,253,174,111,186,180, 24,141,167,103,204,184,185,123,101, 76, 10,218, 26, 67,136,144,184, 12,145, -130,111, 69,149,217, 26, 75, 26,194,110,241, 60, 75, 70,197,120,150,101, 83,147,142, 66,215,181,251,185,168,189,187,248,209,228, -248,173,122,123, 19,131,135,210, 86,206,114,219,238, 67,232,179,172,172,186, 32, 2,137, 69, 38, 98, 54,137, 97,245,189, 72, 79, -168,198, 24, 36,174,118, 27, 31, 72,197, 79,138,114,177,217, 85,125,119, 54, 61, 74,139,210, 80, 39, 18,182,141, 47, 71,179,113, -145, 10, 36, 1, 85,250, 74,208,237,250, 60, 75, 37,205, 48,242, 81,226,113, 74, 67,148, 21, 40,114,105, 14, 92, 41, 21,213,249, -182,190,221,116, 46, 25,151,227, 50,116,245,245,197,139,199,143,158,124,246,248,201,167, 79,158,190,186,157, 95,223, 45,147, 36, -253,189, 95,249,217, 63,250,206, 47,127,249,131,183, 3,128,118,152, 42,237,239,110,159, 60,122,252,248,229,213,197,221,218,251, -254,239,254,244,215,147,163,209,143, 30, 63, 73, 45, 93,174, 55, 79,159,190,204, 13,165,150, 51,103, 53, 0, 49, 4,145, 32,209, - 51, 29, 93,208, 50,160, 90,108,212, 3, 34,247,102, 56, 74, 17,146, 33,138,160, 52, 38,142,176, 64, 96,136,218,240,144, 39, 50, -228, 67, 32,226, 65,156, 9, 0, 40,150, 56,232,160,144, 14, 4, 42,102, 38,244, 58,172,231,132, 36,160,175, 19,234,168, 58, 88, - 51, 15, 25, 49,141,169, 46,132, 32, 64, 17, 53, 16,165, 87,133,131,122, 67,135, 83, 32,121, 81, 4, 32, 5,136, 91, 11, 35, 51, - 43, 64, 47,194, 68, 74, 36,226, 69, 21, 1,141, 97, 47, 42, 0,134,144,153,124, 0,131,104,216, 40,170,146, 1,208, 32,186,218, -239,171,170,114,198,214, 94, 0,100,154, 23,200, 54,168,231, 31,252,206,119, 15, 78,202,248, 83, 65, 35, 98, 43, 26, 66, 44,136, -210, 16, 53,178,120,176,112,128, 68,115,203,192,251,164, 0,136,100, 19,190,157,207,103,179, 99, 38, 84,145, 24,137,141,163,246, -136,110,128, 65,136,143, 17,241, 3,150, 40,206,110, 68,145, 8, 16, 53,196, 69, 76, 98,250,102, 8,215, 15, 70, 73, 6, 21, 84, -133, 40, 97,199, 61, 15, 9, 9,136, 56, 2,213, 16,144, 15,129, 13, 36, 20,239,167,211,201,124,126,189, 90,109, 18,151, 76,143, -142, 29, 19, 72,255,228,217,211,172, 40,223, 58,191,215,180,173, 34, 56,166,187,249,197,213,197,229,104, 84,186,196, 86,251,189, -115, 9, 17,147,177, 33, 4, 68, 34,130,200, 81, 34,138, 90, 25,129, 12,236,203,104,101,137,215, 87, 36, 67,196,145,191, 51, 60, - 3,162, 16, 20, 13, 33,160,104, 79, 20,103, 32,131,254,101,173,141,102,128,232, 55,141,204, 3, 56, 32, 68, 99,154, 44,166,121, -227,115, 19,159,187,110,191, 92, 47,110, 34, 16, 15, 0,120, 8, 72, 33, 24, 82, 81,239, 37,158,238,153, 34, 21, 68,144,184,107, - 27, 13,173,113,233,233,251, 63, 81, 76, 38, 64,244, 47,255,135,127,254,191,252,203,127, 69, 76, 10,221,111,255,246,239,254,210, -183,126, 45,180,141,175,107, 52,166,222, 85,197,241,241,103,159, 60,218,119, 98,179, 12,186,189, 77, 70, 54, 45,162, 11,117, 92, - 78,186,182,219,109,230, 68,214,247,221,118, 91,181,219, 87,214, 38, 77,239, 95, 92, 93, 94,223,173,171,166,254,230, 79,255,226, -249,241,113,189, 93, 62,124,112,186, 95,173,246,251,253,110,191,238,154,174,239,187, 8, 38, 78, 24,242, 98, 60,154,220, 59,190, -255,230,201,131, 55,210, 34, 91, 92,189,234,234,141,248, 94,124, 67, 54,221,205,159,145, 43,144,220,120, 58, 29,143, 38, 93,215, - 49,104, 93, 45,154,166, 93, 46, 87, 89, 94, 74, 8,155,213, 69,146,142, 58,133,237,190,113,217,116, 84,100,193,119,196,166, 28, - 31,133, 0, 65, 67,232, 27, 32,155,142, 38,228, 43,128,192,198,121,239, 67,223, 10, 0,153,188,110,246,192, 68, 40,136,214, 37, - 37, 17, 37,249,136,172,117, 46, 1,232, 93,146,102,121,193, 38,173,215, 87, 26,124, 50,154,248,221, 2,141,101,240,187,197, 75, - 55,154, 58, 91,116,237,190, 24, 31, 39, 89,225,125,107, 92,162, 32,245,102, 97,216, 58,155,113,146, 75, 8, 22,177,174,118, 77, -181,156,158,188,195, 72,249,228, 56,116,141, 34, 22,121,177, 91, 93,138,242,126, 53,223,111,230,247,222,250, 74,231,219,197,205, -197,252,197, 95,228,227,211, 16,250,190,222,165,197, 88,209,222, 92,127,114,114,255, 67, 68,234,251,122, 52, 62,107,218,189,244, -125,154, 79, 73, 68, 67, 39, 26,156,203,178,172,140, 10, 95,221,119,219,170,202, 18, 7, 10, 46, 41, 70,197,184,110,170, 52, 45, -124,232, 30,156, 28,239, 91,185, 92,220,158,159, 76,170, 30, 92,126,154,165,206, 38, 25, 91, 62, 59,190,223,117,226,123, 13,190, -201, 39, 71,187,154, 74,199,169,141,247, 74, 19,153,131, 0, 98,144, 84,226, 32, 74, 25,177,106,187,139,219,170,237,205,209,236, - 56, 53,124,119,243,242,201,163,207,159,189,184,248,236,233,179, 39, 23,151, 55,155,205,174,106,191,254,225,187,255,193,223,255, -157,111,254,228,135, 10,228,189, 22, 38,211,186,122,241,236,241,231, 79,158,191,156, 47,230,203,205,135,111,158,177,113, 47,239, -110, 47,111,110,137,146, 31,126,250,197,126, 83, 21, 76,121,154,193, 64,116,210, 32, 34,162,193, 43,209,224, 3, 70, 34,235, 44, - 34,106,136,108, 69, 80,164,160,154,185,132,128, 68,189,138, 98, 60,161,171,180, 18,226, 41,151, 6, 9, 85,136,168, 11, 2, 8, -164,168, 8,170,106, 12,145, 65,223,171, 18, 48, 34, 19, 42,104,194, 36,136, 10,104, 8, 45,178, 0, 70,238,107, 98,141, 4,101, -166, 3,181, 81, 13, 50, 96,164,249,129,168, 32,128, 37,246,170, 6,217, 89, 51,200,179, 76,206,217,200,207,138, 94,113,162,152, -121, 66, 5,177,204,170, 16, 68, 84, 53,179, 6, 17,124,219,123, 65,203, 72, 68, 94, 52, 97, 78, 12, 5, 69, 85, 49, 20,229,254, - 96, 92, 70,113, 14, 2,202,100, 0,217,171, 4,145,105, 81, 32, 83,145,184, 46, 40,127,255,219,223, 2, 16,197, 8,122,199,193, -251, 4,136,136,162,138,209,195, 30,191,142,152,114, 18, 21, 8,135, 64, 64, 92,117, 89, 73, 21,149, 66,255,127,255,217,191,210, -236,244,236,120,172,226, 97, 24, 49, 2, 29, 96,185,170,162, 63,102, 10, 40,234, 0,208, 28, 36,102, 34,140,145,212,193,127,165, -196,230, 0,207, 26,134,190, 58,140,128, 33, 78,161,163, 63, 48, 30,134,145,145,137,145,136,140, 33,100, 34, 70,212, 56,236, 46, -139,209,231,143, 30, 25,166, 81,158,143,198, 19,239,189,248,240,215, 63,250,236,157,119,222, 30,229, 89,211,212,214, 36, 26,232, -225,187, 95, 10,237, 54, 27, 31,213,251, 45,147, 77,146, 20, 32, 96,252, 95, 83, 69, 36,100, 30,238, 13,164, 26,167, 14, 56, 92, -185, 8,144,140, 17,245, 32, 26, 83, 2, 49,195,230, 67,143, 76, 8, 52,208,208, 8,136, 40, 70,222, 0, 73,195,240,216, 12,186, - 83, 60,129, 48, 73, 84, 54, 95,199,219,134,116, 49, 33, 99,232,186,235,139,199,119,151,207,218,174, 73,178,210,217, 12, 48, 50, -146,101,200,210, 14, 55, 82,142,251, 1, 16, 51,219,182,218,106,183,155,220,123,111,122,255, 33, 90,254,171, 63,251, 63,254,244, -159,255,143,104,156, 37,252,123,191,250,155,191,252,203,191,208, 54,117, 64, 98,195,190,247,110, 50, 93,220, 92, 61,254,226,133, -162,128,120,165,148, 93,102,108, 26,124,157,184, 84, 7,127,177,201,138,241,171,151,207,155,221, 58, 49,181, 33,179,219, 87,183, -183,243,155,213, 74, 21,126,233,103,126,201, 50,174, 22,183,161,175,111,110, 94,117,222,175,119,123, 37, 82,164, 36,113, 36,162, - 40, 73,154,159,158,206, 78,239,157,151,147, 89,189,185,186,187,124,145,143,143, 9, 67, 80,107,140,237,218,106,191,153, 27, 66, -106,238,234,170, 1,223,178,181,162,184,222,238,150,171,121, 60,130, 77, 78, 31, 88, 87, 36,217, 20,218,221,116, 54, 75,210,124, -179,184, 14,210,231,134,234,122, 11,118, 52,202,199,137, 81, 4,232,218, 22,109, 90, 56,204,202, 51,235,210, 36, 31,129, 6,231, - 82,210,160, 18,218,237,210, 55,171,190,217, 33, 59, 31,124,240, 93,232,154,128,148,230,165, 74,168, 58, 15, 72,210,247, 93, 87, -247,117,165,100, 67, 0,223, 54,125,183,113, 46, 1,116,222, 55,125, 83,155, 36, 73,178, 82, 68,124,191, 71, 99,188,239, 21,201, -119, 77,146, 20,219,187,151,174,152,244,205,190,237,122,178,169,130,238,215,243,188, 60, 38,195,162,234,242,178,175, 22, 93,189, - 77, 82,215,117,158, 81, 76, 94,246, 94, 3, 64,240,237,116,246,214,104, 52, 37,130,208,251,182,217, 49,161,181,121,150, 37, 0, - 97,223,182,214, 88,231,210,206,247,134,140, 87, 76,216,100,105, 54, 29,141,108, 94,250,182,182, 6, 68,217, 75, 96, 4, 6, 45, -114,215, 4,189, 92, 46,207,202,163,114, 92, 38, 89,233,251,106, 52,154, 57, 11,155,245, 60,205,179,125,221, 22,121,129,200,158, -166,134,170,204, 97, 16,193, 3,150, 52, 68, 19, 1,131, 87,189, 93,215,139,141,207,138,241,120, 60,234,234,253,229,171,103,159, -126,246,232,243, 23, 47, 31, 61,127,241,242,102,190,222, 85, 39,211,241,247,127,227, 23,255,254,239,253, 74, 57, 46,171,218, 39, -156, 38,192,235,219,171, 39,143,158, 60,121,113,189,216,237,142,198, 99, 98,154, 29, 79,196,114,211,135, 39, 79, 94,236, 55,155, -105,158,167,214,198,188, 61, 13, 55,216,136,191, 2,195,209,197,141,132,131, 64, 97,136,141,179,209, 79,193, 68,140,209, 92, 16, -124,136,248,191, 56, 83, 29, 92,240,136,236,172, 33, 38, 9,162, 10,214, 80,180,158, 51, 15,248, 17, 31, 20, 16,157,177,209, 57, -111,141,233,130,196, 79, 83,132,138, 48,161,179, 86, 68,130, 68, 52,202, 32,211,139, 66,136, 71,119,198,131,209, 77, 5,213, 34, - 89,230, 16,137, 13, 76,168, 49,191,138,162,160,170, 38, 34,127, 99, 15, 3, 89, 47, 18,211,191, 8, 24,194,128,119, 75,172, 1, - 34,141, 58, 15, 82,208, 65, 93, 17, 0, 64, 81, 69, 67,204,236, 16,213, 26, 99, 8,216, 90,239,253,200,185, 60, 31, 33,114, 36, -203,155, 56,212, 37,141,220,200, 1, 84, 31,227, 67,195,247, 54,224, 98, 52,138,188, 62,202,113,170, 72,106, 34,233, 24,226,174, - 68,174, 28,143,202,201,213,237,252,227,247,206, 4,137, 15, 76, 11,208, 88, 91, 65, 10,160, 65,129,244,128,211,101,160,104,190, -212,129, 69,192,128, 33, 82, 16,144,137, 14,238,157,168,212, 83,196,225, 34,235, 16,231, 5,136,170, 25, 32,106, 0,208,225, 12, - 28,157,152, 72,175,209,243,225,222,253, 7, 31,190,255,246, 15, 63,121, 52, 41,167,121, 49,154,157,156,213, 77,117,117,125,243, - 63,255,239,255,231,191,246, 59,223, 73, 18,223,117, 85, 81,102, 8,254,250,250, 98,223,246, 18, 90, 21, 77, 51, 71,100,144,152, -112,184,157, 14,216, 47,142, 79, 12,197,171, 76,148,236,148, 34, 9,152,128, 32,174,206,145,212, 73,132, 26, 58,101, 23,155, 58, -212, 43,218,104,245,241,104, 1, 35, 23,116,128,110,147,138,168, 0,169, 12,114, 84,212,134, 20,227, 96,121,176, 10,177,177,214, -246,189,160, 66,208, 16, 72, 73,163,230,245,227, 20,246, 96, 90,250,177,142,133,190,173, 70,147,123,179, 55,222, 65,199, 55,207, -159,253,119,127,242,223,247, 74, 70,228,239,124,243,231,126,253,183,127,115,254,226, 89, 23,120,118, 58, 21,223, 52,117,227,146, -236,233, 23, 79, 39,167,247,183,171, 57, 72,112,197,200,144,138, 8, 41,249,174,113,197, 72,118, 59, 99,211,229,252,122,187, 94, - 59,234,236,200,137, 98,213,182,157,104, 8, 82, 20,249,228,232, 72, 67,127,124,116,180, 89,205, 83,155, 8, 42,208, 90, 67,112, -206,160, 74, 64,180, 54, 77, 92, 58,158,156,144,115,206,186,205,162,222, 55,251, 41,179,154,146, 52, 52, 85,157,143, 79, 77,154, - 73,211, 85,141, 40,245, 76,210,236,215, 72,188,218,172,124, 8, 46,201, 20,109,211,244,161, 89,142,143,239,113,234,178, 98, 44, - 34,217,228, 44,207, 70, 93,189,238,218,182, 40, 78,179, 44, 89, 45,175,210, 36,243, 34, 8,102,181,190, 73,133, 52,120, 31,188, -117,133,104,221, 54, 59, 85, 32,209,170,174, 93,146, 65,144,205,102,165,193, 55,251, 59,182,187, 34, 73,198, 39,247, 76,211,106, -128,106,115,105,109, 78,105, 46,156,143, 70,211,186,218,104,232, 65,125,179,191,147,222, 54,219,165,205, 70,163,163, 7,125, 8, -193,107,183, 89,150, 39,231, 77, 93,139,111,202,241,232,244,225,251,202,134,196, 88,114,203,171, 23,137,203,146,209, 88,250, 6, -216,200,238,198,141,239, 87,117, 55, 61, 62, 13, 94,136,231,171,197,117, 46, 38, 47,198,193,183,187,221, 93,215,213,170,161,111, - 43,151,150,251,106,215,122,233, 85,141, 23, 81, 56, 62, 61,175,118,235,106,183,180,118,180,235,118,149,135,220,154,119,222,124, - 75,250,166,107, 60,178, 17, 48, 29,180,121, 94, 0,232,221,122,137,160,231,211,241,178,110, 95,222,220, 36, 73, 98, 10,217, 85, -123, 64, 99,221, 73, 50,154,230,249,168,170,119,155,249, 21,104, 47,221,186,222,151,239,156,167,133, 13,225, 80,235, 97, 25,251, - 32,235, 77,183,237,193,114, 50,153, 58,223,181,215, 47, 47, 47,174,175, 94,190,188,124,113,115, 59, 95, 46, 23,155, 93,150, 38, -191,245,139, 63,253,171, 63,251,141,243,251,199,117,235,195,190,181, 26,154,106, 63,159,223, 92, 93,221,188,186, 91, 90, 50, 95, -251,202,251, 29,234,229,223, 46, 2,210,124,189,189,185,188,201,216,230,137, 99,134,224, 21,144,130, 4, 65, 81, 1, 68, 96,141, - 46,205,184, 20,146,170, 38,198, 70, 90,183, 32, 68,220, 44, 1,134, 88, 38, 36,146, 24,246, 18,207,162,242,122,109, 2,208,166, -239, 13, 98,226,172, 15,161, 11,194,135,161, 21, 33,106,100, 50,136, 34,136, 35, 20,133,206,247,113,190, 39,170, 28, 5,107, 36, -141,211, 83, 36, 64, 69, 5, 70, 10, 64,132,161, 11, 62,214, 44, 68,209,128, 15, 78,136,232,189, 51, 54,138, 69, 66, 49, 53,138, - 42,130,138,226,200,122, 9,162,234,125,207, 76, 68,232,189,136,138, 65,131,136,204, 38,104, 24,172, 36,170,136,200,132, 1, 81, -130,178, 33, 81,102, 68, 54,108, 1, 90, 97, 47,129,217,132,182, 78,217, 76,138, 18,153, 37,120,107, 45, 33,240,247,191,251, 91, -131,154, 17, 51,235, 18, 6,175,228,208,231, 34,120, 40, 2,136,114,132,143,139, 44, 2,227, 16,112,136, 64, 33, 36,100,195,167, -247,239, 25,128,201,184,144,161,213, 36,146,203, 56,250,229, 35, 41, 1, 25, 21, 4,163,251,221, 34, 2,144, 33, 85, 60, 88,116, - 6, 78,116,172, 89,137,225, 34,138,147, 17, 38,129,248,117, 33, 33, 26, 54,200, 72, 10, 4,236, 81,136,141, 4,137, 0, 60, 0, - 69,144,129,200, 6, 16, 20, 78,143, 79,159, 63,127, 94, 55,109, 89,142,202,114,138, 12, 69, 86, 60,126,252, 36, 31, 77,206,239, -157, 53,109, 77, 76,205,110,107,146, 49, 72,223, 52,126, 58,157, 74,156,224, 12,149, 0,116,200,168, 42, 42, 18,160, 68,145, 10, - 25, 1, 21, 85,197,171, 14, 94,125, 0,245, 26,152, 45, 0, 4, 17, 16, 97,182, 3,238, 94,163,181,113, 72,246, 30, 64, 62,136, -140,234, 3,196,218,168,120, 37, 49, 17, 22,198, 3, 15, 20, 94, 79, 88,201, 36,121,154, 23,249,228, 40, 73, 11, 67,134,144,128, -135, 63, 18,135,222, 81,226,131, 24,159, 34, 70, 80,180,249, 27, 95,249, 6,167,110,125,125,243,159,255,199,255,164,106, 58,208, -240, 51, 63,243,179,191,253,189,239,112,194,127,249,231,127,205, 8, 42, 80, 85,245,248,193,249,211,199, 47,175, 95,190,236,125, -231,187, 54, 47,198,190,217, 18,198,216, 29,231,121, 89,239, 55,245,110, 71,160,155,213,178, 13,154, 80,155, 39,182, 15, 97,181, -217, 92,205, 23,243,229,234,205,135,239,125,253,203, 95,111,214,215,168,126,191,219,168,234,122,183,111, 59,239,189, 15, 33, 48, - 35,176, 45,139,241,249,249, 91,247,223,254,242,232,248, 1,168,191,189,186, 72,198,247,207, 30,220,223,173,110,196,135,208,183, -214,229,126,183,168,170,245,102,181, 4, 52,245,126,157,231,197,246,238,213, 98, 87,229,229,145,113, 73,146,230,125,219,172,119, -187,204,194,217,249,219,147,217,217,126,183, 87,233,214,183,143, 69,177,170,235,196,154,205,252,169, 45, 78,138,204,174, 86,235, - 36, 45,218,222, 35, 38,125,215, 33, 37,170,161, 15,100,140, 77,179,178,175,119, 93,192,198,119, 93,219,139,132, 32,146,142,102, -199, 39,179,113, 57, 78,179,241,110,125, 55,191,189,146,174,203,199, 83, 8,129,136, 81,122,147,228, 34,193, 89,155, 21,211,237, -234,102, 52, 59, 31,207, 30, 24,131, 77, 85,177, 49,121, 57,189,121,250, 87,192, 6,209, 34,244, 36, 66, 72, 70,165,218,204,173, - 75,251,174,174, 54,119,109,211,244,189,104,104, 79, 30,188,159,101,174, 90,223,181,117,221, 41,220,123,243,227, 44, 27,133,174, -218,174,175,210,242,212,166, 19,239, 59, 4, 76,210, 76,165, 37,206,202, 81, 14,161, 69,202, 84, 61, 39, 73,175,100, 92, 70,214, -149,229, 52,203, 11, 50,102,122,116,220, 9, 26,118,170,200, 18, 72,247,171,218,223,159,157,105,223, 4,192,241,104, 12, 46,107, -130, 76,202,177,168,238,118,187,190, 15,109,181,237,155, 53,153,180,169, 86, 46,155,238,247, 59,178,147,170, 9, 89, 74,153,139, -234, 39, 84,157,191, 94,246,157,216,188,204, 25,176,222, 46, 46, 46, 94, 62,121,250,236,211,167,207,190,120,121,113, 53,159,111, -155,230,189,183, 30,254,131, 63,252,173, 95,255,197,159,116,121,210,236, 3,121,193,174,189,126,117,241,228,209,147, 23,151, 87, -251,170,157, 78, 38, 18,250, 90,101,185,173, 46,175,239, 46, 47,174,239,110,151, 35,107,178,196, 1,170, 35, 3,128, 65,186,182, -247,157,247, 68,232,189,198, 40,126,172, 55, 34,130,212, 24, 65, 12,160,108,152,201, 16,168,168,244,193, 91,230,200,233,237, 66, - 0,136,250, 45,128,106, 98,109,156, 71, 89, 34, 64,236,189, 40,104,132,145, 5, 4, 17, 97, 30,178, 61, 68, 24, 4,122, 0, 34, - 52, 76, 18,167,138,200,142, 7, 82, 83, 56, 84,167, 89, 99, 37,118,170,161, 18, 0, 50, 6, 9,175,161, 92,131, 40, 77,104,152, - 65,193, 16, 9,196, 67,218,112,161, 48,196,145, 30,232, 69, 16,129, 99,176, 21, 80, 69, 18, 99,148, 48,168, 2,130, 33,235, 85, - 45,179,179, 44,136, 2,200, 32,214,166,113,196,103,200, 48,129,143, 35, 73,230,170,105,219,174, 61, 42,114,101, 86, 80,199,228, - 44,123, 81,254,254,111,127, 59, 26, 42, 35, 69, 13,134, 81,197,225,104, 25,211, 11, 7,158,144,234,144,221,130,104,192, 36, 68, -166, 1, 85,104, 56, 4,201,179,164,222,173, 93,146, 25, 4, 17,101, 75, 24,129, 41,113, 46,200,195, 58,132,122, 64, 69, 7, 85, -137, 66, 86,156,123, 3, 1,137, 10,179, 25, 40, 69,240, 99, 86,129, 14,225, 49, 38,100,107, 19, 98, 86, 0, 98, 14,128,134,120, -136,243, 12, 6,204,184, 95, 97, 52,178, 74, 0,231,220, 40, 49, 79, 30, 63,205,139,209,104, 50, 78,109,166,193, 51,225, 39,143, - 30,125,252,209,135, 73,146,180, 77,107, 44,229, 69, 57, 26,141,178,108,100, 77, 88, 45,215,121, 94, 48, 69, 70, 58,189, 70,236, - 17,155, 88,228,132, 20,101,171, 16,111,141, 68, 36, 32, 17, 61, 54,164,250,136, 12, 91, 34, 20, 13,241, 34, 40,209,244, 73, 7, -243,124, 76,169, 1, 74,232,112, 80,241, 6,158, 76, 36,126,138, 10, 33, 29,232,240,164,160,198, 18,155, 36, 77, 71,137, 43,140, - 75,226,192,129,104, 40,216, 27,250,114,226, 30, 25,219, 0,216,160, 82,121,116,146, 29, 77, 86, 87,151,255,229, 63,254,199,139, - 77,205,132, 31,127,244,229,239,252,254,247, 38, 39,211,213,124,253,252,209,227, 0, 84,173,215,247,206,239,215, 77,243,151,127, -254, 23,100,243,182, 94,100, 73,110,172,101,155, 1,179,182, 59, 9, 93, 47,158, 65,124,144,245,174,109,234, 21,104, 72,172,103, -132,182,111,231,203,229,205,252,110,185,221,125,240,238,151,222, 58, 61, 70,109, 22,119,119, 93,215, 46,231, 87, 85, 8, 93,219, - 56,199,198, 88, 47,154, 37,217,209,236,232,193,195,183, 93, 94, 76,102,179, 32, 18,124, 16,223,216,164, 32,223, 41,154,190,219, -183,187,141,248, 70,125,239, 70,179,196, 37,196,169, 33,252,252,179,191,242, 68,108,172, 4, 47,226,173, 77,146,108,212, 52,181, -203, 70,218, 53,251,186,210, 32,192,169,250,218, 36,197,108,118,223,119,157,179,198,154, 60, 40,156,156,157, 51,244,222,119, 8, -224,187,221,102,241,146, 77,154,103, 89,150, 56,223,121,227,146,190,173, 92,146, 42,226,201,233,217, 7, 31,126, 52, 46, 71,249, -244,100,179,184,186,190,124, 21, 0, 27,145,190,173,165, 93,230,227, 25, 27,135, 42,198,229, 73,154, 0, 25, 38, 50, 54, 11,125, -213,236, 22, 89,113, 28,143, 66,108,221,104,124,236,146,196, 34, 11,152,164, 40, 1,113,183,154,119,125,191, 91, 93, 38,229, 25, -219,180,107, 42,182,121,146, 22,251,213,109, 16,117,233, 56,205,198, 68, 74,198, 26,227, 36,244,140,180, 93,206,147,209,113, 86, - 78,189,111,217,166, 76,230,225,249,155,101, 57,170,246,213,226,234,179,233,236, 60,201,138,182,222,140,138,220, 37,233, 40, 75, - 54,155,133, 2, 38, 89,193,140, 77, 91,117,253,206,184,233,108,124,100, 25,208,141,202, 81,153,184, 20,181, 91, 44,238,246,251, -245,241,209,113, 31,124,188,155,111,118, 27,199, 38,120, 63, 61, 57,203,138, 9,106,104,122,223,132,188,200,153, 89,110, 55,221, -106, 7, 46, 47,210,212,116,251,253,237,213,171,103,207,159,127,242,197,147,207,158,190,184,184,185, 93,108, 54,211,178,252,227, -239,252,202,191,253,251,191,113,255,193,113, 93,117,216,163, 19,221, 45,239, 30, 63,126,250,252,213,213,237,106, 85, 20,133, 77, -108,126, 52, 34,203,215,203,253,221,213, 13,250,144,177,157,228,169, 49,198, 25, 27,141, 45,157,239, 4, 52,154,146,163,215,197, - 26,131,132,108,209,112,252, 97, 5,133,145, 57, 78, 53, 17, 0,209, 28,166, 86,177,235, 45,136,248, 16, 66,240, 40, 16, 9,220, -150, 73, 15,142,189,131,160, 10, 1, 0, 8, 2, 0, 27,195,135, 79,143, 99, 82,196, 0, 10, 72,142, 98,126, 40, 30,218, 80, 84, -153,169,151,161, 66, 35,222,234,163, 80, 59,100,151, 14,232, 62, 66,178,204, 4,241,165,162,241,134, 8, 73, 69, 35,206,157, 0, - 21,200, 32, 49,178,168, 68,210, 9, 17, 9, 14,229, 18,113, 65,142,238,254,200, 20, 96, 38, 98,246,222, 27, 98, 54, 44, 32,145, -219,111,200,116,160,155,253,190, 76, 56, 73, 19, 64, 52, 76,104,216, 7, 81, 5,254,254,183,127,235,117, 34,126,176,163,196, 91, - 1,145,170,128,128, 6, 69, 30,134, 29,145,252, 30,141, 46,177,158, 53,174,120, 16,121,245,160,136, 28,186,126, 91,135,163, 73, - 17, 66, 79,138,160,200, 76, 56, 36,178,116, 64,169, 35,168, 6, 84, 66, 1, 16,100, 38,213,240,218,124, 4,120,168, 55,229,248, - 79,200, 97, 64, 2, 20,109,137,196,100, 9, 41, 46,165,252,227,222, 34,136,115,200,232,248,161,193,142,142,160,210,251, 94,138, - 73, 49,191,187,219,110,119,163, 81, 57,157, 30, 35, 35, 51, 45,239,238, 22,155,237,199, 31,188,215, 52, 53, 0,116,109,157, 20, -163,245,252,226,201,179,231,211,233,140,135,238, 85,138, 41,143,195, 14,199, 26,185,193,200, 34,158,200, 28, 4,145, 1,130, 29, -111,145, 81,152, 31,198, 83, 26,119,133,161,183, 43, 14, 34,162, 5, 22, 16,196, 15,213,169, 3,194, 41, 38, 33,116,144,190, 98, -171,162, 2,104,196, 26, 0,144, 49,131,122,197, 24,235, 3, 41,150,193,224, 48,209,125,205,210,143,215, 30, 81, 45,103,199,125, -211,253,215,255,201, 63,125,118,113,235, 24,207, 31,190,249, 7,127,248,135, 71,199, 99, 64, 92,205, 87,151,207, 31,177, 77,201, - 96,213,202,231,127,243,195,166,237,166,167,247, 25,196, 36,163, 32,194,132, 32, 1, 66,171,170,228, 70,204, 82,237, 54,219,125, - 99,216,248,102,155,152,222, 32,117, 93,119,183, 88,191,186,157, 55, 93,247,181, 47,253,196,123,239,190,235,235,221,102,187,107, -235,125,211,135, 16,231, 93,132,193, 7,103, 76,146,101, 71,163, 50, 41,202,242,222, 91,249,104, 82,239, 43,155,231,236,251,174, -239,150,203, 27, 34, 35,221,158,147,146, 76,154, 36, 89,104,219,182,109,214,119,207,154,170,106,149, 4,156, 33,234,186,198,165, -105,219,236, 51,203,197,248,204, 22,227, 16,130,209,208, 86,107, 38,108, 61, 42, 39,121, 81,100,229, 12, 84, 54,155, 59,151,228, -108,120,113,253,210,186,196, 38,133, 82,234,209,245,237, 94, 65,141, 49,198, 37, 93,179,245,190, 1,147, 49,193, 59,111,189,107, -157,187,189,124,186, 91,205,235,166,111, 60, 20, 69,142,210, 7,209,188, 56,202,210,194, 88, 86,114,161,111,216,112,154,142,156, -115, 10, 94,124, 64,144,208, 55,108, 18, 54,148,184, 36,177, 73,189, 91, 73,240,125,187,109,118,187,190,109,141, 75, 93, 82,102, -163,227,174,218,140,199,229,126, 53,207, 70, 35,148,110,183,219,121, 47,170, 98,144,231,183, 79,147, 36,203,242,212, 58,103,141, - 77,179,212, 87,107,228, 76,197, 59, 75,251,213, 45, 67,107,210,108,179,186, 35,151,179, 49,251,245, 34,248, 54,205,203,113,145, - 55,109,179,107,186,217,201,121,181,219, 92, 45,174,171, 94, 68,249,104, 50, 99,242,235,237,142,220,136, 56,166,231,237,241,236, -120, 83,135,122,191,122,247,252, 60,132,190,235, 90,162,100,121,251, 34, 73,243,190,171,119,235, 69,215, 52, 77,179,107, 60,122, -117,109,239,133,139, 44, 75, 65,186,229,221,237,179,103,207, 30, 61,123,254,197,243,151,207, 47,175,175,239, 22,125,144,159,255, -198, 87,255,193,191,254, 91,223,248,248,189,182, 15,125,227, 83,206,124,211, 92,190,120,246,217,227,103, 23,183, 75,235,204,135, - 31,189, 55, 57,157, 46, 86,235,201,209,244,118,190,184,184,184,182, 1,139, 52, 97, 67,198,112, 98, 13, 51, 91,230, 78,131,247, - 66,131,191,145,152,140, 25, 58,127,200, 90,195,108, 0,145, 45,199,124, 97,144, 16, 67, 42,170,218,121,111, 14, 69, 55, 74,216, -247, 93, 83, 55,251,182,233, 66, 71, 4,137,115, 81, 43,143,152,222, 24,200, 71, 68,107, 25,200,112,244,106, 3, 34,177, 2,244, - 65, 35,183, 60,210, 24,131,168, 97, 50,200, 67,143, 52,128, 33, 36,192, 88,210,201, 24,185, 35,135,122, 77, 66,195, 38,250,185, -141, 53, 62, 28,170,223, 48,234, 60, 96,136,141, 53, 33, 40, 2, 24,138,227, 80, 31, 67, 99, 52, 24,119, 8, 0, 58,239, 73, 53, - 53, 46, 4, 25,202, 3,105,208, 84, 44,179, 33,238, 85, 64,133,137, 69, 85, 0,182, 85,141, 26, 38,197, 72, 21, 19,142,142, 73, -181,108,124, 8,252,131,239,126, 43,122,183,135,238,150,131,211,218, 24, 22,149,225,155,146,136,147, 63,180,179, 12, 61, 75,135, -209,203,193,140, 14, 72,138,152, 89,186,185, 91,158,204,166, 62,200,208,239, 7,136, 32, 72, 24, 29,131, 3,185, 22,226, 25, 21, -227,138,136,230, 32, 91, 17, 69,206, 17, 17, 50,154, 72,148, 1, 64, 34, 19, 13,164,104,220,129,146,133,170, 66,114,232, 21, 84, - 5, 12, 52,164, 63, 99, 38,106, 24,219,170, 2, 72, 48,104,210,196, 60,123,254,210, 50,149,227,163,178,156, 72, 16, 70,249,155, - 79, 62, 61, 57, 59, 59, 57, 62,174,170,173, 97, 16, 65,151, 48,162,123,255, 75, 95,154,223, 92,186, 36,141,227,202, 56, 18, 21, - 13, 16,123, 38,117, 48,105, 41,136, 14,244, 75,128,173,200,172, 0, 0, 32, 0, 73, 68, 65, 84, 28,180,120,213, 31,251, 63, 15, -173,220, 49,116, 74,177,178, 41, 58, 78, 69, 67, 8,131,123,125,152, 40, 28,176,171,104, 34,225, 32, 26,153,244, 48,133, 29, 30, - 81, 17, 5,101,231,226, 77, 10,145, 68, 34, 33, 42,130,153, 41, 86,197,198,123, 34, 0,177, 53,204,201, 63,251, 47,254,211, 47, -158,223,178,225,163,233,248, 7, 63,248,163, 7,111,157,247,222, 27,107,231,183,171,221,122,149, 56, 91,181,221,252,234, 69,215, -214,105, 94, 48,106,187, 91,128,136,201, 74,245, 29, 0,168,201, 93, 49, 2,245, 64,110, 53,191, 83, 36,107, 83,227,146, 4,118, -132,184,222,237,239, 86,203,139,249, 29, 34,253,194, 55,127,241,104,124,116,125,125,161, 72,190, 23,233,251,166,217,231,105,218, -116, 61, 16,147,250,114, 52, 62,187,247, 48, 25,207,238,191,251, 21,237,154,245,106,233,164,218,111, 46,174,158,127, 54, 62,125, - 47,205, 71,204,216,108,215,213,118,213,119,117,219,110,250, 62, 40,154,186,217,111,154, 58, 77,178, 36,203,178,242,248,120, 58, -157,157, 62, 4, 50, 0,208,110,239,170,205,171,187,139, 79,146,209,125,155, 78,250,174,102, 99, 18,195,187,249, 19,193,132, 56, -169,182,215,104, 12,152,172,111, 26, 85, 96,195,170, 18, 66,111,152, 88,133,161, 69,164, 52,177,173, 15, 93, 31,202, 34, 77, 50, -103, 92,209,212,219,174,107,239, 22,183,130,156,165, 9,155,164,200, 51,237,219,253,234, 34,203,203,174,222,112, 58, 41,203, 73, -232,251,245,234, 42, 47,207, 76, 50, 10,226, 13, 51, 41,116,205,182,107, 43,182,169, 2,180,245, 14, 17, 64,188, 49,174,107, 86, - 77,181, 1,105, 67,219,181,125,125,250,224,109, 8,161,110,234,229,106,238,146, 52, 27, 29, 37,105,102,136, 22, 87,143, 76, 82, - 16,231, 93,187,223,109, 87, 66,220, 53, 77,223,182,251,245, 37, 39,101,154,228,235,249,133, 41, 38, 68,108,172,203,138,113, 57, - 62,242, 93, 85,111, 55,249,248,164,170, 54,251,186, 59, 63,123,243,100, 58, 5,213, 52, 73,218,182,230,180, 72,242,146, 17, 2, - 72,215,123, 32, 59,202,147,197,106, 85,117, 13, 3, 32,187,166,173,109, 90,178,205, 52,248,192, 41,184,124, 84,148,179,217, 40, - 79,161, 24, 77,157,227,174,222,191,124,241,228,241,147,167,143,158,189,122,121,117,115, 49,191, 93,110, 54, 15,239,159,252,251, - 63,248,206,239,255,230,207, 37,137,171,107, 97, 37, 35,184,189,189,121,242,248,209,203,235,219, 77,221, 24, 99,222,124,120,111, - 94, 87,183,119,171,231, 23,183, 87, 23, 87, 55,151,139, 89,150,185,204, 38,214, 18,177, 37,102, 99, 25, 57, 22,245, 24,203, 10, - 64, 64,214, 26,142,166,106,107,172, 49,209, 69, 97,201, 24,182, 42, 24,164,139, 11, 86, 68,220, 34, 19,138, 42,145, 33, 14, 18, - 54,213,110,223, 52,193,139, 53,198, 90,107,136,153, 24, 16, 37, 18, 37,153,163, 47, 17,117,208, 48, 25, 14,233, 65, 0, 59,172, -116,168, 49, 79, 52, 0,147, 95,247, 43, 11, 41,134,161,106, 13, 25, 0, 12,129, 87, 98, 52, 28,215,104,140, 96,253,240,154,236, - 13,128,136,150,216, 48,245, 65, 0,148,129, 16,177,247,109, 80, 53,196,230, 96,175,140,133, 30,135, 92,100,220, 18, 6,110,139, - 10, 26, 66, 71, 40, 72,130, 17, 98, 76,162, 96, 13,175,170, 26,164, 31,231,133, 51, 28,151, 65,107,204, 64,227, 87,229, 31,252, -246,183, 15,116,245, 67,117,211,240,155,215,142, 73, 24, 92,236,116, 96,193, 15, 5, 18,131, 51, 59,118, 86, 0,113,180,191, 24, -182,205,102, 45,156,100,169,197,160, 68, 16, 59, 30, 99, 4, 55,182,199, 17,113,108,126,100,203,100, 45,242,192,153,100,138,161, -252, 67,248,159, 6,147,105,140,201,197,100, 66,252, 98, 98,116, 22, 49, 50,106, 14,205,238, 58,244, 3,195, 1, 76,125,152, 27, - 0, 16, 40, 66, 57, 30,173,238,230,235,109, 53,153, 76,202,201,212, 89,179, 93,174,214,155,237,243,203,139,175,125,244, 37, 17, -239,187, 94,213, 95, 94, 94,119, 77,103,156, 13,193, 75,232,147, 36, 27, 90, 74,134,121,165, 87, 81, 98,139,108, 84, 67,144, 30, -233,192, 13,136,206,246, 67,163,112,196,130, 97, 24,222,187,129,155, 29, 55,234, 56,251, 25,246,212,168,199, 69,139,123,236,118, - 10,177,207, 50, 34,201, 14,118,213, 3,236,126,160, 96, 28,154,203, 7, 7,155, 70,217, 62,186,143, 6, 50,245,176,209,241,255, -244,167,255,226, 47,254,230,211, 60, 75, 70,121,250,123,223,251,254,151,191,254,149, 16,250, 40,121, 61,255,226,145, 71,147, 21, - 37,113,194, 4,168, 52,158,206,216,164, 65,144,217,160,130, 49,182,105,234, 44, 79,153,141,239,234,186,147,106,187,102, 8, 93, -219,168,180, 41,119, 42,176,217, 87,215,243,197,124,181,202,210,244,167,191,242,149,245,106,225, 12,139,248,182,218,214, 85,133, -168, 77,215, 52,109, 75,160, 69,150, 61,120,240,230,248,236,188, 60,126,120,116,122,114,119,249,172,222, 87,109, 91,247,193,142, -166,167, 16,218, 34, 47,250,170,218,110, 86,193,119,213,250,154, 76, 30,175,151,139,213,220, 36, 57,187,164,217, 45,197,119,211, -227, 7,206,154,237,242,234,246,250, 81,215,134,201,244, 76, 20,243,209,108,187,120,185,190,123, 10,210,207, 30,188,239,219, 93, -223,247,228,178, 44,205, 70,163, 73, 93,109,217,164,125, 87,133,122,211,119,123,151,140,130,239, 93, 98,146, 60,183,198, 26, 54, -203,237,174,107, 43, 6,156, 78, 38,162, 90, 76,206,178, 98,162, 96, 22,203, 69, 81, 76,210, 44,203, 29, 21,105,225,202, 83, 5, - 8,193,231, 69,169,253,174,247, 62, 77,143, 52, 52,168, 33,205, 38,136, 18,124, 71, 54, 83, 9,193,183,218,119,100, 12,145,173, - 54,243,208, 53,160,216,117, 93, 94, 28, 73,240, 26, 68,186,110, 49,191, 44,202, 99, 8,181, 49,137, 97,187,223,204,141, 77,146, -114, 86,215,117,239,251,248,137,171,150, 23, 46,201,247,213, 38, 14,103,146,116,172, 38, 95, 47,110, 56,155,156,158,222, 59,187, -119, 30, 39, 79,128,176,218,172, 36,212,231,231,239,118, 77,181, 90, 92, 90,155,142,203,233,120,114, 44,190, 71,164,178,156, 90, - 16, 36, 14,161, 67,228,196, 80,213,246, 77, 91, 23,153, 45,138,114, 52,153, 9, 96,181, 93,148,227,241,108, 54, 62, 61, 26, 29, -207, 38,227,114, 34,190,189,189,122,245,248,241,147, 71,207, 94,188,184,184,121,113,125,125,125,183,200,146,228,219,191,244,205, -127,247, 7,223,122,255,189,243,125,221,169,231,132, 76,187,219, 94,189,120,241,232,201,243,203,187,149,115,238,104, 92,164,227, -209,182,218,255,232,179, 39, 4,186, 89,238, 50, 50,179,233,208,186,227,140, 49,108, 80, 20, 85,137,227,135, 26, 99,163,189,179, -198, 48, 91,107,201,242,161,197,117,104,199,208, 32,160,202, 3,193, 54,146,151,134,106,104,139,216,251,176,111,234,222,247, 65, - 68, 68, 0, 49, 75,210,212, 58,137,235,196, 1, 41, 18,139,165,227, 13,250,245,199, 21,145,216,196, 75,182,202,176,121,136, 57, -184,253, 37, 70, 75,135, 89, 32,171, 70, 81, 97, 64, 60, 50,147, 42, 88, 34,141, 13, 60, 42, 49,193,207, 10, 38, 58,217, 0, 37, - 82, 73, 20,129, 72,188, 71, 34, 27,115, 4, 67,205, 6, 32, 34,115, 76, 90, 33, 1, 24, 99,226,209,119, 56,250, 33,118,170, 7, - 22, 56, 70, 84,194,190,247,117,219, 28,101, 89,154,166,189, 8, 1, 34,129,128,168,130, 97, 19,124,224, 63,248,205,111,197,253, -235,144, 41,138,167,243, 1, 67,127,112,207, 64, 80, 96,203, 24, 65,155,168,116,200,143,198, 62,189, 40, 8,240, 64, 61, 49, 24, -186,213,174,155, 29,149,240, 58, 55, 69,209,120, 66, 0, 74,236, 64,148, 13,177,179, 56,108,145,136, 81,129, 66, 6, 82, 67,116, -104,241, 59,116, 30, 69, 12,127,172, 59, 57, 52,155,162, 53, 3,235,150,245, 80,212, 23,147,165,120,168,143,137, 19,227, 31, 55, -128, 16,242,236,168,124,252,252, 69,150,102, 73,146,168, 74,219,212, 77,219,189,188,184, 60, 61,155,221, 59, 57,174,155,206, 37, -201,244,248,254, 7, 31,190,255,234,197,147,227,211,123, 77,181,117, 46, 67, 54, 68,230, 48,144,143,237,101, 49,162, 27, 34,236, - 69, 68, 94, 95,241, 84, 4, 99,148, 73,135,224,242,161,211, 3, 99,175, 85, 12, 68, 31, 54, 76,198,131, 32, 7,138, 16,157, 76, -175,203,175,225,144,231,138, 79,221,240,131, 14,189,139, 67, 67,109, 84, 6,163,155, 50,234, 69, 58,244,185, 35, 25, 94, 47, 23, -255,235,255,246,103,136, 48,202,242,239,254,238,247,127,226,167,190,222,213,123, 52,198, 26,222,172,182,151, 87,243,190,169,216, -101,160,253,118,117,135, 54, 1, 96, 21,104,234,125, 8,222, 24, 98,194,118,191,207,202,163,182, 90,175,111, 95,125,241,217, 39, - 9, 73,226,146,182, 19,166, 58, 33, 17,212,249,106,121,121, 51,223,236,171,147,217,189,175,125,244, 53, 8,157,120,223,182,253, -174,218, 55,109, 77,210,239,154, 46, 73,146,224,187, 50,203, 78,207, 30,186,172, 72,178,220, 89,187,217,172,211, 81,201, 46,155, -157,157, 23,229, 17,219,164,169,119,190,239, 58,223, 55,251, 61,177, 5, 99,198,105,186,188,125,177,238,188,179, 9,146,113,217, - 52, 31,141, 38,227,178,239, 58, 32, 86, 76,173,177,211,241, 56, 41, 79,119,251,165, 77,199,156, 78,243,114, 98, 73,128,211,174, -221,128,138, 15,221,104, 52, 43, 71,101,215, 53,157,111,109, 82, 26,151,236,182,139, 60,225,209,248,132,236, 40,207, 74, 9,173, -244,161,105, 67,211,213,227, 44,237,170,185,136,220, 61,255,235,241,209, 73, 81, 76,172, 54, 71, 71,179,241,228,212,101, 89,187, -223,136,120,155, 78,250,122,221, 87, 27, 65, 51, 26, 79,219,122,223,181,123,151,228,161,107,128, 12,137, 6, 13,105, 50,234,124, - 31,246, 27, 66,211, 7,223, 54,123, 64,206,242,209,110,117,131,218, 36,217, 8,137,178,172,236,154,221,197,179,191,157, 29,159, -111,183, 87, 68, 54,113, 41, 19,134,190, 75,210,113, 93, 45,167,167, 15,206,223,254,240,228,228, 94, 16,221,237,235,190,239,119, -119,151,187,205,213,241,131, 15,218,106,219,118,117,158,230,117,117,247,226,213,243, 36, 27,167,121, 89,150, 51,155,142,235,253, -122,114,116, 18, 66, 15, 32,198,218,162, 28,135,190,111,170,109,189,189, 61, 61,187, 79,196,198,101, 1,244,236,248,212,186,116, -177,221, 48, 72,154,102,193, 75, 49, 41,239,157,205, 30,156,157,157,156,221, 99,134,197, 98,254,252,217,147,199,207,158, 62,189, -184,120,126,121,253,226,242,122,179,111,126,242, 43,239,253,195, 63,252,246, 47,253,204,199, 72,216,212,193,105,162,190,189,126, -249,226,249,211,103, 23,183,115, 65,252,198, 79,126,213,141,179,166,105,166,167,211,231, 87,183,203,187,149, 19, 28,101, 46,113, - 6, 17, 19,231,172, 49,206, 37,160, 42, 8,214,184,248, 28, 91, 99,162, 12, 97,136, 13,153, 88, 65, 7, 3, 10,230,245,241, 18, -172, 49,131, 96, 0, 16, 84, 29, 27, 2, 6,144,160, 33,136, 4,241,109,223,121,239,227, 85, 54,117, 46,113,238,240,233,163,193, -138,128, 56,244,218, 19, 14,253,124,128,128, 1, 4,144, 88, 84,105,104,187, 70, 80, 96,231, 52, 12,173,161,160,224, 53, 16, 50, -128,144,146, 18,198,211, 23, 32, 26, 70, 64, 22, 13,209,172, 25, 99, 74, 17,171,238, 67, 32, 0, 98,150, 32, 65,188, 7, 73,173, - 99, 4, 17, 80, 85,203,212,123, 79,196,206,186, 78, 85, 1,140, 51,145,225,104,163, 63, 18,177,245, 30, 16, 82,195, 67,118, 22, -212, 88,238, 4,150,219,237, 36, 51, 89, 54, 82,149,196,217, 8, 32, 83, 36, 13,130, 34,125,240,252,135,191,251,237,248,190, 73, - 68,222, 68,219, 59,113,236, 94, 29,176, 38,100, 81, 53, 40, 24,131,136, 2, 10,104,162,232, 28,226,155, 56,212,232,198,115, 53, -130,181,102, 62,191,153, 28, 29,131, 6, 81, 56, 52,196, 68, 11,164,193,104,110, 65, 64, 67,226,195,255,199, 75, 18, 91, 49,232, -128,121, 65, 84,137,199,216,195, 47,209, 46, 21, 45, 74,160, 18, 6, 68,134,247, 49, 25, 12, 7, 62,101,188,135, 28, 80, 49,113, - 23, 16, 16, 0,145, 81, 57,237,219,237,245,205, 93,146, 56, 85, 77,179,180,111,170,187,249,250,242,246,238,167,190,246, 85, 32, -232,218,150, 49, 60,255,226,147,203,235,219,122,183,217,108,119, 69,158,255,184, 60,133, 92, 44,126, 29, 26,248,208, 2,138, 72, -136,186,147,198,150,238,193,213, 24,221, 61,170,234,163,206, 18,131,176, 67,233,214, 1,230, 14, 12, 3,170, 95,227,225, 29,241, -128,148, 4, 80, 54, 60, 64, 49, 7, 88,177,192,224, 11, 26, 12, 53, 26,194,192, 28,230,215,205,170,138,248,186,205,137,216,240, -237,213,237,223,252,237,143,136,248, 87,126,237, 91,127,247,231,191,217,247, 13, 18,154, 36, 17,145, 39,159, 63,218, 46,111, 5, - 96,179,184,105,235,166,239, 90, 81, 34,196, 52,115,203,171, 47, 76, 82, 78,142,143,234,170, 85,105,187,253,220,229,147,166, 15, - 10,249,236,228,158, 7, 22, 47,133,217, 17, 97,215,201,221, 98,253,242,102, 94,183,205,195, 7,111,190,117,239,172,235, 58,100, - 27,124, 95,237,183,109, 83, 19, 64,143,132,170,229,168, 44,203,201,244,244, 28,109,225,194, 58, 29,159,109, 87, 55,167,247, 30, -134,206,223, 62,251,171,151, 95,252,249,189,251,111, 52,213,174, 44,103,218,215,161,235, 20,160,239,218,197,221,213,203,139,231, - 94,237,131,123, 15, 70, 69,202,218,228,229,172,173, 42,129,158,217, 54,213, 38, 31,157,236, 86,215, 77,223,113, 50,217,220, 60, -117, 89, 62, 57,126, 3, 84,140, 43, 64,177,109, 43,147,230, 68,230,254,253,115,214,253,100,246, 16,161,239,118,119,163, 98, 60, -155, 78,181,223,153, 36,239,234,141,111,171,229,102, 21,218, 93,221,245,179,163,179,227,179,119,146, 36,105,235,157,177,110, 60, - 26, 49,145,146, 77,211, 12, 0, 60,154,106,241,220,165,153, 49, 41,105,151,141, 79,247,139,151,168,106,146, 12, 85, 66,232, 21, -116,113,249,169, 15,208, 84, 75, 13,253,118,117,195,164,214,168,117,133,138,110, 55,243,163,233,244,141, 55, 63, 32, 20,103,205, -102,179, 16,118,132,218,181,155,122,187, 20, 98,239,187, 80,111,202,147,115, 0,173,119, 43,146, 78,208, 46,239, 46,119,171,235, -213,234,110,114,250, 70,223,110,130,130,181,185, 49, 69,219,238, 63,127,244, 23,219,170,125,239,173,183, 31,188,241,209,100,118, - 38,161,239, 85, 19,151, 2, 26,237,219, 44,205,215,183, 47, 39,227,113,121,124,111,183, 89,216,108,116,122,114, 58,155,157, 24, -245, 0, 48,153,204, 78,143, 38,138,188,173, 26, 7,253,217,195,123,111,191,249,230,195,135,111,102, 69,178,223, 44,175, 46, 95, - 61,126,244,248,233,171, 87, 47, 46,111, 94, 94,223, 92,223, 45, 38,163,209, 63,250,227,111,253, 27,191,243,171,229, 56,173, 91, -207,144,164,236,182,203,187,167, 95, 60,122,241,242,114,185,171, 69,225,171, 95,251,224,229,124,254, 87, 63,252,188,105,154, 79, - 30, 61,219,221,174,143,203,130,153,172, 97, 34, 74,216, 58,231, 6,179, 47, 17, 33,117,190, 87, 84,195, 73, 16, 65, 34,107, 88, - 99,245, 28, 33, 32, 3,200,161, 18, 71, 45,177,130,118,189,143, 90, 8, 17, 90,107, 53,168,130,116,226, 9,145,145,154,206, 99, - 36,164, 17,102,214, 26,155, 96,180,178, 16,115,140,215, 28,212, 21, 26, 18,148,132, 12,160, 40, 67,185,160, 6, 0, 81, 37,160, -196,216,168,142, 10, 40, 33,116, 33,136, 4, 71, 36,224, 9, 45, 18, 58, 98,195,236, 44,130, 66, 8, 18,107,146,189, 6, 6, 74, -152, 84, 99,219, 21, 56, 54, 68, 20, 65,243,134,153,145, 68,196, 11, 88, 67,196, 70, 84,152, 25,141, 9, 33, 48, 98, 98, 18,249, -127,153,122,179,103,203,142,236, 62,111, 13,153,185,167, 51,221,177, 6, 20, 80, 0, 26, 13,160, 7,116,183, 40, 54, 37, 14, 10, -201, 18, 29,164, 56,216, 17,166,104, 59,252,234,255,208,225,240,155, 34,252,100,217, 50,229,166,200, 22,155, 24, 10, 53,221,186, -243, 61,243, 30, 51,115, 45, 63,228, 62,213,122, 7,112, 7,220,147, 59,247, 90,191,223,247, 73, 76,168, 26, 29,187,164,106,152, - 83, 41,247, 64, 14, 68, 17,216,116,157, 37,200,179,140, 12,147, 65,241,170, 32, 12,160,162,117,219,108,247,219, 77,189,231,127, -247, 23,127,146,252,168,135,209, 59,192, 24, 55, 5, 68, 18, 64,147, 16, 56,156,202, 99, 74,192,200, 25, 2,141, 92,203,228, 90, - 5,148,244, 48, 74, 86, 82,231,250,122, 11, 38,207, 51, 55,174, 8, 5, 0,129, 71,156,142, 32, 34, 72, 42,108, 9, 64, 42, 25, -167,253,199,251,170,234,136, 0, 58, 16, 27, 70, 66,228,248,134, 53, 22,167, 34,170, 2,241,193,221,174,227, 18, 24, 21,198,218, - 50,235, 56,190, 80, 68,212, 8, 74,168,128,199,179,233,215,223,124, 29,130,100,206, 16,114, 94, 21, 97,240, 47, 95,191, 93,204, - 22,159, 60,127, 90,215, 53, 25,227,108,241,241,103, 95,236, 55,155, 79, 63,251,210,247, 59, 69,103, 51, 99, 48, 83, 0, 69, 25, - 21, 39, 48, 74,175, 8, 14,214, 85, 5, 80,136, 49, 34, 1, 27, 11,170, 81, 69,199, 27,252,104, 23, 79, 75,215,177,152,155,214, -172,152,160, 78,227,221, 28, 68,254, 43, 87,227, 97,179,125, 88,150, 38,194,103,138, 27,169,104,148, 40, 49,166,226,243,136, 28, - 74,255,145, 68, 17, 86,181,198,190,125,251,250,155,111, 95,253,193,239,255,139,127,245,111,254, 77, 84, 65, 99,216, 57, 67,124, -253,246,178,222,183,138,174,107,234,147,197,162,243, 49,175,230,132,232, 44,117,125, 31,169,156, 45, 78,124,187,247, 81,200, 85, -128, 90, 78, 38,131,151,186,222, 90,107, 64, 66, 89,229, 20, 55, 10, 80,119,237,122,187,191,184,185, 29, 6,255,249,167,159, 63, -127,254, 67, 91, 78,194,224, 55,235,187,213,106,237, 24,250,126,104,135,222,104,152, 77,138,147,211, 71, 92,205,170,227,167,103, -207, 62, 86,206,182,155,141,181, 60,244,245,195,237,109,164,220, 49,182,109, 80,245,155,187, 11, 5,112,214,181,219,135,227,211, -199,189, 72,136, 48,248,206, 48, 31,159, 63,183,206,246,187, 59,223, 53,189, 80,221,180, 0,144, 21, 83, 32,163,125, 93, 44,206, - 44,219,161, 94,245,237, 46, 43,202,233,108,230,242, 89,223,183,253,208,179,106, 8,126,122,244,216,119,117, 84, 42,170,133, 97, -210,216,102,249,196,247,251,205,234, 1,108, 33,161,141,209,159,159,157,151,153,217,174,110, 92, 94,246, 98,183,155,165,111,119, -200, 6, 66,223,236, 86, 68,198,229, 19,178, 5,147,176, 45,218,253, 78,165, 39,240,214,150, 93,179, 55,196,132,152,151,115, 16, - 13, 94,117,216, 77, 23,231,156, 21, 49,224,110,191, 11,190,151,232,141, 49,195,208, 0,242,208, 53,109,235, 11, 75, 69, 53,207, -178, 25,185,178,170,166,211,217,236,163,207,126, 84, 77,102,155,219,183, 93,239,183,155,123,203,220,135, 48,120,232,251,206,154, -220,229,211,217,241,179,161,221,223, 94,127,183,235,250,179,211,231,103, 71,167, 38, 63,218,181,221,102,181,172,119, 43,178,133, -115,153,205,178, 42,175, 86,219, 37,114,126,118,250,132,136,130, 42,155, 92,163,223,173, 87,235,213,125,223,249, 8, 88,230,110, - 90,230,199,199,103, 79, 63,120,242,232,209, 7,243,249,194,119,205,221,205,213,139, 87,223,191,124,245,246,237,213,237,235,235, -219,183,151, 87,253,224,159, 61,126,242,199,191,252,197, 31,254,242,231, 94,124, 8,228,208, 73, 59, 92,189,125,251,205,183,223, - 61,172,182,221,224, 63,125,254, 88,156,121,121,113,121,117,117,155,229,238,230,234, 62, 83, 56,153, 20,150,153,152,173, 97, 75, - 6,153,137,108,250, 96, 39,190, 13, 19, 19,179,106, 52,132,200, 12,154,210,144,134, 64, 37,213,212, 85, 12, 49, 32,121, 80, 66, - 50,204,227, 4, 87, 85, 37, 42, 68, 64,204,173, 81, 64, 1,165, 17, 11,128,185,201,157,179,214, 26,235, 44, 34,229,228, 84,132, - 14,194, 35, 58,228, 50, 12,145, 70, 21, 81, 68, 37, 36, 1, 32, 66, 75,156, 78,163,144,116, 69,160, 0, 96,144,152, 12, 18,138, - 82, 26, 49, 41, 34, 51,119,189,104, 66,149, 13,130,160,233,243,153, 52,211,227, 53, 53,173,204, 64,211,180, 39,205, 68,172, 49, -233, 13,132,145,162, 66,136, 65, 14,212,202, 52,231, 53,144, 30, 57, 41, 46, 1,137, 70,158,200, 35, 64,184,169,251,190,239,231, - 85, 97,152, 17, 73,125, 96,147,188,161,184,218,239, 55,251,205,122,183,111,187,134,255,135, 63,251,147, 67, 34, 18, 1, 71, 48, - 91, 66,190, 24, 74,123,206,180,166, 78, 45, 87, 68,148,244, 32, 56,164,134,104,228, 66,224, 88,209,213,177, 81, 6,251,122,168, - 38,249,248, 67, 18, 34,144, 25, 1,149, 4,227,253,245, 32,113, 4, 24,175,196,160,168, 17, 33, 77,227, 70, 52,114, 58,167, 84, -133,152,101,252,245,164, 84,119, 2,190,167, 45,132, 42,200,193,130,141, 35, 58,158, 16, 0,216, 56, 56,184,160,210,228,198,230, - 25,144,124,255,234, 77,150,101, 69, 89, 90,147,101,214,108,182,155,191,255,230,219,175,190,248,225,164,116,237, 16,172,225, 52, -237,123,120,184,123, 88,173,102,211,105,230, 10,197,212,161, 72,125, 8,129,131, 94, 35,173, 55,211,130, 27, 17,137, 12,105, 50, -252,193,225,189,227,253,100,133, 0, 1, 12,130, 38,242,196,168, 69, 75,153,200, 49,131, 68, 4,170,200,137,237,132,128, 48, 34, -146,198,249, 89,210, 2,142,163, 68, 69,192,209,214, 50, 38, 4,128, 8,146, 24, 88, 1, 80,152,248,197,247,175,143, 23,143,255, -244,207,255,148, 45, 3, 17, 51, 35, 83,223,118, 87,239, 46, 23,199, 39,119,183,247,125,187,250,193,231, 63,174,219,160,128,195, -208,171,234,208,181, 22, 21,213, 15,221, 16, 66,239,187,214,218, 60, 10,109, 55, 75, 29,246, 89, 49,171,102,139, 34,135,216,174, -217,152,221,126,183,220,108,174,238,151,170,250,139,159,254,211,199,103, 79, 7,223,214,187,205,102,121, 39, 34, 26,251,186,235, -141,181,179,201,164,112,110,186, 56,143,100, 22,231,207,142,142,142,124,223, 65, 12, 93,179,223, 45, 47,118,203,155,143,127,252, -207, 23,199,167,171,187,119, 26,134,253,234,166,143,210,246,253,102,125,179,223,111, 87,155, 77, 81, 86, 97,104, 2, 58,235,178, -197,116, 22,251,102,241,232,147, 44,203, 49,246,211,163,147, 16, 36,170, 84,197, 12, 1, 44,103,217,100,182,123,184,152,206,143, -129, 12,129,196, 40, 67,187,129, 56, 68, 25,124,215, 45,183,235,161,169, 21,197, 16,102, 89, 25, 1, 50,151, 5,112,109,219,238, -214, 55,121, 86,181,190, 47,157, 45, 38, 71,119,247, 15,117,211, 40,186,188, 58, 46,203,201,236,248,188,154,158, 9,168,247, 61, - 19,205,102,199, 97,216,185,172,232,219,218, 7, 49,108, 11, 87,245,125,167, 18,235,229, 69, 91,239,145,217,185,140,216,118,245, -206,251, 96, 13,117,221,214,152,140, 80, 44,179, 72,172,251,190,221,109, 84, 37,207,171, 68, 61, 59, 62,121, 82,175,111,145,200, -102,230, 97,185,105,218,126,126,242,172,109, 59, 78,122, 0,180, 26, 98, 91,175,186,250,110,187, 93,101, 89,254,225,135, 63,154, - 85, 89,140,254,225,246,117,211,108,157, 53, 89, 94,197,126, 31,194,112,124,114,158,151, 69,215, 13,147,217, 98, 8, 97,185,126, -120,184,125, 91,148,165,203, 51, 47, 60,132,216, 7,145, 56, 24, 67,121,145, 63,253,232,217,249,227, 39,168,113,249,112,245,250, -237,235,151, 47,223,188,185,190,121,123,125,243,250,242,234,110,249,112,122,116,242,187, 63,253,234,139,207,190,140, 17,203,172, - 60, 61,153, 59, 50,119, 23, 23, 47,191,123,241,246,221,181, 34,127,254,213, 15,215,117, 61, 95, 76, 77,158,221,220, 47, 87,203, - 13,251,120, 84,102,165,203,210,238, 46,203,220, 1, 50,136, 68,192,168, 81, 4,223,135, 33, 18, 92, 22, 49,130, 18, 96, 84, 61, -128,124,213,164,138,203,184,167, 2,140, 96,172, 51,198, 28,154,149,169,235, 65,201,192, 71,233,211, 71, 88,228, 5, 91,118,214, -102,153,115,200,201, 91,103,136,152, 44,170, 26, 75,150, 9, 0,153,204,123, 47,133,104, 28, 13,219,204, 56, 90,244,200,164,172, -164, 2,130,228,198, 33,113,194,183, 35, 49,211,104, 15, 70, 5,229,132,116, 5, 50, 22, 70,236, 45, 90, 54,140,232,131, 39, 0, - 99, 44, 38,236,235,120,147, 29,233, 52,134, 13, 16,137, 72,221,117, 93,187,207,156, 99,230,204, 90, 0,140, 81, 12, 39,234, 34, -190, 87, 83, 37, 48, 78, 27,124,221,118,103,243, 50, 47,138,180,137, 77,150,187, 40,178,239,250,205,190,222,215,251, 56, 12, 65, - 35,255,187, 63,255,211,241,218, 56,166, 9,255,171,246,227, 72, 20,131,247, 40,104, 69, 96, 72,225, 63,144, 16, 14, 25,110, 76, -160, 8, 56,172, 12, 85,208, 24, 83,215,245,100, 90,141, 10,240,196, 45, 75, 14, 57, 66, 64, 58, 12,150,113,188,203,167, 57, 22, - 49,162, 27,127,126, 6, 68, 78,194,115, 28, 99, 56,233, 64, 23, 98, 66,228, 20, 65,132, 20, 95, 81, 85, 76,111, 67,105, 76, 13, -136, 33, 6,161,180,154,228,241, 75,160, 10,136, 34,193,249,241,249,219,139,183,171,237,126, 81,149,200,100, 93,150, 59,247,230, -205,197,221,122,253,187, 63,249,188,109,107, 69, 26,252,176, 56, 57,186,189,190,121,254,131, 47, 99,223, 8, 17, 36,100, 68,194, - 92, 38, 43, 0,142,253,223, 4, 84, 96, 99, 83,117,130, 76,242, 64, 81, 28,151, 30,169, 3, 6, 73,141, 64, 7, 90,100, 74,181, -211,104,161, 73,220,152,241, 57,154,222, 65, 40, 13, 30,199, 16,234,184,203, 24,171,124, 35,131, 51, 33,135, 70,112, 77,218, 81, - 31,182,222, 8, 4, 68,166,222,117,191,243,123,191, 55, 89, 76,131, 15,204, 35, 28,170,217,181, 89, 81,174,238,239,111,111,239, -209,111,206,206, 31, 63, 60, 44,251,253,154, 9,201,228,182,156,247,205,150,108, 53,180,141, 43, 23, 38, 43,135,253,109,223,134, -188,156,160,223, 71,229,163,163, 83, 24,214, 32, 67, 20,169,235,250,254, 97,115,179,220,186,194,253,225, 31,252,183, 89,238,118, -203,155,174,105,251,208,151, 25, 55, 77, 61,248, 88,101,206,102, 89,225,220,226,217,231, 89, 81,157,127,240,241,205,155,191,191, -124,245, 93, 49, 63,190,191,126,125,242,209,143,207,159,252, 32, 52,155,245,195,178,105,246, 57,161,168, 70, 69,107, 76, 49, 61, - 82, 68, 36, 27, 3,228,213, 60,207,167,190,217,108, 86,183, 15, 87, 47,242,106, 26, 68,251,174,111,246,251,190,219, 78,170,249, -180,154,222, 93,252, 23, 0,217,238, 86,157,200,209,100, 54, 59,125,186,188,187, 88,223, 95, 14, 96,145, 96,115,127,189,107,187, - 97,240, 81,168,235,118, 40,218,181,195,106,187,235,186,246,225,246,229,116, 50, 3,155, 1,178, 70, 49, 54, 91,175,111, 55,235, -251,232, 91,131, 66,232,155,245, 77, 86, 30,229,153,105,235,173,205,171,140,194,180, 42,171,197,153, 10,100,174, 42, 38,243, 40, -178,186,255,222, 15,131,115, 19, 69, 36,104,153,108, 89, 76, 9,218,135,235,215, 67, 80, 84,241,205, 54,115,166,243,177,221,175, -212, 22,245,182,137,177,101,227,234,205, 77, 62, 89, 52,237, 54,170,134, 24,251,193,159, 61,250,168,217,173,139,201,209,253,245, -139,213,102,229,178,242,233,135,159,116,251,245,253,253,187,205,230, 22,221,241,147, 39, 31,230,229,148, 68,135,126, 91, 55,219, - 8,236,125, 91,229,213,252,209,179, 73, 53, 87,239,207,158,126, 24,129,138,172,152,205, 23,125, 0, 97,103, 93, 37,160,150,134, -188, 60,106,187,122,182, 56, 58, 57, 63,126,246,236,163,199, 31,126, 92, 77,202,122,179,126,119,241,253,247,175,222,188,185,190, -121,115,121,249,230,242,250,230,238, 33, 70,253,201,151,191,248, 23,191,247, 47, 28, 75,110,244,151, 95,125,254,195,231,143,219, -245,246,213,119, 47, 94,127,255,250,122,185,153,205,170,127,242,207,127,246,245,155,139,111,191,125,117,118, 60,249,213,111, 94, -172,110,151,199,101, 81,230, 89, 10,163, 59,147,201, 33,174,203,204,108,141, 15, 67,140, 99, 80, 46,117,188, 1, 65, 5, 36, 66, -154,144, 91,226, 24, 34, 1, 58,107, 67,140,138, 96,137,162,168, 50,218,204,129,136,128,250, 24,172, 49, 10,154,186, 69,227, 46, -139,216, 75, 44,217, 36, 82, 84,102, 50, 85, 53,136, 25,155,241,109,254,240,154,155, 4,152,152, 8,143,160, 33, 2, 18,100,196, - 10,202, 72,170,234,172, 9,193, 7, 81, 4,204,152,153,115, 81, 32, 67,233, 80, 78, 3,109, 83, 24, 0, 12, 49, 50,106, 82, 82, - 3, 74, 58,109, 19, 62, 61, 72,204,172,179, 89, 6,136, 42,145,153,135, 40,168, 33,165, 76,210,117,207, 56,142, 81,125,240, 17, - 33, 55, 92,230,153,143, 35, 99, 39,168, 58,102, 99, 40, 42, 26, 70, 85, 32, 85, 5, 92, 53,221,204,217,201,180, 12, 49,186,204, -132, 56,178, 15, 85,213, 71,108,246, 91, 31, 98,148, 8, 72,252, 87,127,254,167, 7, 68, 60,143,244,153,145, 14, 60, 6, 33, 49, -165,191,117,204,164, 96,194,249, 80,218, 48,143, 39, 84, 34, 38,164, 71,115, 34,144,145,225,126,223,230,147, 10, 15, 39,141, 25, -195,149, 64,108,136, 9,148, 49, 9,189,198,103, 58, 32, 25, 68, 98, 96,132,120,120,202, 29, 68, 80, 32,122,232,112, 18, 51,162, - 69,144, 52,196, 7, 80,128, 0, 35,246,126, 84,161, 35, 25, 72,140,211, 49,156, 41,160, 49,221,241, 1,149,152, 92,158,205, 38, -249,111,190,249, 94,149,170,162, 96, 99,138,162, 84,141,223,190,120,125,122,118,252,244,252,184,233,189, 97,242,195,176, 94,222, -159, 62,122,210, 15,251,182,238,202,178, 34, 54,170, 17,198,237,121,210,193, 88, 78,194,166,131,210,230,112,177, 38, 29,211,158, -116,128, 65,194, 40,242,195,131,107, 27,136, 8, 71, 76, 95,178,187, 38,151, 12,198,180, 75,103, 51, 18, 51,222,255, 43, 18,149, - 82,229, 10, 17, 64,131, 31, 66,223,131, 10, 25, 51, 90, 68,198,117,117,250,147, 39,145, 48,155, 29, 29,157, 28, 69,145,195,151, -100, 31,212,119, 67,223,245,109, 59,108,183,235,201,236,100,113,250,248, 97,249, 0, 50,100,249, 28,137,134,253, 10,136, 53,122, - 59,153, 91,151, 73,191,182, 89,161, 18, 92, 89,109,182,251,114, 50, 49,121,134,195, 61, 34, 72,148, 93,221,220, 60,172,238, 54, -235,170,112, 95,125,252,201,126,223,248, 24,246,219,165,116,173,250,118,185,221, 89,107,202, 44,155, 20,213,252,248,177, 43,203, -217,226,241,252,120,190,186,191,158, 28,127, 80,228,217,246,225,134,144,135,122,181,190,254, 46,198,193, 50,237, 86, 55, 18,227, -230,225,214, 58,151, 25,123,127,127,179,223,239, 98,191,173, 38, 39, 97, 24,188,175,149,221,244,232,131,174,151,253,102,211,119, -117,189, 91, 91,227, 34, 64,219,172, 78,206,158, 14, 2,235,221,254,252,236,195,190,107, 86,203,235,229,195,109, 47,248,228,252, -113,145, 79,235,118, 87, 84, 39,170,169, 88,238,163,170, 32,169,104, 93,111, 38,213,121,179,122,141,106,216, 24, 17,105,247, 91, -166,124,126,242,216,216, 10, 81,179,172, 98, 87,214,155,229,166,174,187,253,125, 89, 20, 69, 94,216,188, 2, 50,251,205,114,232, -118, 97,104,171,201,145,239, 58, 87,204, 8,177, 40,178, 97,123, 71, 38,219,238,119,147,233,162,109, 26,182,134,137,156, 43,134, -208, 51,185, 65,176, 94,221, 12,190, 63,121,244,145, 12,237,110,191,114, 89,193,202,189, 31, 92, 54, 53, 89,185, 90, 61, 72,104, -167,211, 69, 94,206, 78,206, 63,144,161,182, 89,217,183,203,109,189, 63, 61,255,228,236,236,233,126,191,181, 54, 43,171,106,104, -183,138, 86, 8,202, 98,102,179,114, 49,155,123, 95, 43, 21, 67,183,235,219,166,154,206, 65, 6, 17,241,125,235,235, 7,180,147, -106,122, 52, 57, 57, 45,139,252,228,100,250,225, 71, 31, 45,206,206, 32,134,219,171,139,239, 95,124,247,234,245,187,139,187,251, - 87, 23,151, 23,215, 55, 77, 55,156,159, 61,254,215,127,244,199,159,127,244, 60, 2, 60, 61,157,253,254, 87,159,157,205,171,183, -175, 95,125,253,155,255,114,125,125,223,133,240,201,103, 31,238,218,250, 63,255,227,247,125,221, 54,237,240,230,205, 37,133,112, - 50, 41, 28, 17,168, 88, 68,203, 14,205,225, 69,214, 82,138,160,140,204, 40, 70,133,180,183,132, 40,170, 10,198, 88, 0, 13, 49, - 13, 53, 81, 17,188,143,204,134, 9, 85,200, 48, 51, 64, 12, 33,142, 46,108,151,182,116, 74,144, 66, 30, 62, 68, 69,200,152,189, -168, 49, 92,216, 76, 53, 58, 54,200,172,196, 65, 4, 37, 57,130, 88, 1,162, 68,107,205,104,186, 84,201,140,179,198,248, 16, 17, -208, 16, 42, 81,136, 33, 72, 66, 54,242,216,225, 33, 36, 70,102,210,195,150,111,220, 19, 24,134,145,236,146, 98,142,105, 15, 7, - 2, 80,102,185,205, 93, 94, 84,128, 22, 16, 36, 70, 6,100, 99,199,135, 27,179,177, 38,105, 35,152,168,112,206,101,101, 72, 78, - 78, 54, 42,154, 91, 55,120,159,124,223, 18, 53,133,248,214, 93,144,232, 23, 85,158,248, 57,162,239,191, 25, 96,131, 81,177, 31, -122, 4,224,148,156,255,235,191,252,183, 48, 66,192, 18,138, 65, 15, 71,234,120,118,170,106,140, 81, 52,140,249, 34, 64,136, 99, - 70, 5, 14,233, 78, 60,248,130, 82, 47, 33,169,162,131, 31,216,100,206,216,180,234,102,164,131,176, 15, 65, 21, 36,226, 24, 97, - 76,255,166, 2, 33,168, 36, 64, 29, 28,190,246, 8,149, 4, 56,132,229,211, 64, 71, 65,131,168, 0,202, 1,153,158,126,171,114, -120, 41, 72,131,154,136, 2,233,112, 71, 72, 53, 49, 64,102, 85,145,224, 79,142, 78,114,166,111, 94,189,158,148,165,203, 50, 99, - 76,158,231,251,221,238,242,250,238,171, 31,253,144, 20,163,234,208, 15,179,227,243,182,217,159,156,158, 53,187,157,201,114, 38, -107, 83,183,246, 16, 20,125, 79, 25, 75, 98,190,164,141, 79,223, 4,211,248, 72, 76, 40,249,145,134,193, 60,190, 11, 37,134,251, -200,204,193,145, 91,150,126,139,214,164, 27,191,190,103,248,188, 55, 57,209, 97, 72, 3, 16,250, 62,246,173,134,160,209, 35, 25, - 54, 38,133,159, 96,188,227,143, 15,148,162, 58,178, 69,201,198,176,225,100,140,173,183, 77, 12,131,181, 38,203,236,229,235,239, -103,179,249,226,244,108,185,220, 16,103,170, 34,190, 33, 54,160,193,119,141,155,156,128, 12,125,239, 53, 34, 50,213,219, 61,162, - 56,134,161,109,202, 66,178,188,100,196,205,102,243,230,242,122,187,171,159, 60,254,240,231, 95,253,158, 40, 72, 28,186, 97,224, - 24,119,155,101,219, 5, 16,157, 85, 89,158, 87,166,152, 77,230,199,199, 79,158, 79,166,199,235,213, 3, 57,135,104,194, 16, 46, -223,126,123,114,122, 82, 76,142,234,237,122,119,119, 25,135,166, 42,103,117,219,116,125,215,238,238, 55,251,125, 86,206,250,118, - 11, 26,178,162, 90, 28,159, 75,236,235,122,231,187,218,135,110,126,116,154, 87,199, 97,232, 0,141, 69, 1,140, 26,112, 58,153, -150, 69,222, 12,190,217,109,192,100,236,166,177,190, 93,156, 60, 65, 91, 52,251,181, 69,201,108, 54,116, 77,215, 53, 16, 35,146, - 9,125,167, 42,157, 15, 89, 54, 1,245, 72, 56,153, 31, 3, 6, 84, 30,154,181,130, 26, 54,108,172,250,193, 71,248,228,211, 47, - 17,176,235, 58, 68,246, 93,227, 92,214,245,173,115, 25, 33,251, 24,172,201, 13, 82,232,183,213,244, 52, 43, 38, 15,203,107,231, -242,217,226,108,187,186,217,172,215,196,204,198,169,120, 33,203,100, 38,139, 99, 12,221,118,191,158, 78,143,137,140,205, 75,203, -108,160,167,172,106,246, 91, 37, 12, 62,174, 55,247, 97,104, 95,190,252,135,135,219,139,199, 79, 62,250,252,203,223, 25,250,166, -235,187,106, 50,233,247,235,162,156,180,205,154,171, 5, 71, 79,164, 69, 81, 20, 60, 24,138,197,226,241,126,179,100,195, 39,103, - 79, 84,251, 32, 28, 99,104,234, 77, 94,150,147,197,113,206,254,236,209,201,249,227, 15,141,165,229,213,187,183,175,191,255,238, -197,183,175, 47,175,222,222, 92,191,186,188,186,186,187, 43,179,252,151, 95,253,211, 95,252,228, 39,243,217,145,133,250,159,124, -241,244,203,143,206,187,186,249,246,235,175,191,125,241, 34, 42,126,242,197, 15,214, 77, 93, 84,101, 57,157, 92,221, 60, 60,220, -222,231,140,199, 85,153, 49, 29, 90,143, 68, 72,100,216, 36,186, 10,130, 4, 1,196,164, 10,138,160, 73,228, 60, 58,162,210, 77, - 77,100, 4,188,140, 66,202,247,231,195,216,239, 9,170, 2,106,198, 15,214,120,158,190, 23,235, 16, 17, 33, 43, 98,198,233, 4, - 23,102, 70,226,168,128,168,140,144,156, 27, 99,141, 39, 25, 38, 84,152, 77, 18, 95, 70,137,105,208,170,105,247, 58,222,149,212, -144, 49,196, 52,150,196, 33,140,142, 76, 74, 53,207,132, 27, 73,233, 13,102, 78, 37, 85, 17,136,170,150, 8,152,156, 43, 50,103, -201,152, 97,240,233,106, 28, 37,240,225,205, 28, 1,173,115,198, 24, 66, 18, 68,203, 12,196,168,104,153,104,132, 24, 35, 18,129, - 40, 32, 50, 99,237, 67,221,119,199,101,110, 76,218,100,164, 94, 46, 41, 0, 27, 84, 33, 67,168, 64, 33,120,199,108,152,249,175, -254,226, 79,199, 80,185,142,237, 71,122,143,183, 5, 56,232,132,198,124, 17, 41,176, 65,100, 30,140,205,130,156, 0, 0, 32, 0, - 73, 68, 65, 84,169, 91,122,200,202,143,128, 8, 2, 68, 54,227, 52, 95, 69,122, 31,167, 69, 38, 99,153,115, 44,201,210,129,212, -131,230,125, 1, 85, 19, 32, 14, 36, 97,126, 14, 97,168,145,233,169,233,107,165,104, 57,168,130,160,136, 79,192,156, 20, 38, 7, - 9,240,219,160,108, 50, 46, 50,140,169,126, 69, 76,240,160, 3,181, 18, 0, 81, 67, 8, 39,103,243,251,251,135,229,166,153, 79, -166,108,172,181,156,187,236,155, 23,175, 0,233, 71, 63,124,222,116,157,181,110, 58,155, 94, 93,188, 2,180,170, 61,129, 49,185, - 69,193, 0,202, 68, 34, 2, 64,196, 12,140, 32,169,113,108, 0, 85, 98, 24,105,198, 35, 26,159, 71,149,251,161,125, 52,150, 7, -198,191,108, 26,191,201,180,109, 56,120, 10, 14, 30, 1, 60, 44, 20,128,153, 15,170, 62, 52, 8, 49,138,138,104,240, 49, 6, 98, -195, 89,110,141,211,180,124, 57, 64,233,137, 16, 20,109, 86,186,204, 0, 8,168, 18,225,126,189, 75,127,227,229,164,106,235,250, -230,118,125,114,254,216, 49,222,190,123,197, 54,247,125, 27, 99, 4,204,141, 97, 53,133, 97,146,110,131,156, 1,128, 53,212, 52, -245,217,227,103, 81,201, 55, 43,199, 1, 1,135,182,189,186,127,184,190,189,223,181,245,143, 63,251,242,209,249,163,221,110,139, -174,240,125, 19,187,102,187,221,228,121,110, 29,206,139,130, 92, 57,127,250,217,217,135, 31,151, 85,209,245,245,126,179,137, 10, -177,223, 7, 69, 85,115,114,124,214,109,238,114,151,147, 14,165,203,135, 97,120, 88,221, 21,174,128,232,149,179,114,178,152, 45, - 30, 25, 91, 0, 42, 35, 34, 80, 16,218,110,239, 93, 81, 89,223, 32, 64, 49, 61, 65,130, 42,207,200, 77,216,229,161,190,119,229, - 68, 20, 30,238,223,176,155,176, 49,251,253,110,177, 56,137,210, 27,147, 5,145,174,175,125,240,174,152,135, 40,195, 16, 66,232, -156, 5,118,153,113, 69, 86, 77, 12,130, 53, 78, 40, 35, 67,108,216, 16, 26, 82,102, 14,126,200,138,178, 44, 74, 0,174,155,186, -219, 47,183,155,155,197,124,214,111,215,213,228,168,217, 45,157,171, 50,107, 1, 99,223,213, 2,209,217,172,107,118, 89,230, 10, -147, 33,241,124,126, 26, 37, 56, 54,193,119,179,217,162, 44, 43, 25,134,174,111,144,204,110,117, 99, 45, 17,179,201,139,251,235, - 55,139,179,143, 89,181,110, 6, 8, 91,138,253,197,245, 53,101,139,143,158,126, 32, 67,187,218,110,119,219,141,198, 33, 4,143, - 26, 39,211,227,160, 24, 1, 89,177,152, 28,125,252,201,199,177,175,129,109, 57, 59,217,173,239,212,247,100, 41, 47,231,168,222, -123, 63,157, 45,206,159,156,159,206,167,103,143,158,148,121,213,213,155,203, 55, 47,190,123,241,221,155,119,151,111,111,110, 94, - 95, 94, 93,222,223,119,189,255,249,151, 63,253,229, 79,126,150,229,101,108, 30,126,250,217,179, 95,254,248, 83,163,253,219,151, -223,125,253,205,247, 87, 55,247, 31, 62,127,246,147,223,253,217,139,183, 23,215,151,215,211,105,245, 31,127,245,155,102,179, 59, - 46,139,210, 90, 38, 29, 57,169,136, 6, 17, 13, 27, 54, 72,140,132, 17,128,211,145,198,137, 43,160, 18, 53,170, 26,102, 32, 4, -162, 81, 39, 65,168, 18,129,192,160, 21,209, 68,149, 73,246, 84, 80,176,134, 17, 48,168,138,136,177, 70,223, 39, 45,144,162, 10, - 17, 51, 27, 4,240, 65, 85,128,205,216, 28,100, 67,168,208,197, 48,132, 65, 20, 45, 51, 17,143, 84, 21, 74, 38, 5, 80,145,195, -141, 50, 93,108, 15,218, 59, 50,128,104, 12, 48,179,143, 34,170,198, 82,140, 0, 49, 29,184,163,142,129, 82, 74, 26, 81, 36,166, -227, 17, 5, 18,141,128,137,125, 8, 26, 2,162, 14,209,163, 34, 1, 43,130,177, 12,135,161,115, 8,130,136,206,152,168, 82,228, - 14,121,236,222, 31, 60, 70,202,204,134,168,238,195,195,174, 57,171,178,162, 40,198, 25, 63, 40,146,121, 79, 94,147,212, 54, 7, -116,198,176, 53,134,152,255,250,207,254, 36, 61,210,244, 0, 40, 72,124, 72, 28,233,236, 7, 60, 61, 34,191, 63,118,145, 85, 83, -142,227, 80,231, 25,151, 18, 9,146, 54, 62,148, 25,241,246,126,125,114, 52, 19, 72, 54,139,113,199,105,172, 19,141, 49,142,125, - 37, 77,176,178, 3,122, 31,198,159, 42,189,139, 64, 66,152, 43, 42,162, 16, 51, 2,106, 20, 4,149,148,180, 73,136,124,137, 32, -138,152,156,223,227,212, 25, 81, 65, 98,194,166, 19,190, 95, 32,143, 79,163,180, 84, 33,165,163,233,228, 63,255,227,119, 34,178, -152, 77,153, 77, 85, 85, 26,252,175,126,243,205, 15, 63,254, 96, 94,149,189,168,111,219,160,212,238,214,189,215,233,116, 74,200, -198,101,132,140,227,136,102,132, 22,179,181,108,140, 74, 84,145,177,255, 6, 35,121, 46,253, 13, 18, 39,221,205,120,120, 39, 1, - 99, 26,118,165, 63, 48, 21, 32, 34,228, 68,167,123,255, 10,115,104, 6, 51,143, 69, 2, 26, 7, 97,233, 17, 34,132,108, 44, 91, -135, 9,211,129,172,168,170,137, 33,193,100,140,196,232, 92, 78,177, 71,182, 72,236,123,175, 10, 9,182,227,202,106,245,112,119, -119,187,122,244,228,204, 50, 46,239,239, 77, 86, 25,227, 68, 48,134, 14, 84, 99,148,188,156,228,213,113,219,236,136,193,251, 33, -203, 43,137,186, 93,221,249,161,165,216, 70,223,175, 54,187,183, 87, 87,239,110, 30,186,161,255,252,139,159,158,158, 60,106,219, -182,222,220, 74,223,119,205, 30, 33, 32,219,194, 48,219,202,204,142,159,127,254,101, 81,205,124,219, 12, 93, 31, 5, 12,162,134, -182,107,187,249,116,210,239,111,247,235,229,195,242, 62, 12,173,136,236,154, 38, 51,152, 91,123,245,112, 31,145, 13,232,208,181, -237,254,206,184, 28,217,236,118,187, 24,250,114,241,168,200,203,174,217,102,185,107,155, 54, 4,111,140,105,219, 58,134, 97,113, -246,108,232,219, 48,116,153,171,200, 86, 16, 59, 54, 5, 89, 99, 9,187,253,138,109,110, 76, 62,180,219,208,109,217, 80, 89,205, -115, 99,206,207,158,196,160, 64, 48,159,205,217,228, 67,183, 85,241, 10,104,141, 35,182,251,205,141,113,229,252,236, 67,107,237, -126,117, 95,215,117,179,186,100,228,199, 79, 63,210,208, 39, 90, 0,146,233,125, 55,244, 13,178, 85, 85, 9, 3,155, 92,193,244, -131,239,187, 46,170,180,109,227,251, 14, 0,189,247, 54,207,103,211,163,229,242,214,216, 44,138, 26,162,217,217, 7, 8, 74,156, -117,237, 94, 12, 33,114,179,223,182,245,189,216,242,201,179, 47,116,127,157, 85,243, 94,248,234,221,139,160, 70, 37, 26, 12,147, -163,199, 81, 67,179, 93, 50,229, 26,186,118,183,100,107,140,181, 38, 63,126,184,122,187,222,172, 29,163, 45, 22,251,237,198,183, -235,211,211,163, 39, 31, 60, 62, 59, 59,153,206,231, 49,248,229,221,197,235,239,191,253,205, 55, 47, 94, 95,221,188,189,186,190, -184,186,121, 88,175,143,166,199,191,255,139,223,249,131,127,246, 47,231, 71,231, 39,211,242, 15,126,241,195, 79,159, 63,189,121, -247,246,191,252,253,111,222, 92,220, 24,151, 45,142, 23,219,102,255,235,111, 95,132,190,127,119,125,127,117,113,147, 35,206, 75, -151,204,215,105, 37,133, 9,160,193,108,141, 33, 34, 69, 80, 21,131,135, 63,103, 78,200,188,131,204,136, 15,155, 41, 66,209, 49, -162, 65,132,162, 98, 13, 39, 38,159, 87, 1,145, 44,203,198, 20, 10,147, 49,108,144,130, 70, 68, 98,235, 64,213, 25, 78, 87,114, - 34, 50,140,136,152, 20,107, 9, 36, 34,170, 26, 65, 8, 28,219, 4,246,114,140,170, 32, 34,170,146, 54,130,138,191,181, 15,165, - 60,136, 2, 2, 74,102,140,168,198,152, 68, 86, 16, 69,140, 97, 54, 9, 39, 5, 99,254,132, 65,229,192,184,196,196, 32, 36, 0, - 8, 26, 83,176, 48,132, 16, 37, 90,102, 34, 74,224, 66, 4, 48,236,128, 14, 0,250, 36,221,182, 28,163,104, 12,104, 76,210, 95, - 35,162, 99, 71, 8,187,118,120,216,213,167,147,108, 49,153, 4,197, 16,252,248,104,132,241, 88, 30,115,212, 10, 4,192,100,202, -188, 96, 50,233, 25,152,104,238, 99,240, 46,141,218, 15, 30, 60, 76,131, 19, 34, 4, 34,149, 36, 11, 26, 3, 55,108, 80, 66, 74, -120,164,158, 17,230,152, 16,143,138,192, 54, 51, 32,105, 65, 33, 42,112, 8,122, 67,240, 62, 73,207,211, 46, 52,129, 6,112, 44, -252,104,144, 48,134,216,129,147, 23, 73, 14,224, 69,149,152, 64,196,128, 72, 18, 84, 68, 81,210,232,159, 70, 55, 87, 74,183, 38, -178, 40, 65,210,217,137,188,159,112,164, 93,238,168,200, 38, 66,164,179,199,143,127,254,163, 79,254,211,223,127,183,152, 84,167, -143,206,163,234,243, 15, 63,186,186,189,255,223,254,253,255,245,191,254,213,159, 81,244,192,230,147,207,126,180,223, 92,122, 79, -153,163, 97,232,141,205,152,232,189, 17,117, 12, 1,197, 32,122,208,124,131, 0,140,250,174, 20, 90, 71,228, 3,230,147, 84, 66, -194,206,128,200,184,139,161, 67, 92,104,156,215, 36, 65,251,200,197, 31,223, 99, 12,114,178,245, 29,244, 99,170,168, 24, 51, 91, - 64,130,200, 51, 19, 25,133,120, 0,201,167, 82, 85, 84, 69,227,242,244, 46, 17, 36,118,109,207, 4,168,194,198,198,193, 7, 47, - 24, 7,151,101, 46, 47, 92,158,139,130, 53,232,141, 1, 45,178,162,232,214, 75,128,208,172,151,209,215,110,114,164,128,121, 89, -190,250,250,111,103,139, 39,219,118, 37, 28,163,226,174,174,239, 87,219,102,232, 20, 96,102, 20,128,188,239,131,104, 12, 26,186, - 38, 70,177, 86, 17, 89,200,124,248,241,167,179,197,105,211,250,213,187,127, 4, 59,141,209, 71,129, 56,116,251, 93,237, 50,123, -119,115,223,214, 75, 11,116, 52, 43, 1, 34,104,118,115,183, 69, 37,239,133,180,111,129,103,243, 9,241, 84, 67,183, 31,122, 87, - 30,147, 6, 63,172,187,129, 63,248,228,167,243, 42,219,213,221,190,107,187,166, 6, 68,231, 92,229, 92,232, 80, 84,123,239, 93, -225,216, 98, 93,223, 91, 58,203, 51,183,215, 91, 18,175, 42,121,181,232,155,189,115, 69,110, 76,235,227,106,243,208,246,193, 50, - 69,223, 15,126,232,155,109, 8,195,244,248,105, 94, 84, 97, 24,178,124,166, 49,114,108,189, 2,160,160,168,115,213,116, 50, 93, - 44,206,111,175, 46,242,233,153,111,235,162,154,132, 62,250, 24,187,182,182,206,213,187,123, 54,153,130,134,190,107,135,166, 92, -156, 26, 19,125,143,189, 31,202,114,222, 55,187,203,253, 62,159, 76, 75,231,238,239,239,170,106,230,200, 70, 98, 54,230,232,209, -243, 16,245,229,197,119,193,199, 15,158,126, 58,173,114,203, 84, 45,206,141,157, 10,244,121, 49, 99, 91, 41, 12,182,152, 70, 0, - 67, 46,198,104, 8, 56, 47,125,191, 79, 55,159,235,203,151, 49, 6, 87, 76, 57,183, 76,236,202,108, 49, 63, 89, 44, 38,211,217, - 84, 4,118,155,245,245,219,151,223,190,248,246,221,213,205,229,221,221,221,242, 97,181,221, 89,182,191,255, 59,191,255,211, 47, -127, 62,248,190,105, 54, 95, 60, 93, 60, 61,121, 50,248,230, 31,126,245,171,215,175,223, 70,196,103, 63,248,240,254, 97,133,185, -121,242,232,252,213,223,252,250,106,179,157,217,172,154, 26,163, 35,169,157, 80,251,144,168,176,224,140, 65, 50, 81, 67,210, 79, -130,170,143,162, 72, 76,202,196, 49, 2, 17, 43,104,140,162, 2, 76, 38,125, 74,137, 40,170,128, 38, 50,187, 1,210, 24,162, 15, -193,176, 1, 50,221, 48, 88, 99,152, 76,114,225,197,228, 48, 82, 68,145,204,177,247, 10, 42,214, 25, 85,209, 8,200,148, 27, 4, -165,160, 81, 65,211,231, 35,135, 12,144, 80,132, 0,162, 74, 58,204,144, 40,136,210, 33,135,173, 72,162, 18, 21, 24,213, 24, 2, -114, 62, 65,105, 65, 18, 14,209, 57, 78,222, 57, 80, 48, 72, 74,128,162, 49,106,202,227, 39,250,187,181, 20,135, 24, 35, 90,103, - 53,106,219, 15,134,146,105, 89, 1,209, 56,198, 17, 25, 21, 41,209, 95, 9,211, 21, 48, 70, 73,198, 25, 82, 72, 10, 64, 34, 20, - 17,239,195,126,232,115, 75,179, 34,247, 2,162,146,101,142, 13, 15, 9,105, 9,160,239,121,244, 18, 77,122,209, 79, 27,221,191, -254,183,255, 22, 70,144,239, 72,254, 74,239, 42, 4,105,162, 64,163, 5,232,160, 64, 65, 98, 96, 64,136,137, 91,175, 7,233,118, -162,236,195,251, 4, 14, 40,147, 81,223, 54,145,143,170, 66, 20, 12,189, 87,159,143,247,103,192, 36,168, 82, 34, 98,155,134, 53, -239,215,168,114,128,100,165,127,108,212, 37,225, 1,193, 9, 32, 8, 17, 4,226,248, 86, 1,163,209, 85, 64, 0, 65, 35, 32, 18, - 42,165,121, 79, 10,134, 38, 71,176,198,241, 17, 69,132, 4,162,250,228,244,244,205,155, 55,171, 93,125,114,114,194, 68, 81,244, -120, 49,251,246,219,239, 93,150,253,224,217,121,106, 12, 22,213,244,245,247,191,185, 95,174,171,106, 66,204,198, 26, 50, 22,245, -160,242, 2, 21, 77, 25,199,148,236,228,145,132, 57,190,142, 16, 2, 16, 50,160,164, 96,254, 56, 84, 18, 57, 68,188, 14,255,143, -198, 39, 96,122,133, 18,162,100,246, 30,177, 67, 18, 71,193, 35, 30,188,183, 42, 17, 20,137,152, 51, 67,236, 84,131,170, 16,165, - 2, 29, 17, 16, 16,106,192, 98, 50, 97,151, 49, 82, 8,106, 8,251,190,115,153, 35, 54,153,163,229,195,170,238,195,217,241, 25, -163,191,187, 91,123, 47,161,223, 71, 31, 20,130, 53,206,100, 57, 34,249, 40, 68,232,123,111,157,241,253, 32,194,204,102,168,151, -185, 1, 85,184, 95, 47, 47,174,110,234,174, 47, 93,254,203,159,253,226,126,187,241,253, 64, 68,210,237, 99,191,247,162,147,204, - 69,165,199, 31,125,252,193,231, 95, 69,209,216, 55, 69, 53,151,232,219,253,182,204, 74,244, 77,240, 97,191,126,216,110, 87,147, - 34,159, 58, 83,247,109,215, 14,235,186, 93,239,119, 65,194,174,109, 38, 85,229,178,172,111,247,243,227, 39, 49, 74,219, 54,140, -154,226,163,207,158, 60,211, 97, 83,150, 71, 16,187, 24,194,110,191,149,208,151,147,227,190,223,152, 98,106,108,150, 87,211,161, -221,103,249,220,100, 51, 38,106,238,223,102,211, 57, 25, 71,214, 74,240,200, 25,160,194,176,204,242,162,238, 2,145, 35, 66,100, -102, 66, 85, 36,227,156,113,190,223, 24,107, 69, 52,244,245,233,241,233,116, 50,147, 97, 48,150, 93,158,177, 49, 55,111,191, 25, -134,182,235,218,193, 15,109,189,202, 11,151,229,133,181, 22, 1, 16,172, 42,250,190,115, 89,225,125,147, 27,103, 93,161,234,243, - 98,218, 13,181, 2, 75,236, 69, 2, 8,122,239,217, 98, 91,215, 2,220,110, 46,239, 87, 15,239, 46, 95,158,158, 60,121,254,209, - 15,202,233,169,239,106, 36,147,151,149, 82,182,190,125,201, 8,179,147,167, 67,187,170,166, 83, 13,190, 93,221,230,229, 76, 68, - 33, 6,206,220,100, 50,157, 31,159,173,214,173, 42, 28,159,156,103, 89,177,152, 87,167, 39,213,108, 62,173,166,211,110, 24, 86, -119, 87, 47,191,251,205,175,127,253,235,239, 47, 47, 47,111,111, 47,174,175,183,245,254,211,231,159,253,247,127,242,151,159,124, -248,169, 31,186,227,138,127,239,139, 15, 22, 37, 93,190,125,243,221,215,223,189,189,190, 61,127,114,250,233,151,159, 44,235,253, -122,185, 41, 74,247, 31,254,230,239,135,125,125, 94, 77,203, 60, 79,106, 64,227, 18,145, 9,149,209,178,117,134,141, 49,173,239, - 15, 59, 60, 5,196, 16,211, 50, 27,147,201,250,240,218,138,137,208, 21,162,152, 36, 48,196, 4, 43, 81,213, 24,130, 34,162, 99, - 22,213, 40, 33, 81,216,211, 0, 54,104, 58,112,152, 8,148, 49,248,177,173,157, 94,225, 9,136, 13,137,128, 15, 33,196,192,137, -213,113,120, 75, 0,144,180,220,146,148, 7, 60,132,208,144, 80,144, 82, 50,129, 16,153,145,157, 53, 72,132, 24,162, 70,149,164, - 22, 73, 41, 6,195,148,240, 33,137,142,251,126,143,120,200,179, 41, 51, 91,195, 33, 6, 85,180,214, 36,195,225,168,230, 99, 82, -129, 16, 35,155, 20,185, 65, 51,142, 49,210, 96,136, 9,148,201, 70, 85, 67,148,182,193,203,182,139,189, 63,155,148, 2, 86, 33, - 18,113, 58, 18, 13,145,136,166,129, 1, 35,105,146, 65, 19, 50, 27,195,198,107, 52,154,214, 33,163, 91, 68,248,183,134, 33,100, -128,209, 32, 13, 32, 18, 15,218,232,228, 9, 98, 72,220,171, 49,227, 50,178, 30, 85, 35, 37,223,180,168, 2,158, 30,205, 94,220, -236,240,124,174, 49,142, 10,246, 3, 69, 82, 71,213,201, 88,203,140,222,115,122, 83, 24, 23, 32,244,222, 93,164,135,147, 93,100, - 68, 1,129, 14, 4,170, 64, 2,145,233,144,227,161, 20, 94,209,148,136, 84, 28,161, 5,100, 57,189,118,232,152, 13,226,131, 53, - 67, 1, 9, 84, 76,102,255,232,159,253,252,255,248, 63,255,223,119,151,151, 63,248,244, 99, 80, 87,228,103, 63,254,252,211,255, -240,159,254,243,143, 62,123, 86,100,102,215,108, 77,150,157, 61,122, 4,144, 47, 22,147,213,114,195,236, 44,233,104,153, 79,246, -117, 60, 28,207,248,219,217,153, 15,129,217, 28,236,144, 49, 17, 31, 84,129, 17,226,200, 83, 56, 60,177, 0, 18, 83,126,252,157, -140,112,130,164, 45, 76,205, 92,129,247,188, 8, 29,173,179, 56, 66, 45, 0,148, 36, 14,170, 64,204, 35,186,255,224,131, 76, 26, -112, 0,137, 33,250,174, 35, 66,114,153,177,108,243, 76, 85,155,221, 6,165,243, 58,204,170,133,134,174,223,173,179,201, 49,160, - 49, 16,251,110,227,138,169, 10, 16,104, 64,140, 40,209, 55, 93,167,121, 89, 40,178, 97, 32,199, 49,202,224,227,224,189,134,240, -244,147,207, 49,159,247,219,203,233,116,209,109,238, 66, 95, 71, 4,198, 56, 4,153,157,126,112,246,236,147,174,217, 18, 87, 26, -187,245,253,205, 16,134, 24,194,126,123,247,112,115, 81, 84,167,113,168,213, 55, 3, 14,131,232,122,189, 33, 50,203,237, 14, 24, -251,125, 93,239,182,134,205,220,229, 81, 36, 6,239,138, 73,169, 88,111, 87, 82, 20,229,244,232,104,177,104,107,192,188,148,122, -217,180, 77,140,234, 12,134,216,247, 67, 40,226,206, 32, 69,208,204,101,210,109, 61,185,216, 14, 68,198,215, 91, 71, 70,144, 67, -191, 87, 42,242,172, 44,167,147,253,110,141, 49, 8,196, 40,193, 88,174,102, 19, 21,180, 54,151,232,157, 45, 39,121,222,113,182, -139,241,254,225,190,200, 55, 77,211, 84,147,217,208,118,141, 42, 81, 86, 77,103,113,183,243,190, 39, 37, 17,106,247,219,180, 22, - 26,186,118,232, 7,231,178,190,173,153,173, 53,166,233,154, 24,176,116,184,233,219,162, 90,128, 39, 25,122, 59, 61,153,103,185, - 53,102,121,119, 57,132,110, 24, 90, 59, 61,125,156,229,179,220,173,239, 46,170, 35,216,109,239,171,217, 41, 15,144,217,118,113, -242,200, 58, 27,200,204, 22,143,250,118,155,103,133,177,206, 26, 82, 31,119,235,119,229,100, 78, 54,103, 99, 44,199,117,221, 62, - 49,225,228,248,168,154,149,101, 81, 68, 9,203,187,219,205,253,237,155,215,223,191,188,120,247,238,246,246,226,250,102, 87,215, -139,217,226, 15,127,247,143,254,201,207,127,135, 98,219,215,235,175, 62,125,244,244,180,218,173, 55, 95,127,251,221,237,253,106, -190,152,156,156,157,244, 49,254,237,175,191,206,173,123,245,246,234,226,205,117,153,217,233,209, 49,234, 8,115, 53,142,210,199, - 46, 32,103, 99,217, 26,124, 8,214,176, 68, 13, 26, 25, 57,213,240,144, 24, 84, 65,116, 8, 65,130, 26,147, 92,170,130, 68,150, - 77,170,253,228,153,233,135, 16, 35,160,162, 37, 4,196, 33, 70, 4,101, 99, 52,136,162, 48,154,116,174,165, 74,121,240,209, 90, -195, 25, 74, 28,213, 15, 6, 72, 65,130,136, 70, 33, 34,209,113,180, 78,204, 16, 5, 8,162,160,140,222, 15,140, 41, 19, 50, 14, -138, 1, 68,152, 9, 1,125, 76, 67, 4,245, 18, 19, 46,139,129,211, 60, 56,109,139, 1, 48,170, 32, 37, 15, 19, 6, 21, 28,171, -149,160,160,101,150, 9,104,244,193, 57,151,216,130,160, 74,204, 72, 42, 1, 84,212,176, 37,195, 32,193, 50,167, 15,171, 33, 4, - 67,226,189, 97, 6, 96,107, 88, 6,141, 81,216,224,190,237,135,182, 61,158,149,232, 28, 8, 36, 79, 8, 3, 42, 81,148,212, 70, -210,224, 21, 29, 89,230, 36,125, 72, 55, 68, 82,224,255,241, 47,255, 28,198,246, 15,209, 72,114, 72,135,225,248,118,112,184, 95, -114,154,213, 28,230,216,240, 94,179,148, 46,245, 35, 98, 75, 14,216, 96, 0, 0, 45,178,252,237,197,197,124,113,108, 71,119, 35, -140, 98,189, 68,187, 25,239,250,138, 68,108, 80,198, 23,134,180, 34, 68, 72,251,130,195, 47, 46, 61, 54, 71, 33,121,242, 28, 43, - 40,210, 97,210, 50, 46,145, 83, 39,120,124, 63, 24, 23,140,240, 62,248,163,128, 60,146, 20, 32,205,254, 80, 1, 98,152,206,102, -187,237,246,226,234,174,176,217,236,120, 62,244, 67,158,101,203,229,102,179,111,127,254,197,243,174,247, 18,195,221,205,125, 63, - 12,243,227,147,253,102,229, 76,230,178, 12,229,208, 56, 26,179,139,233, 27, 76, 96, 5, 0, 68, 54,227,251,208,216,196, 2, 69, - 66,145, 56,254,232,108, 21, 5, 98, 68, 38, 0, 26,141,224, 99, 6,149, 15,165, 93,132, 67, 45, 56,101,204,210, 43,146,140,104, -186,164,136, 81,149,244,227,152,113,194,150, 2, 52,156, 50, 88, 69, 81,205,144,176,109, 7, 4, 84,241, 69,206, 10,132,192,113, -104,110,175,239, 59, 15,179,105,229, 50,115,121,249, 16,252,128, 10,214,229,169, 76,128, 49,248,174,141, 68,126,191,201,138,194, -247, 33, 70, 65,191, 5, 38, 19,183, 73, 26,247,230,250,246,118,185,236,188,255,225,199, 63, 48,161,117,197, 52, 52,123,223,212, -237,230,174,245,126, 86, 76,148,233,195, 31,126,117,116,254,164,221,109,156,115,211,147, 15,218,166,235,183,203,122,125,101,109, - 97,140,205, 51, 75,204, 57,103, 93, 83,199, 40,189,232,126,187, 14, 8,165,205, 55,187,141,117, 89,149, 59,103,204,209, 98, 33, -170,205,126,215,117, 53,187,114,113,124,222,214, 59,136,189,203,202,205,190,185,189,121, 27, 49,223,239,215,211,249,137, 14,141, - 97, 39, 50, 0, 66,136,218,251, 16,154,135,227,179, 15,252, 48,212,155,155,124,114, 76, 68,174,156,151,147, 89,150, 57, 6,109, -247, 75, 31,116,240,123, 66, 86,136, 32, 93,140, 42,126,200,178,124,232,107, 54,121, 20,159, 57, 6,141,253,224,219,118, 48,164, - 49,120,227, 50,118, 5,136,206,103, 11, 16, 25,134,182, 40,167,189, 31, 92, 86,177,117, 49,232,234,225, 74,128, 77, 58,128,217, -130,192, 48,244,192, 72, 4,126,232,145,108, 68, 41,242, 28, 20,230,211,227,135,229,187,235,213,114,191,219,158,159, 63, 59, 57, - 58, 33,114,229,226,220, 90, 87, 78,143, 1, 89, 21, 66, 24,182,235, 27,147, 79,201,228,205,126,103, 25,243,124, 14,138,157,239, - 21,140, 53, 1,144, 57,203, 39,213,220, 21,185,244,155,103,207, 30, 61,122,244,104,113,188, 96, 99,187,118,255,112,253,238,205, -203, 23, 95,127,251,205,139,139,183,151,119,119, 23,183, 55,117,221, 60,123,242,193,159,253,235, 63,126,246,193, 15,183,171,219, -179,137,251,242,249,105,105,244,205,171,151,255,240, 15, 95, 7,137,121,145, 7, 17, 83,229,222, 15,223,125,255,182,221,181, 19, - 99,143, 38,149, 25, 95, 82, 37,141, 83, 84, 49,202, 40,181,176,198, 72, 82,175,165,216, 71, 34, 34, 26,131,138, 68,104, 82, 14, -122, 60,107,240, 32, 60, 98,132,145,237, 46, 81,130,138,170,102,142,129, 72, 36, 42,162,177,196,201, 71,151,252,113, 34,134,153, - 57, 53,158,128, 13,161, 1,245,202, 68,134,199,117,215,193, 21,145, 14,113,176,204,169, 17, 58, 4, 25, 41, 44,100, 0, 1,153, -249, 16, 40, 78,183, 68, 99, 9, 20, 99,148,116,169,125,223, 47, 97,194,168,224, 12, 89,231, 44,178,138, 40,104,110,242,132, 42, - 87, 21,139,148, 14, 54,195,134, 0, 6, 31, 8, 34,115, 90,154, 41, 34,165, 72,184,247, 66, 76, 76, 22, 9, 13, 2,145, 17, 85, - 38, 50,214,166, 11, 29,145,161,228, 3, 81, 1, 68, 99,168,247,113,189,223,207,138,188,204,179,116,202,216,145,150, 67,160, 74, - 68, 34,170, 0,134,137,153, 12, 51, 18,138,130, 15,145, 64,211,224, 46,249,197,137, 71, 34,138,144,234,225,196, 79,194,114, 80, - 64,213,247,235,208,247, 97,111, 76,250, 91, 34,162,164,170, 5, 2, 6, 84, 57,136,161, 33, 0, 31, 79,243,135,237,238,233,241, - 76, 36, 61, 53, 15,133,132, 52,120, 79,187, 79, 73, 88, 48,147, 86,185, 4, 36, 33, 40,104,210,154,166,245, 35, 17, 18, 74, 2, -175,140, 96, 25,213, 67,202, 38, 69, 19,211,166, 29, 15,227,123, 81, 33, 1, 73, 55,221,116,157, 39,192,241,176, 37, 4, 74,195, - 18, 85, 38, 85,252,157,159,126,249,221,219,235,235,187,187,106, 50, 45,171, 50,138,255,224,233,163,191,251,205,119, 95,125,249, -241,249,201,162,238,194,143,126,246,187, 18,154,237,174, 57,127,250,120,189,218,184,224,152, 24,209, 40, 0, 59,171,209,171, 74, - 12, 66, 72,232,140, 98, 36, 66, 85,209,212, 85, 96, 74, 15, 42, 9, 33,253, 94,147, 24,132,144,213,164, 55,216, 20,110, 61,108, - 17, 84, 16, 57, 1, 66,117, 92,152, 34, 18,146, 49, 26, 98,140,131,113, 46, 97,232, 53, 36, 98,157,112,234,138,164,121, 86, 20, - 53, 12, 0,209, 7,155, 51, 18,182, 93, 15, 10, 93, 83, 91,146, 96, 45,145, 74,240, 38, 43,216, 24,132, 8, 81,216, 88,155,229, -138, 71, 72,168,210,183,251,218,106, 12, 54, 23,229,216,181,192, 70,163,247, 30,173,225,108,250, 40,160,217,175, 95, 89,235,186, -190,105,154,150, 16, 13, 91, 34,107,166,143,172,205,219,193, 83, 24, 6, 31, 93, 86,177, 45,167, 71,243,249,233, 73, 93,111,189, -224,244,228, 81,232,118,190, 93, 85,199,103, 93,179,111,235,218, 57,179,219,174,135,190, 71,241, 64, 90,239,219,213,234,206,139, -150,197,116,181, 89, 55, 67,180, 20,247, 97,112, 54,107,183,155, 72,182, 29,250,188,156, 13,195, 16,154, 77,244,158,220,196,149, -139,219,235, 43, 99, 43,132,161,116,150,137, 64,216, 15, 77, 84,200,184, 10,245, 67,181, 56,245, 68,235,235,111,178,242,180,156, -159,179,177, 24, 3, 16, 33, 90,109,247,198, 96,181,120,204, 77,141, 4, 67,219, 24, 91, 33,120, 37,107, 12,239,150,151,197,244, - 88, 67, 19,177,220,174,111,227,224,201,230, 72, 56,116,129,136,173, 41,253,176,235,155,189,198, 61,178,149, 32, 49, 14,251,237, - 93,107,171,204, 56,237,215, 89, 62, 55,140,126,232, 32,202,224, 99, 28,106, 96,107,139,249,224, 7, 2,200, 51,215,180, 97, 49, - 59,219,238, 30,190,125,243,155,166, 94,255,240,195, 47, 5,141,203,136,136,251,254, 30, 86,146,231, 19,233,119,214,132,193,235, -126,243, 48, 61,127,158,229,147,118,191, 70,197, 0,188, 95,223,100, 46,115,197,116, 49, 59, 10, 67, 71,166,244, 33, 88,226,217, -164,154,125,250,233,164,170,178, 44,239,218,166,174,119,155,251,155,111,190,251,250,197,235,139,205,126,191,218,108, 55,155, 13, - 91,243, 63,255,119,255,203, 23, 95,252,164,174,235,216,110,126,254,233,209,147,211,249,237,213,205,203, 87, 47,183,155,221,179, -143, 62,172,206,166,255,223,223,254,227,179, 71,199,157, 14,191,250,135,239,102,228,206,171,210,199,168,136,108,156,196,161,105, -251, 62, 52,185,181, 69,150,231,121, 22, 99, 80, 5, 31, 67,140, 98, 83,237, 61, 13, 16,172, 9, 94,200,176, 65,235,131, 71, 5, -203, 28, 48, 38,173, 3, 1, 41, 64,225, 44,170,168,136,199, 36, 2,228,193,135,145,170,164, 98,192,120, 1, 4,148, 24,172,179, -133,115, 94, 49, 9,155,148, 48, 70,193,136,206, 25, 81, 53,160, 33,137,136, 1, 13,211,144,182,112,138, 62, 13, 69, 69,217, 80, -242,119,166, 68, 37,160, 26, 99, 67, 12, 17,129, 64, 83,132, 7, 8,208, 25,136, 10, 34, 41, 15,168, 24, 81,217,177, 97,107, 37, -134, 94,133, 9, 24, 77,140, 67, 4,116,105, 9, 11,138,136,142, 40, 34,134,168,133,203, 0, 16, 33, 42,129, 4,176, 76, 94,162, - 2, 86, 69,209, 6, 1,137,214,218,160,136,160, 6, 13,128,104,140, 41,175, 14, 18, 33,105,224, 84, 17, 68, 98,188, 94,110, 10, -198,163, 73,217, 69,113,136,145,176,139,222, 32, 27, 70, 0, 26, 68,144, 17, 99, 4, 38, 80, 13, 33, 2,128, 65,238,209, 19, 40, - 1,241,255,244,151,127, 1, 8,140,128,230,183, 17,125, 28, 35, 26,233, 65,136,227, 61, 55,161, 5, 36,140, 36,152,195, 26, 22, - 71,132,103,194, 36,143,113,245, 52, 71, 8,128, 83, 19,239,183,237, 98, 62, 17, 25,239,246,233, 68, 38, 32,125, 95,184, 79, 35, -133, 68,200, 26,139, 84, 4,128, 26, 3,154,131, 24,100,108,185,141, 5, 78, 64, 74, 13,177,177, 16,251,219,164,230, 40, 34, 77, -122,215,177,120,139, 4, 74, 32,137,131,147, 30,103,227,216, 28,145, 1, 40, 70,157, 76,114, 6,255,143, 47, 47,115,103,102, 71, -115, 98,202,141, 27,250,254, 55, 47, 47,126,254,229, 39, 65, 98,223,247,183, 87, 23,203,229, 50,200, 48,244, 67,238,242, 4,205, - 52,198,106,148, 68,101, 24, 31,129,162,105, 89, 35, 49, 34, 36,249,150, 66,122, 77, 27,215,195,172,154,222, 71, 18, 69, 72, 37, - 10, 26, 67,104,210, 28, 38, 77,114,144, 65,163,140, 58, 66,194, 84,171, 83, 20, 64, 2, 77,141, 92, 0, 76,116,103, 68,250,109, -238,120,108, 35, 43, 0, 66, 86,206, 13, 99,219,180, 89,158,245,117,107, 51,139, 54, 67, 4, 21,181,214, 61,220,222,183,245,230, -248,241,179,217,124,122,241,234,123,224, 76,162,236,151,247, 46,171,140,203, 35, 88,100, 43,161,103,195,125, 63, 40,160,205, 28, -160, 27, 86,239,218,122, 89,230,249,114,179,189,184,185,109,187,222, 11,252,226,167,255,204,162,248,118, 75,177,237,219,253,166, -237,166,211, 41,101,238,217,243, 47, 92, 81,121, 49, 89, 81,146,134,187,139,151,104,109,189,188,204,108, 85, 86,149,250,222,135, -136, 34,221,246,190,233,122, 65, 18,223,163, 49, 79, 79,159,108,235,205, 32, 65, 99,200, 51, 87, 85,147, 40,113, 24, 90,227,114, -137, 66,168, 2,216,117,155,211,179,199,190,111, 86,235,109, 93,239, 67,243,144,229, 37, 32,119,109, 45,136,117,219, 53,237,158, - 8, 28, 27,114, 57, 82, 33,200, 33,198, 97,232, 93, 53, 37, 54,245,110, 37,202,206,112, 8, 61, 72,168,155, 70,136, 65,209,162, -175, 38, 39,206,102,108,115, 36, 38, 67,136,216,118,221,118,183,149, 48,236,214,247, 0,120,180, 56,206,156,169,155,214,230,229, -126,191,239,187,225,104, 49, 45,242, 2,208,129,239, 76, 54, 9,253,110,114,116,228,152, 98,240, 89, 86, 13, 62,206,166,179,147, -163,121, 81, 76, 53,134,172,156, 16, 72,235,251,182,239,110,151,183,147,242,168, 98,146, 24, 0,105, 54, 61, 98,150,182,235,216, - 22,229,252, 12,181,179, 46,207,202,197,126,189, 42,170,105,244,221,208, 55, 89,158, 7, 17, 81,244,221,190, 40,114,212, 33,250, - 22,144,143,142, 22,143, 31, 31, 85, 85, 54,153, 76, 84,180,222,109,238,111,223,190,121,245,242, 87,127,247,119,223,188,186,184, -185,127,184,123, 88, 6,209, 31,125,241,227,255,230, 15,255,248,195,167,207,111,223,254,230,209,220,252,248,147,163,130,240,235, -175,191,249,254,197, 43, 54, 12, 76,154,217,111, 95, 93,236, 54,187,235,171,155,239, 95, 94, 30,103,238,164, 42,153,153, 13,151, -142, 51,107, 66, 4, 31, 35, 34,176,161,204,216,180,169, 28,111,170,138,214,146, 87, 85, 80, 98, 78, 98,179, 4,154, 77,168,193, -160,146, 86,121, 2, 96,136, 13,161, 68,241, 33, 36,125,141,177,172,162,137, 42, 59,214, 17, 15,221, 72, 69, 16,213,182,239,153, -137, 24, 67, 20,195,204,128,206, 26, 70, 35,163,205,103,204,135, 32,160, 53,236, 12, 43,170, 38, 1,247,232,131, 38, 64, 48,105, -190,195,156, 2,239, 57, 83,170, 74, 38,146,176,136, 16,170,113, 38,125,243, 76,236,216, 18, 37,186, 31, 57,166, 40,154, 10,235, -134, 80, 16, 64,128,137,172,229, 46, 8,129, 26,102, 77,132, 94,107, 81, 5, 1,251,100, 88,101,163, 10,134,208,218, 44,136, 26, - 34, 34, 43, 26,145,146, 65, 57,213,143, 16, 16, 12,162, 2,129,234,253,182, 1, 13,103, 39,115, 47, 96, 8,129, 25, 85,153,216, - 18,132,177,217, 3,170, 34, 49, 16, 83, 8,202, 76, 0, 24, 68, 98, 28, 12, 82,239, 7, 51,238, 69, 85, 53,200,225,136, 2,132, -209, 73,136, 35,103,102,100,236, 42, 68, 96, 30, 19, 55,144, 30,118, 73,151,138,201, 16, 61,238, 8,146,108, 21, 64, 99,200,171, - 41, 63,220,140, 35,244, 17, 84, 25,117,140,141,208,248,229,198, 41,198, 97, 57, 43, 74, 76, 18, 21, 76, 98,117,166,227, 78, 80, - 89, 17,188,136, 1, 16,140,170, 35,138, 39,117, 91,137, 8, 68,210, 77,253,125,252, 71, 9,223,123,212, 71, 73,169,140,163, 27, - 5, 21,145,168,158, 21, 17,160,239,241,231, 63,253,201,197,229,253,213,205,221,108, 54, 63, 62, 57,214, 28, 62,126,246,236, 63, -254,237,223,253,205,223,125,251,135,255,244,199, 15,251,246,228,236,217,211,140,190,251,230,155, 47,127,242,179,118,191, 19, 0, - 86, 9, 33,188, 87,187,167,196, 21, 27,163,160, 26, 21, 21, 84, 6, 69, 65, 97, 64, 64,178, 32,202,214,136, 38, 8,193,216,184, - 2, 65, 98, 77,140,124,100, 74,111,127,160,128, 17,211, 91, 41, 32,168, 72,196,177, 1,160, 2,138, 17,217,162,161,196,104,163, -145,238, 44,132,246,191,202, 4,163,248,104,115,215,247,189,117,150, 48, 22, 85,161,164,160, 1,201,162, 73,175, 5, 32, 2,245, -190,142, 39, 71,214, 21, 81,160,110,246, 38, 43, 93, 89, 49,218,102,187,236,234, 70, 36, 90, 84,116,121, 57,169, 24, 1,140,221, - 14,181,181,198, 71,241,222,119,221,224,125, 40,114, 87,152, 16,169,204,114, 30, 54,187,221,110, 55,201,243,220,186,197,241,169, -113, 69,179,219, 70,228,249,252,169,177,153,162, 33,100,107, 93,179,221, 22,229,164,239,187, 60,115,203,237, 18,216,101, 0,125, -221, 2, 59,146,184,218, 62,236,246, 27,195,121,140, 50,153,206, 50,166,182, 27, 24, 89,253, 0,156, 5, 68,195,118,126,244,148, -145,167,147,108,181,222,220,223,109, 23,179,217,116,118,220, 52,123, 69,202,172,107,234, 38,203,139, 50,207, 69,164,223,175, 57, -159, 64, 24,156, 37,180,115, 8, 67,240, 29, 16,135,190,217,118,189,201,103,108, 50,227, 38, 12,146, 57,106,155, 48, 12, 53,171, -230,213,145,250,154,162, 4,148,170,152,102, 68,125,183,153,157,127,104, 12, 3, 65,215,110,183,245,182,240,118, 82, 86,131,247, - 26, 98, 27,106,231,170,174, 94, 13,245,242,201,249,243,188, 42,218,253,174,105,106, 76,122, 10,208,135,235,139,233,201,121, 81, - 20,198,184,251,135,183,251,182,159,149,243, 39,167,143, 21, 12,229, 85,145,209, 48,248, 16,189, 35, 10,193,163, 15,251,237, 61, - 97, 4, 16,227,154,220,209,233,241,209,190,174,219,190, 27,134,218,123,207,174,130, 96,144, 50, 54, 89, 94,232,233,201,209,217, -227, 71, 69,145,199, 16,134,174,217,172, 30,174, 46,223,188,185,120,251,234,205,229,205,253,114,185, 89, 13, 62, 62, 59, 63,255, -139,191,248,235, 79,191,248,234,238,221,149,214, 87, 63,255,252,105,149,187,155,215,111, 94,190,122,195,140,130,128,142,171,197, -228,250,250,225,237,235,139,210,216,220,152, 79, 78, 79,152, 9, 84, 19,155, 54, 70,236,195, 96, 8, 38,121, 22, 66,242, 22,144, -162, 48, 18, 42, 26, 2, 33, 80, 66,142,202, 70, 1, 48, 68, 85, 9, 9, 54,146, 34,207,134, 16, 0, 13, 81,142, 16, 69,135, 32, -201,146, 74, 76,138,136,204, 40,209,135, 94, 21, 44, 83, 16, 80, 80,107,141, 70, 29, 0,147, 72, 58, 77, 68,211,255, 5, 80, 12, - 49,210, 97,127,170, 99, 72, 7,216, 80,136, 49, 68, 53, 64,128, 18, 37, 29,152,227,205, 83, 83,153, 18, 52,105, 25,132,149, 34, - 34,146,239,189, 73,224,176, 4, 62, 36,195, 72,233,196, 79,195, 99, 75, 24, 68, 36, 70, 52,204,100,188,198,140,172,113, 24, 98, - 8, 65,210,240, 24, 15, 55,214, 16,162, 15,209, 25,227, 40, 7, 20, 5,116,100,131,134, 32,225,208,177, 18,228,145,208,144, 92, - 74,140,200,134, 98, 16,208, 88,119,253, 48, 12, 39,211,202,144, 65,144, 20,112, 84,228, 16, 37,149,245, 49,197,117,130, 8,160, - 68,207,100, 19,187, 94, 84, 17,104,240, 94, 98, 48,135,173,109,226,120,141, 91,102,129, 8,148, 68, 19, 64, 72, 17, 99, 74,219, - 0, 26, 28, 87,123, 66, 56,134,251, 19,239, 13,120,148, 20, 33, 40, 19, 70, 25,199, 96,189,102, 25, 67, 8, 49,173,105, 17,137, -129,148, 0, 34,140,143,132,180,247,246, 17, 17,137,237,200,144,140, 66,140, 26, 89, 37,241, 23, 89, 85, 34, 8, 40, 48,167,226, -146,142, 4, 24, 64, 48, 4, 49, 61, 85, 18,122,102,172,236, 30,150, 61, 0,162,104, 84,149, 68,210,115, 58,121, 71, 4,144, 52, -138,142,245, 89, 17,133, 63,250,189,159,253,239,255,254,255,217,110,183,206,185,217, 98, 14,160, 95,126,246,233,255,253,171,191, -255,233,231,207,115,231,186,174,157, 46, 30, 45,102,147,183, 47,191, 21,208,179,199,207, 80,149,153, 1, 73, 1, 73,146,204, 26, - 53,134, 52, 67,151, 24,131,239,149,192, 24, 99,200,164,134,147, 28,250,200, 35, 97,152,136,141, 17,141, 41,129,139, 64,169,185, -167, 32,227,152,246,158, 56,101, 0, 0, 32, 0, 73, 68, 65, 84, 82, 99, 34, 55,164, 97,153,200,168,115, 4,212,212,106, 35, 36, -137, 50, 14,157, 36,138, 82,194, 17,165,226,117,236,134,193, 71, 87, 22, 81,196,228, 14, 52, 50,129,146,129,232,137, 17,173, 67, -155,203,208,176, 70,114,101,179,188, 39,213,106,122, 98,139,162,221,111, 80,192, 15,189, 43, 42,196,200,126, 27, 7,228, 98, 94, - 20, 19, 85, 40,139, 34, 4, 29,124,136, 33,246,195,112, 50,153, 73,140, 96, 93, 28, 86,171,229, 3, 49,101, 89, 94,148,213,209, -217,211,200, 44,128, 46,159,102,121, 17, 99,232,218,118,186,152, 19,101,132,117,219,108,234,253,186,172,166,121, 94,108,219,102, -223,180,247,155,245,233,209,233,182,222, 11,113,158, 79, 5,145, 82,141, 0,193,185,156, 12,109, 55, 43, 91, 40, 6,140,108, 50, -166, 97,127,127,191, 3,195,110, 54,153,134, 32,171,205, 6,148,189,247, 6,109,140,126, 62,127,180,200,176, 7,183,220, 46,157, - 98, 97, 29,144,179,182,240,237,182,109,154,201,226,188, 23,169,219,173,201, 52,168, 49,134,138,162, 98,136,197,100, 46,209,239, -238,222,186,172, 84,224,182,222,238,154,102,177, 56,203,140,221,214,251,249,236,172,238,189, 72,204,108, 54,159, 44,154,102,211, - 55,117, 53, 59,241, 26,218,253,234,244,113, 85, 76,230,155,135,123, 64, 10,245,186,237, 60, 16,183,205,222,119,117,113,244,184, - 31, 38,147,106, 49,196,246,155,183, 47,103,213,252,217,249,211, 24,154, 16,194,110,191, 98,151, 23,217,177,203,105, 8,131,143, -234,251,125, 86, 46,178, 44, 71, 38,137,195,116,113,110,179,105,189,185,181,121, 53,153,206,195, 48,100, 25, 13, 67,237, 37, 20, - 69,241,232,108,118,124, 52,159,206,167, 64,220,119,237,126,187, 92,222, 93,189,126,253,246,197,155, 55,151, 55,247,203,205,118, -187,219,156, 31,159,252,171,127,249,231, 63,248,232,249,201,227,103,251,187,119,231,110,119,246,232,180,221,237,190,254,245,175, -239, 31,238,159,126,248,212,205,167,239,254,238, 31, 62,121,242,201,247, 87,215,111,222, 93, 76, 93, 54,201,172, 77, 29, 28, 4, -135,152, 90, 64,138,152, 25, 6, 16, 1,114,228, 4,128, 65,153,221,248,210,153,198,198,168,206,226, 16, 19, 76, 17,172,203,250, - 16, 85,148, 56, 37, 41,161, 96,142, 18, 3, 32, 16,102,206, 48,179,166,207,132, 37,138,232,209, 19, 24,102,236,188, 7,145, 44, -119, 49,168, 40,152, 49,215, 4, 22, 8, 13, 70, 21, 63, 68, 34,214, 0,214, 82,210,236, 9, 66,110,185,243, 33, 68, 9, 65,216, - 16,104,106,246,163, 40, 48,211,225,202, 39,169, 35, 19, 84, 36, 38,111, 20,170, 42, 89, 2, 25,239,135,150, 24,144, 65, 3,165, - 85,153, 70, 47,234,197, 51,176, 51,206,199, 64, 70,138,204, 74,148,255,159,169, 55,251,182, 36,185,238,243,246, 20,145,195, 25, -239, 80, 83, 87, 87,119, 3,141,129, 0, 65, 2, 20, 8, 83,166, 37,216,178, 23, 41,137, 11,146, 37,175,101,210,255,166,159,237, - 7,123, 45,201,131, 44, 89, 52, 41, 52,128,238,174,121,186,243,116,166,204,140,216,123,251, 33,242, 92,168,159,250,161,186,250, -214,189,167, 34, 35,247,254,253,190,111,155, 84, 8, 0, 57,136, 67, 49,141, 48,238,186,132, 8,109, 93, 3,178,217,192,161,222, -237,122,117,117,117, 34, 82, 87,116, 12, 18, 2,225,144,243,200,204,114, 3, 64, 77,136, 0, 73,245,110,189, 57,156,214,109,211, -154,155, 25, 84,140, 9,129,136, 43, 34, 66,202, 56,152, 17,186, 34, 1,164,210,157,228,145, 13, 14,158,178, 49, 0,179,240,223, -252,234,175,198,129, 8,143,107,211,241, 73, 75,163, 49,200,125, 60,114, 11,145,103,180, 5, 18,179,208, 61,108,253, 30, 71, 62, -210,201,247, 36, 1,114, 32,228,220,239,178,243,180,141,227, 35,214, 12,108, 20,138,112, 1,136, 21,220,132,121, 9, 92,150,237, - 72, 1,199,140,117,158,130, 84,135,113,238, 81,134, 66,165,184, 75,145, 71, 23, 82,217,114,142,249, 28,250,207,168,186,101, 58, - 95,152,208, 5,102, 9,165,117, 1, 99, 60,221,137, 11, 51, 46, 79,166,237,176,219,190, 57,189, 92,206,231,128, 72,204, 85,172, -206, 46, 46, 62,158, 95,252,226,143,127,184, 90,175,213, 97,182, 88,188,127,255,254,248,209, 99, 75, 29,145,148, 70, 7,151,146, - 42,140,238, 36,164, 17, 43,234, 14, 34, 49,132,186,244,197,212,178,231,242, 25, 0, 55,167, 49, 19, 54,214,198, 10,118, 3,161, - 92, 71,246,195,174,253,254, 29, 16, 93, 29, 10, 89, 66,184,208,239,203, 93,102,127, 19, 25,247, 65,191, 55, 95,113, 4,174,164, -170, 64,147,123,230, 16,170,182,149,170, 18, 41, 94, 89,185, 60,187,216,108,118,243,233,116,121,116,248,254,229,243, 33, 39, 53, - 13, 49, 14,125,191,185, 59, 87,160,217,124,201,130,117, 59, 67,174,187, 33, 79,167, 51, 71,188,120,247,213,108, 54, 77,170,167, -231, 87,151, 55,183,119,155,237,179,207,190,251,249,167,159, 89,127,115,123,254,113,115,119,215,212,205,100,186,156,204,166,245, -226, 16,168,178,212,207,142,143, 23, 7,199, 39,175,254,147,170,115, 8,222,109,136, 25,212,119,187,109, 96,233,119,171,245,122, -179, 27, 6, 55,223, 13, 93, 64, 55,181,171,155, 27, 9, 60,109, 91,180,228, 96, 33, 84, 89, 45, 86, 49, 10,239,186,158, 56,162, - 14,132,222,204,143,186,221,182,105,103,110,176, 77,253,110,216, 12,131,110,118,155, 16, 99,148,186,157, 55,211,122,114,119,119, -233, 24, 4, 53,109,111, 72, 98,168, 22,245,236, 40,109, 46, 57, 84, 20,154, 80, 79,132, 48,128,198,192, 41, 41,164,126,232,214, -102, 54,108,111,171,201, 28, 45,135, 80, 7,180,212,175, 23,135,143, 55,235,171,219,213,170,169, 99, 21,154, 88,213,121, 88,171, - 34, 72,181,221,220,205,167,139,249,108,158,205, 9, 97,219,173, 47, 46,207,150,139, 69,191,221,220,109,214,211, 58, 6,196,117, -215, 95,222, 93,175, 86,219,227,249,131, 42,212,169, 91,109,182,107,146,166,169, 26, 20,238,119,119,221, 96, 10, 60, 91, 28, 11, -218,108,249,137,144, 32,232,225,227,239,172, 87,183, 78, 56,153, 47,235,102,137, 62, 4, 17, 85,152, 46, 14, 63,249,244,179,207, -158, 30, 46, 14,151,147,201, 68,213,215,119, 87, 39,239,223,188,120,254,205,215,223,188,248,245, 55,207, 95,191, 63, 57,187,190, -169,132,254,244,167,255,197, 95,252, 55,255,236,232,232, 9,195, 46,216,230, 81, 59,204, 2,124,248,240,238,235,175,126,115,187, -221, 77,103,237,244,241,195, 95,127,243,245,213,229,205,233,217,229,235,231,175,143,154,233,188,110, 0, 70,181, 24, 19,233, 24, -200, 45, 57, 66,199,189, 96,161,220, 55, 1,255, 51, 68, 42, 1, 19,101,115,176,113,165,180, 75, 3, 24,112,224,210,104,171, 98, - 84,203,230, 48, 12, 22,132,192, 33, 91, 22, 18, 14, 81,136,212,177, 56,233,152, 73, 72,130,144,102, 35,194, 42, 22, 27, 90,209, - 76, 19, 24,172,182,219,117,183, 37,192, 58, 8,133,144,213, 4,145, 9,147,186,155, 67, 9,166,151, 59,103,225, 30, 50, 8, 48, - 0, 80, 25,181, 20, 19,211,232, 95, 26,217, 88,228,165,232, 4, 33,212,204,191,151,195, 17,130,130,169, 42,238,155, 42, 65, 56, -136,100, 53, 7,171, 99, 85,110,116, 6, 94, 51, 3,162,129, 71, 17, 4,234,134, 1,193, 0, 89, 53, 21,108, 73, 33,253, 18,115, - 20, 6,243, 98,236, 19, 98, 31,183,156,224,238, 68,124,185,222, 16,224,193,180, 45,211,241, 40,161, 31, 83, 67,152, 1, 0, 76, -176,204, 29,188,232,182,145,196, 85, 67, 8, 0, 60, 12, 3, 2,198, 42,154,155,248,232,138, 40,240, 45, 47,157,221, 61,108,230, -247, 16, 19, 36,128, 61,173,189,176, 86, 52,219,232, 99,245,177,123, 95, 38, 37,134,206,229,129, 81, 66,164,224,109, 91,157,175, - 55, 15, 14, 38, 41,217,253, 96,191,160,133,205, 70,238,188, 59, 32,147,227,126,122, 54,158,217, 58, 66,126, 97,255,236,113,180, - 50,199, 40, 30, 59, 24, 53, 44, 35, 96,126,228, 3,143, 63,150, 2,166,247,194, 35,114, 47,197, 33, 7, 3, 31, 11, 69,247,196, -203, 50,233, 35,196,156,253,199, 63,252,242,249,251,211,219,213,182,174,171,170,153, 49,241, 31,126,255,251,255,251,255,245,239, -254,191,223, 61,255,241,151,159,159,223,172,172,169, 68,120,185, 56,184,248,248,206, 20,103,179, 25,144,186,211,184,137, 38,217, -135, 24,157, 41,112, 19, 9,196,193,138,176,143, 93,220, 77,213,105,172, 98, 23, 28, 68,217, 69,237, 31,109, 56, 62,159, 44, 41, - 5,161,146, 42, 3, 80,205,196,204, 69,110,149, 13,139,171,140,137, 88,184,244,192,198,206,175,239,115,242,180,217,238, 66,152, - 81, 85,158,209, 94,152, 90,229, 27,169,253, 0, 65,153,137,133, 37, 84, 16,100,200, 67, 82, 16, 14,121,216,165,148, 17, 24, 53, - 1,213,228, 20,171,104,177,137,237,128,204,110,138,158, 8,201,205,182,219, 93, 54, 75,150, 31, 63,122, 22,231, 71,183, 55,119, -105, 72, 77,211,206,102,139,208,212, 40,181,153,186, 15,154,134,182,110, 85,123,105, 14, 14,230, 77, 26,214, 90, 77,170,202,250, -110, 55,159, 31,229,180, 73,221, 78, 98,172,156, 53, 15,235,110,152,207, 15,214,187,205,186,219, 85, 85,173, 33, 41, 10, 82,232, - 82,231,170,194,178,222,220, 41, 73, 3,154, 85, 15, 15, 63,191,221,108, 78,223,254,166, 57,122,102,128,144,186, 97,183,142,213, - 4,124, 75, 88,167,148, 54,183,107,159,203,241,209,163, 52,232,106,125, 99,200, 48,244,217, 51,121,149,157,250,213, 93,108, 38, -105,183, 21, 81, 97, 4,135,118,178, 72,187,235,128, 13,113,232,183,171,110,187,219,220, 94,212,205,204, 83, 46,166, 5,150,122, - 49,173,218,186,185,188,120,221, 78,102,187, 93,159,129,176,223, 52,109,251,224,201,231,183, 23, 31,222,188,254,102, 50, 91, 86, -237, 66, 98,221, 39,171,171,186, 74,249,118,179, 62,187,185,236,213,103,117,252,236,233, 15,136,252,230,250, 52,103,109,154,153, - 90,130, 80,123,159, 1,120, 50,153, 14, 67,246,161,191,189,124, 31,155,165,230, 29,197,185, 13,217,242, 16,235, 90, 72,134,110, -213,109, 86, 93,191, 93, 28, 28, 62,253,100, 57,159,205,154, 73,131, 64,219,205,221,221,205,197,201,219,119,111, 62,190,123,247, -241,244,227,249,197,197,245, 53,113,245,163,239,253,193,159,253,236,103, 15, 30, 60,189, 62,191, 8,222, 63,126, 52,123,120, 32, - 87, 23,215,191,253,221,203, 12,217, 9, 23,143, 14, 9,236,219,175,191,185, 58,187,241,148,221,224, 59, 15, 31,142, 62, 96, 24, -145,211, 64,128,134, 99,172,217,138,194, 20,145, 64,136, 75, 36, 60,151, 52,161,237, 71,148,123,151, 90,206,134, 68,194,236,142, -168,218,176,140,206, 2, 71, 7,111,107,206,224,224, 24, 36, 32,137,230,148, 93, 71,170, 30, 16,137,168, 90,234,119, 82, 62,239, - 9,132, 73, 17, 24,113, 63,106,119, 4, 74, 89, 59,210, 54, 90, 32,114,132,172,138, 0, 81,120,112, 77,144,203,139, 57, 11, 1, -144, 67, 78, 57, 51,161,193,184,128, 45, 2,191, 98, 88,139,101,139, 0, 12, 96,204,193, 93, 75, 67, 49,114, 80,205,102,192, 36, - 28, 88, 71,243,101, 57, 45,129, 69, 70, 11,102, 12,110, 26,145, 7, 75,194,145,176, 36,226,178, 48, 13,154, 81, 51, 49,187, 89, -118, 71,196, 40, 72,196,201,180, 12,100, 92,157,200,179, 27, 2, 9, 57,146, 92,172,182,150,134, 71,203, 69,168, 42, 3, 80, 85, -117,141, 76,132,232, 72,141, 56, 18,247, 67, 38, 4,195, 2, 72, 33, 36, 66, 15,238,100,104, 85, 21, 75, 56,197,204,249,111,254, -229,175,202,145, 72, 4,196, 82,206, 6, 47, 20,247, 49,102, 13,196,100,170,128, 68, 36,227,184,219,199, 93,231,168, 49, 4, 18, -188,143,232,143,206,219,123,250, 22,120, 58,191, 90, 29, 31, 30,169,235,222,148, 10,191, 15, 45,142, 17, 23, 96,137, 14, 6, 90, -234, 72, 35,116,197,192, 16,125,236,244,236, 3,142,229,155,133, 68, 72,100,247, 94,233,194,164, 87,219,223,128,125, 12,207,143, -187,207, 18, 29,116,220, 59,237,198,219,245, 8, 98,118, 42,177, 80,135,166,109,151, 77,252, 15,191,121,254,224,112, 73, 72, 77, -221, 8, 99,234,119,255,225,171,175,255,228,199,223, 71,198, 33, 13,211,249, 81, 26,250,102, 62,221,172, 86,117, 51,221,151, 99, -121, 28, 6,185,122, 86,150,200, 34,133, 43,112,143,241, 41,107, 11, 46,187,158,242, 3,115,199,146, 21, 35,192,145,166, 32, 99, -116,125, 28,210,149,184, 62,238, 73,203,229, 55, 67,191,183,188,143,250,129,130, 96,187,191, 91, 1, 32,229,108,147,201,188,140, -124,194,164, 17, 9,253,110, 71,160, 96,196, 65, 68,232,250,106, 53,100, 93, 30, 44,234,166,126,253,252, 37, 19, 85, 85,157,211, - 96,142, 96, 20,218,152,186,109,100,137, 12, 85, 59,179, 52,116,171,221,208,119,253,234, 99, 51,155,245,195,240,250,253,135,187, -213,102, 55,116, 63,255,217,159,195,176,189,185,185, 68,237, 39,147,118,114,240,168,239,239, 98,213, 80, 8, 64, 17, 67, 56, 58, -122, 0,174,219,205, 58,109,111,250, 93,162, 16, 44,229,235,139,247,253,230,238,227,233,187,186,158,170,105, 63,116, 18,107, 7, -175, 99,188, 88,173,222,158,157, 47, 38,117, 78,189, 25, 48, 7,116, 13,194, 49,134, 65,181,170,235,109,183,173, 98,123,187,235, - 20, 8, 25,115, 82,215, 97,117,123, 17,155,165, 8, 27, 9, 18,147,227,221,205,199, 71, 15, 30,118, 57, 29, 31, 62,186,184,189, -114,146, 52,172, 17, 61,165,236,136, 0, 70,158,165,154,196,170,114, 53,116,205,218,131,105, 51, 93, 36,237, 8,185,170, 27, 77, - 25,193,251,221,230,240,248, 49, 33,198, 80, 87, 33,204,231,179, 94, 65, 40,132, 88, 55,211, 69, 74,187, 93,183, 43, 91,238, 88, - 53,177,106,204,204,134,221,144,128, 24,111, 86, 55, 87,119,119,139,197,241,180,158,128,123,238, 87,234, 86, 46, 89,117,211,176, - 68,205,137, 99,203, 85,117,120,248,160,219,237,110,110, 46, 72, 90, 53,115, 80, 14, 85, 26,118,195,208, 31, 28, 29,167,164,221, -230,118,249,224,241,179, 47, 62,255,236,217, 39,243,249, 60,212,213,208,245, 55,151, 31, 63,190,127,243,242,197,183,191,253,246, -197,215,175,222,188, 61, 57, 61,191,190,121,120,120,252, 47,255,242, 87,191,248,233,159, 16,113,238,134,167, 11,248,195,239,125, - 18, 5, 94,125,243,226,213,139,151,203,227,229,163,239,124,242,246,228,108, 57,159,172,135,252,237,171, 55,190,237, 31,207,231, -179, 73,205, 34, 44, 1,193, 43, 17, 22,206,121,244, 98,194,158,136, 93, 86,159,163,211,174,140, 53,199, 12, 53,152, 3,122,105, -116, 22,167,217, 72, 29, 8, 65,162,112, 86,232,178,153, 67,228, 34,184,164,146, 86,100,226, 50,100, 29, 52,131, 67, 45, 21, 50, -155, 42,184, 2,160,142, 23, 31, 35, 34, 7,112,117, 71, 55,119,205, 30, 66,168,130, 76,155,154,104,252, 58,239,225, 49, 50,166, -205, 93,132, 0, 80, 85,211, 48,216, 62,184, 77,132,132,100,134,194, 28,153, 74,103,101,140, 83,178,187, 25, 34,163,123, 54,237, -115, 18,100, 68, 52, 4, 98,170,235,154, 29, 13,198, 3,213, 29,133, 89, 8,165, 92, 37, 75, 15, 8,201,193, 2,139,169,237, 82, -111,170, 99, 87,223,203,178, 18,232,222,177, 13,196,136, 34,210,169,154, 41, 35, 34,241,221,174,191,219,174,143, 23,211,217,100, -106, 5, 71,187,167,113,193,200,153,129,193,172, 36,108,178,163, 32, 8, 21,166,229, 88, 96, 42, 79, 89, 68, 54, 55,254, 31,255, -229, 63,191,231, 17, 66,241,202,194,126, 58,179,215,209,142,141, 27, 24,115,123,197,204,231,200, 5,156, 70,247,247,241,177, 81, - 38,229,148, 97, 64, 53, 7,183, 16,226,110,183,173, 39, 83, 28,175,203,116,255,129,216, 11,154,198,113, 49, 17, 9,153,223, 11, -163,225,222, 32, 61, 62, 16,120,143, 90, 39, 36, 28,143,122, 46,216,155,194,156, 27,225,184,123, 41, 55,142, 29,166, 49,148,227, - 48,254,230,227,162,114,196,206,141,184,201,242, 53,169,250,209,225, 65,191,186,126,119,190,154,183, 85,168, 43,137,113, 62,157, -188,120,249,246,110,187,249,163, 31,124,150, 18, 30, 28, 30,189,127,243,226,193,163, 79,183,155, 43, 66, 97, 9, 35,196, 14,220, - 85,145,132,100, 4, 64, 34,114,249, 26, 0, 93,115, 98,100,187, 47,172,142,149,168,223, 35,126,246,174, 38,255,125,209, 23, 75, -153,120,164,238,141, 79,145,146,240, 44,183,146,178,185, 46, 55,172,251, 54, 90, 81,176, 43, 84,237,178,153, 84,229, 9,141, 44, -214,239,220,156, 89,220,149, 66, 32,131,139,139,171,205,106,211, 52,117, 21,227,217,217,101, 12,130, 40, 14,100,253,142,130, 32, - 82,136, 77, 61,153,169,131, 13, 89,251, 53,133,122,117,247,222,134,117, 83, 53,171,219,245,235,247, 31,110, 86, 43,169,234,127, -240, 71,127,186,185, 62, 1,205, 77,221,196,170,166,170, 37,208,122,126, 40,161, 33,162,249,116, 42, 18,146,194,118,117,109,195, -174,212,147, 77, 77, 83,223,119, 59, 55, 63,156,181, 68,124,118,126, 78,204,217, 52,138,188, 60, 57,121,254,241, 28, 65,231,245, -148,145,154,201,100,216,174,235,186, 18,150, 33,105, 78, 9, 1,170,170,218,165, 92,140,149,110,131, 3,197,102, 14,218,163,166, -236, 62,244, 27, 39, 18, 97,236,111,165, 89, 84,161, 90,173,110,141,130,132,102,215, 15,105,232,147, 38,211, 14,210, 48, 59,120, -232,195, 70, 98,219, 30, 60,132,220, 19, 75,218,173,186,221,198, 0,212,225,234,242,189, 16, 12,221,174,239,119,147,105,107,154, - 52,237,118,155,187, 88, 77, 54,187, 77,211,180,135,203,227,126,200, 49, 54, 13,167,110,187,155, 31, 62,220,236,118,232, 6,110, -119,219,213,237,221, 57, 81,108,171,118, 82, 5, 34, 32,142,132, 14,200,179,197, 17, 32,174,239, 46,171,186, 85,131,216, 78, 60, -111, 53,167,201,116,174,125,127,248,228, 51,169,107,161,128, 68, 67,191,110,170,202,156,243,176,251,228,179,103,159, 60,126, 48, -155,183, 85,172,114, 78,183, 87,231, 39,239, 94,189,125,243,234,219,231, 47,127,243,252,197,203,247, 31, 46,174,174,171,170,249, -135, 63,251,197, 95,252,147, 95,205, 38,147,174,219, 46,167,179, 31, 62,157, 62, 56,154,156,189,123,247,205,111,126,123,122,122, -250,240,201, 3, 90, 78,190,254,250,197,171,119,103,235,237,246,155,175, 95, 45, 57, 62, 60,152,197, 24,162,196,194,141,169, 66, - 76, 57, 37,205, 12,140, 60,246, 35, 93,221, 71, 12,212,248,126, 61,206,102, 13,172, 20, 57,193, 1, 64, 93, 17, 25,152,204,161, -144, 23, 93, 33, 25,152, 89, 21,169,156,131, 57,149,138, 59,231,236,136, 46,194,102, 88, 79, 38, 34,108,230, 89, 19, 49,115, 16, -115,205, 89, 5,145,137,173,220,112,165,220, 27, 77, 68, 68, 56, 4, 73,102,166,185, 60, 36, 76,205,202, 22, 0,188,116,145,212, -220, 17, 68,196,212, 82, 74, 69,222,141,200, 64, 20,131, 4, 33,115, 52,223,103, 63,220,134,161, 44,125,124,211,237,182,219, 45, -131, 11, 19, 48,215, 76, 68,104, 14,106, 88, 30, 90,229, 47, 48,179, 0,248,144, 19, 34, 75, 16,130,130,149, 39, 24,115,110,110, -128, 66, 24, 57,150,254,148, 1, 49, 18,141,221, 20, 49, 53, 71, 23, 34, 33, 41,164,179,171,245,234,176, 14,135, 7,203,172, 86, - 20, 64, 35, 56,160,144,208, 75,252,159,152,136,178,121, 32, 68,132, 52, 62, 86, 65, 68,204,188, 31, 50,120,138, 28,135,156,248, -175,127,245, 87, 37, 39, 15,123,239,236,120,232,220, 11, 41,168, 92, 21,217, 11,210,182,244, 51,199, 55, 48, 51, 32, 2, 96,230, - 98,156,160, 50,115, 40,187, 20, 4, 51, 71, 68,161,176,217,110, 20,112, 82, 85,251, 20,211, 94, 90, 94, 34,131, 28, 96,159,171, -188, 95,112,239,139, 10,229,201, 50,142,211,247,190, 17, 36,166,241, 21, 10,203,129,111, 99,240,166,184,250,138, 89,209, 1, 8, -164, 52,161,220,220,242,104, 41,221,155, 8, 9,144, 71, 29, 70, 25,152, 48, 49,130, 39, 68,124,250,228,193,239,158, 63,151,170, - 9,196,177,109, 69, 66, 0,251,219,223,124,251,253, 47, 62,157,182,205,197,229, 69,213, 78,206,222,191,206,202,147,182, 97, 10, -247,168, 49, 4, 36,150,113, 28, 63, 26, 38,199, 94,215,254,241, 54,198, 25,209, 74,180,115, 60,217,203, 99,207, 76,247, 82,243, - 17,145,140,123, 67, 86,225,173,150,220, 99, 81, 71,142, 92,161, 2,243, 17, 70,166,189, 2, 4,220,209, 64,171,122, 6,165, 3, -194,162, 93, 66, 38, 22, 25, 97, 53,177, 2,135,171,243,243,219,235,219,118, 58,153, 76,166, 87,103,151,206, 68,204,170,105,216, -174,171, 16, 21,105, 58, 95,134,216,110,111, 46,185,142, 8, 20,155,249,229,155,175,218,182, 22,162,179,203,171,247,103,167,183, -171,245,116,118,240,189, 47,126,208,111, 87,117, 12,117, 8, 10,192,213,108,126,252,164,158, 31, 17, 49,152,215,147, 73, 61,153, -109,215,151,105,123, 87, 62,172,238, 14,154,250,126,171, 67,207, 33, 94, 93,126, 20, 66,142, 21, 34,130,234,205,106,245,155,215, -111,175,118,187,100, 94, 19, 50, 59, 1,182, 77, 27, 98, 0,240,193,212,145, 88, 74,114, 46, 50,128,101,155, 46, 14, 31, 28, 29, - 31, 28, 28,221,221, 93, 44, 38, 51, 33,138,177, 33,130,229,124, 41,177,218,117,221,135, 15,175, 86,215, 39,230,146, 82, 46,237, - 24,150,170,174,170,197,242,120, 80,173,170,138, 67, 3, 8,211,233,162,239,214,221,144,155,182, 13,213,172, 95,221,132, 80, 77, -167,203,118,210, 58,133, 52, 12,204,236,136, 46, 85, 55,116, 76,178,221,172, 39, 77,197, 85,197, 64,117, 21, 63,188,127,254,248, -209,179,108,112,123,119,113,117,119,147, 21,150,211,217, 98,126, 88,183,179,161,219, 90, 78, 82,213,230,212,182,109,100,122,251, -230,107, 12, 77, 12,181, 84, 13,161, 6,198, 97,183, 69,230,245,234,162,235,179,230, 62, 86,147, 97,232, 99,172, 16,252,224,209, -131,103,159,125,122,116,124, 24, 98,176,156,239,110,174, 78,223,191,126,255,230,245,243,215,175,191,121,249,242,229,187,247,111, - 78, 78,192,237, 31,254,226, 31,253,213, 95,254,235, 79, 30, 63,203, 78, 85,208, 79,151,252,233,113,220,172,174,126,251,247,191, -249,240,238, 3, 8,183,199, 7, 55, 55,183,191,254,237, 11, 22,190,188,188,141, 41, 29,181,237, 98, 82, 35, 11,130,179,112, 85, - 87,228, 48,168,186,131, 8, 7, 33, 40, 31, 85, 46,214, 57, 42, 27,166,113,215, 3,152,243,120,174, 19, 98,206,138, 52,222,199, - 83,206,149,176, 48,169,121,246,204,136, 76,148,205,212,157, 1,133,169, 79, 6,238, 34,165, 75, 47,109, 59, 41,252,188,114,122, -121, 89,200,237,103,227, 68,232,227,176,150, 20, 12,192,163,112, 54, 23,100, 0,136, 33,218, 61,224,171,100, 19,192, 16, 8, 0, -133,198, 40,118, 86, 64,100, 17, 97,230,200,196, 28, 0,201, 74,142, 19,165,192,112,128, 48, 48, 57,192,166,239,182, 93,151,116, - 80,213, 16, 66, 93,213,230,168, 8,129,136, 3, 23,208, 20, 33, 16, 81, 26, 6,119,148, 32, 64, 68,142, 34, 33,229, 92,238,207, -230,134,224, 69,174, 22, 3, 35, 10, 73, 96, 70, 46, 48, 3, 3, 53, 37, 26,169,130,194,104, 0,103, 55,183,145, 96,210, 78,193, -129,137, 2,139, 19, 49,161, 48, 15,106, 89,115, 96, 20,142,197,117,138, 69,130,231,206,128, 8,144,220, 83, 30,250,156, 8,221, - 28,220, 53,105,230,191,249, 87,191,162, 50,204, 26,157,121,190,175,166, 2, 48,151,141, 51, 98, 1, 3,112,217, 1, 20,211,105, - 65,163,112,161,157, 48,162, 59,151,171, 61,221, 27,174, 75,210, 18,137,208, 83,119,181,238,142, 22, 83, 27, 39,232, 14,230,200, -196, 44,200, 12,232,180,255,255,142,226, 58,218,179,112, 9,205,246,146,163,194,194, 33, 6, 66, 27,239,236,232, 58, 0, 18,161, -184,233, 94,165, 84,110,196, 94, 70, 52, 82, 64,190,238,229, 96, 47, 98, 87,162,241,112,164,125,154,144,101, 52, 92,147,176,101, - 99,137,211, 70,158,191,254,216,212,117, 83, 55, 28,226,164,174,111,175,111,191,122,254,234,151,127,246, 99, 51,121,242,233,119, -187,237,205,241,227,167, 58,108,205, 13, 24, 17,156,165, 38,145,251, 63, 58, 34,186,170,221,227, 4,202,202,185,184, 80,136,156, - 24,247, 23,120, 26,137,237, 72, 33,236, 93, 89, 99, 22, 22, 70,162,205,216,101, 45, 57, 1, 64, 96,145, 82,109,130,209,215, 72, - 37,168, 58, 82,111, 0, 0, 40,112, 32, 98, 87,115,211, 17,234,108, 6,128, 18, 35,228, 62,196,234,250,234,246,246,250,182,137, -248,224,233,179,243,147,143,195,110, 11, 76,253,110, 35,129, 65,106, 68, 36, 75,253,208, 27, 56,185, 75,219,230,126,115,250,241, -155,195,249,220, 29,222,158,157,157, 94, 92,238,118,187,131,227,199, 63,248,206,247, 97,232, 8,147, 57, 77,150,199, 49, 74,179, - 56, 64, 3, 32,170,154,217,193,131,135,221,102,123,125,113,190, 91, 93,214,211, 35, 51, 37,194,245,245,135,213,221, 77,172,218, -163,227,121, 83, 77,135,212,119,125, 47, 18,250,148,111, 55,219, 23,151, 87, 77,140,235,174, 91,247,195,195,249,124, 54,109,231, -179,233,122,189, 97, 97, 50, 99,196,200, 97,218, 76,102,237,100,215,109,182,235,179,227,135, 79, 34, 35, 64, 2, 8,192,225,250, -242, 68, 1, 84,109, 57,155, 76,102,203,205,106,213,101, 99,176,186,153, 32, 16,152, 18, 11,104,119,112,116,204,168,169,207,196, -177,106,234,180, 93,153, 25, 18, 87,205,124,189,221,138,219,208,173,167,179,165,235,208,119,219,166,158, 24, 0,133, 38, 15,131, -171, 34, 98,140, 85,113,160,107, 78,139,249,236,209,227, 39, 93,242,205,110,123,122,249,209,220, 31, 30, 62,248,236,217,119,235, - 24, 83,191, 33, 22, 98,174,234, 86,200,242,176,155,207, 15,205,211,213,233,199,233,242, 1, 11, 9,203,100, 50, 81,240,122,182, - 68, 14,169,223, 52,211, 67,145,216, 13, 3, 90, 94, 44,167, 95,124,249,195, 39, 79, 63,105, 39, 45, 16,174,175,111,206, 79,222, -190,127,243,234,213,155, 55,223,190,121,245,226,245,155,247,167,167, 87, 55,119,159,127,250,249, 95,252,242,159,253,201,207,255, -220, 52, 93,126,248,246,233, 81,251,189, 71,211,138,236,253,235,215,175,190,121, 30, 39,205, 39,223,253,228,221,249,229, 98, 49, -173, 23,211,183,239, 79, 96,179, 91,214, 97,218, 54,117,140, 18,197,193,170, 88,199,192, 41,185,170,145,140,216,118,131, 34,255, - 36, 65, 38, 44,145,118, 36, 42,119,122, 50, 28, 63,168,128,144, 7, 3, 66, 22, 86,115, 70,170,107,113,245,148, 18, 34, 6, 97, - 0, 27,204,136,152, 1, 72, 72,213,202, 75,108, 74,153, 2,183,117,139, 76,204, 92,133, 90,205,134,161, 7, 48, 66, 82,211, 18, -193,184, 71,216, 6,230,192,130,196, 41,171, 35, 70, 33, 38, 26,114,169, 19, 58, 32, 48,146, 58, 26, 16, 19, 11,145,238,187,129, - 33, 68, 22,138,228, 34, 1, 88, 0, 81,152, 17,209, 0,179,246, 0,206, 68, 8,100,197, 97,175,182,235,187,108,218,132,170,138, -181, 19, 17, 83,164,178,210,132,210, 19,117,247,193,156, 1, 88, 68,193,155, 42, 58,128, 90, 46, 50,234, 98, 84,102, 32, 53, 71, - 43,148, 3,231,146,209,116, 55, 4, 38,102,194,170,138,229,111,187,170,157,221,172, 64,243,225,114, 25, 42,145, 32, 37,235, 29, -152, 17, 73,221, 17, 85,136, 41,132, 49,134, 87, 8,132, 56,162,150,179,186,217,136,184, 76, 57, 89, 82, 4,207,170,252,215,255, -226,175,240,126,147, 58,254,168,246,179, 10, 47, 66, 40, 35, 68,183, 34, 28,221,223, 66,177,140,154,138,224,169, 96, 23,198, 41, -119,121, 27, 64, 42,207,121, 64,112, 55,171, 99,184,188, 91, 31, 30, 44,193,108,132, 30,151,121,178, 4, 0,195,189,203,124,124, - 73, 26,175,245,123,248,121,129,247, 96, 49,132, 56, 49,141,192, 96,146, 98, 80, 50, 55, 0,115,244,145,248,179,231, 35,224,200, - 87,128,255,252,120,101, 34,102,218,203, 67, 70,217,202,152, 31,247,123, 40, 36, 32,226, 98, 49,127,251,246,221,102,151,234,166, -153,205, 22, 36, 60,109,171,111, 95,190,221,116,221, 31,124,249,244,234,118,117,248,224,225,203,223,253,221,237,237, 93, 12, 33, - 86, 77, 85, 85, 99, 99, 96, 28,109,241,254,203, 24,185,239,123,220,111, 9,174,250,189,129,182, 76, 97,246, 24, 6, 7, 40,143, - 52, 40, 67,202,189, 55,145, 0,156,144,178,233,248,164,114,119,213,113,196, 4, 5, 71, 44, 80, 54,199,128,136,228,142,205,108, -129, 4, 28, 24,172,180, 81,106, 98,166, 40,224,102,106, 84,197,179,247,167, 55, 23,167,143, 63,255,242,240,104,241,246,197, 55, -102,142, 24,136, 2, 50,166,237,157,176,116,125,202,238,147,233,212,128, 67, 85,107, 63,156,159,126,253,224,224,168, 79,195,155, -147, 15, 23,151,183,219,190,251,206,103,223,123,116,120, 4,158, 98, 61, 5,183,170,105,219,233,220, 12, 8,105,189,186,155,212, - 49,198,184,190, 91, 27, 65, 85,207,171,186,234,215,183, 64, 2,110,171,187,107,215,158, 45,137,136,230, 30, 12, 84,251, 58,214, -231, 55,183, 31,111,110, 99, 8, 67, 26, 86,187,206, 28, 22, 77, 67,232,204,236,106,102,185, 64, 89, 99,172,146, 14, 72, 50,157, - 46, 93, 7,115,234,115,182, 97, 75, 14,219,108, 57,231,110,123, 55,157, 29,116,219,187,203,147,215,199,143, 62, 25, 20,118,219, -205,144,135,221,234, 22, 67,157,182,215,211, 73, 43, 18,171,102,154,134,222,115,202, 57, 97, 8,145,171,224, 3,144,232,230,182, -235,215, 77,156, 24, 64, 21, 42,205, 3,120,202,105, 48,184, 71,168,142,233,216,190,235,143,143,142, 85,211,201,233,199,179,203, -243, 39, 15, 63,249,242,241, 35, 83, 36,130,197,242,176,236, 75,178, 38,137,177,235,187, 40,113,117,117,162,142, 28,171,186, 93, - 28, 45,143,154,201,140, 37, 84,245,132, 8,135,221,102, 58, 63,220,237,182, 49,192, 39, 79,159, 62,253,226,243,167,159,127,177, - 88, 46,136,176,239,118, 55,103,167, 31, 63,190,124,245,234,197,139, 55,111,158,191,125,251,238,227,201,233,229,101,211, 46,126, -254,199, 63,255,229, 47,255,194,186,205,118,115, 61,107,195,247,159, 46, 63, 57,170,110, 47,206, 95, 60,255,230,221,219,247,135, -143, 30,200,172,122,241,246,228,250,250,166, 75,233,255,253,143, 95,181,128,199,139,121,185, 56,147,176,136, 4, 9,238,150, 28, -152, 40,198, 88,208, 32,128,140, 68, 18, 2, 99,240,241, 98, 49,210,172,156, 72, 93,105, 60, 8,208,212, 75, 25,221,178, 85,194, - 33, 80,202,170,230, 69,135,170, 6,227,210,110, 63, 61,117, 0,205,153,144,129, 32,105, 70,192,226, 80, 27, 73,217,238,130,148, - 53, 83,201, 12, 2, 32, 64,118,207,170,129,217,202, 59, 43, 67, 8,146,239,239, 79, 8, 68, 20,152,145,136,139,183, 20, 81, 77, -109, 20, 42, 1, 19,212, 85, 85,104,145, 33, 10,222,147,174,144, 0, 48,136,236, 99,131,132, 68,234,168,154, 43, 98, 38,169, 98, - 85, 87, 53, 34, 38, 29,157, 10,149,136,150,219,228,190, 12, 90, 7, 41, 1,237, 50,240, 41, 55,223,177,186,104,102, 37, 75, 1, - 44, 68,169,196,138, 0,138,254, 21,247,133,210,219, 46,245,155,221,241,114, 30, 37, 34,115,217,101, 10, 23,170, 64, 65,251,114, - 54, 37,116, 33, 6,135,178,113, 69,148,108, 57,171,129, 41,130, 7,102, 7,247,236,217, 70,244,174, 20,172,126,153,101, 56,148, - 50, 17, 22,138, 11, 32,154,106, 73,168,143, 50,220,226, 38, 33,134,130, 24,199, 82,252, 45,214,108, 48, 4,244,209,190,173,217, - 36,148,107, 39, 56,184, 48, 5,240, 97,200, 65,112,108,245,208,152,122,220,251,181,131, 83, 46, 49, 72, 98, 34,100,240, 12,128, - 72,209, 45,151, 29, 62,252, 30, 74,227,128, 72,158,198,111,175,129,129,209,216, 85,200,128,251,248,225,200,231, 2,118, 4, 34, - 87, 32, 30,171,183, 72,227,230,220, 29, 56,160,235,200,242, 45,128,175,125,250, 7,255,228, 39, 63,248, 95,255,205,223,206,166, -147,217,124, 81, 85,213,131, 7,143,126,242,131,239,254,251,255,248,187,239,125,254,201, 98, 62,149,120,180, 60, 56,110,166, 7, - 96,125,183, 93,199, 16,144, 1, 89, 10, 31,127,100, 31,239,255, 65, 32, 71, 67,211,114,252,155, 27, 1, 56,146,103,245,189, 41, - 11, 65,129,198,225,220,248, 14, 68,163, 53,214,209, 16, 11, 78,136, 16,201, 77,157,120,124, 38,151, 14, 24, 21,111,148,140,111, - 87, 68,238,136, 28, 16,140, 81, 48,208,158,182, 3,160, 35, 28,199, 1,250,126,144,170, 70,203,150,147, 84,211,108,131, 75, 64, - 55,161,137,199,206, 0, 84,135,102, 50, 75, 67,230,186,133,156,239,110,207, 8,200,193,134,174,239,118,131,186, 1,203,241,193, -131, 24, 34,104,101,121, 72, 57, 69, 96,215, 60,236, 86,210,204,183,219, 93,253,217, 60,155,165,220,161, 3,115,180,220, 73,172, -183,235, 85,183,221, 78, 39,243,213,237, 37, 66,149, 82, 87,133, 26,155, 44, 60,185,219,110, 46,214,171, 24, 99,215,237,234, 88, - 85, 49,158,175,183,191,121,255,225, 39,242,217, 52,106, 51,169, 25,133,136,173,108, 59, 28,145, 41, 84, 19,239, 87, 9, 58, 71, - 89,111,187,192,146,179,166,126,215,111,174,211,110,215,167,158, 98,187,187, 62, 23,169,234,217,252,118,117, 59,244, 55,146,166, -152,181,219,109,155,201, 18,192, 2,161,185,138,196,233,100,142,238,105,219, 53,117,211,175,184,170,231, 28,216,147,154,169, 83, - 76, 93, 63, 12,155,102,113,228,160, 68, 21, 48,231, 60,244,119, 87, 18,226,219,147,183, 8, 72, 34,143, 14,142,107,241,215, 47, -127, 23, 15, 62,205,187,174,173, 99,223,247, 57,231,205,237,105,221,206,186,205,102,246,228,139,156, 82, 2,158, 47, 30,144,224, -102,183,157, 49,162,199,174,187, 11,213,108, 58,155,109,118,187,249,114,241,228,147, 39,135,199,143,155,105, 91,213, 85,206,233, -238,242,242,246,234,236,227,199, 15, 31,206, 78,223,159,156,158, 95, 93, 95, 92, 93, 7,145,159,254,232, 31,252,225, 15,255,240, -248,193,163, 97,232,171, 42,252,228, 59, 15,231,147,184,219,172,126,247,235,111,207, 79,207,143,143, 15,226,114,126,114,117,117, -246,187, 27,142,116,113,118,181,186,188,125, 60,153,182, 85, 44, 54,212, 32, 17,129, 96, 20,228, 65, 0, 42,121,152, 97, 72,132, - 16,152,178,187,185, 17,114,182, 68,232,112,207,219,118,173, 88,134,172,163,141,205,140,160,160,100,196, 0,250, 93, 14,145, 69, - 0, 28, 82,214,209,226,137,134,232, 76,148,212, 8,177,137, 1,152,187, 93, 26, 63,255,134,125,215, 73, 16, 50, 48,243, 97, 72, - 4, 0, 76, 14,150,179,138,112,195, 49, 83,206,232, 8, 32,196, 14,168,238,224, 94,104,169,165, 53, 57,152, 11,177, 16, 13,160, - 57, 89, 16,102, 34, 7, 8, 76, 37,252,147,213,154,186,174,154, 70,179,101, 48, 80,141, 78, 61, 0, 58, 16,129,129, 27, 1, 58, - 78,234, 32,132, 41,107, 29, 67, 12,161, 12,165,195,168,200,246, 62, 37, 34, 2,183,146, 73, 65,199,156,141, 3,147,131, 25, 18, -129,250,152,136, 83,119, 17, 26, 15, 75, 70, 43, 3, 9, 5, 4, 53,231,128,104,106, 34, 97, 51,164,245,106,125,180,156, 55, 77, - 3,192,138, 70, 96, 40, 84,232, 47, 99, 83, 19,176, 14, 17, 16, 85,205, 65, 27,174, 18,104,202,169,140,199,220, 93, 53,185,187, -154, 3, 58, 19, 6,129, 65,139,235,138, 70,115, 19,162,152, 91,137, 96, 59,104, 33, 68,152,161,151, 19,115,159,113, 47,135, 35, - 90, 49, 37, 57, 2, 1,255,254, 57,171,106, 5,126,175,230, 2,160, 37,211, 45, 82, 7,223,245, 93,144,118,212,162,250,239, 57, -136, 48,218, 48,200,192,205,148,137, 75,253,117,204,252, 23, 11, 17, 8,130,238, 69,166, 37, 23,227,132,232, 90, 86, 41,224,186, - 15,114, 34, 48,129,105,233, 50, 16, 21,177, 8,128, 7,100, 97,203, 90,176,100,238, 10,194,160, 5, 79,227, 54, 66,119, 96, 12, -174,104, 78,217, 31, 63,124,242,229,103,167,175,223,157, 78,231,203,199, 79, 62, 9, 77,252,244,233, 39,215, 55,119,255,230,255, -254,251,127,253, 79,255,209,201,235,231,103, 39, 31,230,203,254,217,151, 95,158,188,125, 61, 12,179,170,145,194,243, 28,195, 67, - 8,238, 58,230,247,115, 66, 66, 96,178, 62,151, 1,184,153,187,237,223, 43, 75,186, 31,145, 73,124,223,244, 27, 17, 57, 12,224, - 96,106,136, 78, 92, 84,175,163,111, 27,220, 29, 84, 36,142, 73,248,130,154, 4, 29,223, 97,176,144,158,193,164,252, 29, 96, 24, -193,153,232, 41,133,233,212,250,164, 41,143, 16,110,145,156, 6,205,157,107,118, 51,138,220, 13,125,182,220,180, 11, 70,204, 57, -233,221,201,224,113,183, 89,205,154,214,145, 55, 67, 63,148,196,130,250,131,137,208, 40,116,113,138,109, 51, 95, 18, 83, 69,144, -186,221,195,163,229,242,112,121,113,122,182,186,185,154,204,231,185,219,176, 52,204,113,210, 78,230,179,233,199, 87, 95, 1,241, -228,240,225,110,117,177,238,110, 69,164,101,188,217,172,110,182, 91, 38,154, 78,166,151, 55,215, 77, 93,153,250,215,239, 62, 48, -243,207,190,243,172, 69, 97, 52, 53,159, 52, 77,221, 84,144,116,151, 50, 0, 12,102,145,132, 98, 12, 18,178,165, 88, 69,178, 76, -177, 30, 82,183,222,238,152,105,219,117,135, 7, 19, 14,146,163, 66,208,139,128, 0, 0, 32, 0, 73, 68, 65, 84, 92,245,185, 78, - 59, 52, 5,131,221,234,186,158,204,251,212, 3,113, 45,188,189, 61, 3,105, 61, 27,162,186,233,124,118,148,114, 55,244,155,172, - 30, 99, 59,157,207,132,142,145,195,144,134,172, 3,246,202,129, 87,185, 91,223,222, 60,125,242,236,225,193,193,186, 31,220, 13, -176,218, 14,137, 85,251,148,114,218,101,243, 71, 79, 62,245,212,113,172,234,102, 89,199,138, 14, 31,244,219, 91,215, 33,155, 24, -122,186,190,146, 80,117,171,179,201,193, 19,239, 55,159,124,247, 7,207,190,252, 97,213, 84, 49, 86,154,211,234,246,250,230,242, -236,226,252,228,253,135, 15,111,222,125, 60,191,185,190,190,185,219,244,221,231, 79, 63,255,241, 23, 95,124,247,187, 63, 86,221, -154,237, 30, 45,103,159, 29, 31, 50,218,221,237,213, 55, 95,253,166,157, 77,143,158, 62,250,240,238,221,193,147,199,121, 5, 87, -215,215,179,170,122, 52,109,166, 77,163, 6,206, 12,128,149,136, 48,247,169, 31, 15,119,230,100, 57, 15,185,112,238,136, 56, 67, -105,206, 91,246, 44,128,238,158,203, 43, 30,146,170,171,167,242,198,108,217,132, 9,204,221,113, 80, 19,182,182,109, 82, 78, 62, - 46, 97,109,252, 43,136, 8, 64, 93,223, 75, 96,119, 87, 64,200, 57,196,178, 85,130, 97,216, 33,196,174,219,130,131,170,194, 24, -224, 35, 54,144,192, 10,158, 93, 17,209,221,132, 37,155,103,115, 70,171, 99, 76,163, 21,154,220, 60, 34,103, 75, 69, 53, 76, 97, - 44,147, 74,140,253,144,192,148,153,171, 42,150, 70,120, 61,109, 25,100,215,237,134,161, 83,179,200, 1,203,229, 8, 77,205,213, -189,169,171, 9,177,187, 5, 10, 10, 70,224,204,188, 27, 58, 33, 10, 72,125,210, 42,112, 54,119,247,209,165,138,100,228, 90, 98, -245, 76, 57,187, 42, 8,221, 95, 77, 81, 29, 3, 67,100, 73,140, 0,174, 57,169, 58, 51,239, 44, 95,173,110,231,109, 61,155, 47, - 52,247,128, 74,136,238,164,201, 42,102, 4, 80,128,128,132, 76,106,106,150, 9,137, 36,118, 57,185, 25, 33, 76, 42,222,118, 62, -120, 2, 70,102, 73, 58,140, 67, 21, 48, 85,227,191,249,171,127, 10,132, 88, 46,131, 14, 37,202, 2, 4,123, 52,185,187, 57,149, -152, 34,151,179,143,137,246, 95,114, 81, 45, 49,114, 1,203,140,171,130,145,182, 76, 4, 86, 82,234,232,196, 12,121, 88,247, 54, -107, 27,216,155,186, 73,246, 64,131,177,192,227, 69,144, 13, 99,141,184,128,182,246, 90, 21, 51, 44,221, 4,252, 61,101,126, 4, - 14,140,138,110, 40,239,239,132, 88, 94, 68,202,108,100,252,101,101,138, 65,227,107, 6, 16, 56, 20, 34,205, 61,109, 14, 17, 65, -132,238, 79,121,119, 52,240,167, 15,151,223,190,122,147,210, 48,157,206, 38,147, 69, 51,105,217,244,197,155,247,243, 89,123,124, -184,252,228, 59, 63,172, 2, 13,131,137, 64, 30,114,140,209, 53,151, 37,193,248,240,227,145,159, 51,102,120, 96,255, 36,115,221, -175,153,201, 85, 71,114, 77, 16, 55, 71, 36, 14, 97,220,133, 48, 33, 50, 20, 40, 13,141,192, 5, 4, 64,164, 82,121,229,241, 22, -127,207,141,252,125,170, 65, 51,214, 85, 4,150,210, 8,227, 58,122,182,130,191, 65, 0, 10,162,154,175, 46,111,187, 33, 79, 39, -211,131, 71, 71,239, 94,191, 35,105, 76, 21, 65, 81,234,213,245, 41,113,104,218,182,219,221, 73,140,110,166, 78,155,187,211, 73, - 35,194,116,126,121,125,122,113,121,189,190,107, 38,179,127,252, 95,254,147,213,234, 70,152,221,210,226,248, 33, 14, 29,114, 19, - 39,179,201,124, 81,214,179,183,151,103, 0, 52, 93, 30, 64,218,173,238,238,186,110,235,121, 7,110,196, 33,245, 93,197,232, 57, -197, 24,251,126,183,217,236,158,127, 56,253,230,253, 73, 54,173, 66, 21,165,206, 90, 4,132,252,225,234, 10, 28,166,109,235,234, -211, 73,219,165,132, 37, 69,132,156,211,182,110,230,234,158,114, 74,221,106,189,237,189, 84,254, 98,181,217,174,204, 93, 77,147, - 51, 35,130,246,185, 91,109, 7,173,219, 89,191,187,227,170,101,242, 40, 81,251, 13,114, 85,181, 97, 24,122, 55, 4, 75,132,184, -219,221,177,136,187,182,237, 98,125,115, 90,215,211,105, 59, 97, 68, 17, 4, 55, 85,184,184, 58, 89,173,239,212,168,110,231, 13, -179, 73,180,212, 55,205, 68,152,155,197, 3, 29, 54,150, 19, 73,152,206,150,110,249,238,246,250,193,163,167,199, 15,159, 76,102, - 83,194, 0,150,186,212, 81,168, 43,225,205,221,117, 53, 91, 54,179,229,226,224,224, 15,254,228, 23,159,126,239,251,237,108, 74, -196,219,205,221,229,213,201,201,219, 55,175, 94,189,124,249,230,245,243,183, 31,222,159,157,223,173,215,243,233,226,151,191,248, -243,191,252,239,254,251,118,118, 52, 88,255,232,225,195,207,143,234,103,199,237,230,238,250,237,203, 23,223,124,253,237,147,207, - 62,141,203,217,191,251,219,191,127,240,224,248,242,230,246, 55,191,254,246, 97,219, 28,207, 39,128, 92, 0,233, 85,164,166,170, - 9, 41,171, 39,245,146, 64, 40,141,121,205, 9,108,140, 23, 19, 1, 3,101,205,229,205, 61,153, 17,161, 48, 35,160,170, 5, 97, - 34, 30,205,206,140,165,159,195,204, 49,114,206,154,109,196,148, 11,163, 90,185,145, 1, 5,140, 65, 76, 97,124,153, 46,200, 71, - 26, 89, 52,238,168, 57,131, 89, 54, 13,136,204,236, 0, 81,162,237, 9, 35,184, 7, 88,149, 5, 85,225,240,148,200,130,136,140, - 51, 37, 0,117,199, 66, 64, 33, 22, 33, 53,199,189,140, 65,205, 99, 8,109, 59,169,155,118,159, 83, 48,116, 48,183, 40, 34,145, -213,204, 84, 99, 8, 72,100, 62, 10,252, 16, 33,169,166,108,130,132,196, 57,123, 93, 9,145,152,121,206,206,130, 76,161, 44,117, -131, 80,206, 90, 12, 36, 65, 8,144,205,140, 8, 73, 40, 74, 68, 4,102, 22,137, 52,190, 97, 27, 0,174,187, 4, 41, 47,231,179, -200, 20,235, 10,129,213, 85,208, 89,216, 44, 51,146, 16,141,204, 64, 68, 33,206,238, 57,165,148,115,133,132, 20,179,102, 24, 89, -177,168,106, 66,232, 6, 89,179, 48,187,155, 96, 97,204, 91, 17, 28, 26, 24, 1, 0, 49, 27, 26,186,187, 58, 17,154, 58,162,129, -149,187,182,123,118, 39,196,194, 9, 0,116, 7, 45,110,111, 55, 87, 47,143, 10,194,226, 59, 29, 25,186, 57,217,108, 62,127,255, -234,132, 30, 44,161,228,105,145,144,196,192, 93,129, 4,203, 44, 26,198,217,213, 56, 92, 1, 47,176, 45,190,215, 24,141,139,203, -113,119,234,196,226,234, 8,110,234, 44,156,135, 60, 50,184, 28, 12,139,113,213, 0, 16, 5,193,246,222, 65, 32,115, 43, 41,121, -188, 71,240,222, 27, 51, 20, 74,112,168,228,154, 84,181,138,213,159,254,236,123,255,219,255,249,235,249,116,214, 76, 91,161,112, -252,232,241,179, 39,151,255,199,191,255, 79,223,253,252,211,205,213,201,251, 15,239, 9,163, 68,110,219, 73, 93,215, 18, 35,161, -170, 1,163,192,168,139, 42,182,151, 66,169,115, 34,214,212, 3, 17, 20, 66,129,106,249,246,162,144,233,232,176, 85,205, 56, 86, -125,141,164,180, 75, 96,156,130,129,187,105,201,115, 1,154, 59,149,242,153,155, 35,149,183, 31, 41,105,168, 24, 3,114, 64, 38, - 10,194, 68,150,114,209,160,163,187,199, 74,147,186, 67,238,182, 67,191, 75,121, 32, 3, 2,236,250, 77,136,147,148,125,123,115, - 86,183,139,102,118, 52,116, 27, 68,214,190,231,106,106,253, 46,167, 97,114, 48,203, 41,119,253, 48,100, 27,186,244,228,241, 3, -138,109,104,102,152,186, 56, 59,172,218,101,191,237,168,170,208,108,216,108,218,217,209,250,238, 90, 83,215, 46, 22, 66,212, 35, - 94, 95,157, 46, 14, 30,109,239,174,167,243, 67, 17, 57, 56, 92,244,119, 55, 44, 65,181, 7,105,179,247, 23,171,213,217,205, 77, -219, 86,102, 62,109,218,202,227,174, 31,102, 77,219, 84,213,139,211,139, 42, 86, 63,250,236, 9, 51,207,234,233,114, 57,235,186, -225,230,230,188, 75,105, 24,122, 34, 70,174, 82,159,114, 26, 80, 98,206,195,108,190,128, 28, 52, 89, 74,125,234,214,119, 68, 71, -139,121,172, 39,104, 87,102,105,182, 56,170,163,120,182, 97,232,118,119, 23, 92, 15,136, 11, 38, 26,186, 27, 66,195,208,206,166, - 75,116, 50,244, 73, 83,221,198, 42, 15,119,170, 65, 53,139,230,110,183,187, 94,111,152,165, 14, 50,155, 63,184, 91, 93,223,110, - 86,134, 64,154,114, 26,220,109,182,120,152,211,110,121,248,232,246,246,114,189,186,238,251, 65,194,180, 27,244,228,171,255,103, - 50, 61, 88, 30, 62, 48,183,182,106,154,118,126,115,119, 61, 63, 56,254,209, 31,253,164,157, 31, 30, 30, 31, 87,149,228,156,251, -190, 91, 93, 95, 95,156,189,123,251,238,205,201,217,249,201,217,213,217,213,229,245,221,106,218, 76,126,246, 7,127,252, 71, 63, -254,163,186,153,190,124,249,119,237,244,232, 7, 79, 31, 60,125, 52, 77,221,221, 55, 95,255,250,228,253,201,209,147,199,192,124, -122,113,249,226,221,135, 60,164,175,190,250, 70,204,159, 46,103,117, 8,201, 64,152, 17,169, 10, 76, 84,240, 44, 22, 98,108,155, - 58, 13,189,170,130, 89,233,203, 88, 89,126, 66, 25, 5,148,172,130, 23,149, 0, 33,245, 41, 69, 14,200, 52,104, 14, 36, 34,140, -238,230,206,140, 76, 56, 36, 75, 29, 56, 19, 0,162, 25, 16, 21,145,230,190,236, 8,125,202,132, 24, 98, 25, 49,187, 48, 7, 9, -217,178,153,170,230,162,182, 22,100,226, 17, 90,158,221,145, 75,227, 27,205,202,219,171, 17,137,136,244,125, 18, 66, 36, 84,211, -172,101, 82,237, 5,249, 72, 35, 37, 11, 84, 29,185, 8,244,220, 92,131, 8, 33,246, 93, 55,164, 76, 72,217,243,208,247,224, 78, -232,131,102,200, 8, 8, 18, 99,105, 96,133, 24, 80, 61,129,230,148,128, 32,148,190, 9,141,105,115,119, 43,211,126, 7, 83, 27, - 0, 28, 28,147,105,249, 69,131,165, 98,237, 99, 17,112,103, 14,132, 96,206,224, 70,104, 64,228,110,140,124,215, 15,219,245,230, -209,225,124,210, 54,170, 86,254, 68,117,136, 57,103,116, 39, 14,238,174,166, 76, 65, 4, 93, 45,229,156,179, 18,123,100,114, 33, - 43, 7, 5, 22, 25,108, 16,114, 51, 45,236, 52, 34,128, 1,132, 17,180,204,100,144, 0, 24,198,212,184,141, 64,117,195,123,163, -249, 72, 13,216, 15, 50, 92,141, 36,128, 25, 75, 89, 82,131, 59, 48,161,187,141,123, 78,252,189, 24, 29, 92, 73,234, 38, 98,206, -142,224,229, 5,192,212, 10, 0,216, 11, 91,216,141,202,137,168, 99,135,130,192,243, 8, 43,222,235,213,105, 31,153,119,115, 47, -105, 66, 36, 36,169, 10,172,107, 0, 35, 3,115, 0,166,178,142, 69, 83, 79,128,110,121, 76, 3, 16,168, 59,237, 17,105,165, 64, - 33,132, 99, 96,126, 4,234, 0,122, 80, 55, 6, 28, 82,254,252,201,167,143,143,222,191,120,243,110,121,116,112,112,248,100,113, -120,244,253, 31,124,239,236,226,234,127,254, 95,254,237,191,250,111,127,254,233,103,223,173,106,185,190, 89, 63,125,246,236,250, -244,148,152,156, 8, 24,116, 84, 5,224,158, 51,195, 68, 98,101,151, 43, 1, 28,135,180, 99, 64,160, 64,129, 77, 13,205,145,193, - 82,146, 80,141, 0, 36, 68, 66, 44,100,158,251,244,234,125,231,110,116,137, 35,104,202, 40, 76, 36,251, 98, 7, 33,147, 13, 25, - 34, 99, 96,100,209,190,119,166,125,243, 2,185,146,180,235, 1,145, 67,133, 68,136, 81, 68,192,149, 72, 16,197, 53,107,182, 12, -113, 50,171,119,119,167,195, 96,177,169,192,128,153, 55,171, 43, 25,159,156,150,210,224, 4, 89,117,214,212,253,118, 35, 28,116, - 24,170,229, 19,119, 55, 52,221, 93, 3,122,159,105,105, 25,184,230, 56,113,211,221,230,206,186,141,232,182,173,167, 94, 9,153, - 26, 36,208,184, 53,239,251,126,219,247,174,118,183,190,185, 94,109,213,245,110,179, 11, 18, 66,144, 71,143, 30,217,135,147,171, -171,179,131,217, 28,145,254,238,213,171, 24,165,105, 38, 19, 35,242,165,132, 48, 40, 84,245,146, 64,123, 85, 1, 75,128,109, 51, - 49,247,108,182,233,118,100, 90,213, 45,185, 33, 2,161,119,253,110,209, 54,211,195,199,125,175,253,250,210,114, 94,206, 38, 67, - 31,182,134,112,123, 38,213,212,188, 35,169, 45,173,174,111, 94,198,246,160,169, 39,205,100, 78,228,211,201,228,230,230,170, 31, -250, 16,229,122,221,221,173, 55, 77,213, 78,154,137,166, 45,154, 91, 78,234, 74, 48,165,170,118, 87,142,209, 44,167,100,253,118, -117,125,246,254,240,248,243,229,193,113, 73, 23,214,237,228,102,181,238,178, 79,231,243,221,135,231,186,187,251,201,159,253,215, -207,190,255,227, 80, 73, 16, 1,135, 52,244,235,213,205,245,233,135,183,111, 94,189,253,240,241,227,217,249,217,229,213,213,106, -213,117,253,247,190,248,226,127,248, 23,255,211,197,199,183,125,191,147,118,249,228,193,147, 31,125,126, 52,109,240,226,252,205, -155,111, 95, 78,151, 11,105,155,179,203,179, 39, 95, 60,186,222,236, 78, 79, 47, 23,117, 56,168, 98, 29, 43, 66, 40,165,193,192, - 92, 69,201,102,217,157, 8,235,186, 42,167, 79, 95, 66,236,197,178, 73, 88,110, 18,230,198, 20,220,115,185,220,171,154, 16, 15, -154, 43, 9,201,114,133, 21, 98, 64,180,126, 72,217,124, 86, 87,253,208, 51, 99, 36,114,115, 83, 99, 71, 22,234,146, 2,227,164, -170, 77,181,207, 9, 16,145, 69,246,195,130, 58,136, 35, 15,253, 64, 76,234, 46, 76,238,230,232,117, 19, 7,117,112, 11,132, 74, - 24, 72,178, 90,118, 64,242, 72, 85,136, 65,115, 6,112,114, 20,146, 62,167,148,141, 9, 8, 37, 91, 34,112, 9, 81, 53, 17,178, - 48,198, 80, 37, 85,115, 16, 34,145,232,142, 93,223, 71,213, 16,121,219, 23, 98, 78, 86,183, 97, 72,194,194, 33,224,136, 66, 1, - 66, 32,211,205, 48, 8, 49, 35, 59, 24, 18, 50,177,101, 15,145, 25,209,144,220,220, 5,192, 72,199,188,181, 23,172, 14,131,199, - 32,136,129,220,202,236, 55, 18, 15,230,110, 9,203, 23, 73, 18, 67,236,212,110, 47,175,159, 28,206,167,147, 5,170,151, 52,167, -186,147,107,140,156,179, 41,128,153, 87,194, 56,194,241,157, 80,155, 90,118,253, 48,244, 67,219, 86, 65, 88, 51, 1, 6,243,174, - 12,217, 42,145,242, 72,203,217, 1,153,255,250, 95,252, 85,129, 18,220,199, 34,247,175,251,232, 54,140, 42, 59,192, 61,146,191, - 92,189,209,221,153,208,204, 28, 92,152,169,244, 63, 97,236,153,238,201, 94, 99, 43,108,188, 38, 51,166,221, 26,171, 54,148, 71, -122,233,113, 21, 40, 17,148,197, 67, 1, 80,142, 24, 73, 3, 5, 64,115,231, 81, 65,228,224, 99,181,149, 92,221, 21,192, 16,101, - 28,224, 23,110, 3,142,104, 93,223,227,140, 75,108, 28, 76, 29,204, 61,153,230,130,209,216,255,102, 99, 96, 6,121,156,154,141, -227, 31, 2, 70, 46,133, 37, 0, 32,161,199,199,179, 95,255,238,133, 57, 28, 30, 29,198, 80,185, 89, 19,229,239,126,243, 77, 59, -109, 14,151,211,217,241,147,155,211,247,103, 39, 31,251,110,215, 78,102,197, 39,201,132, 44,161,244,185, 75,172,197, 52,131, 91, -193,253,154,149,144,108,145, 52,101, 55, 71,102, 4,160, 66,133,116, 7, 30,191,207,197,102,139, 72,110,174, 41, 49, 33,241, 56, - 76, 47,175, 32,154, 51,184,150, 47,189,164, 32,202,103,180,110, 23,177,106, 76,149, 24,137, 3,197, 96, 89,209,204,189, 4, 73, -145, 88, 94,252,230,171,190,239,151,243,201,242,201,227,183, 47,158, 35,197,156, 54, 93, 63, 8,123,211,206,182,155, 77, 59, 93, - 16, 49, 5,209,156,114,206, 54, 92,205,167,179,237,110,119,117,115,115,122,113,121,187,217,254,193,151, 63,126,244,232, 19,212, -206,242, 0, 28,134,126, 93, 71,105,219, 86, 51, 85,243,227,136,233,252,195, 55, 92, 77,153,201,140, 82,191,233,251,237,100,126, - 96, 57, 77, 23, 75,118,212,221,238,228,252,125, 86,100, 8,169, 31,222,157,159,191,185,184,238,135,220,165, 62,144,148, 0, 66, -136,114,187,222,172, 54,235, 7, 71,135,219, 93,255,238,226,108,209, 78,134,180, 5, 0, 22, 73, 41,213, 33, 58,184,154,238,182, -119, 85, 61,233,119,235,174, 91, 35, 32, 75,165,218, 5,137, 93,218, 73,136,221,238, 78, 88,218,118,114,113,246,209,193,170,122, -210, 15,121, 24,118,109,211,184, 99, 54,182,220, 25, 88,219, 46,152,164,235, 86, 77, 53, 65, 16, 3, 35, 4, 71, 28,134, 33,231, -225,244,246,214,129, 31, 31, 62, 56, 88, 30, 1,178, 27,152,166,131,197, 82,234,246, 96,126, 80, 5,217,179,178,243,102,183,173, -218,217,164,138,147,195,135,105, 72,253,234, 60,198,106,182, 56,158,206, 14,115,191,233,251,190, 31,250,159,254, 87,191,252,242, -143,127, 94, 87, 33, 4, 65,132,205,102,115,115,121,246,246,197,215, 95,127,253,187,231,175,223,188,254,240,241,205,201,249,205, -106, 85,199,240,203,159,255,249, 47,126,242, 39,159, 60,123,134, 49,180, 77,251,229,147,233,247, 63,153,107,218,189,125,249,234, -221,203, 55,143,191,251, 25,180,245,111,127,251,245,211, 79,159,188,120,119,250,235,191,253,221,163,182, 94, 78,218, 42, 10,148, - 28, 50, 81, 45, 17, 9,134,114,191, 35,169,171,202,193, 85,147,154, 10, 11,148, 98, 28, 22,181, 36, 10, 83, 32, 41,241,143, 18, - 61,224,200,150, 13, 8, 16, 41, 16, 59,104,182,188,235,123, 4, 12, 76,217,148,144,186,172,110, 90, 96, 89,106, 54,152, 71,230, -192,216,167,156,114, 46,114,248, 40,228,136,102,214,198,160,102, 73,115,121,103, 29, 69,213,128, 85, 12, 93,159,205,146,170, 22, -239, 6, 0, 57,154, 16, 71, 97, 98, 26,114,206, 41,155,123, 19,162,186,186, 91,129, 22,128,155, 0, 5,150,236,230, 0, 33,176, - 58,170, 59, 33, 86, 66,196,156, 82, 50,183, 32,146, 52,119,125, 34,129,156,117,215,117,170,218, 54,117,206,217, 53, 49, 18, 33, - 69, 33, 53,239,213,152, 8, 16,202,216,185,220,210,132, 89,136,179, 89, 25,149, 18, 22, 95, 6, 18, 17, 17,103, 83, 55,207, 14, - 81, 36,198,160,110, 0, 42, 28,144, 73,152, 13, 72,205,170, 82, 72, 33, 62,185,185, 99,203,203,217, 12,204, 32, 8,122,209,207, - 17, 9,151,222, 30,185, 9, 35,161,184,155,130, 7, 70,145,106, 59, 12, 58,244,145, 37,151,215,122, 98,183,220,167, 4,132, 21, - 83,118, 2,176,146,222, 51, 4,254,235, 95,253,243, 2, 12,178,189,105,110,223, 23, 29,231,218, 60, 74, 55, 70, 36, 1,236, 59, - 14,247,160,177,177,177, 92,238, 39,232, 68, 92,216,149, 99,184,124,212, 60, 1, 2,122, 26,182,131, 78,154,186,168, 23, 1, 20, - 73, 70, 37,147,141, 77, 56,119, 48,176, 82,199, 42, 35, 10, 26, 73, 6,123,176,145,187,105, 26, 47,180, 35, 78,158,240,254, 37, - 99,223, 12, 66, 4, 34,161,189, 90, 22, 74, 2, 21,201, 65, 75,232,138,198, 0,252,184,122,184,207, 69,238,255,251,242, 36, 43, - 47, 20, 54,155,205,216,243,183,175, 62, 28, 44, 23, 7, 7, 7, 33, 4, 83,157,212,241, 63,254,167,175,191,243,236,193,124,182, -168, 39,211,155,171,219, 47,190,243,221,237,221, 13, 49, 9,145, 57,236,227, 46,163, 67,170,188,148,236,105, 16, 12,142,158, 77, -193,133,100, 52,194,178, 0, 24,236,135,141, 62,110,111,138, 95, 16, 0,139,113, 23,239,159,153,238,174, 57,237, 86,151, 57, 15, - 44, 21, 7, 25, 25, 79, 76, 14, 20,234, 22, 1, 89,194,168, 98, 5, 7,207, 20,196,251,158,136, 37,132,161,239,222,191,249, 96, - 92, 29, 28, 29, 29, 60, 60,252,248,230,125,223,247, 20, 91,192,200,168,183,103,111,128,235, 24, 69,164,114, 34, 4,200,125,175, -253, 77,136,213,102,187,253,112,118,254,241,252,114, 72,249, 79,255,244, 31, 47, 39,113, 72, 67,153,197, 85, 85, 92, 28, 60,224, -230, 96,117,115,190, 60,126, 84,181,245,249,233, 9, 34,166,237, 93, 74,125, 30,186,201,236,209,176, 93, 15,253,206, 53, 15,221, -250,226,228,165, 26, 70, 9,221,110, 85,183,245,203,119, 31,159,159,158,246,185,215,148,135,156,133, 57,165,161, 79,125, 19,235, -110,232, 17,160,169, 99, 82,187,184, 93, 45,167,203,229, 98,190, 91, 93,214,205,100, 72,249,238,238, 44, 48, 3,137,129,212,117, -221,111, 55, 18,171,166,158,152, 27, 19,109, 54,235,108, 46,177, 65,183,171,219,219, 12, 30,171, 26,192, 93,251, 32, 21,154,174, -239,110,154,118,174,195, 22, 60,115,168,116,216,180,211, 67,137,147, 97,216,170, 38, 0, 24, 82, 94,109,119,131,218,162, 93,212, - 34,117,211,244,187,213,250,238,170,105, 91,145,112,176, 92,244,221,110,215,245,179,233, 36, 15,195,144,146,170, 13, 41, 87,245, - 20, 72,204,114,223,247, 40,245,108, 50, 3,160,213,110,163,230, 77,172,126,240,211, 63,250,226,251, 63, 18, 22, 32,239,119,187, -221,122,115,254,241,253,183, 95,127,245,252,197,139, 87,239, 63,188,254,120,250,225,236, 28,221,127,240,236,211,127,252,243, 63, -251,252,201, 83,103,140, 85,117, 56,159,124,241,112,218,242,112,241,241,227,187, 87, 47,135,148,214,219, 93,103,250,242,219, 23, -183,119,235,215,175, 62,110, 46,111, 30, 78,154,182,169, 80, 8,172, 80, 4, 9, 9, 12, 44,171, 35, 82, 21, 42, 10, 98,154, 83, - 74, 35, 34,144,152, 89,136, 66,249,192, 23,175,145,129,187, 89,209, 28,149, 17,171, 48,152, 90, 45, 92,138,148,110,229, 87,162, -186, 49, 33,145, 48, 2,128,152,233,160,234, 0,194,224,133,223, 91,206,128,209,165,201, 81, 66, 29, 36,101, 5, 55, 52,100,102, - 3, 18, 98,199, 18,197,182, 33, 15,227,145, 10,168,102,102, 57,134, 80,254, 78,149,134,160, 48, 27,162,165,236, 96,229,212, 40, - 30, 4, 97, 50,244,113, 43,133, 52,118,220,203,225, 86, 44, 58, 68,132, 66,136,149, 4, 5,200,230,140,192, 8, 41,167,156, 19, - 0, 85, 65,152, 73, 1,209, 65, 8, 28, 89,136, 74,103, 86, 88, 16,128,137,108,140,218,219, 40, 90, 64,148, 80,194,254,131, 38, - 45,255,211, 66,199, 18, 98, 36, 49, 47,191, 18, 10,137,158, 16,131,200, 77,151,118,219,213,225,124, 30, 75, 55,106,156, 64, 35, - 34,106, 6, 98,144,192,200,236,230, 10,134, 72,194, 84,184,235,232, 94,198,107, 64, 20, 3,151,165,183, 16,133, 32, 10, 8,102, - 4,174, 89,213, 45,231, 44, 40, 1, 93, 11,189,196,247,164,147,251,209,138, 23,102, 26,209, 72,176, 28,235,152,182,143,105, 23, -242, 56,248,126,156,130, 37,238,200,228, 14,251, 32,149,237, 71, 30, 80, 55,205,197,249, 10, 15,102,100, 96, 94,232,230, 25, 28, - 44, 57,162, 33,147,141,231,214, 8,138, 3, 40, 82,139,113, 66,131,192, 37, 3,238, 18,213,148,241, 30, 92,199,128,186, 39,147, -177,147,238, 49,153, 86, 18,174,102,128,196, 44,204,136, 89,139,191,207,113,172,146, 22,143,248,253,100,198,144,144,152,205,188, -100, 43, 17, 16, 49, 12, 74, 63,250,209,247,190,121,249,225,221,187,119,135, 71, 15, 38,147,249,226,248, 72, 85,207, 46,175,255, -237,191,255,245,163,199, 79, 82, 63,236, 54,183, 92,215, 10,105,232,119,128, 88, 2,181,166, 5,118, 77,229, 13,198, 13, 76, 93, - 34,151,146, 19, 48,146,123, 78, 61,138, 16,130,165, 68, 60,254,145,202,232, 9, 17,193,117,127, 65,128,145,125,140,232,166, 36, -140, 44,110, 70, 34,224,108,123, 1,226,184, 49,134,226, 83,119,102,215, 33,113,211,186, 38, 44, 22,202,170, 2,137, 14,150,214, -119,182,187, 5,136,174, 10,166,204,194,161,252,124,135, 52,164,164,216,134,170,219,110,154, 89, 32, 7, 53,239,119,183,101,177, - 53,228,126,219,117, 67,202, 85, 8, 7,109,216, 93,190, 85,108,195,100,174,121, 23,227, 2,144, 79, 63,188,237,119,125,218,222, - 52,213,242,203, 63,248,233,199, 55, 47, 79,222,254,174,158, 30,144, 84,136,149,129, 1,122,183,186,232,182, 29,202, 84,208,130, -224,132,105,187, 94,125,184,190,209,236, 66, 65, 68,251, 60,220,174, 86,179,201,164,170, 99, 91,197,249,100,114,183, 94,179, 80, - 96,233,250,225,239, 95,191,172, 3, 30, 78,219,100,151, 18,154,166, 57,170, 68,239,174,175,166, 7,143,234,192,237,100, 34,161, -233, 82,159,250,181, 89,116, 77,187,190, 23,137, 21, 35, 80, 64,199,126,187,201, 0,149,240,174,219, 49, 97,159, 85,250, 93, 12, -177,223,173,153, 47,164,154, 66, 74,193,185,169, 39,169, 95,175, 54,155,235,235,147,200,205,225,100,145, 92,145, 67, 78, 67,172, -230,253,144,186,110, 59,157, 31, 95,223,221, 14,221,122,179, 89, 5, 38, 68,182,156,169,110, 17,112,183,189, 90, 44, 31, 13,253, -182,110,106, 52,179, 97,123,244,228,179, 93,191,107, 22,139,103,159, 61,123,240,244,177, 83,216,238,182, 58,116,155,187,245,229, -213,199, 15,239,222,191,251,240,225,205,201,233,217,197,205,106,187,249,242,217,231, 63,253,242,139,131,249,193,106,155,110,119, -221,227,163,195, 71,173, 29,206,233,246,230,226,253,219, 55,237,180, 26,192, 6,205,203,135,139,183,167, 23,175,223,124,168,131, - 28,183,173, 72, 9,124, 3, 0,178, 16, 7, 41, 9,105,102,140, 21,141,158,226,100, 14, 40,194,170, 94, 42,220, 33,132,172,150, - 29,177,180,120,204,120,116, 55,131,151,127, 71, 7,128, 24, 56,155, 21,123,176,144,171,249,254,147, 12, 96, 70, 68,217,114,202, -169,239,135,194,160,138,194,196,130,132,213,216,200,103, 97, 30,242,224,138,134, 78,192, 70,142,110,177, 10, 68, 2,217,138,107, - 45, 4, 49,179,253,122,140, 74,219,209, 0, 0,177,140, 82,211, 48,144,155,132,176,237,123,243, 92, 94,100,147,154,163, 16, 19, - 33, 37,119, 70,172, 57,168,171, 22,180, 11, 11, 3, 23,233,178,128,168,155, 32, 83, 69,105,112,207,230,144,171, 88, 73, 33,245, - 19, 69,226, 4,102,102, 21,143,125,159,192,236,238,166, 90, 34,122,196, 66,224, 54,118,104,152,152, 82,202, 80, 84, 36,224,136, - 24, 88, 40,134, 62,101,207, 10, 4,106, 42, 82,230, 60,128,228,219,148,239,238,110,230, 77,221, 54, 77,249, 73,185,131,255,255, - 84,189,215,151,101,201,117,167,183, 93,196, 57,231,186,244, 89,174, 13,218,192, 53, 0,130, 67,209,138,196, 12, 37, 74, 90,212, -112,104,158,134,212,155,254, 73, 45,189,105, 73,163, 53, 67,105,196,161, 8, 52, 97, 26,109,202, 87,102, 86,250,235,142,137,216, -123,235, 33,206, 45, 80,111, 0, 26,171, 58, 51, 43,239, 57, 17,123,255,126,223,135, 94,134, 16, 34,236,101,181,166, 89, 85, 99, - 21, 76, 65,179,150,191, 17, 69, 8,194,149,112,175, 94, 22, 36, 66,136, 8,217,156, 1, 18, 80,159,147,166,161,169,107, 85,227, -127,255, 87,255,227, 8, 98,124,103, 64, 26,143,240, 59, 54, 11,254, 38, 27, 78, 72, 68,193, 11,166,166, 20, 10,162, 32,145,219, -200,146,100, 34,192,119,143,153,113, 35, 58,178, 67,129,136,237,230,230,126,127,190, 55,238, 10,137,139,173,123,228, 16, 4,122, - 39,118, 29,255,205,238,132,100,160, 59,103, 83,193, 64,234,168, 41,228,176,171, 35,141,180,176,209,216, 7,136, 72,130, 4, 68, -130, 92, 46, 35,133, 86, 81,184,138,160,128,140, 52, 22,109, 75, 55,130,129, 10,147,236, 29,125,172, 72,164, 16, 81,144,217,221, -170,192,179, 58,254,236, 87,223, 44, 22,243,189,253,163,130,196, 58,216,159,255,211,231,191,116,247,143,222,127,239,228,209,131, -203,203,183,179,217,188,223,182,177,174,217,199,133, 5,115, 24, 51,151, 14,196,140, 92,252, 34,239,118,186,227, 70,193, 77,193, -205, 85,181,239, 28,180, 60,230,125,132,184,209, 40,131,100, 26, 99, 14, 88,102, 48,198,194, 34, 81, 36, 74,172,138,212,189, 76, -186,204,168,158,206,137,176,188, 25, 98,221, 88, 74, 40,236, 14,200, 1,180,183, 65,157,194,249,155, 55, 57,219,193,233,131,163, -211,195,179,231,175, 33,196,118,189,204,219,155, 46,217,252,240, 33,186, 74,168,203, 97, 72, 29,187,205, 77, 16,101,225,219,155, -229,249,229,237,221,102, 83,215,147,255,238,207,254, 26,136,185,154, 16,241,252,232,116,113,240,240,237,217,139,229,249,215,251, -167,143,231,123,251, 8,116,255,246,217,118,211,237, 29, 62,244, 60,104,214,249,252, 40,229, 62,183,155,183,231,175,238,239,175, -182,219,251,201,108,159, 0,108,216, 92,221,222,252,236,233, 43, 71,209,156, 8,129, 16,171, 32,109,206,168,120,189, 90,214, 85, -188, 95,111,134,156,131,240,188,153,116, 89, 47,175,111, 79,247, 22,179,201, 36,229, 60,169, 39,195,176,110,234,137, 35,247,253, - 96,154,203, 26,142, 44,153, 42, 83,189,191, 88, 16,146,147,228,212,151, 58,116,144,170,164,193,170, 42,106,182,217,116, 58,108, -239,102,123,199,170,154, 21,145, 72,132, 83,191, 94,109,215,142, 20, 83, 90, 28, 62,210,156, 40, 84, 33, 68, 4,200, 57, 15, 67, - 27,235, 41,168,130,231,216, 44,204, 76,115, 18,198, 72, 58,169,154,166,170,182,247, 23,166,221,102,121, 43,213,164,239,214,235, -187,179,197, 98, 95,154,248,254,199, 31, 77,103,179, 48,153,130,234,242,246,234,254,246,230,245,139,111,190,126,246,244,229,217, -235, 87,231,151, 23, 55,119, 93,215,254,248, 59,223,251,201,143,127,119, 90, 87,219,237, 82,170,248,241,123, 71,159,125,231,253, -200,126,246,250,229,213,229,249,225,163,211,181,229,103, 79, 95,206,166,147,167, 47,207,222,188, 56, 63,110,154,195,102, 30,133, -128,198, 81,167, 16, 69,150,194, 58, 68, 0, 3,151, 50,199,128, 34,118,116, 98, 9, 33,136, 8, 16,211, 40, 85, 3,181, 84,142, - 71,230,230, 56, 94,208, 1,144, 2,170, 21,128, 24,160, 89,233, 8,142,151, 98, 70,115, 23, 66, 69, 65,112,181,180,220,180,253, -208,149, 95,248,166, 42, 15, 77,158, 53, 53,160,108,251,174,124,250,199,130, 44,141,149,198,114,122, 29, 93,110,224,234, 16, 36, -148,153, 0, 49,243, 72, 14,192, 29,150,170,216,235,148, 16,179,101, 64,102, 68,225,242, 44,114, 53,152, 84,177, 10, 33,171, 26, - 64,148,192,200, 40,129,131, 8,115, 73,183,112,145, 25,143,228,153,210,185,161,192, 36, 33, 34, 11, 0,140,159, 38,119, 66,246, -145,219, 2,133, 79,238, 14,230,102, 89,137, 9,145, 56,200,144,210,200,188, 65, 68, 32, 17, 6, 26, 79,159,187, 73, 7,186,121, - 96,146, 32,125,182,235,213, 42,160,157, 30, 28, 73, 12, 37,177,142, 72, 54,198, 14,137, 74,211, 5,129, 2, 49,138,170,149,210, -168,186,103,117, 68,172, 88,114,105,232, 3,104, 78,234,128, 0, 33, 4,117, 72,169,213,172, 49,132, 40,146, 77,165,144, 35,188, - 40, 81,105,204, 6,154,217, 8, 13, 54,220,145, 97,202,211,200,220, 7, 40,131,110, 34, 34, 4, 3,196,162,120,197, 17, 12, 89, - 6, 19, 37, 52, 9,142,232,136,196,140, 57, 15,140, 68,168,217, 81,132, 44,239,106,170,132, 84, 66,221,185,232, 62,160,152, 90, - 13,160,248, 0,132,196,124, 76,206,184, 39, 87, 47, 67,157,157,159,111, 55,212, 41, 47, 5, 65, 82, 0, 43, 44, 72, 80,176, 98, - 28, 0,244, 18, 0, 66, 0, 10, 12, 12,144,189, 36, 81, 68,138, 38, 79,203,204,222, 77,203, 44,173,252,235,145,184,164,119,147, -193, 71,159,188,255,193,211,151,207, 94, 60, 59, 57, 57, 61, 56,121,188,183,127,224,150, 62,120,252,240,127,253,223,255,254, 7, -223,255,222,201,233,254,235,103,207,194, 71,159,180, 93, 55, 95, 64,118, 37, 4, 2,115,237, 1,101, 92, 92,141,203, 27, 40, 21, - 39, 40,233,119,205, 72,100, 89, 1,193,114,118, 53, 3,119, 3, 14,145, 36, 32,178, 91, 46, 87, 59, 31,209,171,239, 2,172, 8, -224, 34, 66, 20,202,231,174, 0, 54,205, 11, 69, 58, 8,187,102,231, 72,150,147,230, 36,177, 86,119, 6, 7, 96,174, 88,189,143, -245, 44, 91,139,232, 34, 49, 78,103, 55,175,222, 16, 59, 73,104,151,183,243,189, 35,105,166,106,217,242, 48, 12,125,234,213,117, -136,181,152,218,182,107,219,161,235,186,238,228,248, 68,132, 52,231,146,190,154,204, 22,183,183,151,125,215,214,251, 15, 31,188, -255, 73, 12,184, 93,221,172, 90, 67, 14,195,176, 77, 41,247,237,218,161, 95, 93,191,110,102, 7,205,226,232,232,228,189,156,186, -246,254, 38, 19,105,183,121,246,230,108,185,221,198, 32,204,148, 20, 67,140,132,152,214,235,229,144,212,237,250, 46, 11, 19, 33, -181, 93, 95,133, 88, 5,190,184,189,249,135,175,191,254,201,236, 95, 77,234,104,154,219,182,111, 26,234,135, 13, 58, 74,172,212, -208,135, 62,214,139,245,237,219,189,163,163,105,228,155,126,227,161,233,123,103,142, 96,195,208,183, 36, 2, 2,140,184,183,152, -119,237, 6,144,133, 25,160, 2, 34,215,116,125,183,108, 66, 51,107,166,179,197,209,166,170,153,209, 45,128, 15,166,104, 68, 41, -119,161,154, 4,137,221,208,130,153,118, 43,166, 48,157,238,117,237, 18,133,177, 84,237,129,179, 51,199, 73,234, 90, 4,142,243, -227,106, 62,121,112,242, 96, 50,155,187,230,246,254,166, 93,111, 94,189,126,126,115,119,119,117,125,123,189, 92, 93, 94,223,174, - 54,155,110,232,191,255,193,251,127,240,217,103,155,245,181,204,142, 62,252,214,183, 63,120,114,184, 63,175,110,175, 46,174,206, - 47, 58, 77, 55, 55,203,231,151, 55, 81,232,250,126,121,246,230,178, 66,120, 56,157, 78, 38, 21, 9,155, 90, 0, 84, 53,102, 2, -240, 12, 10, 64,204,145,216,146,105,118, 47,128, 57, 67,140, 49, 16,146,249,200, 42, 41, 65, 94, 83,125,215,187, 6, 36, 38, 0, - 5, 0,138,129,186,161,117, 0,176, 28,165,178,242,153,195,226,254,180,130, 4, 30, 0,132,204,213,186,109, 63,228,108, 57, 33, - 82,227,209, 50, 76, 39,140, 36,217, 12, 0, 39, 85, 61, 88, 6,119,137, 66,128,134,216, 15, 57, 8,131, 3,137,184,186,162, 6, - 32,113,103,137,102, 89,193, 8, 17, 89,212,213,221, 69, 36,103,181,241, 74, 14,228,168, 38, 64, 84,177, 24,130,102, 3,183, 40, -164,154, 85, 51, 17,135, 66, 51, 20, 42,104,240,228,142, 88,132, 84, 86,140,224,229, 40, 64,204,165,152,154,178,199,200,230,224, -134, 85,164,172,217, 1,208,156,145, 11, 35,217, 44, 27,184, 16, 2, 71,119, 3,244, 97, 72, 37, 15, 97, 68, 37, 38,231,134,192, -104,102, 8, 72, 65,176, 16,145,203, 77, 60,235,114,181,246, 60, 28,236, 47,140, 16,204,144,201,178,185, 15, 18, 3, 98,116,205, -221,208, 49,115, 64,206, 58,246, 4, 16,209, 44, 3,208,164, 14,230, 88, 94,108, 65,100,200,102, 64,194,228,136,106,158,251, 14, - 11,162, 31, 57,144, 32, 41,255,237, 95,255,229,168,205, 40,203, 77, 87,252, 13,200,203, 71,156, 97,193,200,140,227,130,145, 44, - 38, 66, 84,198,234, 80, 22,239, 94, 66, 72,196, 5, 85, 52,226, 14,169, 68, 99,202,176, 29,101,189, 90, 41,201,162,174,199, 83, -187,249, 88,195, 65, 42,184,204,194,109, 40, 44,183,119, 14,115, 34, 65,112,179,140,224, 84,142,222,196, 8,246, 14, 20,143, 99, -197, 11, 24,145, 73, 80,200, 71, 55, 97,185,115, 32, 34,186,230, 2,231, 39,100, 48,243,221,184,125,199,211, 44, 46, 13, 96, 34, - 96,218,129, 4, 12, 49,224, 14,244, 79,196,199,123,139,207,127,249,213,100, 50,221,223,219, 55,181,245,118, 89, 5,121,254,252, -213,118,219,126,240,228,209,131, 7,239, 93, 95,158, 45, 14, 14,115,202, 28, 2, 19,169,230,172,153, 57, 72, 96,179, 2, 65, 26, -139,187,204, 2,200, 96, 14, 68,160,217,205, 76,251,178, 87, 32,166,157, 73,149,223,169, 19, 0,138,237, 10,128, 72,132,199, 37, - 56, 18, 33, 23, 19, 86, 97,106, 34,130,103,197,216, 52,211,137,131, 3,185, 52,181,165,150,235,202, 29,202,124,115,220,164, 56, -222,222,172,179, 99,195,126,252,224,244,249,151, 95,231,140, 28, 4, 93, 66,136, 65,196, 65, 17, 8, 67, 52,128,225,238,141, 14, -247,211,166, 73,217,223, 94, 94,159, 95, 93, 95,221, 92,255,193,239,253,233,199, 31,124,124,127,115,150,141, 79, 30,127,216,183, -219,183,231,111, 4, 82, 93,215, 39,143,222,191,191,185,186,191,189,201, 78,218,109,167,135,167,194, 18,171,169, 33,108,215,247, -158, 83,169,158,213,117,115,119,127,103,166,243,233,222, 63,126,243,236,237,253, 61,186,153,121, 70, 67,128,148,108,211,110, 10, - 21,206, 29,204,189,138, 33,155,170, 25,128,207,154,201,186, 79,131,230, 39, 71, 39, 81,236,228,224,176,237, 90, 85,213,220,229, -108,154,218, 62, 39, 79,121,189,186,173,170, 89,197,216,245,109, 55, 12, 70,209,135,142,131, 76, 39, 51, 32, 88,212, 53,135,176, - 90,223,131, 67,144, 56,164,222, 85,239,215,183, 93,238, 15, 38,147,189,189,195,242, 73, 8, 18, 28, 28, 72,214,171,251,106, 50, - 5, 75,154,250,186,153,110,182, 43, 3, 14,174, 8, 57, 84, 77, 64,148, 16, 99, 83, 51,210,122,179, 76,234, 15, 78, 31,169,106, - 93, 55,135,199,135, 31,127,255,179,163,211,199,211,189,133,229,225,234,237,249,219,139,179,103, 47,158, 63,125,241,242,217,155, -179,151,231, 23,231,215, 55,171,182,203,105,248,236,211, 79,254,245,239,253,235,233,116,222, 76,154, 15, 31, 31,125,255,211,247, - 16,242,139,175,190,188,189,186,186,190,191,159,158, 28, 17,230,179,139,203,171,171, 27,237,134,147,102, 50,173, 42,145,130, 89, -183,146,142,149, 16,220, 45,187, 17, 50, 35, 32,129,154,155, 3, 26, 48, 18, 7,137, 65,144,104,100,100,168, 1, 86,139,141,129, - 0, 0, 32, 0, 73, 68, 65, 84,130,102, 43, 63, 85, 87, 31,143,169,227,120, 26,213,180, 27, 6, 5,175, 37, 32, 98,214,156, 71, -128,107,185,146, 82,249,133,170, 99, 52, 53, 32, 31, 52, 13,154,163,132,170, 10,117,172, 38,117,237, 4, 64, 28, 40,102,183,140, - 14,232, 33, 8, 33,179, 68, 83, 39, 22, 66, 32, 39,135, 34,105, 98, 97, 33,225, 2, 50,171,132, 99,224,148, 85,147,149,222,103, -105,214,151, 47, 64,193, 3, 75, 93,213, 90, 42, 38, 12,133, 62,130, 5, 53, 72,100,142,117, 21,203,183, 15, 0,140, 24,130,148, - 67,150,186, 23, 77,102,137,249, 23,201, 39,135, 0,142,234,198,194,133,123, 85,202, 49, 6,227, 80,186, 28,195,145, 71,205,131, -153, 34,129, 68, 65,146, 64,104,170, 36, 92, 54,137, 72,104, 69,208,198, 50, 42,166,221,251,172, 55,203,245,193,108, 82,135, 9, - 51, 57,163,102, 39, 68,137, 21, 0,164, 46,149,162, 25,146,104,233,237, 7,113, 3,117, 21, 9, 84, 76,182,142, 33, 50, 66, 24, - 33,187, 68,238, 10,132,238, 20, 2,165,148, 5, 33,134,104, 14,201,141,255,167,191,249,203, 82,187,161, 82,161, 45,163,115, 55, - 48, 32, 10,165, 41, 90,198, 44, 5,150,160, 58, 98, 91, 0,188, 76,155, 16,138, 48,218, 70, 7,105,105,155,218, 72,161,132,209, -198, 81,210,136, 76,104, 87,183,235,211,147,147,194,224, 38, 2,116, 64, 97,166, 66, 46,251, 23, 3, 34, 64, 0,167,119,246,110, - 70, 4,125,215,123, 42, 80,223, 17,152, 75,236,230,160, 80,216,198, 68,164,154, 76,211,216,218, 66, 20,198,194, 86, 52, 0,116, - 35, 65, 36,216,153, 89, 70, 80,194, 56, 47, 49, 64, 66, 22,242,146, 54, 26,153, 55, 69,162, 66,102,190,127, 56,243, 33,189, 58, -127, 59,169,235, 16,107, 85,101,146, 38,208,255,251,171, 95,255,238, 15,191,255,222, 39,159,228,180,101,137, 87,111,207,231,211, - 89,187,188, 45,149, 49,102,114,135,178, 47,114, 51,176, 50,196, 50,183,177,245,228, 14,166,185, 16,140,115,210, 80, 85, 59, 87, - 54,239,232,207,229,255,166,196, 28, 88,180, 8,249, 70, 99,206,248, 93,143,164, 26, 0, 7, 15,205,172,142,226, 6, 82, 85, 96, -234,206,163,188,187,164,238,119,192,157,179, 23,111,186,118,179,191, 63, 63,122,116,250,242,233,203,238,254, 13,112,133, 4, 20, - 26,142,141,169,113,168, 72,104,216, 44, 1,117, 72,155, 73, 61,233,250,246,252,234,230,250,246,254,230,246,250,191,249,211,191, - 8, 54,228,172,205,116, 18,154,250,246,234,173,160, 15, 67, 63, 63, 56, 61,121,242,173,151,223,124,241,250,233,151,110,196,161, - 2, 77,195,230, 46,107,191,189,123,187, 56,122,172,219,229,122,121, 59,217, 59, 98,200, 57,219,225,209,233,237,242,230, 63,252, -244,243,118,232,199,220,106,105, 84, 70,169, 99,213,245,131,169, 57, 66, 29, 99, 55,244, 8, 88,135,202,213,137,169, 9,241,226, -246,110, 82,135, 71,251,251,136,218,109, 54,183,203,123, 96, 1,203,154, 53,212,245,222,116,166, 28,250,190,173, 98,112,228,108, - 94, 9, 91,234,205,180,226,200,238,205,164, 9,145,235, 48, 35, 48, 9,161, 79,195,221,122,233,200, 39,251,167,164,202, 18, 36, -212, 89,125, 24,218,205,250,114,232,250,102,190, 87,197,144,183,247,200, 1, 92, 83, 74,211,233, 52, 52,117, 93, 79,133,165,237, - 55, 34, 34, 92, 5, 22, 66, 48,144,110,187,110,154,230,232,244,248,131, 79,191,189,216, 91,196,186,218,172, 86,175,159,125,243, -236,197,139,215, 23, 23,175,206,206,222,188,189, 60,191,186,218,182,253,193,124,254,227, 79, 63,253,254,123, 79,126,240,233,119, - 7,205,145,253, 71, 63,250,206,241,126,115,117,254,242,205,243,231,113, 62,169, 79,143,159, 63,125,113,116,184,247,236,252,252, -245,171,139,125,146,189, 73, 45, 92, 70,186,160,142, 33, 22,154, 58,189,147, 43,141,193,129,221,196,148,152, 72, 4, 11,166,131, - 9, 12, 8, 73, 53,149, 87, 62,193,120, 20, 34, 38,179, 81,167, 60,104, 54,205, 66, 28, 37, 32,104,241, 52,215,129,213,156,136, - 10, 21, 88,152,193,161,207,217, 77, 5,133, 88, 8, 48,136,236, 77,167,117, 83, 35, 18, 2, 23, 28,121,209,125, 76,170, 74, 21, -115, 46,167, 58,100, 24,235, 47, 92,248,142, 65,178,153, 32,146, 16, 19,162,131, 89,130, 29,174,150, 9,137,216,220,221,140, 40, -148,216, 95,185,241, 75, 96,112,114, 7, 33, 98,102, 32,138,165,211,102,227,104,133, 17, 29, 10,218, 23,118,243, 0, 39, 34, 4, - 74,160,194, 44, 44,229,127,103,102, 68, 23, 17, 24,187, 54, 62,226,176, 16,152, 24,144,203, 4,149,152,153,196,199, 33, 15, 56, - 64,168, 98,153,120,144,160,148,182, 36, 82,209,109, 19,120,114,127,117,121, 51,139,116,188,127,224,194,110,134,136, 49,114,140, - 85,223, 15,174, 86,236, 87,238,238,121, 64, 17, 34, 42, 24,125,166, 17, 6,142,224, 66,108, 88, 90, 92, 32, 66, 57, 27, 33, 5, - 18,164, 50, 37, 19, 18, 2,132,192,108,102,242,206,145,100,136,224, 86,182,172,227, 42, 23, 12,208,137, 75,131,171, 0, 29, 93, - 2, 58,228,145,176,172, 9, 1,136, 25, 10, 75,169, 28,230,205,128,118,114,214, 29, 76,168,252,124,221,108, 54,155,194,245,178, - 27, 58,118, 37,178, 49, 97, 20, 16, 21, 28,209, 70, 17,108,233,124, 42, 32,169,103, 64,102, 0, 55, 68, 39,112, 29,149,212,174, - 99,239,137, 81,205,118,137,124, 99, 4,181,130,193, 33, 64,116, 5,231,241,241,233, 96, 14, 84,166, 28, 8,200,176, 43,235, 22, -217,110, 57,161, 51, 2,160,230, 81,120, 4,232,136, 10, 36, 56,234,169,176,107,211,247,191,253,225,215, 47,207, 95,190,122,249, -237,201,124, 62, 91,160,227,199, 31,125,252,244,229,235,255,243,239,255,225,244,193,195,201,108,255,235, 47,126,249,224,225,123, - 93,187,201,105, 80,160,138,104, 32,140, 36, 37,111,137, 68, 57,103, 82, 55, 71, 65, 41,163, 41, 32,112,203, 57, 39,116, 4,205, -169, 39,137,149,185, 51, 58,184, 97, 16,215,194,199, 23,112,207,166, 35,108, 64, 11,156, 33, 16,243, 14,121, 63,254, 58, 86,177, - 33, 22,140,194, 34,169,237,136,201,138, 92,197,203,219,133, 88, 8, 18, 58,168,185,203,100,110, 41,213, 85,213, 78, 14, 65, 38, -105,123,131,161, 54,197,126,121,198, 85, 67,213,158, 8,211,116,186,185, 87, 85,107,219,126,211,117, 67, 26, 66, 12,211, 40,171, -213, 70,152,166,211, 73,187,221, 14,171, 43,106,102,177,170,247,142, 78, 87,183, 87,195,102, 21,154, 57, 11,111,238,206, 86, 58, -196,208,204,246,142,193,141,208,103,135, 39,213,108,127,189,110, 45,111, 48,136,153, 62,123,249, 66,129,102,205,244,226,234,109, - 93,215,133, 82, 8,230, 65,100, 49,155,174,214, 27, 68,236,135,148,213,220,180,169,227,164,153,108,186, 77, 53, 13,123,211,217, -255,245,243, 95,109,187,238,163,195,121, 37,161,132, 43,234, 42,152,170, 33, 13,253,186,174,234,204,210, 42,228,172,154, 6,144, - 88,215,245,208,110,144,156,221,186,174,229,206,129, 36,185,166, 54,145,165,105, 12,117,211, 16,100, 64, 31, 82,175, 57,101,195, - 80, 79, 28, 98,202,221, 60,196,245,245, 69,108, 38,147,122,202, 28, 99,149,200, 7,203,230,161,114,181,170,154,149, 19,202,122, -125, 55, 12,219,106,114, 88, 53,123,167,239, 61,122,248,228,201,116,182,232, 55,203,243,215,207,206, 94,189, 62,187,120,123,113, -123,119,115,119,119,121,191,218,180,237, 65,221,124,231,147, 15, 63,124,252,164,169, 99,223,175, 57,196, 79,222,127,248,248,116, -127,232,150,175, 46,206,215,155, 85,159,252,242,242,170,190,185,190,188,186, 94,109, 54,235,251,245,227,249, 60, 20, 53, 18, 56, - 58, 82, 73, 52,162,140,199, 18, 80, 36, 36, 16, 53,117,179,210, 44, 66,216,181, 49,202,227, 14, 72, 34,244,125, 42,241, 18, 48, -119, 46, 43, 55, 6,240, 16,130, 35,108,219,142,129, 40, 4,203,218,167, 65,136,137,164, 10, 96,238, 18,130,187, 51, 50,153,153, - 57, 17,162, 82, 8, 4,128,145,163, 72, 36, 84, 38,180,241,108,103,105,232, 67, 44,158, 84,206, 25, 8,169,138,204,130,230,104, -230, 12, 0,110, 28,163,103, 69,178, 24, 72,192,145,176, 31,178,106, 18,146,119, 22, 33, 70,200, 14, 34, 1,208, 60,155, 21, 27, - 27,141,231,189,209,135, 60,254, 80,208, 0,204,129, 16,152, 72,213, 92,112, 7, 5, 3, 87,183, 29,124, 28, 5, 39, 40, 41,171, -186, 10,202,136,188, 53,200, 57,155,141, 93,246,146,216,241,172, 10, 30, 2, 59, 4, 40,221, 47, 68, 68, 86, 53,100,162, 82,237, - 47, 58, 16, 7, 66, 50, 1,114, 47,169,108, 36,190,187,223,214,228,199,251, 7, 78,168, 41, 23,236, 46, 34, 12,125, 63, 82, 74, - 0,134,148,235, 40, 70,177, 60, 63, 67, 36, 51,176,156, 1,140, 16,144, 88,221, 32,121,168, 36,101,203,217,132,209,140,212, 51, - 19,163, 84,134,217,157,221, 53,229,164,166,226,230,200,229,175, 0, 0,204,138,104,142,104,167,197, 24, 21, 76,184, 19,192,113, - 32, 79, 5,249, 40,101, 71, 90,152,239,133, 66, 94,108,161, 59, 52,226,206, 39, 90,182, 19, 86, 64, 99, 49,144,182,109, 95, 71, - 86,195,192,239,152,137,187, 3,185,187,187, 18,160, 26,136,144, 1, 10, 10,128, 22, 36,188,102, 39,114,244,114, 61, 49,119,128, - 92,166, 48, 86, 16, 60,229, 95, 15, 64, 44,193, 77,157,157,202,202,156,128,128, 25,203,109,130,119, 60,130, 82,203, 6, 87, 3, - 66,216, 25,167, 10,210, 43,131, 9,160, 3,227, 59, 31,172,153,154,197,102,254,253,111,127,240, 79, 63,127,126,176,255,230,193, -163, 15, 88,170,253,195,147, 31,125,239,123,255,219,223,255, 63,255,213,143,191,254,228,187,223,117,240,131,163,147,203,203, 23, -200, 81, 66, 68,142, 72,226,106, 32,240, 46,116, 84,118, 96,238, 78,204,230,142,217, 10, 54, 71,123, 5, 55, 75, 3,132, 26,137, - 93, 13, 36,184,250,191,184,213,112,185, 52,218, 59,218, 37,226,152,110,130, 18,115, 98, 66,145, 16, 20, 48,198,144,218,222, 13, -176,137,144,179, 35,128,161,155,162, 80,185,215, 72,156, 48, 13,221,242,206,225, 81, 86, 5, 14,192,128,213,132, 1,134,190,175, -247, 78,153, 99,187,221,138, 80,187,220,178, 59,130,175,182,109,151,134, 62,231,217,116,159, 53,229,188, 57,126,239,211,237,182, -239,218, 84, 77,246,185, 94, 68,134,163, 7,143,214,247,247,106,218,174,174, 39,211, 3,205,253,222,131,247,105,176,148, 7, 87, -247,193,218,110,123,176,191,104,215,171,170,217, 75,195,230,230,230,234,233,249,219,166,110, 14,103,179,245,118, 85,133, 42,105, - 42, 94, 89,115,143, 33,212,161,218,244,219,166,169,221, 53,185,223, 45,215,245, 73,112,164,235,229,234,112, 62,157,212,213,151, -175,206,186,182,251,240, 96,111,177, 55, 13,132, 39,139,253, 77,223,175,218,237,182,221, 74, 77, 49,198,126, 0, 17,202, 2, 8, -144,114, 15, 76,224, 57,229, 33,152, 99,140,203,212, 11,242,233,124,193,204, 67, 50, 96, 34, 51,181,212,200, 92,135,101, 93,205, -204,187,249,100,214, 49, 84, 85,157,234,169,170,222,223, 93, 30,157,190, 31, 67, 29,121,114,117,121,150,219,190, 34,168,166,139, -166,138,174, 67,136,117, 96, 58,122,242,112,186, 63, 63,121,240,164,174,234,245,205,229,171,215,207,158, 61,127,121,118,121,125, -123,191,186, 95,111,174,239,239, 45,231,143, 78,246,126,239,123, 63, 48,226,161,223,112,213,124,242,201,119,190,253,233, 7, 65, -240,234,229,179,139,179,203,193, 18, 52, 53, 82,122,245,236,185, 43,106,202, 77,109,139,195, 69, 25,137, 16, 65, 54, 98, 30,225, -236,234,170,134, 33,144, 57,128,122,225,254,101,208,146, 64,246,114,195, 35,226, 64,166,208, 89, 6,203,129, 37, 33,228,156, 66, -140, 10, 6, 64,181, 4,116, 75,110, 41,229, 32,194,194,105,232, 1, 53, 48, 23,201, 6, 35, 25,122,118,175,153,213, 61, 89,145, - 78, 80, 29, 74,137, 26,171, 42,106,214,164, 94,170,120, 96,104, 0,192,128,140,234,198,142, 8,196,194,224, 48, 12, 41,136,236, -158, 27,140,238,192, 36,129,201,205, 85,135,148, 11,222,124,112,171,163,168, 66,210,162,214, 3, 33, 30,178,103,135, 81, 59,228, -227,127, 34, 17, 46, 31,100, 83,181, 2, 58, 70, 68,214,172, 68,187,211,156,131, 3,134, 74,202, 5,130,136,137,204, 13,200,204, - 29,212,149, 70, 74,250,152,104, 1, 64, 46,211,255, 12, 0,206, 2, 77, 93,245,106,166, 25,156,204, 50, 87, 12, 25, 77, 45,198, - 74,213, 4,208,128, 28, 52,185,149,166, 15, 11, 33,210,122,219, 14,185, 61,217,223, 51, 7,204,218, 76, 38,125,206,160,166,189, - 1, 32, 6,198, 76,217, 83,168, 88,213, 76, 29,133,192, 69,179, 33, 32, 69,241,236, 92,158,131,238, 28,176, 27, 20,208,234, 74, -250, 1, 34,187,121, 51,164, 62, 4,239, 21, 1, 70, 61,105, 81,193,225, 40, 76, 68, 46,127, 27,101, 71,237, 69,223,236,230, 8, - 68, 76, 12,174,110, 6,164,197,144,142,166, 32, 82,228, 77,254, 27,159,198, 59, 10,217,111,196,208, 80, 80,127, 96, 78, 76, 68, -216,212,149,153, 11, 49, 22,213,159,146, 23,128, 39, 48,162, 35, 56,162,115, 89, 41,188,187, 79, 20, 90,129,107,129,206, 19, 9, -120, 46,143,227, 17, 8,108,138,200, 8,163,145, 21,203,177,151, 16,172,172,139, 29,161,100,244, 11,203, 12, 71, 42,227, 40,144, - 53, 47,138, 83,247,130, 49, 40,192,221, 48,102,103, 11, 74,167,100,106, 12, 28,179,234, 39, 31,125,240,213,243,179,139,243,243, -189,131,227, 73, 51, 93,183,219,135, 15, 30, 62, 62, 61,252, 95,254,143,255,244, 63,159, 28, 54,147,197,155, 23,207, 31,127,240, -248,234,205,107,102, 17, 33, 55, 51, 80,203,169, 24, 73, 88,196, 0, 65,117,188,152,186, 35,139, 64,157,144, 24, 45,119, 93,209, - 52,137, 48,114,220, 73,195,116,164, 34, 23,166,252,232, 62, 25,193,206, 56, 50,131, 20,128, 11, 14,193, 77,153, 37,247,189, 15, - 29, 86,209, 53,193,160,192,108,253, 22, 37,146, 8, 0,184,102,242,140, 4, 97, 50,147,201, 76, 98, 20, 81, 3, 16,105,210,246, - 30, 24,195,244,160,219,172,128,188,109,187,126,115, 27, 98, 5,140,171,237,198,134,164, 41,205, 23,199,117, 61,225, 89,213, 13, -105,221, 39, 75, 93, 53,221,203,214, 79,247,142, 99, 8,106, 58,217, 59,124, 88,205,114, 82,174, 14,114,223,131, 41,152, 57,113, - 66, 55,199,251,251,187,147,211, 7,203,219,219,205,242,246,238,250,106,147,242,219,235,243,166,122, 60,105, 38, 67, 74, 65, 68, -205, 1, 28, 13,204,117, 58,157, 40, 89,223,103, 85, 96,196,236,126,123,191,137, 18, 3,162, 3,238, 77,231,142,240,242,230, 90, -136,226,164,222, 91,204,212,146,165, 36, 66, 33, 78,182,109, 91,155,166,182, 91,183,247,179,189, 83, 55,243, 80, 87, 8,109,223, - 17,210, 54,117,158, 83,110,183, 15, 14, 14, 55,155,123, 51,152,204, 15, 2, 7,100,153,198, 25, 34,187, 97,183, 90,198,201,124, -190, 56,246, 13,119,171,101,140,149, 35,247,166,235,237,221,222,252, 96,181,186,203, 89,171,122, 26, 5,187,190,243,212,181,155, -155,189,195,147, 71, 31,127, 58,153, 79,246,247,143, 35,194,205,197,171,103,207,159,191,120,245,250,213,219,183,183,247,203,219, -229,170, 29,210,188,150,223,255,193,143,143, 23,115, 99, 9,213,164, 2,255,157,207, 62,249,232,227,199,171,235,219, 23,175,158, - 65, 32, 58,156,222,126,243,234,120, 86,221,111,187,155,171,213,241,180, 57,158, 77, 2, 81, 45, 98, 96, 93,118,100, 12, 60, 66, -141, 0, 81,161,216,174, 75,185,194, 10,105, 73, 28, 74,222, 3,137,136, 4, 17,204,212,129, 24,144, 66, 72, 41,169, 26, 49,103, -205, 33,132,170, 18, 52, 77,110, 8, 24, 43, 41,212, 0, 4,100,150, 52,100,183, 44, 18,156,209, 82,170, 42, 65, 96, 27,134, 66, -163,170,132,218,172,129, 8, 9,135,148, 53,103,148, 82,197, 35,119,143,145,220,105, 72,137, 35, 5, 10,160,158,221,208,113,132, - 59, 10,169,142, 20,115, 68, 24,122,205, 41,177, 20, 61, 27, 50, 50, 69, 73,125, 50,115, 97, 20,230,148,181,207, 3, 49, 86,129, -209,160,207,138, 8, 21, 81, 54,199,209, 26,104,102,206, 4,204,156,212, 8, 29,120,100, 1, 23,112, 13, 19, 13,230,129, 3,128, -165,161,175, 39,181, 57,112,208,146,138,134,113, 42, 93,240, 90, 46,129,221,201,114,166,128, 18, 42, 53,216,118, 67,153,198,184, -230, 16,196,140,132, 12, 24, 16,172,140,162, 84, 53,165,140,239,198, 58,228, 76,190,110,251, 58, 72, 85, 69, 71, 38,162, 97, 24, - 8,201, 0, 49, 2,170,105,118, 2, 19,145, 33,165, 18,145,100,226,100, 10,110, 33, 70, 80, 76,150,145,168, 72,104, 53, 91, 19, - 17,101,178,109,251,200,146, 53, 39, 29, 28, 49, 37, 5, 55, 32, 32,163,170, 38,221,244,252,183,127,243, 23,136, 94, 34,231,163, -181,179,224,250,119,109,161, 2, 46, 64, 7,100,148,130,200, 4, 43,206,168,146,100,218, 89, 64, 97,236,158,142,208, 94,192,127, -129,120, 41, 27, 90, 40,113, 65,130,109, 55, 76,167,147,146,213, 7, 47,203,107, 42,153,152, 2,207, 42, 73, 33,102,193, 82,157, - 47,143,177,242,180,221, 93, 49, 9,101, 44, 92,185, 58, 24,143,108,173, 50,174, 22, 0,231,241,116, 91,250,159,176, 27, 56,161, -131, 16,218,152, 47, 26,177,198,180, 75, 43,226,200,177,183,194,246, 26, 49, 1, 14, 8, 62,120,185,240,185, 75,168, 38, 21,125, -241,205,203,138,121, 54, 95, 8, 11, 16, 76,131,252,236,139, 47, 31,156, 30,255,241, 31,255,201, 55,191,254,220, 73,134,161, 11, -165,244,140, 72, 44,136, 78, 28, 36,196, 50, 94, 14,194,136, 50, 38,151,208, 1,164,100, 67, 37, 70,169, 42,150,138, 99, 45, 81, - 70,106,194,206,190,234, 56,150,120,223,185, 38,199,151, 16,122,137, 84,130, 57,133,106,118,112, 12,224, 88, 0,205, 54,250,182, - 65,196, 52,203,100, 66,132, 96, 54,180,237,197,203,179,118,187, 57, 56,125,180,127, 56, 63,123,113, 54,116, 27,196,104, 58, 12, -237, 38, 84,117, 78, 67,191,185,219, 44, 87,174,234,233, 46, 84, 21, 17,190, 62,123,115,189,218,220,222,221,126,252,225, 39,223, -249,248, 83, 71,186,189,189, 71, 79, 58,172, 60,171,154,205,231,243, 88, 87,171,155,243,155,179,111,230,243,253, 42,152, 97,204, -125, 23, 24,182,203,155,102,118,184,190,191,137,161,210,172,169,111,207,206, 95,111,251,237,203,243,243,151, 55,247, 65,228,250, -238,118, 59, 12,219,109, 59,169, 38,165,146, 32, 32,229,196, 80,133, 0, 0,253,208, 23,197,109,223,247,106, 26, 99,197,132,219, -190,223,155, 78,131,212, 23,119,183, 19,161,121, 85, 53,177, 74, 67,151, 12, 17,161, 27,210,102,187, 33,176,166,170, 99, 12,132, - 54,105,166,197, 6,147, 0, 1,112,194, 52,141, 49,153,129,219, 98,255, 84, 24, 7, 29,136, 48, 6,206, 67, 74, 41,183,237, 38, -132, 73, 93, 85, 44, 53, 73,236,186,117,201,207, 78,154,217,124, 18, 87,155,109,172,103, 64, 50,164,109, 63, 36, 34, 90,236, 31, - 28, 63,121,252,240,225,163,217,100,106, 58, 92,189,125,243,213,211,103, 95, 62,125,246,226,236,252,252,242,230,122,117,143, 14, - 63,252,214,135,127,240,233, 39,123,139,253,205,118, 21,132,190,251,237,111,253,209, 31,253,238,222, 94,115,117,246,230,155,175, -191, 0, 9, 91,180,175,190,126,186, 93,183,183,247,203, 87,223,188, 60,156, 78, 15,167,211, 42, 10, 0,149,155,188,136,148,222, - 80,233,156,184, 2, 49,169,169,187,150,176, 29, 51,141,170, 81, 44, 24,118, 34, 41, 55, 84, 18, 17,119, 27,178,149, 5, 25, 17, -138, 68, 2, 24, 6, 29, 17, 43,204,133, 73, 48,202,209, 10, 10,195,177,100, 27,132,216, 84,135, 33, 19, 99,249, 67,221, 65,136, - 75,131,143, 9, 57, 72, 29,164,244, 31,203,116,222,202,209, 36,169,149, 76, 98, 1,237, 49, 17,162,154,151,248, 32, 18, 20,138, - 12, 49, 51,113,100,108, 38,196, 12,110, 6,110,197, 47,148,114, 86,117,145, 17,163,224,136, 34,130,196,227,133,188, 64,234,125, -100,172, 91,249,230, 72,202,216, 23,118,157,111, 34,140, 65,220,192, 13,152,197,204, 11,122,182,184, 46,204, 33,231,236,217,198, -254, 60, 35, 3,141, 30,134, 29,140,135,139,110, 72,184,244,219,205, 60,231, 84,118,168, 35, 92,171,188,119,221, 0,144,200,174, -239,219,156,250,199, 71,199, 18,171, 50,222,160, 18,157, 96, 44, 52, 97, 36, 2,194,156, 51, 17, 74, 96, 4,204,170,196, 68, 44, - 59,139, 27, 2, 98,202, 58,174,226,128,204,149, 0, 82, 78,230, 10,238, 69, 61,173,166,104, 30, 16,213,161, 75,189, 20, 46, 57, -148,124,236, 59,241, 16, 24, 2,141,204, 1,216, 1,249, 93,221, 17,202, 36,216,208, 11,134,146,120, 23, 63, 87, 32,222,205,102, -156,118,235, 85, 3, 45,175, 0, 40,151,109,182, 16, 48,111, 50,161, 91,113,184, 18, 34,216,136,138,223,233,141,202,142,220,221, - 60,165,145, 58,134, 82,158, 97, 5, 44,236,224,128, 54, 46, 13,112,252, 2,193, 13,140, 92,208, 45,227,206, 72, 58,230, 80,136, -212, 20, 28,220,148,133,124,124,165,149,128, 13, 58, 58,168, 2, 49,144,153, 35, 59, 32, 35,170,145,176,131, 33,102,247,113, 69, -235,232,136,226, 0,223,250,240,189,215,175, 46,159,189,126,189,119,116,122,124,112, 60,228,116,120,116,242,209,227,199,127,255, -159,255,233,147,247,159,204, 14, 78,187,245,122,211,182, 77,108,204,198,223, 99, 36, 25,221,229,229, 70, 88,238,143, 76,105,200, - 60,198,151,194, 24, 30, 34,118, 36, 22, 6, 51, 51, 37,100, 22,210,108, 37,226,227, 8, 76,130, 12,174, 62, 42,253,136, 2, 22, -220, 27, 1, 3,145,132, 42,166,190, 7, 55,116, 2,114, 20, 97,150,212,117, 82, 53,136,168,109, 79,130, 6, 56, 12,131, 90,206, -121, 0,112, 10, 50, 12,109, 85,113,234,219,122,182, 31,235,250,238,230,162,221,172,211,160, 16,132, 9, 37,136,153,247,125,118, - 51,115, 60,168,130, 8, 95,221,109, 73,162, 19,181,155,139, 24,115, 53, 91,196,170, 78, 93,207, 28,166,123, 7,174,221,197,211, -159,206, 30,126, 70,177,202, 67, 27,226,116,232,183, 33,134,170, 10, 60, 9, 8,118,116,242,208,146,254,211,175,190, 94,183,173, -106,142, 85,125,125,127,217,246, 29, 35, 45,246,102,160,108,168,163,155,209,113,214, 76, 82,233, 8,102,171,170,208, 15,185,237, -251,131,249,236,106,185, 92,109,214, 85,172, 76,253,243,215,111,212,108,218, 52, 68,146,186,252,224,248,192, 29,134,102, 50,227, -188,152,206,215,109, 50, 75,132,118,151, 7,205, 57,109, 54, 33, 68,101,234, 52, 75, 53, 5,224, 62,117,145,188,150, 70, 45,109, - 87,173, 84,205,116,126, 80, 87, 13,199,208,247,171,118,187,241, 48,161, 80,187, 57,176, 19,134,183, 23,103, 32,181,196,202, 28, -215,203,117, 29,235,199,239, 63, 62, 57, 57,217, 63, 60, 66,130,229,205,117,219,109,159,189,120,243,197,179,103, 87, 55,183,151, -119,119,247,171,245,195,195,131,127,253,163, 31, 46, 38, 21, 98,216,182,221,147, 39,143,254,240, 15,255, 96,182, 55,187, 57,123, -253,246,197, 43,170,164, 53,171,192,191,254,229, 87,183,171, 13,171, 47, 98,245,222,209, 17, 34, 25,162, 21, 91, 3,148,150, 56, - 56, 18,144, 23, 87,133, 19, 22,127, 61, 18, 33,163, 20, 57, 76, 49,113,176,101, 51, 36, 42,151,114, 70,212,148,152,131,144,185, - 27,139, 20, 18, 84, 57,200, 19, 82,206,137,208, 74, 63,221,205, 84,141, 4, 20, 52,132,128, 14,157,246,132,224, 74, 49,144,187, - 39, 29,132,136,145,204,119, 68, 39, 2, 17, 6, 36, 6, 36,194,156, 70,213,154, 32,230,114,229, 54, 99,137,229,168, 84,172, 32, - 37,196, 65, 14,217,115,145,183, 89, 9,116, 40,136,160, 57, 48, 9,244,222,165,196, 33, 84,130,185, 48,164,152,193,156,208, 17, - 9, 28,187,161, 39,148, 16,131, 59,100,176,194, 44, 1,112, 5, 45,167, 79, 69,140, 81, 0,217,114,202,217, 16,133, 3,152, 57, -149, 7, 17, 96,168,234,161,239,221, 44,103, 85, 65,231,152,250, 97,218,230,166, 26,241,173,101, 58, 33, 18,134, 60, 8,113,172, -106, 53, 53,119, 36, 10, 33, 20, 82, 74,113,110,131, 38,224,236,224,236,184,105,245,118,181,124,255,112,143,130, 12, 73, 53,229, - 80, 69, 14, 1,204,221, 13,171,106, 72,189, 14,137,133, 57, 4,200,166,217, 68, 48,114,116,194,220,182, 18, 5,153,115, 2, 51, -101,230,148,180,138, 76, 84,126,224, 86,248, 96,142,230, 68, 6, 10, 0,217, 92,125,168, 36, 84, 18,248,111,255,234,223, 22,188, - 4,130,145,196, 18,105,247,223, 96, 99,220, 45,151,102,177, 67,129,179, 48,150,226, 37, 33,243,152,163, 25, 5, 67,133,162,190, -227, 12,239,216,140, 59,146,243,248,230,244, 24,248,254,110, 57,159,205,137,208,137,220,157, 75,244,222,169, 48,136,177,212,247, -203, 11, 1,125,135,141, 20,119, 27,209,232,163,119,148,113,244,131,148,222, 6,150,238,217, 46, 86, 50,106,194,139, 43, 29,208, -203,124, 9, 11, 58,125,196,178,235,142,130, 9, 64, 99, 90,157,145,129,128,169,152,177,199,253, 9,128,161, 19,145, 20,202, 57, -146, 27,242,147,135,135, 95,125,253, 18, 29,231, 7,251, 37,149, 22, 9,126,249,213,211,195,197,252,247,255,248, 79, 89,252,201, -183, 62, 6, 75, 67,159, 37,196,113, 13,129, 94, 74, 6,166, 94,202,124, 86,128, 97,101, 54, 88, 38, 93,128,194, 34,177, 54, 45, - 27, 32, 41, 60,168,178, 62,197,194,147, 46,135,148, 49,236,244,206,233, 42, 68,232,142,194,113,236,223,231, 68,147,154, 56, 32, -139,182, 27, 4, 96, 97, 27, 6,138, 21, 32,181,171,246,226,237,205,208, 15,135, 71, 7,199, 15, 14, 95, 61, 59,115, 16, 64, 4, -142, 66,182,221,220, 1, 5, 27,202,245,183, 21,204,205,100,218,181,237,243,215, 23,155,174, 95,109,214,191,255,227,223,137,177, -238, 84,171,186,217,110,182,142, 74, 50,109, 22, 7, 15, 30,191,135, 0,200, 28, 66,163, 82, 85,211,125,145, 10, 88, 8, 40, 86, - 49, 15,195,116, 58, 31,134,141, 43,133, 56,177,220,159,189,126,246,205,213,165, 57,108,219,109, 63, 12, 65,120,221,118, 67,202, -154,117, 82, 53, 76,187,139, 10, 0, 19,215, 85,181,221,118, 41,167,194, 74, 83,205, 65, 24, 0, 55, 67,234,115, 58,156,207,213, -248,110,189,221,111,164, 31,146, 33, 12, 67,222,110,151, 7,243,153,231,182,213, 84,197,166,215,244,118,121, 43,192, 7,211, 57, - 7, 1,162,170,170, 73,234,162,192,117, 2,194, 88,178,166,243,197, 1,152,170, 42, 17,230,148, 2, 85,235,118, 11,224,192,113, - 58,169,137,176, 31,134,118,181, 58, 56,122,220,181,119, 65,234,201,116,250,254,183,222,127,242,228,201,241,131, 39,200,184, 94, -223,191,189, 56,127,254,252,245, 23,207,158,189,188,184,184,190,187, 27,134,244,195, 15,159,252,249,239,253, 94,141,116,183,186, -147, 88,127,255,179,239,252,228,223,252, 4, 65,159,127,241,243,182,235, 14, 63,122,239,171, 95,127,121,116,122,216,131,254,242, -139,167, 13,242,233,222, 94, 16,174, 98, 33,111,163, 3,198,200, 68,193,193,134,156,133, 68,132,163, 84,230,214,165,158, 74, 60, -128,202, 30, 30, 75,112, 86, 42,210,221, 66,140, 9, 5,195,224, 57,198,138, 0,128, 40,196, 88,254, 81,182, 44, 36, 0,160,102, -204, 92, 14,188, 99,163, 5, 16,208,103,117,227, 0,170, 25,221, 4, 2, 51,155,155,102, 37, 4, 34,204, 96,104,238, 4,117,224, -193,193, 29,155,170,118,192,156,179,155,197,170, 22,192,193,178,234,144,213, 3, 11,128,169,187, 8,163, 35, 35, 40, 64, 49, 79, - 16, 11, 83, 49, 2,138, 26, 40, 50,123, 80,132,161,119,115,107,154, 72,200,155,148,104, 7, 1,136, 65, 12,209, 13,250,156,144, -160, 14, 21,160,113,144, 29, 66,203,119,174,185,210,123, 97, 9, 65,115, 46,113,240, 40,236, 4, 68,200,140,229,248,203,228,224, -216, 37,133,189,189,227, 15, 63,118,162,233,209,254,182,239, 60, 13,149,132,242,136,231, 42,152,102,102,138,177,241, 34,133, 5, - 10,129,205,157,133, 98,168,145,137,136, 68, 2,185, 27, 88,202,249,102,189,158,197,176,183, 88, 40,129, 48, 85, 85, 99, 96,238, - 26, 67,148, 24,135, 52,184,186, 4, 97, 9,102, 90, 80, 5, 33,196,108,234, 73, 41,112, 54,232,219,174,174, 36,214,181,185, 49, - 99,224, 80,172, 80,224, 86, 70, 82, 37, 89,164, 6,105,232, 34, 83, 12, 81, 36, 12, 89,249,239,254,230,223,149,155,203,168,152, - 48, 55, 47, 46, 36, 42, 48,229,241,244, 75,165, 4, 84, 18, 47, 69, 41, 50,190, 0,138,102,200, 84,113, 7,186,255,205,240, 32, -251, 8, 57, 68,128,209, 38,141,194,114,115,119, 23,235, 70,202,216,164,136,149,199,151, 45, 20,120,157,255,102,182,236,102,134, - 40, 5,248,136,192,224, 90, 52, 78,224, 86,172,176, 99,207,110,215,204, 31,149, 91, 35,210,101, 71,151, 87, 45,119, 81, 87, 21, -166, 29, 14,186,132, 94,199,187, 23,224, 78, 38, 69, 64,130, 96, 14, 6,158,179, 23,196, 40, 16,113,112, 52,128, 92, 42, 12, 33, - 78,132,245,215,223,188,152,207,102,211,217, 66, 85, 69, 36,117,253, 23,223, 60,253,206, 71,143,154,217,222,211, 47,254,249,213, -235,179,217,164, 97, 33, 34,118, 85,150,186, 84, 67, 72, 4,119,248,156,113, 40, 8, 94,138,178, 68,236, 8,110,137,136,199,236, -100,217,250, 35,192, 24,231, 31,191, 57, 83,123,167, 83, 4, 0, 0, 67, 98, 68,169, 38,211,122, 58, 51, 55, 10, 97, 44, 34, 32, -131, 25,215,117,217, 68,129, 59, 50,101,213,155,183,183,128,188,152, 53,251,135,123, 95,127,254,179,156, 83, 30,218,178, 92,108, -183,219,118,179, 74,195,192,210, 68, 78,149,216,100, 50, 91,175, 86,231, 23,111,239,214,155,190,239, 62,251,214, 39,235, 28,154, -233,193,116,214,104,234,209,114, 61,153, 30, 61,122, 63, 72, 76, 67, 87, 46,145, 55,103,111,246, 15, 79,134,187, 55, 85, 93,117, -171,107, 98, 86,245,170,153,185,235,221,197, 11,115,208,212,255,226,203, 95,127,125,113,217, 84, 53,184, 95,223, 47,137, 1,129, - 82,202, 41,107,100,170, 98,133,227, 26,197, 1,161,212, 77,187,161,119, 3, 38,202,170,219,174,175, 66, 96,166,229,106,125,114, -112, 52,155, 86, 73,253,205,213,125, 19, 4,137,186, 52, 12, 89,217,237,126,185,204, 40,119,109,219,246,105, 94, 77,132, 5, 17, - 24,189,138,145,128, 85, 19, 19,228, 62,183,219, 21,179, 68, 65, 70,234,251,126,181, 93, 71,230,126,187, 76,106,219,110, 45,113, - 98, 72,129,104,187,190, 95,223, 95, 87,147, 61,142, 97,187, 93, 70, 9,199,167,199,239,127,248,240,209,163,247, 66, 93,117,219, -213,253,253,213,171,231,175,159,191,126,243,229,203,215,207,222,156,173, 54,237,209,108,246,147,223,250,193,191,250,244,187,219, -161,223,164,116,184,191,255,147, 63,249,253,143, 63,253,240,250,226,205,179, 95,253, 42,206,103,241, 96,246,171,159,255,242,238, -126,121,125,183,252,197,207,190,124,114,120,112,180, 55, 33, 42,149,204,157,224, 30,177,232,109,136,136,153,132, 66,193,252,154, -231,114,220,226, 29,228, 5, 9, 11,253, 36,231,172, 59, 84,118,193,248, 49,145,170,230,156,153, 48,231, 60,168, 85,204,204,108, -106, 99, 6,112,247,108,124,247, 73, 14, 33,164, 60, 56, 88,202,137, 72, 0, 32,171, 5, 41, 59, 87,178,172,194, 12, 68,197, 48, - 19, 89, 2, 99,182,162, 55, 34, 44,122,107, 51,115,235,186, 54, 48, 3,148,103, 42, 0,144,250, 56, 76, 41, 42, 77, 38, 52,181, -130, 39, 35, 70, 32,108,219,108,169,112, 99,112,200,102,238, 2,196,196, 10, 24,136, 71,214, 58, 88, 25, 40,101, 27,112, 76,206, -193,152,108, 30,143, 79, 20, 99, 44,172,180,130,180,101, 36, 3, 39, 66, 97,212,108,106,227,136,118,221,246,188,183, 56,253,240, -195,215,175,207,126,241,249, 47,117,232, 6,135,161,109, 39, 76, 37, 33, 3, 6,196,140, 72, 67, 26,136,184,142, 21, 10,231,148, - 74,241,189,132, 80, 89, 68, 85, 83, 30, 8,168, 27,172,107,219,147,189, 61,138, 1, 29,153, 48,229, 30,220,202, 3, 54, 21,174, - 53, 97, 78, 9,192,153, 69, 66, 64,112,115, 3,116, 18, 54, 51, 52, 11,149, 56, 16, 2, 72, 12,106,224,166,170, 94,222,145, 8, - 32, 18, 3, 65, 55, 40,130, 51, 19, 11,153, 58,130,105,118,254,219,191,250,139,114,235, 39, 34, 40,110, 39, 44,250,164,241, 27, -222, 9,162, 10, 72,160,244,160, 0, 28,184, 44,251,192, 10,218,144,136,220, 0,242,120,133, 25,161,137,163,103,124,204, 74,150, -147, 38, 11,231,190, 85,140, 77, 32, 96, 66, 26, 17, 6, 99,223,169,156, 84,137, 0, 73,136,118,211, 69,212, 2,189,113, 99, 70, -112,163, 93,135,179,240,139,127,211,159, 45, 30, 13, 23,220,181,148, 70,142, 36, 90,121,203,149,166,214, 72, 10,222,169,172,199, - 79,196, 88,133, 2,164,209,137, 87,102,124,192,132, 72, 94,244,214, 60,210, 48, 16,193,204,247,231,147,179,243,183,203,213,102, -177,191,215, 76,102, 6,214, 84,225,151, 95,127,211,109,183,191,253,219,191,181, 89,221, 29, 28, 61, 58, 57, 61,190,191,190,110, -166,115, 68, 50, 51, 34,161, 81, 15, 89,122,218, 12,163, 40,158,222,121,177, 97,100,254,184,103, 29,241, 14, 0,174, 90,190,141, - 29, 63,109, 12,137,151, 2, 55,114,160,114, 23,113,111,230,123,210, 52,174,234, 90,198,127,228,110,204, 2, 14,150,148, 8,213, -140, 0,134,110,184, 95,174,171,201,100, 50,173,143,222,123,120,241,242,213,182, 85,228,144, 54,215,201,121,115,249,114,200,192, - 97,226,158,154,104,211,105, 83,207,246,110, 46,175,222, 92,190, 93,110, 58,176,252,225,123,159,196, 88, 31,157, 60,212,148,182, -247, 23, 44, 18,235,186,105,154,155,139, 87, 57,219,226,240,232,246,229, 47,110,175, 47,165,158, 69,242,197,193,131,118,115,159, -213,235,201,140,114,187,217,172,235,217, 65,168,234, 77,187,250,249,151,191,126,121,121, 53,153, 76, 98, 85,119,221,118,211,118, -204,148, 82,114,176,110,200, 44, 88, 87, 77,153,166, 33,161,186,243, 56,136, 76,229,173,172, 94,134,242,142, 64,109,223,214, 49, - 62, 60, 62,185, 90,222,247,195, 80, 7,100, 32,116,157,206,230, 30,235,117, 55,228,182,159, 68, 86,237,212, 97,179,109, 1, 16, - 29,134, 60, 48, 7, 51, 95, 45, 47,103,243,253, 89,211,112, 96, 52,239,115,150, 88,245,125,127,115,115,141,104, 36,141, 84,149, -112, 68,235, 84,109,182,127, 84, 85, 53, 73,156,207, 22,143,223,123,252,224,225,241,124,190, 24,210,176,186,191,123,115,246,230, -217,179,151, 95,191,124,241,213,139,151,175,222, 94,244,195,240,221, 7,199,127,248,217, 15, 30, 30,157,172,214,183,125,238,255, -228,143,254,240,119,126,239,183,173,239,159,125,241,139,126,232,223, 92, 94,118,195,246,243,207,127,169,174,151,175,222, 6,243, -227,189, 89,211,196,210,207,200,238,129,199,250, 76, 89, 67,141, 45,118,226,146, 81, 99,161,162, 51, 67, 26, 9,168,238,227,156, - 56,171, 21,155, 88, 54, 67, 0, 70, 76,217, 68, 8, 1,133,169, 79, 57,229, 36,194, 99, 52, 15,137, 9,133,201,220, 9,108,188, - 89, 50,185, 90, 63,100, 65, 43,169,110, 71, 80,240, 74,216, 71,140,107, 25,242, 19, 17, 79,235,134,168,100, 21,160,220, 77, 75, - 90,180,124,196, 66, 8, 69, 93, 29, 99, 32, 14,128,165, 40, 68, 14, 72,142,129, 17,198,171, 54,150,165,145, 59,164,108, 34,236, -160,105,116,191,130, 0, 50, 11, 2,150,180,123,249, 34, 89,100,220,157,130,149,250,163,170,250,144,251, 33,187,153, 89,102, 47, - 39, 81,218,177, 16, 32, 48,227, 46, 45,170,102, 44,140,174,125,202,105, 50,121,244,254,251, 63,253,233,207,255,241,167,159,111, -218,237,237,122,141,142,219,161, 61,153, 76, 41,136,132,192,210, 32, 26, 22,141, 38,128,153, 26,128,169, 18, 51,193,184,137,244, - 17, 65,195, 14,112,185, 92, 78, 34, 77,103,179, 18, 25, 47,179, 70,115,207, 89,153, 41,112, 96,102, 43,207,207, 49, 42, 81, 78, -183, 96,166,132, 32, 49,142, 51,132,194, 60, 40,210,214,242,100, 34, 34,192, 32, 92,164,165, 44, 72, 28,213, 64, 45,187, 25, 34, -171, 41,255,251,191,254,183, 35,131, 19, 1, 92,203, 73,121,231,158, 53, 24, 97,133, 64, 59, 93, 86, 41,185, 50,142, 43, 73, 4, - 26, 3,167, 59,242,139,163,185, 25,145, 3,252,102,156, 15,217, 74,204, 31, 8,136,208,115,191,237,243,108, 49,113,117, 32, 67, -167,221, 49,116,172, 30, 16,130, 32,171,155,131,141, 1, 24, 36, 66,231,209, 27, 98,165,149,244, 14, 30, 89,106, 84,227, 94,165, -252, 87, 30,215, 61,229,246,224, 72,110, 99, 84,114, 7, 87,240,119,192, 25, 66, 32,122,215,168, 69,183, 49,145, 96,232, 69, 37, -136, 8,133, 19, 91, 82, 70, 37,203,233, 14, 34,113, 58,169,126,249,229,243,166,106, 22,139, 57, 35,106, 78, 85,160,255,251,167, -255,252,157, 15,158, 12, 67,191,186,191,155,237,237,245,221, 22,176,200, 61,136, 88, 28,129,144, 29,128,136, 17, 75,124,200,223, - 37,147, 67, 8,190,251,109,165, 81,217,190,219,107,104, 42, 91, 96, 98, 26,239,220,184, 83,211,240, 88,103,115,208, 73,179,143, - 8, 33, 10, 32, 2,104,145,113,199,197, 47, 76, 0, 0, 32, 0, 73, 68, 65, 84,195,248, 66, 40,160, 78, 34,166,110,219,157,191, -122,189,190, 95,205,102,179,227,211,163,103, 95, 61,237,146, 78,234,122,179,188,202,198, 64,229,202, 41, 81,112, 90,195,222,209, -233,100,186,215,110,150,111,206,207,151,171, 21, 75,252,173, 31,255,164,170,136, 73, 55,219, 13, 87,147, 88, 77,167,251, 39,251, -135, 15,150,119,183, 55,183,215,148,182,179,131, 19,237, 59, 53,219, 59, 60,105, 55,203,205,166, 77,125, 91,133,234,249, 23,255, -153,171,249, 98,113,220,109,238,239, 87,203,175,207,223,100,131,182,221,204, 39,115,100,124,123,117,221,118,189, 35, 16,146, 1, - 12,195, 16, 67,140, 18, 75,134, 23, 25,205,188,142, 49, 74,220,246,189,219, 88,196, 31, 82,142, 44, 76,156, 52,149,157,206,221, -182,237,134, 97,209, 76,246,246,231,153, 48,245, 3,154, 7,118,142, 77,219, 13,128, 24, 34,103,215, 62,229,108,144, 85, 75,110, -162,106, 26, 4, 77,253,160, 57, 3,147,165, 52,168,239,237,159, 90,110,251,118, 53, 91, 28, 48, 34, 19, 79,166,243,161,223,110, - 55,203,147,147,147,135,143,143, 22, 7, 7, 36, 52,116,253,106,181, 60,187, 56,123,245,250,213,211, 87,103, 79, 95,189,121,123, -115, 51,171, 39,127,252,217, 15,190,245,232, 9,177,220, 93,159,125,255, 7,159,253,215,127,252,147,211, 7, 7,103, 95,127,211, -110,239, 19,249,245,205,237,254,201,225,170,237,159,125,243, 2,187,116,180, 55,221,155,213, 33,160,144,164,108, 36, 20, 72,138, -212,162,216,208, 10, 94, 27,129,193, 93,221,153,216,204,204, 29,193, 8,139, 11,201, 3,133, 33,231,119,147, 83, 51, 35, 36, 34, -206, 57,215,117, 40,115,155, 97, 80, 70, 12,145, 45,229,162,244, 9,204, 62,218, 24, 80, 77,199, 90,148, 91,145, 27,147, 8,131, - 24, 96, 12, 66, 88, 74, 36,132, 36,136,164,230,204,197,116,138,217,181, 92,248,153, 48, 23,233, 23,151,135, 17,187,155,112, 25, - 50, 11, 19, 0,161, 57, 48, 35, 11, 23,252,139,169, 2, 16, 49,169,101,115, 51,164, 32,140,128,142, 76,129, 3, 34, 2, 7, 22, - 20, 6,166, 33, 27,168,198, 58, 20,149, 31, 16,151,192, 68,249,250, 33, 27, 54,149,236,239, 81,172, 86, 41,117,195, 32,133,167, -130, 5,125, 67, 14,224,166,169,172,223, 0,208,173,235,251,165,218,209,227,199,103,111, 46,190,126,254,188,109,183,136, 56,159, - 78,159, 60,120,176, 89,175, 30, 76, 26, 9, 53,135, 24,234,198, 77,205,141,193,179,101, 64,175, 66, 3, 80,208, 91,192,132,229, - 83, 35,196,128,112,115,187,178,212, 29,238,239,129,200,238,172, 6, 14,142,132,194, 50, 10,190, 67, 69,140,132, 98,106, 65, 56, -134,224,238,170, 90,226,207,150, 45,134, 64,196,234,198, 8, 33,134,241,178,174, 30,138,239, 19,220,220,152, 80, 88, 10, 79,145, -169,220,227,176, 79, 3,255,221,223,252, 37,140,205, 93, 26,145, 38, 59, 17,202, 8, 34, 52,103, 14,227, 81, 24,119, 17, 61,220, -157,140,145, 70,155, 94, 57,180, 23,150,123,161, 32, 2,185, 41, 16, 65,185,106, 1, 18,151,165,144, 85, 85,120,251,246,246,225, -195, 7,102, 61,161, 56,184,155, 34,122,129, 19, 20, 70,174,249,136,198,216,189,210, 71, 47,221,142,216,131, 72, 50,126,197,165, - 39,108, 90,152, 57, 6,133,251,232, 64, 96, 6, 89,177,200,174, 93,109, 20, 66, 1,140,175,167,157, 68,157,208,144, 5,118, 47, -138, 17, 86, 7, 56,154,196,203,189,115,188, 47, 8,241, 8,241, 45, 89,170,253, 69,115,119,123,123,117,187,156,205,231,147,201, -196, 0, 68,112,189, 92,159, 95, 94,255,183,127,246,223, 47, 22,245,249,217,249,124,239, 96,187, 90, 86, 85, 61,170, 85, 88,118, -120, 63, 65,230,130, 22, 0,211,221, 76,109, 55, 90, 42,129, 35, 47,223,206,187, 6, 22,151,125, 54,208, 8, 21, 37, 34, 98, 46, -119,175,210, 47,159,236, 29,196, 88, 59,112,121, 67, 0,179,229, 97,204, 18,140, 71, 24, 68,164,213,221,242,252,205, 25, 56,238, -237, 79, 15,142, 31,188,252,250,153,171, 74, 12, 73,217,109,200, 41, 33, 73, 53,157,138,200, 98,198,251, 71, 15,145, 56,245,253, -203,151,175,174,238,238,231,243,253,239,126,244,109, 32, 72, 67,110, 22,135,100,158,134,237,226,224,144, 72, 54,235,229,230,246, -250,230,250,162,158,204,174, 94,127,209,109, 87, 67,183, 78,155,101,156,236,121,185, 75, 54,115,244,108,214,181,119,111,127,241, -213, 87,255,241,167,159,207,167, 83, 98, 90,109, 86,125, 26,110,238,151, 5,233, 92,130, 66, 69,103, 60,169,235,192,226, 35,216, -159, 28,188,156,165,218,126,200,234, 72, 92,196, 41, 85,172, 20,124,219,181,136,120,176, 88, 76,154,201, 98,222,172,187, 36, 6, -185,221, 58, 34, 32,101,205,106, 46, 34, 85,172, 42, 17, 68,234,251,158,133,205,116,218, 52,125,187,149,170,169, 10,154,124, 72, - 64, 20, 24, 35,113,219,183,205,100, 42, 68, 34,149,153, 3, 41, 32, 60,254,240,131,247,223,123, 50, 91,204,193,181,111,187,213, -242,254,242,242,237,171,243,203, 47, 95,188,122,126,126,190,221,110,191,251,222,251,127,246,187,127, 24,172,223,118,221,180,230, - 63,252,147, 63,250,225,143,127,123,232, 54,111,190,249,245,228, 96,177, 66,248,197,175,190, 0,160,231,175,206,222, 60,125,125, -188,152,236, 47,102, 84, 76,200, 14,170, 26, 67, 96,228,178,101, 41,251,134, 24,100,132, 61, 33,148,252,137,153, 49, 11,142, 53, - 69, 39, 96, 66,206,154,136,208, 70,105, 54,140,212, 95, 9, 85, 37,217,220, 82, 6,196,186,138,102,110,250, 78,134, 67,142, 92, - 8,220,194, 40, 34, 41, 37, 36,182, 2, 88,103, 86, 85,119, 15, 68,166,166,154, 10,251,186,196, 99, 98, 93, 87, 18, 1,193, 65, -131, 68,115, 69, 34, 53, 8, 34, 33, 72, 20, 33,100,115, 8,204,229, 33, 80, 38, 11,136, 68,238,196,130,200, 64,152,179,149, 64, -114,161,165,238,208,169, 36, 18,202,169, 62, 27,136, 68, 98, 48,115, 75, 78, 34,196,156,205,136, 88, 36,128, 89,249,128, 32, 82, - 78, 42, 7,179,230,193,195,151, 23,151,157,170,212,245, 42,229,205,144,153,176, 22, 14,204, 6,102, 6,230,185,180,190, 37,178, - 14,105,173,105,241,240,244,118,217,254,227, 79,127,182, 92,111, 75,152, 45,198, 96, 14,236,237,147,131, 35, 96, 38, 68, 22,202, - 57,107,206,150,141,152, 0, 11, 21,197,133, 24, 68, 10,112,133, 28, 84,109,185,222,220,222,223,159,238,207,170,166, 81, 53,220, -217, 49, 2, 5, 70, 84, 7, 66, 39,150, 66, 81, 44, 70, 13,162, 48,228, 84, 76, 44,229,239,184,174,130,170, 17,130, 16, 19,203, -120,209, 66, 38, 2, 3, 74, 67, 22, 44, 1,254,210, 82,245, 16,248, 29, 56, 32,165,196,127,251,215,255,142,198, 7,115,113,217, -141, 18,163, 50,193, 86,203, 84,110, 33,227,131,145, 60, 59,162,150, 50, 49, 73,145,107,192,187,208, 98, 73, 53,150, 33,199, 72, - 91, 30,179,150, 35,231,177,200, 54, 2,243,197,229,245,225,201,177,148,223, 92,244,157, 57,116, 28,195,149,120,209, 59,113, 42, - 34,113,241, 8,150,211, 72, 54, 42, 43,249,113,164,225,102,201, 13,118, 35,176,221,168,103,167, 28,249, 23,226, 18, 32, 2,121, - 23,156, 28,169, 46, 72,129, 0, 25, 32,188,163,199,143,177,202, 29, 91, 14, 1, 13,138,173,155,161,160,233,137,202, 23, 73, 28, - 31, 62, 60,121,254,252, 53, 16, 77,166,179,102, 50, 25,134, 20,132,190,252,250,217,233,225,126, 30,250,171,235,183,119,119,183, - 68, 30,171,186, 60,224,202,142, 98,231, 27, 68, 64,176, 33,149, 83,120,169, 44,143,160, 55,215, 66,254, 43, 99, 36, 87, 43,186, - 75, 26, 65,209,255,191,183,222,120,255, 33, 66, 8,243,227,135,229,231, 55, 94, 67, 10,148,172,236, 78,204, 41,198,180,221, 74, - 29,215,171,237,229,249,165, 14,219,197,254,193,209,233,131,151, 79, 95,164,172,105, 72,125,219,173,111,222, 0, 79,117,243,182, -154, 29,245,235,187,246,254,245,222, 98, 65, 0, 47, 94, 60,255,217,175,191,216,172,183, 31,125,252,221, 15,222,255,176,219, 46, - 93, 83,179, 56, 78,195, 22, 89, 42,219,174,111,222,128, 52,104, 90, 87,245,245,229,197,124,255, 84,152, 86,247, 43, 71,105,215, -171,102,182, 87, 9,197,201, 52,167, 14,101,210,117,195, 47,190,250,213,197,106,243,244,197,203,189,197,220, 29,210,144,238, 86, -235,145,183,231,227,164, 42,187,166,148, 38,245, 52,136,248,110, 83,239, 0,129,163, 35,180,125,251,174, 66, 55,228, 97, 82,213, - 72,152,205,126,248,233, 71, 76,248,249, 87,207,183, 93, 55,175, 66,172,107, 51, 3,146,178,191, 6, 5, 98,110, 87,119,186, 43, -226,215, 49, 70,166,182,221,198,216, 8, 67,144,186, 14,146, 77, 65,147,123,118,207,194,129, 89, 36, 72, 96,108,166,211,111,125, -250,201,163, 71, 79, 66,140, 67, 26,218,174,189,191,187,251,242,217,179, 95, 61,253,230,155,151,175,223, 92,188, 93,212,211, 63, -248,236, 71,191,243,157, 79, 38,179,197,171,103, 95,124,250,201,183,254,135, 63,255,243,253,253,253,231,191,252,231,118,187, 92, -117,237, 23, 95,126,245,242,155,103,147, 73,243,236,215, 79,107,131,147,253,121, 93, 87,174, 70,132, 89,157,152,133, 67,136, 12, -192,229,227, 23,162, 8, 48,129,140,177,246, 50,145,196,146,192, 51, 0,160, 34,102, 24, 13, 56, 0,136,234,202, 28, 25, 17,137, -170, 88, 1,143, 79,124, 22,137, 49,142,127,172, 48, 88, 9,171, 80, 96, 78,158,139,193, 46,165,172,166,165,166,158,135,212,247, - 67, 37, 2, 8, 99,149,164, 48, 55,152,128,104, 58,105, 88,202, 53, 31, 10,184,196,198, 79, 44, 87, 49, 6,150,108,134,204,187, -157, 0,102,117, 34, 38, 38,112, 36, 17, 22, 81, 3, 22, 14,204,229, 83, 38,194, 8, 2, 88,144,225, 84,246,135, 76,196, 66,230, -154,213, 9,203,189,151,144,208,204, 75, 40, 82,221, 0,129, 3,187,186,154,206,159, 60,185,223,180, 95,127,249, 84,115, 98,150, -219,251,165, 17, 34,139, 19, 72, 9,203,144,148, 19, 15,160,229,148,135,156,113, 58, 27, 12,159, 63,127,121,187, 90,169,101, 48, -127,242,240,228,241,163,199,151,215,111, 63, 60,220,219,159,237, 67, 73, 97, 26,228, 97,240,157,156, 90, 40, 20, 73, 81,105,147, - 49,242, 48,162,228,253,250,110,133,174,139,253, 57, 51,131,123,178, 92, 30,196,163, 68,176,212, 17,188, 76, 30, 32,196,160,217, -218,190, 19,198, 24,162, 2, 86,204, 14,144, 76,105,100,107,210,238,105,198,224,218, 15, 10,150,130,112,118,207,217,145,128,145, -204, 60, 59,148, 62, 48, 34,230,172,252,119,127,253, 23,239, 48,181,229, 83,130,229, 39,189,227, 90,189, 83,102,240, 78, 83, 14, - 4, 99,148, 22, 1,139, 72,174, 80,120,202, 16,185, 44,115,124,151,185, 46, 83,136,241,143, 7, 68, 48,117,102, 89,223,223,106, -152, 44, 38,149,155, 35,128,144, 56,148, 28,149,191, 75,221,140, 70,234, 82, 62,246,119, 39,239,119,231,145,200, 99,100,189, 76, -240,129,138,241, 17, 11,212,134,184, 68,125, 74, 27, 23,129, 9,153, 73,118,128,117,112,119, 55,203,133,129, 74,229,116, 11,101, -158,232,239,156, 37,190,243,126, 56,130, 1,238,214, 5,227, 35,150, 16,220, 76,155,166, 18,242, 23, 47, 94, 47,246,246, 98, 85, - 85, 85,221,118,237,102,189,185,190,190,250,193,119, 63,253,228, 59,223,185, 58,123,241,254, 7, 31, 93, 93,188,142,161, 25, 61, - 57, 37,199, 35, 76, 64,174, 14, 52,182,195, 70, 6, 82,201,134, 90, 1,246,152,143,212, 72, 51, 24,249, 27, 5, 68, 51,178, 85, -119, 28, 30, 68,100, 38, 51, 88, 28, 28,149, 1, 44,184, 1,209,216, 35, 6,114, 3, 20,113,207,224, 32, 44,119, 87,119,119, 55, -119, 89,243,193,225,241,193,201,226,236,213, 89,215, 14,155,229,101,151, 90,164, 41, 87, 65, 98,147,123,219,172, 46,254,195,127, -250,143,255,240, 95,254,233,243,159,255,244,191,252,236,243,203,187,251,164,233, 71,223,251,221,131,163,135, 92, 53, 20, 23,195, -230, 54,181,247,113, 54,223, 59,121,184, 89,173, 40, 86,221,102,189,188,127,219, 76, 23,195,230,126,187,188, 93, 28, 62, 90,222, -189, 69,150,186,158,222, 95,190,238,218,141,166, 97,177,127,188,222,220,253,243, 55, 79, 89,228,236,250,250,110,185,100,166, 24, - 4,157,134,212,219, 8,141, 40,215, 24,202, 57,101,213,166,174,130,132,221, 55, 12,230,214,132,255,143,169, 55,251,177, 45,185, -206,252,214, 16, 17,123,159, 49,231,155,119,190, 85,117,107, 96,145, 44,138, 67, 73,108,146, 18, 7, 73,109, 11, 26, 72,169,219, -109, 73,221,104,184,209, 15,134, 97,192,126,243,191,100,216, 64,195,176, 13,195, 48,108, 9, 80,183,221,118,183, 68, 81,226, 88, -243,157,115, 30, 78,230, 25,247,222, 17,107, 45, 63, 68,156, 44,189, 93,178, 88,200,203,147,251,196, 94,177,190,239,251,125, 94, - 64,155,174,203,231,156,168, 38,179,135,251,123,119,183,183,167,203,213,217,197,117,191, 55,154,204,175, 85, 99,191,234,101,230, -129, 74,146,148,174,174, 47,178,236,148,136, 45,165,126,175,234, 87, 53, 0,132,224,205, 52, 38,109,154,102, 54,159, 48,234,173, -205,173,221,221,189,157,173, 61,118,161,141, 93,168,195,237,251, 15, 31, 60,126,253,246,157,187,200, 20,155,213,116,122,245,242, -224,229, 47, 63,252,244,233,171, 87,167,231,215,211,233,244,209,254,173,255,228,219,223,189,127,123,135,125,208,216,126,231,251, -223,125,255, 55,190, 57,187, 56,189, 60, 59, 58,191, 56, 89,116,177, 30, 15,125, 8, 47, 62,125,222,206, 86, 91,227,225,112, 80, - 97, 89,252,113, 50,115,236, 56,167, 65, 0, 50,205, 42,132, 42,243, 86,147, 9, 17, 99,142,171,130,186,181,171,192,196, 20, 36, -137, 57,199,153,194, 4,102,142,124,206, 62, 49,123, 85,209, 36,196,236, 8, 85, 85, 68, 85,129,185, 88,205,204, 20,137,193,160, - 14,190,237,162, 33,120, 42,242, 90, 76, 41,169,152, 89,238, 84,206, 28,115,114, 92, 87,158,208,213,222,173,145,168,104,144,227, -232,232,216, 1,160,115,164,146, 61,151,132,128,236,179, 11, 30,156,203,239, 6,246,161, 38,231, 16,160,170, 2, 50,171,105, 76, -234, 28,154,129,137, 9, 24, 57,151, 68,136,153, 61,145,101,209, 8, 67, 85, 1,114, 65, 56, 1,128,168,100,109,137,139, 63,159, - 20, 23,210,180,200,207,159,189,154, 76,231,147,171,235,243,203,137,130,142, 7,195,235,197,124,213, 70,116, 28, 8, 29,168,247, - 62,207,175,177,233, 58,230, 48,222,252,249, 7,159, 30,158,158,128,161,169, 18,113,221,235, 93,205, 22, 53,200, 59,247,239,147, -115, 0,172, 42, 93,138,148,133, 17, 53,239,188,161,137,149, 74, 44, 51,200,104,107,239,221,124, 21,231,243,249,173,237,141,170, -174,146, 90,236,186,224, 42, 34, 66,162, 12,129,202,198,246,162,246, 1, 74, 18, 3,169,234, 32, 6,170,209, 57,159,151, 20, 25, -197,115,131,141,101,164,164, 81, 69,156, 99,118,216,117,130,102,204, 84,101,124, 2, 0,170, 33,145, 42,152,196, 40,137,255,244, - 71,127, 88, 42,233,138,160,154,199,237,140,113,207, 14, 60,203,139,247, 53,234,203, 40,135,126,138,173, 97, 61,185,175,231,204, -188,174,206,219, 98,202, 18,120, 9, 60,173,211,173,165, 14, 80, 23,173,108,109, 12, 37, 38, 43, 43,110, 83, 48,212,210, 21, 72, -228,214,205,128,134,120, 51,178,150,217, 58,123, 94, 11, 26, 31,114,247, 8,150,165, 5, 17, 21, 95,189, 3,200, 77,193,133,131, -137,159,155, 39, 1, 13, 21, 81,212,242,130, 4, 50,244, 6,215, 65,214,245,250, 41,123, 54,160,168, 72,153, 91, 99, 55,152,245, -140,118, 22,181,221,237,205,167,207, 94, 69,177,254,112, 84, 87,125,231,168,109,154,159,126,248,105,205,221,254,254,206, 98, 54, -255,248,195, 95,157, 31,191, 10,140,190,238,177,243,236, 3,177, 67,200, 45, 34,172,146, 84, 4,137, 75,240, 67,109,109, 57, 45, -237, 58, 57, 65,199,107, 33,152,156, 47,191, 44, 94, 39, 6,212, 56, 56, 19,243,245,168,191,177,153,177,154, 26, 99,201, 70,100, -174, 89,222, 43,117, 29, 34,115,229,231,215,179,179,195,195,148,236,238,163,135,163,205,209,171,167,175,186,110,217,174,218,212, -169,167, 4, 0, 0, 1,152,122,220, 45,151,179,207, 94, 30,126,248,236,229,249,228, 26,193, 0,221, 55,190,242, 53,239, 43,212, - 68, 68,177,185, 6,145,219, 15,223,214,152,212, 85, 34,214, 76, 39,189,193,184, 10,117,179, 90,176, 27,174,218,149, 25,110,108, -236,116, 77,211,182,203,225,104,179,238,111,118,205,236,147, 79, 62,252,229,179,231,249,249,152, 92, 93,119, 49,153,218,206,198, - 24,145,150,171, 6,214,215,152,252, 91, 78, 41,169,105,175,174, 3, 59, 85,181,242,234,197, 94,221,219,232, 15,135,189,161,129, -142,251,245,107,251,123, 41,197,103, 71, 39,128,174,235,154,141,209,104,119,107,235,236,106, 42,169,171,124,157,105,209,170,138, -190,114,206,123,199, 8,224,188,223, 26,141,103,243,105,138,157,239, 15,219,216, 69, 81,116,158, 9, 71,181, 75, 93, 28,141,199, -203,118,117,189,152,111,237,237, 60,122,243,173,251,175,189,190,177,189,139,200,211,235,203,195,195,195,207,158, 63,251,232,211, -231, 7,103,167,231,151, 83,231,232,155,191,246,213,175,127,225,109, 54,152,207,231,247,238,237,127,227, 27, 95,221, 24,143,142, -159,127,150, 40,117, 8,191,248,228,179,189,205,141,195,243,139, 79,126,249,241,198,160,191, 53,234, 83,161,129,228,203, 98, 6, -157,251, 12,228,102,202,197,108,200,142,204,178, 26, 68,134,150,123,125, 45,231,119,214,119,238,164,234,152, 45,143,216,217,211, -134, 64,128,206,187, 36, 41,207, 68,140,148, 84, 76, 85, 83, 44,223, 40, 67, 41,166, 44, 66, 68, 5,160,220, 58,131, 25,231, 74, -222, 5,206,200, 11,202,205,116,196,142,136,201, 57, 70, 36,209,168,128,149,119, 42,121, 61,146,145, 37,204,132, 49,199,115, 28, - 1, 0, 51, 3,100,249,151,137,152, 43, 95,238,174,148, 61,135, 22, 37, 86,235, 43,133,138, 58, 31,216,145,103,102,239, 16, 73, -147,196,100, 89,196,205, 59, 37, 98, 86, 80, 19,201, 58,115,169, 53, 67, 50, 85, 83,153, 38, 89,118, 58,157,207,155, 85,211,165, - 14, 81, 99, 23,163, 72, 74,201,133,208,136, 38,226,202,129, 3, 67,132,174,137,139,148,252,198,232, 98,114,125,116,122,214,117, -157, 35, 66,132,183,222,120,216, 38,157, 93, 95,125,229,209,221, 97,221, 47, 36,154,210, 83,103,142,125,130,114,196, 85,161,103, - 0, 42,146, 36, 2,152, 39, 15,166,199, 23,147,205,158, 31,142,134,170,128,104,142,125, 89, 24, 48, 6,226, 76,205,117, 76,128, -220,165,148, 99, 77,204,222, 0,152, 28, 33,139,196, 44,149,147,154,102, 39, 18,145,129,117,169,147,100, 68,168,102, 10,200, 8, - 68,152,161, 5, 42,134,136,150, 50, 90, 1, 29,115,140,202,127,246,163, 63, 44, 13,117, 6,136,180, 70, 13,220,212,244, 25, 34, -115,185, 94, 97,129,245,174,119, 41, 89, 40,200,128,150,242,156,173, 37, 12, 85, 64, 46,173,132, 57, 59,191,238, 87, 53, 34, 48, - 68,239,252,233,233,209,206,173, 59,146,186,204, 3, 64,200,190, 32,204,203,250, 60,122,150,176,149,149, 12, 85,126, 67, 20,163, - 75,166,246,174,215,180,140, 4,142,110,140,246, 88,108,129,134,146,241,110,192,197, 74, 77,159,215,196, 26,163, 65, 38, 80, 32, - 50, 64, 42, 48, 28, 67, 36,203,183, 24, 64, 34,244,148, 77,186,229,103,223,124,167,104,253, 90, 37, 71,126, 52,170, 62,121,246, -114,208,239, 87,117,221,239,247,235, 58, 44,166,211, 15,159,159,190,125,123,188,119,247,222,203,167, 79,190,241,205,127,244,226, -179,143,123,253,126,127,180,157,219,169,204,178,233, 84,178, 11,146,202,235, 15, 11,180, 30,203,175,120, 45, 55,184,178,139, 89, -123,224,136,125,233,154, 93,247, 30, 32, 81,232,143,171, 94,207,180,224, 76,193, 0,156, 67,100,141,137, 72,129, 28, 57,159, 59, -160,175, 46,167,103, 39,167, 10,112,239,222,237,126, 21, 62,253,240,227, 4, 56,191, 60, 97,239,129, 61, 98,109,237, 60, 38, 29, -247,181, 23,120,115, 52,232,247,122, 73, 82, 23,211,112, 56,252,250, 23,191, 38,113, 21,170,254, 96, 99,163,237,162,247,117,175, -223,107,187,180,156, 28,167,118, 89, 15,119,134, 27, 91,166,182, 90,204,134,227,205,170, 55, 34,166,174, 89,228, 12,180,196,184, -177,185,141, 93,252,241, 47,127,230,234,129,129,121,162, 69,179, 66, 38,199,212,180,109, 94,171,173, 37, 38, 92,191,188,177,137, - 73, 84, 6, 85,133,192,154, 61,147,101,182,192,189,173,173,175,190,253,218,157,157, 29, 3,119,126,189,152, 45,150,200,214, 52, -157,247,110,119,103, 43,248,234,233,241,177,103,232,215,189,202,249, 36,186, 22,184, 32,182,173,170, 5,143,222,133,170,215, 7, -213, 94, 85, 17, 82,155, 98, 21,124,191,223, 31, 12,198, 4,208, 27,110, 62,120,231,157, 55,191,244,222,254,189,215, 67, 21,154, -249,245,193,171,103,207, 62,123,250,228,229,171,151, 71, 39, 7,103,103,231, 87,215, 95,121,252,250,251,239,190,123,255,238,107, - 81,210,214,206,206, 55,191,245,235,175, 61,186,127, 61, 57,107,154,217, 39,159,124,244,226,244,116, 62,157, 93, 78,174,143, 94, - 29, 45, 39,179,157,209,112, 88,215, 55,222, 93, 34, 10,222, 37, 77,156,193,179,200, 88, 54, 84,107,110,117,233,207,225,181, 50, -134,204,222, 51,235,122, 39, 73,228, 20,208,179, 47,137, 15, 36, 68, 82,149, 54,118,193,249,108,146, 17,137, 18, 59, 38, 16,133, -224, 3, 50, 90, 30, 95, 40,103,103, 92,105, 66,101, 2, 68,102,242, 76, 92,204, 8,204, 46,228, 94,132,138, 93, 76,194,232,128, -144,115, 43,142,170,130, 49, 51, 98,110,197, 96, 36,172,214,158, 22, 38,151,127, 83,196,236, 28, 35, 81,169,137,203,143,122, 82, - 67, 32, 32,145,132, 0, 57,205, 0,104, 92,210,161,104, 42,128,192,193,103, 19,142, 9,146, 39, 48,131,148,208,231,141,129,187, -209,226, 8, 41,153, 1, 98,135, 41,132,122,190,108, 22,171, 85, 82, 80,181,220,188,218,175,195,100,186, 0,128, 6, 81,201,192, -120,217, 9,142, 71,211,101,243,243, 15, 62,158, 47, 22, 25,173,222,239,213,222,135,243,201,213,151,239,223,221,223,220,138,170, -160, 72, 76, 42,160,166, 61, 23,216,249, 76,177,245,206, 35,115, 62, 91, 67, 85, 49, 51,170, 77,102,203,118, 53,223,218,222,240, -189, 26,217, 35,113,215,117,206, 17,135, 0, 70,106,106, 42,142,208, 8,219,166,243,140,136, 44, 26, 93, 30,251, 50, 33, 17, 13, -153, 68,196,214,125,212,162,154, 67,203,204, 78,147, 16, 97, 8,228, 66, 21, 69, 40, 59,199, 25, 21,208, 36,121,231,204, 12,243, - 46,238,207,255,228, 71, 96,160, 32,165,200, 54, 79,182, 72, 0,192,174,108,191,168,240, 24, 0,128,202,122,187,228,101, 11,228, - 29,203, 42, 60, 71,128,141,224,230,159,222, 48, 13, 21,145,137, 75,119,135, 25,212, 85,117,126,114,234,251, 27,126, 29,145, 42, -131, 26, 25,185, 27,141, 49, 71,103,179,129, 68, 11, 3, 6, 74,176,215, 44, 99, 35, 53, 7, 74, 11,238, 38,163, 91,202, 95,201, - 76, 1,137, 17, 5,184,172,186,217, 21,202, 78, 94,200, 19,123, 32,134, 66,154, 51,204,171,223,108,154, 41, 34,167, 34,152, 65, - 78,237, 2, 49, 27,144, 34, 16, 16,231, 16, 22, 33, 0, 27,232,246,206,206,242,250,250,226,122, 62, 30, 13,201,133, 58,244, 24, -245,195,207, 62, 67,115, 3, 94,190,124,241,106,255,193, 27,154, 58,141, 82, 15,135,196,206,135, 42,171,200, 25,129, 74,204, 89, - 53, 45,141,103, 25,250,147, 93,237,133,136,161,107, 36,112,185,224,100,241,245,134,172,192,236,204,180, 63,218,169,122,125,160, - 92, 69, 70,150, 18,128,165,166,201,175, 8, 83,115,217,184,214,181,147,201,252,228,213, 11,235,150,175,191,243, 14,123,247,252, -201,139,235,211, 3,209,174,238,111,197,100,177,155, 85, 85,237, 29,250, 16, 25,157,119, 46,166,238,252,106, 10,128,183,239,220, -121,247,241,187, 10,145,156, 71,224,118, 62, 55,196,224, 56, 25, 46,103, 87, 93, 27, 1,124,187,188, 88, 45,103,139,217,213, 96, -180, 41,113,185,154, 28, 57, 4, 96, 95, 85,149, 11, 30, 36, 61,249,236,131, 31,127,244,113,236,186,121,211,204,166, 83, 1, 11, -176,126, 6,208,242,155, 45,198, 8,107,135, 93, 78, 47,116,109,151,204,250,253, 62,234, 90,212, 55,243,204,119,246,198,151,211, -249,197,245,162,170,170,173,205,209,254,214, 78,219,118,215,179,105, 47,212,103,147, 11, 48,245, 92,157, 92, 93,143, 67, 80,144, -202,123, 2, 76,210,121,230,182, 93, 25, 81,191,234, 85,193, 87, 85,127,181,184,114,190,118,228,137, 45, 37,107,147,116, 41,237, - 61,120,244,230, 87,190,126,251,225, 27,195,141, 45,105,227,114,118,249,228,201,147, 23,175, 14, 15, 78, 79,159, 31, 28, 30,157, - 93,116, 93,247,107,143,223,122,124,255,158, 26, 59,166,119,223,120,248,245,175,191, 71,218, 93, 28, 61,127,249,244,137, 16, 8, -232,214,230,240, 39, 63,254,153,182,114,107, 52,220, 24, 13, 60,121,200,161,142,210,245, 75, 73,173,114, 21, 33,106,238,226,201, -206, 63,242, 57, 41,152,123,148, 68,133,153, 21, 17, 84,193, 52,105,110,246,241,106,150, 84,234, 16,136, 25,193,114,102, 71, 84, - 77,181, 87,247, 8,172,137, 89, 51, 67, 34, 74, 38,136,236, 61, 3, 96, 29, 42, 17, 81, 85,199,156, 97, 91,236, 24, 50, 38, 9, -161, 72,150,128,204,148, 52,121,199,142, 93, 20,245,142,242, 77, 57,127, 71, 99, 18, 52,242,129,131, 39, 1, 76,146, 16, 13,201, - 1,176,169, 8, 42,152, 18,187, 42,120, 66, 80,133,220,149, 9,142,186, 54, 17,147,115, 78, 36,130,129,247,174, 77,137,137,122, -117,149, 13, 67, 34,146,109,136,136, 6, 70,206,121, 35, 51, 66, 38,151, 13, 43, 76,228,216,137,170, 98,206,189, 2, 35, 16, 96, - 39,118,113,117,237, 60,189,126,239,254,178, 89,165,152, 16, 76,212,174,174,175,199,131,254,112, 56,156, 45, 27, 64, 55,139, 66, - 33,184,224,143,143, 79, 46,174,167, 34,137, 8,251,117,245,248,181, 71,199,151, 87,247, 55,134,111,221,221, 71,176,192, 30,157, - 67, 38,118,232,157, 19, 64, 83,173,122,181,227,144, 36,105, 74,228, 28, 5,103,162, 68,144,196,206, 46,175,110,109, 15, 55, 54, -119, 93,168,136,188, 74,116,228,216, 57, 51, 75, 49,153,168, 35,108, 58,149, 24,123,117, 45, 6,160, 90, 85, 61, 85,200,192,112, - 3, 35, 36, 53, 69, 85,207,220, 73, 76, 49, 49,179,247,190,105, 27, 53, 53,212, 42,184, 78,208,146,196,148,242, 36,152, 45,128, -236, 57,195,229,234, 16, 90, 21,254,179, 63,254, 67, 64, 40,115, 47,131, 74,177, 9,146, 17, 18,169,100,170,250, 26,201, 5, 86, -138,188,254,193, 94, 62, 31,165, 89,137,132,181,150, 9, 37,118,104, 72, 25, 32,130, 8, 32, 57, 64, 65,104,160,206, 7,137, 93, - 84, 28, 13,107, 64,159,255,165,220,134, 90, 56,186,133,115,150,117, 95, 51, 53,162,245,202, 4,177, 44,202,243,215, 3, 72, 52, -229,211, 63,159,205, 8,154, 55,249,159,163,211,197, 64,129,214,247,144,124, 74, 26, 57, 36, 95, 40,146,197,169,175,121, 85,165, - 57,172, 91,218,150,180,252,191,101,202, 23, 20,206,197, 38,235,183, 24,229, 69,166,218,120,212,127,121,120,236,125, 85, 85,189, - 42, 4, 23, 66, 77,250,211,143,158,108,247,253,151,190,250,222,225,171,163, 71,111,191,115,118,124, 52,222,216,113,190, 42,246, - 76, 43,142, 87, 0, 2,226,178, 13, 67, 64,226, 27, 76,155,153,170, 8,136, 42, 96,161,142,220, 4, 17,242,146,162, 92,147,192, - 68,135, 59,183,217,179,118,109,142,229, 81,229, 76, 44,187,116,164,139,161, 87,105,236, 76,162, 37,189,184,156, 45, 22, 77, 24, -108, 62,122,252,168,109, 86, 31,252,253,143,167,167,175,122, 27,183, 37,117,132, 22,234, 13, 12, 53,168, 90, 55,117,206, 37, 73, - 23,147,233,197,228,122,177, 92,125,233, 11, 95,249,194,151,223, 71,100, 49, 52,176,184,154,223,122,240,104,255,193,155,231, 7, - 79,102, 23, 47,124,168, 92,175, 47,221, 74,218,153, 52,215, 73, 36, 54, 77,175,215,159,205,174, 57,244, 24, 89, 99,179,152, 77, -254,238,131,159,190,154, 76,135,253,126,215,117,203,182,109,219, 40,160,102, 38, 73, 37,105,126, 30, 21, 44,137,220,136, 64,121, -156,104, 99,231,144,122,189,218, 76,107,239,111,109,143,198,131,193,241,233,229,217,228,170,137, 93,215,117,154,196, 57, 26,246, -122,139,166,105, 98,155,162, 36, 85,239,160, 75,118,181,152, 87,132, 62, 84,140,138,232,242, 84, 91,247, 6,102,170, 73,230,243, - 75, 48,246,222, 87, 33,204, 23, 75, 51,219,191,125,231,189,111,188,255,248,139,191, 54,218,216, 68,194,217,229,233,217,225,171, - 39,207,158,188, 56, 56,120,254,234,240,197,193,201,233,100,178, 51, 30,127,227,205, 55, 95,187,119,111, 54,155,222,187,115,251, -215,191,241,222,131,251,119,206, 79, 14,154,213, 28, 7,189,143,159, 62,175,157, 63,155, 78, 62,251,224,233,102,175,190,179,189, -105,104,249, 41,228,226, 68, 35, 98, 6, 4,239, 88,138,146,136,162,178,174,199, 89, 55,187, 16,218,231,104,223,162, 70, 17, 48, - 19, 38, 17,199,158,185,236, 42,136, 93, 76,217,150, 13,165,246,192,128,215,193, 37,102,118,236, 51,186, 60, 4, 23, 83, 2, 49, -118,107,237, 14,114, 83,118, 46,187, 84, 88,247,120, 56,196,224, 93, 38, 63, 6,239, 12,129, 28,177, 39,176,245,201,193,148,146, -170,145, 15, 85,224,192,236, 68, 68, 82, 71, 76,140,204, 46, 16,162,228, 75, 61, 2, 17, 37, 85, 85,101, 66, 68,144, 36,153,254, -139, 4,204, 14,145,147,198, 20, 37,223, 4, 68, 21, 12, 44, 26, 82,142, 62, 98, 38,164,243, 58, 33,152, 93,193,180,254, 90, 19, -185, 64,200,200,192,216,116, 93, 8,161,107, 83,240,174,233, 98,142, 8, 24, 88,219,182,117, 85, 13,135,131,179,139,203, 65,191, -126,117,114,246,226,240,168,156, 98,132, 91, 91, 27,200, 46, 46, 23, 95,125,120,183,215,235, 25,144, 88,102,205, 35,128, 3,208, -224, 42, 0, 16, 81, 85, 1,196,170,242,165,240, 19, 80, 13, 46,166, 83,135,186,187,187,171, 68, 6,230, 66,197, 33, 0, 65,238, -120, 34,114,162,169,235, 58,102,240,206,229,149, 50, 82,182,132,150,190,114, 19, 41, 59,122,114,130,192, 72, 92, 2, 48,226,200, -229,190,204, 92,183,204, 68,196, 46,171,181,165, 33, 46,103,184,136,137, 72, 69,156, 81, 6, 99,230,238,173,188,221, 32, 80,203, - 48,252, 50,200,230,187, 34,193, 77, 95,105, 25,117,129, 32,195, 52,179,133,116,109,227,206,144,159,245, 61, 32, 39,217, 44, 71, -168,114,161, 5, 51,155,217,198,120,120, 50,153, 33,142, 51,139,147,145,204, 4, 29, 65,150, 3, 51,248,203,138, 22,105, 37,220, -129,235, 6,162,252, 56, 2,161, 19,205,232,211,146,245, 65, 2,180,181,238, 4, 69,190,128,204,230,202,243,176,100,131, 60, 50, -179,164,132, 38,235, 96,238, 58,133,101,152, 35,162,134,134, 6,140,206, 32,183,218,100,217, 62, 39, 49,114,196,200,149, 14, 66, - 64, 49, 27,111,110, 62,186,183,127,120,114, 49, 24, 14,189,115,131,193,232,141,199,111, 29,156,156,253,221, 39,135, 15, 30,221, - 57,124,249,100,213,174, 16, 45,198,198, 73,133,236, 16,179,197,202, 64, 20, 28,131,105, 70, 45,151,129, 29,233, 31, 72, 2, 98, - 6,204,222,192, 84, 5,145,214,136,102, 40,216, 31, 81,231, 56, 10, 34,128,116,157, 1,147, 99, 48,213, 85, 99,230,184, 14, 42, -145,131,215,156,153, 66,118,189, 26,236,136,152,177, 91, 16,210, 98,114, 53, 61,122, 49,186,251, 24, 24,217, 56, 54, 43,147,171, -173,251,111,205, 47, 94,144, 26, 32, 55,171, 70, 68, 76,177,139,205, 59,111,189,139,224, 22, 87, 19,244, 20, 23, 83, 53, 9,152, -150,147,147,233,233,115,195, 42,166, 84, 3,104, 90, 93, 93, 28,246, 7, 27, 33, 84,189,254,230,201,179, 95, 12, 55,246, 70,155, -123,179,243, 87, 72,210, 25,158,206, 86,207, 95, 30,248,135,247, 87,171,101, 18,201,215,210,124,150,172,145,212, 56,118,189, 85, -215, 45,155,166,164,162,181,116,190,156, 76, 46,204,244,139,143, 31, 17,200,209,197,213,116, 25,209, 36,248, 42, 89, 90,181,171, -166,109,150,205, 98,216, 27,222,221,187,117,116,126,153, 52,174, 86,171, 20,171,187,251,123,109,108,143,102,139,205,141,113, 23, -213, 48,133, 48,242, 85, 13,154,144, 67, 4,168,122,155,205,106, 49, 95,173,146, 65,175,223,127,237,141,183,222,250,210, 23, 71, -219,219, 85, 93,167,102,113,117,117,121,121,118,118,118, 57,121,241,234,224,224,236,252,228,226, 10, 76,222,189,255,224,173,123, - 15, 36,117,108,242,131,223,250,214,195, 55, 94,139,203,217,197,201,243, 15,127,245, 33,143, 70, 85, 21, 22,203,197, 47,126,126, -170,177,219, 25, 15,250,245, 0, 16,217,149,234, 32,133, 0, 0,142, 17,152, 98, 18, 3,200, 1,212,148,149,152, 98,205, 54, 34, -114,142, 37, 9, 88,134, 97,229, 86,103, 68, 70, 77, 42, 6,204, 46,105,100, 98, 48, 52,208,212,166,188,216,149, 36, 4,185,132, - 11,213, 12,208,188,243,106,224,152, 50, 78, 82,196, 0,137,125,190,251,103,176, 23,198, 46, 1,162,168,121, 70, 17, 3, 54, 95, -170,239,204,123,135,153, 52,204, 25, 84,198,236,208,136,216, 44,198,232,125, 8,117, 37,162, 73, 51, 6, 7, 29,251,242,158, 54, - 35,176,220, 74, 6, 6, 64,230, 12, 98, 30,106,136, 75, 91,131, 42, 66,118,223, 3,146,115, 62,115,187,141,137, 9,173, 43,130, -170, 97,217,220, 50, 25, 42, 18, 48, 34, 1,118,154, 37,226,114,217, 35, 87, 89,188, 53, 24, 17,242,213,244, 26, 1,246,247,182, - 87,177, 75, 41,129,105,211,196,182,237,136, 56,171, 2,139,229,106,181,106, 1, 44, 56, 78,104,143,238,220,173, 6,253,143, 63, -254,244,219,111,190, 54, 26,141,162, 49, 59, 0,233, 20,146,168, 5, 87, 27, 4, 5, 19, 81,246, 76, 68,102, 16,147,229,150,104, - 83, 49, 37,233,186,173,209,176,204,150,204,132,138, 68, 92,215,150, 36,182, 77, 76, 45, 3, 24,174, 17,229, 8,170,146,245,218, -220,127, 10, 6,228,125,183, 90, 49, 3,147, 15,228,146,197, 14, 0, 12,170,224, 82,210,130, 56, 70, 11, 33, 36, 81, 4,171,124, -136,109, 68,208,188,244, 82, 49,239,193, 33, 17,123,254,179, 31,253, 17,174,239,253, 89, 7,229,245,159, 36, 11,137,246, 57,153, -232,166,196, 47,239,206,214,177,126, 88,247,129,174, 21, 90, 43,204,195,236,135, 33,102, 66,179,108,236, 45,224, 73, 51, 85, 14, -124, 53,185, 30,141,134,156, 93,182, 25, 18, 95, 60,131,121,239,128,165, 58, 96, 61,201,100, 47,124,190, 53,100, 73, 10,144,114, -207, 97,105,175, 6,202,137, 80, 88, 67,139,242, 8,204,232,179, 93, 60,159,250, 89,184,227, 18, 94,203,181,117,153, 64,147, 1, -188,186, 86, 97,105,221, 52,136, 88,214,141,185, 51, 47,255,124, 42,127, 88,239,114,204, 96, 52,168,159,191,120,165, 70,195,209, -136,209, 85,161, 2,144,103,175, 78,182, 42,247,181,247,191,222, 44,151,239,124,249,107,121,219,228, 10,127,137, 85, 20,188,195, -242,238, 85, 83, 41, 43,254,155, 79, 23,214, 54, 32, 40, 19, 90,142,170,174, 97,157,108, 57,207, 76,152, 84,199,219,251,228, 28, - 17,107,106,193, 72, 21,128,208, 87,158,156,183, 24, 77,204, 5,111, 41, 97,229, 46, 78, 46,175, 38, 23, 0,114,239,193,195,179, -231,159,156,156,157,187,225,134,181,141,117,201,168,234,143, 70,182, 60,107, 22, 87, 33,176,169, 46,151,171,179,203,203,147,171, -137,153,125,239,123,191,191,156,207,187,213, 89, 24,236, 1, 86, 91,251,247,247,238,220,157, 78,206, 63,250,201, 95,110,223,127, -123,235,214,163,174, 91, 57,215, 71,163,225,230,118,175,238,169,152,196,102, 48,218,188, 60,125, 90, 85,195,203,147,231,179,229, -114,176,177, 3, 68,159, 60,123,218,175, 7, 77,215,181,146,184,200,115,132,255, 0, 33, 84, 5, 47,162, 41, 38, 66, 2, 2, 83, -136, 42,227,186,247,181,183, 30, 45,151,205,193,249, 52, 38,225,155, 98,118, 64, 5, 19,176, 36,105,217,180, 73,100, 60, 28, 44, -155,166,141,157, 99,106,186,118,119, 99,227,114,182, 76, 41,237,110,110, 24, 64,191, 10, 76, 84,213,181,180,171, 80,245, 76, 90, - 67, 68,246,161,238,255,250,183,190,245,218, 59, 95, 24,141, 54,152, 93,183, 90, 29, 29, 30, 76,206,206, 95, 29,157,124,252,228, -233,179,227,227,139,201,164,118,244,149,219,187,119,119,119, 0, 97, 99,107,248,253,239,126,123,111,127,111,114,252,234,224,249, -211,165,234,249,244,106,107,115,243,167, 63,254,249,106,209,236, 14,123,227,222, 0,114,234,192, 50,199, 57, 75,100,234,157, 55, -192, 36,169, 10,181, 67,143,136,201, 4,115,199,178, 99, 0, 11,158, 85,243, 76,134,236, 3,227,250, 43,167,229,102, 67,136, 10, -249, 16, 68, 48,107,150,109,168,188,222, 36,179, 77, 29,114, 22, 51, 29, 81, 62,197,152,193,178, 9, 26, 9, 12, 68, 77, 82, 36, -210,174,233, 98,140,162,198, 55,122, 47, 80, 93, 87,109,148,224, 24, 50,177, 5, 81,132,206,123, 0, 0, 32, 0, 73, 68, 65, 84, - 89, 36, 47,237,153,216,221, 20, 79, 34,145, 1, 72,206,221, 19,122,199,107, 11, 47, 25, 18,136,114,112,192, 57, 33,143, 96,104, -162, 8,148, 63, 4, 4, 98,159,155, 66, 44,137, 58,231,138, 4, 5,192,128,158, 89, 1,201,113,102,183, 50, 51, 82, 89,231, 50, -231,238, 76,208,148,152,184,147,104,136, 46, 31, 19,204,129,160, 38,215,247, 78, 64, 79,175,166,219,155, 27,247,111,221,190,158, -205,213,196,212,218, 46,166,148,222,123,231,157,208,239, 29, 28, 30,167,204, 47, 81, 24,244,235,179,201,244,205,205,225, 27,247, -111,147,171, 12,133,152, 68, 84, 13, 42, 87,231,143, 52, 71,141, 56,120, 80, 52, 77,204, 62, 95,163,153,248,114, 54, 35,208,241, -104,131,170, 80,140, 64, 49, 58, 79, 38,218,197,174,107, 59,239, 93,211,118,106,169, 10, 46,199, 24, 85,210, 77,229, 6,123,111, - 96,146, 18,152, 57, 23,192, 49,168,169,169, 3, 0,162,166, 77,160,185,248, 1, 0,192,121, 44, 27, 99,211, 46,117,154, 79, 85, -179,186,118, 0,108, 40,162,202,127,254,199,127,160,240,249,190,165,220,249, 57, 51, 22,214,241, 85,179,172, 7,174, 95, 2,152, -223, 3,185,211, 99,125,137, 44,151,165,162,244,229,127,148,173,226,136,133,170,140,159,187,206,205,192,177, 91,204,231, 85,175, -239,185, 88,172, 16, 13, 52,111,246,114,105,158, 17,223, 24, 94, 74, 17, 32,226, 77, 51, 93, 70,226,100,188,251, 58,218,207,235, -188,233,250, 16,167,130,197,192, 27,133,216,138, 23, 94,172, 96, 85, 33,223,118,214, 50, 2, 23,199, 56, 56, 0,151,205,254,132, - 30,201,209,205, 70, 36,203,155, 57,151,148, 11,165, 16, 16, 48, 73, 28,109,222,246,245,248,131, 95,253,116,115,115,183,174, 66, -148,212,175,235,139,203,203,227,203,249, 55,127,227, 27,253,241,214,100,114,213, 46,151, 33, 84,206,249,242,145, 56, 42,204, 79, -205, 45,175, 14, 49,135,241,180,108,214, 51, 86, 19, 1,209,200,249,130, 91,115,174,128,131,214,111, 63, 83, 1,170, 70, 91, 91, -218,182,232, 56,159, 4,106,144, 73, 71,210,180,165, 59, 29,141, 66,109,109,119,240,244,233,124,222,244,250,189, 59, 91,131,131, -167, 79,206,167,139,204,209, 19,242,113, 53,185,117,255,241,236,250,210,108, 53,236,247,218,182,107,150,171,227,243,201,197,100, -210,171,195,155,247, 31,163,175,145, 56,137,178,227,205,141,225,120,123,235,244,248,132,123,163,237,157,123,205,234,106,181,152, -163,164,222,230,174,103,127,121,242, 34,174,230,211,217,180,109, 87, 0,140,152, 66, 53, 60,159,156,133,241,246,195,123,247, 47, - 47, 46, 63,126,246,164,242,222, 33, 50,145,128,229,165,110, 25, 81, 12, 84, 44, 56, 82,145, 70, 4, 0,234,224,239,223,218,121, -116,123,255,131,151, 7,159,188, 58,236,215,189, 42, 4,195, 28, 53,179, 27, 23,110,126,217, 70,233,186,182,243,204,171,174, 83, -180, 85,211,173, 86,203, 65,191,183,138,210, 52,205, 32,240,104, 48, 96,196, 16, 92,191,215,119,236, 98, 39,189, 65,253,224,254, -131,127,244,155,223,191,253,224, 97, 93,215,136,176,152, 93, 93,158,157, 30, 28, 31, 62,121,241,242,163,231,207, 95,157,158,199, -174,187, 61, 28,188,182, 53, 98,135,219, 91, 91,223,252,141,111,252,230,119,190, 67,100,151, 39,135,234,232,232,226, 92, 37,246, -122,189,167,207,158, 99,219, 61,216,219,206,198,176, 44,121, 22,252, 23,187, 42,244,188, 15,249,187,234,124, 64, 0, 5, 77, 18, - 1,128,128, 96,173,226,171,154,130,101,127,177,230, 66, 78, 34, 53, 17, 75,149,243,162,106,152,235,241,172, 75,106, 4, 85, 8, -102,249, 65,202,144, 55,202, 59, 22, 38, 66,178,252,252,198, 4,104,196, 62,111, 71, 8, 76, 85,187,197,178,137, 34,222, 59,230, -108, 70,177,236,152, 19, 53, 79,148, 85, 47, 19,209,164,196,121, 19,205, 64,168, 38,128,134,142,242, 46, 37,251,184,156,203,128, -132,156,124, 4, 34,204, 4,221,124,145,206, 61,186,136,232,153,162,154,119,236, 40,168,106,236, 50,180, 43, 0,162,105,121,117, - 1, 32, 58, 42,126, 13, 4,199,156, 93, 24,148, 53, 54, 2,231,179,120,139,235, 46,161,252, 21,206, 57, 45,116, 76,149, 11,163, -224,170,224,231,171, 38,106, 34,128,126,213, 91,181, 93, 8,110, 52, 28,189,241,248,209,238,173, 91, 32, 73, 13, 98,215,189,249, -218,195,227,139,235, 13,167,191,254,214, 99, 10, 61, 68, 74, 93, 4, 0, 31,152,128, 65,213, 12,136,152,157, 51, 68, 19,205,221, -155,121,177,236,217,181, 81,174, 38,215,187,155, 27,190,223,255, 60, 21,132, 16, 99,148, 78,178, 25, 64, 82, 98,151, 43, 6,139, - 22,201,204,153,114,136,196, 0, 20,187,142, 9,153,153,153, 52, 74,222,201, 73,134,223,230,106, 11,196, 98,160,146,252, 14, 7, -134,114,187, 65, 2,239, 60, 2,138, 41, 3, 68, 49, 87,130,146, 37,166,143,160,166, 0, 12,153, 65,145,111, 83, 10, 72,101,196, - 95,239, 64,193,200, 4,254,193, 18, 30, 0, 13, 5,115, 83,199, 77,205, 7,162,161, 67,144,172,117, 90, 81,192, 51, 38,201, 68, - 5,188,227,249,162,169, 93,223,146,130, 83, 52,128,164, 96, 0, 46,107,152,168, 55, 6,110, 2, 68,191, 46,227,206, 58,110, 2, - 91, 51, 80, 11, 99, 62, 15,238, 89,157, 84, 4, 82, 81,205,117,126, 6,196,133, 93,134, 55, 64,156, 53,196,191,224,149, 29,129, -228,179, 59,228, 75, 16,146,154,121, 66,188, 41,250, 40,174, 33, 3, 68,116,134,134,166,136,140,108, 38,169,235, 92, 53, 24,108, -222,126,255,254, 59,207,158,126,250,226,229,179,119,222,121,199,208, 66,221,123,251,141, 71,127,249,239,255,195,223,253,244,163, - 31,252,227,239,189,122,250, 23,183, 31, 62, 6, 77,109,183,236,245, 71, 10,198, 72,104, 42, 34,235,212, 1, 32,170, 33,152,154, -105,102,159, 74,206,155,169, 42,138,250, 16,138,125,126,253,247, 95,179,173, 41,248, 96,201,200,123, 0, 67, 70,235,196, 57,151, - 61,148,138,232, 42, 15, 8,150,242,208,199, 73, 49, 54,203,197,242, 44, 54,247, 19, 7, 32,239,136, 17, 24, 36,109,239,222, 21, - 85,114, 3,182, 5, 32,155,170,128, 78,231, 11, 81,189,179,115,119, 99,188, 53, 91, 92,139, 73,175, 55,168, 6,189,237,253, 59, -104,230,124, 24,111,223, 53,228, 80, 13, 17, 3, 72,215, 45,231,203,213, 84, 76, 12,171,205, 91,247,156,171,219,217,249,106, 57, -237,141,239,172,212,227,114,182, 92,204,239,223,189,253,252,213,203,195,139,139,173,241,120, 88, 85,216, 38,201,156, 82, 34, 21, - 51, 80, 38, 66,197,186, 10,169,105,239,223,218,221,218, 24,159, 92, 92,254,248,163, 79, 12,128,152, 46,167, 87,204,155, 85,168, -140, 45, 37, 51,176, 92, 70,155, 82,202, 93, 45,209, 18, 2,246,235,170, 21,241,140, 33,132,166,109, 30,220,190,243,234,244, 84, - 52,121,118,183,118,182,151,139,101,175,223, 55,149,189, 91, 59,239,189,255,205,123, 15, 95,175, 7, 61, 51,136,237,234,106,114, -121,125,117,241,252,197,193, 71, 79,159, 31, 95, 78,166,243, 89,223,225, 87, 30,220, 11, 68,203, 46,190,247,165, 47,126,251, 55, -191,211, 31, 14, 47, 78, 94, 94,156,157, 54,236,207, 79,143,175, 39, 87,243,101,179,156,205,119,250,189,189,205,205, 12,116, 35, - 51, 50, 48, 3, 38, 32,231,178,119,183, 75,202,235,185, 8,203,194,179, 24,182, 50,253,149,204,152, 80, 17,187, 38, 18,145,115, -206, 0, 50, 57, 0,201, 37,145,192,100, 6, 73, 68, 65,131,227, 60,203,231,163,217,146,174,115, 75, 12,140,142, 72,172,148,178, -250,192,196, 36,201,136, 17, 29, 37,233,242, 96,232,125,240,193, 33, 18,173,235,141,215,248, 40,200,186, 72,222,105,112, 33,116, - 16, 20,218,224,218,217, 12, 64,168,206, 7, 96, 36,181,104,154,215, 41, 42,186,166, 90,149, 53,102,197, 28,213, 20,160,246, 46, -138,136,118,128, 22,106, 7,138, 41, 37, 46,215,116, 64, 34, 16,141,173,248,224, 29,130, 8,100,203, 10,153,199, 76, 23, 65,202, -241,248,146,118,230,236,158, 52,114,214,243,204, 14, 82,212,164,214,135,234,158,115, 85,224, 23,103,151,227, 81,191,174, 7, 77, -108,119, 55, 55,238,220,190,235,156,251,244,227, 79,106,239, 94,127,120,111,212,175,187,164,221,114,246,222, 23,223, 8,189,126, - 66, 86, 21, 23,124,182,140,136,116,236, 93, 46,223,179, 66, 89, 54, 85,203, 86, 81, 21, 72, 34, 87,215, 83,239,160,234,215,101, -147, 68,136, 0,171,182, 69, 16, 71, 92,122,203,205,145,165, 46,111, 32,215,133, 76,184, 94,248,138, 36,102, 2, 36, 69,180, 84, - 44,112,200, 14, 0, 48, 69,206, 80, 19,200, 41, 51, 5,242, 8, 70,204, 77, 76,166,137,128, 8, 32,197, 84, 10,155,137, 1, 34, -255,233,143,126, 15, 20, 53, 87, 31,225, 90,182,187,241,128,131,130,102,215,140,102, 96,241,122, 23, 65,166,166,104,165,138,163, -132,102, 11, 26,184, 60, 20,121,179, 97,101,157, 3,184,102, 47, 32,168, 25, 35,129,153,164,110,214,116,219,195,129, 34,100, 74, - 39,130, 21, 21,116, 77,218,202,115,153,138, 33, 26,173, 27,166,178, 19,188, 8,148, 76,104, 25,226,142, 80, 66, 82,153, 94,157, -191, 53, 69, 36, 69,176,194,222,231, 98, 18, 42, 24, 59, 45,175,172, 2, 48,206,151,190, 50,249, 91,246, 78, 2, 80, 89,121,230, -235, 76,126,230,145,114,154,143, 9, 37,181, 92,111,236, 61,120,211,249, 10, 13,238,236,223,253,217,223,255,141,175,234, 81,191, -175,192, 85, 85,117,203,197, 71, 79, 95,126,225,241,235,231,103, 71,174,234,213,189,170,157,175,216,251, 44,250,131,152,169,101, - 72,228,141,229, 40,251,235,173,120, 37, 17, 84, 9, 29, 51,101,101, 41,235,186,153, 16,130,136,200, 4, 98, 68,174, 55, 28,151, -158, 15, 69, 75,137,168,112,182, 65,209, 85, 65,163, 2,152,198, 40, 93,119,248,226,229,197,241,179, 10,245,141,119,191,124,126, -181,154,175,146,165, 86,208, 13, 55,183, 6,155,219,147,147, 3,105,102,117,109,190,242,179,233,244,242,226,234,197,225,225,245, -116,242, 59,191,253,195,123,143,222,186,186, 60,100, 21, 52, 25,239,221,185,117,231,206,245,197,217,229,249,113,206, 63,155,193, -226,250,148,129, 86,177,139,106, 33, 12, 24, 52,181,141,175,122,243,197,213,173,253, 7,171,197,100,145,244,213,241,209,197,197, - 5,169,221,190,181,255,242,213,193,108,181, 68,196,162, 56, 33, 3,192,160,223,223,223,222,189,189,123,103,123,115,235,222,222, -254,155,247,111,205,218,246, 87, 79,159, 79,151, 43,206, 56, 83,196,100,210,181,113, 80,213, 12,200, 76,162, 89,158,135,130, 26, - 33, 96, 8,204, 8, 96,109,151, 6,189,122,127,123,247,106, 62,143, 41, 14,250,189, 89, 19,137,169, 95,247, 7,117,237,188,123, -243,237, 47,124,231,119,127,111,255,254,163, 80, 85,102,208,182,139,139,179,179,147,163,163,143, 62,123,250,139, 79, 63, 59,188, -184, 92, 53,139,253, 97,255, 11,251,183,201,204,147,253,254,239,253,238,183,190,251,253,249,244,242,229, 39, 31, 8,225,213,108, -118,113,126,118,120,112,220, 53,237, 70,229,247, 54, 55,123,253,192,142,196,114, 79, 16, 39, 21,239, 28, 51, 87,189,218, 84,141, -172,242,204,134,185, 65, 35,123,116,147, 8,179, 99,228,104, 49,231,206,197, 64, 85,153,200, 57, 78,162, 25,118,167,150, 55, 56, - 40,170, 98,185, 84, 47, 24, 1, 1,128, 90, 8, 1,212,186,216,121,231,138,167,146, 73,237,230, 69, 3,102, 70,236, 66,240,102, -166,162,142, 89,213, 68,165,246, 1,144, 28,241, 77,222, 28, 12,156,163, 28, 94, 34,114,206, 59,116,236, 28,151,168,170, 35,211, -148,186,200,128,196, 46, 11,253,249,219,106, 37,141,143,150, 84, 36,101, 11,140,153,101,163,181,152,185,224,188,207, 90,130, 6, -207,107,194, 45, 33, 97,210,242, 27, 52,131, 76, 76,203, 24,250,156,255,178, 44,101, 2,100, 8,176, 38, 41, 75,121, 3, 99,244, -236,216,115, 29,252,112,128,149, 19, 3, 0,204,107, 16,172,136,118, 55,250,211, 85,247,252,240,104,123, 99,227,141,215, 31,237, -221,189,189, 92, 46,159, 62,125, 62,185,154, 14, 7,253, 47,125,233,139,231,151, 23,253,186, 26,142, 55,217, 52, 16,113,168, 68, -149,188, 51, 1,231,189, 39, 76,166, 6, 80, 85, 85,166, 94,102,129, 76, 85, 65,117,217,164,249,124,186,183,185,225,235, 58,111, - 41, 36, 99,191,184,116,143,132, 80,153,154, 20,253,147,208, 32, 73,182,129,186, 60,134,122, 2,224, 92,186,157,231,104,134,130, -106, 81,203, 7,102,249,143,130, 72,206,135,252, 81,139, 8, 19, 6,114, 64, 28,147, 16, 90, 86, 55,137, 76, 12,249, 95,252,147, - 31,221, 48,186,114,108, 30,204,242, 17, 88,224,234,229,100, 46,139,153,245, 6, 39, 51,187,176,152, 17,139,240,153, 45,225,185, -119, 15, 16,208, 74,223,213,141,143,114,205, 17, 91, 63,109,196,120, 61,155,239,237,237, 88, 20,200,145, 75,164, 18,208,192, 82, -149,151,127, 48,229,166,214,178,251, 70,181,124,115, 5, 67, 68, 45,205,126,184, 94,196,148, 69, 13,150,134,244,178,195,200, 95, -164,146,191, 42,122,112,217, 5,216, 77,165,120,118,180, 56, 68,203,193,238,124,217, 55, 48, 98,198,108, 97, 44, 27, 80, 82, 75, -217,217, 32,210, 57, 55,220,125,248, 54, 35,105,106, 65,213, 48,253,245,191,255,127,212,116,184,177,225, 92, 80,176,126,229,159, - 61,125, 78, 68,239,191,255,181, 20,187,222, 96,180, 90, 78, 1, 92,240, 30, 76,129, 29,160, 49,115,214,174,215,229,176,229, 99, -203,151, 20,118, 1,153, 51,159,207,214,159, 99,158,247, 12, 12,129,204,160, 55,222,235,109,140, 76, 5,209,105,219,144,119,232, - 40, 83,130, 75, 88,192,140,208, 82, 23,197,240,201, 71,159, 76,206, 94,109,109,223,122,253, 75, 95,121,241,242,224,228,248, 8, -201,213,129,187,249, 5,170,196,110,201,222,215, 53,152, 89,187, 88, 30,157,159,191, 60, 57,107, 99,247, 91, 95,255, 13,244, 21, - 80, 29, 6, 91, 85,191, 87,245,250,227,205,205,233,213, 36,198,214, 98,219, 92,157,248,254,118, 85,241,106, 58,211,148,130,247, -109,187, 20,177,254,160, 47,178, 26,141,247,147,201,103,159,254,234,114,177,250,234,151,191,222, 31, 12, 8,181,223,171,151, 93, -115,122,113, 97,136,129,243, 70, 88,115,113,193,108,181, 92, 46, 23,155,227, 90,165,253,232,249,193,229,108,158, 36, 3,101,233, -230,138, 40, 34, 41,197, 80,213,185, 95,190,104, 63,249, 86,171,226, 61, 43,114,112, 60, 30, 15,251,117,189, 49, 28,137,196,235, -233,188,223,171, 31,222,190,125,116,121,217,182,205,189,253, 91,223,249,222,119,191,250,205,223,234,143,199,192, 36, 93, 92, 92, - 95, 92,156, 30, 31, 28, 29,253,234,227, 79, 62,124,242,252,236,106,106,113,245,214,222,222, 27,123,183,146,200, 23,190,240,230, - 15,255,228,159,238,222,218, 57,124,246, 25,247,170,147,201,164,105, 87,189,141,209, 71,159, 61,117,141,222,218, 24, 85,149, 87, - 64, 4, 18, 67,199,172,102, 68,202,142,217,185,124,212, 2, 99,134,136,230,130,209,236,212, 2, 32,239,216, 74,160,130, 24, 81, - 77, 37, 37, 68, 82,179,182, 75, 55,115,189, 11, 14, 12, 36,138, 22,151, 0,170,165,252, 7, 51, 72, 41,154, 41, 59, 78,144,193, -147,152, 73, 71,217, 66,135,144, 31, 34,146, 46,102,183,177,130, 85, 85,189, 46,201, 10,236, 41, 15,194, 76,132,185, 64, 14,144, -156,175,170,128,136,196, 76, 88,252, 28, 0,156,213, 53,188,113, 4,168,154, 40,231,176,120,161,200, 2,123, 15,107, 39,111, 18, -113,149, 99, 36,208, 12,151, 2,199, 62,139,132,107,232, 2, 81, 70,238, 0,102, 30,132,137, 38, 85,186,169,111, 91,167,251,243, - 89, 73, 84, 98,152, 24,152,129,144,192,123,116, 30, 29, 53,204,154, 12,165, 83,116,222, 28,178,227, 10,177, 66,155,182, 29,162, -171, 43,239,157,235, 98, 92, 46, 27,231,120,103,111,107, 58, 91, 93,158,159,221,187,125,123,149,116,209, 53,163, 16, 92, 38,197, - 18,186,172,130,136, 57,207,140, 20, 69, 66, 8,154, 23,168, 10, 20,156,154, 93, 94, 94,247, 2,245,135, 67,100,151, 79,137,146, -250, 7,117, 76, 6,164, 73, 96,237, 58, 37,200,115, 41, 1, 90,148,164,106,206,177, 33,153,228,141,157,178, 15,185,186,199, 12, - 12,244,134,189,149,119, 40,204, 4,134, 73, 69, 77, 42, 31,114,175, 96, 30,219, 13, 32, 37, 97, 71,193,251, 46,138, 43,162, 79, -198, 32, 40, 32,170, 1,129, 74,126,241,139, 38, 64, 52, 19, 38,159, 67,244,249,204,213,108,156, 2, 44,165, 85, 57,182, 90,154, -158,208, 0, 52, 1,115,238,154, 65, 51, 43,117, 26, 5,217,152, 97, 55, 2,128,190,234,147,158, 45, 35, 5,135, 38, 37,163, 87, -102, 88, 69,163, 66,231, 45, 37,171,150,145,121,104,217, 72,161, 37, 13,149,225,106, 57, 44,244,249,221, 14,129, 24, 98,202, 33, -175, 2, 28, 37,128,148, 52,207,238,185, 35,204, 4,136, 28,129,101, 57,193, 76, 12, 0,185, 3, 3, 99, 71,166,107,112, 61, 65, - 41,241,138, 8,140,249,218, 12,140, 76,160,209, 87,227,237,187,111, 16, 65, 59,159, 57,246,203,118,254, 63,254,247,255,195,183, -126,251, 15, 63,250,229,223, 28,159, 28, 62,188,247,186,103, 30,110,108,189,245,214,227,127,251,215,127,251,205,247,127,109,114, -113,118,122,114,210, 52,203,221, 77, 8,193, 87, 85,207, 36,145, 15,152,109, 64,170, 55, 96, 28,145, 44,183, 18, 2,178,243,102, - 70, 76,196,168, 98,150,148, 42,135,136, 38, 9,179,133, 70,193,213, 85, 94, 85,170, 68,170,188,175,130, 36, 49, 81, 3, 50,139, -146,148, 60,202,170, 67,213,110,185, 92, 94, 29, 18, 18,135, 10,136,201,132, 92, 61,218,232, 49, 50,244,234,216,172, 92, 53,114, -212,144, 11,210,197,216,165,233, 98,217,180,237,176, 63, 28,247, 7, 64,182,115,107,239,250,244,116,122,113,112,247,193,107,177, -105, 1, 25,212, 37, 97, 85,110,151,179,171,147, 39,231,167,135,183,110,191,214, 45, 47,134, 27,251,206,135,213,252, 98, 53,187, -212,129,138,129,186, 65,183,188,250,201,207,255, 54, 4,119,112,112,184, 92,206,123, 92,189,245,240,209, 98,177,200,101,144,128, - 32, 42, 6,112,127,111,183,223,247,151,147,249,241,229, 68, 36,245,171,106, 80,133,139,233,180,211, 82,199,152,159,220,121,215, -202,213,100,119,123, 19, 17, 53,139,226,201, 12,161,174, 7,142,176, 75,169, 87, 85, 49, 37,231, 61,160, 13,251,195,126,221, 63, -191,190,138,233,120,123, 99,235,119,190,251,157, 31,254,254, 31,246,134, 67, 81, 1,208,213,244,122,122,117, 62,185,184,122,121, -112,240,233,179,103, 7,167,231, 87,211,249,237, 81,255,254,214, 46,139,214,189,250,143,126,244, 7,111,188,249,230,229,241,225, -139, 87, 7,110,107,227,232,228,232,240,240,104,181,138,139,217, 98, 84,247,182,247,198,204,148, 84, 52,165, 80, 85, 73, 58, 43, -231,100, 6,170,172, 3,122, 8, 41,137, 18,105, 82,116,152, 33, 76,154, 47, 31, 0,136, 20, 37,113,169, 52,241,201, 18,130,229, - 6,100, 85, 12,193, 73,210,152,132, 88, 61, 57, 84,136,102,142, 29, 25,164,168, 49, 69,246, 44,162, 46,167, 33,203, 85, 29,137, -157,153,130, 26, 7,111, 81,164,139, 84, 48,115,232,200,153, 73,191,223,235,186, 78, 76, 8, 60,168, 49,161,152, 24,144, 67,207, -206,161, 65,210,228,156, 71, 70, 84, 51,129, 36, 74,222,192,128,137, 85, 81, 44, 91,182, 45, 91, 78, 85, 18, 18, 59,207,146, 80, -215,252, 44, 32,242, 76, 32,160,166, 34,210,171,107,201, 14,123, 3, 34,210,117,172, 50,247,197, 58, 31, 76, 33,197, 14, 0, 50, -114,129,152,129, 12,196, 24, 44,198, 84,240,184, 25, 92,152, 49,226,142,209,186, 64,209, 59,232,162, 52, 77, 52,243, 0,129,200, - 48, 25, 33, 38, 67,100,255,218,107,143, 38,147,233,249,229, 21,145, 27,142,122,111,189,249,134, 72, 34,199, 63,249,201,207,150, -171, 85, 29,194,178,237,234, 80, 53,241,242,245,157,237,126,168, 82, 50, 37,201,102, 21,149, 14,209, 85,222,199, 24,115,190,132, - 3, 74,146,182, 73,166,105, 60,218, 6,192,148, 26, 34,118,174, 82, 5, 34, 37,116, 41,117,206,177, 82,134,185, 27, 57, 70, 81, -199,104,106,121,132, 71, 87,224, 94,121,131,103, 70, 41, 38,135, 64,204, 32,178, 74, 17, 68,123, 85, 63,111,134, 29, 81, 82, 81, -211,186, 10,146,160,137,157,169,120,231, 16, 33,154, 18, 66, 29,156, 0,116, 81, 84,147,195,155,105, 49,247,106,100,211,119, 54, -156,103, 99, 36, 0, 81,126, 3, 75, 54,164,128, 89,169,146,128, 12,155, 65, 48, 33, 38,149, 28, 57, 53, 84, 99, 15,153,167,187, -238,218,131,178,204, 95,183, 89, 32,187, 60,252, 14,106,119,122, 53,127,109,175, 78,154, 76, 81, 83, 71,174,206, 26, 59, 25, 16, - 26, 96, 6, 54, 2,230,179,111,141, 30, 54,211,114, 69, 64, 99,204,216, 72, 66,206, 14, 91, 3, 53, 49, 64, 69,164,226, 27, 42, -228,132, 82, 32, 96,172,104, 8,196,229, 70,137,165, 95,132, 0, 1, 36, 33, 25,104,126, 15,100, 14, 67,105, 74, 42,252,100, 53, - 3,197, 92,112,233,135,155,183,223, 32,164,184,156,131,129, 72,250, 95,254,167,255,249, 75, 95,251,205,111,255,167,191,187,152, -158,125,252,225,207,199,131,173,205,237,109, 31,252,195,135, 15, 62,123,246,226,127,255,191,254,239, 63,254,131,223, 62, 58,124, -177,104,250,183,239,221, 61, 63, 63, 53, 52, 71,156,137, 19,107,255,169,113,240, 41, 9,128,229, 88, 4, 34,169, 8, 59,199,236, - 0, 12,201,188,167,194,248,225, 96,160, 6, 74,236, 66, 8,228,189,153,211,182, 69,246,177,109, 16, 29, 18,128, 36,141, 29, 57, - 75, 81, 76, 20, 68,150,167,199,169,107,155,118, 73,161,135, 76, 70, 21, 0,196, 78, 18, 64,111, 56,108,103, 83,212,206,247, 34, - 65, 47,106, 90,181,205,245,124, 17, 83,220,191,117,123, 25, 19,205,231,179,233,108,113,121,184,185,255, 58,251,222,201,241,209, -233,233, 17,167,213,114, 58,217,186,253,184,153,207,183,239,188,189,177,251,168,139,173,165, 97,108,174, 16,250,237,226,170,234, -141,201,249,197,108,122, 57,159, 29,157,158, 84,190, 82,137,163,209,198, 98,181,218,217, 30,134, 58, 60, 95, 45,147, 73, 82, 85, -209,141,209,240,222,222,222,178,107, 63,124,126,232, 0, 8, 77, 16,187,212,121,230,241,112, 56,153,206,242,149, 43, 63, 95, 8, -184,138,237,116, 62,223, 30,143,172, 45,170,180,129, 73,138,139,174, 13,193, 15,251,155, 87,211,121,211, 52, 75,102, 1,168, 42, -119,103,119,119,111,111,231,191,251,111,254,219,119,223,253,210,233,100, 18,219, 85, 74,113, 62,185,188,154,156, 93, 93, 93, 63, -121,241,226,227,231, 47,207, 46,174, 84,226,227,221,141,135, 59,219,201,224,225,131,187,191,255,195, 31,122, 71, 79,126,245,211, - 38,197,179,139,179,233,179,167, 81,116,190,106,108,214, 60,218,221,206,166,149, 36,102, 8,222,135,148,132,145,213,140,217, 49, -113, 82, 81,128,202,251, 85,215, 48,112,118, 19, 43, 9,129, 47,161,105, 83, 64, 8, 62, 52,171,150, 24, 21, 57, 73,155,119,146, -132, 4,144,178,111, 98,213,116,206,177,247,142, 1,197, 84,192,152, 80, 37, 9, 0, 33, 85,149, 23,177,218,185,108,126, 43,212, -116, 36, 85,113, 33, 88,138, 42,209,202,127, 99,236, 8,173, 88,144, 99,234,156,119,165,233, 23, 73,147, 1, 97, 8,193, 59,238, -146,186, 92,150,160, 10,134,228, 72,146,178, 35, 80, 96,246, 98,130, 88, 44, 2,228,243,166, 94, 28,115,206,166, 18, 49,130,137, - 42,121, 66, 64, 17, 53, 80,231,208,161,139, 93, 66,196, 4,234,202, 62,129, 68, 75,169, 5, 38,212, 46,229, 27, 52, 50,229, 6, -100, 64, 32,114,169,107,147, 73,134, 52,176,247,197,251,231,156, 74, 2, 75,192,232, 67,165,113, 41, 17,155,200,189, 94, 8,190, -110,218, 68, 72, 34,178, 84, 9,183,246, 23, 71,167, 79, 95, 29,136,200,201,217,121,175,170,222,251,226, 23,134,155,227,167,159, - 61, 91,204, 23,201,244,233,203,163,126,191,218,123,109,251,244, 98, 18,245,242,222,214,214, 70,237, 29,113,211,117,193, 59, 71, - 85, 39,218,172, 26, 98, 46,175, 61, 49, 77,178, 92, 45,234,202,187,186, 86, 77, 72, 30,129,146, 36,199, 94, 84,146,180,236,156, - 65, 41,164, 3, 64,206, 99, 57, 64,178,232,216,105,174, 3, 71, 0,209,224,170,100,162, 41, 17,160, 33,161, 42,152, 57, 37,116, -156, 36,101, 68,101,215, 53, 36,234,152, 82,236, 16, 40, 56,175,192,170, 6,146,152, 28,104, 82, 64, 73,209, 33,154,170,203,114, -142,153,228,159,173,182,166, 44, 20,249,145,214,149, 46,101, 35,175, 80, 62,112, 0, 53, 40,247, 52,195,108,176, 45, 74,167, 21, - 95,100,201,193, 18,165,181, 57,102,109,219,194,117,103,148,234,246,206,238, 39, 47, 14,117,255,109,131, 14, 9,141,216,202,168, - 93,188,178,144, 41, 8,154,255, 93, 93, 47,170, 63, 79, 58,149,158,115, 43, 55,136,172, 44,107, 17, 39, 11,238, 88,138, 38, 2, - 37,222,151,143,135,108,176, 65,180, 92,197,183,182,118,194, 58,150, 10,107, 36, 66,126,150, 81, 13,145, 13, 20,114, 16, 66, 13, -125, 53,222,189, 71,177,105,151,173,137, 86,131,141,191,252, 63,254,215,189,253,123,223,253,193,183,210,197,217,251,191,254,237, -103, 79, 62, 57, 63, 59, 25, 12,122,193,247,234,190,188,247,238, 59,255,238, 63,252,245, 55,190,246,149,199,111,190,243,225, 47, -127,118,120,248, 28, 68,125, 21, 48, 12,146, 68, 2,133,146,108,178,216,197,188,150, 50,203, 4, 52,135,148, 93,112,100,166,142, -110,100, 57, 48,135, 40, 12,160, 92, 85,206, 59,137,157, 22,215,148,100, 74,120,198,138, 17, 15,173, 93,105,155,208,179,166,164, - 6,198, 1,184, 71,161, 39, 73,144, 16, 45,197,136,131, 81,189,184, 60, 73,171, 69,127,188,133,148, 12, 48,117,113,177,106,154, - 54,154,217,195,187, 15,183,111, 61, 60, 63, 63,233, 22, 87, 91,251, 15,170,186,106,150,203,197,116, 1,203,217,244,250,120,116, -235,141,110,213, 88, 90,213,117,117,126,122,192,213,192,135,186,107,168,105, 91, 36,116,161,234,247,251,199,167, 71, 81,245,241, -107,143,145,236,229,203, 87, 42,178, 61,222, 90, 54,139,174,107, 66, 85,205,175,174,198,195,254,131,237, 77,101, 58,189,184,188, - 88,204, 29, 56,231,168, 19, 69,100,207, 8, 8,158, 97, 99,208,187, 94, 44,213,214,144,103, 3, 36,152, 46, 22,128, 48,170,250, -217,207,100, 10, 28, 56,120,223,118,105, 50,189, 10,190, 74, 98,139,182, 37,128,157,173,205,127,246,163, 31,125,255,123, 63,216, -222,221,155, 47, 86,150, 98,187,152, 95, 79, 46, 38,147,139,211,179,179, 39, 47, 94, 62,125,117, 52,157, 47, 6,193, 61,216,189, -213,167, 56, 30, 13,190,247, 59,191,243,240,225,131,229,114,222, 54,221,193,233, 9, 59, 26,236,108, 30,158, 79, 46,142,206,118, - 55, 55,246,239,237,139,152, 90,142, 31,194, 13,225, 54, 3,193,179, 77, 46, 83, 92, 10,195, 22,128, 40,219,190,185,140, 62,106, - 46,176,154,182,177, 67, 7,132, 24, 37, 17,162, 15, 46,198,232,136,131,239,181,169,139, 34, 33, 91,105,205, 4, 12, 12,130,247, - 49,198,130,255, 50, 19, 69, 48,136,146,214,248,170,210,196,228,152, 32,165, 82,152,144,157,111,197,230, 6, 42, 34,152,152, 92, - 6,117,136, 25, 0,177, 39,135, 0, 4,146,249,163, 14, 77, 37,169, 17, 2, 36, 95,102, 66,204,142,142,252,157,163,117,151, 52, -249, 92,184,157,143,108,179,114,207,117,168, 73,192, 52,248, 74, 64,116, 93,129,237,184,216,139,205,140,153,137, 81,146,230, 81, - 14,205,229, 90, 80, 66, 4, 7,150, 52,197, 8, 32,158, 89, 76,193,204,196, 50,123, 54,198,232, 16,156, 35,199,144, 36,138,176, -168,177,115, 49, 17,162, 16,162,153, 46,187,206,111,110,137,243,139,233, 76, 85,163, 74, 59, 91, 50,211,213,116,250,225, 39,159, - 57,231,216,249,118,185, 48,132,249, 98,245,233,147,231,195, 94,223,143,194,243,243,243,253,241,120,191,223,243,181, 71,128,164, -134,107, 21, 1,212,128,144, 1,163,225,170, 89,237,110,142, 17,149,156, 83, 17, 5, 33,100, 81,129,114, 78, 24,153,228,197,122, -222, 74,229, 70,188, 16,156,198,148, 9, 91,249,168, 81, 19, 34, 2,231, 77,180, 19,241, 68, 62,120, 4, 18, 75,165,252,195,180, -246, 33, 65,178,210, 90, 65, 6, 16, 37, 58,224,117, 53, 42,196,212,145, 90, 50,139,109,231, 32,111, 79, 0, 32,195,173,242,250, -165, 24,192,243, 65,206, 8,150,169,211,156,249,184, 98,235, 68,106,238,228, 54, 80, 4,250, 60,113,153,203,230,208, 48,207,149, - 88,214,223,248,121, 35,133,166,178,168, 87, 13,131, 81,144,231, 49,162,247, 65, 98,100,230,108,182, 89,159,222,154, 51,114, 55, -164,119, 90,215,209,101,118, 11,103,172,174, 17,162,154,161,169, 41, 73,238, 19, 55, 21,203, 45, 45,165,126,210, 12,201, 50,254, - 32, 99,118, 0,200,145,129, 17,128,150,247, 85,161,174,175,107, 87, 11,111,216, 0,243,164, 0, 4, 68,190,164,106, 57, 12,199, -251,218, 53,203,197,220, 15,199,163,209,230,191,251,171,191,188,184,156,254,147,255,252, 15,218,174, 73, 77,220,216,217,249,193, -239,253,254,255,246,111,254,205,230,246,245,214,150,235,247, 6,119,239,221,125,237,222,157,191,248,171,191,122,227,241,127,177, -179,187,119,244,226,197,157, 7,247,167,215, 87,117, 61, 80, 85, 3,112,206,229, 16, 47,172, 59,230, 51,158, 41,151,100,153, 26, -176,230, 88, 72, 33, 56, 32,162, 50, 0, 8,168, 67,100,132, 36, 9,185, 50, 19, 75,121, 41,134,154, 26, 14, 61, 0,177,152,144, -193, 98, 34,102, 64,139,205,170, 10,190,223,171, 13,161,109, 22,236,168,215,239,199,216,116, 49, 58, 95,161,115,249,235,159, 98, -154, 47, 87,162, 9, 8,135,195,209,124, 62, 79,177,233,245,123,104,104,106,221,114, 46,105,213,219,216, 80,109,110,221,189,127, -121,116,188, 92,206, 42,231,130,235,117,205,140,137,171,193, 86,211, 44,118,246, 31,199, 24,153,194,209,229,213,197,100, 18,188, -155,205,103,215,211,235, 46, 73, 29,194,106,181, 88, 54,171,219, 59,187,111,220,185,181,106, 87,103,147,235,235,197, 34, 37, 35, -180,136, 38, 89,169,161,242, 92,169, 98, 21,220, 14,141,207,103, 51,209, 92,194, 11, 38, 8, 96,215,179,185,137, 13,122,125, 5, - 37,196,174,139,109,106, 7,189, 30, 34, 3,194,173,221,189,147,179,211,247,223,123,239, 95,255,171,127,253,250,155,111,130,217, -116, 54,107,154,213,245,249,201,249,197,217,244,106,242,226,240,213,199, 79, 94, 94, 92,207,230,203,213,237, 81,127,183,231,201, -210,111,253,230,119,191,250,205,223, 72,109,119,240,236,227,176,181,241,234,197,171,131,163, 99, 95,251,203,143,102,155, 85,239, -173,251,247,152, 89, 21, 68, 53,195,249,147, 40,103,252, 28,179, 99,140, 73, 1, 64,146,249,158, 79, 49,197, 36,158, 60, 33, 68, -137, 72,140,197, 64, 12, 64,216, 69, 49,211,138,157,130,117, 34,158, 56,130,137, 2, 19, 39, 83,235, 58, 1,237,133, 10, 84, 20, -243,105, 72,146, 84, 44,230, 47,128, 26, 4, 87, 42,203,186,152, 15, 92, 16,211,202,121, 32,180,220,111, 74,100, 6, 4,108,168, -196, 36, 49, 33, 3, 50, 57,240,206,177, 2, 38, 3,231,200, 85, 30, 20, 84, 13, 80, 77, 5, 57,215, 49,172, 17, 82, 4,166, 74, -182,214,165,160,180,167,154, 1,147, 7, 48, 0,201,237, 12, 41, 38, 23, 24, 12, 77,172,109,163, 35, 34,246,109, 23, 25,201, 7, -175, 32,146, 52, 64, 70,230,130,115,206, 68, 76, 0, 20,140,243,183, 15,114,231,160,154, 90, 42,189, 29,153,185, 68,200, 38,201, - 52, 37, 35, 2,172,189, 87, 77, 14, 99,229,114,127,189,151, 86, 75,213, 25, 34, 17,182,203,101, 12, 97,123,247,214,207,126,246, -139,151,135,135, 49, 37, 21, 65, 4,102,254,232,201,179,233,108,246,246,107, 15,171,224,192,250,157,180, 49, 73,219,182,170, 18, -106,159,146, 76,154,166,141,237,189,212, 15, 85, 48,246,128, 14, 8, 68, 5,193, 24,156,169, 94, 76,174,107,166, 94,175, 39, 98, -206, 33, 58,151,186,148, 39, 69, 98, 84, 37,102,140,106,185,209, 84, 84, 36,198, 16, 2, 51, 24, 58, 5, 69, 2,109,219, 8, 70, - 0,222,187, 76, 70, 69, 48, 66, 20, 19, 75,138,204, 38,108, 32, 4,192, 68,132,172,166,185,130, 77, 68, 1, 21,149, 12, 65, 85, - 29, 25, 48, 27, 96,219, 44,243,161,199,127,250, 39, 63,164,210, 97, 93,204, 78, 57, 48,157,221, 54,249,151,154,243, 11, 57,180, - 74, 72, 80,198, 98, 88,247, 73, 81,254,147,228,237, 48,220, 84,106,175, 43, 85, 97,125,192,150, 66, 84, 40, 29, 89, 8,204,232, -171,126,106, 22,147,166,219, 28,244,242,123, 5,168,116,159,174,169,145,101,183, 15, 5,181,179,254,161,107,209, 22,203,146, 95, - 76, 19, 2,231,102, 16,188,177,196,151,189, 83,185,103, 80, 38,209, 16,172,157,245,144,163,195, 0,104,106,170, 37,164,188,198, - 18,195, 77,106, 22,202,118, 92,242,164,164,200, 27,183, 30,121, 77,171,217, 53,249,170, 55,222,253,201,255,251,127,254,127,127, -251,203, 63,255,151,255,106,188,179, 25,187,148, 99,166,251,143, 31,159, 61,123, 62,185,186,232,247, 7,189,170,167,104,131, 94, -245,183, 63,249,197,206,198,104, 56,168, 94, 29, 28,236,221,187,191,152, 78,217, 57,239, 3, 59,159, 49,127,228,124,126,163, 18, -175,139,210,161, 20,129,100, 3, 46,220, 20, 40, 18,103, 66, 14, 2,114,168,123, 91,187,214, 70,118, 46,251,152,192,121, 48, 65, -118, 96, 96, 77, 75, 76,169,107, 32,138,235,213, 23,231, 23,207, 63,251,164, 63, 28, 63,120,227,189,173, 17,191,120,246,172, 83, -114,140,237,170, 35, 95, 3,122, 38,117,218, 58,246,211,217,245,179,131,195,139,203, 43, 81,248,238,183,190, 95,123,143,132, 41, -105,215,197, 59,247,223,188, 60,126, 10, 85,125,242,233,207,118,239,188,102,139,163,147,163,151,224, 42, 80, 81, 75,131,205,253, -166, 89, 17,121,102,215, 53,243,213,244,188,137,241,248,242, 98,185, 90, 94, 76,206,174,174,175, 13,144, 17, 23,171, 37,162,219, - 28,140,238,239,110,158, 76,174, 62,120,250, 98,217,118,193, 85,227,225, 40,132,138, 8, 85, 12, 10,150, 35, 99, 47, 80, 13,123, -253,126,143,221,172, 89,150,141,253, 58, 90,209,106, 36, 68,231,188,169,130,105, 8, 97, 80,247,154, 20, 3, 57,145,248, 47,126, -244,195,255,250,191,252,175,118,239,221, 1,128,166,109,103, 87,215,179,139,179,179,243,227,131,131,131,143,158, 61,253,224,147, -103,151,243,165,117,221,163, 33,239,143,199,227,205,241, 63,255,103,255,244,203,223,248,250,241,243,207,140,186,167, 79, 95,254, -205,127,252,137,105, 90,182, 93,119,189,218, 29,141,182,199, 67, 98, 84,179,140,177, 69, 4, 53,169,216, 27, 64,237,157,168,117, - 73, 17,136,179,105, 93, 37,143,109, 73,147, 38,115, 57,203, 77, 64,132, 14, 72,146, 34, 50, 33,181,154, 16,160,242, 14,153, 60, - 58, 51, 97,230, 20, 35, 19, 57,162, 54, 70, 65, 97,100, 34,146,164,209, 20, 1, 99, 74,222,185, 64, 20, 85,193,160,252,101,136, - 42,239,188,247,146, 84, 5,144, 64, 82,110,228, 32,212, 12, 81,209,236, 82, 70, 2, 98, 6, 34,239,188,243,204,196,177, 19, 42, -109,204,202,159,127,188, 64,200,236, 8, 16, 25,185,208, 78,144, 76,164,116,153,113,105,236,203,171,234, 20,163, 39, 6, 68, 83, -141, 41,121,231,139,139,142,137,153,204, 18, 24, 50,162, 34, 56,239,192, 76, 98, 4, 66,199,108,152,255,158,142, 28, 49,179, 98, -126,121, 3, 0, 56,226,204,163, 66, 77, 64, 36, 41, 33, 17, 57,236, 82, 71,132,206, 99,221,247,206,145, 34,169, 16,115, 64,118, -160, 22,219,102, 42, 54,190,251,112, 54,155,191,122,246, 98,190, 88,154, 8, 34,238,239,237,142,135,163,243,211,179,199,219, 27, -177, 93,184, 80, 63,184,127,187, 93,197, 36, 34,102, 41,165,249,124, 57, 26,244,183,183,183,142, 47, 39, 11,145, 10,201,179,137, -161,169, 32, 24,168,154,232,178,137,179,249,116,107, 60, 10, 33,212,189, 30, 50,117,177, 69, 67, 67, 65,228,124, 6,170, 10,136, - 73, 23, 59,137,181,115, 64,212,197, 46, 38,113, 4,222, 85, 49,137,170, 5,207,156, 91,225, 0,200, 49, 32, 39,233, 24, 9,217, -139, 38, 66, 12,228, 82, 18, 53, 13, 62, 83, 55, 65, 74,230, 3,145, 80,162, 48, 81, 39, 98,217,139, 99, 70,200, 49, 41,255,243, - 63,249, 35, 6, 34, 96, 68, 99,162,155,162,189,140,172,203, 8, 2,184, 97,138, 1, 98,190,114, 26,222,164,159,214,227,110,158, -254, 13, 11, 21, 11, 50,115, 55,165,117,231,224,154,136,152,235, 8,214, 69, 26,132,168, 85, 8,103,103,151,155,227,177, 22, 45, -209, 16,145,179,155,135,110, 58,208,243,170,198,110,216,144,249, 2, 65, 89, 17,208, 53,142, 6,141, 74, 60,137,224,134, 76,133, - 64,144,177,120, 25, 73, 10,217, 6,105, 6, 38,249, 34, 64,165, 46, 1, 48,255, 15,145, 28, 97, 64,116, 68,133,117, 69,235, 66, -141, 28,162, 31,142,247, 29,232,252,226,216, 87,131,193,198,246,243,207, 62,250,139,127,251, 31,255,179, 63,255,151,119,239,239, -205, 98, 88,172, 0, 0, 32, 0, 73, 68, 65, 84, 47,230, 11, 68,116,193,115, 8,136,180,123,239,193, 7, 63,253,251, 94, 47,120, - 31,170,208,243,190,154, 78, 39, 31,124,246,244,215,190,244,238,253, 7, 15, 22,179,105,221,235,173,102,243,170,170,205, 4,200, - 57,174, 10, 79,223, 82,174, 33, 52,203, 25, 96, 46,182,184,117, 25,113,185,126,163, 67,100,181,212, 31,111,135,170, 87,118,106, - 76, 42,136,150, 10,241,205,121,149, 36, 93,219, 77, 39, 92,247, 8,233,252,240,240,240,232,229,230,237,135,123,183,118, 7, 27, -163,103,207, 94,173,150, 75, 75,105, 57,187,178,212, 50,249, 16,168,242,166,170,231, 23, 23,175,142, 78, 38,179,153,115,252,250, -237, 59,210, 44,218,102, 41, 18,119,246,110,135, 42,204, 23, 43,135, 54,222,217,111,163,168, 68, 35,214,118,217, 31,110,134,254, -168,157, 95,184,224,130, 15,210, 78, 23,243,107, 32,247,234,228,248,197,233,241,189,253, 59, 49, 37,252,255,169,122,179, 95,207, -178,235,190,111, 77,123,159,243, 27,238, 88, 99,207,221,236, 73,164, 72, 74,156, 36,146,226, 40,106, 36, 69, 81,164,133,200, 38, - 69, 89,177,173, 40, 72,140, 12, 22,242, 18, 36,128, 31,243, 15,228, 37, 47, 9, 2, 35,128, 96,196,116,100, 11,176,104, 72,130, -172, 64,150,100,155, 18, 7,145,236,169,170,250,214,173,186,117,231,225, 55,157,179,247, 94,107,229, 97,159, 95,181,242,208,232, -135,174,170,174,170,251,187,231,236,189,214,247,251,249, 0,143, 71, 13, 56,148,220,237,110,110, 4,225,215,246,238,159, 94,206, - 54, 70,147,174,239,163, 52, 34,204,204,141, 52,227, 81, 59,157, 76,198,237,120, 58, 30, 3, 98, 74,217,204, 74, 78, 44, 64,196, - 41,149,255, 95, 17,195, 33,229,220, 84,130, 21, 96,133,164, 92,204,230,239,126,249,165,127,252,247,127,243, 11, 95,252,146,140, -167,174,186, 90, 46,206, 79,142,142, 31,238, 61, 60,120,112,240,232,224,141,123,111,191,181,247,176,235,243, 98, 49,127, 98, 36, -207,220,190,249,147, 31,251,248, 23,127,249, 11,227,201,232,228,248,225,157, 59,111,244,185, 80, 32, 96, 60,222, 63, 26, 17,223, -220,221,158,140, 90, 4,119, 32, 29,148, 44, 64, 66, 8, 82, 69, 60,125, 42, 82,117, 63, 8, 6,104,232, 21, 87, 57,140,254,134, -173, 87,253,104, 97, 42, 86,155,164,110,186, 78, 57,122, 12,226,230,165,104, 54,103,150,170, 2,110,131, 48,114,229, 7,120, 21, - 3, 3, 54, 77,163, 69,135,254,202, 99,119,177,176,102,117,175,231,130,225,177, 42, 33, 34, 34, 48,168, 22, 48,171,225, 97,102, - 65, 36,105, 4, 17, 89, 2,173,239,224,248, 88,164, 12,107,126,149,112,197, 82, 58, 32, 19,186, 85,221,241,112,254, 42, 53,167, - 11,100,106, 44, 28, 99,163,102, 41,103, 38, 22,145, 74,243, 27, 34, 48,110,176,222,184, 14,171, 87, 0, 14,209, 7, 4, 12, 35, - 50, 5,102, 34, 85,211,148,134,166, 19, 81,177, 12,224, 76,236, 80, 17,151, 68,132,102, 0, 70, 44, 82, 77,112,195, 2,187,102, -139,205,201, 52,169,198,235, 79, 36, 45,255,254,207,254,242,236,226,162, 62,224, 70,109,123,109,123,123, 62,159,189,231,230,206, -171, 79,221,158,182,237,124, 49, 59,159, 47, 1,105,123,115,179, 79,217,172,184,251,162,235,175,174,102,219, 27, 83, 9,225, 42, - 39,206,214, 54,244,216,117,137,196,103, 87,151,145,112,107,103, 27, 99, 44,197, 76, 11,147, 32,227, 64,122, 33, 66, 66, 85,175, -110,206, 97,107,232, 64, 72,177,137,106,158, 74,207, 67, 75, 0,234,181, 76, 72,220,220, 77, 9,217,220,221, 52, 72, 0,162, 98, - 90,185,158, 53,222, 10, 6, 84, 57, 23,238,110, 32, 66, 85,100, 10,195, 78, 17, 9, 49,231, 36, 67, 78, 30, 29,153,193, 42,106, -172,106, 66,209,134,175,159,213, 77,123,125,208,195,112,182,246,129,213,230,235,217,188, 15, 3, 24,243,250, 40,174,118, 2,164, - 58,106,124, 39, 0,227, 44,193, 74, 81,115, 80, 67,128,146,250,208, 52, 12,185, 20,175, 44, 22, 31,104,148, 0, 72,192, 84, 65, -151,235,201,248, 26, 3, 90,231, 61, 53,232, 60,212,184,134,177,188,175, 27,182,245, 20, 95, 7,239,180,190,240, 13, 47, 6,119, - 43,149,200,235,158,213,164, 86, 6,201,135, 0, 88,189, 46,212,209, 24, 65,197, 92,160, 0,152, 91,113,167,209,100,139,205, 86, -231, 51, 77,101,250,212,238,219,111,124,255, 95,253,254, 31,124,238,167,127,238,153,167,174,207, 47,206,157,163, 27, 74,219,186, -154,165,124,253,137, 91,207,191,244,202,163,253,187,109,211, 86, 56,246,187,223,253,234, 31,255,233,191,255,225, 91,119, 62,246, -145, 15,222,125,227,135, 28, 37,247,169,109,218,102,186, 37,238,230, 5,134,251, 18,107,202,142, 72, 40,110,197,144,201,171,194, -144,220,134, 78,150,123,189, 82, 84,246, 95, 52, 51,102,242,146,205, 24,209, 93, 21, 20, 93,168, 20,115, 0,203,125,152,108,131, -132,146,186,110, 49,219,185,245,220,104,114, 77, 75,118, 20,203, 89, 23,103,189, 5, 8,109, 16, 22,194, 16,140,136,186,213,106, -181, 90,229,146,213,124, 50,106,167,227,201,120,251,250,226,236, 97,206,105, 60,153, 94,158, 60,236,150,243,102,247,214, 98,118, - 24,227,102,215, 41, 97,140,163,105,211,198,229, 98, 49, 26, 79,143,246, 95,227,184,105,230, 39, 7,247, 54,118,111, 95, 45,150, - 87, 23,151,151, 87,151,211,209,196, 76, 17,253,198,134,176,141, 15, 79,207,132, 67, 46,118, 49,159,223,222,221,109, 66, 72,150, -117,149, 28, 64, 43,249,121,173,254,237,251, 52, 20, 18, 0, 75,182,150,163,183,126,181, 90,112, 93, 5,173,211,145,179,213,106, -107, 83,162,200,213, 98, 65,147,209,127,245,245, 95,255,210, 47,126,254,230,237, 39, 65,184,228,126, 49,155, 29,236,221, 57,120, -248,240,244,242,252,209,233,233,209,209,233,217,229,172,235,186, 92,244,222,254,193, 7, 63,245,209, 95,251,234,215, 54,183, 55, - 46,143, 15,112, 28, 15, 78, 30, 29, 28,159,110,117,249,209,201, 89, 89,118,215,183, 54, 70, 33, 84,241, 69, 37,212, 19,177, 91, - 70,224,218, 50,175, 59,163, 48, 64,179,171, 32,200,235, 73, 22,107,199,199, 21, 17, 8, 67,241,108,238,232, 16, 68,212, 10, 2, -155, 58, 50,176, 48, 58,228,172, 69, 75, 51, 10,214, 91, 49, 3, 98, 34, 82,128,100, 26,232,113, 53,207, 9, 61,229, 84, 11,227, -238,238, 8, 66, 66, 12,230,181,111,239,194,164,102, 76, 12,232,174,170, 86,132,184,250,179,193,234,123, 9, 88, 56,198,152,251, - 92, 45,119,196,132,230,170,142,132,181,139,224,213,235,188,254,158,170, 22, 53,192, 10, 6,198,154, 95, 20, 98, 43,198, 49,178, -144,169,247, 57, 17, 64, 8,204, 72, 54, 80, 2,217,235,239,155,200,193, 57, 68,183,108, 14,174, 42, 33,212, 56,204, 0,254, 54, - 40, 41, 91,213,235,212,233, 36, 99, 46,134,136, 34, 81,179, 18, 98, 77, 14,214, 56, 95,140,193, 17,204, 33,231,202, 45, 64, 4, - 3,119,114,239, 83,214,201,180,235,251,189,189,183, 23,203,101, 37,238, 78,154,230,125,239,121,207,183,190,247,253,103,166,252, -236, 19,183, 28,121,131,195,139, 28, 30, 28, 29, 95,186, 74,144, 40, 2, 30, 83,201,110,154, 82,153,205,151, 44,125, 19,227, 57, - 98,187,234, 67,136, 33,142, 0,113,177,234,180,207, 55,111,239, 18,135,250,148,174, 71, 79, 38, 10, 44,166,102, 86,123,139, 0, - 68,224,142, 84, 25, 60,188,234,123, 93, 46, 41,196,128,100, 94,135, 97, 22,145, 20,170, 77,139,214,154,101, 30,128, 97, 3, 39, - 22, 74, 46, 18,197,181, 84,146,137,187, 19, 56, 19,230, 58, 64,119, 39, 68, 85,245, 98,192, 96,174,252,213, 47,255,242, 32,242, - 92, 87,129,134,150, 81,253,209,180, 86,122, 12, 13,248, 53,255, 7, 0, 8,137, 42, 31,134, 9,201, 6,147,198,186,183,191, 6, -101, 84, 92,212, 48, 37,169,184, 12, 53,211, 58, 94, 7,170,217, 38,128,146, 58, 67,153,140, 6,107, 73,101,243, 12, 72,151, 33, - 75,255,120,234,179, 6,231,226, 59, 36,246,199,167,238,122,156,175, 16,204,250,113,169,131, 30,170, 0,189,202,134, 52,127,135, -113,178,254,165, 7,233, 88,117, 57, 97, 28, 4,129, 48,148,102, 1,129, 80, 16,205, 20,166, 27, 55, 24, 40,245, 43, 68, 30,111, - 95,187, 60, 63,249,103,191,251,141,159,248,216, 39, 63,244, 19, 63, 89,208,205,137, 36, 80, 16, 68,164, 70,170,219,122,107,123, -247,123,127,253,173, 70, 68, 98,195, 44, 77, 24,161,235,183,190,243, 55, 47, 63,247,244, 51, 47,190,116,126,118,250,234,143,254, -216,229,249, 9,197,136, 21, 12, 28, 27, 83,173, 23, 29,175, 87, 12, 17,215, 60, 72, 73,253, 29,219, 8, 12, 99,172, 0,128,161, -153, 52,227, 22,153,205,192,213,136, 5,212,172,100,168,141, 67, 71,237, 59,108, 26,239, 22,230, 14,163, 29,195,176,152, 93,222, -126,250,153,241, 56,220,121,243,110,202,154,138,177,132,102,178,129, 96,163,198, 0, 32,245,253,241,241,241,195,147,147,249,188, -187,182,181,253,204,205,155,227,182,237, 23, 87, 40,194,100, 94,250, 2,152, 87, 23, 44, 35,102, 58,121,120,247,246,115,175,140, - 39, 91,147,233, 54, 34, 93, 94,157, 8,142,227,120,210,140,118,118,111, 60,131, 49,236, 29, 29,134, 24,172, 88, 82,189,185,189, -177,184,186,124,251,240,248, 98,213,165,156, 75,201,211,209,228,240,244,100,217,247,163,209,200,244, 49,218, 31,235, 5,189,118, -171,115, 46, 67,209, 98,232, 92,123,211, 4, 84,232, 74,166,199, 54, 71, 34,112,116,211, 85,223,125,236,253,239,251, 31,255,219, -127,252,243, 63,255,139,163,141,205,130,182,154, 47,102,231, 71,123,119, 94,191,115,231,206,131,195, 71,119,246,238,239, 31, 28, - 93,204,102,169,148,251, 15, 15,217,225,127,250,173,175,255,231,191,254,181,210, 47,115, 90,190,241,250,107,111,190,241,214,201, -233,249,124,177,186, 60,189,156,176, 92,223,220,104,130,212,130, 89,109,182,153, 1, 2, 4, 18, 36,124,220, 55,102,228,172,190, -214,207,160,130, 34, 16,177, 56, 12, 90, 95, 43,197,135, 0, 24, 3, 14, 50,221, 97,148, 72, 84,121,169,160, 30, 99,112, 32, 29, -146,109, 94,141,154, 33, 72, 53, 25, 33,129,173,105,163,132, 84,143, 61, 49, 48, 85,152,181,163, 13, 91, 92, 24,224, 7,165, 16, - 9, 49,162,224, 99,143, 37, 97, 61,249,130,106,133, 83, 57,135, 88, 89,102,245,142,136,196, 52, 64, 65,180,178, 6, 96,221,172, -103, 98, 83, 87, 45,109, 8,200, 4, 72,109, 59,114,117, 55, 75, 37,183,109, 91,211,114, 89, 51,178, 4,150, 58,175,117, 85, 67, - 12, 44,170, 69,205,153,128, 88,144, 4,153, 56,202,160,127, 94,247, 18,131, 80,101,115, 87,254,196, 32,152, 68,174,231, 61, 7, - 36,146, 32,193,215,104, 20, 22,113,135, 46,171,171, 19,113, 94,117, 11, 76,211, 91,207,189,254,218,157,187,247,246,114,201,128, - 64, 72,227,201,228,240,236,124,108,171, 15,189,252,162,180, 99,174,127,113,204, 27,177, 97,164,179,213,106, 52, 26, 95,219,222, - 90,172, 58,213, 34,194,171,156,186, 85,218,217,156,160, 68, 72,186,187,179, 89,204, 1,125,149, 74, 32,223,190,118,173,126, 53, -107,182, 67,130, 32, 81, 81,203,185,135,161, 3, 92, 25, 6, 40, 66, 78,172, 93, 7,174,132, 94, 31,146, 73, 53,178, 0,135,100, - 89, 0,161, 2,150,171,110, 69,173, 88,169, 84,126, 98,118,119,225, 10, 54,112,172, 27, 11,115,119,232,115, 65, 0, 18, 68,164, -156, 50, 11,163,160,155,119,171,196, 95,253,202, 47, 33, 16, 62,214,150, 14,159, 50, 24,198,187,184,182,246,213,235, 72, 45, 25, - 80, 61, 54,250,208,181, 92, 87, 93, 97,157, 94, 30,118,153,176,198,152,250, 80,232,175,105, 21,120, 28,107, 91,139, 89,153, 80, - 68,174,150,253,246,100,188,206,177,172,191, 81,135,152,200, 99, 3, 83,125,250, 15,163, 42, 7, 95, 19, 66,135,148,207, 80,248, - 4, 95, 19, 5,106, 54,127,160,128,213, 23, 24, 13,107, 84, 90, 59, 99,235, 11,133, 43,215, 9,152, 5,227,154,170, 94, 79,141, -132, 72,128,138, 72, 77,179,217,112,236,230,179, 82, 74, 59,158,164,126,249,255,252,222,191,126,247,143,126,240, 83,159,250,169, -226, 70, 18,173,100, 22,137,177, 1,114,116, 50, 51,205,186,177,115,109, 53,155,221,187,119,103, 60,106, 70,147, 41, 19, 78,219, -184,183,255,112,182, 88,125,248,195, 31,154, 93,156,157, 93,156,175,150, 51, 65,146, 16, 88, 26,176, 74, 61, 32,215, 82, 52,161, - 87, 93,189, 59, 2, 75, 24, 30,238,235,202,216,250,143,137,227,237,157, 16,163,229,226,169,175, 19,124, 64,228,208,212,191,106, - 96,212,148,220,212,145, 39,215,175,165, 98, 15,246,246, 23, 93,255,228,211, 79,141,167,237,254,189,189,213,114, 46,177,105, 68, -132, 72, 70, 45, 67,114,203,169,239,247,246, 31,158, 92, 92,206,151,221,173,157,173, 23,158,124,242,242,226, 76,198, 27, 55,159, -122,151,132,105,234,242,120,115,231,209,222,107, 72, 4, 86,220,140,161, 28,239,191,198, 44,139,171, 83, 4,230, 16,151,171, 21, -120, 22, 9, 7,143, 30,254,224,238,155,165, 20, 4, 13, 80,250,148,226,104,251, 98,190,188,127,240, 48,245, 73,130,148,146, 82, - 46,171,174,103, 97, 33, 30,148, 47,131,181,203,137,107, 62, 4,194, 90,168, 91,207,234,102, 94,137,181, 69,181,126,209, 25, 81, - 85,183, 54, 54,127,235,239,253,103,255,243,239,252,147,119,253,200,123, 81,130, 89, 89, 94, 93,157, 60,218,191,251,214,235,175, -189,245,230,254,193,225,157, 7, 7, 71,167,231,102,142,200,155,211,205,207,124,248, 3,191,243, 15,190,246,145, 15,127,224,244, -228,224,193,222,189,195,227,163, 56, 29, 49,241,157,215,223,222,110,155, 39,119,119, 55,198, 35, 66,174,221,162,162,102,197,144, -134, 34,210,227, 79,117,213,200, 20, 53,124,140,187, 28,216, 25, 96, 94, 28,192, 75,241,162, 54,124,251,184,185,149,172, 8, 80, -215,199, 67,191, 20, 77,205,218, 81,163, 10,128, 16, 2, 13,191,130, 57, 11,187, 13,159,109, 53,231,138,185, 70,116,116,102, 68, -166,146,213,220,107, 89,191,254,176, 24,197,205,189,216,122,141, 4,228,228,106, 72, 36, 81,234,208,211,208, 16, 73, 98, 36, 71, - 45,250,248,236, 84,231,229,176, 46,108, 51,139,185,173, 7,166, 53, 78,140, 77,219, 20, 53, 98,174, 92, 63, 55,119,130, 38,180, -166,131,150, 7,106, 50,193,193,235,157,134,165,109, 26, 53,171,158,102, 22, 1,170,106, 42,172, 66,205, 97,172, 1, 96,174,106, -234,104, 65,196,205,112, 64, 51,129, 91, 65,198, 16,132, 68, 28,173, 6,189, 99, 96, 65,236, 75,113, 43,224,228,142, 90, 52,121, -226, 27, 79,158,159,207,246,246,246, 86,203,101,165,196, 63,255,204,147, 27, 27, 91,151,103,199, 63,245,242, 11,211,205, 45, 14, -177,150, 30, 57,132, 81,219,140, 66, 12,102,171,126,217,153,183, 77, 59, 26, 79, 22,139,149,106, 61,233,226,241,249, 69, 35,176, - 61,110, 36,136,179, 92, 94,206, 54, 55,198, 18, 35, 20, 67,162, 16,155,166,109, 81, 66,125, 10,161, 1, 2, 26, 58, 86,175,156, -176,170,163, 91,125,220,155,131,169,214,244, 68, 5,196, 10,135, 84, 50, 85,189, 44,113,189, 42, 17,179,149,130,213,101,205, 53, -165, 90, 31, 89,200, 64,106, 90,187, 14, 34, 84,241,241,196,100,128,150,173,126,255, 8, 62, 70, 36,226,160,133,115,180, 53,148, -119,200, 64, 85,212, 21,241, 90,178,240, 56,220, 50, 60, 97,235,188, 75, 0,173,244,206,193,104,168,153,193,223, 66,156, 59, 16, - 16,227,128,109, 31,182,172,232,104, 4,104,234,200,220,247,157, 34, 1,168, 91, 53,144,185,187, 85, 72,239, 0,151,135, 1, 11, - 92,205, 30,104,238,110, 3, 29,119, 29, 99,127, 44, 6, 25,134,254,248, 14, 59,198, 31, 31,245,215,128,204,225,210, 83,215, 8, -132, 14,164,142,100,238,172,180,206, 27, 13,252, 30,116, 53,156, 76,174,177,150,249,217,177, 34,143,167,155,162,171,255,251, 95, -254,139,205,157,103, 63,241,241, 15, 25, 11,228,190, 44,230,212, 78, 89,154,202,170, 55, 83, 77, 6, 72,121, 57,127,255,143,125, -232,173, 31,252,205, 98, 57,107,154,182, 29,111,180,155, 91,239,127,239,123,190,243,189,239,190,241,250, 27,239,250,145,247,252, -197,159,252,209,139,175,188,251,226,244,176,235, 3,135, 72, 52,169,209, 33, 32, 18,137,136, 84, 67,238,232,224,165, 32,177,150, - 12, 81, 88,194, 99, 47, 57, 2, 74,140, 86,119,203, 33, 32, 1, 40, 89,238, 60, 0, 9,155,106, 73,102,170,200, 50,190,190, 35, -147, 54,221, 63, 76,125, 65, 83,235, 23,200,215, 44,245, 78, 77, 32,147, 32,161,153, 94, 93, 29,181, 91,193, 12, 82, 74, 93,206, -102,166, 94,158,126,226, 73,230, 24,219,166, 29, 77, 66,104, 0,209,209, 78, 31,188,182,185,117, 19,226,244,234,226,112, 50,106, - 75, 49,119, 89,245, 93, 28,109,104,233, 79,246,222, 28,221,124, 22, 11,228,146,175,186,126, 99, 50,106,144,150,253,226,232,172, - 75, 57,191,248,236,238,243, 79, 63,125,121,117,121,103,127,127,149,243,246,116,115,115, 50, 45,170, 53,237, 81, 87, 12,230, 54, -112, 14,141,221, 13, 12,140,214,103,137, 53, 63,147, 16,182,101,178, 96, 89,229,164,165, 0,208,103, 63,246, 19,191,253,245,175, -127,240,131, 31, 65, 9,203,212,151, 46, 93,158, 29, 61,216,187,123,231,238,221, 7,199,199, 7,199, 39, 23, 87,243,148, 82, 42, -170,186,250,145,231,158,253,233,159,252,240, 39, 63,250,161,110, 62,123,248,112,111,101,229,181,253,253,221,205,233,236,242,252, -248,237,195,167,110,236, 78,218,198,220,192, 0,153, 7, 35, 11, 14,201, 23, 90, 31,128,234,216, 23, 0,114, 54, 3, 21, 98, 36, - 54,247,154, 56, 84, 85, 87,205,154,187,190,147, 16, 4,153,153,193, 16,136, 66, 16,115,115,115, 66, 44,166,136, 20, 67, 83,114, - 41,197,137,145,131,228,156,235,156,180,226,198, 66, 45,175,154,173,219,206,192,224,107, 86,158,185,154, 3, 82, 32,115, 21,137, - 68,172,170,128, 64,129,144,168, 58,108,128,128,155, 48, 96, 59, 24,153,217,235, 59, 82,139, 57, 18,145,155, 59,168,132, 0,102, -102, 3,168,207, 29,173,162,216,221,161, 86, 66, 8,177,128,155,135, 16,192, 93,221, 28, 48,198,160,238,165,104,125,249,161, 3, - 26, 20,215, 97, 29, 34,108, 6,165,228,122,144, 34, 51, 47, 86,125,126,224,195,131,165, 90,103,145,169, 54, 3,204,114,201, 42, - 36,101, 16, 60,212, 11, 60, 19,137,153,170,106, 12,132, 28,138,218,154, 74,199,106, 30,152, 86,221, 10,119,110, 34,143,126,240, -253,191, 58, 62, 57, 3, 84,102,154, 78, 39,161,137,103, 23,151, 63,241,226,243,219,215,174, 23, 71, 84,139,177, 81,118, 45,125, -178,130, 66, 79,222,184, 54,105,227,193,229,153, 55, 45,182,227,146,138,154, 78, 71,205, 43,175,190,252,253, 31,188,126,125,186, - 65,196,224,124,117,185,100,128,102, 52,114,117,103, 20,145,216, 54, 44, 65,221, 66,108,220,113, 57,191, 42,171, 21, 19, 18, 83, - 81,173, 10,110, 95,195, 96, 25,221,133,170,246,150, 3,149,140,110, 26, 66,228,122,151,130, 66, 65, 92, 13, 28, 80, 4,220,145, - 9,128,153, 84,179, 57, 86, 18,135,187, 59, 11,187, 91,238, 13,184, 26,191, 17,193,155, 40,142,132,185, 72,229,237,255, 45,207, -167, 85,234,244, 0,227, 27,234,191,104,245,177,190,206,198,215,201,204,227, 12, 31, 85,170, 58,160, 16,224,176,114,169,167,120, - 48, 85, 34, 2, 38, 7,112, 37,112,165,186, 42,170, 18,141,138,166, 67,136, 65, 2,148,229,114, 53,109,216,215,209,220, 1,235, - 72,130,128,192, 6, 74,102, 90, 61,140,195, 75,162,128,105, 25, 14, 27, 53,148, 54, 12, 33,125, 96,220,212, 9, 34, 83,157, 59, - 13,181, 91,170,236,174, 53, 22,109, 80,247,209,154,100,128, 80, 91,172,195, 59,108,232,146, 54,113,131, 85, 75,214,229,242,106, -186,125,115, 58,150,111,252,139,127,121,213,243, 87,126,246,179, 24, 56,119, 29, 5, 78, 93,215, 54, 6,104, 3, 27, 36,247, 86, -136, 2, 47, 46, 23,132,242,234,203,175,124,247,245,239, 52, 77,219,142, 38, 65,154,103,159,123,246,225,195,131,255,248,173,191, -186,182,187,225, 8,142, 20,219, 81, 55, 95, 76,198, 91,104,102,132, 76,193,209, 6,210,252,112, 10,136,166, 5, 76, 73, 2, 56, -186, 42, 18, 33,203,223,106, 39,187,101,163, 24,202,106,137,178, 86, 62, 6,174,185,104,100,105, 54, 38,161,141, 80,108,118,113, -110,104,197, 74,159,115, 96,170,165, 58,142,155, 64,174,101,181,188, 58,198,173, 91,134,158,179,246,169, 79, 69,221, 96,103, 60, - 97,193, 8,160, 90, 70,211,105, 8, 97, 49, 59,115,222,104, 55, 54,132,169,191,162,166,221,228, 24, 71, 27, 29, 35,148,180,236, - 23,139, 66,180, 53,217,188,186, 56,207,169, 39,239, 91, 76,251,199,151,177,105, 75, 49, 64,126,227,222,157,107,215,182,111,221, -186,177,247,224,193,124, 62,239, 82,154,182, 77, 16,169,196,149,154,175, 37,115,100,246, 90, 34,174, 83,104, 70,115, 0,179, 1, - 43, 97,102,136,196,184, 57, 26,245, 37,111,111,111,252,215, 95,251,141, 47,125,225,243,237,214,246, 42,103,235,186,126,181, 56, - 63, 62,216,123,251,238,157,189,135,123, 7, 7, 39,151, 23,245, 15, 4,230, 59,211,201,251, 95,124,246,107, 95,254,210,198,180, -189, 56, 63,125,253, 7,223,167,209,116,222, 47, 90,145,183,126,120,119, 20,227,179,215,119, 36,200,192,123, 33, 28, 8,183, 6, -204,140,110, 21, 56,103,232, 78, 40,136, 14,144,146, 18, 58,209,160,166, 51,213, 92,114, 5, 19,116,125, 90,165, 46,245,201,205, -146, 65,211,182,109, 24, 1, 40,162, 8,178,155,117, 90,154,216, 8,139,213,137, 12, 1,128,231,146, 75, 46,196, 2,224, 65, 16, -136,188,254,231,122,238,179, 97, 69, 85, 80,173, 74,242, 98, 61, 12,214,161, 7,173,147,246,106,197, 29,156, 43,226,128,165, 86, - 7, 88,168, 86, 90, 0,161, 20,117,243,208,114,213,125,148,129,201, 12, 0,200, 40,106,134, 3, 50,209,115,206, 18,132, 88, 16, - 32,196, 80, 65, 3,197, 84,136,153,165,170,125, 40,240,122,106,204,204,140,158, 57, 70, 4, 79,125, 34,102, 7,100, 22, 22, 46, - 10,128, 90,157, 16,182,190,139, 19, 98,173,132, 1, 20, 85, 69, 18,116, 42,110, 80,177,136, 49,212,239,243,162, 5,200,219,201, -200,114,201, 37, 49, 72,165,223, 32, 0, 35, 25, 88,118, 26, 53,227,171,139, 83, 36, 52, 87, 66, 26,143,218,247,190,242,242, 27, -247,238, 63,209,198, 39,110, 92,115, 17, 2,174, 29,162,218,132, 15,177,117,114, 43,190,181,179, 35, 28,206, 46, 47, 46, 82,122, -225,185,167,154,166, 77,169,191,255,240,112, 20,228,250,246, 38, 16,171,123,183, 92,238,236, 76,131,196,106,141, 6,247,146,146, -230, 82,227,236,220,182,204,132,109,212, 92,114, 86, 52, 53, 34, 2, 71, 22, 85, 35, 66, 3,118, 47, 66,148,139,101,243, 24, 69, - 45,104, 89, 57, 50, 49,184,163,103, 37, 30, 70,221, 69,139, 21,173, 97, 45,150,208,149, 2, 96,132,140,204,170,133, 0, 72,208, - 10, 40, 0, 49, 48,144,155,131,171, 8,136, 59,161, 2, 49, 33,113, 13,255, 57, 26, 13, 40,130,225, 25,237,234,143, 81,193,117, - 28, 99, 86, 97, 38,245, 31, 0,160,186,153,169, 8, 26, 92,247,135,234,110,215,209,234,161,160, 18,199,220, 84,144,212, 7,151, -164, 87,102,173,209,116, 50,154, 45, 87,155,227, 45, 85,179, 10,217,169,112,211,186,156,177,186,155, 1, 7,119, 43, 85,252,184, - 22, 40,213,209,167, 33,210,154, 68, 63,252, 91,213, 24,217,107, 73, 99,205, 45, 25,126,159,143, 35, 12, 85, 73,101, 62,212,119, - 7, 78,142, 15, 51, 74,174, 68,189,192,106,125, 74,221,106, 37,113, 60, 25,143,255,240,155,191,191,119,124,245,107, 95,252, 37, - 48, 77,243, 21, 8, 33,141, 43,231,171, 70,210,173, 87, 55,114, 77, 38, 77,201,189,165,171, 23, 95,124,229,181,183, 94, 95, 44, - 22,227,209,188, 29, 77, 67,104, 94,122,241,249,191,254,246,183,247,247,246, 62,252,209,207,222,187,251,218,205,219, 79, 28,237, -239,229,210, 17, 5,150, 88,107, 5,128, 58,100, 96,136,204,242,122, 19,129,192, 3, 79,217, 75, 6, 64,146, 0,170, 53, 16,236, -230, 90,172, 70,143,165,105,220, 13, 74, 1,179,176,185,209, 76,198,110, 94,186, 62,151,186,100,206, 23,167,103,169,175,211,110, - 18, 9, 18, 67,238,251,148, 11, 33,131,231,249,114,145,250, 84, 74, 14, 65, 38,227, 81,202,165,148,254,230,245,167,219,201,100, -121,121, 28,227,104, 50, 41, 77,172, 9, 64,118,192,249,217, 33, 69, 42, 89,103,151, 39,170, 62,221,184,121,121,188,215,229,252, -230,221,215,190,115,231,110, 46,152, 77,111,223,124,130, 89,206,175,174,174,174, 86,243,213, 66,152,183, 54,166, 41, 23, 34,208, -162, 86,245, 13, 18,107,159,179,184, 7, 51, 5, 21, 67, 71, 44,158, 45, 33,215,199,212,128,201,171,226, 58, 71,244, 95,249,220, -103,126,253, 87,127,237,213,151,127,164, 39, 47,238,125,183, 92, 94,156, 31, 30,236,191,117,247,238,219, 15, 15, 14, 78,207,102, -243,133,154,239,108,110, 45, 87,203, 27,155,155,191,250,243,159,249,192,123,222,125, 53,187,184,119,119,239,244,226, 10,218,136, -164,111,190,126,103,179,105,111,239,110,141,154, 88,177, 89,104,128,132,224,238,197,220,181,105,218, 92, 10, 19,187, 89,214, 82, - 93,195, 61, 25, 40, 80, 32, 51,171, 99, 76, 51, 16, 33,118, 66,242,148,148,168, 9, 82,140,108,185,236,199,109, 67,128, 69, 75, -140, 17, 1, 74, 81, 7, 13, 28,132, 67, 85, 46, 68, 10,238, 85,185,142, 18, 4,215,236,123,215,181,163, 30,208,204,106,244, 69, - 75, 38, 0,103, 10, 78,142, 48, 16,154,152, 48, 16, 20,231,234, 6,169,119,106,170, 3,210, 10,220, 24,246, 59, 89, 85,152, 1, -129,132,173,216,144,199, 29,146, 98,162, 94, 74,201,245, 36, 84, 91, 69, 77, 20, 67, 34, 38, 33, 84,179, 90,144, 10,196,245, 85, -235,136, 34,140,142, 6,250,184,122,198, 60, 42, 57,195, 16,110, 39, 34, 2,119,213,194,200, 5,106,116,194, 25, 49, 48,170, 87, -168, 25,230,148,221, 92,152, 76,209,209,136, 25, 12, 2, 49, 11,171,170,154, 13, 93, 63, 45,232, 32, 32,117,100,207, 8,195,240, -203,204, 68,250,212,191,253,246,253,179,243, 43, 66,220,218,216,140, 44,123, 7, 71,161,244,175,188,235,105, 71, 6,132, 24, 56, -247,150,114,102, 17, 36, 86,119, 48, 37, 36,142, 56,217,218, 22,230,166, 91, 30,157,156, 30,155, 19,248, 72,232,165,167,159,148, -166, 69,162,217,178, 39,178,182,109,153,217,138,186,170,162, 89, 6,119, 19, 38, 15,161, 17,105,218,201,226,234,162, 20, 69,116, -172,213, 4, 39, 43,134,132, 14,206,129, 3, 54, 93,215, 5, 97,137, 65,221, 64,141, 36,186, 25, 88, 1, 96, 98, 6,128, 82,195, -142, 32,224, 0,102,110,102,102, 1,121,176, 82,184, 9,177,154, 42, 32,178, 49,114,229, 61,168, 89, 27,101,101, 36,143,135,212, -181, 0,186,238,232, 15,238, 14,175,180,102, 38,175,158, 13, 36,175, 32, 98,172, 76, 33,171,108, 57,183, 92, 91, 72,235,222,235, -218,236,204, 72, 86, 43, 81, 53,240, 49,100, 10,234, 64,200, 20,136, 28, 1,212, 29, 77, 55, 38,211,139,195,115,189,190, 93, 47, -142,132,224, 90,136,155,245,148,220,135,130,175, 19, 24, 88, 93,185, 61, 14,168,243,250, 68, 94, 57,233,132,174,117,228,226,238, - 14,130,166, 3,224,125,160, 35,172,239,212,239, 44, 16,170, 2, 13, 13,108,192,117,213,189, 21, 48, 50,142,188, 75, 5,186, 92, -178,170,239,236,236,252,224,251,223,250,206,107,251,191,250,229,191,179,115,227,102,239, 22,132, 43,147,178,153,110, 9,163, 21, -173, 70, 25,226,224,170,168, 6, 78, 33,182,237,116,227, 39, 62,246,169,127,251, 7,223,152,140,167, 77, 51, 65,166, 91,183,159, -218,221,219,255,235,239,254,240,249,119,189,212, 45,103,247,223, 90,228, 82, 70,211,109,115, 35,181,122, 0,172,223,205, 36,164, - 90,189, 53,196,200,213,210, 98, 80, 96,141, 18,116, 10,196,162, 41, 33, 59, 6, 9,227,209,128,163, 69, 79,243,165,150, 66, 18, -218,233, 8,152,202, 34,153,186,170,166,110,133, 28,195,168, 45,221,146, 7,103, 8, 9,203, 74,123,213, 66,131,221,102,153,178, -246,185,180,136,172, 37,155,229,174,219,189,121,171,109, 71,139, 11,159,157, 63, 42, 38,171,217,101, 8,194, 84, 98,228, 44, 44, -196, 77,187,145, 82, 86, 45,103, 71,251,103,203,217,198,198,246,101, 15,219,187,183,231,243,249, 38,211,219, 15,238,103,179,105, - 51,122,230,246,237,139,197,188,194, 6, 83,201, 0,174, 90,183,106,145, 70, 52, 80,234, 80,235, 37,145, 8,234,100,184,168,153, - 2,178, 5,166, 32,193, 12, 76,211,211, 79, 61,249,235, 95,254,242,103, 62,253,105,105, 70, 9, 49,231, 62, 45, 23, 87,103,167, -175,191,245,198,219,247,247,247, 15, 31,157,207,230, 41,229, 85,215,109, 76,198,109,224,207,252,248, 79,254,220,167, 63, 38,140, - 23,243, 51, 31, 53,119, 14,143,199, 49,204, 22,139,123,119,247,119,154,209,141,157,141,122,253,119,116, 66,145,224, 94, 60,187, - 34,144, 41,230,162, 72, 4,228, 94, 12,136,128,217,220, 24,217,200,213, 44, 6,113,244, 90, 66, 2, 38, 47, 86,178, 1,120, 96, -182,208,244,220,197, 54,132,166, 97,146, 16, 34, 33, 22,247,241,184, 45,165,184,131,170, 18,184, 1,192,144,185,196,162, 22,185, -114, 4,177,118, 59, 29,188,198, 0, 0,200,221,192, 75, 93, 73, 50,210, 48,117,103,242,186,124, 52, 4,174,200,108, 18, 33, 83, - 3,100, 38, 89, 55, 7,135, 51, 12, 17, 12, 47, 74,162,122, 76, 91, 39,161,201,220,106,235, 69, 85,235, 5, 49,171, 3,152, 4, - 0, 85, 53,118,132, 32, 13, 98,118, 83,112,167,200,245,202, 93, 25, 81,128, 40, 33,184,230, 82, 50, 90,101,152,155, 19,128, 43, - 6,114,131, 90,126,212,162,210,196, 74, 91,146, 24, 75,214,110,153, 99, 32, 5, 55,171, 68, 20,148, 16,171, 15,175, 91,245, 33, - 10, 33,106, 81, 98, 67, 51, 36,130, 50, 12,103,171, 29,165,206, 34,114,215,117,243,197,116,178,241,210,139,163,135,251, 15,111, -223,184,118,181, 92, 92,158, 28,127,242,149, 23, 38, 27,211, 2,228,224,185, 79,238,208,180, 49, 23,173,154, 31,226,152, 75,238, - 83, 38,102, 25,181,215, 71,241,198,238,110, 46, 70, 0, 34,204, 49, 82,136, 57,229,229,124,177,179,181, 57,106, 70,197, 29,209, - 41, 70,183, 2,168, 68, 18,218, 81,108, 71,238,174,150, 42,174, 29,134,173,197, 48,119,168, 15, 44, 51, 3,200,213,142,146, 82, - 30, 2, 33,106,136,160, 78, 60,140,218,173,166,135, 74, 42, 80, 25,223,149, 42,106,230, 54,164, 74, 8, 17,178, 49, 97, 46,238, -217, 80,234, 18,168, 82,105, 77,192,135,142, 47, 12,156,220, 1, 75, 0, 96,213,191,142, 44,107, 98,251, 80,193,122,140, 8,131, -170,144,115, 28, 94, 9, 60,168,222,235,243,178,146, 29,157,192,179, 14,210,181,117,248,163,226, 23,144, 6,204,154, 32,130, 35, -183, 65,115, 63, 91,234, 70,227,107,188, 12, 13,152, 92,112,119, 67,174,143,107,131, 42, 21, 25, 80, 25, 21, 31,236, 68,232,117, - 74,234,149, 84, 49,208,174,169,142, 91,180,122, 98,214,211,163,129,128,135, 6,198, 64,190, 70, 27, 97,101,103, 98, 0, 55,167, - 2,142,168, 33,173,150, 28,152,136,115,191,216,218,222, 57, 59,124,251,223,254,201,159,127,230, 19,159,218,222,154,172,250, 62, -142, 39,200,193, 53,187, 16,212,149, 9, 58,106,189,114, 20, 71, 40, 93,146,192, 68, 32, 49, 60,122,116,255,141,187,251, 59, 59, -187, 49, 54,219, 91,215, 41,210, 11,239,122,225, 47,254,226, 47,127,248, 55,223,255,240, 71, 63,250,214, 27, 63,184,118,227,137, -110,185, 80, 45, 28,162,153, 3,162,153, 17,128, 91,109,150, 65, 29, 63,154,170,217, 0, 87, 48, 0, 64,148, 40, 68,128,227,145, -165,158,170,162, 70, 33,110,142,242,170, 7, 18, 9,194,236,253,229,220, 1,173, 36, 38,214,188,210, 82,186,110,145,251,194, 76, -237,120,178, 90,174,192, 59, 51, 57,123,180,103,150,133,185,244,101,177,234,178,230,101,223,191,240,244, 83, 49,240,108,118, 49, -221,190, 62,158,108,204, 79,246,207, 78, 46, 78, 30,237,143,183,111,140, 39,187,196,220,140, 54, 47, 79, 14,206, 47,142,110,220, -122, 78, 74, 6,157,117,243, 69, 15,240,244,205,231, 83,191,184,154,207, 67, 43,185, 36,132, 80,138,198, 16, 12,252,116,118,150, - 82,213, 8, 96, 81, 35, 38, 20, 4,243, 26,197,245,199, 7,133, 58,216, 54, 38,180,200,132,129,135,110, 62,194,178,239,167,227, -209, 47,124,242, 83,191,249,181,175,238,222,124,202, 8,220,105,181,184,184, 58, 59,121,112,127,239,173,189,123, 15, 15,143, 79, - 47,175,150,171,110,213,175,174,102,171,171,217,229,179,239,126,245,191,248,242, 47,189,252,202,139, 71,143, 30, 28, 29, 28,148, - 24, 94,123,243,205,205,233,248,219,127,243,198, 36,198,119, 93,219, 9,177,173,255,119, 66, 46,128,236, 14, 70, 6,202, 24,212, -148,132,204,138, 96,240,226,245, 80, 95, 5,246,202, 76,129, 34,214,132, 50, 32, 98, 32, 44, 14,170, 70,136, 10,104,166,168, 58, -105,154, 62,219, 56,140, 66, 19,205,205,179, 54, 81,106, 81, 5, 73,164,254,116, 24, 8,169,224, 36, 60, 40,235,170,118,192,220, - 29,161, 17, 46,234,174,185,250, 55,106,168,140,144,235, 15, 86,176,192,129, 0, 85, 21,137, 28, 61, 52,193,212, 88, 4, 76, 7, -243,193, 26, 11,197, 36, 92,255,134, 43,222, 0,176,142,160,212, 0, 77, 69,164,128,186,185,187, 34, 72, 41, 38, 96, 90, 74,223, -107, 8, 77,108,154, 24, 91, 51, 47,150, 9, 24,137, 77,171,101, 19, 12, 32, 50, 27,225,106, 53,199,250,132,113,213, 82,180, 88, -208, 34,177,209, 82,136,184, 20, 99, 36, 17, 94, 47,242,168, 66,105, 66,164,146, 11, 11,215, 68, 10, 2,150,212,171, 3, 33, 52, -161, 5,207,234, 74, 36,165,104,234,150,174,185,109, 70,128, 92,237,206, 44, 68, 8, 90,108,204,120, 49, 63, 47, 57,111,109,110, -149,155,215, 15,207, 46,230,179,171,143, 60,125,235,218,245,107,189,186,251, 96,238, 54,208,172,136, 68, 12,160, 86, 42,116,138, -152,221, 92,154, 16, 80,122,205, 65,144,135,192, 14, 90,238,115, 65, 66,107, 70,163,164,165, 34,241, 77, 11,184,199,208, 54,211, - 45, 67, 48, 85,203, 37,119,189,230, 28, 69,250,146,200, 29, 84, 49, 8, 50,187,154,185, 50,139, 57,184, 21, 0, 84, 53,130,117, -145,146, 17,204, 85, 75, 1, 23, 98, 94, 63,106,193,141,152,205,204, 74, 17, 17, 32, 50, 51, 45, 30, 3,135, 16,178,154,121, 34, -174,127,249,117,146, 81,247,171, 36, 0, 54, 48, 94,124,189, 17, 53, 87,116, 25,160,148,108,110, 72, 80, 11,244, 76, 88, 79,240, -195,124, 99,192, 20, 59,212, 83,239,176, 66,120, 28, 60,116,168,243,211,122,172, 6,115,130,250,108,214, 97,118, 92,167, 32,224, - 96,166,176,179, 57, 58,191,188,216,186,189, 85,116, 29,107, 89, 39,140, 96, 32, 78, 84, 67, 47,194, 26, 89, 89, 27,167,195,160, - 25,225,177, 70,160, 94, 54,222, 81, 84, 87,116,101,125,235,173,163, 97, 67,198,125,200, 83, 27, 0,131, 9, 84, 69, 12, 26, 50, - 51, 76,210,197, 37, 0, 32, 54, 73,211,120, 52, 57, 61,220,255,198, 55,191,249,190,247,127,228, 61,239,121,207,226,242,180,217, -190, 25,154,198,205, 92, 26, 52,101,110, 1, 81,213,172, 47, 68, 68,160,181, 31,200,194, 64,188,154,157,252,238,239,254,243,103, -158,124,151,230,254,236,226,108, 50,221,108, 66,123,237,198,141, 23,158,127,238,175,191,251,218,143,188,239,125, 55,111, 63,249, -246,189, 59,194, 50,153,110, 17,179,132,134,234,145,132, 35, 2, 33, 9,128,154,171,103,116,112, 80, 67, 66,172, 52, 18,128,166, - 29,213,125, 75,201,198,160,128, 4,104,121,149,172,152,230, 28,218,209,106,181,204,171, 20, 71, 17, 89, 16, 57,173,114, 46,190, - 90,174,136,177,153,140, 0, 60, 52, 13,184, 90,209,131,131,187,183,111,237,154, 89,214,210,247,189, 25,104,209,141,209,248,226, -242,188,235, 86, 79, 62,251, 74, 90,205,246,238,188, 49,155,151, 16,167, 86,188,150,193, 74,234, 32,196,182,221, 52, 45,103,167, -247, 79, 79, 31,149, 82,118,175, 61, 59, 26, 79,206,174, 78,219, 81, 60, 58, 62,153,205,230,203,110,233, 5, 10,104, 16,190,156, - 45,143, 79, 79,215,117,227,250,249, 1, 53,136, 1, 8, 80,135,237,200,240,181,145, 74,140,243, 58, 82, 3, 45,202,204,207, 61, -247,212,111,254,234,223,249,228,167, 62, 53,222,220, 77, 57, 89, 94,205, 78, 79, 15, 15,238,239,221,191,191,247,224,240,224,236, -236,114, 54, 75, 93,127,185, 92, 30, 62, 58,126,226,250,206, 63,250,242, 23,127,229, 23, 63,215, 16,252,240,175,254,242,178, 91, -197,173,173,126,181, 58, 61, 60, 23,245, 27,155,147,157,141, 49,137,172,235, 15, 72,132, 97, 24,163, 27, 19,153, 91, 20, 86, 55, - 83, 50,171,165, 16, 48, 55,102,170,178, 48, 2, 52,179,202, 10,210, 4,171,164, 64, 22, 66, 16,102,239, 58,175,160,177, 16,166, -173, 24, 66, 45, 22, 13, 40, 14,128, 38,180,106,252,146,225,176, 0, 0, 32, 0, 73, 68, 65, 84,158, 53, 51, 9,145, 56, 2, 40, - 72,144,156,251, 24, 98, 81, 69, 2,211,122,223, 38, 77,181,248, 74, 14, 4, 80, 87, 47, 52,200, 75,153, 2, 35, 49,129, 67, 77, - 39, 48, 73,197,168,187, 43, 50,231,108,178, 62,172,175,217,219,104,102,170,165, 54, 68,212, 1,220,152,196,177,168, 41,168,179, -176,170,151,100, 76, 80, 84,179,153, 91,113, 8,238, 94, 82,114, 0, 97, 1, 32, 97, 54, 83, 51, 39,177,200,146, 82,114,117, 38, - 82, 45,102, 3, 21,213,221, 84,213,146,139, 69, 25,161,163, 0,184, 48, 21, 4,205, 10,110, 20,184, 30, 47, 73,170, 39,212, 9, -161,100, 5, 52, 97,113,128,226, 61, 33, 85,203, 4,147,146,251, 42,173,144,164,105, 66, 19,131,106, 49, 85, 3, 8, 68,220, 8, - 26,197, 9, 30,158, 29,165,229,234,154,208, 7, 95,126,254,198,181,157, 12, 8, 14, 66,132, 0,185, 62,225,188, 30, 58,107, 98, - 30,188,202, 59, 92,221,160, 55, 69, 30,124,114, 69,157,220, 37,134,197,213,101, 19, 37,196, 86, 93,173, 30, 34,165,234,249, 68, - 75,114,162,220,117,253,106, 5,238, 6,198,136,129, 24,152, 28,138, 3,184,102, 36, 65,231, 10,193,198,202,120, 32, 31,100,156, - 76,238, 78,132,170, 24,132, 9,184,228, 92,165,160, 64,108,234,132, 24,154, 72, 76, 41, 43, 2, 4, 6, 0,212, 10,120,224,160, - 57,195, 80, 76,243, 46,169,101, 21,213, 36, 84, 87,221,160, 3, 36, 1, 28,235,123,184,254,177,203, 48,235,112, 39,226, 26, 76, - 30,228, 97,110,235, 96,228, 80, 76,114, 53,148,193,116, 55,148,146,234,113, 6,214,104, 96,171,117, 93,128, 74, 45,199,181, 75, - 3,192,212,118,182,119, 78,239, 61, 40, 55,166, 96, 14,196,143, 57,128, 96,117,204, 95, 5,215,235,192, 78,133, 92, 86, 93, 23, - 26, 60,238,216,214,219,134,173, 11,120, 84, 61, 43,213,208,138, 96, 21,163,129, 88,179,104,100, 69, 11, 99,160,250,138,144,136, -168,230, 25, 76, 17, 55,250, 69, 82,135,166,105,204, 60, 54,237,114,126,246,141,111,254,225,243, 79,191,244,209, 15,252,104,223, -247, 78, 33,142, 90,115,181,126, 37,147,109, 36,206, 89,145,168,116, 61,198, 8,168,158, 82, 78,169,221,218,206,125,183,125,243, -230,239,253,179,111,172,122,253,205,127,248, 15, 15, 30,188,249, 23,127,246,167, 27, 27, 27, 79,220,126,122,132,147,167,158,126, -250,252,242,226,175,255,211,183, 62,253,185,159,121,244, 96,111,178,177, 67, 68,125,183, 68, 36, 39,100, 36, 34, 20, 10,106,182, -166, 92, 22, 4, 2,169, 30, 53, 4, 55, 51,224,216, 34,139, 43, 16,162,107, 1, 66,119,243,236,142,104, 10,221, 98, 89, 82,223, - 76, 71, 66,156,115, 49,230, 46,173,144, 12,164,169,137,216,209,100, 67, 51,244,185, 47,253,226,244,232,225, 51, 79,220, 80,211, -197, 98, 57, 95, 46, 87, 57, 35,248,141,221,157,130, 49,182,178,123,243, 73,105,162, 67,136,145,101,218,230, 84,192,203,229,249, -213,120,178,201,165,191,188, 58, 62,159,157,108, 77,119,111,221,126, 87, 94, 45, 38,155,187,139,213,236,193,225,193,178, 91, 25, -192,230,198, 70, 53,220, 35,194,168,105,158,185,221,252,199,254, 59,167,231, 87, 34,188, 70, 4, 1,186,241, 90, 24, 96, 14, 12, - 94, 91, 68,117,176,199, 8, 24,100,185, 88,108, 79, 55,190,242,249,159,251,249,207,124,246,217, 23, 95,146,102,146, 53, 47,103, -231,103,199, 7,247,223,222,187,255,240,209,195,227,227,147,203,203,217,124,126,113, 57, 63, 59, 61,235,115,254,248,123, 95,253, -173, 95,251,149,151, 94,122,161,239,150, 39,179,203,189,171, 75, 75,221,237,221,205, 59,247,238,111,181,205, 4,145,167, 99, 98, - 25,180, 59, 72,130,104,234,131,102,167,138,161,173, 26, 10,208, 84,139, 21, 24, 42,150,213, 62, 10,197,114,160, 80,175,141,150, -221, 12, 66, 32,119, 70, 32, 3,227,138,231,173, 7,115, 0, 68, 18, 97, 2, 84,240,202,125, 50,119, 3,168,151, 54,215,130, 34, - 18, 2, 16,180,113, 82,180, 84, 51, 25, 35,170,209,208,160,182,193, 91, 54, 44,227,104,120, 23, 18,146, 27, 20, 51, 97, 10, 44, -245, 40, 77, 6, 34,141, 90,178, 82, 80,170,144, 6, 25,209,145,106, 12, 13, 1,137, 4,220,213, 21,141, 0, 64, 53,215,118,168, - 3, 3,225,120, 60,234,187, 85,234, 87,102, 30, 69, 48, 68, 48, 44, 37, 83, 64, 67,100,103, 34, 42,166,128, 86, 5, 79,125,159, -188,100,168,220, 75, 67,131,194, 72, 53, 5, 80,204, 25,205, 76, 83,223, 55,227,104,165,122,186, 60, 4,201, 89,135, 76,155,147, - 48,187, 23,213, 97, 46, 28,164,117,215, 84, 10,242, 58, 4, 1,128, 72, 97, 52, 6, 14, 77,219, 72, 8, 86, 20, 1, 73, 24,204, -235, 16,121, 50,218, 28,163,110,143, 11,154, 87,113,130, 26, 34, 20,230, 96, 96, 96, 70, 80,163,138,238, 57, 57, 50, 18, 49, 49, - 48,154,170, 33,171,101, 70, 6,228, 65,131, 71,200,129,251, 84,250,229,106,247,137, 27,192,102,201,173,228, 56, 26, 1, 99,206, -170,203, 21,199,236,230, 69,213,107,158,167, 88, 54, 88,219,176,234, 37,129, 29,177,218,138, 16,209,234, 87,113,120, 86,129, 59, -160, 35,115, 36, 42, 37,151,222, 58, 66, 66,175,113, 88,171, 15,203, 84, 74,196,166,105,154,190,207, 37, 39, 9,204,128,196, 97, -161, 74,140, 96,158,138,129,167,173,233,164,184, 72, 28, 95,203,185, 51, 45,197,138, 0, 56, 24, 18,219,192,211, 88,215,135,200, -234,126,214, 77, 7,207,115, 93,177, 86, 43,163, 15, 68, 97, 68, 66,169,111,130,193,133,138,160, 80,121, 4, 68, 21,100,134,131, - 94, 3, 89,234,149, 65,135,131,190, 1,128, 75, 19,219,136,203,101,158,182, 1,220, 1, 10, 32, 13,209,176, 26,214,161,199, 47, - 15,115, 68, 7, 5,171,149, 55, 34,192,186,200, 53,115,171, 63,143, 4, 65,181,164, 65, 9,100,128, 10, 6, 38,117, 16, 64, 85, - 56,238,238,184,254, 18, 24,120,239,128,110, 74, 97,203,150, 93, 94,204,154,141,169,196,145,151,100,253,252, 27,255,230,155, 55, -174, 61,241,185,207,124, 26, 16, 74,223,181, 27,155, 36,193, 1,156,196,212,172,155,243,104, 3, 12,220,156,106, 39,133,164,153, -142, 81,173,109,199,243,163, 7,255,250,247,191,249,115, 63,247,165, 39, 95,121, 17, 17,130,252,135,203,179,179,157,173,221,166, -153,236,236, 92,127,226,214,147,119,238,221,127,229,254, 61, 53,155, 93, 93,222,124,242,233,229,225,129, 48,135,102, 84, 19,175, -230,201, 17,221, 12, 17,205,180,162,254,134, 41, 87,157, 70, 17,154,154,155, 97, 32, 80,183,172,142, 72,181, 1, 1, 86,114,230, -216,162,185, 49, 2, 97,183, 92,246, 41,231,212, 7, 66,226, 16,218,134, 9, 83,191,100,145,211,195, 71, 87,203, 5, 71,118,183, - 62,245, 57,231,101,215,141, 2,111,143,154, 16,195,104,251,122,136, 45,179,180,211,173,229,201,241,168,221,237,211,101, 78, 75, - 2,184, 56,127,244, 96,255,174, 1,189,250,226,171,139,217, 5,115, 92,234,197,229,197,209,229, 98,126,116,117,121,117, 53, 27, -143,166,227, 24,164,105, 22,179,171,113,211, 44,251,148,250,238,230,245,221,203,217,252,111, 3,154,161, 30, 87,124, 88,148,215, - 24,100,237, 72, 48, 67, 54, 3, 43,239,125,233,197,255,242, 55,190,254,254, 31,251,128,180, 99, 35, 92, 92,157, 95,156, 30, 62, -124,176,127,244,232,224,238,131, 71,199,231,103,103,179,217,114,209, 29, 30,159,156, 92, 92,142, 99,248,239,191,250,229,191,251, -149, 47, 45,231, 23,119, 94,255, 33, 52,163,183, 31,238,175,102,151, 15, 30, 28,189,246,198,131, 27,211,201,181,141,105,211,214, -121, 11,129, 17, 81, 64, 50, 45, 85, 82, 71,200, 12, 96, 89,135,242,189, 4, 2, 48, 54, 41,238,197, 92,234, 67,208,140,128,177, -230, 38,209,139, 25, 19, 58, 99, 94,229,182,137, 21, 23, 40, 18,114,202,213,217,214, 4, 86, 39, 7, 68, 9,128,174,217,144,177, -194,133,113,176,209, 3, 7, 33, 34,213, 66, 68, 49, 72,202, 57,247, 67, 74, 10, 0,156,157, 64,176, 94,154,125,136, 30, 0,186, -106, 38,142, 68, 20, 56, 2,177,106, 38, 55, 32, 44,165, 39, 34, 98, 97,116, 25,176,142,193, 92, 21, 44,132,152, 83, 15,238, 64, -200, 30, 12,204,221, 41, 48, 34,105, 41,129, 89, 66,200,165, 16,113,136, 35, 7,179, 82,152, 9, 3,215, 33,175,212,163,132,149, - 16, 34, 18,151, 92,250, 62, 33, 16,178, 84, 91,102, 51, 10,232,113,213,119, 53,146,207, 90, 5, 62,128, 64,166,201,129,221, 13, -193,115,234,213,140,137,130,200, 48, 46,118, 16, 17, 17, 46, 57, 23, 77, 48, 72, 1, 43,210,222, 17,204, 0,154,166,149,192,228, -168, 73, 89, 4,192, 82, 94,185, 89,108,226,186,165, 73,227,113,235, 70,185,203, 14,206, 77,112,117,115, 99,102, 67,212,236, 37, - 23,171, 97, 87,207,228,129, 56,168,154, 23, 99, 34, 39, 6, 71, 80,165, 32,161,137, 41,165,190,207,151,179,101, 8, 40, 44, 86, - 76,152, 80, 70,197, 12,212,189,226,203,187,206, 28,115, 73,204,193, 75, 33, 38,172,234, 30, 98, 5, 80, 51, 68,104, 99,232,172, - 84, 69,109,237,173,145,144,166,140,204,245,102,165,131,194, 10, 35, 5,114, 79,166, 66, 28,162,228, 94, 11,104, 20,142, 49,164, - 84,152, 8,130, 56, 64,118, 37,208, 73,211,116, 61,231,180, 16, 52,146,102,217,155, 22,147,231, 95,124,113,213, 23, 45,101, 62, -187, 88, 46,103,218,175, 28, 75, 77,164, 0, 14,152, 69, 98,210,172, 53,164,239,174,117, 32, 52, 24,180,129,235, 50, 28,234,166, -181, 78,139,214,100,210,154,229, 55,132,186, 6,241,117,115,202, 43, 50,110,120,113, 25,214,203, 36,146,230,178, 53, 25,207,150, -221,246,102,155,212, 5,240, 29,204,247, 59,248,200,193,244,242, 88,250, 87,147, 52,107,132,116, 70, 39, 17, 80, 51,211,130,224, -174, 96, 76, 60, 52,131,148, 81,134,247,137,177, 62,246, 89, 15, 24, 32, 0, 52, 34,113,152,120,151, 87,203, 5, 7, 33, 14, 69, - 51,106,255, 7,127,252, 71, 18, 70,159,252,200, 7,139, 22,112, 36,142,205,100,170,197,136, 89, 29, 65,147, 47, 23, 32,173,165, -142,194, 8, 25,192, 12, 65, 17,212,220,199, 27,163,255,243,127,251, 63, 36,110,127,254, 23,126,102,254,232,209,120, 99,227,163, -159,249,236,191,251,195,127, 51, 95,204,154,241,120, 50,153,220,188,113,253,252,252,244,245,215, 95,251,201,143,253,212,241,233, -225,114, 49,107, 39,163,156, 87,136, 64, 34,110, 86,128, 68,216,113,253,184,171,232, 19, 68,174,244, 55,225, 32,177,228, 21, 34, - 51, 7, 69, 71, 0,116, 67,211,220,247,121,181,228,102, 20,219, 64, 96,234,234,102,134, 36,161, 49, 71,244, 34, 34, 24,184,148, - 12,224,171,211, 71,119, 95,255,214,213,106, 69,196,238,184, 92,172, 22,243, 69,234,250,157,201, 6,161,164,238,234,250,228,121, - 67, 58, 57,216,239,187, 69, 78,253,229,201,241,120, 50,238,187,171,249,229,241,170,215,219, 79, 60, 55, 34,186, 60, 61,238, 87, -151, 32,141, 57, 77, 39,211,243,171,217,124,177,100, 9,155,155, 91,253,106,126,122,124, 88,138, 7, 9, 76,120,112,114, 49, 91, - 46, 0,220, 75,241,181,246,220,220, 16, 98, 85, 83,212, 47, 43, 51, 86, 67, 99,113,187,177,187,243, 11,159,248,196,151,190,248, - 75,183,158,122,166,152,169,149,203, 71,135,103,167,135, 15, 30, 60,120,116,116,114,255,209,225,225,217,105,151,210,229,108,113, -112,112, 92, 74,249,236,135,222,247,143,190,252,133, 15,127,232,199, 30, 30, 62,220,187,243, 54,143, 71,221,233,241,253,183,239, - 7,230,136,116,125,103, 60,157, 76,107,236, 10, 3, 4, 17, 0, 50,215,146,157,185, 34, 34, 0,208,181, 40, 17,136, 80,234, 11, - 58, 8,198,130,133,208, 76, 43,117, 20, 17, 25, 9,138,107, 73, 26,155,216,196,198, 74, 54,199, 56,138,245, 59,161,137,148,178, -213, 55, 0,177,160, 48, 42, 16,139,230,172, 73,171,163, 25,208, 41, 10, 34,122,113, 34, 0,181,164,153, 49, 8,122, 81, 37, 68, - 9, 92, 39,230, 53, 92, 0, 72,214,103,115, 99, 25, 82, 3, 37, 43, 75,168,234, 66, 67, 7, 55, 14,195,169, 28, 76, 1, 88, 68, - 0, 93,181, 0,120,177,158, 88, 16,216,177, 98, 60,234,164,200, 16, 32,112,163, 86,192,189,105, 71, 57,103,207,217, 21, 88, 68, - 66,112, 51, 15,200, 92,185,193,131,217, 39, 21, 99,193,156,122,213, 34, 65,152, 8,144, 93, 43,219, 50,162,170,170,162,123,148, - 80,140, 21, 10, 66, 30,162,173,185, 32, 90,229,255,173, 85,112,100,168,160, 80,201,107,213, 63, 87,147, 35, 68,192, 66,224,104, -235,212, 93, 8, 77, 81, 5, 39, 3, 71,174, 71,132,194, 68, 20,215, 53,248, 32,232,144, 74,134, 82, 98,100, 67, 40, 57, 3, 48, - 56, 58,128, 38,128, 58, 87, 82, 83, 80, 68,113,128,156,147,136,112, 27,114,210, 58, 50,138,177,181, 84, 22,125,110,154,160,200, - 57,149,205,233, 24, 9,155,216,154,121, 78,197, 84,205,141, 43,170, 55,151,161, 78,236, 70, 18, 85, 11,104, 17,150, 82,114,173, -203,171,217,106,181, 34, 10, 86,117, 21,132,134,144,251,108,224, 1, 17, 29,180, 43, 6, 86, 37,167,154,147, 2, 10, 18, 32, 20, - 85,142, 28, 81, 82,209,249,124,222,180, 17, 89,172, 55, 43, 9,212, 73, 8,205, 2, 58, 52, 13,184,153,153, 16,178,144, 72, 19, -183,218,198,212, 38,147,166,239,182,186, 85, 74, 57,165,110, 89,114, 41,165,115, 75,174,133,220, 5,135,244, 60, 24, 32,131, 15, -151, 86, 3, 83, 24,240, 50,107,104,146, 33,184,129, 8, 18,185,155, 43, 12,253,183,245,116,129, 24,157, 6, 52, 76, 24, 18,175, - 12,204, 53, 15, 55,217,218, 56,217, 63, 1,218, 37, 45,128, 53, 77, 64, 96,117,148, 67,239, 68,115, 6,208, 8, 18, 13,115, 36, -112,215,172, 78, 96, 62,204,246,177,130,108, 4, 8, 12,148,129,173, 90, 84,215, 75, 2,245,170,137,164,161, 23,177,102,163, 9, -166, 82, 74, 14,161,149, 54, 0, 24,171,254,201,159,253,191,103, 75,248,229,159,249,220,168, 13,165,239,226,168,149,166,181,156, - 33,140, 16,204,186, 57, 52, 35,106,218,210,173, 76, 83, 19, 71,174, 78, 65,160,184,166,210,110,110,220,127,243,205, 63,254,163, - 63,253,234, 87,255,193,116, 68, 71, 39,179, 91,207, 63,245,190,167, 63,241,253,239,126,251,222,222,157,205,205, 45, 30, 79,119, -110,220,120, 98, 54,123,112,240,232,248,232,145,153, 94,156,156, 96,224,205,233,118, 69,228,168, 22,145,168,238,188,198, 96,186, - 27,186, 58, 80,113, 32, 66, 9,141, 99,109,110,114, 41, 25, 7,181, 57,150,164,150, 51,139, 72,224, 10,111,214,174, 51,181, 40, -178,185, 49, 61, 98, 2, 83, 4,240,156, 33,167,213,197,193,221, 55,223, 92, 44,231,197,107,156, 86,207, 46,206, 86, 41,247, 69, - 55, 2,247,221,108,177, 90, 60, 19,199,105, 57,219,127,243, 7, 38, 60,154,236,164,229,236,244,120,111,181,154, 79, 38,187, 79, -237,108, 16,203,233,241,253, 85,159, 56,180,139,171,147,233,116, 71, 0, 95,187,243, 58,145,108,111,108,174,186,197,197,229, 69, -219,140,219,157,241,229,249,185,131, 33,162,170,165,164, 64,142, 64,149,147,103,110,132, 85,173,172,170, 30, 2, 11,242,162,239, - 38,109,251,211,159,248,216, 23,126,246,103, 95,122,233, 85,105,219, 85,223, 45,175, 46,175, 46,206,142, 31, 29,220, 63,184,127, -111,255,232,248,236,116,217,247,139,229,234,225,241,233,225,225,201,143,191,244,236,111,255,218, 87, 62,254,161, 31, 5,243,195, -211,163, 71,151, 23, 15,207, 78, 95,216,125,225,193,189,115, 74,182,189, 53,106, 55,166,102,224, 64, 66,161, 42,140, 77,161, 62, -236,214,208,105,175,216, 0,145,250,104, 80, 38,246,186, 41, 2,240,226,196, 80,180, 16, 7,114,211, 92,140, 49, 80, 0,115, 67, -165, 90,169, 8,129, 8, 74, 86,115, 19, 17, 71,130,202,119,118, 68,169, 91,115,224, 38,120,113,226, 90,191, 24,108, 58,245, 84, -195, 64,117,238,175,165, 62,239, 24,137,132,177,232,112,164,193, 72, 88,181, 79,110,142, 40, 65, 72,106,186,188, 86, 32,171, 95, -222,200,201, 65,240, 49,147, 3,201,173, 84,186, 33,186, 89, 65,225,198, 64,235, 64,213,204,213, 50,146,184,165,220, 47,144,163, - 48, 43, 58, 5,172, 79,121, 48,116, 52, 70, 52,115,102, 38,172,164, 78, 67, 2,100, 54, 53, 12,145, 16,185,137,214,169,171, 86, -229,183,136,152, 85,217,147, 50, 5, 3,119,176, 24, 91, 45, 90,212,200,128, 67, 64,102, 53,181,172,132,140, 78,246,216, 52,164, -133,100,184,185, 32,177,153, 86,237,144,106,113,171,189, 94, 71, 71,179, 60, 80,164,181,150, 90, 48,167,140,134, 44, 68,109, 40, - 89, 93,149, 41,152, 91, 46, 69, 92, 6,106, 19,185,214,240, 66, 5,221, 19,185,131,169, 35, 65,219, 54, 41,245, 57,247, 34, 18, -131, 32, 81,191, 88,129,229,241,120,203,220, 82,223,129,163,169,215, 52,166,155,193, 58,164, 7, 68,142,164,170,107, 97,144,215, - 83,185,170,213, 39, 76, 93,136, 59, 64, 49,133, 42, 13, 71,169,153,171,122,231, 70, 68, 55,112, 99,243, 2,129,132,144,153,181, -184,154,213,113, 21, 56, 90,214, 16, 24, 60, 40,148,162,202, 66, 28, 24,157,180,148,234, 10, 83,115, 57, 58, 60,104, 66,100, 17, -145,208,142,198,163,241,168, 56,104,151, 82, 46, 41,245,170, 86, 82, 90,204, 47, 87,105, 5,152, 26, 33, 17,170,132,198,234,122, - 5,199, 90, 89,242,202,130,175,171, 23,118,172,251,226, 33, 71, 91,199, 57, 25, 24,134,190,182, 15,235, 12,167,225,197, 11,107, - 66,111, 12, 49,146,207,150,182,209, 82,221,178, 14, 45,164,119,192,195, 72, 14,250, 24, 31, 86,237,209,170,136,168, 96, 4, 52, -128,244, 28, 28,120,173,247,171, 76, 62, 99, 12, 64, 8, 86,188,168, 86,188,180,240, 16, 15, 37, 4, 87, 45, 13,245,139,162,160, -128,210,180, 44, 65, 74,247,231,255,225,207, 95,191,119,248,149, 47,124,126, 99,212, 40,176, 52,129,152, 72, 2,181,141,149, 82, - 82, 41,125, 47,106,208,180,106, 30,198, 91,200,161,238, 71,156, 5, 24, 68,211,239,255,171,223,123,249,213, 31,255,236,103, 63, -121,126,126,186,117,227, 26, 69, 1,132,159,254,252,151,255,175,255,253,127, 61, 57, 61,122,170, 25,141, 70,147, 27, 55,111, 92, - 94, 93,124,231,123,223,255,196, 39, 63,113,237,214,237,131,189,189,209,116,178, 92,204, 16,128,164,218,176,196,121, 80,109,153, -131,107, 97,146, 32,172, 96, 65, 34, 99,189, 78, 58, 16,121,201,174,166,165,168, 58, 97,160, 17, 51, 5, 96,204, 93, 15, 88, 59, - 83, 24, 3,107, 94,181,163, 73, 46,170, 10, 97, 52,221,191,191, 63,191, 56,198,208,228,172,174,144, 82,186,154,207, 85,213, 92, -183, 39, 45, 96,104,198, 59,196,113,185,152,115,179,113,113,252,118,145,229,229,249,201, 52,198,182, 29,141,198,211,227,163,251, - 55,110, 60, 61,157,108, 35, 44,155, 81, 83,186,132,166, 7, 7,123,251, 39,103,198,184, 13,147,212,247, 0, 18,132, 71,145,206, - 65, 83, 42, 91,155, 91,227,241,136,153, 79,207, 47,144,168,235,140, 8, 9, 89, 68,250,146,119,183,182,136,248,248,252,188,128, -189,251, 93,207,255,221, 47,125,241, 67, 31,252, 40, 55, 49,171,117, 87, 23,171,217,213,201,241,225,193,225,209,253, 71, 15,247, -246, 15, 46,151, 43, 45,229,228,226,226,222,254,195,174,235,127,227,103, 63,253, 59,191,253,117,102,126,112,239,173,249, 42,173, -162,180,232,199,143, 78, 78,142,207,130,195,141,233,198,120,220, 56, 0, 51, 17, 11, 49, 19,147,170, 57,174, 63,217,117,112,135, -200,196,117,171, 91, 95,255,131,235,124, 13, 45, 52, 32,112, 18,226, 98,134,140, 50,160,184,156, 25,129,152, 12,137,196,173,104, - 41, 33,182, 40,168,197, 8, 48, 8, 27,152,102,151, 6,205,152,145,156,234,228, 19, 37, 68, 64, 43,217, 2,147,185, 25,162, 16, - 50, 80, 68, 94,235,197, 40,149,204, 36, 14, 38, 34,185,174,218,209, 42,218, 17,144,214,201,245, 90, 63, 52,211, 66, 28, 76,173, -106,226, 17,171,142, 57,152,123,133,216,120, 8, 86,138,107,225,128, 94,220,192, 88,164,238,222, 58,119, 65, 33, 64, 64,113,235, -209,133,132,212,106, 49,149,107,239,208, 93,115, 41,230,200, 44, 14,238,168, 33, 52, 18,131,155,229,156,170, 97, 13,145, 28,140, -136,234, 82,215,212, 20,149, 0,138, 58,244,169, 38, 52, 80, 6, 7,180,153,214,219,131,170, 10, 17, 18,153,186,176, 96, 12,154, -178,154, 7, 54, 65, 82, 80, 55, 47,166,163,166, 45, 37,151, 98,109,228,162,230, 14,129,197,201, 52,151,213,170, 52, 77,144, 24, -115,206,154,147, 27, 32,146, 14,201,120,170,233, 15, 4,176, 65, 53, 66, 4, 88, 12,114, 82,192, 18, 2,187,147,106,182,226,230, -217, 1, 5, 65,213,151,139,229,214,198, 8,156, 52, 23, 36, 22, 38, 19, 72, 93, 66, 53, 96, 34, 14, 77, 12, 57, 23, 55, 21,116, -163, 10,135, 34, 85,243, 2, 44, 40,210,168, 23, 28,170,150, 53, 5, 11,128, 76, 12,106,106, 37,115, 16,181,108,138, 81, 0,132, -201, 76,176, 97, 2, 7,236, 86,125, 19, 67,237,189, 86, 64, 60, 18,170, 13,229, 36,150,144,115, 17, 17,225, 8,192,158, 83, 96, - 92, 37,146, 31,126,239,219, 49,198, 32,113, 50,158,182,227, 73,144,216,140,219,102, 60,106,163, 52,141,152,121,214, 50,154, 78, - 76, 75,223,117,243,217, 85,151, 87, 96,137, 4, 91,102, 0, 96,170,110,143, 1,244,226, 4, 40,176,214,157,214, 8, 98,125,126, - 35, 51,174,229, 54,107, 47, 45,130, 1,176,215,234,218, 99,128, 7,110, 78, 71, 39,231,231,155, 79, 93,131, 26,240,178, 65, 52, - 82,233,100, 0, 84,205,218,149, 83,225, 86,119,168,108,182, 78, 5, 1, 1,216,227,175,223, 99,124,241,192,115,247,170, 61, 32, -100,162, 65, 12,246, 78, 81,181,235, 51, 33, 59,104,104, 34,199, 16, 17,191,243,237,255,244,237,215,247,126,230,147,159,186,113, -227,218,106,213,177, 56, 57,177, 8, 9, 91, 41,174,238,134,210,180,220,140, 45, 37, 25,141, 66,140,174, 9,152,173, 95,166, 46, -109,238,108,188,249,189,239,126,251, 59, 63,252,239,254,155,127, 82,250, 5, 82, 24,109,142, 52, 21,239,250, 27,183,175,253,248, -135, 63,250,214,223,124,123,119,247,198,198,214,214,230,238,181,103,159, 46,135,143, 30, 28,236,221,123,249,189, 31, 32,134,187, -111,188,118,235,214, 45, 99, 23,144,129,200, 89,239,173,128, 90,138, 51, 86, 86, 26,168,135, 27, 83,131, 12, 94, 0, 25, 29,204, -177,164,100,200,192, 2,218,147,145, 68, 82, 83,237,123, 15,145,208,144, 27,105, 98,211, 52,163,102,210, 45, 19,197,112,126,124, - 48, 63, 63,221,104,219,211,211, 19,243, 18, 37,244,121,149,250, 84, 76, 65,125,123, 99,147,133,174,223,124,166,109,199,103,103, - 71,253,234, 98,190,156, 95,204,142, 95,121,233, 61,253,236,196,165,237, 86, 11, 82, 59,122,120,127,251,218, 45, 75,125,167, 61, - 88, 41,165, 28,157, 30,175, 82, 10,161, 57, 62, 57,157, 76, 39,227, 81, 59, 95, 45,247, 31, 30, 86,148, 91,183, 88, 92, 45,231, - 27,163, 81,234, 83, 42,165,132,128,160,132, 34, 8,207, 60,241,228,255,242, 79,255, 41, 34,253,187, 63,253, 19, 70,250,248,199, - 63,122,253,250,173,174,104,202,185, 95,206, 47, 46,206, 78,143,143, 14,142, 79,247,246, 31, 60, 60, 62, 94,172,186, 92,202,193, -163,227,135, 71, 71, 47, 60,121,227,127,248,234,175,254,252,103, 63,126,114,126,254,240,254,126,188,177,125,244,232,173,211,139, -171,201,100,154, 83,126,122,103,139,155, 80,233, 71, 36, 50, 60,116,144, 76,235,167,210,105,248,224,162,122, 33,148,172,213,148, - 86, 73, 91, 53, 66, 60, 84, 68, 36, 68,179,162,174, 37, 37, 10, 4,206,245, 8,171,238,208, 37,105, 71,196,156,115,207,204,237, -164, 85, 29, 38, 12, 65,130,106, 6, 64, 98, 72,201,130, 72,205, 41,115,144,122, 6,172,111, 29, 67, 70, 0, 65, 42,166,129, 5, -193,144, 72, 88,138, 41,112,112,115,100, 78,185, 84, 50, 30, 7, 25, 64,174, 0,129,217,145, 24, 73,213, 76, 21,137,221,172,138, -156, 53, 39,226, 32, 44,224, 84, 67,182, 8,232, 69,209, 9, 5, 29,144, 98,136,129, 61,151,148,179,187, 71,105,220, 61,151, 84, -212,154, 24,145,196,181,212, 17, 13, 0,177, 72, 46,201,212, 34,133,210, 84, 5,180, 35, 18, 5, 46,106,194, 92, 23, 41,255, 31, - 83,111,246,107, 89,118,223,247,253,166,181,246, 62,231,220,169,110, 77, 61,177,155,221,236,230,212, 77,113,104, 42,164, 38, 90, -180, 68, 74,138,230,200,178, 76,203, 3, 20, 36,182,131, 0,142,147,135,188,229,111, 9,144,135, 0, 14,144,135, 24,182, 3, 36, -134, 96, 41, 78,160, 64, 18, 41, 90,108,146,221,236,238,170,174,233,222,170, 59,223,123,134,189,215,250, 13,121, 88,251,182,242, -218,168, 70,221,170, 58,103,239,181,126,191,239,247,243, 1,110,144,203,230,138, 1, 85,133, 86,163,157, 2,215,200, 44, 77,168, - 93,116,100,144,220,117,102, 6,136,169, 25, 58, 17,219, 42,200,171, 18,147, 8,154,218, 52,133, 15,147,128, 82, 6, 34,234,115, - 54, 51, 34,110, 57, 18, 47,213,131,102, 93, 10, 34,211, 10,224,110,200, 73,220, 13, 98, 90, 63, 68,152, 8, 1, 66,232,100,123, -176, 86, 89, 64, 0, 98,117, 4,116, 32,102,134, 36, 19,243,121, 83,212, 67, 83,218,110,148, 56,181,106,206, 16,144, 36, 59, 70, -131, 0,184, 41,130, 7,130,186,183, 40,136, 90,101,100, 78,220, 34, 39, 76,220,166,209,230,138,128, 68,217,180, 52,202, 16, 96, - 14, 85,128, 72, 93, 50,167,208, 34,146, 34, 92,155,201, 64,114,120, 32, 57, 48, 1,132,186, 67, 0, 18,115, 22, 87,173, 86, 37, - 9,139, 68,160,186, 77,230,172, 0,249,227, 63,253,211,220,165,121,215,239,110,109,205,231,139,221,157,157,197,124,103,177,181, -181,187,183,151,250,174,235,251,148,186,220, 9, 68,154,207,231,187,123,123,170,182,217,172,202,184,185, 60, 63,119, 12, 65, 20, -114,225,137, 85,131, 8,200, 48, 73,236, 38, 98,134,181,192, 74,211,241, 97,180, 96,179, 95,199, 43, 39,194, 87,155,185, 32,130, -131,239,236,110, 31,221,123, 88,117, 95,174,213,221,173,165, 52, 61,160,145,221, 26, 68,144, 32, 16, 16,205,157,193,193, 1,101, -130, 40, 0, 52, 96,219, 4, 33,160, 22, 52,105,187, 96, 64, 68,129,246,241,155,124, 38,209, 36, 18,129,136,172, 17,115,238,178, - 71, 44,250,244,225,143,126,240,167,223,255,201, 47,126,227, 27,175,127,230,245,245,249, 41, 0, 2,231,112,167,180,232, 22,219, - 58, 86, 71, 87, 51, 76, 57,144,176,239, 72, 4,220, 16, 9,193,235,102,195,196, 57,117,255,246,143,255,228,173,183,190,242,250, -235,175,156, 28,157,236,188,112,215,172,145, 6, 56, 60,190,240,213,159,190,255,222, 15, 47,206, 79, 23,243,157,249,108,113,235, -185,231,182,118,247, 46,207, 15,206,142, 15,111,221,121,161,140,101,255,185, 23,158, 61,122,216,229, 57, 18,133, 25, 32,153, 22, - 69,100,186,134,104,182,111,117,202, 96, 14, 72,225, 30, 30,230,134, 41,147, 25,160, 3, 6, 49, 89, 45,238, 1,194, 72, 9, 37, -185, 57,215, 53,212, 97, 0,183,178, 44,195,248,189,255,231,143,143, 79, 14,111,239,236,212,112,115,168, 90, 54,155, 58,150,113, -185, 30,114,226, 78,242,106,179,254,196,238,237,203,203,163,251, 31,124,127,177,189,245,133,175,252,194,211, 39,143, 60,120,172, - 64, 56, 82,240,108,247,246,233,241,195,213,234,108,185, 60, 15,128, 50,172, 16,224,224,244, 36,229,156, 68,170,151,229,114,181, - 92,175,139, 87,173,182,189,232, 54, 1, 87,171, 43,139,168,102,179,174, 87, 95,247, 41,153, 51, 39, 6,226, 87, 94,124,254,181, -215, 94, 83, 74,191,247,220, 11, 16,174, 16,165,142, 90,199,113,181, 60, 59, 62,126,116,240,248,193,227, 71, 31, 61, 62,184, 92, -173,135, 50,158,158, 95, 62,122,122,220, 17,254,179,223,254,213,127,240, 59,191,182,191,179,120,122,126,118,178,186, 58, 60, 63, -255,196,173, 29,158,207, 55, 79,142,120,208,151,111,237, 49, 83, 56, 32, 79,208,217,196, 73,221,139, 25, 95,131,241,218, 6,169, - 69,109,189, 24,113,184,180,213,253,148,160,136,198, 31, 69, 12, 8, 98, 9, 7, 68,176, 50,157,230, 26, 38,189,169,227, 20, 92, - 36, 17,139,153,181, 10, 7, 6,170,105,195,168, 66,192, 44,243,212,150, 72, 20,246, 49,129, 15,194, 33, 80, 9, 9, 69,208, 52, -194, 9,201,213,135, 24, 51,165, 64,172, 97, 80,161, 49,178,167,188,183, 7, 80, 80, 96,173,230, 94, 83, 74,132, 52,161,193, 1, -217,193,205, 37,117,209,142,232,225,200, 28, 1, 85, 71,225, 52,209, 61,152, 89, 68,171, 66, 4,183, 13,167, 27, 34,166,148,219, -190,138, 16, 26,101,132,152, 60,160,106, 5, 15, 68,114, 68,230, 52, 89,152, 34,180, 26, 33, 57, 26, 11, 91,107,182, 52,154, 43, - 68,120,157,112, 82, 0, 0,193,146, 56, 9, 19,171,170,155, 39, 78,208,228,210,140,110,225,209,210, 55, 19,208,150,168, 29, 91, -167, 15, 57, 94, 79, 38,219,179, 65,195,152, 25, 0, 85, 43, 65, 8, 35, 18,123, 27, 60, 54, 18, 46, 88, 29,170,244, 25,128, 35, -130, 33, 12, 92,125, 2, 43,182,161, 47, 39,110, 89, 76,143,136, 0,134, 96, 33, 32,177,240,246, 67, 95, 93, 45,133, 33,245,194, - 34,166,129,129, 94, 3,165,249, 95,155, 61, 46, 16,136, 25,209, 1,194,204,130,136, 72, 50, 66,104, 53,145, 22,133, 3,135,118, - 74, 99, 8, 55, 31,153,165,169,172, 32, 90,148, 9,221,130,192,155,143,187,185,151, 27,173,195, 61, 4,145,157, 7, 51,140,198, - 59,112, 68,162,156,146, 66,120,152, 26,147,247, 93, 30,134, 49,204,153, 80,190,241,181,183, 15,158, 62,123,124,112,248,240,234, -106, 40, 37,194,183, 23, 91, 59, 91, 91,251, 55,246,119,118,182,183,183, 23,187,219,251,243,237,157,196,221,108, 49, 19, 17, 38, -217,222,218,229,221,253,155, 55,159, 87,171,155,245, 48, 12,235,112, 55, 27,173,110, 34,106, 22,206, 57,220,131, 88,108, 2,233, - 77, 63, 71, 59,134,160,249,100,226,152,248,235, 24, 17, 50,225,120,193, 44,114,146,197,188, 59, 95,110,110,109,119, 45, 42,211, -152,170,222, 34, 93,161, 19,174, 2, 0,194, 0,161,253,175, 40,132, 24,230, 6, 36, 13, 82, 54, 29, 17,136,166,142,171, 87,159, -136,193,136,212,204, 29,136,215, 28,133,198,155,103,162,178, 25,231,139, 57, 3, 60,249,240,189,127,253,239,255,195, 23,223,250, -242,155,111,188, 54, 14, 35,112, 6,173,156, 50,231, 25,162,131,187,106,177,198,233, 40,163,100, 67,112,100,118,171,121, 54,179, - 97, 8,194,157,189,189, 31,127,239, 47,223,123,255,209,127,255,223,252,238,197,233,113, 90,100, 97,118, 51, 64, 64, 22, 85,191, -177,183,247,234, 27,159,125,116,239, 39, 55,246,110,108,237,190, 34,204,171,229,197, 48,214, 39, 79, 30,237,111,223, 8,139, 82, -108,107,247,198, 48, 14, 61,205,166,198,237,100,248,248, 88, 91,229,193, 34,253, 44, 26,150, 69,192,134,145,136,221,172,253,249, - 41,119,220,229,178, 41,110,181,245,137, 67, 29,220,211,124,143,242,130, 37, 13,101, 20,162,207,126,225,205,245,213,217,241,249, -217,249,122, 68, 4,173,181,150,162,238, 85,117,167,203, 44,189,137,188,255,254, 15, 86,155, 53, 11,219,184,153,205,183,250,249, -206,197,197,249, 98,239,206,197,217,193,124,103,215, 93,239,220,121,249,226,236,116,123,107,103,121,117,190, 53,223, 94,174,175, -158, 93, 45,133,133, 17, 41,245,165,140, 59,123,187, 96,245,234,106,244,136,205,102, 77,132,243, 52,171,181, 50,182,203, 40, 49, -161,123,168, 90,223,117, 15, 63,250,112,239,185,151, 56, 37, 83,211, 97, 53,174, 87, 87,103,167,199,199,199, 15, 30, 62,124,239, -163,251, 71,199,231,155, 90, 86,171,213, 71, 7,135,231,231, 87,223,248,242,155,255,245,119,126,247, 75,159,251,244,179,227,167, -239,125,248,116,137,120,121,126,118,114,118,126,244, 23, 23, 87, 71,231,183,247,182,230,243, 57, 64, 32,178,136,144,144, 89, 8, -231, 70,160, 16, 33,119, 79,204,102,142, 2,104,100, 94,195,175,129,163,238,200, 60, 5,242, 90, 75,226,154, 90,205,130, 0, 92, -171,181, 70, 49, 32, 82, 22,112,212, 98, 8,145, 58, 2, 0, 83,205, 57,213, 90, 27,247,209,204,155, 97,192, 32,138,198, 52,107, -107, 55,220,198, 83,181,246, 48, 65, 34,113,173, 17, 17, 34,161,134,130, 9,154,164, 59,232,186, 23,208,178,145,224,222,222, 10, -230,110,102, 57,165,118,105,189,158,120,212, 0,228,196,225, 22, 24, 17, 46,204, 22,142, 36, 68, 30,136,166,165,203,125, 0, 14, -195, 64, 4, 93,215, 67, 64,173, 37,144, 72,200,205,163,181,226,117, 20, 22, 70,241,176, 90, 74, 98, 65, 22,191,118,204, 16,160, -185,171, 25, 34,160, 80,173,154,115, 70, 9,100,210,162,110, 74,200, 0,102,109,169,214, 94, 9,136,110, 97, 86, 91,241,202, 3, - 32,220,220, 91,104,169, 21,214,219,219,179, 77,204, 90,116,131, 82,246, 98,225,154, 19,155,135,155, 19, 51, 35, 27,184,155,183, -208, 85,139, 68, 91, 53, 17,140, 32, 15, 39,100,103,104, 14, 5, 73,169,140, 5,145,160, 65,180, 2,129,176,235, 58, 53,213,170, - 1, 24,104, 4, 20, 14, 97,209,132, 24, 64,176, 92,143,227, 48, 60,119,123,191,253, 35, 34, 9,154, 75, 38, 8, 68,230,128, 32, - 11,243,218, 42,176,147,110, 8, 67,195, 19, 10, 2, 19,215,214,155,111,114,105, 45,181, 29,103,113, 26,211, 7, 49, 17,182,196, -145,179, 96,173,209,152,145,140,172,174,211,214, 23, 16,131,138,141, 12, 0,196, 30,198,142,210,177, 70,123,109,182,137, 55, 89, - 85, 12, 37,102,168, 32,159,250,228,107,175,191,246,170, 59,184,235,249,201,201,195,167, 79,159, 62, 59, 58, 60, 61,125,114,120, - 16,128,179, 89,191,179,181,115,251,230,205,155,251,251, 55,118,183,187,110,214,247,243, 60, 91,116,253, 98, 54, 95,244,125,151, -115,183, 29,139, 90,107, 25,107, 45,117,216,172,199, 97,117,177, 92, 51, 70,223,185, 16, 16, 7, 34,135,217,180,180,106,201,198, -235, 23,111,131, 88,127,220,166, 67, 64, 2, 7,164, 27, 59,187, 7,103,151,183,182,238, 76, 15,247,233, 97,110, 72,220, 10, 77, - 31,123,138,193, 3,184, 97, 53,166,230, 18,134, 55, 93, 77,227,227, 35, 53, 58, 54,121, 24,182,226, 56, 33, 32, 24, 52,163,192, - 20,247, 81, 0,138, 32, 2,183, 1,189,223, 44, 47, 63,120,112,255,197, 23, 63,241,245,183,191, 52, 84,107,252, 27,234,250,234, -216,177, 72,202,170, 22,181,130,123,212, 66,136,161, 69,182,246, 8, 28,153, 77,199, 50,174,186,249,108,184,186,248, 31,255,229, -255,250,181,175,190,253,220,115,183, 86, 21,246,238,220,209, 82,154,211, 5, 8, 33, 40, 40,127,250,205, 47,126,248,222, 59,155, -113, 68,132, 15,222,251,209,159,255,249,159,125,238,115,111, 94,158, 94,222,217,191,253,242,235,175,255,228,135,239,188,240,242, -171,227,229, 89,238,187, 86, 82,192,107, 5, 78,219, 51,187, 27, 73, 74,204,238,225, 90,128,176,108,198,220,231, 90, 85,152, 48, - 76,114,111, 69, 91, 58, 35,188,134, 75,115, 53, 72, 2, 17,166,212,153, 7, 32,220,185,245,252,171, 47,125, 98,184,121,227,163, -255,248, 67,136, 40, 99, 57,191, 56, 91,173,134, 97, 24, 95,190,181,143, 48, 44, 55, 60, 95,236,222,153,221,126,237,115, 63,181, - 94, 45,215,171,165, 72, 42, 87,199, 35, 0, 5, 18,145,214,225,233,211,135, 1,120,121,118, 52,155,111, 11,225,241,229, 37, 80, -234,115,214, 90,189,214,113, 24, 74, 25,102, 89,152, 98, 51, 12,101, 24, 61, 2,197,144,168,134, 7,184, 71,168,250, 98,158,255, -224, 63,253,246, 47,253,252,127, 50,142,155,171,243,227,156, 23,230, 49, 46, 47, 46, 46,206, 30,220,255,240,199, 31,222,127,122, -124,116,118,121, 53, 12,227,229,114,117,239,225,193,238,188,255, 31,254,139, 63,252,253, 95,255, 22, 99,252,232,135,239,228,221, -157,243,205,234,236,244, 98,179, 25,234,106,179,221,245, 55, 95,184,131, 68,104,237, 9, 12,205,139,134, 52,149,239,153, 80,161, - 97,202, 32,194, 19, 74,227, 16, 4, 2, 72, 96,147,127,186,123, 32, 17, 16,139,155, 19,132,134, 19, 2, 26, 96, 96,151,164,213, -154,104,194,120, 80,238,179, 71,148,106, 57,101, 36,175, 85, 53, 66,152, 28,192,195,147,100, 10, 12,110,136, 61,143, 8,100,116, - 11, 4,111,167,228,246, 6,183, 80, 22, 46,155,226, 49, 18,161, 32,183,248, 5,241,244, 97, 71, 64, 34,244, 0,183, 0,108, 69, - 89,144, 36, 13, 62,211,190, 92, 17,192,194,224,224,225, 49,201,206, 80,221, 39, 53, 12, 34, 6,164,156,195,194,180,144, 16, 33, -170,150,169, 46,200, 72, 72,196,228,228,196,220, 10,178,181, 86, 68, 17,142,143, 59,130,215, 74, 5, 0, 64, 55, 99,230,176,224, - 22,151, 0, 52,117, 12, 32,150,240,112, 11,164,212,242,120,216,122, 3, 83,216,218,107, 0, 79,188,231,105, 30,141, 33, 30, 74, -237,204, 30,224, 14, 44, 2, 96, 90, 75, 83, 71,140,163,166,204, 73,216, 2,204, 44, 8,115,154, 97,128, 90, 49,115, 66,194, 28, - 17,110,213,145,201, 27,183, 22, 57,204,212,131,169,193,103, 3, 60, 82,151,155,171, 36, 34,104,241,204,182,221, 0, 0, 32, 0, - 73, 68, 65, 84, 50,202, 74, 0, 6, 53, 87, 39,180,142,230,122, 51,246,130,146,164,140, 85, 36, 1,121,146,172,166,222,184, 49, -196, 68,232, 70,101, 28, 89, 4,145,219, 76, 79,152, 48, 0,208,167,248, 3,128, 59,154, 41,114,107, 48,112,184, 1, 97, 18, 81, - 13, 36,144, 44,181,148, 90, 42, 2, 16, 11, 0,154, 43, 76, 91,229, 8,119, 12, 3, 10, 78,169,170, 11, 34, 50,213,162,237, 95, -146,129, 29,161, 12, 42, 12, 17,228, 90, 74, 45,178,218,172, 33,188,185,235,182,119,246,126,234,230, 62,253,212, 23,163,234,217, -217,233,211,211,211,199,135,135, 79, 14, 15,239, 63,184, 79,156,111,236,237,221,222,223,219,223,219,219,221,221, 89, 44,182,182, - 22,219,253,108,187, 95, 44,250,190,207,125,223,229,156, 89,230,243,153,199,141, 90,107, 29,198,106,101, 24,149, 3, 50,103, 7, -191, 90, 93,172, 86,103,183,110,110, 45,114, 2, 39,119,143, 9, 67,214,232,208, 0,225,237,236, 82,107,204,102, 51, 59, 60, 42, - 22, 66,134, 32, 83, 76, 61, 38,127, 35, 4,120,212,169,199,132,129,147,174, 30, 24,169,145,239,169,149,189,175,219, 85,237, 95, - 18, 38, 0, 65,160, 67, 27, 11, 54, 88,205,148,173, 12, 0,242,196,226, 29, 94,158, 60, 59, 89,157,127,237, 27, 63,127,121,124, -190, 90,173,250,173,109, 27,174, 80,122, 40,235,192, 12,179,222,172, 2,184,121, 73,121,134, 44, 40, 57,172,230,174,115, 47, 4, - 62,174, 75,191,216, 22,240,127,243,111,254,213,106, 83,127,253,151,126, 97, 53,140,219,119,158,107,177, 82, 1, 12, 96,176, 64, - 68, 29,134,231, 94,122,249,147,159,250,236,225,163,251,125,206,167, 39, 71,175,190,246,250, 11, 47,188,248,253,239,126, 23, 2, - 95,255,244,107,183,246,111, 61,254,232,253,221,189,155,195,114, 53,219,222,134,107,174,231,100,129, 96, 10,183,220,207,145,194, - 55, 3, 48,219,104,121,214,139, 80, 25, 43, 1,200,108,166, 99, 9, 0, 2, 48,102,208, 26,227, 50, 80, 48,247,110,224, 58, 98, - 90, 16, 98,189,186, 40,235, 43, 52, 93, 23,221,212,130,128, 87,155,205,217,197,229,114,189,254,196,173,173,189, 25, 31, 45, 55, - 47, 60,255,234,222,206,222,209,211, 7,227,234,234,226,248,201,106,244,126,107,111,121,113, 36,253,182, 90,192,169,162,235,234, -242,196, 41,111,198,138,172, 8,113,190, 41,243,126,190, 25, 87, 73,186,182, 46, 41,101,116,243,198,111,185,113, 99,239,252,242, - 50,179, 64, 66,211, 2, 41, 47,175, 46, 95,253,196,243,255,252,143,254,209,215,190,246,181, 82,198,213,114, 57,172,151,195,106, -163, 58,158,159,157,188,255,193,253,247,238,221, 59, 62, 61, 27,138,110, 54,155,103,199,103,151,203,171,191,253,149, 47,252,139, -255,252, 15, 95,125,249,133,163,195, 67, 89,116, 31, 28, 60,125,107,127,175,223,217, 58,254,224, 1,215,122,107,123,209,212, 53, - 0,172, 48,148,177, 70, 56, 51, 7, 36,145, 68, 64, 14, 17,141, 78,218, 54, 94,129, 86,219, 22,167,169,201, 24, 17,192,241,122, -181,195, 85,107, 76,189, 15,180, 8,110,162, 68, 70,210, 9, 32, 64,128, 66,220,102, 45,185,133, 28,213, 88,146, 32, 71,184, 8, - 19,144,123, 88,120, 67,156,183, 20,159,169,122, 68, 0, 36,225,118,215,100, 98, 10,115, 85,225, 22,107, 15, 11, 71, 34, 78,226, - 30,200, 83, 58,182, 61, 18, 27, 86,144,166,181, 39,180, 90,109,251, 54, 17, 50, 0,154, 42, 8,119,185,175,117, 8,136,102,193, - 70,194, 68,201,205, 90,126, 25, 25,132, 69, 75, 37,118,206,217,195, 39, 22, 43, 0, 51,139,176,121,140,181, 50,145,187, 18,147, - 90, 48, 33, 34, 52, 68, 76,132, 33,114,171,156, 71, 56,181, 26, 57, 54,207, 66,152, 59, 18, 74,202, 77, 87,216,208,179, 44,210, -218,172, 77,120, 20, 0, 64, 70,200, 83, 67, 31,140,144, 66, 13, 9, 2, 27, 60,189, 76,238, 53, 68, 64, 16, 33,102,174, 85, 3, -144,152,186,220, 69,120, 41, 21, 66, 33, 16,168,173, 25, 0,192, 32, 60,145, 20,213, 64,119,109,127,210,169, 28,139,220,142,207, - 94,171, 33, 50,146, 55, 34,200,212,165, 20,214,162, 44,162,170,195,102,216,153,117,222,238,207,141,254,125,173,163, 64,132,148, - 68,171,185,153, 52,248, 59, 70, 51,116,154,153,185, 77,135, 50, 38, 43, 26, 4,194,164, 13,232,105,149, 17, 17, 88,189,245, 34, - 98,162,237, 2,185,155,155, 18,101, 68,134, 48,132,168, 85,153,200, 60, 56, 0, 57,132,177, 97, 87, 26,236, 63,144,180, 26, 81, - 36, 97,117, 51,213,148, 36, 89, 11,171, 2, 6,132, 69,128,147, 85, 67,221, 32,242, 98,123,231,141,253,189,183,222,124, 75, 16, -206,175, 46,238,127,240,193, 59,247,238,221,123,248,224,199,239,127,152,178,108, 47,182,110,221,216,219,219,221,219,223,219, 91, - 44, 22, 59,187,123,243,249, 34,247,115,150,148,243,108,190,216,162,157,157, 6,134,209,234,204,108, 14,227,176,119,244,172, 59, - 95, 46,215, 52,166,140, 61,113,110, 34, 87, 8,100, 66,240,150, 64,167,134, 4,148,188,183,179,181, 30,203,222, 34,181, 71, 54, - 34,181,137,121,248,245,147, 61, 0, 88,176,145, 44,209,137,200, 52, 38,136, 24, 65, 99,239, 33,183,174, 76,155, 18, 5, 0,145, - 91, 75, 72, 48, 95, 19,222, 9, 49, 16,173,129, 14,160,212,205,179,203,243, 87, 63,251, 26, 83,108,223,222,218, 44, 99,181,220, -204,102, 11, 18, 65, 76, 20,144,183,119,221, 85, 40,113,154, 5, 9,184,135, 43,138,232,184, 34,196, 97,216, 80,238, 82,146,195, -251,239,255,249, 95,189,255,135,191,255,123, 73, 88,187,158,187,174, 53,159,213, 29, 96,104, 50,132, 70, 87,250,242, 79,255,252, -255,252,131,239, 59,124,184,152,205, 36,119,247,239,189,127,181,186,250,241,251, 87,175,125,234,213,215,222,124,171,190, 99,194, -178,186,186, 76,243,121,106,189,187,192,112,100, 22,112,143,136,212,205, 81, 18,118,238, 99, 69, 34,166, 40, 99, 97, 65,192,208, -128, 8, 64,150,192, 64,107,230, 68,129,136,136, 66,210,215,113, 73,146,162,223,215,113, 24,175, 78, 49,236,108,189,118, 11,143, - 56, 59, 59,119,179, 27, 91,189,107,253,127,127,252,224,230,206,246,247,222,253, 32,103,153,117,249,253,143, 14,175,134,243,187, -119, 95, 38, 76,243,188, 72, 44, 8,176, 41,117,119,177,131,116, 98,102,139,237,155,106,163, 41, 93,172,135,138,148,146,128,133, -106,233,103,179,186,172,151,203, 37, 0,119, 73,246,119,118,181,120, 68,237,115, 62, 60, 58,234,186,254,183,126,249,231,254,232, - 59,127,255,149,215,222,216, 12,197,124, 29, 4,195,122, 88,175, 86,231,151,103, 31,220,255,232,222,253, 71,151,235, 85, 25,245, -248,226,236,236,244,252,246,141,253,127,254,157,223,253,157,223,248,213,205,102,253,215,127,245,221,221, 87, 94, 56,121,252,232, -240,228,100,118,255,193,187,239,188,255,226,205,221,173,221, 45, 55,107, 46, 60, 34, 24, 6, 93,111, 54,128, 48,235,250,156, 8, - 81, 80, 40, 98,154,194, 38,193,234,138,212, 26,111,112,109, 31,117,107,192,151,107, 89, 82,120, 16, 49,139,104,169, 16, 54, 26, -176,200, 44, 39, 3, 43, 69, 73, 48, 0,204,157, 68, 72,216, 84, 93, 3, 39, 61,186,229,190,183,170, 45,254,208,224, 33, 72, 40, - 76,238, 14,146,217,194,194,105, 50,190,131,183,133, 47,147,106,101,226,246, 8, 69,154,202, 38, 31,179,191,219,248, 8,152, 24, -201, 49, 8, 39, 94,147, 89,109,154, 73,119, 13, 13,100,132,208, 82,134, 86,250,103, 34, 4,110,169,237,191,185, 14,186,215, 90, -136,145, 19,155, 90, 4, 52, 57, 52, 49,185,251,176, 41, 44, 41,137,120, 4, 3,163,112, 47,160, 90, 39, 21, 90, 4, 17, 88,173, -125,206, 85,107, 75,240, 34, 37,104, 69, 19,226, 0,224,102,113, 14, 84,215,198, 37, 38,136, 10,128,156, 90,153,133, 24,181, 90, - 43,153,146, 16, 19, 91, 13, 35,107,121, 49, 55, 37,102, 66,210,170,146,152, 57,212,124,220, 12, 73, 36, 18, 3,248,176,222, 64, -227,163, 7, 49, 77, 90,206, 8,146, 28, 30, 80,213, 68,196,194, 68,184, 93,130,167, 67,143,169, 85,101, 17,145,220,116, 19, 17, - 32, 44, 85,171,154, 99, 4, 17, 3,194,106, 61,100,225,189,253,189,166, 44,132,152, 10, 55,140,172,104, 17, 81, 74, 37,162, 60, -235, 74,209,128, 72,196, 1,160,166,100, 33, 89,134, 90, 5, 49,108, 2,252,154, 58,128,103, 17, 55,115, 87, 2,106, 23,148, 0, - 5,228,118,188,104,151, 69, 0,114, 85, 55, 35,196, 44, 98,225, 57, 33, 73, 87,107, 69, 55,238,103,161,218, 86, 70,156,176, 95, -204, 54,101,116, 45,140, 72,125,102, 78, 56, 20,153,134,207, 77,164, 29,147, 26,140,154,135,195,108,117,121,238, 68, 89,228,173, - 47,124,241,203,111,127,101,181, 92, 30, 28, 30, 62, 60, 60, 58, 60, 60, 56,120,246,244,254,163, 71, 0,188,187,181,189,191,191, -123,247,230,222,214,206,238,206,214, 78,215,207,231, 59, 59,219,243,109,201, 57,229, 60,155,205, 49, 9, 33,206,102, 93,151,187, - 97, 24, 46, 47, 46,134,178,190, 24,171,219, 72,110, 34,209, 51, 37, 1, 73,146,120,234,145,162,199,238,206,206,209,197,250,230, -206,204,220,176,125,108, 91,179,116,242,138,180,145,186, 57, 76,182, 23,188,118,180, 54,247, 0,182,185, 26,112,184, 33, 18,160, - 18,101, 0, 2, 97,208,128, 54, 55,107,159,109,181,233,178, 11, 16,225,121,158, 94,125,227,213, 46,241,184, 41,148,120,177,213, - 93,148,203,177, 32,149,113,247,198,110,120, 3, 84,160,150,209,170, 82,219,254,154, 5, 49, 98,251, 90, 66, 55,235,125,117,245, -151,223,253,222,167, 63,253,249,183, 62,243,201,139,243,203, 59, 47,188,236, 86,218,211, 2,136,133, 59,183, 64, 68, 33,172,181, -236,222,218,255,202,215,126,246, 79,254,221,255,190,181, 88,228,156,250,126,254,226, 11, 47, 60,125,250,236,254, 7, 31,204,102, -139,155,119, 95,248,241,247,255,226,185,187, 47,143,235, 43, 33,226, 44, 13,111,108,181, 54,235,227,100,122, 84,215,170,121, 62, - 99,166, 90,215,161,225,140, 48, 86, 98, 4,114,171, 26,213,180, 42,231,140,109,195, 28, 53,165, 29, 78,253,120,254, 76, 55, 27, - 34,114,247,195,211, 51,243,152,119,233,242,234,162,140,195,211,211,139,139,229,234,108, 57, 84, 15, 64, 94, 46, 47,199,113,204, -249,131, 62,119,221, 7,143, 5, 2, 48, 4,202,214,246,222,238,214,222,140,160, 79, 98, 97, 12, 39, 93, 39, 15,151,171, 71,207, - 78,247,111,221, 14,117, 6,154, 44,230,200,225,136, 8,203,245,230,206,205,189,157,237,217,217,121, 57, 57, 63,187,123,235,230, -111,127,251, 91,191,247,155,191, 57,223,217, 91, 13,155,208, 90,198, 90, 54,195,197,213,213,225,225,147,251,143, 14, 14,143, 79, -150,155,245,114,189,121,244,248,233,114,189,252,214,215,191,250, 79,254,224,119,222,120,253,211, 79, 30,126,180, 28, 47,159,156, - 28, 63,187,186, 24, 71, 37,247,227,123, 15, 95,123,110,191,235,187,112, 96, 78, 65,145, 36, 87,171,110,134, 64,136, 18, 64, 72, - 41, 0,107, 41,237,219,154,128, 75,177,182,196, 67,196,106,198,136,128,232, 62, 65,247, 2,177,152, 39, 64, 74,108, 26, 94, 11, - 11,187, 17, 35, 8,163,154, 33, 97,238, 82, 76,149,121,105,218,131, 8, 32,166,208, 42, 50, 11, 36,173, 10,238,128,236, 97, 77, - 11,134,209, 50,231,192, 14,197, 93, 36, 5, 24, 18, 69, 91, 80,121, 4, 4, 17, 86,171, 89, 50,226,199,122,163, 96, 36, 15,107, - 73, 52, 18, 1, 36, 66,200, 68, 49,153,206,130, 37, 69,184,107,109,174,204,128,104, 49, 33, 68, 76,194, 16,164,166, 97, 78,109, - 80,133,100,234,136,200,137,220,204,140,194,189,105,155,136,200,204,144,128, 83, 2,143, 0,247,176,156,102, 13,148,220,120, 31, -161,214,254,226, 28,172, 81, 39,195,220,209,136,164, 81, 41, 1,160,203, 57, 92, 77, 43, 0,112,227,106, 4,168,161,176, 4,161, - 59, 32, 57, 70,251,217, 0, 8,219, 16, 99,226, 25,168, 82, 91, 48,154, 65,162,156, 19, 49,169, 42, 34, 72, 74,128, 16, 85, 53, -130,137, 63,214,117, 70, 0,132, 83,151,201,195, 45,188, 22, 64, 48, 0, 17, 65,156,222,172, 16,232, 86, 16, 33, 9, 3, 35,128, -154,129,228,228,181,182,222, 90,179, 84, 71,168, 41, 12,235,205,206,206, 28,136,155,246,190,129,101,205,161,186, 97, 43,102,122, - 4, 56, 1, 9,139,187,186, 59, 18,117, 93,246,170, 85, 45,170, 66, 22,143, 64, 22, 36,119,119, 78,226,106,215, 22, 38,182, 82, - 72, 18, 64,154,196,209, 0, 72,216,198,170,109,154, 10,230,230, 83,255,174,150,129,137, 81, 18, 52,129,181,131,100, 6,193,106, - 74,216,186,244,198,141,232,145, 89, 32, 90,191,184, 97, 35, 39,149, 93, 0, 16, 55, 38, 41, 50,160,123, 12,155,245, 56, 34, 51, -191,244,194,139, 47,191,252,178,149, 58,214,122,185,188,122,252,228,240,222,131,199, 31,222,255,240,157,247,116,103,107,251,206, -237,155,183,247,110,108,109,111,221,216,219,221,221,221,159, 47,182, 23, 91,187,243,237,173,190,235,171,142, 14,150,102,249,134, -220, 80,157,107, 51, 23,140,101, 28,135, 85,173,161,234,235, 26,166,130,206, 76,139,153,206,146, 92, 93, 94,192, 75, 55,187,196, -222, 90,179,166,128,224,244,255,115,103, 67,203, 89, 57, 4, 5, 70,251, 72, 53, 97,103, 88, 0,122,152,145, 72, 75,212, 0, 50, -184,181, 69,111,139,243, 52,116, 42, 10,121,131,191, 19, 6, 64,206, 25, 49,180, 86,108,188, 10,211,221, 27, 59,231,103,231,203, -139,186,127,247, 57, 34, 78, 76,225, 96,166, 77, 65, 99,170,102, 99,238, 59, 70, 30,215,155, 60,159, 11,243,241,225,193,159,191, -243,254, 63,250,131,191,123,124,248,228,246,167,222,252,216, 87,235,227,128,130, 22, 53,204, 56, 11, 10,133,177,187,126,241,171, - 95,255,193,119,255,114,117,117,177,179,179,187,189,179,219,160,158,143,158, 60,189,115,243,254,141, 23, 63,201, 36,253,246,118, - 45,235,205,122,185,197, 55, 90,125,105,106, 2, 3,165,173,173,112,133, 90,242, 44,179,112, 45,163,135, 77,145, 85, 66, 36,114, - 51,175,213,106,109,178,152,230,220,212,170, 72,168,171, 11,168,107, 2,179,205,250,236, 98,121,190,222,188,180, 63,103,240,139, -171,101, 41,117, 40,234,238,235,205,122, 44,155,253,157,253,190,239,198, 90,170, 57,150,178, 30, 70, 11, 55, 83, 70,196,179, 21, -211,179, 81, 71,114,220,217,158,119,210,213,186, 73,156, 66,100,189, 90,237,236,237,113,224,184, 30, 55,101,221,229, 57,241,170, -140,163,131,175, 86,155,139,245, 82,178,124,243,203, 95,255,245, 95,253,246,167, 94,253, 84, 32,173,214,203,178, 89,175,150,203, -243,211,147,229,106,245,224,201,163, 15, 31, 60,185,184,186, 28, 85, 79,207,206, 31, 60, 57,248,220,203, 47,255,195,223,249,199, - 63,255,245,159, 6,175,167, 87,167, 31, 61,123,184,152,245,119, 95,121,233,199, 63,120,119, 60, 95,110,207,186,221, 69,215, 82, - 98, 41,229, 73, 64, 44,109,188, 77,205,232, 38,146,212,172,225, 94, 5, 81,205, 21,221,193, 1,200, 44, 48, 65,151, 72,181, 77, - 97,128, 36,143, 99, 33,114, 97,108, 53, 91, 33,242,128, 8,231, 46,145, 69, 45,222,205, 16, 35,128, 5, 29,136, 34,220, 34, 64, -114,106,246,177,212,119,166, 58,225,199,144,152, 24, 3, 61,204,219, 99, 17,128,136,172, 5, 35, 29, 16,209,109, 66, 86, 33,120, - 85, 35, 71, 17,153,212,193, 24,102, 14,132,238,134,136, 30, 17,224,140,210,192, 80,118,189,143,108,199,160, 54,196, 3, 68, 7, -100, 22, 64, 96, 78, 17,230,230, 30, 22, 1, 36,140, 17,136, 17, 4,196, 28, 22,174,214,224, 78,204,137,137, 17, 67,205, 89, 24, - 1, 61,188, 53,182,144,219,253, 47, 8, 17, 5,205, 60,245, 73,213, 16,177,239,250, 82,149,164,253,166,212,166, 31,196,130,142, - 90, 10,113, 16, 49, 64, 48,114, 49, 3, 0, 73,140, 66, 0,200,102, 22,232, 22,204,212,242, 69,209,214, 27,173, 69, 15,228, 17, - 44,220,254,230,171, 57,121,211,218,229,112,141,136, 36, 18,234,225,222, 72,136, 44, 66,136, 22, 14, 22,225,218, 36,165, 45,150, - 29, 17, 76, 4,130, 90, 21,192,152,164,173,208,107,177, 89,159,152,195,106,109,213,178, 78,196,205,212,205, 35,170, 6, 49,205, -231, 91,129,228, 90, 3, 81,136, 85, 77,213,136,200, 32, 56,204, 29, 4, 25,168,177,145, 49, 33, 50, 75, 85,115, 15,130,144, 46, - 71, 4,185,223,253,212, 11, 44,242,240,135,239, 34,112,238, 58,173, 58,234, 72,225,148, 90,118, 66,152,167, 32,141,183,215, 72, -147,208,133, 99, 98, 17,114,211, 8,109, 92, 68, 11, 71, 69,102, 82,139, 58, 22,172,200,125, 70, 72, 24, 5, 52,144, 73, 82, 39, -162, 2, 24, 0,196,137,221,212,194, 1, 26, 77,173, 13, 58, 40, 38,216, 98, 4, 33, 96, 20,173, 4, 8,166,132,152,152,111,238, -221,184,181,191,255,246,151,127,202, 34, 78, 14, 15,254,226,175,127,244,193,131, 71,239,254,228, 39,187,219,187,119,239,220,190, -125,243,230,173,253,253,155,251,183,182,182,182,155,116,116,179, 90,113,151,152, 18, 19,139,116,121, 54,227,109, 42,195,198, 27, - 10, 24, 92,213,203,184, 41,165,174, 52,134, 0,173,254,215,239, 61,125,233,185, 61,230,152,117, 73,136, 82, 78,213, 44,212,112, -194,151, 5,160,180, 91,103, 76,246, 85, 0,128,152,100,193, 48,177,114,218,246,164,148,134, 90, 68, 73,237,118,118,109,118, 37, - 98,135, 41, 47,143,109,141,127,253, 6,112, 8, 15,192,253,219,123,103,112, 57, 44, 87, 55,238, 62, 79, 93,167,181,216,122, 21, - 1,198, 2,225, 41,247, 2, 94, 86, 35, 64,128, 43,172, 87,255,199,127,248,179, 55, 94,251,244,110, 39,105,107, 39,207,231, 54, -142, 32, 30, 1,216, 24,123,213,165,203,212,117, 94,171,107, 9,151,188,216,250,185,111,254,242,191,253,223,254,101, 68, 44,102, - 51,130, 4, 30,199,199,103,207,142,207,186,174,191,115,231,238,102,121,190,127,247,197,243,103, 79,106, 29, 83,154, 11,161, 7, - 33, 88, 4,116, 41,187, 69,235, 5,149,205,224, 30, 1,132,196,174,163,164, 4, 16,182, 41,170,149,187,121, 68,227, 55,145, 87, - 29,139, 42, 0,155,233,234,170, 92,157, 46,175,174,142, 47, 47,239,238,228,203,205,112,112, 49, 46,178, 97,132,154, 69,200,214, -108,203, 93, 75,217,172,198, 13, 98,131,154, 49,162, 33,128,180, 96, 9,162,170, 9, 97,215, 45, 82,234, 0,184, 4,123, 4, 3, - 28, 28, 31,207, 22,243,234,113,113,177, 52,119, 89,208,238,214,214,145,214,176, 56,190,188,204, 2,255,229,223,251,206, 79,191, -253,211,105, 62, 27,198,106, 58,142,195,112,121,126,126,177,188,124,118,116,244,209,227,199,143, 15,159,142, 69, 55,227,240,228, -240,217,249,229,229,175,125,253,237,255,246,191,250, 39,139,197,236,248,209, 3,185,177,251,222, 79,126,116,254,244,216,144, 30, -221,127,188, 55,239,110,238, 47,192, 9,130, 57,152, 56, 85,179,148,216, 53,170,142, 0, 48,155,247,195,166, 8,167,174, 79,227, -168,140, 2,204, 69, 45, 34, 28, 12,129,137, 33, 12,192,124,163, 38,137, 19,209, 88,172,216, 64, 76,137,147,155, 87,173, 41,139, -185, 49,145, 16,153, 6, 32,228, 76, 86,148, 37, 97, 43,103,134, 91, 53,164,112,165, 6, 38, 27,139, 50,177,224,199,210, 75, 10, -159,218,249, 85, 61, 53,159, 42,130, 16,170,151,143,101,146,197,172, 99, 70, 48,206,220,112, 20,141, 61,197, 8, 78, 1, 6,238, - 70, 36, 30,212,102,192,230,129,196, 44,201,106,153,200, 99,209, 20,217, 72,211,225,130, 81, 48,106,212,170, 57,119, 36, 92, 75, -117,117,206,210, 4, 74,142, 68, 64, 0, 42,196, 22, 54,106, 21, 78, 57,101, 11,131,118,117, 8, 8, 64,213,202,228, 0,168,224, - 8,200, 34,106,174,170, 76, 12,204,185, 75,170, 10,140,140, 12,224,161,230, 17, 30,209,207,186, 82,107,132,181,242,203,117,180, - 55,216, 80,193,155,218, 2, 34,204,195,195, 24, 73, 48,134,106,194,212,245, 93, 84, 5, 64, 48,168,161, 0,192,220, 0,159, 56, -169,158, 60,180,170, 2, 8,177, 67, 16, 51, 18, 34,178, 87,115, 31, 1, 0,157, 89,196,205, 82,226, 82,109,226, 4, 64, 8, 73, -245, 54,167,165,156,121, 24, 43,181, 59, 60, 1, 64,168,121,123, 46, 64,232, 82,199, 44,132,194, 76, 20,220,149, 82, 55,227,144, - 82,146,196, 13,126, 40,189, 80,117, 11,143,106, 57,119,125,238,116,172,131, 22, 38,206, 89, 34,124,189, 30,137, 41, 16, 30,127, -120,191, 23,161,148,193,221, 33,136, 69,196,220, 3,129,131,130,165,249, 91, 2,194,152,196, 28,204,106, 74, 12,152,195, 21,193, -221, 13,153,194,216, 74, 77,137, 83,206, 36, 51,201,166,227, 8, 68, 86,181, 73,138, 56,103, 13,199, 90,221, 84,166,171, 74,139, -163, 52,101, 7, 6, 77,171, 18, 14,155, 52,122, 13, 77, 76, 56, 5,162,130, 28,173,249,226,193,139, 51,209,243,159,120,229,239, -127,254,243,155,171,213,193,193,225, 15,222,251,201,227, 39,135, 63,250,241,113, 55,155,221,190,181,127,235,198, 94,159,123, 17, - 6, 15,206,156, 57,167,156, 89, 40,167,190,239,186, 82, 6,102,201,179,190,203,189,164,110,214,237,152, 27, 6,167,174, 95, 36, -254,254, 59, 63,122,254,149,207, 93,156, 31,217,133, 74,194, 25,215, 89, 71,204,145, 48, 56, 17, 19, 35, 11,178,128,107, 27, 74, - 67, 56,254,141,147,121,170,191, 94, 11,229,155,153, 47, 32, 28, 12,131, 63, 94, 80,125, 44, 99,253, 88,219,212,224,150,141,125, -140, 8, 70,152,246,110,237,172, 46,175,250,113,191, 7, 53,117,236,102, 62, 86, 2,200,139, 45, 64, 40,171,149,169,230, 69, 15, -227,248,195, 15, 63,248,241, 71, 79,255,187,127,250, 71, 96,155,173,219,207, 1, 0,205, 22,161,170,227, 70,114,135,129,146,152, - 51,135, 86,175, 5,212, 33,131,151,241,179, 95,252,210, 79,126,252,131,251,239,191,187,183,187,183,115,163,159,197,226,230,173, -155, 63,250,240,209,243,207,221,186,251,210, 43, 63,121,247, 7, 22, 88,199, 77, 23, 36, 93,103,193, 77,208,202,185,199,196, 81, - 43,245,185, 86,211, 90, 19, 55,147, 67,112, 74,200,232, 6,152, 58, 2, 4,175, 36, 25,194,189,140,212, 39, 36, 28,151, 39,164, - 21,213,204,244,100,181, 58,175,155, 71, 39,203,117, 81, 2, 90,143,165, 29,211,170,171,134,118, 73, 54,227,102, 24,107,223,145, - 16, 71, 3,248, 55, 94, 76, 52, 37,189, 33, 73,128, 95, 46, 47,158,191,251,252,214,238,236,234,236, 18, 2,186, 46, 31, 62,125, -186,187,189,131,204, 89, 4, 0, 5, 35,137, 96,192, 87,223,252,220,239,255,246,111,126,250,211,159,221, 84,173, 69,135,245,229, -106,181,188,184,184,188,184,188,120,250,236,248,222,227,135, 71,167,103,165,214,179,243,203,131,163,227,151,239,220,250, 23,223, -249, 59,191,250,183,127,225,106,121,249,244,209,209,209,201,209,201, 7, 63, 57, 61, 57, 73, 57,157, 61, 61,251,228,237, 61, 78, - 2,208,160,193,164, 17, 96,202,196, 67,169, 18, 0, 44, 76, 36,192,214, 49, 33, 16,230,110,214,226, 28,181, 17,193,218,103,132, -130,140,176,186,139, 16, 35, 13,165,122, 88, 34, 1,162,106, 21, 9,165, 19, 51,203, 57,187,195,104,158, 83,134,104, 49, 92, 2, - 32, 68,114,112,195, 9, 54,233, 17,204, 20,128, 41,101, 68, 80,171, 44, 66,128,230,138,212,214,134, 72, 20,141, 92, 99,127, 19, - 18,107,107, 94, 0,119, 72,148,187,220,254, 3, 70, 0,147,155, 25,128, 0, 19, 33, 80,134,128, 68,162, 81, 16,185, 37,193,234, - 56,182, 23, 68, 76,104, 39, 4,112,102,102, 18, 96,172, 99, 37, 4, 97,246,176, 80, 64, 18, 20, 53, 83,240, 32, 97, 97, 70,162, - 48,240,112, 68, 74, 66,136,164,174,205,233, 12, 0,106,218, 46,132,225, 78, 44, 45,243,230, 54, 5, 46, 25, 73, 93,175, 19, 58, - 68,192, 36,162,234,222,132, 21,102, 56,121, 91,249,122,140,132, 0, 96, 97, 13, 14,234,224,129, 1, 26,125,238, 12,221,212,115, - 6, 8,172, 85,115, 74,165, 20, 85, 37,102, 17, 17, 34, 64,172,230,140, 1,196,109,219, 44, 14, 0,209, 94, 27,181, 84, 4,243, -176,246,107, 39, 12, 58, 73,173, 26,230,212, 40, 88,129,155,162, 2,152,103, 89,205,193,157, 24,193,129, 32, 2,168,170, 49,145, - 79,216, 1,216, 44, 55, 55,118, 23,204,172,234,102, 42, 36,193,141,108, 10,204, 40,194,141,230,201,211,211,194,181,186,154,138, - 16, 39, 52,117,119, 72, 45, 48, 30,193,129, 85,141, 19,154, 6,104, 32, 43,210,199,231,105,176, 97,240, 48, 96,102, 18,117, 35, -164,217,124, 94, 84, 33,148, 16, 16, 73,186,121,181,130,228,169,239, 70, 51, 93,111, 94,253,210, 27,251,207,223,253,238,255,249, - 39,104,158, 82,146,121, 86, 3,211, 74, 22,156,137,145,197,205,154, 34,163,197,173,166,181,245, 4, 48,177,214,161,104, 99, 65, - 64, 68, 20, 36,112, 85, 50,196, 32, 2, 35, 36, 70, 52,192,113, 24,199, 77, 33,194,231,158,127,241,165, 79,188, 88,198,114,114, -122,246,228,233,211,131,195,227, 15,239,223, 91, 94,173, 3,209,212,187, 62,101,233,182, 23,179,217,172,159,117,185,207,157,122, -205,185,155,117, 93,223,245, 41,231,197, 98,171,235,103, 41,165, 78,251,217,238,238,130,134,177,172,238, 62,119,171,150,106, 14, -238, 49, 88,213,162,168, 22,232, 68,214,201,152,197, 18, 55,236,160,119, 89, 8,208,153, 1, 40, 76,161, 21, 51,176,237, 92, 38, - 67,247, 20,218,105,101, 22, 71,196, 6,135,167,201, 57,213, 76,197,209,118, 85, 19, 92,222,221, 24,169,159,243,229,197,129,205, -110,246, 89,154, 13, 12,137, 16, 65,199, 82,135, 65, 50,187,169,149,242,239,255,236, 47,127,235, 91,191,216, 17,224,214, 45,206, -226,225, 28, 97, 22,156,178, 71, 32, 17,162, 51, 83,217, 12, 0,212,204, 39,110, 6,179,217, 55,190,249, 43, 7,143, 31,157,157, -156,230,174,239,230,243,253, 91,183,206, 79, 47,222,187,247,168,159,239, 60,247,194,107,227,250, 18,115,223, 37,169,195,166,159, -111,181,197, 95,238,103, 4,224,141,139, 82, 53,207,250,178, 92,153,123,202, 61, 37, 2,199,240,226,174,141, 35, 1, 86, 0,133, -187,158,136,234,234, 98,214,239,102, 44,207, 30,189,255, 31,255,234, 47, 78,158, 29,212,193,138,122, 22, 54,243, 82,170,105,117, -247,205,102, 19,225,170,176, 90,109,152, 37,161, 8,178,130, 93, 51,223, 8, 16, 24,201, 92,203, 88, 35,135, 87,187,188, 90,222, -220,221,229, 46,103,150,243,213, 57,114, 90,173,214, 59, 91, 11, 34, 4,132,243,139,139, 79,220,189,253,171,191,248,139, 63,247, - 51, 63,179,216,219, 91, 13,213,117, 28, 87,171,211,211,243,147,211,163,163,163,163, 71,135, 79, 15,158, 29, 45,203,102,121,181, - 57,124,118, 60, 79,244,143,127,227, 91,191,253,173,111, 62,119,247,206,106,220, 60, 62,124,188, 90,173,118,110,239,159,141,171, -139,139,203,253,173,173,231,111,237,153, 55,224, 31,179,164,218,194, 15, 76,132,204, 64, 44, 20, 4,110,128, 14, 73, 4, 9,153, -209,180, 9,104,168, 61,203, 8, 41,154,166,163,217,219, 61, 70,173, 0,144, 56,199, 52,183, 67, 83,167, 36, 76,185,157,236, 82, -146, 70,142, 35,230,182,229, 84, 53, 22,102,108,230, 58,108, 19,237,118,132, 6,130, 76,217,220, 45, 76,136, 13,128,147, 68, 56, - 5, 34,195, 68, 41, 17, 66,164, 90,148, 17,176,237, 75,173, 81,158, 16, 61,220,131,124,194, 44,169, 25, 3, 52,137,143,161, 17, - 9, 37, 10,245,136, 72,179,236, 30,109,211,192, 16, 0, 65,169, 39,183,106, 21, 42, 0,227,244, 46,158, 2,141, 14, 24, 66, 12, - 12, 48,181,187,201, 16,174,191, 21,220, 82, 12,204, 84,171,182, 71,124,219,115,181, 71,252,116, 36, 34, 36, 76,230, 90, 93, 17, -152, 5, 29,137, 17,181, 22,119,134,107,211,189, 55, 43, 20, 77,197,174,230, 75, 79, 36,214, 96,133, 62,153, 70,130,162,122,243, -170, 71,132, 55, 56,173,181,249,123,226,150, 43, 47,238,204,200, 44,225, 26, 30, 72,228, 30,204, 65,204,230,129,225, 34,132, 72, - 32, 93,216, 4, 67,199,160, 8, 35,188, 14, 81, 67, 16, 96, 43,231,171,218, 4,190, 13,115, 12, 11, 68,247,182,150, 99, 70, 0, - 58,187,220, 36,162,174,235,181,106,132, 39,102,107, 2,222, 52,213, 43,193, 45, 48, 35, 55,234, 57,185, 59, 51, 19,246,238, 21, - 12, 24, 9,201,205,129, 24,219, 93, 6, 17,189, 6, 17, 71,139,224,178, 56,152,150, 98,126,157,141, 5, 12,128, 78, 56, 64,204, -125, 98, 73,133, 99,132,129, 17,146, 19,142,170, 30,150, 83,122,246,225,253,147, 71, 7,204,137, 48,132,217,204,175,129,140, 81, -138, 85,171,210,106,205, 96,147, 37, 21,131, 3,204,189, 73,174, 48,194, 90, 83, 20,185,201,117, 35, 12,208,104,226, 97, 92,179, - 80, 16, 3, 40,181,183,229,122, 40,232, 6,164,219,187,219,111,238,111,127,254, 51,111, 12,155,245,147,195,103,239,221,187,255, -224,225,225, 48,212,141,175, 62,252,232, 98, 61,214, 89,215,245,179,217, 98,150,183,183,118,102, 93,154,167,196, 73,102, 57,179, -200,172,203,125,215,109,237,236, 16,203,131,119,255, 58, 94,126, 49, 73,215,205,103,125,206, 44, 11,230,228, 78, 85,199, 90,134, -106,174, 21,116,212, 50,174,136,160, 23, 22,162,190,163,204,152, 36,229, 89,110, 86, 39,243,104,167,120,192, 73,224,228,102,225, - 64,130, 72, 50, 65,239,133,145, 57, 84,167, 5, 45, 18,181,249, 76, 64, 0, 26, 4, 49, 39,176,229,234, 36, 98,191,159,205, 16, -212,172,184,226,230,236, 24,137,136, 18,154,191,247,193, 7, 55,111,221,253,220,171, 47, 14, 14, 55,118,118,128,201,203,104,170, -224,150,182,182,235,122,128, 0, 72,172,197, 0,197,235,200, 93, 10, 85,202, 89,199,113,190,187,255, 51,223,248,246,255,245,239, -254,245,238,122, 57,159,207,103,179,249,157, 59,183, 14,158, 28, 92, 92, 94,221,217,190,177,253,226, 75,239,191,243,215, 71, 79, - 55,251, 55,246,187,217, 28,145,180, 90,238,103,237, 66, 85,215, 99, 16, 67,128, 90,149,214, 19,170, 21,101, 22, 86,180, 42, 17, - 7,102, 4,197, 40, 72, 93, 0, 2,240,162,199,135,247,238, 95, 46, 55,159,124,229,141,123,239,126,240,222,211,243,170,214,119, -226,230,227,160, 0, 10,129,163, 21,115,219, 84,115,143,174, 99, 34,116,240, 54,144,253,216,110,232,104,238, 86, 74, 73,153, 34, -193,106,179,218,219,217,186,177,179,253,209,227,199,165,150, 27,219,249,114,189, 82,173, 93, 78, 26,240,183,190,250,149, 95,255, -149, 95,185,251,226,203,152,186, 81,171,151,241,242,226,228,217,211,195,139,243,139,123, 15, 31, 63, 60, 60,184, 92,175,199,205, -120,124,113,126,122,118,246, 51,111,126,230,159,254,189,191,243,250,235,159,124,250,248,241,179,243,227,167,199, 71, 79, 15,159, - 84,139, 15, 31, 63, 30,206, 47, 94,220,219, 19,193,106, 77,248,206, 0, 68,204,110,181,170, 39,136, 32,112,140,106, 53,129, 68, -132, 54,112,138, 75,245,170,225,137,184,250,164,225,109,219,251, 8, 48,247, 54,232, 22, 70,117, 84,183, 44,211, 5,128,169, 57, -150,188,201,225, 3,192, 28, 16,155,100,110,202,103, 77, 12, 3,139, 32, 38, 33, 55, 3, 8, 73,115,196,104,143, 72, 4,170,102, -109,215, 76, 68, 78, 17,134,102,202, 60, 53, 21, 25, 9, 66,193,129,137,107,107,101, 67,106,228, 27,245, 32,188, 14, 77,185, 59, - 64,187,219, 3, 66,115,206, 51,160,153,133,134, 36, 49, 15,102, 10,247,208, 82,219,232,156,201,195,195, 20, 49, 1, 98, 68, 37, -226,148,146,106,128,187,187, 19,146,187,182,200, 60,132, 53, 37,125, 68, 12,155,145,136,152,209, 17,213,131,176,229,183,128,112, -162,152,149, 82,163,245,210,133, 60, 90, 35,131,186,249,124,216, 12,224, 70, 41,133,163,187,195,228, 93,165,192,105,117,105,208, - 42,160, 22,166, 36, 82,170, 9, 11,145,149, 98, 45,224, 4, 68,165, 20,170, 53,119, 51, 51, 43,181, 50, 33, 96,104, 13, 78,216, - 18, 1, 34, 9,204, 93,139,214, 98, 0, 34, 12,225,192,142,206,204, 98, 94, 85, 75,151,122,132,164,132,101,181, 38, 7,234, 51, - 24, 88, 53,184,174, 9,198,181, 56, 98,146,133, 97, 3,253, 7, 37, 89,111, 54,115,145,246, 65, 87, 32,119,240,240,148,147,131, -123,141,128,202,146,137,160, 86, 15, 83,226,132,129, 97, 17,160,156,196,171,171,150,148, 83,206, 84,213,109,116, 64,151,148, 32, - 72, 18, 15, 67,105,153, 34, 51, 15, 3, 17,142,166, 42,236,147,105,140,234, 18, 35,176,180,224,110,235,233,168,106, 78, 2,196, - 18,225,142, 26,161,171, 85,167, 58,159,207,198, 90,212, 13,192, 17,217, 61, 26,124, 8, 34,164,189, 1, 39,215, 40,178,123,193, - 86,160,107,166,211, 9, 86,196,205,116, 2,222,198, 53, 96, 30, 19,103,191,185, 82,153, 3, 12,145, 29,140, 9,131, 32, 28,195, - 77, 29, 2, 48,119,253, 27,111,124,234,173,207,125, 54,220, 3, 57, 76,135, 58, 46, 47,175,142,143,143,190,247,195,247, 78,175, -150, 23, 39, 71, 79,170, 5, 98, 22,206, 41,111,117,253,108,158,179,164, 62,119, 66, 56,142,155,163,147,227,121,223,205,250,249, -246,246,214, 98, 62,159, 47,102,210,207,102,253, 98,222,207, 89,208,157,220,221,108,199,221,135, 97,181, 44,195,229,102, 84,117, -198, 16,194,157,237,217,172, 75,179,140,132, 70,200,222, 18,148,238, 83,234,217, 20, 1,130, 82, 32,176, 65, 52, 35,253,132, 44, -110, 41, 57, 71,247, 0, 22, 9, 67, 68,230, 14, 99,189, 60,170,101, 49,223,218,235,250,206, 76, 65,136,220, 49, 32,172,188,123, -239,241,219, 95,120,243,114,185,185,243,202, 93,226, 20,227,136,220,185, 22, 78,104,195, 8, 30,196,136, 68,225,238,101,131,146, - 17, 9, 4, 56,165,178, 94, 91,209,207,127,233,203,239,191,251,206,213,197,233,214,246,216,205,230,139,237, 45, 73,114,112,248, -108,190,152,229,249,203,187, 55,247, 22,139,237,237,221,221,243,147,227,189,253, 91, 64,212,205,183,136,185,140, 67, 25,171,100, -168,234,169,155, 33,167,105,156,105,106, 70, 34,105, 42, 10,184, 55,145, 91,148,186, 89,158,253,248,135,127,101, 21,119, 16, 25, -203,170,216, 70, 21, 32,220,161,186, 5, 86, 51, 47,174,153,114,241,113, 84,117, 12,166, 41,157,221,216, 62, 68,204,141,182, 31, - 24, 17,163,105, 42,214,247,157, 99,156,158,159,119, 41, 45,151,203,220,117, 0,112, 99,103, 71,181,222,220,223,255,173, 95,254, -230,207,253,220, 47,240,108,238, 0, 97,186, 57, 63, 59, 57, 61,122,250,228,201,211,227,147,135, 7, 7, 7,199, 39, 67, 45, 23, - 23,151,231,231,231, 59,139,197, 63,251,221,223,248,253,223,252,118, 32, 28, 30, 60, 57, 56, 61, 26, 30,172, 14,143, 78,210, 44, - 63,248,240,225,237,237,173,231,246,246,192,221,108,250, 54, 34, 16, 35, 19,165, 46, 49, 98,193,169,160,131, 0, 82, 91,253,199, -117, 44, 35, 56,244,253, 44,115,170,230,204, 18,211,194, 61, 40,144, 17, 71, 83,102, 38,160, 0, 76, 66,194,108, 26,216, 86, 67, - 13,161,139,220, 24, 16,173, 62,223,110, 0,146,164,117,112,154, 20, 87,178, 32,224, 88,106, 27, 37,184,106, 32,182,200,180, 70, - 13, 15, 72,132, 68,225,225,225, 16,134,132,192,152, 92, 12, 12, 99,106,194, 4, 64, 22,102,148, 82, 11,114,195,156, 1,130,121, - 40, 33, 7, 53,250, 6, 6,122,155,195,153,182, 80, 21,166, 44, 14,144,132,221,181, 29,140, 91,162,188,233, 67, 72, 90, 39,222, - 26,245, 37, 0, 73, 2, 49,225, 88,218,253,195, 60, 8, 0, 89, 88,146,169,181, 82, 28, 65,195,247, 33, 51,133, 53,247, 20, 96, -128, 7,148, 65, 69, 24,144, 17,130,136, 75, 25, 0,128, 40,141, 99, 1, 7, 32, 49,117, 66, 64, 32,202,130, 13,115, 73,140, 12, -161,225, 16, 2, 76,194, 14,174,102, 89,208, 35,188, 56, 2, 36,145,170,166,101,204, 57, 35,164,198, 16,224,166,232,113, 64, 66, -119, 13, 39, 73,201, 76,213,140, 34,152,137, 48,170, 27, 19, 51, 9, 18,152, 25, 6, 18,177,185,107, 85,194,232,186,206, 74, 13, -179, 6, 49, 33,132,182,137,109,150, 56, 15, 96, 12, 32, 8, 70, 14, 68,228,203,229,154,195,183,119, 23,215, 77,120, 16,102,180, -134,197, 53, 66, 68, 76,102,166,106, 72,148, 82, 86,179, 90, 53,119,137,185,115, 83, 34,234,251, 92,171,154, 83, 0,230, 46, 69, -132,171,135,107, 13, 77, 89,180,170,106, 77,157,184,116,227,102,157,147, 80, 78,110,193,196,104, 17, 68,156, 68,171,130,143,129, - 40,148, 33,193, 20,192,207,157, 14,163,160, 2, 50, 4, 14,227, 38, 39, 49,160, 82,107, 67,236,182,119,219, 84,234,111, 76,178, - 8,244, 80, 36,142,104, 81,241,143, 81,162,237, 78, 51,205,178,221,162, 21,219, 62, 38,179, 83,187,255, 56, 6, 6,181, 41, 7, -196,199, 35,240,118, 29, 44, 99, 25,198,145,129, 26, 79, 66,132,110,220,216,221,223,223,121,235,243,159, 65,176, 50,148,171, 97, -125,120,120,242,236,244,226,252,226,242,240,232,228,248,244, 92,181, 6,130,112,218,157,247,171,177,228,148, 37,165,124, 44,125, -150,148,187, 89,151,186,148,103, 93, 63,219, 90,204,230,219,253,172,203, 93,223,119,139,174,223,245,216, 13, 51, 85, 53, 11,143, - 40,238,151, 23, 25,107,255,230, 0, 0, 32, 0, 73, 68, 65, 84,235,112,152,207,122, 17, 12, 43,137,128, 25, 82,226, 94, 88,184, - 25,198, 61,130, 28,167, 22,212,181, 70, 22,154, 6,204,189, 48,160,218,132, 7, 0,198, 52,163,113,189, 33,148,212,221,112,213, -148, 82, 0,131,218,189,143,238, 45,230,253,173,189,197,246,173, 59,105, 62, 7, 17,164,100,165, 82, 74,144,210,184, 90,167,220, - 97, 74,156,164, 14, 35,114, 70, 98,136, 32,194,178, 25,188, 70,203, 77,127,237,231,255,214,191,250, 95,254,167,229,229,130, 18, -111,237,236,221,189,243,220,193,179,131, 23, 63,241,252,234,244,164,172,203,122,189,186,121,247, 5, 61, 57, 25, 55,107, 11, 42, - 67, 89,159,157,215,106, 34,220,184,193, 4, 16, 90, 36, 37,141,208,205,134, 82, 15, 94,194, 13,133, 49,205,114,215, 93,158, 28, - 63,185,255,254,179,167,143, 23,243,125,177,234,101, 73,220, 35,120, 81, 15, 12,136,112,179,240, 64,104, 14, 69,116,135, 22, 28, -238,114, 98,100, 96, 50,171,146,154, 65, 11,168,197,177, 1, 8,112, 24, 71,102, 22,128,171,186,188, 66,156,205,230, 0,241,236, -236,236,115,159,122,237,237, 47,124,245,151,190,241, 11,159,124,237,117,163,100, 54,134,198,197,217,179,131,199, 15, 31, 61, 58, - 56, 56, 58,122,122,124,114,122,121,185, 92,175,199, 81,109, 44,223,254,218,219,223,249,173, 95,121,241,249,187,195, 88, 87,117, -248,224,131,247,247,238,222,174,225,167,239,157, 47,150,242,202,205,125,105,232, 11,194, 86,192, 17, 74, 13, 60,224, 26, 10, 78, - 36, 64,228, 96, 24, 24,220, 18,216, 82,134,181, 22, 3, 68,143, 48, 8, 17, 70, 4, 15, 16,100, 70,182, 90,129,154,103,206,221, - 61,101, 97, 68, 53, 39, 33, 12,244,107,254, 9, 51, 58,128, 32,153,155, 27, 50,147, 19,170, 71,206,185, 33, 98,137,185,105, 13, -114,146,201, 72, 5,209, 52,210,214, 72,176,109, 72, 82,221, 39, 85,142,184,153, 86, 99, 97,112, 36,226,214,137, 71, 32,140, 48, -240,233, 75,216, 16, 49, 64,197,134, 32, 98,100, 87,179, 80, 73, 66, 76,165, 42, 5, 83, 66,132, 4,224,109,230, 12, 96, 8,196, - 76,238,142,209, 54,120,237,156,142,204, 18,209, 98, 21, 20, 17,166,138,137,200,128, 16,145,153,137,204,162, 12, 35, 49, 79, 46, -157, 22,222,185,110, 94,129, 59, 16, 14,181,164,212,181,153, 27, 33, 90,173, 67, 93,155, 42, 33, 72,158, 17, 51, 37,193, 70, 0, - 48, 11, 50,175, 13, 84,147, 34, 44,156, 60,188, 75, 98, 6, 97, 78, 72, 22,211,228,146,178,160,123, 41,198,137,115, 98, 0,244, -170, 8, 78,204,208,134, 57, 56, 89,223, 48,192, 26,141,139,217,145,106, 45,204,156, 57, 33,161,153,114, 16,139, 0,128, 14, 21, - 40, 48,156, 89,212,204, 28,220,140,153,132, 57,166, 5, 0, 2,146,144, 24,155,155,182,106, 59, 16, 68,120, 41, 99, 47,210,117, - 61, 64,152, 7, 58, 88, 11,110, 16, 10,139,187,181, 31, 0,129, 48,160, 1, 22, 82, 74, 17, 24,224,196,130, 68,117,179,113, 83, - 78, 89,114, 66,226,113, 24,204,172,205, 0,173, 40, 97,112,226,118,214,236,114,215,208, 81,215,198, 62, 2,198,112, 39, 2, 15, -209, 90,131, 11, 79,241, 43,116, 15, 97, 54,173,136,129,170,156, 68,181,213,196, 82,139, 78, 85,173, 29, 65, 97, 17,130,214, 22, -139,169,218,241,177, 30,152, 40,188,101,196,195,213,154, 86,187,221,194, 38,156,192, 4, 13, 8, 98,104,191,112, 98, 53, 18, 48, - 50, 4,123, 40, 2,187, 7,128, 35, 49, 3, 64, 40, 32, 66,123,128,128,121,216, 48, 20, 66, 19,162, 89,158,189,241,234, 43,159, -249,116, 91,236, 66, 25,235,249,249,229,197,102, 56, 60,124,246,224,241,225,227,167, 71,167,151,151,106,216, 47,250,237,126,107, -123, 62,159,207,114,159, 59,102,234,152,152,168, 95,244,125,223,117,121,182,189,216,158,109,109,207,231, 91,125,223,247,179,185, - 16,115, 18,139, 40,163,166, 46, 53,102,225,122, 53,152,149,171,227,115, 45,101, 62, 75, 59,139,188,191,183,221, 37, 16, 70,141, - 9,125,128, 72, 16,166, 78, 28, 17,132, 16, 35, 42, 32, 39,104, 58, 70, 70,236, 97,121,117, 76,132, 93,151,114,191, 85,174,206, - 93,228,207,190,247,238, 55,127,246,103,182,111,220,204, 59,123, 33, 25,128,192,194,202,166,223,222, 25, 55, 3, 69,147,220,170, - 22,119,175, 24,228, 85, 49,139, 90,104, 81, 18, 36,194,178, 90,191,240,234,167,190,240,246,207,254,224, 47,254,239,249,246, 86, - 63,203,251,183,111, 62, 59,125,118,255,222,163, 47,191,181,181,152,111,237,222,188,245,244,224,209,214,238,246,242,236,100,231, -206, 75, 59, 55,111,214,161, 48, 1, 37,177,162, 0, 10,200,224,170,197, 28,136, 68,194, 43, 54,208,156,136, 16,124,244,238, 59, -199,135,135,175,125,234, 21, 27,223, 56,125,252,120, 24,150, 17,136,117,125,181,190, 42,102,215, 61,130, 9, 22,225,230, 99, 25, -138, 86, 51,219,154,207, 61, 28, 16,178, 99,107,140, 35, 11, 16, 16,178,215, 86, 24, 68,119, 28,107,205,243, 89,146,100,102, 24, - 80,212,190,240,153, 55,254,225,127,246, 59,111,126,254,243,221, 98, 39,136,107, 29,202,106,117,118,116,120,255,193,131,135, 7, - 79, 30, 29, 62,187, 88,174, 86,195,176, 90, 46, 33,240,237,207,124,250,215,126,246, 75,111,190,249,198,250,106,121,116,114,178, - 1,248,240,189,247, 46, 78, 47,142, 87,171,147, 39, 79,159,219,223,235,152, 93,109, 26,255,122, 0, 50,139, 96, 80, 68, 20,173, - 8,211,135, 19, 3,204,156, 25, 93, 1, 16,205,180,207,125,207,169,132, 11, 50, 49,183, 19, 75, 47, 93,209,106,181, 0, 17, 19, -186,169, 19,145,135, 85,167, 68, 41,139,153, 55, 17,176,135, 17, 73, 0, 36, 73,110, 86,218, 7,153, 48,209,245, 97,188,121, 7, - 33, 2,167,232,222, 20, 24, 7,132,112, 36,208, 58,108,134, 53, 32, 39, 73,125,215,183,205,143,153, 49,161, 3, 20, 45, 13,249, -141, 68, 24,206, 68,197, 10,179, 16, 32,162, 48,179,106,117, 12,225,222,221, 61, 52,218,232,223,221, 16,174,141,135, 17, 97, 22, - 78, 72, 24, 40,210, 77, 88,120, 0, 11,119, 45,192,200,148, 60, 90, 73, 10, 32,162,150, 66,140,204,226,110,204,200, 13,172, 8, -160, 94,219,142,248,250,141,213,106, 84, 65,128,238,109, 0,129, 34, 76,224, 36, 18, 13, 53,156,187,132,208,204,124, 94,134,174, -155, 55,140,160,176, 20, 51,215,104,114,146, 54,249, 71,114, 68, 28,203,200,212,161, 48,168,165,196, 8, 8, 44,101,179,105,164, - 7,143, 64, 11,119, 5,224,214,164,101, 36,157, 90, 2,109,156,239, 22,152, 88, 0,145, 8, 82,223,115, 99, 58, 22, 3, 38, 7, -135, 90, 1, 98, 54,159,215, 98, 21,198, 90, 70, 32,102, 65,102,177,234,109,129, 57, 73,158, 49, 28, 44, 44, 16,154, 19, 20,192, - 99, 61,234,122,179,190,181,187, 75,132, 30, 33, 34,166, 30, 97,225, 33,196,197,172,154,181,183, 91,120, 56, 26,139, 16,203,132, - 52,116, 7, 2, 83,165,196,146,179,169,130,105, 4,166,255,143,170, 55,255,181, 44,187,238,251,214,180,247, 57,119,120, 99, 77, - 93,213, 3, 41, 81,205,110,146,205,169, 57,180,154,106,142,110,139,164, 24,138,162, 69, 89,142,100, 39,113,130, 68, 63, 40,113, -126,136, 99, 56,131,127,200, 96,196,128,129, 0,137,101,196, 64,128, 32,137, 17, 40, 30,228,196,146,160, 72,150,100, 18,154, 76, - 89, 18, 69, 50,221,108,246, 80, 93,115,215,171,122, 85,111,126,247,222,179,247, 94,107,229,135,117, 94,219,249, 3,216,120,172, -123,239, 57,123,175,245,253,126, 62,194,166, 90, 90, 21, 32, 32, 8, 96,142, 48, 35, 33, 16,120, 81,100,130,200,158,162, 67,188, -199, 87, 6, 6,113, 5,215,112,144, 19, 64, 60,150, 60,105,107,128, 6,225,195, 66,196,120, 20,163, 39, 34, 51, 0, 48, 9,147, - 55,180,184,118,225,191,226,169, 5, 15, 14, 12,254,127, 6, 37, 15,115,208,217,219,124,236,149, 2,134,249,136, 1,162,241,131, -225, 1,137,179, 63, 33, 1, 26, 56,146,147,163,185, 2, 8,128, 3, 1, 33, 25, 0,155, 59,184,214,230, 96,170,234, 17,113,218, -216,218,184,244,200,197,247,188,243,209, 82,219,213,155,119,207,111,175,239, 29,157, 92,191,126,251,218,221,221,197, 98,121,253, -214,253,162,154, 88,166,253,164,159,116, 91,107,107,147,190, 35,132,212, 73, 79,185,235,186,181,249,188,159, 77,166,147,217,124, -190,158, 39,179,174,159, 32, 1,186,117,179,217,124,115,189, 13,101, 62,155, 13,165, 28, 29, 31,237,236, 45,239,236, 28,228,204, -147, 73,119,110,107, 99, 54,235,251,190, 19, 38,173, 48,118,161,221, 49, 22, 78,166,136, 0,144,209, 61, 9,205, 55,242,242,100, -191,235,174,180, 97, 69, 76,223,250,246,119, 46,109,109, 94,185,116, 94,102,107, 36,226,117, 5,210,183, 82,211,108,189, 86,211, -170,156,132, 69, 76,155,131, 33,101, 45,141,177, 1, 37, 91, 54,102, 38, 73, 72,238,230,110,237, 3, 31,123,254,213,151,190,125, -124,112,192, 34,169,235, 47, 63,114,229,149,239,189,114,249,210,249, 71, 46, 93, 56,220,123,184,191,187,243,240, 1,111,109,172, - 49,118, 96, 70, 96,121,214, 53, 29, 69,149, 64,236, 14, 90, 10,166, 14,221,180, 22,230,212, 79,167,135,251,123,111,126,255,165, -245,245,205,143,188,240, 35, 66,244,230,119,191,107,117,104,234, 93,194,197,241,233,235,119,239,171, 54, 51,180, 81,164,110,102, -190, 26,202,106, 85,106, 83,119, 95,174,150,165, 12,224, 16,177, 16, 10,193, 11, 35, 1, 10,162, 32, 16,132, 75,202, 76, 93, 50, -129,195,164,151,175,190,240,103,126,226, 75, 63,118,238,226, 21, 96, 2,135, 97,181, 60, 57,220,187,115,251,198,205,155,183,111, -222,189,119,127,119,239,164,172, 22,167,203,217,100, 58,221,220,254,204, 7,158,254,228,199,159,153,230,124,255,206,109,158, 77, -111,188,126,253,218, 91,119,183,182,230,187, 15,247, 54, 82,126,116,251, 28,162,183,102, 77, 1,200, 73, 17,153, 3, 51,224,228, -166,134, 70,213, 53, 51,194, 88,224, 96,112,112,215, 56,130, 50, 18,100,153,130, 83, 52, 65,221, 25, 65,173, 33, 66,234,178,187, - 87, 53,225,204, 8,213,155, 16, 1, 82,107,134, 68, 68, 20, 47, 18, 32, 4,128,161,212,216, 70,154, 89,150,164,230, 68, 28, 33, -196,240, 81, 26,152,106, 5, 7, 2, 28,161, 88, 0,109, 53,236,237,239, 29, 30, 29,112,146,205,249,166,155, 75, 74,238,200,204, - 81, 49, 9,112, 63,140,232, 93, 90, 13,203,145,133,194, 9, 76,155, 85, 36, 38, 22,213,192,103, 9, 50,153, 26, 17,158,105, 26, - 33, 64, 84,102, 74,132,113, 33, 7,112,140,105, 48, 56,146, 72, 22,109,154, 82, 98, 34, 53, 53, 87,116,118, 3, 11,126, 16, 66, -124,236,142,144, 57,153,123,109,202,177, 31, 52, 83,176, 78,146, 54, 37, 4, 68, 49, 11,213,137,251, 24,144,119,107, 26, 42,183, -148, 72, 68,128,130,201,131,230,202, 73, 24,140,145,171,170, 42, 48,177,122, 3, 71,194,108, 86,145,144,152,221,176, 14,133, 1, -251,174, 3,162,214,170,171, 34, 51,163,212,166,224,141, 57,185, 67,206, 25,208,203,170, 33, 69, 78, 9,205, 12, 16,115,151,193, -160,150, 98,110,209, 34,142, 89, 58, 98, 10,165,198, 89,118,159,227, 90, 15,166,196, 34,136,198, 60, 70, 7, 35,242,139,160,106, -230,206,137,155,214,140,216,245,189, 3,130,147,170,154, 42, 0, 40,128,131, 17, 65,135,169,212,230,222,194,147,110,106,140, 28, - 19,149,214,138, 72, 74, 41,171,186,106,213,166, 0,110,205, 67, 86,193, 72,230, 78,214,186,190, 3, 76,102, 86,107, 99, 9,130, -177,131, 57, 36,108,101,160,209,103, 74, 73, 80, 1, 93, 91, 22, 9, 46, 38,168, 50,138, 90,137, 39,116, 91, 46,101,210,135, 7, -201, 20,136, 0,192,153,153, 83, 22, 34,242,160, 29,163, 35, 51,170,198,198,213, 35, 69,237,128,168, 64, 50, 22,227,206,200, 96, - 48, 30,230,199,123,227,216,199, 27, 69, 77,241, 21, 36, 11, 22,218,232,228, 8,225, 0, 2,208,216, 42, 32, 12, 98,234, 56,236, - 30,255,231, 32, 60,110,234,205,252,244,116, 1, 20,232,127,153,206,230,231,206,111,191,251, 93,239,100,112, 55, 59, 56, 58, 60, - 58, 89,220,187,247,112,103,239,224,214,237,123,111,222,190, 89,171,185,225,108,222,111,172,205,215, 38,147,245,181, 89,223, 77, -250, 36, 34,210,245, 93, 63,233,167,179,233,180, 95,155,172,173,117,169,115, 67, 73,210,175,245,243,217,180, 22, 29, 86,171,213, -106,177, 88,158,222,184,125,191,212,150,132,214,215,103,211, 73,222, 88,155,110,206,103, 41, 11,130,213,230,102,102,230, 64,198, -136,134, 32,156,104, 29,142,142, 31,144,118, 94, 15,110,223,123,248,165,207,127, 33, 77, 59, 36, 68, 98, 36, 86,179,148, 19, 90, - 27,142, 23,148, 24,220,218,234, 20,243,148,130, 23, 39, 6, 78,173,168,153, 75, 2, 4, 67, 36,100,172,165,204,187,244,220, 11, -159,251,253,175,255,250,108,125,141, 37,159, 59,127,241,209,199, 79, 94,122,229,141,173,205,121, 34,124,230,195,207,189,117,235, -218,124,115, 3,115, 79,148,112,194,206,226,195,106,100,102,129, 89, 27,212, 93, 28,181,150,190,235,140,233,245, 87, 94, 62,218, -219,127,231,147,239,121,228,137, 71,221,218,226,225, 94, 18, 89,173, 86, 34, 80,181,253,157, 95,252,165,251,199, 5, 24, 24,209, -212, 44,236,192,128,165,148,128,219, 33, 97, 83,115, 71,139,111, 80,236, 19, 7, 11, 67,227,116, 50, 69, 8, 34, 7, 10,225,106, - 88, 54,211,231,223,255,204,159,251,210, 23, 62,252,236, 71,165,159,173, 86, 75, 47,165, 12,139,253, 7,247,110,223,185,113,253, -246,221,183,238, 61,120,112,112,176, 26,202,173,157,123,173,212, 47,191,240,195,159,255,196, 71, 30,187,114,190,154,183,201,228, -245,151, 95,185,252,196, 99,179, 11, 27,245,214,237,195,221,195,139,235,243, 89,238, 74,107, 49, 17, 74,137, 2, 22,237, 16,182, -123,119, 51, 12,244, 16,158, 25,101, 8,131, 10, 22, 0, 81, 66, 34,134, 36,100, 65,170,162, 32,164, 55,119,103,230, 56,152,114, -148, 47,145, 50, 71, 55, 44,222, 16,104, 6,103,222,106, 55,211, 40, 41, 81, 98, 34, 42,181,129, 3,139,140,218, 68,192,128, 4, -128, 99,107, 5, 36,157,253, 88,188, 53,109,173,170,106, 51, 45,221,144,211, 36,119,152,114, 23, 55, 89, 36, 64, 34, 53, 71, 4, - 34,104,106,204,201, 77,193,173, 89, 37,116,226,140,136,161,229,100, 17,143,205,109,151, 64,221,205,115,151,205,204,220,137, 37, - 26,144,102, 22, 56,171,118,134, 71,117, 87, 80, 22, 22,119,211, 22,169,161,200, 70,251, 40,111, 8,150, 60, 24,130, 0, 26, 34, -178, 48, 33, 40, 24, 9, 38, 75,181, 42,143, 16, 63,103, 10,175,111,212, 10, 13,194,139,102,102, 78, 41,139,131,131, 91,107, 45, -229,140,132, 34,226,106,173,169,176,152,183,166, 70,148,204,154, 65,115,243, 72,101, 0, 96,158,116,209,237, 10, 63, 42, 34,134, - 67,131,152,227,126, 70, 72,181,148,136, 0, 57,248, 80,171, 16, 83,234, 29,188, 14, 21,162,247, 14,216,170,177, 0,230, 4, 77, -233,172,211, 18,182, 6,109, 26,215, 35, 96, 6,128, 80,119, 4, 6, 44,242,223,102, 45, 9, 17,145,154,150,229,114, 58,235, 89, -216,205, 67,102, 2, 64,102,158, 8, 99,202,135, 0, 41,177, 54, 52,109, 68, 76, 73,136,176,172, 6,247,248, 52,205,107, 9,240, -178,170, 15,181, 50, 0,247,217, 28, 93,149,153,209, 59,109, 0,164,238, 38,140,241, 64,100, 2, 39,215, 58, 52,181, 68,202,210, - 25,170,170,215, 82, 90, 27, 8,129,132,137, 83,120, 12,137,169, 54, 32,114, 76, 98, 77, 41, 17, 34,145, 68, 7,148,132, 19,172, - 6, 1,183, 49,180,228,132, 49, 71,165,248,152, 71,131, 42, 96,192,213,129,128, 69, 80,163, 26, 23,141, 58, 2, 3,103, 24,169, -151,204, 60,190, 4,198,166,112, 32,218,163,135, 19,208, 71, 87, 83, 30, 55,214, 35, 63, 3,204,162,198, 6, 35,191,205, 70, 85, - 19, 56, 75, 8,233,124, 62,225, 59,247, 15,223,245,248,185, 85, 89,130, 49, 48,228,190,123,100,182,126,249,145,199, 19, 27, 82, - 50, 45,187, 15, 31,222,124,235,254,205, 59,119,223,184,113,247,198,254,254, 98, 40, 93,206,235,243,217,246,250,198,108,210, 79, -102,211,105,151,251,148,167,147, 73,223,247,156,178, 48,179,164,174,235,165,207, 89,186,205,173,237,173,237,109, 53,179,214, 86, -101, 53, 44,151, 15,247,135,221,189, 5,217,253, 60, 73, 91, 27,179,141,121, 63,153,246, 73, 72, 18, 7, 30,193,195,216,144,109, -117,116,240,245,223,254,103, 63,240,228,135,250,217,156, 38, 76,169, 71,132,214,162,115, 66,203,163, 19, 96, 6, 20, 74,226,173, - 17,130,214,130,238, 40,201,204,135,163, 83, 74,220,229, 9,130, 91,173,209,221,104,194, 63,244,222,103,190,251,167,127,120,114, -116, 36,210,167,190,123,199, 19,239,120,233,240,232,206,221, 7,143, 92, 60, 95,155, 78, 55,214, 94,250,147,111,127,225,167,159, -235, 38,221,176, 60,181,161, 98, 96, 78, 28,117,168, 14,204,140,128,214,207,215,134,197,241,247,254,229,183, 46, 62,242,216, 15, - 60,251,108,158,207,189, 14,203,147, 99,109,214,154,102,134,181,249,250,175,252,139,127,249,242,141, 59, 79, 60,122, 89, 91, 3, - 0,181, 8, 70, 26, 48, 13,173, 2, 1, 58,145,141,233,236, 17,160, 31,253,183, 56, 39, 32,168,105,202, 68,131, 35, 81, 45,117, - 50,153,254, 59, 95,251,234, 79,126,249,203,179,205,115,138,120,186, 60,174,167, 39,171,213,234,225,253,157,171, 55,110,236,236, - 61,188,243,214,206,201,106,208,170,222,252,177,173,237,159,122,241,147,159,253,212,115,171,197,201,193,254,225,236,202,229,235, - 55,175, 31,157,156, 76,143, 14, 95,126,233,181, 9,248,185,205,181,102, 94, 77,205,128, 24, 66, 81,231,128,103,186,220,198,146, - 1,200, 13, 83,162,177,222, 22,235, 20, 36, 68, 87, 12, 38, 52,154,123, 51,199,128, 82, 56,153,171, 3, 72, 98, 51, 96, 70,247, -132,160, 1,135, 97, 4,143,116,202,232,228,117, 68,212, 90, 57, 37, 32, 70,138,125,103,114, 80, 73, 9, 41,214,240, 99,169,154, - 4,181,170, 27,164,156,206, 26, 73, 88,213,152,243,108,186, 86, 84, 9,160,235,166,253,164, 75,194,181, 54, 38, 4, 4, 27, 61, -192,228,136,110,192,212, 1,249,217,108,215,132, 59,117, 55, 87,162,248,255,174, 72, 12,232,222, 60,136, 43,109, 85, 93, 66, 64, - 78,237,108,176,222, 52,196, 68, 8,132, 96, 40,125, 87,106, 97, 66, 48,114,180,224, 48, 39, 17,208,166,102,168, 74, 73, 96, 68, - 52,128,121,192,238, 25,208, 5,160,105, 64,146,209,212, 9,129, 25, 91, 36,135,145, 1, 34, 2,223,226, 23, 79, 28, 21, 76, 69, -196, 52,153,184,155,185,106, 81,114, 68,161,229,106,133,128, 34,108,160, 72,152,132, 1,104, 88, 45,152, 57,247,189, 54, 39, 39, -109,197, 77, 71,183, 50, 17,162,171, 91,159,250,170,165,148, 34, 57,141,239, 17,181,148,123,116, 55,173, 35, 6, 89,155, 1,144, - 99, 74,210,180, 98, 11,192, 74, 33, 78, 76,217,124, 64, 71, 39,231, 68,140,210,180,180, 86,193,137,153,132,196, 92,107, 45,137, -163, 31,131, 72,128,218,178, 12,155,155,235,134, 74, 32,238,160, 77, 17,144, 16, 76, 21,144,165, 35, 4, 82,115,111, 5,187,100, - 13,134, 85, 99, 42,204, 44, 34, 26,210,190,166,196,236, 85,173, 85,102, 36, 98, 52,239, 36,169,228, 86, 86,197, 42,131, 51,118, -136,228,234, 44, 40, 93,183, 42, 67, 27, 6, 83, 39, 70, 3,196,214, 16,201,220,203,176, 88,158,158,128,123,238,187,126, 50, 99, - 17,119, 2,132,148,196,180, 81, 44, 74, 1, 8,153,153,221, 91,109, 37,122, 75, 18,113,215,120, 88, 7, 11,142, 24,157, 8, 27, -156,165,134, 16,220,115,162,110, 58, 61, 61, 62, 30,213,214,228, 4,136,128, 76,232,128, 4, 20,135,165,209,160,231, 99, 60, 37, -242, 98, 54,154,204,221,205, 9,206, 22,179, 14, 24, 49,106,198,127,109,158, 63, 2,199,162,158,230,142,110, 70, 8,155, 91,179, -221,235, 59, 85, 55,227,246,106,224,110, 28,109,221,214, 16,176, 34,224,133, 11,231, 31,191,114,233, 83,207,125,144,136, 15,246, -247,175,222,216,185,181,115,255,214,221,157,131,163,163,123,187, 59, 32,105, 58,157,110,205, 55,182,214,214,182,182, 54,250,201, - 36, 51, 45, 23, 75,107, 85,178,116,125,215,119,211,233,116,214,245, 83, 78,156,115,154,244, 19, 66, 17,161,170, 54, 44, 23,251, - 71,195,131,131, 67,240,189,233,164,223,218,152,245,157,244, 93,234,251, 9, 19,229,137, 16,251,185,199,158, 56,127,241,146,100, -161,156, 57,119,109,185,212,102,148,104,185, 90, 58, 11,153,106, 83,150, 44, 41,155,186, 53, 39, 84, 2,209,161, 17,115, 55,153, -131, 89, 43,195,120,136, 19, 6,135,212,201,135, 63,254,252,111,252,211,127, 50,157,205, 69, 68, 68, 30,123,236,202,245,155,183, - 47,157,219, 60,217,125, 43,109,108,108, 94,122, 7,164,201,106, 88,182, 97, 9,200, 86, 6,140,189, 89, 4,135, 17, 8,224,214, -235,175, 30, 28, 60,248,193,167,158,218,218,190, 80, 85, 17, 90,169,173,156, 46, 93,161,149,161,149,225,143,190,127,247,229, 27, -111, 85,109, 26,247, 82,112, 83, 7,104,194,180, 28, 90,173,138, 12, 35,241, 97,180, 69,140,176,114,240, 51,150,133, 25, 10,161, - 99, 83, 16,241,231, 63,252,193,127,239,103,254,205, 31,126,238,249, 69,177, 6, 90, 22, 39,101,113,124,184,191,127,227,230,141, -155,119,238, 60,216, 63,120,112,176,127,116,116,122,120,124,122,229,194,249,143,124,224,125, 95,252,145,143, 93,188,112,254,254, -238,189,226,237,254,254,254,193,173, 91,230,118,116,114,186,251,205,239,172,175, 77,214,103, 83,240, 72, 99, 97,202,236,110,136, -146, 56,133, 19, 46,114,134, 77,125,116,189,128, 35, 98, 45,205,208, 0, 52,113,199, 66,224,130, 8, 54,198,120,199,237,130,161, - 7,113, 62, 60, 68, 4,232,166,156,196, 32,236,146,156, 18,155,131, 16,132,241,199,205, 41,231,127,229,249, 34, 6, 48, 66, 6, - 36, 51, 5,116, 53, 27, 83, 47,230,132,100, 50,186,137, 0,212,192, 17,129,133,166,147,105,160, 50, 88, 18,145, 52,141,169,246, - 8, 3, 38,234, 28, 60, 16, 2,148, 81,171,145, 48,152, 58,177,122, 13,163, 42, 18, 86,213,152, 25, 18, 32,101, 70,247,216, 51, -115,188,246, 70,139,165, 3,130,224,232, 63, 96, 34, 39,175,173, 34,160,153,113,156,230,163,214,175,205,205,152, 81,129, 16, 41, -244, 56,102,122,102,179,119, 85,109,174, 0,136,200, 66, 9,208,173,182,130,158, 68,192, 76,132,195,244,132, 0, 1,253, 54,135, - 86, 12, 25,213, 20,136,180, 42,128,147,176,187,235, 80, 25, 17, 44, 38,233,200, 12, 67, 93, 17, 8,177, 36, 97, 53,179, 82, 29, - 60, 64,239,168,200, 34,197,170, 8,245,221, 68,181,161, 97,234,186, 56,153,146, 36,103,141,135, 76,211,202, 46,177,144,100, 71, - 36, 72, 28,167, 74, 5,100,146,108,170, 8,149,128, 60,147,171,106,209, 56,110, 50, 82,136,144,170, 85, 66,202,153, 32,232, 5, - 72,136,176, 88,156,204,122, 94,155,225,233,210,154,133, 81,138, 16,216,188,169, 91, 78,236, 81, 33,102,204,211,110,117,122,210, -212, 37,101,194,228,126,198,126,211, 6, 72, 10, 72, 4,146,164,169,106, 45, 40,153, 58, 92, 21,117,163, 36, 41,130, 95,110, 38, -157,132,220, 10, 29, 82,223,107,105,102, 13, 17,147, 36, 53, 91, 44, 78, 79, 79,143, 48,212, 33,204,181, 22, 67, 35, 52, 18, 97, -201, 8,140,104, 35,198,192, 21,128,154,186,171, 33, 39, 66,149,145,199,131, 4, 6, 68,236, 64,174, 10,122, 70,246, 4, 32,119, - 16,234, 38,211,217,218,108,185, 56, 1,139,214,231,120,157, 3, 0,115,156, 76,251, 97,185, 10, 31,222,153, 24, 47,102,246,113, -101, 54, 24, 51, 1,163,173, 35,104, 44,128, 9, 92, 71, 86,198,248,114,128,241,209, 63,142,236, 45,234, 16,169,159,111, 77,243, -253,189,211,203, 23,230,165,104,208,150,163,137,132, 36,129, 0, 93, 13,195, 48, 0,130, 35, 17,167,238,253,239,125,250,131,239, -127,175,185,105,171, 71, 39,139,195,147,211,123,119,119,111,236,220,187,255,224,222, 75,175,191,118,124,114,178,182,177,177,181, -182,190,181, 54,235,187,110, 34,137, 19, 11, 83, 18,158,118, 29,167,110,210, 79,242,116, 50,153,204,186,233,108,109,125,190,185, -185,133, 76,230, 84,219,176, 92,174, 78,150, 85,219,130,232, 48, 9,118, 89, 54, 55,214, 62,242,161,247,156, 44, 38,146,166,221, - 36, 55,179, 90,171,132, 67, 61,117,218,138,187,179,144,123,171, 13, 71,134,172, 72, 89,174, 90,211,220,119,148, 72,135, 37,134, -235,119,236,255,145,214,250,212,211,207,252,241,239,125,227,250,141, 27, 79, 63,245, 30,230,110, 99, 99,107,247,254,189,171,111, - 94,223,219,219,127,249,234,181,233,252,252,198,229,119,191,235,201, 31,172,165, 94, 56,183, 49,212,226,214,180,106,151,179,164, -124,243,205,239,223,191,119,255,210,229, 43,207, 60,251, 28, 17,181,214, 82,159,235,114,185, 90,172, 0, 9, 81, 91, 93,221,122, -112,248,205,215,222, 64,130,205,110, 46,204,203,214, 98,223, 18,239,152,197, 80, 34, 26, 17, 79, 13, 51, 80,119, 85,165,209, 49, - 18,134, 44, 32, 22,107,122, 90,135,119, 60,114,241, 47,126,237,167,126,236,243, 95,152,174,175, 45,154,169,105, 25, 78, 78, 15, -246,110,223,186,126,237,230,157,157,221,221,135, 7,135,167,203,101,109,109,247,224,248,221,151, 47,253,236, 87,190,240,190,167, -127, 8,193, 23,104,247, 15,247,115,162,249,249,205, 55,111,221, 57, 61, 60, 93,155,229,243,143,156, 3, 6,107,163,215,136, 48, - 33, 96,236,232,154,106,228,152, 28, 40,212,121,116,198,148,245,136,159, 58, 54, 67,179, 6,212,197,227, 23, 28, 29, 61,186, 44, - 57,115,216, 67, 1,199,113, 3,128, 81,162,184,159,119, 19, 50, 7, 68, 74, 76,200, 90, 87,104,234,200, 68, 16, 40, 65, 84, 51, -198,145,209, 4,103, 64,175,178, 90,229,156, 21, 32,179, 40, 24, 33, 19,131,169, 1, 2, 81, 76,120, 29, 56, 77, 83, 98, 97, 83, -139,127,180, 51,163, 48, 34,119, 72, 44,194,140,162,174,102, 78, 66, 64,232, 21, 17,209,106, 65,192,232,181,114, 16,201, 1,153, -121, 40,133,131,188, 37, 12,224, 77, 91,202,177, 72,139, 70, 36, 0, 17, 11,130, 81,179,134, 72,156,168, 22, 5, 30,237,196,218, - 26,159,161,208, 88, 36,244,131,163, 86, 97, 20, 39, 5, 96, 62, 62,101, 2, 48, 36,228, 46, 51,104, 48, 44, 75,169,110, 74, 34, -110,202, 34,238,192,128, 78, 65, 8,193, 82, 10,115, 96,188, 44,160,222,142, 8,236, 72,172,218,172, 25,167, 28, 66,241,166,138, -102, 40,224,134,173, 57, 19, 26, 3, 49,101, 76,110,214,106, 97, 22,236, 71,200,226,200, 29, 81,211,152,188,145, 68, 93, 17,153, -200, 16,153,212,148,136,172, 89, 51,117, 51, 48,131,204,200,130,110, 13, 20, 16,128,188, 35, 6,199,218,204,205,195,104, 25, 16, - 91,102,116,160,214,154, 53,159,172,245,173,177,123, 13,114,148,171, 58, 0,139, 16,197,120,149, 49,161,150,106,214, 36,103, 54, - 80, 53, 63,219,205,226,184, 6, 13,235,179,145,116,153, 8, 92, 90,243, 90, 91, 39,236,193, 77, 99,116,112, 73, 25, 8, 3,254, -195, 57,187,181,234,192, 68, 40, 98,160, 69,109, 40,203, 82, 74, 98,234, 58,145,156, 23,203, 33,105,157,206,230, 41, 37, 0,170, -222,220,160,105, 75,196, 46,238,102,140,132, 44, 97,165, 22, 68, 1, 82, 71,244, 24, 46, 71,138, 43, 9, 33,154, 86,228, 4,140, - 8,184, 88,148, 97,177, 7, 30,171, 84, 5,181,240,226,170, 3, 19,174,134,234, 58,102,191, 40, 82,107,163,125, 53,234,193, 52, -142,235,201,193, 29,205,220,160,129, 69,161, 23, 0,132,185, 53,115, 15, 40, 82,188, 17, 66, 75,229, 8,108,106, 85,253,194,133, -139,215,239, 62,192,243, 27, 4, 58,194,186, 29,152, 71,204, 5,134,188,119, 76,172,187,169, 46, 87, 3,132, 22, 23, 96, 54,159, -205,215,230,143, 95,126,228, 57,249, 0, 0, 29,236,237, 95,189,181,243,224,225,238,119,190,119,245, 79,111,221, 44,165,178,240, -246,198,230,214,218,124,218, 79,215,167, 57, 73, 98,166,148,100, 58,153,244,253,100,109, 99,109,109,190,206, 93, 55,159,173,167, -212,245,155,219,156,216,155,173, 86,131,106, 89,213,246,242,171, 55,239,237,220,234, 39,243,227, 97,241,216, 59,223,113,110,125, -163,159,174,201,180,211, 85,117,111,117,112, 64,178,218,188, 14, 60,153, 17, 50,161,182,218,106,107,125,159, 64,213,155, 2, 80, -216,107, 80, 4, 1, 93,141,146, 32,167, 47,253,244,191,245, 11,255,221,127,125,111, 99,231,145, 43,143,106,171,231,207, 95,250, -214,159,252,201, 75,111, 92,253,192,251,159,249,185,255,248, 63,185,112,249,202,239,255,243,223,253,129,119,189, 11,193, 2, 58, - 56,155,111,221,191,250,242,157,187,119, 78,134,250,161,231, 63, 51,159,166, 86,205,234, 42,247, 25,137,202,114,112, 85,153, 76, - 97,113,122,120,120,240,141,151, 94, 62, 90,149, 73,215,169,107,107, 45,238, 85, 90,171,170,166, 68,171, 97,137, 20, 40, 84, 55, -213,224, 2, 78, 82,118, 38, 45,213,220,208, 17, 8, 74, 27, 78, 22,237,171, 47,126,238,175,252, 7, 63,119,225,242,163,142, 84, -170,170,182,197,233,254,253,219,183, 95,187,250,250,206,253, 7, 15, 15,142,246,142,142,150,139,229,222,193,201, 99, 23,207,253, -165,207,127,250,199, 62,247,105, 68,223,127,176,211,111,159,123,235,230,237, 55,174, 94,155,206,103, 59, 59,187,182, 42,235,179, -126,109,218,185,186, 91,188,200, 89, 36,129,162,186,183, 22, 56,147,176,115,140,241, 85, 28, 7, 49, 35,202,159, 25,205, 49, 33, - 49,163, 42,184,215,156,187,166,214,134, 65,152, 35,159,138,170,204, 12,230,234,144,187, 68,228,165,150,174, 75, 76,194,136,181, - 52, 64, 87,111, 58,152, 48,169,121,202, 25,204,134,170,194,112,118,142,182,196,156,114, 82,179, 97, 49, 16,115, 68, 1,155, 91, -240, 99,181, 86, 31,139, 22,134, 0,146, 18,104, 19, 22, 0, 0, 50,116,103,230,162, 3,199,190,146,196, 16,137, 18,160,187, 26, - 18, 18, 50, 57, 22,112,116, 39,230, 90, 86, 41,247,241, 98,117, 6, 68,170,173,138,196,157,197,209, 28, 29, 82,226, 81,113, 31, -234,231,174,115, 48,173, 5,137, 25,129,132,155, 90, 74, 28,100, 74, 68, 7,240, 26, 33,200,152,187,135,210, 90, 88, 56,181, 86, -188, 2, 36, 32,100, 38,116,115,112,103, 78, 22,156, 94, 68, 51, 55, 53, 22, 1, 98, 74, 2,138, 72, 56, 22, 1, 1, 91,211, 46, -165,230,102,174,196,236,166, 90,149, 4,136,201,213, 77, 27, 50, 3, 50,186, 2,139, 53, 99, 66, 55, 53,117, 74,146, 18,155,123, - 78, 73, 91, 99,161, 86, 29,221,193, 9, 28,180,173, 56,245,110,170,171, 37, 10,251,184,126,137,153, 27,155,154, 26, 96,116, 47, - 99,118, 26, 57,109, 38, 64,114, 87, 0, 39, 36,224, 88, 19, 32, 17,147, 66,133,198, 64, 34,194, 66, 60,162,215,218,233,178,168, -185,203,124, 40,238, 32, 85,141, 28, 19,179,145,180, 97, 32, 38,146,100,181, 13,117, 72,146,136,201,195, 65, 1,166,173, 57,144, -129, 50, 37, 18, 30, 86, 3, 35,246, 93,178,248,231,118, 32,198,196,164, 0,166, 99,147, 78,139, 57, 52,182, 72,126, 65,171, 74, - 96,147, 46, 87,179, 90, 86,246,118, 69, 30, 97, 24,134, 44, 66,203, 1,117,112, 22, 85,245, 86,193,128, 73, 80,220, 11, 84,109, - 80,129,187, 30, 28,117, 85, 41,172,118,191,249,139,255,171, 35,170,106,102,118,115, 39, 39, 71, 71, 64, 16, 34,118,104,128, 24, - 66, 91, 15, 64,157,123,124,150,164, 70,153, 90, 5,146, 24, 90, 33,132,148,114, 76,215,140,190,108, 98, 4,247,192,208,131,133, -107,194, 29,209,212,152, 24,172,153,219,217,151, 35, 16,123, 62, 26, 10,198,136, 78,180, 11, 65, 82,186,241,230,205,203,143, 94, -202, 57,169, 57,162,132, 22, 18, 65, 21,128,125,164,211, 1, 80, 48,210, 16,137, 48,161,152,171,199, 43, 23, 98,178,136,152, 19, -231,220,117,169, 35,161,186, 90, 92,191,121,247,234,157,183,190,243,242,107, 55,118,238,149,161,138,228,105,238,230,243,217, 36, -119,211,105, 38,196, 73,215,173, 79,167,147, 73, 55,153,205, 38,179,181,249,108,109, 58, 91,239,215,215, 36, 37,109,102,205,172, - 44,142,142, 15, 79, 22,167,181,180,220,205,114,223, 9,138, 48,206,231, 27,231,206, 95,220,220,156,243,100,221,173,229, 44,152, -178, 59,154,105,107,134, 4, 9, 49,158, 44,196,130,204,174, 10,232, 78, 89, 24, 0, 73,151,203,254,226,185,223,254,199,255,232, -219,127,242,205,167,158,124,170,159, 76, 63,241, 99, 95,157,110,204, 22,135,139,189, 7,251, 77,235, 31,252,243,223,126,226,137, -199, 63,250,225,247, 45,150, 38, 93, 71,166,191,251,245, 95,255,198,215,127,235, 43, 63,249, 51, 31,251,228,103,107, 25,180, 22, - 64,146,156, 80,171,154,105, 49,201,108,165,157,236, 92,255,235,127,227,191,248,250,119, 95, 91,159,247,171, 85,185,176,189, 61, - 95, 95,107,181, 58,192,233,201,105, 25,134,156,242,155,119,110, 85,211,241, 74, 6,160,166,147,156,215,231,211, 81,111,120,118, -244,157,246,179,191,244,181,175,124,245,199,191,234,146,145, 64,213,150,203,197,225,222,238,141,171,175,191,121,253,198,221,189, -253,227,147,195,131,163,197,241,241,241,201,201,242,241, 11,231,127,254,167,127,226,233,103,158,122,240,224,126, 63,159, 93,191, -118,237,230,181,155,156,165,169, 29,220,223,223, 92,155,117, 57,169, 41, 34,100, 74,205,106,184,208,152, 50, 33, 17, 66, 51, 85, - 48, 4,113,104, 24, 75,124,164, 62,231,210, 42, 40,168, 67,206,201, 92, 1, 33, 97, 42,173, 56, 2, 35, 97,132,237, 28,136,168, -153,117,185, 35,166, 40, 44, 73,102, 20,114, 3,166, 60,142,160,162,204,161,102,106,221, 36,183,218, 28, 12,153, 92, 99, 9, 9, - 0,214,212, 18, 39, 34,140,158,140, 48,169,105, 45, 45,165,132,128, 44,212,212, 36, 10,177,222,152,115,220, 90, 57,119,110,134, -236, 54,168, 67,132, 59, 33,102, 50, 36, 60, 18,143,220, 89,216, 92,181, 90,144,100,204,180,149,128,185, 75, 84,140, 0, 92,205, -152,200,221,136, 81,213,187, 46,155,121,211, 26, 0, 22, 87,151,204, 86,199, 61,153,186, 11,179,153,137,100, 67, 43,171, 33, 98, - 45, 34,130, 76,160,142, 72,214, 10,178, 8,161,157,153,118,106, 81, 97,228, 8,137,107, 35, 0, 3,226, 36, 86, 20,120,172, 53, -138,144, 3,122, 53,236, 16,116,124, 78,128,162,129,169, 90,213, 38,241,147, 52,148,212,153,183,248, 7,180, 86,136, 82, 68, 30, -213, 52,231,220,106,139,217,138, 1, 36, 73,109, 40,193,181, 66, 78,241, 49,213, 86,115, 18, 97, 81, 83,213, 22, 57, 14,100, 82, - 53, 68,116, 51, 71,167, 32,156, 19, 35,176,121,209,214,132, 5, 83,182,166,110, 70,204, 66,169, 89,117,111, 48,178,197,209,221, - 76,109,212,113,184, 73, 74, 93,146,102,229,193,238, 81, 78,105,190, 62, 51, 53, 87,211,214, 80,178, 1, 32,112, 4,147, 84,213, - 21, 56, 37,247, 22,139, 68,173, 42,194,165,148, 96, 53, 51,147, 33,130, 97,196, 76,136, 16,153, 25, 83,105, 37,246, 67, 41, 39, -109, 86, 90,109, 85,153, 17, 25,153, 5, 1, 68,146, 1,212,161,104, 85, 39, 99,115,103, 57, 61, 62, 57, 56,220,213,106,228,202, -146,114,151, 56,117, 93,215,207,230, 51,160,212, 90,107,173,153,214,176,212,129, 53, 78, 9, 40,161,213,227,211, 83, 9,162,101, - 98,113, 4, 96,136,156, 0, 66,112, 87,206,166,232,128, 99, 67,214, 61, 86, 85,128,238,220,242,108,195, 79, 86,136, 98,104,241, - 56, 31, 47,189,222, 0, 4, 8,204,192, 85, 67, 68, 22,183,182,248, 56, 28,140, 16,205,234,219, 34, 81, 24, 3,244, 4,110,206, - 0, 78, 35, 33, 44,226,164, 14, 77,219,214,230,252,240,116,121, 33, 39,112, 5, 68, 69, 96, 15,222,182, 65, 88, 59, 28,145,129, -129,131,157,160,222,176,161,140,243, 36, 36, 24, 95, 29,181, 89,105,203, 19, 28, 64, 85, 36, 63,241,206, 31,120,242,201,167,254, -204, 11, 47, 44,151, 39,187, 15, 30,220,218,185,127,237,246,206,193,193,225,238,238,222, 91,247, 7, 0,156, 78,251,249,116,182, - 49,155,174,207,103, 93,218,237,167,253,164,155, 76, 38,211,201,124,190,182,177, 53,153,206,211,108,118,121,253, 28,103,138, 48, -130,170,214,218,134,178, 58, 62, 60,122,120,184,159,136, 82,238,103,107,179,237,243, 23,250,217,250,250,214, 22,115,102, 49, 34, -106, 67, 73,185, 39, 17, 52, 67, 22, 48, 51, 67,233, 19,130,107, 41,216,117,122,186,124,238, 83,159,125,229,165,151,174, 95,123, -243, 51, 95,252, 10, 49,237,223,123,240,173,111,126,235,209,199, 30, 61, 93, 13,247,118,238,105, 93,125,236,249,231,147, 14, 90, -234, 31,254,193,215,255,240, 15,255,197, 39, 63,251,197, 15, 61,251,177,197,209, 33, 16, 70,116, 15, 84, 77,213, 29, 73,196, 12, -185,156,252,223,255,215, 63,248,227, 55,110,204, 38,147,253,195,147,147,211,147, 39,174, 92,209, 86,205, 29,204, 91,107,128,206, -153, 89,164,174,148, 9,213,177,169,102,225,217,100, 50,212,154,122,139,241,191, 0, 0, 32, 0, 73, 68, 65, 84, 83,239,174,165, -212, 62,167, 23, 62,250,236,207,126,237,167, 62,240,161,103, 7,117,115, 31, 86,203,131,135,187, 15,238,223,185,115,231,206,141, -219,119,119,118,119,143, 78, 22,123,199, 7,123, 15,143, 47,110,172,125,237, 43, 95,252,209, 79, 62, 55,153, 79, 87,106, 39,195, -242,224,232,144,147,116,235,179,183,174,223,157,247,249,202,133, 13,150,168,105, 48, 1, 54, 48, 74, 29,104,224,193, 71,103, 21, -144,147, 7,221, 19,153, 9,153, 16,176,214, 10, 8,196,161, 53, 5, 70, 1,211, 10,141, 3, 38, 14,224, 14,147,148, 28, 80,205, -123,201,136, 8,142, 93,159, 91,107,106, 78,234, 68,161,232, 4, 68,114,213,234,134,230,200, 88,107, 67, 64, 55, 48,247,240, 64, -185,107,104,139,221, 13,124,124, 22,150,166,222,140,153,144, 66,130,234, 8, 10, 40,170, 42,210, 57, 56, 10, 49, 8,184, 7, 7, - 76, 35, 96,204,227,148, 50,100, 64, 0, 46, 40, 10,170,205, 17,145,162,137,175, 78, 44, 41,199,240,210, 70,167, 93,120,137,220, -193,192,208,145,176,214,130, 0,174, 6, 72,204, 68,146,212, 26, 50,185, 67, 12, 43, 34,174,101,214, 76, 35,242,200, 20, 56,162, -218, 40, 74,190, 36, 97, 98, 50,136,133, 0,231,142, 1,220, 85, 41,101, 12,151,133,153,213, 6,132,241,182, 32,137,176, 22, 96, - 66, 43, 54,154, 60, 34, 75,202, 4, 97,109,115, 71,116,238,216,180,142,139, 27,115, 34,118,247,160, 50, 0,146,154, 98,228,249, - 72, 0, 76, 91,117,215,113,101, 13, 0,236, 8, 36, 30,224,176, 2, 4, 68,201,221,192, 60,224, 97,170,230, 22,116,172,145,172, - 3,129,158, 39, 22, 98, 71, 4, 17,116, 2,104,234,133, 16, 29, 82,107, 85,173, 16, 1, 5, 12, 85, 13,201,153,199, 37,170,106, - 33, 29,214,182,102, 4,160, 35,202,132, 1, 33, 81, 38,164,170,101,252,212,100,236,241, 68, 73,141,216, 75,109,173, 20,201, 93, -160,104, 69,216,208,173, 69,160, 21, 24,201,208, 68, 24,212,171,155,170, 82,232, 41, 18, 18,160,187, 11,146,129,215,214, 70,216, - 25,114,171,166,238,160, 53,231,180,182,182, 57, 12, 75,109, 67,162,113,101,201,132,197, 12,181, 32,160,176, 24,146, 89, 3,183, - 88, 42, 16,141,221, 85, 65, 70,108, 22, 3,243,209, 76, 10, 13,244,108,171, 22, 86, 97, 26, 11,157, 68, 28, 50, 63,179,234,142, -203,227, 83, 68,110,222, 24, 16,200,131, 75,224, 4,132,226,224, 96,228,214,136,200,180, 97,236, 77,105, 12,235, 98,244,173,131, - 80,133, 48,210,175,144,220, 1, 41,131,215,179,225,126,244, 15,130,255,226,221,116,118,176,187, 15, 91,219, 68, 8,152,196,213, -225, 12,255,129,233, 44,208,102, 48, 82,159,244,140,221, 64,113, 77,139,215,210,153, 81,203, 1,128, 68,204,218,201,233,242, 20, - 86,196,104, 38, 23,206, 93,186,124,233,137,231,158, 69,132,225,244,116,117,120,124,178,179,187,247,242, 43,175,124,239,234,173, -171, 55,110, 0,203,133,115,155,143,158,191, 52,155,118,243,126, 34,249,158,112,238, 3,149,214, 79,214, 55,183, 38,179,141, 60, -233,147,116,146, 83,234, 36,119,201,212,221,188,169, 45, 78,151, 39,199,215,154, 42, 17, 11,243,185,139, 23, 47, 92,188,188,126, -110,179,239, 58, 16,104,139,193, 1,234, 80, 60, 36,246,165, 98,206, 36,162,110, 93,234, 62,253,226,231,167, 91,219, 23, 46, 63, -114,188,127,112,227,218,213,255,231,215,127,121,123,125,253,116,181,120,235,173,183,160, 13,159,248,212,103,182,103,253, 31,252, -238,239,189,227, 7,223,245, 31,254,149,255,172,155, 77, 26,146, 14, 39, 44, 9, 39, 93,215, 73, 43,197,128, 16,204,134,147,181, -245,173, 95,251,213,223,248,123,255,240,159, 54,231, 46,165,213,170, 72,151,193,124,181, 42,169, 75, 85,171,106, 99, 64, 70,122, -199,229,203,175,188,121,141, 0, 28, 44, 11,111,172, 77,205,218,149,243, 23,111,220,186,181,181,189,245,254, 39,159,250,241, 63, -251,153,103,159,253,232,198,246,249,211,229,178,169,158,158,156, 60,184,119,103,111,247,254,237,187,247,110,220,185,181,127,112, -124,188, 92,221,122,235,238,131,135,123,127,241,139, 47,254,133,159,248,242,230,230,218,209,225, 94,230,245,195,197,225, 27, 87, -223,156, 77, 38,119,238,237, 14,135, 39,231,214,231,157, 8,114,118,119, 98, 98, 65, 87, 7,115, 38, 4,150, 86, 74,100,106,137, -192, 26, 10,241, 96,141,129, 34,234,225,238, 72, 28,224,163, 40, 2, 53,109,128,156, 9, 85,181,180,138,196,147, 46, 7, 32, 32, - 84, 68,136, 40,157, 52,211,230, 70, 14,230, 77, 9, 18, 39,117, 48, 71,118,144, 16, 62, 32,161, 91,173, 3,177, 16, 51, 2,186, - 89,151, 83,171, 88,181,141,152, 25, 36,179,168,141, 40, 16, 15,181,246,210,145, 36,139, 9,162,161, 27,142,110, 85, 30,105,230, - 74,128, 18, 66,154, 56,243,184,129,163,121,150, 28, 56, 93, 70,100,196,218,204,201, 89, 82, 60, 79,155, 22, 83,175,171,146,166, -125, 0, 59,205,148, 19, 3,140,214, 58,107,149,115,206, 93,174,181,130,105,100,189,135,213,138, 89, 8, 64,221, 9, 0, 17, 73, -216, 76,205, 3, 88,233,238,161,230, 0,102,106, 85, 35,199,207,156,145,208,208,208,145,186,190,149, 26, 91,229, 32,218, 56,128, -153,194,219,245,245,216,174, 26, 32, 19,178,181,210, 2,157, 6, 68, 72,212,165, 60,156,174,154, 55, 8, 47,145, 96,173,134, 26, - 60, 63, 7,183, 62,167,218, 84, 56, 57, 90,213, 33,246, 14,105, 50, 37,240, 50, 20, 24, 7,176,128, 34,214,106, 60,245,180, 86, - 18, 38,193,214, 20,153, 18,147,162, 32, 48,160,141,232,140,179,185,176,154, 74, 55, 65, 34,107,197, 20,192,226,212,103, 41, 51, - 52, 0,176,170,154,133,153,129,144, 99,202,207,146,247, 15, 86,230, 46,140,156, 97, 48,215,218,186,190,119,133,230,170,214,136, -208,145,209, 81,181, 16, 64,238,115, 43,173,148,194,130, 72,232,200,129,149, 87, 83,108,196,146, 40,187,185,129,129,153,165,156, -213,131,165,140,225, 17, 7, 8, 40,144, 34, 83,169, 21,207,230, 32, 73,242, 74, 85, 75, 33,135,196,201,184,204,102,179,196,188, - 26, 18,185, 49, 11, 39, 81, 85,172, 13, 69,130,122, 31, 17,222,218, 74, 40,121,153,141,144,145, 18,254,214, 63,250,223, 81, 3, - 37,143,142, 72, 97,233, 36, 32, 16, 68, 84,173,196,130,196, 62,194,152, 76,213, 1,128,199,118,250,216,117,197,177,240,228,110, - 30,199, 40, 7,116, 71,183,134,163, 50,209,112,212, 33, 34, 88,177,177, 86, 30, 75,218, 51,167, 40,134,183, 80, 66,140, 0, 17, - 4, 8,138, 25, 56,162,129,195,157,187,187,143, 95,185,140,228, 72, 35,182, 31,198, 83,191, 3, 56, 50,187, 2,131, 7, 7, 33, -226, 94, 28,190,196,208, 13,135, 77,155,198, 20, 4, 17,131,185, 71,238,201, 57, 78,123,132,104,224, 50, 66, 78, 65,132,226, 70, -127,227,250,237,215,174,223,122,253,234,213,215,110,236,172,134,210,117,253,198,218,250,230,124, 50,157, 79,103,169, 67,132,220, -165,217,108,125,115,243,220,124, 99, 61,119, 29, 26, 32, 72,158,244,192,136, 33,218, 32, 81,109,106,208,180,173, 78,142,202, 48, - 8,229,205,139,231,182, 46, 93,186,116,241, 98,234, 58, 45, 53, 77, 38,222, 84, 85,223, 22, 66,155, 99,191,190,166,165,252,242, - 63,248, 63,167,235,219,151, 46, 93,248,111,255,230,127,243, 96,239, 97,173, 69,107,121,238, 67,207,188,227,209,119, 60,253,228, -147,239,251,224,199, 55,183, 55, 92,146,183,149,244, 19, 91, 13, 36, 93, 63,159,212, 58,232, 80,129, 56,165, 68, 90,255,248,119, -191,241,215,255,214,223,218,217, 63, 74,204, 71, 39, 71,203, 85, 57,183,185,121, 97,107,163,168,166,156,202,106,213,180, 17,139, -160,212, 90,110,188,181,147, 50, 45,150,101, 99,109,106,102, 63,255,239,255,220, 95,253, 79,255,203,255,233, 23,126,225,246,245, -239,127,233,197, 79, 95,184,116,217, 37, 32,124,245,112,111,239,240,240,225,209,225,209, 27,215,222,188,113,251,222,201,106,113, -178, 88, 93,187,125,103,150,250,191,246,151,255,252,103, 62,241,252,225,241, 97, 3, 95,213,114,237,213, 87,239,237,237,247,125, -191,251,214,206, 52,229,249,218,148,137, 8, 57,165,148, 88, 64,216, 93,107, 53,109,205,220, 0,136, 4,201,177, 13, 13,133,221, - 77, 18,187,122,164, 9,205, 28, 49, 34, 35,132,100, 90, 21,153,209, 44,119, 73,213, 90, 85,102, 96, 22, 98, 65, 36, 73,125,179, - 6, 54,158, 39, 28, 16, 5,234,170,177, 48, 51, 69, 82, 62, 5,108, 46, 78, 0, 6,200, 4,224, 72, 96,106, 6,200, 8,165, 21, - 10,218, 96,180,100, 71,220,134,155, 1, 48,103,166,166,205,220, 25, 36,229,206, 32,138,154, 73, 0, 86,101, 32,162,156, 39, 10, -141, 16,204,193,170, 49,147, 33,196, 57,212, 44, 74,211,232,224,230, 42,148, 56,145, 27, 48, 51,168, 22,109,163,212, 9,128,156, - 33, 33, 51,214,170, 76,140,230,128,209,139,134,166, 53,165,142, 56, 46, 57, 70,200, 66, 92,181,164,148, 84, 13, 97, 28,122,187, -197,129, 14,212, 42,115, 30,203, 64,200,136, 14,174, 36,217, 17, 25, 89,181, 34, 81,213,198, 64,196,236, 26,210,133, 56, 50, 33, -145,152, 85,119,167,196,164,212, 90, 5, 48,109, 78, 76,136, 40,146, 1,176,105, 49, 68, 10,142,184, 26,198,250, 97,116, 41,123, -109, 6, 4,125,215, 33, 51,152,155,150, 88, 43, 70,126,159, 49,155,215,106, 85,136, 3, 20, 21, 19, 39, 18,102,150,161, 12, 96, - 72, 76,136, 4,110,102,166,224,224,144,187,132,196,146,179,154, 81, 56, 78,227, 73, 16,128,179, 48,172, 3,149, 58,140,148, 45, - 0,199, 81,148,201,140,203,197,240,224,193,131, 43,151,182,103,235,179,166,238,148, 90,195, 54, 12, 77,149, 40, 26, 81,132,228, -173, 24, 49, 16,208,170, 12,113, 16, 80,211, 82,180,147,132,194,109, 85, 57, 49, 16, 73, 74,230, 22, 93, 13, 12,155, 28, 82, 45, -131,153,137, 72, 98, 49,194, 86,139,154,215,170, 1,110, 19, 18, 98, 82,117,176, 2,156, 90, 43, 76, 76,136, 0,212,172, 90,169, -218,154,121, 35, 76,224,158,102, 19, 68, 9, 46,152, 19, 15,171,149,151,210,101,246, 36,194,201, 12,142,142,143, 5,226,210,139, -238, 62,246, 32, 72, 40,104, 51, 14, 72,156, 67, 92, 26, 45, 56, 64,231, 24,158,140, 73,209, 8,207,135,227, 20,198, 12,175,171, -159, 81, 92, 98,220,130, 72, 96, 28, 75, 8, 31, 95,174, 52, 86, 63,224,236,151,130,255,154,150,247,140, 91,230,103, 76,122, 8, - 22, 41,225,172, 79,123, 39,203, 75,155,107,234, 68,140,102, 21,130,142, 29,215, 13,139,253, 84,132,123, 70, 72, 69,224,115,240, -172,124, 11, 35, 53, 14,192,195,166, 23,147,121, 25,239,119,174,227, 92,151,221,213,155,123,107,182, 92, 41, 34,156,191,116,241, -241,119, 60,254,133,207,125,250,116, 88,220,187,123,239,234,181, 91, 55,222,186,127,239,222,189,187,247,238,153, 67,215, 79, 55, -231,179,205,173,197,225,241,193,185,147,205,148, 38,136,140, 72, 57,167,110, 50,235, 39,211,148, 59,201, 89,152,145,121, 50,233, - 39,147,206, 1,218, 80, 86,171,229,245,239,125,239,205,239,189,220,165,126,227,252,185,141,237,237, 78,120,190,182, 62,217, 88, - 67,119,107, 14,224,175,253,191, 47,253,218, 47,255,147, 95,254,181, 95,249, 11,127,254,103,103,125,102, 65,119, 72,146,250,156, - 24,253,254,253,187,239,126,250,153,199, 30,127,108,255,224,225, 72,141, 82,227,110, 2,224,101,185, 52, 85,100, 33,145,148,228, -205,215, 94,249, 59,127,255,239, 31, 45,135, 89,151, 22,203,213,114, 53,116,185,203,185,171,181, 57,122, 83, 87,181,120,116,161, -224,241,201, 98,213,170, 2,159,219,220,120,228,194, 57, 97,126,228,210,133,110,123,246, 31,253,181,191,250, 43,255,219,255,178, -182,190,161, 78,229,224,240,224, 96,239,193,222,195,131,195,195,163,197,201,181, 27,119,238,237,239,181,170, 59,187, 15,143,142, - 15,191,252,194, 39,254,221,159,252,242,250,250,116,247,225,253,188, 54,191,246,242, 75,107,219,155, 23,223,249,248,155,119,238, - 30,237,238, 95,218,222,144, 94,220,162, 10,203,136,136, 66, 6,232,192, 22, 40,110,197, 68,216,212,205, 28, 37,152, 30, 52,246, -175,193, 28,199,149,125, 92,203,173, 58, 68, 75,159, 88,155, 3,250,116,218,199,210, 39,172,108,234, 45,101,118,247, 50, 52,140, -163,119,179,156, 5, 9,195, 59, 71,132,106,200,228, 76, 76, 76,224,168,214,162,162, 41,210, 51, 98, 45,171, 94,164,152, 67, 76, - 23, 61,146, 18,136, 72,146,208,155, 85,173, 8,200,146, 98,221,202, 68, 0, 1,186,178,148,251,248, 37,162, 97,244, 67, 40,129, -169, 18, 37, 53, 51, 51, 80,144, 94,226,105,149,164, 35, 64, 83, 67,162,214,154,170,137,176, 7,103,214, 77, 58, 50,115,109, 22, -220, 0, 36, 34, 2, 7, 55,107, 57,231, 51, 26, 16, 18, 49,130, 27, 40, 33,181,214,224,172,175,128, 8,192, 36,145, 86,198, 56, -183, 49,113,236,207,200,157,130,149,214,188, 49,139, 1,164, 80,184, 0, 32,135,234, 18,152,132, 24,181, 22,143, 31,111, 51, 27, - 75,235, 68,108, 72,152, 82, 87, 91, 9,224, 54, 19,187,153,199, 1,255,109,193,125,160,208, 18, 49,227,104,223,140,249,155,141, - 42, 54,201,161,100,242, 4, 20, 55, 6, 34, 66, 65, 65, 86,183, 86, 75, 76,219,209, 99, 83,129, 72,152, 69, 90,109,170, 74,128, -173, 41,186,183, 90, 85, 27,117,226, 26, 99, 94,119, 36, 85, 19,242, 46,245,170,205, 65,221,156,144,141,213,155,213, 65, 79,150, - 53, 75,146,212,155, 34, 16,187,130,171, 34,209, 36,137,154, 87, 53,134, 38, 44, 68,160,106,205, 90, 98, 30,170,170, 25,177,228, -204,181, 26, 65, 3, 33,117, 19, 96, 53,139, 52,151,187, 91, 45,200,137,132,130,238, 25,208, 8,112,137,225, 3, 19,130, 27, 35, - 59,154, 59, 50, 99, 3, 38,240, 46,247,173, 53, 0, 26,139,120, 29, 34,145, 14,232,136,210,119,128,196,132, 70,104, 13, 93,107, - 74,130, 76, 90,155, 15,197,217, 88, 36, 5,130,135,136,226,141, 58,206, 97,194,255,130, 4,166,129,164, 80, 3, 24,225,233, 49, - 93, 33,143, 85, 43,208,104, 45,141, 53,202,219, 61, 56, 64,115,115,112,142, 15,193, 60, 94, 0,177,186,137,174, 99, 72,209,213, -235,219, 61, 41,124,219, 75, 69,177, 7,141,247,205, 8, 42, 3, 2,100,154,207,231,119, 31,158, 92,220,218,208, 90, 73,198, 63, -199,209, 9,221,205, 1, 10, 1, 3,158,233,156, 70,240,231, 56,150,123, 59,129, 57, 70,191,208, 1, 89, 77, 3,135,141, 68,238, - 22, 29,244, 51, 3, 20,158, 93, 29, 16, 1,106, 25, 74, 51,192, 37,170,157, 59,119,225,145, 43,143,125,174,239,202,176, 60, 61, - 89,188,241,250, 27,111,222,185,247,198,155,215,175, 94,219,239,186,254,253, 79,231,205,237,201,209,193,126, 81,155, 72,234,102, -199,194,204,148,178, 72,215, 79,152,243,100,210,167,110, 42, 29,231, 44, 93, 39,179,201, 84,209,172,217,201,201,209,225,222,195, - 58, 44,221,177,235,251,233,124,109,251,220,165,217,108,242,218, 75,223,113,228, 23, 95,252,209,247,190,247,153,215, 95,253,254, -201, 98,245, 35, 31,250,224,131,135,247,111,221,191,247,218,141, 91, 63,250,252, 39, 94,254,206, 31,125,240,233, 31,218,122,228, - 49, 19, 70, 78,192,224, 90,221, 73,235,138, 40,113,198, 46,165,211,211,147,255,241,239,253,221, 27,111,221, 21,162,218, 60,247, - 19, 60, 62, 78, 57,137,160,162,215, 82,169,217,216,196, 3,108,170, 9,248, 61,239,124,226,226,214,230,250,250, 26, 16,150,213, - 10, 12,202,241,162, 52, 61,172,181, 93,191,122,241,252,197, 7,247,119, 30, 60,124,120,119,111,255,238,253,135,187, 7,135, 67, -109,139,197,170,149,242,228,163,151,126,230, 39,254,242,179,239,123,207,238,189,157,219,183, 30,174, 63,246,232,245,155,215,110, -237,220, 91, 27, 86,175,127,239,181,173,233,108,227,194, 6,145,100, 72, 21, 65,152, 57, 37, 4,112, 16,119, 37, 36,102,170,138, - 8,174,224,102, 77, 56,155, 55, 38,142, 37, 60, 50, 50, 73, 80, 28,123,145, 56, 75,164, 46, 17, 99,107,174, 45, 96, 15, 98,238, -146,115,120,236,204, 20, 9,107,105,204,148, 19,107, 43,205, 92,128,152, 72,221,204, 32,117,130,103,180,114, 55, 3, 26,205,157, - 66,132,152, 76, 27,142,188, 16, 68, 55, 34, 34, 34, 1, 84,142,122, 43, 17,130, 10,140,167, 19, 38, 34,114, 64, 38,142, 41, 1, - 49, 19,176,155, 26, 52,226, 12,140, 86, 11, 34,114,226, 82, 42, 40, 72, 39,230,170,181, 32,114,128, 7, 36,103, 48, 0, 0,117, - 23, 30,153,125, 72, 72, 32,173, 54, 64,140,189, 8,191,109, 27,117, 96, 78,110, 54, 50, 67, 16,163,106, 27,129,180,241, 16,213, - 20,136,136, 9,137, 77, 13,140,192, 13,192,145, 29, 99,126,196, 36,196,181, 44,199,157, 23,202, 8,140, 68,134,179,177,170,187, -186,183, 58, 40, 19, 35,177, 89,137,210, 53,170,155,121, 74,172, 6, 67, 89, 17, 51,185, 1, 35,186, 6,156, 42,254, 3,194, 88, - 20, 50, 11, 0,154,214,102, 65, 56, 32, 66,114, 4,100, 71, 38,107,110,213,144, 72, 56,215,225, 20,226, 21, 70,193,131,138, 83, -188, 3,185, 27, 34, 26, 1, 75,151,192,177, 12, 43, 17,110,238,225, 96, 28, 86,131,107, 67, 66,111,109,124,225,177,152,154, 91, -197, 52, 69, 97, 66,215, 85,165, 88,107,135,113, 17,125, 88,173,214, 38, 61,112, 82,195,214, 76, 85, 83,202, 68,104,102, 96,218, - 39,169,138, 10, 4,222,136,176, 26,186, 26,161,115,159,181, 85, 48, 99, 17, 36, 0,192, 24,130, 49, 32, 82,114, 85,111, 13, 56, -210, 60,142, 64,194,236,214, 98, 47, 11, 68,232,134,128,106, 13,200, 4, 18,133, 61,180, 66,112,161, 17, 49,246, 28,174, 81,163, - 21,228, 36,137,220,206,158,219,241,208, 66,138,105,134, 70,254,197, 93, 68, 0, 7, 25,171, 69,163,150, 41,200,145,163, 35, 42, - 82, 98, 8, 60,202, 60, 1,221,226,102, 38, 86,219, 40, 58,138,212, 83, 92, 30, 99,139, 13, 64,196, 58, 62,211,149, 70, 58, 54, -142,185,218,168,135,185,219, 72,230, 20,243, 10, 56, 78, 89, 96, 20, 37, 70,252,214,222,174, 5,198,159,232,230,253,116,218,238, -222, 63, 89, 14,179, 94,220, 13, 34,179,115,246, 30, 64,148,241,171,233,196,142, 16,234,153, 72, 42, 32,142, 23,195,120, 85, 32, -193,152,130, 38,160,248, 47, 84,164, 4, 1, 24,194, 0, 39, 16,140,151, 8, 15,168,207,217, 35, 0,154,153, 46,151, 67, 41,128, -222, 77,250,103, 63,254,209,231,152,172,233,238,253,123, 47,125,255,141,189,131,213,206,157,157, 63,125,229,123,203, 82, 38, 93, -119,126,107,123, 99,125,125, 99,125,115, 62,237, 19,103,206,196, 44, 73, 40,231, 46,231,174,239,167,169,159,244,253, 84, 82,154, -116, 61,174, 37, 71, 91,158, 46, 87,203,227,221,187,183,110,190,249,170,186, 79,187,201, 39, 62,254,195, 31,250,145, 79, 28,236, -239,253,238,215,127,243,167, 62,255,217,225,244,120,177, 56, 80,131,195,163,197, 75,175,191,254,161,103,158,249,214,119,190,253, -226, 99,239,244,178,114, 4,104, 8, 77, 49, 37, 51, 96,132, 76, 12,173,254, 15,127,251,111,254,206, 31,253,233,198,218, 70, 35, -211, 86,115,215,109,111,108,181,218, 8,200, 84,193,161,105,139,177, 44, 1,182, 90, 63,252,222,167,250,190, 83, 53, 51,155, 77, -103, 31,123,254,249,207,124,230,179, 77,109, 50,157,130,211, 43,175,190, 6, 79,182, 27,183,111, 95,187,181,115,231,193,131,213, - 48, 20,243,182, 24, 38, 57,255,248,103, 95,248,202, 23, 62,173,170,119,239,220, 74,235,235,215,191,255,242,195,239,125,127, 99, - 99,122,120,120,124,176,179,119,121, 99,115, 50,205,194,162,205, 21,130, 28, 50,126, 1,205,212,192, 28, 76, 56, 81,130, 85,171, -238,142,156, 16, 49,167, 14, 33, 58,132,241, 56, 69, 74, 57,139,171, 25,186, 75, 78, 35,146,158, 32,247,221,104, 24,163, 68,200, -241, 5,213, 82, 78,151, 67,206,194, 35,154, 70, 82,192,143,220, 83, 74, 62, 42,188,226,235,193,103,103, 43, 72,146,136,197, 74, - 68,205, 8, 37,155,233, 72,123,113,116, 4, 38, 2,228,177,177, 77, 33, 81, 26,241,134,169, 79,181, 52, 0, 15, 69,158,105, 35, -102, 2, 80, 43,194, 25, 88,172,213,161, 86, 2, 28,159,252,224,136,236,232,216,140, 18,213,178, 66,226,156, 82,220,141,221, 44, -158,251,241, 61,119,119, 55,100,145,104, 3, 17, 16, 75, 48, 97, 4,193,213, 12, 34,216, 35,210,180, 98,152,233, 41,150,194,224, -110,228, 20, 41,173,152,210,140,226, 87, 96, 80,111, 90,137, 50,184,134,129, 62,236, 36, 65, 7,118, 51, 66, 84,115,145, 17,194, -133,128, 68, 29, 34,168, 58, 75, 66,211,214, 20, 0,162, 95, 0,163,201,131,153, 32, 80,248, 6, 96,136,221, 36,153,186,171,130, - 27, 3, 26,161,187, 27, 24, 2, 83,226,128, 18, 59,162,105,149,212,163,164,148,194,158, 75, 96, 45,126,199, 36, 34,147,201,112, -114, 72, 44,128,160,173, 34, 80,234, 18, 18,101,183,178, 90,106, 27,136,197, 69, 76, 21, 49, 17,153,153, 86,213,142,147, 18,154, - 57,212,202, 34,158,114,171,133,200, 72,164, 1,158,158, 12, 76, 48,153,117,165, 53, 64,100,164,212,101, 83, 31, 81,107,224,222, - 84,107, 35,169,204, 29, 34,116,137,107,169,230,208,106, 37,128, 81,237, 11,160, 69,153, 9, 0, 76, 13,160,178, 8,117, 83,211, -218,154,163, 41,165,222, 90,117, 48,171,134, 4, 73,146,161,184, 14,102,114,198,103,140, 60, 36, 26,186, 48, 18,231,214, 66,179, -213,136, 48,117, 29, 1,105,112, 72,226,123,135,224,148,180,148,152, 67,165, 44,110,222, 90,105,165,184,187,140, 97,198, 49,142, -248,175,218, 73,129,138,119,120,155, 83,112, 54,163, 7,208,218, 16,129, 41,153, 85,243, 58, 22,220, 34,170, 96,128, 0,110,141, - 32, 74,171, 24, 61, 67, 3, 37, 20, 4,114,215, 8,179,140,201,106, 56,203,157,141,117,168,241, 1,122,134, 47, 59, 59,128, 0, -132,180,151, 0,207,109,174, 63, 60, 56, 90,127,244, 66,169,198, 36,128, 42, 68,218, 52,226, 51,145,135, 69,112, 36, 68, 54,107, -209,207, 54,116,114,114,194,241,234, 48,162, 17, 4,128,200,220, 9, 35,102, 27, 16,232,120,228,171,187,142,140,228,241,236, 31, -255, 38, 20,241,128,120, 93,185,171,170, 46, 22,139, 88,225,174,111,109,253,200, 15, 63,251, 91,223,248,227,223,251,163,111,189, -118,227,230,167,158,123,126,123,107,253,254,238,222,235, 87,223, 60, 58, 57,238,251,188,177,190,121,254,252,185, 11, 91,219,211, -105, 63,157,206, 24,129, 25, 9, 40,229,110, 54,157, 38,233,186,233, 44,165, 46,229,220, 79,182,231,235,235, 90, 74, 25,202,201, -233,241, 80,135, 86,245,245,111,127,235, 93,143, 93, 42,101,200,235,155,107,243,181,217,164, 59, 58, 89,188,114,237,198,149,139, -151, 76,245,232,224,112, 99,115, 99,121,184, 39,147, 57, 79,167,186, 28,242,100,138,222, 82, 74,127,247,191,255,219,255,248,215, -127,147, 57, 61,220,223, 27, 90, 69,132,182, 82, 97,110,173,196, 20, 34,170,192,113, 57, 51,183,196, 60,233,242,233, 98,129, 72, - 79,189,235, 7,127,248, 35, 31,221, 62,183,209,245, 51, 18,249,157,127,246, 27,111,188,246,202,213,107,111, 14,195,112,253,238, - 91, 15, 15, 78,139,181,229,170,144,234, 11, 31,124,207,159,251,210,231,207,111,111, 62,184,127,127,178,185,189,191, 58, 93, 60, -188,255,206,119,255,192,206, 31,125,231,251,223,125,109,123, 99,109,243,220,102,238,114,164, 44, 42,214,113, 81,147,200,154, 69, -199, 26,212, 73, 88,171, 41,120,230,228, 96, 34,226, 26,114, 92,200, 97, 66, 7,204, 57, 1,178,187,147, 41, 50, 35,146, 89, 35, -238, 56,200,130,238,204,145,192,179,156,186,161, 22,100,154, 79, 59,179,120, 36, 9,178,171,170, 57, 8,163,131, 51,137,189, 13, -209,139,128, 61, 64,238,123, 83, 4,109, 30,140, 64,119, 98, 38, 32, 0, 30,133,238,161, 37,116, 35, 97, 7, 32,162, 40,136, 34, - 65,128, 33,213, 92,152,192, 65, 56, 53, 80, 34, 86, 45,110,209,218, 35, 68,200,146, 3, 56, 5, 30,127, 10, 2,120,234,165, 21, -165,208, 73,171,143, 50, 2, 64, 48,123, 27, 44, 67, 8, 14,134, 30,146, 63,118, 3, 51,141,241,135,129,159,145,100, 80,181,153, -130,116, 56,158,240,131, 75,235,216,154, 33,115, 52, 91, 17,188, 25, 1,145, 89,163, 51,253,171, 42,196,110,211,154, 5, 1,198, - 65, 9,216, 84, 57,146,215,142,200,140,146, 64, 27, 33, 37,162,166,213,194, 75, 5, 96, 77,213,148,137,133,146, 6, 6,153,101, - 44, 17, 57, 88,173, 65,169, 66,201, 96,142,110,220,101,107, 10,224, 90, 27, 9,121,115, 4, 71,150,216,177,155,153,170,145, 90, -164,143, 42, 53, 34, 6,215, 60,157,107,173,174,141,137,157, 40,165, 84, 22, 75, 71,101,230, 48,235,157,229, 44, 44, 88, 20,140, -160,110, 99, 86,149,178, 5, 80,137, 25, 60, 91, 45,204,172,181,102, 97, 7,226,177,125,137, 94, 13,163, 66,135,224,109, 60,251, -198, 56, 0,137,173,233, 56,244, 33,140, 0,110,107, 21, 73,146, 72,109,213, 90,147, 62,129, 59,139,184, 91,171,154, 66, 45, 87, -203,216,245,100,112,211,102,205, 96, 28,214,199,215, 47, 32, 2,156,152, 99,101, 24,145, 93, 51, 34,102, 18,107, 96,228,241, 91, - 65, 96, 7,109,102,208,138,197, 44,197, 89,209,136, 29, 60, 1, 33, 34,242,191,253,181,159, 12,202, 3,112, 60,116,199,146, 66, - 60,112,221,194,199, 21,138, 38, 0, 87, 10, 90, 19,130,155,186,213,113, 55,233,103, 22,148,113,186, 98, 99,155, 96, 28,144,194, -216, 31,119, 3, 60, 83, 3, 4,154, 17, 99,154,159,130,124,233,160, 65,173, 4, 66,114, 15,108, 11,140, 41,158,200,194,251,124, - 62,219,221,125,176,182, 54,163,120,153, 32, 56,208, 56, 96, 57,219,242,198,145, 16,157, 16, 1,213,198,162, 35, 33,134,112, 19, -199, 85, 65, 24,122,199, 63, 35,238, 10, 20,175, 42,139, 42, 4, 24,160, 5,146,231,237, 59, 8,156,129, 19, 60, 36, 49,132, 62, -242, 23,180,153, 3, 18, 19,148, 87,223,120,227, 51, 47,252,232,127,254, 55,254,171, 23, 62,249,185, 63,251,226,143,126,225,203, - 95,254,212, 71, 63,241,200,246,214,106,177,188,117,251,238,203,175,190,122,245,250,245, 59, 59,247, 79, 78, 22,195, 80, 12,125, - 24,134,227,211,211,227,227,163,227,227,189,163,163,253,211,163,189,211,197,137,213, 1,220, 89, 48, 75,126,223,199,159,187,119, -251,214,111,255,234, 47,205,166,179,115,151, 46,182,213,106,103,119,247,244,116,209,106, 61, 93, 13,139, 97,121, 97,123,163,148, -242,222,119,191,211, 83,143,146,235,233, 41, 96, 75,179,201,172,159,252,234, 47,253,195,255,249, 23,255,143,190,235,114,234, 87, -101, 89,181,182, 86, 75, 45, 67, 41,196, 24, 54,203,197,106,209,106,115, 83, 97, 34,226,156,152,192, 54, 54,230, 47,126,234,133, -143,124,240, 3,243,245,245,214,170,145,124,243,247,127,175, 44,235,239,125,243, 27,183,238,188,117,188, 92,238, 29, 31, 13,181, - 45, 78, 86, 87,182, 55,126,254,103,190,242,111,124,241, 69, 93,157, 62,184,123,239,202,211, 79,237,157, 30,190,244,167,223,157, - 76, 38,191,243, 7,127,114,124,111,239,252,230,124,146, 66, 53,133, 89,114, 48,172, 19,243, 25,132, 20,171, 58,161,199, 32,158, -153,137, 8,193, 83, 74, 76, 76, 36, 99, 43,221, 29,156, 82, 78, 49,206,205, 93,242,209,134,225,153,196, 65, 91,177, 46,167,216, -159, 3, 33, 18,215, 86,137, 8, 25,181,153, 48,139,196,176,193, 51, 11, 50,185, 65,102,113,143,239,102, 20,203, 13,153, 88, 68, -139, 34,141,171,203,176,253,197,208, 63, 10,218, 24, 95, 83,138,167, 58,138,164,216,178, 1, 70,205,149,180, 68, 61, 53, 0, 30, -227,212,146, 3, 32, 99,234,238,146, 50, 34,169,106,146, 28,233,158,148,187, 56,244,113,150, 17, 74, 12,222,245,189,182,166,214, -130, 99,192, 34, 66,168,205, 20, 65, 88, 40,177,171, 35, 64, 55,157,184,121,188, 3,152, 8, 29,204,205,221, 83, 18,119,143,227, -164,187,143,186, 55, 14,221, 21, 68,103,133,162,145,136, 56,254, 34, 88,252,140, 15,197, 20,169, 83,178, 86,199,126,187, 53, 2, -140,236, 16,184,230,174,115,247,213,106,129, 8,146,187, 56, 57,185,134,109, 3,213, 44,162, 71,196,136,194,232, 97,171, 7, 36, - 20, 73,173, 52, 14,254,101,107,227, 8,118,108,244, 90,252, 81,163,118, 2, 17, 1,180,213,113,171, 64, 68, 28,232, 39, 10, 66, -125,202, 2,238,218, 70,110,149,170, 82,252, 44,129,154, 41, 49, 50, 73, 60,114, 66,112,239,102,110, 17,218, 33,215, 70, 12, 68, - 84,106, 57, 61, 62, 93,155, 79, 82,223,161,191, 77,160, 68, 36, 50, 13,138, 35,217,255,199,212,155, 61, 89,150, 93,231,125,107, -218,231,156,123,111,206, 53,245, 80, 61,119,163,187,209, 3,128, 6,209,104, 16, 36, 8, 82, 32,130,146, 41, 75, 14,218, 82, 40, -252, 96, 61,248,143,112, 56,194,255,134,159, 28,122,176, 21,114,132, 77,209,164, 77,147, 65,145, 4,105,138, 34, 1, 18,108, 0, - 13,160,231,161,170,107,204,204,202,225,102,230,189,247,156,189,247, 90,203, 15,235,220,130,186, 30, 43, 58, 43,171,242,158,125, -214,254,214,247,253,190,224,178, 37,102, 78, 53, 23, 51, 67,162, 36,172, 21,106,205,196,152, 36,245,171, 30,220, 89, 24, 9, 93, -161,148,162,165, 50, 17,113,114,112,171, 97, 47, 68,140, 43,193,154,204, 70,140,204, 73,221, 97,237,245, 76, 44,134, 8,160,109, - 59,225, 36, 86, 45, 32,116, 36,225, 48, 3, 4, 55, 51, 64, 71,119,162, 68, 0,234,134,104, 72, 99, 45,162, 16, 85, 51,252,222, -255,249,111, 1, 49,152,253, 1,162, 9, 14,117, 44, 64,109,156,162,105,173,225, 88,180,216,196, 74,218,193,198, 8, 3, 32, 49, - 89, 29,139,225, 71,160, 12, 50, 34, 1,152,122, 37,143, 94, 4, 48, 55, 26,141,145, 35, 99,220, 29,144, 18,184,131,107, 56,103, - 12,198,181, 21, 34,135,117,114, 13, 81, 64,119,107, 82,115,247,246,173,141,237,203, 91, 27,201, 20,194, 78, 59,158,255, 33,180, - 3,152, 41, 35,226,248,185, 13,225,137,227, 61,195,200,145,126, 69,230,177,138, 21,105,141,204, 10,132,224, 56,159, 43, 16,199, - 31, 29, 3, 60,254, 98, 59,235, 22,188, 52, 32,105, 16, 43, 99,128, 93,199,118,175,205,217,204,251,197,141,251,244,194, 43,175, -212,220,183, 91,155,186, 26, 56,165,217,238, 46, 52, 9,150,171, 91,183, 62,255,240,253,247, 62,248,232,163, 79, 62,253,240,246, -237,219,224,222, 54,205,165,157,221,189, 75, 59,179,217,180,109, 82,219,180,137, 8,208,146, 52,210, 52,147,182, 61,191, 56,191, -241,201,103,167,171,213,107,207, 63, 55,228,161,154,175,150,171,119, 63,249,228,222,193,241,209,124, 14,136,223,124,227,181,182, -105,191,241,214,183, 94,124,238,249, 73, 71, 27,123,215,218,173,237,201,100,243,253, 31,253,224,127,248,159,254,199,219,135, 71, - 40, 50, 63, 61,203,185, 18, 33, 49,108,207, 54,174,238,238, 73,195,203,126,149,139,158,206,207,230, 23,231,134,222,164, 22, 29, -159,120,236,234,175,189,241,149,111,190,249,181,237,189, 75,192, 92,242,234,236,232, 32,211,198, 66,235,151,223,248,230,127,252, -139, 63,255, 95,255,221,191, 65,116,230,212, 16,125,251,107, 95,250,231,223,253,213,141,173,233,221,155,183, 73,232,116,190, 88, -106,249,249,207,223,155, 77,167,159,221,184,181, 51,155,238,206, 54,153, 49,165,134,145,187,110,210,164,142, 19,150, 82, 28,188, -154, 51,162,170, 73,147, 8,160,105, 36,168, 7,102,206,137, 8, 24, 17, 70, 14,164, 1, 18, 16, 81, 45,202, 66, 34,226, 96,110, -104,106, 44, 88,114, 14,111, 28,137,160,163,129, 51,177, 19, 32, 48,163,143,174, 47,140,254, 32, 18,110, 29, 52, 60, 35, 90, 20, - 8,220, 20, 20, 88, 88, 71, 22,180, 19, 53, 99,126, 58,145, 27,160,171, 90, 69, 96, 68, 86,173,238, 74,110, 16,118, 78,150,241, - 17, 32, 54, 45,190,102,159, 68,221, 89,240,226,221, 67,174,244,245,199, 44, 60, 17, 8, 30,228, 22, 64, 20,183,234,224,137,147, - 89,209,234,156,216,215,151,137,174,155,212, 82,188, 86, 12,162,128, 21,183, 74,148,136, 89,132,107,169,205,214, 54,186, 14,103, - 23,193,228, 41,101, 96, 17, 87,143,129,154,133,109,253,249, 37, 4, 34, 30,134, 65, 56, 1, 83,160, 40,205,130, 47, 24,101, 63, -236,235,108, 48, 17, 97,144,126, 17, 84,139,155, 18, 11, 16,228, 97,144,212,144,133,126, 43,128, 12,164, 94,235, 8,159, 51,119, -192, 96,240, 86,211,182,155,184,186,150,138, 76,230,170, 90,132,133,136,163,140,162,148,236,166, 72, 9, 64, 49, 37, 52,167,166, - 1,175,174,166,170,241,228,197, 90, 46, 28, 44,194, 82, 93, 53, 40,205, 97,188, 49,139, 26, 96, 51,183,216,214, 34,197,199, 37, - 10, 99,181,228, 32, 10,152,187,170, 49, 50, 49,105,169, 36, 76,192,195,176, 52,245,139,229,194,221,174, 94,218,171, 78, 65, 76, - 33, 70,140,251, 25, 9, 18,235,176,138,210,225,178, 42,146,152,132,221,131,137,225, 14,100, 53,107,173, 0,198,146,192, 71,114, -117,238, 7,100,148,196,238,241,186, 18,243,242, 80,230, 96, 68, 68, 12, 69, 43,162, 89,238,230,166,238, 22, 6, 1,110, 90, 98, - 25,155,223,173,130, 26, 49,170,153, 8,197, 5,119,220,118,198,220,236, 70,148,156,192, 84,213,140, 25,173,232,106,185, 18, 64, -240,232, 4, 64, 26,231,228,117, 1,147, 59, 34,136, 91, 5, 86,115, 32,160,166,237, 74, 94,169, 22, 66,102, 18,243, 10, 16, 37, -234,102, 10, 4, 49, 58,192,154, 61,109,163, 99, 50, 46, 59,230,107,124,196,248,172,122,192,155, 28, 16, 52, 80,199,235,234, 26, - 28,235,162, 2,220, 49,222, 13,192, 61, 26, 6,108,119,123,231,248,226,226,210,206,149, 65, 53,228,150,113, 98,139,107, 60, 96, -224,237,226,107,174,153,177, 20, 78, 27,163,145,104,191,134,101, 5,119,202,192, 28,200,137, 19, 0, 24, 0,163,243,195,247,184, -195,104, 46,122,200,234, 1, 15,178,166,105, 70,198,117,189, 13,128, 27,154, 93, 44, 87, 58, 12,127,240,135,127,252,223, 63,246, -228,222,181, 61, 48, 42,106,216,201,249,233,169, 86, 21,198,199,159,120,242,137,231,191,240,143, 16,250,163,131,147,243,197,221, -123,183,110,220,188,253,217, 71,239,223,189,115,251,167, 63,127,183, 47, 58,219,152,238,110,110,237,237,108,238,110,237,182,140, -203,213,162,148,114,249,210,229,179,219,183,127,242,222, 7,207, 60,254,152, 17,167,166,217,219,222,154,159, 93,172,134,238,108, -177,250,248,198,237, 55, 95,127,233,207,254,226, 79,135,161,183, 58, 72,106, 39, 27,155, 27, 93,243,123,191,255,187,251,167,103, -147,201,180,154, 49,209,227,215,174,236,108,109, 94,218,217,217,154,117,128, 80,171, 86,173,102,182,234,247, 46,150,171,139,101, -127,177,236,175, 63,114,245, 55,127,245, 87,190,244,234,203,237,100, 54,172,150,249, 98,245,224,193,225,253,251,247, 30,123,230, -165,183,190,254,173,247,223,253,249,211, 79, 61,245,242, 75,175,254,228,221,159,255,218,151,190,252,221,183, 94,125,233, 11,207, -156,156,236,159, 28,174, 38, 91,155, 63,123,247,253,199,175, 63,118,122,112,126,235,246,225,181,221,205,199,119,247,218,134, 29, - 16, 81, 8,153,133, 13,220, 80, 5,132,147,160, 91, 29, 42, 48, 10,176,171, 73,219, 0, 34, 33,171,153,169, 17,184, 75, 48,204, - 24,192, 57,174,205, 12,200, 2,174, 0,100,238,200,200, 68, 40, 44,241,241,138,110, 53,112, 38, 66, 70,244,224,227, 57, 58,186, -106, 85,109, 82, 2, 68,181, 1,145,137, 4,221,152, 73, 53, 3, 16,114,160,131, 29,132,131, 29, 31,152, 92, 55, 69, 64,173, 38, - 77, 19, 89, 39, 97,174, 22,126, 43, 90, 55,140,115,192,243, 71,230, 33, 58,128, 51,177,105,193, 17,193,228, 90, 11, 34,115, 35, -102, 6,110, 44,141,187, 18, 11, 11, 23,205, 14, 21, 28,164,105, 3,104,204, 45, 6, 2,132, 0, 89, 34, 79,148,144, 37,182,138, - 72, 84,149,153,197, 93, 75, 85, 4,239, 79,142, 48, 46,153,132, 64,158, 82, 3, 0,158, 32, 86,196, 62, 14, 76,152, 82,210, 82, -106,173, 73,196, 1, 92, 43, 34, 19,187, 23,139,112,144, 3,148, 60,116,147,137,186,187,123,209,146,226,122, 75, 17, 29, 97,112, - 87,133,182,233, 76, 77,213,136, 83,188,165,116, 40, 36,140,163,241, 20, 3, 34, 29,134, 63, 55, 80,171, 36, 20,171, 2,228,134, -136, 28, 64,173,198,218, 54,110, 12, 14,196,142, 14,102,181,152,213,117, 28, 29,152, 57, 54,203, 4,164,238,213,106,173,133,136, - 92, 29, 34,193,134,228, 53,115, 34,100, 2, 68,175,185,150,156, 36,141, 7,101,172, 3,181,154, 25, 32,172,111,134,142,140,238, - 94, 44, 35, 51,184, 14,185,110,206,218, 96,187, 3,161,170,150,193, 83, 51, 58,154, 64, 1, 89, 24, 92, 75,149, 36, 8,144, 75, -145, 17, 22,133,170, 53,210, 21, 0, 68, 68,238, 24,141, 95,156, 72,213,180, 26, 11, 2,160,179, 65, 37,112,179,234,220, 16,178, -120, 85, 18,202, 67, 17,118, 70, 82, 71, 55, 80,173, 49, 55,128,187, 89, 89,167, 70, 41, 16,208,142,152,139, 65, 92,244,251,123, - 0, 0, 32, 0, 73, 68, 65, 84, 85, 16,144,212,154, 41,130, 3,178,170,142, 53,216, 44, 14,170,181,198, 41, 43,163, 80, 49, 54, -122, 96,208, 51, 16,137,193,117,116,143, 64, 44, 98, 20, 32,175, 6, 3,224,224,106,140,110, 6, 66,148,167, 94,122,246,232,254, -254,197,201, 41,196, 90, 6,217,189,128,213,248, 93, 0, 55,119, 33,212, 81, 94, 71, 8, 87,127,116, 66, 5,191,192, 28, 24, 71, -121,124, 92,118,233,200,234, 27, 15,254, 17,140,103,174,237,164,237,143,231,232,177, 45, 3,246, 16,243, 71, 33, 31,220, 57,234, -113, 41, 44,237,182,214,144,192, 29, 25,208, 70,192,177,197,197, 5,209, 84, 61,172, 67,230, 70, 76,100, 0, 64, 15, 21,195,181, -130, 19,103,189,141,104,181, 53,157,202,171, 59, 35,241,184, 64,246, 16,160,220,223,123,255,221, 15, 62,248,248,141,141, 87, 64, - 85,152,128,192, 74,129,106,142,188, 58, 59, 39,233,221,212,129,246,118,118,247,118,247, 94,127,245, 43,192,191, 93,170, 61,184, -127,255,206,135, 63,251,135,119,222,249,233,187, 31,124,252,233,141,201,228,206, 80,244,210,238,229,221,205,141,249,114,104,219, -110,255,232,206,116,214,238,109,108, 59,209,222,246,206,131,227,211,161,148,101, 94,221, 59, 56, 58, 57, 91, 92,218,217, 94,172, - 22, 47,126,225,229,227,163, 7,139,243,147,211,253,229,179,207, 62, 55,157,110,150, 92,150,253,106,119,123,231,185,103,158,220, -156,117, 94,243,233,217,249,173, 59,119,247,143, 78,246, 54,102,109, 55, 81,211,147,243,243,154,203,203, 47, 60,247,242, 23, 94, -218,187,186, 71, 32,231,167, 39,243,249,209,225,225,131,131,163,227,251,199,135,127,244,215,223,255,151, 67,189,122,237,250,209, -209,193,191,252,111,254,219,139,255,229,127,254,205, 55, 95,252,194, 11, 79,222,186,249,233,229,107, 87,101, 99,243, 79,254,195, -247,106,191, 80,240,183,127,242,222,222,214,198,172,155, 16, 0, 97, 34, 6, 96, 34, 1,150,134, 56, 26, 54, 80,107,149, 70, 90, - 67, 35,144,196, 41, 49, 16, 49, 38,247,202,204, 30, 81,205, 0,224,226,250, 66,235,166, 3,160,152, 35,152, 43, 11, 58,128, 43, -146, 25,139,152, 42, 33, 57, 33, 17,137,136,153,229, 82,201, 92,132, 75, 45,132, 40,156,108,252, 0, 56,161, 59, 84, 66, 10,103, - 5, 26, 35, 65,214,154, 72,128, 88,205,153, 48,181,169, 86,139, 38, 16, 23, 6, 68, 32, 79,148,220,130,132,238,174,154,218, 6, - 17,115, 45, 68, 6, 64,194, 2,204, 96, 26, 48, 39,225,196, 34,160,213,213, 48, 49, 35, 3, 49,228,146,218, 86, 77, 67,110, 41, - 81,204, 4,201, 37,248,169, 42,210,150, 97, 8,247, 61, 32,113,219,160,249,120,251, 0,142, 41, 39, 97,114, 51,171,138,204, 14, - 68,173,160, 65, 56,193,199, 34,107, 48,112,151,166,209, 82, 25, 81,154,206,181, 6,214,145, 16,221, 12, 71,132, 50,154,186,176, - 16,249, 80, 7,116,145,148,170, 90,112,229, 18, 39, 45,153,155, 54,170,249, 34, 13, 32,228, 80, 3,233, 21,223,175,187, 43,183, -201, 21,107,237, 83,219, 70,164, 68,154, 73,156,224,241,164,155, 59, 19, 99, 98, 0,179, 92,194,202, 15, 0,169,109,205,212, 29, - 74,173,106, 5,137,192,141,153, 85, 13, 32, 14, 40, 77,169, 1,130, 90, 98, 17, 33, 73,216,180, 26,154,235, 90,116,137,100,111, - 84,241, 50, 11,242, 80, 74,180, 5, 55, 77,155,115, 30,245,166,234, 36, 76, 78,106, 5, 3, 26, 42,220, 52,221,241,209, 73, 25, -122,217,232,214, 86, 35, 8, 51,103, 41,165,109,219, 64,218, 49, 49,184, 73,211,230,156,173, 90,155, 18, 32, 91, 20,234, 26, 0, - 99,234, 58,173,197,170, 73, 74, 76, 28, 41, 48,138,192,141,123, 53,147,113, 76, 5,138,227, 94,195, 87,128, 77,211,128,187,153, - 17, 1, 10, 43,132, 15, 42, 94, 21,129,221, 53, 34,230,182,201, 67, 14,219, 24, 51, 69,106, 86, 49, 58,204,200, 1, 24,209,136, -205, 28,129,148, 72,208, 7,173,252,175,255,197,239, 0,211,152, 22,197, 40,239,137,252,207, 72, 20, 48,112, 2,139,104, 49, 32, - 32,104,244,123, 69,163, 49,162, 1,225,116,107, 99,117,113, 81,134, 12,235, 54, 15, 0, 36, 74, 30, 39, 30, 18, 32, 71,149, 19, -141,253, 79,164,102,142, 30,209,159, 32, 34,132, 49,115,116,203,140, 49,211,135, 70,118, 71, 4, 70,138, 49, 90, 26, 94,204,207, -157,100,218,166, 88,164, 32, 71,205, 8, 34,193,120, 73, 12, 23,206,120, 48,115,136, 94,184, 6,144, 69,253, 50,132,137,127,116, -144, 5,136,201, 70,171,205,250, 18,243,139,133, 47, 2,128,193,184, 24,142,215,144, 1, 17,137, 32, 33,150,248,184, 3, 34,138, -180,101,181,252,189, 63,250,179,141,217,244,139, 47,190,156,102, 27,205,108,106,165,172,161, 56, 44,109, 75, 76, 62, 82,250, 44, -231,222, 74, 6,103, 93,173, 58,150,167, 95,122,245,173,239,124,231,159,126,247,183,158,188,122,233,133,167,159,190, 24,234,205, - 91,159,223,188,123,239,228,244,120, 85,202,208, 15,253,170,223,158, 78,221, 29, 72, 0,109,185, 88,170,249,114, 40,243,179,249, -107, 47,190,112,116,124,242,196,245, 39, 38,211,174,233,218, 82, 43,131, 62,245,196,227, 47,190,244,236, 87, 95,127,253,165,231, -158,106, 18, 31, 29, 29, 30, 62, 56, 62, 61, 59, 35,192, 47, 62,247,220, 83,215,175,129,219,124, 62,103,162,175,126,229,181,151, -158,123,113,115,119,135,128,143,246,239,220,189,115,235,214,157,123,183,246,247,239,236,239,127,242,249,221, 91,247,247,191,254, -213, 55, 31,125,252,241,239,125,239, 79,158,186,254,244,116,186, 49,191,255,241, 35,123, 27,171,161,220,188,125,247,251,255,240, -246,139, 79, 61,250,119,111,191,123,247,238,254,181,141,217,230,172, 19,100, 2, 70, 22,230,196, 66,179,110,218,182,173, 69,176, - 12,169,147,177, 45,152,137,153, 8,204,153, 24, 99,225,204,236, 16,185,209,148,162,132, 19,130,136, 36,230,227, 47, 33, 41,197, -220, 93,136,128,208, 17,144, 88, 1,136,198,107,187,131,119, 41,185,234,144, 7, 51, 72,146, 20, 52,165, 54, 4,127,117, 75,210, -134, 14,209, 36, 42,181,230, 90, 36,138,120,172,144, 8, 16,148, 90,226, 94, 63,106,211,110, 68,108,181,144, 52,137, 17, 0, 57, - 73,184, 38, 9, 49, 49,115, 26,255, 92,112, 48,171, 44,140,200,102,165,228,210,180, 83, 2,172,246,240,204, 53, 38, 97, 2, 53, -195,145,154,142, 14, 94,189,180, 77, 87,107, 86, 48,102, 1,196, 16,184,221,109,212,166,205, 1, 42, 50,147, 48, 49, 25,232,200, -104, 10, 65,149,200, 32, 56, 53,228,224, 6,128,106,156,146,176,184, 42, 16, 49,146,175, 87, 94,163, 64,132, 35,226,219,204, 24, -121, 4,175, 3,112, 18, 68,180, 81,119, 4, 55,101, 78, 68, 80,171,154,107,132,245,144, 27, 51, 11,153,165,150,130, 8, 41, 53, - 41,117,146, 18,177,172, 22, 23, 97,202, 48,173,210,180, 81,218,227,102,174,217,199, 2,136, 58,210, 52, 71,155,156, 69, 86, 9, -129, 0,101,141, 26, 4,198,228,136,170,217,209,171, 86, 26,229,221, 17, 68, 59,154,250,133,221, 0,193, 83,147,130,101,130,225, - 7, 49, 47,121, 32, 33,102,114,119, 73, 9,145,107, 41, 57, 23,119,107,186, 14,144,181,234,233,217,121, 39, 52,153,205, 0, 80, -154,198,212, 21,128, 16, 83, 74,102,166,213,208,163, 62,139, 99, 67,205,140, 85, 85,107,173,181,198,242, 88,146,184, 1, 2,113, - 98, 32, 28,135,205,248,201,169,154, 85, 22,138,221, 28, 18, 19,178,170, 66,236, 62,152, 3,223, 54,174, 15, 1,153, 41, 53,201, - 77, 9, 49, 10,168, 83, 34, 96, 41,125,209, 90, 25, 9,137,204,107,232,207,225, 37,115, 55,102,174,213,115,206,104,198, 18,199, - 23,149, 82,248,191,251, 23,191, 3,224, 28,105,145, 96,177, 1, 19,137,123,229,135,101, 77,177,175,199, 24, 10,204,215, 35,188, -187,134, 65,241,244,240, 65,201, 89, 34, 76, 28,213, 31, 78,227, 83, 17, 53,101,128,142,196,204,227,138,213,171,240, 90,133,143, -190, 65,138,159,127, 88,105,198, 31,224,216,143, 8, 54,250, 20, 31,222,183, 1, 4,225,108,209, 95,217,221,169,106,163,253, 43, - 8,108, 48,166, 83, 31,190, 26,214,225,218,113,147, 7, 4, 20, 29, 81,163,129,107,196,136, 83,112, 8,145,214,255,215, 72, 61, -255,207, 92,240,107, 95, 79,148, 50,192,136, 99, 30,205,185, 4,235,181,130,139, 72, 93,156,255,193,159,252,229,253,253,131,215, - 95,251,202, 19, 79, 61,237, 96, 22,128,198,112,164,153,186, 86,115, 3, 45, 72, 13, 11, 73,219,105, 84,163,205,102,139, 97,249, -217,207,127,254,217,167, 31,191,240,234, 27,175,126,237,173, 95,255,173,223,254,175,126,243,187,223,254,245,111, 63,251,200, 85, -103, 17,150,123, 7,247,139,215,205,217, 12,137,102,221,100, 53, 12,125, 95, 86,195,112, 60, 63,107, 89, 54,166,221,103, 55, 63, -237, 23,103,195,197,217,238,238,246,245, 39,174,111,110,110, 47, 23,139,155, 55,111,124,248,241, 71,247,247,247,135, 85,143,136, - 77, 74,179,233,228,246,225,254,223,189,243,238,135,159,221,188,186,119,233,245, 87,190,248,196,245,235, 41,137,214,122,239,246, -173, 27,183,110,222,188,117,247,206,225,131,123, 15, 14, 62,187,187, 63,191, 88,129,251,175,188,245,214,213,107, 79,124,255, 63, -253, 85,206,171, 87,191,242,198,189,195,147,147,253,123,105,107,230,102,247,238, 31,124,250,241,231,179,212, 92,221,222,110, 83, - 23,194, 2, 9,165, 70,218,182,221,232,102, 1,144,106,154,212, 38,137,102, 48, 98, 36,226,182,109, 25,133,133,185,145,168,149, - 8,248, 84,172,187,181, 42, 51, 55,209, 53,170, 21, 9,132,133,137, 12, 92, 18,197, 14,159,144,152, 4, 69, 90, 22, 38,138,162, - 75, 68,172,165, 6, 42, 81, 82, 66,162,166, 73,128, 81, 65,229, 76,132,232, 36,204, 72,170,138,177, 41, 5, 39, 20,150, 20,184, -193,200, 72,120,141, 1,130,146, 52,102, 70, 12,113,193, 67,230,184, 85,172,171, 10, 16,204,136, 4,192,137, 88,132,133, 57, 70, -230,201,100,106, 90,221, 97, 93,230, 14, 44, 4,128,185,150, 70,154,177,244, 44,168,208,128, 57,231,240, 92,147, 8,145,132, 43, - 49,214,161, 16, 31, 51, 7, 55, 51, 85, 55, 67, 98,112, 67, 87,100, 66, 22, 87,139,180,163, 19,130, 3, 49, 17,179,175, 39,167, - 68, 88,171,141,237,114, 50, 62, 21,196, 50,150,237, 18, 18,203,168,113, 17,141,117,215,200, 68,228,170, 68,205,136,254, 39, 16, -110,214,174,188,134, 37, 89,205, 16,166,238,166,113, 5,179, 98,102,110,150, 38, 77,252, 40,153,217,193, 89, 82,108,176, 97,109, -122,102,110, 12, 44, 42,125,106,169,200, 8,107,239, 54,104,101,102, 2, 66,162,106,149,137, 72, 18, 35, 73, 18,119, 71, 71,226, -168, 80,164,120, 32, 71, 88, 97,148,196, 1,160,224,168,241, 18, 17,179,176,152, 71,174, 62,220, 56,218, 78, 59, 34, 86, 53,215, - 90,134,220, 15,195,108, 54,225,148,220,141, 4,133,132, 89, 68,162,147,207, 89,136,132, 49, 0, 67, 0, 66, 92,205,173, 42,160, - 71,212,107, 4, 50, 3,144,112,148, 20, 33, 11,160,137,196, 59, 50, 20, 93,148,166,197,241,123,240,181, 93,195, 61, 42,109, 17, -128,176,105,146, 57,130,187,230, 16,171, 67,190,114,119,116,211, 36, 76, 76,170,102,181, 68, 69,109, 8,132, 44, 98,230,165,148, - 54,113,211, 74,108, 61, 29, 44, 9, 13,165, 8, 6,163, 25,108,124,169, 99, 12,235,128,196,160, 6, 8, 76, 2,192, 14, 15, 39, -111, 26,173,132,235,109, 99, 68, 4, 99,201, 73, 68,232,236,160,134, 99,137,135,233, 56, 60, 3,120,164,176,105, 77,181,199, 0, - 90,140,139,166, 88, 20,248,248, 66, 65,128,245, 86,127,124,103,196, 15,222, 60, 10,116,102, 27,155,251,135,183,251,154,133, 81, - 3,252,141,163, 84,191,198, 12,208,232,118, 7,196, 16, 15,215,189, 34, 96,190,166, 91,142,160, 40,136,124,214,232, 60, 26, 43, -104,215, 71, 60,172,109,249,136,107,105,117,157,132, 25, 75, 78,124,188,167,140,105,103,100, 26,242, 10, 17, 87, 67,255,127,252, -238,255,254,226,211, 79,209,214, 54, 0,212, 33, 55,179, 41,152,186,186,107,193,166, 3, 43, 78, 13, 24,214,190,119,173,221,246, -222,205, 79,222,255,252,195, 15,190,240,218, 87,158,126,241, 69,116, 60, 61, 62,182, 62, 83, 35, 59,179,173, 55,127,249, 55,126, -229, 55,126, 19, 17,255,175,127,247,191,253,219,223,255,253,173,141,173,157,205, 45, 98,222,219,218,186,183,127,240,200,165,157, - 55,191,243,173, 23,158,121,122,210,180,205,116,186,123,105,215,115,222, 63, 60,120,247,230,173,227,227, 7,234, 54,235,166, 59, - 59,219,128, 50, 44,207,151,125,127,112, 60,191,123,127,191,106,221,217,218,126,233,153,167, 95,126,225,197,203, 87, 47,245,125, -127,126,124,124,120,116,124,251,238,221,123,199, 71,243,139,213,209,233,233,217, 98, 85,213,182,187, 4,147,102,123,107,107,239, -242,229,183,190,250,181, 31,255,252, 71, 87, 62,127,228,249,151,223,184,243,249,199, 31,126,120,227,213,151,159,157,144,236,237, -236,204, 38,157,130,245,171, 85, 41, 58,237, 90,146,132,192,196,108,170,146, 18, 68, 87,167, 97,173, 53, 9,143,155,109,194, 64, -134,153,234, 72,175, 83, 23, 9,254, 4, 54,147,198,170,169, 26,194,216, 86,170, 69,137, 81,132,115,174,130,192,204,213, 10, 66, - 66,117,133,113, 71,110, 6,106,230,128,210,112,205, 40,140, 64,148, 36, 85, 85, 0,173, 96,140, 66, 72, 85, 11,115,211,182,147, - 82, 11,141, 97, 33,119, 71,179,232,175, 71,245, 98, 0,157,180, 86,205,216, 56,181,163,251,203, 11,179,152,213,232,138, 67, 67, -145,164,170,241,123,196,104, 85, 75, 45, 76, 34, 44,165, 84, 36,228,160,116, 9,187,123, 24, 31,133,197,204, 29,161,105, 83,213, - 98,102,132,136,196, 14,222, 54, 83, 5,245,106,225,144,171,170,137,153, 89,204,117, 93, 58, 8, 76, 80, 53, 74,143,185,214, 98, - 1,116, 84, 71, 22, 0, 35,145,144, 7, 80,216,181,186,131,134, 58, 73, 2, 60,162, 63,136,193, 67,183,197,136,156, 84, 22, 50, -163,192, 8, 6, 70,152,137,169,237,134,146, 17,136, 57, 17, 51, 32,155, 85, 66, 48,181,120,138,161,196, 10, 84, 13,204,171, 17, - 59, 37, 65, 96,228,240,150, 97,173, 89,109, 0,160,104, 67,197,113, 8, 53,116, 52,116,115,151, 70,220,204,214, 81,116,105,187, -104, 45,119,215,200,129,131,198, 83, 27, 78,188,216, 6, 39, 71, 55,205, 68, 72,192, 81,224,178,222,196,114,117,117, 0,173,181, -105, 4, 17,133, 69,173, 56, 96,211, 38, 34,210,170,174,202,194, 78,120,126,186, 74,132,179,217,180,239, 11,153,233, 80,129, 93, -205, 71,249,138,198, 47, 28, 49,125, 0, 46,185, 7, 87,162,113,126,134,112, 19, 6,222, 38, 10,179,194,192,231, 88,173, 34, 96, - 74, 77, 84,227,104,173, 34, 34,210, 84,172,161,143, 59, 82,180,117,135,244, 87, 77, 1,157, 24, 17, 36,212, 39,213, 74,148, 72, - 8, 70,235, 45, 69,105, 98, 72, 10, 34,160,230, 53, 23, 66, 76,146,140, 73,163, 48, 18,209, 69, 74, 41,170, 22,229, 24, 1,134, - 76,235,253,166,153, 23,178, 17,219, 11, 8, 96,133, 25,145,192,107,104, 30,177,213, 15, 82,123,144, 57, 35, 96,229,228,190,246, - 56, 58, 2, 34, 51, 26,185, 87,136,162, 26, 48,114, 5, 39, 13,108,204, 47,118,167, 30,228,130,241,237, 30,112,190, 17, 98, 9, - 99,187,196,104, 57,247,200,227,164,212, 52,173,156,158,247,151,183,167, 2, 99, 27,153,227,218,239,131, 0, 96, 40,145,190,131, -240,138,174, 51,169, 15,145, 8, 16,107, 85,164, 4, 96,241, 19, 2, 8,204,102, 3, 17,106, 29,101,122, 30, 59,139,226,151,195, -104,160,140,175,129,191, 40,175,124,152,140,202,195,162,207,101,103, 99,235,251,111,255,253,123,159,124,244,229,183,190, 89, 42, - 53,210,160, 87, 7, 3, 78,216,180,132, 6,188, 1,230,117,117, 65,210,154,241,219,127,245,103,117, 24,190,246,205, 95, 17, 73, -101,121, 65,169, 67, 53, 36,196, 90,250,229,162,217,220, 41,231,231,142,242,155,255,228,191,252,147,255,248,215,247,246, 15, 4, -169,107,186,231, 94,120,238,219,223,254,149,107,143, 60, 74, 8,121, 24,212,252,236,248,248,231, 63,253,241,225,254, 97,173,182, -183,189,117,105,119,103, 99, 99,179,152,158,156,158,156, 47, 78,115,191,186,127,116,188,127,124,122,101,119,251,217, 71, 30,191, -121,112,255,177, 71,175, 60,242,200,229,163,147,147,253, 59,119, 78,151,139,207,110,223,187,127,120,152,107, 57,154, 47,122, 85, - 66,220,217,152,136,240, 70, 55,121,252,250, 83,117,181,186, 40,250,246, 79,127, 74, 77,123,253,209,195,103,158,126,225, 15,254, -246,255,251,222,247,127,148,152,209,109, 99,218, 93,217,217,218,106, 91,132,170, 73,118,184,217,156, 78,185,109, 4, 73, 68,184, -149,146, 43, 34,153, 89,173, 53,110, 63,193,185,141,135, 83,205, 69, 82,120,183,137,201,181,142,159, 31,128,212, 80,233,189, 90, - 13,196, 41,160,165,134, 45, 91,223,231,168, 91,226, 16,102,208, 9,172, 47,165,225, 20,142,238,212,140, 98,111,173, 35,230,133, - 57, 5, 14,101,194,162,224, 21,148,132,208, 88,189, 70,147, 92, 34, 46, 57, 27, 0, 75,195,113, 50, 10, 43, 80, 39,104, 70,134, -149, 41,153, 23, 38, 49, 53,103,168,150,107, 44,105, 29,137,164, 12,153, 25,153, 83, 76, 0, 44,109, 41, 61, 16,136,176, 35, 10, -167,162, 67, 0,187,172, 26, 39,214, 90, 17, 80, 72,220,172,145, 6, 16, 86,195, 50, 81,130,128,224, 56, 17,170,106, 45,181, 0, -142, 0,250,170,165,102,107,187, 41,144,106,209,212, 54, 96, 0,234, 96,174,164, 12, 72,137,205, 42, 98,138,200,126, 44,129, 97, -244, 60, 56, 17, 22,211,177,155,211,220, 67,107, 2, 43,171, 33,132, 32,115,147,212, 2,146,106,169,165,162, 41, 50, 17,115, 55, -219,204,253,146,169, 85, 83,135,202,132,230,238, 9,192,200,172, 48,146,113, 48,138,141,132, 72, 82, 89,245, 0, 54,246, 72, 69, -114, 7, 89,132,242,144, 29, 92,213,164, 33, 6, 6, 83, 13,142, 46, 32, 33,230,220,143,167, 30,162, 36,177,234, 8,128, 99,250, -193, 57, 53,106, 21,192,220,106,100,233,205, 76,173, 74,106, 29,176,150,149,128, 51,146,130, 55, 77, 34, 4, 51,173,106, 77,106, - 88,176, 20, 11, 93,187, 2,152,218, 80, 74, 45,101, 99,214,154, 65,211,165, 50, 12, 57,175,144, 18, 39, 17, 33, 38, 30,138,145, - 16, 53,108, 10, 94, 43, 0, 66, 29,101, 20,205, 67, 74, 41,218, 80, 29, 42, 19, 7,235, 66,171, 34, 25,161, 32, 73, 4,223,250, - 85, 38, 66,100, 39, 0,115, 71, 97, 83, 5,168,132,194,141,128,197,248,111, 81, 33,195,210,228,190,215, 90,153,176,145, 68,212, -104,169,200, 24, 31,110, 48, 21, 38,117,119,245,229, 34,167,196, 28,101,232,165, 38, 35, 2, 52,192,162, 86, 75, 77,232, 73,146, -180,205, 76,107,209,162,160, 0,232,230, 69,181, 0,130,161, 71,210,223,213,144,216, 29, 92, 67,162, 9,127, 97,180,106, 27, 0, - 27, 56,184, 11, 35, 84, 11,223, 77,200, 44, 10, 42, 81,105, 98, 17,195,117, 7, 69, 55, 7, 35, 88,163, 16, 70,131, 74,176,175, - 33, 98,213,244,208, 98,233, 1, 70, 24,131,173,104,225, 34, 10,189,196,247,182, 55,206,151,231,182,211,185,133,219,199, 9, 5, -240, 23,150, 27, 87, 95, 59,103,128,208, 13,100,220,210, 91,133,177,100,210,136, 25, 80, 71,211,141, 43, 97,227,107,169,101, 77, - 56,160,241, 74,176,126,111,174,191, 97, 0, 89,127,107,241,174, 26,213, 38, 71, 18,173,168, 17,210, 51,253,163, 63,254,195, 47, -190,250, 58, 8,115, 74,142, 9,149,205, 12,189, 20,179,201,116,230,224, 66,219, 55, 62,122,111,255,254,189,235,207,191,240,196, - 83, 79,215,162,165, 95,185,129, 14, 25, 72, 40, 81,189,152,179, 32, 49,152, 82,233, 87,219, 59,151,126,231,159,254, 23,255,233, -239,127,248,230, 87,223,184,254,216,227,109,215,230,161,191, 56,155,207,207,230,251,119,247,143, 79,142, 8,113, 50,153, 92,127, -244, 49, 64, 27,114,206,197,110,124,126, 59,123,153, 54,147,249,252,226,228,124,126,122,122,118,105,107, 99, 99,210,126,124,251, -198,201,249,197,207,223,253,120,181,234,239,222,219, 31,114,190,125,120,120,112,124,154,115,237,179, 86,179,170,229,202,238,222, -238,172,123,229,197, 23, 95,121,225,249,159,188,253,125,106,102, 55,111,124,112,105,107,122,120,247,243,249,252,228,189, 15,222, -223,127,240,128, 29, 86, 67, 65,180, 69,174,183,142,206, 86,195, 80,114, 5,128, 54, 53, 41, 81, 43, 50,105, 91, 68,106, 19,109, -109,205,118,167,155,179, 73, 59,105,187,166,147,205,182,107, 82,211,181,210, 54,141, 8,139, 8, 57, 0,162,164, 89, 4,163,135, -146,133,152, 69, 76, 77, 26,106, 82, 91,135,106,102,170,149,141,137,169, 75,173,169, 18, 2,160, 27,120, 85, 11, 16,149, 51, 8, - 18, 33, 41, 56,141, 67,125, 33, 70, 6,209, 40, 58, 0, 85, 15, 34, 54, 33, 71, 10, 28,165,101, 85,173,230, 24,220,149, 32,243, - 73, 18, 22, 5,115, 71,119,101, 30, 45,131,238,192,169, 29,103, 5, 51,143,166, 62,115, 17, 98, 73,181,148, 53,203, 80, 83,211, - 50,113,213,194,130, 53, 15,210, 74,173,138, 65,136, 9,241,144, 9, 33, 26,227,208,204, 26, 78,238, 24,193, 22, 7,168, 53,243, -232, 88, 70, 52, 71,166, 20,211,171, 87,113, 6, 97,213, 12,174,224, 64, 34, 36,108,213,106, 9, 28, 13, 80,113, 7, 35, 73,234, -142, 86, 0,153, 72,192,189,145,209,255,102, 90,165,107, 77, 43, 0,178,164, 24,130, 9, 73, 75, 94,183,194,146, 51, 18,145,230, -218,251,185,170, 18, 37, 78, 9,133, 76,139, 52, 93, 85, 19, 80,173,108, 86, 37, 52, 88,136,147,174,144,144, 27,104,201,129, 90, - 0, 64, 7, 27, 86, 53, 30, 50, 18,212, 98, 72,142,136, 66, 9,192,204, 93,205, 24, 17, 16,152,211,184,154,116, 37, 98, 87, 19, - 22, 7, 41,185,231, 17,233, 28, 40,158, 74, 76, 76, 77,205, 3, 34, 54, 50, 81,203,177,215, 41,125,102,102, 7,107,186, 9,142, -107,210, 56, 40,136,193,156, 64,213, 17,112, 58,155,177, 72, 46, 37,151,234,234,142, 67, 2,103, 17, 16,105,153,209,173,214,177, - 85, 6, 28,168, 33, 51, 23, 7,132,198,180,162, 1, 73, 67,216, 1, 90, 52,127,177, 16, 2, 25, 56, 81, 2, 80, 51, 77,141,132, -158,150,173,146, 27, 99,147, 36,185,179,154, 98, 44, 37, 29,204, 99,147, 64, 53,103, 34,108,155, 38, 18, 12, 6, 70, 66,148, 4, - 12, 29,171,116,162, 69,189, 42, 50, 8,138,187,155, 43, 50,183, 56, 54,183,212, 92, 0, 52, 58,138, 77, 85,158,127,233,139, 49, -128,214, 90,115, 63,148, 92,106, 41,170,165,148, 92,251, 85,169,131, 87, 51, 0, 43,213, 64,209, 13,121,196, 82,155, 27, 97,194, -113,150,135, 90, 43,140,146,134,173, 93,227, 15,115,168,241, 87, 15,101,196,127, 65,240, 12, 49,159,201,109,148,155,198, 98,176, -181,168, 2,107, 18, 24, 34, 35, 4,218, 24,209, 13,192, 85,117, 58,157, 29,205, 23, 90,214,134,122, 28,215, 79, 65, 58,136,216, - 42, 33,129, 58, 80, 88,100,195, 92, 83,215,139,211, 49,180, 69,107,193, 63,136,106,176, 86,104,104, 4, 20,143, 71, 58, 50, 6, - 16, 58, 62, 31, 64, 15,143,246,177,136,112,252, 62,205, 67, 69, 13,119,125, 59,105,126,252,179,159,124,244,254,135, 47,190,246, -138,170,134,198,136, 68,166, 5,212,164,225,249,233,201, 79,254,230,111, 55,246,118,191,244,141, 95, 78,238,171,179,211,104, 72, -112, 85,119, 69,200,165,100, 17,105, 54,102,104,104,208,148,213,241,173,179,249, 19, 79, 61,253, 95, 95,191,174, 53, 95, 92, 28, -223,189,117,118,231,222,189,179,243, 83,102,222,217,220,122,226,250,163,181,148,210,231,213, 48,148, 82,220,225,236,236,220,172, -108,110,110, 30, 60, 56, 57,189, 56, 3,180,199,175, 93,117, 45,203,229,176, 88, 13,181,232,207, 62,249,236,211,187,247,192,245, -228,108,185, 26,250,234, 6,136, 67, 46, 69,117,119,115,250,252, 19,143,254,250, 91,223, 48,215, 63,252,139,191,184,115,255, 96, -107,218,117, 93,218,156, 77,143, 78, 47,206,238, 30, 77,218,201,238,246,206,238,214, 38,137,144, 27, 34, 95, 12,139,154,181, 77, -120,239,224,193,253,163,163,249,225,121, 45,198,204,204,152,171, 51,115,236, 81,188, 22, 18,153,117,147,157,205,141,182, 21,116, -108,147, 8, 11, 19,150,154,103, 93,218,152, 78,183, 55, 54, 68,210,172,107,187,166,153,164,102, 99, 99, 42, 73,186,212, 36,102, - 0,157,205,218, 36, 9,220, 9,176, 84, 37, 34, 5,155,177, 88,227, 53, 2, 65, 66, 90,149,147,196, 11, 33,168, 2, 85, 51,136, -112, 43,230, 30,233, 18,116,140, 18, 6, 83,215, 26,133, 54,192,136, 85, 29, 67,114, 36,140, 53,146,185, 17, 71,135, 42,131, 83, - 84,210,128,121,146, 86,107,213, 92, 35, 10,231,110,181, 14, 0, 20,254, 28, 73,162,213,134, 50, 8,203,136,210, 5,110, 90,169, -121,136,207,161,130, 53,212, 72, 74, 37, 15, 62, 82,180, 13, 64,145, 24, 29,212, 44, 49,219, 24, 32,119, 36,134, 17,231,181,214, - 34,221, 8,152,154,228,163,157, 6,184, 73, 16, 88, 47, 0,108, 88, 48, 57,130, 85,167,212,152, 6, 48,155, 76, 21, 12,144,145, - 83,170,181, 82,164,100, 34,135,133, 80, 45, 71,215,105,192,206,195,153, 67, 8,110,150,186, 41, 2,154, 22, 8, 72, 21,113,215, -205, 74, 94,152,214,168, 45,140, 76,144,155, 70, 39,137, 99,212,199,178, 59,152, 42, 10,135,247, 27,192,139, 2,163, 17, 38, 78, -141,105, 5,144,128, 77,114, 98,175,106, 86,163,157,139, 92, 66,251, 86, 85, 36,105, 83, 91,204, 92,115, 69, 68, 64,110,164,230, - 2,164, 35,194,193,170, 72, 51, 86, 86,116,100,230, 4, 0,106, 49, 74,131,141, 11, 19, 74, 92, 11, 46,135, 60,153,118,196, 98, -165,138, 72, 55,221,208, 90,180, 22, 34,138,178,173,209,191, 29, 71, 10,160,131, 49, 75,106,154, 90, 84, 61,139,180, 99,120,134, - 92, 13, 8,128, 36,153, 41,154,163, 33,196, 20, 12, 72,196,238,166,213,226, 92,114, 55,230,102,180,145,140,150,190,128,192,155, -123, 37, 4, 64,113, 48,208,104,126, 15, 58,122,136,251,168, 86, 36,177, 9, 91, 13,111,186,167,196,136, 46, 13,175,114, 65,128, -166,229, 92, 0,212,184,109, 72,146,148,190, 71,196, 48, 73,182,147, 73, 59,153,136, 8,186, 19, 55,234,213, 76,221, 76,115, 46, -165,104, 85,211, 90, 74, 63,244,189,230, 82, 85,193,172,106, 14,111,127,104,169,130, 52, 22, 56, 49, 97, 20, 41,185,174,151,147, - 99,248, 8, 8,176,174,167,222,120,105, 5, 78,224, 97, 95,107,124,144,199,227, 30, 44,124,174, 15,209,146,136, 8,100, 96, 41, - 53, 66, 56, 20,237,228,161,213,249, 63,171,133, 93, 83, 35, 1, 97,148,197,226,205, 97,190, 62,203, 97,205, 31, 91,131,142,185, - 13,214,252,152,243, 34, 10, 35,255, 24,173, 10,176, 2, 18,162, 3, 18, 38,198, 17,134,231,161,239, 7, 9,219,208, 1, 35,169, - 28, 11, 51,236,151, 23, 63,248,187,191,125,237, 43, 95,174, 96, 81, 95,141,224,169,109,155,201,244,198,123,239,220,185,183,255, -204, 43,175, 62,249,228,147,203,243, 51, 19,241, 90,195, 52, 93,115,145, 36, 0,134,102,204,105,113,252, 96,217, 15, 23,231, 23, -203,229, 69,173,195,176, 92,172, 46, 46,142, 78, 79, 30, 28, 28, 56,241,164,229, 39, 30,121, 12, 25,207,207, 47,110,124,246,249, - 80, 74,155,186, 73,219, 21, 47,171,161,175,185, 18,226,157,187,251,139, 97,213,164, 6,193, 46,150,139,156,243, 80,235,197,197, - 2, 9, 29,253,238,225,225,249,114, 5,170,210,180,136, 56,228,204,196,207, 62,118,237,219,191,244, 75,175,188,250,210, 79,223, -123,247, 47,190,255,195, 73,211, 60,249,216,181, 85,191, 90, 12,185,150,178, 24, 74,147,146,179,173,114,110,134,161, 3,106,155, - 36, 41, 61,190,189,253, 91,223,254,181,203,215,246, 78,230,243,227,227,147, 59,119,110,223,184,125,251,147, 79,111,222,222,223, - 63, 60, 57, 46,181, 32, 51, 17, 80,147,200, 33,215,210, 15,153, 9, 75,181,243,101, 31, 90,225,233,252,236, 98,121, 65,196,166, - 33,125,114, 4, 56, 5,145,164,233,186, 38,178,152, 91, 27,147,173,110, 54,219,156,109,180,237,183,222,120,237,240,228,116, 53, - 12, 91,211,105, 74,178, 57,105, 38,237,164,235, 82,155, 38,169, 17, 55,155, 78, 59, 84, 67, 4, 16, 70,100,105,147,153, 34,177, -154, 25,152,232, 88,122, 97,166,220, 72, 89, 21,115, 37, 6,240,128,162,147, 72,170, 70,224, 33,248,166,152,185, 41,184, 29, 14, - 35,178,152,215,225, 14, 32, 98,176,226, 76, 8, 72,209,155,220, 74, 11,104,106, 26,254, 50,205, 25, 29, 36,226,175, 41,129,213, - 90,162, 69, 36, 62,125,238, 30, 84,175, 96, 6,176,219,202, 45,198, 90, 95,251,236, 24, 76,181, 22, 98,193, 36,196,108, 81, 50, - 36, 12,234,128,100, 99,114, 10,129,162,167,201, 3,230, 26, 91, 59,100, 66, 38,247,234, 52,186,106,192, 45,165,182,170, 89, 45, -140, 98,236,235, 66,168, 74,146,192, 76,189, 48, 8, 19,154, 42, 33,214,192, 1,161,153, 85, 55, 48, 53,105, 88,107, 24, 5, 28, -169, 25, 99,234, 68, 96,110, 90,221,141, 72, 70,150, 36, 56, 56, 8, 51, 97, 32, 13,138,199,254, 24,169,154,215, 92, 17, 32,234, - 73, 35, 1, 91, 75, 25, 87,166,142, 70, 88,203,192,194, 66, 92,139,154, 58,142,250, 59, 68, 39, 53, 50,150, 33,147, 8, 73,242, - 90,215, 16,115,116, 87,100, 65,115, 39,247, 98, 86, 10,106,157,237,204,136,208,133,165,105, 4, 1,188,211, 82,113,108,161, 35, - 18, 2, 7,171, 21, 41, 90,168, 84,139, 58, 16,197,250, 20,220, 61,254, 53, 36,165,132,145,234, 36, 50,116,102, 96,230,192,166, - 68,201,248,195, 96,188,155, 81,114,141,109, 31, 32, 2,168, 43,250,152,119,171,181, 56, 20, 73, 18,160,133,152,122,205,193, 74, - 54, 55,102, 18,105, 74,205,106,228,101,144,148, 88,194,254,103,179, 46,229,234,165, 90,178,209, 48, 72,140, 98,174, 96, 0, 70, - 22,160, 32,183,154, 87,163,165, 36,162,161,238,224,214,116, 13, 1, 34, 75,212, 27, 50, 97, 28,253,165,170,213,226, 14,166,181, -207,189,230,161,230, 65,107,181, 90,220,172,154, 58,160,154,153, 42,129, 59, 26,154, 99,133, 49,164,236,192, 97, 52, 35, 10, 36, - 12, 90, 88, 38, 97,108,225, 70, 3, 70,176, 64,163, 25,140,180,248, 0, 1,163,153,111,204, 38,171,213,176,185,179, 89,204,226, - 37, 77, 35,170, 56, 16, 13,177,109, 29, 35,240,227,218,150,113,172,238,140, 86, 88,116, 64,142, 94, 41, 8, 94, 52, 19, 1,142, -246,208,181,220, 14, 64,163,159, 34,202,124,195,203,131,232, 14,107,224, 38,172,113,199, 0,232,203, 97,136,156,177, 0, 22,245, - 31,188,253,131,127,117,250,175,186,157, 77, 7, 35,110, 26,225,195,187,159,127,246,233, 71,147,141,205, 47,127,237,173,174,235, - 22,167, 39, 86,171, 13, 3, 0, 1,168, 3, 74,211, 89, 93, 20,133,249,217,124, 56,188, 55,172,250, 82,134,213, 98,113,118, 62, -191, 56, 61,157,207, 79,139,218,164,107,175, 92,190,140, 4,170,245,116, 62,159,159, 95, 32, 35,177, 96, 41,139,213,226,162, 95, -170,217,172, 73, 2, 56, 95, 46, 87,253,144,146,212, 50, 20,171,203,126,232, 75, 95, 7,173,166,125,214, 50,148, 86,100,144,116, - 81,181, 12,131,185, 38, 78,111,190,254,242, 63,250,198, 55,180,234,191,255,127,255,248,246,189,131,221,173, 13, 55, 59, 61,157, - 23, 13,131, 44, 18, 39, 10, 63,138, 21, 53, 85,203, 6,178,181,181,241,204, 19, 79, 60,251,202,203,195,106,117,117,178,121,229, -234,181, 47,126,241, 85,116, 88,173,250,197,114,113,116,112,112,227,246,173, 27,183,239,220,190,119,247,222,225,131,227,227,227, -197,106,121,120, 90,212,183,103,147, 86, 53,154, 33,237,234,222,222,238,214,118, 13,158,150,163,187,199, 3, 96,227,143, 3,181, -150,172,182,127,122,113,223,206, 1, 96, 40,195,123, 55,110, 62,249,232,181, 62,235,193,241, 17, 1, 21, 45, 79, 60,122,141,185, -121,252,209, 43,119,246, 15, 54,187, 9, 9,147,249,149, 75,123,187,155,155,171, 60,212, 90,246, 54, 55,173,234,149,189,157, 39, -159,121,250,238,189, 59,109,162, 68,169,235, 26, 95,228,174,105, 22,171, 94,132,164, 21, 55,151, 10,106, 14,204,140,206,220,196, -124,106,224, 34, 98,213,170, 22,146,212,181,157, 22,205,117, 72,146,226,129,228, 54, 60,214,182,174,196, 86,171,198,200, 0,110, - 90,152, 5,220,212, 61, 17,155,170,131, 16, 33,141,142, 3,141, 6, 98, 85,117,196,148, 82,201,217, 12,152,192,221,117, 24, 72, -146,164,228,128, 30,244, 62,137,233,216,153, 57, 80,195, 99, 80,145, 24,220,198,162,231,104,221, 28, 7, 82,160, 64,145,128, 3, - 10,131,122,196,109,137,107,201, 99,114, 11, 9,205,220,149,144, 29,220,180, 4, 98, 13,193,181,102, 4,182, 90,193, 85,173,178, -115,209,194,136,204,108,165,186, 25, 16, 42, 0,212, 66, 97, 75, 26, 71,166,136,161,208, 67,130, 43,115,227,154,145, 4,221,106, - 29, 88, 24, 3, 36,101, 22, 36, 18, 85,103, 38, 11,114,253,218, 52, 61,244, 67, 59,105,155,166, 45,181, 90, 29, 48, 76,248, 20, - 92, 9, 52,176,126, 88, 74, 98, 78, 9, 0,192,108,236,248, 54,141, 71, 83,107,198,232, 83, 74,124,124,118,214, 8, 3, 74,248, -205,227,125,207, 44, 96,182,206,145, 49, 16,187, 43,155, 59,130,105,245,209,240, 18, 48, 34, 55, 51,135, 32,214,248,136, 41,209, - 66,196,204, 73,107, 46, 85, 17,129, 80,204,148, 0,140,208, 29,129,200,212,106, 45,140, 41,145,152,214,154, 51,162,248, 26,132, -192, 34, 97, 86,196, 64,246, 2,153,106,213,129,152,192,149, 82, 42,185,119, 0, 17, 80,104,204,173, 12,125, 74, 18, 81, 43, 33, -160,182, 27, 44,175,134,218,138,145,131,132,192, 23,193,128,177,240, 59,150,157,232,230, 26,246, 18,119, 67, 27,170,141,101,181, - 52,182, 16, 90,224, 43,145,136, 88, 18, 54,221,198, 38, 5, 69,127,189,193,116, 55,118,175,102,181,214, 50, 12,185,228, 50,172, -180, 86,211,193,114, 45, 57,107,201, 10, 54,198,180, 1,192,156,156, 35, 21, 54, 38, 82, 21,199,177,127,125, 80,131,187,199,226, -215,124, 50,153, 28, 28,157,227,165, 45,171, 46, 65, 11, 28,181,115, 27, 15, 98, 68, 24,233,170, 33,237,216,232,197, 9,194,153, -173,149, 34, 20,240, 2, 80, 1, 24,220, 29, 12, 92,109,204,127, 68,138, 35, 60, 53,145,169,227, 17,182,233, 81, 49,192, 35,152, - 15,195, 70, 3,140, 82,150,197, 29, 86,171, 30, 85,133,233,163, 79, 63,253,228,147,143, 95,255,250, 55,200, 21, 9,223,255,233, -143, 15, 30, 60,248,202,155,111, 78,164, 1,180,254,124,142,141,128,154,235, 8, 58, 94, 44, 22, 67,238, 47,206, 78,135,146,107, -206,181,174,206,206,207,206,142,143, 79, 78,230,253,144,119,182, 54, 54, 54, 55, 16, 89, 77, 79,207,206,136,168,239,135,163,249, - 92,107, 37,132,170,134, 14,155, 27,179, 54,165,101,223,247, 67, 31, 35,149,153, 45, 86,139,146,107,174, 86, 53,247,185,150,161, - 42,128, 59,110, 76,166, 0, 70,140,102,245,108,217,239,110, 78,255,217,111,124,251,235, 95,254,210, 95,254,224,239,126,240,211, -119, 39, 73,182,167,141,106, 77,156,218,214,173, 55, 38, 94,213, 60, 63, 61,109, 83, 55,157, 77,166, 77,199,200,228,240,143,127, -245,155,175,188,246,218,135,239,191,255,231,127,250,231,223,250,198,215,185,105,157,218,176, 33,119, 93,211,108,109,237, 94,123, -244,133,215,190,164, 57,151,161, 88,233, 79, 78,142,246, 31, 28,125,114,243,198,167, 55,111,206,231,103,135, 39,199,165,106, 86, - 95, 13, 43,150, 70,213,194,182, 10, 0, 9,132, 29, 29,161, 2,160, 90, 67,105,146,204, 9, 29,148,144,114,209,171,151,246,174, -238,237,221, 62,124,112,105,103,235,124,209,159,247,203,243,139,197, 75,207, 62,178,127,114,250,224,248, 84,246,232,108,185,154, - 76, 59, 96,190,119,116,122,112,124,178,179, 53,219,111,231,199, 23,231, 47, 61,251,156,109,236,189,253,225,231,215,175, 93,185, - 88, 92, 44,251,188, 49,233,174, 92,185,122,251,238,157, 47,189,242,250, 79,127,248,246,119,191,243,143,101, 58,123,251,135,127, -251,232,149,171,139,197,249,233,233,241,230,198,108,182, 49,219,221,221, 61,190,125,111,210,166,134,155, 33, 95, 8, 49,129,182, -157, 44,115,105,186, 54, 53, 45, 58,154,105,215, 54,196,141,150,129,128,141,130, 75, 88,221,136,133,132, 91, 32, 46, 90, 9,219, -152, 13, 16, 1, 18,168, 35,170, 23, 29,218, 36,102,238, 86, 5, 81, 36,133,155,218, 16,192,212,140, 73, 18, 24,132,237, 7,209, - 72,196,171, 33,130,213, 10, 52,138,215,113,109, 37, 34,228, 78,203,224,106,241,104, 89,213,160,112,122, 85, 5,236,186,182,214, - 90,243, 64,192,163,149, 69,141,136, 84,107, 25, 6, 22, 9, 41, 57, 50,165, 90,134,181,113, 46,110, 9,134,132,165, 86, 66, 71, - 73,150,123, 11, 51, 62, 2, 32,153,214, 90,140,153, 82,219,105,173,170,133, 37,133,175, 84,107, 54,112,180,140, 44,210,164, 40, - 57,138,193, 43,166,254,224, 72,233,156,219, 26, 0, 0, 32, 0, 73, 68, 65, 84,133,233,152,152, 53,103, 32, 22, 17, 80, 11,215, -149, 34,169, 41, 33, 9,139,145,187, 86, 68, 76,169,197,113, 26,180,113,235, 7, 72, 17, 60, 52, 35,247,106, 74, 12,125,159,117, - 40,219,151, 55, 37, 73, 28,205, 64, 80,173, 2, 56, 38,178, 18,184,220, 42, 72,134, 28,187,220,162,133, 89, 26, 78,202,100,181, - 34, 11,161, 89, 53, 22, 10, 68, 0,115,131, 86,221, 1, 93,163, 58,216, 0, 9,141,153,204,153,161,230,108, 8, 22,145,218,120, - 81, 40, 56,113,170,185, 2, 21, 73, 45, 50,107, 41, 94, 12, 19,163, 48, 40, 14,195,146, 17, 36, 62, 9,192,195,144,187,148,152, - 83,113, 64, 44, 8,216, 54,109, 45, 57,181, 32, 44,125, 45,224, 74,140,109,203,236, 96,232,226,213, 65,226,216,212, 16,166,208, - 53,142,170, 48,144, 68, 49,182,141, 53, 29, 10,228,166, 10,117,237,128,113, 65,116,240, 98, 0, 64,181,198,225, 88, 66,238, 70, - 7,175,196, 72, 36,194, 34,211, 13,218,164, 20,133, 35, 20,149, 42,100, 86, 85,173,214, 33,247,117, 24, 74, 30,180,150, 90,122, -143,134,222, 18,192, 97, 13, 42,119, 20, 60,185, 58,198,112, 33,208,166,164, 94,212,108, 76,178,142, 70,228,112, 51,249,136, 18, - 24, 13,240, 52,118, 8, 96,152, 38,215,172,165,209, 15, 90, 28, 8,185,129,135,238, 71,100, 32, 71, 32,183, 53, 61,222, 0,216, - 31,238, 87,221, 28,201, 0,162,154, 61, 2,183,113, 71, 32, 97,186, 24, 6, 7, 44,166,137, 1, 28, 79,231,167,111,191,243,206, -215,190,245,107,251, 55, 63,122,239,103, 63,121,244,133,151,126,237,107,223, 40,139,179,160, 83,133, 15,167, 2, 13,253,217,176, - 90,158,206,231,125,127,166,181,230,210,247, 23,203,131,195,195,179,211, 19, 53, 19,226,217,180,219,221,222, 58, 95, 44,206, 46, - 46,134,156, 81,104,185,232, 1,177,148, 92,138, 10, 97, 85,101, 39, 39,152,159,159,153, 66, 95,135,212,200,106, 81,138, 14,136, -144,171,230, 82,251,126,229,238,132,220, 53,201,209, 64, 73,205, 23, 57,151, 82, 55,167,211,173,217,198,191,254,157,223, 22,145, -127,243,187,191,183,127,116,114,101,123,163,235, 58, 48,175, 0,125, 89,185, 66, 35, 92,171,158, 45, 87,125, 85,135, 85, 62, 43, - 85,203,206,214,214,211,207, 61,251,230, 91,223,152, 47, 46, 14, 31, 28,252,251,255,240,167,119, 63,255,232, 87,191,254, 38,138, - 76,102, 51,105, 38,210, 52,148, 90, 8, 12, 54, 49, 78, 0,133,119,155,102,107,119,247, 11,207, 63, 83,243,176,184, 88, 60, 56, - 58,186, 88,245, 7, 15,142, 62,187,125,251,104,126,122, 58, 95,158,157,157,247,154,221, 76, 1,138, 3,133, 24, 70, 96,104,163, - 71,203,161,168,182,109,218,221,218,120,231,163, 79, 78,206,231,215,175, 94,158,116,205,197, 82, 16,113,209,175, 46, 79, 55,210, - 53,155,159,175, 38, 73, 38, 41, 61, 56, 58, 25,106, 73, 68,179,182,237,186,118, 27,116, 54,153,246,203,197,222,230,198,238,206, -238,189,251, 7,243,179,211,188,177, 49,153,164, 95,122,227,141,157,237,157,179,229,208,204, 54, 72,228,124,185,252,202, 19,207, -124,246,249,173, 71, 54,175,252,232,157, 31, 62,255,220,243,203, 7,139,110,114,249,246,252,248,246,254,205,169,208,116, 50, 77, -132,119, 15,238,223,188,115,239,171,175,189,122,126,190,186,125,231, 86,206, 37,161, 23,173, 93,203,151,247,246, 74, 41,146,248, -137, 71, 30,235,251,126, 54,237,134,161, 76,154, 52,155,204,134,146,187, 36,192, 16, 81, 47,225, 8,204,114,211, 36,112, 3, 39, - 17, 17, 18, 73,104,209, 55,210, 38, 70, 79,146,204,171,153, 59, 37, 66, 5, 39, 7, 51, 36,110, 91,118, 51, 36, 80, 67,102, 78, -140, 62,154,193, 36, 37,117,117,115,226,240,173, 25,119,169, 33, 41,195, 10,137,154,212,198,131,230, 86,153,217,170,130, 89, 44, -188,221, 50, 74,243,208, 7, 1, 35, 84,145, 68,200,234,160,117, 64, 68,112,170,154,213,141,129,147,164,161,244,160, 78, 4,105, -210,128,106,173, 5, 64, 1,193, 44,131,114, 56,193, 67,135,119, 85, 0,112, 83, 64, 12,248, 68, 48, 69,220,157, 24, 64, 45,108, -207, 20, 12,100,166,156,115,211,180,210,180,154,135, 38, 37,119,182,170,142, 64, 36,128,145,119, 52, 7, 67, 48, 7, 25,137, 17, -174,137, 88, 17, 28, 7, 68, 5,240, 82,234,116,163,107,155, 4,232,169,105,114, 45, 86, 43, 34,170, 58,147,112, 44, 60, 66,197, -133,192,120, 1,147, 56,162,186,161,186, 52,173, 87,231,132,133,212,189,132,234,140,166, 65, 64, 7, 51, 74,226, 72,110,198, 76, -106,174, 86,132,160,105, 91, 0,176, 97, 53, 44,151,156, 82,106, 90,228, 52,228, 21,145, 19, 75, 81, 69, 45,194, 2,146,114,173, - 80,178,176, 76,103, 83,173,170, 86, 71, 95,164, 76, 12,160,239, 87, 73, 18, 98, 42,121,193, 84, 83,219, 58, 72, 41, 78,212,149, - 90,130,100,192, 68, 66, 36,200, 15,149,104, 7, 20, 48,245,135,206,145,135,181,123,107,178,155,155,129,198,114, 39, 78, 65, 6, - 87, 64, 6, 96, 7, 5, 29,157,145,224,230, 78,227,230,209, 52,122,146, 12,160,232,216, 66, 6, 24,245,128,107,166, 41, 96,215, -117, 56,153, 18,163, 5,178,193,157, 88,162,160,178,106,177, 92, 29,205, 21,204,180,150,236, 86, 75,201, 94, 85, 8, 55,218,249, -241,121,217,219,238,106,169,228, 21,104, 52, 81,141, 32, 95,164, 72, 28, 88, 40, 52, 68, 96,250,208,235,136, 40, 49, 27, 4,177, -198,227,242, 56, 90,240, 1, 45, 10,159,214,252,122,242, 81,246, 9, 54, 1, 18, 0,143,221,130,161,195, 57, 2, 18, 40, 16,194, -209,233, 28,136,162, 16,109, 40,213,193,255,225,199, 63,252,251,191,250, 51,173,250,210,215,126,249,234,163,143,246,231,103, 44, -130,166,117,232,235, 48, 28, 31, 31,156,205,207, 75,205, 94, 75, 95,250,211,163,163,253,253,251,167,243, 51, 50, 69,132, 89, 55, -157, 78, 59,119, 80,176,229, 98,177, 92,173, 28,124,181, 26,250, 82,170,106,132, 58,152, 40,145, 52,137, 27, 73,185,234,233,249, - 42,151, 90,107,248,103, 74,159, 7, 65, 86,179,170,138,128,128,164,235,218, 29, 71, 0,194, 54,165, 36, 2, 0,139,101,249,155, - 31,189,115,235,206, 61,105,248,169, 71,174, 58, 88, 46, 85,107,117,128,134, 19, 11,157, 94, 44, 78, 47,206,231,231, 23, 96, 70, - 52,233,218, 68,140,231,231, 23,203,126,117,124,114,231,120,255,248,163, 27,159,170,219,247,126,240, 67,215,161,107,218,182,155, -110, 78,186,217,230,230,108,182,217,116,109,211, 77,164,153, 36, 34, 71,168, 69, 83, 18, 74, 73,102,219,151,247,174, 94,185,254, -108,208,123, 23,139,211,211,227, 7,103,243,249,249,114,113,124,122,126, 50, 63,189,187,127,176,127,120,112, 50, 63,159,159, 47, - 86,195, 16,102, 6, 34, 20, 66, 5,216,217,154,245,125,255,242,147, 79,252,228,147,194,196,231, 23,203, 73,215, 2,194, 59, 31, -124,212,117,237, 99,215, 46,221, 63, 62,126,225,250, 35,243,179, 51, 34,158, 78,187, 71,118, 47,165,212, 32,210,225,131,249,108, -186,127,229,145,171,169, 73, 31,125,250,105,159,135, 87, 95,124,201,192,102,147,233, 59,239,188,179,234, 87, 87, 47, 93,249,155, -191,254, 75, 98,254,226, 23,190,120,112,248,224,193,225,237,239,126,231,159,252,232,167,255,112,229,210,229,131,195,125, 16,154, -159,156,234,226,124,235,209,171, 64,124,240,224,240,244,252,236,210,246,246,209,241,131,195,163,211, 7,231,231,102,250,224,248, -184, 31,250,229,170,223,221,222,204,213,186,196, 79, 61,118,124, 60, 63, 39,180,161,212,105,219, 46,250,229,233,217, 34,137,172, -134, 92, 75, 77, 77,218,154,108, 72, 43, 58,244, 33,199,115, 20, 68,129, 73,168,233, 8,200,220, 16,110,109,206,158,189,118,245, -213,231,158,220,218,220, 89,174,150,253,144,103,211, 9, 49, 19, 19,152,165,182, 51,240,166,105,165, 17, 87, 71, 70,105, 91,243, - 18, 45,128,113, 21,230,148,180,170,185,166,110, 50, 10, 20,166,110,192, 41,130, 78, 70,208,154,107, 60, 6, 90,138, 36,126, 24, -207,113, 0,114,183, 90,130,152,170, 54,250,226,184,157,120,201, 37,103, 2, 6,114, 2, 46,185, 18,134,126,144, 70,137, 72,107, -208,204,214, 6,186,245,226,205, 33, 12, 75, 99,159, 56,146,149, 28,185,197, 40,218, 69,196, 90,115,128,119,208,176, 97, 86, 83, - 51, 85,197,166,235,162, 64, 17, 64,199, 0, 58, 10,140,252, 9, 20,150, 50, 12,106,185,107, 18, 81,215,231,162,117,216,218,222, - 72,221,164,148,218,151, 30,145,221,113,196, 31, 86,149,166, 35,193,218,231,234, 61, 73,135,140,128,104,177, 50,101, 64, 76, 33, -212,104, 52,114,137,128, 27, 40,170, 6, 97,155,137, 90,119, 99, 2, 3, 82, 53,112, 79,169, 33,130, 90,116,252,139,128,187,123, -233, 51, 9, 53,205,196, 74,113,247,134,152, 82, 91, 75, 41,117, 96, 32, 73, 98,192,170, 22,251,156, 72,194, 34, 20, 68, 22, 97, -119, 71, 52,105, 90, 85,131, 92,145,157,133,107,173, 86, 20, 29, 19, 19, 33, 22, 53, 65,166,208,155, 28, 0,172, 64,100,223,194, -230, 24, 51,240, 72, 88, 4,119,133, 95,132,145,194,102, 98, 16, 39, 56,140, 22,195,241,181, 64, 12, 81,186, 24,160,188,192, 25, -152,173, 49,193, 26, 77, 14,107,244,163, 35, 83,173, 53,102, 14, 0, 50, 83, 48, 55,202,128,136,152,132,176, 50,184,147,116,226, -128, 72,179,177,140,201,141,185,109, 38,147,159,126,112,235,213,175,126,109,113,177, 48,112,203,189, 85, 85,203,154,135,210,247, -181,100, 0, 19, 50, 64, 51, 48, 25, 17, 9, 50,178,229,162,214, 32,232, 73, 97,109, 5,113,138, 98,170,245, 43, 15,126,241, 95, -252, 59,216,200,133,125,184, 50, 30, 29,247, 35,121,214,141,192, 79, 78,206,120,180,218, 35, 56, 60,255,212, 19,167, 15,238, 93, - 44,250, 95,254,245,239,128, 64, 93,245,228,214, 95,156, 31,239,223, 93, 44, 22,181,150, 0,233,205,231,199,251,119,239,223,190, -119,167,150,178,187, 57,187,180,189,113,126,177, 2,176,243,161, 63, 93, 92,212,172,171, 92,136,189,148,186, 28,134,139,190,103, -119, 97,158,181,237,246,198, 38,130, 45,242, 80,139,173,114, 1,192, 82,173,148, 50,228,108,102, 68, 44, 68,236,148,189, 14,165, -196, 85, 76,152, 8,193, 98,195,109, 30, 65, 26, 36,102,174,119,238,239, 95,222,221,102,225, 92,242, 48,244, 41,181, 10, 62,107, - 59,102, 62,156,159,206, 23, 11,114, 80,167,101, 30,178, 90, 63, 12,211,233, 36,165,230,232,108,254,246, 15,126,112,255, 96,255, -243,123,247,107,213,227,249,217,143, 63,252,120,115, 58,107,154,102,218, 72, 74, 77,155,154,174,105, 82,215,206,186,105, 59,233, -132,165, 77, 77,215,181,123,151,174, 76,183,119,152,144, 37,169,153,161, 78,118,118,155,205,221, 43,154,173,170,230, 98,150,135, -220,231,161,228, 90, 47,206,206, 30, 28, 61,120,255,131, 15, 63,188,241,217,253,227,147,249,233,217,157,163,211,221,205,238,210, -108,242,209,237,219,194,252,224,120,206, 66,132,124, 50,191,112,119, 54, 59,155, 47, 30,187,124, 25, 0, 87, 67,157, 77,105,185, -202,183,203,193,164,149,203,123, 87, 88,154,157,141,237, 27, 55,110,189,247,209,135, 72,244,230,235, 95,122,230,233, 39,127,246, -254,251,183,238,220, 33, 76,143, 62,114,117,107,107,123,218,117, 15,142,239, 63,114,237,218, 71,159,125,122,253,177,235,255,207, - 31,253,223,199, 71,199,111,255,248,199, 79, 94,127,236,230,231,183, 62,188,241,233,230,172,187,187,191, 63,100, 61,124,112,240, -204,147, 79, 31,159,156,214, 82, 14,143,142, 0,173,147,110,181, 88, 25,104, 67, 84,114,206,185,212,204, 31,124,250,153,153, 78, -186,201,252,226,172, 20,173,102,203,190,111,165,233,186,110,107, 58, 45,181, 63,187, 56,134,149,212,146,133,165, 58, 8, 64,106, -210, 48, 12, 85,161,152,149, 60,184, 99,174,165,109,154, 31,116,205,183,238, 61,247,221, 47,127,105,190, 92,204, 54, 54,171,121, -223, 47,206, 22, 11, 98,153,180,141,154,129,195,108,182,177,204,195,180,155,110,108, 76,151,171,213,162,239, 83, 74,109, 74, 53, -247,221,198,166, 48,159,207,143,118,246, 46, 15,181,182, 93,103,225, 15,145, 68,204, 73,152, 68,192,144, 4,145, 69, 80, 37, 53, - 0,206,206,132, 92, 74, 0, 59, 71,147, 18, 90, 5, 34,168, 0, 85,221, 1, 85,145,216,204, 44,176, 53,113,140, 36,118, 83, 48, -111,155,198, 0, 70,218,224, 72, 95, 96, 7, 2,140,122, 16,113, 48, 83, 29,245,237, 72,188, 85,101,137, 54,136, 20, 15,150,214, - 66,204,170, 70, 28, 9,217, 58,184, 11, 65,173,182, 46,229, 49,116, 16, 22,112,200,185, 34, 51, 83, 91,212, 5,188,212,218, 54, - 50,157,181, 81,141, 52, 26,170, 17, 0,176,149,100, 6,154, 51, 16,161, 16, 25,130, 87, 8,202,115, 84,129,153, 99, 82,143,118, - 44, 83, 38,113,163,172, 43, 92,211, 19,209, 65,181, 39, 17, 36, 70, 52, 64,115, 64,213,161, 86, 4, 64,105,146, 15,102,101,160, -196,200,168,102, 88,122,230,166,170,170,233,176, 28, 82,211, 72,106,188,230,154,141, 18, 72,211,169,107,201,185,230, 2,104, 66, -226,174,196, 52,198,175,156,204, 93, 29,200,209,139, 1, 82,234, 90, 53,143,157, 40, 50,202, 72, 63,136,130,150,136,178,121,112, - 41,200,205,224, 33,249,125,148, 71, 0,188, 6, 80, 96,173,148,217,216,176, 61, 46, 92,141, 56,208,125, 20,229, 50, 30, 12,224, -209,231,187,206,114, 59,186,186,167,117, 64,200,204,181,184, 81,192,139,163, 96,211, 52,194,202,189, 33,168,134,234,163, 36, 2, -186,134, 62, 58,152,214,233,230, 86, 62, 63, 92,156, 47, 82,195,230, 64,105, 19,132,113,108,216, 65,116,179,234, 53,247,181,244, -166, 89,139,106, 94, 2, 40,160,133, 99, 38, 72,162, 99,154,202,196,113,205, 42, 91, 55,241,132, 85,211,205,199, 18,171,168,131, - 51,115, 30, 91, 94, 99,250, 32, 32, 95,251,249, 9,113,208,138, 4, 85,157,219,230,169,203,151,207, 22,171, 79,238,220,126,231, -231,239,125,243, 55,190,187, 58, 62, 92,244,195,241,209,225, 48, 44,137, 5,220,206, 78,143,207,206, 78, 15,238,223, 63, 58,126, -144,136,175,238,237,116, 77,179, 28,134,251, 15, 14,207, 46,250,221,141,233,241,217,185, 35,182,152, 42, 20,234,177,175, 67,191, - 90, 78, 36,237,110,110,110,206,102,203,213,242,100,121, 94,171, 37, 22,215,186, 40,185,214,156, 75, 53,211,209, 99,140,100, 54, -148, 90,150,181, 38,145, 41, 19, 18,230, 92, 99, 29,109, 10,110, 54,105,154,148, 68, 16,183,102, 19,117, 85,179,154,181, 22,109, - 38,173,229,255,159,169, 55,137,213,237,202,242,188, 86,179,247, 62,231,124,221,237, 94, 99,251,249,217, 14,135, 35, 28,153, 17, -145, 81,217, 85,166,146, 84,137, 74,101, 22,133, 10, 21,205, 0, 81, 2,169, 70, 48, 5,166, 8, 49, 65, 2, 49, 99,134, 24, 33, - 33, 49,161,144,144, 16, 32, 64, 84, 86, 67,210,100, 86,146, 77,100, 56,108,135,237,112,243,186,251,222,237,191,238,156,179,247, - 94,107, 49, 88,231,123,193,200,122,178,116,223,125, 95,179,207, 94,107,253,215,239, 87,199, 49,155,194,205,118, 83, 74,110, 56, - 10,113, 74, 33, 75, 32, 83, 81,205,185,152,216,151,207, 94,252,233,143,127,186,222,111,247,125,189, 91,175,175,111,239,170, 72, - 19, 67,151,154,182, 75, 77,140, 41,134,196, 28, 98,219,117, 49, 16,119,169,157,207,219, 16,194,114, 62, 91, 45,143,186,182,107, -218,182,155,205,219,166,233,230,203,110,121,138, 12,200, 20,219, 96, 21, 83, 55, 43,227, 40, 82, 79,142,143,223,127,255,253,223, -254,173,223,178, 90,214,155,205,245,213,245,207,159,124,243,228,233,211,199,111, 60,248,159,255,233,255,217,153,174,183,251, 33, - 23, 68, 33, 14, 15, 78,142, 98, 72,132,118,188,152,221,237,134,152,210,213,205,221,124,214, 65,156, 29, 47,143,238, 54, 27, 12, -248,226,213,139,219, 77, 47,106, 15,142, 86,179,166,249,103, 63,254,139,113, 20, 17,184, 27,238, 30,234,217,106,222,189,251,222, -123,119,155,219,255,252,191,252, 47,126,248,253,239, 55, 33, 92,188, 58,255,224,157,119,126,254,244,201,243, 23,207,206,175, 47, -126,231, 71, 63,170, 21,126,252,217,199,215,119,235,191,254,203, 63, 56,154,119, 31,125,254,105,184,134,126,236, 31,221,191,255, -249,211,167, 71,171,197,237,102, 35,160, 49,240,110, 40, 38,163, 65,147,115, 30,171,250,224,169,230, 42,165, 12, 38, 90, 11,129, -152,106, 96,231, 12, 43, 25, 50,152, 77, 40,116,191, 30, 42, 51,155, 42, 35, 52,129,106,213,255,253,199,159, 44,186,217,119,223, - 56,189,188,236, 79,207,206, 56,196,161,148, 20, 56,196,174,101,188,189,219, 84,213,196,172,185,191,120,185,173,102, 72, 20, 48, -100, 25, 54,155, 53, 3,167,121,115,254,228,155, 89, 88,152,230,220,231,126, 63, 84,173, 20,163,230, 12, 28,251, 97,115,114,124, -116,183,222,206,151, 75,142, 17,192,218,166, 75,109,203,129,137,145,145,129, 57,132, 24,155, 16, 67,170, 57, 55, 33, 26,162, 26, - 85, 67, 66,170,248,154, 56, 66,126,209, 97, 68, 1,209,138, 10, 32,128, 60,249,123,194,148, 97, 59,100, 64, 85, 20, 32,168,228, - 24,210, 56,102, 83, 77, 93,227,132,119,142,193,106, 17, 51, 66, 0,228,212,132, 90, 51,130, 72,169,177,153,153, 8,135, 32, 34, - 6, 22, 8, 67,224, 81,114,192,160,102,100, 8,192, 76, 98, 0,185, 31,218, 38, 33, 69, 19,101,102,226, 48,214, 26, 16, 13,169, - 31,122, 63,168,136, 2,199,168, 42,110,228,133, 64, 80, 17,136, 76, 65,134, 66, 41, 17, 49, 77, 84, 89,233, 66, 91,106, 22,173, -136,172, 96, 33, 68,138, 92,107, 69,226,192,109,201,131,137,196,212, 1, 99, 41, 35, 33,197,121,151,115,149, 90, 66, 72,238,222, - 66, 4, 85, 9, 72, 12, 72, 49, 41, 70,169,123, 53, 45, 37,123, 96,187,141,177, 26, 90, 45,161, 11,164, 92,173,122,175,140,152, - 13, 48,247, 67, 72,129, 24, 69, 36,143,133, 65, 67,106, 17, 17,159,252,248,255, 5, 4,145,250,186, 51,193, 68,135,114,105, 58, -220, 14,250,107,157, 78,124, 32,183,151, 78, 83, 70, 15,190, 56,134,200,124,143, 60,170, 85, 83, 1, 37, 96,240, 61, 88, 52,183, - 53,121, 19, 28,172, 42, 76,118, 41,111,197, 79,201, 71, 64, 6, 21, 81,245, 25,233, 20, 84, 57,120,157, 94,107,157,124, 40,175, -166,109, 59,251,252,175,254,132,151,111,126,251,253,199,227,232,175,133,212,195, 67,139, 67, 64,199, 87,193,148, 69, 38, 68, 83, - 44, 50,106, 30,165, 22,224,170, 69,213, 4, 68, 65, 20, 65, 84,139,167,101,124,102,207, 78, 42,163, 95,128,201, 28,160,129, 4, - 68,140, 64, 83,230,147, 96,186, 10, 24,190,121,127,241, 31,252, 71,255,201, 79,190,122,217, 68,238, 66,184,219,110,247, 99,253, -246,123,143,127,253,215,126,243, 15,126,255,111,237, 54,107, 1, 83, 41,181,212,245,221,205,197,249,139,237,110, 19, 57,182, 93, -219, 52,169, 14,227,245,221,221,237,221,109, 41,133,153, 25,177,148, 98,228, 52, 77, 54,211, 42, 26, 67,104,153, 85,235, 62, 75, -174, 69,253, 97,168, 90,138, 84,168,121,204, 70, 16, 57, 25, 88, 25,114, 46,185,138, 0, 66,147, 26, 70, 44, 85,135, 60,228,146, -193, 1,116,196,109,140,196,164,162, 37,215,106, 5,145,205,172, 84, 65,196,227,197, 98,204,181, 72, 81,173,183,155, 29, 24,196, - 16, 16,112, 20, 49,128,154,139,212,178,203,162,160, 49, 48, 81, 88,118, 13, 35,115, 12,127,254,233, 23, 57,231, 16, 2, 51, 69, -166,192, 28, 67,104, 99,228,192, 77,138, 93, 74, 77,138,109,147,150,243,249,106,177,236,218,182,109, 66, 19,155,166,109, 23,179, -249,124,214,181, 93,219,181, 93,215,118, 49,165,216,166, 24,154,152, 82,140,201, 1,207, 8, 16,154, 8,138,227,216,223,222, 94, -223, 94,221,190,188,184,126,117,249,106, 24,199,235,155,155,187,221, 78,213, 74, 45,166,154,154,244,205,243,231,111,222,127,240, -198,189,123, 23, 87, 23,159,124,249,245,201,114,241,240,193,105, 21,168,185, 12, 57,207,230, 29, 35,173,102,139,147,227,227,179, -227,251, 77, 75, 47,175,174,246,251, 76, 33,129,230, 55, 30,156,109,119,251,156, 71, 64, 40,185, 34,218,106,121, 36,165,252,236, -235,175,218,216,116, 77,162, 64,171,217,226,207, 62,253,120,214,180, 93,215,253,240, 91, 31,124,252,205, 23,215, 55,155, 89,155, -154, 16,174,119, 91, 16,101,162,175, 94, 93,140,253, 24, 2,229,177,182, 93,215,165, 84,165, 26, 24,136, 14,165,246,227,208,151, - 28,137, 25,105,181,104, 61,239, 45,217,209,193, 65,204,136, 40,134,184,222,238, 60,149,159,107, 81,179, 49,151, 54, 53, 77,228, -126, 28, 1,232,239,252,230, 47,253,242, 91,111, 45, 87, 43,102, 54, 67, 1, 40, 99, 95, 75, 37,142,199, 71,171, 89,151,158, 62, -125,202,129,153,194,217,201, 89, 54,139, 4,165, 20, 53, 48,173, 93,211,138,228,188,223, 80,106, 41, 52,104, 56, 84,201, 99,143, -156,152, 12,181,238,118,187,249,124, 65, 33, 13,251,189, 17, 72,150,166,237,230,179,118,179,185,149, 90,123,129,213,233,189,231, -183,119,183,119,107, 69,236, 82, 92, 46, 22,179, 38,174,102,243,166,137,179, 89, 23, 2,181, 33,117, 93, 19, 2,199,148, 8,205, - 77,108,230,234, 31,243, 32,135, 51, 38, 85, 69,165, 22, 51,166,200, 42,197, 42, 16,153,160, 49, 50, 18, 58,140,222, 23,160, 56, -184, 78,137, 13,216,100,156, 6,158,196,106, 6,170,128,228,141,154, 3, 78,138, 21, 12, 65, 3, 65,191,219, 14,187,205,242,236, - 40, 53,115, 17,112,251,183, 20, 41,121, 28,246, 59, 41, 85, 69,154,121, 27,155, 46,198, 6,137,129,144,136,201, 80,252, 71,171, - 79,119,201,247,146,252, 74,106,254, 80,210,106,147,157,136, 39,239,149,169,168, 56,144,199,239,173,196,129,128,138, 84, 3,101, -194,170,211,104,211,111,146, 42, 74, 76, 28, 26, 3,169,185, 74,169, 8, 66, 77, 66,160, 50,142, 4,232,152,101, 20,128,128,222, -149, 21, 5, 19, 33, 52,115,251, 10, 34, 17, 87, 85, 52,219, 15, 99,208,131, 28,195, 39,163,191, 96,246, 78,115,108,243,113,176, - 29,142, 55, 63,114,221, 46, 53, 69, 78, 29,218, 65, 7, 34,182,170,104, 65, 3,112, 44,132, 33, 3, 41,138,137, 32,161, 67, 34, - 14, 60, 70, 71, 95,146,170, 97, 32, 56,108, 28, 81, 96,203,170,224, 30, 40,223,112,160, 3,189,102, 82,251, 25,248, 31,173,148, -250,230,219,143, 63,251,250, 21,242,119, 56, 57,206,127, 32, 71,154, 1,168, 8,170,202,212, 54,249,197,158, 5, 32, 32, 99,138, - 45, 33, 90,131, 72,104, 42,166,106,200, 96,162,166,150,179,169, 8,152,149, 98, 86, 76,213,204, 87, 54,136,192, 48, 6, 2, 66, - 8, 96, 50,217,130,204,220, 22, 66, 1, 2,179, 1,118,129, 83,155, 62,124,239,189,119,223,255,206,183,223,255,224,141,135,111, - 64,140,187,221,174, 31,247,187,245,250,233,147,111, 54,235,205,106,181, 72,109,243,248,241,187,170,186, 93,111,246,251,189,148, - 98,181,174,230,139, 38, 53, 67, 30,134,126,159, 71, 11, 33, 48,198, 20,194,110,232, 5,173,140, 99, 37,170, 90, 74,149, 42, 54, -150,106, 53, 35, 97,224, 24,137, 40,181, 69,106,173, 85, 68, 0,172,109, 18, 81, 80,179, 60,230, 94,242,190, 31,204, 52, 53,169, -109,186, 38,177,169,229, 82,251,126,168,162, 82, 85,173, 26, 72,228, 16, 67,108, 83, 24,107,222, 13,253, 56, 86, 99,104,218,132, -222,186, 18,101, 2, 81,139, 49,140,185, 32,129,228,122,187,222,230, 42, 72,148, 98, 20,145,177, 84,223, 27,172, 85, 75, 49, 83, - 51, 4, 2, 8, 68,129, 83,155, 98,219,117,179, 54, 33, 95, 51,199, 54,134,174,235,230,109, 51,239,102,243,174, 59, 57, 62, 62, - 90, 45,230,221,172,105, 99,203, 77,240,174, 63, 18, 69,127, 78,164,182,137, 67,206,159,124,254,245,215,207,158, 93,222,220,214, - 42,236, 30,138,192, 4,184,152,205,209, 64, 73,180,226, 88,243,241,106, 53,107,186, 92, 43,135,248,238,155,111,133,128,175, 46, -111, 31,156,158, 40,115,106,187, 6,163, 49,189,251,248,157, 49,231, 79,190,250,188, 31,247,227, 56, 70,142,111,220,127,104, 0, - 31,253,236,103, 41,132,123, 71,167, 79,206,159, 63,126,243, 65, 10,205, 71,159,126,122,113,125,133, 0,111, 62,188,255,234,252, -186, 77,241,203,252,204,170,188,253,248,254,126,200,127,242,209, 79,246, 99,255,232,254,131, 77,191,251,252,201,179,237,208,119, - 77,179,217,238,114,173,145, 35, 97, 56, 57,106, 17, 64,181, 42, 40, 26,184, 61, 92, 77, 77, 28,171, 4,234,149,182, 90, 6,104, -204,196,173,161,177, 81,176, 34,165,141, 13, 18, 84, 15, 11, 59, 70, 19, 99, 8,220,151,250, 63,253,179,143,238,126,105,252,181, -247,223,153,207,230, 41, 70,145, 34,128,219,113,232,154, 80, 75, 30,160, 80,108,114, 30, 54,235,203,245,221,205,155,143, 30,115, -196,171,205,122,177, 60,238,135,190, 10,236,182,155,121,151,108,200, 99,217, 45,143, 78,216,228,100,185,184,188,219, 96,138, 98, -204,237, 34,231,129,114,142, 33,164,110,209,221,159,109,119,187,175, 46,174,190,120,254,234,242,110,253,252,226,242,102,215,223, -245,123, 41,210,166,134, 35, 51, 81, 21,105, 99,138,145,103, 77, 34,226,163,249,188, 73, 33, 48,166,148,218, 20, 78,102,179,179, -227,213,106,181, 92, 46, 22,139, 54,158,204,187,217,124, 49,155,181, 1,184,105, 19, 98, 36, 66, 41, 90, 44,148, 82, 20, 16,234, - 72, 12,101,204,136, 53, 52, 77,136,141, 74, 85, 85, 4, 52, 20, 34,194,152,170,129,212, 74,137, 3, 51,197, 56,142, 61,136, 80, - 19,208,184, 90,117, 43, 44,135, 88,115,222,245,101,214,166,200,141,129,113, 12,154, 51, 65, 35,104,165, 20,157,240, 53, 48,246, - 61, 42, 32,114,211, 53,140, 36,234, 93, 39, 4, 3,230,201, 70, 61,241,221,192,151,249, 73, 0,107, 53,230,137, 87,107, 90, 85, -225,144,154, 86, 48, 67, 85,142, 36, 86,197,140, 67, 80,161, 82,138,137, 97,164, 24,131,128,106,150,201,242, 40,197, 76,152, 24, -152, 85, 4,213, 98, 98,226, 54,231, 98, 42, 72, 76,137,205,208,180, 26, 96,140, 33,171, 25,104,205,153, 17,140,131,168,250,104, - 29, 16, 2,120, 2,242,112,196,155,153,137, 18, 7,183, 96, 31,130,142,168,170,147, 64, 0,100,146, 99, 76,181,137,159,252,116, - 32,114,129, 33,160, 58,116,114,218, 15, 18,143,170, 76,253,238,195,230, 18, 33, 72, 53, 3, 51,228, 16,212, 65, 69, 96, 96, 34, - 21,128, 8, 21, 60, 77,165,102,116, 80, 6,250,171,239, 71,177, 35,107,106,201,237,242, 12,202, 87,251, 92, 23,179, 69, 25, 71, - 69,114, 34, 12,210, 1, 54,140,206, 80, 3, 20, 68, 86, 83,115,159,159,138,168, 26, 48,129,188,158, 52, 24, 18, 82, 72, 24, 18, - 33,152,121, 17, 70,170,181, 12, 25,160,168,212, 50,142, 62,111, 64, 21, 0, 13, 10,102, 10,254,106,134, 0,166,255,248,143,254, -184, 91,156,254, 27,255,250, 63,255,157,239,124,120,122,124, 90, 12,114, 25,111, 54, 55,121,183,187,120,254, 98, 55,110,135,253, - 56, 91, 46,127,229,215,126, 35,160,221,222, 92,230,113, 24,246,251,125,191, 15, 20, 16,113, 62,159, 25,209,213,229, 43, 85,104, -154, 56,111,155, 62,231,245,102,191, 86, 33, 68,102, 14, 77,218,247,253, 80,107,169, 42,181,168, 89,215, 52,128,144,139,130, 34, -162,137, 72,201,153, 35,167, 24,171,202,174,223,239,246, 61, 16,118, 49,158,157,156,196, 24, 84,117,204,121,187, 27,164,138,152, - 14,227, 40, 34, 69, 44, 6, 94,116, 77,211, 68, 64,220, 13,227,190,239, 85, 45,196,192, 76,125, 63, 86, 17, 17, 5,173, 2,168, - 98, 69,100, 55,236,171,210,190, 31,115,173, 64,136,106,195,144, 1,161,139,209,239, 56,200, 76,140,193,195,213,196, 41, 52, 28, -144,136, 21, 64,204,100,180,205,254,118, 24,118, 78, 43,232, 82,106,218,118,222,181,109, 74,203,197,188,107,219,163,197, 98,181, -156,117,169,155,205, 83,219,116, 90, 36, 16, 60,127,117,241,151,159,126,126,179,222,132, 64,132, 28,136, 66, 19, 81, 49, 48,251, -114, 80,136, 49, 48,153,218, 88,242, 56,244,215,140,179,210, 18,226,163, 7, 15,139,106, 76, 93,151,162,245, 61,168, 14,162, 17, -195,118,183,123,246,242, 98, 44,195,172,235,218,208,206,186,118,209, 53, 93,219, 17,232,213,205,205, 21, 92,205,187,217,139,139, - 43, 34,186,190,187,157, 55,237,195,123,103,127,249,217,103,185,212, 95,249,224,219, 33,132, 71, 39,103,219, 50,124,115,254,188, -239,135, 89,215,221,174,239, 62,251,250,233,118,232, 17,200, 4,231,221,226,216, 65,106,132, 34,146,139,248,103,146, 13,128, 25, - 0, 65,166,201,149,195, 77, 85,197, 14,206, 73,111, 6,138,105, 27, 40, 80,136, 49,168, 26,171, 9,104, 8, 78,102,155,188,170, - 98,246, 79,126,250, 51, 41,195,175,127,240,173,213,234,120,232,119, 93, 59,159,119,203,192,225,201,211,103,169, 13,167,171,179, -118,209, 52,105, 86, 74,169, 98,219, 60,156, 28,175,252,119,217,239,247, 20,210, 88, 49,198,208,239,135, 86,165,137,225,197,229, -171, 97, 44,177,105, 9,185,101,124,248,198,187,130,225,110,232, 63,123,121,253,241,159,125,242,245,179,167,219,221,102, 63,140, -158,218,218,230,140,104,196, 20, 34,197, 20, 73, 77, 69,212,164, 31,107,206, 69, 13,246, 57, 35, 98,191,223, 21,147,126, 95, 69, - 11, 83, 56,154,207, 56, 76,152,219,147,163,238,222,106, 89, 10,222, 91,118,203,197,252,193,217,241,195,179,211,123,171,249,195, -211,147,197,114,149,154, 36, 34,109,147, 40, 54, 98,128, 8,217,216, 60,114, 3, 70,200, 82, 20, 1,186, 89,151,199,106,102,192, - 16, 66,128, 72, 53, 23, 54,224, 64, 68,193, 16,173,106, 41, 37, 15,121, 62, 91,148,106,145,162,170, 43,162, 42, 17,206,186,110, - 0,147, 90,192, 64,212, 40, 50, 7, 52,211,172, 85,171,112, 76,132,196, 33, 72,205,181, 20, 10,193,183, 95, 8,163,234,168,136, - 76, 33, 4,241,203,164,100, 87,247,161,169,146, 33, 81,162, 8,181,142,109, 66, 64, 26, 11,214, 42,181, 8, 49, 27,154, 33,228, -156,209, 32,117,141, 84, 41,121, 52,209,118, 49,203,163,136,214, 24, 35,167, 84,197, 47, 79, 77,173,217,233,101, 76, 68,161, 21, -201, 98,226,224,213, 72, 60, 61,244, 17,137,153,153, 9, 33,184,166,195,113,254, 62, 50,128,195, 10,168,167, 2, 17, 92, 44,106, - 64,134,128, 24,216, 23,181, 15,196, 92, 4, 49,227, 41, 15,238,132, 70, 67, 0, 53,213, 10,134,138,138,232, 62, 29,114,132,133, - 31,183, 86, 20,105,218,214, 5, 68,100,223, 24,155, 16,196, 94, 92,197,224, 4, 81, 71, 2, 76,165, 66,205,197,144, 25,105, 2, - 35,128, 10,226,106,181,232,183,155,229,124,102, 86,164,136,119,197,171, 78, 64, 31, 79, 33,162, 1,160,104, 57, 52,205, 61, 65, - 67, 54,173,197, 78, 43, 10, 0,106,104, 89, 21, 92,143,168,238,163, 65,226,134,136,230,136, 56, 91, 50, 6,210,170, 37,143,142, -185, 81,201, 76,102, 90, 47,206, 95,125,245,228,252,225,163,247,255,237,127,231,183,149,160, 14,229,118,179,190,189,122,117,113, -254,108,179,190,235,135,108, 64,143, 30,189,253,246,219,199, 77,211, 93, 95, 95,212,146,219,182, 1,177,174,155, 49,147,154, 13, -187,126, 40,165,105,154, 7,247, 31,222,220,222,108,182,219,253,110, 44, 34, 77,227, 90, 3,237,135,190,106, 29,179,128, 65,138, -145, 65, 13,209,140,170,149,170,181,142,238, 72,179,144,194, 56,150,205,110,159,115, 21,213,229,108,118,180, 56,138,145,138,214, -190, 31,183,251,126, 24, 71, 66, 45, 21, 20,212, 53,208, 93,136, 77,219,166, 16, 74,213,126,216, 23,169, 78, 11,237,135,236, 43, -204, 34,213,135, 49, 85,172, 40,168, 34,242,172,101,106,211,204, 91,172,232, 11,108, 0,140,145,192, 16,137,137, 76, 13,232, 80, - 25,186,163, 67,132, 0, 74, 85, 64, 77,129,123,195,245,126,215,140,195,142,131,145, 5,164,197,108,121,239,244,200, 99,145, 77, -228,174,235,102, 41,205,102,221, 98,182, 80,145,167,175, 46, 74,205,169, 73, 82,242, 62, 15,140,100,189, 79,194, 17,153, 16,128, - 57, 57, 2,187,212, 98,166, 82,139,112,232,102, 75, 14,129, 12,112,142,166,186,156, 7, 32,172, 34, 4,120,117,123,219,143,125, -155,210,209, 98,181,237,247, 87,235,219,219,245,250,225,201, 81, 81,120,121,125,221,165, 48,235,186,187,205,221,110,191,191, 94, -239,154, 16,179,214, 89, 59,187,119, 28,175, 55,235,237, 56, 50,192,151, 47, 94,236,250, 65,196,206, 47,175,119, 99, 38,228,163, -249,252,193,217, 49,152,150, 90,251, 62, 3, 76,187,230,190,172,101, 4, 2,168,158, 55, 35, 48,122,109,246, 37,133,106, 6,100, - 80, 1, 81,205, 55,242, 65,141, 14, 42,131,130,166, 85,213, 55,255,196, 99,201, 6, 1,139,232, 31,126,244,115,197,240, 55,126, - 48,187,127,118,118,121,115,119,181, 94,191,255,232,109, 76, 77, 95,237,122,125, 43, 82,219,166,171,165, 15,180, 60, 90, 30, 23, -209,243,235,107, 82, 67,205,185, 82,155,186, 87, 87, 55, 15, 79, 79, 3,112,192,116,118,114, 86, 4,198, 97,255,217, 55, 95, 95, - 14,218,127,250,252,217,213,229,102,191, 30,134, 60,140, 57,165,152,152,152,208, 24, 39,121, 27, 34,128,214, 42, 76,117,234,204, - 26,153, 89, 85, 97,196, 90,106,100, 66, 36, 84, 9, 12,134,156, 2, 51, 1,147, 1,144,136,108, 54,253, 56,214,139,155, 93,209, -162, 6, 99,206, 12,198, 28,212,180, 9,225,108,185,122,252,240,244,193,233,201,106,222,206,231,179,183,206,142, 79,143,142, 79, -142, 87,145, 29, 90,167,179,229, 10,128,202, 48, 4, 50, 34, 52,177,196,161,212, 18, 57, 96, 8, 38, 46,207, 66, 49, 88,223,238, -153,177,105,102,238, 89, 68, 0, 15,122,115,140, 96,134,156,192,140,209, 18, 49, 80, 64, 12, 20, 40, 80, 99, 9,164,102, 81, 65, -135, 28, 68, 48, 19, 4, 82, 55, 2, 81, 52, 83,177,233,100, 1, 68,100, 86,169,165,140,136, 20, 98,148,146,213,147,166, 8,132, - 98, 6, 68,156,102, 73,213, 36,143,224, 54, 15, 36, 17, 49,213, 16,162,176, 12,195,216,134, 6, 83,147,165,212, 92, 38,175, 30, - 6, 70, 82, 43,129, 26, 5, 48,169, 76,228,127, 5, 2,231,146,217, 76, 81,220,228, 71, 70, 64, 28, 38,238,181,186, 26,233,181, - 38, 85,108,114,136, 35, 34, 49,138,122, 52,134, 94,211, 1, 94, 51,207,188, 51, 6,158, 46, 58, 48, 99, 28,179,138,254,141, 71, - 4, 53,104,154, 38, 52, 97,127,187,157,198,172,140, 6,122,200,160, 24, 34, 17,144, 65,245, 22, 92, 49, 37,100, 34, 84, 69,241, - 65,235, 20,216,121, 93, 98,120,184,207,204, 76,114, 57, 58, 58, 94,223, 92,158, 28, 45,107,206, 98,202, 46,111, 69, 68, 83, 60, - 44,149,226, 36, 95,192, 3,167,221, 0,209,127,229,233,128, 87,143,128,138,151, 54, 19, 88, 24, 12,196,166, 56,191, 85, 32, 16, -173,160, 8, 8,129, 1,136, 67,104,204, 22,151,175,206, 63,249,232,227,152,102,239,126,231, 87,218, 24, 47, 46, 94,148, 82, 46, -206,159,191,122,249,188,223,245, 72,225,173,183,223,253,224,222, 61,149, 2, 86,145,105,223,175,119,155,117,149,250,234,242, 85, -191, 31, 24, 48,166,112,114,118,186, 60, 89,149,203,203,139,139,139,126,200, 57, 15, 33,198,148, 2,138, 86,173,253, 40, 99,206, - 98,230, 44,134, 89,147,156,143, 80, 69, 75,201,181,230, 90, 51, 2, 41,192,126,200, 85,197, 4,218,212, 28,175,102, 77, 96, 49, -221, 13,155,113, 83,242, 88,199, 82, 74, 45,204, 33,134, 48,150,222,192, 0, 83,215,117,206,157, 42, 82, 76,140,155,152,112, 70, -104,132,176,219, 13, 96,176,181,253,186,212, 34, 82,157, 45,129,236, 42, 43, 67,243, 44, 44, 59,185,223,133, 11, 30,175,147,154, -205,212, 42, 19,250,198, 28,152,127,198,148,145, 49,160,170,198, 16, 23,243,238,118,179, 17, 0, 2, 5,195, 44,178,235,247, 39, -101,214, 54,237, 56,150,161, 14,227,144, 47,197,196, 4,192, 82,140, 6, 22, 67, 84, 48,239,191, 22,176, 8, 68, 76, 42,162,181, -130, 97,201, 91,175, 43, 85, 21, 9,168,232,200,149,134,253,232,215, 76,160, 24,130, 33, 68, 12, 77,140, 68, 72,204,111, 52, 15, - 13,196, 41,196, 93,104, 1,244,203,231,207, 75,173, 99,201,121,236,115,201, 99,169,155, 33, 63, 60, 57, 93, 45,102,231,215, 23, -199,139,163,148,226,147,243,203,237,176,219,238,134, 64, 68, 72,217,138, 55,233, 12, 97,172,217, 12,115,169,165, 10,162, 2,210, -235, 74, 82,201,211,199, 64, 0,162,158,230,125,189,188,225, 82, 31, 99, 38,247,186, 43, 40, 35, 24,130, 50, 18,133,156, 7,169, -197,124, 40, 69, 6,132, 38, 96, 12, 96, 70, 6, 49,134,255,235,211, 47,111, 54,235,127,237,119,126,123,214, 52,251,166,219,238, -119,203,174,235,139,169,148,221,238, 70, 49,214, 82,204,140, 98, 88,223, 93, 15, 67, 47, 34,109, 12,243, 89,119,180, 88,222, 59, - 89,237,134,124,181,219,127,250,245,167, 95,159,191,120,121,187,239,115, 30,139, 84, 19, 38, 92,204,103, 4, 60,107, 19, 25,136, -169,137, 78, 10, 11, 53, 69, 52, 53,246, 97,156, 47,143,219, 68, 15,156, 0,220,170, 22,244,150, 0, 0, 32, 0, 73, 68, 65, 84, -104,134, 88, 85,165, 90,145, 10, 2, 98,101, 32,138, 16, 8, 33,139, 0,193,176,173, 8, 18, 1,136, 48,166,104, 64,106, 82,178, -222,150, 97, 55,142, 79,175,111, 14,200, 29,139,196, 72, 56,159,205,151,109,211, 54,241,116, 49,187,119,118,122,182,156, 31, 47, - 22,199,171,197,209, 98,182,152,207,222, 56, 59,109,231, 29, 1, 6, 4,140,193,185,134,125,206, 90,243,217,217, 49, 82,200, 37, -179, 9, 5,156, 86,141,106,225, 24,151,171, 48, 14,161, 12, 99, 21,137,238,147,180,232, 78,104, 68, 34, 16, 53,247,131,177,170, -163,149,221,144, 77,234, 90,113, 68,162, 32,181,212,154, 67, 68, 7,232, 35, 18,197, 38, 16,214, 58,150,226, 75, 50, 8, 0, 82, -170,107,227,192,208, 84,129, 12,204,128,217,106, 97, 12, 49, 0, 18,169, 9, 1, 26,147,169,168,136, 79,169, 1,185, 74, 5, 19, -160, 0,198, 6, 86,198,130, 44, 33, 68, 1,208,126,175,181,112,228,169,186, 5, 85, 67,114, 61, 29, 77, 81,152,131, 30, 69,241, -181, 78,122, 82,231, 49,145,122, 65,233,116, 35, 87,251, 57,251,104, 90,213,153,174,224,132, 32,134,132,120,112,126,148,113, 44, -227, 8, 96, 80,205,124,137,106,250, 12,211,148, 44,157,104,118, 82,171,146,239, 37,185,148,152,204,137,163,224, 20, 89, 95, 3, - 86,197, 9, 55,138,166,146,230,139,171,155,103, 82,134, 92,202, 4,137,124, 29,173,157, 6, 4,234, 26, 97, 38, 4,155,136,100, -126,196,155,218, 68,113, 35,115,189,217, 47,214,230,192,125,223, 64, 46, 11,192,105,209,219, 87, 38,114,149, 50,148,126,188,253, -236,147,159, 14,195,240,238,183,190,179,156,207,175,175, 94,124,115,115,121,125,117,181,223,238,114,174,247, 30, 62,252,238,247, -126, 16, 83, 35, 37,223, 94,191,122,245,242, 85, 41,117, 55, 14,155,221, 78,139, 52, 77,138, 33,164, 20, 83,211,132,200, 47,207, -207,215,235, 53, 0,198, 16, 23,243,102,143,176, 27,246,227, 48, 22, 17,239,247, 17, 97, 36, 14, 28,156, 97, 93,160,140,217, 65, - 50, 90, 69, 74, 45, 34, 86, 1,186, 16, 87, 93,203, 76,129,121,187,223,109,182,217, 12, 66,136,181,202,182,239,157,195,188,235, -247,110, 38,105,155,102, 22, 19,209, 4,189, 83, 21, 19,147, 90,119,227,222,115,179,155,221,126,172, 32, 90,247, 67, 53, 82, 54, - 50, 0,197,226, 49, 90,246,131,123,210, 54,170, 34,130, 24,240, 68,110, 32, 81,241,167,178,203, 11, 13, 8, 76, 77,249,117, 10, - 15, 21, 45,164, 24,198, 82, 1, 98, 32, 68, 0,145, 90, 74, 77,169, 34, 26, 42,186,133,109, 28,234,245,230,238,209,253,147,239, - 62,126,115,189, 27,231,179,213,237,246,246,234,246, 14, 24, 71, 49, 70, 0,196, 38, 38,100,242,111,129, 42, 1, 22,154,238,149, -117, 43,142, 24,131, 73,109, 22,136, 41, 36, 14, 76, 28, 67, 10,145,188,158,157,181, 73, 83, 10,129,143,142, 79, 68,106,174, 53, -231,113, 24,199, 82, 43, 82, 8, 8, 95, 62, 59,191,222,172, 95, 93,222,169, 42,113,152,117,109,192,144,152, 51,100, 52, 55, 78, - 0,161,144, 37, 10, 68,149, 24,107, 5,159,239,131,190, 14,126, 77, 22,176, 73,201, 62, 29,238,238, 93, 82,241,156,177, 34,152, - 41, 16, 8, 64,173, 70, 64,232,203, 53, 54,129,237,212,204,196, 38,163,197, 4,214, 69, 6,248,233,147, 87,252, 39,127,246, 91, -223,121,119,222,206, 2,242, 80, 75, 30,135, 89, 55,159, 47, 79,119,195,158, 57, 94,173,183, 5,104,213,182,219,102,119,118,239, - 29, 12,233,118,179,249,163,143, 63,253,242,252,242,197,213,205,213,102,189,222,237,252,175,155,167, 24, 83,138, 64, 41, 68, 80, - 51,156,102,161, 7, 42,147,203,233,166,175,154,255,199,243,120,132,128,132, 38,147, 73, 14,167, 64, 51, 16,146,248,193,133, 20, - 0, 64,173, 98, 45,185,104, 5,166, 48,228, 28,189,199, 81, 68,188, 48, 80, 69, 83, 64, 14, 14,135, 64, 42,126,220,170,230,156, -215,160,151,235,205, 55, 47, 94,206,158,189, 26, 74,185, 92,223,161,200,188,233,150,243,110, 53,235, 22,139,217,114, 54,123,112, -180,124,120,122,116,118,188,122,243,222,201,106,185, 76,132,243, 38, 49, 83,199, 93,149, 12,132,234,171,142, 30,190,119,115, 72, - 16,198,192, 41,185,110,211,166, 64, 33, 33, 77, 6, 54, 53,156, 8, 29, 19, 13, 17, 1, 25,129, 8, 21,145, 25,188,159, 12,160, - 74, 33,128,145,105, 29, 74, 97, 2,164, 88, 84, 77,196,164,114, 12,129,217, 12,213,109, 30,106, 8, 26, 67,210, 24,196, 84,165, -128, 42, 48, 7,130,108, 19,103,212,227, 45, 90, 43, 0,144,243, 17, 12,131,115,135, 76,193, 60,140, 10,160, 90, 10, 18, 8,161, -134,137,129, 55, 61,119,205,219,218,211,138, 19, 26, 34,123,139, 2, 93,129,230, 11, 74,132,211,197,195, 76,127, 17, 20, 63, 20, -144,134,128, 76,175,117,126, 14,155, 48, 3,157,246,130,156,169,134,108, 83,199,199, 75, 84,157, 26,250, 6, 22, 2, 79,104, 1, - 48, 6, 18, 1, 67, 3,154,182,136, 13, 77, 69,205,128, 34, 97, 32, 19, 1, 4, 6,252,248,163,143,122, 9,191,250,131, 15,215, -155,157,155, 34, 16,217,192, 76, 42, 2, 2,138,151, 36,234,202, 78,244, 44,102, 69, 37, 15, 62,250,129,132,122, 48, 18,178, 47, - 18, 79, 82, 43, 39, 12,195, 4, 71,211,221, 38, 87,145,188, 31,158, 63,253,230,217,243,167, 15, 31, 60,124,240,232,237,245,245, -203, 47,127,118,113,125,117,173,104,139,197,252,209, 59,223, 58,187,247, 48,165,180,190,189,122,249,244,201,110,191,221,108,247, - 23, 87, 55,185,228, 90,165,155,181,173,119,244,136, 16, 96, 55, 12,249,110, 8,196,243,249, 66,164,170,202,205,221,118,179,219, - 35,122,239, 12, 9,137, 67,195,140, 62,219,204, 57, 15,101, 48,131, 90, 74, 41,101,204, 85,204, 66,224,196, 24, 66, 48, 67, 81, - 25,203,168,166,251,177,144, 71,142, 76,198, 90, 76,193, 80,199,162,136, 12, 8, 77, 72,145,120, 63,142,178, 23,100, 84,213, 90, -197,212, 74,173,187,190, 18, 83,151,218, 77,159,199, 82,220,210, 11, 2,130,138, 7,143,138,223, 61, 21, 20, 1,176,170, 25, 41, - 26,249,119, 28,136, 14, 66,117, 64, 35, 3, 51, 49,243,112, 18,142,165,150, 90, 42,134,212,198, 24, 66, 3,179,253,184, 38, 44, - 12, 17, 9, 69,180,104, 45, 69, 92,175, 92, 75, 53, 48, 14, 52,107,218, 7,199,199,187, 33, 95,111,118, 33,118, 39,171,147,183, -222,124, 20, 66,216,239,134,167,231, 95,207,218,249,144,199,245,110,211,132, 56,129,249, 28, 37,228, 66, 13,112,176, 10, 42,130, -168, 88, 17,130,218, 35, 56,101,156,153,152, 2, 5,110, 67, 19,153,253,244, 15, 76, 13,209,114,121, 10, 75, 0,134,183,223,120, -115, 24,198, 7, 15, 30,142, 99,217,236,119,227, 56,140,227, 88, 85, 12,160, 88,173,181,130, 89,173, 85,212, 11,246, 73,245, 32, -106, 2,198, 52,237,115, 59, 25,210,212,136,176,138,231,205, 14,110, 3,159,255,136,248, 94, 30,129, 1, 24, 3,154,136,212, 2, -104,132,216, 4,222, 7,178, 90, 96, 34, 19,250, 13, 11,171,170, 31, 17,204, 28, 99,252,248,217,121,174,229,111,253,181, 31, 22, -145,245,110,211,166,214, 52, 31, 47, 22, 93, 10,253, 48, 70,228,156,235, 75,158,255,249,243,155,243, 31,127,113,126,117,185,217, -141,213,252,173, 23,149, 26,152, 24, 88, 93, 65,105,230, 89, 53, 17,229, 80,192, 32, 87, 97,162, 10,224, 68,201,250,154, 30, 66, - 72, 0, 33,134, 82, 10, 24,130,218, 1,244,135, 10, 96,165,154, 86,240,214,147, 2,187, 82,208,227,228,128, 85,133,201, 84,161, -138, 11, 61, 44,139, 16,162,130, 89, 5, 37, 20, 21, 3, 16, 52,241, 5, 61, 70, 83,149, 82,208,148, 16,152, 49, 20,154,135, 4, -209, 0, 97,168,117,123,115, 93, 47,174, 94,187,171, 8, 48, 16,221, 63, 89, 17,211,201,124,118,122,180, 60, 91,204,142,142,143, - 30,221, 59,125,243,236,120,121,180, 88, 45, 86,243, 14, 99, 8,216,116, 50,155,249,141,170, 10,248,250, 8, 99,144,168, 86,213, -204,141, 44, 72,156, 0, 76,164, 34, 29,206, 59, 85,166, 8, 6, 22,146,212,130,140,128, 36,106, 10, 3, 35,135, 38,162, 66,173, - 2,170, 41,178,197, 56,228,140, 38,236, 70, 23,243,125,160, 88, 68,152, 29, 40, 25,212,143, 58,196,136, 36, 77, 35,101,212, 82, -152, 57,164, 36,230,251,252,132,211,238, 10,131, 1, 51,107, 46,222,101, 33, 53, 38, 50,197, 96, 96, 40,134,126, 22, 19,146,136, - 63,152, 21, 25,205,152, 13, 12, 14, 36, 69, 31, 5, 31, 96,144, 58,245,217, 15,184,223, 67, 86, 94,213, 64,144, 8, 29, 55,111, -254,224, 81, 64, 37, 63,255,213,128,212,121,234,254, 83,112,194, 15,161,169,130, 33, 5,191, 31, 79,255,155,252,202,103,122, 64, -210,160, 34, 2, 88,215,196,253,126,215,117,243, 16,200, 84,134,237,250,127,251,195,127,242,163, 95,250,246,180, 81,237,198,166, - 73,135, 41,160, 70, 97, 2, 9,121, 89, 73,166, 8, 12, 19, 71,195, 84,170, 83,128, 1,200,192, 64,166,252, 59, 34, 18,161, 17, -104,150, 93,159,199, 97,204, 99, 38, 10, 55,183,175,158,124,245, 85,205,195,106,177,220,220, 94,127,253,197, 23, 55,219,219, 89, - 59,187,119,118,111,177,152,137, 98, 32, 94,223,188,186,185,186,190,184,190,188,185,219,238,199, 65, 68, 18,115, 10, 60,159,117, -204, 88,198,108,208,152,122,152, 23, 25,217, 84,183,219,254,160, 35,136, 71,139,249, 48, 14, 99, 46, 76,196, 20,153,160,150, 50, -214, 90,164,170,129, 26,228,113, 44,181,136, 72,147,146,145,239,153,217,110, 24,134, 97, 68, 98, 98,146, 42,197,106,195,201, 64, -115, 81, 53, 11,145,170, 98, 76, 92, 75, 54,131,221,208,111, 7,155, 86,149,145,246,251,126, 63,148, 92,165, 40, 18,105,224,184, - 31,199, 42, 2,166, 85,108,114, 93,130, 7,213, 8, 0,164, 24,178,161,122,186,217, 37,247,102,100,193, 51, 88,138,135,159,140, -190, 51,206,190,237,226,168, 69, 68, 64, 29,242, 16, 57,117, 41,201,124,182,222,237, 0, 36, 33, 3, 64, 63,142, 8,180,104, 91, -241,244,172, 41,128,198,192, 47, 46,175, 63,120,252,230,119, 31,191,121,219,151,111, 61,126, 12,132,203, 89,151, 5,111, 54,155, - 71,247, 78, 63,127,242, 13, 66, 56, 61, 58,189, 89,223,237,250, 97, 49,107,134,154, 1,145, 17, 99,140, 8,174, 43, 37,239,141, - 28,214,169,124,155,198,178, 20, 27,109,143,123, 79,192, 50,113, 10,145,153, 99,216, 51, 83,160,200,137, 3,211,106,177,162, 21, -189,129,247, 16, 88, 84, 75,205,162, 58,142,227,102,187, 45, 67,185,237,183,231, 47, 95,249,208,195,247, 60, 68,100,130,158, 34, - 32, 98,209,105, 39, 92,193,180,122, 28, 9,145,144, 12,216,215, 85, 17, 16,125, 39,127,106,245,152, 2, 56,174, 88,213, 11, 38, - 67, 62,240,183,157,172,162,244,255, 83,192, 19, 2, 6,250,236,252,114,252,147, 63,255,253, 95,249,165,183,238,159,130,192,171, -205,245,197,205,237,249,122,251,213,203, 87, 69,232,118,191,239,115,201, 37,251,166,249,178,153,165, 24, 24, 33,103, 85, 0,243, - 29,124, 68,166,102,218,209, 3, 5,110,204,132,136,167,166, 3, 64, 38, 82, 21, 54, 80, 83,168,128,137,216, 47,112, 19,226,207, -215,216, 93, 91, 12, 14,244, 16, 80, 49, 35, 0, 49, 51,172, 85, 66, 17,241, 4,182, 1,154,137, 10, 0,105, 53, 69, 83, 70, 30, -167, 39, 11, 38,112, 21,140,185,165, 34, 66, 64, 67, 17, 20,213, 41, 80, 80, 75,169, 5, 9, 3, 19,138,129, 0, 19, 70, 6, 21, - 70, 66, 3, 45,162,219,126, 24,115,125,121,117, 91,164,238,115,110, 67, 88,204,230, 93,234, 24,117,214,198,163,197,236,222,209, -209,227, 55,238,157, 30,173,190,243,248,209,131, 71,111,213,177,134,182,227, 96, 76,134,196,140,172, 68,160,122,128,153, 35,135, -224, 27, 82,136,196, 33,152,161, 22,225, 38,197,212, 14,227,222,170, 34, 35, 35, 19, 6,201,130, 12, 72, 64,136,165,138,106,230, -233,161, 99, 49,112,169,140,117, 20,171, 4, 72, 24, 69, 65, 64,240,176, 82,175,102,181, 10,115,192, 48,205,112, 3,153,255, 38, -147, 34,219,212, 12,198, 97, 48, 80, 36, 36, 74, 50, 22, 51,157,216,102, 41, 68,117,108,174, 42, 78, 83,121,244, 1,166, 29,144, - 94, 96, 54,149,101, 30, 81,199,137,113, 10,204, 33,198,169,135,126,248,204, 57,231, 8,253, 92, 62, 4, 27, 65, 77,173,162,103, - 43,189, 28,128, 67,237,112, 16,209, 34,177,211,241, 15,170, 12,157, 40, 35,254,179,166,131, 8,136,136, 3,254, 31,255,232,127, -253, 7,255,227, 63,164,216,164, 38,157, 28, 31,175, 88, 16,219, 24, 83, 81, 45,185, 56,159, 18, 76, 8,193, 81, 97,160,134,128, - 42,117,194,227, 33,169,186,254,113,226,176,138,249,121,143, 90, 11, 34,113, 76,206,115, 26,199,186,223,247,227,126, 44,181, 74, - 25,251,126,251,242,249,147, 79,191,248,249,131,179,251,128,118,121,117,211, 38,142,177,121,120,118,186,104, 23, 22, 35, 26, 45, -150,179,126,191,125,242,228,249,211, 23,231,165, 84, 4,104,154, 38,133,224, 53, 81,205, 82,217,220, 37,109,104, 34,121, 55,142, -238, 53, 79, 41,181,177,203, 99,238,247,187, 77,191, 39,230,166, 73, 34,138,104,185,228,109, 63,228, 82, 60,166,201, 33,112, 8, - 41, 70, 67, 41, 85,107, 17, 19, 5,196, 90,197, 24, 85,101,216,143,132,148, 82, 18, 17, 67, 85, 85,173, 54,100,185,221,110,230, -237, 44,165,192,158,201, 67,205, 37,239,246,121,189, 29,198, 90, 29,254, 30,208,181, 12,154,221,239,131,147, 62,195,247, 13,139, -105,240,192,135,161, 42,208,235,239, 51, 26, 26,162, 55,190, 29,244,140,206,154, 83, 68, 12, 7, 13, 0, 29, 54, 45,188,177,144, - 75, 1,196,101,215, 17,242,110,191, 29,165, 6,160, 90, 4,147,229,154, 83, 19,177, 90, 21,245, 36,234, 80,228,231, 79, 95,156, - 30, 45,255,213,127,233,239,214,177,254,241, 95,254,197,217,209,114, 55, 14,167,199,171,227,227,227,250,229,215,199,179, 21, 34, -174,119,251,239,127,240,189,199, 15, 31,156, 30, 45,215,251,253,159,254,213, 79,246,227, 78, 69, 68, 37, 48, 85, 17,166, 72,165, - 32, 34, 5, 33, 3, 12,140,196,222, 54, 49, 68, 53, 45,162,163,100, 2, 2, 68, 66, 76, 20,128, 49,112,100, 34, 36,238, 82,106, - 98,226, 16, 3,117,204,164,243,197,189,147,123, 49,144, 33,230, 92,174,174,175, 46,110,174,155, 20, 8, 97, 44,165,168,152, 23, -216,106,132, 88, 85,137, 48, 48, 87, 44, 8,192, 4, 34,126, 11,115, 20, 48, 16, 0,241,161, 39,111,128, 76, 28, 8,171,131, 66, - 32, 48, 87, 21, 21, 67,159, 50, 33, 25,184, 31, 97, 82,197, 35, 96,176,160, 0, 95,156, 95, 17,252,244,131,183,238,127,254,226, -234,197,122,125,187,217, 87,129, 20,120,222, 80,140,141, 59, 44, 49,160,169, 41, 26,169,103, 46,167,212,243,129,134, 58,149,183, - 0, 8, 90,212,144, 9,226,164, 89,166,160, 42,168,197, 12,128,140,170, 33, 84,176, 96,213, 87, 79,212, 0, 80,139, 74, 34,244, -193, 34,121,131,222, 43, 2,240,130, 89, 20,148, 0,201,231, 56, 62,208,211,137, 99, 12,254, 88,159,228,157, 6,102,204, 76, 82, - 29,224, 94,173, 86, 53, 2,100,128, 97, 24,157, 83, 41,234,144,209, 82, 85, 0, 16,148, 16, 60,219,173,168, 98,218,136, 26, 49, -144, 80, 66,103,102,170, 89, 29,213,246,235,225,229,205,221, 79,190,252,166, 9,105, 24,243,127,248,247,255,133, 95,251,157, 31, -221,222,109, 75,209, 50,150, 49,143,232, 61,182,195,135,188,153,205, 99, 51,179, 42, 76,202,156,212, 76, 74,230,192, 6, 25, 12, -138,148, 16,131,144, 18, 64, 21, 53,172,212, 54, 40,181, 84,149, 98, 33, 48, 7,158,234, 0, 10,166,142, 86,111, 69, 51,146,119, - 16,176,141, 51, 1, 45,146,107, 29, 3,199, 24,147, 65,213, 42, 85, 32, 53,141, 42,154,136,103,223,253,194, 77,129, 16,217,140, -144, 76,171,114,215,120,136, 54, 16,134, 34, 3, 81,152,122,213,236, 4, 94, 7,225, 78,254, 61, 56,200,142, 15, 14,105, 31, 59, -123,222,157,224, 53,113,221, 38,143,210,129,248,168, 48, 5, 40,125,111, 85, 39, 45,134,175,227,185,228,101,242,126, 28,160,141, -168,134, 1,188,197,133, 19, 80,223,237,127,226,239, 19, 78, 19,134, 39, 95,124,250,223,252,119,255,195,203,157,158, 46,106,190, -189, 59,127,113, 94,213,126,251,215,126,253, 31,255,225, 31,190,241,248,189,119,223,125,171,150, 50,141,179, 14,146,245,137,227, - 75,236,191,254,107, 96,217,107,248, 0, 79,219, 22, 2, 20, 84,160, 31,181,228,220,239,198,113,232,107, 25, 17,116,236,119, 47, - 47, 94,125,252,201,199,219,125,158,207,103,151,183, 55,100,120,188,154, 47,230,139,118, 62,107,218,212,197, 48, 86,123,117,121, -241,252,167,231,235,245, 54,231, 28, 82,211,166,196, 68, 49,177, 40, 4, 98, 3, 81,177, 24, 89,198,220,247,195, 68,108, 98,236, - 82, 7, 8, 67, 25,174,111,111,199,113, 68,228,174,105,192,108, 55,246,251,190,119, 38,143,136, 49, 97,138, 13,115,100, 70, 0, - 27,242, 40,213,218,216,142, 50,172,183,219, 10, 74, 16,192, 80, 84,221,150,161,112,104, 22, 82,192,132, 9,108,185,176, 54,198, -162,101,172,197,128, 25,240,118, 51,108,251, 49,151,202, 19, 77,194, 12, 44,155, 5, 64,158,112,160,238, 46, 87,247,110,177,239, -171,137, 18,163,169,235,139, 12,192, 64, 20,144, 39, 49,139, 29, 2,170,160,135, 10,143,144, 21,225, 32,210, 68, 5, 35, 52, 96, -132, 90,242, 94,164,107, 82, 10,171,109,223,151, 82,134,113, 92, 52,211,250,120, 64,170,128,165, 22, 64, 20,213,171,117,255,224, -222, 89, 25,182,159, 63,121, 9, 24, 62,120,255,219, 79,207, 95,198,148,182,235,245,188,235,152,224,226,230,230, 91,111,189,245, - 43, 31,126,235,231,207, 94, 60,126,244,240,114,189,126,247,237, 71, 47, 94,190, 66,176,243,171, 11, 10, 60,140,153,188, 87, 34, - 74,132,134, 24, 34, 7,160,144, 2, 96, 32, 48, 38,118,186,180, 6,243,225, 66,150, 34, 21,136,138,155, 6,118, 59, 12,156, 56, -114, 36, 10, 41, 70, 98,134,144, 9, 21,113,214,181,111, 60,124,120,239,228, 76,172,168,193,174,239,135,126, 95, 75, 25,203,184, -239,199, 82,107, 24,177,152,223,202, 15,223, 28, 38,158, 32,214,200, 60,161, 51,166,164,177, 63, 32, 85,152, 2, 17,171,100, 0, - 99,114,229, 24,160, 65, 64, 84, 51, 69, 50,167,234, 57, 22, 30, 13,209,218, 72, 63,127,117,251,217,249,229,118, 44,140,216, 53, -177,137,254,117,101,191,127,218,164, 86,152, 24, 36, 72, 78, 37, 65,125, 45,173,113,178,176,139,107,204,124, 21,190,170,132, 24, - 84, 39, 38,171,248,147,200,195,121, 6,136, 36, 34, 41,113, 29, 43, 48, 51, 18, 0,166, 64, 67,241, 69, 70, 35, 66, 81, 16,177, -170, 83, 46,131, 24, 69, 64,192,212,109,217,224, 56, 0,212, 9,248, 14,136,152, 85, 3, 64,203,140,211,210,185,169,184, 26, 20, -128,120, 63,150, 41,185, 98,134,211,243,233,176, 22,233, 2, 20, 64, 81, 80, 21, 15, 95,123,159,197,135, 7,185,102, 85, 83, 21, - 52,232, 98,156,117, 77, 74, 60,239, 58, 20, 11, 68,221,162,129, 85, 82, 85,145, 98,170,165,148, 90, 93, 3,179, 23,201, 28, 26, - 17,180,113, 67, 28, 24, 88,242, 32,170,168, 18, 82,139, 6,160, 98, 86,153, 25, 12, 24,188,167,129, 20,131,199,200,252, 81, 94, - 85, 3, 98, 12, 49,107, 38,136, 0,232, 47, 81, 5, 81, 21, 4, 11,222,193, 69,168, 50, 41,221,171, 20,166, 38, 48,138, 59,196, -196,164, 86, 4, 35, 52,226, 0, 0,200,177, 74, 77,104, 4, 22, 0, 80, 13, 77,196,199,189, 32,250,250,189,245, 59,184,136, 76, - 77,138, 3, 23, 0,180,122,197, 25, 56, 58, 7,206,251,245,228,117, 37,251, 76,107,106,250, 76, 50,107, 4,164, 56,189,244, 6, -135, 65,187, 7, 86, 4,129, 16, 9,216, 38,135,146, 55,218, 39,162, 1,121,208,157, 48,170,137, 63,117, 76,245,241,251,223,253, -123,255,242, 31,252,215,255,253, 63,116, 73, 66, 12,109, 54,249,217,151, 95,125,244,201, 71,127,227,247,126,255,251, 31,126,235, - 58,103, 80, 33,226, 64, 92, 65,225,176,185,229,221, 68, 5,163,105, 22,236,104, 58, 36,160,172, 2,162, 34, 92,139,149, 82,182, -155,219,190,223, 90,173,196, 36, 82,159, 62,249,230,203,111,158,172,183,251,132,180,154,117, 90, 43,165,248,222, 59,111, 29,159, -158,206,186,217,122,189,126,242,226,197,205,245,245,122,187, 99, 3,111,132,206,187, 24, 99,104,218, 6,145, 68, 10,146,186,118, -217,207,229, 90,196, 64, 3, 48, 16,182, 41,110,242,122,183,223,101,209,200,161,105, 58,211, 58,228, 97,179,221, 86,169, 96, 24, -136, 99, 10,129, 25, 13, 69,171, 65, 21,245,207,143,246,253,120, 43, 27, 85, 43, 34,128, 40, 38, 0, 16, 41, 18,123,161,140, 38, - 86,138,204,187,121,219,117, 82,235,118, 8, 23,151,151, 64,156, 98, 36, 47,196,144, 76,209, 73, 31, 38, 0, 96,242, 11,242,130, - 78,195,118, 63,174, 81,236, 96, 46,124,221,181, 3,143,114, 79, 80,185, 73, 81,110,224, 31, 36,251,133, 96, 23,196,227,183,230, -192, 31, 23,100, 29,122, 23, 6,186, 27,251,200,113, 57,155,143, 57,239,199,190, 47, 37, 40, 35, 66,228,144,179, 0,216,209, 98, -121,124,180,124,235,254,131,211,227,249, 59,143, 30,125,253,244,229,241,106,126,117,115, 99, 64,243, 38,237,153,110, 55,155,253, -176, 59, 91,172,126,240,157, 15,190,124,246,124,183, 27,186,118, 86,164,158, 95,190,236,115, 63,140,101,170,228,204,198,154, 85, -100,179,223,139, 2, 49, 53, 49, 52, 49, 49, 97, 8,132,196,129, 25,145, 66,226, 36,193, 27,122,190, 66,229, 25, 98, 1, 33,196, - 92,118,144, 1, 21,140, 56, 16,197, 20, 2,167, 38, 4,171, 89,192, 76,141, 57, 18, 26, 50,117,109, 71,243,165,106, 21, 53, 5, -171, 89, 74,201,253,216,247,195,176,222,238,110,215,119,185, 31, 70, 51, 50,100, 14,106,224, 59,223,174,238, 33, 35, 12,228, 23, -231, 64, 72, 8,204, 60,214, 2, 64,132,168,206,237, 10,225,224,134,155,164,165,222,252, 36,164,121,162,106, 36, 10,106,224, 62, -107,158,250,147, 10,230, 56,247,105,238, 45, 86,153,153,144, 1, 21, 1,130,129, 78, 52, 51,159, 15,168, 26,138, 78,192,121,240, - 25,130,169,249,202,161, 40,120,202, 7, 16, 20,170,148, 32,147,177, 27, 8,153, 25,153,235, 96,168, 94,195, 24,120, 58, 14,192, - 39,177, 42, 38,166, 65, 39, 85,146, 18,128, 0, 51,153, 30,160,234, 62, 79, 86, 45, 85,109, 42, 11,209,192,162,151,245,160, 38, - 85,112,210, 63,192, 52,192, 38,191, 96,190,254,248, 33,162, 34, 0,161,122,108, 0, 13,205,249, 42,182,207, 25,181,154, 90,211, - 36, 81,169,185,214, 34,226, 21,111, 21,164, 98,106,104,170,102, 33, 4,102, 87,195, 1,152, 32,100, 65, 52, 18, 52, 21,149, 92, - 70, 83, 20, 0,217,141,218,151,217,124,142, 20,164,142,158,220,101,118, 81, 19,136,178,138,170,168,128,166, 24, 1,200, 16,152, -130,104, 65,162, 67,116,219,199, 6,164,104,102, 24, 41, 16, 83,197,172, 62,215, 1, 69, 34, 15,215, 35, 19, 6, 12,196, 24,130, - 22, 1, 80, 38,139,161, 1, 19,172, 37,248, 16, 5, 12, 0,217, 3,141, 70, 19, 3,192,251,240, 96, 64,254, 15,242,181, 86, 64, - 35, 50,127, 5, 19,193, 33,133,110, 98,194,132,248,250, 94, 76, 62,125, 3, 87,159, 78,189,243,169,103,228,231, 2, 78, 92,245, -224,162,130,234, 48,162,195, 93,219, 76,200, 67,144,164, 40, 83,215, 29,125,252,139, 0,156,126,227,183,126,247, 39,127,245,217, - 95,126,121, 62, 22, 5,172, 98,245,249,179,175,175,119, 35,254,223,127,252,175,252,139,191, 23, 17,170, 1, 0,138, 1, 35,187, -125,220,107, 34, 39,200,212, 90, 76, 32,117, 45, 49,155,218, 80,180,100, 21,195,177,223,110, 54, 55,195,230, 70,181, 16, 52, 24, -224,213,249,213, 23, 95,124,241,234,246,246,236,228,232,209,189,123,254,140,185,127,239,228,241, 59,239,150, 90, 63,254,228,147, - 39, 47,206,183,155, 45, 50, 53,169,233, 98,116,109, 83,219,134,200, 41,196, 84,107,221,247,123,169, 38, 32,104, 48,150, 44, 62, - 22, 16,193,192, 49,165,128,184,221,237,247,117,156, 55,179, 46,145, 66,237,251,221,221,110, 39, 53, 35,133, 16, 98, 74,145, 0, -106, 21,138,228,153, 76,100,220,237,251, 82,234, 56,142, 67,205, 67, 17, 52,240, 37,108, 71, 81,215, 92, 20,168,141, 12, 8,185, - 10, 80,192,192,221,172, 67, 83,142,169, 31,199,190, 31, 1,145,137,170, 74,155, 82, 79, 67, 21,144,170, 96, 54,249, 33, 0, 0, -176,250,136,115,218, 52,112,150,160, 47,240,201,107, 78, 4,161,153, 84, 18, 52, 70,240,110,236,228,142,240,176, 7,152,107,214, - 16, 84,125, 72,134, 7,110,219,107, 23, 35, 32, 98,128,168,162,131,230,211,213,252,141,120,180,222,236,171, 8, 87,170,117, 60, - 93,173,254,218, 15,126,248,203,223,253,246,217,209,241,213,245,205,205,230,174,235,230, 63,127,242,205, 63,247,215,127,253, 39, -159,126,129, 0,127,244,167, 95, 75, 41,187, 97,124,116,239,222,143,190,247,221, 24,194, 23,223, 60,249,240,219,239,253, 47,255, -232, 15,127,254,252, 89,140,225,187,239,188,255,217,147,175, 36,151,181,202,221,250, 46,139, 34,113,147,218, 89, 55,107, 34, 65, -213,106, 58,230,177,102, 25,139, 53,109,154,165,176, 94,103, 10,161,235, 98, 12, 33,134,164,166, 76,204, 20,220, 9,163,100,100, - 17, 3,130,214,177, 74,174, 57,114,206, 28,183, 62,116, 34, 8,192,109, 19,230,179,217,241,201,106, 53, 91, 44, 22,139,197,114, -217,164,132,224,208, 43, 37,166, 97,216,247,195,112,187,221,223,222,220, 92,222,220, 92, 92, 95, 95,223,221,109,118,187,113, 24, - 21, 16,136, 34,154,130, 53,137,171, 26,249, 22, 9, 10, 81, 64, 0,102, 14,200,194, 64,170, 8,134, 85, 9, 95,231, 18, 4, 12, - 98,224, 64, 80, 11, 18,128, 0, 84, 55, 60,160,209, 65, 81,227, 89, 55, 5, 83,180, 68, 36,102, 85, 20,193,200, 64,208,204,128, -201,199,132,140,204,117, 20, 96, 68,196, 20,130, 1, 72, 17,181,233,140, 7,223,122, 12, 0, 78, 87, 55,200,165, 4,242, 46,196, -116,133,102,132, 74,147,172,195, 0,101, 66,157, 24, 57,242, 89, 9, 95, 63,239, 41, 32, 84, 10, 80,242, 97, 68,230,119, 8, 52, -213, 26, 83, 16,255, 98,147, 41,128, 2, 4,131, 38,165, 34,117,132,202, 24,188, 28,170,135, 91,188, 63,142,166, 63,168, 30,118, - 56,209,196, 52,152, 41,138,104,201, 37, 48, 35,186,123,141,188, 9,129, 64,222,156, 48,169, 70,135, 46,238,228,150,245,184, 97, - 48, 83, 4, 99, 99, 65, 8,204, 33,206,167, 35, 18, 76, 22, 77, 63,150, 50,246,165,102, 4,202,219, 29,161,174,142,143, 65, 33, - 4, 78,169, 17,199, 67,233, 33,202, 2, 96,200,117,204, 68, 16,187, 14, 20, 84,132, 56,160, 66,213,202, 42, 20, 99, 84, 54,173, -197, 4, 77,128,162,203, 41, 1, 45,181, 51,160, 70, 84, 17, 70,173, 89,148, 74, 41, 0, 86,198, 26,204, 44, 16,187, 88,212, 7, -125,147, 74,148, 24,181,138,186,192,197, 5, 52,206,226,114,189,246,212,192, 57,204, 48, 13,167, 81,172,247,225,205, 49,188, 56, -133, 61,217, 84, 16, 25,220, 71,240,186,181,232, 44, 80, 55,225,137, 77,115, 39,169,126, 11,161,224,240,107,179, 98,134,130, 8, -200, 65, 93, 4, 8, 38, 90, 67,211,158,157, 29,133,111, 94, 50,113, 95,198,191,253,183,255,206,223,255,187,191,251, 31,255,167, -255,217, 71,207,111,239,110,215,247, 79, 87, 8, 40, 90, 35,199, 73,176,164, 21,129, 28, 32,105, 0,134, 65, 8,106, 1, 85,200, -185,236,247,125, 25,247,155,187, 43,169,125, 41,194,204, 99, 63,188,186,120,250,252,229,121,191, 31, 87,199,171, 31,125,248, 97, -215, 70, 49,107,186,166,107,103,219,253,238,159,254,241,255,243,244,233, 11, 84,156, 47,218,163,213, 74, 75,165, 72,136,200,132, - 41,165,192,156,115,222,247, 89,180, 26, 88,169,101, 59,246, 42,214,196,232,143,103, 64,146, 34,125,217,138, 89, 12,180,104, 90, -209,124,181,223,229, 33,103,169, 76,212,181, 11, 87, 56,214,146,199,113, 64,132, 93,191, 51,128,174, 73, 6,160, 34,187,253,190, -207, 85, 14,210, 6, 64, 8,136,200, 44,110,206, 50,219, 13,121,172, 18, 66, 56, 89,117, 0, 8, 68,203,249,113, 72,187,162,114, -125,123,155,135, 33, 5,130,138, 33,193,201,114, 46,106, 85,178, 20,237,171,136,135, 66,193, 0, 72,138,137, 21, 15, 85,161, 17, -128,232,180,220,172, 0,236,253,129,131,142,124, 10, 68,191, 70, 38,123,119, 21, 64, 13,244,160, 51, 68, 0,100, 36,100, 50,209, -170,114,160, 80,184, 5, 27, 8,112,187,207,139,123,179,227, 85,216,238,119,106,150, 82, 60, 61, 57,249,217,151, 95, 32,193,111, -252,234,175, 62,189,120,117,117,125,243,103, 31,125,244, 7,191,247, 55,193,240,234,230,246,110,183,101,179,211,147,179,251, 32, -247, 79,206,250,220,255,244,203, 47,193,234,221,245,237,237,110,247,224,232, 56,197, 16, 80, 77,236,102,191, 55, 85,160,112,178, - 88, 44,218,200, 33, 52,137,251,177, 8,212, 89,140, 2,154, 51, 0, 85,239, 39,109,246,251,237, 48, 6,226,227,197,114, 62,107, -124,170,204, 68,196, 76, 72,145,137, 89, 72,200,145,135,196, 20, 34, 51,211,178,107, 87,179,249,209,209,124,217, 45,142, 87,203, - 7,247, 78, 23, 71,171, 38,164,110,190,108,187, 6, 57,198,208, 32, 18, 51, 41, 96,238,119, 82,133, 2, 73,201, 67, 63,230, 50, - 12,251,225,250,246,238,249,203, 23,215, 55,215,175,174,110,206,175,174,251,113, 44,181,108,182, 61,249,188, 36,155,169, 16,147, - 78,155,241,147, 28,144, 2, 50, 51, 30,114, 16, 16,152,249,144,129, 64,245,224, 26,185, 43,141,208, 0, 2,130, 0, 25, 0,249, -206,253,100, 34, 7, 84, 31,237,249, 56, 16,170,154,162, 69, 85, 67,101, 32, 19, 19, 81,102, 34,162,215,177, 31, 31,183, 76,236, - 61, 3, 37,223,106, 3, 85, 13, 49, 32, 76, 19, 26,157, 0,124, 38, 82, 99, 8,136, 19,114,209,151,187,244,128,242,155,232, 49, - 66, 58,177, 24,136,129, 92,202, 3, 8,234, 78, 47, 55,165,120,129, 15, 20, 27,166,202,125, 41,191,160,221, 30, 98,205, 94,205, - 0, 26, 1, 16,177,128,248, 5, 72,204,129,184,160,134, 6, 26,136, 83, 72,204, 44,104,106, 26,152, 60, 48,231,135,149,233,193, -241, 0, 24,188,154,240,198,254,244, 8,241, 50, 2, 85, 11, 76, 37,170, 17, 83,215,112, 23, 16,176, 19,145, 82,115, 85,232,251, -141,130,201, 86,193,128, 56, 32,114, 12,129,145, 93, 21,146, 56,104, 67,138,106, 82, 69,192,197,132, 68,200,212,148,154,163,162, - 25, 34,179,235,225,189,155, 69, 76, 41,118, 20,163, 26,128,168, 48,131, 48,162,184,160, 43,166, 24,124, 70,195,164,106,138,222, -233,113,168,130,200,148,129,132, 26,220, 91,228, 23,187,105, 44, 64,240,122,156, 58,153,103,109,122, 49,224,208, 79, 7, 50,127, -202, 50, 3, 18, 30, 72,147, 94, 19, 76, 18, 73,143, 87, 22, 53,156,150,152, 60, 41,139, 83,236,210, 59, 62,135,241, 45, 26,146, - 11,124, 3,154,197,212,157,156,156,196, 16,108, 28, 9,237,195,247, 31, 47,239,191,253,239,255,187,255,222,215, 47, 46,222,184, -127,154,165, 18, 34,249,146,147,191,201, 22, 20, 76,180, 42, 54,128, 73,209,198,220,247,187,245,110,123, 11,160,253,110, 43,181, -214,113, 24,114,190,189,187, 27,246,187,167, 47, 94,222,237,199,119,223,124,248,230,123, 15, 30,156,158,238,199,129, 98,179,217, -220, 62, 57,127,181,221,238,250,126, 47, 34, 71,243,101,140, 68,132,166, 48,155,207,129,212,239,190, 82,202, 48,228,177, 12,106, -152,203,184, 31,134, 92, 74, 76, 77, 27, 83,206,185,170, 17,152, 47,103,167,148,128, 96,236,135,245,176, 21, 81, 69,136, 28,102, - 33,229,156,183,253, 46,231,108,104, 12,160,196, 94,250,116, 77, 82,131, 82, 11,152, 6,230, 38,162,177, 9, 64, 46, 89, 68, 81, - 77, 12,198,177, 20,145,249, 98, 53, 14,163, 24,204, 83,211,196,208,180, 29, 24, 50,208,106,182, 84, 49, 4,188,190,185,164, 16, -131, 9,171,142,165, 0, 81, 96,142, 28, 79,219,118, 40, 5, 0, 57, 4,169,117, 44,165, 31,185,106, 5,133,125, 46,224,187,109, -190,109,140, 24,152, 39,241, 49,144, 19,129, 8, 80,124,124, 98,102, 0,213,243,193, 2, 72,211, 12, 29,253,147, 86,157,169,239, -233, 16, 80, 3,144,226,242, 94,149,250,205,249,171, 20, 82,100, 34,198, 93, 63,252,252,155, 39,187,156,111,215,155,245,110,207, - 28,150, 77,184,184,188,250,209,135,223,251,175,254,219,127,240,245,243,167,219,221,240,214,131,179,229,172, 93,180,205,243,203, -139, 79,191,220,236,198,225,151,223,123,175,214, 50,239,154,161, 31,158, 93, 92,252,197,231,159,143, 99, 65, 14,247,143,142, 56, -134, 89, 10,226,254, 63, 32, 55,150,149, 34,175, 23,253,162,219, 19, 8, 3,179,175,153,148, 42,102,134, 25, 8, 81, 85, 82,106, - 76,149,153,145,177, 73, 13, 17,182, 93,119,180, 92, 52, 41, 53,145, 17,177,140,117,135,253, 88,203,237,122, 29, 83, 76, 49,165, -192,177,105, 98,224,182,105, 83,211,116, 93,155, 82,215,117, 93,136, 77, 4,167,225,116, 11, 64,169,245,222,155,143,190,243,225, -135, 53,143, 67,223,239,251, 97,191,219,221,238,119, 55, 55,183,125,223, 95, 92, 93,157, 95, 92,188,188,188,185, 94,223, 14,227, - 40,166, 82,235, 80,106,100, 98,167,222, 33, 50,162,168, 17, 25,161,138, 10, 57,196, 65, 13, 16,196, 27, 47, 6, 7,199,185,137, - 11,196,167,131,210,200,231, 2, 7, 97, 41, 32, 86, 81, 35,216,245, 3, 35, 66, 12,168,130, 94, 68,136, 77, 20, 28,175,225,192, - 16,216, 13, 11, 4,102, 98, 74, 58, 61,241, 1,212,192,204,170, 86,123, 61,112,115, 71,142, 79,231,241,181,146,243,144,214, 38, -239, 26, 79,171,135,135,101,115,111,113,160, 79,250, 15, 43, 57, 83,168,207,197,182, 94, 13, 42,168, 39,158,189,123, 48,197,165, - 16, 25,253,251,105,116, 88,119, 84,223, 66, 64,242, 49, 53,161, 63,180,176, 77,105,250,165,167,203, 40,153, 26,210, 65,215,137, -232,203, 76,126, 75,179,195,125, 6,192,165, 17, 14, 83,215,201,149, 34, 25, 57, 0, 96, 19, 40,197,160,106,210, 84, 4,168,213, -212,164,152, 20, 49, 43, 40,158,245, 80, 52,211,148, 26, 34, 66, 85,110,102,192,164, 42,140,236, 26, 91,153, 54, 71,145,136,137, -128, 66, 40, 90,104,172,128,172,181,162,169, 15,234, 25,217,204, 68, 53,120,109,124, 80,160,122,168, 82,209, 96, 28,247,138, 16, - 98, 98, 12,192,234,207,241, 73,154, 1, 7,162,129, 41, 26, 34,177,119, 27, 38,199,152,185,203,132,166,115,158,144, 1,100,154, -218,226,100, 3,156,108,123, 56,125,198,216,208, 87, 38,124,250,141,138, 46, 8, 6,243,119, 85, 77,161, 40, 78, 15, 34, 64, 53, - 32,131,144,222,126,231,209,172,249,201,205,126,247,111,253,189,127,243,111,254,238,111, 93,223,174,219,229,201,247,150, 39, 99, -206, 46, 64, 83, 21, 49, 9,196, 96,152, 85,139, 24, 88,163,162,187,237,171,187,219,203, 60, 12,181,230, 54, 54,155,237,238,110, -125,179,185, 91,143, 99,217,236,182, 23, 55, 55,187,113, 24,134,252,155, 63,252,254, 59, 15,239,109,250,225,235,103,207, 95, 92, - 94,170,170, 41, 68,102, 38,106,155, 70, 65, 83,136, 77,140,181, 20,136,147,246, 88,164, 74,150, 2,178, 27,122,149, 58,150,234, - 76,184, 38,182, 77,211,212, 90, 74,201, 49,133, 20, 98, 32,206, 85,214,187,253, 48, 12,128,126,231, 49, 16,237,181, 82,128,126, - 28,107, 22, 66, 42,160,168,150, 18,165,192, 33,132,148, 18,170,133,166, 51, 21, 77, 96,125,191, 29,199, 82, 10,136,229, 92, 55, -251,190, 22, 49,131, 16,194,138, 98,106,177,239,183,137,136,153, 82, 74,132, 40,181,132, 54,205,218, 57, 32,170,202,118,191, 13, -145,135,221,110,148, 74, 24,198, 33,171, 72,215, 53, 99, 29,115,214, 54,197, 89,155,174,238, 6,145, 82, 85, 23, 41, 22, 6, 85, -200, 94,177, 1, 86, 25,198,106,136,180,104, 23,164,162,170,128,254,205,135,195, 90,244,161,168, 3, 51, 65,142,129,137,204,196, - 79, 86, 1,129,131,150, 17,255, 63,166,222,228,201,146, 43, 75,239, 59,211,189,238,254, 94, 68,228,136, 4,178,208, 72,160, 10, -133, 2, 10,133,170,234,177,154,205,238,102, 75, 38,146, 34,165,141, 54,250, 87,100,166, 21, 55,210, 74, 75,153,100,148,204,180, -144, 22,148, 22,220,203,180,144, 68,177, 57,136,109,106, 90, 79, 53, 0,141, 49,231,200,136,200,136,120, 17,239, 61,119,191,247, -156,163,197,185, 30, 40, 24, 12, 11,100,100, 90, 70, 60,247,123,207,240,125,191,143,192,201,168,137,173, 29,220,231,105,174,232, -146, 51,128, 87,117, 97,222,238, 71, 51,115,155,254,242,201, 55,111,222,125,240, 63,255,243,127,158,200, 62,249,224,253, 63,255, -155, 95,117, 41, 37,198,199,175, 94, 61,125,121,140, 68,111,222,191,115,118,121,113,126,181, 59,223,108,166,121,158,107,217,205, -179, 16,175,114, 74, 89,192,148, 72, 98,148, 69, 68,132, 22,233,151,220, 68,191,212,183,144,140,152, 46,185,153, 9, 68, 48, 54, -127,164,218,126, 0, 0, 32, 0, 73, 68, 65, 84,104,200,254, 16, 38, 51, 44,133,136,204, 9,220, 78,207, 55,167,231,175, 69, 82, - 34,236,115,151,251, 62, 9, 15, 41,231, 62,175,251,190,239,186, 33,119,195,106,232, 82,215,101, 1,132,156, 83, 78,105,213,117, - 93,238, 83, 78,125,238, 68,114,215,103,233,114,226, 14, 68,250,131,131,225,240,214, 29,128, 50, 79,101,154, 34, 98,177,150,178, -223,237,171,233,118,187,221,238,118, 47, 94,157, 60, 63,126,254,234,228,244,229,217,235,205,213,245, 84, 74,169, 85, 17,170, 59, - 34,177, 80,226,206, 92, 17, 32, 49, 59, 2, 97, 0,129, 48, 10, 52, 71,211,166, 91, 39,107, 34, 93, 50,168,177,225,173,174,213, - 42,129,171, 59, 24, 42, 32, 49, 87,176, 82,106,183, 94,185,151, 22,228, 19,193,216, 11, 84, 53, 80,105, 46,208,178, 49, 29, 8, -145, 16, 84,219,218, 5, 93,145, 40, 94, 98,173, 21,146, 52,183,161, 81,156,231,222,246, 54,104, 8,160, 14,130, 75,163, 16,190, - 11,144, 69,211,225, 0, 2,208,166,234, 30, 33, 24,128,224,218,250,138, 88, 7,196,182,207,221,169,154,133,202, 40,164,249, 14, - 28,131,108,110,147,105, 20, 68, 6,174, 45,235, 77,209, 20, 68, 22,163, 71, 88,144, 26, 13, 55, 80, 89,176,252, 23, 91,125, 27, -161,111, 96, 22,231,123,196, 62, 65,117, 5, 3, 35, 50, 83, 4, 96, 32,141,234,219,157, 24, 73,200, 99,125,138,136, 0,101,198, -113,222,199, 29,171, 87,215,132,158, 83, 39, 34, 76,243,208,119, 57, 15,224,125,245, 26, 20,150, 54,140,211,234, 54,155, 53, 86, -164,154,154,107,151, 68, 82,150,134, 62,140, 40,120,136, 80,104, 2, 80,104, 42, 87, 34, 34, 45, 21,127, 45,225, 34,246, 62, 45, -178,176,197,163,198,245,127,131,160, 97, 12,123,196, 18,140,221,248,234,237,113,112, 12, 51, 95,236,199,205,219,154,179,209,127, -169, 9,103,189,137, 54,227,154,176,224, 32, 56, 48,130,130,129,131,170,126,239,251, 31,189,255,232, 47,206,175,174,254,252, 47, -254,242,247,126,243,147,135, 15,238,107,144, 3,157,193,201, 45,196,178,190, 29, 75,169, 62,215,121,127,189,223, 94, 95,108, 47, -207,129, 60,247, 67,166,238,250,250,252,228,234,197,102,179, 57,187,216, 92,239,198,205,126,111,238, 12,246, 27,247,238,173, 87, - 7,168,246,255,253,205,175,230, 82,166, 90,250,190, 59, 90,175, 81,141,146, 76,115,233,251, 62,160,201,165,148,170,202, 0,165, - 76, 83,213,237,126, 55,149, 74,136,224, 80,138,185, 27,177,116, 41, 51,147, 91, 69,244,245, 48,152,131, 22,221, 76,187,105,158, - 40, 48,159,104,213,124,156,138,187,151, 50,155,249,106,232,136,220,221, 87,146, 73, 66, 89, 33, 34, 4,224,187,121,174,181,152, -195, 84,202,126, 63, 22,179,243,203,125, 47,121,181,202,215,251, 73,152, 0,201,106,153,167,221,193,225,209, 52,143,213,189, 58, -148, 90, 19,167,209, 77,231,210,119,121, 42,124,235,240,246, 56,141, 69,173, 78, 51, 2, 36, 78, 38, 58, 47,241, 89,230,243,118, - 95, 9,161,216,156,114, 63,237,118,213,157,137, 51, 51, 85,221,169, 18,120, 45,109, 92, 86,185,152, 71,195, 36, 14, 46, 66, 72, -174,165, 21, 96, 81, 20, 75,162, 46,101, 55,175, 78,137,221, 92,201,227,212, 16, 10,207,106,173,106,176, 36,236, 26, 17, 24,242, - 28, 87, 53, 25, 40,108,107,249,252,155, 47,127,247,147,159,220,221, 77, 47, 78, 95,253,187,159,255,229,135,239,189, 43, 44,235, -126, 24,250,225,151, 95,126,115,118,185,233, 58, 41,251,114,126,113, 61,149, 82, 74, 81, 51, 4, 76,196, 8, 4, 72,130,220,165, - 52,206,234, 14,140, 76, 34,132,128,192,166,213, 29, 52,150,144, 64, 90, 29, 51, 58, 97, 76,120,205, 93,137, 96, 54,103,100,193, -162,160,110, 45, 39,129, 80,205,136, 96,154,167,205,246,122,158,231,169,234,186,235,238,221,185,219,103, 49,119, 38,200, 93,238, -114,223,119,169, 75,121,181, 26,214,125, 78,185,235,115, 78, 44,253,208, 13, 93,223, 17,165,156, 72,120, 72,137, 24,153,164,203, -221,106,189,202,125,223,247,125,204,115, 68, 56,165, 78, 97,181, 62, 58, 68, 71,115, 53,181,143,127,232,243,180, 87,211,237,213, -110,115,117,117,189,187,186,216, 92,157,158,111, 78,206, 78, 47,175, 55,187,237,190,104, 25,167, 66,233,234,122,187,171,101, 6, - 18, 96, 36,201, 8,144, 18, 67,117, 87, 7,196,204,162,110, 70, 97, 75,105,154, 66,104,193, 8,132,110,171,190,175,102,141,101, - 2,192,205,158, 98, 6, 75, 27,191,168,171,133,196,213, 84,227,165, 70, 53, 16,136, 50,182, 80, 51, 48, 18, 69,208, 34, 2, 16, - 9,199,200, 5, 0, 12,127, 61, 78,231,102, 30, 31, 69,222, 77, 34,115, 51, 81,218,183,206,169,246, 79, 59, 81, 0,144,131,107, - 2, 74,203, 95,207, 1,144,141,154,247,161,141, 16, 4,129,144,237,198, 95,230,145, 64, 17, 99,101, 52,171, 49,173, 90,124, 5, -184,240, 80, 22,157,246,242, 95,132, 95, 27, 76,123, 4, 52,147,186, 57,134, 70, 74,172,204, 76, 24, 55,209, 98,246,141, 11, 5, - 33, 8, 95, 6, 8,173,246, 37,162, 62,177, 69,226,220, 0,213, 76,171,206,102,101,156,232, 26, 25,185,239,187,156, 6,247,210, - 15,189, 71,114, 33,160,161, 51, 83,124,215,237, 90,131,228, 54, 10, 32, 0, 90,219,106,104, 88, 14, 21, 0, 82,234, 0,129,137, - 22,253, 98, 67, 18,184, 1,210, 34,130,108,202,241,166,182,113,215,144, 83,182,212,246, 80, 97, 16,220,124, 45, 52, 35,176,131, -183,213, 5, 32,120,132, 48,154,183,150,203, 26,186,166, 54,169, 76, 5, 39, 68,148,166,140,132,198,181, 49,208, 82,215,183,239, -255,228, 71, 31, 62,125,245,250,179,191,253,244,191,249,111,255,233, 31,254,236,183,223,125,231,237,119, 31, 61, 90, 31, 12,117, - 46,213,113,158,109,119,181,221,110,175, 46, 94, 31,107,157, 9, 41, 13,131,187,237,174,199,103, 79, 95,108, 54,151,211, 92,205, -180,212,249,122,172,199,167,231,175, 55,175, 75,133,223,250,248,251,204,252,226,244,149,187,119,146,115, 74, 67,223, 73, 98, 87, -115, 4, 68, 31,134, 46,145, 76,101, 95, 38,155,234, 92,107,157,180,106, 41,145, 44, 44,200,115,173,238, 22, 90,198,148, 36, 49, - 87, 4,161, 84,173,238,119,251,237,110,111, 90,195,228, 51, 77,234,164,153, 72,193,221, 93, 85, 29, 17,192,166,185, 6,112,115, -246,146, 85, 82,230,113,218,215, 42,136, 84,106, 13,207,250,241,201,235,235,237,148, 83,222,142, 99, 62,148,144,187, 54,145, 42, -248,245,118,123,116,120,120,184, 94,237,246,211,209,129,153, 26, 11,130,185,147, 39,228, 33,103,181,218,231,161,238,182,251,113, -138, 48,248,177, 86, 34,116, 80, 15, 74, 4,243,126,158, 19,114, 39,121, 15,123,115, 23,137, 72, 73, 22,115, 71, 3,100, 0, 71, - 2,181, 90,220, 28, 32, 71,151,167, 68, 78,156,144, 16, 17,104,154, 75,117,200, 44, 0, 80,172,148, 82, 99,220,198, 76,128,216, -161, 64,196, 60, 18,155,107,148,252,193,115, 37, 36,213, 90,107,201, 41, 27,249,126,156,190,248,234,201,203, 87,167,219,253, 4, -102,230,254,171,175, 30,223,191,125,171,152,255,237,227,199,227, 56,137, 72,172,131,198,105,102, 38, 38,170, 53,188,126,102,110, - 2,236,230,115,173, 4,160,142,166,245,160,235, 23, 43,174, 19, 35, 20, 23, 0, 5,216,105, 89, 85,129,182,149, 91, 8, 23,177, - 84,139,229,131,186,187, 51, 33, 17, 67, 68,187, 0, 48,177,176,212, 64, 98,187,169,251, 56,238,189, 88,215, 77, 35,237, 47,208, -138,129, 1,100, 73,195,208,245, 57,229,156,135,161,207, 41,173,251, 44,146,186,110, 24,152,115, 18, 96, 72, 40, 34, 32,146,251, -156,187,148,134,213,106, 24,250, 46,231,148,251, 97, 53,244,253, 64,146,220, 13,145,186,213,129,214,185,239,215,111,188,249, 80, -132,145, 12,129,208,169, 90,157,203,140, 0,169, 27,246,219,237,147, 23, 79,126,245,249,151,127,253,243, 95, 62,121,254,236,242, -234,202, 61,244, 43,136, 8,137,153, 18,121,141, 96,131,155, 96, 50,112,160,162,145, 94,205,196,132,106, 75, 22, 4,128, 91, 99, -125, 99,152,135, 12,152,140, 66,203, 67,106,132,102, 4,192,132, 20,101, 25, 33, 32,171,213,208,184,187,129, 53,144, 3,178, 83, -187,211, 9,168,233,112,113, 97, 65, 1,242,194, 75, 89,150, 59,196, 88,212, 36,126,251,114, 44,135,185,107, 73,230,137, 4,160, -182,217, 69,192,128,159, 80, 60,140, 0,205,124,199, 33,216, 64, 52, 6, 32, 98,138,243, 23,180, 13,232,169, 21,229,234, 78, 4, -173,172, 13,225, 56, 51, 53, 44, 4, 1,212,240,237, 59,146,131,125,123,200,251, 50, 0,115, 87,162, 22,115,100,176,232, 9,208, -163,147, 80,112, 4,108, 43,180, 38,219, 86, 55, 66, 3, 11,179,146, 16,101, 79,128, 29,118,224, 80,205,118,243, 56,150, 73,221, -253,106,139,104, 93,146,190, 27,170, 26,186,167, 68,194,153, 72,156,132,216,187,220,201, 50,180,106,183, 36, 24, 54,212, 10,179, - 47, 22, 82,162,229, 39,223,200,235, 97,162, 96,168, 22,243,211,118, 29, 53, 13, 98, 0, 14,110,166,111, 97,192,117,247, 26,169, -153,232,248,107, 67,123, 68,140, 68, 93, 96,140, 9, 69,148,123,113, 91, 48,198, 84,108, 33,130,197,157, 23,105, 26,224, 88, 1, - 63,250,248,195,255,227,255,254,215,128,248,217,151,159,159,188, 58,249,224,189,119,254,206,239,253,236,251, 31,252,160, 22,189, -188, 60, 63,125,245, 98, 30,183,135,135, 71, 40,208,247,171,147,151, 47, 79, 63,255,114,187,219, 95,239,119,211, 52,147,208,189, -163, 91,187,113,252,213, 87, 95,159, 95,111,175,183,227, 88,230,219,135,107, 43, 58, 82, 93,245,131, 59,136,144, 48, 17, 49,154, - 86, 55, 0, 34,164, 82,202,102,188,218,239, 71,119,136,158, 11, 8, 19,231,226,166,117,158,107, 65,132, 97,232,187,148,208, 41, - 39, 6, 71,171,229,106,119,189,159,198,121,156, 83,206,136, 20, 91, 92,117,173,181,170,137,147, 23,179, 56,211,157, 41,114, 26, - 1,168, 79,210,117,169,212,146, 37, 57,200,103,143,159,100, 74,138,176,189, 30, 83, 48, 50,213, 76,107,223,165,170,134,190,240, - 50, 1, 75, 45,151,155,205,237, 59,119,182,219,113, 55,238,115,215, 59,130,106, 33,166,169, 22, 22, 73,194,134, 86,180,198, 20, -181, 84,117,115, 68, 81,131, 82, 85,132,133,152,153, 70, 40,241,227,142,135, 33, 11,141,179, 13, 34,163, 22, 5, 19, 32, 64,112, - 2, 50, 92,180, 84,160,110, 8, 4,234, 6,241,173, 88,173,213,152, 10,145, 86,109,108,103,116, 84, 80,116, 6,116,247, 10,222, - 75,190,179, 62,236,114,183, 94,245, 69,171, 19,141,187, 73,189, 74,238, 90, 35,120,168,227, 56, 79,115, 57, 90,103,102,100, 98, -114,152,231, 73,205,201,177, 27,122,173, 5,213,220, 21,208, 59,145,105, 46,213, 20, 29,138, 25, 2,133, 11, 49,179,236,166,153, -185,246, 41,133,155,217, 90,245,233,193,215,107, 52, 95,106,228, 59, 48,103, 18, 8,225, 7,162, 1,144,144,155, 41, 56, 85, 55, - 52, 2, 53,171,174,218, 34,222, 13,209,117,210,194, 46, 4,168,132,106,142,228, 65,125, 40, 85,103, 24,231,121,190,112,221,238, - 39, 36,100,230, 62,167,190,235, 87, 67,215,229,212,229, 28, 35,155,156,164, 11, 74, 79,151, 51,113,151,101, 24,134, 46,119, 89, -184, 75,121, 88,175,114,215,175,134, 97,181, 62, 76, 73,186,156, 73,160, 91,175, 57, 15,145,120,156,220,123,176, 97,117,216,175, -214,170,245,209,247, 63,250,217,239, 79,187,203,215, 79,158,124,243,249, 23,127,251,217,151, 95,125,253,244,233,241,217,249,197, -245,118, 86,239, 34,149,135, 81, 8, 33, 49, 87, 82, 55,161, 64, 38, 4,222,210,204,141,145,163,173,119, 34, 87,183,104,244,137, - 91,132, 25,114,172,206,132, 83,169,161,101, 64, 34, 65, 98,243, 54,110, 1,192,101, 9, 27, 55, 34,148,150,140,214, 42,101, 15, - 63, 38, 80, 44,233,154,187,106, 17, 6, 17,128, 90, 76, 66, 8,177, 45, 57,173,169,244,112, 17, 95, 35,199,138,216, 33,192,230, -145,215,215,118, 70,141, 75, 8,232,196,136, 68,168,174,161,193,181,216, 38, 36, 6,152, 45, 66,181, 91, 43, 25,170,109,188, 1, -164, 44, 29, 6,184,234, 2,123,246, 6,165, 93,138, 89, 2, 86, 85,243,106,145,112, 68, 28, 50, 69,247,216,139, 7,139,194, 64, -154,151,196,129,219,212, 19,220,205,128,163,113,114,159, 43,176,196, 11,232, 0, 68,148, 0,145,128, 1,148,157, 80, 12,240,106, -220,155,170,155,233,149, 1,104,151,115,150,126,213,119,251,253, 94,218, 90, 58,124,101,109,221, 12,174, 21,111,150, 13, 20, 97, - 31,161, 44,178,136, 77, 71, 66,175,182,200,219,117,177, 9,133,206,141,220,181,157,247, 68, 96, 96, 94,225,219, 44,168,112,164, - 33, 0,129,153, 55, 45, 87,204,176, 24,201,220, 52,214, 41, 20,238,133, 40, 23,220,127,109,155,235,224, 26,119, 70, 45,229,254, - 91,239,254,230, 15, 30,157, 92,141,191,255,163,143,126,240,254,247,238,223,191,143, 36, 95,127,241,171,211,147, 83,240,122,184, - 62,236,115,119,113,113,121,189,217,156,156,191,222,237,167,125,153,146,200,170,235,190,243,224,222, 60,207,167,103,103,159, 63, -123,250,234,252,138,192,133,232,135,223,125,247, 96, 61,220,187,125, 72, 8, 85, 43,146, 88, 45, 85, 43,170, 33,186, 35,129,217, -230,250,122,183,189,174, 6, 57, 0, 50,136,213, 20,204,175,166,107, 38, 18,225,219,221,161,177,103,150,248,166,247,101,190,190, -222,109,167, 49, 17,179,112, 56,102,135,126,165,251,237, 56,205, 6, 46,196,192,100, 90, 9, 64, 77, 3,113, 42, 68,140,196, 12, -213,230,231,207, 94, 49,117,255,228,191,252, 39, 95, 61,121,246,171,127,250,223,207,243,252,250,242, 82,132,215,183, 14,246,179, - 13,125, 58,191,170,166, 86, 52,152, 29,109, 73,133,136, 87,215,215,171, 97,117,116,176,186,220, 92, 31,172, 15, 74, 17, 22,164, -153, 10, 75, 38,236,251,213,225,176, 58, 63, 59,207, 34, 14,190, 26,242,213,126,207, 89, 57, 9, 16,220,191,117,251,244, 98, 51, -116, 66, 44, 70, 20, 27,113, 74, 92,171, 58,225,144, 18, 78,188, 31, 39, 71, 71, 39,111,175, 80, 51,184, 41,128, 24, 26, 24, 18, - 81,160, 42,152,219, 20,212, 91, 63, 76,128, 8, 40, 8, 73,210, 84,139,213, 90,124, 6,234, 19,107,217,111,163, 33,239, 51,164, - 52, 16, 16,137, 60,184,123,239,106,191,125,189,185,250,250,249,177, 24,118,210, 79,101, 20,102,106,175,186,163,185, 85, 83, 34, -116, 72,200,213, 76,205,192,213,177, 97, 18, 8, 25,217, 12,116, 50,205, 22,127, 21, 5, 98,171,138,136,203, 57, 0, 44, 20,173, -190,197,159, 10,110,132, 14,144,152, 23,225,167,185, 19, 25,184, 43, 3,251, 77,131,218,214,128, 14, 68,104,228,161,161,142, 52, -155,104, 33,212,112,137,182, 49, 11,183,141,143,101, 7,110, 89,228, 96,189,202,196,142,222,117, 29, 33,231, 36,196,148,133,115, -206, 41,165,204,148, 82, 26,186,174,207, 34, 57,245,169, 99,132, 68, 57, 15,114,116,120,112,251,240,246,193,193,193,122,189, 62, -188,125,255,232,206,157,225,240,136,136, 9, 28, 69,144, 0,220, 25, 81, 65,214,183,239,125,120,251,238,135, 63,252,201, 63, 28, -183,175, 95,159, 28,159,188,250,250,155,111,158, 60, 63, 62, 61,191,120,117,118,122,121,189,119,132,121,182,169, 20, 97, 1,194, -156,123,119, 23, 38,164, 20, 51, 91, 92,104, 37, 45, 51, 16,177,173,206,144, 98, 79, 14,170, 72,158, 57,133,209,205, 76,213,156, - 88,124,185, 71, 9, 80, 81, 17,161,170,118, 76,229,166,114,132,155,204,180, 38,243,105, 46, 24,144,246,203, 17, 87, 20,127,144, - 56, 17, 35,160,161,241, 2, 59,107, 34,108, 4, 36, 86,117,108,190,249,229,224,109, 53, 66,192,194, 12,200,220,145,136,200,157, -136,213, 20, 35,198,129, 66, 56, 0, 75, 62, 51,194, 82,177, 66, 76, 26, 33, 14,254,133,189,212,154, 77, 82,117, 83, 67,161,160, -249, 91, 84,252, 30,182, 9,115,211, 24,204,195,194,112, 12,218,157,149, 95,243,185, 97, 24, 76, 5,208, 48,216,173, 37,242,173, - 85, 35,186, 58,150,188,216,134,103,180,148,219,132, 68,137, 1, 73,188,153, 9,182,101,183,215,233,122,183, 21,244,101, 76, 14, - 75,252, 70, 0,228,201,209, 17, 12,144, 1,151,134,169,153,230,220, 98,242,142,238, 22,123,232, 72,218,141,185, 64,155, 97, 44, -198, 49, 95,246,183, 55,124,207, 88,130,132,228,104, 73,224, 0,140,189,136, 47,152,119, 35, 22,104,161, 33, 13,152,215,158, 1, - 4, 4, 6, 7, 98,116,173,199, 39,215, 63,252,233,111, 15,119, 31,174,250, 92,139,190, 58,121, 89, 38, 69,132,163,195,161,148, -233,233,139, 23,187,235,253, 56, 77, 87,227,246,242,250,250,104,189,126,248,198,131, 59,135, 7,251,253,254,197,233,201,203,211, -243,147,215, 23, 93,206,127,247,167,159,220, 59, 56, 82,240,195,163,213,126,156,213,180,204, 90, 74, 65, 82, 85,141,184, 2,117, -173, 85,205,157, 8,187,220,101, 36, 15, 39,155,233, 60,207, 76,120,180, 94, 11,179,169,137, 36, 98,208,170, 83, 45,211, 56, 93, -239,247,132, 88,171, 42, 56, 91, 37,130,185,204,211, 52, 3, 26,144,247, 34,232, 56,107, 85,208,134,137,212,226,140, 64, 84,117, -222, 92,143,199, 39,151, 87,219,253,126,156,255,167,127,246,191,156,156,158, 61, 63,126,241,254,219, 15,227,227,119,112, 39, 74, - 57, 25, 68,150, 39,181,101, 82,232,206, 12,129,252,229,233,233,111, 60,124,147,136, 47, 47,175,242,189,148, 83,239,104,102,138, -169, 99,128,219, 71,183,159,203,241,245,126,191,234, 58,145,212, 49, 5,247, 53, 46,250,142,217, 28,132,128,209,185, 97, 84, 85, - 29,200, 93,132, 7, 64,187, 70,110,205, 46,248,194, 41,137, 94,186,120,101,194, 0,153, 0, 3,170,169, 59, 47,143,113, 20,250, -204, 84, 76,115,146,162, 10, 72, 67,215,177, 81,173, 58,214,232,153,221, 28,246, 69,117,154,137, 57, 37, 62, 61,219,140, 58,143, -227,254,225,189,219, 66,180,159, 13,152,195, 0,172,209,248, 25,104,244,194,140,170,234,139,121,123, 73, 6, 3, 70,182,162, 90, - 53,158,200,198,127,105, 51,220, 70,196, 6,196,176,147,154,153,186, 3,130, 32,128,129, 9,153, 91,117,133,152,131, 53,220, 0, -182,199, 31, 17,129,220, 26, 90,203,188, 90, 83,112,128, 69,166,129,187, 66,251,209, 54,130, 9,185,215,152,119, 48, 16,185,186, -147,215,170,100,147,187, 79,137,173,154, 1,133,140, 72, 8,114,151,221, 60,167,212,117, 57, 19,163, 96,206,194,200, 41,167,195, -174,123,231,237,183, 15,135,213,106,245,108,189,238,239,220,186,211, 13,107, 36,202, 34,135,119,110, 57, 80,151,123, 3, 12,232, - 30, 16,211, 48,188,241,240,221,187,111, 62,252,232,163, 31,150,185, 78,243,126,183,219, 95,188, 62,127,252,252,233,167, 95,124, -241,197, 55,223, 60,123,117,122,252,250,226,122,183, 19,102,160,148, 26,176, 16,152,154,191,136,136, 69, 88, 43,168, 41,132, 50, - 31,193,204,139, 27, 58,144, 16,133, 87, 42,138, 62, 91,236,176,161,172, 65, 49, 51,130,160, 11, 44,217,198,208,170,228,152,146, -235,175,165,218, 7,197,123,249, 3,194, 66, 36, 30,194, 73, 71, 53, 88,142,241,184,197,137,192, 25,160, 66, 59, 56, 98,216,203, -240,173,186, 15,193,209,226,172, 3, 70,202, 33,226, 36, 22,166, 90, 45, 94,115,116, 52, 11,247,246,141, 35,251,219,168, 59,140, - 69,180, 47, 81, 78, 26,195,105,240, 82,145, 25, 17,136,200,156,209,212, 92,137, 56,198, 45,237,225,143,105, 53, 81,153,103,180, - 16, 53,199, 62, 3,137, 28,153, 24,216,209, 66,197, 98,109, 33,172,104,228, 64, 81,131,136, 51, 88,109, 30,134,200, 23,138,114, - 36,224, 80,142,136,216, 37, 46, 53, 11,134,174, 31,221,111, 28, 76,136, 21,130, 91, 76,192, 11, 39,164, 93,175, 28,183,119,216, - 64, 23, 28,204,205,185, 30, 50, 35, 13,208,102,171,181, 23,175,240,194, 25,110,158, 24, 64,189,249,118, 1, 91,234,222,242, 47, - 32,242,183,146, 75,183,112,163, 33,144, 33,160,105,115, 83, 51,191,124,254,226,171,207, 63, 51, 83,113, 31,199,169,214,130,238, -146, 8,220,119,187,237,230,242,122, 28,231,203,237,213,102,123,141,140,247, 14, 15,205,233,233,241,241,151, 79, 30, 79,115,185, -216,110,215,185,251,248,253,247,238, 28, 30, 34,154,186, 58,227,197,197, 70,213, 92,157,146, 0, 82,128, 97,231, 90,204, 60,177, - 8,161, 16,119, 93,214, 82,118, 58,153,170,171,179,240,122, 88,117, 93,103,165, 24, 57, 33,151, 58,142,251, 58,205, 99,228,245, - 0, 54,117, 1, 17,120,141,139, 29, 36,177, 57,205,117,222,205, 5, 52, 52,224,144,144, 89, 72, 59,158, 13,204,212,198,250,242, -197,233,197,126,234,251,204, 5,254,175,127,241, 47,175,199, 93, 74, 93,164,159,131, 90,173, 22,225,181, 34, 2, 64, 85, 39,116, -183, 82, 49, 11, 16,105,173, 36,124,181,223,191,190,236,110, 31,221,121,125,177, 89, 13, 59, 97, 97,166, 66, 69,152,114,234,186, -110,120,248,224,193,215,143,159, 48,179,169, 18, 83,169,102,170,125,223,205,115, 37,193, 62,201,110,138, 97, 74, 19,163, 97,208, - 69, 84,153, 19, 34,104, 40,207, 72,204,107,128,244, 26, 31,196, 76,114,210,170,145,170, 28,114,250, 69, 21,219, 26,222,128, 6, - 19,139,227,184, 74,121,232,147,161,105,197,162,213,145,209,189, 79, 57,110,212,170,182,219,143,171, 85,198,153, 9,184, 79,137, -144, 83,132,201,123,244,232,224,230, 70,102, 78,212, 4,121, 81, 40,121,172,242,111, 50,208,181,106, 56,122, 72, 4, 0, 66,165, -218, 98,146,205, 4,145,137, 24,201,138, 45,128,105, 96, 68, 55, 37,103, 87,195, 86,228,199,105,109, 77, 70,141, 96,238, 73, 0, - 57,182, 87, 65, 28,160,136, 43, 8,242, 54, 32,161, 87,119, 87,211,100,169, 77, 62, 23, 85,134, 55,168,113,204,113, 99,243,228, - 72, 8,136, 93,146,170,170,128, 86,109, 59,142, 90,175,182,211,180, 26,186, 44, 41, 47, 96, 99, 78,242,234,242,242,232,224,160, - 75,233,160, 31,134,161, 95,119, 29, 11,221,191,125,235,224,214,109, 34,236,146, 0, 98,151,250,156,187, 24, 3,113,202,204, 29, - 37, 74,195, 32, 93,119,120,116,255,205,135,239,124,244,163, 31,255,131,127, 80,231,221,180,219,111,159, 62,123,250,245,227, 39, - 95,126,253,245, 55, 47,142,175,182,219,215,181,186,187, 97,198,132, 26,200, 26, 34,206,168,147, 17,199,218, 18,169,197,211, 57, -179,152, 85, 67,170,106, 66,196, 28, 2, 41, 93, 94,111, 16,162,212,102, 96,112, 83,190, 81, 4,145, 46, 9,246, 1,196, 37,118, -112, 35, 34, 97,177, 80, 97, 57,123,140,188, 52,150,122,214, 97,131, 25, 68,245,233,196,228,132, 81,189, 3, 32,160, 4,186, 22, - 1, 24,133, 89,139, 1, 57,146, 19,129, 26,131, 23,102, 49, 3, 16, 38,231, 68,216,231, 38,115, 55,143,181, 66, 99,116, 52, 46, - 51, 58, 88,117,215, 32,162, 99, 91,192, 44,203,102,115, 83, 5, 52, 68, 2, 74,160,170,170, 81,164, 54,105, 80,252, 5,221,146, -112,220, 32,182,120, 70, 90,202, 51, 56,218,162,200, 97, 49, 85,138, 28, 34,179, 24, 28,198, 93,225, 24, 33, 12,128,136, 5,148, - 67, 0,187, 92, 31,193,247,149,245,221,195, 58,215,113,179, 71,196,192, 36,128, 27,183,240,140,232, 84,154,200, 13, 22,201,123, -168,153, 2, 13,131,205,142,234, 45,124, 47,106,243, 26, 60,184,176, 73, 55,134,160,171,135,139, 49, 48, 95,120,131, 79, 10,210, -100,171,191,194, 7,143,208,128,200, 55,116, 24,104,179, 26, 11, 4, 10, 32,226,126,115,125,252,252,169, 86, 69,172,106,213,205, - 16,172,206, 94, 74, 45,102,251,121,188,218,237,199,105,116,176,213,208,151, 82,207, 55,155,171,253,184, 94, 13,101,174,143,143, -143, 39,131, 63,250,228, 67, 64, 58,190, 60, 39,167,148, 19, 35,245, 57,185,233, 88,103,155,125, 42,197,219, 42,136,134,156,135, -174, 43,106,106,117,183,221,207, 86, 72,128, 80,242, 32, 57,229, 68, 56,151,169,148, 50,141,213,138, 78, 58,107, 13, 14, 6,230, -212,105,173,165,204,204,196,204,197,171,112,118, 47,227, 56, 79,117,174, 85, 17, 97,189, 90, 29, 12,195, 92,234,108,238,230,197, -204, 84, 95,159,190,238,144,179,164, 78,212,213, 16, 80, 36,117, 41, 1, 81, 51, 3, 4,235,217,125,183, 31,133,168,150, 50,215, -106,110, 40,204,200,194, 50, 53,113, 11, 60, 61, 62, 59, 90, 31, 14,171,238,252,114,219,167,180, 94,173, 85,235, 92, 40, 73, 7, -238,247,238,222,125,247,209,219,199,167,175, 21,208, 1, 59, 78, 8,128,238,177, 91,131,182,238, 64, 66, 4, 97, 48, 51,183,196, -100,230,142,150,153,139,185,129, 86,171,241,248,234, 66,139,117, 38,115, 18, 65, 53,171, 75, 15, 26,126, 63, 88,102,220, 40,136, - 37, 18, 34,220,201, 16, 41, 17, 87,179,102, 72,161, 8, 99,194,166,215,174,154,186,110,154,119,234,174, 21, 10, 20,171,166, 4, - 64,177,105, 4, 38, 18,135, 8,211,136, 84,171,230, 20, 5,196, 82,227,204, 39,166, 46, 49, 23,186,145, 68, 56, 56, 11,235,108, - 11,213, 46,102,235,224, 8, 66, 56, 2, 16, 2, 35, 26, 18, 50,105, 8,100,137,106,113,117, 75,128,205, 42, 25, 96, 62,184,129, -158,106,116, 49, 22, 11, 60, 71,141,155, 61,218,114,103, 39, 4, 96, 36, 54, 87, 0,243, 86,176,162,186, 81, 72,246, 16,208,189, - 20,165,174, 11,195, 78, 41,181,207, 93, 20,122,227,126,175,106, 57,149,174,116,137, 60,172,173,175, 95, 95, 15, 67, 98,230,131, -213,208,231,110, 53,116, 73,228,214,225,193,157,195,195, 62,165,174, 19, 71,114,247,149,164,220, 15, 93, 39,125,215, 69,130,121, - 30,134,190,235,115, 55,164, 97, 69, 64, 34, 57,247,235,225,240,214,155,111,191,247,251,191,231,227,188,127,125,118,114,113,254, -250,155,103, 47, 94,188,124,249,242,228,244,248,236,236,106,179,121,125,225,165,236,212, 98,240,228,140, 40, 44,169,203,228,100, -160,204,226,213,129, 49,165, 16, 46, 97, 76, 61,200, 73,162,130, 69,208,160, 98, 85, 15,201,184, 35, 56,163, 16, 33,222,156,148, -216, 6,141,156,152, 82,204,236,147,128, 99,228,140,138, 27,128, 5,214,165,141,224,218, 49,100, 4, 80, 45, 66, 16,113, 65,235, -183, 84, 33, 14,212, 1, 34,147, 83, 36,168, 24,180, 48,160, 37, 0, 26,137, 57,154,146,248, 36,189, 17,211,252, 91, 94,222, 50, -123, 8, 15,135, 55,232, 70, 20,168,182,172,135, 45,194, 34,220,108,201,188, 1,143, 28, 35, 8, 26,200, 50,109,111, 14, 76, 7, - 7,157,205,204, 49, 81,168,113,163, 53, 69, 4,183, 74, 30,191,247, 6, 90,110, 14, 24,254, 5,154, 43, 32, 88,153, 17,193,140, - 41, 5, 79,193,101,119,177, 13, 3, 28, 34,130,105, 36,149,196,109,131, 16,131,255, 54, 92,251, 53, 86, 79,188,199,205, 1, 17, - 39,178,171, 7,149, 0, 0,129, 3, 29,137, 13, 44, 19, 63, 8,162,120,226, 33, 92,104,128, 8, 12,168,109,207, 0,238, 90,221, - 20, 89,190,253,180,252, 6, 93, 11,241,116,226,146,124, 51,237,230,147,147, 19, 32,201, 93, 6, 69,238,169,168,215,185, 34, 22, - 36, 52,199,162,142, 68,204,220,231,110,154,103, 96,239,251,225,244,226,242,114,187,219,108,182, 36,240,198,209,173,205,245,150, - 88, 68,196,217,124,154,170,218,118, 2, 68,210,218, 2,121,145, 96, 37, 29, 18, 26,216,245,254, 26,129,170,169,169,118, 41, 35, -115,151, 59, 70, 24,231,233,114,156,212, 52,162, 15,192,192,153,147,120, 85, 37,146, 70,183,117,212, 89, 41, 67, 45,122,113,253, -122,158, 11, 3,222, 58, 60,122,247,189,223,184,119,251,118, 41,245,108,115,241,234,252,188,130,206,181, 92,156, 95,222, 58, 88, -181,213, 94,236,117,150,129,134,154, 11, 57, 49,186, 85,226, 76, 14,102,170, 85, 99,194,166,102,213,171, 56, 71,162, 18,137, 36, - 78,140,229,114,123,253,252,228,248,157,183,223,190, 44,219,221, 60, 83, 78,107,238,180,206,227,180,207, 57, 37,150,239,191,247, -221,237,126,188,184,188,156,230,145,192,110,193, 42,167,116, 53,142,153, 57,196,146, 55,246,110,119,247,170, 55,220, 40, 68,200, -132, 45,100,162, 69,240, 53, 98, 9, 5,179, 36,202,177,168, 99,131,161,136,141,221,204, 44,130,236,168, 85,205,193, 16, 82, 34, - 32,161, 14, 89,204,133, 41,115, 82, 87, 68, 87,243,106,218,101,145, 44, 10, 78, 68,196, 80, 74,132,211, 57,120, 9,197,158, 33, - 16,177, 87,195, 20,155, 93, 32, 2,245,216,232,135, 20, 27,192,193,153, 19, 75,164,136, 48, 74, 76,127,171, 27, 19,153,155,131, - 23,179,158,217,188, 70,208,139, 24,168, 42, 19,183, 27,193, 20, 56,155, 87,211, 10, 36, 49,209,173,170,109,236,184,240,175,137, -176,128,130,131,106,149, 76,139,100,141, 28,136, 17, 5,161, 88,179, 33,162,121, 27,129,162, 87,135, 68,225,243, 35, 68,119, 6, - 5, 83,111, 95, 90,213, 74,100,153, 45, 19, 75, 6,140, 19, 86,171,169,151, 90, 38, 53,187,190,222,170, 25, 19,231, 36,125,223, -173,215,253,209,106,213,117, 89, 56, 9, 17, 51,136,228,117,215,229,156, 86, 17, 47,147,250,190,203,253,144, 15,214, 7,125,223, - 15,253,106,181, 94,165,174, 79,221,192,210, 3,226,157,123,111,220,127,240,157,247, 63,252,100, 26,199,113,119,181,185,188,184, -186,218, 28,159,156,158,156,158, 60, 59, 62,254,230,249,139, 39, 47, 79, 46,174, 54,165,214,237,110,159, 57, 49,147, 66,101, 14, - 57, 14, 7,124, 5,219,110, 15,189, 49, 46, 67,127, 78,138, 26,178,200, 24,149,196,145,178,144, 12,155, 24, 5,155,150, 37,188, - 58, 9,200,201,129,156,140,221,205, 57,164, 60,208, 2,153, 17,145,208,204,129, 17,190, 69,151, 91,203, 42,114,176,144,244, 45, - 27,203, 27, 90,106,219,236, 82, 98, 38, 2,243, 72,121, 38,150, 80,140,152, 41, 56, 90, 91,177, 70, 82, 4,224, 13,181, 35, 6, - 19, 55, 82,251,208,132, 47,248, 28, 34,178, 16,129, 34,186,214,182,169,109, 31,162,182,185, 76,252, 62,111,134, 4,111, 2, 83, - 95, 94,124, 69, 98,106,224,174, 5,248, 5, 16,185,122,181, 42,130,155, 46,162,166,136,214, 0, 7,112,209,106, 20,195, 37, 92, -176, 48,180, 28, 39,222,210,164, 2, 17,140, 68,225,118,134,101, 85,218, 70, 43, 17,176, 4,213, 33, 88,130,140, 55, 7,120,211, -201,196,120,201, 99,167, 26,147, 28, 6,212,134,255,245, 8,237, 8,141,119,131,145,184, 57, 96, 29,175, 92,146, 72,231, 55, 2, -169,182,241, 37,160, 52,239,183, 73,100,125,239,222, 52,207, 90,107,153,166,157, 93,237, 71, 69, 65,159, 21,180,170,214, 32, 13, - 37,102, 7, 66,171, 67,159,235,110,122,244,246,131, 62,115,151,251, 44, 60, 77,243, 56,151,106, 51,115, 78, 57,205,251,218,247, -195,208,247, 90,138,185, 35, 19, 49,109,182,219, 37, 48, 69, 87,121,224, 46,166,124,224,174,251, 82, 29, 12, 9,202, 84, 0,176, -239, 18, 75, 42,181,154, 25, 90,100,140,213,162, 69, 40,153,218,229,118,156,230,249,246,173,195,239,127,239,253, 55,111,221,149, -148, 46,247,211,171,227,227,203,237,102,179,189, 42,197,166, 82,246, 87, 87,155,203,203,187,183, 15,135,174,171,181, 76,181,180, -232,187,229,165, 96,226, 68,130,196,179,106,164,111, 2, 6,143, 73,220,247, 92, 17, 40, 98,179, 16, 42, 40,132,159, 13, 94,190, - 58,189,119,235,206,186,239,174,174,119, 93,150, 34,210,177,204,117, 70,132, 36,169, 75,221,131,123,247,254,147,127,248,159,253, -241,223,251,251,255,213,127,253, 95,188, 62, 63,145,212,215, 90,135,156,106, 64,161,193,213, 13, 44,208, 84, 64, 12,138,206,232, -213, 61, 17,177, 51, 1, 86,116,138,222,144, 22, 51,155, 80,228,205, 57,186,106,136,102, 49, 20,238, 65, 46, 55, 51, 32, 69, 4, - 13, 34,141,147,106, 93, 13,171,237,126,118,130, 33,165, 89,177,130, 18, 97, 66,226,196, 89,114, 45,102,106,166, 33,211,141,238, - 49,170, 61,114,112,171, 26,240,103, 97,174,181,170,129,214,146,115, 71,109,127,132,224, 80,212, 56,156,136, 6,206, 65, 89,112, - 6,172, 53,198,179, 70,200, 93,162,185, 54,227,191, 11, 23,111, 29,166, 5,147,133, 16,212,133, 25,162,111,136, 0, 5, 98,104, -142,141,118,159, 81, 37,245,133,115, 27,228,164,208, 23, 51, 54,215,163,153, 35, 84, 64, 84,232,144, 50, 10,103,154, 75, 13,131, - 96, 80,172,188, 56, 13, 24, 9, 59, 49, 40,176, 54,110, 38, 0,116, 50, 50, 42,174, 45, 39, 25, 32,188, 72,101, 46, 51,149,113, -242,203,171,171,241,185,178,208,173,131,245,122,181, 10,128, 1, 49,247,194, 93,151,135, 62, 53,205, 14, 19,139, 28, 30,172,135, - 46,175,186,238,112,189, 94,173, 86, 7,171,129,115,150,212, 31,172,215,253,234, 64,186, 62,165,238,240,246,189, 97,125,120,175, -206,143,222,253,174,187,215, 50,109,206, 47,174,182, 87,155,203,205,229,245,245,243,151,199, 79, 95,157, 94,109,183,175, 55,155, -253,118,187, 25,103, 33, 20,100, 71, 20,145,106, 32,238, 8,145,161, 6, 11,223,209, 17,113, 65,149, 52,195, 14, 52,209, 28, 2, - 27, 53,137, 54, 2,139,171, 18,135,123,147, 56, 33, 2,150, 18,148,164,118, 48,248, 34,225,128,165, 64,140,227, 71, 23,225, 75, -164,241,181,172,149,144, 12, 68, 59,217, 34,206, 61,142, 40,228, 8, 47, 77, 45, 74, 58, 86,191, 65,196, 70,110,171,226, 80,151, -184, 44,147,155,106,142,136,236,145, 19, 7,132,132, 70,214,224,187,224, 76,209,255,181,235,188, 33,144,141,220, 42, 17,180, 18, - 41,102,223,209,209,185, 52,201, 22, 18,169,133, 0, 5,102, 7, 50, 66,118,208,162, 6, 6, 70, 64,128,225,210, 32, 0, 34,116, -226,224, 57, 33,204,210,102, 42,209, 3,112, 3,202, 0, 49,122,203,217, 36,108,223, 26,180,242, 25,221,212, 1,208, 90,253,222, -174, 77,102, 15,148, 67, 12,214,153,150, 14,107,233,131,161,221, 78, 49,127, 9,132, 66,195,218, 52,166, 4, 53,228,100,236,164, -106, 81,171,182, 87, 62,200,141, 95,136, 8, 10, 36, 84,139,167,188, 62,184,125,247,155, 47, 62,123,246,236,233,249,249,185,187, -139,228,213,170,235,242,192, 34,110, 70, 76, 73,132, 66,187, 35, 12, 58,129,217,237, 91,183, 58,217, 85, 55, 53,155,166,113,158, -209, 0, 18,137,112, 7,110,106,154, 36,153,217,110, 63, 1, 57, 19,215,121,218,110,183, 14,216,229,220,137, 56,186,186, 78, 69, - 17,208, 85,171,107, 38,174, 90,186,212,203,225, 26,129,153,161,206, 37,206,146, 18, 28, 49, 7, 83, 43, 84, 14,111, 29,125,252, -206,163,223,252,209,143, 31,189,243,206,241,139,151,191,248,244,211, 95,126,241,249,102,179, 27,231,113, 46,179,153,109, 54,155, -121,156, 51,147, 57,198,220,198, 84,139, 90,202, 9,205,113, 66,106, 24,174,176, 9,144,185, 86,211, 64,187, 84, 43,128, 14,106, -200,136, 72,174, 86,230,226,234,156,155,166,202,205, 94,190, 58,121,247,157,239, 76,165, 94,110,182, 4,168,238,104,190,199,253, -225,193, 97,146,244, 71,127,248, 31,253,227,255,244, 63, 63, 56, 90,221,187,119,255,213,171, 19, 17,103,192,120, 98,114, 74,212, -200,245,128, 72,161,252,142,221,187,171, 11, 83,206,201, 17,231,121, 90,128, 29,206, 8, 4,192,142,138, 55,251,164,120, 39, 8, - 92,205, 65, 40, 64,129, 52, 87, 87,173, 96,110,100, 76, 4,238,243, 92, 0,161,134, 11, 24, 80,213, 8,208, 69,146,100,166,197, - 1,143, 46,140,251,192, 93, 47,189, 75,248,230,144,192,162,136, 48, 15,171,214, 92, 52,158, 76, 66, 68, 66, 85,117, 2, 20,172, - 65,113,137,238, 3,193, 99, 15, 10, 4, 26,188, 12,174, 22, 53, 50,128,213,196,157, 85,171,165, 32,226,220, 18, 21, 20, 41,153, -107,109,146,225,118, 6,223, 56,119,149, 21, 35, 50,199, 12, 13,147,224, 52, 53,246,121, 83,211, 44, 37, 61,160, 58,139,187, 33, -179, 56, 45, 0,118,114,196,128,110, 18, 71,120,100,155, 55,187,153,171,115,130,132,172,168,141,224, 73,139,193,144,212, 28, 48, - 16,160, 12, 54,234,118, 28,175,182,123, 52, 63, 90, 13,196, 36,140, 41,103, 2,226,196, 57,229,156,169,151,156,115,151, 19,119, -146,250, 85,238, 36, 31,172,250,245,122,117,216,245, 67,223,229,174,203, 93, 62, 24,250,156,187,220, 13,171,131,117,202,125,215, - 13,136, 60,172, 15,134,213,193, 3, 2,175, 90,107, 21,226,177, 76, 4, 54,207,243,171, 87,103, 63,255,236,211,111,158,189, 56, - 62, 61, 27,119, 99,213, 98,176,159,102,245, 27,106, 55, 0, 16, 8, 18,170,107,192,199, 57, 14, 28, 84,111,117,234,205,120,208, -192,123, 38, 5, 39,226,200,133, 54, 53, 53, 71, 0,117,207,204, 69,153,200, 35,212,138, 48,166, 46,173, 83, 36,112, 14, 5,162, - 6,134,207, 9,176, 58, 80, 67,236,128,187, 99,140, 98, 56, 56,225, 97,202, 52, 55, 11, 45, 15,186,183,143,213,205, 85,137, 72, -131,150,186,212,236, 0, 26,118,132, 0, 48, 48,177, 27,186, 43, 33, 3,130, 86, 69, 71, 5,131, 8, 11,114, 55,181, 70,111,113, - 3, 48, 87,138,216, 80, 47, 14,230, 16,224, 48, 48, 68,177, 8,222, 19, 6, 51, 48,192,132,209, 70,132, 82,220,212, 41, 42, 7, - 67, 17, 2, 51,115,136,177,146, 91,113, 5,105,125,135,108,161, 0, 0, 32, 0, 73, 68, 65, 84,184, 71, 67, 96, 8, 25,255,146, - 59,218,238,171,112,241,134,176,183, 5,151,198,172, 81,218, 20,101,193,124, 59, 16,134,101,180,141,234,205, 34, 79, 36,196,141, -109,187, 26, 94, 40,186, 49, 77, 53,197,170,135, 44, 30,150,180, 63, 0, 39,202,253,161, 3,164, 44,193,169, 3, 66, 20, 4,242, -105,103,132,155,191,253,229, 95,254,242,151,159,238,166,130,177,234,169,117, 26,199, 59,247,243, 81,215, 87, 45,243,172,251,237, -110, 44,101, 63,207,166,181,168, 10,194, 52, 77,115,173,196, 56,205,138, 14,194,140,132, 68, 70,146,136, 72, 68,194,184, 73,140, -106,186,185,190, 38,162,131, 97, 93,180,146, 67, 68,242,100,118, 9,178,146,164,158, 83, 74,121,158,107, 18,156,171, 86,181, 90, -235, 92,234, 60,205,234,150, 72, 50, 34, 39,118,164,247,222,251,240, 63,248,147,255,240,141, 7,111,237,246,151, 47, 30, 63,249, -197, 47,127,241,229,227,167,103, 23,175,167,185,160,112,153,117,183,219,158, 93,108,214,125, 71,196, 28, 82, 10,119,162, 48, 27, -169, 46, 20,190, 22,113, 8,110,106,204,132, 8, 66,194, 40,128, 40, 64, 34, 50,142, 83, 78, 20,241, 87,234,234,158, 92,221,221, - 88,120, 42,243,225,106, 93,212,198, 89,207,183, 87,105,191,251,147,191,247, 31,167,126,248,238,187,239,223,190,115,239,224,240, -246, 87, 95,253,226,127,252, 31,254,187,191,252,229, 95,221, 57, 60, 50,115, 53, 51,245, 26,167, 10, 84, 12,188,172,171, 8, 16, - 65, 80, 3,147,176, 35,152, 26,145, 44, 10, 89,119,192,112, 66, 19,179,215, 86, 65, 17, 71,178,161, 46,162, 18,104, 5,105,195, - 78,169, 27,238,231,210,231,100,142, 86, 21,208, 74, 53,228, 6, 13,159,107,217,108,118,111,220, 73, 57, 9, 32, 2,145,151, 26, -233,198,194,172,106,136, 48,171,129, 25, 33, 99, 91,251,248,130, 11, 53,128, 8, 64, 64, 55, 80, 13, 7, 99,243,210, 73, 34,100, -210,217, 57,228, 4,228,197,116, 81,241,135, 42,215, 17,145, 57, 19, 41,134, 92,164,217,158, 2, 71,130,112,147,156,237,100, 26, - 28, 45, 74,146, 56,161, 85,109,229,155, 89,181, 80,230, 52,203,247, 66,206,114,100,131,136, 79, 67,215,246, 69,241,235, 13, 40, -101,213, 90, 4,168, 25, 3, 84, 51,199,136, 60, 17, 39,180,234,140, 75, 10,230,141,158, 97, 9, 68, 13, 7, 37, 19, 17, 97,176, -131,133, 41,214,197,251, 50,219, 8,136, 59, 70, 22,225, 46, 39, 4, 39,150,190, 99,230,212,119, 41, 49,229,212,173,215,253,144, -211,208, 13,183, 15, 15,186, 46,247, 57, 31,172, 6, 78,105,189, 26,134,190,207,221,208,119, 93,183, 90,231,188,146,148,136,229, -104,125, 32, 41, 59,194,155, 15, 31,253,224,163, 31, 77,227,118,115,113,113,177,217,108,206, 47,158,159,157,188, 58, 62,249,230, -213,203,205,230,234,244,252,178,204,115, 53,219,205,197,171, 1, 97, 18, 70, 71, 98, 34, 66,172,230,130,168, 26,252, 74, 4,226, -112,158, 70,222,179,147,186,167, 80,112, 51, 21,179, 80, 50,129, 17, 48,154, 59, 82,236, 91,155,236,208,150, 31,203, 92, 35,163, - 77, 0, 1,136,110,226,197,224, 6,186,139,180,200, 79, 24, 29,141, 26, 60, 44,216,149, 55,250,118, 68, 68, 23, 64,116,171,238, - 64,204,170, 10,193,250, 1, 70, 2, 80, 5, 52, 3,250, 86,216, 77,168, 85, 9,128,152,151,104, 57, 0, 55,116, 39, 76, 49,221, - 5,141, 23,131,150,207,207,220, 75, 68, 52,186, 26, 2, 1, 51,184,130, 57, 49,152, 49, 58, 80,242, 27,109, 88, 51, 20,169, 26, -152, 1, 3,144, 99,149,166,114, 33, 92,200,201,112, 3, 10, 67,230,136,165, 14,161, 17, 18, 96, 83, 70, 54, 36, 27,186, 69,104, - 71,236, 71,130,157, 9,234, 36,172,177,206,130,197,217,122,131, 31,139,196,154, 24, 93, 49,199,206, 1, 35,199,104, 65, 7, 99, - 11,188,162,200, 21, 88,210, 55,226,166, 68, 47, 58,207,229,171, 95,254,249,167,159,125, 41, 57,247, 4,243,190,140,211,140,224, -132,124,241,228,235,187,135,183,193,253,197,233,235,253,180,119,135, 98,150, 8,205,125, 54, 80, 53, 20, 40, 69,193,189,235,134, -148, 18,177, 18, 50, 1, 22,213,105,156,162, 6,170,181, 24, 88,159, 7, 97,217,207,163,186, 77,134,185,203, 89,168, 86, 29, 58, -102, 22,117, 21, 17, 53, 45,117,222,237,170,130,154, 66, 45,165, 84,251,224,251,223,253,173,223,252,145,142,219,191,249,213,151, - 83,165,223,253,221, 63,248,232,147, 31, 51,210,217,201,139,175,190,250,252,233,211,231, 79,143, 95, 94,236,182,213,161, 2,142, - 87,215, 39,167,103,171, 46, 51,161,144,180, 36, 20, 55, 93,166,222,145,244,118, 99, 3, 23, 22, 68, 48,211, 36,105,201,189, 83, - 68,209,102,221,142,209, 37,249,162, 77,165, 56,238,156, 14, 86,221, 63,254,147, 63,250,223,255,159, 63,253,236,139,167,136, 7, - 63,251,187,127,244,201,143,127,231,254, 27,111,237,174,183,251,253,246,222,131, 55, 51,119,227,180, 19, 20, 71, 84,181,170, 21, -153,176, 26, 82,152,214,113,183,223,229, 36,224,216,155,185, 97, 16,157,204,129, 19, 89,243,139, 71,119,198, 0,198, 76, 6, 77, - 89, 28,247, 19,199,112, 48, 6,163,241, 73, 39,178,201,213, 52,150, 77, 99, 41,136,126,152, 86,202,232, 32,230, 74,206,153,211, - 52,239,107,181,106,181,162, 43,128,171,163, 66, 81,141,113,106,112, 75, 56,114, 95,155, 30, 43,244,137, 22, 98,118, 98, 1, 44, -129, 26, 39, 65, 7, 99, 36,116,143,180, 76,211,170,213,180,106, 16, 2, 29,221, 9,213, 53, 11, 49,146, 98, 5,160, 33, 9,163, - 42, 32, 58, 71, 73,238, 0,228, 6,238,156,196,172, 78, 83, 64,146,111,194,174, 9, 48, 60,158,205,243,101, 65,209,247,160, 50, -196, 10,177,233,230, 85,137,164,169,201,219,214,203,129,227, 35,112,207, 18,147, 69, 99,100,101, 4, 66, 7, 19,128,182,164,115, - 44,214, 64,205,140, 60,107,137, 31, 73,164, 25,183, 9,130,155,182,156,202, 54, 29, 70,226,182,225, 11,179, 32, 34, 49, 76,165, - 78,243,108, 1,196,210,154, 88,152,121,189, 90,173,251,174, 75,210,119, 41,231,156,187,180,202,185,207,121,200,121,181, 94, 15, - 93, 90,175, 86,235,190, 95, 29,172,130,179,192,156,239,220,189, 51, 12, 7, 8, 88,181, 2,178,164,116,247,141,251,119, 31, 60, -240,234, 63, 1, 55, 43,227,126,156,231,114,121,117,185,217, 92, 94, 93,110,142, 79, 79, 95,158,156, 62,125,249,242,228,236,226, -244,114, 51, 78, 83, 20,240, 36,108,224,130,132,140,113, 63, 45, 14, 98,136, 67, 52,130, 62, 74,109, 3, 29, 89, 64,130, 8, 40, - 68, 11,205,133, 28,156,188, 21,150, 49,101,139,185, 60,161, 67,176,135, 90, 43, 1,156, 36,166,243,137,152,163,173,138,201,116, - 28,236, 81,217, 18,163,105,169, 21, 91,134, 93,140,237, 20,195, 0,141,232, 54, 33,176, 1,121,128,245, 34, 33,137,200,220,153, -197,205,154, 27, 3,205, 85, 23,239,127,187,140, 45,104,201, 49, 14, 33,114, 85,112, 39,116,115, 52, 68,175, 74,216,164,144, 49, -211,162,144, 57,180, 23,191, 66,176, 13, 73,192,149, 24, 0, 73,171, 11, 64, 68,153,219, 18,153,181,160, 17, 2,220, 29,195,155, - 27,121, 0,222,180, 36,141,245,182,208,194, 41, 24,165, 49, 70, 15,107, 91, 67, 70,218,226, 0,163,230,132,128, 38, 41, 35,104, - 25, 77, 77,129,182, 32,103, 17,144, 33, 46, 70, 97,160,152,221,182, 89, 63,133, 30, 73,203,171, 23,143,193,234, 84, 76,213, 18, - 17,139,168, 57, 18,245,156, 75,153,111,223,186,245,144, 96, 42,117, 30,139, 67,115,138,207,165, 78,230,104,214,173, 58, 68,146, -224, 30, 97, 50,179,221,180,179, 98,200,236,142, 14,186, 26,214,171,110,152,117,154,230,169, 86, 69,194,148, 82, 98,206, 73, 8, -153,208, 13,161,148, 58, 78, 83, 81,173, 85,193,112, 53,228,183,190,115,247,131, 31,124,240,238,163,183,223,251,238,251,255,239, -191,249,183, 63,255,244,235, 55,222,250,222,207,126,246,135,247, 31,188,113,121,121,241,252,217,227, 47, 31,127,249,248,201,243, -211,203,215,103,103,151, 99,153,183,227,212, 19,226, 60,169,106, 74, 44,115, 60,161, 45,163,188,148,138,102,136, 80,204, 40,210, -175,154,199,143, 0, 81,193, 58, 64, 8,124,107,153, 24, 33, 39,170,166,238, 1, 92,137,150, 19,130, 42, 8, 64, 85,235,195,251, - 15, 62,254,232, 7, 10,248,195, 79,118,127,231,247,254,152,152,190,248,252,231,156,153,145,118, 87, 23,127,254,239,254,197,201, -171, 87,239,127,239,123,231,155,139,221,238,218, 81, 28, 17, 84,179,112,180,212,146, 18,206, 37,120,174,166, 86,162,250, 64, 7, -211,117,119, 48,169,109,199, 17, 16,144,165, 25,152,156, 66, 1, 69, 76, 84, 66, 1, 30,203, 72,160,229,160, 9, 98, 9, 26, 48, - 83,226,100,224, 99,209,161,106,192, 43, 8, 0,128,230, 50, 19, 81, 18,206, 57,117,156,138, 22, 7, 53, 52, 4,138, 3,190, 46, -185, 64,136, 24, 2,251, 88,143, 48,161, 11, 79, 85, 83,219,103, 66, 53, 37, 64, 65,172,213, 65,160,122, 21, 16, 7, 68,161, 37, -129,202,173, 24, 51, 90, 49, 23,100, 2,175,128,224, 67, 78,157,164,125,169,204, 8, 70,137, 96, 87,141,192,213,173,106,101,100, - 38,208,200, 45, 13,205, 7,133,166,195,170, 57, 1,168, 42, 0,166, 76, 96, 80,205, 58, 34, 17,132, 57,170,127,178, 72, 91, 10, -251, 58,144, 32,155,171, 45,216, 63, 48,104,174, 40, 68, 82, 47, 20,122,208, 48, 72, 32, 35, 36,225,170,238,160, 10,102, 0,140, -210, 18,145,155,149,188,129,158,111,184,221,130, 28,125,125, 5,167, 8,146, 79,204,222,236,154,128,230,224,213,180,104, 53, 3, - 7,155,198,145, 0,153,145, 56,245,125,238,146,112,112,238, 68,134,156, 82, 74,235,190, 63, 88, 13, 71, 71, 7, 7, 67,183, 94, - 31,158,158,190, 28,134, 33,119, 67,196,115,117, 93, 30,134, 30,156,115,215, 17, 11, 33,229,213,176, 90, 31,222,190,115, 55, 8, -248,213, 96,222,239,231,105,183,189,222, 94, 92,111,158, 62,123,241,242,244,228,217,139,227,215, 23,231,199,175, 47, 94,157, 95, - 68,184,146, 26, 9, 53, 76, 90, 40,241, 19, 67, 88, 53,132, 81,136,171, 86, 68, 32,194, 20, 73, 44, 17, 70, 68,120,147, 40,198, -141, 84, 24,228, 32, 52, 0, 14, 57,166,155, 35,170, 25, 49,113,131,226, 96, 78,172, 45, 78,202, 23,134,113,171,226,131,209, 27, - 80,129, 40, 8,128, 0,140,161, 97, 65,154,218,165,229,222,185, 18,182,176, 45, 22,114, 37, 85,109,235, 99,226,112,155, 55, 91, - 41, 81,208, 67, 90, 31, 28,154, 5,111,149, 81,112, 47,181, 70,187,128,213,144, 17, 53,242,170,204, 72, 24,128, 10, 40, 35, 7, - 67,200,221, 65,136,147, 8, 17, 54,185, 15, 97,211,171,132, 69,106,129,237,199, 94, 9, 2,251, 15, 30,233, 86, 77,210,190, 88, -162,226,235,113,129,249, 68,193,190,132,143,104,148,159, 45,180,199,173, 85, 66,110, 72, 76,148,227, 94, 92, 76,128, 49,225,191, -185, 58, 29,106,160,165,219,122, 25, 9, 41,229,243,227,159, 63,126,254, 82, 29,227, 5, 51, 32, 22,234,178,152,122,159,147,100, - 70, 55, 53,216,237,103,119, 55,175,234,110, 34,100,184, 62, 76, 17, 72, 49, 77, 19, 0, 86,175,117,170,101,156, 13, 16,208, 19, -146, 8, 13,253,138, 16,175,199,136,235,116, 97, 73, 89, 82,202,137,176,186,162,186, 90, 81,245, 88,192,190,253,157,183,222,122, -235,173,119, 31,125,231,209,163,119,190,243,240, 97, 55, 28,254,249,159,253,235,255,237,159,253,175, 87, 91,252,221,223,255,251, - 31,124,252,145,150,242,226,249, 55,199,207,158, 60,123,254,242,155,167, 79,159,159,156, 92, 94, 95,143,115,241, 50,157,159, 95, -222,187,125, 68,132,130, 72,190,180, 41,110,193, 23, 71, 70, 4, 98, 96,194, 57,145, 32,230, 96,239, 50, 3, 1, 8,210,108,154, -148, 16,157,132,201,205, 13,168,125, 52,128,142,230,192,200,184, 80,176,199,185,188,247,232,157,238,246,123, 31,252,228,173, 15, -192, 95, 60,123,252,111,255,236, 95, 50,165, 7,111,126,103,191,191,250, 87,255,230, 79, 9,169,147,180,234,134,239,190,247,221, - 95,252,226,231, 14,128,142,234,238,106,136, 52,149, 2,238,171, 46, 3, 17,152, 2,161, 56, 77, 53, 58, 80, 35,196, 94, 36, 26, - 97, 70,106, 88, 56, 52, 64,137,237, 37, 54,194,115, 32,106, 29, 1, 57, 84, 93,216, 44, 90,236,177,175,129,170,102,110,137,210, - 52,149, 74, 34,174,213,177,204,165,203, 29, 18,205, 90,201,191,165,203,198,120, 54, 56, 71,181,121,208,140,137, 67,221, 24,226, - 20,170,106, 28,118, 84, 10,148, 49, 39, 9, 9,252, 18, 44,217, 34,126,208,111,104,124,158, 4,157, 44, 92,154, 44,108,230, 99, -153, 29,169,153,196, 69,176,204, 72, 45, 36,220, 12, 12, 45,146,234, 8, 64, 29, 98,247, 83,106,141,111,187, 86, 75,137,193,201, -172,106, 85,167, 4,109,183,231, 17, 62,201, 20, 22, 9, 50,115, 64, 35, 36,213,182, 81, 32,102, 98, 14, 51,160, 3,146, 97,157, -103,179,138,144,131,222,179,204, 83, 33,117, 92,180, 68,218,178,162, 49, 50, 24,152, 35, 52, 91,174, 7, 64, 56,230, 73, 10, 30, -159,132, 81,117,227,130,232,176, 68, 77, 88,108, 29,201,201, 24, 89, 34,207, 32,165,177,214,185, 96, 53,215,221,190, 99, 41, 86, - 50, 51, 16, 49, 75,159,211,170,239, 87, 67,119,208, 15, 7, 7,195,106,232,134,110,232, 36,113,146,190,147,156,250,174,147, 62, -119, 73, 18, 11, 15,235,149,112,150,148,136,115,206,132,144, 88,100, 37,135,235,195, 59,111, 17,127,240,193, 71,228,182, 31,199, -221,118,187,217, 94,191, 62,191,184,188,220, 60,121,241,252,244,252,226,122,187, 59,191,186,222,239,167,253, 60, 86,211,162, 96, - 6,106,234, 0, 73, 8, 64,136, 82, 80, 43, 34, 30,189,160, 34,128,196,254,201, 1, 16,133,168, 90,108, 91, 64,150, 21, 46, 17, - 9,177,153,133,228, 12, 96, 33, 96, 97,155,237, 45, 27,164, 37,181,193, 35, 0,189,113,162,218,151, 3, 97,152,219,160, 5, 76, - 89,219,232,146, 59, 68, 30,113, 51,101, 0,152, 26,130, 3, 50,160, 11, 80,117,107,163, 9,102, 86,119,110,100, 98, 36,116, 69, -175,113, 90, 54,131,149,187,215, 82, 89,210,183,243,109, 10,254,170, 75, 12,175, 20,221,193,188,136, 18,152,137,199,227,205,228, -166,128, 76,139, 50,184,109,161, 27, 70,167,193,219,190, 37,138, 53,229,145, 7, 21, 18, 29,136,184,165, 43,181,214,102, 49,158, -181,196,113, 6,114, 88,240,128,113,113, 32,177,164, 28,122,136,184,139, 99,137, 71,230, 72,201,173,132, 15,243, 70,214,138, 14, -200,172,181,170, 78,183, 14, 15, 55,215,251,253,126,156,203, 92,107, 40,112,153, 5,175,167,110,232, 82, 41, 87,175,175,174,171, - 43, 90, 16, 1, 67,125,203, 72,153, 25,139,214,170, 74, 8,251,221, 56, 77, 83,117, 0,128,196,204,201, 51,115, 85, 43,101,106, - 3,100, 48, 17,202, 89,180,214,205,126, 86, 83, 65,236,251,244,230,253,187, 63,252,240,163,159,254,206,239,124,247, 7, 31,215, -105,203,156, 16,241,223,255,217,191,250,226, 87,191,122,118,124,241,157,119,222,255, 71,127,240,199,221,176,222, 92,158, 93,158, - 29, 63,127,252,228,155,103,207,190,122,250,236,197,201,217, 56,207, 86,244,122,187, 57, 90,245, 44, 40,194,166,206, 72, 36,100, -136,146, 90,190,149, 57,148, 90,197, 57, 72,167, 41,230,110,238,166,198,129, 97, 37, 12,196,146, 8,171, 66, 2,156,230,162, 86, - 1,169,170,102,136,137,135, 26,180, 66, 16, 9,126,248,209,199, 51,201,211,103, 95, 62,127,246,245, 95,252,213, 95,215,121,255, -206,219,143,142, 14,142, 62,251,244,175, 94,190,120,241,232,209,163, 97,232,137,249,173,251,111, 92, 60,120,243,236,242, 28,118, - 38,196, 69,103,145, 62,130, 39, 17,157,212,136,136,128,170,169, 16, 4,175,168,154, 38,201, 68,228,224,213,205,209,153, 57,144, - 46,141,213, 23,214,133, 24, 14,180, 16,238, 72,214,132,234,150, 76, 25,113, 50,205, 64, 76,116, 61,142,135,136, 97,106,139, 90, -136,144, 12, 92,205, 84, 45,167, 36,200, 68,162, 62,131,130,113,188, 75, 16,100,172,170, 45, 48, 20,151, 49, 35, 34,219,188,100, -196, 46,161, 81,113, 44, 38, 78, 22, 65,141,205, 53,233, 8,136,194, 30,130,238,155,228, 64, 4, 71,163,120, 81, 9,196,209,204, - 2, 69,128,134,140,130,137,104, 12,194, 53, 27,129, 25,144, 99,151,115,169, 5,192,154, 43, 31,121,154,103, 2, 72,188,100,158, - 16, 32, 48,121,147,146, 34, 2, 9,183,238,184, 41,131, 61, 2,183, 35,215, 20, 22,231, 61, 73, 66, 47,110, 74,145,167, 8,168, - 97,146, 69, 66,224, 86,183, 42, 50,123,133,136,148,111, 59,132, 26,224, 19,112, 95, 34,250,144, 48,200,230, 16, 97,120, 26,155, -191, 22, 95, 25, 90,146,224, 45,148,128, 59, 32, 18, 65, 85, 3,212,121, 42,202, 58,142,211,229,110,116,132,163, 97,117,112,216, -175,251, 85,151, 83,159,115, 78, 28,137,116,189, 36, 97,238,115, 94, 13,253,170,239,147,112,215,247,135,221,208,117,169, 27,114, - 78, 61, 49,231,174,235,187, 78, 56,115, 78, 11,225,157,214,195,122, 88,175,222,122,240,150,153,254, 12,126,199, 74,221,238,119, -187,235,237,213,118, 60, 61,127,117,118,113,249,234,236,252,213,217,217,171,215,175,167,221, 84,204,107,169, 85, 11, 0,115, 66, - 71, 23, 97, 50, 90,118,206,128,224,196,228, 8, 34, 82,107,141, 9,179,129, 5, 75,199,192,235, 52,249,162,244,178, 22, 10, 16, -138,117,108, 34,109,167,248,131, 16,151,255,211,104,198, 24, 3,108, 3,163,156, 96,137,154,102, 55,211,106, 80,193, 35, 54,189, -213,254, 68,161,186, 66, 39, 0, 36,171,222, 76,251,132,232,160, 80, 17, 82,132, 95, 70, 76,200,141,112, 62,182,236, 78, 56, 23, -195,106,204, 36, 76,106,102,166,129,110,247, 37, 8, 29,221,201, 17,205,160, 22, 89, 52,187,186,100, 34,195,146,157, 71,110,218, - 46,177, 16, 40, 45,109,202, 13, 40, 51, 56,246, 45,154,181,101,105, 69,245,111,191, 70, 60, 0, 71,242,198, 75,107,203,230, 32, -213, 97, 48, 32,144, 34,200,165, 41, 94, 91, 55, 96,203, 28,185,233, 70,155,182, 20,220,173,158,156,158,157, 92, 92, 9,128,176, -184,131,214, 49,240,126,196, 82,180,150, 93,157,199,253,229,213,182, 17, 57,213,153,129,129,164,203,128, 56,105, 85,173,227,126, - 52,247,237, 84, 45, 2, 16,136, 14, 14,214, 67,223,153,154,154,166,148, 23,153, 40,149, 82,166,105, 74, 73,134,220,191,247,238, -219, 63,253,201, 79, 62,250,232,163,219,119,239, 29,221,190,173, 36,175,158, 63,203,196,147,109,255,236, 79,255,207,207,126,241, -183,235, 91,111,254,193,223,251, 71,239,125,247,251, 69,203,217,139,167,175, 94, 61,121,241,226,213, 23, 95,125,243,245,179,103, -231,219,171,113, 63,127,231,222,157,205,197,197,181, 57,162, 4,200,218,106,204,193, 48,120,138, 45, 3, 60,254,234, 28, 98, 80, -118, 66, 9,116, 13, 68, 66,119, 24, 27, 80, 88, 70,157,106,213, 33,119, 10,174, 22, 68, 67, 68, 98,175,102,174,110,238,142,102, -112,184, 94,191,253,230, 27, 47, 30,127,250,213,151,191,124,249,252,249,135,143, 30, 12, 57,175,110, 61,156,116,126,250,252,133, -147,151,121,222, 19,247, 93, 62, 88, 29, 60,124,240,240,245,229,165,185,107,169,147,170,176, 1, 98,177,218, 33, 21,119,114, 27, -186,172,181,201,174,212, 65, 13, 4, 97,149,211,118, 42, 13,226,132, 64, 76,141,122,234, 81,190, 16, 51,151,144, 73,182, 90, 20, -153,136, 96,113, 96,151,234, 57, 57,250,126,154, 9,168, 75, 82,180, 38,226,224, 96,187,163, 32,207,141, 27,111, 49, 20,117,188, -209, 48,196, 99,103,173, 91,185, 41,120, 16, 45, 58, 60,187, 57,232,176,133, 73, 26,170, 22, 98, 81,117,171,170,234,138,142, 0, -218,158, 68,172,173, 14, 50, 0, 76,146,144,121, 30,107,173,154,136, 28, 41, 10,179,218,118,221,165,106,141,240, 38,152, 1, 29, -212,109,174,133, 0, 29, 8, 93, 37, 69,143,225,234, 96, 0, 41,164,244,230,180, 56,223,185, 49,171,188,225, 9,137, 98,132,175, - 8, 72,216,165,180,155, 39, 85, 21, 78, 96,115, 32, 6,110,118,134,170,150, 16, 42, 49, 33, 72, 64,126,192,155,218, 30,192,105, - 17,229, 47, 57,166,204,225,113, 15, 84, 26, 91,219,109, 9,136,217, 28,153,124,236,168,205,170,105,200, 24,152, 95, 37,230, 46, -231,185,106,172,171, 75, 85, 17,100, 34, 55, 45,170,103, 85,181,214,169,175,225,204,236,187,156, 18, 35, 80, 4,164, 8, 19, 17, -102, 73, 57,165, 46,167, 85,206, 41,165,126,200,235,126,232,186, 60,116,125,159, 19, 3, 96,238,250,148, 36,194, 78,186, 60,116, - 61,178, 32, 18, 75,252, 98,215,175,214,247,136,222,211, 71,115, 41,155,171,203,113,183,175, 90,231,185, 92, 94, 95,158,190, 62, -127,117,118,113,242,250,108,187,223,239,199,105,183,223, 79,181,132, 93,153,152, 32, 32,180,192, 76,136, 34,165, 22, 71,230,196, - 68, 24,254, 79,166,182,250,158, 77,209, 13,204, 9, 2, 0,185, 56, 66,233,134, 65,115, 35,233, 84,184, 33,209,199, 4,128,170, - 27,186, 57, 97,219,163, 64,139,138,197, 16, 57,199, 64,178,241, 72,109,113,252,181,165,177, 1, 16, 16, 35,178, 91,245, 27, 22, - 11,115,187,225, 27, 17,166, 69,224, 56,128, 43,104,211,222,131, 59, 88,213, 72,102, 55,231,170, 21, 93, 1, 65, 90, 77,141, 72, -204, 30,138,131, 5, 16,130,209,140, 99,172, 82, 99,120, 67,205,166,106,182,120, 86, 9, 99,185, 76,116, 67, 87, 88, 20,149, 75, - 11, 13, 10,106, 55, 94, 3,136,206, 28, 16, 9, 35,162,215,108, 94, 92,143,203,246,191, 49,229,155,133, 21, 29, 92, 45,118, 14, - 93, 63, 28, 30, 12,125,146, 59, 71, 71,166, 90, 77, 17, 96,156, 39, 36,210,106,238, 32, 41,111, 46, 55, 87, 83,205,136,197, 12, - 25, 17,180,154,237,118,251,185, 94,101, 97, 68,154,213,118,211,232, 14,125,215,221, 59,186,221,245, 9,137,208,161, 98,181, 82, -231, 82,193,161,154, 30, 12,253,155,111,220,255,248,195, 15,126,242,227, 31,223,191,127,255,240,246,209,176, 62,208,234, 70,248, -252,233,147, 97,117,132, 96,191,250,235,191,248,197, 47, 62, 61,187,216,253,224,147,223,255,248,147,159, 14,171,213,118,119,125, -117,250,242,248,213,179, 79, 63,251,252,139,199, 79,142,207, 47,199,253,126,183,219, 94,109,118,223,127,112,239,217,184, 85,112, - 32,207,194, 12, 88, 21,162, 76, 99,164, 68, 84, 98,113, 14,102,213,156,216,220, 56,110, 57,194,161,235,218, 80, 2, 80, 67,245, - 4, 22,214,205,128,189,138, 96,153, 27, 11,136,200, 67,164,133, 0,238,250,224,238,189,219,195,208,247,233,183,126,240,193,227, - 85,247,240,193,157,127,255, 55,191,120,248,189,183,182,219,205, 79, 63,249,237,111,190,249,162,212, 57,107, 46,165,100, 73,111, - 62,124,227,228,236,228,229,217,169,122,101,164, 82,212, 77, 9,160, 70, 94,135,182, 71, 55, 28,186,166, 26, 26, 62, 97,206, 82, -139, 3, 3, 48, 32,152, 35,146, 32, 2, 82, 85,107,110,212, 5,245, 7, 13, 68,228,145, 46,239,136,234,106, 36,232,110,128, 87, -227,136,216,103, 33, 67,220,207,133,137,170, 1, 16,218, 60, 71, 43, 92,172,130, 27, 19, 53,226, 69,108,116,154,154, 26, 8, 97, -154,231,185, 86, 9, 66,177,131, 87, 51, 7, 19,101, 70,195, 54,135,172, 85, 19,179,185,106, 85, 68, 39,247,190, 75,165,170,131, - 33, 80, 60,151, 72, 80,107, 29,107, 61,224,100,224,148,144, 72,204, 45,178, 40,173,214,102,161, 5,208,170,130, 75,105,239,110, -170, 10,102,166, 20,121,238,228,166, 80, 93,209,219,110,193, 91, 39,237, 13, 99, 69, 12,209, 53, 24, 58,122, 52,189, 81,231, 16, -160,112,138,156,100, 95,252, 34, 76, 64, 68,174, 26,191,221,192,137,168,106, 1, 67, 74,124,131, 89, 9,251,212, 66,124,197,152, -139, 70, 20, 30, 44,208,143,200,161,246,150,121,225,106, 10, 33,149, 10, 6, 32, 0, 53,168, 47, 55,109,191,121, 85,141, 19,206, -220, 8,254,127,166,222, 44,230,178,236,186,239, 91,195,222,251,156,115,239, 55,213,216, 53,117,117, 23,123, 96, 15,156,154,148, -154, 52, 69,137,140, 34, 89,163,165, 64,136,148,216,112, 98, 35, 1,132, 0, 1,140, 32,121,201, 75, 94, 2, 4,240,107,134,183, - 0, 2, 12,219, 72,140, 4,118, 98, 57,138, 68, 77,148, 41, 74, 28, 76,154,166, 66,182,122,238,170,238,174,233,171,250,230,239, -222,115,246,222,107,173, 60,172,125,190, 38,186,208, 15,141, 66,117,213,173,115,247, 89,251,191,254,255,223,159, 90, 51, 6, 51, - 51,139,138,136,156, 74,166, 64, 82, 36, 70, 78, 33, 16,227,106,181, 38, 98,255,252, 23, 49,245,139, 46, 16, 5, 14,125, 23, 83, -136, 41,165,141,161, 75, 41,165,232, 51, 60, 96,224, 33,117, 41,134,141,229, 50,246,105, 72,125, 23,135,152, 56,164,238,224,232, -104,127,127,255,202, 19, 79,220,188,121, 35,134,136, 76, 68, 65, 85,107, 41,165,150,211,213,122,119,247,209,201,201,225,193,209, -241,254,209,209,222,254,193,238,254,193,254,193,193,148,115, 22, 29,167,177, 40, 84,133, 72, 76, 72,204,236, 23, 52, 78, 6,136, - 49,114,206,138, 64, 70,172,136,213, 29, 49,136, 13, 17,215, 82,245,138,198,128,136, 20,218,231, 70,205, 20,104, 34, 45,145,161, -213, 99,183, 32, 70, 1,219,110,166, 21, 84,121, 59,145, 53, 71,189,103,140,212, 16,217,204,107,144,230,142,105,108,185, 78,112, -208, 77,123,117, 3,241,172, 63,178, 49,162,138,169,136, 35,108,172,250,123,165,165,141, 12, 33,152, 91, 74,125,226,249, 49,198, -165,155,239,157,254,224,125, 89,126,212, 58, 14,109,190, 71,250,128,222, 32, 60,103,152,183,230,128,179,102,126,108, 56,130, 6, - 26,155,171,187,189, 63, 93, 4, 64,230,247,137,139, 88, 98,170,128,179, 81,167,237,150, 13, 24,137, 73,106, 85,179,235, 55,158, -140,223,253,193,253, 71,143, 13,112, 49, 12, 23,206,109, 93,186,116,145, 1, 57,112,191, 92,162,232, 95,189,246,250,198, 73,175, - 96, 84,164,130,212, 92,171, 65,223,165,205,141,101,206, 50,150,113,149,167, 46,118,139,161,223, 88, 44, 76,245,232,244, 84,106, - 69, 4, 81,116,142,202,243,183,110, 62,247,212,205,151, 63,253,201, 23, 95,250,100, 55,244,211, 52,229,113, 13, 28,149,195,131, -247,223, 89,108,158,235,151,203,187,239,191,245,214,143, 94,187,115,231,222,114,251,234, 47,252,234, 47, 63,113,245,137,213, 42, - 31, 29,238,157,236, 63,122,239,189,119,127,248,250,235,183,239,222,203, 42,227,122,212, 50, 89, 21, 3,165, 16, 58, 78,135,211, - 81,201,213, 19,244,138,218,136, 69,160, 28, 56, 23, 4,179, 24, 34, 34,176, 25,130, 23,241,176, 78,121, 17, 35, 19,250,198, 92, - 77, 1, 73,149,192, 32,132, 0,168,204,228,199, 3, 1, 17,130,104, 69, 0, 10, 20, 98, 16,179, 39,175, 92,221,220, 90, 90, 76, -112, 98, 67,215, 49,210, 43,159,250,137,184,185,253,225,221, 59,183,158,121, 97, 88,108,148, 50,149, 16, 40, 12, 68,125, 71,195, -173,167,159,190,115,255,222,241,209, 49, 4,238, 35, 50,115,215,245, 37, 79,145, 8, 8,214, 83, 97,196, 34, 74,132,145,153, 57, - 0,145, 86,141,204,164, 86, 69, 33,160,154,145,170, 16, 53,187,140,105, 11,244, 32, 84,213,128,132,161,157,245, 6, 22, 3,229, - 9, 80, 12,169,229, 76,143,198,105, 49,116, 12, 72,136,235, 41,175,199,154,171, 94,218,222, 80, 81, 85, 43,185,213,194,121,161, - 18,158, 61,108, 4,205, 91,205,129, 85,192,196, 31, 82, 53, 0,194,169,148, 92,100, 72, 48,137,153,163, 12, 68,171,152,248, 68, - 33, 90,160, 86, 85, 36, 43, 82,171, 59,156,145,209,192,148,198,162,170,218,121,149,152,153,122, 34, 15,128,144,165, 86, 36, 52, -119,180,155, 1,162, 0, 24,178,104,102,128, 64, 84, 76, 74,177, 24, 81, 43,170, 25,113,112,190, 74,160,153, 20,110,224,181,233, -218,180, 19,144,217, 62, 89,205,198, 41, 11,181, 33,160,152,170, 40, 0,130, 43, 65,136, 6, 48,169,129, 72, 21, 85, 53, 66, 5, -195, 8,168, 51, 24,196,203,122,136,192,172,154,121,192, 8, 16, 28,157,137,228, 0, 0, 48, 49, 19, 81, 39,177, 41,128,187,213, -102,209,138, 60, 2, 38,128, 10,200, 76, 85,140, 16,177,130, 85,175,109,171, 0,177,154,138, 86,223, 13,146,215, 73, 58,116, 9, -160,150,154, 75, 17, 25,171,234,233, 84, 16,161, 99,222, 90, 46,140, 99, 32,244,100,114, 66,142, 28, 98, 10,125,234, 82,224, 20, -152,163, 95,138, 56,134,208,119, 93,159,210,176,236, 4,232,248,232,248,202,197,115,227,201,226, 94, 25, 67,232,250,190, 95, 46, - 54,251,161,163,148, 22,177, 59,183,115,254,234,213,107,181, 10, 24,148,156,205,106, 45, 50,230,188, 26, 79,243, 52,126,120,239, -225, 95,191,247,238, 59,239,221, 57, 56, 60,200, 69,213, 84,154,232, 66,128,136,200,169,163, 98,101,150, 68,196,196,144, 3, 27, - 74,123, 88, 9,145, 20,102, 59, 84, 11, 98,181,154, 17,103, 21, 89, 85,207,111,121,242,209,154,235,209,115,160, 86, 85, 26,150, -151,208, 7, 8,100,179, 98,226, 3, 10, 17, 3, 25,145, 83, 31,204, 8, 64,220,150,128,102, 14, 55, 84,164, 90, 36,240,217, 37, - 21, 60,245, 6,228,125,233,134,100,236,249, 88,113, 23,103,195,222,184, 27, 93,125,113,235,101,167,103,130, 9, 0, 2, 27,233, - 28, 4, 68,244,106, 7,247, 98, 99, 91,200,182,127, 33,179, 63,185,243,127, 52, 34,244,216,246,220, 44, 77, 90, 42, 68,155, 1, -113, 49, 32, 1,161, 57,229,192, 42, 84,197, 64, 31,189, 51, 8,193, 64, 68, 13,176,150,178,117,238,226,114,115,145,213,114,145, -147,213,234,228,244,164,139,253, 98,209, 41, 64, 8, 92,171,189,183,251,240,222,238,158, 39,252, 93,233, 76, 49, 84,178,253,189, -195, 85, 25, 3,113, 23, 83,138, 73, 85, 31,237,239,231, 82,212,172,235,210,197,157,157,231,110,221,124,250,214,205,207,124,242, - 51, 55,159,190,149,250, 84,204,166,213,180,127,184,175, 85,250,229,166, 2,222,127,255,131,205,243,151,215,235,211,111,254,197, -159, 61,188,119, 47,215,240,212, 75,159,251,212,167, 63, 27, 98, 56, 57, 57, 57, 61, 57,218,189,123,231,173,183,222,122,253,221, -247,246,143,143,166,154,115,206, 7,143,119,183, 54, 22,165, 86,100, 38,164,173,173,173, 71, 71, 39,204, 20, 42, 68,138,163,101, -255,150, 82,104, 32, 38, 81, 43,181,228,154, 99, 76,171,169, 46, 7, 70, 36, 5, 68, 14,203,190, 19, 83, 3,255,139, 48, 14, 64, - 66, 2,192, 10,203,110,113,202,167,185,120, 24, 3, 9, 67,151, 12,193,138, 8,152,221,188,121, 29,152, 85,229,228,248, 52,117, -195,198,246,230,202, 22,167,185,174,215, 99, 63, 12, 59, 91, 91,251,251,187,139,110,168,165,148, 88,134,110,216, 88,110,189,240, -236,179,223,252,238,247,242,148,193,176,239,250, 82, 4,137,200,154,213,137,252,193, 51, 16, 53, 21, 5, 53, 10, 36, 89,134, 62, -173, 86, 35, 2, 38,142, 99,201,137, 73,114,169,162,136, 32, 96,243,196,104,234,200, 61, 50,173, 78,191,182, 10, 0,222,160,134, -128,136, 99,201,227,148,185,239, 87,211,116,114, 58,114,224,245, 52,238,238,203, 88, 13, 9,157,188, 8, 58,155, 67, 90,187,131, -122,173, 50,154, 97, 84, 82,175, 19,109, 88,119,247,236,159,142,171, 69,159,136,217, 20, 48,180, 10, 38,240,148,134,146, 33,121, - 29, 19, 4, 91, 79,197,251,160, 19, 33,128,121, 95,121, 45,106, 96, 72,152,136, 68, 32, 4, 32,107,212,120, 85, 45, 34, 6,202, - 16, 26, 57,157,200,192,136,130,230,214,154,233, 53, 93,129, 73,196,102,216, 82,147, 49,219,103, 9,136,170, 30,133, 53, 49, 5, - 64, 54, 99,212,170,142,209, 7,195,153,166,173, 2,144,152, 65,132,192,140,200,181, 21, 83, 32, 68,101,242, 24, 21,184,177,218, -107,164,145,154,150,224, 34, 60, 0, 34, 8,104,128,128, 0, 12,192,212,108, 21,179, 73,186, 17, 97, 61, 70, 32, 96, 80,197,131, -233,166, 82, 85, 20, 72,153,102,227, 53,154, 25, 49,171,154, 48,165, 16,106, 45,129,189, 45, 4,137,130,155,117,221, 12, 2, 0, -162, 80, 68,160,148, 85, 21, 3,228,192, 17, 48,164, 20,188,237,135,200, 43,207,250, 46,116,177, 15,140,204,236, 21, 17, 69,181, - 15,241,116,181,186,247, 96,111,177,236, 23, 93, 55,120, 8, 43,165, 97,185, 12, 33,109,108, 44,186,110,209,197, 33,116, 97,216, -232,145, 34, 18, 16, 32, 6,234,210,240,138,232, 47,214,124,124,116,116,122,122,242,240,241,238,163,221,189,123, 15,239,223,127, -244,104,247,209,254,241,233,169,152,228,226,110, 37,194,166, 15, 55,108,187,203, 22, 31,201,215, 86, 93,136, 80, 69, 17, 1,246, -208, 15,162,143,227,234, 55, 47,183,160, 16,225,220, 12,228, 84,122, 64, 69,191, 48, 33, 32,105,109, 27, 22, 51, 69, 99,161, 74, -129, 33,207,240,225, 38,142, 32, 24,144,145, 89, 5,176,216,113,235,125, 50, 35, 95,242,138, 48,176,239,219,180,121, 33,205,204, - 2,121, 99,224,204,181, 62,163,152, 57,242,161, 89,101,230,173,250, 89,187, 30,186, 92,101,106, 10,200,216,168, 82,106, 64, 72, - 30,175,105, 56, 1,105, 13,136,142,249,157,243,200,166, 2,212,140,165,132,145,187,222, 97,111, 20,135, 58,174, 64,213,130,192, - 71,114,144,183,166,159, 97,152,173,223, 60,247,236,179, 79,255,209,159,125, 39, 34,230, 90,166, 41,175,242,158,152,118, 49, 2, -218,193,209,106,204,121,204,213, 7,127,246,223, 17,193, 88,115, 21, 93,244, 61, 3,137,234,225,201,169,104, 61,183,181,249,226, -205,235,207, 61,251,220,203, 47,189,248,212,199,158,222,217, 62,199, 49, 18,197, 92,166,211,131,131, 90, 42, 35,244,203,205,227, -195,189,213,209, 81,236,187,245,233,241,234,232,240, 47,190,254,181,135,123,167, 79,221,250,248,103, 63,249,202,229,171, 87,180, -148,195,189,199, 39, 71,123,247, 63,184,243,250,155,111,189,119,255,254,106,189,158,166, 92,214,171,142, 3, 24, 16, 49, 51, 67, - 41, 85,100,174,108, 86, 3, 8,228, 93, 87,160,214,118, 97,162, 21, 25,167, 49,151, 90, 77,211, 88,242,114, 57, 48,128,136,136, -106,100, 14, 20,192,128, 3,250, 34, 62,112, 12, 64,165,148,192,204, 33,154, 76,202,164, 38, 41, 80, 12, 72, 72,104,214,247,221, -173,155, 79, 2, 19, 25,158,174, 86,139,205,205,126,177, 44, 43,235, 88,175, 94,189,190,216,220, 89,110,110,191,127,247,253, 29, -201, 54, 66,225,152, 56, 4,230, 27, 87,174, 93,189,252,193, 59,239,191,111, 49, 33, 96,150,156,136, 38, 51,118,204,128,128,131, - 33, 43,129,138,230, 60,161,104,138, 41, 16,134, 64,109, 97, 9, 64,136,130, 24,252,203,210, 70, 73, 83, 5, 83, 80, 18, 51, 46, - 42, 0,182,104,133,234,218,130,181, 8, 36,118,178,158,138,143,123,140, 0, 32,170,199,211,218,249,138,126,248, 18, 35, 43,206, -194, 94,235,133, 86, 0, 67, 72,126,211,116,239, 45, 97, 96, 80, 63, 89, 16, 68, 13,205, 98, 64, 51, 8,236,105,219, 80,173,136, - 74,138, 44,134,213,193, 15,238, 57, 65, 82, 39, 60,169,115,228,155, 28,132, 76, 56,195,117,136, 2, 81,105,119, 98, 55,127, 25, -145,161,137, 50,162,170, 22,169, 49, 4,247,222,160,130,231,212,129, 19,149,181, 52,128, 95, 59, 79, 85,221,242,172,224,183,126, - 53,171,146, 33, 19,147,123,172, 26,179,219, 20, 48,186,129,116,222, 71,180,254,132,102, 77,214, 54, 93, 82, 96, 45, 5,196,113, - 33,228, 40, 24,117, 25,118,102,255, 21, 85,102,178,143, 82, 60,174, 46,195,220, 61, 11, 16,253,134,174, 28, 8,170, 49,218,186, - 26,184,133,217,183,228,170,110, 54,244,229,191, 19,170, 13, 64,212,237, 43, 13, 92,228, 88, 72, 1, 33,135, 72,160, 2, 82, 10, - 88,205,220,195, 87,179,151, 44,219,186, 86, 38,204, 85, 85, 37,134,144,186,212,197,216,197, 16, 83, 66,131,190,227,253,227,163, - 46,198, 52,116, 29,115,223,245,125,159, 82,136, 27,139, 97, 72,221,114,232,251,190,239, 98,183,216, 88,196,148,250,174,143,169, -139, 93,191,185,185, 81,115, 53,192, 16,195,114,251,220,230,185, 11,215,158,188,165,181,138,212,113, 28,143,142, 15,247,247,247, -247, 15, 14, 15,142,246,119,119, 31, 98,191,121,120,188, 70,176, 16,152,153, 28, 91,211, 28,101,141, 29, 22, 28,235,142, 40, 70, -174, 73, 43,216, 44,226, 32,152, 17,181,180, 65,235,101,163, 70,241,194,134, 19,243, 22, 60, 85, 66, 18, 84, 4, 67,140, 70,134, - 76,132, 84,161, 54, 3,142, 53, 60,229, 25,185,161, 57,246,253, 96, 3, 49, 48, 98,140, 20,164,170, 2, 48, 32, 18, 5, 34, 21, - 65,166,208, 98,194, 38, 54,163,115,220, 51,237,135,126,179, 43,254,120,223, 96, 91, 83, 17,124,180, 61,248,104, 42,104,177, 44, - 59,107,228,112,199,100, 64,146, 89,194, 98, 48,109, 65, 14, 64, 52,197,192,196, 4, 34, 24, 98,236, 7, 45, 89,107, 54, 32, 5, - 65,199,141,249,114,164, 58,223, 16, 9,169, 27,134, 11, 59, 23, 98,236,151,139,197,149, 33,109,116, 49, 79,101,148,188, 26,235, -123,119, 63, 16,145, 46,112,100,246, 82,217,192, 76, 33,212, 92,142,199,124,186,158, 96,140,145,124, 70,241, 9, 0, 0, 32, 0, - 73, 68, 65, 84,233,242,249,229, 75,207, 61,245,249,207,125,238,147,159,250,204,133, 11, 23,185, 11,136,193,204,114,201,164,128, -108,134,150, 87, 99, 72, 41, 12,221,193,238,131,216, 15, 93,138,239,191,247,222, 95,191,254, 67, 93,143,213,250, 87,255,198, 23, -158,125,254, 5,238,120,125,116,116,116,176,127,184,255,248,221,247,222,121,247,253, 59,251,199, 39,121, 42, 82,202, 56,174, 8, - 20, 9, 82,224,200,212, 7, 94,137,157, 73,165,162, 80,139,204,150,126, 64, 0, 98,116,195, 25, 33, 2,210, 60, 15, 58, 15, 67, -205,205,181, 0, 28, 8,157, 71,130, 4, 64,160,158,138,131, 16, 40,198,128,140, 0,204,142,117, 70, 52, 0, 5,221, 26,134, 39, -206, 95,208,170, 38,120,114,124, 60,108, 44, 98, 76,108,143,233,248,136, 48,254,201,239,253,239,180, 62, 90,244,189,170, 89,208, - 41,143,204, 33,133,180, 88, 44, 95,124,238,227,183,239,221,171,181, 34, 35, 1, 36, 14,185, 86, 21, 21,239,124, 0, 27, 82,152, - 86,133, 16, 2,113,198,194,104,129, 83,138, 82, 1,179,151,107,136, 3, 91,216, 7, 13,155,241,239,216, 38,111,119,229, 98,253, -136,147,126,230, 30,161,169, 86, 47, 73,240,149, 14, 51,129, 18, 5, 58, 89,175, 87,171,156,186, 48,191, 68,218,178,255,172, 84, -217, 76, 75, 21, 16, 83, 2,149, 51, 11, 24, 68, 78,203,110,225,219,165,172, 22,208, 16, 24, 68, 25,131, 89, 14,115, 0,157, 1, -181, 10, 6, 79,149, 66, 8,172,181, 34,179, 2,136, 25, 59, 81, 67,212,189, 38, 85,196,157,112,206,232,243,218, 11, 98,247,226, - 33,114,152, 74, 65, 0,102, 18,105,208,226,162,181, 84, 81, 45, 56,127, 67, 60,230,205, 8, 0, 22,128,156,186, 80, 84, 1, 13, -153,252, 68,175, 38,140,108,109,183,142,162,170, 89,176, 65,182, 1, 12, 74, 41, 4, 32,164,196,172,181, 17,230,231,130, 19,108, -133,232, 31, 85,228, 72,104,142,127, 72, 68, 76, 92,154,247,200,121,226, 51, 82, 4,144, 61,199,211,176, 11, 8, 45,123,196,117, -173, 72,140, 10,226,110, 40, 17, 39,185,231, 82,218,201,101,192, 12, 96, 86, 12, 52,215, 90, 4, 9,202,172,236,139,129, 9, 9, - 40, 53,110,163,187, 69, 5, 49, 17, 3,136,248,211,158,139, 20,209, 34, 58, 81, 94, 14,139, 40, 58,149,146,214, 33, 48,187, 50, - 17, 3,197, 20,186, 24, 83,136, 30,194,234, 82, 26,186,174,139,161,239,135,161, 31,250, 46,110, 44, 23,195,208,111, 46, 54, 66, -234, 66,228,161, 31, 82, 26, 66,138, 93,191, 96, 14,169,235, 54,134,197,198,185,243,151,175,220, 80,201,160, 54,214, 58,141,235, - 7,251, 43, 1, 69,212,104,171,229, 16, 83,196, 46, 68, 10, 24, 8, 84, 81,124, 53,217, 74, 95,125,250, 36,115,132,128, 79,190, - 0,170, 78,188,157,115, 76,224, 93,118,164, 34,126, 82, 34, 6,195, 98, 96, 76, 84, 69,144,140,128,180,152, 56, 80,167,122,207, -163,249,243,214,108,252, 30, 70, 53, 99,102,213,230, 58,246,153,155, 24, 77, 26,100,173,148, 66, 8, 38, 16, 0,205,164, 52, 30, -153,219,166, 4, 40,204, 85,184, 28, 64,218,209,143,179,231,221, 37, 54,215, 76,188,160,206,128, 77, 5,145,193,140,168,209,224, - 41, 18, 33,214,226, 10, 59,250, 29, 4, 65, 90,248,101, 54,227,104, 45, 0, 29, 14, 29, 99, 66,107,247, 93, 3,241,203, 17,250, - 13, 88,221,203,213, 58,166,191,243,245, 63,254, 39,255,219, 63,255, 96,239,120,209,199,190, 31,182, 55, 23,125,140,162,117,255, -240,120,181, 94,249, 37,177,133, 97, 5,114,173,117, 53, 78, 83, 57, 93,175,171, 64,223,197,223,254,207,254,246,151,191,244,133, -237,243, 23,185,235,215,167,167,211, 56,214,169, 96, 0, 98, 98, 12,128,160,117,170,181,164,229, 50,246,195,222,253,123, 91,231, - 46, 20,149,175,127,253, 79,198,211,147,211,211, 92,113,249,202, 23, 63,123,229,202, 53,131,122,116,112,124,116,240,248,195,247, -239,220,253,224,206,155,239,127, 0, 2, 67,162,213,241, 88,107, 61, 61,205, 27,125, 56, 29,215,185, 10, 24, 22, 67,138, 28, 99, -152,114,110, 17, 1, 39,216,182,173, 23,184, 0,114,182,153,142, 33,136,170,154, 33,177, 58,170,199, 4,209,136,208,225,203,196, -164, 0, 20,121,145,186,147,211,245, 56,142,193,209, 87, 6,238,181, 5, 69, 32, 20,160,107, 23, 47,158,223,217,230, 16,179,148, -113,156,128, 8, 57,112,234,227,144,167,147,227,144, 15,111, 92,222, 1,182,135, 7, 71,129, 67, 45,181,134, 41, 32, 83, 76, 87, -175, 92,254,212, 11, 47,188,249,238,187,196, 0,102, 49,242, 98, 24, 20,237,232,248,100, 42, 18, 41, 4, 74,219, 11, 50,196,170, - 26, 66, 36, 0, 53, 75, 33, 5, 67, 1, 67, 9,100,234,183, 46, 6, 40, 98,103, 81,106, 59,219,216, 56, 70, 64,181,182,193,160, -165, 36, 16, 77, 76,146, 49, 32,154, 87,189, 35,100,173,137,162,153, 26, 9, 26,131,170, 17,219,204,167, 6, 3,242, 53, 63,243, -114, 99,227,224,232,144, 17,144, 64,197,103,198,112, 86,243, 8, 8, 37,103, 69,234,135,174,102,169, 82,204,212, 20, 74,206,234, -121,116, 2, 84, 82,109,213,196,128, 64,106,171, 41, 99,128,200, 9,152,165, 72,223,241,148, 53,198, 88, 69,156,129, 32, 13, 38, -131,193, 25,168, 98,142,142,226, 64, 17, 81, 12, 85, 0, 64, 3,114, 5,173,106, 78,120, 85,171,168,209, 12, 74, 21,117,174,121, - 53, 0, 76, 72,147, 40,134, 16,124,208, 5, 86, 53, 86,169, 14,155,103, 53, 0, 32, 7,112, 10, 26,136,148,158,147, 81,176, 70, - 54, 52, 4,159, 38, 28,119,166,228,122,171,218,143,117,216,121,188,172,101,125,221,225,102,179, 81, 14, 26,174,167, 69,229, 67, - 72, 51,226, 79, 83, 12, 49,176, 95,233,189,196,195, 91, 79, 13, 64, 85, 9,168, 50,138, 65,154,239, 1, 78,143, 10, 76, 69, 20, -196,136,221, 99,225,130, 20, 40,130,170, 17,161, 26,154, 21,117,199, 54, 57, 3, 94, 17, 3, 0,138, 26,177, 17,154, 86, 85, 50, - 13, 52,173,166,169, 78,206,102, 88, 14,131, 2,214, 34, 67, 23, 98,140, 93, 74, 49,112,100,238, 83, 74, 41,246,125, 55, 12,253, -198, 98, 99,209,197,190,235,151,139, 97, 99,185, 57,244, 41,164, 52,244, 67, 23, 83,236,251,174,139, 28,250, 16, 34, 49, 15,203, - 97,177, 92,218, 5, 43,181, 74,214,211,233,244,184,200,116,184, 98,172,129,172, 75, 76,104, 41, 80, 0, 8,193, 2,161, 2,163, -136,187,104, 85, 42,152, 63,173,174,206,179,169,205,182, 25, 66, 82, 40,254,140, 59,207,178, 52,184, 37,160, 47,114,125, 91,219, -162,235,124, 86, 60,101, 20, 72,205, 64,218,246,141, 40, 52,114,157, 49,153, 99,201,218,137,215, 18,174,110,200, 7, 11,190,212, -117,137,199,107, 71,126, 44, 60,130, 42,245,172,213, 9,200, 95,249,190, 5,118, 77,161,189,146, 64, 60, 8,127,150,199, 5, 1, - 72,203,142, 82,210, 71,135, 31,197,161,156,207,143, 60,247,122,184,226, 35,150, 43, 45, 55, 67, 72, 82, 39,205,197,196,165,127, - 68, 48,213,218,186, 83,196,186,197,178,172, 79,254,213,239,254,222,159,252,249, 55,223,120,255, 94, 8,233,250,133,115, 67,207, -187,123,143,214, 83, 77, 41,113,160, 24, 34, 1,100,147, 44,181, 78, 53, 4,222, 30,250, 7, 7,107, 5, 74,221, 48,112,248,123, -255,241,111,254,230,111,254,135, 39, 99, 62,157, 38, 91,143,181,102, 4, 98,138,104, 8,130, 2, 21,212, 56,134,245,225, 94,183, -220, 62,125,120, 63,198,240,206,219,111,188,241,195, 31,140,171, 41,246, 91,151,175,223,122,230,185,231,187,110,200,227,250,244, -244,104,239,193,253, 59,183,223,189,125,247,222,238,227,199, 23, 46,236,252,242,151,191,120,184,247,240,159,253,203, 63,150, 22, -119,103,191,161, 3,129,204, 8,105, 63,238, 17,177,235,152,155,105,205, 98,160,234,121, 22,175,190, 33, 66,162, 34,210,224,213, -237, 44,244,240, 46, 48,130,170, 56,195,107, 42, 82, 72,151, 67, 7,132,165, 40, 52,246,121, 11,239, 40, 40,170, 94,127,226,210, -176, 88, 2,112,169, 39,235, 60,185,121,137, 57, 46,150, 27,235,245,234,217, 23,158,123,231,173,119,158,121,234,169,189,147,215, -196, 52, 49, 77, 37,135, 16, 82,133, 62,245,159,124,241,229,156,203,131,199,143, 17, 3, 34, 86,173, 93, 76, 23,182,183,198, 90, -199,245, 58, 75, 97, 36,119,242, 32, 98, 35, 5, 17,110,117,139,163,113,157,157,148, 81, 52, 48, 86, 5,102,211,218,158,152, 24, -147,255, 97, 34,243,164, 69,213,220, 10,233, 16, 68, 4,164, 64,226, 55,133, 51, 59,151,226, 56, 21,167,180,183, 64, 3,243, 92, - 12, 65,160,154,107,113,110,177, 84, 89,141,167, 45, 11, 46,149, 17, 77, 8, 16, 68,140, 25, 66,224,128,152, 11, 24, 88, 45,162, -106, 82,213, 11,175,252,227,102, 34,169, 16, 2,120,139,152,169,137, 89, 8,205, 1, 15,140, 86, 4, 25, 69, 32, 75,217, 14,132, - 8, 35,181,110, 73, 96,215,143,177,148, 98,104, 6,148, 2,213,138, 58,151, 32,128, 66,136,113, 90,157,142, 37,119,204, 51, 64, -219,175, 32,104, 85, 49,249, 9,172,196,104, 85,129,180, 84,224,192,102, 38, 82,115, 21, 55,211,177, 18, 2,155,170,129,154,106, - 98, 54,138,226, 62, 59,153, 41,232, 6,128, 26, 17,149,168, 74,235, 66, 6, 80,155,193,181,224,140,243, 86,155, 77, 74,134,115, - 6,199,124,231,235, 95,117,228, 64,168,222,249,192,205, 13, 29, 56,148, 90,141,176,168, 85,133, 24,217,239, 90,204,232, 94, 88, -149,106,192, 70,205,253,205, 72, 4, 20,129,178,170, 18,249, 75,148, 42,198,192, 42, 85,196,140, 80,196, 2,187,133,202, 39,128, -179,151,141, 33,128,138, 82,236, 1, 10,113, 3, 24, 6,102, 85, 53, 83,169,146, 69, 15,142,143, 3,211,162,239, 2,115,145,202, -196, 93, 8, 33,134, 24, 99,223,167,101,215,167, 46, 49,113,159, 82,223, 58, 78,226,214,114, 57, 12,253,114, 88, 14,139,190,239, -250,141,197,178,235,251,152,186, 20, 35,167, 62,198, 46, 48,239,108,108, 2,162,200, 54, 0, 86,209,146,203, 84,166,147,117, 70, - 19, 21,141,164,129, 17,161,166, 0, 12, 76,224, 55, 11,100, 12, 4, 34,160, 0,232, 73, 14, 5, 53,191,236, 1, 32, 96, 45,202, -158,160,101, 86,135,109, 32, 3,212,118, 19, 21,109,189,211, 1,139, 2,250,192, 79, 72,110,160,243, 73,170,153, 12,145, 61,199, -174,224,179,181,223, 42, 60, 31, 23,126,124,159,226,179, 82,243,235,195, 89,161,161,157,225,225,177,149,192,105,123, 28, 63,202, - 93, 0,249,123,218, 35,209, 98,132,152, 87, 25, 86, 69,177, 81,213,154,162, 32, 45,166,217,206,108, 83, 0,168, 83,134,184,158, -100,146,113,173,146,141, 0,129,193, 23,173,102, 0, 12,148, 22, 27,139, 58, 30,255,238,191,248,231,191,255,245,111,223,223,125, -244,228,149, 75, 87,207,157, 83,162,191,251,159,254, 39,122,248,224,247,254,240, 15,127,248,206,135, 53, 67, 45,202,140, 12,112, - 97,123,249,241,231,158,121,229,211,175,188,244,242,203, 95,251,131,127,245, 59,255,215,159, 46, 22,139,197,114,241,179, 95,249, -153,195,227,163,169, 40,130, 6,198,237,157, 29,173,178, 30,215, 90,107,173, 37,164,168, 98,199, 71,135,181, 76,125,205,143,247, - 31,223,187,115,103,117,114, 20, 49,225,246,185,143, 61,247,210,197,139, 23,145,104,117,122,116,184,247,232,238, 7,119,222,185, -243,222,189, 7,187, 99, 41, 95,248,220,167,127,246,167, 94,125,226,242,133,175,126,245,171,134,152,124, 86, 36,208, 42, 76,196, -110, 90, 7,231,245, 75,203,143,207,165, 98, 42,128, 64, 41, 80, 0,118,174, 3, 49, 70,226,117,173,244,145,169,180,137, 26,158, -130, 39, 98, 81, 3,130,192, 92, 74,166,212,153,128,168, 34,145,103, 36, 35,205, 17, 74,132,103,159,190,153,186,142, 67, 24,167, -105, 53,174,201,147, 21, 72, 16,121, 88, 12,100,112,237,169, 27,111,252,232,205,203, 91,155,247, 14,142,186, 5, 33, 96,174,165, -235,122,100,234,251,238,229,231, 95,122,248,237,111, 0, 97, 8,193, 12,198, 60,109, 44,150, 9, 33,103, 46, 42, 33,134, 64, 84, -196, 84, 37, 49, 3, 34, 41, 12,125,199,132,235,113,116,204,104,187,233,213,179, 10, 6, 21,169,134, 24, 76,153,153, 77,209, 95, -131, 70,232, 70, 99, 68, 2, 71,235,121, 57,152,170,138,197, 96, 42,243, 42, 10, 25, 60, 15, 98, 4, 8,106, 76,220, 69, 20, 17, -151,114, 24, 40,144, 91, 29, 0,136,141, 10, 54, 62, 27,149, 82, 67, 12,102, 86,155, 69,193, 16,160,138,197, 72, 14,253,225,200, -193,247,215,134,102, 80,197, 84, 84,201, 8, 64, 21,173, 42, 7, 42, 5,138, 84, 52, 44, 69,192, 32,113,168,156, 85, 17, 20, 24, - 13,145,156,201, 14, 6,162,202,204,173, 50, 4, 17,136,178, 72, 41, 5,206,112, 82, 51,105, 91, 93,181,182,182, 11, 3, 38, 3, - 9,196, 98,213,185,208,162,162,166, 82, 21, 0, 42, 88,136, 0,132, 80, 27, 80,176,197, 88, 68,146,251,246,154, 3,143, 16,200, - 64,208, 67,195,115,131,181, 41, 40,250,250,167,109, 0,213,144,180,253, 76,223, 82,179, 2, 2,198, 0, 62, 48, 82, 96, 6,204, - 42, 96, 38, 34,213, 0, 56,200, 56,249,197,159, 80, 3, 55,194, 41, 19, 86,169, 85,180, 75, 4, 6,206,143,137, 41,168, 1, 6, -244,152, 76,195,178, 83,131,254,180,158, 44, 70,102, 34, 51,113, 49,246, 44, 85, 67, 13,189, 76, 14,240,111,155, 29,159,135,149, -208, 87,130, 54,247,131,130, 34, 76, 99, 1,203,107, 64, 12,206,105,212,190,239,134,126,240,237,151,147,241, 67, 8, 93, 8, 41, -121,182, 54, 13, 67, 90,246,195,230,230,198, 48,116, 27,253,114,177,232, 67,136, 33, 82,138, 67,236, 98,215, 59,165, 34, 14, 67, -183, 92,110, 35, 50, 82,144, 50, 22, 17,171, 50,150,241,184,228,105, 26, 29, 19, 23, 73,186,200, 41, 2,145, 5,162, 64, 32, 82, -124,155,104, 6, 94, 4,198,132,160,100,100, 90,107, 51,197,107,171,243, 64, 67,116, 11,141, 35, 3, 20, 5,209,179, 90,214, 32, -148,142,105,129,121,187, 47,132,200, 1, 76,156, 63, 8, 38, 18, 40, 32, 67, 0, 51,138,140,181, 45, 93, 0, 20,136,144,192,155, - 43, 85,219, 11,216, 31,186,217,158,239,221,194,243,171,105, 94,188, 54,245,198,171,254,128, 65,180, 89, 34,129, 0,213, 13,181, -224, 94, 76,192,179,254, 64, 3, 83,168,117,125, 10,106,134, 98,173, 48,170,130, 54,242,188,106,237,135,205, 59,111,254,232,119, -126,231,159,124,239,245,183,158,122,242,234,111,255,194,111, 97, 89,255,213,155,183,127,229,215,126,253,197, 23, 62,206,225,147, - 31,127,229, 39,111,191,249,218,201,193,241,122, 28,179,212,237,157,115,183,158,123, 97,231,220,185,106,134, 72,191,242,171,191, -252,151,223,251,193,107,239,239,165,190,207, 57,199,116, 65,117, 84, 51,205,229, 95,252,254,255,253,236,115,207,191,244,194,173, -131,131,227,197,214, 14,167,248,240,246, 59, 59, 23,174, 96, 56,247,253,191,248,250,238,195,187,169,235, 67,218,216,216,185,126, -253,230,173,141,205, 69,158,198,253,189, 71,187,247,239,190,251,214,155, 31,220,191,187,127,188, 58,191,179,241,247,255,214,175, - 62,243,244,211, 83,206,121, 42,227, 52, 25,114, 76,168,160, 96, 54,141,217,123, 56, 75,206,129, 90, 70,128,145,152,112,156,154, -129, 34, 50,133,200, 72, 28, 18,139, 24, 34, 34, 82, 85,143, 76,183,207,160,249,144,192, 35, 47,115,150, 29,140,137,187, 20,213, - 12, 24,106,173,126,102, 4, 38, 17, 1, 11,165, 26, 1, 62,113,241, 98, 26, 6,128,224,165, 43,226, 68, 42, 4,164, 46,117,253, -201,225,254,229,243, 23,118, 47, 62,188,254,196,181,227,215,254,250,100, 61,110, 14,139,105,189, 74, 49,109,198, 24, 67,186,252, -196,249,171,151,158,120,244,120,223,196, 60,236,105,166, 33,196, 20,226,209,170,244, 1, 13,136, 35,104, 49,245, 71, 4, 96,170, - 83, 31, 82, 23, 35, 48, 69,211,140, 12, 80,207, 34,207,158,123,149,106,150,130, 35, 50,201,188,208,238,163,174,221,179, 55, 96, -155,108,137, 93, 14, 78,196,110,169, 60,235,107,112,155, 54,162, 49,160, 17, 33, 3,136,170,104, 43,253, 48, 83,169,168, 58,215, -232, 40, 0,213,246, 52, 27,128,198, 64, 38,140,156,189,111, 47,134, 96, 94,155,224, 55, 81, 49, 13,134,132,126,248, 34,129,170, - 41,180,208,122, 8,140, 8,185, 10, 16, 17,113,151,226,170, 28, 85, 64,209, 82,107,112,100, 68,235,174,119, 75,107, 81, 96,212, -154,205,128,153, 60,133,164,230,110, 71, 84, 19,255, 77, 53,154, 92, 51,174, 0,121, 81, 23, 65, 12, 92, 49, 16, 3,122,221,132, - 2,205,221, 56, 2, 72,158, 68, 71,223,145,178,153,128, 26, 50, 97,109, 20,147, 54, 43, 56,223, 48,251,118, 22, 65, 45, 6, 36, - 67, 85,209,217,191,224, 5,135, 24, 60,223,101,236, 59, 0, 53,138, 12, 80,137, 41, 79,197, 68,196, 45,170, 51,183,146,136, 9, -160,138, 68,142,168, 10,103,211, 31, 57, 77, 22, 69,107,201, 10,228, 46,192,150, 89,156, 11,189, 92,179, 64, 0,168,214,204,209, -158,128, 86, 51,171,198, 78,214, 69,240, 48, 67, 34,133, 0, 30, 3, 50, 49,140, 6, 77,239, 68, 81, 97,114,137,207,207, 25, 64, -130,170, 42, 85, 78, 78, 87, 68,148,107,206, 85, 35,113, 63,116,151,206,109, 33,176,128,197, 64,145, 99,140, 33,133,212,199, 24, -187,180,236,251,237,205,173,229, 70, 63,196,142, 3, 35, 66,228,216, 47,210,178, 95,246,139,126, 88,116, 41, 45, 23,139,205,148, -122, 94, 14, 75,221, 70,132,170, 57,231, 98, 85,199,156, 75,205, 39, 99,145, 50,197, 72, 68, 18, 48, 37,200,204,254, 7, 33, 13, -168, 89,208,154,175,169,129,230,164, 69,158, 68,149,144,188,207,171,149,224, 57, 54, 1,154,149,211,204,206, 18,166,109, 4,242, - 93, 41,182, 34, 17, 23,111, 81, 41,168, 87,125,160,255,186,194,254, 41,214,150, 29,197, 25, 91,216, 32,144,243,187,125,110,183, -108,149, 86,115, 60,206, 87,178,132,238,134, 52,108, 47, 19,152,205,252, 60,199,154,170,156,109,131, 1, 16, 60, 99,210,194,138, -132, 40, 14,200,157,123, 92, 8, 1,203,250, 56,245,241,191,254, 7,255,197,173,171,151,239,222,187,247,228,211,207,253,194,175, -157,239,134,110, 92,175,213, 86,204,233,233,151, 62, 27,157,173, 8,102,138,162,117, 53, 77, 82, 11, 17,109, 93,185,245, 15,254, -243,191,243,223,252,247,255,227,233,234,244,255,253,227, 63,253,236, 39, 95, 42,130,159,251,220,103, 36,223,251,199,255,244,159, -246, 59,151,255,167,255,225,191, 91,110,109,173, 87,167,135,239,221,223,190,244,196,219,111,191,254,163,127,251, 29,102,190,112, -254, 34,198,157,107, 79, 63,191,177,185,137, 96, 7,251,123, 7,251,143,239,222,121,239,237,247,222,185,247,112, 87, 84, 94,125, -229,147,127,243,103, 94,221,216,220, 90, 79,197,212, 44,161,168, 34, 64,136,140,128, 82,235,106, 53,213,118,238, 89, 8,196, 68, - 69, 20, 8, 57,132,144,170, 19, 5,129,177,148, 42,110, 51,197,214,199, 85,205,205, 3,142,140, 80, 5, 19, 80, 16, 52,160, 92, - 74,149,138,216, 57, 11,105, 72,105,204, 18, 56, 0,130,152, 36,138,236,145, 52,194, 44,229,252,246,206,205,235,215, 49, 68, 35, -242,121,149,137, 0, 8,144, 17, 45,164,190, 31,134,227,189,189, 39,175,221,184,127,255,193, 79,188,244,241, 63,249,246,247,106, - 21, 99, 90,175, 87,139,126, 48, 3, 19,252,204, 39, 62,241,198, 59,111, 3, 40, 65,244, 45,110, 36, 90, 19, 45,187,164, 42,235, -177, 50, 3, 83,224,192,101, 42, 28, 89,115,181, 62,244,125,183, 90, 77, 14,200,117, 82, 47,153,103,107,124,156, 0, 48, 99, 10, - 49, 4,127, 13,183, 64,135,129,154, 34, 82,138,129,145,138, 8, 32,170, 88,129, 26, 2,197, 46,194,169, 87,120,205, 17,144,185, -212, 91,125,152, 48, 36,192, 82,179, 9, 24, 65,160,160,104, 21, 49, 48, 57,102,151, 16, 34, 81, 49,245,174, 15, 19,169, 82,217, - 67, 32, 64, 98, 42, 34,179, 82,239,100,142,143,186, 99, 77, 13, 2, 4,223, 55, 68,102,230, 42,165,170,106, 85, 1, 68,173, 4, -172,162,162, 21, 12, 8, 65, 90,234, 16,173,168, 21, 53, 50, 96, 38, 14, 63, 6, 88,242, 36, 3,144, 59, 60, 17,193,196, 9, 31, -170,138,128,165,138,235,117,165,228, 90,164,148, 60,229, 9, 48, 32,182,214, 89,108,162,138,123,215, 12, 69, 20, 98, 35,135, 96, -115,196,129,153,137, 90,160,102, 90, 51,210,179,148, 13,145, 10, 84, 80, 81,117, 0,149, 57,181, 6,140,252, 31,157,213, 90, 48, -166,198,171, 51,132,192, 44, 50, 19,148, 1, 65,161,138,132, 24, 92,208, 71, 34, 7,110,183,242, 57,103, 99,182,208, 2, 55,254, - 56, 16,162,162, 42,152, 19,244, 76,171,112,138,238,181, 63,235,144,240,151, 56, 49, 19,133,162,170,106,165,136, 74,145, 86,188, -225,230, 90,109,233, 47,104, 8, 73,231, 46, 82,211, 32, 56,144,231,129, 49,197, 40,106, 1, 39, 36,132,170, 0, 84, 76,173,202, - 56,214, 72, 4,136, 83, 41,155, 41,254,250, 87, 62,151, 49,221,125,240,120,255,160, 76, 66,102,150,186, 20, 57,116, 33,118, 41, - 12, 67,223,245,221, 34,166,229,114, 99, 88, 14,142,200, 31,150,155,129, 83,215,247, 41,198,174,219,100, 14, 64, 40, 34, 42, 90, -107, 45,181, 20,201,171,156, 81, 4, 64, 8, 20, 13, 9,148,164, 32,149,198, 45,168,138, 72,100, 6, 4, 34,218,162,163,190,180, -213, 51,129,254,172,107,188, 77, 27,230,109,213, 32,179, 17, 1, 12,140,220,118,105, 18, 60,209,214,100, 76, 36,243, 48,147, 57, - 89,179,133, 85,189,182, 4,129,253,252,118,138, 72, 43, 74,161,134,158, 60, 75,132,159, 21,188, 54,195,101,107,150,247, 34, 10, - 3, 32, 19,223,156,180,222,173,185,175,182,109, 22,253, 91, 1, 30,216,111, 96, 32,155,214,171,103, 94,126,245,191,125,225,149, -191,126,237, 7,247,119,247, 95,254,244, 79,110, 44,135,170, 50,142,147,183, 18, 87, 44, 58,213, 2,100,166,200, 33,116, 61, 96, -226,224,206,127, 57, 62, 58,124,230,149, 47,253,214, 47,127,247, 31,253,238,159,255,254, 31,253,241, 31,126,245, 15,179,216,171, -159,127,245, 23,191,252,234,149, 39, 46,221,123,116,244,143,255,217,255,249, 91,191,254,139, 23,111, 60,253,232,254,251,223,253, -203, 63,189,255,225,189, 39, 46, 95,234,250,115,221,246,149, 75, 79, 92,235,250,174,150,114,240,248,193,189,123,239,223,190,253, -222,238,227,199,123,135, 39,215, 46, 95,248,229,159,251,210,179, 31,187, 89,170,230,162, 78,196, 68,179, 82,106, 10,148,115, 77, - 41, 36,194,172,245,172,101, 48, 48, 25, 88, 41,237,238,201,173, 65, 17,180,150, 24, 67, 3,255,155, 34, 82, 23, 66, 36, 86,212, - 62,244,129, 99,169, 83,104, 95, 16, 99, 4,171,194,205,160,107,102, 54,149, 82, 69,137, 33,133,120,108,107, 5, 19,149, 62, 6, - 38, 86,213,203, 23,207,159, 63,183, 35, 83, 33, 2,198, 48,229,105,115,103,203, 84, 65, 77, 16, 8,121,216,216,180, 90,203, 84, -164,212,229,230,198,243,183,110,190,115,251,195,197, 98, 89, 76, 79, 86,171, 24, 34, 18,239,108,109,253,244,171,159,255,198, 55, -255, 98,123, 43, 54,245,192, 32, 32, 64, 8,129, 40,151, 34,106, 8,213,170,155, 45, 96, 18,149,245,180,209,119, 57,231, 50, 9, -249,133,147,192, 61, 26,230,136, 20,176,113, 44, 33,250, 24, 73,128, 21, 20, 20,154,255, 29,205, 59,136,173, 93, 37,153, 0,141, -209, 57,122,168, 8, 10, 16,230,154, 75, 34,246,206, 25, 19, 80,118, 86, 95, 40, 50,169, 0, 70, 34, 79, 85,181,251, 99,123, 84, -221,196,227,140, 86,105, 59, 68, 48,192,192,172,136, 80,108,102,216,168, 8,169,153,170, 32,177,182,154,224,198,171,100,162, 92, - 85,179, 0, 66, 32, 46, 82,189,140,147, 57, 80, 64, 18, 82, 21,100, 16, 5, 37, 85,246, 29, 43, 16, 49,205,236, 67,111, 74,246, -111,107,169, 10, 34,149, 24,209,178, 42, 97, 8,204, 14, 58,103,162, 92,203,152,199, 92,171,168, 17,123, 2,201, 47,206,216,240, -147,165, 26,154, 40, 16,104, 83, 7,207,112,164, 45,173,138, 17, 24, 84,193, 85, 43, 5,211,202,177,243, 83,180, 81, 74,253, 92, -197, 89, 70, 69, 52,102,127,206, 98,100, 64, 44,165,118, 41, 65,107, 28,157,155,127, 8, 0,173,170, 52, 10, 35, 34,128,149, 70, -196, 68, 64,114, 88, 5, 51, 17, 18, 83, 69, 68, 82, 84, 95,181, 16, 11, 84, 81, 0,226, 6,253,113,190, 2, 34,136,186,127,158, -185, 25,233, 69,106, 27,100,165, 86, 17,108,165,135,164,222,129,171,166, 86,129,146, 17,241,172,107,185,132, 65, 45,253, 6, 48, - 43,165,208,168,194, 36, 85,171, 40, 24,184, 48, 82,115,205, 50,254,212,167,159,187,122,235,217,245, 52,174,199,114,122,188,126, -184,247,248,195,135,251,123,135,167,123,251, 7,187,143,243,186,136,153,197,212,117, 41,244, 93,183,217,247,195, 98, 88,246,125, -223,165, 97,177, 92,244, 93, 76,221,114,177,164,190,235,187,129, 41,246,125,223,117, 11,224, 77, 19, 99,131,177,142,106, 88, 74, -169,146,167, 34, 90, 39, 68,144, 58, 89, 89, 71, 54, 68, 75,232,208,117,243, 59, 93,179, 45,169,129, 10, 4,114, 52,142, 65,115, - 34, 25,176,104,109,101,115,158,178, 82, 80, 85, 36, 2,162,128,128, 69,132,137,153,169,170,128,130,170,178,211,149, 13,124, 89, - 67, 62, 96, 40,152,168, 57,132,221, 90,119, 54,158,189, 5, 26,150, 20, 26,239,114,174, 69,129,179,194, 66,151, 25,208,218,143, - 25, 23, 14, 14,178, 35,112,158,131,186, 6, 68,193,177,213,136,132, 70,156,210,241,241,254, 15,190,251,189,141,157,115,159,251, -201, 87, 13,235, 84,203,204,198,153,111,158, 94,206, 24, 6, 32,103,181,144,212,104,160,104,102, 90, 86, 99,249,165, 95,253,141, -239,252,240,141,187,143, 86, 28, 35,146,125,251, 91,223,250,254,191,249,158,129,113,160,127,251,253, 31,156,219,217,250,248,173, - 15,238,190,247,218,176,216,186,126,243, 41,142, 59, 91, 23,175,158,191,120,145, 0,215,167, 71, 15,238,222,126,231,157,183,111, -127,248,225,222,254, 33, 16,126,254,149, 79,252,252,151,127,114,115,115,123, 61,121,105, 17,181,148, 31, 65,158,166, 24,226,225, -201, 90, 85,226, 48,152, 41,187, 85, 0,204,251, 67,166, 60,133, 46, 34,162, 84, 11, 33, 40, 32, 83, 64,226,200, 65,181,130, 98, - 96,114, 87,104,136, 36,210,212,217,234, 14, 86,244,190, 48, 43, 85,212,140, 1, 35, 51, 50, 30, 29,158, 94, 46, 59,232,188, 67, -116, 53, 27, 66, 32, 51,187,184,115, 46,198, 80,242,180, 30, 79,246,246,119,223,191,123,119,235,194, 19, 59,151,119,238,221,185, -131,200, 64,132, 16,226,198,210,224,244,227, 47, 63,255,253,239,255,224,202,249,115,239,222,249,176,214, 26, 82, 55, 78, 99,138, - 9,204,166,105,122,230, 99, 79,223,127,240,225,238,238, 94, 86, 97, 33,226,192, 28,170, 76, 10,132,196, 82,115, 31, 98, 11,214, - 2, 35,192, 88,166,190,227,154,101,202, 25,200,133, 83,252,104,199,167,170, 38, 89,129, 25,125, 34, 97,102,255, 25,238, 65,100, - 66, 84, 50,240, 64,157, 87,240,144, 17, 73, 85, 69,136,115, 13,152, 63,128, 14,109, 2, 85, 10, 96, 98, 30,162,159,125, 71,222, - 75, 57,183, 53,207,221,237,162,115,108, 17,155, 3, 65,205,136,152, 17,115,123, 29,107, 35,234,177,247,142, 49,128, 16, 50,219, - 28,212, 2, 64,194, 68, 93,145,181,181, 22, 40,152, 59,229,209,249, 22, 64,126, 86,138,123,164, 4, 32,130,113, 83,164,244,163, -248, 31,162,106,157,239,187,138,192,206, 77, 65, 38, 70,100,166,106,170,138,235,105, 34,112,142,136, 1, 67, 8, 81,212,121,136, - 13,166, 70,212,250,212,200, 26, 49,202,212,245, 89, 52, 20,132,208,228, 44,112,203, 49,169,130,128,249, 16,222, 12,203,237, 80, -215,143,216, 53, 6,140,200,196, 34, 66,136,129, 57,134, 16, 57, 76, 86,218,155,190,217, 94, 3, 25, 76, 83, 81, 80,238,153, 12, -144, 40, 24,152, 33, 35, 4,100,116,148,184,153,127,193,209,213, 52, 80, 52,227,118,247,159, 75,239,230,238,103,159,242,108,126, -167, 58,245,147, 9,165,106, 76,177,193,149,206,196,131,234,114,131,153, 40,177, 54, 44,168,191,223,212, 0, 41,163,133,179, 44, - 60,249,219, 17,230, 93,189, 54,184, 21,232,208,119,160, 80,170, 76, 89,170, 90, 63, 12,203,141,141,235, 79, 94,121,197, 84,173, - 78,171,233,248,116, 58, 60, 57,121,180,119,252,225,195,199,199,199, 39,187,135,235,119,246, 30, 49, 16,135, 24, 99, 92,116,221, -194,219,202,151,139,148,226,144, 82,223,117,203,205,229, 98, 24,210,176, 72,161,139,169, 15, 93,159, 98,232,187, 4,184,129,128, - 34, 86,107, 45, 82,242, 84,171,140, 83,169, 71,199, 7, 90, 39, 64,136,100, 41, 98,112, 8, 49, 35, 4, 0, 52, 45, 2,166, 72, -212, 80, 4, 88,207, 42, 0,219,180,220, 4, 31, 3,128, 0,136,204, 76, 68,126,115,159, 9,115,220, 70, 35,156,231, 29,153, 93, - 59,218,218,151,124,213,238,113,190, 51,111,109,251, 63,209,252,138, 4, 35, 10,205, 86, 43, 98,118, 6, 28,155,127, 7,168, 72, -212, 26, 16, 68,103,205,198,213,212, 38,189,246,203,197,157,183,223,124,251,173,183,158,121,241, 19, 79, 62,121, 45,143, 43, 95, -214,158, 81,233,231, 87, 10, 35, 48,119, 29, 84,209, 42, 6,162,102, 4,164,136,104, 92,166,245,112,254,210,223,255,143,126,243, - 31,254,207,191,179, 22, 93,164,196,220,155,217, 84,242,141, 27, 79,126,229,179,207,125,255, 7, 63,250,179,127,253,173, 95,249, -247,254,198,206,133,235,214,111, 95,190,116, 61,245, 73, 74,126,252,104,247,253, 59,111,191,249,246,219,247,118,119,143, 78, 86, - 79, 95,187,250,115, 95,249,252,167, 95,122,174,212,114,186, 58, 37, 10,115,166,205,119,100,178, 94,143,200,188, 92, 14, 71, 39, - 71,181,202,233, 58, 15, 93,231,238,211, 20,152, 9, 77,133,160, 99,226,214, 96,228,141,110, 78, 89, 3, 82, 53, 36,244,122, 7, - 12, 4, 94,107,197, 8, 98,232, 41,149,192,222, 63,153,115, 65,194, 46, 69, 70,220, 24,122, 96,170,181,133,142, 20, 32, 48,130, - 97, 49, 91,110, 44,106,173,167,235,227, 71, 15, 31,188,245,238,237,199,135, 7, 8,244,196,141,155, 15, 62,188, 75, 76, 42, 80, -115, 9, 28,180, 11, 96,112,225,220,249, 71,187,123, 23,183, 54, 31, 31,175,153, 43, 48,143,101,138, 28, 0, 56, 97,248,244,203, -159,250,218,159,255,185,100,169, 38, 68,152,107, 33,196,113, 26,183, 55, 55,145, 81,234,156, 53, 2, 52,208, 24,120,154, 74,107, - 66, 96,140,214, 40,218, 8,173,141, 26, 12,171,213,226,216,237, 90,141,216,137, 67,220, 28, 6, 8,100,181,109, 35, 20, 16, 11, -152,214, 26, 66,192, 89,125, 64, 98, 83, 81, 51, 84, 65, 32, 81,233, 3, 23, 53, 38, 48,163, 42, 2, 86, 20,185,170,204,104, 87, -223, 58, 16, 50, 5, 98, 53, 13, 33,204,132, 16,106, 4,120, 66, 41,102,232,133,179,254,155,225,102,227, 84, 96,106, 21,172,126, -234,161,145,128,198,192,165, 0, 40,136,148, 38,103,122,115,182, 59, 14,169, 49, 19, 68, 53, 56,106,194,209, 54,102,222,227,201, -164, 76, 92,109, 38,250, 50,204,210,100,107,229, 16, 53, 98,246,202,181,128,220,113, 90, 75, 70, 3, 66,176,106,238,170, 79, 93, -170,181,186,202, 31,136, 82,164, 81,102,212, 19,179, 25, 4,162,224,172,121, 98, 36, 6, 19,103, 57,240, 76,140, 34, 0, 80, 84, -242,165, 50, 34, 24, 3,180,194, 59,166,152, 82,169,153,145,186, 46, 96,235, 33,108,118,108,114,167,188,170, 51,143, 3, 49, 26, - 98, 64, 82,183, 92,205,104,251,249, 64,245, 39, 95, 91, 89, 13,147,191, 97,173, 32, 50,130, 6,240, 96,143,182, 68,156, 19, 6, - 65,179,216,130, 76,138,136, 10, 51,199, 24,171,106, 85, 37, 52, 84,117,127, 18, 82, 19, 49, 28,179, 37,109,249, 55, 7, 42, 20, -204, 26, 86,104, 61, 77,139,190, 35,255,249,160,129,195, 36,226, 60,122, 68, 70,175,112,143,132, 2,102, 86, 74,157,114, 65,201, - 70, 68,200,155, 91, 27, 59, 59,155, 79,223,184,246,121,198, 42,186,154,244,240,248,120, 92,173, 30, 62, 58,216, 61, 56,124,184, -123,120,120,124,112,247,116, 92,151,194, 28,250,174, 95, 14,105,115,185,185, 92, 14,203, 97,232, 82, 26,186,126, 88, 44, 83, 23, -134,197,208,117,203,174, 31, 82,215, 19,112, 23, 40,198,222, 44, 33, 80,222,220,200,185,104,149, 42, 53,151,188, 42,197,106,182, - 73,188, 27, 9, 76, 99, 0,174, 26,216,156,253, 82, 77,212,239,106,106, 82, 13, 9,204,212,241,224,161,225,109,204, 92,196,161, - 48,135, 19,218,150,135,156,216,212, 40,187, 13, 97,102,115,183,121, 75, 91,180, 80,107, 35,103,122, 95, 65,107,197, 85, 85,106, - 0,119,100, 50,177,138,192,134,128, 76, 86,107, 3,190,123, 45, 57,147, 67,225,103,224, 59, 48, 49,199,244,198, 15,255,234,225, -131,135,175,254,212,207,116,137, 75,206,134, 4,218,172,198, 51,163,222,121,109, 94, 83, 9, 16, 9, 74,213, 42,166,128,236, 55, - 53, 5,179, 92,234,203,159,249,201,255,242,239, 62,252,135,255,235,255,177,151,243,206,114, 25,136, 33,132,251, 15, 31, 28, 30, - 94,255,249,159,121,245, 15,254,236, 59,255,207, 55,190,251,219,127,239,179, 55,159,186, 89,242,180, 62, 57,122,112,247,246, 91, -111,188,245,246,157,219,143, 14,247, 9,249,151,190,252,133,159,253,210, 79,132,190, 91,229, 2, 10,196, 13,209, 0, 72, 14,154, - 55,228,213,122,146, 42,121,202, 76, 52,230, 60,149,186,189,177, 65,132, 32, 16, 34, 35, 50,135,200,132, 69,106,140,158, 20,176, - 0,160,162,185, 22,239, 30, 34,140,162,121, 44,117,171, 27, 86,148, 25, 81,213,204,180,245,225, 26, 30, 28,175, 78,115,174,213, -140,180,170, 33,240,162, 15, 42, 98,104, 96, 45, 36, 76,140, 41, 5, 50,189,114,241, 2,160,173, 78, 78,239,222,223,253,224,225, -195, 90,100,125,186,218,220,222,222,220,218, 58, 58,216, 39, 38, 66, 82,163,148,250,147,253,131, 11,231,207, 1,234,133, 75,231, -190,246,157,191,202, 37, 39, 76,171,213,233, 98,177, 17, 13, 5,117,107, 99,235,250,213,171,111,220,126, 39,105, 96,228,162,182, - 96,142,172,155,195, 32, 85,214,182,134, 92, 2, 71, 23,185,167,169,174,171,228,154,137, 8,148,137, 25, 9,173,162,129, 21, 81, - 50,237, 82, 44,103, 45,155, 33, 0,179,167, 90,154,195,198,140, 0, 2,250, 35,230,101,155, 85, 13,163,202, 76, 59,106,253,212, - 4,216, 78, 46, 70,111,148,103, 38, 66, 96,130, 82,220, 52, 66,190, 51,114, 54,125, 96,170,185, 84,151, 4, 0,138, 86,107,239, - 79, 84, 21, 85, 96, 34,109, 88, 21,112,202,143,155,187,131,119,199, 49, 17,153, 20,147,128, 0, 86,165,189, 57, 12, 21,125, 49, -168,196, 13,154,128,109,131,170, 10, 4,132,104,170,226, 59,238,179,158, 3, 48, 3,106,141, 58, 0,200, 52, 3,245, 12,188,238, - 10,207,244, 42, 32, 96, 68, 4,168, 62, 14,152, 53, 24,167, 17,136,154, 25, 19,154,161,145, 67,113,153,200, 28,181,143,140, 64, -134, 14,161, 67,107,225, 82, 3,172, 32,145,189, 95,154,170,169,206,226,181, 91, 43, 9,185, 54,243,143, 74,173,104, 94, 82,224, -197, 18,138, 0, 8, 1,160,120, 12,157, 34, 17, 6, 3, 77, 49, 96, 35, 27,160,255, 10, 6,216,156, 22,136,134,216, 90, 62, 21, -152,201,204,136,141, 42,130,130, 48, 0,114,155,250,112,238, 97,199,134, 74,241,211,219,187,166,249,204, 60,237, 6, 28,192,170, - 34,136,192,192, 16, 8,218,237,133, 0, 1,188,174,143, 60,159,133,214, 66,255, 85,100, 44, 37,165,228,119, 93, 3, 80, 45,166, - 74,148, 20,129,108,182, 50, 33,129, 26, 81, 48, 80,228,132, 72, 98,130,166, 42,168,106, 80, 12, 12, 24,233,220,206, 14,157,219, -190,113,253, 18, 1, 17, 71, 83, 59, 58, 62,126,255,254,195,253,253,227,187,187,143,223,253,224,193,254,254,227, 10, 24, 57,165, - 24, 99,138,139,161, 31, 82,215,165,184, 92, 44, 22,253,176, 88, 14,169,239, 23,221,144,186, 94, 74, 9,137, 56,164,148,250,190, - 11, 68,189,225, 0,136, 62, 19,228,169,230, 60,213, 82, 4, 85, 40,173,203, 88,243, 24, 44, 7,208, 64,144, 98,240,155,165, 33, -149,170, 72,234,212, 85,212,234,163,114,245,236,164,206,205,226,205,107,131,118, 54,119,183,157,183,232, 71, 96, 27,175,121, 66, -242, 22, 56,199,251,157, 45,122,253,110,136,206,128,245,250, 52, 36,255,182, 89, 21, 0,116,220,121,195,204, 56,151,187, 29,219, - 22, 99, 87,167,252,163,255,239, 91, 99,145, 87,191,244,101,144, 92,114, 37,246, 10, 94, 7,164, 10, 48,183, 11, 41, 34, 18,113, - 8, 96,104,181,182,168,173, 3,173,213,187,132,166, 50, 78,218,117,175,124,241,103,255,171,146,255,151,127,244,187,170, 86, 16, - 82,215,125,226,169,107, 55,174, 93, 44,180,245, 83, 95,252,242,239,255,241, 87,223,124,239,157,167,110, 94,127,252,240,238,135, -119,222,251,209,235,175,127,248,240,193,106,189,190,250,196,165,223,248,165,175,124,250, 19, 47,172,214, 57,151, 2,134,134,228, - 34, 44, 48,207,105,114,116, 86,236, 48, 12,143, 15, 14, 61,107, 84,107,109,226, 77, 0, 19, 99, 34, 51,139,129, 79, 78, 87, 6, -200, 28, 74,169,216,166,249, 14, 0, 0, 32, 0, 73, 68, 65, 84, 0, 48, 78,147,136, 18,177,223,241,167,169, 78,181, 44,210,230, -209,201,236, 65,110, 62,101, 0,213,117,201, 0,166,100, 94, 86,141, 40, 7,167, 83, 21, 56,157,214,170,194, 5,121, 24, 8,105, - 53,213,141,197,242,201,107, 87, 84, 1,205, 98, 8,170, 16,152,137, 3, 32, 94,190,254,228,234,248, 88,193,136,130, 72,145, 90, - 56, 17,102,187,114,229,218,135, 31,124,120,237,252,246,237,251,123, 93,234, 8,105,202, 35,165,193, 4,250, 56, 60,251,177,103, -222,124,239,109,191,246, 91, 41,194,174,240, 88, 85, 25, 82, 55,230, 73,209,186, 20, 77,109, 28,143,195,153,255,206,107,177,154, -185,202, 26,246, 24,169, 39, 96, 14,140, 88,221, 84,219,142, 60,156, 67, 72,104, 77, 43, 55,143, 73, 80,112,182,109,243,201,105, - 59, 51,204,136,177,181, 88, 0,128, 4, 10, 85,177,212,234,187,110, 59, 11,182,146, 17, 16, 32,156, 78, 83,173,149, 40,148, 42, -162,160, 85,213,212,115, 73, 6, 90,179, 2, 96,241,230,179, 51, 72,151,106, 53, 75, 8, 0, 32,197, 28,245,104, 4,145,156, 56, - 8,129,200, 2,174, 38,149,230, 3,113, 79,112, 75,214,170, 88, 11, 95, 55, 49,209,192, 76, 92,122, 80,160,128, 8,214,165,132, -222, 44,104,138,166, 78, 71,160, 64, 10, 38,165, 26, 66,138,254,110,145,150, 65,197,136, 48,193,124,192, 25, 88, 0,102,100, 53, -160, 16,163, 89,169,238,255,116,132, 84,187, 63,185, 66,234, 83, 87,171, 53, 69, 48, 85,241,244, 92, 19,236, 17, 76, 57,250,202, - 25, 99, 74,136, 24,136, 67,160, 82, 73, 5, 20,194,153, 48,163,230, 44,115, 32, 2,164, 64,129, 61, 69,217,228, 47,194,224,134, - 74,153,243,239,238,109,132,134,229, 34,140, 38,213, 85, 51,178,118,136, 0, 96, 68, 42, 46,113, 49, 0, 2, 35,198, 20,171, 56, -218, 11,220,217,195, 78,152,117, 6,150,123,230,137,204, 76, 84,197,188,189, 22, 27,201,171, 26, 48,113, 32,132,136, 48,130,225, -184, 94, 7, 64, 41, 5, 0,106,117, 82, 10, 1,128,214, 90, 91,219,164,249,220,216,108, 38, 0, 96, 66,232,207,114,101, 10, 85, -231, 21, 40,130,138,130,175,121,167,108, 90,135,174,123,249,217,167,136,136, 3,155,192,233,106,117,255,225,222,251, 15,118,239, - 62,124,180,127,116,180, 58, 62,126, 92, 30,139, 40,133,200, 68, 49,134, 46,117, 67,223,111,110, 44,150,221,178,235,220,176,223, -245,156, 32, 82, 23, 83, 76,125,138,129, 99,136, 93, 23,227, 34, 50,149,170, 99, 30, 49, 46,214, 57,173, 78,215, 42, 50,141, 35, - 83,141,108, 93, 64, 4,101, 20,196, 8,170,193, 68, 76, 75,153, 50,167, 14, 66, 12, 68,160,234, 9, 44, 66,171,165, 58, 54,217, -119,252,168,115,105,136,175,216,231, 71,198,159, 29,155,137, 60,115, 23, 8, 50,162,168,163, 15, 0,189,165,207,188,227, 27,206, -194,132, 14, 62,155,105,242,134,104, 76, 33,245,253,189, 15,110,191,245,214, 91, 79, 92,125,242, 83,207,220,146, 90,196,129, 14, -170, 68,173,248,219, 95,203,205, 84,103,134,254,212,250, 0,230, 64, 31, 4,145,106, 90,165, 86, 51,236, 54, 54,215,171,211, 85, -169, 63,253,115,191,246,151,255,230,181,239,191,249,225,185,243,203, 47,125,230,197, 39,175,223,192,180,179,125,233,218,147, 79, -222,184,245,236,115,223,254,214, 55,191,243,205,111, 60,122,116,239,157,247,239,222,223,221, 77, 49,252,205,159,254,194, 87,190, -248,202,206,206,198,241,233,137, 9, 57, 55, 10,193,152,216, 89, 75, 51,107, 15,204, 32,231,130,102, 8, 18, 2, 29,159,172, 17, - 33, 5,114,173, 53,134,212, 26, 65, 9,203, 52, 30,156,172,159,189,114, 65,204,200,231,127, 0,118,118, 23, 82, 85, 72, 28,136, - 24, 72,207,116,198, 0, 8, 8,147, 72,171, 9,118, 78, 91,155, 78, 3, 34,104,181, 44, 85,170, 25,209, 82, 58, 2, 36,198,157, -115, 59, 0,104,104,165,214,245, 56, 10,104,169, 19, 24,108,110,109,159,191,120,241,209,131,251, 30, 37, 83, 0, 14,105, 26, 87, -177, 22,209,122,253,210,229, 49,215,199, 71,167,203,197,162,230, 98, 93, 87, 4,166, 90, 46,156,191,240,226,115, 47,253,245, 27, - 63, 52, 84,100, 38, 3,231, 65, 86, 21, 14,129,152, 83, 96, 21,157,242, 20, 83,164,166,146, 35, 18, 86, 49, 62, 51, 91, 48,197, - 64, 8,192, 68,103, 65,182,249,184,110,231, 49,205, 20,106, 36,240, 24, 53,120,220,135, 8,204,136, 49, 96,155, 70,125,211, 91, -192,203,118,168,157,100, 76, 14, 67, 7, 36, 21,209,246,242,100, 85, 37,164, 46, 6, 53,161,179,248, 44,136, 15, 46, 49, 34, 88, - 28,167,170,214,120,185,222, 17,232, 99, 10,131, 49, 48, 18,120, 86,209,237,227,103,125, 33,106, 6,140, 86, 61, 58, 2,106,202, - 4, 69, 45, 17, 89,169, 13,186, 99, 58, 0,136, 32, 35,213, 25,240,109,160,166, 22, 18,171, 97,159, 72,170, 77, 69,212, 32,250, - 90, 81,193,200, 98,136, 37,103, 49,175,254, 1,114,235,154, 9,130,183, 0, 97,196, 48, 89,241, 87,130, 33, 84,173, 0, 16,136, -196,148,137,138,202, 89, 3,179,155,233, 2, 17, 16,144,153,137,113,194, 58, 59, 74,103, 74, 9, 32,145, 26,136, 89,240,205, 37, - 81, 66,119,121, 85, 21,181, 90,205, 89,194,128,236,126,156,217, 92, 17, 40, 84, 45, 58, 85, 71,209,104,129,172, 82,212, 84, 5, -252, 4, 80,107,186, 79,187,227,152,162, 81, 96, 0, 20, 85,213, 25,170,131,138, 94, 72,171, 96,218,160,184, 72,100, 82, 35,181, - 46, 51, 19,136,145, 75, 21, 36, 12,136,168, 86,177, 38,140,110,236, 83, 80, 4, 34, 34, 0, 82,200,136, 17,220,138,225, 95, 52, -194,177,150, 15,118, 31, 46,151,155, 1, 64,212, 11,183, 81, 9,130, 97, 36,110,142, 44,152, 95, 68, 72,190,253, 50, 3,179, 36, -206,224,246,163, 76,196,237,153,173,203, 14, 99,214, 90,215,162, 0, 85,197,105,111,215,110, 92,186,113,227,178, 84, 83,173,185, -216,193,201,241,122, 53, 30,156,172,238, 62,120,252,232,224,120,255,240,228,224,240,224,246,251, 50,137,116, 33,244, 67,183, 53, - 12,155, 27,203,197,224,170, 78, 23, 99, 8, 49, 6,102, 14,188,232,135,126,177, 97,128, 76,212, 49,165,141, 1, 16, 77,151,185, -202,152,215,171, 82, 84,205,196, 8, 52,231, 26, 0,204, 36,151,105, 69, 20, 49,154, 0, 96, 96,207,163,148, 60,149, 34, 49,117, - 76,237, 64, 7,248,104, 63, 51,191,141,231,182,207,150, 92,197, 25, 85, 67, 42, 34,254, 84,139, 81, 74, 64, 51,116, 12,207,184, -144, 6,222, 60, 98,237,219,105, 10, 24,160, 27,134, 31,254,187,111, 63,184,183,251,153, 47,124,113,217, 15,165, 76, 96,103,163, -135, 11,212,216,182, 88, 8, 94, 54,227, 99,156,169,168, 6, 78,157, 81, 33, 51, 45,160, 90, 85,133, 25, 79,215,211, 56, 78,160, - 19,199,225, 79,255,244,143,150,139,254,223,127,245,147,215,111, 92,235,250,157,173,203, 31, 59,127,233, 98,223,167,163,195,195, -131,195,147, 90,243,215,190,241, 53,230,184,187,127,116,227,210,185,191,243, 27,191,120,243,230,149,170,245,100,157, 17,137, 24, -173,101, 14,128, 29,118,229,127,247, 34, 68,172,146, 93,135, 58, 30,215, 27,105, 80, 85,230,104, 64,162, 58, 78,217,192, 98, 72, - 1,153,129, 3, 7,154, 53, 6, 10,164, 34,165,100, 38, 10, 76, 10,186,158,214,196,140,136,162,232,143, 16,114,195, 52,151,156, -219,173, 8,201,180,168,168, 49, 37, 39, 22,130, 34, 32, 17,136,212,113, 66, 83,184,121,253,210,102, 63,148, 82,215, 39,171,227, -211,147,245,152,189, 7, 0,145, 21,244,226,181,235, 7, 7,251, 37,103,100,102,235,197, 86,253,162,159, 86,211,141,235, 87,111, -223,185,247,233, 23,159,255,131, 63,255,150, 72,103,160, 37,231, 16,186,117, 30,197,236, 83, 47,189,248,248,241,131, 41, 79,136, - 88,173, 34,176,136,169,104,129,106,102,145,217, 84,178, 40,163, 54,127,171, 95, 2, 29,201,224,166, 5,194,196, 92,196, 40,134, - 64, 44, 94,165,209, 50,214,200,140,115,109, 19, 8,248, 38,137, 56,132, 48, 44, 78,167,201, 27,238,213,123,190,124,186,167,217, - 97, 0,160, 34,174,126, 55, 41, 86,144, 17,144,130, 80, 83,126,128, 72, 84, 83, 74, 42, 90,165, 18, 98, 17, 53, 53,138, 92,114, - 54, 11,137, 48,144, 15,239,254, 3, 2, 59,252, 21, 77, 85,181,162,176,167,248,221,138, 43, 96,181, 86,215,137,107,153, 31, 83, -119,188,128,219, 54,212,117, 30, 60,235, 64, 37,157,131,135,136, 2, 64,168, 34,196, 84, 53,231, 76,137, 3, 98,141,142,166,116, - 29,218, 93, 83,173,198, 4, 77,149,137, 2, 4, 31,110, 24,168,168, 98,192,128, 9, 77, 92, 82,239, 98, 40, 86, 40,192,152, 91, -226,156,230,214,117,239,121,106,183,104,131, 92, 37,134, 96,106,162,106,136, 17,161,158,117,166,249,215, 85,102, 68, 55,104, 41, -234,127,156, 6,221, 57,155,230,204, 51,213,106,204,136, 74,204,158, 69, 34,100,192, 90, 74, 69,211,192, 84,154,212,210, 92,173, -170,130,236,169,224, 6,129, 48, 66,153,239,239, 98,134, 96,138, 58,167,123, 81, 77, 29,142, 26, 35, 35,133, 73,215,108,160,206, - 18,199, 96, 6,134,243,163,211,178, 83,140,128,193,160, 82, 67,219, 51, 5, 96,156,171,217, 34, 83,160, 90,167,245,233,176,181, -173,166,165, 22,241,156, 57, 0, 71,118, 51, 57, 82, 80,255, 4,125, 87,238,165, 87,218, 66,182,237, 38,137,243, 26, 66,149, 40, -168, 22, 54, 80, 3,246,175,176,137,154, 77, 83,117,170,164,243, 99,206,109, 46,207,109,111, 94, 53,125,241,249,155,166, 86,198, - 73, 21, 14, 78, 78,246, 14,143,247, 14, 79,223,252, 96,247,246, 7,119,199, 92,204, 96,209,117,219, 27,139,237,157,237,197, 98, -177,181,177, 72,169,219, 72,201, 66, 40, 89, 40,208,208, 45,150,253, 34,118,161, 11,137,200,182,151, 11,164, 64,115, 10,118,255, -232, 48, 32, 5,142,125,183, 96,138, 97,102, 63, 53, 16, 77,149, 10,103, 76,188,143, 4,148,121, 91,127, 38,208,123, 76,194, 20, -124, 17,102, 13, 18,133,102, 34,213,252,254,214, 74,100, 29,107,221,136,121, 56, 87,115,206,140, 28, 12, 93, 0,165,239,127,235, - 95, 31,174,203, 79,253,252, 47,177, 73, 41,121,246,217, 52, 20,178, 59, 56,189, 17,121,190, 36,182, 75, 48, 24,123, 66,219, 68, -181,106,169,163,138,212, 82,133,113,125,180,183,220,188,120,120,178,126,227,175,190,113,231,131, 7, 47,189,240, 50,119, 27,113, -227,252,141,167,158, 30,250,206,196, 14,246,246,238,188,251,250, 59,111,189,117,111,119,119,189,158,142,198,131, 47,253,196, 43, -127,251, 63,248,249,216,165,105,204,205,201,227,234,101,131,249, 52, 48,148, 7,186,144, 24,208, 20,132, 17, 3,194,233, 42,111, -246, 11, 51, 99, 48,102,174, 82,181, 74, 68,170, 82,198,113, 92, 46,187,144,194,208,119, 86,205, 89,176,216, 5,207,124, 84, 81, -164, 48,101,113, 67,120, 34, 12,204, 83,173,104,158,195,196,108,198,206, 92, 67,195,121,137, 7,145, 40,134,200,161,212, 98, 64, - 6, 80,205,106, 45,207, 60,117,107,216, 88,174, 78, 78,205, 96,156, 10, 18,153, 97,157, 38,151, 88,251,229,230,249,203,151,238, -221,185, 77, 72, 70,172,156,200,106,236, 4, 9, 17, 37,117,225,198,213, 75, 31, 60, 56,232, 2,155,141, 27,155,157,168,183, 63, -224, 11,207,127,252,181,215, 95,139, 68, 98, 38, 42,161,163, 72,104,170,181,212,156, 98,159, 82, 31,235,152,197,212, 85,133, 48, - 78,197, 16,196, 72,161, 32, 88,140,193,123,231,130,161,215,179, 27,217,220, 64, 11,166, 31,205,243,222, 22,108,110, 13, 33,234, - 83, 44, 34, 0, 16,217,187, 79, 3, 80, 97, 96, 53, 69, 52,247, 47, 65, 53, 0, 24, 58, 94,175, 29,100, 67,106,237,195, 52,243, - 18, 31,205,165, 50,146, 66,179, 89, 16, 97,205, 98, 10,181, 42, 16,214,102, 0, 53, 80,130, 0, 0,100,200, 77,179, 38,136, 28, - 38,169,102, 80,205, 49,123, 64, 96,196,148, 85,234,140,225, 64, 98, 85, 84, 5, 66,168, 30, 16, 65, 37,246,118, 63, 80,113,245, -160, 57, 60, 72, 9,137,220,202,222,199, 0,132, 81, 2, 40,120,236, 3,129,136,218, 77,137, 34, 69, 8, 43, 24, 21, 42, 0,145, - 53, 21, 28, 1,205,196, 29, 89,156, 8, 17,201, 24,217, 25,104,174,171, 27, 34, 51, 88, 67,187, 18,186, 94,228,146, 95,169, 10, -104,129, 88, 21, 16,244,172,202,193, 15,202,192,132, 68, 28, 88, 12,139,212,160, 54, 12,221,234,100,244,142,145,220,212,175,255, -159,170, 55,107,150, 44, 59,178,243,150,187,239,125, 34,226,198,205,155,121,115,170,156, 10, 53,163, 38, 84, 1, 40, 76,196,212, -104, 16, 96, 91, 55, 69,209, 68,170,173,141, 47, 52, 61,203,244, 38, 62,232, 63, 72,250, 29, 52,227,147, 30,245, 38,202,196, 70, - 19, 93, 93, 13,160,107,206,170,156,231,225,102,230, 29, 35,226,156,189,221, 93, 15,190, 79,100, 17,102, 48, 20,204,178,110,198, -141, 56,113,142,239,229,107,125,203, 17, 51,175, 48,156, 19,251,202, 33,153, 69, 18, 87, 77,204,139,208, 97,213,213,226,183, 98, - 18, 78,137,221, 57, 30, 73,102, 70,236, 98,158,178, 12, 85,153,201, 84, 99, 14,165,156,136, 89,221, 65,156, 19, 45,208, 59,165, -156,179,129,136, 93, 85, 89, 82, 34, 30,162,177, 72,214, 50,102,115,243,197,122, 94, 61,208,161,138, 85,163, 30,152,147, 0,243, -205, 77,181,214,176, 66,148,220, 85,184, 57, 30, 36, 73, 25, 26, 90, 7,129, 92,244, 54, 76, 58, 35,196, 81,150,216, 19, 68, 85, -153, 57,199,254,140,148, 51,145, 5,180,131,189, 1,163, 98, 24,214,224, 57, 3, 22,161, 52,115,168,147,164,196, 56,125,226,248, -185,147,219, 66,252,207, 63,128,179,220,125,178,119,231,222,131,219, 15,118,110,220,223,185,113,247,174, 87,103,145,141,141,233, -246,241,227,105, 50,233,152, 59,145,106,158, 82, 18,166,141,217,198, 36,231,141,217,100,115, 62,223,152,205, 38,147, 89, 55,155, -110,228,105, 34,114,146,220, 77, 83,179, 36,180, 41, 27, 4,116,121,234,196,156, 82, 96,180,163,127, 18, 68, 48,246,181, 65, 22, - 62, 14,245, 16,226, 81,239,244,117, 13,147, 90,205, 41,183, 14,171, 49, 19,101, 35, 3,169, 29, 5,136, 8,220,205,102,139,221, -221, 79, 62,253,211,214,201,179, 63,251,193,187,168, 67,181,214,125, 17,137, 37, 52,198, 41, 64, 9, 13,159,170,227,142,117, 60, - 35,215,106, 90,181, 68, 68, 80, 74, 45,253,176,218,220, 58, 33,179,141,175, 62,251,227,149,171, 87,230,243,205,119,222,126, 43, - 79,183,231,167, 47,158, 63,127,206,171,238, 31, 60,123,250,104,231,206,205,107,183,238,222,186,251,104,231,201,238,222, 75, 23, -206,253, 15,239,189,190, 49,223,128,164, 97, 24, 28, 78, 36, 24, 67,159,194, 29,188,140,231, 9, 30, 31, 48,213,193,101,176,162, - 74, 36, 14, 48, 83,206, 9,210, 46, 51, 38, 97,105,120, 22, 38,137, 30,175,104, 63, 51,247,148, 83,151, 82,100,207,160,230,102, -137, 64,132,148, 58,110,128,201, 96,116,234, 80, 43,195,105,140,247, 0,166,234, 41, 39, 33,105,203,166, 17,223, 5,247, 11,103, -207,104,117, 85, 61, 92, 45,158, 29, 30, 12, 90,170,150, 85,127, 4, 98, 3,216,234,169,211, 47, 60,123,252,164, 12, 71,102, 76, - 44, 44, 72,221,108,113,176,119,254,220, 11,143, 30, 63,251,206, 27,175, 93,191,253,183,132,105, 34,152, 86, 22, 81,211,156, 38, -167,183, 79, 30, 63,126,226,209,179, 93, 2, 18, 7,163, 46,248, 21,168, 85,145,189,184,119, 57, 39, 97,172,196,220,205,140, 37, - 53, 35, 91,196,134,132, 59,242,216,192, 52, 7,237,168,206, 68,233,110, 40,245,156,132,195,251, 96, 90,149,186,220,149,178,128, -251, 68, 18,179,120,172,107, 91, 21, 20,172, 42, 9,143,140, 54,129, 27, 75, 2,216, 81, 97,128, 4, 57,183,237, 0, 86, 90,226, -146,140, 28, 94, 40, 57, 81,187,193,238,165,193, 82,141, 92,140,108,132,117,113, 34,142,206,133,144, 17,132,161,230, 17,225,119, -115, 9,219,139, 69, 60,133, 93,107,243,116, 83,236, 42,139, 71, 88,219,249,185, 51,205,220,201, 0,170,102,211,148,224, 40, 67, -141, 26,135,248, 20, 19, 71, 95,139,155,170,144,120,107, 94, 72,212,218,214, 98,132,172, 49,182, 55,219, 59,143, 5,231,238,109, - 83,168, 81,231, 48,206, 82,141, 61, 76, 97,177, 45,117, 53,205,179,202,102,214, 24,159,107,168, 15, 11, 57, 59,220, 25,232,186, -108, 43,173,168, 34, 73, 93,213, 60,210, 91, 62, 26, 27, 21,222,177, 24,185, 52,230, 64, 40,187, 34,196,194,210, 91,105, 30, 22, - 52,246, 22, 83, 50,118, 2,165,196,170, 14,102,215,138,176,116,131, 0,228,204,203, 2, 87, 37, 17, 34,202,194,193, 33,111,160, -148,241, 57,148,137, 33, 32,165, 32,100,197,138,133,155, 6,177,126, 88, 89,155, 92, 71,195,118,226,148,132,167,147, 73,211,142, -198, 7, 26, 19,153, 66,136,225, 76, 41,181,208, 68,107,111,130,179,146, 91, 56, 68,188, 49, 93,157, 24, 6,141,126,191, 70,133, -129, 1, 21, 96,139,177,108,180, 26,130, 88,132, 81,188,101,140,214,116,134,118, 14,245, 10,148,170,181, 84, 16, 78,206,167,231, -190,243,198, 15,223,125,221,221, 87,125,217,121,118,240,224,201,211,199,123, 7,207,118, 15, 14, 14, 15,158, 14,195,208,247, 6, - 22, 18,136, 39,226,217,100,163,203,210, 77,186,141,217,116,115, 54,219,220,152, 59, 56,141,187,211,192,131, 71, 83, 20,218,127, - 37,246,245,110,173, 55, 30,110,193,188, 49,183,218,144, 40,129,129,104,252,188, 40,183, 39,107,118, 29,145, 4, 34,230,104, 27, -160,112, 97,173, 91, 63,220, 13,156, 4,112,184,118, 93,247,248,222,157, 47, 62,251,244,213,119,222,191,112,246,116, 93, 29, 58, -152, 36, 16,106,205,189,227,223, 64,182,160,189, 74,106, 85, 83,110, 30,152,251, 90, 93,213,180, 58,119,229,104,255,240,240,232, -248,246,201,203,159,127,252,217,167,159,178,227,149, 87, 94,218,154,111, 15,178,121,242,204,185,141,205,121,191, 90, 62,125,242, -248,209,189, 59, 15, 31,220,191,125,255,222,245,219,119, 87,253,240, 47,126,254,131, 95,255,242,135, 91, 39,142,221,186,126,227, -227, 63,126,241,193, 15,222, 42,131, 53, 90, 76,251,148,156, 99,141,220,106,137,124,108, 46,144, 58,172,170,122, 28, 46,166, 41, - 37,112, 32,108, 73, 68, 58, 73, 34,139, 97, 8,115, 65, 18, 78, 93,167,112,135, 11,183, 14,160,234, 74, 78,139, 50,144, 68,115, - 17, 70,238, 51,192,236,238,164,134,234, 30,186, 31, 27, 65, 18,103,227,160,120,154,249,248, 14, 17, 57, 44,119,249,226, 11,103, -172,106,191, 42,123, 7,135,139,197,202,106, 61, 56, 92,172,106, 69, 64, 38, 84, 39, 27, 27,167, 95, 56,127,235,250,101, 38,102, -107, 79,136,110, 54, 75, 41,159, 84,123,178,179,247,234,133, 23,110,222,223, 33, 80,191, 90,205, 55, 55,225,182, 26,150, 27,147, -217,171, 47,191,124,243,238,189,161, 95, 17,145,169,133, 63,156,152,212,145, 57,205, 39,211, 85, 63, 48,113,180,142,146,136,185, -115,123,250,143, 29,190, 20,150, 43, 86,173, 97,177, 72,180, 62, 31, 54,201,206,213,173,221,245,161,145, 16, 2, 28,232,181, 78, -168, 83, 83, 14,159,182,151,184, 2,189,154,147,153,219,114,217, 51, 39,181, 26, 55, 59, 7, 44, 88, 75, 70, 22,199,228,112,133, -135,175, 64, 13, 76,164, 16, 98,141,111,104,172,229, 3,190, 13, 30,141, 90,193, 45,176, 38,130, 51, 97,157, 26,116, 55, 11, 47, - 83,108,194, 25,236,129, 18,106,245, 61,207,149,122, 33,110,127, 47, 53, 92, 31,113,164, 9, 61, 4,237, 38,145,183,188, 97, 59, -208, 75, 78,210, 23,175, 90, 27,164,130,200, 35, 37, 5,103,225,112, 33, 55, 76,187, 97,240,106, 86,205, 61,137,176, 0,166, 6, -142, 97, 62, 35,253,183,147, 89,124, 79,133,106, 17, 35,167,102,134,135, 6,229,139,204, 2, 38,107,166,150,132,205, 34, 28,143, -234, 70,204, 26,223, 79,197, 36, 75, 39,137, 28,108, 24,180,138,208,180,235, 68,132,170,182,137,154,216,169, 17, 68,155,233,156, -131, 91, 2, 38,120,172,224,146, 4,151, 47,178,200,165, 26, 51,192,100, 80,161, 36,146, 3,213,162,238,165, 84, 17,182, 90,135, - 90, 39,153,196,186,168,129,131,147, 1,169, 81,245,137,133, 42,216,154, 1,132,114, 78,234, 70,165, 48, 75,102,153, 77, 82,150, -137,161,180,105,159,220, 65, 67,181,236,193, 45,246,117, 29,187,155, 5,172,125,172, 58,183,176, 70,121,187, 98,169,185,121,188, -117,107, 17,160,202, 36, 99,219,118,108,179, 1, 55, 37, 98,176,130, 57,162,159,209, 24, 23,184, 45, 85,196, 70, 75,178,168, 97, - 48, 95, 28, 28,181, 74, 85,248,201,173, 99, 39,143,111,182, 56,215,160,139,126, 24, 86,195,193,170, 28, 44,150,123, 71,139,103, -207, 14,158,245,253,163, 39,187, 67,237,157,132, 8,155,179,233,108, 58, 75, 80, 71, 44, 36, 90, 81,130,185,131, 56,121, 36, 9, -215,225,203,231, 12,248,248,215, 51,198,204,159,251, 55, 7,113, 49, 50,226, 64, 57,121,220,219, 91, 1, 76, 99, 40,124,131, 10, - 39, 65,165,148, 46, 79, 31,222,189,115,249,203,207,223,255,241,207,182,143,111, 14,203,165,187,147, 52,168, 60,173,253,149, 49, -253, 71, 51,141, 42,115, 6, 25, 89,112, 55, 28,174, 62, 84, 51,167,110,186, 90,173,142, 14,158,156, 62,119,238,240, 96,247,159, -254,254,111, 47, 95,191,122,102,235,212, 91,239,188, 86,117,206,243,147,103,231,155,148,120,239,217,211,197,222,222,206,206,253, -155,183,238, 92,191,117,235,206,227,135,167,142, 29,255,247,255,230,183,223,127,255,221,101,223, 31, 29, 29,157,187,120,254,225, -195, 79,191,188,114,231,237,111,191,210,175, 86, 68,225, 87,115,184,122,251,118,199,239, 69, 99, 70,197,205, 92,213,172, 22, 11, -120,136,128,136,186,196,230,106,234, 41, 65, 93, 87,125, 15,226,105,215, 5, 47, 16,166, 17,110,234, 82,231,234,149,106, 25, 52, -165, 20,143,116,115,205, 57,179,172,160, 32,167,232,175,171,106, 99,193,166,177,128,157,212, 84,128, 73,202,195,176,138,216,122, -206,221,198,100,114,226,228,246, 96, 86,108, 88,244,253,106,181,116,247,195,163,197, 48,244, 16,118,171, 76,100,240,147,103,207, -238, 60,122,176, 56,220,165, 36, 34, 89,109,200,110,253,225, 33,106, 29,250,254,187,239,124,251,112,185,122,252,244,144,133,167, -117, 34, 93, 71, 64,213,186,125,252,196,235, 47,191,252,249,151, 95,128,197, 70,108, 88,220,141,138, 41,220,212,244,112, 89, 72, -181,217, 95,198, 35, 8,183,103,116,104, 39, 68,194,174,202, 96, 87,131,140,214,234,241, 72,182,174,203, 14,221, 70, 1,114,103, -102,117, 31, 34,224,230, 22, 93, 35, 34,100, 5, 0,216, 34,196,167,146,169, 95, 90, 70, 72,131, 62, 38,126,224,160,226,102, 78, -234, 72, 85,205,181,170,138,136, 65,157, 73,139, 69, 19,155,193,205, 33,241,100,136, 9, 16,225,239, 70,137,192, 14,168,227, 4, - 70, 41,203,112,213, 43,197, 60, 26,105,108, 25,123,148, 67,211, 11,253,146,147, 72,220, 77,130,139,204,241, 92, 36, 99, 73,234, -214,187,103, 17, 50, 3,145,186, 39, 34,102,104, 4,130, 56,177, 88,116,243,176, 19, 17,117,146,122, 45,205, 97,144,147,215, 26, -241, 31, 48,151, 90,153, 60, 17, 57,161, 87, 21,146, 44, 66, 65,225, 2,216,226,221,143, 22,209,216,104,144, 19, 33, 5, 83,172, -117, 61,113,188, 5,164,148,114, 98,138,178,139, 8,160,169, 27, 44, 70, 14,143, 2,103, 18,102, 17, 2, 23,211, 97, 40,155, 27, -179,148, 68,213, 98, 81,101, 96,137,158,224, 56,114,162, 37, 39, 55,186, 92,212,122,162,106, 72,205,169,174,227, 25,148,225,128, -198,128,196, 65, 78,176,102,226, 52,133,103,150, 65, 28,165,134,103,193,171,115,107, 29, 85,162, 4, 39,119, 99, 39,103, 39,181, -212, 90, 87,184, 20, 35, 32,132, 33, 80,231,228,230,158,132,188,182,195,157, 48, 80,189,245,137,182, 38, 67,135, 86, 72,138,150, -212, 22,211, 51,119,138,169, 6, 48, 99, 38, 85, 3, 57,106,108,216, 41,156,114,241, 24,107,193, 82, 18,181, 26,184,166, 56,240, - 90,147,232, 98, 90, 11,126, 15,204, 27,220,197, 0,142, 98, 26, 2,131, 53,140, 65,145, 80,118,234, 38,211,233,198,198,166,234, -133, 49, 97, 90,107,173,125, 89,148,242,120,239,232,254,195,157, 7,187,123, 79,246, 14, 18, 90, 44,185,225,250,198, 65,163, 70, - 8,194,219,208,234,227,217,165,117, 51, 68,235, 59, 70,232,204, 88, 26,224, 30,141,151,129,255, 91, 23, 66,137, 68,241, 31,214, -124, 45,180, 19,139, 8,231, 60,185,241,213,103, 55,111,222,249,224, 39, 63,155,111, 76, 86,203, 37, 26,194,220,104,100,218,211, - 56,151,182,225,175, 77, 25,161,132, 59, 76,221,173,214, 58,217, 56, 70,101,216,127,246,116,107,251, 36, 76,111, 93,249,242,211, -207, 62, 86,245,239,191,253,206,201, 83, 47, 44, 52,231,227, 39,230,147,233, 80,250,163, 39,187, 15, 31,222,125,252,232,209,253, - 71,143,174,223,186,179,191, 60,250,209,119,222,252,183,127,249,155, 83,167, 79, 44,142, 86, 22,189,222,206, 63,248,225,247, 62, -250,240,143,215,110,164, 87, 95, 58,191, 90, 13,204, 45, 93, 23,247,153,150,176,140,254, 64, 78, 44,210,215,162,170,221,108, 66, - 12,117,101,161, 32,216,170,133, 61, 38,101, 22,144, 9, 97,112, 15,186, 24,152,156, 56,119,157, 12,131, 90,212, 68,147, 36, 17, - 65, 32,141, 96,166,129,196, 38, 88,235,210,108,121, 40, 7, 75, 74, 90, 45,229,142,133,195,136, 40, 20, 91, 14,156,222,222,222, -152,205,181,244,165, 95, 45,142,142,142, 86, 75,115,148, 90,135,213, 2, 90, 35,179, 0,213,212,229,139, 47,190,116,229,242, 17, - 97,112, 51,225,132,228, 52, 63,102,176,151, 95,123,105,239,217,238,107, 47, 93,120,182,127, 25,240,161,234, 76,162,202,206, 88, -186, 55, 94,125,237,241,206,163,123,143,118,178, 68,123,154,207,114,118,226,162,101, 53,212,131,163, 85, 22, 73, 89, 4, 88,149, -194, 96,107,250,136,183,222, 33,196,232, 54,214, 62,198,138, 74,130,138, 55,206,188,110, 14, 22, 38, 53, 23, 70, 34, 82,213, 64, -197, 48,139,185, 69, 81, 55, 19,171, 18,204,133, 72,217, 21,173,143, 62,137, 84,173, 99,225,111,220,109, 21, 70,226, 94,221, 93, -173, 84,101, 80, 78,169,170,198, 25, 76, 53,110, 95, 13,119, 74, 99,248, 62, 32, 10, 68, 49,192,106,172,187, 67, 36, 39,225, 82, -135,120, 32,169, 58,177, 50, 37,114,144,197, 18,120, 13,210,118,119, 87, 55, 6, 4, 82,195,122, 16,213, 46,224, 82,251, 36, 82, -213, 19, 73,107,188,102,192,189,148, 10,145,240, 40, 39, 22, 77, 6, 2, 75, 52, 50,133, 48,101, 76,168,253, 0,184, 68,226, 21, -136,244,150,129, 86,101,197, 96, 13, 16, 70, 2,147,184, 7,210, 43, 42,127,157, 2,180,201, 60,110, 53, 97,113,191,166,177,204, -219,201, 16, 79, 58,234, 68,224,232, 75,169, 35, 79, 57, 54,139,110,206, 78,125,173,194,100,102,102, 54,168,234,106, 53,155, 76, - 82, 72,203, 32,107,232,155,134,248,111,199, 10,245, 82,181, 20,131, 57,101,160, 18,152,146, 48, 19,151,161,119, 55, 99, 35, 48, - 19, 27, 97, 53, 12,113, 18, 72,146, 72,164, 10,160,224,196,196, 81, 83,134, 74,206,141,236, 19, 68,204,182,225, 53, 38, 6, 69, -122,182, 77,218,194, 36, 66,156,152, 27, 26,165,225, 89,162, 90,135, 24,170, 52,242,233,192,108, 30,245, 91, 12, 82,144, 4, 88, -185,193, 52, 98, 23, 89,157,226, 66,148,228,225, 17, 18,114,243, 48,132, 52, 9,203, 45, 17,177,112, 29, 44,250,198,204,205,205, -198,128, 35,185,179,250, 96,218,152, 21, 12,114, 36, 18, 37,136,185, 69, 17, 6,129, 59,150, 98,106,238, 90,148, 48, 54,205, 0, - 12,246,156, 55,114,247,234,124,243,141, 75,231,132,253,201,179,189, 20,157,168, 99,124,188,173, 73,131,205,177,230, 61,133, 35, -160,177,105,209, 56, 97,161,121,183,251,219,250,224, 29,118,199, 17,119, 57,186,107,108,221,187,205,107, 28, 20, 33, 73, 34,179, -127,250,240,239,212,233, 39,191,250,117,162, 90,106,109,211, 58,161,157, 95,125,124, 28,122, 52,139,175, 73,232,110, 94, 89,178, -153,219, 80, 28, 62,221, 60,126,184,183,211, 15,122,234,133,115, 55,190,250,236,235,203, 95, 62,219,221,191,112,254,244,171, 47, -191, 90,124,186,192,100,126,252,184, 36, 62, 58,216,219,125,182,243,240,254,221, 43,215,175,222,188,123,127,239,240,232,228,246, -177,191,254,243, 95,255,217,143,191, 71,204, 71,203,101, 91, 36,139,152, 89, 5,253,224, 7,223,253,232,163, 63,205, 38,211,115, - 47,156,234,135,158, 71, 31, 8, 92, 67,252,141, 10, 65,195, 64, 62, 29, 22,139, 82,106,158,162,203, 73, 72, 84,157, 68, 70, 28, -131, 11,177,170,169, 34,177,164,212,113,138, 28,129, 0,230,205,247, 6, 2, 51,249,217,227,199,159,196, 31,133, 17,132, 65,117, -100, 10, 70, 96,143, 65, 14,102, 84, 56,134, 50,100,233,158,115,178,195,143, 88,235,185,179,103,166,147,201, 98,113, 84,170, 22, -179,246, 68, 53, 12,171,190,133,136,220,195, 25,121,236,244,169, 99,143,182, 15,158, 62,138, 49,137, 89,104,130,220,119, 50,233, - 86,165,136,251,249, 83, 39,239, 62,221,155,104, 5, 77,213,148,132,203, 80, 54, 38, 27,239,189,243,246,163,157,191,235, 75, 73, - 36,238, 38,146,138,233,193,225,106,169,213, 96, 12, 38,184,132,232, 24,164,136,198, 87, 48, 70, 50,176,155, 11,163,196,109, 62, - 5,237,207,153, 90,247, 1, 8, 66,162,120, 94,229, 27,174, 24,237, 7,176,140, 17, 33, 50, 51,167,176,119, 53,147, 73,124, 38, - 14, 53, 51, 85,181, 64, 52,162,237,106,170,185,174,145,135, 68,106,110,230,213,145,216, 97, 13,172,235,102, 14, 13,198,141, 5, -140,123,188,238,205, 43,121,192,111,224,166, 69, 77,171,145, 51, 71,225, 28,122, 2,135,203, 79,185,121,134, 89,216,107,192,145, - 45,145,100,176,142,191, 39,145,169, 55, 48, 75,184, 66,181,233, 21,193, 16, 15,186, 55,141,211,100,107,121,106,137, 39,118,213, -232,122, 99, 45,131,228, 76, 36, 93,206,181,148,161, 12, 57, 9,185, 39, 66,216,248,172,145,255, 80,204,121, 76,166,131,160,176, -230,126, 80, 85,215, 20,100, 46, 15,115, 51,198, 81,198, 5, 82, 98,231, 64, 66,181,192, 77,152,216,159,211,221,130,199, 89,172, -116, 50,237,203,146,103, 83, 38, 74, 68, 6, 90,244,133,225, 76,168, 14,141,133, 0, 36, 46,197, 52,225,229, 96,230, 70,237,118, -166,238, 98,238, 67, 45,173, 38,142,152,137, 50,101, 99,147,200,166, 18,153,122,146, 54, 82, 85, 31,220,205,201, 56,156,184,141, -139,236, 10,152, 71,141,153,143, 87, 19,155, 25,133,150, 85, 7, 90, 91, 73, 44,192,213, 81,108, 14,102, 78, 45,196, 10,107,174, - 71, 18, 18,173,145,110, 78, 68, 84,213, 27, 0,145,156,199,126,218,246, 78,173,185, 7,102,161,103, 71, 31,123, 72,243,230,234, - 10, 14, 31,170, 61,223, 52,196, 73,218,161, 68, 9, 92, 27, 12,210, 52,128, 19, 68, 70,138, 96,246, 16,160,176,176,134,163, 90, - 29, 25,240, 50,206, 48,106,166, 17, 22, 17, 81,153,164,134,248, 12,118,188,175, 69,230, 17, 73,228,205,107,110, 8, 34,118,112, - 43,219,124,219, 10, 99,125,157, 45,105, 46,118,144,196, 32,234, 17, 57, 27,227,225,163,158,204,128,117, 93,167, 58,252,225, 15, -191,159,109,110,127,255,253,239,247,253,162,214, 16, 31, 99, 87, 18, 81,169, 56,202, 39,106,239,201,154,122, 68,112,168,169,105, - 53,195,108, 99,243,233,195,219, 7, 71,139,205,141, 73, 95,151,159,124,248, 95, 46, 95,254,154, 36,189,251,206,183,207,156,190, -176,223,115, 55,217, 60, 62,157, 86, 29,118,159, 62,125,120,251,198,245,235,183,174,220,189,249,120,231, 89,238,242, 47,126,244, -221,191,252,213,143,182, 79,110,247,189,161, 88, 11,129,132,222, 66,174, 94,193,249,237,183, 95,255,248,147,171,179,141,141,173, -121, 55, 74, 35,209,158,194,163, 77,138, 0,225,196,165, 84, 53,148,213, 80, 6, 83, 87, 87, 55, 7,167,132,161,118, 34,105, 84, - 31,132,169,237, 1,153,136, 90,101,139,170,171, 85,103,203,156,143,109, 30,219,121,250, 12,142, 90,171, 65,213, 21, 1, 59, 29, - 27,233,226, 28, 49,230,207, 40,113,138,111, 62,183,142,119,118,167,111, 93, 56,207, 44,110,182,234,251,163, 69,239,196,253,106, - 24,220, 86,203,195,248, 1,238, 10, 22, 84, 37,194,249,139, 47, 46, 15,246, 85,123,212, 10,144,112,202,211,217,226,232,232,149, - 87, 95,185,113,229,234, 59, 91, 91,119,126,247,225, 80,250,213,144,187,148,171,170, 8,145,235,241,173,147,175,189,252,210,245, -219,119, 74, 29,230,147,105,117, 95, 14,195, 80, 85,198, 61, 9, 49, 85,120,102,170,234,132,132, 38,134,135, 2,209,114,228, 13, -240, 64,220, 56,232, 60, 62,214, 73, 8,222,171,166,196, 24, 87,154, 22,193, 66, 55,109, 23,100, 12,230, 34,108,230,206,204, 2, - 6,131, 69,106, 52, 94, 82,171,131,140, 43, 84,213,186,204,110, 94, 75, 53,130,122, 13, 21, 40,160,121,181, 68,205,173,155,185, - 69,110,155,192, 0, 73, 34,211,200, 94, 0, 68,210,202,199, 84, 24,197,136,148,156, 76, 98, 8,150,181,235, 37,104,223, 22,192, -222,145, 7,194, 68,225, 6,141,144,103,141,142,107,120, 78, 50,146,249,140,192,230,198,180,214, 67,161, 14, 97,104,141,253, 59, -136, 41,139,196,205, 75, 36, 17,220,132,204, 61,115,156, 42, 60, 44,144, 1, 76, 83,212, 16,188, 77, 53,208,208, 2,169, 84, 91, -218, 16,194,240, 32,197,213,234, 4, 19,130,186, 27,140, 73, 64, 36,137, 59, 38,176,193,172,148, 26,102,167,152, 7,171,147,251, - 56,248, 67, 51, 52,242,226,156, 82, 24,158, 37,177,144,184, 85, 85,139, 35, 44, 12, 68,198,109,123, 97, 81,222, 29,226, 92, 20, - 90,196, 17,202, 34, 27, 54,202,116, 74, 38, 49,164,171, 3, 16,145, 86,119,193, 60,122,162,218, 79,140,188, 37,152,217, 80,199, -252, 85, 72,246, 76,166,174,100, 72,204, 12, 33, 98, 78, 49, 76,146,187, 83, 18, 42,198,194,173,255, 14,240,118,142,105,137, 75, - 78,100,181, 53,105, 50, 89, 76, 72,174,174,180, 22, 62, 34,140, 97, 49,143,140,124,150,177, 58,187,121,131, 25,238,141, 85,228, -186,110, 97, 85,115, 85, 99, 73,102,149, 25, 26,198, 95,132, 76,193, 22,165,243,110, 65,250,245, 54, 80, 58,152,204,226, 5, 73, -252,157, 17,132,132,187,162, 21,249, 38,127,238,119,180,150, 58,107,104,232,214,235,215, 84,102, 27, 33,146, 77,137, 39, 31, 27, - 26, 49, 62,195,137,216,201,128,248,188,226,201,164,227,105,217,215,244, 2,118,234,166,179,253,167,143,255,233,143,255,120,254, - 91,175,191,242,202, 75,171,126,209,176, 98,112, 55, 29,251,100, 70, 90,153,141,176,255,181, 32,102,102,165,212,170,211,205,173, -163,189, 39,117, 40,211, 99,219,168,245,225,189,219, 87,190,254,122,119,247,224,226,197,243, 47,191,244,178,210,124,169,211,205, -205, 41, 51, 47,143,246,158, 62,125,112,235,218,141,203,215,191,190,123,255,241,170,232,247,191,243,230,111,127,241,163, 23,207, -159, 53,194,114,217, 7, 21, 11,141, 99, 31,183, 63,115,114,213, 97,126,252,248, 91,111,190,248,233,103,159,253,240,131,247, 51, -139,194,104, 92,157,132,185, 37,144, 61, 14, 12, 67, 5,211,160, 37, 39, 97, 80,113, 99, 2,136,139,105,244,102,177, 41, 17, 39, - 73, 41, 65,146,136, 68,115,131, 84,143,181, 30,149,162,179, 99,115,134,169, 27, 9,139,123,146, 4,162, 9,139,155,246,165,228, -201, 52,164,141, 52,198, 99, 36, 73,215,229,170,181,154, 18, 92,162,217,130,232,220,185, 51, 65,134, 61, 58, 90, 30, 46,143,114, - 78, 7,187, 7, 76, 88, 46,163, 21,172, 62,175,150, 96,108,110, 29,223, 62,121,246,241,206,125,138,180,159,123,206,194, 68, 58, - 12,147,217,236,196,214,137, 55, 94,190,244,229,213,187, 93,234,166,147,169, 85,115, 82,131, 39,202,111,190,254,234,253, 71,143, -118, 15,246, 99,201, 11, 18, 98, 34,130, 40, 1,161,131,216, 56,224,180, 41,166, 93,236,238, 45,148,219,100,152, 22,136, 94,231, -153,219,246,101,141,192,104,176, 77, 12,117,152,118, 73, 40,244,153,112,243,170,153,243, 40,216,195, 33,113,125, 54, 48,158,134, -235, 82, 66, 91,168, 77,126, 38,152,154,119, 34, 86, 6,211,154, 82, 46, 90,171,195,220,149,204,149,140, 91,246,211, 84,153,136, -147,112, 78,172, 1,132, 33, 38,238,136, 43,179, 26,132, 57, 11, 86,225,165, 36, 38,167, 90,213,160,132,232,118,136,209,143, 71, -115, 71, 67,174,130, 71,119,121,124, 5, 83,142, 21, 91,169, 86,107, 73,221, 4, 68, 41,172,129, 49,225, 50,151, 90,162, 25, 53, - 8, 78, 18, 53, 45, 73, 58,164, 82,213, 17,157, 63, 60,201, 19, 35,243, 98, 70,205,235,102, 64, 23,216, 86, 97,144,193, 73,205, -132,192, 2,150, 68, 76,196,173,158, 45,108, 12,238,177, 9,142,151,202, 81,165, 91,181,192,188,122, 37,112, 78,212,151,202, 48, - 24, 3,158, 89,136, 56,167, 20, 29, 29, 32,207,194,196, 73, 77,153,196,220, 13,206,145, 79,181, 6, 33,104,212,108,120, 2, 27, - 67, 88,160,181, 17,205, 56,190, 17,163,106, 71,224,148,152,217, 66,144,200,162, 0, 0, 32, 0, 73, 68, 65, 84,220, 66,219,213, - 90,219, 46,179,221, 10, 69,214,102, 11,196,237, 3,236,144,240,249, 17,160,198, 93, 98,206, 76, 52,208,128,145, 29, 97,225, 12, - 52,203, 19, 68,213, 45, 0, 85,175,165,130,200,181, 58,165, 81, 23,126, 46, 20, 51,145,122,195,165, 53,237,162, 53, 34,182,142, -145,248,156, 99, 92,143, 49,199, 92, 91, 80,200,212, 13,141,108, 48,218,106,162,113,222,227,193, 26,141,120,136,186,143,224, 31, -143, 12,223,248,213, 26, 14,126,244,168, 51,135,113,121,189, 68, 13, 93, 74,136, 65,156,154,198, 98, 70,156,218,192,238, 80,117, -138,186,133,216,114,217,200,123, 88, 15, 21,227,242, 8, 13,188,214, 14,198, 81,113, 54,174, 72,194,218,104, 97, 41, 24, 53, 85, -155,204,102, 79, 30,220,255,167, 79, 62,126,239,251, 63, 57,181,125,124, 24, 22,214,248, 2,172,181,140,139, 84,105,223,236,113, -119, 9,111, 96,123, 51,213,170, 68,233,216,169, 19,207,158,236, 16,229, 19,103,207,220,185,246,213,221,107,215,190,186,122, 53, -117,147, 31,125,239,189,110, 99,123,229,211,233,100,115,150,187, 94,251,253,103, 59,143, 30,220,254,242,242,151,215,110,222,190, -255,116,111,123,235,248,255,244,223,255,226,187,239,190, 73,137, 87,165,114,108, 8,220,137, 18,154,111, 34,124, 28, 18,106, 97, - 25,202,246,233, 51,111,152,254,195, 71,159,254,252,167,223, 35,101,138,146, 2, 50,142,141, 84,235, 97, 96,131, 2, 88,245,131, - 8,107,144,234, 68, 82, 10,159, 8,139,112, 55,153, 76,114,166,204,172,110, 85,225,168, 69,187,220,185, 19, 49,171,250,238,193, -209,246,137, 83, 28,204, 25, 96, 50,155,166,184,114,217, 86,165,152,155,120,163, 23, 54, 15, 36, 19,152, 50,133,248, 30, 3, 12, -155,249,201,227, 91,231, 79,158, 81, 83,119, 63, 56, 58, 90,244,131, 27, 14, 86, 75, 48,245,203, 37, 12, 68,185,173,173,153, 96, -160,140,243, 47,189,180,191,187,211,219, 42,228, 0,115,158,206,231, 71,251,251,201,116,103,103,231,131,247,222,187,115,251,225, -106,181,146,148,167,211,169,170,133,235,115,235,216,246,155,175,191,254,240,233,211,190, 84, 16, 79, 18, 18, 72, 64,149,108, 13, -123, 53,179, 44, 92,204,215,163, 65,104,126,125, 89, 33,117,220, 12,118,235, 8,100,152,140, 65, 32,139,105,124,228, 79, 55,204, -161,195,129,106, 37,214,140,230, 38, 20,181,121,163,209,114,204,223,235, 24,166, 51, 64,200,195, 60,105,166,110, 97,140, 4,171, - 57, 27, 59,226,156,107, 17,160,244,120,205, 78, 77,164, 32, 73, 66,176, 44, 98, 85, 53, 12,141, 66, 76,158,133,147, 37, 97,150, - 68, 66,137,105, 96, 6, 9,231, 73,210,162,195,208, 14,183,173, 49,173,173,184,252, 57, 56,201,209,106,199, 29, 85, 33, 24, 8, - 28,173,234, 52, 62,223,168, 33,107,188,154, 54, 26,157,163, 26,152,168, 75,185,116, 98,213, 77,145, 37, 81, 99, 99, 54,107, 41, - 57,155,215,181, 61, 29,132,201,164, 19,192, 60, 6, 91,143, 67,147,185, 10,231,204,124,160, 22,132,203, 54,123, 58,152,201,212, - 57,232, 56, 6, 78, 4, 99,181, 18, 56,192,208,141,218,126, 66, 97,166, 48, 73, 99,139,116, 6,131,184,212, 2, 80,228, 75, 61, -120, 12, 54,178,245,195,237,107,174,230, 48,103, 97, 2, 21,160,107,119,232, 86,110,197,225,195,144,156,136, 1,138,247,223,160, - 93,234,180,138,214, 26,160, 31, 78, 13,112,155,226,135,127,131,229,201,205,201,200, 41,137,140,221,214,204, 68, 81, 5, 67, 92, -106,209, 90,146,204,145,152,220, 44,248, 42, 18,142,117,105, 4,195,102,116, 1, 73,220,141, 67,169,226,181,193, 70,213,192, 96, -136,121,187, 89,133,168, 72, 78,193,169,104, 95,207,102, 66, 71, 14,164, 68,251, 99, 6,114, 8,143,157,209,112,212,209,120,221, -250, 44,225,102, 22,221, 77,173,170,138,217, 93, 33, 13,224,193,230, 22,240,160,209,146, 18, 2, 44,165,216, 26, 56,137,143,172, -118,119,231,180, 86,185, 67, 80,178,245, 43,107,243,126,251,195,207, 99,172, 45, 55,248, 60,173,180,126, 0, 16,141,180,106, 6, -165,212,221,191,121,251,243, 47,191,252,224,167,191,220,158, 79, 87,253, 82, 13, 94,122, 18,166, 44, 45, 24,213,224,121,161,142, -197, 73,169,173,118,221, 76,205, 69,210, 98,209,175,250,199,171,195,195,249,214,214,199,191,255,255,174,126,125,229,233,254,193, -203,223,122,241,253,119,222, 90,233,188, 71, 55,155, 79, 97,182,191,255,100,247,233,206,221, 59,215,191,188,114,245,198,157,251, -230,254,163,239,189,249, 55,127,241,235,237,211,219,139,101,239, 69,163, 50, 13, 32, 55, 5, 85, 68,203, 15,113,140, 56,110, 97, - 48, 32, 45,229,133,115,231, 9,242,249, 23,215,223,123,255,173, 90,170,187, 58, 68, 85,193, 76, 77,187,243,190,239,235, 80, 15, - 23, 75, 22,202,194,102, 10, 34, 45,133,157, 5,156, 82, 78,194, 57, 39,113, 74, 44, 66,148, 51,167, 20,223, 89, 19,230,161, 14, -238, 56, 54,159,166, 46, 39,102,119, 63, 88, 28,205,143, 29, 15,243, 70,173,189, 89,116, 40,145, 8, 20,106,214,212,141,170,214, - 77,186, 56, 73, 5,239,246,133,211,219, 39,182,183, 8, 82,139, 29, 45, 86, 67,169, 6, 95,173,122,166,116,120,116,216,142, 68, -107,111, 44, 96,213, 38, 27,211,147,167,206, 63,120,112,139,132,181, 12, 32, 97,241,233,198,198,230,230,252,233,238,190, 91,125, -243,181, 75,159, 95,187, 51, 44, 23, 93, 11, 52,164,206, 25,134,151, 46,190,248,218,139,119,175,221,185, 39,240, 96, 77, 27,161, -130,162,208,122,146,243,192, 84,181,105, 11, 10,196,206,153, 65, 86,169,184,130,220,205, 25, 12, 4,144,160, 65,106,131,110,161, -230,235, 78, 9,139, 51, 45, 19, 83, 56,148,189,201, 27,140,214, 75,217,206,151, 86,125, 36,164, 58,188,169,147,128, 33, 73,231, -228,174,131, 11, 7,121, 81,107,105,102,201,214, 29,105,197,149, 41, 44,191,209,138,225,102,232, 70,171, 98,141,158, 12, 2,105, -184, 29, 52,119,157,153,182,226,235, 8,171, 54,128, 73,164,247,155,229,171,157,135,163, 37, 47,228,213,184,223,131,195,169, 96, -109, 82,176,168,180,139,120, 32,165, 96,201, 11,108,164, 63, 34, 46, 88,148,136, 73, 17, 6, 55,120, 13, 22, 86, 60,240, 70,108, - 27,106,173,213,109,189,114,175, 6,167,176, 45, 68,245, 29, 79, 37,171, 99,213, 87,243,234, 13,199,108,109,125,102, 46,210,170, -163, 8, 12,171,112,239, 18, 15,149,187,110, 18, 63,222,219,121, 30,236,236,160,170, 72,112,114,174,240, 68,158, 57,171,219,193, -209,162,150,154,208, 66, 6,222,150, 68,113,132, 52,134, 35, 5, 77, 22, 41,222, 32, 98,152,129, 91,181,185,183,112,172,106, 45, -213,163,136,213, 57, 65,213, 71,201,167,181, 94, 49,129,153,131,208, 0,131,248, 55,115, 90,237, 31, 26,233, 63, 58,128, 34,174, - 96,174, 90, 35,141,233, 24, 61,237,102,196, 45,109,187,142,242, 16,147,169, 66,162,242,176,185,163,199,167, 7,135,226,210,182, - 90,237, 62, 70,102,197,193,241,150,186, 19,181,155,248,168,104,147,123, 85,192, 73,164,193,114,227,173,113,113, 51,150, 56,236, -198, 53,194,113,222, 30,221,104,141,240,195, 4, 35,118, 53, 33, 82,131, 71,178,155,226,193, 12,134,166,245,106,191, 21,172,240, -216,104,187,190, 69,143,229, 43, 88,255, 60, 64,173,186, 26,113,147,227,215, 4,206,160,116,198,101,238,205,204, 24, 36, 60, 19, -226,148,228,202,231,159, 62,122,178,251,253,159,252,108,107,115,186, 90, 46,135, 97, 81,135,149,105, 24, 65,114,202,147,198, 49, -227, 96, 10, 27, 49,220,162,197,196,188, 42, 37, 89, 45,150,169,155, 88, 61, 98,153,192,235,199, 31,254,221,181,155,183,182,182, -182,126,241,147, 31,110,109,159,219, 43, 44,105,186, 49,155, 14,203,163,253,221,167,143, 30,221,185,122,253,198,181,155,183, 30, - 63,125,118,225,252, 11,127,245,203, 31,127,240,222,183, 13,124,112,180, 28,143, 39,207,211,179, 49,194,181, 80, 97,156,245, 70, -143,187,129, 74,209,179,231,206,238,238, 30,126,242,249, 87,223,125,231,205,161,244,238, 26,254,141,144, 94, 88,120,185,236, 35, -232,156,152,115, 98, 22,105,168, 16,241, 10, 77,137, 67,196, 42, 94,153,153, 37,149,210,154,127, 28,166, 90, 22, 61, 12,206, 44, -147,220, 77,186, 48,140, 81, 72, 61,213,188, 20,207, 41, 9, 51, 84,173,201,136,198, 68, 93,234, 34,112,191, 38, 55, 17,209,203, - 23, 47, 77, 38, 83,117, 43,170,135,139, 5, 59, 45,151,171, 82,134, 46,243,222,193, 2,238,100, 8,144,142, 55, 22, 39, 89,213, - 23, 94,250,214,193,222,147,197,226, 48, 26, 51, 64,153, 58,148, 50,204,230,211,251,183,238, 93, 56,123,246,201,238,225,253,103, - 7, 93,237, 39, 41, 87,213, 78,140, 56,119,221,228,221, 55,223,190,251,112,103, 40, 3, 17,169,150, 73,202,188,126,234, 7,242, - 59,132,181,150,237, 9, 93, 18,131, 14, 98, 41,103,161, 49,120, 17,192,145,214,217,218, 96, 6, 35,209,104, 36,153,167, 40,250, - 52,107, 62, 56, 49, 73, 19, 43, 53, 34, 57,110,110,110,209,105, 23, 31,159, 16, 25,195,157,106, 68,178, 9,139,126,213,113,106, -131, 45, 19, 41, 9, 9,192, 14, 13,240,111, 88, 33,201,220,216, 0, 38,115, 23, 98, 98, 17,162, 21, 72,136, 65,224, 88, 4,184, -169,173,189,110, 10,119,162, 58,170, 77,109, 14,231, 24, 11,131,198,211, 92,124,205, 45, 10,178, 17, 83, 46,237,148, 26,193,212, -160, 83,152, 23,159, 76, 51,193,132, 81,109,172, 77,107,253, 20,173, 27,137,195,121, 64,220, 44, 49, 4,107, 78, 62,140,220,106, - 90,255, 15, 63,135,139, 48, 19, 33, 17, 51,215, 82,131, 15, 43,142, 34,113, 63, 98,118, 67, 0,199, 28, 34,172,213, 23,171,126, - 99, 54, 85, 43, 13,203,109,174,104,133,160, 41,177, 17,170,214,233,116,163,243,240,250,197, 67,146,146,200,224, 0, 81,176, 4, -215,150,146,216,208,250, 24,197, 34, 14, 73,153,114, 74,165, 84, 68, 28, 56,114, 2,100, 34, 41,231, 92,181,143, 63,220,206, 65, - 26, 38,100,132,141,100, 29,104, 34, 48,216, 77, 61, 10, 4, 34,186,236,134, 4,238,189,152,107, 40,176, 33,111,231,148,221,170, -185,197, 34,186, 26,224, 22,193,197,198,129,107, 43,200, 8,236,144,187,169, 41,115, 30,207, 57, 20,246,145,144, 32,157, 91,235, - 81, 56,188, 93,163, 26,146, 91, 11, 74,228, 11,162, 50, 34, 30, 18, 18,182,137, 38, 12, 55,120, 0, 52,232,161,109, 62, 38,152, -197, 37, 76, 22,206,124,119,119, 47, 26,136,158, 49, 44,234,227,162, 59,102,121, 38,131,166,166,173, 48,193, 67,194,140,184,100, - 64, 32,215,149,127,104, 45,126,218, 96,115,117,117, 84,107, 73,147,205, 73,151,172,237,254, 90, 81, 96,123,188, 84,227, 44, 17, - 42, 37,152,136, 76,114,254,232,247,255, 85, 57,253,240,199, 63, 77,137,250,213, 82, 75, 89, 29,238,214,254,104, 50, 63,157, 82, -110, 56, 84, 97,178, 6,164,116, 50, 15, 86, 88, 45,206,105, 99,123,123,239,201, 14, 49, 29,219,222,126,112,251,201,222,157,219, - 95,124,249,213,238,209,226,251,239,191,117,246,204,185,222,183,142,106,238,102, 19, 34, 28, 60,219,121,244,240,238,237,219, 55, -174, 92,191,113,235,254, 99,131,255,197,159,253,248, 87, 63,253,224,216,230,230,170,154, 89,105, 27, 90, 56, 91,188,196,245,110, - 38,106, 4, 99,250,179,134, 30, 4, 17,188, 86, 51,247, 55,222,122,245,250,215, 87, 63,253,252,202, 91,111,190, 82,139, 82,203, -226, 69,111, 45, 86,203, 94, 85,139, 85,102,238,251,194,110,157,100,230, 68, 40,225,231, 93, 13,197,204,173,168, 51,139,184,154, -178,187,144, 48,177, 1,253,208, 3, 94, 77, 17,244,106,134, 72,134,193,137,234,160,197, 26, 18, 43,174,206, 68,164, 68,146,164, -170, 54, 49,211, 43, 81, 6, 83,150,244,250, 75,223,146,156,172, 47,165,214, 85,223, 19,211,209, 98,101,166,228, 60,212, 50, 30, -254, 4, 80, 18, 7, 73,192,188, 82,158,156,189,116,233,214,213,175,163,251, 71, 77,217, 89, 82, 18,213,243, 23, 47,238,239,237, -190,116,241,133, 39,187, 71, 71,171, 21,111,228,196, 86,172,102,201, 2,108,111, 29,127,251,213, 87, 62,250,236,179, 60,153, 4, -183,202, 28,112, 43,160, 82,135, 40,165, 26, 5,186,104,228, 33, 83,128, 88, 25, 18,136,200,231,119,189,134,155, 54,119,138,136, - 20,125,179, 73, 98,108,245, 36,146,152,229, 33,166, 40,102, 78,238, 74, 14,101, 23,129,172,134, 69, 18, 30,168, 70,192, 51,176, -167,253,208,147,250, 98, 40,202,150,115, 74, 34,238,108, 81,123, 30, 37,212,196, 97, 11,246,198,187, 32, 2,229,196,173, 10,219, -131,210, 31, 7, 12, 54,167, 90,139, 86,157,118,121,112, 8,177, 0, 66,148,153,205, 13,228,169,125,255,149, 27, 57,134, 64, 72, - 28, 25, 74,183, 86, 32, 27, 90, 17,180,221,202,220,201, 80, 73, 51, 17,188,172,250,217,100, 18,171,137,214,205,234,238, 9,228, - 72,204, 66,110,160, 44,121,237, 54,166, 22,182,143,172, 20, 26, 12,111, 12,165, 54,210,187,187,187, 7,103,185, 22,205,209, 34, -194,208,218, 12,207, 77,109, 77,217,155, 81, 89, 99, 19, 91,203,160, 93,166,148,180, 6,226,110, 84, 90,160,131,171, 24, 35,161, -235,210,225,178,159,136, 1,110,102,194, 50,159,229, 85, 79, 49,127,132,217,131, 5,132, 70, 0, 86,117,135, 53,131,160, 52,201, -159,154,109,180, 69,124,213,144, 19,131,201,204,210,136,154, 74, 68,195,248, 2, 98,173,161,238,236,110,177,202,178, 49,150,226, -205, 48, 82,205,122,213, 90,163,230,148,213, 91,133,232,100,146,217,106, 84,186, 27, 89, 45,218,121,172,116,226, 1,197, 24, 97, - 60,174,202,146, 97, 26, 27,104,138,123,121,244,144, 4,189,162,113, 20,220,163,125,214,156, 64, 34,205,224,222,148,106, 33,120, -128,109,219, 51, 54,174, 3,146,248,244,217,188,154, 21,133, 4,214, 32,136,239, 48, 43, 14, 9, 5,163, 29, 49, 48,130,247,163, -225, 2, 60,154,246, 29,206,241,227, 32,105, 77, 23,104,224, 59,247,200, 45, 52, 33,159, 28, 36,173,203, 38,150,159, 76, 80, 53, -181, 40,225,182,166,118,145,136, 88,248, 91,218, 36, 64, 62,166,154,152,115,102,250,221,127,254,207,105,115,235,199, 63,250, 97, - 63,244,106,240, 90,250,229,174,150, 5,113, 38,233,184,155, 16,181,238, 34,183, 18,155, 88, 16,187,171,105,173,213, 38, 91,243, - 7, 55,175, 87,245, 51, 47,190,248,249, 31,126,119,247,250,213,235,183, 31,156, 56,185,253,151,191,250,137,167,249,254, 48,207, -243,233, 68,216,116,216,121,116,239,225,131,123,183,110,223,190,122,243,214,227,221,253,243,231, 78,253,187,255,238, 55,223,126, -237,229,101, 95,130,193, 50,246, 60, 59,175, 67,133,177,151,118,139,194, 67,109, 78, 88, 48,179,143,128,111, 2, 65,109,232,235, -107,111,190,241,233, 39, 95,236, 29, 28, 30,155,111,184, 42, 9,197,156, 65,230,139,229, 33, 8, 86, 77,161,131,112,169,206, 73, -132,188,244, 90,173, 50, 39, 70, 9,166,152, 48, 1, 92,171,170,131, 51,187,161,148,224,146, 74,151, 82,213, 74,238,106, 8, 33, -136, 97,213, 42,220,171,217, 80,180,235, 24,112, 53, 35, 65, 78, 9, 85,179,164,222, 43, 57, 72,140,129,227,199, 54, 95,186,116, - 41,246, 42,139,195,189,197, 48,192,108,239, 96,143, 88,220,177, 88, 14,160, 14, 9, 30, 21,231, 77,243,115, 16,213,178,218, 60, -113, 98, 99, 99,243,240,112, 31, 34,108,238,156, 24, 32,170,155, 91, 91, 7, 71,135, 57,167, 87, 46,156,254,234,238, 35, 45,131, -204,166,181,104, 73, 53, 73, 55,155,230,183,223,124,235,254,206,227,219, 15, 30, 78, 38, 19,162,224,176, 81, 98, 44,139, 2, 16, - 24,211, 88,141,198, 14, 3, 51, 79,115, 14, 33,190, 37,233,121,156, 79,133,199, 73,140,157,108,252,192,226, 34,140, 72, 73, 43, - 22, 13,144, 57, 11, 85,175,177,111, 54,195, 36,139,171, 6, 73, 70,205, 90, 69, 6,195,129,126, 40, 76, 36,196,102,234,202,156, -137,128,149, 89, 8, 7,213,220,217, 85,225,130, 28,233, 6, 0,204, 10,119, 83,118, 38, 66, 39,180,126,236,131,224,196,148, 93, -114,202, 78, 43,210,177,176,184,133,189, 2, 20, 44,177, 74,117,128, 60,139,120,196,114, 49, 42, 31, 6,136,175,173,117,214,112, - 22,214,124,201, 12,146,212,154,218, 90, 76, 10, 2, 7, 83,202, 89, 74,182,170, 53, 8, 61,196, 1,236, 72, 36, 43,175, 41,165, -120, 57,163,211,141, 27,254,149,130,167,175,204,236,110,170, 4,212, 46, 77, 76,205,184, 61,185,194, 12, 97, 1,161,196,212,193, - 90,205, 65,211,233,180, 19, 49,162, 3, 56, 89,195,236, 41,131, 77, 34, 84,148, 36, 19, 19,187,229,212,181,145,143, 41,113, 71, - 52, 18, 77,198, 85, 74,108,144,100,236,172, 34,135, 16,213,102,117,109, 56, 52, 1, 87,183,184,146, 4, 20,181,115, 21, 54, 97, -210, 26,190,239,246,155, 71, 6,216,131,208, 75, 48, 55, 19, 88, 5, 3,130, 88,113,154, 87,175,181,144, 7,141,192,165,109, 85, - 76,131,132,204,201,161,153,120,160,208, 79, 34, 94,213, 30,118,204,112,109, 19,197,152,206, 51,208, 8,126,117,119, 24,145,216, -120,122,112,179,118, 98, 26,195,245, 28,125,185,163, 3, 48,100,121, 35,111, 95, 10,143,139,124,132,105,147, 80, 99, 59,199, 4, -246,156,140,235,163,250,164,186,238,201, 35,143,141, 82, 16,247,154,154,110, 66,137,208, 54, 34,214,172,118,205,222,216,188,250, - 99,118,201,218, 3, 93, 91, 92,213, 25,121,182, 33,146, 40,108, 33, 28,107,174,102, 28, 30, 53,154,150, 97,153, 76,102, 7,123, - 79, 63,249,248, 79, 91,167,206,188,255,221,239, 68,138, 50,190, 0, 41,117,150,231, 32, 73, 41,177, 16,140,215,141,128, 17, 65, -132, 69,171, 56, 87,235,119,175,125,113,236,204,139,180,255,248,147,191,251,127,190,186,114,109, 40,254,189,247,222,125,229,149, - 87, 15,250, 52,104,183,177, 53, 39,211,195,189,221, 39, 79, 30,220,190,113,227,250,173,219,215,239,221,239, 38,221,111,127,241, -163,191,250,205, 79,167,221,100,177, 28, 76, 45,178, 24,205, 73,222, 40,121,141,109,136,209,215, 17,192,221,200,201,197,182,181, - 61,254, 48,194,217,151,195,235,175,189,242,233, 23,215,222,124,243,181,173,249,180, 84,143,117,134,153, 61,219, 59, 82, 53,141, -103, 36,204,160, 48,130, 72, 74, 50,203,201,201,150,171, 62, 98,249, 69, 67,163,165, 80,159,106,173, 14,144, 55,119,163, 48, 49, -168, 14,195,203,175,191,114,225,204,153,123, 59, 59,218, 98,186,129,238,137,149,176, 20,173,165, 42,146, 44,251,158, 64,196, 18, -205,228,219,199,143,159, 58,115,178,104, 41,253,242,193,206,238,178, 31, 86, 90,150,171, 94,152,201,125,177, 92,197, 3,219, 65, -227,169, 50, 70,120,133, 91,202,147, 83,231, 46, 44,175, 31,154, 58,113, 2,123,242,204,146,150,139,195,173,227,199,151, 71, 71, - 47,190,120,254,198,131,199,253,208,119,147, 41, 11,151,126,152,204, 51,119, 50,247,249,111,126,246,203,203,215,174,223,186,123, -107,119,119,151, 36,150,114,221, 44,229,197,208,123,148, 74,199, 95,211, 84, 15, 98, 74,185,147, 78,228,112, 24, 74, 95,226,202, - 76,227, 42,222,224, 48,197,154,102, 48,170,166,223,204,187,133, 5,158,154, 4,202, 68,150, 72,106, 84,244, 41,165, 20,223,133, -209, 2,230, 94,181, 76,242,100,179, 75,197,140,199,210,236, 72, 88, 87,247,106,198,128, 49, 90,113, 1,164, 41,133, 54,214, 38, - 74, 50, 7,105,141,175, 94,116, 98, 11,137,195,138, 85,215, 34,129,109,129,151,208,238,130,178,215,168,197,238,142,170,106, 17, -141,115,111, 62, 10, 6,201,232,253, 24,253,105, 0, 58, 22, 39, 82, 81, 17,118, 71,151,186, 90,251, 90,123, 26,205,115,165, 70, - 99, 99, 56,230,162, 14,137, 72, 28, 74, 0, 43,185,185,151,120, 44,192, 51, 49, 55, 3,223,186,176,193,163,190,131,163,160,129, -153,106, 13, 58, 95, 72,202,230,148, 88, 44,114,118, 57, 13, 85, 55,231, 51, 34, 89, 14, 67,128, 72,218,137,170, 45,253,124,232, -109,146, 65,206, 4,154,118,147, 60,233, 82,107,199,139, 94,119,111,227, 56, 26,150, 0,136, 42,249, 17, 24, 9,111, 60, 20, 33, - 40, 68, 27,180,177,209, 31,216, 37, 37, 17, 73, 42, 44, 33,100,181,214,239,200, 84,232, 56, 83,214,170, 89, 18, 59, 69,248,200, -184,185,111, 99, 9, 18, 5, 45, 22, 12, 62, 13, 66, 17, 49, 5,195,193, 89, 72,146,104,105,235, 63, 15, 33,195,218, 65, 30, 0, - 76, 35,235, 75,113, 90, 4,199,221,131,149, 35,251, 31,103,127, 38,210,184,137,140,187,222,209,235,201, 90, 43, 37, 18, 38,239, -152,106,227, 42, 51,177, 91,117, 34, 80, 5, 55,163,123,187, 64, 42,153, 89,128, 88,213,220,201,131, 13,215,152, 0,193,117,136, -195,178, 89, 80,148,155, 43, 69, 0, 66,138,180,151,143,214, 64,111, 57,187,241,222,215, 14,108, 99,196, 43,150,176,146,218, 46, -140, 27,194, 35, 36, 32, 31, 1,147,163, 24, 79, 27,179,141, 39,247,238,125,246,229,229,111,191,253,206,217,179,167,135,126, 53, -170, 11, 78, 68,156,114,158,204,115,215, 9, 39, 83, 37,150,200,184, 18,147, 15, 78, 66,147,249,177,131,189, 71,171,197,242,196, -233,179,229,104,177,120,246,224, 79,127,252,232,246,157,135,223,122,241,252, 91,111,188, 42,211,227, 59,135,169,219,152,111, 77, -167,125,191,120,182,243,232,254,189,155,215,111,222,190,114,227,214,211,253,189,183, 95,127,245,223,252,197,175, 94,188,112,182, -168, 31, 44,250, 53, 67,100,141,245,161,245, 8, 22,246, 70,230, 81, 80,139, 93, 10, 99,204,212,143, 92,228,209, 9, 65,212, 73, -247,238,155,175,252,211,103, 95,190,245,206, 91, 39, 54, 55, 74,213, 64,204,173, 86,171,212,137, 65, 39, 20,220,108,140,112, 30, -103,138,140,167,167,196,129,157,227, 17, 24,157,178,168, 85, 83,203,156,231,211, 41,183, 86,113,212, 82,127,253,231,127,118,230, -244,246,239,126,255, 97, 24,253, 34,226, 19, 55, 2,201,212,155,155,150, 96,143,120, 52,234,186,178,211,185,179,103, 54,102,179, -229,114,181, 90, 44,135, 90, 96,182, 90,246,238, 6,146, 68, 28,109,102, 1, 14, 71,228,209, 24, 48,109, 43, 57,213,237, 83,103, -158, 61,122,180,183,255, 52, 73,142,167,108, 74,105,232,251,110, 34,211,141,141, 83, 39,182, 79, 31,191,242,224,201,209,114,185, -216, 58,118, 76, 75, 29,106,217,152,228,227,199,142,157, 60,113,234,197,243, 23, 62,249,106,251,255,253,219,223,117, 93,183, 24, -138, 57,152,185, 75, 57, 9,215,166,135,182,115, 34, 24,179,212,109,205,167,110,144, 36, 79,134, 50, 42,100,108,110, 50,134,233, - 27, 76,182,173, 39,209,246, 77, 30, 38,156,118,181,212, 90,218,221, 80,141, 8,194,168,197,200, 21,148,217,161, 20,128,220,248, -196,217,221,187,110,138, 90,133,152, 40,185, 13,212,126,115,169, 86, 18, 40, 17, 12, 20,230, 6, 38, 14, 67, 99,202, 2, 98,152, - 49,161, 18, 11, 71,104,186, 89,146, 97, 34,164, 41,103, 93, 44, 64,172, 32, 83, 99,225,177, 30,164,181, 82,140,214, 20, 39, 38, -213,231,221,215, 13, 84, 71, 32,162,170,202, 96,112,235,199, 20,238,178, 72,117,165, 26, 94, 69,119,184, 56,201,184,211,231,128, - 58,172, 47, 83, 13,223,157,138, 53, 39,190,195, 34, 70, 45, 76, 10,206,192, 0,111, 94, 67, 22, 34, 22, 78,102, 42, 32,109,143, - 14,143, 40, 99, 84,191,154,234, 48,148,156,164,214, 50,203, 27, 67, 41,165,104,219, 79,248, 90, 49,179, 86,245, 0,148, 82,213, -245,238,131,199, 27, 27,147,179,219,103, 54, 54,242,190, 47, 35, 79, 0,176, 43,208,138,251, 0,144, 85,195,250,177, 6, 40,144, -157,220, 24,104,121, 98, 31, 13,203,102, 49,249, 17, 11, 51, 9,185, 40, 9,115,204,163,177, 23,109, 11,196,182,118,253, 6,245, -135,129,170,149, 19, 39,226, 1, 74, 36,238, 30,186, 32, 28,174, 70,110,148, 58, 82,135, 49, 67, 19,133,173, 76,220,130, 45,216, -254, 47,130, 6, 78, 35,178,194, 50, 80,227, 61,115, 70,203,251,106,144, 36,107, 27,254,219, 32,213, 54,162,230,104, 99,136,187, - 89,165, 6, 71, 30,227, 62,173,132,197, 90, 60, 34,179,171,123, 20, 74, 89, 8, 12,161, 19, 81, 64,238,192, 8,201,207,160,100, -206, 20, 85,186, 13,240, 17, 22,228,212,104,110,230,193,251,129,141,166,173, 6, 32,138,167, 88, 20,164, 16, 51,219,248, 44,139, -161,213, 71,173,163, 89, 85,227,250, 85, 5,167,217,108,118,253,242, 23, 87,111,220,249,209,207,127,182, 57,155, 12,101, 8, 17, - 40,148,169,248,158, 74,238,184,155,186, 41,249, 56,188,152,186, 58, 72,186,249,214,131, 59, 87, 68,142,109,159,185,244,224,246, - 87, 15,238,220,252,252,139,175,213,240,139,159,254,240,212,201,211,251,125, 46,190,177,177, 61, 97,199,179,167,143, 31, 63,184, -115,245,234,213, 91,247,238,221,123,248,152, 19,253,205,191,252,205,207,126,248,221,174,203,203,190,180,214, 17, 38, 78,128, 6, - 58,175, 73,145, 78, 99,169,132,175, 67,182,190, 38,218,227, 57,123, 39, 22,205,213,145, 98, 33, 87,180, 76,231,155,239,189,245, -234, 87, 87,175,191,255,222,251,132,234,100, 14,175, 26, 5, 94,108, 98,109, 0, 24,225, 61, 78,212,229, 76,236, 93, 74,211,110, -178, 90, 44, 37,145,161, 53, 69, 86,117,115,218,152,229, 90,243,116,210,169, 25,129, 38,147,201,127,250,143,255,233,252,185,243, - 41, 73,173, 53, 62, 16,142, 1,137,200,213,132,152, 89,170,214,174, 75, 65,125, 17, 98, 23,188,124,233,188,136,184,211,209,114, -113,184,234,139,214,229,114, 89,213, 82,102,192, 87,203, 30,166, 68,236, 24,113,125, 46,142, 66, 44,113, 21,114,162,179, 23, 47, -237, 31,236, 82, 98,175, 85,114,118,162,201,108,174, 67, 15,243,253,221,253,247,191,243,214,225,223,127,220,187,174,250, 62,167, -180, 88,174,220,189, 38,238,171,246,195,106,168, 21, 12, 17, 33, 20,115,119, 66, 78, 41,137, 12,218, 55, 92, 29,140,152, 79,204, -166, 39,230,115, 35,235, 7,221,236, 38, 79,118, 3,206, 37,205, 33, 22, 18,188, 90,148,127, 9, 75,164, 57,155,189,202,161, 80, - 56,101, 91,187,208,188,147,100, 40,203,161, 82, 74,234,102, 77,139, 78, 2, 99,184,128,138,177, 36, 73,204,165, 86,115, 75,156, -108, 12,220,145, 25, 70,171,114, 35,205,196,176,199, 4,134, 83,220,232, 77, 40,133,224, 67,142, 20,157, 67, 74, 36, 36,137,135, -226, 86,149, 26, 10,201,212,171,133,231, 62,142,105, 80, 5,197,252, 78, 45,200, 99,177,224,215, 81, 42, 28, 93,103,252,141,174, -233,208,229,219, 75,227, 22, 44, 39, 15, 75, 63,188,152,101, 67,234,146, 90,137, 48, 21, 50,154, 31, 36,234,227,190,129, 10, 81, -115, 14,104, 49, 81,232, 86,173,123,149,168, 86, 15, 56, 96,171, 86,166, 88, 38,250, 8,244, 84, 87,103, 34,133,229,156, 82,169, -230,241, 60,224,208, 45,205, 61, 81,102, 1, 39,130,196,135, 56, 28, 29, 30,222, 92, 44, 95,186,120, 33, 9,197, 94,215,220,130, -134, 28, 55,237,148,147,194,188, 54, 21,119, 84,101, 72,200, 28, 28, 61,230,107,131,151,153,194, 61, 17, 42,147,169,167, 76,174, -196,196,112, 34, 78,237,222,137,152, 88, 35, 54, 7, 89,183,175, 18, 91,220,198,132, 5, 82, 85,169,148, 6, 20,115, 37, 6, 40, - 1, 86,189,186,133,113, 50,199, 30, 81,221, 34,114,229,181, 70,195,161,251, 58,206,212,214,212,113, 91, 71, 52, 69, 50,187,246, - 99, 1,153,135,251,206,131,144,174,218,124, 43,102,214,162, 91, 4, 33, 55,136,145,121, 37, 74,102,234, 22,224,231, 10, 25, 87, -178,230, 90,141,153,192,228,205,245,214,218,125, 67, 51, 81,215,240,241, 48,181,244, 95,112,186,216,141, 9,201,205, 91, 67,201, -248,130, 71, 63, 63, 71,250,118,221, 31, 20,179, 79,180,214,183, 29,113, 28, 6,252, 27,223,139,216, 34, 72,202, 57, 93,254,252, - 79,143,159, 30,252,242, 87,127,150,115, 46,117, 24,147,177, 54, 54,183,130,121,210, 42,152, 36,173,161,146, 90,202,116,126,236, -217,163,123, 7,123,251, 89, 38, 96,186,246,217, 71, 95,124,241,197,195,157,103, 47, 94, 56,247,254, 59,111, 87,222,216,215,110, -178, 57,207,147,188, 90, 30, 61,121,120,255,214,141,107, 95,223,188,118,243,238,131,195,197,234,181,151, 47,254,235,223,252,226, -141, 87, 47, 45,123, 93,245,117,236, 31,137,188,221, 55,234,118, 64,136, 86, 22,140, 77,178,113,129,141, 29, 36, 81, 72,219,146, -188,212, 38, 37,142,197, 16, 28,156,134,126,152,111,157,121,229, 91,248,195,199, 31,127,255,187,239,147,169,171,213,190, 14,195, - 0,166, 44,172,166,131,234,180,235,152,217, 13,147, 46, 37,102, 85,151,156, 33, 36,194, 58, 96, 40, 43, 68,111, 19,200, 77,103, -211,201,238,254,161,164,148,195,222,199, 84,213, 58,225,174,235, 86,171, 62,214, 1, 18, 93, 90, 64, 85, 87,171, 66, 84, 1, 33, -113,105,247,170, 68,242,173,139, 23,205,147,121, 41,181,148,126,168,234,139,229, 16,101,113, 12,233,195,135,209,142,215, 49, 5, -214,214,248, 6, 2,193, 74, 61,118,242,196,246,246,153,189,221, 29, 73, 83, 0,176, 33,167,206, 85,207,156, 57,251,248,209,195, -249,124,227,229, 75,231,110,220,123,178,234,151,137, 55,220,252, 96, 49,172, 68,150,203,229,193,225, 94, 95,170,154,175,106,137, -184, 30, 25,247, 90,200,145,136,156,216,173,178,240,201,249,198,137, 99,155, 44, 98,165,100, 73, 44,220,154, 30, 61, 60, 30,235, -114, 82, 5, 37,152,169, 87,107,157, 97, 24, 31,206,112,106, 61, 6,137,201, 13,213,234, 52,167,163,161,104,173, 0,114, 36, 72, - 83,195,164, 56,156,196, 19,135, 63, 69,200, 44,119,201,204,213, 40, 39,238,171, 6,111, 93, 93,199,147, 44,153, 85, 55, 73,173, - 21,181,165, 43, 3,137, 30,211,140, 59,204, 53, 81,210, 90,171,154,176, 68,161, 71, 49,139,239,174,153, 19, 17,200, 32, 57,140, -236,147,196,171,161,170,106, 99, 48, 1,108, 49,230,141,244, 79, 11,126,223, 8, 31, 6, 37,145, 94, 53,192,226,113,231, 66,252, -104, 51,171,106, 73, 88, 80,205,181, 90,215, 73,112,209, 2,204,107, 70,228, 69,205, 40, 49, 57,149, 96,170,132, 73,154,129,162, -144, 20,183,221,200, 10, 7,245,194, 45, 96, 11, 32,162, 68, 84, 99,124,118, 75, 41, 89,117, 8,169, 43,140,136,137,196, 81,130, -147,156,136, 17,186, 9, 28,100, 78,238, 93, 74, 85,245,202,141, 91,103,207,156,164, 86,129,235, 2,142,197, 26,224, 76, 52, 34, - 65,215, 76,241,150,173, 52,119, 29,171, 13,227,170, 20, 22,145,164, 78, 65,212,240,224, 22, 83,131,172,154, 42, 55,211,109,160, -180,198,101,114, 43,211, 50,134,132,112, 46, 34,205, 47,231,193, 47,104,232, 45, 87,116,156,140, 97,145,141, 80, 7, 88, 82, 26, -213,172,228,228,230, 37,182, 7, 26, 85, 30, 68,110,177,134,197, 90, 61, 37,106,220,230, 80, 89,208, 16,205,218,136,114,234,237, - 78,109, 78, 28,227,185, 57,220, 40,145, 7, 67,156,205, 92,149, 36,185, 26,133,160,159,192,230, 14,109,109,156,194,164, 10, 15, - 88,106,227, 59, 70,185,136, 51,130,231,225,196, 28,172, 75,110, 82,167, 60,239,170,142, 87, 20,248, 56, 29,247,208,177, 71,166, -177, 60, 18,107, 80,116, 56,236,198, 62, 91,119,228,220, 49,217,159, 62,252,112,185,194, 63,251,241,143,137,188, 31,122, 0,219, - 23, 95,222, 58,119, 49, 96,222,225,169,146, 46,158,245,220,205,230,231,223,249,129, 14, 37, 79, 55,134,126,177,251,236,217,100, -235,196,100,146,142,246,158,126,253,233, 63,254,238,247,191, 63, 90,149, 95,252,179, 31,188,255,254,247, 86,249,148,207, 78,109, -110,109,165,204,207, 30, 63,184,121,249,179, 63,254,233,163, 15,255,248,199,207,175, 92, 79, 57,253,235,223,254,252,127,249,247, -255,227,171,223,186,120,180,212, 17, 53, 62,122, 6,173,217, 97,124, 84,156,243,108,246,198, 47,254, 21,128,110, 62,127,237,231, -127,181, 86, 62,180,157, 80,168,217,214,252,121,248, 56, 44,167,235,145,190,150,229,214,137, 19, 23,206,110, 93,254,250, 43, 22, -118, 47,149, 52,120,153, 16,150,214, 12,202, 6, 83,237,137, 41,117,147,170, 6,162, 90,180,241,113,163,133, 12, 84,181, 38,145, - 46,231,161, 86, 85,203, 93, 14,139,236, 80,149,184,161,119, 61, 22, 58,210,214,141, 57, 75, 39, 41, 12,113, 69, 53,154,208,137, -112,226,216,252,252,217, 23, 74,233, 87,171,126,255, 96,121,112,120, 84, 77, 87,253, 17, 35,106, 50,160,117, 80, 83,138, 63,189, -214,123,131,129,212,146,252, 14,179, 23, 46, 93,224, 60,225, 8, 6,114,199,146, 37,231,201,108,118,238,210,165,103, 59, 79,207, -156, 58,113,233,204, 49,119,237,107,113,129,213, 97,185, 56, 26, 74,201,105,114,234,196,201,115,167, 79,195, 21,163,225,209,221, -117,244, 39, 25, 40,177, 76,114, 86, 83, 98,174, 70,204,148, 68, 56,110,210, 17,207, 24, 15,215, 76,210,112,240, 12,213,231,237, -190,109, 54,106,255,164,128,171,186,186, 2, 52, 17, 33, 10, 91, 3, 25,172, 69,100,199,181,103,180, 14,115, 56,211,137, 41,201, - 56, 30, 70, 34,209,205, 76,198, 10,210, 0,245, 70,155, 51,195, 25,164,113,160,160,150, 79,143, 31, 45,209,231,237, 80,242, 98, -208, 96, 25, 91,113, 88, 99,180, 68,121, 71,220, 20, 36, 63,135, 55,173,229, 3, 4,157,103, 68,179, 59, 66,223,228,248, 15,197, -133,201, 34, 18,124, 44, 1,155, 91,175, 74,193,158,108, 93, 74, 28,163,107, 83, 29,205,162,206, 42,224,195,144,232,160,104, 46, - 38, 97,105, 74, 1,143,102,253,128,187, 58, 0, 86,152, 1, 27,147,174,203, 29, 90, 14, 88, 56,120,190,176, 90,170,227,191, 41, - 90,226,204, 67, 85, 51,151, 0,198, 37,158, 76, 38,147,201,116,115,190,113,124,107, 30,119,176,176, 44,132, 55, 50,150, 95, 76, - 17,222, 90, 11,166, 35, 8, 58,134,211, 38,193, 81, 10,190,138,136,169,186,251, 80,170,213, 10,131,154, 85,171, 41, 26,100,153, -157, 36,178,174,209,194, 99, 17,210,140,253, 4,197, 38,165,121,117,227, 90,144,113,109, 99,218,142,107,213, 85, 32, 68,208,106, -189,150, 0,146,193,204,107, 29,185,192,173,222, 7, 6,168,187, 85,139, 1,222, 42, 53, 86,116,148, 78, 89,187,219,152,181, 52, -112,128, 87,152, 41,177,131,180,170, 85, 87, 85,115,133,170,197, 58, 59,220,164,102,134,192, 18,137,235,152,252, 10, 72, 78,177, -182,113, 10,254,119,216, 40,199,179,230,248, 40,180, 88,151, 70,223,173,194, 82,132,137,162, 37, 55, 96, 25,241, 80, 20,153,156, -123,251, 59,177, 47,173,253,106,247,222,205,126,121, 68,163, 50, 31,135,226, 88,250,183, 35,140, 86, 48,165,212,245,139,131,127, -252,199,127,216, 62,253,226,123,239,189, 61, 12,171,248, 55,230, 39, 95,112,211,253, 7,119,200, 26,217,200, 17,101, 71,168,174, -245,232,240,238,167,255, 48, 61,118,108,119,119, 71, 73, 78,157, 57,251,248,254,237,221,135,247,191,250,234,203, 27,183,239,125, -251,141, 55,222,127,247,237,130,217,138, 55,103,243,201,116,190,241,198,119,223,215, 90, 29,120,112,231,246, 71,255,231,255,126, -255,217,211,239,188,245,250,191,250,245, 63, 59,127,102,187,175, 94, 75, 1,132,156,192, 78, 26,103, 92, 91,211,135, 90,237,210, -250,139,229, 24,150,135, 87,255,235,255, 61, 78,178, 96,226,182,197, 27,181, 55, 40,136, 61, 4, 79,242,231,219, 61,119,175,170, -151, 46,188,124,248,197,103,151, 47,127,253,222, 91,175, 88, 33, 7, 55,234, 83, 91,125,128, 12, 44, 41,137,116,147,137, 48,123, -228,194,163,185,157, 37, 34,210, 79,247, 15,103,147,105, 24,187,147,200, 80,106, 75,135, 19, 51,203, 98,168,193, 70, 4, 1, 22, - 97, 30,114, 39, 53, 99,162,121, 55, 17, 73,195,208,199,126,100,251,196,137,227,199,183,134,161,212,190, 63, 60, 56, 60, 90, 45, -234, 48,148, 26,139, 44, 35, 78, 85,181,150, 2, 74, 64, 9,162,210, 55,225,185,225,192, 54,179,217,124,243,212,169, 51, 79,119, - 30,115,238, 80,171,147,138,176, 41, 15,171,225,216,252, 88,158,228, 90,202,163,167, 7,123,203, 62, 65, 82, 74, 67, 29,102, 27, -115,152, 77,114,254,246,171,175, 61,253,199,221, 40, 51, 19, 33,212,246, 21,230,240,110, 81, 12,186, 84,107,101, 33,102, 2, 99, - 42,178, 82, 75, 44,213, 61,154,172,219, 33, 52, 64,142, 99, 91,233, 55,163,217,194, 76,160,138, 32,212,234, 52,231, 90,107, 16, - 40,219, 8,174, 62,150,178, 96, 77,184, 78,204, 52,198, 67, 76,219, 91,202, 17, 48, 34,213, 8, 14, 54,105, 67, 0,147,148,136, - 25, 68, 58,218, 60, 56,220, 32,228,125,173,135,203, 37, 17,117,147,142, 24,181,212,230,103, 32,144,179, 52, 13, 52, 56, 57,149, - 64, 44,196, 36, 36, 66, 32, 69,227,124,193, 98,191, 26, 2,124, 11,202, 53, 72, 44, 81, 11, 80,176,176,183, 98,233,112,242,193, -188,214,210,165,228,174,102, 22, 78,102, 53,165,148, 90,133, 20, 49,162, 99, 58,110,249, 68,193,170, 27,145,223, 26,213,179,102, -148, 51,245,203, 18, 39, 9,206,194,165, 40, 64, 64, 81, 83, 93,177, 16,220,213,212,128, 36, 36,156,137,200, 92, 73, 46, 89, 25, - 0, 0, 32, 0, 73, 68, 65, 84, 9, 28, 55, 61,106, 59, 81, 74, 76,185,203,129, 31,142, 66, 43, 38, 62,182,185, 97, 62,222,113, -189,245, 20,178, 96,154,115, 74,172, 67,187,235, 18, 17, 24,108, 17,193,245,200, 15,248,168,174,132,106,212,150,149, 4,117,171, -170,165, 86,152,173,101,247,208,187,198, 10,186,160,181, 69,201, 7,226,215,149, 78,192,100,138,136,158, 56,147,164, 88,175,196, - 27, 38,100, 6,184,128, 11, 65,181,130,224,174,113,112, 11,125, 5,205,109,105,176,218, 52, 12, 34, 18, 66,141,218,119,179,106, -235, 40,149,187,181, 11, 45,118, 36,104, 43,246,166, 20,141,212,175, 86,244,225, 81,179, 28,233,163, 24,251, 53,248,164, 14,247, - 4,212,118,155, 6,199,134,154, 81, 42,115, 84,223,142,114, 34, 81, 43, 77, 80,149, 44, 65, 43, 79,145,133, 24, 87, 91,163, 92, -220,128, 8,126,247,243, 63,192,113,252,220,197, 19, 23, 95,122,240,213,199,104,188,219, 32, 88, 24,190,121, 94,102,234,166,179, -251,183,111, 94,189,118,253,141,183, 63,184,116,238,212,193,226,136,219, 61,209, 15, 31,223, 11,160, 86,235, 77,109, 58,141, 25, -156, 56, 77,187,252,244,201,206,242,104,209,175, 14,231,199,207, 94,249,228,195,235,215,174,223,186,123,127,107,107,235, 95,252, -246,215,219, 39,207, 23,108, 72,238,178, 80, 93, 45,119,151,135,238,254,127,252,111,255,225,202,237, 91,127,245,111,255,230,127, -254, 95,255,195,127,249,191,254,227,143, 63,120,151,153, 34,134, 71, 36,204,145,108, 72,224, 58,130, 2, 3,208, 95,141, 37, 32, - 92,107, 8,109,192, 96,209,166,152,166,222,196,191, 51, 38,159,104,180,250, 70, 33, 7, 71, 5,108,160,112,250, 82,190,253,238, -187, 87, 47,127,249,247,127,248, 88,205, 61,234,163,122,217,200,236, 14, 73, 4, 34, 53,159, 8,107, 41,238,200, 41,117,147,201, - 98, 56,138,163,155, 8,147, 80,173, 58,217,202, 65, 43, 77, 57,149,213,138, 17, 85, 94, 6,160, 31, 6, 35, 34, 39, 27,243, 7, -238, 86,181,150,170, 85,221,108,152, 77, 8, 73, 88,184, 86,123,241,194, 11,179,217,198,254,222,222,106, 88, 45,135,178,234,117, - 24,138,213, 18,112,230, 38,222,219,232, 24,138,187,209,216,232, 51,126, 58,177,202,163,211,231,206,238,238, 60,172,253, 82,164, - 35, 8,145,164, 52, 75,124,116,230,210,133,199, 15,238,207,143,205, 47,157, 57,185,188,251,104,213, 47, 39,211, 46,229, 44, 44, - 44,169,168,158, 56,113,252,194,133,139,215,110, 92, 39,233,140,184,109, 25, 92,225, 96,215, 76, 81, 20,156, 13,150,136, 18,145, - 59,205,186,174,168,217,216, 57, 24, 21,166,102,113, 14,243,128,101,184,181,175, 50,185, 11,145, 39,214, 58,110,254,225, 14,174, - 94, 34, 46, 38,196, 41, 81, 41,145,217,110,155, 58, 34,151,204,147,148,107, 45,137, 57,108, 6, 22,199,103, 33, 17,233, 52, 45, - 67,197,104, 68, 38,112, 98, 34, 79, 4, 53,229, 72,129,171, 81, 74, 99,232,197,164, 69,139, 27,252, 44,181,145,158, 73,185,205, - 76,113,110, 52, 39, 73,164, 14,114,133, 33,148,207, 86, 44, 20,180, 75, 48, 65, 18,149, 26,248, 18,133,187, 36,129, 59,179, 48, -155,215, 18,222,121, 98, 49,114,102,202, 76, 10,168, 34, 34,114,137, 33,194,137,189, 68,229, 72,131,215, 66,129, 12, 74, 14, 73, - 18, 17, 82, 9, 43, 1,155, 83, 99,162,129,134,168,234,214,234, 69,155,179,168,148, 58,203,156,115, 23, 95,167,106,154,187,137, -181,133,103,195,150,211,120,246, 75, 73,140, 48,148, 74, 84, 77,157,152,114,202,179,105,183,209, 77, 15, 86,125, 48, 48, 90, 11, - 94,155,103,189,148,152,166,215, 86, 59, 90, 27, 32, 44,208,141, 77, 28, 1, 11,229, 28,239,180, 19, 48, 12,149, 73, 76,149,153, -134, 82,145,121, 50, 50, 7,195, 89, 22, 80, 67, 34,215,231, 21, 29, 28,105,216,204, 84,141,220,218,139, 79,204,194,148, 9, 70, -112, 14, 47,146,145,129,236,249, 11,138, 35, 63,115,163,136, 70, 27, 50,185,134,163,218,107, 4,144, 42, 2,202,214,240, 10,149, - 72,108,100,139, 17,147,170,186,129,153,132,216, 41, 57, 59, 35, 46, 39,109, 68,213, 88, 56, 71, 86, 41, 9,204, 52,138,253, 76, -219,138, 48,210, 57,214,154,174, 73, 72, 32,198,132,245, 73,202, 91, 13, 37,137,169, 67, 72,200,145,218, 67,114, 68, 62,133,111, -228, 57,222,222,156,152, 23,251,123,243,147,103, 9, 41, 50, 20, 39, 46,190, 60, 61,118, 28,238,139,103, 59,207,238,223,114, 85, - 98,153, 76,167,180,185,253,238,159,191,253,206, 47,117,249,244,241,177,115, 23,143, 62,249,135, 16,124,182, 47,188, 52,219, 58, - 9,162,229,254,211,189,123, 55, 80,149,167,211,115,111,126,239,225,181,203,167, 94,124,101, 88, 46, 30, 94,187,252,230,207,127, -123,227,143, 31,174,150, 7, 15,110,126,117,230,219,223,253,193, 95,253, 59, 38, 60,123,112,231,193,173,135, 3,208,165,206,181, - 30, 62,219,219,121,116,247, 96,181,248,193,175,255,249, 71,159,126,178,232,235,131, 27, 87, 94,252,235,191,254,233, 7,111, 87, -247,211,175,127,127,235,236, 37, 16,246, 31,222,185,255,229, 31,220,120,186, 57,123,237,255,175,234, 76,158,236,186,146,243,254, -101,230, 57,247,189, 26, 80,133, 2, 10, 35, 1,162, 9, 14,104, 14,234, 73, 77,170,217,146, 90, 99,104,136,112,135, 23,178,108, - 45,188,241,159,224,173,255, 8,239,189, 81,132, 55,118,132, 35, 28,150, 29, 33,135, 34,100,205, 45, 91,146,155,100,143,106, 18, - 36, 65, 0,133,185,128, 66,141,239,189,123,207,201, 76, 47,242,220, 7,121, 73, 6, 3, 32, 10,239,221,123, 78,230,247,253,126, -223,250,245,135, 31,127,184,253,202,155,195,236,248,238, 71,127,147,186,116,233,237,111,173,158,222,174,253,124,255,254, 23,241, - 19,237,214, 79, 93,251,230,175,221,252,235,255, 65, 68, 47,127,227, 87,242,202,169,118,111, 22,222,187,115,243,217,157, 79, 34, - 33, 63,146, 61,218, 17,180,133,133, 64,238, 86,134,197, 27, 55,110,252,232,195,239, 63,222, 59,154, 76, 59, 34,206, 57, 87,171, -179, 82, 54, 90,104, 89, 19,200,128,197,208, 39, 73, 66, 82,212, 88,120,168,106,176,147,249,130,137, 69,146,185,170,182, 93, 88, - 22, 81,243,220,117, 81,154,112,130,144, 48,187,100,169,145,141,133, 17, 81,206,121,182, 88, 52, 0, 33, 67, 77, 47,159,191, 72, - 76, 64, 61, 60, 58,218,125,182, 55, 88,237,135, 94, 3, 54, 11, 39,120,233,251,161, 44, 36,117, 99,146,201,185, 25, 82,148, 60, -236, 99,113,255,179,201,202,234,217,243, 23, 31, 63,188, 7,130,107, 9,168, 95,238,214,230,243,227,110,210,237, 62,126,122,249, -210,185,131,249,226,238,163,103,168,188, 62, 89, 53,184,176, 0,164,181, 94,191,114,229,201,238,110, 95,139,120, 0, 87,193, 97, -211, 35,241, 64,222, 39,158, 45,106, 22, 94,244,101,115, 99, 45, 75, 94,153,218,124,177, 8, 27,156,155, 87,168, 54, 10, 58,150, -116,167,168,164,134,245, 52, 60,187,161, 99,117,135,214,216,210, 27,145, 40, 84,171, 19,185,105,188,195, 90, 16, 52,115, 38, 56, -177, 12,181,100,114,102,113,210, 26,115,127, 99,206,205,145,216,116, 30, 68, 80,114, 39,117, 54, 47,198, 98,106, 93, 74,177,239, -100, 16, 20,147,201,132,153,213,140, 33, 78,200, 41, 11, 17, 67,204,213,162, 32, 21,191, 24, 51,107, 85,211,208, 24,250,210, 97, - 73, 49, 61,113, 50, 82, 50,175, 70, 96,129, 23, 16,167, 78, 40, 30, 23,222,151, 69,169, 53, 0, 84, 48, 35, 22, 97,230,212,213, - 82,152,201,204,205, 93, 72,148,144, 29, 66,164,176, 65, 73, 56,194, 53, 77,230,173,134,212, 22,162, 36, 36, 18,197,164,106, 57, - 33,229, 92,106, 85,160,106, 25,211,150,164,166, 41, 5, 99, 2,213, 28,142,162,150, 71,142, 49, 64, 44, 20,188,169,230,138,101, -234,178, 52,249,140,227,212,234,218,100,154, 17,168,181,178, 20,109,182,109,157,249, 11, 15, 0,141,153,114, 16,229, 36, 67, 95, - 83,150,130,210, 96,130,106,117,168, 3, 23,114,154,247,189,169,229, 73, 50,210, 36,226,240,106,150, 9,145,159, 0,187, 27,195, - 52, 81,151, 64, 99,212,220, 45,208, 39,209, 65, 36,102, 97,104, 8, 53,187,152,141,168,171,228, 14, 90, 85,131, 43,236, 54, 22, - 20, 8, 47, 30,243,209,137, 49, 37,127,177, 93, 29, 69,129,212, 74, 77,193,214, 80, 72,203,192,153,133,244,216,181, 16, 51, 28, - 22,229, 7, 55, 29,211,235,237,149,217, 40, 65, 4,102,168, 15,234,196,130, 56,208, 9, 92,157, 65,102, 96,137,102, 68, 48,103, - 65,240, 48,228,180,151,166,197,254,138,221,192,102,230,158,104,233,230,104,253,144,216,208, 99, 57,101,118,208,234,198,102,153, -207,226,118,117,230,234,117, 51,123,240,179, 15, 25,178,125,253,198,198,249,203, 39,187,143,221,201, 86, 79,105,173,135, 59,159, - 15,195, 98,235,202,171,205,185, 13, 63,115,229, 53, 22,126,248,179,239,187,209,246,245, 27, 27,231,175, 60,191,255,133, 23, 5, -209,250,153,179, 15, 62,254,225,201,225,222,249,151, 95, 3,176,251,240,139, 59,159,127,250,149, 95,255,174,176,124,250, 55,127, - 44,147,141,107, 95,255,214, 69, 94,217,123,248,112, 62,155, 31, 62,223,125,116,255,238,205,207, 62, 59,174,229, 95, 1,156, 38, -127,240,155,191,242,221, 63,248,151,195,236,104,222, 15, 87,191,242,109,146,116,243,123,255,147,160, 47,189,243,254,133, 87,223, -121,244,217, 15,226, 48, 62,221, 56,123,235,239,254, 44,182,222,151,222,250, 5, 43,229,211,239,253, 73,202,114,249,237,247,218, -151,204, 70,150, 39,252,206, 7,127, 25,223,187,213,179,231, 47,189,249,222,241,211, 71,227,151, 48,222,232, 28, 78, 57,143,196, - 35,193, 40,126, 92, 92,170, 95,187,122,197, 76, 73, 4, 76,171, 57,247,131,101,146, 70, 91,165, 70,164,154,245, 67, 55,233,170, - 87, 33,234, 18,149,129,220,188, 22,151, 44,194,146, 88,192, 84,172, 56,121, 53, 35,131,144, 28,157, 44,212, 52, 75,226, 70,100, -166, 36, 34, 44, 89,166, 8,191,177, 91, 92, 85, 50, 39, 21,123,249,210,101,119, 41,131, 29, 31,205, 15,103, 39, 66, 88,244, 5, -230, 35,113,129,204, 81,230,243,110,115, 69, 81,157, 2, 68,101, 52,142,157,192, 78,224,214,249, 50, 59,127,229,202,241,225,254, -201,236,132, 89,152, 29,194, 83, 94, 25,234,112,250,236,217,253,253,253,211,219,103,206,236,237,157, 44,250, 39,251, 71, 73,100, - 34,157,186,129, 5,196,171,107,211,107, 87, 94,250,252,238,157,170,234, 22,214,236, 56,144, 41, 17, 27,224, 76, 57,201, 80,171, -185, 14,106, 14,155,138, 12, 41,107, 63, 4,247, 21, 12, 81,142,135, 75,202, 17, 26, 48, 51,152, 58,117,204, 28, 91, 71,130,107, -117,176,112, 85, 93,153,118,117,168, 32,102,113,152,113,180, 3,173,173, 77, 44, 37,115, 45,129,206, 3,113, 13,232,188, 59, 92, - 64, 6,133, 33,194,172, 1,217,115,117,176, 12,181,178,112,151,186, 44, 60,144, 78,166,211,161,148, 8,168,113, 78, 29, 16,186, -212,190, 46,198, 53, 13,129,148, 18,161,132, 31,137,221,140, 13, 75,127, 49,150,146,194,152, 23, 69, 50, 61,158,110,194, 53,114, -223, 70, 14, 19, 98, 48,169, 91,151,146,219,184, 79,107,124, 68, 33,119,225,152,167,162,204, 75, 78, 34,206,225, 87, 50,115,225, - 37, 91,168,197,249,164,249,166, 27,165, 48, 6,102,237,175,190,125,202,169,169, 62,218,163, 73, 15, 78,250,205,211,147, 46,103, -131, 77, 40, 11, 36, 40, 97,157,164,193,141,108,100,231,130,220,217,137, 68,152,128, 94, 32, 44, 78, 32,150, 90, 10,218,124, 57, - 44, 29, 77, 94, 10,130, 90,109,221,203,168,139, 68, 54, 16,198,121,249, 70,119,144, 91,160,155,181,102, 79,196, 4, 19,114, 74, -196, 3,185, 16, 75,203,134,138,123, 31, 23,208, 37,253, 55, 28, 29,109,106,206,173,113,108,198,173,208,234,205, 3,146, 82,178, - 98, 99, 43,205,150,168,154,113, 9, 39, 35,224,222,219, 13,146,108, 73,107,137,188,137,143,146, 57, 54, 55,134,140, 43, 21, 39, - 27,249, 60, 78, 41, 17, 56, 49, 85, 55, 35, 7, 9, 91, 44,250,140, 69, 76,221,180, 89, 3,200, 56,177, 0,228,197,226,255,167, - 29,182,199,144,123, 91,222, 54, 0, 59, 53,142, 38, 11,153, 9,155,186,179,147,185,105,248,104,252,133,218, 56,148,162,218, 32, -193,228, 32,186,252,214,215, 95,122,251,235,107,103,206,237,221,187, 77,196, 76, 60,221, 56,125,240,112, 7, 14,213,225,240,201, -189,181, 51,231,158,238, 62,250,241,143, 63,186,112,245,149,105,153,205,142,246,203,162, 63,124,124, 63,242,241, 48, 91,219, 58, -187,119,247,150, 22,211,170,251, 15,238, 78, 55,183, 2,116, 14,224,217,206,231,135,207,118,215, 54,183,119, 31,220,113,224,131, -127,248,254,195,221,189, 55,222,249, 90,121,118,127, 94,186,253,133,220,191,115,103,115,251,236,241,254,254,195, 59,159,254,248, - 71, 31,252,221,255,253,224, 7, 31,127,114, 50, 95, 48,243,127,250,163,255,254,175,255,237,191,155,156, 58,123,239,199,255, 71, - 36,111, 94,250,210,163, 79,126, 0,171,174,254,236,206,167, 27, 23, 94,102,228, 56,135, 60,189,245,177,169,186, 85,164,180,190, -125,241,201,173,127, 36, 87,237,135,189,187,159,182, 12, 26,191, 16,108,198,120,176, 91,219,184,244,229,119, 31,125,252, 97,127, -114,248,130, 84, 59,210, 48,226,220,232,177,105,247,216,156, 87, 70,173,170,211,220,177,176, 80, 60, 11, 41, 24,156, 64, 60, 80, - 98,220,111,153, 19, 32,230,148, 56, 41, 96,238,197, 44,214, 62,145,207,170,165, 16,197,141,146, 84,245,112,118,220,236,132,163, - 71, 28,106,129, 72, 92, 90, 45, 98, 7, 41, 73, 54, 55,214, 47, 94, 62,231,174, 67, 41,251,135,135, 39,199, 51, 55,235,135,222, -225,137, 8,228, 10,192,108, 49, 91,180,103,232, 72, 74, 26,139, 12, 99,235,139,209,120, 38, 66,103, 47, 94,130, 57, 17,152,133, -140,221, 49,157,174,184,250,198,198,198,243,189,253,139, 23,207, 93, 58,115,122,109, 58,237,251, 65, 81, 45,102, 74,100, 48,121, -249,210,229,205,141, 77,175, 85, 82, 64,131, 95, 44, 22,133,224, 26, 28, 67,164,148, 2,184, 10,162, 83,211,105,226, 22,224,173, - 69,227,158, 20, 95,224,232,254,249,168, 67, 12,159, 42, 19,178,164,168,161, 85,115,141, 93,171, 85,150, 20,174, 68, 10,248, 21, -144,152,146,163, 19, 14,213, 25, 51, 27,172, 86, 53, 67, 13,128,223, 11,222, 80,139,195,131,131,117, 27,136, 18, 59,153,247,137, - 89,171,166,196,153,216,220,171,234,184,133, 13, 6, 30,123,181, 81,196, 65, 13, 5, 60, 30,156, 28, 68, 2,115,173,117,112,179, -255,239, 35,135, 86, 65, 97,138,104, 14,178, 8,220, 23,253, 80, 84, 3,199,202, 66, 20,108, 3, 34, 23,164, 36, 36, 18,151, 72, -225, 88,241,210, 8, 62,104,216,113,107,110,216, 40,187, 24, 17,115,148,175,194,177, 97,206,204,146, 36, 39, 97,145, 49, 28, 68, -141, 21, 65, 16, 73,237,197,204,228,110,213,253,164, 95,112, 68,157, 2,137, 58, 70, 56,105, 92,202, 10, 39,133, 51, 81, 78, 57, -119,194,224,196,156,146, 56, 19,145, 51,216, 65, 70,196,112,102, 74, 52, 46, 61,199,177,168,171,151, 18,221, 94,211, 22,120,228, - 20,193,202,246,217,228,212, 12, 54, 73,225, 90,171, 80,106, 98, 57,225, 49, 63,206,254, 79,250,139,222,100, 9,141, 64,210,194, -217,214,162,163,211,156, 25,148, 4, 76, 78, 4,181,229, 52, 59,250,171,213, 81,199,230,163,171,153,143,167,120, 98,226,204, 32, - 50,173, 49,208, 20,230,148, 69, 82, 2, 19, 56, 80, 75, 20, 15, 88,130, 16,199,124,206,199,181,139,131, 9,228, 68, 78,209, 16, -101,176,128, 40, 17, 73,117, 99, 24,196,226, 21,160,222,126,211,230,153, 4,133, 86,208, 70,202, 0, 1,110, 21,174,213, 76,205, - 75,109,117, 86,114,164, 37,197, 61,142,219,227,101, 46,197,167,228,254, 79, 62,224, 60, 61,123,245,218,218,153,237,195,199,247, - 37,103, 0,181,244, 4,164,212,145, 17, 49,223,125,240,232,231,190,246,117, 0,243,147, 99,175, 14,129,246,125, 92,254, 72, 4, - 68,231, 94,123,139,150,156, 35, 80, 85, 8, 10,220, 9,137,200, 31,223,250,228,254,147,221, 27,239,253,218,230,153,211,111,191, -121, 3,192,238,243,133, 76,214,114,199,139,195,163,148,211,103, 55,127,242,217,173, 47,190,184,183,179,251,108,127,123,107,243, -159,253,218, 47,186,251,167,127,241, 71,165,214,240, 2, 77,214, 54,136,232,245,111,255,206, 50,173,222,160,129,238,112,175, 67, - 31,203,144, 73, 94, 1, 80, 23,179,248,111,202, 98,214,230,209,227, 2, 58, 94,243,156,243, 75,239,124,107,239,206, 39, 39,207, - 30,241,216,238, 86, 53,144, 37,138,213,230,200,192, 67, 52,173, 91,159,162, 47, 11,117,154, 76,186,201,180,227, 36, 90,171,135, - 8,170,177,140,204,220, 76,181,203,169,148,162, 86, 1, 38,112, 53,171,117,112, 55, 17,113,231, 68, 92,251,154,114,118, 51,144, -151, 90,231,125, 77,241, 33, 7,133,192,110, 17,245, 30,130,145, 27,116,154,115, 41,133,128,190,212, 47, 93,185,116,118,107,187, -106,237,251,147,195,217,201,224,170,106,195, 80, 9, 28,135, 16, 1,140,105,168, 53,218, 12, 35, 93,174, 85,147,209,254, 52, 99, - 33, 82,221, 29,155,219,219,167,158,238, 30,237, 63,231,148, 2, 10,158, 58,211,154, 87, 38, 19, 29,106,183, 50, 93,223, 56,188, - 90,206,220,188,255,104, 24,116,210,137,153,119,146, 6,171,224,233,181,203, 47,237,237,237,185,123,199, 60,184,122, 72, 48,137, - 4, 24,138, 50, 81,151,100, 81,123,118, 36,102, 0,211, 46,207,250, 92,181,186, 75, 63, 12, 75,173, 51,168, 83,107, 95, 95, 18, - 14,243, 73,230,228,110,210,117, 54,215, 1, 69, 32,174,112, 40, 67,200, 17, 99,147,120, 49,114,128, 3,201, 73, 50,218, 67,217, - 83, 78,165,212,106, 21,205, 14, 78,129, 16,169, 77, 69,225, 20, 52, 75,230, 90,171,154, 78,114, 22, 22, 7, 74,141, 49,133, 59, -160,110,211, 73,215, 15,131,176, 20, 84,180,129, 82, 0,246, 96, 24, 99, 91,161,100, 24,107,210, 54, 22, 79, 98, 94, 97, 14, 51, - 18, 97, 33,174,108, 45,109,215, 58,119,200,157,152,107,169,224,248, 86, 18,194,164,154,136, 42,145, 3,106, 22,184,158,150, 17, -106,169,204,182, 68, 26,161, 0,225,237,203, 21,128, 15,129,108,200, 12,145,156, 18, 23,109, 25, 35, 25, 25,179,225, 58,111, 24, -108, 55,134,228,196, 90, 2,114,201,177, 8,241, 6, 38,111,200,125,114, 90,233,186, 69, 25,130,186,150,145,226, 77,144,146, 68, -118,136, 96, 76,172,230, 36, 2, 72,219,108, 70, 92,128, 27,199,133,163,118,167,142, 22,168,141,179, 46,177, 72,163,181,164,248, - 71,154, 72, 42,186, 64, 83,211,166,246, 10, 24, 97, 43, 54, 34, 36,150,219,116,119,173,110,205,109, 17,161,169,234,135, 39,179, -227,197,124, 53,183,201,223, 48,148,220, 9,179,104, 53,109, 78,129, 54,131, 33, 3, 51,143, 77,165, 0,106, 58, 49, 3,185,153, -224, 3,202, 76,236, 16, 1, 85, 12, 4,114, 50,114,210, 90, 57,181, 67,162,153, 69,144,156,132,152,217, 6, 68,194,220,133, 73, -131, 51,238, 81, 17,104,155,249,144,115, 54, 83,233,242,110,217,202,164,161,142,161,198, 30,112,114, 35, 18, 33,246, 6,215,183, -212,238, 47,238,204, 65, 34,139,208,126,109,156, 15, 34,171,253,254,253,157, 11,111,188,117,252,244,145, 85, 5, 32,121,194,204, - 58,148, 91,159,223,124,235,220,197,119,127,254, 23,212,122, 0,144,228,117,161,197, 38,107,235, 0,218, 60,203,253,206, 71,255, -187, 12, 11, 56,109,110, 95, 44,253, 81,233,135,141,203, 87, 0,236,222,191,253, 96,231,206,103, 95,220,222,216, 58, 7,162,183, - 95,123,253,184, 39, 0,107, 91, 23,188, 14,243,217,145,215,197,209,225,193,223,127,248,209,163,167, 79, 79, 78,250,215, 94,185, -250,251,191,253,157, 11,151, 47, 3,168,218, 34,165, 0,106, 25,224,126,243,123,127,172,165,182,156, 0,165, 23, 9,180,248,158, -160,148,161, 7,144, 39,147, 97,177, 96, 80,234,166,109,163, 97, 99,234,223, 65,196, 47,189,243,222,236,249,238,254,189, 91,161, -119,108,188,206,182,210,139, 4,191, 69,171,209,212, 68, 8,222,114,108,101, 81,220,209,177,148,190,248, 6,136, 69, 0, 17, 82, -245,162, 53, 80, 32,206,241,208,112, 1, 15, 69,173, 86, 51, 79, 41,157, 59,189,149,136,221, 2, 6,106,178,188, 86,153,214,210, - 3,150, 40, 1, 12,102,226, 68, 52,196, 95, 42, 19, 76,221,204,170,105,246, 4,171,215,175, 92, 91, 89,157,206,231,253,209,209, -241,241,241, 12,230,243, 97, 40,165,178,192,205, 72,146, 3,166,182, 24, 6,145,132, 17,222, 63,226, 76, 51,226, 70, 16, 45, 6, - 82,206,228, 10,130,159,187,248,210,241,193,222, 40,224, 32,225,156, 58,237, 86,214,207,109,108, 60,188,187,179,125,102,211, 21, -167,159,175,238,159,156, 16, 81, 74,132,156,115, 78, 90,202,133,237,179, 47, 93,188,120,231,209, 67,201, 29,233,130, 19, 80, 16, -222, 62, 34, 54,119,181, 74,192,202,218, 52, 29,114, 45,234,132,245,201,116,239,224, 80, 58,142,136,251,164,235, 98,244, 44,173, - 11,222,108, 65,226,172,104,155,224,201, 36, 67,169,198, 55,207, 68,164, 99, 65, 29,220, 44, 40,226, 2,138, 95, 1,153,168, 48, -147, 6,142,184, 29,157,115,142,167,139, 19,143,181,120,139,195,155,103,183, 64,200,134, 26,144,133, 84,105, 49, 44,144,115,203, - 10,155, 69,238,175,241, 24, 91,149,129,156,205,161, 68, 18,139, 57, 30,207,240,214, 30,248,206,224, 26, 79, 33, 39, 38,151, 64, - 2, 19,139,112,169, 53, 9,135, 75,183,155,164, 36,105, 96, 99, 30, 60,161, 21, 23,221,171,150, 85, 73, 24, 89, 98, 24,143,168, -113, 76,163, 81,204, 19,139, 5, 10, 36, 51,211,160, 85, 3,108,239,225, 45,103, 35,171, 6,141, 13,173,136, 17, 89, 41, 32,178, -198, 76,112,152, 83,131,137,114,215,101, 98, 34,166,162, 53, 94, 93, 17,115, 84,243,145,107, 27, 63, 37, 6, 81,238,196, 65,165, -184,194, 89, 90, 21,223,153, 4,174,174,195,208, 87, 97, 48,197,214,186, 13,157, 90, 96,151, 52, 4,167, 74,110, 32,246,196,194, -160, 44, 41, 94, 15, 72, 96, 35,102, 6, 39,182, 33, 66,237, 49,187,206, 76,148, 98,249,171, 8, 84, 79, 4, 9, 35,232,231,100, -193,153, 12, 12,164,214, 97, 88, 12,253,124,163, 91,101,146, 30, 62,237, 50, 49,169,247,222,210, 55,117,244, 46, 17, 64,106, 53, -132,104,204, 75,118,104,124, 34,117, 68,121,198,101, 95, 99,244,207,146,221,138,185, 17, 59,129, 85, 67,116,211,100,163,109,108, -165, 74, 41, 53,157,173,131,136,212,148,153,221,188, 33,240,165,121, 4,227,120, 96, 53,222, 34,237,160, 16,204, 5, 31, 61,102, - 4, 97,103,173,149, 70, 27, 31,143, 15,126,127,193,245,105, 20, 63, 26,245, 82, 86,203,162,159, 29,175,159,189, 96,166,253,241, -193,233, 75, 87,119, 31, 61,248,232,163,127,120,243,221, 95,228,210,215, 97,110,165, 46,142,246, 79, 95,186, 26,139,221,141, 11, - 87, 66, 42, 93,171, 30,238, 62, 56,127,253, 70, 74,147,245,237,243,253, 48,211,180,182,185,189,125,116,240,220,129, 31,126,244, -225,143,127,246,201,217,179,219,239,191,251, 77, 0,123, 11,112,119,250, 96,111,239,218,235,215,247,159, 61,190,127,251,214,229, -215,191,252,151,255,235, 79,239, 60,124, 48,201,242,187,191,250,238,191,249, 23,191,189,177,113,106, 40,218,206,232, 45,237, 67, - 90, 22, 7,143,118, 46,190,254,181,212,117,196,158,167, 43,107, 91,219,203, 31,119, 8, 96, 88,196,181, 30, 63,125,180,253,234, -219, 68,196, 93, 58,123,237,141,104,208,140,215,104, 39,166,139, 95,254,186,171, 62,249,244, 7, 17,187, 88,158, 9, 34, 65, 63, -226,152, 91,108,156,154, 44,186,245, 9,107, 85, 73,126, 56, 63,158,116,121, 66, 32,161,201,100, 34,228,197,117,168,218, 9,215, - 65,217,201, 92, 99, 4,198, 17,155,114, 75, 41, 49,131, 19, 17, 92,132,205,106,169,218, 34, 76,194,106, 77,172, 21,252,251, 40, -146,120,176,162,140, 22, 67, 95, 77,227, 64, 55,201,221,155,175, 94, 7,177,171,206,142, 23,139, 50, 24,124, 62, 91, 88, 27, 16, -202,133,243,219,193, 84, 95,244, 3,200, 97,214,118, 58, 44, 36,105, 4,175,142, 40, 30,130,103, 10, 78,233,169, 51,167, 55,206, -156, 43, 67, 15, 87, 34,135,115,226,220,117, 43, 86,212,170,150,161,156, 62,189,250,234,165,115,234, 58, 91, 44,200, 77,107,117, -162, 73,206, 41,175,188,241,202,245,213,149,213,150, 97, 50, 48, 32,137, 43, 60, 39,201,147,172, 14, 32,245,125,141,189, 92, 25, - 10, 51, 72, 48,159, 47,218, 67, 83,152,163, 73,199, 33,123, 14,148,181,240,216,251, 87, 83, 99, 48,113, 34,166, 4,168, 41,148, - 52, 50,109,238, 78,146,220, 44,222, 90,108, 20,183,231,198,253,243,198,139,106, 97,168,120,191,178, 59, 4, 66, 16, 32, 18,118, - 41,115, 18,137, 99,128, 90,220, 26,137, 73, 82,202, 78, 16,150,145, 61, 16, 40,100,103, 33, 82, 66, 76,182, 93,226, 65,232, 35, - 95, 98,168, 53, 34, 34, 60, 22,196, 35, 88, 1,135,217, 16,211,232,182,121,115,196,201, 20,174,209,186, 33,146, 86,185, 67, 76, -114,199,112, 97,100,247,154, 16,187,197,203,189,185, 13, 90,192,200,172, 84,173, 49,123,143,164, 82, 18,201, 62,134, 90, 70,105, -160,155, 58, 32,110, 18, 71,234, 20, 15,134, 72, 67,186, 6,206, 49,142,176,194,228,109, 4, 31, 31,153,217,201, 28,106, 57, 37, - 38,170,238,170, 26,241, 44,173,234,225,105,113,103, 64, 72, 0, 4,162,163,101,184, 26, 93,141, 84, 45,206,164,210, 86, 98, 80, -184, 58, 17, 83, 98,129, 59, 11, 17,168,154, 82, 24, 13, 41, 33, 68,190, 41,182,151, 68, 16, 18, 34, 73,203, 25,122, 91, 58,153, -153, 5, 52,222, 77,117,252, 78,240,218,202,250,114,213,200, 44, 16,105,157,225,246,164,110,211, 58, 48, 0, 14, 97,114,236, 4, - 2, 80,229, 94, 27,207,135, 25, 96,183,208, 47, 42,136,204,106, 28,175,193,130, 22,196, 36, 0,166,241,111,155,110,144,224,100, -206, 65,183, 38,119,183, 90,171,169,141, 63, 25,112,102,118,137,209, 59, 75,171,116, 45, 81, 69, 17,224,112,180, 1,168,123,137, -143,178, 26, 96,158,124,105,247,110, 35, 94,110, 41, 85,140, 13,105, 18,184,159,236, 61,221,186,124,181, 63, 58,218,249,228,199, -107,219,151,223,252,246,175,191,253, 75,212, 31,238, 63,219,249,220,212,136,229,249,221,207,183,174,190,250,242,215,223,175,125, -191,255,112,167, 91, 63,101,170,238,122,239,103, 63,184,124,227,171,215,223,251,101,150,164,101,120,186,243,197, 23, 63,252,251, -167,135,199,215,191,246,254,108, 62,188,255,238, 55, 78,159, 90,159, 87, 3,176,178,113,174,155,116,159,255,240, 71,231,175, 93, -253,165,239,254,243, 90,203, 95,255,249,159,255,199, 63,252,195,175,188,241,165,223,120,255,155, 23,206,157,233,135, 82,172,202, -116,153, 99, 12,160,184, 19,232,254, 79,255,254,226,141,111,188,250,254,111,179, 72,237, 23,123, 59,159,158, 60,123,216, 38,182, -113, 33,162, 10,200,195,159,125,255,242, 91,223,124,227, 87,190, 91,251,217,222,206,231,211,141,173,198,116, 24,113,218,167, 46, - 92,113,179, 87,127,233,187,241,199,223,187,123,243,249,221,155,203, 50,113,244,139,162,147, 22,229,247, 8,177, 4,146,233,100, -190,200, 41,151, 1, 41,119, 16, 33,224,204,230, 86,215, 65, 21,196,220, 54,180,109,152,171,166,213, 56,170, 41,180, 50,233,102, - 39,135,174, 43, 21, 78, 32, 53, 23,115,176,168, 41, 49,177, 16, 12,212,113,240,179,101,220,212,115, 48,235, 61,202,138, 92,180, - 76, 39,147,203,151, 47,186,121,169,229,164,159, 47,250,222,204,231,139, 69, 12, 84, 25,126,176,127,192, 76,110, 24, 6,141, 15, -220, 72,161,104, 1,181,216, 22, 5,183,136,148,189,143,232, 57,193,236,194, 75, 87, 78,142, 15,181, 22,162,196, 73,136,121, 50, -157,214,186, 56,119,249,210,179,221,167,147, 73,222,216, 44,175, 95,190,120,243,238,227,126, 88,172,173,159, 34, 80, 39,137, 72, - 79,157,222,124,237,218,203,183,110,223,141,224, 17, 66,113, 76, 73, 29,193, 96,139,190, 99,252, 88, 34,157,184, 54,153,150, 50, -171,142, 97,168, 2,234,171,166,228, 68, 2, 11,204,122, 92,152, 68,136, 84, 0, 70,240,171, 34, 96, 80,220,146, 41,117, 73,135, - 32,163,183,229, 4,161,153,124,204,220,130, 19,239,144,148,100, 32, 8,215, 90,115, 74,110,181, 85,249,154,236, 38,181,248,104, - 12,149, 99,232,105,190, 58,233, 74, 81,117,133,138, 72, 42,181,154,153, 86, 13, 18, 1,153, 36, 22, 35, 31,223, 35, 45,114, 11, - 98, 51,235, 68, 82, 27,117, 71,189,205, 99, 31,199, 52, 66,250, 0,105,199,177,224, 62, 33,108, 67,196, 52,250,234, 9, 68, 41, - 37,117,184,154,112,200,206, 42,136, 2, 66, 91,212, 90, 57,158, 95,184, 65,199,139, 66,112,216,199, 1,131,153,176,180,211,138, -141, 54,244, 86, 49,133, 75,195, 25,117, 41,141,191, 34,185, 69, 9,147,189, 61,135,109, 73,104,138, 73,164,116,185,246,125,152, - 14,172, 33,234, 3, 20,132, 49, 79,205, 68, 96,225, 23,231,167, 38,130,107, 68,132,134, 56,105,227,166,120, 73, 26, 70, 76, 49, - 49, 9, 81,151,146,170, 18, 25, 16,164, 70,143,211, 82,116,123, 9,137, 66, 87, 31,207,189,182, 9,227,208, 37, 22, 84, 0,194, - 76,204, 33, 91,105, 75,139,160,117,186, 85,167, 48,173,199,224,220, 3,192,197, 60, 42,172,221, 28,166, 62,174,175, 91,126,166, -189, 32, 89,220,219,133, 36, 86,179, 60,126,195,136,201,213, 34,120, 4,114,115, 99, 97, 19,113, 32,212,136,161,118, 0,165,112, - 53, 5, 26,158, 60,164, 54, 77,132,222,248,148,176, 80,223, 26, 49, 92,163, 60,209, 46,227, 97,172, 80,103,118,119, 79,173,137, -211,184,219, 99,236,207,189, 14,253,189,159,124,127,196,133, 81,127,112,176, 55, 12,159,253,244,163, 59,183,111,189,243,205,239, -228,197,124, 24,230,230, 81,228,133,187,149,126,241,240,227, 31,170, 86,184,173,156, 62,163,125, 95,106, 61,125,118,251,193,206, -103,183,126,244,193,217,237,211, 71,123, 7,125,153,237, 61,126,252,143, 31,127,114, 50,171,248, 15,255,254,189,111,188, 89,157, -247,251,156,147,124,244, 87,223, 19,242,167,143,238,221,251,226,211,219,255,245,254,189, 71,143,159, 28, 28,108,174,173,254,193, -119,127,227,171,111,190,106,138,121, 25,224, 32,150, 50, 63,252,201,159,252,231,102,150,106, 18,100,114,215,135, 31,127,255,209, -205, 15,199,118,151,131,104, 56,126,254,147, 63,251, 47, 2, 33, 50,115, 6, 72,251,114,247,163,191, 29,229, 60,216,223,249,156, -128,225,248,232,230, 95,253, 81,128,252, 62,249,139,255, 6, 2,115,114, 55,152, 82, 88, 32, 90,188,110,188, 29,191, 0,121,182, -174, 81,116,109,250,126, 96, 78,211,149,116,170, 42, 85, 85,179,195,147,227,203,211, 51,193, 15,138, 43, 86,213, 42,108,139, 69, -169,181,210,164,235,251,162,196,235, 43,147,231, 7,213, 65,181, 70, 0, 32,209,120,127, 38,103,146,228, 4,129, 65, 36,116, 0, - 35, 59,200, 18,226, 68,236,211, 46, 31,157,204, 94,190,112,113,235,244, 86,169, 54, 59, 58,217,127,190,223,247, 37,178,101, 52, -186,232,135, 90, 87, 87,166, 46,172, 86,151,132,161, 38,161,110,252, 33,113, 15,174, 0,135,183, 56, 62, 16,234, 88, 89, 93, 59, -179,125,254,209,189, 59,121,146, 97, 68,156,172,106,206,147, 90,135,173,115, 91,183, 62,185,181,214,229,107,151,206, 63, 63,153, - 63, 63, 58,153, 84,235, 18, 83,146, 9, 39,131,191,254,202, 43,251,207, 15,119, 30, 60, 72, 57, 49,216, 25, 73,152,133,135,161, -182, 61,113, 85, 8,133,102,152,133,215, 86,167,197,181,239,135, 65,121,168,133,136,125, 84,101, 4,206,148, 5,194, 12, 98,152, - 6, 19,187,168, 59, 69,126, 48, 38,239,112,144,144,120, 99, 21, 54, 22, 58, 51,197, 89,146, 40, 94,104, 81,108, 33,115,165,160, -142,152, 6,241,207, 91,219, 68, 64,168,104,176, 72, 54,113, 87, 6,171,151,140,140,145,102,105,106, 6, 87,173, 76, 46,137, 60, -202,180,164,129,125,229,176,144,197,153, 58,204, 44, 3,121, 99, 27,143, 17, 46, 71,102, 25,172,142, 72, 50,128,194,170,161,220, - 56,166, 81, 71, 50,192,152, 5,134,156,185,103,247,232, 49, 49,147, 67, 93,217,157, 71,130, 91, 28, 64,150,243,133, 64,201,197, - 33,175,129,100,131, 66, 79,237, 32, 52,174,218,131, 19,140, 68, 92,200, 96,206, 32,173, 37, 75,138, 20, 35, 9,199,100, 88, 70, - 50, 24, 51,192,232,144, 72,196,107, 37,131, 51,132,152, 25,165, 22,170,141,142,101, 60, 70, 2,153,114, 74,110, 24, 34, 14, 28, - 1, 75,129,215,200,143,195,105,132, 32, 6, 72,134,217, 85,251, 90, 88,132,205, 19, 19,152, 77, 85, 56, 85, 12, 68, 20,245,197, -102,100,116,175, 26, 36,151,198, 34, 30, 19,112, 78,209,244,118, 11,204, 67,252,189, 16,145, 80,106,169,209,241,108, 93,130, 33, -175, 30, 49, 82,107,206,177, 38, 9, 51,107, 20, 29, 39,114, 48, 3,213,156, 65, 28,104, 48,150, 32,196,185, 27, 80,199,118,141, - 71,165,195,105,132,158, 8,195, 93,132,212, 28, 78, 70,177, 28,111,246,152,240,109,140, 18, 50,114,119, 23, 19,106,221,127,201, - 89,107, 13,133,160,186,152, 43,183,135,161,112,100,122, 89, 35, 92,155,162,130,218, 18,159, 34, 36,113,180,105, 89,145,230, 13, - 21, 57, 56, 56,248,236, 31,254,118,178,117,238, 87,127,231,247,178,247,243,254,164,197, 45,178, 16, 92,135, 66,221, 36, 73,210, -147, 99,202,221,217,171,175, 29,237,237,110,158,191,180,255,108,119,101,243,194,233,173, 51,143,119,110, 61,127,242,232,225,131, -251,159,221,190,119,230,204,217,239,188,255,250,116, 50,157,171, 88, 62, 61, 93, 93,101,161,195,103,143,158, 62,121,112,239,222, -189,187,247, 31,223,125,252,104,177, 40, 63,255,230,245,223,252,206, 47,156,221,218, 90, 28,247,222,206,154, 2, 88,160,142,208, - 20, 23,225,163, 98, 71, 6,212,181, 18,103,247,138, 86, 63,102,110,212,132,224,220,136,107,117, 66,124,156,199,201,165,183,108, - 90, 67,101, 7,206, 63, 10, 0,210, 46,240,141,237, 23, 71, 48,103,137,123, 55,198, 95,220,227,240,127,112,120,204, 73,146,105, - 74,105, 24, 6, 55,215, 82,224,158, 88, 82,115,248,197, 73, 44, 13,117, 14, 38,175,186,127, 56, 35,243,148, 36,115,102, 98,120, - 77,194, 91,155,167,142,143,103,214,156, 69,198,209,180,178,246,187,165,166, 42, 4, 88, 0, 75,145,240, 51,152,234,229,203, 23, - 87, 86, 86, 13, 86,181, 28,158,204, 13, 40, 67,169,110, 81, 98, 25, 67, 0,142, 90,251, 82,252,133, 75,156,150,233,156,118,138, -179,118,228,140,152,138,143,193,177, 51,103,183,159,239, 62,209, 58, 64, 38, 57,101,115,168,100,114, 76,186,233,230,214,230, 52, -167,167, 79,159,191,122,233,252, 79,251, 7,125, 63,155,166, 83, 0,166, 43,211,162, 53,165,252,229, 55,222,120,182,255,172, 31, - 10,187, 73, 27,173, 17, 51,101,206, 65,197,142,179,237,250,164, 59, 56, 89, 36,145, 51, 27, 27, 7,135,199, 60,232,104, 30,183, -209, 59, 17, 0, 36,214, 80, 15, 3, 9, 94,204,132,161,106, 32,114, 50,226, 36, 76,113, 88, 34,132,190,131, 36, 22,156,113,148, -174,198, 34, 78, 12,211,208,217, 4,164,181, 77, 27,150,214,178, 70,136, 33, 50,168,169,116, 68,201, 93,173,175, 37,166, 88,169, - 75,165,239, 23,195, 16, 10,100, 87,175, 14, 46, 90, 59, 13, 96, 31,141,177, 36, 22,104, 29, 5,196,106,129,123,137,103, 36, 76, -201,101, 50, 73, 66, 60,104,227, 14, 6,110,207,212, 74,210,118, 2,108, 58, 31, 3,132, 29, 39,139,121,150,245,204, 89,109,201, -161,164, 6,140,165,118, 60,133,153, 91, 20,244,219,143,174,253, 25,153,200,156,140, 40,145,144,164, 44, 96,141, 91, 74, 43,166, - 34,120, 62,198, 68, 41,117, 97,174, 10, 26, 98,230,128, 49, 40, 51, 13,145,183,246,134,253, 77, 83, 78,146, 74,173, 96, 23,201, -170, 10, 71,102, 57,172, 1, 67,179, 48, 2,198, 71,177, 47, 26, 78, 15, 52,213,219,178,139,132,198,117,111, 51, 39, 0, 16,145, - 36,169,203,169,168, 66,220,137,166, 41,153, 54, 44, 0,128,148, 40,107,106,140,123,119,175, 65,139,107,208,194,241,255, 81, 68, -168, 90,208,226,136,152, 29, 72, 57,149,170,213, 12,170, 64,141,207,201, 32, 60,159,205, 35, 10, 80,204, 18,231,150,217, 82, 39, -130,113,139, 75, 80,188, 66,194,221, 22,170,119,230,112, 49, 47,145, 24, 34,174,234,106, 42, 17,221,105,187,126,107,169, 74,144, -228,228,181,214,170, 13,211,219,128,100,205, 28,191, 20,242, 5, 60, 76, 3,101, 70, 74, 53, 80,239,205,221, 42,206,106, 42,204, - 62, 86,246,169,165,130,145, 26, 98, 45,238, 38,203,219,145, 53,205,101,151,167,243,197,252,167, 63,248,160, 31,252,250, 91, 95, -189,120,110,187,214,210, 43,218,202, 37,248, 12,222,238, 71, 23,222,120, 71,114,231,102,179,231,187,183,127,250,209,116,101,117, -232, 23,171, 43,107, 95,252,228, 43,248,243,154, 0, 0, 8,156, 73, 68, 65, 84,195, 71,143, 30,126,126,235,206,188,214,175,190, -125,227,242,249,237,234,124,100, 43, 41,175,117, 93,118,235,247,246,158, 62,188,127,231,222,189, 71,183,118,118,238,237, 62,189, -112,118,235,247,127,247, 59, 95,190,254,178, 57,205,102, 71, 96,176, 79, 70,170,148, 47,151,108,228, 62, 54,115, 26,157,147, 44, -156, 39, 13,187,227, 80,166, 73, 43,237,186,155, 13, 8,225, 88,179,132,155,105,184,191,157, 44, 57,233,152,160, 82, 11, 94, 68, -219, 68, 52, 74,112,220, 42,151,131,194,224, 50,196, 87, 49,250,109,243,249,176, 58, 93,113,232,238,243, 67,214,128, 16,176, 48, -159, 44,230,107,235,171,153,211,188, 95, 12,181, 6, 76, 99,194,220,247,243,121, 25,114, 74, 73,186, 73, 55, 97, 66, 53, 53,245, -149,233,202,124,182, 48, 51,211, 90, 77, 39, 35, 47, 9,238,137,216,200, 61,234,195, 14, 85, 45, 42, 29, 11, 17,117,147,201,181, -171, 87,136, 65,213,251,190, 63,156,157,152,217,188,159, 91,160, 6,199,101,133,177,131,169,246,125, 59,228, 97,201, 98, 90,110, - 43,146,179, 3,234, 49, 53,136,109, 28, 1,238,221,250,250,230,214,153,199, 15,239,117,156,107,109,176,214,201,116,117, 49, 63, -217, 62,127,238,217,147, 39,167,183, 54,119,251,221,139, 91, 27,119,118,159,205,250,197, 70,183, 66, 66, 19,238, 22,165, 92,185, -116,229,198,171,111,252,232, 31,127,234, 34, 0,245,165,108, 76, 38,166,150,196, 93, 48, 12,101,222,151,193,117,139,166, 73,104, -190,232, 39,171, 43, 27,235,171,245,240,100, 88, 12, 97, 12,119,247,190, 12,113, 10, 13, 34,183, 99,156,116,142, 56,120,143,221, -107, 41,121,210,113, 76, 26, 97,238, 45,176,204, 49,100,112,113, 40,212,147, 67, 99,130, 65,148, 57,113,252,156, 57, 6, 58, 75, - 96, 55,194,188, 56, 91,244, 96, 89,235,152, 76, 8,112, 87, 51,114,243, 82, 43,136, 84,181, 86,173, 33,231, 38,117, 64,173,146, - 1,169,201,231,196, 56, 42,114,177, 0, 0,180,233,225,188,101, 92,114, 74, 85,151,162,122, 52,225, 9, 32, 76,137, 18, 24, 49, -116,137,246,103, 52,245, 85,235, 8,140,142,216, 30, 73,130,169,215,106, 17,206,116, 2, 39,193, 64,158, 64, 64,158,228,113, 8, -221,214,127, 65,110,169,213,205,200,152,196, 25,170, 17, 0, 34,137,236, 24, 98, 12, 83, 53, 30,107, 17,174, 55, 13,224,170,107, -244, 42,221,145,136, 37,177,187,197,201,134,217, 20,110,234, 43,147, 28,238,202, 86, 89,111, 79,154,104,168, 81, 69,107, 99,142, -121,161,118,115, 49, 51,112,128,229, 65,236,166, 90,147, 8, 51,218, 97, 20,234,193,106, 79,210, 15,230,241, 66,106, 41,244,192, -229,147,139,193, 57, 46, 49,241,163, 96, 78, 34, 67,173,204,108, 49,134, 12, 6, 60,188, 22, 99, 43, 49, 69,119, 51, 55, 47,102, - 76,210,142,244,112,243, 81,126,180, 4, 85,142, 51,153,165,152,172, 25, 90,219,213,175,137,145, 53,140, 89,204,110,227,226,187, - 82,100,106, 99, 90, 91,180,152, 6,114,180,169, 83,213, 77,173,198, 60, 61,196,200,241, 98, 86, 0,213, 56, 17,131, 92,141,164, - 41, 5, 56,158, 77,202, 32,130,151,246, 27, 73,188, 45,144, 90, 74,159,154,230,111,185,195, 78, 57, 17,248,246,167, 63,187,179, -179,115,249,229, 87,190,113,227, 70,173,253,124, 49,151,148,184,155, 80, 69,117,135,215, 88, 86,104,173, 39, 79,238, 31, 63,219, -157,174, 76, 14, 14, 15, 57,229, 73,110,130,191,231,143,119, 62,254,228,230,206,131, 39,151, 46,156,251,246,235,215,114,226, 89, - 97,205,167,243,100, 53,179,159,156, 28, 28,238, 61,185,115,247,238,237,187,247,110,221,127, 52,235, 23,239,127,229,203,191,243, -171,239,173,175,175,149,197, 0,102,131, 91,165,148, 45,130,187,129,229,106,163,133, 23,214, 98, 29,189, 36, 68,174, 4, 5,139, -123, 2,200, 92,185,193,166,157, 96, 49, 91,140,178, 0, 17,113,146, 17,208,163, 24,201,181, 16,110,232, 16, 10,243,120, 3,238, -216, 40, 86, 48,179,145,136,194, 60, 30,241,224,126,178,152,119,147, 73,223, 47,200,209,137,232,164, 75, 89, 42,212,205,230,179, - 69, 62,179,237,238,205,201, 64,204,174, 7,243, 69,104,198,132,169, 47,139,117, 94, 67, 43,203, 72,206,146,153,247, 79, 74,169, - 53, 5,251,134, 9,238,149, 91, 85, 46,181,241, 51, 17,144, 37,131,124,117, 58,185,114,225,162, 86,168,149,253,131,253,217, 98, - 97,102,181,212, 49, 71,180, 12,137, 1,224,197, 48, 31, 85, 73,241, 21,214,229, 27,190,121,115,149,169,115, 36,248,162,173, 96, -227,173,120,238,165, 43,207,159, 62,113,114,102,192,157, 57,165,233,116,226,245,248, 96,191, 46, 22,167,206,157, 91, 61,181,182, -237,120,122,120,188,176, 90,181,244, 53,173, 79, 38, 43,220,169,251,141,215, 94,223,185,127,127,247,249, 62,179,176,136, 72,118, - 31, 74, 25, 68,114,202, 44, 32, 53,127, 54,155, 79,146,172, 77, 39,139,170, 29,115, 74,236, 68,149, 52,187, 56,172,147, 28,141, - 70,142, 26,104,212, 63,226,113,108,177, 38, 8, 56,159, 21, 53, 34, 98, 39, 35,114, 98,131, 10,195,137, 52, 16,154, 36,181, 86, - 16, 18,167, 34,201, 2,141, 47,156,146,212,226, 74, 22, 29,206, 16, 7,179,155,185, 50,185, 89, 45,166,102,117,101,186, 82,230, -138, 68,139,190, 23,150, 69, 25,138, 22, 39,147, 80,100,190, 96,113, 53,195, 96,116,148,212, 61, 59, 37, 22, 78,201, 23,101,132, -133,180, 13,160, 85,213, 90, 70,110,108,216, 72, 12,196, 57,119, 73,132, 8,169, 75, 14,157,247, 14, 18, 6,173,173,174, 74, 40, - 12,163,113,100, 10, 36, 15,255, 52, 25,185, 26, 68,192,161,181,139,164, 38, 49,179,147, 54,146, 92,144,223,168, 89, 97, 25, 28, -228, 91, 22, 88, 35,133,147, 90, 75, 4,130,226,165, 64, 28,128, 45,111, 71,202, 6, 34,111,124,139,192,198,153, 69,238,223,153, - 72, 58, 54,109, 22,241, 54,173,110,243, 28,206,146,152,201, 84,107, 59, 5,195,213, 41,108,222, 12,179,101,154, 52, 80,204, 34, - 1, 24, 16,113,173, 14,241,177, 4, 33, 68, 33, 64,135, 32,176,199,196,146, 88, 76,107,175,117,249,194, 28,189, 67,226,134, 76, - 73, 49,180, 4, 10, 67, 40,129, 76,173,186, 43, 83,106,197,150,120,135,150,202,156,156, 20,206,109,245, 30, 55,103,231, 24,175, -141,248,223,136,228, 51,189,192, 36,197,219, 57,218, 72,109, 19, 59,154, 54, 20, 68,170,206, 44,102,113,250, 10, 49,129, 49, 68, -181, 90,228, 92,204,226, 52,217,130,203,106, 66,176, 70,129, 52, 18, 6,132,199, 7,160,153,241, 72, 5,211, 26,146,239, 6,158, - 79,141,198, 28,140,177, 88, 42,229, 21, 66,189,127,111,231,254,206,206,116,245,212, 55,191,245,203,235,235, 43,139,249,113, 80, -154,172,154,152, 27, 12,163, 57, 79,235, 80,251, 69,154,174, 77,214,214,143,143, 14, 37, 79, 78,109,157, 57,122,246,120,152, 29, -124,241,249,167,159,223,222, 73,210,189,251,149, 27,219, 91,155,213,232,168,116, 60,221,156,164,206,189, 60,221,125,188,251,248, -225,157,251,247,111,221,189,255,232,217,254,217,211, 27,191,247, 91,191,252,213,183,174, 27,104, 24, 10, 73,203, 38, 38, 33,184, -142,113, 19, 90,174, 77, 98, 51, 76,206,227,138,216, 65, 9, 17,186,119,129,155,147,196,140,161, 33,224, 99,202, 99, 70, 75,251, - 76, 60,200,195, 91,235, 75, 70, 77,155,224, 7, 19, 19, 32,119,109, 15,244,246, 3,141,233,237,139,106, 50,204,157,188,239,139, -164,236,139,217,100,146, 89, 61,250,166, 9,196, 34,139,249,108,177,152, 29, 29,167, 50, 20,139,160,165,164,121, 95,219,153,209, - 12,134, 44, 73,137,163, 5, 24,229,133,162,197,153, 73,154,221, 32,102, 13,193, 17, 36,106,148,174,101,240,121,115, 99, 99,115, -115, 83, 50, 47,142,202,243,131,253,170, 86,172, 46,202, 64,198, 4, 93, 90,116,195, 10, 95,251, 1,169,245,236, 98, 14, 97, 80, -166, 68,144,101, 90,218,213, 97,113,244, 89,126, 67,104,186,190,113,233,234,181,123, 59,183,147,100, 14,176,179,214,174, 91,157, - 78,231, 87,190,244,165,157, 59,119, 55, 79,175, 39,248,171, 47, 93,248,201,237,251, 10, 63,181,182,234,206, 89,200,107,221,220, - 56,253,213,119,126,238, 79,255,230,175,212,172,203,185, 88, 13,225, 14,224, 66, 60,201,210,173,118,139,162,100,186,182, 58,173, -199,115,115, 90,201,147, 35,204,225,148, 83,170,170, 57, 11, 17,143, 39,161, 86, 19,143,153, 67, 69, 52,183, 74, 11, 73, 66,153, - 26, 56,222,213,152,205, 3,221, 8, 50, 80,230, 96, 6,135, 10,144,216,189,160,186,117, 66, 16,242,242,162,125, 14, 7,204,192, - 78, 93,158, 40,188, 31,234, 88,107, 68, 34,234,189, 82,244,107, 0,226, 84,225, 18,197, 83,143,112, 72,236, 9,149,219, 53,208, - 33, 44,146, 56,150,136, 22, 91,157,176, 20, 81,169, 53,190,152,141, 91,202,204, 36, 17, 30,141,109,190,155, 17, 88, 43, 66, 31, - 52,153, 76,180, 86,196, 66,216, 93, 88, 84,149, 69, 96, 36, 36, 5, 46, 30, 66,201, 23,241, 87, 4,196, 0, 2,243, 10, 11, 90, -161, 7,200,254,159, 36,199,199,250, 72,232,215,131,167, 70, 34,210, 15, 67, 29,124,210, 37, 2, 59,143,101,250,165,222, 0,122, -116, 50, 3,241, 16, 35, 56, 94,129,130,147,180,217, 56, 8, 76, 99,147,142, 34, 13, 19,201,194, 37,194,138, 67, 99, 62,246,239, -227,204, 25, 27, 12, 18, 8, 17,187, 83, 11,145, 0,230, 85, 3, 44,236, 89,196,220,234, 80, 16,120,140,120,195, 48,147,209, 56, -202,140, 99,186,186, 67, 85,227,189,200,227, 8,160,148,194,164, 90,157,137, 18,203, 96,166,214,140,126,188, 84, 65, 4, 7,137, -150,208,126,199, 11, 96,157,144,187, 70, 26, 42, 44, 35, 22,190, 60, 39,110,243, 0,110,111, 43,113, 87, 55,231, 68, 68, 84, 77, -205,156,184, 9, 4,221,169, 90,148,252,218,181,165, 97, 27,204, 1, 87, 55, 14,229,112, 59,227,194,221,139, 25,179,120, 88, 31, -218,205, 34,164, 97, 48, 67,102,114,248,255, 3,163,186,128,162, 44,159, 39,191, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, -}; +137, 80, + 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6, 0, 0, 0, 8, 90,206, 70, 0, + 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218, +157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, + 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33, +162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, + 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, + 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1, +128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, + 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, + 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0, +192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60, +241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, + 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174, +206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, + 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, + 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252, +247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11, +255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255, +100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0, +242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, + 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, + 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104, +134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98, +138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, + 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185, +168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, + 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, + 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, + 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, + 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, + 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, + 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168, +161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, + 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199, +136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, + 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143, +169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, + 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13, +171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243, +148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, + 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, + 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191, +110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, + 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145, +185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, + 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, + 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173, +157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219, +174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, + 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, + 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, + 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, + 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87, +173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183, +203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248, +122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144, +173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142, +112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, + 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252, +237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, + 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, + 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, + 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178, +254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87, +102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, + 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171, +237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, + 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153, +220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, + 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84, +244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, + 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, + 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141, +156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66, +154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, + 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111, +239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234, +116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189, +121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238, +173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6, +133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207, +100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253, +234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, + 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, + 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, + 24, 0, 0, 0, 7,116, 73, 77, 69, 7,219, 8, 10, 15, 54, 11,254,114,226, 41, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189, +121,212,101,103, 89, 39,250,123,167, 61,156,225, 27,106, 72, 85, 66, 37, 49,149,129,132,132, 41, 21, 6, 1, 21, 72, 33,160,226, +132,137, 99, 59,155,216,186,188,182,182,146, 92,180, 23,246,242, 98, 19,187,111,115,219,123,181, 37, 42, 44,245,218, 10, 81,161, +165,175,136, 41, 71,104, 90, 66, 42, 4,130, 16, 8,169, 36, 36, 33, 73,205,223,116,134,189,223,225,254,241, 60,239,217,251,156, +250,230,250,190,202,224,254,173,117,214, 55,156,115,246,222,239,244,204, 3,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, + 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104, +208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26,156, 19,168,115,124, 63,193,175, 12,192,126, 33,176, 27, 64, 15, + 64,201,255,111,208,160, 65,131, 6, 13, 26, 60, 11, 32, 0, 72, 33,112,217,187,127,234,250, 63,121,248,247,127,226,232,163,127, +116,211,137,223,249, 55,111,250,239,137, 18, 7,106,159,105,208,160, 65,131, 6, 13, 26, 60,195, 53,117, 1, 32,121,199, 15,191, +242,157,183,126,215, 53, 63, 56, 83, 12,218, 83,211,173,252,218, 87, 92,250,252,111, 63,112,201,193,187, 62,255,208,147, 79,156, + 26,126, 9, 64,104,152,123,131, 6, 13, 26, 52,104,240,204,102,234, 18, 64,235,205,215,180,223,250,154,221,226,154,226,232, 81, +216,147, 39,224,251, 22, 23, 92,113,225,236, 13,215, 95,243,150,163,167,230,212,189, 15, 28,255, 12,128,126,195,216, 27, 52,104, +208,160, 65,131,103,182,166,158,254,237,125, 39,158,188,234,130,244, 69, 47,186,108,247, 94,148, 30,126,225, 20,252, 98, 15,157, +243,118,234,111,189,254,197,223, 48,147, 39,151,127,244,174, 35,159, 6,112,162, 97,236, 13, 26, 52,104,208,160,193, 51,147,169, + 3,128, 8,192,194,159,126,234,216,189, 78, 23, 59,191,254,170,189, 87, 24,101,224,122,139,240,167, 79, 3, 89, 27,175,122,245, + 85, 87, 29,188,106,223,107,255,254,222, 47, 63,124,122,169, 60,210, 44, 81,131, 6, 13, 26, 52,104,176,126,237,249, 92,223, 47, + 3, 48, 13, 96,223, 91,175,155,254,161,223,254, 87,215,253,248,174, 86,146, 21, 75, 67, 64, 25,136,125, 23,195,236,219,135,167, +158, 56, 49,255,243,191,241,145,255,240,223, 14,125,233,183, 0, 44,240,247,195, 51,121, 50, 67, 8, 7, 0,204,242,159, 71,132, + 16,207,105,161,228, 95,218,120, 27, 52,104,208,160, 97,234,203, 67, 2,152, 2,176,231,146, 89,245,173,255,227,103, 95,246,243, + 87, 93, 48,179,183,236,149, 0, 60,176,247, 34, 36, 23, 93, 12, 27, 60,222,249,190,255,249, 7,191,242,187,127,247,203, 0, 30, +229,231, 61,107,198, 30, 66,216, 15, 96,255, 58, 63,126, 74, 8,113,120,157,215,189, 19,192, 65,254,243, 86, 33,196,109,207,113, +166,254,156, 24, 47, 11, 39, 7, 89, 64, 57, 80,123,235, 48,128, 35, 0,238, 16, 66,156,218,130,251, 76, 94, 31, 91,189, 7, 27, + 52,104,240, 47, 27,250, 44,152,178, 7,208, 61,127,202,188,240,162, 89,179,211, 5, 41,198, 36, 5, 1, 72, 41,132,143,255, 17, +244, 37,168,209,187, 26, 64,171, 95,248,254,191,253,240, 67,127,245,127,190,245,234,111,191,114,239,212,140, 45, 3,112,234, 56, +202,118, 27,106,199,121,120,199,205,223,240,131, 47,223,127,193,243,127,240, 93,119,252,226,241,249,226,227, 91,196,216,111, 0, +240,174, 13, 16, 99, 0,184, 3,192, 33, 33,196,237,205,182,121,206, 88, 25,110,224,215, 74, 2, 94, 20, 88,222, 19, 66,184,157, + 5,151,179, 97,238, 7, 0,220,185,137,239, 29, 2,240,134,102,213, 26, 52,104,176, 29, 76, 93, 0, 16,221, 84, 30,248,175, 63, +248,146, 95,251,150, 23, 93,248,218, 86, 75, 39, 65, 40, 64, 8, 64, 10, 64,242,239, 90,209,223, 74,142,222, 19, 74,211,255,132, + 0,132, 4,164, 68, 0,130, 11,194,123,173, 33, 71,255, 23,240,174, 68,232, 11,188,249,141, 87,190,226,240,243,127,242,207,126, +242,215,255,252, 29, 31,249,228, 99,239, 3, 48,196,185, 55,197,223, 0,224,134, 16,194, 13, 0,110,220, 10,205,173,193,211,138, +187, 55,248,249,155, 0, 28, 12, 33,220,216,104,205, 13, 26, 52,120,174,105,234,187,127,239, 71,175,125,247, 13,175,218,255,117, +182,231, 0, 47, 32, 36, 23,139, 11, 18, 8,130,148,121,207,172, 55,176,134,238, 1,120, 15, 40, 5, 33, 88,117, 15, 0,132, 16, + 82, 10,133, 16, 70, 90, 61,177,236,128, 0, 1,219, 43,113,209, 69,187,118,255,233,127,252,161,255,231,127,255,173, 67,151,255, +198,159,124,242, 63, 0, 56,182, 69, 90,123,212,132,176,134,182, 86,255,251,206, 16,194, 27, 26,198,254,156,193, 97,144, 37,230, +176, 16,226, 16,107,242,179,188,214, 55,213,246,192,126, 0, 31, 8, 33, 92,183, 69,107,127, 59,200,188,191, 22,154,125,214,160, + 65,131,237,211,212, 83, 35,246,191,254,202,243, 94,134,165, 18,174, 63, 0,188, 39, 38, 29, 45,235,177, 24,108,252, 27, 1, 80, + 18, 98,215, 30,210,210,125, 0,164, 7, 60, 91,241,133,228, 75, 7, 64, 6,192, 59,210,246,157, 27,197,231,219,161, 69,203, 24, +249, 95,126,241, 91,126,238,101,151, 95,248,194, 31,127,215,159,191,109, 88,250,123,183,130,177, 11, 33, 86, 53,109,178,118,254, + 46, 84,102,218, 3, 76,236,111,107,182,208,179, 26,183, 3,184,125, 57,205,155,153,246, 29, 0,238, 8, 33,188,135,215, 59, 50, +246,173, 90,251, 59,162, 16,209,160, 65,131, 6, 91, 1,185,137,239,168, 97, 25, 78,252,197,125,143,126, 18,114,128, 52, 41,145, +182,128, 36, 15,252,242,213,239, 89,128,145, 67,192, 21, 64,214, 33,147,187, 39,166, 29,198,216,112, 9,248, 2,240, 3, 32, 12, +249,239, 1, 16, 74, 98,240, 33, 0,193,195,186, 0, 63,116,248,129,183, 94,123,240,158,247,253,235, 15,189,240,226,217,239, 4, +177,125,185,157,147, 36,132,184, 3,228,211,172,107, 76, 55, 52,219,231, 89,141, 55, 8, 33,110, 94,143, 41, 93, 8,113,243,132, + 70,125, 75, 51,125, 13, 26, 52,120,174,104,234, 0,112,226, 71,127,247,190,119,252,213,167, 31,249,206, 43, 46,158,186, 88, 0, +210,135,224,153, 4,194, 5, 10, 45,235, 15,173,188,246,194, 93, 47,184,241,235, 95,188,223,232, 84,122,239,217,223, 14, 98,236, +195, 37, 8, 45, 32,246, 93, 3,185,227, 10,160,181, 7,194,116, 1, 87, 32, 12,143, 35,244,190,138,112,226,139,128,235, 3, 50, + 7,224,224,131,130, 95, 42,240,130,171, 47,188,232,163,191,253, 99,191,247,166,159,126,175,250,236,145,147,127,134, 42,120,111, +187, 24,251,145, 16,194, 29, 53,141,237,192, 86, 92,119,153,136,232,195, 91, 20,105, 93,143,240,223, 84,186,217, 86, 92,227, 92, +140,119,226, 57,215,117,189, 77,104,200,183,163, 10,174,156, 13, 33, 28,104,124,235, 13, 26, 52,120, 46, 48,117, 7, 96, 9,192, + 23, 62,112,120,254,221, 56, 60,159, 99,249, 34, 54, 59,127,232,245, 23,253,216,155,175,187,230,252, 68, 26,233,124, 32,211,123, +127, 8, 12,151, 0, 55, 15,249,252,215, 64, 94,245,189,144,231, 93,113, 38,209,141,191, 44, 29,131,123,242,159,224, 31,255, 71, + 8,145,146,214, 46, 4,108,191,192,249,123,119, 77,127,248, 63,255,240,111,190,234, 71,127,235,228,227, 39, 7,127,139,173,243, +177,175,132, 45,201,195,102,198,118, 19,107,251, 7,150,121,255, 8, 42,211,240,169, 21,174,241,174,218,119,239, 16, 66,220, 94, +187,238, 77,152,136,232,230,107,222,182,158,232,253, 16,194, 77,172,141,238,223,232,115,109,199,120, 87, 25,235, 45,124,221,217, +218,199,183, 43, 82,124,146,129,207, 54,228,163, 65,131, 6,207, 5,166,238, 1, 12, 0, 88, 80, 81, 24,133,154, 7,157,153,234, + 11,222,247, 83,175,248,149, 31,126,237, 21,175,245, 5, 96,157, 7,202, 33, 66,127, 17,176, 3, 64, 7,152, 55,253, 18,228,254, +235,215,190, 91,123, 55,212,165,111,129,152,121, 1,252,231,223, 11, 72, 71, 74,185, 0,108,191,192, 69,151,158,191,235,189,111, +255,238, 95,127,227, 47,252,254,119, 2,248,202, 54, 51,245, 58, 33,223,148,118, 25, 66, 56, 8,224, 3,107, 48,133,253,172, 21, +222,180, 74,180,117,204,173, 6,128, 67,156,162,245,158, 85, 44, 8,251, 65,169, 89, 7,216,156,188, 18,243,125, 15, 86,118, 45, +196,231,186, 33,132,240,134,115, 56,222,229,198,122,103,195, 88, 27, 52,104,208,224,236,153,122,100,220, 37,191,234,138,181,186, +250,121,217, 91,254,224, 39, 94,115,219,181, 87,238,185,220,246, 61,188, 43, 73, 51, 47, 45, 32, 28, 68, 2,232,111,121, 23,228, +190,151,143, 46,214, 47, 44,238,122,248, 40,254,242,115, 79,226,244, 66, 31, 70, 9, 92,249,188, 25,124,243, 11, 46,192, 37,123, +102, 0, 0,114,231,165, 16, 47,250,105,184,207,254, 6, 96, 52,201, 22, 82,194, 47, 13,240,141,215, 95,245,210, 31,252,166, 23, +254,216, 31,252,229,125,239,196, 54,165,187, 49,195,187, 97, 66, 35,220,232, 53,110, 96, 6, 55,169, 1, 30,170, 9, 9,117,109, +118, 63,170, 72,251,195,107, 8, 27, 31,168,105,214,119,212, 52,203, 3, 19,207,125, 83, 8,225,200, 10,133, 98,222,181, 12, 67, +175, 95, 43, 62,219,129,101,198,113,174,198, 59, 59,193,208, 79,213,158,111,255, 54,158,149,131,107,104,238,103,179,175,182,220, +253,210,160, 65,131,127,153, 16, 91,116,141, 0, 96,250,135, 94,187,231,231,254,243,119,127,237,219,118,116,178,188, 40, 2, 5, +200, 21, 3,102,247, 0,202, 57,168,111,248, 73,168, 23,253,171,209,151,191,244,228,105,188,253, 79,239,197,103,143, 47,160,155, + 24, 36, 70, 82, 0,124, 89, 34,241, 22,223,250,138, 75,240, 51,175,191, 26,137, 38, 11,191,255,234,189,240,247,191, 15,232,236, + 70,236,210,170,147, 4, 15,124,241,241, 39,175,248,158,223,120, 19,128,207,129, 92, 4,171, 17,210, 91, 80, 43, 62, 35,132, 16, +235, 32,188,147, 26,236, 27, 38,253,178,171, 85, 88, 99,191,239,221, 53,102,116, 4,192,205,203,249,118,151,209,110, 15, 11, 33, +174, 91,229, 94,117, 6,124,243, 36, 83,224,123,127,160,198, 60, 78, 1,184,180,254, 57, 54,185,191,103,130,105,221, 56,233, 71, + 95, 69,243,222,182,241,174, 48,214, 35,124,207, 59, 38,215,106, 59,152, 98, 8,225, 65,140,251,237,175,219,164,149,230,206, 9, +107,207,114,214,134, 35,188,150,183, 55,165,119, 27, 52,104,112, 46, 52,245, 73,134,126,201,175,126,207, 21,191,122,235,155,174, +249,126,233, 53,138, 97, 73, 12,221,218,202, 56, 31, 60,176,251, 82,168,231,127,251,232,203, 79,206, 45,225, 7,126,231, 19,120, +112, 96, 49,211,202,209,215, 10,137, 81,200,149,128,201, 18, 8,103,241,254,255,117, 4, 74, 74,252,155,131,215,144,198,190,247, + 69,240,143,236, 1,220, 18,160, 51, 64, 0,190, 40,112,201,165,187,247,190,229, 53,151,188,241,195, 31,127,232, 11,168, 50,228, +215, 75,108,111, 89, 67, 67,155,100, 40, 55,111, 34,208,234, 61, 19,218,229,138,185,206, 66,136, 67,108,222,142, 26,233,129, 16, +194, 77,107,248,195, 15, 9, 33,110, 92,225,122, 71, 66, 8,183,214, 24, 74,204,193,174, 51,196, 91, 38,152,202,178,121,248,181, +103,187,251,105, 28,239,145,149,174,183, 77, 12,125, 50,190, 96,171,170, 10,174,228, 62,216,207,235,113, 75, 8,225, 57, 95,110, +184, 65,131, 6,207, 12,166, 46, 0,136, 61, 93,117,253, 31,223,244,178,255,244,186,151, 92,240, 98, 59, 0,172, 40, 1, 63,164, +126,108,137, 24,125, 50,148,125,168, 43, 94, 3,164,221,209, 5,254,253,127,255, 28, 62,245,196,105,160,219,197,201, 69, 11, 72, + 7, 41,128,174, 18,184,184,173,113, 65,174,177,107,186,131, 15,254,175, 7,241,218,203,207,195, 75, 46, 62, 15,144, 18,242,194, +215,194,127,254,247,129, 93, 23, 1,193,195, 11, 1,157,165,184,241,245, 47, 59,248,225,143, 63,244, 94, 0, 39,177, 49, 19,252, +122, 75,198,222,142, 77,228, 22,215,106,139,215,181,218, 85,153,143, 16,226, 48,151, 38,189,165, 38, 92,172,198, 76,110, 94,227, +122,135, 66, 8,135, 49,110,234,142,207, 55, 89, 42,245,182,213,158,175,246,108, 55, 61, 77,227,189,237, 92,153,168,121, 44,245, +253,113,120,139, 74, 5,199,186,242,117, 51,126,189, 6,253,104,111,134, 16,246,175, 20, 7,209,160, 65,131, 6,117,108, 38,191, + 59, 6,197,117,222,122, 96,250,231,239,249,119,175,253,211,215, 93,189,247,197, 69,207,193,195, 17, 67,151,160, 10,114, 74, 0, + 90, 80, 5, 57, 45, 33,119, 95, 51,186,200,209,185, 30,254,224,211, 95, 1,178, 22,165,185, 41, 9, 40, 5, 15,137,185,129,195, +103,143,246,112,247,209, 30,138, 32, 96,149,194,223,124,241,104,245, 0,221,139, 40,232, 14,150,159, 38, 0,214,227,202, 11,103, + 46, 5,112, 62,182,175, 81,205, 13,172, 69,110, 52, 64,171,206,224, 78,109,128, 41, 28,154,184,247,138, 12, 98,157,102,218,195, + 43, 60,211,193, 9, 6,187,158,231,187,227,105, 26,239,145,115, 85,127,159, 93, 8,147,230,242,179, 97,174,167, 0,220, 10,114, +125, 92, 39,132,184, 81, 8,113, 91,237,117,163, 16, 98, 7,127,166, 46,180,220,196,130, 87,131, 6, 13, 26,108,169,166, 30,205, +237, 23,188,237,219,246,253,202, 59,191,249,133, 63,161,188, 70, 81, 56, 64,121, 50,177, 7, 64,120,129,160, 4, 32, 37, 87,139, +243,128,206, 32,218, 23,140, 46,244,212, 66, 31,189, 65, 9,180,179, 74, 78,136,186,181,164,250,177,199, 23, 75,220, 85, 88, 92, + 61,165,177, 48,176,213, 67,100,211, 0, 20, 48,236, 65,228, 93, 4, 4,192,149,184, 96,111,231,188, 52,145,123,135,133,255,194, + 6,199,117,235, 42,239,237,103, 38,181,159, 53,168, 81,244,247, 6,180,197,131, 43, 48, 86,172, 67,187, 30,211, 26, 87, 8, 32, + 91,175,229,224,200, 42, 99,220,208,181, 38,159,237, 28,142,247,156,228,134,179,224, 54, 25, 59,112,235,217,228,166,243,119,215, + 83,236,230,182, 16,194, 33,140,187, 56,222,181,134, 32,213,160, 65,131, 6, 27, 98,234, 2, 0,166, 51,249,170,247,253,200, 85, +191,254, 29,215, 94,244,106, 59, 4,202,196,145,102,238, 2, 80, 4,232, 84,160,239,188, 55, 16, 18, 90,142, 50,216, 5, 0,132, + 42,126,109, 54, 79, 32,141,129, 15,160, 90,241, 33,140,234,189, 35, 0,240,212, 8,102,161, 95,226,222, 65, 31,111, 49,245, 84, +120, 15,132, 2,176, 67, 64, 76, 65, 8,170, 82,215,105,235,214,158,169,108,246, 43,199,123, 27,178, 64,172,199,103,201,126,213, + 91, 80,181,231,188, 19,192,122,131,165,234,209,205,251, 57,240,107, 51,152, 93, 69, 3, 60, 27,108,138, 9,243,103, 15,156,227, +241,110, 59, 83,103,134,126,231,196, 56,110, 62,151, 29,250,216, 29,113, 43, 42,211,255,254, 16,194, 13,147,129,129, 13, 26, 52, +104,176, 81,166, 30, 77,217,230,107, 47,206,190,239,143,126,236,218,219, 46,217, 51,125, 94, 49, 12, 64,166,136,161,151, 30,178, + 8,208, 45,137,119,255,221, 3,159,185,100, 42,155,249,246, 3, 23, 94, 92, 4, 80,163, 23,161,128,114, 17, 97,225, 97,136,157, +151, 2, 0,158,183,163,139,111,187,108, 15, 62,120,255, 49, 64,107,192, 10,170,251, 30, 27,192,128, 25,187, 16, 24,204, 45,225, +202, 61, 83, 21,209,237,157, 2, 6,243, 64, 49,205, 31,246, 8, 85,104,156,196, 54,152,223, 89,123, 66,141,200,174, 39,120,109, + 57,230,180,145, 94,238, 79, 7, 78,109,193,103,159, 77,227, 93, 15, 67,191,245,105,106,185, 91,175, 98,135,103,211, 60, 54,104, +208,224,153,201,212,163,185,253,188,159, 62,184,231, 23,223,249, 77, 87,255,111,211,121,154, 20, 30, 64,155, 53,231,194,195,120, +160, 76,129, 95,250,255, 62,247,225, 95,251,243,175,124,240,195, 63,253,194,183,129, 10,191,145, 95, 93, 0,208, 18,225,196,103, +129,175,185,158,153, 36,240,246,111,189, 10, 31,188,255, 9, 96, 80, 2, 73, 82,241, 98,199,119, 13, 30, 88, 90,194, 27,175,216, +135,111,126,225,190,138,240,206,127, 25, 33, 12, 33, 92, 57,210,236,133, 8, 88, 92, 28,246,143,206, 15, 22,182, 81,123,186,141, +171,155, 69,220,128,141, 71, 66, 31,193,230, 43,211, 61, 27,243,151,159,109,227,157,100,232,183, 63, 93,209,231, 66,136, 83, 19, +193,141, 7,209, 52, 17,106,208,160,193, 38,153,186, 0, 32,148,196, 21,191,243, 67, 87,252,151, 31,121,229,165,111,116, 37, 80, +104, 1,164, 10,240, 30,161,239,145,106,224,216,160, 24,252,204,127,187,231,119,223,255,201, 83,127, 4,192, 63,188, 48,124, 10, + 34, 92, 25, 2, 32, 34, 83,207,187,240,143,124, 2,234,202, 31, 0,218,187, 1, 0,215,125,205,110,124,232,230, 87,227, 7,222, +123, 23, 22,231, 7, 64,150,145, 63, 61, 4,160, 44,129,126, 15,111,186,124, 47,126,255,167, 94,141, 52,154,223, 93, 1,255,192, +159, 65,164, 25, 32,200,143, 31,188, 3,164,196, 99, 79,204, 31, 27, 20,254, 24,182, 47, 80, 14, 32,159,243,193, 26,145,221,176, +246,245, 47, 44, 69,233, 89, 51, 94,238,198, 54,201,208,159,238,168,243,166, 16, 77,131, 6, 13,214, 13,185, 6, 83, 63,239,189, + 63,242,252,223,252,145, 87, 93,250,198,162, 4, 92, 91, 3,185,161, 44,240, 37,143, 52,147,184,239,241,185,167, 94,247,174,143, +191,227,253,159, 60,245, 95, 1, 60, 12,224,241, 47, 29, 91,248, 34,164, 0, 28,247, 87, 81, 2,208,100,130,183,247,253,246,216, + 77,190,237,197,251,240,207,255,238, 13,248,213,183, 92,131, 23,205,166,200, 66,137, 41,233,240, 29,151,237,194,251,255,245,215, +225, 67,191,248, 58,156, 55,157,143, 62,239,191,252,231, 8,167, 30, 6, 76, 78,109,219, 17, 0,235, 0, 41,240,197, 71, 79, 63, + 2,234,179,238,159, 97,243,188, 82,212,249,179,253,249, 14, 62, 75,199,187, 18, 67,191,233, 25,198,208, 27, 52,104,208, 96,203, + 52,117, 92,181, 39,121,237, 91,175,126,222,245,182,239,129,174, 6, 18, 9, 20, 30,114, 96,161, 59, 18, 31,189,247,201,251,191, +247, 61,159,254,143,167,122,254, 99, 0, 78,128, 26,189,100,127,245,169, 19,119,157,126, 83,241,163,221,118,162,189,103, 59,188, + 0,208,106, 35,124,229, 31,225,103,254, 8,242,202,239, 31,221,231,162, 93, 93,252,242,183,188, 0,183,188,249, 74,156, 94, 28, + 66,107,137,217,118,122,198,243,248,199, 63, 1,247,207,127, 8,228,109,146, 58,164, 66,240, 30,194, 57,184,193, 0, 31,252,135, +123,254, 39,168, 30,253,118, 50,245,205,248, 53,199, 76,168,219, 85,245,236, 44,112,164,246,124,235,234, 62,199,249,219,207,214, +241, 62,155, 24,250,102,131, 24, 27, 52,104,208,104,234,227, 12,255, 5,251,242,203,219,169,129,247,160,232,246, 94, 9, 93, 88, + 32, 5,110,187,243, 11,135,222,244,238,195,255,246, 84,207,255, 13,128,167, 0,204, 1, 40, 0,148, 15, 28, 47,238,250,232,253, + 79,220,171, 52, 16, 56, 21, 77, 72, 50,197,139,246, 52,252, 63,255, 33,220,189,255, 23, 80,140,187,191,141,146,216, 61,157,159, +201,208, 93, 1,255,192, 29,240,119,189, 19, 34,205, 32,148, 34,127,189, 73,129,178,132,146,192, 23,191,120,244,201, 15,126,252, +145, 67,160,218,239,219,194,212, 39, 90,124,110,132,200, 78,166,137,221,244, 12,219, 7,245,231,155,229,114,166,155,213,210,159, + 13,227,125, 86, 48,116, 46,221, 59, 41,124, 53,104,208,160,193,166,152,186,250,196, 3,139, 95, 58, 81,148, 54,105, 75, 36,165, + 71,162,128,129, 10,225,103,239,184,231,143,111,253,127,143,252, 10,128,207, 0, 56,206, 26,122, 12,111, 43, 1, 60,245,159, 62, +252,224, 29,253,210, 67,149, 22, 40, 61,105,235,177, 40, 77,187,139,240,208, 71, 97,255,238,103,224, 31,251, 24,208, 95, 65,137, + 27, 46, 32, 60,117, 47,236,199,126, 1,254,190,219,129, 44, 7,148, 38, 95,186, 0, 32, 52,196,176, 4, 84,192,187,222,255,241, + 15, 2,248, 50,223,127,203,153,122, 45,111,185,142,117,165, 23,113, 26, 82,157, 32,223,178,134,166,123,174,113, 7,198,125,183, +183,172, 99, 46,110,121, 22,143,119, 37,134,126, 24,171,215, 44, 88, 83,232, 11, 33,220, 82,123, 29,156,152,179,141,238,183,122, + 80,230, 41, 52,121,234, 13, 26, 52, 88, 3,171,154,223,159,152,119,159,250,241, 63, 60,124,219,207,190,238,242, 27,102,219,102, +250,254, 19,139,143,253,214, 95, 63,244,225,127,124, 96,241, 47, 0, 60, 1,224, 52,107,231,117, 38,234, 0,244,239,126,108,240, +145,255,251,239, 31, 60,248,182, 55, 95,249, 6,183, 80, 80,241,153, 84, 85, 33,108,173,105,192,206,195,125,234,215,224,147, 14, +176,227, 10,200,153,203, 0,149, 1,161,132,159,127, 4, 56,126, 63, 48, 56, 5,152, 4,104,239,168, 81, 60, 0, 94, 1,133,128, +106, 43,124,228,175, 31,252,252, 31,254,213,151,254, 24,100,122, 47,183, 65, 59, 63,136, 51,251,139,159,194,198, 34,223,111,198, +120,237,245, 59,185,205,232,161,117,220,255, 6,102,150,219, 18,112,198, 81,214,183,213,152,200,193, 16,194,123,150,211, 88,107, + 41, 95,179,207,214,241,174,194,208,223,112,150,110,130,253, 19,140,248,214,154,213,226, 0,215, 58,184,125,173, 92,243, 90, 27, +221,250, 28,223,214,116,111,107,208,160,193,217, 48,245, 18,192,201, 15,221, 51,247,222, 15,221,115,247,157, 0,186, 32,191,249, +147, 32, 83,251, 34,127,102,178,172, 88,236,183,254,228,173,127,244,192,187, 15,156, 63,125,201,245, 47, 61,255,178, 98,110, 0, + 49,157, 1,169, 24, 85,140,131, 49, 16,198, 80, 81,154,147,247,193, 29,251,244,232,114, 66, 42,106,216,210,238, 78, 80, 60, 0, +133, 71,240, 41, 76, 98,112,228,129, 99,167,126,224,215,255,226,215, 89, 75,239, 99,141, 14,109, 43, 16,209,205,180,106,189,121, + 35, 68,150,171,165,221,140,170, 19, 90,100,116,135,152,240, 31,158, 96, 14, 81,152, 56, 80, 99, 16,219,137,219, 49,222, 6,245, + 38,214, 52,111,175, 61,219, 65,102,132,179,172,137,159,194, 10, 62,248,103,242,120,121, 92,203,185, 4, 62,176,129,173,112,199, + 38,114,215, 15,178,192,116,132,231, 96,185,218,239,147,173,114, 1, 42, 3,220,164,178, 53,104,208,224,172,152,186, 99,198,109, +153,137, 75,254,223,144, 95, 14, 43, 55, 77,177, 0, 22, 3,112,223, 13,191,117,207,255,241, 55,111,123,197, 59, 95,122,249,174, +231,149,167, 7,192, 84, 10,145,129,106,189, 71,173, 93, 40, 32,201, 87,207, 67, 11, 0,188, 7,134, 30,126,110,128,228,130,243, +240,248, 19,115,139, 55,252,242,159,221,118,114,161,252, 88, 77,200,216,110, 28,102,134,190,225,160, 37, 33,196,237,181, 2, 54, +179,117, 66,255,116,111, 4,214,214,111,100,237,122,255, 10,154,103,221, 74,113, 35,214,104,132,243, 76, 30,239, 50,216,168,123, +224,208, 89,220,107, 63,214, 31,103,112,251, 57, 16,232, 26, 52,104,240, 28,129, 92,131,141, 90,144,191,252, 20,168,243,217,105, + 0, 61,254,127, 88,227,187, 67, 0,115,167,122,254,239,191,254,215,254,233,237, 31,189,231,137,251, 77,162,161,230,134,240,167, + 45, 48,112,181,171, 8,142,144,159,120,197,154,240, 14, 64,225, 16,230, 28,112,178,143,100,199, 14,124,238,193,249, 39,223,240, +115,127,242,142,123, 30,153,255,115,126,182, 30,182, 47,234,253, 16, 19,215, 27,185, 17,199,217,212,255,190, 29, 84, 94,246,118, +172, 47, 7,249, 14,144, 41,123,219, 43,154,113, 83,152,235,214,184,215, 33, 80,219,211,195,207,246,241,158, 99, 68,127,253,122, +247,206, 29, 32,119,192,205,141,217,189, 65,131, 6,235,166,227,219,124,125, 5,160,197, 90,218,213,191,240, 29, 23,253,248,219, +223,120,213,183,206, 78, 39,218, 15, 61,156,150, 64,174, 33, 98,141,120, 89,123,156, 16, 0, 7, 4, 27,128,190,131, 44, 45,148, +145,232, 59,224, 55, 63,246,228,223,189,253,247,238,126, 79,233,195,167, 80,165,210,217,103,227, 2,176, 41,120, 82, 75, 60, 2, +234,110,118,232,105,124,174,104, 14,175,247, 68, 63,180,206,110,112,207,186,241, 62, 77,235,190, 31,103,198, 38, 28, 6,153,219, + 27, 70,222,160, 65,131,103, 28, 83,143,140, 61, 3, 48, 13, 96,239, 11,246,164,175,255,217,183,236,255,246,239, 58,112,209,203, +119,116,181, 65,144,220, 19, 93,114, 49, 25,126,176, 0,200,224, 71,202,250,226,192,251,143,124,230,241,251,126,251,208, 67, 31, +254,219, 47, 44,252, 37,128,199,216,114,208,127,182, 50,244, 6, 13, 26, 52,104,208,224,217,198,212,227,125, 18, 0,109, 0, 83, + 0,246,238,153, 82, 47,121,211,181,179, 47,127,235,139, 47,122,217,213,207,155, 58,191,157,170,118,166, 69, 34,149,146,222, 33, + 12,157, 45,122,133,239, 61,124,116,225,216, 7, 62,251,232, 61,135,238, 62,117,215, 3,199,139,195, 0, 30, 7, 48, 15,242,161, +111, 91, 78,122,131, 6, 13, 26, 52,104,208, 48,245,213,239, 37, 1,164, 32,147,124, 11, 20, 81,191, 3,192,158, 78, 42,118,182, + 19, 57,149,105,153, 20,206,219,197, 34, 44, 44, 12,252, 9, 0, 71, 65, 38,246,121,144,223,124, 9,107, 7,234, 53,104,208,160, + 65,131, 6, 13, 83, 63,135,204,221,176,246, 30, 95, 26,163,238,235, 0,107,224, 37,191, 10,102,228,182, 97,230, 13, 26, 52,104, +208,160,193, 51,135,169, 79,222, 63, 50,249,248,179,206,212, 67,237,103,195,200, 27, 52,104,208,160, 65,131,103, 48, 83, 95,237, +121, 26, 38,222,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, + 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, + 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6,219, 4,129, 61,175,217,250, 34, 47, 90, 3, 66, 2,240, 64,105, + 55,247,253, 68, 87,127, 59, 13, 40, 11, 56, 15, 40, 9,244, 6,244,153, 86, 14, 72, 9,168, 4,176, 5,127,216, 3,189, 18, 40, + 7,213,181, 52, 95,107,185,238,241,189,193,248,125, 1,186, 71,150,210, 24,116, 2, 20, 3,160, 40,169, 64,173, 50, 84,212,214, + 6, 64, 11, 42, 96, 11,126,207, 76, 92,111, 43,231, 51,201,232,153, 92, 65,227, 21, 18,232, 47, 0,222, 80,155, 90, 33,168,170, +254,206, 29, 84,131,207,228,128, 49, 72, 18, 9, 59,244,240,197,144,230,212, 91,160, 44,129, 84, 1, 75, 3,154,171, 76, 3,131, +130,202,253,216, 1, 77,148, 0,215,241,243, 52, 7,174,160,255,235, 4,232,247,233,111,239,105,254, 61,207,173,231, 53,175,255, +190,217, 61,240, 92,129,201,128, 96,129,153,157, 64,111,137,246,108,175, 15,180,218,192,226, 28,208,153, 6,138, 30,205,107,111, + 9,176,150, 94, 43,237,131, 73,212, 63,107, 52,144,231, 64,210,162, 53,141,173,140,125, 0, 22,230,105,221,215,187, 63,205, 50, +247,146,146,206, 96, 44, 17,117,182,235,218,158,198,107,191,241,117,176,222,227,227,247,223,143,235,175,123, 57,254,230, 31, 62, + 6, 60,246,200,250,232, 2, 31, 61,132,101,230, 44,158, 25, 7, 58, 27, 40, 1,169,249, 12,243,103,138,193,242,115,189,218, 60, +107, 13, 8, 77,103,221,215,104, 74, 81,123, 6,163,199,207, 5,106,159,117,126,229,245,173,237,153,214,129,203,209, 59,252, 0, +221, 71, 27, 96,215, 14, 32,215, 64,223, 2,143, 62, 85,209,183,205,210, 85,111, 0,215,167,253, 56,183, 64,255,155,234,210,222, + 20,154,126,159, 59, 69,159, 47, 65,115, 39, 4,125,103,106, 22,152, 63, 69, 99,204,114, 96,137,247,181, 45,137, 86,187, 65,228, + 46,213, 62,153,234, 2,195, 33,128,100,252,125, 41,129, 97, 1,100, 93, 32, 12,137,174,197,249,137, 52,200,110, 19,253,168,207, + 71,233,137,214,217,115, 68,171, 76, 2, 76, 79, 3, 89, 66,180,183,215, 7,122,139,244,127, 9,162,245, 58, 3,242, 4, 8,142, +190, 51,112, 21, 95,141,223,243, 30, 24, 12, 1,163,128,114, 8,244, 6, 80,232, 92,244, 43, 91,250,176,173, 12, 72, 83, 32,111, +209,164, 41,193,197, 94, 55,208, 76, 77, 74, 98,172,163,191,249,187, 82,208,228,123, 87, 93, 79, 41,250,124,176,180, 11, 74, 15, + 12,123,213,119,149, 4,181,119,229,131,165, 38,238, 85,127, 54,239,233,149, 26, 98,222, 74, 3,174, 4,116, 74, 19, 8, 0, 90, + 86,125,225, 44, 19,139, 86, 27, 48, 18,232, 15, 55, 54,206,245,194, 51, 69,208,160, 69, 85,154,132,152,164, 69, 4, 36, 53,192, +236, 20,176,107, 6,112, 2, 83,179, 83, 48,105,138, 78,150,224,130,238, 14,120,239, 48, 53,213, 69,174, 13,160, 36, 74, 1,122, + 86, 33,105,141,250, 5,207, 93,159,152, 75,176,192, 48,208,198, 42, 74,154, 56,157,144, 64, 16, 60, 80, 6, 90,131,200, 52, 4, + 63,151,102, 6, 34, 64,189,115, 3,175,153, 16,213,154, 42,201, 4,207,111,236,240,249,103, 97, 51,190, 52, 1,138, 33, 48,187, + 19,152,159, 7,218,109, 34,198,105, 14, 44,205, 19, 67,159,155,163,255,207, 47, 2,153, 33,162,178,220, 88,151, 99, 52,241,172, +196,249, 84, 9, 49,245, 60,161,207, 7,150,215,149,166,125,235, 2, 19,214,117,158, 65, 81, 59, 35, 0, 93, 79, 73,250,185,209, + 51, 61,137,172,139, 29, 47,121, 62,190,233,107, 95,133,139,247, 93,128,151, 92,122, 25,222,255,145, 59,129,175, 60,180,194, 30, +224,113, 56,193,231, 52, 16,109,241,158,247,151, 27,239,215,232, 89,184, 84,138,207,189, 4, 96,121,174, 34, 3, 14,203,143, 65, +202,229,207, 96,100, 2, 44,171,142,209, 20,207,215, 29,209, 28, 81,123, 14, 81,171,149, 25,136,158,173, 50,117, 87,188,225,149, +216, 55,179, 19, 95,125,224, 33,192, 11,192, 50,179, 49, 9,112,252, 36, 80, 22, 27,159,251, 52,161,123, 59, 79,175, 78,155,246, + 66,105,233,119, 47,233,186, 73,198,140, 98, 30, 80, 45, 26,160,183, 68, 19, 58,109, 98,220,253, 62, 48, 51, 75,243, 59, 24, 0, + 42,163, 57, 24, 20, 52,199,176,128,110,211,251,129, 5,127,107,137,150, 8, 79,239, 39, 45,154, 19,239, 42,250, 93,148,145,176, +210,251,170, 70,147,207,246, 28, 74,162,125,240,174,198, 27, 52,205,111,164,175,194,159, 27, 58,211,202,136,191, 24, 3,148,142, +133, 23, 71,124,211,243, 79,193,130,148,117,244, 25,235,129, 86, 90,209,135, 68,211,124, 13,150,104,141, 22,151, 0,153, 1, 58, +217, 98,166,110, 52, 73,110, 83, 93, 98, 52, 89,139, 78,163, 47, 55, 38,213,155,154,150,113,198,225, 18,172, 9,242, 97,142, 31, + 19,146, 25, 78, 1, 56, 55,126, 64, 19,102,196,166, 38,221, 43,150,206,108,121,230, 61, 66,124, 6, 69,247, 25, 70,173,212, 19, + 97, 84,124,128,165, 4, 82,131,233,171, 46,198,174,189,187,177,112,114,142, 62,123, 54,139,109, 50,218, 96,126, 98,190,152, 38, +193, 75, 34,208,146,159, 79, 25, 32,213, 64, 59,199,174,169, 41,116, 59, 57,164, 48, 72,117,130,221,121, 7,222, 58, 76,229, 57, + 4, 72,152,203,146, 20, 62, 4, 20,142, 55,135, 0,109,144,193,128, 54, 84, 96,105, 80, 5,210, 10, 18, 69, 19, 82, 88, 34,144, +195, 33, 63, 27,207, 63,226, 51,241,188, 26, 65,115, 36,248, 64, 11, 65,147,157,112,207, 30, 9, 18,178,228, 58,153, 66,212,140, + 20,191,140, 28, 95,223, 85,133, 0,205, 19, 23,173, 6,231,136,145,107, 69,251, 55, 8,160,219, 2,134,125, 98,220, 11,139, 36, + 0,246, 23,128, 86,151, 24,123,183, 11,204, 47,208,153, 89, 92, 32,162, 90, 22, 43, 11,186, 82, 84, 47, 8, 98,108, 82,240, 61, + 19, 58,119, 73, 77, 8, 82,154, 9,153,160,121,119,229,218,243,183, 18, 99,139,140,125, 76,216, 92, 31,212, 75,175,193,171, 95, +246, 82,156,127,233, 37,208,207,219,137,185, 2,248,142, 87,190, 12, 51, 59,102, 49,232, 15, 48, 59,211,197, 37,187,207,195,103, + 62,243,185, 51,247,126,212,108, 60, 0, 25, 42, 33, 67,177, 42, 39, 88,178,156,124, 30, 33,232,156, 71, 11,159,103,109, 76, 50, + 51, 89, 85, 75,183,227,170,120,156, 15, 85, 19,234, 77,100,232,188,215,189,171,180,244,184,255,227,125,227, 89, 17,188, 47, 86, +153,187, 19, 65,224,171, 95,250, 74, 37, 80, 35, 16,253,156,155, 7,250,131,205, 9,196, 66,208,120,179, 22, 32, 12,208, 63, 13, +136,132,158,211, 6, 32, 55, 76,163, 53,224, 11, 58,115, 66,145,130,212,105, 3,193, 0,253, 69, 64,166, 52,238, 97, 65, 22,132, +194, 3,153, 34, 70,159,104,182,208, 1,240, 3,162, 25, 70, 19,225,113,172, 93, 2, 52,126,103,129,162, 24,127, 95, 37,204,244, + 37,189, 63, 44, 42,165,101,179, 86, 33,147, 1,157, 14, 41,153,138,133, 26, 95, 83, 18, 35,255, 48,252,203,122,206,198,217,162, +228,189,165, 21,208, 50, 52,247,115,139,180, 62,145,127,132, 0, 36,105,197,144,132, 36, 75,155, 43,217,154,225, 1, 59, 4,172, + 2,130,170, 4,131, 16,160,183,216,158, 65,147, 24, 15,134, 7, 61,116,232,210,100,174,151,225, 13, 61,153,146,213, 4, 97, 49, + 41, 49,190,222, 18, 96, 23, 43, 83,165, 94,197,100, 25,255, 63, 50,179,240, 97,140,230,150,149,190,211, 31, 2,166,164, 49, 56, + 95,227, 11, 44,185, 74, 77, 7, 63, 8,132, 16,112,108,105, 0,244,203,179,159, 63, 45,232,103,185,220, 56,226,125,217, 12,158, +101,180, 49,243, 12, 59,186, 57,118,228, 45, 12,221, 16,137,202, 32,132,130, 11, 64,102, 52,156, 4,114,149, 96,105,232, 97,132, +198,206,118, 27, 30, 14,189,185, 5, 58, 88, 96,169, 48, 97,105,189,112,244, 28, 33, 84,204, 48, 75,129,165, 97, 69,192, 38,101, +174,232, 34, 1,152,241,250, 74,147, 49, 44, 17,103,220,183, 39,240, 26,219,117, 16, 36,157,215, 23, 13, 8, 9,216,231,177,242, +119,172, 29,215,108,109,237,255,219,141,200, 7,140, 38,162,215, 27, 18,227, 94, 90,168,126,182,235,140,188, 79,103,100,105, 1, +104,231,116,112, 53,239, 45,187,140,182, 88,103,182, 33, 18, 64, 79, 68,184, 45,201,173, 18,173, 37,245,253, 47, 5,237,219, 44, + 95,223, 57,156,156,195,213,204,254,107,201, 7, 47,185, 18, 95,187,111, 47,174,250,154,125,208,198, 64, 10,133,223, 93,248, 71, +180, 90,109,244,123,125,120, 15, 44, 44, 14,177,184,184, 0,180,103,128,211, 79,158,121,145,200,152, 81,147,209,156,175,230,123, + 37, 39,162,243, 36, 16,148,182,178,210,149,126,229,207,215,199, 85,223, 75, 35,147,176,174,148,131, 58, 61,113,252,249, 96, 1, +175,171,117, 26,185,168,252,184,213, 99, 53, 28,121,164,114, 97,214,233,206, 70,247,175,214,192,142, 61,192,220,177,138, 65, 58, +144,146,165, 88,200,142, 90,184,101,197, 8, 69,181,238,129,191, 19, 21, 31, 33,129, 84, 0,133, 1,100, 73,230, 96,128,172,122, +138,207,169,244, 36, 72,150, 53, 58, 16,215,173,176,149, 18, 81,176,229,161,254,126,152,120, 63, 77,170,239,109,202, 5,204,252, +103,166,195, 22,137, 41,114, 55,198,131,101,249, 30,113, 47,157,141, 66,182, 25,198, 94, 12,137,142, 11,144,176,191,180, 64,252, + 45,142,185,100, 26, 17, 93,174,174, 32, 1,107,169, 79,251,201,150, 68, 3,134, 5,241, 93,222,151, 91,167,169,107, 77,230,129, +118,206, 27, 56, 84, 62,184,192,155, 82,201,117, 74, 92,158,181, 80, 81, 17, 74,161,201, 7,209,105,209,239,118, 88, 73, 85,107, + 73,174,241, 96, 73, 65, 23, 11,108,118, 91,237,144,120, 71,207,106, 45,253, 46, 88, 43,138, 38, 35,207,215, 45, 74, 12,143,158, +130, 59,118,146,124,116,103,101,233,144, 44,233,218,149,205,155,237, 46,155, 1, 19,250,188, 80,232,116, 50,236,105,229, 8, 65, + 32,211, 6, 65, 8, 40, 8,116,187,109, 20, 69,137, 92, 75, 88,235, 96,164, 70,225, 75, 88, 31,224,124,192,208, 89,146,136,123, + 5,141,175, 28, 18,179,141, 82,171,103,198,238, 1, 12, 29, 32,108,181,150,214,146,164,169, 36, 19, 75, 95,249, 15,203,104,170, + 21,100, 85,128,228,107, 50, 69, 43,216, 60,191,218,218,141, 76,157,178,230,152,148, 36, 56, 24,189,242, 62,138,102,210, 51,172, + 28,231,128,161,167,124, 64, 61,107,145,214, 3,121, 70, 26, 87,194,254,208, 84, 1, 69, 77,115,239,228,180,111,146,148,215,193, +144,182, 82,186, 51,173, 87, 62, 48,115,246,164,237, 40, 65,231, 43, 18, 92, 35, 73,106,183,174,102, 45, 96,247, 72,159,199, 63, +236,173, 95,235,153, 20, 34, 54,193,208,209,202,112,222,197,123,112,253,181, 47,133, 84, 18, 40, 61,172,183,184,176,211,193,253, +143, 63,134,233,172, 13,231, 28,250, 75, 61,220,253,224,151,113,242,209,199,136, 67, 78,238,139,145,182, 43,170,222,142,163, 88, + 14, 63,238,243,142, 46, 9,107,137, 70,200,168,197,176,150,166, 4, 9, 79,235,177, 86, 76,154,127,101, 77,217, 40,121, 93, 74, + 95,249, 61, 71,123,149,233,159,175, 53,152,148,172,109,173, 71,211,246,172,249, 59, 55,238,110, 92,139, 6,207,204, 18,109,112, + 14,216,247, 60, 96,182, 5, 28, 63, 77,174, 29, 37,137, 49,200, 26,141,147,129,253,177,108, 5, 17,146,155, 91, 74, 87,209,197, + 0, 0, 32, 0, 73, 68, 65, 84, 91, 64,164, 76,135, 44,157, 99, 33, 88,160,103, 97, 74,176, 98,148,105, 32,176, 63,221, 59,154, +223, 44, 39, 70, 21, 93, 36,142, 77,198,113,191,134, 64, 52,192,242,121,174,191,239,253, 72, 97, 66, 89,174,233,174, 88,214, 85, + 3, 73, 99, 73,216, 21, 21, 45, 36,139,189,113, 75,144, 96,186, 20,194,185,119,241,149, 76, 67, 3,211,222,162, 36, 6, 45, 37, +173,137, 2,209,144, 52,231,253,164,200,162, 42, 68,245,188, 49,158, 42,225, 88, 51,200, 45,212,212,173, 37, 77, 53, 41,136,185, +199,255, 73,150, 6, 53, 7,119,181,176,190, 96,157,178, 32,115,162,103,102, 23,253,231, 0,153,155,149,220,216,243, 45, 43,133, +105,140,205,192,106,196,202, 90, 18, 38, 34,145,140,140,119,181,192,166,141,162, 55, 24,215, 16,150,115, 75, 56, 75,139,108, 12, +187, 9, 36,178,212,160,231, 45, 90, 82, 35,176, 58,210,110,231, 80, 2,104,165, 6, 67,235,160,181,198,192,150,104,235, 12,115, + 69, 31, 74,177, 25, 63,106,124,182,168, 44, 23,253,146,214, 48,176,198, 62, 12,204,208,253,153,166,225,146, 41,171,172,153, 42, + 13, 31,170,210,159, 25,195, 80,128, 2, 13, 97,104, 44,171,238,129, 72, 68,121,190,181, 1,116,151,168,121,137,229,131,133, 38, + 25, 58, 91, 20,105, 78,129,181,205, 3,103, 33,212,250,154,181, 31, 0, 18, 67,218, 76,198, 65, 44,194,144,116,173, 13,249,194, + 90, 6,152,103,159,122, 57,164, 57,239,245,105,223,235, 9, 70, 53, 50, 33, 79,104,161,163,128, 70, 11, 68,119,121,167, 13, 12, +248,187,169,168,108,196,253,254,198,181,158,209, 51,212,230,114,131,152,210, 64, 49, 24,192, 7,192,200, 4,195, 65, 31, 90, 73, + 28,190,235,203, 16, 65,160,103, 45,180, 82,120,224,190, 71, 72,123,145,171,156,109,137, 51, 25,108, 60,219, 90,147,127,119, 4, + 14,132,115,254, 76,237,125, 61,150,155,229,222,183,182, 90, 7, 35,171,253, 20,233, 81,253, 94,206, 87,110, 65, 37,207,124,142, +173,222,127,251,158,135, 23, 92,121, 41,250,118,128,135, 62,241, 89,224,241,199, 89,144, 40,128,192,227,205,178,106, 14,163, 11, + 82,241, 89,106,101,180, 63, 18,205,214,194, 1,187, 18, 88,115, 22,236, 62,163,224, 30,214,204, 19,118,201,241,225, 46, 11, 64, +118, 56,182, 74, 0,105, 27, 56,122,188,178, 52, 90, 0,130,125,240,138, 15,203,136, 31, 88,114, 9,196, 56, 40, 36,213, 26, 70, +235,213,228, 17, 54,186,218, 20,161,224,247,116,165, 28, 14, 88, 27, 78, 21,157, 69,233, 55, 47,160,110,194,240, 10, 68,107, 15, +206,124,118,128,207,100, 89,173,143,201,128,225,128, 20,132, 97, 65,214, 12, 45,136, 38,179,177, 18,185, 33, 75,114, 12,236, 75, + 59, 52,239,173,108, 27, 2,229, 70,129, 41,178,242, 61, 7, 79, 27,194,241,131, 75, 54,189,174, 71,244,138, 82,148,247, 85, 48, +138,102,230, 55,100,191,143, 97, 13, 92, 49, 99, 89,175,251, 84,235, 51,163,225,253, 26, 95,150,158, 36,167,250,207,237, 56,167, + 43, 73,140, 89,194, 17,145, 45, 54,141, 11,200,156,152,119,106, 20, 0,129,194, 23,232,152, 12, 50, 0,105,150, 34, 75,114,136, + 0, 72, 41, 49,180, 14, 18, 2, 65, 6, 72,225,177, 48,191, 68,146,112,105,129,254, 82,229,187, 73, 21,109, 44, 40, 58,216, 90, +179, 84, 30, 38,226, 21,216,159, 43, 88,155,143, 18,111,124, 9,144,214,168,120, 95, 68,134, 94,128,136,247,106,218,146,143, 26, + 0, 7, 57, 6, 73, 17,182,237, 22, 73,223, 74, 2,189, 30, 61, 91,183, 11,236,222,197,153, 10,110,124, 13,235,107,236,183,241, + 0, 75, 89, 89,150, 0, 10,232, 18, 28,116, 89, 14,137,145, 7,102,232,195, 33,141, 97, 56, 4, 90, 45,142, 56,102,243, 90,150, + 80, 20,108,180, 56, 24, 38,160,137,170, 2,212,140,162,117, 80, 81, 19,172,197,130,104,205, 62,182,232, 35, 68, 21, 92, 51,236, +175, 79, 67, 93,201,173,128, 13,134, 38,180, 50, 96,215, 30, 20, 74, 96, 71, 42, 49,219,157, 70,175,223,199,112, 56,196, 35, 39, +158,192, 87,189, 2,144,225,248, 98,129,199, 22, 22, 17,220, 2,176, 56,207, 22, 9,185,178,182, 94,223, 99,117, 31,169,209, 36, +240,107, 65, 86, 38,189,134,185,123,179,154,153, 16,149,229,174,100,171,100, 12, 68, 4,107,159, 49, 6,194,251,241,159,194,173, + 62,135,209, 7,190,209,224, 80,182, 40,236,190,232,124, 60,126,122, 14,229,227,199,198,227,139,226, 53, 11,214, 4, 93,180, 90, + 70,171,130,169, 4,112, 41,232, 25,139,130,246,111, 12,246,147,130,104,133,103, 6, 26,216,109,167, 2,251,231, 29,199, 33,149, + 64,154,209, 61, 74, 14,128, 83,134,232,129,209,116,246,133, 96,166,165,232, 59,153,193, 40,235, 70, 9,122, 30, 25, 5, 83, 67, +180, 57, 97, 6, 30,199,164, 65, 1,117, 41,251,255,163, 79,124,204, 69, 5, 14,238, 27,112,180,184, 59,119, 26,185,172,187, 2, +153,183,248,101, 92,133,214,210,217,215,154, 63,227,121,252,188,215,250,253,138,255, 69,225,220, 59,162, 21,146,227,159,134, 44, + 12,155,214, 22,251,212,173, 37,127,183, 97, 34, 54, 23, 72, 75, 25, 29, 6, 11, 12, 2, 75,253,122,121,173, 73,235, 74, 18,206, + 19,250,136, 97,166,141, 2,152, 31,208,134,105,165,181,168,245, 80,105, 17,253,130, 36,154,224,151,247, 75,174, 37, 89,173,246, +121,187,194,207,115, 5, 15, 34, 30,253, 62,208,109,211,191, 74, 15,159, 1,131,210, 67, 25,137,212,104, 12,220, 0,185,153,169, +132,217, 76,163,191,216, 67, 22, 3, 47,250, 22,214, 7,154,183, 1,175, 89,180, 20,104, 13,244, 44, 75,125,156, 98,177, 82,234, + 79,157, 48, 46,231, 67,140, 38, 80, 37,233,160, 75, 77,218,100,212,250,215, 66, 97, 89,171,103,159,125, 61, 69, 40,254, 34, 52, +208,237,208,181, 91, 25,153,176,173, 29,215,210, 55,169, 97,110, 92,163,173, 91,144, 60, 73, 48,145,161, 23,236,124,237, 15,129, + 60, 37,201, 59, 79, 41, 29,168,157,147,175,207,104,122, 63, 30,246,186,102, 94,122,118,207,248,113,173,189,230,213,128, 4,125, +127,116,222, 98, 90,105, 56, 55,155,181,126,118,101,130,233,107, 46,195,193, 43,246, 99,110,176,132,196,164,120,228,241, 71, 49, + 40, 29, 74,239, 48,191, 20,240,245,151, 92,134,157, 83,211, 72,211, 20,206, 14,241,240,241,199,240,201,197, 62,249, 22, 87,242, +111,174,166, 89, 41, 89, 9,142, 81,120, 92, 78,131,158, 36,170, 27,213,190, 70,230,247,154,149,106,228, 6,169, 89,139,226,255, +198,126,174,131,200,104,156,233,203, 95, 15,230, 23,240,249, 79, 28, 30, 79,233, 93,110,204,206, 87,154,178,226,179, 37, 11,182, +126,121,178, 18, 9, 73, 90, 99,244,141,215,253,225,206, 3, 34, 39,191,186, 47, 57,162,190, 95, 99,218,158,211,109, 65,138, 92, + 89,140, 91,179,226, 62,137,231,101, 56,160,207, 37, 28,135, 98,107,251, 85, 72,122, 62, 88,142, 51,146, 53,134,206, 86, 25, 27, +170,207,198,185, 23, 53,247,137,139,238, 87, 22,114,207, 5,162,101, 65,215,246,173,214,213,218,142, 89,193,106,207, 28, 5,115, +233, 1, 47,145,188,232, 82, 92,123,241,101,248,167, 79,126, 10, 56,122,146,206,115,156,191,222,128,180,244, 98, 80,155,211,114, + 27, 82,218, 60, 75,127,253, 1,105, 42, 34, 0,150,165, 88, 23,216, 68, 51, 65,100, 12,107, 36,210, 0, 45,246,129,228, 44,133, +228,156,171,151,179, 79, 40, 99,115,132,214,100,222, 20,138,222, 51, 28,138,106, 20,249, 41,140, 33,237, 78,196,136,225,154,228, +191, 90, 0,208,102,165,184,115,145,118,165, 36, 77, 91,150,179, 79,209, 67,182, 51,132, 32,209, 74, 21,180,148, 80, 80,200, 84, + 10,201,129, 34, 89,146, 99, 80,150, 48,198, 64, 72, 1, 91,150, 72,147, 20, 71,142, 31, 39,237,188,215, 35, 51,187,117,227,254, +195,232,119, 93, 77,178,141,140,187, 30,225, 43,196,184,176,229,125,165,157,196,148,184, 98,184,126,191,226, 72,152, 9, 64,193, +154,144,240, 64,191,199,254, 39,254, 92, 98,104,147,187, 1, 89,130, 38, 92,241,180,221,182,112,125, 76, 50,158, 30, 19, 5,155, +122,154, 95, 80, 85, 10,149, 49, 52,110,149, 82, 60,136, 76,232,103, 43, 35, 77, 93,165, 36,236, 56, 87, 17,128, 24,157, 27,153, +118,212,202, 3, 11,119, 8,227, 65,113,129,231,167,180,100, 73,114,172, 37, 57, 54, 65,151,229,246,237,205, 52, 33,107,140, 96, +141,238,210,139,241,154,253,251,208,233,182, 48,219,157, 69,112, 30, 15, 28, 63,137, 79,125,238, 49,156, 14, 22,179,173, 14,118, +118,102,113,222,238,243,176,115,231, 44, 90,211, 83,104, 67,195,230, 10,199,164,165, 0,194,141, 70, 34, 7, 94,107,167,136,120, + 75,201,209,242, 28,139, 16,194,230, 77,175, 87, 93,138, 87,188,250,149,120,252,203, 95, 97,203, 17,223, 43,212,180,116,137, 42, +214, 33,132,181,125,245, 43, 9,238, 82, 87,214,192,141, 98, 88,172,108,145,138,231, 91,202,202, 37, 19, 2,113, 58,231,201, 26, + 20,221,114,222,113,160, 91, 12,126, 85,100,253,136,103,200,179,175, 95, 71, 75,105, 66,239, 69, 11,192, 40,138,155,173, 68, 25, +167,202, 37,170,218,139, 49,230,202,123, 32,105,115, 44, 9, 31, 86,193,177, 10, 66, 87,227,137,181, 1, 50, 14,248, 27, 22,108, +253,144,149, 37, 46, 94, 87,240,218, 72, 89,179, 90,249,181,231,127, 43,249,160,175,107,235, 76,136,150,219,115,245,117, 25,101, + 35, 13, 1,239,144, 95,188, 23, 74,120,156,252,194,131, 85,182, 82, 60,235, 49, 35, 75, 73, 10, 34,239,245, 0, 41,183, 73,127, +169, 75, 34,214, 2,105, 12,146, 67,165,161,197,232, 68,112,128, 79, 98,104, 80, 90,147,175, 49, 58,125,234,135,177,157,210, 6, + 44,107, 3, 75,217,228, 34, 2,144, 43,192,114,238,159, 99,194,103,153, 72,150, 49, 10,118,139, 35, 28,235, 38,148,237,198,176, +224, 40,244, 69, 0, 29,192, 8,120, 59,132, 85, 2, 11, 67, 1,151, 2,169, 73, 49,176, 5,218,121, 27,153, 49,176,174,207,177, + 85, 30, 90, 8,132, 52,193,241,185,121,168, 68,193,249, 64,115, 50, 55, 87,153,122, 67, 77,197,181, 27, 12,168,170, 23, 38,169, + 23,141,152,244,101,215, 53,144,181,180,145, 40, 92,148,236, 35, 29, 44,156,185,215,230, 23,232, 85, 87,167,108, 93, 61,183,103, +191,198,209, 55, 42,216, 71, 89, 22,227,207, 30,247,150,224, 98, 51, 66, 2, 97,192, 41,101,236, 75,207, 83, 50,147,165,172,169, +171,148, 35, 94,185,232, 71, 50, 17,185, 63,233,163,143,130,157,243,227,154,123, 56, 71, 62,194,245,104,232,140, 61,179, 93,236, +236,182, 1, 72, 12,122,125, 8,157,226,138, 93, 59,240,249, 47, 62,137,249,185, 30,220,244, 78,204, 78,119,209,233,228, 40, 16, +208, 73, 18,228, 23, 93,136, 52,203,161, 80,226,190,167, 78,110, 60, 26,217, 70,127,112, 89, 17,241,122,116,181,192,250,162,207, +151, 67,223,226,177,147,199,198, 93, 58, 30,103,186,240,228, 50, 86,129,245,222, 55, 42,241,147, 62,228,205,248,114,237,106, 26, + 36, 42,223,178,146,149,191, 28,168, 50, 42,100,140,137,225,224,221,200,220,125, 44,188,227, 41, 47,186,228,232,249,122, 16,109, +116,189,196,115, 27,153,176,170, 69,195, 39,181, 40,239, 52, 97, 87,138,102,193,150,231, 75,129, 76,240,162, 46,160,179,230, 31, +179,153,172, 37, 97, 64,162,218, 47, 49,248,110, 50,142,226, 92,159, 9, 76, 88, 92,244,132,159,125, 57, 30, 98,146, 42,198,192, +104, 44,222,125, 63, 30,168,143,181,174, 4, 71, 1,101, 88, 80,102,209,182,248,212, 87,130,115,149, 47, 38, 6,183, 36,138,136, + 91,154,176, 54,158,210,207, 78, 70, 82, 93,146, 80, 68,112,167, 77,154,122,150,144, 86,158,166, 28,136, 39, 41,114,216,129, 52, +243, 68,115,254,163, 35,255, 76, 2,146,250, 18,195, 26, 61,136,241, 27, 93, 85, 71, 91,205,180,183, 94,205,219,251, 42, 29,218, +215, 14,213,182,237, 33,174,118, 17,163, 84, 11,139,144,103,108,153, 87, 72,165, 66, 98, 12,116,106, 80, 12, 75, 20,195, 1, 68, +224,200, 79, 9, 44, 46, 45, 65, 74, 9,143,128,254,226, 2, 11, 64,156,131, 30, 56, 90, 84,200,113,115,250,122, 24,250,114,154, +201, 74, 69, 84,162,105,172,158,123,189,165,146,115,221, 1,124, 22,215,141,218,120,244,151,135, 64,204, 57,203,106,126, 83,206, +179,245,158,133, 34, 22, 34,149, 34,138,166,162,166,193,133,104,178,148,211, 37, 13,229, 3,231, 45,250, 59, 73,201,135, 89,183, +126,104, 78, 1, 84,130, 52,160, 80,211,204,117,204, 44,169,105,134,246,105,170,220, 23,235, 74, 4, 54,183, 66, 98,169, 44, 48, + 61,211,197, 84,154,194,100, 41,138,126, 15,255,124,236, 73,156, 56, 49, 15,184, 18, 75, 18,184,124,199, 94,152, 36, 67,107,170, +133,150,209, 16, 70,192, 11,131, 86,218,133,106, 39,120,234,248,137,141, 51,246, 80, 99,230,113, 79,202,122,142,120, 88,249,172, +215, 35,231, 39,247,227,233, 57, 44,124,229,171,172,157,170,106, 91, 69,159,180,168, 49,143,229, 74,108,136,117,156, 13, 95,123, +150,141,158,135,250, 24, 48, 49,134,169,221, 85, 65,174,120,109,231,200, 87, 29,159, 57, 97,230, 46,153,134,198, 26, 32,138, 9, +155, 81,100, 1,203,100, 37, 80,186, 88, 72,166, 22,189, 30,239,233, 10,218,251,157, 46,237,113, 25,200,130,162,216,106,226, 60, +199,219,200, 90, 96, 28, 75, 69, 90, 18, 51, 15,181,245, 84,236,231, 87,158,252,243, 96, 33,210, 22, 85,150,192,164, 53, 36,106, +235,126,157,180,105,171, 53,117, 41, 43,139, 75,100,220, 30,203,199,138,140,206, 18, 91,187, 12, 71,236,151, 37,205, 65, 89,146, + 59, 68, 49,115,137,149, 9,227,184,173, 37, 30,155,118,206, 17, 83,143,155, 78,178,223, 67, 73, 98,206,221,156, 24,238, 84,135, + 24,181, 49, 80, 51, 83, 8, 82, 35,105,231,208,105,138, 60, 53,208,218,160,155,182,144,167, 41,188,210,104, 39, 57, 84,150,192, +123, 9,145, 39, 8, 38,173, 22, 50,230, 54, 6, 80,192,151,102, 63, 81,158,112, 0,142, 34, 98,109,125,149, 86,101,237,120,144, +156,201,200,156,148,242,225, 88,206, 12,168,107,135, 16,190,242,219, 70, 62,178, 93,140, 61, 10, 17, 14, 52, 22,235,128,225, 0, +161,221, 6,124,128,215, 64,110, 52, 92,225,144,153, 4, 74, 25, 88, 81,194, 59,135, 65,105,225,157, 71,225, 28,158, 56,117,154, +221, 36,108, 10, 86,160,181,136,135,204,121,170, 78,182,158,192,146, 72, 40, 70,102,164, 85, 76,135,145, 97,197,234,100,145,216, + 10,241,204,170, 26,167, 57, 63, 55,237, 96, 20,188, 34, 36, 9,140,165, 37, 33,211,113,174,104, 12,228,209, 76,120, 50,195, 65, +115,108, 41, 50,138,136,143,228, 50,191, 50,173,254, 14, 37,125,182,232, 85,135, 63, 30,110,128,138,126, 4, 22,226, 66, 32,226, + 56,202,215,230,128, 48,241, 52,165,228,140, 24,150,160,241, 75, 84,197, 67,164,196, 87, 37,112,225,142, 14,230, 22,231,113,124, +241, 20, 62,251,232, 81,224,216, 34, 48, 40, 81,218, 18,143,244,150,176,167,221,198,212, 84, 23,202, 72,244, 22, 29,164, 1,118, + 77,207, 32, 19, 45, 12, 18,133,147, 39, 87, 96,236,145, 1,215,199, 60,242, 77,178,107, 34,254,172, 7,214, 45, 87,177, 47, 22, +154,138,230,231,181, 82,111, 99,208, 88,168,107,237,126,252,250,171, 69,240,175,154, 74,235, 55,185, 87,107, 26, 97,140,101,137, +140,254,188, 61,180,215, 6, 75,227, 2, 64, 20,198,227, 94, 83,181,160,227,193,144,246,117, 97, 57,232,149, 43,174, 41,158, 83, +235, 72, 16,136,174,174, 24,180, 8, 84, 1,109, 49,157, 44, 97,166,109,251,204,240, 57, 61, 51,225,243,161,146, 90,234, 28, 11, + 16, 37,187,173,130,160,152,170,146,105,170, 54,236, 94, 77, 86,175, 56,183,234, 26,216,237,175, 69, 85,103,226,245,245, 89,203, +244, 31, 3,253,226,126,205,146, 42,200, 50,102, 41,197,191, 77,139,232, 73, 43,163,201,145,150,178,126,207,154,169,155,140,152, +179, 72, 43,226,183,156, 36, 47, 88, 59,207, 18, 96,166, 77,149,182, 50,174,246,147, 25,116,186, 29,228,173, 14,114, 99,176, 51, +107, 97, 42, 75,208,209, 6,157, 36,195, 76,146, 34,209, 6,221, 36,135, 16,192,174,164,141, 60, 49,112,240,152, 78,114,104,101, + 16,180,132,206, 18, 56,161, 72,147,213,236,207,148,236,103,151,236,227, 28,153,255, 85,149, 11,238,107, 26,157,166,234,108, 84, + 25,140, 75,163, 46,119,192, 71, 49, 47,190,182,112,181,107,216,237, 76, 95, 81, 76,200, 11, 10, 18,113, 14,232,247,225,124, 64, +222,201, 81, 6,139,174, 78, 33, 37,112,122,176,132, 84,165,152, 31,246,161, 4,105,232,167,250, 75,176,206,195, 45, 46,144,134, + 88,122, 46,183, 91,115,119,104,205,230,102, 93,229,247,110, 84, 81, 94, 73,171,243,126, 60, 37, 49,154,228,156,123,230, 48,116, +128,181,236,146,230, 58,106,206, 46, 70,168, 70, 77,198,208, 70,208, 44, 61,199,207, 12,122,148,122, 40,234, 46,132, 1,205,113, +209,103,237, 62,212,222,175,229, 68,143, 42, 42,178, 85, 35,136, 42, 71, 56, 75,168,138, 84, 98,232, 25,158,183, 7,152, 91,170, +245, 62,136,230,240,132,204,158,144,103,250,254,183, 67,208,204,116,205,204, 44, 1, 55, 64,120,226, 36,190,252,197, 35,120,232, + 75,143,224,241,135,143, 1, 39,231,200, 26, 81,246,129,211,115, 40,150, 22,240,144,243,152,209, 41,132, 76, 32,181, 66,158, 25, + 12,134, 5,138,210, 98, 74,165,184,127,176, 72,197, 54,234,193, 86, 53, 98, 45,164,164,151,247, 16, 35, 66, 30,234,106,116, 37, + 68, 46,199, 52, 71, 74,128,172,162,191, 29, 87,251, 90,105, 63,142,238, 17, 42, 97, 52,230,164, 79, 6,142, 46,251,253, 45,204, +154,169, 51, 12, 37, 43,237, 91,212,202,212,206,159,174, 24,122,125, 14,116, 45, 98,220,203,170,250, 94, 96,229,199, 57, 14,238, +146, 20, 35,101,244,184,245, 35,230,154,199,223,163,198, 62,138,223,224, 10,135, 78,208, 30, 44,152, 94,106, 95, 41, 63,138,149, +147, 80,144,165,214, 59, 18, 20,180,167,136,122,237,171, 2, 63,224,115,161, 76,229,215,183, 88, 61,134, 96,108, 29,248,156,217, +115, 32,252,142,197,111, 69, 43,181, 92,159, 53,205,232, 42, 54, 32, 86, 51,141,213,248,164, 98, 43, 96,168, 2,228, 98, 28, 69, +214, 1,236, 86, 4,202,237,216, 9, 76,119, 41,221, 40, 36, 36,225,141, 24, 36,251, 64, 4, 7,190,181,217,148,222,105,115, 4, +123, 11, 59,166,167,208, 54, 45,116, 76,130, 78,146, 99, 38, 75,161, 32,161,165,161, 84, 45,157,162,163, 83,104,109, 0, 8,236, +109,205,162, 95, 14,161,164,196,116,210,130,112, 64, 46, 53,118,152, 22, 44, 60,114,147,194, 9, 1,167, 98,105, 82, 84,126,161, + 36,154,149, 5, 73,122,193,115,128, 29,170, 3, 28, 43,129, 73,206,135,177, 97,101, 63,124, 93, 35,151, 53,230,190,221,146, 96, + 12,166,138,229, 6, 93, 73, 11,172, 12,250, 58, 65,158, 26,204, 23, 3,180,148,129, 86, 26,189,114, 0, 5,137, 94, 89,160,231, + 10, 44, 21, 67,244, 23, 22,105,124, 67, 75, 25, 10, 69, 96,169, 56,169, 2,208, 16,106,105, 44,203,104, 55, 70, 19, 97,208,106, +109, 77,123,100,218, 20,227,129, 43, 81,235,113,254,220, 4,176,172, 7, 89,194, 37, 43, 89,160, 41, 89, 27, 47,125,165, 45,107, + 54,123,167, 6,163,200,220,140, 45, 64,142,211,134,162,115, 83,166,156, 26, 8,210, 76,226, 26,198, 26,225, 10,227, 65,108,130, + 53,126, 17, 53,164,218, 30, 11, 92,200,135,215,235, 5,215, 93,133, 99, 71, 30, 27, 39,108, 74,146,245, 37,112,160,216,185, 48, +203,199,234,129, 34, 84, 65, 84, 49,101, 42,112,122, 31, 64,251, 52,174,243,176,128, 91, 42,241, 72,217,199, 46,157,161,213,202, +160,180,198, 82,111, 8, 95, 6,244,122, 61, 40, 25,112,162, 4,196, 96, 8,161, 0, 17, 2,164,146, 16, 33,140,106,208, 8,128, +152,122,252, 41, 37, 4,107,233,228,117, 11, 92, 90,194, 46, 47, 32,123, 89, 85,153, 68,168, 52,214,114, 29, 1,103,129,131,126, +203, 9,139,214,106,154,226, 86, 50, 21, 89,115,149,229, 25,144,228, 36,168, 7,199,251,112, 21, 55,162, 99, 87, 66, 81,210,254, + 81,156, 50, 26,216,106, 81, 63,247,169,161, 57,137,150,167, 1, 23,255,138,166,124,239,171,207,215, 83,173, 6,158,175, 63,172, +138,214, 40, 78,145, 21,204, 27,130, 37,174,237, 74,178, 76,105, 95,179,160,138, 42, 64, 46,240,254, 23, 92,156,204, 59,122,238, +213,148,129, 49,235, 33,206, 61,125,241,126, 92, 91, 95, 47,125,143,138, 69,228, 97, 81,216,178,101,149,206, 22,106,244, 42, 6, +133, 58,191, 5, 76,189,213, 33,205, 91,176,201,182,224,218,224, 58,214,234,230, 42,115,218,144,223,124,231, 12,144,166, 72, 59, + 45,156,223,238,192, 8,137,110,146, 34, 55, 41,140,148,104,233, 12,146, 37,200,110,210,230, 30, 38, 26,137,212, 80, 8, 24,122, +135,220,228, 16,193,195, 7,143,204,164,240,206,194,134,128,142, 74, 49,116, 5,164, 18,104,155, 20, 94,122, 40,149, 0,218, 32, +128, 55, 99, 96,139,193,192, 81, 64, 94, 97,163,184, 72,230,139,210,113, 78,101, 96, 45,189, 88, 99,211, 76,254,244,235,207,147, +223,138, 13, 86, 39, 30, 37,231, 63, 39, 25, 16, 2,250,174, 68,233,135, 8,222, 99,161, 28, 32,192, 97, 97, 80, 96, 97, 56, 36, + 63,186,141, 1,140, 49,135, 54,208,239, 41, 91, 86, 60, 7,124,197,138,122,117,233,243,140,226, 63,107,152,127, 71,121,186, 98, +156,153,215,115,143,183, 58, 66,125,179,126,116, 37, 40,146, 52,145, 92,222, 54,106,238,204,128, 99, 99,161,161,163,130, 50,129, +173, 28, 14,180,151, 2,184,172,227,160,202,227,183,150, 53,255, 58,225,231,235, 21, 19,190,255,232,195,143,213,184,130, 39, 95, +162,136,101,132,121,203, 42,224,216,163, 79,156,217,224, 67,178,214, 21, 3,136,206, 69,151,188,229, 42,160,197,255,201, 9, 70, + 24,159,209,147, 0,228,150, 22,241, 21,111,209,129, 66,162, 83,244,150,122, 8,176, 56, 49,127, 18, 11,189, 1, 78, 91,143,144, +119, 32,134, 22,162, 28, 64, 72, 49,122, 73, 41,136,105,243,245, 4,107,239,145,161,143,121, 9,150,211,210,163, 63, 57,174,111, +244,191, 23,182, 86, 55,127, 45,183,211, 42, 12,215,218,202, 29,229,183,161, 97, 72,156,211, 68, 83,161,151, 86, 74,123, 68,112, +115,160,181, 50, 30,132, 32, 51,174,240, 84,239,161,197, 85,228,138,126,213, 56,100,224, 88,177, 97, 11,100,108,210, 18,215,208, +232,138,201,196, 98, 64,162, 86,237, 80,123,162,255, 49,122,219,250,170, 96, 82,180, 10, 38,130,178,164, 60,151,243, 45, 81, 53, + 3, 27,197,165,112,238,186,103,179,189,183, 85,214,206,102,172,135,171,197, 80,172,228,234, 25,197, 46, 76, 92, 51, 77,206,204, +178,218,140, 91, 37,242, 77, 37,198,104,170,186,230, 50,132,175, 30,165,251, 68,183, 72, 93, 80, 21,213,222, 61,123,166,238,184, + 48,134, 11,192,226, 0, 40,123, 76,192,121,161,179,188, 98,230,211, 93, 36, 89,134,243,167,103,177, 43,109, 33, 55, 9,180, 86, +200, 84,130, 76, 39,200,149,193, 16, 14, 45,147,195, 57, 7, 37, 37, 82,147,142, 36,146,118,154, 51,251, 8,208, 82,195, 8,129, +194,123,164, 73, 11, 1, 30, 66, 0,221,172, 5, 3, 9, 31, 60,140,144, 16, 74, 82,133, 72,163, 16, 98, 1, 4, 1,210,118,162, +143, 29,156,214,225, 37,117,123, 26, 22, 85,112,223,118,164, 1,181, 58,188,112,114,107,180,168, 72, 44, 4, 53, 74, 40, 3,241, +155, 97,240, 40,217,135,238,124,192,124, 49, 68,111,200, 18,118,212,246, 69,189, 46, 53,167,229, 32, 22,248,240, 92, 40,168, 86, +132,166,206,156, 39,137,195, 90,218,186,247, 85,249,210,200,216,227,117, 66,216,222,226, 48,235,133, 98,181, 32, 30, 28,149,208, +254, 94,236, 85,154, 89,146, 0, 94, 81,230,133,141, 37,141,107, 62,111, 88, 98,228,154,171, 98, 5,174, 2, 56, 28,156, 73,105, + 98, 77,246,186,144, 87,111, 0,130, 48,206, 36,141, 38, 51,102, 76,211, 42,202, 51,153, 69, 36,158,177,248,207,118,105, 39,102, + 29, 68,113,181,244,209,200,140,188,128,155, 63,141,135, 79, 44, 32,203,128,133,197, 37,244,251, 67, 44,245,135,152, 31, 20,104, +167, 9,140, 78,208, 23, 30,194,164, 16,101, 9, 17, 28,100,212,210,163,214, 30, 25, 59,207,199,228,207,101, 53, 34,163,137,118, +197,174,111,229, 68, 7,184,201, 0,186,141, 88,147,234, 41,153,103, 35,100,118, 90, 20,131,180,146,175, 95,114, 90, 87,154,178, + 73,157,211,135,203,114,109,250,194,130, 21,188, 7,242, 54, 51,116, 71,110,167, 97,193,193, 87, 28,180, 21, 75,125,219, 48, 94, +122, 57,106,233,178,150, 66, 44,216, 5, 36,185,225, 72, 52,179, 59, 69, 76, 94,161, 54,207,150,127,175,237,219, 24,241, 46, 80, + 5,154,122, 27,205, 50,164,148, 72,177,185,122,237, 41, 23,202, 81, 92,222, 54,210,192,216,140,201, 57,242, 83,151,182,150,165, +101, 43,154, 45, 5,119, 62,228,207,154,140,221,161,220, 88,101, 61,129,191,186,102,233,140,116, 83,131, 43,234, 49, 93,212, 28, + 55, 48, 44, 16,142,159,102, 75,160, 27, 55,201,199, 40,248, 88, 94,118, 88,108, 5, 83, 47,128,165, 30,181,126, 43, 57, 16, 66, + 37, 64, 59,161,158,222,173, 20,216, 57,133,206,244, 52,178, 44, 69, 87,167,232, 38, 41, 50,147, 67, 74,137, 41,221,130,148, 52, + 48, 41, 53, 49,226,224,145, 39, 45,100, 90,163,180, 14,173, 52,135,117,142,138, 68, 41, 67,210, 57, 4,148, 74, 32, 1, 20,174, + 64,162, 12, 32, 4,202,162, 68,146, 24,216, 96, 73, 40, 80, 10, 66, 8,100, 38, 65, 97, 29,164, 54,100, 49, 83,181,154,191, 73, +108, 52,226, 41,101,195,219,237,145,170, 35, 33, 84,172,113,197,110,101,103,227, 75,142, 27, 81, 43,178,138, 72,238,146, 6,135, +208, 31,160,148,192,176,223,135,133, 64,185,216,227,195,200,121,233,129,115,190, 77,204,139,101,109, 57,250,200, 60,119,118, 82, +182,170, 91, 61, 74, 95,242,227,126,187, 16,198, 53,176,213, 52, 3,132, 51,125,234,246,105,102,232, 38,163,136, 94, 45,184, 63, + 49,143, 51, 88,170,171, 16, 15,174, 16,156, 2,228,136,208,116,218, 68, 76, 3,155, 40, 53,215, 71, 8,174,106, 17, 42, 66,213, + 93,108, 50,176,107, 20,224, 52, 65,253,163, 0, 84, 23,152, 2,215,118, 79, 81,105,148, 43,105, 99,117,179,104,100, 14, 59,118, + 0,123,119, 3,211, 51, 85,247,193,179,217,199,134,107,243,199,186,243, 35,226,164,199,219, 39, 43,185,114,222,118,140,174,246, + 14,232,207,225,241, 99,115,120,180, 40,112,122,176,132,133,225, 0, 18, 2,109,163,209, 74, 52, 90,173, 54, 10,163,225, 77, 10, + 57,112, 16,190,224,216, 91,214,214,173, 29,211,206,151,251,253,140,192,116, 41, 42, 55, 83,204, 57, 7, 87, 72,180,181,253, 14, + 69,116, 66,201,229,251, 50, 76,106,125,235, 9,138, 90, 15,186, 45, 96,122,138,253,213, 43,180,206,141, 66,156, 20,180, 63, 28, +168, 6,194, 96,131,173,160,133, 39,173, 60, 12,170,184,130,148,179,135, 44,170,156,116,205,241, 37,134,115,180, 36, 11,191, 8, + 85, 30,186, 98,115,146, 16, 28,220,201, 46,190,148, 45,127, 49, 63,125,180, 48, 9,251,245, 61,247,122,183, 36, 96,143,178, 76, + 38,155,247,132,205, 9,172,154,221,170,130, 99, 5,134,182, 50,113, 7,206,163, 51,178,138, 43,136, 12, 86,230, 84, 71,133,106, + 29,211,239,150,235,210, 11,206,188, 50,168,170, 74,174, 69,211,235, 53, 45, 98,159, 0,165,201,194, 18,115,239, 53, 7,160,198, +114,176,147,110,208,146,255,231,220,216, 61,183, 38,250,221,215,122,156,171, 90,161,152,110, 14,116,186,152,218,177, 3, 70,105, + 76,155, 12, 59, 59,211,200, 37,249,122, 91, 38, 67,240, 30, 82, 10, 24,109, 70,231, 43, 51, 9, 9, 67,138, 11,170, 8,133,118, +222, 98, 95,187,130,150,128,226,180, 44, 13,133,196, 80,158, 99, 34, 52,188, 36, 13, 83, 11, 5,107, 29,180, 20,200,149,129, 4, + 73,133,198, 72, 4, 37,224,164,170, 77,172,224,224,140,104,246,148,219,103,178,148,177, 30, 52,155,154,214,219,223,122,197, 13, +202,196, 94, 11,210, 30, 29,232,144, 57, 54,221,244, 11, 64,120, 4, 71,145,145,228, 30,113, 24,165,189,136, 88, 20, 72,212, 90, +165,214,162, 93, 61, 63,223, 96, 56,190, 25,133, 24, 47, 56,179, 92,170,208, 74,155,185, 94,229, 43, 6,132,156, 99, 95,215, 25, +196, 93,233, 81,221,113,161, 21,132, 52, 16,165,135, 16, 6, 66, 88, 8, 17, 42,205, 65, 9, 98,232, 50, 80,217, 94,173, 72,178, +215,146, 8, 87, 89,176,182,207, 62,118, 45, 40,247, 52, 70,171,166, 73,197,112, 71,190,182,101, 74, 20,199,212,162,184,198, 38, +250, 99,125,213, 99,123,189,140, 57, 49,192,142, 89,114, 37,120, 22,224,138,226, 76, 33, 99,221,237,112,101,229,142,240,168, 10, +229, 8, 62, 63, 74,241,121,170, 69,242,174,184, 39,106,171, 81,244,129,185, 62,134,172, 57,181,181,129, 48, 10,237,180,141, 86, +150, 33, 75, 53,160, 20,138, 36,133, 76, 50,200, 2,180, 62,206, 87,126,117, 44,159, 85,182,236,218, 71,235,199,104,206, 67,173, +136, 13,199, 61,196, 20, 54, 53,177, 54,117,193, 26,162, 10,206,141,218,221, 86,100, 36,180,187, 85,160,177, 7, 91, 66, 87,177, + 10,148, 69,197,208,215, 43, 40,143, 4, 16,126,230,204,208,152, 90,121,197,240,118,119,137,201,117, 50,170, 23,162, 12,151,107, + 6,249,240, 71, 93, 48, 61, 23, 4,227,250,238, 54,140, 12,161,180, 15,202,106,205,135,190, 10,180, 19,172,169, 59, 77,110, 43, +173,216,239,206,116, 41,250,218, 71,230,123, 57, 30, 28,186,110,211, 54, 87,183,140,238,129, 81,116,185,170,210,234, 52,199, 14, + 8, 85, 21,176,241, 69, 85,242,222,130, 54,136,137,174, 1, 22,200,125,205, 93,182,214,186,203, 90, 42,239,168,149,176,226, 46, +139,241, 25, 56,118, 39,146, 7,201,252, 85,214, 82,222,150,161,157, 91,220, 79, 61,161,138,112,121, 70, 18,222,206, 25,236,216, +185, 11, 90, 40,236, 48, 57,102, 91, 93,120, 27,144, 37, 25,180, 84, 40,202, 18, 74, 10, 24,165,169, 71,188, 81,232, 36, 41, 32, + 21, 18,165,160,133,132, 54, 25, 20,183,235, 84, 82, 66, 9, 1, 37,104,118, 5, 2,130,144,144, 66, 82, 32, 88,209, 71, 38, 21, +213, 61,113, 37, 18,109,160,160,224,225,225, 3,208, 73, 18,142, 90,150, 48, 90,192, 10,201, 5,149, 56,215,210,163, 74, 41,112, +219,164,169,199, 75,186,179,180, 6, 68,194,106,106,229, 66, 19, 85,229, 54,123,238,192,230, 75,146, 34, 11, 46,208, 19,106,218, +114,172,108, 18,205,202, 81, 50, 44,216,124,220,227,224,150,122, 3,158, 88, 33, 78,170,113, 19,252,122,243,164,147,132,210,196, +178,156,152,194,176,120, 90,131,227, 4, 0,145,101,220, 62, 90, 67,176, 95, 85, 56, 91, 49,244,216,157, 79,164, 53,225, 53, 0, +221, 89,218,239,117,179,163, 97, 77,160,224, 28, 94,112, 68,112,198,205,120, 50,110,242, 2, 63,174,169, 71,194, 48,201, 88, 71, + 57,242, 76, 0,140, 24, 39,226,235,205,241, 23,172, 93,104, 78, 39, 90, 90,170, 58,134,153,132, 52, 66, 99,214, 39,208, 74,234, + 14, 56, 98,232,145,216,185, 80, 9,197, 1, 68,136,189,172,250, 88, 47,135, 50, 84, 25, 41,129,180, 47,161, 28, 80,120,148, 62, + 96, 40, 20,118,117, 58, 48, 38, 67,170, 20, 90, 38,197, 84,158,163,147,166, 8,137, 65,217,105, 65,232, 12,162, 95, 64,216, 98, + 77,134,190,252,220, 56,154,223,192,154,102,204,251,143,217, 32, 82,140, 51,244,122, 15, 4,205,117, 10,192,213, 45, 17,131,204, +216, 10,182, 81,147,253, 36, 2,107,149,206, 81,161,162,213, 26,242,212, 3,104,215,123, 63,195,245, 63,218,204,152,103,219,244, +179,149,144, 5, 74, 2,152,206,137,225,181, 51,170,179, 96,120, 78,178,132,198,110, 12, 87,242,228,159, 35, 33,137,173,125, 35, +225, 71, 80,170, 90, 44,171,235,202,154, 98, 21, 42, 77, 57, 6,247,169,104,134, 55, 20, 29, 31, 99, 89,234,110,169,141,210,203, +152,177,162,229,120,147, 29,231,120,227,136, 42, 11, 64,129, 4,223, 68,211, 92,248, 90,187,232,224, 73,171,246,178, 42,123,173, + 88,185, 90,143,160, 29,233,104, 61,214, 34,209,148,217, 98,106, 12, 61,222, 43,128,133,140,168, 20,214,232,248,196,254,218,186, +138,114,134, 35,220,211,100, 20,233,158,182, 58, 48,208,216,145,183, 96,180, 65, 97, 75,180,116,134,224, 28,188, 22,232,102,173, + 17,141,128,118, 72,148,129, 84, 10,109, 45,225, 3, 16,156,131, 82, 18,158,219,119, 90, 87, 2, 65,193,123, 7, 3, 1, 45,104, +113,134,101,129,160, 21,218,105, 11,165,181, 16, 10, 48, 72, 96,157,131,144, 2,218, 75,100,121,130, 65, 97,145,105,137, 12, 9, +150, 44,160, 82,133,190, 18, 40,130,175,124,232,177, 59, 78,146, 97,212, 33,104,171,177, 21,215,140,103,101,212,207,185,214,153, +104,136,170,102,122,220, 64,185,226, 40, 83,214,232, 5, 72, 32,136,145,184,138,183,131, 31,208,255, 23,123, 84,219,185, 92,134, + 56, 88, 84, 4,107,100,126, 95,175,101,193,144, 5, 71, 41, 0, 45,234, 0, 55, 92,220, 82, 38, 29, 0,224,242, 43,113,224,178, + 93,184,252,130,125,216,189,235, 60,180,119,207, 32, 72,133,188,149, 64, 35, 64,166, 9,140,214,200,164, 68, 57, 28, 98,105, 88, + 98,105,105,128,165,197, 62, 6, 11,139, 56,245,212, 81, 60,240,212, 19,248,220,157,159, 64,216,181, 27,232, 45, 64,216, 62,241, +159, 36, 39,193, 53,212,246,126, 12,172, 10,220, 21,170,237,169,174,190,178, 44, 96,113,191, 99, 87,144, 9,114,136,113,211,251, +114,149,166,226,128, 98,228,123,180,110,248,154, 98, 47,215,217,173,176, 44,128,197, 57,206,135, 15,244, 28,245,106,120,102,162, +187,217,154,231, 29, 85,101,199, 72, 91, 99, 55, 69,167,153,225,115,241, 29,167, 89, 11, 91,142,209,112,127, 6, 59,113, 62,180, +133, 40, 10, 20, 58,193, 92,111, 10,121,218, 70, 42, 91, 80, 90, 32,216, 2,153, 84,216, 51,179, 3, 30, 30, 51,137,196,233,222, + 9,244,237, 28,190,112,231,221, 85, 85,221,138,252,175,188, 79,226,126,134,173, 2,231, 70,194, 11,198, 43,210,141,206, 26, 11, + 66, 18, 92,223,130,199, 27,175, 56, 4,119,210, 66,173,210,218, 38, 49, 24,208,107, 43,161, 57,234, 92,129,220,163, 57, 19,139, + 52,229, 88, 16,238,236,167, 64,153, 27,113,189,235,139,223, 54,220,191,128,203,115,219, 90,159,134, 0, 96,177,168,252,196, 75, +220,192, 37,214,116,176, 19,238, 39,139,170,154,165,176, 53, 13,152,203, 27, 27, 91,149,130, 5,187,196,236, 38,186, 13,234,218, +222,140, 5, 6, 98,230, 67, 61, 3,162,240, 85, 79,119,205,189,225,203, 33,231,134,199,231, 2,209,199,184,255, 67,109,191,104, +189, 62, 58, 63,249,118,201, 65,130,182, 22, 16, 43,226,245,121, 31, 42, 93,197, 47,196,150,228, 19,117,254, 5,246,188, 38,108, +217, 38,105, 27, 74,137,104,117,144,236,154,198,121,217, 52,242, 52,129,145, 6, 10, 64,170, 18,104, 67, 62, 23,173, 12, 82,149, + 32,225, 46,107,153, 78, 32,133,131,230, 20, 51, 37, 2,172,245,112,142, 76,233,193, 59,104, 0,169,176,112, 90, 99, 56,164, 86, +161, 54, 0,131,194,162,103, 75,148, 46,192,122,135,158, 29, 2, 66, 34, 56, 7, 27, 44,140, 50, 40, 93,229,119, 28,148, 14,198, + 8,204,245,151, 0, 33,112,188, 63,128, 91, 90, 36,255,202,176,199, 11, 91, 80, 16, 82,105,207, 77,244,240,134,205,238,168, 76, + 94,145,144, 10, 49,206,204, 5,170,195,160,147,170,185,142,228,180,189,232,211, 44,107, 41,120,131, 33, 29,190,222, 18,109,210, +222, 96,107,159,123,106,150, 2,127, 98,106,202,137,211,192,112,105,211,130, 78, 93, 43, 75, 95,242, 34,124,215, 43, 95,138, 11, + 47,223,143,217,217, 22, 10, 33, 96, 2,176, 35, 85, 88,130,132, 81, 18,137, 54,232, 21, 5, 10,206,156, 8,182, 24,149,128,245, +222, 67,115, 52,110,139, 9,252,176,180,176, 46,224,171, 71, 79,227,200,103, 63,143, 15,220,125, 31,240,224, 17, 4,149, 2, 51, + 93,210, 34,132,172,122, 31,107,110,180, 48, 55, 79,135,222,121, 46, 11, 59,172, 24,133,224, 88,138,158,173,180,121,189, 12, 17, +168, 87,223, 27, 99,228, 24, 47, 81,186,158,152,132, 52, 33, 45, 75,103,212,238,181,158,166,153,178, 86, 6, 80,179,160,114,157, +185,180,117,157,192,212, 5,142,132,153, 89,204, 26,224, 50,205, 97,125,109, 47, 71,110, 86,173, 33,166,119, 66,236,189, 4,151, +159,191, 11, 59,179,105, 76,183, 58,164, 40, 74,141,139,206,111, 99,207,238, 41, 76, 79,105,124,245,196, 0, 15,125,233,126,124, +242,225, 47,224,201,143,127,102,148, 6, 29,106, 63,235,175,149,152, 61,213,176,151, 85,190,117, 61, 7, 28, 53, 38,175,184, 7, + 69,212,146,108,237,106,209,116, 26,153, 82,120, 6,196,140,212,215, 77, 74,218, 11,221,140, 54, 81, 82,211,176,235, 13,144, 44, +184,194,153,156, 8,131,208,112,174,168,180,200,250,216, 35, 45,113,142, 44, 66,139,220,205,173,223, 39,173, 93,150,228, 51, 15, +195, 51, 53,218,122,249,211,186,144, 6,216,113, 0, 0, 32, 0, 73, 68, 65, 84, 0,139,122,202,161,223, 56, 61,142,252, 41,182, +151, 45, 49, 94, 43, 32, 90, 59, 39, 91,228,198,204,160,224,171,226,105,158,153,172,225,235,153, 90,163,169,222,160,170,123,176, +217,120, 21,147,212,138, 75,213, 27,217,248,106,190, 99,138,118, 61,245,170, 54, 39, 91,163,169, 43,174,180,165,217,236, 62,213, +193,108,154,195,104,133, 76,167, 72, 36, 7,171,169, 28,131,178,143,110,214,130,132, 68,146, 72,164, 58, 65,154, 26, 40, 37,224, +172, 68,150,164, 8,193, 98, 88, 90,104, 37,161,133, 7,134, 67, 8, 37,144, 7, 18,137,212,192,162, 3,137, 69, 0, 93, 91,194, +106,129,167,132,128,242, 1, 46,145, 8, 33, 33,215,152, 4,132, 80, 8,214, 66,139,170,213,170,225, 26,197,211,121, 27,189,178, +143,118,106,176,132, 14,156, 92, 36,237,209,198,116, 38,253,204, 99,232,192,120,125,240, 51, 76,117,156, 6, 82,128, 2,170,130, + 39, 45, 44,101,223,160,228,239,229, 92, 72,162, 12,120,213, 85,251,241,137, 47, 28,225,198, 98,138, 3, 64, 98, 57,221, 45,126, +238,193, 2,153, 53, 91, 41, 9, 16, 97,194,247, 23, 53,198,104,238, 28, 88,172, 84,200, 58, 18,255, 55,127,207, 91,240,194, 87, + 30,192,174,221, 51,152,205,115,216,178, 68,175, 40,209, 27, 20, 16, 74,194, 14, 45, 78, 23, 20,229,154, 40, 9,167, 4,148, 20, + 80, 16,112, 69, 9, 64,160, 95, 18, 3, 30,246, 11,244, 11,139,233,233, 22, 90,173, 4, 45,157,160,173, 37, 94,122,197, 62,188, +241,234,139,240,198,111,250, 58, 60,122,114, 30,159,250,135,187,240, 63, 62,254,105, 98,226,129,245, 62,205, 53,178,157, 3,220, +176, 98,110,145, 81,106, 77, 81,240,182,172, 74,108,214, 25,250,100, 46,171,101,237,177,206,192, 39,127,174, 23,121, 14,236,217, + 81, 77,220,241, 99,213,189,157, 7,230,251,216, 80,173,241,210,210,158, 26,249,194,107,227, 81, 53, 33, 81,216,241,158, 15, 27, +221, 47, 39,158, 2,116, 23,253,221,187,176,100, 75,100,101,129, 52,105, 99,255,197,187,113,209,222, 54, 46,185,160,131, 68, 43, + 92,176,219,162,149,103, 80, 42,197,135, 30, 89, 4, 30,125,112,164,173,111,168,228,187,171, 89, 20,198,122, 88,212,153, 68, 70, +204, 78,233,138,254, 97,192,140, 92,144,245, 73,213,253,109,207, 0, 26, 18, 45, 65, 74, 19,173,158,153,162,137,153,206,128,190, +165,244, 94, 33, 33,181,132,105, 27, 4,142,179,233,232, 4, 82, 8,248, 16,144, 43,141,190,243,112,240, 48, 34, 67,233, 61, 20, +103, 32,149,214,193,194,195,141, 10, 45,113, 0,167,209,196,236, 68, 78,130,228,128, 11, 58, 45,183, 31,202,149,172, 26,158,232, +217,102,173,156,245,126,230,163, 66, 87,204, 20, 85,189,236,237,132,155, 52, 90, 51, 29,187, 75, 29,215,189,119,224,186, 32, 53, +225, 79,112,151, 72, 55,209, 52,108,163,207, 27,226,254,139, 41,214,190,178, 8, 25, 0, 46, 33,255,254,232,128,177,130, 80,163, + 29,103,239, 83,215, 20,184,130,118, 14,180, 53, 48,179, 3,157, 60, 71, 91,165,232, 36, 25,100, 80, 80, 2, 48, 58,133,115, 67, +180,211, 28, 74, 8, 36, 70, 33, 75, 82,164,121,134,196,208,198,161,121,160, 96, 8, 45, 61,130, 43,161,157,131, 48, 2, 29, 87, + 32,241, 14,137,247,112,174, 4, 66,137,204,121, 4,239,224,189, 69, 22,128,129,176, 84,117, 19, 64,225, 73, 62, 79,117, 2,129, + 0, 47,128, 84, 25,248, 16,160, 37,157, 56,163, 12,156, 35,159, 94,128, 64, 33, 20,249, 57,202,146,203,126,114,202,194,114,209, +174,107, 5,157,108,119,240,215,168,186, 19,251,123, 37,119, 64, 26, 6,242,201,104, 54, 3, 26,174,170,231, 56, 31, 52,213, 64, +170, 32,131,128,145, 26, 78, 6, 60,122,124, 14,111,126,245,245, 40,243, 33,230, 78,204,211, 70,178,150, 11, 88,184,179,219, 27, +245, 84,160, 24,171, 80, 14,168,226, 90,191, 87, 5,224, 69,134,222,158,166, 42,131,105,139, 59,151,197,210,147, 45,110,208, 67, + 27, 55,189,250,133,248,190,239,126, 11,190,235,166,239,193,203, 15,188, 16,211,221, 54,180, 36,166,122,186, 95, 96,169,176,208, +165,133,245, 30,169,243,120,252,196, 60,156, 23, 80, 70, 33, 88,135, 76, 27, 88,239, 49,149, 24,204,245, 10,164, 30, 72,148, 68, +123,166, 3, 47, 4,164, 13,200,179, 4,157,118,142, 32, 4, 84, 16,176,165,133,128, 64,146, 37,184,238,192, 53,248,186,175, 63, +128,125,187,166,241,240,201,163,232,159,236,209, 33, 95,232,147,191, 90,114, 81,141,216,235, 32,176,169,172,223,227, 52, 42, 81, + 69,219,151, 92, 3,115,185,148,190,216,183,187, 78,104,162, 86,161, 57,144,103, 61,105,151,173, 14,249, 77,181, 4,230, 22,104, +222,181, 28, 55, 53,111,116,191,198,212,200, 24,244, 23,235, 90,199,234,106, 58, 84, 65,180,214,158, 89, 78,120, 13,235,203, 40, +232,109,233, 36, 22,145,163, 61,211, 69, 75,165,216,217,157,193,215, 92,216,198,229, 23,239,128,145, 10,157, 86,138, 78,150, 64, + 36, 6,189,178,131,153,233, 93,120,176, 95, 34, 56,143,160, 13,194,249,251, 16, 46,216, 3,236,217, 75,193,144,171, 5,167,174, +227,249,144,232, 42, 0,176,157, 98,223, 11, 46,193,252,177, 57, 14,174,170, 9, 92,214, 82, 96,152,125, 6, 48,244,200,116,102, +218,180, 15, 90, 9, 55,200, 18, 72,186,109,164,105,130, 60, 33, 5,108,214,100,152, 54, 57,118,230,109, 36, 74, 97, 58,237,160, +107,114,104, 41, 49,155,117,208,209, 25,218,105,134, 92, 25, 76,165, 45,180,141,198,180, 54, 72,181, 70, 43, 77, 97,125, 64, 80, + 26,193,212, 44, 77,136,133, 99,120, 47,216,114,237,249, 95,238,181,153,177,123,112, 69,182,216,203,157,179,125,130,175,250, 40, +148,190, 58, 15,178, 86, 35, 34, 6, 28, 39,186,242,181,143,130,251,184, 10,166,224,130, 80, 37,151,181, 45,106, 41,103, 27, 85, + 10, 71,221,218, 98,156, 65,140, 97,137,149, 20, 45,231,252,151,213, 9, 9, 28,203,178,101,209,239,138,125,233, 83, 25, 96,218, + 72,167,167,176, 35,201,161,133,129, 81, 64,110, 50,164, 73,138,224, 45,140, 78,144,232, 12, 64,137, 86,218, 66,154,103,208, 34, + 64,170, 0, 33, 2,197,107,129, 34,181, 69, 8, 16, 92, 79,184, 35, 45,108, 0,210,224, 96,157, 67, 34, 5,242,210,162,112, 5, +116,172,168, 6,139,196,121,244, 80, 98, 80, 82, 62,163,210, 9,156, 45, 96,116,194, 38,252, 0,165, 53,164, 15, 48, 74,161,240, + 1, 90, 8, 24, 24, 20,176, 16, 82,160, 28,198, 98, 25,174,146,186,214, 27,120,162,107,121,140,114,139,234,153, 27,206,247, 84, + 19, 68, 55, 54,100,168,219,159,173,162, 96,148,152,199,108,248, 25,114, 14, 12,145, 18, 48, 10,137,210, 20,179, 0, 64, 10,129, + 32,129, 47,127,245, 97,204,205, 47, 49,243,103,109,127,104, 89, 82, 93,157,177,167, 47,191, 22,238,212,169,202,124, 86,214, 44, + 9,245,249,136,105, 67,101, 57,158,138, 17,209,153,229,142,125,117, 19,148,164, 74,132,211, 93, 96,122, 10, 47,122,249, 53,184, +241,187,223,138,239,249,174,215,227, 37, 87,237,199,190,110, 27,139, 46,160, 37, 4,130, 15, 24,148, 22, 67,235, 96,135, 22,139, + 3,139, 97,127,136,194, 5,180, 90, 57,102,167, 91,112,150, 52, 14, 93,150, 72, 76, 2, 39,128,254,176,128,148, 10,221,196, 64, + 6,129,118,158,227,210, 29,211,104, 75,133, 2, 2, 83,153, 65, 30, 4,230,188,195,233,162,192,210, 82, 15, 39, 7,125,188,237, +199,126, 9,223,247,147,223,139, 87, 92,123, 13,186,193,227,254,207,124,153, 36,250,165,211,212,108,168, 44,137,121, 42, 93, 69, +175, 71,255,123, 76,157, 26,153,233, 86,107,111, 43,170, 6, 27, 35,135,112, 45, 53, 80,202,181,247,154,229,146,154,243, 92,118, +213,139,101, 58,140,201,241,168,218,205,150, 51,117,174,202, 33,118, 27, 79, 59, 58,131,169,107, 13, 49,127, 12,243, 34, 71,123, +170,133,169, 36,199,243,206,159,198, 84, 59,193,244, 84,134, 32, 20,180, 81,200,140,134,208, 10, 58,107, 97,110,161,192,241,249, + 5,132, 52,197,215, 29,184, 12,215,126,205,126, 92,188,179, 11,209,206,112,226,244,252,217,165,243, 1, 68, 88,133, 64,114,241, + 5,216, 59, 53,139,227,115,115, 19,174, 42,206,189,198, 51,160,167,129,226,134, 89,221,156,220, 44,237,156,203,118, 27,164,105, +138,221, 89, 11,185,210,152, 77,186,152,201, 58,104, 39, 45,236,200,167, 97,164, 70, 55,233, 80, 77, 16,165,145, 40,131, 84, 39, + 80, 82, 32,145, 18, 25,167,121,182, 76,130, 34, 0,185, 73,209, 50, 25,114, 45,209, 54, 26, 66,105, 40,163, 81,218,192,101,132, +201, 50, 72, 76,239, 28,149,132,150, 53,215,137, 8,128,206, 41,138,222, 58, 78, 19,100, 41, 57,186,205,192,129,169,165,173,206, +156,228,134, 74,138,207, 17,184, 76,119, 44, 30, 21,107,119,184,130, 92, 25,145, 17, 59,191,241, 51, 20,121,200,168,153, 78,160, +116, 63, 97,185,200, 21,107,241,177, 65, 89, 96,103,126, 8, 20, 0,232,237, 89, 50,117,173, 73, 59,108,229,164, 89, 77,181, 49, +157,102,152, 78,219,208, 74, 66, 10, 32, 81, 26,214, 89,116,210, 46,188,119, 80, 10,152,106, 77, 35, 73, 21, 50, 99, 32,132,135, + 18, 20,196, 21, 64,233,109, 74, 10, 88, 91, 82,219,116, 9,104,231,144,115,161,142,196,123, 40,231, 49, 12,142,252,159,222, 66, +120, 65,193,119,222,195,133,152,173, 16,224,189, 67, 16, 26,130,163,180,165, 16, 80, 66, 64, 10, 9, 15,138, 34,148, 66,192, 33, +160,165, 19,244,157, 69, 16, 18, 46,148, 44, 40,176,100, 22, 56,204,119,173,195, 89,247, 7,249, 45,170,103,222,105, 19, 83, 83, +226,204,136,252,232, 48,140,154,156,229,102, 8, 14, 85,148,116, 44,138,144,155,209, 6,117, 66,192, 40,201, 21, 60, 5, 66, 16, + 72,210,148, 2,128, 53, 71,238,198, 90,195, 67,187, 70, 81, 24, 13,119,234, 4, 17, 57,203,117,246,235, 13, 71,226, 28,198,130, + 51, 43,205, 73, 43, 35,109, 60, 75, 43, 38,100,200, 84,184,235,162, 61,232, 25,131,239,127,195,155,241,154,131, 47,199,133, 23, +238,134,181, 1,137, 45,113,186, 95,224,177, 19,115,120,234,212, 34, 78,205,247,113,106,110, 17,110, 88,114,141,131,128,211,167, +230, 81, 14, 75,244, 22,250, 88, 90,234,195, 46,245,176, 48,116, 40, 29, 96, 18,131,197,133, 1,188,243,112, 11, 75,152, 31, 20, +152, 31, 20, 40,157, 69,191, 44,112,122, 48,196,209,165, 30, 22, 6, 67, 28,239,245,240,212,194, 18, 22,251, 67, 12, 6, 5,190, +242,200, 28,238,253,220,231,240,215, 31,254, 27,124,195, 55,126, 3, 46,191,106, 63, 46,127,254, 37,184,255,232, 49, 12,231,230, +184,108, 40,103, 33, 36,154,155,190,248, 42,168,170,180,220,184, 98, 29,146,252,168, 28,233, 4, 99,175,207,243, 90, 81,235,158, +250, 3,252,255,212,189, 89,175,165,217,121,223,247, 91,227, 59,236,225, 76, 85,213, 85,213, 35,217, 77,138,162, 72,145, 14,101, +201, 84, 36, 69, 52, 36, 68,146, 45, 89,138,146, 72,182,128, 36,178,157,139, 36,128,131, 0,185,200,167,200,125,130, 92,229, 19, +228,194,128, 1, 33,130,156,196,144, 5, 77, 16, 35,155,180, 40,138, 17,201,158,187,171,206,176,167,247, 93, 99, 46,214,122,207, +222, 85,221, 93,221, 93, 85,164,232, 13,116,215,116,234,212, 57,239, 94,107, 61,235,249, 63,255, 97,202,105,190,134,237, 30, 30, +163, 77,159, 79, 30, 48,238, 31,231,245,216,133, 76, 35,234, 41,120, 93,212,165, 44, 63,250, 53,231, 88,142,231, 75, 12, 45, 55, + 78, 58,132, 80,244,157,198, 85, 2,251,224, 64, 41,193,229,229,142,111, 94, 93,112,231,153, 57, 47,156,158,210,216,150, 59,207, +220,226,246,233, 13,210, 92,241,214, 59,231,143, 95,216,175,187,198, 76,124,231,138,243,222,146,191,243,106,189,252, 79,142,122, + 85,159, 45,197,223, 92,166,129,166, 16,126, 59, 3,167,179,170, 78,106,192, 42,230,139, 25,115,221,114,214,244,180,182,101,217, + 46,232,181,165, 55, 29,125,211,131,144,244,166,197, 40, 77,202,137,222,116, 52,198, 98,148, 70, 73,137, 20, 26, 37, 21,173,105, + 32,103,150,237,156, 86, 53, 12,209,177,108, 58,230,182,165,211, 22,131,132, 70, 50,230,234,217, 64,220,135,191,124,175, 47, 59, + 83,164, 43,236,173,158,135,109,229, 17,168,253, 62, 74,113, 79,130, 27,199,242,224,114,133,197,242, 52, 94, 43, 99,224,194, 59, + 16,123,153,166,115,251, 44,121,204, 1,115,126,178, 26,142, 31,127,109, 73,117,144,199, 46, 15,172,113, 15,228,149, 19, 74, 48, +133,233,152,138,134,196,248,132, 69, 93, 85,194, 69,223,194,124,129,109,123, 90, 85,230,227,173,214,244,182,131,148,232,154,150, +144, 35,139,182, 69, 43,141,181,170,214,161, 88,116,227,120,148,200, 8,161, 16, 49, 66,244, 88,107,209, 49, 96,115, 68, 74,133, + 26, 29, 34,102, 68, 76,200,148,138, 65, 13, 18,153, 33, 9, 65,139,192,147,174, 27,152, 84,187, 25,173, 12,141,212, 8, 33,105, +149,193, 87,196, 64, 0, 62, 39,172, 50,196, 28,112, 62,178,176, 13,187,232,113, 76, 27,113,178, 58,172,249,213, 31,118,187, 20, + 7,214,167, 79, 75, 22,215,117, 5, 9,201,234,189, 5,118,234,226,174,173, 42,171, 87,253,181,100,164,218, 51,118, 53, 4, 64, +234,122,115, 21,104,163,138, 60, 29, 48, 82,161,181,194,133, 88,173, 79,171, 6, 52,139,162, 25,125,212,248, 65,203, 34,245,154, + 24,165, 74,236, 3, 47, 14,195, 31,166,185,147,200,239,223, 85,154,106,188, 32, 4, 88,203,231,191,240, 89,126,250, 71, 94,230, +159,252,151,191,202,223,255,202,151,249,212, 39, 95,225,159,255,235,127,201, 43,207,127,146,182, 51, 92,109,183,188,123,185,229, +237,203, 45,126,181,101,179, 25,136, 49,193,206,115,113,239,138,203,149,195,111, 3,195,106,195,226,248, 6,166,233, 89,159,175, + 24, 99, 34,141, 25,219,247, 40,165,121,245,219,111,240,206, 91,247,216, 93, 94,241,238,189,251,140,227,136,219, 6,222,124,231, +156, 55,222,190,199,110, 53,178,189, 88,115,117,181,101,187,218,178,186, 92,225,199,196,255,246,191,252,239,165,198,238, 60,159, +249,194,223,162,233, 37,203,227, 57,127,235,179,159,194, 37,207,107, 95,251,102,121,175,142, 22,181,216,214,131, 76, 30,132,140, +184,240,160,245,228,135, 65,114,248,114, 72,136, 3,228,227,129,121,220,199, 41,166, 15,217,182, 10,234,184,169, 22,243, 28, 15, + 72,122,223,207, 78, 51, 61,216,169,107,189,151,169,165,136,216, 57,118, 77,203,172, 49,164,220,112,181,139, 88, 45, 81, 82,113, +111,200, 24, 37,240, 62,112,185, 9,124,245,219,175,242,236,145,226,206,242,152,110,185,224,232,120, 65,211, 24,206,102,115,222, + 22, 35, 87,111,220,127,252,142,113,114, 81,243,142,124,255, 98,127, 89, 74, 21,165,176, 7,177,185,153,167,255, 12,167,209,150, +209,251, 16,151,201, 3,220,244,245,223,111, 11,121,121, 94,213, 26,139, 14,180,164,209, 45,167, 77,203, 51,253, 49,203,238,136, +153,233, 56,153, 29, 99,164,162,181, 51,148,208,244,186, 69,203, 50, 91,159, 53,165,179, 23, 73,160,148, 70,203, 98, 0,102,165, +162,211, 13, 90,107,122,221,163,180,230,180, 61, 42,205,147,212, 8, 4,189,177,232, 36, 9, 42, 49,162,246, 55,181,244,125, 40, +236,147, 99,160, 81, 7, 17,174,213, 95, 34,196,125, 76,174, 86,133,247, 33,216,123,209, 91,189,151,185,169,170,163,215,106,159, +214,168,170, 35,169,169, 35,176, 92, 27, 41, 23,246,223,223,227,162,181, 82, 84,137,117,172, 30, 36,213,128,102,242,190,135,194, + 79, 48,146,235, 67,252, 0,245,123,178,162,110,171, 15,173,109, 97,121, 68, 99, 13,167, 93,135, 17, 10, 37, 37, 70,106,180,210, +228,156,105,180,194, 84,200,202, 72,137,212, 10, 69,164,209, 18, 5,152, 4, 70, 73,148,200,104, 4, 50, 70, 98,206, 68, 63, 34, + 83,198,198, 84,237, 33, 51, 58, 37,154, 92,228,175, 1,129, 65,224, 99, 64, 11,137, 65,178,145, 2, 41, 37, 93, 83, 24,170,141, +178, 52, 90, 97,109, 71,171, 45, 41, 7,180, 54, 24, 33,217, 69, 95,141,110,202,215,185, 9,158, 44, 4, 49, 30, 6,166, 76, 15, +244, 67,130, 90,230, 51,232,151, 37,172,198,213,226,250,164, 16,188,172,139, 39,248,247,122,124, 79, 93,220,212,145, 95,187, 98, + 29, 26, 22,136,122,131, 84,133, 1,111, 5,141,181,132,152, 17, 72, 4, 2, 41, 96, 8,161,106,217,107, 23, 57, 49,180,169,112, +241, 7,117,235,114,210, 63,203,125,242, 82, 22,251, 27,249,225,247, 33, 14,139,124,124, 47, 73, 70, 73,154, 79, 62,207,111,253, +252,127,200,207,124,229, 75,124,246, 71, 63, 69, 99, 53, 43, 23,136,110,228, 19,207,188,192,239,255,225,159,240,226,179,183,217, +109, 3,235,171, 45,171,171, 43,214, 23, 87,172,214,107,194,198,147,145,108, 86,107,118,155, 45, 18,133,146, 13,198,118, 28,205, + 23, 72,105,202,179, 8, 96,173, 37, 68,137,214, 13, 82, 25, 98, 16,196, 24,105,250, 5,218,182,220,127,251,109,182,155, 53,227, +118,195,119,222,120,157,113,179, 97,187, 90,115,113,255, 62,227,176,227,107, 95,255, 43,126,245, 63,249, 13,254,221, 87,255,140, + 63,254,163, 63,226, 19, 47, 61,207,118,181,197,246, 45,159,249,236,167,232,143,150,124,243,254, 5,108, 15, 66, 39,166, 27,248, + 4,249,153,154, 57, 16,252, 71, 43, 34,135,249, 2,211,129,117, 72,240,122, 28, 75,227, 67,251,217, 9, 98,156,230,144, 31,228, + 61,240,180,114, 11, 30, 9,191,107,132,150, 15,232,206,203,254,119,184, 97, 71,238,103, 56, 23,185, 90,101,118, 14,130, 20,215, +145, 5,231, 91,207,235,175, 95,112,255,254, 59, 12,126,199,243,103,183,184,243,236, 45, 82, 74,184,224,112,110, 96,166, 52,127, +121,255, 10,174, 86, 79,167,120, 60,188, 39,174,121, 20, 60,221,226,213,183,229,243, 47,142,203,251,117,116, 90,201,111, 51,184, +253, 12,156,157, 21,147,161,163,101, 41,226,203,234, 7,223, 22, 34,220,141,217,130, 59,139, 37,203,118,201,162, 91,208,105,203, +178, 93,160,132,196, 40, 67,111,122,180,212,100, 18, 74,234, 18,164,149, 5, 70,153,122,102, 75,140,178, 40,161, 48,186,197,167, +192,162,153,209,180, 29,173,105,139, 97,101,202,104,109,104,109, 91, 1, 37, 65,175, 44, 86,103,182, 89,145,235, 94,191, 30,195, +125,175, 94,125, 91, 57, 59, 21, 29,155, 28, 3, 83, 44,197,219,202,189,183,194,228, 27, 34,168,126, 3,149,221,174,204, 62,114, + 54, 23,120, 27, 87, 25,253,147, 68, 47,198,125,231, 31,211, 62,145,116,202,139,143,177,134,155,241,209,160,248, 73, 34, 60,241, + 54, 68,174,193,104,114,111, 46,150,170,181,177, 60,216, 32, 79, 60, 83, 55,186, 22,137,182, 46, 26,203,173,126,137,200, 18,173, + 21, 51,211,225, 98,196,106,141, 68,162,133, 64,107,115,173,249, 47,158, 5,138,150,128, 17, 5,114,215,201,163,132, 66, 40,208, +209, 49,134, 84,102,241,131, 67,121, 7,174, 16,154, 92,240,216, 84, 66, 28, 76, 40,100,185,136, 64, 86,110, 88, 6,180,182, 72, +173, 17, 82,163,165,164,237,218,194,184,111, 13, 50,107, 20, 2, 33, 50, 90,154,242,177, 64,204,137,153,177, 92,142, 59, 98,168, +115,151, 88,175,112,206,191,127,192,253,225,107,113, 82, 28,151, 76,117, 45, 10,225,201,225, 55, 31,202,194,252, 32,147,150,247, + 36, 70,213, 27,176,152,136, 41,213, 53,174, 47, 68, 51, 89, 9, 98, 5,177, 17,244,214,178,157,146,127, 66,222, 91,155, 78, 69, + 60,171,154,158,244,136,220, 98, 43, 15,228, 75,105, 47,231, 57, 36,119, 29, 90,133,190,207, 33,247,236, 79,253, 56,191,244,243, + 63,205,127,252,149, 47,115,124,251, 20,173, 52, 62, 70,222,190,191,226,106,189, 67,187,192,110, 28,121,241,238, 29, 82,148,228, + 0, 42,105,136, 18,163,151, 24,213,113,122,251, 46,253,108,142, 53, 11,158,123,225, 37,186,249, 17, 93,219,161,181,197,197,145, +101,219,210,216,150,147, 27,199,220,185,121,140,182,134,229,124,206,217,141, 19, 78,206, 78,232,102, 75,186,121,203, 75, 47,220, + 70, 53,115,220,214,177,217,238,208,210,178,243, 37, 14,116,189,219, 17,131,231,199,190,248, 89,180,142, 60,255,169, 23,249,194, + 23, 62, 13, 73,112,121,113,206,230, 98,133,178, 45,207,125,242, 5,238,206,123,254,237,159,254,121,217, 39, 20,130, 98,185, 81, + 15,229,178, 55, 62,225,108, 49, 31,204,203,159,212,189, 76, 86,167,143,107,187, 3,177,119,236,154,210, 22,167,206, 48,231,239, + 77, 7, 95,187, 79, 33,229,251,178,251,133,146,101, 31,134,145,171,203,115, 94,195, 51,134,129,232, 10,169,209,197,200,232, 18, +175,189,181, 98,189, 26, 73,110,197,189,237, 37,103,179, 25, 70, 25,150,199, 51, 46,206, 47,217, 12,107, 98, 12,252,197, 95,124, +183, 72, 55,159, 58,216,144, 14,230,156,226,201,231,247,211,179, 49, 61, 44, 79,232,111,158,225,219, 22,110, 28,151, 98,189,152, +195,141, 83, 88, 44,225,228,102, 65,247, 78, 78,145,203, 37,207,158,157,241,204, 98, 65,167, 37, 55,250, 57, 71,109, 79,163, 44, + 55,103,199, 72, 4,139,110, 9, 66, 32,208,116, 77, 15, 57,163,181, 68, 25,131,210, 10,211, 40, 76,211,144, 66, 68,106, 73,219, + 53, 4, 31,177, 74,145, 50,116,218,148,130,222,119, 36, 95, 81, 10,153, 17, 41,227,130, 43, 57, 30,169,228,114, 52,186,101, 23, + 29,163,172,233,144,168,247,111, 84,158, 22,244, 62, 21,236,107,219, 87, 81,214,181,119,101,198,191, 29,202,243,155,144,179,209, +149, 34, 46, 83, 57,191, 91,187,175,194,177,186,225,217,202, 25, 50,125, 81,127,184, 80,205,129,194,254, 74, 58, 65,226, 19,146, + 38, 68,205,136,248, 24,151,225,233, 60, 23, 7, 17,183, 83,108,173, 47, 40,247, 3, 72,221,193, 26,123,252,162,174,116,121, 48, + 71, 61,204,143, 88,206,103,197,214, 85, 40,230,141, 37,198, 72,111,139, 65,135, 86, 10, 37, 4, 90,107,140, 84, 24, 35,145, 57, +210,202,132,170, 51,111, 43, 51, 17,129, 16, 9,225, 67,209,219,239,182,164,209, 49,250, 1,181,115,164, 24, 81, 62,176,168,218, + 69, 19, 83, 33,211,145,145, 66,225,144, 8, 20,201, 88,178,148,196,156, 48,141, 69,169,210,169,182,125,139,214, 10, 35, 13, 34, +231, 50, 75,182,150,144,139,148, 66,107,195, 24, 28, 33, 69,118,185,186,126,185,106,197, 41,100,121,152,143,154, 47,247,243,125, +134,245,118, 91,160, 82, 45,159,112,198,200, 71, 95, 4,147, 79,242,244,163,168,173,243,236,164,228, 33,207,123,178,216,123,180, +199,148, 24,199,128,146,150, 60,214, 46,111,234,214,199,218, 13, 90, 9, 27, 87, 36, 28,143, 42, 46, 42,215,220,100, 81, 46, 1, +211,191,115,109,111,124, 16,105,121,120,200,125,238, 11,252, 23,191,241,203,252,204, 87,126,130,126,185,192,121,143,243, 17,231, + 60, 23,247,175,184,186,119,137,219, 5,118,187,128,209,134, 97,231,217, 92,174,105,237, 12,107, 91, 78,206, 78,185,253,204, 41, +207, 62,123,131,227,101, 79,223,181,156,157, 30,209,180,150, 89,215,114,227,198, 49,243,229, 12,221, 54, 44,143, 22,204,250,150, +166, 85,244,125,195,115,103,115, 60, 18,163, 52,125,219,112,251,198,146,101, 59,195,199,204,243,183,142,121,225,133,187,220,123, +103, 68, 36,193,201,226,148,179, 27,119,184,188,186,207, 59,235, 13,110,116, 44,151, 75, 86,171, 11,134,209, 49,155,205, 32, 11, + 86,235, 13,113, 28,145, 82,241,210,167, 63, 65,219, 89,190,249,245,111,212,141,239,247, 35,147,137, 72,248, 36,235,226,208,223, +253, 73,215,215,100,243, 58,133,154,240,144,111,252,196,149,184,134, 36,229,211, 33,130,190, 31,234,244,126,100,185,131,143, 17, + 57, 67,242,228,119,207,185, 60,191,226,117, 55,242,206,249, 37,140,150,139, 11,199,229,249, 21,227,120,133, 22,153,222, 24,214, +195,192,189,203,203, 18,111,224, 71, 82, 30,249, 63,254,252,235,228, 55,239,125,112,172,242, 19, 23,246, 10,197, 63,141, 78,180, +111,203,136,235,229,231, 65,105,210,201, 49,185, 81,208,245,229,178, 62,155, 21,255, 7, 91, 83, 49,151,199, 60,183, 56,225,133, +197, 49,187, 80, 72,201,119,251, 37,119, 23,167,144, 21, 39,179, 19, 0,206,102,167,136, 44,233,219, 25,182,111,216, 14, 27, 22, +199, 75, 80, 10,171, 45,109,107,201, 66, 33, 99,198,244,197,111, 68, 8,129,170,190, 33,182,209,116,179, 57, 57,229,154,178, 43, + 73, 41,149,166, 33, 69,180,212, 4, 18, 70, 27, 98,136,236,188,167,215,150, 44, 5,187, 84, 27,166, 41,161,240,105,159,143,241, +161,162,151, 38, 43,237, 84, 10,121,172,161, 77,219, 97, 79, 94,157,230,229,136,253,185, 29, 15, 18, 42,167,188,120, 33,246,190, + 12,178,169,112,125, 85, 24,201,131, 70, 38,214, 17,166,146,123,247,184,143,179,183,205,228,172, 55,133,143,229, 3,203,101,181, + 15,221,114, 15, 34,116,143, 87,212,117, 77,151,233, 42,137,171, 43,190,215,183,154, 25,141, 86,164, 84, 34, 79,203,108, 69, 34, +165,196, 42,131, 18,178,160,186,201, 51, 83, 2,171, 36, 86, 22, 35,215, 32, 5, 45, 16, 93, 33, 42,177, 25,112,110,100,187,219, + 18, 71,143,242,129,185,139,100, 33, 8, 46,211,139,253,244, 77, 10, 67, 20, 18, 33, 53,209, 90,132,182, 72,221,208,216,134, 36, + 20,166,181, 24, 85, 50,150,149,210, 8, 5, 50,171,218, 13, 58,164,208,248, 88,194, 32,124, 12,228, 12, 67,240,196,213,102, 47, + 33, 10, 97,127,107,123,212,124, 57,228,210, 89,239, 66,145,244, 76, 11, 74,126,143, 10,251, 52, 91, 59,156,189, 78,133, 61,213, +188,120, 97, 75,172,226,102, 87, 96,248, 41, 87,184, 46,178,236,253,126, 33, 6, 95, 55, 89,173,214, 62, 21,199,183, 71, 29,224, +211,124, 49,186,210,221, 77,112,243, 52,251, 61,244,255,158, 66, 24, 62,245, 57,126,253, 87,190,194, 47,255,226,207,240,220, 43, +119, 73, 33, 97, 26, 69, 74, 2,183, 26,217, 94,109,217, 94,108, 8, 33,145,178, 68,209,208,181,115,102,253,146,103,158,185, 69, +107, 27,148, 52,244,139,142, 69,219,209,181,134, 70, 25,206,142,103,220, 60,233,121,241,108,198,173,147,158,190, 85,204, 91,201, +173,163,150,121,219, 48,159,181,196, 44,232,117, 25, 17,205,172, 34,132,132, 16, 18,171, 20,243, 89, 67,107, 13,202,104,110, 46, + 58, 62,249,210, 29,206,135, 68, 51, 91,240, 35, 63,244, 50,219,171,128, 74,158,191,190,119,159,133, 49,204,218,142,221,176, 67, + 37,201,108, 62, 71,105, 93,247, 90, 66, 54,150, 23, 63,245, 18, 9,193,119,190,241, 87,213, 86, 50, 87,253,122, 53, 56,250, 65, +121, 29,242, 51,200,251, 98,212,204, 75, 39,104,186,253, 40, 74, 60, 20, 68,241, 52,214,245, 67,190, 11, 31,106,245, 58,113, 52, +142,230,132,113,203, 16, 70, 98, 26, 9,126,133,206,146,171,225, 62, 34,134, 2,185,103,135, 79, 9,231, 6,190,254,250,119,249, + 55,111,191,201,230, 91,247,224,242,252,233,146,210,228, 83, 30, 75, 52,182,140,182,142,142,225,249,103,160,237,120,246,238, 93, +152,117, 4,221, 34,102, 11,178, 52,165,144, 43, 1,205, 81, 57, 15,155, 5,167,182, 65,234,150,147,217, 17,183,250, 30,135,161, + 21,154,174,105,176,202, 50,107, 58,180,212,232,166, 67, 55, 10, 25, 5,203,147, 35,226,224,104,154,166, 20,110, 18, 70, 20, 8, + 62, 19, 80, 20,254,147,212,178, 4,107, 41, 10,177,217,104, 16,145,228, 35,155,113, 75, 14,129, 32, 18, 42, 75, 92,116,197,206, + 59,102,124,114,168,154,131, 30,181,192,249,186,158,198,167,200,134,159,210,207, 38, 98,170,213,251,117,173,196, 94,213,100,212, + 30,113,158,136,188,215,166, 57,105,207,121, 17,178,156,159,147,183,123,206, 5,158,143, 53, 54, 86, 86,200,126, 24,203, 30,137, +190,120,225, 7, 95, 57, 70,149, 91,165,244,199,191, 4, 79, 35,182,148,246, 36,217,107, 53, 76,222,171, 96, 30,122,118,143, 87, +212,167,194, 97,139, 55,240,252,236,132, 83, 59, 35,103,129, 84,146, 70,119, 24, 89,188,217, 5,146, 70,149, 25,186, 36,161,100, +198, 2, 70,100, 90,163,201, 34,161, 82, 66,229,140, 27, 7,164,143,228,209,179, 27, 7,196, 48, 96,119, 1,231, 10,244,174,146, + 64,103,232,180, 66, 43,131, 82,154,166,159,163,219, 30,154, 30,219,206, 80, 77,139,210, 6,217, 54, 8,107, 16,170, 28,222,212, + 57,187,136,197, 59, 62,196, 2, 9,133,156,137, 41, 33, 37, 92, 13,107,148,210,132, 16, 56, 31, 6,178,168, 93,167,243, 92,167, + 2, 61,106, 62, 22, 83,185,249,143,110, 95,208, 15, 33,104, 25,247, 48,230,211,218,252,211,141, 78,214, 64,137,201,207,123, 90, +176,153, 98,107,170, 39,248,169,118, 91,177,194, 66, 62,148, 13,144,235,101, 68,169, 26,180, 80, 25,150,155,243, 42,135, 10,143, +247,181, 77, 48,243, 4, 35, 29,189,200, 47,252,202, 79,243, 15,126,249,103,121,233, 51,159,192, 54,138,237,214,177, 27, 60,227, +214, 51,108, 71,220, 48, 18,156,199, 59,143, 18,150,229,226,132,179,179, 19,102,125, 75,223,155, 26,234,163,176,157,162,177,138, + 89,103, 88, 54,134,219, 39, 45, 39,139,158,190,105,144,170, 32, 38,157,149, 44, 91,141,150, 2, 37, 10,145, 42, 35,171,202,162, + 32, 8, 82,194,141,133,165,111, 20,189,213,228,148,139,188, 13, 73,215,104,158,187,125, 66,210,154,148, 51,139,229, 49,199,167, +183,136,235,129,111,191,243, 22, 86, 75,164, 84,188,179, 94,209, 40,193, 48, 14,228, 24,177,218,144,147, 68,104,205, 75,159,124, +129,115, 63,240,206,119, 94, 43, 93,194,118, 34,211, 72, 30,116,188,248, 1, 40,236,135, 23, 67, 83,209,184,190,169, 7,159, 46, +107, 68,240,224,200,231, 73,215,242, 7,196,179,126, 96,178,218,100,137,125,243, 6,159,249,212, 43,124,254,149, 31, 98,217, 88, +132,202, 92,172, 46, 25,253,150,139,221,134,215, 46,239,145,200, 24,101, 24, 82,224,171,175,191,205,155, 95,255, 14,187,111,125, + 7,214,171,167, 88,208,167,129, 41, 79,199,163, 98,130,218,103,115,184,123, 11,158,191, 13, 55,110,243,195, 55,158,229,164,233, + 72, 8, 62, 57, 63, 98,200,176, 52, 13, 27,219, 86, 6,182, 0, 59,227,110, 55, 99,214, 20,227, 36,163, 53, 74,104, 22, 77,139, +233,122, 22,182,135, 20,176,218, 34,164,161,237,117, 33,189,117,109, 49, 8,155,119, 53,147, 71,163,107,231, 77, 74, 72, 36, 89, + 56,132,148,165, 54,250, 34,215,146,178, 36, 18,134, 24,137, 68,164,128,221,232, 17, 66, 34, 73,228, 36, 24,115,153, 1,207,187, + 25, 91, 55,208, 54, 13, 90, 40,118, 58, 19, 69, 77,134, 20, 21, 9, 18,117,205, 61, 14,194,209,216,154, 36, 57,117,205,181,169, +240,149,196, 54, 89, 11, 78,222, 15,177,234,208,243, 4,207,219,189, 29,110,136,181,121,173, 99, 40, 37,106,167, 47,170,172,172, + 6,206,104, 85,246, 68,223, 22,102,189,209,133,100, 42,171,213,110, 62,200, 13,120,156,189,114,120,129,158,198,151,249,176, 99, +127,239,231,124, 60, 71,185,201, 54,112,110, 97, 54,199,231,140,173,118,121, 11, 91,102,233,160, 80,178,204,174, 11,153, 60,160, +149, 32,197, 68,223,154,226,176, 56, 56,176,170,100,159,123,200, 33,226,134, 1,225, 60,202,143,196,171, 13, 73,104,244, 54, 16, + 20, 12, 10, 90,161,217, 24,133, 54, 22,213,119, 68,221,210, 88,131, 64, 18,117,233,250, 11,244, 92,159,171, 12, 56, 38,213,151, + 32,235,162, 3,179,157, 98,220, 66,171, 52, 49, 6,182,206,211,155,134,149,171,198, 20,147,233, 73,160,204,100, 92,101, 41,199, +244,225,102, 18, 70, 86,143,225,201, 91,187,158,221,170,125,240, 25, 62,169,125,228,161, 22,252,240,247, 66,216,235,197, 1,220, + 37,232,227, 98, 60,147,124,149,172,181,123, 7,167,139, 77,249,179,144,247, 30,206, 91,247, 24,201, 24,239,243, 58,112,229,250, +185,255,252, 87,248,210, 79,253, 24,167,167,115, 98, 74, 92, 93,142,172,175,174, 72, 41,145, 35, 24,221, 18,182, 1,163, 91, 8, + 13,253,201, 13, 78, 79,230, 88,107,232, 27,203,124,102, 9, 33,147, 17,228, 36, 80,141,100,102, 44, 11,107, 80,100,156,139, 8, + 60, 66, 42, 92,128,139, 77, 34,101,207,172, 73,116, 86,178, 13,133, 21, 93,136,183,138,227,121, 33, 77, 22,133, 77, 66, 43,113, +157,227, 81, 87, 11,222, 39,122,107,248,210, 75, 55,216,141,129,123,219,200, 38, 30,211,205,231, 12,191,251, 59,136,148,137, 34, + 50,134,192,197,234,138, 69,191,100,244,145,198, 59,210,213, 21,110,216, 50, 63, 57,226, 23,126,254, 43, 92, 13,142, 87,255,228, +223, 61,232,155,126,237,199,249, 3,242,234,219,253,177, 48,173,143,113,138,118,116,149, 91,193,131,133, 75,235, 39, 91,199, 47, +127,178,116, 84, 95,255,198,251, 79,119,106,164,106,174, 26,222,137,127,214, 62,115,131,163,217, 18, 45, 21, 39,203, 99,186,174, + 33,249,196, 27,151,111,113,181,115,220,219,236,120,103,187, 99, 27, 61,241,254, 21,249,114, 11,227,138,252, 52, 45, 91, 63, 40, + 47,254,113, 29,197,160, 6,170,204,225,185,103,224,248, 4, 22, 55,144, 41, 51,235,231,184,221,154,231, 23, 55,184, 55,172,249, +100,211, 48, 2, 23,227,200,168,138,177, 80,223, 52,244, 70,163,133,198, 54,246, 90,154, 37,181,166,207,145,224, 29,182,233, 49, + 66, 33,165, 68, 38,137,238, 44, 70, 78,254, 4,245,172, 84, 16,115,192,200, 76, 96, 36,185,128, 18,153,156, 51, 46, 4,148, 46, +197,114, 28,124,149, 84, 41, 98, 40,157,173,173,166, 72, 67, 8,100,114,137,191,214,154, 24, 35,103,179, 35, 6, 63, 98,103, 22, + 45, 19,219,214,242,154, 53,165,136,174,135,114,238, 68, 87,214,216, 48,124,188,181, 53,186,125,231, 45,168, 49,218,181,171,138, + 53,143, 93,213,220,249,105, 29,155,154,111,161, 36, 12,235,178,254,213,129, 45,179, 79,251,153,121,116,160,230, 69, 17,116,237, + 70, 23, 10,154, 69,216, 59,202, 77,254,239,147, 10, 73,233, 58,210, 10, 31,127,191, 60,198,250,209,143,189,136,219,166, 20,170, +182,199,100,129,243,129,163,118,142,139, 17, 33,202, 77, 38,166,128, 50,134,144, 19,173,210,132,156,232, 40, 48, 88,223,116,104, + 50,209,121,164,146,248,237, 64,151, 33,248,192, 48, 12,100, 23,138,174, 63,120,140,173,174,117,141, 33, 54,179, 66, 24, 94, 30, + 99,154, 22,225, 61,169, 53, 40, 36,194,103, 98,215,209,166, 64,142,137, 36, 5, 86, 52,100, 34, 49, 70, 50, 9, 33, 53,201,101, +132, 40,209,167, 46,122, 2, 17,169, 5, 4, 69, 78, 1,143,195, 40,205,104,106, 96,193,218,239, 31,112, 76, 31,242, 6, 76,179, +210,112, 45, 93,188,246, 48,158,126, 93,174,244,213,204,224, 9, 11,166,169,129, 3,138, 7,201, 69,215,240,169, 45,115, 35, 29, +247,213,170,213,133, 32,212,232, 10, 37,197,226,209, 28, 14, 32, 97,107, 97, 92,237, 55,200, 19, 28,222,127,231,151,127,142, 47, +255,228,151,185,243,252, 41, 66, 10,134,157,103,125,181, 99,115,181, 65, 90, 89, 70,143,187, 17, 47, 18, 18,205, 51, 55,158, 69, +105, 75, 99, 53, 90, 9,140,209,204,122, 91, 46,216, 25,130,243,180, 70,176,104,203, 72, 39,230,196, 16, 51,110, 40, 12,126, 37, + 5,163,203,220,219, 4, 66,138, 88, 85, 51,134,180,198,167,196,213,170,100, 3, 68, 41, 8, 49,211,233, 4, 99, 66, 38,104,218, +226,182, 55, 84,114,103,204, 25, 25, 50,198, 20, 68,160,239, 90, 98, 18, 60,183,236, 80,252, 60,175,126,251,187, 12,155, 21, 62, +254, 53, 62, 58,180,182,164, 48,226,130, 39,196, 64, 8, 22, 55, 6,110,189,112,155,223,252,213, 95,226,127,221, 69,174,190,250, +141, 18, 82,225, 63, 42, 29,246,251,244,106,108, 53, 85,169, 95,151,169,135,223,122,245, 96,184,201,212,209,103,158,138,167,249, +115,119, 79, 57,233,230,252,249, 67, 69,189,228,123,132,253,207,107, 65,159, 32,205,219,139, 25,183,207,110,113,111,125,206, 11, +183,110, 35,141, 33, 69,143,209,207,208,154,134,119,183,107, 86,247,207,201,110,132,243,119,159,110,142,193,163, 10,250, 7,125, +172,109, 11, 55,229,131,158, 89, 99,203,236,252,198, 41, 60,247, 44,116,115,152, 29,131, 53,204,133,102,235, 29, 11,211, 50,132, +128,160,152,141,188,189, 94,177,176,109,137,170,165, 40, 57, 0,146,146, 92,121,207, 51, 77, 71,163,138,103,135,167, 40,128,112, + 35,130,140,214,138,182,107,139,202, 32,101,180,149,132,209, 87,115, 67,135, 38,144,180, 71,187,128, 19,174,120,128,120,143, 68, + 16,125,198, 79,173,111,146,196, 93,177, 97,142, 42,161,133,100, 23, 71, 90, 93, 28, 33,165, 44, 73,153, 90, 40,148, 46,210, 10, + 33, 51,164,142, 16, 2, 47,158,157,114, 62,236,216,180,150,232, 28, 92, 14,123,203,241,237,199,136,166,158, 26,153,107,187,214, +169,177, 58,144,109, 74,189,183,168,181,128, 59,184, 97,247,237, 62, 5,239,176,176,167, 74,134,155, 92, 31,175,155, 40, 11,210, + 85,219, 86,246,204,119,113,112, 78, 78,249, 28, 57,237, 77,196,198,239,237,216, 77, 63, 86, 33,105,219,186,233, 45, 56,199,209, + 98, 73,175, 53,224, 17,162,197, 84,200, 64, 73,141,243,158,214,180,196,232, 81,253,131,246, 16, 0, 0, 32, 0, 73, 68, 65, 84, +100,108, 83,158,174,115, 35, 70, 74, 84,202,152, 4, 94, 25,216,172, 8, 33, 96, 98, 68,133,132, 19, 13, 93, 83, 35, 82,173,102, +222, 22,189,228,242,228, 4, 21, 50, 62, 38,236,124, 86,130,128, 98, 66,180, 22, 81,137,108, 66,107, 76,166, 44, 38,138,214, 47, +186, 18, 50, 32,200,120,231, 16, 82,144,210, 30, 82,119, 57, 20,163,154, 12,173, 86,140, 94,237, 45, 14,145, 31,173, 83,159, 10, +187, 72,251, 91,227,245,162,227,193,159,123,249,228, 93,206,132,239, 75,185,191,113, 30,190,173, 74,150,247, 43,172, 96, 88,192, +162,169,193, 3,166,116,230,187,117,245,231, 30,203,223,247,169,166,136,141, 15, 6,133, 60,198,215,217,255,248,151,248,205,175, +252, 36,175,124,246, 69,180, 16, 12,206,227,198,192,250,114,139,119, 14,100, 41,232,243,126,129, 93,156,210,116, 45,120,137, 66, +211, 46, 12, 90, 72, 78,102, 22, 99, 20, 18, 65, 99, 52, 33, 43,206,179,192, 71,207,189,181,195, 84,147,157, 88, 67, 37,118,222, + 19, 66, 68, 68, 65,200,137, 97, 72, 12,163,103,116,145,229, 92, 23,232,190,149,184,109, 96,187, 13,132,172,104,231,134, 35,147, +203,218, 89, 11,180,146,244,141, 37,228, 98, 78,180,146, 30,163, 36,125,163, 88,180, 2,107, 53,214,104, 62,247,210, 13,142,102, + 13,247,239, 95,113,118,235, 22,171,139, 43, 94,191,255, 29, 70, 31, 72, 49, 34,149,192,168,128,237,122, 46,238,157,243,236, 75, +119,249,167,255,217, 47,241, 63,255,241,215, 14,230, 50, 63, 64,175, 36, 31, 66,146,216, 75, 27,167,174, 93, 60,253,127,246,213, +223,251, 3, 94, 61, 44,126, 7,200, 83, 70,151,194,174,245,117, 65, 23, 49,145,149,228, 91,111,190,195,173,217,155,220, 62,189, +137, 80,146, 24, 61, 57,192, 24, 2, 55,150, 71, 44,187,150,203, 55,222, 46, 33, 34,181,160,231,167,253,197,219, 26,142,180, 27, +247,197,226, 48, 20,228,250,251,234, 42,130,215, 66,120, 40,149,208,216, 2,253,206, 58, 56, 89,194,209,188,116,119,214, 22, 18, +150,131,165, 21, 32, 21, 66, 55,100,183,229,184,155,227,134, 45,207,119, 45,247,124,224,221,114,147, 39,137,140, 53,134,133,181, +116, 82,179, 11,142, 99,219, 97,155, 6, 17, 18,222,121,164, 84, 28,213,156,116,165, 37, 90,203, 98,171,225, 3, 86, 11,162,247, +228, 16,144, 58, 34, 6, 79, 34,163,165,160,217, 57, 6,145, 49, 25, 84,140, 5, 89, 22,130, 81,149,102,167,164,149, 54, 64, 98, +209,204, 8, 57,162, 77,195,224, 6, 90,101, 65, 39,134, 16, 88,116,115,188,223,146, 77, 67, 59,151, 92,185, 45,189,130, 43,173, + 88, 55,154, 75, 20,116,177,248,196,115, 5,222,194,246, 67,146, 28,141, 45,163,207, 41, 43, 33, 38, 16,110, 47, 3,155, 80,211, + 36, 30,156,233,216,218, 88,185,170, 77, 23,178,188, 23,227,186, 28,163,186,173,118,178,117,180,106,218,189, 95,188, 60,104,208, +166,189,108, 38,127, 18,185,255,185,146,123,118,253,211, 64,182, 62,228,245,241,103,234,186, 90, 94,246, 51,232, 91,154,147, 37, +189,210, 88,109,144, 66, 32, 69, 38,229, 76, 66, 84,189,122, 33, 7,168, 12,157, 76,184, 16,233,148,196, 20, 80, 8, 13, 40,165, + 80,126, 68,198,132,218,185, 50,178, 72, 96,148, 38, 26,141,233,122,218,182, 67,219,134,182,159, 97,140, 65, 90,131,182,134, 76, +174,188, 7, 77, 32,147, 83, 38, 73, 93, 33, 39, 73,200,165, 99, 79, 66,236, 51,147,153,204,190, 34, 57, 70,198,228,240, 62, 16, +115,172,235, 33,177,141, 99,241, 94,113,174,144,155,166,212,182,195, 44,229, 15,155, 77, 78, 86,131,217, 23,164, 97,210, 1,123, +246,176, 80,240,143,121, 29,211, 7, 26, 99, 5, 97, 44, 24,191, 63, 96, 67, 47,102, 69,191,106,155,114,156,185, 80, 14, 55, 31, +202,247, 18,135,242,119,198,106,103, 56, 86, 61,101, 13,122, 33,133,247, 18,241, 62,162, 70,249,215,127,251,183,248, 79,127,237, +239,114,231,185,155,184, 49,224,124, 32,250, 92,127,140,215,211, 7,133,225,120,126,196,114, 54,227,246,209,146,153,109,144,173, +194, 72,197,162, 49,204, 90, 85,227,196, 19,228,204,106,235, 24,221, 8, 34,147,125, 34, 10,193,213,182,132,183,196,152, 89,175, + 2,171,171, 29,231,235, 45,187,221,136, 15, 30, 31, 18, 82, 72,238,189,189,226,222,102, 7, 17,108,149,151,197,224, 8, 89,113, +113,233, 25,131, 99,244, 17, 55, 70, 92,242, 16, 51, 65, 8, 4,146,205,224,184,220, 56, 70,159,153, 55,146,209,121,180,146, 44, +250,134,219, 55, 23, 28,157,206,249,196, 11,183, 16,237, 2,171, 90,124,101,192,175,118, 91, 72,145, 70, 23,111,128,103,159,191, +193, 23,126,234,111,243,175,127,231,255,225, 7, 38,236,227,129,179, 73, 87,230,239,100,184, 84, 11,162, 76,188, 71,103,246, 81, + 15, 38,253, 1,247,151,135,127,127, 42,232,170,234,135,167,249,103,101, 49,139,201,135,161, 22, 77,177,139, 92,244,130,190,230, +141,183,166, 97,181,185, 66, 10, 88,239,182,252,233, 95,125, 23,222,126,245, 26,181,122,234, 5, 93,214,180,182,182,219, 95,124, +212,193, 65,158,115,189, 40, 85,207,110,161, 32, 12,251,125,212, 90, 80, 29, 28, 31,149,196,191,163,121,209,149,119,109, 41, 38, + 85, 1,137,110,176,148, 68,202,165, 44,137,131, 34,122,174,124,160,201,145,123,110,199,102,220,128,223, 33,117,135,147,154, 59, + 93,135,149,130,101, 99, 48,213, 67, 66,213,128, 43,163,138,217,212,188,183,215,130, 20, 50, 37, 60, 43, 71,114, 12, 5,132,168, +118,221,132,136, 30, 35, 65, 75,172,143,200,154,149, 33, 43,129, 75,138,124,205,229, 82, 70, 99,164, 68, 91, 67,219, 24, 18,169, +152,125, 9, 16, 66, 48,239, 91,156, 27,232,172, 45,102, 66,100,230,182, 37,166, 80, 56,181, 89,149, 99,218, 10, 98, 18,251,140, +243,198, 22,136,254,144,179,112,152, 45, 17,124,173, 77,121,111,216,162,197, 94, 58,145, 39,130,167,170,103,220,193,251, 56,212, +226, 63,233,190, 85,174,246,220,186,202,200, 84, 33,185, 54,181, 97,138,197,116,168,196, 40,155,242,107,217, 84, 50,221, 52,163, +143,229,189,119, 99,181,205, 86,149, 53,175, 31,207, 79,226,123, 90,212,219,190,232,109,251, 6,164, 70,181, 13,141,177,204,141, + 65,203,150,156, 34,141,105,176, 82, 19,146, 71,150,119,147,148, 2,141,132,133,166,116, 49, 66, 98,115, 70, 33,203, 51,244, 9, +147, 37, 42,122,162, 75, 88,109,112,198, 34,155, 14,211,207,104,141, 69, 89, 75, 59,235,137, 62,162,171,183,176, 8,177, 20,108, +169,145,100, 66, 77,132,147, 2, 54,209,163,108, 49, 70,201, 57, 18, 67, 66, 8, 65,140,169, 64, 72, 57,227, 98, 32, 36, 79, 68, +144,147,199,167,226, 74, 23, 83, 34,196,136,159,152,141, 83,210,148,143,133,240,246,145,141,187,210,158, 85,169, 38, 39,162,218, +169,167,248,152, 33, 5, 15,221,244, 98,253,122,140,173, 70, 7,213, 47,190, 95,212,244,188, 74,216,112,187,253, 92, 52,135,122, + 1,136, 48, 78, 58,244,176, 95,116,250, 33, 22,253, 20,245,247, 33, 68,160,230, 63,248, 18,255,245, 63,254,135,124,241,203,159, +195, 24,205,110, 44, 33, 7, 41,102,178,200,164,148,137, 33,145,131,164,177, 29, 55, 79,110,240,220,233, 41,203,197,140,227, 69, +139, 80,146,155,139,142,219,199, 29,157, 45,220, 8, 33, 96, 51, 68, 86,131, 99,227, 28,187,157,199,187,192,198,123,214,235, 29, +219,245,200,229,197,150,132, 33,197,196,118, 51,224,119,142,113, 23,217,173, 71,132, 78,197,215,223, 39,148, 22, 8, 13,227,110, + 96,116,158,205,122,139, 31, 28, 62, 10,182,155,145, 97, 28, 9, 33, 51, 14,129,245,214,177, 25, 60, 46, 41,114, 78, 4,239, 25, + 35,228,156,104,173, 40,121, 29, 25,122,173, 88,180,154,101,111, 89,246, 51,238, 62,123, 11, 59, 59,226,232,228,140,123,111,191, + 77, 12,145,166,177, 37, 60,207, 71, 94,120,225, 25, 62,255,147, 63,198,239,255,206,239,253,128,117,234, 53,255,122,146, 25,197, +176, 15,220, 73, 60,126,184,134,212,123,183, 51, 93,198,104,197,146, 51,188, 23, 62,133,189, 52, 72,215,131, 86,213,208, 27, 33, + 30, 44,236,126,196,125,231, 77, 94,253,206, 95,241,141,237, 21, 89, 57,122,107,113,206,241,199,175,127,135,237, 55,191, 5,126, +252,224, 98,254,137,151,249,244, 79,124,145,123,127,245,215,143,184,121,124,200,243,154, 46, 67,227,184,151, 80, 93,187,140,229, + 3,195,160, 90, 8,164, 44,207,162,105,192,206, 74,103,222,218, 18,176,210, 54, 85, 45,162,202,254, 77, 19, 81, 42, 17,108,203, + 11, 77,135,200,145,224, 7,124,138,164, 48,144,220,142,239,110, 86,228,113,139, 80,154,185, 2, 77, 65,152,132,182,180, 53, 23, +192, 72, 69,140,137,166, 51, 52, 2,102,115, 83,199,203,213,252,171,250, 83,229,148,209, 58, 33, 82,113,238, 36,102, 68, 12,228, + 24, 80, 49, 34,114,177,162,176, 2,180, 80, 64, 68, 8,137,110, 44, 70, 91, 76,107,208,141, 65, 27, 77, 22,208, 54, 77, 33, 76, + 75,129, 49,138, 24, 35, 93, 91, 96,247,242, 22, 75,188, 31, 49, 82,145,115,105,150, 78,187,142,251,195,128,106, 44, 81,203, 26, + 21, 61,141, 53,171, 23,186,182,149,116, 60, 49,217, 15, 50,237,179,219,155,183,196, 74, 98,156,194, 46,114,189,156, 38,202,179, + 14,126,239,177, 46,155, 82,208,175,199, 52,182,172,215,144, 10,154,137, 40,223,188, 16,123,189, 58,147,180,211,151,117,234,170, +211,155,169,121,244,166, 58,212, 81,211, 47,197,247, 62, 11,224,227, 21,245,190,173, 48,146, 41, 55,167, 89,143,178,134,179,174, + 47,129, 43, 74,208,155,142,148, 19,137, 92,154, 84, 33,144,100,218, 28,208, 57,128,200,180, 82, 33, 82, 36, 42, 69,147, 74, 97, +143,128, 30, 74, 81,237, 81,120,173, 80,243, 57,182,105,208,198, 18,148, 98,214,119,228, 24,209,173, 37,197, 90,144,116,177,129, +117,209,147,140, 33,121,143, 19,137, 49, 6,100,134, 40, 37,161,250,121,103, 37,137, 62, 84, 87,191,120, 93,184, 5,144,235,131, +207, 41,226, 98, 66,145,145, 66,176,217,212, 52,171,237, 88,180,222, 34,215, 91,216,227,220,236, 15,108,103,227, 19,144,228, 14, +217,237,135, 63,159,244,138,105,138, 91,181,101,145, 42, 85, 10,248,110, 40,139, 55, 84,134,168,171,172,244, 84, 11,119, 99,247, + 16,209,116,112, 79,183,225, 84,103, 85,227, 7,155, 69,156,254,228, 79,240, 63,252,246,175,242,210, 75,119, 42,241,180,204,187, +189,247,140, 33,226,118,129, 97,240,108, 46,183, 24,221,115,243,198, 45,158, 61, 61,225,232,168,165, 51,166,146, 67, 51,179, 70, + 33,165,192,197,200, 16, 51, 99,130,245,198,115,126, 57,176,221,121,134,209,179, 90, 13, 92, 93,110,217,172, 6,182,187, 1, 63, +122, 98, 78,108,199, 80,188,222, 47, 7,156, 27, 8,209, 17,125,201, 5,200, 62,161,148, 34, 69,201,102,181, 69, 74, 65, 74, 25, +183, 29, 24, 54, 35,155,203, 17,183,113,184,113, 96,231, 29, 41, 4,182,155,145,113, 44, 23, 9,171, 4,189,145,236,198,136,208, +146,152,114,229, 33, 85,243, 36, 37,105,172, 98,222, 27, 94,188,121, 68, 63,155, 33,237,156, 20, 5, 73, 4, 4,138,144, 18,219, +209,113,231,217, 51, 62,247, 19, 63,206, 31,252,159,255,247, 15, 86, 97,143,213, 1,239,253, 2,119, 30,231,101,236, 62,170, 52, + 85,130,230, 24,203, 33, 60,107,246,100, 35,173,247,178, 34,216, 39,103, 77, 45,182,172,126,245,213,212, 67, 92, 27,238,212,175, +115,181,227, 45,231,249,230,219,111,241,205,183,222,100,251,221, 55,201,227,250,209,223,195,122,197,223,254, 59,255, 17,183, 62, +253, 9,190,251,141,111, 60, 30,107, 93, 86, 5,201,244,181,235,135,252,248,167,203,178,214,165,136,207, 23,176, 60, 65, 30, 31, +145,151,179,131, 44,123, 85,138,130, 82,251,142, 51,133,210, 68, 9, 65,204,137, 24, 60, 97, 92,211,165, 76,218, 94,208, 4,199, +184,189,226,221,237, 10,198, 1,225, 7,192,243, 66, 51, 99,214, 47, 57,178, 13, 90, 74, 66,202,215, 33, 44,157, 22,116,115,195, +220, 42,218, 70,162,165,160,111, 37,186,122,150, 79,118, 4,201, 23,110, 74,218, 13,197,139,127, 8,197,162, 59, 23,200, 93, 9, +137,105, 12,198,180,216,182,197, 54, 22,213, 53, 40, 99,139, 47,137,181, 40,169,200,185,204,238,181, 42,132,232,198, 54,196,224, +209, 82,212, 16,180,132,175,239, 81, 18,197,253,115, 32,176,108, 91,132, 20, 8,163,112, 86, 22,228,176,235, 10,218, 41,227,158, +137, 46,170, 13,172, 72,117, 92,193, 94, 97, 20, 40, 5, 53,199,189, 93,175,212,165,232, 83, 73,193,147,235,219, 48, 22, 79, 14, + 95, 47, 9,186,202,214, 68,222, 7,124, 9, 91, 85, 32, 84, 51, 25, 81,244,233,169,218, 2, 79,151, 58,173,170, 11,103,189,236, +153, 74, 88,252, 62,116,233, 31,175,168,107, 93, 61,190, 21,204,106,234,143,214,204,103, 51, 52,146,185,181, 37,214, 84,148,141, + 55,201, 34,148,128,144, 3, 46, 7, 22,178, 60,160, 46,139,210, 77,231,140,164,108, 36,149,138,180,204, 38, 81,162,110,109,135, +237, 59,178,178,100, 37,209,198, 48,166, 64, 86,229, 96,148, 36,164, 54,136, 24,217,230,136, 82, 18,231,194,117,198,201,232, 61, + 89, 22,214,189,203, 9,157, 82,129,226, 67, 34,197, 2, 31,249, 80,224, 31,159, 28, 32, 8, 49, 17,115,192, 42, 69, 22,153,115, + 63, 98, 90,131, 27,171, 94,209,213,212, 41,255, 4,126,209, 79, 18, 35,120,248, 94, 72,249,224,165,224,176,184, 79, 9, 91, 50, + 23,107, 67, 31, 96,187,131,113,183, 47,212,147, 43,216,195, 29,255, 3,159, 99,234,212, 39, 56,182,182,108,215, 16,252,190,187, +249,217, 95,255, 69,126,235, 31,253,125,142,230, 61, 87,155, 29,219,245,192,110,112,108,119,158, 24, 51,195,102,100,183, 25,136, + 46,161,153,243,204,157,103,248,220, 39,110,114,231,164,165,181, 6,231, 19,177,118, 96, 62,129, 71,178,118,137, 55,223, 90,113, +117,185,101, 61, 4,134,144,216, 14,158,205,122,199,230,202,177, 91, 15,248,224, 24,183, 3,193, 7,198,113, 32,120, 71,116,129, + 24, 3, 57,149,241, 71,172, 58,252,148, 34,195,110,199,118,189, 99,216,141,172,207, 47, 16, 66,225,156, 35,249,177, 34, 53,144, +115,196,143, 14,165, 53,195,232, 10, 23, 67, 70,164, 80,180,179, 98,173,235,198, 72,211,106, 6, 95, 80, 39,170, 92,174,240,199, + 4,141, 49, 40,173,137,178,229,153,219, 55,217,110, 3,110,216,161,219,134, 97,189, 97, 12,137,231, 94,184,201,115,159,248, 36, +127,246,251,127,244, 24,216,245,191, 7,175,105, 86,220,170, 50,119,182,109,145,136,118,179,122, 24, 86,242,230, 4, 89,155,169, +176,137,125, 65,159, 58,225, 44,246,168,209,251, 25,238, 72,138,229,235,197,101,249,111, 28, 74, 33,248,160,103,167, 75, 44,232, + 55,183,107, 94,190,243, 44,127,253,245,175,239, 33,245, 71,237,205,198,150,175,185, 53,123,100, 97,114, 15,211, 15,141, 39, 38, +253,179, 86,165, 11,188,121,198,252,120,206,252,120,206,216, 88,178,177,213,209, 44,214, 17,218, 65, 54,192,100, 87,154, 98, 41, + 60,227,134,237,184, 97,117,117,159,221,246,156,215,238, 95,225, 55, 87,188,182,170, 5,189, 85, 28,205, 58,110,182, 61,199,205, +156,214,182, 40, 37, 64, 89,186,156,176, 82,211,181,146,229,204,208,181,197, 0,108,222, 42,186, 86, 33, 98,194, 54,170, 18,147, + 51,209, 7, 68, 78,196,245, 72,206,137,184,222,146, 71, 71,118, 30, 65, 46,231,182,110,139,153,152,209,116,205,140, 44, 21,221, +172, 67,100,133,181, 6, 41,101, 97,190, 91, 83,198,108, 85, 94,155, 98,192, 24, 75,162,132,112, 73, 81,124, 78, 93, 8,180,198, + 18,115, 44, 6, 98, 82, 18, 98, 36, 9, 73, 18,130,104,234, 57,118,212,150, 11,144,243,165,176,235, 41,173,208, 20,107,110,171, + 32,200,178,230,144, 85, 55,174,246, 50, 76,125,224,149,129,170,217, 21, 19,201,174, 22,236,209,213, 5, 85, 47,101, 82,148,130, +158,134, 18, 7,157, 43,220,126, 77,134, 22,251, 28, 7,228, 1,121,234,192,202,217,249, 3, 31,136, 39,100,193, 77,126, 8, 19, +195, 62, 61,110, 81,159,236, 64,219,190, 44,236,190, 41, 48,154, 82,220,232,122, 50, 25,171,219, 58,151,206, 40, 33,201, 57, 33, + 40,208,187,200, 25,159,224,140,200, 32, 51, 45, 18, 35, 4, 89, 42, 68,150,200,148, 17, 8, 68,206, 36,211,208,204,122,178,181, + 37,232, 72, 27,178,132, 70, 75, 92,138,164,156, 80,218, 20,233, 92,142, 32, 20,131,247,132, 84, 50,197,163, 47,182,177, 33, 38, +140, 16,101,159, 8,144, 46, 34,140, 4,153,241, 46,144,114, 34, 11, 73,240,158, 24, 2, 62, 7,132,144,164, 84, 82,186,102,178, + 33,228,196, 54, 87,150,231, 24,107, 30,111,252,155, 61,103, 31,238,162,141,222, 23,228,233,207, 38,184,127,136,101,118, 30,195, + 30,154, 63,204,182,126,212,231,152, 22, 96, 83,229, 46,170,250, 38, 95, 31,124,165,216,255,226,111,254, 26,191,240,107, 63, 71, +223, 88,222, 61, 95,177, 94,237, 24,135,192,118, 23,240, 99, 49, 0, 73, 49, 99,245, 12, 35, 91,142,143, 79,121,246,230, 9, 77, + 53,126,241, 46, 17, 66, 98, 12,153,213, 48, 18, 92, 34,184,200,253,203,129,119,207,215,220, 59, 95,179,190,220, 49, 12, 35,171, +243, 29,187,237,192,110,189,102,231, 6, 98,240,184,193,177,219,108, 9,163, 71, 32, 24,135, 13,227,110, 64, 25,197,176,217,162, +141, 41, 69,158, 76, 8,158, 97, 59,224,221, 64, 76, 9,231,119, 56, 55, 34, 20,228,236, 9, 99, 64,217,150, 97,187, 37,231, 76, + 38,147, 92,194,246,134,172, 45, 41, 22,109,104,132,162,121,175,227, 37,137, 68,107, 81,221,118, 51,179, 89,195,113,223,176,114, +208, 88,195,141,211, 37,235,130,221,227,189,195, 15, 35,194, 24, 94,124,249, 46,119,238, 62,199, 87,255,240, 79, 63,160,144,255, +123, 84,208, 31,190,127, 88, 83, 70,117,218, 20,173,175,148,229,240,173, 9,137,165,123,105, 74, 1,166, 66,213,147,167,245,225, + 75,240,225, 29,142,148, 31,192, 17, 72, 31,204, 90, 23,192,253,243, 82,208, 39, 8,246, 81,133, 93,235,253,197, 3, 30,204,224, +158,138,251, 84,224, 39,178,148, 22, 37, 11,226,248, 8,121, 60,227,120,214,211,118, 45, 94, 75, 22,198, 20,103, 53, 33,247,172, +107,113,192, 68,140,161, 60,155,213, 21, 92, 94,192, 59,239,146,175,118,140,111,190, 11,171, 53,187,243,251,229, 18,208,104,132, + 41, 49,167, 47, 46,207,138, 23,187,208, 72,105,145, 57,209, 91, 75,171, 4,139,185,165, 49,154,227,153,102,209,149, 46,189, 53, +146, 89,171, 17, 33,151,112,172, 92,208, 39,191, 29, 32, 38,194,197, 21, 41,248,242,252, 67,177,127, 45, 53,180, 65,182, 6,221, +244,101,162,208, 55,228,148,153, 29,117,228, 92,164,161, 77, 99,137, 41, 34,170,155,232,148,182, 23, 67,198, 71,143,182, 22,239, + 35, 81, 36,180, 82,248,148,208, 82,145, 36,140, 62,208, 24,197,152, 34, 43,239, 49, 82, 18,173,134, 93, 93, 7, 93, 91,189, 54, +100,121,206, 34,237,253, 54, 52,101,124, 17,198,130,130,140,245,207,146, 42, 90,114,101,107,224, 77, 61, 39,167,247, 74,230,234, +219, 94,211,218, 38,227, 26, 89,223,139, 41,187, 60,213,116, 52,217, 20,216,125, 50,234,210, 83, 8, 75, 40,159,127,116,123,111, +248,244,148, 92,243,100,253,223,245,122,127,239, 90,253,120,240,187,172, 29,122,215, 94,207,134,111, 44,230,164, 36,153,155,134, +144, 60,173, 52, 52,218,144, 43, 33, 45, 19,203, 27,149, 2, 22, 24,114,230,148, 18,119,106,116,131, 77, 32,132, 36, 10, 48, 33, + 35,173,161,233, 58,178,212,133,140, 97, 52, 57,197,210, 36, 42, 81, 50,235, 41, 40, 76, 36,145,133, 64,145, 25, 70,135,212,130, +113, 61, 16,157,135,152,104,164, 38,133,128,212, 18,124, 68, 24, 69,172, 51,110, 41, 51, 62,100,198,232,200, 41,225, 83, 68, 85, +253,253, 54,184, 98, 73, 26, 61,107,231, 56,110, 91, 54, 87,219,178,241,220,184,223,128,127,163, 7,168,126,176,115, 57,132,227, +167, 66, 29, 83, 9, 37,152,110,138,135, 7,214, 33,209,238, 81,159, 35,213,219,238, 68, 70, 65,215,195,178,144,127,126,241, 31, +254, 26, 63,251,247,126, 26,107, 13,171,237,192,213,197,142,171,119, 46,137, 41,163, 26, 77, 12, 17,239, 60,182,233,152, 47,122, +180,208,104, 97,144,141,194,214,113,105, 78, 5, 54,223,121,207,224, 3,195, 16,185, 28, 6,238, 95,172,216,238, 70,220,206,177, +217, 57, 86, 23, 23,236, 86, 27,114,242, 4,225,233,218, 6,211, 25,148, 82, 52,125,135,247,174, 54, 71,153,209, 5, 66,130, 76, + 70, 41,141,247, 99,185,249,167,200,224,118, 72, 36, 99,204,196, 16,112, 33, 32, 19,120, 95, 46,122,214, 26,164, 82, 12,219, 29, +237,220,226, 93, 68,106,139, 54, 18,211, 88,178, 47,198, 69,227,152,104,172, 38,102,232, 26, 67,170, 70, 70, 25,129, 86,154,163, +206, 50,107, 20,111, 94, 12,197,173,110,222,178, 25, 2,227,118,131, 27, 6,114,200, 36, 41,120,233,229,187,156,156,221,226,223, +254,233,255,123,176,115, 63,134,220,205,216, 58,135, 85,223,191,156,234, 7, 10, 93,189,244, 77, 14, 90,211,248, 71, 83,138,248, +196,241,152, 8, 75, 91, 87,153,198,149, 56,102,108,233,170,115,117, 33, 52,242,193,194,254, 97, 7,226,163,164,101,239, 87,160, +223,239, 2,192,161,173,241,251, 4, 55, 77, 36,190,195, 56,225,105, 68,160,229, 62, 76, 73, 29,252,158, 48,197,143,125, 62,135, +229,156,103,231, 61, 95, 60,157,113,199, 26,238, 52,150, 99,149,105, 51,220,167,186,130,229, 10,243,250, 88,216,244,155, 29, 92, + 92,193,197, 10,222, 57,135,221, 21,220,187, 40,138, 21, 95,231,198,203, 57,116,182, 56, 32,246, 51, 26,213,176,108,150, 88,163, +209, 90,161,132,102,222, 54,156,206, 52,243, 86,115,107, 97, 56,157, 25, 58,163, 88,106, 65,171,196,117,152,156,212, 16, 92,100, +112, 35,164,204,112, 85, 52,253,121,231,136,187, 1,157, 32,197,132,210, 22,221,119, 24,221, 96,186,242,115,178,160, 93,180, 4, +151,200, 6,172, 46,238,137, 82, 10,132,144,228, 92, 8,212,185, 74,100, 75,100,121,172, 1,118, 5,193,141, 41,225, 40,242, 59, + 41,139,171,103,202,153, 31, 62, 94,242,134, 27,137, 33,150,139,162, 82,123,155, 87, 33,106, 86,123,141, 36,213,166, 32, 41,209, + 23,162, 27, 53, 73, 45,248, 82,108,141, 41,235,210,135,242,113,162, 42, 12,130, 43,191,214,162,204,225,117,165,197,171,106, 94, +211,217,162, 22,162, 94, 24,162,171, 94, 38,234,192,190,117,202,218,144,149, 60, 39, 31,140,155,126, 82,208, 77,195,123, 4,107, + 85, 25,114,184,198, 63,122, 81,175,217,214,232,174,124,179,141,133,182, 45,100, 8, 93,216,202, 66, 10,172,178, 69, 38, 6,248, + 28, 81, 8,114,206,136, 92, 10,231, 82,137, 98, 9, 91,195,221,149,177,184,148,104,178, 36, 40, 73, 86, 6,169, 53, 65, 22,141, +114,204, 5,186,153, 76, 15,144,146, 44,192,199, 88,158,169,139,236,182, 91,116,134, 97,181,194,185, 1,157, 18,109,130, 93,112, + 36, 81,100,115,187,156, 80,185,104, 40, 99, 42, 8, 66,164, 72, 44, 38, 19,126, 23, 2, 62,122,172,182,184, 24,112, 49, 96,132, +228,254,110, 44,208,112,240, 48,248,239,157, 95,244,199, 38, 53, 29,192,228,135, 80,250,161, 51,216,225,143,215,142, 75,122,191, + 24, 14,255,254,251,125, 14, 45, 31,180,185,109,116,133, 53, 3,255,232,191,251,199,124,249,239,254, 56, 66, 10, 54,187, 66, 86, + 27,182, 3,126, 24,201, 72,114, 44,207,217,152,150,174,233, 88,118, 45,243,206, 98,149,162, 81,138,163,185, 65, 74,216,140,137, +139,157, 99,181, 25, 89,173, 70, 46, 87, 27, 46,175,182,172, 47, 55,108,174, 54,184,193,179,189,218,144,114, 68, 91, 73,215,105, +206, 78, 79,233,230, 45,177,118,118, 66, 64, 59,111, 57, 57, 91,114,116,180,164,157,245,204,231,109,153, 26, 12, 1,173, 53, 82, +105, 98, 8, 12,110,192,104, 67, 72,133,149, 47,201,104, 83,102,143, 46, 56,146,143, 8,138, 89, 70, 99, 53, 57,129,181, 13,218, + 74, 36, 26,219,107,132, 79, 56, 37,233,181, 70, 72, 65,240, 48,239, 20, 86,203,234,107, 81,160,206,222, 42,146,144,172,118,129, +227, 70,113,231,236,152,171,144,185,255,238, 91,144, 50,209, 39,146, 16,188,240,242, 93,222,220, 57,222,249,214,183,247,108,233, +143, 4,193,235,125,231, 8,223,223,162,174,171, 4, 72,176,119,239,210, 53,230,178,111,202, 33, 89, 52,172, 7,116, 99, 81,214, + 80, 78,229,224, 53, 77, 37,140, 86,222,134,154,172, 56,217, 67,159,143,114,226, 58, 52, 96,202,249,209, 28,148,235, 51, 81, 62, +136, 2,168,131, 75,132,170,249,217, 15,195,154,178,146,159,174, 61, 33,234, 97,207,164,104,169,123, 37, 86, 71, 52, 59, 43,185, + 24,198,150, 70,168,111,249,212,188, 71,137,204,204, 88, 82,246, 52, 82, 35, 85,226,237,161,100, 93, 20, 31, 12, 15,155, 17,214, + 99,201,143,184,218, 20,121,213,184,171, 69, 63,236,207,227,163, 57, 52, 6,161, 53, 89,107,110,206,102,156,205,110, 16,210,200, +113,115,132,209, 22,169, 5, 51, 93,236,143,159, 59,110, 57,158, 91,140,148, 28,155, 34,101,235,141, 66, 2,214, 8,198,173, 39, +164, 76, 10, 17,191,243,132,237,142, 52, 56,198, 97, 68,134, 88,209, 77,176,179, 35,162,177, 36,219, 32,109,131,182,229,204,110, +109,233,198, 91,107,241,201,151, 44,246,144, 48, 74, 21, 46, 19,144, 66, 32,167, 72, 8,190,102, 71, 21, 62, 66, 8, 1, 41, 36, + 46, 38,100,149, 52,134,156, 80,202,240,218,110, 75,206,133,100, 25, 99,220, 39, 82,198,253, 24, 5, 68, 33, 26,250, 58, 7, 23, +170, 92, 18,109, 83, 81,230,118,127,182,249,176, 39,186,201,138, 22, 73, 91,160,121, 79, 33,197, 37, 15,186, 50,218, 85,157,161, + 79,219, 48,109,235,252,190, 94, 68,115,101,243, 78,113,197, 70,236, 35, 90, 39, 39,184, 84, 77,104,158, 40,116,105,154,229,203, +247, 94, 80, 31,171,168,203, 26, 61,215,232,253, 28,204, 40,140, 49, 44,218, 2,187, 47, 77,143, 39,160,165,194, 5, 71,163, 44, + 46,249, 50, 43,215, 18,153, 18, 67, 10, 52, 74, 32, 16,180,218, 84, 41, 69,177, 50,148,202, 64,215,147,148,169, 4, 69, 65,174, + 10,176,156, 19, 89, 9,156,243, 36, 4,113, 44,249,217, 97,220,161,115, 34,143,174, 4,105, 92,173,200,162,232,209,149, 44, 76, +247, 40,192,202,140,143,153, 4,168, 92,179,215,115, 66, 10, 69, 8, 14, 41, 36, 57, 11, 16,146, 49, 12, 40, 33, 42, 11, 62,178, +114,190,220, 18,165,132,203, 45, 79, 53,128,224, 73,110,111,239, 55,163, 63,156,135, 79, 29,199,244,107,127,208,173, 79,139,225, + 48, 4,230, 3, 47, 10,245,192,189, 38,210, 37,126,227,191,249,175,248,209,159,248, 17, 66,202,108, 54, 35,187,173, 99,125,185, +197, 13, 1, 33, 53,255,226,143,255,128,119,223, 57,231,135, 63,253,105, 22,221,156,190,109, 49, 70, 49,111,123,158,191,187,228, +185,211, 25,173,149,196, 12, 87, 99,145,164, 93, 94, 14,236,134,145,113, 40,196,183, 68, 34,134,140,180,144,146,231,228,228,152, + 91,183, 79, 56,154,247,244,199, 29,179,101, 83, 58,145,197,140,174,181,156, 30,207,120,249,165, 27,116,179,134,101,107, 56, 58, +233, 11, 60,158, 18,253,172,229,232,104,198,209,217, 12, 55,122,198,113,192, 42, 77, 74,169, 92,242, 83,113,170, 75, 33, 21, 84, + 47,103,140,153,149,176, 10,153, 11,226, 36, 20,136,140,115,158,119,222,190,224,237, 55,222,229,106, 53,224, 83, 38,136,204,209, +172,225,116, 97,136, 49,179,113,153,182,209, 24, 45, 9,185,232,106, 82, 12,156, 44, 13, 74,181,172,119,153,205,230, 28,211, 52, +108,215, 91,186,174,229,243,159,255, 33,254,229, 63,255,221,131, 46,189, 50,119, 77,133,173,229, 65,183,152, 14,224,121,165,190, +255, 69,125,234, 92,197,193,148, 32, 79,197, 91,149,116,191,147,101, 41,242, 70,213,228,190,218,137,231,202,172,159, 58, 41, 57, + 29,176,149,215,225,253, 30,178,140,241,195,179,230,167,162,124, 8,161,127, 80, 81, 79, 15,117,234, 83,246,245,117,114, 76,189, + 68, 60, 28,190, 49,217, 49, 43,246,182,207,141, 41,228, 45,219,195,141, 19, 56, 62, 46, 68, 64, 91,207, 73,219, 66, 95,212, 39, +243,198,114,167,147, 44,148,193,103, 95,145,118,141,206,153, 83, 5,175, 93,108, 97,189, 43,251,107, 51,192,246,162, 64,239,163, +175, 73,145, 60,232,224,135, 42,235, 98,209, 35, 90, 67,163, 45,103,221, 17,173, 50,156,204, 78, 24,220, 64,163, 20,198, 52, 44, +187,150,103,142, 59,218,185,161,183,146,165, 41, 16,247, 92, 74,148, 20, 52,178,176,222,165, 20,236, 86, 14, 23, 60,195,213,134, +205,214, 49,120,199,214,121, 6,169, 25,141,197,156,156,225,108,139,154,117,228,166, 37,117, 22,165, 53,170, 83, 4,169, 42, 87, + 2, 68, 46, 36, 89,109, 4,110, 12,229,222,153, 50, 41, 70,114,202, 40,169, 74,209,206, 16,146, 32, 2,161,252, 69, 66,206,132, + 24,105, 85,203, 16, 35, 89,150,224, 18, 7,133,111, 21, 42,249, 55, 86,168, 61, 76, 5,180,114, 52, 76,253, 51,165,247, 73,103, +162,194,235,218, 20,251,221,209,237, 17,150,237,118,191,246, 38,235, 87,106, 55, 62, 93,152, 51,133,148, 39, 42,193,120, 74, 43, +204,106,210,204,213,200,214,184, 39,203, 77,232,231, 97,163,244,164,208,187,156, 28, 40,167, 53, 28,222, 3,193,127,188,153,186, +168, 80,159, 85,213,160, 62, 35, 91,203,210, 22,155,193,148, 18,141,148,236,188,163,179, 45, 57, 7, 20,162, 24, 20,196,136, 20, + 25,133,192,133,132,210, 26, 89, 18, 1,208, 82,145,149, 70,154, 14, 45, 21,194, 20,232, 93, 40, 81,185, 35, 69,170, 22, 98, 34, +231, 2,153,198,156,241,187, 21,126,181, 34, 12,142,148, 2,140, 59,178, 20, 52, 66,213,247, 81,128, 44,198, 10, 8,139, 34,151, + 46,159,140, 76, 25,169, 21, 49, 59,188, 80,197, 9, 79, 21,205, 37, 66, 16, 83, 36,231,204,214, 7,146,148,120, 41,201,209, 23, +104, 44,135,167,151, 3,156,158,194,225,122, 8, 49, 30,118,233,106, 10, 54,168,238,117, 66, 92, 91,232, 62, 80,196, 15, 97,202, +135,255, 51, 21,110, 55,250,154, 25,255,219,255,227,127,203,103,191,244, 67, 92,173, 71, 54,235,129,213,197,154,148, 5, 74, 42, + 84,107,144, 82,240,202,157, 23,249,230,171,175,146,183,129,231,238,222, 45,145,186, 73,208, 26,195,209,204,160, 43,187,125,187, +243,108,182, 35,187,109, 96,179,219,177, 93, 13,108,215, 35,227,206, 21,196, 71,102,194,224,153, 45,123,218,206,210,116, 37, 41, + 74, 27, 69,215,106,150, 71, 29, 71,203,134,227,147,142,211,101, 87,235, 76, 70, 40, 65,219,232,107,216,207,206, 12,183,110,204, +217,236, 28,141, 53,164, 24, 73, 89, 16,146, 39, 71,129, 79, 1,171,245,181,242, 65, 43, 69, 22, 1,173, 5,198, 42,114, 76,172, + 55, 87,188,251,246, 61,190,249,173,111,241,246,189,123,228,112,194, 91,239,188,197,159,126,237,235,188,253,250, 57,175,223,119, +108,178, 36,250,132,209, 2, 45, 4,179, 70,145,144,164, 44, 88,111,182, 40, 45,240, 94,208,205,122,238,223,187,143, 54, 6,101, + 20,155,213,142,211,103,142,249,161, 31,253, 2,127,244,127,253, 43,246,246,177,178, 22,109,189,191,249,139,135,138,247,148, 8, +246,253,236,210,101, 13,114,158, 12,105,186,166, 88,155,202, 50,234, 98, 57, 43,135,175,150, 48, 4,104,106,252,100,161, 32,215, +206,190,126,142, 48,148,143,203, 31,115,246, 56, 17,133,166, 3, 46,231,247,118,237,239,167, 48,121, 95,248,253, 96, 46,254, 65, +170,148,154, 33,129,109,144,207,222,166,187,115, 27,223, 26,154,231,239,194,209, 17,185,179,176, 92,148, 75, 75,219, 86, 8,190, +224,218,109,163,184, 99, 13, 89,148,144,148,153,180,196,228,232,114,102,244, 35,223,121,103, 5,235, 45,172,214, 69,165, 50,214, +174,157, 15,136, 59,158,183,112, 60, 3,173, 17, 89, 48, 95, 44, 48, 18,230,166,167, 51, 22,171, 91,250,166,101,222,180,156, 29, +181, 52,109,153,165,207, 91, 93,117,233, 25, 35, 36,173, 46,170,141, 20, 34, 97,240,116, 22,214,219,200,102, 53,176, 14,130,181, +208,140,237,130,173, 49,168,126, 78,104, 90,152,207, 8,214,208,245,229,188,110,122,139,208, 6,137, 2,161, 11, 74, 39, 36,126, +140, 68, 23,145, 58, 17,171,127,134,172,218,251, 12,136, 84, 26,174,152,203, 94,156,124, 66,114,245, 24,145, 90,178,245, 14,159, + 35, 57, 73, 86,222,145,195,193, 37,110, 74, 41,203, 83, 84,111,229,253,200,154,138, 54,249,146,200,122,145, 84, 21,154,207, 19, +131, 93,149, 61,213, 53,251,172,245,201,106, 54,184, 66,138,147,169,102,213,223, 42,163, 14, 83, 59,125, 65,105,114, 69, 40,144, +189,154, 52,241,182, 94, 48,235, 91, 55,233,231,159, 70, 19, 56,201, 74,165,126,176,210, 63,180, 94, 63,222, 76, 61,197,242, 64, +250,190,108,192,166, 72,219,140,144,180, 66, 35,117, 33, 59,204,108, 91,152,199,128, 86,250,186,227,141,117,163,105, 33,200, 34, + 35,181,166, 81,229,176,210, 82,161,108,131,208,117, 6, 83, 97,246,156, 33,107, 73, 16,133,185, 78,206, 36,191, 35, 58,135,173, + 49,151, 54,130,202, 69, 83,169,100,137,122, 53,186, 41, 35, 19, 99,105,148,197, 42, 89,200, 24, 33, 34,201, 36, 37, 25,221,128, +150,138,157, 47,238, 95, 69,108, 86, 72, 30, 84,205,186, 32,179,137,177,248,133, 79,190,240, 62,214,195, 85, 60, 26, 22,252, 94, +100, 78,127, 80,183, 62,253,155, 83,161,158, 76, 60,168,112, 97,245,103,102,116, 15,126, 93,239,215,165,191,223,204,189,126,175, +255,244,127,250,103,124,250,243,159, 96,189, 30, 73, 49,226,199,186, 17,115,198, 13,142,236, 51, 82,106,218,166,229,243,159,126, +133, 23,158,123, 14, 66,145,192, 44, 22, 45,199, 39, 61,189, 53, 37,216,200, 71, 46, 86,158,213,214,115,181, 29,217,108, 11,219, +118,216,248, 98,235, 43, 50, 74, 26,186,182, 65, 73,141,109, 53,243, 69,135,212, 69, 54, 54,235, 44,243, 70,179,104, 45,173,214, + 88,163,144,162, 16,216,250,198, 96,132,160,107, 45, 93,163,177, 82, 18, 98, 98,183,246, 88, 93,180,180, 41, 70, 82,200, 37,164, + 66, 89,150,139, 14, 55, 56,208,138, 93,220,210, 74,193, 56,236,248,235, 55,223,224, 27,175,189,137,115,130, 69,119, 74,202,146, +174,189,205,167,190,248, 57,140,232,145, 33, 51,140, 27,190,246,221,111,242,187,127,242, 85,126,255,207,254,156,215,190,253, 6, +139,155, 55,121,246,230,172,192,138, 62, 17,114, 96,240,137,243, 33,112,121,190, 41,132, 66,183, 37,230,178,158,118, 59,199,237, + 23,111, 50, 34,248,238, 95,252,101, 41,228, 90, 87,139, 74, 14, 32,121,177, 55, 47,250,155,122, 77,136, 65,174,157,205,209,178, +204, 43,115,101, 15, 55, 13,180,245, 18, 98,106, 71, 62,133, 8, 81,101, 94,162, 30,176, 57,215, 61,149,246,100,177,143,178,111, + 30, 62,224,166, 78, 61, 61,162,160, 95,255, 61,249,232,207,251,190,204,119, 3,243, 99,110,188,242, 9,126,248,246, 29,190,253, +181,191, 68,157, 29, 97,206,110,115, 98, 12, 27,219,151,238,124, 54, 47, 5,162,105,234,104, 66, 50,102,193, 12, 74,151,156, 18, +131, 27,145, 49,114,127,183,225,254,118,203,187,111, 92,130, 91,151, 46, 48,184, 71,191,183,198, 22,248,184,235,160,179, 8,171, +104,141,229, 70,183,224,164, 91,128, 16, 44,154,158,152, 50,243,217,156, 89,103, 48,189,229,120,102,174, 57,138,157, 81,104, 45, +208, 82, 48,207,165, 46,249, 16, 89,173, 3,110, 72, 92, 37, 73,150,134,119,101,135, 71, 34,186, 35,180,106, 80,182,193,152, 6, +219,245, 88,163,176,189, 98,244,133, 79, 33,148, 98, 76, 25,159, 5, 57, 39, 92,134,232,227, 53, 7, 69,146, 10, 89,174, 18, 34, +179, 20, 72, 41,138, 71, 72, 44,235, 33,231, 72,111, 90, 20, 10,153, 18, 46,197,194,127, 9,129,148, 51,126,234,188, 75,128, 67, + 69,125,234,154, 17,236,139,182,210,101, 77,181,213, 57,179,179,229,158, 28,235,154,149,170, 20,126,165, 10,107, 94,202, 2, 3, + 52, 85,195,158, 37,184,109,121,198,119,110,208,156, 29,163,250,134, 72, 53,230, 26,134,253, 40,114, 28, 10,223, 44, 85, 19,175, + 92,247,166,148,251, 11,166, 60,224,155, 60, 41,178,251,136, 46,253,227, 23,245,105,227,236,226,245, 77, 56, 91,195, 38, 68, 78, +251, 89, 97,192, 43,137,150, 26,159, 3,173,178,236,130, 43,146, 77, 33,137,169, 20, 0, 45, 96,222, 90,178,200,104,101, 48,218, +146, 84, 49,143,209,182, 33, 27,133, 20, 5, 34, 79, 90,144,124, 42,186,116, 9,195,232, 72, 34,209,110, 86,140,163,195, 8,129, +161, 28,204,198, 40,230, 82,146,234,173, 75, 26, 75,175, 13, 66,168, 66, 48,205, 25,165, 37,129,196, 38, 4, 58,165,217,166, 29, + 99, 40,183,185,109, 8,200, 20,113,201,177, 75,197,168, 38,196, 64,204,137,171,177,134, 11,140,190,220, 0,121,136, 96,118, 88, +200, 31,158,121,124,148,228,166,199,133,225, 15,217,235,135,240,250,196, 70, 57,212,211, 78, 48,210,225, 60,253,240,224,123,224, +123, 50,176,163, 0, 0, 32, 0, 73, 68, 65, 84,115,164,189,222, 83, 38,248,220, 23,249,103,255,253, 63,225,211,159,121,158,221, + 24, 73, 49,177,219, 56,164,148,104,173, 8, 46,224, 6,143,214,154,228, 19, 90, 27,218,166,132,237,100, 47, 88, 44, 91,238,156, +206, 57,154,183,180, 86,147, 82,102,179,173, 5,125, 28,217,237, 60,209, 21,166,188,146, 18,221, 72,154,214,150,204,230,222,114, +122, 54,199, 52,134,174,211,116,173, 98,217, 55,180, 70, 23,251, 86,171, 80,170,216, 65, 42, 41, 74,144,146, 16, 52, 74,161,180, +160,109,202,218, 72,128,214,138,221,232,203,104, 50,102, 98,246,164,144,241, 62,150, 28,247, 52,178,176, 13,243,126,198,253,213, +134,251,235,129,147,238, 22,183, 78,239,114, 60, 63, 99, 27, 50,175,159,191,198,215,223,254,255,184,120,253, 93,222,125,247, 91, + 52,218,224,162,103,227,182,133,212,233, 19,111, 93,173,184,247,250,134,175,191, 49,114, 30,203,220,178,213,162,192,156, 72, 98, + 18,196, 44,216, 92, 92,177,186, 56, 39,231,116,205,156,127,229, 51, 47,243,175,254,197,239,213, 53, 38,139,215,192,195,228,185, +148,254,102,139,186,148, 92, 7, 14, 40,138, 76,200,214, 20, 55,226, 30,134, 55,166,116,234,145,194, 70, 86,213,152,101,242,224, + 14,110,111,179, 58,249, 55,124, 20,168,242,208,233,112, 26, 33, 61, 60, 83,127,148, 3,226, 7, 21,246,135, 47, 2,147,243, 91, +215,193,236, 4, 94,121,158,159,121,238,121,250,254, 6,183, 94,254, 52,179,179, 51,190,112,242, 28,255, 38, 9,100, 63, 47, 35, + 60,211, 66,183, 4,219,178,180, 13,163,105,120, 70, 41,206,133,228,118,142,136,228,233, 1,233, 70, 24, 29,127,248,237,243, 82, +208,183, 97, 63, 51,127,228, 25, 44, 96, 62, 43,207, 91, 73,116,215,209, 41, 77,171, 13,141,180,204,236, 2,165, 36, 77,219, 50, +239,123,148, 81,180,141,166,239, 53, 86, 23,189,122, 57, 11, 4,115, 9,207, 14,130,185,147,156,135,192,189,181,227,124,204,140, + 89,178,217, 70, 92,130, 17,129,145, 2,221, 25,154,121,135, 54,154,153, 81, 72, 83,116,226,178,178,177, 99, 76, 24,163,113, 57, + 19, 82, 38,250,226,200, 72,206,252,255,196,189,105,143,100, 89,122,223,247, 59,219,221, 34, 34, 35,183, 90,123,157,238,153,238, +153,158,149,228,144,179,144,166,104,120,100,137,180, 32,201,162, 12,193,134, 97, 24,134, 13, 88,111,253, 9,244, 73,252,206, 48, +224, 55,130, 0, 3,150, 44,195, 16, 8,129, 34, 9,209,195,197,163, 25,206,210, 51,189, 86, 87, 85, 86, 85,102, 70,196, 93,206, +234, 23,231,220,140,172,154,154,149, 51,102, 2,133,206,174,206,234,138,136,123,239,121,158,231,255,252,151,228, 35, 9, 89, 12, +110, 60, 41, 41,164,150, 8,161, 80, 36, 98,146,196, 20,209, 82,150, 59, 39,226,136,136, 40,217, 20, 82,154, 75,146, 84,242, 24, + 50, 99,189, 92,239,144,178, 27,206,140, 28,201,217,174,178,236,186, 67, 89,205, 76,229, 62,104,171,178, 35,175,138, 29,111,217, +191, 27, 85,238, 99, 83, 28,232,138,163, 92,101, 8, 77, 69, 24,166, 76, 92,156,166,108,208,100, 10,212, 95,215,121,143,222,180, + 89,233,160, 18, 52,203,146, 98, 90,216,244,198,228, 95, 84,217,159,225,106,199,254, 51,162,107, 79,153, 64,205, 60,167, 37,167, +191,245, 25,250,119,238,253,156, 69, 61,148,142,218,134, 43,198,173,234, 26, 98,140,172,234, 38,239, 37, 83, 96, 97, 58,156,183, +153, 9, 95,170,137, 86, 57,142, 47, 23,118,141,198,160,181, 34,206,246,130,166, 34,136, 12,125,250,148,167,233,148, 98,182,116, + 77, 96,221,148,189,159, 99, 68, 90, 71,155, 66,209, 3, 43,144,217, 0, 36, 20,153, 81, 43, 21,149,169,152,164,192,200, 60,249, + 67, 98, 12, 62,243, 96,100,162,119, 3, 83, 76,196, 24,153, 98, 32,132,132,141,150, 62, 70, 76,138, 76,209, 51,134,192, 16, 2, +202, 72,236, 80,144,138, 84,178,117, 67,202,123,173,217, 60,227,122,227,243, 60,210,206,143, 43,236,241,175, 49, 49,137,178,195, +153, 95,135,247, 69,255,250,188,235, 23,159, 62,208,174, 31,124,115,131,162,203,205, 92,138,124,247, 27,191,206, 63,253,253,223, +229,213, 87,110,176,157, 44,206,102, 66,141,181, 33,155,196,184,128, 27, 61,206,122,188,139,153,232, 41, 43,110,223, 62, 98,217, +214,220, 57, 57,224, 83, 47, 31,113,247,176, 99,213, 86, 24, 35,241, 46,107,206,123,231,217,246, 19,211,224, 8, 4,170, 90,114, +124,208,113,120,188,100,213, 54,180,139,154,170,169, 88, 46, 27,218, 54,103,149, 47,154,108, 65, 89, 75, 73, 91,101, 98,150, 20, +100,199, 58,178, 44,199,199,116,245,207,148, 18, 74, 73, 92,202,122,220, 36, 4, 55,110, 46,104,186,134, 36, 53,253, 48,224,220, +136,212,146,187,119, 94,198,232, 21, 62,118,172,218, 99, 22,102,137,199,210, 79,151,188,247,248, 61,254,223,143,126,192,187,247, + 31,209, 15, 35,247,238,221,227,131,113,203, 73, 91,113,105,123, 98,176, 24, 41,176, 62,112,208,180, 28, 47,150,132,221,200,238, +177,231,157,119, 31,240,120, 28,240, 94,224, 37, 56, 23, 48, 90,242,240,163,135, 36,161,184,127,118,159,182,174,112,253, 68,187, +236, 88,159, 28,243,221,111,253,160,200,111, 74,150,121,186,122,170, 51,145,231,111,226,235, 11,159,132,143,206,246, 89,213, 93, + 57,184,116,225, 91,164,184, 55,174,145,101,234,105,230,103,164,202,174,134, 37,116,228,106, 29,180,219,100,114,211,245,103, 67, + 21, 11, 86,165,139,135,118,120, 26,141,146,215,166, 21,249, 12,249,109, 46,242,215, 73,162,215, 81,172,231,173,170, 4,249,253, +164,107, 13,133,169,242,158,188,238,224,228, 24, 78,143, 57, 61,121,129,170, 94,160,214, 71, 44,186, 53,178, 90, 50, 24,195, 74, + 26, 30, 8, 9,205,138,165,174,248,120,189,224,139,221,146, 94,213,124,177,169, 9,186,230,213, 74,209,187,145,102,154, 16,253, +200, 69, 63, 18,156,229,221,179,199,185,160,255,180,150,193, 85, 38, 41,179,168, 65,231,251,249,184,109, 57, 48, 45,135,221, 10, +173, 53,181,106,105,154, 6,105, 26,132,145, 28, 29, 54,212, 38,123, 64, 84,149,196,250, 64, 83, 41, 54, 54,176, 35,112,223, 89, + 30, 91, 71,232, 35,155, 33, 48,133,196,214,131,143,129,160, 52,149,150,212,117, 69, 85, 86, 83,149,206, 69, 84, 75,208, 85,222, + 97, 71, 37, 81, 41, 18, 18,244, 54,159,179,169,164, 60, 75, 41,179,147,238, 24,144, 74, 35, 34, 8,153,175,107, 76, 16, 9,120, + 60, 85,146,196, 96, 73, 34, 19,172, 31,185, 33,155, 28,134,148, 67,107, 36, 56,239,247, 92,142,124,216,228,243, 42,196, 61, 12, + 62, 35, 90, 41,229, 34, 77,218,123, 31,204, 16,126, 73,176,203,135, 74, 93,172, 96,155,252,123,166,202,223,155, 18, 29,237, 3, + 60,217,230,130,158,128,182,219, 19, 73,108,145,216,205, 8,147,174,243,253, 28,108, 81,166, 20,117,138, 44,197, 61,149,220,148, +168,178,244, 45,253, 53,247,237,193,210, 47,187,172,144,224,231,141, 94,245, 62,239, 22,188,133,113, 36,132, 37, 65, 64,239, 28, +139,170, 34,132,132, 19, 19, 66,234,171,152, 86, 23, 60,157,174,217, 57, 87,194, 95,242,244, 24, 72, 40, 41,137,192, 32, 2,141, + 82, 76, 50, 91,181,202, 36,136, 66, 34, 69,200, 77,127, 83,227,167,128, 84,134,169,105, 88, 41,137, 68, 96,129, 6,129, 39, 17, +241,212, 42,199, 52, 70, 60,141,212,108,253, 72, 74, 25,206,247, 5, 98,151, 82, 93,173,248, 34,137,232, 92,113,226,206,222,238, + 54,134,210, 0, 10, 90, 45,217,217, 80,172, 93, 21, 76,133,120,209,212,121, 10,121, 38,132,226, 41,232,123, 46,164,115,218,217, + 47,210,204,255,250, 62,252,122, 99,161,245, 62,160, 0,160, 57,129,221,195,189,139,157, 46,176,174, 44, 7,153,245, 79,191,174, + 57, 20,102,178,168, 47,126,145,255,241, 31,255, 46,183,110, 29,211, 91,135, 31, 61,206, 39,198,126,194,109, 39,188,145, 89, 87, +238, 28,166,174,233,218,142,174,109,185,113,178,230,112,209,112,220, 54, 28, 30,212, 84,198,224, 17,232, 4, 33,228, 6,175,173, + 53,245,168, 88, 24, 67,106, 34, 82, 24,186, 78,113,184,108, 56,232, 42,170, 42,223, 23,143,183, 83, 38,186, 10,129, 79, 9, 37, +196, 21,225, 73, 37, 24, 93,196,151, 38, 42,164,132, 15, 57,128, 66,144,208, 10, 34, 57, 37,106, 33, 12, 34,102, 78, 7, 73,178, + 88,100,120,116,220, 14,128,160, 94,156,114,121, 25,248,193,135,223,195, 37, 79,171, 12, 67,152, 24,253,196,197, 48, 50, 78,150, +139,209, 33,107,145,107,234,144, 96, 51,240,199, 37,142,164,171, 37,175, 30, 30,210,153,200,163,161,231,160,223,112, 99,169,177, +253,134, 16, 3, 15, 63,122,159,147,211,155, 44,215, 45, 71, 39, 43,142,150, 53,175,189,241, 49,254,236, 79,191,206,217,118,160, + 86,231,172,143, 15,120,116,239, 33, 47,188,246, 42, 44, 86,215,238,169, 6,252,144, 15, 16,255, 55,167,190,248,242,107,111,242, + 71,147,135,239,191, 95,228, 69,213,158,112, 38,202,247,190,248,197,171,178, 95, 79,117, 46,186,253, 46, 79,188,233,218, 1,182, +155,138,186, 34, 62, 69,144, 71,181, 80,207,200, 82,202,223,135,248,195, 58,243,164,159,150,246,120,255,252,103,172, 42,191,231, +125,222,253,247,219, 60, 81,167,107,140,104,231,243,239, 25,153,247,169, 55,215,121, 71,174,117,126,214, 23,199,124,242,228, 22, +232, 5, 13,138,164, 36, 71,109, 67,116,142,229,201, 9, 63,216,238,192, 77,156, 52, 29,199, 4, 30,122,248,213,229,154, 71,231, +231,188,209, 5,166,237, 19,190,149, 22,156,125,244, 4, 30,220,135,116, 93, 30,251, 51,156, 9,215, 87, 14,149,161,110,115,147, + 84,107,197,110, 26,169, 85,139,234,114, 51, 99, 67,160,211, 13,227, 20,193, 68, 78, 90,201,118, 8, 44, 59,205,217,214, 34, 36, +156, 91,143,177,158,225,194, 33, 82, 34,197,136,221,141,224, 5, 3,130, 86, 37,164, 49,180, 2,164, 20,200, 20,144, 8,132,203, +164, 82, 69, 64, 36,129, 10,185,216,134,148,168, 67,246,114, 8, 33,103,174, 11,153, 16, 73, 99,234,116, 69,171,240,110,142,185, + 78,153,199, 18, 21, 99, 24, 73, 72, 70, 63,224, 98, 66,167,196, 24, 2, 74, 64,171, 5, 27, 79,153,112,109,201, 97,151,215,140, +104, 10, 33, 83,139,189, 98,231,202,122, 88,194, 82, 61, 93,195, 18, 48, 21,109,250, 52, 27, 21,201,226,156, 90,238, 23, 89, 84, + 28,222,103,196,102,188, 78,208, 44, 50,205,249,114,212, 42,163, 83, 83,202,223, 55,203,226,102,167,247,168,130, 20, 16,171, 60, + 20,155,194, 9,208, 99,110, 22,254, 58,233,109,223,248,222, 95, 3,126,191,186,177, 34, 56,145, 59,117,109,168,171, 42, 59,168, +198, 72, 91, 25, 34,146, 74,202,236,170, 21, 34,181,174,112,193,210,152, 6, 37, 36,149,210, 24,153, 77,238, 43, 93,161,234,138, +170,174, 89, 29,174,243,218,195, 39, 98, 97, 54,134,152,163, 6,133,200,123, 32, 59,246, 28,232, 12,185, 10, 37,105,141, 38,200, +108, 21,216,153,154,136, 32,170,132, 84, 21, 3,145,182,105,114, 20, 38, 17, 97, 20, 46,192, 24, 29,117,221,112, 49, 58,108, 74, +136, 18,152,224,163, 39, 10,193, 24, 61, 62, 5, 42, 45, 56,159, 60,131,143, 25, 90,179,182, 72, 24, 10, 67, 86,215,249,230, 8, +101, 92, 84,197,107, 93,170, 61, 17, 67,166,253, 77, 38,197, 47,198,126,243, 58, 35,247,106,234, 41, 30,217,215, 39, 16, 31,224, +181,151,242,129,187,219,236,225,160, 84, 8,116,149,218, 19,152,230, 73,198, 21, 93,250, 39, 63,203,255,244,223,252,125,222,120, +229, 22,219,201,114,254,100,199,102, 51,144, 98, 66, 8,129,115,142,177,183,217,117,202, 71,218,166,227,244,198, 33, 55,142, 15, +184,181, 94,210, 40,157,225,240, 36, 24, 93, 98,103, 35,151,147,103,231, 60,155,237,196,102,176,236,172, 99,176,158,182, 82, 44, + 91, 67,215, 24, 26,147,239,157, 32, 4,181,145,116,181, 46,171, 89, 73,165, 36, 54,228,132,190,209, 7, 6, 31,136, 41, 49,249, +128, 43,228,153, 16, 83,118, 7,140,241, 74, 7, 79,177,165,204,134, 67,130, 85,173,185,232, 39, 36,112,180,108,232, 7,199,135, +247,222,225,223,189,243, 29,222,254,206, 7,220,127,231, 17, 31,220, 59,227,254, 59,143,120,244,131, 75,118,214,194,162,202, 16, +163,214,220, 94,118,156,222, 58, 64,174, 27,218,198,208,214, 13,151, 59,203,165,155,232, 83,226,114,178, 36, 2,147, 79, 52,166, +102,189, 62,101,177, 56, 98,185, 62,166, 58, 48,216,205,150,203,161,231,248,112,193,119,223,126,143,203,113,224,201, 56,176, 50, + 21, 70,107,218,174, 69, 25,248,224,131,179, 61,180, 28, 67,201,154,254,155,131,221,223,255,230, 95,101, 8, 82, 74,168,219, 92, + 89,175,152,227, 51,251,188,192,163,243,228,110,195,222,174,184,183, 25,134,119,236, 11, 90,138, 79,195,144, 66, 67, 91,158,157, +217,172,230, 89,119,184,121, 26,191,126, 30, 81,154, 3,127,173,248, 95, 73,151,100, 49, 39,161, 48,239,175,165,104,205,251,233, +122,149, 15,244,155,167,121,242, 58, 88,102, 79,246,118,149, 27,172,170,229,172, 90,240,198,106, 9, 70,163,144, 44, 5,168,174, +163, 50,146,203, 32,120,189,169,121,185,170,145,149,161,209,146, 49,192,205,197, 18, 45, 35, 74,213,220,172, 4,223,189,236,225, +252, 73,246,188,248, 73,123,252,231,125,117,217,205,147, 85, 11, 50,187, 23,118,218,100,166,123,179, 96,217,174, 80, 73, 97,234, + 26, 83,213,200, 90, 99,165, 36, 10,208,181, 34,144, 56, 27, 61,187,152,120,188,177, 52, 41,209,111, 39,130, 13, 92,156, 79,108, +138,137,147, 19, 49,135,170, 72, 56,212, 25,186, 87,228,218,134,183,172, 42,197,146,132,140,129,198, 36, 42,153, 57, 77,102, 12, + 44,140,192, 91,207,218, 72,140,204,126,244, 46, 38, 82,113,105, 75, 82, 96, 93, 86,184,120,103,145,210, 96,157,103, 8, 14, 65, +192, 71, 65,239, 7,124,153,166, 67, 74,140, 49,146, 82, 96,154,121, 65, 41,238, 67, 88,162,216,187, 18,218,130,166, 94, 31,172, +164,200,133, 54,201, 61, 50, 35,196, 30, 66,215,229, 92, 60, 92,228, 34,188, 94,228,169,186, 42, 1, 71, 77,125,205, 57, 80, 21, +179,174,148,163,185, 21,249,254, 81,229, 44,174,212,254, 60,158, 37,117,179,151, 68, 44, 36,202,170,202,175,111,190,150,166,161, +200,180,184, 10,181,255,105,214,182,207,221,228,206,190,180, 63,235,244,232,201,147,235,110,128,101,203,229, 56,209, 30, 24, 42, +173,242,123,149,121, 63,168, 0,173,178, 25,141, 86, 57,212, 66,154, 12,135, 68, 45, 89, 84, 13,222, 7, 24, 28, 71,235, 99, 98, + 76,180,117,205,214, 57, 68, 76,184,204,130, 64,106,133, 74, 16,123,203,186,233, 16,222, 33,149,166,149,217,112,163,142,142, 24, +115, 39, 86,215,154,201, 58, 60,176,208, 21,131,155, 64,231,189,102,239, 61, 19,160,117, 69, 31, 28,117,101,114,224,142,130,138, +132, 77, 33,195, 59, 17,140, 20,220,223, 77, 88,145, 88, 24,197,165,115,249,144,153,161,207,182,202,147,122,219,230,110,203,150, +174,173,160, 19,121,210,136, 57,179,215,164,189, 46,242, 23, 57,173,135, 31,227,152, 53,119,126,223,252, 22,212, 39,251,191, 55, + 20,226, 82,163,242,158, 73,213, 48,110,246,211, 79, 57, 52,255,251,255,252,107,124,226,213,219,124,244,232,156,243, 39, 3,227, +182,207,131,208,177,161, 63,223, 33,165,202, 82, 63, 64,169, 26,169, 53, 70, 27,214,109,131,136, 2, 76,158, 94,165,132,193,123, + 70,159, 3, 93,166, 41,224,188,203, 73,107, 62,178,106, 20,181,150, 24,149, 53,232,181,150, 4,159,211,247,124, 72, 87,207,164, +245, 1,169,100,182,246, 77, 17,231,178,193,140, 81,130, 90,102,235,225,193,103, 21,195,186, 49, 28,215,154, 39,222,161,162, 34, +164, 64,165, 20, 19, 2, 37, 35, 86, 36,162, 11,124,244,254, 19,222,122,233, 6,127,231, 87, 63,206, 7,175,221,225,243, 79,182, +108,207, 30,115,113,255, 62,255,230,222, 67,238, 95,236, 56, 62, 88,178,179, 83, 38,118, 93,244, 88,229,168, 94, 61,226,245,211, + 23, 0,201,232,122,142,154, 53,143,250,115,222,125,242, 17, 99,244,220, 89, 31,113,227,224,148, 23,143, 95,193, 52, 10,161, 36, + 93,183,128,148,208,169,195,138,158, 39, 31,124,200, 52, 90, 72,146,117,211,241,157, 71, 15,217,244, 59,186,229,130,113, 24,120, +235,205,143,243,199,127,244,151,133,195, 49, 75,169,228, 47, 75,163,246,156, 7, 92, 63,127,130,156,119,132,215,115,170,159, 82, +200,148,189,162,223,150,201,153, 12, 47, 87,250, 26, 23, 32,238, 51,218,159,125, 22, 26,253,244, 68, 42,126, 12, 74,117,253,229, + 94,127,173,243,189,174,100,137,227,140,251, 2,110,231,169,188, 20,253,102,193,167, 94, 57,229,155,125,226,173,227, 37,255, 97, +112,249, 16,215, 69,117, 80,215,249,185,111, 50,114,178,113,150,163,102,149,225,220,174,206,219,200, 36,249,204, 97, 71,140,137, +206,123,238,133,196, 75, 82,178,213,146,190,223,225,245, 1, 55, 87, 59, 52, 1,150, 7,112,120, 10, 15,166, 61, 82,240,211,126, +205, 70, 61,199,213,158,176, 15,180, 85, 77,165,178,106, 8, 33, 17,117, 13, 70,147, 42, 73, 31, 5,210, 38, 38, 13,187,173, 67, + 40,168, 98, 34,248, 64, 27, 2,143,135, 68,178, 30,119, 49, 50, 77, 14,225, 34,209, 7,164, 15,164, 41,178, 90,106, 84, 72, 24, +160, 85, 18,182, 30,161, 36, 85, 8,212, 74,113,128,160,237, 3,203,166,195, 74,129,104,243, 94, 60, 44, 20,151, 2, 6,159,152, + 72,104,163,216,141, 57,231, 67, 38,143,170, 27,252,118, 3, 66, 50,216,204,169, 48,218,144,130,163,213, 57,207,131,104,233, 84, + 94, 3,100, 87, 76,168,140,193,150,128,159, 43, 25, 89, 44,126,240,243,122,212,152,162, 8, 33,239,219,103, 7,195,186,228, 96, + 84,134, 43, 59, 87, 91,206,194,121,181, 97,212,158, 24,185,217,237, 99,136,107,179, 71,117,148,134,118,158,208,219,114,127,149, +123,202,135,125,202,219,108,136, 51, 27,210, 44,154,253,128,215,150,149,213,193, 34,251,159,136,226, 55,111,251, 34, 1,245,215, +182, 74,254,167, 6,115, 20,159,248,141,127,134,110,138,199,240,207,120,131, 93,193, 27, 2,140, 97, 20,130,163, 98, 25, 27, 82, +162,171,187, 76, 52,148, 25,182, 1,137, 81, 6,231, 45,139,170,197,152, 10,239, 29, 74,107,170,170, 66, 42,153,173, 61, 71,143, +119,129,152, 66,134,232,189,205,126, 3,198, 92, 73,213, 4,130, 78,105, 84,165,104,171,154, 88,188,182,149,202,190,193, 90, 41, +122, 60,190, 50, 56, 41,136, 82,224,203,244, 23,165,194,133, 84, 10,132,194,147, 24, 98, 68, 42, 65, 64, 49, 5, 71, 20, 96, 99, +196,123, 79, 4, 46,103, 59, 65, 55,199,244, 5, 24,124, 62,128, 76, 73, 65,211,114,207,190,212,213, 85,224, 12, 34,128,207,121, +200, 25,134,249, 5,234,220,159,149,160, 93,119,154,131,124,160,165,196,242,139,159,226,205, 79,127,146, 7,223,127,167, 4,107, + 20,214, 39,100,233, 76,244,229,192,200, 13,203, 87,255,209,239,241,197,175,124,150, 39, 23, 59,206, 30, 92, 48,141, 14, 33, 36, +139,163, 37, 82,192, 56, 58,148, 84,153,132, 40, 52,141,233, 88, 45, 23,220, 56, 92,177, 48, 6, 93, 73, 42, 45,179,172,176, 20, +228,201,122, 38,231,121,120, 57, 48, 12,150,144, 34, 93,173, 56, 57,104, 56, 89,214,116,149,166,174,179,129,139, 72, 96, 83, 68, +149,196,189, 90, 41, 92,202, 69, 62,165,132,143,145,169,172, 2,188, 15,153,171, 17, 2, 75,149, 77, 53,106, 9, 71,181, 64, 37, + 65, 91,107,140, 82, 28, 47,170,204, 50,247,217,184,232,171,119,143,185,191,245,124,251,189, 75,234,165,230,159,252,202, 43,188, +113, 99,141, 93,116,220,121,241, 5,110,117,135,252,173, 79,189,206, 73, 85,115,115,209,241,202,225, 1,111,223,127, 12,135, 13, + 55, 15, 14, 89, 54, 71,212,213,146,179,254, 12,235, 39,142, 22,167, 28,117, 71, 88, 59, 32,180,196,166,192,163,221, 37,253,180, +165, 51,154, 16, 18,170,170,105, 79,142, 88,159,172,121,244,209,123,220,127,248,144,179,237, 37,141, 82,216,232, 57,219,141, 28, +183, 53,218,212,172, 78,143, 56,239, 39, 30,199, 2,225, 45,234, 60, 57,110,182,240,242,139,121,215,187,219,254,116,132,178, 89, +226,248, 60,255,105, 93, 12, 83, 84, 93, 10,118,169, 20, 17,126,200,217,238,106,197, 83,149,123, 59, 93, 13,231, 87,171, 32, 81, +216,193,241,218, 58, 71,183, 69,195, 92, 98,140, 99, 40,207,197,143, 32,179, 25, 83,140, 61,194, 62, 6,152,244,252, 41,253, 89, + 7,184,249, 25, 48,229, 92,155, 9,125,130, 12,115,170, 98,164, 21,129,213, 33,191,243,137,187,208, 45,248,212,233, 1,163, 50, +124,108,125,204, 3, 93, 19, 40, 36, 40, 53, 59,226,105,106,165,184, 45, 13,171,186,197,106, 77, 40,159,109, 15, 8, 31,185,211, + 42, 30, 76,129, 35,165,121,140,228, 52, 70, 70,173, 57,145,130, 71,187,137,202, 40,190,179,221, 16,182, 27,112,187, 44, 95,155, +157, 27,137, 63,217, 29, 80,138,252,218,219,114,173,180,166,174, 52, 71, 85,203,141,118, 77, 83,119,232,182, 35,233,138,164,103, + 99, 26,137,175, 52, 91, 31, 25,109, 98, 40,124,150,201, 5,122, 23,176,189,195, 59,207,110,211, 51,238,118,216, 97,196, 13, 3, + 79, 54, 23,248, 48,176, 10,129, 54,122, 26,111,105,132,162,149,130, 54, 37,148, 11,168, 16, 80,253,150,195, 32,104,156,227, 80, + 36, 78,132,164, 78,176,144,146,227,153,188, 22, 18,163,205, 38,100, 81,130, 39, 27,205, 88,114, 38, 67,116, 83, 1, 99, 2,181, +132,173,179,212, 90,161, 99, 65, 85,147, 96, 91, 84, 34, 50, 37,166, 48,171, 38,202,125,161,138,124,208,198,124, 47,135, 82,228, +141,218,123,186,171, 98, 35,107,202,218,104,110, 78,187, 54,159,233,203, 54, 23, 86, 93, 96,117,235, 11,217,173,144,186, 42,185, +135,252, 83,122, 70,217, 81, 10,249,220, 44,198,107,164,198,114, 6,102,120,158,125,112,207, 12,205,147,114, 3,217, 85, 5, 61, + 48, 37,168,166,202,182,236,198,228, 65,108,158,226,141,250,177,104,175,166, 42,111,206,245,249, 65,252, 89,119,235,253,148,223, +100,183, 32,180,145, 39, 67,207,170,110, 88,181, 11,118,211, 68,103, 42, 98, 20,104,165, 8,201,227,130,167, 53, 13,162,216, 8, +106,221, 20, 94, 86, 96,219,111,113, 5, 58, 75, 50, 75, 96, 4, 30, 97, 76,238, 64, 67, 68,104, 67,136, 17, 45, 50, 44, 34,200, + 72,158,150, 58, 55, 19, 37, 3,120, 34, 81, 91,195, 16, 29,178,173,137,147, 39,146, 47,104, 26, 29,168, 72,136, 57, 64, 64,138, + 28, 3, 58,216, 17, 85, 12, 27,130, 29,242,231,111, 42,198,105,204, 55,198,124, 65,231, 32,138,142,253,174,164, 41, 83, 59,177, +200, 27,124,177, 19, 28,179,204, 69,216,125,135,104, 13,248,205, 47,103,224,242,215,118,235,222, 23,147, 5,205,246,235,127,193, + 95,118,119,246, 41,113,179,127, 65,152,181,190,236,157,242, 62,253, 43,124,249,171, 95,100,234, 29,231, 23, 59,236,224,233, 86, + 29,235,227, 5,187,157,205, 58,236,170,152, 5,249, 72,219,180, 28,173, 87, 88,155,216, 92, 58, 90, 93,161,141,206,241,182, 33, + 91, 75,246, 54, 50,249,136,240, 41,155,212,233,226, 52, 72, 34,250,136,151, 34, 39, 74,185, 12,143,139,226,167,158, 27, 68,152, + 98,134,211,189, 15, 76, 33,160,129,187, 11,195,214,121,108, 36,235,210,133,160,174, 36,166, 16, 39,183, 73, 82,213,249,129, 90, + 86,186,168, 51, 20, 42,229,176, 8, 93, 43,190,252,214, 93, 14,239, 58,132,155,248,151,223,251,144, 79,158, 30,178,104, 43,222, +126,239, 33, 7,171,142, 91,199, 45,159,251,204,139,124,233,238, 17, 95,127,255, 17, 31,127,245, 14,127,240,141,111,211, 85,138, +255,240,240,109,110,117,135,108,118,231,180,139, 53,141,214, 28,180, 43,130,219,240,253,199,247,248,246,238, 17,156,245, 48,129, +124,105,205,155,199, 7,188,122,114,151,203,199,231,220,188,123,139,110,125,155, 15,238,127,157,247, 31,111,121, 18, 2, 71,141, +225,184,209,188,254,202, 43,208, 86,188,124,231,136,255,234,239,253,109,198,205, 84,164,179, 9,239, 44,214, 58,126,243,197, 19, +222,221,142,220,187,127,198, 63,255,147, 63,229,251,127,242, 39,207,191, 31,230,201,126,158, 96,174,166, 61,251,244,228, 29,138, + 51, 87, 20,121, 79, 45, 96,191, 64,252, 81, 13,165,223, 67,153,243,200,152,138, 53,177, 42, 15,230,172,170,104,155, 61, 68, 63, +142,123, 39, 48, 51, 51,233,175,161, 87,222,231,226, 43,202, 68,227,226, 30, 77,212,250,153, 41,253, 57, 19,140, 47,137,130,161, +200,157,204,140,104, 85, 64,137,198,140, 64,183,162, 90, 47,104,215,199, 60, 30, 29,147, 94,209,170,136, 87, 45, 7,106,226,108, +102, 67,199, 0,228,102,224,165,234,152,191, 36,241,149,177,199, 87, 29, 15,189,231, 70,157, 21, 54, 46, 6,118,219, 68,155, 18, + 46, 4,150, 62,112, 33, 19, 77,128,247,135,129, 59,109,199,159, 61, 60,195,234,186,228, 41, 52,192,112,109,152,210,123, 53, 65, +224, 71, 35, 37, 77,243, 84, 35,181,214, 53,175, 44,142, 48, 90,211, 45, 14, 80,166,193, 10,137, 23,217, 37, 81,135,128,244,158, +158, 60, 45,214,129,108,186,148, 34,135, 33, 50, 4,136,214,147,236, 68,231, 61,151,155, 39,108,135,145,139, 96, 57, 89, 44, 48, + 65, 98,162, 64, 43,131,242, 19, 76,145, 74,107,100, 74,172, 72, 28,168,154, 62, 76,220,162,166, 9,128,205, 17,184, 49, 36,182, + 41,177, 6,188,148, 96, 2,187, 36,216,246, 57,138,117, 8, 16,165,198,121,176, 73,224,163,133,152,216, 38, 79, 35, 4, 67,136, + 57,249, 48, 72,182,113,226, 88, 73, 30, 90,143, 79,137,202, 40,172,191, 86,216, 92,200, 77,163, 36,103,116,212,234,202, 19, 38, +251,245, 87,153,244,166,203,120,189,185,132,195,155, 87,217, 33,121,184,241,217, 44,104, 94,139, 84,165, 33, 30, 11,241,120,156, +242,223,129,202, 30,244, 70,239,137,199,218,236, 25,237,115, 35, 60, 7, 21,213,106,111, 49, 27, 11,169,180,196,204, 94, 33, 71, +162, 88, 5,207, 16,126,167, 11, 2, 81, 66,106,132, 4,209,149, 84, 66,191,143,149,157,182,207, 41,234,214,230, 23,253,243, 70, +194, 57, 11, 99,121, 80,235,138,209, 84, 32, 39, 26,165,209,166, 33, 4, 79, 83, 53, 56,239,179,109, 32, 1, 37, 4,163,179, 44, +171,150,132,199,135,188, 43, 7,152,220,136, 49, 6, 65, 78,231, 97, 4,161, 36,202,228,110, 44,196, 68,165, 13, 82, 72,100, 74, + 40, 45,208, 90, 34,165, 36, 90, 15, 77,131,176,142,224, 70,236,178, 35, 13, 3,187,209, 83, 53, 21, 97,202, 19,172,212,154,224, + 66,118, 52,210, 26, 3,244,222, 17,230,157,135,169,193,123, 42,149,120, 56,236, 8, 66,130, 42,222,189,182,192, 47, 90,238, 77, +191, 98,249,240, 27,157,247,135, 49,236,147,116,150,139,124, 3,232, 42,103,241,206, 36,167,174,185,150,219,251, 75, 40,236,215, + 39,150,249,151,125,239,233,131, 83,235, 98,252,241, 52,148,249, 15,127,227,147, 28, 28, 46, 24,122, 71, 93, 85,196, 54,210,173, + 26,134, 41,224,125, 32,248,144,161,247, 49, 66,212,144, 36, 77, 91,209,181,154,227,101,199,201,186,161, 49, 10,173, 4,147,143, + 87, 62, 17, 25,164, 72,156,116, 21, 73,102,139,212,186,146, 44,235,236,212, 85, 43,144, 73,226, 93,222,125, 87, 38,179, 94,173, +207,170,133, 90,136,140,150, 26,133, 72,137, 86, 9,142, 27, 73, 31, 2, 62, 9,142, 69,162,145, 32,100,226, 50, 69, 84, 20, 60, +216, 57, 22,149,166, 89, 42,166, 8, 55,187,134, 70, 43,238,157,247, 84,141,226, 83, 55,150,124,226,101, 69,171, 37,223, 61,219, +240,199,223,127, 76,178,137,118,181,200,172,210,193,161,158,244,252,145, 11,156,172, 59,254,233,215,126,141,223,248,220, 39,248, +171, 15, 30,241, 23,127,254,109, 8, 19,127,241,216, 49,212,142,239, 61,252, 30,173, 54, 60,222, 92,112, 62, 76,121,157,211, 25, +208,129,248,120,195, 55, 31, 92,240,225, 75,151,124,246,228, 9, 97,218,112,252,194, 29, 62,241,218,167,249,236, 23, 86, 28, 30, + 53,156, 30, 85,124,236,100,193,113,171,217,218, 64,140, 9,119, 43,175, 9, 14,154,236, 3,177, 48,146,202, 72,158, 12,158, 99, + 27,249,170,150,252,195,127,240,219, 92,140,142, 15,207,123,254,234, 59, 31,242, 7,127,242,111,248,247,255,242, 15,114,241,126, + 22,189,126, 14,124,159,102, 78,198, 83,147, 50,224,126, 68, 81, 9, 49,167,254,173, 86, 87,220,162,252,255,141,249,126,130,167, + 7, 4,235,193,216,130, 94,197, 31,173, 6,185,190,150,250,113,164,161,167, 26,215, 31, 1, 81,207, 68,209,201,150,116,184, 17, +148,205, 16,122, 4,150, 29, 7,183,143,249,220,237, 35, 30, 76,142,182, 91,208, 72,131,174, 26,188,183,188, 46, 91,162,115, 60, + 22, 83,209, 53,231,117,195,247,118,143,249,220,193, 17, 31, 76, 19,157,245, 44,155,134,139,113, 96,170, 42, 86, 36,190,229, 19, +159, 58, 88,224, 67,100,212,138,208,247,244, 68,110, 24,205,187,110,226, 65,242,185,104,175,186, 60, 8,236,158,121, 15,234,153, +141,200,243,222,223,236, 3,128,130,186,227,184, 57, 0,109,232, 86, 39,128,200, 50, 49,165, 24,172,199, 8, 5,109,102,189,143, +206,102,146,127, 37,137, 33,114, 75, 36,250, 0,149,245, 56,159,101,118,143,206,207,168,172,227,124,216,178, 86, 18,101, 61, 85, + 91, 50,215,181, 66,248,136,209,138, 70,105, 90,165,104, 66, 64, 37,201, 43,170, 65,183, 6,233, 50, 87,105, 12,142, 74, 26,150, + 17, 92,217,109, 75,165,176, 9, 14,170,192,189,201, 33,148,100,176, 16,181, 33, 22,215, 60, 27, 71, 26,169,241,193,211,136,188, +130,105,141, 38, 18,217, 13,158,227, 74, 18,167,196,214, 63, 19,128,163, 75,246,192, 44,250,153,175,217,172,106,208, 6,213,182, + 4, 1, 75,221,210,175,142,178,185,213,220,224,166,178, 90,165,104,202,103,253,183, 47, 67,161,243, 57,223,125,178,249,140,191, + 90,125, 62,207,182, 53, 62,237,251, 62,133,189, 74,169, 42, 78,117,117,149,121, 78,211,144, 45,106,131,205,141, 71, 27, 96, 96, +111, 83, 60,199,246,174,171,140,112,205,107,178,177,217,115, 82,226,248,148, 25,154, 34, 30,253, 51,250,221, 47,198, 33, 77, 43, + 44,146,227,197, 65,102, 43,147,117,232, 62, 6,140, 52,132, 20,179,113,143,146,212, 82, 35,148, 68, 11,205,228, 28,198,232,108, + 56, 83,236, 10, 19, 18,235,178, 23,180, 49,249,165, 6, 33,209, 74,162,234,138, 78, 41, 92,136,212,198, 16,139,255,182, 48, 21, + 82, 10,122,159,205, 82,108, 49,213, 87,166,194, 21,178, 84, 10, 41,155, 36,248,108,136, 16, 98, 98, 76,146, 68,196, 9, 65, 31, + 34,194, 71,156,144, 92,122,139, 22, 2, 23,115,246, 58,163, 43, 45,180,156,147, 72,242, 1, 35, 74,182,239, 12,181,248,180,135, +229, 41, 36, 57, 81,172,183,116, 85, 76, 15,202, 69,255, 57,201, 16, 63, 53, 52,255,211,252,251, 51,191,255,247,254,219,127,130, +146, 96, 71, 79, 8,185,184,132, 72,201,176,167,216,233, 10,130,135,186,174, 89,173,150,220, 61, 93,115,178,234, 88, 45, 43,150, + 38,147,106,102,215, 80,151, 34, 33,164,156,167,160, 5,146, 68,163, 20,167,107,195,210,232, 28,211, 56,191,148,144, 81,155, 84, +248, 47,214, 7,100,138,184,152,167,250,144, 2, 33,230, 73, 40,133,200, 50, 6,100, 8, 28,196, 68, 37,160, 18,146,147,148,232, + 98,226, 72, 10,172,200, 83,129, 69, 48,110, 7, 78, 43,195,113, 83, 97, 18,124,235,108,199, 7,151, 35, 8,112, 8, 78, 15, 58, + 94, 59, 93,242, 36, 8, 92, 72,220,190,181, 4, 35,233, 55, 35,110,116, 60,222, 78,216,201, 51, 38,137, 49,134, 95,255,252,107, +188,122,186,166,221, 89,254,175,119, 63,228,163,221,150,147,174,166, 51,154, 86, 27, 86, 90,179, 37,145,106, 69,210, 18,121, 80, +241,249,211, 99, 94,190,121,194,209,141, 5,191,255,183, 94,231, 31,125,233, 99,124,233,205,219,124,254,229, 99, 62,125,123,141, + 20,130,203,193, 35, 82,126,126,124,136,236,172,103, 42,132, 64, 18,152, 74,177,168, 12,125, 16,124,112, 57,161, 82,228,229,211, + 37, 95,184,125,196, 75,119, 14,249,237, 47,126,129,127,252,251,191,199, 43, 47,189,196, 31,254,209,159, 34,144,121,109, 37, 4, + 34,101, 67,165,108, 2,146, 15, 32, 97, 52, 34,169,125,241, 87, 62, 79,217,209, 62,127,143, 61, 75, 38,173,203,208,160,119,123, +226, 82, 74, 48,244,207, 88,179, 22, 34,102,112,123,185,219,117,107,215,249,240,251,113, 30,239,215,139,254,179, 43,166, 31,154, +100,203,142, 83, 25, 56, 88,103,104,179,237,114,228,235,170,205, 59,204, 69, 67,234,106,110, 54, 13, 73,213,188,118,184, 38, 42, + 56,210, 25, 53, 56,172, 5, 15,109,228, 50,133,189,115,153,200,222, 2, 70, 72, 14, 98,162, 14,142, 46, 5,206,172,101,185,125, +140, 53, 21,223,159, 70,118, 33,114, 71, 73, 30,218,137, 35,165,232,157,167,247, 17, 29, 2,223, 24,167,124, 80,251, 30,118,187, +167, 19, 21, 37,251, 40, 80,226, 15, 15, 90,179,202,230,228, 6,172, 22,176, 94,243,194,209, 13,126,227,246,203, 28, 44, 22, 24, + 45,168,181,193,232, 26, 27, 50, 41, 46, 42, 69,240,137, 33, 6,162,148, 52, 82,208, 72,193, 97, 2, 23, 34,235,152,176,131,163, + 38,176, 59,127,130,187,124,130,157, 70,150, 9,218,182,166,105, 90, 58, 93,161,149,196,196, 72, 83, 27,140,128,133,169,232,128, +195,202,176,142, 9, 35, 5,173,148, 57, 72, 70, 10,234,226,190, 39,124,162, 49,138,160, 37, 23, 49,175, 52, 71,153,120,178, 29, +121,224, 3, 59,239,144, 36,164, 80,104, 33,104,116, 3,228,193,109,240, 1, 93,144, 58, 45, 36, 33,228,231,160, 83,154,243, 16, + 8,162, 64,234,161,228, 90, 36,153, 27, 37, 93,200,202,198,228,207,169, 93,242,202,250,152,151,186, 21, 47,214, 75, 94, 90, 30, +176,144,134,186,233,184,156,173,101,227,108,141, 88,216,240,148, 51, 91, 42, 82,140,168, 36,114, 13,152,189,231, 93,185, 47,180, +222,147,159, 37, 92,165, 13,134, 18, 24, 19,194,158, 61,175, 85, 70, 11, 40,171, 31, 63,149, 34, 31, 74,211, 88,254,124, 87, 21, +223, 6,246, 49,217,161,188,174, 57, 77,179,170,246,178, 82,165,158,178, 83,254,249,217,239,207, 22,135,144,242, 94,185,210,236, + 20,116,170,202,122,113, 93,229,240,148, 20,169, 10,116,110,148, 42,102, 5,142, 90,213, 72,149, 39,247,170, 64, 15, 33, 7, 40, +227,124,204, 97, 72, 73,225,139,105, 71,221,154, 43,179,131, 99,173, 24, 10, 6, 85,155, 42,147,169, 82,190,105,119, 62, 32,203, + 14, 61,197,204,160,244, 73, 16, 69, 42,103,135,196,249,128,149,121, 42,180, 41,225, 98, 96,112, 30, 75, 98,112, 19,125,132, 41, + 58, 70,239, 50, 51, 49,206,123, 22,181,183,192,140,215,189,126,227,158,253,152,174, 77, 70, 90,150,255,158,246,123,179,217,210, +112, 14,148,144,242,167,119,210,250, 37,126,125,236,111,255, 14, 95,254,245, 79, 51, 12,150,126,219, 19,124,196, 59, 79,211, 53, + 76,253,196, 52, 58,166,222, 18, 92, 64,146,189, 5,106, 99, 16, 66,178, 90,213,172,155,153, 37, 43, 24,124, 36,146,153,234,110, +138,217, 35, 71,230, 98,127,227,192,208, 26,141, 42,134, 44,145,108, 24,163, 77,182, 87,157, 51, 26,116, 10,248, 24,209, 50, 63, + 15,243, 80, 24, 99, 36,185,192,165,143,120,149, 27,142,205,232, 80, 17, 22, 49, 81,249,192,165, 4, 87, 25,140, 81,168,199, 59, +212,119, 30,243,238,195, 11, 76,163,185,209,182,180, 49,114,239,114,199,251,103, 61, 23, 86,178,168, 20,199,173,225,184, 51,220, + 92,104,188,183, 28,117, 29,186,210,108,206, 7,198, 41,112,255,114,228,209,229,192, 43, 39, 75,188,245,124,250,227,183,248,237, +207,189, 14, 23, 3,255,254,175, 62,100,125,208,177, 52, 11, 84,165,105,170,138, 86, 9, 94, 57, 92,242,214,221, 27,252,167, 95, +120,139,255,242,119,191,196, 87,191,240, 26,159,249,248, 29,234, 90, 35,132,160, 15,217,239,122,235, 2, 79,118, 30,239, 35,141, + 81, 28, 52,153, 65, 13,249, 51,234,173, 99,176,142, 16,242,120,172,132,100, 55, 57, 30,238,118,156,237, 34, 85,130,173,141, 56, +239,185,123,208,242, 91,159,127,157,255,225,191,254, 7, 44,239,190,193,191,251,183,255,182, 16,126,179,212, 79, 22, 85,134,136, + 69, 87, 94,210,165,196,204, 36,159,252, 15,155, 39, 92,215,125,167, 82,128, 6,151,155,214,113,147,121, 35,118,122,126,113, 14, + 97, 95,208,231,137,230,138,157,156,246,190, 14, 63,201,231,253,199,253,204,156,123,208,212,124,246,213, 91,180,135, 29, 47,156, + 46,233,186, 10, 86,203,172, 90,146,133,113,108, 12,193, 84, 44, 76,197,171,235, 5, 38, 2,133,215, 96, 68, 86,218,220,159, 70, + 46,230,134,196,185, 2,197,143,172,220, 72, 28,123,130,221,226,135,115,154,221, 57,198, 91,222,187,120,200, 71,214,113, 87, 26, +190, 49,140, 28, 33,121,111,178, 4,239,121, 24, 61,223, 26,122,108,178,121, 42,155,250,204,156, 62,223,101,244,110,126,255,243, + 25, 18,158,137, 70,174,202,100,183, 62,134,163, 31,132,194,155, 0, 0, 32, 0, 73, 68, 65, 84, 53, 28,159, 34,143,110,240,169, +197, 9, 55,186,138,155,221,146, 70, 85, 57,176, 76,230, 97,242,194,122,188,245, 68,153, 93, 50,149,128,133,128, 99,157, 67,173, + 84,200, 94, 19,135, 93,102,162, 55, 49, 51,217, 23,193, 99,140,102,165, 27,142, 23, 11,144,146,101, 33,193, 42, 41,104, 85,141, + 72, 80, 87,146, 42, 65,101, 20, 11,165,145, 90,228, 60, 5, 41, 48,117, 62,247,189, 82,140,165, 65,119, 74,176, 77,137,203,222, + 51,197, 68,111, 45, 65,228,186,161, 5, 68, 12, 40,137,170,107, 66, 18, 40,213, 48,197, 64, 37, 5,131,115, 72,165,168,149,193, + 11, 65, 91,213,212, 85,203, 40, 37,169,169,178,203,105, 93,103, 53,146, 49,176, 62,202,223,183, 75,100,187,226,173,122,193,186, + 94,209,180, 29,219,144, 56,238, 58, 90, 33, 16, 73,112, 25, 10,242, 58,175, 52, 68, 78,118, 76, 49, 92, 5, 11, 45,116,150,194, +202, 20, 73, 59,187, 63,136,230,251, 57,165,125,140, 43,169,144,250,124,174, 15, 59, 91, 92, 61,103,155,103, 81, 86, 87,133,141, +111,228,222, 91,106,230,109, 85, 38, 31,128, 46,236,229,199, 74,229,123,165,106,242,179,217, 84, 25,161,240, 49, 63,123, 34,223, + 51,191,152,162, 62,143, 88, 38, 91,243, 37, 32,181, 21, 62,164, 76,134,210, 85, 94,139, 5, 80, 74,224, 99, 68,146,168,171, 6, + 31,236, 85,252,222,228,125,254, 12,133,192,249,156,195, 27, 72,216, 16,104,170, 66, 34,136, 10,211,106, 22, 8,208, 26,149, 18, + 90,230,110, 41, 1, 21,130, 65,100, 73,205, 38,229, 41, 51, 10,153,181,232, 49,224, 93,204,156, 50, 37, 8, 62, 23,251, 33,120, + 92,202,204,236, 24, 35, 99,132, 62,120,250, 24, 72,200,204,240, 14,190, 4, 8,148, 64, 27, 93,244,145,136,124, 97,230,216,200, +196, 62,141, 71,138,167,243, 37,174, 23,247, 90,229,238,114,198,219,102, 59, 80, 37, 11, 73,162,252,172, 86,191, 56, 9,220, 79, +241,245,123,127,231,107,220,122,241, 6,155,203,158,224, 34,218, 24,172,245, 52,139, 54, 91,194,198,136,148, 26,163,107, 86,171, + 21, 74, 74,218,186, 97,189,236,184,115,210,178, 48, 38,135,163,196,196, 16, 34, 46,101,103,169,152, 50,193,173, 81,130,195,133, +230,164, 53, 40,169,136, 66, 32,149, 40, 9,158,217,182,210, 40, 65,109, 4, 38, 69,142,141, 32,200,132, 8,137, 74, 68, 84, 12, + 57,207, 33, 70,106,239,241,201,179,180,129, 42, 37, 86, 62,178,178,129,122, 10, 36, 45,216, 26,201,129, 79,172,133,196,104,193, +163,221, 64,255,193, 5,239,221, 59,103,221, 26, 94, 92,118,124,108,189,160,157, 50, 81,208, 40,137,140, 5, 1,104, 20,214, 58, + 46,118, 19, 39,109,205, 43, 71, 29,111,127,120,201,232, 2,219,205, 72,229, 28,255,201,167,238,242,189,139,158,155, 55,151,252, +222,151,223,228,226,252,146,127,253,103,239,240,192, 79, 60,217,246,120,225,120,235,206, 11,124,254,179,111,242,213, 47,125,146, + 47,127,238, 85, 78,215, 29, 66,230, 93,231,110,242, 92,236, 60,247, 46, 44,151, 59,203,131,139,137,243,222, 18, 98,160,149,176, + 16, 2,227, 97, 59,121, 54,193,211, 79, 62,251,229, 91,207,163,221,196,102,240,172, 42, 73,140,145,135,155,129,179,222, 49, 89, +135,179, 14,225, 60, 10,201,209,170,227, 51,175,223,229,229, 47,124,133,255,251,255,248,215, 57,175,161, 28, 44,210, 95,147,137, + 69,143, 8,165,224, 56,255,163,221,144,174,242, 2,124, 46,252, 70,102, 8, 81,201, 61,153,237, 39, 17,110,175,249, 84, 92, 65, +168,241,167, 40,234, 63,145,246,155,189,215,213,114,193,209, 65, 75,187,234,184,112, 9,173,107,182, 33, 97,141,202,197,113, 54, +172,215,138,187, 77,197, 82, 27, 42,165, 56, 82,134,148, 34, 75, 89,241,176, 31, 80, 82,241,161,183,249,144,181, 3,244,151,240, +248,156,203,243, 39, 12,110,100,229,123,118,195, 37, 38, 78,124,227,236, 35, 30,110,206, 73,211,192,125, 63,177, 19,130,247,188, +231,108,220,113, 47, 10, 30, 57,139,157,118,197, 83, 98,200,126,226,219,146,190,214,247,123, 9,148, 81,121,106, 83, 69, 69, 80, +155, 44,169,171, 91,184,125, 2,135, 43, 56, 92, 67,183, 34, 9,201,177, 50,124,108,181,200, 86,195, 82, 81, 25,147,215,137,214, +211,187, 28,103,172,188,167, 22,146, 78, 42,150,149, 34,166, 68, 39, 18, 49,101,237,183, 77,145,198,123, 52,130,131, 4,147,115, +172,148,230,176, 91, 16,165,164,107, 27, 84,101,168, 84, 38, 58,107,153,155,111, 33, 4,203,202,228,140,117,173,104,164, 70,182, + 21,210, 40, 82, 37,241, 90, 19, 73,104, 33,184, 0, 54, 36,198, 20,185,191,205, 6, 95, 83,185,222, 14,149, 45, 99, 5, 4,109, +202,252,148, 77,196,162,128,139, 24, 72, 66, 99,147, 66, 74, 69,212, 53,171,170,195, 55, 29, 72,141, 93, 28,146,154, 85, 38,149, +181, 11, 88,173,203,212,190, 0,221,241,114,187,228,160,238,216,121,139, 87,154,133,214, 12, 49,224,131,167, 82,146,179,164,114, + 79, 37,184, 82,103,164, 82,156, 59, 37,145,222, 49,140,142, 3, 2,227,197,112,141, 63,146,246, 5,125,230, 89,205, 77,239, 60, +237, 79, 37, 5,212,239, 19, 8,111,221, 57, 96,183, 29,185, 50,194, 87, 50, 15,139,241, 90,252,175,187,214,252, 94, 95, 51, 24, +189,207, 91,160,112, 96, 22, 93,177,204,205,218,251, 95, 92, 81,191,218,131,101, 61,168, 77,138,182,109,104,141, 97, 8,174,176, +210,179, 49,136, 80, 57,116, 37, 38,143,245, 46,203, 39, 84,254,164,146,144,196,148, 99,247,108, 76,164, 36, 72, 82, 17, 98,202, + 19,161, 84,116, 70,210, 8,129, 12, 1, 76,246,240,110,133, 32, 37,129, 18,137,209, 69,108,138, 36, 31,176,193,102,233, 84,200, + 12, 76, 31, 2,155,209, 34,101, 78,104, 27,125,222, 51,217, 16, 17,161,192, 61,209, 35, 82,214,173,167,232,114,184,203,149,193, +198,124, 65,253,222, 9,104,198,153, 99,186,182,159,190,214,149,137,107,197,125,142,168, 20,229,130,151,192,135,156,223, 91, 96, +200,182, 45, 17,128, 41, 67, 53,146, 31,195,120, 44,196, 12,253,243, 64,248, 58,235,111, 77,115,229,189,253,181,255,226, 63, 67, +104,201,246, 98,160,238, 26,148, 86, 8, 33,177,195,132,115, 33,239,193,155,134,227,163, 53, 70, 85,156, 28,175, 57, 62,104,185, +113,220,114,212, 84,104,157,229, 44, 83,204,122,241,236,230, 38, 48,228,130,189,106, 53,141,201,112,116, 16, 18, 49,127,160, 69, + 2, 74, 74,212, 2, 14, 4, 24, 18, 50, 9, 68, 8,136,224,145, 49,178,142,145,161, 36, 61,109,198,128, 72,145, 49, 6,156,207, + 28,137,218,122, 6, 34,113, 81,243,242, 54,240,250, 31, 93,112,120,182, 99,167, 34, 27,231, 9, 49,114,107,107, 57,254,104,200, + 65, 24,117, 69, 28, 29,195,251, 79,232, 14, 52, 71,171,134,203,126,100,107, 3, 90, 8, 30,109, 50, 83,255,243,183, 14,185, 85, + 73,254,224,155,223, 39, 4,203,189,203, 29, 34, 73,150, 46,241,237,203,158,117, 91,241,198,199, 95,230,226,209, 5,183,151, 43, +222,122,233, 22,191,249, 43,159,230, 63,254,205, 55,249,181, 55, 95,224,230,170,131, 36,152,166, 64, 63, 69,156, 13,140,147, 99, +180,129, 20,178, 83,225, 16, 60,126,242, 56,235, 24,156, 37,216,128,247,158, 71,195,196,229,104, 11, 63, 33,225, 98,164,119,142, + 77,111, 73, 2,148,150, 37,250,118, 71,163,225, 80, 42,154,224,233,148,194, 40,133,208,154,151,111,173,248,242,239,124,149,237, +110,199, 15,190,247, 1,194,231, 92,172,235,155,244, 31,245,253,243, 21, 23,215, 38,240,103, 85, 24, 63, 81, 57,119, 45,128,229, + 42,112, 35,253,252, 50,207,217,202,117,177,128,131, 37, 31,191,177, 36,162, 89, 87,154,182,170,232, 42, 73,139, 68,213,134,157, +115,133,160,151,145, 49,175, 21,183,140,226, 86, 85, 51,248,145, 86,106, 82, 10, 36, 60,223,239, 71,150,227,150,203,190,135,205, + 6, 30,239,224,209, 6, 46, 31,227, 54, 61,103,147,229,113,140,124,184, 27,153, 66, 36, 93,108,243, 52,223,181,123,244,161, 50, +153,103,144,138,202, 68,170,252,188,121, 91,224,221, 25,237,112,208, 28, 66,187,132,163,195,188, 46,168,107, 88,175,243,254,125, +181,200,103, 64,215,128, 94,102, 7, 77,211,240,235, 77,131, 17,137,174,170, 8, 49, 15, 66,186,100,109, 92,140, 19, 38,129, 73, + 17, 35, 4, 77,165, 88,215, 21,150, 68,240,145, 74,148,224,197,157,167,213, 2,124,192, 72,168,124,160,173, 27,124,140, 44, 22, + 11, 26,163, 80,218, 96,140,201, 4, 89, 45,105,140, 42,214,177, 53, 85,211, 32,181,193, 52, 21,178,169, 16,198,100, 8, 92,101, +165,209, 89, 12,184,144,232,173,231,113, 8,236, 92,150, 59, 63,112, 14,139, 32, 9,149,179, 61,100,102,187,123, 33,139,195,181, +160, 23,134, 90, 72, 62,112,158,195,170, 35,153,154, 74, 43,164, 89, 80,235,134,180, 56, 96, 68, 33,164, 38, 84, 93,254,108,139, +179, 31, 72,100,221,240,153,170, 34, 36, 56,104,187, 43, 41,172, 18,130,133,105, 48, 82,224,189, 99, 19, 11,193,115,174,238,222, +194,228,112,211, 68,232, 51,129,111, 58,223,228, 85,211, 60,160,165,107, 3,109,145, 86,103,114,231,108, 21,158,246,202, 13, 55, +101,116,119,242,248, 85,151,249, 72,115,162, 91, 44,240,123,242,123,191, 16,165,158, 94, 73,205, 69,221, 22,146,156, 42,197,104, +134,252,117,169, 3,222,255,130,139,250, 92,204, 38, 11, 50, 49,104,141,151, 2, 31, 66, 86, 10, 72, 67, 72,158,209,251, 60,173, +120, 95, 82,180,114, 34, 90, 18,185,152,251,152,161,216, 84,138,101,144, 32, 16,196, 20,105,180,161, 13, 25, 82,234,148,194, 59, +143, 16,130,152,242, 4,226,125, 44,196, 55,207, 48,141,140, 49,225, 93, 62, 52, 61, 48,186, 9, 37, 2,214,193, 16, 3, 82, 8, +108, 0, 79,160, 18,121,114,151,222,210, 17,209, 8,130,119,212, 9,172,205,136, 66,110, 39, 75,103,230, 66,129,212,195,190,235, +154, 97, 51,113, 45, 88,226,122, 65,159,255, 93,138,124,193,107,185, 15, 25, 80,133,229,232,109,134,142,116,185,168,243,206,164, + 49,207, 88, 10,234,171,154,158, 9, 53,146,159,201,111,182, 91,192,114,149, 15,143,148,192, 77,124,237,247,255, 46,253,206,102, + 21, 64,109,176, 83, 64, 72, 73,240,158,232,114,188,224,173, 27,167, 28, 45, 23, 32, 36,181,210, 28,175, 26,142, 22,217,163, 64, + 75,145, 45,100, 67, 42, 62, 15,146, 74,100, 55,191,202,100,243, 24, 83, 75,100, 97,156,202,236,239,154,247,197, 36, 38,151, 57, + 21,146,132, 73,137,206, 7,142,125, 98, 25, 18,139,201,115, 18, 4, 75, 23,168, 99, 96, 51, 57, 84,130,203,193,131, 11, 12, 17, +132, 79, 28,104,197, 99, 5,175,254,233, 71,164,119, 62, 32, 61,186,100,249,161,101, 57, 70,170, 23, 14,168,180,194,125,240, 17, +219,179,115,158, 92,230, 29,109,244,145,135, 15,119,232,206,224,132,224,114,152, 72, 82,113, 99,221,177,181,158, 15,183, 61,175, + 31, 29,240,205,123, 27, 30, 93, 92,162,128,239,124,248,128, 11,167,121,247,254, 5,231, 54,145,132,224,213, 87,238,240,210, 43, +183,249,213,207,190,202,167, 63,118,147,174,170,152, 92, 96, 24, 3,206,229,149,210,224, 60, 23,125,158,206,157,205, 28,129, 80, +154, 67, 81,228,142,227,232,184,247,100,203,131,221,200,163,126, 98,179,243, 76, 33,100,251,219,152,145, 54,153, 34,206, 5,162, +144,140,219,137,237,110, 96,165, 53,119, 14, 22,172,201,104,198, 52,121, 62, 60,159,184,152, 38, 94,191,181,230,247,127,251,215, +249,222,253, 7,188,253,237,119,178,154,228, 57,178,119,241,203,132,130,174,187,161,205,171,167,249,217,248,121,215, 79, 77,149, +167,178,131,108, 10,115,171,174,185,177,170,168,181,206,121,246, 69, 95, 29, 16, 60,158, 66, 41,232,249,254, 27,164,224, 99,149, +100,231, 29, 85, 76, 12, 33, 16,237,136, 14, 1,227, 7,190,123,185,195, 61,185,132,179,115,216, 60,129, 48,229, 52, 53,173,114, +243, 61, 31,172,162,192,160,155,190,132, 93, 85,249,161, 44,169, 84, 82,107,126,115,177, 98,155, 18, 95,170, 42,156,243, 8,165, +153,250, 77,110,102, 78, 78,120,241,246, 33, 39,183,142,145, 93,205, 96,170, 60,129,181, 85,254,187,148, 44,251,213, 61, 84,155, +164, 66, 41, 56,169, 52, 85,242, 57, 51,193, 77,140, 62,177,115, 3,219,209,103,211, 72,145, 72, 81,176,104,154,220,115,104,129, +141, 89, 11, 48, 12,129,147,165,102,112,145,165,214, 8, 59,161,154, 6, 63, 77, 44,154, 54,123,177, 87, 53, 93,173, 73, 82, 81, + 27,133, 80, 58,171, 91,218, 6,105, 12, 81, 74,218,166, 98,170, 12,162,210,168, 90, 19,106,149,157, 69,203, 78,124, 32, 48, 2, +143,167,137, 9,199,217,148,159, 23, 43, 53,136, 64, 37, 43,134,152,245,239,173, 4, 41, 13,145, 72,171, 20, 59,159, 56, 53,154, + 3,221,208, 72, 69, 83,119, 12, 50,175, 2,164, 54, 28, 40,197, 67, 83,151,122,124,109,178,141,129,207,180, 29, 86, 73, 86, 34, +195,236,139,148,104,234, 58,187,144,138,132, 50, 6, 67,228,195,105, 44,133,215,102, 37,152,117, 89,129,209,143, 48,218, 76, 12, + 29,124, 57,223,217, 75,129,139, 12,143, 68,254,239,178, 52,153,221,236, 47, 47,178,122, 99, 28, 96, 24,192, 91,194, 69,159, 51, + 68, 76,189,223,151,207,158, 10,243,148,159, 10,140, 47,197,222, 6,151, 18,202, 53, 79,234, 85, 65,114,103, 71, 80, 5, 8,245, + 75, 40,234,209, 23,230, 97,222, 27,219,161, 39,182, 13, 90,104,158,216,129, 86,231, 28, 93,102,242, 67,202, 89,233, 46,230,253, +121,150,209,150, 32, 0, 41, 9,178, 28,248, 34,187, 18, 69, 34, 11, 99,184, 41, 5,143, 98,164, 65, 34, 82,202,150,130,228,152, +214,157,181, 88,239,177,206,177,179, 19,194,123,122,239,136, 33, 19,191, 54,118, 32, 18, 11,105, 61, 91, 20,202, 20, 17, 30, 66, +176, 28,214,130,228, 5,135,194,209,137, 72,229, 61,235,152,144,118,202,121, 46,209,102, 70,163, 47,228,136, 57, 96, 32, 81,164, + 10, 51,177, 70,238, 33,120,173,247, 63, 35, 69,134,243,107,147,117,149,226, 26, 4, 32,114, 72, 66,254,115,133, 16, 65,164,132, +126,231, 31,187,154,216,229,190,160, 95, 5,194,252, 12,135,162,187,182,191,219,110, 88,254,230, 87,248,173, 95,253, 20,211, 84, + 26,165, 72, 78,175,139, 9,103, 3,222, 71,186,110,201,205,227, 53,151,151, 3, 50, 9, 42,165, 88,116, 21,149,222, 79, 95,214, +103,216,125, 62,183,179,199,135,162,109,178,212, 76, 23,159, 1,163,115,122, 91, 61,183, 40, 9,132, 72, 84, 36, 84,140, 28, 68, +208, 46,230,136, 99, 23,168,166, 68,114,158,122, 12,172,166,200, 98,242, 76,187, 9, 61, 56, 6,231, 25, 1, 55, 57,110, 28,117, +124,253,157, 71,188,251,253,239,243,231,246,130,182,223,241, 82, 92,113, 28, 87, 28, 76,129,111,159, 63,225,255,217,158,243,225, +176,225,242,114,195, 7, 83,228,206,122,201,147,222, 17,158,244,200, 16,185,148,176,176,158, 79, 28,173, 56,168, 53,105,242,124, +253,124, 71,136,154,203,139, 77,118, 40, 12, 30,107, 61, 47,156,158,114,118,185,161, 94, 53,124,252,238,154, 59,167, 43,214,109, +110,192,108,136, 88, 27,113, 33,146, 68,194, 58,207,118, 59,114,177,181,196, 34,217,105,107,197,232, 34,219, 97, 98, 24, 61, 46, + 70, 38, 27,184,236, 71,250,193, 50,140, 14, 27, 60, 42,102, 88, 82,136, 50, 5,250,148, 85, 28, 49,209,239, 38,166,237,200,170, +173,185,209, 85,244,143,243,251,120,114,185,227, 79,223,190,207,163,135, 27, 38, 41,120,243,238, 17, 95,248,194,103,121,231,236, + 9, 63,248,222,219,136, 57,123, 69,254,255, 80,216,159, 53,140, 17,207,176,238,127,214,194, 62, 79,232,166,206, 26,126,165,161, + 53,220,237,106,148,146, 68, 4, 83,140,217,207, 2, 65,239, 3,103,214,239,137, 76,101,189,117,146, 18,107,145,112,193,179,136, + 14, 25, 61,182,223, 16,237,196, 55, 63,186,128,199,143,114,198,249, 52,238,181,200,170,104,203,231,221,231, 48,230,130,222,111, +178,147, 85, 91,231,102,220, 84,252,206,193, 33,159,172, 58, 34,130,183,180, 66, 39,193,139,109,205,203, 6,206,124,100,168, 5, +111, 28, 29,240,202,241, 33, 90,183, 84,218,240,164,202,137,101, 68,177,255,156,230,231, 95, 23,167, 61, 45, 24, 99,228,118, 76, +172, 68,222,211, 39, 34,163, 29, 56,219, 78, 57, 2,181,236,133,181,202,136,155, 49, 21, 19,226, 42, 64,175,109, 4,155, 62,176, + 48, 18, 93,138,100,180,142,186,174, 8, 74, 32,170, 10, 37, 4, 65,107,164,201, 49,194,149, 81,200, 69,131,172, 12, 65, 27, 82, + 91,227,180,194, 40,137,109, 12, 67,202,205,250,133, 20,108,124,100, 72,145, 71, 62, 49, 88,143, 87,176, 29, 97, 23, 3,151, 66, + 18, 98, 78, 95,211, 66, 80,149,200,237, 24, 19,181, 42,225, 45, 49, 51,172,106, 99,168, 83,162,170, 13,222,122, 78,234,138, 42, +194, 11,181,225, 8,193,155, 50,113, 39, 56, 78,149,100, 45, 5,189,119, 56, 93, 17,195,196, 18, 65, 37, 52,173, 16,140, 34, 81, + 33,139,181,109, 34, 12, 3,223,158,118,244,187,203, 76, 94,180, 54,255, 26,134, 34,207,140,123,185, 89,165,242,112, 61, 7,192, +204, 82,184,201,231, 41,124,217,148, 28, 4,149, 73, 13, 90,149,123, 62,229, 51, 61,204,107,166,144,173,100, 43,246,238,135, 49, +230,154, 50,115, 77,124,220, 35,186, 54, 94, 65,247,121,184, 83,249,204, 15,215,184, 40, 74, 92,237,222,127, 9,147,122,121,129, +174, 64,241,210, 16,140, 98, 23, 45, 70,228,160, 22, 67,246,130, 31,131, 67,201, 66,164, 74, 30, 33,114,196, 94,109, 12,158, 28, +143, 55, 69,135, 20, 2,147,189,152, 56,109, 43,106, 41,217,133,136,241, 33,195,243, 49,129,119,164, 16,233,125,118, 43,147, 68, + 30,122,203,100, 7,156,207,233, 95,147,183, 4, 63,162,133, 96,176, 22,165, 42, 52, 46, 71,112,134,188,244,111,107,133,242,129, + 3,149,243,126,187,224, 57,210,138, 83, 2, 47, 74,201, 82, 6,238,187,140, 44,228, 2, 91,118, 33,178, 92,120,161, 74, 22,178, +216, 67, 52,130, 43,136,249,106, 82,159,245,238,243,142,189, 18,101, 98, 79,217, 34, 51,228,169,248,138, 84, 49,195, 49,110,182, + 69,140,251,162,222,204,122,201, 31, 1, 95, 54,101, 39,167,170,103,124,195, 99,238, 78,167, 1,136,188,240,201, 55,249,213,207, +189,145,185, 5,228,233,220,187,148,239,237,201, 19, 92,228, 96,217, 33,181, 70, 75, 69,215, 85,156, 28,118, 28, 53,154, 69, 49, + 86,240, 62, 50,134,136,247,137, 24, 18,181, 18, 28,180,134, 69,163,203,208,146, 89,234,137, 68, 42, 5, 74, 20, 34,180, 22,130, +138,196, 65, 72, 84, 33, 82,249, 68,116, 30, 19,161,241,137,106,138,132,148, 48, 54, 80, 5,193,194, 69,236,229,128,159, 44,155, +113, 66,251, 64, 60, 90, 48,164,200,159,252,225,215,249,232,222, 35,126, 48,246,124,119,154, 88,250,115, 78, 82, 98,225, 26, 22, +182,231, 27,118,203,219,195,150,209, 59, 90, 37,114,248,207,232, 57,117,137, 35, 99,184,115,216,162,106,201,106,200, 17,195,109, +109,208,222, 99,181,192,138, 6, 59, 12, 60,217,230,164,192,143,127,226, 46,175,188,122,194,205,227, 5,139,218,228, 9, 37, 68, + 38, 23,176, 62,146, 66, 64, 41, 65,112, 41, 31,178, 49,225, 93,206, 60, 88,180,154,182, 49, 89, 46, 84,154, 64,161, 4, 82, 8, +164,204,100, 78,161, 37, 74, 8,142, 14, 91,140,204, 76,246,101, 83,177,236, 12, 74, 72, 46,118,142,237,110, 32, 88,199,199,142, + 86, 52, 66, 50,158,239,104,140,224,219,247, 47,121,251,254, 3,108,121, 61, 30,137,233, 42,190,242,197,207,240,254,163, 39,188, +243,246, 59, 63, 84,208,127,121, 83,250, 51,127,145, 42,178, 80,193,207, 94,216,103,189,122,183,202,240,116, 85, 28,224,148,230, +102, 91,209, 41, 73, 37, 4,145,148, 3,157, 82,226,193,232,185,152, 27,234,170,200,222, 82, 66,198, 68,149, 28,167, 74, 96,199, +137, 46, 38, 6,231,249,223,191,123, 31,206, 31,237,245,199,179,182,127, 38, 23,150,184,103,198, 18,248, 49,108,243,255, 51,148, + 52,186,245, 33,111,173, 79,136,194,240,226,162, 70,167, 72,146,134,166,110, 89,152,196,102,130,117, 85,113, 88, 41,222, 88, 45, + 57,110, 23, 28,106,205, 73,211,112,223, 6,122,202,144, 48, 67,176, 51, 3, 58,132,220, 68, 12, 61,182,239,217,248,158,247, 54, +143, 89,226,120, 50, 90, 54, 46,177, 75, 2, 23,178,140,152, 36,145, 73, 16,164,162, 50, 26, 33, 53, 70, 81,162,172, 5,210, 64, + 35,178, 83,227, 36, 36,161,172,109,186,186, 70,154, 26,154, 26,165, 20, 65, 74,124, 93, 97,171, 12,195, 39,165,241,203, 38,219, + 17, 24,197,164, 21, 35,145, 73, 8, 54, 33, 50, 6,207, 37,137, 15,139,187,231, 35, 18,219, 9, 6, 59,241, 40, 9,100,176,140, + 54,114, 88,235, 98, 50, 37,209, 66,208,201,172, 78, 74, 49,225,129, 70, 40, 86, 82,228,248, 12, 1,134, 44,109,238,164,160, 53, +130, 90, 4,166, 0, 7, 58, 80,197,200,218, 79,220, 82,134,147,232, 89, 0, 55,147,224, 72,100, 23,184,149, 84, 52, 9, 68,242, + 28, 86, 42,167,114,110,206,121, 24, 38,164,247,164,217,131,221, 23,178,104, 40, 59,241,121,205,170,138,110,221, 21, 20,198, 22, +146,105,125, 45, 33,110,142, 37,158, 83,212,196,108, 97,107,138,148, 45,101, 36, 32,165,140,188,136,194,199,210,133,217, 78,225, + 86, 12,197,219,100, 30,228,102, 78,151,143, 25,225, 85, 5, 5, 16,242,169,200,237, 95, 78, 81,191,218,177,205,145,136,249, 67, +177, 90, 48, 17,152,130, 71, 81, 58,187, 16, 73,228,195, 58,196,108, 19,104, 67, 64, 25,195,224, 44, 70, 27, 36,138, 49,120, 42, + 45, 88,104,133,145,154, 24, 2, 90, 40, 38, 63,230, 32,151, 16,232,157,167, 34, 34, 99,226,131,221, 57, 83,244,164, 40,232,221, +142,157,243, 36, 17,168, 35,140,193, 19, 66, 36,122,139, 18,130, 42, 6, 42, 34, 73, 68, 26, 31,104,133,164,177, 19,173,144,172, +132,100,233, 39, 14,148,196, 36,184,237, 35, 15, 35,108, 66,122, 58, 87,189, 47,145,172, 46,114, 69,163,116, 37,206, 79,138,167, + 13,253,231, 29,251, 12, 21, 93,143, 5,156, 97, 60,165,242,133, 27,167,156,210, 21,203,254,125,150,188,204,100,166,166, 2,189, +200, 55,198,243,100,137,186,184,103, 41,145,161,160,107,210,135,103,191,190,242,213,175,240,137, 79,190,140,115, 30,103,195, 21, +146, 49,237, 38,236,232,105,154,138,151,111,157,102, 50,142,209,172,219,134, 27,135, 45,203,198,228,200, 85, 33, 25,125,192,167, + 68,163, 5,198, 72,106, 45,105,180,202, 69,173,120,236,199,226,207, 30, 82, 38,212,205,156, 4,145, 18,186,152,101,132, 24,145, +206,103, 93,108,140,212, 67, 36,141,158, 48, 89,170,222, 35, 54, 22, 51, 68,218,221,132, 25, 6, 46,157,229,116,217,146,110, 29, +240,231,127,241, 54, 15,254,234, 67, 54,187,145, 7, 33,178,182,129,255,115, 24,249, 87,219,135,124,142,137,151,150, 47,241,107, +171, 83,110,121, 71,140,158,101, 63, 34, 71,207,105, 76, 44,235,154, 87, 63,113,135,218,200,236, 53, 52, 6,134, 40, 16,173,161, + 94,183,156, 46, 27,110, 31, 53,188,250,210, 77,236,164, 88, 28, 29,240,242,171,167,188,112, 99,197,113,151, 49,135,221,232,152, +108, 96, 51, 76,108,139,115, 30, 62,102, 4,195, 23, 87, 44, 41, 88, 46, 42,150, 93,195,106, 81,179,236, 42,150,181,193,212, 58, +255,188, 72, 24,163,168,107, 67,221, 24, 14, 15, 90, 94, 56, 94,160,181,198,249,196, 65,171, 81, 82, 18, 4,156,157,109,153,134, +137,197,178,229,215, 94,185,137, 74,129,113,176,140,214,241,205, 7,231,108,199,158,139,237, 37,253,206, 34,162, 33,136,192,139, +183, 14,249,244, 91,111,241,191,253, 47,255, 34, 67,185, 60,237, 33,195, 53,250,200, 47,244, 76,144,215,238,249,171,221,100,250, +233, 25,238,186, 16,226, 22, 93, 38, 70, 45,234,188, 62,146, 34,203, 35, 4,156, 84,146, 70,107,180,202, 25, 2,147,119, 60,153, + 60,239, 88,155,243,176, 67,200,242, 84, 37,192, 59, 46,173,229,174,145,220,219,245, 40,231,248,112,179,229, 59,143, 47,185, 56, +219,228, 61,167, 20,185,160, 63,203, 25,240, 62, 79,116, 67,159,201,110,206,239,223, 99,183,132,163, 19, 42,165,121,171,109,144, + 85, 69, 72,134,182, 85, 76, 46,241,104,242,116, 74,208, 39,184, 89, 25,142,234, 26, 41,178,198,220,199,192,221,166,226,219,219, +205,222,247, 34,148,215,221, 15, 25,254,223,141,249,239,222,245,236,166, 29,231,214,241, 97,138, 60,118, 22,155, 4, 74, 42,148, +144, 24,165, 72, 49,161,148, 65, 10,205,132,160, 85, 50, 7,181,104,197, 20, 35,203, 90,226, 35,180,181,102,244,129,182, 50, 36, +153,243, 43,188,148, 8,173, 24,148,194,214, 6,140,194,105,201, 84, 12,166,166, 36,178,126,187,220,179, 81, 42, 70,145,232, 37, +156, 91,201, 35,151,232, 93, 96,227, 19,187,157,101, 20,137, 29, 2,239, 45, 42,122,106,153,153,226, 41, 38,100,242, 36,165, 72, + 33, 34,136, 36,231,137, 49, 81, 37, 79, 10,137,174,201,180,254,101,107, 48,209,161, 91,141, 8, 1,165, 36, 43, 63, 50,197,136, + 9, 14, 41, 43, 12, 35, 11, 17,208, 41, 33, 9, 24,169, 57, 81,137, 24, 45,210, 91,214,149,198,184,137,237,238, 17,219, 97,226, +141,174,226, 52,194,199, 14, 22, 52, 82,179, 90,180,152,186,161,151,197, 9,116,206, 68,143,177, 16,158, 51, 7, 33, 59,195,145, +207,254,144,138,107, 99,249,185,121,186,118,110, 47,225,148,101,152,107,187, 2,223,135, 18,215,170,247,205,102,136,185, 89,104, +179,185, 87,110,234,102, 20,188,172,122,221,236,198, 88, 76,118,230,181,112,226,151, 88,212,103,239, 92,101, 50,100,165, 51, 29, + 63, 33,136, 90,177, 11, 57, 33,104,231, 45,187,224,168, 11,148, 97, 99,200, 19, 11, 96,180, 33,164, 64, 18,217,110, 84, 8, 67, + 27, 1, 17,104,165,100,240, 83,142,147, 37, 96, 39, 75, 45, 37,113,154,120,108, 71,124,140, 60, 25,119,132, 24, 8, 62, 18,131, +163, 70, 50,133, 60, 41,117, 66,144,130, 43, 68, 45, 80,193, 97, 66,164,142,158, 54,122,140,144,116,222, 35,162,163, 81,138, 38, + 70, 66,138, 52, 74,241, 58, 9, 47, 2,247, 41,172, 69,235,179, 67,148,203,157,255,213,105, 40, 10,185,221, 22, 24,231, 58,185, + 2,114,199, 55,107,117,103, 24,134, 82,208, 99,129,244,187,106,239, 53, 28, 75, 19,225,228,149,124, 1, 89, 18,133, 92,137,250, +123,222, 65, 42,234,124, 19,142, 33,147, 65,126,196,215, 87,190,246,219,220,190,115, 74, 72,137,105,242, 72,173,114,156,234,228, + 73, 17, 94,188,123, 11,211,214,184, 40, 80, 82,114,235,112,193, 65,103,168,180, 70, 25, 93, 44, 99,243,155,175, 5,104,153,173, + 98,141,201, 42, 6, 31, 50,194, 33,201, 33, 43,179, 58, 34,250, 76,120,147, 33,171, 34,164, 15, 40,159,144, 62, 34, 99, 36,217, + 64,216, 58, 98, 63,145, 98, 36, 61,238, 81,151, 35,141, 75,212, 83,192,244, 61, 43,165, 56,190,125,204,187,222,243,207,255,213, + 31, 82, 77,129,197, 24, 24,183,150,205, 54,176, 14,137,175, 4,205,215,197,200,203,227, 64,167, 43,110, 45, 78,120,109,117,204, +189,221, 57,239,143, 27,150, 49, 49, 34, 88, 13, 96,146,100,177,108, 57,124,229, 20, 35,178,150,250, 34,134, 76,222,116, 17,173, + 18, 47,220, 61,228,213, 87,110,241,226,141, 37,181, 82,217, 29,213,121,206, 46, 39, 98,140, 89,122, 86, 24,150, 62,100, 59,219, + 24,178,245,237,162, 49, 28, 29, 52, 44, 23, 13,139,174, 66,203,108,247, 89,107, 81,162, 40,115, 81,151, 5,213,104, 42,195, 65, +219,228,117,145,115,220,174, 43, 86, 81,162,109,228,133, 69,195,127,244,218,109, 62,251,194, 17,211,100,209, 34,113, 57,120,254, +226,131, 71,124,251,163,119,217,108,123,222,184,241, 2,127,247,243,111,178, 17,112,118,177, 99,181,106, 57, 58,232,248,239,254, +254,239,241, 63,255,175,255,226, 74,158,155,126,217,211,250, 92,244,230,102,119,110,116,159,149,193, 61,175,168,107,160,106, 88, + 31,174,160,109, 81,181, 65,181, 53, 65, 23,143,136,178, 82, 58,139,154, 70, 75, 54, 46, 63, 95, 46,122, 38,155,232, 73, 76, 59, +187,223, 80,217,144, 97, 83, 27,248,224,114,224,254,227,129,239,159,143,188,255,228,130,139,203, 93,150,246,201, 50,141,205, 46, +117,206,255,176,253,238, 15,153,232, 40,136,134, 91,183,143,249,237,155,119, 72,186, 35,134,244,255,209,246, 38,191,150,101,215, +153,223,111, 55,167,185,237,235,227, 69,151, 17,217, 49,147, 20, 51, 37,153,106, 76,169, 40, 74,150, 68, 89,178, 74, 50, 92, 5, +215,192,240,200,255,131, 97,120,230,145,231, 5, 15, 12,123, 96, 24,112, 21,108,192, 48,224,129, 97,187, 44,168, 76, 74,114, 73, + 44, 50, 73,145,148, 72, 38,153,109,244,205,235,110,123,206,238, 61,216,251,190,251, 50,197,164, 26,144, 1, 4,162,121,209,188, +119,239, 57,103,237,181,214,247,253, 62, 82, 8, 72,213, 34,165,196, 83,226,160,221,154,221, 90,101,123,175, 20,164,224,169,132, +160, 15,150,153,117,172,186, 46,231,107,172,186,220,157,207,250,172,154, 95,173,243,239, 13,170, 92, 92, 26,133, 9,158,105,219, + 34,145,196,148, 24,212, 77, 22,170, 74,157,199,216, 34, 51, 33,188,208,120, 41, 89,198, 60, 13, 90,117,129,118,160,152,245, 30, +169, 20, 42, 70, 68, 91, 17,139, 69, 25, 9,125,147, 85,233,243, 40, 9, 40,146,172, 48, 73,226,132, 32,216,200, 10, 73, 74, 18, + 39, 83, 78,236, 52,121,245,228,188,103, 21, 96,217, 59,140,144,184, 4,206,121,180, 51,116,206, 82,135, 44, 34,139, 41,230,157, +125,112, 84, 34, 98,173, 5, 34,202, 90,100, 18, 52,210, 81, 37,145, 47, 27,160,138,137, 73, 12, 4,161,168,141,193,120, 75, 74, + 48, 20, 2,153, 28,163, 16,152,232,154, 58, 24,110, 84, 13, 35,183,162, 37, 49,244, 22, 29, 44,202,117,216,110,129, 13,142,137, +132,147,229,138,241,160,166,213, 21,173, 18, 12,181,100, 90, 73,246,154, 58,175,111,154,188, 86,184,188, 78, 55, 40,223,205,179, + 59,149,134,108, 35,100,219,120,215,131,223,194,103, 92,204,117,162,109,242,117, 39, 85,174,143,170, 52,134,178,172, 88, 55, 26, + 10,227,183,129, 93, 27,140,183, 15,219,213,238,230,112, 92, 93, 33,214,241,211, 46,234,148,253,130,208, 37,231, 86,129,177,229, + 96, 35,232,140, 5,157, 71,242,107,219,163,149,198,197,128,172, 52, 34, 9,250,224,137,228, 46,183,213,117, 22,210, 5,207, 88, + 39,150, 41,114, 32, 21,214,152,236, 97, 12,145,181, 51,152,232,209,222,176,182,150, 14,232, 76,199, 88, 8, 6, 74,177,180, 61, +149,212, 52, 66, 32,124,200, 63,166,132,243, 61, 3,149,119, 54, 10,168,131, 99, 15,137, 75, 9, 29, 28, 93,140,244, 62, 49, 70, + 82, 87, 13, 85, 8,236, 9,197,169, 12,204,131,202,111, 84, 42,124, 97,159,182, 34,135, 84,146,220,144,121, 68,158,194,214, 68, +186,185, 24,196,166,187,143, 91,121,189, 16, 91,164,103,218,228, 66,171,242,198, 54,133,153, 93,222,104,177,201,118,239, 63,185, +187,241, 54,139, 62,194,143,143,246,251,226, 31,254, 46, 85,163,233, 58, 71,138,217, 49,176,188, 88, 17, 34,236, 29,238,241,185, +215,111,163,165,198,133,132, 78,146,195,253, 1, 90, 72,132,144, 37,218, 54,223,116,141, 18, 12, 90,141, 86,130,186, 42, 59,249, +144,217,236,214,167,188,103,246,185, 91,143, 5, 42, 35, 67, 64,165,128,176, 30,225,178, 93, 74,184,128, 48,158,212, 57,150,243, + 21,189, 11,120,145, 48,179, 37,118,181, 66,122,136,222, 33,131,103, 52,153, 50,120,233,128,239,124,245,187,124,248,205,135,172, + 83,160, 78, 2, 29, 35, 79, 86,158,207, 10,197, 43, 85,197,211,149,227,105, 88,163,100, 71,131, 96,111,116,192,117, 52,149,183, +124, 79, 4,214,109,195, 9, 9,191, 50,236, 92,159, 34,142,198,132,186, 34,145, 80, 38,176, 91, 41,186,121,199,105,128,107, 7, + 99,148,206, 94,221,139,206,242,236,124,205,247, 63, 60,163,235, 28,107, 27,112, 54, 79, 37, 82,204,135,154, 16, 50, 1,177,173, + 43,166,147,134, 65,157, 15, 68, 66,200,252,241,152, 10,219, 62,146, 95, 21,145, 71,249, 46, 96, 35,216,152,184,247,112, 65,191, + 10, 60,120, 48,227,254,189,103,252,249, 95,189,205, 7,207,206,152, 45, 44, 55,119, 26,246,235,154,163,131, 9, 73, 43,126,238, +238, 17,186,217, 97,247,240, 58,255,209, 47,188,134,214,130,183,159, 93, 32,149,230,217,210,240,221,119, 31,243,243, 47, 93,231, +248,211, 63,195,159,124,249, 43, 31, 37,204,253, 52, 58,245,143,143,225, 55,202,119,119, 69,107, 18,127,140, 10, 94,106,104, 7, + 28,238,143, 24, 13, 90, 68, 91,163,180,194,164,180, 77,136,139,128,204,135,197, 59, 26,166,178,172,209,128,123,157, 35,108,160, + 33,155,233,128,119, 89,125,190, 92,100, 63,113,232,242, 56, 93, 52,185, 59, 55, 54,119, 79,222, 95,153,132,233, 43, 10,228, 43, +157,210,230,254,211, 10, 14,246,184, 51, 29,115,115,239, 0,106,201,163,222,146,170,154,161, 86, 60,178,158, 38, 88,230, 41, 50, + 86, 21, 82, 6,234,148,115, 38, 92, 12,136, 96,185, 88,175,248,206,147,115,152,149,207,107, 54,135,110,145, 5, 87, 33, 22,180, +115, 17,231, 14,244,101,241,181, 34,139, 2,155,170,201,152,101,145,175, 36,165, 42, 66,180, 36, 33, 73, 41,219, 72,173, 7, 71, +202, 49,213, 94,160, 10, 69,173, 71, 35, 43,129, 81,146, 80, 73, 86,165,128,172,125, 78,157, 11, 85, 69, 36, 97,149,190, 4, 9, + 7, 33,233,125,190,175, 29, 69, 35, 66,162, 79,130,245,218, 20,109, 84,192, 90,131,242,142,149, 51,168,232, 16,214,100, 26,104, +138,164,224,209, 41,209,245, 29, 58, 6,170,224,105,132,163, 9, 61, 83, 36, 45, 48,137,121,157, 53, 44,147,189,161,203,147,176, + 16, 28,117, 48, 84,206,101,231, 71, 74,244,174,231, 90,138, 56,187,228, 64,106, 6,206,144, 92, 79,116, 6,172, 69, 4,159, 19, +196,131, 97,119, 48,160, 15, 1, 65, 98,191, 30,208, 5,135,148, 50,195,110,180, 98,160, 21, 39,182,192, 98,184,194, 87, 80,229, +181, 23,101, 18,170, 84,185,126, 82,158,190,202, 82,120, 59,155, 15, 96,155,105,236,166, 16, 55,162, 68,181,214,219, 76, 3, 91, + 82,232, 90,189, 21,202,109,186,243, 77, 96,204,102,220,158,210, 37, 15,109,147, 64,248,211, 45,234,155,229,253,120,148,111,214, + 84,226,239, 66,184, 44,108,193,249, 60,122, 39,209,199,252, 66,166,148,195, 86, 98,138, 40, 52, 81, 36,130, 40,191,142, 17,157, + 18, 85, 8, 44, 82,162,242, 22, 99,122, 68, 74,248,224,136,165,155,122,102,215,244,222, 50,148, 42,239, 52, 67,100,162, 53,222, +247,200, 24, 25, 10, 65, 75, 62, 36, 72, 4, 49,120,170, 24,153, 58, 75,171, 27,156,181,232, 24,169,144,232,178,230, 78, 82, 17, +189,163,115,129, 97, 74,236, 42,197, 66, 9,230,126,227, 83, 44,249,209,193, 21, 53,123,121,179, 93,151, 11,111,111, 74,151,144, +242, 27,211, 86, 57,150,213,199, 45,102,179,173,202,232,165, 46, 73, 61,165,160, 19, 63,234,133,244, 41,243,228,125,252,123,198, +113,234, 79, 20,211,253,218,239,253, 22, 90, 75,124,136, 40, 41,177, 54, 98,123, 75,211,182,220,186,117,192,181,241,136,103,179, + 14, 25, 97,111, 90,177, 55,200, 33, 60, 82,100, 76,175,146,185,131,175,148, 64, 41,145,193, 41, 34,175, 85, 98,140, 5, 50,147, +139,151, 40, 86,142,252,251,249, 59, 33, 16,173, 39,244, 22,187,182,152,165,193,251, 64, 90, 91, 22,243, 62,167,231, 89,143,233, + 12, 23, 93, 15, 50, 50,235, 23,116,193, 51,216, 25, 83,239, 14,185,241,175,254,146,207,215, 53, 39,115,195,227, 51,195, 13, 39, +120,147,138,159, 19,138, 87, 15, 70,204,206,123,206, 26,112,195,134,239,164, 53,207, 87,103, 28, 70,201,167,135,183,249, 25, 53, +228,184, 64,112,118,218, 1,182,179,220,179,150,249,189, 25, 79,223,123,206,243,103,115, 46, 90,201,153, 84,188,122, 56,102,168, + 20,203,165,225,100,217,241,100,222,241,248,249, 34,251,133, 3,152,206,227, 66, 44, 70,137,172, 27, 24, 13, 42,118,199, 3,118, + 39, 45,131,186, 66, 43, 81,120, 70,145,206, 6, 58,235,233, 92, 22,240, 72,160, 77,208,219,128,183,129,197, 69,207,163,179, 37, + 23,179, 5, 15,159, 60,226,237,251,239,115,210,173,161,170,169,135, 19,244,206,136,119,151,150, 71, 1, 78,156,229,157,147, 37, + 43,227, 56,239, 60,198,122, 30, 44, 87, 60, 92, 27,144,130,231,103, 43,238,253,224,125,254,234,237,239,112,178,148,168,225,144, + 55,126,254, 13,190,246,231, 95,253,177,182, 54,241,147, 44,234,155,130, 30,210,214, 1, 10, 63,158, 42, 87,143,184,125,125, 2, +170,197, 87, 21,163,182,165, 45,221,146, 9, 27,145,104, 4, 19,105, 98,228, 88,230,195, 98, 68, 18,149, 96,105, 29,235,116,165, +131, 10, 33,119, 81,253, 42,227,159, 69, 25,159, 59,151,255,157, 13,251, 59,132,143,118,227, 90,110, 39, 3,162,236, 69, 21, 91, + 29, 77,165, 96, 56,230,100,103,135, 32, 43,188, 28, 82, 75,149,137,153, 85,205, 52, 37,116, 59,166,151, 31,150, 0, 0, 32, 0, + 73, 68, 65, 84, 68, 57,203,154,196,131,213,140,212, 45, 25, 36,203,136,132, 89,175,120,251,249, 41,103, 79,207,225,244, 28,204, + 34,143,248,157,223, 38,143,137, 43,150,192,166, 42,124, 11, 73, 40, 73,103, 85, 81,229, 87,178,202, 56,255, 16,208,170,130, 36, +112, 49,101, 16,151, 20, 68, 45, 25,106,133,208, 2, 47, 65, 10, 73,146,130, 46, 9,180, 86,244, 46, 3, 90,214, 17, 86,101, 28, +111, 99, 34,181, 13,222,231,189,242,178, 60, 51,214, 34, 15, 31,215, 49,178, 10, 89, 95,227,124, 94, 69,197,126,133, 11,249,192, +110, 92, 79,109, 13,206, 91,132,144,196,100, 81, 66,162,162,197,251,136,116, 61, 42, 6, 68,232,104,131,167, 1, 92, 48, 76, 19, + 88,179,100, 39,102, 58, 95,244, 22,101,215, 40,179, 38,121,135, 54, 29,149,115, 8,111, 17, 49, 48,241,158,224, 61,123, 82,242, +217,221,107,156, 46,207,105,189,167, 74,130,140,197,202,225,153, 83,221, 32, 82,100, 44, 53,109,193,187,106, 41,177, 49, 80, 41, +137, 11, 1, 37, 36, 59,117,195,233, 98, 85,130,137, 68, 46,210, 87, 69,151, 27,107,241,230,186, 81,133, 74,103,202,179,190,183, + 37,169,176,172, 28,219,122, 27, 10, 22, 92,238,196, 99,216, 10,165, 55,226, 99, 81,158,247,170, 68,105, 27,183, 61, 40,108,198, +239,136,172,143, 82,250,167, 88,212,181,222, 98,237, 98,202,106,208,210,117, 95, 22,187, 75,225,129, 33,149,194,110, 17,180,149, +102,237, 93, 73,118,203,129, 3, 74,128, 8, 14, 79, 22,182, 12,100, 66, 57,139, 41,222,192,133, 91,103, 36,108, 76, 92,248, 14, +235, 3,193, 27,214, 49,112,144,114,172,106, 8,129, 29,161, 72, 49,160,145,168, 80,216,190, 18,140,143,232, 8, 59, 90, 82,187, +144, 69,166, 41,191,245, 41, 4,156,204,187,238, 20, 34,227,186, 98, 46, 19, 58,229, 16,146, 71,193,103, 62,188,247,219, 44,242, + 20, 75,113,247,219,241, 9,105, 11,228, 15, 62,139, 37,172,221, 90, 24, 68, 33, 8,109, 34, 93, 55,227,149, 84, 70,237,227, 97, +126, 29,155, 58,255, 25,235,254,142,120,223,171,133, 60,254,200,194,254,230,239,255, 30,191,240,139,159,166,183,158, 80,110, 72, +211, 89,108,239,184,118,243,144,227,221, 49,141, 84, 44, 59,203,238,168,229, 96,212, 50,104,117, 86,189,139, 92, 8,107, 41,242, +186, 73, 10,116,233, 16,124,200, 5, 93,144, 49,167,174,160, 78, 19, 89, 9, 46, 55, 95, 91,200, 59,162,208, 91,170,181,195,134, + 64,176,185,192, 69,231, 73,189, 39, 25, 71,215, 25,122,219,115, 26, 29,115, 25,121,183, 91, 97,154,138,195, 79,223, 34, 62,152, +209,252,229, 35, 94, 29, 31,240,235,205,136,253,139, 53,225,169,231,200, 75,150, 83,201,122, 92,241,158,247, 40, 37,185, 23, 61, +231,227,134,119,149,224, 66,193,177, 82,140, 85,195,129, 28,178, 47, 43,118, 6, 3,166, 66,193,243, 21,247, 79,231, 92,191,189, +195,139,183,246, 56,184,177,203,145,208, 92,107,107,148, 75,216, 62,219, 35,133, 43, 89,238, 87,248, 17, 66, 10,234, 58,187, 3, +118,198, 3,246, 38, 67,246, 39, 13,131, 90,151,107, 59,255, 29, 23, 2, 49, 6, 66, 74,212, 82,146,124, 98,170, 18, 47,213, 53, + 79,103, 29, 31, 60, 56, 99, 54,155,227,188,229,112,111,196,231, 62,117,147,155,215,142,153, 14,119,217, 29, 78, 72, 69, 93,127, +231, 96,194,106,109,120,126,182,162,209,154, 51, 27, 88,199,196,193,225,152,221,189, 17,200, 12,117,154,159,204, 57,174, 27,246, + 38, 83,122,159,241,161,175,191,242, 2,191,248,239,252, 60, 95,249,202,159,125,100,191,254, 19, 47,232, 87, 21,240,155,164,171, +205, 84,235,111,163,202,141, 6,152,193,132,209,116,196,167,247, 6, 28, 14,106,118,107,205,245, 90, 49, 80,138,147,165,201, 15, + 78,103, 49, 46,146,148,230,104,216, 48, 80,130, 86,100,208,202,194,231, 96,161,188,251,235,243, 67,212,102,209, 25,190, 56, 82, +148,222, 78,202, 54,209,176, 31,103,214,111, 86, 7,170, 20,116, 41,178, 85,174,153,192,141, 99,216, 25,195,100,159,231, 85,205, +141,102, 68, 39, 4,123, 77,205,185,113, 56, 96, 71,193,137,181,248, 24,121,107,121,206,217,226,148, 39,103,231, 60,158,157,242, +214,163, 51,158, 62,124, 2,179,243,188, 46,251, 27,124,138,205, 1,191,220,198, 77,181, 77, 2, 67,208,167,128,144,130, 73, 53, +192,166, 68,163, 20,178, 76, 71, 68,138,136, 24,243, 72, 94, 66,244,130,145,202, 16, 40, 33, 37,169,146,132, 36,137, 74, 98,124, +202, 63,146,105,102, 46, 38, 58, 31, 17, 42, 23,241, 40,243, 10, 37,175,128, 99, 30,173,147, 19,212,164,247,172,124,160,235, 60, +209, 25,146,136,132,110, 13,206,144,130,205, 25,234, 66, 18,162, 45,169,184, 14, 21, 19,214, 27,218, 70, 66,176, 12,136, 4,223, + 83,153, 30,229, 3,209, 59,154, 20,113, 33,128, 55,200,224,136,166, 3,103, 17, 46, 79,236,156,235, 24, 34, 32, 56,132, 16, 57, + 47, 66,192,172, 95,229,116,199,226, 67, 15, 36,148, 80, 40, 18,158, 88, 66, 54, 5, 42,101,105, 70,231, 12, 29,177,120,230, 19, + 54, 6,150,214, 51,105,106, 22,222, 95, 97,244,139,220, 41,111, 28, 36,155,113,249,102,148,190, 17,198,165,194,160,135,237,245, +181,217,207,111,148,242, 87,121,241,226, 74, 81,247, 37, 20,198, 20,198,130,210,249,218,221, 96, 2, 67, 73, 51, 68,129,119, 63, +101,161, 92, 91,129, 87, 48, 29,230,125,238,168,217,226, 80,155,234,114, 92,128, 80,121,212,229,242,233,105,181,238,145, 85,131, +113, 6,161, 42, 70,186,194,186, 30, 17, 35, 50, 37,134, 41, 18, 17,212, 41,208, 71,199,202, 59,148, 80, 24,111, 89, 59,139,137, +145,148, 18,141,212, 76,131,197, 91,199, 80,107,134,192, 50, 6, 14, 85,141, 53,153, 24, 85,107,149,167, 5, 62,160,101, 22,105, +212,193, 51, 78, 20, 14, 61,151, 66, 5, 67,202, 76, 99, 18, 6,232, 82,204,227,254, 74,210,155,136,237,203,205, 31, 93, 17, 76, +168,252,117,171,143,189, 54,118, 51,122, 44, 63, 23,229, 77, 9, 69, 81,155,228,246,230,221, 60,232, 54,252, 71, 41,183,209,126, + 54, 67,117,127, 44,113,174, 41, 40,193,205,195, 74, 21,145, 71, 16, 31, 41,236,191,250,235, 95,224,248,250, 1, 62, 38,250,117, + 30,191, 59,147,245, 12,187, 59, 35,110,237, 78, 74,195,162,105,180,162,106, 84,222, 53, 35,112, 49,146, 82,188,124,206,233,130, +131,141, 41, 96, 93,192,197,108,187,202, 76,130, 13,140, 41, 79, 43, 68,140, 40,145,168, 82, 94, 45, 57,231,145,198,209,185,236, +231,118,214, 97,230, 61,177,239,113,171, 53,157,181,204,214,134,185,237, 89, 24,195,105,176,236,191,120,155,157,207,222,226, 43, +127,254, 13,222,250,139,251, 12,142, 21, 47,220,124,145, 23,118, 26,252,196,240,245, 39, 6, 33, 34,143, 71,112,126, 56,196, 95, +159, 50, 18, 2,150, 6, 81,107,226,193, 49, 15, 14,199,156,141, 43, 6, 71, 35, 26,169,209,109,141, 58, 24, 50,108, 27, 14,238, +236,178,127,123,143,118,210,210,122, 24,161,168,155, 10, 85, 41, 70,114,139,207,140, 49, 96, 67,164, 25, 86, 76,198, 13,215,246, +134,220,220, 27,113,109,119,196,193,116,192,100, 88, 51,110,106,180, 86,249,181, 8,145,152,242,136, 94, 10,201,180,209,236,141, +242,104,252,134,150,200,121,199,255,246,111,190, 75,112,145,122, 48, 96, 50, 30,241,194,241,148, 59,187, 35, 82, 76,188,253,195, + 71, 44,206, 47, 16, 62,112,234, 37,119, 38, 53,235,103, 75, 98, 31,217,213, 21, 55,246,134, 44, 58,207, 98,101,105, 27, 77,191, +178,200, 8,211,225,128,225,112,192,218, 71,108,200,195,162, 81, 91,241,218,171, 55,240,178,229,251,127,253,221,143, 20,242,191, + 79, 65,255,219,254,236,175,254,193,239,242,202,103, 62,203, 7,111,191,253, 9,171,162, 79, 56,164, 14, 91,216,221, 37, 76,134, +252,236,222,152, 73, 83, 19,132,100,164, 4, 74, 73,146, 8, 60,176, 41,143,203,215, 38,251,213,119,106,142,170, 28, 8,178,142, +145, 93,173, 8, 4,158, 47,138,255,184,187, 2, 19, 65,111,221, 35,162, 46,162,164, 79, 56,100, 92,213, 4,184, 50, 5, 31, 76, +144,119,239,114,243,238, 45,210,225, 17,118,178, 83,114,229,107,180,210,153, 1,159, 34,199,117,131, 35,160, 17,168, 20,121,104, +123, 78,251, 25,166,239, 88, 60, 62,229,236,222, 3,220,114, 1,203,213,143,159,190,109,178,224, 55,154,157,186,216,251, 66,118, + 4, 5, 41, 88,121,203, 78,221,162,132, 68,136, 92, 72, 66, 12,104, 85, 19, 69, 98,131,126, 10, 82, 49, 44,135,114,155, 68,110, + 10,149, 32, 59,234, 36, 65,102,124,240,218,102, 17,108, 42,207, 64, 81,236,136,202, 7,188,144,136, 50,117, 77,198,230,224,167, +222,129,239, 73,222, 18, 76,143,138,158, 24,115, 98,156, 19,130,228,123,156,207,137,107,222, 88, 76, 74,232,148, 8,201, 51, 66, +226,125,207, 40, 74,186, 16,169, 69, 34,152, 14,153, 32,218,142, 58,120,162,115,140,200,235,170, 97, 10,196, 4, 67, 85,177,246, +134, 86,230,152, 85, 73, 22,232,170,242,236, 81,100,194,168, 32,139,182,129,156,248,137,192,166,188,231,246,228, 6, 83, 8, 8, + 41, 98, 98,194,246,150, 73,211,240,104,181,162,169, 42,236,198,238, 38, 85, 41,172,113,155, 60, 88, 95, 81,158,214,114, 11,166, +145,106,155,247,177, 57, 52, 74,145,109,145,155,149,173, 40,249, 32, 27,101, 59,229,227,189,223,254, 61, 81,166,224,179, 85,110, + 28,155,186,248,229, 29,136,159,150,250,125, 88,252,122,169,202, 59,131,166,201,113,129, 27,127,173, 42,167, 27,228,149, 19,122, +218, 34, 38,171, 10,107, 28, 70, 10, 86,214, 16,188, 97, 90, 88,215, 3, 9, 42, 9, 38,194,179,136,129, 90, 72,214,193, 99,202, +232,109,217,175,243, 69,137, 64,250,142,118, 35,138, 43, 23,243, 68,192,204,244,140,235, 22, 17, 29,201,123,150,222,103, 7,124, +204, 35,185, 29,157,185,191, 31,190,242, 58,215, 46, 78, 73, 73,226,137,140,145, 88,160, 67, 32, 69,194,186,196, 66,101, 72, 78, + 40,202, 79,187, 25,167, 7,159,187,244,166,222,146,134, 40, 86, 6, 10,216,223, 23, 81,157, 43,132, 58,183, 81, 2,151, 55,126, +227,245, 18, 69,100, 81,169,237, 30,101,179,123,140, 41,119, 8, 27, 59,197,213, 7, 65, 83,127,212, 94, 1,219, 36,162,205,184, +176,124,224,183,254,201, 63,206, 56,221,144,112, 54, 95, 64,147,209, 0,129, 98,111,119,140,150, 10, 37, 21,141, 86, 72, 33, 75, + 87,158,227, 83,157,203,162,176, 90, 73,154, 90,150,162, 14, 62, 70, 58,159,149,236,133,220,139,137,145, 40,178, 47, 85,196,144, + 35,143,197,150,123,109, 66,192, 46, 76, 22, 9,245,142,213,202,176,156, 45, 56,159,175,152,245, 29, 51,103,145, 41, 18,157,101, +109,122, 92, 76,236,190,112,140, 62,222,225,255,253,163,175,113,241,112,201,247,186,142,212,172, 9, 56, 62,115,227, 22,111, 54, +137, 39,120,254,236,241, 26, 63, 55,156,159,175,169, 5, 48,110, 25,197,196, 99,179,160, 11,129,190,213,204,118, 71,156, 54,146, +147,169, 34,222, 30,179,216,169,176,149,162, 54,121,100, 41, 7, 53,205,184,166,110, 52, 35, 89, 49,172, 53,173,146,180, 62, 50, + 33, 49,110,107,166,147,150,107,135, 99,246, 39, 3,246,166, 3, 70,131, 26, 93,108,128, 90,201,178,126,141, 36,159,213,255, 82, + 8, 26,173,153, 12, 42,246,234,138,147,101,199, 35,165,248,242,215, 63, 32,133, 28,172,209,212, 53,195,129,226,217,188,103,185, +116, 12,147,228,116,102,153,205,206,120,180,154, 49, 11,137,111,254,240,251,124,240,236, 62, 39, 23, 39,188,251,240, 62,143, 31, +157, 48,191, 88, 48, 95,204, 57,123,122,206,163,135, 79, 57,125,126,206,197,197,140,231, 39, 39, 44,214, 29, 85,173, 8,174,167, +235, 12, 54, 9, 6,187,215,137,202,242,224,189,123,151, 0, 69,254,158, 69,253, 71,125,223,124,187,191,180,124,240,222, 7,208, +175,255,238, 5, 93,235,220, 1, 31,102,129,220,205,166,166,173, 50,238,116, 32, 37, 90, 87,120,231,240,222, 49, 95,153,188,230, + 27,100,178,216, 65,147,115, 35,234,148,232,125, 96,225,115,126,184, 57, 95,110, 35,135,109,233,188,170, 97,238,218, 69, 41,146, +155, 46,253,147,196,126, 82,228,191, 55,220,129, 23,142,121,243,198, 49,135,211, 67,218,193,136, 51,213,146, 68,158,208,205,234, +150,167, 40,166, 34,113, 18, 35, 67,239, 56,247, 14, 17, 19,111, 89,151, 31,204,125, 15, 23, 11,152,205,126,124, 66,221,230,245, +240, 30,212, 32,127,174, 65,102, 71, 64, 44,234,105, 37, 8,206,211, 14, 90, 66,112,104,169,177,193, 51,168,106, 20,153,236, 25, +188, 65, 11,149,215,103,185, 68, 19,108,160, 86, 50,219,172,109, 66, 40,137,136, 9, 93, 30,105, 61, 80, 33, 72,133, 0, 42, 76, +204,114,158,144, 15, 83, 90,103, 13, 11,189, 39, 57,159, 5,202,102,141,240, 14, 65,200,196, 59, 34,214, 5, 98,200, 17,170, 85, + 57,124,120, 41,192,245, 68,233,169, 19,120,231, 24,162, 89, 70,207,184, 30, 16,189, 67,235, 1,157,235, 25, 75,133,113,150,125, + 41,209,128, 70,160,133, 68,138,204, 37,168,164, 32, 68, 79, 85, 38, 9,163, 36,240, 66,228,175,131, 72, 31, 44, 72,141, 38, 17, + 81,185,112,147,138, 51, 89, 32, 98, 66,165,136,147,153,247,174, 8,244, 33,177,234, 13, 35, 93,115, 70,164, 74,121,122,145, 68, +177,153, 41,181, 85,160, 20, 23, 28,141,206, 98, 55, 41,182, 19, 42, 33, 62,122, 77,109,158,219,151, 93,186,222,142,211, 55,142, + 37, 23,114,189, 8,108,187,247, 80,108,112,107, 91,106, 72,209, 86,249,248, 83, 42,234, 74,231, 34, 30,200,114,125, 84, 62,177, +232,156,129,158,199, 21, 41,183, 8, 66,111, 21,130,177,132,164,152, 34,221, 79, 20,123, 67,222, 95, 91,107,105, 73,104,153, 71, + 64,144, 72, 41,228, 44,246,222,226,163,203, 14, 2, 2,131, 2,132,217, 67, 48,174,114,150,179, 46, 23, 56, 68,124, 25,239,235, + 20,105, 35,204,108,192,133,200, 72,128, 45,121,221,183, 79,159,179, 44,144,148, 81,132, 69,121, 23, 12,130, 25,137,133, 16, 44, +125,190, 32,214, 65,112,238,242, 41,249, 50,150, 53, 94, 21,192,197,210, 89,171,141, 68, 49, 67,248, 83, 17,187, 37,114, 52,235, +102, 36, 35,139,176, 78, 94, 17,207,249, 66,170, 43, 88, 81,124, 25,185,200, 43,116,174,116,133,207,189,177, 91,136, 43, 66, 62, +228,246,128,193,214,162,243,251,255,233, 31, 98,186, 28, 44,225, 92, 32,186,192,238,206, 36,159,193,146,164,109,107, 14,134, 45, +195, 90, 83,215,217,141, 16,203, 80,161,210, 32,146,160,105,178,133, 45,199, 80, 71, 92, 12, 24, 31, 8, 41, 71,168, 38,145,178, +133, 80,230,216,220,232,179, 18, 28, 4,222,121, 92, 8, 8, 31, 57, 95,245, 44,214, 22,103, 29,171,222,240,164,235,120,188, 94, +115, 97,123,214, 9, 92, 37, 56,235, 58,150,214, 16, 43,197,203, 47,189,192,201, 98,205,215,254,215,111, 32, 6,146,186, 18, 52, +119,246,249,186,142, 28, 72,184, 62,217,227,243,215,111,242, 89,147,247,204,223,127,106, 8, 35, 80,141, 98, 60, 25,179,127,112, +204, 75,135,199,188,116,227,144,113,165, 9, 90,114,237,230, 14,211,189, 17,207, 47, 86, 72,227, 72,215,166, 84, 71, 99, 70,147, +134,145, 84, 84, 97, 43,142, 22, 62,162, 67,162,173, 85,254,248,184,165, 29,214, 12,219,154,166, 86,217,238, 87, 28,142, 46,101, +191,120, 12,161,192,167, 4, 77,165,169,106,133, 20,138,243,147,158, 7,167, 11,118,247, 7,156,156,175, 49,103, 11,170,170,230, +151,111,236,241,198,241,148,135, 23, 29, 51, 99,120,116,190,224, 7,247, 63,224,157,179,167, 44,187, 30,223,205,232,215, 38, 15, + 98, 18,132,228,115,183, 20, 12,203,213,138,179,229,140,179,197, 57, 23,171, 57,103,139,115, 78,215, 51,158,207,207,184, 88, 94, +240,222,179, 71, 60, 57,125,198,129, 24,146, 82,228,197,151, 94,230,223,252,201,159,254, 72,251,122,250, 49,133, 94,252, 29,138, + 61,139, 89, 46,156,159, 52,221,251, 81,140,133,241, 4,142,247, 47, 73, 93,183,171, 42, 91,122,145,116, 36,250,190,207,217, 0, +120, 30,117,219, 16,142, 78, 40, 38,141,100,110, 3, 41, 69,154,148,144,214,243,238,179,115, 46, 51, 77, 47,177,155, 50,143,224, +155,122,171, 92, 86,242, 71, 79,193, 54,201, 92, 41,193,104, 10,135,187,220,190,118,147,233,104, 23,163, 52,162, 26, 48,208, 21, + 23,190,116,114,222, 17,180, 98,153,224,209,122,141,171, 26,190,231, 45, 31,244,235,124,162,247,174,196,124,174,243, 14,253,111, +211,199, 84, 58,123,158,147, 7, 74, 38,134, 93,231,102,106,227,190,145, 18, 19,242, 65, 77,132,192,176, 25,210,185, 30,169, 21, + 34, 69, 26, 85,147, 66, 94, 51, 58, 23,114,132,181, 84,185,185,241,145, 86,103,129, 43, 34,195,193,214, 33, 18,123, 75, 16,153, +246,104,215, 46, 11, 92,125, 32,134,132, 36, 18, 58,131, 95,175,243,218,109,221, 33, 66, 79,112,150, 16, 60,193, 58, 2,129,228, + 18,142,172,175, 81, 50, 93, 90, 12,125,112, 89,180,236, 28, 49, 69, 26, 50,113,174, 10, 17,157, 32, 9,141,136, 14,180,162,139, +130,166, 16, 2, 13,130, 70,105,230,209, 83, 41,133, 41, 13, 76, 16,138, 4, 52,222,177,146,154, 58, 88, 92,180, 40,153, 93, 58, + 97,147,213, 65,194,136, 76, 43, 13,100,124,109, 37,242, 33, 65,165,242,185,166, 72, 77,100,105, 29, 61, 25,128,165,180,102, 34, + 37,149,210,140,128,186,174,104,148,206,221,127, 42, 66, 56, 87,158,223,186, 52, 85,233, 10, 54,124,147, 13,162,244, 86, 32,183, +177, 76,166,184,213,157,108,224, 67,186, 8,235, 54, 72,114, 85, 72,114,118, 85,252,244,153,191,207,170,251, 9, 23,245,170,134, +122,152, 11, 77,211,108, 59,197,182,222, 6,202,167, 43,116,164, 13, 98, 79,177, 21,127,197, 77, 23, 26, 47,141,248, 89,168, 16, + 57,146, 9, 85, 41,116,244, 4, 23, 80, 49,226, 98,230,100, 43, 41, 89,118, 75,100, 74,180, 41,177,178,134,155,186,206,187,250, +224,217,211, 53, 34,194,210, 57,166,170,166,143,150,228, 2, 77, 65, 67, 6,231,240,198, 16,146,160, 46,225, 35, 73,194,158,212, +204,125,126, 19,155, 4, 39,197,114, 23,145, 88, 41,104,149,224,153, 79, 44,125,196,169,172, 88, 78,137,220,145, 75,181, 85,178, +167,210, 29, 43,182,156,235,203,184, 74, 93, 10, 58,249,231, 37, 41,232,114, 85,177,185, 24,160, 88,221, 82, 81, 12, 23,177, 81, +239, 33,169,226,111, 47,175,175, 42,212,169, 75,235, 91, 9,153, 73, 42, 95,116,155,220,223, 16,248,204,239,255, 7,124,254,115, +159,230,226,124,133,174, 43,136, 25, 12,147,130, 96,119, 60,100, 52,108,217, 27,182, 28,140, 26,154, 70,149,125,176,192,167,132, +136,100,116, 36, 89, 36,183,233,212,125,204, 16, 26, 98,188, 92,253, 9, 41,168, 68, 14,222,169, 68,217,239, 9,208, 62, 18, 67, +164,235,115, 32,137, 89, 90,170, 69, 71, 88, 25,132,181, 44, 58, 75,111, 45, 74,228,220,251,211,174,103,213,119, 57,132,103,210, +242,194,155, 47,242, 23, 95,121, 11,255,175, 79,216,105,160,185,214,210, 87,160,158,206,249,225,122,205,119,194,146,163, 73,195, +241,235,159,226, 55, 62,253, 38, 95,184, 46, 56, 28, 40,102,149,228,177, 8,132,228, 56,237,215,116, 54, 32,146,162, 70,176,190, +232, 89,156, 46,152, 55, 53,211, 59,135,140,174, 77,208,149, 66, 70, 8,179, 30,177,242,132, 62, 91,212,130, 11, 36, 34,177,146, +184, 70,163, 27,141,174,213, 37, 77, 48, 21,149,127,138, 9,235, 2,179,222,177,234,242,148, 66, 73,137, 82,146,189,241,128,247, +159,102,202,156,112, 6, 85,107,174,239,141,104, 22,145,167,203,158,135,103, 51,254,242,222, 51,158,159, 93, 96,157,167,110, 91, + 22,231,115, 30,159, 95,100,228,104, 74,204,215, 61, 54,122,198, 74,179,182,129, 85,112, 24,239, 49, 49, 11,150, 58,239, 89,245, +249, 64,112, 54, 95,241,131,231, 11,124,223, 19, 19,204, 23, 61,251, 42, 59, 19,170,113,203,151,126,251, 55,248,211, 47,255,233, +223, 40,232,252, 67, 88,241, 31, 47,238, 87, 57,241, 63,142, 25,223, 78,224,230, 33,236,142,178,216,118, 80, 65,128,164, 5, 85, +204, 29,166,113,129,150,200,147,181,229, 91,103,102, 11,136, 41,207,150,147, 36,120,169,202, 99,230,117,103,121,235,225,156,228, + 74,254,244, 38, 17,173, 42, 99,209, 16,202, 90,176, 60,131, 62, 30,125,250,241,157,250,100, 47, 7,172, 92,191,201,231,118,247, +121, 97, 58,229,246,100, 66, 91,124,226,247,205,106,203,151,112, 22,103,123, 80,138,133, 47,241,157, 17, 88,157,230, 46,219,153, +252,255,157, 45, 63, 6,136,250, 4,171,176, 32, 79, 66,243,252, 59, 23,121,155, 69,154, 84,242, 18, 84, 21,148,192,200, 72,240, +185,161, 9,209,163,117,133,148,185,203,148, 34,147,228, 66,240, 52,149, 98,237, 92, 97, 33, 68,214, 38,175,107, 86,189, 37, 57, +143,174, 43, 98,116, 68,227,179,107,207,122,100,136, 8,219, 35, 41, 2, 97,107,137, 46,107,137,172,237, 72, 27, 93,141, 16, 89, + 52,231,109,137,255,149,184,148,133,118,189,207, 59,118,235, 60, 54,250,146,171, 18, 49,174,167, 18,146, 62, 4, 26,145,136, 50, + 35, 93, 91,169,168,165,162,139,158, 29,169, 88,199, 44,108, 91, 69,135,143, 1,169,179,224,109,229, 45,161,106, 72,209, 97,144, + 68, 33,104, 82, 98, 22, 61, 41, 69, 66,140,116,209,229, 41, 79, 10,120, 66, 57,124,230,103,148, 66, 98,163, 69, 36,129,141, 1, +169, 4, 38, 36, 90, 37, 25, 11, 65, 43, 21, 83, 37, 25, 40,137, 21,137,105,147, 51, 60, 76, 42,224,154,250, 74, 33,142, 92,201, + 1,185,146,183, 46, 75,179,235,220,150, 62,154,200,236,252, 65,137, 87,173, 84, 17, 94,151,110, 93,108, 60,242, 64, 23,242,129, + 78,144,163, 92,131, 67,255, 68,133,113,170,201,167,197,205, 56,160, 85,249, 11,219, 20,163,171, 39,242, 90,111,189,217,165,225, + 68,139,162,236, 43, 76,115, 27,144, 56,134, 90,178, 19, 5,115, 11,199, 98,197,168,110, 51, 76,205, 25,164,108,216, 19,154,167, +221,146,157,170,162,179,134,144,224, 72,215,216, 16,153, 8, 24,171,154,174,236, 89, 14,116,205,210, 91,118,208,204,177,172, 67, + 68,133,136, 38, 43, 42,165,246, 44, 13,184, 74,163, 98,226,185,235,144,149,102, 29, 50,225,105, 71, 42,102,228, 83,145, 36,135, + 20, 88, 34,123,173,102,209, 59,162, 86, 89,229, 62,110, 96,105,182,147,139, 80, 96, 49,169,124,157,254,202, 14, 79,149, 31,211, + 21, 79,162, 17, 48,186,178,155,217, 16,235, 98,177, 58,216,176,213,189, 13, 11, 41,206,232,252,111,153,152, 39, 35,148, 92,236, +170,164,106, 73,189,125, 52, 71,113,249,190,189,121,231, 38, 49, 65, 59,108, 16, 90, 98, 93, 32,153,128,115,185, 91, 81,149,204, +160,147,178,247,174,149, 40, 78,164, 44, 56, 49, 62,162,138,201, 89,108,222,234, 50,136,137, 69,176,185,137,154, 23,136,156, 52, +152, 4, 82,230, 49,161,244, 33,171, 86, 59,131,155, 25, 84,111, 11,203,191,104, 79, 66,192, 6, 71,159, 18,125,111,176,206, 32, +108, 32,166,192, 94,219,242,176,115,252,233,187, 15,185,253, 70,197,200, 66, 67, 66,156,172, 56, 57, 26,113,231,229,215, 89,156, + 61,225,191,139, 29, 47,135, 57,191,110, 87, 28, 31,222,230, 75,117,203, 23,206,159,243,131,229,115,238,173, 35, 95, 94, 95,112, + 18, 3, 79, 42,201,207,238, 28, 51,158, 52,168,107, 19,246, 14,247,152, 30,140,144, 74, 98, 66,194, 45, 58,170,149,195,150,117, + 4, 54,167,186, 5, 45,112,149, 36, 21, 26,156, 14, 9,225, 35,158, 72, 40,112,165,232,193,185,196,122, 29, 80, 36, 68,157,201, + 93, 49, 74,222,190,191, 32,185, 72,171, 96, 58,108,121,218,121,236, 78,205, 63,123,105,194,119,204,138,127,241,116,129,143, 62, + 31,168, 26,197,155,159,191,203,247,191,255, 61,238, 61, 95,114,115, 84,241,107,135, 55, 96, 26,249,198,124,206,176,110,217,175, + 7,220,222,191,198,141,233,148,115,111,121,124,126,142,241,134, 85,183,228, 83, 71, 13, 7,163, 29, 46, 86, 75,158,246, 11,246, +116, 67, 45, 34,157, 2, 21, 2,194, 68,190,248, 43,175,241, 95,255, 45, 29,122,250, 17,123,247,159,152, 5,174,109,217,185,123, +141, 52, 26, 35,134, 3,122,173,241, 41, 17,130,227,161, 75,220,174, 61,206, 67,231, 28, 30, 79,146,101,229,197, 71, 57, 16, 17, +248,234,188, 76, 2, 93,159,159, 47,178,192,155,218, 9,248, 46,239,215,171,186, 60, 92, 55,172, 8,121,217,204,255, 77, 21,190, +206, 35,247,107, 59, 48,157, 66, 91,115,176, 59,101, 58, 24, 34,133,228,184,170,232,206,230,249,243, 89,207, 11,167,163,221, 10, +135,165,132,174,227,118, 93,113,214,238,178,182, 43,234,182,194, 74, 9,135, 83,120,210,125,242, 42,162,169,175,156,144,178, 32, + 12,116, 1,159,100,245, 51,115, 67, 14, 68,175, 97,217, 97,125,228, 98,144,223,161,131,225,148, 69,183,196,200,142,189,241, 1, +189, 89,210, 52, 67,132, 23,172, 18,168,186, 97, 57,207,182, 71,173, 43,250,232, 81, 73,210, 69,143,181, 61,131, 74, 99,157,165, + 81, 67,186,213, 18,165, 21,237,176,194,175, 59,162,179, 72,145,240,214, 33,149, 36,164,128, 3,188,181,101, 5,144,175,152,222, + 25,180,200, 90,136,149,235,240,222,145, 80,116,209,160, 82,142, 16,237,172, 97,208,140, 9,101, 84,190, 38,209, 6, 11, 85,139, +148,208, 91,195,245,193,148,179,110,206,158,144,172, 98, 96, 32, 20, 94,128,179, 61, 75,165,217,169, 26, 30,117,107,118,155, 66, +243, 75, 48,147, 2,233, 61, 81,105,188,136,248, 62,215, 0, 71,194,199, 72, 93,215,152,148,178,255, 30,193,146,148,209,204, 74, + 81,167,200, 16,113,169, 37,104,154,124,184, 59,239, 35, 71,117, 13, 82,226,101, 96,169,134, 4,105,179,253,176, 41, 5,217, 95, +205, 89,151, 91,139,166,247, 31, 93,169, 92,118,249, 62, 83, 70, 55,251,246,141,152,122,115,237,106,153, 39,189,227, 97,190,134, +157,253,136, 44,250, 39,243,173, 46,133, 56,216,140, 36,213,117, 25,161,139,143, 65, 25,202,233,164,119,249, 11,118,229,215, 38, + 92, 25, 71,196,178,128,245, 68,217,162,116, 69,178,145, 29,237,104,172,162,247, 29,187,186, 34,106, 65,111, 87, 64, 98, 42, 20, +143, 86,107, 14,116, 22,125,116,166,131, 42, 39, 13,137,166, 98, 32,171,242,224,137, 52, 90,208,123, 71, 29, 35, 78, 64,231,125, + 14,134,145, 18,150,134,117,163,209,192, 89,128,161,208,168, 16,168, 10,157,163,147, 10,161, 21, 9,193, 72, 87,132, 4,159,169, +106, 46, 66,224,212,184,172, 20, 29, 54,249,164, 54,172,179, 26,119,163,162,189,138,105,213, 34, 23,225, 88, 66, 0,130,206,150, +154, 77, 97,151, 41,167, 59,169,226,139,244, 97,235, 93, 44,118,176, 75, 76,108, 36,191,222,182,252,219, 67,189, 45,248,151, 1, + 26,155,255, 75,111, 11,122, 57, 83, 93,187,125,227,242,115,202, 18, 18, 81, 38, 83,249, 66,148, 81, 18,124, 22, 31,110,180, 67, + 66,228, 63,171,149,184, 76,221,173,149,200, 16, 37,178,117,205,167, 88, 2,177,242, 9, 53,164,148,247,237, 72,162,207, 73,122, +193, 6,154,148,149,238,110,237,208,197,121, 96, 0,227, 29,198, 88,214,125,199,172,235,145, 36,132,179, 4,235,145, 36,130,150, + 12,199, 3,190,255,193, 3,150, 95,153,243,149, 99,201,254,169,229,215,247, 26, 94,126, 97,200,226,241,130,123, 23,223,224, 66, +193,162,210,236, 69,248,111,215,107,126,121,239,144,234,180,227,101, 85,243,185,163,215,249,247,142,111,242, 79,102,167,124,227, +102, 67,251,230, 13,142,238,238,229,123,208, 37,116,165, 17, 62,208,135, 60,102, 84, 2,210, 40,147,181, 36, 2,233, 50, 75, 32, +200,124,125, 87,100,155, 86, 21, 34,149,143,216,232,115, 98, 96,217,217,133, 62,226,109,158, 56, 33, 37, 33,230,108,131,211,251, +107,162,244, 60,239, 61,222, 59, 30,159,207,184,251,133, 23,137, 55,119,184,247,214,135, 92,172,151, 8, 1,163,166,229,104,111, +143,221, 81,195,209,222, 17,191,249,233,138,100,214,236, 79, 15, 56,237, 46, 88,167,196,163,231,103, 44,141,231,165,211,231,188, +118,237,144,233,222, 33,203,126,193,186, 55,220,222, 61,224,213,163,235,188,124, 48,226,193,197,138, 47,255,240,175, 88, 44,102, +188,176,183,199,139,251,135,220, 58, 56,228,240,250,148,187,135, 19,254,229,255,244,207,249, 79,254,179,255, 28,212, 0, 49, 26, +195,225,136,116,112,200, 63,190,113,196, 31,175, 86,172,159, 61, 39,157,156, 34,158, 94,128, 89,126,180, 99,223, 57, 34, 29,236, +192,221, 87,152,142, 15,153, 47,158,230,103,195,226, 28,206,230,136,211, 11,146, 89,253,232,226,165, 53,140, 39,164,209,152,235, +147, 17,170, 25,162,129,185,115,124, 24, 18, 67, 25, 89, 88,203,164,146, 84,193,241,212,194,131,133,217, 10,143, 98, 42,211,171, +152,243,202, 77,202,247,150, 47, 72,207,203,123,178, 20,207,166,222,118,237, 27, 56,147,214, 63,218, 68,162, 91, 24,239,194,241, + 97,193,211, 14, 25, 55, 99, 8,142,224, 61, 86, 64,139,100, 32,122, 88, 92,228,117,195,168,133, 33, 48, 57, 6,215,241, 11, 56, +154,233,132,199,243, 57, 71, 85,102, 21, 84,214,242,221, 90, 93,106, 1, 62,241, 91, 40, 48,169,148,242, 93,162, 54, 63, 47, 33, + 80,107,155,153,226,203,242,111, 52, 26,172,193, 84,146,147,144, 88, 37,207,141,122,138,175,107,116,183,160,210, 53,201,174, 24, + 84, 99,122,215,209, 70,143, 80, 21,189, 51,180,117, 3, 66, 50, 95,175, 51, 11, 62,130, 49, 29,109,221, 98,102, 39,212,170, 66, +167,200,234,124, 65, 91, 85, 16, 61, 94,120,208,224,173,199,135,136, 23, 57, 26,123,105, 13,149,140,244, 33,101,107,170,144,120, + 99,208, 2,214, 49,139,102,149,172,177,193, 18,173,103,183, 25,211,187, 53,168,134, 54,145,117, 57,101,135, 46,128, 97, 51,228, +172, 95, 49, 84, 21, 42, 37, 66,232,216,169, 6,244,174, 39,169,154, 67, 41,121,226,179,102,228, 3,179,102, 87, 41,198,213,144, +222,245, 72,221, 16,146,197, 27, 79,163, 21, 3, 33, 24,164, 68,175, 53,203,228,233, 99, 6, 64, 61,245, 57,155,161,119, 33,247, +156, 74, 80,213,154,129, 74,232,242, 30,117, 40,174,143, 91,158,216, 28, 46,165,133,160,209,146,245,160,212,191, 88,220, 80,161, +216,208, 54,220, 17, 95, 66, 88, 16, 91,167,211,149,237,108, 22, 81, 39,104,138, 48,206, 22, 58,233,230, 97,107, 74, 30,251, 16, + 88,235,143,220, 71,250, 39,214,165,235, 42, 95,240,114,131,195, 43,224,251, 13,150, 81, 95, 17,108, 41,149,139,212,166,160,199, +114, 2,217,132,204,199, 50,158, 42,187,136, 42, 70,218, 20, 24, 7, 65,165, 36,131, 24,136, 62, 65,144, 25, 50, 32, 4, 34,244, + 84, 41, 34,131,160, 22, 42,243,199,147, 97, 52,152, 32,172,101,210, 14,153,247,107,122, 60, 45,249,180,219,165,200,210, 5,180, +150,224, 36, 38, 56,168, 36,195, 16, 89, 58,193, 72, 75, 98,202,221,110,160,198, 43, 50,208,161,124,205,193, 39,218,170,198,132, +132,142,240,218,209, 30,223,158,173, 89,251, 8, 85, 81,165,143, 70,208, 25, 96, 8, 39,167,249,141, 33,150,132,182, 43, 29,187, +240,101, 98,225,183,158, 93, 87, 70,246,233,138, 48,103,211,161, 75,181,101,206,203, 2,248, 31,214,249, 71,239,182,135,136,232, + 63, 86,220, 47,211, 92,138,186,210,211, 12, 27, 86,171, 14,129, 32,132,136,148, 18, 93, 85,236,239,141, 57,156,180, 8, 20,139, +165,101,111,218,208,200, 68, 72,130,222,101,194, 94, 45, 36, 82,201,156,208, 86,171, 2,224, 74,248,152, 5,144, 98,227,212, 75, + 9,173, 4,141,148,185,179, 21,121,196,143,150, 44, 66,192, 11,129, 41,125, 94, 21,242,158, 90,250,192,220,121, 22,222,229,235, + 64,128, 23,162,164,210, 38, 26, 33, 57, 24, 79,248, 63,191,254, 13,190,141,135,168,120, 42, 96,231, 73,207,219, 11,135,172, 4, +183,251,196,235,119,134,132, 23,135, 60,141,134, 83, 60,127,254,244, 41,175,190,112, 23,185,127,141,231,131, 49,191,220, 56,210, +221, 99, 62,247, 75,183, 25, 76, 26,164,202,236,233,229,220, 18, 66,192, 46, 45, 62, 69, 42, 93,132, 69, 77,118, 17, 68,178,207, + 55,166,148, 1, 81,229, 44, 38, 67,162,242,137,202,231,151,184,243, 1, 73,202,160, 64, 9, 52, 32, 43,129,247,145,206, 68,158, +252,245, 41, 73,192,169,243,172,141, 35,120,199, 98,214,115,255,225, 25,221,221, 3,228,189, 39, 8,225,144,149, 98,160,106,142, + 71, 53,196,196,181,227, 3, 30, 61,126,192,151,127,240,152,127,181,250, 0,166, 21,105,238,192, 68, 82, 31, 56,101,201,215,213, + 51,196, 72, 80,239, 84, 12,106,193,236, 91,239,103,152, 73,163,152,214, 10,173, 5,183,246,106,174, 13, 70, 8,235,216, 25,213, + 52,195, 10,223,123,126,254,149, 91,136,207,126, 6, 66, 5,147,154, 52,154,240,251,215, 95,228,165,155,251,252,202,179,115,254, +120,176,139, 60, 56,130,151, 61,156, 60, 37, 61,155,195,222, 8, 14,143,224,213,207,209,220,125,145,255,242,103,142,233,164,226, +191, 57, 89,177, 62, 93,192,179, 25,156, 63,207, 66,185,147,247, 51, 94,117,118, 10, 31,220,223, 10,196, 84, 11,215, 15, 17,109, +205,180, 25,114, 52,174,121,190,182,188, 60,104,152, 42, 65,237,123, 4,154,181,113,156, 57,120,104,220,182, 40,199, 84,208,170, + 62,251,207, 29,127,147,162,216,212,249,255,218,216, 65,175, 10,211, 54, 31,251,248, 97,163,169,115, 76,241,222, 46,236,142,203, +122,113, 8, 82,114, 84,122, 20,210,154,189,170,162,119, 61,181, 93,100,117,253,201, 9,248,105,102,212,175, 78,184, 59,222, 71, + 72,201,249,252,156,170,105,153,154,142,211, 4, 66, 68,126,161,213,188, 53, 30,100,219,106,138,159,220,173, 39,147,119,233,212, + 32, 29,196, 10, 82, 93,148,252, 85,214,238,200, 30,150, 5,104, 82, 87,176,232, 8,181,163, 75, 3,238,185, 51,110,178,203,194, + 44, 57, 30,237,230, 46,218, 5, 6,109,131, 15,158,196,146,182, 26,229,144, 19, 20,109,221,210,151,204,119, 85, 85,244,235, 37, + 33,121,146,242,248, 24, 24, 15, 6, 56,211,101,177,172, 86, 88,111, 73, 49,147,229, 36,176,234, 87,232,130, 76,207, 26, 40,240, +193,210,199,136, 45,224,175,144, 34, 43,211,179, 87, 55, 80, 43, 46,130,161,173,134,156, 23, 68,110,171, 5, 93,136, 92, 75, 61, + 67,165, 57,214, 48,168, 26,162, 51,172, 83,228,238, 96,135,123,221,140, 93,221,208, 0,139,224,178, 94, 39, 4,214, 66,225,132, +100,238,214, 52, 74, 65,114,204,141, 5, 33,104,125, 98, 34, 68,225,115, 4, 36,138,152, 2, 39, 33, 49,172, 20,115,227,209,165, + 41,233, 93,224,168, 85, 12,148,102, 21, 34, 73, 43,134, 72, 28,112, 60,168,232,188,192, 9,197, 17,145,199,194, 97,199, 5,243, +109, 77,110, 96,253, 21, 6,131,190, 98,125,107,175, 76,178,117,181,117,100,196,144,175,177, 88, 30,126,151,126,119, 7,163, 42, + 23,253, 72, 78, 40,116, 91, 56,210, 79,102,167, 94,215,249,147,145, 5,111, 23, 74,145,222,200,253, 55, 5,168,100,173, 99,220, + 71, 99, 68, 55,157,251,229,136,126,115,106,206, 6,192,253, 86,115, 80, 73, 6, 82,179,171, 96,164, 52, 62,198, 60,194, 41,151, +119,159,114,186,215,133, 15, 12,180,102,183, 82,132, 16, 9,206,208, 42, 77, 42, 59,197,113, 85,115, 98,214, 52, 73,177, 32, 17, + 83,226,220, 71,162,138, 12, 19,184,152,112,192, 48, 38, 42, 20, 49, 70, 98, 76, 24, 18,170, 4, 14, 36, 37, 49, 82,177,142, 9, + 47,193, 75,208, 40,214,222, 49,173, 43,102, 73,176,211,182, 24, 41,168,218,150,144, 34,114, 48,202, 67, 11,145,133, 51,200, 66, + 18, 74,155, 99,153, 36,135, 9,151,179,150,204, 69, 42,219,221, 74,184,203,134,229,185,121,120, 73,145,145,131, 66,228, 3,148, +139, 91, 27, 68, 42,188,104,121,165,160, 95,198, 18,114,169,156,127,233, 75,191,205,111,254,234, 27, 88,159, 48,198, 17, 93,194, +152,140,214, 77, 81, 48, 29, 15, 81, 82, 34, 81,140, 91,141,143, 57, 64,199,135,236,237, 20, 5,214,162,181,100, 84,201,178, 42, + 74,244, 62,251,211, 33,149, 21,126, 22,183, 84, 50,211, 4, 19,153,190,167,138,237,205, 27,207,197,210,176,234, 45,157,179,156, +116, 29,235, 62, 35,132,141,181,216, 34, 44, 75, 49, 11, 26,155, 16,184,241,210, 29,186,221, 17,255,226,255,250, 43,208,240, 51, + 63,191, 79,115,179,225,161,177,124,127,230, 89,107,248,208, 37,218,169, 98, 48, 81,180,131, 38,187, 37, 4,200, 97,197, 7,222, +242, 78,116,252, 69, 35,153,221, 28,179, 35, 4,235,185,207,228, 80, 23, 48,198,225, 59,139,232, 29, 77,163,169, 43,133,174, 43, +164, 86,164,178, 31,139, 2,108, 74,185, 3,137,153,161,160,108, 96, 16,160, 9, 57, 93, 14, 27,144, 49, 80, 9, 73, 43, 4, 35, +169,104,170,124, 48,248,224,201,140,175,127,235, 67, 22, 11,143,136,137,241,168,193,244,134,139,211, 83,158,127,248,152,250,238, + 33,107, 47,169,147, 38, 73,141,241,134,139,222, 49,190,190, 71, 88,246, 16, 61,223,254,230, 3, 88,120, 68, 35,248,204,157, 29, +222,120,241,128,134,187, 93,191, 0, 0, 32, 0, 73, 68, 65, 84,209,181, 1, 95,248,185, 59,252,230, 47,191,201,235, 71, 67,134, +201, 51,214,130,179,148,168, 43, 73,248, 97,143, 59,247,152, 29,201,201,204,241,108,181,224,162,159, 49,115,142,123,114,194, 55, + 58,199,183, 87,142,112,227, 85, 30,174,122, 24, 76, 65,183,188, 60, 30,209, 74,193,247, 47,230,156,186,132,208, 45,236, 28,194, +120,138, 56,190,142,248,165,223,134, 47,124, 1,174, 95,227,159,222,217,231,119,247,107, 34,130,175,158,172, 89, 93,172,115,129, + 57, 62,128,155, 55, 33,141,225,229,207,242,123,199,183, 16,119,238,114, 54,191, 40,137,107, 35, 24,104,118, 39, 19,142,106,205, +194, 69,142, 42,197, 60,194,142,244, 12, 8,236,198,196,158,150, 28,214,130, 51, 23,232, 72,217,218,149, 34,204,215, 96, 75, 84, +102,252, 17,251,233, 31,103, 1,253,248,199,154, 26,244, 0,142,246,225,230, 81,238,164, 7, 99,168,219,203, 17,248, 69,112, 28, +235,138,107, 42,130,235,168,157,225,251, 39,143,120,244,195, 71, 48, 63,207,247,243,176,134,166,229, 77,145,152, 11, 73, 31, 35, +199,209,115, 46, 20,187,193, 48, 77,145, 69,136,156, 44,139,255,248,147, 44,109,151, 24,209, 2,189,145, 37,135, 23, 85,244, 51, +114, 75, 41, 35, 71, 18,231, 17, 48,224, 3, 73, 38, 2,145,117,200,217,235, 43,219,163,164,166,247,166,208, 53, 45, 90, 10,172, +235, 50, 56, 9, 79,103,123, 20, 2, 19, 12, 34,230, 88, 87, 31, 13,117,221,178, 54, 75, 82,140, 24,223,229,251, 58, 37,124,176, + 56,239,113,201,209, 23,226,219,202, 57, 86,166,195, 16,233, 92,207,154,136, 66,210, 71,207,202, 90, 22, 41, 33,163, 96,229,243, + 24,125, 80, 55,116, 54, 79,122,171, 70,115, 97, 35,149,212,172,146,192,104,205, 68,130, 18, 57,175,189, 18,130,101,140, 28,170, +138, 62,197,156,110,167, 52, 30, 65, 39, 53, 22,232,149, 68,232, 26, 39, 20,125, 10, 56,173, 56, 11,145,186,174,120, 28,139,210, + 93,105,206, 80, 56,169, 17,186,162,139,137, 74,107,100,211, 48, 80, 26, 41, 21, 38,229,120,112,173, 21, 90, 85,212, 85, 69, 82, + 16,189,166,170,242,223, 75, 33,242, 60, 93, 9,241,146, 34, 95, 3,133,160,122, 41,204,220,172, 99, 55,190,245,206, 22,213,113, + 17, 51,167,114, 77, 75, 89, 18,255,202,239,233,162,181, 18, 50,231,131,164,242,140,239,186,159, 80, 81,223, 40,218,235,225,182, +216,140,155, 60, 66,175,171, 92,172,140, 47,157,119, 17,107, 85,165,176, 95, 21, 11,144, 50,174,177,239,243, 39,105,182, 97, 48, +243, 32,120,161,150,140,100, 6, 56, 16, 35,141, 84,244, 49, 20,225, 85,182,152, 61,237, 61, 85,157,199,239, 3, 89, 35,131,207, +158,202,152,199, 55, 67, 37, 88, 57,207,173,175, 62,224,244,246, 20, 68,226,129, 11,104, 33,136, 73, 82, 75, 24,132, 92,164,100, +217,177, 8, 41,177, 41, 49,212,249,112,146,164,196, 39, 65, 7, 24,157,139,157,148, 26, 27, 35, 97, 48,160, 82,217,242,229,128, + 65,173, 17, 49, 50, 26, 12, 88,123,143,108,106, 82, 83,109, 71,131,170,236,182, 85,241, 65, 92, 82, 40,227, 54, 70, 53,168, 60, +177,144,234,146, 35,158,105, 68,122, 27, 52,176, 41,212,155,172, 93, 91,156, 4, 50, 94, 9,136,217,180,255, 27, 47,125,238,102, + 94,121,227, 13,222,124,243, 21,186,222, 98,251,128,119,129,126,109, 25,142, 91,130, 73,212, 77,205,164,174,185,190, 55,160,174, +244,101, 67,180,185, 88, 99, 74,200, 4,149, 18, 52, 58, 99,119, 67, 76, 24,159, 21,199,130, 12,116, 80, 50, 83,230,148,206,244, + 57, 17, 83, 22,168,148,233,140,142,145,100, 60, 43,235,112, 46,176,114,158,182,136, 67,102,166, 99,101, 13, 85,240,212, 33,145, + 20,168, 65,205,141,215, 94,226,249,147,231,124,253,171, 15, 80, 93,226,217, 69,199,252, 81,135,185, 8,224, 18,171,161,132, 93, +201, 91,239,244,252,127,125,199,100,209,241, 90,130,131, 70,243, 43, 14, 62, 53,222,225, 83,215, 14,217,215,146, 7,167,115,190, +118,178, 96,120, 52, 36,106, 56,233, 13,231, 93, 30,169, 78, 7,117, 70,186,214, 21, 82,203,140,218, 20,224, 73, 57, 38,213,101, +145,159,179,249, 33, 90,155,136,238, 29,218,120,164,241, 25,125, 27,161, 65,210,232,138,193,160,162,109, 20,111,157, 44,121,248, +151, 15,243,219,227,160,173, 43, 6,195,138,174,179, 68,227,152, 45, 46,120,244,188, 35, 13,224,173,119,223, 99,237, 12,149,206, +235,152,195,187, 71,188,112, 48,228, 83,135, 59,220,251,171, 31,240,248, 91,115,196,163,200,231,126,238,128,189,241,132,167,231, + 75, 94,216,221,229,230,193,117, 6,205,136,215,175,221,224,223,127,225, 21, 94,220,155,242, 95,253,206, 23,185,117,171,165,211, + 75, 94,191, 62,101,181,178,156, 34,153,254,236,231,208, 59,215,185,254,153, 91,248,113, 11,173,198,116,134, 31,222,123, 8,103, +207,192,116,172,237,130,238,244, 25,223,126,250, 4,218,125,120,241, 53,196,203, 47,193,249,138,223,189,251, 10,191,189, 51, 64, + 41,201,195,247, 30,241,215,127,252,255,176,227,134,252,239,127,242, 53,222,255, 55,127, 4, 15,239,193, 7,223,133, 39, 15,225, +241, 83, 24, 78,248,252,157, 99,110, 29, 31,240, 84,142, 56, 25,142,242, 56, 81, 10, 24,143, 56, 84,154, 86,105,116,130, 69,140, +204,186, 53,187, 10,110, 10,193, 68, 72, 38, 90, 49,214, 26,131,231,241, 34, 67,103,152,247,121,199,216,123, 62,121, 41,254,119, +209, 7,105,216,221,133,221,157, 92,204, 15,246,114,119, 62,154, 22, 43,220,230,123,190,175, 30, 44,206,137,235, 5,179,229,140, +239, 63,123,194,119,190,249,126,222,167, 27,123,249,245,220, 29, 12, 49,192,216,173,184,214,182,188,103, 58, 38, 49,235, 71, 30, + 59,199,190,148,188, 62,150,116, 82,179, 58, 93,125,178, 96, 78,136,210,202,216,252, 99,148,121,194,167,171,252, 60, 73,174,164, +124,153, 92, 68, 76,200, 98,229, 77,100, 44,130, 96, 45, 29,129, 36, 96,105, 59,148,136,184, 20,177,222,210, 59,203,194,245,164, + 20, 48,206, 97,189,197, 38, 71, 76,240,193,249, 35,140,239,233, 76,199,217,242,130, 16, 3,115, 51,167,213, 89, 68, 55, 91,207, +145, 66, 49,239, 23,216, 82,208,151,102,141, 11,129,117,244,172,157,199,166,140,141, 62,247,142,189,186,225,190,143, 84, 90,243, +190,144, 28,212, 53, 78, 10,164,172,216, 27, 15, 89, 38,201,220,123,218,170,166, 71,208, 75, 77, 35, 36,170,174,217,209, 53, 21, + 16,148, 68,145, 88,136, 68,171, 43,140, 82,172, 98,164, 43,137,115, 65, 8,134,237,128,170, 4, 81, 5, 85,179,138,138,132,226, + 89, 72, 28,140, 70, 60,240, 18,161,234,236,203,175, 42,246, 70, 3,246,135, 35,166,163,150, 86, 87, 8,169,233,147, 98, 41, 5, +136,138, 97,219, 18, 85, 77, 18,146, 65,213, 96,138, 5, 41, 74,193, 34, 74,106, 37, 89,167,132,212, 13, 73,203, 44,156,214,242, +138, 56, 83,228,203, 51,165,178,103, 87,185, 94,250, 43,161, 64, 27, 16,205,230,251,165,112,165, 60,215, 71,131,124, 16, 24, 15, +243, 97,116, 58,253, 9,193,103,218, 77,151, 46,183,157,186, 13,249,228, 32,203,130,191, 45,187, 3,185, 41, 74,229, 4, 19,202, +206,221,150, 46, 61, 27, 9,183, 88,198,162,146,191,181,215,112,189, 82,236,169,138, 70, 10,132, 84, 68, 18,163, 74, 97, 98,202, +136,209, 4, 81, 9, 92, 72,200,148,176,214,100, 75, 81,132,206, 90, 70, 74,211,165,196,218, 58,254,249,241,148, 95,208,154, 83, +107,217,169,242,233,110, 82,105, 22, 73,208,200,204, 20, 94, 23,161, 22, 54,135,199, 40,221,208,199, 98, 37,168,170,156,199,142, +196,107, 77,165, 52, 15,173,167,213, 53, 74,231,155,108,169, 51,112, 66, 21, 47,207, 88, 43,218,182, 65, 43,133,241,101,191,151, +194, 21,107, 91,121,253, 54,184,216,164, 41,225,184,133,243,190, 73,228, 17, 91,202, 80, 74,249, 66,216,172, 60, 76, 1,102,184, + 50,206, 55, 87, 64, 5,206,110,109,118, 73, 92, 62, 48,126,237, 55,126,141, 91, 47, 94,231,244,100,133, 53,174, 12, 0, 36,135, +187, 59, 84, 72,170,170, 66, 42,193,241, 94,139, 86, 42,199,224, 74,177, 9,222, 3, 1,109,165,168,107,133,146, 89, 33,103, 67, + 86,150,250, 13,127, 64,230,112, 23,165,179,157, 77, 36, 72, 62, 18,173,203, 29,108,130, 36,242, 65,224, 98,237,104, 98,194,164, +192,220, 24, 22,235,158, 89,103, 50,198, 23, 88,120,143,175, 5,131,189, 29,118,111, 30,241,189, 63,253, 38, 60, 49, 92,219,211, + 60, 63,241,176,220,172, 54,128,219, 45,175,189,113,141,120,183,230,248,238,132,111,181,146,217, 78,195,123,181,230, 94,114, 44, +136,236,118, 61,215,214,142, 55,215,158, 21,137, 46, 6,206,231, 29,170,213, 84,149, 66, 41,197,100, 80,163,155, 10, 93,105,146, +146, 89,140,227, 3,193, 7,156,245,244,107,139, 95,187, 60,233,176, 17,209,123,228,202, 94, 22,117,233, 98,222,183,105, 69,213, +214, 84,163, 6, 89, 73,190,119,190,226,247,133,226, 78,210,188,123,209, 33, 85, 62, 52,121, 27,152, 45, 45,122,103,151,207,238, + 13, 8,195,150,119,238, 61, 99,103,178,195,171, 47,189,198,139,215,110, 48,104, 36, 39,193,243,205,127,253, 45,222,126,126,193, +108, 79,193, 99,207,123, 99,203,237,151,174,115,182,187,207,129, 89,242,103,127,241,109,158,199, 14,221,140,152, 12, 71,188,127, +246,156,217,233,156,221,221, 3,238,254,193,239, 48,112, 2, 87, 89,174,255,234, 63,226,181, 95,124,157, 95,249,244,173,156,108, + 54,106, 8,179, 57, 95, 60,108,248, 63,254,232,203,112,255, 1, 60, 63,103, 33, 60,143,134, 7,252,199, 95,252, 18,255,225, 23, +127,142,191,220,157, 98, 3,136,199,207,248,244,160,101, 80,105,212,108,198,219, 31,190, 3,207,239,243,245,175,124,133,103,223, +254,183,240,193,135,112,239,125,184,127, 31,222,125, 7, 30,124, 8,181,231,129,209,160, 42,254,218, 3,178,134,106, 0, 50,128, + 51,204,164, 96, 12,116,193, 97,189,199,132,192,126,138, 52,193, 51,208,154,186, 76,138,130, 49,188,179, 48,136,101,135,176,203, +156, 29, 16,255,129, 5,189,157,192,116, 7,142,142,224,112, 15,118,167, 57, 17,174,170,243,189,169,212,118,146,232,201, 35,254, +245,138,116,118,206,179, 39,167, 60,252,225, 3, 78,159, 62,207,113,198,155, 78,123, 52,229,238,141,125,166,193,177, 55, 28,240, +204, 89,172,115,104, 33, 24, 9,120,102,122,106, 33, 24, 70,199,189,222,179,114, 14, 35,225,165, 95,124,147,139,247,239,127, 66, + 72, 83, 4,217,148,117, 93, 68,196, 10,145, 28,162, 82,136,122,128,232, 3,162,213, 8, 41,179,218, 60, 8,132, 22,136, 68, 62, +100,134,128, 8, 1,239, 3, 54, 58, 58, 18, 43,223, 97,188, 35, 68,143, 18,146, 69,183,196,147, 29, 42,243,245,146,181,239, 49, +222,240,116,181, 98,110, 12, 51,219,241,112,117,206, 78,221,242,108,118, 74, 76, 1, 37, 4, 15,206, 79, 25, 85, 13, 11,211,179, + 48, 29, 11,235,152,185,158,153, 49,184, 36,120,152, 34, 70, 86,236, 53, 19,118,171, 1,175,238, 29,209,161, 57, 26, 14,249,161, +210,200,186,197, 70,152, 69, 65,211,180,120,161, 89, 8,205,209,112,196,181,166,230,238,206, 4, 89, 85,172, 82, 98,183,105, 72, +229,223, 51, 49,160,149, 98, 17, 3, 81,215,204,137, 56,169, 56, 24,142, 25,214, 53,149,168,104,155, 33,171, 24, 89,196,196,185, +174, 24, 75,201, 7,214, 51,210,154,147, 20,177,186,230,184,170, 57,108,235,204, 50,145, 85, 78,252,211,154,251, 33,224, 84,197, +169,170,168, 18, 8,149, 1, 72,125,146, 76,235, 1,231, 36, 90, 33,137, 90, 51,208, 21,161,110,242,189,228, 2, 76, 38,249, 61, +171, 84,169,119, 5, 76,227,227, 86, 72,157,210,150,105,210,151,131,217,198,158,188, 73,120,187,244,176,151,213, 74,219, 20, 65, + 83,147,107,234,112,248, 19, 40,234,149,206,212, 56, 89,216,180,155,136,186, 90,230,177,252, 64,103,146,220,160, 64, 79,122, 83, +186, 75,185,245, 91,127,100,180, 84,124,236,155,110,176,213, 4,155,184,211, 84, 52, 82,102,177,130,148, 52, 72,156,204, 78,176, + 70, 72, 66, 74,172, 66, 98,230, 3, 35, 1, 71,131, 33, 51,231, 88, 24,203, 81, 51,224,162,239,105,165,100,208,182,124, 38,101, + 11,146,214, 21, 54, 5,166,186, 97,149, 18, 90, 43,214, 33, 17, 93, 96,168, 4,201,120,124, 85, 80,130,189,161,105,106,170,166, + 37,166,128, 67, 32,154, 6, 23, 28, 23, 49,113,125,178,203,179,181,161,214, 21, 85, 57, 13,207, 75, 64,140, 75,129, 90,215, 56, +235, 72, 8,140, 42,106, 8, 31,182,150, 62, 45,182,157,123,173,182,142, 0,138,143,189, 45,147,144,226,223,207,227,151,114,112, + 74,177, 0,108,202, 9, 14, 87,224, 4, 27, 95,100, 25,213,139, 34, 79, 23,197,211, 24, 2,191,243,207,254,128,241,116,200,217, +243, 25,198,250, 34, 66,203,118,172,182,105, 24,181, 21,215, 38, 67,246,134, 21, 82, 40, 72,121,114,145, 16,217,171, 94,176,139, +147,129,190,196, 97,251,148,215, 26, 41,165,252, 22, 42, 65,173, 36, 18,121,137,171, 36, 68,116, 17, 68,198, 16, 49, 9, 86,214, +179,232, 44,117, 8,244, 93, 46,232,115,103,241,206,161, 73, 44,100,226, 73,231,105,106,201,241,222, 62,231,167,103,252,203,255, +241, 93,150, 83,120, 98, 34,141,137, 12, 10, 96,139, 62,194, 58, 48,184,213,240,250,193, 46,135, 77, 11, 66,112, 56,157, 48, 29, +143,184,243,234,235,196,227,107, 60,105, 27,222,183,134,209,254, 14,225,238, 62,119,111,239,113,112, 52,101, 48,108, 80, 82,178, + 51,106,208, 77,141,174, 20, 66,231,208, 26,159, 34,174,115,196,149, 37,174, 12,126,222,145,150, 6,107, 60, 51,239, 48,107,143, +180, 17, 21, 2,202,165, 12,179, 16,217,242, 71,163,145,173,102, 69,228,222,202,113,227,133, 9,213,237, 9,103,227,134,106, 82, +227, 67,226,230,235, 59,124,246,223,125,129, 63,252,252, 29, 94,121,237, 24,127,180,135,221,191,193,209, 11,183,248,210,231,110, +241, 75, 47,237,243, 76,104, 46,230, 11,222,249,193, 61,186,241,132,223,250,167,191,129,255,212, 46,253,222, 46,255,253, 43, 47, +240,250,193,148,231,159,122,137,119, 30,126,192, 95,255,223,143,184,111,159,177,236, 79, 89,137,200,159,127,233, 55,105, 63,117, + 11, 53,172,241,175,221,193,188,241, 6,135, 55,247,249,229, 91, 83, 94,155, 84,164,139, 37,255,203,255,240, 63, 51,121,248,136, +201,206, 17,235,135,239,240,224, 7, 79,224,198, 62,124,246,243,252,225,175,254, 10,255,197, 63,186,195,167, 38, 21,223,123,239, +140, 15,254,237, 55,225,222,183,248,225,122, 78, 67,205,215, 58,135, 9, 1, 49,154, 66, 43,243, 14,127,181,248,168,122,222, 89, +196,253,251,136,217, 41, 23,201, 49,244,129,107, 90, 82,251, 14, 84,141, 75, 57,186,249, 52, 70,186, 16,208, 49,210,117, 6,133, +103, 95,101, 65,146,117, 54,243,199,173,227,195,139, 53,110,113,145,149,236, 49,254,195,176,182, 59, 59,176, 59,229,238, 43,183, +217,191,126,157, 52, 26, 97, 54,177,152,226,138,208, 53,138, 18, 4,211,193,249, 2,158,156,192,249, 9,204,231,217,131,255,241, + 17,190,247,204,116,195,206,160,166,149, 10, 3, 88,103,216,197,243, 36, 36,174, 87,154, 41,145,115,107, 57,104, 53,149,245,156, +173, 58,226,176,198,232, 17, 92,156,255,205,102, 93, 74, 68,242, 8,106,132,220, 88, 85,213,150,113, 81,235,252,241,148,138,147, + 74, 34, 76,143,208, 10, 17, 74, 81, 71, 32,156, 71, 24, 79,212,255, 63,105,111,246,107,105,118,158,247,253,214,248, 13,123, 56, +243,169, 83, 85, 93, 93, 93,172,174,158, 56,153, 45,137, 10, 41, 51,178, 33,193,130, 36, 35,145, 97,192,210,133, 12, 36,200,159, +146,155,228, 46,119, 9,144, 32, 72,174,236, 4, 50, 34, 40,242,144, 72,182,168, 33, 20,105, 81,162, 68,145,236,185,217,213, 93, +243,169, 51,236,233,155,214,148,139,245,157, 58, 69,138,162,100,251, 0,141, 70, 55,186,107,239,179,135,245,190,235,125,159,231, +249, 9,252,186,167, 75,145,158,192,178,239, 88,199,129,197,208,240,120,185,100, 29, 7, 78,251, 53,139,211, 5, 67, 18,244,109, + 79,127,182, 33,124,252,132,199,143, 31,211,214, 5,235, 97,224,254, 98,201,188, 40,120,176, 94, 48,196,200,241,224,120,216, 14, +156,119,129,141,146,172,148, 38,152, 10,165, 43,190, 48,219,195,214, 51,122,169,216,155,206,241,170,192,235,130,199, 33, 81, 84, + 53, 66,107, 30,247, 29,167,194,176, 37,224,106, 89,241,210,116, 66,101,242, 69,170, 46, 74, 58,151,215,114, 46, 69, 74, 41, 51, +162, 59,193,134,200,160, 13,115, 99,159, 89,248,148, 49,164,148, 24,132,160, 11, 18,133,224, 81, 74, 76,164, 98,153, 18,103,202, +160, 99,224,192,150,204,170, 10, 63,154,219,210,200,182, 40,147,226,254,152, 26,249, 24,201, 92,192,169,208, 76, 77, 73,212,138, + 90, 91,162, 52,204,109,201, 32, 52, 93, 20, 76,116,137, 85, 2, 35, 21,190, 40, 17, 66,147,252,144,207,237, 62, 60,103, 87, 22, +151,235, 81, 57, 94,116,195,184,254,185, 72,103, 29, 87,121, 25, 42,147,158,241,211,233,250, 49, 42, 88,193,164,248, 17, 66,185, + 11,203, 68,248, 49, 66,141,231, 23,253, 33, 94,230,209,198,209,195,105,213,248,224, 64, 61, 25,159,116, 28,119,228,234,178, 51, + 49,227, 46,193,143, 41,107, 23,202,213, 66,231,241,124,140,208, 12,212,219, 5, 49, 4,202,162,192,142, 35,185,141,136,153,181, +173, 52, 33, 4,124,138,148, 35, 23,253,220,123,226, 38,113,213, 26,122,163,184,223, 52, 92, 43, 13, 78, 66,215, 52,217,163,143, + 68,141,120,155, 53, 1,161, 20, 93,204,106, 72, 10, 69,179,118, 56,171,168,186,142, 6,216,169,106,150, 67,207, 68,102,155,158, +181, 10, 57,120,142,173,196, 72, 75,231, 58,174,204,107,150,173,103, 9,180, 74, 82,203,188,195,201,147, 9,143, 49,138, 74,192, + 12,203, 61, 95,228,219,132, 43, 51,129,169, 24, 45, 11,197,197,222,123, 28,193, 91,147,247, 99,155, 54, 91, 4,149,189,108,128, +226, 56,126,187,236, 0,198, 46,126,180, 21,170,254,185,200,247,113,255,166,100,110, 0,100,238, 0,165, 54,212,165,193,150, 5, +206, 53, 12, 33,210,119, 13,222, 11,246,111, 79,241, 33, 17,197, 40, 16,148,163,109, 45,137,156,229, 78, 78,111,138, 49, 71,196, + 94,172,137,196, 24,177,120, 17, 56, 18,158, 77, 13,199,226, 54,138,221, 32,162,165,192, 27,149,227, 98, 35,249,182,236,125,238, +234,157,207,116, 52, 45,104,122,207,208,123,102,209, 83,171, 18,167,224,183,126,239,109,184, 62, 82,186,250, 72,159, 18,189,146, +212, 34,177,159,224,245,168, 88,252,155,167, 60,184,125, 78,115, 84,115, 62,209,220,222,154,115,104,167,108, 25,139,173, 42,142, +174,237,211, 41,193,244,234, 22,187, 19,203,238,188,162,117,158,224, 19, 58,197,188,222, 82, 57,137, 42,250,172,234,239, 58,143, +223,244,132,243, 6,183,106, 9,231, 93, 14,242, 16,153,210,244, 84,104, 90,155,113,141,170,200,116, 41,161,198, 23,164,243,180, + 70, 50, 36,201, 79,207, 74,254,197,147, 13,167,107,207,237,195, 57,183,141,224,177,145, 92,157, 27, 10,169, 57,237, 60, 79,124, +226,113, 18,232, 74, 17, 62, 94,242,218, 43, 87,216,149,154, 7,149,226, 65,167,249,142, 87, 60, 57, 59,165,251,246,135,184,193, +243,107,175,189,194,230, 51, 91, 20,127,244, 93,222,191,255,152, 95,249,213, 95,230,119,204,255, 67,247,203,255,152,111, 61, 56, + 97,251, 11,159,226, 5, 35, 48,117,102,220,171, 62,112, 48, 51,124,244,212,241,251,159,172, 49,181,160,148,112,171,168,232,154, +158,170,180,188,250,226,171,124,237,168,131,207,253, 4, 92,187,193,111,173,122,190,240,237, 7,124,252,209, 61,190,250,141, 63, + 64,188,245, 33,105,113, 6,243, 45,190,254,218, 9,236, 94,131,249, 30,136, 9,226,232, 54, 76,102,164,191, 0,158,220,191, 44, +182,133, 37,109, 29,192,222,156,157,232, 56,220,156,113, 93, 12, 28, 39,193,188,208,252,222, 96,115,115, 58, 56,218,206,115,191, +235,192, 37, 78, 54, 17, 49,145,188, 94, 22, 20, 50,127,250,223, 93,173,105, 78, 79,114, 24,199, 15,121,226,255, 86, 22,187,194, +230,209,250,209, 21,174, 95, 59, 98, 94, 84,188, 52,219, 70, 73,195, 7,205,146,191,236,154, 49, 23,194,141, 65, 89,125, 46,232, + 79, 22,176,218, 60, 83,254,255,181, 63, 41, 66,223,241,193,202, 48, 0,243,233, 20, 33, 18,203, 0,187, 42,210, 12, 29, 70, 23, +148, 69,129,118, 29,239,133, 0,147,146,229,119, 63,204,254,245,209,238, 36, 46,206, 93,123,121,108,139, 64, 22,202,217, 81, 51, +163,244, 88, 27,100, 22, 46, 63,107, 44, 58, 64, 34,214, 93,118,202,248, 46,143,110,209, 48, 47,225,120, 1,147,154,212,247,184, +145, 50,150,146,200,254,105,171, 25, 78, 61, 41,102, 49,150, 96,153, 85,247,139,243,188,167,247,158,230,207,207,104,182,247, 96, + 94,179,120,188,130,249, 4,140,203, 83,179,114,108, 54,172, 1, 85,242, 70, 57,227,139,135, 7,232, 50, 43,253,159, 58,201,147, + 20, 81,198, 64,211, 82, 87, 51, 30,187, 22,133, 34, 20, 19, 8, 3, 94,104,142, 38,134,165,207, 72, 85, 77, 36,197,108,185,117, + 73, 97,147, 35,197, 64, 45, 37, 70, 74, 66,244, 20, 72,132,200,185,246, 3, 9, 31, 3, 86, 42,246,100,129, 65,240, 81,227,216, + 37, 67,112,172,148,196,224,169,139, 2,157,160,247, 30,173, 84, 94,112, 40, 77,240, 30,161, 5, 97, 32, 51,214,129,119, 82,100, + 27, 48, 90,179,173, 20, 66, 42,100,130, 38,122,118,202, 2,161, 13, 11, 55, 80,150, 59, 48,244, 76,221, 64,168, 21, 46, 57,220, +217, 41,241, 98,172,126,177,197,121,150,221,226,243,100, 85, 91, 88,119, 80,155,108,143, 30, 5,186,153,246, 57,134,142,197,144, +111,235,253,144,255,157, 16, 63,116, 83, 47,198,253,204,133, 2, 42,134, 31,159,237, 30,227, 24,214,160,242,200, 76,219,203,226, + 93,154,252, 38, 22,118,140, 36, 29,201,100, 70, 94,198,221,121,127, 73, 29,187, 16,210,149,227, 23,172, 52,249, 3, 17, 3,141, + 84, 28,213,134,235,117,222,111, 12,249,227,137, 85, 26, 41, 4, 67,140,204,140,101, 17, 2,143,250,129,137, 50,184,193, 83, 90, +133, 1,134,224,113, 62,142, 35, 19, 16,163, 13,162, 77,144,164,200, 65, 41, 49, 82, 22, 5,231,206,161, 98, 96, 45,198,238, 47, + 74,210, 40,244, 48, 73, 32,173, 33,218, 12, 80, 88, 43,141, 87,154,101, 31, 16,202,176,244,145, 82,105, 22,163,173,192, 9, 80, + 34, 97,133, 38,198,200,148,200,126, 97,232, 99,228, 70, 33, 89,123,184, 54, 55, 44,252,184, 87, 49, 69,126,205,211, 5, 8, 96, +228, 61,219, 2, 98,159, 85,193, 50, 93,134,244,168,209,187,142, 24, 51,244,229,101,166,188,240, 16,117, 94,105,164, 52,222,210, + 71,167,129, 22,207,156, 8,255,248,159,254, 23, 12,222,179, 90,118,128, 96,107,107,130,182, 5, 90,105, 68,202,227,187,137, 45, +217,223,158, 80, 24, 3, 40,204, 40,120, 19, 36,196,184, 47, 55, 58,135, 88, 36,192,143, 52, 54, 57, 42,222,165,202,169,124, 82, +228, 36, 57,141, 64,250,128, 28,124, 30, 63,197,113,229, 50, 56, 54,103, 13,195,186,161, 89,119,104, 63, 32, 99, 34,117, 14,239, + 50,208,165,176,134,195,195,109, 78,151, 11,190,246,135, 79, 71,229,232,152,214,151, 98,230,103, 55,129, 69, 72,124, 52, 36, 62, +155, 36,111,244,146, 79,249,196,108,227,136,235, 13,199, 97,197,251,199, 79, 40,148,197,163,168,102, 5, 7, 91, 37,193, 74, 86, +157,227,100,209,177,233, 28, 69, 8,204, 71, 11, 97, 24, 60,125, 63,176, 90, 15, 52,171,142,245,241,154,254,100,195,234,201,138, +205,249,154,184, 25, 80,157, 71,251, 72,223,123,150, 74, 83, 86,134,114, 98, 81,181, 33, 21,138, 88, 72,156, 20, 44,181,226, 79, + 31,119, 60, 58, 93,227,155,129,147,143, 22, 28,157,183, 44,134,196,199,117,193, 50, 65,209, 58,110,198,192, 31, 55,158,150,200, +102, 24,248,179,251,107, 14,118,106,206,159,182,124,175, 13,116,198,112,243,133, 43,188,118,235, 26,119, 23, 3,183,203, 9,127, +119,119,194, 55, 79, 26,126,251,172,229,219, 31, 63, 96,239,214, 45,236,207,254, 44,211,237,146,159,120,229,144,151, 42,205,237, +185,161, 52, 18,221, 5,132, 15,252,230,127,255, 63,243,254,255,254,239, 40,223,124,131, 23,125,196, 8,201,222,203,183, 25, 40, + 57, 57, 94,114, 79,150,184,107, 55, 88, 40,141,120,112, 23,222,251, 14,127,242,173,111,242,239,191,241, 53,120,235, 61,232,187, + 92,112,250, 13,220,191, 15, 67,139,152,150,136,233, 54,162, 40, 97,235, 8,113,116,132, 40, 4, 98,136,136, 43,215, 16, 47,221, +130,163, 35,196,214, 54,251,229,156,219,211, 25, 34, 70, 14, 38, 5,195,232,120, 57,189,136, 80,245, 62, 31, 90,237, 0, 9, 30, +111, 6, 94,180,128,115,188,127,186,224, 27,143, 22, 99,196,178,255, 43,226,178,191,241,198,110, 44, 76,199,189,249,124,202, 11, + 59, 7,124,250,240,136,169, 45, 16, 70, 50, 23,134,123,174,103,240, 29,172,155,204, 49,127,122,158, 85,237,205, 58,143,217,255, + 54, 28,140, 32, 73, 74,115,115,103,134,240,158, 46,146,209,171, 2, 74,109, 9,222,115,104, 60,223,216, 12,132, 16, 97,213,102, + 43, 92,159,109,174,194, 94, 68, 55, 22, 16, 37,162, 48, 8,165,161, 40, 17,133, 69, 76, 42,132, 80,200,210,230,219,120,204,107, + 68,145, 98,182,130, 42,131, 8, 14,169, 12,194,245,185,225, 30,134,252, 29,238, 6,196,102,200, 24,212, 38, 34, 86, 77,190,201, +175, 55,136,193,195,166, 69,156,158,229,191, 55, 61, 98, 61,254,222,189, 3, 53,142,251,117,157,181, 82,166,132,157,233, 24, 40, +118, 33, 16,172,242,164,177,172,184, 53,219,230, 43,123,115, 76, 97,217, 41, 70,124,110, 18, 60,118,129,101, 28, 56, 13,137,117, +200,122,171,228,134,103,231,219,171, 90, 81, 68,129, 45, 50, 53, 51,166,200,150, 86, 68,159, 11,160,140,158, 73,138, 20, 74,178, +114, 61,101, 18, 88,149,107,203, 38, 6, 80, 22, 73,194, 74,131, 78, 33,143,223,125, 36, 42, 69, 76, 89, 56, 56,144,216, 33,178, + 91, 25,132, 72,104,161, 81, 66,228,210,229, 19, 90, 37, 62,232, 29, 33,196, 44, 10,148, 10, 33, 36, 47,149, 37, 9,112, 49, 18, +165,196,142,154, 42,167, 12,171, 20,113, 72,138, 20,145, 9,250,232,169,149,193,248, 1, 69, 98, 75, 68,194,168,119,146, 74,230, +193,181, 20,185, 14,111,150,227,216,113, 76,165, 51,230, 50,247,196,152, 92, 7,244,232,131, 23,227,133,109, 24,158, 43,234, 90, +143, 51,252,231,162, 37,148,248,155, 35, 11,165,204, 99,224,194, 94,142,127, 43,123,201, 12,103,140,109, 92,143,193, 15, 73,102, + 53,230,197,152,232, 34,194, 34,230,113, 27,117, 49, 62, 65,149, 71,105,227,174,254,213,210, 48,173, 42,144, 18, 35, 50, 47,216, +201,156, 57,174,148,166, 13,142, 90,105,254,112,209,210,118,142,235,181,230, 60,120,116,128, 74, 74,218,222,129,200,145,156,143, +219,129, 82,231, 78,103,209, 57,148,209,217,182, 16, 19,149, 82, 56, 4,201, 5,246, 73,156,105, 73,236,122,124,140,172, 72, 20, + 36,144, 26, 95, 85, 56,239, 40,116, 65,135,162, 75,153,108,118, 38,192,167,144,149,222, 33, 3, 51,134, 20, 40,165, 98,187, 16, +180,189,163, 82,145,160, 4,123, 82,240,184,201, 98,191,225,162, 75, 75, 33,107, 20,194, 40,124,209, 58, 31, 86, 23,175,101, 84, +185, 99,144,207, 29, 89, 23,169,115,105, 76,123, 9,227,205, 93,143,111,188, 26, 95,227,174,203, 77,216, 56, 97, 81, 63,249,101, +126,233, 75,159, 97,213,246, 44,158, 46, 73,200,188,186, 81,153,133,190,183, 51,165,180, 5,243, 89,193,188, 42,145,163,210, 84, + 34, 32,141,164, 35,149, 85,168, 86,103,113,136, 72, 41, 7,173,140,141, 68, 26,189,155, 82,200, 49,152, 38,131, 10, 98,200,196, +187, 97,240,153,130,231, 2,237,224, 56, 61,223,176,105, 58,220,224,113, 62,143, 87,205,248,103,201, 4,251,123, 83,138,157, 45, +254,240,123, 31, 51, 91,123,206, 69,204, 13, 99, 28, 87, 16,110, 20,107,142,222,240,247, 8,124,107,136,148, 7,138, 67,171,248, +194, 65,197,203,147, 25,135, 9, 68,116, 68, 31,112, 62,225, 18,172,218,129,229,170,101,209,244,136,224,217, 45, 12,211, 50,231, + 27,120,151,247,231, 67,215,211, 54, 61, 67,219,179, 92, 54, 60, 89, 55, 44,186, 30, 98,196, 36,129, 34,145, 72,180, 49,145,148, +194,100, 3, 63,201, 72, 82,169,112,243,130,149, 86,188, 88,192, 23,107,195,225,142,229,212, 42,238, 46, 7, 78, 14, 39,204, 39, +150,193, 7,134,179,142,173, 39, 75,222, 30, 9, 78,201,193,103,125,224,231,118, 43, 30,118, 29, 77, 10,236,213, 5,213,149, 57, +219,251,115,234,170,230,211, 51,195,235,237,192,187,239,221,229,119, 99,201,245,175,124,133,151,175,237,179,175, 4, 7, 90,112, + 85,195, 47, 76, 5,247,158,174,184,251,135,111,243,245,255,237,255,228,247,255,135,127,203,209, 52, 81, 87,146, 15,255,199,175, + 82,117, 31, 49,125,245, 53,206,128,191, 76, 80, 29,204,120,241,149, 67,142,136,124,251,155,127, 8,127,241, 29,120,114, 31,119, +255, 62,226,116,253, 3, 80,160,252,201,144,136,197, 89,222,111,207, 10,196,214, 17,170, 40,249, 71, 55, 95,224,239,221,121,157, +171,135,215,120,239,251,119, 17, 33,241,147, 71, 59, 28, 23, 91, 28,104,205,142, 18, 24, 99,209, 41,175,116,154,224, 56, 30, 28, +196, 1, 81, 76, 16, 59,219,121,106,178, 92, 34,218,200,251,167, 75,222,122,248,148,251,103, 27, 68,212,136, 43,123,136,214,255, + 64,244,241,143, 23,194,217, 44,130,187,114, 0, 71,251,176,181, 13, 69,137,179, 83,238,204,166, 40,173, 48, 82,161, 8,232,190, +225,254,201, 73, 46,226,143,206, 96,125, 14, 87,175,194,147,167, 63,158,140, 88,215,207,133,130, 36,152, 84, 60,238, 61,135,211, +154, 46, 69, 62, 51,181, 60,241, 16,195,192, 65, 33,121,212,229,203,195,208,182,163,104, 42, 55,240, 66,171,204,105, 40,107, 68, + 85, 32,172,201,227,244,249, 12,153, 4,162,178,200, 20, 17, 69, 46, 92, 66, 8,132,136, 72, 45,145,214, 34, 92, 14, 45, 82, 49, + 34,147,207,134,164, 4, 50, 70,228,186, 65,246,153,167, 32,124, 64,182, 77, 46,238,155, 14,209,118,185,240, 55,185,105, 19, 62, + 32,100, 1, 87,174,114,227,104,135,163,107,123, 28,237,205, 41,107,195, 82, 87,136,178, 64,236, 76, 17, 91,219,168,249,156,106, +107,155, 80, 22,164,162,120,246,154,191, 86, 88, 14, 38, 53, 82, 42,134,144,198,115, 56,129, 75,156,134,200,189,161,203,151, 62, + 55, 18,244,136,144, 2,109,130, 59,181, 65,199,156, 24, 90, 8, 40, 83,196,117, 13,237,208, 97, 99, 64,165,196,208,247,204,132, +160, 0,108,244, 84, 66, 50,144, 24,162,103,199, 88,124, 12, 56, 33,184,219, 39,206,156,199,227, 51,161, 14,232, 7,199, 3,239, +216, 79,145, 93,107, 41,165, 70,166,152, 97, 48, 4,158,180, 3,167,206,225, 66, 32, 41,137, 82,154, 47, 84, 21, 37, 89,255, 85, +168,156,216, 87, 22, 19, 42,169, 24,156, 67,217, 60,105,216,160,152, 25,141,140, 48,179, 53, 41,180, 28,136, 64,109, 21,251,165, +101,207, 74,162, 80,244, 62,145,252,152, 65,146,252,152,210, 55,214, 70,173, 70,173, 90,186,140, 10, 30, 70,132,112, 14,236,135, +162,120,174,168, 95, 40,238,210,115,217, 80, 63,142,109,252,188, 5, 68,141,183,113,165, 47, 11,186, 85,227, 19, 10,121,167, 22, +195,229,168,190, 40,176, 55,174, 19, 86,203, 17, 88,114,193, 88, 38, 63,190, 26, 21,219, 77,151,159, 71, 81,112,125,103, 70,141, + 96, 90,228, 49, 85, 31, 7, 10, 12, 46, 69,172, 22, 88, 20,143,188,195,137,192,227, 33, 98,100,226, 69, 85,176,118,158, 46, 4, +172, 16, 8,149,133, 86, 59,133, 97, 25, 2,141, 11,204,166, 85,142,241, 84,138, 66, 10, 54, 41,209,135, 64, 73,162,213, 2,235, + 3,105,200,183, 92,149, 2, 58, 10,158, 36, 79, 82, 2,165, 13, 31,244, 30, 33, 21, 15,135,158, 94, 41,206,164,204,190, 71,160, + 25,195, 86,124, 76, 28,105,141, 78, 17, 37, 34, 69, 76,148,192, 58, 69,174, 25,197, 11,219, 53,247,125, 34,117, 67, 46,196, 23, + 54,136,139,244, 33,153, 35, 31,145, 41, 23,118,105,242,107, 27,199, 27,119, 26,111,235, 23, 35,246, 36,126, 16,109, 43,121, 6, +202,201, 34,186,252, 33,124,253,211,175,241,147, 95,184,195,211, 39, 27,154, 77,135, 82,138,174,113,184,198,209,181,158,201,180, +230,214,254, 22,187,149,165, 48, 38, 55, 42, 58,119,174, 81, 36,122, 23,241, 49, 97, 20,148, 54,243,212, 99, 74, 12, 99,164,156, + 18,185, 24,199,139, 29,224, 40,242,115, 62,211,152, 92, 12, 52,206,103,158,186,143,244, 93,207,226,188,165, 25, 28, 68,207,224, + 60, 93, 55,228,141,142,200, 1, 14,251,187,219,172,207, 23,220,251,131, 39,168, 82,112,220,197, 60,141,136, 2,218,231,242,236, +159,159,187,238, 42,238, 29, 89,222, 42, 4,195, 78,201, 83, 1,167, 34, 51,220, 85,240, 20,194,160,133,162, 64, 96, 84,166, 85, + 29,108, 85,236,110,215, 20,165,205, 72,202, 68,166,170,141,152,198,204,216,137,156,183, 89,205,155, 4,168,148, 70, 68,120,110, + 98,156,148, 56,161, 8, 42,191, 15,186,208, 24, 37, 41,140, 96, 57,102,227,123,145,216, 19,137, 15,143, 55,188,110, 3,219, 49, +208, 5,136, 66,176, 16, 18,171, 4,125, 76, 92, 73,240,138, 17,184,110,224,107, 70, 49, 49,134, 55, 15, 74, 14, 38, 26, 81, 20, + 76,247,167,124,254,250, 14,179,171, 51,222,155,238,243,237,233, 54,147,189, 9,159,214,137,185, 27, 48,109, 71,179,110,120,122, +182, 70, 60, 94,112,179, 86,184,205,154,117,179,102,209, 4, 78,222, 31, 16,175, 78,248,169,191,115, 19,117,125,143, 43, 47, 31, + 32,164,224,222,247,143,249,232,253, 7,156, 63,124, 72,124,248, 33,203, 7,199,136,126,200, 99,217, 8,130,248, 67,240, 22, 63, +202, 54, 92, 46, 10,201,129,173,249,197, 59, 55,216,169, 11,254,217,160,240,135, 87, 16,187,219, 60,146, 5,164, 64, 37, 13, 83, +109,184, 58, 41, 41, 68,164, 16, 1,209, 59, 62,218,172, 16,218, 34,182,246, 96,114,128,216,158,163,106, 11, 50, 33,154, 11,128, +209,152,203,208,244,192,128,248, 17,103,150,184,208,254, 76, 39, 57,218,245,224, 16, 14,247,178, 77,109,103, 43,219,211,138, 18, +180,166, 87,150, 79, 9,137,148,121,122, 38, 82,226,244,252,152,251, 79, 78,224,238,147, 28,158,227, 60,156,158,253,248,130,190, +189,199,252,179, 47,209, 47, 54,121,202,160, 68,214,121,204, 38, 68,149, 49,167, 31,246, 3, 3,217,122, 26, 19,156,247, 61,125, + 31, 16,198, 16,156, 3, 23, 16, 86,231,255,183,158, 34,234, 18, 68, 68,212,249,134,107, 10,139,157, 90,180, 15,204, 39, 37, 59, + 66, 80, 72,197, 16, 3, 90, 10,132,144,200,110,200, 43,175, 24, 81,147, 2, 57,228,226,167, 0,213, 69, 84,148, 40, 76,182,173, +186,132,114, 9,233, 61, 50,133, 92,244,131, 64, 42,141, 40, 45, 98,178,141,216,218, 98,111, 86,240, 51,219, 21,183,108,193,157, +121, 77, 97, 44,161, 44, 56,223,223,167,158,239,176, 85, 87,236, 84, 53, 62,121,164, 52,227,170, 77,160,132,230,166,209,236, 21, + 38,163,175,147, 64,132, 72,146,146,227,182,227, 27,235, 53, 41, 14,224,218,172, 77,232, 86, 99,124,238, 64, 43, 18, 47, 6,207, +158, 86, 36,223, 81,199,132,107,214, 44,134,142,171, 41,103, 59,216,152, 87,176,132, 76,127, 44, 0,235, 7,180,202,142,149, 97, + 20, 94,159,196,200,159,175,215, 52, 82,147,146,224, 65,223, 81,168,130,227, 24,242, 20,163,239,216,150, 17,225, 29, 49, 56,226, +208,211,224,249,214,217,146,110,252,188, 79,149, 66, 1,187, 66, 81, 26,149,203,154,212, 8, 33, 33,120,130,174,208, 35,108,204, +105,139,141,142,101, 20, 76,132, 64,132,129,153, 45,136,110,160, 84,144,198,122, 87, 40, 40,149,196,106, 73,144,138, 96,116, 22, +204, 73,159,235,231,152,240,137, 24,217, 42, 93, 51, 6,190,141,122, 54,149,243, 74,126,112,252, 30, 46,114,216,185, 76,189,249, + 91, 89, 64,200, 35, 22, 57,222,192, 47, 30, 68,140,129, 41,221,152,166,211,249, 60, 82, 10,145,176, 89,229,142,204,135, 75,114, +155, 27, 50, 39,118,221,193,122,117,169, 6,175, 75,182,167, 5, 59, 69,145, 5,108, 72, 10, 85,176,137, 61, 70, 10,140, 52, 36, + 18,231,222,177, 14,142, 70, 8, 92, 23,209,210, 51, 55,146,117,140, 44,187,241,131,170, 37, 49,101,244,101,101, 77, 30,205, 11, +193, 68,105,150, 49, 32,200, 59,228, 42,101,171, 28, 33, 80,196, 64,138,153,237,221, 39,193, 32,243,248,229, 97,132, 61, 45,249, +190, 11,120, 83,114, 50,244,184,232,113, 73,162,136,180, 49,162,147,224, 64,129,213, 17,145, 2,115, 1, 83,107, 96, 24,152, 75, + 5, 8,206, 18,124,170,182,116, 74,209, 92, 88,253,144, 63, 56, 59,212,242,146,102,119, 33, 46,212, 35,201,229,194,218, 38,198, +155,186,146,185,240, 95, 8,242,146, 24,173, 46,126,132,188,100,242, 67,177,176, 0, 0, 32, 0, 73, 68, 65, 84,171,216,237, 87, + 95,229,149, 87, 94,100,189,238,243,205,184,207,169,105,222, 7,124,151,168, 39, 37,175,223,216,101, 90, 91,172,214, 4,145, 15, +138,156,155, 76, 30,177, 75, 40, 68,246, 62,167,209,206,230, 99, 32,196,244,236,105, 10,153, 15, 49, 59,178,141, 7, 23, 17, 33, + 16,198,176,149,228, 2, 67,231, 56,105, 6, 78,154,158, 85,223,115,188,110,216,120,135, 31, 60, 25,101,223,227,165,100,182,187, +205,253,183,238,145,214,142, 91, 42,115, 1,174, 32, 88,196, 68,120,158, 29,112,193, 55,190, 83,192,142,201,130, 45,163,184,215, + 37, 62,238, 2,107, 19, 88, 9, 40,167, 19,236,124, 11, 61,159,176,189, 93, 51,159,150,204,107,195,254,180,100, 54, 41,209, 70, +227,147,192,187, 72,219, 13,217,187, 30, 99, 14,149, 9,145,206, 69,186,206, 17,124,198, 90,202,152, 50, 40,104,116, 8, 12,128, + 83, 25, 91,151,164, 96,183,233,169, 63, 58, 33,189,245, 9,233,235,239, 48,251,179,143,216,187,191,224,197,162, 96,103,171,226, +228,147, 53,205,163, 5,161,113,116, 10, 82,145,227,104, 95,148,138, 69, 76,252,249,137,167,209,130,182,115,148, 90, 96,218,200, +253,214,243,193,202,241,241,144,248,176,135, 79,148, 33, 86,150, 97, 8,220,238, 59,118,154,158, 97,177,225,227,227,117,182,218, +101,172, 32, 46, 86,172,194,130,122,191,224, 75,191,252, 38,191,254,243,111,242,223,124,254, 53,182,174,110,225,172,102,249,222, + 35, 62,249,224, 33,215, 53,124,110, 82,241,133,249, 54, 47,204, 20,223, 93, 5,104, 55,136,232, 17, 38,219, 19, 47,139,122, 68, +212,183,145,111,126, 30,113,243, 14,226,250,203,136,217, 14, 87,183, 38,204, 69,226, 74, 23,120,176, 92,243,139, 7, 87,184,187, + 94, 66, 72,108,136,188,161, 53, 59, 50, 97, 83,160,242, 30, 25, 91,222, 58, 59, 71,110,214,136,178, 66,216, 2,129, 34, 13, 27, + 68,223, 32,106, 11,123, 51,132,169,248,213,215,142,184,179, 59,225,237,167, 13, 12,221, 95, 29,185, 23, 83,120,225, 42,236, 29, +192,213,189,188,239,221,154,230,208,142,162, 26,225, 40,105,252, 30,121, 30, 56,199, 81,136,152, 52,112,126,246,152,175,126,114, + 31, 30, 62,201,222,247,191,233,146,243, 12,153,236,232,165,133,179,179,124,174,198,139,232,102, 69, 83, 88, 86,206,211, 39,104, +218, 64,167, 18, 27, 31,233,135,192, 6,143, 31, 28,116, 1,107,243,249,144,180, 65, 16, 80, 42,239,165,139, 82, 19, 29, 28, 78, +205,232, 26, 82,185,200,133,200,220, 42,218,148,115, 33,235, 81,232,162,146, 66,181, 29, 42, 73,180, 11,104,105,208, 4,246,109, +193, 63, 60,156,241,230, 94,205, 11,181,229,227, 38,162, 2,168,120, 97,213, 53, 72, 99, 17,214, 32,117,133,212,185,153,248,233, +173,130, 29, 83, 80,105,205, 34, 38,116,105,169,103,115, 30, 71,129,214, 37,133,204,194,229, 76, 18, 21,244,126, 0,105, 72,113, + 96, 11,184, 94, 20, 8, 55, 80, 11, 73,232, 91, 78,219,134,223, 61, 57,165, 27,214, 57,133,175, 89,193,226, 41,180,163,173,111, +232, 32,244,152,232,217, 52, 27,186,161,165,239,214, 12, 67,199, 86,191, 70,186,128, 13,137,105,200, 23,132, 42, 9,118,132,196, + 39, 48, 33,210,251,142,132,228, 81,240,172,147,224,173,229, 26,107,167, 36,223,147,144,212,202,176,246, 29,219, 74,179,118,142, +208,110,104, 86, 13,222, 53, 4,153,120,178, 94,114,127,221,177, 28, 28,173,115, 36, 18,221,208, 51, 16,216, 54, 6, 43, 50,251, +194,146,176, 66,146,180, 33, 6,207, 41,146,227, 48, 48, 17, 32,117,137, 26, 28,115, 35,144,193, 67,215, 83, 88, 75,240, 45,117, + 2,111, 20,201, 71, 42,149, 47,212,165, 21,153,211, 82,216,231, 44,201, 2,250,238,178,102,106,149,195,134, 24, 51, 11, 98, 78, +116,253,171,234,247, 24, 47, 63,132,127, 93, 1,151,250, 7, 49,159, 66, 92, 42,241, 34,151, 66,185, 11,216,251,133, 71,218,218, +203, 28, 91,247, 67,143,225, 70, 41,127, 24,159,112,235,114,178, 82, 85, 66, 93, 82,138,200, 81, 97,152,154, 18,129,100, 21, 28, + 83, 93, 18,162,160, 79, 16, 68,192, 10, 88,184,200, 39,141,231, 90, 37, 25, 66,224, 44, 68,204, 16, 88,201,172,202,143, 46,199, +196,182, 73,228, 24,117,165,242,196, 54,146, 83,191,144, 20, 66,210,199, 72, 17, 3, 67, 18,116, 74, 33,164,196,143,201,125,149, +135,115, 45,153,134,200, 67, 15, 75,165, 88, 71, 55, 22, 85,129, 75,129, 77,136, 52,209, 35,146,103,146, 18, 83, 9, 53,185, 24, + 22,193,161,165,194,199,200,164,180,108, 27,205,169,200,138,218,149, 45,242, 37, 83,141, 10,179,231,221, 1, 41,230,155,188,139, +121, 23,200, 5,185, 45, 94,194, 99,226, 69,214,251,120,180,153, 81,189,102,244,200,219,189, 8, 67,128,159,249,202,207,176,123, +101,155, 16, 35, 67, 31,104, 22, 13,235,245, 6,107, 11, 78, 78, 87,104, 59,225,229, 27,187,148, 54, 51,212,165, 84,132,152,242, + 91, 68, 64,164,236,213, 45, 74,133, 30,195, 88,252,152,177, 28, 71,155,218, 5,232, 69, 32,198, 36,169,152, 5,112,206,209, 53, + 61,193,121,196, 16, 88,121,207,113,235, 88, 53, 29,184,192, 89,219,225,130, 99, 19, 3, 27, 96, 45,160,222,154,178, 17,137, 63, +125,235, 17,111,117,249, 80,148, 74,242,229,160,248,251,104,254,126, 97,120, 67, 73,222, 43, 4,189, 25,111, 70,175,207, 96, 90, +141, 47,166, 6,145, 8, 14,180, 85,212,133, 97,111, 58, 99, 50,155,161,203,146, 80,228,195, 72, 11,193,150,177, 84,133, 65, 42, + 69,240,137,166,117,156, 44,214,156,158,183,108,250, 17, 11,219, 57,214,155,129,245,166, 99,221,117,185, 1,145, 18, 45, 37,133, +145, 24, 96, 82,106,182,119, 10,230, 51, 75,112,142, 39,247, 31,176,127,218, 33,124,226,129,244, 57,203,190,239,153,111, 58,246, +118,118, 8, 50,241, 72,129,216,169,209, 86,209, 38,193,118,130,166, 79,220, 95, 5,214, 49, 81, 78, 44,122,183,230,212, 11, 30, +184,196,162,143, 60,237, 60,199, 3,120, 33,179,251, 66, 64,104, 3,251,131,203, 97, 56, 72,206,238, 29, 83, 27, 69,187,104, 49, + 51,139,220,169,217,189,118,157, 95,248, 71, 95,230,205,159,124,153,159,191,177,203,180,214,252,243, 63,249,128,111,125,245,235, + 60,125,255, 67,110,148,130, 89,105,153,134,132,145, 5,201, 88,222,242, 61,190,139, 99, 97, 79,185,176, 43,133,188,253, 58, 63, +247,139,191,194,111,255,183,255, 21,159,253,244, 27,252,235,165, 69, 62,249, 4,249,206,159, 35,131,197, 37,195,106,211, 96,165, +228,108, 24,104, 99,142, 66,150,209,113,147,200, 92, 38, 84, 28, 48, 41,178,105,214, 60,238,123,220,147,115,196,189,251, 89,251, +169, 20, 82, 36,132,212,224, 59,196,131, 83,254,201,157, 67,126,253,181, 79,243,217,253, 3, 22, 69,226,131,133,131,144, 16,113, +140,225,156, 78,224,230, 17, 95,186,253, 41,234,157, 93,202,233, 22, 43, 61,238,126,149,186, 12,250, 96,188,241,251,142,161, 93, +211, 54, 27, 30,156,159,240,205,239,223,135,227,211,156,124,199,143,192, 27,255,184, 9,102,211,252, 96, 90,157, 27, 71,168,205, +112, 57, 65, 27,157, 56,105,240, 52,222, 99, 70,139,174,208,130, 42, 64,111, 36,133,128,163,210, 96,129,118,228,153,239, 20,154, +198, 69,182, 74,203,174, 49,180, 68,166,214,112,210,122,230,133,204,118,232,144, 87, 99,186,203,152, 85,147, 6,140,210,152,102, +192, 24,205, 87, 74,203, 94, 97, 50, 61, 86, 74,182,181,228,113,155, 80,165, 70,111,213,168,178, 70,238,214,200, 73,141,156,150, +200, 74,241,159,239, 20,220, 41, 45, 59, 90, 19, 17, 72,171, 25,132,100, 72,112,234,179, 21, 24,153,168,164,193,225,240,193,101, + 86,215,144,119,240,141, 31, 8,125,203, 21, 41, 56, 91, 28,211, 14, 61,191,127,239, 46,199, 79,143,225,244, 4,214,107, 56, 63, +207, 1, 66, 93, 63, 38,255, 13,208,108,120,218,246,124, 60,180,124, 48, 12, 52,155, 6, 57,116,236,196,136, 9,129, 9,137, 77, + 12, 28,232,146, 74, 8,186,148,152, 11, 73,163, 36, 38,230,128,160,211, 24,248, 78,151, 88,107,131, 14, 3, 66, 23, 8, 1,165, +144, 8, 98,230,235, 36,193, 16, 60,171,117,203, 39,203,150,187,103, 13, 79, 66,196,247, 3,221,224,216,145,146,174,237,153, 24, +197,224, 3,167,125,207,129, 18, 28, 22, 26,163,178,128, 88,105,201,105,128, 37, 34, 35,192,165,196,198,136, 22, 48, 12, 29, 69, + 24, 72, 82, 48,193, 81,134,192,106,240, 76,146,200,131, 28,173,242, 25, 21, 18,149, 18, 4,161,112, 74, 93, 78, 95,149,185,140, +145, 45,108, 62,211, 47,146,233,194, 0, 46,252, 71,196,196,234, 25, 76,203,252, 66,119,237,229,135, 54, 93, 40,247,210,229,248, +253, 98,132, 44,212,179, 66,146, 71,201,207, 41,223, 47,190, 76,207,212,219,163, 80,172, 30, 57,228, 85,206, 54,182,194, 34,133, +100, 57, 12,148,214,162,144,172,253,128,212, 22,237, 7, 90, 20, 18,135,150,146, 24, 34, 15, 59,152, 72, 65,233, 29,143, 82,182, +190, 45, 7, 7,117, 73,227, 28,214, 40,146,135, 70, 36, 42,165,233, 72,104,149,139,211,202,123,106,107,136, 74,162, 9,248,212, +114, 98, 20,120,143, 73, 30, 33, 52,190,233, 9, 19, 65, 45, 28,101, 7,141, 46,178, 86, 0, 96,104,137, 49, 91,250, 22,195,192, +182, 22, 92,179, 53,141,247, 28, 26, 67,231, 4, 62, 4, 14, 39, 83, 22, 67,135, 19,130, 93, 4,167, 69,205, 52,118, 44,170, 34, +199,199,202,220,209,225, 47,112,146,163,107, 64,143,183, 1,127, 33, 56,140, 57,176, 70,170, 60,138, 30,252, 8,204, 9,227,127, + 99,243, 62, 93,155,172,220, 21,121,106,226,135,252,129,152, 78, 11,214,139, 14,165, 21,214,232,124,214,140,161, 54, 77,231,217, +155,149, 8, 41,242,197,223, 11,162, 72,200,152,211,247,130,143,120, 35,178, 48, 19,137,210, 18, 39,178, 15, 61,164,188, 2, 8, + 49, 61,235,220, 37, 9, 27, 35,161,243,136, 16,177, 72, 54,193, 51, 12,129,101,211,211,199, 49, 39, 93,102, 6,242,128,160,141, + 61, 19, 41,217,191,126,200,123, 31,220, 67, 7,216, 70,240,189,141, 3, 31,249, 30,145,162, 77,252, 92,165,184, 89,106,126,197, + 41,126,242,214,140,119,222,218,112, 60, 43, 81, 47,189,192,227,110,195,102,112,156,116, 29, 31, 30,247,108,149,138,106,156,100, + 4, 34,221,208, 35, 86,146, 97, 8,132,222,179, 95,151, 76, 71,123, 99,219, 6, 78, 78, 27, 62,186,119,198,122,211, 94,222, 76, +165, 96,232, 7, 26,215, 49,116, 29, 94, 41,114, 34,124, 22,216,108,205, 75, 14, 94,220, 98,182, 55,101,182, 59,225,189,239, 63, +230,131,166,167, 85,112,211,193, 67, 25, 25, 74,193,206,102,224, 86,227, 41,191,115,151, 87,215, 13,175,237,212,204, 94, 63,226, +254,213,146, 73,227,216, 44, 7, 30, 13,240,141,100,120, 49, 42,190, 60, 53,252,191, 14,222, 63,239,169, 35, 20, 70, 50, 31, 60, +122, 82,128, 80, 24,173,184, 35, 21, 55,182, 21,133, 51,136, 85,195,241, 91,239,114,235,198, 62, 47,224,120,242,201, 99,218, 43, + 19,234,218,160, 10, 69, 81, 22, 28,159, 44,249,151,119,159,242,207,127,251,247,120,244,241,146, 23,182, 13, 7,135, 91, 24, 93, + 82, 20, 37,178, 27, 56,239,214,156,198, 68,220,218,193,220, 82, 4, 25, 72, 79, 31, 33, 94,126, 19,110,190, 4,251, 47,114,116, +117,151,205,147, 51,126,227,255,250, 29,244,239,126, 23,241,197,151, 16, 71,215,217, 81, 2,183, 92, 96,164,226,165,162,100, 49, +116, 28, 3, 41,120,196,208, 34,101,139,223, 24,106, 91, 32,130, 99, 66,100,123,189,164, 89,158, 19,143, 79,136,253,154,116,251, + 83,196,157, 3, 82, 89,145,108, 73,178,134,223,120,239, 1, 87,240, 28,204,118,248, 94,235,179,183,252,188,132,176, 70, 40, 75, + 58,218,129,189,125, 38,102,194,223,217,219,101,145,114, 72,213,191,109,150,121,189,103, 71,226,149,243,153,118,181, 88, 66,227, +184,191,217,100,199, 73,234,199,181,225,104, 31, 13,241,111,127, 86,254, 40, 46,250, 98, 1,187,123,151,156,134,209, 6,156,198, +113,238, 48, 4, 10,157,149,236,107, 55,112, 93, 27, 6,173, 56,137,137,155, 19,141, 31, 4, 49,207, 16,185, 82, 21,108, 6,199, +138,236, 78,153, 0,117,101,232, 99, 98, 72, 41, 63,101, 31,145, 87,246,144, 82, 83, 76, 44,184,129,212,244,220, 26, 6,110,232, +204, 55, 80, 2, 54, 46,112,173,176,212,187,150,184, 55,131,189, 25, 87,170,154,164, 5,167, 67, 75,227, 29,175, 18,249,172, 81, +212, 90,114, 84,148, 60,117, 29, 79,162,199, 3, 31,116, 3,167,162,196,168, 60,133, 91,135, 13, 73, 38,214,109, 3,222, 33, 54, + 27,146, 80,172, 55, 45,223,148,145,111,202,209, 86,146, 2, 44,250, 49,179, 99,156,244, 14, 25,226, 50,238,184,242,244, 81, 11, + 88,174,159,157,177,119,165,102,119,219,210, 6,193,190,206, 4, 54,141,160,137,142, 82, 26,166, 82,112, 46, 20,197, 24,202,213, +111, 22, 24,171,217, 69,179,113, 3, 24,131, 14,142, 32, 4, 94,106, 22, 17, 90,198,137,243,176, 33, 40,152, 71, 73, 39, 5,219, + 17, 58, 33,217,158,151, 28,247,145,131,121,205,227,214, 97, 11,197, 64,164,239, 55, 44, 84, 32,161,169,116, 73,215, 12,156, 10, +197,137,157,161,147,103, 75, 90,124,236, 65, 41,170, 36,232, 98,100, 87, 6,156, 27, 48, 74,178, 85, 26, 78, 6,199,150,132,165, +119, 20,104, 38, 6, 22, 36,154, 16,144,182, 32,166, 0,194,254,224,103,105,185, 25,131,141,234, 60, 17,170, 74,112,254,185,162, +174,245, 37, 41,230,199,141,221,167,117,142, 33, 44,170, 92, 32, 46,126, 6, 46,139, 77,188,192,201,245, 99,228,233, 88,236,237, +115, 93,174,243,151,227,126,212, 37,108, 4,153,173, 90,106, 84,193, 63,103,159,219,132,200,196,234,204, 47,209, 50,231,175,248, + 33, 91,179,188,167, 65,176,171, 21, 69, 33, 89, 15, 25, 8,163,141,160,245,254, 89,202,253,178,115,168,202, 82,185,136, 55, 30, + 6,205,153,114,108,219,140, 51,108, 83,196, 40,197, 34, 95, 71,153,105, 65,131,198,182, 3,219,192, 70,107,214,193, 51, 67,243, +168,237, 8, 93, 71, 61,155,114, 26, 37,108,250,203, 72, 86, 9, 52, 27,176,138,224, 35,239,159,173,248,220, 86,126,209, 39,232, + 49, 38, 87, 50, 49, 22,173, 10, 78,104,217, 45, 19, 77, 47, 51,115, 5, 46, 51,224,155,110,220,157, 95, 28, 42,242,146,250, 22, +228,232, 58, 24, 27, 34, 41,243,239,234,135,252, 62, 68,159, 91,118,171,243,123,164,220,104,253,241,104,107, 41,173,225,228,108, +131, 27, 11,188,214, 6,151, 2,162, 44, 40, 37, 20,101,206, 6,200,251,242, 11,105, 68, 78, 82,235, 98,192, 17,145, 61, 88,173, +144, 57, 69, 6,169, 50,139,152,144,111,238,217, 46, 47, 81, 49,195, 94,116, 2,163, 36, 90,107,188, 8,184, 16,232, 55, 30,223, + 56,232, 29,125,240, 24, 33, 88,165,196, 10, 40,172,225,104, 58,101,111,127,139, 63,250,147,239,241,221, 38,239,208, 16, 49,255, +174, 83, 77,223, 58,254,213,185,203,193,241,107,207, 59,231, 3, 47,110,107,138, 39, 13,146,123,220,216,153,242,194,214, 46,250, +250, 14,223,219,121,204,100,182,197,164,174, 41,102, 83, 14,143,118, 88,117, 67,222, 16,109,122,154, 36,232,132,192, 9, 24,122, +207,217,162,225,238,253, 19, 30, 62, 56,103,240, 29, 41,100,108,167,136, 17, 31, 99,166,167,249,132, 64,179,232, 5, 82, 25,148, +130,253,189,138,122,119, 74, 49, 45,113, 41,113,214, 42,110, 79,247,248,254,233, 83, 30,184,150, 77,219, 32,140,164, 25,122,174, + 4, 69,179, 56,102,111, 19, 88,196,134,217, 39, 11, 78, 95,152, 96,103,154, 35, 83,112, 16,225,198, 85,197,181,101, 79,215, 5, +126,213, 74,254,167, 85,207, 73,227, 25, 6,216, 41, 36,147, 66,113, 22,224, 80, 11, 62, 59, 51, 28,213,138, 19, 1,111, 63, 78, +124,229,240, 21, 22,201,113, 32, 18,159,217, 46,249,227, 69,203,195,239,220, 99,231,232, 42,211,123,103, 92,145,130,111,126,247, + 33,119, 80,108,109, 91,116, 93,176, 85, 79, 49, 66,211,173,150,220,125,252,144, 83, 93,177,116, 41,239, 67,203,154,161, 56,128, + 47,127, 38, 39, 89,181, 27,196,215,254,128,223,248,238,130,127,241,134, 66, 93,217,197,124,233, 14,162,156,176, 91,207, 57, 16, +154,137, 86,163,169, 38,208, 13,158,207, 19,217,154,239, 66,154, 51,167, 37,173,206,169,162,195,132, 0,203,115, 94, 63, 95,241, +180,237,137, 6,194, 98, 65,252,222,251,196,219,142,120,253, 6, 73,193, 23, 95,186,195, 27,183,111,241,199, 31,188, 75,255,240, + 29,238, 29,247,136,170,134, 74,147,216,206,201,150,211, 41,111, 76,106,110,109,111, 97,133,228, 74, 97, 40, 69,143, 90,231,176, + 70,218,113,127,123,190,202,141,239,249, 58, 23,115,158, 43,200, 74,130, 48, 57,103,253, 63,164,168,255,117, 63,171,213,104,253, +213, 35,255, 66, 17, 92,204,199,156, 17,244, 46,177, 45, 3,229, 78,205,227,245,192,190,149,220,172, 18, 15,186, 64, 39, 20, 83, + 18,133, 53, 28,167,196, 43,133,193, 42,184,110, 53,171, 33,240,168, 25,152,151,130,166,143, 72, 31, 81,218,160,171,146, 91,243, + 41, 66,107,164, 31,136,147,158, 47, 9,207,203, 74,161, 6,199,241,178,227,233,186,231, 35,239,153, 86, 21,177, 40,198, 44,144, +128, 68,163,180, 34, 16,121, 81, 68, 38, 90, 82,250,196,169, 95,178,173, 13,157,115, 28, 7,184,231, 65,153,136,111,219,108, 68, +233, 90,210,122,141,104,123, 82,215, 67,231, 16,195, 64,146,238, 50,228,231, 7, 64, 95, 41,171, 92,203,145,148,103, 60,108, 70, + 32,141,119,224, 70, 43,244, 72, 59,139,210,241,180, 53,220,175, 19, 6,184,154,224, 64, 41,206,165, 34,166, 68, 47,179,125,248, + 52, 37, 26,160,172,166,232,216, 17, 92,139, 80, 37,131, 15,120,157, 39,199,103, 67,135, 21,154,117, 28,178, 86,201,214,176, 13, +203, 85, 67,225,123, 54, 2,156,213, 48, 68, 68,101, 57, 67,240, 74, 93,240, 46,153,123,209,171,130,223, 91,116,212, 90,243,134, + 13,188, 39, 36,235, 16, 9, 33,176, 85,206,240,205,130,189, 98,134,175, 39, 16, 3, 59, 4,154,205, 19,166, 90, 67, 12,172, 99, +100, 79, 43,156,207,154, 45,159, 28, 43, 31,241, 14, 10, 41,243,250, 66,233,209,185, 60, 54, 62,113, 12,173,113,125, 46,238, 90, + 67,219, 65,122,254,166,110,245,165,100,254,199, 21,245,161, 1,202, 92, 52,158,221,180, 61, 88, 55,250,163,199, 4, 57, 63, 90, +180,188,191, 28, 5, 95,220,200, 47, 10,248,133,218,254,226,159,155,238,242,198,127,193, 13, 30,233, 99,239,169,130, 23,165,160, +151,146, 2,216,196,152,119, 55, 82, 18, 99,196,249,129, 18,197, 82,122,212,136, 46, 91, 43,197, 68, 6, 76,161,105,157,231,110, + 19,120, 97, 2,170,247,172,140,162, 38,146, 76, 66,171,114,132,132, 64, 37, 36, 29,176,140,145,235, 90, 35,131,167,198, 32,133, +231,201,232, 10,159, 40,205, 58, 4, 10,161,120, 52, 64,116, 29,181,116,153,204, 19,251, 49,190,207, 65, 10, 40, 97,121,226,122, +190, 48,175, 88,123,199, 84, 40, 38, 90,161,180,201,163, 94, 44, 50, 5, 10, 37,168,124,226,250, 86,201,112, 62,176,190,120,103, +124,155,247,127,171, 46,127,232,149, 29,189,178, 49, 63, 25, 63,118, 84,202, 94,142, 6,227,184,147,143,163, 40,206,199, 75,149, +114, 24,217,237,162,196, 22, 10,171,243, 72,189,158, 78,114, 40,221, 38,147,209,246,171,154,157,189, 41,125, 15,165,209, 8,145, +105,108, 81,100, 43, 91,206, 97,143,196, 33,208,235, 72, 29, 21, 33,138,203,129,140,144, 99, 10, 98, 22,229,136,148,208, 82,100, +123,188,204, 35, 41, 25, 19,209,103,222,186, 86,130, 3,165, 57, 47, 10, 68, 8, 44, 82,162,142,145,101,190, 18, 83,212, 5,235, +243, 13,220, 95,147, 60, 76,181,102,221, 15,208,132,252, 90, 92, 55,240, 73, 15, 27, 15, 6,190,190, 47,248, 58, 1,156,227,102, + 1, 7,139, 21,221,217,154, 73,253,152,178, 46,217,155,111,243,229,207,221,225,240,133, 93,202,218,242,232,124,195,233,186,101, +181,233, 41,180,165,174, 74,162,148,116,131,227,120,213,240,240,116,201,134, 72, 16,146, 36, 21,169,119,248,161, 35, 70,151,127, + 55, 52,146,148,119,237, 86,211,167, 72,155, 18,109,140, 20, 18,190,249,246, 99,206,122,248,164,154,210,238, 22, 84,174,103,221, +221,167, 90, 31,227,156,227, 95,135,129,217,162,225,197,162,228, 17, 37,187, 15,158, 50,105,246, 17,100,112,140, 83,138,161,208, + 28, 79, 44,198, 5, 78,149,224,205,157,130,223,250,218,125, 30,108,224, 63,187,190,155,149,181, 17,124, 8,124,126, 90,179, 61, +181,156,165,200,245, 98,135,201,178,230,201,122,224,157,227,115, 68, 20,156,189,243, 17, 15,222,251,152, 15,138,119,121,225,215, +126, 25,172,161, 45, 75, 44,150, 29,237,248,240,163, 5,205,249,134,237,253, 41, 91,123, 91,252,254, 87,255,130,116,117,159,120, +243, 8,130,161, 22,240,202,151,222,228,245,254,152,223,252, 95,190,133,253,114,201,144, 2,123, 63,127, 3, 89, 87,236,206,175, +176, 78, 9,163, 52, 71,202,176,103,115, 26,100, 66,226,186, 53, 47,138,158,117, 12, 28, 30, 93,163,156, 84,184,190,231,236,195, +111,179,186,127,151,243,216,211,222, 95,114,173, 46, 41,129, 79,111,237,240,173,197, 25,161, 91, 17, 82,128,243, 39,188,121,245, + 5,190,116,176,203, 92, 72,124,140,252,230,251,223,231,230, 36,112,183, 79,121,154,110, 20,105,108, 34,136, 48, 87, 10,171, 5, + 58, 6,122,215,241,165,208,240, 71,235,101,158,132, 61, 61,207, 86,181,229, 34, 79, 32, 11,251, 35,188,230,233,111, 62, 27,255, +182, 63,110,200,244,182, 49,145,115, 90,104, 58, 9,125, 31,185, 82, 41,156,149,156,181,158, 93, 23,153,106,201,218, 7, 54, 30, +180,213, 57, 71,170, 46,185,182,189,207, 78, 49,229,102,109,185,163, 4,106,241, 24, 21, 28,127,201, 10,173, 36,115,223,161,181, +198,214, 53, 73, 90,166, 69,238,127,103,117,205,212, 27,110,196,158,228, 28, 19, 99,168,103, 64, 31,120,219,195,220, 40,130, 86, +108,155,130,137,177, 12, 36, 58, 41,217, 55,134, 67, 45,209, 93, 62,215,116, 72,116,222, 51, 12,145,223,121,218,227, 68, 68, 15, +103,132,229, 26,180, 37,185,129,120,129, 4,149,144,250,241,117, 13, 54,251,250, 47, 34, 80, 69, 49,174, 25,199,139, 78,231, 71, + 29, 86,186, 4,128, 93,136, 36, 92,255, 44,170, 91, 4,184,219,182,212,133, 96, 54,230,158, 8,163,145, 49, 48,232,130, 20, 61, + 43, 33,233,181,161,141,145,132,164, 81, 5,123,186, 99,225,122, 30,217,154, 57,145, 77,202, 77,213,169,239,199,245,229,152,226, + 41, 13, 76, 74,250, 30,146,177,104, 4, 11,163, 81, 9,130, 82,108,138,154,159, 80,146,149,144, 44,132,160, 78,176,107, 20,143, + 66,228,101,173,121,170, 12,119,125,203,186, 83,204,170,154, 71,171, 99,136, 29, 71, 55, 95,103,245,238,159, 81, 81, 16,125, 71, + 10,137, 90,102, 65, 93,242,207, 16,152,204,180,228,110,227, 71,200,149,186, 36,184, 21,163,142,162,200,164,200,103, 7,110, 63, + 66,139,132,122,174,168, 59,127,201,123,253,113, 63, 77,155, 51,133,229, 15,141,151, 28, 16,187, 60,154,127,158, 15, 59,118, 35, + 57, 5,135,203,177, 19, 33,171,149, 13,121,199, 36,199, 55,243, 25,169, 73,141,108,227, 13, 84, 19, 84, 72,156, 7,199,118,204, +233, 78, 90, 89, 54, 41, 82,138, 12, 5,152,218,146,251,155, 37,203, 24,185, 82, 27,190,127, 49, 82,211,112,220,122, 98, 18, 92, + 41, 21, 79, 26,232,230,137, 93, 18,139,148,173, 74, 87,101,230,232,106, 33,241, 8, 28,145,131, 42,119,115, 33, 64, 69, 46,244, + 86,107,122,151,241,138, 61,137,211, 16,152, 23,138, 7, 35,183,153, 97, 4,181,172, 54,207,252,248,161,105, 57, 50,138,183,151, + 45, 95,152,215,212, 85,129, 79,129,153,153,208,184,236, 19,245, 82, 83, 70,207,141,201,156, 7,205,134, 45, 35, 40, 5, 60, 93, +181, 80, 87, 89,160, 83,106, 8,213, 72,124, 35,135,212,244, 99,177,246, 9, 38,228, 27,184, 30, 21,240, 23,171,142,139,177,129, + 31,121,211,186,200,157,177, 41,153,212,147,156,250,230, 19,182,146,112,158, 24,134,129,162, 40, 57,188,178,203,223,253,204,117, +164,210, 36,145, 69, 26, 46,145,233,106, 82,144,124, 78,140, 43, 10, 73, 8, 41,111, 0, 18, 72, 41,179,121, 33, 64, 34,142,230, +134,244, 44, 80, 71, 2,106,220, 27,102,198,120,100, 54,218,139,125,132, 38,100, 40, 79, 14,227, 20,204, 68, 66, 8,137, 45, 43, +142,143,207,121,251,126,199,204, 10,166,133, 98,157, 70, 49,225, 69, 97,247, 23, 1, 1, 33,123,244,111,215,224, 36, 15,151,129, + 79, 98,226,221, 90,113,133,192, 21, 25,217, 44,207,168,239, 62,230,211,211,130, 23, 74,205,164, 42,176, 74, 50, 49,134,162,180, +204,234, 2,107, 52,206,141, 80, 26, 21,243,168,174,168, 32, 37,130, 50,248, 21,200, 62,161, 99,200, 62,124, 4, 49, 6, 98,231, +240,235,158,197,201,154,132,224,241,249,138,234,253,123,156, 76, 42,238, 79,246, 57,156,148,220,153, 77,249,120, 50,229,252,227, +125,228,174,163, 57,237, 88, 29, 9,222,245, 3,159, 58,152,243, 7, 83,205, 71,255,235,255,199,250,147, 99,170,249, 22,113, 62, + 33, 20, 37, 87,175,239,112,227,206, 14,157,128,247, 31, 44,120,177, 42,217,185, 49,231,188,247, 76, 66, 66,185,200, 63, 56,172, +153, 36,208, 62,113, 69,229,176,141,118,106,249,211,147,150, 38, 70, 86,171,134,214,105,218,135, 13,215,127,234, 38, 79, 11,195, + 45,109,120,233,229, 27,220, 83,146,189,190,225,218,235, 45,103,143, 30, 48, 63, 60, 66, 77, 12,182,123, 68,122,119,159, 52,109, +184,117,235, 58,169, 56,224,181,197, 61, 42,161,248,149,127,122,155,213,100,155,101, 40,152,238, 28,208, 3,171,224,121, 41, 4, + 42, 5, 91, 74, 51,179, 80,203,132, 78,142, 85,232,104,135,134, 36, 11,166,214, 82,149, 5,231, 85,201,176,253, 18, 31,156, 46, +249,252,201, 35, 90, 35,248,189,199,199,252,194,213, 61,190, 33,160, 76, 18,191, 60,193,223,127, 64,216,221,167,174, 37,197,225, + 54,161,152,210,233,146, 55, 14, 15,153,107,216,234, 29,223,110,251, 81,185,238, 73, 66,243,238,224,249,169,118,193,141, 80,211, +250, 14,227, 29,177, 95,231, 93,249,201, 34,171,172,155,238, 7,241,166, 74,254,208, 63,251,191, 18,110,243, 31,157, 43,127,241, +103, 14,249, 49,151,163, 76,233, 74, 93,242,120,227, 40, 10,197, 84,128, 76,137, 32, 4, 87, 38, 5,171,113, 63, 43,172,162,212, +150,235,179,125,246,118,182,185,105, 44,183, 66,131,177, 37,221,234,132,253, 98,139,143, 54, 11, 14,148,193,147, 24, 16, 76,234, +130, 66, 25,170, 66,161,164,229, 72, 43,174,166,130, 32, 27,172,138,244, 1,110,109, 77, 16,177,227, 65, 93,208, 88,240,218,144, +140,161,141,129,181, 79, 60,236, 58,110,148, 2, 75,228, 64, 43, 54,110,192, 13,158,213,162, 69, 63, 62,135, 20,114, 60, 47, 25, + 42, 21,184, 12,203, 73,189, 71,104, 77,234, 7,114, 12, 12,249,251, 90, 75, 8,125,222, 19, 95,212, 5, 61,234,178,180,186, 76, +208,188,200,216,186, 40, 96,195, 0, 91, 19, 24, 2, 31,172, 29, 98,170,249,194,164,226, 97,204,251,241, 34,102,230,135, 19, 10, + 27, 2,131,202,158,140, 45, 47, 88, 75,197, 92, 72,222,117,145, 37,137,164,244,136,184,214,121,109,172,199, 6, 67,251, 92,224, +171,154, 32,192, 35,176, 82, 33,148,100,219,148,120,224, 84, 91, 78,253,192, 34, 68,246,203, 9,149,144,120, 35, 57,117, 45,199, + 99,156,107, 72,142,123,235, 83,110,137,196, 98,121,130,191,251, 22,110,179, 4, 60,173, 79, 92,213,153, 8, 89, 5,129,151,130, + 33, 66,239, 2,167, 62,159, 59,249, 66,246,156, 88, 58,166,220,252, 92, 76,132,205,115,214,242,190,135,117,243, 67,150, 54,239, +255,102, 17,200, 5, 12,228, 34, 10,209,140,240, 3, 51,142,135,109,145,255,122,214, 28,164,188,203, 29,134,203,255,103, 24,227, +238, 10, 9,171, 53,204,103, 25,217, 88,141, 0,152, 16,115, 8,141, 28,129,241, 50,145, 82, 96,170, 44, 51, 45, 41,148, 70, 11, + 8, 98,132,133,164, 64,235, 2, 66, 73,206, 66,224,254,102,160, 31, 65, 49,155, 33, 50, 83,146, 62, 69, 54, 81, 16,164,160,113, +145,121,105, 80, 18,106, 99,105,147, 96,183,208,248, 81,249, 46,149,102,229, 61, 67, 8, 57, 13, 45,194, 32,115,177,121, 48, 12, + 4,153,253,216, 69, 82, 60,246,185,211,234, 47, 20,215, 23,182, 61, 55, 22,121, 33, 24,156,103,219,100, 91,220,142,177, 84,198, +114,238, 58,172, 50, 36, 33,136, 33, 96,146,100, 16, 96,165,192, 73,129,219,180, 92,153, 84,156, 54, 45, 68,216,154, 22,244,221, +144,181, 10,105, 92, 81,232,231, 4,117, 62,140, 30,244,139,214, 54, 94,134,212, 92,208,239, 82,204,227, 44,109,161,237,248,236, +155,159, 97,190, 55,231,244,248, 28, 31, 96, 50,157,178, 60, 89, 81, 79, 38, 92,217,219,226,221, 79,214,188,112,101, 62,142,202, +101,166,177,141,193, 85,125,200, 25, 1, 89,148, 47, 40,108, 78, 40,147, 34,143,233,253,168,198,245, 33,226, 67,194,187,108,105, + 84,241, 66,249, 30,192, 7, 66,235,232,154,129,174, 15,196,193,227, 82,100, 21, 28,201,199,108,135,139,145,171,251,187, 28, 28, +238,242,206,219,239,243,222, 73,195,178,117,172,134, 17, 81,219,135,188, 12, 59, 30,133,138, 25,223, 4,103, 14, 38, 18,185, 93, +225,251, 56,106, 57, 37,243, 90, 83, 25,203,164,158, 34,181, 37, 84, 22,105, 53,189, 15, 28,159,183,244,157,163, 42, 53,211, 73, +137,210, 18,239, 60,109,215,211,245,217, 98, 39,180, 34, 70, 75,194, 18,140, 70, 10,205,118, 81,115,125,190,205,225,100,206,196, +148, 76,149, 97,191, 40, 41,146, 68,205, 45,178, 46,105,107,139,208, 2,206,150, 76, 39, 19,110, 29,212, 52,202,208,238, 77, 16, +170, 96, 82, 22, 84,243, 18, 61,155,178,127, 56,229,202,225,148, 99, 49,229,251,201,210,204,106,228,225, 46,147,171,115,156, 86, + 60, 10,112,114,222, 99,181,165,124,113,155,117, 59,112,122,210, 48,108, 28,243, 29,131,248,232,148,151,246,167,136, 0, 86,231, + 56, 76,149, 18, 47, 84,130,155, 83,195, 7,143, 60, 11, 57,103,101,225, 74, 33,216,185,122,200, 78,105,104, 3,248,178, 32, 77, +166, 32, 38,108, 85, 37,219,135, 59, 60,126,186,226,159,124,230,243,252,131,255,242,167, 57,122,227, 14,213,233, 19,134,167, 31, +243,130, 45,137,102,194,244,240, 6,147,131, 79,177,127,227, 58,182,174,152, 78, 39,204, 37, 28,106,195, 22,138,173, 34,113,160, + 52,179, 24,208,190,103,238, 6, 78, 22, 43,246, 82, 71, 85,212,180,211, 41,117,239,249,104,240,220, 48, 5,119, 69,226,134,138, +188,148, 4,223, 76,138, 95,170, 45,239,161,144, 66, 35,241, 8, 23,120,176, 25,216,173, 5,247,134,129,148, 36,183,235,138, 93, + 91,177,109, 44,239, 56, 79, 24, 57,214,194,121, 98,236,249,254,114,205, 46, 61,186,239, 89,117, 11,254,229,135,143,224,254,113, + 30,133,187, 31,218,125,203, 81,159, 18, 70,190,130, 28,187, 84,255,159, 0,136,121, 54, 69,139,151,205,118, 28,207,138, 36,168, +172, 34,133,132, 23,130,237,164,120,109,111,194, 79,237,109,241,234,124,202,212, 72, 2,130, 86, 9,182,180,225,198,116,198,220, +150,236,213, 19, 94, 41, 11, 74,109,216,149,146,169,202,126,117, 45, 45,219,214, 98,149, 98, 87, 89,166,166,224,160,168,216,211, + 21,187, 41,114,104, 44, 7,186,100, 91, 21, 76, 80, 76, 76,205,188,156, 48,177,154,235, 86,179, 63,157,113,168, 37,187, 2,182, + 84, 68,118, 29,133,115, 44,215,107,142,130, 71,227,217,180, 61,199,231, 13,127,113,186,100,117,214,142, 22,219, 1, 17,179,240, +239, 50, 66,220, 95,254,174,207,191, 30,241,121, 29, 86,200, 89, 26,207, 24, 23, 98,244,105,143,103, 91,161, 47, 99,195, 73, 96, + 44,194,103, 55, 65, 72,112, 10,196,145,124,104,165,198, 11,129, 23, 57, 41,206,169,172, 53,216,140, 60, 17,139, 96, 41, 19, 8, +205,146,144,111,231,114,116, 4,153,139, 32,151,145,241, 33,115,214, 71,146,144,148, 36,152,146,137, 50,217,222,172, 52,115,169, +121, 34, 52,218, 90, 10, 91,162,144, 60, 9,158,162,172,184, 35, 5,247,146,128, 48, 48,183, 37, 65, 89,170,208, 99,250, 6,101, + 13,209,123,172, 72, 56,145,181, 71, 49, 4,150, 33, 19,244,136,137, 39,109,164, 75, 99,232,140, 80,227, 45,125, 20,204, 41,123, +185,106, 45,205, 88, 43, 85,182,185,141,103,244,127,218, 79, 61,201, 5,164, 75,204,127,226, 14,203,119,238,229, 20, 36,115,161, +146, 31, 59, 43,173, 71, 47,233,216, 93,116, 49,171, 29,235, 45,216,173,145,186, 32, 94,164,165,117, 62, 23,253,114,228,141,203, + 44,246, 58,243, 1, 71, 34,137,200,169, 15,108, 9, 65, 82,154,193, 59, 64,176,240,158, 62, 68,102, 82,178,136, 9, 41,229,248, + 98,141,117, 78, 93,140,254, 5,223,111, 19, 91, 86,176,155, 2, 83, 11, 79, 7,199,212, 90, 54, 41, 49, 9,238,242,134, 43, 5, + 40, 79, 10,154,211,152,152, 26,147,131,108,148,160,197,211, 15,130,190, 16,185,177,121,102, 51, 35,219,199,116, 22, 5,246, 33, +239,168,139,152,232, 4, 48,116,212, 69,205,248,209,205, 89, 11, 70, 83,199, 72, 7,236, 1, 15,132,160, 78, 61,159,155,105, 60, +154, 10, 79,179, 59,201,187,100, 3,119,151, 21,125,232, 47, 87, 32,210, 65,127,177, 79,231, 50,138,183,176,227,141,126,180, 46, +132,113, 74, 82, 88, 54,171, 14, 63,238,232,125,219,211,156,181,172,155,134, 33,120,166,243, 9,235,179,200,241,249, 6, 43, 4, + 82, 10,172,214,232,145,196,102, 20,156,167, 8, 93,196, 26, 49, 58, 81, 69,158, 96,165,252,181, 14, 41, 63,156,140,217, 38,231, + 70, 12,171,243,158,228, 60,214, 5,116, 4, 55, 4,206, 7, 71, 59, 12, 52,222,161, 60,164,152,144, 66, 48, 51,134, 43,202,178, +131,228,221, 71, 11, 58, 61,126,177, 87, 62, 63, 0,140,184, 89,178,109,109, 29, 97, 42, 97,237,225,173, 13,113, 94,160, 42,147, +117, 1, 41, 49, 51, 5, 91, 85, 69, 93, 20,244,193,113,114,182,121,150,213,227, 55, 3,194, 69,156, 82, 76,230,142, 9, 16,189, +199, 24, 73, 89, 25,166,157,165, 25, 34,102, 42,232, 6,139, 76,150, 98, 54,231,149,121,193,107,179,138, 74, 8, 66,231,104, 87, + 93, 78,206,219,177,120, 13,117,173,153, 76,118,152, 78, 45,190,141, 52,205,128,144,112,125,215,240, 66, 50, 28, 92, 41,120,184, +242,156,135,192,233,178,163,233, 60,199, 77,192, 27,197,193,139, 7,108, 29, 84, 76,182, 11,234,144, 16,189,167, 43, 4,147,173, + 57,202, 57,190,119,188,230,233,131, 37,171,147,150,183,255,213,191,227,149,255,238,191,230,255,248,247,111, 33,222, 62,231,103, +127,233, 85, 84, 44, 16, 86, 19, 67,194, 68,216,171, 53,191,254,197,107,124,245, 91, 15, 56,108,175, 80, 46,159, 98, 30, 46,240, +181,229,112,174, 49, 30,150,201, 80, 94, 55, 12,141,101,253,228, 41,191,246,153, 79,241,185,219,135,252,179,255,251, 27,188,247, +206,219,156,223,250, 60,101, 45, 57,223,222,102, 90,109, 35,119,182,153,204, 10,202,105,129, 34,209,172, 91,180,154, 50, 44, 55, + 40, 25,217, 18,134,210, 13, 24, 63, 32,137, 12,174,227, 85,237,249,131,183, 63,228,211,119, 63,160,252,212,171, 44,119, 95,226, +203, 74, 48,173, 44, 95,188,249, 50,230,250,117, 86,237, 57,243, 79,238,242,213,179,142,191,183, 83,241,241,149, 25, 31, 60,109, +145, 74,225,106,203,191, 57,107,152,118,138,175,236, 40,174, 85, 91, 68,173, 80,205,154, 45, 37, 57,142,153, 51,145, 98, 78, 72, + 91,106,197,111,156,159, 49, 77,176, 56, 89,193,217, 57,162,235, 72,234, 71,156,105,126,212,164, 92, 68,178,186, 17,190, 97,117, +190,160,180,253, 95,109, 4,254, 67,111,234, 23, 66,186, 8,187,159,189,195,233, 71, 79,152,138,192, 68,107,174,238, 90, 94,153, +205, 56,170,103, 36,169, 56,242, 1,193, 57, 83, 34,131, 79,108, 27,201,204, 42, 84,138, 36, 37,217, 83, 10, 29, 2,186, 40, 8, + 17,246,148, 39,186,129,151,132,200, 35,114,215, 51,137,130,210,123,102,182,196, 4, 79,169, 20, 69, 89, 99, 38,134, 48, 68,154, +245,130,217,100,135,232, 61,125,223,208,108,214,180, 93,203, 98,211,242,198,224,121,176,110,120,228, 60,167, 90,243,205,174, 99, +224,255,103,237, 77, 98, 36, 77,243,243,190,223,187,126, 91, 44,153,145, 75, 85, 86, 85,215,210, 93,221, 51, 61,156,157, 67, 14, + 57, 36, 37, 82,150,185,192, 48, 33, 27,180, 1, 95,228,131, 47, 6,124, 48, 4, 24,240, 73,128,225,139, 1,195,128,125,240,193, + 7,249, 98, 2,186,200, 2, 40,203, 20, 32,153,139, 8, 82,148, 72,145, 34,197,153, 86,207,116,207,244, 82,221, 85,213,149,149, +107,100,196,183,189,155, 15,239,151, 85, 77,114,108,211, 26,246,169,208,221,200,202,140,140,248,254,219,243,252,158,200,199, 62, + 48,196,145,170,148, 19,188,230, 83,181, 23, 72, 83,190,247,167,145, 17, 9, 16,222, 79,209,203, 58, 11,124, 39,253,128,144,110, + 0, 0, 32, 0, 73, 68, 65, 84,198, 12,169,203, 53, 35, 76, 27, 99, 83, 78, 19, 85,200, 53, 67, 76,153, 24,184,108,243, 27, 2, +148,146, 48,122,190, 73,207,144, 4, 95, 89,104,230, 82, 51, 18,104,148,161, 11,129, 30, 48, 74,115, 21, 34,131, 86, 28, 6, 8, + 41,178, 22,138,129,172,157, 17, 74, 17, 98,204,104,221,232,166,237,114,145, 79,198,170,129,137,204,183,150,138,215,141, 97, 68, +177, 86,154,195, 8, 87, 90,114,144, 4, 79,148,224,142,153,115, 25, 70,222, 46,231,220,102,195, 99, 96, 29, 34, 42,118,220,212, + 37,224,121,214,109,184,103, 11,210,152,104, 19,132, 16, 72, 65, 48, 34,145, 24,158,143, 25, 16,148,195,185, 66,174, 35, 74,102, +235, 85, 93,101,149,187, 45, 50,187,228,250,197, 45,203, 23, 37,235, 7, 11,116,169,203, 23,201, 49,111,254,212, 15, 99,181,226, +226,248, 98,162,209, 77, 44,243,248,169,172,206, 76,230,200, 19,108, 59,100,161,211,124, 6, 77,141, 44,116, 86, 92,247, 35, 92, +173,243,215,190, 78,114, 19, 47,211,192,230, 70, 49,196, 12,239,111,167, 80,148,150, 72,231, 35, 1, 88, 15,158, 83,239,115,122, +155,204,211,101, 10, 57, 95, 55,143,149, 83, 41,157,160, 30, 82,234,140, 1,148,153, 73,110,148, 96, 27, 34,123, 74, 50,151,154, +109,244,236, 72,137,146,240,201,198,211,163,208, 18,206,131, 32, 34,169,180, 98,136,226,101,247, 45, 39, 50, 73,152,168,120, 46, +163, 20,215,253,200,253,166,102,183, 40,232, 17, 84, 66,162,148,164,139,137,218, 24, 98,140, 12,193, 83,105,203,214,141,212,133, +162,241,142,135,210, 32,146,224, 10,201,171, 74,177,171, 37, 94, 8, 62, 95, 20,124, 36, 5, 97, 24,115, 55,231,166,224, 23, 89, +230,155, 57, 62,223,133,220,148,171,172,124,166, 84,185,248,194,250,246,214,219,223,230,151,126,233,231,216,180, 46,131, 85,124, + 98,216, 14, 92,182, 3,149, 45,121,248,218, 13,118,155,130,222, 7, 8, 57,101,205, 76, 64, 35, 73,162, 31, 60, 91, 23,104, 93, +194, 74,137, 53,249, 53, 12, 36, 98, 72,140, 33, 48,186, 56, 61, 88, 50, 39,158, 20,233,221, 52,149,247,158,147,118,228,162,115, +180, 62,131,102, 46,199,108, 99, 25,198,158,232, 3,115,101, 89, 52,101, 22,211,125,243, 99, 94,187, 10,236,123,193,221, 91, 5, +143,174,223, 27,149,124,153,206, 86,146,207, 58, 33,193,131, 18,154,252,250,213,141,226, 70, 83, 48, 43, 11, 14,235, 57,165, 54, + 40,107,176,214, 18,133,192,143,142, 97,219,211,110, 91,132, 53,212,149, 69, 10,232, 6,199,229,118, 96, 24, 29,163,243, 68,159, +208, 66, 82,207, 53,133,209, 84,139,146,215, 15,231, 28, 29, 52, 44, 22, 21, 85,109,176, 69,206, 92, 55,141,102,119,111,134, 20, +145, 79,158,108, 88, 46, 74,234,218, 80, 87, 6, 99, 21,139, 66,113,179, 80,236, 91,195,172,210,232,198,176,179, 44,217,158,245, +180,219,158,110,219,161, 43,205,108,183,192, 26,137,114,129,184,245, 96, 37,221,186,227,234,209, 25,103,127,248, 61,254,232,111, +255, 35,174,126,243,219,168,143, 71,222,252,143,191,204,235, 95,125,192, 31,254,218,111,240,214, 63,120,155,215,191,112,151, 54, + 70, 46, 98,160,182,130,170,176, 88,173,208, 11,195,229, 7, 29, 95,118,138, 97,188,162,171, 74,116,109,249,162, 27, 24,147, 32, +218, 2,105, 45, 97,127,151, 79,198,145, 95,253, 59,255, 59,199,127,237,231, 40, 94,249, 12,183,239, 29,177, 58,184,193,108,181, +135,106, 26,154,101,197,172,177,212, 86,103,122,160,247,232,209, 81, 14,158, 57, 30,237, 28,115,109, 56, 48, 5, 59,163,103,214, +181,236,246, 35,111,218,130,207, 55,115,142, 46, 79,249,209,122,198, 23,234, 25,111, 44, 86,188,214, 44, 89, 21, 13, 69,217,112, + 65,100,102, 5,172,118,216,111,102,220, 61,216,229,196, 40,130,206,205,126,144,154, 31,155,207,168, 4,120,239,113, 49,208, 59, +199,199,235,109, 14, 91, 57,187,130,203, 22,113,118, 65, 26, 60,195,101,159,183, 59, 50,175,156,196, 4,208,249,127, 12,171,178, + 19, 58,187, 48, 25, 82,163, 77,126,182,125, 90, 36,252,255,245,143,148, 47, 79,145,159, 38,226,148, 22, 10, 75,119,182,201,124, +245, 36, 56,216,169,120, 56,111,184,211,204,153, 43,141, 85,134, 72, 98,207,150, 92, 5,207,188,208, 52, 82, 82, 40,195,162,108, +168, 35,236, 38, 65,153, 28,209, 71,124, 20, 84,202,176, 40,106,106, 99,153,233,130,133, 20,212, 50, 79,150,141,176,148,202, 80, +151,115, 36, 54,171,250, 83,162,158,175,168,202, 57,133, 45, 41,164,160,180,150, 89, 89,178,154,213,220, 60,216,227,230,193, 46, +183,247,151, 28,220, 62,228,232,112,193,155,183,110,114,127, 94,242,198,254, 42,111,193,148,102, 43, 18,201, 65,210, 50, 39,103, +126,159,130,254,231,252,252,113, 90,183,199,148, 7,174,235,201, 61,168,140,201, 86,102,154,162,205,203,215,109,130,200,160, 12, +226,186, 41, 51,121, 53, 30,147,160, 52,138, 66, 41,198, 24,137, 19,235,100,155, 34, 66,107,198, 16, 49, 69,197,133,243, 28,218, + 2,132,164, 81,138,185,178,108,100,230,151,100,198,135,153,232,158,229, 11,160, 87,146,138,207, 21, 13, 91,169,179,218, 62, 9, +180, 86,236, 34,121, 79,192,171,218,210, 11, 65, 43, 20, 23,227,128,156,182,202, 3,144,148,101, 37, 37,167,126,228, 94, 81,225, +124,160, 52, 5, 78,106,182, 33,226,141, 70, 26, 67,151, 96,144, 18, 79, 34, 12,110,154,250, 38, 79,122, 97,242,107,164,174,183, +216,230,229, 16,169, 36, 86, 10,130,209, 63, 96, 81,151, 19,143, 56,193,201,199,207,184,248,222,211, 9,101, 39,255,244, 77, 74, +234,151,197, 93,201,172, 50,245,125, 22,169, 44, 22,160, 4,105,116,176,238, 50, 37, 39,201, 9,123, 23,114,135, 44, 21,140,158, +202, 74,132,130,185,214,180,206,103,228,235,208, 35, 83,190,131,131,228,233,118,224,108, 66,143, 18, 32,133,144,115,192,211,244, +166, 49,246,133,170, 92, 10, 73,175,114, 13,168,117, 66, 41, 77,129,100, 87,103, 2,207,214, 7,110,106,195,165,119, 92,186,200, + 43,165,224, 59,237,200, 16, 37,141,200, 69,189, 83,137,116,253,206, 82,217, 7,253,162,129,241,147,234,220,121, 80,130, 82,102, + 20,226, 43,205, 12,161, 20, 34, 6, 42,109,112, 49, 32, 17,184, 24,241,126,164, 52,154, 98, 28, 89, 37,193, 54, 38,110, 21,154, + 93, 45,105, 99, 98, 68,114, 71, 75, 78, 82, 96, 12,129,171,160,178, 40,143,240, 50, 16,199, 95,175,228,253,203, 53,141, 79,121, + 69, 86,218, 23,144,130, 95,248,247,127,129,187,175, 30,177, 94,119,180,219, 22, 55,142,140, 19,225,109,103,177, 64, 72,197,106, + 86, 49,159, 23, 64,166,227, 73, 33, 24, 66,162, 31, 61, 67,240, 88, 18,221,144, 3, 92,140,150, 36, 9, 33, 10, 66,140,196,152, +178, 47, 61, 68, 34,249,207, 17,129,144, 80,164,108,183,233,187,145,181, 11,108, 83,196, 13,142, 34,230,200,213, 49,100,238,128, + 78,153,141,220, 1,191,246,214, 35, 68, 23, 41, 37,136, 33,113, 62, 70,190,114,183,225, 39,238,204,248,185,210,240, 83,175,214, +188,118, 88,210, 61,172,216,155, 75, 78,199, 8,165, 64, 42,197,172, 52,212, 70, 50,183,150,253,197, 46, 50, 66, 81, 87,216,178, + 64, 11, 73,236,115,116,106,136,129,166,170, 88,148, 6, 23, 2, 39,235,142,227,179, 13,237,101, 71,215, 13,120,159, 83,241, 12, + 18,165, 65, 25,133,109, 10,230,149,193,216,220, 56, 6, 35, 73,149, 70,107, 56,220,105,176,133,102,177, 83, 83,149,134, 40, 21, + 74,201, 28,202,151, 18,133,139,148, 61, 36, 33, 24,172, 64, 43,201,106,127,198,114, 89,226,189, 39, 8,193,191,250,149,223,229, +189,111, 62,226,198, 98,135,245, 39,151,124,247, 15,255,132,239,254,238,159,240,123,255,203, 31,243,248,183, 62,200,233,119, 40, + 36, 1, 22,145, 31,254,233, 31,226,222,143,127,158, 94, 25,126,235,215,255, 25, 7,183,143,184,212,138,221, 90, 83,219,108, 13, +221,169, 44, 39,251, 13,247, 14,231,204,223, 63, 99, 45, 34,135,165,102, 39, 68, 46,158, 93,177, 45, 11,234, 89, 65,219,123,214, +169,192,124,229,171,148, 70,177,218,171,152,151, 6,163, 20,218,228,207,122,109,196,139, 39,182,117,158,114, 24,144,219,145,153, +246, 28, 10,201, 13, 93,240,197,162,226,168, 42,121, 80, 46,184,191,115,131, 7,119, 30,242,224,246,125,142,118,110,113,115,182, +207,222,114,159,157,131, 61,234,162,166,218,205, 81,153, 85, 80,244, 30,134,228,152, 23, 5, 55,155, 37,141, 49,236, 23,146,247, + 7, 15, 72, 66,138, 52,140, 28, 25,195,156,196,243, 97,195, 63, 60, 59, 39, 73,248,194,162,164, 22,158,139,147,233,110,238, 70, + 16, 2, 33,114, 40, 19, 58,175, 43,179,216, 52,252,121, 32,135, 41,243,218,211, 76,159,111, 61,177, 33,162,255,139, 23,245, 79, +107,139, 94,168,233,203,188, 54, 45,154, 12,194, 41,243,234,118,183, 48,220,168, 13, 71,166,100, 89, 20,204, 76,137, 4,106,165, + 8,164,156, 82,153, 50,169,177,138, 17,225, 6,172,243, 84,222, 81, 41,203, 24, 35, 85, 81, 33,133,164, 48, 10, 37, 36, 18, 65, + 74,130, 74,107,164, 0,107, 42,170,229, 14, 66, 90,116,105,145,218, 98,154, 6,101, 76,230,195,199,136, 20, 57,153, 82, 41, 77, + 89, 55,104,101, 41,139,146,217,124,151,133,169,185,189, 60, 96,175,106,216,173, 27,238,204,230,216,194,240,112,103, 65,242,129, + 79, 4,164,249, 33,209,119,153,143, 30, 35,233,251, 20,116,241,233,194,206,167,132,188,215,156, 20,117,189,158,143, 47, 99, 70, +175, 29, 60, 90,252,169,190, 64, 76, 95,188,117, 17,167, 37, 46, 38, 26,153,208, 90, 35,164,230,156,140,204,141, 49, 23, 79, 23, + 35,117, 89,210, 37,197, 40, 36, 27, 20,133,212,204,164, 96, 43,212,196, 9, 17,211, 10,126, 66,112,203,130, 59,182,224,105,130, + 91, 90, 83,107,197, 59, 18,238,170,130,103, 4,142,164,224,189, 16, 88, 41, 77,157, 18,167,198,114, 11,120,230, 51,151, 69, 24, +201,101,146,252, 84, 85,225,130,231,245, 89,195,190,150, 84, 86,243,165,217,140,189,186,225, 94, 97,121, 88,215,156,166,200, 37, +146,116,157,228, 70,200, 53, 48, 94,231,128,144,201,173,215,129, 95,218, 66,146, 36,242,249,246, 7, 43,234, 33,228, 78, 75, 76, +119,246, 52, 37,241,148, 38,119,184, 97,202, 85, 15, 33, 23,255,235,187,210, 56, 78,111,244,204,114,167, 29,178,186,187, 31,243, +135, 69, 77, 10, 63,171, 94, 78,235,165, 69, 68, 88,104, 77, 39, 97, 97, 45,235,209, 49, 51,154,110, 74, 20,218, 6,143,210,138, +139,126,186,133,167,188, 14, 15, 62, 76,112, 28,253, 18,126, 35, 68, 22,124, 69, 8, 99,164,148,217,163,222,135, 64, 35, 5,109, +140, 40,160, 19, 76,111,116,193, 71,193,115,168, 36, 39, 67, 96,144, 2, 23,179, 55, 49, 75,193, 95, 6,138, 76,161,228, 83,145, +141, 47,188,168,103,189,231, 51,203, 25,125,138, 84, 74,224,147,160, 16, 80, 75,141,115,142, 82,105,180,204,162,182,165, 82, 24, + 50,145, 46, 41,145,255, 10, 37,153,135,196, 25,130, 61,173,168,148,230, 56, 74,156,152,254,174,126,200,239,114,165,114,160,139, +148, 89,128,120,189,194,113,126,210, 61,100,229,100, 88,204,248,202, 23, 31, 50,244,158,174,115, 4,231,240, 19,250, 85,164,196, +195,215,142,152,213, 5, 59,179, 34,115,117, 2, 72, 45, 9, 33,178, 25, 29,151, 87,158,110, 12,164,152,111, 65,102,250, 62, 37, +146, 20, 18,129,196,232, 34, 99,200,104, 74,145, 34, 86, 64,149, 50, 38, 22, 31,216,142,158,245, 24, 24, 59,135,115,142, 2,120, +238, 60,235, 20, 72,222,209,199,192,108, 49,231, 81,187,229,215,255,201, 7, 60,146,129,247,206, 28, 31, 92, 57,134, 51,207,199, +207, 29, 31, 94,246, 28, 24,184,245,165, 59,252,200,195,215, 41,142, 14,184,163, 3, 63, 84, 43,126, 98, 94,177, 42, 18,181, 16, +164, 4,203,210,114,179,217,161,158,205, 40, 22, 53, 86,233,204,100,146,249,119, 22, 2, 44,230, 53,135,179, 18, 66,224,252,116, +195,241,211, 51,182,235, 43,252, 48,226,188, 35, 57,143, 74,137,224, 61,206,193, 48, 38, 98,161,137, 74,210, 43, 65, 42, 13,205, +178, 64,156,111, 40,254,245, 19,222,189, 88,227, 17, 72,151, 72,218, 80,104,157, 5,133, 36,132,139,200, 36,136,133,202, 41,130, +217, 9,136,213,138,157,155,115,102,251, 53, 95,254,201,207,241,141, 47,191,198,215,239, 46,217,185,183,199, 87,190,244, 6,255, +252, 95,109,217, 14, 11,228,113, 64,208, 79, 69, 29, 22,111,214,232,162,228,225,205, 5, 95,255,252, 17, 15,126,244,179, 60,223, +175,216, 43, 53,149, 75, 84, 74,162,173, 70, 22,146, 7,187, 37,197, 97, 69, 58,168, 89,188,187,229,234,124,160,235, 70,254,232, +120,160,154, 43,124,136,140,235, 17, 51, 4,118, 18,148,203, 18,229, 19,138, 68, 97, 36,113, 59,146,188, 71, 38,137,116, 1,209, +142,212,253, 72,108,183,104, 34,183,133,230,205,178,225, 70, 89,112,179,110, 88,205,102,212,203, 5,229,206, 28, 93, 26,172,178, + 24, 4,182, 44, 49,179, 10,213,212,232,202,162,171, 2, 85, 20, 88,107, 88,120,205,111, 15,129,207, 53, 13,101,213, 80,107,139, + 72,145, 66,120,158, 62,187, 36,125,112,204, 7,255,215,247,216,185,111, 24,199,150,199, 23, 23,188,211,122,126,246, 96,151, 47, +238, 30,242,234,206,146, 15, 82,160,221,110, 50,222,118,162, 41, 10, 49,185, 69,234, 10,154,102,138, 48,253,148, 86,136, 41, 2, +238,122, 82, 20,249, 62,154,113,157, 67,254, 44,253, 69, 7,159,235, 33, 71, 22, 57,113,171,106, 96, 94,231, 7,180,214, 44,172, + 98,169, 36,123, 11,131, 1, 30, 86, 53,145,108,169, 45,165, 32,166, 56,125,174, 96,244,217,109,161,200,216,106, 43, 4,115,105, +176, 73, 98,173, 38,133,152, 83, 19,125,100,219,181,108,251, 43, 68,116, 8, 4, 82, 40,164,136, 24, 85, 32, 85, 66, 8,131, 42, + 12, 56,151, 49,206, 82,230,144, 24,231, 16, 90,163,109,129, 68, 99,108,133,178, 21,214, 52,216,170, 65,106,141, 45, 42,138,162, + 38, 42,195, 65, 61,103, 67, 98, 89, 21,124,243,108, 64,223,219,197,159,158,229,154,108, 20,233, 26, 64, 38,167, 9, 94,235,191, + 24,126,220,232, 28,212, 99,228,196, 43,153,238,235, 98,138,245,142,113, 18,253,102, 56, 24, 70,210, 38,184, 97, 45,181, 53, 12, + 82,146, 84, 14,185, 84,202, 18,100,110, 70,163, 84,196, 32,152, 87,150,109, 18, 84, 74, 19,164,160, 81, 6, 33, 5,133,146,116, +241, 90,155, 52, 21,118,165,153, 11,197,171, 69,197, 73,204,191,155,165,178,108, 17,116, 40, 66,146,220,144,138, 36,178, 88,120, + 30, 35, 31, 2,165, 41, 9,228, 96, 46,165, 21, 59, 82,114,171, 50,220,211, 37, 91, 4, 51,105,216, 74,197, 74,149, 12, 74, 83, + 40,205,205,178,102, 16,130,211, 48,109, 42, 70,247, 82,139,161,204, 20,179, 42, 94,164,222,161, 45, 74, 25,146, 82, 4, 85,254, + 37,228,169, 95,175, 76,174,253,155, 77, 61, 21,177,235, 28,239, 79,197,203,169,201,203,221,141, 89, 24, 81,152,233,126, 49, 21, +160, 41, 44, 5,145,253,206, 47, 86, 11, 50,175,151,157, 53,204,180,230,187,155, 45,243, 66,179, 52,134, 53,153, 94,212,198, 64, + 7,116, 78,112, 17, 2, 98, 12,153,169,155, 34, 47,118, 52, 98,250, 30,194,212,125, 43, 5, 62, 32, 75,205,166, 31,153,149,138, +218, 26,146,247, 44, 11,203,214,123,218,224, 9,192, 54, 38,138,152, 56, 13,137,237, 48, 78, 65, 41,215, 30,252, 63,251, 65,158, + 86, 38, 76, 63,127,120,201,163,126, 60, 70,110, 53, 22, 71, 98, 71, 74,118, 76,193,102,220, 98,180,129, 48, 16,164,193, 6, 79, + 99,114, 51, 82, 41, 73, 36,161,149, 68, 75,197, 73, 74,236, 33,121, 26, 3, 43,109,176,181,228,233,224,167,201,156, 60,141, 79, + 62,234, 23, 98, 69,145,166,135,213, 84,153,125,142,171,187,120,118,204, 87,127,236,135,113, 99, 94,135,199, 4, 33, 36, 54, 93, +143,235, 3,139,221, 37,187,243, 38, 39, 1, 78,248,211,124, 51,207, 2,184,182,243,116,131,207, 73,142, 49,162, 84,142, 61, 84, +211, 41, 98,188,158,210, 67,164,154, 4, 40,253,132,142, 44, 82, 78,243, 75,131,231,162, 27,113,221, 64,233, 61,142,200,198, 59, +182,126,200, 27, 38, 91,112,120,231, 38,207,187,150, 63,126,247,241,116,190, 73, 83,124,108,130, 70, 48,158,120,254,205, 89,207, + 31,111,174, 8,203, 72, 89, 85,188,243,241, 83,202,229,140,163, 89,195,254,238, 62, 7,209,115, 11,248, 92,221,176, 55, 91, 98, +171, 26, 91, 26,202,194, 98, 11,149,213,185, 8,162, 15,220,152, 87, 28, 46, 75, 84, 72,156,157,181,156, 95,158,211,119, 67, 78, +132,242, 25, 23,156, 98, 32,198,252,190, 12, 41,226,198,196, 0,244, 72, 22,115,203,124,102,184, 58,121,206, 91, 31,124,196,163, + 16, 56,187,234,185,120,118,198,187,223, 62, 97,126, 50,240,222,224,217, 45, 53, 58,129, 83,137,160, 97,227, 3, 94,100, 11, 91, + 2,124, 18,140, 82, 49,147,146,135,115,195,106, 89,179,191,204,119,208,159,255,107,175,243, 31,253,228, 3,126,242,139,183, 88, +251,199, 60,126,255, 2,137,227,175,252,215, 63,199,143,191,114,192, 50,228,237, 87,153,224,187, 23, 29,231,143, 79, 57, 18,154, +198, 72, 76,109, 16, 38, 71, 69, 26,165,184,122,187, 69,188,239, 49, 79, 7,206, 79, 47,232,195, 5,118, 54, 67, 95,110,177,155, +150,230,170,231, 48, 36,106,163,120,181,150,124,205, 74, 62,155, 34,175,199,192, 43, 41,242,211,179,146,215,140,224,118, 33,185, +242, 3,201,195,129,210,220, 87,134, 90,231,237,200,162,154, 97,234, 18, 89, 24, 68, 93, 34,173, 65, 40,137, 72, 18, 33,115,244, +174,104, 42,196,162, 0,171,145, 90, 33,149, 68, 43,197,225,178,225,212, 5,222,108,106,246,139,138, 91,166,228, 63,251,247,126, +140,159, 53, 21,127,239,234,156,120, 88,243,157,147,142, 63,252,232,146,119,158,174, 73,223, 59,231, 27,111,222,229, 70, 85,211, +166,200, 31, 5,199,152, 52,244, 30, 49,246,249, 4,165, 64, 20, 5,114, 81,243,250,174,197, 91,155,197,174, 62,188, 12, 18,145, + 50,175,129,175,201,142,110,204,214, 55,247,255, 67, 48,167,116,142, 41,109,106,216,153,229,130, 94,217,188, 58, 45, 21, 43,171, + 40,132,228,103, 87, 21,135, 2, 94, 45, 11,130,148,200, 24, 41,164,198,165,152,131, 26, 73,196,224,185,232,182,180, 33,144, 82, + 30, 52,124, 10,104, 18, 82,105, 84,136,156, 15, 3, 2,193,218,245,140, 33,112, 25, 70, 92,138, 68,239,208, 74, 99,141, 37,165, +136,110, 26, 68,200, 14, 22, 97, 44, 20, 10,161, 20,201, 59,132,202, 9,139, 66, 8,164, 84,153, 68,109, 43, 32, 33,172, 70, 74, + 69, 82,154,164, 20, 90, 25,182, 8, 74, 83,208,138,200,157, 18,196,122,203,113, 31,241,101, 69,242,144, 76, 65,180, 53, 41,138, +108,115,150, 6,172, 68, 76, 91,222, 63, 79,233,211, 47,239,200,105, 42,224, 70,189,200,137,167,152, 10,237, 20, 20, 99,203,146, +160, 21, 86,106,154,210, 18,165, 66, 75, 67,105, 52, 87, 99,162, 49,134, 36,179,184, 13, 4,115,109,137,133, 69, 36,155,183, 33, + 74, 81, 73, 75, 75,160, 81,146,203,148,240,198,144,194,116,198,156,148, 79,181, 50, 84, 41,112, 46, 4,149, 54, 52, 34,242, 84, + 40,246,101, 22,167, 5, 96, 76, 2, 39, 37, 59, 82,242, 28, 8, 41, 32,148, 69, 16,105, 80,220, 22,154, 55,230, 11, 62,244, 35, + 75, 85,176,197,177,178, 11, 62,113, 61,171,114,198, 58, 65, 79, 98, 71, 75,122,105, 88, 71,159, 27,153,110,152, 26,163,105,237, + 46, 5, 66, 23, 40,109, 40,180,196,203, 44,162,147, 50,253, 37, 8,229,174,189,155,117, 57, 69,135,166, 79,201,237,139, 23,222, +194,151,164, 32,145,249,239,238,218,214, 96,115, 81, 15,254,165,216, 44, 77,121,226,253,244,239,146,135, 82,179,144,130,211,126, +224,235,111,126,142,243, 71,143,248, 36, 37,106, 43, 57,117,217, 50,225,250,200,243,216,177, 91, 20,156,140, 46, 79,174, 74,229, + 78, 79,126,106,101, 99,213,203,239,187, 80, 68, 23, 40, 76, 14,162,217,211,129,193, 90,206,219,204, 11, 54, 90,178, 29, 61,117, +130, 51, 36, 55,172,224,217,116,147,207, 96, 23,253, 41,110,190,250, 62,183,180,235,117,146,134,232, 9,253,192, 31,159,110,248, +252,193, 18,105, 52, 79,182,107,246,170, 26,215,247,152,162, 98, 24,174, 16,186,196,122, 15,182,164,247, 89,201, 95,105,141,247, + 57,208,224,116,116,220, 16,154, 45, 9,147,200, 97, 20, 35, 80, 68, 24, 38,223,250,181, 53,240,251, 61,127, 12,153,206, 4, 88, + 43, 1,205,213, 69, 32, 78, 83,202,188, 44,233, 59, 79,112,129, 16, 67, 6,172,132, 72,165, 37,227,224, 81, 50,177, 29, 60,155, +193,177,222, 58,116, 27,217, 93, 20,212, 70,226, 67,194,170,156, 84, 38,175, 51,129, 72,116, 41, 7,168, 68,160, 21,130,128,160, +209, 57, 77,105,150, 96, 45, 4, 43,165, 24,130,100, 85, 20,108,250, 54,247,129, 68,202,202,226,214, 87,217,214,135, 7, 27,225, +142,205, 10,119, 18, 44, 53, 92,193,229,123, 29,191,117,252, 1,247,127,102,203, 7, 62,112,218,119, 28, 23,138, 55, 23, 59, 12, + 85,195,221,221, 5,183,186, 17, 37, 20,167, 68, 68,128, 69,109, 49, 70,177,141,145,203,148,137,178,115, 33,144, 33,209,141, 30, + 70,135,244, 9, 27, 34, 82, 41,164, 16, 83,202, 85, 66,248, 97,202,156,246,244,222,177,137, 3,108,103, 92,218,132,208, 13,255, +242, 60, 17, 67,164, 54, 6, 33,225,160, 40,217, 21, 35, 95, 60,118,252,195, 63,254, 61,126, 39, 58,110,127,253,135,152,223,152, + 99,154,130,164, 53,203,202,210, 21, 5, 99, 74, 68,173, 9, 62,243,248, 69, 20,164,144, 25, 28,131,212,148, 18,202,251, 13,175, +222,126,149,255,230,103,255,115,206,223, 57,230,119,199,192,177, 10,108,149, 68,196,136, 1,194, 24, 56,253,149,223,231, 79,254, +231,223,231,183, 80,252,213,255,224, 62,191,248, 95,252, 13,230,159, 57,152,214,152,130,219, 63,126, 3,126,244, 16, 98,228,205, +206,227,207,122,190,245,127,188,197,193,189, 67,218,222, 79, 28, 1,137,117, 26, 61, 72, 74, 41, 40,102, 51, 68, 61, 67, 76,228, +200,250,170, 67, 94,108,185, 85,150, 60, 25, 19,115, 37,169,181,162, 68, 48,223,153,163,119,102,136,114,194, 23,199, 4,163,200, + 19, 72, 57,137, 52,108, 49,173, 58, 65, 76, 42,100, 17, 37,210, 40, 30,116,154,187,171,125, 60, 9, 71,194,141,240,247,255,241, + 31,240,175,135, 62, 7,144, 72,133, 44, 21,194, 42, 36, 37,241, 48,241,203,223,250, 46,255,195,143,126,134,181, 54,108, 66,132, +189, 5,194, 42,210, 39, 37,162,189, 36,181, 27,192, 19,235,130,103,193,114, 41, 4,204, 42, 4,146,212, 78, 32,154, 97,132,226, +122, 16,136,223,159, 16,247,255,182,118,215, 21,203,195, 57, 93,146,220,222,169,137, 72, 78, 17,108, 66, 70, 98, 43,153, 27,183, +175, 47, 53, 7,149, 97,134,193, 5,120,220,118,148,117, 69, 55,108,153,219, 18, 43, 2,155,161,231,180,109,249,216, 15,156,219, +134,187,141,100,140, 30,145, 52, 79, 66,207,118, 27, 16, 66,178, 50, 37,207,198, 30, 69, 68, 4,143, 8, 3, 39,192,205,114,134, +211,185,161,211,245, 44,247,245,171, 26,233, 2, 30,137,138,145,224, 71,164, 85, 48, 90, 82,202, 91, 9,193, 20,196,148, 34,178, +172, 72, 49, 98,154,138, 24,242, 48, 23,181, 99, 87, 72, 68, 81,177, 34,178,213,138,163,242,140, 47,204, 12,143, 29,156, 13, 35, + 66,106, 46,124, 96,140,224,194, 4,240,217, 76, 1, 60,166, 32, 13, 49,115, 78, 94, 12,138, 38, 59,163, 82,132,178,196, 54, 5, +152,130,170,202,110, 33,172,166, 2,182,218, 80,106,141,139,158, 3,157, 73, 17, 86, 91, 74,107,115, 70,133, 82,172,180, 70,107, + 3, 8, 10, 41,144, 82, 19,133,162, 34,114, 28, 18, 21,137, 82,229,230, 98, 95, 23, 92, 12, 14, 77, 68,135, 64, 48, 10,229, 50, +113,242,129,214, 60,119, 35,162, 44,152, 69,176, 9,190, 23, 35,175,105,120, 39, 38,142,164,164, 6,158,197,200,109,224, 17,208, + 76,224, 27,162, 71, 34,248, 90, 93,114,219,104,206,188,227, 78, 81,115,236, 28, 11,179,195, 24, 71,110,207, 86, 92, 12, 27,118, +140, 69,104, 67, 43,224, 78,225,185,223,236,115,188,217, 82,204, 12,111, 61,223, 18,165, 70, 12, 46, 71,217, 18, 40,129, 82, 40, + 14,136,160, 18,131,212,127, 9,147,250,167,163, 12,109,153, 63, 0,122,234,180,124,152,248,180, 83, 60,166,184, 78, 12,155, 80, +176,106,154, 28,211,100,123, 99,154, 52,167,238, 48,139,240,166,197,147, 15,168,210, 50, 83,138,211,205, 26,173, 52, 94, 73,188, + 80, 92, 37, 40,147,162,149,176,246,145,171, 97,164, 16, 34,231, 18, 95,159,203,164,192, 22,138, 48, 38, 48, 10, 37,196, 11,135, + 4, 70, 17,134,145,206, 37,118,172,164, 78, 57,181,205,167, 72,244,121,157,213, 35,152,201,200, 73,159, 88,143, 97,106, 24,228, +203,117,126,186, 78, 81,147, 47, 15, 72, 82, 76,234, 73, 61, 53, 0,185, 38,141,201, 51, 55,146, 89,105,114, 67, 33,166,147,247, +208, 83, 26, 75,240,142, 78, 8,230, 72,198, 24,209, 54,195,254, 21,146, 32, 52, 90, 66, 23, 35,143, 99, 64, 10,205, 19, 38, 11, + 70, 63,117,117,147,157,231,229, 42,241,207,110, 87, 66,214, 22,148,134, 31,255, 43, 63, 65,140,208, 94,181,116,109, 75,187,237, + 40,138,130,161, 31, 80,210,178,183,191,195,173,221,134,224, 35,150,140, 56,236, 92,164, 29, 3, 97,140, 92,181,142,209, 7, 54, +206, 83,151, 58,135,183,136, 44,164,243, 41,209,133,124, 23, 43,132, 96, 12,137, 33,229, 48, 28,231, 35, 54, 69,108,231, 24,122, + 71, 57, 56, 86, 81, 32, 37, 84, 64,116,129, 24, 50,242,240,193,141, 67,222,251,224, 17,239,157, 92,241,122, 23,121,254, 73,128, +117,128,165,130,199, 14,250,200, 44,129, 38,113,184, 48,216, 16,168, 14, 42,214,231,125,158,104, 54,103,180,209,241,165, 47,125, +137, 27,111,188,194,182, 48, 92,110, 91,170, 4,203,101,195,124, 86, 80, 89,195,210, 40,118,203,130,189,121,137,150,146,161,115, +116,151, 45,169,235, 41, 68,182,134, 25,157,225, 14,122, 90, 20,232,148,208, 50, 82,132,132, 30, 28,202, 57, 70,239,105,235,154, +205,108, 70, 82, 21,171, 24,216,155, 27, 78,188, 64, 12, 61,103,238,138,127,122,118,142, 25,215,188,251,157, 15,233,223,126, 76, +251, 27,223,228,157,247, 79,248,253,223,121,143,187, 23,145,117,109,184, 24, 29, 73, 75,180,149,248, 49,135,197, 92, 33,216, 2, + 49,102,151,136,239, 28, 91,153,120, 63, 37,250, 82, 19, 77,129,145, 26,143, 96,140,129,113, 12,188,242,230, 29,254,229,123,239, + 99, 30,141, 60,250,246, 57,255,244,127,251, 67,126,225,111,254, 8, 98,178,194,166, 33,226,175, 6, 82, 76, 25, 7, 92, 26,110, +125,227, 30,205,221, 29,246, 63,187, 98,247,181, 93,230, 71, 11,138, 69,133, 80, 18, 93,106,180, 80, 40,163, 81,133, 38, 78, 13, +243,198,121,198,152,185, 2,135, 83, 20,239,222,124, 78,185, 63, 71, 86, 57,194, 22,159, 72, 99, 36,174, 59,146,115,164,174, 39, + 57,135,176, 42,127,212, 11, 77,242,137, 56, 6, 92, 63, 18,188,199, 71,159,243,173, 75,131,170, 11,236,254,146,195,197, 46, 55, + 69,197,126,165,113, 54,242,180, 31,137,195, 72,252,206, 25,137,192,189,253,146,191,253,181, 47,243, 57,101,249,213,147, 99,174, +124,204, 83, 94, 85,228, 38,216, 84,224,122, 68,187,165,247,242,101, 64,134, 49, 8, 49,129, 61, 72, 19,123,252, 58,222,242, 83, + 39, 68,173,255,252,132,121,157,139, 81, 90,104,230,168,229,140,207,237,204,120,184,187, 96,111,209, 80, 88,205, 65, 83,240, 60, + 66,144,137, 74, 27,172, 12,252,120, 83, 49,183, 42, 67, 84,124,158,194,207,183, 3, 49, 68, 6, 55, 82,144,159, 63,111, 11,120, +171,218,227,222,124,201,221,253,219, 24,109,179, 64,109, 24, 56,139, 35, 67,244,180,192,198, 15, 92,185,142, 77,116,108, 82, 2, +107, 89, 43, 65,221, 52,216,162, 64,218,124, 42, 10, 49, 76,196,115, 8,163, 35, 77, 27,197,224,186,252,222, 16,146, 20, 28, 66, + 24,146,202,226, 87, 89,214, 89,189,164, 44,113,130,225, 68,107, 9, 68,162, 46,217, 4, 71,176, 22, 93, 85, 72, 43,121, 80, 87, +152,218,240, 96, 94,113,119, 86,112,123, 81, 49, 8,201,225, 94,205,185,158,234,133,212,249,249,101,235,151, 89,225,218,192,124, +206,237,221,138,195,186,164,153, 21,172, 26,195,194, 90,118, 11,197,110,101,217,151, 26, 37, 51, 91, 98,161, 11,230, 69, 73, 97, + 20, 51, 91, 17, 68,100, 49, 21, 72,133,100,174,114,240,151,151,154, 65, 8, 46, 93,100,174,115, 2,227,220,102,232, 76,235, 70, +106,149,127,239, 27,239,169,100,118,242, 52, 36, 28,146,221, 20, 25, 66,126,110,245, 66,240,154,214,188, 59,140,220,183, 5,199, + 33,178,163, 36,149, 82,156, 35,185, 15,124,148, 2,114, 10, 2,251,233,106, 70, 29, 97, 97, 21,115, 99,240, 66, 80,153, 76,180, +171, 76, 65, 31, 60, 11, 83,209,138, 68,166,241,123,140,214,184, 40,153,171, 68,151, 12, 43, 3,167, 67,200,246,241, 24,121,189, +106,216, 81,146, 90, 10,110, 74,201,162, 40,177, 66,253,128, 69, 93, 79,235,165,235, 44,118, 57, 81,129,196,148,223,157,166, 34, +173, 39,240,252, 11, 68,172,123,121,167, 26,211, 68, 26,242, 83,138, 88,238,170,178,170,217,230, 73, 83,128, 42,203, 44,136, 52, + 5, 59, 90, 65, 89,224,164,101,140,137, 70, 91,158,120, 71, 23, 34,193, 22,132,190,207,228,159, 77,159,191, 23, 99,144,133,196, +162, 40,172,197, 39, 71,140,137,125, 83,208,199,136, 85,138,224, 60,193, 7,118,180, 96, 16,208,133,128,137,130,109,242,148,211, + 26,204, 36, 56, 29, 60,173,144,249,254,239,252, 20, 65,153,160,170,242,207, 48, 78,105, 76, 97,122, 16, 88, 59,145,244,166,230, + 71,100,111,230,170,177, 36,159,216, 45, 10, 90, 55, 96,101, 86,226,187,233,181, 49, 86, 51,142,142,178, 52,136, 0, 73, 78,164, +163,152, 94,172, 78,157,146,252,193, 38,135, 3,188, 72,107,187, 22, 38, 94, 43, 39,191,223,237,170, 46,167,219,191,224, 75, 95, +255, 42,101, 83,208,111,123,218,245, 38, 99, 5,180, 65, 70,193,197,249,134,162,156, 51, 95,212,204, 27,141, 84,130,118, 72,244, + 62,208,247, 1, 23,161,247,142,182,119, 88,171,184,123,208, 32,200,247,248,156,214, 22,179,149, 45, 68, 90, 31,232, 67, 64, 8, +145,197,250, 46,160,131,167,234, 51,107,125, 24, 28,125, 8, 60,139,142, 62, 70, 26, 41, 25, 82, 98, 37, 21,175,220, 62,228,195, +199, 79,184,250,246, 57,247,172,228,246,107, 37,162, 86,188,118, 88,112,187, 11,252, 59,243,130,207,110,115, 51,240,229,160,216, + 93, 74, 52,176,187, 44, 16, 8,246, 2, 92, 68,199, 16,224,141, 55,239,243,218,103,110,113,220, 58,174,250, 1, 91, 21, 20,133, +166, 41, 52,133, 82,236, 46, 43,234,202, 98,164,160,219, 14,108,215, 45,105, 24, 49, 66, 80, 26,141,145, 18,155, 18, 50,100,171, +158,140, 9, 69,206,153, 55, 17, 52, 17,213, 57,180,119,136, 33, 97, 48,244,197,140,131,253, 93, 98, 57, 39,154,138, 43, 13,101, +123,201,237, 30,158,186,142,195,214,113,233, 6, 94,237, 19,207, 66,135,252,246,187, 92,125,247, 9,255,228, 55,254, 57, 79, 30, +117, 60,122,188,229,195, 62,208, 91,141,208,146, 46,130, 12,158,174,117,124,180, 30,248,206,105,199, 58, 37,164,150,124,102,101, +241, 66,147,140,230,208, 9,182, 50, 49, 68,197,236, 51,175,242,229,159,126,157,195, 7, 37,238,189, 51,254,207,255,233, 55,249, +233,191,241, 21,164, 80,184,179,129,177,115, 4, 41, 80, 66,162, 76, 78,181,147, 11,139, 40, 52,178,204,235,240, 24,179,203,196, +141,121,122, 39,228, 7,125, 18,137, 97, 12, 92, 56,135, 46, 13, 61,176, 50, 57, 4,104, 86, 91,244,117,218,152, 75,132,103, 91, +134,247,143,241, 31,126,194,248,201, 49,227,232, 16, 49, 32,166,160,161,216,142,248,193,227,186,158,182,235,184,188,220,224,198, + 1, 93, 40,164,209, 8,173,161,208,116,222,211, 38,193, 85, 10,196,148, 40, 45,168,186,228,188,214, 68, 45, 56,247,240,209,211, + 71,252,183,111,125,151,231,103, 93, 46, 30,243, 69, 86, 52, 47, 26,196,238, 46,236,237,193,124,137,120,126, 9,174,205,197, 68, + 76,226,223,186,156,232,141,226,229, 42,254,211, 27,184, 79,255,249,186,200,235, 38,175,150, 15, 14, 88,204,107,126,226,104,151, +251,243, 57, 55,155,134, 90, 27,118,148,228,196, 7, 90, 1,253, 20,203,176, 39, 36,187, 5,220, 84,185, 9, 47,133,224,184, 31, +248, 23,207,214, 84, 74,240, 30,145,161,168,248, 94,189,226,247,203, 21,174, 90,240, 87,239,222,227,160,168, 88, 53,187,196,144, +232, 72, 28,183, 3,155,152,136, 41,224, 98, 96, 27, 3,231,126,196, 9,193, 58, 38,188, 18,216,186,196, 24,203, 40, 35, 42, 9, +134, 20,137, 50, 15, 55,227, 56, 18,194, 72, 26,122, 82,136,200, 20, 73,110, 64, 40,155, 61,255, 73, 65, 85,101,207,182,148, 36, +163,242, 57, 74, 11,164, 81,180, 33,209, 7,199, 32, 37, 99, 76,180,201,179, 99, 42,148, 49,220,169, 42,180,206,246,180, 85, 61, + 99, 85, 88, 6, 45,169,235,130, 81,104,196,188, 33,212, 85,174, 37,139, 6, 22, 85, 22, 15,214, 5,119, 87, 51,144,154,210, 42, + 42, 99,137, 72,246, 75, 75,161, 13, 23, 94,176, 83, 91,108,212, 84, 69,241,162,168,121, 18,141,170,112, 49,167, 74, 90,153,165, + 95, 73,106,208, 2,147,160, 46, 10,182,227,136,143, 9,143, 32, 6,135, 16,138, 75, 63,144, 98, 96,144,137,198,185,156,149, 78, +100, 39, 5,108,206,240,100, 38, 18, 46, 36, 54, 66,112,168, 13,143,253,192,131,178,225,210, 59, 82,138, 44,129,143, 8,184,224, + 16, 62,113, 71, 27, 14,165,226,176,214,168,144,144,198,190, 8,146,140,147, 91,170, 52,150,203, 16, 88, 25,195,218,141, 84,182, +100,240, 30, 41, 18,103,163, 67, 39,176, 82,115, 44, 2,171,178,226,117,163, 9,202, 98,148,226, 64, 9,148,212, 52,133,100, 33, +220, 15,170,126,159,146,217,132,205,147,185,158,176,175,218,188, 12, 88, 86, 58,123, 62,153,140,253,253,116,131,239, 93,158,212, +245, 52,237, 42, 61, 77,187,215,201,110,217,248,159, 1, 16,144,148, 66,148,138,186,176,180,218,160,149,194, 40,205,229,116,243, +174,180,229,185,243,132,190,195,206, 23,140,235,171, 73,192,150,183, 0, 73, 43, 42, 33, 72, 41,210, 40,137, 16, 18, 99, 36,189, + 15,153,123,110, 52, 12, 35,235, 40,184, 91,105, 46, 93,160, 86,138,153, 84,156,199,196, 92, 75,206, 98,224,196,101,228, 96, 34, +195, 83,242, 14,138, 44,240,211,122, 42,188,241, 83,170,127,159,109, 35, 34,253, 41,110,244,105, 23,121, 56,171, 24, 68, 94,255, +244,221,128, 22, 9,161, 50,227,184,237,123, 10, 99, 81,225,165,176, 47,251,230, 51,135,121,144,138,167,222,113, 25, 36, 65,155, +220, 16,197,137, 12,120,205, 7, 78,225,251,223,255,164,156,110, 86,112,247,238,125,118,247,119, 25,122, 71,244, 14, 31, 34,221, + 48, 98,180, 33,196, 72,221,204,152, 47, 22, 28,173, 26,148,140,249, 53,117,105,186,149, 7,146,136, 8, 37, 9, 99,192, 88,197, +178, 54,140, 33,101,180,233,148, 19, 45,128,113,186, 1, 54,147,222,192,133,144, 93, 61, 41, 18,134,192,170, 15,120, 23,152,161, +216, 79,145, 48, 6,130,132, 74, 43, 86,203, 57,223,124,250,148,183, 30, 95,240,137,243,188,211,122, 78, 54,158,167,223,107,121, +114,191,224,116,166,249, 23, 91, 79,120,189,224, 96, 71, 50,215,154,102,167,228,167,230, 11, 22, 46, 81,140,129, 98, 49,167,243, + 45, 85,185,195, 27, 15,111, 48, 70,193,232, 19,125,202,177,177,213,100,127,156,205,107,234,202,162,148,196,199, 68,215,122, 92, +223,147, 98,156,208,182,145, 20, 34, 41,166,172,128, 23,153,160,167,132,202,182, 62,173, 40,181, 98,111,165,121, 77, 69, 22, 51, +203,237,189,134,207,220,222, 97, 86, 89, 62,142,134,214,214,236,220,184,133,187,119, 31,127,239, 53, 14,191,242, 25,110,126,254, + 13,206, 84,197, 59,103,199, 60, 59, 89,243,215,247,102,252,163,139, 13,225,233, 39, 12, 79, 62, 66,187,200, 86, 20,156, 78, 97, + 29,214, 69, 62,217,122,222,189, 26,120, 54, 58, 58, 37,249,252, 94,193,225, 60, 55, 37,167, 81,113, 94, 72,238,161, 56, 51,138, +155,135, 51,110,223, 95,113,227,243,247, 89,252,252, 23,216,251,236,138, 95,254,239,255, 1,221,255,248, 29, 94,251,165, 55, 17, +133, 66,207, 44, 74,171, 44, 65,185,214,184,196, 12, 49, 74,189,167, 61,105,249,224,116,195,105, 55, 16, 58,199,213,186, 99,187, +238,216, 58, 79, 31, 35,163,204,186, 2,124,224, 42, 37,230, 70, 97,138,108,191,137,125, 96,120,116,193,240,225,115,210, 59,223, +130,211,143, 8,237, 37,177,191, 66, 10,133, 8, 16,186, 14,223, 13,244,219,142,171, 77,203,135,151,151,124,216,109,144,193, 33, +133,204,205, 65, 97,137, 34, 49,106,197, 38, 6,206, 60,244,147,194,186, 20,145, 7,171, 25, 71,243,130, 7, 51, 67,159, 50,151, +240,164, 11,121,157,254,252, 12,179,103,219,153, 0, 0, 32, 0, 73, 68, 65, 84, 49, 43, 97,103,143,159, 63, 92,241,239,222,188, +193,157,198,242,237, 56, 64, 81,231,207, 75, 31,167,103,153,206,195,198,162,225,206,209, 62,159, 59,152,243,113,159,207, 49, 88, +253, 50, 90, 90,216, 60,180, 44,151,176, 83,103,235,221,238,140,175,222,220, 97,223, 88,142,170,134,156,105, 24,168,116,129, 13, +129,142,196,137,207, 91,139, 43,159, 83,233,110,218,140,191, 62, 27, 6,254,238,227, 45, 79,202, 25, 79,246, 15, 57,221,185,201, +191,169,119,121, 82,204, 17,186,228,111,222,187,205,151,202,154, 31,154,205, 57,136, 9,233, 19, 9,129,151, 35,155, 33,208, 19, + 8, 34, 39, 87,110, 93,224, 60, 70,174,132,160, 37,159,152,102,133,161, 52,134,181,243,200, 24,241,131,231,249,230,138, 20, 2, +109,219, 18,131,199,140, 35,113, 26, 46,210,181,232, 87,233,108,113, 20, 57,200,200,123,159,173,107,218, 48, 58,207,152, 18, 27, + 53, 97, 70, 68, 94,217,123, 41,217,181,118, 18,170,105,118,170, 25, 93,138, 20,166, 96,223, 22,244, 18,150,179, 37, 74,165,220, + 88, 47,102,217,150,166, 52,187,243,134, 59, 85,201,210, 40,202,166,162,214, 6,109, 21,179,162,100, 20, 9, 37, 53,135, 77,157, +239,225,182,194, 40, 48,214, 96,117, 73,161, 12, 99,154, 68,189, 34,163,176,209, 37, 86, 73,186, 16,209,218,112, 53,120, 74, 35, + 16, 73,146, 66,142,220,214, 36,174, 82,164, 77,145,185,243, 24,161,153,145, 61,255,187, 41, 32,146, 71, 7, 79, 18, 96,137,244, + 67,203, 24, 34, 71,218,242,214,176,229, 72, 25,106, 41,120,199,121, 98,138,144, 2, 70, 75,110,203,204, 71,185, 95, 22,116, 74, + 82, 2, 35,137,153,210,180, 74,178,212, 37,155,228, 89,105, 77, 39, 4, 43,107, 57, 31, 29, 51, 93,240,164,237, 49, 66,210,225, + 9, 74,241,229, 89,197,158, 12, 68, 81, 80,106,201, 61, 35,153, 27,131,146,145, 50, 9, 46,199,248, 3, 22,117, 37, 95,168, 15, + 51,133,199,194,188,252, 83,118,131, 23, 89,175,144,167, 71, 33,242,250, 87,132,188,110,105,202,252,223,221,148, 34, 22,166,105, +189, 42, 51,196,134, 41, 98, 78, 68, 82,105,136, 90, 35,140,101, 84,154,115,231,152, 23, 21,206, 88,158, 13, 91,234,178,202,201, + 97,125,151, 39,231,179,171, 92,120,165,162, 40, 53, 67,136, 20, 34,145,132,192, 74,232, 92, 96, 33, 37,165,146,116,237, 0, 82, + 18, 58,199,211, 49,242,234,220,208, 69,207,241,152,184, 89, 91,158,185, 17,159, 12,107, 4,209,249,252,179,251,144, 27,150, 48, +137,253,226,132,245, 75,188, 92,205, 15, 33,223, 46, 99,122,169,250, 28,243, 42,207,169,196,145, 53, 92,141, 35,149, 54,108, 6, +151, 85,241,215,255,111, 8,140,211,170,135, 16,113, 82,230,104, 83,145, 85,153, 35,137, 62, 36,182, 99,151,155, 38, 61, 61,104, +220,164, 69,232,253, 68,156, 11,127, 6,126, 33,166,252,250,200,219,223,252, 22, 63,245, 11, 63,195,246,226,138, 52, 53, 40,222, +123, 78, 54, 27, 98,128,189,249,146,229,114,198,206,220, 82,200,124, 90, 24, 93,162, 29, 3,227, 24, 25, 7,207,186, 27, 8, 46, +210,133,192,162,182, 72, 18,133,146,217,191, 42,193,165, 68,140, 89, 13,111, 98,100, 41, 35,229,148,191, 62,159,236,110,201, 69, +116, 10, 44, 98,162, 65, 48, 79,129,149, 84, 25,146, 49,171,120,247,248,140,254,108,205,158, 18,172,162, 96,150, 2,103, 49,191, +201,174, 62,232, 72, 67,100,125,225,121,123, 27, 57,173, 18,106,105, 56,186,125,132,159,215,168, 24,185,217,148,220, 48, 21,242, +236,130, 81, 23, 52, 82,177,152, 87,116, 33, 16, 66, 36,141, 14, 21,161,170, 11,202, 74,163,181,202, 33, 54, 33, 50,116, 14,239, + 60, 49, 4,162,115,140, 46,160, 98, 14, 91, 40,144,152, 36,104,180,166, 50,154, 89, 89, 80,151,134, 29, 35,184,111, 10,246, 18, +180, 38,195, 33,206, 29, 92,249,132, 85,145,164,225,162,247, 20,109, 96,121, 99,206,193, 43, 11,110,190,121,196, 63,246, 43,254, +214,195,187, 20,119,143,120,253,141,251, 44,191,250, 5, 62, 60, 89, 83,110,207,217,188,255, 33,227,157,187,204,166,165,205,249, +232,121,127, 51, 34,198,136,142,145, 89, 89,176,168, 12, 27, 4,239, 14,145, 11, 31, 89,203,196,122,240, 28, 84,138,203, 33,114, +188, 25, 25,125,228, 11, 63,241, 26,223,248,197, 31,230,141,255,228,115, 96, 18,197, 65,133,174, 52,114, 74,193, 74, 27, 71, 58, +235, 9,103, 61,227, 89,203,230,233,150,167,167, 27,190,117,185,230,100,112, 60, 31, 71,130,130, 86, 11,156, 72,244, 10,130, 18, +184,148, 19,249,132, 82, 52,149,101, 32,178, 25, 61, 93,244,172,183, 45,177,219, 32,151, 13, 65,130,223,221, 37,218, 2, 49,145, +214,198,237,150,243,110,203,201,176,229, 73,244,188,221,173, 57, 9, 35, 49, 70, 26,107,241,147,186,216, 25, 69, 23,225, 34, 37, +206, 93,224, 50,228,109,153,214,185,209,223, 49,154,185, 54,220,108, 26,238, 26,197,235,171,154,219,251, 75,158, 8,197, 92, 65, +247,228,148, 95,124,245, 85,238,214, 21,231,179,125,254,228,234, 60, 47, 23, 11, 3,149,134,170, 70,204,106,168, 10,238,172, 22, +252,200,209, 1,183,119,246,112,181,228,249, 58,193,238, 14,234,230, 33,105,190,128, 41,209,140,163, 61, 40, 43, 22,139, 57,251, +214,176, 44, 13, 7,186, 32, 76,155,132, 66, 26, 68,138, 8,165,240,209,241,193,232,179,240,110, 8, 28,247,145,141, 72,180, 90, +241, 39,209,114,182,127,139, 7, 55,110,178,191,123,131,122,182, 75, 40, 26, 70,169, 16, 69,195,207,148,150,219,101, 65,147, 4, +157,243, 44,181,102,219,181,156, 12, 61,207,186,237,148,254,156, 8, 49, 48,184,145,205,232,120, 22, 28,163,213,244, 66, 82, 89, +131, 11,142,194,106, 78,182, 27, 58, 63,114,225, 19,103,253, 21,231,109,230,209,111, 93,135, 26,187,140,144,158, 54,111, 72,147, +167, 93,161,136,211,102, 54,105, 67, 76,137, 81, 66,235, 61, 66, 26,206,156, 35, 73,193,152, 34,181, 41,178,204,204,150, 84, 82, +211, 73,129, 45, 42,146, 27, 9, 85,205,202, 88,182, 62, 81, 23, 37,187, 69, 69, 8,145,253,170,102, 86, 84,188, 54,179,148,218, +178,103, 45,179, 20,152,149, 13,115, 83, 51,151,130,170,168,168, 76,137,181,150,202, 20, 24,171,209,194,100,122,162,146, 89, 56, +175, 20, 74,192, 76, 11,172,212,140,201, 51,164,196, 66, 74,250,148,155,213,130,200,136,199, 8, 73,105, 52,253, 56, 32, 99,164, +115, 35, 11, 33,168, 98,196, 71,199, 46,145,245, 56, 80, 2,115, 1, 46, 4,116, 74,244,192,211,209,113, 66,228, 32, 69,158, 6, +143,136, 9, 29, 28, 62, 9, 84, 12,200, 16, 89,145,248,242,172,230,147,118,100,215, 26,164,146,204, 76,201, 57,129, 27,186, 98, + 67,100, 71, 91,122, 36,134,136,155,116, 59, 33,229,199,244,198, 7,182, 34,159, 23, 31,106, 73,101, 44,251, 70,112,168,178, 5, + 86,147,120,197, 20, 92, 6, 79,173,126, 16, 75,155,214,211, 52, 46,167,123, 72, 9,123, 77, 46,192, 70,102,133,187,152, 10,250, +181,229, 75, 78,124,242,232,178,207, 96, 53,135, 38, 43, 24, 25,167,152, 81,107,243,218,125,188, 70,154, 78,225,240,246, 26,219, +167, 25, 34, 12, 50,162,138,134,173,119, 12, 8,132,208,140,227,196,240, 53, 22,174,218,169,128, 14, 80,104,102, 86, 35, 82,162, + 81,138,243,214,101,229,168, 75, 44,106,201,133,203,118,188,212,141, 16, 61,169, 48,156,141, 9,165, 37,143, 93,226,204, 37,156, +212,156,250, 64, 76, 42,111, 24,194, 52,205,244,253, 75, 23,166,156,238,112, 87,221,196, 18, 30,243,125, 45, 77,247,245, 16, 95, +198,210,138,196,149, 75, 57, 71,103,202,118,175,124,164, 13,121,123, 81, 39,193,243,232,209, 66,231, 84, 43,145,104,125,190,177, +182, 41,113, 21, 35,165, 86, 12, 62,228,149, 23,233,101, 68,235,181, 29, 68, 76, 14,132, 79, 11,124,226, 53, 14,113,218,146, 4, +193, 55,254,250, 79,226, 67, 36,248,108, 79, 83, 19, 36,168, 41, 74,148, 18,136, 24, 81,218,162,181, 34, 9, 69, 41, 21, 70,100, + 64, 66, 27, 61, 93,239,217,217, 45,168, 43, 69,231, 2, 82,230, 12,245,152, 82,238,231,162, 32,133,132,139, 1,231, 67,254,123, +166,181,150,138, 80,138,108,237,155, 43, 69,233,227,139,181,148,179, 6,107, 36,118,217,224, 70,135, 62, 61,103, 30, 35, 23,196, +220, 40,204, 20,213, 66,211, 25,160,150, 72, 45,176, 43,141,147, 2,243,180,227, 96, 79,225,110, 28, 49, 47, 13, 95,190,121,151, + 84,214,168, 24, 24, 90,135, 24, 2,139, 85, 67, 16, 10, 81, 26, 6, 31,208, 62, 78, 10,127,137, 86, 18, 17,114,247, 62,250, 72, +235,242,125, 51,184,140,185,181, 8,102, 66,113, 88,228,169, 99, 71, 27,246,170,146,121, 99,153, 55, 6,157, 34,214,106,170,166, + 98,167,201,202, 97, 73,100,159,158,131,246,146,221,227, 19,194,197, 57,188,255, 62, 23,107,199,108, 53, 39,117,158,149,146, 60, +158,149,140, 71, 13,199, 7,187,220,216,155,241,240, 11, 15,249,238,222, 17,171, 31,249, 28,162,212,184, 4,110,240, 92,180,142, + 95,249, 95,255, 62,223,254,239,126,157,253,111,188,193,113,204,211, 81,135,100, 59,169,104, 43, 33,184, 81,105,164, 20, 92,133, +204, 14, 88, 85,130,177, 29, 56,233, 35,175,172, 74,132, 22,164,148,232,149,228,163,199,107, 62,250,131,199,204,149,160,125,186, +225,248,233, 37, 39,235,150,239,156, 95,241,157,171, 45,199, 93,196, 37, 69,235, 35,114,166,152, 85, 10,109,228, 68,137,142, 88, + 41, 24,149,160, 49, 58, 91,141,165,164, 23,137, 77,136,156, 8,232, 45,108,202,130,171,131, 61, 78, 87, 11,134,217,156,203,186, +228, 98, 28,121,228,122,190, 53,246,124,100, 13, 31,147,184, 20, 21,149,130,243,162, 36, 26, 67,165, 20,131, 72,140, 66,240, 36, + 4,206, 66,228,147, 24,241, 62,177, 14, 14,164,193,136,124,103,221,177, 37,183,181,197,150, 37, 66, 42, 90, 34,179, 89,193,110, + 83,112,146, 4, 15, 54,199,252,135,175, 63,228,187, 23,167,252,222, 56, 66,114,136,113, 34, 48, 54, 37, 95,219,217,225,181,121, +195, 81,179, 32,200,146,203, 36,248,163,164, 9,171,134,175,223,186,195,231,143, 14, 89,206,231, 60, 45, 74, 88,236,228, 38,190, +176,204,165,162,182,154,185,148, 44, 16, 20, 41,161, 68,222, 24,100,146, 64,226,216,143,124,188,245,136,194,194,106, 23,102, 21, +207,237,146, 39,178,225,104,117,196,103,119, 15, 89, 53, 11,172,169,176, 69, 69, 93,228, 59,244, 95, 41,243,109,122,150, 96,112, + 35, 75,169,112, 67, 79,232,122,158,182,231, 28,187, 22,136,180, 67,207,118,236,249,240,124,203, 39,253, 64,231, 60,107, 63,208, + 69, 71, 63,142,212, 34,241,193,243, 99, 46,219, 43,158, 94,156,240,237,231,199, 60,186, 90, 51, 36,199, 89,191,229,241,213, 37, +142, 68,215, 93, 97, 98,192,232,146, 36, 18, 41, 10,146,206,185,222, 81, 43,162, 18,244,193,211,143,158,160, 53,155, 24,104,133, +167,243, 30, 33, 21, 26,137, 81, 38,235,105,116,193, 76, 23,104, 37,193,150, 8, 18, 73,106, 86,117,195, 16,179, 21,214, 90,131, +149,138,157,194,224,131,228,179,117, 69,210, 10, 93, 52, 44,108,153,217,235,198,114, 80,204, 24,165, 36, 10,153,111,224, 82, 33, +141,196,232, 2, 68,194, 24,133,115, 30, 37, 21, 82, 10, 80,145, 74,104,100,130, 49,230,137,187, 36,210,197,144,197,164, 34, 17, +189,195, 72, 56, 29, 71, 68,138,196, 20, 8,126,164, 74, 1,231, 71,118,132,192, 50, 18, 93, 96,166, 61,114, 76,140,222,179, 91, + 90, 54, 93,135, 35,177, 39, 18, 42,230, 51,163,242, 45,218, 7,180, 16,236, 8,137, 75,158,251,214,228,239, 89, 40,214, 4,110, +233,146, 45, 1,153, 36,157, 0, 43, 50, 28, 42,248,136, 54,134,222, 7,222, 27, 61,129,136, 16,146, 87, 74,147,183,129, 49,127, + 93,157, 18,165,144, 28, 20, 37, 41, 38,124, 12,184, 24,255, 45,213,239, 47, 60,231,211,138,249, 26,184, 31,167,137, 92, 76,106, +115,169, 94,218,189,226,132,126,189, 46, 44,133,252, 84,148, 94,156,176,140, 83,254,186,155,252,136,106, 42, 76, 46, 76, 80,155, +172, 6, 38,116,236,175,238, 80,232,154,199, 93, 59,121,179, 37,168, 42,103,188, 67,190,237, 63,217,228,244,154,202,226,122,199, +253,165,229,116,112,204, 4, 8, 31,120,101, 97, 88,247, 14,237, 18, 51, 11,103,151,227,139,168,211,161, 44,120, 60, 42, 80,146, +214,251,169, 72, 93,223,210, 84, 86,237,183,221, 20, 65,219,101, 37,255, 48, 64,169,114, 52,173,239,115,168, 72,159,149,251,249, +136, 18, 94, 42,239,123, 15, 54,241,193,165,228, 11, 59,138,231,219,158,193,104,252,182,229,158,157,115, 76,164, 64, 48, 70,135, + 79,224,199, 72,178, 26, 23, 18, 70,101,143,106,240,158,253, 82, 81, 68,201, 91,151, 25,115,187,238,251, 28,143,187,105,243, 93, + 16, 50,233,101,216,252,249, 45,139,203, 86,194,245,243, 53,213,178, 65,105,201,217,211,211,140, 75, 4, 62, 58,123,142,210,134, +102,194,183,174, 7,199,174,206, 54, 17,143, 98, 8, 16,146,160, 82,138,113, 8, 44,102,150,109, 55, 82, 89,197,162, 22, 47, 50, +217, 67, 8,116, 41,223, 97, 23, 82, 80, 41,201,149, 11,217,169,104, 21, 38, 9,140, 24,169, 10, 3, 11, 65,232, 6,234,168,209, + 34, 81, 11,133,217,157,115,239,106,197, 27,186, 38,205, 45,191,109,182,152,194,176,135,226,131,224, 89,223, 46,233, 93,224, 94, +128,181,130, 78, 9, 86, 11,203, 65, 8, 84, 9,202,197,138,249,182, 99,121,176,143,106, 22, 60, 13, 61,197,241, 25, 39, 66, 32, + 23, 53,213,222,156, 27,119,246, 24,182, 61,227,224,184, 90,183,164,193,160,129, 66,107, 94, 89, 45, 72, 81,242, 52, 10,124,234, +176, 12,212, 81,176, 82, 37, 15, 22, 11,230,117,153, 47, 81,133, 70,206, 11,212,126,141,112,145,174, 29, 57,181,160,241,148, 46, + 71, 34,142,155, 45,233,108,195,205, 51,199,113,215,209, 17,185,241,232, 17, 23, 31, 63, 97,185,127,192, 23,159, 28,243,171,139, + 57,143,126,248,179,236,237, 6,102, 8,206, 90,199,205, 82,179,237, 60, 90, 11,158,117,158, 15, 79,182,252,246,223,250,187,164, +113, 11, 88,126,237,191,252, 59,240,230, 14,219,255,234, 63,229, 55, 69,228,222,221,125,190,182, 99,185, 41, 4,171, 2, 46,199, +196, 70, 9, 22, 90, 82,218,188,133,120,190,241,252,206, 71,151,124,182,201,123,211,143, 46,182,124,240,124,192,104,201,179,231, +103, 52, 9,168, 4,207, 93,228,121,136,180, 1,122,145, 16,120,218,157, 25,183, 10,112, 2, 10, 23, 80, 90,230, 16, 13, 23,112, + 70,241,209, 85,207, 92, 9,172,150,212, 70,179,117,129,103,131, 99,225, 19,214, 7, 80,146,153, 53, 60,171, 13,189, 89,208, 46, + 42,186, 39,167, 60, 31, 19, 85, 33,104, 77, 67, 21, 3, 79,229,140,253, 90,242,110,155,120,146, 34, 53, 18,127,177, 97, 99, 13, +109,136,120,224, 60,105,162,174, 89, 39, 71,140, 5, 59, 74,176,180, 69,118,144,196,128,183, 5,190,149, 68,231, 48, 49,112,171, +105,248,229,167,103,244,127,244, 7,252,189,243, 1,209, 84, 48, 95,146, 70, 16, 58,191,247,247,173,198,104,141, 23,146,111,246, + 61,231, 33,230, 48,214,249, 46, 95,187,123, 23, 33, 5, 71,253,192,219,103, 23,180, 67, 55, 9,131, 35, 46,140,180, 99,228, 44, + 70,118,108,102, 93,204,133, 98, 19, 34, 81, 36,174,124,207, 99, 12,172, 10,246,139,154, 93, 99, 48,170, 98, 71, 9,140, 84, 52, +186,194,106, 67, 81, 53,212, 19, 28, 81, 38,207,129, 20,124,219, 69,238,110,175,184, 37, 11, 36,146,110, 28, 72,131,227,188,221, +240,241,122, 77, 27, 7, 78,183, 1, 82,224,124,240,140,231,107,100,140,200,182, 39,236, 47, 56, 5, 46, 27,203, 91, 49, 98,156, +199,120, 48,253,136,105, 59,204,106,201,219, 82, 83, 55, 5,133, 72, 60, 42, 37,159,193,162, 22,145, 33, 4,172,182, 44,118,110, + 32, 6, 72,186, 96, 28, 28,222, 57,194,164,111,186,220,174,113, 42,159,222,144,154,146, 72, 80, 2, 41, 18, 30,195, 18,137,176, + 6, 53, 58,208,138,133, 15, 60,243, 3, 6,193, 66, 36,156, 51,204, 82, 98, 8,121,176,104, 22, 26,169, 20, 77,240, 36, 99, 48, + 34,159, 29, 27, 83, 77, 48,155,200,210,148,108,125,255, 66, 7,132, 75,104,105,240,113,164, 44, 52,206, 37,164, 76, 8, 15, 27, + 6, 42, 1, 58, 9, 28,137, 62, 58,144,150, 16, 28, 18,168,148,225,188, 27, 88,166,196,113,112,164,113, 64, 43,129, 9,129, 82, + 71, 66, 76, 52, 62,208,165,196, 14, 5,107, 61,178,227, 4,155,171, 11, 10,109,177, 41,111,121,181, 72, 84,228, 36, 55, 77, 22, + 74,175,240,236,136, 18, 81, 86, 28, 36,184,240,158,215,237,156,247, 92,207, 74,151,108, 36,236, 11,193, 59, 67, 98, 17, 61, 66, + 73,234, 4,143,198,192,158,182, 60, 1,132,239, 57,176,138, 62, 56,140,148, 92,245, 91,230, 82, 18, 99, 96,219,245, 8, 41,120, + 67,106, 30,199,241,223, 98, 82,215,250,165,239,156, 9,239, 87, 78,247,114, 59, 17,151,122,151, 39, 65,239, 94, 78,168, 76,114, + 97, 55,249, 64, 69,122,233,255,108, 39, 11, 86,156,214,198,101,145, 85,170, 90,229,253,195, 68,174,194,170, 60,133,207,114,128, +198,195,155, 15,120,124,117, 78,136, 1,188, 67, 74, 75, 66, 65,187,201, 19,115, 55,192, 48, 32,165, 98, 81, 21,216,148, 81,168, +181, 21,236,105, 56,235, 71,102, 74,130, 27,233,187,172,220, 37,133,236, 37,213, 58,223,207, 84,190, 99,167, 52,169,247,205, 36, + 22,136,211,244,173, 85, 62, 19, 88, 13,114,130,204,139, 73, 92, 99,204,116,110,152,176,185,195,116,175,187,158,214,123,143, 19, +137,199,157, 71,151,138,183, 62, 89, 83, 87,138, 15, 47, 90,180,209,104, 41, 8, 42, 11, 82, 70, 37,208, 66,224, 66, 38,185, 21, + 82,225,137,204, 80, 12,209,211, 88, 69, 67, 98, 75,206, 59,199,231,108,230,204,225, 23,147,160, 47,190,180,223,201,233,116, 18, + 4, 71,175, 28,113,112,235,144,118,155, 69, 50,193, 71,182,125,139, 17,154,131,213, 33,123, 7, 75,102, 77, 65,112,137,194,106, + 84,132,166,212,200, 49,112, 57, 6,124, 74,180, 67,192,185, 72, 83,107,148, 20,104, 57,173,223, 17,120,242,135, 53,166,148,131, +247,144, 68, 1,137,188,174,213, 58, 79,235,248,152,161, 62,133,194,214, 6, 45, 53,101,169,249,191, 89,123,179, 88,203,210,243, + 60,239,249,167, 53,238,233, 76,117,106,174,174,174,234,110,246, 64,145, 77,138,148, 40, 91,178,132,152, 6, 18,197, 73, 46, 20, + 7, 65, 4,196,185, 73,128, 32,185, 8, 2,248, 46,176,238,156, 27, 35,200,125,144, 92, 4,112,132, 12,130,108, 40,138,172, 33, +214, 16, 73,164, 73, 90, 36,155,221,173,110,178,187,171,107, 62,243,217,227, 26,254, 41, 23,255, 58, 85, 69,137, 18, 20,197,167, +177,113, 80, 5,116,157,179,246, 94,123,127,255,247,125,239,251,188,178, 54,204,109, 36, 28, 28,227,181, 96,145, 75,124,109,216, +100, 18, 95, 72, 30, 73,207,246, 40,103,119,167,100, 57,206, 24, 95,158,178,181, 61,229,114, 85,115,185,183,188, 81,111, 51, 13, +145, 93, 93, 48,186,177, 13,166, 96,220,246,100,173, 99, 45, 5,179,237,154,171,151,183, 40, 75,147, 0, 99, 77, 75, 92,246,200, +206, 83, 74, 69,169, 36, 69,132,222,167,209,158, 16,138, 76, 24,246, 71, 35, 46,239, 77,153,108,215,148,163,156, 98, 82,144,207, + 10,178,210, 80, 76, 43,138,113, 73, 17, 34,198, 58,100,239, 56, 95,172,217, 57,106, 48, 46,242,193,193, 33,242,124, 69,238, 5, +166, 52, 92, 11,240,242,227, 5,223,113,199,184,137, 96,218, 45,184,255,219,127,128,207,182, 89, 29,172,216, 44, 26,214,235,150, +223,254, 95,126,149,143,254,209,239,113,239,215,191,145, 52, 13, 72, 2, 38,233, 60,142, 27, 62,250,103,127, 72,248,167, 95,167, +236, 63,229,214,157,171,124,121,183,100, 87,107,254,120,229, 56,232, 2,158,200,165, 82,209,161, 56,149,138,199, 66,114,127, 99, +121,180,238, 89, 53, 30,109, 36, 94, 66, 44, 32,138, 72, 75,160, 35,224,100,128,152,196,139,215,239,236,145, 95,153,114,164,115, + 62, 61,119,252,225,183, 62,230,206,254,132,222, 71,158, 90, 79,171, 69, 74,226,206, 4,247,159,204,105, 93, 74, 88,180,189,101, +221, 89, 66,111, 25, 75, 65,166, 4,185,144,244,121,154,250,185,178, 32,232, 12,171, 51, 84,157, 97,235,146,179,141,101,113,190, +100,213,119,228, 85,198,131,243,158, 77, 20,172, 93,135, 15,145,163, 69,135,146,146,181,210, 56,149,225,163,100,119, 54,166,145, +130,105, 94,208, 33, 57,246, 17, 43, 5, 79,150, 45, 71,189,101,172, 20, 71, 82,241,222, 89,139,232,186,228,145,207, 52,140,170, + 4, 95, 57, 93,115,165,144,236, 85, 5, 7,155,134,119, 87,107,172,237, 17, 82,241, 70, 53,226,181,233, 4, 41, 37, 66, 73, 86, +173,229, 64, 12,217, 7, 62, 21, 84, 21,159,239,202,107, 37,105,133,224, 8,136, 66, 50, 42, 74,246,234,154,207, 86, 19,238, 78, +119,208, 67,224,138, 70, 82, 12,194,178, 92,105,156, 15, 8, 33,200,134,157,117,227, 61, 15, 87, 11, 94,145, 1,215,245,220, 8, +145,213, 98,206,124,115,198,251, 71, 79,248, 96,126,206,199, 39, 27,206,155,142,229,233, 28,123,118, 68,180, 29, 97,179, 33,246, + 45, 97,177, 76,143,249,138,112,190,196, 47,214,248,243, 57,174,239,241,222,225, 86,107,220,217, 25,253,241, 9,253, 98,197,241, +162,225, 97, 72, 57, 26, 45,129,237,188,164, 35,164,172,141,224, 17, 70,211,122, 79, 23, 28,115,239,105,133,224,164,107, 88,217, + 30, 97, 20,189, 28, 38,124,153, 65,101, 25,121,102,104,165,160, 42, 43,180,148,172,165,167, 50, 25, 27,239,208, 89,137, 84, 34, + 33, 94,181,166,202, 4,179,172,196,135,128,202,138,164, 90,143,142,186, 26, 35, 98,192, 6,207,118, 85, 99,173, 69, 68, 65,150, +231,244, 46, 29, 44, 83,109, 25, 36, 70, 18, 92,231, 80,120,140,136,180,193,211, 58, 75, 22, 61,189, 16,104,103, 19, 63,159,136, + 12,142,198, 53, 52,182, 39,118,107,108, 84,212,222,146, 73, 71, 17, 2, 51,151, 92, 90,151,132, 96,227, 44,179, 0, 10, 79,244, +129,245,186, 37, 23,129,232,146, 56,249, 10,130, 55,180,227, 21,165,248,146,209, 92,215,134, 27, 69, 70, 21, 34, 91, 38,231,178, +150,156,217,150,151,202, 17,139,104,217, 86,134,143,219,158,155,133,226, 60, 70, 74, 4,143, 86, 61,133, 84,124, 18, 28, 69,140, + 92, 54, 6, 31, 4,187, 90, 38,212,109, 12,105, 13, 32, 82,131,183, 29, 3, 62, 6,148,253,235, 20,117, 53,136,182,226, 11, 68, +223,160,158, 71, 94,118,131, 23,189, 27,186,235,206,191,128,140, 29,138, 77, 28,188, 52,222,167,248,193,139,241,240, 5,125, 77, +229, 41,147, 92, 13,130,187,186, 30, 22, 12, 42, 1, 7, 68,242, 63,126,218,181,216,126,232,204,163, 32,186,254, 57,201,237,240, + 60, 33,103,125,131, 44, 10,148,137,216,206,177,167, 21, 49,120,250, 33,138,180, 68, 17,131,163,233,124, 26,223, 55,131, 29, 76, +233,225, 80, 49, 88,195,244, 16, 29,171,196,112, 24, 25,104,121, 82, 36, 80,142,237,210, 65, 38,134,164, 13, 8,126,128,234, 12, +120, 63, 63, 8, 78, 46,216,235, 74,190, 16,254, 18, 88, 46, 82, 80,203,201,241,138,185,143, 60, 92,118,204,170, 12,231,122,148, + 84, 8, 33, 89,117,150, 74,167,209,247,210, 59, 42, 33, 89, 13,182, 47, 25,160, 11,145,157, 44, 41, 81,173,190, 56, 68,168,244, +179,109, 24,216,240,242, 57,138, 49,166,157,244,124, 60,225,237,215,239,178,217,180, 4,231,240, 49,146, 9,195, 89,179,100, 90, + 86,124,241,205, 91, 52,157,199,185,152,246,223, 50, 37,177, 17, 2,110,128,205,152, 76,226, 58, 71,219,121, 84, 62,184, 23,124, +196, 1,173, 13, 52,222, 33, 7, 38,188, 38, 82, 75, 65,227, 3, 75, 31,169,135,221,144, 18,176, 81, 96, 50,133,206, 52, 54,147, + 8,173,200, 50, 77, 63, 46,121,122,255,152,147,186, 32,142,199,156,103,138,121, 38,209,185,161, 45, 12,182, 46,240,101, 78, 99, + 20,125,136,156,183, 45,139,224,120,208, 52, 44,124,203,229,122, 11,218,134, 88, 87,228,187, 35,124,227,185,228, 35, 93,174,232, + 37,228,117, 78, 89,230,104,163,144, 33, 64,107, 81,214,161,122,143,110, 92, 58,128,173, 45,110, 72,120,141,218,144, 85, 57, 59, +147,146,108,156,161, 42,157,118,178, 90, 18, 43,133, 50, 18,165,210,107,165, 4, 72,165,168, 66, 36, 39, 18, 58,203,172,177,172, +207,206,185,172, 11, 20,145, 85,111,137,202,113, 52,171,120,237, 23,254, 22,111,254,212, 91,188,252,133, 55, 57,222,116, 60,249, +230,215, 56,248,232, 67,222,251, 23,223,166,253,253, 57, 33, 13,228,210,154, 34, 33, 65,136, 67, 60,208,197,247,213,247,142,121, +247,159,124,139, 3,113, 66,244,138,239,127,248,132,211, 63,253,148,187,183, 47, 35, 28,172,165,160,137,176,238,147, 45, 78, 75, +104, 91,203,253,195, 5, 34, 70,158,156,110,168, 8,116, 77,199,166,117, 68, 37,240, 34,114,181,214,252,189, 47,222,224,149,137, +225,105, 27,248, 80,107, 30,223,185,204,111,170,130,223, 89, 5,190,254,233,146, 91, 59, 53, 50,120,172,130,211,165,103,165, 37, + 78, 68,214,173,195,123,143, 36, 98,100,122,109,173, 20,116, 33,160,165,224,112,227, 88,123, 88, 72,201, 34, 51, 44,182,198, 28, + 8,201, 83, 12, 70, 26,158,108, 90,106, 33,217,116, 45, 58,203,217, 52, 3,225, 47, 4, 50, 34,219,165,228,218,172, 38,100, 25, +178, 40,113, 90, 97,165,102,174,224, 97, 19, 8, 66,177, 17,145,163,182,229,149,170,224,104,112,146,252,196, 36,231,118,145,115, + 67,102, 60, 52, 57,162,206,185,191,106,152,202, 2,111, 45, 55, 98,203,184,239,184,148,103,160, 52, 55,243, 28, 73,164,105, 59, +222,221,108, 88,134,128,176, 61,149, 20,104, 15, 27, 41,184,162, 20,103, 66, 17, 85,198,125, 23,168,114,195, 38, 40,138,220, 48, + 42, 38,232,188, 66, 75, 69,192,208,250, 64,102, 12, 2,129,247, 22,109, 36, 74, 39, 87,197,166,105,112,214,113,238, 26,150,221, +154,247,238,191,199, 72, 10, 30,158, 61,229,227,147,199,124,114,124,204,119, 78,206,248,224, 96, 65,152,207,137,237,130,184,216, +164, 60,243, 1,249, 28, 95, 0,177,198, 16,240, 65, 18, 36,120, 41, 9, 3,174,195, 7,247,156, 46,237, 61,174,235,105,219,200, + 19,219, 17, 8,104,145, 88, 25,203,190,193,232,156,181,235, 9, 82,208, 11,193,113,179,162, 23,145,179,222,177,192,211,116,233, +231,134,204, 36,239,184, 41,232,181,162,136, 18,165, 37, 94, 72,140,144,180, 50,129, 90,156,181,136,152,116, 79,224,201,117,142, + 17, 9,239,108,132, 78,201,153, 89, 65,173, 19, 61, 51, 55, 26,163,100, 90,193, 41,205,102,211,162,181, 26, 0,158,105, 84, 77, +244,180,109, 79,244,145,133,237, 81, 62,209, 54,181,119, 56, 33,145,125,135, 14, 1, 17, 3,181, 8,244, 93,159,250, 79,191,193, +218, 64,230, 27,172,181,108, 11,216,142, 9,249, 61,139,130, 16, 2,187, 82,224,189,103, 18,160, 20,129, 76,120, 88, 54,188, 94, + 74,222, 86,146,187, 69,198,142, 52, 92, 49,154,155, 89,197,101,147,244, 60, 19,101,200, 66, 18,240,109,103, 57,103,222, 50,145, +154, 3,219,242,242,168,230,163,174,227, 90,158,241,104,217, 16,148,228, 3,107, 25,133,192, 90, 10, 94, 45, 52, 70, 5, 86, 33, +176,133,160,150,146, 86,192, 76, 72,174,102, 5, 77, 76,248,142, 59,229,232,175, 81,212,165,252, 33,114,239,179,204, 91,173,135, +157,114, 42,248,183, 62,255, 50,243,163,249, 15, 51,224,187, 48, 20,195,129,231, 46,101,242,118,196,161, 8,184, 97,223, 91, 22, + 73, 49, 94, 94,140,224,229, 32,198, 19,168, 60, 79,172,117,161,136,182, 75, 16,123,103, 81, 66, 18, 69, 76,123,236,174, 75,249, +200,171, 21,224,137, 22, 46,103,146,177,150,180, 81, 16,188,227,192,121,118,178,140, 96, 83,190,239,225,106,243, 60,205, 76,136, + 84, 0,171,122,208, 5,196,231, 96,156, 48,116,192, 65, 12, 34, 57,255, 92, 52,199,160,182, 15, 46,173, 36, 20, 41, 11, 93, 12, +215,135,228,153, 41,253,162, 99,183, 3, 90,246, 34, 59, 55,244,176, 89, 66,231,120,108, 35, 91,101,134, 18,130, 34, 10, 70, 42, +237,169, 69,239,201,133,192,185,200, 88, 43,150,195, 13,166,149, 36,120, 40,117,196, 68,193,218, 15,188,247, 56,188, 94, 34,197, +159,166, 53, 73,120, 22, 5,185,190,255,128, 87, 63,247, 38,121,150,209,173, 26,178, 44,231,115,159,125,147, 7, 15, 30, 18, 93, +224,230,173, 27, 44, 22, 29,101,149, 2, 97,178, 76,147,105,201, 38,122,162, 75, 66, 26, 41, 35,174, 75, 59, 91, 31, 82,216, 75, + 80,113, 24,141,201, 20,150, 35, 21,106, 80, 72,119, 33, 97,111, 51, 41,216, 49, 9,113, 42,226, 16,101,172, 36, 85,166, 89,155, + 36, 12, 68, 75,186, 81,206,159,220, 63,230,211,205,130, 42, 6,214,125, 67, 71,160,141,129, 40, 37,107, 17, 89, 74,146,120, 69, + 10,142,133,103,225, 98,194, 84,146, 34, 46,139,178,194, 4, 65,233, 33, 76, 75, 70, 42,199, 40, 73, 27, 3,217,186,199,108, 85, +137,100, 38, 37, 2,208,157,199,204, 91,212,188, 37,156,174,209,157,101, 76,100, 44, 52,133,214,120,173,113, 70, 34, 50,133, 53, + 10,151,168, 52,196,182, 71,103, 10, 97, 20, 81, 74,132, 82, 72, 69, 42,244,101, 70, 81,231, 20, 69,193,254,107, 55,152, 92,219, + 98,182,232,217,139,146,251, 49, 18,191,252, 58,175,189,121, 21, 45, 20,162, 42,153, 92,153,146,141,183, 17, 93,228,225,241, 33, +155,143,151, 4, 28, 1,193,115,170,182,127,246, 16, 67,137, 7,137, 64,242,232, 27, 15,249,250, 63,253, 54,159,252,230,119,121, +252,123,223,227, 91,239,191,207,207,126,245,109, 92,227,152,175, 59,214, 79,151,228, 71, 11,126,229,127,250,101, 14,191,245, 14, +155,119,223, 39,223,157,177, 62, 95, 50, 63,111, 6,203,141,192, 9,193,153,202,169,162,229,245,189, 49, 95, 59, 89,243, 63, 31, + 54,124, 48,132, 13,233, 76,163,198, 57,241,214, 54,247, 39, 37,183,125, 96,177,232,104,242,140,243, 85,199, 92,102,136,214, 99, +178, 68,137,195, 59, 74,163,105,136, 8, 4,199, 93,143, 53,112,224, 20,231,117,205,122, 84,242, 56, 51,220, 31,229, 28,103, 5, +227, 73,206,104, 58,225, 32,192,178,237,176,243,115, 86, 46, 80, 25, 69,239, 58, 10,229,168,132,166, 54,134, 66, 27,162,150,220, +219, 4, 30, 58,135,146, 57,167, 38,103,187,172,216,213,169, 27, 26,153, 12,175, 4,119,243,146,253,178, 64,106,205, 86,145, 51, + 18,201, 42,187, 95,143,201,180,230,149,113,205, 36, 47,217, 31,215,148,218, 80,200, 12, 27,225,254,106,193, 19,107, 89,132,200, +202,123,118,242, 18, 75, 96,173, 32, 70,137,149, 10,175, 52,103, 82,115, 42, 53,175,151, 5,159,203, 51,238,148, 53, 51, 97,112, + 82, 34,148,193,105, 69, 8,145,198,167,166,192,123, 75, 8, 61,193,167, 81,190,239, 58, 86,221,146,229,234,156,147,239,191,203, +103,174, 94,226,143, 62,125,204, 59,143,142,120,239,116,201,123, 7,199, 28,159,157, 67,183, 33, 10, 71,108, 59, 34, 63,204, 91, +127, 33, 82,235,217,232, 58,132,231,143, 11,183,250,197, 93,116, 81,220,189,239, 89,197,192,131,181, 35, 55,130,214, 91,206,109, + 75,144,130,149,183, 68, 36,143, 54,115,172, 16, 60,106,214,172,162, 39, 6,112, 66, 16, 68, 98, 58, 40,147, 17, 68, 64, 75,133, +200, 52,113, 72,124, 68,107, 86, 33, 32,135, 96, 43,149,105,108,235, 24,103, 57,153, 76,204,248,220,100, 56,111, 41,139,156,145, + 49,195, 86, 54, 75,107,172, 16,200,180, 65,105,141, 50,154, 24, 61,182, 79,133, 89,196, 64,183,238, 16, 17,214,253, 6, 25, 61, + 39,157, 69,135,148,230,185, 27,147,144,176, 22, 2, 17, 29,222, 90, 84,112,132, 24, 41,125, 96, 26, 60,165, 20, 76,130,167, 6, + 74,169,152,136, 84,231,106, 18,226,122, 23, 40, 17,204,136,220,201, 50,238,102,154,109,101,216, 42, 71,236,154,154,151, 70, 83, +246,138, 41, 38,194,180, 26,145, 73,137,150,130,113,145, 81, 41, 67,239, 3, 69, 76,147,213,153,202, 56,114, 61, 91,218,176,116, +142,243, 62,242,129,237, 56,141,240, 52, 6,198, 49, 48, 27,228,104,183,170,130, 16, 5, 19,149,177,165, 12, 59,166,162, 9,158, +207, 84, 51,118,140, 70,248,191,142,250,253,153,208,234,197,162, 62,180, 47,106,176,176, 33,152, 63, 57, 75,133,171,117, 47,140, +156,197, 11,123,119, 1,190, 75,194, 20, 25,147,120,142, 0,186, 74, 49,114, 91,227, 84,248, 7,131, 62, 49,133,195,199,182,135, +178,130, 96,169,162, 99, 52,100,165, 79, 99,160,233, 91, 38, 70,209,217, 62, 9,216, 66, 72, 59,245,144,212,141, 74, 42, 66,232, + 17, 81, 50, 35,208,216,164, 82, 60,237, 44,222,250,148,225,173, 92, 74,251, 42,203,103, 96,154,164, 68, 31,186,110, 35,146,138, +127,224,185, 99,195,115, 2, 94, 28, 10,189, 24,162,240,218,102, 32,202, 57,112,195,168,222, 69, 40,205, 51,150,123, 18,171,197, +231,246, 56, 63, 48,166,189,133,188,100, 82, 42,148, 79, 52,182, 82, 41,162,183, 88, 33, 49, 33,177,212, 55,206,179,157,105,172, + 76, 41, 94, 94, 10,102, 81, 80, 69,207,147,139, 72, 82, 23,210, 59,187,247,131,203, 64,254, 57,112, 70,190, 61,227,230,237,155, +116, 93, 67,211,108, 56, 62, 60,167,183, 45,222, 11, 66,200,113,125, 96, 52, 41,201, 11, 77, 46, 37, 82,165, 53,132, 37, 34, 66, + 26, 5,249, 16,159,197,185, 71, 98, 18,217, 9,153, 68,249, 17, 42,117,161,221,139, 76, 85,154,168,184,232,137, 81,146,105,153, +242,198,133, 72, 97, 20, 46, 89,115,188, 73, 40,211, 62, 83, 28, 29,173,152, 68,205,164,168,104,148,164, 42, 38,136,170,100, 60, +154,146,107, 77,102, 12, 70,128, 42, 50, 10,169,240, 90, 64,150, 83,153,156, 75, 89,129,247,158,124, 92, 33, 71, 5,178, 80, 84, +251, 35, 74,169, 48, 33, 82,180,142, 48,201, 16, 90,161, 98,130,238, 25,231,201, 26,139, 89, 89,100,215, 36,245,171,212,140,132, + 98, 90, 24,178, 92,177,214,146, 53, 73, 28, 22, 50,133, 68,144,109, 28,213,253,115,196, 36,195,103, 26,151, 15,200,211,224, 49, +157,199, 28,204, 81, 43, 11,215,167,232, 89, 77,121,125,135,124,107,204,150,211, 92,113,145,122,209,144, 61, 90,146,159,244,248, + 15, 14, 56,179, 61,227, 75, 19,222,250,220, 43,236,255,141,215,248, 65,213,225,254,244,152, 56,252, 39, 0,161,114, 68,108,249, + 7,255,233, 23,248,227,119, 22, 8,223, 13, 61,187, 76,145,184, 72, 4, 26, 30,117,252,237,255,224, 75,108,154,150,205,241,138, + 98, 57, 71,111,230,124,229,141,187,220,249,177, 59,212,183,111,210, 89,135, 11,130,102,216,223,197, 62,105, 47,100,111,249,181, + 63,250, 38,149,174,248, 71,135,158,249,178,195, 91,139,111, 45,221,186,167, 93,117, 8,155, 50,193,139, 42,231,111,142, 4, 71, + 94,112,214,123,150,235, 22,163, 36,163, 82,226,101,196, 74,197, 82,128,244,145,141,117,156,119,142, 69, 11,199, 85,198, 81,102, +120,164, 36, 79,144, 92, 53,138,191, 49,202,184,189, 83, 51,173,115,150, 94,240, 3, 97, 56, 90,174, 97, 53,231,160,153,115, 41, +215, 20, 17,148,201,208, 70, 17, 98, 96, 29, 35,153,144,156,249,200,227,229,156,187,121,150,150, 20,166,224,238,168, 96, 17, 18, +244,100,171, 44,217,173, 10, 74, 83,208, 42, 77,235, 83,225,216, 42, 74,118,137,212, 89,134,150, 26,149,143, 82, 98,154,209, 28, +117, 14,173, 51, 22, 49, 34, 72, 22, 84, 27, 3, 27,161,137, 3, 14,121,172, 52, 39, 66,210,168,130, 45, 37,121, 43,147,108,153, +130, 66, 24,118, 76, 70, 46,147,122,255,160,237, 88,218, 14,223,247,156,247, 13, 27,219,114,214, 52,116,109,203,106,181,228,225, +201, 99,142, 78,142,120,116,240, 20, 58,199,225, 39,143,225,201, 99,226,242,156,216,109, 82, 19, 19, 2, 81,133,225,192, 30, 94, + 40,222,127,182,152,243,194,116,231,135,163, 84, 46, 30, 23, 41,168,238,226, 97, 19,186,249,163,243,142,127,117, 62, 71, 2,173, +183, 28,186, 13, 79,109,203,169,183, 44,188,229,180,111,232,189,163,245,150, 60, 43,113, 3,231,189,146,233, 64, 56, 49,134, 77, +215,165,224, 24, 2, 77,140, 72, 4, 46, 6,164, 46,112,174, 35,203,179,100, 15,149,146, 66, 43,172,143,148, 69,158, 4,134, 17, +170, 44, 27,166,141,138, 92, 25,162,212, 4, 36,173, 13, 8, 23,105,250,134,205,166,165,239, 45, 49,244,201,135,142, 39,122,143, +119,150,169,209,136, 16, 88,251,142, 82, 72, 68,240,248,190, 69,138, 64,231, 58,180, 15, 72,231,200,134, 98, 45, 66,100, 91,164, + 73,107, 37,161,148,146,145,148,204, 98,138,161,222,146,134,155,245,132,153,206,153, 20, 21, 91,227, 41, 35,149,177, 55,217, 99, + 55, 31, 49, 85, 25, 87,183, 46,145,133,136, 70, 50, 45, 42,108, 76,113,211, 82, 72, 78,241,136, 8, 31,119, 27,154, 24, 89, 17, + 88, 71,193,119, 54, 27,130,208, 60,244, 61, 45,130,147, 16, 24, 33,120,171,206,217, 56,203, 75,101, 73, 64,177,109, 10,142,250, +134, 55, 71,187,116,161,227,122,189,195,189,118,245,215, 84,191,251, 33, 17,236, 17, 13,114,221, 0, 0, 32, 0, 73, 68, 65, 84, +226, 54,113, 46, 41,219,141,121, 62,166,190, 40, 38,249, 16, 69,122,225,235,116,225, 5,181,248, 32,132,243,118,160, 3,248, 68, +122, 26, 15,100, 33, 53,208,231, 46,166, 3, 97, 56, 12, 72, 65, 78, 10, 57,176, 93,203,158,214, 28,246,237, 16, 81, 60,116,166, +171, 53,204, 87,208, 89, 38,117,218,255,120,160,145,130,104, 61, 74, 73,186, 62, 36,142,114,136,116,157, 69,170,152,210,221,130, + 29,124,170,102,136,105,189, 32,198,169,139, 25, 86, 42,136, 66, 12,227,250,161, 19,238,251,116,141,189, 75,187,236, 48, 76, 38, + 98, 76,235, 9,157, 63,139, 9,140,109,178,192,141,148,162,247, 33, 9,251,172,135,104,193,201,180, 20, 90, 45, 56, 93, 90, 84, + 93, 32, 69,226,141, 71, 9, 19, 20, 14,143,139,158, 32, 34, 42,200, 36,110, 19,130, 60,192,177,237,113, 90,113, 89,195, 97,231, +159,171,244,197,160,107,136,195, 26,228, 5,104,253,163, 15, 63,226,179, 63,249,227, 9, 9,233, 3,173,239,137, 65,144,235,140, +157,221, 61,242, 34,167, 42, 50,198,101, 78,110, 20, 34,130, 80, 2, 61,252,123, 33, 68,178, 66,167,216, 85, 23,136,131,100,162, +115, 46, 69,125,170,212, 63,154,139,179,161,136,233,252, 18, 35, 35, 45, 40, 5,100, 74, 83,168,228,245,246,131,240, 74, 12,216, + 80,149, 25, 22, 89, 70,191,182,212, 58, 97, 92,215,221, 6, 27, 60,189,107, 19,220,196,123,148,201,185,122,229, 38,211,122,198, +100, 54,227,242,246, 30,179,170,198, 8, 67,173, 13, 35, 33,153,236, 78, 40,140, 70,219,136, 44, 13,126, 0,207,100, 82,224, 51, +153,130,185, 66, 68,217,128,233, 60,210, 38, 84,107, 52, 10,101, 82, 54,187,201, 85,202, 73, 55, 10, 35,192, 32, 41,140, 66,231, + 26,187,233,153, 29,116,240,104, 5,109,143, 47, 21, 20, 26,169,147,175, 93, 54, 1,185,238, 16,147,114, 72,235, 3,129,194, 92, + 25,147,141, 12,246,116, 69, 55,239,105, 30,156,112, 37, 56, 94,201, 13,227, 66, 51,207, 53, 87,246, 39,188,245,153, 59,132,105, + 75,245,214,132,203,111,223, 68,124,110,159, 47,254,199, 63,199, 23,126,226, 10,127,255,239,254, 44, 89,222,240,237,111,126,130, + 28, 60, 6,233,221,147,182,239,146,192,233,201,199,236,190,246, 42, 58,244,200,222,167, 4, 47, 37,209, 90,178, 38, 38,176,144, +119,116, 65,112,190, 88, 34,176,248,213,138,222, 90,156,204,249,181,143, 62,193,127,242,125,194, 39, 31, 19, 30, 63, 34, 60,252, +148,112,178, 32, 60, 58,160,107, 2, 99,239,249, 79,174, 22,124,241,202,148,173,105,206,135, 75, 71,179,108,112, 66,160,165, 71, + 32, 56,247,145, 50,194,201,166, 73, 34,178, 16, 88, 91,193,169, 80,180, 90,178,118,129,214,121,254,118,173,249,185,253,146,215, +102, 25, 61,138,211, 32,120,191,113, 56,173, 57,148, 38, 9,180,150,167, 24,215,147, 69, 64,102, 88, 37, 89,245,176,238,122,116, +111,169,136, 56,219, 49, 82,129,109, 19, 41,178, 12,239, 36,186,200,145,217, 8, 35, 13,101, 85,209,184,200, 89, 20,120,147, 49, + 14,142,203,163,154, 82, 41,164, 54,152, 40, 81, 90, 35,133, 64, 72,195, 19,239,145,210,240, 88, 4,148,144,116, 41, 35, 47, 29, +200,149,166,208,249,128, 39,141,188, 82,100,188, 42, 35,123, 72,138, 44,167,150,130, 17,146, 67,219,241,131,166,229,164,223,112, +220,119,124,212, 44,121,186, 89,114,116, 62,231,241,147, 39, 60,190,255,132,179,123, 15, 89, 31, 29,192,106, 9, 7, 39,131,246, + 40, 29,158,163, 74,107, 71, 84, 24,232,152,241, 47, 12, 74,249,255, 82,224,253, 11,223,159,141,227, 93,143,235, 58,238,109, 60, +223, 94,174,105, 68,228,219,203, 13, 39, 6, 30,186,200,121,148,144,231,228, 91,151,232, 84,202, 81,232,133,194, 5,143, 82,138, +121,223,225,148,196, 59,199,121,219, 64,132, 54, 56,132,179,200,152, 68,164,209, 90, 54, 62, 48, 46,203,244, 60,155, 68,111,204, +148, 76,177,164,190,199,199, 72,136, 2, 33, 37, 82, 36,253,135,183,145,179,118,205,178,235, 89, 7,203,218,182, 52, 33,176,218, +172,232,250,158,211,102,131, 11,158,243,182,195,117, 29, 83, 13,190,239,145,206,146,135,128,237, 58, 42,161, 32,132, 20,144,131, + 64, 17,153, 74, 65,231, 29,219, 66,160,165, 96, 36, 36, 59, 58, 99, 58,154,178, 95,212, 76,243, 17, 85, 81,145,231, 35,234, 98, + 76,105, 74,242,188,102,183,170,153,228, 57,179,186, 70, 56,199,100, 60,166, 48, 57, 10, 65, 41, 82,116,120, 16,137,115,242,196, +245,212,198,176,112,145, 54, 6,126,176,110, 25, 73,201,119,108, 71,140,105,149, 32,130,227,117, 99,232,156,227,237,209,132, 15, +218,150, 61,169,177,193,242,198,100,155, 15, 55, 43, 62, 51,222,229,187,103, 7,252,248,222,149,255, 31,150,182,240,124,124,251, +108, 44,159, 13,194,176, 11,116, 42, 67, 76,222,133, 26, 62, 14,133, 94,136, 84,236,132,120, 62, 32,106,237, 96, 63, 75,169, 73, +148, 58,221,176, 82,253, 48, 74,118, 24,141,251,206, 83,233,228,121, 63,233, 82, 33,151,128,240, 73,248, 64,103, 97,221,128,111, +233, 84,218,223, 33, 20,219, 3, 12, 69,249,200, 88, 72, 22, 33,125,208,117,109, 32, 10,255,124,140,222,117,105, 5,112, 1,212, +201,139,212,133, 63,139, 50, 29,138, 54,131, 98,191,115,207,119,234,132,193,242, 22,158,157,164,211,255, 51,168,250, 93, 76,138, +120, 37,233,219, 33,231,188,237,159,219,226,164,127,190,247,206, 37,139, 54,114,212, 56,164, 12,212, 8, 54,222,145,107,133, 33, +162, 93,160, 23,129, 12,137,141,224,162,195, 40, 69,219, 57,162, 16, 52, 65,208, 55,125,250,157,220,102,152, 46,252,217,193,220, + 96, 24,216,155,113,249,242, 21,144,130,233,100, 11,219,116,140,235, 17,123,151,118,168, 70, 57, 91,147, 2,136, 24,165,159, 49, +131,252,160,103, 80, 67,208, 11, 2,156, 15, 68, 23,177,189, 35,120,200,242,148,128, 55,214, 34, 9,229, 34,100, 82,166,167,139, +148,140,214,133,200,169,117, 4, 17, 49, 33,210,251, 64, 39, 65,169,100,157, 49, 74, 97,234,156,229,167,135, 28, 46,150,172, 68, +164, 87,154, 94, 27,114,157,113,119,251, 18,183,182,246,169, 39,219, 76,102, 51,174, 94,221,229,141,187,215,249,201,183,110,145, + 77,167,212, 91, 83,246, 71, 53,178,117,100,147,146, 50,203,160,115,104,163, 17,179,196,149, 86, 90, 17, 10,153, 44,121, 17,164, +243,136, 65, 71,208, 35,240, 90,130, 78,153,241,218, 40,140,145, 20, 82, 81, 74, 40,163, 72, 0, 27, 31,121,231,196,113,184, 95, +210,198, 21,253,147, 19,186, 71,167,248,117,139, 40, 51, 68,110,144, 34, 32,164, 70,230, 26, 25, 34,162, 75,239, 5, 17, 98,250, +187, 42, 71,204,114,244,245, 49,249,172, 68, 25, 69,172, 37, 49,151, 72, 9, 7,167, 43, 58, 89, 82,141,102,136,106,196,143,239, +141,249,207,189,227, 11, 46,242,155, 31,220,231, 35, 17,120,237, 43,183,217,125,185, 96,116,189,100, 45, 3,156,244, 40,224,171, +255,240,231,249,151,255,195, 59,124,231, 87,190,206,171,127,231,243, 20,206,162, 67, 64,134, 64,101, 45, 7, 77,143,127,250, 41, + 31,254,234,183,216,236,103,216,245,146,157,245, 9,187,243, 83,182,207, 14, 16,177,227,126, 16, 92,157,108,115,125, 52,166, 48, + 25,186,219,240,213,246,140, 59,221,130,141, 50, 60, 93, 52,188, 62,202,185, 57, 46,248, 90, 11,191, 83,228,168, 33, 71,104, 99, + 10,140, 49,196, 40,240,235, 53,210, 57, 92,107, 57,183, 61, 93,159,172,138,197, 98,141, 88,110,232,187,192,219,181,230,213,105, + 65,110, 52, 39,125,228, 55, 14, 27,150, 4, 76,157,145, 85, 37, 93,208,220, 59, 58,228,252,228, 0,225, 26,136, 17, 43, 20, 62, + 6,214,109, 79,227,122, 70, 64,180, 61,133,134,138,180,139,205,140, 36,203,106,234,178,164, 55,134,141,147,136,178,164,172, 70, + 4, 23,152,106,205, 56,215, 84, 58,199, 40,147, 24, 11,121, 18,226,158,186, 64, 39, 53,231,209,115,210,247, 20,164, 3,209,102, +200,189,184,156,101,156, 73,201, 76, 41,150, 81, 48,149,145,215,178, 20,222,179, 21, 61, 75,215,179, 10,142, 7,182,227,215, 79, +207, 56,177, 27,150,139, 57,113,177, 72,141,200,201, 25,177,109, 97,125,142,144, 33,133, 96,245, 3,179, 67,166,136,105,140, 68, +244,225,133, 83,114,130,217, 64,248, 43,125,124,255,168, 34, 31,254,146,226,238,242, 12,167, 75,156, 16, 56,105,120, 98,114,206, + 46, 93,226, 81, 94,115, 54,222,101,119,186,203,108,119, 31, 47, 36, 50,175, 88,106, 73,231, 45,182,239,105,186, 22, 99, 12,193, + 57,154,152,178, 36,186,118,131,183, 22,221,119, 8,151,162,108, 51,239,144, 17, 86, 93, 71,149, 25,182,124,164, 9, 30, 33, 37, + 89,219, 13, 33, 43,142, 82,128,243, 14, 47, 37,116, 9, 39, 61,119, 61,139,232,120,218,119,184, 64, 58, 68,132, 72, 46, 2,219, + 72, 70, 2,218,174,199,250, 84,107,174,229,134,130,136,114,158,145, 78,246, 75,233,147, 48, 80, 18,153, 42,141,140,130,189,114, + 4, 17,246,171, 41,187,229,132,253,233, 30,120,207,184,218, 66,153,156,158,200,118, 61,195, 71,136,202,144,143,106,118, 77,193, +168, 30, 97, 16, 20,121, 73, 32,173, 76,147, 36, 77,162, 17,116,125, 79, 67,164, 18,146,135,182, 67, 16,121,220,116, 76,144,252, +174,179, 67, 51,155,106,233, 76, 74,238,249,192,127,180,179,205,135,253,134,175, 20, 21,167, 10,246,178,130,247,230,167,252,244, +246, 62,239,109,150,252,196,222, 85,126,235,224,225,191, 38,246,251, 51, 16,141, 25,184,237, 67,215, 13, 67,142,164,122,110,233, +202,205,115, 97,220,139, 7,128,126,192,154, 74,157,210,140, 80,169,216, 5, 63, 76, 1,178, 36,170, 67,160,180, 98, 44,147, 7, +247,172,237,168, 68, 26, 3, 27,159,130, 71,112,126, 16,135, 13, 30,242, 24,241, 81,242, 90,145,161, 73, 5,232, 40, 68,116,112, +236,104,201, 88, 72,142, 93,155,198, 87, 23, 42,241, 48,164, 50,169, 60,173, 8,172, 27,210,214, 6, 73,129, 15,233,141,166, 72, + 42,255,174, 31,236,119,109,242,224,251, 54, 21,244, 23,167, 27, 58, 79,227, 35,165,211,225, 70,203,231,192, 26, 49, 8, 1, 47, +212,243,118,216,215, 91, 7, 93, 67,140,146,243, 85,199,198,192, 52,164,147,164, 28,222,137, 54,198, 52, 60,144, 49,217,110,172, + 67,239,237,241,157,165,227, 53,229, 56,246, 49,121,240,237,176, 99,151, 60,103,209,191,240,245,224,253, 31,240, 99, 95,126, 27, +162,160, 91, 55, 52, 93, 75, 12,112,114,188, 32, 56,205,229,253, 41, 50,138,164,110,207, 82,184, 9, 49,237,246,189,136, 88,231, + 81, 33,210,181, 46,105, 1, 69,234,180,145,145,202,104,106,157,186, 25, 31, 35, 27,235,159,229,255,246, 62,157,180, 54,222, 51, +239, 35,185, 74,123,248, 16, 97,233, 28, 77,136,120,163,104,148, 98,215,148,232,233,140,107,245, 4, 47, 12, 74,101,140, 77,201, + 91,147, 45,234, 24, 57, 62, 61,161, 95, 47,144, 62,224, 54,150,178,183, 76, 16, 92,158, 86, 76, 47, 79,241,163,156,172,177,140, +148, 34,100,169,135, 21,153, 70,150, 25,162, 48,132, 33,198, 81, 93,160,252,125, 28,130, 43, 36, 82, 43,116, 72, 7, 12,161, 69, + 50, 63,132,136, 70,144, 41,137,138, 17,233, 61, 15,207, 44,246,220,226, 99, 78,254,210, 22, 71, 33,195, 44, 55,184,239, 31,208, +172, 91,226,162, 69, 54, 29,172, 59,226,162, 33, 62,221,224, 30, 29, 33, 90, 75, 92, 54, 72,169,209,181, 70, 79, 42, 86,179,130, +197, 86,193,114, 82,225, 70, 37, 22,193,193,201,138,213,233, 41, 70, 6, 68, 94,242, 31,206, 74,174,232,140, 42, 42, 38,120,238, +105, 69, 94, 20,140,119, 46, 49,189,122,137, 27,175,220,226,246, 87,238,144,125,249, 37,254,179, 66,243,210,207,222,225,105,181, +224,157,255,254,143,248,147,223,120,151,207,127,229, 22,255,227, 63,249, 29,142,190,249, 1,211,109,197,150, 44,120,245,213,125, +174,120,203, 79, 42,193, 87,203, 49,111, 86, 51,102,249,136,135, 70,179, 46, 39,124,245,165, 43,188,117,117,143,219, 87,118,184, +148,143,248,169,157,171,188, 49,221,230,229,224,248,189,222,242,255, 60, 60, 69,202,130,127,220, 75, 78, 51,197,189,113,201,189, +237, 17, 31,205,106,244,164, 98, 60, 42,208, 42,163, 95,108, 56, 63, 95,128,136, 40, 29,185,225, 54,124, 81, 9,222,232, 87, 92, + 19,158,243, 78,176, 18,146,167, 22,254,217,131, 13, 31,158,174,233,137,200,113,201,206,172,228,242,168,166, 18, 37, 11, 20, 31, +157,159,115,182,217,160, 67, 67,215,183, 40,231, 19,238,183,235,217,207, 37,165, 72,110, 11, 39,101,138, 90, 21,145,133, 11,228, + 82,160,133,164,115, 22,215, 7,140,132,105, 93, 83, 73, 67,149, 41,114,149, 72,123, 81,192,153, 13,116, 49,221,215, 22, 40,149, + 98, 41, 36, 75, 36, 47,231, 25,175, 21, 53, 39, 81, 98, 5, 92,215,138, 93, 37, 57,113,129,195, 16,249,183, 71, 99, 58,151,238, +199, 39, 1,190,190, 90,178, 21, 45,135,135, 39,233,253,127,190, 30,216, 26, 46, 9,111, 59,143,232,134,184,228,139, 28,114,169, +147, 94, 98,208,246,136, 48,172, 38, 73, 90,158, 11,144,231, 95,244,248, 75, 11,187,214,196, 34, 35,150, 37, 33, 31, 19,242,138, + 80,143, 8,245,132,176, 53,195, 95,217,199,223,186,140,187,178,143,187,126, 11, 55,221,198,141,118,233,138, 17, 55,242,146,237, + 73,133,208, 6,235, 3,167,203, 6,103, 91, 68,244, 24,231,232,135, 88,236,190,217,224,125,106,128,100,183, 38,244, 45, 83, 34, +218,182, 20, 49,160, 9, 72,215,147,133, 68,165, 28, 41, 77,215,247,168,220, 16,218,110, 88, 69,166,130,231, 87, 29, 70, 40,230, +237,134,181,237, 57,179, 13,202, 7,100,244, 20, 65,240,165, 50,227,181,170,224, 70, 89, 48, 53,130, 50, 66,215, 56,148,128,137, + 18, 76,149, 98, 44, 53,106,200,166, 24,101, 25,219,121, 77,129,160,154,108, 39, 52,116, 86,176, 83,207, 64, 42,182,234,105,154, +234,148, 19,108,244,228,229,132, 50,171, 88, 71,203,104, 60,101, 84, 86, 76,165,162, 30,143, 17,222,145,149,229, 51,108,118,136, +129, 60,203,211,164,161,239,176,222,179,118,150, 35,223,209, 6,199,161,235,153,119,158,223,107, 27,162,179,105, 10, 3,140,165, +100, 25,225, 31,236, 76,248,229,179, 37,191,184,181,197,159,180, 13, 87,165,226,126,219,240, 51,219,251,252,225,114,206,151,234, + 41,255,114,121,202,191,121,227,206,191,166,148,182, 11, 16,188,139, 41,199, 91,188,128,145, 45,179,231, 9,108, 65, 13,187,105, +249,188,219,247,110,240,153,155,231,184,216,222,131,242, 84, 49,176,233, 3, 85, 85,160,131, 39,148, 37,141,119,196,102,195, 56, +207, 57,219,180,228, 82,176,177,142, 92, 11,172,181,100, 34, 69,126,166,159,153, 65, 88,131,148,236, 23,146, 54, 66,239, 29,185, +130,235, 74,243,212, 5,178, 40,208, 56,240, 58, 21,226, 63,155, 62,183, 57, 79,227,248,233,236,249,117,108, 6,150,123,166,211, +206,126,211, 63,247,226, 67,218,203,255,168, 44, 21,111, 65,141,135,160, 23,255, 67,214, 54,138,148, 18,151,186,127, 9, 34, 7, + 29,210,239, 0, 16, 59, 32,227,248,112,133,218,139, 92,178,130,221,188,160, 42, 13, 83,224,208,123, 64, 82, 2,141, 81,168,195, + 67,126, 66, 73, 22, 62,114,213,120, 30,106,153, 18,220, 46,172,117,127,193,215, 39,247,238,115,247,206, 93,188,116, 24,163, 80, + 66,113, 54,159, 51,221,154,114,112,176,230,234,229, 9, 40,137,136,130,177, 17, 44, 8,184, 76, 17,219, 52,134,180, 49, 32,181, + 72, 1, 36, 34, 29,220,188, 77,138,239,165, 76,250, 66, 41, 32, 87, 41,172, 38,196, 52, 94, 35,132,164,234,143,158,115, 11, 15, +186,158,206, 57,114,160, 48,146,210, 24,150, 34,242,250, 94,205,149, 60, 35,168,136, 50,154,229,201,146,147,179, 99, 26, 21,217, + 22, 5, 63, 51,221,166, 46, 75,182, 46,141,209,163, 28,217, 69,108,105,136, 70,210, 58,199,165,221, 9,106,119, 76, 53,239, 89, + 57,203,121, 8,228, 49, 32,137,104,163, 80,133, 30,244, 21, 32,181, 67, 12,150, 74, 37, 4,194,250,180, 22, 25,226, 99,133, 15, +105,250,137, 74,163,238,232, 9,153,230,223,248,220,140,227, 71,107,138,203, 91,204,246, 74,158, 78, 86, 60, 62,172,177,149, 37, +211,145, 8, 92,162,227,180,105,185,254,210, 62,157,236,249,214, 31,124,135,187, 69, 75, 49,170,200,166, 19,140, 74,153,235, 31, +182, 13, 7, 25,124,235,227,251,100, 85,141, 81,146,163,245,138, 27, 59,151,144, 1,166,221, 49, 71,118,143,203, 82,161, 0, 17, + 2,215,102, 99,108,132,166,245, 44, 59, 75,159, 37,182,194,127,153,149, 76, 17,252,164,146,228, 63,253, 83,252,224,115, 43,234, +227, 67, 54, 31,126,143, 95,124, 99,151,229,106, 13,167,115, 94,223,209,236,230, 37, 86, 73,176,145,220, 36, 91,209,182,140,188, + 33, 34, 97, 58,230,234,222,140, 81,153, 19, 4,236, 8, 69, 17,210, 65,108,164, 4, 63,119,220,240,251,173,227,151, 63,124,140, + 95,156,227,110,222,132,151,247, 97, 84, 32,164,224, 88, 75,222,172, 43,222,190, 50,130, 43, 99, 62,125,103,206,131, 39,247,153, +246,107, 94, 25,101,236,196, 64, 94, 84,220,113, 29, 31,206,159,242,127,124,175,225, 35,149,232,100, 58,147,196,160,216,180, 26, +145,101,108,215, 57, 87, 94,185,206,102,123,130, 59,188,196,236,248, 35,246,215, 11,114,215,242, 56, 43,248,104, 25,153, 24,197, + 90, 20, 68,165,200,138, 60,241,190,157, 37, 68,201, 44, 51,116,222,178,233, 28, 83,173,200,202,140, 3,219,225,188, 64, 27,201, + 90,192, 72, 41, 64, 49, 95,109,208,178, 96, 37, 90, 78,176,236,100, 5, 51, 41, 89, 57,207, 29,109,240,209,113,179,204, 57,160, +229, 82,208,140,149,230,172,111,121,173,204,112, 68,126,165,177, 60,104, 58,246, 11,197,217,186,101,108, 20,244, 61,213,100,196, +230,124,158,166,120,157, 27,178, 28,210,174, 42, 14,152,103, 49,196,184, 70, 13,194, 5,162,145, 63, 84,164, 5, 36, 46,190,115, +127,174,120,191, 88,192,127, 84, 65, 39,207,146,190,167,168, 17, 87,174,240,229,235,151, 41,178, 49, 31,135,192,227,205, 26, 17, + 93,226,238, 3,152, 10, 17, 83,116,109,180,142,168, 3,149,146,136, 34,167,111, 28, 90, 70,150,237,146,245,106, 78,219,183, 76, + 67, 67, 57,217,162,105,150, 88,219,130,144, 8, 2,210,123,116,240,212, 82, 80,111,230, 20, 58,103, 25, 28,151, 90,199, 90,103, +180,202,160, 17, 44,108, 79, 37, 20,174,235, 25, 27,205,122,189,192, 75, 1, 93, 64, 11,201,252,252,156, 85,136,172,250,134,162, +119, 72,239, 16,120,246,137,220, 44, 74, 10, 37, 81, 49,176, 4,156,118, 52,163,140,104, 35, 99, 97, 24,229,154, 45, 93,226,189, +103, 42, 20, 54,146,220, 42,179, 75, 4,239,240,163, 29,172,235,144,229,104, 64,177, 26,148, 78, 77,204,246,100,139,229,102, 73, + 94, 84,132,168,201,164,129, 76, 49,174,199,216,182,101, 50,174, 17, 46,164,120, 89, 36, 89, 38,177, 93,159, 8,155,218, 48, 95, +156,178,244, 61,171,174,225, 9,145,123,155,150,247,205,208, 60,102, 25,248,228,192, 90,153,146,255,250,210, 22,255,237,193, 41, +255,221,141,171,252,227,167,135,252,253,237, 41,247,108,207,141,114,196,255,122,112,192,191,119,233, 18,255,124,121,206,191,123, +233, 26,191,127,248, 20,197,206,221, 95, 34, 31,216,225, 38, 27,196, 96,234, 57,149, 44,252, 21,198, 57, 90,167, 16,147, 11, 75, + 26, 47,140,213, 61,207,169,112, 23,208,149, 11,113,221,179, 64, 4,159, 58, 94,235, 83, 39, 92, 21,100,163,154, 24, 35,151, 71, + 37, 85, 8,200, 92,147,245, 14, 19,192, 32,152,219, 62,177,197, 67, 36, 58,139,119,201,228,227, 90,151, 14, 23, 82, 38, 21, 57, +201, 74,214, 10,197, 37,173, 89, 74,168,133,102,233, 29, 19,173,105,188,163,139,146, 77, 8,233,116,244,103, 89,233,145,244, 4, +247,107,200,202, 84,152,241,233,119,189,232,212,173, 79,187,180, 24, 6,205,192,160, 48, 15, 46, 61,135,179,173,244,221, 13, 7, + 13, 72, 99,125,212, 48, 13, 48,195,140,203, 13,227,254,152,126,143,224, 94, 88,111, 12,138,124, 21, 89, 55, 29,135, 86,241, 82, +161,120,106, 29, 82,169,148, 74, 23, 19,205,205, 13, 7,129,167,173,227,212,246, 44, 93,196,218,144,198,250,222, 15,215,240,163, +191,238,189,247, 33,175,252,216,103, 40,234,146,172,168,184,125,247, 37, 66, 23,147,208, 79, 73,102,211,154, 66, 43, 2,130, 60, + 87, 73,188, 31,160, 15,150,174, 77, 98, 63,231,211,148, 48,248,128,141,129, 73,101,104,123,143,144, 2, 45, 34, 82,165,209,123, +231, 35,185, 86,212, 90,210,184,144,124,236, 33,210,249,192, 73,219, 19, 34, 84,185, 73,147, 1,163,120,184,105,185, 34, 97,247, +251,167,156, 29,156,210,172, 55,188, 90, 21,252,120, 61,229,198,254, 22,179,237, 9,123,121,201, 40, 42,140,117,112,214, 34,231, + 27,138,121, 71,239, 35,125,231,169,124,164,152, 84,132, 92,113, 26, 29,143, 36,204, 53, 24, 45, 17, 90,162,202,156, 40, 85, 90, +209,132,180,139,198, 70, 2, 73, 39,128,124, 30, 81,160,132, 64, 41,133, 48, 73,193, 27,149, 74,196,191,253, 49,163,203, 99,230, + 81, 97, 90,199,189,243, 6,191,182, 72, 37, 41,242,140,160, 12,148, 21,217,229, 93,102,151,198,232,155, 59,236,237,238,241,222, +135,223,231,192, 40,158, 68,248,211,249,156,127,241,209, 39,252,223,191,252, 33,223,253,173,143,121,242,221,115,238,127,235, 41, + 63,248,230, 1,143,191, 51,231,189,175, 61,225,221,211, 35,238, 77, 36,127, 18, 35, 47,111,111, 17,235,146,249,143,221,162, 51, +134,217,155,183, 17,215,118,161,168, 57, 63,239,153, 20,138,151,115,195,142, 0, 35, 4, 65, 74, 44,176,223, 54,188, 28,160, 78, + 87,136, 48,146,219,163, 41, 69,158, 92, 23,214,167, 52,177, 72,160, 19,145, 21, 2,103, 50,182,171,130, 40, 18, 71,193,104,197, + 40,207, 48,133,230, 20,201,147, 40,249,194,213, 25,183, 38, 99,122, 10, 38,235, 6,113,186,100,125,180, 68,228,134,185,139,108, +103,138, 91,165,225,202,164, 96,186, 91,161,119,118, 24,159, 58,110,133,134, 92,105,100,140, 16, 5, 83, 1, 69,220,240,253,195, +167,248,205, 28, 86,235, 20, 61,217,123,106, 36,219, 66, 82,107,193,164,202,248,210,229, 9, 63, 87, 78,121,115,179, 65,207, 15, +120,180, 90,240,125, 31, 49,194, 18,237, 6, 17, 3,189,117,196, 24,113, 94, 80,122,203,117, 26,110,216,158,171,194, 83,216, 13, +125, 51,103, 79,151, 84, 50,114,110, 29,211,188, 2, 34,167,235,142,162,200,152,247,150,117, 8,188, 57,158,240,199, 77,207, 79, +140,106, 76,150,113, 24, 2,159, 41, 11, 58, 27,184,149,101, 84, 69, 77,229,122,174, 22, 21,235,232,169,179,156, 83,103,217,209, +154,153,146,132,216,177,105, 61, 75,235,120,228, 67,154, 84,246, 22, 86, 77,106, 30,130,123,158, 14, 23,211, 71,133,208,105,133, + 39,244,112, 95, 94,136, 36, 7,221,132, 4,100, 8, 63,252,231,103,154,138, 23, 10,191, 76, 66, 89, 97, 52,236, 94, 38, 78,167, +112,247, 54,188,242, 38,255,254,235, 95,228,165, 91, 55, 25,143,119, 57,245,112, 96,138,164,198, 71, 19,116, 70,140,142, 32,100, + 42,122, 74, 16,186,150,118,179,132,213, 57,151,148,199, 45, 78, 56, 61, 63,224,119, 30, 61,162,136, 61,149,150,204,155, 21, 82, + 43, 54,109, 75, 41,192,119, 27,100,215,176, 75,100,199,187,148,150, 40, 21,187,182, 39, 71,176, 45, 5,165,179,232,190, 65,199, +200,194,183,172,251,134, 85,187,193,246,142,195,243, 51, 54, 77,199,217,249, 9,125,211,176,238,214,136,174,167,196, 81,186,158, + 50, 4,222, 30, 21, 84, 74, 81, 75,137, 33, 50, 70,144, 9,207, 30,138, 59,153,228,229, 66,179, 47, 4,183,117,198,231,138, 17, +149,183,188, 85, 76,168,198, 59, 92, 67, 83,142,182, 80, 49, 80, 84, 51,164,209,104,147, 51, 46, 70, 72,149,161,243,156,206, 91, +242,170, 6,165,168,181, 65,228,134, 74, 25, 60, 80,215, 37,222, 38,237, 72,146,140, 37,139, 31, 64,223,245, 4,215,163,162,224, +160,155, 51, 15, 61,143,154, 5, 31,250, 72,211, 54, 4, 33,137, 46, 37, 38, 34,224, 23, 70, 25, 95,223, 88,254,171,253, 75,252, +195,199,143,249,111,174, 92,229, 55,207,230,188, 90,230,252,243,179, 57,255,206,238, 46,191,219,172,248, 74, 61,225,187,109,195, +207,236,239,163, 24,223,249, 37,134,228,234,103, 40, 87, 31, 82,241,177,253, 95,173,176,135, 11, 5,248,144,141,174,228,179,177, +119, 42,218,242,121,161, 18,164,221,180,148,207,147,217,132, 76,105,109, 98,144, 71,215, 37, 91,101,129,145,146,206,167,206, 38, +119, 1,105, 36, 65, 8,106,239,232,108, 79, 31, 34,113, 16,233, 41,231, 9, 46, 32,227,160, 7,158, 47,210, 1,165, 11,168, 42, +137,164,158,120,203,174,212, 52, 70,176,140,130, 22,207, 18, 48, 58,121,149,125, 55,168,216, 95,188,222, 11,218,221,197,186, 32, + 12,192,157, 16,134, 34, 62, 4,212, 68,159, 58, 96, 51,232, 0,156, 75,133,120, 50,133, 73,145,242,162,155, 52,129, 64,103, 3, +144, 39, 41,250, 25,186,236, 52, 22,143,195,212,162, 75, 7,132,100,190, 76,207, 87,140,207,179,157, 61,220, 91,119,188, 58,206, +121,208, 58,218,144,246,236,243, 62, 32,124,100,222, 59,244,176,159, 62,105,147, 24, 48,177,224, 47,226,129,254,226,215,244,149, +183, 94, 99,182,183, 77, 57, 74,251, 69,173, 76,242, 23, 11,157,212,168, 6,252,144,128,100,148,120, 54,146,111,173,195,217, 56, +128, 51, 34, 46, 68,188, 79,162,188,186,214,140,139, 11,223,182, 24, 50, 34, 4, 82, 8,250, 24,217, 88,139,141,145,214,185,103, + 33, 18,142,136, 25,124,169, 79,206, 27, 78, 91, 75, 89, 23,108, 13,177,186,181, 82,148,101, 78,221,123,132, 23,200,117, 79,214, +121,124,215,226,251, 64,167, 33, 40, 73, 62, 42,168,148,196, 52, 14, 19, 4,186,179, 20,227,138, 32, 21, 15, 6, 64,210, 44, 55, +216, 16, 17,117,145,196,107, 34, 9,245,144, 98,200,102, 18, 16, 99, 18,238,137,132,193,149,198, 36,196,170,148,200,152, 70,184, +253,172,128,227,142,145, 48,132, 43, 35,212, 89, 75,253,141, 71,212, 55, 50,194,106, 73,189,238, 9, 27,216,222, 42,216,158, 21, +148, 85,142,237, 29,110,171,224,165,215,111, 48, 63, 92,179,152,207, 57, 56, 60,226,254, 59,103,184, 24,113,235,126,176, 26, 41, + 2,142, 56, 60, 56,237,176, 77,203,222,103,239,210,188,121,155,241,237,109,102, 90,240, 55,103, 35, 94,149,138,167,125, 75, 62, +169,216,185, 49, 99,186, 63, 33,107, 60,223,118,142,243,174,167,115,158,105, 81,240,165,124,130,107, 23, 24, 37, 8, 58,226, 46, + 95, 35,247, 45, 74,192,218,182, 60, 42, 10,158,110,206,233, 92,199,166, 89, 51,239, 90,142,188,227,220, 11, 58, 36,167,173,165, +223,244, 84, 85,198,121,107, 57,207, 52,215,246, 42,182,170,140,105,109, 88, 96, 56, 12,146, 71,239,127, 3,115,126, 68,190, 17, +184,147,134,251, 66,113,117,148,115,187,204,120,121, 39, 71,100,138, 75, 59, 53, 91, 78,145,183, 93,250, 40,146, 2, 47,224, 84, +106,102, 89,205,229,190,165,223, 28, 51,251,228, 29, 86,135,247, 40,124,129,237, 28, 58,128, 80,146,215, 13,236,201,136, 89, 55, + 28, 62,125,200,159,156, 46,248,160,235, 41,130, 77,136, 99,107,105, 90,203,198, 10,246, 84,207,181,216,243,102,132,219, 72,118, +109, 2, 47, 85, 82, 37,102,119, 8, 72, 21, 57, 93,174,153, 55, 61,107,111, 17, 94,178, 83, 87,188, 61, 29, 35,165,226,199,202, +146, 81,149, 49, 69, 32,155, 13,143,150, 75,214,222, 49,210,154, 49,142,135,206,210, 44, 78, 41,148, 97,175, 40,184, 92,213, 68, + 33,120,119,189,230,188,233, 56,179, 61, 31,110,154,180,186,115, 46,233,138,194, 48,241,107,125,170,222,147,113,250,174, 50,132, + 73, 66, 64, 97,116, 18, 87, 14, 17,199, 23,133, 91, 13, 69, 93, 93, 24,145, 46,254, 14, 80, 90, 35,140, 70, 78,119, 16,251,123, +136, 59,183,224,245, 55,225,218, 13,184,250, 18,236,221,228,238,238,117, 62,191,191,197,116, 84, 80, 22,134,211,206,242,201,226, + 20,188, 37, 70, 71,236,122,194,102, 77, 88,159, 17,150, 11,226,227,199,132,213, 25,241,195,143, 56,222, 44,248,238, 71, 31,113, +255,244,128,239,190,127, 15,119, 58,231,112,221,112,180, 88,147, 27,120,112,124, 76, 17,122, 14,142, 78,152,224,216, 18,145,157, +102, 67, 38, 21,133,128,202,246, 76,165, 70, 18, 40, 92, 64,185,158, 16, 28, 85,179,102,215, 89,122,103, 25,183, 13,133,235,152, +250,150,151,155, 21,175, 7,207,155, 50,240,122,215,242,213, 76, 51,113, 45, 55,137,236,234, 68,104,219, 86,154, 26,216,213, 5, +149,115,236,133,200,109,173,184,161, 4,175,168,130,151, 76,206,181,124, 76, 25, 5, 87,202, 45, 84, 86,176, 43, 11,172,150,236, + 25, 3, 85,157,146, 25,235, 26, 83, 22, 88, 4, 58, 87, 24,173,145,131,102,204, 72,129,212, 89,170, 33, 33, 82, 21, 9,243, 26, + 69,250,188,216,180, 61, 82, 43,122,107,217, 52, 45, 17, 79,192,209,249,150,165,237, 88,118,107, 14,188,231, 7,203, 22,111, 45, + 65,184, 36,202, 13, 22,132, 66, 70,248,185,209,152,223, 89,110,248, 47,118,183,249,223, 79,231,252,244,180,228,107,231, 27,254, +222,222, 46,191,124, 50,231,239,110,111,241,141,126,195, 79,143,198,252, 95,243, 51, 20,147,151,127, 9, 61, 40,217, 7, 16, 26, +153, 74,163,104,147,253,165,138,202, 63, 87,216,229,160,198, 20, 50,117,118, 46,166,150, 77,136,231,106,241,190, 29,238,198,193, + 43,205,176, 87, 87, 67,216,184, 76, 79,230,222, 40, 25,234,199, 82,160,140,164, 9,145, 82, 73,198, 42,112,210, 36,144,128,247, + 17, 33, 35,177, 11,207,206, 35,193, 37,186,220,179, 29,126,232,152,152,140, 69, 27,217, 26,167,200,187,131,181, 99,100, 20,157, +144,228,153, 34, 72,129, 68,146, 27, 69,215,118, 63,250,122, 47,196,125, 74,167,195,142,144,207,135, 88,201, 83, 4,114, 56,180, +244,118, 64,222, 14,172,119,100, 2,225,244,205,160,210,203, 6, 40,204,144, 51,159,107, 38, 10, 58,149, 14, 63, 25, 17, 47, 84, +218,129,203,240,156, 0,199,112,224,146, 98,144,175, 40,158, 6,199, 37, 35,217, 81,146, 67,235,217,143,176, 12, 48, 65, 96,173, +103, 17,161,233, 2, 34, 4, 98,102,210,193,227,226,223,252, 11,190,158, 84, 21,159,189,243, 18, 16, 89,175, 54,116,155, 6,231, + 60,101, 93,179,119,105,130, 12,130, 44, 55,212, 70,167, 4,164, 16,201,134, 32, 16, 31, 99,234,134, 92, 68, 32,153,212, 6,103, + 61,253,224,248,203,179,164, 24,143, 34, 21, 65, 49,176,124,146, 35, 39,117,233,193, 71, 58,235,233,250,192,249,198,114,180,234, +152,175,187, 52,234, 30,229,124,239,225, 49, 79,219,142, 85,140,108,156,227,241,102,195,185, 0, 21, 60,217,118, 69,147, 27,178, +189,154,234,198, 14,242,165,109,182, 62,115,153,226,198, 14, 98,167,166,120,105,139, 77,149,161,131,164, 28, 21, 60, 94,183,148, + 70,112,100, 29,171, 16, 17,101, 78, 81,164,113,100, 16, 67,204,164, 2,171,161,147, 18,127, 1,202, 41,116,202, 8,207,146,134, + 68, 9,129, 46, 53,147, 50,103, 60,183,244,203, 13, 92,174,104,103, 21,197,237,109,202, 73,137,253,100,201,225,161, 32, 8, 69, +115,214, 48,177, 29,217, 52,167,239, 28, 75, 23, 40,182, 42,110,189,113,157,197,227, 57,255,234,183,222,199,125,216,224,214, 61, +110, 40,229, 23,126,226,100,100, 75,247,159, 56,111,152,127,237, 62,229,205,138,171,119,175,242,153,222, 51,126,247, 4,117,222, +178,127,222, 49, 89,109,184,150,193,205,121,203,229, 16,248,172, 48,188, 90,140,184, 51,154,242,242,213, 61,202,233,132,221, 98, +151,157, 87, 95,226,234,181,107, 92, 63, 92,146,119,150, 32, 10, 94,255,249, 47, 51, 89, 69,190,181,110,249,188,202,200,219,150, +223, 62, 59,229,228,248,152,135, 15, 62,225,254, 71,223,231,193,135,127,202,175,127,227,187, 92,159,237,144, 21, 25, 81, 39,192, + 74, 84,138,168, 52, 42, 74,158,116,129,167,197,152,240,107,255, 27,246,221,111, 34,154, 99,100, 95, 33,246,118,248,183,174, 20, + 92,159, 22,236, 26,144, 54,208,244,144, 91,139,142, 17,235, 28,157, 86, 72, 36, 91, 50,114,107, 50,226,243,245,132,219, 85,205, +151,138,140, 75,199,159,194,226, 9,247,142, 78, 57,235, 34, 51,235,224,120,206,251,143,239,241,235,159, 60,228,119,143,214,248, + 62,176,136,130,220, 91, 38, 50,162, 20, 92,201, 97, 11,197, 77, 34,159, 81, 25,123, 66, 82,233,156, 66,104, 38,166, 2, 33, 9, +121,198,178,143,172, 17, 92,157,141,184, 52, 25,179,157,101,236,150, 5, 74, 40,174,103, 25,123,185,193, 7,207,121,179,228,201, +124, 78, 29, 61, 27,223,211,245, 61,206,121,206,219, 53,125, 12,196, 24,152, 72, 65, 93,105, 74, 60,149,239, 8,182,227,157,174, + 29,236,178,253,224,178, 25,194,171,242, 28,246,182,224,202, 46, 76, 70, 48,173, 17, 85, 9, 89,134, 48, 5, 66,167,213,131, 80, + 73,247,241,172,144, 59,135, 26, 18,177,245, 80,208,117, 85,160,198, 91,200,235, 87,145,175,220, 69,220,190,131,184,126, 23, 49, +189,130, 24,109, 67, 61, 67,100, 5, 72,137, 81,138, 27, 82, 83,106, 65,179, 90,243,240,232,132, 7,167, 79,137, 39,135,196,131, + 35,226,209, 9, 60, 57, 32, 30,158, 19,159, 30, 19,207, 78,137,199, 39,196,213, 2, 78, 78,136,231,115,154,163,179,212,104,185, + 14,214, 61,221,124,197,227,249,134,211,206,114,127,177, 97,164, 2,211, 16, 40,154,142, 81,174, 49, 49, 48,138, 1, 33,135, 84, +200, 0, 27,215, 99,164,161,114, 29,193, 59, 74,101, 24,117, 13,133, 84,212, 62,240,182, 50,188,102,114,110,168,156, 61, 41,184, + 82,148,236, 11,195, 29,165,185, 45, 52,175,161,216, 87,154,207,232,130,155, 89,205,110,136,220,150, 57,147, 16,184,161,115,182, +132, 34, 71, 50,173,102, 24, 4,117, 62, 3, 34,121, 94, 33, 76,198,184,168, 64,107, 76, 89, 16,164,162, 71, 32,181, 68,152,180, + 34,246, 8,138,204, 96,148, 65, 9,153,112,194, 68,230,182,167,245,158, 24,211, 52,108,221,117,104,173, 89,174, 86,244,193,179, +106,215,232,224, 88,180,107, 62,217,204, 33, 90, 54,209,243,209,217, 25,143,172, 39,244,158, 16,210,106, 37, 70, 73, 84,154, 27, +198,144,101,154,183,138,140,239,181, 45, 63, 89,231,252,105,215,241,246,164,230,183,206,151,252,194,206, 22,255,231,209, 25, 63, +191,189,197,175,157, 44,248,197, 27,151,135,162, 78,120,238,109,144,131,141, 44, 27, 10,186, 16, 9, 90,242, 87, 17, 85, 6,159, +246,204,113, 40, 28, 23,124,120, 6, 49, 71,176, 63, 44,144,123, 81,129,221,167,195,132,168,198,212,211,138,141,115,236,141, 42, +188, 79,128,130,105,150,130, 68,142,150,107,114, 96,221, 56, 92,151,196, 86,105,172, 45,137, 93,155,130, 96,252, 0, 89, 89,183, + 32, 3, 93, 7,251,147,156, 32, 5,199, 93,228,165, 73, 70, 47, 83,146, 88,144,130,177, 16,108,124,100,221,165, 40,209, 31, 25, + 87,122, 49,141,232,125,154, 60,200,144,174, 71, 12, 45,126,116,233,201,179,131,143,223,133,231, 93,126,240, 73,137,127,209,113, +203,129, 31,175, 21,228,154,237, 12, 22, 46,178,149, 9,234, 76,178,236, 6,225, 92, 74, 32, 72, 1, 57,241,197, 3,196,176,202, + 80, 17,239, 60,109, 4, 17, 36, 70, 68, 14, 99, 68,133,192,177,183,228, 90,114,218,245,180, 33, 32,163, 32, 51, 17,223,251,212, +173,255,168,107,188, 96, 4, 61,120,204, 91, 95,248, 28,163,233, 24,188, 71,162,121,114,248,104,208, 58,100,108,207,106,182, 70, +121, 26, 30, 12,231, 18,165, 5,189,141,207, 94,234,222, 5,214,182, 99,213, 88,164, 6,219, 6,156,135, 34,229,148, 38,170,152, + 72,236,240,214,122, 70, 42, 57,169,227,112,141,109,111, 17,192,122,227,112, 3,113,204,122,207,238, 86,197,162,241,204,231, 75, + 30,247, 61,243, 81, 73,190, 55,193,111, 23, 92,185,182,141, 40, 13,187, 47, 95,162,188,190, 13, 59, 37,155,182,231,147,147, 57, +199, 71,115, 30,156, 47,121,178, 89,115, 30, 2,203, 0,123,179, 10,165,224, 97,223,113,214,122, 62, 58,183,156,116,112,115,167, + 76,113,178, 98, 48, 52, 8,153,222,220, 82,208,137, 20, 3, 28, 11,147,166, 44,133, 70,101, 6,145, 25,188,148,100, 59, 5, 38, + 87,104,231, 40, 15, 86,152,101,159, 14, 0,153, 34,191, 54,161, 13,208,156,247,216,190,225,254,123, 31,114,115,225,169,175,111, + 35, 8,220, 91,121, 86, 86,113,235,141, 91,180,249,152, 7,239,253,224, 89,151,158, 30,138, 4,122, 77, 15, 8, 8, 52,130, 53, +199, 95,251,148,211,218,241,234, 43, 55, 48,227,196, 65, 8,181, 98,147, 43,186,220,160, 34,140, 60, 84, 66,160,103, 53, 98,127, + 66, 48, 25,178,208,112,109, 10, 70,164,108,237,195, 5, 90,101, 68,149,163,119,119,248,212, 20, 60,169, 39,252,157,207,191,204, +246, 75, 47,243, 73, 52,220, 47,115,186,173, 45,150,213, 22,171,106,196,141, 75, 99,222, 63,123,202,175,127,247, 29,126,245,227, +202,128, 32,160, 0, 0, 32, 0, 73, 68, 65, 84, 7,124,245,165, 59, 84, 69,198,163,222,243,237,133,227,221,206,211,245, 14,166, + 21,188,243, 77,196,227, 71, 8,191,225,120,114,139,217,108,196,213, 12,214,125,224,253,121,207,102,213, 50, 81,130,176,106, 88, +180,107,122,157,225, 98,164,170, 43,114,173,153, 25,195,165,178,102, 87, 41, 94, 26,111, 33,122, 75,190, 62,166, 57,123,196,239, + 61,120,196, 31, 60,121,200,111,124,250,136,251, 77, 64,138, 36,128,148, 67, 66,217, 76, 5,110, 41,201, 37, 4, 87,116,198,171, + 89,197, 94, 62,162, 30,111,145,229, 5, 85, 94, 33,141,102, 82,214,156, 5,207, 90, 75, 38, 69,141,204, 52, 99, 83,160, 77, 10, + 28,217,205,147,207,124,229, 60, 62, 4, 86, 49,249,237,181,210, 16,225, 90,150, 83,232,140, 76, 8, 58,151,160, 39, 99, 41,216, + 82,234,255,229,236,205, 98, 52, 77,207,243,188,235, 93,190,237, 95,107,239,174,238,233,233,238, 89,201,225,112, 68,138,164, 40, + 75, 98,168,213,202,130,196, 65,156, 88,200,102, 69,112, 16, 64, 8, 16,228, 44, 1,124, 66,192,201,137,207, 28, 32, 1,146,200, +128, 3, 40,113, 2, 91, 32, 98, 71,118, 44, 75,150, 21,209,220, 68,114, 72,206, 62,189, 76,239,181, 87,253,219,183,190, 91, 14, +222,175,186,123,134,155,236, 2,126, 84,117,119,161,250,223,234,123,222,231,121,238,251,186,217, 81, 10,213,180, 12,132,229,237, +186,141,109,141, 76, 98, 78,195,112, 13,198, 83,216, 88,139, 81,174,147,205,232, 4, 26, 78,249, 11,107, 57, 47,108,140, 25, 76, + 51,142,165, 64,166, 89,188,169, 4, 53, 29,163, 54,182, 25,188,252, 60,159,120,249,101, 94,125,245,167,152, 95,189, 76,184,254, + 34,234,202, 85,244,245,231, 81, 59, 87, 80,147, 29,228,120, 3,161, 52, 34, 73, 16, 82, 61,177,231, 54, 53,101, 83,243,156,175, +169,231,199, 28, 31,239,241, 79,223,122, 19,110,125, 0,123,199, 80,206, 96, 81, 18,108, 67,112, 29,161,173,163, 96,237,169, 6, + 40, 60, 93, 7, 92,191,146,116, 29,194,116, 96, 90,124, 80, 44, 2,188, 58,204,184,156,167,100,125,150, 70,166, 83, 50,169,112, +222,146,244,209,210,214,199,119,122,174, 51,164,109,201,210,140,145, 74,184,144,102, 76,133,100, 59,201, 24, 34,152,232,148,137, +212,228, 74, 49,206,198,228, 18,182,134, 27,108,138,148, 66, 37, 12, 68,194, 16, 65,138,100,154,230, 72, 23, 24,164, 5, 69, 82, +144,168,148, 44,159,162,116,130,146,241, 57,209,249, 16,153, 42, 66,154,129,140,155,215,144, 36, 24,169, 8, 64,235,124, 44,226, +198, 68,144, 40, 2,235, 61,199,229, 10,227, 5,149, 49,164, 50,238,207,165, 15,212,101, 69,227, 45,117,221, 34,130,231,184, 62, +101, 97, 13,173,173,217,107, 74, 58,215, 49,146,146,155,203,146,198, 58,188,148,132,198, 16,180,130,208,114,162, 19,158,215, 9, + 7,174,229, 83,217,136,111, 85, 13,175,165, 25,239, 52, 13,159,155, 12,249,191,143,206,248, 43, 23,182,248,221,131, 99,254,234, +238, 54,191,123,103, 15,197,228,218,151, 30,239,181,207,241,175,169,234, 45, 20, 42,182, 87,169,254,137, 35,219, 15, 41, 54,206, +119,235,198,199, 23, 86,208,123,175,195, 19,127,251, 99, 59, 91,255,103, 5, 66,231, 80, 20,108,108,174,177, 83,196, 12,221, 52, + 31,176, 62, 24, 49, 25,229, 56,161, 9, 4, 58,227,233,172,137,204,119,223,171,200,203,182,247, 95,244,227,240,178,142,130,181, +206,130,212,148, 4,106,175,185, 58,148,212, 8,106, 4,195,158, 77,126,210, 5, 20,208, 56, 27,173,112,222,253, 24,240, 78,191, + 74,120,140,120,237,119, 94,162,159, 60, 72, 17,213,239,189,248,235,241, 27,252,233,142,191, 63,241, 33, 99, 10, 93, 93, 59,158, + 29, 74, 22,109, 96,213,122, 66,214, 7,192,208,131,105, 68, 63, 50, 87,231, 85, 38, 60, 41,242, 33,208,121,143,149,208,244,193, + 25,181,131,137,214,204,218, 14,153, 42,180, 11, 92, 72, 36, 75,239,113, 56, 48,242, 7,215, 12, 31,149, 73,108,174,241,210,199, + 95, 68, 41, 77, 49, 40, 80, 34, 33,205,115,108,227,144, 73,202,250, 90,193, 36, 79,250,194, 30, 98, 10, 27,158,166,117, 88,225, +105, 26, 67,211, 57,108, 99, 35, 87, 31,143,237, 28,203, 30,100,146, 75,193, 86, 30,139,143,146,145, 41, 46,132, 96, 51,141, 8, +200, 32, 4, 77,107,209, 90,145, 17, 69, 88,153, 80,172, 15, 50,172, 11,236,205, 74, 18,165, 9,233,144, 98,107,202,231,174, 95, +228,217, 11,235,220,153, 87,188, 89,214,140, 70,209,235, 51,239, 12, 75, 99, 48, 62, 80, 19, 56,177,129, 54, 85,124, 80,182,220, + 42, 43, 92, 34,216, 26, 23, 84,222, 83,249,192,229,245, 1,163, 60,146,175,188,232, 81,172, 33, 62, 93,149,241,156,185,192, 92, + 72,150, 82,210,106, 77,208, 10,159,164,184, 68, 81, 37,146, 71,139, 26,115,255,132, 97,145, 66,221, 33,239, 45, 73, 79, 13, 90, + 56, 76,170, 73,183, 11,144,158,211,155, 7,172,150, 71,220,124,116,151,231,221,136,201,230, 4,175, 60,195,105, 78,174, 20,207, +188,112,145,171,159,125, 14,207, 17, 15,222,217,195,145,227, 46,104,124,161,120,249,175,253, 69,126,227, 55,126,142,223,250,207, +126,137, 63,186,188,206,103,127,237,243, 60,248,211,155,156,125,235,251,252,225,226,148, 7,211,109,190,126,188, 0,223,241,135, +183, 30,241,198,195, 99,190,242,214, 13,222,153,207, 56,116, 49, 64, 35,117, 34, 34, 59,235,142,174,170,152, 61, 56,230,225,141, + 91,220, 63,188,203,172, 90, 48,115, 29,135,141,164, 29, 13,241,121,194,160,241, 36,235, 5,183, 27,207, 89,219, 69,142,148, 10, +180,217,132, 79,125,236, 5, 54,167, 59,188,111, 2,255,117, 6,227,195, 35,190, 38, 70,220, 91, 5, 94,239, 28,167,214, 16,234, + 25,225,224, 30,226,213,207,194,231,126,137,191,246,197,207,243,189,189, 25,223, 45,225, 52,207,113,149,229,230, 73,203,124,213, +178,142, 97, 77, 39,176, 40,185,107, 91, 6,217,128, 86,194, 40, 77,153,166, 26, 41, 96,152, 15,113, 82,145,228, 3,200,199, 12, +164, 96, 61,180, 28,183, 21,207,109, 79,120,105,119,157,207, 62,187,195,206,214, 58,175, 76, 7,204,140,101, 77, 9,174,167, 25, + 47, 36, 57,207, 38, 5, 23,139, 33,195,225, 4,157,230,120, 47, 16, 66,160,243, 28,129,128,222,150, 54, 24,164, 92, 28, 79, 25, +228,154,113,150, 50, 74, 53, 3, 45,153, 68, 21, 40, 37,240,168,118, 40,165, 49, 42, 33, 79,115, 6, 89,138, 78, 52,235,195,132, + 4,197,133, 60,229,229, 52,101, 67, 10, 84,103,168,131,197,250, 64,237, 3, 39, 58,139,157,121, 49,238, 25, 29, 27,144, 15, 96, +184, 14,131, 53, 80, 5,159, 31,141,121, 46, 79,153,166, 5,163, 44,225,134, 84,145,121,144, 36,168, 65,138,202, 51,210,205,117, +254,141, 11, 23,248,249,231, 94,230,194,133, 93,174, 76, 47,115, 43,159,146, 76,182,208, 58, 67, 43,133, 84, 10,233, 37, 82, 4, + 68, 83, 34,140,129,217, 30,156, 60, 64, 28,220,133,131, 7,188,243,254,123,188,113,235, 22,239,222,190, 11,135,143, 96,177,136, +141,137,233, 89, 36, 61, 49,244,252, 26, 25,254, 28,189,158,240, 62,174,173,178,140,124,115,194,120,156, 83, 46, 99,147,179, 61, + 28, 18,100, 92,153,106,161, 48,222, 19,165,110,113,216, 11, 1,167, 18, 50, 33, 41, 84,194, 24,197, 84,105, 82,149,144, 11, 73, + 34, 69,204,136, 72, 11,180,135, 60, 31,160,101,130, 78, 50,178,116,138, 82,146,172,216, 70, 39, 89, 4, 67,233,140, 68,231,232, + 36, 69, 39, 3,116, 62, 0,227, 80,121, 14, 89,134,212,154,144, 36, 40, 33,240, 34,174,126, 91, 4,171,224, 34,237,219, 71,158, + 99, 23, 34,153,239,164, 92,209, 4,208, 40, 78,218, 37, 45,209,198,108,186,142, 16,160,108, 42,172,181,212,166,229,164,158,145, + 72,205,202, 86, 28,155, 18, 37, 28,169,212,156,153,134,111,159,214,184,198,197,130,158,165, 96, 12, 97, 48,192,181, 49, 18,252, + 51,131, 17,127,127, 85,241,159,110,173,243, 59,167,167,252, 59,147, 53,190,124,114,198,191,191,190,198,223, 59,216,231,183,175, + 94,225,111,223,127,200,111, 63,127, 13,193,245, 95, 13,116, 13,232,252,113,199, 27,187,192, 52, 22,119,149,246, 34, 48, 34, 33, +237,233, 24,207, 31, 39,156,179,150, 39,218,250, 62, 4, 70,165,113, 44,253,244, 1, 32,190, 83,162,162,114,178, 1, 91,107,252, +236,218, 56,146,178,242,130,245,241, 6,153, 20, 81, 10,154, 72,230,203, 51,142, 23, 53,111,220,189, 19, 1,250,174, 15,135,233, +120,146,140, 38,125,196,196,218,250,137, 74, 61,201,216,152,228, 52,109,111, 21,200, 5,117, 31, 46,103,122,129, 86,181,172,227, +232,190,106,126,252,227, 27,228,209,190,199,135,207, 37,143,191, 62,247,129,123, 27,159, 7,251,145,174, 56, 27,197, 16, 28,157, +146, 41,137, 77, 19, 92, 99,144,153,194, 11, 17,119,223,222,163, 18, 21,179,225, 77, 27,253, 51,210, 63, 9,199, 57,159, 80, 60, + 29,178, 35, 50,178, 73, 70, 46, 20, 99,160, 72, 4, 11, 19,208,192, 18,207, 98,213, 33,117,136,194, 55,249,147, 31,231,127,245, + 55,254, 58, 91,187,235,172,230, 21,213,210, 96,203, 22, 65,194,213,107,187, 92,187,184,206,206, 70, 30,173,248, 46,208, 57, 71, +217, 57,102,179,134,206, 89, 14, 14,151, 52, 62, 16,188,167,173, 76, 68, 67,138,128,206, 36,215,118,198,108,140,115, 46,141, 19, +106,235, 9, 61, 89,202, 7, 72,130,167,181, 14, 27, 60,243,170,195, 4,200,165, 96,185,108,162, 74,117, 99,128,107, 13,124,103, +143,159,255,133,143,115, 79,122, 30,182,142,129, 55,152,163, 5, 15,171,150,195,174, 35, 47, 82, 62,249,252, 22,137,140, 32,140, +101,101,185,119,188,194, 54, 6, 43,161,154, 55,164,153, 34, 75, 83,190,240, 83,207, 32,147, 24, 42, 50,202, 82,210, 52, 33, 32, + 72,100,244,133,203,214,226,107,195, 73,217,177,183, 50,172,156,199, 17,131, 94, 38, 90,177,145,197, 0, 27, 41, 4,239,175,106, +230,239,157,145,221,127,196,171,121,202, 39, 46,172, 83, 92, 25,146,140, 51,194,131, 37, 85,145, 97,159, 29, 51,219,159,179,247, +250, 45,234,197,156, 66, 74, 62,243,234, 39,209,215, 54, 73, 47, 76, 57,182,142, 71,166,227,254, 89, 75, 82,151,236, 90,195,239, +126,253, 3, 94,122,113,135,195, 58,230,149,255,235, 87, 39, 12,115, 77, 3,252, 63, 55,207,120,176,106, 9, 85, 69,168, 43,218, +179, 35,194,235,239,240,220,231, 94, 98,224, 44, 95,251, 95,190, 79, 69,135, 66, 60,161,196, 95, 29,242,243,159,221, 33,155,142, + 96,186,206,188,172,217,120,230, 25,190,246,213,175,114,252,250,119,162,237,121, 48,226,139,175,188,198,197,151, 63,206,120,109, +139,170,156,113,227,224, 17,167,203, 51,106,229,185,127, 88, 51,188,184,205,231, 95,249, 36,172,111, 51, 48, 53,191,109,106,178, +214,241,245,197,156,255,166,216, 37, 76,135,228,120, 6, 18,190,119,120,138, 56, 61,224,123,127,245, 87,216,185,182,193,223,250, +211, 59,252, 79,239, 30,146,140,134,108,100, 9, 63, 55, 25, 32, 23, 21,175, 77, 37, 63,163, 19,210, 89,201,236,224,144,253, 44, +165, 73, 19,158, 25,228, 4,231, 16, 66, 98,165,160,171, 26,230,120,222,173, 91, 14,202, 21,123,173,225,164,109, 89, 27, 12,249, +194,230, 26, 71,213,130,177, 82, 72,107, 57, 62, 59,162,109, 74,174, 16,248,124, 62, 38, 79,114, 10,157, 50,154,110,129, 76,177, +193, 83,219,134, 90, 72,218, 52,225, 56, 4,190,221, 85,140,135, 3,108,154,179, 51, 46,240, 62, 48, 12,113,197, 52,206, 18,142, +202,150,183,155,134,195,210,176, 32,112,214,182,164,210,179, 22, 36,185, 2,235, 61,163, 4,158,243,158,103, 85,202, 56, 85,204, +234,138,239,174, 74,246,186,138, 47,175, 42, 58,231, 8, 73, 66, 72,114,130, 46,122, 32,151, 36,168,148,207,227,121,105, 90,240, +188,150,156, 86, 37,243,106,201,172, 58,101,191,238,248,238,170, 66,121,251,120,212,254,249,201, 58,159, 26,141,120,254,210,117, +198,131, 2,147,104,222, 61, 61,227,110,217,114,218, 25, 22, 77,205,161,115,184,230, 12,187, 60,195,204, 43,236,209, 25,246,240, + 33,118,178,137,179,101,236,137, 58, 27,107,182,181, 31, 86,200,255, 57,125,239, 63,170,207, 3, 16,151, 47,178,117,237, 18,215, +243,156, 11,243, 5,207,121, 79,158,167,172,165, 25,235, 58, 97,172, 19, 84,112,196,129,159,196, 57,131, 82, 17, 39,158, 73,205, + 80,104,118,101,194, 68, 39,100, 34, 68,236,180,233, 72,148, 6,227,208,249, 0,165,242, 8,109,209, 26,130, 66,166, 89,252,218, +152,199, 90, 29,172, 69,140,167,224,226, 66, 75,168, 72, 33, 68, 39, 88, 66,236,192,149,192, 33, 56, 1, 78,148,231,216, 65,173, + 35, 29,175,108, 12, 3, 33,104,172, 35,193, 19,172,163,234, 90, 12, 14,108, 84,229,111, 10,193,220, 52, 76,116, 70,103, 91, 62, + 88,158,176,165,115, 90,223, 48,146,158,214, 91, 2,129,131,106,201,239, 31,158,113,235,160,198,121,135,207, 51, 66,112,132,233, +152,224, 28,122, 99,141,207, 78,214,112, 66,241, 31, 93,121,142,255,126,111,143,191,190,187,203,223, 61, 57,226, 63,220,220,230, + 43,139, 5,127,121,235, 34,255,231,193, 62,255,197,149,203,252,239, 15, 30,245,101, 87,141, 98, 65, 20, 61, 14, 53,205, 97, 52, +130, 76,245,216,215, 65, 31, 88,210, 23, 21,107,127,252, 43,124,254,239,143,191,173,151,108, 42, 27,139,179,232,231,182,231, 5, +253,156,239, 62,204,120, 81,199,116,168,221,193, 24,161,115,214, 7, 99, 74,211,161,146,140, 86,104,182, 39, 41,139,230, 17,151, +119,119,120,120,231, 94,124, 51,153, 94,124,103, 1,209,244,224, 23,243,228,190, 8, 29,207, 4, 1,230,214, 19,180, 36,145,146, + 85,229, 24,165, 26,219, 89, 42, 47,158, 0,115,126,210,129, 5, 98, 55, 46, 68, 60, 21,132,167,222,185, 45, 17,135,123,190, 82, + 80,242,169,231,225,220,218,214, 64, 40, 64,200, 72, 92,243,113,204, 51, 32,198,204,154, 92, 65, 3,173,177, 40,149,226,154,158, +200,236,207, 45,105, 93,188, 31, 90,127,100,138, 96, 80, 78,147,104,193,161,243,172, 7,201, 64,192,178,127, 9,178, 92,210,214, +238,201,110,254,252,240,245, 35, 62,222,248,254,247,249,165,139, 95, 96,178, 54,192,217,146,249,209, 49,222,194,157,219, 2,235, + 2,163, 98,135, 52, 81, 72, 9, 34, 8,242, 62,196, 36, 24, 71, 62,201,209, 61, 53, 47,209,178,247,211,199,149,201,225, 89,141, +181, 17,212,179, 51,201, 88,116, 14,173,100,188, 96, 43,193, 64,107,132, 15, 36, 18, 58,235,232, 44,140, 70, 25, 4,207,122,150, +224,179,156,147,181,146,255,235,107,239,242,173, 7, 55, 49, 4,142,218,154,129,214,108, 14, 71,228, 50, 67,231, 41,139,163, 37, +195,201, 24, 33, 37,131, 81,130, 22,146, 70, 72, 78, 15, 78,104, 22,139,232, 58, 84, 18,153, 42,190,240,201, 43,209, 77,145, 9, +164,148, 88, 31,122, 65, 28, 88, 37,105, 83, 73, 85, 75,200, 21,174,141,235, 5,235, 5,173,115, 44,141,162, 72, 97,146, 43,252, +250, 6,249,238, 26, 73,119,133, 27,123, 43,110,188,113,200,231, 15, 13,215,118,167, 20,187,129,201,237, 57, 62,129,209, 48, 99, +247,167, 95,196, 55, 29, 77, 8,148,193, 50,108, 91,244,131, 19,100,158, 98, 69, 28, 63, 94,200, 53,137,151,252,230, 23, 95,228, +209,202, 32, 71,146, 89,166, 88,174,103, 12,148, 98,101, 45,131, 75, 19, 46, 47, 90,174,135,130, 45,189,141,224, 10, 27,191,246, + 51,188, 51, 43,105,170,138,255,224,111,190,200,124, 85,178, 44, 27,156,235, 96, 80,112,244, 15,255, 5,237,149, 43, 28,252,179, +215, 17, 87, 78, 16,163,130,157,151,174,115,248,250,119,158,160, 66,171, 21,255,228, 91, 95,197,125,235,171,216,203, 87,113,179, + 85,164,130,209,224,187, 94,211,245,240, 1, 55,206,142,248,212,171, 63,207,229,221, 11,180,235,107, 12,165,224, 89,224,139,123, +111,115,147,231,201, 70, 35,180, 13,184,151,174, 33,222,168,249,239,254,217,187,252,229, 87,118,249, 59,239, 30, 96,219, 14,225, + 44, 51,165,249,167, 39, 51, 46,102, 57,133, 83,124,236, 74,206, 51,151,214,185,168, 53,223,126,247, 77,182, 54,118,152,121,207, +133,209,128, 82,198, 14, 89, 21, 25,157,181,116,198,210,228, 19,156,168, 89, 75, 11,174,140, 52,167, 50,112, 97, 48, 65, 3,243, +176, 98,115,125,155,180, 42,184,140,194,119, 53,169,119,100,162,183,216,246, 57,243,193, 25, 72, 83, 66,103, 56, 9, 29,161,103, +115,111, 56,143,233, 44,178, 79, 62, 20, 46,176,240, 29, 77,127,206,214,120, 78, 59, 71,112,150,210, 56,146, 52,163,114, 14, 17, + 20, 99, 60,155,195, 33,211, 44,163,109, 13,149,202, 64,181,188, 97, 60,198,247, 90,156,115, 55, 80,240,100, 56,214, 70, 3,118, + 16,124, 58,207,216, 21,146,113,162, 72,139, 33,165,183, 20, 98,131,183,155, 99,132,214, 72,162, 96, 75,107,205,165,241,144,204, +121, 46,122, 24,121, 16, 85,205,101,235,185,215, 46, 16, 93,195,237,211,135, 84,135, 39,188,183,172,120,111,255, 4,149,128,169, +154,168,140, 95,156,112,174,210,249, 97,172,120,241, 19,138,118,248,136, 7, 62,252,168,127,111, 3,179,178,230,142,243,200,182, + 67, 89,195,101, 41,209,137,166, 9,130,179,166, 35, 65,160,149, 34,113,158, 84, 71,226,104,176, 30,165, 3, 66,122,132,140, 36, + 75,231, 3, 9,146, 36, 29, 18,108,131, 74, 7, 8,153, 18, 66,136,235, 5,145, 34,164, 67, 40, 5,198, 68,127,191,236, 31, 89, +154, 64, 83,130,206,145, 82,225, 93, 11, 40,130,181,136,158,143, 17, 2, 49, 92, 71, 43, 86,157,167, 9,129, 89,103,232, 84,204, +101, 95,153, 24, 36,212,118, 45,198, 70,226, 94,133,165,232,101,139,247,156, 97,164, 82,238, 87, 51,102,245,146, 84, 42, 62,168, +207,208, 66,112, 22, 28,101, 91,210, 25,203,235,103, 11,110, 63, 92,224,187,152, 65, 18, 86, 51,194,100,147,176,170,160,200,176, +167, 51,190, 97, 60, 63,187, 53,229,111, 62,186,203,127,187,115,137,191,189,255,136,223,218,186,192,223, 61, 57,226, 55, 55, 47, +240,229,195, 71,252,187, 91,155,252,157,253, 99,126,227,210, 46,138,209,115, 95,194,119,177,155,117, 54, 94,232, 7,195,152, 23, + 46, 68, 44,234,231,187,117,215,211,211,126, 82, 81,255,145, 65, 48,105, 52, 42,247,140,111, 66,140, 23,140, 49,160,154,193,176, + 96, 99,178,206, 88, 4, 58, 33,120,118,247, 42,137, 82, 20,197, 0,145, 38,140, 6, 25,203,198, 80,117, 13,206,195, 73,240,125, + 18, 27, 79,132,126,193,245, 33, 49,231,161, 37, 46,142,204, 73, 40, 3,164,131, 20,239, 2, 77, 27,177,166, 85, 99, 49,153,142, + 99,122,111,250,209,116,127,197,210, 58,250,199,165,140,143,253, 60, 4, 69,246, 48,115, 84,175, 72,127, 42,181,174,231,199,208, + 17,239,131, 15, 63, 8,122, 73,116, 20,102,232, 12,167, 85,159, 95, 46,216, 45, 4, 71,173,103, 43,133, 60, 17, 17,119,159,193, + 56, 81, 84,166,143,179,125,122,167,254,209,131, 84,162, 49, 45, 84,193,177,155,104,150, 62,208,122, 71,234, 37,171,208,197, 34, + 37, 60,104, 98,148,172,251,241, 35,248, 59,111,191,207,167,126,238,103, 25,142, 10,118, 54,214, 73,178, 12,103, 96,243,194, 26, + 73,162,201, 18,141, 18,146, 60,141, 99, 48, 2, 88, 23,250, 61,116,212,104,139, 62,197,206,135,120,225,132,128, 23,176,168, 13, +165, 13, 84, 33,208,250,152,230, 38,129,129,150, 88, 23,176,190,119, 10,218,248,124,183, 54,224,157, 64,229, 41,149,130, 47,127, +229,117,190,118,231, 38,167,109,203,237,179, 37,169,144,108,143, 70,116,206,144, 74, 5, 2,150,101, 73, 87,213, 52,166, 99, 57, + 43,169,140,101, 53, 95, 32, 16,188,246,234,115,124,246,181,231,216,125,102, 7,165, 36,182,115, 76,134, 25, 82,168, 40,133,176, +177,163,213, 90,245,246, 59, 79, 75,136,108,111, 2, 66,120, 52,129, 68,123,164,128, 65, 42, 25,166,130,253,147,150,121, 11, 42, + 83, 36, 91, 3,212,229, 9,179, 44, 99, 88, 40,242, 97,138,203, 4,170,181,100, 37,100, 13,164, 85, 75,162, 3,162, 72,104,206, + 42, 86,119, 78, 57,123,247, 30,195,195, 37,195,221, 33, 94, 9, 38,169, 98,154,105,214,165,228, 84, 9, 78,133,100,238,161,242, +129,131,206, 81,181, 14, 21, 4, 63,181, 57,100, 60,204,184, 58, 29, 48, 65, 49,237, 28,239, 46, 44,143, 42,207,137, 87,212, 94, + 81, 76,167,232,193,152,201,231, 95, 99,109, 52,225,149,159,126,137,245,221, 93,142,110,220,230,180, 58,163,104, 20, 7,181,197, +250,238, 9,255, 27,112,203, 57,214,212,184,182,194,183, 29,206, 70,107,142,111, 43,252,254, 62, 15,125,205, 67,161,121, 36, 20, +186,110,248,189,217, 25,223,156, 47,216,117, 21, 74, 15,200, 58,195, 39, 22, 11,218, 79,127,140,175,220,221,231,247,254,223, 63, +160,222,187, 11,123,119, 16,123,247,225,225, 7,136,211,135,212,203, 83,110, 39, 99,126,126,107,196,118,154,144, 2,215, 77, 66, + 53, 59,225,127,120,247,117, 94, 28,111,210,165,113,109,227, 66, 96,225, 28,251, 58, 97,101, 3,206, 71,254,193,206,184, 32, 15, + 32,180, 96,101, 44,153, 82,132,224, 81,214, 50,234,106,138,224, 80, 2,132,105, 81, 34, 65, 40,137,237, 58,140,119, 24,235, 88, +152,150,219,109,205, 94, 91, 99, 85, 66,161, 37,222,244,217, 11,198,145,166,138,202, 6,150,117,139, 50, 6,233, 91, 70,190, 33, +119, 29,151,165, 99,214,118, 40,161,120,175, 92, 33, 72,120,102, 52, 96, 71, 39,180,120,142,218,134, 63,154,205,120,189,105,159, +100, 60, 52,117,212,228,232,132,103,242, 2,225, 45,175,201,192,179, 90,144, 73, 9,198,177, 46, 37, 39,198,240,103,139,146, 67, +235, 80, 42,160,210, 20,157, 15,217,205, 11,174,101,154, 23,210, 9, 69,185, 96,179, 53, 76,150, 43,166, 77,197,165,174, 99,125, +126,196,206,170, 34,239, 58, 46, 34, 40,138,140, 71,171, 50, 94,123,123, 11,220, 15,116,213, 79,251,223,127,194, 77,126, 4,110, +243,248,179,214,136, 62,162, 22, 41, 17,222, 16, 74, 67,125, 86,179,119, 54, 99, 71, 64,235, 28, 71,193,209, 52,142, 36,141,185, +243,206,217,152,220, 71,143,208,150, 18, 47, 37, 99, 1, 67,149, 34,108, 67,174, 83, 68,240,136, 16, 80, 74,161,180,198,155, 14, +165,211,248,255, 42, 13, 66, 69, 56,143, 78, 30,175, 73, 67, 79, 50, 21, 8,130, 51, 8,165, 9, 62, 32,164,196, 57,135,119, 29, + 72,133,107, 27, 42,215,178,232, 90,142, 92, 71,165, 21, 43,211, 97,156,101, 86, 87,212,214, 48,175, 75, 90, 99, 56, 94,157,114, + 86, 47,113, 93, 76, 13,205,164,162,243,158,198, 25, 58, 91, 71, 62,153,141,211,202,224, 28,243,186, 98, 86,118, 60,168, 27,190, +117,127,134,171, 75,124,215,197,233,136,245, 4,215,198,201,185, 51, 80,164, 8, 27,120, 40, 2,191,144, 42,254,215,179, 57,255, +229,133,203,252,131,249, 41,127,105,178,206, 31,207,102,124,122, 48,224,125,239,249,226,120,200,239, 60,122,216,239,212,207,119, +232, 66,199, 87, 40, 43,162, 10, 83,233, 39,123,225, 44,235, 81,174,254, 39,238, 99,127,116, 81,239, 49,168, 42, 34, 95,133, 76, +158, 40,202,243,130, 43, 91, 35,156,235,152, 12, 70, 60, 63,216, 96,168, 82, 54, 46,108,176,190, 49, 97, 56,202,169, 92, 32,209, + 2,141,102, 81, 87,180,206,210,150,203, 88,212,211,254,196,123, 14,157,193, 61,177,111,133,168, 48, 71, 38,209,246, 41, 4,100, + 58,138, 78,179, 62,116, 70,136, 72,116,115, 54,118,194,217, 8, 46,108,194,120,210,155, 68,237, 19,113,153, 16,113,167, 46,228, + 19, 12, 46,125,222,186,232,223,222, 46, 64,222, 71,173,202,143,232, 17,156, 3,153,227, 68,212, 45,100, 82,162,164,199, 42,193, +118,166, 24,249,192, 44, 4,174,104, 1, 38,112,220, 24,130,147, 79,118,233,231,187,245,115, 84,237,121, 56, 75, 15, 87,223, 72, + 51, 14, 86,134, 81, 34, 24, 1,123,101,199, 52, 81,120,239,104, 90, 8,231, 62,254,243,215,246,199,124,172,239,110,113,245,185, +171, 28, 30,159,209,118, 22,235,162, 53,195, 7, 98,161,245,129, 60,213, 81,200,229, 3,109,239,130, 8, 38,250,194,131, 7,153, +136, 40,228,203, 20, 78, 8,188,141,135, 68, 21, 4,173,245,116,198,163, 19, 25,227,101,125,164,205,121, 41,113, 82,112,218,121, + 26, 36, 22,129, 81, 26,169, 5, 70, 4,246, 30,156, 98,219,142,141,124,192, 70,158,145,234, 24,178, 32,133, 68, 8,197,201,106, +201,170,109,232, 92, 71,211, 52, 52,109,131,176,130,203, 59, 59, 92,187,180,197,178, 54,220,188,125,192,173, 27,247,121,120,255, +128,147,147,134,139,187, 19,166,131,140,166,179, 4, 60,169,142,118,186, 32,192, 17,217,251,238, 28, 84, 67, 32,147,144, 73, 65, +145, 18,243,236, 19,201,234,246, 25,234,168, 36,109, 3,173, 13, 24,231,168, 51,197, 65, 90,176,187, 54,192, 6,129,210,144,109, +174,193, 89, 64,172, 26,228, 78, 70,216, 26,226,157,195, 46, 27,138,105,193, 96,154,197, 29,108,174, 24, 37, 41,131, 32, 72, 31, +174,152, 47,150,124,235,205, 7,248, 89,205,222,237, 19,150,143, 78, 80,171,146,176,114,236, 92, 24, 81,100,154,149, 11,116, 85, +199,119,206,106,238,204, 42,188,146, 12, 6, 57, 27,163,148, 53, 9, 83, 13,133, 51,252,133,181,130, 23, 54,166, 20,105, 66,121, +237, 89, 84, 39, 88,203, 4,207,174, 13,217,185,176,195,238, 51,151,152, 92,216,198, 14,167,204,100, 17,119,138,182,251, 16, 74, +244, 49, 63,252,240,144,166, 44,121,235,108,201, 31,180, 53,223, 52,146, 67, 33, 25, 89,199,206, 56, 97, 83, 6,198,153,226,149, +179, 51,174,143,135,108,109, 92,100,111, 56,197,222,125, 31, 30, 62,130,114, 9,143, 30, 33,142, 14,145,237, 9,121,217,241,146, + 30,145, 90,143, 50,142,113, 93,241, 41, 5, 55,170, 37, 95,105, 21, 23, 7, 9,251,198,114,199, 7,206, 42, 71,139,100, 17, 34, +187,123,144, 72, 70, 90, 35,137,191,255,169, 16,148,182,163, 51,134,196,180, 12,130, 39, 13, 17,141,235,157,197, 56,135,117,142, +218,118,236, 45, 79, 40,125,199, 94, 87,115,234, 13,123,171,154,205, 52, 69, 56, 71, 98, 12, 74,107,172,113,236,173,150,204,155, +146,196, 25,214, 77,139,176,158,173, 96, 88,115,134, 13, 33,120, 80, 46,168,108, 75, 73, 74,174,225, 97, 83, 49, 43, 87,188, 63, + 59,225,171,243, 83,154,122, 21,187,197,166,238, 29, 65, 30,145,103, 12,165, 68, 4,199,101, 60,133,130,129,183, 36, 33,240,230, +106,193, 55, 22, 53,111,119, 45,210,117, 72,157,162, 84,194,122,154,176,155,142, 25,203,132,237, 84,115, 17,201,150, 82,172, 15, + 10, 10,149,162, 59, 19, 41,154,190,141, 54,208, 76, 50, 29,143,112,227, 1, 71, 70, 34,122, 97,240,143, 42,236, 63,224,131,255, + 17, 30,120,249,209, 98,175, 53,164,186, 39,223, 41,240, 50, 14, 37,234, 54, 34,184,157,225, 65,211,114,203, 72, 86, 4,190,223, + 6, 58, 97, 88,217, 88,124,141,115,184,224, 64,169, 88, 12,165, 64, 6, 72,137,144,171, 92, 72,164, 80,104, 2, 34,196,107,153, +210, 89,244,134, 88, 19, 15, 18, 62,230,117, 8,235,162, 41, 85, 74,130,105,192,199,159, 39,164, 36,116,109, 63,232,140,164, 58, +111, 44,222, 26,218,224, 40, 77,199,158,181,236, 57, 75,109, 45,149,139,120, 91, 33, 98,166,124,213,149,156,214, 51, 78, 76,195, +254,114, 70,235, 13,141,119,145,246,169, 37,137,243,204,109, 36,148, 58, 60, 74, 40,108,215,178,242, 14, 17, 60,137,240,220,173, + 58, 90,215, 18, 76, 31,196,163, 1,157, 18,154, 14,145,100, 80, 25,196,184, 64,212, 13,183,117,202,127,188,177,206,255,120,176, +207,191, 54,200,248,227,101,201,181, 60,101,134, 39,183, 29,255,240,228,132, 79, 76,167, 40, 38,207,127,233,113,135,238,109,244, +154, 43, 31,187,201,243,142, 80,244, 5,160,237,250, 83,229,191, 98, 81,215,242, 73,241, 13, 1, 17, 92,124, 20,215, 47,241,241, + 75, 27,124,226,153, 23,184, 52,221,226,165,173, 93,158, 25,111, 34,114,205,181,237,117, 86,222,210,153,192,104, 50, 32, 40,205, +131,131, 67,214,199, 99,110,159, 29, 96, 86,125,234, 88,103,226,207, 14, 42, 30, 58,240,209,190,117,238,137, 23,196, 19,155, 82, +253,247,137,184,140, 10, 34,118,242, 90, 70, 53,250,170,141,127, 63, 30,193,120, 8, 69,191, 46, 88,244, 39,235,243, 81, 55, 50, +254,172,115,225, 95,146, 63,225,212, 43,221,191,145, 93,188, 63, 79, 67,100, 30, 63, 31, 30, 66,252,217, 90, 4, 70, 69, 84, 87, +174,245, 9, 97,151,181, 70,121,207,134,138, 2,158,121,235, 34, 97,142,240,100, 5,114, 14,146,120,124,104,178,208, 70,162,220, + 84, 11,150, 33,230,239,166,137, 96,213, 6,188, 10, 76,148,160, 13,125, 34,158, 23, 63, 20, 23,251,244,199,205,239,191,195, 23, +255,173, 95, 97, 99, 50,100, 89, 54, 49,181,169,179,116,141,137,193, 10, 66,145, 38, 9,131, 76, 71,202,174, 13,125, 94, 76, 64, +247, 2, 63,173, 98, 82,152, 84, 18,215,249,216,125, 3,193,249, 56,198, 31,166, 12,138,148,198,249,199,254,112, 47, 4,101,231, +104,250,116,218,243, 19,123,227, 29, 89,170, 8, 33,161, 59,171, 65,138, 24, 24,163, 53, 73, 63,142, 12,193, 33,148,100,160, 52, + 74,105, 6,217,128,141,181, 45, 70,147, 49,235,147,156,189,253, 51, 30, 62, 58, 0, 41, 41,242,156,166,233,176,193, 82,163,216, +221, 26,225,131, 71, 17, 80, 74,162,117, 68,224, 57,231,232,140,165, 53, 54,134,163,244,145,188, 82, 4,180, 20,104, 17, 51,230, +147, 66,177, 56,108, 24,165,146,237, 92,113, 57, 75,240, 14, 94,155, 36,108, 21,154, 3, 27,240, 62,142,234,241, 30, 70,154,230, +210, 4, 51,200, 9, 89,130, 30, 21,136,237, 9, 97,154, 35,134, 9,153,243, 80,183, 4,235, 88,168,192,187, 66,112,253,229, 29, +214,114,201,149,205,130,143,125,108,139,112, 92,177, 38, 2, 97, 99,196,126, 23,120,111,105,120,115,222, 50, 51,129,221,164, 99, +224, 29,207,155, 57,203,147, 67,158, 75,115,182,117,202,115, 4, 46, 21,145,184,101,141,225,189,178, 68, 59,199,154, 15, 12,132, + 98, 82,228, 20,137,100, 45,207,216, 42, 82, 46, 76, 6, 12, 54, 38, 28, 39, 99, 12, 22,223,118, 63,144, 4,198,226, 12,230, 51, +186,170, 36,156,158, 16,164,163,194,243,234,112,196, 90,146, 80, 32, 73, 19,141,106, 59,210, 97,194, 48, 36,220,169,142,225,228, + 36,254,238,104, 13,139, 5,161,172,185,115,188, 79,222,204,217,182,138, 20, 40,178,140,137,119,108,183, 43, 30, 46, 79,185,217, +118, 28, 90,203,101,239,216, 54, 13,223,245,130,147,182,230,154,106,153, 91,197, 51,169, 36, 85, 26,109, 3,214, 25,172,243, 28, +149, 11, 26,111,217, 49, 29,162,109, 81,222, 48, 91,205, 16, 33,112,216,173,120,103,254,136, 42, 4,238, 45, 78,121, 48, 63,226, +102,181,162,170,150, 72, 17,176,171, 37,251,213,130,179,206,241, 96,118,130, 13,158, 77,211,209,181, 45,181, 51, 76,188,193,135, +192, 26,129,196,118,100,182,161,241,112,228,106,206, 26,195,119,246,239,242,181, 71,247,249,254,236,152,114,177,128, 85, 5, 39, + 11, 88,172, 98,151,222, 58,200, 51,108,128, 81,154,241, 65,215,113,217, 55,184,186,102,102, 12, 15,218,154,127, 81,150, 72,211, + 34,130, 67, 57,131,212, 25, 87,211,140,105,158,147,250,192, 40, 75,217, 29, 20,108, 37, 3,134,131, 28,229, 37, 88,131,176, 6, +111, 59,172,181,100,105, 74,161, 21,147,193,136,106,154,115, 38,250, 61,126, 80,209, 77,209, 95,167, 62, 90,204,197,211, 94,248, +159,112, 67,107,132,146,113, 74,231, 69,236,137,212,147, 97,188, 8, 14,124, 64,184,216,136,148,139, 6, 23, 60,123,157,231, 65, +219, 17,122,108,107,227,162, 69,239,156,176, 23, 3,158, 2,107, 74, 19, 76,135, 14, 14, 37, 53, 88, 23, 83,191, 67, 76,100, 59, + 47,238, 16, 16, 82, 19,188, 69, 4,240,214, 32, 84,130,183, 13, 8,133,235,237,213, 65, 42, 92,215,225,123, 79, 73,227, 90,170, +174,228,160,173,184,225, 91,218, 52,227,172, 89,225,172,165, 54,134, 89,189,192,226,153,155,150,133,235,184,187, 92,177,244,130, +121,185,140,217,101, 34,170,107,103,222, 48,214, 26, 23, 60, 2,201,170,169,168,112, 24,239, 80, 66,114, 84, 55,200, 34,225,168, + 1,239,187,184,254,241, 50, 70, 69, 75,141,176, 6, 38, 3,196,217, 2,177, 62,229, 25,219,242,181,206,240,249, 34,231,173,206, +178, 50, 53, 55,140,163,236, 58, 30, 24,207, 84, 4,190,182, 56, 65,177,118,237, 75, 36,170, 7,195,232,152,231,157,232,120, 83, +250,195,227, 93, 99,162,255,208,152,127,181, 0,152,180,207, 92,215, 17, 82, 35,242, 49, 92,186,204,175,190,252, 9, 94,189,250, + 50,105, 54, 96,123,123,155, 75,235,155,120, 18,158,189,180, 78, 35, 36,237,170,102, 48,202,105,173, 71, 42, 73, 38,115,234,174, +197, 55, 45,167,222,198, 39,227,220,158,161,101, 31,129,218, 39,191,185,238,201,232, 95,245, 34,183,200,246,140,111,184,243,119, +176,212, 49,113, 45, 81,113, 12,223,118,209,214,103, 2, 44, 87, 96,234, 15,171,216,149, 0,145,244,157,115,255,174, 21, 60,225, +183,107,221,115,220, 93, 47,158,179, 63,228,249,136,246,182,221, 97,202,172,243, 60,167, 21, 19,165, 24, 4,137, 14, 81,220,230, +140, 99, 34, 36,163, 4, 78,218,126,243,117, 14,245,177,246,169,207, 79, 17,250, 68,191, 43, 62, 15,101, 8,176,169,160,108, 2, +109, 48,100, 58,193,153, 62,128,230, 39,116,234, 0,107,155,235,188,242,202,139, 4, 41, 72,115,205,198,120, 72,231, 2,182,243, + 12, 38, 3, 46,175,143, 81, 90,160, 84,204, 74,246,189, 67,210,248,128,150, 17,214,160, 50,137, 12, 49, 94, 85,246,246, 16, 84, +188,127,137, 76,200,242,120, 40,136, 83, 50, 65, 32,224, 2, 72, 33,226, 83, 74,160, 72, 53,227, 60, 69,202, 64, 58, 76, 57,126, +112,138, 18, 10, 37,101, 20,188, 16,185, 5, 74,106, 70,249,144,193, 96,192,179,187,151,248,245,159,249, 56,155, 27, 99,246,143, + 22, 28,157,206, 24, 78, 70,140, 39, 35,202,178,162,115, 29, 27, 59,219,236, 92,218,196, 56, 79,145, 39,140,138,148, 36,145, 24, + 27, 21,175,214,122, 66,159, 36,230, 93, 92, 25, 9, 31,176, 54,178, 18,206,175, 87, 74, 9,150,165,165,107, 2,249, 32,137, 57, +209, 90,146, 56,203,254,157, 83,228,170,229,221, 59,103,156,236,159,177,153, 41, 90, 25,184, 51,144,188,227, 36,199, 78,114, 88, + 59,110,189,115,143, 71,247,246, 56,156,149,148,214, 82,183,150,170, 53, 36,211, 1, 11, 1,223,190,241,136,236,246, 13, 62,247, +252, 37,254,198, 87,222,230,209, 59,183,105,131,103, 88,149, 36,121,198,123,179,134, 3,165, 56, 10,129,195, 32,248,181,171, 5, +191,126,109,155,183, 31, 60,228,155, 15,110,242, 79,238,222, 35,168, 0, 94,112, 57,139,194,179,251, 7,199,220, 95, 44, 24, 59, +199,192, 88,148,233,200, 2,140,181,230, 74, 62,224,103,183,175,176,150,167,180,137,198,111, 13, 56, 45,214,177,178, 32,212,154, + 96, 10,144,105, 47,191,139,204,242, 48, 59, 37,156, 30, 18,116,198,107,215, 95,100,153, 77,216, 17,142, 76, 69,173,132, 74, 20, +171,214, 82,174,206,184, 89,183,132,229, 28,202,138,160,227,117, 39,216,128, 43, 27,190,183,127, 68, 48, 51, 46,167, 5, 35, 60, +197,104,140, 91,157, 50, 59,222,227,247, 15,143,120,239,116,193,221,206,242,229,131, 7, 60, 76, 50, 78, 44,220, 53,134, 55,218, +142, 63, 41, 27,254,164,178,188, 42, 12,202, 59,230,229,138,247,203,134,133, 89,226,219,154,172,107,152,205, 23, 20, 74,242,246, +242,140,119,206, 78, 56,237, 12,247,151,103,188,123, 52,227,189,211, 19,110,221,220,227,224,116,197,189,147, 67, 6,218, 18, 92, +199, 89,181,192,154, 21, 89, 91,225, 77, 67,144,144, 4,135,145, 10,237, 29,185,247,132,174, 70, 59, 3,166,194,116, 13,111,150, +103,204,170, 25, 77, 85,225,202, 10,206,106, 68, 91,193,193,105,116,233,204, 74, 68,103,160,169, 48,153,100,133, 96, 89,151,188, + 93, 54,188, 55, 91,240, 94,181,226,187,203, 21,194,180, 8,103, 17,109,131,116, 6, 41, 3, 23,138, 2,229, 2, 90, 72, 10, 31, +120, 46, 75, 89, 83, 58,226,175,149, 66,167, 41,190,109,168, 93,139, 21, 14,225, 29,211, 98, 68,162, 37,195, 44,229, 76, 8,150, + 66, 64,145, 65, 58, 64, 36, 3, 68, 26,217,242,194,187, 15,129,109,158,190,233, 31, 2,184,121,220,173, 39,125, 81,239,127,199, + 63,180, 44, 12, 1, 17,250, 70, 40,213,143,243, 49,132,239,192,122,188,131,163,101,199, 28, 71,129,196, 27, 75,135,196, 58,199, + 80, 41,202,174,166,243,150,156,136, 69,238,156, 65, 17,245, 8, 65, 4,148, 84,216,166,126,172,213,242,166,137,235, 63,215, 70, + 1,154,179, 56,215, 98, 93, 3, 82,198, 3,159,169,113,128, 17,158,186,171, 57,107, 87, 84,206,114, 11,199,126, 87,113, 96,106, +206, 90, 75,101,106,142,154,101,100,181,183, 37,165,183,156,214, 53,149,117,172,130,195,121,137, 12,129,153, 53, 52,182,139, 61, +241,249, 52,136, 64, 16,158,178,139,142,158,101,137,101, 66,182, 0, 0, 32, 0, 73, 68, 65, 84,221, 50,144,138, 34, 4, 76,170, +153, 45,226,227, 15,244, 73,154, 26, 68, 62, 64,204,150,136,173, 41,226,224,132,114,109,194,199, 21,188,141, 70,116, 21,211, 44, +163,180, 29, 59, 50,229,253,114,198, 80, 69,131,171, 98,227,249, 47,209,217, 39, 59,117,161, 99, 1,234,122,111,186,137, 72, 70, +234, 85, 28, 19,201,126, 7,126, 14,148,249,151,234,214,243, 88, 72,133,131, 98,130,152,174,243,201,171,151,120,118,243, 25,132, + 78, 80, 42,225,226,214, 26,193,121,116, 8,204,235,142, 34, 19,104,173,168,106, 75, 72, 5,243, 85, 75, 85,119,120, 99, 25,164, +146, 91,179,167,226, 8,207, 5,120,178,127,171,157,135,151,156,219,191,242, 65,111, 13,147,125, 26, 90,159, 43,158,244,143, 57, + 75,122, 92, 99,136,187,250,197, 18,202, 50,222, 62, 10,107,145, 50,190,179,147, 36, 30,126,206,139, 56,125,145, 63,143,167, 85, +105,156, 24,164,242, 7, 11,187,148,224, 53, 11,103, 89, 79, 18, 54,165, 32, 11, 17, 62,227, 9,236, 8,193,153, 11,140, 3, 56, + 33,217,212,146, 35,215,119,253,231,157,250,227,207,189, 69,174, 47,244,174, 47,252, 57, 34,238,151, 91, 67,154, 43,180, 82, 49, +158,150,222, 3,255,231, 0, 16,188,251,221,183,248,236,175,254, 2,219,235, 19,164,146,204, 87, 45,211,233,144,147,147, 25,243, +211, 37,181, 9, 72, 21, 59,210,104, 3, 11, 49,158, 84, 42,138, 92,147,100, 18,225,162, 11,221,138,152,188,150,104,141, 22, 10, +111, 61, 74,198, 16,149,170, 54,120,231,113,206,211,117, 30,173, 37, 74, 62,185, 13,243,140, 76,235,152, 1, 36, 20,109, 29, 40, + 23,101,223, 97, 4,178, 36,165, 72, 7,140, 39, 19, 38,211,117,158,123,254, 25, 62,247,242, 46,139,147,146,111,188,127,135,116, +144, 81,140, 6,180,109,199, 98, 85, 49,152, 12,185,120,113,155,225,184,192,247,187,251,213, 50, 94,168, 7, 89, 18,197,123, 62, + 18,242,140,141, 5,221,121,143,235, 85,253,198, 58,156, 11, 72, 41, 73,180, 34, 77, 52,227, 65, 74,146, 42,208,113, 60, 88, 87, + 29,109,211,113,116,255,144, 91, 55,239,176, 56, 61,225,224,225,125,110,223,219,231,237,219, 15,248,214, 91, 31,112,156,175,177, + 51, 46,152, 37,154,183, 66,194,151,191,250, 45,190,254, 63,255, 9, 95,189,241, 46,255,232, 15, 94,231, 31,253,227,111, 35, 86, +199,188,124,249, 58, 39,251,167,252,155,175,190, 76, 33, 52,191,255,213,111,112,229,234,101, 62,251,185, 23,248,245,237, 33,127, + 38,128, 11, 67,202,165,229,229, 73,134, 82,154, 95, 30,166, 56, 31,248,238,253, 3,188, 53,124,236,234, 85,220,100,131, 67, 2, +218, 25,238, 86, 45,167,171,146,235,197,152, 32, 4, 3, 33, 49, 38,134,136,164, 82,242,233,141, 93, 46,236,236,176, 57, 28,115, +211, 90,110,184, 12, 49,154, 64,161, 48, 58,193,111, 20, 20, 91,235,236, 92,219,129,209, 58, 45, 26, 86, 22,164, 37, 4,201,228, +217,103,185, 62, 78, 25, 11, 73,103, 59, 18,173,217, 47, 87, 44,155,150,133,149,124,176,154, 69,104,211,108, 21,131, 44,130, 36, +120,219, 31,236, 4,111,207, 86, 92, 80, 13, 27, 74,211, 85, 37,143, 22,135,252,189,123, 71,188,249, 96, 70,117, 60,231,232,224, + 16,237,107, 46, 54,103, 44,110,220,160,109,103,160, 4, 66, 39, 8,219,242,237,229,140,163,166,230,165, 34,227, 15,110,189,135, +246,129,213,252,152,211,249,130,155, 85,203, 91,243, 5,239,150, 21, 95,155,151,188,126,182,228,221,121,205,131,217,146,217,106, +137,107,107,156,109,169,170,146,155,243,154,253,182, 37,152,138, 60,213,236, 74,201, 84,128,113,150,160, 20,170,107, 81,214,112, +236, 45, 27,166,161, 67, 64,215, 50,111,151,212,139,138, 85, 85, 33,124, 0,231, 16, 94,192,188,129,118, 5, 93,141,176, 29, 84, + 37,156,158, 33, 14,143,240,103, 11,192,227,203,138,122,181,164, 92, 44, 16,139, 5, 98,181,132,186, 66, 46, 22,136,174, 69, 9, +195,202,117,172,107,141,144, 9, 74,192, 69, 45,217, 17,158,161, 76,145, 90, 18,234,146, 96, 29, 70,128,212,138, 81,154, 33,128, + 66,105, 10,165,113,161,195,100,138,153,241,136, 44,129, 97, 6,163, 17, 66,166, 72,149, 34,113, 72,231, 62, 4,181,209, 79, 21, +118,253,195, 10,187,142, 35,115,126, 72,136,140,112, 46,214, 20, 41, 99,167, 46,162, 72, 48,142,203, 29,162,234,192, 5,170, 85, +203,253,202,176,232, 12, 34, 4,130, 12,204,155, 38,114,230, 3,116,109, 75,227, 12,185, 15,184,224,232,188, 65,122,168,187, 42, +166, 45, 58,135,235,106,156,233, 98, 65,247,142,174, 94, 17,132,199, 88,139, 13,142,206, 89, 90,111,113,222,177,104, 86,148,109, +195,153, 45,217, 55, 45,111,119, 75,110, 54, 43,110,149, 53,119,203,154,210,118,220,238, 58,150,173,161,242,142, 86, 73,102,171, + 18, 43,161,179, 22,101, 35,236,108,209,212,148,222,227,181,228, 65, 85,115, 49, 75, 56,181,134,182,173,177, 33,224,149, 64,219, +232,199, 55,214, 49, 85, 10, 33, 96,179, 72,217,171, 76, 20, 81,123,143, 48, 22,108, 28,193,203,249, 10,177, 54, 69, 30,204, 56, + 77, 20, 98, 49,199, 14,134,172,230,115,188,210,156, 52,115,100,154, 49, 11,158,114,121,134, 98,116,237, 75,232,243, 78,189, 79, + 87,235,179,101,177, 29,212, 77,236,222,109, 63,218, 78, 84,180,141,105,126, 44,192,228, 7, 62,178, 52,238,184, 19, 21, 79,132, +227, 33,131,233, 26,175, 93,190,198,100,109, 28, 35, 59, 61, 12, 6, 57,178, 23, 64,248,186, 69, 43,201, 96,152, 97,156,229,204, +121,170,101, 75, 23, 12, 78,192,114,181,228,160, 93, 96,170,174,183,204,201, 39,209,169,231,176, 27,211, 19,230,210, 34, 22,239, +252,188, 8,247, 59, 23,165,123,206,125,218, 43, 80,251,125,181, 51, 31,142,150,253, 97,235, 4, 21,161,251, 72,221, 23,243, 36, + 58, 6, 92,128, 81,209,231,201,247,197,190,238,126,112,212,237, 92, 31, 75,171,217, 78, 20,195, 30,206,210,187,238, 48, 6,118, + 18,193,125,239, 24,186, 64, 30, 60, 71, 82,224,186,167,118,233,231,157,250,211, 74,246,126,109, 18,124,192,132, 56,238, 86,104, +108,176,113,244, 29,252, 19,220,237,159, 51,170,113,184, 54,225,226,181, 93,138, 36,199, 56,195,254,253, 35,188, 51, 12, 6, 35, + 28, 48,155, 55,120, 4,147,113,134, 16,130,245, 34, 65, 8, 65,158,107,148, 82,100,153, 36,207, 20,193,157, 3,102, 4, 89, 46, + 73, 19, 69,150, 69, 14,130, 53,158,209, 80, 19,130, 64, 72, 17, 71,102, 65, 60, 30,225,159,199,218, 7,235,217,159,149,125, 34, +159, 96, 48, 25, 50,154, 76, 24, 77,198,140, 38, 99,146, 60, 69,167, 5,173,177,236,205, 86,204, 77, 96, 48, 28,130, 20, 72, 47, + 73,146,132,233,250,152, 52, 77,104, 27,195,236,116,193,219,239,191,203,255,246, 71, 95,231, 79,254,244, 13, 82, 20,235, 59,107, +140,139,244,241,232,207, 67,175,118,117, 44,202,142,186, 49,148,165,161,169, 45,214,248, 72,197,235,237, 55, 39,173,231, 99,157, +225,170,246,188, 25, 60,243,170,102,181,170, 89,149, 21,117,187, 36, 81, 9,243,213, 25, 15, 14,247,216,223,127,196,173,218,241, + 96, 1,126,123,196, 34, 75,176,207, 60, 75,158,150, 28,190,254,128,240, 65, 75, 56,171,184,251,157, 61, 62,243,133, 87,184,242, +252, 46, 97,125,192,157,121, 69,125,122, 76, 97,106,222,185,117,159, 7,143, 30,242,245, 59, 15, 57,122,255, 30,215,240,252,123, + 47, 61, 67, 45,224, 31,191,243,128, 71,139, 57,111,207,106,158,219,216,228, 23, 63,243,113, 54, 94,125,158,181,235,187,220,244, +130,123,247,238,240,193,131, 91,124,112,114, 76,131,103, 39, 31,240, 64,167, 44,218, 21, 50,209,188, 52, 93, 39, 77,115,106,107, +248, 78,215,241,102, 82,176,157,101, 92,209,130,157,196,144,143, 51,198,211, 9,195,124,192,246,198,144,193, 48,101,161, 83,124, +231,193, 25,102, 23,183, 25,232, 49, 74,122, 74,165,104,234,154,253,174, 99,229, 53,221,149,171, 28, 79, 47,210,118,115,120,120, + 16,131, 69, 92, 31, 22,226, 61,190,159,144,188,109, 91,218,106,201,205,182,228,255, 40, 87,124,103,105,113,243, 6,247,193, 28, +127, 56,199,220, 93, 49, 95,149, 96,170,216,217,248, 14, 49, 63, 70, 78,214,216, 30,111,241, 59, 95,248, 4,191,252,169,151, 48, +173,231, 96,126,204,219,251, 51, 62,184,247,128,123,103, 43,238,122,193,163,166,165,105, 44,214, 54,177,115,107, 27,108, 23,133, +130,206,251, 88, 32,188,165, 92,173,216,107, 2,147, 84, 50,192,209,248,142, 11, 66, 82,123,143, 22, 2,235, 12, 83,211,178, 82, + 9,109, 53,231, 65, 85,179, 10,129,174, 92,113, 58,171, 98, 55,142,138, 81,163,161,111, 8, 62,186,211, 54, 22,177, 92,192,124, + 14,179,121,108, 44, 22, 53, 98, 54, 67,156,157, 32,142, 79, 16,199,199,200,197, 2,121,186,128,197,130,185,109,153,153, 10,133, + 98,135,192,181, 52, 35,181, 22,209,182,248,206, 97, 8, 56,111, 73,149, 34, 17,138, 34, 73, 73,133, 66,121, 79,234, 3,206, 59, + 38,227,156,113,145,240,252,120,192, 11,107, 3,214,166, 5,227, 34, 97,222, 4,148,245,113, 59,233,253,227, 66,158,126,164,200, +235,167, 58,122, 33, 68, 44,210,166,239,212,205, 83,227,119, 23, 67, 78, 68,136,157,186,112,253, 4,247, 60,184, 38, 8, 68, 87, + 65, 42, 17,109, 77,217, 6,246,219,134,147,186,101,148,234,200,205,234, 26,154, 0,141, 49,204,113,164, 33,208, 56, 67, 27, 2, +166,107,113, 34,208,118, 53, 22, 79,101, 27,156,107,113,214, 96,189,197,184, 14,227, 13,101, 87, 81,217, 22,231, 58,246,218,138, +131,122,198, 7,109,201,237,106,197,183,109,205,222,114,201, 55, 79, 87, 44, 92,199, 65, 89,115, 38,224,208,121, 78,172, 67,107, + 69, 89,150,168, 52,199, 6,139,113,158, 78, 9,150,141,195, 56,207,178, 50, 28, 25,199,153,241,140,173,101, 32, 28, 86, 40, 90, +103, 81, 46,166,146, 90,239, 25,234,120, 65,203,164, 96, 36, 21, 75,239, 89, 90, 19, 15, 62, 68,160,152,148, 14,129, 66,182, 75, +212,100,140,154, 45, 81, 89,138,182, 14, 53,202,145,117,137, 74, 52,170,142, 60,125,169, 51, 20,235,207,127, 9,219,119,234,231, +230,131,208, 7,172,208,231,131, 43, 25,139,177,234,247,235, 42, 60,137, 88, 85,242, 9,159,252, 71, 89,192,164, 4,153,197, 93, +118, 58,132, 98,128, 72, 83, 6,195, 28,145,164, 76, 82, 77,146,102, 40, 25,240, 1,114,173,145, 74,144, 9,176,166,163, 89, 53, +204,106, 71,219, 25,206, 22, 37, 42,213,180,171, 6,176, 28,148,115,234,170,137,221,177, 13,177,112,203,190,115, 69, 64, 48,125, +242,141,140,209,167, 73,127,191,125,136, 35,167,208, 31, 52,252,249,232,186, 39,196,157,123,224,127,220, 58,129,126, 77,145, 21, +189, 50, 61,196,195,129,214, 79,146,215, 68,191, 14, 16,231,251,240,143,118,252,113, 70, 53,214, 30, 47, 21,218,129,246,113,188, +123,190,122, 95, 35, 78, 70, 74,239, 25, 10,207,105,119,142,138,181,125,132,107, 95,118, 30, 47,181,206, 95,147, 94, 84,231,125, +244,104,170, 62,207, 62,244,135, 55,255,231, 63,148,221,248,254, 13, 94,249,204,107,168, 76, 51, 46, 10,234,182,195, 89,199,114, + 49,103, 99,115, 74,158,198, 85,205, 48, 75, 98,200,139, 32, 10,224,132, 32, 81, 2, 27, 4,206, 6,130,140,170,101,173, 98, 24, + 74,146, 38,164, 89,138, 76, 52, 74, 9,130, 9,113, 56,212,196,200, 93, 99, 60,198,216,120,190, 10,158,217,178,163,174, 61,213, +178, 67, 41,201,104, 24,139,119,146, 37,188,120,125,155,151, 46,111, 16, 84,138, 15,129, 68, 73,164,144,172,170, 21,243,147, 5, + 82, 10,100, 34, 56,124,116,192,247,110,188,195, 31,127,247,109,254,236,246, 45,190,242,246, 45,110,126,103, 15, 62,168,225,118, +205,141,113,205,199, 47, 93, 98, 99,125, 68,170,162,187, 91,247,178,146,198, 56, 58,227,112, 30,154,198,210, 54,142,198,246,201, +193, 90,146, 41, 77, 55, 84,124,122,163, 96,120,161,224,238, 32, 97,184, 53, 98,124,101,131,236,165, 75, 36,207, 93, 33,108,173, +145,138, 1,251,167,167,188,251,206, 1,109, 17,120, 20, 18,214,150,150,236,194,148, 3, 37, 25, 60,127,157,171,215,183,121,246, + 51, 59,124,230, 87, 94,226,211,191,246,113, 78,148,229,238,193, 1,239,223,126,200,183, 30, 60, 68, 33,248,173,201, 38, 27, 94, +240,207, 27,203,157,170, 65,234,140,201,197, 75,216,205, 41,199, 90,211, 77, 11,154,139, 91, 36,151, 47,113, 89,167, 20, 71, 21, +223, 60,171,121,243,254, 41,239,221,186, 71,215, 89,178,245, 77,222, 42, 87,236, 47, 79,169,234,138,249,114,142,150,130, 85,158, + 83,213, 75,164,181,220, 48, 29,223,181, 6,165, 7,228,222,179, 46, 61, 3,215,210,106,201, 95, 26, 13,249, 43,211,117, 94, 82, + 18,167, 21, 42,151, 44,172,224,250,100,200, 56, 87, 84,197,132, 3, 18,142, 90,207,253,106, 73,105, 45,109, 91, 51, 89,219, 34, + 75, 4,114,178,201,194,204, 8, 71,199,208, 57,130,238,233,118, 66,224,165,161, 89, 54,188, 57, 95,242,237, 69,201,161, 83, 56, + 65, 20, 82,174, 41,252,105,212,231,167, 43,207, 79,229,154,191,184, 94,240,252, 98,197,205,186, 4, 28, 87,159,189,198,199, 71, + 3,214, 18,205,223,122,235, 30,183,131,136,187,202,163, 57,193,119,120, 20, 94,107,156, 15,209,137,210, 69, 30,130,243,254, 49, +201,207, 3,193, 69, 17, 21, 78,112,156,164, 92, 25, 42,118,131,199, 58,203, 24, 65,107, 58,134, 4,156,115,100,166, 97, 30, 60, +167,222, 51, 63,155,115,186,168,232,218, 22,119,178,138,214,170, 44,229,213, 11, 5,255,246,165,117, 62, 62, 29,243,198,241,234, +113,108,234,227,142,214,244,130,221,182,133,182,142, 28,143,208, 7,184,244,187,101, 89,199, 8, 95,121, 82, 34, 59, 67,233, 26, + 82, 37, 24,219,142,245,166, 66, 57,143,243,150,186, 45, 9, 50, 32,157, 39,149, 2, 45, 64, 11,141, 12, 30, 41, 37,133,146,108, + 38, 41,159, 24, 12, 25, 39, 9,211,108,192,122, 62, 96,146, 40,126,122,115,194,199,198, 3,214,181,224,200, 58,146, 0,169,247, +164,125, 97, 79,250,219,211, 29,187,240, 81,148, 38,180, 64, 24,158,100,190, 59, 31,129, 55,206, 61, 1,210, 40,137,176,145, 61, + 32, 68, 28,249,147,104,132,141, 13,143, 16, 81, 84,214,117,158, 71,171, 14,105, 59,202,206, 50, 8,130,149, 8, 88,235, 56,117, +142, 3, 1, 71,182,163,146,146,135, 85,201,137,112,172,154, 21, 51,239,104,218,150,189,174,193,155,134, 67,215, 98,141,161, 82, +138,101,219,114,191, 46,185, 85, 46,248, 32, 56,190,113,186,226,131,206,112, 99, 94,243,192, 58, 26,231, 89,213,150, 86, 6,170, +101,133, 79, 83, 26,239, 73, 8, 56, 41,169, 77, 71, 25, 4, 74, 40,142, 86, 13,235, 89,194,126,109, 40,155,134,182, 53,108,103, +146, 19,103,216,148, 26, 97, 45,155, 74,209, 66,212,191, 16, 83, 30,231,206, 16, 2,212,214,113,185, 72,120,127,209, 64,211, 69, +205, 53, 30,233, 4, 82,216,184,202, 59, 93,160,130, 64,167, 26,109, 12, 74, 43,116, 8,104, 23, 35,175,149,148,200, 85,133, 98, +218,239,212,221, 57,253, 77,197, 66,224,252,147, 0, 17,210, 94,237,221,227, 93,117, 74,246,252, 69,214,175, 94, 64, 95,216,164, + 29, 15, 97,107, 19, 6, 99,184,120, 33,126,189,181, 9,147, 53, 24,140, 98,145, 77,147,136, 60,204, 18,228, 56, 35, 77, 18,100, +112,140,117, 26,177,125,185,102, 58, 28, 49, 29, 23, 76,166, 41,174,181, 56,111, 32,120,188,132,106,181,192,244,172,220,163,211, + 25, 85, 83,114, 80,205,152,213, 21,198, 7, 66,119,190, 15,239, 85,225, 69, 10, 77,251,132,134,148,232, 88,212,181,142, 43,134, +244,169,241,187,238, 59,247, 68,199,125,134,210,177,168, 43,249,227,167, 17,185,142, 43, 5,124, 20,212,233, 60, 22,246, 44,233, + 45,117, 34,138,239,206, 73, 76,173,123, 34,182,251, 8, 51,255,149,188,160, 8,176,239, 59, 46, 41,141, 2,150,253, 47,241, 88, + 8, 18, 33, 72,165,164,240,240, 64, 75,130, 0, 90,251,228, 96, 96, 31,171, 84,122,111,190,232, 21, 27, 34, 78, 16,148, 2, 93, +244,147, 8, 27, 31,223,191, 76,172,110, 34,217,183, 29, 47,189, 16,225, 22, 87,118, 54, 57, 91, 84,156, 29, 31,225,131,138,135, +177, 60, 99, 88,100,212,181, 33,200, 88,212,109, 32, 90,209,164,192,123, 17,247,228,113,225, 69,162, 20,214,250, 30, 69, 31,199, +219,182,207,137, 15,222,211, 57,135,107, 28,131, 97, 26,247,218, 65, 16, 28,228, 89,194,104,152, 51, 26, 23, 92,216, 25,179,181, + 49,224, 51, 47,237,240, 51,215, 54, 89, 53,134,251, 71, 75, 30, 62, 60,160,106, 58,190,249,230,247,185,127,116,196,239,127,239, + 29,254,236,143,223,226,235,223,187,193, 27,119, 30,112,255,222,156,178,181,180,231,118,205, 81, 30,133,136,135, 6,127,167, 38, +127, 38,229,202,181, 93, 38,195, 2, 25,226,240,197, 19,207,141, 65,200,232,149,117,145,124,165,164, 68,101,154, 97,161, 25, 23, + 41, 27,121,194,239,189,183,207,215,111, 28, 49,187,121,196,217,173, 67, 56, 94,177, 60, 89,224,131, 35,153, 20,236, 92,219, 98, +114,253, 42,255,249, 47,190,134,218,220,101, 49,157,160,101,224,167, 82,197,219, 69, 65, 54, 72,185,250,242, 46,249, 51, 23,144, + 23,183,185, 57,235,248,211, 15, 30,240,255,157,214,124, 93,140,120,127,178,203,175,188,250, 34, 47, 92,222,228, 52, 31,242, 72, +228,108, 77,167, 60,251,201, 23,153,236,110,112, 40, 20,157,245, 12, 11,205, 32,207,120,118,152,241,153, 66,176, 88,214,124,251, +100,193,221,166, 98,103,103,141,245,103, 47, 51,188,180,205, 88,143,120,189,236,184,175,167,188,176,181,205, 21, 41, 89, 10,193, +119, 66,224,123,214,177, 39, 21, 73, 26,149,220,169, 20,180,213, 18, 99,106, 26, 23,248,205,233, 58,207, 12, 71, 92, 72, 50,238, +217,142, 3,231, 24, 42,152, 52,150,141,249,138,105, 98,145,131,117,110,216,138,169, 74,233,108,135,242,142,253,147, 3,134,211, + 77,130,113, 44,101,130, 93,206, 8, 85, 5, 62, 16,186, 38,142,225,173,193,227,241, 66,226,250, 11,179,147, 26,145, 74,134,163, +132, 38, 11,140, 22,129, 79,108,228,252,226,245,117, 62,183, 57,102,146, 37,172,117, 14,177, 90,241,126,115,198, 63, 95, 88, 78, +207, 22,124, 99,190,136, 86,167,181,141, 8,183,240, 16,186, 50, 90,243, 44,120,215, 60, 41,228, 66,196, 46,253, 41,149, 63,196, + 97,165,235, 90,198,227,156,165,113,236,138,128,116,134,169,177, 52,174, 37,224,153,183, 45,117,107,168,173,101,182,108,168,170, + 22,233, 44,141,233, 16,198, 32,138,156,255,228,202, 22,191,188,115,129, 65,170,248, 86,219,208,204,234, 15, 77,205,196, 71, 35, + 85, 85, 44,228,231, 2, 52, 33,163,128, 86, 90,139,176, 29,162, 44, 17,199, 75, 14,143, 79, 57,105,102,236,132,142,177,237,232, +154, 18,159, 38, 24,107, 8,109, 69, 22, 60,174, 51, 72,161, 48,222, 32,132,100,173, 24,179,158, 23, 12,178,130,141,124, 76,167, + 20,195,100,192,246,112,157, 11,105,193,115,195, 33,151, 7, 57,207, 72,205, 21,165, 41,148,228,106,158,179,150,165,124,122, 52, +101,223, 91, 18, 33, 80, 61,131, 94,156,119,235,177,245,142,161, 72, 46, 10,173, 63,164,144,151, 18,153,196, 68, 68,233,125,252, +218,121, 68,255,119,162,235, 34,202,214,185, 24,113,237, 61, 39, 93,199, 94,231,249, 32, 56,110,159, 54, 60,244,134,165, 20,124, +208,118,220,110, 27,110,215, 45,247,188,225, 86,215,241,102,101,120,171,108,184,163, 2,183,156,225, 77,211,114,100, 44,111,152, +142, 7,117,201, 91,182,227, 86, 91,243,118,109,120,163, 49,156, 25,203,204,122,218, 16,237,171,198, 56, 80,130,214, 70,203,173, + 49, 6,135,103,222,121,230, 62,142,241, 59,235,121,104, 12,153, 20,204,154,150,206, 90, 66, 99, 17,198,177,108, 60,151, 7,138, +220, 88,174,103, 41, 82, 4,182,149,194,123,207, 26,208,244,152, 97,107, 61,169,128,101,221,225,125, 96,225, 44,194,199, 60, 18, + 9, 40, 99, 81,157, 69, 21,154, 68, 41,116,213,162, 85,194, 21, 87,211,233,148,169,177,248,186,137,223,163, 20,250, 7, 9,113, +221, 15, 94,208,117, 15, 71,144, 50,178,141, 95,185,196,245,205,109,154,206, 51,206, 83,234, 45,199,162,118, 28,214, 11,214,147, +130, 36, 45, 40,155,134,253,178,138,251,219,164, 23,220,233, 39,251,248, 60, 21, 76,178, 20,130,195,132,142, 73,146,162,148,100, +152, 11, 76,103, 8,170,163,177,142, 84,129,112,134,164, 72, 73, 4,180, 18,238, 29, 44, 34, 67,128, 64,189,234,240,222,199, 67, +195,121,116,105, 63,198, 66,167, 79, 30,131, 1,114, 31,139, 91, 34,227,247, 75, 29,139,126,154,210,211, 81,158, 20,251, 85, 10, +117,253,100,223,254,195, 62,170, 6, 54,198,125,225,238,159, 39,213,167,174,229,253,253,176,253, 33, 33,113, 31,166,237, 61,245, +244, 18, 60, 95,175, 75, 62,145, 23, 92,215, 25,203, 16, 24, 11,193,179, 66, 62,246, 9, 19, 60,117, 15,140,185,228, 44, 15,206, + 87, 26,231,135,132,199, 63,183, 31,197,235, 2, 54, 55,226,255,189, 42,123,112, 77,143,158,173,254, 37,133,142,137,132, 32,185, +251,149,239,114,243,133,231, 41, 62,247, 26,243,213,138,143,189,244, 12,207, 93,191,196, 91,111,222,226,240,209, 35,218,178, 35, +207, 52,137,210,168, 10, 6,195, 4,103, 3,149, 51,100, 65, 70,217,130,146,228,121, 18,109,107, 62,110, 78, 91, 23,213,169,198, + 65,145, 73,140,240, 36,137, 70,117,158,144, 71,181,184,214,138,113,145, 80,202, 8,170,137, 23, 60, 65,219, 57,210, 68,243, 15, +254,240,255,103,236,189,122, 44, 75,179,244,188,231,115,219, 30, 27, 54,125,102,121,215,213,102,218, 84,147,163,129,208, 50, 35, + 18,148, 4,112, 40, 8,188,162, 0,253, 2,233, 94, 16,248, 19,116, 33, 72, 0, 37, 8,208,141, 64, 2, 26,104, 64,129, 24, 81, +131,230,104, 60,167, 77, 85, 23,171,170,203,102,101, 86,250, 12,115, 34,142,219,246, 51,186,248,118,102, 86,119, 87,207,116, 0, +129,116,129,140,115, 78,236,179,215,183,214,122,223,231,253,128, 71, 39, 71, 76, 71, 83, 30,159,156,115,111,185,224,189,187, 71, +168, 76,114,177,204,217,153,149, 44,214, 61,156, 14,207,125, 54,252,124,142, 91, 72, 21,201,190,198,238,229,248,191,163,224,110, +199, 31,255,249,207,121,225,249,231,152,190, 85,176, 63,202, 49, 34,178, 21,148,210,104,229, 98,104, 71, 22, 16, 74,160, 4,104, +163, 72,149, 68, 75,129,244,158,221,182,163,237,122, 78, 23, 39, 32, 21, 75,219, 99,235, 53,235,143, 54, 24,149,178,116,130, 43, +223,125,145,231, 94,185,200,215, 38, 91,110,221, 60,229,202,209,154,107,103,154,174, 18,156, 94,154,242,200, 42,230,235,142,223, + 53,158,159,228, 9,122,182,195,235,105,201,205,180,224,197, 36,229, 63,157,106,236,170,226,167,199,143,113,101,193,229,209, 14, +197, 60, 99,238, 45, 63,217, 70, 26,222,200,193,244,108, 77, 85,102,212, 57,180, 23, 74, 46, 79, 83,246,130,103,190, 51,230,162, +150,124,250,193, 29,146,229,130,195,124,204,120,118,129,236,194, 8, 89, 55,184,237, 26,181,233,232,131, 39,164,130, 84, 41,232, + 29,143,117, 73,147,195,105,211, 48, 49,129, 44, 73, 16, 46, 16, 68,100, 46,116, 4,230, 8,246,139,132,139, 89,134,116, 61,119, + 78, 62,101,103,239, 50,231,222,227,148, 33,145,158,170,171,121,247,147,247,105,199, 59, 96, 12,242,229, 87,241,117, 13,139,199, +120, 93,198,108,108, 41, 16, 85,141, 48,131,227,164,238,193,158, 99,117, 74,155,101, 8, 7,114,170,153,207, 19, 46,229, 41,115, +147,160, 9,220,214,154,151,172,227,181, 7,199,188,189, 94,242, 39,155,171, 96, 70, 8,147, 32,144,112,227,121,152, 78, 9,119, +238, 17, 54, 21,161, 89, 71,189,116, 15,193,200,167, 14,209, 95, 1,170,180, 29, 98,186,195, 6,152, 72,197, 18,129,219, 52,156, + 26, 25, 59, 87, 21,145,212, 77,213,227,250,142, 41,113,250,120,199,250,168,212,238, 44,178,106,121, 49, 73, 73,133, 66,234,132, +209,104,194,249,100, 77, 88,213, 67, 2,223,175,129,189, 12,112,172,224, 60, 65,201,167,118, 66, 7, 56,107,177, 52,116,231, 13, + 31,173,207,248, 95,238, 60,230,251, 38,227,198,108,204,120, 62, 34,155,142,120, 46, 27, 83,181, 53,185, 74,232,251,150, 30, 79, +146,231,160, 12,217,240, 61, 77, 90, 48,245, 30,235, 29,227,180, 32, 45, 39,216,205,217, 48,114, 15,136,113,193, 15, 66, 32, 67, + 80, 8,197,186,107,120,171,157,114,212, 52,188,183, 92,242,110,221,162,250, 14,101, 45,194,254, 82,222,251,151, 14, 72, 79, 1, +156,157,125,154, 1, 47,158,208, 63, 59,139,120,146, 11, 31, 60, 33,209,241,121,246,131, 32,174,247,172,155, 26, 13, 84,149,228, +241,195, 21,186,200,208, 50, 6, 45, 41, 41,144,168,152, 1,159, 70, 71,147, 16, 17, 61, 13,110,216,178,134, 1, 1,237,241, 77, +143,183, 30, 55,220,175, 92, 18, 35, 91,179,210,208, 5, 71,130,100, 21, 98, 79, 22,128,160, 4,222,246,172,147, 4,223, 58, 8, + 29, 75, 25, 87,216, 50,145,144,106,194,166, 67,164,138,157,214,242, 66,106,208,125,203,142,202, 16,222, 71,200,216,112,235, 47, +132, 36,211,112,180,106, 16,193,115, 57, 87,220,173, 19, 68, 84,101, 32,123,144, 74,163,140, 68,123,152,102,130,203, 74,243,237, + 82,209, 88,199,117,111,105, 83,201, 81,102,184,185,174,185,189,110, 81,140,174,253,211,191, 85,181,174, 6, 96, 74, 8,112,237, +128,231,246,102,180, 54,176, 91,150,228,166, 36, 51, 25,123,229,132, 76,104,114, 19, 57,189,163,212,144,200, 64, 97, 4,171,110, +216,121, 11, 65, 98,146,184, 71, 21,130, 34, 49,104, 9, 55,118,118, 48,105, 74,162, 2, 93,215, 83,164,146, 92, 43,166,165,198, +216, 64,179,109, 25, 25, 65,187,172, 88,111,207, 73,180,102, 81,109,185,119,118,134,237, 61,146,200,227,133, 39,161, 32, 67,241, +106,219, 33, 18,181,137,197, 45, 77, 24, 84, 80,207, 70,237,121, 22,191,134,161, 83,183,253,112,120, 81, 80, 87,241, 74,251,155, +198,240,194, 67, 57,138,190,171, 50,139, 69, 60, 77, 6,117,123, 22,197,135,102, 80,199,123, 23,213,158, 95, 86,156, 63, 25,251, + 59,207,117,173,240, 66,178, 12,129,145, 15, 84, 2, 82, 33,162, 94, 81, 64, 41, 4,159,217,150, 92, 73, 54, 82, 70, 92, 42, 3, +100,199,250, 95,180,184,205,119,153, 92, 60,164, 28,141,169,165,142, 83, 11, 61,232,225,131,143, 73,115, 90, 71,135,192, 47, 24, + 82,252,175, 30,234,228, 83, 63, 10, 31,254,236, 67, 94,255,230,155, 36, 89,202, 98, 91, 49, 46, 50,186, 16, 80,105, 66,181, 90, + 35,179,148,253,157, 49,227, 60, 65, 34,152, 36, 2,173, 37,163, 68, 81, 91,143,148,112, 48, 54,113,191, 45, 5, 10, 65,110, 52, + 58,213,200,129, 62, 55, 78,163, 32, 46,114,155, 21,125,231,168,182,150,117,211,177,222,118,212, 85,199,182,234,168,250,158,122, +211,211, 11,207,189, 59,199,252,139,191,126,155,101,181,166, 76, 13, 82, 64, 19, 98,218,215, 40, 51, 84, 46,208,235, 64, 48,192, +202, 69, 49,100, 42,163, 8,244,118, 27, 51,143, 39, 17, 88, 65, 42,224,221,138, 59,101,197,139, 87,174,112, 97,103,196, 36, 79, +227,132, 32, 49,164, 70,162, 7, 26, 34, 34,196,188,119,249,196,109,232,217, 54, 29,171,166, 37, 49, 16,188,164,107,123,200, 83, +244,197, 93, 46,124,239, 53,190,113,117,151,127,244,141, 27,220,187, 48,231,115, 41,233,203,148,139, 23,167,124,195,247,124,235, +213, 67,174, 78,225, 38, 41,123, 99,205,181, 89,193,238,106,197, 79,110, 63, 70, 20, 35, 94,191,177,195, 27, 99, 77, 18,122, 14, +131,229,110,232,184,103, 52,243,249,152,221,197,134,211,211, 37,201, 39,119,169,174, 92, 68,118,142, 63,255,171,183,249,248,143, +127,136, 93,181,220,125,120,196,173, 7,247,249,224,103,239,115,243,237,119,184,113,225, 58,203,109,207,103,143,239,243,211,155, + 55, 41,109,199,165,249, 30, 19,163,113,137,198,104, 67, 90,102,116, 94,160,205, 96,121, 37,144,116, 53,127,184,173, 57,205, 39, + 60,144, 57,191,111, 5, 63, 72, 20,183,109,203,187,109,203, 81, 93, 49,174, 59,246,132, 98, 90, 24,102,227, 9,135,105, 70, 38, + 37, 69, 89,210, 7,197, 44, 79, 57, 24, 21,232,190,227,130, 16,248, 36,103,163, 50,152,149,132,211, 37,228,134, 16, 20, 1,133, + 23,150, 32, 19,188, 84,241,179,111,162, 0,108, 91, 19,132, 96,156, 37,236,149,154,203,133,225,165, 81,206,149,157, 25,175,205, +114, 38, 46,176,168, 90, 94, 15,144,159,159,243,197,250, 28, 49,153,198,131,130, 50, 8,149,192,222, 30,228, 41,225,172,138,185, +225, 10,188,139,200,226, 32, 69,108, 24,190,252,118,207,198, 48, 74, 56, 13,138, 60,151,180,109,143, 87,154,186,106,113, 74,209, +247, 14,217,117,132,174,167,116,129,189,214, 33,109, 64, 90,199,194,134,104, 25,235, 45,251, 99,133, 73, 19,254,109,183,229,199, +173,139,158,228, 22, 4, 81,161, 46,126,185, 75,127, 34,149, 25,108,159, 66,240,180, 91,127, 10,144,241, 50,110,251,250,158,202, +121,110,182, 13,239,156,158,242,163,227, 51,206,214, 21,174,217,210,119, 61,133, 18,145,251, 32, 5, 86,104,172,209, 88,165,145, + 69, 70,151,165,104,147,146,100, 25, 34,196, 52,179, 92, 70, 63, 56,222, 51, 53,138, 84, 4,174,148, 35,198,202,112, 99,103,159, +203,163, 9,151,203,140,189, 36,101,207,104,238, 12, 9,213,191,124,223,252, 21,223,187,247, 40,239,145, 90,199,209,177,181,113, +179,107,237, 32,184,211,207,244, 7,246, 73,138,167, 4, 27,179, 38,188,235,241,189,197,225,113,193, 98,117, 66, 31,160,239, 28, +189,209,116, 70,210, 41, 73, 43, 36, 45,208, 10, 65, 27, 2,173, 20,180, 66,208, 13,177,207,164,134, 38,209, 72,161,216,155,141, +120,177, 76,121,109, 90,114,163, 24,113,161, 72,121, 62, 49, 92,202, 52,107, 2, 85,158,209, 11, 65, 72,211,232,212, 73,212, 83, +203,119, 16,146, 96,163,125, 13, 9,175, 39,130,111,102,134,239, 22, 5, 19, 2,135, 70, 49,150,177,246,109,189,139, 1,166, 33, +208,244, 49, 18, 90,133,192,219,155,154,182, 11, 8,173, 80, 34, 68, 87,145,144,131,240, 56,225,239,150, 25,111, 77, 71,188, 84, + 22, 92, 25,143,120,121, 50,198, 40,197,203,105,198,141,209,136, 61,205,111, 80,212, 97,216,207, 70, 66,154, 60,152,112, 48, 42, +216, 47, 39,140,211, 49, 62, 8,198,249, 8,163, 83,138, 36, 35, 53, 38, 78,122,197,147,221,143,167,204, 83,150, 85, 3, 74,162, +130, 68, 42, 65,161, 12, 33,120,118,202, 41,147, 84, 50,155,151, 72, 41, 40,210,140,124,148, 50, 77, 21, 35,163,112,189, 67,186, +150,126, 93,209, 53, 91,164, 20,124,177,120,200, 7,247,143,105,123, 79,158, 40, 90, 47,152, 10,141, 16,129,174,139, 30,200,129, +134, 2,205,102,200,132, 7,178, 44,238,209,211,129,150, 39,134,142, 29, 49, 16,226, 6,168,140, 28,188,238,189,143, 7,131,191, +201,246,165,242,216,253,143,179,120,241,165,102, 40,174,122,200, 86,215,131, 95,125, 80,122,118,245,175,134,227,248,200, 5,120, + 48,116,232,151,141, 97, 19, 2,115, 21, 59,245, 38,196, 92,241,147, 65,184, 83, 9, 72,125, 96, 43,158,224, 94, 19,184,254, 18, + 47,191,249, 38,167, 42,135,147, 71,112,184,199,165,217,156,217,168,164, 15,208, 46,206,226,129,198,185,103,143,231, 43, 7, 16, +191, 92,216, 7, 85,253,151, 62,126,252,103, 63,226,187, 63,248, 62,147,162, 96, 83,215, 40, 4,245,166, 97,178,183,131, 86,130, +182,245, 4, 9,227, 60, 29,242,135, 21,137, 86, 76, 75,195,180, 72, 16, 42,210,232, 38,153, 33, 47, 12,121,166, 40,141,102,148, + 27,132, 20,180,189,101, 83,117,108, 58,203,102,221,178,218,182, 8, 5,171,243, 58, 90,221,240, 52,181, 37, 77, 12, 89,153,160, +130,228,202,181, 61,250,147,115,238,172,215, 40, 4,153, 74, 81,210,179,238, 28,151, 71, 19,118,210, 52,102,237,120,112, 89,128, +179, 97,194,177,147,194,238, 48,201,209,146,189,195, 49,227, 89,193,246,106, 66,213,195,190, 73,120,225,218, 5,102, 99, 67, 38, + 20,153, 20, 3, 82, 51, 12,111,228,104,163, 43,148, 33, 81, 10, 23, 60, 54,120,210,204,176, 62,107,216,214,142,157,111,223,224, +218,215,175,177,127,105, 14, 58,190, 39,166, 77,197,159,254,228, 22,159,255,213,207,249,248, 47,223,225,248,222,154,247, 22, 21, + 63,215,130,203,227,140, 68, 38,164,101, 74, 97, 36, 63, 50, 41,226,234, 62, 85,106, 56,111,123,194, 78,193, 52, 75,152, 20, 25, + 63,157,143,153, 94,222, 99,190, 59, 69, 63,127,129,249,124,204, 97,154,226, 38, 99, 38,133,225,218,115, 87,249, 87,255,253,191, +224,163,243, 5,159, 62,122,200, 71, 15,143, 17,244,124,243,213,215,249,237,239,191,206, 15,255,232, 79,248,131, 63,250,107,142, +178,148,111, 93,188,200, 56, 53,145, 98, 38, 66, 28, 15, 6, 65, 39, 5, 93,239, 48,196,244, 67,213,215, 60,239, 27, 86,199,143, + 88, 59,139, 67,241,105, 91,243,133,150,116,206, 82,216,158, 73,223,179, 63, 74,217, 25, 79,152, 76,118, 33,201, 41,243, 9,169, +201,152,236,237,144,142,199,120,149,112,189,200,185,161,224, 34,158, 68,104, 30,202, 4, 70, 41, 88, 75,240,142, 96, 99,148,101, + 72, 4,193,197,227, 58, 58,118,212, 96, 17, 30,236, 36,103,150, 39, 28, 22,134,215,198, 5,123,123, 23,201, 76, 70, 17,122,222, +127,112, 70,102, 52,123, 2, 62, 87,146,190, 48, 72,169, 17, 89,142, 50, 41,255,236,183,222, 64, 36, 25, 31,105, 8,199, 43,130, +239, 9, 82, 16,188,136, 30, 20,239,127, 33,214, 65,168, 4, 89,230,200,222, 51, 54,146,171, 69, 22,199,241,105, 74,225, 29, 59, + 62,112, 24, 2, 7, 65,114, 73, 66,230,224,170,150,132,222, 49, 21,158,199, 54,102,181,191,183,220,242,163,170,229,125, 7, 34, +213,177,128, 21, 58,138,202,172,125, 86,216, 77, 20,147,137, 16,190, 52,118, 39,142,179,135, 80, 25,225,191, 4,120, 29,238, 43, +193,199,199,238, 1,239, 29,143,183, 91,126,118,190, 38,177,142, 69,240, 44,130,227, 24,143, 51,134, 86,198,174,182,241, 30,153, + 36, 60, 82,154,218,195, 56, 77, 24,235, 40,236, 19,125, 75, 46, 21,173,107,185,144,100,228, 38,101,119,114,136, 81, 25,249,120, +151, 66,231, 28,148, 25,187, 90,115, 37,207,240, 90,241,104, 48,109,135, 39, 22,105, 41, 17,169,137, 99,119,173, 80, 90, 33,141, + 65,105, 25,247,241, 66, 60, 45,246, 79, 70,242,226,233, 4,114,104, 58,188, 37,104, 25,101, 65, 82, 18,178, 2,143,198,151, 37, + 46, 79,112, 69,129,157,230,244,169,166,147,146, 62, 77,232,148,164, 11,146, 54, 81,116, 73, 74,151, 37,244, 66,208, 43,197,104, +148,225,132, 97,103, 92, 48,202, 50, 94,152,140,248,157,189,107, 92,204,166,236,155,130,171,197, 52,122,219,149, 98,148, 72, 54, + 94, 96,211,140,198,187,120,157, 56, 23, 11,185,134, 50, 68, 66,120,231, 61,169,119,124,179, 72,121, 77, 43,130, 12, 40, 36,107, +235, 40,140, 70, 15, 89, 23,181, 15,116,222, 13, 98, 76,207,113,219, 35,145,156,216, 88,240, 37, 10, 41, 37, 90, 40,166,163,156, +255, 48, 79,249,222,222,152, 27,163, 17,211, 34,225,181,157,125,188,209,236, 23, 99,146,180, 32, 75, 50,114,165,127,195,162,254, +164, 0,121, 79,152, 22, 60,183,183, 23, 71, 73,104, 82,173,209, 74, 99,135, 19,164,150, 42, 50,243, 7, 4,236,186,174,216,218, +142,109, 31,103, 23,233,144,187, 29,132, 32,145, 2, 47, 3,123,163, 17,121,150,147,164, 9,229, 40, 65,248,192, 72, 75,186,243, + 6,183,173,161,105, 57, 95, 46,200, 36, 52, 77,195,166, 90,113,127,211, 48, 75, 19, 42,239, 81, 1,186, 68,211,122, 71,110,210, + 56, 49,239,186,161,168, 15, 88, 91,105,134,116,180, 33,192,123, 92, 60, 91, 11, 60, 41,240,114,128,210, 40, 13, 93, 59, 92, 68, +253, 51,165,250, 87,137, 0,133,135,180,128,100, 16,225,101,201, 64,205, 35, 38,190, 37,195,247,237,186, 56,154,183,225,233,126, +232, 87,242,218,137, 72, 88, 27, 28,115,109, 56,119,158,141, 16, 20, 64, 13,172, 0, 25, 2, 33, 4,214, 18,148,144,244, 2,216, + 63,228,191,254,251, 63,224,239,255,206, 55,248,222,107,111,240,231,103, 27, 66,219,242,226,229,171, 92,158, 95,160,245, 13,139, +135, 71, 67, 92,236,128,173,125,178,143,215, 67, 13,215, 95,174,229,254, 23, 59,117, 63, 28,236,190,244,241,246,241, 25,223,120, +233, 5,202,113,198,122, 93,211,213, 45,213,102,205,106,177, 6, 33,169,155,158,170,119, 88, 11,163,210,196,236,100,163, 49,198, + 32,181,198, 72,133, 8,106,176,133,121, 26,231, 88,183,150, 77,107,169,234,158,186,141, 2,146,174,181,209, 74,102, 61, 42,149, +184, 62, 16,108, 76, 24, 83, 82, 81,164, 9,227, 34, 97,148, 27, 94,122,245, 6,219,163, 13,125,223,113,107,121,142,237, 29,199, +203, 45, 15,183, 21, 82, 10, 30, 85, 13,253,186, 97,200,187, 4, 35, 72, 15,114,174, 29, 78,152, 21,138, 67,142, 0, 0, 32, 0, + 73, 68, 65, 84, 31,150,236, 79, 11,140,132,157, 60,231,165,157, 67,190,123,237, 37, 70,249,132, 44,215, 92,156, 23, 4,225, 81, + 33, 80,119,150,213,182,167,243, 30, 45, 96,150, 27, 46, 79, 51,118,139,132, 84,203, 33, 69, 44,161, 40, 19,150, 77,199,213,231, + 15, 57, 62,223,242,240,223,221,225,214,159,191,207, 31,254,240,207,249,231,255,247, 95,241, 71,255,211, 79,121,255,147, 47,248, +232,100, 65,187, 61,162, 93, 45,248,235, 31,255,140, 31,253,228, 61,118, 95,121,147, 99,165, 88,164,154,147, 91, 71,124,240,255, +252, 25,205,186,230,209,221, 71,144,100,236, 94,156,177,127, 80,240,199,143,106, 92, 22, 35, 84,123,239, 49,206,161,246,103,232, +193, 50,179, 62,171,249, 81,117,151,160, 20,173,209,124,251,210,132,215,111,188,194,119,222,250, 58,231,219, 13,255,195, 95,188, +141,223,223, 33,228, 57, 50, 40, 46, 22, 41,120, 71,237, 2, 5,130, 7,231,167,156,110, 27, 84,232,105,186, 22, 25, 28,216,150, + 18,205,101, 9,163,234,140,251,206,242,184,119,220, 10,146, 92,198,110,233, 85, 35,249,123, 7,151, 25,151, 51, 72,115,102,211, + 25,203,196,224,141,198,148, 35,188,210,140,178, 20,227, 35,192, 72, 43,208, 72,166, 74,115,150, 20,136,114,132,175, 55,241,144, +140, 32,108,155, 56,114, 14, 1,130,138, 17,201, 62,110,192, 93,112,228,211, 17,137, 18, 92, 20,129,185, 4,223,119,124,246,197, + 99,254,223,247, 79,152, 20, 10, 45, 5,255,237,215,223,224, 13, 2, 47,159, 31,113,124,112,133,255,238,197, 75,124,239,219, 47, +241, 82, 81,242,197,217,154, 59, 71,199,248,229, 54,202, 78,132,199,247,207,220, 33, 79,174,254, 39, 52, 55,105, 61,109,237, 57, +176,142, 73,170, 56, 72, 19, 46, 5,197,190,148,209,175, 46, 5,161,243, 92, 78, 13,157,130, 44, 77, 17,157,229,139, 44, 39,232, + 12, 89, 85,216,222, 34,108,204, 24, 16,105,130, 20, 32, 50,131,108,101,180,146, 89,144, 34,196,174,245, 73,183, 62, 20,115, 49, + 88, 85,159,250,188,127,137,215, 30,158, 82,255, 52, 46,254,111, 56, 9,159, 52,150,159,214, 53,183,132,228, 76, 72,154, 68, 18, +164,160,149,154, 38, 73,249,184,169, 57,114,158, 50, 77,201, 16,104,231, 49,193,227,250,150,190,175,208, 4,198, 58,229, 96,122, +137,164,152,147, 77, 14,209,217,132, 68, 23,104, 85, 48, 74, 83,114, 25,176,137, 36, 45, 18,250,178,164, 10, 10,100,202,116,154, +209,146, 96,138, 34, 90,152,103, 83, 52,154,201,206, 4, 47, 18,246,230, 99, 58,157,163, 70,211,136,253, 72,199, 8, 51, 4,129, + 25,160,200, 65,103,132, 44, 33,148, 35,194,116, 70,152,141, 9, 23, 15,152,204, 39,136, 34, 71,229, 41,110, 84,210,102, 57, 86, +107,250,124, 68, 95,148,116, 73, 66,159, 23,244, 73, 14, 38,101, 60,158, 49,205,243,120,200, 28,141, 24,229, 83,110,236,204,121, +181,220, 99, 87,103, 28,100, 5, 19,101,200, 84,130, 0,234, 16,187,231,181, 12,220,105,162,246, 34, 12,247, 98, 37, 5,116,150, + 61,169,227, 33,223,122,174, 26,216,241,158,107,153, 38, 21,160,137,133, 93, 6,168,137, 49,212, 50, 8, 30,247,150,142,168, 41, + 90,224,185,211,247,180, 94, 34,117, 64, 50,116,233,198,240, 15,166, 25,223,223, 25,147, 37,154, 75,101,198, 52,207, 9, 2, 70, +163, 29,116, 86, 98,178, 49, 82, 39,236, 77,102,191, 97, 81, 31,144,127,136, 4,150, 21,199,169,225,185,221, 61,188, 15,164, 73, +142, 36,112,190,222,146,153, 4, 31, 60, 18,168,187,134,109,215,224, 67, 96,209,212, 32, 60,174,247,244, 77, 71, 63,228,210, 86, + 3,102,212, 9,197,245,221, 41, 69,153,162,131,163,175, 26, 66,223, 96,143, 55,172,207,207, 89, 86, 43, 74, 36,167,182, 5,219, + 80, 87, 53,181, 13,212, 66,224,172, 69, 26,131, 71,160, 6, 81, 90,245, 36,146,117,181, 29, 80,170, 79,246,250, 14, 76, 10,179, +114,200,251, 13,177,224, 38,146,194, 24,250, 16, 67, 85,250,224,227,223, 75,224,100,245, 12, 55,251,203,133,216,251, 33,212, 37, +141,144,246,100,240,185,167,195,225,225,201, 76,150, 65, 60,183,173,227,191, 7,251,213, 48, 26, 33, 56, 7, 14,181, 98,229, 29, + 86, 4, 10,169, 88, 56, 79, 39, 5, 91,215,145, 41, 67, 67,192,136,136,120,172, 58, 5, 23,198,252,147,127,240, 59,140,178,130, +113,105, 56, 59,237, 41,199, 37,191,251,189,239,243,234, 75,135,140,165,226,157, 15, 62,136, 35,120,223, 15, 62,209, 65, 45,111, +109,124,156,246, 75,190, 20, 63, 16,246,212, 19,225,160,248, 21,199,169,187,255,152,227, 80,243,252,181,171,140,198, 25,213,182, +102,189, 58,199, 89,203,226,232,152,114, 50, 99,113,180,164,235, 3,143,207, 43,156, 84,209,154, 38,163,154,188,183,241,162,109, +122, 71,213, 89,186,222, 71,208,140,136,129, 42,125, 23,255, 44, 85, 28,223, 11, 41, 81, 66, 70, 76,112, 18,133,132,206,121,172, + 8,120, 27, 56, 59,175, 25, 21,154,114, 52,230,230,157,187,124,124,255, 12, 43, 61, 87,230, 19,206,207,106, 42,233,217, 43, 12, + 86, 43,156, 13,144,107,152,100, 76,203,148,121,106,216, 73,115, 70,105, 78,153,102,104, 17, 29, 24,227,209,140, 36, 41, 88,157, + 55,236, 29,230, 20,169,166,178,142,214, 5,214,141,197, 57, 75, 38, 4,243,194, 48,203, 52,153, 86,116,214,209,244, 30,169, 37, +222, 7,150,171,138,147,187,231, 60,120,255, 38, 15, 63,253,148,197,250, 12,156,229,235,175,191,194,254,171, 25,159,157, 44,162, +135, 54, 83, 60,191, 59, 6,224,222,201,150, 63,253,232, 35,178,215,191,142, 74, 21,221,182,225,237,255,237, 15,120,240,224, 14, + 15,190,184,199,163,163,199,236, 95,185,140, 29,101,248, 47,238,242,127,252,203, 31,178, 56,110,233,122,168,148, 98,161, 5,251, + 72,234,222, 33, 47, 77,248,247,127,240, 61,254,189,255,248,183,121,235,173,111,240,131,139, 87,185,171, 39, 28,125,248,115,254, +244,131,207, 57,214,138,214, 7,130, 82,212, 68,160,206,197, 44, 33, 39,176, 94,173, 88,172, 23,116,237, 26,108,135, 20, 80,109, +150,140,178, 17,179,201, 46, 23,139, 25, 55, 38,123, 60,167, 28,157, 80,156,214, 53,243,209,132, 81, 94,240, 79,118,247,121,225, +240, 2,153, 73,176,105,129, 79, 18, 86, 89, 70, 87,148, 88, 99, 40,115, 51, 76,112, 12, 99, 35, 41,133, 36, 81,158, 44, 81, 36, +102, 12,197,136,229,100, 10,213, 34, 30,146,141,132,109, 3, 73, 70,112,245,112,232,126, 6,198, 58,239, 90,238, 8,131, 21,146, +227,147, 37, 71, 39, 43,254,232,139, 5,127,178,108,216,109, 45, 59, 66,208, 28,157, 48,109,107, 46, 4,201,155,205,130,242,120, +193,230,243, 71,252,228,189,119,121,240,248, 46,155,198,178,233, 33,116,158,176,117,132, 85,207, 19,127,169,208,209,154, 37,123, +141, 68, 32,203,146,209,225, 14,106, 54, 98,111, 58, 34,241,129,203, 4,114, 23,200,165, 34, 13,158, 84, 27,122,239, 9, 82,146, + 88, 79,146, 38,140,172,231,174,245,200,209, 8, 89, 53,113, 52,223,244,168, 68, 33,147, 4, 25, 52, 50, 85,200, 36, 71,160,227, + 40, 90, 12,120, 16,231,159, 65, 93,134,110, 93,252,210, 61,233, 87,139,186,140,137,103, 90,225,180,196, 5,112,194,115,190,108, +248,162, 15, 28, 97,217,104,184,217, 87, 28,185,142, 19,109,232,156,165,212,134,194, 58,186,182,163,111, 43,182, 93,141,243,113, + 20,126,169,152, 80,230,115,178,201, 46, 58,203, 80, 38, 31,250, 18,133, 80, 26,215,111,163,115, 33, 85,204,138,148,157,210, 48, +205, 52,179, 34,101,119,158,179,208,134, 23,230, 37,123,153,226,187,251, 51, 94,204, 50,190,115, 56,231, 98, 89,240,214,165, 61, + 94,223, 41,121, 99,127,135, 11,147,168,103, 57,151, 9, 54,207, 98,198,249,116, 68, 24,151, 48, 41, 32, 47, 9,179, 17,255,249, +225, 62, 95, 27, 79,248,209,239,255, 27, 92,170,249,135, 47,191,202,231,206, 82, 37, 25, 78, 42,172, 49,184,124,140, 72,114,118, + 76,202, 44, 43,153,167, 25,227,180,160,212, 9,121,154,147,231,134,125,157,113, 61, 45,153, 61,109, 84, 29,141,119,148, 58, 69, + 73,201, 73, 87, 83, 7, 71, 23,224,220,197, 41, 93,112, 81, 37,176, 47, 5, 91,231,226,161,211,122,174,164,146,151,181,100,162, + 53, 77,231, 80, 18,180, 16,180,222, 51, 23,113, 81,124,106,123,142,156,167, 7,206,122,135,211,134, 5,129,166,143,150, 64, 53, + 76, 51,190, 63, 75,121, 37, 79,184,150,231,100, 90, 49, 75, 51,210,164, 32,207, 71,244, 82, 67, 26, 83, 67, 71,249,136,206,100, +191, 97, 81, 79, 74,200, 39, 48, 25, 67, 94,224,140,102,213,117,148, 73,194,209,118, 27,177,126, 74,209,217, 14, 27, 58, 92,112, + 4, 33, 88,247, 91,206,170,138, 85,223,209,109,122, 88, 14,163,231,222, 15, 10, 87, 79,221,118, 60,222, 86,164,210, 97,108,199, +227, 71,143, 25,245, 91,206,110,222,226,248,225, 61,170,237,134,164,107,233, 19, 77,127,126, 66,221,247,116, 85,135, 48,138,179, +222,211, 43,205,198, 7,186, 1,212,223, 9, 73,174,117, 4,104, 56,192,110, 33,203, 99,202, 28, 33,142,170,181,138,167,190, 52, +254,176,140, 16, 52, 46, 48, 49,154, 78, 4,114, 33, 99,252,251,166,141, 29, 93, 87, 71, 77,192,175, 43,236,195, 69, 77,145, 70, + 98, 93,211, 61,227,220, 19, 24,178, 4, 97, 84,192,114, 29, 59,245,175,234,252, 7,117,206,227, 16,168,165,100, 44, 20,139, 39, +240,194, 16,152,232,132, 51,107, 73,129,199,192,152,192,170, 11,160, 53,175,223,184,194,206,180,228,147, 91, 11,126,252,225,135, +124,253,133, 55,249,238,215, 46, 51,202, 51, 28, 29,127,246,215, 31,196,239,221, 91,144,238, 89,138,222,151, 11,186,181,177,160, +155, 47, 57, 29,158, 78, 50, 6,203,158, 29, 14, 76,244, 44, 62,189,203, 66, 90, 94,126,233,121,102,187, 99, 64, 99,109, 79,221, +108,184,119,255, 30, 88,135,109, 61,203,229,150,243, 85,195,233,121,195,218,122,172,141,190, 89,231,163,195,194,135,128,145,177, + 8, 10,169,201,180,196,203,216,157, 40, 35, 16, 66, 34,165, 36,205, 53,133,137,130,196,182,237,233,157,195, 59,135,240,129, 64, + 32, 47, 82,138, 60,165,171, 60,125,191, 98, 99, 61, 7, 69,201,238, 36, 99, 55,207,152,100, 5,175,236, 31,242,218,213, 43,188, +121,237, 26,175, 93,188,204, 97, 57, 66, 4, 79,166, 19, 38,217,148,131,209, 62,179,241, 30, 69, 54,102,182, 51, 39, 73, 36,105, +154,113,176, 59, 97,111,162, 88,111, 45, 39,171,150,186,235,169, 91, 75,221, 91,172,139, 0,139,101,221,115, 92,117, 3, 9,174, +103,185,109,208, 82,112,113, 86,240,209,199,183,233,250,142, 16, 4, 35,109,184,183, 60, 33, 79, 51, 14, 14, 71, 60,114, 29,155, + 91, 43, 62,187,189,224,161,119,120, 35,232,110,159,209,126,251,155, 92, 26,101,236, 28,140, 56,249,236, 19,148,239, 57,216, 27, + 65, 87,113,231,193, 49,207,141,103,188, 46, 60,147, 44,229, 95,253,243, 31,242,243,191,124,155,183, 63,250, 16,125, 86, 99,179, + 25,166,245,140,171,134, 31,254,233, 59,236, 23,134,145,150, 20,179, 17,238,227, 79,241, 67,222, 64,109, 3,199,206,226, 69, 64, +170, 56,169, 58,175, 26, 90, 91,113,220,108, 57,107, 43,130,119,232, 32,144,193, 33,138, 49,105,146,241,234,124,143,121, 81, 34, + 19, 67, 62,158,115, 56, 46,185, 50,157,242, 87, 31,188,199,215, 14, 46, 51, 25,229, 92, 48, 57,107,161,168, 68, 32, 76,198, 52, +243, 49,173, 16, 84, 38, 35,205, 13, 65, 41, 14,159, 16, 32, 59, 75,131, 64,107,195, 74, 40,242,217,156,231,167,187,124, 97, 74, +168,150,132, 60,137,211,182,103,180,249,248, 62,214,106, 0,154, 88,108, 23,184,237, 61, 39,157,227,167, 85,199, 23,210,115, 41, + 79,184,150,104,174,171,136,236,157, 27,141, 14,150,169,131,169,183,204, 17,220,208, 57, 47,107,133, 10,150,119,122, 31,133, 84, +101, 70,152,150,188,240,252, 14,103, 58,143,108,141, 81,142, 24,101,177, 32,239,207,201,247,118,184,182,127,153,217,236,128,249, +116,159, 92,107, 70,193,146,185,192, 54, 56,140,146, 36, 73, 74, 34, 6,199,128,128,233,222,140,217,188,228, 40,205, 81, 23,247, +163,202,185,239, 81,235, 10, 57, 88, 48,149, 78, 80,169, 70,149, 41, 50,201, 72, 38, 99,176, 49, 66, 86,120,135,124, 50,138, 15, + 1,225, 37,226, 75,147,181,240, 43,133, 93,226,181,138, 68,104,173,113, 42, 90,245,172,244,184,174,230,188,246,124,190,173,169, +145,156, 40, 88,245, 14,163, 18,232, 43,166, 72, 82,235, 88, 85, 11,100,176, 84,206,145, 4,199,133,108, 74, 49,222,197, 36, 57, +114,176, 31,203,201, 24,130, 36,244, 29, 65, 6, 26,122, 58,165,176, 18,210, 36,193, 72, 73,145, 37, 36, 70,147,103,134,151,139, +140,239,141, 74, 94,204, 83,158,159, 76, 25, 39, 57,175, 76,103, 76, 76,193,149,162,228, 32,205,153, 37, 9, 23, 70, 57, 23,114, + 77,154,105,202, 82, 51,202,114,108,150,209, 25, 67, 57, 46,248,135,243, 25,223,158, 28,242,252,104,135, 71,191,243, 22,255,205, +243, 47,243, 63,102, 19,190, 31,122,110, 11, 73,167, 13, 33,201, 73,116,202, 78,146, 48,214,154, 50, 81,200, 32, 73,132, 32, 49, + 5, 82, 72,118, 76,202,142, 50,236, 73,197, 60, 43,105,251, 14,109, 18, 76,136,218,171, 46, 56,106,239,121,228, 90,142,154,158, + 42, 68, 59, 93,240,158,113, 8,180, 34,218, 16, 19, 1, 29,130, 66, 6, 14, 6,235,116, 98, 20, 59, 34,174, 24, 82, 25, 27,151, +202, 7, 62,235, 45, 39,222,179,176,150, 45,130,181,119,116, 38,234,127,100, 26,119,252,215,199,138,151,115,205,243,121,138, 20, +130, 81,154,160,164, 38, 49, 41, 38, 77,192, 36,104, 19,139,122, 35, 98,224,213,223, 94,212,181,142,214,180,217,124, 16, 97, 9, + 16,138,106,213,112,127,185,166,182,209, 7,152, 36,154,117, 91,177,109,107,182,237,154,117,191,102,177,173, 56,174, 42,186,227, + 13,156,157,199, 98, 94, 85, 81,141, 93,213,136,237, 54,170, 89,235,134,187, 15, 79,120,239,227,219,124,120,255, 17,243,163, 99, +214,143,207,201, 60,200,161,227, 95, 29, 47,208,206, 81,183, 61, 8,168, 2, 60,106, 44, 91, 17,208, 8, 66,162,249, 79,190,241, + 61,238,159, 60,196,250,128,147,192,182,130,218, 66, 91, 71, 65,156, 28, 40,115, 58, 5, 99, 40,202,148,174,235,201,211, 20, 45, +161,114,118,160,155,129,237,226,206,132,109, 29, 11,221,223, 52,134, 71,193,116, 52,236,238,135, 81,126,154, 12,150, 64, 61, 20, + 66, 11, 65, 32,148, 66, 84, 27, 68,111, 17, 95, 65, 92,122, 34,116,235,172, 98,173, 2, 90, 68, 14,242,121, 8,232, 16, 34,164, + 14, 34, 54, 83, 39,116,218,209,183, 29,231,139, 19,126,244,233, 61,254,221,237,207,185,125,255, 24,161, 36,207,221,184,206,106, +185,225,230,199, 15,120,239,131, 79,160,170, 65,182,241,249,200, 47, 89,225,244, 19, 33,202, 64,201, 99,176,121,241, 37, 74,223, +147, 36, 58, 63,168, 86, 92,124,218, 39,159,220, 65,151, 25,207,189,248, 28, 89,145, 34,101, 66, 94,142, 25,143,198, 24,173, 57, + 95,157,147,153,148,221,249, 4, 43, 3,182,237, 89,174, 42, 64,144,164, 26, 57,236,168,227,168, 73,160,181,192, 40, 73,145,106, + 18, 19,137,116,153, 49, 24, 19,109,113, 10,129, 35,142, 44,181,150, 24, 36,163,113, 74,150, 27,250,214,211,244,129,157,249,156, + 36, 24,246, 77,201, 40,201,216, 29,237,112,101,231, 50,251,179, 3, 82, 41,201,211,130,188, 40,200,211, 17,163, 98, 66,130, 97, + 50,218,225,240,224, 34, 87,175, 95,226,107,111,220,224,107, 47, 95,225,205, 23, 15,249,250, 75, 23,153,239, 77, 16,202, 48,201, + 60, 77,107, 99,247, 69,244,172, 55, 85, 79,135,199, 9, 65,229, 28,221, 32,124,169,186,136,225, 61,152, 22,188,114,121,206,195, +227, 45,119, 31, 61,102,103,186, 67, 49, 26,209,185,142,207,142,143,104,123,203, 56, 55,164,179,148,116, 47, 35,201, 36,223,184, +178,207,115,215,230,220,122,251,109,158,251,238,183, 40,115, 77, 62,158,115,247,157,247,200,140, 36,207, 82,150,103, 43,116, 83, +225,102,187, 92,254,254,107,140,115,205,135,239,223,102,188,109, 41, 55,231,188,240,234,235, 28, 26,193, 97,154,240,205,221, 61, +206, 22, 13,237,195,115,206,190,120, 72, 21, 28,202, 5,250,222, 18, 46, 93,229, 19, 39, 8,213,150,107, 73,202, 89,189, 65,119, + 53,139,106,195,162,238, 57,204, 52,243,124,196, 56, 47,240,166,160,204, 10,174,150, 35,174,152,148, 34,207, 88,151, 41, 91,239, + 41,138, 18, 35, 53, 95,191,246, 28, 82,193,121, 8,164,147, 9, 15,157,195,141, 74,150,169,230,204,104,164,150, 56,161,232,144, +236, 22, 6,225, 97, 44, 5, 53, 49,102,119,225, 61,169, 76,121,253, 96,204,127,121,117,204,126, 49,229,199,157, 64,108, 22,113, +181,149,165,241,194,211, 89,196, 52, 59, 16,122, 0, 48,185, 14,183,109, 57, 9,158,115,225,153, 11,201,141, 76,113, 45, 53, 28, + 26, 69,153,106,180, 81,140,147, 4, 58,203,193,100,196,100,186, 79,158, 23,228, 74,147, 25,205, 50,133, 59,121,130, 43, 82, 94, +187, 52, 38,207, 12,201,200,176,108, 3,210,129,148, 9, 98, 90,240,143, 47,206,248,230,206, 46, 59,211,125, 70,229,136,185, 78, + 64,101,236,248,232,165,158,100, 25,173,139, 97, 71, 94, 66,162, 20,179, 23, 94, 35,187,244, 18,187, 47,190,201,213,107, 55,184, +180,179,207,165,253, 67,100,230,216, 10,129, 92,108, 80,117,143,202, 13, 42, 77, 81,227,130, 23, 15,246,249,123, 55, 46,243,234, +193,152,135, 94, 96,183,219,193,227, 29, 6,133,248, 87, 11, 93,159, 29,125,124,100, 60, 40,249,180,160, 63,241,222, 59, 15,206, +117,184,117,199,106,189,230,180,182, 28, 47,215,156,250,154,188,173,144,109, 5, 93,133,113, 29,171,170,198,225, 24, 11,201,229, +209, 46, 70, 36, 36, 73,142, 42, 75, 40,226, 90,209, 91, 75,111, 59, 58,223, 83, 7,203, 90,120,250, 97,122, 58,206, 18,114,163, +104,133,228,235,101,201, 85,165,249,198,120,202, 72, 38, 76,147,132,189,108, 66, 80,154,195,108, 76,105, 10, 70,218,112, 49, 31, + 35,131,103, 47, 43, 41, 18,205,200, 24,178, 84, 51, 79,227, 8,250,141,188,224,149,209, 14, 55,202, 57, 66, 74,190, 99,226,234, +243, 37,223,225, 85,164,105, 30,251,152,126, 55, 1, 74,157, 70,235,157,212, 24,161,208, 42, 1, 17,200,211, 20, 27,122, 46,153, + 52,254, 28,131,167, 24,210, 73, 91,231, 72,141,102,221,183, 44,250,150, 19, 34, 6,246, 92,128,117, 14,233, 3,162,181,140,156, +163, 31, 68,205,137, 8,172, 16,236, 9,207,133, 68,115,160, 20,189,119, 44,109, 28,213,111, 61, 28,133,192,167,189,163, 3, 90, + 1, 94, 10, 86, 74,178,237, 37,157,209, 8,165,216, 77, 52,215,114,195,235,121, 74,130,192, 11,193, 78,154,129,214,148, 89, 74, +167, 12,163,108, 66, 67,192, 10, 65,171, 20, 45,242,111, 43,234, 26,242, 18,230,243, 65,232, 37, 98, 39,234,135, 96, 22,231,105, +125,207,178,179,100, 26,186,224,144, 74,177,172, 42,142,235,154,199,143,150,184,199, 3,198,117,187,133,122, 27, 59,102,219,197, + 95,251, 54, 50,144,235, 77, 76,105,170, 54,132,186,102,234, 36, 47, 29,236,176,236, 59,164,209,116, 3, 19,183,147, 18,229, 60, +107, 33,216, 75, 18,238,160, 56,173,106,132,144, 96, 61,159, 31, 61,196, 5, 31,187,246,174,141, 20, 55,250, 72,192, 99,232, 66, +251,161,163, 30,231,244,141,101, 84,150,108,218, 22, 51,248, 64,219,206, 34,108,244, 75,211,181,195,213,223,199,199,236,134,240, +151, 95, 46,236,154,232,209, 87,102,240,245, 63, 17,176, 13,100, 62, 37,163, 16,166,107,227,191,119, 62, 42,235,127, 73, 21,250, +180,168,135, 0,210, 83,106, 77, 39, 33, 23, 34, 54, 51, 65, 48,214,154, 62,120, 52,130, 99,239,216, 19,134, 76, 56, 30, 45, 55, + 60,120,184,102,217, 68, 15,250,241,221,251,124,186, 88,114,235,254, 57, 63,124,231,231,112,239,193,240,216,186, 65,252, 38,191, + 4,191,249, 50,227,241, 75, 93,250,147,130,254, 36,208,135,129, 91,224, 35, 24,230, 73, 0,243,237,143, 62, 37, 45,115, 94,126, +237, 69,164, 22, 84, 85,220,177, 23,163, 17,222,247, 52, 93, 77, 62,158, 34,125,236,198, 43,219,209,214, 61, 89, 97,168, 90,135, +181,129,118,128, 5,101, 70, 12,137,107,146,204, 68,174,123,162,163,167, 61, 75, 35, 36,168, 72, 12,137,145, 20,153, 97, 50, 74, +217,153,229,236,143,114,116,102, 72, 83,205,238,180,100, 50,157,144,148, 99,164, 77, 41,179, 73, 60,104,204, 38,104,149, 82,148, + 37,229,100,130,239, 28,163, 73,201,165, 43,151,120,225,185,171,188,244,194, 33,175, 94,155,113,125,191,228,112,148,178,172, 60, + 39,149, 37, 83,129,159,124,252, 41, 31,125,122,139, 11,135,115,186, 16,109, 74, 1,232,156,197, 89,199,170,238, 56, 91,214, 44, + 87, 53,155,117,195,114, 81,177,218, 52,224, 3, 51,173, 57, 93,183,172,214, 13,203,245, 25,206, 58,164,210,104, 17,184,119,182, +161,183,158,113,110,112,206,243,112,213,209,245, 45,207, 31, 92,224,130,134,254,249,151, 40,210,132,189, 11,115,254,206,223,125, +139,127,253, 71,127,129,198,146,164,138, 59,103, 43,108, 82, 50,187, 48,231,229,215,111,144, 9,207,189,229,130, 43,187, 5,147, +170,230,181, 23,110,160,100,244,212,103, 70,113, 84,181,244,125,141,245,129,102,179,193,246, 45,119, 31, 63,224,139,119, 63, 34, +236,205,249,189,107, 47,242,163,197, 9,250,236, 20,223, 91,174,204,199,204,243, 49,187,229, 4,159, 21,140,138,146, 81,146,112, +209, 7, 14,147,132, 10,207, 23, 65, 18,140,166,114, 1,202,156, 44, 79,163,151,118, 50, 97, 45, 5, 39,227,156, 83,239, 57,107, + 29,105,158,208, 33,216,108, 58, 92, 31,181, 19,107,101,184,231, 2, 43,157,176,242,154, 66, 27,124,219,241,143, 47,141,184,190, + 63,166,212,112,115,107,216, 14,221,210, 75,218,177, 40, 75, 84, 97, 8,153,161, 40,115,108, 63,192,150,140,140,141, 67,223, 16, +218,134,149,183, 8, 23,152, 75, 73, 39, 60, 34, 79, 40,166, 41,218, 24, 18,173, 24, 21, 69,212,120, 36, 57,141,117, 44,148,100, +101, 18,198, 38,176, 78, 52, 70, 74,178, 84,115, 94, 91, 54,181, 5, 37,249, 71, 23, 10,254,233,197, 57,191, 59,223,225,107,229, +156,153,210,156,166, 57,157, 16, 92, 8,129, 52,120,114,111, 89,119, 29,101,145,177,117,142,253,162,160, 30,205,209, 7,215,217, +185,124,133,253,113,206, 94, 86, 32,146,168, 50,223,223,217,231,242,100,204,168,148, 44, 87, 21,186,181,232, 50,198,170,254,222, +245, 23,248,173,253, 75, 76,138, 57,171,212,113,212, 6,100,211, 33, 91, 79,220,172, 63, 41,236, 79, 70,111,191,104,193,123, 86, +216, 45,222,232,167,183, 51,175, 98,172,177, 87, 34,170,253,113,132,243, 53,225,248,132,118,181,229,222,189, 5,247,206,150,152, +174, 70, 88,139,235, 58,148,247,140,145, 28,152,132, 60, 31,163,179, 18, 97, 36, 66, 39,248,182, 39,216, 46,194,110,250, 45, 15, +251, 13, 27,192, 72, 65, 47, 20,185,140,174,158, 23,178, 28, 21, 60, 95,203, 70, 84,222,179,151,143,208, 58,197,152,132, 84,103, + 72, 19, 15,241,133,206,232,125,199, 44, 25, 97, 67, 20,252,153, 36,165, 39,144,106, 69, 34, 4, 87,139, 9,215,210, 18, 7, 8, +101,112,193,161,148, 96,150,166, 44,173,101, 65,207,137,139,148,186,204, 40,100,240,104,169,209, 33,234, 94, 52, 2,149,168, 56, +169, 19, 10,239, 45,123, 58, 37,115, 49,181, 45,174, 81, 4,125,223,113,220,213, 60,234, 59,142,125,207,178,110,169,188,163,222, + 84,120,231, 72,136,233,141,115, 37, 41, 8, 44, 3, 36, 14,238,123,193,124,144,250, 87, 66, 48, 29,178, 46,238, 5,207,207, 26, +203,137,136,119,227,141,128, 70, 8, 86, 8,182, 14,102, 25, 36, 8,156,150,124,215, 40,114, 21, 72,165, 34,151, 10, 37, 97,100, + 12, 94,106, 50,157, 18,148,198, 73,195, 86, 42, 92, 16,212,206,253,109, 69,221, 67, 49,137,197, 41, 75,145,105, 74,158,153,184, +115,126,194,126,223,214,224, 61,139,147, 21,167,189,231,164,173, 88,220, 63,166, 62, 90,195,253,251, 49,106,175,105,127, 45,113, + 78,124,197, 8,122,108, 20, 78, 25,198,121,202,102,216, 73, 97, 20,161,237,177, 70, 83, 40,205,143,219, 22, 41, 29,141, 84, 52, +125, 28,127, 58, 31,227, 63,159,250,192, 87,213,160, 54, 31, 32, 51,142, 24,161,234, 93, 76, 72,155, 79,232,186, 14,169, 4, 14, +137, 36,224,196,192, 77,223,110, 99,145, 14,196, 68,165, 39,187,102,220,175, 22,117, 33,162, 32, 47, 49, 81, 5,255, 36,110,240, + 75, 4,168,104,155, 27,168,119, 74, 12,135, 26,251,171,150,143,167,248,215,104,191, 16, 66,209,136, 64, 75,160, 28,138,236,142, +138,202, 78,124,160, 35, 48, 21, 9,210, 58, 54,161, 39,172,182,209,166,101, 27, 86,189,229,168, 90,194,249, 42, 30,168,156, 69, + 72,251,139,223,199,126,169,176,243,165, 46,253, 73, 97, 87, 67, 65,127, 26, 43,203, 51, 55,192, 19,201,128,132,207,222,255,152, +253, 75, 23,185,252,220, 37,130,144,241,166, 93,109, 98,206,177,119,156, 30, 69,246,248,225,165,125,210,196, 32,165, 98,127,146, +179,173, 45,219,206, 98, 18, 29,173, 98,131,242, 88,105, 25,119,234,131, 30, 40, 51, 10, 41,100, 28, 83,132, 24, 96, 49, 42, 82, +178, 52, 33,211,138,162,212,164, 3,163,160, 72, 37, 89, 98, 40,138, 4,167, 3,206, 90,140, 82,228,217,152,209,180, 36,201, 12, + 74,105,188,179,204,103, 35, 46, 94,153,114,105,167,224,202, 44, 35, 79, 52,141,245,124,113,222,242,120,189,225,232,248, 17,111, +191,251, 14,159,223,249,152,119,111,221,230,133, 27,215,153,143, 51,188,139, 81,172, 77,211, 83, 55, 29, 77,213,179, 89, 54, 52, +155,134,237,186,162,173,163,117,241,112, 82,208,184,192, 23,199,231,204,247,247, 64, 26,206, 54, 75,214,237,134, 68, 27,146, 52, +208, 59,143, 11, 1,105, 36,153,150,172, 58,203,221,229, 25,214, 89,142, 63,187,197,139,223,120,157, 43, 70, 49,145,138,249,213, + 43,172, 62,191,137,147, 49, 69,110,181, 56,229,185,195,203,204,118, 70, 92,127,245, 6,133, 72,120,251,147,155, 76, 83,193,119, + 94,123, 61,142, 97,133,224,104,211,114,210,247,156,110, 54,252,235,144,113,195, 85, 60, 88,157,241,227,179, 83,154, 71,167,240, +224, 1,223,159,103,124,162, 10, 30, 39,154,229,135, 15,120,245,234, 30, 89, 94,146,103, 5,118,160, 96,181, 82,145, 9, 65,112, +158, 62,201,184,217,244,164,211,130,109, 27,185, 1, 73,162,152,206, 74,156, 13, 44,156,228,124,219,114,182,110,232,170,138,243, +243, 45,235, 85, 67,150, 72,232, 58, 10, 9,171,198, 67,154,210, 39, 26, 53,206, 89, 39,134,165,147,172,130,229, 18,240,251,103, +150, 59,125, 20,118,190,216,175,113,218,112, 65, 9,190, 57,155, 96,140,231,226,184,164, 44, 37,139,173, 7, 23, 16,125,253,165, +123,137,227,204,118,124,216, 86,188, 93,247,172,164, 67,105, 67,105, 34,223, 94, 5, 71,240, 61,155,174,230,147,174,226,166,132, +165,237, 81, 54,130,100,214,189,163,233,123,238,156,117, 32, 5,151, 71,134,223, 27,165,252,214,108,198, 56,203, 81,206,210,120, +203,231,213,134,190,222,162,155,138,108, 16,147,101, 66,198, 12, 4,163,217, 72, 77,153,164,152,233, 1, 7,187, 51,198, 69,206, +220, 40, 10, 41,240,214, 49, 73, 82,102,243,125,158,219,191,198,155,151, 46,243,202,254, 28,187, 62,231, 82,154,243,189,157,125, + 46,236,204,240,198,112,167, 17, 60, 76, 4, 74, 39,200, 52, 65, 56, 27,239,109,222, 35,126, 81, 20,243, 11, 35,248,167,157,123, +128,160, 36, 94, 69,175,187,215, 50, 22,125, 69,140,254,236,135,228,189,182, 3, 2, 77,215,113,123,221,177,170,107,142,234,138, + 16, 4,133, 22, 28, 74,193, 40, 27, 35,149,142, 94,116,231, 8, 93, 71,223, 84, 84,245,146,181,171, 88,248,158,115, 28, 54, 8, + 74,165,216,120,199,133, 36,103,233, 29,175,166, 37, 78,192, 78,154,227, 66,160, 76, 75,156,148, 36, 67,167, 29,144, 32, 60, 18, + 69,235, 45,141,239, 81, 82,196,164, 70,165,240, 56,180, 48, 28,100, 25, 59,186,196, 17,133,144,133,214, 52, 46,242, 12,206,187, +134, 47,250,154, 51, 27, 83, 21,147,224, 49, 62,166, 45,106, 17, 48, 2,204,144,224,102,131,167, 11,158,214,121, 18,219, 49,147, +138, 4, 73,211, 54, 88,107,121,216,108,185,217,172, 57, 13,150,133,235, 88,247,142,123,103, 43,124,219,195,166,162,109, 59,138, + 32,201,148,103, 97,195, 83,109,208, 38, 4, 30,181,158,187,210, 83,247,158,255,175,237,249,172,182, 44, 67,224,175,154,104,239, +189,221,131, 87,129,147, 14, 86, 34, 82, 64,141, 86,100, 18,180, 8,212, 34,112, 73, 73, 10, 33, 41,132, 64, 43,129, 64,146,104, +131, 73, 50,122,101, 56, 69, 80, 17,232,130,199,255, 70,234,119,229, 33,207,193, 36,140,203,156, 30, 71,110, 98,238,186,171,251, + 88,176, 23,143,225,232, 4, 78,142, 8, 15,143, 34,175,184,218,254,198,108,147, 95, 46,236,167,206,243,242,100,140,205, 20, 90, + 64, 19, 4, 88,135, 50,154,166,107, 56, 87,138, 76, 9, 30,183,158, 83, 47,162, 2, 52,132, 33, 28, 96, 80,118,111, 99,188, 94, +204, 74,183,207,226, 98,245,144, 25, 63, 60, 7,180, 38,248, 64,112, 46, 30, 8,194,128,114, 53, 67,215,237,109,204,154,175,171, +248, 90, 72,241,235, 19,215,166,243,152, 57,175, 99, 44,171,176,195,215,139, 33,226,181,233,227, 24,223,251,248,152, 93,247,213, +232,245, 39, 2, 60,192, 89, 69,103, 5, 19, 3, 99, 33, 81, 74, 81, 57,135,247,158, 14, 24, 11,112,196, 19,232,105,227,152,164, +208, 58, 23,247,248,121, 49,188,163, 29,244, 53,162,111,159,165,185, 61,117, 53,248, 97,189, 96,159,141,229,191,124, 59, 8,225, + 41,244, 98,240,202, 12,135, 27,255,139,157, 62,240,222,143,127,198,181, 23, 95,226,226,181,125,148,138,227,240,190,173, 9,193, + 19,164,167,235, 90,206, 78, 79, 89,158,173, 57, 61, 57,229,248,180,102,211, 52, 44,207, 42,130,145,212,173, 99, 85,117,228,169, +137, 36, 37, 25,187,118, 33, 32, 49,146,220, 72, 50, 99, 40, 51,131, 82,138, 44,215,228,137, 65,232,103,137,123,189, 13,120,160, +106,226,227,156,142, 50, 46, 95,156, 82, 76, 50,246,246, 51,202,169, 97,190, 83,176,183, 87, 50,219, 31,243,198,245,125, 14,167, + 25, 69,170, 56, 95, 53,188,247,197, 17,127,241,238,199,124,246,217,103, 60,184,247, 57,239,126,248, 1,239,220,185,203, 7, 71, +103,220, 91,214,204,172,231,245, 87,111,144,104,133,146,130,214, 58,234,186,139, 74,233,100, 80,231, 35, 48,153,224,187, 59, 99, +174,239, 78, 88, 54, 29,247,207,150, 28,238,205,152,204, 10,148,202, 73,188,225,209,250,148, 68, 42,186,224,176, 33, 48,207, 51, +202, 84,115, 56, 29,147,106,137, 87,130,169,239,121,225,198, 75,104, 41,105,140,164,219,159,179,253,226,140,176, 61,167,200, 34, +147,253,179,207,110,114,249,197, 23, 80,121,202,141,235,135, 76, 68,198,163,197,130, 63,249,252, 30,223,184,122, 13, 39,224, 94, +219,241,227,247,255,138,127,249,254, 71,156,187, 45,159,156, 63,230,246,241,130,243, 91,199,132,205,146,208,215,252,248,206, 61, +170,197,121,212,126, 92, 61,224,179,207,239,241,181, 43, 87,232, 16,104,147, 32,165, 70, 73, 67, 45, 37,231,193,115,146, 40,130, + 49,180, 77, 71,235, 4,181,243,148,133,142, 14,141,174,103,187, 56,161, 91,109,120,184, 94,163,172,165,173, 43, 18, 44, 73, 83, + 83, 12,139,148,121,145,144, 24, 9,121, 78, 39, 36,231,121,202,120,148,241, 96, 27,248,201, 73,205,209, 98,203, 73,103,121,113, +123,206,166,111,185,150, 25,178, 44, 99,229,122,174,103, 5,149,235,249,121, 19,248,214,229, 41, 15,151, 77,212,183, 40,255, 21, +250, 23,199,163,186,225,167,235,154, 73,237,168,154,158,181, 11,220,238, 90,254,109, 93,243,158,235,120,108, 27,250,182,165, 58, + 89,178, 17, 48, 71, 82,213, 45,137,132,177,145,228, 26,126,123,146,179, 39, 32,241,176,174,215,252,116,121,198, 95,110,215,248, +110,131,169, 43,164,237, 72, 17,204,180,194,202,152,123,208,218,158,198,164,204, 38,187,204,178,130, 50, 79, 81,157,195,244,142, +177, 73, 24, 39, 49,222,118,119, 50, 66, 39, 57,187,187,251,188,178,127,141,203, 50, 33, 23,208, 55, 29,119,234,138, 7,189,227, + 76, 72,212, 56, 71,230, 10,145,151,136, 52, 71, 8, 29, 27,135,158, 47, 37,221,127,133,120,206,251,104, 15,244,224,181,124, 6, +219, 81,224,219,246, 89,135,159, 38,241,158, 85, 78,162,226,123,119,206,114,235,216,236,206, 41, 85,180, 90,153,106, 73, 46, 20, +216, 30,231, 2,206,246,212,245,146,141,173,120,208,174,121,224,123,194,112, 24,239,173,101,100, 82, 30,246, 45, 87,179,156,218, +121,118,147, 12, 33, 4,101, 54,198,227, 24, 23, 99, 54,189,197, 38, 6,223,119, 36, 73,130,247,129, 62, 6,145,178,234, 59,156, + 20,108,156,165, 37,250,243,149, 80,132, 0, 83,157, 80, 26,141,247,144,105,195,178,169,185, 93,175,184,213,212,172,172,165,119, + 22, 33,160,243, 29,184, 30,231,122,164, 23,212,125, 77,215,182,113,109,208,117,212,237, 10,217, 55, 44,251,142,166,171, 57,233, + 27,150, 93,197,173,102,197, 99,103,121,212,110, 57,247,150,202, 5, 78,215, 91,194,106, 75,240,241, 48,153, 36,134, 32, 4,153, + 20, 20, 74,176,112, 30,235, 97, 27, 96,225, 5,183,122,207,194, 11, 30,118, 61,183, 58, 71,135,228,220, 7,122, 33,216,122, 73, + 31, 2, 4, 65, 72, 37,170,243,148, 6,218, 32, 81, 42,176, 35,227,253,246,192,104,206, 58,143,146,195, 24, 31,193, 93, 4,149, +214,108,173,195, 42,205,169,237,126,131,162, 46,135,113,241,124,142, 49, 18, 53,156, 66,170,174, 31, 84,225, 50,166,183, 53,221, + 47,118,124, 38, 25,198,209, 67,241,252, 13, 18,221,158, 22,119,163,185, 27, 20,151,138, 4,239,162,154, 93, 40,205,178,169,241, + 58, 3,231,248,211,109, 75,162, 52,219,174,123, 54,178,126, 18, 74, 51, 96, 72, 89,159, 15,227,227,225, 77, 46,205,112,189, 91, +240, 38, 78, 32, 82, 3,189, 67, 9,143, 25,242,208,131,148, 76,132,164,109, 26,216, 14, 65, 44, 97, 16,136,245, 3, 0,225, 87, +242,209,135, 56,131, 44,133, 34, 69,108,187, 24, 30,131,143,175,159, 34,230, 78, 53, 45, 34,196,132, 34,209,118,113, 63,246, 85, +175,131,247,113,220,175, 61, 16,149,171,137,144,180,222,145, 72,193, 8,141, 23,209,226,118,223, 91, 82, 33,120,209, 72,250,224, + 89, 63, 61,180, 71,127,232,244, 96,143, 23,222,120, 13,117,225, 2,219,109, 15,161,128, 55,223,226,183,127,231, 63,227,158,115, +136,211,123, 3,246, 54,137,107,132,108, 54,144,244,220,211, 20,165, 39, 12,249,120, 24,248,245,232,220,119,254,242,199,188,241, +157,111,177,115, 56,197, 24,141, 48, 17, 4,227,173,199,139, 16,223, 68,244,180,182, 37,132,192, 98,177,160, 40, 74, 50,147,210, +182, 22,147, 74,242, 68, 83,166, 6, 59, 88,251,139, 68, 33,130, 36, 77, 34, 38,209, 7,143,210, 2, 51,172, 16,210, 65, 89, 47, +164, 32,213,160,165, 36, 85,138,249, 40,225,218,126,201,238,184, 32,203, 19,202,145, 65, 75,197,254, 52, 99, 50, 74,160,235, 89, +215, 27, 30,174, 54,252,252,243, 35,126,244,206,187,124,252,241,251,252,240,131,119,249,232,209,125,126,254,248, 49, 31,221, 62, +230,252,108, 75, 95, 59, 72, 21,143,215, 75, 94,191,126,131, 75,187, 99, 18, 45,233, 7, 63,233,141,189, 17,111, 28, 76, 48,101, +138,212,146,231, 74,195,235,243, 49, 58, 4, 62,126,184,224,180,110,184,118, 48,101, 90,102, 60, 56, 62,231,202,254, 30,105, 82, + 98,148,224,218,197, 43,236,230, 35,178, 52, 33, 77, 36,243, 52, 99,150,151, 92,221,221,103, 50, 26,241,232,206,125,194,206, 5, +238,120,135,208,146, 27,223,122,137,229,199,247, 16,182,166, 76, 19,188,119,124,254,241, 45,246, 47, 94, 98,220,116,220,184,178, +199,121, 29,200,131,229,224,149,235,180,121,224,255,250,131,255,147,211,236,144,147,106,133,255,236, 1, 77,223, 81,183, 45,225, +100, 67,168,150,208,219,168,228,237, 35, 62,149,182,131, 43, 23,185,174, 52, 90, 27,180, 82,244, 2,130,183, 56, 9, 78,104,214, + 29,100,153,161,239,123, 84,179, 5, 27,120,116,182, 65,216,142,237,249, 18, 87,173,113,237, 22,221,181,156,184,158, 77, 8, 20, +125,203, 78,128,185,235, 25, 19,152,107,195,104,148,162,149, 98, 17,162, 80,236,226,200,112, 48, 47,208, 38, 69,105,201,158,131, +102,189,228,249,105,206,231,235, 45, 85, 83, 51, 78, 19, 54, 78, 18,148,224,181, 81,202,191, 93,118, 4, 45,226,248,157, 4,136, +150, 72,190,228, 51,143,133,205,242,254,166,229,253,206,178,178, 45, 15,131,231, 78,221,179,168, 58,110,159,158,243,201,249,154, + 99, 47, 73, 15,167, 28,142,115,122,231, 56,119,150, 92, 10, 50,161, 48,157,101,209, 54,252,236,228,140, 63,124,112,202, 63,123, +188,226, 81,235,223,218,122,142, 0, 0, 32, 0, 73, 68, 65, 84, 40,250,154,210, 58,250,224, 56, 52,112,142, 98, 36, 35,244,164, + 82,154,115,192,168, 17,187,147, 9,174,233,145,137,162,237, 44,157,237,153,142, 50,242, 84,147, 35,152,101, 9,210, 72,228, 40, +103, 60,223,197, 8,131,237,122,100,215,161,113,164, 66,178, 22, 10,161, 21, 34, 53,200, 81, 10,227, 2,161, 82,152,140, 96, 60, + 66,204,102, 48, 29, 62, 85, 2, 98,136, 58, 30, 92, 65,193, 71,239, 63,206,199,146,233, 6, 63,126,154, 12, 22,194, 36,162,116, + 83,141,184,122, 41, 94, 15, 55,174,210,212, 91,252,120,143,170, 93, 34,203, 9,105,187,161, 35, 32, 92,207,233,246,148,135,253, +154,155,205, 57,183,250,134, 58, 4,114,165, 56,235,123, 10,163,169, 67, 96, 71,106,110, 91,203, 11,105, 70,231, 45,123, 3, 86, + 91, 11,201,253,182, 65,100, 25,155,182, 67,165, 41,174,235,105, 67, 36,190, 45, 92, 75,175, 36, 39, 93,131, 11,130, 30, 75,227, + 44,214,119, 20, 90, 51, 18,138, 92,106,130,117,212,182,227,110,189,230,131,237,130,135,117,197,195,166, 34,177, 29,139,205, 6, +219,119,136,182, 66,186,150,163,213,130,174, 94,115, 94,109,184,249,248,152,227,205, 25,155,243, 21,141,175,121, 92,109,184,181, + 93,241,160,221,242, 97,181,226,182,183, 28,185,150,165,117,108,123, 79,223,121,172,137, 19,226, 32,227,244,163, 19,224, 19,133, +245,112,226, 35,222,213,138,161,190,200,232, 12, 32, 12, 26,181,109, 19, 67,139, 92,120,182, 10, 85, 17, 40,132,133, 30, 1, 22, +198, 38,208,183, 16, 8,236,132,168, 35, 19,193,211, 58,203, 61,239,168, 93,207,210,104, 78,125,160, 22,112,218,247, 52,184,223, +160,168, 59, 23,109, 77,121, 17,115,109,125,244, 20, 71, 16,118, 23,137,105,155,234, 23,153,230,105, 18, 85,230, 98,160,237, 60, + 21,173,254,134, 81,173,206, 17, 18,201, 35,239,201, 18, 77,145,106,238,172, 27,110, 20, 57,143,154,154,207,164, 71,120,197,137, +227, 89, 7,110,135,168, 83,231,159,112, 19,227,239,187, 38,118,221,246, 73, 94,252, 80,241,236, 96, 61,211, 42,142,124,134,238, + 2, 37, 25, 11,201,170,237, 73,122, 27,215,198, 77, 19,199,248, 16,159,167,245, 95,253, 58, 57, 96, 92,198, 40, 65, 99,158, 61, +134, 68, 33,150,213,179, 9, 65,219,198,215,198, 61, 27,193,127,101, 97,103,232,216, 77, 44, 84, 78,122,118,134, 28,225, 6,203, + 4, 73, 47, 34,125,110, 46, 37, 39,206, 81, 15, 63,124,242, 98,112, 43,104,190,121,245, 57, 94,190,112,157,111,191,246, 53, 66, + 6, 15,215,129,255,234,119,255, 35,254,139,255,224, 5,222,250,230,215,121, 72,224,248,163,219,209, 37,144, 20, 17,154, 19, 52, + 40, 59,164,222,133,103,241,181,246,215, 20,244, 98, 20, 41,117,192, 95,255,155,191,224,205,183,190,199,222,254,152, 36, 75,201, +199, 17, 29, 60,158,206, 41,166, 35,242,162,164, 44,198,164, 69,134, 78, 52,245,118,201, 98,177,224,236,108,129, 16,154,245,214, + 97,117, 20,157, 44,219, 62, 2, 54,132,136,161, 6, 66, 80,217,104,119, 19, 16,177,172, 79, 70,139, 2, 50, 25,119,241,137,138, +113,168,121, 98, 8, 90, 83, 26, 67,145,166,236, 76,114,114,105,216, 52,150, 85, 93,211,214,150,109,219,113,126,178,230,241,163, + 71,124,248,240, 17,119,238,158, 83,173, 27, 90, 27, 96,107, 33, 85, 20,251, 25, 47,237, 77,152, 22, 6,187,172,217, 59,220, 35, + 85,154,210, 36, 92,158,229,188,185, 63,229,202,238,136,157, 44,193,139,192,170,141,252,231, 63,187,121,159,159,222,250, 28,215, + 89, 46, 30,238,177,169, 90, 30,159, 46, 33, 75,217,187,176,135, 16, 9,194,121, 52, 10,135,136,202,230,196, 48,206, 11,102,211, + 29,116, 94, 98,130,103,251,197,103,220,201,118, 41, 52, 72,173,217,236,236,113,252,232, 4,217, 86,100, 74,147, 39,154,234,241, +130, 23,111, 92,198,143, 75, 70,215, 15,185, 56,155,243,220,133, 9,255,243,255,250,191,243,216,106,110, 62,188,135,127,239,179, +216, 97,244, 3, 40, 41,209, 48,140, 94,201,146,120,205,118, 33,178,240, 23, 43, 62, 29,101,252,252,236,148,185,140,176,155,182, + 9, 72, 36,219,222,227,189,163, 58, 95, 83,120,135,105, 26, 54,213,130,166,233,121,176, 92,243,117,111,249,142,250,255,185,123, +179, 88, 79,211,252,190,235,243,108,239,246,223,207, 82,167,214,174,234,165,122,186,123,118,207, 52,198,177,227, 69, 38,118, 98, + 71,193,114, 34, 43, 66, 17, 4, 9, 41, 8, 36,110,184,135, 11, 64,202, 69, 16, 8, 16, 8, 4,145,130,130,132, 4,138, 9,177, + 49,182,135,140,199,158,173,103,198, 61, 61,189,119, 85, 87, 87, 87,215,114,234,236,255,253,221,158,133,139,231, 61,117,170,151, +217,130,114, 97,254,210, 95, 71,213,234,243,255,191,231,125,158,247,249,109,223,197,176,221,172,249, 95, 95,125,135,105,162,152, +183, 53,173, 15,156,107, 23,236, 8,120, 6,216,202,114,130,137,243,113,169, 20,189,194,240, 92, 63,163,144, 48,201, 20,152,132, + 69,229, 24, 38, 57,199,171,154, 13, 45, 24, 38, 18,231, 26,188, 8,224, 21, 90, 75, 46,171,192, 93, 27, 58,133,200, 64,168, 98, +135, 41, 88,255,177,118,116,144,158,202,183,220,169, 43,110,156, 44,120,255, 96,197,157,195, 25, 15,103, 51, 78, 86, 11, 14,147, +148,187,189, 28,231, 5,223,159,215, 44,124,212, 42,210, 26, 94, 94, 52,124,103, 85,243,207,239, 30,243,206, 73, 13, 58, 26,207, + 12, 7, 25, 57,130, 84, 43,246,130,194, 39, 9, 7,193, 51,147,154, 67,169,144, 82, 83,122,199, 80, 37, 4, 99,152,151, 53,199, +182,197,118, 92,231, 84, 70,153,217, 44,209,228,157,219,159,151,130,180,200,217,233, 13,120, 34, 31,115, 25, 67, 17, 2, 9,146, +125,239, 58, 49,154, 72, 17, 37,213, 29, 86,168,207,197,115, 19,126,229,210, 57,126,245,137,203, 60,113,174,207, 29,169,105,181, + 1, 17, 25, 7, 4, 79,176, 54, 86,153,222, 71,113,152,212,196,162,103,178, 1, 27, 35,206,237,108,178,218,222,138,103,231, 96, +192, 24,139,239,111,208,184, 10,219,223,224,126, 61,227,158, 73,121,111,190,207, 93,225,184, 85,206,120,208,214,188,189, 94, 16, +108,205, 72, 41,246,109,205,213, 52,227,196, 58, 82, 33,216,199,243,108, 90,240, 70, 83,115, 53,201, 57,112, 22, 33, 4,239,218, +150,190, 73,249, 65, 85, 34,180,228,164,169,104,164,162,242, 45, 75,160, 68,112,220,148, 44,189,167,148,138,149,107,105, 90,203, +220,182,164, 66,162,130,227,214,226,132, 58,180,220, 94,207,184,177,156,242,160,109, 56,110, 43,234,170,225,100,182,162, 89,174, + 88,175, 74,102,211, 5,135,211, 25,139,195, 37, 71,251,199,204,142,166, 52,135, 7,212,251, 83, 22, 71, 83,118,247,167,220,245, +154, 70,171, 24, 36,149,102,213,182,148, 77, 32, 72, 73, 89, 91, 86,222,178,180,254,145, 57,149,232,101,120, 33,105, 90, 79,109, + 36,161,245, 56, 29,133,130, 30,157,155, 42,137,138,108, 74, 64, 17,129,154,103, 50,129,157, 69,169,232, 92,234,188,165, 9,158, + 66,195,134,130, 99,231,232, 35,152,150, 13, 43,111,249,147, 69,133,177,142, 3, 36,139,208,130,144,204,125, 4,138,214,136,159, +144,210,230, 92,156,201,230, 5, 33,216, 24, 60,155, 58,182, 60,151,107, 88, 47, 62, 28,176, 83,211, 9,183,116,182, 61,167, 22, +166, 63,133,255,122, 0,146, 34,103, 90, 55,184, 32, 73,240,124,253,112, 69, 98, 4,109,235,216,175,125, 87, 61,119,124,115,173, + 98,183, 32, 87,176,174, 35, 31,220,159,122,134,119,215,108, 84,231, 59,222,137,195,184, 22, 76,246,200, 65, 45,116, 66,179,141, +173, 9,222,227, 84,128,217,178,163,165,117, 98, 54,237,143, 80,151, 75,101,228,242,107, 29,221,136,124,180,116, 21, 77,211,113, +216, 29,212, 54,154,222,167, 18, 33, 76, 76, 58, 78,173,246,126,152,240, 79,231,143,254,172, 78, 89,227,200,145, 44,136,129, 77, + 7, 40,164,228,158,181, 92,209,154, 61,101,104,179, 33,161, 95,116, 9,129,224,194,198,132,107,151,159,140,200,209,124,192, 43, +187, 31,240,111,252,234,231,249,212,149, 9,227, 66,179,191, 47,120,253,165,239,117,237,247, 78,156,199,119,162, 61,117,123,214, +129,249,104, 64, 47,178,120,255,174, 63, 15,131, 49,108, 92,128,227, 35,192,243,237,175,252, 41,159,251, 75, 63,203,120, 84,224, +136,244,143,114,189, 98,117, 60,195,121, 71,219, 52, 81,224,195, 89,234,186,162, 63, 26,146,164, 9,179,147, 25, 7, 7,187,104, +211, 35, 0, 59,147, 30,163, 92,227, 36,156,148, 13,166,211, 87, 87, 2,124,136, 92,119, 33, 5,153,142, 85,158,150, 26, 41, 85, +244,146, 14, 2,143, 68, 40, 25, 15,203, 68, 70,189,248,202,177,110,106,172,107, 81, 26,166,139,134,245,170,230,251,183,222,224, +157,189,121,228,154, 42, 21,147,209, 76, 49,218,200,184,216, 47,216,232,103,108,247,251,212,190,197,137, 12, 47,213, 35,145,190, + 69, 21,165,108,119, 79, 86,188,124,251, 33,239,221,127,200,205, 7,123,220,216,123,128,117,142, 98, 48,100,114,126,147,219,247, +246, 89,206, 23,148,229, 42,186,212,245, 50,174, 93,187,196,249,139, 27,244,123, 3,180,202,176,173, 37,237, 15, 41,155, 53,182, +110, 16, 90,145, 21, 5,217,221, 91,204, 70, 91,140,100,224,122, 63,227,249,103,159,102,125, 82, 17,234, 57,121, 86,144, 38, 25, +199,211, 22,181,179,201, 94,213,240,236,229, 77,254,163,255,244,191,224,181,111,191,193,244,189,251,132,249, 52, 74, 89,166,130, +176,170, 9, 78, 17,146,132,225,102,143,122,101, 65,248,200,248,176,113, 92,116,249,242, 54,139, 96, 97,235, 9,126, 69, 84, 4, +149, 50,111, 26,172, 11,220, 43, 75,214,117, 77,174, 53,214,181, 80,206,168,235,154,253,197,140,145,146,252,198,120,194, 53,101, +216, 80,134,230,226,121,158,154,108,112,239,248,136, 70, 6,174,226,185, 28, 2, 67,109, 24,248, 22,147,100,184, 16,152,154,132, + 11,189,132,169,139,136,248, 74, 8,122, 50,176,118, 62,170, 34,162,104, 76,142,105, 3, 43, 27,169,167,155,169,225,104,221,146, +230, 41, 3, 41,217,119, 46,210,223,180, 36, 52, 14,178,156, 80,175, 63,196,221,126, 92, 51,221, 75,112,218,199,119, 7,100,242, +117,133,175, 3, 7,203,150, 48, 91,196,115, 57, 81, 44,140,161,173, 28,117, 89, 35,234,238,124,201, 2, 33,207, 88,104,195,168, +208,232,188, 0, 99,168,165,198,106,197, 2,193, 80, 18, 21,191, 58,252,236,222,122,201,126,219,112,100, 75,214, 30, 22,109, 75, + 79, 42,114, 21,249,236,198,131,177,142,108,144,115,113,107,200,214,120,192,168, 87, 48, 50, 25, 67,175,201,165,198, 90,203,145, + 16,177,163, 18, 58,157,116, 35,121,170, 63,224,111, 95,186,194, 95,185,116,149,141,172, 71, 45, 13, 7,161,229, 80,201,248,188, +230, 69, 84,214, 44, 6, 49,208,164, 5,194,228,209, 69,115, 99, 19,206,141, 33,203,248,204,230, 6,207,231,154,139,249,144,237, + 36,231,124,127,204,115, 9,156,235, 15,112, 85,197, 42, 29,178, 91,214,232, 65,159, 89, 83, 82, 74,201,253,122,197, 40, 53,145, + 2, 38,224,185,164,224,157,182,225, 66,154, 49,199,115,197,100,188,222,212, 60,159,245,121,205, 86,140, 84,194, 59, 33,112,222, + 24, 94,105, 74, 46, 36, 57,175,181, 13,107, 9, 55,154,146,131,110,170,182, 86,154,123,214,226,140, 33, 56,139, 82, 6,149, 36, +236,151,107,148,183,188, 52,159,241,126,189,226,219,199, 71,124,251,232,152, 91, 85,195,237,163, 41,179,217,138,102,177, 34, 44, + 86,132,178, 34, 44,231,177, 72,105, 60,193,183,113, 39,172,235, 24, 87, 37, 4,105,163, 86,100, 11,195, 73, 63, 22, 94, 33, 48, +115, 1,235, 60, 7,109, 75, 42, 37,211,224,112,182,165,105, 44, 20, 73, 28, 47,122, 98,140, 8, 34,198, 1,219,129,141,148,124, +100, 28, 38,186, 14,103, 32,196,160,190, 88,158, 41,159, 74, 16,170, 51,175, 9,145,194,188,106, 29,139,210, 97,240,220,154,213, +220, 44, 27,222, 94,214, 76,107,203,205,117,203,173,170,137,250,154, 34,142, 95, 87,193, 82,150,229, 79, 24,212, 79, 3,187,239, +244,209,203,170,227,155,183, 17,185, 94, 86, 31, 49, 0,209,143, 80,223,248, 83,190,120,243,211,153,136, 56, 71,211,180, 88, 89, +112, 56, 95,115,216, 74, 84, 2,211,101,195,244, 84,183,187,141,178,149,168,238,100,149, 34, 2,243,210, 46, 19,242, 46,210,217, + 48,157,154,154,143,227, 0, 97,227, 99,157,100,241,161, 72, 35,208, 44, 40,213,101,176, 93,101,186,174,187,207,233,192, 99,117, +243,163, 19,147,214, 66,154, 68,105,195, 83,254,109,219, 62,194,151,161, 4,233, 86,159,191,247, 11,159,229, 11, 87,118,248,204, +213, 29, 94, 93,183,112,112,244,113,214, 1,143,181,229, 93,180, 35, 60, 20,130, 73,128,105,240, 92, 82, 9, 46, 4, 86,206, 50, + 84, 26, 21, 60,203,126, 31,113,105, 27,159, 22, 52,242,148,150,230, 89, 53, 53,231,243,130,224, 28,251, 71,247,121,111,239, 24, +213, 66, 49,232,243,238,238,154,255,253,155,223,164,124,247, 78, 76,118,172,237,208,254,246, 49, 79,121,251,225, 57,122,218,135, +254, 8,174, 94,227,201,167,159,230,231,158,249, 12, 69,158,146, 37,154,217,178,130,114, 1,192,183,254,248, 79,121,254,103,191, +204,100,220, 39, 16, 40,215,117,228,165, 59,135, 76, 20, 70, 39,164,131,156, 36,205,241,221,131, 34, 59, 94,120, 86,228,156,204, +150,236,159, 44, 57, 92,181, 44, 86, 45,182,182,148,141, 35, 75, 21,206,197,249, 32, 34,138, 58, 32, 4,214, 5,210,196,144, 24, + 29,133, 48,132,140, 10,111, 50,138,110, 4, 31, 56, 94, 53, 28,206,151, 20, 41,236,238,175,184,253,193, 33,135,135, 83,254,219, +191,255, 31,227, 46, 92,227, 92, 95, 50,109,227,104,233,234, 86,193,115,231,199, 20, 90,113,105, 50, 98,107, 48,164,245,142, 69, + 89,177, 94,206,217, 24,111, 16,132,228,120,177,230,131,227, 21,183,246,230,188,125,255,144,233,225, 49, 77,213, 48,155,207, 59, +228,173, 33, 47,250,180,173,224,222,221,219, 4,239, 41,203,117, 20, 94, 42, 75,164,201,184,184, 51, 97, 60,204,121,225, 83,151, +216,220,220, 96,190, 88,211, 44, 43,150,235, 21,149, 83,172,231,199, 40, 37, 88,220,120,141,139, 91,151,201,140,166, 21,160,159, +216,193,222,185,207,108,185,100,144,247,153,156, 59,207,231,175,159,231,229,247,118,249, 63,191,251, 22,239, 52, 21,161,108,160, + 46, 9, 36, 81, 45,205,219,168,206,102, 27,152,244,249,119,159,218,226,217,243, 3, 94,185,127, 4, 78, 71,237,123,173,153,159, + 44,249,210,246,152, 23, 38, 59,252, 7, 63,247, 34,127,248,242, 55, 24, 20, 57,223,152, 30,243,160, 46,185, 55, 59,160,169,150, +188, 59, 59, 1, 15,235,122,201, 27, 15,247,248, 66,166,121,177, 63, 98,152, 20,204,109,203, 74, 90,254,195,127,243,175,178,145, +143,249,254,189,125, 46, 40,203, 57,161,216, 9,209,145,175,157, 47, 56,177,160, 18, 73,139,166,159, 39,212,225,140, 62,234, 91, +199,210,118,192,174, 34,163,241,129, 75,105, 1, 38, 37,209,134,161, 49, 84, 74,113, 80, 86, 76,101,231, 56,153,103,132,113, 63, + 58,251,109,108, 16,122, 61,130, 73, 9, 38,199,215,229,163,201,243,227,239, 83,170,151,247,158,176, 90, 18,230, 75,130,111, 32, +207, 17, 91, 99,138,126,143,214, 68,165,200, 32, 69,215, 1,108, 97,111,142,149,146,157,157, 9, 99,109, 40,117, 26,177,176, 66, +208, 55, 41,147,108,128, 70,144, 40, 73,161, 36,211,118, 69,226, 29, 85, 93,113, 82, 87,180, 90, 49,183,150, 60, 64,129, 66, 87, + 13,253, 34,101,251,194,128,254,184, 71,111, 82, 32, 19, 67,162, 13,133, 52,168,186,198, 21, 9, 53, 41,115,147, 34,104, 17,203, + 5, 56,207,207,108, 20,252,252,214, 54,227,162,143,150,134,239, 47,102,188, 84, 89, 90, 37,161, 40, 96, 56,130,241, 48,186, 88, + 22,177,117,207,176,135, 56, 55, 70,108, 12, 32,201,248,237,115, 19,180, 8,244, 85, 66, 47, 81,124,106,178,205, 88, 64,149,228, +248,182,100,115, 48,162,106, 27, 54,122, 41,179,218, 49, 40, 18,230, 66, 48, 74, 50, 22, 66, 49, 82,154,167,139,130, 91,222,241, +116,214,231, 1,158,109,147,114,211,181,124,161, 24,242,186,109,120,190, 24,114,219, 53,236,104,195, 77, 41,121,218,100,220,241, + 45, 27, 42,225, 43,171,134, 59,109, 64, 43,205,161, 72, 57,242, 45,100,195, 40, 17,157,230,216,166,230,192, 5, 46, 24, 67,233, + 90,116,213,240,157,131, 53,251,123, 83,202,227, 5,213,222, 67,194,172, 36, 44,203,184,215,215, 77,236,216, 56, 8,173, 3, 17, +249,254, 17, 48,221,126, 8,135, 16, 26, 75, 16,146,121,101, 41, 6, 25,139,224,153,173, 43,130,209,140,148, 98, 29, 2, 25,112, +210, 90,130,245,143, 5,244,199,156, 47,101,167,147, 46, 59, 90,176, 52,241, 12, 61, 29, 19, 11,209,197, 6, 23,207,202,166,138, +197,166, 13, 81,115,193,118, 64,229,198, 97,181,100,181,172,104,239, 28,224,119,134,132,170,138, 14,134,117,133, 93, 91,246,102, + 37, 33, 85,236,207, 23,204,235,146,121, 85,253, 20, 65,189, 3,155,196, 25,115, 29, 51,145,229, 52, 86,199, 31, 13,116,237,169, + 63,123,167, 47, 30,236, 79, 85,165,127,168, 13, 47, 34,194, 51, 40,112,243, 21, 78, 71,167, 40,116, 71,191,242, 93, 27,163,233, + 28,218,132,136, 45, 68, 41, 98,219,220, 73,240, 21,164,105,188, 86, 69,156,167,159,250,144,247, 11, 88, 85,177, 45,213,118,237, +230, 32,186, 68,197,199,224, 92,182,177,218,255,104,242,242,137,192,128, 40, 8,129, 84,143,104, 99,143,108, 20,123,138,223,249, +220,115,124,249,179,215,185,118,229, 18,189, 65,159,137, 49,188,121,119, 63,222,207,254, 4,182,182, 97,251,114,119, 96,116, 98, + 57,105, 52,124, 9, 65,177,173, 4,233,233,193, 35, 37, 70, 37, 84, 69,193,232,218,147, 20,151,174, 32,242, 1, 66,122, 18, 37, +177, 68, 81,150,160,160, 45,167, 52,229,138,187, 7,251, 28, 77,103,220,218, 61,226,251,119,142,185,189,123,132, 78, 3, 83,217, +121,200,231,166,115,228,235, 16, 53,217,169, 61,173,120, 36,246,241, 59,127,251,111,240,155,191,249,235,252,214, 95,126,145,207, + 92,127,138, 34, 45,104,203,150,131,114,198,108,185,140, 93,157, 14, 33,255,210, 87,254,140, 39,174, 63,205,165,203,231,208,137, +193, 5,129,107, 91,108,211,210, 84,209,187, 90, 73,133,210, 18, 39, 2,109, 93, 33,141,196,186,104, 35,136,128,217,241, 34, 58, +142,245, 83,238, 60, 56, 97, 94,182,172, 43,199,176,103, 88, 55,142,117, 29,157,151,124,128, 52, 49, 56, 33, 98,192,116, 33,250, +186,187,208,209,118, 2,193, 70, 69,191,187, 15, 23,124,251,123,111,178, 94,174, 81, 65,112,225,153,231,217, 24,110,176, 44, 79, + 48, 6,206, 13, 50,182,122, 57,105,146,160, 4,244,211, 12,165, 52,173,109, 73,181,138, 66, 55,227, 62,155,163,130,224, 3,109, +221,224,156,163, 90,173,177,190,198,214, 45, 38, 55, 12,134,131,232,159, 83,215, 28, 30,239,177,174, 74,172,143,146,201, 50, 64, + 99, 91,214,203, 5,249,160,207,221,123,135,236,223, 59,100,213, 88,202,178,138,244, 32,231,168,133,102,160, 2,101,179, 66, 6, +193, 63,127,243, 13,174, 94,185,198, 50, 81,120, 41, 96, 99, 27,125,120, 72, 80,146,171,159,190,198,238,225, 9,255,253,127,253, +143,216, 31, 13, 8, 65,112,117,123,196,201,209,156, 96,163,189,103,112,154, 32, 45, 1,201, 95,237, 23,252,141,171,151,152, 76, +206,113,151,150,189,131, 69, 92,107,219,194,186,102,119, 81,177,215,204,233,111, 95,226,205,226, 2,127,114,251, 6,203, 15,222, +167,109,214,184,195, 35, 78,238, 60, 96,189,156,243, 96,247, 33,187,199,115, 88,172,121,113,152,112,217,244,104,129, 91,205,146, + 69,211,240,153,139, 23,248,218, 94,197,157, 96,120, 38, 84, 12,133,230,138,201,240, 77,205,180, 92, 49,173, 86, 52,141,101,152, +165, 72, 35, 17, 70,162,188,160, 42, 91,142,234,200,201, 14,137,162,240,129,103,198, 3,182,123, 57, 79,142, 70,108, 21, 3, 84, +218,167,245, 18, 31, 2,203,186,100, 59, 49,156,207,115,174, 12, 70, 12, 55, 71,108,109, 78, 56,119,110,135,213, 32,167,214, 2, + 95, 12, 9,182,194,183,246, 19,131,251,153,147, 88,108, 83,227, 26, 66, 0,159,104,124,104, 34,142, 72, 40,254,206,149, 17,127, +237,137, 77,254,108, 81, 19,170, 53, 15,156, 68, 20, 61, 6, 89, 2, 58,165, 16,138,173, 52,163,113,158,139,105,193, 42, 56,150, +109, 77,102, 18,178,224,105,218,146,204, 40, 78,234, 53, 85, 8,184, 0,125, 2, 61,169, 40, 50, 67,186,221, 39,233,231, 72,173, +162,131,105, 16, 80,182,164,206,147, 56,135,207, 53, 83,217,167,202,250, 48, 62, 15, 82, 48,240, 13,147, 96, 81, 54,240,205,147, + 35,190, 58, 91,112,212,214,144,102,244,139, 1, 73,154,146, 38, 9, 77,154,128, 17,136, 44, 69,228, 25, 36, 25,191, 56, 28,242, + 75,219,155,140,211, 30,107, 33, 80, 4, 54,250, 27,188,190, 92,115, 97,115,147,188, 90, 49,200, 71, 28,172,231, 12,123, 99,180, +107,240, 73, 74, 45, 65,163, 88,184,134,158,148,172, 67, 96, 22, 60, 79,154,140, 93, 1,219, 66,242,126,176, 92, 55, 5, 63,104, +215,124,177,152,240, 70, 91,243,132, 73, 57, 20,146, 39,133,230,221,224,184,164, 12, 95,171, 45, 90,167, 44,146, 52, 42,215, 25, +137,206,114,110, 47, 42,134,195, 49,109, 93, 82,166, 57, 89,154,145,138, 20, 35, 2,137, 12,172, 68,224,120, 81, 19,234, 10,188, + 32, 40, 27,215, 47,184,104,186,162, 32,184, 78, 73,179,237, 4, 58,234,211,130,165,195, 93, 88, 23,139, 25, 35, 8, 73,193,220, +123, 86, 62,158, 79,198,195,202,121,188,245, 76,109,131,111, 61, 94,118,138,114,174,251,189, 54,196,100,207,187, 88,220,213,174, + 43,238,162, 48, 26, 82,119, 44,168, 83, 68, 98, 32, 74, 24,218, 88, 48,182, 1,154, 53, 66,201,200,220, 10,237, 35,239,145,254, +207, 61,207,175,255,194,175, 49,185,180,197,221, 31,188,129,119, 14,239, 26,124, 91,115,184, 42,217, 95, 58, 30,204, 75,118,231, +229, 79, 25,212, 93,231, 7, 94, 55, 17, 13,222,254,136, 96, 29,186,249, 51,246,147,103,208, 63, 77, 31, 94,133, 88,233,135, 78, + 60,166,237, 2,185, 15,103,148,171, 83, 32,151,144,241, 64,106, 59,212,182,179,157, 14,123,135, 80,119, 26,124, 19, 51, 85,219, +145,141,243, 36,182,153,173,139,111,245, 88, 85, 90, 69,126, 42,101,219,181,236,221,143,189, 94,225,186, 44,190,181,145, 67,239, + 99, 71,225,252,185, 17,191,246,165, 79, 51, 30,111, 32,181,102, 60, 28,160,148,231,107, 15, 14,163,144,198,198, 38,191,252,133, + 95,226,153, 43,207,176,177,189,195, 60, 87, 48,153,224, 70,227, 56,235, 46,250, 28,139,140,162,200, 88,110,142,217,186,122, 29, +189,185, 65,178,189,205,197, 11,207,176,179,245, 36,147, 98,136,210,158, 84, 9,164, 10, 24,169, 56,159,165,104, 4,139,186,229, +225,186,164, 57, 46, 17,212, 76, 46,110,243, 59,191,254, 34,127,235,231, 63,197,214,104,204,203,111,220,141,155, 92,117, 18,177, + 38,116,179,158,110, 22, 36, 5,140,174,240,203,191,240, 34,189,188,160,223, 75,105,218,192,114, 94, 81, 54, 53,175,127,112,159, +102,247,118,151, 4,157, 9,202,127,255, 27,223, 35,233,245,185,122,253, 10,195, 65, 15,235, 2, 38,141,148, 12,173, 20,202,168, +168, 42,151, 38, 36, 89, 66,154, 36, 72,109, 88,173,102,148,229,138,197,244,144,245,170,100,186, 40, 73,179, 4,148,160,117,142, + 59,247,142,185,125,231,144, 50,120,234,198,243, 96,186,164, 14,158,163, 69,116, 73,187,249, 96,193,113,217,128, 8,172,234,154, + 89, 85,241,222,238,140,155,119, 30,242,242,159,191,129,111, 45,121, 97,184,117,231, 22,139,234,132,175,255,254,239,243,220, 11, + 79, 51, 74, 13,189,196,144, 38,138,126,154,161,181,194, 57,139, 15,158,225,176,207,100, 99,194,120,115,131,119,111,220, 96,126, +176,224,137, 39, 47,178, 49,206, 17, 82,178,152,174,168,203, 10,169,162,184,133,119,129,249, 98,198,162, 90,226,188, 39, 81,154, +166, 45, 49, 90, 99,148, 65, 25,133,208,154, 64,194,241,241, 58, 2,247,238,221,225,206,238, 7, 28, 29, 31,147, 25,197,131,221, +219, 72, 13,133,201, 17, 82,144,184,138,111,191,250, 58,227,107, 79, 51,159,215, 28, 79,215, 12, 81,188,240,229,231,120,240,193, + 3,254,203,127,240, 15, 9,195,148, 48, 24,240,244,248, 28,191,120,225, 28,149,104, 56,120,176, 23,207, 18,121, 10, 30,243,188, +187,172,216,222, 26,240,170,215, 84,131, 77,238, 29, 79, 35,144, 7, 27,159,183,186,198, 46,106,190,253,224, 30,187,227,109, 66, + 2,236,237,194,195, 67,196,193, 20,148, 68, 78,143,162,234,240,122,137, 90,172,121,114,144,226,104,120,216,214, 60, 16,130,243, +166, 64, 60, 56,160, 76,115,110,212,150,220,193,139, 89,206,121,147, 48, 65, 82, 84, 75, 74, 23, 56,241, 22,231, 37, 18,133, 22, + 18, 71, 96,191,116, 76, 27,139,112,142, 92, 4,174,244, 82,174,231, 42, 42,197, 77,250,244,179, 20,157,103, 52, 33, 97,238,115, + 18,225,144, 50,112,165, 95, 80,164, 25, 74,103,236, 12, 7,132,160,184,212, 27,161,243,148,117, 97,104,130, 38,120, 73, 80, 1, +223,218, 15,181,230, 63,106,125, 26, 90, 11,179, 57,254,112, 30,193,191, 43,203,223,188, 52,226,239, 60,117,133, 79, 77, 54,184, +220, 19,124,237,193, 49, 65, 40,218,113, 76,242, 76, 98,216,214,138, 84, 37,108, 36, 25, 51,215,208,215, 41,235, 16, 53,192, 69, +176, 40, 33, 72,157,195, 72,197, 10, 88, 52, 53,206,181, 76, 80,244, 70, 41,201,184,128,160, 16, 50, 82, 8,221,178, 69, 84, 45, + 38,120,250, 66,145, 74, 56,108, 61, 85, 62, 68,141, 54,217, 26,110, 51, 73, 39,124, 80, 46,120,105,127,159,239,150, 21,123,101, +133, 73,114, 70, 4,206, 43,195, 68, 74, 90,223,178, 45, 37, 94, 26,172, 78, 65, 8,118,122, 3,254,253,171, 87,248,197,237, 29, +206,101, 57, 15,154,134,117, 62, 68, 9,193, 23,183,182,120,176,174,216, 25,142, 56,168,106,174, 15, 71,172,155, 53, 62,201, 88, + 59,139, 5, 26, 44,153,146, 44, 90,203,200, 24,148,139,238,107,153,179,204,149,230,162, 54,188,211, 86,124, 62, 27,240,157,122, +197,245, 36,229,182,141,149,249, 45, 44, 79,201,148,119,189,101,152,102,188,237, 96,101, 50, 46, 25,143,201,115,156, 15, 92,204, + 19,172,131,116, 48, 64, 91, 71, 26, 2,187,182,166,144,134,165, 15,188,125, 60,231, 92,207, 48, 21, 50, 26,255,216,216,109, 12, +105, 10,182,237,176, 21,177, 94,139,129,221, 34,130,239, 84, 52,187,192,124, 26,220, 91, 75, 8,109,231,194,150, 98,157, 71,106, + 88,181, 45,214,123,188,148, 88,231, 8,136, 51,183,207, 68, 19, 84,199,241,149, 42,250,180,166,230,209,104, 87,136, 83,254,175, + 56,227, 1, 55, 54, 22,147, 77, 21,199,181,162, 99, 69,181,109,108,213,251, 14,184,218, 90,154, 59,187,188, 83,205,185,251,250, + 77,194,122,253,161,189,234, 91, 27, 29,235,234, 10, 87,173,127,218, 74,253,167,120,121,255, 73,236,138,127,177,207,105, 79,181, +210,125,148, 88,149, 62, 86,224,170, 67, 20,186, 16, 3,206, 41, 24,175,125,140,142, 69,135, 90,119,246, 76,196, 89, 6,176, 50, + 90,234, 40,115, 6, 6, 75, 77, 92,144, 14, 48, 39,137, 45,219, 71,215,240, 73, 28,117, 62,130,248, 79, 82, 68,136,170,123,104, +137,208, 34, 82,236,180, 36, 29, 13,184, 48,218,226,250,213, 29,154,214,209, 88,199,235,239,238,243,131, 91,183, 65,107,190,244, +244,179, 92,217,188,202,160, 72, 24,229, 35,206, 15,183, 57, 63,222, 98,107,180,201,212,173,105,165,128, 84,225,243, 62, 95,120, +234,103,184,124,233, 83, 12, 70,219, 76,134, 19,118,118, 46, 99,250, 57, 70,235, 40, 52,225,106,188,111, 59,224,152,102,208,203, +169, 90,207,193,170,194,175, 23,144, 14,248,173, 95,252, 57,126,249,179,151,216,238,103, 44,170,154,175,254,249,219,221, 24,163, + 75,152,156, 7,225, 62, 60,236, 15,129,231,158,190, 70,154,231,184, 32, 56, 62, 94, 48,157,157,240,242,187,239,242,240,213,215, + 59,179,154, 56,210,160, 55,140,182,180, 73,143,155,175,190,198,205,163, 41, 79, 94,185,194,246,206,152, 52,141, 21,181, 78, 77, + 4,136, 72,133,210,209, 96,231,248,225, 62,243,163, 99,210,126,129, 64,160,140, 34,235,229,113,148,176, 90,178,119,255, 30, 94, +106,170,178,194,121,199,201,193,148,123,119,247,152, 30, 45,168, 90,207,189,221, 67,110,221,188,207,108, 58, 99,212, 79, 25,102, +134,183,223,185,195,155,175,191, 79,185, 42,217,189,247, 16, 66,137, 39,208, 54, 21,155, 91, 27,100,169,230,179, 95,124, 1, 33, + 4,214,183,164, 90,147,152,132,212, 36, 88,231,200,146,132,201,104,192,100,123,139,197,108,198,239,189,244,231,188,250,123, 95, +225, 7, 39, 71,108,167,125, 62,253,169,171, 76, 6, 57,135, 39, 37,101, 85, 19,112, 88, 91, 81,173, 75,130,112, 88,219, 18, 66, +160,106,107,218,198, 33,181, 36, 77, 83,146, 52, 37,207, 11,180,201,249, 31,254,243,191,207, 42, 83, 60,117,241, 9,132,128, 59, +251,123, 20, 90,115,251,120, 22, 27, 37, 70,144, 37, 5,105,146,146,135,192,242,214, 77,222,247, 9,243,147, 19,152,157,176,213, +235,241,250, 31,253, 1,183,111,223,137,235,176,189,197, 47, 93,188,202,100, 52,162,110, 4,239, 29, 29, 65,181,254, 16, 26, 28, +103,249,238,221, 19, 30, 76, 6,140, 19,197,238,180, 11,234, 70, 69, 77,233,102, 21,159,175,117,137,112, 51, 56,119, 25, 33, 3, +226,120, 14,179, 35, 68, 98,162,116,169,144,200,202,161,122, 57,247,102,107, 66,112,172,141, 98, 96, 82,174,165, 61,206,103,125, +174,175,150, 60,151, 40,254, 68,229,252,229, 80,179,163, 37,217,186,164,239, 32,149,129, 99, 33, 57,106, 61,203,101,197,209,178, +101,247,168, 97,225, 37, 77, 93, 99, 36, 76,180,228,185, 73,194,118,145, 48,233,165,104,169,200,178, 4,175, 12,199, 46,224, 85, +198,170,105,217, 73, 2, 7,141,165, 17, 9,219,253, 2, 23, 20,105,170, 73,242, 30, 82,229, 36,198, 96, 83,205,218, 72, 66,211, + 65,115,196,153, 35, 91,248, 33,193, 29, 31,131,123,200, 11,206,111,244,120,114, 48,160,111, 18, 94,218, 63,226,229,105, 11,174, +161,116,129,173,201,132, 45, 90,198,105,143, 43, 89,129, 11,176,242,142, 6,207, 68, 25,102,109,133, 21, 34,138,137, 0,199,245, + 18, 97, 29, 7,203, 21, 53,129,208, 54, 12, 91, 73, 49,200, 65, 10, 92,101,169, 22, 22, 97, 29,218,122, 84,136,179,247,148,128, +203, 53,165, 73,201,123, 9, 23, 6, 5, 27, 89,198,181,241,152, 75, 58,229, 25, 9, 6,199, 6,146,157, 44,193,132,134,129,146, +164, 85, 67, 38, 37,137,138, 74,124,107,161,121, 82, 75,254,202,214, 38,147,201,132,188,223, 99,225, 37, 43,161,216,234, 13,184, +217, 74,158,204, 13,135,222, 51, 50,146,135,192,192, 7, 14, 2, 72,111,169,131,194,224, 56,113,129,158,130,135,214,114, 73, 42, +156,244, 56,165, 24, 11,193, 45, 91,113, 61,201,121,185,173,249, 76,154,241,102, 83,115, 53,201,184,237, 45, 87,149,226, 29,107, +177, 42, 97,215, 9,118,209,236,136,192,118,191,135,118, 81,193,209, 41,205, 74,196,209, 93,240,240,190, 83, 60,155, 36,212,194, +179,169, 52,123,205,154,210,186, 40,190,213, 70,231, 52, 76,151,144, 17,147, 34,244, 41,144,218,253, 72,208,111,232, 66, 71,176, +167,192, 74, 69,211, 52, 56, 43,176,194,163, 36, 88, 58, 16,156, 20, 12,211,132, 70, 10, 6,137,129,196,224,106,219,137,121,117, +133,208,227, 1,221,118,223,127,170, 54,106, 58,155,111,219, 60,242,149,127,132, 63,235, 18,141, 71,201,198,193, 17,172, 63,252, +252,250,199,233,138,222,227,189,255,151, 24,212,255,101, 37, 10,208,129, 15,136, 70, 42,190,243, 66,183, 93,171,188,113, 17,224, +100,187, 96,244, 72,100,229, 84,212,197,199,223,179, 33, 46,114,211,130, 54,177, 90,135,216,162,207, 12, 10,129, 95,119,116, 57, +239, 98,144,230, 19,140, 88, 30,151,211, 85, 41,164, 10,145,165, 93,101, 27,187, 6, 66, 68, 43,203,114, 94,147,100, 61,122,253, + 62,203,202,113,111,127,197,183,222,188,193, 73,217,242,212,120, 27, 39, 44, 23, 55, 47, 61, 98,200, 25, 97, 24, 15, 55, 25,101, + 99, 92,104, 89, 87,115, 18, 45,249,244,149, 43, 60,247,220,103,185,250,244, 5, 46, 92,220, 1, 82,164,146,228,121,156,179,183, +245, 26,215, 68, 87, 45, 37, 2,163, 94,129,247,176, 40, 43,142,167, 43, 56, 62,128, 36,197,228, 9,231, 46, 92, 32,184,134, 63, +250,179, 55,185,121,231, 78,119,223,186,150,145,107, 63,158,149,249,134, 87,239, 31,242,173, 27,183,249,214, 27, 55,248,230, 59, +183,120,253,253,251, 28, 61, 60,224,111,254,230,207,242,175,255,173,223,224,185,207, 63,207,203,223,191, 1, 62,233,124,234, 13, + 56,199,124,255,128,111,253,193, 87,113, 50,176,181,115,129,243, 59, 99, 76,146,224,173,167,109, 90,218,117, 77, 83,215,209,110, + 80, 43, 66,112,172,150, 11,130,117,184,182, 97, 62,157,226,108,131, 76, 20, 77, 85,178, 90,158, 48,159,159,176, 88,156,208, 31, + 12,192, 4,214,235,146,123,119,222, 35, 79, 11,206, 95,218, 34,205, 13,111,188,123,151,178,110,184,246,204, 37,108,240,172,171, +138,197,106, 78,101, 43,130,176, 44,203, 37,141,179, 52,117, 69,235,124,244,118,150, 18, 33, 4,121,146,209,239,231,108,109, 71, + 3,163, 55,110,220,224, 15,255,155,239,176, 62,120, 43,222,143,147, 25, 63,216,219,227,206,222, 30,215,174, 61, 65,154, 25, 80, + 10, 87,133,152, 16, 18, 8, 33,154, 25, 37,137,193,249, 22, 79, 32, 87,134,254,104, 68,150,230,236,236,236,208, 75, 21, 63,243, +175,188,200,231,158,122,134,157,157, 45,116,146,163,154,166, 91, 67,143, 82, 10,111, 3, 66, 9,180, 74, 56, 55, 57,199,214,198, +132,203, 82,115,174,153,243,185,237, 45, 66,219, 66, 47,227, 7,245,154,240,240, 8, 76,194,221,188, 32,144,242,181,218,130,110, +225,193, 49,225,180,203,214,218,174,117,216, 80,175, 42,246,122,134, 80, 90, 88, 77,227,115, 83,251,216, 37,203,123, 80, 86,136, +178,134,190, 66, 12,207, 65,181, 64,212,209, 79, 65, 74,133,208, 6,217, 58,148,116,136,166,197,214,142,107, 90,114,181,223, 99, + 39,205, 25,233,148,145,206,185,188, 94,241,215,151,199,252, 39,235,138, 47, 52, 11, 70,206, 33,165, 34, 73,251, 28,201, 56,190, +154, 53, 13,213,226, 4,218,134,178,182,228, 89, 74, 42,225,252, 36,229,217, 97, 78,145, 36,160,100,172,140, 58,190,117,107, 20, +171,218,163, 80,204,219, 64, 46, 4,195, 52,195, 98, 64, 40,140,202, 16, 68, 1,163, 86, 42, 42, 28,115, 33, 9, 90,197,106, 73, +234,232,223,254, 35,186,113,225, 49,110,202,237, 34,163,202, 4,119,154,134,127, 60, 93, 99,219,238,240, 93, 55, 28, 41,193,179, +147, 17, 27, 74,163,129,149,181,108,165, 5,214, 7,214,193,161,165, 66, 11,205,210,183,100,202,144,134,192, 73,185, 68,249, 22, +223, 86,148,193,211, 11, 18, 83, 69,189,137,122,218, 80,213, 45,198,122,180,146, 36,202, 32, 90,135,106, 29, 74, 5, 22, 90,211, + 47, 82,122, 74, 48,208,146,139,253,132,177, 74, 9,214,177,157,100,104,225,193,214, 76,122, 19,114, 37, 17, 89, 74,223,104,132, +151,108,102, 3,130, 82,140,148,226,114, 63, 39,213,145,138,252, 45, 27,184,172, 19,238, 5,120, 58, 81,220,108, 3,151, 18,195, +210,123,122, 77,131,211, 10,211,214, 28, 6,131,161, 97,209, 74,250,162,101,209, 90, 54,149,228, 36, 56, 76,128, 77, 41,121, 24, + 2,215, 84,194,187, 33,240, 41,173,121,197,181, 60,111, 50,110, 56,203, 19, 58,229,166,247,140,211,130,251,174,225,102, 48,188, +208,211, 36, 58, 71, 10,203,162, 12, 20,169,161,213,134,147,101, 75,146, 72,150, 65,115, 61,145,236,121,199,180, 93,147, 4,216, + 78, 18,246,171, 53,101,128,182,170, 8,210, 61,162, 5, 7,225,227,200,164,163,239,253, 72, 22,207,135, 0,202, 93, 85,223,205, +183, 49, 50, 2,168,219,216, 78,151, 74,211, 79, 18,192,179,105, 52, 13,146,129, 84, 8,163,162, 56,152,235,132,198, 78, 65, 85, + 46,116,214,222, 34,198, 31, 73,236, 42,107, 5,165,251, 16,131, 76,252,136,198,117,248, 33, 58,255,167,239,191, 88, 65,253,113, + 78,184,150,145,122,147,152, 51, 21, 52, 31,226,251,212, 63, 61,116,173,144, 83,218,155,140,170,177, 52,117,156, 29,219, 54,242, + 90,179, 52,182, 57,172,143,193,189,113, 4, 37,232,208, 85,103,105,155,236, 16,253,159,228,175,110,116,164,149, 36,105, 68, 49, +158, 42,238, 5, 16, 34,116,238,108,142, 7,193, 50, 16,125, 30, 30, 44,216,221,223,231,246,225, 30, 95,188,242, 2,227,193, 6, +155,197, 38,139,106,129,109, 26,202,186, 68,139,132, 44, 43,176, 77, 77,107,107,198,185,102,104, 18, 46, 76,182,184,254,236, 85, + 54,198, 3,164, 12,180, 45, 84,117, 77,189,110, 88, 87, 75,108,168, 70, 44,229, 0, 0, 32, 0, 73, 68, 65, 84,211,224,124, 29, +141,226, 84,244, 97, 89,217,154,233,170,101,117, 52,139,135,246,106,201,131,217, 9, 95,123,247, 3,222,190,117,204, 55, 95,127, + 7,246,119,187,204,209, 70,240,134,111,207,118,202,227,187,108, 57,135,197, 18,151, 12,248,242,245, 39,249,194,181,107, 60,115, +241, 60,207,191,112,157, 81,209, 71,169,148,175,127,247,205,174,131,210,117, 83,100,167,244,167,224,253,183,239,243,205,255,231, +107,156,148, 21,195, 98,192,230,206,136,209,100, 64,146, 39,164,121, 78,214,239,145,247, 50, 6,163, 33,195,141, 17, 74,106,156, +183,136, 16, 98,117, 93, 53,180,174,197,152,132, 36, 51, 12, 55, 38,164, 69, 65, 83, 47, 41,215, 75,180,145, 12, 55, 71,120,233, +152, 46,102,180,117, 69,214,207, 56, 56,154,114,251,238, 17, 34, 52, 8, 44, 74,197,245, 52,105, 66,158, 39,244,123, 61,146, 68, + 97,140, 33,207, 18, 54,198, 99, 6,227, 1,105,150,241,230, 59,239,240,251,255,244,101,238,189,241, 10,164,211, 15,175,253,124, +193,131, 27,239,241,135,239,222, 34, 43,107, 46, 93,185, 72,175, 95,160,141,129, 16, 80, 42, 33, 49, 41,173,111,144,104,134,195, + 49, 59,151,174,112,241,226, 69,206,109,109,112,113,103,192,114, 85,147, 26,205,249,205, 30,147, 81,159, 81,207, 80, 53, 48, 95, +205, 40, 76,202,185,201, 22, 91,147, 29,156,141, 7,202,100,115,147,235,215,159,194, 58,203,104, 49, 37,221, 28,211, 38, 41, 15, +130,228,253,208,226,238, 61,132,121, 69, 35, 90,238, 38, 41, 33, 73,226, 66,150, 43,152,205, 62, 30,168,108, 32, 16,221,208,132, + 3,234, 16, 1,115, 73, 47, 82,112,124,196,169,136, 85, 5, 59,231, 35, 23,122,122,130,104, 90, 68, 93, 33,147, 20,233,107,100, + 43,209, 73, 74,235,107, 22,222,242,249, 34,101, 59, 45,216,208, 25,133, 50,100,214,163, 29,252,122,179, 96,190, 94, 96,189,199, +244, 71,180, 38,101, 97, 18,202, 0,181, 20,228,109, 69,175,173, 8,120, 26,153, 96,242,148, 79,111,246, 40,164,196,104,141, 86, + 18,167, 4,109, 0,169, 4,135,141,231,225,172, 98,229, 3,206, 59,180,107,112,193,163, 4,104,165,168,136,174, 87,190, 3,231, +173,189,165,150,130, 6, 31,253,219,125,244,143,136, 29,192,240, 67,169,166,167, 2, 76,161, 12,220,202, 50,222,113,129, 42,209, +145,239, 93,198, 10, 44,132, 64, 37, 96,167,151,115, 78,105,140, 78,153,186, 6, 45,162, 22,115,233, 45, 54, 56, 10,169,152,219, + 6,139,164,118, 22,237, 26,158, 85,154, 52, 4, 86,222, 49,146, 10,150, 77, 44,238, 26,139,145,138, 20,137,116, 93,178, 88, 53, +120,223, 18,250,154,202,193, 48,209, 60,181,153, 98,172, 39, 33,112,161, 63, 96,189, 42,217, 30, 12,152,203,132, 32, 36, 42,201, + 25,103, 5,235,160, 25,231,125, 86,222,177,221,159,112,185,159,113,212,120, 68,154,243,245, 69,201, 19, 70,115, 79,105,174,104, +201,237, 10,158, 72, 5, 15,188,167,215,212,180, 74,144, 32,152,121, 24, 11,207, 34, 56,156,171, 88,121, 79, 79,192,212, 89, 70, + 34,208, 4,112, 66,241,164, 50,188,227,107, 46, 33,121, 75,192,139, 73,206, 93,147,112, 81, 27,222, 15,158, 45,224,166,183,220, +106, 2, 99,165, 17, 34,197,168, 22,169, 12, 46, 40,242, 68,115, 48, 91,115,105,212,227,214,178,225,124, 10,123,117, 60,114,135, + 66,179,198,211, 84, 75,250, 58, 2,217,166,173,135,218,117,113,188, 27, 39,186,174, 98,167,253,208, 56, 88,252,200,192,222, 81, +183, 37,177,170, 86, 93, 7, 51,209, 32, 4,218, 40,180, 8, 8,161,169, 3,228, 38, 42,190, 89,239,185,152, 37,216, 16, 72,164, +166, 57,125,202,132,239,204,204, 58, 1,142,214,198,207, 13, 81, 34, 59,130,202,221, 79,116,109, 31,235, 34,125,200,137,228, 47, + 98, 80, 63,173,216, 53,177,202, 62, 69, 25, 6, 1,153, 62,203,138, 66,151, 37, 9,206,130, 54, 33,234,214,159, 86, 41, 74,198, +118,189,236,104, 76,167,115,118,219, 5,241,211,155,172, 58,142,187, 13,159, 44,190, 34, 85,220,101, 74, 67, 34, 17,182,107,142, +216, 40,136, 33,124,183, 20,147,130,205, 68, 17,218,138,182, 89, 51,204,198, 12,178, 13,198,189, 13, 82,147,179, 63, 59,226, 79, +223,121,133, 7,211,123,164,166, 3,240,219, 21,219,147, 30, 87,182,119,184,176,125, 30, 33, 2, 89,175,143,144,146,229,186, 97, +255,254, 17,171,249, 17, 77,211, 80,214, 75, 42, 91, 67, 80,100, 73, 15, 17, 2,141,107, 89,149,150,195,101, 69,187,255,160, 75, + 74, 4,172,150,132,189,125, 14,110,223,128,249, 97,108, 1, 53,117,100, 12,156,142,196, 69,231, 25,239, 31, 31, 9, 5, 24,158, +227, 75,159,251, 28,159,123,234, 51,108, 76, 70, 12, 71, 3,114,147, 80,149,150,147,147, 57,127,254,199,223,141,247,227, 20, 40, +226, 60,143,124, 44, 67, 60, 56, 31,188,123,135,239,125,227, 21,190,250,251, 95,161,244, 45,118, 81,146,100, 25,218,104, 76,146, +208,235,167,100,121, 70, 49, 72,201,250, 61,138,241, 16, 41,226,140,209,152,200,107, 46,215,107,132,247,180,109,137, 50,134,209, +214, 38,147,173, 9, 38,139,114,146,171,229,154,182, 46, 89,204,230,252, 79, 95,251, 42,111, 63,188,195,107,239,191,207,139, 47, + 60,207,104, 60, 32, 43,114,242, 34,167, 63, 28, 48,220,218,160, 55, 26, 50, 26, 14,201, 7, 3, 30, 62,120,200, 31,252,224, 13, +190,245,199,175,113,247,198, 13, 16, 77,236,100,124,146,254, 63,192,193, 49, 55, 30, 30,241,167,175,252,128,151,222,191,197, 83, +227, 17, 27, 23,207,113,241,218, 14,147,157, 13,174, 61,125,149,171, 79, 62,193,151,191,240, 44,151, 47,109,199,138,190,245, 28, + 28, 46, 81, 70,112,245,226,152, 11,219, 35,138,110, 22,183,118, 2, 91,195,120,188,193,245,207, 62,199,198,249, 77,124, 11,227, +141, 45,130, 80,124,243,187,127,198,255,245,181, 63,229,202,192, 80, 37, 61,110, 91,199,251,117,195,131,147, 99, 56, 41, 35,178, +118,177,142, 98,210, 42, 33,168, 4, 50, 96,247,232,227,123,216,119,192,161, 68,209,223,238,211, 76,151, 49, 57,221,158, 64, 47, +141,221,155,147, 21,162,138, 54,172,226,210, 21, 68,166, 16,203, 88,177, 11,219,198,194, 38, 81, 40, 91,161,147, 60, 66,112,234, +146,103, 82,195,185,172, 79,142, 32, 73, 82,180, 80,104,161, 72,109,203, 94,112,212, 89,206, 74, 42,132, 80,220, 77, 52, 67, 23, +216,193,177,227, 42,138,245,138,123,190,161,213, 3, 14,215,150, 39, 38, 57,163,212, 32,133, 32, 81, 10, 39, 4,247, 74,203,254, +210, 50,135,200,176,168, 75, 42, 91,209, 75, 4, 58,207, 8, 40,180, 50, 88,235,168,157,163, 9,158,181,247,248, 16,240,161,229, +178, 4,167, 12, 91,169, 97,126,122,216, 58,247, 49, 91,211,179,152,238, 99, 23,235,104, 69, 91, 36,209, 69,177, 13, 4,215, 85, + 96,222, 49, 79, 36,207, 22, 41,149,212, 36,161, 69,201, 8,228, 83, 34, 96, 2,148,221, 17,229,130,224,196,214, 76,189,229, 98, +154,115, 94, 37, 12,148, 38, 13,142,224,160, 39, 37,210,123, 86,214, 82,152, 4, 35, 64,218, 0,101,139,181, 21,181,183, 52, 82, + 97, 10, 77,150,105, 18, 96,160, 84,244, 95,106, 28,231, 70, 3,150,141, 71, 42, 67,158,101, 88,239,104,164,166,151,167, 88, 7, + 73, 62,164,144,154, 36, 27,112, 97,208,227, 36, 8,206, 21, 9,135, 30, 46, 42,120,109,110,121,118,100,248,160,134,205,208,224, +211, 20,215, 97,154, 6, 1, 30, 54, 37, 85, 8, 88,160, 23, 2, 11, 60, 61,107, 89, 3, 19, 20, 66, 4,142,133,231,146, 52,220, +146,130,103,149, 38,223,220,224,103,175, 92, 36,152, 20,225, 60, 47, 55, 53, 54,104, 22, 68,109, 9, 25, 4,189, 84,177,108, 53, + 89, 18, 88,148,158,113, 79,115,111,222,240,244, 64,115,119,225,216, 52,150,131, 42, 32, 69,139,243, 1,109, 12,218, 59, 14,215, + 37,165,117,113, 2,107,195, 35,230, 85, 76,216, 92, 60,159,127,196, 8,245, 99,129,212,116, 69,161, 74, 8, 65,117,198, 86,177, +104, 75,141,138,251, 16,129, 59, 5,187, 91,216,233, 71,225,172,177,209, 72, 31, 53,250,131, 20, 81,243,228, 84, 81,203,117,212, +234,166,142,231,106, 85,198,239,249,132, 78,176,248, 73,175,245, 49,238,212, 95,204, 87,219,137,200,152,238,103,167,151, 30, 45, +206,220,199, 43,251,212, 68,138, 26,254,140, 27,104,187, 22,100,234, 33,164,103,201, 66, 47,129,117,211, 45,126,135,254,246, 54, + 34,209,101,120,172,221, 46, 59, 49,154,142,163,104,146,168, 0, 87,241, 88,235,223, 67, 11, 65, 91,196,218,195,170, 33,139, 34, +244,244,211, 30,203,218, 71,197,174, 36, 97, 54,155,115,178,154,226,214, 37,203,101,205, 75,205, 91, 20,201,123,188,112,110,139, + 39, 46,126,145,241, 96,128, 80,154,221,221,154,219, 55,223, 66,233, 12,223, 10, 2,142,218,181, 84,109, 69,109, 27, 18,157, 50, +200,198,228, 38, 99,152,111,128,183,124,160,119,185,113,123, 55,106,206, 7,255,216,142,240,103, 6, 52,167, 6, 46,167,255,221, +119, 40, 81,249, 17,125,120, 37,217,122,230, 50,207, 61,113,157,162,151,162,141,232, 4, 9, 28, 89,174, 89, 61, 88,193, 56,242, +245,169,237, 25,135,191, 37, 2, 21, 79,191, 47, 77,163,164,112,145,241,205,127,242,149, 15, 45,217,214,207,127,153, 47, 95,186, +200,206,165, 11,108, 94,218,161,215, 75,163,145,195,206, 24, 24, 83,151, 13,109, 99,217, 60,191,137, 78, 53,193, 6,180, 86, 24, +163,113, 56,218, 54, 32, 26, 24,140, 11,240, 5,179,121, 11, 14,146,196,208,224,216,186,184, 77,145, 75,108,235,104, 92,180, 80, +172,214, 53, 15,239,220,229,229, 59,247, 25,228,155,188,250,202, 59,176, 60,129, 81, 15, 84, 63, 38, 61,131, 1, 84,139, 31,190, + 47,143, 14,224, 8,170, 15,238,241,143,254,252, 53,184,124, 9,113,239, 62,124,246, 57,254,237, 95,252,121,242,254,152,147,217, +144,117,217, 32,189,192,100,154,141, 73,193,197,113,143,205,126, 30,111,181, 10,100, 89,194,120, 99,128,200,158,138, 57,102,112, +188,247,250,219,220,188,123,139,239,220, 63,198,189,113,227, 81,166,254, 63, 31,205,225,115, 21,253,237, 77,150,149,139,251,124, + 18, 45, 90, 89,151,240,246,109,120, 14, 24,111,198, 53,185,176, 5, 15, 30,126,188, 5, 41, 91,168, 44, 75, 27, 80,231,183,113, +211,101, 68, 72,123, 31,147,103, 5,193, 27,196,209, 9,197,106,202,246, 96,192,223,253, 75,159,227, 63,251,230,171,132,195, 99, + 66,154,198, 25,117,154,226,109,131,175,107,222, 12, 3,158,184,251,128, 43, 89,143,190, 15,120, 17, 53, 4,164, 25, 82,104,195, +197,197, 62,223,174,215,164,185,102, 46, 20,231,164,166, 48, 30,237, 13,198,123, 60, 45, 27,135,119,121,133, 30,215,253, 14,193, + 7,166,139,146, 36, 75, 9, 9, 28, 90,199,173, 38,112, 79, 8,166, 70,179, 30, 22,132,249, 17,185, 84,152, 40,102, 64,227, 37, + 38, 13,132, 32, 49, 65,179,196,113, 65, 11, 46, 6,197, 40,233,113,210,180, 60,145,215, 44, 74,197,177,179,172, 67,244, 68, 8, +118,246,232,240,252, 88, 85,100, 45,193, 46, 16,183, 90, 56,191,217,177,124,116, 44, 42,172,195,150,150,223,187,191,207,111,157, +111,217, 28,109, 49, 17,130,147, 54,130,214,234,206,123,161, 1,234, 16, 56,180, 45,151,101,108,221,150, 50, 97, 32, 37, 35,149, +160,133, 96,214,182,232, 16, 24,231, 5, 39, 39,199,168,209, 8,103, 59, 54,135,130, 22, 73,161,163,131,161,243,158,214, 41,234, + 16,216,206, 82,150, 30, 92,221, 48, 25, 20, 20, 54,227,110,213, 48, 23, 1,211, 56, 74,171, 49,198, 80,118, 93,233,220, 68,225, +156, 76, 75,222, 95, 58,174,247, 13,239, 86,158, 79, 15, 52,239, 54,130,103,211,192, 7, 54,101, 80, 47, 8, 70,227,202, 37, 78, + 39, 20, 74, 49, 7, 66,221,114,220,180,108, 72,207,158,135, 75, 34,112,151,154,167,125, 70, 89,150,188,102, 44, 82,106,222, 49, + 9,127,189, 55, 96,175,178,232, 36, 97, 79, 73, 74, 11,135,180,188,238, 20, 47, 72, 79,161, 60, 8,195, 80,181,204, 42, 77,145, + 6,110,207, 27,158, 26, 24, 94,155,183,252,204,200,240,234,220,243,124, 22,120,173, 42,184,172, 22,212, 94,162, 4, 60, 53,200, +185,177,104, 33, 84,157, 86,129,136,133, 73,211,169,141,214,205,143,197,101,127,232, 85, 55,145,223,111,125,180,172,182, 10, 82, + 79, 63, 79, 41,157,199, 8, 73, 21, 44,163,212, 80,119,137,151,109, 3,131, 84, 81, 57,135, 38,160,235,192, 80, 72,142, 17,157, +125,136, 63,147,232,126, 4,198, 78,160,250,209, 99, 31,241,227,174,245, 47,124, 80,167,163,202, 85, 26,122,157,145,129,239, 76, + 83, 76,215,102,207,116,231,212,214, 41,250,168, 54,222,208,143, 46,108,221,196, 0, 45, 0,147,241,185, 47,127,150, 87, 31,238, +194,205,135, 93,251,221, 71, 58,130,247,144, 41,240, 89,180, 27,236,247,224,104, 5,182, 59,228,155, 42, 6,255,196,196,162,182, +249, 48, 27, 48, 72, 16,101,205,178, 90, 51,206,199, 72,157,147,138,136,164,124,112,248,128,101,185,226,198,253, 93, 88,175,226, +130, 85,115,214,153,102, 53, 54,120, 91, 1,125,172,107,113,206, 81, 55, 45,213,122, 65,221,214, 56, 31, 40,215,109,172,208, 85, +198,165,173, 1,193, 11, 60,138, 65, 49,192, 57,207,249,144,194,242, 43, 49,249,208, 81, 69, 12,253,120,251,149, 78,146,246, 49, +141,247, 46,167,161,149, 17, 80,120,122,240, 95,186,198,139, 87,158,227,220,165, 49, 74, 72,166, 39, 43,154,229, 17, 23,175,108, +210, 88,199,249, 11,219,252, 91,127,247,183,185,191,191,199, 87,126,247, 27,113,151,213, 31,161, 3, 42, 25,233, 26, 69, 63,126, +143,214, 31, 10, 50,135,223,248, 30,255,247, 71,150,251,249, 95,255, 5,206, 15,134, 92,190,112, 1,157,166,209, 44,102,144, 19, +214,241,175, 80, 38,193,152,216,154, 13, 68, 31,227,100,144,196,153,109,223,242,239,252,198,111,242, 63,254,238,255, 1,137,100, + 53,157,242, 15,254,241, 31,241,215, 62,245, 52, 47, 63,120,200,222, 91,135,224,231, 29, 87, 31, 24, 63,140,215,109, 4,156,204, + 64,218,104,247, 57,159, 71,225,142, 79,218, 71,159,240,208,137,123,247, 9, 90,195,107,111,243, 15, 95,123, 27,145, 38,241,225, +172, 27, 68, 54, 64, 84, 11, 68, 22, 19, 5, 9, 92,251,249,207,147, 11, 73,166, 5,115,235,184,249,221,183, 8, 42, 33, 96, 9, +235,234,147,219,110,243, 5,124,247,109,150, 23, 54,249,149,107,231,216, 40, 18,244, 83, 59,124, 35, 9,220,123,247, 30,172,102, + 48,155,119,163, 42, 96,115, 12, 71, 11,176,179, 15,127,206,218, 66, 1,159, 27,245,248,181,141, 33,127,248,193, 46,175, 77,203, +199, 18,229,206,180,104, 81,178,126,235, 29,254,189, 95,250, 87,249,213, 43, 87,248,222,157, 15,248,202,201,148,160, 51, 66, 57, +195,215, 41,193,181,248, 34,199,219,134,175,238, 62, 96, 35,215,252,246, 19,134, 68,106,196,112,130, 84, 26,153,123, 6,118,200, +206,234,128,239,155, 6,163, 13,185,148, 72, 31, 72,147,148, 53,240,245,241,121,158, 20,130,155,111,127,139,244,250,151,249,218, +219,142, 43,155, 99,206,111, 11,110, 79, 29,119,173,228,102,235,152, 9, 73, 83, 36, 32, 5,230,220, 5,204,238, 29,150,171, 5, + 65, 74, 6,169, 97,186,136,159,185, 12,150, 11,202,145, 72,131,146, 22,227, 51,114,235, 88,147,177, 47, 2,131, 60,103,221, 2, +227,110,141,171,197,135,166, 79,143,227,151, 5, 16,170, 10,238, 31, 64,158, 66, 54,140,103,142, 74,161,113, 44,108,224,165,116, + 65, 38, 52, 39,105,198,197, 98,192,180,142,200,229,212,228,148,182,225,184,169, 24,104, 67, 38, 4,243, 0,219, 38, 97,209, 21, +152,133, 78, 24,229, 25, 78,104,230, 74,209, 26,201,251,174, 97,220, 88, 18, 99,168,188,163, 41, 82, 90,162,100,114,161, 21,171, +214,147,107,137, 13, 34,226, 48,128,158,138, 9, 89, 91,150,108, 37, 5,119,155,146, 60, 49,148, 1,242, 16, 71,135,109, 16, 28, + 5,200, 43,203,103, 6, 41,223,157,213, 92,235,105,238,183,146, 23, 18,199,205, 82,178, 65,203,145, 74, 56,215,214,172, 76, 66, +181, 94,113, 36, 36,206,149, 52,222,146, 8,203,145,109,217, 86,130,131,170,102,146, 24, 94, 46,167,108, 38,154, 89,235,201,141, +160, 89, 46,120,115, 62,101,167, 24,208, 42,197,126,213,114, 76,224,165,202,145,104,199,107, 94,177,145,192,162,180,228, 89,142, +162, 97,182,242, 92, 30, 38,124,176,104,248,153,190,228,141,185,229,201, 68,240,176, 85, 60,171, 27, 94,159,195,115,121,194, 92, +165,220,106, 43, 66, 47,237, 76,196,154, 56, 58,170,218, 24,234,214,213, 99, 54,211, 63,197,107, 93,129,182,192, 8,180,131, 84, +179, 44,163, 5,184, 74, 52, 70, 73, 78,170,134,171,147, 28,103, 29,202, 67,229,186,159,165,143,221,251,224,200, 92, 96,237, 79, +129,112,174, 19, 71,235,108,185, 87,117, 84,240,252, 88,116, 62, 59, 23,195, 79,120,185,127,177,131,186,237,204, 90,172,232,120, +241,167, 64,183,110, 6,184,110,206,156,196,188, 61, 19,161,249, 97,175, 58,222,145, 87,191,246,221, 24,196, 79,171,124,255, 24, +131, 85,105,200, 61, 12,134,144, 36,176, 9,220, 95,156, 93, 79, 49,138,115, 75,162, 17,156, 56, 21,199,137,189,108, 66,101, 89, + 85, 48, 26,166, 36,186, 79,101, 75,102,229,130,195,213, 49, 55,238,220,135,227, 67,130,179,103,127, 15,176, 55,171,216,189,127, +135,114, 62, 71, 38,154,227,195, 99,102,213,138,101,185,102,209, 54,204,203,134, 89,105, 9, 8,158,191, 50, 68, 7, 69,150,229, + 60,249,204, 14,219,163, 62, 71,179,134,219, 47,223, 60, 83,195,179,182,227,101,126,244,126, 62, 6,250,163,235, 62,160,161,144, +103,120, 57,145,130,244, 92,184,124, 1,219, 88,218, 16,216, 59,184, 79, 18, 26, 54,199,151,209, 74, 98, 93,206,106, 85,113,113, +107, 11, 46,244,225,224, 48,118, 56,156,238,172, 95, 57, 83, 91,114,116,155, 89,254,216,135,237,173, 63,252, 58,111,253,184, 61, +145, 13, 98,226, 49,216,140, 24,135,209, 32,234, 18, 68, 21,147,136,230,247, 9,255,221,255,246,207, 64,106,254,224,149, 55, 35, +182,162, 7, 52, 58, 6,240,193,168, 67,166, 42,200, 4, 60, 60,140,166, 70,117, 27,215, 28,162, 62,182,254, 49,160, 27,173, 9, +137,142,163, 23,173, 99, 98, 87, 87, 80,100,136, 52, 33,132, 78, 40, 41,212,241,223, 74,114,251,123,111,197,251,178,174, 8,105, +210, 5,241,179,128,254, 67,179,116, 95,145,174, 87, 60,169, 36, 89,175,143,149,112,237,252, 6,247,238, 29, 16, 86, 37,236, 29, +193,176,224,133,193, 6, 23, 47,247,184,163, 20,239,190,249,206, 25,112,168,110,226, 22, 77, 13,255,218,198,144,207, 14, 55,153, +143, 23,188,246,238,126, 12, 96, 33,196,102, 12,113,189,194,114,205,195,245,140,111, 60, 52,188,221, 27, 17,178, 30,161,138,230, + 61, 62,149,184,218,224,106,143, 5, 92,240,252,222,238,140, 47,101,247,120,214, 24, 84,145,161,210,113,167,253,225,216, 94, 44, +113, 70, 99,116,194,148, 64, 38, 21,149,119,100, 73,198,103,183, 71,220, 45, 87,136,237,243,188,250,218,119,120,227,254,132, 47, + 61,241,105, 38,147, 45,230,105,202,221, 0,239,229, 25, 33, 55,204, 67,202, 36, 79, 25,140, 28, 75,127,145,254,209, 62,231,219, +146, 89, 89,145,100, 57,203,166,226, 82,174,187,238, 86, 4, 58, 89,111, 59,134,131,229, 66, 47,101,160, 28, 39,141,165,246, 41, + 34, 73,192,234,179,231,229,163, 1,189,139, 16,162,245, 4,106, 4, 93,155,183,167, 64, 37, 60,159,107,246,214, 45,239,172,151, + 60,157, 24,254,232,240, 62,207,245, 71, 28,122,199, 86, 8,212,214,178, 36,208,247,150, 82,106,158,205, 10,142,156,101,164, 52, + 74,105,166,206, 17,156, 71, 38,130, 96, 18, 10,163, 88, 24,201,155,194, 80, 87, 53,163,126,206,229, 65, 78,138,164, 10, 1,221, + 56, 92, 8,132, 54,138,103, 89,231,232,167, 9, 77,235, 49,222,115,177,215,227,157,213,138, 65,166,153, 89,143,129,200, 51,111, + 27,210,212, 80, 54,146,144, 41,246,125,224,185,161,230,161, 15, 92, 48,112,215,195,166,180,148, 66,176,221,192,162, 13, 72,219, +112,136, 32,109, 74, 30, 46,215,100, 58,174,181,108, 26,246,218,134,212,104, 30, 54, 21, 3, 20, 95, 63, 92,241,194, 48,227,235, +243, 53,151,250, 67,254,217,221, 7, 60, 61, 26,242, 96, 89, 17, 18,197,141,202, 50, 16,130,169, 85, 24, 42,110,161, 24,209,112, +137, 64,158, 27, 84, 82,208,184,134, 29,227,185, 97,115, 54,243,146,147, 50, 10, 88, 89, 18, 46, 23, 37,149,119, 44,116,202, 42, + 73,226, 94, 30,100, 81, 99, 99,255, 48, 62,255,161,254,240, 25,247, 47, 18,107,234, 5, 52,105, 92,252, 60,129, 36, 97,229, 61, +153,247, 76,180,161,170, 45,185,136, 0,105,237, 61,179,178,165,200, 21, 7,179,166, 59, 14,196,217,216,183,237, 68,205,232,152, + 89,202,158, 61,139,143,206, 96, 27,223, 31, 9,238, 63,238,245, 23,115,166,254,161,150, 97,135,130, 23,221, 35, 39,100,188, 97, +153,236,110, 26,143, 85,219, 33, 6,182, 79, 2,186,157, 26,190,200, 83,213,185, 83,222,123, 56, 67,131, 75, 25,219,215, 60, 70, +163, 91, 46,207, 42, 54,173,163, 12,163,245,103, 7,190,235, 84,130, 20,160, 21,201,213, 43,124,241,201,231,185,184,125,149,162, + 55,194,136,140, 15, 78,238,115,239,232,152,102,239,222, 25,245, 66,200, 88, 37,154,132,205, 34, 65, 72, 71, 93,149, 44,214, 11, + 86,117, 77, 93,151,236, 46, 87,220, 63, 92, 80,238, 45,163, 40,144,146,108,111, 79, 24,154, 30,253,162,207,103, 94,184, 64,145, + 37,152, 68,241,237, 55,239,114,240,230, 75, 63, 5, 29,209,159,221, 96,147,116, 42, 72,221, 61, 50,138, 81,209,163,151,245,152, + 77, 79, 56,153, 31,113,126,107,131,205,241, 4,147,104,150,101,131, 13,129,166,105,120,229, 27, 95,239,184,154,221, 40, 66,158, + 81, 65,162,140,176, 63, 83, 5,108,237,255,247,253,160, 58, 42, 9, 73, 76, 74,178, 36,182, 73, 90, 11,182,142,127,203,186,142, +120, 11,213,141, 23,144, 48, 93,194, 98, 17,245, 0,132,138, 26,226,167, 56,139, 85, 25,255,127,103,227, 79,223,173,175,215,103, + 0,202, 79, 50,249, 49, 49,145,139,162, 19, 62, 50, 91, 30,243, 28, 66,117, 10, 83,117, 67,208,170, 19, 76,234, 16, 64, 82,158, + 85,229,178, 99, 82,104, 69,112, 46,238,179, 83,199, 65,211,237, 85, 37,177, 2,158,221, 28,162,250, 61,230,222,243, 86,217,112, +178, 92,198, 68,183,106, 97,210,231,122,127, 72,145,231,204,157,229,160,108, 16,101, 21, 19,139, 52,237,186, 53,134, 89,154, 16, +180,224,119, 79, 42,214,181,131,118, 9,210,159,209,109, 68,138,168, 26,190,125, 60,227,196,192,161, 54,172,235, 18,177, 88, 32, +122, 3,100, 83,162,130, 66,202, 22,105,114,164, 3,233, 74, 70, 46,240,252,230, 24,147,230, 49,217,173,203,104,250,226,214,188, +237, 45,109,154,210, 51,105,180,120, 37,112,208, 68, 97,141,255,101,252, 4,193,199,110,133,189,191,203,157,195,247,121,107,239, + 54,183,246,239,178,191, 94, 81,175, 42,234, 32,232,121, 79,147, 37,212, 89,130, 79, 12,106, 48,132,164,207,192, 11,180,111,241, + 66,176, 21, 44,153,209,244, 67,192, 8, 65, 8, 1,139,196,116,254, 6, 83,219, 50,212,134,195,170,134,117, 27, 61, 31,252, 39, + 3,171, 68,151,233, 10,186,202, 11, 27, 37, 87,211,140,223,121,114,135,191,119,237, 58,231, 50,197, 43,213,138, 87, 79,214,120, +169,152,226,145, 74,243, 65, 83,210, 42,197, 68, 40,174, 38, 25, 67,161,162,229,179, 0,100,188,255,167, 14,146,214,100, 88, 5, +137,214,172, 2, 44, 19,197, 58, 49, 12, 51,195,112, 16, 21,246,122,169,230,216, 90, 18, 4, 1, 56, 92,173,217, 74, 52, 7,101, +205, 36, 79, 41, 91,135,181, 22, 27,160, 85,154,224, 26,218, 32,177,109,139, 48, 9,179, 54, 48,236, 41,170, 74, 32,132,197, 5, + 65, 30, 2,107, 4, 67,235, 88,120, 71,210,182,172, 93,203,134,173, 57,176,150,121, 91,242, 94,109,209,173,229,184, 92,211,148, +107, 22,174,197, 16, 56, 90,213,140, 19,195, 91,243, 21,147, 94,198,219,139, 53,151,132,228,173,249,156, 3, 91,243,157,195, 3, + 50, 35,248,206,241, 17, 79,106,193,157, 0, 33, 56,146, 32, 25, 59,139,209, 73, 52,195, 14,142, 32, 28, 19,173,121,183, 12, 92, +144, 21,199,107,207,197,141, 30,247, 79,214, 36,210,211, 87,154,227,186,164, 72,163,127,125,169, 19, 26,225,226,115,155,117, 12, + 41,107,127,226,160,248,195, 7,238,157,152,140, 54,241,140, 70,225,188,143,213,186,144,132,214,210, 75, 13,107,219,208, 4,135, +212,112, 82, 58,140, 11, 44,154, 54,186,129, 6, 65,104, 58,108, 78, 91, 66,217, 57,136,226,227,179,255, 40,174,157,130,154, 78, +103,159,246,172, 91,252,255,251,160,238, 59, 41, 49,173, 58,222,122, 23,200,219,112,134, 42,116,237, 89,228,246,174,171,214, 62, + 9, 81,223, 1,226,132,234,130,184,138,191,211,214, 93,203,186, 58,227, 28, 54, 54,122,174, 55,143, 41,234, 25, 29,171, 65,249, + 24,176, 76,158,185,155,137,172,207,139,207,127,134,103,158,188, 78,175,215, 67, 27,197,186,170,184,115,112,159,189,123,119,227, +225,123,154, 28, 36, 26,146,132,173, 81,206,118,191,160,159,245,144, 82, 82,217,134, 85, 83,115, 82,150,236,174, 74, 88, 86, 81, +251, 57, 72,212,164,224,252,104, 64, 47, 53, 12,139, 49,219, 59, 27,228,137,102,182,106,248,214,107,119, 89,188,255,131,159,184, +133,243,216, 13,238, 70, 19,157,236,109,136,148,183,247,235, 21, 7,199,187, 60, 56,216,101, 93, 55, 92,217, 58, 71,222,207, 81, +194,243,224,225, 17,255,213,239,254, 19, 94,249,202, 55,187,160,103,226,125, 82,242,236,104,124,132, 57,232, 16, 38,173,143,149, +241,143, 19,247,249, 81,175, 34, 59, 11,138,139, 89,180,225,108,218,174,187,146, 69, 31,128,208,237, 1,239, 98,144,174, 42, 88, +150,221,247,106,232,231,241,193,245, 62,226, 0,230,221, 92,218,119,202, 21,233,169,211,223,169,196, 36,143, 37, 42,143, 5,118, +173,227,126, 60, 77, 42,165, 6,235, 59,139,204,186, 75,244,116,164,133,101, 25, 66, 9,196,186,138, 18,188,213, 58, 6,112, 37, +161,170, 9,173, 37, 56, 23, 3, 58, 68, 3, 14,217,129,118, 78,177, 16,222,131,245,188,225, 53,111,103, 9,175, 84, 53, 83,231, + 97,181,132,121, 25,247,112, 19,120, 48,204,153, 33,120,191,177,113,252, 81, 85, 81,191,191, 41, 17,131, 17,120,203,129,144,188, + 44, 4,107,147,196,189,188, 92, 67, 43, 17,202,116,186, 15, 18,241,255,114,247,102, 63,150, 93,217,153,223,111, 79,103,184,231, + 14, 49,228, 72, 50, 73, 22,139,172, 42, 85, 21, 85, 82, 73,130,160, 22, 36, 75,141, 22, 44,248,193, 3,208, 86, 3,110,219, 13, + 63,250, 47, 51,252,110,192,112,195,176,209, 70,171, 37, 75,213,146,154,170, 42,138, 51, 43,147, 57, 69,198,116,167, 51,238,193, + 15,123,159,184, 55,147, 76, 50,201,178, 90,178, 3, 72, 68, 70,144, 25,113,239,153,214, 90,223,250, 6,101, 17, 91,203,131,237, + 6,117,253,128, 91,215,142, 88, 61,190, 68,216, 30, 57, 88,164,208,136,160,144,214, 34, 11,133,104, 59, 62,233, 45,127,120, 56, +167, 16, 18, 3,208,111,177,219, 11, 86,245,138, 15,186,154, 48, 61, 64, 8,205,144,101,108,134,129, 19,239,185, 16,130,143,100, + 6,147,138,160, 13, 97,146, 19,154, 13,190,174, 9,247, 31,224,127,241, 49,254,242, 49, 65, 14,180,213, 49, 93,153,211, 41, 29, + 11,102,105,248,238,209,156, 27, 55,142,177, 46,199,132,150, 73,240,116,214,161,133,194,251, 1,129, 32, 87,138, 44, 4,154, 16, + 48, 90,243,160, 27, 88, 90, 7,117, 29,143,219,115,178, 25,196,179,150,206,206, 33,144,176,168,248, 31,223,120,131,239,221,186, +205, 76,104, 62, 89, 95,242,206,147, 53, 89,174, 25, 2, 44,219,158, 89,158,227,128, 91, 42, 99, 46, 37,133, 54, 76,132, 68, 74, +131, 37,112,233, 3, 7,202,208, 20, 57, 34, 56,188,212,244, 90,115,233, 61, 5, 10,147,233,216, 95,186, 64,149, 27,150,214, 83, +132,120, 29,158,110, 27,110,205, 38, 60,222,116,204,139,140,139,186,231, 64, 11,140,212,252,221,122,205,224, 28,173,215,224, 3, + 65, 25,148, 86, 88, 31,184,223,195,161, 10,100, 33, 80,134, 64, 7,204,173,227, 52,128,104,182,212, 33, 48,107, 26, 62, 28,122, +238,110,182,124,214, 13,172, 55, 43, 30,247, 61,194,245, 92,214, 45,198, 57,206,182, 61,173, 11, 60,104,122,230, 38,227,147, 77, + 67,107, 61, 79,250, 30, 19,160,189,216, 50,207, 52,247, 30, 60, 97,154, 27,126,113,118, 73, 46, 3, 86,101,244, 93,143, 45, 10, +142,157,231,220,118,220,153, 77, 57, 80,154,191, 89,117,188,148, 5,150,131,228,102,230,121,111,235,248, 97, 41,113, 34, 62,223, +107,175,152,232,192,113, 53,227,141, 50,231,129,135, 46, 35, 89,125,187,100, 6,243, 75, 14, 14, 42, 37,143, 10, 15, 62,145,220, +164, 96,232, 61, 91,235,153,103,154,203,186,167,202, 36,221,224, 9,214,147,201,192, 89, 29, 83, 62,109,231,147,227, 93,226,189, +140,164,107,229,147, 29,249,222,179,227,115, 30,135,105,192, 26,107,203,255,175,139, 58, 36, 55, 57,157, 38,193, 36,228, 31, 69, +255, 67, 27, 59, 43,111,227, 3, 94,136,184,220, 54, 42, 49,214,213, 78,228,159, 38,164,200,118,212, 49, 69, 13, 17,255,110,251, +221,109,109, 19, 75,209, 39,120,100, 60,200,185,217,113,207,228, 51, 12,135,174,135,170,226,230,173,107, 28,207,142, 41,202,146, + 97,240,212,219,154,119,238,126, 64,119,113, 17,139,158, 78, 19,122,145,113, 84, 25,110,204, 42, 14,167,115,166,217, 4,135,167, + 29, 90,182, 93,199,233,166,163, 91,117,208,244, 8,149,145, 95,159,114,115,154,113,109, 54, 99,106, 42, 94,122,229, 21,138, 73, +206,106, 99,121,255,239, 30,242,167,239,254, 5, 60,185,255,212,195, 73,188, 48,244,148, 26, 22, 49,190,151,152, 12, 84,167,164, +180, 89,150, 83,233,130,224, 53,171,117,199,207, 62,120,143, 79,127,242,211, 4,171, 39,169,134, 81, 79, 63, 13,251,244,189,126, +116,176, 19,187, 44,251, 95,138, 60,153, 94,107,121, 24, 39,115,145,108,111, 93, 42,230,117, 3,243, 73, 50, 28, 18,177,160,139, +244,121, 68, 11,132,136,141,223,166,139,231, 98,148, 73,218,100, 35,108,187, 24,220, 99,147,132, 82,132,167, 11,187,148, 73,190, + 39, 99, 34,133, 76,215,140, 34, 5, 12, 69, 27,201,200, 41, 40,162,253,240, 96, 83, 83, 82,199,194, 61,106, 91,115, 19,139,122, +158, 69,219,100, 72,175, 47,201, 56,199,235, 87,200,200,202,239, 97, 56,152,197,107,219, 7,184,220,198,162, 44,163,214, 54, 52, + 61,219,202,196,127,155, 73, 88, 54,241,218, 94,204,162, 68,173,168,224, 98, 5,229, 20,170,114, 23,236,115,177,130,114,130,240, + 3,120, 27, 19,168, 68, 76,108,234,231, 37, 75,107, 17,141, 69,172, 26,132, 10, 96, 20, 34, 12, 49, 98,120,112,144, 73,130,115, + 28, 59,193,145,239,200,109,141,104,123,134,102,205,178,235,249,105,211,211,151, 57, 42,159,224,165, 38,120,135, 84, 18,215,183, + 60,193,208,154, 2,170, 5,193, 76, 8, 66, 68,144,164,200,162, 25,201,242, 18,127,177, 36,232, 64,152,222, 32, 8,193, 80, 42, +254,235,131,146,255,252,118,201,119, 15,115, 84, 85,240,241,137, 37,147, 29,202, 58, 38, 90, 19,136,249,215,222,123,186, 16,112, + 82,240,164,111, 89, 15,158,229,120, 29,174,187,200,246,127,166,152,239,238, 33,153, 38,246, 84,220,101, 0, 83, 82, 77, 37,133, +208,252,117, 83,243,191,156,159,211,213, 61,235,186, 69,107, 73,161, 53, 10,137, 81,129, 45, 80, 72,197, 53,101,112,233,180, 22, +218,160,164,162, 23,146,198, 57,230,101, 21,139,117,240,244, 82,114, 14,180, 1, 38,133,161,146,146,243,206,226,189,139, 91, 72, + 4, 85,174,121,180,108,184, 49,201,185, 88, 55, 40, 41, 17, 82,112,222,245,200, 32,184,112, 61,125,231,241, 90,131,214, 52, 67, + 67,231, 28,219,190,199,135, 64,150, 41,206,235,142,128,231,253,203, 45,249,176,101,233, 99,254,251,169,183,216,102,205,224,225, +100,117,193,103,174,167,217,108, 88,110,214, 88,224,100, 89,179, 50,146,117,107,169, 7,203,121,221,225, 16,201,179,193,227, 86, + 91,130, 54,180,203, 21,193, 7,218, 39, 43,130, 81,216,186, 35, 12, 29, 97,186,160,169,183,172,116,198,111,205, 42,150,155,134, +206, 75, 94,158,228, 52, 93, 75,129,133,188,224,142,239, 57,241,138,174, 95, 97,109,207, 16, 96,145, 23,228, 66,210,218,232,210, +247, 32,136,200,125,154,100,241,126, 24,161,239,111, 98, 89, 62, 42,173,178,184, 90,193, 13, 9,185,181, 87, 40,192,122, 24,168, +123,139,181, 2,111, 3,195,224,217, 52, 14, 33, 2,182, 79,161, 96, 93, 31,159,159, 46, 14, 99,144,146, 78,247, 93, 87,125, 26, + 2,174,166,244,196,102,180,254,133,204,220,254,241, 20,117, 83,196,244, 32,228,151,230,117, 63,119, 90,207,246, 32, 80,165,227, +129,242, 67,100,172,219, 62,234,110, 69, 58, 34, 33, 77,135, 90,236, 96,244,164, 41, 39, 36,104,101,132,232,165,220,155,244,211, +212,101,197, 14, 94,127, 54,181,205,167,137,223, 37, 41,152,243,145,176,225, 1, 97, 56,203, 37, 47, 47,230,244,221, 64,176,150, +187, 79, 62,229,131,123,159,236,180,144, 58, 78,131,147,210,112, 56,201, 89, 76, 43,102,249, 28, 41, 37,214, 14, 44,251,142, 77, +215,243,164,238, 99, 30,187,206,224, 96,194,157, 69,201, 97, 89, 82,230, 37,243,114,206, 91,223,123,157,235,179,146,204, 8, 62, +120,239, 99,222,251,228, 35,184, 60,249,166,112,200,158,110, 51, 69,241, 86,115,178,178,228,160,200,200,181,161, 13,129,143, 30, + 62,224, 79, 63,124,143,247,254,230,239,192,109,246,150,144, 38, 22, 43, 41,227,212,238, 82, 65,175,219, 20,247,153,154, 38,163, +190,121, 39, 93, 20,177,136, 78,167,176,217,166, 41, 57,192,164,138,231,181, 79,222,246, 82, 70,103,166,182,191,178,239,197,199, +104,225,120,142, 18, 44,159, 21,241,245, 5, 82, 1,110,227, 62, 61,249,223,211, 52,113,119,175,216,161, 67,251, 81,139, 87,225, + 13,114,215,224,133, 61,214,171,115,177, 48,236,191,223,253,191,123, 31, 39,243,100, 97,138,115,145,112, 39,211,100,158,114, 5, +174, 86, 25,125, 63,218, 95,193, 43,183, 80,229,140, 27,101,197, 54, 23,240,228, 50,233,204,211,185, 92,204, 35, 18, 20,194,206, +132,102,181,142, 73,123,155, 26,174,207, 33, 4,196,172,136,175,121,219,166,102,110, 27,139,121, 82,153, 8,231,163,157,229,249, + 26,113, 48, 71,228, 38, 30,183, 77,141, 24,250, 24, 13,170,210, 74,164,183, 64,224,167, 93,207, 27,198, 80, 17, 80,125, 75,211, + 90, 62,169, 91,126, 58, 56, 62,177,142,235,243, 25,223, 41, 42,222, 94, 28,161,134,158,181,247, 28,116,151,124,234, 76,108,172, +102, 7,145, 56,184,184,193,143,143,143,185,223,172,240,189, 35,212, 91,194,253,207, 8,153,137,124, 10, 39,248,147,155, 37,223, + 59, 46, 89,228, 26,147, 73,126,182,246,232,213, 41,165,209,116,125, 71, 78,160,151, 38,150, 99,109,120,210,109, 25,132,196, 14, +150,190,239,232,214, 49,255, 65, 52,245, 83,197, 92, 60, 85,216, 61, 2,141,192, 94, 77,235,216,142,159, 7,195,159,122,199,159, + 55, 61, 53,169, 73, 20,130,237,186,129,204, 96,113,136, 32,201,149,226,186,210, 12, 4, 94,214, 5,185,206, 89,135,128, 70, 97, +181,230,176,172,216,122,199,160, 13,235, 32,112, 82,176,246,129, 13, 49,161,113,150, 25, 42,163,232, 7,199, 48,120,172,128,102, +176, 17, 58,111, 7, 14, 50, 21,141,180,172, 67,245, 22,213,119, 8, 33, 57,181,158, 94, 72, 6, 17, 73,215,117,223,114,233, 3, + 23, 46,176,217, 54, 76, 76,198,197,166, 97,161, 28, 15, 90, 75,233, 58, 30,110,107, 28, 61,219,110,203,159, 45, 47,184,168,155, +216,144, 54, 17, 70,118,231,171,248, 60,220,180,208,247, 49,201,174, 31, 98,200, 86,211, 17, 86,171,120, 15,157, 44, 99,145, 93, + 94,198, 21,195,233, 50, 26,187, 12, 1,108, 67,168,230,116,237, 26,134,158,133, 12,156, 15, 3,133, 17, 4, 27,157, 11, 55,205, +138, 90,192,147,166,230,208, 24,206, 91, 75,158, 5,166,166,192, 5, 16, 90,179,181,150,123, 99,152,202,164,136,190, 36,215, 15, +163, 75,162, 76, 68,225,175, 83,103, 76,182,139, 20, 31,221, 73,247,239, 65,239,163,117,122,223,209, 53,142, 70, 6,154,186, 71, + 40, 69,223,244, 73,174,214,196,223,235, 54,169, 64, 63,199,117, 85,243,140,220, 40,125,253,130,205,200, 63,142,162,174, 83, 22, +176,142,214,170, 95,197, 42,126, 62,213,120,239, 97,218,165,192,150,171,253,185,221,177, 92, 66, 58,112,195, 62, 20,236,158,110, + 14,180,121,122, 90,191,154,184, 83, 66, 92,231,118, 80,238, 62,132, 47,216,193,162, 33,193,180, 99, 23,166, 4, 46, 24,234,208, + 48,241, 61,203,205, 35, 46, 54, 39,108,124,199,224,119,150,130, 89,169,185, 86, 77, 56,172, 74,166,217,132, 66, 90, 78,169,235, + 0, 0, 32, 0, 73, 68, 65, 84, 27,108, 8,108,135,150,139,237,134,179, 77,135,219,246, 48,128,152,228, 92,159, 23, 92,171, 10, +102, 69, 69,174, 50, 6, 2,175,189,122,135,249, 52,227, 98,213,177,222,212,188,243,209,123,176,190,124,174,246,246,171,235,186, +219,243, 3,144, 48, 95, 80,205, 74, 14,178,156,160, 20,171,186,229,201,102,203,242,228, 18, 46, 79, 83,243,147, 46, 88, 61,162, + 32,169,248,140,133,193, 36, 66,158,237,119,251,229, 47,156,212, 83,215, 58,194,226,232,167,239, 4,157,104,252,102, 22,245,158, + 70,198, 27, 80, 22,224,154,157, 54,116, 83, 67,189,141,231, 56, 58, 73,128,206, 83, 99,230,226,121, 51, 58, 54, 8, 46,194,226, +148, 42,122,217,207,170,116, 46,109,146, 47, 57,162, 56,117,111,133, 16,194,211,133,221,166, 66,218,251,221,154,232,107, 48,117, + 62, 71,140, 51, 58, 54,164, 99, 65,246,196,227,233, 92,226, 61, 4,152, 47,120,235, 91,175,243,107, 71,183,184,153,151, 76,253, +192,227,211,232,206,118,149,147,144,151,187,166,202,218,200, 11,209, 38, 73, 63,199,172,231,128,152,228,177, 72,103, 10, 46, 46, +163,217, 19, 62,146,230,172, 67, 12, 3, 98,176, 8, 23, 82,118,193,140,127,254,250,109, 66, 54,112,250,217,229,238,149, 91,119, +245, 30,124,215,241,231,141,197, 13,142,198, 8, 30,122,203,251, 18, 62, 81,240,104, 99,185,121, 48,225,119,111,188,196,245,188, +224, 85,105,152,175, 47,168,221,128,217, 62,230,209,166,129,182, 39, 28, 28,240, 47, 95,191,206, 31,189,121, 27,161, 22,188,223, + 46, 99, 70,188, 84,132,135,247,225,248, 26, 28, 29,241,122, 85,240,237, 69, 78, 43, 4,103, 29,220,247,240,248,211,135,152,224, + 49, 4,214, 82,130, 16, 56,161,120,104,123, 10, 33,144, 42,103,232, 7,142, 50,104,236, 64,183,105, 16, 67,159,244,198,241,116, +238,127, 22,105,167,254, 84,177, 31, 44, 98,219,211, 78, 13, 78,166, 66, 47,227,196, 37,130,163,217, 52, 52,198, 80, 72, 34, 63, + 70, 75,230, 62, 80,101, 6,235, 44, 83,105,152, 72,197,214,123,122,233, 17,186,164,182, 61, 94, 74, 30, 9,197,178, 23,172, 26, + 75, 94, 26,182,110, 64, 75,193, 76,105,188,243,180,221,128,246, 30, 63,120,242, 16,240, 8,164, 8,176,237,152,181, 29,165,179, +168,224,104,115,197, 73,239,216,184, 64,235, 28, 27, 33,232,156,231,126,183,102,144, 25,149, 86,200,190,225,222,106,195,249,208, +178,238,123, 54,182,163,235,123, 62, 91,175, 57,107, 45, 92, 46,227,245,119,177,142,241,219,193, 71,181, 81, 63,196,123,202, 54, +241, 26,243, 67, 84,141,228, 57,156,158,199,251,111,181,138,215,196,118, 27,135,159,109, 3, 34,198, 37, 35,162,251,231, 89,223, + 51, 15,240, 51,231, 89,116, 29,235, 32, 88,214, 91, 30, 4,133,182,142, 39,214,161,188,231,174,179,252,197,118,203,107, 50, 96, +101, 96, 51, 12,252,101,111,227,229,138,143,107,184, 60, 71,234,156,151,143, 15,152, 29, 77,168, 15,231, 4, 39,211,250,244, 5, +208, 65,231, 34, 73, 88,184,221,189, 2, 41, 95,100, 72,171,222, 16, 27, 24,198,148, 75,129,235,250,248, 59,172,141, 5, 93,217, +157,204,247,203,102,168,209, 9,117,159,168,247,194,180,162,127, 12, 69,221,251,180,175,216, 17,135,190,209,207, 64,198, 93,135, + 27,226,131,168, 75,218, 16,199,110, 23,225, 34, 9,126,127, 0,189,130,136, 71,237,185, 76,208,188, 16,241,117,165,155, 63, 66, +156,163, 55,124, 58,137, 98,183, 51,143, 77,129,137,147,169,244,201,160,127,120,250,196, 76,102,148,243, 9, 85,169,200, 53, 20, + 38,222,232,151,214, 19, 92,180, 14,172,202,130,235,179, 41,243,162,162,204, 39, 41,173,171,231,124,187,230,164,110,217,110, 59, +132,245, 80,104,110, 45, 10,110, 86, 21, 85, 81, 98,164, 70, 74,205,209,225,171,160, 74,250, 32,120,248,112,201,195,199, 15,249, +232,254, 61, 88,158,127, 51,232,105, 31,133,240,196,155,114,126, 72, 85,149,232,148, 91,126,210, 52,108,158, 92,194,217,131, 20, +180,147, 90, 80, 97,210,234, 34,117,184, 89, 34,132,141,176,187, 75,123,238, 97,120, 62,244,174,229,174,113, 29, 93,253, 70, 72, +106, 50,141, 95,151,243,184,227,118, 46, 74,139,236,144, 32,172, 33,157,244,104,231, 24,247,224, 1, 84,145, 76,135,210,117, 83, +153, 56, 69, 84,217,142, 91, 81,165,102,161, 72,174, 79,222,197,255,103, 36, 77,202,196,187, 24,228, 30, 9,208,196,189,155, 52, +169,121,200, 32, 31,149, 4,207, 63,246,226,170, 81,121,186, 97, 9,251,141,141, 72, 1, 70, 46, 17,170,204, 12,249,171,111, 17, +206, 47, 82, 53, 17, 80,206,184,249,202,109,102, 69, 69,166, 10,140,132, 79, 79,206, 97,187,142,175,105, 76, 78, 20,130, 76, 9, +110,107, 88, 53,251,107, 43,153,204,151, 28, 28,205,160,152,197, 9,220,135, 68, 24, 84,136, 20,205, 43,246, 27, 62, 60,255,213, +219,111,241, 47,222,252, 46,191,119,253, 38,239,172, 78, 56,191,216, 92, 53, 56, 87, 54,150,222,227,109,207, 7, 97,224,207, 6, +193,217, 52,231, 1,158,115, 47, 24,108, 64,230,134,223,153, 46,184, 38, 13,197,224, 41,183, 23, 56, 4,210, 7, 84,127,201,163, +229, 25,223, 95, 28,243,251,223,190,193,155,215,231,156,108,122,126,210, 65,200, 6,194,201, 25,225,244, 81,116,194,155,223, 98, + 57, 59,224,179, 65,240,216,193, 71,173,231,211, 85,207,185,133,220,121, 90,219, 70,110,177, 52,180, 2,132, 16, 32, 13, 50, 56, + 22,153, 33,247, 3,202,246,132, 48,208, 46, 55, 8,239,159, 2, 67,197, 51,224,168,124, 22,150,183, 61,172, 54, 8,159,208, 64, +149, 26, 49, 36, 88,135,235, 58,214, 66,144,107, 67, 55, 12, 44,140,230,178,239,120, 75,231, 4, 99,120, 40, 36, 85, 97, 48, 86, + 80, 7,207,133, 54, 60,118,158,199, 27,203,214,123, 90,226, 37,238,149, 36,243, 30, 23, 60,218, 58, 46,235,142,185,148,184,222, +178,181, 3,155,245,134,126,219, 48,107, 7,140, 31,208,222, 81,132,232, 65, 95, 86, 57,119,166, 25,111,148,134,219, 69, 70,222, +247,172, 61,156,247, 13,239, 53, 91, 62,108,107, 30, 13, 29, 39,182,231,241, 96,121,220,108,121,112,121,198,210, 9,196,201,147, +216, 36, 95, 92,198,235,146,189,208,173,164,144,136, 60, 20, 23,229,155,163,194, 98, 31,145,218,123,110, 6,239,146,135,134,132, + 34, 35, 92,108, 8,133,230,161,247,220, 14,158, 71,213,156,118,123,201,251, 58,167,116, 29, 91,107,217, 10,197,165,119, 56,215, +115, 17, 2, 15,187, 30, 53,120, 78,219,154,251,193, 63,197,139, 58,194,243,118, 49,225,119,230, 19,126,237,224,136,223, 60,152, +163,103, 57,247,114,149, 86, 98, 47,176,250, 19,196,250, 50, 42,147, 70, 95,143,113,101,107,251,184, 82, 27, 18,147,221, 15, 73, +230,236, 18,212,158, 2,195, 94,244, 25, 60, 62,155,198,191, 75,253,197,132,220,127,180,240,251,213, 68,243,180, 85, 30, 90, 39, + 6,115, 98, 11,127, 25, 81, 64,138, 52,125,141, 33, 42,201,222, 85,133, 29,204,106, 68,124,206,143, 63,195,164,234, 46, 19,236, +234,146, 99, 80,158,195, 75, 7,112, 52,133,101,189,243, 65, 23, 50, 77, 30,209, 87, 56,154,180,236, 17, 28, 38,101, 44,236, 38, + 75,221,149,125,250,245,154,146, 27,119,110,240,202,252, 16,109,178,184,214,237, 91, 78,183, 93, 42,234,146,235,147,130,107,213, +140,210, 24, 36,138,206, 15,172,251,154,243, 77,205,197,101, 13,189, 69, 40,197, 43,243,130,151,143, 38, 28, 84, 37, 70,104, 50, +157, 83, 84, 83,254,211,223,255, 1, 63,126,243, 8,169, 21,127,241,211, 19,254,242,227,191,163, 89, 95, 68,189,242, 47,179,179, + 30,177,162,234, 16,142, 14, 40,141, 70, 9,120,188,174,105, 87, 27,184,184,136,197,121,212, 91, 74,145,136,114,121,220, 29,233, +189, 34,110,212,142,245, 62,118,194,207, 67,113,236,142, 0,138,220, 63,119, 58,222, 48, 38,139, 55,154,117,145, 16, 87,111, 64, +151, 17,249, 9, 42, 90,127, 14,109, 44,106, 33, 62,188, 17,169,185,168,242,216,104, 76,146, 4, 70,171,248, 59, 42, 19, 31,198, + 70, 38,182,121,216,153, 16,217, 68,192, 20,106, 15,194,243, 81, 58, 35, 68, 68,114,148, 1,153,237, 94,255,115, 61,197,147,235, +222,216, 84,122,187,199,122,245, 79, 55, 54,227, 49, 29, 43,199,181,235,252,240,205,215, 57,249,224,227,248,125,231, 33,203, 56, + 61, 92, 80, 86, 11, 46, 3,188,223,118,116,143, 31, 68, 38,183, 17,144,149,208,110,184,118, 60,231,247,143, 42,110,101,154, 66, + 5, 78, 46,215,241,191, 13, 77,132, 24, 69, 72,146,205, 99,254,217,241,171, 28, 79, 12, 15,158,156, 70, 67, 27, 19,163, 64, 73, +211,171, 48, 26,208, 44, 22,134, 63,254,193,143,248,219, 39,103,220,117, 61, 15, 30,159,198,200,224,177, 65, 73,210,176, 49, 89, + 42,120,201,153,201,240, 72,110, 2, 63,170, 50,110, 20,130,169,148,188,220, 7,228,208, 32, 49, 52,190,229, 0, 9, 89,206,203, +194,177, 25, 28,157,207,216,132,192,191, 62,233,120,210,119, 4, 83,194,172,140,199,110,189, 37, 72,135,206,143,248, 48, 72, 46, + 7,248,100,176,172,183, 17,181,105,234, 26,134,192, 36, 19,116, 78, 32,114, 77, 70, 12,136,154,168, 12,165, 20, 42,192,205, 16, + 19,178, 30, 53, 61,170,115, 72,118,133, 93,125, 65, 65,127,182,176, 51, 88,196,182,129, 46,217,127, 75, 5,185,185, 74,236, 10, +181, 99,179,220,178, 21,176, 10,158,185, 17, 8, 93,176,178, 61,103,182,229,124,112, 88,109,120,191,239, 80, 66,240, 68, 9,206, +154,150,117,240,216, 44, 99, 93,183,100, 97,192,123,168,155, 14,183,109,168,140,138, 54,202,131,229,100,179,230,108, 91,211, 52, + 13, 19,107,163,211,156,181, 4, 15,153, 49,220,152, 78,184, 49,155,112,108, 12,151,131,199,202,128,168, 27,222,111, 55,132,161, + 33,244, 45,222, 89,232, 26, 66,189,134,243, 83,196, 96,225,228, 28,218, 22,177,169, 17,146, 8,179,135,164, 6,217, 47,232, 95, +151,113, 46, 71,211, 31, 15,133,137,207, 82,239, 88, 26,131,234,182, 60, 54, 25,175, 14, 53,181,201,185, 59,180,204,148, 96,105, +123, 78,156, 67,234,156,239,248,150, 75,239,249,168,109, 8, 30,222,146,146,133,144, 92,122,199,155, 38,227, 87, 38,134, 91, 38, +199,168,128, 17,154, 75,223,115, 87,104,156,208, 17,189, 82, 89, 42,206,246,249,104,165, 73,211,186, 50, 96,219,196, 93, 73, 12, +246,253, 24,242,167, 2, 89, 82, 16,216,215,217,231,107,253, 12, 4, 47,159, 46,246,254,255, 11, 69,221,185, 47, 46,232, 87, 15, +197, 4,139, 7,249,197,112,201,213, 30, 34, 60,221, 5,238,235,112, 71, 25,149, 25, 63,167,255,238,252,110,210,145,137, 72, 39, + 45,211, 87,111, 49, 45, 50,154, 39,235,100,237,103,119, 48,116,231,119, 18,170,241, 53, 23,147, 4,131,202, 29, 84,237,159,121, +152,231, 19,236,108,198,237,131, 35,148, 16, 56, 31,184,216,108, 56,171, 59,148, 86,148, 74,113, 52,201, 40, 77,134, 86, 10,239, + 28,219, 97,203,197,182,230,193,170, 78,177,166,176, 88, 20,188,116, 88, 50, 47, 74,140,201, 98,230, 60,130, 27, 7, 51,126,251, + 87,191,197, 98, 58, 99,106, 20,239,222,219,240,206, 47, 62,196,214,107, 56, 59,121, 46,188,251, 66, 59,165,249, 20,200,120,237, +199, 63,224,215, 95,126,157, 91,179, 5, 65, 58, 90,215,209,124,250, 16,252, 38,237,206,139, 84,204,211,241,108,235, 72, 34, 28, +139,184, 20, 17,150,203,205,206, 11,249,139, 46,246,241,220,143,146, 77,253, 12,194,226, 71,123, 95, 19,111, 68,157, 39,107,224, +144, 98, 99,137,134, 67, 38,143, 77,217,200, 7, 48, 69,108, 20,117, 98,144, 79, 77,146,170, 40,200, 21,114,146, 35,180, 66, 26, + 69, 24,207, 33, 41, 48,104,176,241,223,140,112,154, 78, 48,254, 32,163, 49, 81,110,146,244,164,139, 23,135, 78,202,129,231,133, + 1,233, 81,159,191, 87,216, 71,207,234,103, 31,120, 34, 77,235,227,199,118,205,201,199,159,238, 96,127, 66,108, 88,143,103, 60, +201, 43, 78,135, 45,157,181,208,109, 34, 84, 58,254,204,131, 67, 94, 91,104, 50,163, 9, 1, 62, 89,246,108,181,129,213, 5, 76, +230,208,213,241, 61, 8,193, 31,190,254, 38, 63,124,227, 85, 74,239,184,215,173,232, 78, 19, 92,218,237,145,199,140, 70,100,154, +251, 23, 45, 31, 46, 31,241,192, 76,184, 11, 44, 55, 13, 97,179,141, 58,111, 41, 63,159,130,102,123, 66,208, 28, 21,240,134,210, +188, 81,149,188, 49,159,210,121,203, 13, 37, 81, 46, 66,157,153,146, 76,117,134,240,150, 30,144,125,205, 79,159,156,240,111,206, + 59, 30,116, 77,132,221,117, 70, 16, 6, 42, 77, 48, 18, 46, 47,217,108, 46,121,141,130,207,182, 3,125,221,208,116, 3, 85,219, +192,118,197,145,148, 8,153, 81, 77, 12, 90, 72,188,130, 3, 64,104, 69,142, 96,130,128,161, 37,195, 33,133,224,162,173, 81,131, +101,164, 8,236,255,217, 47,242,159,219,185,251,184, 99, 23, 46,128,214,136,210,196,128, 35, 37, 16,237, 16, 55, 78,118,224,210, + 57, 30,116, 3,109, 24, 56, 13,142, 51,111, 49, 66,240, 81,223, 48, 17,130,143,189,227,209,170,166, 53, 37, 79, 54, 75,250, 16, +168,125,207,196, 69, 87, 75, 97, 29,167, 67,199,114,187,165,173, 59, 62, 93,157, 51,244, 29, 67,112,172,251, 45,166,219,112, 83, + 40,108,146,241,137, 44,103,114, 48,141, 54, 17, 82,112,152, 25, 30,174, 87, 56,215,243,176, 27,168,235,109,188,103,150,231,132, +203, 11, 56, 95, 34,150,107, 56,189, 68,132, 14,209, 70,164, 70,132, 30,132, 65, 40, 31,101,138, 62,161,114,163, 84,245,235, 32, +131,222,167,240,149, 68, 0,237,134,132,140,246,116,194,131, 13, 92,106,197,118,179,129, 32, 89, 91, 71, 23, 28,232,156, 31,251, +134, 11,149,241, 27,153, 96,134,226,183, 84,148,159, 86, 67,205, 45,161,208,120,126,101, 58, 97,145,130,210,182, 67,199, 84, 74, +126,178,105, 8,133,142,210,183, 34,135,249, 60,145, 92,247, 82, 63,159,154,214, 83,243,210,182,113, 88, 24,119,227,157, 77,255, +205,255,191, 52,228,202, 47,159,128,191,228,247,252,195,155,207, 24,189,199, 90,126,166, 83, 82, 50, 86, 94,147,168,255, 50, 61, +221,195, 23, 9,241,247,222,138,251,130,130, 62,194,223,201, 4, 4,201,206, 46,118,172,112, 87, 38, 49, 22, 6,205,230,231,119, +227, 3,121,219, 38,210, 83,218,151, 42,187, 11,132, 65,238,153,181,216,120, 97,132, 4,155,116,225,105, 67, 1,128, 97,205,198, + 89, 92, 80,180, 22,214,173,227,164, 30,144, 8,202, 76,113, 80,228, 20, 38, 50, 97, 91,107, 9, 56,214,109,199, 69,215, 19,172, + 67, 40, 13,165,138,164,184,162,136,161, 33, 16, 67, 36, 92,203,195,179, 53, 39,203,142, 42,239,120,184, 28,176,206, 38,162,158, +251, 6,114,182,221,199,244, 55,190,195,183,230, 11, 38,170, 98, 54, 59,226,120,113, 72, 46, 13,215,219, 25, 85, 46,248,243,247, + 62,130,173,141, 59, 89,246,229,107, 73,106,214, 63,109,168,195, 36, 17,209,244,151,152, 42,140,231,107, 60,189,227,215, 58,157, +171,174, 7, 61,219, 17, 42,100,202, 35, 38,201, 25,221, 22,156,137,133, 93,164,140,248, 60,201,178, 72,205, 93,110,226,142, 44, +207,200,178,216,100, 41,160,144, 26,171, 28,181, 21,228,165,166, 27, 18,146, 52,155, 68, 63,245, 73, 30, 97,245, 38,105, 75,171, + 50, 90, 6, 75, 29,201, 67,121,145,222, 67, 27,157,232,122, 3, 19,226,123,126,170, 27, 79,124, 15, 29,167,221, 88,224,247, 59, +152,189,181,144, 75, 1, 16,227,234, 98,108,112,198, 99,145,103,209,140,105,179,129,195,109,116, 54,211, 9, 45, 40,202,168,195, +159, 86,240,248,140,119, 57,230,222, 12,100,110, 88, 41, 13,155, 75,152, 30, 64,187,141,123,116,239, 97, 93,243, 89,215,113,116, +190,229, 51,159,179, 12, 42,110, 49,106,251,244,121,243, 50,230, 84,219,158, 63,255,236,130,197,225,171,172, 79,207, 98,255,145, +206,249, 83, 83,250,222,159, 80, 47, 89,103,146,249, 97,193,119, 23, 37,153,144, 56,165,249,100,123,193, 91,197, 33, 70,121, 38, +147, 25,222,246,220, 12, 14,143,196,245, 43,190,181,189,228,238,234, 18, 83,205, 8,179,107, 4,100, 52,192,201, 94, 38, 20,115, +130,235,248, 23,179,156,191,189,247, 87,188, 89, 45, 88,150,135, 20,229,140, 39,237,150,107, 66, 64, 89,198,185, 91, 43,180, 20, + 76, 27, 79,143, 99,129,192, 23, 19,194, 48,144, 87, 71, 84, 66,113,190,174,209, 38, 39,198,194,124,126, 34,223,111, 84,174,222, + 87,250, 44,198,247,190, 93, 19,130, 36,100, 10,170,138,160, 12,225, 72, 35,122, 75,216, 52,132, 77,207,210, 57,254,109,231,249, +241,177,229,194, 43, 62,212, 27,174, 77, 42, 62,114, 27,200,166,108,125,160, 8,209,204,103,211,110,232,124,192,234, 14,113,182, +230,237,197, 1,178, 31,168, 76,198, 59,219, 19,174,137,156,114,176,156, 13, 27, 46, 29,220, 15, 45,101,223,112, 92,206,177, 69, +197, 76, 11,182,155, 22, 93, 21, 56, 37,176, 93,135,148,154,135,221,192,106,216,144, 97,105,235, 21,172,215,136,101, 3,171, 21, + 65, 14,136,145, 83, 50,158,215,222, 35, 84, 15, 72, 2, 30,161, 36,193,181,105,205,240,245, 72,175, 97,188,231, 85, 3,107, 29, +137,168,125, 7, 7, 7,177,192,151, 9, 82,207,243,120, 47,200, 36,237,180, 45,179,162,228,147,182, 97, 41, 4, 71,153,226,227, + 65,114, 68,203,185, 87,188,149, 5,250,208,209,175, 47, 97, 50,101,166, 21,107,215,115,210,245,120,145, 86, 35, 34, 68, 57,107, +211,195, 75,215,225,108,147, 34, 82, 19,172,222, 15,177,144, 15, 22,244, 38,222,159, 87, 38, 97,123, 70,101, 90,255,242,122,120, +173,191, 24,250, 15,207,148, 59,251,143,117, 82, 31, 39,112,165,227,222, 81,238,125,125, 53,229,176,251,108, 71, 93,174,253, 18, +182,160,125,250,107,255,140, 92,192,237,193, 33, 87,242,163, 44,254, 78,108,100, 99,187, 36, 53,112, 9,234, 80,196, 7, 38,169, + 83,243,118, 23,252,146,233, 84,188,211,207, 22, 68, 63, 95, 98,224,253,231,100, 87,179, 3,202, 42,167,115, 61,237, 48,176,238, + 26,122,219, 51,211, 25,135,121, 78,145,101, 8, 33,105,135,142, 77,219,114,110,123,150,109, 79, 24, 2,170, 52, 28, 87, 21, 7, +147,130,194,228,104, 37,233,251,129,203,182,225, 73,189,225,238,197, 25,205, 70,242,201, 67,199,187,159, 62,225,253,187, 31, 80, +169,128, 83, 57,109,239, 9,205,234,235, 23,247, 55, 94,225,159,254,202,247,185, 61,191,198,205,195,235,204,103, 7, 44, 14, 14, + 40, 76,134,243, 61, 77,187,228,211,229, 18,206,151, 59,153,213,216, 84,133, 16,215, 20, 89, 58, 31,253, 30, 52, 47,229,231,143, +207,243,246,248,114,239,239, 30,200, 85,156,184,155, 77, 34,160, 16,247, 89, 56, 80,147, 8,187,155, 44,157,184,116, 30, 77, 74, +200,209, 58, 58, 66,205,242,120,141,149, 5,224, 9, 62,112, 84,229, 87, 15,236, 76, 38,171, 77, 31, 8, 66,197,189, 95,112,105, + 98, 78,136, 81,174, 83,140,162, 74,193, 65, 99,196,111,136,223, 23, 33,238,214,242, 34,222,149,251,124, 17,159,184, 2, 9,118, +140,215,244,190,209,254, 30,203,118, 68, 61,174,162,113,247,110,114,159, 16, 16,159,194,136, 38, 51, 56, 92, 64, 62, 69, 9, 65, + 38, 21,110, 52, 81,217,180,145,244,119,185,161, 47, 10, 58,147,208,132, 50,143,238, 91,101, 21,247,128, 58,114, 33,206, 53,188, + 43, 53,247,187, 26,164, 67, 60,124,188, 11,164, 72,240, 59, 18,196,104, 0,213, 91,218,161,142, 43, 47,173, 9, 82, 71,118,116, +146,227,125, 62,163, 92,114,205, 24,126,235,230,148, 91, 89,193,196,100, 8, 37,249,197,208,113, 32,161,202,231, 8, 33,112, 56, +132, 16,244,222,177, 28, 58,154,190, 67, 52, 27,182,167,151,216,205,217, 21,124, 19, 76, 73, 40,103,252, 15,175,220,230,247, 94, +122,137,227,233,130,127,253,228,132, 91, 65,112,186, 61,231,150,130,163,108,194, 52,211,148, 69,142, 29, 98,242, 95, 41, 4, 57, + 62,242, 96,241, 20, 89,134, 14,138,105, 81,177, 40, 51,110,230,146,187,203, 14, 29, 28,198, 75, 12,158,241,113,174,158, 3,199, + 63,245,199, 59, 16, 30, 49, 36,110, 78, 89,112,109,118,192, 31, 93, 95,240, 79, 94, 57,230,164,222,178, 94, 54, 4, 60, 15, 55, + 53, 23,214,115, 62, 88,238,213, 29, 91,165,248,108,121, 70,231, 6, 30,172,207,104,112,172,173,101,109, 91, 30,116, 53,107,231, +248,219,139,115, 38,194,242,168, 94,242,139,186,229,172,222,114,183,169,209,190,227,175, 79,206,249,216,195,208,173,208,120, 78, +240, 88, 4, 74, 72,154, 20,108,243,222,118,203,123, 23, 75, 62,232,182,224, 2,153,237,113,193, 98,211,115, 82,180, 93,124, 15, + 1,132, 13,136,144, 38,115,107, 35, 31,193,249,104,123, 19, 66, 44,252, 95,115,205, 23,158, 69,109,187, 38, 93, 88,169,154, 41, + 17, 7, 41, 49, 18,107,137,114, 81,231,248,149,178,160,238, 26,222,158,228,209,138, 2,207,143,139,156,247, 26,203,143,171,156, +141,237, 41,165,164,177, 14,221, 53, 8,107,121,210,183,252,207, 23,203,216,168, 15, 9,125, 29, 3,190,180,230, 55,111, 86,252, +209, 43,215,248,209, 75, 71,188,121,243, 58,191, 88, 28, 50, 76,170,221,250,117, 24,146, 12,186,216,153,133, 5,183, 99,194,127, +227,130,254, 69,204,119,190,160,182, 61,127, 90,255,135, 45,234,251,147,202, 24, 87,122,213, 2,139,120, 34,145,241,160,141,208, +249, 24,146,178,127,209,248, 17,174,120,246,161,200,231,119,218,159,131,119,109,124,248,155,113, 63,158, 14,170, 86, 73,146, 38, +227, 5, 52, 6,200,140,110, 98, 97,188,123,243,157, 14,123, 31, 17,240,246,249, 5,171,172,200,167, 37,210, 7,182,125, 67,215, +247, 4,235, 57,154, 22,148, 89,129,146,130,193, 90, 90,235, 56,111, 59,214, 77,135,245, 1,101,114, 38,153, 97, 90, 26, 38, 69, +142,137,157, 6, 77,215,178,234, 91,206,215, 61,171,186,230,195,123,247,120,247,222, 7,172,150,143,184, 61,187,201,245,234, 6, +139,131, 99,238, 93, 60,138, 19,217,139, 94,116,142,136,138, 28, 46,120,229,218, 33,185,202,168, 38,115,132, 18, 20, 89, 78,179, +169,145, 74,240,100,249,132,187,255,254,189,248,158, 71,214,102, 8,187,162, 62,186,188, 57,191,251,220,245, 79,147, 12,191,148, +108,177,199, 33, 83, 73,199, 63, 50,229,139,196, 95,240,233,156,185, 4,201,211,165,203, 33,196,134,173,154, 68, 41,215,124,186, + 75, 94,146, 50, 18,227,132,231,104, 82, 82, 24,141, 70,178,200, 13,141,117, 84, 82, 99, 69,140,210,116, 4,130, 8,228, 69,137, + 27,229,143, 46,105,218,125,114,155, 35, 21,115, 41, 83, 66,148,221, 93, 67, 90, 69,251, 96,189,111,176,227,119,133,221,219, 47, + 0,206,252, 30, 73,102,143,131, 48,202,227,132, 72, 65, 66,201, 85, 14, 17,191, 95,205,225,232, 26,210,100, 8,169,240, 12,132, +182,129,139,243,216, 92,108,155,136, 44,228,102,151,239, 60,164, 9,108,232,162,171,222,232,156,104,109, 90, 79, 36,243,165,166, + 67,156, 62, 77,184, 20,222,131, 23, 8,147, 26,157, 54, 53,186, 87,134, 69,146,224,159,247,160,247,172, 85,198,143, 22, 37,183, +178,140,193, 59, 86,222,113,215, 90, 30, 73,207,235, 89, 69, 97, 74, 10, 97, 48,125,131,232, 26,238,213, 43, 6,239,169, 6,207, + 4,203,242,124,139, 61,191, 32, 20,146,144, 25,190,149, 79,249,195, 87,111,241,202,193,148, 7,155,150, 63,221, 52,124,178,189, +196, 11,205,194, 24, 54,193,113,123, 94, 48, 56,136,246, 51,129, 74,128,146, 10,165, 37, 2,129, 18,138, 73, 89,226,132,228,184, +156,242,250,226, 26,223,191,177, 32, 47, 52,219,204, 68,138,136,206,209,153, 68, 7, 80, 94,162,240, 95, 80,220, 53,210, 68, 18, +176,212, 38, 18,232,108, 64, 20, 25,191,127,115,193,111,223,126,149,219,249,132,197, 68,243,215,143, 46,162, 61,240,166, 37,116, +125, 92, 87,172,150,244,231,231,132,174,167,175, 27,194,164,164,111,107,250,203, 51, 6,219, 17, 54, 43,134,182,198, 5,203,189, +237,154,251, 23, 23, 44,187,142,243,174,229,162,111,185,223, 54,184,109,139,191, 92,242,241,186,227,253,118,205,153,180,124,108, +123, 42,169,249,120,187,225,253,229,146, 63, 59,189,224,189,190, 70,121,129, 12, 22,129, 99, 18, 60, 70, 9, 26,235, 35,225, 47, + 72, 68,202, 11, 23,222,199,226,206,110,125, 38,246,214,104, 79,113, 11, 94,224, 67, 60,143,195, 51, 38,223, 73,253,116, 83,172, +178, 84, 84, 13,167,214,242,135,243, 2, 23, 2,183,243, 28,225, 29, 39,125,195,175, 84, 19,126,178,217,240, 86, 49, 97,139,196, + 13, 45,189, 27,248,183, 79,158,240,201,106,195,249,186,137, 78,139, 38,145, 24, 67, 34,246, 5,199,239, 44,166, 84,198, 80,228, + 19,130,210, 12, 62,240, 88,201, 56, 24,164,192,159,100,234, 30,239,225, 33, 26,204,124,110,136,252, 38,220,178,103,235,215,184, +190,179,126,103, 95,254, 37, 14,115,255,176, 69, 93,250, 52,245, 36,131, 15,149, 58, 51,173,226,131,114,140, 59, 53, 41, 51,221, +166,233, 56,164,206,109,255, 13, 93,217,234, 61, 51,165, 91,255,229,140,121,147,165, 40, 77, 31, 9, 84,214,239,152,235, 87,230, +251, 54, 22, 18,233,175,148, 80, 41,104, 45,165,180,132,103,136, 17, 95,177, 91, 49, 37, 93, 86,144,233,192, 96, 7,218,174, 35, +207, 36,243, 60,195,168,152, 54,212, 59,199,186,111,185,236, 59,186,244, 30,170,162,224,160,202,152, 8,137, 17, 18, 99, 4,222, + 90, 86, 67,199,227,101,205,166,237,226, 36, 60, 56,172,134, 69, 57,225,229,227, 87,233, 66,143, 14,154,207,214,231,216, 71,247, + 94,108,159,238, 72,187, 49, 1,237,128,184, 62,165, 84,134, 82, 79,208, 89,137,210,130,174,110, 56,191, 56,229,127,255,249,207, +225,241, 19,110,254,225,239,178,253,244,222, 14, 5, 81, 9, 5, 25,189,142,159, 37,139,140,136,140, 20, 41, 17,206, 63,135,156, + 39,247,214, 49,236, 38,197, 44, 33, 2,117, 29,247,230, 67,212, 21, 71, 75,222, 42, 73,189,242,248,123, 22, 21,243,151,110, 83, + 84, 37,106, 90, 49, 56,155, 36,148,130, 92,107,148, 16, 84, 58,202,127,150,189,103,150,105, 58,239, 81,233,241,212, 91, 79,105, + 20,109, 61,196,253,153,243, 41,170,215,197,233,252, 74,155,238,211,132,110,227,181, 45,243, 88,120,135, 68,216,220,183,130,220, + 47,236, 90, 62,243,246,237,211,135, 96, 60,158, 87,246,197,236,153,221,164,239, 41, 21, 77,113,164,128,195, 25, 97,178, 32,216, +150,128, 76, 49,172, 77, 92, 7,248,116, 45,219, 49,125, 45,161, 38,219,246, 10,206,164,245,177, 1,176, 46,229,170,155, 72,146, + 11, 1, 86,235,232,136,183,255, 80, 30,123,106,163, 16,117,138, 57, 86,154, 48, 47,248, 87,111,220,160,156, 21,220,123,178,138, +123,211,103, 31,232,193,161,181,166,202, 12,107, 2,247,189,231, 3,235,248,179,206,242,123, 74,176,208, 37, 6,137, 30, 6,124, +187,226,129,179, 8,235, 17,214, 81,122,193, 66, 64,237, 29,221,163, 11, 2, 45, 47,107, 56, 44, 42,150,125,207, 95,157, 46,249, +249,122, 9, 82,210,218,150, 7,117, 67,237, 45,219,214, 82, 59, 71,145,151, 84, 10,114, 4,131, 15, 84, 1,156,119,136,114,130, +159, 78,169,202, 9, 89, 57, 69, 34,184,105, 42,126,253,198,203,252,218,205, 91,188,253,250, 29,110,221, 56,228,177, 46, 17, 86, +161,133, 67, 5,143,242, 30, 53, 41,162,171, 30,196,198,202,232,232,176,151,204,154,132,237, 17, 14,138,185,225,213,201,156, 78, + 74,238, 14, 61,239, 73, 79,216,118,176, 90,198,107,121,187,133,186, 35,244, 3, 97, 91, 19,250,158,112,255, 17, 56, 75,184,220, + 64,169, 97, 91,227,237, 0,221, 64,232, 90,252,166, 33, 88,143, 95,175, 8,117,135,111, 45, 97,179,193,183, 22,191,185,100,115, +126,206,253,117,207,167,131,227,223,212,151,252,249,106,205, 79,234, 53,143,188, 77,251,253,154, 82, 4,114, 31,200,188, 37,243, + 48, 87,130,181, 20, 41,201, 90, 34, 19,138, 42,242, 9, 34,215,187, 70,115, 68,110,158, 41,214, 95,172,239,255,170,194,174, 99, +209,154,148, 41, 82, 59,139,240,119, 57,137,141,124, 55, 64,105,120, 75,106,126, 59, 23,104, 83,160,156,101,229, 44, 62,120, 14, +148, 97, 35, 5,175,105,205, 25, 48,117,150,121, 94,112,210,118,220,145, 18, 63,116,116,109,207,182,238, 96, 91,167, 97, 36, 42, + 64,254,224,120,194,203, 89,134, 86, 25, 94, 40,140,214, 40,229,121,191,115, 73, 13, 35, 99,211,170,178, 36, 97, 78,247,239, 40, +171,126,161, 97,229, 75,184,200,242,139, 8,114,114,111,112, 77,181,238, 57, 48,255, 63, 92, 81,207,179,120,178,236,176,179, 33, + 29,109, 67,179, 44, 62,176, 61, 41,251, 60, 21,216,204, 36,194,211,222, 67,244,138,109, 56, 78,241,233, 11,251, 2,164, 5,173, +119,133, 65,154,221, 46,211,167,194, 48,234,217,247,131, 96,252,254, 78, 35, 77,162,146, 29,170,240, 34,154,199, 76,225,242, 41, + 94,198,160, 12, 47, 29, 19,101,226,164, 40, 21, 62, 8,186,193,114,209, 91,182,221, 0, 8,230, 7, 83,110, 47, 14, 40,181, 65, + 9, 16, 4,164,247,116,206,178,106,122,206, 86, 13, 97,240, 8, 31,146,116, 2,124,166, 17, 42,144,235,156,179,230,146,251, 79, + 30, 65,187, 34,188,136,193,139, 76,197,214, 73,232, 44,151,171, 37,159, 14, 61,199,101, 78,158,231, 12,221,192,166,105,184,127, +241,152,135, 31,222, 5,103, 99,152,194,197,242,105, 6,232, 87,161, 52, 34,101,222,203, 47,131,173,198, 48, 29,181,135,213,165, + 9,220,217,200, 92,109, 54,241,198, 31,145, 19, 63, 58,178,233,216, 20,222, 56, 38,207, 20, 90,104,132, 0, 43, 37,193,182,160, + 21,185, 84, 84, 70,145, 41, 69, 99, 3,149, 81,180,214,225,131, 39,136,128,199,145,107, 73, 63, 4,156, 27,253, 14,210,227,201, +118,169, 1, 10,145, 57,158, 21,169, 80,219, 36, 61,235,227,235,180, 54,146, 7,191,112, 90, 29,215, 73,123,219,230, 60,139,147, +244, 62,231,100,148,124, 62,187,190,130,216,160, 24,179,147,111, 22,121,108, 34, 84,130, 5,109, 23, 97,240, 85, 27,119,135,117, + 15,198,240,218,141, 9, 63,200, 53,175,101,138,187,103,171, 68,144, 75,122,117,124,124,144, 42,147,124, 5,178,200, 23,184,184, +252, 92, 81,199, 39,111,251,193, 38, 36,109,128, 44,231,191,127,227, 22,191,119,227, 14, 70,195,255,125,214, 68,159, 0,118, 22, +171,130,104,157,251,112,208,104, 41, 89, 3, 15,156,229,190,147, 88, 39,184, 27, 90,254,137, 41, 41, 48, 40,153, 81, 44,174,241, +242,209,109,174,103,134,101,223,226, 8,100, 88, 94, 54, 26, 41, 5,121,215,241,160,109, 8,126,195,191,127,248,144,127,119,118, + 70, 24,122,130, 34,154,214,100, 6, 79,108, 2,122,239,112, 54,112,123, 82,176,181, 45, 55,140,161,243, 1,147,229, 44, 14, 22, + 20,179, 9,250, 96,134, 51, 26, 33, 13,147,114,130,247,129,239, 29,220,224, 7,183, 94,229,187,179, 27,252,250,209, 13, 38,115, +205, 61, 15, 90,101,168,190, 71,117, 22, 57,153,160, 76,134,202, 75,228,224,144,194, 34,131,138,133,125,176,208,212, 60,217, 88, +154,210,177,148,129,159,212, 3,219,224,160, 72, 43,139,117, 29,175,105,219, 39,169,151,139,150,191, 67, 71,232, 60,129, 1,214, + 13,161,110, 97,121, 25,125,197,183, 29,161,183,132,224, 99, 19, 48,244,248,139, 19,130,235,240,109,131,239, 26,188,115, 49, 22, +183,174,241, 78,224,134, 26,239, 6, 6, 63,196,201,223, 65, 62, 88,140,112, 84, 82, 82, 10, 75,174,224,192, 40, 90, 33,152, 40, +197,171, 83,205,235, 7, 83, 14, 22, 5,213,193,140,165,154,166, 20,199, 72, 6,125, 17,199,202,231, 21,120, 1, 8,167,227,176, + 52,201,160, 92,196,235,149, 16,249, 33, 77, 90, 35, 45,166, 16, 36,255,201, 52, 3,161, 88, 54, 43,166,249,148,206,123,110,231, + 37,101,128,119,235,129,137, 49, 84,174,231,157,198,115, 93, 6,180, 18, 4, 9, 55,164,228,219, 18,254,195,233, 38,230, 62,116, +117,202,132, 8,220,154,230, 28,165,235,201, 75, 73, 23, 2,119,155,129,251,222,238,236,165,125, 34,216,230,121,188,239,138, 34, +162,129,243,121,228,173, 16,146,174,157,167,172,194, 95, 88,158,253,133, 68,185,125,101, 12,255,128,240,123,158,197,130,169,244, +142,249,172, 18, 44, 55,178,205,199,169, 67,232, 61,246,249,222,127, 27,255,222,165,128,149,126, 47, 42,245, 89,221,158,231,133, +172,244,174,138,138, 79, 5,217,201,157,143,182,142, 25,232, 87,233, 56,210,238,177, 94,246,150, 64, 82, 60,141,246,191,168,100, + 33,159, 35,143, 14,210, 84, 30,223,227, 52, 87,104, 41, 81, 41,138,117, 99, 7,182, 67,207,208,122, 80,130,235,243, 57, 71,147, + 42,234,124,189, 71,138,128, 7,154, 97,224,116,219,211,215, 45, 34, 88,194,224,147, 22, 50,208,181, 29,151, 67,207,164,148,100, + 42,195,148,154,229,221, 79, 63,175, 48,144, 50, 22,143,253,239,187,212,185,202, 84, 24,234, 14,206, 46,184,151,231, 76,144,156, +111, 86,156, 44,207,249,155,191,251, 32, 26, 74,120, 7,143,159,124, 13, 13,230, 30, 95, 98, 44,238, 94,124,201,201,211,169,113, +218,219,194,121,226,106,102,244,223, 55, 69, 58,159, 33,201, 18,211,215, 62, 64, 38, 49,147, 10, 35, 21, 2, 65,125,118,114,229, +224, 87,102, 17,130,239,211,164, 17, 66, 96, 98, 4,141, 15,248,224,232,186, 1,161, 37,110,136, 69,128, 33,217, 4, 15,125,212, +186,143, 54,179, 46,233,187, 73, 49,173, 17, 82,136,222,211,202,126,193,148,254, 12,204, 14, 48,159,237,246,237,106,239, 88, 93, + 25,152, 36, 72,220, 36, 56, 82,236, 61, 66,157,138, 83,117, 31,226, 52, 83,229,200,172,136, 92, 0,153,126, 94,221,196, 66, 61, +137,196,190,183,230,113,191, 60, 23,130,109,102, 88, 95,174,118,153, 7,235,109,202,143,111, 99,166,188, 78,146,189,109,106, 16, +158,125, 40,143, 48,236,136,204,204, 42,126,116,235, 58, 47, 85, 11,222,223,174,248, 15,171,250,106,191, 62,178,252, 69, 90, 63, + 8,111, 89,107,131, 45, 52,141,214,156, 9,141, 66,176, 14,240, 61, 45,184, 61,185,134,204, 10,212,157, 59,152,197,156, 60,155, +242,224,226, 4, 31, 44, 7, 74, 51,147,130, 55,203,140,215,202,156,235,210,243,127,220, 59,229,241,227, 75,252,102, 21,237, 71, +135,142, 16,162,197,232, 92,105, 58, 33, 41,164,230,187,121,137, 15,129,133, 20,172,250,150,105, 86, 48, 5, 68, 81, 48, 63,158, +146, 77,178, 56,109,103, 57,189, 8, 92, 95,204,249,246,241,130,163,107, 11,110,220, 62,230, 80,230,220,206,230, 76, 75,197, 71, + 97, 64,161, 80, 38, 71, 57, 17, 31,117,193, 35,165, 68, 74,141, 20, 17,198,150,193, 71,131,154,190,225,209, 89,203,199,189,101, +147,167, 18, 39, 53, 84, 69,242,187, 72,247,136, 73,205,235,120,111,217,100, 56,212, 69,171,209,224, 29,180, 53,161,111, 8,205, +150,208,213,132,174, 37,108,214,209, 82,183,235, 9, 62, 58, 18,122, 51,137,141,234,182,195, 93,158,225,215, 91,124,231,240, 50, + 96,189,160,198, 98,221,192, 53, 1,194, 15, 72, 2, 19,169,240,222,242,189,210,240, 95, 30,207,249,227,107,115,126,255,240, 26, + 63,154, 77, 48,153,225,246,225, 4, 57,203, 57,247,163, 37,179,191, 50,185, 18, 95,241,231,115, 80,189, 75, 13,162, 54, 80,205, +162, 71,196,232, 19, 18,136,182,175,101,206, 91, 70,179, 48, 5, 19, 37,184,165, 37, 51,157,113, 50,116, 92, 87,145, 39,240,211, +174,231, 71, 85, 5,174,231, 49,146,183,164, 35, 87,138, 92,103,244, 67,203, 37,112,182,105,120, 83,122, 62,238,251,120, 95,116, + 45,116,150,207,250,192,237, 66,115,156,103,120, 60,181, 11,252,111,117,178,119, 29,146,124,109,180,181, 22, 10,180,230,237,227, + 25,255,217,203, 71,252,241, 75,215,121,179,202, 56, 62,158,241,137, 75,131,135, 74, 80,150,208, 9,233,245, 47,246,124, 28,239, +117, 41, 63, 47,107,123,118, 74, 55, 89,180,191,158,204,254,158,139,186,214,159, 63,125, 89,130, 25,131,143, 7, 68,236,193,174, + 89,218, 89,200,189,221,122,199,206, 61, 43, 27, 3, 44,146, 65, 71, 72,108,224,111,162,189, 30,187,161, 76,197, 2, 46,147, 3, +157, 75, 83,250, 78,147, 18, 11, 74,240,159,191, 34,189,142,210, 13,207, 87,104,145,159,165,146, 31, 17,166, 21,101,150,161, 3, + 8, 28,165, 20, 40, 37, 17, 66, 80,187,129, 85,239,217,108,146,145,129,212,148, 69,134, 81,130, 64,192, 38, 18,203, 48, 56,206, +234,142,198,245,248, 54,238,234,128,200,176,237, 99, 71,121,124,231, 14,191,250,210,247,185,182,184, 65,169,167,124,252,209,207, +147, 17, 10, 59, 86,117, 72,244,165,253, 6, 73,142,133, 98, 12,198,137, 19, 88, 88, 45,185,127,178,228,254,217, 41, 39, 15, 79, +226, 78,234,120, 17,163,104,151,203,175, 39,217, 16,123, 37, 33,124,149,109, 99,154,212, 71,231, 38, 33,119,180,171, 16,118,202, + 5,183,137,208,187, 72, 70, 64, 87,251,111, 79,111, 29,117,219, 70,205,190, 84, 32, 2, 82, 27, 36,129,206,121, 22,153,166,245, + 46, 22,125,103, 49, 66, 82,183,129, 28,208,184, 0, 0, 32, 0, 73, 68, 65, 84, 29, 74, 73,218,110,192, 14, 46,158,228,113,183, +109, 19,151, 66,166,137,125,244,130,247, 34,153, 14,117, 41,139,222, 62,205,122,127,222,199,124,198,175,254,193, 31,240,248,209, + 41,132,209,168, 35, 53, 46, 35, 41,211,167, 41,126, 84, 85, 36,203,214, 8,223,200,104, 97,156, 16,138,197,225, 34, 58, 33,203, +232,187,142,119,209,202,210,185,200,242, 45, 11,242,105, 78,166, 36, 79, 20,124,120,186,142,205,208,208,197,227, 90, 76,162, 43, + 88,235, 96, 49, 37, 91, 28,242,223,188,114, 27, 76,224,241,147,243,157,213,237,243,166, 49,103,249, 64, 74, 50, 3,255,211,249, +138, 49, 71, 65,216, 1,186, 52,217,203,241,118, 10, 12,237,128,152, 76, 64, 75,164,206,113, 82,161, 51,141, 99,224,123,213,140, +108,122,136,190,113, 13, 89,228, 32, 13,225,244,132,204, 8,230,194, 50,211,138,185, 82,232,204,176,200, 12, 11, 45,168,115,201, +106, 8,248,179, 21, 97, 85, 19,148,228,123,139, 41, 7, 69, 69,169, 20,223, 46, 42,110, 86, 26,229, 6, 30,146,241,170,214,216, + 48,176,177, 29,211,114,130,208,154,220,104,148,212,228, 70, 49, 59,156,112, 45,207,121,245,246,156,233,181, 25,249,180, 32,159, +148, 20, 65, 83, 5,205,141, 34, 99,118, 60,229,177, 5,165, 99, 46,188, 42,203,152, 84, 55,184, 56, 3,100, 2,209,119,209, 94, + 55, 51,136,205,146,176, 94, 33,172, 39,100, 9,194,117, 46,162, 78,211,105, 92,167, 76,138, 88,212,159, 34, 89,122,130,247, 87, + 54,191, 97,252, 60, 90, 11,143,196,196,125, 25, 97, 86,225, 95,190, 78,200,115,124,211,225,189, 37, 88,139,239, 54,177,184,111, + 58,176,158,182,239, 49,161,167, 18,129, 74, 42, 58,231,152, 72,201, 15, 77,206, 43,153,225,118, 94,209, 75, 65,102, 10,114, 93, +208,154,140, 60, 47, 40, 38, 25,143,145, 8,105,226, 42, 88,131, 72,215,200, 87, 21,245,171,207, 33, 93,243,215, 23, 28,127,251, + 22,119,174, 31, 80, 86, 25,235, 85, 23, 81,157,220, 32, 50, 67,233, 3,111,205, 75, 50, 37,105,132,228,193,208,242, 45,157,209, + 59,199, 52, 43,240,174, 39,179, 61, 70, 27, 50, 2, 23, 74,209, 15, 13, 77, 16, 28,232,156,123,219, 45,223,193, 82,235,140, 7, + 77,203,224,147, 4,175,107,193, 14,124,120,190,230, 47,215, 29,127,179,110,248,233,233, 58, 90, 79,143, 6, 89,146, 56, 96,250, +116,255, 25,193,239, 30, 78, 56,204,115,150,110,160,200, 50, 10, 35,121,199, 19,159, 89, 90,199,232,102,157, 37,243, 42, 29,107, +221,151, 33,166, 99,125,250,220,196,110,247,184, 95,251,232,175,129, 27,215,225,160,250,123, 46,234, 38,193, 40,201,200, 42,154, +133,164,105,123, 92, 78,203,189,135,242,104,252, 50, 78, 40, 73,242,136, 74,134, 32, 54,196, 23, 63,116,105,127,145, 10,146,210, + 47, 6,123,127,209,129, 27,108,236, 6,197,222,208,164,216, 53, 14, 36, 86,190, 22,137, 21,191,199,134,119, 99, 76,107,130, 7, + 94,212, 9,111,114,200,252,248, 24,129,101,146, 75,140,242, 56,124,100,247, 58,199,186,115,212, 93,135,107,135,196,244,150,104, + 41, 48,193,209, 15, 29,189,115,212,214,178,234, 44,235,174,195,182,195,213,235, 18,128,200,116,252,119,147,138,215, 94,122,133, +235,213, 13, 76, 86,112, 86, 95,114,247, 23, 31, 69,168,105, 60, 63,251, 27,118,241,108, 23, 57,198,165,250,167, 9,217,161,139, +234, 0, 83,240, 43, 63,250, 46,223,121,229, 14, 55,174, 29,240,240,195,143,190,102, 83,181,231,219,251, 34, 50,144, 49, 28,101, +156,236,199,159,163,203,136, 6,117,155,148, 31,224,162,243,147, 74,190,255, 58,105,228,101,154,114,198,244, 62, 29,139,157,147, + 16,188, 96,176,241,218,148, 2,250,161,103, 8, 34,230,195, 91,199,208, 38, 55, 40,153,174, 1, 45,210, 83, 75,199,130, 45,146, +125,171, 76,174,117,210,199,137, 94,236,241, 8,244, 87, 68, 39, 10,201,226,206,109,206, 46,183,145,165,126, 37,135,244, 79,147, + 46, 71,119,195,177,161,185, 98,197,143,231, 44,178,171, 77,158, 33,179, 18,233,122, 6, 68, 84, 7,116, 67, 52, 83,202, 5, 52, +150,203, 44,231, 51,161, 56,233, 92,132,240, 79,150, 41,174,210,239,216,188,125, 7,139, 5,255,237,183, 95, 99,158, 21,220, 44, + 51,254,234,222,195,167,144,135, 47, 44,238,131,101,216,214,252,188,177,145,183, 98,116,156, 40,148, 70, 12,109, 98, 76,239,184, + 64, 2, 79, 91, 91, 66, 53,165,204, 51,110,149,134,235, 70,211,216,192,129,214, 92, 47,166,228,243, 35, 4, 18,119,182,166,169, + 47, 89, 40,141,180, 45, 3, 1,171, 20, 83,165,232,165, 98,155,231,148,147, 18,189,200,241, 71,135,212, 50, 70,146,102, 58,102, + 40, 84, 69,206, 91,243, 9,139,188, 68, 21, 5, 10, 75, 45, 2, 97,176,116,195, 64,240,130,182, 29,232,188, 34, 47, 37, 7, 70, +114,144, 25,142,139,140,163, 89,137, 73,134, 88, 33, 64,191, 29,152,152,140,151,138, 25, 55,204,140,107,243,130,108, 81,176,206, +114,110, 29, 76,104,136,249,232,178, 40, 17, 14,230, 85, 73, 63, 54,255, 58,106,158, 51, 47,177,247, 79,119, 33, 83,121, 14,121, +137, 88, 76, 17,179, 18,145, 25,196,186,223, 17,211,190, 4,222,126, 86, 97,112, 85,212,111, 93, 39, 28,205,241, 66, 17,156,199, + 55,245, 21,231, 50, 12,150,208,212,132,102, 11,203,134,165,135,163, 66, 17, 6,143, 15,158,204,121,126,115, 86,114, 36, 53,181, + 15, 28, 20, 83,164, 50,212, 74,161, 85, 70, 11,148,153, 65,105,201,105,153, 33,242, 28, 81, 86, 8,165, 17, 33, 32,148, 68,154, +104,188, 35,210,179, 90,228, 25, 28, 94, 67, 28, 30,198, 93,121,176,136, 30, 56,152,160, 94,123,137, 95,125,233, 22, 71, 85,197, +181,233,148, 70, 59, 14,231, 11,230,147,130, 44,203, 89, 43,197,171,153,228,251,210, 80,227,185, 99, 42, 30, 13, 3,179,204,240, +184,221,178,200, 12, 66, 74,222, 93,111,249,118,150, 97,188, 71, 8, 77,214,111,249,133,115,188,157, 73, 54, 66,241,112,217,240, +201, 42, 33,110,193,238,106, 66,215,195,182, 38,172,183, 81, 10,218, 15,145, 41,223,182,123,208,119, 68,157, 95,171, 12,223,153, +149, 9, 84,150, 72, 41,233,172,227, 97,235,168,131,139,207,173, 34,169, 99, 50,179,147, 70,243, 21, 67,224, 72, 10, 31,229,129, +227,122,249,139,212,220,186,128,195, 41, 8,241,247, 92,212, 71, 54,251,184,223, 20, 62,194, 43, 90,164,154, 62,230, 7,167, 68, +169, 50, 89,116,138, 84,192, 77,250,247,109,138,229,244,105, 18, 26, 89,194,163,166,221,168,111, 78, 78,208,169, 0,122,145, 18, +189,236,142,132, 39,210, 62, 83,134,221, 90, 64,239, 5,198,104,113, 21,121,249,149,228,184,253,143,163,107, 48,201, 40,101, 52, + 7,109,236,144, 40, 4, 1, 31, 60,203,166,165,223,244,187, 59, 50,215, 84, 74,199, 7,146,115, 52,189,163,117,158, 85,211, 18, +154,126, 23, 28, 50, 58,182,105, 73,118,120,196, 31,253,198,111,115,231,224,101,178,194,112,114,121,198,121,179,226,241,123,239, +236, 38,226, 81, 46, 50,178,213, 3, 47,198, 70,215,121,100,240,191,114,131, 31,220,122,153, 42,203, 89,148,115,222,175,215,209, + 54,242,235, 20,246,175,115,220,198,130, 53,122,152,143,143,174,190,141,197,122,146,180,225, 58,237,180,188,125, 26, 21, 24, 9, +118, 42,217,253,250, 72, 20, 11,214, 33,100,160, 15,150, 66, 43, 86,109, 79,102, 76, 12,246,176, 22,215,251, 24, 38,161, 50, 66, +155,100,151,232,221, 42,105, 36,122,250, 17,253, 48,209,163,160,208,241, 97,161,242, 29, 34,245,101,197,221, 90,206,238, 61,129, +119,207, 97, 49, 58,239,137,207, 91, 75,238,239,214,173,221, 37, 18, 38,201, 17, 93, 3,205,128,152, 79,176, 2,110,102,138,181, +141, 54,161, 46, 36,249, 93,189,137,247, 99,158, 36, 57, 82, 70,116,103,211,166,169, 48,177,130,187, 20,106,227, 5, 47,189,114, +204,180,156,242,225,106,205,167,203, 21, 44, 87, 95,205, 98, 30,108,132,220, 77,129, 40,242,184, 22, 40,242,132,102,116, 49, 20, + 70,238, 75,191, 44, 62, 47,184, 54,157,240,250,172,224,229, 44,231,102,102,232,252,192, 29, 85, 80,133, 12,177,109,241,151,231, +208,111,232,130, 37,147,224,188,199, 7,193, 96, 50,106, 33,104, 76,198,153,214,132,108,194, 26,137,168,102, 76,102, 83,206,236, + 64, 40, 74,178,190,229, 90, 85, 33,165, 96, 27, 2,151,117,244, 75,183, 33, 71, 40,133,119, 29, 79,150, 23,116,155,158,118,109, + 41,243,140, 10,193,225,180,100, 90,154,120, 41, 57, 79,115, 57,208, 39,120, 59,211,154,227,233,148,111,205,143,249,222,244, 26, +111, 47,110,113,123,122,196,203,211, 9, 55,143, 22,212,194, 33, 39, 5,181,208,152, 98,130,247,154,144, 25,130, 80, 88,223, 69, + 47,129,179, 39,136,218, 71,134,121, 89,198, 63,197, 4, 81, 76,224,232, 0,145,149, 8, 55,230, 99, 60, 77, 76, 11, 95, 81,224, +131, 29,160, 19,132,186, 33,180, 29,193, 8,194, 96,241,251,255,214,185,180,199,135,199,219, 1, 81, 72,214,157,197,122,199,117, + 41,185,157,229, 40, 41,144, 74,210, 74,205, 35, 4,191,112, 30,167, 51,156, 27,168,138, 9,159,166,103,163, 40, 51,196,193, 12, + 49,155, 35,103, 51,132, 48, 8, 93, 32,130, 64, 28, 28,114,227,135,111,242,195,111,191,206,173,227, 35,166,243, 9,231, 33, 54, +201,226,240,136,183, 95,191,205,141,197, 97, 92, 55, 6,207,171,199,175, 48,175, 38,124,251,198,171, 28, 22, 57, 88,248,171, 65, +114,205,120,142,100, 70, 23, 44,183,164,226,103, 77,199,247,170, 41, 63, 91,109,121,105, 82,112, 83,192,133,247, 12,118, 64, 41, +197,165,115,188, 42,163, 64,227,227,245,134, 62, 56, 30,214, 93,146,181, 61,171,170,242, 59, 87,188,174,139,205,109,215,239, 86, + 72, 67, 68,139,151, 65,241,195, 42, 39,215,138, 42,203,113,222, 49, 72,201,159,159,175,119, 3,196, 56,200,142,133, 57,168,136, +114,250, 23,244,129,255,130, 77,221,231,184,196,166, 0,165,255,158,139,186, 79,187, 7, 35,159,182,181, 30, 31,200, 97, 44, 38, +137,108, 70, 72,172,217,148,132, 21,146,214, 55, 31, 37, 72,201,163, 93,238, 89, 60, 40, 25,117,192,214,127,243,215, 40, 69,146, +246,164,215,123,165,139, 78,144,188, 20,207,236,214,147,212,194, 39, 41,210,184, 95,121,145,226,100, 52, 76,231, 96, 52,131, 29, +144, 50, 32, 69,136,196,101, 96,221, 15,212,235, 4,187, 19,181,190,121,110,168,180,185, 90, 65,215,118,136,208,124,151,136, 27, + 33,196,156,238,224, 18,151, 34,227, 59,175,191,196,175,189,241, 54,147, 89, 69, 8,158,119, 31,188,199,207,238,222,133,243, 39, +187, 11,105, 95,126, 38,120,177,105,217,196, 48, 23,166, 5, 78, 6,190,123,253, 22,214, 7, 54,125,203,221,119,247, 80,128, 23, + 66, 44,138,221,190,248,235,156,175, 47, 82, 25, 76,138,104,211,234,101,132,189,117,146,149,153, 84, 68, 68,216,237,240,243,100, +114, 52,158, 51, 23, 98,212,169,131,174, 27, 48, 90,208, 44,123,156,243,132,173, 35,116, 22,134, 16,235,168,117, 32, 20, 82,137, +189,135,168,220,145,211,228, 56,177, 39,179,152,178,140,138,132, 66,197,115, 83,232, 47, 71,116, 92, 31, 77, 54,198, 68,188,193, +126,254,186,218,127,239, 35, 55,100, 76,160,179,195, 85, 30,179,235, 6,244,172, 64,227, 57,144,146,137,136,219, 44,231,146, 52, +104,179,141,231, 61,159,236,156,237,182,203,157, 60,103, 24,118, 33, 60,131,227,195,162,224, 93,239,249,192, 19,207,243,147,179, +231,247,243, 35, 87,163, 72,108,252, 46,238, 67, 69, 89,196,251,187,200,185, 94, 78,168,187, 14, 26, 27, 11,187,181,209, 99,221, +228,220, 58,170,120,115, 50,225,102,150, 51, 85, 6, 21, 2, 83,103, 57, 26, 60,102, 93, 35,215,167, 8, 27, 87, 35, 82, 27,178, + 32, 24,194, 64,131,224, 66, 73, 30, 35,233,148,166,113,130,144, 77,184, 83, 78,120,189,202,249,193,180,226,117,147, 97,114,195, + 89, 15,245, 16,168, 7, 65,161, 20, 86, 43, 50,173,169, 10,197,208,193,208,119,244,237,154,147,199, 15,232, 58,205,205,249,148, +210, 9,180, 21,168, 32,217,110, 7,150,117,207,227,229, 22,213,247, 76, 38, 57, 89,166, 41, 76,198,225,108,198,245, 98,194,171, +211, 67,238, 84,215, 56,150,134,239, 47, 14,121,105,162, 17, 69, 96, 58,201,153,148, 57, 90, 10, 90, 23,240, 77, 71,240, 3,162, +239,162, 1, 80,215, 33, 76,116,159, 19,229, 12, 81, 46,248,141,107, 55,249,151, 63,250, 33,223,126,249, 58,239, 24, 25, 73,139, + 93,247, 66,210,177,144, 26,172, 16, 2, 65,105, 66,166, 8, 8, 66,215,125,241,132,111,123,196, 80,179, 94, 15,108, 58,207,105, +235,121,181,148, 28,101,146,153,202, 49, 82,113,191,239,248,133,247, 92, 4,143, 80, 10,148,161, 38, 48, 17,130, 19, 25,101, 98, + 2,144,147, 18, 81,100,200,249, 28, 49,169, 16, 55, 14,248,225, 27,119,248,222,173, 55,184,113,237, 58,147, 44, 35, 11,129, 91, +135, 11,178,163, 57,183,110, 94, 99,154, 23,148, 58, 71, 74,193,180,156,178,220,118, 84,197,148, 50, 43,200,179,130,195,106,194, +237,208,242,208,122,190,165, 36,150, 64,111,114, 50,103, 57,245,142, 55, 51, 67,239, 44,103, 66,112, 32, 4,154,192, 67,215,115, + 40, 4,114,136,100,193, 83, 23,184,108, 90,122,225,233,221,158, 58,231,185,250,241, 84,160,125, 31, 27, 96,219, 71,243,169,174, +101, 86, 25,110,107,195,129, 81,172,186,158,255,245,209,146,173, 15, 49,248, 75,135,157, 18, 43,164,117,102,219,197, 26,242,203, +186,208,233, 68,106, 14, 33,222,207,167,103,255, 17,136,114,126, 63,123, 60, 65,134,102,124,144, 39, 28,123,100, 62,251, 68, 38, + 24,119,137,163,190,153,176,155,222, 93,122, 88, 62, 37,233, 73,147,186,148,223,236, 0, 61,245,111,178,103, 96,117, 34,236, 46, +237, 83, 43,141,171, 85,194, 8,195,191, 72, 65,212, 26, 38, 11, 40, 13, 65, 8,130,242,104, 5,153, 22, 40, 41,168,123,199,170, +235, 9,125,127,245, 59,100, 97, 80, 82, 16,132,167,183,158, 85, 55,208,212,195, 46,199,119,132,164, 67, 10,250, 80, 2, 53,159, +243,198,241, 77,174, 29,220, 34, 4,193,166,105,120,231,238, 71, 52,167,167,176,185,248,188, 25,207,215,153,150, 85, 6, 7,211, + 36,225, 16, 92,218,134,123, 23, 43, 62, 56, 61,133,135, 15, 95, 60,206, 48,207,224,141,215,162, 45,233,122,245,203,219, 43, 14, +233,196,140, 97, 61, 33, 57, 17,102, 69,146,156,249, 61,237,149,227,191,251, 47,254,132,119, 62,124,111,215,216,180,177,112, 49, +120, 92,159, 44, 7, 91, 27,121, 31, 46, 21,227,100,156,147,229,121,204, 71, 54,130, 76, 41,156, 78, 89,230, 54, 21, 89, 53,218, + 13,167, 61,146, 73,196, 51,157,254,159, 76,127,249, 62, 77,126,205,107,247, 89,181,193,248, 61,231,184,182,168,104, 5, 76, 76, +140,163, 60,206, 13, 75,107,227, 78,176,107,227,245,124,235, 40, 26,240, 76,139,120, 12, 46,151, 79,253,140,248, 51,163,139,220, +144,171,157, 2,101,185,218,189,143,162,136,205, 94, 8, 87,228, 30, 49, 41,193,170, 8, 57,146,248, 47, 89,148,120,253,201,173, +107,252,243, 59,175,160, 75,193, 71,103, 27, 68,103,175,210,206,100, 83,115,237,248,144,239, 46, 14,120,189,152,115, 88, 76, 16, + 1, 78,218, 53,223,234, 59,140,247,104, 85,161,164,192,100,101,162,127, 72,134,161,227,177,119, 60,112,150, 54, 43, 88, 9, 65, + 71, 70,149,229,188, 49,159,114,172, 50, 94, 46, 42, 50, 4, 51,101,216,120, 73, 39, 36, 65,105, 50,105,144,218,224,133, 36, 4, + 77,111,123,108,144,108,182, 91,234,118,205,102,125,194,186, 85,124,171,172, 88, 40,133,107, 45,125,235, 56,185,220,242,233,229, +138, 96, 7,242, 54, 34, 61, 70, 25,178, 50, 39, 43, 10,202,105,197, 60,203,120,249,232,136, 59,135,135,188, 94, 30, 50, 65, 71, + 23, 99,233, 34,179,190,208,228, 89,129, 20, 26, 39,100, 84,177,116, 45, 98,187, 65, 14, 30,153, 11,228,228,128,127,245,157,215, +248,193,237,235,220,185,126, 19, 47,167,124, 24,122,132, 19,132,126,136, 59,250, 23,213, 65,103, 89, 66,151, 92, 50,108,250,146, + 41,113,232,193, 91, 68,231,120,119, 59,240, 23,235,154,135,190,229,255,220,212,252,101,215,115,174, 2,165, 52,132,224, 24,146, +162,211, 73, 21, 27,170, 16, 16, 90, 33,148, 65,228, 19,254,233,173, 91,252,218,209, 33,191,115,243, 21,230,243,235, 40,147, 99, +116,142, 50, 69,140,100,208,154,219,243,155,220, 94,220,102,158, 31,227, 80,180,174,229,211, 7, 15, 80, 74, 82,149, 21, 85, 57, +193,249,129,213,114,137, 36, 80,119, 61,127,218, 90,126,171,170,240,125,203,177,214, 84, 18, 26,231, 88, 3,199,222,225,181,193, +121,207,204,246,148, 82,208, 58,199,165,181,252,187,117,203,161, 18, 60,236, 98, 99, 31, 7,198,231, 12, 25, 87,249,230,123,126, + 18,227, 80, 48, 88,238,157,108,248,201,233, 37,255,215,163, 53,127,181,220,178, 29,149, 38, 34,165, 20,250,116,188,125, 72,146, +216, 33, 30, 91, 59,252,146,156, 53,249, 52, 68,230,253,127, 68, 73,155,209, 41,236, 35,153,111, 8,157, 38,120,187,131, 18, 67, +122,248,150, 89, 44,224,154, 8, 99,106,177,131,227,123,187,219,245,137, 4,225,167,137, 22,145,164, 61,223, 4,138,151, 9,146, +181,169, 80,219, 61, 98,220,216, 44, 8,246, 72,116,126,247,189,225, 5, 79,140,153,192,225, 44,217, 9, 10,178, 66, 82, 40, 21, +221, 61,149, 98, 61,244, 49,123,119,220,215,148, 81,183, 62,146,209,155,193, 97,183, 93,156,156,218, 1,100, 96,126,227, 58, 85, + 85, 81, 78, 42,154,166, 7,161,248,157,239,255, 42, 55,103, 55, 16, 66,112,182, 60,225,238,233,103,124,116,242, 24,206,207, 99, + 68,226, 47,213,164,165, 5,104, 22,253,214,235,147, 11,186,135, 39,112,126, 18,139,196,139,126, 76,167,188,253,107,111,115,243, +250, 81, 36,220,125,217,195,229, 69, 63,198,224, 31,159,252,181, 81,177,171, 86, 50,133,148, 36,156,215, 57,222,249,249,207,226, +223,155, 4,129,181,195, 78,142,230,210, 57, 21,255, 15,117,111,250, 35, 89,118,158,249,253,206,118,151,184,177,229, 86,107,119, + 87, 55,155,139, 72,137,212, 72, 20,103,145, 53,163, 17,168, 17, 96, 12,198, 30,251,139, 96,192,128,255, 62,195,254,102,192, 48, + 96,120,145,101, 91, 50, 70,163,161, 68,114,212,100, 55,123,173, 45,179,114,137,140,237,110,103,241,135,115,110, 70, 84,117,117, +119,117,147, 90, 38,129, 98,118, 49,179,170, 34,111,220,123,222,247,125,222,103, 73, 57,239,131, 97,142,143, 7,162,243,129,188, + 84, 81,169, 64, 64, 34, 8,131, 12,205, 36, 41,142, 86, 59,181,135,227,198, 75, 61,222, 75,238,203, 35, 20,159,215,169,251,189, +142,253, 57,239, 6,137,205, 12,227, 60,167,150, 2,147, 25,106,239,169,189,135, 85, 19, 73,115, 58,135,215,111,241,159,223,123, +141,111,207,167,188,126, 80,241,193,147,179,151, 55, 29, 54, 68,231,185,144,200,135,117, 31, 61, 2, 32, 22,116, 17, 67, 87, 34, + 7, 69, 71, 54,126,150, 18,208,244,224,243, 31,184, 51, 27,241,135, 7, 71,220, 45, 39, 4, 2,127,190, 88, 35,156, 69,244,254, +166,176, 47,125,206,239,220, 57,228,173,234,144,214, 91, 50,101,248,184,219, 50,221, 44, 56,148, 6, 83, 29, 32,178, 28,101, 74, + 68,240,209, 78,217,119, 92,246, 13,103, 66,178, 82,138,214, 11,178,172, 98, 58, 82,188,150, 23,168,228, 10,168,165, 36,151, 26, +167, 97,235,193, 9,133, 87, 10, 45, 53, 90,105,106, 1, 94, 42,154, 54,186,168, 29,231,158,220,183,252,245,123,239, 32,123,201, +108,213, 83, 53,158,118,189,101,211,119, 60,219,110,120,180,188, 98,185, 92, 68, 67, 28,101, 80, 66, 33,130, 64, 26, 69, 86,104, +178,105, 78, 81, 21, 84, 85,197,109, 89,225, 59,203,162,107,176, 58, 68,208,111,100,120,179,200,120, 59, 51,188, 33, 21, 89, 80, + 92,213, 22,113,189, 68,108, 27,196, 72,240,181,233,156, 7, 7, 51, 46,130,224, 73,175,120, 71,149, 80, 8, 68,166, 96,211,165, + 52,196, 47, 48,125,113,142,144,212, 49,248,254, 51,155, 75,241,194,159, 1, 31,221, 2,107,203, 71,181,229, 73,211,112, 46, 4, +143, 58,203, 60, 83, 49,167, 34, 68,148,112,221, 89, 90, 60, 43,169, 17, 34, 48,201, 70,252,119, 39,199,252,225,241, 45, 30, 84, + 51,190, 61, 63, 98,146,151,244,121,201, 38, 56,182,157,197, 57,139, 20,154, 50, 43,169,202, 41,121,150,145,203, 2,219, 11,206, +182, 23,156, 93,175, 8,120,156,235,232,108,203,163,171, 83,158, 58,207, 47,218,142, 63, 30,197,179,123,105,123, 22, 82, 82, 32, + 24, 73, 65,219,174,209,102,196, 7,125,199, 93, 41, 49, 82,145,185,142, 71,157,101,217, 91, 78, 52, 92, 89,203,114,157,114, 71, +218,176, 67,200, 62, 85, 31,110,224, 91,158, 39, 24,201,157,217, 88,219, 69,201,230,114,117,131,162,208, 37,107,217, 54, 73, 95, +187, 62,170, 71,134, 44,138, 95,202,168, 70,126, 90, 66, 32,229,223, 97, 81,247,123,108, 93, 37,227,126,130,116,232,117,123,174, + 62, 34, 77, 2, 34,121,180, 43, 34,163, 87, 16,139,134, 25,166,113,187,139, 51, 20,122, 87,100,135, 98,255,121, 83,187,214,145, +217,219,239,193,160, 74, 39,195,155,129,204, 32,119, 6, 52,214,239, 14,207,225,226,245, 9,176, 10,175, 56,229,230, 25,156, 28, + 66,158, 49, 62,152, 80,100,209,226,181, 42, 36, 2,201,178,177,108, 59, 75,104,218,248, 58, 74,131, 84, 34,134,215,117, 30,215, +116,241,107,219,148,205,155, 73,238,223, 61,230, 7, 95,255, 22,223,121,253,215, 56, 25, 31,240,201,234, 18,114,195,247,223,248, +117, 38,147, 25, 62, 4,254,242,253,159,240,179,139,211, 24,207,185,185,248,252, 9,241, 85, 63,156,139,135,249,106, 27,243,203, +219,250,203,255,189,109,203,217,249,130,179, 15, 63,220,237,102, 7,200,118,248,245,101,110,120,157,228, 48, 74,198, 9, 89,155, +221,125,228, 19, 39,162, 31, 82,225,162,196, 45,178,197,251,136, 16,101, 41, 12, 64, 37,219,215, 60, 41, 30,100, 22,223,240,116, + 64, 75, 5,165, 81,104, 17, 15, 9,233, 61, 58,151,209, 38, 26,199, 55,239, 30,113, 84,141,152,150, 5,139,171,117, 82, 88,232, + 72,152, 51,121, 68, 84,148,142,247,244,171,170, 37, 62,239,135, 30,174,213, 96,154,180, 95,216,189,199, 33,233,139, 2,242,140, +145,148,156,117,201, 53, 41, 56, 88,110,160,204,248,157, 7,175,113, 50, 63,192, 5,131, 50, 57,239,182, 93,124, 79,110,226, 30, +253,110,106, 11, 50, 94,155,225, 89, 27,140,117,124, 34,120,109,154,100,222,148,197,180, 58,147,131,119,136, 33,186,182,183,172, +149,228, 86,161,200, 8,252, 79,231,151,156, 91,159,248, 42,137, 45,237, 61, 66,103,124,235,176,226,160,172, 88, 7,104, 9, 92, + 57,203,127,191,216,240, 70,179,226,100,122,128, 30, 31, 35,139, 34,174,158,172,199,167,230,202,183, 53, 31,116,158, 54,203, 49, + 90,241,141,106,138,240,129,220,104,132,210, 88, 23, 48, 66,210, 17,184, 10, 6, 39, 21,178, 28,225,149,194,235,156,177, 16,100, + 38, 39,235, 58,126, 99, 90,240, 71,119,238,114, 32, 51, 58,123,205,255,245, 31,126,196, 7,155, 71,228,219,154,159,126,244, 14, + 31, 62,253,128,179,235,103,116,155, 11, 22,155, 5, 15, 55, 11,100,221, 97,156, 38, 56,143,176, 30, 89,104,204, 40, 67, 25,137, +206,115,148, 84,204,124,193,233,118,197,185,107, 57, 35, 48,207, 51,178, 76,241, 96, 58,226,126, 53,226,190,209,124, 43,207, 17, +185,100,237,122,220,249,134,211,126, 69,219,195,147,181,227,223,183,158,165, 8,145, 22, 51,157, 68, 45,183,202,193, 54, 81, 7, +207,231,152,189,120,183,123,223, 94,216,197,139,207, 42,236,131, 9, 23, 62,173,161,122, 66, 99,161,235,121,132,100,166, 32, 51, + 57,155,174,197, 57, 71,211,119,180,193,225,133,230,247, 38, 5,223, 59, 56, 97,150, 77, 56,172, 42, 84,158,161, 76,198,227,198, +114,177,181, 44, 90,203,233,118,133,235, 91,116,102,208, 50,163,154,140,241,190, 71,208,211,217,154, 95, 60, 60,229,236,236, 25, + 31, 61, 61,229,131,197, 5,151,171, 53,171,229, 18,164,224,245,170,160,238,123,198, 74, 49, 15,129,109,223,114,142,224,237,108, +196,101,191,229, 45,101, 88,249, 14,233, 28,109, 8,156, 59,199,129,243, 60,241,150, 15,150,253,142,235, 37,211,202,243,101,220, + 34,207,206,171,100,127, 98,255,204, 68,183,221,253, 78,219, 69,184,125,155, 36,157,182,219, 17,223,126,169, 41,253,133, 55, 42, +229,151,252,221,154,207,228,217,142,173, 43,197,110,103,103,210,158,177,200,192, 53,113,202,178, 54, 30,132, 50,193,121,106,216, + 75, 36,150,175, 74,127, 70,101,187, 67, 71,238,177, 10, 5,159,157,252,117,251, 24,249,205,251,132,203,237,110,170,200,210, 82, + 91,234, 61, 50,130,223,251,123,194,243, 58,105,239,119, 94,245, 95,244,230,140,138,184, 71, 31,149,140,166, 57,183,198, 99, 10, +163, 56, 26, 85,180,214, 82, 91,199,214,118,216,117, 29,247, 44, 41, 61, 44,248,128,107,211,110,211,246,137,161, 9,148,134,124, + 62,226, 31,189,118,143,215,239,189,133,145,146, 50,203,145,162, 67, 88,203,237,249, 45, 76,150,113,189, 93,242,108,241,140,203, +139, 11,184,184,188, 49,254,248,149, 52,104,131, 68,234,151,185, 49,235,122,183, 95, 54,217, 78,226,168, 72, 83,246,151,137,109, + 76,255, 35,242,157, 68,207,249, 8, 43,223,164,240,165,215, 91,148, 17,110,119,110, 71,208,188, 33,178,164,245, 80,144,100,153, + 33,215, 2,231, 2,153,145, 76, 75,131,150,144, 41, 25,169, 28, 46,114, 48,148, 84,104,163, 56,153,142, 24,229, 89,218,218, 4, +174,101,148, 32,222,232,141, 85,178,132,117, 3, 89,174,255,229,154, 44,253, 66, 28,227,205,126, 95,238, 8,133, 2, 92,150,211, + 21,134,149,216, 35, 68,182, 29,172, 59,232,106, 54,243, 41, 15,230, 7,244, 66,243,176,119,156, 94, 95,198,162,126,147, 54,184, +135,124,245, 54, 50,179,197, 96, 24,149, 44,102,125,186, 71,125,159,136,148,101,210,181,167,233, 71,233, 88,216,131,135,198,243, + 55,215, 43,254,116,181,225,188,141,230, 83, 34,211,145, 4, 38, 13,194, 11,132,107,232, 71, 5,179, 92,227,133,230,202,117, 60, + 10,150,139,160,248, 81,179,229,119, 21,148,147, 99,100,102, 16, 38,139, 33,122, 33,160,144, 76, 37, 84,219, 21, 63,110,122,114, +163, 56,214,138,121, 89,161,144,212, 93,135,134,104,182,162, 12,143, 28, 8, 83, 80,100, 5, 90,103, 84, 74, 50, 46,114, 68,239, +184,115, 56,229,247, 78, 38, 28,228, 25,101,166,249, 96,113,205,105,219,115,118,126,205, 95,124,244, 33, 63,189,124,198,207,207, + 46,249,248,234,138,179,229,138,203,118,203,217,234,138,109,232,184,232, 91, 46,154,104,246, 82,216, 64, 38, 21,102, 84,196, 61, +179, 3,183,233,232,154,150, 95,176,101, 33, 12, 22,201, 73,149, 83, 32,153, 20, 5,135,227, 18, 93, 26, 78,170,146,215, 76,206, +215, 53,136,179, 75,254,253,147, 15,249,171,237,138,235,205, 21, 2, 11,121, 92, 77, 48,169, 96, 62, 65,204,198,160, 50, 68,219, + 70, 15,246,207,146,142,125, 17,199,249, 37,223, 27,246,206,189,208,118,177, 72,217, 30, 54, 61, 79,172,103,172, 37,109,239,233, +131,163,238,123, 86,125,207, 33,142, 63, 56, 60,230,181,241,148,204,148,140,198, 37, 58,203,112, 82, 32,180,228,195, 77,207,143, +218, 53, 87,118,203,117,191,229,114,187, 38, 19,208,118, 91,156,237,104,251,142, 39,139, 39, 92,219, 14,154, 14, 33,210,106,162, +239, 99,242,157,209,124,212, 90,164, 12,220,149,130,165,235,201,181,225,208,182, 44,133, 98, 34, 21,215, 62,122,250,139,224,185, +114,142, 59,222,243, 39,215, 45, 7, 26,122, 47,169,109,226,100,249,180, 86,250,172,116,185, 97, 72,183,126,247,249,239,235, 99, + 88, 27, 14, 2,162,193,217,206,249,191,227,162, 62, 24,104,244,253,206,175,122,112,146, 51, 58,118, 51,131, 77,222,126,183, 36, +136, 95,211, 42, 65,248, 41,188,162,200,246, 44, 51,253,243, 82, 1, 62,163,168,251,152,228, 21,156,140,118,140,222,199,191,167, + 31, 86,254,233,224, 17,201,128,134, 61, 4, 96,136,105,117,169,200,191,202, 46,218, 20,145, 64, 85,149,200,137,225, 86, 85, 81, + 24,195, 56,203,144, 82,243,172,107, 88,118, 45,182,238, 99,195,162,146, 65, 65, 19,237, 94,177,125,212, 9, 7, 17,247,186,121, + 70, 62, 29,241,181,163,138,113, 14, 19, 51,195,152,156,109,215,240,244,226, 49,189,107, 88,219,154,166,107,120,178, 56,229,221, +199,143,225,226, 26, 86,215,188,154, 43,207,223,195,135,201,226,197, 31, 92,252,130,216, 67, 79,120,181,215, 61,220, 55,194,239, +252,152,179, 61, 61,119,232,119,169, 78,141,221,165,244, 14,193, 65, 38,221, 75, 74,147,103,134,224, 97,148, 9,148, 86,204, 74, + 69, 33, 5,133, 18,228, 82, 96,132, 68,163, 32,147,204,180, 74, 64,128, 96,219, 59,102,163, 2, 45, 53, 14,207,249,182,222,147, + 72, 14,205,159, 76,209,173,110, 87,244,190, 74, 97,191, 33,200, 13,230, 20, 47, 64,131, 3, 67,222, 19,195, 93, 70, 21,179, 92, +115,146, 25,142,140,100,172, 36,203,166,131,166,161, 21,138,119,140,230, 61,107, 57,181,233,217,124,124,158,164,129,233,240, 24, + 60,235,125,202,146,158,150,252,240,100,204,239,223,154,114,160, 37, 31,158, 47,146, 45,175,142,200,196,180, 74,242,181,180,186, +112,209,180, 67,164,160, 24,172, 71, 92, 47,111,210, 15,133,137, 49,203, 98, 92, 32,166, 99,126,231,193, 9,183, 71, 25,139,174, +231,137,116, 44,165,226, 39,189, 64, 74,141,210,134,255,251,163,143,249, 23,147, 17,249,193, 45,164,142, 18, 42, 57,174, 40,231, + 39,204,103,119, 56,174,123,178,245, 21, 63,115,150,131,204, 48, 86, 10,107, 91, 14,242, 2,107,123,122, 2, 63,175, 29, 62,139, +241,197,149,210, 76,181,230,246,184,160, 80,146,249,108,132,237, 61,211, 92,226, 67,224, 97,221,242,151, 23, 43, 30,175,175, 9, + 77,135, 23, 14, 47, 20, 30, 23, 21, 41,189, 99,213, 56, 86,235,150, 79,186,154, 62,212,124,236,106, 46,186,134,106,219, 50,237, + 37, 70,154,184, 98, 93,118,116,117, 67,107,107, 62,234,106,158,224,185, 16,146, 34, 8,166,153, 70, 74,137,202,115, 84,102,248, +218,236,128,223, 60,152,241,253,105,206,183, 11,205,237,109,224,240,226, 2,125,254,140,139,118,133, 16, 81, 94, 41, 66,218, 93, +171, 12,113,114,136,152,143,227,127,183,105,165,241, 18, 25,220, 23, 21,249, 87,106, 2, 6, 19,166, 85,195,169,243,180, 93, 79, + 16,129,117, 31,232,149, 64, 11,201,137, 54,124,109,122,200,253,249,156, 70, 40,116,174,104, 5,252,108,181,225,199,219,134,143, +124, 75,103,107,106,215,177,236, 90, 62, 90, 94,162,108, 71,223, 53, 92,110, 22,156,119, 75,182, 77,207, 15, 15, 11,254,245,173, + 25,111,143, 11,190, 89,230,252,141, 16, 8,169,112, 82,178,232, 35,154,154, 57,203,182,239, 88, 56, 88,244, 45,207,108,207,200, +246,156,123,207, 68, 4, 14, 2,252,162,105,185, 43, 61,255,174,129,237,118,203,161,128,186,237, 56,174, 12,219,198,239,101,125, +188,112,142,251,189, 28,145, 47,115,148,234, 87,248,126,163,227, 89, 52,248, 94,188,146, 65, 77,122,222,111, 38,245, 0,216,175, + 80,212,245, 47, 89, 27, 76,138,191,188,129, 29,251, 29, 12,127,227, 54, 23, 82,241,214, 59,118,122,110,146, 78,120,200,149, 78, + 50,180,129,128,244, 98, 17,255, 60,121,150,115,209, 65,104,112,230, 18,121,148,170,237,155,202,144,246,134, 93,251, 60,153,236, +203, 16,203, 70, 5, 84, 21, 84, 57, 24,137,201, 53, 85,158, 51, 54, 25, 66, 11,214,117,203, 85,211, 97,155, 54,178, 41,195,208, +121,185, 8, 1,119,137,205,158,155, 36,195,202, 65, 73,116,166,152,100,134, 60,211, 52,205,150,197,114,193, 71,103, 79,176,174, + 67, 8,184, 88,109,248,217,147, 71,156, 63, 57,133,203, 37,244,219, 29,145,236, 31, 82, 33, 47,146, 13,170,200, 98,177,205, 20, +200, 50,193,182, 73,219,248,101, 94,247,224,131,174,138,228, 95,160,118, 17,141,131,156,100, 40,242, 38, 21,212, 97, 15, 63, 50, +241,251,149, 64, 43,193,212, 8, 42,149, 33, 9,204,198, 25, 66,122, 74, 21,139, 91,145,201,184, 30, 39,185,134, 9,129, 73,178, +178, 69,219,210, 58,203,229,166,193, 5,145,146,221, 82,113,221,151,181, 25, 21,119,218,125, 98,206,251, 47,121, 74, 12, 67,250, + 16, 8,179, 31, 60, 47,146, 63, 4, 18, 38, 5,234, 96,134,204,115,238, 20,154, 91,198, 80, 74, 73, 22, 60,183,115,193,217,114, + 19, 97,248,241, 56,105,252,137,197, 60,132,104, 75,122,243,204,236,189, 70, 17,120,112,116,192, 15,142,167,204,202, 9,179, 66, +243, 23,103, 87, 73,254,169, 96, 52,142,133,125,248,126,151,184, 24, 38,143,217,226,164,233,189,109,210,212, 21, 37, 62, 98,154, + 67, 85,240, 71,119,142,248, 23,119,238,113,187, 40,120, 88,111,249,179,101,207, 83,149, 35, 70,211,104,189,106, 50,164,239,248, + 53, 60,135, 71,183, 35,187,186,202, 81,111,156,160,102, 19,244,108, 74,222, 86, 28,109, 55,124,188,120,204, 89,176,204,148, 2, +161,216,134, 8, 13, 95,245, 13, 31,136,140, 99,147,113,104,114,110, 27,197,173,169, 97,172, 21,147,145, 36,235, 99,227,116,186, +234,184,240,150,159,159,173,184,176, 61,171,224,113,117,139, 95,172,241, 70,224, 90,139,115, 30,111, 50,156,119, 56, 99,160,233, +121,124,118, 69,239, 44, 43,191,229,188, 89,112,220, 88,166,174, 32,116, 61,206,123,174,175,174,249, 15,235, 83,126,102,151,188, +211,247,108, 69,160, 35,250,140, 87,153,162, 9,146, 81,158,241, 86, 53,231,107,211, 3,166, 38,103, 20,122,198,202, 35,145, 28, + 1,191,209,116, 60,126,244, 9,117,223, 32, 66,159, 72,105, 50,106,193,205, 8, 49,159, 34,111, 31, 32,110,159, 32,242, 2,177, +181, 81, 93,241,183, 49, 53,186, 14,177,217,208,110, 91, 86, 1,186,190,231,245,195, 3,102,229,132, 34,203,152, 8,137, 81, 5, +211, 44, 99, 35, 5, 15, 59,199, 47, 22, 91,254,207,237, 50, 78,200, 46,113,165, 68, 68, 1, 47,186, 45,143,234,107, 22,237,150, +117,211,243, 95, 77,114,254,205,241, 9, 83,173,249,222,108,134, 54,130,183, 10,205,143, 18,114,107,149,228, 72, 8, 86, 62,240, +115, 39,200, 51,248,155, 62,240,166,129,255,181,238,248,154,150, 60,222, 52,212, 34,208, 4,207,143,106,201,131,208,114, 97,161, +181, 29, 65, 72,182,109, 66,129, 91,183, 83, 63, 13, 31,135, 71, 95, 29,233, 52,137, 99,163, 85, 60,203, 67,170,131, 82,237,210, + 42, 7, 39,166, 48,196, 72,191, 66, 97,247,251,187,126,110, 24,246, 95,190,168,255,178,117, 65,136,120, 99,221, 68,170,166, 44, +219,174,223, 65,134,131, 25,205, 0,209,107, 21, 29,187,240, 48,158,196, 31, 90,165, 20, 53, 45, 94, 14,151,124, 17, 27,125,112, +230,146, 69,220,175,155, 12,138, 73, 98, 60,219,228,231,237,191,154,169,205,208,217,141, 39, 41,119, 59, 67,149, 57, 85,110,152, +103, 10, 39, 5,181,237,184,236, 61,155, 62,237,208,131, 72, 38, 61, 97, 47, 32, 36, 57, 16, 9,181, 75,169,147, 18,101, 36,117, + 90,161, 62,221,108,121,178, 88,211,134,142,141,119,180,189,227,162,174,227,106, 97,211, 0, 77,252,153,134, 80, 16,249, 15,164, +160, 35,163, 5,169,201,147,189, 97, 30,155,171, 76, 39, 50, 86, 10,180, 20, 98, 87, 8, 63,107, 98, 29, 86, 32, 67, 81, 23, 9, +105,177,195, 74, 38, 69,166,234,108, 71,200, 28,248, 17,163,226, 70,179,158, 87, 37,149, 80, 24, 33,152,101,134, 34, 23,140,141, + 70, 4, 73, 38, 21,222,123,170, 60, 26,217,152, 92, 33,131, 32,168,168, 92,240, 1,148, 81,100, 82,210, 7,232,156,199, 6, 65, +112, 97,183, 30, 24, 26, 77, 23,146, 46,214,196,123,173,183, 95,146, 67,176,231, 13, 45,249,244,158, 79,229,241,192, 40, 21, 84, + 35, 66, 89,112, 52,173,184,103, 12,218, 24, 60, 1,237, 61,222,247,156,158,111, 19, 19,215,193,209, 60,217,146,230,113,237,181, +237, 35, 95, 98,136,118, 29, 8,168,189,165, 25, 85,188,117, 52,161,247,158, 31,181, 29, 79,174,234,221,154, 72,164,103, 75,101, +187, 21,131,210,201,140, 39,174, 70, 68,155, 52,191,195,164,215,244,241, 62, 40, 11,254,229,193, 1, 95, 31, 31,161,148,226,147, +190,230, 35, 15, 98, 84, 33, 85,129, 52, 5, 82,231,104, 37,184,190,124,204,119,231,119,200,231, 7,136, 89,137,190, 51, 71,142, + 11,164, 86,132,141, 32,172,107, 22, 31,125,192,143, 62,126,138,159,103, 92,180,107, 78,219, 26, 73,224,189,117, 77,208,134, 7, +197,152,183, 75,197,241,184, 34, 83,146,185,150,204, 51, 77, 37, 2, 66, 41, 58, 33,184,218, 88,150, 77, 67,221,173, 89, 35,176, + 56,124,223,227, 67,192,245, 29,190,119,120,215,227, 16,184,186,165, 55, 10,223,122, 54,182,101, 81, 59,234,122,205,249,226,140, +187,190,227,250,252, 25,205,114,197,159, 62,121,135, 15,234,107, 62, 14, 61,143, 76,143, 76, 50, 0, 0, 32, 0, 73, 68, 65, 84, +155,134,218, 90, 26, 4,235,222, 82,251,104,146,243,160,154,241,102, 62,138,118,210, 58,167, 40,199,180,161,167,243, 30,107, 61, + 51,169,249, 78, 94,240,181,166,229,241,197, 21,205,197, 85,108, 54,181, 70, 74,133,204, 52,223, 63,126,141, 63,254,250,183,248, + 71,247, 95,227,221, 82,209,173, 27, 68,223,125,234, 94,251, 34, 72,254,149,190, 94,100,241, 44,213,130,108, 50,225,222,120, 28, + 9,113, 65,176,240,158,167, 93,207, 19, 39,121,212, 58, 30,182, 13, 63, 95,111,216,180, 53, 77,183, 33,224, 9, 46,229, 37,144, + 16, 74,162,197,237, 55,164,226, 15,230, 21,153, 80,220, 46, 74,206,173,101,154,130,160,206,123,203,185,117,144, 41,206,146, 10, +226, 66,106, 62,233, 44,111, 75,201,169,131, 55, 71,154,247, 26,207, 86, 41, 36,142,191,108, 60, 95, 83, 45, 63,179, 34, 26,130, +230,121,170, 41, 68, 18,242,128,122,237,243, 93,190, 74, 65,215, 58, 13, 13, 41,113,116,144, 65,103, 50, 62,251, 62, 37, 88, 34, +158, 71,218,204, 32,151,118,175, 86,143, 95, 24, 52,255,238, 3, 93,188,223, 73,194, 66,216, 77,234, 69,182,139,230, 28, 76,105, +186,126, 7,139,226, 33, 43,200,191,251, 13,220,227,179, 68, 98,210,187,139,255,156,243,194, 75,226, 86,243,189,110,201,185,248, +251,162,132,147, 91,112, 56,143,147,138, 52,137, 16, 84,199,107,220,181, 95,173,152,155, 34, 18, 87,164,128, 89,201,120, 82, 50, + 47,115,166, 69, 78,227, 29,181,181, 44, 26, 71,240, 30,231, 3,247, 38,115,142,171, 41, 85,145,177, 90,109, 19,180, 63, 24,155, +168,184,227,237,125,188, 30,171, 45,110, 83,211, 93, 92,113,121, 85,179,172, 61,155,214,179,234, 45,155,174, 99,179,168, 9,139, + 77,116, 87,179,118,183,251, 25,200, 98, 90,126,154, 36,248,119,249,161,117, 44,224,183, 15, 98,225, 24,101, 73, 9,145,197,188, +100,146, 85,176, 78, 69, 68,137, 88,171,246, 39,140,125, 66,221, 13,209, 81,238, 32, 26, 37, 35, 3, 94,201,231,227, 94,109, 31, +239, 23,165, 35, 68, 63, 41, 35, 41,210,196,251, 34, 87, 80, 8,193, 72, 11, 10,169, 16, 72,164, 1, 35, 4, 82, 6, 74,173,105, +123,135,201, 52,190,115,168, 36, 81,243, 82,160, 84, 76,224,242, 82,210,135,128,208, 18,239, 60, 78, 14,106,143,164,224,112,169, + 73, 29,148, 27, 54,145,249,190,140,114,128,189, 7, 89,238,187, 77,165, 48, 22,173, 82,228,105,234,250,143,102, 88,109,184, 85, + 86,108,108, 71,166, 50,218,174,197,245, 13,207,158, 94,237,200,130,243, 49, 76,102, 72,109, 56, 24, 31,224, 71, 18,247,228, 42, + 77, 79,207,203, 54, 93,231,248,169,210,252, 24,120,124,189,141, 77,196,166,143,239,211,176,179, 15, 41,123, 26, 25, 93,247, 6, +189,110,235,161,173,119,240,174,247, 17,146,239, 44, 34,207,121,163,148,100, 66,240,193,230,154,127,119, 93,179,238,124,116,198, +203, 43,100, 94, 48,214, 6,213, 91,214,222, 17, 78, 63,230,141,163,123,232,170, 66, 77, 11,132,212,208, 4,252,217,138,190,217, + 34, 89,179, 89, 44,120,239,195,143, 56,111,225,162,233,249,100,187,165,147, 25,111,143, 38,124,163,200, 56, 40, 10,102,153,225, + 65,153, 49, 85,146, 3,173, 8, 33, 48, 22, 30, 39, 52, 70, 40, 54,155,150, 92,105, 78,235, 45,214,117,120, 3,110,211, 19,121, +247, 30,103, 61,126, 84, 68, 42,199,182,193,141,115,124,221, 99,183, 13, 75, 47,120,239,252,154,255,120,125,198, 95, 60,123,204, +255,242,232, 93,254,183,203, 51,174, 22, 75,254,250,252,154, 46, 4, 92,112,244,125,139,196,177,114, 61,214, 11,110, 21, 5, 35, +165, 56, 25, 79,145, 70,179,105,182, 92,120,199, 51,223,163, 20, 76,180,164, 84, 49,221,241,205,210,128,183,156, 61,185, 70,174, +174,145,190, 71,230, 21,255,197,235,175,115, 56, 42, 25,141, 43,100,200,249, 96, 44,226,250,164,233, 62,117, 6,136, 47, 59,159, +189, 4,133, 21, 89, 9, 65,114,124, 50,227,164,154,224,124,207,117,189,197,121,207, 82,104, 86, 93, 71,237, 61,109,211,145, 11, + 71,238, 59,166,206,146,117, 13,206, 57,122,219,198, 60,247,172,140,110,185,121,201,127, 61, 53,204,165,225, 56,207,232, 8,104, + 25,115, 50,158,245, 61,189,128,119,135,245,168, 84,172,165, 97,162, 5,121,150,243,137,139,170,162,159,119,158,219, 2, 30,201, +168,205,191,165, 4,239, 53, 46,122, 59, 25, 21,125, 27,180,138, 3,147, 50,177,148, 88,251,197,210,211, 87, 65, 14,227,133,217, +173, 6,229,128, 6,171,136, 14,187,132, 54, 27,177,243, 72, 81,233, 28,251,138, 36,218,191,191,148,182, 1,106,239, 83,164,164, +139,123, 54,114,179,211,182,231,217, 46,208,165,143,135,131, 59, 77,134, 23, 82,239, 18,169,134, 3,231,166, 99,121, 9,228,175, +211,244, 34, 83,145, 68,192,252, 0,198, 99,242, 60,131, 32, 41,171,130, 94,153, 40, 73,112,221,151,152,156, 82, 71,150,207, 98, +193, 44,243,248,127, 87, 57, 89, 89,112, 56, 42, 40,140,198,135,192,178,181,180,206,211,133, 64,219, 57, 78, 70, 83,190,117,235, + 77,198,229,152,178, 24,241,116,121, 29,117,234,150,157, 67, 92,211, 69, 45,119,183,138,145,140, 77,157, 92,141,250,104, 84,177, +220,192, 98, 5,139, 13,212,203,248,117,231,184, 73,244, 81, 58, 78,109,194,192,237,187, 80, 86, 80,142, 99,196,230,175, 66, 86, +245,170, 31,163, 34,134, 52,140,203, 84,216,228,141, 47,178, 44, 13, 50,203,152,140, 39,160, 13,213,164,138, 6, 55,101,138,255, +196,237, 30, 48,249, 5,112,131, 74,130, 89,225,192, 75,254,248,191,253,111,248,233, 95,255,100, 87,228, 85, 98,164,155,161, 57, +136, 80,186,144,130,145,210,140,165,196, 2,213, 72, 35, 67,192, 40, 73, 46, 37,109,112, 20,128,179, 30,105, 20,193,122,186,212, + 76,104, 1,157, 23,216, 4,173,123, 27,112, 33,224,186, 62,113, 61,220,206,218,120,240,211,239,146, 20,198,219, 87,116,243,251, +140,189,154,220,235,216,139,193,239, 94, 70, 43, 88,109, 96, 86,226,178, 28,111, 59, 70, 89, 22,109,228,251,158, 95, 60, 93,224, + 86,235,157, 29,229,108,194,241,209, 29,126, 48,154,241,102, 89,113, 71,103,124,216,111,163,167,255,139,230, 74,125, 7,171, 13, +193,228, 73,127,158,216,239,109, 23,167, 29,155,242,159, 93,106,146,131,220, 73, 69,229,243,105, 94, 55, 76,237,182,133,205,154, +159,173, 59, 30, 55,107,254,244,244,154,205, 98,139,204, 4, 50,207,145, 66,115,171,156,113,172, 51,126,247,238,156,223, 58,156, +227,141,160, 91, 47, 57, 25, 31,147, 85, 5,210, 9, 88,182,184,103,107, 92,187, 65, 72, 40,180,229,231, 79,158, 33, 55,107,212, +122,131,106, 98, 80,201,239,142, 21,247, 70,209, 36,102,174, 21, 69,145, 49,213, 26,129,224,200, 7, 42, 41, 57,145,129,179,214, + 33,133,100,107, 45, 65, 42,150,193, 18,250, 30, 95, 42,124,231,241, 62,224,165,192,119, 93,220, 52, 8, 25,101,207, 4, 92, 89, + 96, 23,107, 92,153,243,172,117, 60,106,214,156,250,140,237,234,154,179,174,198,173,174,113, 87, 43,220,178, 38, 56, 75,179,173, +209, 66,240,168,107,120,175,109, 56, 24, 79,144,214, 83, 24,205,199,125,195,135,125,205,181,181,228, 4,250, 16, 24,105, 77,165, + 53,185,145, 28, 20, 57,127,185,234, 41,230, 37, 97,185, 66,110,214, 28,102,142, 91,163, 9, 79,219,150,255,125,181,162,245,125, + 60, 87,134,128,158,174,127,174, 89,251,114,133,125,224,163, 68,126,148, 72, 86,204, 98, 60,227,245,147,219,168, 76, 81,183,129, +214,117,252,226,236,146,186,171, 25,101,134, 82, 43,170, 82, 96,132,103, 28, 60,198, 91,180,237,113,157, 37, 3, 70, 82,242,235, +211, 59,124, 99,118,135,163,124,194,194,215,124, 87, 41, 14,146,143, 64,103,123,164,210,156, 89,203, 7,125,195,199, 54,173,218, +146,107,100,155,146,213,144,154, 45,128, 52, 92, 74,193, 88,101, 72, 15, 39, 25, 28,101,146,105, 16,212, 33,208,137, 52,236,104, + 25, 99,138,139, 60,146, 65, 67, 26,170, 36, 95, 94, 38,173, 19,183, 68, 38,164,209,166,104,111,153,226,142,109,155,134, 72, 31, + 11,122,159,140,207, 20, 73,250,249,213, 77,105,254,254,138,186,247,169, 59, 74,236, 40,155, 32,187,166,221, 65,227, 42,105,121, +187, 62,254,190, 27,152,234, 38, 14,248, 34,153,208,124,145,231,186,202,162, 43,157, 76,176,189,148, 49,174,179, 26, 51,158, 76, + 80, 66, 68, 98,187,144,244, 93, 36,210,209,109,119,100,190,207,205, 70, 47,160,156,192,228, 16, 38, 35,168,178, 24,242, 82, 40, +212,164,100,154, 23,148,153,198, 0,173,243,108,172,101,211, 58,130, 7, 45, 36,111,222,186,205, 65,121, 64, 16,158, 76,148, 20, + 35,195,249,249, 51,168,109, 12,221, 88,175,162,165,103,179,217,101,146,223,236, 42,135,156,242, 46, 53, 69,221,243,185,229,153, +132,241, 60,238,244, 71, 51,152, 78,201,167, 19,142,143,167,168,170,164, 93,182,159,110, 94,190,200,159,252,151,153,208,243, 60, +198, 18, 86,201, 85,172,139,193, 21,163,162,226,193,244,136,131, 98, 68, 97, 50,238, 29,206, 41,116, 70,166,224,168,170,152, 29, +207,184,214, 89,114, 32, 84,187,125,151,144, 59,171,219,155,128,151,189, 53,143,136, 69,239,205, 95,123,139,119,127,250,110, 44, + 76, 25,187,251,174, 40,192, 8, 84,145,131,243,100, 70, 83, 9,129,201, 36,163, 76, 98, 59, 79,153, 75,114,169,176,193,199, 6, +218, 7, 58,231,110,248,152, 58,196, 52, 55,155,130,225,250,129, 6,160, 32,184, 64, 47, 6,131,138,189,247, 76, 16,165,137,131, +223,130, 79,141,237, 87,153, 10, 60, 59, 25,219,240,222,137,236, 38, 90, 1,147, 39,121, 30,108, 36, 60,107,123, 78,157,231,252, +122,141,187, 88, 66,187,217, 53, 4,243, 3,222,158, 79, 57,153, 28, 19,164, 32, 40,197, 51,187,166,123,250, 44,193,146,124,122, +197, 37,116, 52,173, 25,220,227,116,242,194,247,105,213, 35, 18,169,212,165,226,225,236,115,235, 50,241, 34, 89,167,183,136,186, +101,177,216, 32,234,109, 36,122,213, 29,178,208,136,106,202, 27,213,152,183,198, 83,190,121,123,206, 72,102, 8, 41,121,120,241, +148,215, 68,193,116,126,136, 12, 2,225,136,102, 54,189, 5, 28, 69,158, 49,234, 26, 30, 45,151, 40, 28,186,239, 57,108, 91,126, +111, 54,166,202, 75,230, 89,206,184, 26, 83, 6, 65,102, 84,140,155,144,146,204, 57, 60, 48,149, 1,145, 41, 58, 47,185,180,142, +165,235,241, 93,139,215, 2,159,231,209, 87,100, 93,227,235, 26, 47, 13,222,123,188,137, 17,170,118, 91,227,133,192,106,133,173, + 59,156,151,216,102,131,203, 74, 44,209,130,216,105,133,183, 53,190,238,240,109, 67,179,218, 16,172,165,182, 29, 63,106, 59, 90, +229,120,191, 89,241,212, 57, 62,105, 86, 52,109,139, 12,158,194,121, 2,129,128,100, 36, 53,179, 81,198,215,143,198, 28,205, 70, +152,217,152, 67, 35,248,232,233, 37,255,199,135, 31,240,227,235, 11, 58, 2,116, 53,132,144,124, 21, 52,204,166, 80,141,119, 65, + 50, 47,201, 68,255, 92,201,137, 76,220, 23, 33,163, 11, 93, 62, 97,246,250, 61, 42,157,209,117, 22, 31,224,253,211, 75,220,217, + 37, 27,107,153,151, 57,153, 9,228, 65,160, 68,160,179, 13,153, 48, 4, 39, 48, 2,164,109,185, 87, 30,112,247,228,132, 91, 71, + 71, 84,227, 10,143,228,190,173,201,131,231,150,206,241, 34,176,177,158,143,186,134, 63,105, 58, 26,203,142,151, 53, 88, 54, 75, +147,200, 28,233,107, 42, 99, 46,224,150, 81,108,133,100, 46, 37, 70, 57, 30, 59,143, 67,236, 56, 56, 58,249,149, 20, 89, 58,175, +198,241,243,112,222,192,171, 69,122, 15, 89, 38, 74,239, 88,242,122, 40,232,253,206, 77,110, 56,182, 68,114, 86,181,110,119,142, +253, 39, 87,212, 53,187, 60,117,233, 19,204,206,206,119, 93,138, 88,172,141,222,189, 89, 67,122, 91, 63,236, 72,147, 25,205, 23, +253,240,153, 78,157,156,220, 29,248, 33,218,209,118,218,160,165,140,171, 87,136, 69,253,242,108,119,161,141,138,175,161,156,197, +155, 63,159,196, 55,218,140, 34, 9,206,148, 49,140, 32, 31,204,111, 64, 86,154, 44,207,152,100, 25,179, 34, 71, 32,105,130,103, +213,218,104,239,234, 2,153, 82, 76,243,146, 91,147, 3, 74, 93, 96, 84,116, 85,250,217,211,199,180, 23,151,208, 92, 67,179,141, +230, 5,254, 43, 66, 64, 1, 56,152,243,221,111,189,193,111,127,243, 91, 60,184,119,151,163,241,156,197,122, 65,231, 61,221,182, + 1,215, 62, 63, 37, 14,159,141,254,236, 98,175,247,138,200,103,237,130,181,222, 53, 69, 38, 93,255,188,138, 83,170, 33,101,163, + 11,212,184,226,193,236,144,147,195, 35, 10, 97,200,139,140,145, 46,153,143, 43, 74,149,227,129,163,209,156,105, 89,114,149, 27, +130,209, 96,101,124,221, 58, 49,201,213,222,231,129,212, 53, 32, 60, 78,239, 10,122,178,130,141,146,172,212,157,103,134,224, 3, + 89,110,200, 4, 28,154,248, 62, 26,169, 41,115, 77, 38,226, 4,160,124,156,174, 91, 27,144, 74,226, 3,132, 16, 15,132, 46, 4, +180, 16,120, 47,216, 88, 31,141,130,172,195, 1, 97,184, 63,247, 47,145, 75,123,116, 33, 98,177,147, 42, 58,175,233, 60, 37, 21, +166,107,215,191, 42,243,255, 5, 39,185, 60,189, 39,131,138,163,172,226,212, 62, 16,113,154, 46, 69,233, 94,220,184,228,197,247, + 44,163, 60, 60, 38,207, 53, 66, 42,158,244, 29,143,186, 6, 22,203,157,201,204,167,254,109, 27,159,221,241, 40, 30, 88,101, 14, +163, 81,252, 25,235,102,215, 96,246,126,231,233,176,127,191,140,138, 88,124,115, 29,179,198,141,134,174, 67, 24,137,176, 18, 97, +123,164,237, 17, 69,198,236,232,132,111, 87,115,238, 28, 78,184, 59,174,200,181,102, 99, 37,239, 94,110, 24,117,107,238,201, 25, +249,180,138,242, 56,173, 17, 70, 35, 45, 4,223,161, 74,205, 97,145,115,213, 58,148, 30,241,186, 86, 28, 43,205,131, 81,206,116, +116,128,113,129, 96, 52,153,137,232,140, 86,138,208, 90, 84, 8,100, 2,150,109,207, 88,195,242,242, 26, 45, 37,215,118, 75,176, +129, 96, 12,161, 80,241,179, 86,132,229, 18,143,199, 11,112,157,197,139, 46,154,219,180, 53, 14,137,203, 13,206,111,177, 50,224, +235, 30,103, 52,174,183,120,173,163,241,181,237, 9, 93, 11,155, 13, 97,209,224,183, 91,222,239, 90,222,111, 90,182, 77, 77,211, + 55, 92,217,158,171,174, 67,116,142,210,193, 72, 65, 31, 36, 69,145, 51, 27, 85,156,100, 5,255,180, 40,249,225,120,202, 31, 77, + 43,190,101, 36,127,246,209, 83,248,248,147,120,166,218, 46, 58,115, 42, 73, 80, 10,202,156, 80,230,145, 3, 84, 85,241,136,252, +162, 65,201,177,139,243,101,224,189,196,226,222,143,199, 28,142, 70,212,190, 67, 11,197,229, 98, 65,184, 62,135, 62,112,182,221, +114,221,213, 28, 87, 5, 66, 11, 90,103,209,197,148, 50,159, 80, 22, 99,186,190,166, 26,229,220, 57,188, 75, 86, 20, 84,121, 78, + 91, 55,124,240,236, 35, 10,231,184,182, 29,231,193,241,179,122,205,255,120,121,205,181,101,135,116,145,194,189,134,194, 41,101, +180,218,245,150, 99,173, 25, 57, 79,174, 4,218, 57,158,246,158,177,210, 44, 8,116, 66, 38, 84, 56,173,174, 84,250,149,153,136, + 28,139,200, 77, 33, 75, 60,145,160, 62, 63,101,109,224,159, 8, 19,139,118,174,118,158, 39,221,158, 91,105, 72,197,223,250,248, +189, 67,227, 43,253,243,222, 40,255,233, 76,234,123,135,145, 74,123,243, 65, 78, 35,213,142, 44,231, 67, 34, 0, 37,150,160,243, +113, 15,111, 63,195, 23,251,165,203, 31,153, 46, 96, 58,216, 91,191,235, 46,149, 68, 72, 77,231, 2,157,245, 49,144,196,182, 32, + 29,144, 69,189,109,150,222,208, 81,154,122,134,130,231,146,207,183,147,113, 58, 23,160, 42,205, 97, 81, 50, 45, 53,243,124,132, + 18,146,166, 79,146,151,174, 37,184,192,184, 42, 57,172, 70,220, 26, 79,177,194,209,122,207,162, 93,178,236, 58, 30,126,242, 9, + 92, 60,221, 33, 22,191, 20, 33, 77,195,124,198, 15,222,254, 38,147,241, 17,213,104,130,181,142,171,237,130,203,245,150,176, 92, +165,195,218,238, 92,201,148,222,153,250,200, 4,221,203,180, 23, 29,138,244,240,119, 15, 68,198,151, 21,253,161,192, 14,251,236, + 32,227,245, 55, 89,130,207, 5, 20, 57,111,204,143,184, 55,191,131, 49,154,178, 28, 49, 45, 43,138, 60, 71, 11,141,115,150, 82, + 27,148, 82, 20, 38,122,128, 95, 6,159, 10,187,136,235,131,225, 94,218,151,117,236,123, 33,200,100, 63, 60, 52,115, 25,137,161, +157,165,159, 19, 40, 13, 42, 8, 70,185, 34,120,152, 24, 77,174, 20, 74,199, 61,151,240, 30,151,248, 15, 89,166,232,131,139,155, + 28,163,113, 93,135,144,146, 39,109,135,144,129, 32,163, 89, 72,112, 68,231,174, 65, 51,111, 7,162,156, 75,235,162, 16,211, 6, +179, 50, 62,204, 69, 17,145,167, 44, 69, 52,218, 62,113, 41,190, 66, 67,215,219, 61,217,103,106, 56, 51, 19, 11,184, 72, 94,238, +219,228, 40,183,255,247,219,142,107, 37,249,216, 40, 62, 64,240,172,107,227,186,103,187,141,190,210,242, 37,171, 45,151,126,198, + 44,135,249,148,127,125,247, 22, 63,124,237, 62,111, 31,148,252,244,244,122,183,183,149, 47,172, 97,134,213, 71, 48, 8,215, 37, +244, 36, 53,102, 82, 34, 66, 76,179, 18, 89,156,198,133, 0,155,231,252,227, 55, 30,240,181,201,132, 89,145,163,117,206,170,246, + 60, 91,111,121,218, 94,240,166,131,113, 49, 69,149, 25, 98,108, 34, 19, 92, 41,168, 91, 68,150, 83,150, 37, 7,193,147, 59, 71, +231,224,181, 34,227, 78, 53, 6,219, 98, 76, 65, 81,142,144, 66,164,158,223,199,219,135,104,223, 92, 73, 73,189,217,160, 50,193, +220, 91, 62, 58,123, 18, 45,101,181,230,143,238,221,227, 15,223,120,157, 7, 99,201, 79,214,155,184, 81,169,107,188,118,248, 98, +130,183, 46, 26,219, 40,133,171,175,241, 50,199,203, 16,247,240,133,137, 83,191,210, 81,205, 89,119, 17, 37,169,211,206,187, 94, +195,179,115,186,171, 43,206,206, 47,121,124,213,114,209,116, 60,220,246,116,117,131,106, 45,165, 23,204,114, 67,150,107, 58,109, +120, 93,231, 60,168,102, 28,155,156,153, 41, 57, 86,146,219, 35,205, 70,122,158,157, 93, 18, 46, 46,161,237,163,247,187, 82, 4, + 29,215, 96,255,242,254, 33,255,230,237,183,248,237,251,119,185, 30,107, 46, 46, 54,159, 57, 80,132,193,111, 33, 68,200, 88, 12, +209,201, 10,130, 13, 48, 45,233, 59,207,147,237,134,240,232, 20,182, 27,130,107,160,110,169, 55, 53,239,182, 27,182,237, 6, 65, + 78, 89, 76,201,203,130,239,255,103,191, 77,119,213,177,109,215,140,139, 17,147,241,136,104,118,211,240, 63,191,255, 49, 15,151, + 11,254,135,139, 21, 23,174,231,255,185, 90,179,242, 18,234,150, 16,246, 76,194,144,241,252, 86,106, 71, 74,149, 26,227, 45, 40, + 69,238, 44, 37,224,165, 96,101, 29, 39, 90,243,108, 95,243, 61,144,181,135,198, 90, 36,165,204,192,201, 26,220, 34,209,207,171, + 89, 94, 60,119, 7, 95, 10,210, 26, 74,232,157, 91,169, 72,191,119, 93, 66,209, 84,140,103, 30,206,168, 97,178,247, 95, 77,109, +246,247, 56,169,239, 77,123, 3,220, 48,132,179,236,231,108, 15, 18, 29,216, 57,207,245, 95,114, 15,236, 93,108, 28,220, 30, 34, + 19, 18, 57,194, 69, 6,107,232,109,148,127,117,219,216, 45,149, 85,156,192,139,180, 55, 82,123,241,172,106,111,151, 84,119,113, +242, 12, 1,114,195,164, 42,152,151,134, 42,207, 80, 66,208, 58,199,182,243,172,251, 14, 31, 2,101,161, 57, 46, 42,110, 85, 51, +124,144, 52,109, 75,227,122,222,127,250,140,167,167,167,112,250,209,115,145,150,191,212,135,115,160,114, 30,188,113,151,131,217, + 1, 66,106,126,126,250,144,247, 63,252,152,112,113,149,194, 59,250, 29,113,113, 56,121,179,100,113,234, 19, 19, 83,165,184,209, +144,236,120,117, 90,139,104,181,139,111, 29,246,114,131, 93,175, 16, 59,146, 26, 41,176,167, 79,172,239, 16, 29,221,100, 49,225, +215,110, 63, 96, 54,157,227,172,167,202, 71,113,208,212, 57, 65,192,168, 24, 97,125,195,192, 53,179, 4, 38, 82,131, 49,212, 62, + 68, 46,129,144,187,172,251,253,162,126, 19,231,187,231,188,164,108, 36, 9,169, 68,162,211, 38,189,214,104,115, 25,130,224, 32, + 55,104, 33,137, 52, 57,133, 49,209, 4,182,119,158, 66, 74,214,182,103,164, 84,220,250,180,129, 32, 20,215,193, 49, 82,134,174, +119,180,206,227,156,223,109, 2, 68, 72, 80,187,143,197,251, 38, 13, 47,220, 20, 82,178, 50, 93,163, 33,162, 80,236,188,185,191, +234,174,221, 37, 61,121, 85,221, 4,204, 40, 33, 8,214,198,181, 71,215, 70, 85, 68,232,118,135,134,115,209,110,116, 54, 74,168, + 88,106,236,154, 13, 44, 18,121,244,101, 54,204,109, 7,227,138,239,222, 58,225, 55,230,199,228, 58,195,122,207, 95, 53, 93,140, +173,124,241,245, 15, 68, 58,169,226,243,110, 70, 8, 21, 27,177,184, 5, 19, 49,134, 83,104,132, 14,136,206, 34,189, 64, 22,134, +127,118,235,117,222, 62, 58, 96,108, 50, 10, 29, 21, 8, 93,219,241,254,122, 67,103,151, 76, 54, 45,147,233, 28, 89, 40,196, 40, + 35,132,128,174,166,136,117,131,197,115, 48,157, 51, 55,134, 81, 7, 77,211,144,107,184, 61, 61, 68, 21, 35,100,211, 96,133, 38, + 83,154, 97,107,226,124,192, 53, 29, 78, 10,154,224,169, 28, 52,219,107,142,139,140, 79, 46, 47,169, 70, 35,254,249,157, 59,220, +170,166, 28, 77, 14,120,239,250,156,235,197,150,224, 44, 65, 23,248,237,134,160, 52, 94, 42,124,179,197,103, 21,222,246,201,183, + 41,158, 9,222,148,132,174,142, 22, 25, 10, 66,211,237, 22, 73,114, 47,140,165,237, 8,219, 13,246,122,133,109, 26,158,181, 45, + 63,239, 45,211,206,113,175, 48,116, 82, 50, 54,154,187,197,152, 82, 42,164, 50,209,152, 74,105, 70, 82,225,133,231, 32, 83,124, + 40, 51,124, 93,195,197, 34, 54,158, 46, 66,207,191,127,231, 54, 35,149,161,180,230, 82, 6, 30, 9,133,144, 89,124,102,247,138, +251,254,107,187, 81, 8, 13,235, 20,231, 0, 75,189,117,212, 93, 77,120,252, 20, 54, 87, 73,177, 33, 8,222, 18,218, 6, 46, 87, + 44,150, 91, 86, 70,115,255,240, 46,199, 71,183,217, 44, 90,180, 84,120,235,169,155,117,220, 32,217,152, 97,174,109,205, 95,127, +252, 24,209,247,156,173,106,186, 62, 16,218, 62, 61,251, 50,166, 39,186, 16, 27, 86, 31, 24,133, 64,111,147,113,151,130,214, 11, +238,139, 64, 19, 44, 2,129, 12,158, 18,193, 59,109,159, 12,162,194,243,110,150,195, 90, 88, 38,191, 11, 73, 60, 47,164,136, 8, +177, 54,177, 81,150, 73,189,181,255,156,106,149,228,214,123,110,143, 67,178,164,222,243,144,207,179,157, 90,164,103, 55, 0,188, +152,202,166,247,200,241,255, 32,139,250, 0,203, 74,177,183, 79,127,129,228,246,156, 30,156,231, 33, 59,225,190,154,172, 78,164, +176, 15,225,119,178,157, 44,103,252,230,109,166, 7, 83,182, 62,193,132,235,117,124, 19,143,102, 59, 67, 0,111, 35,124,152, 98, + 77, 81, 42,254,121, 68,252,222,129, 41, 89, 26,230,121,134, 49, 2, 35, 21,181,179, 92,215,150,117,103,233,189,197, 40,197,113, + 49, 98, 82, 20, 24,169,113,210,209,116,142, 39,171, 21,205,229, 51, 56, 61,143,211,211, 87,105,142, 62, 11, 38,111,106,222, 15, + 61,231,215,151,252,228,147,143,121,248,240, 9, 60,252, 56, 89,187,238, 77,217, 67,243,148,169, 4,249,239, 41, 11,148,220,145, +204,110,130,116, 84,114,250,147,207, 75, 10,135, 78,119,127, 74, 31, 60,215,117, 74,217,179, 22,188,228, 27,111,189, 77, 89,142, + 80, 82,146, 43, 3, 82, 81,230, 5,214, 89,140, 48,116,206,161,165, 64, 43, 67,221,182,232, 44,163,183,150, 46,120, 54,117,187, + 51, 37, 26, 86, 0, 54,253, 27,195,191, 61, 76,234, 50, 33, 5, 89,186,223,196,160,137,151, 55,118,177, 90, 43,166,185,142,211, +184, 81,100, 82,161,148,196, 7, 71,231, 2, 90, 10,214,214,145, 35, 8, 50, 58, 81, 5,231,227,218,204, 67, 43, 60, 78,106, 90, +107,227,228, 32, 18, 44,121, 3,191, 39,247,186, 64, 44,170, 67, 81, 23,106,119, 40,220, 60,197,233, 48,233,136, 81,192, 95, 37, +168, 72,107,152,205, 34,113,174,202,121, 80, 26, 50,231,152, 27,133,241,150,186,243, 49, 97,234, 83,114, 80, 31,215, 76,213, 56, + 18, 3, 6, 23,188,245,122,167, 6,121, 89, 34, 97,219,113,124, 50,227,184, 28,209,120,203, 39,182,227,195,118, 11, 77,178,146, + 29,190, 63,207,246,158,253, 4,223,170, 16,153,239, 67, 19, 22,199, 64, 68,154,102, 4, 10, 25,122,132,202,249,238,201, 9,175, +205,142,209, 90, 35,136,100,196, 69,211,179, 88,175,120,214,110,185,114,107,170,109,207,172, 24,163,114,131, 28, 21,209,253, 55, +104,202, 44,167,154,157,112, 92,221,225, 86, 89,209,173, 90,132,232, 40, 6,151,192,124,132, 12, 14,231, 60, 82, 41,132,150,184, +186, 67,230,134,237,182,102, 98,162, 87,198,170,105,144, 1,238, 26,129,240, 13,119,231,199,228, 74,241,201,118,195, 95,108,106, +218,109,141,183, 30,143, 39,228, 26,143, 34,168,130, 80,150,248,182, 37, 8,139, 15, 22,175, 51,130,245, 4,231, 8, 89, 30, 11, + 94, 15, 65,198,245,224,128, 40, 7,249,124, 49, 13,251,124,154,109,199, 7, 82, 48,111, 29,227, 76,211, 40, 73, 41, 3,135,166, + 64, 41,141,115, 14, 47, 5, 87, 93, 77, 38, 3,199, 74,242, 70,161, 80,163,130,199,249, 40,250,144, 47, 86,132,171, 21,183, 15, +114, 78,170,138,107,107,249,243,229,134,173,245, 80,106, 68, 89, 70,121,173,141,211,248, 23,202,219,122, 11,155, 85, 36, 88,246, +237,142, 59,145,204,157, 82, 5,132,224,104,174, 27,142,239,223,230,100,114,136, 82, 2,239, 28, 46,120,234,166, 78,183, 94, 92, +123,213,219, 13, 31, 94, 46,225,217, 41,108,108,156,198,151,219,232, 3,177, 90,198,198, 99,221,196,162,238, 28,253,186,137,175, +119, 40,236,193,179, 22,112,143,136,194,104,223,243, 65,215, 19,164,192,217,100,238, 53,236,181, 85, 26, 4,212,192,249, 74, 40, +177, 78,123,123,147,167,228,199,168,200,226, 38, 47,106, 47, 4,169, 40,210,153, 58,252,204,118, 23,237, 29, 82,198,200,144,161, + 32,134, 63,159, 92, 75,103,115,168,166, 41,248,108,136,246,254, 85, 77,234, 67,135, 32,245,243,126,220, 55,146, 34,255,233, 16, +137, 87,129,132,111,166,242,192, 77, 75,252,101, 96,251,175, 74,204, 27,220,188,240,112,255, 46, 63,252,167,191,201,119,110,223, +231,219,175,189,197,119, 94,187, 77, 89, 21, 60,126,114, 17,247,131, 89,158,114,223,101,210,235,166, 2,166,247,236, 49,141,130, +108,248, 44,201,115,133, 81,130, 92, 43,106,235,184,220,246, 92, 55, 53,174,183,148, 70,243,214,193,109, 14,102, 99,198,229,148, +213,102, 77,111, 61, 87, 77,195,114,177,132,197,229, 78, 19,252,101, 14,238, 1, 57, 24,160,203,193, 80,103,144, 12,102, 26,158, + 45, 89, 61, 62,165,125,248, 49, 44, 46,118,157,245, 0,237, 12,230, 7,131, 37,168,212, 41, 76,167, 77, 8, 71, 42,242,217,192, +220,150, 9,170, 79, 82,187, 44, 77,236, 55, 55,104,130,191,135,226, 58,152,173,116, 41,251,219, 11, 56, 58, 68,140, 71,220,154, +204, 25,153, 18,169,179,148,182, 5,101, 22, 11,187,117, 29,130,192,186,171,233,122,143, 82,130,171,245, 26, 43, 28,141, 16,132, +186,143,232,205, 32,121,212,164,201, 92,197, 66, 49, 48, 74,135, 61,123, 80,187,166,108,152, 56, 35, 61, 26, 37, 34,169, 34,215, + 18,141, 32,207,210,129,232, 64,136, 16, 61,201, 69, 64, 11,104,125, 32, 75,142,178, 91,235,145, 66,210,244,158,218, 57,100, 8, + 56,145,178,201,221,222,174,219,197, 67,140,118,207,161, 80,202, 93, 65,215, 42, 30,128,114, 56,244,210,123, 34,220,103,219, 86, +126,238,147,173, 99, 86,250,180, 98,102,226,253,106, 16, 88,231,169, 8,209, 73,174,169,119,204,119,191,247,156, 20, 37,183,103, +138, 77,117, 20,137,160, 50,161, 55,167,151,105,122, 23,159,158,214,173,229,217,166,227,175,187,134,191,106, 90, 62, 92,111,227, +125, 82,232,216,108, 13,205,170, 78, 12,121,147,154,153,161, 1, 20,121,116, 71,147, 30, 33,125,156,214,133,143,111, 81, 80, 8, +223, 33,108,203,119, 94,123,157, 73, 86, 33,181,166,211,146,211,117, 67,227, 3,205,102, 75,237, 90,150,117, 79, 79,199,253,209, +140,162, 42, 80,202, 32,148, 66,141, 74,204, 65, 69, 54, 25,147,221, 57, 32,147, 99,140,237, 57,191,184,100, 50, 18,228,213,140, +208,213,160, 20, 65,104,130, 15,200, 48, 80, 32, 28,211,188,160,173, 91, 38, 42,163, 16,146, 18,195,216,100,200,174,102,181, 89, +243, 81,223,240,231, 23,151,156,247,125,212, 92,111,226,228, 77, 31, 8, 74, 18,198, 25, 65, 11, 66,221, 18,104, 9, 34,202,165, +130, 25,206,166,100,172,101,227,164,123, 83,193,213, 75, 10,250, 11, 92, 53,250,158,119,250,142,166,105,169,157,135, 76, 48,149, + 18,237, 29, 65, 72, 46,234, 53, 29,129,222,245, 76,188,231,174, 50,156,228,134, 55,170,156,139, 50,103, 57, 26, 17,156,227,189, +247, 31,241,103,159, 60,230, 71,219,134,109,215, 71,147,160,148,151, 32,140,138,170, 21, 83, 70,233,154, 16,241,172, 25, 21, 47, + 93, 17,137,207, 67, 77,135,198,191,105, 1,203, 51,147,113,171,154, 96,148, 38,120, 79,223,181,172,155, 21,214,246,104, 2,189, +107,177, 93,207,138,134,245,227, 69,148,235,182,109,138, 62,173,119, 25,231,109,157, 86, 22,117, 36, 26,135, 20,125, 58, 52, 64, + 10,180,115,172,251,158,214,193,194, 57,236, 62,170,230,247,236,198, 73,107, 58,157, 30,116, 4, 15,116,198,127,121, 56,227, 7, +147, 17,255,100, 92,162,239,188,193,195, 31,255, 24,117,231,136,208,187,157,161,163, 24,146, 13, 7,211, 52,155,172,207,195, 78, + 30,170, 72, 43,225, 52,138,251,110, 71,214, 59,152,197, 26, 36, 21,108,234,184,254,252,149, 21,117,147,237, 92,111, 6,147,217, + 97,106, 27, 12, 96,134,169,226, 85, 14, 29,157,224, 69,157,118,133, 50,153,174, 72,241,183,195,184,126,177, 67, 81, 73, 11, 40, + 42, 94,251,214,219,252,250,253, 7, 76,230,183,144, 66, 49,157,206,113,109,207,187,182,141,157, 81,145,160,217, 54,165,146, 45, +175,211,141,148, 96,123,162, 71,187, 52,130,201, 40, 39,207, 12, 19,163,146, 93,168,103,209,116,212,235,116,195,105,205,107,135, +135,220, 62, 60, 97,156, 87, 40,161,241, 74,242,241,213, 37,139,171,107,184, 88,196,124,234,208,127,185,166, 69, 13,201, 95,233, + 49,146, 2,116,153,138,219, 16, 24,146, 76,109,156,125,121, 72,129, 38,162, 13,222,239,116,225, 67, 96,141,145,169,177,209,187, +110, 84,134,248,158, 13, 29,169, 18,177,208, 15,108,115,173, 18, 33,100,128, 87,253,206, 80,136,244,125,101, 52,230, 57,152,206, +152, 85, 35, 66, 8, 20,166,192,186, 62, 34,129, 64,103, 45, 4, 75,227, 58,140,136, 48,248,229, 98,137,201, 20,117,103,233,156, +199, 53, 13,244,235, 93, 70,113,218,195,198,130,147,228, 40, 46,197,211,146, 26, 80,157,116,186, 62,236,166,198,224, 33, 51,232, + 16, 40,141,166, 11, 30,233,226,125,221, 57,143,247,158,222, 7,156,243, 52,189, 39, 55,138,186,135,206,122,180,148,172,189,197, +171,232, 5,223,220, 32, 25, 73, 95,111, 83,230,125,235,226, 52, 33,210,107, 29,194,128, 84,122, 38, 90,123,147,131,126,179, 6, +169,155,212,217,135,231,209,151,231, 96,194,207,120,246,148,137, 48, 58,146, 98,148,113,168, 5, 66,105, 26,231,216, 52, 61,165, +183,108, 54,137,183,241,162,135,117,150,179, 57, 58,130,201, 45,126,167, 28,241, 70, 86,112,168, 2,167,215,171,120,112,126, 86, +212,112, 93,195,114,157, 16,172,132,114,105, 29,247,134, 46,125,125,240,138,184,185, 39,178,148,191,240,130, 45,169, 75,133, 29, +162,223,183, 20,136, 96,248,155,205,150, 55,142, 15,177,186,224,170,115, 92, 11,199, 98,221, 82, 1,227,190,163,146,130,183,143, +142, 56,152,143, 24, 85, 5, 18,133,148, 26, 89,106,228,225, 40,106,217,115, 29, 21, 15,219,128, 25, 9, 46,234, 37,235,237, 5, +227,106,134, 84,101,220,227, 10, 8, 73,235, 47, 19,163,122, 84,150,216,166,103,146,231, 76,180, 64, 11, 67, 38, 50, 86,237, 53, + 79,150,151,188,215,116,248,174, 35, 40,133, 47, 50, 66,215,227,155,109, 34, 4, 59, 66,219, 18,250, 53,212, 77,148, 78,245, 9, + 1,244,137, 44,217,181,187,169, 69,238,120,189,175, 34, 53, 19,222,243,180,109,249, 69, 93,243,255, 45,123,206,235, 13, 65,123, +182, 56,122, 31,184,106,214,148, 62, 80,132,128, 16,130,128,192,106,201,108, 92,178,146,154,235,114, 4, 71,135,241, 31,189, 94, + 35,206, 22, 17, 61, 25,222,171,129,253, 93, 22, 49,105,242,246, 45,126,248,107, 15,248,206,237, 35,102,199, 83, 30, 47,109, 92, +213, 5, 62,117, 79,138,151, 13, 88,131,148,214, 57,220,197, 5, 98, 62, 35, 35,196, 45,149,243, 4,161, 82,124,131,165,105, 26, + 86,221,154,211,197,138, 38, 36,207,138,254,115,130, 84,156, 75,187,235,136, 40,138, 68, 9, 10, 87, 43,150,222,179,105, 45,171, +166, 35, 8, 17,239, 61,149, 66,197,156,139, 53,173,245, 59,173,248,240,115,107,205, 55, 50,195, 91, 69,206,216,228, 24,169,249, + 14,158,223,124,253, 54, 39, 38,240,243,109, 31,155, 88,153,220, 35, 7, 84,211,171, 72,148,179, 3, 26, 39,119, 12,251,225,245, + 90,187,139, 44,206,116,226,113, 37,185,247,102,155, 26,189, 95, 69, 81, 31, 10,240,224,169, 62,176,137, 7,243,150, 1, 90, 29, + 82,175, 94,201,171, 86,238,138, 0, 98, 47,241,172,255,219, 47,232, 38,193,136,210,192,131,187,124,255,173, 55, 25,149, 83,178, + 44, 35, 56,232,123, 75, 89, 22,104,183,230,210,121,130, 15, 4,159,228, 17,219, 6, 46, 23,241,115,149,244,222,165, 70,230,138, + 81,174, 49, 82, 80,101, 34, 41,151, 60,151,171, 6,183,218,194,106, 3,153, 97, 84,149,188,113,124,155,131,114, 66, 32, 50,167, +215,125,205,197,102, 77,127,185, 76, 76,247,246,203, 17, 35, 6, 46,194, 62,251, 27, 17, 59, 62, 33,119,133, 29,191, 67, 68, 94, + 36, 58, 37, 84,232,249, 29,146,216, 85,252,125,243, 22,159,248, 13, 50, 5,173,100,106, 39, 35, 19,236, 50,196,111,152,231, 42, + 21, 45,249,188,169,144, 81,241,181,143,103, 76,199, 5,203, 77,205,253,131,219,180,214,226,189, 69, 9,193,182,107,232,108, 71, +109, 91, 70,166, 68, 75, 69,227, 90,140,209,108,234, 26, 23, 98,227,228,214,203,180, 42, 72, 26, 80, 19, 98,241,216,247,255,215, + 41,191,216,136, 56,189, 15,134, 62, 69,106, 0, 74, 19, 37, 62, 14,180,214, 88, 23,179,199,251,224, 81, 1, 28,158,173,117,228, + 82,196,126, 78, 7,218, 54,254,253, 94,193,214,245,180, 2,154, 62,196,239, 19, 2,215,135,221,218,104,216,239,119,110, 87,200, +135, 93,186, 52,137,149,191,127,221,211,179, 49,144, 0,131,123,254,249,120,153, 70,255,101,207,158, 41, 34,169,103, 82,210, 42, +201, 72, 72,182,120,148,117, 80,119,172, 54, 61,110,152,158, 63,181,243, 86,112,239, 22,191,115,112,139,147,178,228, 40,203, 81, +125,199,105,187,164,191,186,126, 57,252,190, 47,115,235,218,196, 91, 72, 4,189, 44, 49,137,133, 73,133,125, 88,229,228, 96,235, +120,144,233, 9,248, 14,209,217, 68, 94,141,123, 75,209,219, 88,208, 1,225, 4,130,192,251,218, 83,168,146,101,151,130, 58,188, +229,160, 50,220, 27, 79,185, 91, 76,184, 51,153,114,116, 56,195,110, 91, 52, 18,217, 6,228, 36, 71, 30, 22,136,204, 32,140, 36, +108, 28,118,219,210,103, 10, 39, 3,173,146,180,174, 71, 5,143,200,242, 68,230,142,197, 79, 25,131,197, 99, 16,100,121, 70,223, +212,228, 38, 67,133,192,214, 7,166,166,136,236,118, 91,115,222, 89,124, 8, 4,163, 8, 70, 18,186,158,224,122,112,155, 72, 58, +108,219, 20,140,178,199, 25, 34,133,251,236,107,246, 63,103,242,253, 44,255,118,113, 3,203,119,124, 92,111,249,127,175, 26,254, +100,221, 48, 22, 22,211,246,204, 60,140,149,100,237, 29, 91, 41, 88, 3,155, 16,232,203,140,181,209,252,227,163,138,127,123,247, + 54,191,121, 50,229,247,238, 31,113,160,224,189,167,215,136,235,107, 16, 42, 42, 19,202,152, 96,121,127, 82,240, 91,243, 3, 94, + 59,186,205,225,116,198, 59, 69, 78, 63, 42,147,178,196,164,231, 81, 68,199, 78,147, 71,101,199, 40,231,232,254, 9,181, 44,118, + 12,242,180,102,186,176, 61,206, 40, 50, 37, 17,105, 53,211, 7,139,117, 13,235,245, 53,206,183, 52,173,101, 45, 37,200, 60, 34, +135, 38,173,112, 94, 66,230, 19, 9,121,227,246, 93,126,239,123,223,229,215, 31,188,197,236,112,194,147,247, 63,129,174,229, 48, + 15,212,155, 58, 66, 33,117,183, 51, 75,106,109, 10, 17, 75,207,173,142,175,241,219,153,230,159, 76, 42,114,149,225, 67, 32,147, +154,198,247, 20, 82, 34,165,225,195,166,166,150, 3,243, 93,199,231, 86,153,228,201, 48,212,158,244, 78, 9,187,131,223, 93, 26, + 29,153, 26,155, 0, 0, 32, 0, 73, 68, 65, 84,148,134,103,124, 88,207,217, 16,125, 71,134,144,153, 95,186,168,223,192,186,105, +234,217,183,110,237, 82, 55, 17,210, 1,109,221,243, 22,146, 95, 4,129, 15,211,160,150,187,144,148,191,237, 41,125,144, 62,137, +116,160,119, 14, 49,159,112, 50,154, 96,116,148, 55, 9, 41, 88,174,150, 60,188, 94,113,118,189, 66, 10, 65,232, 18,177,105, 29, + 73, 37, 40, 25,229, 66, 82,199, 41, 61, 87, 20, 90, 16, 66,212, 46,215,157, 99,217,180,112,185,137,172, 85,109,160, 44, 57,156, +148, 76,117, 65,150,151, 55,147,228,214, 53, 60, 58,189,128,103,105,143, 62, 20,243, 87,189, 20, 38,221,212, 46, 93,119,159,116, +143, 65,237, 96,112,201, 30, 26,194,110,194,222,159,212, 7,199,190,161,195, 22,201,252, 32,176,211,128, 91,151,120, 8,114,167, + 77, 30, 38,255,228,151, 30, 67, 59,210,191,181,159,119, 63, 76,238,222,167,195, 59,193,244, 58,199,101, 57, 71,101, 73,221,119, +120,111,169,178,130,166,107,145, 74,179,105,214, 8, 25,144, 66,225, 66, 96,100, 74, 16,129,105, 89,113,185,190,230,234, 98, 17, +167,194,190,141, 93,123, 72,114,181, 97, 82, 31,200,150, 50,165,233, 13,196,189, 96,210,207,145,140,142, 18,226, 2, 1, 33, 37, + 69, 46, 89,119,142, 44, 37,172,181,189,199,139,184,187,213, 54, 68, 20, 47,153,195,213, 30, 90,235,169, 93,192,134, 64, 41, 37, +117, 99,119, 5,122,144,209, 89,151,174, 91,250,255, 82,238, 53, 93,114,151, 27,190,111, 8, 50,178, 77,220,167, 11,251, 60,105, +114, 63,110,241,197,102,249,197,134, 45,151, 81,122,153, 69,148,165, 9, 32,165,228,162,238,113,189,163, 91,109,226,123,248,178, +137, 91,101,112, 48,231,222,116,198, 97, 94,208,216, 30,131,231, 23,171,107,220,179,243, 47,110,194,123, 11,181,139,242,182, 76, +241,221,201,132,127,117,231,152,223, 62,153, 80, 77,114, 62, 57,191,142,215,196,167,179,228,224, 54,223,251,254,183, 57,253,224, + 35,132,204, 35, 4, 63,236,102,149, 68,120, 3, 94, 34,219, 53,210,197,233,237,161,114,156,231, 21,149, 11, 28,224, 57,153,142, +120, 99, 52,225,173,195, 67, 14,198, 19,242,188,192,123,203,229,163, 51,114, 43,208, 85,158, 12,142, 98, 20,175, 95, 54,216, 77, +205,170,169,177,163,138,144,101,212,206,211, 43, 77, 16, 10,163, 13,189,179, 40, 41,177, 65, 48, 26,141,240,206,199,251,116, 60, +194,117, 61, 2,184, 93,141,217,118,150,177,201,176,161,103,140,227, 81,219, 17, 66,192,107, 77,200,116,100,104, 55,237,141,214, + 63, 22,224, 93,118,252,238,243,206,112,236,197,255,126, 49, 70, 85,124,206,215,110,204,187,234, 45,118,179,229, 39,171, 45, 7, + 4,250,166,193,118,150, 32, 4,139, 0,219,204,112, 17, 4, 87, 30, 10, 99,248,245,106,194,221,114,198,215, 38,199,220,159,156, +144,151, 25,118, 94,240,112,221,195,250, 42, 14, 41, 78,192, 40, 99, 84,102,124,111, 58, 67, 41, 77,231, 3,191,232, 45,219,214, + 66,101,162, 74,104, 58,130,131, 57,156, 28, 69,251,225, 91, 71,252,219,111,191,193,247,143, 79,248,221,215,239,225,230, 5,143, +201, 99, 67,115,124, 12,101,206,166,200,168,148, 38, 8,193, 73, 89, 97,189,195,120,207,114,179,102,221, 89,148, 20,148,185, 70, +151, 57, 77, 94,194,252,144,252,181, 55,112,119, 95,131, 78, 65,150, 12,140, 32,114, 0,180,225,187,223,254, 58,199, 7, 39, 16, + 60,214,100,124,114,246,148, 25,150,197,114, 27, 39,225,122,147,160,251, 62,170, 60,250,193, 71, 33,236, 46,106,240,188,153, 25, +190, 89,142,147,167,137,130,224,240,222,161,164,102,211, 55,180,194,242,164, 75, 89,225,153,137,208,250, 96,231,236, 99, 17, 23, +200, 72,161,113, 50,161, 79,105,189, 98,221,243,178,212,126, 72,192,235,190, 82,109,124,121, 81,151, 9,114,240, 41,142,210,217, + 88, 64,250,189, 3,157,193,206, 85,236, 32,132, 87, 49, 46, 25,224,145, 23,141, 84,254, 54, 63, 6, 9, 85, 16, 17, 10, 65,176, +200, 12, 85,150,113, 52, 46, 16,194,227, 29,156, 95,175,248,139,119,222, 5,209, 71,178, 19, 62,193,166, 77,116,197,154, 23, 73, +222, 16, 51,166, 67,136,249,188,189,119, 52,189,163,111,250,216, 93,173,151,177,216,141, 71,140, 39, 35,170, 66, 35,241, 72,109, +232,250,150,198,121, 30,158,157,179,125,122, 26,247, 67, 55, 59,152, 47, 67, 54, 84,177,248, 26,177,131,151, 3, 59,223,224, 97, +160,147, 67,214,252, 75, 60,212,247,247,238, 67, 83,224,210, 62, 87, 14, 76,204, 68, 38,115,118, 23, 30,162, 19,188,173, 19,243, +220, 13,161, 58, 58,194,197,168, 4,127, 37,191, 99, 37,118,118,166,129,104,252,211,247,244, 65,208,107,133, 32, 36, 55, 88,135, + 11,142,197,118,129, 68, 82,234, 17, 74,104, 50,173,144,194,160,165, 98,219, 52, 76,139, 17, 15,183, 75, 56, 59, 75, 39,153, 77, +123,252,253, 2,153,224, 46,103,119, 28, 2, 51,200, 26, 37, 84,229,243, 9,100, 68,166,115, 7, 49, 80,195,122,156, 11, 88, 5, + 5,113, 98, 19, 30,172, 8,224, 3,181,247, 4, 33,232, 83,163, 42, 9,172,187, 97, 23, 42,246,228,107, 73, 70,166, 84, 60, 68, + 92,159,252,207,137,178, 60,215,236,244,222,174,143,215,175,235,119,201,102,251,176,251,231,125,188, 8,161,143,170, 72,230, 73, + 54,187, 78, 42, 90, 27,125,216,221,166,129,235,197,103, 63,123,194,195,108,140,171,170, 36,253,213,188,187,186,228,252,242, 50, + 54,172,175, 18, 10, 50,228, 59,204, 39,252,193,157, 99,114,169,152,149, 83,156,235,121,167,238, 83, 80, 82,186,103,182,215,156, +126,242, 48, 53,160, 18, 49,196,200, 14,211,122,232, 17, 65, 34,115,137, 8, 22,105, 5,178,105, 9, 42,144, 9,193,189, 81,198, +131,106,202, 91,243, 25,147, 34,163,154, 69, 51, 21,223, 67,215, 56,214,151,231,140, 84,142, 57, 24,199,251,196, 65,216, 90, 66, +211,227, 69,160,147,158,173, 20,184, 98,132, 77,220,146,218, 91,132,140, 33, 63, 69, 53,194,217, 30,161, 20, 89,150,209,214, 45, + 50, 8,100,102,240, 65, 80,100,154, 77,239, 57,206,198,116, 90, 98,125,195,179, 46, 74,187, 66, 12, 5,136,164, 68, 27,207,148, +151, 21, 99,249, 25,159,191,204,175, 23,167,248, 0, 4, 31, 97,255,159, 45,150,124,220, 89,124,211,210,246, 14, 39, 2, 87,222, +114, 42, 37,207,132,100, 94, 26,222,210, 25,119, 70, 51,148,202,208,198, 96, 76, 73,171, 13,125, 33,185, 80, 89, 92, 25, 92,175, + 97,121,197,166,243,188, 94,106,148, 84,156,246, 29, 63, 90, 44, 19,139, 59,233, 75, 85, 90,221,142, 51, 80,138,217,100,204,247, +102,135,220,169,102,140,203,138,172,200,120, 71, 73,220,120, 12,183, 79,152,222,127,147, 81, 81,130,146, 84,192,131,201,140,147, + 81,206,196,104, 46,250,134,218, 57,148,214,228, 66,162,165, 96,148,103,252,240,183,254, 41,255,234,159,255, 62,255,236, 55,190, +199,209,252, 62,106, 62,166,155, 29,211,118, 93,146,230, 26,206,188,226, 27,135, 83, 68, 86,209,109, 87,124,252,240, 9,237,242, +154,233,184,164, 93,247,233,249,232,161,109,201,180,194,109,183,209,178,185,237, 83,141,139,199,217,177,210,188, 53,202, 24,201, +140,222,181,145, 65, 79,160,237,123,150,222,242,151,203,134,237,224, 60,103, 20,163, 42,167,207, 75,200,116, 76,203, 19,137, 43, +129,223,157, 73,128, 8, 33,254,250, 21,214,193,151,159, 20, 34, 81,248,135,201, 92,232,221,132,190,109, 34, 57, 34,193,100,251, +142, 61, 55,196,160,127,136, 31, 42, 77,216, 50,197,172, 62, 89,178, 58,217,176,221,108,153,140, 15, 33, 52, 56,219, 36, 82,194, + 62,155, 60, 29,252,147,113, 60, 36,203,148, 50,119,179, 71,108, 99, 45,238, 45,172,183, 41, 35,126, 7,127, 74, 13,193, 7, 86, + 93,207,246,234, 20,135,100, 81,119,172, 47,215,176, 90,127,177, 27,222,103,153,233,244,169,233,232,147,214,193,200,228, 91,239, +227,207,200,144, 78,150,194,105, 20,187,223,219,189,162,190,109,118, 83,184, 75,123,244,125, 97,113,219,196,212, 51, 33, 99,193, +217,191, 23, 94, 28,216, 84, 42,252, 55,221, 73, 6,165,136, 83,103,122, 73, 56,189,155, 84,251,150,101,219,146,101, 26,183,245, +132,205,154,233,120, 12,214,115,114, 56, 5,160,204, 75, 50, 99,112,125,143, 50,121,220,165,251,134,215,230, 21, 15,191,254, 38, +188,255, 65, 12, 48, 81,123,124, 4,217,199,127, 71,217,231,175,111,219,237,146,200, 26, 27, 73, 92,222,199, 48, 17, 37, 33, 3, + 45, 4, 77,231,208, 72, 86,193, 83, 32, 88, 16, 8,206,115, 32, 5, 54, 4, 46,251,158,137,138,141,192, 38, 65,209,197, 16, 64, +228,247,166,213,129,108,227, 93,130,223, 19, 15,194,166,130, 23, 92, 34,246,245,207,255,153, 23,255,251,171,248, 19,232,228,136, +149, 26, 22,186, 62,194,224,214,237,174,255,103, 54, 8, 22,206,174, 57,157, 95,112,234, 61, 44, 47,226, 52, 3, 80, 8,120, 85, +197,229,102, 5,171, 45,109,215,115, 50, 61,100,221,183, 60,209, 49,171, 30,167, 65,118, 59, 18,163,200,227,251, 54,232,117,189, +137,208,252, 80,156,148,197,123,131,207,193,119, 29,254,236, 17,206,247, 60, 10, 61, 63,152, 85,228,128, 81, 2,157,105,100, 46, +200,171, 10,151,107,176, 61,107,215,177, 92,109, 80,143,174,201,239, 76, 99, 19,234, 60,106, 86, 48, 42, 2,186,201, 41,187,146, +243,229, 53, 11,105,233, 61, 28,143, 39,204,110, 29,162,148, 36, 88,104,183, 45, 25, 1,219, 89,132,136,136,157, 17,130,186,109, +168,138,156,215,230,135,252,199,235, 83,166,121,201, 55,111,189,206,149,123,194,199,109,131, 32,139, 69,247,238, 93,184,188,138, +171,182,182,123, 57,116,254, 57, 5,250,121,146,156,190,121, 78, 69, 90,231, 8,187, 99,165,135,255,159,186,247,108,178,236, 58, +239,253,126, 43,237,112, 98,199,153, 1,102, 6,145, 0, 73, 48,136,162,168, 72,221,171,171,107,189,176,222, 58,125, 5,127, 13, +126, 26, 87,185, 92, 46,135,178,101, 91,117,203,215,165,146,117, 45,139,162,196, 32, 6,136, 4, 48, 4, 6,192,204,116, 58,113, +135,149,252, 98,173,221,231, 76, 34, 2, 85,186, 86, 87,117,117, 79, 79,247, 9,123,175,181,158,244, 15,207,248,155, 8,124,176, +217,240,254,102, 67,216,108,152,108, 74,142, 70, 35,220,116,204, 47, 85,193,151,116,137,174, 11,106,161,232, 8,180, 33, 49, 20, +218,224,168,139, 17,119, 15, 61,247,164, 72,190,237,139, 53,108,123,254,135,239,253,132,232, 44,232,241,117,155,154, 73,149, 20, + 44, 67, 62,127,214, 61, 76, 71, 40,210, 56, 78, 41,131, 20, 2, 41, 52,183,170, 49,247,104,161,158,208,121,203, 97, 61, 66,199, +200,237,233,152,219,179, 17,181, 81,172, 27,205,173,110,198, 74,104,240,150,224, 18, 30,228,197,217, 17,175,188,124,151,111,188, + 54,199,148,154,155,199, 37, 55,223, 62,164,111, 54,252,183,189,163,251,240, 62,194,247,196,237,138, 11,111, 57,242, 61,147,170, + 98, 50,159,178,110, 91,150, 87, 93,214,108,224,122,150,221,111,219,221, 57, 65,155,102,235, 19, 7,182,226, 3,161, 57, 31,111, + 24,141, 21, 71,166,102,101, 27,162, 15, 56,224,157,102,203, 89, 8, 40,169,168, 43, 69, 37,210, 40, 86, 86,145, 77, 35,210, 88, +176, 80,233,188,183,221,206,203,163,123, 90,123, 63,254, 42, 64,244, 62,117,248, 83, 87,234, 3, 8,167,200, 21,143,207, 51,219, +224,115,133,222,166, 67,113,219,238,108, 81,201,135,214, 64, 33,250,231,212, 18,127,242,141, 63, 15, 60, 36,101, 58,228,116,238, +155, 18,224,104,204,239,188,126,155,155, 39,199, 76,231, 37,149,209,156, 28, 30,240,225,229, 57,171,237, 22,101, 20, 81, 12,109, +232, 68,237,160, 46,118, 82,152, 42,139, 4,172,123,216,108,224,106,155,248,200,109,127,141, 58, 86, 35,195,200, 40, 68,148,108, +189, 99, 99, 3,103, 77, 67,127,149,231,237,155,203,207,119, 96,171,189, 46, 10,131, 82, 87,110,221, 26,147,237, 70,243, 2, 40, + 51, 21,101, 24,228,201, 61,158,113, 36,123,210,199, 4, 2, 52, 38, 5,222,174,221,177, 20,164,220,241,106, 10,185,107,185,135, +144,103,167,123,115,173, 48,120,162, 15,200,238,140, 54,247, 49,207,239, 67, 66,123,186,252,243,110, 11, 33,176,237, 44,203,190, +103,213,247,148, 74,115, 52,155, 81, 21, 21, 39,179, 99,140, 81, 72,161,209,101,129, 16,146,217,120,130,115, 61, 35, 93, 80,170, +200, 5,106,103,149,232,251,244,248, 62,163,137,221, 51, 58, 65, 74,238,168, 42, 3,208,188, 48,100, 88,123,154,102, 40,137, 37, + 94, 23,212, 32, 17, 49, 38, 45, 23, 18,117,205,121,207,101,219, 81, 85, 26,215,123,182, 54, 80,228, 45,115, 13,148, 27, 40,108, + 3, 86,193,251, 92,197, 59,210, 48, 88,236,130, 88,239, 30,167,118, 62,171,195,245, 60,205,251, 39, 55,122, 53, 74,126,230,227, + 50, 37,120,101, 6, 8,250, 60, 11, 63,187,252,100, 7, 40,111,179,177,142, 72, 93, 42,107,147,167,192,114,243,233, 19, 81,159, + 16, 74,221,164,230,131,222,241,253,182,227,103,155, 54,237,167,102, 11, 62,139,110,168, 36, 49,122,173, 43, 32, 67, 66,194, 83, +164,239,243,216, 68,208, 35,131, 70,184, 6,169, 42,148, 23,168,222, 18,101,224,181,217, 41,199,166, 96, 50, 27, 99,180, 68,150, + 26, 85,106, 34,130,162, 46, 89, 44,150,232,141, 69, 7,129, 84,105,223,248,182, 71, 40,129,170, 53, 69, 81, 50, 50, 37,149, 48, + 8,161,185,117,231, 6,245,193, 24,115, 56, 70, 24,141, 18, 26,239, 34,182,115,200,210, 16,188,199,197, 64, 81, 26, 90, 31,104, +251,150,117,132,214,148, 52,192,168, 52,188,183,110, 8, 50, 18, 11,147,206,139,201, 24, 84,129,240, 1,185,234, 17,217, 65, 55, +239, 32,212,245,167, 70, 37,136,223,222,103, 72,191,227, 65,150, 5,210, 8,164, 18, 72,145,212, 48,165,247, 79,183,225,247, 43, +246,253, 79, 47,232,172,227,114,221,176, 88,246,196,182,227, 81,140,252,198,116,204,161, 54, 76,234, 9, 0,239,180, 27, 46, 92, +199,199,125,207, 54, 6,122, 17,113, 66,195,225, 12, 38, 35,226,100, 2,179, 89,218, 71,171, 38,105, 30, 92, 44,211, 26, 57, 63, + 75,126, 20, 34,209, 21, 27,160,150,142,185,210,180,206,114,101, 59,254,106,181, 77,123,161,168,185, 51,154, 50,146,138, 50, 6, + 94,158,140,152, 40, 73, 89, 40,188,130, 94, 40, 62,180, 14, 87,150,212,166,194, 17, 25,153,146, 55,191,240, 50, 7,211, 17,109, + 31, 48, 72,182, 54, 34,162, 68, 19,249,229,250, 42, 61,119, 81,114,235,228, 16,163, 10,122, 4,239, 93, 93,225,151,103,153, 97, + 16,210,243,219,236, 36, 24,158,156,207, 39,227, 33,164,166,233,123,126,218,123, 94,174, 36, 70, 68,122, 31,232,188,231,157,126, +195, 79, 54, 61, 27,239,145,217,151, 69,163, 16,165,160,245, 36,165, 65,145,217, 35, 82,165,241,168, 16,121,236, 41,114, 49,229, +159, 15, 42, 44,139, 84, 84, 85, 38,237,199,161, 91,250, 43, 42,251,199,131,186,148, 48, 58,132, 98,154,128, 14,163, 81, 86,184, +146,201,122,174,168, 18, 34,215, 84,169,202, 40,244,110, 46, 54,104,214,126, 30, 78,237, 63, 69, 48, 31, 14, 55,249, 12,125, 94, + 85,236, 29,230,164,139,116,115,204,183, 94,189,205,168, 30,209,181,129,186, 42, 80, 50,112, 88, 76,248,104,181, 96,219,111, 81, + 50,166, 24, 88, 40,162, 86,200,202, 32,164, 76,168, 73, 31, 97,217, 38, 95,246,197, 26,150,217,159,125, 86,167,235, 54,174, 48, + 38,205,147,173,247,248, 0, 27,239,211,225,237, 61,172,206, 63,123, 53,166,115, 23, 37,184, 93, 94, 39,217,179,161, 53,105, 30, + 99, 76,230, 71,154, 28,108,217,161, 57, 7,224,154,209,121, 54,170,211, 74, 68, 67,200,153,234,224,152, 23, 99,170,160, 66, 76, +139, 63,100, 10,214, 0,138, 51, 58,183,189, 51, 35, 32,100,107, 77, 93,236,230,251, 42,238,130,103,148, 89,191, 63,183,166, 93, + 82,251,162,235, 97,181,133,208,179,145,154,227,233,148,195,106,204,108, 58,197,123, 79, 89, 22, 40, 41, 24, 79, 38, 56,107, 9, +193, 98,187,158,178, 40, 8, 42,178,106,186,244, 6, 93, 72, 45,238,190,123,254,104,199,251,188, 49, 34, 96,114, 82,147,121,236, + 25,131, 16,131, 39,202,152,198,219, 49,210,245, 14, 39, 99, 50,112,241, 17, 27, 28,141, 15, 76,180, 98,219, 88, 10,163,114, 52, +207,231, 68, 8, 59,228,255,208,245,232,236, 30, 74, 63, 38, 0,159,103, 39, 60, 33,194, 39,239,157,231, 5,245,199, 70, 42, 21, +220, 60, 74,201,247,168,230,141, 73,193,177, 54,212, 81,112,164, 21, 55,100,224, 98,185,250,228,181, 39,196,142, 2, 26, 99,154, +237,111, 59, 88, 52,159, 92,233,239,239,205,174,227,170,141, 60, 10,145,141,202,215,223,147,170, 32,187,190,166,179, 37,212,176, + 73, 65,222,107,132,235,147, 0, 77,238,128,136, 40, 17, 42, 38,122,155, 8,200,114,130,244, 61, 50, 68,214,209,115,103, 82,113, + 84,205, 24, 41,141, 86, 18,169, 20, 33, 6,212,164,196, 90, 79, 64, 96, 53,244, 23, 43,100,231, 8,173, 69,212, 6, 57, 41,137, +214, 35,141,166,156,212,140,203, 17,243,217,148,234,116,134,158, 84,168,113,133,170, 12,193, 6, 90,235, 16,133,196,134, 64, 80, +146, 32, 37,141,247, 4, 33,184, 10, 30,163, 20,235,174,163, 51, 6,173, 43,222, 58, 57,230,230,184,230,168, 54,220, 28, 25,254, +139,219,183,248,175, 95,191,203, 91,167, 35,254,106,213, 34, 93, 64, 6,119, 29,204,245,240,213,104,180, 82,104, 37, 51,222, 80, +160,188, 71,121, 80, 74,163, 42,185, 75, 4, 4, 40, 41,144, 49, 33,224,229, 94,235,254,233,106, 93,167, 22,122, 78,110, 35,145, +216,103,157,254,117,199,182,138, 8,111, 57,179, 13, 87, 81,240,113,223,114,207,182,108,172,229,178,105,137, 66, 98, 51, 59, 70, +214, 21, 98, 52, 34,102,103, 63, 70, 21, 84, 21,163,233, 4,187,216,100, 91,209,144, 40, 89,139, 45,244, 61,247, 31, 92,242,221, +143, 30,112,213, 47,249,139, 95, 62,130, 15, 62,204,235,106,205,202, 54, 84,125,143,176, 13, 69,136,204,140,194,134,192,186,109, +249,225,229,154,141,212,248, 24,145,198, 32, 84,193, 89,215,113,103,114,200,205,185,193, 89,199, 98,213,177,117,160,181,132, 62, +242, 96,253,136,237,102, 11, 77,195,225,193, 17, 33, 70,186,190,227,131, 95,188, 11,155,101, 46, 90, 51, 8, 85,239,241,204,159, +220, 87, 33,183,203,183, 14,175, 4,127,223,118,252,223,151, 43,222,110, 59,254,118,189,225,199,139,150, 77, 76,116,213, 66,194, + 76,107,186, 24,136, 66, 38,207,166, 97,236, 27, 19,173,247,200, 20,180, 18, 94, 61,152,112, 37, 76, 22,235, 82, 59, 9,229,167, +138,184, 12, 52,237,243,226, 16,207,176,133,125,110,251, 93,235,164, 62, 53, 59, 76,243,218,168,178,218, 85, 1,151,151, 80, 5, +104, 87, 80, 78,210, 28,216,100,126,162,201,237,216, 65,217,203,185,127,222, 10,125, 95,201,108, 16, 81, 25,254,237,220,222, 91, +204, 78, 56, 58,253,205,203,211, 81,166, 77, 70,170, 66, 98, 10, 77,111, 35,101,110, 87, 42, 4,165, 0,105,210,251,178, 22, 98, + 70,236,247,214,165, 96,212,183,169,165,178,204,193,112, 86,229, 89, 82,170, 88, 61, 17,105, 10, 68, 76, 7,100, 41, 3,157,144, +159, 13, 16,247, 36,128,201,183, 32,170, 76, 83, 11, 59,174, 56,164,255, 43,178,232,193, 53, 90, 61, 47, 6,159, 91,244,251, 90, +223,229, 36,161,229,251, 12, 98, 11,213,110,132, 50,140, 86,182,171,180, 97,125,174,194,237,240,213,237, 84,232,174,171,203,225, +189,245,233,185, 6,235,207,184, 55,103,133,221, 8, 71,230,182,179,203, 86,179,155,158, 48, 25, 97, 2,196, 24,233,156,163, 42, + 43,132,148,232, 34, 85, 71,169, 59, 22,249,222,131,247,248,218,233,109,198,198, 80,158,206,233,174,214, 57, 97,202,175,223,254, + 10, 43,211,216,166,128, 14, 73,176,162,202,107,196,231,235, 84, 25,176, 73, 60,100, 8,202,222,122,218, 24,169, 60,120, 25, 48, + 14,214, 46, 80,105, 65,231, 82,160,170, 76,106, 26,116, 42,111, 82,163,119,216,145, 65,203,125, 16,224, 24, 2,163, 54,169,253, +238,229, 39,143,175,246,247,214,222, 82,127,172,139, 51,159, 51,159,212,152,217,136, 27, 82, 49, 51, 5, 91, 23, 49, 37,168,224, +241,189,228,213,227, 99,222,221,222,255,228,231, 90,183, 48,233, 82,162,164,115,199,174, 72,157,201, 79,189, 55, 71, 85, 74, 96, +203, 92,150, 78,138,212,241, 58,157,165, 91,112,113,158, 76,101, 84,149, 70, 40,195, 45, 42, 52,194,107, 34, 14,130, 33, 42,155, +243, 66, 75, 12, 37,193,247,248,178,198,105,133,125,180,228,127,253,209, 15, 24, 71,193,188,252, 58, 82, 41, 60,130,114, 84, 16, +123,143,152,214, 8, 31, 88,158,175,112,210,114,255,195,123,140,100,228,120,118,202,232,116,142, 26,151, 72,153,199, 2, 35, 65, + 57, 31, 35, 39, 73, 57,113, 16, 67, 9, 66, 18,163,192, 75, 73, 52,208,228,110,148,170, 20,155,117,147,192,103,120,212,168,100, + 46, 13, 55,162,163,139,145, 98, 58,227,197,245,134, 66, 27,254,112, 62,162, 38, 80, 86, 83,126,183,151,124,247, 23, 31, 49, 61, +158,208, 54, 13,210, 6,102, 64,211, 89,164,117, 72,231, 17,131,135,183,183,215,103, 91, 52,250, 41,206,122, 28,130,180,123,188, + 34,223, 63,102, 2, 26,177,223,226,181,225,122, 1,197, 46,161,191,127,252,119, 11,126, 60,159,115,251,246, 41,107,161,185, 49, +155,242,113,150, 22,142, 49,178,237, 60,197,184,192,201,196,124,153,148, 21,109, 76,235,254,173,219, 55,121, 57,118,244, 93, 79, +123, 52,226, 7, 77,195,253,143,174,146,184,141,112,176,190,202,186, 74,129,183,239,127,176, 91, 35, 75,141,248,210,239,242,202, +228,144, 27, 85, 5, 97,195,213,102,201, 61, 21,144, 82, 17,130,231,170,233, 81,170, 96, 90,214, 9, 15,101, 45,181,144,108, 62, +190,207,189,197, 21,181, 52, 92,184,192,228,245, 87,137,165,230,206, 75,183,248,250,242, 85,254,207,243, 5,156,159,241,227,255, +231,175,119,103, 90,183,217,139, 25,123, 4,132, 95,245,209,245, 96, 2, 92, 56, 88,151, 48,174,185, 88,101,141,249,124, 78,170, + 73,141,138,129,149, 11,140, 74,205,186,203, 12,161,222,131,134, 63,157, 86,220,136,145, 57, 0, 19,188, 13,124,124, 56,227,127, +218, 58,220,162, 77,137,198,106, 5,182,223,141, 81,202, 34,157, 83,195,248,146,140,103,178,242,217,251,255,169,160, 62,170,161, + 58, 74, 30,211,202, 64,219, 38,190, 92,211,193,252, 16,232,147,137, 70,183,222,205,212, 11,189,155,185,199,161,141,246,252,172, +125,244,123,191,201,246, 47,255,230,159,190, 82,223, 63, 68,158, 2, 20,237, 81, 70,100, 62,200, 85,207,189,143, 23,124,243,238, +150, 48, 58,194,148, 6,169,161, 82, 37,127,241,179,159,112,241,241, 5, 24,216, 22,145, 73,126,188,170, 84, 88, 11, 91,151, 57, +199,235, 38, 85,231,203, 54, 7, 69,153, 40, 68, 70, 64,165,174, 27, 33,135,229, 4, 41, 21,198, 84,124,184,186,160, 27,120,202, +101,190,198,159,229,163,235, 83, 59, 38,132, 29,143,220,134,157,242, 16,213, 14,160,228,119,221,249,148,190,231,223,209, 58, 97, + 3,122,191,211,229,222,191,143,251, 12,135,144,175,239, 48,243,244,121,152,106,115, 0,241,215, 15,158,231,237,114,151, 64,120, +210,154,105,114,102, 41,121,188,109, 59, 24,124, 40,185, 75, 70, 10, 13, 10, 44, 29,202,104,182,237,134, 24,234,235, 68, 11, 2, + 90, 73, 74,173,248,202,233, 75,156,175,175,168,202,146,170, 50,116, 70, 38,228,109, 40,210,252,248, 87, 1,180, 29, 36,162,249, + 54,137, 60, 12,243,238,125,205,250,152,223,155,221,105, 11, 7, 45,104,101,100, 82, 21, 20,170, 96, 28, 60,155, 69,131, 34, 49, + 65,186,144, 94, 66, 73, 96,217,248, 29, 62, 33,207,223,177,185,171, 97, 51,142,161, 8, 89, 53, 46,139, 79, 12,207,253,105,242, + 98,247,236,237, 60,159,106,166, 85,133, 50, 21, 7,165,129, 24,152, 25, 77, 99,123,250,206,115, 96, 52,141,240,105, 15,111, 63, +197,250,243,238,154,198,132, 54, 41,153,103,245,233,246,165,219, 75,178,182, 93,186, 56,190, 72,227,142, 16,161,236,161,154,130, +111, 82,133, 46,202,204,166,113, 59,140,134, 15, 48, 4,116, 61, 38,244, 27,194,168,194,175, 86,120, 52, 78, 68,172,208,172, 31, + 93,241,243,135,239,115,123,118, 3, 93, 24,154,222, 49, 37, 75, 21,228, 60,164, 45, 4,155, 94,115,142, 35,108,183,196,139,143, +185,249,209,132, 55, 94,124,153,233,139, 39, 40,173,209,227, 26, 66, 68, 42,149, 26, 43, 14, 92,227,104,215, 45, 91,235,176, 26, +202, 66, 16, 85, 66,199,111,108,160,169, 10,150, 33,208,136, 72, 20,130, 3,231, 56,247, 18,175, 21,119,170,130,143,199, 83,140, +243,216, 58,141,227,206,163,230, 91, 95, 62,228,171, 95,145,184,109,131,116, 61, 70,194,213,242,146,166,219, 98,131,231,195,135, + 87, 64,199,197,253, 13,162,185,132, 62, 57,183, 69,155, 58,165,241, 58,168,167,196, 39,118,253, 83,193, 60, 15,161,174,191, 62, + 89,185,139,189,200,112, 61,105, 90, 44,184,191, 88, 16,181,230, 74,215, 48,170,146,217, 75, 85, 18,181,162,111, 96, 52, 29,131, + 82,108,130,165, 22, 37, 55,149,228, 75, 70, 50,215, 71,120,181,165, 24, 31,160, 23,103,220,111,129, 81,155, 40, 99,155, 54, 3, + 65,247,248,235,166,128,187, 95,229, 63,253,218,183,153,207,231,244,155, 5,203,205, 61,188, 92,114,149,215,230,214,245, 72,111, + 49, 42,233,183,107, 83,177, 14,150, 27, 66,112,203,119,204,154,128,213,134,211,114, 68, 37, 60, 23, 34,221,243,131,201,140, 98, + 60,162,211, 25,219,241,228,188,250,186,232,251,148, 31,214,237,144,241, 77,147,240, 42,166, 74,103,189, 41,241,139, 13,219, 74, + 49,171,107,154,222,161,180, 98,107, 19, 45,238,182,128,113,140,252, 70, 89,177,142,158,169,208,168,169,225,101, 4,219, 81,207, + 15, 15,231,124,112, 49, 78, 74,114, 15, 30, 36, 87, 78,178,169,206, 16, 83,226, 94,241,179,143,139,122, 6,142, 34,181,223,181, +134,233,113, 82,178,137,234, 90, 78, 83,169, 50, 89,244, 9, 1,109,200, 64, 22,153,103,234, 67,213, 88,164,202,103,208, 7,127, + 94,251,240,206,171,124,251, 43, 95,229,189, 77, 3, 87,151,255,116, 65,125, 64, 85, 15,179,244, 33,184,239, 43,166, 41,185,163, +115, 9,153,130,203,166,229, 29,122, 94,157, 78,136, 81,210,181, 29,111,255,226, 29,126,252,224, 10,187,186,202, 66,254, 10, 31, + 34,227,194, 16,137, 88, 1,190,115,176,202, 38, 23, 93,214, 27,150, 89, 29,107, 82, 66, 57, 74,149, 8,145,233,120,198,124, 50, + 69,106,147,148,196,165,100,217,181, 9, 29,127,181,253,124,238,107,215,109,238, 28,177,245,158, 71,184,207,130, 47, 3, 86, 77, +100, 69,181,125,183,175, 50,189,182, 84,121,229,175,214,165,164, 46,228,170,178, 24, 2,118, 76,156, 80,223,100, 26,154, 76,179, +247,202,236,105, 20,228,150,187, 44, 51, 71, 62,209,213,112, 54,137,233, 12,226, 43, 79,182,139, 6,101,169,129,250, 54,206,244, +150,201,152,121, 85, 34,163,192,135,128, 68, 34,181, 34,134, 64,239, 59,218, 77,139,139,142, 77,179,198,147, 90,218,222, 90, 86, +157, 77,247,216,246,201,221,238, 19, 89, 24, 46, 37, 98,131, 36,164,139,169, 21, 63, 84,237, 66,237, 54,241, 32,149,155, 53, 34, + 14,170, 26, 41, 2, 94, 40,182, 77, 79, 97, 36,133,140, 4, 23, 9, 33, 34,181, 76,222, 53,144, 42,187, 65, 18, 86,134,157,170, +222,160,255,224,247,228, 98,241, 79,211, 14, 63,203,199,193,156,131,201,132,233,225,148, 88, 26,166,166,162, 84, 6, 71,146,190, +221,246, 22,105, 91, 54,219,150,197,249,226,233, 32, 28,158, 16, 74, 24,149,112,122,196, 27, 71, 83,190,121, 56,226, 55,142,198, + 28,141, 21,239, 63, 92,127,242,218,173,138,148, 20, 93, 91, 35,103, 63,133, 81,157,128,141,245,140, 59, 35, 67, 24,149,244,103, +139,204,208,200, 30,240, 54,181,151, 68,200, 95,163, 76,237,120,225, 17, 65, 35,156, 71, 84, 10,164, 65,132,152,184, 9,126,203, +253, 71,107,142,102,154, 89, 57, 71, 8, 77, 23, 97,211, 59, 54,109,207,202, 59,182,214,241,225,114, 69,231, 45, 23,221,134,243, +126,197, 7,221,134,179,229, 57,114,213, 50, 63, 60,130, 16, 80,198, 16, 92, 36,246, 14,187,234,105,206,214,124,116,181,102, 25, + 60,157,136, 56,163,176, 34,242,208, 71,186, 74,211, 6,216, 32,208,133, 65,121,143, 49, 10, 35, 36,174, 44,145,198,160,165, 0, + 99, 88,233,130, 43,235,185, 50, 5, 97, 84, 35,141,161,200, 62,241,149,169, 40,117,193, 68, 26,222, 28,207,248,198,201, 93,190, +124,248, 2,111,222,122,129, 77, 1,237, 38, 98,138,164,136,102, 32,201, 39, 3,134,128,182, 14, 29,194,117,251, 62,181,230,143, +145, 52,215, 36, 24,129,124,110,102, 24,159, 53,207, 13, 1, 92, 79,108,182, 9,255,208,108,210,218,213, 26,155,233,204, 35, 83, + 49, 82,145,215, 71,154, 3, 31, 24,107,133,209,154,166,111, 56,174, 70, 92,132,192, 69, 36,157,139, 85,153,214,131, 23,136, 66, + 38,206,251,248,132, 63,248,189,127,203, 87,191,252, 26,135, 71, 53,101,169,105,214, 45, 62,108, 40,138, 18, 79,214,112,176, 22, +225,114, 97, 28, 4, 50, 68, 42, 97, 57,213,201,120,201,147,204,149,238, 59, 65, 35, 53,171,117,203,249,213,130,127, 60,255,152, +248,224,193,174,120,121,222,200,234,179,152,166,120,159, 37,178, 51, 53,181, 27, 24, 47,137,151,222,117, 22, 39, 36, 86, 12,179, + 56,207, 23, 75,201,151,181,196, 10,193, 76, 40, 90,173, 56,208, 53,125, 81, 82, 85, 99,222, 67, 51,153,207, 88, 72, 9, 71, 7, + 80,141,211, 94,240, 54, 83,222,114,102, 90,100,145,156,103,188, 31,241, 84, 80,175, 10, 56,190,157,104, 62, 38, 75, 21, 6,153, +230, 45, 49, 5,183,228,103, 46, 97,187,200,115, 72,151, 90,243, 93, 6,207, 13, 92,220,231,125, 44, 46,121,239, 71, 63,250,167, + 13,232,195,205,209,250,241,153,250, 48,155,188,238, 61,101, 85, 53,113,141,100,130,206,226, 47, 87,220,211,150,191,254,135, 95, +240,183,127,253, 99,126,254,227,159, 96, 31,158,239,184,244, 64, 49,210, 20, 82, 18,144,200, 8,125,219,167, 42,207,219, 4,136, +155,212, 41,200, 21, 89,216, 63, 59, 30,129,228,100,122, 68, 81, 84, 8, 4,101, 89, 96,116,193,217,253,251,112,177, 72, 1,240, +243, 28,222,194,103,119, 49,177, 83,105, 27, 90,240,106, 79,143,125, 0,194,133,152,240, 15,131,216, 79,200, 82,132,195,124,215, +186,157, 25,129,218, 75, 16,100,166,163,233,220, 46, 14,121,150, 62, 0,232,134, 64,231,243,235, 16, 62,243,230,227, 78, 72,195, +125,194,251,147,185, 26, 22, 25,239,160, 18, 0,209,150,138,227,122,130,136, 26, 79,199,166,109, 82,238, 98, 35, 77,219,178,217, +172,177,193, 33,240, 92,110, 55,188,191, 88,167, 74,176,239, 18, 72, 39,186, 79, 47,134,228,178,125,218, 40,163,197, 69, 62,230, + 6,231,167, 33, 25, 9,225,218,246, 87,213,146, 90,106,154,174, 3,231,115, 87, 57,105,110,143,181,100,166, 4, 90, 70,100, 16, +180,249,255, 99,231,114,245,151,199, 84, 33,215, 80, 42,175, 79,216, 73, 38,127,222,160, 62,158, 96,199, 37, 98, 54,162, 86, 21, + 86, 8,140, 20,120,169,216, 4, 16,209,211,187,192,207,207,182,233, 16,178,185,179, 85,229,222, 94,153,173, 34, 7, 21,201,227, + 99,222, 60, 61,226,219, 55, 78,121,101,126,204,216,148,220,170,107,102, 53,188,251,209,197, 39, 84, 54,164,174,132,202, 35,169, + 40, 83,167,108, 54, 70, 30, 28,240, 95,221, 56,230, 55, 15, 79,248,114,173,248, 94,211, 36, 34,189, 82, 89,193, 81,164, 2, 66, + 6, 68,187, 77, 24, 13,101, 32,170,164,112,150, 41,154, 34, 88,132,243,105, 47,201,154,216, 53,252,227,213,138,218,120, 26, 7, + 54,106, 58, 34,143,250,158,171,174,229,106,211,224, 4, 60, 90, 47, 88,249,158, 38, 10,164,136, 4,169, 57,239,183, 44,206, 23, +212, 86, 34, 99,164,191, 76,250,237,205,217,138,247, 63,126,200, 59,155, 5, 75, 28,189, 49, 44, 66,100, 29, 5,157,128, 94, 9, +162,146,184, 66, 83, 35, 40,181,102,235, 29,141,143,156, 26,205, 66, 42, 52, 80, 43,201,149, 11, 89, 96, 69, 35,141,162, 54,138, +224, 3,227,162, 32, 56,199, 68,192,239, 31,156,242,214,209, 13,222, 60, 58,230,246,244,128,147,209,156, 87, 79, 95,228,214,205, + 35,198, 55, 15,185,156, 76, 49, 40,116, 52,152,222,163, 99, 72,254, 34, 90,161,133, 64, 27,205, 75,191,255, 91,252,214,191,250, + 54,239,255,240,251,123,192,185,180,215,196,175,110,245, 60,255,140,181,110, 39,197,218, 88,124,219,211, 41,193, 68, 41, 14,162, +229, 11,227, 57, 70, 74,182, 93,195, 68,107,214,193,113,223, 59,206,107, 67,172,139,164, 89, 48,159,194,180, 66,212, 19,168,102, +188,245,141,223,226,213,147, 91,220,185,123,152,140,209, 10,205,118,177, 96,219, 45,209,122, 76,101, 42,180, 20,216,222,226,131, +165, 42,167, 84,101,133, 86,130,117,111,185,108, 87, 64,160, 87, 37,231,162,228,222, 38,242,254,217, 5, 15,175, 46, 88,244, 29, + 31,174,175,114,155,198,254,106, 26,230,103,217,110, 58,251, 99, 12,194, 82,248,157,163,102, 22,152, 18, 34,123, 92,100,253,144, +127,165, 34,175,104, 77,140,130, 40, 37, 94,107,130, 50,196,162, 32, 42,131,169,107,110,205, 14,121,235,240,152, 87, 38, 35,190, +122, 56, 69,142, 20,139,160,240,155, 62,117, 60, 7,224,111,255,124,234,201,112,175,119,189,106,153,196,111, 0, 66,103,243, 6, + 79, 98, 13, 97,177,222,189,129, 34,207, 9,201,213,156, 41,118,200,221,255,216, 31,215, 51,245,103,180,224,187,103,252,110, 12, +172,191,255,206,227,200,104,178, 60,108,159, 17,253, 66,210,135,128, 18,146,198,237,169,129, 13,207, 17,114,160, 51, 25,193,108, +179,222,112,173, 88,116, 45,186, 54,140,138, 10, 98,224,193,197, 85,162,189,225, 62, 63,101,201,229, 85, 88,200, 93,111, 45,228, + 27, 24,179,165,223,208,146, 31, 42,244,161,242,206,146,181,248, 61,109,233,125,253,230, 32,119,191, 59, 84,225,158, 29, 94,162, +207,143,207, 48, 47,222,123,158,235, 36, 74, 62,221,106,255, 85,239,229,218,180, 40,166, 4, 98,185,101, 89,151,124,108,206,184, + 53,191, 65,187,134, 66, 43, 30,245, 45,211,106, 66,227,182,172,109, 75,239, 90,206,183,107, 70, 90,103, 11,183,161, 99, 96,159, +125, 94,253,230, 87,249,131, 55,190,194,229,250,146,159,252,217,159,239, 81,169,100,122,238,206, 67,185,135, 11, 40,196,174,163, +240,228,230, 89, 54,220, 15, 29, 69,244,212, 82, 97, 2,212, 49,210, 92,231, 93,158,145, 16,140,138,200,184, 80,124,180,241,232, +218,208, 53, 57,217, 17,185, 67,224,179, 32, 77, 17,118,116, 63,177, 55,139,127,214,136,233, 73, 4,212,254,124, 48, 4, 38, 99, +131, 17,146, 7,222, 18, 28, 76,235,154, 70, 72, 86, 4,106,105, 80,101, 65,121,235,128,110, 93, 37,112,226,102,149,124, 14,164, + 78,235,160,205,143,183,222,130,214,188, 54,159,112, 48,158,227,128,201,104, 12, 69,203,201,244, 34,181,205, 99,183,163, 48,198, +240,196,117,119,160, 38, 9,135, 51,170,210, 11,108,151, 32,111,242, 71,163, 41, 47, 31,222,192, 16, 48,245,152,255,252,141, 13, +255,253,213, 50,177, 71,132, 72,201,114,151,169,137,179, 99,104, 22, 73,153, 76, 8, 98,244,196, 32, 8, 69,133,167, 69,248, 2, +161,122,112, 13, 81, 58,194,106,193,255,248,195, 31,243,199, 95,182,156,110,206, 56, 60,184, 73,208,154, 77,112, 8, 17,136,206, +177,240,142,166,247, 28, 25,195, 88,150,200, 24,233, 8,220,243, 27,126,242,238,247,184,251,209,156,187,245, 1, 49, 4,150, 93, +195,125,215,112,105, 20,177,186, 69, 17, 60, 99, 20, 86, 66, 85, 8,172,139,168,210,224,189, 37,170, 4,232,155,234,130, 96, 91, +238,175,215, 28, 72,201, 74,105, 46,235,146, 19, 33,216,216, 64,239, 60,194, 24, 92,140,152, 16, 57, 40, 12,213,100,196, 29, 51, +231,166,214,148,194, 80, 0,117, 41, 49, 82, 48, 81,130,155,197,203,252, 54,183,249,195, 91, 75,214,205, 10,239, 35,139,230,146, +224,123,218,118,203,119,239,159,241,198,180, 4, 34,127,247,203, 11, 52, 63,161,218, 76,177,199, 22,233, 92,166,188, 61,223,140, + 37, 60,177,172,196, 19, 95,175, 63,182,109,250,220, 20,240,240,130, 7, 55,142,240,243, 17,191,109, 74,108, 76,182,197, 91, 31, +104, 66, 96,163, 5,161, 39, 37,100,163, 2,209,247,144,145,245, 71,102,202,203,167,183,208,133,164,109, 91,148, 80,172, 87,107, + 58,219, 98,132,161,210, 26, 99, 74, 84, 47,217,148, 27,156,243,116,182,167, 46, 43,140, 48, 72, 25,120,180,241,172,195,150, 35, +113,147, 27,167,167,220,169, 74, 46,214, 91,254,254,254, 61,126,182,188, 72,227,227, 27,135,105, 45, 62, 20,136,216, 37,252,192, +147, 45,248,231,181,226,181,126,186,213,237,246,168,220,195, 57,167,117, 2, 76, 11, 11,141,134,106,192, 12,165, 98,238,102, 93, + 80,133, 12,141, 39,209,249,188, 16,148, 66, 33, 67, 90,189, 18, 0, 0, 32, 0, 73, 68, 65, 84, 76,133, 82, 5, 5,146,178,170, + 56, 86, 5, 86,151,252,142, 80,188, 57,170,249, 15,135, 35, 30, 60,218,164, 89,123,187,218,141, 8,247,164,154,227,115,103,234, +151,103,132, 91, 47, 82, 24, 67,143, 73,104, 93, 35, 9,189, 75,122,191,171, 85,170, 78,135, 57,106,116,185,117, 25, 62,191,201, +202, 63, 53, 88,238,211,102,161, 58,255, 78,208, 79,247,158,134,116,103, 82, 82,206, 43, 42, 85, 64,244,196,172, 42,182,123,140, +204,113, 28, 2,251, 32,206, 63,184,132, 69, 88,111,215, 84,198,176,217, 88,148,134, 69,179,205,129,242,215,189, 96, 46, 43,142, + 13, 1, 54, 87, 70,131, 81,192,254,195, 15,115,221, 97, 49, 63,121,173,202, 98, 15, 13, 63,152,222,228,191,177,125, 62,144,217, + 89,177,178,159, 48,236, 61,135,149, 59,128,218, 39, 9,165, 60,121,239, 68,230,148,123,145, 64,128, 77,199,163,237, 22,207,199, + 76,203, 25,203, 54, 80, 21, 53,109,215,115,222,174, 9,177,231,188,217,114,119, 58,231, 39,239,190,151,109, 11,179, 71,184,205, + 9,166,206, 55,122,160,245, 45,155, 20,208,207, 30, 60,254,220,165,220,157,106,206,166,214,112,204,116, 1,235,118,110,106, 82, +160,240,148, 74,227,109,100,162,253,181, 56,247,180,132, 62, 68, 70, 67,135, 72, 64,141,192, 17, 49, 72, 14,203,200, 85,227, 41, + 10, 65,223,199,107,145,149,235,192,222,231, 36,194, 15,236, 4,118,216,137,200,227,192, 69,246,112, 18,143, 25,170,164,100,243, +162,117, 92, 85, 61,166,168,120,179, 26,177,245,129,121,161,184, 93, 22, 80,107,126,122,214,225,166,227, 20, 56,199, 53, 52,147, +212,105, 82,185,251,118,152,125,158,111, 30, 2,240,161, 11,156,122,199,188, 30,177,142, 9, 85,254,115, 49,130,187, 55,179, 64, + 71,158,151,219, 38,113,112,135, 57,189,206, 20,216, 81,150, 9,181, 29,152, 41,244,158, 18, 69,235, 61,186, 44,185,180, 61,247, +228, 56, 29,192,219,188,222,218, 85,214, 84,128,232, 54, 8, 89, 37,198, 9,128,169, 9,177,133,190, 69,148, 18,175, 29,201,203, +203, 19,131, 33, 72,139,235, 44,127,254,131,159, 80, 77,198,124,245,246, 1, 7,163, 41,211,201, 49, 94, 73,180,237,152, 22,134, + 64, 75,140, 21, 94,168,164, 18, 38, 53,141,235, 89,232,130,127,247,241, 47,105,253, 59,220, 85,138,169, 72, 9,238,120, 60, 71, + 53, 51,162,168, 17, 46, 80, 58,207,184, 44,105,125,164, 12,142, 66, 10,164,139,212, 74, 96,163,134,178, 64,245, 13,139,222,114, + 82, 4,218,135, 87, 60, 82, 42,205,134, 77,133,236,122,122,165, 57,174, 12,115,231, 57, 42, 74,102,133,100, 60,170,208, 94, 16, + 60,232, 40, 24,213, 6, 23, 3, 39, 58,210,183,150, 23,102, 71,248,241,148,109,223,162, 14,142,216,174, 86,152, 99,205,159,190, + 96, 9,182,131, 16,249,227,155, 11,198,122,204, 95,254, 73,228, 7,139, 43,238,125,188, 66,108,214,233,108,216,174,247,230,241, + 79,207,101, 3,207,159,213, 62,133,239,161,135, 51,203,217,162,228, 63,224,120,125, 62,101, 90, 86, 52, 4, 62, 34,226,115,130, + 47,149, 36, 56,203,100, 50, 99,235, 35, 7,186,228,141,201, 41,135, 71,167,104, 96,185,106,104,150,139,196, 32,235,122, 92,238, +222,105, 81, 32, 10,197,184,168,177, 46,205,227, 93, 8, 24, 85, 50, 42, 39,156,140,239, 48, 26,157, 82,141,231, 28,206, 11,188, +240, 28, 90, 5,116,185,109, 77,106,251, 31, 29,164,222,253,213, 26,161,214,169, 3,173,158, 0,166,150, 69, 6,196, 13, 2, 90, +123, 1,127,112, 68, 30, 18,237, 46, 51,120,186, 39,227, 79, 46,150,108,159,215,114, 65,215, 58,238,107, 79, 21,224, 5, 41,177, + 58,160,133,196, 75,197, 10, 65, 39, 13,133, 41,241, 66, 82, 32, 40, 39, 19,188,210,160, 75,250,224,185,121,224,121, 16, 11, 68, +223,130, 60, 76,230, 98, 0, 23, 23,169, 8,242, 22, 97,219,103,204,212,173,131,209, 4, 68,106,213, 17, 21,170, 40, 18,191,174, +207,173,151,245, 58,101,245, 42, 62,157,195,133,248,207, 75, 99,251,181,231,240,123,222,225,215, 1, 43,238, 60,164,111, 30,242, +214,171, 55,185,115,112,192, 23, 79, 79, 56, 28,141,185,236, 27,182,157, 77,128,143,109,159, 5, 11,212,227, 8, 20,124,214, 36, +214,215,109,254,109,116,108, 93,199,102,211, 18,109, 6,140,100, 32,196,231, 31, 57,228, 3,221,100,196,110,200, 96,110, 53,112, + 30,213,238,103, 3, 53,237,121, 20, 8,145,233,105,206, 63,238,154,229,195, 78,100,199,231,121,167,217,227, 92,135, 12,126,203, +163,154,235,118,250, 32,123,250,228,122, 24,168,135,207, 90, 39, 3, 22,194,199, 68,225,216,108,177,214,177,180,158,179,237,150, +243,109,195,131,245,146,181,107,121,240,209, 25,139,179, 75,250,224, 57,251,229,199,169, 37,232, 92,162,202,181,155,235, 0,124, +109,247, 58, 0,250,154, 13,103,103,107,184,119,111,119, 45,116, 86,212, 27,212,239,204, 96,137, 40, 82,203, 46, 88, 16,146,209, + 48,197,136, 73, 30, 82, 33,169,164, 36, 34,152, 86,130,109,155, 80,240,133, 16, 76,132,160, 18,146, 82, 72, 60,176, 33, 85, 99, + 83, 69,146,161, 53,130,198,250, 93, 22, 25,124,222, 83,236, 84,255,180,120,220,229,110, 96, 16, 12,159, 3,102,226, 73,183, 52, + 37,161,168,137,227, 26,111, 12, 95, 51,154,219,147,146, 73, 97,152, 20, 37,117,140, 92,161, 40,203,154,149, 22, 68,163, 96, 92, +241,173,249,156,201,168,230,168,212, 76,235,154,182, 52,248, 34,105,183, 63, 16, 2,107,198,212,178,100,105, 3, 15,125,228, 47, +122,155, 70, 21,211, 58,181, 84,235, 42, 29,158, 78, 36, 60,133,218, 51,126, 10, 38,143, 97,178,147, 95,173,249,176,174, 56, 84, + 21,107,161,121,216, 88,254,175,197, 34, 21, 13,171, 77,154, 25,146, 57,189, 33, 37,146, 66,237,113,136, 67, 50,129, 17, 82,165, +100, 80,120,162,211,217,249, 44, 16,188, 38,120,135, 15, 2,219,247,124,240,104,193, 47, 30, 46,248,201,251, 31,227,101,203,173, +170, 96,109, 91, 42, 1, 54,122,148, 84, 68, 4, 93,102,106, 60,180, 45, 63,109, 59,250, 40,121, 20, 5, 11, 41,240, 81, 34, 70, + 35,182, 14, 54, 50, 73, 63,203, 82,179,234,193,107, 65,139,196,118, 62, 77, 25,250,192,185, 75,244,182, 90,105,214,174,165,107, + 90,138,174,165,245,142,105,215, 34,156,101, 29, 60, 68,207, 77, 34, 50, 6, 70,193,115,208, 5,198,198, 96,140, 65, 8,137, 48, +201, 22,212, 55, 29,218, 5, 74,173, 40,163,199, 40,201, 44, 66,129,224, 96, 52,166,234,123,102, 74,115,247,228, 46,135,229,132, +187, 7, 55,153,160,121,101, 60, 99, 90, 21,220, 60, 40, 57, 62,158,115,223,133,228,103, 97,178,194,227, 51,206,132,103,241,220, +159,213, 36, 18,251, 0,178,174,227,131,203, 53, 75, 21,249,229,178,225,103,109,203,125,235,120,100, 61,181, 73,254,244, 65, 42, + 74, 97,232,189,163, 42, 10, 14,202,212, 1,170,234,130,224, 60,190,183, 28, 11,149,196,124,164, 78,115,242,124, 22,117,237,150, +214,181, 52, 93,139,144,129, 82, 75,148,212,124,233,139, 95,225,173, 47,222,226,133, 91, 83,156, 11,184,182,101,187, 89,241,211, +243,143, 88,186,212,114, 23,190,231, 15,142,143,249,234,201,156,175,221, 60,226,167, 93,158,135,111, 87,215,227,190, 84, 88,100, +155,102, 23,174, 19,202,199,180, 33,158, 44,134,194,243,207,102, 49,140,214,250,164, 40,121,207, 59, 94, 19,138,211, 66, 97,133, +162,146,145,165, 52,108, 77,197,123,202, 96,131,167, 82, 5,163,202,224,156, 69, 41,201,170,107,153,148,117, 82,254, 35,208, 76, +103, 80, 23,188,122,122,147,171, 73,205, 23,111,223, 69, 31,205,217, 72, 13,162, 64, 68,123,125, 63, 51, 79, 93, 39,222,172, 46, +144,179, 41,135,147,138,173,239, 40,141,225,133,195, 9,203, 77,147, 14, 79,223,165,202, 98, 0, 81,197, 12, 78,250,255, 67,235, +253,179,130,235, 30, 75, 71,247,200, 33, 90,162,110, 28,242,133,211, 27, 28,141,166, 8,169, 41,141,161,150,134,251,143, 22,176, +220, 38, 47, 95,155, 91,167, 3, 69,141, 62, 27,151,144,218,153,209,239,108, 77, 93, 6,165, 53,109,250,217, 16,124,126,237,113, +131,218,155,205,202,157,189,168, 12,187,121, 59,159,208, 10, 31,244,248,133,222, 33, 83, 7,217,215,161,125,175,242,123,244, 46, + 3,231,220,238, 58, 10,118, 62,196, 3, 40,234, 73,127,119,153,219,250,195,235, 24,126,102,178,203, 92,161,211, 92, 74, 85,153, + 62, 37, 19, 86,227, 60, 39,145, 23, 87,208,116,116, 31,159,165, 86,236,106, 3,171,203,140,109,112, 41, 0,119, 93, 58,244,227, + 32,115,251, 68,192,235,250,116,223,246,175,133, 12, 9, 23, 50,188, 23,155,109, 78,251, 28, 60,124,234, 66, 89, 37,137, 54, 50, + 83, 17,163, 12, 70,169,132,237, 83,201, 9,111,170, 19, 8,178,212, 18,239, 2, 90, 68,180, 80,196,224, 57, 18,130, 86, 66, 25, + 21,133,132, 71,157,163,148, 18, 59,236, 33,177,135,141,136, 89,194,214,103, 45,247,225, 62, 12,238,130, 33,238, 2,250,112,178, + 74,145,240, 12,195,232, 99, 50,130,113,205,183,234,146,131,210, 80,233, 34,255,151, 32, 10,201,105, 85,112, 97, 3,189,209, 40, + 93,242, 95,158, 28,163, 11,195, 87,167, 51, 94,153,159,242,226,168,230,214,104,204, 5,130, 38,235,226,159,201,146,159, 8, 73, +135,226,163, 24,248,102,125,192,116, 52,162, 46,167, 44, 76,153, 42,241,186, 78, 96,199,241, 8, 14,143,146, 2,227,124, 14, 47, +156,192,205, 99, 56,152,229, 89,125, 2, 12,189,173, 75,254,161,115,188, 61,236,163,205, 50,119, 70,178,102,252,208,114, 50, 69, +178,162,214, 10, 38, 19, 68,111,179, 70, 70,204, 1, 29,136,150,232, 83,130, 27,133, 32, 72, 75,240, 17, 79,139,119, 61,190, 89, +225, 55, 13,143,174,122,230, 99,141, 11,142,149,247,105,164, 80,214,184, 24,233, 99,196, 70,199,207,187, 45,247,109,196,134, 72, + 48,154, 82, 87, 84, 85,137,143, 10, 39,116,214,132,143,108,162, 72,213,121,161,105,123,143,147, 2,219, 71, 2, 30, 25, 2, 50, + 6,150,192, 44, 8,108,179, 37, 10,137,246, 29,173,237,120,232,122,198,170,224,170,107,208, 8, 78,138,146,109,211,112, 56, 30, + 99,172,199,117,150,222,246,108,150, 13,205,106,139, 80, 18, 25, 60, 90,165,253,166,173, 69, 70, 40,164, 64,216,158,170, 44,153, +140, 38,200, 16, 41,116,137, 86, 9, 7, 84, 10,197,152,200,188,168,168, 75,195,237,113,197,237,155, 71,232,131, 25,231, 49,161, +182, 99, 84,136, 66, 94, 87,161,226, 57, 85,186,248,196, 66,195,179,184, 92,113,177,217,178,186,108,217,110,123,204,124, 76,107, +251,196,185, 23,176,117,142, 73, 61, 38,184, 4,110,156,152, 9,133,146,188, 60, 46,184, 83, 24,122, 23,121,233,240,128,224, 60, + 23,222, 99,148,192,123,143, 11, 61,235,229, 58,123, 68, 8,170,170,100, 92, 76,185,123,247, 5, 78,143,198,180,157,231,195, 15, + 47,120,255,253,123,188,255,224, 30,255,112,249,113, 94, 75,129,175,207, 15,249,198,108,202,171,227, 99, 94,153,158,240,218,164, +230,123,203, 62,117,142,252, 54,123, 64, 20, 41,150,177,199,126, 25,198,146,195,121,166, 63,155,197,184, 8, 33,159, 71, 1,235, + 3, 45, 34, 41,123, 35,248, 32, 70, 26,163, 88,203,130, 51, 93, 49, 47,106, 74, 4,194, 7,148,210,120, 31,168,180, 97,217,183, + 32,193, 41,205,157,162,224,119,142,143, 57,156,204,249, 55, 71, 55,184,115,114,131,215,166, 51, 78,111,221,228,157,135, 15, 96, + 60, 69,116,201, 5, 81,113,252,133,239, 48,174,160, 24,163,238,220,224,180,154,242,141,187, 47,115, 88, 87,220, 28,143, 9, 34, +208,201, 64, 95, 23, 41,131,185, 56,223,129,121, 2,255,178, 42,244,231, 5,245,129,214,165, 36, 20,134,151, 94,187,197, 23, 78, + 94, 68,171,132,188,157,212, 83,100,132, 43,183,101,251,224, 44,169,198, 57,118,252,112, 57,248,118,103,145, 27,225,179,169, 73, + 22,218,240, 54, 85,146, 49,236,132,250,127,173, 96,206, 14,196, 37,247, 42,235,152, 27,104, 49,235, 22,199,248,233, 28,240,100, +142, 20,131, 82, 30,113,231,164, 55, 84,249,170, 72,149,186,235, 51, 80,196,239,124,210, 7,245,180,103,129,188,134,128,222,239, +129,215,170, 34,211,229,246, 90, 96,186,206, 45,248,172,143, 44,115, 23,164,219,164,107,230,187, 4,136,178,118, 7, 26,177,109, + 6,251,181,105, 3, 41,185, 75, 52,158,236, 68, 8,241,244,181, 24, 50,114,138,236,247,154, 77,138, 6,160, 92,182,127, 36, 68, + 70, 70,210, 91,152,142, 36,129,192,204, 72,148, 74,192,163, 40, 4, 42, 70,148,143,140,149,202,183, 39, 82, 74,201, 50, 4, 70, + 8,150,206,225,124,224,164,212, 44, 93,192,134, 44, 19,123, 45,216,148, 49, 28,110, 24,223,200,148,104,239, 3,207, 76,110,209, +203,189,170,125,160,222,201,108,170,164, 10, 78,166, 5,191, 49, 29, 37,203, 16, 9, 82,168, 36,217, 47, 53, 49, 70,206,163,228, +202, 59,254, 85, 61, 97, 90,143, 57, 40, 19, 40, 73,232,164,175,239,164,100, 29, 4,107, 83,226,101,210,208,126,179, 26,241, 82, + 89,243, 70, 57,226,112, 82,112,219, 24,238, 78,102,220,119,158, 70,155, 20,124, 77,145,130,187, 34, 7,246, 57,212,211,164,164, + 86,142, 18,168,180, 30, 37, 64, 92, 81,165,170,222,231, 49,134,206,236,131,211, 35, 56,152,195,237, 91,240,210,203, 48, 31, 39, + 5,179, 81,137, 32,173, 53,209,219,244,183,109,159,174, 65, 93, 19,157, 79,183, 74, 65, 36, 16,100, 32,108,219,107, 58,151, 15, + 61,206, 74,222,221, 56,222,238, 44, 63, 95,116,160, 60,115, 9, 94, 68,214,221,134, 95,118, 45,127,189,233,112, 62,226,180,162, + 48, 5, 85,161, 83, 34,107, 84,178,142,168, 52,222, 90,130, 8, 20,186, 96,221,121,138, 66,225,251, 64,235, 2,227, 90, 33, 67, +228,188,235, 41,219, 22,215,111, 89,119, 29,135, 66, 18,251, 13,155,108,151,252,151,151, 11,180, 52, 88,223,177,218,180,148,165, +161, 82,154,198, 59,206,182, 91,214,235, 37,163,224, 88, 54, 43, 46, 23, 75,198, 69, 1,206, 82, 6,144, 74,161, 70,163,100, 56, + 37, 64, 27,131, 12, 1, 51, 30, 35, 11, 67,236, 44, 82, 72,124,215, 19,162, 67, 16,168, 99,228, 70, 85, 51,175, 43,230, 82,242, +165, 27,135,204, 71, 37,167, 39, 51, 62,242, 50,221, 39, 15, 20, 50, 25,233,236, 7,114, 83, 93, 43,159,137, 33, 41, 55, 89, 46, +251, 73,108,144,207, 50,196,182,199,159,111, 32,251, 35, 56, 27,136, 82, 19,157, 99,166, 21,117, 81, 35,108,195,235,199, 7,220, +172, 13,194,104,238,206, 70, 68, 41, 16,163, 49, 87,162,166, 52, 83, 80,138,182,185,226,170, 89,114,177,217, 18,133,199,132,228, +150,119,114,227,132,211,195,154, 66, 71,222,189,247, 49,255,221,223,253, 61,247,126,244, 54, 60,122,148,206,177,202,240,159,221, +188,201,216,140, 57, 24, 79,169, 71,147,164,237, 63, 86,188,127,209,164,115,121, 48,123, 26, 58,183, 66,166, 49,156,214,187,121, +249,224,255,190,223,225,251, 85,182,199, 60, 97,174, 19,225,172,135,191,223,182,172,140,230,255,232, 61, 27, 17,248,113,151,220, +222, 14,138, 2, 45, 37,198, 40, 20,146,222,247, 52,206, 18,131,165, 17,145, 62,104,222, 56, 56,228,203, 7, 71,188, 57, 59,225, +100, 50,225, 11,211, 25,186,158,224,123,199,139,119, 95,194, 23,176,157,207,241,219, 30,197,173,175,127,167,120,253, 53,126,251, +173,183,184,125,116,135, 47,156,188, 64,223, 59, 94, 56,189, 65, 64, 81, 98,120,245,228,148,113,169,120, 24,186, 68, 73,217, 54, +255,241,228, 96,127, 29, 16,221,116,156, 14,154,224, 30,159,167, 40, 9,163, 89, 82,207, 67,177, 80,130,163, 81,205,141,195, 91, + 40,101,232,251,150, 85,211,176,108, 59,150, 87,219,212,150, 85, 50, 85,121, 74,102, 26,160, 73, 65,170,168,118,104, 93,153,179, +187,144,171, 48,235, 19, 55, 58,248,207,247,250,149,206, 7,162,201,128, 46,191, 11,164, 82,114,109, 24, 48,160, 56, 62,109, 7, +101, 8,132,215, 78, 65, 50, 7, 16,151,186, 1, 34, 39, 38, 67, 75, 91,102,231, 62, 33,115, 64,205, 63,123, 86, 2,161,116,174, +162,195,238,112, 24,218,243, 67,139,182,172, 82, 21,237, 99,146, 53,141, 3,207,222,237, 56,243, 3, 72,103,176,253, 29,222,219, +190,225,201,190,205,235,245, 33, 19,158, 47, 97, 44,179,175,177,200,221,148,114,143, 22, 41,228,206,233, 45, 66,105, 20, 69, 5, + 93, 23, 81, 82, 33,133,160,146,208, 33,216,246, 9,253,174, 68,162, 25, 85, 34,153,236,180, 49, 80, 10,201,202, 5,106,145,230, +139, 23,214, 17,163,160,243,123,140,132,152,105,145,131, 85,163,202, 38, 61, 46,236,128,144,131,221,192,181,244,236, 94,151,201, +101, 33,160,152, 16,231, 91, 83,241,133, 81, 65, 97, 12, 18,129, 86, 26, 45, 21, 13,129, 82,105, 30,118, 29, 7, 90,243,202,100, +130, 64, 49, 46, 42,150, 33, 82, 86, 37,202, 20, 56,153,146,138,119, 35, 68, 93, 66, 89,242,133,162,226,165, 81,197,100, 50, 98, +102, 10,122, 37, 17, 40, 42, 93,242,158,203,199,152, 41,178,225,209, 24, 85, 77, 41,170, 9,245,193, 45, 94, 46,199, 92, 84, 99, + 40,199, 9, 40, 37,242,186, 48,227, 36,105,171, 10,168,102,233,251,131, 23,224,240, 5, 24, 31, 65, 49,129,249,141, 68,241, 57, +190, 1,163, 26, 49,171,225,248, 48, 89,179,222, 60,129,131, 3,152, 77, 18,204,231,197, 91,137, 20,114,122, 66,220,110,137,243, + 83,130, 13,196, 62, 5,247,224, 37, 65,234,252,189,103,217, 71,182,177,195,227,104,125,224,123,203,134,181,237,241, 2,188, 20, + 72,105, 48, 90, 51, 46, 74,180,144,140, 43,133, 8,129,210,104,202, 66,177,218,108, 40,100, 74,152,124, 38,216, 92,173, 59, 2, +142,166,105,241, 93,195, 68, 8,164,181,172,187, 13, 74,105,238, 89,203,125,107,217, 70,197,205,131,116, 48,247,117,205,187,235, +158, 63, 59, 95,208, 24,193,195,102,203,155,243, 49, 87,237, 6,169, 37, 63, 95,109,184, 88, 47,144,222,163,187, 6, 89, 24,108, +187, 69, 42,133, 44, 74,162,115,148,213, 24,161, 13,161,233,145, 38, 17,219,250,174,161,247, 61, 93,223, 80, 41,131, 65, 50,142, +130,163,106, 68, 41, 37,243,170,102,164, 21,175, 31, 79,169,199, 5,151, 85,141,215, 21,200, 42, 85,239, 93,198, 56,248, 44,165, +170,117,186, 71, 36,208,173,144,123,238,156, 3,216,246, 9, 74, 28,219, 22,150, 75,196,163, 21, 8,193,111,191,242, 26,175, 31, +159, 82, 11,152,106,193,173,217,140,211, 73,205,205,233,136, 94, 73, 84,169,233,181, 66,141,107, 86, 62,237,233,174,239, 88, 55, +107, 54,109, 75,244,158,217,104,194,168, 26,113,124,116,202,104,100,184, 92, 55,108, 87, 27,254,230, 7, 63, 66, 60,120, 23, 54, +107, 68,212,112, 60,231, 95, 31,157,114,115, 58,197, 34,105, 16, 84,245,136,251,206,243,174,137, 9,201,239,251,199, 99,129,179, + 59,134,207,126,251,125,120,255, 70,239, 24, 71,159, 96, 57, 46,246,207, 64,161,192, 40, 30,181, 14,154,158, 51, 7, 75, 23,104, +117, 96,170, 75,166, 82, 98,144,201,249, 45,128,247, 73, 74,183, 21,130,186, 48,188, 94, 79,208, 74, 81,141,199, 76,234,138,178, + 48, 76,198, 21, 91, 97,240,245, 4,239, 37,119,230, 7,232, 89,141,226,139,255,250, 59, 95,188,251, 34, 47, 31,189,128, 41,106, +166,147,138,211, 27,183,210, 65,160, 74, 78,143,143, 9,189,101, 82, 22,188,113,114, 19, 89, 22,156, 15, 85, 89,215,253,203, 9, +234,197, 46,227, 39,232,164, 99, 61,124,212, 73,171, 29,163,210,108,112,219, 80, 77, 43,110, 31,223, 68, 75,205,178,109, 88,181, + 45, 23,155, 13, 27, 23, 19, 79, 93,202,116,240, 22,249, 48,214, 58, 37, 5,131, 83, 79,204,183,212,250,236,207,219,165, 25, 75, +223,124,190,215,111,116, 10,118,131,115,208,224,165,190,111,217, 39, 7,112, 88,120,218,138,243,147, 40, 43, 3,189, 75,136,132, +172, 31,146, 29,231,118,146,167,125,150,160, 29,156,246,244, 30,207,251, 89, 45,254, 65,138,118,160, 77,117,109,202,238, 7,219, + 94,159,223,147,235, 82,181,172,179,231, 59, 89, 31, 89,100,209,155,144,129,153, 90,237,172,128,159, 21,160,165,120, 60,160, 15, +137,195, 53, 46, 32, 60,141, 40, 31,232,127,168, 52,203,142,153,194, 55,140,100, 50,136, 74,201,200,177, 74,122,219,189, 23,140, +181,196, 75,208, 8,188,134, 34, 36, 97,156, 81,136,108, 0, 35, 69, 22, 49, 12,212, 82,112,238, 28,189,143, 40, 37, 65, 4,156, +144,248,193,181,238,122,110,158,120,173, 41,232,229,228, 74,239,129, 31, 7,223,250,161, 13, 47,242, 97, 51,140, 49, 68,154,168, + 81, 26,142,198,134,137, 22, 4,161, 81, 49,160,149,160,140,146, 69,240,124, 28, 34,183,116, 65,109, 20,149, 80, 56,146,252,104, +140, 73,116,197,122,152,143, 70,108,187,158, 11, 83,242, 39,245,136, 27, 85,193,164,210,172,123,201,214, 58,166,245,152,117,231, +169, 10,205, 54,194, 66,170,228,163,173, 52,255,230,224,152,215,170,146,111, 30, 28,240,166, 81,188, 80, 87,124,105, 52,199,171, +130,243, 8, 20, 35, 48,163, 68,133, 53, 89,196, 67,104,168,231,188,121,122,147,163,106,204,241,244,152,249,193, 49,186,154,178, +173,166, 41,176, 76, 15,161, 62, 64, 40, 5, 55,110,165, 81,195,104, 12,167,119,136,211, 10, 78,239,192,241, 65, 18,105,185,243, + 42,193, 89,226,184, 78,129, 60, 42, 66,232,137, 69, 73,208,154, 16, 36,182,119, 60, 90,116,188,211, 90,126,126,177, 98, 11, 4, +231, 9, 74, 16,140, 33,104,195, 72, 43, 42,169, 56, 25,149, 28, 9,137, 38, 48, 17, 18,235, 60,181, 86,184,222,179, 70,208, 90, +203,213,118,131, 13,145,179,117,131,116, 45,139,190,229,253,205, 21,219,118,205,165, 11, 60,176,150,183,215, 27,154,168,249,210, +141, 99,238, 93,109,153,215, 21,203, 69,139,168, 38,220,170, 43, 30,246, 17, 99,106,230, 37, 28, 77, 39, 60,104,123,126,210, 57, + 54,120, 86,214,178, 45, 12, 86, 21, 68,173, 89,109, 27,150, 2, 58,103,209, 74, 35, 59,143,154,142, 8,157,163,109, 55, 4, 17, + 89,119, 43,130, 76,107, 78,132,128, 82,138,224, 29,138, 72,161, 12, 81, 73, 70, 82,115, 50, 26,241, 27,243, 9,119,199, 21,191, +125, 50,230, 7, 61, 41,217,234, 35, 4, 71,172, 70,185,179,146, 71, 88,213, 52, 37,250,133,222, 25, 67, 61,167, 45,143, 77,221, + 2,198, 51,254,248,183,190, 65, 93, 40,230,227, 17,139,245,150, 55,142,142, 41,140,102,153, 3,171, 55,154, 86, 10, 30, 88,205, + 58, 10, 54,125,160,117, 93,202,113,125,143, 23,142,113, 89,115, 58,191,193,203,175,190,200,201, 97, 77, 45, 37,239,190,251, 1, +223,255,127,255, 38, 89, 94, 15, 32, 95, 23, 24, 29,140,121,161, 24, 19,202, 17, 93,132,183,155, 13, 63,107, 60,231,146,164,175, +210,248,199, 99,129,220, 59,251,134,226, 97,168,202, 93, 62,131,162,218,157, 97,241, 87,119,171,133, 78,166, 66,148,114,135,153, + 81, 58,119,153, 34, 91, 45, 57,235,183, 28,102, 7, 58, 31, 44,141,107,233,189,103, 19,123, 30,181,158,111, 30, 30,225,163,224, +104, 50,167, 11, 1, 93, 26, 58,161, 18,188,100, 92,211,134,136, 42, 39, 24, 89,114, 88, 77, 81,188,249,251,223,249,189,215,191, +204,209,209, 9,179,217,132,233,108, 66,111, 29,227,113,205,100, 58,162,107,122, 14,142,142, 24, 79, 38,152, 40,185, 49,157, 50, + 25, 21,124,100, 52,209,171,164,237,203,191,128, 22,124, 33, 19, 66, 93, 10,184, 90, 39,137,215,161,202,157,206,211,194,204, 51, + 63,124,228,226,189,251, 92,200,200,197,122,137, 66,114,182, 89,208, 57,199,230,193,249,206,241,202,103, 91,197, 34, 43,110, 21, +106, 39,116, 51,208,192, 66, 62,120, 67,191, 19, 98,249, 92, 84,189, 12,112, 25, 68, 13,134, 92,112,255,241,100,230,134,235, 79, + 65, 67,213,185,253, 60,120,113, 15, 45, 92, 37,211,124, 91,102, 14,186,205, 74,103,215,214,187,195, 28, 93,236,253, 94,120, 54, + 48,110, 8,172,131,150,252, 16,144, 7,249, 88,149,147, 15,153, 65, 42,195, 11, 27,213,233,223,213, 36,139,227,100, 85, 55,181, +247,250,158,156,113, 13,216,128,253,160, 62, 84,218, 62,211,173, 76,158,227, 15,191, 51,184,221,105,177,167, 83,111,216,167, 68, +140, 84, 74,114, 52,130, 88,106, 54,109,224,184, 20,180, 34, 82, 72,197,170,207,147, 22, 37, 48, 49, 82, 75,133,138,176,138,201, + 86, 17, 34,193,129, 22, 73,203,122, 25, 61, 5,130,101,235,119,246,198, 98,111,138, 41,213, 94, 96, 79, 38, 51,215, 72,222,107, +250, 98,254,155,225,186,135,176,115, 99,243, 30,164,230, 3, 47,249,210,216, 48, 50, 5,165, 84,120, 17, 81, 18,190,223, 88,254, +177,177,212, 33,112,168, 53, 70, 21, 8, 20, 74, 9, 36, 18,165, 20,198,104,222, 89,182,220, 11,112, 74,224,229,170,224,120, 92, +225, 81, 20,218,112,102, 29, 42, 66, 85, 22,172, 28,104, 93,242,190, 77, 35,159, 47,215, 99, 94, 80,154, 23,103, 51,164,210, 24, + 35,153,214, 53, 72,197,121,103,121, 80,142,211,107, 53, 38, 85,226,101, 1, 66,113, 52,155,242, 71,163,154,175, 29,141,249,210, +141, 41,119, 70, 37, 47, 21, 48, 42, 43,222, 9,192,120,150, 70, 46,186,128,178, 66, 84, 19,168,103, 48, 57, 1, 41,121,235,198, + 75,172, 17,152,241, 33, 95,120,225, 37, 30, 58, 7, 71, 71,196, 66, 18, 15,230, 68,165,136, 62, 18, 75,157,116,185,133, 36, 10, + 79,104, 91,226,122, 73,116,145, 96,123, 66,136, 4,109, 8, 74,224, 68,100,164, 53,115, 41,185,173, 21, 19, 83,114,144,249,241, + 83,169, 8,222,226,130, 37, 90, 79,211,247, 68, 68,234,230,245, 45, 15, 58,199,229,118,197, 89,211,208, 70,193,134,142,191,189, + 90, 98,189,167, 87,146,208, 91, 94,158, 79, 88, 49,101,227, 29, 71,117, 65,148,138,141,247, 84,101,193,119,207, 22,252,163,215, +188,189, 13,244, 40,222,241,130, 86,106,182,227,130,179,224,184, 52, 5,110, 90,113,229, 97, 89, 22,116, 93, 11,227,146,208,246, +116,161,167,151,146, 15, 86,231,132,232,104,162,163, 68, 16,242,248, 69,106,131, 15, 1, 23, 61, 49, 4, 70,198,240,178, 54,188, + 88,140,120,101, 58, 99, 41, 5,183,106,195,219, 54,173,179,104,202,108,190,228,136, 62, 32,234, 41,136, 36, 45,139,172,242, 30, +206, 22,198,207,233,224,138, 32,249,218,183,191,206,235,183, 95, 65, 2,117, 53,226,195,135,247, 64,150, 72, 33, 57, 29,215, 44, +156, 99,237, 60, 31,108, 61,223,181,145,247,122,203, 86, 68,150,214,129, 48,232,140,111,154,234,146, 27,199,167,220,120,225,152, +182,179,172,215, 29,255,203, 95,253,123, 46,222,126,251,241,100,194,247,188, 43, 12, 7, 19, 69, 39, 74, 46,189,231,111, 87, 29, +255, 24,243,121, 98,178, 80,215,229,122,167,136, 58, 36,243,214,238,102,233,195,207,135,194, 33, 10, 30, 67,174,126,146, 95, 67, + 85,236,180, 2,148, 74, 8,118,145, 71,136,203, 53,157,150,172,156,165, 16,150,232, 45, 11,219,240,209,182,101,105, 29, 47,141, + 12,135,101, 69, 89,142,152,215, 37,173, 20, 68,161,233, 99,224, 96, 84, 16, 98,164,151,130,135,157, 35, 20, 53, 50, 42,212, 27, +191,251,167,223,121,237,133, 23,185, 88, 52,156, 28, 30, 98,125, 96, 54,175, 48,133, 70,169,196,179, 11, 62, 50,158, 84, 24, 85, + 18,188,160,144,134,155,227,154,135,210,167,142,107,111, 63,149, 58,218,103,245, 6,254, 92,195,102,253,156, 57, 71,204, 60,242, +190,217,153,207,107,157,170,161,186, 78,224, 54,193,206,255,122,189,102,117,209,210,207, 71, 60, 88, 44,176,209,243,232,193,121, +146,118,149, 49, 29,178, 82,236,132, 96,194,192, 63,222, 67,147,135,144,126, 63,180, 73, 3,217,121,144,159, 19, 3,144, 91,186, +215,126,221,136, 12,198, 11, 79, 35, 50, 63, 77,142, 37,247,105,103,123,224, 16,173,210,130,179, 62,221,211,129,234, 49, 8,149, + 96, 51,152, 45,111,224,231, 25,167, 12,254,229, 58,207,220,219, 46,253,219,229,205, 20,179,233,204, 53,154, 95,239,161,231, 67, + 58,188,135, 77, 51, 24, 7,145,239,161, 28,228,136,229,227,111,118,216,116, 79,221,251,184,179, 18,134,116,191, 10,181, 11,252, + 65,103, 25, 46,177, 19,229,201,215,199, 86,134, 50, 70, 28,130, 82, 70, 14, 20,120,165,153, 32,121,100, 5, 66, 36,211, 23, 31, + 4,165, 2, 31, 99,202, 93,128, 62, 70, 52,130,101, 72, 45,114,161, 5,155, 16, 88,109,193, 23,114,135, 91, 24,238,229,254,235, +189,238, 20, 12, 82,192,236, 76, 39,246,157,157,134,185,158,247, 57,137,137,169,163, 82,149, 8, 19,121, 96,123,124,176,124,216, + 58,174,154,134,239,247, 14,108, 71, 47, 52, 47, 21, 10,225, 61, 83, 93, 82, 41, 5, 8, 98, 8,116,206,241,160,143,252,204, 89, + 94, 50,134, 49, 18, 29,160, 67, 98, 16, 28,205, 42,130, 23,233,182, 73,193,251,155, 45,103, 25, 7,240, 71,243, 49,163,178, 98, + 99, 29,133,210, 20, 85, 69,219, 71,124,244,152,122,132,136,145,139,152,109,144, 99,128,170, 6,173,248,173, 73,197, 43,227,130, +162, 50, 92, 89,201,172,214,180, 81, 48, 53,146,195,162,224,189, 62,166,185,188,150, 96,234, 44, 89, 91,242,237,201,132, 63,190, +117,130,139,146,111, 30, 30,112,211, 20, 40,109,184,115,112,202, 47,157, 39,206, 78,211, 65, 90,150,112, 56,205, 9, 88,145, 80, +224, 85, 10,114,209, 67,108,151,217, 57, 14,226,166, 35, 78,107,208, 26,129,224,229, 82,112, 36, 36,135, 33, 82,196,192, 17,130, +121,132,146,136,244,150, 14,203,184,144,244, 77, 79,239, 59,162,132,202,109,209, 74,225,109,199, 13,233, 41,188,199,246,150,211, + 74, 80,198,142,159,246,146,219, 35,205,182,179,140,234, 57,103,125, 79,223,119,188, 48,159,243,209,118,203,172, 26,113,217,181, +204,171,138,217,116, 78, 81, 22, 56, 96, 77,193,249,232, 0,135,228, 92, 22, 52,101,201,251, 27, 75, 51,169,185,208,138,243,174, +229, 35,165,248,165,119,124, 40, 2, 15,164, 38,120, 79,167, 52,147,232,177, 82,208, 59,135, 21,130,222, 59,130, 86,156, 72,131, +145,134, 90,105,130,212,156,154,130, 94,107, 46, 10,195,133, 0,186, 44, 79, 43, 69,234,156,217,237, 53, 13, 86,168,228,194,118, +141,173,121, 18, 85,175,117,114,166, 83,240,240,157,247,121,237,141, 87, 9, 4, 54,171, 75,254,183, 31,255,128,159, 63, 58,231, +141,249, 33,247, 55, 91,108,148,252, 98,225,248, 65,227,248, 97,103, 89, 72,201,153,179,156, 11, 40,202,146,136, 66, 72, 73,173, + 75,142,166, 7, 28, 29, 79,136, 17,238,191,255,136, 63,255,179,127,151,198,194,123,144, 26, 97, 29,244, 29, 63,235, 28,127,223, +181,252, 48, 68, 46, 84,145, 94, 63, 49,159,105, 89,149,115,219,165,138,122,168,204,149,126, 92,245,242,218, 44, 76,164,243, 63, +202, 79,198, 44, 93,203, 78,231, 98, 76,155,212,221, 22, 58, 43,210,229,162,230,252,156,245,170,229, 61, 31,233,218,134,101, 12, +244,222,113,175,107,208, 1, 94,170, 39, 28, 84, 37,231, 65,114,179, 42, 89, 57,203, 65, 85, 98,165,100,209,121, 62, 92, 59,182, + 65,210,224,153,212, 21,106,250,149, 63,252,206,171,183,110, 51,155, 28,226, 36, 8, 41,168, 42, 67,232, 2,101,165, 81,198, 96, + 10,133,144, 2, 23, 2, 2, 73,215, 37,203,152,182,107,184,218,118,233,208, 9,225, 41, 27,185, 79, 67,147,248,164, 4,224,179, +205,156,229, 14,120,244, 36,136, 97, 64, 35,218, 39, 36,101,101, 14,228,202,236, 42,208,135,139,204, 53, 92,209, 93, 92,208,109, + 58,182,151,203,212, 62,143,195,156, 37,183, 99,188,203,146,168, 67,192, 30, 60,171, 99,202,110, 93,159, 52,226, 67,158,195,200, +207,158,167, 60,230,150,117,125, 85, 28, 59,227,150,207,249,152,207, 74, 30,226, 19,226, 45,251,247,115, 95,165,239,121,152,138, +161,130, 46,139, 93,149,236,135,106,221,239,181,245,115, 5,122, 61, 23,207,242,196,131, 48, 11, 34, 3,194,114,160,234,114,107, + 94,237,241,232,131,125,188, 98,223, 15,110, 49, 38, 33, 32,111,119, 96, 61,185, 39,203,170,196,222,224,107,112,148,203, 27, 47, +219,205, 74,157, 64, 79,117, 37,169,181,160,183,112, 80, 37, 9,220, 46,130,172, 20,109,198, 66,110, 92,164,148, 17,147,177,131, +125, 4, 65,164, 19,130, 16, 60, 65, 10,156,247,148, 82,177,201,220,247,232,194,174,175, 30,247,241,198, 97,247,189,205, 64, 76, +177, 87,165, 15,244,203, 33,240,239,191,255,144,213,234, 26,203, 89,227,121,212, 56,222, 91,182,124,180,105,249,160,181,201,109, +209, 91, 58,235,232,188,231,141,217,140,177, 80,105,154,130,196, 72,205,195,118,203,119, 55, 75, 26,111, 89,219,158,223,156, 79, + 24,149,138,211,113,141,174, 18,144,208,247, 62,187,106, 6,254,194, 38,241,159,223,171, 13,167,166,192,199,192,188, 52, 44,179, +229,175, 85, 10,147,131,203, 61,235, 89,198, 12, 92, 52, 6,188,231,246,184,230, 37,163, 24,155, 18,139,160, 50,146,141,247,232, + 50, 1, 42, 23,109,199, 90, 73,182, 62,166,100, 64, 3, 66,241,214,124,194,215, 15,198,120,161,121,121, 90,112, 22, 13, 55, 75, + 77,101, 12, 31,184,136,158, 76, 88,186,152,198, 98,179,227, 84,213, 31, 28,103, 21, 72, 65,236, 33, 78,103,208,183,196,110,147, +153, 60, 45, 49,122,196,170, 5, 35,120,177, 48,124, 81, 4, 14,149,198,216, 45, 19, 4,211,232, 41, 98,224, 32, 68, 76,112,156, +120,199,204, 57,110, 8,203, 76, 9,198, 49,224, 67,154,153, 76,243, 89,227,148,230,134, 22,156,245, 61,151,155,142,190,235,248, + 97,223,243,155,199, 39, 84,117, 65,107, 97, 86,215, 92, 54,150, 82, 74,130,150, 28, 85, 99, 30,110,183, 92, 5,135, 21,146,195, +241,132, 88,150, 76,141,226,223,175, 59,190,120, 56,225,127, 63, 91,242,230,233,156,247,130, 98,189,109,185,168, 70,156, 69,201, +185, 46,120, 20, 20,151,133,100, 93,141,208,125,203,131,162, 36,218,158, 54, 68,214,118,139,149,146, 18,152, 20, 21,181,128, 32, + 4,165, 76,202,142,149,208,132, 66,243, 75, 41,105, 11, 13, 66, 19,251,204, 32,177, 54, 87,235,201,131, 66, 20,131, 24,138,127, + 26,187, 50, 25,167, 17, 73, 89, 33,108,228, 31,222,121,135,127,216,158,243,163,159,191,131,248,249,251,216,251,247,249,222,197, + 21,127,119,254, 17,151, 54,240,151,219,134,135, 49,119,212,188,205,243,104,201,178,235,185,138, 32,116,137,142,130,153,174,232, +172,103,185, 92,241,224,236, 17, 63,251,233,219,169,197,255,100, 12,242,185,189, 46, 69, 18,135,201, 73,191,112,109,146,153,136, + 49,237,151, 24,147, 90,219,117, 16,183,233, 12, 27,176, 66,195,156,221,217, 92,120,248,103, 83,119, 31,195, 19, 13,184,156, 44, +171, 45, 50,219,198,147,228,144, 99, 62,159,180, 73, 95,183, 13, 87,214,115,222,245,156,181, 13, 29,145,143,154, 14,240,220, 54, + 37, 19,173,169,202, 18, 81, 20,136, 0,203, 16,105, 4,124,188,245, 44, 66,143, 20,146,206,123,212, 75,223,250, 79,190,115, 52, +153,208, 52, 61, 74, 74,230,227, 17,158,200,168, 42,240, 46, 34,181, 32, 34,112,155,158,174,181, 68, 21,113, 25,104, 38,133,162, +215,138,205, 53, 15,181, 74, 72, 81,165,161, 40, 16,166, 72,154,195, 85,226,133, 11, 41, 16, 82, 34, 66,248,212, 85,186,248, 44, +213,236,147, 82, 9,207,188,224,250,233,120, 22, 67, 70, 65,106,184,218, 36,173,243, 1,124, 84,150,169,106,172, 50, 16,174,205, + 64,183,206,165, 27,147, 37,187, 49,185,194,235,250, 84,149, 58,155, 4, 69,162,206,179,195, 92, 29,154, 44, 41,251, 28,158,232, + 83,173,113,246,102,221,196, 92,221,102, 31,224,207,203, 36,148,251, 10, 38,207, 32, 90,254, 58,211,148,225,154,151, 38,155,115, +200, 93,165, 94, 21, 41,211,143,121,129,203,172, 75,175,247, 56,162, 74,166,217,221,112, 47,101,222, 72, 46,238,180,211, 33,121, + 14,136,231,184, 2, 94,163,240,243,107, 41,138, 44,212,147,193,133,200, 93, 66, 1,169,107, 80, 12, 20, 49,149,174,171,146, 72, + 37,121,169, 86,244, 2,162, 84,220, 80,130, 72,164, 12, 18,167, 53,151, 93,138, 3, 70, 8, 60,145,222,197, 36, 83,160, 4, 91, + 23,104,165, 64,100, 52,123, 31, 2,107, 34,150, 72, 23, 50,200,125, 0, 80, 14,116, 64,246,131,116, 76,239, 25,247,184, 57,207, +117,101, 31,119,137,222,179, 80,184,146,116,240,108, 92, 18,134,233, 50, 42,121,209,166,206,154, 8, 44,188, 99, 42, 3,239, 44, +214,172, 99, 75, 27, 28, 15,182, 43,254,231,243, 75, 26, 2,116, 91,188, 86,124,169, 44,209, 74, 48, 19,169,122, 17,125,210,218, + 47, 74,193,127,115,113, 9, 49,112,199, 68,156,212,220, 45, 53,165,142, 44,188, 96, 36, 35, 74, 72,148,214, 4,231, 48, 85, 65, +225, 61,239,185,184,147,202,173, 12,127, 50, 41, 57, 40, 19, 55, 57, 40, 65,244,129, 32, 21,203,198, 81,149,154,131, 74,243,161, + 13, 44,132, 72,107, 1,205,237, 66,243,173,121,197,214, 71,180,150, 60,116,112,107,172, 89, 59, 24,213,134,210, 40,222,147, 37, +219, 16, 19,208,238,255, 99,238,189, 99, 61, 95,243,251,174,215, 83,190,237,215, 78,155, 51,103,214, 69, 66,164, 0, 0, 32, 0, + 73, 68, 65, 84,230, 78,185,125,247,102, 91,108, 92, 18, 82, 12,137, 73,140, 67, 81,148, 40,144,200, 18, 36,161, 8,146, 16, 16, + 2, 36, 4, 1,139, 16,100,197, 40, 10, 37, 18,130, 72, 38,160, 68, 72, 17, 9,144, 4, 41, 9,113,130,133,141,157,141,189,235, +189,190,187,183,151,185,211, 79,251,245,111,121, 26,127, 60,207,247,252,126, 51, 59,115,119,238,238,218,230, 39, 29,253,102, 78, +253,150,231,251,124,218,187,184, 16,109,165,203, 42, 94,199,193,110, 52,152, 17, 33, 34,236,173, 39, 24,147, 88, 28, 81,247, 64, +212,142,217,168,228, 5,233,153, 52, 53, 19,173, 25, 56, 71, 30, 28,165,119, 20,193,115,205,123,246,124,224,102,112,236, 8,197, +208, 7,156,119, 12,115, 69,200, 20,165,132, 34,203, 25, 2, 94,107, 42,165, 9,153,164,173, 27,156,177,188, 62, 63,227,115,131, +146,169, 5,153, 23, 12,203,140,133,135,157,224,153, 5,143,237, 28,183,219,154,145,173, 97, 52, 97, 55, 87,124,109,209,240,219, + 14, 38,252,141,227, 5,255,244,141,125,126,177, 9,236, 6,135, 27,143,120,104, 28,203, 97,197, 42,215, 44,101,206, 45, 23,199, +132,167,229, 24,233, 13,247,178, 10,231, 59, 78,100,212,104,111,133, 98,207,123, 50,149, 69, 81, 20, 17,253, 10,102, 66, 82, 75, +133,206,179, 24, 60,170, 42, 74, 28,251, 16,247, 52,145, 0,102, 93, 11,170,138,160,179,124,152, 48, 29,253,152,171, 76,108,136, +152, 8, 10,225,160, 94, 19,110, 63, 72, 82,217, 49, 14, 48, 59,135,243, 21,167,119,239, 67,102,226, 24,204, 16, 11, 45, 37, 97, +181,138,123,133,206,168,145, 28, 27, 19, 45,107,235, 6,230,167,184,249, 49,191,117, 8,203,231, 46, 49, 27, 14,241, 87, 14, 17, +105,116, 40, 18,151, 94, 44,154, 4,184, 53,113, 92, 42, 99,114, 44,188, 71,200,164, 44,105, 72,248, 30, 30, 45, 14,122, 32,113, +143,229,233, 37,178,249,132,121,122, 15, 92,237,237,177,101,210,107,200, 84,234,108,203,248,245,190, 99,216,166,228,194,116,136, +186, 23,113,138,251,230, 29, 31,120,117,144, 49,145,154,135,139, 5,123, 85,116,199,155, 33,184, 51,183, 60,112, 29,109, 16,100, +206, 69,187,143,211,231, 62,255,227,151,202,138,195,131, 67, 6,229, 8,135,199, 7,137,150, 1, 93, 42, 2,208,206, 91,172,247, +120,225,113,235, 14,141,226,206,201, 9,185,206, 41, 21,156, 88,139,171,202,120,162,163, 17, 20, 5, 66,231,209,202, 85,102,136, +106,132,144, 57,232, 18,145, 43,196,213, 27,136,253,125,100, 94, 33, 28, 48, 25, 35,140,185, 8,246, 79, 21, 58,120,156,227,220, +183,128,159,166, 96,246,164,205, 78,203,167,183, 6,234, 58, 62,208,125,160, 80, 58, 82,112,132,220,136,238,228,121, 20,159, 41, +210,220, 60, 43,162,127,186, 46, 54,180, 30,151,204, 66,170, 49, 76,118,226, 53, 25,237, 69, 32,145, 73,173,170, 62,170, 60, 62, + 99,207,116, 18,213, 16,155,143,109,192,198,246,174,253,237,210, 9, 47,226,121,143,152,223,250,189,246,187,128,143,232,187, 38, +219, 51,170,162, 55,129, 9, 27, 4,125,159,193, 56, 31,175, 77, 31,216,117, 58,255,158,178, 21, 18, 77,207,233,212, 22, 79, 51, +177,240, 12,162, 71, 89, 30, 17,245, 89,226,122,155,176, 65,146, 95, 20,197, 50, 38, 22, 58,221, 59, 29, 91,102, 1,193,168,144, + 92,150,154, 67, 4,121,174,153,120,201, 82, 75, 86,193,209, 5,104,130,136,185,137,128,206, 75,108, 8,172,141,199,164,189,175, +245, 1,129, 96, 37, 2, 93, 23,112, 34,224, 2,184,222, 25,206, 37, 26, 98, 15,150,115,102,115, 28,201,170,242, 66, 57, 80,111, +105, 62,245,244, 54, 17, 30,101, 46,108, 39, 54, 38, 13,226,235, 38,182,150, 23,203,248,251,151, 77,244, 69,151,112,107,182,230, + 94,103,248, 96, 93,243,230,116,202,187, 93,236, 80,209, 52, 96, 27, 94,203, 51,180, 23,140,139, 12, 39,192,123, 75,103, 58,132, +107,249,169, 91,183,224,107,191,196,247, 95,191,194,155, 45,252, 96,174, 40,108, 71, 71,193, 78, 14, 50, 72, 22,173, 37,195,227, +139, 40, 39,253,150,177,156,118,169,114,146, 57, 88,199,107,195, 18,109, 3,186,210, 40, 31, 88,121, 65, 41, 64,105,137, 8,158, +185,151,236,123,203,187, 93,236,128, 77,114,201,203, 90, 48,206, 51, 4, 30, 39, 21,131, 66,210,248,136,155, 80,206, 83,150, 57, + 39,141,225, 60,203, 8, 65,243,252,225, 46,115, 36,175,142,198, 92, 59, 60,228, 65,107,216,201, 10,218,178,138,215,120,111,130, + 24, 14,162,163,152,105, 17, 34,130, 91,229,210, 96, 51,193, 11,133,102,108, 61,185,183,236,134, 24, 12, 14,188,167, 12,142, 75, +193, 83,233,130, 1, 2, 33, 36,101, 94,177, 14, 22, 33, 20, 70,231, 72, 1, 51,175, 25, 20, 57,173,177,172, 58, 71,174, 37,187, +202,115,189,148, 88, 27,104, 92,203,126, 57,226,111,124,252, 1,191,233,232,128, 51, 35, 25,105,193,199,171, 5, 55,139,156,135, +235, 37,165,202, 88, 26,195, 48, 47,176,133,230,181, 76,241, 15,141,224, 55,168,192, 3, 27, 88,218, 64,145, 43,188,214,232,206, +226, 70, 21,109,107, 57,169, 6,140,188,141, 12, 4,233,185, 63,152,144,117, 29,247,117,134, 51, 29, 58,120, 14,178, 44, 2, 66, +181, 98,233, 61, 43,169, 56,115, 14,165, 52, 7,163, 49,214, 24,206,117, 18,181,170,235,216,241, 25, 14,226, 51, 94,175, 17,197, + 8,225, 26, 24,143, 35, 66, 62, 47,147,186,102, 2,118, 10, 9,181, 65,180,230,201,243, 65,215,197,103,124,186,138,254, 32, 85, + 74,238,215, 75,132, 18, 49,192, 59,135, 72,180,213,147,182,230, 11,162,225, 48, 56, 70,174,227,123,247, 15,120,173, 42, 56,204, +161, 46, 11,236, 78, 73,123,235,254,102, 12, 40, 2, 98, 54,139, 69,149, 14, 49,200, 6,127,145, 28, 11, 64,104,129,104,252,198, +180,170,237, 30, 21,159,113, 46, 97, 64,196,183, 40, 28,251,238, 90,162, 67,170, 84,196, 20,169,253,222,123,167,248, 84, 56,218, + 16,227, 73, 82,181, 20, 89, 14,243,121,188,110,214, 65,215,225,181, 69, 4, 79, 7,188, 61,157,114,110,225, 87,206, 86,124,195, + 71, 83, 93,141,167, 53,142, 44,120, 84,120,229,251,126,252,104, 88, 48,202,115, 26,211, 65, 80,228,121, 70,103, 44,166,115, 44, +151, 53,133,214, 72, 2,243,243, 5,157,111,105,234,142,209,100,200,124, 49,231,116,185,194, 9,137, 32, 80,141, 71,152, 76, 71, +138, 82, 53,224,249, 43, 99,174, 28,237,113,138, 70,148, 57,159,251,236,117, 78,171, 9,191,245,229,171,124,241,250, 62, 55,110, +220,224,133, 23,143,216, 57, 26, 80, 29,237, 51,187,123, 26,105, 18,233, 66, 61, 18,216, 7, 35,184,113,149,193,171,215,241,151, + 47, 17,130,100,255,243, 55,168,171, 10, 22,233, 2, 93,208,144,194,147, 85,128,158,198, 81,223,166, 6,109,223,164, 30, 20,145, +229,241,226,183,201,212, 64,138,184,104, 85, 6,195,138,157,231,174,240,210,245,155, 28, 30, 94,102,255,240, 50,167, 90,198,108, +108, 56,102,116, 48, 65,151, 25,197,168,160,235,173, 60, 85,111,174,146, 90,190,125,197,158,109, 43,221,109,117, 30, 68,223,122, +214, 91, 85,221, 54,114,251,219, 13,236,114, 43,194,219,239, 78, 64,239,121,232, 61,149,172,105, 55,124,250, 71,164, 78,179,152, +173, 42,155,252,217,187,216, 21,233,205,102, 92,194,105, 52, 46, 5,175, 52,127,178, 93, 82,126,115,155,204,249,147,132, 33,100, +228,171,146,244,129, 34, 32, 70, 36, 3, 28,145,114, 26, 21, 3,102,136, 78, 75,253, 61,184, 52,200,216, 19, 32,165,196, 75,129, +242, 2,145,197, 54,186,117,129, 54, 72, 10, 41,233, 66,192, 38, 49, 25,151, 38, 5, 42,128,113, 2,227, 33, 47, 36,211,149, 99, +156, 5, 58, 43,104, 3, 27,231, 54,182,170,117,159, 54,188, 94, 58, 86, 36, 4,188,176, 41,153,217,106,195,251, 20,216,123, 41, +217,167,113,102, 31,255,156, 75, 88, 9,124, 84,137,236,186, 40,247, 58,175, 99,224, 63,153, 70,113,164,147, 41,180, 6, 95,106, + 6,101, 78, 33, 20, 70,120,166,181,225,254, 98,193,195,213,138, 91, 93, 3,187, 7,220,245,128,169, 57,238, 26,180,204,184, 82, + 66,112, 14, 47, 2,123,133,198, 18,216,213,129,251,235,134,159,175,155,205,102,234, 13,131, 34, 99,224, 28, 59, 58, 10,148, 8, + 39, 40,114,197,178,131,221, 42,218, 87, 22,120,190,186,114, 76,187, 88,225,151, 18, 62, 87,198,103, 97,175,202,168, 77, 32,211, +138, 69,109, 25, 8, 88,104,141, 86,130,155,133,102, 55,211, 76,148,224,185,209,128,171, 18, 6,227,146,145,128, 23,181,230,174, +147,180,137,154, 41,202, 17,248, 22,177,183,131,144, 25, 12, 74,196,106,133,176,134,121, 11,147, 81,198, 16,176,198, 32,157,229, + 57,160,178, 29, 99,161,145, 2, 50, 93,144,101, 37,186, 31,237,229, 5,133,138, 73,104,208,146,113,166,105, 17, 60,236, 28,151, +170, 44, 90, 11,120, 27,231,190,206,112,125,178,207,207,127,244, 54,159,219, 29,178,108, 21, 95, 62,189,203,251,243, 41, 39, 54, +240,222,114,202, 81,174, 49, 42,103, 60, 26, 97,144, 8,227,120,223, 9, 94,112, 29,239, 53,150, 60,207,105, 8,228, 85,193,170, +109,249,184,241, 12, 27,131,215,130, 27, 93,203,221,172, 96,108, 45,239,101, 35,110,168,192, 89,174,160,109, 89, 42, 77, 27, 76, + 82,225,243, 44,157,163,201, 10,166,192, 90,130, 80, 25, 50,196,209,128, 2, 78, 36,136, 50,131, 32, 17, 62, 89, 6, 27, 27,139, + 27, 9,162,168, 18,189, 55, 61, 99,174,139,235,218,153, 68, 91, 53, 79,239,190, 58, 23, 43,254,118, 13,183,238, 66,115, 22,139, + 35, 43, 16, 66,129,206,162,193, 15, 22,161, 20, 63, 58,169,216, 41, 42, 94, 27, 12, 9, 69,201, 85,145, 81,238, 93,101,112,237, + 69, 14,242, 9,239,200, 22,206,102, 17,176, 26, 98, 1, 37,188, 68, 12,203, 24, 42,164,142,232,244,144, 70, 65, 26,200, 20,194, + 6, 68,219,196,125,225,162, 99, 40, 55,202,163,125,108,121,218, 51,151, 12,189,200,147, 16, 88,111,112,209,218,184, 55,214,109, +108,185, 23, 9, 25,239,100,194,114, 37, 64,114,109, 17,227, 81, 82, 30,141,157,197, 7,199,115,222,235, 12,191,180, 88,240, 86, +103,248,149,217, 57, 31,187,150,105, 91,227,148, 70, 91, 67,158,231,212,205, 10,133, 63,250,241, 59,193,115,117,103,140,119,158, + 92,122,150,211, 25,214, 7,206, 78,103,228,185,196, 5,207,124,186, 64,229,177, 53,217, 57,195,116, 57,103,109, 91,156,240,248, + 16,168, 84,204, 96,126,203,149, 29, 86, 78, 50, 40, 74,214, 94,242,112,225, 24, 12, 11,254,169, 87,174,240,206,220,243,153,195, + 35,190,231,230, 53,170,114,196,205,171,151,121,225,218, 21,118,138, 9, 26,201,135,173,138,173,156,208,123,125,235,104,209, 87, + 14, 96,239,128,207,188,122,133, 23,246,247, 56, 26,143,249,204,243, 87,152,228, 37,121,165,153,154, 0,139,122, 35,230,209,143, +156,241,207, 30,212,121, 74,181,115,225, 5,222, 70,212,162,105,226, 2, 80, 58, 6,139,221, 61, 62,115,120,133,113, 57,224,234, +254, 97, 18, 16, 8, 76,155,154,124, 56,100, 82,229, 28, 14,247,208, 82,131, 46,105, 93, 20,102,136, 51,248, 52,247,245, 91,157, +129,167,233, 57,245,173, 32,177, 69,221,122, 90,235,245, 89,231,234,189, 36,162,181, 27, 78,253,119,250,202,242, 24, 44,157,219, +104,202,247,221,134,190, 58,247, 9,123,208,251,102,251, 44,206,222,116, 17,245,200, 67,114,109, 19, 41, 9,146,230,209, 57,149, +243,113,206, 37, 68,162,202,125, 11,197, 60,159,152, 8, 33, 9,190,248,176,209,175, 87,125, 64, 76, 74,128, 9, 60,151, 75,201, +149, 44,224,149, 66,132, 64, 41, 21, 34,147,200,214,162, 69,228,188,214, 46,144, 73,193,210,165,241, 19, 73,168, 71, 6, 58, 98, +176,215, 66, 50,235, 28,251,165, 96,218,121,132, 80, 81,255,189, 7,202,185, 45,201,101,159,230,235, 93,136,227, 0,195, 38,160, +123,187, 1,220, 94, 88, 10,247, 35,249,176, 17, 61,250, 52, 52, 70,159,240, 14, 93,172,202,105,214,177, 74,154, 47, 98, 37,214, + 56,234, 97,201,238,112, 68, 45, 84, 84,250,106, 91,222, 94,157,241,141,211,227,184, 57,133, 54,254,188, 84,180, 93,203,171, 90, +113,169, 42,208,222,146,123,139,177, 29,235,166, 37,152,142, 91,203,154, 59,205, 42, 38,102, 54,118, 90, 76,240,236, 11, 23, 59, +118,157,163,212,154, 81, 6,227, 76, 80,119, 1,137,231,108,109,248,242, 42, 49, 71,130,165, 20,129, 87, 39, 57, 89, 8,212, 54, + 80,230,146,186,181, 28,142,114, 30, 58,201,158,136, 90, 2, 15, 87,134,135, 94, 48,169, 10,126,102,217,241,249,157, 10,227, 61, +107,231,185,167,114, 6, 2,166,198,199,128,164, 52, 98,180, 27, 55,226,241, 8,225, 90,184,113, 3,121,124,134,220,155,112,251, +225,130,135, 18,118,139, 28,101, 44, 89,107,184,162, 20,121,240, 20, 58, 39,136,140, 78,120,178,162,164,149,154,165,212,204,242, +140,214, 89,100,145,211, 41,197,188,131,188,208, 52,105,162,210, 9,133,203, 53, 70, 73,206,231, 39, 8, 89,240,225,236,156,111, + 44, 78,104,186,150,198, 59,186,213, 57,214, 59,238,170,140, 35, 33,216,203,115,198,147, 33, 93,145, 83, 56,203,219,171, 53, 7, +163,146,247,215, 29, 7,185, 98, 97, 44,120,193,243,149,226,171,181,227,121,215,113,191, 40,184, 92,175, 57, 41, 42, 94, 20, 53, +191, 18, 10, 46,249,142, 51,159, 71, 91, 88,165, 57,183, 13,194, 89,230, 42, 34,227,167, 8, 92, 86, 97, 69,236, 72,246, 30,111, +153,210,156,133, 4, 94, 93,214, 8,159,244,210, 69, 74, 56,139, 10, 17,210,243, 95,183, 17,152,236, 92,178, 12, 53,207, 54, 86, +117, 17,185,206,233, 41,156, 45,225,228, 46, 66,198,145, 17,193, 35,112,252,216,254, 46, 71, 90,113, 73,105, 66,150, 81, 27, 19, +105,155, 7,151,232,148,164,243,146,243,197, 49,243,227,211,248,247,186, 14,145,233,232,236, 23, 98,146, 32,178, 12,145,101,124, +166, 42,249,129,225,132,239,219, 25,113,121, 84,241, 97,211,193, 98,141,104,235, 88,100, 94, 20, 80,225, 81, 23,204, 79, 74,164, +123, 86,144,202, 19,107,200,167,234,191, 77, 32, 96,210,190,159,168, 74, 33,141,133,219, 68, 33, 54, 53,162, 72, 99, 72, 27,147, + 34,187,110,226,179,185, 88,196,235,106, 26,192,178, 12, 48,117, 14,154, 21,139,229, 20,197,240,198,143,163, 53,171,188,229,189, +211, 19,186,110,205,170, 94,178, 88,206, 25,100, 37,139,229,156,118,213,144,149, 25,117,179,166,110,107, 58,211,210,212,134, 7, +235, 57,157,141,252,220,178,200,184, 57, 26,112,175,243, 72, 33,184, 57,172,184, 84,150, 84,227, 49, 47, 14, 7,220,237, 52,207, +141,246,249,220,165, 93, 46, 29,238, 33,244,128, 60, 31,176,172,225,218,209, 37, 6,229, 46,191,225,218, 30,183,145,100, 71, 67, +218, 51, 3, 42, 82, 88, 68, 57, 97,242,202, 33, 47, 31,236,115, 48,218, 97,111, 48,228,112,119,143,241,104,204,225, 96,192, 45, +187,198, 28, 47, 99,150,247,248, 60,245,105, 23,252,241,215,211,132, 90,250,141,175, 87, 47, 19,105,243,151, 10, 10,205,100,103, +143,107, 59,251,232, 92, 68,109,230, 60, 71,105,205,195,102,201, 40,215, 28, 14,118, 81, 85, 73,145, 21,100,153, 98,106,218,168, +144,214, 75,154, 90,191, 21,212,213, 39, 13,193, 55,224,177,237,238,130,248, 54, 85,253, 60,223, 12,178,250,110, 4,244, 30, 87, +208,219,121,170, 36, 98,225, 92, 2,191, 36,227, 27,111, 35, 55, 93,248,232,179, 45, 4, 84,217,102, 68,162, 19,133,174,179,155, +108,183, 75, 52, 26, 29,185,216, 40, 25,103, 79,223, 74,194,177,111,122, 8,183,145, 93,237, 43,245, 30, 97,174, 19, 61, 80,101, + 23,151,246,160, 82, 49,121,150,154, 66, 4, 26,235,201,115,133,176, 30,163, 99,219,253,196,120,134,153,162,243, 62, 61,144, 34, +101,248,241, 60,140,243,136, 16, 88, 58,129, 34,208,132, 4, 16,236,250,121, 91,182, 25, 37,244,163, 6, 69,194, 16,244,237,119, +185, 65,228, 7,191, 9,236,166, 79,254,122,189,130,111, 35,193,235,193,133,230, 9,206,129,133,132,157, 93,142, 39, 19,238,250, +192, 7, 93,203,237,174, 97,213, 52, 48,155,194,249, 60,178, 58,164,143, 96,164,182,230,195,206, 82,154,150,113, 48,204,218,142, +179, 85,205,213, 76,242,191, 61, 56,227,157,243,135, 73,167, 33,206,235, 9, 14,218, 53, 15, 77, 96,228, 26, 14, 16,100,193,225, + 13, 52,173,103,191,128,197,178,227,221,181,231,225,114,158,128, 70,154,182, 53, 12,218,142,231,138, 28,147,148,251,118,114,201, +131,149,225,249,161,166, 70,114,123, 29, 55,249, 99,149, 49, 53,142,239, 29,228, 76, 91,143, 44,163,166,196,170,181, 84,185,230, + 76,228, 72,173,227,101, 46, 7, 48, 60, 64,116, 43,216,191, 18,167, 95,135, 59,136, 92, 35, 77,203,202,192,187,167, 11, 74,233, + 25,229, 25,151,124, 64,133, 16,193, 75, 66, 18,202, 17, 11,192, 8,201,188,200, 57, 15,129,121,145, 99, 58,143, 85,130,221, 34, +167,238, 2,115,235,201,116, 52,241,176,222,211, 5,133, 10, 2, 45, 44,185,107, 25,218,134, 35, 12,106,181,166, 11, 30,235, 44, +222,180,124,102, 56,162, 44,135,156,173,107, 58, 27,104,138,140, 97, 89, 96, 3,136, 76, 99,165,228, 82,161,201,141,225,235,181, +229, 75,149,226,174, 13, 28,212, 75, 78,138, 1, 59, 77,205,219,162,228, 53,209,114,203,105,174, 20,146,115,151, 49, 51,134, 74, + 6,238, 16, 48, 93,199, 90, 69, 96,180, 19, 30,167,114,156,240,180,222,209, 56, 79, 14,100, 69,193, 92, 9, 66,145,131,174, 16, +203, 6, 81,175, 99, 65,214,196,103, 84,244,242,225,109,253,116,134,204,179, 96,166,154, 85,148,133,158, 30, 35, 76, 7,133,100, +183, 26,113, 40, 5, 55, 39, 21,166,109,240,214, 80,230, 25,109, 8, 24,103,184,187, 94,115,239,252,132,175,188,255, 17,194, 73, + 68,231, 99,101,222, 69,193, 28,177,182,136,221, 1,162,200,249,220, 96,192,111, 59,188,204, 75,163, 33,135,229,136, 93, 41,169, +131,227, 65,211,196,174,172,138, 93,232, 56, 7, 79,178,197,189,246,198, 39,137,123,109, 7,253, 44, 75, 21,120, 29, 11, 23,111, + 19,215,189,215,154,207, 54,117,156, 78,154, 28, 69, 1,164,113,116,103,146,158,135,139, 90, 31,237, 58,106,165, 44, 22,176, 90, +131, 89,227,108,203,108,189, 98,229, 12,138,234,218,143, 51, 95,176,250,232, 1,237,170,227, 36,147,124,124,114, 31, 47, 61,211, +245, 25, 67,157,241,112,113, 70,103, 60,245,122, 77,231, 28, 15,166, 51,130, 2,211,116, 56, 23,233, 6, 90, 74,172,212,104,165, +185,185,179,131,214,146,115, 39,121,249, 96,143,198,105, 46,143,247,249,236,243, 71,140,247,118, 17, 33, 99, 60, 26, 32,100,198, +254,222,144,114,144, 51, 28, 87, 56, 49,228,114, 85, 49, 81, 57, 31, 45,150,201, 28, 69,161, 94,185,202, 43,187, 19, 46,141,247, +120,238,202, 33,121, 86,161,164, 38,211,154, 60, 83, 28, 86, 35,222,237, 44, 44,231,207,102,105,250,164,192,254,137, 65,161,111, +161,244,193, 84,199, 10,202, 43, 76, 89,178, 55,170, 24,230, 21, 32, 25,228, 21,139,122,206,173,143,239, 83,211,113,249,224,136, + 16, 60, 66, 42,230,203, 53,171, 46,192,226, 52,182, 91,218,100, 55,218, 31,179,122, 26,230,191,167, 81, 36,179,145,199, 3,185, +148,191,190,114,189,125, 80,205,212,134, 59, 31,182,132, 81, 66,106,201, 27,226,249,246,109,113,225, 99,149,222,227, 35,212, 99, +247,196,121,144, 46, 58,192,133, 46,174,250, 50, 79,201,208, 86, 39, 96,187, 99,241,120,128,239,231,251, 23,109,235,176, 81,108, +147, 91,216,130,222, 4, 38, 5,228, 74, 75,198,121,148,124, 85,193,179,212,138, 29, 68,148, 8, 16,129,153, 9,204,131, 99,148, + 43,230,157,143, 46, 98, 58,141, 51,186, 68,147,233, 81,238, 66,160,144,216,158,182,102, 98, 62,131, 74,157,136, 11,237,247,109, +128, 92,234,188,169, 45,133,187, 94,237,175,175, 20,122,122, 99, 38, 54, 73,222,119,178, 14,244,150,110, 65, 63,158,217,219,131, +201, 36,105, 12,196,141,134,102, 13, 39,103,240,224, 1, 76,167,112,182,138,115,251, 0,116, 29, 31, 55,107,190,182, 92,242,141, +197,130,119,231,231,252,163,217,138,245,244, 20,104,227,172,190, 91,166, 68,162, 77,109,217,142,165,183,140,125,195,201,186,101, +136, 67, 89, 67,179, 92,240,206,210,241, 75,211,227,120,124,245, 10, 86, 51,232, 58,202, 44,167,109, 59,158, 47, 74, 74,239,184, +189, 50, 92, 25, 40,140,241, 88, 23,131,237,137, 9,236,201,168,168, 39,149,228,221,206,177,155, 41, 68,107,184, 84, 40,154, 92, + 19, 28, 12,164,160,214, 69, 66, 59, 7,198, 7,215, 48,206, 82, 12,118,240,121,133,152,159, 34, 71, 35,228,116,129, 8,158, 59, + 65,177, 50, 45,101,221,113, 35,203,241, 90, 99,164,192,102, 26,151, 21, 60,208,138,133,146,156, 16,112, 66,178, 20, 1, 13, 44, +141, 67,100,130, 70,150,212, 66,176,176, 22, 87,140, 8,182,137,213, 62,142, 44,147, 92,151,146,231,188,231,149, 92,243,170,146, + 92,111,106, 14,149,229,103,151, 43,174,231, 3,230,109, 67, 94,150,220,152,148,152, 65, 73,176,142, 61,165,168, 67,164,151,221, +211,154, 87, 69,224,163,181,225,200,183, 76,199, 35, 70,139, 5,205, 96,192,117,183,228, 45,167,184, 26, 60, 43,161, 25,200, 22, + 67,198, 87, 90,184,164, 28,247,179, 44,178, 59,164,196, 7,129, 64,226,132,160,243, 14,165, 20,101,158,161, 5, 28,230, 67,230, + 74, 97,125, 2, 23,170, 28, 17,146, 40, 87, 16, 81,213, 77,248,167,232,114,232,111,201,187, 21, 59, 59,112,249,185,168, 33, 34, + 36,204, 27,132,143,129, 53,175, 74,110, 12, 71, 92,173,114,246, 29, 4, 17,232,218, 14,103, 12,239, 47,167, 60, 88, 28,243,149, +135,247, 88, 26, 71,176, 14, 33, 4,194, 69,148,190, 12, 1,161, 2, 66,103,136,178,228,247,222,120,142, 27,195, 9, 74,105,218, + 0, 59,249,128,145,146,124,117,118,134,104, 76,242,140,176,177, 99,156,165,194,226, 91, 5,244,237,174, 98,239,125,231, 83, 37, +222,123,115, 8,159,104,189,114, 83,181,203,180,135, 6,153,152, 59, 2,130,137, 99, 14, 82,181,223, 39,225,161, 15,240,117,236, +104,180,150,112,255, 62,254,228,180, 55,116, 73,175,186, 38,220,123, 8,147, 1,243,229,154,211,217,154, 15, 86,103,172,156,227, +206,249, 25,171,182,230,225,114,206,188,233, 56,159,173, 65, 8,202, 74,199, 44, 53, 56,174, 12,135, 8,114, 66, 48,116, 40,174, +142,247, 25, 21, 57, 71,123,251, 84,101,197,238,238,144,253, 97,137,211,154, 97,158, 83,230,138,241, 78, 69,166, 11, 70, 85,198, +100, 92,208, 90, 73,240,146,231,143, 46,241,238,201, 41, 88,205,228,242,132, 47, 61,119,149,203,123, 59, 88,231,168,134, 21, 77, +107,144, 34, 74,152,238, 78,134, 24,223,240,240,227, 89,204, 98, 62, 77,251,241, 73,122,229,223, 52, 31,241, 27, 78, 33, 50,141, + 72, 20,120, 67, 40,135,236, 15,135, 40,161,201,179,136, 40, 61,155,207, 56,153,206,161, 94,145, 15,198, 4, 41,153,175,214,152, +160,168,103, 11, 56, 59,137, 27,183, 79,148,184,237,106,249,137,213,122,216,208,237,250,121,164,148,143,190,255,122, 6,245, 94, +184, 71,176, 89,244,143,207,214,165,120, 20,113,126, 33, 10,148,197, 5,170,179,141,245, 40, 36,250, 96, 58,175, 96,146,139,220, +150, 88,139, 20, 27,141,251,109,113,156, 39,169,198,245,178,182,189, 26, 91,143,105,232, 33, 5,253, 72,227, 66,120, 38,178, 52, + 70, 42,144, 73,133,204, 51, 38, 94, 98, 18,143,123, 25, 2, 66, 9,156, 15,212, 70,210, 6,183,169,178,123,157,249,237,164, 81, +203,136,172,182,108,216, 18,189,118,127, 8, 91,247, 53, 5,117, 41,158, 78, 78,232, 63,231,229,166,130, 87, 9,112,167, 30, 51, +177,249,180, 93, 22,173, 34,171, 32, 75, 6, 31,206,193,243, 55, 97, 56,138, 1,189,231,238, 26, 3,247, 78,226, 12,222,218,141, + 89, 78, 99, 98,208, 54, 62,182, 9,235, 38,138, 83,157,157, 71, 37,178, 69, 29, 13,145, 76, 7,231,179,152,168,174,151,224, 58, + 76,187,230,227,206,114,167, 91,242,230,123,223,224,117,114,190,114,122,194,157,197,113,236,146, 53, 11,104, 82, 50, 32, 28,211, +249,130,223, 49, 41, 88,172, 27, 10,165,216,145, 14,237, 3,183,151, 29,135, 10,126,110,218,240,182,245, 20,109,203,213, 65,193, + 73,231,216,215, 18,233, 2,119, 28, 76, 6, 5,101, 16, 28, 40,207,181, 65,133,149,138,203,185,230,197, 65, 65,238, 2, 47,238, +237,114, 86,119, 88,161, 17,163, 61,196,236, 1, 98, 60, 64, 24,143, 88,175, 56, 57, 95,240,102,169,121,174, 51, 52,194,227,138, +146, 7, 4,238, 10,193, 42,207,153, 6,201, 76, 10, 86,169, 45, 29,165,129,193,203,130,198, 24,222,247,158, 60,175,112, 1,202, +172,164, 69,227, 8, 84,197,144,129,247, 76,138, 2, 35, 53,138, 64,169, 5,178,238,216,209,112,210,156,115,165,136, 30,228, 39, +179, 6, 68,142,113,158, 97,149,161,172, 99, 26, 20,215,218,154,147,160,216,105,151,156,148, 3,118,166,231, 44,202,146,172, 89, +243,150, 44,121, 77, 54, 44,100, 70, 97,150,204,173,166,202, 61,149,133, 55,169,144,139, 51, 62, 18, 57,121,183,160,201, 74, 22, +237, 10, 47, 64, 32,162,254,188,247, 76,242, 1,147, 92,145,133,128, 31,141, 88,233,132,137, 89, 27,132,176, 96,171,136, 98, 23, + 32,116, 21, 91,233,143,206,253, 54,115,230, 39, 5,247, 44,231, 71,255,153, 31,225,135,127,243,111,226,149,107,215,120, 99,177, +224,210,171, 47,242,155,190,240,253,212,206,114, 54, 63,231, 67, 37,120,185,136, 94, 5,213,122,205,121,215,210, 90,195,237,213, + 25, 63,125, 62,103,209, 26, 76,221,197,110,139, 3,145, 41,100,208, 72, 47, 16, 33,142,212, 68, 85,240,242,206,144,107,163, 93, + 74,157,225,164,192, 19,184,179, 94,242, 13, 27,229, 92,133,105, 54,147,208,158,174,247,172,207, 87, 15,210,131, 8,178,201,178, + 24,132,139, 98, 19, 79, 66,194, 21,245, 64,226,222,148, 75,217,132,210, 79,238,132,242, 49, 42,113, 15, 64,118,169, 51, 58,159, +197,103,105,181,120, 44,168,247,175,243, 69,164, 28, 52, 53,204, 87,180, 77, 71,119,231, 14,139,182, 99,181, 88,179,246, 14, 39, + 97,109, 29,133,200,200, 52, 92,159,236,166,226, 66,130, 40, 56, 28, 77, 40,117, 9, 66, 49, 40, 75,124, 16,148, 69,197,120, 82, +144, 11,141, 46, 36,185,206,169,202, 12,165, 37,133,206,185,127,182,102, 60,169,168,215,150,229,170,229,189,245,156, 16, 96,103, +111,196,141,201, 4,169, 20,229, 96, 68, 8,129,162,200,144, 82,162,242,140,224, 61,205,106,201,135,167,171,104, 15,251, 29, 85, + 43,143,173,179,190, 74,223,174,214,251, 74,201, 72,152, 47, 56, 81,158,165,105, 88, 52,115, 30,204,207,249,120,185, 34, 28, 47, + 97,113,204,162, 49, 44,100,193,170,113,172, 87,107, 56, 63,131,102,186, 1, 69, 61,158,241,169, 45,181,162,222,226, 20,243,232, + 92,125,251,166,246, 0,191, 95,207, 42,221,152, 77,224,238, 93,215, 92,162,167,245, 98, 51, 61, 21, 77,138,180,112, 19,218,189, + 23,120,208,249,134,222,209,163,194, 93, 2,143,249,190,165,159,109,180,223, 73,137, 85, 16, 27,254,188, 20,223,172, 77,208, 43, +252, 93,180,220,229,150, 96,156,222,100,202, 23, 24,133, 88,173, 58,231,233,188, 96, 55,147, 72,173, 88,135, 16,213,183,164,226, +204,153, 40, 90, 34, 21, 11,239,112,253,239, 17,114, 11,145,158, 64,124,189,251,157,148,155,234, 61, 79, 0,153, 92,197,207,245, + 0, 69,169, 54,128, 79, 31,122,140, 76, 58, 23,177,105,226,244, 20, 55,122, 42, 32, 49, 64,110,111, 60, 23, 27,100, 9,187,123, + 49, 0,127,210, 61,204,213, 70,132,135,116,188,229, 40, 50, 55, 38,147,228,183,238,162,134,117, 91,199, 17,210, 98,145,174, 41, +241,221, 38,167,188,102, 5,243, 21, 44,215,176, 92, 65, 51,131,179, 57,204,207, 96, 49,219,108, 64, 15,103, 49,121,163, 23,206, + 49,145, 51, 78, 32,204, 78, 99, 85,190,154,193, 98, 26,141,125, 22,231, 96,107, 70,193,208, 53, 75,190, 54,159,242,165,157, 93, +190,122,255, 30,129,140, 15,206,166, 28, 73,248,219,181,225,246,249, 9, 47,155, 26,231,224,174, 9, 92,223, 29,226,114,141,237, + 12, 7,147, 1,243, 69, 77,174, 53,161,200,208,198,209, 0,135,133,226,182, 11, 92, 31,104, 22,139, 53,217, 96,194,103,117,224, +238,114,138, 24,237, 34,234,101, 76, 70,198,195,152,191,158, 28,243,122,166, 41,155,142, 51, 5,247,133,165,214, 25, 15,189,101, + 46,162, 43,222, 89,235,145, 90,178,104, 37, 83,103, 80, 46,240,139, 1,106,173, 9, 50, 71, 7,143, 47,134, 72, 12,131,225, 1, +187,190,161, 26,237, 97, 28,228, 90, 35, 84,134,149, 25, 82, 11,180,119,156,215, 29,109,187,166,198,209,214, 13, 39,117,205,123, +139, 37, 95,110,226,109,184,238, 13,111, 4,201, 75,120,206,148,230,200, 52,156,150, 67,246, 2, 44, 60,188, 20,214,188,229, 75, +246,154, 5, 75, 61,100, 20, 26, 26,167, 25,102, 48,182, 43,222,206,118,185,181,156,241, 1,154,118,126, 70,109, 5,132,142, 73, + 94, 80,200,140, 66,106, 10, 25,169,121, 95, 24, 12, 57, 84,129, 87, 43,197,221,214,210,117,150,235,255,216, 23,152,220,184,196, +252,206,233, 70, 91,253,137, 1,189,151, 72, 76, 27,110,177,173, 99, 81,241, 79,254,142, 31, 34, 43, 74,170,178, 34,180, 43,126, +248,251,254,113, 94,124,233, 42,135,229,136,215,255,222,207,224,131,229, 43, 65,242,188,109,248,216,118, 52,182,227,141,249, 9, +175, 47,151,220,239, 58,108,103, 32, 4,180,130,203,153,230,181,113,198, 97, 46,120,185, 42, 24,102,146,105,215, 34, 3,188,116, +249, 18,151,171, 49, 78, 73, 36,112,102, 45, 31, 47,214,124,216,212,113, 93,158, 77,163,227,154,181,136,158,142,108, 62,197,126, + 43, 28, 23,202, 81, 38, 68,153,242,182,141,231,107,125, 26, 69,102,177, 64,241, 73, 35, 30, 19, 71,146,157,217,236,151,150,141, + 59,102,207,127,239,247,181,199, 18,249, 39, 7,245,254,101, 82, 22, 62, 95,196,247,182,141, 45,179,218,226, 0, 93, 13,241, 82, +242,252,164, 98,214,193, 32, 83,152,160,168, 84,198,164, 44, 25, 14,114, 6,101, 73,103, 61,227,113, 69, 89, 72, 84,166, 25,143, + 50,180,206,201,181, 38,203, 20,135,163,156,218,120,118, 70, 57,247, 78,107,242, 66,161,133,226, 82, 89,114, 26, 60,151,171,156, +203,147, 33,151, 15,247,201,116, 70, 83,215,100,213,128,206,117,232, 32,152,173,102,156,175,150,124,124,190,136,179, 6,241,132, + 13,254,211,112,184,183,214,218,133, 19,221,133, 2,155,221,180,107, 73,153,150,177,180,214, 48,111, 29,171, 69, 77,104, 13, 76, +143, 47,220,197,194,218, 19, 22,211, 72, 21, 58,189,183, 9, 84, 79, 3, 89,248,173, 54, 75, 31,176,122,160,198, 54, 77,172,159, +195,252,255,161, 74,239, 81,220,125, 64,223, 78, 58, 92,156,133, 94,160,188,149,220,146,133, 5,172, 74,224,186,132,109,232, 18, +152,205, 54,209, 94, 53, 81,149, 98,208, 45,184, 48,177,239,171,239,222,198,180, 79,110, 50,189,201,146, 51,189,153,157,171, 68, +147,203,179,216, 17,241, 91, 1, 83, 19,171,209,212, 17, 41,148, 64,151,154, 90,194,185,243,140, 81,120, 4,199,174,163,146,138, + 22,207, 50,120,100,208, 92,108, 91,109, 66,242,247,107,165,200,211,188, 60,209,230,122,139, 90,147,196,120,250,174,131, 74,146, +195,189,160, 69,235, 55,222, 1,189,127,122,216, 10,234, 23, 70, 48, 9, 96,163,253, 70, 88,231,113, 0,143,183,159, 28,208,203, +100, 64,228, 21,148,137,163,223, 39, 39,210,193,229,195, 40,209,154,229, 73,201,175,142, 85,217,106, 25,209,243,189,138, 88,127, + 49,251,249,188,183,113, 67,183,221,230,255,219,235,218,216,248,181, 85, 29, 19,134,222,209,176,141,237,120,206,231, 17,129,127, +239, 54,156, 78,225,248, 12, 30,158,130, 11,116,161,133, 7,103, 96,107,222,152, 79,121,216,118,188, 59,187,207, 29, 7,111,204, +206, 88,205,207,192, 26, 78,101,244, 65,120,161,138,231,119, 74, 96,183,200,200,188, 99, 80,106,186,206,179, 43, 3,115, 29,169, + 92, 15,219,142, 10, 79, 94,100, 12,132, 2,103,200,117,198,157,144, 70, 72,222,192,238, 40, 6,171,206, 18, 60, 52,237,154, 55, +230, 53,167,198, 50, 83,130,169,107,176,153, 70, 42,197,251,117,203, 88, 11,124,200, 88,219,142,129,202,248, 27,157, 97, 21, 34, +234,126,222,181, 44,138, 49, 57, 1, 89,236, 48,212,154, 73, 54, 36, 83,138,188,218, 33,132,128,149, 25, 66, 6,140,214,184,188, + 96, 25, 44, 43, 93,114,111,109,121,216,174,120,184, 94,210, 9,137,111, 87,228,182,163, 54,150,207, 75,193,173,224,185, 92,175, + 56,174,198,236,173,166,204,144, 12,240,220, 86, 5, 47,179,230,196,107, 38,210, 80, 59,197, 80, 26, 22,157,195,232, 33, 52, 83, +234,225, 46,221,106,198, 44, 43,112,237,154, 73,166, 24,120, 71,165, 50, 70, 89, 73, 41, 4, 47, 9, 65,165, 53,101,240,140,133, +224,102, 33,248,229,198, 49,127,227, 29, 22, 31,221,142,227,201, 44,123,172,224,240,124,179,134,181,140, 40,240,155, 55,227,154, +114, 14, 20,236,223, 56,228, 96,103,143,249,124,202,123, 15, 31,240,249,207,190,200,120, 88, 32,164,231, 23,126,246,231, 17,179, +115, 40, 5,191, 60,155,241, 43,171, 53, 95, 93, 76,249,160,235,152, 37, 54,135,176, 32,130,163, 0,174, 15, 37,215,130,224,122, +158,113, 45, 83,188, 88,229,124,190, 44,153,250,142,175, 52,158,225, 64,227, 69,198,185,247,124, 56, 91,240, 15,154, 46,106,149, +244,207,208,114, 5,227, 33,131,223,248, 26,166, 53, 81, 95,254,153, 1,169,125, 98, 46,210,236,220, 38,234,106,114,105,202,212, +134,174,171, 82, 66,159,103,233,185, 72, 96, 94,177,213,197,235, 85, 63,125, 82,170, 11,201,171, 99, 43,209,248,228,160,254, 36, + 48,153,115, 17,241,106,193, 9, 73, 86, 22, 24,162,104,129, 71,115,115,156,211, 57,201,112, 56,164,208,154,172,172,168, 74,201, +238, 32,167,200, 75,170, 44,103,152,107,138, 66,178, 55,208, 12,135,154,224, 5,231, 43,203,188,117, 52, 77,131, 16, 2,157, 9, +102,211, 53,227, 60, 99, 55,207, 24, 15, 71,236, 76,134, 4, 41,217,153, 12,177,198,226,172,199, 99, 57, 62, 61,227,193, 98,206, +241,157,227, 40,247, 39,210,220,226,211, 58,201,105, 54, 85,185,125,194, 92,221,250,141,168,135,210, 41,121, 72, 52,171, 58, 1, + 26,234, 22,234,105,156,119, 36, 51, 3,234, 25,212,115, 88, 46, 30, 13,102,159, 22,208,212, 11,236,108, 1,166,127, 77,170,244, + 94, 78,247, 66,130, 87, 63,186,137,123,183, 65,161,103,122, 35, 52,211,211,206, 50, 21, 1,109, 50, 75, 21,113,207, 17, 77, 82, +177,222,166,192,214,165,202, 89,108, 2,122,150, 50,212, 11, 3, 5,187, 17,180,185,152,187,139,173, 17, 68, 66,138,247,179,244, +254,251, 82,179, 35, 58,220,109,117, 69,250,177,128, 78,234, 51,169,109, 30, 4, 92, 41, 36,115, 3, 7, 69,129, 11, 30, 43,161, +144, 18,237, 92,100,202, 11,193,220,137, 56, 79,239, 1,126,190,159,161,245, 65, 90,110, 85,162,108, 42,118, 82,117,155, 37,238, +124,145,228, 96,149,218,120,169, 39, 36, 62,153,120, 52,145,203,182,100,137,101, 90, 27, 23,226, 53,225,217,129,143,187, 71, 49, +104, 95, 58,140, 78,103,123, 7,241,239,181, 93, 74,138, 21, 92,218,131,157,253,141, 16,146,202,226,189, 57,157,198,164, 85,203, +141,229,237,183,227,220, 88,232,152,196,229,122,115,252,214,193,170,139,188,122,211,197,251,179, 94,197,247,166,129,121, 18,231, +152,173,224,236, 12,230,211,120, 47,143,239, 68, 33, 19, 41, 96,126, 12, 82, 34,164,231,104,114,137,194, 26,118,139, 12,103, 61, +185,119,204,189,164, 8, 22, 33, 5,167,198,243,126, 23,165, 92, 95, 25,230,252,242,131, 5, 82, 73,158,203, 36,239, 47, 86,188, + 58,168,184, 55,159, 69,151,185,249, 49,100,154,224, 60,161,243, 4,161,241,245,130,179,149,225,227,214,243,110,103,121,177,144, +220, 53, 53, 87,164,228,107,157,103, 97, 13, 3,169,248, 74, 8,204,179, 18, 92, 71, 32, 64, 89, 97, 93, 96,169, 75,118,139, 28, +139,100, 52,222, 71, 42, 65, 53, 28,226,243, 28,161, 74, 58,149, 51,151, 48,117,138,135, 42,199, 56,193, 74, 71, 51, 22,175, 50, + 44, 6,231, 60,115,157,243, 57, 17,248,106,107,248,162,232, 88,150, 99, 14,204,140,243,209, 1,131,166,197, 22,154, 27,161,230, + 61,147,115,168,162, 46,209,176, 16, 44,150, 29,168,140,117,103, 56, 46,198,148,171, 25, 62, 43,113,235, 37,181, 86,148,235, 53, +215,171,156,177, 46, 41,165,228, 72, 43, 6, 58, 39, 88,195,174, 82, 52, 30, 20,142, 43,185,231, 77,227, 19,180, 63, 21, 87,223, +180, 38,182, 91,238,125,242, 91,240,252, 23, 94, 97,118,214, 69,161, 36,107,120,255,141,183,248,242,207,253,191,124,237,157,143, + 56,195, 51, 18,134,213, 98,202,151,223,126,157,135,175,223, 2,105, 16,211,105,252,125,117, 29,237,120,219, 22,209,118, 73, 84, +198,146, 9,120, 99, 58,215,121, 0, 0, 32, 0, 73, 68, 65, 84,161, 16,148, 33,176,175, 4,215,117,198,110,150,115, 41, 83,228, +165, 70,123,201,131,213,138,183,141,229,151,235, 37,175,215, 29, 31,154, 58,185, 95,134,205, 94,159,229, 20,175, 94,231,115, 7, +215, 57,203, 61,246,238,244,153,100,209, 31,109,195,167,185,155, 76,115,244,158,206,219, 38,141, 14,181,253,125,105,175,243,253, +222,183, 69, 95,237,157, 37,123,230, 75,150,246, 54,185,121,230, 63, 93, 80,135,232,174,132, 74,148, 34,197, 11,151, 43, 38,121, + 65,235, 21,207, 13, 53,247,106,139,119,150,221, 66, 81,150, 67,134,101,198,238,168, 64,233,140, 97,153,115,237,176, 98, 50, 16, + 12,171,168, 45, 63,204, 21,109, 23,105,113, 81,225, 85, 32,133,143,182,130, 50,202,115,102, 2,206, 27,199,254,184,160, 26,150, +232, 60,231,228,120, 74,150,103,172,151, 51,100,240,252,204,215,223,143,224,157,126, 13,169,240,236, 85,172,222,210, 97,233, 43, +227, 94,213,205,251,111, 78, 50,123,234,129,177,241,130, 6, 31,219,131,245, 50,206,253,218,246,201, 0, 17,249, 29, 6,215,139, +196, 66,126, 50, 79,242,187,253,234, 41, 95,189, 7,122, 79,197,208, 91,114,188, 38,233,196, 91,183,161,115,108, 87,231, 90,197, + 74,149, 16, 3, 87,214,243,209,147,176,143, 49,169,130,139,226, 31, 23, 0,147, 62, 65, 80, 91,109,242,109, 32, 93,255,222,187, + 69,153,110,139,186,168, 30,165,126,201,236, 17,188,227, 35, 16,220,222,254, 52,209,239, 68,166,169,125,224,160,136, 60,221,135, + 78,177,151, 65,231, 2, 70, 72,242, 0,107, 41, 89,251,237,225,119,162, 84, 6,145, 90,240,169,122, 14, 79,160, 82,246,194, 19, +219,163,131,190, 52,247, 46,137, 29,165, 99,179,189,118,116, 47, 68, 20, 30,109,199,247,172, 12, 23,158,157,234,248,217,207,176, +115,227,136, 47, 94,127,129,207, 94,190,202,193,164, 98,111, 48,100,180, 55, 97, 58, 91, 70, 20,243,100, 2, 7, 99, 24, 95,226, +168, 44,121, 41, 47,121, 41,211, 92, 17,129,187,245, 50,130,228,124, 6, 7,123,176,179, 19, 29,175, 92,247,233,214,150,115,177, + 82,207,139,141,197,110,111, 35, 44, 84, 92, 11, 33,196,153, 99,211, 38,245,199, 38,126,172, 23,241,123,150, 43,184,127, 7,150, + 45, 76,231, 49, 25, 88, 45, 1,139, 9,130,171,194,114,207, 8,246, 84,180, 73,253,192,194,190, 14,236, 89,195, 91,198,243,176, + 54, 92,241,158, 3, 5, 31,118,158,151,117,148,240,157, 11,120,206, 89, 30,172,106, 94,174, 42,238,173,231,208,173,192,121,194, +124, 69,232, 12,190,200, 9, 90,226,219, 53,222, 91,124,187,230,227,198,113,164, 60, 15, 76,195,184, 80, 44, 87, 11, 58, 33,185, +107, 28,141,179, 4, 85,164,241, 75, 14,195, 29,130, 11,188,176, 51,100,164, 75,106,211,177,183,179,131,109, 44, 94, 15,240, 66, + 98,149,164,182,130,135, 30,206,144,172,242,130, 38,171,232,202, 1, 70,101,248,124, 4, 58,227,133,172, 98, 32, 37, 63,176, 59, + 98,237, 50, 14,204, 18, 91, 76, 24,155, 25,228, 67,178,174,225, 86,200,121, 49,119,172,140,163,202,162,214,142, 2, 90, 27,184, +151,101,200,213, 28,202, 17,147, 52, 67,191, 36, 21,167, 46,112,128, 99, 95, 72, 74, 41,185, 36,115,118,114,117, 33,136, 56, 84, + 25, 65, 8,206,157,225,235, 30, 56, 57,139, 34, 51,206, 60, 1,225,238, 31,107,197, 71, 53,207,217,233, 57, 44,167,143, 22, 41, + 58,137,127, 53, 29,239,191,115,155,175,255,242, 27, 60,252,165,143, 98,101, 43,227,158, 35, 86,171, 8,160,108, 29,162, 73,232, +118, 27, 41,146, 82, 10, 14, 66,224, 69,173, 57, 16,130, 61,169, 25, 40, 69,145,105,114, 45, 25, 72,193,204,123,102,235, 46,250, +184,247,163, 57, 33, 99,210, 37,162, 2,101,240, 30,123,231, 12,183,171,153,189,254, 46, 98,189,250,244,123,168,216,162,173,170, +212,189,236,131,114,175,176, 25, 32,250, 30,167,203,180,221,230,239,247, 48, 37, 34,128, 78,108,213, 86,129, 71,170,245, 79, 23, +212,181,222, 40,229, 20,146,163,215,118,248,248,173, 51, 6, 59, 25,135, 69,206,221, 58, 16,130,229, 82,169,104,125,206,115,135, + 67, 14,118, 75, 92,200,168,180, 96,127, 39,103, 50, 20,140,170, 28,239,147,228,102, 38, 49, 38, 90, 2,158, 44, 26,170, 66,225, +124,224,225,201, 10,219,212,228, 89,172,182,134, 85,129,247, 2,149,229,120, 31,184,116, 48,230,252,116,206, 98, 49,229,175,191, +119, 11,238, 78,227, 76,207,134,141,109, 39, 60, 91,245,208,239,203, 50,157, 95,106,219,125, 51,111,253,177,247,254, 63, 79,219, + 60,251,100, 65,242,221, 49,178,251,213,160,161, 61,203, 61,183,143, 38,214, 17,101,190,149, 88,100, 58,137,192,164, 64, 45,182, + 43,249,196, 41,239,101, 99, 67,136, 93, 14, 89, 93, 56, 41, 69,109,247, 46,205,200, 83,155,218,182,137, 54,152, 61, 26,196, 67, +216,154,169,139, 13, 8,174,179,143,242,213,123, 84,124,182,165, 92, 87,136, 71,121, 52,130,141, 96,145,202, 55, 82,144, 40,130, +119, 56, 41,105,131,140,167, 40, 21,181,151, 81,132,201, 64,166, 21, 75, 19,131,252, 69,192,118,225, 81,173,227,190,163,114, 97, + 79,107, 55, 85,122, 63,203, 15, 61,152,166,167,203,184, 71, 1,112, 50,141, 6,182,147,153,190,187,224, 83, 30,209,111, 8, 97, + 11, 68,248, 73, 70, 19,229,152,157, 27,215,121,245,224,136,113, 57,100,255, 96,159, 65, 62, 32, 24, 67,174, 20,235, 76,209,206, +215,176, 63,132, 75, 87, 57, 26, 12,120,181, 26, 51,214, 26, 45, 96,224, 59,180,111, 57, 61, 94, 69,156,195,100, 24,223,203, 28, +166,179, 79, 81,165,167, 57,106, 33, 35, 29, 32,139, 84,198,223, 48, 86,252,192,164,228,249, 82,241,193, 89, 27, 91,242,193, 63, +106, 17,220,175,125,147,230,147,109, 19,255,109,218,184,233,175, 18, 24, 15,207, 92,121, 90,169,120,123, 54,165, 53,130,251, 77, + 77,133,226,118, 16,212,171,154,214, 88,198,121,198,241,186, 99,100, 28,141,214, 28, 8, 48,171, 37,199,197,128, 87,114,201,219, +243, 37,235,122, 14,198, 16,112, 23,114,253, 97,246, 16,175, 6,120,229,241,109,139, 55,150,102,177,224,195,179,134,219,243,154, + 15, 79,167,220,111, 26,110,227, 35,157, 81, 15, 98, 48, 27, 31, 16,218, 8, 42, 29, 20, 21, 69,210,188, 23,163,138,243,117, 67, + 59, 24,144,103,154, 51, 47, 17, 82,115, 39, 8,110, 89,139,202, 43,150,121, 69,208, 89,244,186,207, 39,144,143, 40, 6,251, 92, + 43, 6, 92,157,236,130,200, 57,154, 20, 52, 89, 73,190,154,113, 76, 69, 22,106,138, 98,196,161, 52,220, 94,214,236, 23, 37,141, +177, 49, 87,178,129,219, 2,154,166,166, 40, 42, 14, 4, 12,149,230,185, 42, 67, 90,203, 43,227, 10, 37, 20,218,117, 28,170,140, + 61,149,145, 37, 48,104,147,196,151,156, 16,204, 3,124,109,185,140,207,129,173, 83,146,109,191,197,102,214,143,174,186, 39,235, +132,132,100,137,108, 82,146, 95,102,136,139,194, 34,126,143, 72,227, 29,129, 71,212, 77,164,204, 39,243,149,163, 74,114, 83, 72, +118,165, 38,151,130,137, 86,236,229,154, 12, 77,174, 36,135, 74,177, 11,204,188,167,113,118, 51,102, 18,177, 3, 23,178, 52, 66, +107, 91, 86, 31,222,137, 20, 50,239,163,104,205,167,217,127,251,209,147, 76, 64, 25, 45,226,154,101,171,144, 20, 73,116, 75,176, +225,253,135,237,107,145,246,191, 97, 21,181, 91,122,205,120, 69,220,255, 62,117,165,190, 45,253, 41, 60,228, 37,171, 44, 32, 86, + 29,211,181,229,222,210, 83, 35,184,170, 29,153,148,156, 47,151,188,124,117,159,162, 26,225,140,225,104,191,228,104,183, 96, 82, +169,200,231, 86, 34,250,119, 8,129,214,240,211, 95, 91,113,176, 3,171,218,208,218, 14,151,102,122,214, 88, 92, 16, 12,134, 5, +206, 5, 70,163,156,229,162, 35,207, 21, 77,211,114,182, 88,241,238, 91,239,197, 86, 96,109, 55, 96,178, 94,151,248,211, 4, 76, +191, 37,198,242, 29, 7,195,199, 80,119,223,205,224,254,204, 85,208,119,161, 59,208, 7,112,185,141,109,145, 27,113,159,222,246, +243, 66, 19, 89, 71,208, 86,166,226, 70,237,237, 6, 5,223,219, 25,170, 34, 1, 67, 68,156, 83, 74,145,130,119, 6,126, 29, 3, + 91, 89,110, 2,217,186,217, 82,164,235, 85,212,194,163,129,110, 59,160,235,100,222,162,229,198, 1,174,175,142,123, 81, 27,177, +229, 97, 78,226,150,247,246,165,200,152,249, 42, 69,161, 36, 51, 20,153, 16,248, 16,144, 42, 32,180,224,172,182,228, 90,209,110, + 75, 70, 26,255, 40,194,191,139,173, 59,218,232,149, 64,161, 31,173, 80,251, 4,167, 15,242,253,231,100, 15,186,179,155, 7,251, +113,166, 99, 95,173, 15,163,146, 87,228,245,187, 77,119,234,147, 42,245, 27, 55,248,226,205, 27,148, 89,201,225,222, 37,138, 60, +199,217, 14,107, 28,185,202,104,108,195,204,117,176,179,195,247, 29, 94,225,181,209, 37, 14,170, 1,141,181, 81,205,178,105,104, +187, 21, 15, 86,117,172,146,178, 4, 20,156, 47,227,115,248,105,170,244, 11,202,161,134, 50,231,218,176,224, 55,142, 11, 38, 42, +162,209, 39,165,228,195,217, 42,169, 42,202, 71, 85, 4,165,140,201, 88,153,197,107,161,100,220, 52,219, 52,207,151, 1, 86, 13, + 93,211,209,154,154,208,213, 44,156,195,205,143, 57,246,154,145, 51,236, 6,207, 73,219,113,108, 58, 20,130,155,227,156,176, 94, +131,214, 40,169,216,239, 26,238,173,107, 30,212, 43,172,169, 35,192,207,180,209,202,181,235, 8, 34, 39,172, 87,132,122, 77, 24, +148,120, 99, 99,176,119, 93,252,220, 98, 78,168, 87,132,233, 50,186,194,217, 6,116, 65,176, 22,198,187, 72,161,121,101, 52, 32, + 32, 56, 21,160,180,226, 65,158,211, 8,201, 87,140,163,203, 52,175, 11,141, 13,176, 76, 28,106,164,138,207, 80, 62,140,231,156, + 15,184,190,187,199, 36,203, 24,142, 70, 20, 8,206,157,102,156, 11,140, 46, 56,104,150,172,130, 66,248,154,115,163,121,126,167, +228,108, 89, 51, 25, 42, 22,235,192, 45, 33,120, 94, 40, 12,240,188, 18,236,141, 10,156, 23,220, 24,148, 28, 85, 21,227,108,192, +218, 59,174,102, 5,210,116,236,231, 57, 57, 2, 57, 40,169, 9,120,173, 88, 35,185,237, 29,111,218, 4,152, 60, 91,125, 50,150, +227,153, 71,190, 62,142, 52, 73,160, 48, 25, 69,150, 68,191, 71,167, 61, 78,116, 14, 97, 58,132, 18, 8,239,144, 62, 32, 21,100, + 82,112,128,228,178, 20,236,228, 25,149,148,220,172, 74,174, 22, 21, 87,138,156,163, 34,231,234,160, 98, 87, 75, 62, 92,119,180, + 18,130,210,132,196, 42, 10, 33, 2,154,195,178,133,179,179, 24,204, 71,195,232, 80, 39, 36,194,218, 79,103, 60,230,183,112, 39, +125,210,211,155, 48,245,202,155,193, 63, 74,195,237, 5,208,122,204, 82, 94,114, 97, 92,214, 39, 67, 91, 73,252,179, 7,245,158, + 58,165, 36,232, 97,148, 7, 60,158,163,158,159, 16,206,107,174, 95,175, 40, 50,203,135,115,195, 81, 41,184, 58,201, 9,162, 4, +111, 57,220, 31, 34, 69, 96,119, 32,216, 25, 22, 56,231,104,141, 67, 11, 88,119, 6,239, 4, 95,255,224,140,247, 63,186,195, 32, +207, 88, 45,150,204, 23, 75,214,171,154, 60,151, 12, 70, 21,121,158, 1, 10,103, 28, 69, 1, 77,227,112,193,241,254,253,251,204, +117,160,187,117,188,213,170,120,140, 42,246,105, 91,220,223,141,224,123, 1,172,243,159,152,160,254,170, 6,116,245, 93, 41,213, + 19,200, 73,110,141, 41,236,163, 25,202,246, 38,155,171,216, 38, 29, 12,145, 95,252, 44, 97,182,136,237, 81,231,160, 24,197,170, + 44, 36,250, 91, 16, 81,205, 43,171, 54,116, 47, 37, 55, 52,144,117,162,147, 92, 56, 36, 37,224,160, 44, 54,237,233, 46, 5,204, +109,103, 62,149,199, 68, 66,170, 13, 69, 48, 16, 91,181,170,167, 8,166, 81,128, 78,130, 57,201,122,148, 66,167,141, 34, 38,135, + 6,193,160,204, 88, 27,143,150, 34, 62,143, 38,144, 73,201,188, 55,108,184,248,251,126, 19,204, 93,136,215, 34,108, 81,250,182, + 91,240, 61,184,204,111, 85,250, 33, 41,205,117,110, 3,154,235, 85, 4,251,148,189, 99, 83,193,103,105, 3,232, 91,123,186,183, +139, 20,159, 72,115, 44, 94,122,137, 16, 44,215, 15, 14,201,243,156,206,116, 40,145,108, 72, 9,180,193,113,188,106,248,210,213, + 67,138,106, 55,122, 60,228,138, 65, 86, 96, 58,131, 20,142,135,179, 19,206, 62,190, 19,219,200, 75,147, 16,241,221,166,253,222, +107,100, 63,237, 25,236,191,222, 3, 63,117,129, 28, 14,248,157,151, 42,118,178, 28, 47, 4, 74, 64,215, 26,222, 57,111,146, 35, +152,217,172,181,190, 75,148,231,112,120, 53,174,177,174,222,140,204, 50,157, 68, 59,146,141,240,116, 30,175,213,131,187,169,117, +187,100,161, 52, 67, 60,210,117, 72, 2,133, 3,107, 45,227,193,144,206,116,248,229,154,157, 66,243,229,243, 57,206,180, 9, 39, + 99, 8,166,139,125,107, 27, 8, 82, 16,218,134, 32, 3,161,105,183, 93,182, 47,138,172, 96, 34, 88, 49,220,187, 15,195, 49,140, + 71,113, 45,234,104, 39,122,170, 51,188, 16, 92, 30,230,220, 91,117, 92,175, 50, 62,108, 45,151,180,230,190,243, 88, 36, 43,169, + 8, 34,128, 46, 19, 56, 42,138,232, 48, 28,115,105, 48,228,102, 38,121,241,112,135,182,181,168, 73,197,209, 32,231, 97, 23, 56, + 20,158, 85,174,105,219, 21,222, 73, 14, 10, 56,158,173,216, 27, 23,172, 59,207,185, 23,236, 2, 75, 33,201, 93,199,225,184, 96, + 71, 74,198, 74, 48,148, 25, 58,203,217,205,115, 14, 7, 35,240, 2,169,115, 86, 93, 67,200,114,234, 32, 88, 40, 65,155,101,220, +117,158,247,140,224,142,243,177, 91,178, 92,197, 81,152,247,143,219,108,125, 27,237,201,222,157, 49,205,155,125, 44,222,132,220, +224,124, 68,138,129,194,216,244,110,144, 34, 35, 35,160, 51,201,101, 45,217,209,138, 35,157, 49,210,154,129, 46,169,116, 70,153, +229,236,102, 5,198, 91,172, 53, 76, 21,212, 4,100, 94,224, 93,228,185,203,174, 35,172, 26,112, 9, 1, 63, 44, 35, 45, 78,134, +139,142,238,183,101, 27,254, 73, 64,233,139,175,251,205, 62, 96,211,124, 93, 37, 61, 13,107,226,216, 55,124, 26,244,251, 19,129, + 90, 9, 1,110, 36,131,207, 95,197,124, 56, 67, 93, 31, 96,131,103,250,238, 12,177,110,185,127,122,202, 7,203, 53, 59,250,156, +157,170, 64,229, 35,118, 70,146,163, 73, 69,221, 52,148,133,138, 0,145,206,197,153,185, 14,236, 13, 5, 85,149,209,186,142,233, +188,229,193,241, 3,140,119,104, 41,145, 89,198,100, 84,224,141, 97,185, 92, 81, 86, 37,211,243, 25, 93,211, 81,105,197, 27,247, + 31, 16, 86, 6,154,121, 82,183,106,191, 51, 77,244, 79,251,163, 23, 93,140,132,180,238,179,172, 39,217,168,249,111, 29, 67,191, +227,164,194,109,241,161,229,227,227, 19,249,232,199,183,188, 78, 9, 76,160, 83, 48,247,114,155,103,245,205,235,195,165, 69,169, + 50,194,206, 78, 68, 48,135,164, 38,167, 66,156,193, 22, 18, 66, 30,249,154,189, 87,124, 81, 36, 10, 88,153, 90, 81,126,179,128, +123,164,123, 79,147, 99,139,214,214,250, 71,145,213, 69, 30,129, 39,190, 23,131, 73, 21,253,182,211,153, 21,155, 74,223,187,168, +242, 36,185, 48,141,136,179, 52, 46,208,243,198, 57, 42, 41, 89,121, 8, 33, 32, 2, 44, 43, 25,171,101,221, 11,238,216, 77, 64, +207,213,134,146,231, 82, 50,164,244,133,132,236,197,245, 19,233, 30, 52, 41, 49,201, 68, 60, 72,151, 42,110,145,142,143, 45,111, +117,181, 21,220,243, 30,116, 19,175,247, 69,182,255, 45,198, 51,238,124, 73,117,245,136,138,232,243,160, 16, 12,134, 21,109,189, +198,250,142,186, 93, 50,204, 4,223,115,253, 38, 85, 85,177,146,138,194, 11, 36, 6, 92,199,241,114,198,215, 78, 78,225,193, 52, + 57,229,249,216, 6,116, 38,137, 3,145,186, 50,219,224,202,199,147,222,173, 17,138,146, 32,115,190,120, 56, 96, 47, 47, 24,107, + 69, 16, 18,227, 29,223, 88,183, 28, 79,163, 90,221,133,176, 80,191,110,123,187,231,213, 44, 2, 40,133,219,162, 7,110, 9,232, +180,233,231,219, 85, 52,179, 89, 45, 99,208, 41, 37,179,102,206,209,112,151, 83,211, 82, 8,193,165, 76,179,182, 29,187,206, 49, + 42, 43,254,254,195,227,152,168,180,179,200,181,183,109, 4,188, 42, 69,176, 38, 6,242,229,121,108,215, 58,247,104, 48,127,236, + 61, 38,170,115,194,217, 12,142, 14,211, 26, 43,200,117, 84,161, 84, 68, 13,251,179,214,114,181,140,250,235, 45, 30,107,124, 20, + 43,234,129, 83,147, 73, 92,115,121, 9, 50,227,112, 92,112,115, 50, 64,103,146, 44,203,233,148,164, 13, 48,145,138,187, 86, 48, + 86,154,219, 54,160,156, 99,218,121,148,119, 44,189,164,105, 45,149, 16,220,115,134,207,142, 52, 7,131, 10,225, 61, 59, 66,112, +165, 28,178, 18,130,177, 86,200, 16, 24, 13, 7,212, 1,186,214, 50, 42, 43,150, 72,214, 69,206, 84, 42,102,206,242,160, 17,204, +165,230,212,182, 56,103, 8,138,136,185,248,118,192,147, 79,220,134,108,194,219,116,143, 24,170,136,190, 5,191, 61, 81,115, 46, + 78,161, 36,232, 92, 49,146,138, 29, 41,184,146,107, 46,149, 5, 35, 85,196,173, 42,120,164,208,180,222,160,180,102, 41, 3,211, +186,102,156,101,212,214, 99,157, 97,164, 4,245, 98, 25, 19,186,243,121,212,134,207, 51,132, 22, 9,101,111, 35,229,237, 49,136, +206,167,126,189,112,141,253, 47,124,134,250,214,189,111,102, 65, 61, 30,232,219, 46, 57,133,118, 79, 28, 19, 63,209,222,236,171, +127,239,167,248,143,127,226,127,224,111,254,221,159,123,242, 1,172, 27, 24,148,172,223, 58, 69, 20, 26,119,107,193,186,245,136, + 28,126,240,251, 95,228,203,255,240, 1,208, 32, 41,185,123,118,159, 32, 53,207, 95,126,137,119,238,157,241,202,149, 9, 47,222, + 60, 98,181,106,121,231,131, 7, 96, 61,247,167, 45,139,117,205,221,143, 79,152, 45,215,156,181, 75,150,214,208,153, 64, 86, 72, +118,179, 33,167,199, 51,254,212,191,242,187,248, 63,127,238, 77,190,113,235,132,182,107, 57, 95,213,252,181,159,248,215, 81, 74, +226,211,188, 85, 74,137,148,130,201, 43, 63, 66,103,126,149,145,225,189,184,137,216, 70,193,109,251,180,127, 27,137, 65,127,131, +244,119,128,108, 87,143,189,111, 31,235,183,215, 3, 75, 7,148,192, 45, 79, 82, 84, 26,148, 23,235, 34, 2,158, 44,188,243, 97, +100, 74,168, 50,118, 79,124, 52,202,192, 38,138, 90,158,116,225,109, 66,138, 23,163,200, 36, 80,101,178, 7, 77,188,105,183, 69, +235,235,131,123,191, 14,117, 58, 46,107, 31, 61,199,124, 11, 64, 38,100,148, 28,246, 34,126,190, 87,108,235, 91,216, 89,186, 88, +193, 61,202,149,135, 11,117,184,117,202,152, 59, 31,232,130, 68,182, 2,143, 75, 35,137,116, 45,122,197,184,158,146, 7,177, 29, +220,177, 53,219, 79, 92,244, 32, 54, 93,132,254,107, 62, 89,173,246, 84, 55,107, 55,179,247,167,101,155,222,166,132,193,166,243, +121,134,219,217, 44,120,240,230, 71,148,159,147,156, 46, 87,188,114,245, 26,166, 61,163, 44, 52,160, 56, 24, 76,248,204,209,101, +202, 65, 9, 34,227,250, 96, 72,107, 28, 31, 62, 92,240,229,213, 20,191, 92,110,116, 7,214, 22, 6, 26,202,113, 60,134,198,197, + 64,223,175, 7,251,148,181,158, 0, 73,180, 29, 20, 57,215,247, 53,151,133, 96,234, 28,131,144,225, 68,224,107,181,225, 27,203, + 84,169, 60,105,253,150, 99, 56,184, 4, 15,239,108,198, 47,253,247, 93,172,207,173,117,177,110,128, 38,206,123,231,199,241,103, +190,248,121,102,139,251, 92, 26,236,178,240, 29,111,156, 47,249,222,157, 67, 36,134,166,171,185,150, 73,110, 55, 45,194, 68,117, +177, 48,157, 69,251,214,135,167,241, 25, 95,156,130,148,113, 62,254,216, 43, 60,233,255,235, 6,116, 3, 31,188, 9, 87,159, 3, +165,105,149, 38, 8,133, 73,157, 37, 45, 5,239,173, 26,148,132,171,121,193,109,209,224,154, 36,113, 76, 25, 25, 0, 89,122,206, +148,230,210,176, 36,228,177,187, 81,228,160, 76, 60,111,155, 43, 70,165,226, 23, 30, 46,216, 45,134,252,109, 19,216,149,150, 42, + 40,174, 54, 11,116, 57,166, 2,174, 41,141,195,177, 19, 60, 50,175,200,117,198,217,106,193,181,225,152, 78, 75,206, 91, 75,179, + 92, 51,153, 76, 88, 10,135,145,209,193,236,220, 90, 76,145,115,214,105, 78,164, 99,109, 58,118,243, 1, 39,229, 16,155,207, 96, +188, 15,237,253, 95,213, 45, 56, 96, 17, 90, 19, 82, 27,252, 98, 82,101, 45,172,107,234, 14,186,231, 52,107,167,152,183,134, 98, + 0, 54,116,104, 10,144, 26,227, 13,185,210,236,120, 79, 48,150,215, 6, 3,222,237, 26, 62,151, 59,222, 93, 59, 86,222,115, 77, +192,157,135, 39, 81,119,190, 53,132,176, 6, 27, 16,198,198, 46,204, 19,238,185,120,202, 26,120,234,235,195, 59,156, 73,241,244, +174, 86,175, 32,217,175,235, 79,240,187,248,166, 39,101, 56, 40,249,252,103, 95,224,231,127,241,141, 39,236,237, 54,129,228,146, +174,119,183, 2, 87,161, 94,221,199,191,125, 15,117,243, 26,191,240,143,238, 80,221, 40,169,178,146,159,125,231,152,207,220,104, +216, 47, 75,222,124, 39,231,232, 96,135,197,110,193,206,100,192,235,111,223, 98,186,152,177,110, 29,153,232,248,250,155,247,248, + 59,111,125,200,165, 74,178,183, 51, 68,134,152,253,223, 59, 55,120,235,216, 29, 15,120,238,112,135, 95,121,231, 22,239,221,123, + 72,161,115, 38, 85,201,143,254, 59, 63,201,255,243,238,251,240,254, 3,104, 22,252,249, 63,253, 39,121,238,232,210,175, 65, 64, +231, 9, 1,253,113,148,123, 31,108,248,100,239,243,222, 82,115,187, 10, 17,252,218,188,190,213,177,109,223,251, 39,253,187,216, + 50, 84, 41,199,169, 61, 38,162, 9, 75,207,197, 44,114,232, 68, 4,119,244,232,253, 97, 9, 77, 74, 60,180,220, 80, 51, 42, 29, +177, 17,217, 78,172, 96,237, 34,122,176,171, 60, 86, 76, 93,189,209,124,239,215,225,246, 2, 87, 9,132,114,145, 54,247, 85, 93, + 10,232, 93,242, 83,238, 82,224,191, 64,143,203, 77, 64, 52, 61, 42,117, 43, 65, 11, 36,212,105,128,208,225,253, 86, 85, 45,182, + 42,116,111, 55, 26, 6,164,249,111,149, 71,160, 79,112,143,242,216,189,221,252, 91,132, 77, 66, 80,234,216,222,253,164,246, 78, + 78,236, 72,101, 41, 49,184,118, 8, 31,222,223,200,222, 58,255,201,247,182,105,248,232,131, 59,140, 46,239,177, 51,205, 24, 23, + 37,171, 58,218,196, 30,237,236,177,119, 52,161,110,162,216,206,170,109, 88,180, 13, 46, 3,191,154, 65,151,180,167,243,173,107, + 4,113,148, 33,154,248,247,215,137, 13,225,158,226,121,111,211,215, 83,192, 13, 66,208, 4,143,246,129,247,186,142,179, 14,222, +169,211,207, 21, 2,230, 91, 26, 4, 33,174,181,252, 11,175,208,221, 59,251, 22,137,235, 99, 9, 95,159,144,246,246,150,239,188, +133,253,220,107,156,213, 53,132, 21, 72,197, 47,222,125,143,188, 28, 83, 9,193,108,126, 6,210, 19,154, 8,146, 19, 85, 9,171, +134, 32, 53, 60,124,152,152, 48,221,183, 8, 60,143,189,230,167, 96, 87,145, 45, 96, 1,149,211, 1,183,229,152, 35,215,226,170, +138,214,121, 94,173, 74,238,117, 29,206, 38,136,186, 77,244,217,178,188,120,142, 46,233,200,216,176, 66, 48, 46, 53,214, 5,116, +225, 81,121, 78,221, 90, 78,219, 64, 53, 44,121,195, 74, 14,133,160,238, 26, 68,107,120, 32, 38,236,153,134, 74, 72,174,236, 14, + 41, 77,141,148, 26,135,164,234, 90,118,118,119,185, 91, 55,228, 78,113, 56, 40, 24, 82,242,208, 7, 70,187,151, 56, 63, 62, 6, + 37, 88,171,156, 46,192, 10,144, 33,176, 18, 18,135, 36,232, 44,170, 16,142,151,176, 78,201,221,175,202,203, 62, 26,194,116, 79, + 51,142,235, 63, 8, 64, 26,110,157, 46, 81,151,225,197, 82, 51,109, 59,142, 84, 73,235, 28,173,179, 84, 42,231,196,116,212,193, +178,159,231,204,172,225, 32,215,172,154,142,151, 67,203, 7,179,154,251,103, 11,164,179, 4, 27, 63,132,141,231, 19,236,163, 88, +182, 79,188,231,207,242,122,255,246, 19, 18,215, 18, 6,195, 4, 16, 77,186, 14,166,123,166,208,148,246, 67,201,199,191,244,215, +144, 82,242,225,151,255, 42, 0, 95,250, 29,127,152, 15,110,221,229, 63,248, 19, 63,198,191,249, 47,255, 94, 14, 15,118,249,153, + 95,248, 26,255,210,191,255,103, 57, 62,155,241,195, 63,244, 61,252,143, 63,241,239,242,215,127,254, 23,249, 23,126,219, 15, 34, +149,226, 79,254,248, 95,224,123,127,224, 53,254,192, 63,241,155,185,124,184,207,159,251,171,127,139, 63,247,151,255, 47,254,232, + 15,125, 63, 82, 88,180,254, 62, 94,127,243, 35, 86, 77,199, 15,126,254, 5,190,231,139, 47,243,119,190,252,151,120,248,250, 91, +252,200,191,248,187,249,183,254,232,239,225,198,229,125,190,254,241, 61,126,236, 39,127,138, 95,126,255,109,238,254,165, 63,141, + 64,240,147,255,246,239, 3,224,143,253,217,191,204,207,190,253,141,216,253,156, 25,176, 53,255,252,239,254,173,252,190,223,243, + 67,124,207, 15,255, 17,126, 93, 95, 61,184, 65, 60,107,208,220,162,242, 92,180,152,121,118,141,225,103,237, 40, 60,237,111,107, +251,108,129,253,105,199, 93,150,177, 10,239,221,212, 84, 1, 86,199,207, 55,117,148,142, 29,148,155,227,200, 52,180, 73, 26,182, +136,150,138,145,247,223,198, 25, 41,117,148, 24, 85, 62,182,233,251, 42,221,177,161, 61,125, 19, 56,110, 11, 33,239,205,166, 53, + 29, 82,171, 90,166, 28,190, 15,232, 50,196, 68, 99,144,127,115, 75, 56, 35, 30,135, 77, 32, 65,147,170, 97,209, 87,228, 91,237, +124,177,245,248, 54, 9, 73,232, 83, 96,237,103,245,117,226,223, 23,217,214, 24, 32, 5,116,231, 82,162,144,254,118,174,210,239, +217, 10,148,166,217, 32,226,183,129,114, 90,196,121,113, 86,114,233,242, 1, 39, 15,103, 48,235,210, 40, 65, 38,239,132,173, 29, +102,123, 45,133, 21,100, 7,188,118,245, 38, 90, 58, 6,163, 17,174,169, 81, 74,179,127,120,137,178,204, 81, 69, 96, 58,111,168, + 93, 71,231, 44,199,245, 60,110, 44,139,117,252,176,102,179, 86,157,221,128,254,164,127, 74, 15,240,177, 53,185,181,214,239, 28, +175,120,126, 60,228, 78,211,128, 47,121,167,115,155,243, 21,114,147, 32, 92, 36,235, 53,221,219,239, 70,250,104,219, 61,161, 66, +127,108,221, 63,254,249,190,149,219, 76,152, 31, 31,195,184,141, 5, 75,178, 36,237,128,206,172,226, 8,193, 68, 14, 52, 64, 56, +153, 70,175,245,166,217, 84,255,197,147,157, 2, 63,113, 99, 95, 55,177, 61, 61,174,226,249,237, 94, 6,123,200,131,241, 78,212, +214,215, 37,239, 44,234, 77, 23,168,255,123, 66, 70, 4,246,112, 0,157, 71,101,158,202,121,156, 18,204, 93, 96, 80,102,152,198, + 96, 8,136, 66,179,178,158,147, 96, 41,131, 98,145,105, 6,114, 68,147, 91,196,116,206,160, 24,162,186,134, 82,192,104,178,203, + 14,130,105,211,161, 6, 21, 31,206,230,188,178,183, 71, 99, 13,171,214,113,234, 12,207, 15, 7,156, 19, 56,216,223,231,214,236, +156, 66,230,156,174,187,200, 0, 17, 48, 8,158, 70,107,180,206,112, 34,131,225,128, 32, 10,112,205,147,241, 61,219,157,206, 79, + 83,132, 93, 36,105,143,221,243, 94,175,201,123, 66, 90, 87,161,179, 4, 3, 31,157,231,252, 3, 47, 40,145,236, 23,138, 12, 80, + 50,103,233, 13, 74,106,238,172,107, 78, 9,104,165,144,206,162, 75, 77,214,193,229, 61,193,195, 85,234, 2, 52,117,106,121, 63, + 58, 90,249, 38, 12, 5,143,226, 91,191,109, 76, 65,145, 67, 89,196, 2, 72, 8,112, 42,225,109,252, 39,198,133, 71,102,234, 33, + 4,156,115,156,156,205,248,254, 31,249,215,248, 47,254,235,255,153,243,217,130,159,248,143,254, 13,126,251,111,254, 18, 63,250, +135,254, 61,254,204,127,245, 63,241, 99,191,255,119,241,165, 87,159,231,111,253,253,175,242,135,254,185,223,206, 23, 94,123,137, +255,242,191,249, 43,252,137,159,250, 43, 92,175,198,252,135,127,252, 15,242,191,252,181,159,230,143,255,103,127,145,143,166,199, +252, 39,127,228, 15,240,231,254,187,255,149, 92,214,124,254,133, 27, 76, 70, 67,254,238, 79,255, 60,191,243,183,124,145,151, 95, +184,202, 31,249, 79,255, 91,254,239,127,248, 14,127,242, 15,255,179,252,254, 31,249, 65,126,255,159,248,179,252,169,159,252,139, +252,150, 47,124,134,223,254,242, 77,254,234, 95,250,223,113,251, 59,116,173,225, 95,253,207,255,123,254,194,255,241, 15, 88,173, + 86, 88,103,120,227, 87,238,192,116,202,205, 23,174,242, 55,127,234,207,240, 7,255,216,159,230,205,119, 62,250,181,169,210,241, + 27,177,148, 39, 61,210,129,103,243, 40,239,129, 61,126,203,145, 43,244,173,216,239, 70,146,225, 63,217,114,246,153,125,212, 31, + 27,248, 95, 24, 28, 84,233,148, 85, 2,193,117,144, 87, 96,151, 49,130, 21,101,188, 22, 85, 1, 85,149,134, 93, 58,130,210,134, +131, 24, 64, 93, 74, 14,156,219,200, 32,154, 5,200, 50,166,196,222,196,160,218, 3,227,202,252,209,141, 64,234, 77,128,233, 9, +180,206, 37, 48,158,216,204,209,173,216,180,188,123,106,140,220, 66,196, 43, 25, 55,218,114, 16, 31,168, 94,198,214,218, 56, 79, +105, 76, 12,166,150, 77, 80,251,255,186, 59,243,216,202,174,251,190,127,206,114,151,119,223,198,101, 54,105,180,203,178, 36,203, + 82,237,120, 81,188, 1,110,155,218, 13,218, 24,112, 19,184,168,255,180, 83, 32, 64,209, 38, 5,130, 2, 6,138,180, 64,227, 46, +105,141, 26, 40,138,182,169,155,182, 6,154,216,109,224,164,177, 93, 27, 65,108, 3, 74, 17, 91,134, 20, 69,171,173, 37,150, 53, +210,140,102,134, 67,114, 72,190,229, 46,103,233, 31,231, 92,222, 75,206,140,228, 25, 73,142,209, 7, 16, 36, 31,249,222,187,203, + 57,191,245,251,251,126,235,232,169, 91, 36, 61,190, 35,175,176,190,119,189, 84, 36,138,112,157,156,234,129,102, 96,191, 34, 70, + 4,195,212, 33,232, 57, 76,118,209,239, 73, 87, 53,139,237, 69, 16, 52,106,103,228,137, 61,121,209,151,233,117,221,122, 74, 52, +119,223,247,118, 38,195,130, 99,227,117, 82,165, 25, 20, 5,227, 65, 65, 83, 55, 12, 70, 5, 94,104, 68,170,105, 28, 56, 28, 79, +109,109,211, 8, 9, 23, 46, 4, 10, 88,211,116,199,236,162,212,166,142,228, 49, 45, 81,149, 10,162, 76, 7,122,171,253, 62,161, + 86,113, 84, 17, 94,108, 96,203, 43,182,132, 15,193,138,139, 85, 20,235,130,194, 85, 95,200, 40,209,176, 88,118,204,145,237, 61, +234,143, 26,181,243,238,142,131, 65,114, 31, 75, 82, 45,195, 49, 14,179, 72,128, 20,143,115,123, 35, 16,222, 72, 21,232,105,181, +134,205,109,152, 14,195, 26,216, 62, 23,208,221, 89,250,170,153,250,149,177, 47, 13,204,150, 97, 31, 12, 70, 1, 27, 32,117, 28, + 9,171,194, 57,167, 49,168,107,215,133, 82,221,244,135,169,104,140, 99,109, 92,176,174, 36, 74, 73,246,106,143,148,130,165, 23, +156, 89,212, 44,113,204,107,139, 84, 10, 82, 77,227, 61, 78, 73,142,166, 41,141,148,220, 49,144,140, 17, 88, 47, 25, 74, 65,145, +103, 44,107,195, 90, 81,176,181, 44,241, 90,147, 41,201, 40,205,184, 96, 26,214,117,194, 5,107,184,101, 52,225, 84, 89, 50, 72, +161,170, 45, 53,130,165,173,216, 50, 13, 66,106,106, 83,117, 99,169, 91,219, 29, 51, 98,223, 97, 37,170,107,169, 93, 45,121, 81, +111, 13,137,120,111, 69,143, 30, 66,120, 31,116,212, 33,140,186, 57, 88, 36,138,163, 90,145,105, 73, 74,104,159,205,156,101,219, + 90, 46, 56,203, 2,129, 21, 30, 33, 4,210,251, 64, 75, 46, 37, 39,134, 41, 34, 81, 44,147, 1,216, 6,233, 65, 28, 2,199, 93, + 65,134,235,218,123,236,237,254, 77,211, 14, 84, 42, 68,216, 99,175, 2, 2,191, 36,158,126,239,187,238,229, 27,127,252,208,254, +239, 55, 92,119,148,191,247,137,143,114,251,253,127,155,243, 23, 46, 2,240,187, 95,125,128,143,253,205, 15, 66,185,199, 79,255, +165,183,240,111, 63,247,191,248,230,255,125, 2,117,251, 58, 27, 91, 23,249,250,131,143,240,123,143, 61, 70,189,156,115,246,249, + 77,118,102, 11,236,162,228,219, 79,158,231, 19, 31, 91,225,143,254,236, 73, 62,242,115,239, 71,107,205,135,126,229, 55,216,220, +216,227,216,218,136, 79,253,210,223,226,190,159,251,135,188,180,189,139, 51,154,175,125,235, 65, 62,249,177,159,133, 69,201,253, + 55, 93,207,215,190,243, 8, 79,109,158, 39,145,146,199, 47,206,200,178, 32, 50,161, 71, 5,191,243,217, 79,241,239,127,251,171, + 60,240,208, 19, 63,222,186,181,239, 1,176,250,229,119,119,149, 61,113,219,150,220,123,128,179,215,181,131, 96,174, 0,161, 48, + 63,106, 4,115,233,115,222,193,112, 26, 70, 7,163,100, 41,178, 9,229,114, 83,129, 30, 71,173,110, 7, 43, 3,152, 22,161,228, + 40, 36,140,178, 64, 6,147, 8,210, 36,167,102,121, 41, 97, 79, 50, 14,239,237, 0,105,186,158,125,109,186,126,122,107,200,197, +229, 90, 32,186, 3,149, 65,112,198,109,217,221, 68,133,188, 36,143,206,216,133, 13,212,146,187, 12, 90,227,145,192,162,233, 0, +136,137, 14,165,116, 45, 2,130,185,142,199,236,234, 46, 92, 23,135, 67,244, 24,168, 45,234,174, 50, 80,153,144, 69,215,241,127, +147, 94, 9, 63,139,206,223,134, 44, 60, 4, 30, 61, 71,116,224, 28,218,177,191,121, 55, 54,217,196,118,134,237,129,104,132, 12, +148,178,237,253, 94,191,137,227,171,235,104,169,217, 89,236,145,231, 57,171,249,144, 36, 79, 73,101, 26, 49, 89,134,201,116, 0, + 18,230,203, 5,183,140, 87,241,102,198,247,198, 67,216,220,233,174,107, 59,158,211,158, 99,139,177,168, 77, 36,102, 50, 87,118, +126,109,150,221,148, 48,111,129,156, 45, 72, 49,146, 7, 73, 21,112, 22,182, 60,152,229,183,159,173, 47,131,169,208,241, 92,205, +161, 62,187,190, 76,214,119,113, 22,152,245,210, 54, 88,216, 11, 96,186,202,192,169, 51,193,145, 22,121,144, 0,157, 47, 3, 59, +228, 43,100,232, 87,149,113,170, 37,252,249, 11,225, 60, 7, 41, 52, 11,152, 28, 15,253,104,107,160,148, 93,123, 72,200,174,244, + 26,191,167, 89, 78,125,238, 34,230,196, 26,110, 94, 51, 28,166,224,100,160, 76, 80,158,166,129, 97,150,176, 83, 53, 88, 37,112, +105,152,114, 88,120,207,170, 75, 56,147,228,164,110,193,221, 89,202, 66,192,145, 68, 65, 82,224,234,134, 65,154, 4, 21,100,161, +152, 11,199, 48,205,152,153,154, 19,163, 1,103, 22, 75,142, 15, 6,108,151, 75, 26, 26,156,183, 88,149,131,153,225, 26,131,202, + 71,152, 34,202,151, 14,199, 65,147,163,127,111,156, 60,152,189, 43,249,163, 87, 38, 15, 93,247, 3, 25,113, 79,176,208, 43,185, + 63, 94,232,154,146,229, 30,124, 77, 8,172,132, 66, 44, 56,150, 5,194, 35, 43, 5,115,165, 3, 75,164,245,104, 37, 24,106,205, + 0,197, 12, 65,158, 75,134, 72,142,100, 21, 79,178, 2,179, 57,126,209,224,125, 40,199,247,209, 46,254,208,207,175,205,100,155, + 32,109,188,175,191, 30,136,122, 94,237, 26, 93, 98,177,223,243,206,123,248,244,103, 63,191,255,251,135, 62,248, 46, 30,126,244, +233,125,135, 14, 48, 29, 21,156,223, 14, 36, 19,247,191,253, 78,254,201,103,254, 43,140,114,236,243, 23,120,251, 93,111,226,155, +223,126,146,157, 23,246,152,222,182,194,123,223,255, 86,190,253,240,247,112, 82, 51,190,110,192, 93,183,223,198,251, 86, 71, 76, + 71, 5,119,254,141,127,192,238,172, 98,116, 52,227,175,254,244,125,100,169,230,161,223,251,215,241,106,120,164,144,124,241, 15, +190,137, 7,222,115,223, 29,124,250, 55,126,139,157,231,126,176, 15,184,170,226, 92,241,175,255,242,199, 49,214,241,235,255,249, +127, 7,135, 66,253,198,250,115, 67, 40, 89,183,151,207,186,131, 78,197, 93,195, 29,237, 27,165,170,254, 49, 5, 38,230,218, 3, +135, 68,134, 50,187,237, 59,116, 31,174,191,175,162, 99, 95, 66, 54, 8,255,187, 50, 10, 32,170,149, 33, 89,150, 81,237, 85, 76, + 38, 3,202,210, 99, 91, 62, 99,116,200,202,171,101, 64,176,103, 61, 16, 90,157, 4,144, 83,109, 46,189,102,109, 73,190,229, 79, + 86,189,123,144,137,110, 57, 24, 31,126,247,209,193,139, 24,152, 16,203,244,101,236,135, 15,243, 78,188,196,187, 96, 92,117, 68, + 62,150, 38,150,200,155,208,251, 78, 85, 96, 95, 59,236,204,219,223,219,185, 83, 31,157, 85,105,194,235,124,204,238,211,126,159, +188,103,229, 92,203,104,101,186, 74,132,171, 35,213,109, 47, 72, 49,254,224,186,107,151, 97,227,122,216,205, 62,136, 51, 84, 52, +110,184,237, 36,179,106, 73,158,104, 50,149,178, 87,206,209, 8, 50,173, 81, 67,168, 23, 53,211, 35, 19,118,247, 26, 22, 85,195, +238,178, 66, 99, 40, 27, 56,178, 58,229, 66,185,132,151,202,144,173,239, 7,161, 38, 4, 33,210,117,125, 84,173,187,210,249,171, +225, 53,148,233,136, 56,218,160, 49, 21, 65, 4, 3, 96,135, 80,173,241,166,123, 77,223,192,239,115,255,167, 7,251,142, 2, 72, +167,112,235, 42, 60,251,220,101, 2,217, 58,242, 18,196,160, 46,199, 28,146,165, 0, 0, 19,212, 73, 68, 65, 84, 25,132, 15,187, +176, 13,213, 94,168, 68, 93,220,137,228, 74, 85, 88,131,197,235,212, 43,174,234,240,249,207,191, 0,199,214,122, 99,195, 50,220, +243, 74,198,209, 69,194, 40,103,108, 73,164, 66, 83, 11,184,213,212, 84, 58,225,135,103, 54,184,101, 60,100,161, 37, 59,101, 67, +170, 85,192,163,106, 25,240,186, 89,144,153, 93, 36,158,129,147,148, 90,145, 13, 28, 55,214, 21,168, 49, 27,222,146,121,199,197, +218,144, 36,154, 36,207,216,174, 42,174, 19,154,185, 55,228, 42, 65,226, 16, 73,138,179,150, 53,157,176,225, 26,106,149, 48, 73, + 60,167,155, 26,105, 75, 18,157,144,160, 40, 75, 19,156, 81,158,195,145,181, 96, 11, 90,109,132,182,197,213,199,175, 92, 77, 73, +122, 52, 13,247,231, 74,118,210,183, 83, 94,174,151,183, 24,240, 37, 75,169,248,242,210,114,231,177, 33, 43,118,193,170, 77, 25, + 39,193,103, 36,105, 18,114, 52, 33,240,113,124,104,168, 37, 30, 69, 35, 5, 43, 90,177,146, 40, 30, 17,138, 74,215,120, 83,226, +154, 6, 81,155,253,185,121,119,153,204,252, 53,149,225,189,129,157,157,176,119,165,123,213,126,250, 37, 78,253,150, 27, 79,176, + 58, 29,243,232,147,207,237, 63,119,116,125,149,189,217, 65, 18,129,143,252,245, 15,240,155,191,243, 85,110,187,253, 22, 70,195, + 1,143,253,240,165, 8,204, 17,124,224,254,123,248,231,159,251, 18,222, 59, 70,197,152,123,174, 63,201, 3,143,125,159,119,188, +253, 24,223,127,161,230, 45,183,223,192,167,255,251, 55,120,247,155,143,242,233, 95,254, 56,255,225,139, 95,226,241,103,182, 89, + 95, 25,243,149, 7,254,148, 95,248,213,207,226,189,197, 55, 30, 63, 47,241,245,156,155,111, 60,206,234,116, 20,142,203,214, 80, + 0,197, 4,134, 67, 62,124,255, 61,124,242,231,127,134,183,253,194,175, 6,231, 80,164,193,184,191,209, 64,185,125,159, 30,127, +232,247, 59,175,213, 89,190,161, 60,238,209,249,213,230, 42, 62, 71, 95, 33,203,223, 79, 9, 15,238, 72,161, 58,112,156, 34,128, +211,178, 20,142,142,195,232,206, 56, 35,215, 9,206,195,112,117, 66,109, 13,121,150, 34,164, 97,111,105, 72,144, 84,152, 72, 27, + 90,195,142,233,156, 49, 38, 34,172, 27,240,101,119,124, 66,135, 32,175, 53,222,135, 37, 75,219,254,185,142, 30,119, 63,203,238, +101, 64,237,107,219,146,246,230, 44, 56,146, 36,102,132,146,192,106,166,162,227,109,226,255,238,163,220,101,216,124,109,112, 32, + 35, 65, 19, 61,208, 99, 75,132,211,127, 93,155,229,183,239,153, 69,105, 88,161,218, 3, 63, 4,170, 59, 52, 30, 86, 19,156,222, + 62,102, 32,222,146, 54,232, 58,188, 7, 90,199,171, 82, 94, 58,117,154, 27,238, 89, 3, 96, 94, 46,209,137,192, 52, 13,206, 86, + 84, 75, 79,154,231,212,141,165, 24,103,156,218,188, 72,109, 26,110,212, 57, 85,230,185,119,120,130,167,202, 37,223, 91, 84,112, +118, 43,192,173, 91, 71, 87,155, 88,133,208, 93,133,162,117,232, 87, 2,206,181,207,215, 6,146, 26, 92, 26,239,109,188, 55, 69, +168,200,169,241,144, 19,169,227,244,198, 2, 22, 59,151,178, 8,238,247,221, 15, 33,225,189,129,249, 38, 60,187,121,249,236,218, + 52,112,113, 47, 8,215,136, 36,148,194,215,215,195,243,167,231, 1, 16,220, 24, 96,212,177,128,165,250,245,221,158,229, 30, 92, +104, 34, 67, 96, 92,135,131,149, 48,151, 94,214, 17,160,172, 88,115,142,147,131,156,117, 9, 79,204,151, 28, 79, 37,190, 42, 57, + 85,150,108,160,208,123,115, 40, 6,108,249, 0,144,195, 6, 37,192, 34, 81,108, 11,139, 51,176,240,150,155, 11,205, 81, 33,168, + 42,201,186, 20, 44,154,146,163,105,202,249,237, 25,183, 14, 37,167,231, 53,215, 37, 41,187,182, 97, 37, 73,217, 49,134, 66,105, +230,166, 97,168, 18, 54, 49, 52, 22,150, 77,195, 89, 39,176, 74, 50,119, 26,101, 5,165,143,129,126, 86,192,176, 6,113, 49, 34, +245,229,190, 62,249,126,217, 61,185, 74,251,103,221,193, 53,117, 57, 28, 67, 59, 69, 36,101, 32, 1,138, 69, 54,111, 12,126, 62, +199,169,138,167,206,195,201,105, 74,230, 3, 46,101,152, 15, 40,109,131, 80, 9,185, 86, 56,227, 81, 42, 16,242, 52,214, 82,232, +140, 92, 25, 6,192,155,110,204, 57, 83, 86,252,176, 44,249,225,102,133, 45,231,216,101,117,192,225, 58, 94,135, 76,125, 63,129, +138, 36, 94, 50,237,104,101, 95,225, 90, 29,168, 89,158, 56,186,134,181,142,209,112,192,120, 24,234,143, 79, 61,243, 60,239,123, +247,125,220,113,235, 13,164,137,230,159,254,163, 79,146,101, 41,191,253,251, 15,112,255,253,111,229,225,199,159,197, 8,141, 7, +110, 58,121,140,225, 96,192,159, 61,242,125,214,223,188,202, 75,223,123,153,119,191,237,205, 60,121,246, 69, 30,124, 98,131,119, +221,121, 19,207,189,180,193,191,251,221, 47,242, 75,255,236, 63,241,145, 15,190,147, 27,142,223,130, 83,154,199,158,125,145, 15, +252,212,221,252,212, 91,110,195, 27,207,234,116,192, 39,255,206, 95,161,152, 12,123,199,149,134,227,178, 26,180,230,186,181, 41, +159,255,212, 47,242,137,127,241, 95, 56,189,177,211, 33, 4, 61, 63,158,135,137,206,219,180,142,210,116,207,253,164, 61,132,142, + 97,164,190,182,128,160,159,161, 39,192, 32, 50,192,165, 61,135,162, 34,241, 75, 22,103,179,143, 29,131,233, 24,146,132,233,120, +200,209,188, 64,139,148,161,200, 72, 68,194, 80,101,140, 83, 77, 83, 65, 46,117,104,119, 15, 90, 93,239, 72, 20, 99,108,236,217, + 39, 81, 33,172, 12,159, 1,145, 94,244,240,174,214,221,119,213,203,104,247,143, 63, 58,116, 14, 85, 87,164,234, 50,228,246,222, + 46, 99, 38,218, 82, 56,150,189,209, 53,231,187,237,235, 76,231,192,196,161,173, 37,101, 71,108, 35, 99, 12,100,122,115,246,109, +118,158, 0,149,143, 1, 67,116,136,253, 17, 23,157,244,144,242,109,102, 31, 3,158,180,181, 90, 61,194,163,198,245,130,175, 67, +173, 22, 7,236,108,243,252,246, 89,150,139, 93,140,169, 88,238,237,210,152, 57,179,217,140,186, 90, 50, 95,204, 40, 23, 37,243, +221,146, 81, 42, 56,174, 83,164, 80,172,143, 39,156,222,221,101,146, 36,220,125,114, 21,142, 76, 46, 13, 26,138, 60,156,119,107, +228,132,238,233,174,155,203,103,171,125, 30,123,111,187,118,148,136, 68, 27,171, 99,110, 91, 41, 40, 6, 67,222,113,211, 42, 12, +198,161, 36,175,117, 87, 13, 56, 76, 19,140, 57, 24,144,182, 78,191,125, 77,235,244,219, 86, 71, 99,120,203,104,141,159, 95, 63, +198,199,111,189,149,147,199,215, 33, 31,118,193, 81, 53, 59, 8,116,187, 22,144,234, 37,191,247, 3, 80, 3,231, 78,195, 75,231, + 2,136,206,212, 48,219,220,151,220,188,217,214,220, 87, 20, 76,235,154,220, 58,222, 63,200, 25, 84, 13,105, 83,114, 82, 39,236, +108,189,204,185,237,243, 44, 94, 58, 69, 1,236,149, 21, 94,123, 84,166,216, 43,155,120, 45, 5,140, 50, 22, 66, 83,100, 9,201, +164, 96, 51, 79, 25,175, 76,216,170, 12, 71,167, 35,158, 63,191,195,177,201,144,202, 25,142,142,134, 24, 9,147, 65,202, 22,142, +245, 81,206,217,170,230,136, 82,172, 13, 52,153,214, 92,172, 23,204,141,161,196,211, 72,193, 18, 80, 58, 58,117, 37,225,232, 10, + 20, 43,113,223,246,170,155,182, 93,167, 28,172,192,189,154,205,221,221,185,100, 29,249,150,152, 37, 50, 42,134,178,187, 11,112, + 28,186, 47,219, 24,172, 41,177,187,123,156,186,176,203,119,247, 22,236, 85,134,178, 92, 98,170,134,198, 89, 26, 99,241, 17,232, +156, 41, 69,161, 21,215,105,120,239,100,157, 15, 29,191,142,247,173, 30,229,195,199,142,240,209,147, 39,248,240, 13, 43,232,181, + 53,244,100,138, 42, 70, 40,173,145,135,122,237,175,169,183,174,117,176, 95, 89, 18,190, 15,178, 75, 91,141,175,228,212, 31,125, +234, 57, 30,122,244,251,188,252,216,239,243,245, 47,124, 6,128,175,252,225,159,240,223,190,248,127,120,232, 15, 63,199,217, 39, +254,128, 55,221,118, 35, 31,254,228, 63,166,177,142,251,223,122, 39,223,121,244,233,125,117,173,247,188,237,173, 60,252,248, 51, +216, 44,101,227,145,151,185,254,196, 81,214,166, 35, 30,248,214,211,184,101,197,123,223,121, 23, 15, 60,248, 24,187,231, 23,188, +124,238, 34,127,255, 95,254, 22,255,241,215,126,145,181,233,144,175,255,201, 35,252,155,207,127,153, 47,125,230, 87,152,125,247, +243, 60,244,133,127,197,219,238,186,157,197,238,156, 71,159,122,250,224,113,217, 18,105,106,254,199,175,253, 93,190,240,173,239, +242,229, 63,254,211,168,102,227,130, 97,252,139,210, 23,255, 73,116,230,253, 50,142,141,223, 95,203,163,221,132,182,165,142,245, +193,233,166,209, 0,107, 19,144,239,217, 40, 32,134,135, 9,147,241,132,198, 57,102,198,179,158,165,228, 90,146,107, 73,162, 37, +198,193,106,158, 35, 83,201, 48, 77, 81,168,224,244,234, 72,176,160,211,142,243,189,237,187,245,209,206,251, 13,180, 86,214,245, + 10,216,129,182, 39,217, 58,116,149, 6,128,148,137, 14,101, 95,153, 73,116,217, 67,155, 81,247, 65,106,139,186,235,253,183, 36, + 49,109, 79,189,253,156,195, 34, 1,206, 35,147, 32, 59,140, 80, 93, 95,221, 69, 39,238,251, 65, 71,204,202,219,210,254,254,123, +244,116,231,171, 67, 56,129,125,189, 3,115,153,221,237, 66,255,210,201, 46, 24,242,161, 60,126,238,197,179,188,176,117,129,167, +206,158,226,236,222, 22,167,182,206,227,104,176,214, 35,156, 99,107,107,155,249,206, 54,236,205, 89, 25,229,172,166,176,187, 88, +210,120,137,200, 51,134, 73, 6,131, 60,176, 2,182, 89,152,141, 6,218,197,190,186, 49, 33, 16, 75,210,142, 25,240,138,176, 93, + 25, 89,178,124, 55,151,155, 8,210,241,128,119,140, 10,142,175,142,153, 20, 3,182,208, 28,185,110, 21,198,195,200,129, 32, 59, +103, 77,175,207,223, 86,114,250,173, 45,113, 25,163, 41, 91,125,130,140,159, 57,186,202, 61,199,215,184,107,186,198, 95, 59,121, + 3,156, 88,239, 70, 39,175, 53,240,191,210,244, 73, 31,193, 77, 47, 57,152,109,194,198, 38,108,157, 9,138,143,205,146,251,176, +164,206,163,235,146,235,181,162, 4, 42, 60,198, 4, 85,202,235,211,154,147, 74,162,235,146,205,122,143,239,124,234, 55,209, 79, + 63,204,169, 63,250, 10, 27,139,154, 18,137, 17, 33,192, 44,180,226, 45, 67,197,233, 65, 70, 54,202,208, 90,147,104,205,182, 46, +176,169,102, 52,157,176,181, 51, 35,205,242, 48, 48,130, 96,230, 61,185,144, 44,170,134,235,166, 35,150,120, 42, 15,203,218, 51, + 41, 70, 32, 36, 42, 25, 96, 61,228,105, 78,237, 91,106,228, 81,152,235, 31, 12,186,164,160, 61,215, 42, 78, 32, 44,202,171,179, +217, 87,250,223,120,253,124, 19,197,182,122,253,238, 86, 38,193, 18, 92,133,109, 74,236, 98,201,197,141, 57, 15,238, 46,104,172, +195, 53, 65,246,121,183,174,169,188,223,167, 96, 31,169,132, 99,233, 8,137, 96,162, 83,214,148,226,230,116,200,219, 7, 83,238, +152, 76, 57,186, 58, 64,173, 77, 80, 71, 86,144,147, 41, 34,201,175,158, 93,238, 74, 25,122,154,244, 52, 42,232,212, 18, 95, 97, +162, 73,112,252,253, 63,122, 94,155, 69, 22,176, 22,168,211,159,245,109,203,153,105,129,152, 45, 98, 22,209, 64, 62, 70,148,123, +161,167, 37, 29, 66,167, 97,211,103,145, 48, 35, 11,125,140,208,239, 12,136, 96, 95, 19, 70, 56,204, 28,127,165,136,184,136,139, +165,165, 47,173, 77, 48,106,243,249, 95,156, 83,255,113, 62,218,153,204, 55, 92,126,245,208,226, 41,162, 33, 74, 84, 96,115,107, + 29,133,146, 7, 23,163, 34, 24,221,149, 17,211, 65,129, 18, 9,133,150, 36, 90,177, 57,171, 89,207, 83,246, 26, 67,174, 37, 3, +173, 56, 63, 47, 81, 2,182,182,247,162,179, 43, 3,181,167, 51, 97,196,199, 87, 7,241, 6, 90, 31, 98,155,139,253,244,182,183, + 14, 29,171, 94,214,203,206,145, 29,240,196,212,145,171,254,112, 70, 27,203,228,253, 30,119,159, 80,198, 31, 42,253,249, 30,218, +122,159,253,226, 50,239,215,102,230, 94,116,217, 95,170, 34,133,172,138,200,108,209, 5, 23,165, 9, 1, 78,145,198,207,183, 29, + 18,218,247,112, 2, 45,136, 79,181,206,204,117,199,148,230,112,100, 5,214, 87, 96, 99, 27,206,109,134,247,200,199, 33,203, 30, + 14,201, 82,201, 48, 73,153, 14,114,110, 63,178,206,116, 56, 70,167,197,126,188,180, 53,219,101,148,101, 8, 47,169,109,195,139, +139, 25,152,138,189,114,198,243,155,115,120,121, 35,204,174,215,132,106, 74,191,223,221, 22, 12, 90, 37,189, 43,181,127,218, 94, +188,136, 45,135,181,105, 8, 24, 86, 71,188, 99, 50,230,104,154,146, 8,193,182, 41, 57, 63,175,121,102, 54,131,139,139, 64, 73, +186,108, 66,176, 37,155, 16,116,182,220,217,253,224,175, 45,201,246,217, 65,100,143,200,232,248, 9,238,189,247, 30, 62,122,231, +189, 12, 7, 25,137,183,252,249,185,115,124,229,217, 39,120,225,225,199,187,145,178,107,217,167, 87,218,159,175,244,183,201, 58, +156,188, 14,142, 28,131, 60,225, 29,235, 55,114, 75, 62, 98, 94, 47, 17,163, 9,121,211,176,215, 52, 36, 58, 97, 77, 55,108,205, +106,188,148,252,160,170,168,140,225,133,217, 38, 63,123,253,173,212,214,240,141,147,183,195,168,128, 92,161,156,228, 47, 31,201, + 72,128, 41,138, 29,231,185, 69, 67,179, 91,113,163,114,204,247,150,176, 40, 57, 41, 60,197, 64,161,117,202,233,178, 98, 85,107, +246,202,138,139, 42, 97,108, 13, 47,214,150,220, 90,158,156, 25, 54,202, 57,155,198,162,112,108,224,104,170, 10, 43,193,150,243, +208,174,152,111, 5, 5,205,141,141,208, 54,121,195,230,214, 15, 58,210,195,131, 37,226, 10,207,147,228, 76, 39, 25,239, 93, 25, + 33,178,140,193,104, 72,146, 38, 20, 89,130, 18,112, 68,103,220, 58,200, 89, 69,145, 72, 77,226, 45,206, 90,140,243,156,181,150, +199, 23, 59,252,207,153,161, 90,150, 52,101,131,169, 74,236,238, 46,118,177,196,197,192,194, 95, 11,120, 78,235, 32,222,114,248, +177,104, 58, 59,112,185,216,248,234, 84,218, 6,161, 79, 90,164, 1,244,212, 15, 96,133,128,201, 56, 8, 30,100, 41,194,217, 32, + 56, 80,238, 5, 3,178, 92, 34, 6, 69, 48,164,105,212,252, 43,210, 0,209, 79, 21,190,137, 36,247, 90,194,124, 23,106,139,119, +230,202, 99, 14, 77, 29, 12,126, 93,131,171, 66, 86, 88,215, 63,217, 14,189,149,115,237,143, 22, 93,235,251,136,168,106,181, 63, +198,245, 70,145,202,203,203,252,110, 66,175, 46,139,136,100,221, 91, 8, 58,170,157,173, 79, 32, 77,152,140,135,236, 46,107, 78, +140,135, 56, 43,177,222,113,253,100,202,172,170,152,102, 25, 90,194, 11, 23,247, 56, 62, 44,216, 92,204, 81,105,138, 45,203, 32, +163,153,233, 96, 20,204,188, 19,132,217,111, 90,197,113,168,125, 73, 86,215,161, 84, 90, 66,148,118, 7,181, 4, 45, 42,233, 52, +233, 91,174,116,223,206,136,251,206,240, 15,146,224, 28, 90, 69, 53,111,131,243,108,199,167, 90,128,157,107, 98,134, 44, 59, 56, + 76,235,208,247, 57,217,187,221,156,102,122, 31,196, 19, 2,145, 40,247,218,248,152,193,196, 81, 10, 33,163,206,178,140,215, 32, + 10, 21, 57, 31, 71,158,204, 65,112, 92,219, 94,112,102, 31,100,138,138, 74,109,211, 41,220,124, 34, 74,125,102, 65,128,197,197, +192,107, 92,128, 20,100,121,130, 22,146, 60,209,204,234,134, 92,165,108, 47,150,248,114,201,238,114,155,221,186, 97,103,185,192, + 59, 27,166, 16,133,194, 56,199, 51,198, 96,235,184,239,170,168,142, 6,161, 84,216,202,245, 38,145,219,189,137,162,207, 74,116, + 2, 64,253,241,179, 60,138,240,248,152, 30,217, 48,141,112,239,202,144, 60, 73, 24, 36, 9,169, 20, 88,103,121,100, 89,135,114, +107,227,187, 25,118, 41, 67,139,162, 24,114,252,216,152,108,144, 49, 25, 23,204,151,117,143, 67, 63, 94,119, 41, 46,229,165, 87, +138,217,250, 17,238, 88, 91,195, 57,203,204,122,126,120,113,151, 7,119,183, 97,119,113,237,226, 36,251, 12,145,241, 92, 91,170, +102,231, 94,121,207, 86,203, 48, 29, 50,208,188,115,178, 66,102, 27,134, 69, 74,166, 11,154,122,137,118,142, 65,146,161, 88,128, + 84,228,137, 96, 36,124,160,148, 21,150,243,203, 57,207, 93,120,145,231,245, 48,236, 73, 21,136,126,238, 58, 50,224, 54, 45,169, +149, 66, 11, 72,180, 70, 90,207, 88,193,174,245, 12, 16,172, 38,138,243,165, 33,215,138,212,212,172, 14,114,158,221, 43, 17, 8, + 10, 44,231, 44,220, 48, 74, 57, 83, 89, 18, 91,115,209,131,171, 75,172,144, 84,206, 81, 74, 25, 64,106,182,129,122, 47,234, 31, +208, 85,224, 84, 47,168,205,115, 24, 14, 99,165,204,189, 97,142, 29, 94,129,190,215, 25, 42,231,249,193,174,225,246, 97, 0, 32, +214, 73,144, 85, 94,211, 25, 55, 36, 25, 39,117,193, 68, 41, 20, 30, 37, 53, 74, 40,172, 51, 20, 58,225, 34,142,133,105,216,240, +224,132,199, 91,143, 55, 65,177,212,251,215, 96,155,219, 36,161, 21,154, 82,105,184, 78,166,126,197,247,252,209,157,122,145,199, +186,126,143, 25,171, 53,226,165, 13,243,198, 85, 13, 43,211,160,212, 36, 4, 44,107,196,104, 28,102, 90,179, 12,204, 2,210, 34, + 48, 57, 13,179, 48, 34,162, 85, 88,192, 38,150, 53,119,151, 1, 24, 44,204, 62,225,195,149, 65, 19, 54,114, 2,155,215,117, 81, +188,113, 9,111, 79,145, 75, 69,141,112,119, 13,220,200, 73,218, 25,192,246, 75,218, 55, 72, 44,198, 29,252,106, 3,173, 84,134, +146,115, 58,238,148,197,124,172,182,140,134, 32, 4,147,245, 21,118,231,115,110, 94, 95,197,227, 25,232,148, 65,146,114,113, 49, +103,109, 56,194,216,154,221,202,114,124,148,179, 93, 86, 12,179, 1,187, 59,123,241, 60,124,152,187, 54, 54,124,206,229,164, 68, +219,185,242,253, 67,213, 93, 54, 46, 98,159, 91,197, 56,164,157,245,222, 47,195,139,176,230, 90, 39, 47, 85,199,183,110, 76, 48, + 7,125,153, 84,227, 58, 96,157,111,117,225,117,156,213,238,197,254, 42, 58,226, 86,113, 45,254, 45,149, 2, 97, 5, 77,210,211, + 65, 87, 50, 42,210,133, 49,164, 64, 48, 97,195, 57,232, 52,140,243,101, 42,102,159,177,175,223,148,221,235, 91,250,217, 42,114, + 34,168,168, 18,167, 68, 24, 41,116, 4,228,113,166,194,154,217,153,195,133,205,240,247,100, 16,240, 11, 66, 34,149,100,154,165, + 8, 41, 81, 30,230,165,101,105, 44,139,170, 34,145,150,185,245,140,210,130,109,107, 80, 94,112,186,169, 56,101, 12,179,114, 25, + 69, 86, 8, 76,125,109,121,164,142,247,107,237, 72,192, 84, 20, 69,200,166,155, 42, 56, 42, 23,181, 0,250,247,180,229,249,111, +133,125,108, 0, 89,222,180, 58,224,142,213, 53,206, 47, 43,156, 16,236, 52,134,211,243, 24, 72, 72,122,220,247, 81, 63, 32,211, + 92,159,107,132,240,140,132, 98, 92,164,236,236, 45,123,169, 89,116,230,206,119, 14,190,105,192, 89,154, 44,229,251, 77, 77,229, + 36,207,205, 22,124,115,111, 23,202, 89, 0,209,205,103,215,150,165,247, 57,187, 47, 55, 39,191,223, 2,184, 12, 71,254,124, 15, +138, 49,119,175,228,220, 62, 24,240,131, 89,197,117,131,132,188,200,152, 59, 24,102,161, 68, 60,175, 96, 42, 44,210,129,161,100, +111, 89,114,174,169,195, 53, 58,127, 38, 36, 86,107, 55, 66,174,201,135, 25,133,150, 20, 94,160, 19,205,208, 5, 85,205, 60,211, + 12,133, 96, 69,194,142,177,172, 42,193, 29, 69,202, 98,144,243,204,214,140, 34, 21,204,235,134,179,198,225,157,227,133,237, 6, +211, 24, 54, 81, 24,215,176, 52, 22, 47,192, 72, 69,105,130,176, 77, 24, 71,109, 66, 16,218, 52,145,175,192, 68,129, 39, 17,240, + 10, 39,142,194,209,181, 80,117,157,207,223, 16,199,206, 43, 56,246,253,255,183, 22, 33, 28,167,140, 99, 61,209, 24, 37,113, 89, +202, 20,152, 74,184,115, 56, 33,149,138, 84,166,193,138, 75, 17,228,152,113, 92,108,106, 94, 50, 53,231,230, 53, 30, 17, 50,115, +169,194,169, 84, 21,190,119, 78, 87, 45,248, 34,130, 28,113,128,135, 68,190,247, 87,146, 85,190, 42,167,222, 26,149,150,168, 67, + 39,225,103,103, 2, 73,135,245, 1,165, 58, 43, 59, 69,170, 52, 82, 58,166, 42, 46,218,144,229,137, 36,137,253,207,208, 51,244, +139, 38,100,127,101, 21,141,150, 11, 11,242,255,167,135,212,189,122,143,132,213, 81, 88,228,230, 26,130,145, 86,116,164, 37, 65, +241,213,143,183,159,223,206, 9,103, 89,212, 59,142, 37,229, 36, 13, 64, 14, 31,130,189, 10,207,104, 52, 36, 85, 10, 45, 53, 74, + 72, 36,154,181, 98, 72,109, 29,169, 76,200, 82, 21,199, 72, 36,103,103,243,208, 15,171,203, 64,202,177,220, 5, 83, 94, 89, 66, +183, 37, 29,145, 34,244,166,181, 11,142, 93, 69,176, 98, 75, 12,228,125, 68,163,139,224,136,219, 44,218, 69,118,166,118,228, 75, +244,230,210,114, 29,202,223,202,119, 78,189,149,106,109,203,246,222, 29,252,210, 73, 20, 51,105,131,135, 46,234,178, 94, 96,165, + 36,181, 2,219,174,131, 50,182,161, 92, 79, 70, 54,213,225, 90,250, 38,204,205,187, 56, 14,103, 77,112,238,194, 7, 39,174,162, +243,107,127,110, 57, 19, 68,196, 61,180,206,171,137,125,238, 11, 51,216,190, 16,202,212, 74, 69,117, 60, 9, 69,130, 18, 18,131, + 64, 10,129,147,138,185,109,216, 90,214,156,218,217,226,166, 66, 49, 78, 20,149,113,148, 30,206, 88,195, 15, 76,197,178,149, 88, +141, 28,219, 44,102, 33, 16, 49,182,203,208,215, 87,187,192,102,217,132, 64,208,154, 46, 16,235,103,203,237,189,212,145,134,209, + 25,152, 55,156,105, 28,199, 82,203, 36,149, 92, 40,151, 60, 52, 43,195, 76, 62,190,107, 61,168, 46, 80,155, 38,146, 81, 34, 24, + 9, 65,130,160,178,134,157, 89,117,176, 18, 35,123, 32,196,182,157, 99, 45, 88, 65,157, 8, 94,172,150,156, 41,103,161,159,189, +172, 96,119, 30,214,228,213,238,211,214,145,183,194, 54,237,115,135, 51,246,125,114, 35, 46, 11,252,212, 3, 69,170, 37,119, 23, + 3,102,214,145,227,200,165, 68, 9,129,104, 12,235,153, 10, 36,135, 77,195,102, 99,120,112,231, 34, 44,103,241, 61, 93, 8, 60, +117,134,212, 5,199,134, 33, 33,184,113,152,147,106,129,208,146, 65, 34, 25, 72,193, 64, 8,106,235,185,176,177,160,180, 13,207, + 45, 97,167, 41,169, 61,236, 44, 13, 59,149,167, 49,112,174, 10,231,176,144, 32,241, 36, 54,136, 62, 13,156,197,154,134, 25, 1, + 48,233, 77, 29, 70, 94,157, 13,142,168,172, 67,229,109,177, 8,235,120, 50,134, 19,235,100,227, 34, 76, 46, 45,203,215,117,156, + 87, 92,133,179, 23,128,116, 14, 89,213,108,204, 74, 46, 84,158, 90, 8, 94,150,154, 60,151,172, 24,199,245,197,132, 34, 73, 16, +206, 82,232, 20, 39, 37,167,151,115, 78,217,154,239,206, 27, 42, 37,176,198,225,165,192,213, 53,190,113,120,107,240,175,133, 68, +204, 69,208,168, 45, 59, 33,151, 87,121,252, 63,200,142,135, 98, 79, 39, 83, 45, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, + 0}; + -- cgit v1.2.3 From 11aa9ff2238f28af98c2bbc3ab5e731a3b9a608b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 16:05:20 +0000 Subject: error in own recent commit. set subversion to 0 --- source/blender/blenkernel/BKE_blender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 25eaab82a99..88dad03db1e 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,7 +44,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 259 -#define BLENDER_SUBVERSION 1 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 -- cgit v1.2.3 From 11d4cfaa715bc1acb194c3b71ffb1635155d39ec Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 10 Aug 2011 17:51:18 +0000 Subject: Baked Animation re-Import fix --- source/blender/collada/AnimationImporter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 4b467c4a149..6f3406e88f7 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -667,7 +667,7 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * COLLADABU::Math::Matrix4 mat4 = mat->getMatrix(); switch (binding->animationClass) { case COLLADAFW::AnimationList::TRANSFORM: - + } }*/ case COLLADAFW::Transformation::SKEW: @@ -815,9 +815,10 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , //Add the curves of the current animation to the object for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; - if (ob->type == OB_ARMATURE) + if ((ob->type == OB_ARMATURE)){ + if ( !is_matrix) add_bone_fcurve( ob, node , fcu ); - else + } else BLI_addtail(AnimCurves, fcu); } } -- cgit v1.2.3 From 286a6d39c7b9306b49878f07f560c89f25e65a9b Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 10 Aug 2011 19:43:40 +0000 Subject: import only transform matrix animation method ( in progress ) --- source/blender/collada/AnimationImporter.cpp | 168 ++++++++++++++++++++++++++- source/blender/collada/AnimationImporter.h | 2 + 2 files changed, 168 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 6f3406e88f7..14d081c2c53 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -750,6 +750,165 @@ void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& list } +void AnimationImporter::apply_matrix_curves_to_bone( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, + COLLADAFW::Transformation * tm , char * joint_path, bool is_joint,const char * bone_name) +{ + std::vector frames; + find_frames(&frames, &animcurves); + + float irest_dae[4][4]; + float rest[4][4], irest[4][4]; + + if (is_joint) { + get_joint_rest_mat(irest_dae, root, node); + invert_m4(irest_dae); + + Bone *bone = get_named_bone((bArmature*)ob->data, bone_name); + if (!bone) { + fprintf(stderr, "cannot find bone \"%s\"\n", bone_name); + return; + } + + unit_m4(rest); + copy_m4_m4(rest, bone->arm_mat); + invert_m4_m4(irest, rest); + } + // new curves to assign matrix transform animation + FCurve *newcu[10]; // if tm_type is matrix, then create 10 curves: 4 rot, 3 loc, 3 scale + unsigned int totcu = 10 ; + const char *tm_str = NULL; + char rna_path[200]; + for (int i = 0; i < totcu; i++) { + + int axis = i; + + if (i < 4) { + tm_str = "rotation_quaternion"; + axis = i; + } + else if (i < 7) { + tm_str = "location"; + axis = i - 4; + } + else { + tm_str = "scale"; + axis = i - 7; + } + + + if (is_joint) + BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, tm_str); + else + strcpy(rna_path, tm_str); + newcu[i] = create_fcurve(axis, rna_path); + +#ifdef ARMATURE_TEST + if (is_joint) + job_curves[i] = create_fcurve(axis, tm_str); +#endif + } + +// Object *job = NULL; + +#ifdef ARMATURE_TEST + FCurve *job_curves[10]; + job = get_joint_object(root, node, par_job); +#endif + + if (frames.size() == 0) + return; + +std::sort(frames.begin(), frames.end()); + //if (is_joint) + // armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + + + std::vector::iterator it; + + // sample values at each frame + for (it = frames.begin(); it != frames.end(); it++) { + float fra = *it; + + float mat[4][4]; + float matfra[4][4]; + + unit_m4(matfra); + + float m[4][4]; + + unit_m4(m); + dae_matrix_to_mat4(tm, m); + + float temp[4][4]; + copy_m4_m4(temp, mat); + + mul_m4_m4m4(mat, m, temp); + + // for joints, we need a special matrix + if (is_joint) { + // special matrix: iR * M * iR_dae * R + // where R, iR are bone rest and inverse rest mats in world space (Blender bones), + // iR_dae is joint inverse rest matrix (DAE) and M is an evaluated joint world-space matrix (DAE) + float temp[4][4], par[4][4]; + + // calc M + calc_joint_parent_mat_rest(par, NULL, root, node); + mul_m4_m4m4(temp, matfra, par); + + // evaluate_joint_world_transform_at_frame(temp, NULL, , node, fra); + + // calc special matrix + mul_serie_m4(mat, irest, temp, irest_dae, rest, NULL, NULL, NULL, NULL); + } + else { + copy_m4_m4(mat, matfra); + } + + float rot[4], loc[3], scale[3]; + + mat4_to_quat(rot, mat); + copy_v3_v3(loc, mat[3]); + mat4_to_size(scale, mat); + + // add keys + for (int i = 0; i < totcu; i++) { + if (i < 4) + add_bezt(newcu[i], fra, rot[i]); + else if (i < 7) + add_bezt(newcu[i], fra, loc[i - 4]); + else + add_bezt(newcu[i], fra, scale[i - 7]); + } + } + verify_adt_action((ID*)&ob->id, 1); + + ListBase *curves = &ob->adt->action->curves; + + // add curves + for (int i= 0; i < totcu; i++) { + if (is_joint) + add_bone_fcurve(ob, node, newcu[i]); + else + BLI_addtail(curves, newcu[i]); + +#ifdef ARMATURE_TEST + if (is_joint) + BLI_addtail(&job->adt->action->curves, job_curves[i]); +#endif + } + + if (is_joint) { + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_QUAT; + } + else { + ob->rotmode = ROT_MODE_QUAT; + } + + return; + +} + void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::map& root_map, std::map& object_map, @@ -816,8 +975,13 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; if ((ob->type == OB_ARMATURE)){ - if ( !is_matrix) - add_bone_fcurve( ob, node , fcu ); + if ( is_matrix){ + float irest_dae[4][4]; + get_joint_rest_mat(irest_dae, root, node); + apply_matrix_curves_to_bone(ob, animcurves, root , node, transform ,joint_path , true , bone_name ); + } + else + add_bone_fcurve( ob, node , fcu ); } else BLI_addtail(AnimCurves, fcu); } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index ea7de961382..944e3ba5be5 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -152,6 +152,8 @@ public: AnimMix* get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; + void apply_matrix_curves_to_bone( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, + COLLADAFW::Transformation * tm , char * joint_path, bool is_joint,const char * bone_name); void Assign_transform_animations(COLLADAFW::Transformation* transform , const COLLADAFW::AnimationList::AnimationBinding * binding, -- cgit v1.2.3 From 50277c48ba5bf9eae418453159e421489895dafd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Aug 2011 20:12:27 +0000 Subject: fix for regression for shape key UI, values are now editable again in the list, double checked this works for mesh/curve and lattice types. --- source/blender/editors/interface/interface_templates.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 305a4a8b3d6..6384d91955f 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2110,7 +2110,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe } else if(itemptr->type == &RNA_ShapeKey) { Object *ob= (Object*)activeptr->data; - Key *key= (Key*)itemptr->data; + Key *key= (Key*)itemptr->id.data; split= uiLayoutSplit(sub, 0.75f, 0); -- cgit v1.2.3 From 07e8bfd2f2a09452d61645f32479c60eb4be85b7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Aug 2011 05:43:20 +0000 Subject: unlocking outliner.c and removing... (merging refactor from pepper but looks like this will take a few steps) --- source/blender/editors/space_outliner/outliner.c | 5792 ---------------------- 1 file changed, 5792 deletions(-) delete mode 100644 source/blender/editors/space_outliner/outliner.c (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c deleted file mode 100644 index 93dc96cf9c0..00000000000 --- a/source/blender/editors/space_outliner/outliner.c +++ /dev/null @@ -1,5792 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2004 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/space_outliner/outliner.c - * \ingroup spoutliner - */ - - -#include -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_anim_types.h" -#include "DNA_armature_types.h" -#include "DNA_constraint_types.h" -#include "DNA_camera_types.h" -#include "DNA_group_types.h" -#include "DNA_key_types.h" -#include "DNA_lamp_types.h" -#include "DNA_material_types.h" -#include "DNA_mesh_types.h" -#include "DNA_meta_types.h" -#include "DNA_particle_types.h" -#include "DNA_scene_types.h" -#include "DNA_world_types.h" -#include "DNA_sequence_types.h" -#include "DNA_object_types.h" - -#include "BLI_blenlib.h" -#include "BLI_utildefines.h" -#include "BLI_math_base.h" - -#if defined WIN32 && !defined _LIBC -# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ -#else -# ifndef _GNU_SOURCE -# define _GNU_SOURCE -# endif -# include -#endif - - -#include "BKE_animsys.h" -#include "BKE_context.h" -#include "BKE_deform.h" -#include "BKE_depsgraph.h" -#include "BKE_fcurve.h" -#include "BKE_global.h" -#include "BKE_group.h" -#include "BKE_library.h" -#include "BKE_main.h" -#include "BKE_modifier.h" -#include "BKE_report.h" -#include "BKE_scene.h" -#include "BKE_sequencer.h" - -#include "ED_armature.h" -#include "ED_object.h" -#include "ED_screen.h" -#include "ED_util.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "BIF_gl.h" -#include "BIF_glutil.h" - -#include "UI_interface.h" -#include "UI_interface_icons.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "RNA_access.h" -#include "RNA_define.h" - -#include "ED_keyframing.h" - -#include "outliner_intern.h" - - -#define OL_Y_OFFSET 2 - -#define OL_TOG_RESTRICT_VIEWX (UI_UNIT_X*3) -#define OL_TOG_RESTRICT_SELECTX (UI_UNIT_X*2) -#define OL_TOG_RESTRICT_RENDERX UI_UNIT_X - -#define OL_TOGW OL_TOG_RESTRICT_VIEWX - -#define OL_RNA_COLX (UI_UNIT_X*15) -#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) -#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) - -#define TS_CHUNK 128 - -#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL) - -/* ************* XXX **************** */ - -static void error(const char *UNUSED(arg), ...) {} - -/* ********************************** */ - - -/* ******************** PROTOTYPES ***************** */ -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty); -static void outliner_do_object_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)); - -static int group_select_flag(Group *gr); - -/* ******************** PERSISTANT DATA ***************** */ - -static void outliner_storage_cleanup(SpaceOops *soops) -{ - TreeStore *ts= soops->treestore; - - if(ts) { - TreeStoreElem *tselem; - int a, unused= 0; - - /* each element used once, for ID blocks with more users to have each a treestore */ - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) tselem->used= 0; - - /* cleanup only after reading file or undo step, and always for - * RNA datablocks view in order to save memory */ - if(soops->storeflag & SO_TREESTORE_CLEANUP) { - - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id==NULL) unused++; - } - - if(unused) { - if(ts->usedelem == unused) { - MEM_freeN(ts->data); - ts->data= NULL; - ts->usedelem= ts->totelem= 0; - } - else { - TreeStoreElem *tsnewar, *tsnew; - - tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem"); - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id) { - *tsnew= *tselem; - tsnew++; - } - } - MEM_freeN(ts->data); - ts->data= tsnewar; - ts->usedelem-= unused; - ts->totelem= ts->usedelem; - } - } - } - } -} - -static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr) -{ - TreeStore *ts; - TreeStoreElem *tselem; - int a; - - /* case 1; no TreeStore */ - if(soops->treestore==NULL) { - soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore"); - } - ts= soops->treestore; - - /* check if 'te' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if(tselem->id==id && tselem->used==0) { - if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) { - te->store_index= a; - tselem->used= 1; - return; - } - } - } - - /* add 1 element to treestore */ - if(ts->usedelem==ts->totelem) { - TreeStoreElem *tsnew; - - tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data"); - if(ts->data) { - memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem)); - MEM_freeN(ts->data); - } - ts->data= tsnew; - ts->totelem+= TS_CHUNK; - } - - tselem= ts->data+ts->usedelem; - - tselem->type= type; - if(type) tselem->nr= nr; // we're picky! :) - else tselem->nr= 0; - tselem->id= id; - tselem->used = 0; - tselem->flag= TSE_CLOSED; - te->store_index= ts->usedelem; - - ts->usedelem++; -} - -/* ******************** TREE MANAGEMENT ****************** */ - -void outliner_free_tree(ListBase *lb) -{ - - while(lb->first) { - TreeElement *te= lb->first; - - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } -} - -static void outliner_height(SpaceOops *soops, ListBase *lb, int *h) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - if((tselem->flag & TSE_CLOSED)==0) - outliner_height(soops, &te->subtree, h); - (*h) += UI_UNIT_Y; - te= te->next; - } -} - -#if 0 // XXX this is currently disabled until te->xend is set correctly -static void outliner_width(SpaceOops *soops, ListBase *lb, int *w) -{ - TreeElement *te= lb->first; - while(te) { -// TreeStoreElem *tselem= TREESTORE(te); - - // XXX fixme... te->xend is not set yet - if(tselem->flag & TSE_CLOSED) { - if (te->xend > *w) - *w = te->xend; - } - outliner_width(soops, &te->subtree, w); - te= te->next; - } -} -#endif - -static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - // XXX fixme... (currently, we're using a fixed length of 100)! - /*if(te->xend) { - if(te->xend > *w) - *w = te->xend; - }*/ - if(startx+100 > *w) - *w = startx+100; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X); - te= te->next; - } -} - -static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) -{ - TreeElement *te= lb->first, *tes; - while(te) { - if(te->store_index==store_index) return te; - tes= outliner_find_tree_element(&te->subtree, store_index); - if(tes) return tes; - te= te->next; - } - return NULL; -} - - - -static ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) -{ - TreeStoreElem *tselem; - te= te->parent; - - while(te) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==idcode) return tselem->id; - te= te->parent; - } - return NULL; -} - -struct treesort { - TreeElement *te; - ID *id; - const char *name; - short idcode; -}; - -static int treesort_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - int comp; - - /* first put objects last (hierarchy) */ - comp= (x1->idcode==ID_OB); - if(x2->idcode==ID_OB) comp+=2; - - if(comp==1) return 1; - else if(comp==2) return -1; - else if(comp==3) { - comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - return 0; -} - -/* this is nice option for later? doesnt look too useful... */ -#if 0 -static int treesort_obtype_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - - /* first put objects last (hierarchy) */ - if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1; - else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1; - else { - /* 2nd we check ob type */ - if(x1->idcode==ID_OB && x2->idcode==ID_OB) { - if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1; - else if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1; - else return 0; - } - else { - int comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - } -} -#endif - -/* sort happens on each subtree individual */ -static void outliner_sort(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - int totelem=0; - - te= lb->last; - if(te==NULL) return; - tselem= TREESTORE(te); - - /* sorting rules; only object lists or deformgroups */ - if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) { - - /* count first */ - for(te= lb->first; te; te= te->next) totelem++; - - if(totelem>1) { - struct treesort *tear= MEM_mallocN(totelem*sizeof(struct treesort), "tree sort array"); - struct treesort *tp=tear; - int skip= 0; - - for(te= lb->first; te; te= te->next, tp++) { - tselem= TREESTORE(te); - tp->te= te; - tp->name= te->name; - tp->idcode= te->idcode; - if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0; // dont sort this - tp->id= tselem->id; - } - /* keep beginning of list */ - for(tp= tear, skip=0; skipidcode) break; - - if(skipfirst=lb->last= NULL; - tp= tear; - while(totelem--) { - BLI_addtail(lb, tp->te); - tp++; - } - MEM_freeN(tear); - } - } - - for(te= lb->first; te; te= te->next) { - outliner_sort(soops, &te->subtree); - } -} - -/* Prototype, see functions below */ -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index); - -#define LOG2I(x) (int)(log(x)/M_LN2) - -static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) -{ - TreeStoreElem *tselem = NULL; - TreeElement *te = NULL; - - /* log stuff is to convert bitflags (powers of 2) to small integers, - * in order to not overflow short tselem->nr */ - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED)); - te->name= "Combined"; - te->directdata= &srl->passflag; - - /* save cpu cycles, but we add the first to invoke an open/close triangle */ - tselem = TREESTORE(tenla); - if(tselem->flag & TSE_CLOSED) - return; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z)); - te->name= "Z"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR)); - te->name= "Vector"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL)); - te->name= "Normal"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV)); - te->name= "UV"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST)); - te->name= "Mist"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB)); - te->name= "Index Object"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); - te->name= "Index Material"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); - te->name= "Color"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE)); - te->name= "Diffuse"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC)); - te->name= "Specular"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW)); - te->name= "Shadow"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO)); - te->name= "AO"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT)); - te->name= "Reflection"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT)); - te->name= "Refraction"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT)); - te->name= "Indirect"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT)); - te->name= "Environment"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT)); - te->name= "Emit"; - te->directdata= &srl->passflag; -} - -#undef LOG2I - -/* special handling of hierarchical non-lib data */ -static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, - TreeElement *parent, int *a) -{ - TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); - - (*a)++; - te->name= curBone->name; - te->directdata= curBone; - - for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { - outliner_add_bone(soops, &te->subtree, id, curBone, te, a); - } -} - -static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) -{ - SceneRenderLayer *srl; - TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0); - int a; - - tenla->name= "RenderLayers"; - for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) { - TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a); - tenlay->name= srl->name; - tenlay->directdata= &srl->passflag; - - if(srl->light_override) - outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0); - if(srl->mat_override) - outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0); - - outliner_add_passes(soops, tenlay, &sce->id, srl); - } - - outliner_add_element(soops, lb, sce->world, te, 0, 0); -} - -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index) -{ - TreeElement *te; - TreeStoreElem *tselem; - ID *id= idv; - int a = 0; - - if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - id= ((PointerRNA*)idv)->id.data; - if(!id) id= ((PointerRNA*)idv)->data; - } - - if(id==NULL) return NULL; - - te= MEM_callocN(sizeof(TreeElement), "tree elem"); - /* add to the visual tree */ - BLI_addtail(lb, te); - /* add to the storage */ - check_persistant(soops, te, id, type, index); - tselem= TREESTORE(te); - - te->parent= parent; - te->index= index; // for data arays - if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)); - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)); - else if(type==TSE_ANIM_DATA); - else { - te->name= id->name+2; // default, can be overridden by Library or non-ID data - te->idcode= GS(id->name); - } - - if(type==0) { - - /* tuck pointer back in object, to construct hierarchy */ - if(GS(id->name)==ID_OB) id->newid= (ID *)te; - - /* expand specific data always */ - switch(GS(id->name)) { - case ID_LI: - te->name= ((Library *)id)->name; - break; - case ID_SCE: - outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); - break; - case ID_OB: - { - Object *ob= (Object *)id; - - outliner_add_element(soops, &te->subtree, ob->adt, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this - - if(ob->proxy && ob->id.lib==NULL) - outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); - - outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); - - if(ob->pose) { - bArmature *arm= ob->data; - bPoseChannel *pchan; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); - - tenla->name= "Pose"; - - if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) { // channels undefined in editmode, but we want the 'tenla' pose icon itself - int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ - - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); - ten->name= pchan->name; - ten->directdata= pchan; - pchan->prev= (bPoseChannel *)ten; - - if(pchan->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten1; - TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); - //char *str; - - tenla1->name= "Constraints"; - for(con= pchan->constraints.first; con; con= con->next, const_index++) { - ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); -#if 0 /* disabled as it needs to be reworked for recoded constraints system */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten1->name= str; - else if(target) ten1->name= target->id.name+2; - else ten1->name= con->name; -#endif - ten1->name= con->name; - ten1->directdata= con; - /* possible add all other types links? */ - } - } - } - /* make hierarchy */ - ten= tenla->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - if(tselem->type==TSE_POSE_CHANNEL) { - pchan= (bPoseChannel *)ten->directdata; - if(pchan->parent) { - BLI_remlink(&tenla->subtree, ten); - par= (TreeElement *)pchan->parent->prev; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - } - ten= nten; - } - /* restore prev pointers */ - pchan= ob->pose->chanbase.first; - if(pchan) pchan->prev= NULL; - for(; pchan; pchan= pchan->next) { - if(pchan->next) pchan->next->prev= pchan; - } - } - - /* Pose Groups */ - if(ob->pose->agroups.first) { - bActionGroup *agrp; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); - int a= 0; - - tenla->name= "Bone Groups"; - for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); - ten->name= agrp->name; - ten->directdata= agrp; - } - } - } - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); - - if(ob->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); - int a= 0; - //char *str; - - tenla->name= "Constraints"; - for(con= ob->constraints.first; con; con= con->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); -#if 0 /* disabled due to constraints system targets recode... code here needs review */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten->name= str; - else if(target) ten->name= target->id.name+2; - else ten->name= con->name; -#endif - ten->name= con->name; - ten->directdata= con; - /* possible add all other types links? */ - } - } - - if(ob->modifiers.first) { - ModifierData *md; - TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); - int index; - - temod->name = "Modifiers"; - for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { - TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); - te->name= md->name; - te->directdata = md; - - if (md->type==eModifierType_Lattice) { - outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Curve) { - outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Armature) { - outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Hook) { - outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_ParticleSystem) { - TreeElement *ten; - ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; - - ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); - ten->directdata = psys; - ten->name = psys->part->id.name+2; - } - } - } - if(ob->defbase.first) { - bDeformGroup *defgroup; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); - int a= 0; - - tenla->name= "Vertex Groups"; - for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); - ten->name= defgroup->name; - ten->directdata= defgroup; - } - } - - if(ob->dup_group) - outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); - - } - break; - case ID_ME: - { - Mesh *me= (Mesh *)id; - - //outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); - /* could do tfaces with image links, but the images are not grouped nicely. - would require going over all tfaces, sort images in use. etc... */ - } - break; - case ID_CU: - { - Curve *cu= (Curve *)id; - - outliner_add_element(soops, &te->subtree, cu->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); - } - break; - case ID_MB: - { - MetaBall *mb= (MetaBall *)id; - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); - } - break; - case ID_MA: - { - Material *ma= (Material *)id; - - outliner_add_element(soops, &te->subtree, ma->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_TE: - { - Tex *tex= (Tex *)id; - - outliner_add_element(soops, &te->subtree, tex->adt, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); - } - break; - case ID_CA: - { - Camera *ca= (Camera *)id; - outliner_add_element(soops, &te->subtree, ca->adt, te, TSE_ANIM_DATA, 0); - } - break; - case ID_LA: - { - Lamp *la= (Lamp *)id; - - outliner_add_element(soops, &te->subtree, la->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_WO: - { - World *wrld= (World *)id; - - outliner_add_element(soops, &te->subtree, wrld->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_KE: - { - Key *key= (Key *)id; - - outliner_add_element(soops, &te->subtree, key->adt, te, TSE_ANIM_DATA, 0); - } - break; - case ID_AC: - { - // XXX do we want to be exposing the F-Curves here? - //bAction *act= (bAction *)id; - } - break; - case ID_AR: - { - bArmature *arm= (bArmature *)id; - int a= 0; - - if(arm->edbo) { - EditBone *ebone; - TreeElement *ten; - - for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { - ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); - ten->directdata= ebone; - ten->name= ebone->name; - ebone->temp= ten; - } - /* make hierarchy */ - ten= te->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - ebone= (EditBone *)ten->directdata; - if(ebone->parent) { - BLI_remlink(&te->subtree, ten); - par= ebone->parent->temp; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - } - else { - /* do not extend Armature when we have posemode */ - tselem= TREESTORE(te->parent); - if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE); - else { - Bone *curBone; - for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ - outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); - } - } - } - } - break; - } - } - else if(type==TSE_ANIM_DATA) { - AnimData *adt= (AnimData *)idv; - - /* this element's info */ - te->name= "Animation"; - - /* Action */ - outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0); - - /* Drivers */ - if (adt->drivers.first) { - TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); - ID *lastadded= NULL; - FCurve *fcu; - - ted->name= "Drivers"; - - for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { - if (fcu->driver && fcu->driver->variables.first) { - ChannelDriver *driver= fcu->driver; - DriverVar *dvar; - - for (dvar= driver->variables.first; dvar; dvar= dvar->next) { - /* loop over all targets used here */ - DRIVER_TARGETS_USED_LOOPER(dvar) - { - if (lastadded != dtar->id) { - // XXX this lastadded check is rather lame, and also fails quite badly... - outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); - lastadded= dtar->id; - } - } - DRIVER_TARGETS_LOOPER_END - } - } - } - } - - /* NLA Data */ - if (adt->nla_tracks.first) { - TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0); - NlaTrack *nlt; - int a= 0; - - tenla->name= "NLA Tracks"; - - for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) { - TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a); - NlaStrip *strip; - TreeElement *ten; - int b= 0; - - tenlt->name= nlt->name; - - for (strip=nlt->strips.first; strip; strip=strip->next, b++) { - ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b); - if(ten) ten->directdata= strip; - } - } - } - } - else if(type==TSE_SEQUENCE) { - Sequence *seq= (Sequence*) idv; - Sequence *p; - - /* - * The idcode is a little hack, but the outliner - * only check te->idcode if te->type is equal to zero, - * so this is "safe". - */ - te->idcode= seq->type; - te->directdata= seq; - - if(seq->type<7) { - /* - * This work like the sequence. - * If the sequence have a name (not default name) - * show it, in other case put the filename. - */ - if(strcmp(seq->name, "SQ")) - te->name= seq->name; - else { - if((seq->strip) && (seq->strip->stripdata)) - te->name= seq->strip->stripdata->name; - else - te->name= "SQ None"; - } - - if(seq->type==SEQ_META) { - te->name= "Meta Strip"; - p= seq->seqbase.first; - while(p) { - outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } - } - else - outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index); - } - else - te->name= "Effect"; - } - else if(type==TSE_SEQ_STRIP) { - Strip *strip= (Strip *)idv; - - if(strip->dir) - te->name= strip->dir; - else - te->name= "Strip None"; - te->directdata= strip; - } - else if(type==TSE_SEQUENCE_DUP) { - Sequence *seq= (Sequence*)idv; - - te->idcode= seq->type; - te->directdata= seq; - te->name= seq->strip->stripdata->name; - } - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv; - PropertyRNA *prop, *iterprop; - PropertyType proptype; - int a, tot; - - /* we do lazy build, for speed and to avoid infinite recusion */ - - if(ptr->data == NULL) { - te->name= "(empty)"; - } - else if(type == TSE_RNA_STRUCT) { - /* struct */ - te->name= RNA_struct_name_get_alloc(ptr, NULL, 0); - - if(te->name) - te->flag |= TE_FREE_NAME; - else - te->name= (char*)RNA_struct_ui_name(ptr->type); - - iterprop= RNA_struct_iterator_property(ptr->type); - tot= RNA_property_collection_length(ptr, iterprop); - - /* auto open these cases */ - if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) - if(!tselem->used) - tselem->flag &= ~TSE_CLOSED; - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_PROPERTY, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - - te->rnaptr= *ptr; - } - else if(type == TSE_RNA_PROPERTY) { - /* property */ - iterprop= RNA_struct_iterator_property(ptr->type); - RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr); - - prop= propptr.data; - proptype= RNA_property_type(prop); - - te->name= (char*)RNA_property_ui_name(prop); - te->directdata= prop; - te->rnaptr= *ptr; - - if(proptype == PROP_POINTER) { - pptr= RNA_property_pointer_get(ptr, prop); - - if(pptr.data) { - if(!(tselem->flag & TSE_CLOSED)) - outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); - else - te->flag |= TE_LAZY_CLOSED; - } - } - else if(proptype == PROP_COLLECTION) { - tot= RNA_property_collection_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); - } - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) { - tot= RNA_property_array_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - } - else if(type == TSE_RNA_ARRAY_ELEM) { - char c; - - prop= parent->directdata; - - te->directdata= prop; - te->rnaptr= *ptr; - te->index= index; - - c= RNA_property_array_item_char(prop, index); - - te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName"); - if(c) sprintf((char *)te->name, " %c", c); - else sprintf((char *)te->name, " %d", index+1); - te->flag |= TE_FREE_NAME; - } - } - else if(type == TSE_KEYMAP) { - wmKeyMap *km= (wmKeyMap *)idv; - wmKeyMapItem *kmi; - char opname[OP_MAX_TYPENAME]; - - te->directdata= idv; - te->name= km->idname; - - if(!(tselem->flag & TSE_CLOSED)) { - a= 0; - - for (kmi= km->items.first; kmi; kmi= kmi->next, a++) { - const char *key= WM_key_event_string(kmi->type); - - if(key[0]) { - wmOperatorType *ot= NULL; - - if(kmi->propvalue); - else ot= WM_operatortype_find(kmi->idname, 0); - - if(ot || kmi->propvalue) { - TreeElement *ten= outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a); - - ten->directdata= kmi; - - if(kmi->propvalue) { - ten->name= "Modal map, not yet"; - } - else { - WM_operator_py_idname(opname, ot->idname); - ten->name= BLI_strdup(opname); - ten->flag |= TE_FREE_NAME; - } - } - } - } - } - else - te->flag |= TE_LAZY_CLOSED; - } - - return te; -} - -static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten, *tep; - TreeStoreElem *tselem; - - /* build hierarchy */ - // XXX also, set extents here... - te= lb->first; - while(te) { - ten= te->next; - tselem= TREESTORE(te); - - if(tselem->type==0 && te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - if(ob->parent && ob->parent->id.newid) { - BLI_remlink(lb, te); - tep= (TreeElement *)ob->parent->id.newid; - BLI_addtail(&tep->subtree, te); - // set correct parent pointers - for(te=tep->subtree.first; te; te= te->next) te->parent= tep; - } - } - te= ten; - } -} - -/* Helped function to put duplicate sequence in the same tree. */ -static int need_add_seq_dup(Sequence *seq) -{ - Sequence *p; - - if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name)) - return(1); - - /* - * First check backward, if we found a duplicate - * sequence before this, don't need it, just return. - */ - p= seq->prev; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->prev; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(2); - p= p->prev; - } - - p= seq->next; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(0); - p= p->next; - } - return(1); -} - -static void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index) -{ - TreeElement *ch; - Sequence *p; - - p= seq; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } -} - -static int outliner_filter_has_name(TreeElement *te, const char *name, int flags) -{ -#if 0 - int found= 0; - - /* determine if match */ - if (flags & SO_FIND_CASE_SENSITIVE) { - if (flags & SO_FIND_COMPLETE) - found= strcmp(te->name, name) == 0; - else - found= strstr(te->name, name) != NULL; - } - else { - if (flags & SO_FIND_COMPLETE) - found= BLI_strcasecmp(te->name, name) == 0; - else - found= BLI_strcasestr(te->name, name) != NULL; - } -#else - - int fn_flag= 0; - int found= 0; - - if ((flags & SO_FIND_CASE_SENSITIVE) == 0) - fn_flag |= FNM_CASEFOLD; - - if (flags & SO_FIND_COMPLETE) { - found= fnmatch(name, te->name, fn_flag)==0; - } - else { - char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2]; - sprintf(fn_name, "*%s*", name); - found= fnmatch(fn_name, te->name, fn_flag)==0; - } - return found; -#endif -} - -static int outliner_filter_tree(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten; - TreeStoreElem *tselem; - - /* although we don't have any search string, we return TRUE - * since the entire tree is ok then... - */ - if (soops->search_string[0]==0) - return 1; - - for (te= lb->first; te; te= ten) { - ten= te->next; - - if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) { - /* item isn't something we're looking for, but... - * - if the subtree is expanded, check if there are any matches that can be easily found - * so that searching for "cu" in the default scene will still match the Cube - * - otherwise, we can't see within the subtree and the item doesn't match, - * so these can be safely ignored (i.e. the subtree can get freed) - */ - tselem= TREESTORE(te); - - if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } - } - else { - /* filter subtree too */ - outliner_filter_tree(soops, &te->subtree); - } - } - - /* if there are still items in the list, that means that there were still some matches */ - return (lb->first != NULL); -} - - -static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) -{ - Base *base; - Object *ob; - TreeElement *te=NULL, *ten; - TreeStoreElem *tselem; - int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */ - - if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW)) - return; - - outliner_free_tree(&soops->tree); - outliner_storage_cleanup(soops); - - /* clear ob id.new flags */ - for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL; - - /* options */ - if(soops->outlinevis == SO_LIBRARIES) { - Library *lib; - - for(lib= mainvar->library.first; lib; lib= lib->id.next) { - ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0); - lib->id.newid= (ID *)ten; - } - /* make hierarchy */ - ten= soops->tree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - lib= (Library *)tselem->id; - if(lib->parent) { - BLI_remlink(&soops->tree, ten); - par= (TreeElement *)lib->parent->id.newid; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - /* restore newid pointers */ - for(lib= mainvar->library.first; lib; lib= lib->id.next) - lib->id.newid= NULL; - - } - else if(soops->outlinevis == SO_ALL_SCENES) { - Scene *sce; - for(sce= mainvar->scene.first; sce; sce= sce->id.next) { - te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0); - tselem= TREESTORE(te); - if(sce==scene && show_opened) - tselem->flag &= ~TSE_CLOSED; - - for(base= sce->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL; - } - } - else if(soops->outlinevis == SO_CUR_SCENE) { - - outliner_add_scene_contents(soops, &soops->tree, scene, NULL); - - for(base= scene->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_VISIBLE) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) - outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_GROUPS) { - Group *group; - GroupObject *go; - - for(group= mainvar->group.first; group; group= group->id.next) { - if(group->gobject.first) { - te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0); - - for(go= group->gobject.first; go; go= go->next) { - ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0); - ten->directdata= NULL; /* eh, why? */ - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL; - } - } - } - else if(soops->outlinevis == SO_SAME_TYPE) { - Object *ob= OBACT; - if(ob) { - for(base= scene->base.first; base; base= base->next) { - if(base->object->type==ob->type) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - } - else if(soops->outlinevis == SO_SELECTED) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) { - if(base==BASACT || (base->flag & SELECT)) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis==SO_SEQUENCE) { - Sequence *seq; - Editing *ed= seq_give_editing(scene, FALSE); - int op; - - if(ed==NULL) - return; - - seq= ed->seqbasep->first; - if(!seq) - return; - - while(seq) { - op= need_add_seq_dup(seq); - if(op==1) - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0); - else if(op==0) { - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0); - add_seq_dup(soops, seq, ten, 0); - } - seq= seq->next; - } - } - else if(soops->outlinevis==SO_DATABLOCKS) { - PointerRNA mainptr; - - RNA_main_pointer_create(mainvar, &mainptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_USERDEF) { - PointerRNA userdefptr; - - RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_KEYMAP) { - wmWindowManager *wm= mainvar->wm.first; - wmKeyMap *km; - - for(km= wm->defaultconf->keymaps.first; km; km= km->next) { - ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0); - } - } - else { - ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0); - if(ten) ten->directdata= BASACT; - } - - outliner_sort(soops, &soops->tree); - outliner_filter_tree(soops, &soops->tree); -} - -/* **************** INTERACTIVE ************* */ - - -static int outliner_scroll_page_exec(bContext *C, wmOperator *op) -{ - ARegion *ar= CTX_wm_region(C); - int dy= ar->v2d.mask.ymax - ar->v2d.mask.ymin; - int up= 0; - - if(RNA_boolean_get(op->ptr, "up")) - up= 1; - - if(up == 0) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_scroll_page(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Scroll Page"; - ot->idname= "OUTLINER_OT_scroll_page"; - ot->description= "Scroll page up or down"; - - /* callbacks */ - ot->exec= outliner_scroll_page_exec; - ot->poll= ED_operator_outliner_active; - - /* properties */ - RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page."); -} - - -static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel) -{ - TreeElement *te; - int level=curlevel, lev; - - for(te= lb->first; te; te= te->next) { - - lev= outliner_count_levels(soops, &te->subtree, curlevel+1); - if(lev>level) level= lev; - } - return level; -} - -static int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - int level; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & flag) return curlevel; - - level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1); - if(level) return level; - } - return 0; -} - -static void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(set==0) tselem->flag &= ~flag; - else tselem->flag |= flag; - outliner_set_flag(soops, &te->subtree, flag, set); - } -} - -/* --- */ - -/* same check needed for both object operation and restrict column button func - * return 0 when in edit mode (cannot restrict view or select) - * otherwise return 1 */ -static int common_restrict_check(bContext *C, Object *ob) -{ - /* Don't allow hide an object in edit mode, - * check the bug #22153 and #21609, #23977 - */ - Object *obedit= CTX_data_edit_object(C); - if (obedit && obedit == ob) { - /* found object is hidden, reset */ - if (ob->restrictflag & OB_RESTRICT_VIEW) - ob->restrictflag &= ~OB_RESTRICT_VIEW; - /* found object is unselectable, reset */ - if (ob->restrictflag & OB_RESTRICT_SELECT) - ob->restrictflag &= ~OB_RESTRICT_SELECT; - return 0; - } - - return 1; -} - -static void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - Object *ob = (Object *)tselem->id; - - /* add check for edit mode */ - if(!common_restrict_check(C, ob)) return; - - if(base || (base= object_in_scene(ob, scene))) { - if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) { - ED_base_object_select(base, BA_DESELECT); - } - } -} - -static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_visibility_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Visibility"; - ot->idname= "OUTLINER_OT_visibility_toggle"; - ot->description= "Toggle the visibility of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_visibility_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_SELECT; - } -} - -static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selectability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selectability"; - ot->idname= "OUTLINER_OT_selectability_toggle"; - ot->description= "Toggle the selectability"; - - /* callbacks */ - ot->exec= outliner_toggle_selectability_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -static void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_RENDER; - } -} - -static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_renderability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Renderability"; - ot->idname= "OUTLINER_OT_renderability_toggle"; - ot->description= "Toggle the renderability of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_renderability_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Expand/Collapse All"; - ot->idname= "OUTLINER_OT_expanded_toggle"; - ot->description= "Expand/Collapse all items"; - - /* callbacks */ - ot->exec= outliner_toggle_expanded_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selected_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selected"; - ot->idname= "OUTLINER_OT_selected_toggle"; - ot->description= "Toggle the Outliner selection of items"; - - /* callbacks */ - ot->exec= outliner_toggle_selected_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -/* helper function for Show/Hide one level operator */ -static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(open) { - if(curlevel<=level) tselem->flag &= ~TSE_CLOSED; - } - else { - if(curlevel>=level) tselem->flag |= TSE_CLOSED; - } - - outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open); - } -} - -static int outliner_one_level_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - int add= RNA_boolean_get(op->ptr, "open"); - int level; - - level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1); - if(add==1) { - if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1); - } - else { - if(level==0) level= outliner_count_levels(soops, &soops->tree, 0); - if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_one_level(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show/Hide One Level"; - ot->idname= "OUTLINER_OT_show_one_level"; - ot->description= "Expand/collapse all entries by one level"; - - /* callbacks */ - ot->exec= outliner_one_level_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ - - /* properties */ - RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); -} - -/* This is not used anywhere at the moment */ -#if 0 -/* return 1 when levels were opened */ -static int outliner_open_back(SpaceOops *soops, TreeElement *te) -{ - TreeStoreElem *tselem; - int retval= 0; - - for (te= te->parent; te; te= te->parent) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) { - tselem->flag &= ~TSE_CLOSED; - retval= 1; - } - } - return retval; -} - -static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te; te= te->next) { - /* check if this tree-element was the one we're seeking */ - if (te == teFind) { - *found= 1; - return; - } - - /* try to see if sub-tree contains it then */ - outliner_open_reveal(soops, &te->subtree, teFind, found); - if (*found) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) - tselem->flag &= ~TSE_CLOSED; - return; - } - } -} -#endif - -// XXX just use View2D ops for this? -static void outliner_page_up_down(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int up) -{ - int dy= ar->v2d.mask.ymax-ar->v2d.mask.ymin; - - if(up == -1) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - soops->storeflag |= SO_TREESTORE_REDRAW; -} - -/* **** do clicks on items ******* */ - -static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Scene *sce; - - /* paranoia check */ - if(te->idcode!=ID_SCE) - return 0; - sce= (Scene *)tselem->id; - - if(set) { - sce->r.actlay= tselem->nr; - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce); - } - else { - return sce->r.actlay==tselem->nr; - } - return 0; -} - -static void tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeStoreElem *tselem= TREESTORE(te); - Scene *sce; - Base *base; - Object *ob= NULL; - - /* if id is not object, we search back */ - if(te->idcode==ID_OB) ob= (Object *)tselem->id; - else { - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==OBACT) return; - } - if(ob==NULL) return; - - sce= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - - /* find associated base in current scene */ - base= object_in_scene(ob, scene); - - if(base) { - if(set==2) { - /* swap select */ - if(base->flag & SELECT) - ED_base_object_select(base, BA_DESELECT); - else - ED_base_object_select(base, BA_SELECT); - } - else { - /* deleselect all */ - scene_deselect_all(scene); - ED_base_object_select(base, BA_SELECT); - } - if(C) { - ED_base_object_activate(C, base); /* adds notifier */ - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - } - - if(ob!=scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); -} - -static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tes; - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - // note: ob->matbits can be NULL when a local object points to a library mesh. - if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia - - /* searching in ob mat array? */ - tes= te->parent; - if(tes->idcode==ID_OB) { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 1; // make ob material active too - ob->colbits |= (1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]) return 1; - } - } - /* or we search for obdata material */ - else { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 0; // make obdata material active too - ob->colbits &= ~(1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]==0) return 1; - } - } - if(set) { - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); - } - return 0; -} - -static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem /* *tselem,*/ *tselemp; - Object *ob=OBACT; - SpaceButs *sbuts=NULL; - - if(ob==NULL) return 0; // no active object - - /*tselem= TREESTORE(te);*/ /*UNUSED*/ - - /* find buttons area (note, this is undefined really still, needs recode in blender) */ - /* XXX removed finding sbuts */ - - /* where is texture linked to? */ - tep= te->parent; - tselemp= TREESTORE(tep); - - if(tep->idcode==ID_WO) { - World *wrld= (World *)tselemp->id; - - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 1; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - wrld->texact= te->index; - } - else if(tselemp->id == (ID *)(scene->world)) { - if(wrld->texact==te->index) return 1; - } - } - else if(tep->idcode==ID_LA) { - Lamp *la= (Lamp *)tselemp->id; - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 2; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - la->texact= te->index; - } - else { - if(tselemp->id == ob->data) { - if(la->texact==te->index) return 1; - } - } - } - else if(tep->idcode==ID_MA) { - Material *ma= (Material *)tselemp->id; - if(set) { - if(sbuts) { - //sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 0; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - ma->texact= (char)te->index; - - /* also set active material */ - ob->actcol= tep->index+1; - } - else if(tep->flag & TE_ACTIVE) { // this is active material - if(ma->texact==te->index) return 1; - } - } - - if(set) - WM_event_add_notifier(C, NC_TEXTURE, NULL); - - return 0; -} - - -static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==NULL || ob!=OBACT) return 0; // just paranoia - - if(set) { -// XXX extern_set_butspace(F5KEY, 0); - } - else return 1; - - return 0; -} - -static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob= (Object *)outliner_search_back(soops, te, ID_OB); - - if(set) - return 0; - - return scene->camera == ob; -} - -static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem *tselem=NULL; - Scene *sce=NULL; - - tep= te->parent; - if(tep) { - tselem= TREESTORE(tep); - sce= (Scene *)tselem->id; - } - - if(set) { // make new scene active - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - } - - if(tep==NULL || tselem->id == (ID *)scene) { - if(set) { -// XXX extern_set_butspace(F8KEY, 0); - } - else { - return 1; - } - } - return 0; -} - -static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob; - - /* id in tselem is object */ - ob= (Object *)tselem->id; - if(set) { - ob->actdef= te->index+1; - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); - } - else { - if(ob==OBACT) - if(ob->actdef== te->index+1) return 1; - } - return 0; -} - -static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - - if(set) { - if (ob->pose) { - ob->pose->active_group= te->index+1; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - } - } - else { - if(ob==OBACT && ob->pose) { - if (ob->pose->active_group== te->index+1) return 1; - } - } - return 0; -} - -static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - bArmature *arm= ob->data; - bPoseChannel *pchan= te->directdata; - - if(set) { - if(!(pchan->bone->flag & BONE_HIDDEN_P)) { - - if(set==2) ED_pose_deselectall(ob, 2); // 2 = clear active tag - else ED_pose_deselectall(ob, 0); // 0 = deselect - - if(set==2 && (pchan->bone->flag & BONE_SELECTED)) { - pchan->bone->flag &= ~BONE_SELECTED; - } else { - pchan->bone->flag |= BONE_SELECTED; - arm->act_bone= pchan->bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob); - - } - } - else { - if(ob==OBACT && ob->pose) { - if (pchan->bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - -static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - bArmature *arm= (bArmature *)tselem->id; - Bone *bone= te->directdata; - - if(set) { - if(!(bone->flag & BONE_HIDDEN_P)) { - if(set==2) ED_pose_deselectall(OBACT, 2); // 2 is clear active tag - else ED_pose_deselectall(OBACT, 0); - - if(set==2 && (bone->flag & BONE_SELECTED)) { - bone->flag &= ~BONE_SELECTED; - } else { - bone->flag |= BONE_SELECTED; - arm->act_bone= bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT); - } - } - else { - Object *ob= OBACT; - - if(ob && ob->data==arm) { - if (bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - - -/* ebones only draw in editmode armature */ -static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel) -{ - if(sel) { - ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL; - arm->act_edbone= ebone; - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL; - } - else { - ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit); -} -static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - bArmature *arm= scene->obedit->data; - EditBone *ebone= te->directdata; - - if(set==1) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - ED_armature_deselect_all(scene->obedit, 0); // deselect - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - } - else if (set==2) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - if(!(ebone->flag & BONE_SELECTED)) { - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - else { - /* entirely selected, so de-select */ - tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE); - return 0; - } - } - } - else if (ebone->flag & BONE_SELECTED) { - return 1; - } - return 0; -} - -static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); - -// XXX extern_set_butspace(F9KEY, 0); - } - - return 0; -} - -static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); - -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set)) -{ - // XXX removed - return 0; -} - -/* generic call for ID data check or make/check active in UI */ -static int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - - switch(te->idcode) { - case ID_MA: - return tree_element_active_material(C, scene, soops, te, set); - case ID_WO: - return tree_element_active_world(C, scene, soops, te, set); - case ID_LA: - return tree_element_active_lamp(C, scene, soops, te, set); - case ID_TE: - return tree_element_active_texture(C, scene, soops, te, set); - case ID_TXT: - return tree_element_active_text(C, scene, soops, te, set); - case ID_CA: - return tree_element_active_camera(C, scene, soops, te, set); - } - return 0; -} - -static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - Base *base= object_in_scene(ob, scene); - - if(set) { - if(scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - if(ob->mode & OB_MODE_POSE) - ED_armature_exit_posemode(C, base); - else - ED_armature_enter_posemode(C, base); - } - else { - if(ob->mode & OB_MODE_POSE) return 1; - } - return 0; -} - -static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq= (Sequence*) te->directdata; - - if(set) { -// XXX select_single_seq(seq, 1); - } - else { - if(seq->flag & SELECT) - return(1); - } - return(0); -} - -static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq, *p; - Editing *ed= seq_give_editing(scene, FALSE); - - seq= (Sequence*)te->directdata; - if(set==0) { - if(seq->flag & SELECT) - return(1); - return(0); - } - -// XXX select_single_seq(seq, 1); - p= ed->seqbasep->first; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - -// if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) -// XXX select_single_seq(p, 0); - p= p->next; - } - return(0); -} - -static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - wmKeyMapItem *kmi= te->directdata; - - if(set==0) { - if(kmi->flag & KMI_INACTIVE) return 0; - return 1; - } - else { - kmi->flag ^= KMI_INACTIVE; - } - return 0; -} - - -/* generic call for non-id data to make/check active in UI */ -/* Context can be NULL when set==0 */ -static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set) -{ - switch(tselem->type) { - case TSE_DEFGROUP: - return tree_element_active_defgroup(C, scene, te, tselem, set); - case TSE_BONE: - return tree_element_active_bone(C, scene, te, tselem, set); - case TSE_EBONE: - return tree_element_active_ebone(C, scene, te, tselem, set); - case TSE_MODIFIER: - return tree_element_active_modifier(C, te, tselem, set); - case TSE_LINKED_OB: - if(set) tree_element_set_active_object(C, scene, soops, te, set); - else if(tselem->id==(ID *)OBACT) return 1; - break; - case TSE_LINKED_PSYS: - return tree_element_active_psys(C, scene, te, tselem, set); - case TSE_POSE_BASE: - return tree_element_active_pose(C, scene, te, tselem, set); - case TSE_POSE_CHANNEL: - return tree_element_active_posechannel(C, scene, te, tselem, set); - case TSE_CONSTRAINT: - return tree_element_active_constraint(C, te, tselem, set); - case TSE_R_LAYER: - return tree_element_active_renderlayer(C, te, tselem, set); - case TSE_POSEGRP: - return tree_element_active_posegroup(C, scene, te, tselem, set); - case TSE_SEQUENCE: - return tree_element_active_sequence(te, tselem, set); - case TSE_SEQUENCE_DUP: - return tree_element_active_sequence_dup(scene, te, tselem, set); - case TSE_KEYMAP_ITEM: - return tree_element_active_keymap_item(C, te, tselem, set); - - } - return 0; -} - -static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - int openclose= 0; - - /* open close icon */ - if((te->flag & TE_ICONROW)==0) { // hidden icon, no open/close - if( mval[0]>te->xs && mval[0]xs+UI_UNIT_X) - openclose= 1; - } - - if(openclose) { - /* all below close/open? */ - if(extend) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - - } - - return 1; - } - /* name and first icon */ - else if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* always makes active object */ - if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP) - tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0)); - - if(tselem->type==0) { // the lib blocks - /* editmode? */ - if(te->idcode==ID_SCE) { - if(scene!=(Scene *)tselem->id) { - ED_screen_set_scene(C, (Scene *)tselem->id); - } - } - else if(te->idcode==ID_GR) { - Group *gr= (Group *)tselem->id; - GroupObject *gob; - - if(extend) { - int sel= BA_SELECT; - for(gob= gr->gobject.first; gob; gob= gob->next) { - if(gob->ob->flag & SELECT) { - sel= BA_DESELECT; - break; - } - } - - for(gob= gr->gobject.first; gob; gob= gob->next) { - ED_base_object_select(object_in_scene(gob->ob, scene), sel); - } - } - else { - scene_deselect_all(scene); - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->flag & SELECT) == 0) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) { - WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); - } else { // rest of types - tree_element_active(C, scene, soops, te, 1); - } - - } - else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0)); - - return 1; - } - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1; - } - return 0; -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int extend= RNA_boolean_get(op->ptr, "extend"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX) - return OPERATOR_CANCELLED; - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break; - } - - if(te) { - ED_undo_push(C, "Outliner click event"); - } - else { - short selecting= -1; - int row; - - /* get row number - 100 here is just a dummy value since we don't need the column */ - UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, - fmval[0], fmval[1], NULL, &row); - - /* select relevant row */ - outliner_select(soops, &soops->tree, &row, &selecting); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - ED_undo_push(C, "Outliner selection event"); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_activate(wmOperatorType *ot) -{ - ot->name= "Activate Item"; - ot->idname= "OUTLINER_OT_item_activate"; - ot->description= "Handle mouse clicks to activate/select items"; - - ot->invoke= outliner_item_activate; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation."); -} - -/* *********** */ - -static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* all below close/open? */ - if(all) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, mval)) - return 1; - } - return 0; - -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int all= RNA_boolean_get(op->ptr, "all"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, fmval)) - break; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_openclose(wmOperatorType *ot) -{ - ot->name= "Open/Close Item"; - ot->idname= "OUTLINER_OT_item_openclose"; - ot->description= "Toggle whether item under cursor is enabled or closed"; - - ot->invoke= outliner_item_openclose; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items."); - -} - - -/* ********************************************** */ - -static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* name and first icon */ - if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* can't rename rna datablocks entries */ - if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) - ; - else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) - error("Cannot edit builtin name"); - else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) - error("Cannot edit sequence name"); - else if(tselem->id->lib) { - // XXX error_libdata(); - } - else if(te->idcode == ID_LI && te->parent) { - error("Cannot edit the path of an indirectly linked library"); - } - else { - tselem->flag |= TSE_TEXTBUT; - ED_region_tag_redraw(ar); - } - } - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1; - } - return 0; -} - -static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, fmval)) break; - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_item_rename(wmOperatorType *ot) -{ - ot->name= "Rename Item"; - ot->idname= "OUTLINER_OT_item_rename"; - ot->description= "Rename item under cursor"; - - ot->invoke= outliner_item_rename; - - ot->poll= ED_operator_outliner_active; -} - -static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id) -{ - TreeElement *te, *tes; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0) { - if(tselem->id==id) return te; - /* only deeper on scene or object */ - if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) { - tes= outliner_find_id(soops, &te->subtree, id); - if(tes) return tes; - } - } - } - return NULL; -} - -static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *so= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - - TreeElement *te; - int xdelta, ytop; - - // TODO: make this get this info from context instead... - if (OBACT == NULL) - return OPERATOR_CANCELLED; - - te= outliner_find_id(so, &so->tree, (ID *)OBACT); - if (te) { - /* make te->ys center of view */ - ytop= (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin)/2); - if (ytop>0) ytop= 0; - - v2d->cur.ymax= (float)ytop; - v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - v2d->cur.xmin); - v2d->cur.xmin += xdelta; - v2d->cur.xmax += xdelta; - - so->storeflag |= SO_TREESTORE_REDRAW; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_active(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Active"; - ot->idname= "OUTLINER_OT_show_active"; - ot->description= "Adjust the view so that the active Object is shown centered"; - - /* callbacks */ - ot->exec= outliner_show_active_exec; - ot->poll= ED_operator_outliner_active; -} - -/* tse is not in the treestore, we use its contents to find a match */ -static TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse) -{ - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem; - int a; - - if(tse->id==NULL) return NULL; - - /* check if 'tse' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) { - if(tselem->id==tse->id) { - break; - } - } - } - if(tselem) - return outliner_find_tree_element(&soops->tree, a); - - return NULL; -} - - -/* Called to find an item based on name. - */ -#if 0 - -/* recursive helper for function below */ -static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeStoreElem *tselem= TREESTORE(te); - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) { - TreeElement *ten; - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty); - } - } - -} - -/* to retrieve coordinates with redrawing the entire tree */ -static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y; - int startx= 0; - - for(te= soops->tree.first; te; te= te->next) { - outliner_set_coordinates_element(soops, te, startx, &starty); - } -} - -/* find next element that has this name */ -static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound) -{ - TreeElement *te, *tes; - - for (te= lb->first; te; te= te->next) { - int found = outliner_filter_has_name(te, name, flags); - - if(found) { - /* name is right, but is element the previous one? */ - if (prev) { - if ((te != prev) && (*prevFound)) - return te; - if (te == prev) { - *prevFound = 1; - } - } - else - return te; - } - - tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound); - if(tes) return tes; - } - - /* nothing valid found */ - return NULL; -} - -static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) -{ - TreeElement *te= NULL; - TreeElement *last_find; - TreeStoreElem *tselem; - int ytop, xdelta, prevFound=0; - char name[32]; - - /* get last found tree-element based on stored search_tse */ - last_find= outliner_find_tse(soops, &soops->search_tse); - - /* determine which type of search to do */ - if (again && last_find) { - /* no popup panel - previous + user wanted to search for next after previous */ - BLI_strncpy(name, soops->search_string, sizeof(name)); - flags= soops->search_flags; - - /* try to find matching element */ - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - if (te==NULL) { - /* no more matches after previous, start from beginning again */ - prevFound= 1; - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - } - } - else { - /* pop up panel - no previous, or user didn't want search after previous */ - strcpy(name, ""); -// XXX if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) { -// te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound); -// } -// else return; /* XXX RETURN! XXX */ - } - - /* do selection and reveal */ - if (te) { - tselem= TREESTORE(te); - if (tselem) { - /* expand branches so that it will be visible, we need to get correct coordinates */ - if( outliner_open_back(soops, te)) - outliner_set_coordinates(ar, soops); - - /* deselect all visible, and select found element */ - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - tselem->flag |= TSE_SELECTED; - - /* make te->ys center of view */ - ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/2); - if(ytop>0) ytop= 0; - ar->v2d.cur.ymax= (float)ytop; - ar->v2d.cur.ymin= (float)(ytop-(ar->v2d.mask.ymax-ar->v2d.mask.ymin)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - ar->v2d.cur.xmin); - ar->v2d.cur.xmin += xdelta; - ar->v2d.cur.xmax += xdelta; - - /* store selection */ - soops->search_tse= *tselem; - - BLI_strncpy(soops->search_string, name, 33); - soops->search_flags= flags; - - /* redraw */ - soops->storeflag |= SO_TREESTORE_REDRAW; - } - } - else { - /* no tree-element found */ - error("Not found: %s", name); - } -} -#endif - -/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/ -static int subtree_has_objects(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) return 1; - if( subtree_has_objects(soops, &te->subtree)) return 1; - } - return 0; -} - -/* recursive helper function for Show Hierarchy operator */ -static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - /* open all object elems, close others */ - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED; - else tselem->flag &= ~TSE_CLOSED; - } - else if(te->idcode==ID_OB) { - if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - } - else tselem->flag |= TSE_CLOSED; - - if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree); - } -} - -/* show entire object level hierarchy */ -static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - /* recursively open/close levels */ - tree_element_show_hierarchy(scene, soops, &soops->tree); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Hierarchy"; - ot->idname= "OUTLINER_OT_show_hierarchy"; - ot->description= "Open all object entries and close all others"; - - /* callbacks */ - ot->exec= outliner_show_hierarchy_exec; - ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... - - /* no undo or registry, UI option */ -} - -void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { - tselem= TREESTORE(te); - - /* if we've encountered the right item, set its 'Outliner' selection status */ - if (*index == 0) { - /* this should be the last one, so no need to do anything with index */ - if ((te->flag & TE_ICONROW)==0) { - /* -1 value means toggle testing for now... */ - if (*selecting == -1) { - if (tselem->flag & TSE_SELECTED) - *selecting= 0; - else - *selecting= 1; - } - - /* set selection */ - if (*selecting) - tselem->flag |= TSE_SELECTED; - else - tselem->flag &= ~TSE_SELECTED; - } - } - else if ((tselem->flag & TSE_CLOSED)==0) { - /* Only try selecting sub-elements if we haven't hit the right element yet - * - * Hack warning: - * Index must be reduced before supplying it to the sub-tree to try to do - * selection, however, we need to increment it again for the next loop to - * function correctly - */ - (*index)--; - outliner_select(soops, &te->subtree, index, selecting); - (*index)++; - } - } -} - -/* ************ SELECTION OPERATIONS ********* */ - -static void set_operation_types(SpaceOops *soops, ListBase *lb, - int *scenelevel, - int *objectlevel, - int *idlevel, - int *datalevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type) { - if(*datalevel==0) - *datalevel= tselem->type; - else if(*datalevel!=tselem->type) - *datalevel= -1; - } - else { - int idcode= GS(tselem->id->name); - switch(idcode) { - case ID_SCE: - *scenelevel= 1; - break; - case ID_OB: - *objectlevel= 1; - break; - - case ID_ME: case ID_CU: case ID_MB: case ID_LT: - case ID_LA: case ID_AR: case ID_CA: - case ID_MA: case ID_TE: case ID_IP: case ID_IM: - case ID_SO: case ID_KE: case ID_WO: case ID_AC: - case ID_NLA: case ID_TXT: case ID_GR: - if(*idlevel==0) *idlevel= idcode; - else if(*idlevel!=idcode) *idlevel= -1; - break; - } - } - } - if((tselem->flag & TSE_CLOSED)==0) { - set_operation_types(soops, &te->subtree, - scenelevel, objectlevel, idlevel, datalevel); - } - } -} - -static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - Material **matar=NULL; - int a, totcol=0; - - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - totcol= ob->totcol; - matar= ob->mat; - } - else if( GS(tsep->id->name)==ID_ME) { - Mesh *me= (Mesh *)tsep->id; - totcol= me->totcol; - matar= me->mat; - } - else if( GS(tsep->id->name)==ID_CU) { - Curve *cu= (Curve *)tsep->id; - totcol= cu->totcol; - matar= cu->mat; - } - else if( GS(tsep->id->name)==ID_MB) { - MetaBall *mb= (MetaBall *)tsep->id; - totcol= mb->totcol; - matar= mb->mat; - } - - for(a=0; aindex && matar[a]) { - matar[a]->id.us--; - matar[a]= NULL; - } - } -} - -static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - MTex **mtex= NULL; - int a; - - if( GS(tsep->id->name)==ID_MA) { - Material *ma= (Material *)tsep->id; - mtex= ma->mtex; - } - else if( GS(tsep->id->name)==ID_LA) { - Lamp *la= (Lamp *)tsep->id; - mtex= la->mtex; - } - else if( GS(tsep->id->name)==ID_WO) { - World *wrld= (World *)tsep->id; - mtex= wrld->mtex; - } - else return; - - for(a=0; aindex && mtex[a]) { - if(mtex[a]->tex) { - mtex[a]->tex->id.us--; - mtex[a]->tex= NULL; - } - } - } -} - -static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - - if(tsep) { - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - ob->dup_group= NULL; - } - } - else { - unlink_group(group); - } -} - -static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0) { - TreeStoreElem *tsep= TREESTORE(te->parent); - operation_cb(C, scene, te, tsep, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb); - } - } -} - -/* */ - -static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) { - base->flag |= SELECT; - base->object->flag |= SELECT; - } -} - -static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->flag &= ~SELECT; - base->object->flag &= ~SELECT; - } -} - -static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) - base= object_in_scene((Object *)tselem->id, scene); - if(base) { - // check also library later - if(scene->obedit==base->object) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); - te->directdata= NULL; - tselem->id= NULL; - } - -} - -static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { - tselem->id->lib= NULL; - tselem->id->flag= LIB_LOCAL; - new_id(NULL, tselem->id, NULL); - } -} - -static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - GroupObject *gob; - Base *base; - - for(gob=group->gobject.first; gob; gob=gob->next) { - base= object_in_scene(gob->ob, scene); - if (base) { - base->object->flag |= SELECT; - base->flag |= SELECT; - } else { - /* link to scene */ - base= MEM_callocN( sizeof(Base), "add_base"); - BLI_addhead(&scene->base, base); - base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */ - gob->ob->flag |= SELECT; - base->flag = gob->ob->flag; - base->object= gob->ob; - id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */ - } - } -} - -static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0 && te->idcode==ID_OB) { - // when objects selected in other scenes... dunno if that should be allowed - Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(scene_owner && scene_act != scene_owner) { - ED_screen_set_scene(C, scene_owner); - } - /* important to use 'scene_owner' not scene_act else deleting objects can crash. - * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the - * outliner isnt showing scenes: Visible Layer draw mode for eg. */ - operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb); - } - } -} - -/* ******************************************** */ - -static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - - if(event==1) - pchan->bone->flag |= BONE_SELECTED; - else if(event==2) - pchan->bone->flag &= ~BONE_SELECTED; - else if(event==3) { - pchan->bone->flag |= BONE_HIDDEN_P; - pchan->bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - pchan->bone->flag &= ~BONE_HIDDEN_P; -} - -static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - Bone *bone= (Bone *)te->directdata; - - if(event==1) - bone->flag |= BONE_SELECTED; - else if(event==2) - bone->flag &= ~BONE_SELECTED; - else if(event==3) { - bone->flag |= BONE_HIDDEN_P; - bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - bone->flag &= ~BONE_HIDDEN_P; -} - -static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - EditBone *ebone= (EditBone *)te->directdata; - - if(event==1) - ebone->flag |= BONE_SELECTED; - else if(event==2) - ebone->flag &= ~BONE_SELECTED; - else if(event==3) { - ebone->flag |= BONE_HIDDEN_A; - ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; - } - else if(event==4) - ebone->flag &= ~BONE_HIDDEN_A; -} - -static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem)) -{ -// Sequence *seq= (Sequence*) te->directdata; - if(event==1) { -// XXX select_single_seq(seq, 1); - } -} - -static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, - void (*operation_cb)(int, TreeElement *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==type) { - operation_cb(event, te, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb); - } - } -} - -static void outliner_del(bContext *C, Scene *scene, ARegion *UNUSED(ar), SpaceOops *soops) -{ - - if(soops->outlinevis==SO_SEQUENCE) - ;// del_seq(); - else { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(CTX_data_main(C), scene); - ED_undo_push(C, "Delete Objects"); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } -} - -/* **************************************** */ - -static EnumPropertyItem prop_object_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {4, "DELETE", 0, "Delete", ""}, - {6, "TOGVIS", 0, "Toggle Visible", ""}, - {7, "TOGSEL", 0, "Toggle Selectable", ""}, - {8, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_object_operation_exec(bContext *C, wmOperator *op) -{ - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - const char *str= NULL; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - Scene *sce= scene; // to be able to delete, scenes are set... - outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb); - if(scene != sce) { - ED_screen_set_scene(C, sce); - } - - str= "Select Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==2) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb); - str= "Deselect Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==4) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(bmain, scene); - str= "Delete Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } - else if(event==5) { /* disabled, see above enum (ton) */ - outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb); - str= "Localized Objects"; - } - else if(event==6) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - str= "Toggle Visibility"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - } - else if(event==7) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - str= "Toggle Selectability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==8) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - str= "Toggle Renderability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); - } - - ED_undo_push(C, str); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_object_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Object Operation"; - ot->idname= "OUTLINER_OT_object_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_object_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_group_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, - {3, "LINK", 0, "Link Group Objects to Scene", ""}, - {4, "TOGVIS", 0, "Toggle Visible", ""}, - {5, "TOGSEL", 0, "Toggle Selectable", ""}, - {6, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_group_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); - ED_undo_push(C, "Unlink group"); - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - else if(event==3) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); - ED_undo_push(C, "Link Group Objects to Scene"); - } - - - WM_event_add_notifier(C, NC_GROUP, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_group_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Group Operation"; - ot->idname= "OUTLINER_OT_group_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_group_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_id_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_id_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - switch(idlevel) { - case ID_MA: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); - ED_undo_push(C, "Unlink material"); - break; - case ID_TE: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); - ED_undo_push(C, "Unlink texture"); - break; - default: - BKE_report(op->reports, RPT_WARNING, "Not Yet"); - } - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - - /* wrong notifier still... */ - WM_event_add_notifier(C, NC_OBJECT, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_id_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner ID data Operation"; - ot->idname= "OUTLINER_OT_id_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_id_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_data_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {3, "HIDE", 0, "Hide", ""}, - {4, "UNHIDE", 0, "Unhide", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_data_operation_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if(datalevel==TSE_POSE_CHANNEL) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "PoseChannel operation"); - } - } - else if(datalevel==TSE_BONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "Bone operation"); - } - } - else if(datalevel==TSE_EBONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "EditBone operation"); - } - } - else if(datalevel==TSE_SEQUENCE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb); - } - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_data_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Data Operation"; - ot->idname= "OUTLINER_OT_data_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_data_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", ""); -} - - -/* ******************** */ - - -static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - TreeStoreElem *tselem= TREESTORE(te); - - /* select object that's clicked on and popup context menu */ - if (!(tselem->flag & TSE_SELECTED)) { - - if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) ) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - - tselem->flag |= TSE_SELECTED; - /* redraw, same as outliner_select function */ - soops->storeflag |= SO_TREESTORE_REDRAW; - ED_region_tag_redraw(ar); - } - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if(scenelevel) { - //if(objectlevel || datalevel || idlevel) error("Mixed selection"); - //else pupmenu("Scene Operations%t|Delete"); - } - else if(objectlevel) { - WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - else if(idlevel) { - if(idlevel==-1 || datalevel) error("Mixed selection"); - else { - if (idlevel==ID_GR) - WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL); - else - WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - else if(datalevel) { - if(datalevel==-1) error("Mixed selection"); - else { - WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) - return 1; - } - return 0; -} - - -static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break; - } - - return OPERATOR_FINISHED; -} - -/* Menu only! Calls other operators */ -void OUTLINER_OT_operation(wmOperatorType *ot) -{ - ot->name= "Execute Operation"; - ot->idname= "OUTLINER_OT_operation"; - ot->description= "Context menu for item operations"; - - ot->invoke= outliner_operation; - - ot->poll= ED_operator_outliner_active; -} - - - -/* ***************** ANIMATO OPERATIONS ********************************** */ -/* KeyingSet and Driver Creation - Helper functions */ - -/* specialised poll callback for these operators to work in Datablocks view only */ -static int ed_operator_outliner_datablocks_active(bContext *C) -{ - ScrArea *sa= CTX_wm_area(C); - if ((sa) && (sa->spacetype==SPACE_OUTLINER)) { - SpaceOops *so= CTX_wm_space_outliner(C); - return (so->outlinevis == SO_DATABLOCKS); - } - return 0; -} - - -/* Helper func to extract an RNA path from selected tree element - * NOTE: the caller must zero-out all values of the pointers that it passes here first, as - * this function does not do that yet - */ -static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, - ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode)) -{ - ListBase hierarchy = {NULL, NULL}; - LinkData *ld; - TreeElement *tem, *temnext, *temsub; - TreeStoreElem *tse, *tsenext; - PointerRNA *ptr, *nextptr; - PropertyRNA *prop; - char *newpath=NULL; - - /* optimise tricks: - * - Don't do anything if the selected item is a 'struct', but arrays are allowed - */ - if (tselem->type == TSE_RNA_STRUCT) - return; - - /* Overview of Algorithm: - * 1. Go up the chain of parents until we find the 'root', taking note of the - * levels encountered in reverse-order (i.e. items are added to the start of the list - * for more convenient looping later) - * 2. Walk down the chain, adding from the first ID encountered - * (which will become the 'ID' for the KeyingSet Path), and build a - * path as we step through the chain - */ - - /* step 1: flatten out hierarchy of parents into a flat chain */ - for (tem= te->parent; tem; tem= tem->parent) { - ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()"); - ld->data= tem; - BLI_addhead(&hierarchy, ld); - } - - /* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */ - for (ld= hierarchy.first; ld; ld= ld->next) { - /* get data */ - tem= (TreeElement *)ld->data; - tse= TREESTORE(tem); - ptr= &tem->rnaptr; - prop= tem->directdata; - - /* check if we're looking for first ID, or appending to path */ - if (*id) { - /* just 'append' property to path - * - to prevent memory leaks, we must write to newpath not path, then free old path + swap them - */ - if(tse->type == TSE_RNA_PROPERTY) { - if(RNA_property_type(prop) == PROP_POINTER) { - /* for pointer we just append property name */ - newpath= RNA_path_append(*path, ptr, prop, 0, NULL); - } - else if(RNA_property_type(prop) == PROP_COLLECTION) { - char buf[128], *name; - - temnext= (TreeElement*)(ld->next->data); - tsenext= TREESTORE(temnext); - - nextptr= &temnext->rnaptr; - name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf)); - - if(name) { - /* if possible, use name as a key in the path */ - newpath= RNA_path_append(*path, NULL, prop, 0, name); - - if(name != buf) - MEM_freeN(name); - } - else { - /* otherwise use index */ - int index= 0; - - for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++) - if(temsub == temnext) - break; - - newpath= RNA_path_append(*path, NULL, prop, index, NULL); - } - - ld= ld->next; - } - } - - if(newpath) { - if (*path) MEM_freeN(*path); - *path= newpath; - newpath= NULL; - } - } - else { - /* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */ - if (tse->type == TSE_RNA_STRUCT) { - /* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */ - if(RNA_struct_is_ID(ptr->type)) { - *id= (ID *)ptr->data; - - /* clear path */ - if(*path) { - MEM_freeN(*path); - path= NULL; - } - } - } - } - } - - /* step 3: if we've got an ID, add the current item to the path */ - if (*id) { - /* add the active property to the path */ - ptr= &te->rnaptr; - prop= te->directdata; - - /* array checks */ - if (tselem->type == TSE_RNA_ARRAY_ELEM) { - /* item is part of an array, so must set the array_index */ - *array_index= te->index; - } - else if (RNA_property_array_length(ptr, prop)) { - /* entire array was selected, so keyframe all */ - *flag |= KSP_FLAG_WHOLE_ARRAY; - } - - /* path */ - newpath= RNA_path_append(*path, NULL, prop, 0, NULL); - if (*path) MEM_freeN(*path); - *path= newpath; - } - - /* free temp data */ - BLI_freelistN(&hierarchy); -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - DRIVERS_EDITMODE_ADD = 0, - DRIVERS_EDITMODE_REMOVE, -} /*eDrivers_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; - int arraylen = 1; - - /* array checks */ - if (flag & KSP_FLAG_WHOLE_ARRAY) { - /* entire array was selected, so add drivers for all */ - arraylen= RNA_property_array_length(&te->rnaptr, te->directdata); - } - else - arraylen= array_index; - - /* we should do at least one step */ - if (arraylen == array_index) - arraylen++; - - /* for each array element we should affect, add driver */ - for (; array_index < arraylen; array_index++) { - /* action depends on mode */ - switch (mode) { - case DRIVERS_EDITMODE_ADD: - { - /* add a new driver with the information obtained (only if valid) */ - ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); - } - break; - case DRIVERS_EDITMODE_REMOVE: - { - /* remove driver matching the information obtained (only if valid) */ - ANIM_remove_driver(reports, id, path, array_index, dflags); - } - break; - } - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - - - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_drivers_editop(soops, &te->subtree, reports, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) -{ - /* api callbacks */ - ot->idname= "OUTLINER_OT_drivers_add_selected"; - ot->name= "Add Drivers for Selected"; - ot->description= "Add drivers to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_addsel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_drivers_delete_selected"; - ot->name= "Delete Drivers for Selected"; - ot->description= "Delete drivers assigned to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_deletesel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - KEYINGSET_EDITMODE_ADD = 0, - KEYINGSET_EDITMODE_REMOVE, -} /*eKeyingSet_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */ -// TODO: should this be an API func? -static KeyingSet *verify_active_keyingset(Scene *scene, short add) -{ - KeyingSet *ks= NULL; - - /* sanity check */ - if (scene == NULL) - return NULL; - - /* try to find one from scene */ - if (scene->active_keyingset > 0) - ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1); - - /* add if none found */ - // XXX the default settings have yet to evolve - if ((add) && (ks==NULL)) { - ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0); - scene->active_keyingset= BLI_countlist(&scene->keyingsets); - } - - return ks; -} - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - /* action depends on mode */ - switch (mode) { - case KEYINGSET_EDITMODE_ADD: - { - /* add a new path with the information obtained (only if valid) */ - // TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name - BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode); - ks->active_path= BLI_countlist(&ks->paths); - } - break; - case KEYINGSET_EDITMODE_REMOVE: - { - /* find the relevant path, then remove it from the KeyingSet */ - KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode); - - if (ksp) { - /* free path's data */ - BKE_keyingset_free_path(ks, ksp); - - ks->active_path= 0; - } - } - break; - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_keyingset_editop(soops, ks, &te->subtree, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (ks == NULL) { - BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set"); - return OPERATOR_CANCELLED; - } - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_add_selected"; - ot->name= "Keying Set Add Selected"; - ot->description= "Add selected items (blue-grey rows) to active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_additems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_remove_selected"; - ot->name= "Keying Set Remove Selected"; - ot->description = "Remove selected items (blue-grey rows) from active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_removeitems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** DRAW *************** */ - -/* make function calls a bit compacter */ -struct DrawIconArg { - uiBlock *block; - ID *id; - int xmax, x, y; - float alpha; -}; - -static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon) -{ - /* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */ - if(arg->x >= arg->xmax) - UI_icon_draw(arg->x, arg->y, icon); - else { - /* XXX investigate: button placement of icons is way different than UI_icon_draw? */ - float ufac= UI_UNIT_X/20.0f; - uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : ""); - - if(arg->id) - uiButSetDragID(but, arg->id); - } - -} - -static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha) -{ - struct DrawIconArg arg; - - /* make function calls a bit compacter */ - arg.block= block; - arg.id= tselem->id; - arg.xmax= xmax; - arg.x= x; - arg.y= y; - arg.alpha= alpha; - - if(tselem->type) { - switch( tselem->type) { - case TSE_ANIM_DATA: - UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx - case TSE_NLA: - UI_icon_draw(x, y, ICON_NLA); break; - case TSE_NLA_TRACK: - UI_icon_draw(x, y, ICON_NLA); break; // XXX - case TSE_NLA_ACTION: - UI_icon_draw(x, y, ICON_ACTION); break; - case TSE_DEFGROUP_BASE: - UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; - case TSE_BONE: - case TSE_EBONE: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_CONSTRAINT_BASE: - UI_icon_draw(x, y, ICON_CONSTRAINT); break; - case TSE_MODIFIER_BASE: - UI_icon_draw(x, y, ICON_MODIFIER); break; - case TSE_LINKED_OB: - UI_icon_draw(x, y, ICON_OBJECT_DATA); break; - case TSE_LINKED_PSYS: - UI_icon_draw(x, y, ICON_PARTICLES); break; - case TSE_MODIFIER: - { - Object *ob= (Object *)tselem->id; - ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); - switch(md->type) { - case eModifierType_Subsurf: - UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; - case eModifierType_Armature: - UI_icon_draw(x, y, ICON_MOD_ARMATURE); break; - case eModifierType_Lattice: - UI_icon_draw(x, y, ICON_MOD_LATTICE); break; - case eModifierType_Curve: - UI_icon_draw(x, y, ICON_MOD_CURVE); break; - case eModifierType_Build: - UI_icon_draw(x, y, ICON_MOD_BUILD); break; - case eModifierType_Mirror: - UI_icon_draw(x, y, ICON_MOD_MIRROR); break; - case eModifierType_Decimate: - UI_icon_draw(x, y, ICON_MOD_DECIM); break; - case eModifierType_Wave: - UI_icon_draw(x, y, ICON_MOD_WAVE); break; - case eModifierType_Hook: - UI_icon_draw(x, y, ICON_HOOK); break; - case eModifierType_Softbody: - UI_icon_draw(x, y, ICON_MOD_SOFT); break; - case eModifierType_Boolean: - UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break; - case eModifierType_ParticleSystem: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_ParticleInstance: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_EdgeSplit: - UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break; - case eModifierType_Array: - UI_icon_draw(x, y, ICON_MOD_ARRAY); break; - case eModifierType_UVProject: - UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break; - case eModifierType_Displace: - UI_icon_draw(x, y, ICON_MOD_DISPLACE); break; - case eModifierType_Shrinkwrap: - UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break; - case eModifierType_Cast: - UI_icon_draw(x, y, ICON_MOD_CAST); break; - case eModifierType_MeshDeform: - UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; - case eModifierType_Bevel: - UI_icon_draw(x, y, ICON_MOD_BEVEL); break; - case eModifierType_Smooth: - UI_icon_draw(x, y, ICON_MOD_SMOOTH); break; - case eModifierType_SimpleDeform: - UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break; - case eModifierType_Mask: - UI_icon_draw(x, y, ICON_MOD_MASK); break; - case eModifierType_Cloth: - UI_icon_draw(x, y, ICON_MOD_CLOTH); break; - case eModifierType_Explode: - UI_icon_draw(x, y, ICON_MOD_EXPLODE); break; - case eModifierType_Collision: - UI_icon_draw(x, y, ICON_MOD_PHYSICS); break; - case eModifierType_Fluidsim: - UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break; - case eModifierType_Multires: - UI_icon_draw(x, y, ICON_MOD_MULTIRES); break; - case eModifierType_Smoke: - UI_icon_draw(x, y, ICON_MOD_SMOKE); break; - case eModifierType_Solidify: - UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break; - case eModifierType_Screw: - UI_icon_draw(x, y, ICON_MOD_SCREW); break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - break; - } - case TSE_SCRIPT_BASE: - UI_icon_draw(x, y, ICON_TEXT); break; - case TSE_POSE_BASE: - UI_icon_draw(x, y, ICON_ARMATURE_DATA); break; - case TSE_POSE_CHANNEL: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_PROXY: - UI_icon_draw(x, y, ICON_GHOST); break; - case TSE_R_LAYER_BASE: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_R_LAYER: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_LINKED_LAMP: - UI_icon_draw(x, y, ICON_LAMP_DATA); break; - case TSE_LINKED_MAT: - UI_icon_draw(x, y, ICON_MATERIAL_DATA); break; - case TSE_POSEGRP_BASE: - UI_icon_draw(x, y, ICON_VERTEXSEL); break; - case TSE_SEQUENCE: - if(te->idcode==SEQ_MOVIE) - UI_icon_draw(x, y, ICON_SEQUENCE); - else if(te->idcode==SEQ_META) - UI_icon_draw(x, y, ICON_DOT); - else if(te->idcode==SEQ_SCENE) - UI_icon_draw(x, y, ICON_SCENE); - else if(te->idcode==SEQ_SOUND) - UI_icon_draw(x, y, ICON_SOUND); - else if(te->idcode==SEQ_IMAGE) - UI_icon_draw(x, y, ICON_IMAGE_COL); - else - UI_icon_draw(x, y, ICON_PARTICLES); - break; - case TSE_SEQ_STRIP: - UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT); - break; - case TSE_SEQUENCE_DUP: - UI_icon_draw(x, y, ICON_OBJECT_DATA); - break; - case TSE_RNA_STRUCT: - if(RNA_struct_is_ID(te->rnaptr.type)) { - arg.id= (ID *)te->rnaptr.data; - tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type)); - } - else - UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type)); - break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - } - else if (GS(tselem->id->name) == ID_OB) { - Object *ob= (Object *)tselem->id; - switch (ob->type) { - case OB_LAMP: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break; - case OB_MESH: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break; - case OB_CAMERA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break; - case OB_CURVE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break; - case OB_MBALL: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break; - case OB_LATTICE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break; - case OB_ARMATURE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break; - case OB_FONT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; - case OB_SURF: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; - case OB_EMPTY: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; - - } - } - else { - switch( GS(tselem->id->name)) { - case ID_SCE: - tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; - case ID_ME: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break; - case ID_CU: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break; - case ID_MB: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break; - case ID_LT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break; - case ID_LA: - { - Lamp *la= (Lamp *)tselem->id; - - switch(la->type) { - case LA_LOCAL: - tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; - case LA_SUN: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break; - case LA_SPOT: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break; - case LA_HEMI: - tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break; - case LA_AREA: - tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break; - default: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break; - } - break; - } - case ID_MA: - tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break; - case ID_TE: - tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; - case ID_IM: - tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; - case ID_SO: - tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; - case ID_AR: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; - case ID_CA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break; - case ID_KE: - tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break; - case ID_WO: - tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break; - case ID_AC: - tselem_draw_icon_uibut(&arg, ICON_ACTION); break; - case ID_NLA: - tselem_draw_icon_uibut(&arg, ICON_NLA); break; - case ID_TXT: - tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break; - case ID_GR: - tselem_draw_icon_uibut(&arg, ICON_GROUP); break; - case ID_LI: - tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; - } - } -} - -static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys) -{ - TreeElement *te; - TreeStoreElem *tselem; - int active; - - for(te= lb->first; te; te= te->next) { - - /* exit drawing early */ - if((*offsx) - UI_UNIT_X > xmax) - break; - - tselem= TREESTORE(te); - - /* object hierarchy always, further constrained on level */ - if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) { - - /* active blocks get white circle */ - if(tselem->type==0) { - if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id); - else if(scene->obedit && scene->obedit->data==tselem->id) active= 1; // XXX use context? - else active= tree_element_active(C, scene, soops, te, 0); - } - else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0); - - if(active) { - float ufac= UI_UNIT_X/20.0f; - - uiSetRoundBox(15); - glColor4ub(255, 255, 255, 100); - uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables */ - } - - tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f); - te->xs= (float)*offsx; - te->ys= (float)ys; - te->xend= (short)*offsx+UI_UNIT_X; - te->flag |= TE_ICONROW; // for click - - (*offsx) += UI_UNIT_X; - } - - /* this tree element always has same amount of branches, so dont draw */ - if(tselem->type!=TSE_R_LAYER) - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys); - } - -} - -/* closed tree element */ -static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty); - } -} - - -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - TreeStoreElem *tselem; - float ufac= UI_UNIT_X/20.0f; - int offsx= 0, active=0; // active=1 active obj, else active data - - tselem= TREESTORE(te); - - if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) { - int xmax= ar->v2d.cur.xmax; - - /* icons can be ui buts, we dont want it to overlap with restrict */ - if((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - xmax-= OL_TOGW+UI_UNIT_X; - - glEnable(GL_BLEND); - - /* colors for active/selected data */ - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id == (ID *)scene) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - } - else if(te->idcode==ID_GR) { - Group *gr = (Group *)tselem->id; - - if(group_select_flag(gr)) { - char col[4]; - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - glColor4ubv((GLubyte *)col); - - active= 2; - } - } - else if(te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - - if(ob==OBACT || (ob->flag & SELECT)) { - char col[4]= {0, 0, 0, 0}; - - /* outliner active ob: always white text, circle color now similar to view3d */ - - active= 2; /* means it draws a color circle */ - if(ob==OBACT) { - if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col); - col[3]= 100; - } - - active= 1; /* means it draws white text */ - } - else if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - } - - glColor4ubv((GLubyte *)col); - } - - } - else if(scene->obedit && scene->obedit->data==tselem->id) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - else { - if(tree_element_active(C, scene, soops, te, 0)) { - glColor4ub(220, 220, 255, 100); - active= 2; - } - } - } - else { - if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2; - glColor4ub(220, 220, 255, 100); - } - - /* active circle */ - if(active) { - uiSetRoundBox(15); - uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables it */ - - te->flag |= TE_ACTIVE; // for lookup in display hierarchies - } - - /* open/close icon, only when sublevels, except for scene */ - if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) { - int icon_x; - if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE)) - icon_x = startx; - else - icon_x = startx+5*ufac; - - // icons a bit higher - if(tselem->flag & TSE_CLOSED) - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT); - else - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN); - } - offsx+= UI_UNIT_X; - - /* datatype icon */ - - if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { - // icons a bit higher - tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); - - offsx+= UI_UNIT_X; - } - else - offsx+= 2*ufac; - - if(tselem->type==0 && tselem->id->lib) { - glPixelTransferf(GL_ALPHA_SCALE, 0.5f); - if(tselem->id->flag & LIB_INDIRECT) - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT); - else - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT); - glPixelTransferf(GL_ALPHA_SCALE, 1.0f); - offsx+= UI_UNIT_X; - } - glDisable(GL_BLEND); - - /* name */ - if(active==1) UI_ThemeColor(TH_TEXT_HI); - else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f); - else UI_ThemeColor(TH_TEXT); - - UI_DrawString(startx+offsx, *starty+5*ufac, te->name); - - offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name)); - - /* closed item, we draw the icons, not when it's a scene, or master-server list though */ - if(tselem->flag & TSE_CLOSED) { - if(te->subtree.first) { - if(tselem->type==0 && te->idcode==ID_SCE); - else if(tselem->type!=TSE_R_LAYER) { /* this tree element always has same amount of branches, so dont draw */ - int tempx= startx+offsx; - - // divider - UI_ThemeColorShade(TH_BACK, -40); - glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4); - - glEnable(GL_BLEND); - glPixelTransferf(GL_ALPHA_SCALE, 0.5); - - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2); - - glPixelTransferf(GL_ALPHA_SCALE, 1.0); - glDisable(GL_BLEND); - } - } - } - } - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)*starty; - te->xend= startx+offsx; - - if((tselem->flag & TSE_CLOSED)==0) { - *starty-= UI_UNIT_Y; - - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty); - } - else { - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_set_coord_tree_element(soops, te, startx, starty); - - *starty-= UI_UNIT_Y; - } -} - -static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - int y1, y2; - - if(lb->first==NULL) return; - - y1=y2= *starty; /* for vertical lines between objects */ - for(te=lb->first; te; te= te->next) { - y2= *starty; - tselem= TREESTORE(te); - - /* horizontal line? */ - if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE)) - glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1); - - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty); - } - - /* vertical line */ - te= lb->last; - if(te->parent || lb->first!=lb->last) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) { - - glRecti(startx, y1+UI_UNIT_Y, startx+1, y2); - } - } -} - -static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if((tselem->flag & TSE_CLOSED)==0) - if(tselem->type == TSE_RNA_STRUCT) - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1); - - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) { - outliner_draw_struct_marks(ar, soops, &te->subtree, starty); - if(tselem->type == TSE_RNA_STRUCT) - fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y); - } - } -} - -static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if(tselem->flag & TSE_SELECTED) { - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1); - } - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty); - } -} - - -static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty, startx; - float col[4]; - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once - - if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* struct marks */ - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - //UI_ThemeColorShade(TH_BACK, -20); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_struct_marks(ar, soops, &soops->tree, &starty); - } - - /* always draw selection fill before hierarchy */ - UI_GetThemeColor3fv(TH_BACK, col); - glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_selection(ar, soops, &soops->tree, &starty); - - // grey hierarchy lines - UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; - startx= 6; - outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); - - // items themselves - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - startx= 0; - for(te= soops->tree.first; te; te= te->next) { - outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty); - } -} - - -static void outliner_back(ARegion *ar) -{ - int ystart; - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } -} - -static void outliner_draw_restrictcols(ARegion *ar) -{ - int ystart; - - /* background underneath */ - UI_ThemeColor(TH_BACK); - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax); - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* view */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); -} - -static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* deselect objects that are invisible */ - if (ob->restrictflag & OB_RESTRICT_VIEW) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* if select restriction has just been turned on */ - if (ob->restrictflag & OB_RESTRICT_SELECT) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin); -} - -static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin); -} - -static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Object *ob = (Object *)poin2; - - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); -} - -static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Bone *bone= (Bone *)poin2; - if(bone && (bone->flag & BONE_HIDDEN_P)) - bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - EditBone *ebone= (EditBone *)poin2; - if(ebone && (ebone->flag & BONE_HIDDEN_A)) - ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static int group_restrict_flag(Group *gr, int flag) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->restrictflag & flag) == 0) - return 0; - } - - return 1; -} - -static int group_select_flag(Group *gr) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) - if((gob->ob->flag & SELECT)) - return 1; - - return 0; -} - -static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) -{ - Scene *scene = (Scene *)poin; - GroupObject *gob; - Group *gr = (Group *)poin2; - - if(group_restrict_flag(gr, flag)) { - for(gob= gr->gobject.first; gob; gob= gob->next) { - gob->ob->restrictflag &= ~flag; - - if(flag==OB_RESTRICT_VIEW) - if(gob->ob->flag & SELECT) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT); - } - } - else { - for(gob= gr->gobject.first; gob; gob= gob->next) { - /* not in editmode */ - if(scene->obedit!=gob->ob) { - gob->ob->restrictflag |= flag; - - if(flag==OB_RESTRICT_VIEW) - if((gob->ob->flag & SELECT) == 0) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - } -} - -static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER); - WM_event_add_notifier(C, NC_GROUP, NULL); -} - - -static void namebutton_cb(bContext *C, void *tsep, char *oldname) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem= tsep; - - if(ts && tselem) { - TreeElement *te= outliner_find_tse(soops, tselem); - - if(tselem->type==0) { - test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort - - switch(GS(tselem->id->name)) { - case ID_MA: - WM_event_add_notifier(C, NC_MATERIAL, NULL); break; - case ID_TE: - WM_event_add_notifier(C, NC_TEXTURE, NULL); break; - case ID_IM: - WM_event_add_notifier(C, NC_IMAGE, NULL); break; - case ID_SCE: - WM_event_add_notifier(C, NC_SCENE, NULL); break; - default: - WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; - } - /* Check the library target exists */ - if (te->idcode == ID_LI) { - char expanded[FILE_MAXDIR + FILE_MAXFILE]; - BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); - BLI_path_abs(expanded, G.main->name); - if (!BLI_exists(expanded)) { - error("This path does not exist, correct this before saving"); - } - } - } - else { - switch(tselem->type) { - case TSE_DEFGROUP: - defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object - break; - case TSE_NLA_ACTION: - test_idbutton(tselem->id->name+2); - break; - case TSE_EBONE: - { - bArmature *arm= (bArmature *)tselem->id; - if(arm->edbo) { - EditBone *ebone= te->directdata; - char newname[sizeof(ebone->name)]; - - /* restore bone name */ - BLI_strncpy(newname, ebone->name, sizeof(ebone->name)); - BLI_strncpy(ebone->name, oldname, sizeof(ebone->name)); - ED_armature_bone_rename(obedit->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT); - } - } - break; - - case TSE_BONE: - { - Bone *bone= te->directdata; - Object *ob; - char newname[sizeof(bone->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, bone->name, sizeof(bone->name)); - BLI_strncpy(bone->name, oldname, sizeof(bone->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSE_CHANNEL: - { - bPoseChannel *pchan= te->directdata; - Object *ob; - char newname[sizeof(pchan->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, pchan->name, sizeof(pchan->name)); - BLI_strncpy(pchan->name, oldname, sizeof(pchan->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSEGRP: - { - Object *ob= (Object *)tselem->id; // id = object - bActionGroup *grp= te->directdata; - - BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name)); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_R_LAYER: - break; - } - } - tselem->flag &= ~TSE_TEXTBUT; - } -} - -static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - Object *ob = NULL; - Group *gr = NULL; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - /* objects have toggle-able restriction flags */ - if(tselem->type==0 && te->idcode==ID_OB) { - PointerRNA ptr; - - ob = (Object *)tselem->id; - RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr); - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_view_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_select", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_render", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob); - - uiBlockSetEmboss(block, UI_EMBOSS); - - } - if(tselem->type==0 && te->idcode==ID_GR){ - int restrict_bool; - gr = (Group *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - /* scene render layers and passes have toggle-able flags too! */ - else if(tselem->type==TSE_R_LAYER) { - uiBlockSetEmboss(block, UI_EMBOSSN); - - bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_R_PASS) { - int *layflag= te->directdata; - int passflag= 1<nr; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - - bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - layflag++; /* is lay_xor */ - if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT)) - bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_MODIFIER) { - ModifierData *md= (ModifierData *)te->directdata; - ob = (Object *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - } - else if(tselem->type==TSE_POSE_CHANNEL) { - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - Bone *bone = pchan->bone; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL); - } - else if(tselem->type==TSE_EBONE) { - EditBone *ebone= (EditBone *)te->directdata; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree); - } -} - -static void outliner_draw_rnacols(ARegion *ar, int sizex) -{ - View2D *v2d= &ar->v2d; - - float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT; - if(minytot.ymin) miny = v2d->tot.ymin; - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* draw column separator lines */ - fdrawline((float)sizex, - v2d->cur.ymax, - (float)sizex, - miny); - - fdrawline((float)sizex+OL_RNA_COL_SIZEX, - v2d->cur.ymax, - (float)sizex+OL_RNA_COL_SIZEX, - miny); -} - -static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - PointerRNA *ptr; - PropertyRNA *prop; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - if(tselem->type == TSE_RNA_PROPERTY) { - ptr= &te->rnaptr; - prop= te->directdata; - - if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0)) - uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - else if(tselem->type == TSE_RNA_ARRAY_ELEM) { - ptr= &te->rnaptr; - prop= te->directdata; - - uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree); - } -} - -static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2) -{ - wmOperatorType *ot= arg2; - wmKeyMapItem *kmi= arg_kmi; - - if(ot) - BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME); -} - -static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) -{ - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - - if(BLI_strcasestr(ot->idname, str)) { - char name[OP_MAX_TYPENAME]; - - /* display name for menu */ - WM_operator_py_idname(name, ot->idname); - - if(0==uiSearchItemAdd(items, name, ot, 0)) - break; - } - } -} - -/* operator Search browse menu, open */ -static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) -{ - static char search[OP_MAX_TYPENAME]; - wmEvent event; - wmWindow *win= CTX_wm_window(C); - wmKeyMapItem *kmi= arg_kmi; - wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0); - uiBlock *block; - uiBut *but; - - /* clear initial search string, then all items show */ - search[0]= 0; - - block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); - - /* fake button, it holds space for search items */ - uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, ""); - uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); - - uiBoundsBlock(block, 6); - uiBlockSetDirection(block, UI_DOWN); - uiEndBlock(C, block); - - event= *(win->eventstate); /* XXX huh huh? make api call */ - event.type= EVT_BUT_OPEN; - event.val= KM_PRESS; - event.customdata= but; - event.customdatafree= FALSE; - wm_event_add(win, &event); - - return block; -} - -#define OL_KM_KEYBOARD 0 -#define OL_KM_MOUSE 1 -#define OL_KM_TWEAK 2 -#define OL_KM_SPECIALS 3 - -static short keymap_menu_type(short type) -{ - if(ISKEYBOARD(type)) return OL_KM_KEYBOARD; - if(ISTWEAK(type)) return OL_KM_TWEAK; - if(ISMOUSE(type)) return OL_KM_MOUSE; -// return OL_KM_SPECIALS; - return 0; -} - -static const char *keymap_type_menu(void) -{ - static const char string[]= - "Event Type%t" - "|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD) - "|Mouse%x" STRINGIFY(OL_KM_MOUSE) - "|Tweak%x" STRINGIFY(OL_KM_TWEAK) -// "|Specials%x" STRINGIFY(OL_KM_SPECIALS) - ; - - return string; -} - -static const char *keymap_mouse_menu(void) -{ - static const char string[]= - "Mouse Event%t" - "|Left Mouse%x" STRINGIFY(LEFTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE) - "|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE) - "|Action Mouse%x" STRINGIFY(ACTIONMOUSE) - "|Select Mouse%x" STRINGIFY(SELECTMOUSE) - "|Mouse Move%x" STRINGIFY(MOUSEMOVE) - "|Wheel Up%x" STRINGIFY(WHEELUPMOUSE) - "|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE) - "|Wheel In%x" STRINGIFY(WHEELINMOUSE) - "|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE) - "|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN) - "|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM) - "|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE) - ; - - return string; -} - -static const char *keymap_tweak_menu(void) -{ - static const char string[]= - "Tweak Event%t" - "|Left Mouse%x" STRINGIFY(EVT_TWEAK_L) - "|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M) - "|Right Mouse%x" STRINGIFY(EVT_TWEAK_R) - "|Action Mouse%x" STRINGIFY(EVT_TWEAK_A) - "|Select Mouse%x" STRINGIFY(EVT_TWEAK_S) - ; - - return string; -} - -static const char *keymap_tweak_dir_menu(void) -{ - static const char string[]= - "Tweak Direction%t" - "|Any%x" STRINGIFY(KM_ANY) - "|North%x" STRINGIFY(EVT_GESTURE_N) - "|North-East%x" STRINGIFY(EVT_GESTURE_NE) - "|East%x" STRINGIFY(EVT_GESTURE_E) - "|Sout-East%x" STRINGIFY(EVT_GESTURE_SE) - "|South%x" STRINGIFY(EVT_GESTURE_S) - "|South-West%x" STRINGIFY(EVT_GESTURE_SW) - "|West%x" STRINGIFY(EVT_GESTURE_W) - "|North-West%x" STRINGIFY(EVT_GESTURE_NW) - ; - - return string; -} - - -static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) -{ - wmKeyMapItem *kmi= kmi_v; - short maptype= keymap_menu_type(kmi->type); - - if(maptype!=kmi->maptype) { - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - kmi->type= AKEY; - kmi->val= KM_PRESS; - break; - case OL_KM_MOUSE: - kmi->type= LEFTMOUSE; - kmi->val= KM_PRESS; - break; - case OL_KM_TWEAK: - kmi->type= EVT_TWEAK_L; - kmi->val= KM_ANY; - break; - case OL_KM_SPECIALS: - kmi->type= AKEY; - kmi->val= KM_PRESS; - } - ED_region_tag_redraw(CTX_wm_region(C)); - } -} - -static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - uiBut *but; - const char *str; - int xstart= 240; - int butw1= UI_UNIT_X; /* operator */ - int butw2= 90; /* event type, menus */ - int butw3= 43; /* modifiers */ - - if(tselem->type == TSE_KEYMAP_ITEM) { - wmKeyMapItem *kmi= te->directdata; - - /* modal map? */ - if(kmi->propvalue); - else { - uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator"); - } - xstart+= butw1+10; - - /* map type button */ - kmi->maptype= keymap_menu_type(kmi->type); - - str= keymap_type_menu(); - but= uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type"); - uiButSetFunc(but, keymap_type_cb, kmi, NULL); - xstart+= butw2+5; - - /* edit actual event */ - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code"); - xstart+= butw2+5; - break; - case OL_KM_MOUSE: - str= keymap_mouse_menu(); - uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Mouse button"); - xstart+= butw2+5; - break; - case OL_KM_TWEAK: - str= keymap_tweak_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Tweak gesture"); - xstart+= butw2+5; - str= keymap_tweak_dir_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0, "Tweak gesture direction"); - xstart+= butw2+5; - break; - } - - /* modifiers */ - uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5; - uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - xstart+= 5; - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code"); - xstart+= butw3+5; - - /* rna property */ - if(kmi->ptr && kmi->ptr->data) { - uiDefBut(block, LABEL, 0, "(RNA property)", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2; - } - - (void)xstart; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree); - } -} - - -static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - int spx, dx, len; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - - if(tselem->flag & TSE_TEXTBUT) { - - /* If we add support to rename Sequence. - * need change this. - */ - if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature - - if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name); - else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name); - else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name); - else len= MAX_ID_NAME-2; - - - dx= (int)UI_GetStringWidth(te->name); - if(dx<100) dx= 100; - spx=te->xs+2*UI_UNIT_X-4; - if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10; - - bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, ""); - uiButSetRenameFunc(bt, namebutton_cb, tselem); - - /* returns false if button got removed */ - if( 0 == uiButActiveOnly(C, block, bt) ) - tselem->flag &= ~TSE_TEXTBUT; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree); - } -} - -void draw_outliner(const bContext *C) -{ - Main *mainvar= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - SpaceOops *soops= CTX_wm_space_outliner(C); - uiBlock *block; - int sizey= 0, sizex= 0, sizex_rna= 0; - - outliner_build_tree(mainvar, scene, soops); // always - - /* get extents of data */ - outliner_height(soops, &soops->tree, &sizey); - - if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) { - /* RNA has two columns: - * - column 1 is (max_width + OL_RNA_COL_SPACEX) or - * (OL_RNA_COL_X), whichever is wider... - * - column 2 is fixed at OL_RNA_COL_SIZEX - * - * (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100) - */ - - /* get actual width of column 1 */ - outliner_rna_width(soops, &soops->tree, &sizex_rna, 0); - sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX); - - /* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */ - if (soops->outlinevis == SO_KEYMAP) - sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough... - else - sizex= sizex_rna + OL_RNA_COL_SIZEX + 50; - } - else { - /* width must take into account restriction columns (if visible) so that entries will still be visible */ - //outliner_width(soops, &soops->tree, &sizex); - outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly... - - /* constant offset for restriction columns */ - // XXX this isn't that great yet... - if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - sizex += OL_TOGW*3; - } - - /* tweak to display last line (when list bigger than window) */ - sizey += V2D_SCROLL_HEIGHT; - - /* adds vertical offset */ - sizey += OL_Y_OFFSET; - - /* update size of tot-rect (extents of data/viewable area) */ - UI_view2d_totRect_set(v2d, sizex, sizey); - - /* force display to pixel coords */ - v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y); - /* set matrix for 2d-view controls */ - UI_view2d_view_ortho(v2d); - - /* draw outliner stuff (background, hierachy lines and names) */ - outliner_back(ar); - block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS); - outliner_draw_tree((bContext *)C, block, scene, ar, soops); - - if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* draw rna buttons */ - outliner_draw_rnacols(ar, sizex_rna); - outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree); - } - else if(soops->outlinevis == SO_KEYMAP) { - outliner_draw_keymapbuts(block, ar, soops, &soops->tree); - } - else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) { - /* draw restriction columns */ - outliner_draw_restrictcols(ar); - outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree); - } - - /* draw edit buttons if nessecery */ - outliner_buttons(C, block, ar, soops, &soops->tree); - - uiEndBlock(C, block); - uiDrawBlock(C, block); - - /* clear flag that allows quick redraws */ - soops->storeflag &= ~SO_TREESTORE_REDRAW; -} - -- cgit v1.2.3 From 0fac849d44d5bf8f2d3add9e10c03adbe5ffe331 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Aug 2011 05:50:05 +0000 Subject: ifdef'd outliner code which is spesific to gsoc pepper with '// GSOC_PEPPER' so its obvious. this will keep merging pepper changes from conflicting and can be removed when its finally merged. --- .../blender/editors/space_outliner/outliner_draw.c | 18 ++++++++++++ .../blender/editors/space_outliner/outliner_ops.c | 5 ++++ .../editors/space_outliner/outliner_tools.c | 33 +++++++++++++++++++++- .../blender/editors/space_outliner/outliner_tree.c | 12 ++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 67d0e68c1c4..0250676c2dd 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -921,7 +921,13 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto case TSE_NLA_ACTION: UI_icon_draw(x, y, ICON_ACTION); break; case TSE_DRIVER_BASE: + +#if 0 // GSOC_PEPPER + UI_icon_draw(x, y, ICON_DRIVER); break; + +#endif // GSOC_PEPPER + case TSE_DEFGROUP_BASE: UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; case TSE_BONE: @@ -1080,8 +1086,14 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; case OB_SURF: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; + +#if 0 // GSOC_PEPPER + case OB_SPEAKER: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SPEAKER); break; + +#endif // GSOC_PEPPER + case OB_EMPTY: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; @@ -1125,9 +1137,15 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; case ID_IM: tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; + +#if 0 // GSOC_PEPPER + case ID_SPK: case ID_SO: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_SPEAKER); break; + +#endif // GSOC_PEPPER + case ID_AR: tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; case ID_CA: diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index b79bb000201..f3e2c352172 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -58,8 +58,13 @@ void outliner_operatortypes(void) WM_operatortype_append(OUTLINER_OT_id_operation); WM_operatortype_append(OUTLINER_OT_data_operation); WM_operatortype_append(OUTLINER_OT_animdata_operation); + +#if 0 // GSOC_PEPPER + WM_operatortype_append(OUTLINER_OT_action_set); +#endif // GSOC_PEPPER + WM_operatortype_append(OUTLINER_OT_show_one_level); WM_operatortype_append(OUTLINER_OT_show_active); WM_operatortype_append(OUTLINER_OT_show_hierarchy); diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 4525ea9c8d9..b6332c4389a 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -135,7 +135,7 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, break; case ID_ME: case ID_CU: case ID_MB: case ID_LT: - case ID_LA: case ID_AR: case ID_CA: case ID_SPK: + case ID_LA: case ID_AR: case ID_CA: /* case ID_SPK: */ /* GSOC_PEPPER */ case ID_MA: case ID_TE: case ID_IP: case ID_IM: case ID_SO: case ID_KE: case ID_WO: case ID_AC: case ID_NLA: case ID_TXT: case ID_GR: @@ -152,12 +152,16 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, } } +#if 0 // GSOC_PEPPER + static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) { /* just set action to NULL */ BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL); } +#endif // GSOC_PEPPER + static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) { Material **matar=NULL; @@ -327,6 +331,8 @@ static void id_fake_user_clear_cb(bContext *UNUSED(C), Scene *UNUSED(scene), Tre } } +#if 0 // GSOC_PEPPER + static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) { ID *id = tselem->id; @@ -343,6 +349,8 @@ static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement } } +#endif + static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) { Group *group= (Group *)tselem->id; @@ -396,12 +404,16 @@ void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soop /* ******************************************** */ +#if 0 // GSOC_PEPPER + static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) { /* just set action to NULL */ BKE_animdata_set_action(NULL, tselem->id, NULL); } +#endif // GSOC_PEPPER + static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) { IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; @@ -695,12 +707,18 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) { /* unlink datablock from its parent */ switch (idlevel) { + +#if 0 // GSOC_PEPPER + case ID_AC: outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); ED_undo_push(C, "Unlink action"); break; + +#endif // GSOC_PEPPER + case ID_MA: outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); @@ -728,6 +746,8 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) } break; +#if 0 // GSOC_PEPPER + case OUTLINER_IDOP_SINGLE: { /* make single user */ @@ -746,6 +766,8 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) } break; +#endif // GSOC_PEPPER + case OUTLINER_IDOP_FAKE_ADD: { /* set fake user */ @@ -822,6 +844,8 @@ static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *l /* ------------------------------------------ */ +#if 0 // GSOC_PEPPER + static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) { bAction *act = (bAction *)actId; @@ -906,6 +930,8 @@ void OUTLINER_OT_action_set(wmOperatorType *ot) ot->prop= prop; } +#endif // GSOC_PEPPER + /* **************************************** */ typedef enum eOutliner_AnimDataOps { @@ -950,6 +976,9 @@ static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) /* perform the core operation */ switch (event) { + +#if 0 // GSOC_PEPPER + case OUTLINER_ANIMOP_SET_ACT: /* delegate once again... */ WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL); @@ -963,6 +992,8 @@ static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) ED_undo_push(C, "Unlink action"); break; +#endif // GSOC_PEPPER + case OUTLINER_ANIMOP_REFRESH_DRV: outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb); diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index 24b7085e2f4..7026c94facc 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -50,7 +50,13 @@ #include "DNA_scene_types.h" #include "DNA_world_types.h" #include "DNA_sequence_types.h" + +#if 0 // GSOC_PEPPER + #include "DNA_speaker_types.h" + +#endif // GSOC_PEPPER + #include "DNA_object_types.h" #include "BLI_blenlib.h" @@ -715,6 +721,9 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor } } break; + +#if 0 // GSOC_PEPPER + case ID_SPK: { Speaker *spk= (Speaker *)id; @@ -723,6 +732,9 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor outliner_add_element(soops, &te->subtree, spk, te, TSE_ANIM_DATA, 0); } break; + +#endif // GSOC_PEPPER + case ID_WO: { World *wrld= (World *)id; -- cgit v1.2.3 From a7663cc37753abd97744b51739358fb6b8026883 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Aug 2011 06:06:17 +0000 Subject: use ghash for operator and menu types, was doing string lookup in the operator list (containing over 1000 items) for each button draw. gives small speedup for UI drawing and overall startup time. --- .../editors/interface/interface_templates.c | 11 ++-- .../blender/editors/space_outliner/outliner_draw.c | 10 ++-- .../blender/editors/space_view3d/view3d_toolbar.c | 11 ++-- source/blender/python/intern/bpy_operator.c | 14 +++-- source/blender/windowmanager/WM_api.h | 3 +- source/blender/windowmanager/WM_types.h | 2 - source/blender/windowmanager/intern/wm.c | 54 +++++++++++++------ source/blender/windowmanager/intern/wm_init_exit.c | 3 +- source/blender/windowmanager/intern/wm_operators.c | 61 +++++++++++++--------- 9 files changed, 109 insertions(+), 60 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 6384d91955f..2faac24fd78 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -39,6 +39,7 @@ #include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BKE_animsys.h" #include "BKE_colortools.h" @@ -2322,10 +2323,11 @@ static void operator_call_cb(bContext *C, void *UNUSED(arg1), void *arg2) static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + if(BLI_strcasestr(ot->name, str)) { if(WM_operator_poll((bContext*)C, ot)) { char name[256]; @@ -2345,6 +2347,7 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char } } } + BLI_ghashIterator_free(iter); } void uiTemplateOperatorSearch(uiLayout *layout) diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 0250676c2dd..6d6c3429af2 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -66,6 +66,8 @@ #include "BKE_scene.h" #include "BKE_sequencer.h" +#include "BLI_ghash.h" + #include "ED_armature.h" #include "ED_object.h" #include "ED_screen.h" @@ -584,9 +586,10 @@ static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *ar static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); if(BLI_strcasestr(ot->idname, str)) { char name[OP_MAX_TYPENAME]; @@ -598,6 +601,7 @@ static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(ar break; } } + BLI_ghashIterator_free(iter); } /* operator Search browse menu, open */ diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index 2e96800bf3b..a2aed67821d 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -46,6 +46,7 @@ #include "BLI_editVert.h" #include "BLI_rand.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BKE_context.h" #include "BKE_idprop.h" @@ -140,10 +141,11 @@ static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2) static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + if(BLI_strcasestr(ot->name, str)) { if(WM_operator_poll((bContext*)C, ot)) { @@ -152,6 +154,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons } } } + BLI_ghashIterator_free(iter); } diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 4b05a9c0c72..7310878f661 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -52,6 +52,9 @@ #include "WM_types.h" #include "MEM_guardedalloc.h" + +#include "BLI_ghash.h" + #include "BKE_report.h" #include "BKE_context.h" @@ -359,15 +362,18 @@ static PyObject *pyop_as_string(PyObject *UNUSED(self), PyObject *args) static PyObject *pyop_dir(PyObject *UNUSED(self)) { + GHashIterator *iter= WM_operatortype_iter(); PyObject *list= PyList_New(0), *name; - wmOperatorType *ot; - - for(ot= WM_operatortype_first(); ot; ot= ot->next) { + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + name= PyUnicode_FromString(ot->idname); PyList_Append(list, name); Py_DECREF(name); } - + BLI_ghashIterator_free(iter); + return list; } diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 42c3096dfc9..d8c6933a93d 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -179,7 +179,7 @@ void WM_operator_free (struct wmOperator *op); void WM_operator_stack_clear(struct wmWindowManager *wm); struct wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet); -struct wmOperatorType *WM_operatortype_first(void); +struct GHashIterator *WM_operatortype_iter(void); void WM_operatortype_append (void (*opfunc)(struct wmOperatorType*)); void WM_operatortype_append_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata); void WM_operatortype_append_macro_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata); @@ -230,6 +230,7 @@ void WM_operator_bl_idname(char *to, const char *from); void WM_operator_py_idname(char *to, const char *from); /* *************** menu types ******************** */ +void WM_menutype_init(void); struct MenuType *WM_menutype_find(const char *idname, int quiet); int WM_menutype_add(struct MenuType* mt); int WM_menutype_contains(struct MenuType* mt); diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 697133bb163..cc3ae3ab753 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -423,8 +423,6 @@ typedef struct wmTimer { typedef struct wmOperatorType { - struct wmOperatorType *next, *prev; - const char *name; /* text for ui, undo */ const char *idname; /* unique identifier */ const char *description; /* tooltips and python docs */ diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 1d5cf1cdc53..9299b50103c 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -40,7 +40,11 @@ #include "GHOST_C-api.h" +#include "MEM_guardedalloc.h" + +#include "BLI_utildefines.h" #include "BLI_blenlib.h" +#include "BLI_ghash.h" #include "BKE_blender.h" #include "BKE_context.h" @@ -59,8 +63,6 @@ #include "wm_draw.h" #include "wm.h" -#include "MEM_guardedalloc.h" - #include "ED_screen.h" #ifdef WITH_PYTHON @@ -151,14 +153,14 @@ void WM_operator_stack_clear(wmWindowManager *wm) /* ****************************************** */ -static ListBase menutypes = {NULL, NULL}; /* global menutype list */ +static GHash *menutypes_hash= NULL; MenuType *WM_menutype_find(const char *idname, int quiet) { MenuType* mt; if (idname[0]) { - mt= BLI_findstring(&menutypes, idname, offsetof(MenuType, idname)); + mt= BLI_ghash_lookup(menutypes_hash, idname); if(mt) return mt; } @@ -171,35 +173,55 @@ MenuType *WM_menutype_find(const char *idname, int quiet) int WM_menutype_add(MenuType* mt) { - BLI_addtail(&menutypes, mt); + BLI_ghash_insert(menutypes_hash, (void *)mt->idname, mt); return 1; } /* inefficient but only used for tooltip code */ int WM_menutype_contains(MenuType* mt) { - return (mt != NULL && BLI_findindex(&menutypes, mt) != -1); + int found= FALSE; + + if(mt) { + GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + if(mt == BLI_ghashIterator_getValue(iter)) { + found= TRUE; + break; + } + } + BLI_ghashIterator_free(iter); + } + + return found; } void WM_menutype_freelink(MenuType* mt) { - BLI_freelinkN(&menutypes, mt); + BLI_ghash_remove(menutypes_hash, mt->idname, NULL, (GHashValFreeFP)MEM_freeN); } -void WM_menutype_free(void) +/* called on initialize WM_init() */ +void WM_menutype_init(void) { - MenuType* mt= menutypes.first, *mt_next; + menutypes_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "menutypes_hash gh"); +} - while(mt) { - mt_next= mt->next; +void WM_menutype_free(void) +{ + GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash); - if(mt->ext.free) + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + MenuType *mt= BLI_ghashIterator_getValue(iter); + if(mt->ext.free) { mt->ext.free(mt->ext.data); - - WM_menutype_freelink(mt); - - mt= mt_next; + } } + BLI_ghashIterator_free(iter); + + BLI_ghash_free(menutypes_hash, NULL, (GHashValFreeFP)MEM_freeN); + menutypes_hash= NULL; } /* ****************************************** */ diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index e22829577f4..cf91e219593 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -127,7 +127,8 @@ void WM_init(bContext *C, int argc, const char **argv) } GHOST_CreateSystemPaths(); wm_operatortype_init(); - + WM_menutype_init(); + set_free_windowmanager_cb(wm_close_and_free); /* library.c */ set_blender_test_break_cb(wm_window_testbreak); /* blender.c */ DAG_editors_update_cb(ED_render_id_flush_update); /* depsgraph.c */ diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 610a962ba62..66467b310ee 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -58,6 +58,7 @@ #include "BLI_math.h" #include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BLO_readfile.h" @@ -100,7 +101,7 @@ #include "wm_subwindow.h" #include "wm_window.h" -static ListBase global_ops= {NULL, NULL}; +static GHash *global_ops_hash= NULL; /* ************ operator API, exported ********** */ @@ -113,7 +114,7 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet) WM_operator_bl_idname(idname_bl, idname); if (idname_bl[0]) { - ot= (wmOperatorType *)BLI_findstring_ptr(&global_ops, idname_bl, offsetof(wmOperatorType, idname)); + ot= BLI_ghash_lookup(global_ops_hash, idname_bl); if(ot) { return ot; } @@ -125,9 +126,10 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet) return NULL; } -wmOperatorType *WM_operatortype_first(void) +/* caller must free */ +GHashIterator *WM_operatortype_iter(void) { - return global_ops.first; + return BLI_ghashIterator_new(global_ops_hash); } /* all ops in 1 list (for time being... needs evaluation later) */ @@ -147,7 +149,8 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*)) RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); // XXX All ops should have a description but for now allow them not to. RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *userdata) @@ -159,7 +162,8 @@ void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *us opfunc(ot, userdata); RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } /* ********************* macro operator ******************** */ @@ -351,7 +355,7 @@ wmOperatorType *WM_operatortype_append_macro(const char *idname, const char *nam RNA_def_struct_ui_text(ot->srna, ot->name, ot->description); // XXX All ops should have a description but for now allow them not to. RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); return ot; } @@ -378,7 +382,7 @@ void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), vo RNA_def_struct_ui_text(ot->srna, ot->name, ot->description); RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname) @@ -426,14 +430,14 @@ int WM_operatortype_remove(const char *idname) if (ot==NULL) return 0; - BLI_remlink(&global_ops, ot); RNA_struct_free(&BLENDER_RNA, ot->srna); if(ot->macro.first) wm_operatortype_free_macro(ot); - - MEM_freeN(ot); + BLI_ghash_remove(global_ops_hash, (void *)ot->idname, NULL, NULL); + + MEM_freeN(ot); return 1; } @@ -1311,9 +1315,10 @@ static void operator_call_cb(struct bContext *C, void *UNUSED(arg1), void *arg2) static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); if((ot->flag & OPTYPE_INTERNAL) && (G.f & G_DEBUG) == 0) continue; @@ -1337,6 +1342,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons } } } + BLI_ghashIterator_free(iter); } static uiBlock *wm_block_search_menu(bContext *C, ARegion *ar, void *UNUSED(arg_op)) @@ -3457,26 +3463,31 @@ static void WM_OT_ndof_sensitivity_change(wmOperatorType *ot) RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then sensitivity changes 50%, otherwise 10%"); } + +static void operatortype_ghash_free_cb(wmOperatorType *ot) +{ + if(ot->macro.first) + wm_operatortype_free_macro(ot); + + if(ot->ext.srna) /* python operator, allocs own string */ + MEM_freeN((void *)ot->idname); + + MEM_freeN(ot); +} + /* ******************************************************* */ /* called on initialize WM_exit() */ void wm_operatortype_free(void) { - wmOperatorType *ot; - - for(ot= global_ops.first; ot; ot= ot->next) { - if(ot->macro.first) - wm_operatortype_free_macro(ot); - - if(ot->ext.srna) /* python operator, allocs own string */ - MEM_freeN((void *)ot->idname); - } - - BLI_freelistN(&global_ops); + BLI_ghash_free(global_ops_hash, NULL, (GHashValFreeFP)operatortype_ghash_free_cb); + global_ops_hash= NULL; } /* called on initialize WM_init() */ void wm_operatortype_init(void) { + global_ops_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wm_operatortype_init gh"); + WM_operatortype_append(WM_OT_window_duplicate); WM_operatortype_append(WM_OT_read_homefile); WM_operatortype_append(WM_OT_read_factory_settings); -- cgit v1.2.3 From 80acfdc7a039f976bf66a8d7f0267fe0a71ea91d Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Thu, 11 Aug 2011 06:40:04 +0000 Subject: SVN maintenance. --- source/blender/editors/space_outliner/outliner_draw.c | 2 ++ source/blender/editors/space_outliner/outliner_edit.c | 2 ++ source/blender/editors/space_outliner/outliner_select.c | 2 ++ source/blender/editors/space_outliner/outliner_tools.c | 2 ++ source/blender/editors/space_outliner/outliner_tree.c | 2 ++ 5 files changed, 10 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 6d6c3429af2..17b44022c80 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -1,4 +1,6 @@ /* + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c index fbd5281b1d9..15167a3ba2c 100644 --- a/source/blender/editors/space_outliner/outliner_edit.c +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -1,4 +1,6 @@ /* + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index 23873b1fde7..c571fa1de6c 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -1,4 +1,6 @@ /* + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index b6332c4389a..f5e1a67010e 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -1,4 +1,6 @@ /* + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index 7026c94facc..3560bfb9896 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -1,4 +1,6 @@ /* + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or -- cgit v1.2.3 From 99caa9470e9dc420541dc49c29037f6bac55964e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Aug 2011 08:24:56 +0000 Subject: fix [#28213] Imperial unit for 0.001 inches inconsistently displayed as mils and thous --- source/blender/blenkernel/intern/unit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c index b89e576a562..a9792bc44fa 100644 --- a/source/blender/blenkernel/intern/unit.c +++ b/source/blender/blenkernel/intern/unit.c @@ -136,7 +136,7 @@ static struct bUnitDef buImperialLenDef[] = { {"yard", "yards", "yd", NULL, "Yards", UN_SC_YD, 0.0, B_UNIT_DEF_NONE}, {"foot", "feet", "'", "ft", "Feet", UN_SC_FT, 0.0, B_UNIT_DEF_NONE}, /* base unit */ {"inch", "inches", "\"", "in", "Inches", UN_SC_IN, 0.0, B_UNIT_DEF_NONE}, - {"thou", "thous", "mil", NULL, "Thous", UN_SC_MIL, 0.0, B_UNIT_DEF_NONE}, + {"thou", "thou", "thou", "mil", "Thou", UN_SC_MIL, 0.0, B_UNIT_DEF_NONE}, /* plural for thou has no 's' */ {NULL, NULL, NULL, NULL, NULL, 0.0, 0.0} }; static struct bUnitCollection buImperialLenCollecton = {buImperialLenDef, 4, 0, sizeof(buImperialLenDef)/sizeof(bUnitDef)}; -- cgit v1.2.3 From 165e6dbc07c4bf00fe492d4f65ea276a39628a85 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 11 Aug 2011 09:40:14 +0000 Subject: Adding a readonly length_squared property to mathutils.Vector. This is simply vector.dot(vector), so nothing new is really added, but it's nice for writing more intent revealing code. In other words: if vec.dot(vec) > some_distance*some_distance: do_something() might not be quite as obvious looking as: if vec.length_squared > some_distance*some_distance: do_something() As to why you'd want to use length_squared over length is that length uses a square root, which isn't always necessary for simple distance checks (e.g., closest object, checks like the ones above, ect). --- source/blender/python/mathutils/mathutils_Vector.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index a954c07c98d..9d52f45665f 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -1728,6 +1728,21 @@ static int Vector_setLength(VectorObject *self, PyObject *value) return 0; } +/* vector.length_squared */ +static PyObject *Vector_getLengthSquared(VectorObject *self, void *UNUSED(closure)) +{ + double dot = 0.0f; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + for(i = 0; i < self->size; i++){ + dot += (double)(self->vec[i] * self->vec[i]); + } + return PyFloat_FromDouble(dot); +} + /* Get a new Vector according to the provided swizzle. This function has little error checking, as we are in control of the inputs: the closure is set by us in Vector_createSwizzleGetSeter. */ @@ -1851,6 +1866,7 @@ static PyGetSetDef Vector_getseters[] = { {(char *)"z", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Z axis (3D Vectors only).\n\n:type: float", (void *)2}, {(char *)"w", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector W axis (4D Vectors only).\n\n:type: float", (void *)3}, {(char *)"length", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, + {(char *)"length_squared", (getter)Vector_getLengthSquared, (setter)NULL, (char *)"Vector length squared (v.dot(v)).\n\n:type: float", NULL}, {(char *)"magnitude", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, -- cgit v1.2.3 From fee7337249342c3d5a332358883af9afe961f38d Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Thu, 11 Aug 2011 11:41:24 +0000 Subject: 3D Audio GSoC: Adding a mono flag to mixdown non-mono sounds for 3D audio. * Added mono sound loading. * Bugfix: AUD_COMPARE_SPECS usage was wrong. * Bugfix: JOS resampler = instead of ==. * Bugfix: Change of a sound should apply settings in AUD_SequencerHandle. * Bugfix: Memory leak when canceling open sound operator. --- source/blender/blenkernel/intern/sound.c | 7 ++++++ source/blender/editors/sound/sound_ops.c | 39 +++++++++++++++++++++++++++++- source/blender/makesdna/DNA_sound_types.h | 1 + source/blender/makesrna/intern/rna_sound.c | 9 +++++-- 4 files changed, 53 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 1b09db84125..9c62b92a924 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -349,6 +349,13 @@ void sound_load(struct Main *bmain, struct bSound* sound) break; } #endif + if(sound->flags & SOUND_FLAGS_MONO) + { + void* handle = AUD_monoSound(sound->handle); + AUD_unload(sound->handle); + sound->handle = handle; + } + if(sound->flags & SOUND_FLAGS_CACHING) { sound->cache = AUD_bufferSound(sound->handle); diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 31d22f9dd54..fb4355d0df7 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -79,6 +79,13 @@ /******************** open sound operator ********************/ +static int open_cancel(bContext *UNUSED(C), wmOperator *op) +{ + MEM_freeN(op->customdata); + op->customdata= NULL; + return OPERATOR_CANCELLED; +} + static void open_init(bContext *C, wmOperator *op) { PropertyPointerRNA *pprop; @@ -95,9 +102,10 @@ static int open_exec(bContext *C, wmOperator *op) PropertyPointerRNA *pprop; PointerRNA idptr; AUD_SoundInfo info; + Main *bmain = CTX_data_main(C); RNA_string_get(op->ptr, "filepath", path); - sound = sound_new_file(CTX_data_main(C), path); + sound = sound_new_file(bmain, path); if(!op->customdata) open_init(C, op); @@ -117,6 +125,11 @@ static int open_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } + if(RNA_boolean_get(op->ptr, "mono")) { + sound->flags |= SOUND_FLAGS_MONO; + sound_load(bmain, sound); + } + if (RNA_boolean_get(op->ptr, "cache")) { sound_cache(sound); } @@ -172,6 +185,28 @@ void SOUND_OT_open(wmOperatorType *ot) /* api callbacks */ ot->exec= open_exec; ot->invoke= open_invoke; + ot->cancel= open_cancel; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH); + RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory."); + RNA_def_boolean(ot->srna, "mono", FALSE, "Mono", "Mixdown the sound to mono."); +} + +void SOUND_OT_open_mono(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Open Sound Mono"; + ot->description= "Load a sound file as mono"; + ot->idname= "SOUND_OT_open_mono"; + + /* api callbacks */ + ot->exec= open_exec; + ot->invoke= open_invoke; + ot->cancel= open_cancel; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -179,6 +214,7 @@ void SOUND_OT_open(wmOperatorType *ot) /* properties */ WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH); RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory."); + RNA_def_boolean(ot->srna, "mono", TRUE, "Mono", "Mixdown the sound to mono."); } /******************** mixdown operator ********************/ @@ -667,6 +703,7 @@ void SOUND_OT_bake_animation(wmOperatorType *ot) void ED_operatortypes_sound(void) { WM_operatortype_append(SOUND_OT_open); + WM_operatortype_append(SOUND_OT_open_mono); WM_operatortype_append(SOUND_OT_mixdown); WM_operatortype_append(SOUND_OT_pack); WM_operatortype_append(SOUND_OT_unpack); diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h index d7546e84bbf..4f727b3586b 100644 --- a/source/blender/makesdna/DNA_sound_types.h +++ b/source/blender/makesdna/DNA_sound_types.h @@ -113,6 +113,7 @@ typedef enum eSound_Type { #define SOUND_FLAGS_3D (1 << 3) /* deprecated! used for sound actuator loading */ #define SOUND_FLAGS_CACHING (1 << 4) +#define SOUND_FLAGS_MONO (1 << 5) /* to DNA_sound_types.h*/ diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c index e78bc092040..b224b55c20c 100644 --- a/source/blender/makesrna/intern/rna_sound.c +++ b/source/blender/makesrna/intern/rna_sound.c @@ -41,7 +41,7 @@ #include "BKE_sound.h" #include "BKE_context.h" -static void rna_Sound_filepath_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) +static void rna_Sound_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { sound_load(bmain, (bSound*)ptr->data); } @@ -83,7 +83,7 @@ static void rna_def_sound(BlenderRNA *brna) prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH); RNA_def_property_string_sdna(prop, NULL, "name"); RNA_def_property_ui_text(prop, "File Path", "Sound sample file used by this Sound datablock"); - RNA_def_property_update(prop, 0, "rna_Sound_filepath_update"); + RNA_def_property_update(prop, 0, "rna_Sound_update"); prop= RNA_def_property(srna, "packed_file", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "packedfile"); @@ -93,6 +93,11 @@ static void rna_def_sound(BlenderRNA *brna) RNA_def_property_boolean_funcs(prop, "rna_Sound_caching_get", "rna_Sound_caching_set"); RNA_def_property_ui_text(prop, "Caching", "The sound file is decoded and loaded into RAM"); RNA_def_property_update(prop, 0, "rna_Sound_caching_update"); + + prop= RNA_def_property(srna, "mono", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", SOUND_FLAGS_MONO); + RNA_def_property_ui_text(prop, "Mono", "If the file contains multiple audio channels they are mixdown to a signle one."); + RNA_def_property_update(prop, 0, "rna_Sound_update"); } void RNA_def_sound(BlenderRNA *brna) -- cgit v1.2.3 From 9c9cd71a8612a2d85b10f9408199105ee09e70ad Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 11 Aug 2011 11:56:02 +0000 Subject: Fix #28180: crash running wm.keyconfigs.user.keymaps.new("My Keymap"). There isn't much point in doing this at the moment, but shouldn't crash. --- source/blender/windowmanager/intern/wm_keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 2fb0a1b2ab9..2dfe4d8ccdc 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -1009,7 +1009,8 @@ void WM_keyconfig_update(wmWindowManager *wm) addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid); /* diff */ - wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km); + if(defaultmap) + wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km); } } -- cgit v1.2.3 From 944cdf04dd77cb2d109974355a69f4cb3d14d933 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 11 Aug 2011 13:40:47 +0000 Subject: Fix for crash when using undo during sketching session. Currently, grease pencil conflicts with such operators as undo and set object mode which makes behavior totally unpredictable and crash for some cases. The only way to solve this proper is to ger rid of pointers to data which can chage stored in operator custom data. --- source/blender/editors/gpencil/gpencil_paint.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 2311f4a3a64..169443d855f 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1615,7 +1615,12 @@ static int gpencil_area_exists(bContext *C, ScrArea *satest) static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) { tGPsdata *p= op->customdata; - int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ + //int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ + /* currently, grease pencil conflicts with such operators as undo and set object mode + which makes behavior of operator totally unpredictable and crash for some cases. + the only way to solve this proper is to ger rid of pointers to data which can + chage stored in operator custom data (sergey) */ + int estate = OPERATOR_RUNNING_MODAL; // if (event->type == NDOF_MOTION) // return OPERATOR_PASS_THROUGH; -- cgit v1.2.3 From b1c04d379fd817cf7ed317ab5a091a1aecd299d3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Aug 2011 02:23:06 +0000 Subject: un-inline GHash functions r26206, these are quite large functions to inline and increase binary size by 30kb, (tested on stripped, cmake release build). Ran some speed tests and difference was close to the noise level, but inlining gives only ~2 - 3% speedup with build modifier which uses ghash a lot. --- source/blender/blenlib/BLI_ghash.h | 141 +++--------------------------- source/blender/blenlib/intern/BLI_ghash.c | 92 +++++++++++++++++-- 2 files changed, 98 insertions(+), 135 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h index dcc71fa1258..e4afc6ad79b 100644 --- a/source/blender/blenlib/BLI_ghash.h +++ b/source/blender/blenlib/BLI_ghash.h @@ -53,14 +53,14 @@ typedef void (*GHashValFreeFP) (void *val); typedef struct Entry { struct Entry *next; - + void *key, *val; } Entry; typedef struct GHash { GHashHashFP hashfp; GHashCmpFP cmpfp; - + Entry **buckets; struct BLI_mempool *entrypool; int nbuckets, nentries, cursize; @@ -72,15 +72,15 @@ typedef struct GHashIterator { struct Entry *curEntry; } GHashIterator; -GHash* BLI_ghash_new (GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info); -void BLI_ghash_free (GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); - -//BM_INLINE void BLI_ghash_insert (GHash *gh, void *key, void *val); -//BM_INLINE int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); -//BM_INLINE void* BLI_ghash_lookup (GHash *gh, void *key); -//BM_INLINE int BLI_ghash_haskey (GHash *gh, void *key); +/* *** */ -int BLI_ghash_size (GHash *gh); +GHash* BLI_ghash_new (GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info); +void BLI_ghash_free (GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); +void BLI_ghash_insert(GHash *gh, void *key, void *val); +void * BLI_ghash_lookup(GHash *gh, const void *key); +int BLI_ghash_remove(GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); +int BLI_ghash_haskey(GHash *gh, void *key); +int BLI_ghash_size (GHash *gh); /* *** */ @@ -149,127 +149,10 @@ unsigned int BLI_ghashutil_strhash (const void *key); int BLI_ghashutil_strcmp (const void *a, const void *b); unsigned int BLI_ghashutil_inthash (const void *ptr); -int BLI_ghashutil_intcmp(const void *a, const void *b); - -/*begin of macro-inlined functions*/ -extern unsigned int hashsizes[]; - -#if 0 -#define BLI_ghash_insert(gh, _k, _v){\ - unsigned int _hash= (gh)->hashfp(_k)%gh->nbuckets;\ - Entry *_e= BLI_mempool_alloc((gh)->entrypool);\ - _e->key= _k;\ - _e->val= _v;\ - _e->next= (gh)->buckets[_hash];\ - (gh)->buckets[_hash]= _e;\ - if (++(gh)->nentries>(gh)->nbuckets*3) {\ - Entry *_e, **_old= (gh)->buckets;\ - int _i, _nold= (gh)->nbuckets;\ - (gh)->nbuckets= hashsizes[++(gh)->cursize];\ - (gh)->buckets= malloc((gh)->nbuckets*sizeof(*(gh)->buckets));\ - memset((gh)->buckets, 0, (gh)->nbuckets*sizeof(*(gh)->buckets));\ - for (_i=0; _i<_nold; _i++) {\ - for (_e= _old[_i]; _e;) {\ - Entry *_n= _e->next;\ - _hash= (gh)->hashfp(_e->key)%(gh)->nbuckets;\ - _e->next= (gh)->buckets[_hash];\ - (gh)->buckets[_hash]= _e;\ - _e= _n;\ - }\ - }\ - free(_old); } } -#endif - -/*---------inlined functions---------*/ -BM_INLINE void BLI_ghash_insert(GHash *gh, void *key, void *val) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool); - - e->key= key; - e->val= val; - e->next= gh->buckets[hash]; - gh->buckets[hash]= e; - - if (++gh->nentries>(float)gh->nbuckets/2) { - Entry **old= gh->buckets; - int i, nold= gh->nbuckets; - - gh->nbuckets= hashsizes[++gh->cursize]; - gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets"); - memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets)); - - for (i=0; inext; - - hash= gh->hashfp(e->key)%gh->nbuckets; - e->next= gh->buckets[hash]; - gh->buckets[hash]= e; - - e= n; - } - } - - MEM_freeN(old); - } -} - -BM_INLINE void* BLI_ghash_lookup(GHash *gh, const void *key) -{ - if(gh) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - - for (e= gh->buckets[hash]; e; e= e->next) - if (gh->cmpfp(key, e->key)==0) - return e->val; - } - return NULL; -} - -BM_INLINE int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) -{ - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - Entry *p = NULL; - - for (e= gh->buckets[hash]; e; e= e->next) { - if (gh->cmpfp(key, e->key)==0) { - Entry *n= e->next; - - if (keyfreefp) keyfreefp(e->key); - if (valfreefp) valfreefp(e->val); - BLI_mempool_free(gh->entrypool, e); - - - e= n; - if (p) - p->next = n; - else - gh->buckets[hash] = n; - - --gh->nentries; - return 1; - } - p = e; - } - - return 0; -} - -BM_INLINE int BLI_ghash_haskey(GHash *gh, void *key) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - - for (e= gh->buckets[hash]; e; e= e->next) - if (gh->cmpfp(key, e->key)==0) - return 1; - - return 0; -} +int BLI_ghashutil_intcmp (const void *a, const void *b); #ifdef __cplusplus } #endif -#endif +#endif /* BLI_GHASH_H */ diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index ff08ef4dba9..3c6a20b8ad6 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -49,8 +49,6 @@ unsigned int hashsizes[]= { /***/ -/***/ - GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) { GHash *gh= MEM_mallocN(sizeof(*gh), info); gh->hashfp= hashfp; @@ -67,14 +65,96 @@ GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) { return gh; } -#ifdef BLI_ghash_insert -#undef BLI_ghash_insert -#endif - int BLI_ghash_size(GHash *gh) { return gh->nentries; } +void BLI_ghash_insert(GHash *gh, void *key, void *val) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool); + + e->key= key; + e->val= val; + e->next= gh->buckets[hash]; + gh->buckets[hash]= e; + + if (++gh->nentries>(float)gh->nbuckets/2) { + Entry **old= gh->buckets; + int i, nold= gh->nbuckets; + + gh->nbuckets= hashsizes[++gh->cursize]; + gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets"); + memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets)); + + for (i=0; inext; + + hash= gh->hashfp(e->key)%gh->nbuckets; + e->next= gh->buckets[hash]; + gh->buckets[hash]= e; + + e= n; + } + } + + MEM_freeN(old); + } +} + +void *BLI_ghash_lookup(GHash *gh, const void *key) { + if(gh) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + + for (e= gh->buckets[hash]; e; e= e->next) + if (gh->cmpfp(key, e->key)==0) + return e->val; + } + return NULL; +} + +int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) +{ + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + Entry *p = NULL; + + for (e= gh->buckets[hash]; e; e= e->next) { + if (gh->cmpfp(key, e->key)==0) { + Entry *n= e->next; + + if (keyfreefp) keyfreefp(e->key); + if (valfreefp) valfreefp(e->val); + BLI_mempool_free(gh->entrypool, e); + + + e= n; + if (p) + p->next = n; + else + gh->buckets[hash] = n; + + --gh->nentries; + return 1; + } + p = e; + } + + return 0; +} + +int BLI_ghash_haskey(GHash *gh, void *key) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + + for (e= gh->buckets[hash]; e; e= e->next) + if (gh->cmpfp(key, e->key)==0) + return 1; + + return 0; +} + void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) { int i; -- cgit v1.2.3 From a03b52af81634afe924a13f5c00ca7fa99a3c83d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Aug 2011 03:18:04 +0000 Subject: soft limits for add object rotation value, without cont. grab it would get to very large numbers with a small drag. --- source/blender/editors/object/object_add.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index f5f97c6a5f6..cd42661f320 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -182,7 +182,7 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode) } RNA_def_float_vector_xyz(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object", -FLT_MAX, FLT_MAX); - RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX); + RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -M_PI * 2.0f, M_PI * 2.0f); prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", ""); RNA_def_property_flag(prop, PROP_HIDDEN); -- cgit v1.2.3 From 347f4fac74b684731dafcd5d92e325e06ec3ed90 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Aug 2011 03:53:26 +0000 Subject: add WM_FILESEL_FILES to WM_operator_properties_filesel, sequencer was doing this on its own. --- .../blender/editors/space_sequencer/sequencer_add.c | 20 ++++++++------------ source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_operators.c | 7 ++++--- 3 files changed, 13 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index b105b2507ab..14004e7fbba 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -83,9 +83,8 @@ /* avoid passing multiple args and be more verbose */ #define SEQPROP_STARTFRAME (1<<0) #define SEQPROP_ENDFRAME (1<<1) -#define SEQPROP_FILES (1<<2) -#define SEQPROP_NOPATHS (1<<3) -#define SEQPROP_NOCHAN (1<<4) +#define SEQPROP_NOPATHS (1<<2) +#define SEQPROP_NOCHAN (1<<3) #define SELECT 1 @@ -102,9 +101,6 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag) RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "replace the current selection"); RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips"); - - if(flag & SEQPROP_FILES) - RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op, const char *identifier) @@ -411,8 +407,8 @@ void SEQUENCER_OT_movie_strip_add(struct wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME); RNA_def_boolean(ot->srna, "sound", TRUE, "Sound", "Load sound with the movie"); } @@ -466,8 +462,8 @@ void SEQUENCER_OT_sound_strip_add(struct wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME); RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory."); } @@ -573,8 +569,8 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME); } diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index d8c6933a93d..e1b8cefca4b 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -222,6 +222,7 @@ wmOperator *WM_operator_last_redo(const struct bContext *C); #define WM_FILESEL_DIRECTORY (1 << 1) #define WM_FILESEL_FILENAME (1 << 2) #define WM_FILESEL_FILEPATH (1 << 3) +#define WM_FILESEL_FILES (1 << 4) /* operator as a python command (resultuing string must be free'd) */ diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 66467b310ee..105b2e8189a 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -811,6 +811,9 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, if(flag & WM_FILESEL_FILENAME) RNA_def_string_file_name(ot->srna, "filename", "", FILE_MAX, "File Name", "Name of the file"); + if(flag & WM_FILESEL_FILES) + RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); + if (action == FILE_SAVE) { prop= RNA_def_boolean(ot->srna, "check_existing", 1, "Check Existing", "Check and warn on overwriting existing files"); RNA_def_property_flag(prop, PROP_HIDDEN); @@ -1748,14 +1751,12 @@ static void WM_OT_link_append(wmOperatorType *ot) ot->flag |= OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME| WM_FILESEL_RELPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME| WM_FILESEL_RELPATH|WM_FILESEL_FILES); RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending"); RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects"); RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer"); RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup"); - - RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } /* *************** recover last session **************** */ -- cgit v1.2.3 From ada88c8d8ed051465e8db7ba0b856a6b065cb2d5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Aug 2011 06:08:22 +0000 Subject: sequencer todo: change sequence added back (C key) split up into operators - change effect input - change effect type - change file data Change plugin is not ported back yet. --- .../editors/space_sequencer/sequencer_edit.c | 433 +++++++++++---------- .../editors/space_sequencer/sequencer_intern.h | 6 + .../editors/space_sequencer/sequencer_ops.c | 6 + 3 files changed, 246 insertions(+), 199 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 6a69d32d307..a58bec9eeb9 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -392,205 +392,6 @@ void recurs_sel_seq(Sequence *seqm) } } -int event_to_efftype(int event) -{ - if(event==2) return SEQ_CROSS; - if(event==3) return SEQ_GAMCROSS; - if(event==4) return SEQ_ADD; - if(event==5) return SEQ_SUB; - if(event==6) return SEQ_MUL; - if(event==7) return SEQ_ALPHAOVER; - if(event==8) return SEQ_ALPHAUNDER; - if(event==9) return SEQ_OVERDROP; - if(event==10) return SEQ_PLUGIN; - if(event==13) return SEQ_WIPE; - if(event==14) return SEQ_GLOW; - if(event==15) return SEQ_TRANSFORM; - if(event==16) return SEQ_COLOR; - if(event==17) return SEQ_SPEED; - if(event==18) return SEQ_ADJUSTMENT; - return 0; -} - -#if 0 -static void reload_sound_strip(Scene *scene, char *name) -{ - Editing *ed; - Sequence *seq, *seqact; - SpaceFile *sfile; - Sequence *last_seq= seq_active_get(scene); - - ed= scene->ed; - - if(last_seq==0 || last_seq->type!=SEQ_SOUND) return; - seqact= last_seq; /* last_seq changes in alloc_sequence */ - - /* search sfile */ -// sfile= scrarea_find_space_of_type(curarea, SPACE_FILE); - if(sfile==0) return; - - waitcursor(1); - - seq = sfile_to_snd_sequence(sfile, seqact->start, seqact->machine); - printf("seq->type: %i\n", seq->type); - if(seq && seq!=seqact) { - /* i'm not sure about this one, seems to work without it -- sgefant */ - seq_free_strip(seqact->strip); - - seqact->strip= seq->strip; - - seqact->len= seq->len; - calc_sequence(scene, seqact); - - seq->strip= 0; - seq_free_sequence(scene, seq); - BLI_remlink(ed->seqbasep, seq); - - seq= ed->seqbasep->first; - - } - - waitcursor(0); - -} -#endif - -static void reload_image_strip(Scene *scene, char *UNUSED(name)) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq=NULL, *seqact; - SpaceFile *sfile=NULL; - Sequence *last_seq= seq_active_get(scene); - - - - if(last_seq==NULL || last_seq->type!=SEQ_IMAGE) return; - seqact= last_seq; /* last_seq changes in alloc_sequence */ - - /* search sfile */ -// sfile= scrarea_find_space_of_type(curarea, SPACE_FILE); - if(sfile == NULL) return; - - waitcursor(1); - -// seq= sfile_to_sequence(scene, sfile, seqact->start, seqact->machine, 1); // XXX ADD BACK - if(seq && seq!=seqact) { - seq_free_strip(seqact->strip); - - seqact->strip= seq->strip; - - seqact->len= seq->len; - calc_sequence(scene, seqact); - - seq->strip= NULL; - seq_free_sequence(scene, seq); - BLI_remlink(ed->seqbasep, seq); - - update_changed_seq_and_deps(scene, seqact, 1, 1); - } - waitcursor(0); - -} - - -static void change_sequence(Scene *scene) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *last_seq= seq_active_get(scene); - Scene *sce; - short event; - - if(last_seq == NULL) return; - - if(last_seq->type & SEQ_EFFECT) { - event = pupmenu("Change Effect%t" - "|Switch A <-> B %x1" - "|Switch B <-> C %x10" - "|Plugin%x11" - "|Recalculate%x12" - "|Cross%x2" - "|Gamma Cross%x3" - "|Add%x4" - "|Sub%x5" - "|Mul%x6" - "|Alpha Over%x7" - "|Alpha Under%x8" - "|Alpha Over Drop%x9" - "|Wipe%x13" - "|Glow%x14" - "|Transform%x15" - "|Color Generator%x16" - "|Speed Control%x17" - "|Adjustment Layer%x18"); - if(event > 0) { - if(event==1) { - SWAP(Sequence *,last_seq->seq1,last_seq->seq2); - } - else if(event==10) { - SWAP(Sequence *,last_seq->seq2,last_seq->seq3); - } - else if(event==11) { - activate_fileselect( - FILE_SPECIAL, "Select Plugin", - U.plugseqdir, change_plugin_seq); - } - else if(event==12); - /* recalculate: only new_stripdata */ - else { - /* free previous effect and init new effect */ - struct SeqEffectHandle sh; - - if (get_sequence_effect_num_inputs( - last_seq->type) - < get_sequence_effect_num_inputs( - event_to_efftype(event))) { - error("New effect needs more " - "input strips!"); - } else { - sh = get_sequence_effect(last_seq); - sh.free(last_seq); - - last_seq->type - = event_to_efftype(event); - - sh = get_sequence_effect(last_seq); - sh.init(last_seq); - } - } - - update_changed_seq_and_deps(scene, last_seq, 0, 1); - } - } - else if(last_seq->type == SEQ_IMAGE) { - if(okee("Change images")) { - activate_fileselect(FILE_SPECIAL, - "Select Images", - ed->act_imagedir, - reload_image_strip); - } - } - else if(last_seq->type == SEQ_MOVIE) { - ; - } - else if(last_seq->type == SEQ_SCENE) { - event= pupmenu("Change Scene%t|Update Start and End"); - - if(event==1) { - sce= last_seq->scene; - - last_seq->len= sce->r.efra - sce->r.sfra + 1; - last_seq->sfra= sce->r.sfra; - - /* bad code to change seq->len? update_changed_seq_and_deps() expects the strip->len to be OK */ - new_tstripdata(last_seq); - - update_changed_seq_and_deps(scene, last_seq, 1, 1); - - } - } - -} - int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3, const char **error_str) { Editing *ed = seq_give_editing(scene, FALSE); @@ -1103,6 +904,19 @@ int sequencer_edit_poll(bContext *C) return (seq_give_editing(CTX_data_scene(C), FALSE) != NULL); } +int sequencer_strip_poll(bContext *C) +{ + Editing *ed; + return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && (ed->act_seq != NULL)); +} + +int sequencer_strip_has_path_poll(bContext *C) +{ + Editing *ed; + Sequence *seq; + return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && ((seq= ed->act_seq) != NULL) && (SEQ_HAS_PATH(seq))); +} + int sequencer_view_poll(bContext *C) { SpaceSeq *sseq= CTX_wm_space_seq(C); @@ -2830,3 +2644,224 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot) /* rna */ WM_operator_properties_gesture_border(ot, FALSE); } + + +/* change ops */ + +static EnumPropertyItem prop_change_effect_input_types[] = { + {0, "A_B", 0, "A -> B", ""}, + {1, "B_C", 0, "B -> C", ""}, + {2, "A_C", 0, "A -> C", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + + Sequence **seq_1, **seq_2; + + switch(RNA_enum_get(op->ptr, "swap")) { + case 0: + seq_1= &seq->seq1; + seq_2= &seq->seq2; + break; + case 1: + seq_1= &seq->seq2; + seq_2= &seq->seq3; + break; + default: /* 2 */ + seq_1= &seq->seq1; + seq_2= &seq->seq3; + break; + } + + if(*seq_1 == NULL || *seq_2 == NULL) { + BKE_report(op->reports, RPT_ERROR, "One of the effect inputs is unset, can't swap"); + return OPERATOR_CANCELLED; + } + else { + SWAP(Sequence *, *seq_1, *seq_2); + } + + update_changed_seq_and_deps(scene, seq, 0, 1); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Effect Input"; + ot->idname= "SEQUENCER_OT_change_effect_input"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_effect_input_exec; + ot->poll= sequencer_effect_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + ot->prop= RNA_def_enum(ot->srna, "swap", prop_change_effect_input_types, 0, "Swap", "The effect inputs to swap"); +} + +static int sequencer_change_effect_type_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + const int new_type= RNA_enum_get(op->ptr, "type"); + + /* free previous effect and init new effect */ + struct SeqEffectHandle sh; + + if ((seq->type & SEQ_EFFECT) == 0) { + return OPERATOR_CANCELLED; + } + + /* can someone explain the logic behind only allowing to increse this, + * copied from 2.4x - campbell */ + if (get_sequence_effect_num_inputs(seq->type) < + get_sequence_effect_num_inputs(new_type) + ) { + BKE_report(op->reports, RPT_ERROR, "New effect needs more input strips"); + return OPERATOR_CANCELLED; + } + else { + sh = get_sequence_effect(seq); + sh.free(seq); + + seq->type= new_type; + + sh = get_sequence_effect(seq); + sh.init(seq); + } + + /* update */ + update_changed_seq_and_deps(scene, seq, 0, 1); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Effect Type"; + ot->idname= "SEQUENCER_OT_change_effect_type"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_effect_type_exec; + ot->poll= sequencer_effect_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + ot->prop= RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, "Type", "Sequencer effect type"); +} + +static int sequencer_change_path_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + + if(seq->type == SEQ_IMAGE) { + char directory[FILE_MAX]; + const int len= RNA_property_collection_length(op->ptr, RNA_struct_find_property(op->ptr, "files")); + StripElem *se; + + if(len==0) + return OPERATOR_CANCELLED; + + RNA_string_get(op->ptr, "directory", directory); + BLI_strncpy(seq->strip->dir, directory, sizeof(seq->strip->dir)); + + if(seq->strip->stripdata) { + MEM_freeN(seq->strip->stripdata); + } + seq->strip->stripdata= se= MEM_callocN(len*sizeof(StripElem), "stripelem"); + + RNA_BEGIN(op->ptr, itemptr, "files") { + char *filename= RNA_string_get_alloc(&itemptr, "name", NULL, 0); + BLI_strncpy(se->name, filename, sizeof(se->name)); + MEM_freeN(filename); + se++; + } + RNA_END; + + /* correct start/end frames so we dont move + * important not to set seq->len= len; allow the function to handle it */ + reload_sequence_new_file(scene, seq, TRUE); + + calc_sequence(scene, seq); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + } + else { + /* lame, set rna filepath */ + PointerRNA seq_ptr; + char filepath[FILE_MAX]; + + RNA_pointer_create(&scene->id, &RNA_Sequence, seq, &seq_ptr); + + RNA_string_get(op->ptr, "filepath", filepath); + RNA_string_set(&seq_ptr, "filepath", filepath); + } + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +static int sequencer_change_path_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) +{ + Scene *scene= CTX_data_scene(C); + Sequence *seq= seq_active_get(scene); + + RNA_string_set(op->ptr, "directory", seq->strip->dir); + + /* set default display depending on seq type */ + if(seq->type == SEQ_IMAGE) { + RNA_boolean_set(op->ptr, "filter_movie", 0); + } + else { + RNA_boolean_set(op->ptr, "filter_image", 0); + } + + WM_event_add_fileselect(C, op); + + return OPERATOR_RUNNING_MODAL; +} + +void SEQUENCER_OT_change_path(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Data/Files"; + ot->idname= "SEQUENCER_OT_change_path"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_path_exec; + ot->invoke= sequencer_change_path_invoke; + ot->poll= sequencer_strip_has_path_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH|WM_FILESEL_FILEPATH|WM_FILESEL_FILES); +} diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 209b39662aa..6eef2bb8361 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -70,6 +70,8 @@ int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, in /* operator helpers */ int sequencer_edit_poll(struct bContext *C); +int sequencer_strip_poll(struct bContext *C); +int sequencer_strip_has_path_poll(struct bContext *C); int sequencer_view_poll(struct bContext *C); /* externs */ @@ -108,6 +110,10 @@ void SEQUENCER_OT_view_selected(struct wmOperatorType *ot); void SEQUENCER_OT_view_zoom_ratio(struct wmOperatorType *ot); void SEQUENCER_OT_view_ghost_border(struct wmOperatorType *ot); +void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot); +void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot); +void SEQUENCER_OT_change_path(struct wmOperatorType *ot); + void SEQUENCER_OT_copy(struct wmOperatorType *ot); void SEQUENCER_OT_paste(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index f5c26cb17d3..ebf400ad5ff 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -86,6 +86,10 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_view_zoom_ratio); WM_operatortype_append(SEQUENCER_OT_view_ghost_border); + WM_operatortype_append(SEQUENCER_OT_change_effect_input); + WM_operatortype_append(SEQUENCER_OT_change_effect_type); + WM_operatortype_append(SEQUENCER_OT_change_path); + /* sequencer_select.c */ WM_operatortype_append(SEQUENCER_OT_select_all_toggle); WM_operatortype_append(SEQUENCER_OT_select_inverse); @@ -240,6 +244,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_select_border", BKEY, KM_PRESS, 0, 0); WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); + + WM_keymap_add_menu(keymap, "SEQUENCER_MT_change", CKEY, KM_PRESS, 0, 0); kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame"); -- cgit v1.2.3 From db72192c22787fdf99bc7b20c6864b37b8e871f4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 12 Aug 2011 07:20:49 +0000 Subject: Bye bye vile relics of extinct version control systems, Causing a flurry of refresh file prompts post-commit, Confusing local diffs and causing merge conflicts, Stating the obvious; redundant and useless... We shall not miss thou, blasted expand $keywords$ --- source/blender/blenkernel/BKE_action.h | 2 -- source/blender/blenkernel/BKE_anim.h | 2 -- source/blender/blenkernel/BKE_animsys.h | 2 -- source/blender/blenkernel/BKE_armature.h | 2 -- source/blender/blenkernel/BKE_constraint.h | 2 -- source/blender/blenkernel/BKE_nla.h | 2 -- source/blender/blenkernel/intern/action.c | 2 -- source/blender/blenkernel/intern/anim.c | 6 +----- source/blender/blenkernel/intern/anim_sys.c | 2 -- source/blender/blenkernel/intern/armature.c | 2 -- source/blender/blenkernel/intern/constraint.c | 2 -- source/blender/blenkernel/intern/fcurve.c | 2 -- source/blender/blenkernel/intern/fmodifier.c | 2 -- source/blender/blenkernel/intern/gpencil.c | 2 -- source/blender/blenkernel/intern/ipo.c | 5 +---- source/blender/blenkernel/intern/nla.c | 2 -- source/blender/editors/animation/anim_channels_defines.c | 2 -- source/blender/editors/animation/anim_channels_edit.c | 2 -- source/blender/editors/animation/anim_deps.c | 2 -- source/blender/editors/animation/anim_draw.c | 2 -- source/blender/editors/animation/anim_filter.c | 2 -- source/blender/editors/animation/anim_intern.h | 2 -- source/blender/editors/animation/anim_ipo_utils.c | 2 -- source/blender/editors/animation/anim_markers.c | 2 -- source/blender/editors/animation/anim_ops.c | 2 -- source/blender/editors/animation/drivers.c | 2 -- source/blender/editors/animation/fmodifier_ui.c | 2 -- source/blender/editors/animation/keyframes_draw.c | 2 -- source/blender/editors/animation/keyframes_edit.c | 2 -- source/blender/editors/animation/keyframes_general.c | 2 -- source/blender/editors/animation/keyframing.c | 2 -- source/blender/editors/animation/keyingsets.c | 2 -- source/blender/editors/armature/armature_intern.h | 2 -- source/blender/editors/armature/armature_ops.c | 2 -- source/blender/editors/armature/editarmature.c | 2 -- source/blender/editors/armature/poseSlide.c | 2 -- source/blender/editors/armature/poseUtils.c | 2 -- source/blender/editors/armature/poselib.c | 2 -- source/blender/editors/armature/poseobject.c | 2 -- source/blender/editors/gpencil/drawgpencil.c | 2 -- source/blender/editors/gpencil/editaction_gpencil.c | 2 -- source/blender/editors/gpencil/gpencil_buttons.c | 2 -- source/blender/editors/gpencil/gpencil_edit.c | 2 -- source/blender/editors/gpencil/gpencil_intern.h | 2 -- source/blender/editors/gpencil/gpencil_ops.c | 2 -- source/blender/editors/gpencil/gpencil_paint.c | 2 -- source/blender/editors/include/ED_anim_api.h | 2 -- source/blender/editors/include/ED_gpencil.h | 2 -- source/blender/editors/include/ED_keyframes_draw.h | 2 -- source/blender/editors/include/ED_keyframes_edit.h | 2 -- source/blender/editors/include/ED_keyframing.h | 2 -- source/blender/editors/include/ED_markers.h | 2 -- source/blender/editors/space_action/action_draw.c | 2 -- source/blender/editors/space_action/action_edit.c | 2 -- source/blender/editors/space_action/action_intern.h | 2 -- source/blender/editors/space_action/action_ops.c | 2 -- source/blender/editors/space_action/action_select.c | 2 -- source/blender/editors/space_action/space_action.c | 2 -- source/blender/editors/space_graph/graph_draw.c | 2 -- source/blender/editors/space_nla/nla_buttons.c | 2 -- source/blender/editors/space_nla/nla_channels.c | 2 -- source/blender/editors/space_nla/nla_draw.c | 2 -- source/blender/editors/space_nla/nla_edit.c | 2 -- source/blender/editors/space_nla/nla_intern.h | 2 -- source/blender/editors/space_nla/nla_ops.c | 2 -- source/blender/editors/space_nla/nla_select.c | 2 -- source/blender/editors/space_nla/space_nla.c | 2 -- source/blender/editors/space_outliner/outliner_intern.h | 2 -- source/blender/editors/space_outliner/outliner_ops.c | 2 -- source/blender/editors/space_outliner/space_outliner.c | 2 -- source/blender/editors/space_time/space_time.c | 2 -- source/blender/editors/space_time/time_intern.h | 2 -- source/blender/editors/space_time/time_ops.c | 2 -- source/blender/makesdna/DNA_action_types.h | 4 +--- source/blender/makesdna/DNA_anim_types.h | 4 +--- source/blender/makesdna/DNA_armature_types.h | 2 -- source/blender/makesdna/DNA_constraint_types.h | 2 -- source/blender/makesdna/DNA_gpencil_types.h | 2 -- source/blender/makesdna/DNA_ipo_types.h | 2 -- source/blender/makesdna/DNA_nla_types.h | 2 -- source/blender/makesrna/intern/rna_action.c | 2 -- source/blender/makesrna/intern/rna_animation.c | 2 -- source/blender/makesrna/intern/rna_animation_api.c | 2 -- source/blender/makesrna/intern/rna_animviz.c | 2 -- source/blender/makesrna/intern/rna_armature.c | 2 -- source/blender/makesrna/intern/rna_constraint.c | 2 -- source/blender/makesrna/intern/rna_fcurve.c | 2 -- source/blender/makesrna/intern/rna_gpencil.c | 2 -- source/blender/makesrna/intern/rna_nla.c | 2 -- source/blender/makesrna/intern/rna_pose.c | 2 -- 90 files changed, 4 insertions(+), 187 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 7d3de68c005..67efb7752ea 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h index 25165eeaee7..44aebdf6205 100644 --- a/source/blender/blenkernel/BKE_anim.h +++ b/source/blender/blenkernel/BKE_anim.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index bf619d76e68..98f9ee14c7e 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h index efa87532859..7d60c00156d 100644 --- a/source/blender/blenkernel/BKE_armature.h +++ b/source/blender/blenkernel/BKE_armature.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h index ddff45c5422..925d1180dbd 100644 --- a/source/blender/blenkernel/BKE_constraint.h +++ b/source/blender/blenkernel/BKE_constraint.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/BKE_nla.h b/source/blender/blenkernel/BKE_nla.h index 49c1f8acd24..773c5ced1cb 100644 --- a/source/blender/blenkernel/BKE_nla.h +++ b/source/blender/blenkernel/BKE_nla.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index a6539f00605..9c2467505cd 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 7ddb078ef8e..b965d14af00 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -1,8 +1,4 @@ -/* anim.c - * - * - * $Id$ - * +/* * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 832d13c9c2f..1c4746b1828 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 0b31e51d62e..62ce184a2d7 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index a321e718bbb..91091d3880f 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 28f17b3cf86..2e532222d5b 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index dcf81c19479..64e51023816 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index db0c9d2735f..c2e94cc97db 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index d41a3a36b2d..0d3f3cc5ae4 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -1,7 +1,4 @@ -/* ipo.c - * - * $Id$ - * +/* * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index dad49646622..463f3bdd5cb 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 20597ca5cdd..806af4c0ef5 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 551bc7e263e..ffa0b2d5ff5 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c index 13061113926..fdccf5d4baa 100644 --- a/source/blender/editors/animation/anim_deps.c +++ b/source/blender/editors/animation/anim_deps.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c index 2c2a8045b64..70974386917 100644 --- a/source/blender/editors/animation/anim_draw.c +++ b/source/blender/editors/animation/anim_draw.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index b4d1253c764..0472731dd6d 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_intern.h b/source/blender/editors/animation/anim_intern.h index 7818e8118a3..0ac941e5630 100644 --- a/source/blender/editors/animation/anim_intern.h +++ b/source/blender/editors/animation/anim_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index fc05f46929b..9c43671cdf4 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 732fc0bd267..48ddc8df5ef 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c index 7a94a21d41e..eaba8343f4d 100644 --- a/source/blender/editors/animation/anim_ops.c +++ b/source/blender/editors/animation/anim_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 3df65a942da..28195be943c 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 8197d6b25dd..b22a8a1cc37 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 56bc37709bc..c1e81cd0901 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index d5fb8b17440..cc360b34516 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index e2afda04d30..3d3311b35eb 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index fbedb466f7e..4e87409b7fd 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index 69e7c4eb73a..69abd1cb5a4 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index 9c466a79822..cc654f6d2bc 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index faf06f09141..28454fa0fa9 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index dcbbd424cdf..ec190f05987 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c index 9b92bccd979..b3ea568abf4 100644 --- a/source/blender/editors/armature/poseSlide.c +++ b/source/blender/editors/armature/poseSlide.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c index e1e346ab920..4b22d76ad0b 100644 --- a/source/blender/editors/armature/poseUtils.c +++ b/source/blender/editors/armature/poseUtils.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c index d09c4f1b5e0..ff6deb6a836 100644 --- a/source/blender/editors/armature/poselib.c +++ b/source/blender/editors/armature/poselib.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 20165a67879..48d349ce837 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index a275a5f908a..440d5ee7c4d 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c index e70fd2f9abf..937d24eed04 100644 --- a/source/blender/editors/gpencil/editaction_gpencil.c +++ b/source/blender/editors/gpencil/editaction_gpencil.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index d95f64c31e1..192f5c10d07 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 2860d467cef..9dc764b7aac 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h index 6ecdc2b054b..c31de8d30a7 100644 --- a/source/blender/editors/gpencil/gpencil_intern.h +++ b/source/blender/editors/gpencil/gpencil_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c index f2efada8406..e1e4c8d5457 100644 --- a/source/blender/editors/gpencil/gpencil_ops.c +++ b/source/blender/editors/gpencil/gpencil_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 2311f4a3a64..ffe2e334772 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index b0df4070d23..b730913a368 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index e5715316a31..07dcc959e32 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h index 3c1bb814c82..91723a1a33f 100644 --- a/source/blender/editors/include/ED_keyframes_draw.h +++ b/source/blender/editors/include/ED_keyframes_draw.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h index d9e7317fc66..5881e8c4bfe 100644 --- a/source/blender/editors/include/ED_keyframes_edit.h +++ b/source/blender/editors/include/ED_keyframes_edit.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 0ca3a932266..9dbe86bc5ac 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h index a8e91add348..30a0d47eda2 100644 --- a/source/blender/editors/include/ED_markers.h +++ b/source/blender/editors/include/ED_markers.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index d4d665171bc..f541423e69d 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 5276e62b9eb..b5dfdcdc668 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/action_intern.h b/source/blender/editors/space_action/action_intern.h index 512b6e329dd..2a23f105737 100644 --- a/source/blender/editors/space_action/action_intern.h +++ b/source/blender/editors/space_action/action_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index 2ccad308676..491d436741e 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index 68dd0a8c256..aa29e54f436 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index a05d1d3df93..8cd6e388b08 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index 7e40f2e5159..d65297e068d 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index 0f0662d84b1..4392e49e5d7 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index 08a4de81013..8775d256b80 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index eb9529b5186..9ce5aafd48a 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index fa24bd2f895..df638107bc3 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h index bd76d2484dd..ec2e22e65fa 100644 --- a/source/blender/editors/space_nla/nla_intern.h +++ b/source/blender/editors/space_nla/nla_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index 8ed117755c7..821e302c13d 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c index 5dc937d3ce1..c33316620eb 100644 --- a/source/blender/editors/space_nla/nla_select.c +++ b/source/blender/editors/space_nla/nla_select.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index f2e0abe1e60..48859acff6a 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index 85bbbd4fffb..e87b68a9ac3 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index b79bb000201..3e83da13e55 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 603be557a3c..49d8b6b5da4 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index a1347f6c306..6ea7a94b288 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_time/time_intern.h b/source/blender/editors/space_time/time_intern.h index 03ba617de14..094b0bc9e86 100644 --- a/source/blender/editors/space_time/time_intern.h +++ b/source/blender/editors/space_time/time_intern.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c index e9559426b81..78d903a2997 100644 --- a/source/blender/editors/space_time/time_ops.c +++ b/source/blender/editors/space_time/time_ops.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index f40d41f59bd..a820e59779f 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index c0030cd0e5e..e1dfd652900 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -586,7 +584,7 @@ typedef struct NlaStrip { short type; /* type of NLA strip */ void *speaker_handle; /* handle for speaker objects */ - + int flag; /* settings */ int pad2; } NlaStrip; diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h index 1675fdd3e90..442fc3ddcce 100644 --- a/source/blender/makesdna/DNA_armature_types.h +++ b/source/blender/makesdna/DNA_armature_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index c2c0c6f1611..1be2c811a1b 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index 6eb5f64ffc3..b259d592864 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h index 5dba9154a3a..43a4b99bc33 100644 --- a/source/blender/makesdna/DNA_ipo_types.h +++ b/source/blender/makesdna/DNA_ipo_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesdna/DNA_nla_types.h b/source/blender/makesdna/DNA_nla_types.h index c64dda2afd0..b92cf5c67e4 100644 --- a/source/blender/makesdna/DNA_nla_types.h +++ b/source/blender/makesdna/DNA_nla_types.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 25c08a57889..f24e0a92f78 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index a3b3d0ac8c9..0395a54be8e 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c index 4f1a94d62c5..b3d2c02d0e4 100644 --- a/source/blender/makesrna/intern/rna_animation_api.c +++ b/source/blender/makesrna/intern/rna_animation_api.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_animviz.c b/source/blender/makesrna/intern/rna_animviz.c index 5e8c5692abe..e65b137e846 100644 --- a/source/blender/makesrna/intern/rna_animviz.c +++ b/source/blender/makesrna/intern/rna_animviz.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 19a6b482621..e2399b5b57c 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 2887232b659..22d9a19f933 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 6bb1416e7fc..e922a007249 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 423b4e4f76b..9811d7bd797 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c index 5756044d12b..ef4adde6fb4 100644 --- a/source/blender/makesrna/intern/rna_nla.c +++ b/source/blender/makesrna/intern/rna_nla.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 635fc967a5a..0dd8218d1b9 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or -- cgit v1.2.3 From ebbd232555d9671161539a6d758bc789546d5ffb Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 12 Aug 2011 07:21:44 +0000 Subject: Fixing compiler warning --- source/blender/editors/space_graph/graph_buttons.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index d8fd53b83d8..c713bc54d25 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -257,7 +257,6 @@ static void graphedit_activekey_update_cb(bContext *UNUSED(C), void *fcu_ptr, vo /* update callback for active keyframe properties - handle-editing wrapper */ static void graphedit_activekey_handles_cb(bContext *C, void *fcu_ptr, void *bezt_ptr) { - FCurve *fcu = (FCurve *)fcu_ptr; BezTriple *bezt = (BezTriple *)bezt_ptr; /* since editing the handles, make sure they're set to types which are receptive to editing -- cgit v1.2.3 From 059bbee2da03cd88cf8b28803e1917f9f065c1f9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 12 Aug 2011 07:22:29 +0000 Subject: Drat... missed one --- source/blender/editors/space_graph/graph_buttons.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index c713bc54d25..f3a70c496ef 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or -- cgit v1.2.3 From e4bdb6e95a6f2a0365901ed8d1cba698f19d6d39 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:06:05 +0000 Subject: Code cleanup: replace some manual setting of ob->recalc with DAG_id_tag_update, is now just as fast anyway with delayed flush. --- source/blender/editors/object/object_transform.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index f7c6ff99bde..78f3537bea9 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -246,7 +246,7 @@ static int object_clear_transform_generic_exec(bContext *C, wmOperator *op, } /* tag for updates */ - ob->recalc |= OB_RECALC_OB; + DAG_id_tag_update(&ob->id, OB_RECALC_OB); } } CTX_DATA_END; @@ -341,7 +341,8 @@ static int object_origin_clear_exec(bContext *C, wmOperator *UNUSED(op)) negate_v3_v3(v3, v1); mul_m3_v3(mat, v3); } - ob->recalc |= OB_RECALC_OB; + + DAG_id_tag_update(&ob->id, OB_RECALC_OB); } CTX_DATA_END; @@ -871,7 +872,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) (ob->dup_group==ob_other->dup_group && (ob->transflag|ob_other->transflag) & OB_DUPLIGROUP) ) ) { ob_other->flag |= OB_DONE; - ob_other->recalc= OB_RECALC_OB|OB_RECALC_DATA; + DAG_id_tag_update(&ob_other->id, OB_RECALC_OB|OB_RECALC_DATA); copy_v3_v3(centn, cent); mul_mat3_m4_v3(ob_other->obmat, centn); /* ommit translation part */ @@ -890,11 +891,9 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - for (tob= bmain->object.first; tob; tob= tob->id.next) { - if(tob->data && (((ID *)tob->data)->flag & LIB_DOIT)) { - tob->recalc= OB_RECALC_OB|OB_RECALC_DATA; - } - } + for (tob= bmain->object.first; tob; tob= tob->id.next) + if(tob->data && (((ID *)tob->data)->flag & LIB_DOIT)) + DAG_id_tag_update(&tob->id, OB_RECALC_OB|OB_RECALC_DATA); if (tot_change) { DAG_ids_flush_update(bmain, 0); -- cgit v1.2.3 From c265a686d8ef83c4606a8c8846795b5b381a3dff Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:11:22 +0000 Subject: Modifiers: add callback to loop over each texture assigned to a modifier. --- source/blender/blenkernel/BKE_modifier.h | 15 +++++++++++++++ source/blender/blenkernel/intern/modifier.c | 12 ++++++++++++ source/blender/modifiers/intern/MOD_armature.c | 1 + source/blender/modifiers/intern/MOD_array.c | 1 + source/blender/modifiers/intern/MOD_bevel.c | 1 + source/blender/modifiers/intern/MOD_boolean.c | 1 + source/blender/modifiers/intern/MOD_build.c | 3 ++- source/blender/modifiers/intern/MOD_cast.c | 1 + source/blender/modifiers/intern/MOD_cloth.c | 1 + source/blender/modifiers/intern/MOD_collision.c | 1 + source/blender/modifiers/intern/MOD_curve.c | 1 + source/blender/modifiers/intern/MOD_decimate.c | 1 + source/blender/modifiers/intern/MOD_displace.c | 7 +++++++ source/blender/modifiers/intern/MOD_edgesplit.c | 1 + source/blender/modifiers/intern/MOD_explode.c | 1 + source/blender/modifiers/intern/MOD_fluidsim.c | 1 + source/blender/modifiers/intern/MOD_hook.c | 1 + source/blender/modifiers/intern/MOD_lattice.c | 1 + source/blender/modifiers/intern/MOD_mask.c | 1 + source/blender/modifiers/intern/MOD_meshdeform.c | 1 + source/blender/modifiers/intern/MOD_mirror.c | 1 + source/blender/modifiers/intern/MOD_multires.c | 1 + source/blender/modifiers/intern/MOD_none.c | 1 + source/blender/modifiers/intern/MOD_particleinstance.c | 1 + source/blender/modifiers/intern/MOD_particlesystem.c | 1 + source/blender/modifiers/intern/MOD_screw.c | 1 + source/blender/modifiers/intern/MOD_shapekey.c | 3 ++- source/blender/modifiers/intern/MOD_shrinkwrap.c | 1 + source/blender/modifiers/intern/MOD_simpledeform.c | 1 + source/blender/modifiers/intern/MOD_smoke.c | 1 + source/blender/modifiers/intern/MOD_smooth.c | 1 + source/blender/modifiers/intern/MOD_softbody.c | 1 + source/blender/modifiers/intern/MOD_solidify.c | 3 ++- source/blender/modifiers/intern/MOD_subsurf.c | 2 ++ source/blender/modifiers/intern/MOD_surface.c | 1 + source/blender/modifiers/intern/MOD_uvproject.c | 1 + source/blender/modifiers/intern/MOD_warp.c | 6 ++++++ source/blender/modifiers/intern/MOD_wave.c | 7 +++++++ 38 files changed, 84 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index 648e67cad8a..28950e4b2eb 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -101,6 +101,7 @@ typedef enum { typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin); typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin); +typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname); typedef struct ModifierTypeInfo { /* The user visible name for this modifier */ @@ -284,6 +285,16 @@ typedef struct ModifierTypeInfo { */ void (*foreachIDLink)(struct ModifierData *md, struct Object *ob, IDWalkFunc walk, void *userData); + + /* Should call the given walk function for each texture that the + * modifier data stores. This is used for finding all textures in + * the context for the UI. + * + * This function is optional. If it is not present, it will be + * assumed the modifier has no textures. + */ + void (*foreachTexLink)(struct ModifierData *md, struct Object *ob, + TexWalkFunc walk, void *userData); } ModifierTypeInfo; ModifierTypeInfo *modifierType_getInfo (ModifierType type); @@ -315,6 +326,10 @@ void modifiers_foreachObjectLink(struct Object *ob, void modifiers_foreachIDLink(struct Object *ob, IDWalkFunc walk, void *userData); +void modifiers_foreachTexLink(struct Object *ob, + TexWalkFunc walk, + void *userData); + struct ModifierData *modifiers_findByType(struct Object *ob, ModifierType type); struct ModifierData *modifiers_findByName(struct Object *ob, const char *name); void modifiers_clearErrors(struct Object *ob); diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 51f1cd61e7c..fe26c0ccd2d 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -195,6 +195,18 @@ void modifiers_foreachIDLink(Object *ob, IDWalkFunc walk, void *userData) } } +void modifiers_foreachTexLink(Object *ob, TexWalkFunc walk, void *userData) +{ + ModifierData *md = ob->modifiers.first; + + for (; md; md=md->next) { + ModifierTypeInfo *mti = modifierType_getInfo(md->type); + + if(mti->foreachTexLink) + mti->foreachTexLink(md, ob, walk, userData); + } +} + void modifier_copyData(ModifierData *md, ModifierData *target) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c index a0ee047e319..0b46d950950 100644 --- a/source/blender/modifiers/intern/MOD_armature.c +++ b/source/blender/modifiers/intern/MOD_armature.c @@ -213,4 +213,5 @@ ModifierTypeInfo modifierType_Armature = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c index 90954fef1c7..c7fa75478f0 100644 --- a/source/blender/modifiers/intern/MOD_array.c +++ b/source/blender/modifiers/intern/MOD_array.c @@ -826,4 +826,5 @@ ModifierTypeInfo modifierType_Array = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c index 323ed71dd74..277f404f64d 100644 --- a/source/blender/modifiers/intern/MOD_bevel.c +++ b/source/blender/modifiers/intern/MOD_bevel.c @@ -150,4 +150,5 @@ ModifierTypeInfo modifierType_Bevel = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index 4b4d0124aae..761f8dd0add 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -197,4 +197,5 @@ ModifierTypeInfo modifierType_Boolean = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c index e293be5886d..1c56d81a798 100644 --- a/source/blender/modifiers/intern/MOD_build.c +++ b/source/blender/modifiers/intern/MOD_build.c @@ -299,5 +299,6 @@ ModifierTypeInfo modifierType_Build = { /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c index 14b23ba4972..4061128b5ad 100644 --- a/source/blender/modifiers/intern/MOD_cast.c +++ b/source/blender/modifiers/intern/MOD_cast.c @@ -632,4 +632,5 @@ ModifierTypeInfo modifierType_Cast = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c index 1d2a6b2f788..f5493162322 100644 --- a/source/blender/modifiers/intern/MOD_cloth.c +++ b/source/blender/modifiers/intern/MOD_cloth.c @@ -229,4 +229,5 @@ ModifierTypeInfo modifierType_Cloth = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c index 83ba8a12163..f4a9ea62ead 100644 --- a/source/blender/modifiers/intern/MOD_collision.c +++ b/source/blender/modifiers/intern/MOD_collision.c @@ -267,4 +267,5 @@ ModifierTypeInfo modifierType_Collision = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c index ecd10250c00..d928c239eac 100644 --- a/source/blender/modifiers/intern/MOD_curve.c +++ b/source/blender/modifiers/intern/MOD_curve.c @@ -162,4 +162,5 @@ ModifierTypeInfo modifierType_Curve = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c index ba9dbfc31ad..e3c39752bd1 100644 --- a/source/blender/modifiers/intern/MOD_decimate.c +++ b/source/blender/modifiers/intern/MOD_decimate.c @@ -218,4 +218,5 @@ ModifierTypeInfo modifierType_Decimate = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index e0482e6b3fc..fb7aeacecc8 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -134,6 +134,12 @@ static void foreachIDLink(ModifierData *md, Object *ob, foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); } +static void foreachTexLink(ModifierData *md, Object *ob, + TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static int isDisabled(ModifierData *md, int UNUSED(useRenderParams)) { DisplaceModifierData *dmd = (DisplaceModifierData*) md; @@ -283,4 +289,5 @@ ModifierTypeInfo modifierType_Displace = { /* dependsOnNormals */ dependsOnNormals, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c index 8d0aea41b5c..db491742265 100644 --- a/source/blender/modifiers/intern/MOD_edgesplit.c +++ b/source/blender/modifiers/intern/MOD_edgesplit.c @@ -1311,4 +1311,5 @@ ModifierTypeInfo modifierType_EdgeSplit = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index 5da2464ef89..3d01661bc79 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -1037,4 +1037,5 @@ ModifierTypeInfo modifierType_Explode = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_fluidsim.c b/source/blender/modifiers/intern/MOD_fluidsim.c index 354dc33ffe0..cce288b4ad5 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim.c +++ b/source/blender/modifiers/intern/MOD_fluidsim.c @@ -162,4 +162,5 @@ ModifierTypeInfo modifierType_Fluidsim = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c index ea8d602dd7a..785abc7d4d1 100644 --- a/source/blender/modifiers/intern/MOD_hook.c +++ b/source/blender/modifiers/intern/MOD_hook.c @@ -289,4 +289,5 @@ ModifierTypeInfo modifierType_Hook = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c index 694f8fb3e52..31c17fb7376 100644 --- a/source/blender/modifiers/intern/MOD_lattice.c +++ b/source/blender/modifiers/intern/MOD_lattice.c @@ -156,4 +156,5 @@ ModifierTypeInfo modifierType_Lattice = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c index 94442d96367..b7cdac9e246 100644 --- a/source/blender/modifiers/intern/MOD_mask.c +++ b/source/blender/modifiers/intern/MOD_mask.c @@ -407,4 +407,5 @@ ModifierTypeInfo modifierType_Mask = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index 3903f2602e4..8a0e64e7ee4 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -463,4 +463,5 @@ ModifierTypeInfo modifierType_MeshDeform = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index b1c765e5c9b..7cde87b20d9 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -363,4 +363,5 @@ ModifierTypeInfo modifierType_Mirror = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c index 134574ae6c4..48b1112cad2 100644 --- a/source/blender/modifiers/intern/MOD_multires.c +++ b/source/blender/modifiers/intern/MOD_multires.c @@ -131,4 +131,5 @@ ModifierTypeInfo modifierType_Multires = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_none.c b/source/blender/modifiers/intern/MOD_none.c index 48c5b9a4c08..8fed2150a75 100644 --- a/source/blender/modifiers/intern/MOD_none.c +++ b/source/blender/modifiers/intern/MOD_none.c @@ -77,4 +77,5 @@ ModifierTypeInfo modifierType_None = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c index 46d53e0db15..b0b43e018f7 100644 --- a/source/blender/modifiers/intern/MOD_particleinstance.c +++ b/source/blender/modifiers/intern/MOD_particleinstance.c @@ -350,4 +350,5 @@ ModifierTypeInfo modifierType_ParticleInstance = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c index 533bfd203b5..5635ba33d80 100644 --- a/source/blender/modifiers/intern/MOD_particlesystem.c +++ b/source/blender/modifiers/intern/MOD_particlesystem.c @@ -242,4 +242,5 @@ ModifierTypeInfo modifierType_ParticleSystem = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index 17e350482f0..c5fdf465a0a 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -903,4 +903,5 @@ ModifierTypeInfo modifierType_Screw = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_shapekey.c b/source/blender/modifiers/intern/MOD_shapekey.c index 94d23de6573..6e55466c1e4 100644 --- a/source/blender/modifiers/intern/MOD_shapekey.c +++ b/source/blender/modifiers/intern/MOD_shapekey.c @@ -148,5 +148,6 @@ ModifierTypeInfo modifierType_ShapeKey = { /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index e1fc4bc969f..ba25df19b3e 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -186,4 +186,5 @@ ModifierTypeInfo modifierType_Shrinkwrap = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c index 5efd6cd28ec..b2e3c9532b6 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.c +++ b/source/blender/modifiers/intern/MOD_simpledeform.c @@ -385,4 +385,5 @@ ModifierTypeInfo modifierType_SimpleDeform = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c index b6203bb3c1d..2e156d82ec6 100644 --- a/source/blender/modifiers/intern/MOD_smoke.c +++ b/source/blender/modifiers/intern/MOD_smoke.c @@ -189,4 +189,5 @@ ModifierTypeInfo modifierType_Smoke = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ NULL }; diff --git a/source/blender/modifiers/intern/MOD_smooth.c b/source/blender/modifiers/intern/MOD_smooth.c index 28a31b84ea5..16898a80b53 100644 --- a/source/blender/modifiers/intern/MOD_smooth.c +++ b/source/blender/modifiers/intern/MOD_smooth.c @@ -270,4 +270,5 @@ ModifierTypeInfo modifierType_Smooth = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_softbody.c b/source/blender/modifiers/intern/MOD_softbody.c index 25996286735..c475328676b 100644 --- a/source/blender/modifiers/intern/MOD_softbody.c +++ b/source/blender/modifiers/intern/MOD_softbody.c @@ -87,4 +87,5 @@ ModifierTypeInfo modifierType_Softbody = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 390a780e9e6..0b1fac06e14 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -689,5 +689,6 @@ ModifierTypeInfo modifierType_Solidify = { /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index f780721ca07..6c825b213b8 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -152,4 +152,6 @@ ModifierTypeInfo modifierType_Subsurf = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; + diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c index 382358b179e..e30b7f2392d 100644 --- a/source/blender/modifiers/intern/MOD_surface.c +++ b/source/blender/modifiers/intern/MOD_surface.c @@ -192,4 +192,5 @@ ModifierTypeInfo modifierType_Surface = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c index 922ae8c1e92..912c14adfdd 100644 --- a/source/blender/modifiers/intern/MOD_uvproject.c +++ b/source/blender/modifiers/intern/MOD_uvproject.c @@ -434,4 +434,5 @@ ModifierTypeInfo modifierType_UVProject = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c index 2c77b486263..c1c3604d598 100644 --- a/source/blender/modifiers/intern/MOD_warp.c +++ b/source/blender/modifiers/intern/MOD_warp.c @@ -140,6 +140,11 @@ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *u walk(userData, ob, (ID **)&wmd->map_object); } +static void foreachTexLink(ModifierData *md, Object *ob, TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static void updateDepgraph(ModifierData *md, DagForest *forest, struct Scene *UNUSED(scene), Object *UNUSED(ob), DagNode *obNode) { @@ -364,4 +369,5 @@ ModifierTypeInfo modifierType_Warp = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c index ca8161fe364..4b5769ff603 100644 --- a/source/blender/modifiers/intern/MOD_wave.c +++ b/source/blender/modifiers/intern/MOD_wave.c @@ -126,6 +126,12 @@ static void foreachIDLink(ModifierData *md, Object *ob, foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); } +static void foreachTexLink(ModifierData *md, Object *ob, + TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static void updateDepgraph(ModifierData *md, DagForest *forest, Scene *UNUSED(scene), Object *UNUSED(ob), @@ -466,4 +472,5 @@ ModifierTypeInfo modifierType_Wave = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; -- cgit v1.2.3 From ceb9dfbdacb15829bdd82202afdc64a33a9c3c68 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:13:55 +0000 Subject: Code cleanup: remove seam drawing in face select mode, was left over from when seams were edited there, now only needed in edit mode. --- source/blender/editors/space_view3d/drawmesh.c | 141 ++++++---------------- source/blender/editors/space_view3d/view3d_draw.c | 1 + 2 files changed, 41 insertions(+), 101 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index f070bae4e54..71c85483244 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -29,7 +29,6 @@ * \ingroup spview3d */ - #include #include @@ -70,24 +69,21 @@ #include "view3d_intern.h" // own include -/***/ +/**************************** Face Select Mode *******************************/ - /* Flags for marked edges */ +/* Flags for marked edges */ enum { eEdge_Visible = (1<<0), eEdge_Select = (1<<1), }; - /* Creates a hash of edges to flags indicating - * adjacent tface select/active/etc flags. - */ +/* Creates a hash of edges to flags indicating selected/visible */ static void get_marked_edge_info__orFlags(EdgeHash *eh, int v0, int v1, int flags) { int *flags_p; - if (!BLI_edgehash_haskey(eh, v0, v1)) { + if(!BLI_edgehash_haskey(eh, v0, v1)) BLI_edgehash_insert(eh, v0, v1, NULL); - } flags_p = (int*) BLI_edgehash_lookup_p(eh, v0, v1); *flags_p |= flags; @@ -96,26 +92,25 @@ static void get_marked_edge_info__orFlags(EdgeHash *eh, int v0, int v1, int flag static EdgeHash *get_tface_mesh_marked_edge_info(Mesh *me) { EdgeHash *eh = BLI_edgehash_new(); - int i; MFace *mf; + int i; - for (i=0; itotface; i++) { + for(i=0; itotface; i++) { mf = &me->mface[i]; - if (mf->v3) { - if (!(mf->flag&ME_HIDE)) { - unsigned int flags = eEdge_Visible; - if (mf->flag&ME_FACE_SEL) flags |= eEdge_Select; - - get_marked_edge_info__orFlags(eh, mf->v1, mf->v2, flags); - get_marked_edge_info__orFlags(eh, mf->v2, mf->v3, flags); - if (mf->v4) { - get_marked_edge_info__orFlags(eh, mf->v3, mf->v4, flags); - get_marked_edge_info__orFlags(eh, mf->v4, mf->v1, flags); - } else { - get_marked_edge_info__orFlags(eh, mf->v3, mf->v1, flags); - } + if(!(mf->flag & ME_HIDE)) { + unsigned int flags = eEdge_Visible; + if(mf->flag & ME_FACE_SEL) flags |= eEdge_Select; + + get_marked_edge_info__orFlags(eh, mf->v1, mf->v2, flags); + get_marked_edge_info__orFlags(eh, mf->v2, mf->v3, flags); + + if(mf->v4) { + get_marked_edge_info__orFlags(eh, mf->v3, mf->v4, flags); + get_marked_edge_info__orFlags(eh, mf->v4, mf->v1, flags); } + else + get_marked_edge_info__orFlags(eh, mf->v3, mf->v1, flags); } } @@ -123,45 +118,24 @@ static EdgeHash *get_tface_mesh_marked_edge_info(Mesh *me) } -static int draw_tfaces3D__setHiddenOpts(void *userData, int index) +static int draw_mesh_face_select__setHiddenOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; Mesh *me= data->me; MEdge *med = &me->medge[index]; uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - if((me->drawflag & ME_DRAWSEAMS) && (med->flag&ME_SEAM)) { - return 0; - } else if(me->drawflag & ME_DRAWEDGES){ - if (me->drawflag & ME_HIDDENEDGES) { + if(me->drawflag & ME_DRAWEDGES) { + if(me->drawflag & ME_HIDDENEDGES) return 1; - } else { - return (flags & eEdge_Visible); - } - } else { - return (flags & eEdge_Select); - } -} - -static int draw_tfaces3D__setSeamOpts(void *userData, int index) -{ - struct { Mesh *me; EdgeHash *eh; } *data = userData; - Mesh *me= data->me; - MEdge *med = &data->me->medge[index]; - uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - - if (med->flag & ME_SEAM) { - if (me->drawflag & ME_HIDDENEDGES) { - return 1; - } else { + else return (flags & eEdge_Visible); - } - } else { - return 0; } + else + return (flags & eEdge_Select); } -static int draw_tfaces3D__setSelectOpts(void *userData, int index) +static int draw_mesh_face_select__setSelectOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; @@ -170,45 +144,19 @@ static int draw_tfaces3D__setSelectOpts(void *userData, int index) return flags & eEdge_Select; } -#if 0 -static int draw_tfaces3D__setActiveOpts(void *userData, int index) -{ - struct { Mesh *me; EdgeHash *eh; } *data = userData; - MEdge *med = &data->me->medge[index]; - uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - - if (flags & eEdge_Select) { - return 1; - } else { - return 0; - } -} - -static int draw_tfaces3D__drawFaceOpts(void *userData, int index) -{ - Mesh *me = (Mesh*)userData; - - MFace *mface = &me->mface[index]; - if (!(mface->flag&ME_HIDE) && (mface->flag&ME_FACE_SEL)) - return 2; /* Don't set color */ - else - return 0; -} -#endif - /* draws unselected */ -static int draw_tfaces3D__drawFaceOptsInv(void *userData, int index) +static int draw_mesh_face_select__drawFaceOptsInv(void *userData, int index) { Mesh *me = (Mesh*)userData; MFace *mface = &me->mface[index]; - if (!(mface->flag&ME_HIDE) && !(mface->flag&ME_FACE_SEL)) + if(!(mface->flag&ME_HIDE) && !(mface->flag&ME_FACE_SEL)) return 2; /* Don't set color */ else return 0; } -static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short draw_seams) +static void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm) { struct { Mesh *me; EdgeHash *eh; } data; @@ -222,30 +170,16 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d /* Draw (Hidden) Edges */ setlinestyle(1); UI_ThemeColor(TH_EDGE_FACESEL); - dm->drawMappedEdges(dm, draw_tfaces3D__setHiddenOpts, &data); + dm->drawMappedEdges(dm, draw_mesh_face_select__setHiddenOpts, &data); setlinestyle(0); - /* Draw Seams */ - if(draw_seams && me->drawflag & ME_DRAWSEAMS) { - UI_ThemeColor(TH_EDGE_SEAM); - glLineWidth(2); - dm->drawMappedEdges(dm, draw_tfaces3D__setSeamOpts, &data); - glLineWidth(1); - } - /* Draw Selected Faces */ if(me->drawflag & ME_DRAWFACES) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -#if 0 - UI_ThemeColor4(TH_FACE_SELECT); - - dm->drawMappedFacesTex(dm, draw_tfaces3D__drawFaceOpts, (void*)me); -#else /* dull unselected faces so as not to get in the way of seeing color */ glColor4ub(96, 96, 96, 64); - dm->drawMappedFacesTex(dm, draw_tfaces3D__drawFaceOptsInv, (void*)me); -#endif + dm->drawMappedFacesTex(dm, draw_mesh_face_select__drawFaceOptsInv, (void*)me); glDisable(GL_BLEND); } @@ -255,7 +189,7 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d /* Draw Stippled Outline for selected faces */ glColor3ub(255, 255, 255); setlinestyle(1); - dm->drawMappedEdges(dm, draw_tfaces3D__setSelectOpts, &data); + dm->drawMappedEdges(dm, draw_mesh_face_select__setSelectOpts, &data); setlinestyle(0); bglPolygonOffset(rv3d->dist, 0.0); // resets correctly now, even after calling accumulated offsets @@ -263,6 +197,8 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d BLI_edgehash_free(data.eh, NULL); } +/***************************** Texture Drawing ******************************/ + static Material *give_current_material_or_def(Object *ob, int matnr) { extern Material defmaterial; // render module abuse... @@ -668,18 +604,21 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o if(ob->mode & OB_MODE_EDIT) { dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh); - } else if(faceselect) { + } + else if(faceselect) { if(ob->mode & OB_MODE_WEIGHT_PAINT) dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1, GPU_enable_material); else dm->drawMappedFacesTex(dm, me->mface ? draw_tface_mapped__set_draw : NULL, me); } else { - if( GPU_buffer_legacy(dm) ) + if(GPU_buffer_legacy(dm)) { dm->drawFacesTex(dm, draw_tface__set_draw_legacy); + } else { - if( !CustomData_has_layer(&dm->faceData,CD_TEXTURE_MCOL) ) + if(!CustomData_has_layer(&dm->faceData,CD_TEXTURE_MCOL)) add_tface_color_layer(dm); + dm->drawFacesTex(dm, draw_tface__set_draw); } } @@ -692,7 +631,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o /* draw edges and selected faces over textured mesh */ if(!(ob == scene->obedit) && faceselect) - draw_tfaces3D(rv3d, me, dm, ob->mode & OB_MODE_WEIGHT_PAINT); + draw_mesh_face_select(rv3d, me, dm); /* reset from negative scale correction */ glFrontFace(GL_CCW); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 6e3f6549ba3..7cf95261211 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2769,3 +2769,4 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) v3d->flag |= V3D_INVALID_BACKBUF; } + -- cgit v1.2.3 From a7de5fc19153b36782e2bd4348e43225ba2eb22c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:17:28 +0000 Subject: Code cleanup: small glsl mesh drawing code changes, getting rid of an ugly macro. --- source/blender/blenkernel/BKE_DerivedMesh.h | 4 +- source/blender/blenkernel/intern/DerivedMesh.c | 3 + source/blender/blenkernel/intern/cdderivedmesh.c | 77 +++++++++++++++--------- source/blender/gpu/GPU_extensions.h | 1 + 4 files changed, 55 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 55ade5fe5d9..46b533f33fd 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -526,7 +526,7 @@ void weight_to_rgb(float input, float *fr, float *fg, float *fb); typedef struct DMVertexAttribs { struct { struct MTFace *array; - int emOffset, glIndex; + int emOffset, glIndex, glTexco; } tface[MAX_MTFACE]; struct { @@ -541,7 +541,7 @@ typedef struct DMVertexAttribs { struct { float (*array)[3]; - int emOffset, glIndex; + int emOffset, glIndex, glTexco; } orco; int tottface, totmcol, tottang, totorco; diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 62b8830de20..c84bcaabbd3 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1050,6 +1050,7 @@ static void emDM_drawMappedFacesGLSL(DerivedMesh *dm, glEnd(); } } +#undef PASSATTRIB } static void emDM_drawFacesGLSL(DerivedMesh *dm, @@ -2767,6 +2768,7 @@ void DM_vertex_attributes_from_gpu(DerivedMesh *dm, GPUVertexAttribs *gattribs, attribs->tface[a].array = tfdata->layers[layer].data; attribs->tface[a].emOffset = tfdata->layers[layer].offset; attribs->tface[a].glIndex = gattribs->layer[b].glindex; + attribs->tface[a].glTexco = gattribs->layer[b].gltexco; } } else if(gattribs->layer[b].type == CD_MCOL) { @@ -2807,6 +2809,7 @@ void DM_vertex_attributes_from_gpu(DerivedMesh *dm, GPUVertexAttribs *gattribs, attribs->orco.array = vdata->layers[layer].data; attribs->orco.emOffset = vdata->layers[layer].offset; attribs->orco.glIndex = gattribs->layer[b].glindex; + attribs->orco.glTexco = gattribs->layer[b].gltexco; } } } diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 662c872b7f1..12fb11c68b3 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -993,6 +993,50 @@ static void cdDM_drawMappedFacesTex(DerivedMesh *dm, int (*setDrawOptions)(void cdDM_drawFacesTex_common(dm, NULL, setDrawOptions, userData); } +static void cddm_draw_attrib_vertex(DMVertexAttribs *attribs, MVert *mvert, int a, int index, int vert, int smoothnormal) +{ + int b; + + /* orco texture coordinates */ + if(attribs->totorco) { + if(attribs->orco.glTexco) + glTexCoord3fv(attribs->orco.array[index]); + else + glVertexAttrib3fvARB(attribs->orco.glIndex, attribs->orco.array[index]); + } + + /* uv texture coordinates */ + for(b = 0; b < attribs->tottface; b++) { + MTFace *tf = &attribs->tface[b].array[a]; + + if(attribs->tface[b].glTexco) + glTexCoord2fv(tf->uv[vert]); + else + glVertexAttrib2fvARB(attribs->tface[b].glIndex, tf->uv[vert]); + } + + /* vertex colors */ + for(b = 0; b < attribs->totmcol; b++) { + MCol *cp = &attribs->mcol[b].array[a*4 + vert]; + GLubyte col[4]; + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; + glVertexAttrib4ubvARB(attribs->mcol[b].glIndex, col); + } + + /* tangent for normal mapping */ + if(attribs->tottang) { + float *tang = attribs->tang.array[a*4 + vert]; + glVertexAttrib4fvARB(attribs->tang.glIndex, tang); + } + + /* vertex normal */ + if(smoothnormal) + glNormal3sv(mvert[index].no); + + /* vertex coordinate */ + glVertex3fv(mvert[index].co); +} + static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *attribs), int (*setDrawOptions)(void *userData, int index), void *userData) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -1083,37 +1127,14 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo } } -#define PASSVERT(index, vert) { \ - if(attribs.totorco) \ - glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]); \ - for(b = 0; b < attribs.tottface; b++) { \ - MTFace *tf = &attribs.tface[b].array[a]; \ - glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]); \ - } \ - for(b = 0; b < attribs.totmcol; b++) { \ - MCol *cp = &attribs.mcol[b].array[a*4 + vert]; \ - GLubyte col[4]; \ - col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ - glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ - } \ - if(attribs.tottang) { \ - float *tang = attribs.tang.array[a*4 + vert]; \ - glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ - } \ - if(smoothnormal) \ - glNormal3sv(mvert[index].no); \ - glVertex3fv(mvert[index].co); \ - } + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v1, 0, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v2, 1, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v3, 2, smoothnormal); - PASSVERT(mface->v1, 0); - PASSVERT(mface->v2, 1); - PASSVERT(mface->v3, 2); if(mface->v4) - PASSVERT(mface->v4, 3) + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v4, 3, smoothnormal); else - PASSVERT(mface->v3, 2) - -#undef PASSVERT + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v3, 2, smoothnormal); } glEnd(); } diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h index 8bf923a5679..d0c7f9d494f 100644 --- a/source/blender/gpu/GPU_extensions.h +++ b/source/blender/gpu/GPU_extensions.h @@ -178,6 +178,7 @@ typedef struct GPUVertexAttribs { struct { int type; int glindex; + int gltexco; char name[32]; } layer[GPU_MAX_ATTRIB]; -- cgit v1.2.3 From 0cb606a9bc76488031559e06717d576d5cc66dce Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:24:17 +0000 Subject: Code cleanup: fix wrong doxygen file name. --- source/blender/editors/render/render_update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 98f42fe97c1..b6fb60ac4f7 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -24,7 +24,7 @@ * ***** END GPL LICENSE BLOCK ***** */ -/** \file blender/editors/render/render_shading.c +/** \file blender/editors/render/render_update.c * \ingroup edrend */ -- cgit v1.2.3 From a7dd2649406afec5cdd9267c136ca79c92c20fab Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:27:48 +0000 Subject: Nodes: make node set active function usable outside of node editor, and in doing so fix a missing updating when activating a node with multiple node editors open. --- source/blender/editors/include/ED_node.h | 6 ++- source/blender/editors/space_node/node_edit.c | 65 ++++++++++++++++--------- source/blender/editors/space_node/node_header.c | 4 +- source/blender/editors/space_node/node_intern.h | 4 +- source/blender/editors/space_node/node_select.c | 9 ++-- 5 files changed, 57 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index dfa457c22de..cc4dd6330fb 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -33,12 +33,14 @@ #ifndef ED_NODE_H #define ED_NODE_H +struct ID; +struct Main; struct Material; struct Scene; struct Tex; struct bContext; struct bNode; -struct ID; +struct bNodeTree; struct ScrArea; /* drawnode.c */ @@ -55,6 +57,8 @@ void ED_node_texture_default(struct Tex *tex); void ED_node_link_intersect_test(struct ScrArea *sa, int test); void ED_node_link_insert(struct ScrArea *sa); +void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node); + /* node ops.c */ void ED_operatormacros_node(void); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index c719f749582..984e944321e 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -479,72 +479,88 @@ static void snode_tag_changed(SpaceNode *snode, bNode *node) NodeTagIDChanged(snode->nodetree, gnode->id); } -void node_set_active(SpaceNode *snode, bNode *node) +static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup) { - nodeSetActive(snode->edittree, node); + bNode *node; + + if(ntree == lookup) + return 1; + + for(node=ntree->nodes.first; node; node=node->next) + if(node->type == NODE_GROUP && node->id) + if(has_nodetree((bNodeTree*)node->id, lookup)) + return 1; + + return 0; +} + +void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) +{ + nodeSetActive(ntree, node); if(node->type!=NODE_GROUP) { int was_output= (node->flag & NODE_DO_OUTPUT); /* tree specific activate calls */ - if(snode->treetype==NTREE_SHADER) { + if(ntree->type==NTREE_SHADER) { /* when we select a material, active texture is cleared, for buttons */ if(node->id && GS(node->id->name)==ID_MA) - nodeClearActiveID(snode->edittree, ID_TE); + nodeClearActiveID(ntree, ID_TE); if(node->type==SH_NODE_OUTPUT) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( tnode->type==SH_NODE_OUTPUT) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; if(was_output==0) - ED_node_changed_update(snode->id, node); + ED_node_generic_update(bmain, ntree, node); } WM_main_add_notifier(NC_MATERIAL|ND_NODES, node->id); } - else if(snode->treetype==NTREE_COMPOSIT) { - Scene *scene= (Scene*)snode->id; - + else if(ntree->type==NTREE_COMPOSIT) { /* make active viewer, currently only 1 supported... */ if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; - if(was_output==0) { - snode_tag_changed(snode, node); - - ED_node_changed_update(snode->id, node); - } + if(was_output==0) + ED_node_generic_update(bmain, ntree, node); /* addnode() doesnt link this yet... */ node->id= (ID *)BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); } else if(node->type==CMP_NODE_R_LAYERS) { - if(node->id==NULL || node->id==(ID *)scene) { - scene->r.actlay= node->custom1; + Scene *scene; + + for(scene=bmain->scene.first; scene; scene=scene->id.next) { + if(scene->nodetree && scene->use_nodes && has_nodetree(scene->nodetree, ntree)) { + if(node->id==NULL || node->id==(ID *)scene) { + scene->r.actlay= node->custom1; + } + } } } else if(node->type==CMP_NODE_COMPOSITE) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( tnode->type==CMP_NODE_COMPOSITE) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; - ED_node_changed_update(snode->id, node); + ED_node_generic_update(bmain, ntree, node); } } - else if(snode->treetype==NTREE_TEXTURE) { + else if(ntree->type==NTREE_TEXTURE) { // XXX #if 0 if(node->id) @@ -1940,7 +1956,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) } /* can be called from menus too, but they should do own undopush and redraws */ -bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy) +bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, int type, float locx, float locy) { bNode *node= NULL, *gnode; @@ -1955,7 +1971,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float return NULL; } else { - bNodeTree *ngroup= BLI_findlink(&G.main->nodetree, type-NODE_GROUP_MENU); + bNodeTree *ngroup= BLI_findlink(&bmain->nodetree, type-NODE_GROUP_MENU); if(ngroup) node= nodeAddNodeType(snode->edittree, NODE_GROUP, ngroup, NULL); } @@ -1976,7 +1992,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float } node_tree_verify_groups(snode->nodetree); - node_set_active(snode, node); + ED_node_set_active(bmain, snode->edittree, node); if(snode->nodetree->type==NTREE_COMPOSIT) { if(ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE)) @@ -3205,6 +3221,7 @@ void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot) static int node_add_file_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); SpaceNode *snode= CTX_wm_space_node(C); bNode *node; @@ -3245,7 +3262,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op) ED_preview_kill_jobs(C); - node = node_add_node(snode, scene, ntype, snode->mx, snode->my); + node = node_add_node(snode, bmain, scene, ntype, snode->mx, snode->my); if (!node) { BKE_report(op->reports, RPT_WARNING, "Could not add an image node."); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 4f3991e8ff8..634e49dc515 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -64,6 +64,8 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) { + Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); SpaceNode *snode= CTX_wm_space_node(C); ScrArea *sa= CTX_wm_area(C); ARegion *ar; @@ -87,7 +89,7 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) else node->flag &= ~NODE_TEST; } - node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my); + node= node_add_node(snode, bmain, scene, event, snode->mx, snode->my); /* select previous selection before autoconnect */ for(node= snode->edittree->nodes.first; node; node= node->next) { diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index 9122235f33c..4cfde22b8a0 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -43,6 +43,7 @@ struct wmWindowManager; struct bNode; struct bNodeSocket; struct bNodeLink; +struct Main; /* temp data to pass on to modal */ typedef struct bNodeLinkDrag @@ -97,10 +98,9 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre void snode_notify(bContext *C, SpaceNode *snode); void snode_dag_update(bContext *C, SpaceNode *snode); bNode *next_node(bNodeTree *ntree); -bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy); +bNode *node_add_node(SpaceNode *snode, struct Main *bmain, Scene *scene, int type, float locx, float locy); void snode_set_context(SpaceNode *snode, Scene *scene); void snode_make_group_editable(SpaceNode *snode, bNode *gnode); -void node_set_active(SpaceNode *snode, bNode *node); void node_deselectall(SpaceNode *snode); int node_select_same_type(SpaceNode *snode); int node_select_same_type_np(SpaceNode *snode, int dir); diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c index 1abcaccc939..ca673277739 100644 --- a/source/blender/editors/space_node/node_select.c +++ b/source/blender/editors/space_node/node_select.c @@ -37,10 +37,12 @@ #include "DNA_scene_types.h" #include "BKE_context.h" +#include "BKE_main.h" #include "BLI_rect.h" #include "BLI_utildefines.h" +#include "ED_node.h" #include "ED_screen.h" #include "ED_types.h" @@ -70,7 +72,7 @@ static bNode *node_under_mouse(bNodeTree *ntree, int mx, int my) /* ****** Click Select ****** */ -static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2], short extend) +static bNode *node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const int mval[2], short extend) { bNode *node; float mx, my; @@ -92,7 +94,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2] else node->flag ^= SELECT; - node_set_active(snode, node); + ED_node_set_active(bmain, snode->edittree, node); } return node; @@ -100,6 +102,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2] static int node_select_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); SpaceNode *snode= CTX_wm_space_node(C); ARegion *ar= CTX_wm_region(C); int mval[2]; @@ -113,7 +116,7 @@ static int node_select_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); /* perform the select */ - node= node_mouse_select(snode, ar, mval, extend); + node= node_mouse_select(bmain, snode, ar, mval, extend); /* send notifiers */ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); -- cgit v1.2.3 From 83f0c6e56991f1312598b013a2972e3dc79d8e09 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 12 Aug 2011 20:38:29 +0000 Subject: Transform matrix Animation import fix. --- source/blender/collada/AnimationImporter.cpp | 54 +++++++++++++--------------- source/blender/collada/ArmatureImporter.cpp | 3 +- 2 files changed, 26 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 14d081c2c53..b0e636c2aa6 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -65,7 +65,6 @@ static const char *bc_get_joint_name(T *node) FCurve *AnimationImporter::create_fcurve(int array_index, const char *rna_path) { FCurve *fcu = (FCurve*)MEM_callocN(sizeof(FCurve), "FCurve"); - fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); fcu->rna_path = BLI_strdupn(rna_path, strlen(rna_path)); fcu->array_index = array_index; @@ -801,20 +800,11 @@ void AnimationImporter::apply_matrix_curves_to_bone( Object * ob, std::vectortotvert = frames.size(); } // Object *job = NULL; -#ifdef ARMATURE_TEST - FCurve *job_curves[10]; - job = get_joint_object(root, node, par_job); -#endif - if (frames.size() == 0) return; @@ -833,17 +823,11 @@ std::sort(frames.begin(), frames.end()); float matfra[4][4]; unit_m4(matfra); + + // calc object-space mat + evaluate_transform_at_frame(matfra, node, fra); - float m[4][4]; - - unit_m4(m); - dae_matrix_to_mat4(tm, m); - - float temp[4][4]; - copy_m4_m4(temp, mat); - mul_m4_m4m4(mat, m, temp); - // for joints, we need a special matrix if (is_joint) { // special matrix: iR * M * iR_dae * R @@ -865,8 +849,12 @@ std::sort(frames.begin(), frames.end()); } float rot[4], loc[3], scale[3]; - + mat4_to_quat(rot, mat); + for ( int i = 0 ; i < 4 ; i ++ ) + { + rot[i] = rot[i] * (180 / M_PI); + } copy_v3_v3(loc, mat[3]); mat4_to_size(scale, mat); @@ -979,6 +967,7 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , float irest_dae[4][4]; get_joint_rest_mat(irest_dae, root, node); apply_matrix_curves_to_bone(ob, animcurves, root , node, transform ,joint_path , true , bone_name ); + break; } else add_bone_fcurve( ob, node , fcu ); @@ -990,8 +979,8 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , if (is_rotation || is_matrix) { if (is_joint) { - bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - chan->rotmode = ROT_MODE_EUL; + /*bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_Quat;*/ } else { @@ -1534,10 +1523,12 @@ void AnimationImporter::evaluate_transform_at_frame(float mat[4][4], COLLADAFW:: float m[4][4]; unit_m4(m); + if ( type != COLLADAFW::Transformation::MATRIX ) + continue; std::string nodename = node->getName().size() ? node->getName() : node->getOriginalId(); if (!evaluate_animation(tm, m, fra, nodename.c_str())) { - switch (type) { + /*switch (type) { case COLLADAFW::Transformation::ROTATE: dae_rotate_to_mat4(tm, m); break; @@ -1552,7 +1543,9 @@ void AnimationImporter::evaluate_transform_at_frame(float mat[4][4], COLLADAFW:: break; default: fprintf(stderr, "unsupported transformation type %d\n", type); - } + }*/ + dae_matrix_to_mat4(tm, m); + } float temp[4][4]; @@ -1588,9 +1581,9 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float bool is_scale = (type == COLLADAFW::Transformation::SCALE); bool is_translate = (type == COLLADAFW::Transformation::TRANSLATE); - if (type == COLLADAFW::Transformation::SCALE) + if (is_scale) dae_scale_to_v3(tm, vec); - else if (type == COLLADAFW::Transformation::TRANSLATE) + else if (is_translate) dae_translate_to_v3(tm, vec); for (unsigned int j = 0; j < bindings.getCount(); j++) { @@ -1618,7 +1611,7 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float if (animclass == COLLADAFW::AnimationList::UNKNOWN_CLASS) { fprintf(stderr, "%s: UNKNOWN animation class\n", path); - continue; + //continue; } if (type == COLLADAFW::Transformation::ROTATE) { @@ -1858,11 +1851,12 @@ void AnimationImporter::add_bone_fcurve(Object *ob, COLLADAFW::Node *node, FCurv void AnimationImporter::add_bezt(FCurve *fcu, float fra, float value) { + //float fps = (float)FPS; BezTriple bez; memset(&bez, 0, sizeof(BezTriple)); - bez.vec[1][0] = fra; + bez.vec[1][0] = fra ; bez.vec[1][1] = value; - bez.ipo = U.ipo_new; /* use default interpolation mode here... */ + bez.ipo = BEZT_IPO_LIN ;/* use default interpolation mode here... */ bez.f1 = bez.f2 = bez.f3 = SELECT; bez.h1 = bez.h2 = HD_AUTO; insert_bezt_fcurve(fcu, &bez, 0); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 9489ddd1525..7a3c6a0644f 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -276,7 +276,8 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: etit = uid_tags_map.find(node->getUniqueId().toAscii()); if(etit != uid_tags_map.end()) et = etit->second; - + else return; + float x,y,z; et->setData("tip_x",&x); et->setData("tip_y",&y); -- cgit v1.2.3 From c5ef9b62c1f7f407c42bb48fe3362fa6cf3cf101 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Fri, 12 Aug 2011 20:53:29 +0000 Subject: BGE Animations: Adding an option to let users choose whether or not to lock animation updates to the framerate. If this option is enabled, animations are only updated at the same speed as the animation framerate. This can give a significant speed up in performance, but at the cost of smoothness in animations. I'm defaulting this behavior to off for now, which is the behavior seen in trunk. --- source/blender/makesdna/DNA_scene_types.h | 2 ++ source/blender/makesrna/intern/rna_scene.c | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 542aea00b00..be2a78ac774 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -479,6 +479,7 @@ typedef struct GameData { #define WOPHY_BULLET 5 /* GameData.flag */ +#define GAME_RESTRICT_ANIM_UPDATES (1 << 0) #define GAME_ENABLE_ALL_FRAMES (1 << 1) #define GAME_SHOW_DEBUG_PROPS (1 << 2) #define GAME_SHOW_FRAMERATE (1 << 3) @@ -494,6 +495,7 @@ typedef struct GameData { #define GAME_ENABLE_ANIMATION_RECORD (1 << 13) #define GAME_SHOW_MOUSE (1 << 14) #define GAME_GLSL_NO_COLOR_MANAGEMENT (1 << 15) +/* Note: GameData.flag is a short (max 16 flags). To add more flags, GameData.flag needs to be an int */ /* GameData.matmode */ #define GAME_MAT_TEXFACE 0 diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 7313a39e5ec..7f8aeb65209 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1919,6 +1919,10 @@ static void rna_def_scene_game_data(BlenderRNA *brna) prop= RNA_def_property(srna, "use_auto_start", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_GameSettings_auto_start_get", "rna_GameSettings_auto_start_set"); RNA_def_property_ui_text(prop, "Auto Start", "Automatically start game at load time"); + + prop= RNA_def_property(srna, "restrict_animation_updates", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GAME_RESTRICT_ANIM_UPDATES); + RNA_def_property_ui_text(prop, "Restrict Animation Updates", "Restrict the number of animation updates to the animation FPS. This is better for performance, but can cause issues with smooth playback."); /* materials */ prop= RNA_def_property(srna, "material_mode", PROP_ENUM, PROP_NONE); -- cgit v1.2.3 From 7c7fac21740752edf11b9b602a520d7d2fb4c785 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 13 Aug 2011 09:22:14 +0000 Subject: index_to_framebuffer (used for mesh selection) was being called 3x times per call to WM_set_framebuffer_index_color(), because of the cpack define. --- source/blender/windowmanager/intern/wm_subwindow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c index a87001fb1b4..8ea1f2fdd0a 100644 --- a/source/blender/windowmanager/intern/wm_subwindow.c +++ b/source/blender/windowmanager/intern/wm_subwindow.c @@ -378,7 +378,8 @@ unsigned int index_to_framebuffer(int index) void WM_set_framebuffer_index_color(int index) { - cpack(index_to_framebuffer(index)); + const int col= index_to_framebuffer(index); + cpack(col); } int WM_framebuffer_to_index(unsigned int col) -- cgit v1.2.3 From 7866b6329288213aaa1a259972b82d5754621f1f Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 13 Aug 2011 13:45:03 +0000 Subject: 2.6 Release Cycle begin: *BLENDER_VERSION_CYCLE set to alpha Idea is to set it to alpha for the first 3 weeks (B-Con1) Beta for B-Con 2 and 3 RC for B-Con 4 Release for B-Con 5 --- source/blender/blenkernel/BKE_blender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 88dad03db1e..162b0de1d5a 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -53,7 +53,7 @@ extern "C" { /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE release +#define BLENDER_VERSION_CYCLE alpha struct ListBase; struct MemFile; -- cgit v1.2.3 From c83417b2e2b768f2d10e503b804bb423442f1884 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 13 Aug 2011 14:24:53 +0000 Subject: running bpy.ops.render.render('INVOKE_DEFAULT') would crash blender. --- source/blender/editors/space_console/console_ops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index 3effea296d7..4707baa279b 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -675,7 +675,12 @@ static int scrollback_append_exec(bContext *C, wmOperator *op) console_scrollback_limit(sc); - console_textview_update_rect(sc, ar); + /* 'ar' can be null depending on the operator that runs + * rendering with invoke default for eg causes this */ + if(ar) { + console_textview_update_rect(sc, ar); + } + ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; -- cgit v1.2.3 From c106f7bee96b8b420f0c6a28cd6866305eed39f3 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 13 Aug 2011 16:20:28 +0000 Subject: Light blender profile param sid addressing --- source/blender/collada/LightExporter.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 3258b63b0c3..31ade5604a7 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -141,18 +141,18 @@ bool LightsExporter::exportBlenderProfile(COLLADASW::Light &cla, Lamp *la) cla.addExtraTechniqueParameter("blender", "type", la->type); cla.addExtraTechniqueParameter("blender", "flag", la->flag); cla.addExtraTechniqueParameter("blender", "mode", la->mode); - cla.addExtraTechniqueParameter("blender", "gamma", la->k); + cla.addExtraTechniqueParameter("blender", "gamma", la->k, "blender_gamma"); cla.addExtraTechniqueParameter("blender", "red", la->r); cla.addExtraTechniqueParameter("blender", "green", la->g); cla.addExtraTechniqueParameter("blender", "blue", la->b); - cla.addExtraTechniqueParameter("blender", "shadow_r", la->shdwr); - cla.addExtraTechniqueParameter("blender", "shadow_g", la->shdwg); - cla.addExtraTechniqueParameter("blender", "shadow_b", la->shdwb); - cla.addExtraTechniqueParameter("blender", "energy", la->energy); - cla.addExtraTechniqueParameter("blender", "dist", la->dist); + cla.addExtraTechniqueParameter("blender", "shadow_r", la->shdwr, "blender_shadow_r"); + cla.addExtraTechniqueParameter("blender", "shadow_g", la->shdwg, "blender_shadow_g"); + cla.addExtraTechniqueParameter("blender", "shadow_b", la->shdwb, "blender_shadow_b"); + cla.addExtraTechniqueParameter("blender", "energy", la->energy, "blender_energy"); + cla.addExtraTechniqueParameter("blender", "dist", la->dist, "blender_dist"); cla.addExtraTechniqueParameter("blender", "spotsize", la->spotsize); cla.addExtraTechniqueParameter("blender", "spotblend", la->spotblend); - cla.addExtraTechniqueParameter("blender", "halo_intensity", la->haint); + cla.addExtraTechniqueParameter("blender", "halo_intensity", la->haint, "blnder_halo_intensity"); cla.addExtraTechniqueParameter("blender", "att1", la->att1); cla.addExtraTechniqueParameter("blender", "att2", la->att2); // \todo figure out how we can have falloff curve supported here -- cgit v1.2.3 From a4b6cfd87229a3d838544f9474e257ab4aecd371 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 13 Aug 2011 16:21:41 +0000 Subject: light parameter export expansion. --- source/blender/collada/AnimationExporter.cpp | 104 +++++++++++++++++---------- source/blender/collada/AnimationExporter.h | 1 + 2 files changed, 69 insertions(+), 36 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 0f7edc9ad7d..ecaa05e3497 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -85,9 +85,8 @@ void AnimationExporter::exportAnimations(Scene *sce) while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "color")) || - (!strcmp(transformName, "spot_size"))|| - (!strcmp(transformName, "spot_blend"))) + if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))|| + (!strcmp(transformName, "distance")) ) dae_animation(ob , fcu, transformName, true ); fcu = fcu->next; } @@ -314,7 +313,7 @@ void AnimationExporter::exportAnimations(Scene *sce) { if ( ob->type == OB_LAMP ) target = get_light_id(ob) - + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + + "/" + get_light_param_sid(fcu->rna_path, -1, axis_name, true); if ( ob->type == OB_CAMERA ) target = get_camera_id(ob) @@ -986,6 +985,54 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } + std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) + { + std::string tm_name; + bool is_rotation =false; + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (!strcmp(name, "color")) + tm_type = 1; + else if (!strcmp(name, "spot_size")) + tm_type = 2; + else if (!strcmp(name, "spot_blend")) + tm_type = 3; + else if (!strcmp(name, "distance")) + tm_type = 4; + else + tm_type = -1; + } + + switch (tm_type) { + case 1: + tm_name = "color"; + break; + case 2: + tm_name = "fall_off_angle"; + break; + case 3: + tm_name = "fall_off_exponent"; + break; + case 4: + tm_name = "blender_dist"; + break; + + default: + tm_name = ""; + break; + } + + if (tm_name.size()) { + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; + } + + return std::string(""); + } // for rotation, axis name is always appended and the value of append_axis is ignored std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { @@ -1003,30 +1050,24 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 2; else if (!strcmp(name, "location")) tm_type = 3; - else if (!strcmp(name, "color")) - tm_type = 4; - else if (!strcmp(name, "spot_size")) - tm_type = 5; - else if (!strcmp(name, "spot_blend")) - tm_type = 6; else if (!strcmp(name, "lens")) - tm_type = 7; + tm_type = 4; else if (!strcmp(name, "ortho_scale")) - tm_type = 8; + tm_type = 5; else if (!strcmp(name, "clip_end")) - tm_type = 9; + tm_type = 6; else if (!strcmp(name, "clip_start")) - tm_type = 10; + tm_type = 7; else if (!strcmp(name, "specular_hardness")) - tm_type = 11; + tm_type = 8; else if (!strcmp(name, "specular_color")) - tm_type = 12; + tm_type = 9; else if (!strcmp(name, "diffuse_color")) - tm_type = 13; + tm_type = 10; else if (!strcmp(name, "alpha")) - tm_type = 14; + tm_type = 11; else if (!strcmp(name, "ior")) - tm_type = 15; + tm_type = 12; else tm_type = -1; @@ -1045,39 +1086,30 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = "location"; break; case 4: - tm_name = "color"; - break; - case 5: - tm_name = "fall_off_angle"; - break; - case 6: - tm_name = "fall_off_exponent"; - break; - case 7: tm_name = "xfov"; break; - case 8: + case 5: tm_name = "xmag"; break; - case 9: + case 6: tm_name = "zfar"; break; - case 10: + case 7: tm_name = "znear"; break; - case 11: + case 8: tm_name = "shininess"; break; - case 12: + case 9: tm_name = "specular"; break; - case 13: + case 10: tm_name = "diffuse"; break; - case 14: + case 11: tm_name = "transparency"; break; - case 15: + case 12: tm_name = "index_of_refraction"; break; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index d4559782ff4..a4268122333 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -142,6 +142,7 @@ protected: std::string fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name); // for rotation, axis name is always appended and the value of append_axis is ignored std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); + std::string get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); void find_frames(Object *ob, std::vector &fra); -- cgit v1.2.3 From c86bcd50658f03215d93fe059d11b61401847b79 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 13 Aug 2011 16:22:14 +0000 Subject: transform matrix animation import fix. --- source/blender/collada/AnimationImporter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index b0e636c2aa6..d8e6ae24b3b 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -976,11 +976,11 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } } - if (is_rotation || is_matrix) { + if (is_rotation) { if (is_joint) { - /*bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - chan->rotmode = ROT_MODE_Quat;*/ + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_EUL; } else { -- cgit v1.2.3 From fc128c970b0e6617cbc67d504d3f4f07c4ae45fd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 03:59:22 +0000 Subject: - recently restored sequencer change data operator didnt reset the offsets after a hard cut, causing the new data to be trimmed. - add change data operator to strip panel next to image file properties since editing every image manually isnt really usable. - added new sequencer operator "Clear Offsets" (Alt+O), useful to reset the start/end frames around the strip data. --- .../editors/space_sequencer/sequencer_edit.c | 55 ++++++++++++++++++++++ .../editors/space_sequencer/sequencer_intern.h | 1 + .../editors/space_sequencer/sequencer_ops.c | 3 ++ 3 files changed, 59 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index a58bec9eeb9..447426aed13 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1569,6 +1569,58 @@ void SEQUENCER_OT_delete(wmOperatorType *ot) } +/* offset clear operator */ +static int sequencer_offset_clear_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + + /* for effects, try to find a replacement input */ + for(seq=ed->seqbasep->first; seq; seq=seq->next) { + if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) { + seq->startofs= seq->endofs= seq->startstill= seq->endstill= 0; + } + } + + /* updates lengths etc */ + seq= ed->seqbasep->first; + while(seq) { + calc_sequence(scene, seq); + seq= seq->next; + } + + for(seq=ed->seqbasep->first; seq; seq=seq->next) { + if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) { + if(seq_test_overlap(ed->seqbasep, seq)) { + shuffle_seq(ed->seqbasep, seq, scene); + } + } + } + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + + +void SEQUENCER_OT_offset_clear(wmOperatorType *ot) +{ + + /* identifiers */ + ot->name= "Clear Strip Offset"; + ot->idname= "SEQUENCER_OT_offset_clear"; + ot->description="Clear strip offsets from the start and end frames"; + + /* api callbacks */ + ot->exec= sequencer_offset_clear_exec; + ot->poll= sequencer_edit_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + + /* separate_images operator */ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) { @@ -2803,6 +2855,9 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op) } RNA_END; + /* reset these else we wont see all the images */ + seq->anim_startofs= seq->anim_endofs= 0; + /* correct start/end frames so we dont move * important not to set seq->len= len; allow the function to handle it */ reload_sequence_new_file(scene, seq, TRUE); diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 6eef2bb8361..7ab76f9b6d7 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -93,6 +93,7 @@ void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot); void SEQUENCER_OT_swap_inputs(struct wmOperatorType *ot); void SEQUENCER_OT_duplicate(struct wmOperatorType *ot); void SEQUENCER_OT_delete(struct wmOperatorType *ot); +void SEQUENCER_OT_offset_clear(struct wmOperatorType *ot); void SEQUENCER_OT_images_separate(struct wmOperatorType *ot); void SEQUENCER_OT_meta_toggle(struct wmOperatorType *ot); void SEQUENCER_OT_meta_make(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index ebf400ad5ff..df33ce73b9c 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -68,6 +68,7 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_swap_inputs); WM_operatortype_append(SEQUENCER_OT_duplicate); WM_operatortype_append(SEQUENCER_OT_delete); + WM_operatortype_append(SEQUENCER_OT_offset_clear); WM_operatortype_append(SEQUENCER_OT_images_separate); WM_operatortype_append(SEQUENCER_OT_meta_toggle); WM_operatortype_append(SEQUENCER_OT_meta_make); @@ -149,6 +150,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From 656adc53b42194e0b9da8d7ead307a023b8753e9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 14 Aug 2011 04:55:52 +0000 Subject: Show dopesheet summary for new DopeSheet editors While I originally made these so that they wouldn't be on by default due to concerns over the filtering used for these leading to reduced framerates/interactive speed, I'd since found while doing some profiling that this isn't the case. Rather, decreased framerates were more likely to stem from trying to perform the checks necessary for the long-keyframe drawing when many "child" channels are involved (affecting other channels too). So, since these are generally useful, they are now enabled by default :) --- source/blender/editors/space_action/space_action.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 8cd6e388b08..4baaa469127 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -76,6 +76,8 @@ static SpaceLink *action_new(const bContext *C) saction->autosnap = SACTSNAP_FRAME; saction->mode= SACTCONT_DOPESHEET; + saction->ads.filterflag |= ADS_FILTER_SUMMARY; + /* header */ ar= MEM_callocN(sizeof(ARegion), "header for action"); -- cgit v1.2.3 From 0b23d378fbac8e76d4885c3485a4dbf158aab136 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 06:43:58 +0000 Subject: fix [#28225] Solidify Modifier creates wrong results when vertex group is attached infact this is not really a bug, irrespective zero vertex group weights gave overlapping geometry which isn't useful, add an option to set the thickness factor for zero weighted verts. --- source/blender/makesdna/DNA_modifier_types.h | 4 ++-- source/blender/makesrna/intern/rna_modifier.c | 7 +++++++ source/blender/modifiers/intern/MOD_solidify.c | 26 ++++++++++++++++++-------- 3 files changed, 27 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 3787675f339..053f3b38168 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -712,16 +712,16 @@ typedef struct ShapeKeyModifierData { typedef struct SolidifyModifierData { ModifierData modifier; - char defgrp_name[32]; /* name of vertex group to use */ + char defgrp_name[32]; /* name of vertex group to use */ float offset; /* new surface offset level*/ float offset_fac; /* midpoint of the offset */ + float offset_fac_vg; /* factor for the minimum weight to use when vgroups are used, avoids 0.0 weights giving duplicate geometry */ float crease_inner; float crease_outer; float crease_rim; int flag; short mat_ofs; short mat_ofs_rim; - int pad; } SolidifyModifierData; #define MOD_SOLIDIFY_RIM (1<<0) diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba655915fb6..5c5391b0bba 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2265,6 +2265,13 @@ static void rna_def_modifier_solidify(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "thickness_vertex_group", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "offset_fac_vg"); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Vertex Group Factor", "Thickness factor to use for zero vertex group influence"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "offset_fac"); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 0b1fac06e14..afe6da8b38a 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -232,8 +232,10 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, float (*vert_nors)[3]= NULL; - float const ofs_orig= - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); - float const ofs_new= smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float ofs_orig= - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float ofs_new= smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float offset_fac_vg= smd->offset_fac_vg; + const float offset_fac_vg_inv= 1.0f - smd->offset_fac_vg; /* weights */ MDeformVert *dvert, *dv= NULL; @@ -391,8 +393,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, dv= dvert; for(i=0; ico, mv->co, mv->no, scalar_short_vgroup); @@ -405,8 +408,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, dv= dvert; for(i=0; ico, mv->co, mv->no, scalar_short_vgroup); @@ -466,15 +470,21 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* vertex group support */ if(dvert) { + float scalar; + dv= dvert; if(defgrp_invert) { for(i=0; i Date: Sun, 14 Aug 2011 08:39:13 +0000 Subject: patch [#28246] Fix for [#28240]: selecting more than one object in the outliner with "shift left mouse" doesn't work anymore from Alex Fraser (z0r) --- source/blender/editors/space_outliner/outliner_select.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index c571fa1de6c..620a936a944 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -660,8 +660,8 @@ int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement { switch(te->idcode) { - case ID_OB: - return tree_element_set_active_object(C, scene, soops, te, set); + /* Note: no ID_OB: objects are handled specially to allow multiple + selection. See do_outliner_item_activate. */ case ID_MA: return tree_element_active_material(C, scene, soops, te, set); case ID_WO: -- cgit v1.2.3 From 62fdee3d8ae7ea37ed42fc655058c2bf03b38be8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 10:17:41 +0000 Subject: fix [#28245] Checkboxes in menu items fail for boolean arrays. 2 bugs with displaying boolean arrays. --- .../blender/editors/interface/interface_layout.c | 102 +++++++++++++-------- 1 file changed, 62 insertions(+), 40 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index df654cf3645..a8e0ca39c58 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -355,46 +355,65 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); /* create buttons */ - if(type == PROP_BOOLEAN && ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER)) { - /* special check for layer layout */ - int butw, buth, unit; - int cols= (len >= 20)? 2: 1; - int colbuts= len/(2*cols); - int layer_used= 0; - - uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, 0)); - - unit= UI_UNIT_X*0.75; - butw= unit; - buth= unit; - - if(ptr->type == &RNA_Armature) { - bArmature *arm= (bArmature *)ptr->data; - layer_used= arm->layer_used; + if(type == PROP_BOOLEAN) { + if(ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER)) { + /* special check for layer layout */ + int butw, buth, unit; + int cols= (len >= 20)? 2: 1; + int colbuts= len/(2*cols); + int layer_used= 0; + + uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, 0)); + + unit= UI_UNIT_X*0.75; + butw= unit; + buth= unit; + + if(ptr->type == &RNA_Armature) { + bArmature *arm= (bArmature *)ptr->data; + layer_used= arm->layer_used; + } + + for(b=0; bbuttonspacex; + } } + else { + /* not common, but good to support non layer boolean arrays */ + int *tmparray= MEM_callocN(sizeof(int)*len, "ui_item_array"); + RNA_property_boolean_get_array(ptr, prop, tmparray); - for(b=0; bbuttonspacex; + MEM_freeN(tmparray); + + uiBlockEndAlign(block); } } else if(subtype == PROP_MATRIX) { @@ -951,13 +970,14 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index uiBut *but; PropertyType type; char namestr[UI_MAX_NAME_STR]; - int len, w, h, slider, toggle, expand, icon_only, no_bg; + int len, is_array, w, h, slider, toggle, expand, icon_only, no_bg; uiBlockSetCurLayout(block, layout); /* retrieve info */ type= RNA_property_type(prop); - len= RNA_property_array_length(ptr, prop); + is_array= RNA_property_array_check(ptr, prop); + len= (is_array) ? RNA_property_array_length(ptr, prop) : 0; /* set name and icon */ if(!name) @@ -967,14 +987,16 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index if(ELEM4(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_POINTER)) name= ui_item_name_add_colon(name, namestr); - else if(type == PROP_BOOLEAN && len && index == RNA_NO_INDEX) + else if(type == PROP_BOOLEAN && is_array && index == RNA_NO_INDEX) name= ui_item_name_add_colon(name, namestr); else if(type == PROP_ENUM && index != RNA_ENUM_VALUE) name= ui_item_name_add_colon(name, namestr); if(layout->root->type == UI_LAYOUT_MENU) { - if(type == PROP_BOOLEAN) - icon= (RNA_property_boolean_get(ptr, prop))? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + if(type == PROP_BOOLEAN && ((is_array == FALSE) || (index != RNA_NO_INDEX))) { + if(is_array) icon= (RNA_property_boolean_get_index(ptr, prop, index)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + else icon= (RNA_property_boolean_get(ptr, prop)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + } else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) { int enum_value= RNA_property_enum_get(ptr, prop); if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { @@ -999,7 +1021,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index uiBlockSetEmboss(block, UI_EMBOSSN); /* array property */ - if(index == RNA_NO_INDEX && len > 0) + if(index == RNA_NO_INDEX && is_array) ui_item_array(layout, block, name, icon, ptr, prop, len, 0, 0, w, h, expand, slider, toggle, icon_only); /* enum item */ else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) { -- cgit v1.2.3 From b8473d70e2da98c90c0c085ba3e38d4e327c0d9b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 14 Aug 2011 10:19:21 +0000 Subject: Bugfix [#28244] Setting vector handle in fcurve can fail So apparently this was a regression from 2.4x, since vector handles were one of the handle types which could be set independently for each handle (vs both needing to be the same, for example, Auto Handles) --- source/blender/editors/animation/keyframes_edit.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index cc360b34516..2305848e7b3 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -792,12 +792,8 @@ static short set_bezier_auto_clamped(KeyframeEditData *UNUSED(ked), BezTriple *b /* Sets the selected bezier handles to type 'vector' */ static short set_bezier_vector(KeyframeEditData *UNUSED(ked), BezTriple *bezt) { - if ((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) { - if (bezt->f1 & SELECT) bezt->h1= HD_VECT; - if (bezt->f3 & SELECT) bezt->h2= HD_VECT; - - ENSURE_HANDLES_MATCH(bezt); - } + if (bezt->f1 & SELECT) bezt->h1= HD_VECT; + if (bezt->f3 & SELECT) bezt->h2= HD_VECT; return 0; } -- cgit v1.2.3 From 540f0c64b5d42186119a1e1ccdd9aac7edd13960 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 10:28:18 +0000 Subject: add in asserts for when array/non array RNA funcions are used incorrectly, would have made previous fix a lot easier to find. also remove unused argument from RNA_property_array_check. --- source/blender/blenkernel/intern/fcurve.c | 2 +- source/blender/blenkernel/intern/node.c | 4 +-- source/blender/editors/armature/poseSlide.c | 2 +- .../blender/editors/interface/interface_layout.c | 2 +- source/blender/editors/interface/interface_utils.c | 2 +- source/blender/makesrna/RNA_access.h | 2 +- source/blender/makesrna/intern/rna_access.c | 31 +++++++++++++++++++--- source/blender/python/intern/bpy_rna.c | 10 +++---- source/blender/python/intern/bpy_rna_anim.c | 2 +- 9 files changed, 41 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index d6a9d950015..13e13fbc3ff 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1002,7 +1002,7 @@ static float dtar_get_prop_val (ChannelDriver *driver, DriverTarget *dtar) /* get property to read from, and get value as appropriate */ if (RNA_path_resolve_full(&id_ptr, dtar->rna_path, &ptr, &prop, &index)) { - if(RNA_property_array_check(&ptr, prop)) { + if(RNA_property_array_check(prop)) { /* array */ if (index < RNA_property_array_length(&ptr, prop)) { switch (RNA_property_type(prop)) { diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 13469e0b58b..5f1a6c911bc 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3243,7 +3243,7 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node) int driven, len=1, index; prop = (PropertyRNA *)link; - if (RNA_property_array_check(&ptr, prop)) + if (RNA_property_array_check(prop)) len = RNA_property_array_length(&ptr, prop); for (index=0; indexrna_path, &ptr, &prop)) { - if (RNA_property_array_check(&ptr, prop)) { + if (RNA_property_array_check(prop)) { /* array */ if (fcu->array_index < RNA_property_array_length(&ptr, prop)) { found= TRUE; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index a8e0ca39c58..e6df6a07d52 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -976,7 +976,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index /* retrieve info */ type= RNA_property_type(prop); - is_array= RNA_property_array_check(ptr, prop); + is_array= RNA_property_array_check(prop); len= (is_array) ? RNA_property_array_length(ptr, prop) : 0; /* set name and icon */ diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index f660dbb9edd..a3f56192cb5 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -143,7 +143,7 @@ int uiDefAutoButsRNA(uiLayout *layout, PointerRNA *ptr, int (*check_prop)(Proper if(label_align != '\0') { PropertyType type = RNA_property_type(prop); - int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(ptr, prop)); + int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(prop)); name= RNA_property_ui_name(prop); diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 0033a1ff437..81deb0c2796 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -654,7 +654,7 @@ int RNA_property_flag(PropertyRNA *prop); void *RNA_property_py_data_get(PropertyRNA *prop); int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_array_check(PropertyRNA *prop); int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); char RNA_property_array_item_char(PropertyRNA *prop, int index); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index f1056c86a4c..f100ebd6129 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -288,7 +288,7 @@ static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop) } } -static int rna_ensure_property_array_check(PointerRNA *UNUSED(ptr), PropertyRNA *prop) +static int rna_ensure_property_array_check(PropertyRNA *prop) { if(prop->magic == RNA_MAGIC) { return (prop->getlength || prop->totarraylength) ? 1:0; @@ -765,9 +765,9 @@ int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop) return rna_ensure_property_array_length(ptr, prop); } -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop) +int RNA_property_array_check(PropertyRNA *prop) { - return rna_ensure_property_array_check(ptr, prop); + return rna_ensure_property_array_check(prop); } /* used by BPY to make an array from the python object */ @@ -1399,6 +1399,7 @@ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1414,6 +1415,7 @@ void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); /* just incase other values are passed */ if(value) value= 1; @@ -1440,6 +1442,7 @@ void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *val IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1463,6 +1466,7 @@ int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1486,6 +1490,7 @@ void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const in IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1519,6 +1524,7 @@ void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int inde int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1541,6 +1547,7 @@ int RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); return bprop->defaultvalue; } @@ -1550,6 +1557,7 @@ void RNA_property_boolean_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= bprop->defaultvalue; @@ -1565,6 +1573,7 @@ int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_default_array(ptr, prop, tmp); @@ -1588,6 +1597,7 @@ int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1603,6 +1613,7 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */ @@ -1628,6 +1639,7 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1688,6 +1700,7 @@ int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index) int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1711,6 +1724,7 @@ void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *v IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1744,6 +1758,7 @@ void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1772,6 +1787,7 @@ void RNA_property_int_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *pr IntPropertyRNA *iprop= (IntPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= iprop->defaultvalue; @@ -1808,6 +1824,7 @@ float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(idprop->type == IDP_FLOAT) @@ -1827,6 +1844,7 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */ @@ -1858,6 +1876,7 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1923,6 +1942,7 @@ float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -1948,6 +1968,7 @@ void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const floa int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) { @@ -1991,6 +2012,7 @@ void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -2013,6 +2035,7 @@ float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); return fprop->defaultvalue; } @@ -2022,6 +2045,7 @@ void RNA_property_float_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA * FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= fprop->defaultvalue; @@ -2037,6 +2061,7 @@ float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_default_array(ptr, prop, tmp); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4447a0476f4..ba8145c2773 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -856,7 +856,7 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) if(type==PROP_COLLECTION) { len= pyrna_prop_collection_length(self); } - else if (RNA_property_array_check(&self->ptr, self->prop)) { + else if (RNA_property_array_check(self->prop)) { len= pyrna_prop_array_length((BPy_PropertyArrayRNA *)self); } @@ -1224,7 +1224,7 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) PyObject *ret; int type= RNA_property_type(prop); - if (RNA_property_array_check(ptr, prop)) { + if (RNA_property_array_check(prop)) { return pyrna_py_from_array(ptr, prop); } @@ -1369,7 +1369,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb int type= RNA_property_type(prop); - if (RNA_property_array_check(ptr, prop)) { + if (RNA_property_array_check(prop)) { /* done getting the length */ if(pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) { return -1; @@ -4088,7 +4088,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat int type= RNA_property_type(prop); int flag= RNA_property_flag(prop); - if(RNA_property_array_check(ptr, prop)) { + if(RNA_property_array_check(prop)) { int a, len; if (flag & PROP_DYNAMIC) { @@ -5519,7 +5519,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop) { BPy_PropertyRNA *pyrna; - if (RNA_property_array_check(ptr, prop) == 0) { + if (RNA_property_array_check(prop) == 0) { PyTypeObject *type; if (RNA_property_type(prop) != PROP_COLLECTION) { diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c index 30d83e196ba..8bde1db96ca 100644 --- a/source/blender/python/intern/bpy_rna_anim.c +++ b/source/blender/python/intern/bpy_rna_anim.c @@ -107,7 +107,7 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi return -1; } - if(RNA_property_array_check(&r_ptr, prop) == 0) { + if(RNA_property_array_check(prop) == 0) { if((*index) == -1) { *index= 0; } -- cgit v1.2.3 From cad6ed9bc600e9162cdad2410e405fc7ad716e2e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 11:38:17 +0000 Subject: fix for fix r39388, this added checkboxes to buttons which are not supposed to have them. now only add checkboxes when the background is not emboss - which works for menus but will work in more general cases too. --- .../blender/editors/interface/interface_intern.h | 5 +- .../blender/editors/interface/interface_layout.c | 130 ++++++++++----------- 2 files changed, 64 insertions(+), 71 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 8475090b468..242210e01bb 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -213,7 +213,7 @@ struct uiBut { BIFIconID icon; char lock; - char dt; + char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied from the block */ char changed; /* could be made into a single flag */ unsigned char unit_type; /* so buttons can support unit systems which are not RNA */ short modifier_key; @@ -306,7 +306,8 @@ struct uiBlock { void *drawextra_arg2; int flag; - char direction, dt; + char direction; + char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied to buttons */ short auto_open; double auto_open_last; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index e6df6a07d52..4810b3fdf54 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -355,65 +355,46 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); /* create buttons */ - if(type == PROP_BOOLEAN) { - if(ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER)) { - /* special check for layer layout */ - int butw, buth, unit; - int cols= (len >= 20)? 2: 1; - int colbuts= len/(2*cols); - int layer_used= 0; - - uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, 0)); - - unit= UI_UNIT_X*0.75; - butw= unit; - buth= unit; - - if(ptr->type == &RNA_Armature) { - bArmature *arm= (bArmature *)ptr->data; - layer_used= arm->layer_used; - } - - for(b=0; bbuttonspacex; - } + if(type == PROP_BOOLEAN && ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER)) { + /* special check for layer layout */ + int butw, buth, unit; + int cols= (len >= 20)? 2: 1; + int colbuts= len/(2*cols); + int layer_used= 0; + + uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, 0)); + + unit= UI_UNIT_X*0.75; + butw= unit; + buth= unit; + + if(ptr->type == &RNA_Armature) { + bArmature *arm= (bArmature *)ptr->data; + layer_used= arm->layer_used; } - else { - /* not common, but good to support non layer boolean arrays */ - int *tmparray= MEM_callocN(sizeof(int)*len, "ui_item_array"); - RNA_property_boolean_get_array(ptr, prop, tmparray); + for(b=0; bbuttonspacex; } } else if(subtype == PROP_MATRIX) { @@ -441,35 +422,46 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in uiDefButR_prop(block, BUT_NORMAL, 0, name, x, y, UI_UNIT_X*3, UI_UNIT_Y*3, ptr, prop, 0, 0, 0, -1, -1, NULL); } else { - if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand) + /* note, this block of code is a bit arbitrary and has just been made + * to work with common cases, but may need to be re-worked */ + + /* special case, boolean array in a menu, this could be used in a more generic way too */ + if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand) { uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, 0, 0, w, UI_UNIT_Y); + } + else { + int *boolarr= NULL; - if(!ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) || expand) { - /* layout for known array subtypes */ - char str[3]; + /* even if 'expand' is fale, expanding anyway */ - for(a=0; aroot->block->dt, UI_EMBOSSN, UI_EMBOSSP)) { + boolarr= MEM_callocN(sizeof(int)*len, "ui_item_array"); + RNA_property_boolean_get_array(ptr, prop, boolarr); + } + for(a=0; atype==NUM) but->type= NUMSLI; if(toggle && but->type==OPTION) but->type= TOG; } + + if(boolarr) { + MEM_freeN(boolarr); + } } } -- cgit v1.2.3 From 181104261d8b1d95744ebdf731a93646b6326aed Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 12:02:01 +0000 Subject: patch [#28247] Fix for: [#28236] Separate By Materials fails when some materials "available" to the mesh are unassigned from Alex Fraser (z0r) --- source/blender/editors/mesh/editmesh.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index ec08bfccda3..4377fb03632 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1449,9 +1449,8 @@ static int mesh_separate_material(wmOperator *op, Main *bmain, Scene *scene, Bas /* select the material */ EM_select_by_material(em, curr_mat); /* and now separate */ - if(0==mesh_separate_selected(op, bmain, scene, editbase)) { - BKE_mesh_end_editmesh(me, em); - return 0; + if(em->totfacesel > 0) { + mesh_separate_selected(op, bmain, scene, editbase); } } -- cgit v1.2.3 From 02b24e655bdb2de67987c0332c78f16d0f557e48 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 14 Aug 2011 14:43:11 +0000 Subject: fix for bug where changing movie filepaths would reset the strip length. also fixed possible & unlikely buffer overflow. --- source/blender/blenkernel/intern/sequencer.c | 1 + source/blender/editors/space_sequencer/sequencer_edit.c | 5 ++++- source/blender/imbuf/intern/anim_movie.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index d6a152a5280..3aebbea789f 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -699,6 +699,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) seq->len = 0; } seq->strip->len = seq->len; + break; case SEQ_SOUND: #ifdef WITH_AUDASPACE if(!seq->sound) diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 447426aed13..ee5eb12f858 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2870,12 +2870,15 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op) else { /* lame, set rna filepath */ PointerRNA seq_ptr; + PropertyRNA *prop; char filepath[FILE_MAX]; RNA_pointer_create(&scene->id, &RNA_Sequence, seq, &seq_ptr); RNA_string_get(op->ptr, "filepath", filepath); - RNA_string_set(&seq_ptr, "filepath", filepath); + prop= RNA_struct_find_property(&seq_ptr, "filepath"); + RNA_property_string_set(&seq_ptr, prop, filepath); + RNA_property_update(C, &seq_ptr, prop); } WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 919b0eb0c29..8b0104fcdca 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -355,7 +355,7 @@ struct anim * IMB_open_anim( const char * name, int ib_flags) { anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct"); if (anim != NULL) { - strcpy(anim->name, name); /* fixme: possible buffer overflow here? */ + BLI_strncpy(anim->name, name, sizeof(anim->name)); anim->ib_flags = ib_flags; } return(anim); -- cgit v1.2.3 From fc0a5ede01d9db29471c495b18f47c0e8864e518 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 14 Aug 2011 16:13:35 +0000 Subject: Cleanup --- source/blender/collada/AnimationExporter.cpp | 26 +------------------------- source/blender/collada/AnimationExporter.h | 2 -- 2 files changed, 1 insertion(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index ecaa05e3497..a777f4ae984 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -1016,7 +1016,7 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = "fall_off_exponent"; break; case 4: - tm_name = "blender_dist"; + tm_name = "blender/blender_dist"; break; default: @@ -1137,30 +1137,6 @@ void AnimationExporter::exportAnimations(Scene *sce) return dot ? (dot + 1) : rna_path; } - void AnimationExporter::find_all_frames(Object *ob, std::vector &fra) - { - FCurve *fcu= (FCurve*)ob->adt->action->curves.first; - std::vector keys; - for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; // - if (std::find(keys.begin(), keys.end(), f) == keys.end()) - keys.push_back(f); - } - - std::sort(keys.begin(), keys.end()); - float first, last; - std::vector::reference ref = keys.front(); - first = ref; - ref = keys.back(); - last = ref; - for (float i = first ; i != last ; i+=1.0f ) - { - fra.push_back(i); - } - return; - - } - void AnimationExporter::find_frames(Object *ob, std::vector &fra) { FCurve *fcu= (FCurve*)ob->adt->action->curves.first; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index a4268122333..6cf3207b8a0 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -147,8 +147,6 @@ protected: void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); void find_frames(Object *ob, std::vector &fra); - void find_all_frames(Object *ob, std::vector &fra); - void find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode); // enable fcurves driving a specific bone, disable all the rest -- cgit v1.2.3 From e93444f8167a4df8f4bfe81ed62baf5d31807ab5 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 14 Aug 2011 16:14:32 +0000 Subject: Matrix transformation animation import for other objects under the new system. --- source/blender/collada/AnimationImporter.cpp | 67 ++++++++++++++++------------ source/blender/collada/AnimationImporter.h | 6 ++- 2 files changed, 42 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index d8e6ae24b3b..0549f133031 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -90,7 +90,8 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER ) { + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER || + curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_STEP ) { COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); } @@ -126,7 +127,8 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) bez.vec[1][1] = bc_get_float_value(output, j * dim + i); - if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER ) + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER || + curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_STEP) { COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); @@ -138,7 +140,10 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) // outtangent bez.vec[2][0] = bc_get_float_value(outtan, (j * 2 * dim ) + (2 * i)) * fps; bez.vec[2][1] = bc_get_float_value(outtan, (j * 2 * dim )+ (2 * i) + 1); - bez.ipo = BEZT_IPO_BEZ; + if(curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER) + bez.ipo = BEZT_IPO_BEZ; + else + bez.ipo = BEZT_IPO_CONST; //bez.h1 = bez.h2 = HD_AUTO; } else @@ -276,11 +281,12 @@ bool AnimationImporter::write_animation(const COLLADAFW::Animation* anim) switch (interp) { case COLLADAFW::AnimationCurve::INTERPOLATION_LINEAR: case COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER: + case COLLADAFW::AnimationCurve::INTERPOLATION_STEP: animation_to_fcurves(curve); break; default: // TODO there're also CARDINAL, HERMITE, BSPLINE and STEP types - fprintf(stderr, "CARDINAL, HERMITE, BSPLINE and STEP anim interpolation types not supported yet.\n"); + fprintf(stderr, "CARDINAL, HERMITE and BSPLINE anim interpolation types not supported yet.\n"); break; } } @@ -749,9 +755,15 @@ void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& list } -void AnimationImporter::apply_matrix_curves_to_bone( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, - COLLADAFW::Transformation * tm , char * joint_path, bool is_joint,const char * bone_name) +void AnimationImporter::apply_matrix_curves( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, + COLLADAFW::Transformation * tm ) { + bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + char joint_path[200]; + if ( is_joint ) + armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + std::vector frames; find_frames(&frames, &animcurves); @@ -878,11 +890,6 @@ std::sort(frames.begin(), frames.end()); add_bone_fcurve(ob, node, newcu[i]); else BLI_addtail(curves, newcu[i]); - -#ifdef ARMATURE_TEST - if (is_joint) - BLI_addtail(&job->adt->action->curves, job_curves[i]); -#endif } if (is_joint) { @@ -955,25 +962,22 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); - - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - if ((ob->type == OB_ARMATURE)){ - if ( is_matrix){ - float irest_dae[4][4]; - get_joint_rest_mat(irest_dae, root, node); - apply_matrix_curves_to_bone(ob, animcurves, root , node, transform ,joint_path , true , bone_name ); - break; - } - else + if ( is_matrix ) + apply_matrix_curves(ob, animcurves, root , node, transform ); + else { + //calculate rnapaths and array index of fcurves according to transformation and animation class + Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + if ((ob->type == OB_ARMATURE)) add_bone_fcurve( ob, node , fcu ); - } else - BLI_addtail(AnimCurves, fcu); - } + else + BLI_addtail(AnimCurves, fcu); + } + } } } if (is_rotation) { @@ -1862,3 +1866,8 @@ void AnimationImporter::add_bezt(FCurve *fcu, float fra, float value) insert_bezt_fcurve(fcu, &bez, 0); calchandles_fcurve(fcu); } + +void AnimationImporter::extra_data_importer(std::string elementName ) +{ + +} diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 944e3ba5be5..9aec7df1099 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -152,8 +152,8 @@ public: AnimMix* get_animation_type( const COLLADAFW::Node * node , std::map FW_object_map ) ; - void apply_matrix_curves_to_bone( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, - COLLADAFW::Transformation * tm , char * joint_path, bool is_joint,const char * bone_name); + void apply_matrix_curves( Object * ob, std::vector& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node, + COLLADAFW::Transformation * tm ); void Assign_transform_animations(COLLADAFW::Transformation* transform , const COLLADAFW::AnimationList::AnimationBinding * binding, @@ -203,6 +203,8 @@ public: void add_bone_fcurve(Object *ob, COLLADAFW::Node *node, FCurve *fcu); void add_bezt(FCurve *fcu, float fra, float value); + + void extra_data_importer(std::string elementName); }; #endif -- cgit v1.2.3 From cc3b9aa467bd9a43a28eccf990e00fddd5ed9564 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 14 Aug 2011 16:15:41 +0000 Subject: blender extra parameter animation import ( on hold ); --- source/blender/collada/DocumentImporter.cpp | 2 +- source/blender/collada/ExtraHandler.cpp | 4 +++- source/blender/collada/ExtraHandler.h | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 27442420f90..a4d1c1b451f 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -116,7 +116,7 @@ bool DocumentImporter::import() /** TODO Add error handler (implement COLLADASaxFWL::IErrorHandler */ COLLADASaxFWL::Loader loader; COLLADAFW::Root root(&loader, this); - ExtraHandler *ehandler = new ExtraHandler(this); + ExtraHandler *ehandler = new ExtraHandler(this, &(this->anim_importer)); loader.registerExtraDataCallbackHandler(ehandler); diff --git a/source/blender/collada/ExtraHandler.cpp b/source/blender/collada/ExtraHandler.cpp index 9999a61a470..a60ef8b2ea5 100644 --- a/source/blender/collada/ExtraHandler.cpp +++ b/source/blender/collada/ExtraHandler.cpp @@ -31,9 +31,10 @@ #include "ExtraHandler.h" -ExtraHandler::ExtraHandler(DocumentImporter *dimp) : currentExtraTags(0) +ExtraHandler::ExtraHandler(DocumentImporter *dimp, AnimationImporter *aimp) : currentExtraTags(0) { this->dimp = dimp; + this->aimp = aimp; } ExtraHandler::~ExtraHandler() {} @@ -42,6 +43,7 @@ bool ExtraHandler::elementBegin( const char* elementName, const char** attribute { // \todo attribute handling for profile tags currentElement = std::string(elementName); + //addToSidTree(attributes[0], attributes[1]); return true; } diff --git a/source/blender/collada/ExtraHandler.h b/source/blender/collada/ExtraHandler.h index de3b063290d..7296aaf1eb4 100644 --- a/source/blender/collada/ExtraHandler.h +++ b/source/blender/collada/ExtraHandler.h @@ -32,8 +32,10 @@ #include // sort() #include "COLLADASaxFWLIExtraDataCallbackHandler.h" +#include "COLLADASaxFWLFilePartLoader.h" #include "DocumentImporter.h" +#include "AnimationImporter.h" /** \brief Handler class for data, through which different * profiles can be handled @@ -42,7 +44,7 @@ class ExtraHandler : public COLLADASaxFWL::IExtraDataCallbackHandler { public: /** Constructor. */ - ExtraHandler(DocumentImporter *dimp); + ExtraHandler(DocumentImporter *dimp, AnimationImporter *aimp); /** Destructor. */ virtual ~ExtraHandler(); @@ -69,6 +71,7 @@ private: /** Handle to DocumentImporter for interface to extra element data saving. */ DocumentImporter* dimp; + AnimationImporter* aimp; /** Holds Id of element for which XML elements are handled. */ COLLADAFW::UniqueId currentUid; ExtraTags* currentExtraTags; -- cgit v1.2.3 From 2c8e1e633c402e677e3f49e8a9c429f59ef6f239 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 15 Aug 2011 03:41:31 +0000 Subject: comment unused lines. --- source/blender/blenlib/intern/BLI_ghash.c | 4 ++-- source/blender/editors/interface/interface_regions.c | 6 +++--- source/blender/makesrna/RNA_types.h | 2 +- source/blender/makesrna/intern/rna_access.c | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index 3c6a20b8ad6..bfee350037a 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -128,8 +128,8 @@ int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFr if (valfreefp) valfreefp(e->val); BLI_mempool_free(gh->entrypool, e); - - e= n; + /* correct but 'e' isnt used before return */ + /* e= n; */ /*UNUSED*/ if (p) p->next = n; else diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index f7460e77030..8bce27e366b 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1188,7 +1188,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, uiBut *bt; uiSafetyRct *saferct; rctf butrct; - float aspect; + /*float aspect;*/ /*UNUSED*/ int xsize, ysize, xof=0, yof=0, center; short dir1= 0, dir2=0; @@ -1223,7 +1223,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, } } - aspect= (float)(block->maxx - block->minx + 4); + /*aspect= (float)(block->maxx - block->minx + 4);*/ /*UNUSED*/ ui_block_to_window_fl(butregion, but->block, &block->minx, &block->miny); ui_block_to_window_fl(butregion, but->block, &block->maxx, &block->maxy); @@ -1232,7 +1232,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, xsize= block->maxx - block->minx+4; // 4 for shadow ysize= block->maxy - block->miny+4; - aspect/= (float)xsize; + /*aspect/= (float)xsize;*/ /*UNUSED*/ if(but) { int left=0, right=0, top=0, down=0; diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index ec213d6a496..f8199074f27 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -281,7 +281,7 @@ typedef struct ParameterList { typedef struct ParameterIterator { struct ParameterList *parms; - PointerRNA funcptr; + /* PointerRNA funcptr; */ /*UNUSED*/ void *data; int size, offset; diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index f100ebd6129..88447f6dd77 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4509,7 +4509,8 @@ int RNA_parameter_list_ret_count(ParameterList *parms) void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter) { - RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); + /* may be useful but unused now */ + /* RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); */ /*UNUSED*/ iter->parms= parms; iter->parm= parms->func->cont.properties.first; -- cgit v1.2.3 From e4f2234fffff40afa7f74dc33b5e0f8ad1a7d78f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 15 Aug 2011 04:11:55 +0000 Subject: workaround [#28250] Append dialogue will ask to create new directory inside a .blend directory button isnt library aware, for now disable it when a libraries loaded. --- source/blender/editors/space_file/file_ops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index d4253495e97..4dd97c63d40 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -1159,6 +1159,13 @@ int file_filename_exec(bContext *C, wmOperator *UNUSED(unused)) return OPERATOR_FINISHED; } +/* TODO, directory operator is non-functional while a library is loaded + * until this is properly supported just disable it. */ +static int file_directory_poll(bContext *C) +{ + return ED_operator_file_active(C) && filelist_lib(CTX_wm_space_file(C)->files) == NULL; +} + void FILE_OT_directory(struct wmOperatorType *ot) { /* identifiers */ @@ -1169,7 +1176,7 @@ void FILE_OT_directory(struct wmOperatorType *ot) /* api callbacks */ ot->invoke= file_directory_invoke; ot->exec= file_directory_exec; - ot->poll= ED_operator_file_active; /* <- important, handler is on window level */ + ot->poll= file_directory_poll; /* <- important, handler is on window level */ } void FILE_OT_refresh(struct wmOperatorType *ot) -- cgit v1.2.3 From 270ed82c7b1a6e10f80e00ede354dd16b3dd635d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 10:03:17 +0000 Subject: Fix #28202: deactivating keymap items not saving properly. --- source/blender/makesrna/intern/rna_wm.c | 1 + source/blender/windowmanager/intern/wm_keymap.c | 3 +++ 2 files changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 307cf0e175a..93adf808f83 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1746,6 +1746,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item"); RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_USER_MODIFIED); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 2dfe4d8ccdc..6887aa4c717 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -106,6 +106,9 @@ static int wm_keymap_item_equals_result(wmKeyMapItem *a, wmKeyMapItem *b) (a->ptr && b->ptr && IDP_EqualsProperties(a->ptr->data, b->ptr->data)))) return 0; + if((a->flag & KMI_INACTIVE) != (b->flag & KMI_INACTIVE)) + return 0; + return (a->propvalue == b->propvalue); } -- cgit v1.2.3 From 674d1b8d68330113967fd0bb6b34edaf9c619cae Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 15 Aug 2011 10:37:26 +0000 Subject: Select by Keying Set... * Split off code to refresh relative/builtin KeyingSets for the current context before they get used to a separate function. * Hooked this up to a new PyAPI/RNA function: KeyingSet.refresh(). Call this before checking the paths that a Keying Set has, especially if it is not "absolute" * Added option for "Select Grouped" operator (for Objects), which will select all objects affected by the active Keying Set. This is probably more useful for absolute KeyingSets, where changing the selection is less likely to affect the result. - The equivalent for bones is currently still in development, but is likely to be more useful for animators, where rigs are the primary animation entities they deal with --- source/blender/editors/animation/keyingsets.c | 69 +++++++++++++++------- source/blender/editors/include/ED_keyframing.h | 3 + source/blender/editors/object/object_select.c | 40 +++++++++++++ source/blender/makesrna/intern/rna_animation_api.c | 33 ++++++++++- 4 files changed, 120 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index 69abd1cb5a4..dcd1c3abbde 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -875,33 +875,19 @@ void ANIM_relative_keyingset_add_source (ListBase *dsources, ID *id, StructRNA * /* KeyingSet Operations (Insert/Delete Keyframes) ------------ */ -/* Given a KeyingSet and context info (if required), modify keyframes for the channels specified - * by the KeyingSet. This takes into account many of the different combinations of using KeyingSets. - * Returns the number of channels that keyframes were added to +/* Given a KeyingSet and context info, validate Keying Set's paths. + * This is only really necessary with relative/built-in KeyingSets + * where their list of paths is dynamically generated based on the + * current context info. + * + * Returns 0 if succeeded, otherwise an error code: eModifyKey_Returns */ -int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra) +short ANIM_validate_keyingset (bContext *C, ListBase *dsources, KeyingSet *ks) { - Scene *scene= CTX_data_scene(C); - ReportList *reports = CTX_wm_reports(C); - KS_Path *ksp; - int kflag=0, success= 0; - char *groupname= NULL; - - /* sanity checks */ + /* sanity check */ if (ks == NULL) return 0; - /* get flags to use */ - if (mode == MODIFYKEY_MODE_INSERT) { - /* use KeyingSet's flags as base */ - kflag= ks->keyingflag; - - /* suppliment with info from the context */ - kflag |= ANIM_get_keyframing_flags(scene, 1); - } - else if (mode == MODIFYKEY_MODE_DELETE) - kflag= 0; - /* if relative Keying Sets, poll and build up the paths */ if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) { KeyingSetInfo *ksi = ANIM_keyingset_info_find_named(ks->typeinfo); @@ -936,6 +922,45 @@ int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingS } } + /* succeeded; return 0 to tag error free */ + return 0; +} + +/* Given a KeyingSet and context info (if required), modify keyframes for the channels specified + * by the KeyingSet. This takes into account many of the different combinations of using KeyingSets. + * Returns the number of channels that keyframes were added to + */ +int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra) +{ + Scene *scene= CTX_data_scene(C); + ReportList *reports = CTX_wm_reports(C); + KS_Path *ksp; + int kflag=0, success= 0; + char *groupname= NULL; + + /* sanity checks */ + if (ks == NULL) + return 0; + + /* get flags to use */ + if (mode == MODIFYKEY_MODE_INSERT) { + /* use KeyingSet's flags as base */ + kflag= ks->keyingflag; + + /* suppliment with info from the context */ + kflag |= ANIM_get_keyframing_flags(scene, 1); + } + else if (mode == MODIFYKEY_MODE_DELETE) + kflag= 0; + + /* if relative Keying Sets, poll and build up the paths */ + success = ANIM_validate_keyingset(C, dsources, ks); + + if (success != 0) { + /* return error code if failed */ + return success; + } + /* apply the paths as specified in the KeyingSet now */ for (ksp= ks->paths.first; ksp; ksp= ksp->next) { int arraylen, i; diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 9dbe86bc5ac..cda3c4f3e71 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -176,6 +176,9 @@ typedef enum eModifyKey_Returns { MODIFYKEY_MISSING_TYPEINFO = -2, } eModifyKey_Returns; +/* poll the current KeyingSet, updating it's set of paths (if "builtin"/"relative") for context changes */ +short ANIM_validate_keyingset(struct bContext *C, ListBase *dsources, struct KeyingSet *ks); + /* use the specified KeyingSet to add/remove various Keyframes on the specified frame */ int ANIM_apply_keyingset(struct bContext *C, ListBase *dsources, struct bAction *act, struct KeyingSet *ks, short mode, float cfra); diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index a3bd399a60c..b3c4ffc0ac9 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -37,6 +37,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_anim_types.h" #include "DNA_group_types.h" #include "DNA_material_types.h" #include "DNA_modifier_types.h" @@ -65,6 +66,7 @@ #include "ED_object.h" #include "ED_screen.h" +#include "ED_keyframing.h" #include "UI_interface.h" #include "UI_resources.h" @@ -363,6 +365,7 @@ static EnumPropertyItem prop_select_grouped_types[] = { {9, "PASS", 0, "Pass", "Render pass Index"}, {10, "COLOR", 0, "Color", "Object Color"}, {11, "PROPERTIES", 0, "Properties", "Game Properties"}, + {12, "KEYINGSET", 0, "Keying Set", "Objects included in active Keying Set"}, {0, NULL, 0, NULL, NULL} }; @@ -574,6 +577,42 @@ static short select_grouped_gameprops(bContext *C, Object *ob) return changed; } +static short select_grouped_keyingset(bContext *C, Object *UNUSED(ob)) +{ + KeyingSet *ks = ANIM_scene_get_active_keyingset(CTX_data_scene(C)); + short changed = 0; + + /* firstly, validate KeyingSet */ + if ((ks == NULL) || (ANIM_validate_keyingset(C, NULL, ks) != 0)) + return 0; + + /* select each object that Keying Set refers to */ + // TODO: perhaps to be more in line with the rest of these, we should only take objects + // if the passed in object is included in this too + CTX_DATA_BEGIN(C, Base*, base, selectable_bases) + { + /* only check for this object if it isn't selected already, to limit time wasted */ + if ((base->flag & SELECT) == 0) { + KS_Path *ksp; + + /* this is the slow way... we could end up with > 500 items here, + * with none matching, but end up doing this on 1000 objects... + */ + for (ksp = ks->paths.first; ksp; ksp = ksp->next) { + /* if id matches, select then stop looping (match found) */ + if (ksp->id == base->object) { + ED_base_object_select(base, BA_SELECT); + changed = 1; + break; + } + } + } + } + CTX_DATA_END; + + return changed; +} + static int object_select_grouped_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); @@ -608,6 +647,7 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op) else if(nr==9) changed |= select_grouped_index_object(C, ob); else if(nr==10) changed |= select_grouped_color(C, ob); else if(nr==11) changed |= select_grouped_gameprops(C, ob); + else if(nr==12) changed |= select_grouped_keyingset(C, ob); if (changed) { WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c index b3d2c02d0e4..714a74ec424 100644 --- a/source/blender/makesrna/intern/rna_animation_api.c +++ b/source/blender/makesrna/intern/rna_animation_api.c @@ -39,16 +39,43 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" + #ifdef RNA_RUNTIME -#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_report.h" + +#include "ED_keyframing.h" + +static void rna_KeyingSet_context_refresh(KeyingSet *ks, bContext *C, ReportList *reports) +{ + // TODO: enable access to providing a list of overrides (dsources)? + int success = ANIM_validate_keyingset(C, NULL, ks); + + if (success != 0) { + switch (success) { + case MODIFYKEY_INVALID_CONTEXT: + BKE_report(reports, RPT_ERROR, "Invalid context for Keying Set"); + break; + + case MODIFYKEY_MISSING_TYPEINFO: + BKE_report(reports, RPT_ERROR, "Incomplete built-in Keying Set. Appears to be missing type info"); + break; + } + } +} #else void RNA_api_keyingset(StructRNA *srna) { -// FunctionRNA *func; -// PropertyRNA *parm; + FunctionRNA *func; + //PropertyRNA *parm; + + /* validate relative Keying Set (used to ensure paths are ok for context) */ + func= RNA_def_function(srna, "refresh", "rna_KeyingSet_context_refresh"); + RNA_def_function_ui_description(func, "Refresh Keying Set to ensure that it is valid for the current context. Call before each use of one"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); } #endif -- cgit v1.2.3 From 0745f31306ce8954a2fc019b94bd301a39674d10 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 15 Aug 2011 11:34:29 +0000 Subject: "Select Grouped" by Keying Set for Bones --- source/blender/editors/armature/poseobject.c | 63 +++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 48d349ce837..be9641c10a3 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -603,6 +603,63 @@ static short pose_select_same_layer (bContext *C, Object *ob, short extend) return changed; } +static int pose_select_same_keyingset(bContext *C, Object *ob, short extend) +{ + KeyingSet *ks = ANIM_scene_get_active_keyingset(CTX_data_scene(C)); + KS_Path *ksp; + + bArmature *arm = (ob)? ob->data : NULL; + bPose *pose= (ob)? ob->pose : NULL; + short changed= 0; + + /* sanity checks: validate Keying Set and object */ + if ((ks == NULL) || (ANIM_validate_keyingset(C, NULL, ks) != 0)) + return 0; + + if (ELEM3(NULL, ob, pose, arm)) + return 0; + + /* if not extending selection, deselect all selected first */ + if (extend == 0) { + CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) + { + if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) + pchan->bone->flag &= ~BONE_SELECTED; + } + CTX_DATA_END; + } + + /* iterate over elements in the Keying Set, setting selection depending on whether + * that bone is visible or not... + */ + for (ksp = ks->paths.first; ksp; ksp = ksp->next) { + /* only items related to this object will be relevant */ + if ((ksp->id == ob) && (ksp->rna_path != NULL)) { + if (strstr(ksp->rna_path, "bones")) { + char *boneName = BLI_getQuotedStr(ksp->rna_path, "bones["); + + if (boneName) { + bPoseChannel *pchan = get_pose_channel(pose, boneName); + + if (pchan) { + /* select if bone is visible and can be affected */ + if ((PBONE_VISIBLE(arm, pchan->bone)) && + (pchan->bone->flag & BONE_UNSELECTABLE)==0) + { + pchan->bone->flag |= BONE_SELECTED; + changed = 1; + } + } + + /* free temp memory */ + MEM_freeN(boneName); + } + } + } + } + + return changed; +} static int pose_select_grouped_exec (bContext *C, wmOperator *op) { @@ -621,6 +678,9 @@ static int pose_select_grouped_exec (bContext *C, wmOperator *op) case 1: /* group */ changed= pose_select_same_group(C, ob, extend); break; + case 2: /* Keying Set */ + changed= pose_select_same_keyingset(C, ob, extend); + break; default: /* layer */ changed= pose_select_same_layer(C, ob, extend); break; @@ -641,6 +701,7 @@ void POSE_OT_select_grouped (wmOperatorType *ot) static EnumPropertyItem prop_select_grouped_types[] = { {0, "LAYER", 0, "Layer", "Shared layers"}, {1, "GROUP", 0, "Group", "Shared group"}, + {2, "KEYINGSET", 0, "Keying Set", "All bones affected by active Keying Set"}, {0, NULL, 0, NULL, NULL} }; @@ -2139,7 +2200,7 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *UNUSED(op)) if (pchan->rotmode == ROT_MODE_QUAT) { /* quaternions have 720 degree range */ negate_v4(pchan->quat); - + /* tagging */ if (autokeyframe_cfra_can_key(scene, &ob->id)) { ListBase dsources = {NULL, NULL}; -- cgit v1.2.3 From 87e8b853a64ea14d7d038ac2c9c16b469d6e0228 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 15 Aug 2011 11:51:42 +0000 Subject: Remove some unused code + warning fix --- source/blender/editors/armature/poseobject.c | 75 ++++++++-------------------- 1 file changed, 21 insertions(+), 54 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index be9641c10a3..961c556b246 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -107,24 +107,6 @@ Object *ED_object_pose_armature(Object *ob) return NULL; } - -/* This function is used to indicate that a bone is selected and needs keyframes inserted */ -static void set_pose_keys (Object *ob) -{ - bArmature *arm= ob->data; - bPoseChannel *chan; - - if (ob->pose){ - for (chan=ob->pose->chanbase.first; chan; chan=chan->next){ - Bone *bone= chan->bone; - if ((bone) && (bone->flag & BONE_SELECTED) && (arm->layer & bone->layer)) - chan->flag |= POSE_KEY; - else - chan->flag &= ~POSE_KEY; - } - } -} - /* This function is used to process the necessary updates for */ void ED_armature_enter_posemode(bContext *C, Base *base) { @@ -634,7 +616,7 @@ static int pose_select_same_keyingset(bContext *C, Object *ob, short extend) */ for (ksp = ks->paths.first; ksp; ksp = ksp->next) { /* only items related to this object will be relevant */ - if ((ksp->id == ob) && (ksp->rna_path != NULL)) { + if ((ksp->id == &ob->id) && (ksp->rna_path != NULL)) { if (strstr(ksp->rna_path, "bones")) { char *boneName = BLI_getQuotedStr(ksp->rna_path, "bones["); @@ -1005,6 +987,25 @@ void free_posebuf(void) g_posebuf=NULL; } +/* This function is used to indicate that a bone is selected + * and needs to be included in copy buffer (used to be for inserting keys) + */ +static void set_pose_keys (Object *ob) +{ + bArmature *arm= ob->data; + bPoseChannel *chan; + + if (ob->pose){ + for (chan=ob->pose->chanbase.first; chan; chan=chan->next){ + Bone *bone= chan->bone; + if ((bone) && (bone->flag & BONE_SELECTED) && (arm->layer & bone->layer)) + chan->flag |= POSE_KEY; + else + chan->flag &= ~POSE_KEY; + } + } +} + /* ---- */ static int pose_copy_exec (bContext *C, wmOperator *op) @@ -1239,7 +1240,7 @@ void POSE_OT_paste (wmOperatorType *ot) } /* ********************************************** */ - +/* Bone Groups */ static int pose_group_add_exec (bContext *C, wmOperator *UNUSED(op)) { @@ -2253,40 +2254,6 @@ void POSE_OT_quaternions_flip (wmOperatorType *ot) /* context: active channel */ #if 0 -void pose_special_editmenu(Scene *scene) -{ - Object *obedit= scene->obedit; // XXX context - Object *ob= OBACT; - short nr; - - /* paranoia checks */ - if(!ob && !ob->pose) return; - if(ob==obedit || (ob->mode & OB_MODE_POSE)==0) return; - - nr= pupmenu("Specials%t|Select Constraint Target%x1|Flip Left-Right Names%x2|Calculate Paths%x3|Clear Paths%x4|Clear User Transform %x5|Relax Pose %x6|%l|AutoName Left-Right%x7|AutoName Front-Back%x8|AutoName Top-Bottom%x9"); - if(nr==1) { - pose_select_constraint_target(scene); - } - else if(nr==2) { - pose_flip_names(); - } - else if(nr==3) { - pose_calculate_path(C, ob); - } - else if(nr==4) { - pose_clear_paths(ob); - } - else if(nr==5) { - pose_clear_user_transforms(ob); - } - else if(nr==6) { - pose_relax(); - } - else if(ELEM3(nr, 7, 8, 9)) { - pose_autoside_names(nr-7); - } -} - /* Restore selected pose-bones to 'action'-defined pose */ static void pose_clear_user_transforms(Object *ob) -- cgit v1.2.3 From 470b39608a33924da27a584d68c8945d28b8f4fe Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 12:07:52 +0000 Subject: Fix #27803: editing texture did not update compositing nodes using that texture. --- source/blender/editors/render/render_update.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index b6fb60ac4f7..85e1eb016d7 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -58,6 +58,7 @@ #include "GPU_material.h" +#include "ED_node.h" #include "ED_render.h" #include "render_intern.h" // own include @@ -115,6 +116,8 @@ static void texture_changed(Main *bmain, Tex *tex) Material *ma; Lamp *la; World *wo; + Scene *scene; + bNode *node; /* icons */ BKE_icon_changed(BKE_icon_getid(&tex->id)); @@ -146,6 +149,16 @@ static void texture_changed(Main *bmain, Tex *tex) BKE_icon_changed(BKE_icon_getid(&wo->id)); } + + /* find compositing nodes */ + for(scene=bmain->scene.first; scene; scene=scene->id.next) { + if(scene->use_nodes && scene->nodetree) { + for(node=scene->nodetree->nodes.first; node; node=node->next) { + if(node->id == &tex->id) + ED_node_changed_update(&scene->id, node); + } + } + } } static void lamp_changed(Main *bmain, Lamp *la) -- cgit v1.2.3 From b62951c0d5cccaa0e391266ccab2eb2ce74bd223 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 13:17:39 +0000 Subject: Fix #28162: texture properties didn't show correct texture datablock chooser in a particular setup with two nested material nodes. Material active texture was looking also recursively into material node, but this was already done outside of this function. --- source/blender/blenkernel/intern/texture.c | 32 ++++++------------------------ 1 file changed, 6 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 036ba34d0c8..493baebd197 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -1005,7 +1005,7 @@ void autotexname(Tex *tex) Tex *give_current_object_texture(Object *ob) { - Material *ma; + Material *ma, *node_ma; Tex *tex= NULL; if(ob==NULL) return NULL; @@ -1015,6 +1015,10 @@ Tex *give_current_object_texture(Object *ob) tex= give_current_lamp_texture(ob->data); } else { ma= give_current_material(ob, ob->actcol); + + if((node_ma=give_node_material(ma))) + ma= node_ma; + tex= give_current_material_texture(ma); } @@ -1080,17 +1084,6 @@ Tex *give_current_material_texture(Material *ma) tex= (Tex *)node->id; ma= NULL; } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) { - ma= (Material*)node->id; - if(ma) { - mtex= ma->mtex[(int)(ma->texact)]; - if(mtex) tex= mtex->tex; - } - } - } - return tex; } if(ma) { @@ -1165,11 +1158,6 @@ void set_current_material_texture(Material *ma, Tex *newtex) id_us_plus(&newtex->id); ma= NULL; } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) - ma= (Material*)node->id; - } } if(ma) { int act= (int)ma->texact; @@ -1198,16 +1186,8 @@ int has_current_material_texture(Material *ma) if(ma && ma->use_nodes && ma->nodetree) { node= nodeGetActiveID(ma->nodetree, ID_TE); - if(node) { + if(node) return 1; - } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) - ma= (Material*)node->id; - else - ma= NULL; - } } return (ma != NULL); -- cgit v1.2.3 From cbbbf31315bf57aed5ccfec02f29495b2e3767ec Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 15 Aug 2011 13:24:53 +0000 Subject: Restoring "Clear User Transforms" operator This can now be found as Pose -> Clear Transforms -> Reset Unkeyed, or via the operator search (known by its old name there) --- source/blender/editors/armature/armature_intern.h | 1 + source/blender/editors/armature/armature_ops.c | 1 + source/blender/editors/armature/poseobject.c | 329 +++++++++++++--------- 3 files changed, 196 insertions(+), 135 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index cc654f6d2bc..47123b7fb4d 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -93,6 +93,7 @@ void POSE_OT_rot_clear(struct wmOperatorType *ot); void POSE_OT_loc_clear(struct wmOperatorType *ot); void POSE_OT_scale_clear(struct wmOperatorType *ot); void POSE_OT_transforms_clear(struct wmOperatorType *ot); +void POSE_OT_user_transforms_clear(struct wmOperatorType *ot); void POSE_OT_copy(struct wmOperatorType *ot); void POSE_OT_paste(struct wmOperatorType *ot); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 28454fa0fa9..81ece9ddc9a 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -108,6 +108,7 @@ void ED_operatortypes_armature(void) WM_operatortype_append(POSE_OT_loc_clear); WM_operatortype_append(POSE_OT_scale_clear); WM_operatortype_append(POSE_OT_transforms_clear); + WM_operatortype_append(POSE_OT_user_transforms_clear); WM_operatortype_append(POSE_OT_copy); WM_operatortype_append(POSE_OT_paste); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 961c556b246..d2f32837d6d 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -47,6 +47,7 @@ #include "DNA_scene_types.h" #include "DNA_object_types.h" +#include "BKE_animsys.h" #include "BKE_anim.h" #include "BKE_idprop.h" #include "BKE_action.h" @@ -1006,6 +1007,130 @@ static void set_pose_keys (Object *ob) } } +/* perform paste pose, for a single bone + * < ob: object where bone to paste to lives + * < chan: bone that pose to paste comes from + * < selOnly: only paste on selected bones + * < flip: flip on x-axis + * + * > returns: whether the bone that we pasted to if we succeeded + */ +static bPoseChannel *pose_bone_do_paste (Object *ob, bPoseChannel *chan, short selOnly, short flip) +{ + bPoseChannel *pchan; + char name[32]; + short paste_ok; + + /* get the name - if flipping, we must flip this first */ + if (flip) + flip_side_name(name, chan->name, 0); /* 0 = don't strip off number extensions */ + else + BLI_strncpy(name, chan->name, sizeof(name)); + + /* only copy when: + * 1) channel exists - poses are not meant to add random channels to anymore + * 2) if selection-masking is on, channel is selected - only selected bones get pasted on, allowing making both sides symmetrical + */ + pchan= get_pose_channel(ob->pose, name); + + if (selOnly) + paste_ok= ((pchan) && (pchan->bone->flag & BONE_SELECTED)); + else + paste_ok= ((pchan != NULL)); + + /* continue? */ + if (paste_ok) { + /* only loc rot size + * - only copies transform info for the pose + */ + VECCOPY(pchan->loc, chan->loc); + VECCOPY(pchan->size, chan->size); + pchan->flag= chan->flag; + + /* check if rotation modes are compatible (i.e. do they need any conversions) */ + if (pchan->rotmode == chan->rotmode) { + /* copy the type of rotation in use */ + if (pchan->rotmode > 0) { + VECCOPY(pchan->eul, chan->eul); + } + else if (pchan->rotmode == ROT_MODE_AXISANGLE) { + VECCOPY(pchan->rotAxis, chan->rotAxis); + pchan->rotAngle = chan->rotAngle; + } + else { + QUATCOPY(pchan->quat, chan->quat); + } + } + else if (pchan->rotmode > 0) { + /* quat/axis-angle to euler */ + if (chan->rotmode == ROT_MODE_AXISANGLE) + axis_angle_to_eulO( pchan->eul, pchan->rotmode,chan->rotAxis, chan->rotAngle); + else + quat_to_eulO( pchan->eul, pchan->rotmode,chan->quat); + } + else if (pchan->rotmode == ROT_MODE_AXISANGLE) { + /* quat/euler to axis angle */ + if (chan->rotmode > 0) + eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->eul, chan->rotmode); + else + quat_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->quat); + } + else { + /* euler/axis-angle to quat */ + if (chan->rotmode > 0) + eulO_to_quat(pchan->quat, chan->eul, chan->rotmode); + else + axis_angle_to_quat(pchan->quat, chan->rotAxis, pchan->rotAngle); + } + + /* paste flipped pose? */ + if (flip) { + pchan->loc[0]*= -1; + + /* has to be done as eulers... */ + if (pchan->rotmode > 0) { + pchan->eul[1] *= -1; + pchan->eul[2] *= -1; + } + else if (pchan->rotmode == ROT_MODE_AXISANGLE) { + float eul[3]; + + axis_angle_to_eulO(eul, EULER_ORDER_DEFAULT, pchan->rotAxis, pchan->rotAngle); + eul[1]*= -1; + eul[2]*= -1; + eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, eul, EULER_ORDER_DEFAULT); + } + else { + float eul[3]; + + normalize_qt(pchan->quat); + quat_to_eul(eul, pchan->quat); + eul[1]*= -1; + eul[2]*= -1; + eul_to_quat(pchan->quat, eul); + } + } + + /* ID properties */ + if (chan->prop) { + if (pchan->prop) { + /* if we have existing properties on a bone, just copy over the values of + * matching properties (i.e. ones which will have some impact) on to the + * target instead of just blinding replacing all [ + */ + IDP_SyncGroupValues(pchan->prop, chan->prop); + } + else { + /* no existing properties, so assume that we want copies too? */ + pchan->prop= IDP_CopyProperty(chan->prop); + } + } + } + + /* return whether paste went ahead */ + return pchan; +} + /* ---- */ static int pose_copy_exec (bContext *C, wmOperator *op) @@ -1048,9 +1173,9 @@ void POSE_OT_copy (wmOperatorType *ot) static int pose_paste_exec (bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); Object *ob= ED_object_pose_armature(CTX_data_active_object(C)); - bPoseChannel *chan, *pchan; + Scene *scene= CTX_data_scene(C); + bPoseChannel *chan; int flip= RNA_boolean_get(op->ptr, "flipped"); int selOnly= RNA_boolean_get(op->ptr, "selected_mask"); @@ -1074,115 +1199,11 @@ static int pose_paste_exec (bContext *C, wmOperator *op) /* Safely merge all of the channels in the buffer pose into any existing pose */ for (chan= g_posebuf->chanbase.first; chan; chan=chan->next) { if (chan->flag & POSE_KEY) { - char name[32]; - short paste_ok; + /* try to perform paste on this bone */ + bPoseChannel *pchan = pose_bone_do_paste(ob, chan, selOnly, flip); - /* get the name - if flipping, we must flip this first */ - if (flip) - flip_side_name(name, chan->name, 0); /* 0 = don't strip off number extensions */ - else - BLI_strncpy(name, chan->name, sizeof(name)); - - /* only copy when: - * 1) channel exists - poses are not meant to add random channels to anymore - * 2) if selection-masking is on, channel is selected - only selected bones get pasted on, allowing making both sides symmetrical - */ - pchan= get_pose_channel(ob->pose, name); - - if (selOnly) - paste_ok= ((pchan) && (pchan->bone->flag & BONE_SELECTED)); - else - paste_ok= ((pchan != NULL)); - - /* continue? */ - if (paste_ok) { - /* only loc rot size - * - only copies transform info for the pose - */ - VECCOPY(pchan->loc, chan->loc); - VECCOPY(pchan->size, chan->size); - pchan->flag= chan->flag; - - /* check if rotation modes are compatible (i.e. do they need any conversions) */ - if (pchan->rotmode == chan->rotmode) { - /* copy the type of rotation in use */ - if (pchan->rotmode > 0) { - VECCOPY(pchan->eul, chan->eul); - } - else if (pchan->rotmode == ROT_MODE_AXISANGLE) { - VECCOPY(pchan->rotAxis, chan->rotAxis); - pchan->rotAngle = chan->rotAngle; - } - else { - QUATCOPY(pchan->quat, chan->quat); - } - } - else if (pchan->rotmode > 0) { - /* quat/axis-angle to euler */ - if (chan->rotmode == ROT_MODE_AXISANGLE) - axis_angle_to_eulO( pchan->eul, pchan->rotmode,chan->rotAxis, chan->rotAngle); - else - quat_to_eulO( pchan->eul, pchan->rotmode,chan->quat); - } - else if (pchan->rotmode == ROT_MODE_AXISANGLE) { - /* quat/euler to axis angle */ - if (chan->rotmode > 0) - eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->eul, chan->rotmode); - else - quat_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->quat); - } - else { - /* euler/axis-angle to quat */ - if (chan->rotmode > 0) - eulO_to_quat(pchan->quat, chan->eul, chan->rotmode); - else - axis_angle_to_quat(pchan->quat, chan->rotAxis, pchan->rotAngle); - } - - /* paste flipped pose? */ - if (flip) { - pchan->loc[0]*= -1; - - /* has to be done as eulers... */ - if (pchan->rotmode > 0) { - pchan->eul[1] *= -1; - pchan->eul[2] *= -1; - } - else if (pchan->rotmode == ROT_MODE_AXISANGLE) { - float eul[3]; - - axis_angle_to_eulO(eul, EULER_ORDER_DEFAULT, pchan->rotAxis, pchan->rotAngle); - eul[1]*= -1; - eul[2]*= -1; - eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, eul, EULER_ORDER_DEFAULT); - } - else { - float eul[3]; - - normalize_qt(pchan->quat); - quat_to_eul(eul, pchan->quat); - eul[1]*= -1; - eul[2]*= -1; - eul_to_quat(pchan->quat, eul); - } - } - - /* ID properties */ - if (chan->prop) { - if (pchan->prop) { - /* if we have existing properties on a bone, just copy over the values of - * matching properties (i.e. ones which will have some impact) on to the - * target instead of just blinding replacing all [ - */ - IDP_SyncGroupValues(pchan->prop, chan->prop); - } - else { - /* no existing properties, so assume that we want copies too? */ - pchan->prop= IDP_CopyProperty(chan->prop); - } - } - - /* keyframing tagging */ + if (pchan) { + /* keyframing tagging for successful paste */ if (autokeyframe_cfra_can_key(scene, &ob->id)) { ListBase dsources = {NULL, NULL}; @@ -2187,6 +2208,7 @@ void ARMATURE_OT_bone_layers (wmOperatorType *ot) } /* ********************************************** */ +/* Flip Quats */ static int pose_flip_quats_exec (bContext *C, wmOperator *UNUSED(op)) { @@ -2251,41 +2273,78 @@ void POSE_OT_quaternions_flip (wmOperatorType *ot) } /* ********************************************** */ +/* Clear User Transforms */ -/* context: active channel */ -#if 0 - -/* Restore selected pose-bones to 'action'-defined pose */ -static void pose_clear_user_transforms(Object *ob) +static int pose_clear_user_transforms_exec (bContext *C, wmOperator *op) { - bArmature *arm= ob->data; - bPoseChannel *pchan; - - if (ob->pose == NULL) - return; + Scene *scene = CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); + float cframe = (float)CFRA; - /* if the object has an action, restore pose to the pose defined by the action by clearing pose on selected bones */ - if (ob->action) { - /* find selected bones */ - for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { - if (pchan->bone && (pchan->bone->flag & BONE_SELECTED) && (pchan->bone->layer & arm->layer)) { - /* just clear the BONE_UNKEYED flag, allowing this bone to get overwritten by actions again */ - pchan->bone->flag &= ~BONE_UNKEYED; - } + if ((ob->adt) && (ob->adt->action)) { + /* XXX: this is just like this to avoid contaminating anything else; + * just pose values should change, so this should be fine + */ + bPose *dummyPose = NULL; + Object workob = {{0}}; + bPoseChannel *pchan; + + /* execute animation step for current frame using a dummy copy of the pose */ + copy_pose(&dummyPose, ob->pose, 0); + + BLI_strncpy(workob.id.name, "OB", sizeof(workob.id.name)); + workob.type = OB_ARMATURE; + workob.data = ob->data; + workob.adt = ob->adt; + workob.pose = dummyPose; + + BKE_animsys_evaluate_animdata(scene, &workob.id, workob.adt, cframe, ADT_RECALC_ANIM); + + /* copy back values, but on selected bones only */ + for (pchan = dummyPose->chanbase.first; pchan; pchan = pchan->next) { + pose_bone_do_paste(ob, pchan, 1, 0); } - /* clear pose locking flag - * - this will only clear the user-defined pose in the selected bones, where BONE_UNKEYED has been cleared - */ - ob->pose->flag |= POSE_DO_UNLOCK; + /* free temp data - free manually as was copied without constraints */ + if (dummyPose) { + for (pchan= dummyPose->chanbase.first; pchan; pchan= pchan->next) { + if (pchan->prop) { + IDP_FreeProperty(pchan->prop); + MEM_freeN(pchan->prop); + } + } + + /* was copied without constraints */ + BLI_freelistN(&dummyPose->chanbase); + MEM_freeN(dummyPose); + } } else { - /* no action, so restore entire pose to rest pose (cannot restore only selected bones) */ + /* no animation, so just reset whole pose to rest pose + * (cannot just restore for selected though) + */ rest_pose(ob->pose); } + /* notifiers and updates */ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - BIF_undo_push("Clear User Transform"); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); + + return OPERATOR_FINISHED; +} + +void POSE_OT_user_transforms_clear (wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Clear User Transforms"; + ot->idname= "POSE_OT_user_transforms_clear"; + ot->description= "Reset pose on selected bones to keyframed state"; + + /* callbacks */ + ot->exec= pose_clear_user_transforms_exec; + ot->poll= ED_operator_posemode; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -#endif -- cgit v1.2.3 From f53143dc835232d894d08fb135f2ba4423b85482 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 14:05:04 +0000 Subject: Fix #27718: driving modifier properties was missing updates, fixed depsgraph. --- source/blender/blenkernel/intern/depsgraph.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index d39be9d683c..667e0850111 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -301,6 +301,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { ChannelDriver *driver= fcu->driver; DriverVar *dvar; + int isdata_fcu = isdata || (fcu->rna_path && strstr(fcu->rna_path, "modifiers[")); /* loop over variables to get the target relationships */ for (dvar= driver->variables.first; dvar; dvar= dvar->next) { @@ -320,14 +321,14 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node ( ((dtar->rna_path) && strstr(dtar->rna_path, "pose.bones[")) || ((dtar->flag & DTAR_FLAG_STRUCT_REF) && (dtar->pchan_name[0])) )) { - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); } /* check if ob data */ else if (dtar->rna_path && strstr(dtar->rna_path, "data.")) - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); /* normal */ else - dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); } } } -- cgit v1.2.3 From 27b3695c4f183629443397b643a0bc13d62f6f35 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 16:12:39 +0000 Subject: Remove message "Info: Config directory with "startup.blend" file not found." There's no reason to have it really, this situation is totally normal, and it means a terminal window is opened on Windows as long as you haven't saved any default settings yet. --- source/blender/windowmanager/intern/wm_files.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 20f9d2237c2..d9eb36eeb62 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -466,7 +466,6 @@ int WM_read_homefile(bContext *C, ReportList *reports, short from_memory) } else { tstr[0] = '\0'; from_memory = 1; - BKE_report(reports, RPT_INFO, "Config directory with "STRINGIFY(BLENDER_STARTUP_FILE)" file not found."); } } -- cgit v1.2.3 From ae884d2e54210a8a1038c23cb7bdeaac16fdf2fb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 16:18:04 +0000 Subject: Code cleanup: add UNUSED_FUNCTION macro to avoid warning messages about unused functions. --- source/blender/blenkernel/intern/nla.c | 2 +- source/blender/blenlib/BLI_utildefines.h | 6 ++++++ source/blender/editors/mesh/editmesh_mods.c | 2 +- source/blender/editors/mesh/editmesh_tools.c | 2 +- source/blender/editors/object/object_edit.c | 12 ++++++------ source/blender/editors/space_file/filelist.c | 22 ---------------------- source/blender/editors/space_nla/nla_edit.c | 2 +- source/blender/editors/space_node/node_edit.c | 2 +- .../editors/space_sequencer/sequencer_draw.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 16 ++++++---------- .../editors/space_sequencer/sequencer_select.c | 2 +- source/blender/editors/space_text/text_python.c | 5 +++-- source/blender/render/intern/source/rayshade.c | 2 +- source/blender/windowmanager/intern/wm_files.c | 2 +- source/blender/windowmanager/intern/wm_operators.c | 2 -- 15 files changed, 30 insertions(+), 51 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index c02b5dda9ce..bd238e72d0c 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1582,7 +1582,7 @@ void BKE_nla_tweakmode_exit (AnimData *adt) /* Baking Tools ------------------------------------------- */ -static void BKE_nla_bake (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag)) +static void UNUSED_FUNCTION(BKE_nla_bake) (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag)) { /* verify that data is valid diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h index 9af55601ff7..28ebb254f2a 100644 --- a/source/blender/blenlib/BLI_utildefines.h +++ b/source/blender/blenlib/BLI_utildefines.h @@ -183,6 +183,12 @@ # define UNUSED(x) UNUSED_ ## x #endif +#ifdef __GNUC__ +# define UNUSED_FUNCTION(x) __attribute__((__unused__)) UNUSED_ ## x +#else +# define UNUSED_FUNCTION(x) UNUSED_ ## x +#endif + #ifdef __GNUC__ # define WARN_UNUSED __attribute__((warn_unused_result)) #else diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 9497370a4fa..eb6854d2548 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -1697,7 +1697,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type) /* ctrl+c in mesh editmode */ -static void mesh_copy_menu(EditMesh *em, wmOperator *op) +static void UNUSED_FUNCTION(mesh_copy_menu)(EditMesh *em, wmOperator *op) { EditSelection *ese; int ret; diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index bfae101d38e..9ff2923f733 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -3895,7 +3895,7 @@ void MESH_OT_edge_rotate(wmOperatorType *ot) /* XXX old bevel not ported yet */ -static void bevel_menu(EditMesh *em) +static void UNUSED_FUNCTION(bevel_menu)(EditMesh *em) { BME_Mesh *bm; BME_TransData_Head *td; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index c8d38218533..61734bc51a2 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -721,7 +721,7 @@ static void spot_interactive(Object *ob, int mode) } #endif -static void special_editmenu(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(special_editmenu)(Scene *scene, View3D *v3d) { // XXX static short numcuts= 2; Object *ob= OBACT; @@ -1343,7 +1343,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) DAG_ids_flush_update(bmain, 0); } -static void copy_attr_menu(Main *bmain, Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v3d) { Object *ob; short event; @@ -1616,7 +1616,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) /* ********************** */ -static void image_aspect(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(image_aspect)(Scene *scene, View3D *v3d) { /* all selected objects with an image map: scale in image aspect */ Base *base; @@ -1691,7 +1691,7 @@ static int vergbaseco(const void *a1, const void *a2) } -static void auto_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(auto_timeoffs)(Scene *scene, View3D *v3d) { Base *base, **basesort, **bs; float start, delta; @@ -1732,7 +1732,7 @@ static void auto_timeoffs(Scene *scene, View3D *v3d) } -static void ofs_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(ofs_timeoffs)(Scene *scene, View3D *v3d) { float offset=0.0f; @@ -1751,7 +1751,7 @@ static void ofs_timeoffs(Scene *scene, View3D *v3d) } -static void rand_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(rand_timeoffs)(Scene *scene, View3D *v3d) { Base *base; float rand_ofs=0.0f; diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 6736230e84f..d8be312cf39 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -602,28 +602,6 @@ short filelist_changed(struct FileList* filelist) return filelist->changed; } -static struct ImBuf * filelist_loadimage(struct FileList* filelist, int index) -{ - ImBuf *imb = NULL; - int fidx = 0; - - if ( (index < 0) || (index >= filelist->numfiltered) ) { - return NULL; - } - fidx = filelist->fidx[index]; - imb = filelist->filelist[fidx].image; - if (!imb) - { - if ( (filelist->filelist[fidx].flags & IMAGEFILE) || (filelist->filelist[fidx].flags & MOVIEFILE) ) { - imb = IMB_thumb_read(filelist->filelist[fidx].path, THB_NORMAL); - } - if (imb) { - filelist->filelist[fidx].image = imb; - } - } - return imb; -} - struct ImBuf * filelist_getimage(struct FileList* filelist, int index) { ImBuf* ibuf = NULL; diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 77c91b28a63..af99087b0b8 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -951,7 +951,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_FINISHED; } -static void NLA_OT_bake (wmOperatorType *ot) +void NLA_OT_bake (wmOperatorType *ot) { /* identifiers */ ot->name= "Bake Strips"; diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 984e944321e..e8fc13e340e 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1641,7 +1641,7 @@ void NODE_OT_link_viewer(wmOperatorType *ot) /* return 0, nothing done */ -static int node_mouse_groupheader(SpaceNode *snode) +static int UNUSED_FUNCTION(node_mouse_groupheader)(SpaceNode *snode) { bNode *gnode; float mx=0, my=0; diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 98687bb90e0..dc84289a8de 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -702,7 +702,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline static Sequence *special_seq_update= 0; -static void set_special_seq_update(int val) +static void UNUSED_FUNCTION(set_special_seq_update)(int val) { // int x; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index ee5eb12f858..5429f0ee98f 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -75,10 +75,6 @@ /* own include */ #include "sequencer_intern.h" -static void error(const char *UNUSED(dummy)) {} -static void waitcursor(int UNUSED(val)) {} -static void activate_fileselect(int UNUSED(d1), const char *UNUSED(d2), const char *UNUSED(d3), void *UNUSED(d4)) {} -static int pupmenu(const char *UNUSED(dummy)) {return 0;} static int okee(const char *UNUSED(dummy)) {return 0;} @@ -139,7 +135,7 @@ void seq_rectf(Sequence *seq, rctf *rectf) rectf->ymax= seq->machine+SEQ_STRIP_OFSTOP; } -static void change_plugin_seq(Scene *scene, char *str) /* called from fileselect */ +static void UNUSED_FUNCTION(change_plugin_seq)(Scene *scene, char *str) /* called from fileselect */ { Editing *ed= seq_give_editing(scene, FALSE); struct SeqEffectHandle sh; @@ -762,7 +758,7 @@ static int insert_gap(Scene *scene, int gap, int cfra) return done; } -static void touch_seq_files(Scene *scene) +static void UNUSED_FUNCTION(touch_seq_files)(Scene *scene) { Sequence *seq; Editing *ed= seq_give_editing(scene, FALSE); @@ -774,7 +770,7 @@ static void touch_seq_files(Scene *scene) if(okee("Touch and print selected movies")==0) return; - waitcursor(1); + WM_cursor_wait(1); SEQP_BEGIN(ed, seq) { if(seq->flag & SELECT) { @@ -789,7 +785,7 @@ static void touch_seq_files(Scene *scene) } SEQ_END - waitcursor(0); + WM_cursor_wait(0); } /* @@ -817,7 +813,7 @@ static void set_filter_seq(Scene *scene) } */ -static void seq_remap_paths(Scene *scene) +static void UNUSED_FUNCTION(seq_remap_paths)(Scene *scene) { Sequence *seq, *last_seq = seq_active_get(scene); Editing *ed= seq_give_editing(scene, FALSE); @@ -858,7 +854,7 @@ static void seq_remap_paths(Scene *scene) } -static void no_gaps(Scene *scene) +static void UNUSED_FUNCTION(no_gaps)(Scene *scene) { Editing *ed= seq_give_editing(scene, FALSE); int cfra, first= 0, done; diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 8d5f372f55e..0ac23765167 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -159,7 +159,7 @@ void select_surround_from_last(Scene *scene) #endif -static void select_single_seq(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */ +static void UNUSED_FUNCTION(select_single_seq)(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */ { Editing *ed= seq_give_editing(scene, FALSE); diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c index 6e6f131655b..51b4b838171 100644 --- a/source/blender/editors/space_text/text_python.c +++ b/source/blender/editors/space_text/text_python.c @@ -43,6 +43,7 @@ #include "BKE_text.h" #include "BLI_blenlib.h" +#include "BLI_utildefines.h" #include "WM_types.h" @@ -192,7 +193,7 @@ static void confirm_suggestion(Text *text, int skipleft) // XXX static int doc_scroll= 0; -static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val) +static short UNUSED_FUNCTION(do_texttools)(SpaceText *st, char ascii, unsigned short evnt, short val) { ARegion *ar= NULL; // XXX int qual= 0; // XXX @@ -375,7 +376,7 @@ static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short ; // XXX redraw_alltext(); #endif -static short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val) +static short UNUSED_FUNCTION(do_textmarkers)(SpaceText *st, char ascii, unsigned short evnt, short val) { Text *text; TextMarker *marker, *mrk, *nxt; diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 34d3adcf15b..d62f411a7c5 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -1679,7 +1679,7 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int /* not used, test function for ambient occlusion (yaf: pathlight) */ /* main problem; has to be called within shading loop, giving unwanted recursion */ -static int ray_trace_shadow_rad(ShadeInput *ship, ShadeResult *shr) +static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *shr) { static int counter=0, only_one= 0; extern float hashvectf[]; diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index d9eb36eeb62..6b3a574b6b6 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -450,7 +450,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) /* called on startup, (context entirely filled with NULLs) */ /* or called for 'New File' */ /* op can be NULL */ -int WM_read_homefile(bContext *C, ReportList *reports, short from_memory) +int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory) { ListBase wmbase; char tstr[FILE_MAXDIR+FILE_MAXFILE]; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 105b2e8189a..1beb5b3dda3 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2010,8 +2010,6 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - int selected = 0; - if(!RNA_property_is_set(op->ptr, "filepath")) { char filepath[FILE_MAX]; BLI_strncpy(filepath, G.main->name, sizeof(filepath)); -- cgit v1.2.3 From cdb5d11c5f29fdb7dd6a5d15a42f395e8194980b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 15 Aug 2011 17:29:07 +0000 Subject: patch [#22523] Expose Object.parentinv matrix via RNA from Balajee R C (balajeerc) --- source/blender/makesrna/intern/rna_object.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 76bbfcbed41..55e1119f58e 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2025,7 +2025,14 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Input Matrix", "Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied."); RNA_def_property_float_funcs(prop, "rna_Object_matrix_basis_get", "rna_Object_matrix_basis_set", NULL); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); - + + /*parent_inverse*/ + prop= RNA_def_property(srna, "matrix_parent_inverse", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "parentinv"); + RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4); + RNA_def_property_ui_text(prop, "Matrix", "Inverse of object's parent matrix at time of parenting"); + RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); + /* collections */ prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "Constraint"); -- cgit v1.2.3 From 405218df6fa57794d8d7d932eeb6c92f94aff0bc Mon Sep 17 00:00:00 2001 From: Morten Mikkelsen Date: Mon, 15 Aug 2011 17:55:25 +0000 Subject: the diffuse kernel I had first picked for dilation turned out to be not as great as I first thought. This kernel is a more basic one (trite but true) --- source/blender/imbuf/intern/filter.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index 1644e653df4..3f391b91c0f 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -371,11 +371,15 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) float weight[25]; /* build a weights buffer */ - n= 2; - k= 0; + n= 1; + /*k= 0; for(i = -n; i <= n; i++) for(j = -n; j <= n; j++) weight[k++] = sqrt((float) i * i + j * j); + */ + weight[0]=1; weight[1]=2; weight[2]=1; + weight[3]=2; weight[4]=0; weight[5]=2; + weight[6]=1; weight[7]=2; weight[8]=1; /* run passes */ for(r = 0; cannot_early_out == 1 && r < filter; r++) { @@ -393,10 +397,10 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) float acc[4]={0,0,0,0}; k = 0; - if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || + /*if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x+1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y-1, width, height), depth, is_float) || - check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float)) { + check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float))*/ { for(i= -n; i<=n; i++) { for(j=-n; j<=n; j++) { if(i != 0 || j != 0) { -- cgit v1.2.3 From a458de88b65c5fcb0f11c005c040163d3cf76cec Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 15 Aug 2011 21:50:09 +0000 Subject: 3D Audio GSoC: High quality resampling on mixdown, linear for playback. * Lots of improvements and fixes for the JOS resampler, now it works fine! * High quality filter coefficients for the JOS resampler (sorry for the 5 MB source file). * Fix for GE orientation bug. Note: moto uses x,y,z,w quaternion storage, while rest of blender uses w,x,y,z. * Minor changes/fixes. --- source/blender/blenkernel/intern/sound.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 9c62b92a924..d7385a86105 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -372,14 +372,7 @@ void sound_load(struct Main *bmain, struct bSound* sound) AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, float volume) { - AUD_Device* mixdown = AUD_openReadDevice(specs); - - AUD_setDeviceVolume(mixdown, volume); - - AUD_setSequencerSpecs(scene->sound_scene, specs.specs); - AUD_freeHandle(AUD_playDevice(mixdown, scene->sound_scene, start / FPS)); - - return mixdown; + return AUD_openMixdownDevice(specs, scene->sound_scene, volume, start / FPS); } void sound_create_scene(struct Scene *scene) -- cgit v1.2.3 From a67562e73cbc2f4a9641fbc4d1147b4b2cc935c4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 16 Aug 2011 01:02:26 +0000 Subject: Bugfix [#28267] keyframed values for shapekeys of copied objects are linked Shapekey actions weren't getting copied when their owner data was. This was due to the IMO totally convoluted way in which the duplicate action flags have been set up: - the function to copy animdata takes a param to specify whether actions are copied or not, but this is never touched (i.e. this always just gets FALSE passed in) - instead, we jump around in hoops later figuring out whether the userpref wants copying to occur, then fixing up the links IIRC, part of this may be due to a desire/need to not duplicate actions when dealing with NodeTree copies for multi-threaded rendering, but at the expense of complicating everything else. --- source/blender/blenkernel/intern/anim_sys.c | 2 +- source/blender/blenkernel/intern/fmodifier.c | 2 +- source/blender/editors/object/object_add.c | 27 +++++---------------------- 3 files changed, 7 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 1c4746b1828..3c6daf8b39d 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -287,7 +287,7 @@ int BKE_copy_animdata_id (ID *id_to, ID *id_from, const short do_action) return 1; } -void BKE_copy_animdata_id_action(struct ID *id) +void BKE_copy_animdata_id_action(ID *id) { AnimData *adt= BKE_animdata_from_id(id); if (adt) { diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 64e51023816..42554679795 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -604,7 +604,7 @@ static float fcm_cycles_time (FCurve *fcu, FModifier *fcm, float UNUSED(cvalue), /* calculate the 'number' of the cycle */ cycle= ((float)side * (evaltime - ofs) / cycdx); - + /* calculate the time inside the cycle */ cyct= fmod(evaltime - ofs, cycdx); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 09ce2562e3b..6bc4c30a898 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -39,6 +39,7 @@ #include "DNA_curve_types.h" #include "DNA_group_types.h" #include "DNA_lamp_types.h" +#include "DNA_key_types.h" #include "DNA_material_types.h" #include "DNA_mesh_types.h" #include "DNA_meta_types.h" @@ -65,6 +66,7 @@ #include "BKE_group.h" #include "BKE_lattice.h" #include "BKE_library.h" +#include "BKE_key.h" #include "BKE_main.h" #include "BKE_material.h" #include "BKE_mball.h" @@ -1496,28 +1498,6 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } /* duplicates using userflags */ -#if 0 // XXX old animation system - if(dupflag & USER_DUP_IPO) { - bConstraintChannel *chan; - id= (ID *)obn->ipo; - - if(id) { - ID_NEW_US( obn->ipo) - else obn->ipo= copy_ipo(obn->ipo); - id->us--; - } - /* Handle constraint ipos */ - for (chan=obn->constraintChannels.first; chan; chan=chan->next){ - id= (ID *)chan->ipo; - if(id) { - ID_NEW_US( chan->ipo) - else chan->ipo= copy_ipo(chan->ipo); - id->us--; - } - } - } -#endif // XXX old animation system - if(dupflag & USER_DUP_ACT) { BKE_copy_animdata_id_action(&obn->id); } @@ -1674,8 +1654,11 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base /* check if obdata is copied */ if(didit) { + Key *key = ob_get_key(obn); + if(dupflag & USER_DUP_ACT) { BKE_copy_animdata_id_action((ID *)obn->data); + if(key) BKE_copy_animdata_id_action((ID*)key); } if(dupflag & USER_DUP_MAT) { -- cgit v1.2.3 From b4df54151a5fe9e81e44bb75f6c9b3026b13d2e9 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 16 Aug 2011 08:40:25 +0000 Subject: 2.6 Node Muting: * Removing check if Node is in between, so in-/output nodes can be muted as well. Useful for example if you want to temporarily mute a file output node. --- source/blender/editors/space_node/node_edit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index e8fc13e340e..9cafc46ca53 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -3007,10 +3007,10 @@ static int node_mute_exec(bContext *C, wmOperator *UNUSED(op)) for(node= snode->edittree->nodes.first; node; node= node->next) { if(node->flag & SELECT) { - if(node->inputs.first && node->outputs.first) { + /* Be able to mute in-/output nodes as well. - DingTo + if(node->inputs.first && node->outputs.first) { */ node->flag ^= NODE_MUTED; snode_tag_changed(snode, node); - } } } -- cgit v1.2.3 From c7f9e9a80f474cde25fa3da574b2dd1259700481 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 16 Aug 2011 10:31:28 +0000 Subject: Fix #28273: Crash playing with Follow path+Bevel+Material Crash was caused by old refactor of displists. Added additional check to makeDispListCurveTypes. --- source/blender/blenkernel/intern/displist.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 8f57490d057..c2ed6468643 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -1369,6 +1369,11 @@ void makeDispListCurveTypes(Scene *scene, Object *ob, int forOrco) Curve *cu= ob->data; ListBase *dispbase; + /* The same check for duplis as in do_makeDispListCurveTypes. + Happens when curve used for constraint/bevel was converted to mesh. + check there is still needed for render displist and orco displists. */ + if(!ELEM3(ob->type, OB_SURF, OB_CURVE, OB_FONT)) return; + freedisplist(&(ob->disp)); dispbase= &(ob->disp); freedisplist(dispbase); -- cgit v1.2.3 From 02d2472baacd8ac091a29392a2bc9ac8693fb5e7 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 16 Aug 2011 13:00:55 +0000 Subject: 3D Audio GSoC: Code documentation. Also: * Fix: rlint for MSVC. * Minor other small fixes/changes. --- source/blender/makesrna/intern/rna_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 7f8aeb65209..2a558da1cb0 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -46,7 +46,7 @@ #ifdef WITH_QUICKTIME #include "quicktime_export.h" # ifdef WITH_AUDASPACE -# include "AUD_C-API.h" +# include "AUD_Space.h" # endif #endif -- cgit v1.2.3 From e98074d327217d1fcc205aaff995a1bded08971a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 Aug 2011 13:10:46 +0000 Subject: remove support for deprecated Vector() * Matrix(), eventually this will be added back as row_vector_multiplication bu to avoid confusion for a bit just disable it altogether so script authors get an error on use and update their scripts. --- source/blender/python/mathutils/mathutils_Vector.c | 101 +++++++-------------- 1 file changed, 34 insertions(+), 67 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index 9d52f45665f..56c1334ecac 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -37,8 +37,6 @@ #include "BLI_math.h" #include "BLI_utildefines.h" -extern void PyC_LineSpit(void); - #define MAX_DIMENSIONS 4 /* Swizzle axes get packed into a single value that is used as a closure. Each @@ -1161,28 +1159,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } else if (vec1) { if (MatrixObject_Check(v2)) { - extern void PyC_LineSpit(void); - - /* VEC * MATRIX */ - /* this is deprecated!, use the reverse instead */ - float tvec[MAX_DIMENSIONS]; - /* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT +#if 1 PyErr_SetString(PyExc_ValueError, "(Vector * Matrix) is now removed, reverse the " "order (promoted to an Error for Debug builds)"); return NULL; #else - printf("Warning: (Vector * Matrix) is now deprecated, " - "reverse the multiplication order in the script.\n"); - PyC_LineSpit(); -#endif -#endif /* ifndef MATH_STANDALONE */ -/* ------ to be removed ------*/ + /* VEC * MATRIX */ + /* this is deprecated!, use the reverse instead */ + float tvec[MAX_DIMENSIONS]; if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; @@ -1191,9 +1179,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } return newVectorObject(tvec, vec1->size, Py_NEW, Py_TYPE(vec1)); +#endif +/* ------ to be removed ------*/ } else if (QuaternionObject_Check(v2)) { /* VEC * QUAT */ +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector * Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else QuaternionObject *quat2 = (QuaternionObject*)v2; float tvec[3]; @@ -1207,26 +1204,11 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) return NULL; } - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector * Quat) is now removed, reverse the " - "order (promoted to an Error for Debug builds)"); - return NULL; -#else - printf("Warning: (Vector * Quat) is now deprecated, " - "reverse the multiplication order in the script.\n"); - PyC_LineSpit(); -#endif -#endif /* ifndef MATH_STANDALONE */ -/* ------ to be removed ------*/ - - copy_v3_v3(tvec, vec1->vec); mul_qt_v3(quat2->quat, tvec); return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); +#endif +/* ------ to be removed ------*/ } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */ return vector_mul_float(vec1, scalar); @@ -1260,6 +1242,14 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) /* only support vec*=float and vec*=mat vec*=vec result is a float so that wont work */ if (MatrixObject_Check(v2)) { +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector *= Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else float rvec[MAX_DIMENSIONS]; if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; @@ -1267,28 +1257,21 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) return NULL; - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector *= Matrix) is now removed, reverse the " - "order (promoted to an Error for Debug builds) " - "and uses the non in-place multiplication."); - return NULL; -#else - printf("Warning: (Vector *= Matrix) is now deprecated, " - "reverse the (non in-place) multiplication order in the script.\n"); - PyC_LineSpit(); + memcpy(vec->vec, rvec, sizeof(float) * vec->size); #endif -#endif /* ifndef MATH_STANDALONE */ /* ------ to be removed ------*/ - - - memcpy(vec->vec, rvec, sizeof(float) * vec->size); } else if (QuaternionObject_Check(v2)) { /* VEC *= QUAT */ + +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector *= Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else QuaternionObject *quat2 = (QuaternionObject*)v2; if(vec->size != 3) { @@ -1302,25 +1285,9 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) return NULL; } - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector *= Quat) is now removed, reverse the " - "order (promoted to an Error for Debug builds) " - "and uses the non in-place multiplication."); - return NULL; -#else - printf("Warning: (Vector *= Quat) is now deprecated, " - "reverse the (non in-place) multiplication order in the script.\n"); - PyC_LineSpit(); + mul_qt_v3(quat2->quat, vec->vec); #endif -#endif /* ifndef MATH_STANDALONE */ /* ------ to be removed ------*/ - - - mul_qt_v3(quat2->quat, vec->vec); } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ mul_vn_fl(vec->vec, vec->size, scalar); -- cgit v1.2.3 From dddfb5e1738830c325e796a474d0ea14d64654f3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 Aug 2011 13:46:51 +0000 Subject: minor fix, armature selection outline was not being drawn for non-active, selected armature object when they were in pose mode. --- source/blender/editors/space_view3d/drawobject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 78788777f49..f5c178267aa 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5477,7 +5477,7 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base) } } else if(ob->type==OB_ARMATURE) { - if(!(ob->mode & OB_MODE_POSE)) + if(!(ob->mode & OB_MODE_POSE && base == scene->basact)) draw_armature(scene, v3d, ar, base, OB_WIRE, FALSE, TRUE); } -- cgit v1.2.3 From f04fb5b6eaed0877ddeb66e1099ed930fc439812 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 16 Aug 2011 16:03:37 +0000 Subject: Finalizing. --- source/blender/collada/AnimationExporter.cpp | 130 +++++++++++++++++++-------- source/blender/collada/AnimationExporter.h | 2 +- source/blender/collada/AnimationImporter.cpp | 2 +- source/blender/collada/AnimationImporter.h | 2 +- source/blender/collada/ArmatureExporter.cpp | 2 +- source/blender/collada/ArmatureImporter.cpp | 28 +++--- source/blender/collada/DocumentImporter.cpp | 9 +- 7 files changed, 115 insertions(+), 60 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index a777f4ae984..d2ff369c613 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -61,13 +61,14 @@ void AnimationExporter::exportAnimations(Scene *sce) bool isMatAnim = false; if(ob->adt && ob->adt->action) { - if ( ob->type == OB_ARMATURE ) + //transform matrix export for bones are temporarily disabled here. + /*if ( ob->type == OB_ARMATURE ) { bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) bake_bone_animation(ob, bone); - } + }*/ fcu = (FCurve*)ob->adt->action->curves.first; while (fcu) { transformName = extract_transform_name( fcu->rna_path ); @@ -988,8 +989,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { std::string tm_name; - bool is_rotation =false; - // when given rna_path, determine tm_type from it + // when given rna_path, determine tm_type from it if (rna_path) { char *name = extract_transform_name(rna_path); @@ -1033,6 +1033,57 @@ void AnimationExporter::exportAnimations(Scene *sce) return std::string(""); } + + std::string AnimationExporter::get_camera_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) + { + std::string tm_name; + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (!strcmp(name, "lens")) + tm_type = 0; + else if (!strcmp(name, "ortho_scale")) + tm_type = 1; + else if (!strcmp(name, "clip_end")) + tm_type = 2; + else if (!strcmp(name, "clip_start")) + tm_type = 3; + + else + tm_type = -1; + } + + switch (tm_type) { + case 0: + tm_name = "xfov"; + break; + case 1: + tm_name = "xmag"; + break; + case 2: + tm_name = "zfar"; + break; + case 3: + tm_name = "znear"; + break; + + default: + tm_name = ""; + break; + } + + if (tm_name.size()) { + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; + } + + return std::string(""); + } + + // Assign sid of the animated parameter or transform // for rotation, axis name is always appended and the value of append_axis is ignored std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { @@ -1137,6 +1188,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return dot ? (dot + 1) : rna_path; } + //find keyframes of all the objects animations void AnimationExporter::find_frames(Object *ob, std::vector &fra) { FCurve *fcu= (FCurve*)ob->adt->action->curves.first; @@ -1154,38 +1206,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::sort(fra.begin(), fra.end()); } - - void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) - { - FCurve *fcu= (FCurve*)ob->adt->action->curves.first; - - for (; fcu; fcu = fcu->next) { - if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) - continue; - - char *name = extract_transform_name(fcu->rna_path); - if (!strcmp(name, tm_name)) { - for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; // - if (std::find(fra.begin(), fra.end(), f) == fra.end()) - fra.push_back(f); - } - } - } - - // keep the keys in ascending order - std::sort(fra.begin(), fra.end()); - } - - void AnimationExporter::find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) - { - if (rotmode > 0) - find_frames(ob, fra, prefix, "rotation_euler"); - else if (rotmode == ROT_MODE_QUAT) - find_frames(ob, fra, prefix, "rotation_quaternion"); - /*else if (rotmode == ROT_MODE_AXISANGLE) - ;*/ - } + // enable fcurves driving a specific bone, disable all the rest // if bone_name = NULL enable all fcurves @@ -1218,13 +1239,17 @@ void AnimationExporter::exportAnimations(Scene *sce) Object *ob = base->object; FCurve *fcu = 0; + //Check for object transform animations if(ob->adt && ob->adt->action) fcu = (FCurve*)ob->adt->action->curves.first; + //Check for Lamp parameter animations else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + //Check for Camera parameter animations else if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); + //Check Material Effect parameter animations. for(int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); @@ -1240,3 +1265,36 @@ void AnimationExporter::exportAnimations(Scene *sce) } return false; } + + //------------------------------- Not used in the new system.-------------------------------------------------------- + void AnimationExporter::find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) + { + if (rotmode > 0) + find_frames(ob, fra, prefix, "rotation_euler"); + else if (rotmode == ROT_MODE_QUAT) + find_frames(ob, fra, prefix, "rotation_quaternion"); + /*else if (rotmode == ROT_MODE_AXISANGLE) + ;*/ + } + + void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) + { + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + + for (; fcu; fcu = fcu->next) { + if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) + continue; + + char *name = extract_transform_name(fcu->rna_path); + if (!strcmp(name, tm_name)) { + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; // + if (std::find(fra.begin(), fra.end(), f) == fra.end()) + fra.push_back(f); + } + } + } + + // keep the keys in ascending order + std::sort(fra.begin(), fra.end()); + } diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 6cf3207b8a0..e1b03b969dc 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -143,7 +143,7 @@ protected: // for rotation, axis name is always appended and the value of append_axis is ignored std::string get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); std::string get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); - + std::string get_camera_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis); void find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name); void find_frames(Object *ob, std::vector &fra); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 0549f133031..29bd0bd93b7 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory. + * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory, Sukhitha Jayathilake. * * ***** END GPL LICENSE BLOCK ***** */ diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 9aec7df1099..fbb53ceedb6 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory. + * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory , Sukhitha Jayathilake. * * ***** END GPL LICENSE BLOCK ***** */ diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 6849e4de7dd..b033c780530 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -224,7 +224,7 @@ void ArmatureExporter::add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW: mul_m4_m4m4(mat, pchan->pose_mat, ob_arm->obmat); } - TransformWriter::add_node_transform(node, mat, NULL); + TransformWriter::add_node_transform(node, mat,NULL ); } std::string ArmatureExporter::get_controller_id(Object *ob_arm, Object *ob) diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 7a3c6a0644f..7acae995396 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory. + * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory, Sukhitha jayathilake. * * ***** END GPL LICENSE BLOCK ***** */ @@ -37,6 +37,7 @@ #include "BKE_action.h" #include "BKE_depsgraph.h" #include "BKE_object.h" +#include "BKE_armature.h" #include "BLI_string.h" #include "ED_armature.h" @@ -97,28 +98,21 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p if (parent) bone->parent = parent; float ax[3]; - float angle = NULL; + float angle = 0; // get world-space if (parent){ mul_m4_m4m4(mat, obmat, parent_mat); - bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parent->name); - if ( parchan && pchan) - mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); - mat4_to_axis_angle(ax,&angle,mat); - bone->roll = angle; + } else { copy_m4_m4(mat, obmat); - float invObmat[4][4]; - invert_m4_m4(invObmat, ob_arm->obmat); - if(pchan) - mul_m4_m4m4(pchan->pose_mat, mat, invObmat); - mat4_to_axis_angle(ax,&angle,mat); - bone->roll = angle; - } - + } + float loc[3], size[3], rot[3][3]; + mat4_to_loc_rot_size( loc, rot, size, obmat); + mat3_to_vec_roll(rot, NULL, &angle ); + bone->roll=angle; // set head copy_v3_v3(bone->head, mat[3]); @@ -130,10 +124,10 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // set parent tail if (parent && totchild == 1) { copy_v3_v3(parent->tail, bone->head); - + // not setting BONE_CONNECTED because this would lock child bone location with respect to parent // bone->flag |= BONE_CONNECTED; - + // XXX increase this to prevent "very" small bones? const float epsilon = 0.000001f; diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index a4d1c1b451f..f6c985626db 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -410,15 +410,18 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren while (geom_done < geom.getCount()) { ob = mesh_importer.create_mesh_object(node, geom[geom_done], false, uid_material_map, material_texture_mapping_map); - ++geom_done; + if ( ob != NULL ) + ++geom_done; } while (camera_done < camera.getCount()) { ob = create_camera_object(camera[camera_done], sce); - ++camera_done; + if ( ob != NULL ) + ++camera_done; } while (lamp_done < lamp.getCount()) { ob = create_lamp_object(lamp[lamp_done], sce); - ++lamp_done; + if ( ob != NULL ) + ++lamp_done; } while (controller_done < controller.getCount()) { COLLADAFW::InstanceGeometry *geom = (COLLADAFW::InstanceGeometry*)controller[controller_done]; -- cgit v1.2.3 From d79967e164c1a093df955787329da490f4878c01 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Tue, 16 Aug 2011 17:17:13 +0000 Subject: Animation Exporter clean up. --- source/blender/collada/AnimationExporter.cpp | 383 +++++++++++++-------------- source/blender/collada/AnimationExporter.h | 4 +- 2 files changed, 193 insertions(+), 194 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index d2ff369c613..e76d7c0cfa6 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -59,6 +59,8 @@ void AnimationExporter::exportAnimations(Scene *sce) FCurve *fcu; char * transformName ; bool isMatAnim = false; + + //Export transform animations if(ob->adt && ob->adt->action) { //transform matrix export for bones are temporarily disabled here. @@ -66,7 +68,7 @@ void AnimationExporter::exportAnimations(Scene *sce) { bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - bake_bone_animation(ob, bone); + write_bone_animation_matrix(ob, bone); }*/ fcu = (FCurve*)ob->adt->action->curves.first; @@ -80,6 +82,8 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu = fcu->next; } } + + //Export Lamp parameter animations if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) { fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); @@ -93,6 +97,7 @@ void AnimationExporter::exportAnimations(Scene *sce) } } + //Export Camera parameter animations if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) { fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); @@ -107,6 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce) } } + //Export Material parameter animations. for(int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); @@ -127,28 +133,30 @@ void AnimationExporter::exportAnimations(Scene *sce) } } - //if (!ob->adt || !ob->adt->action) - // fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() - //else - // fcu = (FCurve*)ob->adt->action->curves.first; + /* Old System + if (!ob->adt || !ob->adt->action) + fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() + else + fcu = (FCurve*)ob->adt->action->curves.first; - //if (ob->type == OB_ARMATURE) { - // if (!ob->data) return; - // bArmature *arm = (bArmature*)ob->data; - // while(fcu) - // { - // transformName = extract_transform_name( fcu->rna_path ); - // // std::string ob_name = getObjectBoneName( ob , fcu); - // // for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - // // write_bone_animation(ob, bone); - // dae_animation(ob, fcu, ob_name, transformName); - // fcu = fcu->next; - // } - //} - //else { + if (ob->type == OB_ARMATURE) { + if (!ob->data) return; + bArmature *arm = (bArmature*)ob->data; + while(fcu) + { + transformName = extract_transform_name( fcu->rna_path ); + // std::string ob_name = getObjectBoneName( ob , fcu); + // for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) + // write_bone_animation(ob, bone); + dae_animation(ob, fcu, ob_name, transformName); + fcu = fcu->next; + } + } + else {*/ } + //euler sources from quternion sources float * AnimationExporter::get_eul_source_for_quat(Object *ob ) { FCurve *fcu = (FCurve*)ob->adt->action->curves.first; @@ -183,6 +191,8 @@ void AnimationExporter::exportAnimations(Scene *sce) return eul; } + + //Get proper name for bones std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) { //hard-way to derive the bone name from rna_path. Must find more compact method @@ -197,9 +207,9 @@ void AnimationExporter::exportAnimations(Scene *sce) return id_name(ob); } + //convert f-curves to animation curves and write void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material * ma ) { - const char *axis_name = NULL; char anim_id[200]; @@ -210,12 +220,10 @@ void AnimationExporter::exportAnimations(Scene *sce) { fprintf(stderr, "quaternion rotation curves are not supported. rotation curve will not be exported\n"); quatRotation = true; - /*const char *axis_names[] = {"", "X", "Y", "Z"}; - if (fcu->array_index < 4) - axis_name = axis_names[fcu->array_index];*/ return; } - //maybe a list or a vector of float animations + + //axis names for colors else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| (!strcmp(transformName, "alpha"))) { @@ -223,18 +231,24 @@ void AnimationExporter::exportAnimations(Scene *sce) if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; } + + //axis names for transforms else if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || - (!strcmp(transformName, "rotation_euler"))) + (!strcmp(transformName, "rotation_euler"))||(!strcmp(transformName, "rotation_quaternion"))) { const char *axis_names[] = {"X", "Y", "Z"}; if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; } + + //no axis name. single parameter. else{ axis_name = ""; } std::string ob_name = std::string("null"); + + //Create anim Id if (ob->type == OB_ARMATURE) { ob_name = getObjectBoneName( ob , fcu); @@ -251,8 +265,6 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu->rna_path, axis_name); } - // check rna_path is one of: rotation, scale, location - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); // create input source @@ -261,6 +273,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // create output source std::string output_id ; + //quat rotations are skipped for now, because of complications with determining axis. if(quatRotation) { float * eul = get_eul_source_for_quat(ob); @@ -269,7 +282,7 @@ void AnimationExporter::exportAnimations(Scene *sce) eul_axis[i] = eul[i*3 + fcu->array_index]; output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); } - else + else { output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); } @@ -288,7 +301,6 @@ void AnimationExporter::exportAnimations(Scene *sce) outtangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUT_TANGENT, fcu, anim_id, axis_name); } - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); std::string empty; @@ -318,7 +330,7 @@ void AnimationExporter::exportAnimations(Scene *sce) if ( ob->type == OB_CAMERA ) target = get_camera_id(ob) - + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + + "/" + get_camera_param_sid(fcu->rna_path, -1, axis_name, true); if( ma ) target = translate_id(id_name(ma)) + "-effect" @@ -329,34 +341,22 @@ void AnimationExporter::exportAnimations(Scene *sce) closeAnimation(); } - void AnimationExporter::bake_bone_animation(Object *ob_arm, Bone *bone) + + + //write bone animations in transform matrix sources + void AnimationExporter::write_bone_animation_matrix(Object *ob_arm, Bone *bone) { if (!ob_arm->adt) return; - sample_and_bake_bone_animation(ob_arm, bone); + sample_and_write_bone_animation_matrix(ob_arm, bone); for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) - bake_bone_animation(ob_arm, child); + write_bone_animation_matrix(ob_arm, child); } - void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) - { - if (!ob_arm->adt) - return; - - //write bone animations for 3 transform types - //i=0 --> rotations - //i=1 --> scale - //i=2 --> location - for (int i = 0; i < 3; i++) - sample_and_write_bone_animation(ob_arm, bone, i); - - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) - write_bone_animation(ob_arm, child); - } - - void AnimationExporter::sample_and_bake_bone_animation(Object *ob_arm, Bone *bone) + + void AnimationExporter::sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone) { bArmature *arm = (bArmature*)ob_arm->data; int flag = arm->flag; @@ -377,7 +377,6 @@ void AnimationExporter::exportAnimations(Scene *sce) } if (fra.size()) { - //int total = fra.back() - fra.front(); float *values = (float*)MEM_callocN(sizeof(float) * 16 * fra.size(), "temp. anim frames"); sample_animation(values, fra, bone, ob_arm, pchan); @@ -390,68 +389,6 @@ void AnimationExporter::exportAnimations(Scene *sce) where_is_pose(scene, ob_arm); } - void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) - { - bArmature *arm = (bArmature*)ob_arm->data; - int flag = arm->flag; - std::vector fra; - char prefix[256]; - - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); - - bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); - if (!pchan) - return; - //Fill frame array with key frame values framed at @param:transform_type - switch (transform_type) { - case 0: - find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); - break; - case 1: - find_frames(ob_arm, fra, prefix, "scale"); - break; - case 2: - find_frames(ob_arm, fra, prefix, "location"); - break; - default: - return; - } - - // exit rest position - if (flag & ARM_RESTPOS) { - arm->flag &= ~ARM_RESTPOS; - where_is_pose(scene, ob_arm); - } - //v array will hold all values which will be exported. - if (fra.size()) { - float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); - sample_animation(values, fra, transform_type, bone, ob_arm, pchan); - - if (transform_type == 0) { - // write x, y, z curves separately if it is rotation - float *axisValues = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); - - for (int i = 0; i < 3; i++) { - for (unsigned int j = 0; j < fra.size(); j++) - axisValues[j] = values[j * 3 + i]; - - dae_bone_animation(fra, axisValues, transform_type, i, id_name(ob_arm), bone->name); - } - MEM_freeN(axisValues); - } - else { - // write xyz at once if it is location or scale - dae_bone_animation(fra, values, transform_type, -1, id_name(ob_arm), bone->name); - } - - MEM_freeN(values); - } - - // restore restpos - if (flag & ARM_RESTPOS) - arm->flag = flag; - where_is_pose(scene, ob_arm); - } void AnimationExporter::sample_animation(float *v, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pchan) { @@ -503,56 +440,7 @@ void AnimationExporter::exportAnimations(Scene *sce) } - void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) - { - bPoseChannel *parchan = NULL; - bPose *pose = ob_arm->pose; - - pchan = get_pose_channel(pose, bone->name); - - if (!pchan) - return; - - parchan = pchan->parent; - - enable_fcurves(ob_arm->adt->action, bone->name); - - std::vector::iterator it; - for (it = frames.begin(); it != frames.end(); it++) { - float mat[4][4], ipar[4][4]; - - float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - - //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); - //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); - where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); - - // compute bone local mat - if (bone->parent) { - invert_m4_m4(ipar, parchan->pose_mat); - mul_m4_m4m4(mat, pchan->pose_mat, ipar); - } - else - copy_m4_m4(mat, pchan->pose_mat); - - switch (type) { - case 0: - mat4_to_eul(v, mat); - break; - case 1: - mat4_to_size(v, mat); - break; - case 2: - copy_v3_v3(v, mat[3]); - break; - } - - v += 3; - } - - enable_fcurves(ob_arm->adt->action, NULL); - } - + void AnimationExporter::dae_baked_animation(std::vector &fra, float *values, std::string ob_name, std::string bone_name) { char anim_id[200]; @@ -1101,24 +989,16 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_type = 2; else if (!strcmp(name, "location")) tm_type = 3; - else if (!strcmp(name, "lens")) - tm_type = 4; - else if (!strcmp(name, "ortho_scale")) - tm_type = 5; - else if (!strcmp(name, "clip_end")) - tm_type = 6; - else if (!strcmp(name, "clip_start")) - tm_type = 7; else if (!strcmp(name, "specular_hardness")) - tm_type = 8; + tm_type = 4; else if (!strcmp(name, "specular_color")) - tm_type = 9; + tm_type = 5; else if (!strcmp(name, "diffuse_color")) - tm_type = 10; + tm_type = 6; else if (!strcmp(name, "alpha")) - tm_type = 11; + tm_type = 7; else if (!strcmp(name, "ior")) - tm_type = 12; + tm_type = 8; else tm_type = -1; @@ -1137,30 +1017,18 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = "location"; break; case 4: - tm_name = "xfov"; - break; - case 5: - tm_name = "xmag"; - break; - case 6: - tm_name = "zfar"; - break; - case 7: - tm_name = "znear"; - break; - case 8: tm_name = "shininess"; break; - case 9: + case 5: tm_name = "specular"; break; - case 10: + case 6: tm_name = "diffuse"; break; - case 11: + case 7: tm_name = "transparency"; break; - case 12: + case 8: tm_name = "index_of_refraction"; break; @@ -1298,3 +1166,134 @@ void AnimationExporter::exportAnimations(Scene *sce) // keep the keys in ascending order std::sort(fra.begin(), fra.end()); } + + void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) + { + if (!ob_arm->adt) + return; + + //write bone animations for 3 transform types + //i=0 --> rotations + //i=1 --> scale + //i=2 --> location + for (int i = 0; i < 3; i++) + sample_and_write_bone_animation(ob_arm, bone, i); + + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + write_bone_animation(ob_arm, child); + } + + void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) + { + bArmature *arm = (bArmature*)ob_arm->data; + int flag = arm->flag; + std::vector fra; + char prefix[256]; + + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); + + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); + if (!pchan) + return; + //Fill frame array with key frame values framed at @param:transform_type + switch (transform_type) { + case 0: + find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); + break; + case 1: + find_frames(ob_arm, fra, prefix, "scale"); + break; + case 2: + find_frames(ob_arm, fra, prefix, "location"); + break; + default: + return; + } + + // exit rest position + if (flag & ARM_RESTPOS) { + arm->flag &= ~ARM_RESTPOS; + where_is_pose(scene, ob_arm); + } + //v array will hold all values which will be exported. + if (fra.size()) { + float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); + sample_animation(values, fra, transform_type, bone, ob_arm, pchan); + + if (transform_type == 0) { + // write x, y, z curves separately if it is rotation + float *axisValues = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); + + for (int i = 0; i < 3; i++) { + for (unsigned int j = 0; j < fra.size(); j++) + axisValues[j] = values[j * 3 + i]; + + dae_bone_animation(fra, axisValues, transform_type, i, id_name(ob_arm), bone->name); + } + MEM_freeN(axisValues); + } + else { + // write xyz at once if it is location or scale + dae_bone_animation(fra, values, transform_type, -1, id_name(ob_arm), bone->name); + } + + MEM_freeN(values); + } + + // restore restpos + if (flag & ARM_RESTPOS) + arm->flag = flag; + where_is_pose(scene, ob_arm); + } + + void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) + { + bPoseChannel *parchan = NULL; + bPose *pose = ob_arm->pose; + + pchan = get_pose_channel(pose, bone->name); + + if (!pchan) + return; + + parchan = pchan->parent; + + enable_fcurves(ob_arm->adt->action, bone->name); + + std::vector::iterator it; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + + //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); + //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); + } + else + copy_m4_m4(mat, pchan->pose_mat); + + switch (type) { + case 0: + mat4_to_eul(v, mat); + break; + case 1: + mat4_to_size(v, mat); + break; + case 2: + copy_v3_v3(v, mat[3]); + break; + } + + v += 3; + } + + enable_fcurves(ob_arm->adt->action, NULL); + } + + diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index e1b03b969dc..6786206ee6f 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -96,13 +96,13 @@ protected: void dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material *ma = NULL); - void bake_bone_animation(Object *ob_arm, Bone *bone); + void write_bone_animation_matrix(Object *ob_arm, Bone *bone); void write_bone_animation(Object *ob_arm, Bone *bone); void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type); - void sample_and_bake_bone_animation(Object *ob_arm, Bone *bone); + void sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone); void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); -- cgit v1.2.3 From 9b5c0f65aa6ef942709ea7156ee5a20e9b5f94e9 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Tue, 16 Aug 2011 19:59:08 +0000 Subject: BGE Animations: Increasing the max layer count to 8 as per a user request. Also, layer checks were checking for values between 0 and MAX_ACTION_LAYERS when they should have been checking for values between 0 and MAX_ACTION_LAYERS - 1. --- source/blender/makesrna/intern/rna_actuator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 3c44720d469..5eccba16c3d 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -627,7 +627,7 @@ static void rna_def_action_actuator(BlenderRNA *brna) RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "layer", PROP_INT, PROP_NONE); - RNA_def_property_range(prop, 0, 4); /* This should match BL_ActionManager::MAX_ACTION_LAYERS */ + RNA_def_property_range(prop, 0, 7); /* This should match BL_ActionManager::MAX_ACTION_LAYERS - 1 */ RNA_def_property_ui_text(prop, "Layer", "The animation layer to play the action on"); RNA_def_property_update(prop, NC_LOGIC, NULL); -- cgit v1.2.3 From feb52de6b500fe889f8a2b28d2b510087107ec88 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 Aug 2011 22:18:24 +0000 Subject: fix for error calling RNA_property_float_get_index on non array float rotations when displaying. --- source/blender/editors/interface/interface_regions.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 8bce27e366b..a55ee01202c 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -424,7 +424,8 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) if (unit_type == PROP_UNIT_ROTATION) { if (RNA_property_type(but->rnaprop) == PROP_FLOAT) { - BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Radians: %f", RNA_property_float_get_index(&but->rnapoin, but->rnaprop, but->rnaindex)); + float value= RNA_property_array_check(but->rnaprop) ? RNA_property_float_get_index(&but->rnapoin, but->rnaprop, but->rnaindex) : RNA_property_float_get(&but->rnapoin, but->rnaprop); + BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Radians: %f", value); data->color[data->totline]= 0x888888; data->totline++; } -- cgit v1.2.3 From dd8d24ff9d48d4103e414cbe18e6c40644051f19 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 Aug 2011 22:44:12 +0000 Subject: fix [#28274] Cant select aditional object in edit mode. missing feature from 2.4x --- source/blender/editors/space_view3d/view3d_select.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index c6835b0cad3..86112a42d99 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1335,9 +1335,9 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short obce if(oldbasact != basact) { ED_base_object_activate(C, basact); /* adds notifier */ } - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); } + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); } return retval; @@ -1841,8 +1841,8 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event) int retval = 0; view3d_operator_needs_opengl(C); - - if(obedit) { + + if(obedit && center==FALSE) { if(obedit->type==OB_MESH) retval = mouse_mesh(C, event->mval, extend); else if(obedit->type==OB_ARMATURE) @@ -1889,7 +1889,7 @@ void VIEW3D_OT_select(wmOperatorType *ot) /* properties */ RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first."); - RNA_def_boolean(ot->srna, "center", 0, "Center", "Use the object center when selecting (object mode only)."); + RNA_def_boolean(ot->srna, "center", 0, "Center", "Use the object center when selecting, in editmode used to extend object selection."); RNA_def_boolean(ot->srna, "enumerate", 0, "Enumerate", "List objects under the mouse (object mode only)."); } -- cgit v1.2.3 From 0bac3e17dfb1cfc0b65adf1a29960cab2213d6a3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 17 Aug 2011 12:09:02 +0000 Subject: Fix #28194, #28269: proxy object was not showing pose mode as available in 3d view header mode menu. A recent bugfix was incorrectly hiding pose and particle mode when the object data was library linked, but these modes edit object level settings so should be available. --- .../blender/editors/space_view3d/view3d_header.c | 41 +++++++++++----------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 5b95ae63e56..70b2a3d3628 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -281,31 +281,32 @@ static char *view3d_modeselect_pup(Scene *scene) str += sprintf(str, formatstr, "Object Mode", OB_MODE_OBJECT, ICON_OBJECT_DATA); if(ob==NULL || ob->data==NULL) return string; - if(ob->id.lib || ((ID *)ob->data)->lib) return string; + if(ob->id.lib) return string; - /* if active object is editable */ - if ( ((ob->type == OB_MESH) - || (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT) - || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) { - - str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT); - } - else if (ob->type == OB_ARMATURE) { - if (ob->mode & OB_MODE_POSE) - str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT); - else + if(!((ID *)ob->data)->lib) { + /* if active object is editable */ + if ( ((ob->type == OB_MESH) + || (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT) + || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) { + str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT); - } + } + else if (ob->type == OB_ARMATURE) { + if (ob->mode & OB_MODE_POSE) + str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT); + else + str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT); + } - if (ob->type == OB_MESH) { + if (ob->type == OB_MESH) { - str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT); - str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT); - str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT); - str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT); + str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT); + str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT); + str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT); + str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT); + } } - - + /* if active object is an armature */ if (ob->type==OB_ARMATURE) { str += sprintf(str, formatstr, "Pose Mode", OB_MODE_POSE, ICON_POSE_HLT); -- cgit v1.2.3 From b6dcf3b1c24fe43193ae4697b383cf1514a3caff Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 17 Aug 2011 12:52:38 +0000 Subject: Fix #28277: changing smoke border collision type did not reset cache, making it seem like the option wasn't working. --- source/blender/makesrna/intern/rna_smoke.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c index 43d1aa24229..8abf774ff52 100644 --- a/source/blender/makesrna/intern/rna_smoke.c +++ b/source/blender/makesrna/intern/rna_smoke.c @@ -247,7 +247,7 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "border_collisions"); RNA_def_property_enum_items(prop, smoke_domain_colli_items); RNA_def_property_ui_text(prop, "Border Collisions", "Selects which domain border will be treated as collision object."); - RNA_def_property_update(prop, 0, NULL); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Smoke_reset"); prop= RNA_def_property(srna, "effector_weights", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "EffectorWeights"); -- cgit v1.2.3 From 853620926019b242dbc34336addcf1c4eaaf7569 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Wed, 17 Aug 2011 13:04:28 +0000 Subject: 2.6 RNA: * Remove some NULL RNA property update calls, they do nothing. --- source/blender/makesrna/intern/rna_object_force.c | 1 - source/blender/makesrna/intern/rna_smoke.c | 7 ------- 2 files changed, 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index ca679239dd3..463f65fd3d5 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -770,7 +770,6 @@ static void rna_def_pointcache(BlenderRNA *brna) prop= RNA_def_property(srna, "compression", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, point_cache_compress_items); RNA_def_property_ui_text(prop, "Cache Compression", "Compression method to be used"); - RNA_def_property_update(prop, 0, NULL); /* flags */ prop= RNA_def_property(srna, "is_baked", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c index 8abf774ff52..d439c2551f1 100644 --- a/source/blender/makesrna/intern/rna_smoke.c +++ b/source/blender/makesrna/intern/rna_smoke.c @@ -241,7 +241,6 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "cache_comp"); RNA_def_property_enum_items(prop, smoke_cache_comp_items); RNA_def_property_ui_text(prop, "Cache Compression", "Compression method to be used"); - RNA_def_property_update(prop, 0, NULL); prop= RNA_def_property(srna, "collision_extents", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "border_collisions"); @@ -290,14 +289,12 @@ static void rna_def_smoke_flow_settings(BlenderRNA *brna) RNA_def_property_range(prop, 0.001, 1); RNA_def_property_ui_range(prop, 0.001, 1.0, 1.0, 4); RNA_def_property_ui_text(prop, "Density", ""); - RNA_def_property_update(prop, 0, NULL); // NC_OBJECT|ND_MODIFIER prop= RNA_def_property(srna, "temperature", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "temp"); RNA_def_property_range(prop, -10, 10); RNA_def_property_ui_range(prop, -10, 10, 1, 1); RNA_def_property_ui_text(prop, "Temp. Diff.", "Temperature difference to ambient temperature"); - RNA_def_property_update(prop, 0, NULL); prop= RNA_def_property(srna, "particle_system", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "psys"); @@ -309,24 +306,20 @@ static void rna_def_smoke_flow_settings(BlenderRNA *brna) prop= RNA_def_property(srna, "use_outflow", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "type", MOD_SMOKE_FLOW_TYPE_OUTFLOW); RNA_def_property_ui_text(prop, "Outflow", "Deletes smoke from simulation"); - RNA_def_property_update(prop, 0, NULL); prop= RNA_def_property(srna, "use_absolute", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_FLOW_ABSOLUTE); RNA_def_property_ui_text(prop, "Absolute Density", "Only allows given density value in emitter area."); - RNA_def_property_update(prop, 0, NULL); prop= RNA_def_property(srna, "initial_velocity", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_FLOW_INITVELOCITY); RNA_def_property_ui_text(prop, "Initial Velocity", "Smoke inherits it's velocity from the emitter particle"); - RNA_def_property_update(prop, 0, NULL); prop= RNA_def_property(srna, "velocity_factor", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "vel_multi"); RNA_def_property_range(prop, -2.0, 2.0); RNA_def_property_ui_range(prop, -2.0, 2.0, 0.05, 5); RNA_def_property_ui_text(prop, "Multiplier", "Multiplier to adjust velocity passed to smoke"); - RNA_def_property_update(prop, 0, NULL); } static void rna_def_smoke_coll_settings(BlenderRNA *brna) -- cgit v1.2.3 From feb7afe671bb4932ebbbecc2a4cfbc3aa4516366 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 17 Aug 2011 14:43:11 +0000 Subject: Fix #28262: uv unwrap in sync selection mode unwrapped all faces irrespective of selection. Changed the fix for bug #27198, live unwrap not working with sync selection. --- source/blender/editors/uvedit/uvedit_unwrap_ops.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index ae6836446fa..e8a7896abd5 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -205,11 +205,7 @@ static ParamHandle *construct_param_handle(Scene *scene, EditMesh *em, short imp float *uv[4]; int nverts; - if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) { - if(efa->h) - continue; - } - else if((efa->h) || (sel && (efa->f & SELECT)==0)) + if((efa->h) || (sel && (efa->f & SELECT)==0)) continue; tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -586,7 +582,7 @@ void ED_uvedit_live_unwrap_begin(Scene *scene, Object *obedit) return; } - liveHandle = construct_param_handle(scene, em, 0, fillholes, 1, 1); + liveHandle = construct_param_handle(scene, em, 0, fillholes, 0, 1); param_lscm_begin(liveHandle, PARAM_TRUE, abf); BKE_mesh_end_editmesh(obedit->data, em); -- cgit v1.2.3 From 1719963a08e9cc470dfaa1dbc87174c9120b59af Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 17 Aug 2011 15:55:42 +0000 Subject: Fix #28207: animating pin option for cloth didn't work, solver doesn't support it, so set the property as not animatable. --- source/blender/makesrna/intern/rna_cloth.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c index 1ce4108bab2..1b2396a4215 100644 --- a/source/blender/makesrna/intern/rna_cloth.c +++ b/source/blender/makesrna/intern/rna_cloth.c @@ -294,6 +294,7 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_SIMSETTINGS_FLAG_GOAL); RNA_def_property_ui_text(prop, "Pin Cloth", "Enable pinning of cloth vertices to other objects/positions"); RNA_def_property_update(prop, 0, "rna_cloth_pinning_changed"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); prop= RNA_def_property(srna, "pin_stiffness", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "goalspring"); @@ -313,6 +314,7 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_SIMSETTINGS_FLAG_SCALING); RNA_def_property_ui_text(prop, "Stiffness Scaling", "If enabled, stiffness can be scaled along a weight painted vertex group"); RNA_def_property_update(prop, 0, "rna_cloth_update"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); prop= RNA_def_property(srna, "spring_damping", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "Cdis"); -- cgit v1.2.3 From f3c05e8eb267b3c005cf7255b222ed7bf8972744 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 17 Aug 2011 18:28:01 +0000 Subject: armature animation export fix. --- source/blender/collada/AnimationExporter.cpp | 192 +++++++++++++-------------- source/blender/collada/AnimationExporter.h | 14 +- source/blender/collada/TransformWriter.cpp | 11 +- 3 files changed, 102 insertions(+), 115 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index e76d7c0cfa6..b39e9bb39d5 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -61,18 +61,19 @@ void AnimationExporter::exportAnimations(Scene *sce) bool isMatAnim = false; //Export transform animations - if(ob->adt && ob->adt->action) + if(ob->adt && ob->adt->action) { //transform matrix export for bones are temporarily disabled here. - /*if ( ob->type == OB_ARMATURE ) + if ( ob->type == OB_ARMATURE ) { bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); - - }*/ + + } + else { fcu = (FCurve*)ob->adt->action->curves.first; - while (fcu) { + while (fcu) { transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || @@ -81,6 +82,7 @@ void AnimationExporter::exportAnimations(Scene *sce) dae_animation(ob ,fcu, transformName, false); fcu = fcu->next; } + } } //Export Lamp parameter animations @@ -117,7 +119,7 @@ void AnimationExporter::exportAnimations(Scene *sce) { Material *ma = give_current_material(ob, a+1); if (!ma) continue; - if(ma->adt && ma->adt->action) + if(ma->adt && ma->adt->action) { isMatAnim = true; fcu = (FCurve*)ma->adt->action->curves.first; @@ -137,8 +139,8 @@ void AnimationExporter::exportAnimations(Scene *sce) if (!ob->adt || !ob->adt->action) fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() else - fcu = (FCurve*)ob->adt->action->curves.first; - + fcu = (FCurve*)ob->adt->action->curves.first; + if (ob->type == OB_ARMATURE) { if (!ob->data) return; bArmature *arm = (bArmature*)ob->data; @@ -225,7 +227,7 @@ void AnimationExporter::exportAnimations(Scene *sce) //axis names for colors else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| - (!strcmp(transformName, "alpha"))) + (!strcmp(transformName, "alpha"))) { const char *axis_names[] = {"R", "G", "B"}; if (fcu->array_index < 3) @@ -248,10 +250,10 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string ob_name = std::string("null"); - //Create anim Id + //Create anim Id if (ob->type == OB_ARMATURE) { - ob_name = getObjectBoneName( ob , fcu); + ob_name = getObjectBoneName( ob , fcu); BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char*)translate_id(ob_name).c_str(), transformName, axis_name); } @@ -272,11 +274,11 @@ void AnimationExporter::exportAnimations(Scene *sce) // create output source std::string output_id ; - + //quat rotations are skipped for now, because of complications with determining axis. if(quatRotation) { - float * eul = get_eul_source_for_quat(ob); + float * eul = get_eul_source_for_quat(ob); float * eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); for ( int i = 0 ; i< fcu->totvert ; i++) eul_axis[i] = eul[i*3 + fcu->array_index]; @@ -348,10 +350,10 @@ void AnimationExporter::exportAnimations(Scene *sce) { if (!ob_arm->adt) return; - + sample_and_write_bone_animation_matrix(ob_arm, bone); - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) write_bone_animation_matrix(ob_arm, child); } @@ -368,7 +370,7 @@ void AnimationExporter::exportAnimations(Scene *sce) bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); if (!pchan) return; - + find_frames(ob_arm, fra); if (flag & ARM_RESTPOS) { @@ -377,11 +379,7 @@ void AnimationExporter::exportAnimations(Scene *sce) } if (fra.size()) { - float *values = (float*)MEM_callocN(sizeof(float) * 16 * fra.size(), "temp. anim frames"); - sample_animation(values, fra, bone, ob_arm, pchan); - - dae_baked_animation(fra ,values, id_name(ob_arm), bone->name ); - + dae_baked_animation(fra ,ob_arm, bone ); } if (flag & ARM_RESTPOS) @@ -389,60 +387,10 @@ void AnimationExporter::exportAnimations(Scene *sce) where_is_pose(scene, ob_arm); } - - void AnimationExporter::sample_animation(float *v, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pchan) - { - bPoseChannel *parchan = NULL; - bPose *pose = ob_arm->pose; - - pchan = get_pose_channel(pose, bone->name); - - if (!pchan) - return; - - parchan = pchan->parent; - - enable_fcurves(ob_arm->adt->action, bone->name); - - std::vector::iterator it; - int j = 0; - for (it = frames.begin(); it != frames.end(); it++) { - float mat[4][4], ipar[4][4]; - - float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - - //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); - BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); - where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); - - // compute bone local mat - if (bone->parent) { - invert_m4_m4(ipar, parchan->pose_mat); - mul_m4_m4m4(mat, pchan->pose_mat, ipar); - } - else - copy_m4_m4(mat, pchan->pose_mat); - - for ( int i = 0; i < 4 ; i++) - { - for ( int k = 0; k<4 ; k++ ) - { - v[j*16 + 4*i + k] = mat[i][k]; - } - - } - // copy_m4_m4(v[j*16 + i], mat ) ; - - j++; - } - - enable_fcurves(ob_arm->adt->action, NULL); - - - } - - void AnimationExporter::dae_baked_animation(std::vector &fra, float *values, std::string ob_name, std::string bone_name) + void AnimationExporter::dae_baked_animation(std::vector &fra, Object *ob_arm , Bone *bone) { + std::string ob_name = id_name(ob_arm); + std::string bone_name = bone->name; char anim_id[200]; if (!fra.size()) @@ -458,7 +406,7 @@ void AnimationExporter::exportAnimations(Scene *sce) // create output source std::string output_id; - output_id = create_4x4_source( values, fra.size(), anim_id); + output_id = create_4x4_source( fra, ob_arm , bone , anim_id); // create interpolations source std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, ""); @@ -629,8 +577,8 @@ void AnimationExporter::exportAnimations(Scene *sce) // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data values[0] = 0; values[1] = 0; - } - else if (rotation) { + } + else if (rotation) { values[1] = (bezt->vec[0][1]) * 180.0f/M_PI; } else { values[1] = bezt->vec[0][1]; @@ -702,7 +650,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - //Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) + //Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) { std::string source_id = anim_id + get_semantic_suffix(semantic); @@ -763,7 +711,7 @@ void AnimationExporter::exportAnimations(Scene *sce) return source_id; } - std::string AnimationExporter::create_4x4_source(float *v, int tot, const std::string& anim_id) + std::string AnimationExporter::create_4x4_source(std::vector &frames , Object * ob_arm, Bone *bone , const std::string& anim_id) { COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; std::string source_id = anim_id + get_semantic_suffix(semantic); @@ -771,20 +719,58 @@ void AnimationExporter::exportAnimations(Scene *sce) COLLADASW::Float4x4Source source(mSW); source.setId(source_id); source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); + source.setAccessorCount(frames.size()); source.setAccessorStride(16); COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); add_source_parameters(param, semantic, false, NULL, false); source.prepareToAppendValues(); + + bPoseChannel *parchan = NULL; + bPoseChannel *pchan = NULL; + bPose *pose = ob_arm->pose; - for (int i = 0; i < tot; i++) { - for ( int j = 0 ; j < 4 ; j++ ) - source.appendValues(*(v+j*4), *(v + 4*j +1), *(v + 2 + 4*j), *(v+3 + 4*j)); - v += 16; + pchan = get_pose_channel(pose, bone->name); + + if (!pchan) + return ""; + + parchan = pchan->parent; + + enable_fcurves(ob_arm->adt->action, bone->name); + + std::vector::iterator it; + int j = 0; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + + BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); + } + else + copy_m4_m4(mat, pchan->pose_mat); + UnitConverter converter; + + float outmat[4][4]; + converter.mat4_to_dae(outmat,mat); + + + source.appendValues(outmat); + + + j++; } + enable_fcurves(ob_arm->adt->action, NULL); + source.finish(); return source_id; @@ -877,7 +863,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { std::string tm_name; - // when given rna_path, determine tm_type from it + // when given rna_path, determine tm_type from it if (rna_path) { char *name = extract_transform_name(rna_path); @@ -911,7 +897,7 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = ""; break; } - + if (tm_name.size()) { if (axis_name != "") return tm_name + "." + std::string(axis_name); @@ -925,13 +911,13 @@ void AnimationExporter::exportAnimations(Scene *sce) std::string AnimationExporter::get_camera_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { std::string tm_name; - // when given rna_path, determine tm_type from it + // when given rna_path, determine tm_type from it if (rna_path) { char *name = extract_transform_name(rna_path); - if (!strcmp(name, "lens")) + if (!strcmp(name, "lens")) tm_type = 0; - else if (!strcmp(name, "ortho_scale")) + else if (!strcmp(name, "ortho_scale")) tm_type = 1; else if (!strcmp(name, "clip_end")) tm_type = 2; @@ -960,7 +946,7 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = ""; break; } - + if (tm_name.size()) { if (axis_name != "") return tm_name + "." + std::string(axis_name); @@ -971,12 +957,12 @@ void AnimationExporter::exportAnimations(Scene *sce) return std::string(""); } - // Assign sid of the animated parameter or transform + // Assign sid of the animated parameter or transform // for rotation, axis name is always appended and the value of append_axis is ignored std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) { std::string tm_name; - bool is_rotation =false; + bool is_rotation =false; // when given rna_path, determine tm_type from it if (rna_path) { char *name = extract_transform_name(rna_path); @@ -1010,7 +996,7 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = "rotation"; is_rotation = true; break; - case 2: + case 2: tm_name = "scale"; break; case 3: @@ -1036,7 +1022,7 @@ void AnimationExporter::exportAnimations(Scene *sce) tm_name = ""; break; } - + if (tm_name.size()) { if (is_rotation) return tm_name + std::string(axis_name) + ".ANGLE"; @@ -1074,7 +1060,7 @@ void AnimationExporter::exportAnimations(Scene *sce) std::sort(fra.begin(), fra.end()); } - + // enable fcurves driving a specific bone, disable all the rest // if bone_name = NULL enable all fcurves @@ -1118,11 +1104,11 @@ void AnimationExporter::exportAnimations(Scene *sce) fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); //Check Material Effect parameter animations. - for(int a = 0; a < ob->totcol; a++) + for(int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); if (!ma) continue; - if(ma->adt && ma->adt->action) + if(ma->adt && ma->adt->action) { fcu = (FCurve*)ma->adt->action->curves.first; } @@ -1171,14 +1157,14 @@ void AnimationExporter::exportAnimations(Scene *sce) { if (!ob_arm->adt) return; - + //write bone animations for 3 transform types //i=0 --> rotations //i=1 --> scale //i=2 --> location for (int i = 0; i < 3; i++) sample_and_write_bone_animation(ob_arm, bone, i); - + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) write_bone_animation(ob_arm, child); } @@ -1195,7 +1181,7 @@ void AnimationExporter::exportAnimations(Scene *sce) bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); if (!pchan) return; - //Fill frame array with key frame values framed at @param:transform_type + //Fill frame array with key frame values framed at @param:transform_type switch (transform_type) { case 0: find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); @@ -1215,7 +1201,7 @@ void AnimationExporter::exportAnimations(Scene *sce) arm->flag &= ~ARM_RESTPOS; where_is_pose(scene, ob_arm); } - //v array will hold all values which will be exported. + //v array will hold all values which will be exported. if (fra.size()) { float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); sample_animation(values, fra, transform_type, bone, ob_arm, pchan); @@ -1266,8 +1252,8 @@ void AnimationExporter::exportAnimations(Scene *sce) float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - //BKE_animsys_evaluate_animdata(&ob_arm->id, ob_arm->adt, *it, ADT_RECALC_ANIM); - //BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + + BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); // compute bone local mat diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 6786206ee6f..c628e5633b7 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -85,7 +85,7 @@ private: public: AnimationExporter(COLLADASW::StreamWriter *sw): COLLADASW::LibraryAnimations(sw) { this->sw = sw; } - + void exportAnimations(Scene *sce); @@ -106,13 +106,13 @@ protected: void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); - void sample_animation(float *v, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pChan); + void sample_animation(std::vector &mats, std::vector &frames, Bone *bone, Object *ob_arm, bPoseChannel *pChan); // dae_bone_animation -> add_bone_animation // (blend this into dae_bone_animation) void dae_bone_animation(std::vector &fra, float *v, int tm_type, int axis, std::string ob_name, std::string bone_name); - - void dae_baked_animation(std::vector &fra, float *values, std::string ob_name, std::string bone_name); + + void dae_baked_animation(std::vector &fra, Object *ob_arm , Bone *bone); float convert_time(float frame); @@ -123,9 +123,9 @@ protected: void add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis , bool transform); - void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); + void get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length); - float * get_eul_source_for_quat(Object *ob ); + float * get_eul_source_for_quat(Object *ob ); std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name); @@ -135,7 +135,7 @@ protected: std::string create_xyz_source(float *v, int tot, const std::string& anim_id); - std::string create_4x4_source(float *v, int tot, const std::string& anim_id); + std::string create_4x4_source(std::vector &frames , Object * ob_arm, Bone *bone , const std::string& anim_id); std::string create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents); diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp index 3ac0654c866..7bad9bdeba7 100644 --- a/source/blender/collada/TransformWriter.cpp +++ b/source/blender/collada/TransformWriter.cpp @@ -49,13 +49,14 @@ void TransformWriter::add_node_transform(COLLADASW::Node& node, float mat[][4], } double dmat[4][4]; - for ( int i = 0 ; i< 4 ; i ++ ) - for ( int j =0 ; j < 4 ; j++) - dmat[i][j] = (double)local[i][j]; + UnitConverter* converter = new UnitConverter(); + converter->mat4_to_dae_double(dmat,local); TransformBase::decompose(local, loc, rot, NULL, scale); - node.addMatrix("transform",dmat); - add_transform(node, loc, rot, scale); + if ( node.getType() == COLLADASW::Node::JOINT) + node.addMatrix("transform",dmat); + else + add_transform(node, loc, rot, scale); } void TransformWriter::add_node_transform_ob(COLLADASW::Node& node, Object *ob) -- cgit v1.2.3 From e86e922f5b6d7c3784bb6ffb840e08336ff42027 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 17 Aug 2011 18:29:01 +0000 Subject: Armature importer code cleanup. --- source/blender/collada/AnimationImporter.cpp | 161 ++++----------------------- source/blender/collada/AnimationImporter.h | 4 +- source/blender/collada/DocumentImporter.cpp | 2 +- 3 files changed, 23 insertions(+), 144 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 29bd0bd93b7..a0202fdcb1b 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -183,6 +183,7 @@ void AnimationImporter::fcurve_deg_to_rad(FCurve *cu) } } + void AnimationImporter::add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated) { bAction *act; @@ -318,120 +319,7 @@ bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* ani // for bones rna_path is like: pose.bones["bone-name"].rotation - // what does this AnimationList animate? - Animation& animated = uid_animated_map[animlist_id]; - Object *ob = animated.ob; - - char rna_path[100]; - char joint_path[100]; - bool is_joint = false; - - // if ob is NULL, it should be a JOINT - if (!ob) { - - ob = armature_importer->get_armature_for_joint(animated.node); - - if (!ob) { -// fprintf(stderr, "Cannot find armature for node %s\n", get_joint_name(animated.node)); - return true; - } - - armature_importer->get_rna_path_for_joint(animated.node, joint_path, sizeof(joint_path)); - - is_joint = true; - } - printf("object for animlist: %s found\n", animlist->getUniqueId().toAscii().c_str()); - const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - - switch (animated.tm->getTransformationType()) { - case COLLADAFW::Transformation::TRANSLATE: - case COLLADAFW::Transformation::SCALE: - { - bool loc = animated.tm->getTransformationType() == COLLADAFW::Transformation::TRANSLATE; - if (is_joint) - BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, loc ? "location" : "scale"); - else - BLI_strncpy(rna_path, loc ? "location" : "scale", sizeof(rna_path)); - - for (int i = 0; i < bindings.getCount(); i++) { - const COLLADAFW::AnimationList::AnimationBinding& binding = bindings[i]; - COLLADAFW::UniqueId anim_uid = binding.animation; - - if (curve_map.find(anim_uid) == curve_map.end()) { - fprintf(stderr, "Cannot find FCurve by animation UID.\n"); - continue; - } - std::vector& fcurves = curve_map[anim_uid]; - - switch (binding.animationClass) { - case COLLADAFW::AnimationList::POSITION_X: - add_fcurves_to_object(ob, fcurves, rna_path, 0, &animated); - break; - case COLLADAFW::AnimationList::POSITION_Y: - add_fcurves_to_object(ob, fcurves, rna_path, 1, &animated); - break; - case COLLADAFW::AnimationList::POSITION_Z: - add_fcurves_to_object(ob, fcurves, rna_path, 2, &animated); - break; - case COLLADAFW::AnimationList::POSITION_XYZ: - add_fcurves_to_object(ob, fcurves, rna_path, -1, &animated); - break; - default: - fprintf(stderr, "AnimationClass %d is not supported for %s.\n", - binding.animationClass, loc ? "TRANSLATE" : "SCALE"); - } - } - } - break; - case COLLADAFW::Transformation::ROTATE: - { - if (is_joint) - BLI_snprintf(rna_path, sizeof(rna_path), "%s.rotation_euler", joint_path); - else - BLI_strncpy(rna_path, "rotation_euler", sizeof(rna_path)); - - COLLADAFW::Rotate* rot = (COLLADAFW::Rotate*)animated.tm; - COLLADABU::Math::Vector3& axis = rot->getRotationAxis(); - - for (int i = 0; i < bindings.getCount(); i++) { - const COLLADAFW::AnimationList::AnimationBinding& binding = bindings[i]; - COLLADAFW::UniqueId anim_uid = binding.animation; - - if (curve_map.find(anim_uid) == curve_map.end()) { - fprintf(stderr, "Cannot find FCurve by animation UID.\n"); - continue; - } - - std::vector& fcurves = curve_map[anim_uid]; - - switch (binding.animationClass) { - case COLLADAFW::AnimationList::ANGLE: - if (COLLADABU::Math::Vector3::UNIT_X == axis) { - add_fcurves_to_object(ob, fcurves, rna_path, 0, &animated); - } - else if (COLLADABU::Math::Vector3::UNIT_Y == axis) { - add_fcurves_to_object(ob, fcurves, rna_path, 1, &animated); - } - else if (COLLADABU::Math::Vector3::UNIT_Z == axis) { - add_fcurves_to_object(ob, fcurves, rna_path, 2, &animated); - } - break; - case COLLADAFW::AnimationList::AXISANGLE: - // TODO convert axis-angle to quat? or XYZ? - default: - fprintf(stderr, "AnimationClass %d is not supported for ROTATE transformation.\n", - binding.animationClass); - } - } - } - break; - case COLLADAFW::Transformation::MATRIX: - case COLLADAFW::Transformation::SKEW: - case COLLADAFW::Transformation::LOOKAT: - fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); - break; - } #endif return true; @@ -675,14 +563,16 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * } }*/ + break; case COLLADAFW::Transformation::SKEW: case COLLADAFW::Transformation::LOOKAT: - fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); + fprintf(stderr, "Animation of SKEW and LOOKAT transformations is not supported yet.\n"); break; } } +//creates the rna_paths and array indices of fcurves from animations using color and bound animation class of each animation. void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type) { char rna_path[100]; @@ -694,8 +584,6 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class - //Assign_color_animations( &bindings[j], &animcurves); switch (bindings[j].animationClass) { case COLLADAFW::AnimationList::COLOR_R: @@ -708,7 +596,7 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list modify_fcurve(&animcurves, rna_path, 2 ); break; case COLLADAFW::AnimationList::COLOR_RGB: - case COLLADAFW::AnimationList::COLOR_RGBA: + case COLLADAFW::AnimationList::COLOR_RGBA: // to do-> set intensity modify_fcurve(&animcurves, rna_path, -1 ); break; @@ -734,14 +622,14 @@ void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& list if (animlist_map.find(listid) == animlist_map.end()) return ; else { - //transformation has animations + //anim_type has animations const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); //all the curves belonging to the current binding std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; - //calculate rnapaths and array index of fcurves according to transformation and animation class + BLI_strncpy(rna_path, anim_type , sizeof(rna_path)); modify_fcurve(&animcurves, rna_path, 0 ); std::vector::iterator iter; @@ -815,16 +703,11 @@ void AnimationImporter::apply_matrix_curves( Object * ob, std::vector& newcu[i]->totvert = frames.size(); } -// Object *job = NULL; - - if (frames.size() == 0) + if (frames.size() == 0) return; std::sort(frames.begin(), frames.end()); - //if (is_joint) - // armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); - - + std::vector::iterator it; // sample values at each frame @@ -863,10 +746,10 @@ std::sort(frames.begin(), frames.end()); float rot[4], loc[3], scale[3]; mat4_to_quat(rot, mat); - for ( int i = 0 ; i < 4 ; i ++ ) + /*for ( int i = 0 ; i < 4 ; i ++ ) { rot[i] = rot[i] * (180 / M_PI); - } + }*/ copy_v3_v3(loc, mat[3]); mat4_to_size(scale, mat); @@ -904,7 +787,7 @@ std::sort(frames.begin(), frames.end()); } -void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , +void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , std::map& root_map, std::map& object_map, std::map FW_object_map) @@ -923,7 +806,6 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , bAction * act; bActionGroup *grp = NULL; - //if ( (animType & NODE_TRANSFORM) != 0 ) if ( (animType->transform) != 0 ) { const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; @@ -934,10 +816,10 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); - else act = ob->adt->action; - //Get the list of animation curves of the object - - ListBase *AnimCurves = &(act->curves); + else act = ob->adt->action; + + //Get the list of animation curves of the object + ListBase *AnimCurves = &(act->curves); const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); @@ -1197,7 +1079,7 @@ int AnimationImporter::setAnimType ( const COLLADAFW::Animatable * prop , int ty else return types; } -//XXX Is not used anymore. +// Is not used anymore. void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW::Node * node , COLLADAFW::Transformation::TransformationType tm_type) { bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; @@ -1257,10 +1139,11 @@ void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW:: } + // prerequisites: // animlist_map - map animlist id -> animlist // curve_map - map anim id -> curve(s) -Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, +Object *AnimationImporter::translate_animation_OLD(COLLADAFW::Node *node, std::map& object_map, std::map& root_map, COLLADAFW::Transformation::TransformationType tm_type, @@ -1513,7 +1396,7 @@ Object *AnimationImporter::translate_animation(COLLADAFW::Node *node, } // internal, better make it private -// warning: evaluates only rotation +// warning: evaluates only rotation and only assigns matrix transforms now // prerequisites: animlist_map, curve_map void AnimationImporter::evaluate_transform_at_frame(float mat[4][4], COLLADAFW::Node *node, float fra) { @@ -1867,7 +1750,3 @@ void AnimationImporter::add_bezt(FCurve *fcu, float fra, float value) calchandles_fcurve(fcu); } -void AnimationImporter::extra_data_importer(std::string elementName ) -{ - -} diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index fbb53ceedb6..18303eb2f0b 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -145,7 +145,7 @@ public: virtual void change_eul_to_quat(Object *ob, bAction *act); #endif - void translate_Animations_NEW ( COLLADAFW::Node * Node , + void translate_Animations( COLLADAFW::Node * Node , std::map& root_map, std::map& object_map , std::map FW_object_map); @@ -168,7 +168,7 @@ public: // prerequisites: // animlist_map - map animlist id -> animlist // curve_map - map anim id -> curve(s) - Object * translate_animation(COLLADAFW::Node *node, + Object * translate_animation_OLD(COLLADAFW::Node *node, std::map& object_map, std::map& root_map, COLLADAFW::Transformation::TransformationType tm_type, diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index f6c985626db..3a92c95e7ee 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -252,7 +252,7 @@ void DocumentImporter::translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW //for (i = 0; i < 4; i++) //ob = - anim_importer.translate_Animations_NEW(node, root_map, object_map, FW_object_map); + anim_importer.translate_Animations(node, root_map, object_map, FW_object_map); COLLADAFW::NodePointerArray &children = node->getChildNodes(); for (i = 0; i < children.getCount(); i++) { -- cgit v1.2.3 From a46f36c9b6c22d0082f820847c1b60acdf17c08b Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 17 Aug 2011 20:15:40 +0000 Subject: Animation export id bone animation + armature importer cleanup. --- source/blender/collada/AnimationExporter.cpp | 13 ++++++- source/blender/collada/ArmatureImporter.cpp | 55 +++++++++++++++------------- 2 files changed, 41 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index b39e9bb39d5..7bcb225e3c2 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -66,6 +66,7 @@ void AnimationExporter::exportAnimations(Scene *sce) //transform matrix export for bones are temporarily disabled here. if ( ob->type == OB_ARMATURE ) { + if (!ob->data) return; bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); @@ -363,10 +364,18 @@ void AnimationExporter::exportAnimations(Scene *sce) bArmature *arm = (bArmature*)ob_arm->data; int flag = arm->flag; std::vector fra; - char prefix[256]; + //char prefix[256]; - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); + FCurve* fcu = (FCurve*)ob_arm->adt->action->curves.first; + while(fcu) + { + std::string bone_name = getObjectBoneName(ob_arm,fcu); + int val = BLI_strcasecmp((char*)bone_name.c_str(),bone->name); + if(val==0) break; + fcu = fcu->next; + } + if(!(fcu)) return; bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); if (!pchan) return; diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 7acae995396..81d785371df 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -93,16 +93,16 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node)); totbone++; - + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, (char*)bc_get_joint_name(node)); if (parent) bone->parent = parent; - float ax[3]; + float angle = 0; // get world-space if (parent){ - mul_m4_m4m4(mat, obmat, parent_mat); + mul_m4_m4m4(mat, obmat, parent_mat); } else { @@ -116,7 +116,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // set head copy_v3_v3(bone->head, mat[3]); - + // set tail, don't set it to head because 0-length bones are not allowed float vec[3] = {0.0f, 0.5f, 0.0f}; add_v3_v3v3(bone->tail, bone->head, vec); @@ -127,7 +127,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // not setting BONE_CONNECTED because this would lock child bone location with respect to parent // bone->flag |= BONE_CONNECTED; - + // XXX increase this to prevent "very" small bones? const float epsilon = 0.000001f; @@ -166,6 +166,10 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo float mat[4][4]; + // TODO rename from Node "name" attrs later + EditBone *bone = ED_armature_edit_bone_add(arm, (char*)bc_get_joint_name(node)); + totbone++; + if (skin.get_joint_inv_bind_matrix(joint_inv_bind_mat, node)) { // get original world-space matrix invert_m4_m4(mat, joint_inv_bind_mat); @@ -182,12 +186,14 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo mul_m4_m4m4(mat, obmat, parent_mat); else copy_m4_m4(mat, obmat); - } - // TODO rename from Node "name" attrs later - EditBone *bone = ED_armature_edit_bone_add(arm, (char*)bc_get_joint_name(node)); - totbone++; + float loc[3], size[3], rot[3][3] , angle; + mat4_to_loc_rot_size( loc, rot, size, obmat); + mat3_to_vec_roll(rot, NULL, &angle ); + bone->roll=angle; + } + if (parent) bone->parent = parent; // set head @@ -264,8 +270,8 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: leaf.bone = bone; copy_m4_m4(leaf.mat, mat); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); - - TagsMap::iterator etit; + + TagsMap::iterator etit; ExtraTags *et = 0; etit = uid_tags_map.find(node->getUniqueId().toAscii()); if(etit != uid_tags_map.end()) @@ -277,7 +283,7 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: et->setData("tip_y",&y); et->setData("tip_z",&z); float vec[3] = {x,y,z}; - copy_v3_v3(leaf.bone->tail, leaf.bone->head); + copy_v3_v3(leaf.bone->tail, leaf.bone->head); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); leaf_bones.push_back(leaf); } @@ -292,7 +298,7 @@ void ArmatureImporter::fix_leaf_bones( ) // pointing up float vec[3] = {0.0f, 0.0f, 1.0f}; - + mul_v3_fl(vec, leaf_bone_length); copy_v3_v3(leaf.bone->tail, leaf.bone->head); @@ -396,10 +402,10 @@ void ArmatureImporter::create_armature_bones( ) { std::vector::iterator ri; //if there is an armature created for root_joint next root_joint - for (ri = root_joints.begin(); ri != root_joints.end(); ri++) { + for (ri = root_joints.begin(); ri != root_joints.end(); ri++) { if ( get_armature_for_joint(*ri) != NULL ) continue; - - //add armature object for current joint + + //add armature object for current joint //Object *ob_arm = add_object(scene, OB_ARMATURE); Object *ob_arm = joint_parent_map[(*ri)->getUniqueId()]; @@ -413,7 +419,7 @@ void ArmatureImporter::create_armature_bones( ) TODO: check if bones have already been created for a given joint */ - leaf_bone_length = FLT_MAX; + leaf_bone_length = FLT_MAX; create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); //fix_leaf_bones(); @@ -545,7 +551,7 @@ void ArmatureImporter::create_armature_bones(SkinInfo& skin) DAG_id_tag_update(&ob_arm->id, OB_RECALC_OB|OB_RECALC_DATA); // set_leaf_bone_shapes(ob_arm); - // set_euler_rotmode(); + // set_euler_rotmode(); } @@ -572,7 +578,7 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node // get world-space if (parentname){ - mul_m4_m4m4(mat, obmat, parent_mat); + mul_m4_m4m4(mat, obmat, parent_mat); bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parentname); mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); @@ -581,12 +587,12 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node else { copy_m4_m4(mat, obmat); float invObmat[4][4]; - invert_m4_m4(invObmat, ob_arm->obmat); - mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + invert_m4_m4(invObmat, ob_arm->obmat); + mul_m4_m4m4(pchan->pose_mat, mat, invObmat); } - mat4_to_axis_angle(ax,&angle,mat); + mat4_to_axis_angle(ax,&angle,mat); pchan->bone->roll = angle; @@ -651,10 +657,9 @@ void ArmatureImporter::make_armatures(bContext *C) // free memory stolen from SkinControllerData skin.free(); } - + //for bones without skins create_armature_bones(); - } #if 0 @@ -761,7 +766,7 @@ Object *ArmatureImporter::get_armature_for_joint(COLLADAFW::Node *node) void ArmatureImporter::set_tags_map(TagsMap & tagsMap) { - this->uid_tags_map = tagsMap; + this->uid_tags_map = tagsMap; } void ArmatureImporter::get_rna_path_for_joint(COLLADAFW::Node *node, char *joint_path, size_t count) -- cgit v1.2.3 From 14d2d7c75fcb9a1fd3d82d0434921117f26108e6 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 17 Aug 2011 20:17:27 +0000 Subject: BGE: Upping the max Axis Number for the Axis event type on joystick sensors from 2 to 4. The BGE supports up to 16 axis. For Axis events (not Single Axis), you get for directions per axis (up, down, left, right). So, the max should be JOYAXIS_MAX/directions = 16/4 = 4. --- source/blender/makesrna/intern/rna_sensor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c index 5cc8539f187..5c6a4e889fa 100644 --- a/source/blender/makesrna/intern/rna_sensor.c +++ b/source/blender/makesrna/intern/rna_sensor.c @@ -803,7 +803,7 @@ static void rna_def_joystick_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "axis_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "axis"); RNA_def_property_ui_text(prop, "Axis Number", "Specify which axis pair to use, 1 is usually the main direction input"); - RNA_def_property_range(prop, 1, 2); + RNA_def_property_range(prop, 1, 4); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "axis_threshold", PROP_INT, PROP_NONE); -- cgit v1.2.3 From 5c20bc02ff76a3a72992bc43f414b673e8275866 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 17 Aug 2011 20:44:15 +0000 Subject: BGE: Upon further investigation this should have been 8 since up/down and left/right both are just one axis each. So, in actuality, the number of directions = 2, not 4, and thus JOYAXIS_MAX/directions = 16/2 = 8. 8 was also the max used in 2.4x. --- source/blender/makesrna/intern/rna_sensor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c index 5c6a4e889fa..1f64603d6b4 100644 --- a/source/blender/makesrna/intern/rna_sensor.c +++ b/source/blender/makesrna/intern/rna_sensor.c @@ -803,7 +803,7 @@ static void rna_def_joystick_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "axis_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "axis"); RNA_def_property_ui_text(prop, "Axis Number", "Specify which axis pair to use, 1 is usually the main direction input"); - RNA_def_property_range(prop, 1, 4); + RNA_def_property_range(prop, 1, 8); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "axis_threshold", PROP_INT, PROP_NONE); -- cgit v1.2.3 From 591b087204b1bc9372d8c87d5bdf28a55f3ae13a Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Thu, 18 Aug 2011 02:12:23 +0000 Subject: Fix for [#28216] particles objects rotation still wrong with r39287 * The emitter object's inverse matrix wasn't in global coordinates during rendering, so the surface normals of the hair emission locations were transformed with the wrong matrix. --- source/blender/blenkernel/intern/anim.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 8aa816f9cb5..ebe7325d96a 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -1245,6 +1245,8 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p sim.ob= par; sim.psys= psys; sim.psmd= psys_get_modifier(par, psys); + /* make sure emitter imat is in global coordinates instead of render view coordinates */ + invert_m4_m4(par->imat, par->obmat); /* first check for loops (particle system object used as dupli object) */ if(part->ren_as == PART_DRAW_OB) { -- cgit v1.2.3 From 475e0b8c0288e6f55d89d19489534884335744c4 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 18 Aug 2011 09:14:27 +0000 Subject: Apply [#28287] COLLADA fix for inverse bind matrix of skin controller Patch by Pelle Johnsen --- source/blender/collada/ArmatureExporter.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index b033c780530..1c81c0b6e76 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -368,17 +368,12 @@ std::string ArmatureExporter::add_inv_bind_mats_source(Object *ob_arm, ListBase bPoseChannel *pchan = get_pose_channel(pose, def->name); - float pose_mat[4][4]; float mat[4][4]; float world[4][4]; float inv_bind_mat[4][4]; - // pose_mat is the same as pchan->pose_mat, but without the rotation - unit_m4(pose_mat); - translate_m4(pose_mat, pchan->pose_head[0], pchan->pose_head[1], pchan->pose_head[2]); - - // make world-space matrix, pose_mat is armature-space - mul_m4_m4m4(world, pose_mat, ob_arm->obmat); + // make world-space matrix, arm_mat is armature-space + mul_m4_m4m4(world, pchan->bone->arm_mat, ob_arm->obmat); invert_m4_m4(mat, world); converter.mat4_to_dae(inv_bind_mat, mat); -- cgit v1.2.3 From 83c090a555af97ae7f2f08595298d5b2e6266e85 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 12:09:53 +0000 Subject: fix for bad array access in transform operator, was assigning an array to a single float operator value. --- source/blender/editors/transform/transform.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index c1c812e8c68..03a98bf30d8 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1356,16 +1356,15 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) ToolSettings *ts = CTX_data_tool_settings(C); int constraint_axis[3] = {0, 0, 0}; int proportional = 0; + PropertyRNA *prop; - if (RNA_struct_find_property(op->ptr, "value")) - { - if (t->flag & T_AUTOVALUES) - { - RNA_float_set_array(op->ptr, "value", t->auto_values); + if ((prop= RNA_struct_find_property(op->ptr, "value"))) { + float *values= (t->flag & T_AUTOVALUES) ? t->auto_values : t->values; + if (RNA_property_array_check(prop)) { + RNA_property_float_set_array(op->ptr, prop, values); } - else - { - RNA_float_set_array(op->ptr, "value", t->values); + else { + RNA_property_float_set(op->ptr, prop, values[0]); } } -- cgit v1.2.3 From 2bd016fe3f08524711d1d45e8ebf12d483c6131c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 12:20:10 +0000 Subject: formatting edits, no functional changes. --- source/blender/python/intern/bpy_rna.c | 97 ++++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index ba8145c2773..4d8d524d7e3 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -84,7 +84,9 @@ int pyrna_struct_validity_check(BPy_StructRNA *pysrna) { if(pysrna->ptr.type) return 0; - PyErr_Format(PyExc_ReferenceError, "StructRNA of type %.200s has been removed", Py_TYPE(pysrna)->tp_name); + PyErr_Format(PyExc_ReferenceError, + "StructRNA of type %.200s has been removed", + Py_TYPE(pysrna)->tp_name); return -1; } @@ -790,18 +792,23 @@ static PyObject *pyrna_struct_str(BPy_StructRNA *self) const char *name; if(!PYRNA_STRUCT_IS_VALID(self)) { - return PyUnicode_FromFormat("", Py_TYPE(self)->tp_name); + return PyUnicode_FromFormat("", + Py_TYPE(self)->tp_name); } /* print name if available */ name= RNA_struct_name_get_alloc(&self->ptr, NULL, FALSE); if(name) { - ret= PyUnicode_FromFormat("", RNA_struct_identifier(self->ptr.type), name); + ret= PyUnicode_FromFormat("", + RNA_struct_identifier(self->ptr.type), + name); MEM_freeN((void *)name); return ret; } - return PyUnicode_FromFormat("", RNA_struct_identifier(self->ptr.type), self->ptr.data); + return PyUnicode_FromFormat("", + RNA_struct_identifier(self->ptr.type), + self->ptr.data); } static PyObject *pyrna_struct_repr(BPy_StructRNA *self) @@ -811,18 +818,26 @@ static PyObject *pyrna_struct_repr(BPy_StructRNA *self) return pyrna_struct_str(self); /* fallback */ if(RNA_struct_is_ID(self->ptr.type)) { - return PyUnicode_FromFormat("bpy.data.%s[\"%s\"]", BKE_idcode_to_name_plural(GS(id->name)), id->name+2); + return PyUnicode_FromFormat("bpy.data.%s[\"%s\"]", + BKE_idcode_to_name_plural(GS(id->name)), + id->name+2); } else { PyObject *ret; const char *path; path= RNA_path_from_ID_to_struct(&self->ptr); if(path) { - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"].%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, path); + ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"].%s", + BKE_idcode_to_name_plural(GS(id->name)), + id->name+2, + path); MEM_freeN((void *)path); } else { /* cant find, print something sane */ - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, RNA_struct_identifier(self->ptr.type)); + ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", + BKE_idcode_to_name_plural(GS(id->name)), + id->name+2, + RNA_struct_identifier(self->ptr.type)); } return ret; @@ -870,7 +885,11 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) name= RNA_struct_name_get_alloc(&ptr, NULL, FALSE); if(name) { - ret= PyUnicode_FromFormat("", type_fmt, RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop), name); + ret= PyUnicode_FromFormat("", + type_fmt, + RNA_struct_identifier(self->ptr.type), + RNA_property_identifier(self->prop), + name); MEM_freeN((void *)name); return ret; } @@ -878,11 +897,16 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) if(RNA_property_type(self->prop) == PROP_COLLECTION) { PointerRNA r_ptr; if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { - return PyUnicode_FromFormat("", type_fmt, RNA_struct_identifier(r_ptr.type)); + return PyUnicode_FromFormat("", + type_fmt, + RNA_struct_identifier(r_ptr.type)); } } - return PyUnicode_FromFormat("", type_fmt, RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop)); + return PyUnicode_FromFormat("", + type_fmt, + RNA_struct_identifier(self->ptr.type), + RNA_property_identifier(self->prop)); } static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) @@ -902,7 +926,10 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) MEM_freeN((void *)path); } else { /* cant find, print something sane */ - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, RNA_property_identifier(self->prop)); + ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", + BKE_idcode_to_name_plural(GS(id->name)), + id->name+2, + RNA_property_identifier(self->prop)); } return ret; @@ -911,7 +938,10 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) static PyObject *pyrna_func_repr(BPy_FunctionRNA *self) { - return PyUnicode_FromFormat("<%.200s %.200s.%.200s()>", Py_TYPE(self)->tp_name, RNA_struct_identifier(self->ptr.type), RNA_function_identifier(self->func)); + return PyUnicode_FromFormat("<%.200s %.200s.%.200s()>", + Py_TYPE(self)->tp_name, + RNA_struct_identifier(self->ptr.type), + RNA_function_identifier(self->func)); } @@ -2995,7 +3025,9 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) else if (self->ptr.type == &RNA_Context) { bContext *C= self->ptr.data; if(C==NULL) { - PyErr_Format(PyExc_AttributeError, "bpy_struct: Context is 'NULL', can't get \"%.200s\" from context", name); + PyErr_Format(PyExc_AttributeError, + "bpy_struct: Context is 'NULL', can't get \"%.200s\" from context", + name); ret= NULL; } else { @@ -3054,7 +3086,9 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) } else { #if 0 - PyErr_Format(PyExc_AttributeError, "bpy_struct: attribute \"%.200s\" not found", name); + PyErr_Format(PyExc_AttributeError, + "bpy_struct: attribute \"%.200s\" not found", + name); ret= NULL; #endif /* Include this incase this instance is a subtype of a python class @@ -3170,7 +3204,9 @@ static int pyrna_struct_meta_idprop_setattro(PyObject *cls, PyObject *attr, PyOb const char *attr_str= _PyUnicode_AsString(attr); int ret= RNA_def_property_free_identifier(srna, attr_str); if (ret == -1) { - PyErr_Format(PyExc_TypeError, "struct_meta_idprop.detattr(): '%s' not a dynamic property", attr_str); + PyErr_Format(PyExc_TypeError, + "struct_meta_idprop.detattr(): '%s' not a dynamic property", + attr_str); return -1; } } @@ -3208,7 +3244,9 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject /* code just raises correct error, context prop's cant be set, unless its apart of the py class */ bContext *C= self->ptr.data; if(C==NULL) { - PyErr_Format(PyExc_AttributeError, "bpy_struct: Context is 'NULL', can't set \"%.200s\" from context", name); + PyErr_Format(PyExc_AttributeError, + "bpy_struct: Context is 'NULL', can't set \"%.200s\" from context", + name); return -1; } else { @@ -3219,7 +3257,9 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject int done= CTX_data_get(C, name, &newptr, &newlb, &newtype); if(done==1) { - PyErr_Format(PyExc_AttributeError, "bpy_struct: Context property \"%.200s\" is read-only", name); + PyErr_Format(PyExc_AttributeError, + "bpy_struct: Context property \"%.200s\" is read-only", + name); BLI_freelistN(&newlb); return -1; } @@ -3363,7 +3403,9 @@ static int pyrna_prop_collection_setattro(BPy_PropertyRNA *self, PyObject *pynam } } - PyErr_Format(PyExc_AttributeError, "bpy_prop_collection: attribute \"%.200s\" not found", name); + PyErr_Format(PyExc_AttributeError, + "bpy_prop_collection: attribute \"%.200s\" not found", + name); return -1; } @@ -4048,11 +4090,14 @@ static PyObject *pyrna_struct_new(PyTypeObject *type, PyObject *args, PyObject * } /* error, invalid type given */ - PyErr_Format(PyExc_TypeError, "bpy_struct.__new__(type): type '%.200s' is not a subtype of bpy_struct", type->tp_name); + PyErr_Format(PyExc_TypeError, + "bpy_struct.__new__(type): type '%.200s' is not a subtype of bpy_struct", + type->tp_name); return NULL; } else { - PyErr_Format(PyExc_TypeError, "bpy_struct.__new__(type): expected a single argument"); + PyErr_Format(PyExc_TypeError, + "bpy_struct.__new__(type): expected a single argument"); return NULL; } } @@ -4077,7 +4122,9 @@ static PyObject *pyrna_prop_new(PyTypeObject *type, PyObject *args, PyObject *UN return (PyObject *)ret; } else { - PyErr_Format(PyExc_TypeError, "bpy_prop.__new__(type): type '%.200s' is not a subtype of bpy_prop", type->tp_name); + PyErr_Format(PyExc_TypeError, + "bpy_prop.__new__(type): type '%.200s' is not a subtype of bpy_prop", + type->tp_name); return NULL; } } @@ -4139,7 +4186,9 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat } break; default: - PyErr_Format(PyExc_TypeError, "RNA Error: unknown array type \"%d\" (pyrna_param_to_py)", type); + PyErr_Format(PyExc_TypeError, + "RNA Error: unknown array type \"%d\" (pyrna_param_to_py)", + type); ret= NULL; break; } @@ -4237,7 +4286,9 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat break; } default: - PyErr_Format(PyExc_TypeError, "RNA Error: unknown type \"%d\" (pyrna_param_to_py)", type); + PyErr_Format(PyExc_TypeError, + "RNA Error: unknown type \"%d\" (pyrna_param_to_py)", + type); ret= NULL; break; } -- cgit v1.2.3 From 00426038d0dbf2821e091954cc6d694d786e6898 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 16:26:34 +0000 Subject: disable undo for screen & wm RNA buttons, changing shading mode via the UI for eg was doing an undo push. --- source/blender/editors/interface/interface.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index e31e3a26b40..3bd50074d84 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2636,6 +2636,17 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s UI_DEF_BUT_RNA_DISABLE(but); } + /* avoid undo push for buttons who's ID are screen or wm level + * we could disable undo for buttons with no ID too but but may have + * unforseen conciquences, so best check for ID's we _know_ are not + * handled by undo - campbell */ + if (but->flag & UI_BUT_UNDO) { + ID *id= ptr->id.data; + if(id && ELEM(GS(id->name), ID_SCR, ID_WM)) { + but->flag &= ~UI_BUT_UNDO; + } + } + /* If this button uses units, calculate the step from this */ if(ui_is_but_unit(but)) but->a1= ui_get_but_step_unit(but, but->a1); -- cgit v1.2.3 From 39a46cd4ed049bc462359f920af469c491b687f9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 17:09:23 +0000 Subject: disable undo for hard coded interface buttons: - space type switcher. - header menu toggle. - properties window header buttons. - various view3d manipulator buttons. --- source/blender/editors/screen/area.c | 8 +++- .../blender/editors/space_buttons/buttons_header.c | 52 +++++++++++----------- .../blender/editors/space_view3d/view3d_header.c | 13 ++++-- 3 files changed, 41 insertions(+), 32 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 82986dfbcc4..bc97cd9d3ff 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1406,6 +1406,7 @@ int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco) "Displays current editor type. " "Click for menu of available types"); uiButSetFunc(but, spacefunc, NULL, NULL); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ return xco + UI_UNIT_X + 14; } @@ -1414,6 +1415,7 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco) { ScrArea *sa= CTX_wm_area(C); int xco= 8; + uiBut *but; if (!sa->full) xco= ED_area_header_switchbutton(C, block, yco); @@ -1421,20 +1423,22 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco) uiBlockSetEmboss(block, UI_EMBOSSN); if (sa->flag & HEADER_NO_PULLDOWN) { - uiDefIconButBitS(block, TOG, HEADER_NO_PULLDOWN, 0, + but= uiDefIconButBitS(block, TOG, HEADER_NO_PULLDOWN, 0, ICON_DISCLOSURE_TRI_RIGHT, xco,yco,UI_UNIT_X,UI_UNIT_Y-2, &(sa->flag), 0, 0, 0, 0, "Show pulldown menus"); } else { - uiDefIconButBitS(block, TOG, HEADER_NO_PULLDOWN, 0, + but= uiDefIconButBitS(block, TOG, HEADER_NO_PULLDOWN, 0, ICON_DISCLOSURE_TRI_DOWN, xco,yco,UI_UNIT_X,UI_UNIT_Y-2, &(sa->flag), 0, 0, 0, 0, "Hide pulldown menus"); } + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ + uiBlockSetEmboss(block, UI_EMBOSS); return xco + UI_UNIT_X; diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index 19c600be937..e631718b0cb 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -104,6 +104,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar) { SpaceButs *sbuts= CTX_wm_space_buts(C); uiBlock *block; + uiBut *but; int xco, yco= 2; buttons_context_compute(C, sbuts); @@ -118,33 +119,32 @@ void buttons_header_buttons(const bContext *C, ARegion *ar) xco -= UI_UNIT_X; // Default panels + uiBlockBeginAlign(block); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_RENDER, 0, 0, "Render"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Object Constraints"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifiers"); - if(sbuts->pathflag & (1<dataicon, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_BONE_CONSTRAINT, 0, 0, "Bone Constraints"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles"); - if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics"); + +#define BUTTON_HEADER_CTX(_ctx, _icon, _tip) \ + if(sbuts->pathflag & (1<<_ctx)) { \ + but= uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, _icon, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)_ctx, 0, 0, _tip); \ + uiButClearFlag(but, UI_BUT_UNDO); \ + } \ + + + BUTTON_HEADER_CTX(BCONTEXT_RENDER, ICON_SCENE, "Render") + BUTTON_HEADER_CTX(BCONTEXT_SCENE, ICON_SCENE_DATA, "Scene"); + BUTTON_HEADER_CTX(BCONTEXT_WORLD, ICON_WORLD, "World"); + BUTTON_HEADER_CTX(BCONTEXT_OBJECT, ICON_OBJECT_DATA, "Object"); + BUTTON_HEADER_CTX(BCONTEXT_CONSTRAINT, ICON_CONSTRAINT, "Object Constraints"); + BUTTON_HEADER_CTX(BCONTEXT_MODIFIER, ICON_MODIFIER, "Object Modifiers"); + BUTTON_HEADER_CTX(BCONTEXT_DATA, sbuts->dataicon, "Object Data"); + BUTTON_HEADER_CTX(BCONTEXT_BONE, ICON_BONE_DATA, "Bone"); + BUTTON_HEADER_CTX(BCONTEXT_BONE_CONSTRAINT, ICON_CONSTRAINT_BONE, "Bone Constraints"); + BUTTON_HEADER_CTX(BCONTEXT_MATERIAL, ICON_MATERIAL, "Material"); + BUTTON_HEADER_CTX(BCONTEXT_TEXTURE, ICON_TEXTURE, "Textures"); + BUTTON_HEADER_CTX(BCONTEXT_PARTICLE, ICON_PARTICLES, "Particles"); + BUTTON_HEADER_CTX(BCONTEXT_PHYSICS, ICON_PHYSICS, "Physics"); + +#undef BUTTON_HEADER_CTX + xco+= BUT_UNIT_X; uiBlockEndAlign(block); diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 70b2a3d3628..78dcf6c9a5c 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -466,6 +466,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) Object *ob= OBACT; Object *obedit = CTX_data_edit_object(C); uiBlock *block; + uiBut *but; uiLayout *row; const float dpi_fac= UI_DPI_FAC; @@ -513,9 +514,12 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) block= uiLayoutGetBlock(row); if(v3d->twflag & V3D_USE_MANIPULATOR) { - uiDefIconButBitC(block, TOG, V3D_MANIP_TRANSLATE, B_MAN_TRANS, ICON_MAN_TRANS, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Translate manipulator mode"); - uiDefIconButBitC(block, TOG, V3D_MANIP_ROTATE, B_MAN_ROT, ICON_MAN_ROT, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Rotate manipulator mode"); - uiDefIconButBitC(block, TOG, V3D_MANIP_SCALE, B_MAN_SCALE, ICON_MAN_SCALE, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Scale manipulator mode"); + but= uiDefIconButBitC(block, TOG, V3D_MANIP_TRANSLATE, B_MAN_TRANS, ICON_MAN_TRANS, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Translate manipulator mode"); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ + but= uiDefIconButBitC(block, TOG, V3D_MANIP_ROTATE, B_MAN_ROT, ICON_MAN_ROT, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Rotate manipulator mode"); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ + but= uiDefIconButBitC(block, TOG, V3D_MANIP_SCALE, B_MAN_SCALE, ICON_MAN_SCALE, 0,0,UI_UNIT_X,UI_UNIT_Y, &v3d->twtype, 1.0, 0.0, 0, 0, "Scale manipulator mode"); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ } if (v3d->twmode > (BIF_countTransformOrientation(C) - 1) + V3D_MANIP_CUSTOM) { @@ -523,7 +527,8 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) } str_menu = BIF_menustringTransformOrientation(C, "Orientation"); - uiDefButC(block, MENU, B_MAN_MODE, str_menu,0,0,70 * dpi_fac, UI_UNIT_Y, &v3d->twmode, 0, 0, 0, 0, "Transform Orientation"); + but= uiDefButC(block, MENU, B_MAN_MODE, str_menu,0,0,70 * dpi_fac, UI_UNIT_Y, &v3d->twmode, 0, 0, 0, 0, "Transform Orientation"); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ MEM_freeN((void *)str_menu); } -- cgit v1.2.3 From ccdec67fec8a39b8239e93bd04e38b4d8cbd18e7 Mon Sep 17 00:00:00 2001 From: Morten Mikkelsen Date: Thu, 18 Aug 2011 17:25:54 +0000 Subject: bugfix: genx and geny are not the image resolution. Texture space variant needs this. --- source/blender/render/intern/source/render_texture.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 5aad055a8f6..579afc21c1d 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -2084,14 +2084,21 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T if( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) { if(tex->ima) { - // crazy hack solution that gives results similar to normal mapping - part 2 float vec[2]; + int dimx=512, dimy=512; + ImBuf* ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser); + if (ibuf) { + dimx = ibuf->x; + dimy = ibuf->y; + } + + // crazy hack solution that gives results similar to normal mapping - part 2 - vec[0] = tex->ima->gen_x*dxt[0]; - vec[1] = tex->ima->gen_y*dxt[1]; + vec[0] = dimx*dxt[0]; + vec[1] = dimy*dxt[1]; dHdx *= 1.0f/len_v2(vec); - vec[0] = tex->ima->gen_x*dyt[0]; - vec[1] = tex->ima->gen_y*dyt[1]; + vec[0] = dimx*dyt[0]; + vec[1] = dimy*dyt[1]; dHdy *= 1.0f/len_v2(vec); } } -- cgit v1.2.3 From 238955070b334062764e81c01c6d8381c332a54a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 18:42:42 +0000 Subject: minor change for operator OUTLINER_OT_item_activate Noticed clicking anywhere in the outliner was doing undo pushes, even in empty areas. - check if any selection is made before redrawing. - don't do an undo push when selecting outliner items since only screen data is touched here. --- .../blender/editors/space_outliner/outliner_intern.h | 3 --- .../blender/editors/space_outliner/outliner_select.c | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index 85bbbd4fffb..1a6448588aa 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -143,9 +143,6 @@ void outliner_build_tree(struct Main *mainvar, struct Scene *scene, struct Space void draw_outliner(const struct bContext *C); /* outliner_select.c -------------------------------------------- */ - -void outliner_select(struct SpaceOops *soops, ListBase *lb, int *index, short *selecting); - int tree_element_type_active(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set); int tree_element_active(struct bContext *C, struct Scene *scene, SpaceOops *soops, TreeElement *te, int set); diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index 620a936a944..46a9bde8267 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -106,10 +106,11 @@ /* ****************************************************** */ /* Outliner Selection (grey-blue highlight for rows) */ -void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) +static int outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) { TreeElement *te; TreeStoreElem *tselem; + int change= 0; for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { tselem= TREESTORE(te); @@ -131,6 +132,8 @@ void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selectin tselem->flag |= TSE_SELECTED; else tselem->flag &= ~TSE_SELECTED; + + change |= 1; } } else if ((tselem->flag & TSE_CLOSED)==0) { @@ -142,10 +145,12 @@ void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selectin * function correctly */ (*index)--; - outliner_select(soops, &te->subtree, index, selecting); + change |= outliner_select(soops, &te->subtree, index, selecting); (*index)++; } } + + return change; } /* ****************************************************** */ @@ -839,11 +844,14 @@ static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) fmval[0], fmval[1], NULL, &row); /* select relevant row */ - outliner_select(soops, &soops->tree, &row, &selecting); + if(outliner_select(soops, &soops->tree, &row, &selecting)) { - soops->storeflag |= SO_TREESTORE_REDRAW; + soops->storeflag |= SO_TREESTORE_REDRAW; - ED_undo_push(C, "Outliner selection event"); + /* no need for undo push here, only changing outliner data which is + * scene level - campbell */ + /* ED_undo_push(C, "Outliner selection event"); */ + } } ED_region_tag_redraw(ar); -- cgit v1.2.3 From 042d4d3509069a2dab9ed3a8f5629099d09548c2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 19:07:37 +0000 Subject: misc changes to unterface & undo - operator strings were doing undo pushes (in fileselector text for example), this is dumb since the operators themselves handle undo. - interface code checks rna props are arrays rather then checking the array length. - disable properties window pin undoing. - sequencer refresh was calling undo, disable since this is clearnign global data not handled by undo. - added commented out code for drawing mesh vertex index/key index, useful for debugging shapekey - hook issyes. --- source/blender/editors/interface/interface.c | 53 ++++++++++++++-------- .../blender/editors/interface/interface_layout.c | 4 +- .../editors/space_buttons/buttons_context.c | 1 + .../editors/space_sequencer/sequencer_edit.c | 3 -- source/blender/editors/space_view3d/drawobject.c | 15 +++++- 5 files changed, 51 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 3bd50074d84..935a0ef6387 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -710,6 +710,27 @@ int uiButActiveOnly(const bContext *C, uiBlock *block, uiBut *but) return 1; } +/* use to check if we need to disable undo, but dont make any changes + * returns FALSE if undo needs to be disabled. */ +static int ui_but_is_rna_undo(uiBut *but) +{ + if(but->rnapoin.id.data) { + /* avoid undo push for buttons who's ID are screen or wm level + * we could disable undo for buttons with no ID too but may have + * unforseen conciquences, so best check for ID's we _know_ are not + * handled by undo - campbell */ + ID *id= but->rnapoin.id.data; + if(ELEM(GS(id->name), ID_SCR, ID_WM)) { + return FALSE; + } + else { + return TRUE; + } + } + + return TRUE; +} + /* assigns automatic keybindings to menu items for fast access * (underline key in menu) */ static void ui_menu_block_set_keyaccels(uiBlock *block) @@ -1245,12 +1266,14 @@ int ui_is_but_float(uiBut *but) int ui_is_but_unit(uiBut *but) { - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); - int unit_type= uiButGetUnitType(but); + const int unit_type= uiButGetUnitType(but); + Scene *scene; /* avoid getting the scene on non unit buttons */ if(unit_type == PROP_UNIT_NONE) return 0; + scene= CTX_data_scene((bContext *)but->block->evil_C); + #if 1 // removed so angle buttons get correct snapping if (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION) return 0; @@ -1293,19 +1316,19 @@ double ui_get_but_val(uiBut *but) switch(RNA_property_type(prop)) { case PROP_BOOLEAN: - if(RNA_property_array_length(&but->rnapoin, prop)) + if(RNA_property_array_check(prop)) value= RNA_property_boolean_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_boolean_get(&but->rnapoin, prop); break; case PROP_INT: - if(RNA_property_array_length(&but->rnapoin, prop)) + if(RNA_property_array_check(prop)) value= RNA_property_int_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_int_get(&but->rnapoin, prop); break; case PROP_FLOAT: - if(RNA_property_array_length(&but->rnapoin, prop)) + if(RNA_property_array_check(prop)) value= RNA_property_float_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_float_get(&but->rnapoin, prop); @@ -2506,12 +2529,10 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip) { + const PropertyType proptype= RNA_property_type(prop); uiBut *but; - PropertyType proptype; int freestr= 0, icon= 0; - proptype= RNA_property_type(prop); - /* use rna values if parameters are not specified */ if(!str) { if(type == MENU && proptype == PROP_ENUM) { @@ -2636,20 +2657,14 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s UI_DEF_BUT_RNA_DISABLE(but); } - /* avoid undo push for buttons who's ID are screen or wm level - * we could disable undo for buttons with no ID too but but may have - * unforseen conciquences, so best check for ID's we _know_ are not - * handled by undo - campbell */ - if (but->flag & UI_BUT_UNDO) { - ID *id= ptr->id.data; - if(id && ELEM(GS(id->name), ID_SCR, ID_WM)) { - but->flag &= ~UI_BUT_UNDO; - } + if (but->flag & UI_BUT_UNDO && (ui_but_is_rna_undo(but) == FALSE)) { + but->flag &= ~UI_BUT_UNDO; } /* If this button uses units, calculate the step from this */ - if(ui_is_but_unit(but)) + if((proptype == PROP_FLOAT) && ui_is_but_unit(but)) { but->a1= ui_get_but_step_unit(but, but->a1); + } if(freestr) MEM_freeN((void *)str); @@ -2693,6 +2708,7 @@ static uiBut *ui_def_but_operator(uiBlock *block, int type, const char *opname, but= ui_def_but(block, type, -1, str, x1, y1, x2, y2, NULL, 0, 0, 0, 0, tip); but->optype= ot; but->opcontext= opcontext; + but->flag &= ~UI_BUT_UNDO; /* no need for ui_but_is_undo(), we never need undo here */ if(!ot) { but->flag |= UI_BUT_DISABLED; @@ -2722,6 +2738,7 @@ static uiBut *ui_def_but_operator_text(uiBlock *block, int type, const char *opn but= ui_def_but(block, type, -1, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip); but->optype= ot; but->opcontext= opcontext; + but->flag &= ~UI_BUT_UNDO; /* no need for ui_but_is_undo(), we never need undo here */ if(!ot) { but->flag |= UI_BUT_DISABLED; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 4810b3fdf54..3575a8527fc 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1017,12 +1017,10 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index ui_item_array(layout, block, name, icon, ptr, prop, len, 0, 0, w, h, expand, slider, toggle, icon_only); /* enum item */ else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) { - const char *identifier= RNA_property_identifier(prop); - if(icon && name[0] && !icon_only) uiDefIconTextButR_prop(block, ROW, 0, icon, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); else if(icon) - uiDefIconButR(block, ROW, 0, icon, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + uiDefIconButR_prop(block, ROW, 0, icon, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); else uiDefButR_prop(block, ROW, 0, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); } diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 8e1a4b2d16c..0d81a84deea 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -904,6 +904,7 @@ void buttons_context_draw(const bContext *C, uiLayout *layout) block= uiLayoutGetBlock(row); uiBlockSetEmboss(block, UI_EMBOSSN); but= uiDefIconButBitC(block, ICONTOG, SB_PIN_CONTEXT, 0, ICON_UNPINNED, 0, 0, UI_UNIT_X, UI_UNIT_Y, &sbuts->flag, 0, 0, 0, 0, "Follow context or keep fixed datablock displayed"); + uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */ uiButSetFunc(but, pin_cb, NULL, NULL); for(a=0; alen; a++) { diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 5429f0ee98f..531ecebba5e 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1228,9 +1228,6 @@ void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot) /* api callbacks */ ot->exec= sequencer_refresh_all_exec; ot->poll= sequencer_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index f5c178267aa..ddc10d78cac 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2367,7 +2367,20 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E } } } - + + /* useful for debugging index vs shape key index */ +#if 0 + { + EditVert *eve; + int j; + UI_GetThemeColor3ubv(TH_DRAWEXTRA_FACEANG, col); + for(eve= em->verts.first, j= 0; eve; eve= eve->next, j++) { + sprintf(val, "%d:%d", j, eve->keyindex); + view3d_cached_text_draw_add(eve->co, val, 0, V3D_CACHE_TEXT_ASCII, col); + } + } +#endif + if(v3d->zbuf) { glEnable(GL_DEPTH_TEST); bglPolygonOffset(rv3d->dist, 0.0f); -- cgit v1.2.3 From 2ee74be88cb045d403bc5145647da4262f131077 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Thu, 18 Aug 2011 19:16:36 +0000 Subject: Blender tip profile for bones with 2 or more children. --- source/blender/collada/ArmatureExporter.cpp | 5 ++++- source/blender/collada/ArmatureImporter.cpp | 8 ++------ 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 1c81c0b6e76..753d57b5af8 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -177,7 +177,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) node.setNodeName(node_name); node.setNodeSid(node_sid); - if ( bone->childbase.first == NULL ) + if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2) add_blender_leaf_bone( bone, ob_arm , node ); else{ node.start(); @@ -202,6 +202,9 @@ void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADA node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] ); node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] ); + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) { + add_bone_node(child, ob_arm); + } node.end(); } diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 81d785371df..381a6cc06a9 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -83,14 +83,11 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p float parent_mat[][4], Object * ob_arm) { float mat[4][4]; - float obmat[4][4]; + float obmat[4][4]; // object-space get_node_mat(obmat, node, NULL, NULL); - // get world-space - - EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node)); totbone++; @@ -151,7 +148,6 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // in second case it's not a leaf bone, but we handle it the same way if (!children.getCount() || children.getCount() > 1) { - add_leaf_bone(mat, bone, node); } @@ -659,7 +655,7 @@ void ArmatureImporter::make_armatures(bContext *C) } //for bones without skins - create_armature_bones(); + //create_armature_bones(); } #if 0 -- cgit v1.2.3 From 0de911210215fb6730977c68c0b310b840638b1d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 18 Aug 2011 20:01:30 +0000 Subject: store a pointer to the units system in the uiBlock since the button code was doing context lookups for the scene quite a lot. --- source/blender/editors/interface/interface.c | 40 +++++++++++----------- .../blender/editors/interface/interface_handlers.c | 8 ++--- .../blender/editors/interface/interface_intern.h | 4 ++- 3 files changed, 27 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 935a0ef6387..a5ceb8bdb19 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1266,16 +1266,14 @@ int ui_is_but_float(uiBut *but) int ui_is_but_unit(uiBut *but) { + UnitSettings *unit= but->block->unit; const int unit_type= uiButGetUnitType(but); - Scene *scene; /* avoid getting the scene on non unit buttons */ if(unit_type == PROP_UNIT_NONE) return 0; - scene= CTX_data_scene((bContext *)but->block->evil_C); - #if 1 // removed so angle buttons get correct snapping - if (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION) + if (unit->system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION) return 0; #endif @@ -1283,7 +1281,7 @@ int ui_is_but_unit(uiBut *but) if (unit_type == PROP_UNIT_TIME) return 0; - if (scene->unit.system == USER_UNIT_NONE) { + if (unit->system == USER_UNIT_NONE) { if (unit_type != PROP_UNIT_ROTATION) { return 0; } @@ -1482,19 +1480,20 @@ int ui_get_but_string_max_length(uiBut *but) static double ui_get_but_scale_unit(uiBut *but, double value) { - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); + UnitSettings *unit= but->block->unit; int unit_type= uiButGetUnitType(but); if(unit_type == PROP_UNIT_LENGTH) { - return value * (double)scene->unit.scale_length; + return value * (double)unit->scale_length; } else if(unit_type == PROP_UNIT_AREA) { - return value * pow(scene->unit.scale_length, 2); + return value * pow(unit->scale_length, 2); } else if(unit_type == PROP_UNIT_VOLUME) { - return value * pow(scene->unit.scale_length, 3); + return value * pow(unit->scale_length, 3); } else if(unit_type == PROP_UNIT_TIME) { /* WARNING - using evil_C :| */ + Scene *scene= CTX_data_scene(but->block->evil_C); return FRA2TIME(value); } else { @@ -1506,14 +1505,14 @@ static double ui_get_but_scale_unit(uiBut *but, double value) void ui_convert_to_unit_alt_name(uiBut *but, char *str, int maxlen) { if(ui_is_but_unit(but)) { + UnitSettings *unit= but->block->unit; int unit_type= uiButGetUnitType(but); char *orig_str; - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); orig_str= MEM_callocN(sizeof(char)*maxlen + 1, "textedit sub str"); memcpy(orig_str, str, maxlen); - bUnit_ToUnitAltName(str, maxlen, orig_str, scene->unit.system, unit_type>>16); + bUnit_ToUnitAltName(str, maxlen, orig_str, unit->system, unit_type>>16); MEM_freeN(orig_str); } @@ -1521,27 +1520,26 @@ void ui_convert_to_unit_alt_name(uiBut *but, char *str, int maxlen) static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double value, int pad) { - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); - int do_split= scene->unit.flag & USER_UNIT_OPT_SPLIT; + UnitSettings *unit= but->block->unit; + int do_split= unit->flag & USER_UNIT_OPT_SPLIT; int unit_type= uiButGetUnitType(but); int precision= but->a2; - if(scene->unit.scale_length<0.0001f) scene->unit.scale_length= 1.0f; // XXX do_versions + if(unit->scale_length<0.0001f) unit->scale_length= 1.0f; // XXX do_versions /* Sanity checks */ if(precision > PRECISION_FLOAT_MAX) precision= PRECISION_FLOAT_MAX; else if(precision==0) precision= 2; - bUnit_AsString(str, len_max, ui_get_but_scale_unit(but, value), precision, scene->unit.system, unit_type>>16, do_split, pad); + bUnit_AsString(str, len_max, ui_get_but_scale_unit(but, value), precision, unit->system, unit_type>>16, do_split, pad); } static float ui_get_but_step_unit(uiBut *but, float step_default) { - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); int unit_type= uiButGetUnitType(but)>>16; float step; - step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, step_default), scene->unit.system, unit_type); + step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, step_default), but->block->unit->system, unit_type); if(step > 0.0f) { /* -1 is an error value */ return (float)((double)step/ui_get_but_scale_unit(but, 1.0))*100.0f; @@ -1629,12 +1627,11 @@ static int ui_set_but_string_eval_num_unit(bContext *C, uiBut *but, const char * { char str_unit_convert[256]; const int unit_type= uiButGetUnitType(but); - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); BLI_strncpy(str_unit_convert, str, sizeof(str_unit_convert)); /* ugly, use the draw string to get the value, this could cause problems if it includes some text which resolves to a unit */ - bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), scene->unit.system, unit_type>>16); + bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), but->block->unit->system, unit_type>>16); return (BPY_button_exec(C, str_unit_convert, value, TRUE) != -1); } @@ -1981,7 +1978,10 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor block->active= 1; block->dt= dt; block->evil_C= (void*)C; // XXX - if (scn) block->color_profile= (scn->r.color_mgt_flag & R_COLOR_MANAGEMENT); + if (scn) { + block->color_profile= (scn->r.color_mgt_flag & R_COLOR_MANAGEMENT); + block->unit= &scn->unit; + } BLI_strncpy(block->name, name, sizeof(block->name)); if(region) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6f3ca2bf003..3bd29f8de3e 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2310,13 +2310,13 @@ static float ui_numedit_apply_snapf(uiBut *but, float tempf, float softmin, floa float fac= 1.0f; if(ui_is_but_unit(but)) { - Scene *scene= CTX_data_scene((bContext *)but->block->evil_C); + UnitSettings *unit= but->block->unit; int unit_type= uiButGetUnitType(but)>>16; - if(bUnit_IsValid(scene->unit.system, unit_type)) { - fac= (float)bUnit_BaseScalar(scene->unit.system, unit_type); + if(bUnit_IsValid(unit->system, unit_type)) { + fac= (float)bUnit_BaseScalar(unit->system, unit_type); if(ELEM3(unit_type, B_UNIT_LENGTH, B_UNIT_AREA, B_UNIT_VOLUME)) { - fac /= scene->unit.scale_length; + fac /= unit->scale_length; } } } diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 242210e01bb..40b98bebcd0 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -332,7 +332,9 @@ struct uiBlock { void *evil_C; // XXX hack for dynamic operator enums float _hsv[3]; // XXX, only access via ui_block_hsv_get() - char color_profile; // color profile for correcting linear colors for display + char color_profile; // color profile for correcting linear colors for display + struct UnitSettings *unit; // unit system, used a lot for numeric buttons so include here rather then fetching through the scene every time. + }; typedef struct uiSafetyRct { -- cgit v1.2.3 From c6465197763d9110361a795fcc6a2292790a7fc7 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 18 Aug 2011 22:56:41 +0000 Subject: Export only objects on visible layers. This ensures we can hide for instance bone shapes. --- source/blender/collada/DocumentExporter.cpp | 2 ++ source/blender/collada/GeometryExporter.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 0a30365658e..32956921f5b 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -195,6 +195,7 @@ public: Object *ob = base->object; if (!ob->parent) { + if(sce->lay & ob->lay) { switch(ob->type) { case OB_MESH: case OB_CAMERA: @@ -208,6 +209,7 @@ public: writeNodes(ob, sce); break; } + } } base= base->next; diff --git a/source/blender/collada/GeometryExporter.h b/source/blender/collada/GeometryExporter.h index 7f3426a1915..d9d265a66fc 100644 --- a/source/blender/collada/GeometryExporter.h +++ b/source/blender/collada/GeometryExporter.h @@ -110,7 +110,8 @@ struct GeometryFunctor { Object *ob = base->object; if (ob->type == OB_MESH && ob->data - && !(export_selected && !(ob->flag && SELECT))) { + && !(export_selected && !(ob->flag && SELECT)) + && ((sce->lay & ob->lay)!=0)) { f(ob); } base= base->next; -- cgit v1.2.3 From 561b49e9258f46229ccf5a2426d3deae01028ae3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 19 Aug 2011 10:35:47 +0000 Subject: minor style change --- source/blender/python/intern/bpy_rna.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4d8d524d7e3..accc34152b5 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -4309,7 +4309,6 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject PropertyRNA *parm; PyObject *ret, *item; int i, pyargs_len, pykw_len, parms_len, ret_len, flag, err= 0, kw_tot= 0, kw_arg; - const char *parm_id; PropertyRNA *pret_single= NULL; void *retdata_single= NULL; @@ -4385,28 +4384,29 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject continue; } - parm_id= RNA_property_identifier(parm); item= NULL; if (i < pyargs_len) { item= PyTuple_GET_ITEM(args, i); - i++; - kw_arg= FALSE; } else if (kw != NULL) { - item= PyDict_GetItemString(kw, parm_id); /* borrow ref */ + item= PyDict_GetItemString(kw, RNA_property_identifier(parm)); /* borrow ref */ if(item) kw_tot++; /* make sure invalid keywords are not given */ kw_arg= TRUE; } + i++; /* current argument */ + if (item==NULL) { if(flag & PROP_REQUIRED) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s(): required parameter \"%.200s\" not specified", - RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), parm_id); + RNA_struct_identifier(self_ptr->type), + RNA_function_identifier(self_func), + RNA_property_identifier(parm)); err= -1; break; } @@ -4433,9 +4433,18 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject PyErr_Clear(); /* re-raise */ if(kw_arg==TRUE) - snprintf(error_prefix, sizeof(error_prefix), "%s.%s(): error with keyword argument \"%s\" - ", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), parm_id); + BLI_snprintf(error_prefix, sizeof(error_prefix), + "%.200s.%.200s(): error with keyword argument \"%.200s\" - ", + RNA_struct_identifier(self_ptr->type), + RNA_function_identifier(self_func), + RNA_property_identifier(parm)); else - snprintf(error_prefix, sizeof(error_prefix), "%s.%s(): error with argument %d, \"%s\" - ", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), i, parm_id); + BLI_snprintf(error_prefix, sizeof(error_prefix), + "%.200s.%.200s(): error with argument %d, \"%.200s\" - ", + RNA_struct_identifier(self_ptr->type), + RNA_function_identifier(self_func), + i, + RNA_property_identifier(parm)); pyrna_py_to_prop(&funcptr, parm, iter.data, item, error_prefix); -- cgit v1.2.3 From 2c1182664cb65e760742ed43fa840cd241d74b4a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 19 Aug 2011 10:38:34 +0000 Subject: minor speedup to python/rna api keyword argument lookups. - dont use hash lookups in this case because converting the string to unicode and doing a hash lookup is slower then looping over the keys and comparing (which avoids creating and throwning away a unicode string). --- source/blender/python/intern/bpy_rna.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index accc34152b5..1b8f986e71c 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -4297,6 +4297,27 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat return ret; } +/* Use to replace PyDict_GetItemString() when the overhead of converting a + * string into a python unicode is higher than a non hash lookup. + * works on small dict's such as keyword args. */ +static PyObject *small_dict_get_item_string(PyObject *dict, const char *key_lookup) +{ + PyObject *key= NULL; + Py_ssize_t pos = 0; + PyObject *value = NULL; + + /* case not, search for it in the script's global dictionary */ + while (PyDict_Next(dict, &pos, &key, &value)) { + if(PyUnicode_Check(key)) { + if(strcmp(key_lookup, _PyUnicode_AsString(key))==0) { + return value; + } + } + } + + return NULL; +} + static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject *kw) { /* Note, both BPy_StructRNA and BPy_PropertyRNA can be used here */ @@ -4391,7 +4412,11 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject kw_arg= FALSE; } else if (kw != NULL) { +#if 0 item= PyDict_GetItemString(kw, RNA_property_identifier(parm)); /* borrow ref */ +#else + item= small_dict_get_item_string(kw, RNA_property_identifier(parm)); /* borrow ref */ +#endif if(item) kw_tot++; /* make sure invalid keywords are not given */ -- cgit v1.2.3 From ac3d785caaf272304738ecc0799c1dc9c11c3c82 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 19 Aug 2011 14:29:33 +0000 Subject: Animation exporter matrix source param fix. --- source/blender/collada/AnimationExporter.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 7bcb225e3c2..8a7d285abcb 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -732,7 +732,7 @@ void AnimationExporter::exportAnimations(Scene *sce) source.setAccessorStride(16); COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, false, NULL, false); + add_source_parameters(param, semantic, false, NULL, true); source.prepareToAppendValues(); @@ -1123,7 +1123,8 @@ void AnimationExporter::exportAnimations(Scene *sce) } } - if ( fcu) return true; + if ( fcu) + return true; base= base->next; } return false; -- cgit v1.2.3 From 3a81f23e0975ea87ade780965462ad5b15b39d95 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 19 Aug 2011 16:21:29 +0000 Subject: warning cleanup for -Wdouble-promotion --- source/blender/blenkernel/intern/cloth.c | 2 +- source/blender/blenlib/intern/jitter.c | 74 +++++++++++----------- source/blender/blenlib/intern/math_geom.c | 6 +- source/blender/blenlib/intern/math_rotation.c | 6 +- source/blender/blenlib/intern/rct.c | 8 +-- source/blender/blenlib/intern/scanfill.c | 16 ++--- .../blender/editors/interface/interface_widgets.c | 2 +- source/blender/editors/object/object_add.c | 2 +- source/blender/editors/object/object_bake.c | 4 +- .../editors/space_outliner/outliner_intern.h | 4 +- source/blender/editors/space_view3d/view3d_draw.c | 8 +-- source/blender/editors/space_view3d/view3d_edit.c | 4 +- source/blender/editors/space_view3d/view3d_fly.c | 2 +- source/blender/editors/transform/transform.c | 2 +- source/blender/makesrna/intern/rna_sequencer.c | 2 +- .../blender/render/intern/source/convertblender.c | 16 ++--- .../blender/render/intern/source/volume_precache.c | 4 +- source/blender/render/intern/source/volumetric.c | 18 +++--- source/blender/render/intern/source/voxeldata.c | 6 +- source/blender/windowmanager/intern/wm_operators.c | 2 +- 20 files changed, 94 insertions(+), 94 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index ea055e90b45..3a86389dba7 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -923,7 +923,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d for(i = 0; i < dm->getNumVerts(dm); i++) { - maxdist = MAX2(maxdist, clmd->coll_parms->selfepsilon* ( cloth->verts[i].avg_spring_len*2.0)); + maxdist = MAX2(maxdist, clmd->coll_parms->selfepsilon* ( cloth->verts[i].avg_spring_len*2.0f)); } clmd->clothObject->bvhselftree = bvhselftree_build_from_cloth ( clmd, maxdist ); diff --git a/source/blender/blenlib/intern/jitter.c b/source/blender/blenlib/intern/jitter.c index 16f0c86c449..f0e81d6b5e9 100644 --- a/source/blender/blenlib/intern/jitter.c +++ b/source/blender/blenlib/intern/jitter.c @@ -53,10 +53,10 @@ void BLI_jitterate1(float *jit1, float *jit2, int num, float rad1) y = jit1[i+1]; for (j = 2*num-2; j>=0 ; j-=2) { if (i != j){ - vecx = jit1[j] - x - 1.0; - vecy = jit1[j+1] - y - 1.0; + vecx = jit1[j] - x - 1.0f; + vecy = jit1[j+1] - y - 1.0f; for (k = 3; k>0 ; k--){ - if( fabs(vecx)0 && len0 && len0 && len= 0 ; j-=2){ if (i != j){ - vecx = jit1[j] - x - 1.0; - vecy = jit1[j+1] - y - 1.0; + vecx = jit1[j] - x - 1.0f; + vecy = jit1[j+1] - y - 1.0f; - if( fabs(vecx) 0.0) { + else if (i > 0.0f) { const float i_sqrt= sqrt(i); /* avoid calc twice */ /* first intersection */ @@ -456,7 +456,7 @@ int isect_line_sphere_v2(const float l1[2], const float l2[2], madd_v2_v2v2fl(r_p1, l1, ldir, mu); return 1; } - else if (i > 0.0) { + else if (i > 0.0f) { const float i_sqrt= sqrt(i); /* avoid calc twice */ /* first intersection */ @@ -2010,7 +2010,7 @@ void resolve_quad_uv(float uv[2], const float st[2], const float st0[2], const f } if(IS_ZERO(denom)==0) - uv[1]= (float) (( (1-uv[0])*(st0[i]-st[i]) + uv[0]*(st1[i]-st[i]) ) / denom); + uv[1]= (float) (( (1.0f-uv[0])*(st0[i]-st[i]) + uv[0]*(st1[i]-st[i]) ) / denom); } } diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index dfd715ccbf2..e3e507d016a 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -213,7 +213,7 @@ void quat_to_mat4(float m[][4], const float q[4]) double q0, q1, q2, q3, qda,qdb,qdc,qaa,qab,qac,qbb,qbc,qcc; #ifdef DEBUG - if(!((q0=dot_qtqt(q, q))==0.0f || (fabsf(q0-1.0f) < (float)QUAT_EPSILON))) { + if(!((q0=dot_qtqt(q, q))==0.0f || (fabs(q0-1.0) < QUAT_EPSILON))) { fprintf(stderr, "Warning! quat_to_mat4() called with non-normalized: size %.8f *** report a bug ***\n", (float)q0); } #endif @@ -492,8 +492,8 @@ void vec_to_quat(float q[4], const float vec[3], short axis, const short upflag) else angle= (float)(-0.5*atan2(-fp[0], -fp[1])); } - co= (float)cos(angle); - si= (float)(sin(angle)/len1); + co= cosf(angle); + si= sinf(angle)/len1; q2[0]= co; q2[1]= x2*si; q2[2]= y2*si; diff --git a/source/blender/blenlib/intern/rct.c b/source/blender/blenlib/intern/rct.c index 17b07b49309..31ae8adc2d4 100644 --- a/source/blender/blenlib/intern/rct.c +++ b/source/blender/blenlib/intern/rct.c @@ -233,10 +233,10 @@ int BLI_isect_rcti(rcti *src1, rcti *src2, rcti *dest) void BLI_copy_rcti_rctf(rcti *tar, const rctf *src) { - tar->xmin= floor(src->xmin + 0.5); - tar->xmax= floor((src->xmax - src->xmin) + 0.5); - tar->ymin= floor(src->ymin + 0.5); - tar->ymax= floor((src->ymax - src->ymin) + 0.5); + tar->xmin= floor(src->xmin + 0.5f); + tar->xmax= floor((src->xmax - src->xmin) + 0.5f); + tar->ymin= floor(src->ymin + 0.5f); + tar->ymax= floor((src->ymax - src->ymin) + 0.5f); } void print_rctf(const char *str, rctf *rect) diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c index 47a07d86e66..b159106f748 100644 --- a/source/blender/blenlib/intern/scanfill.c +++ b/source/blender/blenlib/intern/scanfill.c @@ -288,7 +288,7 @@ static short testedgeside(float *v1, float *v2, float *v3) inp= (v2[cox]-v1[cox])*(v1[coy]-v3[coy]) +(v1[coy]-v2[coy])*(v1[cox]-v3[cox]); - if(inp<0.0) return 0; + if(inp < 0.0f) return 0; else if(inp==0) { if(v1[cox]==v3[cox] && v1[coy]==v3[coy]) return 0; if(v2[cox]==v3[cox] && v2[coy]==v3[coy]) return 0; @@ -312,8 +312,8 @@ static short addedgetoscanvert(ScFillVert *sc, EditEdge *eed) y= eed->v1->co[coy]; fac1= eed->v2->co[coy]-y; - if(fac1==0.0) { - fac1= 1.0e10*(eed->v2->co[cox]-x); + if(fac1==0.0f) { + fac1= 1.0e10f*(eed->v2->co[cox]-x); } else fac1= (x-eed->v2->co[cox])/fac1; @@ -324,8 +324,8 @@ static short addedgetoscanvert(ScFillVert *sc, EditEdge *eed) if(ed->v2==eed->v2) return 0; fac= ed->v2->co[coy]-y; - if(fac==0.0) { - fac= 1.0e10*(ed->v2->co[cox]-x); + if(fac==0.0f) { + fac= 1.0e10f*(ed->v2->co[cox]-x); } else fac= (x-ed->v2->co[cox])/fac; @@ -443,7 +443,7 @@ static void testvertexnearedge(void) vec2[1]= eed->v2->co[coy]; if(boundinsideEV(eed,eve)) { dist= dist_to_line_v2(vec1,vec2,vec3); - if(distv1, eve); @@ -816,7 +816,7 @@ int BLI_edgefill(short mat_nr) if(v2) { if( compare_v3v3(v2, eve->co, COMPLIMIT)==0) { len= normal_tri_v3( norm,v1, v2, eve->co); - if(len != 0.0) break; + if(len != 0.0f) break; } } else if(compare_v3v3(v1, eve->co, COMPLIMIT)==0) { @@ -825,7 +825,7 @@ int BLI_edgefill(short mat_nr) eve= eve->next; } - if(len==0.0) return 0; /* no fill possible */ + if(len==0.0f) return 0; /* no fill possible */ norm[0]= fabs(norm[0]); norm[1]= fabs(norm[1]); diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index d235fd0c16a..5da875356ea 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -180,7 +180,7 @@ void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y glEnable(GL_BLEND); glGetFloatv(GL_CURRENT_COLOR, color); - color[3]*= 0.125; + color[3] *= 0.125f; glColor4fv(color); /* for each AA step */ diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index cd42661f320..d5f10f1d37d 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -182,7 +182,7 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode) } RNA_def_float_vector_xyz(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object", -FLT_MAX, FLT_MAX); - RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -M_PI * 2.0f, M_PI * 2.0f); + RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", (float)-M_PI * 2.0f, (float)M_PI * 2.0f); prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", ""); RNA_def_property_flag(prop, PROP_HIDDEN); diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 679e4e58017..ee162464c70 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -636,14 +636,14 @@ static void apply_heights_data(void *bake_data) if(ibuf->rect_float) { float *rrgbf= ibuf->rect_float + i*4; - if(max-min > 1e-5) height= (heights[i]-min)/(max-min); + if(max-min > 1e-5f) height= (heights[i]-min)/(max-min); else height= 0; rrgbf[0]=rrgbf[1]=rrgbf[2]= height; } else { char *rrgb= (char*)ibuf->rect + i*4; - if(max-min > 1e-5) height= (heights[i]-min)/(max-min); + if(max-min > 1e-5f) height= (heights[i]-min)/(max-min); else height= 0; rrgb[0]=rrgb[1]=rrgb[2]= FTOCHAR(height); diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index 1a6448588aa..cf4ce9c06a8 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -124,8 +124,8 @@ typedef struct TreeElement { #define OL_TOGW OL_TOG_RESTRICT_VIEWX #define OL_RNA_COLX (UI_UNIT_X*15) -#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) -#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) +#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5f) +#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5f) /* outliner_tree.c ----------------------------------------------- */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 7cf95261211..f8837594ddb 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -721,7 +721,7 @@ static void draw_rotation_guide(RegionView3D *rv3d) { #define ROT_AXIS_DETAIL 13 const float s = 0.05f * scale; - const float step = 2.f * M_PI / ROT_AXIS_DETAIL; + const float step = 2.f * (float)(M_PI / ROT_AXIS_DETAIL); float angle; int i; @@ -1041,7 +1041,7 @@ static void drawviewborder_triangle(float x1, float x2, float y1, float y2, cons glBegin(GL_LINES); if(w > h) { if(golden) { - ofs = w * (1.0f-(1.0f/1.61803399)); + ofs = w * (1.0f-(1.0f/1.61803399f)); } else { ofs = h * (h / w); @@ -1059,7 +1059,7 @@ static void drawviewborder_triangle(float x1, float x2, float y1, float y2, cons } else { if(golden) { - ofs = h * (1.0f-(1.0f/1.61803399)); + ofs = h * (1.0f-(1.0f/1.61803399f)); } else { ofs = w * (w / h); @@ -1203,7 +1203,7 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d) if (ca->dtx & CAM_DTX_GOLDEN) { UI_ThemeColorBlendShade(TH_WIRE, TH_BACK, 0.25, 0); - drawviewborder_grid3(x1, x2, y1, y2, 1.0f-(1.0f/1.61803399)); + drawviewborder_grid3(x1, x2, y1, y2, 1.0f-(1.0f/1.61803399f)); } if (ca->dtx & CAM_DTX_GOLDEN_TRI_A) { diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 3e6bbc13334..979a602b4f5 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1697,7 +1697,7 @@ void VIEW3D_OT_zoom(wmOperatorType *ot) static void view_dolly_mouseloc(ARegion *ar, float orig_ofs[3], float dvec[3], float dfac) { RegionView3D *rv3d= ar->regiondata; - madd_v3_v3v3fl(rv3d->ofs, orig_ofs, dvec, -(1.0 - dfac)); + madd_v3_v3v3fl(rv3d->ofs, orig_ofs, dvec, -(1.0f - dfac)); } static void viewdolly_apply(ViewOpsData *vod, int x, int y, const short zoom_invert) @@ -1718,7 +1718,7 @@ static void viewdolly_apply(ViewOpsData *vod, int x, int y, const short zoom_inv if (zoom_invert) SWAP(float, len1, len2); - zfac = 1.0 + ((len2 - len1) * 0.01 * vod->rv3d->dist); + zfac = 1.0f + ((len2 - len1) * 0.01f * vod->rv3d->dist); } if(zfac != 1.0f) diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 046037a092f..30d1a508888 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -867,7 +867,7 @@ static int flyApply(bContext *C, FlyInfo *fly) upvec[2]=1; mul_m3_v3(mat, upvec); /*make sure we have some z rolling*/ - if (fabs(upvec[2]) > 0.00001f) { + if (fabsf(upvec[2]) > 0.00001f) { roll= upvec[2] * -5.0f; upvec[0]= 1.0f; /*rotate the view about this axis*/ diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 03a98bf30d8..b234ac4ceec 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -4648,7 +4648,7 @@ static int createSlideVerts(TransInfo *t) uv_new = tf->uv[k]; if (ev->tmp.l) { - if (fabs(suv->origuv[0]-uv_new[0]) > 0.0001f || fabs(suv->origuv[1]-uv_new[1]) > 0.0001f) { + if (fabsf(suv->origuv[0]-uv_new[0]) > 0.0001f || fabs(suv->origuv[1]-uv_new[1]) > 0.0001f) { ev->tmp.l = -1; /* Tag as invalid */ BLI_linklist_free(suv->fuv_list,NULL); suv->fuv_list = NULL; diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 8c4e4d9e736..476ac325848 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -1481,7 +1481,7 @@ static void rna_def_wipe(BlenderRNA *brna) #if 1 /* expose as radians */ prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE); RNA_def_property_float_funcs(prop, "rna_WipeSequence_angle_get", "rna_WipeSequence_angle_set", NULL); - RNA_def_property_range(prop, DEG2RAD(-90.0f), DEG2RAD(90.0f)); + RNA_def_property_range(prop, DEG2RAD(-90.0), DEG2RAD(90.0)); #else prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "angle"); diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index b385b507707..f749d1ba004 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -192,10 +192,10 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void), /* minimal free space (starting at camera) */ starmindist= wrld->starmindist; - if (stargrid <= 0.10) return; + if (stargrid <= 0.10f) return; if (re) re->flag |= R_HALO; - else stargrid *= 1.0; /* then it draws fewer */ + else stargrid *= 1.0f; /* then it draws fewer */ if(re) invert_m4_m4(mat, re->viewmat); else unit_m4(mat); @@ -267,17 +267,17 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void), if (alpha >= clipend) alpha = 0.0; else if (alpha <= starmindist) alpha = 0.0; - else if (alpha <= 2.0 * starmindist) { + else if (alpha <= 2.0f * starmindist) { alpha = (alpha - starmindist) / starmindist; } else { - alpha -= 2.0 * starmindist; - alpha /= (clipend - 2.0 * starmindist); - alpha = 1.0 - alpha; + alpha -= 2.0f * starmindist; + alpha /= (clipend - 2.0f * starmindist); + alpha = 1.0f - alpha; } } - if (alpha != 0.0) { + if (alpha != 0.0f) { fac = force * BLI_drand(); har = initstar(re, obr, vec, fac); @@ -822,7 +822,7 @@ static void autosmooth(Render *UNUSED(re), ObjectRen *obr, float mat[][4], int d if(obr->totvert==0) return; asverts= MEM_callocN(sizeof(ASvert)*obr->totvert, "all smooth verts"); - thresh= cos( M_PI*(0.5f+(float)degr)/180.0 ); + thresh= cosf((float)M_PI*(0.5f+(float)degr)/180.0f ); /* step zero: give faces normals of original mesh, if this is provided */ diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c index faa915b7f6c..2037acc943f 100644 --- a/source/blender/render/intern/source/volume_precache.c +++ b/source/blender/render/intern/source/volume_precache.c @@ -400,7 +400,7 @@ static void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Materi sb[j] += vp->data_b[i]; /* Displays progress every second */ - if(time-lasttime>1.0f) { + if(time-lasttime>1.0) { char str[64]; BLI_snprintf(str, sizeof(str), "Simulating multiple scattering: %d%%", (int)(100.0f * (c / total))); re->i.infostr= str; @@ -747,7 +747,7 @@ static void vol_precache_objectinstance_threads(Render *re, ObjectInstanceRen *o caching=0; time= PIL_check_seconds_timer(); - if(time-lasttime>1.0f) { + if(time-lasttime>1.0) { char str[64]; BLI_snprintf(str, sizeof(str), "Precaching volume: %d%%", (int)(100.0f * ((float)counter / (float)totparts))); re->i.infostr= str; diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c index 359002d05ae..19bbb11e143 100644 --- a/source/blender/render/intern/source/volumetric.c +++ b/source/blender/render/intern/source/volumetric.c @@ -422,9 +422,9 @@ static void vol_get_transmittance_seg(ShadeInput *shi, float *tr, float stepsize tau[1] += stepd * sigma_t[1]; tau[2] += stepd * sigma_t[2]; - tr[0] *= exp(-tau[0]); - tr[1] *= exp(-tau[1]); - tr[2] *= exp(-tau[2]); + tr[0] *= expf(-tau[0]); + tr[1] *= expf(-tau[1]); + tr[2] *= expf(-tau[2]); } /* Compute transmittance = e^(-attenuation) */ @@ -473,7 +473,7 @@ static void vol_shade_one_lamp(struct ShadeInput *shi, float *co, LampRen *lar, if (lar->mode & LA_LAYER) if((lar->lay & shi->obi->lay)==0) return; if ((lar->lay & shi->lay)==0) return; - if (lar->energy == 0.0) return; + if (lar->energy == 0.0f) return; if ((visifac= lamp_get_visibility(lar, co, lv, &lampdist)) == 0.f) return; @@ -613,7 +613,7 @@ static void volumeintegrate(struct ShadeInput *shi, float *col, float *co, float /* transmittance component (alpha) */ vol_get_transmittance_seg(shi, tr, stepsize, co, density); - if (t0 > t1 * 0.25) { + if (t0 > t1 * 0.25f) { /* only use depth cutoff after we've traced a little way into the volume */ if (luminance(tr) < shi->mat->vol.depth_cutoff) break; } @@ -623,9 +623,9 @@ static void volumeintegrate(struct ShadeInput *shi, float *col, float *co, float if (shi->obi->volume_precache) { float p2[3]; - p2[0] = p[0] + (step_vec[0] * 0.5); - p2[1] = p[1] + (step_vec[1] * 0.5); - p2[2] = p[2] + (step_vec[2] * 0.5); + p2[0] = p[0] + (step_vec[0] * 0.5f); + p2[1] = p[1] + (step_vec[1] * 0.5f); + p2[2] = p[2] + (step_vec[2] * 0.5f); vol_get_precached_scattering(&R, shi, scatter_col, p2); } else @@ -817,7 +817,7 @@ void shade_volume_inside(ShadeInput *shi, ShadeResult *shr) volume_trace(shi, shr, VOL_SHADE_INSIDE); shr->alpha = shr->alpha + prev_alpha; - CLAMP(shr->alpha, 0.0, 1.0); + CLAMP(shr->alpha, 0.0f, 1.0f); shi->mat = mat_backup; shi->obi = obi_backup; diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c index 232f7fdeede..2ba346ae4c5 100644 --- a/source/blender/render/intern/source/voxeldata.c +++ b/source/blender/render/intern/source/voxeldata.c @@ -413,9 +413,9 @@ int voxeldatatex(struct Tex *tex, float *texvec, struct TexResult *texres) } case TEX_REPEAT: { - co[0] = co[0] - floor(co[0]); - co[1] = co[1] - floor(co[1]); - co[2] = co[2] - floor(co[2]); + co[0] = co[0] - floorf(co[0]); + co[1] = co[1] - floorf(co[1]); + co[2] = co[2] - floorf(co[2]); break; } case TEX_EXTEND: diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1beb5b3dda3..fdf89cfd2be 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2926,7 +2926,7 @@ static void radial_control_paint_cursor(bContext *C, int x, int y, void *customd case PROP_FACTOR: r1= (1 - rc->current_value) * WM_RADIAL_CONTROL_DISPLAY_SIZE; r2= tex_radius= WM_RADIAL_CONTROL_DISPLAY_SIZE; - alpha = rc->current_value / 2 + 0.5; + alpha = rc->current_value / 2.0f + 0.5f; break; case PROP_ANGLE: r1= r2= tex_radius= WM_RADIAL_CONTROL_DISPLAY_SIZE; -- cgit v1.2.3 From 5d88ba6165b3695bd99668bb5a8d1dc1364e805b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 19 Aug 2011 20:25:25 +0000 Subject: remove over zealous undo's on operators that don't need it. --- source/blender/editors/render/render_shading.c | 10 +++------- source/blender/editors/space_image/image_ops.c | 4 ++-- source/blender/editors/space_info/info_ops.c | 2 +- source/blender/editors/space_sequencer/sequencer_edit.c | 4 ++-- 4 files changed, 8 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index cfed2750e18..fbdcf7ba9b3 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -787,7 +787,7 @@ void TEXTURE_OT_envmap_save(wmOperatorType *ot) ot->poll= envmap_save_poll; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* no undo since this doesnt modify the env-map */ /* properties */ //RNA_def_enum(ot->srna, "file_type", image_file_type_items, R_PNG, "File Type", "File type to save image as."); @@ -875,8 +875,6 @@ static int copy_material_exec(bContext *C, wmOperator *UNUSED(op)) copy_matcopybuf(ma); - WM_event_add_notifier(C, NC_MATERIAL, ma); - return OPERATOR_FINISHED; } @@ -891,7 +889,7 @@ void MATERIAL_OT_copy(wmOperatorType *ot) ot->exec= copy_material_exec; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* no undo needed since no changes are made to the material */ } static int paste_material_exec(bContext *C, wmOperator *UNUSED(op)) @@ -1015,8 +1013,6 @@ static int copy_mtex_exec(bContext *C, wmOperator *UNUSED(op)) copy_mtex_copybuf(id); - WM_event_add_notifier(C, NC_TEXTURE, NULL); - return OPERATOR_FINISHED; } @@ -1039,7 +1035,7 @@ void TEXTURE_OT_slot_copy(wmOperatorType *ot) ot->poll= copy_mtex_poll; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* no undo needed since no changes are made to the mtex */ } static int paste_mtex_exec(bContext *C, wmOperator *UNUSED(op)) diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index ea8c7fc0cfa..6e0d1909963 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -1331,7 +1331,7 @@ void IMAGE_OT_reload(wmOperatorType *ot) ot->exec= reload_exec; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* no undo, image buffer is not handled by undo */ } /********************** new image operator *********************/ @@ -1989,7 +1989,7 @@ void IMAGE_OT_sample_line(wmOperatorType *ot) ot->cancel= WM_gesture_straightline_cancel; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= 0; /* no undo/register since this operates on the space */ WM_operator_properties_gesture_straightline(ot, CURSOR_EDIT); } diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c index d58fb7b11f0..e09565d38e9 100644 --- a/source/blender/editors/space_info/info_ops.c +++ b/source/blender/editors/space_info/info_ops.c @@ -273,7 +273,7 @@ void FILE_OT_report_missing_files(wmOperatorType *ot) ot->exec= report_missing_files_exec; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= 0; /* only reports so no need to undo/register */ } /********************* find missing files operator *********************/ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 531ecebba5e..e876da41bd9 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1202,7 +1202,7 @@ void SEQUENCER_OT_reload(struct wmOperatorType *ot) ot->poll= sequencer_edit_poll; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* no undo, the data changed is stored outside 'main' */ } /* reload operator */ @@ -2522,7 +2522,7 @@ void SEQUENCER_OT_copy(wmOperatorType *ot) ot->poll= sequencer_edit_poll; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER; /* properties */ } -- cgit v1.2.3 From a0a96a84fed4669ac80d09a2fb667c601c048d23 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 20 Aug 2011 13:29:42 +0000 Subject: fix for crash when loading a file from a script, and executing user modules in the newly loaded file. --- source/blender/python/intern/bpy_interface.c | 25 +++++++++++++++---------- source/blender/python/intern/bpy_util.h | 1 + 2 files changed, 16 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 8bd6e6c611c..e5e90380d61 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -87,6 +87,14 @@ static double bpy_timer_run; /* time for each python script run */ static double bpy_timer_run_tot; /* accumulate python runs */ #endif +/* use for updating while a python script runs - in case of file load */ +void bpy_context_update(bContext *C) +{ + BPy_SetContext(C); + bpy_import_main_set(CTX_data_main(C)); + BPY_modules_update(C); /* can give really bad results if this isnt here */ +} + void bpy_context_set(bContext *C, PyGILState_STATE *gilstate) { py_call_level++; @@ -95,16 +103,7 @@ void bpy_context_set(bContext *C, PyGILState_STATE *gilstate) *gilstate= PyGILState_Ensure(); if(py_call_level==1) { - - if(C) { // XXX - should always be true. - BPy_SetContext(C); - bpy_import_main_set(CTX_data_main(C)); - } - else { - fprintf(stderr, "ERROR: Python context called with a NULL Context. this should not happen!\n"); - } - - BPY_modules_update(C); /* can give really bad results if this isnt here */ + bpy_context_update(C); #ifdef TIME_PY_RUN if(bpy_timer_count==0) { @@ -570,6 +569,12 @@ void BPY_modules_load_user(bContext *C) if(bmain==NULL) return; + /* update pointers since this can run from a nested script + * on file load */ + if(py_call_level) { + bpy_context_update(C); + } + bpy_context_set(C, &gilstate); for(text=CTX_data_main(C)->text.first; text; text= text->id.next) { diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h index b16c8fe2e8c..09fbdf96ed2 100644 --- a/source/blender/python/intern/bpy_util.h +++ b/source/blender/python/intern/bpy_util.h @@ -51,6 +51,7 @@ short BPy_errors_to_report(struct ReportList *reports); struct bContext *BPy_GetContext(void); void BPy_SetContext(struct bContext *C); +extern void bpy_context_update(struct bContext *C); extern void bpy_context_set(struct bContext *C, PyGILState_STATE *gilstate); extern void bpy_context_clear(struct bContext *C, PyGILState_STATE *gilstate); #endif -- cgit v1.2.3 From d4dec1c3bcc8fa85e8f4cf3372efe077648a67bf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 20 Aug 2011 14:23:43 +0000 Subject: use ghash for DNA_struct_find_nr(), gives ~18% speedup on loading sintel lite, will also speedup undo. note: only works with CMake, wasn't able to get this working with scons, complains about same file being built in different environments. --- source/blender/makesdna/DNA_sdna_types.h | 5 +++- source/blender/makesdna/intern/CMakeLists.txt | 26 +++++++++++++++++ source/blender/makesdna/intern/SConscript | 1 + source/blender/makesdna/intern/dna_genfile.c | 42 +++++++++++++++++++++------ source/blender/makesrna/intern/CMakeLists.txt | 1 + 5 files changed, 65 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_sdna_types.h b/source/blender/makesdna/DNA_sdna_types.h index e5f924b5fa6..829d1eee03b 100644 --- a/source/blender/makesdna/DNA_sdna_types.h +++ b/source/blender/makesdna/DNA_sdna_types.h @@ -54,7 +54,10 @@ typedef struct SDNA { (sp[2], sp[3]), (sp[4], sp[5]), .. are the member type and name numbers respectively */ - + + struct GHash *structs_map; /* ghash for faster lookups, + requires WITH_DNA_GHASH to be used for now */ + /* wrong place for this really, its a simple * cache for findstruct_nr. */ diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt index 429db63b526..5edebfe3903 100644 --- a/source/blender/makesdna/intern/CMakeLists.txt +++ b/source/blender/makesdna/intern/CMakeLists.txt @@ -27,12 +27,17 @@ # message(STATUS "Configuring makesdna") +# add_definitions(-DWITH_DNA_GHASH) + blender_include_dirs( ../../../../intern/guardedalloc ../../blenloader + ../../blenlib .. ) + +# ----------------------------------------------------------------------------- # Build makesdna executable set(SRC makesdna.c @@ -56,6 +61,8 @@ add_custom_command( DEPENDS makesdna ) + +# ----------------------------------------------------------------------------- # Build bf_dna library set(INC @@ -72,3 +79,22 @@ set(SRC ) blender_add_lib(bf_dna "${SRC}" "${INC}" "${INC_SYS}") + + +# ----------------------------------------------------------------------------- +# Build bf_dna_blenlib library +set(INC + +) + +set(INC_SYS + +) + +set(SRC + ../../blenlib/intern/BLI_mempool.c + ../../blenlib/intern/listbase.c + ../../blenlib/intern/BLI_ghash.c +) + +blender_add_lib(bf_dna_blenlib "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/makesdna/intern/SConscript b/source/blender/makesdna/intern/SConscript index e51ee53e078..8185676cbfc 100644 --- a/source/blender/makesdna/intern/SConscript +++ b/source/blender/makesdna/intern/SConscript @@ -67,5 +67,6 @@ else: else: dna.Command ('dna.c', '', root_build_dir+os.sep+"makesdna.exe $TARGET") +# TODO, get WITH_DNA_GHASH working, see CMake's 'WITH_DNA_GHASH' obj = ['intern/dna.c', 'intern/dna_genfile.c'] Return ('obj') diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c index 4e9b023b326..ebcfce84e37 100644 --- a/source/blender/makesdna/intern/dna_genfile.c +++ b/source/blender/makesdna/intern/dna_genfile.c @@ -42,6 +42,10 @@ #include "MEM_guardedalloc.h" // for MEM_freeN MEM_mallocN MEM_callocN +#ifdef WITH_DNA_GHASH +# include "BLI_ghash.h" +#endif + #include "DNA_genfile.h" #include "DNA_sdna_types.h" // for SDNA ;-) @@ -197,7 +201,11 @@ void DNA_sdna_free(SDNA *sdna) MEM_freeN((void *)sdna->names); MEM_freeN(sdna->types); MEM_freeN(sdna->structs); - + +#ifdef WITH_DNA_GHASH + BLI_ghash_free(sdna->structs_map, NULL, NULL); +#endif + MEM_freeN(sdna); } @@ -275,24 +283,30 @@ static short *findstruct_name(SDNA *sdna, const char *str) int DNA_struct_find_nr(SDNA *sdna, const char *str) { short *sp= NULL; - int a; if(sdna->lastfindnr_structs) { sp= sdna->structs[sdna->lastfind]; if(strcmp( sdna->types[ sp[0] ], str )==0) return sdna->lastfind; } - for(a=0; anr_structs; a++) { +#ifdef WITH_DNA_GHASH + return (intptr_t)BLI_ghash_lookup(sdna->structs_map, str) - 1; +#else + { + int a; - sp= sdna->structs[a]; - - if(strcmp( sdna->types[ sp[0] ], str )==0) { - sdna->lastfind= a; - return a; + for(a=0; anr_structs; a++) { + + sp= sdna->structs[a]; + + if(strcmp( sdna->types[ sp[0] ], str )==0) { + sdna->lastfind= a; + return a; + } } } - return -1; +#endif } /* ************************* END DIV ********************** */ @@ -481,6 +495,16 @@ static void init_structDNA(SDNA *sdna, int do_endian_swap) sp[10]= 9; } } + +#ifdef WITH_DNA_GHASH + /* create a ghash lookup to speed up */ + sdna->structs_map= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "init_structDNA gh"); + + for(nr = 0; nr < sdna->nr_structs; nr++) { + sp= sdna->structs[nr]; + BLI_ghash_insert(sdna->structs_map, (void *)sdna->types[sp[0]], (void *)(nr + 1)); + } +#endif } } diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index cb593e7deab..cc7bcf04716 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -243,6 +243,7 @@ blender_include_dirs_sys( add_executable(makesrna ${SRC} ${SRC_RNA_INC} ${SRC_DNA_INC}) target_link_libraries(makesrna bf_dna) +target_link_libraries(makesrna bf_dna_blenlib) # Output rna_*_gen.c # note (linux only): with crashes try add this after COMMAND: valgrind --leak-check=full --track-origins=yes -- cgit v1.2.3 From bcadb6b93986b230fb6e70489e7221b3f9972aec Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sat, 20 Aug 2011 16:48:53 +0000 Subject: small fixes and refactoring. --- source/blender/collada/AnimationImporter.cpp | 19 +++++++++------- source/blender/collada/ArmatureExporter.cpp | 11 +++++---- source/blender/collada/ArmatureImporter.cpp | 34 ++++++++++++++++------------ 3 files changed, 36 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index a0202fdcb1b..ee04c270843 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -454,14 +454,14 @@ void AnimationImporter::find_frames( std::vector* frames , std::vectorbegin(); iter != curves->end(); iter++) { FCurve *fcu = *iter; - for (unsigned int k = 0; k < fcu->totvert; k++) { - //get frame value from bezTriple - float fra = fcu->bezt[k].vec[1][0]; - //if frame already not added add frame to frames - if (std::find(frames->begin(), frames->end(), fra) == frames->end()) - frames->push_back(fra); - - } + for (unsigned int k = 0; k < fcu->totvert; k++) { + //get frame value from bezTriple + float fra = fcu->bezt[k].vec[1][0]; + //if frame already not added add frame to frames + if (std::find(frames->begin(), frames->end(), fra) == frames->end()) + frames->push_back(fra); + + } } } @@ -1568,10 +1568,13 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float i++; j = 0; } + unused_curves.erase(std::remove(unused_curves.begin(), unused_curves.end(), *it), unused_curves.end()); } COLLADAFW::Matrix tm(matrix); dae_matrix_to_mat4(&tm, mat); + + std::vector::iterator it; return true; } diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 753d57b5af8..082105baaba 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -39,6 +39,7 @@ #include "BKE_action.h" #include "BKE_armature.h" +#include "ED_armature.h" #include "BLI_listbase.h" @@ -177,9 +178,9 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) node.setNodeName(node_name); node.setNodeSid(node_sid); - if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2) + /*if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2) add_blender_leaf_bone( bone, ob_arm , node ); - else{ + else{*/ node.start(); add_bone_transform(ob_arm, bone, node); @@ -189,15 +190,15 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) } node.end(); - } + //} } void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node) { node.start(); - + add_bone_transform(ob_arm, bone, node); - + node.addExtraTechniqueParameter("blender", "tip_x", bone->tail[0] ); node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] ); node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] ); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 381a6cc06a9..67828fb967d 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -183,10 +183,10 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo else copy_m4_m4(mat, obmat); - float loc[3], size[3], rot[3][3] , angle; + /*float loc[3], size[3], rot[3][3] , angle; mat4_to_loc_rot_size( loc, rot, size, obmat); mat3_to_vec_roll(rot, NULL, &angle ); - bone->roll=angle; + bone->roll=angle;*/ } @@ -267,21 +267,25 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: copy_m4_m4(leaf.mat, mat); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); + float vec[3]; + TagsMap::iterator etit; ExtraTags *et = 0; etit = uid_tags_map.find(node->getUniqueId().toAscii()); if(etit != uid_tags_map.end()) - et = etit->second; - else return; - - float x,y,z; - et->setData("tip_x",&x); - et->setData("tip_y",&y); - et->setData("tip_z",&z); - float vec[3] = {x,y,z}; - copy_v3_v3(leaf.bone->tail, leaf.bone->head); - add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); - leaf_bones.push_back(leaf); + { + et = etit->second; + //else return; + + float x,y,z; + et->setData("tip_x",&x); + et->setData("tip_y",&y); + et->setData("tip_z",&z); + float vec[3] = {x,y,z}; + copy_v3_v3(leaf.bone->tail, leaf.bone->head); + add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); + }else + leaf_bones.push_back(leaf); } void ArmatureImporter::fix_leaf_bones( ) @@ -295,7 +299,7 @@ void ArmatureImporter::fix_leaf_bones( ) // pointing up float vec[3] = {0.0f, 0.0f, 1.0f}; - mul_v3_fl(vec, leaf_bone_length); + //mul_v3_fl(vec, leaf_bone_length); copy_v3_v3(leaf.bone->tail, leaf.bone->head); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); @@ -418,7 +422,7 @@ void ArmatureImporter::create_armature_bones( ) leaf_bone_length = FLT_MAX; create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); - //fix_leaf_bones(); + fix_leaf_bones(); // exit armature edit mode -- cgit v1.2.3 From f8ec017900cba5702742bf31d99e8c6df6a1fcad Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 20 Aug 2011 17:39:13 +0000 Subject: floats were being promoted to doubles in quite a few cases (using gcc's -Wdouble-promotion), went over render module and use float constants, gives small but consistent speedup - approx 3%. --- source/blender/blenloader/intern/readfile.c | 4 +- source/blender/python/generic/noise_py_api.c | 20 +- .../blender/render/intern/source/convertblender.c | 50 +-- source/blender/render/intern/source/envmap.c | 24 +- .../render/intern/source/gammaCorrectionTables.c | 2 +- source/blender/render/intern/source/initrender.c | 52 +-- source/blender/render/intern/source/occlusion.c | 2 +- .../blender/render/intern/source/pixelblending.c | 24 +- source/blender/render/intern/source/pixelshading.c | 72 ++--- source/blender/render/intern/source/rayshade.c | 118 +++---- .../blender/render/intern/source/render_texture.c | 352 ++++++++++----------- source/blender/render/intern/source/rendercore.c | 36 +-- .../blender/render/intern/source/renderdatabase.c | 70 ++-- source/blender/render/intern/source/shadbuf.c | 49 ++- source/blender/render/intern/source/sss.c | 52 +-- source/blender/render/intern/source/strand.c | 8 +- source/blender/render/intern/source/sunsky.c | 116 +++---- source/blender/render/intern/source/zbuf.c | 78 +++-- 18 files changed, 561 insertions(+), 568 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index bd12677485c..0e99b357054 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11670,8 +11670,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Tex *tex; for(tex= main->tex.first; tex; tex= tex->id.next) { if(tex->pd) { - if (tex->pd->falloff_speed_scale == 0.0) - tex->pd->falloff_speed_scale = 100.0; + if (tex->pd->falloff_speed_scale == 0.0f) + tex->pd->falloff_speed_scale = 100.0f; if (!tex->pd->falloff_curve) { tex->pd->falloff_curve = curvemapping_add(1, 0, 0, 1, 1); diff --git a/source/blender/python/generic/noise_py_api.c b/source/blender/python/generic/noise_py_api.c index f5761f713a6..7be0998c0a1 100644 --- a/source/blender/python/generic/noise_py_api.c +++ b/source/blender/python/generic/noise_py_api.c @@ -210,8 +210,8 @@ static void randuvec(float v[3]) if((r = 1.f - v[2] * v[2]) > 0.f) { float a = (float)(6.283185307f * frand()); r = (float)sqrt(r); - v[0] = (float)(r * cos(a)); - v[1] = (float)(r * sin(a)); + v[0] = (float)(r * cosf(a)); + v[1] = (float)(r * sinf(a)); } else { v[2] = 1.f; @@ -254,7 +254,7 @@ static PyObject *Noise_noise(PyObject *UNUSED(self), PyObject *args) if(!PyArg_ParseTuple(args, "(fff)|i:noise", &x, &y, &z, &nb)) return NULL; - return PyFloat_FromDouble((2.0 * BLI_gNoise(1.0, x, y, z, 0, nb) - 1.0)); + return PyFloat_FromDouble((2.0f * BLI_gNoise(1.0f, x, y, z, 0, nb) - 1.0f)); } /*-------------------------------------------------------------------------*/ @@ -264,11 +264,11 @@ static PyObject *Noise_noise(PyObject *UNUSED(self), PyObject *args) static void noise_vector(float x, float y, float z, int nb, float v[3]) { /* Simply evaluate noise at 3 different positions */ - v[0] = (float)(2.0 * BLI_gNoise(1.f, x + 9.321f, y - 1.531f, z - 7.951f, 0, - nb) - 1.0); - v[1] = (float)(2.0 * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0); - v[2] = (float)(2.0 * BLI_gNoise(1.f, x + 6.327f, y + 0.1671f, z - 2.672f, 0, - nb) - 1.0); + v[0]= (float)(2.0f * BLI_gNoise(1.f, x + 9.321f, y - 1.531f, z - 7.951f, 0, + nb) - 1.0f); + v[1]= (float)(2.0f * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0f); + v[2]= (float)(2.0f * BLI_gNoise(1.f, x + 6.327f, y + 0.1671f, z - 2.672f, 0, + nb) - 1.0f); } static PyObject *Noise_vector(PyObject *UNUSED(self), PyObject *args) @@ -291,7 +291,7 @@ static float turb(float x, float y, float z, int oct, int hard, int nb, float amp, out, t; int i; amp = 1.f; - out = (float)(2.0 * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0); + out = (float)(2.0f * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0f); if(hard) out = (float)fabs(out); for(i = 1; i < oct; i++) { @@ -299,7 +299,7 @@ static float turb(float x, float y, float z, int oct, int hard, int nb, x *= freqscale; y *= freqscale; z *= freqscale; - t = (float)(amp * (2.0 * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0)); + t = (float)(amp * (2.0f * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0f)); if(hard) t = (float)fabs(t); out += t; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index f749d1ba004..7033ec27fc0 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1046,9 +1046,9 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par float fac; if(ma->strand_ease!=0.0f) { if(ma->strand_ease<0.0f) - fac= pow(sd->time, 1.0+ma->strand_ease); + fac= pow(sd->time, 1.0f+ma->strand_ease); else - fac= pow(sd->time, 1.0/(1.0f-ma->strand_ease)); + fac= pow(sd->time, 1.0f/(1.0f-ma->strand_ease)); } else fac= sd->time; @@ -1063,7 +1063,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par width= w; /*cross is the radius of the strand so we want it to be half of full width */ - mul_v3_fl(cross,0.5/crosslen); + mul_v3_fl(cross,0.5f/crosslen); } else width/=w; @@ -1984,8 +1984,8 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem else { /* render normal particles */ if(part->trail_count > 1) { - float length = part->path_end * (1.0 - part->randlength * r_length); - int trail_count = part->trail_count * (1.0 - part->randlength * r_length); + float length = part->path_end * (1.0f - part->randlength * r_length); + int trail_count = part->trail_count * (1.0f - part->randlength * r_length); float ct = (part->draw & PART_ABS_PATH_TIME) ? cfra : pa_time; float dt = length / (trail_count ? (float)trail_count : 1.0f); @@ -2159,7 +2159,7 @@ static void make_render_halos(Render *re, ObjectRen *obr, Mesh *UNUSED(me), int normalize_v3(view); zn= nor[0]*view[0]+nor[1]*view[1]+nor[2]*view[2]; - if(zn>=0.0) hasize= 0.0; + if(zn>=0.0f) hasize= 0.0f; else hasize*= zn*zn*zn*zn; } @@ -3599,7 +3599,7 @@ static void initshadowbuf(Render *re, LampRen *lar, float mat[][4]) /* bias is percentage, made 2x larger because of correction for angle of incidence */ /* when a ray is closer to parallel of a face, bias value is increased during render */ - shb->bias= (0.02*lar->bias)*0x7FFFFFFF; + shb->bias= (0.02f*lar->bias)*0x7FFFFFFF; /* halfway method (average of first and 2nd z) reduces bias issues */ if(ELEM(lar->buftype, LA_SHADBUF_HALFWAY, LA_SHADBUF_DEEP)) @@ -3610,7 +3610,7 @@ static void initshadowbuf(Render *re, LampRen *lar, float mat[][4]) static void area_lamp_vectors(LampRen *lar) { - float xsize= 0.5*lar->area_size, ysize= 0.5*lar->area_sizey, multifac; + float xsize= 0.5f*lar->area_size, ysize= 0.5f*lar->area_sizey, multifac; /* make it smaller, so area light can be multisampled */ multifac= 1.0f/sqrt((float)lar->ray_totsamp); @@ -3637,7 +3637,7 @@ static void area_lamp_vectors(LampRen *lar) lar->area[3][1]= lar->co[1] + xsize*lar->mat[0][1] - ysize*lar->mat[1][1]; lar->area[3][2]= lar->co[2] + xsize*lar->mat[0][2] - ysize*lar->mat[1][2]; /* only for correction button size, matrix size works on energy */ - lar->areasize= lar->dist*lar->dist/(4.0*xsize*ysize); + lar->areasize= lar->dist*lar->dist/(4.0f*xsize*ysize); } /* If lar takes more lamp data, the decoupling will be better. */ @@ -3791,10 +3791,10 @@ static GroupObject *add_render_lamp(Render *re, Object *ob) lar->spotsi= la->spotsize; if(lar->mode & LA_HALO) { - if(lar->spotsi>170.0) lar->spotsi= 170.0; + if(lar->spotsi>170.0f) lar->spotsi= 170.0f; } - lar->spotsi= cos( M_PI*lar->spotsi/360.0 ); - lar->spotbl= (1.0-lar->spotsi)*la->spotblend; + lar->spotsi= cos( M_PI*lar->spotsi/360.0f ); + lar->spotbl= (1.0f-lar->spotsi)*la->spotblend; memcpy(lar->mtex, la->mtex, MAX_MTEX*sizeof(void *)); @@ -3813,7 +3813,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob) xn= saacos(lar->spotsi); xn= sin(xn)/cos(xn); - lar->spottexfac= 1.0/(xn); + lar->spottexfac= 1.0f/(xn); if(lar->mode & LA_ONLYSHADOW) { if((lar->mode & (LA_SHAD_BUF|LA_SHAD_RAY))==0) lar->mode -= LA_ONLYSHADOW; @@ -3823,7 +3823,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob) /* set flag for spothalo en initvars */ if(la->type==LA_SPOT && (la->mode & LA_HALO) && (la->buftype != LA_SHADBUF_DEEP)) { - if(la->haint>0.0) { + if(la->haint>0.0f) { re->flag |= R_LAMPHALO; /* camera position (0,0,0) rotate around lamp */ @@ -3990,9 +3990,9 @@ void init_render_world(Render *re) cp= (char *)&re->wrld.fastcol; - cp[0]= 255.0*re->wrld.horr; - cp[1]= 255.0*re->wrld.horg; - cp[2]= 255.0*re->wrld.horb; + cp[0]= 255.0f*re->wrld.horr; + cp[1]= 255.0f*re->wrld.horg; + cp[2]= 255.0f*re->wrld.horb; cp[3]= 1; VECCOPY(re->grvec, re->viewmat[2]); @@ -4047,25 +4047,25 @@ static void set_phong_threshold(ObjectRen *obr) if(vlr->flag & R_SMOOTH) { dot= INPR(vlr->n, vlr->v1->n); dot= ABS(dot); - if(dot>0.9) { + if(dot>0.9f) { thresh+= dot; tot++; } dot= INPR(vlr->n, vlr->v2->n); dot= ABS(dot); - if(dot>0.9) { + if(dot>0.9f) { thresh+= dot; tot++; } dot= INPR(vlr->n, vlr->v3->n); dot= ABS(dot); - if(dot>0.9) { + if(dot>0.9f) { thresh+= dot; tot++; } if(vlr->v4) { dot= INPR(vlr->n, vlr->v4->n); dot= ABS(dot); - if(dot>0.9) { + if(dot>0.9f) { thresh+= dot; tot++; } } @@ -4105,7 +4105,7 @@ static void set_fullsample_trace_flag(Render *re, ObjectRen *obr) else if((mode & MA_RAYMIRROR) || ((mode & MA_TRANSP) && (mode & MA_RAYTRANSP))) { /* for blurry reflect/refract, better to take more samples * inside the raytrace than as OSA samples */ - if ((vlr->mat->gloss_mir == 1.0) && (vlr->mat->gloss_tra == 1.0)) + if ((vlr->mat->gloss_mir == 1.0f) && (vlr->mat->gloss_tra == 1.0f)) vlr->flag |= R_FULL_OSA; } } @@ -4221,11 +4221,11 @@ static void check_non_flat_quads(ObjectRen *obr) /* render normals are inverted in render! we calculate normal of single tria here */ flen= normal_tri_v3( nor,vlr->v4->co, vlr->v3->co, vlr->v1->co); - if(flen==0.0) normal_tri_v3( nor,vlr->v4->co, vlr->v2->co, vlr->v1->co); + if(flen==0.0f) normal_tri_v3( nor,vlr->v4->co, vlr->v2->co, vlr->v1->co); xn= nor[0]*vlr->n[0] + nor[1]*vlr->n[1] + nor[2]*vlr->n[2]; - if(ABS(xn) < 0.999995 ) { // checked on noisy fractal grid + if(ABS(xn) < 0.999995f ) { // checked on noisy fractal grid float d1, d2; @@ -5461,7 +5461,7 @@ static int load_fluidsimspeedvectors(Render *re, ObjectInstanceRen *obi, float * for(j=0;j<3;j++) fsvec[j] = velarray[a].vel[j]; /* (bad) HACK insert average velocity if none is there (see previous comment) */ - if((fsvec[0] == 0.0) && (fsvec[1] == 0.0) && (fsvec[2] == 0.0)) + if((fsvec[0] == 0.0f) && (fsvec[1] == 0.0f) && (fsvec[2] == 0.0f)) { fsvec[0] = avgvel[0]; fsvec[1] = avgvel[1]; diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c index e2ab21ef877..66a73b47790 100644 --- a/source/blender/render/intern/source/envmap.c +++ b/source/blender/render/intern/source/envmap.c @@ -595,7 +595,7 @@ static int envcube_isect(EnvMap *env, float *vec, float *answ) if(env->type==ENV_PLANE) { face= 1; - labda= 1.0/vec[2]; + labda= 1.0f/vec[2]; answ[0]= env->viewscale*labda*vec[0]; answ[1]= -env->viewscale*labda*vec[1]; } @@ -603,44 +603,44 @@ static int envcube_isect(EnvMap *env, float *vec, float *answ) /* which face */ if( vec[2]<=-fabs(vec[0]) && vec[2]<=-fabs(vec[1]) ) { face= 0; - labda= -1.0/vec[2]; + labda= -1.0f/vec[2]; answ[0]= labda*vec[0]; answ[1]= labda*vec[1]; } else if( vec[2]>=fabs(vec[0]) && vec[2]>=fabs(vec[1]) ) { face= 1; - labda= 1.0/vec[2]; + labda= 1.0f/vec[2]; answ[0]= labda*vec[0]; answ[1]= -labda*vec[1]; } else if( vec[1]>=fabs(vec[0]) ) { face= 2; - labda= 1.0/vec[1]; + labda= 1.0f/vec[1]; answ[0]= labda*vec[0]; answ[1]= labda*vec[2]; } else if( vec[0]<=-fabs(vec[1]) ) { face= 3; - labda= -1.0/vec[0]; + labda= -1.0f/vec[0]; answ[0]= labda*vec[1]; answ[1]= labda*vec[2]; } else if( vec[1]<=-fabs(vec[0]) ) { face= 4; - labda= -1.0/vec[1]; + labda= -1.0f/vec[1]; answ[0]= -labda*vec[0]; answ[1]= labda*vec[2]; } else { face= 5; - labda= 1.0/vec[0]; + labda= 1.0f/vec[0]; answ[0]= -labda*vec[1]; answ[1]= labda*vec[2]; } } - answ[0]= 0.5+0.5*answ[0]; - answ[1]= 0.5+0.5*answ[1]; + answ[0]= 0.5f+0.5f*answ[0]; + answ[1]= 0.5f+0.5f*answ[1]; return face; } @@ -725,7 +725,7 @@ int envmaptex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexRe /* edges? */ - if(texres->ta<1.0) { + if(texres->ta<1.0f) { TexResult texr1, texr2; texr1.nor= texr2.nor= NULL; @@ -756,8 +756,8 @@ int envmaptex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexRe else texr2.tr= texr2.tg= texr2.tb= texr2.ta= 0.0; fac= (texres->ta+texr1.ta+texr2.ta); - if(fac!=0.0) { - fac= 1.0/fac; + if(fac!=0.0f) { + fac= 1.0f/fac; texres->tr= fac*(texres->ta*texres->tr + texr1.ta*texr1.tr + texr2.ta*texr2.tr ); texres->tg= fac*(texres->ta*texres->tg + texr1.ta*texr1.tg + texr2.ta*texr2.tg ); diff --git a/source/blender/render/intern/source/gammaCorrectionTables.c b/source/blender/render/intern/source/gammaCorrectionTables.c index 4a16341093c..f88a5d240c3 100644 --- a/source/blender/render/intern/source/gammaCorrectionTables.c +++ b/source/blender/render/intern/source/gammaCorrectionTables.c @@ -107,7 +107,7 @@ void makeGammaTables(float gamma) int i; valid_gamma = gamma; - valid_inv_gamma = 1.0 / gamma; + valid_inv_gamma = 1.0f / gamma; color_step = 1.0 / RE_GAMMA_TABLE_SIZE; inv_color_step = (float) RE_GAMMA_TABLE_SIZE; diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c index 2f09742f130..bea86264af1 100644 --- a/source/blender/render/intern/source/initrender.c +++ b/source/blender/render/intern/source/initrender.c @@ -126,8 +126,8 @@ static float filt_cubic(float x) if (x < 0.0f) x = -x; - if (x < 1.0f) return 0.5*x*x2 - x2 + 2.0f/3.0f; - if (x < 2.0f) return (2.0-x)*(2.0-x)*(2.0-x)/6.0f; + if (x < 1.0f) return 0.5f*x*x2 - x2 + 2.0f/3.0f; + if (x < 2.0f) return (2.0f-x)*(2.0f-x)*(2.0f-x)/6.0f; return 0.0f; } @@ -138,27 +138,27 @@ static float filt_catrom(float x) if (x < 0.0f) x = -x; if (x < 1.0f) return 1.5f*x2*x - 2.5f*x2 + 1.0f; - if (x < 2.0f) return -0.5f*x2*x + 2.5*x2 - 4.0f*x + 2.0f; + if (x < 2.0f) return -0.5f*x2*x + 2.5f*x2 - 4.0f*x + 2.0f; return 0.0f; } static float filt_mitchell(float x) /* Mitchell & Netravali's two-param cubic */ { float b = 1.0f/3.0f, c = 1.0f/3.0f; - float p0 = ( 6.0 - 2.0*b ) / 6.0; - float p2 = (-18.0 + 12.0*b + 6.0*c) / 6.0; - float p3 = ( 12.0 - 9.0*b - 6.0*c) / 6.0; - float q0 = ( 8.0*b + 24.0*c) / 6.0; - float q1 = ( - 12.0*b - 48.0*c) / 6.0; - float q2 = ( 6.0*b + 30.0*c) / 6.0; - float q3 = ( - b - 6.0*c) / 6.0; - - if (x<-2.0) return 0.0; - if (x<-1.0) return (q0-x*(q1-x*(q2-x*q3))); - if (x< 0.0) return (p0+x*x*(p2-x*p3)); - if (x< 1.0) return (p0+x*x*(p2+x*p3)); - if (x< 2.0) return (q0+x*(q1+x*(q2+x*q3))); - return 0.0; + float p0 = ( 6.0f - 2.0f*b ) / 6.0f; + float p2 = (-18.0f + 12.0f*b + 6.0f*c) / 6.0f; + float p3 = ( 12.0f - 9.0f*b - 6.0f*c) / 6.0f; + float q0 = ( 8.0f*b + 24.0f*c) / 6.0f; + float q1 = ( - 12.0f *b - 48.0f*c) / 6.0f; + float q2 = ( 6.0f *b + 30.0f*c) / 6.0f; + float q3 = ( - b - 6.0f*c) / 6.0f; + + if (x<-2.0f) return 0.0f; + if (x<-1.0f) return (q0-x*(q1-x*(q2-x*q3))); + if (x< 0.0f) return (p0+x*x*(p2-x*p3)); + if (x< 1.0f) return (p0+x*x*(p2+x*p3)); + if (x< 2.0f) return (q0+x*(q1+x*(q2+x*q3))); + return 0.0f; } /* x ranges from -1 to 1 */ @@ -170,16 +170,16 @@ float RE_filter_value(int type, float x) switch(type) { case R_FILTER_BOX: - if(x>1.0) return 0.0f; - return 1.0; + if(x>1.0f) return 0.0f; + return 1.0f; case R_FILTER_TENT: - if(x>1.0) return 0.0f; + if(x>1.0f) return 0.0f; return 1.0f-x; case R_FILTER_GAUSS: x*= gaussfac; - return (1.0/exp(x*x) - 1.0/exp(gaussfac*gaussfac*2.25)); + return (1.0f/expf(x*x) - 1.0f/expf(gaussfac*gaussfac*2.25f)); case R_FILTER_MITCH: return filt_mitchell(x*gaussfac); @@ -221,7 +221,7 @@ static float calc_weight(Render *re, float *weight, int i, int j) case R_FILTER_GAUSS: x = dist*re->r.gauss; - weight[a]= (1.0/exp(x*x) - 1.0/exp(re->r.gauss*re->r.gauss*2.25)); + weight[a]= (1.0f/expf(x*x) - 1.0f/expf(re->r.gauss*re->r.gauss*2.25f)); break; case R_FILTER_MITCH: @@ -309,7 +309,7 @@ void make_sample_tables(Render *re) st->centmask= MEM_mallocN((1<osa), "Initfilt3"); for(a=0; a<16; a++) { - st->centLut[a]= -0.45+((float)a)/16.0; + st->centLut[a]= -0.45f+((float)a)/16.0f; } /* calculate totw */ @@ -327,7 +327,7 @@ void make_sample_tables(Render *re) memset(weight, 0, sizeof(weight)); calc_weight(re, weight, i, j); - for(a=0; a<16; a++) flweight[a]= weight[a]*(1.0/totw); + for(a=0; a<16; a++) flweight[a]= weight[a]*(1.0f/totw); m3= st->fmask1[ 3*(j+1)+i+1 ]; m4= st->fmask2[ 3*(j+1)+i+1 ]; @@ -430,9 +430,9 @@ void make_sample_tables(Render *re) for(a= (1<osa)-1; a>0; a--) { val= st->cmask[a & 255] + st->cmask[a>>8]; - i= 8+(15.9*(fpy1[a & 255]+fpy2[a>>8])/val); + i= 8+(15.9f*(fpy1[a & 255]+fpy2[a>>8])/val); CLAMP(i, 0, 15); - j= 8+(15.9*(fpx1[a & 255]+fpx2[a>>8])/val); + j= 8+(15.9f*(fpx1[a & 255]+fpx2[a>>8])/val); CLAMP(j, 0, 15); i= j + (i<<4); st->centmask[a]= i; diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index 0aa65479a4f..54137c62d22 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -1414,7 +1414,7 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, f if(env) { /* sky shading using bent normal */ if(ELEM(envcolor, WO_AOSKYCOL, WO_AOSKYTEX)) { - fac= 0.5*(1.0f+bn[0]*re->grvec[0]+ bn[1]*re->grvec[1]+ bn[2]*re->grvec[2]); + fac= 0.5f*(1.0f+bn[0]*re->grvec[0]+ bn[1]*re->grvec[1]+ bn[2]*re->grvec[2]); env[0]= (1.0f-fac)*re->wrld.horr + fac*re->wrld.zenr; env[1]= (1.0f-fac)*re->wrld.horg + fac*re->wrld.zeng; env[2]= (1.0f-fac)*re->wrld.horb + fac*re->wrld.zenb; diff --git a/source/blender/render/intern/source/pixelblending.c b/source/blender/render/intern/source/pixelblending.c index c2e34e2a70d..d945436be6b 100644 --- a/source/blender/render/intern/source/pixelblending.c +++ b/source/blender/render/intern/source/pixelblending.c @@ -68,11 +68,11 @@ extern struct Render R; /* Threshold for a 'full' pixel: pixels with alpha above this level are */ /* considered opaque This is the decimal value for 0xFFF0 / 0xFFFF */ -#define RE_FULL_COLOR_FLOAT 0.9998 +#define RE_FULL_COLOR_FLOAT 0.9998f /* Threshold for an 'empty' pixel: pixels with alpha above this level are */ /* considered completely transparent. This is the decimal value */ /* for 0x000F / 0xFFFF */ -#define RE_EMPTY_COLOR_FLOAT 0.0002 +#define RE_EMPTY_COLOR_FLOAT 0.0002f /* ------------------------------------------------------------------------- */ @@ -82,7 +82,7 @@ void addAlphaOverFloat(float *dest, float *source) /* d = s + (1-alpha_s)d*/ float mul; - mul= 1.0 - source[3]; + mul= 1.0f - source[3]; dest[0]= (mul*dest[0]) + source[0]; dest[1]= (mul*dest[1]) + source[1]; @@ -98,7 +98,7 @@ void addAlphaUnderFloat(float *dest, float *source) { float mul; - mul= 1.0 - dest[3]; + mul= 1.0f - dest[3]; dest[0]+= (mul*source[0]); dest[1]+= (mul*source[1]); @@ -115,7 +115,7 @@ void addalphaAddfacFloat(float *dest, float *source, char addfac) /* Addfac is a number between 0 and 1: rescale */ /* final target is to diminish the influence of dest when addfac rises */ - m = 1.0 - ( source[3] * ((255.0 - addfac) / 255.0)); + m = 1.0f - ( source[3] * ((255 - addfac) / 255.0f)); /* blend colors*/ c= (m * dest[0]) + source[0]; @@ -178,7 +178,7 @@ void add_filt_fmask(unsigned int mask, float *col, float *rowbuf, int row_w) a= j; val= *(fmask1[a] +maskand) + *(fmask2[a] +maskshift); - if(val!=0.0) { + if(val!=0.0f) { rb1[0]+= val*r; rb1[1]+= val*g; rb1[2]+= val*b; @@ -187,7 +187,7 @@ void add_filt_fmask(unsigned int mask, float *col, float *rowbuf, int row_w) a+=3; val= *(fmask1[a] +maskand) + *(fmask2[a] +maskshift); - if(val!=0.0) { + if(val!=0.0f) { rb2[0]+= val*r; rb2[1]+= val*g; rb2[2]+= val*b; @@ -196,7 +196,7 @@ void add_filt_fmask(unsigned int mask, float *col, float *rowbuf, int row_w) a+=3; val= *(fmask1[a] +maskand) + *(fmask2[a] +maskshift); - if(val!=0.0) { + if(val!=0.0f) { rb3[0]+= val*r; rb3[1]+= val*g; rb3[2]+= val*b; @@ -345,21 +345,21 @@ void add_filt_fmask_pixsize(unsigned int mask, float *in, float *rowbuf, int row a= j; val= *(fmask1[a] +maskand) + *(fmask2[a] +maskshift); - if(val!=0.0) { + if(val!=0.0f) { for(i= 0; ico); - dco[0]=dco[1]=dco[2]= 1.0/har->rad; + dco[0]=dco[1]=dco[2]= 1.0f/har->rad; vn= har->no; @@ -114,9 +114,9 @@ static void render_lighting_halo(HaloRen *har, float *colf) if(lar->mode & LA_QUAD) { t= 1.0; - if(lar->ld1>0.0) + if(lar->ld1>0.0f) t= lar->dist/(lar->dist+lar->ld1*ld); - if(lar->ld2>0.0) + if(lar->ld2>0.0f) t*= lar->distkw/(lar->distkw+lar->ld2*ld*ld); lampdist= t; @@ -127,7 +127,7 @@ static void render_lighting_halo(HaloRen *har, float *colf) if(lar->mode & LA_SPHERE) { t= lar->dist - ld; - if(t<0.0) continue; + if(t<0.0f) continue; t/= lar->dist; lampdist*= (t); @@ -155,7 +155,7 @@ static void render_lighting_halo(HaloRen *har, float *colf) if(lar->type==LA_SPOT) { if(lar->mode & LA_SQUARE) { - if(lv[0]*lar->vec[0]+lv[1]*lar->vec[1]+lv[2]*lar->vec[2]>0.0) { + if(lv[0]*lar->vec[0]+lv[1]*lar->vec[1]+lv[2]*lar->vec[2]>0.0f) { float x, lvrot[3]; /* rotate view to lampspace */ @@ -165,7 +165,7 @@ static void render_lighting_halo(HaloRen *har, float *colf) x= MAX2(fabs(lvrot[0]/lvrot[2]) , fabs(lvrot[1]/lvrot[2])); /* 1.0/(sqrt(1+x*x)) is equivalent to cos(atan(x)) */ - inpr= 1.0/(sqrt(1.0+x*x)); + inpr= 1.0/(sqrt(1.0f+x*x)); } else inpr= 0.0; } @@ -179,21 +179,21 @@ static void render_lighting_halo(HaloRen *har, float *colf) t= inpr-t; i= 1.0; soft= 1.0; - if(tspotbl && lar->spotbl!=0.0) { + if(tspotbl && lar->spotbl!=0.0f) { /* soft area */ i= t/lar->spotbl; t= i*i; - soft= (3.0*t-2.0*t*i); + soft= (3.0f*t-2.0f*t*i); inpr*= soft; } if(lar->mode & LA_ONLYSHADOW) { /* if(ma->mode & MA_SHADOW) { */ /* dot product positive: front side face! */ inp= vn[0]*lv[0] + vn[1]*lv[1] + vn[2]*lv[2]; - if(inp>0.0) { + if(inp>0.0f) { /* testshadowbuf==0.0 : 100% shadow */ shadfac = testshadowbuf(&R, lar->shb, rco, dco, dco, inp, 0.0f); - if( shadfac>0.0 ) { + if( shadfac>0.0f ) { shadfac*= inp*soft*lar->energy; ir -= shadfac; ig -= shadfac; @@ -219,32 +219,32 @@ static void render_lighting_halo(HaloRen *har, float *colf) i= inp; if(lar->type==LA_HEMI) { - i= 0.5*i+0.5; + i= 0.5f*i+0.5f; } - if(i>0.0) { + if(i>0.0f) { i*= lampdist; } /* shadow */ - if(i> -0.41) { /* heuristic valua! */ + if(i> -0.41f) { /* heuristic valua! */ shadfac= 1.0; if(lar->shb) { shadfac = testshadowbuf(&R, lar->shb, rco, dco, dco, inp, 0.0f); - if(shadfac==0.0) continue; + if(shadfac==0.0f) continue; i*= shadfac; } } - if(i>0.0) { + if(i>0.0f) { ir+= i*lacol[0]; ig+= i*lacol[1]; ib+= i*lacol[2]; } } - if(ir<0.0) ir= 0.0; - if(ig<0.0) ig= 0.0; - if(ib<0.0) ib= 0.0; + if(ir<0.0f) ir= 0.0f; + if(ig<0.0f) ig= 0.0f; + if(ib<0.0f) ib= 0.0f; colf[0]*= ir; colf[1]*= ig; @@ -301,7 +301,7 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, } else alpha= har->alfa; - if(alpha==0.0) + if(alpha==0.0f) return 0; /* soften the halo if it intersects geometry */ @@ -355,15 +355,15 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, fac= fabs( rc[1]*(har->rad*fabs(rc[0]) - radist) ); - if(fac< 1.0) { - ringf+= (1.0-fac); + if(fac< 1.0f) { + ringf+= (1.0f-fac); } } } if(har->type & HA_VECT) { dist= fabs( har->cos*(yn) - har->sin*(xn) )/har->rad; - if(dist>1.0) dist= 1.0; + if(dist>1.0f) dist= 1.0f; if(har->tex) { zn= har->sin*xn - har->cos*yn; yn= har->cos*xn + har->sin*yn; @@ -374,7 +374,7 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, if(har->type & HA_FLARECIRC) { - dist= 0.5+fabs(dist-0.5); + dist= 0.5+fabs(dist-0.5f); } @@ -418,7 +418,7 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, float ster, angle; /* rotation */ angle= atan2(yn, xn); - angle*= (1.0+0.25*har->starpoints); + angle*= (1.0f+0.25f*har->starpoints); co= cos(angle); si= sin(angle); @@ -426,15 +426,15 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, angle= (co*xn+si*yn)*(co*yn-si*xn); ster= fabs(angle); - if(ster>1.0) { + if(ster>1.0f) { ster= (har->rad)/(ster); - if(ster<1.0) dist*= sqrt(ster); + if(ster<1.0f) dist*= sqrt(ster); } } /* disputable optimize... (ton) */ - if(dist<=0.00001) + if(dist<=0.00001f) return 0; dist*= alpha; @@ -471,7 +471,7 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, } /* Next, we do the line and ring factor modifications. */ - if(linef!=0.0) { + if(linef!=0.0f) { Material *ma= har->mat; col[0]+= linef * ma->specr; @@ -481,7 +481,7 @@ int shadeHaloFloat(HaloRen *har, float *col, int zz, if(har->type & HA_XALPHA) col[3]+= linef*linef; else col[3]+= linef; } - if(ringf!=0.0) { + if(ringf!=0.0f) { Material *ma= har->mat; col[0]+= ringf * ma->mirr; @@ -516,16 +516,16 @@ void shadeSkyView(float *colf, float *rco, float *view, float *dxyview, short th blend= view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]; - if(blend<0.0) skyflag= 0; + if(blend<0.0f) skyflag= 0; blend= fabs(blend); } else if(R.wrld.skytype & WO_SKYPAPER) { - blend= 0.5+ 0.5*view[1]; + blend= 0.5f + 0.5f * view[1]; } else { /* the fraction of how far we are above the bottom of the screen */ - blend= fabs(0.5+ view[1]); + blend= fabs(0.5f + view[1]); } VECCOPY(hor, &R.wrld.horr); @@ -545,8 +545,8 @@ void shadeSkyView(float *colf, float *rco, float *view, float *dxyview, short th do_sky_tex(rco, lo, dxyview, hor, zen, &blend, skyflag, thread); } - if(blend>1.0) blend= 1.0; - blendm= 1.0-blend; + if(blend>1.0f) blend= 1.0f; + blendm= 1.0f-blend; /* No clipping, no conversion! */ if(R.wrld.skytype & WO_SKYBLEND) { @@ -580,8 +580,8 @@ void shadeSunView(float *colf, float *view) VECCOPY(sview, view); normalize_v3(sview); mul_m3_v3(R.imat, sview); - if (sview[2] < 0.0) - sview[2] = 0.0; + if (sview[2] < 0.0f) + sview[2] = 0.0f; normalize_v3(sview); do_init= 0; } diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index d62f411a7c5..e82e969d502 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -611,12 +611,12 @@ static int refraction(float *refract, float *n, float *view, float index) index = 1.0f/index; fac= 1.0f - (1.0f - dot*dot)*index*index; if(fac<= 0.0f) return 0; - fac= -dot*index + sqrt(fac); + fac= -dot*index + sqrtf(fac); } else { fac= 1.0f - (1.0f - dot*dot)*index*index; if(fac<= 0.0f) return 0; - fac= -dot*index - sqrt(fac); + fac= -dot*index - sqrtf(fac); } refract[0]= index*view[0] + fac*n[0]; @@ -693,7 +693,7 @@ static float shade_by_transmission(Isect *is, ShadeInput *shi, ShadeResult *shr) if(p < 0.0f) p= 0.0f; else if (p > 10.0f) p= 10.0f; - shr->alpha *= pow(d, p); + shr->alpha *= powf(d, p); if (shr->alpha > 1.0f) shr->alpha= 1.0f; } @@ -720,11 +720,11 @@ static void ray_fadeout(Isect *is, ShadeInput *shi, float *col, float *blendcol, /* if fading out, linear blend against fade color */ float blendfac; - blendfac = 1.0 - len_v3v3(shi->co, is->start)/dist_mir; + blendfac = 1.0f - len_v3v3(shi->co, is->start)/dist_mir; - col[0] = col[0]*blendfac + (1.0 - blendfac)*blendcol[0]; - col[1] = col[1]*blendfac + (1.0 - blendfac)*blendcol[1]; - col[2] = col[2]*blendfac + (1.0 - blendfac)*blendcol[2]; + col[0] = col[0]*blendfac + (1.0f - blendfac)*blendcol[0]; + col[1] = col[1]*blendfac + (1.0f - blendfac)*blendcol[1]; + col[2] = col[2]*blendfac + (1.0f - blendfac)*blendcol[2]; } /* the main recursive tracer itself @@ -870,7 +870,7 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, flo col[2]= shr.diff[2] + shr.spec[2]; } - if (dist_mir > 0.0) { + if (dist_mir > 0.0f) { float blendcol[3]; /* max ray distance set, but found an intersection, so fade this color @@ -922,11 +922,11 @@ static void DP_energy(float *table, float *vec, int tot, float xsize, float ysiz } } } - vec[0] += 0.1*min*result[0]/(float)tot; - vec[1] += 0.1*min*result[1]/(float)tot; + vec[0] += 0.1f*min*result[0]/(float)tot; + vec[1] += 0.1f*min*result[1]/(float)tot; // cyclic clamping - vec[0]= vec[0] - xsize*floor(vec[0]/xsize + 0.5); - vec[1]= vec[1] - ysize*floor(vec[1]/ysize + 0.5); + vec[0]= vec[0] - xsize*floorf(vec[0]/xsize + 0.5f); + vec[1]= vec[1] - ysize*floorf(vec[1]/ysize + 0.5f); } // random offset of 1 in 2 @@ -934,7 +934,7 @@ static void jitter_plane_offset(float *jitter1, float *jitter2, int tot, float s { float dsizex= sizex*ofsx; float dsizey= sizey*ofsy; - float hsizex= 0.5*sizex, hsizey= 0.5*sizey; + float hsizex= 0.5f*sizex, hsizey= 0.5f*sizey; int x; for(x=tot; x>0; x--, jitter1+=2, jitter2+=2) { @@ -968,8 +968,8 @@ void init_jitter_plane(LampRen *lar) /* fill table with random locations, area_size large */ for(x=0; xarea_size; - fp[1]= (BLI_frand()-0.5)*lar->area_sizey; + fp[0]= (BLI_frand()-0.5f)*lar->area_size; + fp[1]= (BLI_frand()-0.5f)*lar->area_sizey; } while(iter--) { @@ -1081,8 +1081,8 @@ static void QMC_initPixel(QMCSampler *qsa, int thread) { /* hammersley sequence is fixed, already created in QMCSampler init. * per pixel, gets a random offset. We create separate offsets per thread, for write-safety */ - qsa->offs[thread][0] = 0.5 * BLI_thread_frand(thread); - qsa->offs[thread][1] = 0.5 * BLI_thread_frand(thread); + qsa->offs[thread][0] = 0.5f * BLI_thread_frand(thread); + qsa->offs[thread][1] = 0.5f * BLI_thread_frand(thread); } else { /* SAMP_TYPE_HALTON */ @@ -1136,8 +1136,8 @@ static void QMC_samplePhong(float *vec, QMCSampler *qsa, int thread, int num, fl pz = pow(s[1], blur); sqr = sqrt(1.0f-pz*pz); - vec[0] = cos(phi)*sqr; - vec[1] = sin(phi)*sqr; + vec[0] = (float)(cosf(phi)*sqr); + vec[1] = (float)(sinf(phi)*sqr); vec[2] = 0.0f; } @@ -1148,8 +1148,8 @@ static void QMC_sampleRect(float *vec, QMCSampler *qsa, int thread, int num, flo QMC_getSample(s, qsa, thread, num); - vec[0] = (s[0] - 0.5) * sizex; - vec[1] = (s[1] - 0.5) * sizey; + vec[0] = (float)(s[0] - 0.5) * sizex; + vec[1] = (float)(s[1] - 0.5) * sizey; vec[2] = 0.0f; } @@ -1164,8 +1164,8 @@ static void QMC_sampleDisc(float *vec, QMCSampler *qsa, int thread, int num, flo phi = s[0]*2*M_PI; sqr = sqrt(s[1]); - vec[0] = cos(phi)*sqr* radius/2.0; - vec[1] = sin(phi)*sqr* radius/2.0; + vec[0] = cosf(phi)*sqr* radius/2.0f; + vec[1] = sinf(phi)*sqr* radius/2.0f; vec[2] = 0.0f; } @@ -1177,12 +1177,12 @@ static void QMC_sampleHemi(float *vec, QMCSampler *qsa, int thread, int num) QMC_getSample(s, qsa, thread, num); - phi = s[0]*2.f*M_PI; + phi = s[0]*2.0*M_PI; sqr = sqrt(s[1]); - vec[0] = cos(phi)*sqr; - vec[1] = sin(phi)*sqr; - vec[2] = 1.f - s[1]*s[1]; + vec[0] = cosf(phi)*sqr; + vec[1] = sinf(phi)*sqr; + vec[2] = (float)(1.0 - s[1]*s[1]); } #if 0 /* currently not used */ @@ -1272,7 +1272,7 @@ static int adaptive_sample_variance(int samples, float *col, float *colsq, float var[1] = (colsq[1] / (float)samples) - (mean[1]*mean[1]); var[2] = (colsq[2] / (float)samples) - (mean[2]*mean[2]); - if ((var[0] * 0.4 < thresh) && (var[1] * 0.3 < thresh) && (var[2] * 0.6 < thresh)) + if ((var[0] * 0.4f < thresh) && (var[1] * 0.3f < thresh) && (var[2] * 0.6f < thresh)) return 1; else return 0; @@ -1283,7 +1283,7 @@ static int adaptive_sample_contrast_val(int samples, float prev, float val, floa /* if the last sample's contribution to the total value was below a small threshold * (i.e. the samples taken are very similar), then taking more samples that are probably * going to be the same is wasting effort */ - if (fabs( prev/(float)(samples-1) - val/(float)samples ) < thresh) { + if (fabsf( prev/(float)(samples-1) - val/(float)samples ) < thresh) { return 1; } else return 0; @@ -1293,10 +1293,10 @@ static float get_avg_speed(ShadeInput *shi) { float pre_x, pre_y, post_x, post_y, speedavg; - pre_x = (shi->winspeed[0] == PASS_VECTOR_MAX)?0.0:shi->winspeed[0]; - pre_y = (shi->winspeed[1] == PASS_VECTOR_MAX)?0.0:shi->winspeed[1]; - post_x = (shi->winspeed[2] == PASS_VECTOR_MAX)?0.0:shi->winspeed[2]; - post_y = (shi->winspeed[3] == PASS_VECTOR_MAX)?0.0:shi->winspeed[3]; + pre_x = (shi->winspeed[0] == PASS_VECTOR_MAX)?0.0f:shi->winspeed[0]; + pre_y = (shi->winspeed[1] == PASS_VECTOR_MAX)?0.0f:shi->winspeed[1]; + post_x = (shi->winspeed[2] == PASS_VECTOR_MAX)?0.0f:shi->winspeed[2]; + post_y = (shi->winspeed[3] == PASS_VECTOR_MAX)?0.0f:shi->winspeed[3]; speedavg = (sqrt(pre_x*pre_x + pre_y*pre_y) + sqrt(post_x*post_x + post_y*post_y)) / 2.0; @@ -1316,7 +1316,7 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr) float v_refract[3], v_refract_new[3]; float sampcol[4], colsq[4]; - float blur = pow(1.0 - shi->mat->gloss_tra, 3); + float blur = powf(1.0f - shi->mat->gloss_tra, 3); short max_samples = shi->mat->samp_gloss_tra; float adapt_thresh = shi->mat->adapt_thresh_tra; @@ -1325,9 +1325,9 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr) colsq[0] = colsq[1] = colsq[2] = 0.0; col[0] = col[1] = col[2] = 0.0; col[3]= shr->alpha; - - if (blur > 0.0) { - if (adapt_thresh != 0.0) samp_type = SAMP_TYPE_HALTON; + + if (blur > 0.0f) { + if (adapt_thresh != 0.0f) samp_type = SAMP_TYPE_HALTON; else samp_type = SAMP_TYPE_HAMMERSLEY; /* all samples are generated per pixel */ @@ -1386,13 +1386,13 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr) samples++; /* adaptive sampling */ - if (adapt_thresh < 1.0 && samples > max_samples/2) + if (adapt_thresh < 1.0f && samples > max_samples/2) { if (adaptive_sample_variance(samples, col, colsq, adapt_thresh)) break; /* if the pixel so far is very dark, we can get away with less samples */ - if ( (col[0] + col[1] + col[2])/3.0/(float)samples < 0.01 ) + if ( (col[0] + col[1] + col[2])/3.0f/(float)samples < 0.01f ) max_samples--; } } @@ -1415,18 +1415,18 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f float v_nor_new[3], v_reflect[3]; float sampcol[4], colsq[4]; - float blur = pow(1.0 - shi->mat->gloss_mir, 3); + float blur = powf(1.0f - shi->mat->gloss_mir, 3); short max_samples = shi->mat->samp_gloss_mir; float adapt_thresh = shi->mat->adapt_thresh_mir; - float aniso = 1.0 - shi->mat->aniso_gloss_mir; + float aniso = 1.0f - shi->mat->aniso_gloss_mir; int samples=0; col[0] = col[1] = col[2] = 0.0; colsq[0] = colsq[1] = colsq[2] = 0.0; - if (blur > 0.0) { - if (adapt_thresh != 0.0) samp_type = SAMP_TYPE_HALTON; + if (blur > 0.0f) { + if (adapt_thresh != 0.0f) samp_type = SAMP_TYPE_HALTON; else samp_type = SAMP_TYPE_HAMMERSLEY; /* all samples are generated per pixel */ @@ -1485,22 +1485,22 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f samples++; /* adaptive sampling */ - if (adapt_thresh > 0.0 && samples > max_samples/3) + if (adapt_thresh > 0.0f && samples > max_samples/3) { if (adaptive_sample_variance(samples, col, colsq, adapt_thresh)) break; /* if the pixel so far is very dark, we can get away with less samples */ - if ( (col[0] + col[1] + col[2])/3.0/(float)samples < 0.01 ) + if ( (col[0] + col[1] + col[2])/3.0f/(float)samples < 0.01f ) max_samples--; /* reduce samples when reflection is dim due to low ray mirror blend value or fresnel factor * and when reflection is blurry */ - if (fresnelfac < 0.1 * (blur+1)) { + if (fresnelfac < 0.1f * (blur+1)) { max_samples--; /* even more for very dim */ - if (fresnelfac < 0.05 * (blur+1)) + if (fresnelfac < 0.05f * (blur+1)) max_samples--; } } @@ -1659,7 +1659,7 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int col[1] = a*col[1] + shr.alpha*shr.combined[1]; col[2] = a*col[2] + shr.alpha*shr.combined[2]; - col[3] = (1.0 - shr.alpha)*a; + col[3] = (1.0f - shr.alpha)*a; } if(depth>0 && col[3]>0.0f) { @@ -1758,8 +1758,8 @@ static void RandomSpherical(float *v) if ((r = 1.f - v[2]*v[2])>0.f) { float a = 6.283185307f*BLI_frand(); r = sqrt(r); - v[0] = r * cos(a); - v[1] = r * sin(a); + v[0] = r * cosf(a); + v[1] = r * sinf(a); } else v[2] = 1.f; } @@ -1956,7 +1956,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env) float speedfac; speedfac = get_avg_speed(shi) * adapt_speed_fac; - CLAMP(speedfac, 1.0, 1000.0); + CLAMP(speedfac, 1.0f, 1000.0f); max_samples /= speedfac; if (max_samples < 5) max_samples = 5; @@ -1985,7 +1985,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env) prev = fac; if(RE_rayobject_raycast(R.raytree, &isec)) { - if (R.wrld.aomode & WO_AODIST) fac+= exp(-isec.dist*R.wrld.aodistfac); + if (R.wrld.aomode & WO_AODIST) fac+= expf(-isec.dist*R.wrld.aodistfac); else fac+= 1.0f; } else if(envcolor!=WO_AOPLAIN) { @@ -1998,7 +1998,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env) normalize_v3(view); if(envcolor==WO_AOSKYCOL) { - skyfac= 0.5*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]); + skyfac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]); env[0]+= (1.0f-skyfac)*R.wrld.horr + skyfac*R.wrld.zenr; env[1]+= (1.0f-skyfac)*R.wrld.horg + skyfac*R.wrld.zeng; env[2]+= (1.0f-skyfac)*R.wrld.horb + skyfac*R.wrld.zenb; @@ -2017,7 +2017,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env) if (qsa->type == SAMP_TYPE_HALTON) { /* adaptive sampling - consider samples below threshold as in shadow (or vice versa) and exit early */ - if (adapt_thresh > 0.0 && (samples > max_samples/2) ) { + if (adapt_thresh > 0.0f && (samples > max_samples/2) ) { if (adaptive_sample_contrast_val(samples, prev, fac, adapt_thresh)) { break; @@ -2123,7 +2123,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env) /* do the trace */ if(RE_rayobject_raycast(R.raytree, &isec)) { - if (R.wrld.aomode & WO_AODIST) sh+= exp(-isec.dist*R.wrld.aodistfac); + if (R.wrld.aomode & WO_AODIST) sh+= expf(-isec.dist*R.wrld.aodistfac); else sh+= 1.0f; } else if(envcolor!=WO_AOPLAIN) { @@ -2136,7 +2136,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env) normalize_v3(view); if(envcolor==WO_AOSKYCOL) { - fac= 0.5*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]); + fac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]); env[0]+= (1.0f-fac)*R.wrld.horr + fac*R.wrld.zenr; env[1]+= (1.0f-fac)*R.wrld.horg + fac*R.wrld.zeng; env[2]+= (1.0f-fac)*R.wrld.horb + fac*R.wrld.zenb; @@ -2367,14 +2367,14 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float * if (lar->ray_samp_method == LA_SAMP_HALTON) { /* adaptive sampling - consider samples below threshold as in shadow (or vice versa) and exit early */ - if ((max_samples > min_adapt_samples) && (adapt_thresh > 0.0) && (samples > max_samples / 3)) { + if ((max_samples > min_adapt_samples) && (adapt_thresh > 0.0f) && (samples > max_samples / 3)) { if (isec->mode==RE_RAY_SHADOW_TRA) { - if ((shadfac[3] / samples > (1.0-adapt_thresh)) || (shadfac[3] / samples < adapt_thresh)) + if ((shadfac[3] / samples > (1.0f-adapt_thresh)) || (shadfac[3] / samples < adapt_thresh)) break; else if (adaptive_sample_variance(samples, shadfac, colsq, adapt_thresh)) break; } else { - if ((fac / samples > (1.0-adapt_thresh)) || (fac / samples < adapt_thresh)) + if ((fac / samples > (1.0f-adapt_thresh)) || (fac / samples < adapt_thresh)) break; } } diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 579afc21c1d..ef1b1cd159c 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -175,9 +175,9 @@ static void tex_normal_derivate(Tex *tex, TexResult *texres) do_colorband(tex->coba, texres->nor[2], col); fac3= (col[0]+col[1]+col[2]); - texres->nor[0]= 0.3333*(fac0 - fac1); - texres->nor[1]= 0.3333*(fac0 - fac2); - texres->nor[2]= 0.3333*(fac0 - fac3); + texres->nor[0]= 0.3333f*(fac0 - fac1); + texres->nor[1]= 0.3333f*(fac0 - fac2); + texres->nor[2]= 0.3333f*(fac0 - fac3); return; } @@ -203,31 +203,31 @@ static int blend(Tex *tex, float *texvec, TexResult *texres) } if(tex->stype==TEX_LIN) { /* lin */ - texres->tin= (1.0+x)/2.0; + texres->tin= (1.0f+x)/2.0f; } else if(tex->stype==TEX_QUAD) { /* quad */ - texres->tin= (1.0+x)/2.0; - if(texres->tin<0.0) texres->tin= 0.0; + texres->tin= (1.0f+x)/2.0f; + if(texres->tin<0.0f) texres->tin= 0.0f; else texres->tin*= texres->tin; } else if(tex->stype==TEX_EASE) { /* ease */ - texres->tin= (1.0+x)/2.0; - if(texres->tin<=.0) texres->tin= 0.0; - else if(texres->tin>=1.0) texres->tin= 1.0; + texres->tin= (1.0f+x)/2.0f; + if(texres->tin<=0.0f) texres->tin= 0.0f; + else if(texres->tin>=1.0f) texres->tin= 1.0f; else { t= texres->tin*texres->tin; - texres->tin= (3.0*t-2.0*t*texres->tin); + texres->tin= (3.0f*t-2.0f*t*texres->tin); } } else if(tex->stype==TEX_DIAG) { /* diag */ - texres->tin= (2.0+x+y)/4.0; + texres->tin= (2.0f+x+y)/4.0f; } else if(tex->stype==TEX_RAD) { /* radial */ texres->tin= (atan2(y,x) / (2*M_PI) + 0.5); } else { /* sphere TEX_SPHERE */ texres->tin= 1.0-sqrt(x*x+ y*y+texvec[2]*texvec[2]); - if(texres->tin<0.0) texres->tin= 0.0; + if(texres->tin<0.0f) texres->tin= 0.0f; if(tex->stype==TEX_HALO) texres->tin*= texres->tin; /* halo */ } @@ -299,7 +299,7 @@ static float tex_tri(float a) const float b = 2*M_PI; const float rmax = 1.0; - a = rmax - 2.0*fabs(floor((a*(1.0/b))+0.5) - (a*(1.0/b))); + a = rmax - 2.0f*fabsf(floorf((a*(1.0f/b))+0.5f) - (a*(1.0f/b))); return a; } @@ -319,18 +319,18 @@ static float wood_int(Tex *tex, float x, float y, float z) if ((wf>TEX_TRI) || (wfturbul*BLI_gNoise(tex->noisesize, x, y, z, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis); - wi = waveform[wf]((x + y + z)*10.0 + wi); + wi = waveform[wf]((x + y + z)*10.0f + wi); } else if (wt==TEX_RINGNOISE) { wi = tex->turbul*BLI_gNoise(tex->noisesize, x, y, z, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis); - wi = waveform[wf](sqrt(x*x + y*y + z*z)*20.0 + wi); + wi = waveform[wf](sqrt(x*x + y*y + z*z)*20.0f + wi); } return wi; @@ -370,7 +370,7 @@ static float marble_int(Tex *tex, float x, float y, float z) if ((wf>TEX_TRI) || (wfturbul * BLI_gTurbulence(tex->noisesize, x, y, z, tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis); @@ -417,11 +417,11 @@ static int magic(Tex *tex, float *texvec, TexResult *texres) int n; n= tex->noisedepth; - turb= tex->turbul/5.0; + turb= tex->turbul/5.0f; - x= sin( ( texvec[0]+texvec[1]+texvec[2])*5.0 ); - y= cos( (-texvec[0]+texvec[1]-texvec[2])*5.0 ); - z= -cos( (-texvec[0]-texvec[1]+texvec[2])*5.0 ); + x= sin( ( texvec[0]+texvec[1]+texvec[2])*5.0f ); + y= cos( (-texvec[0]+texvec[1]-texvec[2])*5.0f ); + z= -cos( (-texvec[0]-texvec[1]+texvec[2])*5.0f ); if(n>0) { x*= turb; y*= turb; @@ -466,17 +466,17 @@ static int magic(Tex *tex, float *texvec, TexResult *texres) } } - if(turb!=0.0) { - turb*= 2.0; + if(turb!=0.0f) { + turb*= 2.0f; x/= turb; y/= turb; z/= turb; } - texres->tr= 0.5-x; - texres->tg= 0.5-y; - texres->tb= 0.5-z; + texres->tr= 0.5f-x; + texres->tg= 0.5f-y; + texres->tb= 0.5f-z; - texres->tin= 0.3333*(texres->tr+texres->tg+texres->tb); + texres->tin= 0.3333f*(texres->tr+texres->tg+texres->tb); BRICONTRGB; texres->ta= 1.0; @@ -494,7 +494,7 @@ static int stucci(Tex *tex, float *texvec, TexResult *texres) b2= BLI_gNoise(tex->noisesize, texvec[0], texvec[1], texvec[2], (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis); - ofs= tex->turbul/200.0; + ofs= tex->turbul/200.0f; if(tex->stype) ofs*=(b2*b2); nor[0] = BLI_gNoise(tex->noisesize, texvec[0]+ofs, texvec[1], texvec[2], (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis); @@ -732,7 +732,7 @@ static int texnoise(Tex *tex, TexResult *texres) while(loop--) { ran= (ran>>2); val*= (ran & 3); - div*= 3.0; + div*= 3.0f; } texres->tin= ((float)val)/div; @@ -829,18 +829,18 @@ static int cubemap_glob(float *n, float x, float y, float z, float *adr1, float z1= fabs(nor[2]); if(z1>=x1 && z1>=y1) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (y + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (y + 1.0f) / 2.0f; ret= 0; } else if(y1>=x1 && y1>=z1) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 1; } else { - *adr1 = (y + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (y + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 2; } return ret; @@ -884,17 +884,17 @@ static int cubemap(MTex *mtex, VlakRen *vlr, float *n, float x, float y, float z } if(vlr->puno & proj[1]) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (y + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (y + 1.0f) / 2.0f; } else if(vlr->puno & proj[2]) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 1; } else { - *adr1 = (y + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (y + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 2; } } @@ -922,18 +922,18 @@ static int cubemap_ob(Object *ob, float *n, float x, float y, float z, float *ad z1= fabs(nor[2]); if(z1>=x1 && z1>=y1) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (y + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (y + 1.0f) / 2.0f; ret= 0; } else if(y1>=x1 && y1>=z1) { - *adr1 = (x + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (x + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 1; } else { - *adr1 = (y + 1.0) / 2.0; - *adr2 = (z + 1.0) / 2.0; + *adr1 = (y + 1.0f) / 2.0f; + *adr2 = (z + 1.0f) / 2.0f; ret= 2; } return ret; @@ -957,8 +957,8 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d if(R.osa==0) { if(wrap==MTEX_FLAT) { - fx = (t[0] + 1.0) / 2.0; - fy = (t[1] + 1.0) / 2.0; + fx = (t[0] + 1.0f) / 2.0f; + fy = (t[1] + 1.0f) / 2.0f; } else if(wrap==MTEX_TUBE) map_to_tube( &fx, &fy,t[0], t[1], t[2]); else if(wrap==MTEX_SPHERE) map_to_sphere( &fx, &fy,t[0], t[1], t[2]); @@ -973,34 +973,34 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d if(tex->xrepeat>1) { float origf= fx *= tex->xrepeat; - if(fx>1.0) fx -= (int)(fx); - else if(fx<0.0) fx+= 1-(int)(fx); + if(fx>1.0f) fx -= (int)(fx); + else if(fx<0.0f) fx+= 1-(int)(fx); if(tex->flag & TEX_REPEAT_XMIR) { int orig= (int)floor(origf); if(orig & 1) - fx= 1.0-fx; + fx= 1.0f-fx; } } if(tex->yrepeat>1) { float origf= fy *= tex->yrepeat; - if(fy>1.0) fy -= (int)(fy); - else if(fy<0.0) fy+= 1-(int)(fy); + if(fy>1.0f) fy -= (int)(fy); + else if(fy<0.0f) fy+= 1-(int)(fy); if(tex->flag & TEX_REPEAT_YMIR) { int orig= (int)floor(origf); if(orig & 1) - fy= 1.0-fy; + fy= 1.0f-fy; } } } /* crop */ - if(tex->cropxmin!=0.0 || tex->cropxmax!=1.0) { + if(tex->cropxmin!=0.0f || tex->cropxmax!=1.0f) { fac1= tex->cropxmax - tex->cropxmin; fx= tex->cropxmin+ fx*fac1; } - if(tex->cropymin!=0.0 || tex->cropymax!=1.0) { + if(tex->cropymin!=0.0f || tex->cropymax!=1.0f) { fac1= tex->cropymax - tex->cropymin; fy= tex->cropymin+ fy*fac1; } @@ -1011,23 +1011,23 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d else { if(wrap==MTEX_FLAT) { - fx= (t[0] + 1.0) / 2.0; - fy= (t[1] + 1.0) / 2.0; - dxt[0]/= 2.0; - dxt[1]/= 2.0; - dxt[2]/= 2.0; - dyt[0]/= 2.0; - dyt[1]/= 2.0; - dyt[2]/= 2.0; + fx= (t[0] + 1.0f) / 2.0f; + fy= (t[1] + 1.0f) / 2.0f; + dxt[0]/= 2.0f; + dxt[1]/= 2.0f; + dxt[2]/= 2.0f; + dyt[0]/= 2.0f; + dyt[1]/= 2.0f; + dyt[2]/= 2.0f; } else if ELEM(wrap, MTEX_TUBE, MTEX_SPHERE) { /* exception: the seam behind (y<0.0) */ ok= 1; - if(t[1]<=0.0) { + if(t[1]<=0.0f) { fx= t[0]+dxt[0]; fy= t[0]+dyt[0]; - if(fx>=0.0 && fy>=0.0 && t[0]>=0.0); - else if(fx<=0.0 && fy<=0.0 && t[0]<=0.0); + if(fx>=0.0f && fy>=0.0f && t[0]>=0.0f); + else if(fx<=0.0f && fy<=0.0f && t[0]<=0.0f); else ok= 0; } if(ok) { @@ -1046,10 +1046,10 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d else { if(wrap==MTEX_TUBE) map_to_tube( &fx, &fy,t[0], t[1], t[2]); else map_to_sphere( &fx, &fy,t[0], t[1], t[2]); - dxt[0]/= 2.0; - dxt[1]/= 2.0; - dyt[0]/= 2.0; - dyt[1]/= 2.0; + dxt[0]/= 2.0f; + dxt[1]/= 2.0f; + dyt[0]/= 2.0f; + dyt[1]/= 2.0f; } } else { @@ -1143,13 +1143,13 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d } /* crop */ - if(tex->cropxmin!=0.0 || tex->cropxmax!=1.0) { + if(tex->cropxmin!=0.0f || tex->cropxmax!=1.0f) { fac1= tex->cropxmax - tex->cropxmin; fx= tex->cropxmin+ fx*fac1; dxt[0]*= fac1; dyt[0]*= fac1; } - if(tex->cropymin!=0.0 || tex->cropymax!=1.0) { + if(tex->cropymin!=0.0f || tex->cropymax!=1.0f) { fac1= tex->cropymax - tex->cropymin; fy= tex->cropymin+ fy*fac1; dxt[1]*= fac1; @@ -1220,7 +1220,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, * artificer: added the use of tmpvec to avoid scaling texvec */ VECCOPY(tmpvec, texvec); - mul_v3_fl(tmpvec, 1.0/tex->noisesize); + mul_v3_fl(tmpvec, 1.0f/tex->noisesize); switch(tex->stype) { case TEX_MFRACTAL: @@ -1242,7 +1242,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, * artificer: added the use of tmpvec to avoid scaling texvec */ VECCOPY(tmpvec, texvec); - mul_v3_fl(tmpvec, 1.0/tex->noisesize); + mul_v3_fl(tmpvec, 1.0f/tex->noisesize); retval= voronoiTex(tex, tmpvec, texres); break; @@ -1251,7 +1251,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, * artificer: added the use of tmpvec to avoid scaling texvec */ VECCOPY(tmpvec, texvec); - mul_v3_fl(tmpvec, 1.0/tex->noisesize); + mul_v3_fl(tmpvec, 1.0f/tex->noisesize); retval= mg_distNoiseTex(tex, tmpvec, texres); break; @@ -1381,7 +1381,7 @@ void texture_rgb_blend(float *in, float *tex, float *out, float fact, float facg switch(blendtype) { case MTEX_BLEND: fact*= facg; - facm= 1.0-fact; + facm= 1.0f-fact; in[0]= (fact*tex[0] + facm*out[0]); in[1]= (fact*tex[1] + facm*out[1]); @@ -1390,7 +1390,7 @@ void texture_rgb_blend(float *in, float *tex, float *out, float fact, float facg case MTEX_MUL: fact*= facg; - facm= 1.0-facg; + facm= 1.0f-facg; in[0]= (facm+fact*tex[0])*out[0]; in[1]= (facm+fact*tex[1])*out[1]; in[2]= (facm+fact*tex[2])*out[2]; @@ -1398,28 +1398,28 @@ void texture_rgb_blend(float *in, float *tex, float *out, float fact, float facg case MTEX_SCREEN: fact*= facg; - facm= 1.0-facg; - in[0]= 1.0 - (facm+fact*(1.0-tex[0])) * (1.0-out[0]); - in[1]= 1.0 - (facm+fact*(1.0-tex[1])) * (1.0-out[1]); - in[2]= 1.0 - (facm+fact*(1.0-tex[2])) * (1.0-out[2]); + facm= 1.0f-facg; + in[0]= 1.0f - (facm+fact*(1.0f-tex[0])) * (1.0f-out[0]); + in[1]= 1.0f - (facm+fact*(1.0f-tex[1])) * (1.0f-out[1]); + in[2]= 1.0f - (facm+fact*(1.0f-tex[2])) * (1.0f-out[2]); break; case MTEX_OVERLAY: fact*= facg; - facm= 1.0-facg; + facm= 1.0f-facg; if(out[0] < 0.5f) in[0] = out[0] * (facm + 2.0f*fact*tex[0]); else - in[0] = 1.0f - (facm + 2.0f*fact*(1.0 - tex[0])) * (1.0 - out[0]); + in[0] = 1.0f - (facm + 2.0f*fact*(1.0f - tex[0])) * (1.0f - out[0]); if(out[1] < 0.5f) in[1] = out[1] * (facm + 2.0f*fact*tex[1]); else - in[1] = 1.0f - (facm + 2.0f*fact*(1.0 - tex[1])) * (1.0 - out[1]); + in[1] = 1.0f - (facm + 2.0f*fact*(1.0f - tex[1])) * (1.0f - out[1]); if(out[2] < 0.5f) in[2] = out[2] * (facm + 2.0f*fact*tex[2]); else - in[2] = 1.0f - (facm + 2.0f*fact*(1.0 - tex[2])) * (1.0 - out[2]); + in[2] = 1.0f - (facm + 2.0f*fact*(1.0f - tex[2])) * (1.0f - out[2]); break; case MTEX_SUB: @@ -1433,20 +1433,20 @@ void texture_rgb_blend(float *in, float *tex, float *out, float fact, float facg case MTEX_DIV: fact*= facg; - facm= 1.0-fact; + facm= 1.0f-fact; - if(tex[0]!=0.0) + if(tex[0]!=0.0f) in[0]= facm*out[0] + fact*out[0]/tex[0]; - if(tex[1]!=0.0) + if(tex[1]!=0.0f) in[1]= facm*out[1] + fact*out[1]/tex[1]; - if(tex[2]!=0.0) + if(tex[2]!=0.0f) in[2]= facm*out[2] + fact*out[2]/tex[2]; break; case MTEX_DIFF: fact*= facg; - facm= 1.0-fact; + facm= 1.0f-fact; in[0]= facm*out[0] + fact*fabs(tex[0]-out[0]); in[1]= facm*out[1] + fact*fabs(tex[1]-out[1]); in[2]= facm*out[2] + fact*fabs(tex[2]-out[2]); @@ -1454,7 +1454,7 @@ void texture_rgb_blend(float *in, float *tex, float *out, float fact, float facg case MTEX_DARK: fact*= facg; - facm= 1.0-fact; + facm= 1.0f-fact; col= tex[0]+((1-tex[0])*facm); if(col < out[0]) in[0]= col; else in[0]= out[0]; @@ -1516,7 +1516,7 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen facg= fabsf(facg); fact*= facg; - facm= 1.0-fact; + facm= 1.0f-fact; if(flip) SWAP(float, fact, facm); switch(blendtype) { @@ -1525,21 +1525,21 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen break; case MTEX_MUL: - facm= 1.0-facg; + facm= 1.0f-facg; in= (facm+fact*tex)*out; break; case MTEX_SCREEN: - facm= 1.0-facg; - in= 1.0-(facm+fact*(1.0-tex))*(1.0-out); + facm= 1.0f-facg; + in= 1.0f-(facm+fact*(1.0f-tex))*(1.0f-out); break; case MTEX_OVERLAY: - facm= 1.0-facg; + facm= 1.0f-facg; if(out < 0.5f) in = out * (facm + 2.0f*fact*tex); else - in = 1.0f - (facm + 2.0f*fact*(1.0 - tex)) * (1.0 - out); + in = 1.0f - (facm + 2.0f*fact*(1.0f - tex)) * (1.0f - out); break; case MTEX_SUB: @@ -1549,7 +1549,7 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen break; case MTEX_DIV: - if(tex!=0.0) + if(tex!=0.0f) in= facm*out + fact*out/tex; break; @@ -1568,15 +1568,15 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen break; case MTEX_SOFT_LIGHT: - scf=1.0 - (1.0 - tex) * (1.0 - out); - in= facm*out + fact * ((1.0 - out) * tex * out) + (out * scf); + scf=1.0f - (1.0f - tex) * (1.0f - out); + in= facm*out + fact * ((1.0f - out) * tex * out) + (out * scf); break; case MTEX_LIN_LIGHT: - if (tex > 0.5) - in = out + fact*(2*(tex - 0.5)); + if (tex > 0.5f) + in = out + fact*(2.0f*(tex - 0.5f)); else - in = out + fact*(2*tex - 1); + in = out + fact*(2.0f*tex - 1.0f); break; } @@ -2296,16 +2296,16 @@ void do_material_tex(ShadeInput *shi) /* texture output */ if( (rgbnor & TEX_RGB) && (mtex->texflag & MTEX_RGBTOINT)) { - texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); rgbnor-= TEX_RGB; } if(mtex->texflag & MTEX_NEGATIVE) { if(rgbnor & TEX_RGB) { - texres.tr= 1.0-texres.tr; - texres.tg= 1.0-texres.tg; - texres.tb= 1.0-texres.tb; + texres.tr= 1.0f-texres.tr; + texres.tg= 1.0f-texres.tg; + texres.tb= 1.0f-texres.tb; } - texres.tin= 1.0-texres.tin; + texres.tin= 1.0f-texres.tin; } if(mtex->texflag & MTEX_STENCIL) { if(rgbnor & TEX_RGB) { @@ -2332,8 +2332,8 @@ void do_material_tex(ShadeInput *shi) texres.nor[2]= texres.tb; } else { - float co_nor= 0.5*cos(texres.tin-0.5); - float si= 0.5*sin(texres.tin-0.5); + float co_nor= 0.5*cos(texres.tin-0.5f); + float si= 0.5*sin(texres.tin-0.5f); float f1, f2; f1= shi->vn[0]; @@ -2419,7 +2419,7 @@ void do_material_tex(ShadeInput *shi) // exception for envmap only if(tex->type==TEX_ENVMAP && mtex->blendtype==MTEX_BLEND) { fact= texres.tin*mirrfac; - facm= 1.0- fact; + facm= 1.0f- fact; shi->refcol[0]= fact + facm*shi->refcol[0]; shi->refcol[1]= fact*tcol[0] + facm*shi->refcol[1]; shi->refcol[2]= fact*tcol[1] + facm*shi->refcol[2]; @@ -2564,65 +2564,65 @@ void do_material_tex(ShadeInput *shi) if(rgbnor & TEX_RGB) { if(texres.talpha) texres.tin= texres.ta; - else texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + else texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); } if(mtex->mapto & MAP_REF) { float difffac= mtex->difffac*stencilTin; shi->refl= texture_value_blend(mtex->def_var, shi->refl, texres.tin, difffac, mtex->blendtype); - if(shi->refl<0.0) shi->refl= 0.0; + if(shi->refl<0.0f) shi->refl= 0.0f; } if(mtex->mapto & MAP_SPEC) { float specfac= mtex->specfac*stencilTin; shi->spec= texture_value_blend(mtex->def_var, shi->spec, texres.tin, specfac, mtex->blendtype); - if(shi->spec<0.0) shi->spec= 0.0; + if(shi->spec<0.0f) shi->spec= 0.0f; } if(mtex->mapto & MAP_EMIT) { float emitfac= mtex->emitfac*stencilTin; shi->emit= texture_value_blend(mtex->def_var, shi->emit, texres.tin, emitfac, mtex->blendtype); - if(shi->emit<0.0) shi->emit= 0.0; + if(shi->emit<0.0f) shi->emit= 0.0f; } if(mtex->mapto & MAP_ALPHA) { float alphafac= mtex->alphafac*stencilTin; shi->alpha= texture_value_blend(mtex->def_var, shi->alpha, texres.tin, alphafac, mtex->blendtype); - if(shi->alpha<0.0) shi->alpha= 0.0; - else if(shi->alpha>1.0) shi->alpha= 1.0; + if(shi->alpha<0.0f) shi->alpha= 0.0f; + else if(shi->alpha>1.0f) shi->alpha= 1.0f; } if(mtex->mapto & MAP_HAR) { float har; // have to map to 0-1 float hardfac= mtex->hardfac*stencilTin; - har= ((float)shi->har)/128.0; - har= 128.0*texture_value_blend(mtex->def_var, har, texres.tin, hardfac, mtex->blendtype); + har= ((float)shi->har)/128.0f; + har= 128.0f*texture_value_blend(mtex->def_var, har, texres.tin, hardfac, mtex->blendtype); - if(har<1.0) shi->har= 1; - else if(har>511.0) shi->har= 511; + if(har<1.0f) shi->har= 1; + else if(har>511) shi->har= 511; else shi->har= (int)har; } if(mtex->mapto & MAP_RAYMIRR) { float raymirrfac= mtex->raymirrfac*stencilTin; shi->ray_mirror= texture_value_blend(mtex->def_var, shi->ray_mirror, texres.tin, raymirrfac, mtex->blendtype); - if(shi->ray_mirror<0.0) shi->ray_mirror= 0.0; - else if(shi->ray_mirror>1.0) shi->ray_mirror= 1.0; + if(shi->ray_mirror<0.0f) shi->ray_mirror= 0.0f; + else if(shi->ray_mirror>1.0f) shi->ray_mirror= 1.0f; } if(mtex->mapto & MAP_TRANSLU) { float translfac= mtex->translfac*stencilTin; shi->translucency= texture_value_blend(mtex->def_var, shi->translucency, texres.tin, translfac, mtex->blendtype); - if(shi->translucency<0.0) shi->translucency= 0.0; - else if(shi->translucency>1.0) shi->translucency= 1.0; + if(shi->translucency<0.0f) shi->translucency= 0.0f; + else if(shi->translucency>1.0f) shi->translucency= 1.0f; } if(mtex->mapto & MAP_AMB) { float ambfac= mtex->ambfac*stencilTin; shi->amb= texture_value_blend(mtex->def_var, shi->amb, texres.tin, ambfac, mtex->blendtype); - if(shi->amb<0.0) shi->amb= 0.0; - else if(shi->amb>1.0) shi->amb= 1.0; + if(shi->amb<0.0f) shi->amb= 0.0f; + else if(shi->amb>1.0f) shi->amb= 1.0f; shi->ambr= shi->amb*R.wrld.ambr; shi->ambg= shi->amb*R.wrld.ambg; @@ -2718,16 +2718,16 @@ void do_volume_tex(ShadeInput *shi, float *xyz, int mapto_flag, float *col, floa /* texture output */ if( (rgbnor & TEX_RGB) && (mtex->texflag & MTEX_RGBTOINT)) { - texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); rgbnor-= TEX_RGB; } if(mtex->texflag & MTEX_NEGATIVE) { if(rgbnor & TEX_RGB) { - texres.tr= 1.0-texres.tr; - texres.tg= 1.0-texres.tg; - texres.tb= 1.0-texres.tb; + texres.tr= 1.0f-texres.tr; + texres.tg= 1.0f-texres.tg; + texres.tb= 1.0f-texres.tb; } - texres.tin= 1.0-texres.tin; + texres.tin= 1.0f-texres.tin; } if(mtex->texflag & MTEX_STENCIL) { if(rgbnor & TEX_RGB) { @@ -2784,7 +2784,7 @@ void do_volume_tex(ShadeInput *shi, float *xyz, int mapto_flag, float *col, floa if (!(rgbnor & TEX_INT)) { if (rgbnor & TEX_RGB) { if(texres.talpha) texres.tin= texres.ta; - else texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + else texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); } } @@ -2792,25 +2792,25 @@ void do_volume_tex(ShadeInput *shi, float *xyz, int mapto_flag, float *col, floa float emitfac= mtex->emitfac*stencilTin; *val = texture_value_blend(mtex->def_var, *val, texres.tin, emitfac, mtex->blendtype); - if(*val<0.0) *val= 0.0; + if(*val<0.0f) *val= 0.0f; } if((mapto_flag & MAP_DENSITY) && (mtex->mapto & MAP_DENSITY)) { float densfac= mtex->densfac*stencilTin; *val = texture_value_blend(mtex->def_var, *val, texres.tin, densfac, mtex->blendtype); - CLAMP(*val, 0.0, 1.0); + CLAMP(*val, 0.0f, 1.0f); } if((mapto_flag & MAP_SCATTERING) && (mtex->mapto & MAP_SCATTERING)) { float scatterfac= mtex->scatterfac*stencilTin; *val = texture_value_blend(mtex->def_var, *val, texres.tin, scatterfac, mtex->blendtype); - CLAMP(*val, 0.0, 1.0); + CLAMP(*val, 0.0f, 1.0f); } if((mapto_flag & MAP_REFLECTION) && (mtex->mapto & MAP_REFLECTION)) { float reflfac= mtex->reflfac*stencilTin; *val = texture_value_blend(mtex->def_var, *val, texres.tin, reflfac, mtex->blendtype); - CLAMP(*val, 0.0, 1.0); + CLAMP(*val, 0.0f, 1.0f); } } } @@ -2854,7 +2854,7 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) if(osatex) { - dx= 1.0/har->rad; + dx= 1.0f/har->rad; if(mtex->projx) { dxt[0]= mtex->size[0]*dx; @@ -2882,16 +2882,16 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) /* texture output */ if(rgb && (mtex->texflag & MTEX_RGBTOINT)) { - texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); rgb= 0; } if(mtex->texflag & MTEX_NEGATIVE) { if(rgb) { - texres.tr= 1.0-texres.tr; - texres.tg= 1.0-texres.tg; - texres.tb= 1.0-texres.tb; + texres.tr= 1.0f-texres.tr; + texres.tg= 1.0f-texres.tg; + texres.tb= 1.0f-texres.tb; } - else texres.tin= 1.0-texres.tin; + else texres.tin= 1.0f-texres.tin; } /* mapping */ @@ -2918,10 +2918,10 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) } fact= texres.tin*mtex->colfac; - facm= 1.0-fact; + facm= 1.0f-fact; if(mtex->blendtype==MTEX_MUL) { - facm= 1.0-mtex->colfac; + facm= 1.0f-mtex->colfac; } if(mtex->blendtype==MTEX_SUB) fact= -fact; @@ -2941,15 +2941,15 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) colf[1]= (fact*texres.tg + har->g); colf[2]= (fact*texres.tb + har->b); - CLAMP(colf[0], 0.0, 1.0); - CLAMP(colf[1], 0.0, 1.0); - CLAMP(colf[2], 0.0, 1.0); + CLAMP(colf[0], 0.0f, 1.0f); + CLAMP(colf[1], 0.0f, 1.0f); + CLAMP(colf[2], 0.0f, 1.0f); } } if(mtex->mapto & MAP_ALPHA) { if(rgb) { if(texres.talpha) texres.tin= texres.ta; - else texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + else texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); } colf[3]*= texres.tin; @@ -2999,7 +2999,7 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f /* only works with texture being "real" */ /* use saacos(), fixes bug [#22398], float precision caused lo[2] to be slightly less then -1.0 */ if(lo[0] || lo[1]) { /* check for zero case [#24807] */ - fact= (1.0/M_PI)*saacos(lo[2])/(sqrt(lo[0]*lo[0] + lo[1]*lo[1])); + fact= (1.0f/(float)M_PI)*saacos(lo[2])/(sqrt(lo[0]*lo[0] + lo[1]*lo[1])); tempvec[0]= lo[0]*fact; tempvec[1]= lo[1]*fact; tempvec[2]= 0.0; @@ -3020,13 +3020,13 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f if(mtex->texco==TEXCO_H_TUBEMAP) map_to_tube( tempvec, tempvec+1,lo[0], lo[2], lo[1]); else map_to_sphere( tempvec, tempvec+1,lo[0], lo[2], lo[1]); /* tube/spheremap maps for outside view, not inside */ - tempvec[0]= 1.0-tempvec[0]; + tempvec[0]= 1.0f-tempvec[0]; /* only top half */ - tempvec[1]= 2.0*tempvec[1]-1.0; + tempvec[1]= 2.0f*tempvec[1]-1.0f; tempvec[2]= 0.0; /* and correction for do_2d_mapping */ - tempvec[0]= 2.0*tempvec[0]-1.0; - tempvec[1]= 2.0*tempvec[1]-1.0; + tempvec[0]= 2.0f*tempvec[0]-1.0f; + tempvec[1]= 2.0f*tempvec[1]-1.0f; co= tempvec; } else { @@ -3075,16 +3075,16 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f /* texture output */ if(rgb && (mtex->texflag & MTEX_RGBTOINT)) { - texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); rgb= 0; } if(mtex->texflag & MTEX_NEGATIVE) { if(rgb) { - texres.tr= 1.0-texres.tr; - texres.tg= 1.0-texres.tg; - texres.tb= 1.0-texres.tb; + texres.tr= 1.0f-texres.tr; + texres.tg= 1.0f-texres.tg; + texres.tb= 1.0f-texres.tb; } - else texres.tin= 1.0-texres.tin; + else texres.tin= 1.0f-texres.tin; } if(mtex->texflag & MTEX_STENCIL) { if(rgb) { @@ -3145,7 +3145,7 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f } } if(mtex->mapto & WOMAP_BLEND) { - if(rgb) texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + if(rgb) texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); *blend= texture_value_blend(mtex->def_var, *blend, texres.tin, mtex->blendfac, mtex->blendtype); } @@ -3281,16 +3281,16 @@ void do_lamp_tex(LampRen *la, float *lavec, ShadeInput *shi, float *colf, int ef /* texture output */ if(rgb && (mtex->texflag & MTEX_RGBTOINT)) { - texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb); + texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb); rgb= 0; } if(mtex->texflag & MTEX_NEGATIVE) { if(rgb) { - texres.tr= 1.0-texres.tr; - texres.tg= 1.0-texres.tg; - texres.tb= 1.0-texres.tb; + texres.tr= 1.0f-texres.tr; + texres.tg= 1.0f-texres.tg; + texres.tb= 1.0f-texres.tb; } - else texres.tin= 1.0-texres.tin; + else texres.tin= 1.0f-texres.tin; } if(mtex->texflag & MTEX_STENCIL) { if(rgb) { @@ -3375,7 +3375,7 @@ int externtex(MTex *mtex, float *vec, float *tin, float *tr, float *tg, float *t rgb= multitex(tex, texvec, dxt, dyt, 0, &texr, thread, mtex->which_output); if(rgb) { - texr.tin= (0.35*texr.tr+0.45*texr.tg+0.2*texr.tb); + texr.tin= (0.35f*texr.tr+0.45f*texr.tg+0.2f*texr.tb); } else { texr.tr= mtex->r; @@ -3424,14 +3424,14 @@ void render_realtime_texture(ShadeInput *shi, Image *ima) tex= &imatex[shi->thread]; tex->iuser.ok= ima->ok; - texvec[0]= 0.5+0.5*suv->uv[0]; - texvec[1]= 0.5+0.5*suv->uv[1]; - texvec[2] = 0; // initalize it because imagewrap looks at it. + texvec[0]= 0.5f+0.5f*suv->uv[0]; + texvec[1]= 0.5f+0.5f*suv->uv[1]; + texvec[2] = 0.0f; // initalize it because imagewrap looks at it. if(shi->osatex) { - dx[0]= 0.5*suv->dxuv[0]; - dx[1]= 0.5*suv->dxuv[1]; - dy[0]= 0.5*suv->dyuv[0]; - dy[1]= 0.5*suv->dyuv[1]; + dx[0]= 0.5f*suv->dxuv[0]; + dx[1]= 0.5f*suv->dxuv[1]; + dy[0]= 0.5f*suv->dyuv[0]; + dy[1]= 0.5f*suv->dyuv[1]; } texr.nor= NULL; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index c08d6c0f456..b66740c87ba 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -758,7 +758,7 @@ static void atm_tile(RenderPart *pa, RenderLayer *rl) if(lar->type==LA_SUN && lar->sunsky) { /* if it's sky continue and don't apply atmosphere effect on it */ - if(*zrect >= 9.9e10 || rgbrect[3]==0.0f) { + if(*zrect >= 9.9e10f || rgbrect[3]==0.0f) { continue; } @@ -1098,7 +1098,7 @@ static unsigned short *make_solid_mask(RenderPart *pa) static void addAlphaOverFloatMask(float *dest, float *source, unsigned short dmask, unsigned short smask) { unsigned short shared= dmask & smask; - float mul= 1.0 - source[3]; + float mul= 1.0f - source[3]; if(shared) { /* overlapping masks */ @@ -1892,13 +1892,13 @@ static void renderflare(RenderResult *rr, float *rectf, HaloRen *har) fla.r= fabs(rc[0]); fla.g= fabs(rc[1]); fla.b= fabs(rc[2]); - fla.alfa= ma->flareboost*fabs(alfa*visifac*rc[3]); - fla.hard= 20.0f + fabs(70*rc[7]); + fla.alfa= ma->flareboost*fabsf(alfa*visifac*rc[3]); + fla.hard= 20.0f + fabsf(70.0f*rc[7]); fla.tex= 0; - type= (int)(fabs(3.9*rc[6])); + type= (int)(fabs(3.9f*rc[6])); - fla.rad= ma->subsize*sqrt(fabs(2.0f*har->rad*rc[4])); + fla.rad= ma->subsize*sqrtf(fabs(2.0f*har->rad*rc[4])); if(type==3) { fla.rad*= 3.0f; @@ -1907,22 +1907,22 @@ static void renderflare(RenderResult *rr, float *rectf, HaloRen *har) fla.radsq= fla.rad*fla.rad; - vec[0]= 1.4*rc[5]*(har->xs-R.winx/2); - vec[1]= 1.4*rc[5]*(har->ys-R.winy/2); - vec[2]= 32.0f*sqrt(vec[0]*vec[0] + vec[1]*vec[1] + 1.0f); + vec[0]= 1.4f*rc[5]*(har->xs-R.winx/2); + vec[1]= 1.4f*rc[5]*(har->ys-R.winy/2); + vec[2]= 32.0f*sqrtf(vec[0]*vec[0] + vec[1]*vec[1] + 1.0f); - fla.xs= R.winx/2 + vec[0] + (1.2+rc[8])*R.rectx*vec[0]/vec[2]; - fla.ys= R.winy/2 + vec[1] + (1.2+rc[8])*R.rectx*vec[1]/vec[2]; + fla.xs= R.winx/2 + vec[0] + (1.2f+rc[8])*R.rectx*vec[0]/vec[2]; + fla.ys= R.winy/2 + vec[1] + (1.2f+rc[8])*R.rectx*vec[1]/vec[2]; if(R.flag & R_SEC_FIELD) { - if(R.r.mode & R_ODDFIELD) fla.ys += 0.5; - else fla.ys -= 0.5; + if(R.r.mode & R_ODDFIELD) fla.ys += 0.5f; + else fla.ys -= 0.5f; } if(type & 1) fla.type= HA_FLARECIRC; else fla.type= 0; renderhalo_post(rr, rectf, &fla); - fla.alfa*= 0.5; + fla.alfa*= 0.5f; if(type & 2) fla.type= HA_FLARECIRC; else fla.type= 0; renderhalo_post(rr, rectf, &fla); @@ -2205,7 +2205,7 @@ static void bake_displacement(void *handle, ShadeInput *UNUSED(shi), float dist, if(R.r.bake_flag & R_BAKE_NORMALIZE && R.r.bake_maxdist) { disp = (dist+R.r.bake_maxdist) / (R.r.bake_maxdist*2); /* alter the range from [-bake_maxdist, bake_maxdist] to [0, 1]*/ } else { - disp = 0.5 + dist; /* alter the range from [-0.5,0.5] to [0,1]*/ + disp = 0.5f + dist; /* alter the range from [-0.5,0.5] to [0,1]*/ } if(bs->rect_float) { @@ -2277,7 +2277,7 @@ static void bake_set_vlr_dxyco(BakeShade *bs, float *uv1, float *uv2, float *uv3 * then taking u and v partial derivatives to get dxco and dyco */ A= (uv2[0] - uv1[0])*(uv3[1] - uv1[1]) - (uv3[0] - uv1[0])*(uv2[1] - uv1[1]); - if(fabs(A) > FLT_EPSILON) { + if(fabsf(A) > FLT_EPSILON) { A= 0.5f/A; d1= uv2[1] - uv3[1]; @@ -2532,8 +2532,8 @@ static void shade_tface(BakeShade *bs) * where a pixel gets in between 2 faces or the middle of a quad, * camera aligned quads also have this problem but they are less common. * Add a small offset to the UVs, fixes bug #18685 - Campbell */ - vec[a][0]= tface->uv[a][0]*(float)bs->rectx - (0.5f + 0.001); - vec[a][1]= tface->uv[a][1]*(float)bs->recty - (0.5f + 0.002); + vec[a][0]= tface->uv[a][0]*(float)bs->rectx - (0.5f + 0.001f); + vec[a][1]= tface->uv[a][1]*(float)bs->recty - (0.5f + 0.002f); } /* UV indices have to be corrected for possible quad->tria splits */ diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index 456162d2d30..0c5ad0475ab 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -943,13 +943,13 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f float tin, tr, tg, tb, ta; float xn, yn, zn, texvec[3], hoco[4], hoco1[4]; - if(hasize==0.0) return NULL; + if(hasize==0.0f) return NULL; projectverto(vec, re->winmat, hoco); - if(hoco[3]==0.0) return NULL; + if(hoco[3]==0.0f) return NULL; if(vec1) { projectverto(vec1, re->winmat, hoco1); - if(hoco1[3]==0.0) return NULL; + if(hoco1[3]==0.0f) return NULL; } har= RE_findOrAddHalo(obr, obr->tothalo++); @@ -959,8 +959,8 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f /* actual projectvert is done in function project_renderdata() because of parts/border/pano */ /* we do it here for sorting of halos */ zn= hoco[3]; - har->xs= 0.5*re->winx*(hoco[0]/zn); - har->ys= 0.5*re->winy*(hoco[1]/zn); + har->xs= 0.5f*re->winx*(hoco[0]/zn); + har->ys= 0.5f*re->winy*(hoco[1]/zn); har->zs= 0x7FFFFF*(hoco[2]/zn); har->zBufDist = 0x7FFFFFFF*(hoco[2]/zn); @@ -970,16 +970,16 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f har->type |= HA_VECT; - xn= har->xs - 0.5*re->winx*(hoco1[0]/hoco1[3]); - yn= har->ys - 0.5*re->winy*(hoco1[1]/hoco1[3]); - if(xn==0.0 || (xn==0.0 && yn==0.0)) zn= 0.0; + xn= har->xs - 0.5f*re->winx*(hoco1[0]/hoco1[3]); + yn= har->ys - 0.5f*re->winy*(hoco1[1]/hoco1[3]); + if(xn==0.0f || (xn==0.0f && yn==0.0f)) zn= 0.0f; else zn= atan2(yn, xn); har->sin= sin(zn); har->cos= cos(zn); zn= len_v3v3(vec1, vec); - har->hasize= vectsize*zn + (1.0-vectsize)*hasize; + har->hasize= vectsize*zn + (1.0f-vectsize)*hasize; sub_v3_v3v3(har->no, vec, vec1); normalize_v3(har->no); @@ -991,7 +991,7 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f har->r= ma->r; har->g= ma->g; har->b= ma->b; - har->add= (255.0*ma->add); + har->add= (255.0f*ma->add); har->mat= ma; har->hard= ma->har; har->seed= seed % 256; @@ -1032,7 +1032,7 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f zn= tin*mtex->alphafac; if(mtex->mapto & MAP_COL) { - zn= 1.0-yn; + zn= 1.0f-yn; har->r= (yn*tr+ zn*ma->r); har->g= (yn*tg+ zn*ma->g); har->b= (yn*tb+ zn*ma->b); @@ -1057,13 +1057,13 @@ HaloRen *RE_inithalo_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Mater float xn, yn, zn, texvec[3], hoco[4], hoco1[4], in[3],tex[3],out[3]; int i, hasrgb; - if(hasize==0.0) return NULL; + if(hasize==0.0f) return NULL; projectverto(vec, re->winmat, hoco); - if(hoco[3]==0.0) return NULL; + if(hoco[3]==0.0f) return NULL; if(vec1) { projectverto(vec1, re->winmat, hoco1); - if(hoco1[3]==0.0) return NULL; + if(hoco1[3]==0.0f) return NULL; } har= RE_findOrAddHalo(obr, obr->tothalo++); @@ -1073,8 +1073,8 @@ HaloRen *RE_inithalo_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Mater /* actual projectvert is done in function project_renderdata() because of parts/border/pano */ /* we do it here for sorting of halos */ zn= hoco[3]; - har->xs= 0.5*re->winx*(hoco[0]/zn); - har->ys= 0.5*re->winy*(hoco[1]/zn); + har->xs= 0.5f*re->winx*(hoco[0]/zn); + har->ys= 0.5f*re->winy*(hoco[1]/zn); har->zs= 0x7FFFFF*(hoco[2]/zn); har->zBufDist = 0x7FFFFFFF*(hoco[2]/zn); @@ -1084,16 +1084,16 @@ HaloRen *RE_inithalo_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Mater har->type |= HA_VECT; - xn= har->xs - 0.5*re->winx*(hoco1[0]/hoco1[3]); - yn= har->ys - 0.5*re->winy*(hoco1[1]/hoco1[3]); - if(xn==0.0 || (xn==0.0 && yn==0.0)) zn= 0.0; + xn= har->xs - 0.5f*re->winx*(hoco1[0]/hoco1[3]); + yn= har->ys - 0.5f*re->winy*(hoco1[1]/hoco1[3]); + if(xn==0.0f || (xn==0.0f && yn==0.0f)) zn= 0.0; else zn= atan2(yn, xn); har->sin= sin(zn); har->cos= cos(zn); - zn= len_v3v3(vec1, vec)*0.5; + zn= len_v3v3(vec1, vec)*0.5f; - har->hasize= vectsize*zn + (1.0-vectsize)*hasize; + har->hasize= vectsize*zn + (1.0f-vectsize)*hasize; sub_v3_v3v3(har->no, vec, vec1); normalize_v3(har->no); @@ -1105,7 +1105,7 @@ HaloRen *RE_inithalo_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Mater har->r= ma->r; har->g= ma->g; har->b= ma->b; - har->add= (255.0*ma->add); + har->add= (255.0f*ma->add); har->mat= ma; har->hard= ma->har; har->seed= seed % 256; @@ -1185,13 +1185,13 @@ HaloRen *RE_inithalo_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Mater if(mtex->mapto & MAP_ALPHA) har->alfa = texture_value_blend(mtex->def_var,har->alfa,tin,mtex->alphafac,mtex->blendtype); if(mtex->mapto & MAP_HAR) - har->hard = 1.0+126.0*texture_value_blend(mtex->def_var,((float)har->hard)/127.0,tin,mtex->hardfac,mtex->blendtype); + har->hard = 1.0f+126.0f*texture_value_blend(mtex->def_var,((float)har->hard)/127.0f,tin,mtex->hardfac,mtex->blendtype); if(mtex->mapto & MAP_RAYMIRR) - har->hasize = 100.0*texture_value_blend(mtex->def_var,har->hasize/100.0,tin,mtex->raymirrfac,mtex->blendtype); + har->hasize = 100.0f*texture_value_blend(mtex->def_var,har->hasize/100.0f,tin,mtex->raymirrfac,mtex->blendtype); if(mtex->mapto & MAP_TRANSLU) { - float add = texture_value_blend(mtex->def_var,(float)har->add/255.0,tin,mtex->translfac,mtex->blendtype); + float add = texture_value_blend(mtex->def_var,(float)har->add/255.0f,tin,mtex->translfac,mtex->blendtype); CLAMP(add, 0.f, 1.f); - har->add = 255.0*add; + har->add = 255.0f*add; } /* now what on earth is this good for?? */ //if(mtex->texco & 16) { @@ -1270,24 +1270,24 @@ void project_renderdata(Render *re, void (*projectfunc)(float *, float mat[][4], projectfunc(vec, re->winmat, hoco); /* we clip halos less critical, but not for the Z */ - hoco[0]*= 0.5; - hoco[1]*= 0.5; + hoco[0]*= 0.5f; + hoco[1]*= 0.5f; if( panotestclip(re, do_pano, hoco) ) { har->miny= har->maxy= -10000; /* that way render clips it */ } - else if(hoco[3]<0.0) { + else if(hoco[3]<0.0f) { har->miny= har->maxy= -10000; /* render clips it */ } else /* do the projection...*/ { /* bring back hocos */ - hoco[0]*= 2.0; - hoco[1]*= 2.0; + hoco[0]*= 2.0f; + hoco[1]*= 2.0f; zn= hoco[3]; - har->xs= 0.5*re->winx*(1.0+hoco[0]/zn); /* the 0.5 negates the previous 2...*/ - har->ys= 0.5*re->winy*(1.0+hoco[1]/zn); + har->xs= 0.5f*re->winx*(1.0f+hoco[0]/zn); /* the 0.5 negates the previous 2...*/ + har->ys= 0.5f*re->winy*(1.0f+hoco[1]/zn); /* this should be the zbuffer coordinate */ har->zs= 0x7FFFFF*(hoco[2]/zn); @@ -1298,11 +1298,11 @@ void project_renderdata(Render *re, void (*projectfunc)(float *, float mat[][4], projectfunc(vec, re->winmat, hoco); vec[0]-= har->hasize; zn= hoco[3]; - har->rad= fabs(har->xs- 0.5*re->winx*(1.0+hoco[0]/zn)); + har->rad= fabsf(har->xs- 0.5f*re->winx*(1.0f+hoco[0]/zn)); /* this clip is not really OK, to prevent stars to become too large */ if(har->type & HA_ONLYSKY) { - if(har->rad>3.0) har->rad= 3.0; + if(har->rad>3.0f) har->rad= 3.0f; } har->radsq= har->rad*har->rad; diff --git a/source/blender/render/intern/source/shadbuf.c b/source/blender/render/intern/source/shadbuf.c index dcb9a3063e1..5860c395b07 100644 --- a/source/blender/render/intern/source/shadbuf.c +++ b/source/blender/render/intern/source/shadbuf.c @@ -260,7 +260,7 @@ static int compress_deepsamples(DeepSample *dsample, int tot, float epsilon) } else { /* compute visibility at center between slopes at z */ - slope= (slopemin+slopemax)*0.5; + slope= (slopemin+slopemax)*0.5f; v= newds->v + slope*((z - newds->z)/(double)0x7FFFFFFF); } @@ -774,7 +774,7 @@ void makeshadowbuf(Render *re, LampRen *lar) angle= saacos(lar->spotsi); temp= 0.5f*shb->size*cos(angle)/sin(angle); shb->pixsize= (shb->d)/temp; - wsize= shb->pixsize*(shb->size/2.0); + wsize= shb->pixsize*(shb->size/2.0f); perspective_m4( shb->winmat,-wsize, wsize, -wsize, wsize, shb->d, shb->clipend); mul_m4_m4m4(shb->persmat, shb->viewmat, shb->winmat); @@ -1094,7 +1094,7 @@ static float readshadowbuf(ShadBuf *shb, ShadSampleBuf *shsample, int bias, int else { /* soft area */ temp= ( (float)(zs- zsamp) )/(float)bias; - return 1.0 - temp*temp; + return 1.0f - temp*temp; } } @@ -1287,7 +1287,7 @@ static float readshadowbuf_halo(ShadBuf *shb, ShadSampleBuf *shsample, int xs, i /* soft area */ temp= ( (float)(zs- zsamp) )/(float)bias; - return 1.0 - temp*temp; + return 1.0f - temp*temp; } @@ -1303,15 +1303,15 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) int x, y, z, xs1, ys1; int dx = 0, dy = 0; - siz= 0.5*(float)shb->size; + siz= 0.5f*(float)shb->size; co[0]= p1[0]; co[1]= p1[1]; co[2]= p1[2]/lar->sh_zfac; co[3]= 1.0; mul_m4_v4(shb->winmat, co); /* rational hom co */ - xf1= siz*(1.0+co[0]/co[3]); - yf1= siz*(1.0+co[1]/co[3]); + xf1= siz*(1.0f+co[0]/co[3]); + yf1= siz*(1.0f+co[1]/co[3]); zf1= (co[2]/co[3]); @@ -1320,8 +1320,8 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) co[2]= p2[2]/lar->sh_zfac; co[3]= 1.0; mul_m4_v4(shb->winmat, co); /* rational hom co */ - xf2= siz*(1.0+co[0]/co[3]); - yf2= siz*(1.0+co[1]/co[3]); + xf2= siz*(1.0f+co[0]/co[3]); + yf2= siz*(1.0f+co[1]/co[3]); zf2= (co[2]/co[3]); /* the 2dda (a pixel line formula) */ @@ -1330,8 +1330,8 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) ys1= (int)yf1; if(xf1 != xf2) { - if(xf2-xf1 > 0.0) { - labdax= (xf1-xs1-1.0)/(xf1-xf2); + if(xf2-xf1 > 0.0f) { + labdax= (xf1-xs1-1.0f)/(xf1-xf2); ldx= -shb->shadhalostep/(xf1-xf2); dx= shb->shadhalostep; } @@ -1347,8 +1347,8 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) } if(yf1 != yf2) { - if(yf2-yf1 > 0.0) { - labday= (yf1-ys1-1.0)/(yf1-yf2); + if(yf2-yf1 > 0.0f) { + labday= (yf1-ys1-1.0f)/(yf1-yf2); ldy= -shb->shadhalostep/(yf1-yf2); dy= shb->shadhalostep; } @@ -1389,16 +1389,16 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) } labda= MIN2(labdax, labday); - if(labda==labdao || labda>=1.0) break; + if(labda==labdao || labda>=1.0f) break; zf= zf1 + labda*(zf2-zf1); count+= (float)shb->totbuf; - if(zf<= -1.0) lightcount += 1.0; /* close to the spot */ + if(zf<= -1.0f) lightcount += 1.0f; /* close to the spot */ else { /* make sure, behind the clipend we extend halolines. */ - if(zf>=1.0) z= 0x7FFFF000; + if(zf>=1.0f) z= 0x7FFFF000; else z= (int)(0x7FFFF000*zf); for(shsample= shb->buffers.first; shsample; shsample= shsample->next) @@ -1407,8 +1407,8 @@ float shadow_halo(LampRen *lar, float *p1, float *p2) } } - if(count!=0.0) return (lightcount/count); - return 0.0; + if(count!=0.0f) return (lightcount/count); + return 0.0f; } @@ -2081,11 +2081,11 @@ static int viewpixel_to_lampbuf(ShadBuf *shb, ObjectInstanceRen *obi, VlakRen *v /* ortho viewplane cannot intersect using view vector originating in (0,0,0) */ if(R.r.mode & R_ORTHO) { /* x and y 3d coordinate can be derived from pixel coord and winmat */ - float fx= 2.0/(R.winx*R.winmat[0][0]); - float fy= 2.0/(R.winy*R.winmat[1][1]); + float fx= 2.0f/(R.winx*R.winmat[0][0]); + float fy= 2.0f/(R.winy*R.winmat[1][1]); - hoco[0]= (x - 0.5*R.winx)*fx - R.winmat[3][0]/R.winmat[0][0]; - hoco[1]= (y - 0.5*R.winy)*fy - R.winmat[3][1]/R.winmat[1][1]; + hoco[0]= (x - 0.5f*R.winx)*fx - R.winmat[3][0]/R.winmat[0][0]; + hoco[1]= (y - 0.5f*R.winy)*fy - R.winmat[3][1]/R.winmat[1][1]; /* using a*x + b*y + c*z = d equation, (a b c) is normal */ if(nor[2]!=0.0f) @@ -2141,9 +2141,9 @@ static void isb_add_shadfac(ISBShadfacA **isbsapp, MemArena *mem, int obi, int f /* in osa case, the samples were filled in with factor 1.0/R.osa. if fewer samples we have to correct */ if(R.osa) - shadfacf= ((float)shadfac*R.osa)/(4096.0*samples); + shadfacf= ((float)shadfac*R.osa)/(4096.0f*samples); else - shadfacf= ((float)shadfac)/(4096.0); + shadfacf= ((float)shadfac)/(4096.0f); new= BLI_memarena_alloc(mem, sizeof(ISBShadfacA)); new->obi= obi; @@ -2640,4 +2640,3 @@ void ISB_free(RenderPart *pa) } } } - diff --git a/source/blender/render/intern/source/sss.c b/source/blender/render/intern/source/sss.c index f7d1b43d4f7..0ba13b31c4b 100644 --- a/source/blender/render/intern/source/sss.c +++ b/source/blender/render/intern/source/sss.c @@ -172,7 +172,7 @@ static float f_Rd(float alpha_, float A, float ro) float sq; sq= sqrt(3.0f*(1.0f - alpha_)); - return (alpha_/2.0f)*(1.0f + exp((-4.0f/3.0f)*A*sq))*exp(-sq) - ro; + return (alpha_/2.0f)*(1.0f + expf((-4.0f/3.0f)*A*sq))*expf(-sq) - ro; } static float compute_reduced_albedo(ScatterSettings *ss) @@ -189,10 +189,10 @@ static float compute_reduced_albedo(ScatterSettings *ss) for(i= 0; i < max_iteration_count; i++) { fsub= (fxn - fxn_1); - if(fabs(fsub) < tolerance) + if(fabsf(fsub) < tolerance) break; d= ((xn - xn_1)/fsub)*fxn; - if(fabs(d) < tolerance) + if(fabsf(d) < tolerance) break; xn_1= xn; @@ -221,10 +221,10 @@ static float Rd_rsquare(ScatterSettings *ss, float rr) sr= sqrt(rr + ss->zr*ss->zr); sv= sqrt(rr + ss->zv*ss->zv); - Rdr= ss->zr*(1.0f + ss->sigma*sr)*exp(-ss->sigma*sr)/(sr*sr*sr); - Rdv= ss->zv*(1.0f + ss->sigma*sv)*exp(-ss->sigma*sv)/(sv*sv*sv); + Rdr= ss->zr*(1.0f + ss->sigma*sr)*expf(-ss->sigma*sr)/(sr*sr*sr); + Rdv= ss->zv*(1.0f + ss->sigma*sv)*expf(-ss->sigma*sv)/(sv*sv*sv); - return /*ss->alpha_*/(1.0f/(4.0f*M_PI))*(Rdr + Rdv); + return /*ss->alpha_*/(1.0f/(4.0f*(float)M_PI))*(Rdr + Rdv); } static float Rd(ScatterSettings *ss, float r) @@ -316,7 +316,7 @@ ScatterSettings *scatter_settings_new(float refl, float radius, float ior, float ss->alpha_= compute_reduced_albedo(ss); ss->sigma= 1.0f/ss->ld; - ss->sigma_t_= ss->sigma/sqrt(3.0f*(1.0f - ss->alpha_)); + ss->sigma_t_= ss->sigma/sqrtf(3.0f*(1.0f - ss->alpha_)); ss->sigma_s_= ss->alpha_*ss->sigma_t_; ss->sigma_a= ss->sigma_t_ - ss->sigma_s_; @@ -489,7 +489,7 @@ static void sum_leaf_radiance(ScatterTree *UNUSED(tree), ScatterNode *node) for(i=0; itotpoint; i++) { p= &node->points[i]; - rad= p->area*fabs(p->rad[0] + p->rad[1] + p->rad[2]); + rad= p->area*fabsf(p->rad[0] + p->rad[1] + p->rad[2]); totrad += rad; node->co[0] += rad*p->co[0]; @@ -513,20 +513,20 @@ static void sum_leaf_radiance(ScatterTree *UNUSED(tree), ScatterNode *node) } if(node->area > 1e-16f) { - inv= 1.0/node->area; + inv= 1.0f/node->area; node->rad[0] *= inv; node->rad[1] *= inv; node->rad[2] *= inv; } if(node->backarea > 1e-16f) { - inv= 1.0/node->backarea; + inv= 1.0f/node->backarea; node->backrad[0] *= inv; node->backrad[1] *= inv; node->backrad[2] *= inv; } if(totrad > 1e-16f) { - inv= 1.0/totrad; + inv= 1.0f/totrad; node->co[0] *= inv; node->co[1] *= inv; node->co[2] *= inv; @@ -566,8 +566,8 @@ static void sum_branch_radiance(ScatterTree *UNUSED(tree), ScatterNode *node) subnode= node->child[i]; - rad= subnode->area*fabs(subnode->rad[0] + subnode->rad[1] + subnode->rad[2]); - rad += subnode->backarea*fabs(subnode->backrad[0] + subnode->backrad[1] + subnode->backrad[2]); + rad= subnode->area*fabsf(subnode->rad[0] + subnode->rad[1] + subnode->rad[2]); + rad += subnode->backarea*fabsf(subnode->backrad[0] + subnode->backrad[1] + subnode->backrad[2]); totrad += rad; node->co[0] += rad*subnode->co[0]; @@ -587,20 +587,20 @@ static void sum_branch_radiance(ScatterTree *UNUSED(tree), ScatterNode *node) } if(node->area > 1e-16f) { - inv= 1.0/node->area; + inv= 1.0f/node->area; node->rad[0] *= inv; node->rad[1] *= inv; node->rad[2] *= inv; } if(node->backarea > 1e-16f) { - inv= 1.0/node->backarea; + inv= 1.0f/node->backarea; node->backrad[0] *= inv; node->backrad[1] *= inv; node->backrad[2] *= inv; } if(totrad > 1e-16f) { - inv= 1.0/totrad; + inv= 1.0f/totrad; node->co[0] *= inv; node->co[1] *= inv; node->co[2] *= inv; @@ -668,9 +668,9 @@ static void create_octree_node(ScatterTree *tree, ScatterNode *node, float *mid, return; } - subsize[0]= size[0]*0.5; - subsize[1]= size[1]*0.5; - subsize[2]= size[2]*0.5; + subsize[0]= size[0]*0.5f; + subsize[1]= size[1]*0.5f; + subsize[2]= size[2]*0.5f; node->split[0]= mid[0]; node->split[1]= mid[1]; @@ -764,7 +764,7 @@ ScatterTree *scatter_tree_new(ScatterSettings *ss[3], float scale, float error, for(i=0; iscale*tree->scale); + points[i].area= fabsf(area[i])/(tree->scale*tree->scale); points[i].back= (area[i] < 0.0f); mul_v3_fl(points[i].co, 1.0f/tree->scale); @@ -794,13 +794,13 @@ void scatter_tree_build(ScatterTree *tree) tree->root->points= newpoints; tree->root->totpoint= totpoint; - mid[0]= (tree->min[0]+tree->max[0])*0.5; - mid[1]= (tree->min[1]+tree->max[1])*0.5; - mid[2]= (tree->min[2]+tree->max[2])*0.5; + mid[0]= (tree->min[0]+tree->max[0])*0.5f; + mid[1]= (tree->min[1]+tree->max[1])*0.5f; + mid[2]= (tree->min[2]+tree->max[2])*0.5f; - size[0]= (tree->max[0]-tree->min[0])*0.5; - size[1]= (tree->max[1]-tree->min[1])*0.5; - size[2]= (tree->max[2]-tree->min[2])*0.5; + size[0]= (tree->max[0]-tree->min[0])*0.5f; + size[1]= (tree->max[1]-tree->min[1])*0.5f; + size[2]= (tree->max[2]-tree->min[2])*0.5f; create_octree_node(tree, tree->root, mid, size, tree->refpoints, 0); diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c index 72cb35e7827..840e5444ff0 100644 --- a/source/blender/render/intern/source/strand.c +++ b/source/blender/render/intern/source/strand.c @@ -78,9 +78,9 @@ static float strand_eval_width(Material *ma, float strandco) if(ma->strand_ease!=0.0f) { if(ma->strand_ease<0.0f) - fac= pow(strandco, 1.0+ma->strand_ease); + fac= pow(strandco, 1.0f+ma->strand_ease); else - fac= pow(strandco, 1.0/(1.0f-ma->strand_ease)); + fac= pow(strandco, 1.0f/(1.0f-ma->strand_ease)); } else fac= strandco; @@ -816,8 +816,8 @@ int zbuffer_strands_abuf(Render *re, RenderPart *pa, APixstrand *apixbuf, ListBa zbuf_alloc_span(&zspan, pa->rectx, pa->recty, clipcrop); /* needed for transform from hoco to zbuffer co */ - zspan.zmulx= ((float)winx)/2.0; - zspan.zmuly= ((float)winy)/2.0; + zspan.zmulx= ((float)winx)/2.0f; + zspan.zmuly= ((float)winy)/2.0f; zspan.zofsx= -pa->disprect.xmin; zspan.zofsy= -pa->disprect.ymin; diff --git a/source/blender/render/intern/source/sunsky.c b/source/blender/render/intern/source/sunsky.c index 5877fa42292..e824b81096b 100644 --- a/source/blender/render/intern/source/sunsky.c +++ b/source/blender/render/intern/source/sunsky.c @@ -68,12 +68,12 @@ * */ void ClipColor(float c[3]) { - if (c[0] > 1.0) c[0] = 1.0; - if (c[0] < 0.0) c[0] = 0.0; - if (c[1] > 1.0) c[1] = 1.0; - if (c[1] < 0.0) c[1] = 0.0; - if (c[2] > 1.0) c[2] = 1.0; - if (c[2] < 0.0) c[2] = 0.0; + if (c[0] > 1.0f) c[0] = 1.0f; + if (c[0] < 0.0f) c[0] = 0.0f; + if (c[1] > 1.0f) c[1] = 1.0f; + if (c[1] < 0.0f) c[1] = 0.0f; + if (c[2] > 1.0f) c[2] = 1.0f; + if (c[2] < 0.0f) c[2] = 0.0f; } /** @@ -85,9 +85,9 @@ static float AngleBetween(float thetav, float phiv, float theta, float phi) { float cospsi = sin(thetav) * sin(theta) * cos(phi - phiv) + cos(thetav) * cos(theta); - if (cospsi > 1.0) + if (cospsi > 1.0f) return 0; - if (cospsi < -1.0) + if (cospsi < -1.0f) return M_PI; return acos(cospsi); @@ -117,11 +117,11 @@ static float PerezFunction(struct SunSky *sunsky, const float *lam, float theta, { float den, num; - den = ((1 + lam[0] * exp(lam[1])) * - (1 + lam[2] * exp(lam[3] * sunsky->theta) + lam[4] * cos(sunsky->theta) * cos(sunsky->theta))); + den = ((1 + lam[0] * expf(lam[1])) * + (1 + lam[2] * expf(lam[3] * sunsky->theta) + lam[4] * cosf(sunsky->theta) * cosf(sunsky->theta))); - num = ((1 + lam[0] * exp(lam[1] / cos(theta))) * - (1 + lam[2] * exp(lam[3] * gamma) + lam[4] * cos(gamma) * cos(gamma))); + num = ((1 + lam[0] * expf(lam[1] / cosf(theta))) * + (1 + lam[2] * expf(lam[3] * gamma) + lam[4] * cosf(gamma) * cosf(gamma))); return(lvz * num / den);} @@ -173,41 +173,41 @@ void InitSunSky(struct SunSky *sunsky, float turb, float *toSun, float horizon_b T = turb; T2 = turb*turb; - chi = (4.0 / 9.0 - T / 120.0) * (M_PI - 2 * sunsky->theta); - sunsky->zenith_Y = (4.0453 * T - 4.9710) * tan(chi) - .2155 * T + 2.4192; + chi = (4.0f / 9.0f - T / 120.0f) * ((float)M_PI - 2.0f * sunsky->theta); + sunsky->zenith_Y = (4.0453f * T - 4.9710f) * tanf(chi) - 0.2155f * T + 2.4192f; sunsky->zenith_Y *= 1000; // conversion from kcd/m^2 to cd/m^2 if (sunsky->zenith_Y<=0) sunsky->zenith_Y = 1e-6; sunsky->zenith_x = - ( + 0.00165 * theta3 - 0.00374 * theta2 + 0.00208 * sunsky->theta + 0) * T2 + - ( -0.02902 * theta3 + 0.06377 * theta2 - 0.03202 * sunsky->theta + 0.00394) * T + - ( + 0.11693 * theta3 - 0.21196 * theta2 + 0.06052 * sunsky->theta + 0.25885); + ( + 0.00165f * theta3 - 0.00374f * theta2 + 0.00208f * sunsky->theta + 0.0f) * T2 + + ( -0.02902f * theta3 + 0.06377f * theta2 - 0.03202f * sunsky->theta + 0.00394f) * T + + ( + 0.11693f * theta3 - 0.21196f * theta2 + 0.06052f * sunsky->theta + 0.25885f); sunsky->zenith_y = - ( + 0.00275 * theta3 - 0.00610 * theta2 + 0.00316 * sunsky->theta + 0) * T2 + - ( -0.04214 * theta3 + 0.08970 * theta2 - 0.04153 * sunsky->theta + 0.00515) * T + - ( + 0.15346 * theta3 - 0.26756 * theta2 + 0.06669 * sunsky->theta + 0.26688); + ( + 0.00275f * theta3 - 0.00610f * theta2 + 0.00316f * sunsky->theta + 0.0f) * T2 + + ( -0.04214f * theta3 + 0.08970f * theta2 - 0.04153f * sunsky->theta + 0.00515f) * T + + ( + 0.15346f * theta3 - 0.26756f * theta2 + 0.06669f * sunsky->theta + 0.26688f); - sunsky->perez_Y[0] = 0.17872 * T - 1.46303; - sunsky->perez_Y[1] = -0.35540 * T + 0.42749; - sunsky->perez_Y[2] = -0.02266 * T + 5.32505; - sunsky->perez_Y[3] = 0.12064 * T - 2.57705; - sunsky->perez_Y[4] = -0.06696 * T + 0.37027; - - sunsky->perez_x[0] = -0.01925 * T - 0.25922; - sunsky->perez_x[1] = -0.06651 * T + 0.00081; - sunsky->perez_x[2] = -0.00041 * T + 0.21247; - sunsky->perez_x[3] = -0.06409 * T - 0.89887; - sunsky->perez_x[4] = -0.00325 * T + 0.04517; - - sunsky->perez_y[0] = -0.01669 * T - 0.26078; - sunsky->perez_y[1] = -0.09495 * T + 0.00921; - sunsky->perez_y[2] = -0.00792 * T + 0.21023; - sunsky->perez_y[3] = -0.04405 * T - 1.65369; - sunsky->perez_y[4] = -0.01092 * T + 0.05291; + sunsky->perez_Y[0] = 0.17872f * T - 1.46303f; + sunsky->perez_Y[1] = -0.35540f * T + 0.42749f; + sunsky->perez_Y[2] = -0.02266f * T + 5.32505f; + sunsky->perez_Y[3] = 0.12064f * T - 2.57705f; + sunsky->perez_Y[4] = -0.06696f * T + 0.37027f; + + sunsky->perez_x[0] = -0.01925f * T - 0.25922f; + sunsky->perez_x[1] = -0.06651f * T + 0.00081f; + sunsky->perez_x[2] = -0.00041f * T + 0.21247f; + sunsky->perez_x[3] = -0.06409f * T - 0.89887f; + sunsky->perez_x[4] = -0.00325f * T + 0.04517f; + + sunsky->perez_y[0] = -0.01669f * T - 0.26078f; + sunsky->perez_y[1] = -0.09495f * T + 0.00921f; + sunsky->perez_y[2] = -0.00792f * T + 0.21023f; + sunsky->perez_y[3] = -0.04405f * T - 1.65369f; + sunsky->perez_y[4] = -0.01092f * T + 0.05291f; /* suggested by glome in * http://projects.blender.org/tracker/?func=detail&atid=127&aid=8063&group_id=9*/ @@ -248,17 +248,17 @@ void GetSkyXYZRadiance(struct SunSky* sunsky, float theta, float phi, float colo float hfade=1, nfade=1; - if (theta>(0.5*M_PI)) { - hfade = 1.0-(theta*M_1_PI-0.5)*2.0; - hfade = hfade*hfade*(3.0-2.0*hfade); + if (theta>(0.5f*(float)M_PI)) { + hfade = 1.0f-(theta*(float)M_1_PI-0.5f)*2.0f; + hfade = hfade*hfade*(3.0f-2.0f*hfade); theta = 0.5*M_PI; } - if (sunsky->theta>(0.5*M_PI)) { - if (theta<=0.5*M_PI) { - nfade = 1.0-(0.5-theta*M_1_PI)*2.0; - nfade *= 1.0-(sunsky->theta*M_1_PI-0.5)*2.0; - nfade = nfade*nfade*(3.0-2.0*nfade); + if (sunsky->theta>(0.5f*(float)M_PI)) { + if (theta<=0.5f*(float)M_PI) { + nfade = 1.0f-(0.5f-theta*(float)M_1_PI)*2.0f; + nfade *= 1.0f-(sunsky->theta*(float)M_1_PI-0.5f)*2.0f; + nfade = nfade*nfade*(3.0f-2.0f*nfade); } } @@ -267,7 +267,7 @@ void GetSkyXYZRadiance(struct SunSky* sunsky, float theta, float phi, float colo // Compute xyY values x = PerezFunction(sunsky, sunsky->perez_x, theta, gamma, sunsky->zenith_x); y = PerezFunction(sunsky, sunsky->perez_y, theta, gamma, sunsky->zenith_y); - Y = 6.666666667e-5 * nfade * hfade * PerezFunction(sunsky, sunsky->perez_Y, theta, gamma, sunsky->zenith_Y); + Y = 6.666666667e-5f * nfade * hfade * PerezFunction(sunsky, sunsky->perez_Y, theta, gamma, sunsky->zenith_Y); if(sunsky->sky_exposure!=0.0f) Y = 1.0 - exp(Y*sunsky->sky_exposure); @@ -296,8 +296,8 @@ void GetSkyXYZRadiancef(struct SunSky* sunsky, const float varg[3], float color_ copy_v3_v3(v, (float*)varg); normalize_v3(v); - if (v[2] < 0.001){ - v[2] = 0.001; + if (v[2] < 0.001f) { + v[2] = 0.001f; normalize_v3(v); } @@ -329,15 +329,15 @@ static void ComputeAttenuatedSunlight(float theta, int turbidity, float fTau[3]) fAlpha = 1.3f; fBeta = 0.04608365822050f * turbidity - 0.04586025928522f; - m = 1.0/(cos(theta) + 0.15f*pow(93.885f-theta/M_PI*180.0f,-1.253f)); + m = 1.0f/(cosf(theta) + 0.15f*powf(93.885f-theta/(float)M_PI*180.0f,-1.253f)); for(i = 0; i < 3; i++) { // Rayleigh Scattering - fTauR = exp( -m * 0.008735f * pow(fLambda[i], (float)(-4.08f))); + fTauR = expf( -m * 0.008735f * powf(fLambda[i], (float)(-4.08f))); // Aerosal (water + dust) attenuation - fTauA = exp(-m * fBeta * pow(fLambda[i], -fAlpha)); + fTauA = exp(-m * fBeta * powf(fLambda[i], -fAlpha)); fTau[i] = fTauR * fTauA; } @@ -364,8 +364,8 @@ void InitAtmosphere(struct SunSky *sunSky, float sun_intens, float mief, float r const float pn = 0.035f; const float T = 2.0f; float fTemp, fTemp2, fTemp3, fBeta, fBetaDash; - float c = (6.544*T - 6.51)*1e-17; - float K[3] = {0.685f, 0.679f, 0.670f}; + float c = (6.544f*T - 6.51f)*1e-17f; + float K[3] = {0.685f, 0.679f, 0.670f}; float vBetaMieTemp[3]; float fLambda[3],fLambda2[3], fLambda4[3]; @@ -410,7 +410,7 @@ void InitAtmosphere(struct SunSky *sunSky, float sun_intens, float mief, float r // Mie scattering constants. - fTemp2 = 0.434*c*(2*pi)*(2*pi)*0.5f; + fTemp2 = 0.434f*c*(2*pi)*(2*pi)*0.5f; vec3opf(sunSky->atm_BetaDashMie, vLambda2, *, fTemp2); fTemp3 = 0.434f*c*pi*(2*pi)*(2*pi); @@ -460,7 +460,7 @@ void AtmospherePixleShader( struct SunSky* sunSky, float view[3], float s, float vec3opv(sunSky->atm_BetaRM, sunSky->atm_BetaRay, +, sunSky->atm_BetaMie); //e^(-(beta_1 + beta_2) * s) = E1 - vec3opf(E1, sunSky->atm_BetaRM, *, -s/M_LN2); + vec3opf(E1, sunSky->atm_BetaRM, *, -s/(float)M_LN2); E1[0] = exp(E1[0]); E1[1] = exp(E1[1]); E1[2] = exp(E1[2]); @@ -469,17 +469,17 @@ void AtmospherePixleShader( struct SunSky* sunSky, float view[3], float s, float //Phase2(theta) = (1-g^2)/(1+g-2g*cos(theta))^(3/2) fTemp = 1 + sunSky->atm_HGg - 2 * sunSky->atm_HGg * costheta; - fTemp = fTemp * sqrt(fTemp); + fTemp = fTemp * sqrtf(fTemp); Phase_2 = (1 - sunSky->atm_HGg * sunSky->atm_HGg)/fTemp; vec3opf(vTemp1, sunSky->atm_BetaDashRay, *, Phase_1); vec3opf(vTemp2, sunSky->atm_BetaDashMie, *, Phase_2); vec3opv(vTemp1, vTemp1, +, vTemp2); - fopvec3(vTemp2, 1.0, -, E1); + fopvec3(vTemp2, 1.0f, -, E1); vec3opv(vTemp1, vTemp1, *, vTemp2); - fopvec3(vTemp2, 1.0, / , sunSky->atm_BetaRM); + fopvec3(vTemp2, 1.0f, / , sunSky->atm_BetaRM); vec3opv(I, vTemp1, *, vTemp2); diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 13d9ead79e8..04e4ce2c647 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -217,24 +217,24 @@ static short cliptestf(float p, float q, float *u1, float *u2) { float r; - if(p<0.0) { + if(p<0.0f) { if(q*u2) return 0; else if(r>*u1) *u1=r; } } else { - if(p>0.0) { - if(q<0.0) return 0; + if(p>0.0f) { + if(q<0.0f) return 0; else if(q0.0) { + if(u1>0.0f) { v1[0]= v1[0]+u1*dx; v1[1]= v1[1]+u1*dy; v1[2]= v1[2]+u1*dz; @@ -898,8 +898,8 @@ void hoco_to_zco(ZSpan *zspan, float *zco, float *hoco) float div; div= 1.0f/hoco[3]; - zco[0]= zspan->zmulx*(1.0+hoco[0]*div) + zspan->zofsx; - zco[1]= zspan->zmuly*(1.0+hoco[1]*div) + zspan->zofsy; + zco[0]= zspan->zmulx*(1.0f+hoco[0]*div) + zspan->zofsx; + zco[1]= zspan->zmuly*(1.0f+hoco[1]*div) + zspan->zofsy; zco[2]= 0x7FFFFFFF *(hoco[2]*div); } @@ -1083,7 +1083,7 @@ static void zbuffillGLinv4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0) return; + if(z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1203,7 +1203,7 @@ static void zbuffillGL4(ZSpan *zspan, int obi, int zvlnr, float *v1, float *v2, y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0) return; + if(z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1330,7 +1330,7 @@ static void zbuffillGL_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), f y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0) return; + if(z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -1627,12 +1627,12 @@ static void clippyra(float *labda, float *v1, float *v2, int *b2, int *b3, int a if(cliptestf(-da-dw, v13+v1[a], &u1,&u2)) { if(cliptestf(da-dw, v13-v1[a], &u1,&u2)) { *b3=1; - if(u2<1.0) { + if(u2<1.0f) { labda[1]= u2; *b2=1; } else labda[1]=1.0; /* u2 */ - if(u1>0.0) { + if(u1>0.0f) { labda[0]= u1; *b2=1; } else labda[0]=0.0; @@ -1662,8 +1662,8 @@ static void makevertpyra(float *vez, float *labda, float **trias, float *v1, flo l1= labda[0]; l2= labda[1]; - if(l1!= -1.0) { - if(l1!= 0.0) { + if(l1!= -1.0f) { + if(l1!= 0.0f) { adr= vez+4*(*clve); trias[*b1]=adr; (*clve)++; @@ -1676,8 +1676,8 @@ static void makevertpyra(float *vez, float *labda, float **trias, float *v1, flo (*b1)++; } - if(l2!= -1.0) { - if(l2!= 1.0) { + if(l2!= -1.0f) { + if(l2!= 1.0f) { adr= vez+4*(*clve); trias[*b1]=adr; (*clve)++; @@ -2066,8 +2066,8 @@ void zbuffer_solid(RenderPart *pa, RenderLayer *rl, void(*fillfunc)(RenderPart*, zbuf_alloc_span(zspan, pa->rectx, pa->recty, R.clipcrop); /* needed for transform from hoco to zbuffer co */ - zspan->zmulx= ((float)R.winx)/2.0; - zspan->zmuly= ((float)R.winy)/2.0; + zspan->zmulx= ((float)R.winx)/2.0f; + zspan->zmuly= ((float)R.winy)/2.0f; if(R.osa) { zspan->zofsx= -pa->disprect.xmin - R.jit[pa->sample+zsample][0]; @@ -2290,8 +2290,8 @@ void zbuffer_shadow(Render *re, float winmat[][4], LampRen *lar, int *rectz, int /* 1.0f for clipping in clippyra()... bad stuff actually */ zbuf_alloc_span(&zspan, size, size, 1.0f); - zspan.zmulx= ((float)size)/2.0; - zspan.zmuly= ((float)size)/2.0; + zspan.zmulx= ((float)size)/2.0f; + zspan.zmuly= ((float)size)/2.0f; /* -0.5f to center the sample position */ zspan.zofsx= jitx - 0.5f; zspan.zofsy= jity - 0.5f; @@ -2527,8 +2527,8 @@ void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(vo zspan.sss_func= func; /* needed for transform from hoco to zbuffer co */ - zspan.zmulx= ((float)R.winx)/2.0; - zspan.zmuly= ((float)R.winy)/2.0; + zspan.zmulx= ((float)R.winx)/2.0f; + zspan.zmuly= ((float)R.winy)/2.0f; /* -0.5f to center the sample position */ zspan.zofsx= -pa->disprect.xmin - 0.5f; @@ -2671,7 +2671,7 @@ static void zbuf_fill_in_rgba(ZSpan *zspan, DrawBufPixel *col, float *v1, float y0= z1*x2-x1*z2; z0= x1*y2-y1*x2; - if(z0==0.0) return; + if(z0==0.0f) return; xx1= (x0*v1[0] + y0*v1[1])/z0 + v1[2]; @@ -2840,8 +2840,8 @@ static void quad_bezier_2d(float *result, float *v1, float *v2, float *ipodata) p1[1]= v1[1]; /* official formula 2*p2 - .5*p1 - .5*p3 */ - p2[0]= -0.5*p1[0] - 0.5*p3[0]; - p2[1]= -0.5*p1[1] - 0.5*p3[1]; + p2[0]= -0.5f*p1[0] - 0.5f*p3[0]; + p2[1]= -0.5f*p1[1] - 0.5f*p3[1]; result[0]= ipodata[0]*p1[0] + ipodata[1]*p2[0] + ipodata[2]*p3[0]; result[1]= ipodata[0]*p1[1] + ipodata[1]*p2[1] + ipodata[2]*p3[1]; @@ -2871,8 +2871,8 @@ void RE_zbuf_accumulate_vecblur(NodeBlurData *nbd, int xsize, int ysize, float * char *rectmove, *dm; zbuf_alloc_span(&zspan, xsize, ysize, 1.0f); - zspan.zmulx= ((float)xsize)/2.0; - zspan.zmuly= ((float)ysize)/2.0; + zspan.zmulx= ((float)xsize)/2.0f; + zspan.zmuly= ((float)ysize)/2.0f; zspan.zofsx= 0.0f; zspan.zofsy= 0.0f; @@ -3258,8 +3258,8 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * zbuf_alloc_span(zspan, pa->rectx, pa->recty, re->clipcrop); /* needed for transform from hoco to zbuffer co */ - zspan->zmulx= ((float)winx)/2.0; - zspan->zmuly= ((float)winy)/2.0; + zspan->zmulx= ((float)winx)/2.0f; + zspan->zmuly= ((float)winy)/2.0f; /* the buffers */ zspan->arectz= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "Arectz"); @@ -3344,15 +3344,15 @@ static int zbuffer_abuf(Render *re, RenderPart *pa, APixstr *APixbuf, ListBase * if(partclip==0) { /* a little advantage for transp rendering (a z offset) */ - if(!shadow && ma->zoffs != 0.0) { + if(!shadow && ma->zoffs != 0.0f) { mul= 0x7FFFFFFF; - zval= mul*(1.0+ho1[2]/ho1[3]); + zval= mul*(1.0f+ho1[2]/ho1[3]); VECCOPY(vec, v1->co); /* z is negative, otherwise its being clipped */ vec[2]-= ma->zoffs; projectverto(vec, obwinmat, hoco); - fval= mul*(1.0+hoco[2]/hoco[3]); + fval= mul*(1.0f+hoco[2]/hoco[3]); polygon_offset= (int) fabs(zval - fval ); } @@ -4240,7 +4240,3 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas /* end of zbuf.c */ - - - - -- cgit v1.2.3 From be25346da68be9027757bef101562987483afd1c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 21 Aug 2011 07:08:15 +0000 Subject: Bugfix [#28308] Crashes when individual channels are moved in Action Editor --- .../blender/editors/animation/anim_channels_edit.c | 73 +++++++++++----------- 1 file changed, 38 insertions(+), 35 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index ffa0b2d5ff5..e993faa71aa 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1042,11 +1042,6 @@ static void rearrange_action_channels (bAnimContext *ac, bAction *act, short mod static int animchannels_rearrange_exec(bContext *C, wmOperator *op) { bAnimContext ac; - - ListBase anim_data = {NULL, NULL}; - bAnimListElem *ale; - int filter; - short mode; /* get editor data */ @@ -1056,43 +1051,51 @@ static int animchannels_rearrange_exec(bContext *C, wmOperator *op) /* get mode */ mode= RNA_enum_get(op->ptr, "direction"); - /* get animdata blocks */ - // XXX: hierarchy visibility is provisional atm... might be wrong decision! - filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_ANIMDATA); - ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - - for (ale = anim_data.first; ale; ale = ale->next) { - AnimData *adt= ale->data; + /* method to move channels depends on the editor */ + if (ac.datatype == ANIMCONT_GPENCIL) { + /* Grease Pencil channels */ + printf("Grease Pencil not supported for moving yet\n"); + } + else if (ac.datatype == ANIMCONT_ACTION) { + /* Directly rearrange action's channels */ + rearrange_action_channels(&ac, ac.data, mode); + } + else { + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; - switch (ac.datatype) { - case ANIMCONT_NLA: /* NLA-tracks only */ - rearrange_nla_channels(&ac, adt, mode); - break; + /* get animdata blocks */ + filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_ANIMDATA); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + for (ale = anim_data.first; ale; ale = ale->next) { + AnimData *adt= ale->data; - case ANIMCONT_DRIVERS: /* Drivers list only */ - rearrange_driver_channels(&ac, adt, mode); - break; - - case ANIMCONT_GPENCIL: /* Grease Pencil channels */ - // FIXME: this case probably needs to get moved out of here or treated specially... - printf("grease pencil not supported for moving yet\n"); - break; + switch (ac.datatype) { + case ANIMCONT_NLA: /* NLA-tracks only */ + rearrange_nla_channels(&ac, adt, mode); + break; - case ANIMCONT_SHAPEKEY: // DOUBLE CHECK ME... + case ANIMCONT_DRIVERS: /* Drivers list only */ + rearrange_driver_channels(&ac, adt, mode); + break; - default: /* some collection of actions */ - // FIXME: actions should only be considered once! - if (adt->action) - rearrange_action_channels(&ac, adt->action, mode); - else if (G.f & G_DEBUG) - printf("animdata has no action\n"); - break; + case ANIMCONT_SHAPEKEY: // DOUBLE CHECK ME... + + default: /* some collection of actions */ + if (adt->action) + rearrange_action_channels(&ac, adt->action, mode); + else if (G.f & G_DEBUG) + printf("Animdata has no action\n"); + break; + } } + + /* free temp data */ + BLI_freelistN(&anim_data); } - /* free temp data */ - BLI_freelistN(&anim_data); - /* send notifier that things have changed */ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL); -- cgit v1.2.3 From 8fcc8dd776d20d51d0e76a5cb0028c052b9dbfc3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 21 Aug 2011 10:14:21 +0000 Subject: fix for out of bounds array access for shaded drawing in the UI, remove alpha blending for uiDrawBoxShade and uiDrawBoxVerticalShade. --- source/blender/editors/interface/interface_draw.c | 48 +++++++++++------------ 1 file changed, 23 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index 97299a6a766..dd7d2ca765f 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -140,26 +140,25 @@ void uiDrawBox(int mode, float minx, float miny, float maxx, float maxy, float r glEnd(); } -static void round_box_shade_col(float *col1, float *col2, float fac) +static void round_box_shade_col(const float col1[3], float const col2[3], const float fac) { - float col[4]; + float col[3]; col[0]= (fac*col1[0] + (1.0f-fac)*col2[0]); col[1]= (fac*col1[1] + (1.0f-fac)*col2[1]); col[2]= (fac*col1[2] + (1.0f-fac)*col2[2]); - col[3]= (fac*col1[3] + (1.0f-fac)*col2[3]); - glColor4fv(col); + glColor3fv(col); } - /* linear horizontal shade within button or in outline */ /* view2d scrollers use it */ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, float rad, float shadetop, float shadedown) { float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293}, {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}}; - float div= maxy-miny; - float coltop[4], coldown[4], color[4]; + const float div= maxy - miny; + const float idiv= 1.0f / div; + float coltop[3], coldown[3], color[4]; int a; /* mult */ @@ -173,11 +172,9 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl coltop[0]= color[0]+shadetop; if(coltop[0]>1.0f) coltop[0]= 1.0f; coltop[1]= color[1]+shadetop; if(coltop[1]>1.0f) coltop[1]= 1.0f; coltop[2]= color[2]+shadetop; if(coltop[2]>1.0f) coltop[2]= 1.0f; - coltop[3]= color[3]; coldown[0]= color[0]+shadedown; if(coldown[0]<0.0f) coldown[0]= 0.0f; coldown[1]= color[1]+shadedown; if(coldown[1]<0.0f) coldown[1]= 0.0f; coldown[2]= color[2]+shadedown; if(coldown[2]<0.0f) coldown[2]= 0.0f; - coldown[3]= color[3]; glShadeModel(GL_SMOOTH); glBegin(mode); @@ -189,11 +186,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl glVertex2f(maxx-rad, miny); for(a=0; a<7; a++) { - round_box_shade_col(coltop, coldown, vec[a][1]/div); + round_box_shade_col(coltop, coldown, vec[a][1]*idiv); glVertex2f(maxx-rad+vec[a][0], miny+vec[a][1]); } - round_box_shade_col(coltop, coldown, rad/div); + round_box_shade_col(coltop, coldown, rad*idiv); glVertex2f(maxx, miny+rad); } else { @@ -204,11 +201,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl /* corner right-top */ if(roundboxtype & 2) { - round_box_shade_col(coltop, coldown, (div-rad)/div); + round_box_shade_col(coltop, coldown, (div-rad)*idiv); glVertex2f(maxx, maxy-rad); for(a=0; a<7; a++) { - round_box_shade_col(coltop, coldown, (div-rad+vec[a][1])/div); + round_box_shade_col(coltop, coldown, (div-rad+vec[a][1])*idiv); glVertex2f(maxx-vec[a][1], maxy-rad+vec[a][0]); } round_box_shade_col(coltop, coldown, 1.0); @@ -226,11 +223,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl glVertex2f(minx+rad, maxy); for(a=0; a<7; a++) { - round_box_shade_col(coltop, coldown, (div-vec[a][1])/div); + round_box_shade_col(coltop, coldown, (div-vec[a][1])*idiv); glVertex2f(minx+rad-vec[a][0], maxy-vec[a][1]); } - round_box_shade_col(coltop, coldown, (div-rad)/div); + round_box_shade_col(coltop, coldown, (div-rad)*idiv); glVertex2f(minx, maxy-rad); } else { @@ -241,11 +238,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl /* corner left-bottom */ if(roundboxtype & 8) { - round_box_shade_col(coltop, coldown, rad/div); + round_box_shade_col(coltop, coldown, rad*idiv); glVertex2f(minx, miny+rad); for(a=0; a<7; a++) { - round_box_shade_col(coltop, coldown, (rad-vec[a][1])/div); + round_box_shade_col(coltop, coldown, (rad-vec[a][1])*idiv); glVertex2f(minx+vec[a][1], miny+rad-vec[a][0]); } @@ -267,7 +264,8 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float { float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293}, {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}}; - float div= maxx-minx; + const float div= maxx - minx; + const float idiv= 1.0f / div; float colLeft[3], colRight[3], color[4]; int a; @@ -295,11 +293,11 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float glVertex2f(maxx-rad, miny); for(a=0; a<7; a++) { - round_box_shade_col(colLeft, colRight, vec[a][0]/div); + round_box_shade_col(colLeft, colRight, vec[a][0]*idiv); glVertex2f(maxx-rad+vec[a][0], miny+vec[a][1]); } - round_box_shade_col(colLeft, colRight, rad/div); + round_box_shade_col(colLeft, colRight, rad*idiv); glVertex2f(maxx, miny+rad); } else { @@ -314,10 +312,10 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float for(a=0; a<7; a++) { - round_box_shade_col(colLeft, colRight, (div-rad-vec[a][0])/div); + round_box_shade_col(colLeft, colRight, (div-rad-vec[a][0])*idiv); glVertex2f(maxx-vec[a][1], maxy-rad+vec[a][0]); } - round_box_shade_col(colLeft, colRight, (div-rad)/div); + round_box_shade_col(colLeft, colRight, (div-rad)*idiv); glVertex2f(maxx-rad, maxy); } else { @@ -327,11 +325,11 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float /* corner left-top */ if(roundboxtype & 1) { - round_box_shade_col(colLeft, colRight, (div-rad)/div); + round_box_shade_col(colLeft, colRight, (div-rad)*idiv); glVertex2f(minx+rad, maxy); for(a=0; a<7; a++) { - round_box_shade_col(colLeft, colRight, (div-rad+vec[a][0])/div); + round_box_shade_col(colLeft, colRight, (div-rad+vec[a][0])*idiv); glVertex2f(minx+rad-vec[a][0], maxy-vec[a][1]); } @@ -349,7 +347,7 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float glVertex2f(minx, miny+rad); for(a=0; a<7; a++) { - round_box_shade_col(colLeft, colRight, (vec[a][0])/div); + round_box_shade_col(colLeft, colRight, (vec[a][0])*idiv); glVertex2f(minx+vec[a][1], miny+rad-vec[a][0]); } -- cgit v1.2.3 From 4427c146832a3398178ad4851e9c9606fad17489 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 21 Aug 2011 13:25:19 +0000 Subject: Small fix, report in IRC by Olivier: Click in Compositor on output node invoked a re-composite. Only has to be done for inactive outputs. --- source/blender/editors/space_node/node_edit.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 9cafc46ca53..011f9a31c93 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -550,14 +550,16 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) } } else if(node->type==CMP_NODE_COMPOSITE) { - bNode *tnode; - - for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) - if( tnode->type==CMP_NODE_COMPOSITE) - tnode->flag &= ~NODE_DO_OUTPUT; - - node->flag |= NODE_DO_OUTPUT; - ED_node_generic_update(bmain, ntree, node); + if (was_output==0) { + bNode *tnode; + + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) + if( tnode->type==CMP_NODE_COMPOSITE) + tnode->flag &= ~NODE_DO_OUTPUT; + + node->flag |= NODE_DO_OUTPUT; + ED_node_generic_update(bmain, ntree, node); + } } } else if(ntree->type==NTREE_TEXTURE) { -- cgit v1.2.3 From ee938c3be861d55ceea217ff09c5f42c89b956c6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 21 Aug 2011 13:25:56 +0000 Subject: Bugfix [#28309] pose lib too many keyframes in automatic keyframing mode Pose Library was checking in wrong place for what was selected and what wasn't when determining what should get autokeyed. --- source/blender/editors/armature/poselib.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c index ff6deb6a836..864eaa3bdbd 100644 --- a/source/blender/editors/armature/poselib.c +++ b/source/blender/editors/armature/poselib.c @@ -906,11 +906,11 @@ static void poselib_keytag_pose (bContext *C, Scene *scene, tPoseLib_PreviewData /* start tagging/keying */ for (agrp= act->groups.first; agrp; agrp= agrp->next) { - /* only for selected action channels */ - if (agrp->flag & AGRP_SELECTED) { - pchan= get_pose_channel(pose, agrp->name); - - if (pchan) { + /* only for selected bones unless there aren't any selected, in which case all are included */ + pchan= get_pose_channel(pose, agrp->name); + + if (pchan) { + if ( (pld->selcount == 0) || ((pchan->bone) && (pchan->bone->flag & BONE_SELECTED)) ) { if (autokey) { /* add datasource override for the PoseChannel, to be used later */ ANIM_relative_keyingset_add_source(&dsources, &pld->ob->id, &RNA_PoseBone, pchan); -- cgit v1.2.3 From 36f20f162caf83929e6eb07be6b73eb59740ead4 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 21 Aug 2011 13:31:46 +0000 Subject: Fix #28154: linux3-config.py doesn't exist Change OURPLATFORM from "linux" to simple "linux". Since new policy for linux kernel versions that major version in platform doesn't make much sense for building rules so the same rules could be used for both of linux2 and linux3 now/ Tested on both of linux2 and linux3 systems. --- source/blender/blenpluginapi/SConscript | 2 +- source/blender/editors/armature/SConscript | 2 +- source/blender/editors/mesh/SConscript | 2 +- source/blender/editors/object/SConscript | 2 +- source/blender/editors/physics/SConscript | 2 +- source/blender/editors/render/SConscript | 2 +- source/blender/editors/screen/SConscript | 2 +- source/blender/editors/sculpt_paint/SConscript | 2 +- source/blender/editors/space_file/SConscript | 2 +- source/blender/editors/space_node/SConscript | 2 +- source/blender/makesrna/SConscript | 2 +- source/blender/makesrna/intern/SConscript | 4 ++-- source/blender/nodes/SConscript | 2 +- source/blender/render/SConscript | 2 +- source/blender/windowmanager/SConscript | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenpluginapi/SConscript b/source/blender/blenpluginapi/SConscript index 32e69069bb0..7c7c1318a6e 100644 --- a/source/blender/blenpluginapi/SConscript +++ b/source/blender/blenpluginapi/SConscript @@ -11,7 +11,7 @@ if env['WITH_BF_QUICKTIME']: defs.append('WITH_QUICKTIME') incs += ' ' + env['BF_QUICKTIME_INC'] -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/armature/SConscript b/source/blender/editors/armature/SConscript index beabd912a20..b7f9a263bc1 100644 --- a/source/blender/editors/armature/SConscript +++ b/source/blender/editors/armature/SConscript @@ -7,7 +7,7 @@ incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf ../ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' incs += ' ../../gpu ../../makesrna #/intern/opennl/extern' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/mesh/SConscript b/source/blender/editors/mesh/SConscript index 34936c025bc..b992ae5f04c 100644 --- a/source/blender/editors/mesh/SConscript +++ b/source/blender/editors/mesh/SConscript @@ -8,7 +8,7 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' incs += ' ../../gpu ../../blenloader' incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/object/SConscript b/source/blender/editors/object/SConscript index 660643fbb0f..ca048cb59f9 100644 --- a/source/blender/editors/object/SConscript +++ b/source/blender/editors/object/SConscript @@ -10,7 +10,7 @@ incs += ' ../../render/extern/include ../../gpu' # for object_bake.c defs = [] -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/physics/SConscript b/source/blender/editors/physics/SConscript index 274819c918c..188416eb04c 100644 --- a/source/blender/editors/physics/SConscript +++ b/source/blender/editors/physics/SConscript @@ -10,7 +10,7 @@ incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern' defs = '' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/render/SConscript b/source/blender/editors/render/SConscript index 2b9737557cd..53418500ea6 100644 --- a/source/blender/editors/render/SConscript +++ b/source/blender/editors/render/SConscript @@ -9,7 +9,7 @@ incs += ' ../../gpu' incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern' incs += ' ../../blenloader' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/screen/SConscript b/source/blender/editors/screen/SConscript index 61f3429521d..1381c820224 100644 --- a/source/blender/editors/screen/SConscript +++ b/source/blender/editors/screen/SConscript @@ -10,7 +10,7 @@ incs += ' #/intern/guardedalloc #/extern/glew/include' defs = '' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/sculpt_paint/SConscript b/source/blender/editors/sculpt_paint/SConscript index 90b56ded2cd..b3927fcee68 100644 --- a/source/blender/editors/sculpt_paint/SConscript +++ b/source/blender/editors/sculpt_paint/SConscript @@ -10,7 +10,7 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' incs += ' ../../render/extern/include' incs += ' ../../gpu ../../makesrna ../../blenloader' -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/space_file/SConscript b/source/blender/editors/space_file/SConscript index 7c55b40e816..ad96840f7b9 100644 --- a/source/blender/editors/space_file/SConscript +++ b/source/blender/editors/space_file/SConscript @@ -19,7 +19,7 @@ if env['WITH_BF_OPENEXR']: if env['WITH_BF_TIFF']: defs.append('WITH_TIFF') -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript index 634d4b777d9..c4309dcfca3 100644 --- a/source/blender/editors/space_node/SConscript +++ b/source/blender/editors/space_node/SConscript @@ -15,7 +15,7 @@ if env['CC'] == 'gcc': #cf.append('-Werror') pass -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/makesrna/SConscript b/source/blender/makesrna/SConscript index b706db5e64c..1cb24630fbe 100644 --- a/source/blender/makesrna/SConscript +++ b/source/blender/makesrna/SConscript @@ -54,7 +54,7 @@ if env['WITH_BF_PYTHON']: if env['WITH_BF_COLLADA']: defs.append('WITH_COLLADA') -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript index 5e43ed9b2fb..24c892b96c4 100644 --- a/source/blender/makesrna/intern/SConscript +++ b/source/blender/makesrna/intern/SConscript @@ -91,7 +91,7 @@ if env['WITH_BF_PYTHON']: if env['WITH_BF_COLLADA']: defs.append('WITH_COLLADA') -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' @@ -140,7 +140,7 @@ targetpath = root_build_dir+'/makesrna' if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'): targetpath = '#' + targetpath -if env['OURPLATFORM'] == 'linux2' and root_build_dir[0]==os.sep: +if env['OURPLATFORM'] == 'linux' and root_build_dir[0]==os.sep: makesrna = makesrna_tool.Program (target = targetpath, source = source_files, LIBS=['bf_intern_guardedalloc', 'bf_dna', 'bf_blenlib']) else: makesrna = makesrna_tool.Program (target = targetpath, source = source_files, LIBS=['bf_intern_guardedalloc', 'bf_dna', 'bf_blenlib']) diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript index 4bed612144c..8d17c6f5e16 100644 --- a/source/blender/nodes/SConscript +++ b/source/blender/nodes/SConscript @@ -26,7 +26,7 @@ if env['WITH_BF_PYTHON']: if env['BF_DEBUG']: defs.append('_DEBUG') -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index bff7797e0c7..4ec1ce3de6b 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -31,7 +31,7 @@ if env['OURPLATFORM'] == 'darwin': cflags_raytrace = env['CFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] cxxflags_raytrace = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': if env['WITH_BF_RAYOPTIMIZATION']: cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] cxxflags_raytrace = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] diff --git a/source/blender/windowmanager/SConscript b/source/blender/windowmanager/SConscript index 5b6e8b1ab30..e548d99e9a5 100644 --- a/source/blender/windowmanager/SConscript +++ b/source/blender/windowmanager/SConscript @@ -26,7 +26,7 @@ if env['WITH_BF_PYTHON']: if env['WITH_BF_COLLADA']: defs.append('WITH_COLLADA') -if env['OURPLATFORM'] == 'linux2': +if env['OURPLATFORM'] == 'linux': cflags='-pthread' incs += ' ../../../extern/binreloc/include' -- cgit v1.2.3 From 4f75566672b06931556888b0b300533c110d6e3d Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 21 Aug 2011 13:51:04 +0000 Subject: export animations if a bone is in a deform group. ( on hold ) --- source/blender/collada/AnimationExporter.cpp | 23 ++++++++++++++++++++++- source/blender/collada/AnimationExporter.h | 2 ++ source/blender/collada/ArmatureExporter.cpp | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 8a7d285abcb..014c13d8986 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -352,13 +352,34 @@ void AnimationExporter::exportAnimations(Scene *sce) if (!ob_arm->adt) return; + //This will only export animations of bones in deform group. + /*if(!is_bone_deform_group(bone)) + return;*/ + sample_and_write_bone_animation_matrix(ob_arm, bone); for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) write_bone_animation_matrix(ob_arm, child); } - + bool AnimationExporter::is_bone_deform_group(Bone * bone) + { + bool is_def; + //Check if current bone is deform + if((bone->flag & BONE_NO_DEFORM) == 0 ) return true; + //Check child bones + else + { + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next){ + //loop through all the children until deform bone is found, and then return + is_def = is_bone_deform_group(child); + if (is_def) return true; + } + } + //no deform bone found in children also + return false; + } + void AnimationExporter::sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone) { bArmature *arm = (bArmature*)ob_arm->data; diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index c628e5633b7..495cdefc9a2 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -102,6 +102,8 @@ protected: void sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type); + bool is_bone_deform_group(Bone * bone); + void sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone); void sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pChan); diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 082105baaba..bd7aea16b29 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -167,6 +167,7 @@ std::string ArmatureExporter::get_joint_sid(Bone *bone, Object *ob_arm) // parent_mat is armature-space void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) { + /*if((bone->flag & BONE_NO_DEFORM) == 0 ){*/ std::string node_id = get_joint_id(bone, ob_arm); std::string node_name = std::string(bone->name); std::string node_sid = get_joint_sid(bone, ob_arm); -- cgit v1.2.3 From 6b99cd05aa5528a931e391c5d78278aeaa6dd861 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 21 Aug 2011 15:47:21 +0000 Subject: Armature object animations export. --- source/blender/collada/AnimationExporter.cpp | 13 ++++++++----- source/blender/collada/ArmatureExporter.cpp | 4 +--- source/blender/collada/ArmatureImporter.cpp | 19 ++++++++++++++++--- source/blender/collada/ArmatureImporter.h | 1 + 4 files changed, 26 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 014c13d8986..2f074992076 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -63,6 +63,8 @@ void AnimationExporter::exportAnimations(Scene *sce) //Export transform animations if(ob->adt && ob->adt->action) { + fcu = (FCurve*)ob->adt->action->curves.first; + //transform matrix export for bones are temporarily disabled here. if ( ob->type == OB_ARMATURE ) { @@ -71,19 +73,20 @@ void AnimationExporter::exportAnimations(Scene *sce) for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); + transformName = fcu->rna_path; } - else { - fcu = (FCurve*)ob->adt->action->curves.first; + else + transformName = extract_transform_name( fcu->rna_path ); + while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - + transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) dae_animation(ob ,fcu, transformName, false); fcu = fcu->next; } - } + } //Export Lamp parameter animations diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index bd7aea16b29..92d06bb639f 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -167,7 +167,6 @@ std::string ArmatureExporter::get_joint_sid(Bone *bone, Object *ob_arm) // parent_mat is armature-space void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) { - /*if((bone->flag & BONE_NO_DEFORM) == 0 ){*/ std::string node_id = get_joint_id(bone, ob_arm); std::string node_name = std::string(bone->name); std::string node_sid = get_joint_sid(bone, ob_arm); @@ -189,8 +188,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) { add_bone_node(child, ob_arm); } - - node.end(); + node.end(); //} } diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 67828fb967d..1e7879b352f 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -82,6 +82,10 @@ JointData *ArmatureImporter::get_joint_data(COLLADAFW::Node *node); void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[][4], Object * ob_arm) { + std::vector::iterator it; + it = std::find(finished_joints.begin(),finished_joints.end(),node); + if ( it != finished_joints.end()) return; + float mat[4][4]; float obmat[4][4]; @@ -151,11 +155,18 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p add_leaf_bone(mat, bone, node); } + finished_joints.push_back(node); + } void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[][4], bArmature *arm) { + //Checking if bone is already made. + std::vector::iterator it; + it = std::find(finished_joints.begin(),finished_joints.end(),node); + if ( it != finished_joints.end()) return; + float joint_inv_bind_mat[4][4]; // JointData* jd = get_joint_data(node); @@ -183,10 +194,10 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo else copy_m4_m4(mat, obmat); - /*float loc[3], size[3], rot[3][3] , angle; + float loc[3], size[3], rot[3][3] , angle; mat4_to_loc_rot_size( loc, rot, size, obmat); mat3_to_vec_roll(rot, NULL, &angle ); - bone->roll=angle;*/ + bone->roll=angle; } @@ -257,6 +268,8 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo if (!children.getCount() || children.getCount() > 1) { add_leaf_bone(mat, bone , node); } + + finished_joints.push_back(node); } void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW::Node * node) @@ -659,7 +672,7 @@ void ArmatureImporter::make_armatures(bContext *C) } //for bones without skins - //create_armature_bones(); + create_armature_bones(); } #if 0 diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index 92d070ef575..4f4aed210f2 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -89,6 +89,7 @@ private: std::map geom_uid_by_controller_uid; std::map joint_by_uid; // contains all joints std::vector root_joints; + std::vector finished_joints; std::map joint_parent_map; std::map unskinned_armature_map; -- cgit v1.2.3 From cb05e405408d7dd8bd82589453df81b955dd0322 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 22 Aug 2011 01:22:14 +0000 Subject: Improved hotkeys for frame/keyframe/jumping Thanks pepeland and 3duan for the suggestions. I've been looking at improving these for a while... * Left/Right Arrow = Single Frame stepping as before * Up/Down Arrow = Jumps to next/previous keyframe (used to be the uncomfortable Shift PageUp/Down) * Shift Up/Down Arrow = Jumps forward/back in 10 frame increments (used to be Up/Down Arrows). 10 frame increment should get customisable again as in 2.4, but need to find some UI space to put that! * Ctrl Shift Up/Down/Left/Right = Jump to start/end frame (used to be Shift ) --- source/blender/editors/screen/screen_ops.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 1410331700f..b9b82dad6ca 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3471,21 +3471,21 @@ void ED_keymap_screen(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "Frames", 0, 0); /* frame offsets */ - RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 10); - RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -10); + RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", 10); + RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", -10); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELUPMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1); - RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1); - RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1); - RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "end", 1); + RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "end", 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "end", 1); + RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "end", 0); - WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", PAGEUPKEY, KM_PRESS, KM_CTRL, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", PAGEDOWNKEY, KM_PRESS, KM_CTRL, 0)->ptr, "next", 0); + WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", UPARROWKEY, KM_PRESS, 0, 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "next", 0); WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIALAST, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIAFIRST, KM_PRESS, 0, 0)->ptr, "next", 0); -- cgit v1.2.3 From 2b0127a0c5a7c8eaea12af4c662d2b237a2d45e6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 22 Aug 2011 02:01:22 +0000 Subject: Rearrange anim channels - quick hotkey tweak Use PageUp/Down for moving up/down, and Shift PageUp/Down for moving to top/bottom. This is more comfortable than the old combinations involving shift+ctrl. --- source/blender/editors/animation/anim_channels_edit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index e993faa71aa..c9d6f9a6420 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -2458,10 +2458,10 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0)->ptr, "all", 0); /* rearranging */ - RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_UP); - RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_DOWN); - RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_TOP); - RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_BOTTOM); + RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_UP); + RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_DOWN); + RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_TOP); + RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_BOTTOM); /* Graph Editor only */ WM_keymap_add_item(keymap, "ANIM_OT_channels_visibility_set", VKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From 06ae5e48258dacc5598b23286d46891be32a08e5 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 22 Aug 2011 02:14:39 +0000 Subject: Reshuffling DopeSheet filter icons so that they appear more obviously related to each other --- source/blender/blenkernel/intern/fmodifier.c | 4 ++-- source/blender/makesrna/intern/rna_action.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 42554679795..95c0aa60991 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -629,11 +629,11 @@ static float fcm_cycles_time (FCurve *fcu, FModifier *fcm, float UNUSED(cvalue), cycyofs = (float)ceil((evaltime - ofs) / cycdx); cycyofs *= cycdy; } - + /* special case for cycle start/end */ if(cyct == 0.0f) { evaltime = (side == 1 ? lastkey[0] : prevkey[0]); - + if((mode == FCM_EXTRAPOLATE_MIRROR) && ((int)cycle % 2)) evaltime = (side == 1 ? prevkey[0] : lastkey[0]); } diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index f24e0a92f78..815a9c92968 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -265,6 +265,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "show_datablock_filters", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SHOW_DBFILTERS); RNA_def_property_ui_text(prop, "Show Datablock Filters", "Show options for whether channels related to certain types of data are included"); + RNA_def_property_ui_icon(prop, ICON_DISCLOSURE_TRI_RIGHT, -1); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN, NULL); /* General Filtering Settings */ -- cgit v1.2.3 From ee40894c05b1d5f07eda671bad74f18605cde0b6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 22 Aug 2011 11:51:23 +0000 Subject: Bugfix [#28217] Moving multiple selected action strips causes strips to scale towards zero This is an attempted bugfix for a bug which seems to be very fickle to reproduce (it only happens sporadically after quickly jerking the strips around in a certain way). So far when testing, I haven't had any more problems after applying this fix, though it may just be unreliable testing. --- source/blender/blenkernel/intern/nla.c | 35 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 0235724c69c..25f824bba19 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -851,34 +851,35 @@ void BKE_nlameta_flush_transforms (NlaStrip *mstrip) /* for each child-strip, calculate new start/end points based on this new info */ for (strip= mstrip->strips.first; strip; strip= strip->next) { if (scaleChanged) { - PointerRNA ptr; - float p1, p2, nStart, nEnd; + float p1, p2; /* compute positions of endpoints relative to old extents of strip */ p1= (strip->start - oStart) / oLen; p2= (strip->end - oStart) / oLen; - /* compute the new strip endpoints using the proportions */ - nStart= (p1 * nLen) + mstrip->start; - nEnd= (p2 * nLen) + mstrip->start; - - /* firstly, apply the new positions manually, then apply using RNA - * - first time is to make sure no truncation errors from one endpoint not being - * set yet occur - * - second time is to make sure scale is computed properly... - */ - strip->start= nStart; - strip->end= nEnd; - - RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &ptr); - RNA_float_set(&ptr, "frame_start", nStart); - RNA_float_set(&ptr, "frame_end", nEnd); + /* apply new strip endpoints using the proportions, then wait for second pass to flush scale properly */ + strip->start= (p1 * nLen) + mstrip->start; + strip->end= (p2 * nLen) + mstrip->start; } else { /* just apply the changes in offset to both ends of the strip */ strip->start += offset; strip->end += offset; } + } + + /* apply a second pass over child strips, to finish up unfinished business */ + for (strip= mstrip->strips.first; strip; strip= strip->next) { + /* only if scale changed, need to perform RNA updates */ + if (scaleChanged) { + PointerRNA ptr; + + /* use RNA updates to compute scale properly */ + RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &ptr); + + RNA_float_set(&ptr, "frame_start", strip->start); + RNA_float_set(&ptr, "frame_end", strip->end); + } /* finally, make sure the strip's children (if it is a meta-itself), get updated */ BKE_nlameta_flush_transforms(strip); -- cgit v1.2.3 From 7d316b70b842ff376d07f5ba55302d31d92e6dbb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 Aug 2011 16:54:26 +0000 Subject: rename NAN_BUILDINFO --> WITH_BUILDINFO --- source/blender/blenloader/CMakeLists.txt | 2 +- source/blender/blenloader/intern/writefile.c | 2 +- source/blender/collada/CMakeLists.txt | 2 +- source/blender/collada/DocumentExporter.cpp | 4 ++-- source/blender/windowmanager/CMakeLists.txt | 2 +- source/blender/windowmanager/intern/wm_operators.c | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt index be15b191c8a..4088481c844 100644 --- a/source/blender/blenloader/CMakeLists.txt +++ b/source/blender/blenloader/CMakeLists.txt @@ -55,7 +55,7 @@ set(SRC ) if(WITH_BUILDINFO) - add_definitions(-DNAN_BUILDINFO) + add_definitions(-DWITH_BUILDINFO) endif() blender_add_lib(bf_blenloader "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 7d65248c0e9..085cd2cb29c 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2461,7 +2461,7 @@ static void write_global(WriteData *wd, int fileflags, Main *mainvar) fg.subversion= BLENDER_SUBVERSION; fg.minversion= BLENDER_MINVERSION; fg.minsubversion= BLENDER_MINSUBVERSION; -#ifdef NAN_BUILDINFO +#ifdef WITH_BUILDINFO { extern char build_rev[]; fg.revision= atoi(build_rev); diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index e2a68d19682..b5c84bc3c84 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -107,7 +107,7 @@ set(SRC ) if(WITH_BUILDINFO) - add_definitions(-DNAN_BUILDINFO) + add_definitions(-DWITH_BUILDINFO) endif() if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index e6e0953680c..b26318f6114 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -52,7 +52,7 @@ extern "C" #include "BLI_path_util.h" #include "BLI_fileops.h" #include "ED_keyframing.h" -#ifdef NAN_BUILDINFO +#ifdef WITH_BUILDINFO extern char build_rev[]; #endif } @@ -1002,7 +1002,7 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename, bool else { asset.getContributor().mAuthor = "Blender User"; } -#ifdef NAN_BUILDINFO +#ifdef WITH_BUILDINFO char version_buf[128]; sprintf(version_buf, "Blender %d.%02d.%d r%s", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION, build_rev); asset.getContributor().mAuthoringTool = version_buf; diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index dc83e29b497..7c34c086b2e 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -130,7 +130,7 @@ if(APPLE) endif() if(WITH_BUILDINFO) - add_definitions(-DNAN_BUILDINFO) + add_definitions(-DWITH_BUILDINFO) endif() blender_add_lib_nolist(bf_windowmanager "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index fdf89cfd2be..d794685ea70 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1202,7 +1202,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar MenuType *mt= WM_menutype_find("USERPREF_MT_splash", TRUE); char url[96]; -#ifdef NAN_BUILDINFO +#ifdef WITH_BUILDINFO int ver_width, rev_width; char *version_str = NULL; char *revision_str = NULL; @@ -1219,7 +1219,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar BLF_size(style->widgetlabel.uifont_id, style->widgetlabel.points, U.dpi); ver_width = (int)BLF_width(style->widgetlabel.uifont_id, version_str) + 5; rev_width = (int)BLF_width(style->widgetlabel.uifont_id, revision_str) + 5; -#endif //NAN_BUILDINFO +#endif //WITH_BUILDINFO block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN); @@ -1228,10 +1228,10 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar uiButSetFunc(but, wm_block_splash_close, block, NULL); uiBlockSetFunc(block, wm_block_splash_refreshmenu, block, NULL); -#ifdef NAN_BUILDINFO +#ifdef WITH_BUILDINFO uiDefBut(block, LABEL, 0, version_str, 494-ver_width, 282-24, ver_width, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL); uiDefBut(block, LABEL, 0, revision_str, 494-rev_width, 282-36, rev_width, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL); -#endif //NAN_BUILDINFO +#endif //WITH_BUILDINFO layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 10, 2, 480, 110, style); -- cgit v1.2.3 From a937729f38875a57f589b8ccb114b13a5b22fd3f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 Aug 2011 18:13:37 +0000 Subject: properly escape chars for pythons bpy objects __repr__ --- source/blender/python/intern/bpy_rna.c | 42 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 1b8f986e71c..72553872057 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -814,34 +814,40 @@ static PyObject *pyrna_struct_str(BPy_StructRNA *self) static PyObject *pyrna_struct_repr(BPy_StructRNA *self) { ID *id= self->ptr.id.data; + PyObject *tmp_str; + PyObject *ret; + if(id == NULL || !PYRNA_STRUCT_IS_VALID(self)) return pyrna_struct_str(self); /* fallback */ + tmp_str= PyUnicode_FromString(id->name+2); + if(RNA_struct_is_ID(self->ptr.type)) { - return PyUnicode_FromFormat("bpy.data.%s[\"%s\"]", + ret= PyUnicode_FromFormat("bpy.data.%s[%R]", BKE_idcode_to_name_plural(GS(id->name)), - id->name+2); + tmp_str); } else { - PyObject *ret; const char *path; path= RNA_path_from_ID_to_struct(&self->ptr); if(path) { - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"].%s", + ret= PyUnicode_FromFormat("bpy.data.%s[%R].%s", BKE_idcode_to_name_plural(GS(id->name)), - id->name+2, + tmp_str, path); MEM_freeN((void *)path); } else { /* cant find, print something sane */ - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", + ret= PyUnicode_FromFormat("bpy.data.%s[%R]...%s", BKE_idcode_to_name_plural(GS(id->name)), - id->name+2, + tmp_str, RNA_struct_identifier(self->ptr.type)); } - - return ret; } + + Py_DECREF(tmp_str); + + return ret; } static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) @@ -911,27 +917,35 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) { - ID *id; + ID *id= self->ptr.id.data; + PyObject *tmp_str; PyObject *ret; const char *path; PYRNA_PROP_CHECK_OBJ(self) - if((id= self->ptr.id.data) == NULL) + if(id == NULL) return pyrna_prop_str(self); /* fallback */ + tmp_str= PyUnicode_FromString(id->name+2); + path= RNA_path_from_ID_to_property(&self->ptr, self->prop); if(path) { - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"].%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, path); + ret= PyUnicode_FromFormat("bpy.data.%s[%R].%s", + BKE_idcode_to_name_plural(GS(id->name)), + tmp_str, + path); MEM_freeN((void *)path); } else { /* cant find, print something sane */ - ret= PyUnicode_FromFormat("bpy.data.%s[\"%s\"]...%s", + ret= PyUnicode_FromFormat("bpy.data.%s[%R]...%s", BKE_idcode_to_name_plural(GS(id->name)), - id->name+2, + tmp_str, RNA_property_identifier(self->prop)); } + Py_DECREF(tmp_str); + return ret; } -- cgit v1.2.3 From a9d9a8e569d00d98d487980f00a5626a581cd4c8 Mon Sep 17 00:00:00 2001 From: Morten Mikkelsen Date: Mon, 22 Aug 2011 18:56:13 +0000 Subject: actually, this if is still marginally good to have --- source/blender/imbuf/intern/filter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index 3f391b91c0f..7f1eef80318 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -397,10 +397,10 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) float acc[4]={0,0,0,0}; k = 0; - /*if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || + if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x+1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y-1, width, height), depth, is_float) || - check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float))*/ { + check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float)) { for(i= -n; i<=n; i++) { for(j=-n; j<=n; j++) { if(i != 0 || j != 0) { -- cgit v1.2.3 From a71c215f228173070d41faef1321db25b40d723e Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 22 Aug 2011 18:59:56 +0000 Subject: 3D Audio GSoC: Final GSoC commit. * Bugfix: Negative frames crashed * Bugfix: JOS sample buffer size prediction error (wasted memory) * Optimisation: for JOS upsampling (around 12 % difference measured here) * Optimisation: Better filter for JOS resampling * Bugfix: Error in relative 3D audio code. * Removed Attenuation * Bugfix: Multiple scenes in BGE lead to errors, BGE audio now all relative, to support multiple scenes. --- source/blender/makesrna/intern/rna_sequencer.c | 30 -------------------------- 1 file changed, 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 38575242fd6..d433d494068 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -52,16 +52,6 @@ #ifdef RNA_RUNTIME -static float to_dB(float x) -{ - return logf(x * x + 1e-30f) * 4.34294480f; -} - -static float from_dB(float x) -{ - return expf(x * 0.11512925f); -} - /* build a temp referene to the parent */ static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) { @@ -514,20 +504,6 @@ static int rna_Sequence_proxy_filepath_length(PointerRNA *ptr) return strlen(path)+1; } -static float rna_Sequence_attenuation_get(PointerRNA *ptr) -{ - Sequence *seq= (Sequence*)(ptr->data); - - return to_dB(seq->volume); -} - -static void rna_Sequence_attenuation_set(PointerRNA *ptr, float value) -{ - Sequence *seq= (Sequence*)(ptr->data); - - seq->volume = from_dB(value); -} - static void rna_Sequence_volume_set(PointerRNA *ptr, float value) { Sequence *seq= (Sequence*)(ptr->data); @@ -1401,12 +1377,6 @@ static void rna_def_sound(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_volume_set", NULL); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - prop= RNA_def_property(srna, "attenuation", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, -100.0f, +40.0f); - RNA_def_property_ui_text(prop, "Attenuation/dB", "Attenuation in decibel"); - RNA_def_property_float_funcs(prop, "rna_Sequence_attenuation_get", "rna_Sequence_attenuation_set", NULL); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - prop= RNA_def_property(srna, "pitch", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "pitch"); RNA_def_property_range(prop, 0.1f, 10.0f); -- cgit v1.2.3 From 6a374d266d8213629f74a9f4c9a4984ddf59ef4c Mon Sep 17 00:00:00 2001 From: Morten Mikkelsen Date: Mon, 22 Aug 2011 19:57:54 +0000 Subject: glsl and render support for derivative maps --- source/blender/gpu/intern/gpu_material.c | 29 ++++++++++----- source/blender/gpu/intern/gpu_shader_material.glsl | 16 +++++++++ .../blender/gpu/intern/gpu_shader_material.glsl.c | 20 ++++++++++- source/blender/makesdna/DNA_texture_types.h | 1 + source/blender/makesrna/intern/rna_texture.c | 6 ++++ .../blender/render/intern/source/render_texture.c | 41 ++++++++++++++++------ 6 files changed, 93 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 274884000db..28624e9350c 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -906,6 +906,7 @@ static void do_material_tex(GPUShadeInput *shi) int init_done = 0, iBumpSpacePrev; GPUNodeLink *vNorg, *vNacc, *fPrevMagnitude; int iFirstTimeNMap=1; + int found_deriv_map = 0; GPU_link(mat, "set_value", GPU_uniform(&one), &stencil); @@ -1043,6 +1044,8 @@ static void do_material_tex(GPUShadeInput *shi) if(!(mat->scene->gm.flag & GAME_GLSL_NO_EXTRA_TEX) && (mtex->mapto & MAP_NORM)) { if(tex->type==TEX_IMAGE) { + found_deriv_map = tex->imaflag & TEX_DERIVATIVEMAP; + if(tex->imaflag & TEX_NORMALMAP) { /* normalmap image */ GPU_link(mat, "mtex_normal", texco, GPU_image(tex->ima, &tex->iuser), &tnor ); @@ -1082,9 +1085,10 @@ static void do_material_tex(GPUShadeInput *shi) GPU_link(mat, "mtex_blend_normal", tnorfac, shi->vn, newnor, &shi->vn); } - } else if( mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP)) { + } else if( (mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP)) || found_deriv_map) { /* ntap bumpmap image */ int iBumpSpace; + float ima_x, ima_y; float hScale = 0.1f; // compatibility adjustment factor for all bumpspace types float hScaleTex = 13.0f; // factor for scaling texspace bumps @@ -1142,9 +1146,24 @@ static void do_material_tex(GPUShadeInput *shi) iBumpSpacePrev = iBumpSpace; } + + // resolve texture resolution + if( (mtex->texflag & MTEX_BUMP_TEXTURESPACE) || found_deriv_map ) { + ImBuf *ibuf= BKE_image_get_ibuf(tex->ima, &tex->iuser); + ima_x= 512.0f; ima_y= 512.f; // prevent calling textureSize, glsl 1.3 only + if(ibuf) { + ima_x= ibuf->x; + ima_y= ibuf->y; + } + } - if( mtex->texflag & MTEX_3TAP_BUMP ) + if(found_deriv_map) { + GPU_link( mat, "mtex_bump_deriv", + texco, GPU_image(tex->ima, &tex->iuser), GPU_uniform(&ima_x), GPU_uniform(&ima_y), tnorfac, + &dBs, &dBt ); + } + else if( mtex->texflag & MTEX_3TAP_BUMP ) GPU_link( mat, "mtex_bump_tap3", texco, GPU_image(tex->ima, &tex->iuser), tnorfac, &dBs, &dBt ); @@ -1155,12 +1174,6 @@ static void do_material_tex(GPUShadeInput *shi) if( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) { - float ima_x= 512.0f, ima_y= 512.f; // prevent calling textureSize, glsl 1.3 only - ImBuf *ibuf= BKE_image_get_ibuf(tex->ima, &tex->iuser); - if(ibuf) { - ima_x= ibuf->x; - ima_y= ibuf->y; - } GPU_link( mat, "mtex_bump_apply_texspace", fDet, dBs, dBt, vR1, vR2, diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index feb0a84fa87..0aae6d84a01 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1226,6 +1226,22 @@ void mtex_bump_tap5( vec3 texco, sampler2D ima, float hScale, dBt = hScale * (Hu - Hd); } +void mtex_bump_deriv( vec3 texco, sampler2D ima, float ima_x, float ima_y, float hScale, + out float dBs, out float dBt ) +{ + float s = 1; // negate this if flipped texture coordinate + vec2 TexDx = dFdx(texco.xy); + vec2 TexDy = dFdy(texco.xy); + + // this variant using a derivative map is described here + // http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html + vec2 dim = vec2(ima_x, ima_y); + vec2 dBduv = hScale*dim*(2*texture2D(ima, texco.xy).xy-1); + + dBs = dBduv.x*TexDx.x + s*dBduv.y*TexDx.y; + dBt = dBduv.x*TexDy.x + s*dBduv.y*TexDy.y; +} + void mtex_bump_apply( float fDet, float dBs, float dBt, vec3 vR1, vec3 vR2, vec3 vNacc_in, out vec3 vNacc_out, out vec3 perturbed_norm ) { diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index b60f7f1555e..8b23e2b205d 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,6 +1,6 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 39207; +int datatoc_gpu_shader_material_glsl_size= 39783; char datatoc_gpu_shader_material_glsl[]= { 10,102,108,111, 97,116, 32, 101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112, @@ -838,6 +838,24 @@ char datatoc_gpu_shader_material_glsl[]= { 119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32, 45, 32, 72,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, +101,120, 95, 98,117,109,112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108, +101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44, 32,102,108,111, 97,116, 32,105,109, 97, + 95,121, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61, 32, 49, 59, 9, 9, 47, 47, 32,110,101,103, 97, +116,101, 32,116,104,105,115, 32,105,102, 32,102,108,105,112,112,101,100, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100, +105,110, 97,116,101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120, +121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, + 59, 10, 9, 10, 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,110,116, 32,117,115,105,110,103, 32, 97, 32,100,101,114, +105,118, 97,116,105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115, 99,114,105, 98,101,100, 32,104,101,114,101, 10, 9, 47, + 47, 32,104,116,116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,110, 51,100, 46, 98,108,111,103,115,112,111,116, 46, 99, +111,109, 47, 50, 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,105,118,101, 45,109, 97,112,115, 46,104,116,109,108, 10, + 9,118,101, 99, 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 44, 32,105,109, 97, 95,121, 41, 59, 10, + 9,118,101, 99, 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,108,101, 42,100,105,109, 42, 40, 50, 42,116,101,120,116, +117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120,121, 45, 49, 41, 59, 10, 9, 10, 9,100, + 66,115, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,120, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, + 42, 84,101,120, 68,120, 46,121, 59, 10, 9,100, 66,116, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,121, 46,120, + 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,121, 46,121, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, 101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 40, 32,102,108,111, 97,116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116, 32,100, 66,116, 44, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32, 118, 82, 50, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118, diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index e81a9979c12..6e850a07d94 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -342,6 +342,7 @@ typedef struct TexMapping { #define TEX_NORMALMAP 2048 #define TEX_GAUSS_MIP 4096 #define TEX_FILTER_MIN 8192 +#define TEX_DERIVATIVEMAP 16384 /* texfilter */ // TXF_BOX -> blender's old texture filtering method diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 9e3a31ddb2e..f459563f49e 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -1147,6 +1147,12 @@ static void rna_def_texture_image(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "imaflag", TEX_NORMALMAP); RNA_def_property_ui_text(prop, "Normal Map", "Uses image RGB values for normal mapping"); RNA_def_property_update(prop, 0, "rna_Texture_update"); + + /* Derivative Map */ + prop= RNA_def_property(srna, "use_derivative_map", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "imaflag", TEX_DERIVATIVEMAP); + RNA_def_property_ui_text(prop, "Derivative Map", "Uses red and green as derivative values"); + RNA_def_property_update(prop, 0, "rna_Texture_update"); } static void rna_def_texture_plugin(BlenderRNA *brna) diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index ef1b1cd159c..a4c1778c624 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -1905,11 +1905,13 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T const int fromrgb = ((tex->type == TEX_IMAGE) || ((tex->flag & TEX_COLORBAND)!=0)); float Hscale = Tnor*mtex->norfac; + int dimx=512, dimy=512; // 2 channels for 2D texture and 3 for 3D textures. const int nr_channels = (mtex->texco == TEXCO_UV)? 2 : 3; int c, rgbnor, iBumpSpace; float dHdx, dHdy; + int found_deriv_map = (tex->type==TEX_IMAGE) && (tex->imaflag & TEX_DERIVATIVEMAP); // disable internal bump eval in sampler, save pointer float *nvec = texres->nor; @@ -1929,8 +1931,31 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T ntap_bump->init_done = 1; } + + // resolve image dimensions + if(found_deriv_map || (mtex->texflag&MTEX_BUMP_TEXTURESPACE)!=0) { + ImBuf* ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser); + if (ibuf) { + dimx = ibuf->x; + dimy = ibuf->y; + } + } - if(!(mtex->texflag & MTEX_5TAP_BUMP)) { + if(found_deriv_map) { + float dBdu, dBdv; + float s = 1; // negate this if flipped texture coordinate + texco_mapping(shi, tex, mtex, co, dx, dy, texvec, dxt, dyt); + rgbnor = multitex_mtex(shi, mtex, texvec, dxt, dyt, texres); + + // this variant using a derivative map is described here + // http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html + dBdu = Hscale*dimx*(2*texres->tr-1); + dBdv = Hscale*dimy*(2*texres->tg-1); + + dHdx = dBdu*dxt[0] + s * dBdv*dxt[1]; + dHdy = dBdu*dyt[0] + s * dBdv*dyt[1]; + } + else if(!(mtex->texflag & MTEX_5TAP_BUMP)) { // compute height derivatives with respect to output image pixel coordinates x and y float STll[3], STlr[3], STul[3]; float Hll, Hlr, Hul; @@ -2084,15 +2109,8 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T if( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) { if(tex->ima) { - float vec[2]; - int dimx=512, dimy=512; - ImBuf* ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser); - if (ibuf) { - dimx = ibuf->x; - dimy = ibuf->y; - } - // crazy hack solution that gives results similar to normal mapping - part 2 + float vec[2]; vec[0] = dimx*dxt[0]; vec[1] = dimy*dxt[1]; @@ -2126,7 +2144,7 @@ void do_material_tex(ShadeInput *shi) float texvec[3], dxt[3], dyt[3], tempvec[3], norvec[3], warpvec[3]={0.0f, 0.0f, 0.0f}, Tnor=1.0; int tex_nr, rgbnor= 0, warpdone=0; int use_compat_bump = 0, use_ntap_bump = 0; - int found_nmapping = 0; + int found_nmapping = 0, found_deriv_map = 0; int iFirstTimeNMap=1; compatible_bump_init(&compat_bump); @@ -2146,8 +2164,9 @@ void do_material_tex(ShadeInput *shi) tex= mtex->tex; if(tex==0) continue; + found_deriv_map = (tex->type==TEX_IMAGE) && (tex->imaflag & TEX_DERIVATIVEMAP); use_compat_bump= (mtex->texflag & MTEX_COMPAT_BUMP); - use_ntap_bump= (mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP)); + use_ntap_bump= ((mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP))!=0 || found_deriv_map!=0) ? 1 : 0; /* XXX texture node trees don't work for this yet */ if(tex->nodetree && tex->use_nodes) { -- cgit v1.2.3 From 34b7bff44b498d23b3dce204ecac2ca9d0c0d57b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 07:59:25 +0000 Subject: change compression level for gzip saving to 1, approx twice as fast when saving a 194mb blend file and only slightly bigger. --- source/blender/blenlib/intern/fileops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c index 2e0f4b483b1..3299752646b 100644 --- a/source/blender/blenlib/intern/fileops.c +++ b/source/blender/blenlib/intern/fileops.c @@ -69,8 +69,10 @@ int BLI_gzip(const char *from, const char *to) { int readsize = 0; int rval= 0, err; gzFile gzfile; - - gzfile = gzopen(to, "wb"); + + /* level 1 is very close to 3 (the default) in terms of file size, + * but about twice as fast, best use for speedy saving - campbell */ + gzfile = gzopen(to, "wb1"); if(gzfile == NULL) return -1; -- cgit v1.2.3 From ed3d253c561b504d4b0dad7d4156933ba7adc200 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 23 Aug 2011 08:02:48 +0000 Subject: Fix for [#28339] Rev:39618 The revision part doesn't suffice. NAN_BUILDINFO > WITH_BUILDINFO change from rev 39618 was missing in those files. --- source/blender/collada/SConscript | 2 +- source/blender/windowmanager/SConscript | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/SConscript b/source/blender/collada/SConscript index 3dd6160c445..17cca9e3706 100644 --- a/source/blender/collada/SConscript +++ b/source/blender/collada/SConscript @@ -38,6 +38,6 @@ else: incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../blenloader ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include [OPENCOLLADA]/GeneratedSaxParser/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC']) if env['BF_BUILDINFO']: - defs.append('NAN_BUILDINFO') + defs.append('WITH_BUILDINFO') env.BlenderLib ('bf_collada', sources, Split(incs), defs, libtype='core', priority=200 ) diff --git a/source/blender/windowmanager/SConscript b/source/blender/windowmanager/SConscript index e548d99e9a5..80c526f8649 100644 --- a/source/blender/windowmanager/SConscript +++ b/source/blender/windowmanager/SConscript @@ -37,6 +37,6 @@ if env['OURPLATFORM'] != 'darwin' or env['WITH_GHOST_COCOA']: sources.remove('intern' + os.sep + 'wm_apple.c') if env['BF_BUILDINFO']: - defs.append('NAN_BUILDINFO') + defs.append('WITH_BUILDINFO') env.BlenderLib ( 'bf_windowmanager', sources, Split(incs), defines=defs, libtype=['core'], priority=[5] ) -- cgit v1.2.3 From ce9e4472eb2941881836926ba46ab11203bc61c0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 09:05:12 +0000 Subject: Make Ctrl+RMB in editmode behave like 2.4x, was re-using center option which worked but used center select too. instead add 'object' option to VIEW3D_OT_select. --- source/blender/editors/space_view3d/view3d_ops.c | 10 +++++++--- source/blender/editors/space_view3d/view3d_select.c | 18 +++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index e47cb1db753..8416b37fd5e 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -263,9 +263,13 @@ void view3d_keymap(wmKeyConfig *keyconf) /* selection*/ WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, 0, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", TRUE); - RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "center", TRUE); - RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "enumerate", TRUE); + kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "extend", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); + RNA_boolean_set(kmi->ptr, "center", TRUE); + RNA_boolean_set(kmi->ptr, "object", TRUE); /* use Ctrl+Select for 2 purposes */ + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0); + RNA_boolean_set(kmi->ptr, "enumerate", TRUE); /* selection key-combinations */ kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL, 0); diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 86112a42d99..f241e640906 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1231,8 +1231,8 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short obce if(BASACT && BASACT->next) startbase= BASACT->next; /* This block uses the control key to make the object selected by its center point rather than its contents */ - /* XXX later on, in editmode do not activate */ - if(vc.obedit==NULL && obcenter) { + /* in editmode do not activate */ + if(obcenter) { /* note; shift+alt goes to group-flush-selecting */ if(enumerate) { @@ -1838,11 +1838,22 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event) short extend= RNA_boolean_get(op->ptr, "extend"); short center= RNA_boolean_get(op->ptr, "center"); short enumerate= RNA_boolean_get(op->ptr, "enumerate"); + short object= RNA_boolean_get(op->ptr, "object"); int retval = 0; view3d_operator_needs_opengl(C); - if(obedit && center==FALSE) { + if(object) { + obedit= NULL; + obact= NULL; + + /* ack, this is incorrect but to do this correctly we would need an + * alternative editmode/objectmode keymap, this copies the functionality + * from 2.4x where Ctrl+Select in editmode does object select only */ + center= FALSE; + } + + if(obedit && object==FALSE) { if(obedit->type==OB_MESH) retval = mouse_mesh(C, event->mval, extend); else if(obedit->type==OB_ARMATURE) @@ -1891,6 +1902,7 @@ void VIEW3D_OT_select(wmOperatorType *ot) RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first."); RNA_def_boolean(ot->srna, "center", 0, "Center", "Use the object center when selecting, in editmode used to extend object selection."); RNA_def_boolean(ot->srna, "enumerate", 0, "Enumerate", "List objects under the mouse (object mode only)."); + RNA_def_boolean(ot->srna, "object", 0, "Object", "Use object selection (editmode only)."); } -- cgit v1.2.3 From ff8daca1f117b34c92462f4ab3bbe2aa50f95166 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 23 Aug 2011 11:44:24 +0000 Subject: Bugfix: Removing a sound from a speaker resulted in a crash. --- source/blender/blenkernel/intern/sound.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index d7385a86105..a364f860255 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -676,11 +676,17 @@ void sound_update_scene(struct Main* bmain, struct Scene* scene) if(AUD_removeSet(scene->speaker_handles, strip->speaker_handle)) { - AUD_moveSequence(strip->speaker_handle, strip->start / FPS, -1, 0); + if(speaker->sound) + AUD_moveSequence(strip->speaker_handle, strip->start / FPS, -1, 0); + else + { + AUD_removeSequence(scene->sound_scene, strip->speaker_handle); + strip->speaker_handle = NULL; + } } else { - if(speaker && speaker->sound) + if(speaker->sound) { strip->speaker_handle = AUD_addSequence(scene->sound_scene, speaker->sound->playback_handle, strip->start / FPS, -1, 0); AUD_setRelativeSequence(strip->speaker_handle, 0); -- cgit v1.2.3 From ba4fd78faca5843e1c44501a0697ce1d4c154854 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 11:46:16 +0000 Subject: fix [#28344] for this file, the multires smiley has 2 materials, but only 1 loads --- source/blender/blenkernel/intern/multires.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 88a670ecb22..e621e800520 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -1537,6 +1537,7 @@ void multires_load_old(Object *ob, Mesh *me) me->mface[i].v2 = lvl->faces[i].v[1]; me->mface[i].v3 = lvl->faces[i].v[2]; me->mface[i].v4 = lvl->faces[i].v[3]; + me->mface[i].mat_nr = lvl->faces[i].mat_nr; } /* Add a multires modifier to the object */ -- cgit v1.2.3 From 6fd68b8d76c79b9656aeda4e0ecf7502fc246db2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 12:09:20 +0000 Subject: fix [#28336] Particles: setting to zero the count of all elements of a group crashes Blender --- source/blender/blenkernel/intern/anim.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index ebe7325d96a..fcb8da48962 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -1351,6 +1351,10 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p continue; if(part->ren_as==PART_DRAW_GR) { + /* prevent divide by zero below [#28336] */ + if(totgroup == 0) + continue; + /* for groups, pick the object based on settings */ if(part->draw&PART_DRAW_RAND_GR) b= BLI_rand() % totgroup; -- cgit v1.2.3 From abff0032c4dceabbd2cf5b9682f196dd4a283c76 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 23 Aug 2011 13:15:18 +0000 Subject: Fix #28343: glsl error after derivative maps commit. --- source/blender/gpu/intern/gpu_shader_material.glsl | 4 +- .../blender/gpu/intern/gpu_shader_material.glsl.c | 1662 ++++++++++---------- 2 files changed, 833 insertions(+), 833 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 0aae6d84a01..815b74a1bf4 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1229,14 +1229,14 @@ void mtex_bump_tap5( vec3 texco, sampler2D ima, float hScale, void mtex_bump_deriv( vec3 texco, sampler2D ima, float ima_x, float ima_y, float hScale, out float dBs, out float dBt ) { - float s = 1; // negate this if flipped texture coordinate + float s = 1.0; // negate this if flipped texture coordinate vec2 TexDx = dFdx(texco.xy); vec2 TexDy = dFdy(texco.xy); // this variant using a derivative map is described here // http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html vec2 dim = vec2(ima_x, ima_y); - vec2 dBduv = hScale*dim*(2*texture2D(ima, texco.xy).xy-1); + vec2 dBduv = hScale*dim*(2.0*texture2D(ima, texco.xy).xy-1.0); dBs = dBduv.x*TexDx.x + s*dBduv.y*TexDx.y; dBt = dBduv.x*TexDy.x + s*dBduv.y*TexDy.y; diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index 8b23e2b205d..87a8ed65532 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,858 +1,858 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 39783; +int datatoc_gpu_shader_material_glsl_size= 39789; char datatoc_gpu_shader_material_glsl[]= { - 10,102,108,111, 97,116, 32, -101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112, -111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, - 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, -111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,118, - 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120, 40, -114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99, -109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, - 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,118, - 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99, -100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9, - 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, - 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51, - 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,100, -101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99, 91, - 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109, 97, -120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,115, -101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61, - 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59, - 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103, 98, - 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,118, - 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,102, - 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10, 10, - 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104, -115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, - 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61, 61, - 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10, - 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,114, -103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48, - 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32, -118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105, 32, - 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,101, -108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44, 32, -118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32, - 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, - 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,115, -101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112, 44, - 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41, 59, - 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41, 59, - 10,125, 10, 10,102,108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111, 97, -116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,110, - 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50, 41, - 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53, 41, - 42, 40, 49, 46, 48, 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,110, -101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, - 60, 32, 48, 46, 48, 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, - 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32, - 49, 46, 48, 53, 53, 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53, 59, - 10,125, 10, 10,118,111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52, 32, - 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111, -108, 95,116,111, 46,114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102, -114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, - 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,115, -114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99, -111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,105, -110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111, -117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,105, -110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111, -108, 95,116,111, 46,103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102, -114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, - 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99, -111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, - 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, - 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118, -111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, - 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97, -116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, - 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118, -101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111, -109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110, -118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32, -118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117, -116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118, -105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, - 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46, -120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98, -117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97, -108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114, -109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116, -101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, - 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97, -116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, - 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32, -118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32, -118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, - 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105, -110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, - 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, - 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101, -119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, - 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105, -101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, - 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, - 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108, -111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, - 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, - 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, - 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32, -118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, - 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115, -101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117, -116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40, -118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, - 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, -108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40, -102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, - 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, -118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, - 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, - 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117, -116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, - 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32, -118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, - 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102, + 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108, +101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, + 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104, +115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, + 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108, +116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, + 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32, +109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, + 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97, +120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, + 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, + 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, + 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, + 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, + 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, + 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, + 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, + 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, + 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9, +111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32, +118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, + 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104, +115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, + 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32, +118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, + 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32, +102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118, +101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, + 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, + 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, + 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, + 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, + 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, + 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32, +114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40, +105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, + 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9, +111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10,102,108, +111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, + 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, + 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50, 41, 59, 10, 9,101,108,115, +101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53, 41, 42, 40, 49, 46, 48, 47, + 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,110,101, 97,114,114,103, 98, + 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 48, + 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, + 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32, 49, 46, 48, 53, 53, 32, + 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53, 59, 10,125, 10, 10,118,111, +105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114, +111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, + 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, + 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, + 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,115,114,103, 98, 95,116,111, + 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, + 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,105,110,101, 97,114,114,103, + 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, + 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,105,110,101, 97,114,114,103, + 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, + 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, + 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, + 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111, +109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 53, 51, + 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 83, 72, 65, 68, 69, 82, + 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,118, 99, +111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118, +101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97,116,116,118, 99,111,108, + 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99, +111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,117,118, 95, 97,116,116, +114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10, +123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, + 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111,109, 40,118,101, 99, 51, + 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32, +118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,118,101, 99, 52, 32, 97, +116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111,117,116, 32,118,101, 99, + 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, + 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114, +109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,114, +111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118,105,101,119, 32, 61, 32, +110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101, +119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, +111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116, +116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110, +111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, + 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,118, + 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, + 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97,116, 52, 32,109, 97,116, + 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, 44, 32,102,108,111, 97, +116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, +117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32,118,101, 99, 52, 40,118, +101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, 61, 32, 49, 46, 48, 41, + 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105,110,118,101, 99, 41, 59, + 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,105, +110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99, 97,109,101,114, + 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101,119, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,105, +115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, 59, 10, 9,111,117, +116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105,101,119, 32, 61, 32,110, +111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,100,100, 40,102, 108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111, -117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, - 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40, -102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, - 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, - 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, - 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, -102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97, -108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, - 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, -114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, -108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10, -125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, - 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, - 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, - 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105, -100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32, -102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, - 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115, -113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102, -108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, - 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, - 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, 32,118, 97,108, 50, + 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108,111, 97,116, 32,118, 97, +108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, + 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111, +105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, + 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117, +116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, + 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 50, 32, 61, 61, + 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117, +116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, + 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, +108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40,118, 97,108, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,116, 97, +110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40,102,108,111, 97,116, 32, +118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97, +108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97, +108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, + 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, 97,116, 32,118, 97,108, + 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, + 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, + 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, + 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111, +117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 97,116, 97, +110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102,108,111, 97,116, 32,118, + 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, +108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, + 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97, +108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40,102,108,111, 97,116, 32, +118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, + 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97,108, 50, 32, 62, 32, + 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, 47, 32,108,111,103, 50, + 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, 48, 59, 10,125, 10, 10, +118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32, +118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, +108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116, +104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109,105,110, 40, +118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,114,111,117,110,100, 40, +102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, +111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,118,111,105, +100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, + 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, + 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101, +108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, + 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32, +118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97, +108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, + 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,113,117,101,101,122,101, + 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102,108,111, 97,116, 32, 99, +101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, + 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 51, 44, 32, + 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, + 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32, +111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, +108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, + 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, + 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105, +100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, + 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, + 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, + 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111, +105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111, -117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117, -116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10, -125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, - 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9, -111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111, -117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, - 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, - 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32, -118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111, -117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111, -105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, - 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, -101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97, -108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111, -117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, - 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110, -111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101, -103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111, -117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105, -114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117, -116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, 59, - 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111, -105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,101, - 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32, -111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, - 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, - 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, - 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, - 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, - 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9, -111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,118,101, 99, 42,102, 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49, 46, - 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,111, - 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118, -101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, - 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, - 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111, -108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114, -101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99, -111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117, -114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 41, 46, 98, 59, 10, 10, 9,105,102, - 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,108, - 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,108, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,111, -108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102, -108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111, -117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, - 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111, -108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99, -111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, - 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, -125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, - 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, - 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101, -116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, -111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, - 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, - 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, - 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, - 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, - 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, - 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32, -118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, - 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, - 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99, -111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, - 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, - 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, - 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, - 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, - 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, - 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, - 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, - 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, - 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, - 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118, -101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111, -108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118, -101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, - 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, - 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, - 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, - 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, - 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99, -111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111, -117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99, -109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99, -111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, - 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, - 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, - 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, - 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, - 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, - 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118, +117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111,117,116,118,101, 99, 32, + 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, + 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32, +118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, + 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9,111,117,116,118, 97, +108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116, +104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9, +111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111,117,116,118, 97,108, 32, + 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97, +116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, +116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97, +108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105, +122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101,103, 97,116,101, 40,118, +101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111,117,116,118, 32, 61, 32, + 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105,114, 44, 32,118,101, 99, + 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117,116, 32,102,108,111, 97, +116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114, 59, 10, 9,111,117,116,100, +111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114, +118,101,115, 95,118,101, 99, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109, +112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, + 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, + 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, + 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, + 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116, +117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, + 53, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, + 32, 61, 32, 40,111,117,116,118,101, 99, 42,102, 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, + 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, + 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32, +111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116, +101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, +118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, +116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117, +114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, + 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99, +117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 41, 46, 98, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, + 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,108, 42,102, 97, 99, 41, 32, + 43, 32, 40, 99,111,108, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, + 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, + 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, + 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111, +108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117, +116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10, +125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, + 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105, +100, 32,115,101,116, 95,118, 97,108,117,101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, + 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114, +103, 98, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, + 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, + 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, + 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40, +102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, + 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, + 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99, +111,108, 49, 44, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, + 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32, +118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111, +117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, + 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, + 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, + 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, + 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, +111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, + 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111, +108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, + 10,118,111,105,100, 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, + 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111, +108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, + 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, + 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32, +102, 97, 99, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, + 48, 41, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, +125, 10, 10,118,111,105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118, 101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117, 116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, - 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, - 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, -125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, - 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, - 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, - 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99, -111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111, -117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117, -116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, - 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, - 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, - 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32, -102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, - 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, + 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9, +111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, + 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, + 42, 99,111,108, 50, 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, + 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, + 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, +103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, + 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, + 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111, +108, 50, 46,103, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117, +116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, + 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111, +108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, + 32, 45, 32, 99,111,108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, + 10,118,111,105,100, 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111, +108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10, +123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9, +111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32, +102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105, +100, 32,109,105,120, 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32, +118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, + 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97, +116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99, +111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, +114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, + 47, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99, +111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111, +108, 46,103, 47, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111, +117,116, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117, +116, 99,111,108, 46, 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40, +102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, + 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, + 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99, +111,108, 49, 44, 32, 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117, +116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114, +107, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, + 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97, +109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, + 32,109,105,110, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111, +117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105, +103,104,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99, +111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99, +108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, + 32, 61, 32,109, 97,120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, + 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, +100,111,100,103,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, - 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, - 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109, -105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, - 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, - 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, - 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, - 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32, -109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32, -118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, - 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99, -111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42, -102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105, -100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, + 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, + 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, + 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, + 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, + 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108, +115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, + 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, + 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, + 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116, +109,112, 32, 61, 32,111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, + 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, + 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, + 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, + 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, + 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116, +109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9, +101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111, +105,100, 32,109,105,120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, - 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117, -116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, - 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, - 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, -114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, - 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, - 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9, -105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109, -112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, - 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, - 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, - 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, - 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, - 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99, -111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111, -108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99, -111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, - 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, - 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, - 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, -111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, - 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, - 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, - 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111, -117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, - 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, - 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116, -109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115, -101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, - 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, - 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, - 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, - 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, - 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101, -108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, - 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, - 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, - 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, - 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32, -105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, - 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32, -109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, - 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, - 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32, -102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, - 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116, -111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, - 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115, -118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114, -103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111, -117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99, -111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118, -101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, - 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, - 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, - 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, - 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104, -115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42, -104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, - 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97, -108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, + 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108, +111, 97,116, 32,116,109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, + 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99, +111,108, 50, 46,114, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, +114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, + 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9, +111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, + 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117, +116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, + 42, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111, +108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, + 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, + 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, + 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9, +111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, + 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, + 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, + 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, + 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, + 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, + 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117, +101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97, 109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, - 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114, -103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115, -118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115, -118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115, -118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108, -111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111, -117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, - 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, - 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32, -104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, - 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, - 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46, -120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9, -104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, - 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99, -111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,111, -102,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111, -108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, - 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, - 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49, 46, - 48, 41, 59, 10, 9,118,101, 99, 52, 32,115, 99,114, 61, 32,111,110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108, 50, - 41, 42, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42, 99, -111,108, 49, 32, 43, 32,102, 97, 99, 42, 40, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,108, - 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101, 97, -114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, - 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97, -109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111, -108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, -114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32, 48, - 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, - 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, - 99,111,108, 50, 46,103, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, - 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108, -115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, - 42, 40, 99,111,108, 50, 46,103, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62, 32, - 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, - 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99, -111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 41, - 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32, -102, 97, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, - 52, 32,111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, - 9,111,117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, - 99, 41, 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105, -100, 32,114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -111,117,116,118, 97,108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, - 51, 53, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, - 32, 47, 42, 32,107,101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,119, -105,116,104, 32,116,101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,100, - 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, - 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105, -120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, - 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46, -119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108, -111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, - 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118, -101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59, - 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115, -118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104, -115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93, - 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, - 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93, - 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118, - 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115, -118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95, -114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, - 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97, -114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32, -111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61, - 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10, -125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111, - 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9, - 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105, -100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108, -112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, - 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32, -118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, - 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, - 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, - 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10, - 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101, - 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, - 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116, -118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119, -111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117, -101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, - 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46, -120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50, - 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97, - 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119, -105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, - 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, -105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111, -117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116, -117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, - 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97, -108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109, - 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114, -109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10, - 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116, -111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97, -116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116, -116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100, - 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101, - 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118, - 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, - 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48, - 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114, -109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99, -111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115, - 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110, -100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97, -108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116, -101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118, -101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32, -110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32, -116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, - 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97, -108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120, -121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105, -101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, - 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40, -111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, - 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, - 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, - 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, - 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114, -109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98, -108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, - 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97, -108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32, -111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, - 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, -114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, - 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, - 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99, -111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102, -108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, - 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, - 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, - 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32, -111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9, -102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99, -109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, - 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, - 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111, -108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, - 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, - 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, - 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99, -111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, -102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, - 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, - 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, - 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, - 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, - 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99, -111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, - 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, - 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, - 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111, -117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105, -110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99, -111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97, -116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, - 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32, -105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111, -117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, - 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, - 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, - 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, - 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10, -125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111, + 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118, +101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, + 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, + 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9, +104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, + 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, + 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, + 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118, +101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117, +116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, + 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9, +111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, + 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40, +104,115,118, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, + 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, + 43, 32,102, 97, 99, 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32, +111,117,116, 99,111,108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97, +116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, + 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, + 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, + 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95, +104,115,118, 40, 99,111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, + 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32, +102, 97, 99, 42,104,115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, + 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, + 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, + 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, + 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, + 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104, +115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, + 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116, +111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115, +118, 50, 46,120, 59, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, + 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, + 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, + 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,111,102,116, 40,102,108,111, + 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117, +116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, + 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, + 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,118, +101, 99, 52, 32,115, 99,114, 61, 32,111,110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108, 50, 41, 42, 40,111,110,101, + 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42, 99,111,108, 49, 32, 43, 32, +102, 97, 99, 42, 40, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,108, 49, 32, 43, 32, 99,111, +108, 49, 42,115, 99,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101, 97,114, 40,102,108,111, 97, +116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, + 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, + 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9, +105,102, 40, 99,111,108, 50, 46,114, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, + 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, + 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, + 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,103, + 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, + 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111, +117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, + 46,103, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62, 32, 48, 46, 53, 41, 10, 9, + 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111, +108, 50, 46, 98, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, + 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 41, 32, 45, 32, 49, 46, 48, + 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, + 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99, +111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111, +108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, 59, 10, 9,111, +117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98,116, +111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, + 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32, 99, +111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 32, 47, 42, 32,107,101, +101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,119,105,116,104, 32,116,101, +120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,100, 32,105,110,118,101,114, +116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32, +111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105,120, 40, 99,111,108, 46, +120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 46,120, +121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46,119, 59, 10,125, 10, 10, +118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108,111, 97,116, 32,115, 97, +116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, + 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32,104,115, +118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,104,115,118, + 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115,118, 91, 48, 93, 62, 49, + 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 48, 93, 60, + 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93, 32, 42, 61, 32,115, 97, +116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 49, 46, 48, 59, 32, +101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 48, 46, 48, 59, + 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118, 91, 50, 93, 62, 49, 46, + 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 50, 93, 60, 48, + 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115, +118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 44, 32, +111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97,114, 97,116,101, 95,114, +103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32,111,117,116, 32,102,108, +111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61, 32, 99,111,108, 46,114, + 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105, +100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111, 97,116, 32,103, 44, 32, +102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9, 99,111,108, 32, 61, 32, +118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,111,117,116,112, +117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111, +117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, + 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105, +100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 46, +121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,108,105,110, 40,118, +101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117, +116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32, +116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40, 40, + 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 42, 61, + 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119,111,111,100, 95,115,105, +110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, + 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, + 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46,120, 32, 43, 32,118,101, + 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50, 48, 46, 48, 59, 10, 9, +102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97, 41, 59, 10, 10, 9,118, + 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119,105, 44, 32,119,105, 44, + 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, + 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,105,109, 97,103,101, 40, +118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, + 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, +105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 41, 42, 48, + 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97,108, 46,120, 32, 61, 32, + 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109, 97,108, 46,121, 32, 61, + 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114,109, 97,108, 46,122, 32, + 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, + 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32, +111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, + 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100, 32,102,111,114, 32,110, +111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101, 97,118,105,110,103, 32, +111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118, 32, 61, 32,118,101, 99, + 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, + 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48, 46, 48, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99,111,114,114,101,115,112, +111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115, 32,110,101,103, 97,116, +101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110,100,101,114, 32,110,111, +114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111, +114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,116, + 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117, +116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32,110,111,114,109, 97,108, +105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95, +103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, + 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118, +105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10,125, 10, + 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, + 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32, +118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,111, 98,105,110,118,109, + 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 41, 46,120, +121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, 51, 32,118,110, 44, 32, +118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, 10, 9,114,101,102, 32, + 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, 42,118,110, 59, 10,125, + 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111, +117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,108,101,110,100,101,114, + 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,111,117, +116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, + 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, + 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, + 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32, +102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,109,117, +108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99, +111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99, +103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32, 40, +102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, + 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, + 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, + 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, + 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,116,101,120, + 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, + 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, +102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, + 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105, +110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, + 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32, + 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101, +120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40, +111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99, +111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 41, 59, + 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, + 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, 41, 42, 40, 49, 46, 48, + 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, + 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, 97, 99,109, 32, 43, 32, + 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111, +108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, + 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, 32,111,117,116, 99,111, 108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, -116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, - 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, - 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, - 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118, -111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, +116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, + 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, + 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, + 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, + 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, + 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, + 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, +114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, +114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, + 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99,116, 42, +111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46, 98, 32, + 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, + 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105, +100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, + 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, + 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, + 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99, +116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, + 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, +101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101, +120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, + 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, + 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99, +111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108, +115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, + 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,103, 41, + 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111, +117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9, +105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, + 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111, +105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, 101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, 109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, - 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99, + 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99, 111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111, -108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, +108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111, -108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, +108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, - 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108, -111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, - 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, - 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, - 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, - 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46, -114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, - 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, - 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, - 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105, -110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, - 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, - 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, - 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32, -118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, - 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99, -111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, - 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40, -111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, - 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118, -101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, - 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, - 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111, -108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, - 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32, -109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, - 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, - 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9, -109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, 32,111,117,116, 99,111, +108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, + 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111, +117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, + 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, + 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, + 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10, 9, -102, 97, 99,116, 32, 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, - 97, 99,116, 59, 10, 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32, -116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97, 99, -109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 98, -108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, - 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, - 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105, -110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111, -117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, - 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, - 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, - 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32, -102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99, -111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115, - 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95, -118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9, -102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, - 45, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, - 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117, -101, 95,115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95, -118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9, -102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99, -111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, - 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32, -102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97, -116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97, -108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, - 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, - 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118, - 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, - 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105, -110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, - 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,101, -120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99, -111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, - 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, - 95,100,105,102,102, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, - 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95, -118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9, -105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116, -101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97, -108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, - 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116, -101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, - 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, - 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32, -105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108, -117,101, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, - 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116, -101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, - 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, - 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32, -105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108, -117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, - 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97, -109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10, -123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32, -104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,114, - 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,109, -117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, - 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,102, - 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32, -105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, - 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, - 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, - 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, - 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, - 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98, 44, - 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,105, -116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44, 32, -114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,118, -101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, -118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,108, -117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99, 52, - 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114, -103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98, 44, - 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,116, -101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,110, -115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32, -102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, -116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,105, -110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32, -115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, -116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44, 32, -111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111, -117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,111, -117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,110, - 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, - 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51, 32, -116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, - 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,125, - 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,101, -120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99, -111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10, 10, -118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111, -117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, - 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,101, - 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,101, -120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97, -108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32, -116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, - 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99, 51, - 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32, -110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101, 32, -114,101,100, 32, 99,104, 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,110, -111,114,109, 97,108, 32,109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,116, -115,105,100,101, 32,119,111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,100, -111,110,101, 32, 98,101, 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,110, -111,114,109, 97,108, 32,117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,104, -111,117,108,100, 32,116,104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,116, -101, 32,109,117,115,116, 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,111, -114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,110, -111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,111, -114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44, 32, - 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,115, - 95,105,110,105,116, 40, 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44, 32, -111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, - 97,103,110,105,116,117,100,101, 32, 41, 10,123, 10, 9,118, 78,111,114,103, 32, 61, 32,118, 78, 59, 10, 9,118, 78, 97, 99, 99, - 32, 61, 32,118, 78, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, - 10, 47, 42, 42, 32,104,101,108,112,101,114, 32,109,101,116,104,111,100, 32,116,111, 32,101,120,116,114, 97, 99,116, 32,116,104, -101, 32,117,112,112,101,114, 32,108,101,102,116, 32, 51,120, 51, 32,109, 97,116,114,105,120, 32,102,114,111,109, 32, 97, 32, 52, -120, 52, 32,109, 97,116,114,105,120, 32, 42, 47, 10,109, 97,116, 51, 32,116,111, 95,109, 97,116, 51, 40,109, 97,116, 52, 32,109, - 52, 41, 10,123, 10, 9,109, 97,116, 51, 32,109, 51, 59, 10, 9,109, 51, 91, 48, 93, 32, 61, 32,109, 52, 91, 48, 93, 46,120,121, -122, 59, 10, 9,109, 51, 91, 49, 93, 32, 61, 32,109, 52, 91, 49, 93, 46,120,121,122, 59, 10, 9,109, 51, 91, 50, 93, 32, 61, 32, -109, 52, 91, 50, 93, 46,120,121,122, 59, 10, 9,114,101,116,117,114,110, 32,109, 51, 59, 10,125, 10, 10,118,111,105,100, 32,109, -116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,111, 98,106,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114, -102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, -109, 97,116, 52, 32,109, 86,105,101,119, 44, 32,109, 97,116, 52, 32,109, 86,105,101,119, 73,110,118, 44, 32,109, 97,116, 52, 32, -109, 79, 98,106, 44, 32,109, 97,116, 52, 32,109, 79, 98,106, 73,110,118, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108, -111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, - 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97, -103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, - 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, - 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,109, 97,116, 51, - 32,111, 98,106, 50,118,105,101,119, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, - 41, 59, 10, 9,109, 97,116, 51, 32,118,105,101,119, 50,111, 98,106, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,109, 79, 98,106, - 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 41, 59, 10, 9, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, - 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, - 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,121, 40, - 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,110,111,114,109, 97,108,105,122, -101, 40, 32,115,117,114,102, 95,110,111,114,109, 32, 42, 32,111, 98,106, 50,118,105,101,119, 32, 41, 59, 10, 10, 9,118, 82, 49, - 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, - 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100, -111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9, 47, 42, 32,112,114,101,116,114, - 97,110,115,102,111,114,109, 32,118, 78, 97, 99, 99, 32, 40,105,110, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108, -121, 41, 32,117,115,105,110,103, 32,116,104,101, 32,105,110,118,101,114,115,101, 32,116,114, 97,110,115,112,111,115,101,100, 32, - 42, 47, 10, 9,118, 82, 49, 32, 61, 32,118, 82, 49, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 82, 50, 32, 61, - 32,118, 82, 50, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 78, 32, 61, 32,118, 78, 32, 42, 32,118,105,101,119, - 50,111, 98,106, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40, -102, 68,101,116, 41, 32, 42, 32,108,101,110,103,116,104, 40,118, 78, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, - 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, - 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117, -116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109, -112, 95,105,110,105,116, 95,116,101,120,116,117,114,101,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112, -111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,102, -108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, - 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, - 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117, -116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32, -118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118, -101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, - 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, - 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97, -108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97,108, - 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, - 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32,110,111,114,109, 97,108,105,122,101, - 40, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 41, 59, 10, 9,102, 68,101,116, 32, - 61, 32,115,105,103,110, 40, 32,100,111,116, 40,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 41, 32, 41, 59, 10, 9, 10, 9, -102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, - 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100, -101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97, -103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105, -100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,118,105,101,119,115,112, 97, 99,101, 40, 32,118,101, 99, 51, - 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9, 9, - 9, 9, 9, 32, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118, -101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,102,108,111, 97, -116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, - 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, - 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, - 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102, 95, -112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,114, -102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32, 47, - 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,120, - 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, - 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103, -109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, - 82, 49, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40, -102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40, -102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, - 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100, -101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97,112, 51, 40, 32,118,101, 99, 51, 32, -116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97, -108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108, -111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, - 50, 32, 83, 84,108,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50, 32, 83, 84,108,114, 32, 61, 32, -116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9,118,101, 99, - 50, 32, 83, 84,117,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120, -121, 41, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72,108,108, 44, 72,108,114, 44, 72,117,108, 59, 10, 9,114,103, 98,116, -111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,108, 41, 44, 32, 72,108,108, 32, 41, - 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,114, 41, - 44, 32, 72,108,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, - 44, 32, 83, 84,117,108, 41, 44, 32, 72,117,108, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, - 42, 32, 40, 72,108,114, 32, 45, 32, 72,108,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, - 72,117,108, 32, 45, 32, 72,108,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97, -112, 53, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102, -108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, - 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, - 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, - 10, 10, 9,118,101, 99, 50, 32, 83, 84, 99, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50, 32, 83, 84, -108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, - 99, 50, 32, 83, 84,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, - 59, 10, 9,118,101, 99, 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84, -101,120, 68,121, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, - 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72, 99, 44, 72,108, 44, 72,114, 44, 72,100, - 44, 72,117, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84, - 99, 41, 44, 32, 72, 99, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, - 97, 44, 32, 83, 84,108, 41, 44, 32, 72,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, - 50, 68, 40,105,109, 97, 44, 32, 83, 84,114, 41, 44, 32, 72,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101, -120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 32, 41, 59, 10, 9,114,103, 98,116,111, 98, -119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 32, 41, 59, 10, 9, 10, - 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32, 45, 32, 72,108, 41, 59, 10, 9,100, 66,116, 32, - 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, -101,120, 95, 98,117,109,112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108, -101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44, 32,102,108,111, 97,116, 32,105,109, 97, - 95,121, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61, 32, 49, 59, 9, 9, 47, 47, 32,110,101,103, 97, -116,101, 32,116,104,105,115, 32,105,102, 32,102,108,105,112,112,101,100, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100, -105,110, 97,116,101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120, -121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, - 59, 10, 9, 10, 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,110,116, 32,117,115,105,110,103, 32, 97, 32,100,101,114, -105,118, 97,116,105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115, 99,114,105, 98,101,100, 32,104,101,114,101, 10, 9, 47, - 47, 32,104,116,116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,110, 51,100, 46, 98,108,111,103,115,112,111,116, 46, 99, -111,109, 47, 50, 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,105,118,101, 45,109, 97,112,115, 46,104,116,109,108, 10, - 9,118,101, 99, 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 44, 32,105,109, 97, 95,121, 41, 59, 10, - 9,118,101, 99, 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,108,101, 42,100,105,109, 42, 40, 50, 42,116,101,120,116, -117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120,121, 45, 49, 41, 59, 10, 9, 10, 9,100, +116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101, +120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117, +116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, + 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, + 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99, +111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114, +103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111, +108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118, +101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95, 99,111, +108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, + 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111, +108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97, +108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, + 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, + 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, +102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,109, +112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,102, +108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99, +111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, + 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, + 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, + 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, + 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, + 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, + 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, + 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117, +116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110, 40, +102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, + 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95, +118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, + 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99, +109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32, +111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,117, 98, 40, +102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, + 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95, +118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, + 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111, +117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108, +111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32, +102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111, +108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97, +114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32,102, + 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99, +111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118, 40,102,108,111, 97,116, + 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99, +116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10, +123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40, +102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, + 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, + 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, + 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40, +102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97, +116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, + 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95, +118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, + 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, + 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100, 97, +114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102, +108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108, +117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,111, + 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32, +111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, + 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103, +104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102, +108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108, +117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,111, + 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32, +111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, + 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97, +109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, + 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,111, + 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116, +102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111, +117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, + 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,108, +121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, +104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32, 60, + 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,114, + 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101, 32, +111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, + 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108, +112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109, +116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, + 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99, +111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,111, +105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102, +108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,100, +111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,103, + 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,108, +111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101, 41, + 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125, 10, + 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103, 98, + 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118, +101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103, 98, + 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108, 40, +102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44, 32, +111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,110, +116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,105, +116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105, +108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,108, + 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108, +111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, + 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98, 32, + 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59, 10, + 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118, +111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, + 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, + 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,100, + 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118, +101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9, +111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,109, +116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, + 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,120, +121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59, 10, +125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, + 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111, +117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114, +101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, + 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,116,101,120, 99,111, + 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, + 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101, 32,114,101,100, 32, 99,104, + 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108, 32, +109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,116,115,105,100,101, 32,119, +111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,100,111,110,101, 32, 98,101, + 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108, 32, +117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,104,111,117,108,100, 32,116, +104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,116,101, 32,109,117,115,116, + 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,111,114, 32, 61, 32,116,101, +120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,110,111,114,109, 97,108, 32, + 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,111,114, 46,103, 44, 32, 99, +111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44, 32, 48, 46, 53, 41, 41, 59, + 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,115, 95,105,110,105,116, 40, + 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44, 32,111,117,116, 32,118,101, + 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117, +100,101, 32, 41, 10,123, 10, 9,118, 78,111,114,103, 32, 61, 32,118, 78, 59, 10, 9,118, 78, 97, 99, 99, 32, 61, 32,118, 78, 59, + 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 42, 32,104, +101,108,112,101,114, 32,109,101,116,104,111,100, 32,116,111, 32,101,120,116,114, 97, 99,116, 32,116,104,101, 32,117,112,112,101, +114, 32,108,101,102,116, 32, 51,120, 51, 32,109, 97,116,114,105,120, 32,102,114,111,109, 32, 97, 32, 52,120, 52, 32,109, 97,116, +114,105,120, 32, 42, 47, 10,109, 97,116, 51, 32,116,111, 95,109, 97,116, 51, 40,109, 97,116, 52, 32,109, 52, 41, 10,123, 10, 9, +109, 97,116, 51, 32,109, 51, 59, 10, 9,109, 51, 91, 48, 93, 32, 61, 32,109, 52, 91, 48, 93, 46,120,121,122, 59, 10, 9,109, 51, + 91, 49, 93, 32, 61, 32,109, 52, 91, 49, 93, 46,120,121,122, 59, 10, 9,109, 51, 91, 50, 93, 32, 61, 32,109, 52, 91, 50, 93, 46, +120,121,122, 59, 10, 9,114,101,116,117,114,110, 32,109, 51, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117, +109,112, 95,105,110,105,116, 95,111, 98,106,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, + 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,109, 97,116, 52, 32,109, + 86,105,101,119, 44, 32,109, 97,116, 52, 32,109, 86,105,101,119, 73,110,118, 44, 32,109, 97,116, 52, 32,109, 79, 98,106, 44, 32, +109, 97,116, 52, 32,109, 79, 98,106, 73,110,118, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102, 80, +114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, + 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100, +101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, + 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,109, 97,116, 51, 32,111, 98,106, 50,118, +105,101,119, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, 41, 59, 10, 9,109, 97, +116, 51, 32,118,105,101,119, 50,111, 98,106, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,109, 79, 98,106, 73,110,118, 32, 42, 32, +109, 86,105,101,119, 73,110,118, 41, 59, 10, 9, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,118,105,101, +119, 50,111, 98,106, 32, 42, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32, +118, 83,105,103,109, 97, 84, 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,121, 40, 32,115,117,114,102, 95, +112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,115,117,114, +102, 95,110,111,114,109, 32, 42, 32,111, 98,106, 50,118,105,101,119, 32, 41, 59, 10, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111, +115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, + 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, + 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9, 47, 42, 32,112,114,101,116,114, 97,110,115,102,111,114, +109, 32,118, 78, 97, 99, 99, 32, 40,105,110, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 41, 32,117,115,105, +110,103, 32,116,104,101, 32,105,110,118,101,114,115,101, 32,116,114, 97,110,115,112,111,115,101,100, 32, 42, 47, 10, 9,118, 82, + 49, 32, 61, 32,118, 82, 49, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 82, 50, 32, 61, 32,118, 82, 50, 32, 42, + 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 78, 32, 61, 32,118, 78, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, + 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 32, + 42, 32,108,101,110,103,116,104, 40,118, 78, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, + 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117, +100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, + 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, + 95,116,101,120,116,117,114,101,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, + 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102, + 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, + 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116, +117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, + 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, + 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83, +105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32, +118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, + 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32, +105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, + 9,118, 82, 49, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, + 44, 32,118, 78, 32, 41, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115, +115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 41, 59, 10, 9,102, 68,101,116, 32, 61, 32,115,105,103,110, + 40, 32,100,111,116, 40,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 41, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, +102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111, +117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80, +114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100, +101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, + 95, 98,117,109,112, 95,105,110,105,116, 95,118,105,101,119,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95, +112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32, +102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, + 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101, +118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111, +117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, + 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9, +118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, + 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, + 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, + 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97, +108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, + 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, + 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, + 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, + 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105, +116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101, +118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10, +118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97,112, 51, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, + 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66, +115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 83, 84,108,108, + 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50, 32, 83, 84,108,114, 32, 61, 32,116,101,120, 99,111, 46, +120,121, 32, 43, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117,108, + 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9, + 10, 9,102,108,111, 97,116, 32, 72,108,108, 44, 72,108,114, 44, 72,117,108, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116, +101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,108, 41, 44, 32, 72,108,108, 32, 41, 59, 10, 9,114,103, 98, +116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,114, 41, 44, 32, 72,108,114, 32, + 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117,108, + 41, 44, 32, 72,117,108, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,108,114, + 32, 45, 32, 72,108,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117,108, 32, 45, 32, + 72,108,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97,112, 53, 40, 32,118,101, + 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, + 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, + 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9, +118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, + 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, + 50, 32, 83, 84, 99, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101, +120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, + 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, + 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, + 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101, +120, 68,121, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72, 99, 44, 72,108, 44, 72,114, 44, 72,100, 44, 72,117, 59, 10, 9, +114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84, 99, 41, 44, 32, 72, 99, + 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108, + 41, 44, 32, 72,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, + 44, 32, 83, 84,114, 41, 44, 32, 72,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, + 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120, +116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, + 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32, 45, 32, 72,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97, +108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109, +112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105, +109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,121, 44, 32,102,108, +111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, + 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61, 32, 49, 46, 48, 59, 9, 9, 47, 47, 32,110,101,103, 97,116,101, 32,116, +104,105,115, 32,105,102, 32,102,108,105,112,112,101,100, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116, +101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, + 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9, 10, + 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,110,116, 32,117,115,105,110,103, 32, 97, 32,100,101,114,105,118, 97,116, +105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115, 99,114,105, 98,101,100, 32,104,101,114,101, 10, 9, 47, 47, 32,104,116, +116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,110, 51,100, 46, 98,108,111,103,115,112,111,116, 46, 99,111,109, 47, 50, + 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,105,118,101, 45,109, 97,112,115, 46,104,116,109,108, 10, 9,118,101, 99, + 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 44, 32,105,109, 97, 95,121, 41, 59, 10, 9,118,101, 99, + 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,108,101, 42,100,105,109, 42, 40, 50, 46, 48, 42,116,101,120,116,117,114, +101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120,121, 45, 49, 46, 48, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,120, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,120, 46,121, 59, 10, 9,100, 66,116, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,121, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,121, 46,121, 59, 10,125, 10, 10,118,111,105,100, 32,109,116, -- cgit v1.2.3 From f6a2b8d724646ac357a0eafc2d29b345fdc1ba5f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 15:08:54 +0000 Subject: BLI_strescape for a basic, python like string escaping, currently only use for drag and drop ID's into the console but should eventually be used for the animsys too. --- source/blender/blenlib/BLI_string.h | 2 + source/blender/blenlib/intern/string.c | 43 ++++++++++++++++++++++ .../blender/editors/space_console/space_console.c | 5 ++- 3 files changed, 49 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h index 408809661cf..4a0c2ab9482 100644 --- a/source/blender/blenlib/BLI_string.h +++ b/source/blender/blenlib/BLI_string.h @@ -122,6 +122,8 @@ __attribute__ ((format (printf, 1, 2))) #endif ; +size_t BLI_strescape(char *dst, const char *src, const size_t maxlen); + /** * Compare two strings without regard to case. * diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 8e0314ec17f..2f1ddf294ce 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -117,6 +117,49 @@ char *BLI_sprintfN(const char *format, ...) return n; } + +/* match pythons string escaping, assume double quotes - (") + * TODO: should be used to create RNA animation paths. + * TODO: support more fancy string escaping. current code is primitive + * this basically is an ascii version of PyUnicode_EncodeUnicodeEscape() + * which is a useful reference. */ +size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) +{ + size_t len= 0; + while(len < maxlen) { + switch(*src) { + case '\0': + *dst= '\0'; + break; + case '\\': + case '"': + + /* less common but should also be support */ + case '\t': + case '\n': + case '\r': + if(len + 1 < maxlen) { + *dst++ = '\\'; + len++; + } + else { + /* not enough space to escape */ + *dst= '\0'; + break; + } + /* intentionally pass through */ + default: + *dst = *src; + } + dst++; + src++; + len++; + } + + return len; +} + + /* Makes a copy of the text within the "" that appear after some text 'blahblah' * i.e. for string 'pose["apples"]' with prefix 'pose[', it should grab "apples" * diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index 890a6cf545a..52c5100900d 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -165,8 +165,11 @@ static void id_drop_copy(wmDrag *drag, wmDropBox *drop) { char text[64]; ID *id= drag->poin; + char id_esc[(sizeof(id->name) - 2) * 2]; - snprintf(text, sizeof(text), "bpy.data.%s['%s']", BKE_idcode_to_name_plural(GS(id->name)), id->name+2); + BLI_strescape(id_esc, id->name+2, sizeof(id_esc)); + + snprintf(text, sizeof(text), "bpy.data.%s[\"%s\"]", BKE_idcode_to_name_plural(GS(id->name)), id_esc); /* copy drag path to properties */ RNA_string_set(drop->ptr, "text", text); -- cgit v1.2.3 From 9a9513a9f09f5524235e202a095b04863a07a52b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 19:58:15 +0000 Subject: fix for 3 bugs in bone renaming - renaming a bone could crash if the area had to spaces in it (reported by Sebastian Koenig). - renaming bones wouldn't update inactive 3d views locked bone names. - selecting locked bones in the UI didnt work in editmode. --- source/blender/editors/armature/editarmature.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 628cdbf21e9..bd8f431535e 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -5402,12 +5402,14 @@ void ED_armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep) ScrArea *sa; /* add regions */ for(sa= screen->areabase.first; sa; sa= sa->next) { - SpaceLink *sl= sa->spacedata.first; - if(sl->spacetype == SPACE_VIEW3D) { - View3D *v3d= (View3D *)sl; - if(v3d->ob_centre && v3d->ob_centre->data == arm) { - if (!strcmp(v3d->ob_centre_bone, oldname)) { - BLI_strncpy(v3d->ob_centre_bone, newname, MAXBONENAME); + SpaceLink *sl; + for (sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype==SPACE_VIEW3D) { + View3D *v3d= (View3D *)sl; + if(v3d->ob_centre && v3d->ob_centre->data == arm) { + if (!strcmp(v3d->ob_centre_bone, oldname)) { + BLI_strncpy(v3d->ob_centre_bone, newname, MAXBONENAME); + } } } } -- cgit v1.2.3 From a35b3c5b505ded03bc8a233e6943c3d9fe3faeb5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 20:49:06 +0000 Subject: fix [#28352] Deleting group name in particle system -> panel: Render crashes Blender --- source/blender/blenloader/intern/writefile.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 085cd2cb29c..5b7fcc0e935 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -867,10 +867,12 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase) for(; dw; dw=dw->next) { /* update indices */ dw->index = 0; - go = part->dup_group->gobject.first; - while(go && go->ob != dw->ob) { - go=go->next; - dw->index++; + if(part->dup_group) { /* can be NULL if lining fails or set to None */ + go = part->dup_group->gobject.first; + while(go && go->ob != dw->ob) { + go=go->next; + dw->index++; + } } writestruct(wd, DATA, "ParticleDupliWeight", 1, dw); } -- cgit v1.2.3 From 3bb397be76e99a0ea0851179bb264df02b9f244c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Aug 2011 20:54:44 +0000 Subject: fix [#28351] active RenderLayer can be set to None, leading to crash --- source/blender/makesrna/intern/rna_scene.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 29cfc695911..0129629291f 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -700,8 +700,8 @@ static void rna_RenderSettings_active_layer_set(PointerRNA *ptr, PointerRNA valu { RenderData *rd= (RenderData*)ptr->data; SceneRenderLayer *srl= (SceneRenderLayer*)value.data; - - rd->actlay = BLI_findindex(&rd->layers, srl); + const int index= BLI_findindex(&rd->layers, srl); + if (index != -1) rd->actlay= index; } static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value) @@ -1973,7 +1973,7 @@ static void rna_def_render_layers(BlenderRNA *brna, PropertyRNA *cprop) prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_UNSIGNED); RNA_def_property_struct_type(prop, "SceneRenderLayer"); RNA_def_property_pointer_funcs(prop, "rna_RenderSettings_active_layer_get", "rna_RenderSettings_active_layer_set", NULL, NULL); - RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_NULL); RNA_def_property_ui_text(prop, "Active Render Layer", "Active Render Layer"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); -- cgit v1.2.3 From f9bffb3ca0ca88a7e774b0ee0da1d384707f0495 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 24 Aug 2011 00:44:58 +0000 Subject: fix [#28340] Can't set image depth, quality from image save --- source/blender/editors/space_image/image_ops.c | 242 ++++++++++++++----------- source/blender/makesdna/DNA_space_types.h | 2 +- source/blender/makesrna/RNA_enum_types.h | 1 + source/blender/makesrna/intern/rna_scene.c | 16 +- 4 files changed, 147 insertions(+), 114 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 6e0d1909963..d483dd45f7f 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -938,9 +938,100 @@ void IMAGE_OT_replace(wmOperatorType *ot) /******************** save image as operator ********************/ +typedef struct { + /* matching scene->r settings */ + short planes, imtype, subimtype, quality; + char filepath[FILE_MAX]; /* keep absolute */ +} SaveImageOptions; + +static void save_image_options_defaults(SaveImageOptions *simopts) +{ + simopts->planes= R_PLANES24; + simopts->imtype= R_PNG; + simopts->subimtype= 0; + simopts->quality= 90; + simopts->filepath[0]= '\0'; +} + +static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, Scene *scene, const short guess_path) +{ + void *lock; + ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock); + + if(ibuf) { + Image *ima= sima->image; + RenderResult *rr= BKE_image_acquire_renderresult(scene, ima); + + simopts->planes= ibuf->depth; + + /* cant save multilayer sequence, ima->rr isn't valid for a specific frame */ + if(rr && !(ima->source==IMA_SRC_SEQUENCE && ima->type==IMA_TYPE_MULTILAYER)) + simopts->imtype= R_MULTILAYER; + else if(ima->type==IMA_TYPE_R_RESULT) + simopts->imtype= scene->r.imtype; + else if (ima->source == IMA_SRC_GENERATED) + simopts->imtype= R_PNG; + else + simopts->imtype= BKE_ftype_to_imtype(ibuf->ftype); + + simopts->subimtype= scene->r.subimtype; /* XXX - this is lame, we need to make these available too! */ + simopts->quality= ibuf->ftype & 0xff; + + BLI_strncpy(simopts->filepath, ibuf->name, sizeof(simopts->filepath)); + + /* sanitize all settings */ + + /* unlikely but just incase */ + if (ELEM3(simopts->planes, R_PLANESBW, R_PLANES24, R_PLANES32) == 0) { + simopts->planes= 32; + } + + /* some formats dont use quality so fallback to scenes quality */ + if (simopts->quality == 0) { + simopts->quality= scene->r.quality; + } + + /* check for empty path */ + if(guess_path && simopts->filepath[0]==0) { + if ( (G.ima[0] == '/') && (G.ima[1] == '/') && (G.ima[2] == '\0') ) { + BLI_strncpy(simopts->filepath, "//untitled", FILE_MAX); + } else { + BLI_strncpy(simopts->filepath, G.ima, FILE_MAX); + } + BLI_path_abs(simopts->filepath, G.main->name); + } + + /* cleanup */ + BKE_image_release_renderresult(scene, ima); + } + + ED_space_image_release_buffer(sima, lock); + + return (ibuf != NULL); +} + +static void save_image_options_from_op(SaveImageOptions *simopts, wmOperator *op) +{ + if (RNA_property_is_set(op->ptr, "color_mode")) simopts->planes= RNA_enum_get(op->ptr, "color_mode"); + if (RNA_property_is_set(op->ptr, "file_format")) simopts->imtype= RNA_enum_get(op->ptr, "file_format"); + // if (RNA_property_is_set(op->ptr, "subimtype")) simopts->subimtype= RNA_enum_get(op->ptr, "subimtype"); // XXX + if (RNA_property_is_set(op->ptr, "file_quality")) simopts->quality= RNA_int_get(op->ptr, "file_quality"); + + if (RNA_property_is_set(op->ptr, "filepath")) RNA_string_get(op->ptr, "filepath", simopts->filepath); +} + +static void save_image_options_to_op(SaveImageOptions *simopts, wmOperator *op) +{ + RNA_enum_set(op->ptr, "color_mode", simopts->planes); + RNA_enum_set(op->ptr, "file_format", simopts->imtype); + // RNA_enum_set(op->ptr, "subimtype", simopts->subimtype); + RNA_int_set(op->ptr, "file_quality", simopts->quality); + RNA_string_set(op->ptr, "filepath", simopts->filepath); +} + /* assumes name is FILE_MAX */ /* ima->name and ibuf->name should end up the same */ -static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOperator *op, char *path, int do_newpath) +static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveImageOptions *simopts, int do_newpath) { Image *ima= ED_space_image(sima); void *lock; @@ -952,18 +1043,17 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera const short save_copy= (RNA_struct_find_property(op->ptr, "copy") && RNA_boolean_get(op->ptr, "copy")); short ok= FALSE; - BLI_path_abs(path, bmain->name); /* old global to ensure a 2nd save goes to same dir */ - BLI_strncpy(G.ima, path, sizeof(G.ima)); + BLI_strncpy(G.ima, simopts->filepath, sizeof(G.ima)); WM_cursor_wait(1); if(ima->type == IMA_TYPE_R_RESULT) { /* enforce user setting for RGB or RGBA, but skip BW */ - if(scene->r.planes==32) { + if(simopts->planes==32) { ibuf->depth= 32; } - else if(scene->r.planes==24) { + else if(simopts->planes==24) { ibuf->depth= 24; } } @@ -974,15 +1064,12 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera ibuf->depth= BKE_alphatest_ibuf(ibuf) ? 32 : 24; } } - - if(scene->r.scemode & R_EXTENSION) { - BKE_add_image_extension(path, sima->imtypenr); - } - if(sima->imtypenr==R_MULTILAYER) { + if(simopts->imtype==R_MULTILAYER) { + Scene *scene= CTX_data_scene(C); RenderResult *rr= BKE_image_acquire_renderresult(scene, ima); if(rr) { - RE_WriteRenderResult(rr, path, scene->r.quality); + RE_WriteRenderResult(rr, simopts->filepath, simopts->quality); ok= TRUE; } else { @@ -990,23 +1077,23 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera } BKE_image_release_renderresult(scene, ima); } - else if (BKE_write_ibuf(ibuf, path, sima->imtypenr, scene->r.subimtype, scene->r.quality)) { + else if (BKE_write_ibuf(ibuf, simopts->filepath, simopts->imtype, simopts->subimtype, simopts->quality)) { ok= TRUE; } if(ok) { if(relative) - BLI_path_rel(path, bmain->name); /* only after saving */ + BLI_path_rel(simopts->filepath, bmain->name); /* only after saving */ if(ibuf->name[0]==0) { - BLI_strncpy(ibuf->name, path, sizeof(ibuf->name)); - BLI_strncpy(ima->name, path, sizeof(ima->name)); + BLI_strncpy(ibuf->name, simopts->filepath, sizeof(ibuf->name)); + BLI_strncpy(ima->name, simopts->filepath, sizeof(ima->name)); } if(!save_copy) { if(do_newpath) { - BLI_strncpy(ima->name, path, sizeof(ima->name)); - BLI_strncpy(ibuf->name, path, sizeof(ibuf->name)); + BLI_strncpy(ima->name, simopts->filepath, sizeof(ima->name)); + BLI_strncpy(ibuf->name, simopts->filepath, sizeof(ibuf->name)); } ibuf->userflags &= ~IB_BITMAPDIRTY; @@ -1034,7 +1121,7 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera } } else { - BKE_reportf(op->reports, RPT_ERROR, "Couldn't write image: %s", path); + BKE_reportf(op->reports, RPT_ERROR, "Couldn't write image: %s", simopts->filepath); } @@ -1049,17 +1136,14 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera static int save_as_exec(bContext *C, wmOperator *op) { SpaceImage *sima= CTX_wm_space_image(C); - Scene *scene= CTX_data_scene(C); - Image *ima = ED_space_image(sima); - char str[FILE_MAX]; + SaveImageOptions simopts; - if(!ima) - return OPERATOR_CANCELLED; + /* just incase to initialize values, + * these should be set on invoke or by the caller. */ + save_image_options_defaults(&simopts); + save_image_options_from_op(&simopts, op); - sima->imtypenr= RNA_enum_get(op->ptr, "file_type"); - RNA_string_get(op->ptr, "filepath", str); - - save_image_doit(C, sima, scene, op, str, TRUE); + save_image_doit(C, sima, op, &simopts, TRUE); return OPERATOR_FINISHED; } @@ -1069,7 +1153,7 @@ static int save_as_check(bContext *UNUSED(C), wmOperator *op) { char filepath[FILE_MAX]; RNA_string_get(op->ptr, "filepath", filepath); - if(BKE_add_image_extension(filepath, RNA_enum_get(op->ptr, "file_type"))) { + if(BKE_add_image_extension(filepath, RNA_enum_get(op->ptr, "file_format"))) { RNA_string_set(op->ptr, "filepath", filepath); return TRUE; } @@ -1081,65 +1165,33 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) SpaceImage *sima= CTX_wm_space_image(C); Image *ima = ED_space_image(sima); Scene *scene= CTX_data_scene(C); - ImBuf *ibuf; - char filename[FILE_MAX]; - - void *lock; + SaveImageOptions simopts; if(!RNA_property_is_set(op->ptr, "relative_path")) RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); if(RNA_property_is_set(op->ptr, "filepath")) return save_as_exec(C, op); - - if(!ima) - return OPERATOR_CANCELLED; - /* always opens fileselect */ - ibuf= ED_space_image_acquire_buffer(sima, &lock); - - if(ibuf) { - /* cant save multilayer sequence, ima->rr isn't valid for a specific frame */ - if(ima->rr && !(ima->source==IMA_SRC_SEQUENCE && ima->type==IMA_TYPE_MULTILAYER)) - sima->imtypenr= R_MULTILAYER; - else if(ima->type==IMA_TYPE_R_RESULT) - sima->imtypenr= scene->r.imtype; - else if (ima->source == IMA_SRC_GENERATED) - sima->imtypenr= R_PNG; - else - sima->imtypenr= BKE_ftype_to_imtype(ibuf->ftype); - - RNA_enum_set(op->ptr, "file_type", sima->imtypenr); - - if(ibuf->name[0]==0) - if ( (G.ima[0] == '/') && (G.ima[1] == '/') && (G.ima[2] == '\0') ) { - BLI_strncpy(filename, "//untitled", FILE_MAX); - } else { - BLI_strncpy(filename, G.ima, FILE_MAX); - } - else - BLI_strncpy(filename, ibuf->name, FILE_MAX); - - /* enable save_copy by default for render results */ - if(ELEM(ima->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE) && !RNA_property_is_set(op->ptr, "copy")) { - RNA_boolean_set(op->ptr, "copy", TRUE); - } - - // XXX note: we can give default menu enums to operator for this - image_filesel(C, op, filename); + if (save_image_options_init(&simopts, sima, scene, TRUE) == 0) + return OPERATOR_CANCELLED; + save_image_options_to_op(&simopts, op); - ED_space_image_release_buffer(sima, lock); - - return OPERATOR_RUNNING_MODAL; + /* enable save_copy by default for render results */ + if(ELEM(ima->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE) && !RNA_property_is_set(op->ptr, "copy")) { + RNA_boolean_set(op->ptr, "copy", TRUE); } - ED_space_image_release_buffer(sima, lock); + // XXX note: we can give default menu enums to operator for this + image_filesel(C, op, simopts.filepath); - return OPERATOR_CANCELLED; + return OPERATOR_RUNNING_MODAL; } void IMAGE_OT_save_as(wmOperatorType *ot) { + PropertyRNA *prop; + /* identifiers */ ot->name= "Save As Image"; ot->idname= "IMAGE_OT_save_as"; @@ -1154,7 +1206,13 @@ void IMAGE_OT_save_as(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - RNA_def_enum(ot->srna, "file_type", image_file_type_items, R_PNG, "File Type", "File type to save image as."); + + /* format options */ + RNA_def_enum(ot->srna, "file_format", image_file_type_items, R_PNG, "File Type", "File type to save image as."); + RNA_def_enum(ot->srna, "color_mode", image_color_mode_items, R_PLANES24, "Channels", "Image channels to save"); + prop= RNA_def_int(ot->srna, "file_quality", 90, 0, 100, "Quality", "", 0, 100); + RNA_def_property_subtype(prop, PROP_PERCENTAGE); + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); RNA_def_boolean(ot->srna, "copy", 0, "Copy", "Create a new image file without modifying the current image in blender"); @@ -1164,45 +1222,19 @@ void IMAGE_OT_save_as(wmOperatorType *ot) static int save_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); SpaceImage *sima= CTX_wm_space_image(C); - Image *ima = ED_space_image(sima); - void *lock; - ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock); Scene *scene= CTX_data_scene(C); - RenderResult *rr; - char name[FILE_MAX]; + SaveImageOptions simopts; - if(!ima || !ibuf) { - ED_space_image_release_buffer(sima, lock); + if (save_image_options_init(&simopts, sima, scene, FALSE) == 0) return OPERATOR_CANCELLED; - } - - /* if exists, saves over without fileselect */ - - BLI_strncpy(name, ima->name, FILE_MAX); - if(name[0]==0) - BLI_strncpy(name, G.ima, FILE_MAX); - else - BLI_path_abs(name, bmain->name); - - if(BLI_exists(name) && BLI_is_writable(name)) { - rr= BKE_image_acquire_renderresult(scene, ima); + save_image_options_from_op(&simopts, op); - if(rr) - sima->imtypenr= R_MULTILAYER; - else - sima->imtypenr= BKE_ftype_to_imtype(ibuf->ftype); - - BKE_image_release_renderresult(scene, ima); - ED_space_image_release_buffer(sima, lock); - - save_image_doit(C, sima, scene, op, name, FALSE); + if (BLI_exists(simopts.filepath) && BLI_is_writable(simopts.filepath)) { + save_image_doit(C, sima, op, &simopts, FALSE); } else { - ED_space_image_release_buffer(sima, lock); - - BKE_report(op->reports, RPT_ERROR, "Can not save image."); + BKE_reportf(op->reports, RPT_ERROR, "Can not save image, path '%s' is not writable.", simopts.filepath); return OPERATOR_CANCELLED; } diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 1549bd71748..67899db5538 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -267,7 +267,7 @@ typedef struct SpaceImage { float centx, centy; /* storage for offset while render drawing */ short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */ - short imtypenr; + short pad; short lock; short pin; char dt_uv; /* UV draw type */ diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index fc415dc8082..c82a43e371c 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -54,6 +54,7 @@ extern EnumPropertyItem constraint_type_items[]; extern EnumPropertyItem boidrule_type_items[]; extern EnumPropertyItem image_type_items[]; +extern EnumPropertyItem image_color_mode_items[]; extern EnumPropertyItem beztriple_keyframe_type_items[]; extern EnumPropertyItem beztriple_handle_type_items[]; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 0129629291f..552ff7b6365 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -155,6 +155,12 @@ EnumPropertyItem image_type_items[] = { #endif {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem image_color_mode_items[] ={ + {R_PLANESBW, "BW", 0, "BW", "Images get saved in 8 bits grayscale (only PNG, JPEG, TGA, TIF)"}, + {R_PLANES24, "RGB", 0, "RGB", "Images are saved with RGB (color) data"}, + {R_PLANES32, "RGBA", 0, "RGBA", "Images are saved with RGB and Alpha data (if supported)"}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "DNA_anim_types.h" @@ -1999,13 +2005,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) {R_ALPHAPREMUL, "PREMUL", 0, "Premultiplied", "Transparent RGB pixels are multiplied by the alpha channel"}, {R_ALPHAKEY, "STRAIGHT", 0, "Straight Alpha", "Transparent RGB and alpha pixels are unmodified"}, {0, NULL, 0, NULL, NULL}}; - - static EnumPropertyItem color_mode_items[] ={ - {R_PLANESBW, "BW", 0, "BW", "Images get saved in 8 bits grayscale (only PNG, JPEG, TGA, TIF)"}, - {R_PLANES24, "RGB", 0, "RGB", "Images are saved with RGB (color) data"}, - {R_PLANES32, "RGBA", 0, "RGBA", "Images are saved with RGB and Alpha data (if supported)"}, - {0, NULL, 0, NULL, NULL}}; - + static EnumPropertyItem display_mode_items[] ={ {R_OUTPUT_SCREEN, "SCREEN", 0, "Full Screen", "Images are rendered in full Screen"}, {R_OUTPUT_AREA, "AREA", 0, "Image Editor", "Images are rendered in Image Editor"}, @@ -2194,7 +2194,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "color_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "planes"); - RNA_def_property_enum_items(prop, color_mode_items); + RNA_def_property_enum_items(prop, image_color_mode_items); RNA_def_property_ui_text(prop, "Color Mode", "Choose BW for saving greyscale images, RGB for saving red, green and blue channels, AND RGBA for saving red, green, blue + alpha channels"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); -- cgit v1.2.3 From 82e622f1585ff615cc9607f1f9492b961842ce1b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 24 Aug 2011 14:22:41 +0000 Subject: fix [#28356] Import export STL files, problem in script in version r39307 & correct some bad comments. --- source/blender/editors/space_file/file_ops.c | 16 +++++++++++----- source/blender/python/intern/bpy_rna.c | 1 - 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 4dd97c63d40..a34335a031d 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -621,25 +621,31 @@ void file_sfile_to_operator(wmOperator *op, SpaceFile *sfile, char *filepath) } /* some ops have multiple files to select */ + /* this is called on operators check() so clear collections first since + * they may be already set. */ { PointerRNA itemptr; + PropertyRNA *prop_files= RNA_struct_find_property(op->ptr, "files"); + PropertyRNA *prop_dirs= RNA_struct_find_property(op->ptr, "dirs"); int i, numfiles = filelist_numfiles(sfile->files); - if(RNA_struct_find_property(op->ptr, "files")) { + if(prop_files) { + RNA_property_collection_clear(op->ptr, prop_files); for (i=0; ifiles, i, CHECK_FILES)) { struct direntry *file= filelist_file(sfile->files, i); - RNA_collection_add(op->ptr, "files", &itemptr); + RNA_property_collection_add(op->ptr, prop_files, &itemptr); RNA_string_set(&itemptr, "name", file->relname); } } } - - if(RNA_struct_find_property(op->ptr, "dirs")) { + + if(prop_dirs) { + RNA_property_collection_clear(op->ptr, prop_dirs); for (i=0; ifiles, i, CHECK_DIRS)) { struct direntry *file= filelist_file(sfile->files, i); - RNA_collection_add(op->ptr, "dirs", &itemptr); + RNA_property_collection_add(op->ptr, prop_dirs, &itemptr); RNA_string_set(&itemptr, "name", file->relname); } } diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 72553872057..831d6a281ee 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -4320,7 +4320,6 @@ static PyObject *small_dict_get_item_string(PyObject *dict, const char *key_look Py_ssize_t pos = 0; PyObject *value = NULL; - /* case not, search for it in the script's global dictionary */ while (PyDict_Next(dict, &pos, &key, &value)) { if(PyUnicode_Check(key)) { if(strcmp(key_lookup, _PyUnicode_AsString(key))==0) { -- cgit v1.2.3 From 9ad6434c4e6c1d157d4ce4d0904c46154229aec9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 24 Aug 2011 16:04:35 +0000 Subject: opencollada find module. hopefully solves the problem where includes can in an `/include` subdir or not. --- source/blender/collada/CMakeLists.txt | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index b5c84bc3c84..3466c3ab5c0 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -39,27 +39,9 @@ set(INC ) set(INC_SYS - + ${OPENCOLLADA_INCLUDE_DIRS} ) -if(APPLE) - list(APPEND INC_SYS - ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter - ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils - ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework - ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader - ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser - ) -else() - list(APPEND INC_SYS - ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter/include - ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils/include - ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework/include - ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader/include - ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser/include - ) -endif() - set(SRC AnimationImporter.cpp ArmatureExporter.cpp -- cgit v1.2.3 From 7fc26e0123e700113f340068a964c1a12133b7e1 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 24 Aug 2011 20:28:54 +0000 Subject: Committing patch #25675 "Make "Cast Buffer Shadows" option work in viewport and BGE" by me. Description from the tracker: "It's really handy to be able to prevent an object/material from casting a shadow. So, I made use of the Cast Buffer Shadows option in the material settings, and made it work in the viewport and the BGE." --- source/blender/editors/space_view3d/drawobject.c | 14 +++++++++++++- source/blender/editors/space_view3d/view3d_draw.c | 2 +- source/blender/makesdna/DNA_view3d_types.h | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index ddc10d78cac..3133ad131bb 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2843,8 +2843,20 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D Object *ob= base->object; Object *obedit= scene->obedit; Mesh *me= ob->data; + Material *ma=NULL; EditMesh *em= me->edit_mesh; - int do_alpha_pass= 0, drawlinked= 0, retval= 0, glsl, check_alpha; + int do_alpha_pass= 0, drawlinked= 0, retval= 0, glsl, check_alpha, i; + + /* If we are drawing shadows and any of the materials don't cast a shadow, then don't draw the object */ + if (v3d->flag2 & V3D_RENDER_SHADOW) + { + for(i=0; itotcol; ++i) + { + ma = give_current_material(ob, i); + if (ma && !(ma->mode & MA_SHADBUF)) + return 1; + } + } if(obedit && ob!=obedit && ob->data==obedit->data) { if(ob_get_key(ob) || ob_get_key(obedit)); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index f8837594ddb..9249d4d2bf0 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2155,7 +2155,7 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) v3d->drawtype = OB_SOLID; v3d->lay &= GPU_lamp_shadow_layer(shadow->lamp); v3d->flag2 &= ~V3D_SOLID_TEX; - v3d->flag2 |= V3D_RENDER_OVERRIDE; + v3d->flag2 |= V3D_RENDER_OVERRIDE | V3D_RENDER_SHADOW; GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat); diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 89b8bad2806..3c8d20a6f16 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -247,6 +247,7 @@ typedef struct View3D { #define V3D_SOLID_TEX 8 #define V3D_DISPGP 16 #define V3D_LOCK_CAMERA 32 +#define V3D_RENDER_SHADOW 64 /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */ /* View3D->around */ #define V3D_CENTER 0 -- cgit v1.2.3 From 5f66f37e225eb87532374af6c495a409da4ece66 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Wed, 24 Aug 2011 20:48:37 +0000 Subject: Patch for bug #28289 updated the logic behind node delete with reconnect. When on input and output socket is connected, these two will be reconnected see bug report for example. http://projects.blender.org/tracker/?func=detail&aid=28289&group_id=9&atid=498 --- source/blender/editors/space_node/node_edit.c | 89 +++++++++++++++++++-------- 1 file changed, 63 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 011f9a31c93..508cb82ee1b 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -3080,78 +3080,115 @@ void NODE_OT_delete(wmOperatorType *ot) } /* ****************** Delete with reconnect ******************* */ +static int is_connected_to_input_socket(bNode* node, bNodeLink* link) { + bNodeSocket *sock; + if (link->tonode == node) { + for(sock= node->inputs.first; sock; sock= sock->next) { + if (link->tosock == sock) { + return sock->type; + } + } + } + return -1; +} -/* note: in cmp_util.c is similar code, for node_compo_pass_on() */ -/* used for disabling node (similar code in node_draw.c for disable line) */ static void node_delete_reconnect(bNodeTree* tree, bNode* node) { - bNodeLink *link, *next; + bNodeLink *link, *next, *first = NULL; bNodeSocket *valsocket= NULL, *colsocket= NULL, *vecsocket= NULL; bNodeSocket *deliveringvalsocket= NULL, *deliveringcolsocket= NULL, *deliveringvecsocket= NULL; bNode *deliveringvalnode= NULL, *deliveringcolnode= NULL, *deliveringvecnode= NULL; bNodeSocket *sock; - - /* test the inputs */ - for(sock= node->inputs.first; sock; sock= sock->next) { - int type = sock->type; - if(type==SOCK_VALUE && valsocket==NULL) valsocket = sock; - if(type==SOCK_VECTOR && vecsocket==NULL) vecsocket = sock; - if(type==SOCK_RGBA && colsocket==NULL) colsocket = sock; - } - // we now have the input sockets for the 'data types' - // now find the output sockets (and nodes) in the tree that delivers data to these input sockets + int type; + int numberOfConnectedOutputSockets = 0; + int numberOfReconnections = 0; + int numberOfConnectedInputSockets = 0; + + /* + test the inputs, not really correct when a node has multiple input sockets of the same type + the first link evaluated will be used to determine the possible connection. + */ for(link= tree->links.first; link; link=link->next) { - if (valsocket != NULL) { - if (link->tosock == valsocket) { - deliveringvalnode = link->fromnode; - deliveringvalsocket = link->fromsock; + if (link->tonode == node) { numberOfConnectedInputSockets++; } + type = is_connected_to_input_socket(node, link); + switch (type) { + case SOCK_RGBA: + if (colsocket == NULL) { + colsocket = link->tosock; + deliveringcolnode = link->fromnode; + deliveringcolsocket = link->fromsock; } - } - if (vecsocket != NULL) { - if (link->tosock == vecsocket) { + break; + case SOCK_VECTOR: + if (vecsocket == NULL) { + vecsocket = link->tosock; deliveringvecnode = link->fromnode; deliveringvecsocket = link->fromsock; } - } - if (colsocket != NULL) { - if (link->tosock == colsocket) { - deliveringcolnode = link->fromnode; - deliveringcolsocket = link->fromsock; + break; + case SOCK_VALUE: + if (valsocket == NULL) { + valsocket = link->tosock; + deliveringvalnode = link->fromnode; + deliveringvalsocket = link->fromsock; } + break; + default: + break; } } + // we now have the sockets+nodes that fill the inputsockets be aware for group nodes these can be NULL // now make the links for all outputlinks of the node to be reconnected for(link= tree->links.first; link; link=next) { next= link->next; if (link->fromnode == node) { sock = link->fromsock; + numberOfConnectedOutputSockets ++; + if (!first) first = link; switch(sock->type) { case SOCK_VALUE: if (deliveringvalsocket) { link->fromnode = deliveringvalnode; link->fromsock = deliveringvalsocket; + numberOfReconnections++; } break; case SOCK_VECTOR: if (deliveringvecsocket) { link->fromnode = deliveringvecnode; link->fromsock = deliveringvecsocket; + numberOfReconnections++; } break; case SOCK_RGBA: if (deliveringcolsocket) { link->fromnode = deliveringcolnode; link->fromsock = deliveringcolsocket; + numberOfReconnections++; } break; } } } + + /* when no connections have been made, and if only one delivering input socket type and one output socket we will connect those two */ + if (numberOfConnectedOutputSockets == 1 && numberOfReconnections == 0 && numberOfConnectedInputSockets == 1) { + if (deliveringcolsocket) { + first->fromnode = deliveringcolnode; + first->fromsock = deliveringcolsocket; + } else if (deliveringvecsocket) { + first->fromnode = deliveringvecnode; + first->fromsock = deliveringvecsocket; + } else if (deliveringvalsocket) { + first->fromnode = deliveringvalnode; + first->fromsock = deliveringvalsocket; + } + } + if(node->id) node->id->us--; nodeFreeNode(tree, node); - } static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op)) -- cgit v1.2.3 From 44f7a8aee2dcd664717b58f8e1265f832d67062d Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Thu, 25 Aug 2011 07:30:12 +0000 Subject: Fix for [#28239] Particles Billboard 3x3 Split Error. * Patch by Alex Fraser. --- source/blender/render/intern/source/convertblender.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 7033ec27fc0..2f79560efd6 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1345,8 +1345,11 @@ static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, Particl VlakRen *vlr; MTFace *mtf; float xvec[3], yvec[3], zvec[3], bb_center[3]; + /* Number of tiles */ int totsplit = bb->uv_split * bb->uv_split; - float uvx = 0.0f, uvy = 0.0f, uvdx = 1.0f, uvdy = 1.0f, time = 0.0f; + int tile, x, y; + /* Tile offsets */ + float uvx = 0.0f, uvy = 0.0f, uvdx = 1.0f, uvdy = 1.0f, time = 0.0f; vlr= RE_findOrAddVlak(obr, obr->totvlak++); vlr->v1= RE_findOrAddVert(obr, obr->totvert++); @@ -1420,11 +1423,14 @@ static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, Particl else if(bb->split_offset==PART_BB_OFF_RANDOM) time = (float)fmod(time + bb->random, 1.0f); - uvx = uvdx * floor((float)(bb->uv_split * bb->uv_split) * (float)fmod((double)time, (double)uvdx)); - uvy = uvdy * floor((1.0f - time) * (float)bb->uv_split); - - if(fmod(time, 1.0f / bb->uv_split) == 0.0f) - uvy -= uvdy; + /* Find the coordinates in tile space (integer), then convert to UV + * space (float). Note that Y is flipped. */ + tile = (int)((time + FLT_EPSILON10) * totsplit); + x = tile % bb->uv_split; + y = tile / bb->uv_split; + y = (bb->uv_split - 1) - y; + uvx = uvdx * x; + uvy = uvdy * y; } /* normal UVs */ -- cgit v1.2.3 From b7eac1edcf472df7c705e6c3463e8404f72422df Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Aug 2011 15:49:52 +0000 Subject: picky style edits with screen/view/drawing, also remove own bad example doc. --- source/blender/editors/interface/interface_draw.c | 40 +++++++--------------- .../blender/editors/interface/interface_handlers.c | 3 +- source/blender/editors/interface/interface_icons.c | 3 +- source/blender/editors/screen/screen_edit.c | 3 +- source/blender/editors/screen/screen_ops.c | 15 ++++---- source/blender/editors/space_view3d/drawobject.c | 24 ++++++------- source/blender/editors/space_view3d/view3d_draw.c | 10 +++--- source/blender/editors/space_view3d/view3d_edit.c | 18 +++++----- source/blender/editors/space_view3d/view3d_view.c | 6 ++-- 9 files changed, 48 insertions(+), 74 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index dd7d2ca765f..76ed9891b8e 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -530,14 +530,11 @@ static void ui_draw_but_CHARTAB(uiBut *but) int charmax = G.charmax; /* FO_BUILTIN_NAME font in use. There are TTF FO_BUILTIN_NAME and non-TTF FO_BUILTIN_NAME fonts */ - if(!strcmp(G.selfont->name, FO_BUILTIN_NAME)) - { - if(G.ui_international == TRUE) - { + if(!strcmp(G.selfont->name, FO_BUILTIN_NAME)) { + if(G.ui_international == TRUE) { charmax = 0xff; } - else - { + else { charmax = 0xff; } } @@ -562,16 +559,13 @@ static void ui_draw_but_CHARTAB(uiBut *but) cs = G.charstart; /* Set the font, in case it is not FO_BUILTIN_NAME font */ - if(G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) - { + if(G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) { // Is the font file packed, if so then use the packed file - if(G.selfont->packedfile) - { + if(G.selfont->packedfile) { pf = G.selfont->packedfile; FTF_SetFont(pf->data, pf->size, 14.0); } - else - { + else { char tmpStr[256]; int err; @@ -580,10 +574,8 @@ static void ui_draw_but_CHARTAB(uiBut *but) err = FTF_SetFont((unsigned char *)tmpStr, 0, 14.0); } } - else - { - if(G.ui_international == TRUE) - { + else { + if(G.ui_international == TRUE) { FTF_SetFont((unsigned char *) datatoc_bfont_ttf, datatoc_bfont_ttf_size, 14.0); } } @@ -595,8 +587,7 @@ static void ui_draw_but_CHARTAB(uiBut *but) glRectf((rect->xmin), (rect->ymin), (rect->xmax), (rect->ymax)); glColor3ub(0, 0, 0); - for(y = 0; y < 6; y++) - { + for(y = 0; y < 6; y++) { // Do not draw more than the category allows if(cs > charmax) break; @@ -676,23 +667,19 @@ static void ui_draw_but_CHARTAB(uiBut *but) glShadeModel(GL_FLAT); /* Return Font Settings to original */ - if(U.fontsize && U.fontname[0]) - { + if(U.fontsize && U.fontname[0]) { result = FTF_SetFont((unsigned char *)U.fontname, 0, U.fontsize); } - else if (U.fontsize) - { + else if (U.fontsize) { result = FTF_SetFont((unsigned char *) datatoc_bfont_ttf, datatoc_bfont_ttf_size, U.fontsize); } - if (result == 0) - { + if (result == 0) { result = FTF_SetFont((unsigned char *) datatoc_bfont_ttf, datatoc_bfont_ttf_size, 11); } /* resets the font size */ - if(G.ui_international == TRUE) - { + if(G.ui_international == TRUE) { // uiSetCurFont(but->block, UI_HELV); } } @@ -1604,7 +1591,6 @@ void ui_dropshadow(rctf *rct, float radius, float aspect, int UNUSED(select)) #endif { a= i*aspect; - } for(; i--; a-=aspect) { diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 3bd29f8de3e..d7eba8c0ac7 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -800,8 +800,7 @@ static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to) if(!act_iter) return; /* (3) add a new controller */ - if (WM_operator_name_call(C, "LOGIC_OT_controller_add", WM_OP_EXEC_DEFAULT, NULL) & OPERATOR_FINISHED) - { + if (WM_operator_name_call(C, "LOGIC_OT_controller_add", WM_OP_EXEC_DEFAULT, NULL) & OPERATOR_FINISHED) { cont = (bController *)ob->controllers.last; /* (4) link the sensor->controller->actuator */ diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 412c0233c35..c3a0f438fbe 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -1103,8 +1103,7 @@ int ui_id_icon_get(bContext *C, ID *id, int big) int iconid= 0; /* icon */ - switch(GS(id->name)) - { + switch(GS(id->name)) { case ID_BR: iconid= ui_id_brush_get_icon(C, id); break; diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 80a65d3224e..5e875e40f14 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -533,8 +533,7 @@ int screen_area_join(bContext *C, bScreen* scr, ScrArea *sa1, ScrArea *sa2) dir = area_getorientation(sa1, sa2); /*printf("dir is : %i \n", dir);*/ - if (dir < 0) - { + if (dir < 0) { if (sa1 ) sa1->flag &= ~AREA_FLAG_DRAWJOINFROM; if (sa2 ) sa2->flag &= ~AREA_FLAG_DRAWJOINTO; return 0; diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 1410331700f..0ac30853eae 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1544,8 +1544,7 @@ static int area_max_regionsize(ScrArea *sa, ARegion *scalear, AZEdge edge) /* subtractwidth of regions on opposite side * prevents dragging regions into other opposite regions */ - for (ar=sa->regionbase.first; ar; ar=ar->next) - { + for (ar=sa->regionbase.first; ar; ar=ar->next) { if (ar == scalear) continue; @@ -2021,12 +2020,12 @@ static void SCREEN_OT_screen_full_area(wmOperatorType *ot) */ typedef struct sAreaJoinData - { - ScrArea *sa1; /* first area to be considered */ - ScrArea *sa2; /* second area to be considered */ - ScrArea *scr; /* designed for removal */ - - } sAreaJoinData; +{ + ScrArea *sa1; /* first area to be considered */ + ScrArea *sa2; /* second area to be considered */ + ScrArea *scr; /* designed for removal */ + +} sAreaJoinData; /* validate selection inside screen, set variables OK */ diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 3133ad131bb..638d197ccf7 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2843,18 +2843,17 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D Object *ob= base->object; Object *obedit= scene->obedit; Mesh *me= ob->data; - Material *ma=NULL; EditMesh *em= me->edit_mesh; int do_alpha_pass= 0, drawlinked= 0, retval= 0, glsl, check_alpha, i; - /* If we are drawing shadows and any of the materials don't cast a shadow, then don't draw the object */ - if (v3d->flag2 & V3D_RENDER_SHADOW) - { - for(i=0; itotcol; ++i) - { - ma = give_current_material(ob, i); - if (ma && !(ma->mode & MA_SHADBUF)) + /* If we are drawing shadows and any of the materials don't cast a shadow, + * then don't draw the object */ + if (v3d->flag2 & V3D_RENDER_SHADOW) { + for(i=0; itotcol; ++i) { + Material *ma= give_current_material(ob, i); + if (ma && !(ma->mode & MA_SHADBUF)) { return 1; + } } } @@ -6125,8 +6124,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) } /* draw code for smoke */ - if((md = modifiers_findByType(ob, eModifierType_Smoke))) - { + if((md = modifiers_findByType(ob, eModifierType_Smoke))) { SmokeModifierData *smd = (SmokeModifierData *)md; // draw collision objects @@ -6518,7 +6516,6 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec switch( ob->type) { case OB_MESH: - { if(ob->mode & OB_MODE_EDIT) { Mesh *me= ob->data; EditMesh *em= me->edit_mesh; @@ -6552,8 +6549,9 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec EM_free_index_arrays(); } - else bbs_mesh_solid(scene, ob); - } + else { + bbs_mesh_solid(scene, ob); + } break; case OB_CURVE: case OB_SURF: diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 9249d4d2bf0..80da75bc603 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1141,12 +1141,10 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d) glRectf(x1i, y1i, x2i, y2i); #ifdef VIEW3D_CAMERA_BORDER_HACK - { - if(view3d_camera_border_hack_test == TRUE) { - glColor4fv(view3d_camera_border_hack_col); - glRectf(x1i+1, y1i+1, x2i-1, y2i-1); - view3d_camera_border_hack_test= FALSE; - } + if(view3d_camera_border_hack_test == TRUE) { + glColor4fv(view3d_camera_border_hack_col); + glRectf(x1i+1, y1i+1, x2i-1, y2i-1); + view3d_camera_border_hack_test= FALSE; } #endif diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 979a602b4f5..0e8dd38c02c 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -372,12 +372,12 @@ static void calctrackballvec(rcti *rect, int mx, int my, float *vec) y/= (float)((rect->ymax - rect->ymin)/2); d = sqrt(x*x + y*y); - if (d < radius * (float)M_SQRT1_2) /* Inside sphere */ - z = sqrt(radius*radius - d*d); - else - { /* On hyperbola */ - t = radius / (float)M_SQRT2; - z = t*t / d; + if (d < radius * (float)M_SQRT1_2) { /* Inside sphere */ + z= sqrt(radius*radius - d*d); + } + else { /* On hyperbola */ + t= radius / (float)M_SQRT2; + z= t*t / d; } vec[0]= x; @@ -1620,8 +1620,7 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event) vod= op->customdata; /* if one or the other zoom position aren't set, set from event */ - if (!RNA_property_is_set(op->ptr, "mx") || !RNA_property_is_set(op->ptr, "my")) - { + if (!RNA_property_is_set(op->ptr, "mx") || !RNA_property_is_set(op->ptr, "my")) { RNA_int_set(op->ptr, "mx", event->x); RNA_int_set(op->ptr, "my", event->y); } @@ -1834,8 +1833,7 @@ static int viewdolly_invoke(bContext *C, wmOperator *op, wmEvent *event) vod= op->customdata; /* if one or the other zoom position aren't set, set from event */ - if (!RNA_property_is_set(op->ptr, "mx") || !RNA_property_is_set(op->ptr, "my")) - { + if (!RNA_property_is_set(op->ptr, "mx") || !RNA_property_is_set(op->ptr, "my")) { RNA_int_set(op->ptr, "mx", event->x); RNA_int_set(op->ptr, "my", event->y); } diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index ed0b2645c99..c48459108eb 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -840,8 +840,7 @@ void project_int_noclip(ARegion *ar, const float vec[3], int adr[2]) adr[0] = (int)floor(fx); adr[1] = (int)floor(fy); } - else - { + else { adr[0] = ar->winx / 2; adr[1] = ar->winy / 2; } @@ -904,8 +903,7 @@ void project_float_noclip(ARegion *ar, const float vec[3], float adr[2]) adr[0] = (float)(ar->winx/2.0f)+(ar->winx/2.0f)*vec4[0]/vec4[3]; adr[1] = (float)(ar->winy/2.0f)+(ar->winy/2.0f)*vec4[1]/vec4[3]; } - else - { + else { adr[0] = ar->winx / 2.0f; adr[1] = ar->winy / 2.0f; } -- cgit v1.2.3 From 88ba2504c7269c408f400de6637545333641ee1f Mon Sep 17 00:00:00 2001 From: Alexander Kuznetsov Date: Thu, 25 Aug 2011 16:41:08 +0000 Subject: Fix for [#28304] Show A: and B: drives in Windows file browser. --- source/blender/editors/space_file/fsmenu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index a6e84b0c41d..aa2ea124fe0 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -300,7 +300,7 @@ void fsmenu_read_system(struct FSMenu* fsmenu) tmp= GetLogicalDrives(); - for (i=2; i < 26; i++) { + for (i=0; i < 26; i++) { if ((tmp>>i) & 1) { tmps[0]='A'+i; tmps[1]=':'; -- cgit v1.2.3 From a244a787de9d3353efdd4dd42794e14b830b3ddb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Aug 2011 16:42:42 +0000 Subject: sanity checks on operator exec/modal/invoke return values. --- source/blender/makesdna/DNA_windowmanager_types.h | 18 ++++++++++++------ source/blender/windowmanager/intern/wm_event_system.c | 5 +++++ source/blender/windowmanager/intern/wm_operators.c | 10 +++++++--- 3 files changed, 24 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 1f0ae28a00d..47ebf111eba 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -320,14 +320,20 @@ typedef struct wmOperator { } wmOperator; -/* operator type exec(), invoke() modal(), return values */ -#define OPERATOR_RUNNING_MODAL 1 -#define OPERATOR_CANCELLED 2 -#define OPERATOR_FINISHED 4 + +/* operator type return flags: exec(), invoke() modal(), return values */ +#define OPERATOR_RUNNING_MODAL (1<<0) +#define OPERATOR_CANCELLED (1<<1) +#define OPERATOR_FINISHED (1<<2) /* add this flag if the event should pass through */ -#define OPERATOR_PASS_THROUGH 8 +#define OPERATOR_PASS_THROUGH (1<<3) /* in case operator got executed outside WM code... like via fileselect */ -#define OPERATOR_HANDLED 16 +#define OPERATOR_HANDLED (1<<4) + +#define OPERATOR_FLAGS_ALL ((1<<5)-1) + +/* sanity checks for debug mode only */ +#define OPERATOR_RETVAL_CHECK(ret) BLI_assert(ret != 0 && (ret & OPERATOR_FLAGS_ALL) == ret) /* wmOperator flag */ #define OP_GRAB_POINTER 1 diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 413ff181f11..27586525253 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -531,6 +531,7 @@ static int wm_operator_exec(bContext *C, wmOperator *op, int repeat) wm->op_undo_depth++; retval= op->type->exec(C, op); + OPERATOR_RETVAL_CHECK(retval); if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; @@ -690,6 +691,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P wm->op_undo_depth++; retval= op->type->invoke(C, op, event); + OPERATOR_RETVAL_CHECK(retval); if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; @@ -699,6 +701,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P wm->op_undo_depth++; retval= op->type->exec(C, op); + OPERATOR_RETVAL_CHECK(retval); if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; @@ -917,6 +920,7 @@ int WM_operator_call_py(bContext *C, wmOperatorType *ot, int context, PointerRNA wm->op_undo_depth++; retval= op->type->exec(C, op); + OPERATOR_RETVAL_CHECK(retval); if(op->type->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; @@ -1203,6 +1207,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand wm->op_undo_depth++; retval= ot->modal(C, op, event); + OPERATOR_RETVAL_CHECK(retval); if(ot->flag & OPTYPE_UNDO && CTX_wm_manager(C) == wm) wm->op_undo_depth--; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index d794685ea70..a4efa8fff84 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -213,6 +213,7 @@ static int wm_macro_exec(bContext *C, wmOperator *op) if(opm->type->exec) { retval= opm->type->exec(C, opm); + OPERATOR_RETVAL_CHECK(retval); if (retval & OPERATOR_FINISHED) { MacroData *md = op->customdata; @@ -237,6 +238,8 @@ static int wm_macro_invoke_internal(bContext *C, wmOperator *op, wmEvent *event, else if(opm->type->exec) retval= opm->type->exec(C, opm); + OPERATOR_RETVAL_CHECK(retval); + BLI_movelisttolist(&op->reports->list, &opm->reports->list); if (retval & OPERATOR_FINISHED) { @@ -265,6 +268,7 @@ static int wm_macro_modal(bContext *C, wmOperator *op, wmEvent *event) printf("macro error, calling NULL modal()\n"); else { retval = opm->type->modal(C, opm, event); + OPERATOR_RETVAL_CHECK(retval); /* if this one is done but it's not the last operator in the macro */ if ((retval & OPERATOR_FINISHED) && opm->next) { @@ -655,7 +659,9 @@ int WM_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) printf("WM_menu_invoke: %s \"%s\" is not an enum property\n", op->type->idname, RNA_property_identifier(prop)); } else if (RNA_property_is_set(op->ptr, RNA_property_identifier(prop))) { - return op->type->exec(C, op); + const int retval= op->type->exec(C, op); + OPERATOR_RETVAL_CHECK(retval); + return retval; } else { pup= uiPupMenuBegin(C, op->type->name, ICON_NONE); @@ -2345,7 +2351,6 @@ static void gesture_circle_apply(bContext *C, wmOperator *op) if(op->type->exec) op->type->exec(C, op); - #ifdef GESTURE_MEMORY circle_select_size= rect->xmax; #endif @@ -2566,7 +2571,6 @@ static void gesture_lasso_apply(bContext *C, wmOperator *op) if(op->type->exec) op->type->exec(C, op); - } int WM_gesture_lasso_modal(bContext *C, wmOperator *op, wmEvent *event) -- cgit v1.2.3 From 166970f68ea4949484e4e187b65972dca320484b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Aug 2011 17:01:33 +0000 Subject: bpy-rna - simplify enum string/set parsing. --- source/blender/python/intern/bpy_rna.c | 44 ++++++++++++++++------------------ 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 831d6a281ee..17992fdae31 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1117,6 +1117,7 @@ static int pyrna_string_to_enum(PyObject *item, PointerRNA *ptr, PropertyRNA *pr return 1; } +/* 'value' _must_ be a set type, error check before calling */ int pyrna_set_to_enum_bitfield(EnumPropertyItem *items, PyObject *value, int *r_value, const char *error_prefix) { /* set of enum items, concatenate all values with OR */ @@ -1138,8 +1139,10 @@ int pyrna_set_to_enum_bitfield(EnumPropertyItem *items, PyObject *value, int *r_ error_prefix, Py_TYPE(key)->tp_name); return -1; } - if(pyrna_enum_value_from_id(items, param, &ret, error_prefix) < 0) + + if(pyrna_enum_value_from_id(items, param, &ret, error_prefix) < 0) { return -1; + } flag |= ret; } @@ -1156,6 +1159,14 @@ static int pyrna_prop_to_enum_bitfield(PointerRNA *ptr, PropertyRNA *prop, PyObj *r_value= 0; + if (!PyAnySet_Check(value)) { + PyErr_Format(PyExc_TypeError, + "%.200s, %.200s.%.200s expected a set, not a %.200s", + error_prefix, RNA_struct_identifier(ptr->type), + RNA_property_identifier(prop), Py_TYPE(value)->tp_name); + return -1; + } + RNA_property_enum_items(BPy_GetContext(), ptr, prop, &item, NULL, &free); if(item) { @@ -1529,33 +1540,18 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb { int val= 0; - if (PyUnicode_Check(value)) { - if (!pyrna_string_to_enum(value, ptr, prop, &val, error_prefix)) - return -1; - } - else if (PyAnySet_Check(value)) { - if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { - /* set of enum items, concatenate all values with OR */ - if(pyrna_prop_to_enum_bitfield(ptr, prop, value, &val, error_prefix) < 0) - return -1; - } - else { - PyErr_Format(PyExc_TypeError, - "%.200s, %.200s.%.200s is not a bitflag enum type", - error_prefix, RNA_struct_identifier(ptr->type), - RNA_property_identifier(prop)); + /* type checkins is done by each function */ + if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { + /* set of enum items, concatenate all values with OR */ + if(pyrna_prop_to_enum_bitfield(ptr, prop, value, &val, error_prefix) < 0) { return -1; } } else { - const char *enum_str= pyrna_enum_as_string(ptr, prop); - PyErr_Format(PyExc_TypeError, - "%.200s %.200s.%.200s expected a string enum or a set of strings in (%.2000s), not %.200s", - error_prefix, RNA_struct_identifier(ptr->type), - RNA_property_identifier(prop), enum_str, - Py_TYPE(value)->tp_name); - MEM_freeN((void *)enum_str); - return -1; + /* simple enum string */ + if (!pyrna_string_to_enum(value, ptr, prop, &val, error_prefix) < 0) { + return -1; + } } if(data) *((int*)data)= val; -- cgit v1.2.3 From 9436769cd45f1c63ef6764d86b1fbfefe408ad2f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Aug 2011 17:54:30 +0000 Subject: error when a python operator gave an incorrect return value was near useless, re-raise a more comprehensive error which includes the operator name. --- source/blender/python/intern/bpy_operator.c | 2 +- source/blender/python/intern/bpy_rna.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 7310878f661..742dce30124 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -293,7 +293,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) * function corrects bpy.data (internal Main pointer) */ BPY_modules_update(C); - /* needed for when WM_OT_read_factory_settings us called fro within a script */ + /* needed for when WM_OT_read_factory_settings us called from within a script */ bpy_import_main_set(CTX_data_main(C)); /* return operator_ret as a bpy enum */ diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 17992fdae31..a3ff4314002 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -6417,7 +6417,21 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param err= -1; } else if(ret_len==1) { - err= pyrna_py_to_prop(&funcptr, pret_single, retdata_single, ret, "calling class function:"); + err= pyrna_py_to_prop(&funcptr, pret_single, retdata_single, ret, ""); + + /* when calling operator funcs only gives Function.result with + * no line number since the func has finished calling on error, + * re-raise the exception with more info since it would be slow to + * create prefix on every call (when there are no errors) */ + if(err == -1 && PyErr_Occurred()) { + PyObject *error_type, *error_value, *error_traceback; + PyErr_Fetch(&error_type, &error_value, &error_traceback); + + PyErr_Format(error_type, + "expected class %.200s, function %.200s: incompatible return value%S", + RNA_struct_identifier(ptr->type), RNA_function_identifier(func), + error_value); + } } else if (ret_len > 1) { -- cgit v1.2.3 From 291ae8822d5ff2fafbb53568c040828058cee0db Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Aug 2011 17:59:37 +0000 Subject: executing operators that changed the context from the console wasnt returning an operator set/flag. --- source/blender/python/intern/bpy_rna.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index a3ff4314002..b83626bc3e9 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -6428,7 +6428,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param PyErr_Fetch(&error_type, &error_value, &error_traceback); PyErr_Format(error_type, - "expected class %.200s, function %.200s: incompatible return value%S", + "class %.200s, function %.200s: incompatible return value%S", RNA_struct_identifier(ptr->type), RNA_function_identifier(func), error_value); } -- cgit v1.2.3 From 566da261737731a2e58e8e3ab489c2823068ef2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 26 Aug 2011 01:32:07 +0000 Subject: file-selector: when converting operator arguments to the file selector, wasnt making paths absolute (abs paths are made relative when converting the other way). --- source/blender/editors/space_file/file_ops.c | 32 ++++++++++++++------------ source/blender/editors/space_image/image_ops.c | 8 +++---- source/blender/python/intern/bpy_operator.c | 1 - 3 files changed, 21 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index a34335a031d..1b0893e50e0 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -657,25 +657,27 @@ void file_sfile_to_operator(wmOperator *op, SpaceFile *sfile, char *filepath) void file_operator_to_sfile(SpaceFile *sfile, wmOperator *op) { - int change= FALSE; - if(RNA_struct_find_property(op->ptr, "filename")) { - RNA_string_get(op->ptr, "filename", sfile->params->file); - change= TRUE; - } - if(RNA_struct_find_property(op->ptr, "directory")) { - RNA_string_get(op->ptr, "directory", sfile->params->dir); - change= TRUE; - } - + PropertyRNA *prop; + /* If neither of the above are set, split the filepath back */ - if(RNA_struct_find_property(op->ptr, "filepath")) { - if(change==FALSE) { - char filepath[FILE_MAX]; - RNA_string_get(op->ptr, "filepath", filepath); - BLI_split_dirfile(filepath, sfile->params->dir, sfile->params->file); + if((prop= RNA_struct_find_property(op->ptr, "filepath"))) { + char filepath[FILE_MAX]; + RNA_property_string_get(op->ptr, prop, filepath); + BLI_split_dirfile(filepath, sfile->params->dir, sfile->params->file); + } + else { + if((prop= RNA_struct_find_property(op->ptr, "filename"))) { + RNA_property_string_get(op->ptr, prop, sfile->params->file); + } + if((prop= RNA_struct_find_property(op->ptr, "directory"))) { + RNA_property_string_get(op->ptr, prop, sfile->params->dir); } } + /* we could check for relative_path property which is used when converting + * in the other direction but doesnt hurt to do this every time */ + BLI_path_abs(sfile->params->dir, G.main->name); + /* XXX, files and dirs updates missing, not really so important though */ } diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index d483dd45f7f..d58b78ff6a7 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -983,7 +983,7 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, /* unlikely but just incase */ if (ELEM3(simopts->planes, R_PLANESBW, R_PLANES24, R_PLANES32) == 0) { - simopts->planes= 32; + simopts->planes= R_PLANES32; } /* some formats dont use quality so fallback to scenes quality */ @@ -1000,7 +1000,6 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, } BLI_path_abs(simopts->filepath, G.main->name); } - /* cleanup */ BKE_image_release_renderresult(scene, ima); } @@ -1026,6 +1025,7 @@ static void save_image_options_to_op(SaveImageOptions *simopts, wmOperator *op) RNA_enum_set(op->ptr, "file_format", simopts->imtype); // RNA_enum_set(op->ptr, "subimtype", simopts->subimtype); RNA_int_set(op->ptr, "file_quality", simopts->quality); + RNA_string_set(op->ptr, "filepath", simopts->filepath); } @@ -1050,10 +1050,10 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI if(ima->type == IMA_TYPE_R_RESULT) { /* enforce user setting for RGB or RGBA, but skip BW */ - if(simopts->planes==32) { + if(simopts->planes==R_PLANES32) { ibuf->depth= 32; } - else if(simopts->planes==24) { + else if(simopts->planes==R_PLANES24) { ibuf->depth= 24; } } diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 742dce30124..7327679cc7e 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -117,7 +117,6 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args) } context_dict_back= CTX_py_dict_get(C); - CTX_py_dict_set(C, (void *)context_dict); Py_XINCREF(context_dict); /* so we done loose it */ -- cgit v1.2.3 From e5ddaefecc1c6df3df15f22d6ce5609bb5c6cc3d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 26 Aug 2011 06:22:12 +0000 Subject: when applying armature object transform now transform the bone roll too. This means you can import a BVH, rotate 90d and apply the rotation, the animation will still work as expected - thanks to Benjy's script for showing how obvious it is that this works :) --- source/blender/editors/armature/editarmature.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index bd8f431535e..451154ce842 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -494,15 +494,32 @@ void ED_armature_apply_transform(Object *ob, float mat[4][4]) EditBone *ebone; bArmature *arm= ob->data; float scale = mat4_to_scale(mat); /* store the scale of the matrix here to use on envelopes */ - + float mat3[3][3]; + + copy_m3_m4(mat3, mat); + normalize_m3(mat3); + /* Put the armature into editmode */ ED_armature_to_edit(ob); /* Do the rotations */ - for (ebone = arm->edbo->first; ebone; ebone=ebone->next){ + for (ebone = arm->edbo->first; ebone; ebone=ebone->next) { + float delta[3], tmat[3][3]; + + /* find the current bone's roll matrix */ + sub_v3_v3v3(delta, ebone->tail, ebone->head); + vec_roll_to_mat3(delta, ebone->roll, tmat); + + /* transform the roll matrix */ + mul_m3_m3m3(tmat, mat3, tmat); + + /* transform the bone */ mul_m4_v3(mat, ebone->head); mul_m4_v3(mat, ebone->tail); - + + /* apply the transfiormed roll back */ + mat3_to_vec_roll(tmat, delta, &ebone->roll); + ebone->rad_head *= scale; ebone->rad_tail *= scale; ebone->dist *= scale; -- cgit v1.2.3 From 1273a1133e13d5703d8ece8ac88ec2fa00cb2cf5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 26 Aug 2011 11:35:33 +0000 Subject: Fix #28370: border select for curve and metaball did not update number of selected vertices in info header. Patch by Julien Duroure, thanks! --- source/blender/editors/space_view3d/view3d_select.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index f241e640906..65914ead899 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1765,9 +1765,15 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) case OB_CURVE: case OB_SURF: ret= do_nurbs_box_select(&vc, &rect, select, extend); + if(ret & OPERATOR_FINISHED) { + WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); + } break; case OB_MBALL: ret= do_meta_box_select(&vc, &rect, select, extend); + if(ret & OPERATOR_FINISHED) { + WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); + } break; case OB_ARMATURE: ret= do_armature_box_select(&vc, &rect, select, extend); -- cgit v1.2.3 From cdbb904b32a859a1b3a65dbe79057248f4425832 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Fri, 26 Aug 2011 15:16:27 +0000 Subject: code review fixes --- source/blender/collada/AnimationExporter.cpp | 176 ++++++++++++--------------- source/blender/collada/AnimationImporter.cpp | 3 +- 2 files changed, 79 insertions(+), 100 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 2f074992076..bbd6fef803f 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -41,126 +41,104 @@ void forEachObjectInScene(Scene *sce, Functor &f) } void AnimationExporter::exportAnimations(Scene *sce) - { - if(hasAnimations(sce)) { - this->scene = sce; +{ + if(hasAnimations(sce)) { + this->scene = sce; - openLibrary(); + openLibrary(); - forEachObjectInScene(sce, *this); + forEachObjectInScene(sce, *this); - closeLibrary(); - } + closeLibrary(); } +} - // called for each exported object - void AnimationExporter::operator() (Object *ob) +// called for each exported object +void AnimationExporter::operator() (Object *ob) +{ + FCurve *fcu; + char * transformName ; + bool isMatAnim = false; + + //Export transform animations + if(ob->adt && ob->adt->action) { - FCurve *fcu; - char * transformName ; - bool isMatAnim = false; + fcu = (FCurve*)ob->adt->action->curves.first; - //Export transform animations - if(ob->adt && ob->adt->action) + //transform matrix export for bones are temporarily disabled here. + if ( ob->type == OB_ARMATURE ) { - fcu = (FCurve*)ob->adt->action->curves.first; - - //transform matrix export for bones are temporarily disabled here. - if ( ob->type == OB_ARMATURE ) - { - if (!ob->data) return; - bArmature *arm = (bArmature*)ob->data; - for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - write_bone_animation_matrix(ob, bone); - - transformName = fcu->rna_path; - } - else - transformName = extract_transform_name( fcu->rna_path ); + bArmature *arm = (bArmature*)ob->data; + for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) + write_bone_animation_matrix(ob, bone); - while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || - (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| - (!strcmp(transformName, "rotation_quaternion"))) - dae_animation(ob ,fcu, transformName, false); - fcu = fcu->next; - } - + transformName = fcu->rna_path; } - - //Export Lamp parameter animations - if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) - { - fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); - while (fcu) { + else transformName = extract_transform_name( fcu->rna_path ); - - if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))|| - (!strcmp(transformName, "distance")) ) - dae_animation(ob , fcu, transformName, true ); - fcu = fcu->next; - } + + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || + (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| + (!strcmp(transformName, "rotation_quaternion"))) + dae_animation(ob ,fcu, transformName, false); + fcu = fcu->next; } + + } - //Export Camera parameter animations - if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) - { - fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); - while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - - if ((!strcmp(transformName, "lens"))|| - (!strcmp(transformName, "ortho_scale"))|| - (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) - dae_animation(ob , fcu, transformName, true ); - fcu = fcu->next; - } + //Export Lamp parameter animations + if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) + { + fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + + if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))|| + (!strcmp(transformName, "distance")) ) + dae_animation(ob , fcu, transformName, true ); + fcu = fcu->next; } + } - //Export Material parameter animations. - for(int a = 0; a < ob->totcol; a++) - { - Material *ma = give_current_material(ob, a+1); - if (!ma) continue; - if(ma->adt && ma->adt->action) - { - isMatAnim = true; - fcu = (FCurve*)ma->adt->action->curves.first; - while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - - if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))|| - (!strcmp(transformName, "ior"))) - dae_animation(ob ,fcu, transformName, true, ma ); - fcu = fcu->next; - } - } + //Export Camera parameter animations + if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) + { + fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); + while (fcu) { + transformName = extract_transform_name( fcu->rna_path ); + if ((!strcmp(transformName, "lens"))|| + (!strcmp(transformName, "ortho_scale"))|| + (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) + dae_animation(ob , fcu, transformName, true ); + fcu = fcu->next; } - /* Old System - if (!ob->adt || !ob->adt->action) - fcu = (FCurve*)((Lamp*)ob->data)->adt->action->curves.first; //this is already checked in hasAnimations() - else - fcu = (FCurve*)ob->adt->action->curves.first; - - if (ob->type == OB_ARMATURE) { - if (!ob->data) return; - bArmature *arm = (bArmature*)ob->data; - while(fcu) - { + } + + //Export Material parameter animations. + for(int a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + if (!ma) continue; + if(ma->adt && ma->adt->action) + { + isMatAnim = true; + fcu = (FCurve*)ma->adt->action->curves.first; + while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - // std::string ob_name = getObjectBoneName( ob , fcu); - // for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) - // write_bone_animation(ob, bone); - dae_animation(ob, fcu, ob_name, transformName); + + if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) + ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))|| + (!strcmp(transformName, "ior"))) + dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } } - else {*/ } +} //euler sources from quternion sources float * AnimationExporter::get_eul_source_for_quat(Object *ob ) @@ -193,7 +171,7 @@ void AnimationExporter::exportAnimations(Scene *sce) eul[i*3 + k] = temp_eul[k]; } - + MEM_freeN(quat); return eul; } @@ -287,6 +265,8 @@ void AnimationExporter::exportAnimations(Scene *sce) for ( int i = 0 ; i< fcu->totvert ; i++) eul_axis[i] = eul[i*3 + fcu->array_index]; output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); + MEM_freeN(eul); + MEM_freeN(eul_axis); } else { diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index ee04c270843..4a3cd5eeb06 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -179,7 +179,6 @@ void AnimationImporter::fcurve_deg_to_rad(FCurve *cu) cu->bezt[i].vec[1][1] *= M_PI / 180.0f; cu->bezt[i].vec[0][1] *= M_PI / 180.0f; cu->bezt[i].vec[2][1] *= M_PI / 180.0f; - cu->bezt[i].vec[1][0]; } } @@ -439,7 +438,7 @@ void AnimationImporter::modify_fcurve(std::vector* curves , char* rna_p int i; for (it = curves->begin(), i = 0; it != curves->end(); it++, i++) { FCurve *fcu = *it; - fcu->rna_path = BLI_strdupn(rna_path, strlen(rna_path)); + fcu->rna_path = BLI_strdup(rna_path); if (array_index == -1) fcu->array_index = i; else fcu->array_index = array_index; -- cgit v1.2.3 From 1439ddccae91898812b3a040b35dedcb639894e5 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 26 Aug 2011 16:38:23 +0000 Subject: Fix #28301: Sculpting a object with rotational have desface Patch from Juha Maki-Kanto - initgrabz was called with local space coord. - Brush radiu was multiplying by 2.0 for grab and snake brushes. Not sure why this was needed. Made some tests and didn't notice any regressions without this multiplication. --- source/blender/editors/sculpt_paint/sculpt.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index be985342ea8..2ee49f71a78 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -2979,7 +2979,7 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) SCULPT_TOOL_GRAB, SCULPT_TOOL_NUDGE, SCULPT_TOOL_CLAY_TUBES, SCULPT_TOOL_SNAKE_HOOK, SCULPT_TOOL_THUMB)) { - float grab_location[3], imat[4][4], delta[3]; + float grab_location[3], imat[4][4], delta[3], loc[3]; if(cache->first_time) { copy_v3_v3(cache->orig_grab_location, @@ -2989,10 +2989,8 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) add_v3_v3(cache->true_location, cache->grab_delta); /* compute 3d coordinate at same z from original location + mouse */ - initgrabz(cache->vc->rv3d, - cache->orig_grab_location[0], - cache->orig_grab_location[1], - cache->orig_grab_location[2]); + mul_v3_m4v3(loc, ob->obmat, cache->orig_grab_location); + initgrabz(cache->vc->rv3d, loc[0], loc[1], loc[2]); ED_view3d_win_to_delta(cache->vc->ar, cache->mouse, grab_location); @@ -3088,9 +3086,6 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, st else { cache->initial_radius= brush_unprojected_radius(brush); } - - if (ELEM(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK)) - cache->initial_radius *= 2.0f; } if(brush_use_size_pressure(brush)) { -- cgit v1.2.3 From 8a619a3eee0775d338e41763b219d661a6845dea Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 26 Aug 2011 17:55:03 +0000 Subject: fix for crash when running a python script in a non utf8 blend path, inspecting the exception for the path assumed utf8. --- source/blender/editors/armature/editarmature.c | 2 +- source/blender/python/intern/bpy_traceback.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 451154ce842..08f313bfadd 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -518,7 +518,7 @@ void ED_armature_apply_transform(Object *ob, float mat[4][4]) mul_m4_v3(mat, ebone->tail); /* apply the transfiormed roll back */ - mat3_to_vec_roll(tmat, delta, &ebone->roll); + mat3_to_vec_roll(tmat, NULL, &ebone->roll); ebone->rad_head *= scale; ebone->rad_tail *= scale; diff --git a/source/blender/python/intern/bpy_traceback.c b/source/blender/python/intern/bpy_traceback.c index 17f082b79dc..747a876d6df 100644 --- a/source/blender/python/intern/bpy_traceback.c +++ b/source/blender/python/intern/bpy_traceback.c @@ -30,9 +30,9 @@ #include "bpy_traceback.h" -static const char *traceback_filepath(PyTracebackObject *tb) +static const char *traceback_filepath(PyTracebackObject *tb, PyObject **coerce) { - return _PyUnicode_AsString(tb->tb_frame->f_code->co_filename); + return PyBytes_AS_STRING((*coerce= PyUnicode_EncodeFSDefault(tb->tb_frame->f_code->co_filename))); } /* copied from pythonrun.c, 3.2.0 */ @@ -146,7 +146,12 @@ void python_script_error_jump(const char *filepath, int *lineno, int *offset) PyErr_Print(); for(tb= (PyTracebackObject *)PySys_GetObject("last_traceback"); tb && (PyObject *)tb != Py_None; tb= tb->tb_next) { - if(strcmp(traceback_filepath(tb), filepath) != 0) { + PyObject *coerce; + const char *tb_filepath= traceback_filepath(tb, &coerce); + const int match= strcmp(tb_filepath, filepath) != 0; + Py_DECREF(coerce); + + if(match) { *lineno= tb->tb_lineno; break; } -- cgit v1.2.3 From a9dea3afe9ca590e3d2d6788066d52dab3fd872c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 26 Aug 2011 18:48:48 +0000 Subject: correct missing bpy doc references. --- source/blender/python/intern/bpy_rna.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index b83626bc3e9..4abcbc684e2 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -6591,9 +6591,9 @@ void pyrna_free_types(void) PyDoc_STRVAR(pyrna_register_class_doc, ".. method:: register_class(cls)\n" "\n" -" Register a subclass of a blender type in (:class:`Panel`,\n" -" :class:`Menu`, :class:`Header`, :class:`Operator`,\n" -" :class:`KeyingSetInfo`, :class:`RenderEngine`).\n" +" Register a subclass of a blender type in (:class:`bpy.types.Panel`,\n" +" :class:`bpy.types.Menu`, :class:`bpy.types.Header`, :class:`bpy.types.Operator`,\n" +" :class:`bpy.types.KeyingSetInfo`, :class:`bpy.types.RenderEngine`).\n" "\n" " If the class has a *register* class method it will be called\n" " before registration.\n" -- cgit v1.2.3 From 722be28d68bee132f54c3bcd984caf274197c205 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 26 Aug 2011 22:37:20 +0000 Subject: sub_v4_v4v4 was taking float[3] arguments. --- source/blender/blenlib/BLI_math_vector.h | 4 +- source/blender/blenlib/intern/math_vector_inline.c | 56 +++++++++++----------- 2 files changed, 30 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index decfa22c3e6..c8b598a1e85 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -99,7 +99,7 @@ MINLINE float dot_v3v3(const float a[3], const float b[3]); MINLINE float cross_v2v2(const float a[2], const float b[2]); MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3]); -MINLINE void star_m3_v3(float R[3][3],float a[3]); +MINLINE void star_m3_v3(float rmat[3][3],float a[3]); /*********************************** Length **********************************/ @@ -133,7 +133,7 @@ MINLINE int is_zero_v3(const float a[3]); MINLINE int is_zero_v4(const float a[4]); MINLINE int is_one_v3(const float a[3]); -MINLINE int equals_v2v2(const float *v1, const float *v2); +MINLINE int equals_v2v2(const float v1[2], const float v2[2]); MINLINE int equals_v3v3(const float a[3], const float b[3]); MINLINE int compare_v3v3(const float a[3], const float b[3], const float limit); MINLINE int compare_len_v3v3(const float a[3], const float b[3], const float limit); diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c index e2b7c770356..28708af7486 100644 --- a/source/blender/blenlib/intern/math_vector_inline.c +++ b/source/blender/blenlib/intern/math_vector_inline.c @@ -136,26 +136,26 @@ MINLINE void add_v3_v3(float *r, const float *a) r[2] += a[2]; } -MINLINE void add_v3_v3v3(float *r, const float *a, const float *b) +MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3]) { r[0]= a[0] + b[0]; r[1]= a[1] + b[1]; r[2]= a[2] + b[2]; } -MINLINE void sub_v2_v2(float *r, const float *a) +MINLINE void sub_v2_v2(float r[2], const float a[2]) { r[0] -= a[0]; r[1] -= a[1]; } -MINLINE void sub_v2_v2v2(float *r, const float *a, const float *b) +MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2]) { r[0]= a[0] - b[0]; r[1]= a[1] - b[1]; } -MINLINE void sub_v3_v3(float *r, const float *a) +MINLINE void sub_v3_v3(float r[3], const float a[3]) { r[0] -= a[0]; r[1] -= a[1]; @@ -177,7 +177,7 @@ MINLINE void sub_v4_v4(float r[4], const float a[4]) r[3] -= a[3]; } -MINLINE void sub_v4_v4v4(float r[3], const float a[3], const float b[3]) +MINLINE void sub_v4_v4v4(float r[4], const float a[4], const float b[4]) { r[0]= a[0] - b[0]; r[1]= a[1] - b[1]; @@ -186,10 +186,10 @@ MINLINE void sub_v4_v4v4(float r[3], const float a[3], const float b[3]) } -MINLINE void mul_v2_fl(float *v1, float f) +MINLINE void mul_v2_fl(float r[2], float f) { - v1[0]*= f; - v1[1]*= f; + r[0]*= f; + r[1]*= f; } MINLINE void mul_v2_v2fl(float r[2], const float a[2], float f) @@ -281,11 +281,11 @@ MINLINE void madd_v4_v4fl(float r[4], const float a[4], float f) r[3] += a[3]*f; } -MINLINE void mul_v3_v3v3(float *v, const float *v1, const float *v2) +MINLINE void mul_v3_v3v3(float r[3], const float v1[3], const float v2[3]) { - v[0] = v1[0] * v2[0]; - v[1] = v1[1] * v2[1]; - v[2] = v1[2] * v2[2]; + r[0] = v1[0] * v2[0]; + r[1] = v1[1] * v2[1]; + r[2] = v1[2] * v2[2]; } MINLINE void negate_v3(float r[3]) @@ -340,15 +340,15 @@ MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3]) r[2]= a[0]*b[1] - a[1]*b[0]; } -MINLINE void star_m3_v3(float mat[][3], float *vec) +MINLINE void star_m3_v3(float rmat[][3], float a[3]) { - mat[0][0]= mat[1][1]= mat[2][2]= 0.0; - mat[0][1]= -vec[2]; - mat[0][2]= vec[1]; - mat[1][0]= vec[2]; - mat[1][2]= -vec[0]; - mat[2][0]= -vec[1]; - mat[2][1]= vec[0]; + rmat[0][0]= rmat[1][1]= rmat[2][2]= 0.0; + rmat[0][1]= -a[2]; + rmat[0][2]= a[1]; + rmat[1][0]= a[2]; + rmat[1][2]= -a[0]; + rmat[2][0]= -a[1]; + rmat[2][1]= a[0]; } /*********************************** Length **********************************/ @@ -465,27 +465,27 @@ MINLINE int is_zero_v4(const float v[4]) return (v[0] == 0 && v[1] == 0 && v[2] == 0 && v[3] == 0); } -MINLINE int is_one_v3(const float *v) +MINLINE int is_one_v3(const float v[3]) { return (v[0] == 1 && v[1] == 1 && v[2] == 1); } -MINLINE int equals_v2v2(const float *v1, const float *v2) +MINLINE int equals_v2v2(const float v1[2], const float v2[2]) { return ((v1[0]==v2[0]) && (v1[1]==v2[1])); } -MINLINE int equals_v3v3(const float *v1, const float *v2) +MINLINE int equals_v3v3(const float v1[3], const float v2[3]) { return ((v1[0]==v2[0]) && (v1[1]==v2[1]) && (v1[2]==v2[2])); } -MINLINE int equals_v4v4(const float *v1, const float *v2) +MINLINE int equals_v4v4(const float v1[4], const float v2[4]) { return ((v1[0]==v2[0]) && (v1[1]==v2[1]) && (v1[2]==v2[2]) && (v1[3]==v2[3])); } -MINLINE int compare_v3v3(const float *v1, const float *v2, const float limit) +MINLINE int compare_v3v3(const float v1[3], const float v2[3], const float limit) { if(fabsf(v1[0]-v2[0]) Date: Sat, 27 Aug 2011 01:20:55 +0000 Subject: F3TOCHAR4 macro was assigning the same value twice (setting the alpha, then overwriting with 255). --- source/blender/blenlib/BLI_utildefines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h index 28ebb254f2a..f8f8e12b341 100644 --- a/source/blender/blenlib/BLI_utildefines.h +++ b/source/blender/blenlib/BLI_utildefines.h @@ -105,7 +105,7 @@ #define FTOUSHORT(val) ((val >= 1.0f-0.5f/65535)? 65535: (val <= 0.0f)? 0: (unsigned short)(val*65535.0f + 0.5f)) #define F3TOCHAR3(v2,v1) (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])) #define F3TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \ - (v1)[3]=FTOCHAR((v2[3])); (v1)[3] = 255; } + (v1)[3] = 255; } #define F4TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \ (v1)[3]=FTOCHAR((v2[3])); (v1)[3]=FTOCHAR((v2[3])); } -- cgit v1.2.3 From 2311e624d7717f1123abcf91882830e5dd841669 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 01:24:05 +0000 Subject: eek F4TOCHAR4 was assigning alpha twice too!, tsk tsk. --- source/blender/blenlib/BLI_utildefines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h index f8f8e12b341..1a1f7be2471 100644 --- a/source/blender/blenlib/BLI_utildefines.h +++ b/source/blender/blenlib/BLI_utildefines.h @@ -107,7 +107,7 @@ #define F3TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \ (v1)[3] = 255; } #define F4TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \ - (v1)[3]=FTOCHAR((v2[3])); (v1)[3]=FTOCHAR((v2[3])); } + (v1)[3]=FTOCHAR((v2[3])); } #define VECCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2);} -- cgit v1.2.3 From a05d4a729ae6ccf26a7ef5786fdfffde6d2cb5d4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 01:42:49 +0000 Subject: remove deprecated & unused mat3_to_vec_rot and mat4_to_vec_rot functions. --- source/blender/blenlib/BLI_math_rotation.h | 3 --- source/blender/blenlib/intern/math_rotation.c | 22 ---------------------- 2 files changed, 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_rotation.h b/source/blender/blenlib/BLI_math_rotation.h index ee8c3d5e10c..ef20408a37e 100644 --- a/source/blender/blenlib/BLI_math_rotation.h +++ b/source/blender/blenlib/BLI_math_rotation.h @@ -107,9 +107,6 @@ void mat4_to_axis_angle(float axis[3], float *angle, float M[4][4]); /* TODO: the following calls should probably be depreceated sometime */ /* conversion */ -void mat3_to_vec_rot(float vec[3], float *phi, float mat[3][3]); -void mat4_to_vec_rot(float vec[3], float *phi, float mat[4][4]); - void vec_rot_to_quat(float quat[4], const float vec[3], const float phi); void vec_rot_to_mat3(float mat[3][3], const float vec[3], const float phi); void vec_rot_to_mat4(float mat[4][4], const float vec[3], const float phi); diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index e3e507d016a..6800b59c2c7 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -774,28 +774,6 @@ void mat4_to_axis_angle(float axis[3], float *angle,float mat[4][4]) /****************************** Vector/Rotation ******************************/ /* TODO: the following calls should probably be depreceated sometime */ -/* 3x3 matrix to axis angle */ -void mat3_to_vec_rot(float axis[3], float *angle,float mat[3][3]) -{ - float q[4]; - - /* use quaternions as intermediate representation */ - // TODO: it would be nicer to go straight there... - mat3_to_quat(q,mat); - quat_to_axis_angle(axis, angle,q); -} - -/* 4x4 matrix to axis angle */ -void mat4_to_vec_rot(float axis[3], float *angle,float mat[4][4]) -{ - float q[4]; - - /* use quaternions as intermediate representation */ - // TODO: it would be nicer to go straight there... - mat4_to_quat(q,mat); - quat_to_axis_angle(axis, angle,q); -} - /* axis angle to 3x3 matrix */ void vec_rot_to_mat3(float mat[][3], const float vec[3], const float phi) { -- cgit v1.2.3 From 9ae67bf38036f15b39ba129bea61415d8cfb95ae Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 02:04:29 +0000 Subject: bugfix for procedural textures used as bumpmap with osa not rendering right, also remove redundant assignment. --- source/blender/render/intern/source/render_texture.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index a4c1778c624..fbbb33d0172 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -1789,7 +1789,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi, const float adx[3] = {fabsf(dx[0]), fabsf(dx[1]), fabsf(dx[2])}; const float ady[3] = {fabsf(dy[0]), fabsf(dy[1]), fabsf(dy[2])}; du = MAX3(adx[0], adx[1], adx[2]); - dv = MAX3(ady[1], ady[1], ady[2]); + dv = MAX3(ady[0], ady[1], ady[2]); } } @@ -2358,7 +2358,6 @@ void do_material_tex(ShadeInput *shi) f1= shi->vn[0]; f2= shi->vn[1]; texres.nor[0]= f1*co_nor+f2*si; - texres.nor[1]= f2*co_nor-f1*si; f1= shi->vn[1]; f2= shi->vn[2]; texres.nor[1]= f1*co_nor+f2*si; -- cgit v1.2.3 From 95c56115705d6851f7fd726612e57483d608e962 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 02:45:35 +0000 Subject: subtraction on unsigned values didnt work as intended for copying ID's. --- source/blender/blenkernel/intern/library.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 0b07f40cad6..76f114de97b 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -671,7 +671,7 @@ void *copy_libblock(void *rt) assert(idn != NULL); idn_len= MEM_allocN_len(idn); - if(idn_len - sizeof(ID) > 0) { + if((ssize_t)idn_len - (ssize_t)sizeof(ID) > 0) { /* signed to allow neg result */ cp= (char *)id; cpn= (char *)idn; memcpy(cpn+sizeof(ID), cp+sizeof(ID), idn_len - sizeof(ID)); -- cgit v1.2.3 From 70c955c48437b6387285e963bf8c6f7294700ca2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 02:59:43 +0000 Subject: remove deprecated & unused sequencer transform vars --- source/blender/blenkernel/intern/seqeffects.c | 5 ----- source/blender/makesdna/DNA_sequence_types.h | 5 ----- 2 files changed, 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 8c19b0c15c3..cf95692c8b4 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2029,16 +2029,11 @@ static void init_transform_effect(Sequence *seq) transform->ScalexIni = 1.0f; transform->ScaleyIni = 1.0f; - transform->ScalexFin = 1.0f; - transform->ScalexFin = 1.0f; transform->xIni=0.0f; - transform->xFin=0.0f; transform->yIni=0.0f; - transform->yFin=0.0f; transform->rotIni=0.0f; - transform->rotFin=0.0f; transform->interpolation=1; transform->percent=1; diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 3e7654bcf47..0dd0b9790ab 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -209,14 +209,9 @@ typedef struct GlowVars { typedef struct TransformVars { float ScalexIni; float ScaleyIni; - float ScalexFin; /* deprecated - old transform strip */ - float ScaleyFin; /* deprecated - old transform strip */ float xIni; - float xFin; /* deprecated - old transform strip */ float yIni; - float yFin; /* deprecated - old transform strip */ float rotIni; - float rotFin; /* deprecated - old transform strip */ int percent; int interpolation; int uniform_scale; /* preserve aspect/ratio when scaling */ -- cgit v1.2.3 From 69260601851bfcf1193b95950e37abf1d662b0a4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 03:20:32 +0000 Subject: - fix for BL_Shader::SetUniform() missing out the last part of the matrix. - particle.c wasn't setting all components of the vector when reading cache and setting dummy velocity values. - some functions incorrectly took a float[3] argument when the 4th value was set. - remove a few redundant lines of code. --- source/blender/blenkernel/intern/object.c | 2 +- source/blender/blenkernel/intern/particle.c | 2 +- source/blender/editors/physics/physics_pointcache.c | 1 - source/blender/editors/sculpt_paint/paint_image.c | 4 ++-- source/blender/editors/space_view3d/drawarmature.c | 5 +---- source/blender/editors/uvedit/uvedit_ops.c | 2 +- source/blender/gpu/intern/gpu_material.c | 2 +- 7 files changed, 7 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index dff62b05bd3..5bdda8d5867 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -3134,7 +3134,7 @@ int object_is_modified(Scene *scene, Object *ob) int flag= 0; if(ob_get_key(ob)) { - flag |= eModifierMode_Render | eModifierMode_Render; + flag |= eModifierMode_Render; } else { ModifierData *md; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 9aa1c6e29eb..86c646fa257 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3161,7 +3161,7 @@ void psys_cache_edit_paths(Scene *scene, Object *ob, PTCacheEdit *edit, float cf } else { ca->vel[0] = ca->vel[1] = 0.0f; - ca->vel[1] = 1.0f; + ca->vel[2] = 1.0f; } /* selection coloring in edit mode */ diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index 797ead3cd90..34f4a1e472b 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -172,7 +172,6 @@ void PTCACHE_OT_free_bake_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Free All Physics Bakes"; - ot->name= "Free all physics bakes"; ot->idname= "PTCACHE_OT_free_bake_all"; /* api callbacks */ diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 32004fd4525..d69c1d9c447 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -512,7 +512,7 @@ static float VecZDepthOrtho(float pt[2], float v1[3], float v2[3], float v3[3], return (v1[2]*w[0]) + (v2[2]*w[1]) + (v3[2]*w[2]); } -static float VecZDepthPersp(float pt[2], float v1[3], float v2[3], float v3[3], float w[3]) +static float VecZDepthPersp(float pt[2], float v1[4], float v2[4], float v3[4], float w[3]) { float wtot_inv, wtot; float w_tmp[3]; @@ -1193,7 +1193,7 @@ static void screen_px_from_ortho( * the perspective W coord for each vert */ static void screen_px_from_persp( float uv[2], - float v1co[3], float v2co[3], float v3co[3], /* screenspace coords */ + float v1co[4], float v2co[4], float v3co[4], /* screenspace coords */ float uv1co[2], float uv2co[2], float uv3co[2], float pixelScreenCo[4], float w[3]) diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index ad621257602..103a03eece2 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -316,11 +316,9 @@ static float cube[8][3] = { static void drawsolidcube_size(float xsize, float ysize, float zsize) { static GLuint displist=0; - float n[3]; + float n[3]= {0.0f}; glScalef(xsize, ysize, zsize); - - n[0]=0; n[1]=0; n[2]=0; if(displist==0) { displist= glGenLists(1); @@ -346,7 +344,6 @@ static void drawsolidcube_size(float xsize, float ysize, float zsize) n[2]= 1.0; glNormal3fv(n); glVertex3fv(cube[1]); glVertex3fv(cube[5]); glVertex3fv(cube[6]); glVertex3fv(cube[2]); - n[2]=0; n[2]= -1.0; glNormal3fv(n); glVertex3fv(cube[7]); glVertex3fv(cube[4]); glVertex3fv(cube[0]); glVertex3fv(cube[3]); diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 70659994c55..05159414975 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -833,7 +833,7 @@ static int select_edgeloop(Scene *scene, Image *ima, EditMesh *em, NearestHit *h if(extend) { tf= CustomData_em_get(&em->fdata, hit->efa->data, CD_MTFACE); - if(uvedit_uv_selected(scene, hit->efa, tf, hit->edge) && uvedit_uv_selected(scene, hit->efa, tf, hit->edge)) + if(uvedit_uv_selected(scene, hit->efa, tf, hit->edge)) select= 0; else select= 1; diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 28624e9350c..15b96b6d808 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -358,7 +358,7 @@ void GPU_material_enable_alpha(GPUMaterial *material) material->alpha= 1; } -GPUBlendMode GPU_material_blend_mode(GPUMaterial *material, float obcol[3]) +GPUBlendMode GPU_material_blend_mode(GPUMaterial *material, float obcol[4]) { if(material->alpha || (material->obcolalpha && obcol[3] < 1.0f)) return GPU_BLEND_ALPHA; -- cgit v1.2.3 From c96f28a718b0c94b52781cc91d384d2aeedf8c02 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 03:25:02 +0000 Subject: - use %u rather tham %d for unsigned ints in string formatting funcs. - replace (strlen(str) == 0) with str[0]=='\0' --- source/blender/blenkernel/intern/mesh_validate.c | 52 +++++++++++----------- source/blender/blenkernel/intern/pointcache.c | 10 ++--- source/blender/blenloader/intern/readblenentry.c | 2 +- source/blender/blenloader/intern/readfile.c | 6 +-- source/blender/editors/animation/anim_markers.c | 2 +- source/blender/editors/animation/fmodifier_ui.c | 2 +- source/blender/editors/object/object_modifier.c | 2 +- source/blender/gpu/intern/gpu_codegen.c | 2 +- .../blender/imbuf/intern/dds/DirectDrawSurface.cpp | 16 +++---- source/blender/imbuf/intern/tiff.c | 2 +- source/blender/makesrna/intern/makesrna.c | 34 +++++++------- source/blender/makesrna/intern/rna_define.c | 2 +- 12 files changed, 66 insertions(+), 66 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c index 34618a19ae9..9c916d517c5 100644 --- a/source/blender/blenkernel/intern/mesh_validate.c +++ b/source/blender/blenkernel/intern/mesh_validate.c @@ -80,7 +80,7 @@ static void edge_store_from_mface_quad(EdgeUUID es[4], MFace *mf) edge_store_assign(es[3].verts, mf->v4, mf->v1); } -static void edge_store_from_mface_tri(EdgeUUID es[3], MFace *mf) +static void edge_store_from_mface_tri(EdgeUUID es[4], MFace *mf) { edge_store_assign(es[0].verts, mf->v1, mf->v2); edge_store_assign(es[1].verts, mf->v2, mf->v3); @@ -143,30 +143,30 @@ int BKE_mesh_validate_arrays(Mesh *me, MVert *UNUSED(mverts), unsigned int totve BLI_assert(!(do_fixes && me == NULL)); - PRINT("ED_mesh_validate: verts(%d), edges(%d), faces(%d)\n", totvert, totedge, totface); + PRINT("ED_mesh_validate: verts(%u), edges(%u), faces(%u)\n", totvert, totedge, totface); if(totedge == 0 && totface != 0) { - PRINT(" locical error, %d faces and 0 edges\n", totface); + PRINT(" locical error, %u faces and 0 edges\n", totface); do_edge_recalc= TRUE; } for(i=0, med= medges; iv1 == med->v2) { - PRINT(" edge %d: has matching verts, both %d\n", i, med->v1); + PRINT(" edge %u: has matching verts, both %u\n", i, med->v1); remove= do_fixes; } if(med->v1 >= totvert) { - PRINT(" edge %d: v1 index out of range, %d\n", i, med->v1); + PRINT(" edge %u: v1 index out of range, %u\n", i, med->v1); remove= do_fixes; } if(med->v2 >= totvert) { - PRINT(" edge %d: v2 index out of range, %d\n", i, med->v2); + PRINT(" edge %u: v2 index out of range, %u\n", i, med->v2); remove= do_fixes; } if(BLI_edgehash_haskey(edge_hash, med->v1, med->v2)) { - PRINT(" edge %d: is a duplicate of, %d\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, med->v1, med->v2))); + PRINT(" edge %u: is a duplicate of, %u\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, med->v1, med->v2))); remove= do_fixes; } @@ -187,41 +187,41 @@ int BKE_mesh_validate_arrays(Mesh *me, MVert *UNUSED(mverts), unsigned int totve do { fv[fidx]= *(&(mf->v1) + fidx); if(fv[fidx] >= totvert) { - PRINT(" face %d: 'v%d' index out of range, %d\n", i, fidx + 1, fv[fidx]); + PRINT(" face %u: 'v%d' index out of range, %u\n", i, fidx + 1, fv[fidx]); remove= do_fixes; } } while (fidx--); if(remove == FALSE) { if(mf->v4) { - if(mf->v1 == mf->v2) { PRINT(" face %d: verts invalid, v1/v2 both %d\n", i, mf->v1); remove= do_fixes; } - if(mf->v1 == mf->v3) { PRINT(" face %d: verts invalid, v1/v3 both %d\n", i, mf->v1); remove= do_fixes; } - if(mf->v1 == mf->v4) { PRINT(" face %d: verts invalid, v1/v4 both %d\n", i, mf->v1); remove= do_fixes; } + if(mf->v1 == mf->v2) { PRINT(" face %u: verts invalid, v1/v2 both %u\n", i, mf->v1); remove= do_fixes; } + if(mf->v1 == mf->v3) { PRINT(" face %u: verts invalid, v1/v3 both %u\n", i, mf->v1); remove= do_fixes; } + if(mf->v1 == mf->v4) { PRINT(" face %u: verts invalid, v1/v4 both %u\n", i, mf->v1); remove= do_fixes; } - if(mf->v2 == mf->v3) { PRINT(" face %d: verts invalid, v2/v3 both %d\n", i, mf->v2); remove= do_fixes; } - if(mf->v2 == mf->v4) { PRINT(" face %d: verts invalid, v2/v4 both %d\n", i, mf->v2); remove= do_fixes; } + if(mf->v2 == mf->v3) { PRINT(" face %u: verts invalid, v2/v3 both %u\n", i, mf->v2); remove= do_fixes; } + if(mf->v2 == mf->v4) { PRINT(" face %u: verts invalid, v2/v4 both %u\n", i, mf->v2); remove= do_fixes; } - if(mf->v3 == mf->v4) { PRINT(" face %d: verts invalid, v3/v4 both %d\n", i, mf->v3); remove= do_fixes; } + if(mf->v3 == mf->v4) { PRINT(" face %u: verts invalid, v3/v4 both %u\n", i, mf->v3); remove= do_fixes; } } else { - if(mf->v1 == mf->v2) { PRINT(" faceT %d: verts invalid, v1/v2 both %d\n", i, mf->v1); remove= do_fixes; } - if(mf->v1 == mf->v3) { PRINT(" faceT %d: verts invalid, v1/v3 both %d\n", i, mf->v1); remove= do_fixes; } + if(mf->v1 == mf->v2) { PRINT(" faceT %u: verts invalid, v1/v2 both %u\n", i, mf->v1); remove= do_fixes; } + if(mf->v1 == mf->v3) { PRINT(" faceT %u: verts invalid, v1/v3 both %u\n", i, mf->v1); remove= do_fixes; } - if(mf->v2 == mf->v3) { PRINT(" faceT %d: verts invalid, v2/v3 both %d\n", i, mf->v2); remove= do_fixes; } + if(mf->v2 == mf->v3) { PRINT(" faceT %u: verts invalid, v2/v3 both %u\n", i, mf->v2); remove= do_fixes; } } if(remove == FALSE) { if(totedge) { if(mf->v4) { - if(!BLI_edgehash_haskey(edge_hash, mf->v1, mf->v2)) { PRINT(" face %d: edge v1/v2 (%d,%d) is missing egde data\n", i, mf->v1, mf->v2); do_edge_recalc= TRUE; } - if(!BLI_edgehash_haskey(edge_hash, mf->v2, mf->v3)) { PRINT(" face %d: edge v2/v3 (%d,%d) is missing egde data\n", i, mf->v2, mf->v3); do_edge_recalc= TRUE; } - if(!BLI_edgehash_haskey(edge_hash, mf->v3, mf->v4)) { PRINT(" face %d: edge v3/v4 (%d,%d) is missing egde data\n", i, mf->v3, mf->v4); do_edge_recalc= TRUE; } - if(!BLI_edgehash_haskey(edge_hash, mf->v4, mf->v1)) { PRINT(" face %d: edge v4/v1 (%d,%d) is missing egde data\n", i, mf->v4, mf->v1); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v1, mf->v2)) { PRINT(" face %u: edge v1/v2 (%u,%u) is missing egde data\n", i, mf->v1, mf->v2); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v2, mf->v3)) { PRINT(" face %u: edge v2/v3 (%u,%u) is missing egde data\n", i, mf->v2, mf->v3); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v3, mf->v4)) { PRINT(" face %u: edge v3/v4 (%u,%u) is missing egde data\n", i, mf->v3, mf->v4); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v4, mf->v1)) { PRINT(" face %u: edge v4/v1 (%u,%u) is missing egde data\n", i, mf->v4, mf->v1); do_edge_recalc= TRUE; } } else { - if(!BLI_edgehash_haskey(edge_hash, mf->v1, mf->v2)) { PRINT(" face %d: edge v1/v2 (%d,%d) is missing egde data\n", i, mf->v1, mf->v2); do_edge_recalc= TRUE; } - if(!BLI_edgehash_haskey(edge_hash, mf->v2, mf->v3)) { PRINT(" face %d: edge v2/v3 (%d,%d) is missing egde data\n", i, mf->v2, mf->v3); do_edge_recalc= TRUE; } - if(!BLI_edgehash_haskey(edge_hash, mf->v3, mf->v1)) { PRINT(" face %d: edge v3/v1 (%d,%d) is missing egde data\n", i, mf->v3, mf->v1); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v1, mf->v2)) { PRINT(" face %u: edge v1/v2 (%u,%u) is missing egde data\n", i, mf->v1, mf->v2); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v2, mf->v3)) { PRINT(" face %u: edge v2/v3 (%u,%u) is missing egde data\n", i, mf->v2, mf->v3); do_edge_recalc= TRUE; } + if(!BLI_edgehash_haskey(edge_hash, mf->v3, mf->v1)) { PRINT(" face %u: edge v3/v1 (%u,%u) is missing egde data\n", i, mf->v3, mf->v1); do_edge_recalc= TRUE; } } } @@ -261,10 +261,10 @@ int BKE_mesh_validate_arrays(Mesh *me, MVert *UNUSED(mverts), unsigned int totve if(do_verbose) { mf_prev= mfaces + sf_prev->index; if(mf->v4) { - PRINT(" face %d & %d: are duplicates (%d,%d,%d,%d) (%d,%d,%d,%d)\n", sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3, mf->v4, mf_prev->v1, mf_prev->v2, mf_prev->v3, mf_prev->v4); + PRINT(" face %u & %u: are duplicates (%u,%u,%u,%u) (%u,%u,%u,%u)\n", sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3, mf->v4, mf_prev->v1, mf_prev->v2, mf_prev->v3, mf_prev->v4); } else { - PRINT(" face %d & %d: are duplicates (%d,%d,%d) (%d,%d,%d)\n", sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3, mf_prev->v1, mf_prev->v2, mf_prev->v3); + PRINT(" face %u & %u: are duplicates (%u,%u,%u) (%u,%u,%u)\n", sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3, mf_prev->v1, mf_prev->v2, mf_prev->v3); } } diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index b8f4b2d302f..0f0afe30392 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -967,12 +967,12 @@ static int ptcache_filename(PTCacheID *pid, char *filename, int cfra, short do_p if(pid->cache->flag & PTCACHE_EXTERNAL) { if(pid->cache->index >= 0) - snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02d"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ + snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ else snprintf(newname, MAX_PTCACHE_FILE, "_%06d"PTCACHE_EXT, cfra); /* always 6 chars */ } else { - snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02d"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ + snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ } len += 16; } @@ -2002,7 +2002,7 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, unsigned int cfra) if (dir==NULL) return; - snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, pid->stack_index); + snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); while ((de = readdir(dir)) != NULL) { if (strstr(de->d_name, ext)) { /* do we have the right extension?*/ @@ -2204,7 +2204,7 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra if (dir==NULL) return; - snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, pid->stack_index); + snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); while ((de = readdir(dir)) != NULL) { if (strstr(de->d_name, ext)) { /* do we have the right extension?*/ @@ -2904,7 +2904,7 @@ void BKE_ptcache_disk_cache_rename(PTCacheID *pid, char *from, char *to) return; } - snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, pid->stack_index); + snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); /* put new name into cache */ strcpy(pid->cache->name, to); diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c index 4ce5685ff18..31b3724e9f6 100644 --- a/source/blender/blenloader/intern/readblenentry.c +++ b/source/blender/blenloader/intern/readblenentry.c @@ -115,7 +115,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 int)bhead->len+sizeof(BHead)); + fprintf(fp, "['%.4s', '%s', %d, %ld ], \n", buf, name, bhead->nr, (long int)(bhead->len+sizeof(BHead))); } } fprintf(fp, "]\n"); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0e99b357054..f3b478b90f9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10063,7 +10063,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) * to have them show in RNA viewer and accessible otherwise. */ for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree && strlen(ma->nodetree->id.name)==0) + if(ma->nodetree && ma->nodetree->id.name[0] == '\0') strcpy(ma->nodetree->id.name, "NTShader Nodetree"); /* which_output 0 is now "not specified" */ @@ -10077,7 +10077,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* and composit trees */ for(sce= main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree && strlen(sce->nodetree->id.name)==0) + if(sce->nodetree && sce->nodetree->id.name[0] == '\0') strcpy(sce->nodetree->id.name, "NTCompositing Nodetree"); /* move to cameras */ @@ -10099,7 +10099,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) bNode *node; if(tx->nodetree) { - if(strlen(tx->nodetree->id.name)==0) + if(tx->nodetree->id.name[0] == '\0') strcpy(tx->nodetree->id.name, "NTTexture Nodetree"); /* which_output 0 is now "not specified" */ diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index b3338396598..f561bdc6183 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -339,7 +339,7 @@ void debug_markers_print_list(ListBase *markers) printf("List of markers follows: -----\n"); for (marker = markers->first; marker; marker = marker->next) { - printf("\t'%s' on %d at %p with %d\n", marker->name, marker->frame, (void *)marker, marker->flag); + printf("\t'%s' on %d at %p with %u\n", marker->name, marker->frame, (void *)marker, marker->flag); } printf("End of list ------------------\n"); diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 954928fc486..718188d5800 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -162,7 +162,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s if (i == 1) strcpy(xval, "x"); else - sprintf(xval, "x^%d", i); + sprintf(xval, "x^%u", i); uiDefBut(block, LABEL, 1, xval, 0, 0, 50, 20, NULL, 0.0, 0.0, 0, 0, "Power of x"); } diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 2ac9161ffa3..c96d7c1fd10 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -1280,7 +1280,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; if(mmd->bindcagecos) { - if(mmd->bindcagecos) MEM_freeN(mmd->bindcagecos); + MEM_freeN(mmd->bindcagecos); if(mmd->dyngrid) MEM_freeN(mmd->dyngrid); if(mmd->dyninfluences) MEM_freeN(mmd->dyninfluences); if(mmd->bindinfluences) MEM_freeN(mmd->bindinfluences); diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 470b99de00b..910576fa34e 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -291,7 +291,7 @@ static void gpu_parse_functions_string(GHash *hash, char *code) } } - if(strlen(function->name) == 0 || function->totparam == 0) { + if(function->name[0] == '\0' || function->totparam == 0) { fprintf(stderr, "GPU functions parse error.\n"); MEM_freeN(function); break; diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp index 971658ff482..44e029bd7ce 100644 --- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp +++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp @@ -1426,12 +1426,12 @@ void DirectDrawSurface::printInfo() const if (header.flags & DDSD_LINEARSIZE) printf("\tDDSD_LINEARSIZE\n"); if (header.flags & DDSD_MIPMAPCOUNT) printf("\tDDSD_MIPMAPCOUNT\n"); - printf("Height: %d\n", header.height); - printf("Width: %d\n", header.width); - printf("Depth: %d\n", header.depth); - if (header.flags & DDSD_PITCH) printf("Pitch: %d\n", header.pitch); - else if (header.flags & DDSD_LINEARSIZE) printf("Linear size: %d\n", header.pitch); - printf("Mipmap count: %d\n", header.mipmapcount); + printf("Height: %u\n", header.height); + printf("Width: %u\n", header.width); + printf("Depth: %u\n", header.depth); + if (header.flags & DDSD_PITCH) printf("Pitch: %u\n", header.pitch); + else if (header.flags & DDSD_LINEARSIZE) printf("Linear size: %u\n", header.pitch); + printf("Mipmap count: %u\n", header.mipmapcount); printf("Pixel Format:\n"); printf("\tFlags: 0x%.8X\n", header.pf.flags); @@ -1468,7 +1468,7 @@ void DirectDrawSurface::printInfo() const } else { - printf("\tBit count: %d\n", header.pf.bitcount); + printf("\tBit count: %u\n", header.pf.bitcount); } printf("\tRed mask: 0x%.8X\n", header.pf.rmask); @@ -1522,7 +1522,7 @@ void DirectDrawSurface::printInfo() const if (header.reserved[7] == FOURCC_UVER) { - printf("User Version: %d\n", header.reserved[8]); + printf("User Version: %u\n", header.reserved[8]); } } diff --git a/source/blender/imbuf/intern/tiff.c b/source/blender/imbuf/intern/tiff.c index 36130aa0dbf..7beb853fe62 100644 --- a/source/blender/imbuf/intern/tiff.c +++ b/source/blender/imbuf/intern/tiff.c @@ -646,7 +646,7 @@ void imb_loadtiletiff(ImBuf *ibuf, unsigned char *mem, size_t size, int tx, int } } else - printf("imb_loadtiff: mipmap level %d has unexpected size %dx%d instead of %dx%d\n", ibuf->miplevel, width, height, ibuf->x, ibuf->y); + printf("imb_loadtiff: mipmap level %d has unexpected size %ux%u instead of %dx%d\n", ibuf->miplevel, width, height, ibuf->x, ibuf->y); } else printf("imb_loadtiff: could not find mipmap level %d\n", ibuf->miplevel); diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 7da538e171b..d47abced85e 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -569,7 +569,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr if(prop->flag & PROP_DYNAMIC) fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, %s values[%u])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -587,7 +587,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr } else { fprintf(f, " int i;\n\n"); - fprintf(f, " for(i=0; i<%d; i++) {\n", prop->totarraylength); + fprintf(f, " for(i=0; i<%u; i++) {\n", prop->totarraylength); } if(dp->dnaarraylength == 1) { @@ -783,7 +783,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr if(prop->flag & PROP_DYNAMIC) fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, const %s values[%u])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -803,7 +803,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr else { fprintf(f, " int i;\n\n"); rna_clamp_value_range(f, prop); - fprintf(f, " for(i=0; i<%d; i++) {\n", prop->totarraylength); + fprintf(f, " for(i=0; i<%u; i++) {\n", prop->totarraylength); } if(dp->dnaarraylength == 1) { @@ -1324,7 +1324,7 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); + fprintf(f, "void %sget(PointerRNA *ptr, int values[%u]);\n", func, prop->totarraylength); //fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); } else { @@ -1339,7 +1339,7 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR //fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); + fprintf(f, "void %sget(PointerRNA *ptr, float values[%u]);\n", func, prop->totarraylength); //fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); } else { @@ -1420,21 +1420,21 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property if(!prop->arraydimension) fprintf(f, "\tinline bool %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) fprintf(f, "\tinline int %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) fprintf(f, "\tinline float %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { @@ -1495,21 +1495,21 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe if(!prop->arraydimension) fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %u, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %u, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); + fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %u, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { @@ -2028,7 +2028,7 @@ static void rna_generate_static_parameter_prototypes(BlenderRNA *brna, StructRNA fprintf(f, "int %s%s_len, ", pout ? "*" : "", dparm->prop->identifier); if(!(flag & PROP_DYNAMIC) && dparm->prop->arraydimension) - fprintf(f, "%s%s %s[%d]", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), dparm->prop->identifier, dparm->prop->totarraylength); + fprintf(f, "%s%s %s[%u]", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), dparm->prop->identifier, dparm->prop->totarraylength); else fprintf(f, "%s%s %s%s", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), ptrstr, dparm->prop->identifier); @@ -2129,7 +2129,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr unsigned int i; if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "static int rna_%s%s_%s_default[%d] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); + fprintf(f, "static int rna_%s%s_%s_default[%u] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); for(i=0; itotarraylength; i++) { if(bprop->defaultarray) @@ -2149,7 +2149,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr unsigned int i; if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "static int rna_%s%s_%s_default[%d] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); + fprintf(f, "static int rna_%s%s_%s_default[%u] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); for(i=0; itotarraylength; i++) { if(iprop->defaultarray) @@ -2169,7 +2169,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr unsigned int i; if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "static float rna_%s%s_%s_default[%d] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); + fprintf(f, "static float rna_%s%s_%s_default[%u] = {\n\t", srna->identifier, strnest, prop->identifier, prop->totarraylength); for(i=0; itotarraylength; i++) { if(fprop->defaultarray) @@ -2200,7 +2200,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr rna_print_c_string(f, prop->name); fprintf(f, ",\n\t"); rna_print_c_string(f, prop->description); fprintf(f, ",\n\t"); fprintf(f, "%d,\n", prop->icon); - fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", RNA_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); + fprintf(f, "\t%s, %s|%s, %s, %u, {%u, %u, %u}, %u,\n", RNA_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); fprintf(f, "\t%s%s, %d, %s, %s,\n", (prop->flag & PROP_CONTEXT_UPDATE)? "(UpdateFunc)": "", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); if(prop->flag & PROP_RAW_ACCESS) rna_set_raw_offset(f, srna, prop); diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 8e9c7e287d6..758ddc9ac6a 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -1049,7 +1049,7 @@ void RNA_def_property_array(PropertyRNA *prop, int length) } if(prop->arraydimension > 1) { - fprintf(stderr, "RNA_def_property_array: \"%s.%s\", array dimensions has been set to %d but would be overwritten as 1.\n", srna->identifier, prop->identifier, prop->arraydimension); + fprintf(stderr, "RNA_def_property_array: \"%s.%s\", array dimensions has been set to %u but would be overwritten as 1.\n", srna->identifier, prop->identifier, prop->arraydimension); DefRNA.error= 1; return; } -- cgit v1.2.3 From ca1e9d2c1812ac518aac5a8ec7df4baea56918d2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 03:34:11 +0000 Subject: replace octal 0177 with 127 to be more clear, no functional change. --- source/blender/avi/intern/avi.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c index ff3aafbf065..8ad751a5b40 100644 --- a/source/blender/avi/intern/avi.c +++ b/source/blender/avi/intern/avi.c @@ -87,17 +87,17 @@ unsigned int GET_TCC (FILE *fp) { } char *fcc_to_char (unsigned int fcc) { - DEBUG_FCC[0]= (fcc)&0177; - DEBUG_FCC[1]= (fcc>>8)&0177; - DEBUG_FCC[2]= (fcc>>16)&0177; - DEBUG_FCC[3]= (fcc>>24)&0177; + DEBUG_FCC[0]= (fcc)&127; + DEBUG_FCC[1]= (fcc>>8)&127; + DEBUG_FCC[2]= (fcc>>16)&127; + DEBUG_FCC[3]= (fcc>>24)&127; return DEBUG_FCC; } char *tcc_to_char (unsigned int tcc) { - DEBUG_FCC[0]= (tcc)&0177; - DEBUG_FCC[1]= (tcc>>8)&0177; + DEBUG_FCC[0]= (tcc)&127; + DEBUG_FCC[1]= (tcc>>8)&127; DEBUG_FCC[2]= 0; DEBUG_FCC[3]= 0; -- cgit v1.2.3 From cd0e92c5b7b5fb12f07305101fdba45a5cd10e9c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 07:06:44 +0000 Subject: fix for building with msvc, ssize_t is more correct but in this case its not going to give issues. --- source/blender/blenkernel/intern/library.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 76f114de97b..4d158a6c26c 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -671,7 +671,7 @@ void *copy_libblock(void *rt) assert(idn != NULL); idn_len= MEM_allocN_len(idn); - if((ssize_t)idn_len - (ssize_t)sizeof(ID) > 0) { /* signed to allow neg result */ + if((int)idn_len - (int)sizeof(ID) > 0) { /* signed to allow neg result */ cp= (char *)id; cpn= (char *)idn; memcpy(cpn+sizeof(ID), cp+sizeof(ID), idn_len - sizeof(ID)); -- cgit v1.2.3 From a347f0267b70c35e33d25c05df4a89fa7a95dd04 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sat, 27 Aug 2011 11:41:48 +0000 Subject: Fix [#28341] writing }(alt+n) in text editor creates a new file Change hotkey for new textblock to Ctrl-N. --- source/blender/editors/space_text/space_text.c | 2 +- source/blender/editors/space_text/text_ops.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index 550f2c937fd..c7d4d78422e 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -274,7 +274,7 @@ static void text_keymap(struct wmKeyConfig *keyconf) RNA_string_set(kmi->ptr, "data_path", "space_data.font_size"); RNA_boolean_set(kmi->ptr, "reverse", 1); - WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "TEXT_OT_open", OKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_reload", RKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT, 0); diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 13eb24ed1f2..617bbf62e92 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -192,11 +192,12 @@ static int new_exec(bContext *C, wmOperator *UNUSED(op)) void TEXT_OT_new(wmOperatorType *ot) { /* identifiers */ - ot->name= "New"; + ot->name= "Create Text Block"; ot->idname= "TEXT_OT_new"; ot->description= "Create a new text data block"; /* api callbacks */ + ot->invoke= WM_operator_confirm; ot->exec= new_exec; ot->poll= text_new_poll; -- cgit v1.2.3 From 01230b137438881d2bdd9f651143880c84b85bf1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 11:52:59 +0000 Subject: fix [#28373] "Lock camera to view" doew not work with 3D-mouse --- source/blender/editors/include/ED_view3d.h | 4 +-- source/blender/editors/space_view3d/view3d_edit.c | 35 +++++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index dfe0a304748..f8682d3935b 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -288,7 +288,7 @@ unsigned int ED_viewedit_datamask(struct bScreen *screen); int ED_view3d_camera_lock_check(struct View3D *v3d, struct RegionView3D *rv3d); /* copy the camera to the view before starting a view transformation */ void ED_view3d_camera_lock_init(struct View3D *v3d, struct RegionView3D *rv3d); -/* copy the view to the camera */ -void ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d); +/* copy the view to the camera, return TRUE if */ +int ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d); #endif /* ED_VIEW3D_H */ diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0e8dd38c02c..e9ed5dac3de 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -97,7 +97,8 @@ void ED_view3d_camera_lock_init(View3D *v3d, RegionView3D *rv3d) } } -void ED_view3d_camera_lock_sync(View3D *v3d, RegionView3D *rv3d) +/* return TRUE if the camera is moved */ +int ED_view3d_camera_lock_sync(View3D *v3d, RegionView3D *rv3d) { if(ED_view3d_camera_lock_check(v3d, rv3d)) { Object *root_parent; @@ -132,6 +133,11 @@ void ED_view3d_camera_lock_sync(View3D *v3d, RegionView3D *rv3d) DAG_id_tag_update(&v3d->camera->id, OB_RECALC_OB); WM_main_add_notifier(NC_OBJECT|ND_TRANSFORM, v3d->camera); } + + return TRUE; + } + else { + return FALSE; } } @@ -944,17 +950,22 @@ void ndof_to_quat(struct wmNDOFMotionData* ndof, float q[4]) axis_angle_to_quat(q, axis, angle); } +/* -- "orbit" navigation (trackball/turntable) + * -- zooming + * -- panning in rotationally-locked views + */ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -// -- "orbit" navigation (trackball/turntable) -// -- zooming -// -- panning in rotationally-locked views { - if (event->type != NDOF_MOTION) + if (event->type != NDOF_MOTION) { return OPERATOR_CANCELLED; + } else { + View3D *v3d= CTX_wm_view3d(C); RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + ED_view3d_camera_lock_init(v3d, rv3d); + rv3d->rot_angle = 0.f; // off by default, until changed later this function if (ndof->progress != P_FINISHING) { @@ -1064,6 +1075,8 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event } } + ED_view3d_camera_lock_sync(v3d, rv3d); + ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -1085,16 +1098,20 @@ void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot) ot->flag = 0; } +/* -- "pan" navigation + * -- zoom or dolly? + */ static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -// -- "pan" navigation -// -- zoom or dolly? { - if (event->type != NDOF_MOTION) + if (event->type != NDOF_MOTION) { return OPERATOR_CANCELLED; + } else { + View3D *v3d= CTX_wm_view3d(C); RegionView3D* rv3d = CTX_wm_region_view3d(C); wmNDOFMotionData* ndof = (wmNDOFMotionData*) event->customdata; + ED_view3d_camera_lock_init(v3d, rv3d); rv3d->rot_angle = 0.f; // we're panning here! so erase any leftover rotation from other operators @@ -1141,6 +1158,8 @@ static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) sub_v3_v3(rv3d->ofs, pan_vec); } + ED_view3d_camera_lock_sync(v3d, rv3d); + ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; -- cgit v1.2.3 From 4684df08304135fdd2cbe1dc22d2658b24f83d1f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 02:04:40 +0000 Subject: fix [#28388] Clouds at high depth give artifacts. http://projects.blender.org/tracker/download.php/9/498/28388/17476/screen_bad.png --- source/blender/blenlib/intern/noise.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c index 5d80edebbef..40289090a28 100644 --- a/source/blender/blenlib/intern/noise.c +++ b/source/blender/blenlib/intern/noise.c @@ -920,7 +920,7 @@ static float g[512+2][3]= { t = vec[i] + 10000.; \ b0 = ((int)t) & 255; \ b1 = (b0+1) & 255; \ - r0 = t - (int)t; \ + r0 = t - floorf(t); \ r1 = r0 - 1.; -- cgit v1.2.3 From 81ea1e7fcb4a746e4ecd4349cc9fba1eb1dcec70 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 02:54:26 +0000 Subject: remove implicit casts to doubles in the noise code, also use floating point math functions rather then double since the noise functions range is already limited by casting to ints in many places. - gives a very small speedup. --- source/blender/blenlib/intern/noise.c | 132 +++++++++++++++++----------------- 1 file changed, 66 insertions(+), 66 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c index 40289090a28..9bc666dc971 100644 --- a/source/blender/blenlib/intern/noise.c +++ b/source/blender/blenlib/intern/noise.c @@ -251,7 +251,7 @@ static float newPerlin(float x, float y, float z) /* for use with BLI_gNoise()/BLI_gTurbulence(), returns unsigned improved perlin noise */ static float newPerlinU(float x, float y, float z) { - return (0.5+0.5*newPerlin(x, y, z)); + return (0.5f+0.5f*newPerlin(x, y, z)); } @@ -278,12 +278,12 @@ static float orgBlenderNoise(float x, float y, float z) cn1=ox*ox; cn2=oy*oy; cn3=oz*oz; cn4=jx*jx; cn5=jy*jy; cn6=jz*jz; - cn1= 1.0-3.0*cn1+2.0*cn1*ox; - cn2= 1.0-3.0*cn2+2.0*cn2*oy; - cn3= 1.0-3.0*cn3+2.0*cn3*oz; - cn4= 1.0-3.0*cn4-2.0*cn4*jx; - cn5= 1.0-3.0*cn5-2.0*cn5*jy; - cn6= 1.0-3.0*cn6-2.0*cn6*jz; + cn1= 1.0f-3.0f*cn1+2.0f*cn1*ox; + cn2= 1.0f-3.0f*cn2+2.0f*cn2*oy; + cn3= 1.0f-3.0f*cn3+2.0f*cn3*oz; + cn4= 1.0f-3.0f*cn4-2.0f*cn4*jx; + cn5= 1.0f-3.0f*cn5-2.0f*cn5*jy; + cn6= 1.0f-3.0f*cn6-2.0f*cn6*jz; b00= hash[ hash[ix & 255]+(iy & 255)]; b10= hash[ hash[(ix+1) & 255]+(iy & 255)]; @@ -325,23 +325,23 @@ static float orgBlenderNoise(float x, float y, float z) h=hashvectf+ 3*hash[b21+b11]; n+= i*(h[0]*jx+h[1]*jy+h[2]*jz); - if(n<0.0) n=0.0; else if(n>1.0) n=1.0; + if(n<0.0f) n=0.0f; else if(n>1.0f) n=1.0f; return n; } /* as orgBlenderNoise(), returning signed noise */ static float orgBlenderNoiseS(float x, float y, float z) { - return (2.0*orgBlenderNoise(x, y, z)-1.0); + return (2.0f*orgBlenderNoise(x, y, z)-1.0f); } /* separated from orgBlenderNoise above, with scaling */ float BLI_hnoise(float noisesize, float x, float y, float z) { - if(noisesize==0.0) return 0.0; - x= (1.0+x)/noisesize; - y= (1.0+y)/noisesize; - z= (1.0+z)/noisesize; + if(noisesize==0.0f) return 0.0f; + x= (1.0f+x)/noisesize; + y= (1.0f+y)/noisesize; + z= (1.0f+z)/noisesize; return orgBlenderNoise(x, y, z); } @@ -357,7 +357,7 @@ float BLI_turbulence(float noisesize, float x, float y, float z, int nr) s+= d*BLI_hnoise(noisesize*d, x, y, z); div+= d; - d*= 0.5; + d*= 0.5f; nr--; } @@ -368,13 +368,13 @@ float BLI_turbulence1(float noisesize, float x, float y, float z, int nr) { float s, d= 0.5, div=1.0; - s= fabs( (-1.0+2.0*BLI_hnoise(noisesize, x, y, z))); + s= fabsf( (-1.0f+2.0f*BLI_hnoise(noisesize, x, y, z))); while(nr>0) { - s+= fabs(d* (-1.0+2.0*BLI_hnoise(noisesize*d, x, y, z))); + s+= fabsf(d* (-1.0f+2.0f*BLI_hnoise(noisesize*d, x, y, z))); div+= d; - d*= 0.5; + d*= 0.5f; nr--; } @@ -917,11 +917,11 @@ static float g[512+2][3]= { #define DOT(a,b) (a[0] * b[0] + a[1] * b[1] + a[2] * b[2]) #define setup(i,b0,b1,r0,r1) \ - t = vec[i] + 10000.; \ + t = vec[i] + 10000.0f; \ b0 = ((int)t) & 255; \ b1 = (b0+1) & 255; \ r0 = t - floorf(t); \ - r1 = r0 - 1.; + r1 = r0 - 1.0f; static float noise3_perlin(float vec[3]) @@ -945,7 +945,7 @@ static float noise3_perlin(float vec[3]) #define at(rx,ry,rz) ( rx * q[0] + ry * q[1] + rz * q[2] ) -#define surve(t) ( t * t * (3. - 2. * t) ) +#define surve(t) ( t * t * (3.0f - 2.0f * t) ) /* lerp moved to improved perlin above */ @@ -982,7 +982,7 @@ static float noise3_perlin(float vec[3]) d = lerp(sy, a, b); /* interpolate in y at hi x */ - return 1.5 * lerp(sz, c, d); /* interpolate in z */ + return 1.5f * lerp(sz, c, d); /* interpolate in z */ } #if 0 @@ -996,7 +996,7 @@ static float turbulence_perlin(float *point, float lofreq, float hifreq) t = 0; for (freq = lofreq ; freq < hifreq ; freq *= 2.) { - t += fabs(noise3_perlin(p)) / freq; + t += fabsf(noise3_perlin(p)) / freq; p[0] *= 2.; p[1] *= 2.; p[2] *= 2.; @@ -1024,7 +1024,7 @@ static float orgPerlinNoiseU(float x, float y, float z) v[0] = x; v[1] = y; v[2] = z; - return (0.5+0.5*noise3_perlin(v)); + return (0.5f+0.5f*noise3_perlin(v)); } /* *************** CALL AS: *************** */ @@ -1061,18 +1061,18 @@ float BLI_hnoisep(float noisesize, float x, float y, float z) /* distance squared */ static float dist_Squared(float x, float y, float z, float e) { (void)e; return (x*x + y*y + z*z); } /* real distance */ -static float dist_Real(float x, float y, float z, float e) { (void)e; return sqrt(x*x + y*y + z*z); } +static float dist_Real(float x, float y, float z, float e) { (void)e; return sqrtf(x*x + y*y + z*z); } /* manhattan/taxicab/cityblock distance */ -static float dist_Manhattan(float x, float y, float z, float e) { (void)e; return (fabs(x) + fabs(y) + fabs(z)); } +static float dist_Manhattan(float x, float y, float z, float e) { (void)e; return (fabsf(x) + fabsf(y) + fabsf(z)); } /* Chebychev */ static float dist_Chebychev(float x, float y, float z, float e) { float t; (void)e; - x = fabs(x); - y = fabs(y); - z = fabs(z); + x = fabsf(x); + y = fabsf(y); + z = fabsf(z); t = (x>y)?x:y; return ((z>t)?z:t); } @@ -1080,7 +1080,7 @@ static float dist_Chebychev(float x, float y, float z, float e) /* minkovsky preset exponent 0.5 */ static float dist_MinkovskyH(float x, float y, float z, float e) { - float d = sqrt(fabs(x)) + sqrt(fabs(y)) + sqrt(fabs(z)); + float d = sqrtf(fabsf(x)) + sqrtf(fabsf(y)) + sqrtf(fabsf(z)); (void)e; return (d*d); } @@ -1092,13 +1092,13 @@ static float dist_Minkovsky4(float x, float y, float z, float e) x *= x; y *= y; z *= z; - return sqrt(sqrt(x*x + y*y + z*z)); + return sqrtf(sqrtf(x*x + y*y + z*z)); } /* Minkovsky, general case, slow, maybe too slow to be useful */ static float dist_Minkovsky(float x, float y, float z, float e) { - return pow(pow(fabs(x), e) + pow(fabs(y), e) + pow(fabs(z), e), 1.0/e); + return powf(powf(fabsf(x), e) + powf(fabsf(y), e) + powf(fabsf(z), e), 1.0f/e); } @@ -1224,35 +1224,35 @@ static float voronoi_F1S(float x, float y, float z) { float da[4], pa[12]; voronoi(x, y, z, da, pa, 1, 0); - return (2.0*da[0]-1.0); + return (2.0f*da[0]-1.0f); } static float voronoi_F2S(float x, float y, float z) { float da[4], pa[12]; voronoi(x, y, z, da, pa, 1, 0); - return (2.0*da[1]-1.0); + return (2.0f*da[1]-1.0f); } static float voronoi_F3S(float x, float y, float z) { float da[4], pa[12]; voronoi(x, y, z, da, pa, 1, 0); - return (2.0*da[2]-1.0); + return (2.0f*da[2]-1.0f); } static float voronoi_F4S(float x, float y, float z) { float da[4], pa[12]; voronoi(x, y, z, da, pa, 1, 0); - return (2.0*da[3]-1.0); + return (2.0f*da[3]-1.0f); } static float voronoi_F1F2S(float x, float y, float z) { float da[4], pa[12]; voronoi(x, y, z, da, pa, 1, 0); - return (2.0*(da[1]-da[0])-1.0); + return (2.0f*(da[1]-da[0])-1.0f); } /* Crackle type pattern, just a scale/clamp of F2-F1 */ @@ -1260,7 +1260,7 @@ static float voronoi_CrS(float x, float y, float z) { float t = 10*voronoi_F1F2(x, y, z); if (t>1.f) return 1.f; - return (2.0*t-1.0); + return (2.0f*t-1.0f); } @@ -1280,13 +1280,13 @@ static float cellNoiseU(float x, float y, float z) int zi = (int)(floor(z)); unsigned int n = xi + yi*1301 + zi*314159; n ^= (n<<13); - return ((float)(n*(n*n*15731 + 789221) + 1376312589) / 4294967296.0); + return ((float)(n*(n*n*15731 + 789221) + 1376312589) / 4294967296.0f); } /* idem, signed */ float cellNoise(float x, float y, float z) { - return (2.0*cellNoiseU(x, y, z)-1.0); + return (2.0f*cellNoiseU(x, y, z)-1.0f); } /* returns a vector/point/color in ca, using point hasharray directly */ @@ -1349,14 +1349,14 @@ float BLI_gNoise(float noisesize, float x, float y, float z, int hard, int noise } } - if (noisesize!=0.0) { - noisesize = 1.0/noisesize; + if (noisesize!=0.0f) { + noisesize = 1.0f/noisesize; x *= noisesize; y *= noisesize; z *= noisesize; } - if (hard) return fabs(2.0*noisefunc(x, y, z)-1.0); + if (hard) return fabsf(2.0f*noisefunc(x, y, z)-1.0f); return noisefunc(x, y, z); } @@ -1403,17 +1403,17 @@ float BLI_gTurbulence(float noisesize, float x, float y, float z, int oct, int h z += 1; } - if (noisesize!=0.0) { - noisesize = 1.0/noisesize; + if (noisesize!=0.0f) { + noisesize = 1.0f/noisesize; x *= noisesize; y *= noisesize; z *= noisesize; } sum = 0; - for (i=0;i<=oct;i++, amp*=0.5, fscale*=2) { + for (i=0;i<=oct;i++, amp*=0.5f, fscale*=2.0f) { t = noisefunc(fscale*x, fscale*y, fscale*z); - if (hard) t = fabs(2.0*t-1.0); + if (hard) t = fabsf(2.0f*t-1.0f); sum += t * amp; } @@ -1439,7 +1439,7 @@ float BLI_gTurbulence(float noisesize, float x, float y, float z, int oct, int h */ float mg_fBm(float x, float y, float z, float H, float lacunarity, float octaves, int noisebasis) { - float rmd, value=0.0, pwr=1.0, pwHL=pow(lacunarity, -H); + float rmd, value=0.0, pwr=1.0, pwHL=powf(lacunarity, -H); int i; float (*noisefunc)(float, float, float); @@ -1485,7 +1485,7 @@ float mg_fBm(float x, float y, float z, float H, float lacunarity, float octaves z *= lacunarity; } - rmd = octaves - floor(octaves); + rmd = octaves - floorf(octaves); if (rmd!=0.f) value += rmd * noisefunc(x, y, z) * pwr; return value; @@ -1508,9 +1508,9 @@ float mg_fBm(float x, float y, float z, float H, float lacunarity, float octaves * I modified it to something that made sense to me, so it might be wrong... */ float mg_MultiFractal(float x, float y, float z, float H, float lacunarity, float octaves, int noisebasis) { - float rmd, value=1.0, pwr=1.0, pwHL=pow(lacunarity, -H); + float rmd, value=1.0, pwr=1.0, pwHL=powf(lacunarity, -H); int i; - + float (*noisefunc)(float, float, float); switch (noisebasis) { case 1: @@ -1547,14 +1547,14 @@ float mg_MultiFractal(float x, float y, float z, float H, float lacunarity, floa } for (i=0; i<(int)octaves; i++) { - value *= (pwr * noisefunc(x, y, z) + 1.0); + value *= (pwr * noisefunc(x, y, z) + 1.0f); pwr *= pwHL; x *= lacunarity; y *= lacunarity; z *= lacunarity; } - rmd = octaves - floor(octaves); - if (rmd!=0.0) value *= (rmd * noisefunc(x, y, z) * pwr + 1.0); + rmd = octaves - floorf(octaves); + if (rmd!=0.0f) value *= (rmd * noisefunc(x, y, z) * pwr + 1.0f); return value; @@ -1574,7 +1574,7 @@ float mg_HeteroTerrain(float x, float y, float z, float H, float lacunarity, flo { float value, increment, rmd; int i; - float pwHL = pow(lacunarity, -H); + float pwHL = powf(lacunarity, -H); float pwr = pwHL; /* starts with i=1 instead of 0 */ float (*noisefunc)(float, float, float); @@ -1627,8 +1627,8 @@ float mg_HeteroTerrain(float x, float y, float z, float H, float lacunarity, flo z *= lacunarity; } - rmd = octaves - floor(octaves); - if (rmd!=0.0) { + rmd = octaves - floorf(octaves); + if (rmd!=0.0f) { increment = (noisefunc(x, y, z) + offset) * pwr * value; value += rmd * increment; } @@ -1647,7 +1647,7 @@ float mg_HybridMultiFractal(float x, float y, float z, float H, float lacunarity { float result, signal, weight, rmd; int i; - float pwHL = pow(lacunarity, -H); + float pwHL = powf(lacunarity, -H); float pwr = pwHL; /* starts with i=1 instead of 0 */ float (*noisefunc)(float, float, float); @@ -1691,8 +1691,8 @@ float mg_HybridMultiFractal(float x, float y, float z, float H, float lacunarity y *= lacunarity; z *= lacunarity; - for (i=1; (weight>0.001) && (i<(int)octaves); i++) { - if (weight>1.0) weight=1.0; + for (i=1; (weight>0.001f) && (i<(int)octaves); i++) { + if (weight>1.0f) weight=1.0f; signal = (noisefunc(x, y, z) + offset) * pwr; pwr *= pwHL; result += weight * signal; @@ -1702,7 +1702,7 @@ float mg_HybridMultiFractal(float x, float y, float z, float H, float lacunarity z *= lacunarity; } - rmd = octaves - floor(octaves); + rmd = octaves - floorf(octaves); if (rmd!=0.f) result += rmd * ((noisefunc(x, y, z) + offset) * pwr); return result; @@ -1722,7 +1722,7 @@ float mg_RidgedMultiFractal(float x, float y, float z, float H, float lacunarity { float result, signal, weight; int i; - float pwHL = pow(lacunarity, -H); + float pwHL = powf(lacunarity, -H); float pwr = pwHL; /* starts with i=1 instead of 0 */ float (*noisefunc)(float, float, float); @@ -1760,7 +1760,7 @@ float mg_RidgedMultiFractal(float x, float y, float z, float H, float lacunarity } } - signal = offset - fabs(noisefunc(x, y, z)); + signal = offset - fabsf(noisefunc(x, y, z)); signal *= signal; result = signal; @@ -1770,8 +1770,8 @@ float mg_RidgedMultiFractal(float x, float y, float z, float H, float lacunarity y *= lacunarity; z *= lacunarity; weight = signal * gain; - if (weight>1.0) weight=1.0; else if (weight<0.0) weight=0.0; - signal = offset - fabs(noisefunc(x, y, z)); + if (weight>1.0f) weight=1.0f; else if (weight<0.0f) weight=0.0f; + signal = offset - fabsf(noisefunc(x, y, z)); signal *= signal; signal *= weight; result += signal * pwr; @@ -1859,9 +1859,9 @@ float mg_VLNoise(float x, float y, float z, float distortion, int nbas1, int nba } /* get a random vector and scale the randomization */ - rv[0] = noisefunc1(x+13.5, y+13.5, z+13.5) * distortion; + rv[0] = noisefunc1(x+13.5f, y+13.5f, z+13.5f) * distortion; rv[1] = noisefunc1(x, y, z) * distortion; - rv[2] = noisefunc1(x-13.5, y-13.5, z-13.5) * distortion; + rv[2] = noisefunc1(x-13.5f, y-13.5f, z-13.5f) * distortion; return noisefunc2(x+rv[0], y+rv[1], z+rv[2]); /* distorted-domain noise */ } -- cgit v1.2.3 From fa2ba5fbf5848e4d61b697c624af9b9e9456eb20 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 05:06:30 +0000 Subject: - use static vars and functions where possible. - use NULL rather than 0 when used as pointers. --- source/blender/blenkernel/intern/material.c | 4 +-- source/blender/blenkernel/intern/seqeffects.c | 4 +-- source/blender/blenlib/intern/BLI_ghash.c | 2 +- source/blender/blenlib/intern/callbacks.c | 2 +- .../blender/editors/interface/interface_layout.c | 2 +- source/blender/editors/physics/particle_edit.c | 2 +- source/blender/editors/render/render_preview.c | 1 + source/blender/editors/screen/screen_ops.c | 2 +- .../blender/editors/space_outliner/outliner_tree.c | 2 +- .../editors/space_sequencer/sequencer_draw.c | 8 +++--- .../editors/space_sequencer/sequencer_select.c | 2 +- source/blender/gpu/intern/gpu_codegen.c | 6 ++--- source/blender/gpu/intern/gpu_draw.c | 2 +- source/blender/gpu/intern/gpu_extensions.c | 2 +- source/blender/makesdna/intern/makesdna.c | 30 +++++++++++----------- source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_main_api.c | 1 + source/blender/makesrna/intern/rna_modifier.c | 1 + source/blender/makesrna/intern/rna_nodetree.c | 2 +- source/blender/makesrna/intern/rna_object_force.c | 17 ++++++------ source/blender/makesrna/intern/rna_particle.c | 17 ++++++------ source/blender/makesrna/intern/rna_texture.c | 3 ++- source/blender/python/intern/bpy_intern_string.c | 3 ++- source/blender/python/intern/bpy_props.c | 4 +-- source/blender/render/intern/source/pointdensity.c | 2 +- source/blender/windowmanager/intern/wm_init_exit.c | 2 +- source/blender/windowmanager/intern/wm_keymap.c | 2 +- 27 files changed, 67 insertions(+), 60 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 9c455e84109..29615986191 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -515,7 +515,7 @@ short *give_totcolp_id(ID *id) return NULL; } -void data_delete_material_index_id(ID *id, int index) +static void data_delete_material_index_id(ID *id, int index) { switch(GS(id->name)) { case ID_ME: @@ -1365,7 +1365,7 @@ void ramp_blend(int type, float *r, float *g, float *b, float fac, float *col) } /* copy/paste buffer, if we had a propper py api that would be better */ -Material matcopybuf; +static Material matcopybuf; static short matcopied= 0; void clear_matcopybuf(void) diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index cf95692c8b4..8b50ad2b042 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2873,7 +2873,7 @@ static struct ImBuf * do_adjustment_impl(SeqRenderData context, Sequence * seq, { Editing * ed; ListBase * seqbasep; - struct ImBuf * i = 0; + struct ImBuf * i= NULL; ed = context.scene->ed; @@ -2908,7 +2908,7 @@ static struct ImBuf * do_adjustment( struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2), struct ImBuf *UNUSED(ibuf3)) { - struct ImBuf * i = 0; + struct ImBuf * i = NULL; struct ImBuf * out; Editing * ed; diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index bfee350037a..03e3b7ab560 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -40,7 +40,7 @@ #include "BLO_sys_types.h" // for intptr_t support /***/ -unsigned int hashsizes[]= { +static unsigned int hashsizes[]= { 5, 11, 17, 37, 67, 131, 257, 521, 1031, 2053, 4099, 8209, 16411, 32771, 65537, 131101, 262147, 524309, 1048583, 2097169, 4194319, 8388617, 16777259, 33554467, 67108879, 134217757, diff --git a/source/blender/blenlib/intern/callbacks.c b/source/blender/blenlib/intern/callbacks.c index a033e01696d..d28f794440f 100644 --- a/source/blender/blenlib/intern/callbacks.c +++ b/source/blender/blenlib/intern/callbacks.c @@ -28,7 +28,7 @@ #include "MEM_guardedalloc.h" -static ListBase callback_slots[BLI_CB_EVT_TOT]= {{0}}; +static ListBase callback_slots[BLI_CB_EVT_TOT]= {{NULL}}; void BLI_exec_cb(struct Main *main, struct ID *self, eCbEvent evt) { diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 3575a8527fc..ef88bb0bbb6 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1361,7 +1361,7 @@ void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, const char *propna static void ui_item_menutype_func(bContext *C, uiLayout *layout, void *arg_mt) { MenuType *mt= (MenuType*)arg_mt; - Menu menu = {0}; + Menu menu = {NULL}; menu.type= mt; menu.layout= layout; diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index b8cdc18e739..4b0c1cb1222 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -3988,7 +3988,7 @@ static void PTCacheUndo_clear(PTCacheEdit *edit) { PTCacheUndo *undo; - if(edit==0) return; + if(edit==NULL) return; undo= edit->undo.first; while(undo) { diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 007ae96ae59..b937f9a4104 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -64,6 +64,7 @@ #include "DNA_brush_types.h" #include "DNA_screen_types.h" +#include "BKE_brush.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_global.h" diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 0ac30853eae..ede17790318 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1702,7 +1702,7 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_RUNNING_MODAL; } -int region_scale_cancel(bContext *UNUSED(C), wmOperator *op) +static int region_scale_cancel(bContext *UNUSED(C), wmOperator *op) { MEM_freeN(op->customdata); op->customdata = NULL; diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index 3560bfb9896..74e9e775087 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -231,7 +231,7 @@ void outliner_free_tree(ListBase *lb) } /* Find ith item from the treestore */ -TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) +static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) { TreeElement *te= lb->first, *tes; while(te) { diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index dc84289a8de..9a904b1a970 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -700,7 +700,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline } } -static Sequence *special_seq_update= 0; +static Sequence *special_seq_update= NULL; static void UNUSED_FUNCTION(set_special_seq_update)(int val) { @@ -710,14 +710,14 @@ static void UNUSED_FUNCTION(set_special_seq_update)(int val) if(val) { // XXX special_seq_update= find_nearest_seq(&x); } - else special_seq_update= 0; + else special_seq_update= NULL; } void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs) { struct Main *bmain= CTX_data_main(C); - struct ImBuf *ibuf = 0; - struct ImBuf *scope = 0; + struct ImBuf *ibuf= NULL; + struct ImBuf *scope= NULL; struct View2D *v2d = &ar->v2d; int rectx, recty; float viewrectx, viewrecty; diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 0ac23765167..86b28f5e89e 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -846,7 +846,7 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op) for(seq= ed->seqbasep->first; seq; seq= seq->next) { seq_rectf(seq, &rq); - if(BLI_isect_rctf(&rq, &rectf, 0)) { + if(BLI_isect_rctf(&rq, &rectf, NULL)) { if(selecting) seq->flag |= SELECT; else seq->flag &= ~SEQ_ALLSEL; recurs_sel_seq(seq); diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 910576fa34e..77498835d57 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -82,7 +82,7 @@ typedef enum GPUDataSource { } GPUDataSource; static const char* GPU_DATATYPE_STR[17] = {"", "float", "vec2", "vec3", "vec4", - 0, 0, 0, 0, "mat3", 0, 0, 0, 0, 0, 0, "mat4"}; + NULL, NULL, NULL, NULL, "mat3", NULL, NULL, NULL, NULL, NULL, NULL, "mat4"}; struct GPUNode { struct GPUNode *next, *prev; @@ -451,7 +451,7 @@ static int codegen_input_has_texture(GPUInput *input) else if(input->ima) return 1; else - return input->tex != 0; + return input->tex != NULL; } const char *GPU_builtin_name(GPUBuiltin builtin) @@ -880,7 +880,7 @@ void GPU_pass_unbind(GPUPass *pass) GPU_texture_unbind(input->tex); if (input->ima) - input->tex = 0; + input->tex = NULL; } GPU_shader_unbind(shader); diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 9878d83ff5a..7af5ef6ea14 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -308,7 +308,7 @@ void GPU_set_anisotropic(float value) } } -float GPU_get_anisotropic() +float GPU_get_anisotropic(void) { return GTS.anisotropic; } diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c index f6352a96878..c9f1b093b7a 100644 --- a/source/blender/gpu/intern/gpu_extensions.c +++ b/source/blender/gpu/intern/gpu_extensions.c @@ -484,7 +484,7 @@ GPUTexture *GPU_texture_create_3D(int w, int h, int depth, float *fpixels) //if (fpixels) // pixels = GPU_texture_convert_pixels(w*h*depth, fpixels); - glTexImage3D(tex->target, 0, internalformat, tex->w, tex->h, tex->depth, 0, format, type, 0); + glTexImage3D(tex->target, 0, internalformat, tex->w, tex->h, tex->depth, 0, format, type, NULL); GPU_print_error("3D glTexImage3D"); diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index 80299d44a78..3e5e7bbdc0e 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -137,18 +137,18 @@ const char *includefiles[] = { "" }; -int maxdata= 500000, maxnr= 50000; -int nr_names=0; -int nr_types=0; -int nr_structs=0; -char **names, *namedata; /* at address names[a] is string a */ -char **types, *typedata; /* at address types[a] is string a */ -short *typelens; /* at typelens[a] is de length of type a */ -short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits) */ -short **structs, *structdata; /* at sp= structs[a] is the first address of a struct definition - sp[0] is type number - sp[1] is amount of elements - sp[2] sp[3] is typenr, namenr (etc) */ +static int maxdata= 500000, maxnr= 50000; +static int nr_names=0; +static int nr_types=0; +static int nr_structs=0; +static char **names, *namedata; /* at address names[a] is string a */ +static char **types, *typedata; /* at address types[a] is string a */ +static short *typelens; /* at typelens[a] is de length of type a */ +static short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits), infact any 64bit system */ +static short **structs, *structdata;/* at sp= structs[a] is the first address of a struct definition + sp[0] is type number + sp[1] is amount of elements + sp[2] sp[3] is typenr, namenr (etc) */ /** * Variable to control debug output of makesdna. * debugSDNA: @@ -157,8 +157,8 @@ short **structs, *structdata; /* at sp= structs[a] is the first address of a str * - 2 = full trace, tell which names and types were found * - 4 = full trace, plus all gritty details */ -int debugSDNA = 0; -int additional_slen_offset; +static int debugSDNA = 0; +static int additional_slen_offset; /* ************************************************************************** */ /* Functions */ @@ -889,7 +889,7 @@ void printStructLenghts(void) } -int make_structDNA(char *baseDirectory, FILE *file) +static int make_structDNA(char *baseDirectory, FILE *file) { int len, i; short *sp; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index d47abced85e..b95bd2b2087 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -66,7 +66,7 @@ static int file_older(const char *file1, const char *file2) return (st1.st_mtime < st2.st_mtime); } -const char *makesrna_path= NULL; +static const char *makesrna_path= NULL; static int replace_if_different(char *tmpfile, const char *dep_files[]) { diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 8ac620c2fcf..ea0364084f9 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -38,6 +38,7 @@ #include "RNA_define.h" #include "RNA_access.h" #include "RNA_enum_types.h" +#include "rna_internal.h" #include "BKE_utildefines.h" diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 5c5391b0bba..37a629f46d0 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -32,6 +32,7 @@ #include #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 7fd6a9dacfe..56492a52da9 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -732,7 +732,7 @@ static StructRNA* def_node(BlenderRNA *brna, int node_id) return srna; } -void alloc_node_type_items(EnumPropertyItem *items, int category) +static void alloc_node_type_items(EnumPropertyItem *items, int category) { int i; int count = 3; diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 463f65fd3d5..490d9c38840 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -43,7 +43,7 @@ #include "WM_api.h" #include "WM_types.h" -EnumPropertyItem effector_shape_items[] = { +static EnumPropertyItem effector_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {PFIELD_SHAPE_SURFACE, "SURFACE", 0, "Surface", ""}, @@ -51,20 +51,23 @@ EnumPropertyItem effector_shape_items[] = { {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem curve_shape_items[] = { +#ifdef RNA_RUNTIME + +/* type spesific return values only used from functions */ +static EnumPropertyItem curve_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {PFIELD_SHAPE_SURFACE, "SURFACE", 0, "Curve", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem empty_shape_items[] = { +static EnumPropertyItem empty_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem vortex_shape_items[] = { +static EnumPropertyItem vortex_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {PFIELD_SHAPE_SURFACE, "SURFACE", 0, "Surface falloff (New)", ""}, @@ -72,21 +75,19 @@ EnumPropertyItem vortex_shape_items[] = { {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem curve_vortex_shape_items[] = { +static EnumPropertyItem curve_vortex_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {PFIELD_SHAPE_SURFACE, "SURFACE", 0, "Curve (New)", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem empty_vortex_shape_items[] = { +static EnumPropertyItem empty_vortex_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, {0, NULL, 0, NULL, NULL} }; -#ifdef RNA_RUNTIME - #include "MEM_guardedalloc.h" #include "DNA_modifier_types.h" diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index 30fce5716a9..ba91fc3536b 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -33,6 +33,7 @@ #include "limits.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" @@ -50,34 +51,34 @@ #include "WM_types.h" #include "WM_api.h" -EnumPropertyItem part_from_items[] = { +static EnumPropertyItem part_from_items[] = { {PART_FROM_VERT, "VERT", 0, "Verts", ""}, {PART_FROM_FACE, "FACE", 0, "Faces", ""}, {PART_FROM_VOLUME, "VOLUME", 0, "Volume", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_reactor_from_items[] = { +static EnumPropertyItem part_reactor_from_items[] = { {PART_FROM_VERT, "VERT", 0, "Verts", ""}, {PART_FROM_FACE, "FACE", 0, "Faces", ""}, {PART_FROM_VOLUME, "VOLUME", 0, "Volume", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_dist_items[] = { +static EnumPropertyItem part_dist_items[] = { {PART_DISTR_JIT, "JIT", 0, "Jittered", ""}, {PART_DISTR_RAND, "RAND", 0, "Random", ""}, {PART_DISTR_GRID, "GRID", 0, "Grid", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_hair_dist_items[] = { +static EnumPropertyItem part_hair_dist_items[] = { {PART_DISTR_JIT, "JIT", 0, "Jittered", ""}, {PART_DISTR_RAND, "RAND", 0, "Random", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_draw_as_items[] = { +static EnumPropertyItem part_draw_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_REND, "RENDER", 0, "Rendered", ""}, {PART_DRAW_DOT, "DOT", 0, "Point", ""}, @@ -87,14 +88,14 @@ EnumPropertyItem part_draw_as_items[] = { {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_hair_draw_as_items[] = { +static EnumPropertyItem part_hair_draw_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_REND, "RENDER", 0, "Rendered", ""}, {PART_DRAW_PATH, "PATH", 0, "Path", ""}, {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_ren_as_items[] = { +static EnumPropertyItem part_ren_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_HALO, "HALO", 0, "Halo", ""}, {PART_DRAW_LINE, "LINE", 0, "Line", ""}, @@ -105,7 +106,7 @@ EnumPropertyItem part_ren_as_items[] = { {0, NULL, 0, NULL, NULL} }; -EnumPropertyItem part_hair_ren_as_items[] = { +static EnumPropertyItem part_hair_ren_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_PATH, "PATH", 0, "Path", ""}, {PART_DRAW_OB, "OBJECT", 0, "Object", ""}, diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index f459563f49e..0ecc41d80d8 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -32,6 +32,7 @@ #include #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" @@ -47,7 +48,7 @@ #include "BKE_node.h" -EnumPropertyItem texture_filter_items[] = { +static EnumPropertyItem texture_filter_items[] = { {TXF_BOX, "BOX", 0, "Box", ""}, {TXF_EWA, "EWA", 0, "EWA", ""}, {TXF_FELINE, "FELINE", 0, "FELINE", ""}, diff --git a/source/blender/python/intern/bpy_intern_string.c b/source/blender/python/intern/bpy_intern_string.c index c6629007532..6fc861b2a0d 100644 --- a/source/blender/python/intern/bpy_intern_string.c +++ b/source/blender/python/intern/bpy_intern_string.c @@ -28,13 +28,14 @@ #include +#include "bpy_intern_string.h" + PyObject *bpy_intern_str_register; PyObject *bpy_intern_str_unregister; PyObject *bpy_intern_str_bl_rna; PyObject *bpy_intern_str_order; PyObject *bpy_intern_str_attr; PyObject *bpy_intern_str___slots__; -PyObject *bpy_intern_str___bases__; void bpy_intern_string_init(void) { diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c index a0ad1ff7850..5da142aeea7 100644 --- a/source/blender/python/intern/bpy_props.c +++ b/source/blender/python/intern/bpy_props.c @@ -117,7 +117,7 @@ static PyObject *pymeth_PointerProperty= NULL; static PyObject *pymeth_CollectionProperty= NULL; static PyObject *pymeth_RemoveProperty= NULL; -PyObject *pyrna_struct_as_instance(PointerRNA *ptr) +static PyObject *pyrna_struct_as_instance(PointerRNA *ptr) { PyObject *self= NULL; /* first get self */ @@ -177,7 +177,7 @@ static PyObject *bpy_prop_deferred_return(PyObject *func, PyObject *kw) } /* callbacks */ -void bpy_prop_update_cb(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop) +static void bpy_prop_update_cb(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop) { PyGILState_STATE gilstate; PyObject **py_data= (PyObject **)RNA_property_py_data_get(prop); diff --git a/source/blender/render/intern/source/pointdensity.c b/source/blender/render/intern/source/pointdensity.c index b45528b96d9..980f6b6af1e 100644 --- a/source/blender/render/intern/source/pointdensity.c +++ b/source/blender/render/intern/source/pointdensity.c @@ -104,7 +104,7 @@ static void pointdensity_cache_psys(Render *re, PointDensity *pd, Object *ob, Pa { DerivedMesh* dm; ParticleKey state; - ParticleSimulationData sim= {0}; + ParticleSimulationData sim= {NULL}; ParticleData *pa=NULL; float cfra = BKE_curframe(re->scene); int i, childexists; diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index cf91e219593..850de9029c9 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -116,7 +116,7 @@ static void wm_free_reports(bContext *C) BKE_reports_clear(CTX_wm_reports(C)); } -int wm_start_with_console = 0; +int wm_start_with_console = 0; /* used in creator.c */ /* only called once, for startup */ void WM_init(bContext *C, int argc, const char **argv) diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 6887aa4c717..0e94ad72d35 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -225,7 +225,7 @@ static wmKeyConfig *wm_keyconfig_list_find(ListBase *lb, char *idname) return NULL; } -wmKeyConfig *WM_keyconfig_active(wmWindowManager *wm) +static wmKeyConfig *WM_keyconfig_active(wmWindowManager *wm) { wmKeyConfig *keyconf; -- cgit v1.2.3 From 852a03a6af6d67da58154b848b45a118eb38cdc0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 09:28:41 +0000 Subject: RNA_property_as_string now escapes the string (so operator redo can include strings with ", \n etc), also fixed a bug in string escape length limit. --- source/blender/blenlib/intern/string.c | 4 ++-- source/blender/makesrna/intern/rna_access.c | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 2f1ddf294ce..c4ed44f0cdb 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -129,7 +129,6 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) while(len < maxlen) { switch(*src) { case '\0': - *dst= '\0'; break; case '\\': case '"': @@ -144,7 +143,6 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) } else { /* not enough space to escape */ - *dst= '\0'; break; } /* intentionally pass through */ @@ -156,6 +154,8 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) len++; } + *dst= '\0'; + return len; } diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 88447f6dd77..bc6e17a689d 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2106,7 +2106,7 @@ char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fi if(length+1 < fixedlen) buf= fixedbuf; else - buf= MEM_callocN(sizeof(char)*(length+1), "RNA_string_get_alloc"); + buf= MEM_mallocN(sizeof(char)*(length+1), "RNA_string_get_alloc"); RNA_property_string_get(ptr, prop, buf); @@ -4271,11 +4271,18 @@ char *RNA_property_as_string(bContext *C, PointerRNA *ptr, PropertyRNA *prop) break; case PROP_STRING: { - /* string arrays dont exist */ + char *buf_esc; char *buf; - buf = RNA_property_string_get_alloc(ptr, prop, NULL, -1); - BLI_dynstr_appendf(dynstr, "\"%s\"", buf); + int length; + + length= RNA_property_string_length(ptr, prop); + buf= MEM_mallocN(sizeof(char)*(length+1), "RNA_property_as_string"); + buf_esc= MEM_mallocN(sizeof(char)*(length*2+1), "RNA_property_as_string esc"); + RNA_property_string_get(ptr, prop, buf); + BLI_strescape(buf_esc, buf, length*2); MEM_freeN(buf); + BLI_dynstr_appendf(dynstr, "\"%s\"", buf_esc); + MEM_freeN(buf_esc); break; } case PROP_ENUM: -- cgit v1.2.3 From 8e12b7b054c3c4e95a23f26db232d99ff18e2b90 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 28 Aug 2011 11:39:18 +0000 Subject: Assorted comment clarification in response to code review notes --- source/blender/blenkernel/intern/anim_sys.c | 2 +- source/blender/blenkernel/intern/depsgraph.c | 13 ++++++++++++- source/blender/editors/animation/drivers.c | 1 - source/blender/editors/space_nla/nla_draw.c | 5 +---- 4 files changed, 14 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 3c6daf8b39d..b690c9b4a91 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -1168,7 +1168,7 @@ static short animsys_write_rna_setting (PointerRNA *ptr, char *path, int array_i * for we know that which the updates in RNA were really just for * flushing property editing via UI/Py */ - if (RNA_struct_is_a(new_ptr.type, &RNA_PoseBone)) { + if (new_ptr.type == &RNA_PoseBone) { /* bone transforms - update pose (i.e. tag depsgraph) */ skip_updates_hack = 1; } diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 4802601307a..6f27a104144 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2062,8 +2062,19 @@ static short animdata_use_time(AnimData *adt) return 1; } - /* experimental check: if we have drivers, more likely than not, on a frame change + /* If we have drivers, more likely than not, on a frame change * they'll need updating because their owner changed + * + * This is kindof a hack to get around a whole host of problems + * involving drivers using non-object datablock data (which the + * depsgraph currently has no way of representing let alone correctly + * dependency sort+tagging). By doing this, at least we ensure that + * some commonly attempted drivers (such as scene -> current frame; + * see "Driver updates fail" thread on Bf-committers dated July 2) + * will work correctly, and that other non-object datablocks will have + * their drivers update at least on frame change. + * + * -- Aligorith, July 4 2011 */ if (adt->drivers.first) return 1; diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 28195be943c..6ebe488d2c8 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -383,7 +383,6 @@ short ANIM_paste_driver (ReportList *reports, ID *id, const char rna_path[], int /* modifiers */ copy_fmodifiers(&fcu->modifiers, &channeldriver_copypaste_buf->modifiers); - /* flags - on a per-relevant-flag basis */ /* extrapolation mode */ fcu->extend= channeldriver_copypaste_buf->extend; diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 9ce5aafd48a..0583f328371 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -471,10 +471,7 @@ static void nla_draw_strip_text (AnimData *adt, NlaTrack *nlt, NlaStrip *strip, sprintf(str, "%d) Temp-Meta", index); } else { - if (strip->flag & NLASTRIP_FLAG_REVERSE) - sprintf(str, "%s", strip->name); - else - sprintf(str, "%s", strip->name); + sprintf(str, strip->name); } /* set text color - if colors (see above) are light, draw black text, otherwise draw white */ -- cgit v1.2.3 From b4b046995b21d59e315eb71ed08fc1ae066c891b Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Sun, 28 Aug 2011 14:21:44 +0000 Subject: * Removing mocap GSoC (is an addon already). * Fixing ffmpeg-0.8 errors. * Fixing Ketsji paths. * Removing DoSound from BGE. * Fixing audio scene update to use only current scene objects. --- source/blender/blenkernel/BKE_sound.h | 2 +- source/blender/blenkernel/intern/scene.c | 2 +- source/blender/blenkernel/intern/sequencer.c | 15 +++++---------- source/blender/blenkernel/intern/sound.c | 7 +++++-- 4 files changed, 12 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index ecf0d7e459a..e1b6ff02bc4 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -136,7 +136,7 @@ void sound_read_waveform(struct bSound* sound); int sound_get_channels(struct bSound* sound); -void sound_update_scene(struct Main* bmain, struct Scene* scene); +void sound_update_scene(struct Scene* scene); void* sound_get_factory(void* sound); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 12e81e8296e..d6003a44a7d 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -968,7 +968,7 @@ static void scene_update_tagged_recursive(Main *bmain, Scene *scene, Scene *scen scene_update_drivers(bmain, scene); /* update sound system animation */ - sound_update_scene(bmain, scene); + sound_update_scene(scene); } /* this is called in main loop, doing tagged updates before redraw */ diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 4cec086aad4..bfbaa223a99 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3150,18 +3150,14 @@ void seq_update_sound_bounds_all(Scene *scene) { Editing *ed = scene->ed; - if(ed) - { + if(ed) { Sequence *seq; - for(seq = ed->seqbase.first; seq; seq = seq->next) - { - if(seq->type == SEQ_META) - { + for(seq = ed->seqbase.first; seq; seq = seq->next) { + if(seq->type == SEQ_META) { seq_update_sound_bounds_recursive(scene, seq); } - else if(ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) - { + else if(ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) { seq_update_sound_bounds(scene, seq); } } @@ -3170,8 +3166,7 @@ void seq_update_sound_bounds_all(Scene *scene) void seq_update_sound_bounds(Scene* scene, Sequence *seq) { - if(seq->scene_sound) - { + if(seq->scene_sound) { sound_move_scene_sound(scene, seq->scene_sound, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs); /* mute is set in seq_update_muting_recursive */ } diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index a364f860255..842923e63d0 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -24,6 +24,7 @@ #include "DNA_sound_types.h" #include "DNA_speaker_types.h" +#define WITH_AUDASPACE #ifdef WITH_AUDASPACE # include "AUD_C-API.h" #endif @@ -649,9 +650,10 @@ int sound_get_channels(struct bSound* sound) return info.specs.channels; } -void sound_update_scene(struct Main* bmain, struct Scene* scene) +void sound_update_scene(struct Scene* scene) { Object* ob; + Base* base; NlaTrack* track; NlaStrip* strip; Speaker* speaker; @@ -660,8 +662,9 @@ void sound_update_scene(struct Main* bmain, struct Scene* scene) void* handle; float quat[4]; - for(ob = bmain->object.first; ob; ob = ob->id.next) + for(base = FIRSTBASE; base; base=base->next) { + ob = base->object; if(ob->type == OB_SPEAKER) { if(ob->adt) -- cgit v1.2.3 From c07bd1439a3f026b8603c52662c3e7ccc364321a Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 28 Aug 2011 14:46:03 +0000 Subject: == Sequencer == This patch adds: * support for proxy building again (missing feature from Blender 2.49) additionally to the way, Blender 2.49 worked, you can select several strips at once and make Blender build proxies in the background (using the job system) Also a new thing: movie proxies are now build into AVI files, and the proxy system is moved into ImBuf-library, so that other parts of blender can also benefit from it. * Timecode support: to fix seeking issues with files, that have a) varying frame rates b) very large GOP lengths c) are broken inbetween d) use different time code tracks the proxy builder can now also build timecode indices, which are used (optionally) for seeking. For the first time, it is possible, to do frame exact seeking on all file types. * Support for different video-streams in one video file (can be selected in sequencer, other parts of blender can also use it, but UI has to be added accordingly) * IMPORTANT: this patch *requires* ffmpeg 0.7 or newer, since older versions don't support the pkt_pts field, that is essential for building timecode indices. Windows and Mac libs are already updated, Linux-users have to build their own ffmpeg verions until distros keep up. --- source/blender/blenkernel/BKE_image.h | 2 +- source/blender/blenkernel/BKE_sequencer.h | 6 + source/blender/blenkernel/intern/image.c | 20 +- source/blender/blenkernel/intern/sequencer.c | 316 +++--- source/blender/blenloader/intern/readfile.c | 6 - .../editors/interface/interface_templates.c | 11 +- source/blender/editors/space_image/image_buttons.c | 4 +- source/blender/editors/space_sequencer/SConscript | 3 + .../editors/space_sequencer/sequencer_edit.c | 137 +++ .../editors/space_sequencer/sequencer_intern.h | 2 + .../editors/space_sequencer/sequencer_ops.c | 1 + source/blender/imbuf/CMakeLists.txt | 1 + source/blender/imbuf/IMB_imbuf.h | 69 +- source/blender/imbuf/intern/IMB_anim.h | 24 +- source/blender/imbuf/intern/IMB_indexer.h | 135 +++ source/blender/imbuf/intern/allocimbuf.c | 13 + source/blender/imbuf/intern/anim_movie.c | 566 +++++++--- source/blender/imbuf/intern/filter.c | 2 + source/blender/imbuf/intern/indexer.c | 1135 ++++++++++++++++++++ source/blender/imbuf/intern/indexer_dv.c | 391 +++++++ source/blender/imbuf/intern/thumbs.c | 4 +- source/blender/imbuf/intern/util.c | 7 +- source/blender/makesdna/DNA_sequence_types.h | 35 +- source/blender/makesdna/DNA_space_types.h | 1 + source/blender/makesrna/intern/rna_sequencer.c | 93 +- source/blender/makesrna/intern/rna_space.c | 1 + source/blender/windowmanager/WM_api.h | 2 + source/blender/windowmanager/intern/wm_jobs.c | 14 + 28 files changed, 2693 insertions(+), 308 deletions(-) create mode 100644 source/blender/imbuf/intern/IMB_indexer.h create mode 100644 source/blender/imbuf/intern/indexer.c create mode 100644 source/blender/imbuf/intern/indexer_dv.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h index 10910493ec9..0c31083a266 100644 --- a/source/blender/blenkernel/BKE_image.h +++ b/source/blender/blenkernel/BKE_image.h @@ -60,7 +60,7 @@ int BKE_ftype_to_imtype(int ftype); int BKE_imtype_to_ftype(int imtype); int BKE_imtype_is_movie(int imtype); -struct anim *openanim(char * name, int flags); +struct anim *openanim(char * name, int flags, int streamindex); void image_de_interlace(struct Image *ima, int odd); diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index bedd58876bc..b20811724f4 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -177,6 +177,7 @@ int seq_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence /* maintainance functions, mostly for RNA */ // extern void seq_free_sequence(struct Scene *scene, struct Sequence *seq); +void seq_free_sequence_recurse(struct Scene *scene, struct Sequence *seq); void seq_free_strip(struct Strip *strip); void seq_free_editing(struct Scene *scene); void seq_free_clipboard(void); @@ -199,6 +200,11 @@ void update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_s int input_have_to_preprocess( SeqRenderData context, struct Sequence * seq, float cfra); +void seq_proxy_rebuild(struct Main * bmain, + struct Scene *scene, struct Sequence * seq, + short *stop, short *do_update, float *progress); + + /* ********************************************************************** seqcache.c diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index ab67d7e3f25..4ce5de78895 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1371,15 +1371,15 @@ void BKE_makepicstring(char *string, const char *base, int frame, int imtype, co } /* used by sequencer too */ -struct anim *openanim(char *name, int flags) +struct anim *openanim(char *name, int flags, int streamindex) { struct anim *anim; struct ImBuf *ibuf; - anim = IMB_open_anim(name, flags); + anim = IMB_open_anim(name, flags, streamindex); if (anim == NULL) return NULL; - ibuf = IMB_anim_absolute(anim, 0); + ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE); if (ibuf == NULL) { if(BLI_exists(name)) printf("not an anim: %s\n", name); @@ -1773,20 +1773,26 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame) else BLI_path_abs(str, G.main->name); - ima->anim = openanim(str, IB_rect); + /* FIXME: make several stream accessible in image editor, too*/ + ima->anim = openanim(str, IB_rect, 0); /* let's initialize this user */ if(ima->anim && iuser && iuser->frames==0) - iuser->frames= IMB_anim_get_duration(ima->anim); + iuser->frames= IMB_anim_get_duration(ima->anim, + IMB_TC_RECORD_RUN); } if(ima->anim) { - int dur = IMB_anim_get_duration(ima->anim); + int dur = IMB_anim_get_duration(ima->anim, + IMB_TC_RECORD_RUN); int fra= frame-1; if(fra<0) fra = 0; if(fra>(dur-1)) fra= dur-1; - ibuf = IMB_anim_absolute(ima->anim, fra); + ibuf = IMB_makeSingleUser( + IMB_anim_absolute(ima->anim, fra, + IMB_TC_RECORD_RUN, + IMB_PROXY_NONE)); if(ibuf) { image_initialize_after_load(ima, ibuf); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 3aebbea789f..60479da64a9 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -218,6 +218,18 @@ void seq_free_sequence(Scene *scene, Sequence *seq) MEM_freeN(seq); } +void seq_free_sequence_recurse(Scene *scene, Sequence *seq) +{ + Sequence *iseq; + + for(iseq= seq->seqbase.first; iseq; iseq= iseq->next) { + seq_free_sequence_recurse(scene, iseq); + } + + seq_free_sequence(scene, seq); +} + + Editing *seq_give_editing(Scene *scene, int alloc) { if (scene->ed == NULL && alloc) { @@ -683,13 +695,16 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) } case SEQ_MOVIE: if(seq->anim) IMB_free_anim(seq->anim); - seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0)); + seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0), seq->streamindex); if (!seq->anim) { return; } - seq->len = IMB_anim_get_duration(seq->anim); + seq->len = IMB_anim_get_duration(seq->anim, + seq->strip->proxy ? + seq->strip->proxy->tc : + IMB_TC_RECORD_RUN); seq->anim_preseek = IMB_anim_get_preseek(seq->anim); @@ -1117,7 +1132,7 @@ static int get_shown_sequences( ListBase * seqbasep, int cfra, int chanshown, Se return cnt; } - + /* ********************************************************************** proxy management @@ -1125,48 +1140,105 @@ static int get_shown_sequences( ListBase * seqbasep, int cfra, int chanshown, Se #define PROXY_MAXFILE (2*FILE_MAXDIR+FILE_MAXFILE) +static IMB_Proxy_Size seq_rendersize_to_proxysize(int size) +{ + if (size >= 100) { + return IMB_PROXY_NONE; + } + if (size >= 99) { + return IMB_PROXY_100; + } + if (size >= 75) { + return IMB_PROXY_75; + } + if (size >= 50) { + return IMB_PROXY_50; + } + return IMB_PROXY_25; +} + +static void seq_open_anim_file(Sequence * seq) +{ + char name[FILE_MAXDIR+FILE_MAXFILE]; + StripProxy * proxy; + + if(seq->anim != NULL) { + return; + } + + BLI_join_dirfile(name, sizeof(name), + seq->strip->dir, seq->strip->stripdata->name); + BLI_path_abs(name, G.main->name); + + seq->anim = openanim(name, IB_rect | + ((seq->flag & SEQ_FILTERY) ? + IB_animdeinterlace : 0), seq->streamindex); + + if (seq->anim == NULL) { + return; + } + + proxy = seq->strip->proxy; + + if (proxy == NULL) { + return; + } + + if (seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { + IMB_anim_set_index_dir(seq->anim, seq->strip->proxy->dir); + } +} + + static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, char * name) { int frameno; char dir[FILE_MAXDIR]; + int render_size = context.preview_render_size; if (!seq->strip->proxy) { return FALSE; } + /* MOVIE tracks (only exception: custom files) are now handled + internally by ImBuf module for various reasons: proper time code + support, quicker index build, using one file instead + of a full directory of jpeg files, etc. Trying to support old + and new method at once could lead to funny effects, if people + have both, a directory full of jpeg files and proxy avis, so + sorry folks, please rebuild your proxies... */ + if (seq->flag & (SEQ_USE_PROXY_CUSTOM_DIR|SEQ_USE_PROXY_CUSTOM_FILE)) { strcpy(dir, seq->strip->proxy->dir); + } else if (seq->type == SEQ_IMAGE) { + snprintf(dir, PROXY_MAXFILE, "%s/BL_proxy", seq->strip->dir); } else { - if (ELEM(seq->type, SEQ_IMAGE, SEQ_MOVIE)) { - snprintf(dir, FILE_MAXDIR, "%s/BL_proxy", seq->strip->dir); - } else { - return FALSE; - } + return FALSE; } if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { - BLI_join_dirfile(name, FILE_MAX, dir, seq->strip->proxy->file); /* XXX, not real length */ + BLI_join_dirfile(name, PROXY_MAXFILE, + dir, seq->strip->proxy->file); BLI_path_abs(name, G.main->name); return TRUE; } + /* dirty hack to distinguish 100% render size from PROXY_100 */ + if (render_size == 99) { + render_size = 100; + } + /* generate a separate proxy directory for each preview size */ - switch(seq->type) { - case SEQ_IMAGE: + if (seq->type == SEQ_IMAGE) { snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir, context.preview_render_size, give_stripelem(seq, cfra)->name); frameno = 1; - break; - case SEQ_MOVIE: - frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs; - snprintf(name, PROXY_MAXFILE, "%s/%s/%d/####", dir, - seq->strip->stripdata->name, context.preview_render_size); - break; - default: - frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs; + } else { + frameno = (int) give_stripelem_index(seq, cfra) + + seq->anim_startofs; snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, context.preview_render_size); } @@ -1182,13 +1254,18 @@ static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int cfra) { char name[PROXY_MAXFILE]; + IMB_Proxy_Size psize = seq_rendersize_to_proxysize( + context.preview_render_size); + int size_flags; if (!(seq->flag & SEQ_USE_PROXY)) { return NULL; } - /* rendering at 100% ? No real sense in proxy-ing, right? */ - if (context.preview_render_size == 100) { + size_flags = seq->strip->proxy->build_size_flags; + + /* only use proxies, if they are enabled (even if present!) */ + if (psize != IMB_PROXY_NONE && ((size_flags & psize) != psize)) { return NULL; } @@ -1199,13 +1276,19 @@ static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int return NULL; } - seq->strip->proxy->anim = openanim(name, IB_rect); + seq->strip->proxy->anim = openanim(name, IB_rect, 0); } if (seq->strip->proxy->anim==NULL) { return NULL; } - return IMB_anim_absolute(seq->strip->proxy->anim, frameno); + seq_open_anim_file(seq); + + frameno = IMB_anim_index_get_frame_index( + seq->anim, seq->strip->proxy->tc, frameno); + + return IMB_anim_absolute(seq->strip->proxy->anim, frameno, + IMB_TC_NONE, IMB_PROXY_NONE); } if (seq_proxy_get_fname(context, seq, cfra, name) == 0) { @@ -1219,67 +1302,30 @@ static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int } } -#if 0 -static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra, - int build_proxy_run, int preview_render_size); - -static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int preview_render_size, int seqrectx, int seqrecty) +static void seq_proxy_build_frame(SeqRenderData context, + Sequence* seq, int cfra, + int proxy_render_size) { char name[PROXY_MAXFILE]; int quality; - TStripElem * se; - int ok; int rectx, recty; + int ok; struct ImBuf * ibuf; - if (!(seq->flag & SEQ_USE_PROXY)) { - return; - } - - /* rendering at 100% ? No real sense in proxy-ing, right? */ - if (preview_render_size == 100) { + if (!seq_proxy_get_fname(context, seq, cfra, name)) { return; } - /* that's why it is called custom... */ - if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { - return; - } + ibuf = seq_render_strip(context, seq, cfra); - if (!seq_proxy_get_fname(scene, seq, cfra, name, preview_render_size)) { - return; - } - - se = give_tstripelem(seq, cfra); - if (!se) { - return; - } - - if(se->ibuf) { - IMB_freeImBuf(se->ibuf); - se->ibuf = 0; - } - - do_build_seq_ibuf(scene, seq, se, cfra, TRUE, preview_render_size, - seqrectx, seqrecty); - - if (!se->ibuf) { - return; - } - - rectx= (preview_render_size*scene->r.xsch)/100; - recty= (preview_render_size*scene->r.ysch)/100; - - ibuf = se->ibuf; + rectx = (proxy_render_size * context.scene->r.xsch) / 100; + recty = (proxy_render_size * context.scene->r.ysch) / 100; if (ibuf->x != rectx || ibuf->y != recty) { IMB_scalefastImBuf(ibuf, (short)rectx, (short)recty); } - /* quality is fixed, otherwise one has to generate separate - directories for every quality... - - depth = 32 is intentionally left in, otherwise ALPHA channels + /* depth = 32 is intentionally left in, otherwise ALPHA channels won't work... */ quality = seq->strip->proxy->quality; ibuf->ftype= JPG | quality; @@ -1292,69 +1338,80 @@ static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int pr } IMB_freeImBuf(ibuf); - se->ibuf = 0; } -static void seq_proxy_rebuild(Scene *scene, Sequence * seq, int seqrectx, - int seqrecty) +void seq_proxy_rebuild(struct Main * bmain, Scene *scene, Sequence * seq, + short *stop, short *do_update, float *progress) { + SeqRenderData context; int cfra; - float rsize = seq->strip->proxy->size; + int tc_flags; + int size_flags; + int quality; + + if (!seq->strip || !seq->strip->proxy) { + return; + } + + if (!(seq->flag & SEQ_USE_PROXY)) { + return; + } - waitcursor(1); + tc_flags = seq->strip->proxy->build_tc_flags; + size_flags = seq->strip->proxy->build_size_flags; + quality = seq->strip->proxy->quality; - G.afbreek = 0; + if (seq->type == SEQ_MOVIE) { + seq_open_anim_file(seq); - /* flag management tries to account for strobe and - other "non-linearities", that might come in the future... - better way would be to "touch" the files, so that _really_ - no one is rebuild twice. - */ + if (seq->anim) { + IMB_anim_index_rebuild( + seq->anim, tc_flags, size_flags, quality, + stop, do_update, progress); + } + return; + } - for (cfra = seq->startdisp; cfra < seq->enddisp; cfra++) { - TStripElem * tse = give_tstripelem(seq, cfra); + if (!(seq->flag & SEQ_USE_PROXY)) { + return; + } - tse->flag &= ~STRIPELEM_PREVIEW_DONE; + /* that's why it is called custom... */ + if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { + return; } - + /* fail safe code */ - /* a _lot_ faster for movie files, if we read frames in - sequential order */ - if (seq->flag & SEQ_REVERSE_FRAMES) { - for (cfra = seq->enddisp-seq->endstill-1; - cfra >= seq->startdisp + seq->startstill; cfra--) { - TStripElem * tse = give_tstripelem(seq, cfra); - - if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { -//XXX set_timecursor(cfra); - seq_proxy_build_frame(scene, seq, cfra, rsize, - seqrectx, seqrecty); - tse->flag |= STRIPELEM_PREVIEW_DONE; - } - if (blender_test_break()) { - break; - } + context = seq_new_render_data( + bmain, scene, + (scene->r.size * (float) scene->r.xsch) / 100.0f + 0.5f, + (scene->r.size * (float) scene->r.ysch) / 100.0f + 0.5f, + 100); + + for (cfra = seq->startdisp + seq->startstill; + cfra < seq->enddisp - seq->endstill; cfra++) { + if (size_flags & IMB_PROXY_25) { + seq_proxy_build_frame(context, seq, cfra, 25); } - } else { - for (cfra = seq->startdisp + seq->startstill; - cfra < seq->enddisp - seq->endstill; cfra++) { - TStripElem * tse = give_tstripelem(seq, cfra); - - if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { -//XXX set_timecursor(cfra); - seq_proxy_build_frame(scene, seq, cfra, rsize, - seqrectx, seqrecty); - tse->flag |= STRIPELEM_PREVIEW_DONE; - } - if (blender_test_break()) { - break; - } + if (size_flags & IMB_PROXY_50) { + seq_proxy_build_frame(context, seq, cfra, 50); + } + if (size_flags & IMB_PROXY_75) { + seq_proxy_build_frame(context, seq, cfra, 75); } + if (size_flags & IMB_PROXY_100) { + seq_proxy_build_frame(context, seq, cfra, 100); + } + + *progress= (float)cfra/(seq->enddisp - seq->endstill + - seq->startdisp + seq->startstill); + *do_update= 1; + + if(*stop || G.afbreek) + break; } - waitcursor(0); } -#endif /* ********************************************************************** @@ -1571,6 +1628,8 @@ static ImBuf * input_preprocess( { float mul; + ibuf = IMB_makeSingleUser(ibuf); + if((seq->flag & SEQ_FILTERY) && seq->type != SEQ_MOVIE) { IMB_filtery(ibuf); } @@ -2096,17 +2155,20 @@ static ImBuf * seq_render_strip(SeqRenderData context, Sequence * seq, float cfr } case SEQ_MOVIE: { - if(seq->anim==NULL) { - BLI_join_dirfile(name, sizeof(name), seq->strip->dir, seq->strip->stripdata->name); - BLI_path_abs(name, G.main->name); - - seq->anim = openanim(name, IB_rect | - ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0)); - } + seq_open_anim_file(seq); if(seq->anim) { - IMB_anim_set_preseek(seq->anim, seq->anim_preseek); - ibuf = IMB_anim_absolute(seq->anim, nr + seq->anim_startofs); + IMB_anim_set_preseek(seq->anim, + seq->anim_preseek); + + ibuf = IMB_anim_absolute( + seq->anim, nr + seq->anim_startofs, + seq->strip->proxy ? + seq->strip->proxy->tc + : IMB_TC_RECORD_RUN, + seq_rendersize_to_proxysize( + context.preview_render_size)); + /* we don't need both (speed reasons)! */ if (ibuf && ibuf->rect_float && ibuf->rect) imb_freerectImBuf(ibuf); @@ -3584,7 +3646,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo BLI_strncpy(path, seq_load->path, sizeof(path)); BLI_path_abs(path, G.main->name); - an = openanim(path, IB_rect); + an = openanim(path, IB_rect, 0); if(an==NULL) return NULL; @@ -3600,7 +3662,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo /* basic defaults */ seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); - strip->len = seq->len = IMB_anim_get_duration( an ); + strip->len = seq->len = IMB_anim_get_duration( an, IMB_TC_RECORD_RUN ); strip->us= 1; /* we only need 1 element for MOVIE strips */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f3b478b90f9..df7e1f80cbd 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -9951,12 +9951,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if(ed) { SEQP_BEGIN(ed, seq) { if (seq->strip && seq->strip->proxy){ - if (sce->r.size != 100.0) { - seq->strip->proxy->size - = sce->r.size; - } else { - seq->strip->proxy->size = 25; - } seq->strip->proxy->quality =90; } } diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 2faac24fd78..67123476f06 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2369,6 +2369,7 @@ void uiTemplateOperatorSearch(uiLayout *layout) #define B_STOPCAST 2 #define B_STOPANIM 3 #define B_STOPCOMPO 4 +#define B_STOPSEQ 5 static void do_running_jobs(bContext *C, void *UNUSED(arg), int event) { @@ -2385,6 +2386,9 @@ static void do_running_jobs(bContext *C, void *UNUSED(arg), int event) case B_STOPCOMPO: WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL); break; + case B_STOPSEQ: + WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL); + break; } } @@ -2406,8 +2410,11 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C) if(WM_jobs_test(wm, sa)) owner = sa; handle_event= B_STOPCOMPO; - } - else { + } else if (sa->spacetype==SPACE_SEQ) { + if(WM_jobs_test(wm, sa)) + owner = sa; + handle_event = B_STOPSEQ; + } else { Scene *scene; /* another scene can be rendering too, for example via compositor */ for(scene= CTX_data_main(C)->scene.first; scene; scene= scene->id.next) diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index 66e844e67a8..4011f038be8 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -113,7 +113,7 @@ static void image_info(Scene *scene, ImageUser *iuser, Image *ima, ImBuf *ibuf, if(ima->source==IMA_SRC_MOVIE) { ofs+= sprintf(str, "Movie"); if(ima->anim) - ofs+= sprintf(str+ofs, "%d frs", IMB_anim_get_duration(ima->anim)); + ofs+= sprintf(str+ofs, "%d frs", IMB_anim_get_duration(ima->anim, IMB_TC_RECORD_RUN)); } else ofs+= sprintf(str, "Image"); @@ -428,7 +428,7 @@ static void set_frames_cb(bContext *C, void *ima_v, void *iuser_v) ImageUser *iuser= iuser_v; if(ima->anim) { - iuser->frames = IMB_anim_get_duration(ima->anim); + iuser->frames = IMB_anim_get_duration(ima->anim, IMB_TC_RECORD_RUN); BKE_image_user_calc_frame(iuser, scene->r.cfra, 0); } } diff --git a/source/blender/editors/space_sequencer/SConscript b/source/blender/editors/space_sequencer/SConscript index 65bbf900556..3430c10b766 100644 --- a/source/blender/editors/space_sequencer/SConscript +++ b/source/blender/editors/space_sequencer/SConscript @@ -8,4 +8,7 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' incs += ' ../../makesrna ../../blenloader' incs += ' #/intern/audaspace/intern' +if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): + incs += ' ' + env['BF_PTHREADS_INC'] + env.BlenderLib ( 'bf_editors_space_sequencer', sources, Split(incs), [], libtype=['core'], priority=[100] ) diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index e876da41bd9..18ff33fd8a9 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -47,6 +47,7 @@ #include "BLI_math.h" #include "BLI_storage_types.h" #include "BLI_utildefines.h" +#include "BLI_threads.h" #include "DNA_scene_types.h" #include "DNA_userdef_types.h" @@ -125,6 +126,111 @@ typedef struct TransSeq { int len; } TransSeq; +/* ********************************************************************** */ + +/* ***************** proxy job manager ********************** */ + +typedef struct ProxyBuildJob { + Scene *scene; + struct Main * main; + ListBase queue; + ThreadMutex queue_lock; +} ProxyJob; + +static void proxy_freejob(void *pjv) +{ + ProxyJob *pj= pjv; + Sequence * seq; + + for (seq = pj->queue.first; seq; seq = seq->next) { + BLI_remlink(&pj->queue, seq); + seq_free_sequence_recurse(pj->scene, seq); + } + + BLI_mutex_end(&pj->queue_lock); + + MEM_freeN(pj); +} + +/* only this runs inside thread */ +static void proxy_startjob(void *pjv, short *stop, short *do_update, float *progress) +{ + ProxyJob *pj = pjv; + + while (!*stop) { + Sequence * seq; + + BLI_mutex_lock(&pj->queue_lock); + + if (!pj->queue.first) { + BLI_mutex_unlock(&pj->queue_lock); + break; + } + + seq = pj->queue.first; + + BLI_remlink(&pj->queue, seq); + BLI_mutex_unlock(&pj->queue_lock); + + seq_proxy_rebuild(pj->main, pj->scene, seq, + stop, do_update, progress); + seq_free_sequence_recurse(pj->scene, seq); + } + + if (*stop) { + fprintf(stderr, + "Canceling proxy rebuild on users request...\n"); + } +} + +static void proxy_endjob(void *UNUSED(customdata)) +{ + +} + +void seq_proxy_build_job(const bContext *C, Sequence * seq) +{ + wmJob * steve; + ProxyJob *pj; + Scene *scene= CTX_data_scene(C); + ScrArea * sa= CTX_wm_area(C); + + seq = seq_dupli_recursive(scene, scene, seq, 0); + + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), + sa, "Building Proxies", WM_JOB_PROGRESS); + + pj = WM_jobs_get_customdata(steve); + + if (!pj) { + pj = MEM_callocN(sizeof(ProxyJob), "proxy rebuild job"); + + pj->scene= scene; + pj->main = CTX_data_main(C); + + BLI_mutex_init(&pj->queue_lock); + + WM_jobs_customdata(steve, pj, proxy_freejob); + WM_jobs_timer(steve, 0.1, NC_SCENE|ND_SEQUENCER, + NC_SCENE|ND_SEQUENCER); + WM_jobs_callbacks(steve, proxy_startjob, NULL, NULL, + proxy_endjob); + } + + BLI_mutex_lock(&pj->queue_lock); + BLI_addtail(&pj->queue, seq); + BLI_mutex_unlock(&pj->queue_lock); + + if (!WM_jobs_is_running(steve)) { + G.afbreek = 0; + WM_jobs_start(CTX_wm_manager(C), steve); + } + + ED_area_tag_redraw(CTX_wm_area(C)); +} + +/* ********************************************************************** */ + void seq_rectf(Sequence *seq, rctf *rectf) { if(seq->startstill) rectf->xmin= seq->start; @@ -2690,6 +2796,37 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot) WM_operator_properties_gesture_border(ot, FALSE); } +/* rebuild_proxy operator */ +static int sequencer_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, FALSE); + Sequence * seq; + + SEQP_BEGIN(ed, seq) { + if ((seq->flag & SELECT)) { + seq_proxy_build_job(C, seq); + } + } + SEQ_END + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_rebuild_proxy(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Rebuild Proxy and Timecode Indices"; + ot->idname= "SEQUENCER_OT_rebuild_proxy"; + ot->description="Rebuild all selected proxies and timecode indeces using the job system"; + + /* api callbacks */ + ot->exec= sequencer_rebuild_proxy_exec; + ot->poll= ED_operator_sequencer_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} /* change ops */ diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 7ab76f9b6d7..89e9a22c9a1 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -118,6 +118,8 @@ void SEQUENCER_OT_change_path(struct wmOperatorType *ot); void SEQUENCER_OT_copy(struct wmOperatorType *ot); void SEQUENCER_OT_paste(struct wmOperatorType *ot); +void SEQUENCER_OT_rebuild_proxy(struct wmOperatorType *ot); + /* preview specific operators */ void SEQUENCER_OT_view_all_preview(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index df33ce73b9c..5c13b57cca8 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -87,6 +87,7 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_view_zoom_ratio); WM_operatortype_append(SEQUENCER_OT_view_ghost_border); + WM_operatortype_append(SEQUENCER_OT_rebuild_proxy); WM_operatortype_append(SEQUENCER_OT_change_effect_input); WM_operatortype_append(SEQUENCER_OT_change_effect_type); WM_operatortype_append(SEQUENCER_OT_change_path); diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 18b5eff5c73..ff13be20d4e 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -73,6 +73,7 @@ set(SRC intern/tiff.c intern/util.c intern/writeimage.c + intern/indexer.c IMB_imbuf.h IMB_imbuf_types.h diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index 36123592c54..1fbe8e01fd4 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -133,6 +133,7 @@ struct ImBuf *IMB_allocImBuf(unsigned int x, unsigned int y, */ void IMB_refImBuf(struct ImBuf *ibuf); +struct ImBuf * IMB_makeSingleUser(struct ImBuf *ibuf); /** * @@ -192,18 +193,71 @@ void IMB_rectcpy(struct ImBuf *drect, struct ImBuf *srect, int destx, void IMB_rectblend(struct ImBuf *dbuf, struct ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height, IMB_BlendMode mode); +/** + * + * @attention Defined in indexer.c + */ + +typedef enum IMB_Timecode_Type { + IMB_TC_NONE = 0, /* don't use timecode files at all */ + IMB_TC_RECORD_RUN = 1, /* use images in the order as they are recorded + (currently, this is the only one implemented + and is a sane default) + */ + IMB_TC_FREE_RUN = 2, /* use global timestamp written by recording + device (prosumer camcorders e.g. can do + that) */ + IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN = 4, + /* interpolate a global timestamp using the + record date and time written by recording + device (*every* consumer camcorder can do + that :) )*/ + IMB_TC_MAX_SLOT = 3 +} IMB_Timecode_Type; + +typedef enum IMB_Proxy_Size { + IMB_PROXY_NONE = 0, + IMB_PROXY_25 = 1, + IMB_PROXY_50 = 2, + IMB_PROXY_75 = 4, + IMB_PROXY_100 = 8, + IMB_PROXY_MAX_SLOT = 4 +} IMB_Proxy_Size; + +/* defaults to BL_proxy within the directory of the animation */ +void IMB_anim_set_index_dir(struct anim * anim, const char * dir); + +int IMB_anim_index_get_frame_index(struct anim * anim, IMB_Timecode_Type tc, + int position); + +/* will rebuild all used indices and proxies at once */ +void IMB_anim_index_rebuild(struct anim * anim, + IMB_Timecode_Type build_tcs, + IMB_Proxy_Size build_preview_sizes, + int build_quality, + short *stop, short *do_update, float *progress); + /** * Return the length (in frames) of the given @a anim. */ -int IMB_anim_get_duration(struct anim *anim); +int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc); + + +/** + * Return the fps contained in movie files (function rval is FALSE, + * and frs_sec and frs_sec_base untouched if none available!) + */ +int IMB_anim_get_fps(struct anim * anim, + short * frs_sec, float * frs_sec_base); /** * * @attention Defined in anim.c */ -struct anim *IMB_open_anim(const char *name, int ib_flags); +struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex); void IMB_close_anim(struct anim *anim); + /** * * @attention Defined in anim.c @@ -218,7 +272,10 @@ int IMB_anim_get_preseek(struct anim *anim); * @attention Defined in anim.c */ -struct ImBuf *IMB_anim_absolute(struct anim *anim, int position); +struct ImBuf *IMB_anim_absolute( + struct anim *anim, int position, + IMB_Timecode_Type tc /* = 1 = IMB_TC_RECORD_RUN */, + IMB_Proxy_Size preview_size /* = 0 = IMB_PROXY_NONE */); /** * @@ -227,12 +284,6 @@ struct ImBuf *IMB_anim_absolute(struct anim *anim, int position); */ struct ImBuf *IMB_anim_previewframe(struct anim *anim); -/** - * - * @attention Defined in anim.c - */ -void IMB_free_anim_ibuf(struct anim *anim); - /** * * @attention Defined in anim.c diff --git a/source/blender/imbuf/intern/IMB_anim.h b/source/blender/imbuf/intern/IMB_anim.h index fba0772dd93..8436846bf2e 100644 --- a/source/blender/imbuf/intern/IMB_anim.h +++ b/source/blender/imbuf/intern/IMB_anim.h @@ -127,19 +127,22 @@ #define MAXNUMSTREAMS 50 struct _AviMovie; +struct anim_index; struct anim { int ib_flags; int curtype; int curposition; /* index 0 = 1e, 1 = 2e, enz. */ int duration; + short frs_sec; + float frs_sec_base; int x, y; /* voor op nummer */ char name[256]; /* voor sequence */ char first[256]; - + /* movie */ void *movie; void *track; @@ -148,9 +151,7 @@ struct anim { size_t framesize; int interlacing; int preseek; - - /* data */ - struct ImBuf * ibuf1, * ibuf2; + int streamindex; /* avi */ struct _AviMovie *avi; @@ -179,11 +180,26 @@ struct anim { AVFrame *pFrameDeinterlaced; struct SwsContext *img_convert_ctx; int videoStream; + + struct ImBuf * last_frame; + int64_t last_pts; + int64_t next_pts; + int64_t next_undecoded_pts; + AVPacket next_packet; #endif #ifdef WITH_REDCODE struct redcode_handle * redcodeCtx; #endif + + char index_dir[256]; + + int proxies_tried; + int indices_tried; + + struct anim * proxy_anim[IMB_PROXY_MAX_SLOT]; + struct anim_index * curr_idx[IMB_TC_MAX_SLOT]; + }; #endif diff --git a/source/blender/imbuf/intern/IMB_indexer.h b/source/blender/imbuf/intern/IMB_indexer.h new file mode 100644 index 00000000000..ae3b48f76c7 --- /dev/null +++ b/source/blender/imbuf/intern/IMB_indexer.h @@ -0,0 +1,135 @@ +/** + * IMB_indexer.h + * + * $Id: IMB_indexer.h + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * + * Contributor(s): Peter Schlaile + * + * ***** END GPL LICENSE BLOCK ***** + */ + + +#ifndef IMB_INDEXER_H +#define IMB_INDEXER_H + +#ifdef WIN32 +#include +#endif + +#include +#include +#include "BKE_utildefines.h" +#include "IMB_anim.h" + +/* + seperate animation index files to solve the following problems: + + a) different timecodes within one file (like DTS/PTS, Timecode-Track, + "implicit" timecodes within DV-files and HDV-files etc.) + b) seeking difficulties within ffmpeg for files with timestamp holes + c) broken files that miss several frames / have varying framerates + d) use proxies accordingly + + ... we need index files, that provide us with + + the binary(!) position, where we have to seek into the file *and* + the continuous frame number (ignoring the holes) starting from the + beginning of the file, so that we know, which proxy frame to serve. + + This index has to be only built once for a file and is written into + the BL_proxy directory structure for later reuse in different blender files. + +*/ + +typedef struct anim_index_entry { + int frameno; + unsigned long long seek_pos; + unsigned long long seek_pos_dts; + unsigned long long pts; +} anim_index_entry; + +struct anim_index { + char name[256]; + + int num_entries; + struct anim_index_entry * entries; +}; + +struct anim_index_builder; + +typedef struct anim_index_builder { + FILE * fp; + char name[FILE_MAXDIR + FILE_MAXFILE]; + char temp_name[FILE_MAXDIR + FILE_MAXFILE]; + + void * private_data; + + void (*delete_priv_data)(struct anim_index_builder * idx); + void (*proc_frame)(struct anim_index_builder * idx, + unsigned char * buffer, + int data_size, + struct anim_index_entry * entry); +} anim_index_builder; + +anim_index_builder * IMB_index_builder_create(const char * name); +void IMB_index_builder_add_entry(anim_index_builder * fp, + int frameno, unsigned long long seek_pos, + unsigned long long seek_pos_dts, + unsigned long long pts); + +void IMB_index_builder_proc_frame(anim_index_builder * fp, + unsigned char * buffer, + int data_size, + int frameno, unsigned long long seek_pos, + unsigned long long seek_pos_dts, + unsigned long long pts); + +void IMB_index_builder_finish(anim_index_builder * fp, int rollback); + +struct anim_index * IMB_indexer_open(const char * name); +unsigned long long IMB_indexer_get_seek_pos( + struct anim_index * idx, int frameno_index); +unsigned long long IMB_indexer_get_seek_pos_dts( + struct anim_index * idx, int frameno_index); + +int IMB_indexer_get_frame_index(struct anim_index * idx, int frameno); +unsigned long long IMB_indexer_get_pts(struct anim_index * idx, + int frame_index); +int IMB_indexer_get_duration(struct anim_index * idx); + +int IMB_indexer_can_scan(struct anim_index * idx, + int old_frame_index, int new_frame_index); + +void IMB_indexer_close(struct anim_index * idx); + +void IMB_free_indices(struct anim * anim); + +int IMB_anim_index_get_frame_index( + struct anim * anim, IMB_Timecode_Type tc, int position); + +struct anim * IMB_anim_open_proxy( + struct anim * anim, IMB_Proxy_Size preview_size); +struct anim_index * IMB_anim_open_index( + struct anim * anim, IMB_Timecode_Type tc); + +int IMB_proxy_size_to_array_index(IMB_Proxy_Size pr_size); +int IMB_timecode_to_array_index(IMB_Timecode_Type tc); + +#endif diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c index 59772771f3b..6ce6c9409d1 100644 --- a/source/blender/imbuf/intern/allocimbuf.c +++ b/source/blender/imbuf/intern/allocimbuf.c @@ -177,6 +177,19 @@ void IMB_refImBuf(ImBuf *ibuf) ibuf->refcounter++; } +ImBuf * IMB_makeSingleUser(ImBuf *ibuf) +{ + ImBuf * rval; + + if (!ibuf || ibuf->refcounter == 0) { return ibuf; } + + rval = IMB_dupImBuf(ibuf); + + IMB_freeImBuf(ibuf); + + return rval; +} + short addzbufImBuf(ImBuf *ibuf) { int size; diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 8b0104fcdca..7b172008bee 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -57,6 +57,7 @@ #include #include #include +#include #ifndef _WIN32 #include #else @@ -66,6 +67,7 @@ #include "BLI_blenlib.h" /* BLI_remlink BLI_filesize BLI_addtail BLI_countlist BLI_stringdec */ #include "BLI_utildefines.h" +#include "BLI_math_base.h" #include "MEM_guardedalloc.h" @@ -90,6 +92,7 @@ #include "IMB_allocimbuf.h" #include "IMB_anim.h" +#include "IMB_indexer.h" #ifdef WITH_FFMPEG #include @@ -304,15 +307,6 @@ static void free_anim_avi (struct anim *anim) { anim->duration = 0; } -void IMB_free_anim_ibuf(struct anim * anim) { - if (anim == NULL) return; - - if (anim->ibuf1) IMB_freeImBuf(anim->ibuf1); - if (anim->ibuf2) IMB_freeImBuf(anim->ibuf2); - - anim->ibuf1 = anim->ibuf2 = NULL; -} - #ifdef WITH_FFMPEG static void free_anim_ffmpeg(struct anim * anim); #endif @@ -326,7 +320,6 @@ void IMB_free_anim(struct anim * anim) { return; } - IMB_free_anim_ibuf(anim); free_anim_movie(anim); free_anim_avi(anim); @@ -339,6 +332,7 @@ void IMB_free_anim(struct anim * anim) { #ifdef WITH_REDCODE free_anim_redcode(anim); #endif + IMB_free_indices(anim); MEM_freeN(anim); } @@ -350,13 +344,14 @@ void IMB_close_anim(struct anim * anim) { } -struct anim * IMB_open_anim( const char * name, int ib_flags) { +struct anim * IMB_open_anim( const char * name, int ib_flags, int streamindex) { struct anim * anim; anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct"); if (anim != NULL) { BLI_strncpy(anim->name, name, sizeof(anim->name)); anim->ib_flags = ib_flags; + anim->streamindex = streamindex; } return(anim); } @@ -368,10 +363,13 @@ static int startavi (struct anim *anim) { #if defined(_WIN32) && !defined(FREE_WINDOWS) HRESULT hr; int i, firstvideo = -1; + int streamcount; BYTE abFormat[1024]; LONG l; LPBITMAPINFOHEADER lpbi; AVISTREAMINFO avis; + + streamcount = anim->streamindex; #endif anim->avi = MEM_callocN (sizeof(AviMovie),"animavi"); @@ -396,6 +394,10 @@ static int startavi (struct anim *anim) { AVIStreamInfo(anim->pavi[i], &avis, sizeof(avis)); if ((avis.fccType == streamtypeVIDEO) && (firstvideo == -1)) { + if (streamcount > 0) { + streamcount--; + continue; + } anim->pgf = AVIStreamGetFrameOpen(anim->pavi[i], NULL); if (anim->pgf) { firstvideo = i; @@ -496,14 +498,14 @@ static ImBuf * avi_fetchibuf (struct anim *anim, int position) { for (y=0; y < anim->y; y++) { memcpy (&(ibuf->rect)[((anim->y-y)-1)*anim->x], &tmp[y*anim->x], - anim->x * 4); + anim->x * 4); } MEM_freeN (tmp); } - + ibuf->profile = IB_PROFILE_SRGB; - + return ibuf; } @@ -517,6 +519,9 @@ static int startffmpeg(struct anim * anim) { AVCodec *pCodec; AVFormatContext *pFormatCtx; AVCodecContext *pCodecCtx; + int frs_num; + double frs_den; + int streamcount; #ifdef FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT /* The following for color space determination */ @@ -527,6 +532,8 @@ static int startffmpeg(struct anim * anim) { if (anim == 0) return(-1); + streamcount = anim->streamindex; + do_init_ffmpeg(); if(av_open_input_file(&pFormatCtx, anim->name, NULL, 0, NULL)!=0) { @@ -541,12 +548,17 @@ static int startffmpeg(struct anim * anim) { av_dump_format(pFormatCtx, 0, anim->name, 0); - /* Find the first video stream */ - videoStream=-1; - for(i=0; inb_streams; i++) - if(pFormatCtx->streams[i]->codec->codec_type + /* Find the video stream */ + videoStream = -1; + + for(i = 0; i < pFormatCtx->nb_streams; i++) + if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) { - videoStream=i; + if (streamcount > 0) { + streamcount--; + continue; + } + videoStream = i; break; } @@ -557,16 +569,16 @@ static int startffmpeg(struct anim * anim) { pCodecCtx = pFormatCtx->streams[videoStream]->codec; - /* Find the decoder for the video stream */ - pCodec=avcodec_find_decoder(pCodecCtx->codec_id); - if(pCodec==NULL) { + /* Find the decoder for the video stream */ + pCodec = avcodec_find_decoder(pCodecCtx->codec_id); + if(pCodec == NULL) { av_close_input_file(pFormatCtx); return -1; } pCodecCtx->workaround_bugs = 1; - if(avcodec_open(pCodecCtx, pCodec)<0) { + if(avcodec_open(pCodecCtx, pCodec) < 0) { av_close_input_file(pFormatCtx); return -1; } @@ -575,6 +587,19 @@ static int startffmpeg(struct anim * anim) { * av_q2d(pFormatCtx->streams[videoStream]->r_frame_rate) / AV_TIME_BASE); + frs_num = pFormatCtx->streams[videoStream]->r_frame_rate.num; + frs_den = pFormatCtx->streams[videoStream]->r_frame_rate.den; + + frs_den *= AV_TIME_BASE; + + while (frs_num % 10 == 0 && frs_den >= 2.0 && frs_num > 10) { + frs_num /= 10; + frs_den /= 10; + } + + anim->frs_sec = frs_num; + anim->frs_sec_base = frs_den; + anim->params = 0; anim->x = pCodecCtx->width; @@ -584,6 +609,11 @@ static int startffmpeg(struct anim * anim) { anim->framesize = anim->x * anim->y * 4; anim->curposition = -1; + anim->last_frame = 0; + anim->last_pts = -1; + anim->next_pts = -1; + anim->next_undecoded_pts = -1; + anim->next_packet.stream_index = -1; anim->pFormatCtx = pFormatCtx; anim->pCodecCtx = pCodecCtx; @@ -666,10 +696,19 @@ static int startffmpeg(struct anim * anim) { return (0); } -static void ffmpeg_postprocess(struct anim * anim, ImBuf * ibuf, - int * filter_y) +/* postprocess the image in anim->pFrame and do color conversion + and deinterlacing stuff. + + Output is anim->last_frame +*/ + +static void ffmpeg_postprocess(struct anim * anim) { AVFrame * input = anim->pFrame; + ImBuf * ibuf = anim->last_frame; + int filter_y = 0; + + ibuf->profile = IB_PROFILE_SRGB; /* This means the data wasnt read properly, this check stops crashing */ @@ -690,12 +729,16 @@ static void ffmpeg_postprocess(struct anim * anim, ImBuf * ibuf, anim->pCodecCtx->width, anim->pCodecCtx->height) < 0) { - *filter_y = 1; + filter_y = TRUE; } else { input = anim->pFrameDeinterlaced; } } + avpicture_fill((AVPicture*) anim->pFrameRGB, + (unsigned char*) ibuf->rect, + PIX_FMT_RGBA, anim->x, anim->y); + if (ENDIAN_ORDER == B_ENDIAN) { int * dstStride = anim->pFrameRGB->linesize; uint8_t** dst = anim->pFrameRGB->data; @@ -774,150 +817,359 @@ static void ffmpeg_postprocess(struct anim * anim, ImBuf * ibuf, } } } + + if (filter_y) { + IMB_filtery(ibuf); + } } -static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position) { - ImBuf * ibuf; - int frameFinished; - AVPacket packet; +/* decode one video frame and load the next packet into anim->packet, + so that we can obtain next_pts and next undecoded pts */ + +static int ffmpeg_decode_video_frame(struct anim * anim) +{ + int frameFinished = 0; + int rval = 0; + + av_log(anim->pFormatCtx, AV_LOG_DEBUG, " DECODE VIDEO FRAME\n"); + + anim->next_undecoded_pts = -1; + + if (anim->next_packet.stream_index == anim->videoStream) { + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + " DECODE: cached next packet\n"); + + avcodec_decode_video2(anim->pCodecCtx, + anim->pFrame, &frameFinished, + &anim->next_packet); + + if (frameFinished) { + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + " FRAME DONE: " + "next_pts=%lld pkt_pts=%lld\n", + (anim->pFrame->pts == AV_NOPTS_VALUE) ? + -1 : anim->pFrame->pts, + (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ? + -1 : anim->pFrame->pkt_pts); + anim->next_pts = + av_get_pts_from_frame(anim->pFormatCtx, + anim->pFrame); + } + + av_free_packet(&anim->next_packet); + anim->next_packet.stream_index = -1; + } + + while((rval = av_read_frame(anim->pFormatCtx, &anim->next_packet)) >= 0) { + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + "%sREAD: strID=%d (VID: %d) dts=%lld pts=%lld " + "%s\n", + (anim->next_packet.stream_index == anim->videoStream) + ? "->" : " ", + anim->next_packet.stream_index, + anim->videoStream, + (anim->next_packet.dts == AV_NOPTS_VALUE) ? -1: + anim->next_packet.dts, + (anim->next_packet.pts == AV_NOPTS_VALUE) ? -1: + anim->next_packet.pts, + (anim->next_packet.flags & AV_PKT_FLAG_KEY) ? + " KEY" : ""); + if (anim->next_packet.stream_index == anim->videoStream) { + if (frameFinished) { + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + " FRAME finished, we leave\n"); + anim->next_undecoded_pts + = anim->next_packet.dts; + break; + } + + avcodec_decode_video2( + anim->pCodecCtx, + anim->pFrame, &frameFinished, + &anim->next_packet); + + if (frameFinished) { + anim->next_pts = av_get_pts_from_frame( + anim->pFormatCtx, anim->pFrame); + + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + " FRAME DONE: next_pts=%lld " + "pkt_pts=%lld, guessed_pts=%lld\n", + (anim->pFrame->pts == AV_NOPTS_VALUE) ? + -1 : anim->pFrame->pts, + (anim->pFrame->pkt_pts + == AV_NOPTS_VALUE) ? + -1 : anim->pFrame->pkt_pts, + anim->next_pts); + } + } + av_free_packet(&anim->next_packet); + anim->next_packet.stream_index = -1; + } + + if (rval < 0) { + av_log(anim->pFormatCtx, + AV_LOG_ERROR, " DECODE READ FAILED: av_read_frame() " + "returned error: %d\n", rval); + } + return (rval >= 0); +} + +static void ffmpeg_decode_video_frame_scan( + struct anim * anim, int64_t pts_to_search) +{ + /* there seem to exist *very* silly GOP lengths out in the wild... */ + int count = 1000; + + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + "SCAN start: considering pts=%lld in search of %lld\n", + anim->next_pts, pts_to_search); + + while (count > 0 && anim->next_pts < pts_to_search) { + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, + " WHILE: pts=%lld in search of %lld\n", + anim->next_pts, pts_to_search); + if (!ffmpeg_decode_video_frame(anim)) { + break; + } + count--; + } + if (count == 0) { + av_log(anim->pFormatCtx, + AV_LOG_ERROR, + "SCAN failed: completely lost in stream, " + "bailing out at PTS=%lld, searching for PTS=%lld\n", + anim->next_pts, pts_to_search); + } + if (anim->next_pts == pts_to_search) { + av_log(anim->pFormatCtx, + AV_LOG_DEBUG, "SCAN HAPPY: we found our PTS!\n"); + } else { + av_log(anim->pFormatCtx, + AV_LOG_ERROR, "SCAN UNHAPPY: PTS not matched!\n"); + } +} + +static int match_format(const char *name, AVFormatContext * pFormatCtx) +{ + const char *p; + int len, namelen; + + const char *names = pFormatCtx->iformat->name; + + if (!name || !names) + return 0; + + namelen = strlen(name); + while ((p = strchr(names, ','))) { + len = MAX2(p - names, namelen); + if (!BLI_strncasecmp(name, names, len)) + return 1; + names = p+1; + } + return !BLI_strcasecmp(name, names); +} + +static int ffmpeg_seek_by_byte(AVFormatContext *pFormatCtx) +{ + static const char * byte_seek_list [] = { "dv", "mpegts", 0 }; + const char ** p; + + if (pFormatCtx->iformat->flags & AVFMT_TS_DISCONT) { + return TRUE; + } + + p = byte_seek_list; + + while (*p) { + if (match_format(*p++, pFormatCtx)) { + return TRUE; + } + } + + return FALSE; +} + +static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position, + IMB_Timecode_Type tc) { int64_t pts_to_search = 0; - int pos_found = 1; - int filter_y = 0; - int seek_by_bytes= 0; - int preseek_count = 0; + double frame_rate; + double pts_time_base; + long long st_time; + struct anim_index * tc_index = 0; + AVStream * v_st; + int new_frame_index; + int old_frame_index; if (anim == 0) return (0); - ibuf = IMB_allocImBuf(anim->x, anim->y, 32, IB_rect); + av_log(anim->pFormatCtx, AV_LOG_DEBUG, "FETCH: pos=%d\n", position); - avpicture_fill((AVPicture*) anim->pFrameRGB, - (unsigned char*) ibuf->rect, - PIX_FMT_RGBA, anim->x, anim->y); - - if (position != anim->curposition + 1) { - if (position > anim->curposition + 1 - && anim->preseek - && position - (anim->curposition + 1) < anim->preseek) { - while(av_read_frame(anim->pFormatCtx, &packet)>=0) { - if (packet.stream_index == anim->videoStream) { - avcodec_decode_video2( - anim->pCodecCtx, - anim->pFrame, &frameFinished, - &packet); - - if (frameFinished) { - anim->curposition++; - } - } - av_free_packet(&packet); - if (position == anim->curposition+1) { - break; - } - } + if (tc != IMB_TC_NONE) { + tc_index = IMB_anim_open_index(anim, tc); + } + + v_st = anim->pFormatCtx->streams[anim->videoStream]; + + frame_rate = av_q2d(v_st->r_frame_rate); + + st_time = anim->pFormatCtx->start_time; + pts_time_base = av_q2d(v_st->time_base); + + if (tc_index) { + new_frame_index = IMB_indexer_get_frame_index( + tc_index, position); + old_frame_index = IMB_indexer_get_frame_index( + tc_index, anim->curposition); + pts_to_search = IMB_indexer_get_pts( + tc_index, new_frame_index); + } else { + pts_to_search = (long long) + floor(((double) position) / pts_time_base / frame_rate + 0.5); + + if (st_time != AV_NOPTS_VALUE) { + pts_to_search += st_time / pts_time_base + / AV_TIME_BASE; } } -/* disable seek_by_bytes for now, since bitrates are guessed wrong! - also: MPEG2TS-seeking was fixed in later versions of ffmpeg, so problem - is somewhat fixed by now (until we add correct timecode management code...) -*/ -#if 0 - seek_by_bytes = !!(anim->pFormatCtx->iformat->flags & AVFMT_TS_DISCONT); -#else - seek_by_bytes = FALSE; -#endif + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "FETCH: looking for PTS=%lld " + "(pts_timebase=%g, frame_rate=%g, st_time=%lld)\n", + pts_to_search, pts_time_base, frame_rate, st_time); + + if (anim->last_frame && + anim->last_pts <= pts_to_search && anim->next_pts > pts_to_search){ + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "FETCH: frame repeat: last: %lld next: %lld\n", + anim->last_pts, anim->next_pts); + IMB_refImBuf(anim->last_frame); + anim->curposition = position; + return anim->last_frame; + } + + IMB_freeImBuf(anim->last_frame); + + if (anim->next_pts <= pts_to_search && + anim->next_undecoded_pts > pts_to_search) { + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "FETCH: no seek necessary: " + "next: %lld next undecoded: %lld\n", + anim->next_pts, anim->next_undecoded_pts); + + /* we are already done :) */ + + } else if (position > anim->curposition + 1 + && anim->preseek + && !tc_index + && position - (anim->curposition + 1) < anim->preseek) { + + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "FETCH: within preseek interval (no index)\n"); + + ffmpeg_decode_video_frame_scan(anim, pts_to_search); + } else if (tc_index && + IMB_indexer_can_scan(tc_index, old_frame_index, + new_frame_index)) { + + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "FETCH: within preseek interval " + "(index tells us)\n"); - if (position != anim->curposition + 1) { - double frame_rate = - av_q2d(anim->pFormatCtx->streams[anim->videoStream] - ->r_frame_rate); - double pts_time_base = av_q2d(anim->pFormatCtx->streams[anim->videoStream]->time_base); + ffmpeg_decode_video_frame_scan(anim, pts_to_search); + } else if (position != anim->curposition + 1) { long long pos; - long long st_time = anim->pFormatCtx->start_time; int ret; - if (seek_by_bytes) { - pos = position - anim->preseek; - if (pos < 0) { - pos = 0; - } - preseek_count = position - pos; + if (tc_index) { + unsigned long long dts; + + pos = IMB_indexer_get_seek_pos( + tc_index, new_frame_index); + dts = IMB_indexer_get_seek_pos_dts( + tc_index, new_frame_index); + + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "TC INDEX seek pos = %lld\n", pos); + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "TC INDEX seek dts = %lld\n", dts); - pos *= anim->pFormatCtx->bit_rate / frame_rate; - pos /= 8; + if (ffmpeg_seek_by_byte(anim->pFormatCtx)) { + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "... using BYTE pos\n"); + + ret = av_seek_frame(anim->pFormatCtx, + -1, + pos, AVSEEK_FLAG_BYTE); + av_update_cur_dts(anim->pFormatCtx, v_st, dts); + } else { + av_log(anim->pFormatCtx, AV_LOG_DEBUG, + "... using DTS pos\n"); + ret = av_seek_frame(anim->pFormatCtx, + anim->videoStream, + dts, AVSEEK_FLAG_BACKWARD); + } } else { pos = (long long) (position - anim->preseek) * AV_TIME_BASE / frame_rate; if (pos < 0) { pos = 0; } - + if (st_time != AV_NOPTS_VALUE) { pos += st_time; } - } - ret = av_seek_frame(anim->pFormatCtx, -1, - pos, - AVSEEK_FLAG_BACKWARD | ( - seek_by_bytes - ? AVSEEK_FLAG_ANY - | AVSEEK_FLAG_BYTE : 0)); - if (ret < 0) { - fprintf(stderr, "error while seeking: %d\n", ret); + ret = av_seek_frame(anim->pFormatCtx, -1, + pos, AVSEEK_FLAG_BACKWARD); } - pts_to_search = (long long) - (((double) position) / pts_time_base / frame_rate); - if (st_time != AV_NOPTS_VALUE) { - pts_to_search += st_time / pts_time_base/ AV_TIME_BASE; + if (ret < 0) { + av_log(anim->pFormatCtx, AV_LOG_ERROR, + "FETCH: " + "error while seeking to DTS = %lld " + "(frameno = %d, PTS = %lld): errcode = %d\n", + pos, position, pts_to_search, ret); } - pos_found = 0; avcodec_flush_buffers(anim->pCodecCtx); - } - while(av_read_frame(anim->pFormatCtx, &packet)>=0) { - if(packet.stream_index == anim->videoStream) { - avcodec_decode_video2(anim->pCodecCtx, - anim->pFrame, &frameFinished, - &packet); + anim->next_pts = -1; - if (seek_by_bytes && preseek_count > 0) { - preseek_count--; - } + if (anim->next_packet.stream_index == anim->videoStream) { + av_free_packet(&anim->next_packet); + anim->next_packet.stream_index = -1; + } - if (frameFinished && !pos_found) { - if (seek_by_bytes) { - if (!preseek_count) { - pos_found = 1; - anim->curposition = position; - } - } else { - if (packet.dts >= pts_to_search) { - pos_found = 1; - anim->curposition = position; - } - } - } + /* memset(anim->pFrame,...) ?? */ - if(frameFinished && pos_found == 1) { - ffmpeg_postprocess(anim, ibuf, &filter_y); - av_free_packet(&packet); - break; - } + if (ret >= 0) { + ffmpeg_decode_video_frame_scan(anim, pts_to_search); } - - av_free_packet(&packet); + } else if (position == 0 && anim->curposition == -1) { + /* first frame without seeking special case... */ + ffmpeg_decode_video_frame(anim); } - if (filter_y && ibuf) { - IMB_filtery(ibuf); - } + anim->last_frame = IMB_allocImBuf(anim->x, anim->y, 32, IB_rect); - ibuf->profile = IB_PROFILE_SRGB; + ffmpeg_postprocess(anim); - return(ibuf); + anim->last_pts = anim->next_pts; + + ffmpeg_decode_video_frame(anim); + + anim->curposition = position; + + IMB_refImBuf(anim->last_frame); + + return anim->last_frame; } static void free_anim_ffmpeg(struct anim * anim) { @@ -934,6 +1186,10 @@ static void free_anim_ffmpeg(struct anim * anim) { } av_free(anim->pFrameDeinterlaced); sws_freeContext(anim->img_convert_ctx); + IMB_freeImBuf(anim->last_frame); + if (anim->next_packet.stream_index != -1) { + av_free_packet(&anim->next_packet); + } } anim->duration = 0; } @@ -1063,16 +1319,19 @@ struct ImBuf * IMB_anim_previewframe(struct anim * anim) { struct ImBuf * ibuf = NULL; int position = 0; - ibuf = IMB_anim_absolute(anim, 0); + ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE); if (ibuf) { IMB_freeImBuf(ibuf); position = anim->duration / 2; - ibuf = IMB_anim_absolute(anim, position); + ibuf = IMB_anim_absolute(anim, position, IMB_TC_NONE, + IMB_PROXY_NONE); } return ibuf; } -struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { +struct ImBuf * IMB_anim_absolute(struct anim * anim, int position, + IMB_Timecode_Type tc, + IMB_Proxy_Size preview_size) { struct ImBuf * ibuf = NULL; char head[256], tail[256]; unsigned short digits; @@ -1095,6 +1354,18 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { if (position < 0) return(NULL); if (position >= anim->duration) return(NULL); + if (preview_size != IMB_PROXY_NONE) { + struct anim * proxy = IMB_anim_open_proxy(anim, preview_size); + + if (proxy) { + position = IMB_anim_index_get_frame_index( + anim, tc, position); + return IMB_anim_absolute( + proxy, position, + IMB_TC_NONE, IMB_PROXY_NONE); + } + } + switch(anim->curtype) { case ANIM_SEQUENCE: pic = an_stringdec(anim->first, head, tail, &digits); @@ -1127,7 +1398,7 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { #endif #ifdef WITH_FFMPEG case ANIM_FFMPEG: - ibuf = ffmpeg_fetchibuf(anim, position); + ibuf = ffmpeg_fetchibuf(anim, position, tc); if (ibuf) anim->curposition = position; filter_y = 0; /* done internally */ @@ -1151,8 +1422,29 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { /***/ -int IMB_anim_get_duration(struct anim *anim) { - return anim->duration; +int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc) { + struct anim_index * idx; + if (tc == IMB_TC_NONE) { + return anim->duration; + } + + idx = IMB_anim_open_index(anim, tc); + if (!idx) { + return anim->duration; + } + + return IMB_indexer_get_duration(idx); +} + +int IMB_anim_get_fps(struct anim * anim, + short * frs_sec, float * frs_sec_base) +{ + if (anim->frs_sec) { + *frs_sec = anim->frs_sec; + *frs_sec_base = anim->frs_sec_base; + return TRUE; + } + return FALSE; } void IMB_anim_set_preseek(struct anim * anim, int preseek) diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index 7f1eef80318..2677913caed 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -1,4 +1,6 @@ /* + * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c new file mode 100644 index 00000000000..f624694b324 --- /dev/null +++ b/source/blender/imbuf/intern/indexer.c @@ -0,0 +1,1135 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Peter Schlaile 2011 + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +#include "IMB_indexer.h" +#include "IMB_anim.h" +#include "AVI_avi.h" +#include "imbuf.h" +#include "MEM_guardedalloc.h" +#include "BLI_utildefines.h" +#include "BLI_blenlib.h" +#include "BLI_math_base.h" +#include "BLI_string.h" +#include "MEM_guardedalloc.h" +#include "DNA_userdef_types.h" +#include "BKE_global.h" +#include + +#ifdef WITH_FFMPEG + +#include "ffmpeg_compat.h" + +#endif //WITH_FFMPEG + + +static char magic[] = "BlenMIdx"; +static char temp_ext [] = "_part"; + +static int proxy_sizes[] = { IMB_PROXY_25, IMB_PROXY_50, IMB_PROXY_75, + IMB_PROXY_100 }; +static float proxy_fac[] = { 0.25, 0.50, 0.75, 1.00 }; +static int tc_types[] = { IMB_TC_RECORD_RUN, IMB_TC_FREE_RUN, + IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN }; + +#define INDEX_FILE_VERSION 1 + +/* ---------------------------------------------------------------------- + - special indexers + ---------------------------------------------------------------------- + */ + +extern void IMB_indexer_dv_new(anim_index_builder * idx); + + +/* ---------------------------------------------------------------------- + - time code index functions + ---------------------------------------------------------------------- */ + +anim_index_builder * IMB_index_builder_create(const char * name) +{ + + anim_index_builder * rv + = MEM_callocN( sizeof(struct anim_index_builder), + "index builder"); + + fprintf(stderr, "Starting work on index: %s\n", name); + + BLI_strncpy(rv->name, name, sizeof(rv->name)); + BLI_strncpy(rv->temp_name, name, sizeof(rv->temp_name)); + + strcat(rv->temp_name, temp_ext); + + BLI_make_existing_file(rv->temp_name); + + rv->fp = fopen(rv->temp_name, "w"); + + if (!rv->fp) { + fprintf(stderr, "Couldn't open index target: %s! " + "Index build broken!\n", rv->temp_name); + MEM_freeN(rv); + return NULL; + } + + fprintf(rv->fp, "%s%c%.3d", magic, (ENDIAN_ORDER==B_ENDIAN)?'V':'v', + INDEX_FILE_VERSION); + + return rv; +} + +void IMB_index_builder_add_entry(anim_index_builder * fp, + int frameno,unsigned long long seek_pos, + unsigned long long seek_pos_dts, + unsigned long long pts) +{ + fwrite(&frameno, sizeof(int), 1, fp->fp); + fwrite(&seek_pos, sizeof(unsigned long long), 1, fp->fp); + fwrite(&seek_pos_dts, sizeof(unsigned long long), 1, fp->fp); + fwrite(&pts, sizeof(unsigned long long), 1, fp->fp); +} + +void IMB_index_builder_proc_frame(anim_index_builder * fp, + unsigned char * buffer, + int data_size, + int frameno, unsigned long long seek_pos, + unsigned long long seek_pos_dts, + unsigned long long pts) +{ + if (fp->proc_frame) { + anim_index_entry e; + e.frameno = frameno; + e.seek_pos = seek_pos; + e.seek_pos_dts = seek_pos_dts; + e.pts = pts; + + fp->proc_frame(fp, buffer, data_size, &e); + } else { + IMB_index_builder_add_entry(fp, frameno, seek_pos, + seek_pos_dts, pts); + } +} + +void IMB_index_builder_finish(anim_index_builder * fp, int rollback) +{ + if (fp->delete_priv_data) { + fp->delete_priv_data(fp); + } + + fclose(fp->fp); + + if (rollback) { + unlink(fp->temp_name); + } else { + rename(fp->temp_name, fp->name); + } + + MEM_freeN(fp); +} + +struct anim_index * IMB_indexer_open(const char * name) +{ + char header[13]; + struct anim_index * idx; + FILE * fp = fopen(name, "rb"); + int i; + + if (!fp) { + return 0; + } + + if (fread(header, 12, 1, fp) != 1) { + fclose(fp); + return 0; + } + + header[12] = 0; + + if (memcmp(header, magic, 8) != 0) { + fclose(fp); + return 0; + } + + if (atoi(header+9) != INDEX_FILE_VERSION) { + fclose(fp); + return 0; + } + + idx = MEM_callocN( sizeof(struct anim_index), "anim_index"); + + BLI_strncpy(idx->name, name, sizeof(idx->name)); + + fseek(fp, 0, SEEK_END); + + idx->num_entries = (ftell(fp) - 12) + / (sizeof(int) // framepos + + sizeof(unsigned long long) // seek_pos + + sizeof(unsigned long long) // seek_pos_dts + + sizeof(unsigned long long) // pts + ); + + fseek(fp, 12, SEEK_SET); + + idx->entries = MEM_callocN( sizeof(struct anim_index_entry) + * idx->num_entries, "anim_index_entries"); + + for (i = 0; i < idx->num_entries; i++) { + fread(&idx->entries[i].frameno, + sizeof(int), 1, fp); + fread(&idx->entries[i].seek_pos, + sizeof(unsigned long long), 1, fp); + fread(&idx->entries[i].seek_pos_dts, + sizeof(unsigned long long), 1, fp); + fread(&idx->entries[i].pts, + sizeof(unsigned long long), 1, fp); + } + + if (((ENDIAN_ORDER == B_ENDIAN) != (header[8] == 'V'))) { + for (i = 0; i < idx->num_entries; i++) { + SWITCH_INT(idx->entries[i].frameno); + SWITCH_INT64(idx->entries[i].seek_pos); + SWITCH_INT64(idx->entries[i].seek_pos_dts); + SWITCH_INT64(idx->entries[i].pts); + } + } + + fclose(fp); + + return idx; +} + +unsigned long long IMB_indexer_get_seek_pos( + struct anim_index * idx, int frame_index) +{ + if (frame_index < 0) { + frame_index = 0; + } + if (frame_index >= idx->num_entries) { + frame_index = idx->num_entries - 1; + } + return idx->entries[frame_index].seek_pos; +} + +unsigned long long IMB_indexer_get_seek_pos_dts( + struct anim_index * idx, int frame_index) +{ + if (frame_index < 0) { + frame_index = 0; + } + if (frame_index >= idx->num_entries) { + frame_index = idx->num_entries - 1; + } + return idx->entries[frame_index].seek_pos_dts; +} + +int IMB_indexer_get_frame_index(struct anim_index * idx, int frameno) +{ + int len = idx->num_entries; + int half; + int middle; + int first = 0; + + /* bsearch (lower bound) the right index */ + + while (len > 0) { + half = len >> 1; + middle = first; + + middle += half; + + if (idx->entries[middle].frameno < frameno) { + first = middle; + ++first; + len = len - half - 1; + } else { + len = half; + } + } + + if (first == idx->num_entries) { + return idx->num_entries - 1; + } else { + return first; + } +} + +unsigned long long IMB_indexer_get_pts(struct anim_index * idx, + int frame_index) +{ + if (frame_index < 0) { + frame_index = 0; + } + if (frame_index >= idx->num_entries) { + frame_index = idx->num_entries - 1; + } + return idx->entries[frame_index].pts; +} + +int IMB_indexer_get_duration(struct anim_index * idx) +{ + if (idx->num_entries == 0) { + return 0; + } + return idx->entries[idx->num_entries-1].frameno + 1; +} + +int IMB_indexer_can_scan(struct anim_index * idx, + int old_frame_index, int new_frame_index) +{ + /* makes only sense, if it is the same I-Frame and we are not + trying to run backwards in time... */ + return (IMB_indexer_get_seek_pos(idx, old_frame_index) + == IMB_indexer_get_seek_pos(idx, new_frame_index) && + old_frame_index < new_frame_index); +} + +void IMB_indexer_close(struct anim_index * idx) +{ + MEM_freeN(idx->entries); + MEM_freeN(idx); +} + +int IMB_proxy_size_to_array_index(IMB_Proxy_Size pr_size) +{ + switch (pr_size) { + case IMB_PROXY_NONE: /* if we got here, something is broken anyways, + so sane defaults... */ + return 0; + case IMB_PROXY_25: + return 0; + case IMB_PROXY_50: + return 1; + case IMB_PROXY_75: + return 2; + case IMB_PROXY_100: + return 3; + default: + return 0; + }; + return 0; +} + +int IMB_timecode_to_array_index(IMB_Timecode_Type tc) +{ + switch (tc) { + case IMB_TC_NONE: /* if we got here, something is broken anyways, + so sane defaults... */ + return 0; + case IMB_TC_RECORD_RUN: + return 0; + case IMB_TC_FREE_RUN: + return 1; + case IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN: + return 2; + default: + return 0; + }; + return 0; +} + + +/* ---------------------------------------------------------------------- + - rebuild helper functions + ---------------------------------------------------------------------- */ + +static void get_index_dir(struct anim * anim, char * index_dir) +{ + if (!anim->index_dir[0]) { + char fname[FILE_MAXFILE]; + BLI_strncpy(index_dir, anim->name, FILE_MAXDIR); + BLI_splitdirstring(index_dir, fname); + BLI_join_dirfile(index_dir, FILE_MAXDIR, index_dir, "BL_proxy"); + BLI_join_dirfile(index_dir, FILE_MAXDIR, index_dir, fname); + } else { + BLI_strncpy(index_dir, anim->index_dir, FILE_MAXDIR); + } +} + +static void get_proxy_filename(struct anim * anim, IMB_Proxy_Size preview_size, + char * fname, int temp) +{ + char index_dir[FILE_MAXDIR]; + int i = IMB_proxy_size_to_array_index(preview_size); + + char proxy_name[256]; + char proxy_temp_name[256]; + char stream_suffix[20]; + + stream_suffix[0] = 0; + + if (anim->streamindex > 0) { + BLI_snprintf(stream_suffix, 20, "_st%d", anim->streamindex); + } + + BLI_snprintf(proxy_name, 256, "proxy_%d%s.avi", + (int) (proxy_fac[i] * 100), stream_suffix); + BLI_snprintf(proxy_temp_name, 256, "proxy_%d%s_part.avi", + (int) (proxy_fac[i] * 100), stream_suffix); + + get_index_dir(anim, index_dir); + + BLI_join_dirfile(fname, FILE_MAXFILE + FILE_MAXDIR, index_dir, + temp ? proxy_temp_name : proxy_name); +} + +static void get_tc_filename(struct anim * anim, IMB_Timecode_Type tc, + char * fname) +{ + char index_dir[FILE_MAXDIR]; + int i = IMB_timecode_to_array_index(tc); + char * index_names[] = { + "record_run%s.blen_tc", "free_run%s.blen_tc", + "interp_free_run%s.blen_tc" }; + + char stream_suffix[20]; + char index_name[256]; + + stream_suffix[0] = 0; + + if (anim->streamindex > 0) { + BLI_snprintf(stream_suffix, 20, "_st%d", anim->streamindex); + } + + BLI_snprintf(index_name, 256, index_names[i], stream_suffix); + + get_index_dir(anim, index_dir); + + BLI_join_dirfile(fname, FILE_MAXFILE + FILE_MAXDIR, + index_dir, index_name); +} + +/* ---------------------------------------------------------------------- + - ffmpeg rebuilder + ---------------------------------------------------------------------- */ + +#ifdef WITH_FFMPEG + +struct proxy_output_ctx { + AVFormatContext* of; + AVStream* st; + AVCodecContext* c; + AVCodec* codec; + struct SwsContext * sws_ctx; + AVFrame* frame; + uint8_t* video_buffer; + int video_buffersize; + int cfra; + int proxy_size; + int orig_height; + struct anim * anim; +}; + +// work around stupid swscaler 16 bytes alignment bug... + +static int round_up(int x, int mod) +{ + return x + ((mod - (x % mod)) % mod); +} + +static struct proxy_output_ctx * alloc_proxy_output_ffmpeg( + struct anim * anim, + AVStream * st, int proxy_size, int width, int height, + int quality) +{ + struct proxy_output_ctx * rv = MEM_callocN( + sizeof(struct proxy_output_ctx), "alloc_proxy_output"); + + char fname[FILE_MAXDIR+FILE_MAXFILE]; + + // JPEG requires this + width = round_up(width, 8); + height = round_up(height, 8); + + rv->proxy_size = proxy_size; + rv->anim = anim; + + get_proxy_filename(rv->anim, rv->proxy_size, fname, TRUE); + BLI_make_existing_file(fname); + + rv->of = avformat_alloc_context(); + rv->of->oformat = av_guess_format("avi", NULL, NULL); + + BLI_snprintf(rv->of->filename, sizeof(rv->of->filename), "%s", fname); + + fprintf(stderr, "Starting work on proxy: %s\n", rv->of->filename); + + rv->st = av_new_stream(rv->of, 0); + rv->c = rv->st->codec; + rv->c->codec_type = AVMEDIA_TYPE_VIDEO; + rv->c->codec_id = CODEC_ID_MJPEG; + rv->c->width = width; + rv->c->height = height; + + rv->of->oformat->video_codec = rv->c->codec_id; + rv->codec = avcodec_find_encoder(rv->c->codec_id); + + if (!rv->codec) { + fprintf(stderr, "No ffmpeg MJPEG encoder available? " + "Proxy not built!\n"); + av_free(rv->of); + return NULL; + } + + if (rv->codec->pix_fmts) { + rv->c->pix_fmt = rv->codec->pix_fmts[0]; + } else { + rv->c->pix_fmt = PIX_FMT_YUVJ420P; + } + + rv->c->sample_aspect_ratio + = rv->st->sample_aspect_ratio + = st->codec->sample_aspect_ratio; + + rv->c->time_base.den = 25; + rv->c->time_base.num = 1; + rv->st->time_base = rv->c->time_base; + + if (rv->of->flags & AVFMT_GLOBALHEADER) { + rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER; + } + + if (av_set_parameters(rv->of, NULL) < 0) { + fprintf(stderr, "Couldn't set output parameters? " + "Proxy not built!\n"); + av_free(rv->of); + return 0; + } + + if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) { + fprintf(stderr, "Couldn't open outputfile! " + "Proxy not built!\n"); + av_free(rv->of); + return 0; + } + + avcodec_open(rv->c, rv->codec); + + rv->video_buffersize = 2000000; + rv->video_buffer = (uint8_t*)MEM_mallocN( + rv->video_buffersize, "FFMPEG video buffer"); + + rv->orig_height = st->codec->height; + + if (st->codec->width != width || st->codec->height != height + || st->codec->pix_fmt != rv->c->pix_fmt) { + rv->frame = avcodec_alloc_frame(); + avpicture_fill((AVPicture*) rv->frame, + MEM_mallocN(avpicture_get_size( + rv->c->pix_fmt, + round_up(width, 16), height), + "alloc proxy output frame"), + rv->c->pix_fmt, round_up(width, 16), height); + + rv->sws_ctx = sws_getContext( + st->codec->width, + st->codec->height, + st->codec->pix_fmt, + width, height, + rv->c->pix_fmt, + SWS_FAST_BILINEAR | SWS_PRINT_INFO, + NULL, NULL, NULL); + } + + av_write_header(rv->of); + + return rv; +} + +static int add_to_proxy_output_ffmpeg( + struct proxy_output_ctx * ctx, AVFrame * frame) +{ + int outsize = 0; + + if (!ctx) { + return 0; + } + + if (ctx->sws_ctx && frame && + (frame->data[0] || frame->data[1] || + frame->data[2] || frame->data[3])) { + sws_scale(ctx->sws_ctx, (const uint8_t * const*) frame->data, + frame->linesize, 0, ctx->orig_height, + ctx->frame->data, ctx->frame->linesize); + } + + ctx->frame->pts = ctx->cfra++; + + outsize = avcodec_encode_video( + ctx->c, ctx->video_buffer, ctx->video_buffersize, + ctx->sws_ctx ? (frame ? ctx->frame : 0) : frame); + + if (outsize < 0) { + fprintf(stderr, "Error encoding proxy frame %d for '%s'\n", + ctx->cfra - 1, ctx->of->filename); + return 0; + } + + if (outsize != 0) { + AVPacket packet; + av_init_packet(&packet); + + if (ctx->c->coded_frame->pts != AV_NOPTS_VALUE) { + packet.pts = av_rescale_q(ctx->c->coded_frame->pts, + ctx->c->time_base, + ctx->st->time_base); + } + if (ctx->c->coded_frame->key_frame) + packet.flags |= AV_PKT_FLAG_KEY; + + packet.stream_index = ctx->st->index; + packet.data = ctx->video_buffer; + packet.size = outsize; + + if (av_interleaved_write_frame(ctx->of, &packet) != 0) { + fprintf(stderr, "Error writing proxy frame %d " + "into '%s'\n", ctx->cfra - 1, + ctx->of->filename); + return 0; + } + + return 1; + } else { + return 0; + } +} + +static void free_proxy_output_ffmpeg(struct proxy_output_ctx * ctx, + int rollback) +{ + int i; + char fname[FILE_MAXDIR+FILE_MAXFILE]; + char fname_tmp[FILE_MAXDIR+FILE_MAXFILE]; + + if (!ctx) { + return; + } + + if (!rollback) { + while (add_to_proxy_output_ffmpeg(ctx, NULL)) ; + } + + avcodec_flush_buffers(ctx->c); + + av_write_trailer(ctx->of); + + avcodec_close(ctx->c); + + for (i = 0; i < ctx->of->nb_streams; i++) { + if (&ctx->of->streams[i]) { + av_freep(&ctx->of->streams[i]); + } + } + + if (ctx->of->oformat) { + if (!(ctx->of->oformat->flags & AVFMT_NOFILE)) { + avio_close(ctx->of->pb); + } + } + av_free(ctx->of); + + MEM_freeN(ctx->video_buffer); + + if (ctx->sws_ctx) { + sws_freeContext(ctx->sws_ctx); + + MEM_freeN(ctx->frame->data[0]); + av_free(ctx->frame); + } + + get_proxy_filename(ctx->anim, ctx->proxy_size, + fname_tmp, TRUE); + + if (rollback) { + unlink(fname_tmp); + } else { + get_proxy_filename(ctx->anim, ctx->proxy_size, + fname, FALSE); + rename(fname_tmp, fname); + } + + MEM_freeN(ctx); +} + + +static int index_rebuild_ffmpeg(struct anim * anim, + IMB_Timecode_Type tcs_in_use, + IMB_Proxy_Size proxy_sizes_in_use, + int quality, + short *stop, short *do_update, + float *progress) +{ + int i, videoStream; + unsigned long long seek_pos = 0; + unsigned long long last_seek_pos = 0; + unsigned long long seek_pos_dts = 0; + unsigned long long seek_pos_pts = 0; + unsigned long long last_seek_pos_dts = 0; + unsigned long long start_pts = 0; + double frame_rate; + double pts_time_base; + int frameno = 0; + int start_pts_set = FALSE; + + AVFormatContext *iFormatCtx; + AVCodecContext *iCodecCtx; + AVCodec *iCodec; + AVStream *iStream; + AVFrame* in_frame = 0; + AVPacket next_packet; + int streamcount; + + struct proxy_output_ctx * proxy_ctx[IMB_PROXY_MAX_SLOT]; + anim_index_builder * indexer [IMB_TC_MAX_SLOT]; + + int num_proxy_sizes = IMB_PROXY_MAX_SLOT; + int num_indexers = IMB_TC_MAX_SLOT; + uint64_t stream_size; + + memset(proxy_ctx, 0, sizeof(proxy_ctx)); + memset(indexer, 0, sizeof(indexer)); + + if(av_open_input_file(&iFormatCtx, anim->name, NULL, 0, NULL) != 0) { + return 0; + } + + if (av_find_stream_info(iFormatCtx) < 0) { + av_close_input_file(iFormatCtx); + return 0; + } + + streamcount = anim->streamindex; + + /* Find the video stream */ + videoStream = -1; + for (i = 0; i < iFormatCtx->nb_streams; i++) + if(iFormatCtx->streams[i]->codec->codec_type + == AVMEDIA_TYPE_VIDEO) { + if (streamcount > 0) { + streamcount--; + continue; + } + videoStream = i; + break; + } + + if (videoStream == -1) { + av_close_input_file(iFormatCtx); + return 0; + } + + iStream = iFormatCtx->streams[videoStream]; + iCodecCtx = iStream->codec; + + iCodec = avcodec_find_decoder(iCodecCtx->codec_id); + + if (iCodec == NULL) { + av_close_input_file(iFormatCtx); + return 0; + } + + iCodecCtx->workaround_bugs = 1; + + if (avcodec_open(iCodecCtx, iCodec) < 0) { + av_close_input_file(iFormatCtx); + return 0; + } + + in_frame = avcodec_alloc_frame(); + + stream_size = avio_size(iFormatCtx->pb); + + for (i = 0; i < num_proxy_sizes; i++) { + if (proxy_sizes_in_use & proxy_sizes[i]) { + proxy_ctx[i] = alloc_proxy_output_ffmpeg( + anim, iStream, proxy_sizes[i], + iCodecCtx->width * proxy_fac[i], + iCodecCtx->height * proxy_fac[i], + quality); + if (!proxy_ctx[i]) { + proxy_sizes_in_use &= ~proxy_sizes[i]; + } + } + } + + for (i = 0; i < num_indexers; i++) { + if (tcs_in_use & tc_types[i]) { + char fname[FILE_MAXDIR+FILE_MAXFILE]; + + get_tc_filename(anim, tc_types[i], fname); + + indexer[i] = IMB_index_builder_create(fname); + if (!indexer[i]) { + tcs_in_use &= ~tc_types[i]; + } + } + } + + frame_rate = av_q2d(iStream->r_frame_rate); + pts_time_base = av_q2d(iStream->time_base); + + while(av_read_frame(iFormatCtx, &next_packet) >= 0) { + int frame_finished = 0; + float next_progress = ((int)floor(((double) next_packet.pos) * 100 / + ((double) stream_size)+0.5)) / 100; + + if (*progress != next_progress) { + *progress = next_progress; + *do_update = 1; + } + + if (*stop) { + av_free_packet(&next_packet); + break; + } + + if (next_packet.stream_index == videoStream) { + if (next_packet.flags & AV_PKT_FLAG_KEY) { + last_seek_pos = seek_pos; + last_seek_pos_dts = seek_pos_dts; + seek_pos = next_packet.pos; + seek_pos_dts = next_packet.dts; + seek_pos_pts = next_packet.pts; + } + + avcodec_decode_video2( + iCodecCtx, in_frame, &frame_finished, + &next_packet); + } + + if (frame_finished) { + unsigned long long s_pos = seek_pos; + unsigned long long s_dts = seek_pos_dts; + unsigned long long pts + = av_get_pts_from_frame(iFormatCtx, in_frame); + + for (i = 0; i < num_proxy_sizes; i++) { + add_to_proxy_output_ffmpeg( + proxy_ctx[i], in_frame); + } + + if (!start_pts_set) { + start_pts = pts; + start_pts_set = TRUE; + } + + frameno = (pts - start_pts) + * pts_time_base * frame_rate; + + /* decoding starts *always* on I-Frames, + so: P-Frames won't work, even if all the + information is in place, when we seek + to the I-Frame presented *after* the P-Frame, + but located before the P-Frame within + the stream */ + + if (pts < seek_pos_pts) { + s_pos = last_seek_pos; + s_dts = last_seek_pos_dts; + } + + for (i = 0; i < num_indexers; i++) { + if (tcs_in_use & tc_types[i]) { + IMB_index_builder_proc_frame( + indexer[i], + next_packet.data, + next_packet.size, + frameno, s_pos, s_dts, pts); + } + } + } + av_free_packet(&next_packet); + } + + for (i = 0; i < num_indexers; i++) { + if (tcs_in_use & tc_types[i]) { + IMB_index_builder_finish(indexer[i], *stop); + } + } + + for (i = 0; i < num_proxy_sizes; i++) { + if (proxy_sizes_in_use & proxy_sizes[i]) { + free_proxy_output_ffmpeg(proxy_ctx[i], *stop); + } + } + + av_free(in_frame); + + return 1; +} + +#endif + +/* ---------------------------------------------------------------------- + - internal AVI (fallback) rebuilder + ---------------------------------------------------------------------- */ + +static AviMovie * alloc_proxy_output_avi( + struct anim * anim, char * filename, int width, int height, + int quality) +{ + int x, y; + AviFormat format; + double framerate; + AviMovie * avi; + short frs_sec = 25; /* it doesn't really matter for proxies, + but sane defaults help anyways...*/ + float frs_sec_base = 1.0; + + IMB_anim_get_fps(anim, &frs_sec, &frs_sec_base); + + x = width; + y = height; + + framerate= (double) frs_sec / (double) frs_sec_base; + + avi = MEM_mallocN (sizeof(AviMovie), "avimovie"); + + format = AVI_FORMAT_MJPEG; + + if (AVI_open_compress (filename, avi, 1, format) != AVI_ERROR_NONE) { + MEM_freeN(avi); + return 0; + } + + AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_WIDTH, &x); + AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_HEIGHT, &y); + AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_QUALITY, &quality); + AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_FRAMERATE, &framerate); + + avi->interlace= 0; + avi->odd_fields= 0; + + return avi; +} + +static void index_rebuild_fallback(struct anim * anim, + IMB_Timecode_Type tcs_in_use, + IMB_Proxy_Size proxy_sizes_in_use, + int quality, + short *stop, short *do_update, + float *progress) +{ + int cnt = IMB_anim_get_duration(anim, IMB_TC_NONE); + int i, pos; + AviMovie * proxy_ctx[IMB_PROXY_MAX_SLOT]; + char fname[FILE_MAXDIR+FILE_MAXFILE]; + char fname_tmp[FILE_MAXDIR+FILE_MAXFILE]; + + memset(proxy_ctx, 0, sizeof(proxy_ctx)); + + /* since timecode indices only work with ffmpeg right now, + don't know a sensible fallback here... + + so no proxies, no game to play... + */ + if (proxy_sizes_in_use == IMB_PROXY_NONE) { + return; + } + + for (i = 0; i < IMB_PROXY_MAX_SLOT; i++) { + if (proxy_sizes_in_use & proxy_sizes[i]) { + char fname[FILE_MAXDIR+FILE_MAXFILE]; + + get_proxy_filename(anim, proxy_sizes[i], fname, TRUE); + BLI_make_existing_file(fname); + + proxy_ctx[i] = alloc_proxy_output_avi( + anim, fname, + anim->x * proxy_fac[i], + anim->y * proxy_fac[i], + quality); + } + } + + for (pos = 0; pos < cnt; pos++) { + struct ImBuf * ibuf = IMB_anim_absolute( + anim, pos, IMB_TC_NONE, IMB_PROXY_NONE); + int next_progress = (int) ((double) pos / (double) cnt); + + if (*progress != next_progress) { + *progress = next_progress; + *do_update = 1; + } + + if (*stop) { + break; + } + + IMB_flipy(ibuf); + + for (i = 0; i < IMB_PROXY_MAX_SLOT; i++) { + if (proxy_sizes_in_use & proxy_sizes[i]) { + int x = anim->x * proxy_fac[i]; + int y = anim->y * proxy_fac[i]; + + struct ImBuf * s_ibuf = IMB_scalefastImBuf( + ibuf, x, y); + + IMB_convert_rgba_to_abgr(s_ibuf); + + AVI_write_frame (proxy_ctx[i], pos, + AVI_FORMAT_RGB32, + s_ibuf->rect, x * y * 4); + + /* note that libavi free's the buffer... */ + s_ibuf->rect = 0; + + IMB_freeImBuf(s_ibuf); + } + } + } + + for (i = 0; i < IMB_PROXY_MAX_SLOT; i++) { + if (proxy_sizes_in_use & proxy_sizes[i]) { + AVI_close_compress (proxy_ctx[i]); + MEM_freeN (proxy_ctx[i]); + + get_proxy_filename(anim, proxy_sizes[i], + fname_tmp, TRUE); + get_proxy_filename(anim, proxy_sizes[i], + fname, FALSE); + + if (*stop) { + unlink(fname_tmp); + } else { + rename(fname_tmp, fname); + } + } + } +} + +/* ---------------------------------------------------------------------- + - public API + ---------------------------------------------------------------------- */ + +void IMB_anim_index_rebuild(struct anim * anim, IMB_Timecode_Type tcs_in_use, + IMB_Proxy_Size proxy_sizes_in_use, + int quality, + short *stop, short *do_update, float *progress) +{ + switch (anim->curtype) { +#ifdef WITH_FFMPEG + case ANIM_FFMPEG: + index_rebuild_ffmpeg(anim, tcs_in_use, proxy_sizes_in_use, + quality, stop, do_update, progress); + break; +#endif + default: + index_rebuild_fallback(anim, tcs_in_use, proxy_sizes_in_use, + quality, stop, do_update, progress); + break; + } +} + +void IMB_free_indices(struct anim * anim) +{ + int i; + + for (i = 0; i < IMB_PROXY_MAX_SLOT; i++) { + if (anim->proxy_anim[i]) { + IMB_close_anim(anim->proxy_anim[i]); + anim->proxy_anim[i] = 0; + } + } + + for (i = 0; i < IMB_TC_MAX_SLOT; i++) { + if (anim->curr_idx[i]) { + IMB_indexer_close(anim->curr_idx[i]); + anim->curr_idx[i] = 0; + } + } + + + anim->proxies_tried = 0; + anim->indices_tried = 0; +} + +void IMB_anim_set_index_dir(struct anim * anim, const char * dir) +{ + if (strcmp(anim->index_dir, dir) == 0) { + return; + } + BLI_strncpy(anim->index_dir, dir, sizeof(anim->index_dir)); + + IMB_free_indices(anim); +} + +struct anim * IMB_anim_open_proxy( + struct anim * anim, IMB_Proxy_Size preview_size) +{ + char fname[FILE_MAXDIR+FILE_MAXFILE]; + int i = IMB_proxy_size_to_array_index(preview_size); + + if (anim->proxy_anim[i]) { + return anim->proxy_anim[i]; + } + + if (anim->proxies_tried & preview_size) { + return NULL; + } + + get_proxy_filename(anim, preview_size, fname, FALSE); + + anim->proxy_anim[i] = IMB_open_anim(fname, 0, 0); + + anim->proxies_tried |= preview_size; + + return anim->proxy_anim[i]; +} + +struct anim_index * IMB_anim_open_index( + struct anim * anim, IMB_Timecode_Type tc) +{ + char fname[FILE_MAXDIR+FILE_MAXFILE]; + int i = IMB_timecode_to_array_index(tc); + + if (anim->curr_idx[i]) { + return anim->curr_idx[i]; + } + + if (anim->indices_tried & tc) { + return 0; + } + + get_tc_filename(anim, tc, fname); + + anim->curr_idx[i] = IMB_indexer_open(fname); + + anim->indices_tried |= tc; + + return anim->curr_idx[i]; +} + +int IMB_anim_index_get_frame_index(struct anim * anim, IMB_Timecode_Type tc, + int position) +{ + struct anim_index * idx = IMB_anim_open_index(anim, tc); + + if (!idx) { + return position; + } + + return IMB_indexer_get_frame_index(idx, position); +} + diff --git a/source/blender/imbuf/intern/indexer_dv.c b/source/blender/imbuf/intern/indexer_dv.c new file mode 100644 index 00000000000..0961af10f69 --- /dev/null +++ b/source/blender/imbuf/intern/indexer_dv.c @@ -0,0 +1,391 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Peter Schlaile 2011 + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +#include "IMB_indexer.h" +#include "MEM_guardedalloc.h" +#include + +typedef struct indexer_dv_bitstream { + unsigned char* buffer; + int bit_pos; +} indexer_dv_bitstream; + +static indexer_dv_bitstream bitstream_new(unsigned char* buffer_) +{ + indexer_dv_bitstream rv; + + rv.buffer = buffer_; + rv.bit_pos = 0; + + return rv; +} + +static unsigned long bitstream_get_bits(indexer_dv_bitstream * This, int num) +{ + int byte_pos = This->bit_pos >> 3; + unsigned long i = + This->buffer[byte_pos] | (This->buffer[byte_pos + 1] << 8) | + (This->buffer[byte_pos + 2] << 16) | + (This->buffer[byte_pos + 3] << 24); + int rval = (i >> (This->bit_pos & 0x7)) & ((1 << num) - 1); + This->bit_pos += num; + return rval; +} + +static int parse_num(indexer_dv_bitstream * b, int numbits) { + return bitstream_get_bits(b, numbits); +} + +static int parse_bcd(indexer_dv_bitstream * b, int n) +{ + char s[256]; + char * p = s + (n+3)/4; + + *p-- = 0; + + while (n > 4) { + char a; + int v = bitstream_get_bits(b, 4); + + n -= 4; + a = '0' + v; + + if (a > '9') { + bitstream_get_bits(b, n); + return -1; + } + + *p-- = a; + } + if (n) { + char a; + int v = bitstream_get_bits(b, n); + a = '0' + v; + if (a > '9') { + return -1; + } + *p-- = a; + } + + return atol(s); +} + +typedef struct indexer_dv_context +{ + int rec_curr_frame; + int rec_curr_second; + int rec_curr_minute; + int rec_curr_hour; + + int rec_curr_day; + int rec_curr_month; + int rec_curr_year; + + char got_record_date; + char got_record_time; + + time_t ref_time_read; + time_t ref_time_read_new; + int curr_frame; + + time_t gap_start; + int gap_frame; + + int frameno_offset; + + anim_index_entry backbuffer[31]; + int fsize; + + anim_index_builder * idx; +} indexer_dv_context; + +static void parse_packet(indexer_dv_context * This, unsigned char * p) +{ + indexer_dv_bitstream b; + int type = p[0]; + + b = bitstream_new(p + 1); + + switch (type) { + case 0x62: // Record date + parse_num(&b, 8); + This->rec_curr_day = parse_bcd(&b, 6); + parse_num(&b, 2); + This->rec_curr_month = parse_bcd(&b, 5); + parse_num(&b, 3); + This->rec_curr_year = parse_bcd(&b, 8); + if (This->rec_curr_year < 25) { + This->rec_curr_year += 2000; + } else { + This->rec_curr_year += 1900; + } + This->got_record_date = 1; + break; + case 0x63: // Record time + This->rec_curr_frame = parse_bcd(&b, 6); + parse_num(&b, 2); + This->rec_curr_second = parse_bcd(&b, 7); + parse_num(&b, 1); + This->rec_curr_minute = parse_bcd(&b, 7); + parse_num(&b, 1); + This->rec_curr_hour = parse_bcd(&b, 6); + This->got_record_time = 1; + break; + } +} + +static void parse_header_block(indexer_dv_context * This, unsigned char* target) +{ + int i; + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } +} + +static void parse_subcode_blocks( + indexer_dv_context * This, unsigned char* target) +{ + int i,j; + + for (j = 0; j < 2; j++) { + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } + } +} + +static void parse_vaux_blocks( + indexer_dv_context * This, unsigned char* target) +{ + int i,j; + + for (j = 0; j < 3; j++) { + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } + target += 80; + } +} + +static void parse_audio_headers( + indexer_dv_context * This, unsigned char* target) +{ + int i; + + for(i = 0; i < 9; i++) { + if (target[3] != 0xff) { + parse_packet(This, target + 3); + } + target += 16 * 80; + } +} + +static void parse_frame(indexer_dv_context * This, + unsigned char * framebuffer, int isPAL) +{ + int numDIFseq = isPAL ? 12 : 10; + unsigned char* target = framebuffer; + int ds; + + for (ds = 0; ds < numDIFseq; ds++) { + parse_header_block(This, target); + target += 1 * 80; + parse_subcode_blocks(This, target); + target += 2 * 80; + parse_vaux_blocks(This, target); + target += 3 * 80; + parse_audio_headers(This, target); + target += 144 * 80; + } +} + +static void inc_frame(int * frame, time_t * t, int isPAL) +{ + if ((isPAL && *frame >= 25) || (!isPAL && *frame >= 30)) { + fprintf(stderr, "Ouchie: inc_frame: invalid_frameno: %d\n", + *frame); + } + (*frame)++; + if (isPAL && *frame >= 25) { + (*t)++; + *frame = 0; + } else if (!isPAL && *frame >= 30) { + (*t)++; + *frame = 0; + } +} + +static void write_index(indexer_dv_context * This, anim_index_entry * entry) +{ + IMB_index_builder_add_entry( + This->idx, entry->frameno + This->frameno_offset, + entry->seek_pos, entry->seek_pos_dts, entry->pts); +} + +static void fill_gap(indexer_dv_context * This, int isPAL) +{ + int i; + + for (i = 0; i < This->fsize; i++) { + if (This->gap_start == This->ref_time_read && + This->gap_frame == This->curr_frame) { + fprintf(stderr, + "indexer_dv::fill_gap: " + "can't seek backwards !\n"); + break; + } + inc_frame(&This->gap_frame, &This->gap_start, isPAL); + } + + while (This->gap_start != This->ref_time_read || + This->gap_frame != This->curr_frame) { + inc_frame(&This->gap_frame, &This->gap_start, isPAL); + This->frameno_offset++; + } + + for (i = 0; i < This->fsize; i++) { + write_index(This, This->backbuffer + i); + } + This->fsize = 0; +} + +static void proc_frame(indexer_dv_context * This, + unsigned char* framebuffer, int isPAL) +{ + struct tm recDate; + time_t t; + + if (!This->got_record_date || !This->got_record_time) { + return; + } + + recDate.tm_sec = This->rec_curr_second; + recDate.tm_min = This->rec_curr_minute; + recDate.tm_hour = This->rec_curr_hour; + recDate.tm_mday = This->rec_curr_day; + recDate.tm_mon = This->rec_curr_month - 1; + recDate.tm_year = This->rec_curr_year - 1900; + recDate.tm_wday = -1; + recDate.tm_yday = -1; + recDate.tm_isdst = -1; + + t = mktime(&recDate); + if (t == -1) { + return; + } + + This->ref_time_read_new = t; + + if (This->ref_time_read < 0) { + This->ref_time_read = This->ref_time_read_new; + This->curr_frame = 0; + } else { + if (This->ref_time_read_new - This->ref_time_read == 1) { + This->curr_frame = 0; + This->ref_time_read = This->ref_time_read_new; + if (This->gap_frame >= 0) { + fill_gap(This, isPAL); + This->gap_frame = -1; + } + } else if (This->ref_time_read_new == This->ref_time_read) { + // do nothing + } else { + This->gap_start = This->ref_time_read; + This->gap_frame = This->curr_frame; + This->ref_time_read = This->ref_time_read_new; + This->curr_frame = -1; + } + } +} + +static void indexer_dv_proc_frame(anim_index_builder * idx, + unsigned char * buffer, + int data_size, + struct anim_index_entry * entry) +{ + int isPAL; + + indexer_dv_context * This = (indexer_dv_context *) idx->private_data; + + isPAL = (buffer[3] & 0x80); + + This->got_record_date = FALSE; + This->got_record_time = FALSE; + + parse_frame(This, buffer, isPAL); + proc_frame(This, buffer, isPAL); + + if (This->curr_frame >= 0) { + write_index(This, entry); + inc_frame(&This->curr_frame, &This->ref_time_read, isPAL); + } else { + This->backbuffer[This->fsize++] = *entry; + if (This->fsize >= 31) { + int i; + + fprintf(stderr, "indexer_dv::indexer_dv_proc_frame: " + "backbuffer overrun, emergency flush"); + + for (i = 0; i < This->fsize; i++) { + write_index(This, This->backbuffer+i); + } + This->fsize = 0; + } + } +} + +static void indexer_dv_delete(anim_index_builder * idx) +{ + int i = 0; + indexer_dv_context * This = (indexer_dv_context *) idx->private_data; + + for (i = 0; i < This->fsize; i++) { + write_index(This, This->backbuffer+i); + } + + MEM_freeN(This); +} + +void IMB_indexer_dv_new(anim_index_builder * idx) +{ + indexer_dv_context * rv = MEM_callocN( + sizeof(indexer_dv_context), "index_dv builder context"); + + rv->ref_time_read = -1; + rv->curr_frame = -1; + rv->gap_frame = -1; + rv->idx = idx; + + idx->private_data = rv; + idx->proc_frame = indexer_dv_proc_frame; + idx->delete_priv_data = indexer_dv_delete; +} diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c index 1d91f34f4fa..2ab7e55d1f8 100644 --- a/source/blender/imbuf/intern/thumbs.c +++ b/source/blender/imbuf/intern/thumbs.c @@ -317,9 +317,9 @@ ImBuf* IMB_thumb_create(const char* path, ThumbSize size, ThumbSource source, Im } } else if (THB_SOURCE_MOVIE == source) { struct anim * anim = NULL; - anim = IMB_open_anim(path, IB_rect | IB_metadata); + anim = IMB_open_anim(path, IB_rect | IB_metadata, 0); if (anim != NULL) { - img = IMB_anim_absolute(anim, 0); + img = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE); if (img == NULL) { printf("not an anim; %s\n", path); } else { diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index 6db8dcc06cf..85d31f18a03 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -221,7 +221,7 @@ void silence_log_ffmpeg(int quiet) } else { - av_log_set_level(AV_LOG_INFO); + av_log_set_level(AV_LOG_DEBUG); } } @@ -234,9 +234,10 @@ void do_init_ffmpeg(void) av_register_all(); avdevice_register_all(); - if ((G.f & G_DEBUG) == 0) - { + if ((G.f & G_DEBUG) == 0) { silence_log_ffmpeg(1); + } else { + silence_log_ffmpeg(0); } } } diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 0dd0b9790ab..cd3afbf3553 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -71,12 +71,19 @@ typedef struct StripColorBalance { } StripColorBalance; typedef struct StripProxy { - char dir[160]; - char file[80]; - struct anim *anim; - short size; - short quality; - int pad; + char dir[160]; // custom directory for index and proxy files + // (defaults to BL_proxy) + + char file[80]; // custom file + struct anim *anim; // custom proxy anim file + + short tc; // time code in use + + short quality; // proxy build quality + short build_size_flags;// size flags (see below) of all proxies + // to build + short build_tc_flags; // time code flags (see below) of all tc indices + // to build } StripProxy; typedef struct Strip { @@ -128,11 +135,12 @@ typedef struct Sequence { int startstill, endstill; int machine, depth; /*machine - the strip channel, depth - the depth in the sequence when dealing with metastrips */ int startdisp, enddisp; /*starting and ending points in the sequence*/ - float sat, pad; + float sat; float mul, handsize; /* is sfra needed anymore? - it looks like its only used in one place */ int sfra; /* starting frame according to the timeline of the scene. */ int anim_preseek; + int streamindex; /* streamindex for movie or sound files with several streams */ Strip *strip; @@ -283,6 +291,19 @@ typedef struct SpeedControlVars { #define SEQ_COLOR_BALANCE_INVERSE_GAMMA 2 #define SEQ_COLOR_BALANCE_INVERSE_LIFT 4 +/* !!! has to be same as IMB_imbuf.h IMB_PROXY_... and IMB_TC_... */ + +#define SEQ_PROXY_IMAGE_SIZE_25 1 +#define SEQ_PROXY_IMAGE_SIZE_50 2 +#define SEQ_PROXY_IMAGE_SIZE_75 4 +#define SEQ_PROXY_IMAGE_SIZE_100 8 + +#define SEQ_PROXY_TC_NONE 0 +#define SEQ_PROXY_TC_RECORD_RUN 1 +#define SEQ_PROXY_TC_FREE_RUN 2 +#define SEQ_PROXY_TC_INTERP_REC_DATE_FREE_RUN 4 +#define SEQ_PROXY_TC_ALL 7 + /* seq->type WATCH IT: SEQ_EFFECT BIT is used to determine if this is an effect strip!!! */ #define SEQ_IMAGE 0 #define SEQ_META 1 diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 67899db5538..66b10bcbf21 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -930,6 +930,7 @@ enum { #define SEQ_PROXY_RENDER_SIZE_25 25 #define SEQ_PROXY_RENDER_SIZE_50 50 #define SEQ_PROXY_RENDER_SIZE_75 75 +#define SEQ_PROXY_RENDER_SIZE_100 99 #define SEQ_PROXY_RENDER_SIZE_FULL 100 diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 476ac325848..b6e2117956d 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -245,6 +245,10 @@ static void rna_Sequence_use_proxy_set(PointerRNA *ptr, int value) seq->flag |= SEQ_USE_PROXY; if(seq->strip->proxy == NULL) { seq->strip->proxy = MEM_callocN(sizeof(struct StripProxy), "StripProxy"); + seq->strip->proxy->quality = 90; + seq->strip->proxy->build_tc_flags = SEQ_PROXY_TC_ALL; + seq->strip->proxy->build_size_flags + = SEQ_PROXY_IMAGE_SIZE_25; } } else { seq->flag ^= SEQ_USE_PROXY; @@ -587,6 +591,34 @@ static void rna_Sequence_filepath_update(Main *bmain, Scene *scene, PointerRNA * rna_Sequence_update(bmain, scene, ptr); } +static int seqproxy_seq_cmp_cb(Sequence *seq, void *arg_pt) +{ + struct { Sequence *seq; void *seq_proxy; } *data= arg_pt; + + if(seq->strip && seq->strip->proxy == data->seq_proxy) { + data->seq= seq; + return -1; /* done so bail out */ + } + return 1; +} + +static void rna_Sequence_tcindex_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + + struct { Sequence *seq; void *seq_proxy; } data; + + data.seq= NULL; + data.seq_proxy = ptr->data; + + seqbase_recursive_apply(&ed->seqbase, seqproxy_seq_cmp_cb, &data); + seq= data.seq; + + reload_sequence_new_file(scene, seq, FALSE); + rna_Sequence_frame_change_update(scene, seq); +} + /* do_versions? */ static float rna_Sequence_opacity_get(PointerRNA *ptr) { @@ -789,6 +821,19 @@ static void rna_def_strip_proxy(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + + static const EnumPropertyItem seq_tc_items[]= { + {SEQ_PROXY_TC_NONE, "NONE", 0, "No TC in use", ""}, + {SEQ_PROXY_TC_RECORD_RUN, "RECORD_RUN", 0, "Record Run", + "use images in the order as they are recorded"}, + {SEQ_PROXY_TC_FREE_RUN, "FREE_RUN", 0, "Free Run", + "use global timestamp written by recording device"}, + {SEQ_PROXY_TC_INTERP_REC_DATE_FREE_RUN, "FREE_RUN_REC_DATE", + 0, "Free Run (rec date)", + "interpolate a global timestamp using the " + "record date and time written by recording " + "device"}, + {0, NULL, 0, NULL, NULL}}; srna = RNA_def_struct(brna, "SequenceProxy", NULL); RNA_def_struct_ui_text(srna, "Sequence Proxy", "Proxy parameters for a sequence strip"); @@ -804,6 +849,46 @@ static void rna_def_strip_proxy(BlenderRNA *brna) RNA_def_property_string_funcs(prop, "rna_Sequence_proxy_filepath_get", "rna_Sequence_proxy_filepath_length", "rna_Sequence_proxy_filepath_set"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "build_25", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_size_flags", SEQ_PROXY_IMAGE_SIZE_25); + RNA_def_property_ui_text(prop, "25%", "Build 25% proxy resolution"); + + prop= RNA_def_property(srna, "build_50", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_size_flags", SEQ_PROXY_IMAGE_SIZE_50); + RNA_def_property_ui_text(prop, "50%", "Build 50% proxy resolution"); + + prop= RNA_def_property(srna, "build_75", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_size_flags", SEQ_PROXY_IMAGE_SIZE_75); + RNA_def_property_ui_text(prop, "75%", "Build 75% proxy resolution"); + + prop= RNA_def_property(srna, "build_100", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_size_flags", SEQ_PROXY_IMAGE_SIZE_100); + RNA_def_property_ui_text(prop, "100%", "Build 100% proxy resolution"); + + prop= RNA_def_property(srna, "build_record_run", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_tc_flags", SEQ_PROXY_TC_RECORD_RUN); + RNA_def_property_ui_text(prop, "Rec Run", "Build record run time code index"); + + prop= RNA_def_property(srna, "build_free_run", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_tc_flags", SEQ_PROXY_TC_FREE_RUN); + RNA_def_property_ui_text(prop, "Free Run", "Build free run time code index"); + + prop= RNA_def_property(srna, "build_free_run_rec_date", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "build_tc_flags", SEQ_PROXY_TC_INTERP_REC_DATE_FREE_RUN); + RNA_def_property_ui_text(prop, "Free Run (Rec Date)", "Build free run time code index using Record Date/Time"); + + prop= RNA_def_property(srna, "quality", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "quality"); + RNA_def_property_ui_text(prop, "Quality", "JPEG Quality of proxies to build"); + RNA_def_property_ui_range(prop, 1, 100, 1, 0); + + prop= RNA_def_property(srna, "timecode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "tc"); + RNA_def_property_enum_items(prop, seq_tc_items); + RNA_def_property_ui_text(prop, "Timecode", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_tcindex_update"); + } static void rna_def_strip_color_balance(BlenderRNA *brna) @@ -1208,7 +1293,7 @@ static void rna_def_proxy(StructRNA *srna) prop= RNA_def_property(srna, "use_proxy", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY); - RNA_def_property_ui_text(prop, "Use Proxy", "Use a preview proxy for this strip"); + RNA_def_property_ui_text(prop, "Use Proxy / Timecode", "Use a preview proxy and/or timecode index for this strip"); RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_proxy_set"); prop= RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE); @@ -1330,6 +1415,12 @@ static void rna_def_movie(BlenderRNA *brna) RNA_def_property_ui_text(prop, "MPEG Preseek", "For MPEG movies, preseek this many frames"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + prop= RNA_def_property(srna, "streamindex", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "streamindex"); + RNA_def_property_range(prop, 0, 20); + RNA_def_property_ui_text(prop, "Streamindex", "For files with several movie streams, use the stream with the given index"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update_reopen_files"); + prop= RNA_def_property(srna, "elements", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "strip->stripdata", NULL); RNA_def_property_struct_type(prop, "SequenceElement"); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index b79d5395eec..0166baa8443 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1674,6 +1674,7 @@ static void rna_def_space_sequencer(BlenderRNA *brna) {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", 0, "Proxy size 25%", ""}, {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", 0, "Proxy size 50%", ""}, {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", 0, "Proxy size 75%", ""}, + {SEQ_PROXY_RENDER_SIZE_100, "PROXY_100", 0, "Proxy size 100%", ""}, {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", 0, "No proxy, full render", ""}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index e1b8cefca4b..5bdf1ec2787 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -300,6 +300,8 @@ int WM_jobs_test(struct wmWindowManager *wm, void *owner); float WM_jobs_progress(struct wmWindowManager *wm, void *owner); char *WM_jobs_name(struct wmWindowManager *wm, void *owner); +int WM_jobs_is_running(struct wmJob *); +void* WM_jobs_get_customdata(struct wmJob *); void WM_jobs_customdata(struct wmJob *, void *customdata, void (*free)(void *)); void WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote); void WM_jobs_callbacks(struct wmJob *, diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index 4ab4eebdfe1..f4e0b4ef06c 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -202,6 +202,20 @@ char *WM_jobs_name(wmWindowManager *wm, void *owner) return NULL; } +int WM_jobs_is_running(wmJob *steve) +{ + return steve->running; +} + +void* WM_jobs_get_customdata(wmJob * steve) +{ + if (!steve->customdata) { + return steve->run_customdata; + } else { + return steve->customdata; + } +} + void WM_jobs_customdata(wmJob *steve, void *customdata, void (*free)(void *)) { /* pending job? just free */ -- cgit v1.2.3 From ca79dee61f11227be0ed4cc5b1241fa748124da0 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Sun, 28 Aug 2011 18:30:18 +0000 Subject: armature object animation bug fix. --- source/blender/collada/AnimationExporter.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index bbd6fef803f..c6f108306be 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -71,14 +71,15 @@ void AnimationExporter::operator() (Object *ob) bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); - - transformName = fcu->rna_path; } - else - transformName = extract_transform_name( fcu->rna_path ); while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); + //for armature animations as objects + if ( ob->type == OB_ARMATURE ) + transformName = fcu->rna_path; + else + transformName = extract_transform_name( fcu->rna_path ); + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) -- cgit v1.2.3 From 28feca36d7e0a5f15d9c03f3781ba34cca8c4670 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 28 Aug 2011 18:54:02 +0000 Subject: Missed notifier was found when looking at #28393 --- source/blender/editors/space_buttons/space_buttons.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index e2d80e9e775..ef927fd69fc 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -269,6 +269,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) buttons_area_redraw(sa, BCONTEXT_DATA); /* autotexpace flag */ break; case ND_POSE: + buttons_area_redraw(sa, BCONTEXT_DATA); case ND_BONE_ACTIVE: case ND_BONE_SELECT: buttons_area_redraw(sa, BCONTEXT_BONE); -- cgit v1.2.3 From 80459d97c7b50cfe8f630e2e20f5ccc55f854c23 Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 28 Aug 2011 19:58:33 +0000 Subject: == Sequencer / proxies == fixed crash pointed out by blendervse: 100%-proxy could lead to a segfault under certain conditions. --- source/blender/imbuf/intern/indexer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c index f624694b324..5a819cef652 100644 --- a/source/blender/imbuf/intern/indexer.c +++ b/source/blender/imbuf/intern/indexer.c @@ -573,11 +573,15 @@ static int add_to_proxy_output_ffmpeg( ctx->frame->data, ctx->frame->linesize); } - ctx->frame->pts = ctx->cfra++; + frame = ctx->sws_ctx ? (frame ? ctx->frame : 0) : frame; + + if (frame) { + frame->pts = ctx->cfra++; + } outsize = avcodec_encode_video( ctx->c, ctx->video_buffer, ctx->video_buffersize, - ctx->sws_ctx ? (frame ? ctx->frame : 0) : frame); + frame); if (outsize < 0) { fprintf(stderr, "Error encoding proxy frame %d for '%s'\n", -- cgit v1.2.3 From 3dc817840b21a06f161b8c672e61e0a0000adc8f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 21:13:03 +0000 Subject: fix [#28401] OpenGL render option disables border clipping --- source/blender/editors/space_view3d/view3d_draw.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 80da75bc603..98768e369cb 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2272,6 +2272,7 @@ static void view3d_main_area_setup_view(Scene *scene, View3D *v3d, ARegion *ar, void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, int winy, float viewmat[][4], float winmat[][4]) { + RegionView3D *rv3d= ar->regiondata; Base *base; float backcol[3]; int bwinx, bwiny; @@ -2320,6 +2321,9 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, /* setup view matrices */ view3d_main_area_setup_view(scene, v3d, ar, viewmat, winmat); + if(rv3d->rflag & RV3D_CLIPPING) + view3d_draw_clipping(rv3d); + /* set zbuffer */ if(v3d->drawtype > OB_WIRE) { v3d->zbuf= TRUE; @@ -2328,6 +2332,9 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, else v3d->zbuf= FALSE; + if(rv3d->rflag & RV3D_CLIPPING) + view3d_set_clipping(rv3d); + /* draw set first */ if(scene->set) { Scene *sce_iter; @@ -2363,6 +2370,9 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, if(v3d->afterdraw_xray.first) view3d_draw_xray(scene, ar, v3d, 1); // clears zbuffer if it is used! if(v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(scene, ar, v3d, 1); + if(rv3d->rflag & RV3D_CLIPPING) + view3d_clr_clipping(); + /* cleanup */ if(v3d->zbuf) { v3d->zbuf= FALSE; -- cgit v1.2.3 From c31b776dc9a914f0fcf1b988edb448f12ed4eb64 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sun, 28 Aug 2011 21:48:52 +0000 Subject: SVN maintenance. --- source/blender/imbuf/intern/IMB_indexer.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/IMB_indexer.h b/source/blender/imbuf/intern/IMB_indexer.h index ae3b48f76c7..f55420fd106 100644 --- a/source/blender/imbuf/intern/IMB_indexer.h +++ b/source/blender/imbuf/intern/IMB_indexer.h @@ -1,7 +1,5 @@ /** - * IMB_indexer.h - * - * $Id: IMB_indexer.h + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From 0e01fa4863a301f9776b8a6b5459493fc8830008 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 28 Aug 2011 23:24:34 +0000 Subject: patch [#28355] Better Environment Map scripting from Tom Edwards (artfunkel), with minor edits. This patch makes the following improvements to environment map scripting: * Adds a "is_valid" RNA property to envmaps. True if the map is ready for use, False if it needs rendering. * Adds a "clear" RNA function to envmaps. Deletes any envmap image data. * Adds a "save" RNA function to envmaps. Writes the envmap to disc with a configurable layout. (Defaults to the current hard-coded layout.) * Updates bpy.ops.texture.envmap_save with configurable layout support as above. These changes, particularly configurable layouts, make exporting envmaps to other software much easier. --- source/blender/editors/render/render_shading.c | 69 ++++------------ source/blender/makesrna/intern/CMakeLists.txt | 1 + source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_internal.h | 1 + source/blender/makesrna/intern/rna_texture.c | 7 ++ source/blender/makesrna/intern/rna_texture_api.c | 95 ++++++++++++++++++++++ source/blender/render/extern/include/RE_pipeline.h | 4 + source/blender/render/intern/source/pipeline.c | 57 +++++++++++++ 8 files changed, 183 insertions(+), 53 deletions(-) create mode 100644 source/blender/makesrna/intern/rna_texture_api.c (limited to 'source/blender') diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index fbdcf7ba9b3..1b24d660411 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -85,6 +85,8 @@ #include "UI_interface.h" +#include "RE_pipeline.h" + #include "render_intern.h" // own include /********************** material slot operators *********************/ @@ -661,60 +663,21 @@ void TEXTURE_OT_slot_move(wmOperatorType *ot) /********************** environment map operators *********************/ -static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *str, int imtype) +static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *path, int imtype) { - ImBuf *ibuf=NULL; - int dx; - int retval; - int relative= (RNA_struct_find_property(op->ptr, "relative_path") && RNA_boolean_get(op->ptr, "relative_path")); - - if(env->cube[1]==NULL) { - BKE_report(op->reports, RPT_ERROR, "There is no generated environment map available to save"); - return OPERATOR_CANCELLED; - } - - dx= env->cube[1]->x; - - if (env->type == ENV_CUBE) { - ibuf = IMB_allocImBuf(3*dx, 2*dx, 24, IB_rectfloat); - - IMB_rectcpy(ibuf, env->cube[0], 0, 0, 0, 0, dx, dx); - IMB_rectcpy(ibuf, env->cube[1], dx, 0, 0, 0, dx, dx); - IMB_rectcpy(ibuf, env->cube[2], 2*dx, 0, 0, 0, dx, dx); - IMB_rectcpy(ibuf, env->cube[3], 0, dx, 0, 0, dx, dx); - IMB_rectcpy(ibuf, env->cube[4], dx, dx, 0, 0, dx, dx); - IMB_rectcpy(ibuf, env->cube[5], 2*dx, dx, 0, 0, dx, dx); - } - else if (env->type == ENV_PLANE) { - ibuf = IMB_allocImBuf(dx, dx, 24, IB_rectfloat); - IMB_rectcpy(ibuf, env->cube[1], 0, 0, 0, 0, dx, dx); + float layout[12]; + if ( RNA_struct_find_property(op->ptr, "layout") ) + RNA_float_get_array(op->ptr, "layout",layout); + else + memcpy(layout, default_envmap_layout, sizeof(layout)); + + if (RE_WriteEnvmapResult(op->reports, scene, env, path, imtype, layout)) { + return OPERATOR_FINISHED; } else { - BKE_report(op->reports, RPT_ERROR, "Invalid environment map type"); return OPERATOR_CANCELLED; } - - if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) - ibuf->profile = IB_PROFILE_LINEAR_RGB; - - /* to save, we first get absolute path */ - BLI_path_abs(str, G.main->name); - - if (BKE_write_ibuf(ibuf, str, imtype, scene->r.subimtype, scene->r.quality)) { - retval = OPERATOR_FINISHED; - } - else { - BKE_reportf(op->reports, RPT_ERROR, "Error saving environment map to %s.", str); - retval = OPERATOR_CANCELLED; - } - /* in case we were saving with relative paths, change back again */ - if(relative) - BLI_path_rel(str, G.main->name); - - IMB_freeImBuf(ibuf); - ibuf = NULL; - - return retval; + } static int envmap_save_exec(bContext *C, wmOperator *op) @@ -753,7 +716,6 @@ static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event return envmap_save_exec(C, op); //RNA_enum_set(op->ptr, "file_type", scene->r.imtype); - RNA_string_set(op->ptr, "filepath", G.main->name); WM_event_add_fileselect(C, op); @@ -776,6 +738,7 @@ static int envmap_save_poll(bContext *C) void TEXTURE_OT_envmap_save(wmOperatorType *ot) { + PropertyRNA *prop; /* identifiers */ ot->name= "Save Environment Map"; ot->idname= "TEXTURE_OT_envmap_save"; @@ -790,8 +753,10 @@ void TEXTURE_OT_envmap_save(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER; /* no undo since this doesnt modify the env-map */ /* properties */ - //RNA_def_enum(ot->srna, "file_type", image_file_type_items, R_PNG, "File Type", "File type to save image as."); - WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); + prop= RNA_def_float_array(ot->srna, "layout", 12, default_envmap_layout, 0.0f, 0.0f, "File layout", "Flat array describing the X,Y position of each cube face in the output image, where 1 is the size of a face. Order is [+Z -Z +Y -X -Y +X]. Use -1 to skip a face.", 0.0f, 0.0f); + RNA_def_property_flag(prop, PROP_HIDDEN); + + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH); } static int envmap_clear_exec(bContext *C, wmOperator *UNUSED(op)) diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index cc7bcf04716..6b042a987e3 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -100,6 +100,7 @@ set(APISRC rna_main_api.c rna_material_api.c rna_mesh_api.c + rna_texture_api.c rna_object_api.c rna_pose_api.c rna_scene_api.c diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index b95bd2b2087..d0dea41b384 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2417,7 +2417,7 @@ typedef struct RNAProcessItem { static RNAProcessItem PROCESS_ITEMS[]= { {"rna_rna.c", NULL, RNA_def_rna}, {"rna_ID.c", NULL, RNA_def_ID}, - {"rna_texture.c", NULL, RNA_def_texture}, + {"rna_texture.c", "rna_texture_api.c", RNA_def_texture}, {"rna_action.c", "rna_action_api.c", RNA_def_action}, {"rna_animation.c", "rna_animation_api.c", RNA_def_animation}, {"rna_animviz.c", NULL, RNA_def_animviz}, diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index c0ae7b02b1a..955e56193c6 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -260,6 +260,7 @@ void RNA_api_wm(struct StructRNA *srna); void RNA_api_sensor(struct StructRNA *srna); void RNA_api_controller(struct StructRNA *srna); void RNA_api_actuator(struct StructRNA *srna); +void RNA_api_environment_map(struct StructRNA *srna); /* main collection functions */ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 0ecc41d80d8..a1ce77b061d 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -664,6 +664,13 @@ static void rna_def_environment_map(BlenderRNA *brna) RNA_def_property_range(prop, 0, 5); RNA_def_property_ui_text(prop, "Depth", "Number of times a map will be rendered recursively (mirror effects.)"); RNA_def_property_update(prop, 0, "rna_Texture_update"); + + prop= RNA_def_property(srna, "is_valid", PROP_BOOLEAN, 0); + RNA_def_property_boolean_sdna(prop, NULL, "ok", 2); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Validity", "True if this map is ready for use, False if it needs rendering."); + + RNA_api_environment_map(srna); } static EnumPropertyItem prop_noise_basis_items[] = { diff --git a/source/blender/makesrna/intern/rna_texture_api.c b/source/blender/makesrna/intern/rna_texture_api.c new file mode 100644 index 00000000000..f83caca3944 --- /dev/null +++ b/source/blender/makesrna/intern/rna_texture_api.c @@ -0,0 +1,95 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Tom Edwards + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/makesrna/intern/rna_texture_api.c + * \ingroup RNA + */ + + +#include +#include +#include + + +#include "RNA_define.h" +#include "BKE_utildefines.h" + +#ifdef RNA_RUNTIME + +#include "IMB_imbuf.h" +#include "IMB_imbuf_types.h" +#include "DNA_scene_types.h" +#include "BKE_context.h" +#include "BKE_global.h" +#include "RE_pipeline.h" + +void save_envmap(struct EnvMap *env, bContext *C, ReportList *reports, const char* filepath, struct Scene *scene, float layout[12]) +{ + if (scene == NULL) { + scene = CTX_data_scene(C); + } + + RE_WriteEnvmapResult(reports, scene, env, filepath, scene->r.imtype, layout); +} + +void clear_envmap(struct EnvMap *env, bContext *C) +{ + Main *bmain = CTX_data_main(C); + Tex *tex; + + BKE_free_envmapdata(env); + + for (tex=bmain->tex.first; tex; tex=tex->id.next) + if (tex->env == env) { + WM_event_add_notifier(C, NC_TEXTURE|NA_EDITED, tex); + break; + } +} + +#else + +void RNA_api_environment_map(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + static const float default_layout[] = { 0,0, 1,0, 2,0, 0,1, 1,1, 2,1 }; + + func= RNA_def_function(srna, "clear", "clear_envmap"); + RNA_def_function_ui_description(func, "Discard the environment map and free it from memory."); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + + + func= RNA_def_function(srna,"save", "save_envmap"); + RNA_def_function_ui_description(func, "Save the environment map to disc using the scene render settings."); + RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); + + parm= RNA_def_string_file_name(func,"filepath","",FILE_MAX,"File path","Location of the output file"); + RNA_def_property_flag(parm, PROP_REQUIRED); + + RNA_def_pointer(func, "scene", "Scene", "", "Overrides the scene from which image parameters are taken."); + + parm = RNA_def_float_array(func, "layout", 12, default_layout, 0.0f, 0.0f, "File layout", "Flat array describing the X,Y position of each cube face in the output image, where 1 is the size of a face. Order is [+Z -Z +Y -X -Y +X]. Use -1 to skip a face.", 0.0f, 0.0f); +} + +#endif diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index d9ed83a00b2..0736bed4faf 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -51,6 +51,7 @@ struct ReportList; struct ReportList; struct Scene; struct SceneRenderLayer; +struct EnvMap; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* this include is what is exposed of render to outside world */ @@ -230,6 +231,9 @@ void RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode); void RE_WriteRenderResult(RenderResult *rr, const char *filename, int compress); struct RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty); +extern const float default_envmap_layout[]; +int RE_WriteEnvmapResult(struct ReportList *reports, struct Scene *scene, struct EnvMap *env, const char *relpath, int imtype, float layout[12]); + /* do a full sample buffer compo */ void RE_MergeFullSample(struct Render *re, struct Main *bmain, struct Scene *sce, struct bNodeTree *ntree); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index b9006b390ab..eff8402d8b5 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -3463,3 +3463,60 @@ static int external_render_3d(Render *re, int do_all) return 1; } +const float default_envmap_layout[] = { 0,0, 1,0, 2,0, 0,1, 1,1, 2,1 }; + +int RE_WriteEnvmapResult(struct ReportList *reports, Scene *scene, EnvMap *env, const char *relpath, int imtype, float layout[12]) +{ + ImBuf *ibuf=NULL; + int ok; + int dx; + int maxX=0,maxY=0,i=0; + char filepath[FILE_MAX]; + + if(env->cube[1]==NULL) { + BKE_report(reports, RPT_ERROR, "There is no generated environment map available to save"); + return 0; + } + + dx= env->cube[1]->x; + + if (env->type == ENV_CUBE) { + for (i=0; i < 12; i+=2) { + maxX = MAX2(maxX,layout[i] + 1); + maxY = MAX2(maxY,layout[i+1] + 1); + } + + ibuf = IMB_allocImBuf(maxX*dx, maxY*dx, 24, IB_rectfloat); + + for (i=0; i < 12; i+=2) + if (layout[i] > -1 && layout[i+1] > -1) + IMB_rectcpy(ibuf, env->cube[i/2], layout[i]*dx, layout[i+1]*dx, 0, 0, dx, dx); + } + else if (env->type == ENV_PLANE) { + ibuf = IMB_allocImBuf(dx, dx, 24, IB_rectfloat); + IMB_rectcpy(ibuf, env->cube[1], 0, 0, 0, 0, dx, dx); + } + else { + BKE_report(reports, RPT_ERROR, "Invalid environment map type"); + return 0; + } + + if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) + ibuf->profile = IB_PROFILE_LINEAR_RGB; + + /* to save, we first get absolute path */ + BLI_strncpy(filepath, relpath, sizeof(filepath)); + BLI_path_abs(filepath, G.main->name); + + ok= BKE_write_ibuf(ibuf, filepath, imtype, scene->r.subimtype, scene->r.quality); + + IMB_freeImBuf(ibuf); + + if(ok) { + return TRUE; + } + else { + BKE_report(reports, RPT_ERROR, "Error writing environment map."); + return FALSE; + } +} -- cgit v1.2.3 From f71223400929b55720251eabd46732397f34a7b1 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sun, 28 Aug 2011 23:44:43 +0000 Subject: SVN maintenance. --- source/blender/makesrna/intern/rna_texture_api.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_texture_api.c b/source/blender/makesrna/intern/rna_texture_api.c index f83caca3944..8d4b73f1f0c 100644 --- a/source/blender/makesrna/intern/rna_texture_api.c +++ b/source/blender/makesrna/intern/rna_texture_api.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From c1eb0c3783a8a58b8b8f0e380cd931ef02cb69da Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 29 Aug 2011 01:00:14 +0000 Subject: clear some warnings with new proxy code. --- source/blender/imbuf/intern/indexer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c index 5a819cef652..3528318ba81 100644 --- a/source/blender/imbuf/intern/indexer.c +++ b/source/blender/imbuf/intern/indexer.c @@ -51,8 +51,11 @@ static char temp_ext [] = "_part"; static int proxy_sizes[] = { IMB_PROXY_25, IMB_PROXY_50, IMB_PROXY_75, IMB_PROXY_100 }; static float proxy_fac[] = { 0.25, 0.50, 0.75, 1.00 }; + +#ifdef WITH_FFMPEG static int tc_types[] = { IMB_TC_RECORD_RUN, IMB_TC_FREE_RUN, IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN }; +#endif #define INDEX_FILE_VERSION 1 @@ -398,7 +401,7 @@ static void get_tc_filename(struct anim * anim, IMB_Timecode_Type tc, { char index_dir[FILE_MAXDIR]; int i = IMB_timecode_to_array_index(tc); - char * index_names[] = { + const char * index_names[] = { "record_run%s.blen_tc", "free_run%s.blen_tc", "interp_free_run%s.blen_tc" }; @@ -928,7 +931,7 @@ static AviMovie * alloc_proxy_output_avi( } static void index_rebuild_fallback(struct anim * anim, - IMB_Timecode_Type tcs_in_use, + IMB_Timecode_Type UNUSED(tcs_in_use), IMB_Proxy_Size proxy_sizes_in_use, int quality, short *stop, short *do_update, -- cgit v1.2.3 From 5bac37f6d4d2e8d584ae0ec6bafd2808c47fbb25 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 29 Aug 2011 15:01:55 +0000 Subject: * Reverting Titlecard commit r37537 * Reverting update recent files commit r37155 * Turning reference counts into unsigned ints * Minor things --- source/blender/blenfont/BLF_api.h | 1 - source/blender/blenfont/intern/blf.c | 1 - source/blender/blenkernel/intern/seqeffects.c | 135 --------------------- source/blender/blenkernel/intern/sequencer.c | 3 +- source/blender/blenkernel/intern/sound.c | 1 - source/blender/blenloader/intern/writefile.c | 3 - source/blender/editors/interface/interface_style.c | 10 -- .../editors/space_sequencer/sequencer_draw.c | 1 - .../editors/space_sequencer/sequencer_edit.c | 3 +- source/blender/makesdna/DNA_sequence_types.h | 11 +- source/blender/makesdna/DNA_userdef_types.h | 1 - source/blender/makesrna/RNA_access.h | 1 - source/blender/makesrna/intern/rna_scene.c | 17 +-- source/blender/makesrna/intern/rna_sequencer.c | 35 ------ source/blender/makesrna/intern/rna_sound.c | 2 +- source/blender/makesrna/intern/rna_userdef.c | 6 +- source/blender/windowmanager/intern/wm_files.c | 7 +- 17 files changed, 15 insertions(+), 223 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h index fba09ee9826..57f8c83eda6 100644 --- a/source/blender/blenfont/BLF_api.h +++ b/source/blender/blenfont/BLF_api.h @@ -215,6 +215,5 @@ void BLF_dir_free(char **dirs, int count); // XXX, bad design extern int blf_mono_font; extern int blf_mono_font_render; // dont mess drawing with render threads. -extern int blf_default_font_render; // dont mess drawing with render threads. #endif /* BLF_API_H */ diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c index 3bfb7c22082..c0e62b1c0c7 100644 --- a/source/blender/blenfont/intern/blf.c +++ b/source/blender/blenfont/intern/blf.c @@ -74,7 +74,6 @@ static int global_font_dpi= 72; // XXX, should these be made into global_font_'s too? int blf_mono_font= -1; int blf_mono_font_render= -1; -int blf_default_font_render= -1; static FontBLF *BLF_get(int fontid) { diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 7e760319e70..34748c64efb 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -40,11 +40,8 @@ #include "BLI_dynlib.h" #include "BLI_math.h" /* windows needs for M_PI */ -#include "BLI_string.h" #include "BLI_utildefines.h" -#include "BLF_api.h" - #include "DNA_scene_types.h" #include "DNA_sequence_types.h" #include "DNA_anim_types.h" @@ -2807,130 +2804,6 @@ static struct ImBuf * do_solid_color( return out; } -/* ********************************************************************** - TITLE CARD - ********************************************************************** */ - -static void init_title_card(Sequence *seq) -{ - TitleCardVars *tv; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct TitleCardVars), "titlecard"); - - tv = (TitleCardVars *)seq->effectdata; - - BLI_strncpy(tv->titlestr, "Title goes here", sizeof(tv->titlestr)); - tv->fgcol[0] = tv->fgcol[1] = tv->fgcol[2] = 1.0f; /* white */ -} - -static int num_inputs_titlecard(void) -{ - return 0; -} - -static void free_title_card(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = NULL; -} - -static void copy_title_card(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static int early_out_titlecard(struct Sequence *UNUSED(seq), - float UNUSED(facf0), float UNUSED(facf1)) -{ - return -1; -} - -static struct ImBuf * do_title_card( - SeqRenderData context, Sequence *seq, float cfra, - float facf0, float facf1, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3) -{ - TitleCardVars *tv = (TitleCardVars *)seq->effectdata; - - SolidColorVars cv = {{0}}; - struct ImBuf *out; - - int titleFontId = blf_default_font_render; // XXX: bad design! - - int width = context.rectx; - int height = context.recty; - float w, h; - int x, y; - - /* use fake solid-color vars to get backdrop (and an out buffer at the same time) */ - VECCOPY(cv.col, tv->bgcol); - seq->effectdata = &cv; - - out = do_solid_color(context, seq, cfra, - facf0, facf1, - ibuf1, ibuf2, ibuf3); - - seq->effectdata = tv; - - /* draw text */ - /* FIXME: imbuf out->rect is unsigned int NOT unsigned char, but without passing this pointer - * this drawing code doesn't work. This cast really masks some potential bugs though... - */ - BLF_buffer(titleFontId, out->rect_float, (unsigned char *)out->rect, width, height, 4); - - if (tv->titlestr[0]) { - /* automatic scale - these formulae have been derived experimentally: - * - base size is based on 40pt at 960 width - * - each 26 characters, size jumps down one step, - * but this decrease needs to be exponential to fit everything - */ - float lfac = strlen(tv->titlestr) / 26.0f; - float size = (width * 0.06f) * (1.0f - 0.1f*lfac*lfac); - - BLF_size(titleFontId, size, 72); - BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0); - - BLF_width_and_height(titleFontId, tv->titlestr, &w, &h); - x = width/2.0f - w/2.0f; - if (tv->subtitle[0]) - y = height/2.0f + h; - else - y = height/2.0f; - - BLF_position(titleFontId, x, y, 0.0); - BLF_draw_buffer(titleFontId, tv->titlestr); - } - - if (tv->subtitle[0]) { - /* automatic scale - these formulae have been derived experimentally (as above): - * - base size is based on 20pt at 960 width - * - size steps aren't quite as refined here. Need a slower-growing curve! - */ - float lfac = strlen(tv->subtitle) / 36.0f; - float size = (width * 0.03f) * (1.0f - 0.1f*lfac*lfac*log(lfac)); - - BLF_size(titleFontId, size, 72); - BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0); - - BLF_width_and_height(titleFontId, tv->subtitle, &w, &h); - x = width/2.0f - w/2.0f; - if (tv->titlestr[0]) - y = height/2.0f - h; - else - y = height/2.0f; - - BLF_position(titleFontId, x, y, 0.0); - BLF_draw_buffer(titleFontId, tv->subtitle); - } - - /* cleanup the buffer. */ - BLF_buffer(UIFONT_DEFAULT, NULL, NULL, 0, 0, 0); - - return out; -} - /* ********************************************************************** MULTICAM ********************************************************************** */ @@ -3470,14 +3343,6 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) rval.early_out = early_out_adjustment; rval.execute = do_adjustment; break; - case SEQ_TITLECARD: - rval.init = init_title_card; - rval.num_inputs = num_inputs_titlecard; - rval.early_out = early_out_titlecard; - rval.free = free_title_card; - rval.copy = copy_title_card; - rval.execute = do_title_card; - break; } return rval; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index bfbaa223a99..023a10b3103 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -903,7 +903,6 @@ static const char *give_seqname_by_type(int type) case SEQ_MULTICAM: return "Multicam"; case SEQ_ADJUSTMENT: return "Adjustment"; case SEQ_SPEED: return "Speed"; - case SEQ_TITLECARD: return "Title Card"; default: return NULL; } @@ -3029,7 +3028,7 @@ Sequence *seq_foreground_frame_get(Scene *scene, int frame) if(seq->flag & SEQ_MUTE || seq->startdisp > frame || seq->enddisp <= frame) continue; /* only use elements you can see - not */ - if (ELEM6(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR, SEQ_TITLECARD)) { + if (ELEM5(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR)) { if (seq->machine > best_machine) { best_seq = seq; best_machine = seq->machine; diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 842923e63d0..abead8d43dd 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -24,7 +24,6 @@ #include "DNA_sound_types.h" #include "DNA_speaker_types.h" -#define WITH_AUDASPACE #ifdef WITH_AUDASPACE # include "AUD_C-API.h" #endif diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index ed18945ea86..824b0410bd4 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1919,9 +1919,6 @@ static void write_scenes(WriteData *wd, ListBase *scebase) case SEQ_TRANSFORM: writestruct(wd, DATA, "TransformVars", 1, seq->effectdata); break; - case SEQ_TITLECARD: - writestruct(wd, DATA, "TitleCardVars", 1, seq->effectdata); - break; } } diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 704b9ae3a80..8d4b4209120 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -295,7 +295,6 @@ void uiStyleInit(void) { uiFont *font= U.uifonts.first; uiStyle *style= U.uistyles.first; - int defaultFontId = -1; /* recover from uninitialized dpi */ if(U.dpi == 0) @@ -315,7 +314,6 @@ void uiStyleInit(void) if(font->uifont_id==UIFONT_DEFAULT) { font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); - defaultFontId = font->blf_id; } else { font->blf_id= BLF_load(font->filename); @@ -353,14 +351,6 @@ void uiStyleInit(void) blf_mono_font_render= BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size); BLF_size(blf_mono_font_render, 12, 72); - - /* also another copy of default for rendering else we get threading problems */ - if (defaultFontId != -1) { - if (blf_default_font_render == -1) - blf_default_font_render= BLF_load_mem_unique("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size); - - BLF_size(blf_default_font_render, 12, 72); - } } void uiStyleFontSet(uiFontStyle *fs) diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 352e9f43648..a7b2250e37d 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -127,7 +127,6 @@ static void get_seq_color3ubv(Scene *curscene, Sequence *seq, unsigned char col[ case SEQ_GLOW: case SEQ_MULTICAM: case SEQ_ADJUSTMENT: - case SEQ_TITLECARD: UI_GetThemeColor3ubv(TH_SEQ_EFFECT, col); /* slightly offset hue to distinguish different effects */ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 24f2f5e7b4a..876280d5b0f 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -94,10 +94,9 @@ EnumPropertyItem sequencer_prop_effect_types[] = { {SEQ_GLOW, "GLOW", 0, "Glow", "Glow effect strip type"}, {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"}, {SEQ_COLOR, "COLOR", 0, "Color", "Color effect strip type"}, - {SEQ_SPEED, "SPEED", 0, "Speed", ""}, + {SEQ_SPEED, "SPEED", 0, "Speed", "Color effect strip type"}, {SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""}, {SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""}, - {SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""}, {0, NULL, 0, NULL, NULL} }; diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 359ef8449e9..93cbb643334 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -227,14 +227,6 @@ typedef struct SolidColorVars { float pad; } SolidColorVars; -typedef struct TitleCardVars { - char titlestr[64]; - char subtitle[128]; - - float fgcol[3]; - float bgcol[3]; -} TitleCardVars; - typedef struct SpeedControlVars { float * frameMap; float globalSpeed; @@ -328,8 +320,7 @@ typedef struct SpeedControlVars { #define SEQ_SPEED 29 #define SEQ_MULTICAM 30 #define SEQ_ADJUSTMENT 31 -#define SEQ_TITLECARD 40 -#define SEQ_EFFECT_MAX 40 +#define SEQ_EFFECT_MAX 31 #define STRIPELEM_FAILED 0 #define STRIPELEM_OK 1 diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index e211a7c33c1..43dc532d4f6 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -442,7 +442,6 @@ extern UserDef U; /* from blenkernel blender.c */ #define USER_NONEGFRAMES (1 << 24) #define USER_TXT_TABSTOSPACES_DISABLE (1 << 25) #define USER_TOOLTIPS_PYTHON (1 << 26) -#define USER_NO_RECENTLOAD_UPDATE (1 << 27) /* helper macro for checking frame clamping */ #define FRAMENUMBER_MIN_CLAMP(cfra) \ diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index b5b178c6c01..259c7de5cd4 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -536,7 +536,6 @@ extern StructRNA RNA_ThemeWidgetColors; extern StructRNA RNA_ThemeWidgetStateColors; extern StructRNA RNA_TimelineMarker; extern StructRNA RNA_Timer; -extern StructRNA RNA_TitleCardSequence; extern StructRNA RNA_ToolSettings; extern StructRNA RNA_TouchSensor; extern StructRNA RNA_TrackToConstraint; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 2a558da1cb0..8cf5e3d14ec 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2500,26 +2500,27 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Bitrate", "Audio bitrate(kb/s)"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); - prop= RNA_def_property(srna, "ffmpeg_audio_mixrate", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_mixrate"); - RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); - RNA_def_property_range(prop, 8000, 192000); - RNA_def_property_ui_text(prop, "Samplerate", "Audio samplerate(samples/s)"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); - prop= RNA_def_property(srna, "ffmpeg_audio_volume", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "ffcodecdata.audio_volume"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Volume", "Audio volume"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); +#endif + + // the following two "ffmpeg" settings are general audio settings + prop= RNA_def_property(srna, "ffmpeg_audio_mixrate", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_mixrate"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_range(prop, 8000, 192000); + RNA_def_property_ui_text(prop, "Samplerate", "Audio samplerate(samples/s)"); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "ffmpeg_audio_channels", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "ffcodecdata.audio_channels"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_enum_items(prop, audio_channel_items); RNA_def_property_ui_text(prop, "Audio Channels", "Sets the audio channel count"); -#endif prop= RNA_def_property(srna, "fps", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "frs_sec"); diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 6da4cddf1c1..c1f8bdc315d 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -409,8 +409,6 @@ static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) return &RNA_ColorSequence; case SEQ_SPEED: return &RNA_SpeedControlSequence; - case SEQ_TITLECARD: - return &RNA_TitleCardSequence; default: return &RNA_Sequence; } @@ -889,7 +887,6 @@ static void rna_def_sequence(BlenderRNA *brna) {SEQ_SPEED, "SPEED", 0, "Speed", ""}, {SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""}, {SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""}, - {SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""}, {0, NULL, 0, NULL, NULL}}; static const EnumPropertyItem blend_mode_items[]= { @@ -1683,37 +1680,6 @@ static void rna_def_speed_control(BlenderRNA *brna) RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } -static void rna_def_title_card(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "TitleCardSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Title Card Sequence", "Sequence strip creating an image displaying some text on a plain color background"); - RNA_def_struct_sdna_from(srna, "TitleCardVars", "effectdata"); - - /* texts */ - prop= RNA_def_property(srna, "title", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "titlestr"); - RNA_def_property_ui_text(prop, "Title", "Text for main heading"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "subtitle", PROP_STRING, PROP_NONE); - RNA_def_property_ui_text(prop, "Subtitle", "Additional text to be shown under the main heading"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* colors */ - prop= RNA_def_property(srna, "color_background", PROP_FLOAT, PROP_COLOR); - RNA_def_property_float_sdna(prop, NULL, "bgcol"); - RNA_def_property_ui_text(prop, "Background Color", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "color_foreground", PROP_FLOAT, PROP_COLOR); - RNA_def_property_float_sdna(prop, NULL, "fgcol"); - RNA_def_property_ui_text(prop, "Text Color", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - void RNA_def_sequencer(BlenderRNA *brna) { rna_def_strip_element(brna); @@ -1739,7 +1705,6 @@ void RNA_def_sequencer(BlenderRNA *brna) rna_def_transform(brna); rna_def_solid_color(brna); rna_def_speed_control(brna); - rna_def_title_card(brna); } #endif diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c index b224b55c20c..3a18fb0e7c0 100644 --- a/source/blender/makesrna/intern/rna_sound.c +++ b/source/blender/makesrna/intern/rna_sound.c @@ -96,7 +96,7 @@ static void rna_def_sound(BlenderRNA *brna) prop= RNA_def_property(srna, "mono", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SOUND_FLAGS_MONO); - RNA_def_property_ui_text(prop, "Mono", "If the file contains multiple audio channels they are mixdown to a signle one."); + RNA_def_property_ui_text(prop, "Mono", "If the file contains multiple audio channels they are rendered to a single one."); RNA_def_property_update(prop, 0, "rna_Sound_update"); } diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index a67cd40e62a..7d0502f1be9 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2950,11 +2950,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) prop= RNA_def_property(srna, "recent_files", PROP_INT, PROP_NONE); RNA_def_property_range(prop, 0, 30); RNA_def_property_ui_text(prop, "Recent Files", "Maximum number of recently opened files to remember"); - - prop= RNA_def_property(srna, "use_update_recent_files_on_load", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_NO_RECENTLOAD_UPDATE); - RNA_def_property_ui_text(prop, "Update Recent on Load", "When enabled, opening files will update the recent files list. Otherwise, updates only occur when saving"); - + prop= RNA_def_property(srna, "use_save_preview_images", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_SAVE_PREVIEWS); RNA_def_property_ui_text(prop, "Save Preview Images", "Enables automatic saving of preview images in the .blend file"); diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index a857577fcc8..6b3a574b6b6 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -387,12 +387,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports) if (retval != BKE_READ_FILE_FAIL) { G.relbase_valid = 1; - - /* dont write recent file list if: - * 1) assuming automated tasks with background - * 2) user preference to not do this is enabled (i.e. developer testing mode) - */ - if (!G.background && !(U.flag & USER_NO_RECENTLOAD_UPDATE)) + if(!G.background) /* assume automated tasks with background, dont write recent file list */ write_history(); } -- cgit v1.2.3 From 88a538048bf7671db6a51fa2791ed1c87fa88611 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 29 Aug 2011 16:07:44 +0000 Subject: Fix #28347: VBO's highlights wrong faces when Mirror modifier is in use Added callback to drawMappedFaces which checks if two faces have got equal draw options. After discussion with Brecht we found it's nicest solution for now: - Disabling VBOs in edit mode for this case wouldn't be nicer for this case - some additional flag stored in DM should be added in this case. - Adding new callback in DM isn't nicer that this solution. - Handling face selection in drawobject would lead to duplicated code which is also not nice. Hopefully, this callback could handle all cases in the future. Also, Brecht mentioned current VBO implementation isn't perfect, so maybe when we'll redesign this area dealing with edit mode wouldn't be so tricky. --- source/blender/blenkernel/BKE_DerivedMesh.h | 3 +- source/blender/blenkernel/intern/DerivedMesh.c | 6 +++- source/blender/blenkernel/intern/cdderivedmesh.c | 31 +++++++++++++---- source/blender/blenkernel/intern/subsurf_ccg.c | 6 +++- source/blender/editors/space_view3d/drawmesh.c | 2 +- source/blender/editors/space_view3d/drawobject.c | 44 ++++++++++++++++++------ 6 files changed, 71 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 46b533f33fd..6e17b056685 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -283,7 +283,8 @@ struct DerivedMesh { int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors, - int (*setMaterial)(int, void *attribs)); + int (*setMaterial)(int, void *attribs), + int (*compareDrawOptions)(void *userData, int cur_index, int next_index)); /* Draw mapped faces using MTFace * o Drawing options too complicated to enumerate, look at code. diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index c84bcaabbd3..ff7f2586767 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -637,7 +637,8 @@ static void emDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *use } /* note, material function is ignored for now. */ -static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int UNUSED(useColors), int (*setMaterial)(int, void *attribs)) +static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int UNUSED(useColors), int (*setMaterial)(int, void *attribs), + int (*compareDrawOptions)(void *userData, int cur_index, int next_index)) { EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm; EditFace *efa; @@ -645,6 +646,9 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us (void)setMaterial; /* unused */ + /* currently unused -- each original face is handled separately */ + (void)compareDrawOptions; + if (emdm->vertexCos) { EditVert *eve; diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 12fb11c68b3..5eb97630e83 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -843,7 +843,8 @@ static void cdDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tfa cdDM_drawFacesTex_common(dm, setDrawOptions, NULL, NULL); } -static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors, int (*setMaterial)(int, void *attribs)) +static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors, int (*setMaterial)(int, void *attribs), + int (*compareDrawOptions)(void *userData, int cur_index, int next_index)) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; MVert *mv = cddm->mvert; @@ -958,6 +959,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us MFace *mface= mf + actualFace; int drawSmooth= (mface->flag & ME_SMOOTH); int draw = 1; + int flush = 0; if(i != tottri-1) next_actualFace= dm->drawObject->triangle_to_mface[i+1]; @@ -972,11 +974,28 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us /* Goal is to draw as long of a contiguous triangle array as possible, so draw when we hit either an invisible triangle or at the end of the array */ - if(!draw || i == tottri - 1 || mf[actualFace].mat_nr != mf[next_actualFace].mat_nr) { - if(prevstart != i) - /* Add one to the length (via `draw') - if we're drawing at the end of the array */ - glDrawArrays(GL_TRIANGLES,prevstart*3, (i-prevstart+draw)*3); + + /* flush buffer if current triangle isn't drawable or it's last triangle... */ + flush= !draw || i == tottri - 1; + + /* ... or when material setting is dissferent */ + flush|= mf[actualFace].mat_nr != mf[next_actualFace].mat_nr; + + if(!flush && compareDrawOptions) { + int next_orig= (index==NULL) ? next_actualFace : index[next_actualFace]; + + /* also compare draw options and flush buffer if they're different + need for face selection highlight in edit mode */ + flush|= compareDrawOptions(userData, orig, next_orig) == 0; + } + + if(flush) { + int first= prevstart*3; + int count= (i-prevstart+(draw ? 1 : 0))*3; /* Add one to the length if we're drawing at the end of the array */ + + if(count) + glDrawArrays(GL_TRIANGLES, first, count); + prevstart = i + 1; } } diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 67d7e7bffd6..186a5ea1852 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1779,7 +1779,8 @@ static void ccgDM_drawUVEdges(DerivedMesh *dm) } } -static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors, int (*setMaterial)(int, void *attribs)) { +static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors, int (*setMaterial)(int, void *attribs), + int (*compareDrawOptions)(void *userData, int cur_index, int next_index)) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; MCol *mcol= NULL; @@ -1787,6 +1788,9 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u char *faceFlags = ccgdm->faceFlags; int gridFaces = gridSize - 1, totface; + /* currently unused -- each original face is handled separately */ + (void)compareDrawOptions; + if(useColors) { mcol = dm->getFaceDataArray(dm, CD_WEIGHT_MCOL); if(!mcol) diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 71c85483244..6e02ecbd5a8 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -607,7 +607,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o } else if(faceselect) { if(ob->mode & OB_MODE_WEIGHT_PAINT) - dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1, GPU_enable_material); + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1, GPU_enable_material, NULL); else dm->drawMappedFacesTex(dm, me->mface ? draw_tface_mapped__set_draw : NULL, me); } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 638d197ccf7..8ca352ffe42 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2030,6 +2030,28 @@ static int draw_dm_faces_sel__setDrawOptions(void *userData, int index, int *UNU return 0; } +static int draw_dm_faces_sel__compareDrawOptions(void *userData, int index, int next_index) +{ + struct { unsigned char *cols[3]; EditFace *efa_act; } * data = userData; + EditFace *efa = EM_get_face_for_index(index); + EditFace *next_efa = EM_get_face_for_index(next_index); + unsigned char *col, *next_col; + + if(efa == next_efa) + return 1; + + if(efa == data->efa_act || next_efa == data->efa_act) + return 0; + + col = data->cols[(efa->f&SELECT)?1:0]; + next_col = data->cols[(next_efa->f&SELECT)?1:0]; + + if(col[3]==0 || next_col[3]==0) + return 0; + + return col == next_col; +} + /* also draws the active face */ static void draw_dm_faces_sel(DerivedMesh *dm, unsigned char *baseCol, unsigned char *selCol, unsigned char *actCol, EditFace *efa_act) { @@ -2039,7 +2061,7 @@ static void draw_dm_faces_sel(DerivedMesh *dm, unsigned char *baseCol, unsigned data.cols[2] = actCol; data.efa_act = efa_act; - dm->drawMappedFaces(dm, draw_dm_faces_sel__setDrawOptions, &data, 0, GPU_enable_material); + dm->drawMappedFaces(dm, draw_dm_faces_sel__setDrawOptions, &data, 0, GPU_enable_material, draw_dm_faces_sel__compareDrawOptions); } static int draw_dm_creases__setDrawOptions(void *UNUSED(userData), int index) @@ -2449,7 +2471,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object glEnable(GL_LIGHTING); glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); - finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, NULL, 0, GPU_enable_material); + finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, NULL, 0, GPU_enable_material, NULL); glFrontFace(GL_CCW); glDisable(GL_LIGHTING); @@ -2678,7 +2700,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D /* weight paint in solid mode, special case. focus on making the weights clear * rather than the shading, this is also forced in wire view */ GPU_enable_material(0, NULL); - dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material); + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material, NULL); bglPolygonOffset(rv3d->dist, 1.0); glDepthMask(0); // disable write in zbuffer, selected edge wires show better @@ -2758,7 +2780,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D glEnable(GL_LIGHTING); glEnable(GL_COLOR_MATERIAL); - dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material); + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material, NULL); glDisable(GL_COLOR_MATERIAL); glDisable(GL_LIGHTING); @@ -2766,10 +2788,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D } else if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_TEXTURE_PAINT)) { if(me->mcol) - dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 1, GPU_enable_material); + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 1, GPU_enable_material, NULL); else { glColor3f(1.0f, 1.0f, 1.0f); - dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 0, GPU_enable_material); + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 0, GPU_enable_material, NULL); } } } @@ -6459,7 +6481,7 @@ static void bbs_mesh_solid_EM(Scene *scene, View3D *v3d, Object *ob, DerivedMesh cpack(0); if (facecol) { - dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0, GPU_enable_material); + dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0, GPU_enable_material, NULL); if(check_ob_drawface_dot(scene, v3d, ob->dt)) { glPointSize(UI_GetThemeValuef(TH_FACEDOT_SIZE)); @@ -6470,7 +6492,7 @@ static void bbs_mesh_solid_EM(Scene *scene, View3D *v3d, Object *ob, DerivedMesh } } else { - dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*) 0, 0, GPU_enable_material); + dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*) 0, 0, GPU_enable_material, NULL); } } @@ -6499,8 +6521,8 @@ static void bbs_mesh_solid(Scene *scene, Object *ob) glColor3ub(0, 0, 0); - if((me->editflag & ME_EDIT_PAINT_MASK)) dm->drawMappedFaces(dm, bbs_mesh_solid_hide__setDrawOpts, me, 0, GPU_enable_material); - else dm->drawMappedFaces(dm, bbs_mesh_solid__setDrawOpts, me, 0, GPU_enable_material); + if((me->editflag & ME_EDIT_PAINT_MASK)) dm->drawMappedFaces(dm, bbs_mesh_solid_hide__setDrawOpts, me, 0, GPU_enable_material, NULL); + else dm->drawMappedFaces(dm, bbs_mesh_solid__setDrawOpts, me, 0, GPU_enable_material, NULL); dm->release(dm); } @@ -6607,7 +6629,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r GPU_end_object_materials(); } else if(edm) - edm->drawMappedFaces(edm, NULL, NULL, 0, GPU_enable_material); + edm->drawMappedFaces(edm, NULL, NULL, 0, GPU_enable_material, NULL); glDisable(GL_LIGHTING); } -- cgit v1.2.3 From 099760cf1f7969d1cd16c6b5bd1a77d86bc62547 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 29 Aug 2011 17:46:07 +0000 Subject: Fix #28295 Outliner, mouse button on menu's pass through. It was introduced in rev33603 with not good patch -- release event was catching by outliner after clicking on menu item. Use KM_CLICK instead of KM_RELEASE to deal with icon drag/drop. This not changes drag/drop behavior, but prevents unneeded event be handled. Also make consistent behavior of activating and extending selection. --- source/blender/editors/space_outliner/outliner_ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index f3e2c352172..2917aa5ffda 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -90,8 +90,8 @@ void outliner_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_RELEASE, 0, 0)->ptr, "extend", 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1); + RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, 0, 0)->ptr, "extend", 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0)->ptr, "extend", 1); RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, 0, 0)->ptr, "all", 0); RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "all", 1); -- cgit v1.2.3 From 5b5e600db6f529ad7e1af9d4bb3a193be2265342 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 30 Aug 2011 07:57:55 +0000 Subject: Last bunch of minor fixes before merge. * Use NULL in AUD_Reference.h * Use SETLOOPER in sound.c * Move flags to the end of Speaker struct. --- source/blender/blenkernel/intern/sound.c | 4 +++- source/blender/editors/sound/sound_ops.c | 7 +++++++ source/blender/makesdna/DNA_speaker_types.h | 7 ++++--- 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index abead8d43dd..985fef974d3 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -37,6 +37,7 @@ #include "BKE_packedFile.h" #include "BKE_animsys.h" #include "BKE_sequencer.h" +#include "BKE_scene.h" // evil global ;-) static int sound_cfra; @@ -656,12 +657,13 @@ void sound_update_scene(struct Scene* scene) NlaTrack* track; NlaStrip* strip; Speaker* speaker; + Scene* sce_it; void* new_set = AUD_createSet(); void* handle; float quat[4]; - for(base = FIRSTBASE; base; base=base->next) + for(SETLOOPER(scene, sce_it, base)) { ob = base->object; if(ob->type == OB_SPEAKER) diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index fb4355d0df7..e66abffbfd1 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -648,6 +648,13 @@ static int update_animation_flags_exec(bContext *C, wmOperator *UNUSED(op)) void SOUND_OT_update_animation_flags(wmOperatorType *ot) { + /* + This operator is needed to set a correct state of the sound animation + System. Unfortunately there's no really correct place to call the exec + function, that's why I made it an operator that's only visible in the + search menu. Apart from that the bake animation operator calls it too. + */ + /* identifiers */ ot->name= "Update animation"; ot->description= "Update animation flags"; diff --git a/source/blender/makesdna/DNA_speaker_types.h b/source/blender/makesdna/DNA_speaker_types.h index 50cb62c79e5..fecc65885c5 100644 --- a/source/blender/makesdna/DNA_speaker_types.h +++ b/source/blender/makesdna/DNA_speaker_types.h @@ -39,9 +39,6 @@ typedef struct Speaker { struct bSound *sound; - short flag; - short pad1[3]; - // not animatable properties float volume_max; float volume_min; @@ -55,6 +52,10 @@ typedef struct Speaker { // animatable properties float volume; float pitch; + + // flag + short flag; + short pad1[3]; } Speaker; /* **************** SPEAKER ********************* */ -- cgit v1.2.3 From 27ec8d5043f544685001aab3552b9b4b56bc1e1a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 30 Aug 2011 09:50:31 +0000 Subject: fix for some warnings with the recent merge, also tag unused args. --- source/blender/blenlib/intern/BLI_kdopbvh.c | 8 +++--- source/blender/blenlib/intern/BLI_kdtree.c | 4 +-- source/blender/blenlib/intern/graph.c | 2 +- .../editors/animation/anim_channels_defines.c | 2 +- .../blender/editors/animation/anim_channels_edit.c | 2 +- source/blender/editors/animation/anim_filter.c | 2 +- source/blender/editors/armature/poseSlide.c | 6 ++-- source/blender/editors/armature/poseobject.c | 4 +-- source/blender/editors/object/object_select.c | 2 +- source/blender/editors/space_graph/graph_draw.c | 2 +- source/blender/editors/space_nla/nla_edit.c | 12 ++++---- .../editors/space_outliner/outliner_tools.c | 2 +- source/blender/editors/space_view3d/drawobject.c | 33 +++++++++------------- source/blender/imbuf/CMakeLists.txt | 4 ++- source/blender/imbuf/intern/indexer_dv.c | 5 ++-- 15 files changed, 44 insertions(+), 46 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 527692348e7..dcbe043f0d0 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -1494,7 +1494,7 @@ static float fast_ray_nearest_hit(const BVHRayCastData *data, const BVHNode *nod float t2z = (bv[data->index[5]] - data->ray.origin[2]) * data->idot_axis[2]; if(t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return FLT_MAX; - if(t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return FLT_MAX; + if(t2x < 0.0f || t2y < 0.0f || t2z < 0.0f) return FLT_MAX; if(t1x > data->hit.dist || t1y > data->hit.dist || t1z > data->hit.dist) return FLT_MAX; dist = t1x; @@ -1599,11 +1599,11 @@ int BLI_bvhtree_ray_cast(BVHTree *tree, const float *co, const float *dir, float data.ray_dot_axis[i] = INPR( data.ray.direction, KDOP_AXES[i]); data.idot_axis[i] = 1.0f / data.ray_dot_axis[i]; - if(fabs(data.ray_dot_axis[i]) < FLT_EPSILON) + if(fabsf(data.ray_dot_axis[i]) < FLT_EPSILON) { data.ray_dot_axis[i] = 0.0; } - data.index[2*i] = data.idot_axis[i] < 0.0 ? 1 : 0; + data.index[2*i] = data.idot_axis[i] < 0.0f ? 1 : 0; data.index[2*i+1] = 1 - data.index[2*i]; data.index[2*i] += 2*i; data.index[2*i+1] += 2*i; @@ -1654,7 +1654,7 @@ float BLI_bvhtree_bb_raycast(float *bv, float *light_start, float *light_end, fl dist = ray_nearest_hit(&data, bv); - if(dist > 0.0) + if(dist > 0.0f) { VECADDFAC(pos, light_start, data.ray.direction, dist); } diff --git a/source/blender/blenlib/intern/BLI_kdtree.c b/source/blender/blenlib/intern/BLI_kdtree.c index 713bfde3417..c885e8c8a9c 100644 --- a/source/blender/blenlib/intern/BLI_kdtree.c +++ b/source/blender/blenlib/intern/BLI_kdtree.c @@ -187,7 +187,7 @@ int BLI_kdtree_find_nearest(KDTree *tree, float *co, float *nor, KDTreeNearest * cur_dist = node->co[node->d] - co[node->d]; - if(cur_dist<0.0){ + if(cur_dist<0.0f){ cur_dist= -cur_dist*cur_dist; if(-cur_distco[node->d] - co[node->d]; - if(cur_dist<0.0){ + if(cur_dist<0.0f){ cur_dist= -cur_dist*cur_dist; if(foundlength - ring[i].arc->length) > limit) + if (fabsf(ring[first].arc->length - ring[i].arc->length) > limit) { dispatch = 1; } diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 806af4c0ef5..bdc654ff25a 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -1273,7 +1273,7 @@ static int acf_dstex_icon(bAnimListElem *UNUSED(ale)) /* offset for texture expanders */ // FIXME: soon to be obsolete? -static short acf_dstex_offset(bAnimContext *UNUSED(ac), bAnimListElem *ale) +static short acf_dstex_offset(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale)) { return 14; // XXX: simply include this in indention instead? } diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index c9d6f9a6420..d58d51c8e08 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -2018,7 +2018,7 @@ static void rename_anim_channels (bAnimContext *ac, int channel_index) ED_region_tag_redraw(ac->ar); } -static int animchannels_rename_invoke (bContext *C, wmOperator *op, wmEvent *evt) +static int animchannels_rename_invoke (bContext *C, wmOperator *UNUSED(op), wmEvent *evt) { bAnimContext ac; ARegion *ar; diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 0472731dd6d..8010a41ccb3 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -990,7 +990,7 @@ static size_t animfilter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve * return items; } -static size_t animfilter_act_group (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *act, bActionGroup *agrp, int filter_mode, ID *owner_id) +static size_t animfilter_act_group (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, bAction *UNUSED(act), bActionGroup *agrp, int filter_mode, ID *owner_id) { ListBase tmp_data = {NULL, NULL}; size_t tmp_items = 0; diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c index 3c15ff52a30..b0ff60455cf 100644 --- a/source/blender/editors/armature/poseSlide.c +++ b/source/blender/editors/armature/poseSlide.c @@ -520,7 +520,7 @@ static void pose_slide_reset (tPoseSlideOp *pso) /* ------------------------------------ */ /* draw percentage indicator in header */ -static void pose_slide_draw_status (bContext *C, tPoseSlideOp *pso) +static void pose_slide_draw_status (tPoseSlideOp *pso) { char statusStr[32]; char mode[32]; @@ -615,7 +615,7 @@ static int pose_slide_invoke_common (bContext *C, wmOperator *op, tPoseSlideOp * WM_cursor_modal(win, BC_EW_SCROLLCURSOR); /* header print */ - pose_slide_draw_status(C, pso); + pose_slide_draw_status(pso); /* add a modal handler for this operator */ WM_event_add_modal_handler(C, op); @@ -672,7 +672,7 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt) RNA_float_set(op->ptr, "percentage", pso->percentage); /* update percentage indicator in header */ - pose_slide_draw_status(C, pso); + pose_slide_draw_status(pso); /* reset transforms (to avoid accumulation errors) */ pose_slide_reset(pso); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index d2f32837d6d..3911be02fe7 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -1611,7 +1611,7 @@ static int compare_agroup(const void *sgrp_a_ptr, const void *sgrp_b_ptr) return strcmp(sgrp_a->agrp->name, sgrp_b->agrp->name); } -static int group_sort_exec(bContext *C, wmOperator *op) +static int group_sort_exec(bContext *C, wmOperator *UNUSED(op)) { Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data; bPose *pose= (ob) ? ob->pose : NULL; @@ -2275,7 +2275,7 @@ void POSE_OT_quaternions_flip (wmOperatorType *ot) /* ********************************************** */ /* Clear User Transforms */ -static int pose_clear_user_transforms_exec (bContext *C, wmOperator *op) +static int pose_clear_user_transforms_exec (bContext *C, wmOperator *UNUSED(op)) { Scene *scene = CTX_data_scene(C); Object *ob = CTX_data_active_object(C); diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index b3c4ffc0ac9..cb1fc7541d0 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -600,7 +600,7 @@ static short select_grouped_keyingset(bContext *C, Object *UNUSED(ob)) */ for (ksp = ks->paths.first; ksp; ksp = ksp->next) { /* if id matches, select then stop looping (match found) */ - if (ksp->id == base->object) { + if (ksp->id == (ID *)base->object) { ED_base_object_select(base, BA_SELECT); changed = 1; break; diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index d65297e068d..dc5e71f0406 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -706,7 +706,7 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View if (fcu->driver) resol= 32; else - resol= (int)(5.0*len_v2v2(bezt->vec[1], prevbezt->vec[1])); + resol= (int)(5.0f*len_v2v2(bezt->vec[1], prevbezt->vec[1])); if (resol < 2) { /* only draw one */ diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 0f87be0f807..1894a9fd651 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -533,7 +533,7 @@ static int nlaedit_add_transition_exec (bContext *C, wmOperator *op) if ELEM(0, (s1->flag & NLASTRIP_FLAG_SELECT), (s2->flag & NLASTRIP_FLAG_SELECT)) continue; /* check if there's space between the two */ - if (IS_EQ(s1->end, s2->start)) + if (IS_EQF(s1->end, s2->start)) continue; /* make sure neither one is a transition * - although this is impossible to create with the standard tools, @@ -613,7 +613,7 @@ void NLA_OT_transition_add (wmOperatorType *ot) /* ******************** Add Sound Clip Operator ***************************** */ /* Add a new sound clip */ -static int nlaedit_add_sound_exec (bContext *C, wmOperator *op) +static int nlaedit_add_sound_exec (bContext *C, wmOperator *UNUSED(op)) { bAnimContext ac; @@ -1013,14 +1013,14 @@ static void nlaedit_split_strip_actclip (AnimData *adt, NlaTrack *nlt, NlaStrip /* strip extents */ len= strip->end - strip->start; - if (IS_EQ(len, 0.0f)) + if (IS_EQF(len, 0.0f)) return; else splitframe= strip->start + (len / 2.0f); /* action range */ len= strip->actend - strip->actstart; - if (IS_EQ(len, 0.0f)) + if (IS_EQF(len, 0.0f)) splitaframe= strip->actend; else splitaframe= strip->actstart + (len / 2.0f); @@ -1858,10 +1858,10 @@ static int nlaedit_snap_exec (bContext *C, wmOperator *op) strip->start= (float)CFRA; break; case NLAEDIT_SNAP_NEAREST_FRAME: /* to nearest frame */ - strip->start= (float)(floor(start+0.5)); + strip->start= floorf(start+0.5); break; case NLAEDIT_SNAP_NEAREST_SECOND: /* to nearest second */ - strip->start= ((float)floor(start/secf + 0.5f) * secf); + strip->start= floorf(start/secf + 0.5f) * secf; break; case NLAEDIT_SNAP_NEAREST_MARKER: /* to nearest marker */ strip->start= (float)ED_markers_find_nearest_marker_time(ac.markers, start); diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 4525ea9c8d9..3ae158bd275 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -822,7 +822,7 @@ static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *l /* ------------------------------------------ */ -static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) +static void actionset_id_cb(TreeElement *UNUSED(te), TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) { bAction *act = (bAction *)actId; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index b4ccea71aa2..d573198aa10 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -1493,7 +1493,7 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob } /* flag similar to draw_object() */ -static void drawspeaker(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int flag) +static void drawspeaker(Scene *UNUSED(scene), View3D *UNUSED(v3d), RegionView3D *UNUSED(rv3d), Object *UNUSED(ob), int UNUSED(flag)) { //Speaker *spk = ob->data; @@ -1502,34 +1502,29 @@ static void drawspeaker(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o glEnable(GL_BLEND); - for(j = 0; j < 3; j++) - { - vec[2] = .25f * j -.125f; + for(j = 0; j < 3; j++) { + vec[2] = 0.25f * j -0.125f; glBegin(GL_LINE_LOOP); - for(i = 0; i < 16; i++) - { - vec[0] = cos(M_PI * i / 8.0f) * (j == 0 ? .5f : .25f); - vec[1] = sin(M_PI * i / 8.0f) * (j == 0 ? .5f : .25f); + for(i = 0; i < 16; i++) { + vec[0] = cosf(M_PI * i / 8.0f) * (j == 0 ? 0.5f : 0.25f); + vec[1] = sinf(M_PI * i / 8.0f) * (j == 0 ? 0.5f : 0.25f); glVertex3fv(vec); } glEnd(); } - for(j = 0; j < 4; j++) - { - vec[0] = (((j + 1) % 2) * (j - 1)) * .5f; - vec[1] = ((j % 2) * (j - 2)) * .5f; + for(j = 0; j < 4; j++) { + vec[0] = (((j + 1) % 2) * (j - 1)) * 0.5f; + vec[1] = ((j % 2) * (j - 2)) * 0.5f; glBegin(GL_LINE_STRIP); - for(i = 0; i < 3; i++) - { - if(i == 1) - { - vec[0] *= .5f; - vec[1] *= .5f; + for(i = 0; i < 3; i++) { + if(i == 1) { + vec[0] *= 0.5f; + vec[1] *= 0.5f; } - vec[2] = .25f * i -.125f; + vec[2] = 0.25f * i -0.125f; glVertex3fv(vec); } glEnd(); diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index ff13be20d4e..1547d2ee9ce 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -55,6 +55,8 @@ set(SRC intern/filetype.c intern/filter.c intern/imageprocess.c + intern/indexer.c + intern/indexer_dv.c intern/iris.c intern/jp2.c intern/jpeg.c @@ -73,7 +75,6 @@ set(SRC intern/tiff.c intern/util.c intern/writeimage.c - intern/indexer.c IMB_imbuf.h IMB_imbuf_types.h @@ -82,6 +83,7 @@ set(SRC intern/IMB_anim.h intern/IMB_filetype.h intern/IMB_filter.h + intern/IMB_indexer.h intern/IMB_metadata.h intern/cineon/cin_debug_stuff.h intern/cineon/cineonfile.h diff --git a/source/blender/imbuf/intern/indexer_dv.c b/source/blender/imbuf/intern/indexer_dv.c index 0961af10f69..2def0d042b7 100644 --- a/source/blender/imbuf/intern/indexer_dv.c +++ b/source/blender/imbuf/intern/indexer_dv.c @@ -26,6 +26,7 @@ #include "IMB_indexer.h" #include "MEM_guardedalloc.h" +#include "BLI_utildefines.h" #include typedef struct indexer_dv_bitstream { @@ -279,7 +280,7 @@ static void fill_gap(indexer_dv_context * This, int isPAL) } static void proc_frame(indexer_dv_context * This, - unsigned char* framebuffer, int isPAL) + unsigned char* UNUSED(framebuffer), int isPAL) { struct tm recDate; time_t t; @@ -329,7 +330,7 @@ static void proc_frame(indexer_dv_context * This, static void indexer_dv_proc_frame(anim_index_builder * idx, unsigned char * buffer, - int data_size, + int UNUSED(data_size), struct anim_index_entry * entry) { int isPAL; -- cgit v1.2.3 From b3704f45c4e165618e898b5b7d1a7391ad14dc50 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 30 Aug 2011 10:07:50 +0000 Subject: Fixes for snprintf usage: * replace by BLI_snprintf in various places, note _snprintf on windows does not properly null terminate the string. * fix overflow in sequencer proxy code due to buffer being smaller than specified size. * fix some usage of snprintf as strcpy, this is will go wrong if the string contains % characters. * remove BLI_dynstr_printf function in gpu module, use BLI_dynstr_appendf --- source/blender/blenkernel/intern/particle_system.c | 11 +- source/blender/blenkernel/intern/pointcache.c | 20 ++-- source/blender/blenkernel/intern/report.c | 6 -- source/blender/blenkernel/intern/sequencer.c | 13 +-- source/blender/blenkernel/intern/unit.c | 11 +- source/blender/blenkernel/intern/writeffmpeg.c | 6 +- source/blender/blenlib/intern/storage.c | 2 +- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/editors/physics/physics_fluid.c | 18 ++-- .../blender/editors/space_console/space_console.c | 4 +- source/blender/editors/space_nla/nla_draw.c | 14 +-- source/blender/gpu/intern/gpu_codegen.c | 111 ++++++++------------- source/blender/python/intern/bpy_rna.c | 2 +- 13 files changed, 84 insertions(+), 136 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index f62ba2be193..e1ea6e419d3 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -69,6 +69,7 @@ #include "BLI_listbase.h" #include "BLI_threads.h" #include "BLI_storage.h" /* For _LARGEFILE64_SOURCE; zlib needs this on some systems */ +#include "BLI_string.h" #include "BLI_utildefines.h" #include "BKE_main.h" @@ -104,12 +105,6 @@ #include #include -#ifdef WIN32 -#ifndef snprintf -#define snprintf _snprintf -#endif -#endif - #endif // DISABLE_ELBEEM /************************************************/ @@ -3876,7 +3871,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) gzf = gzopen(filename, "rb"); if (!gzf) { - snprintf(debugStrBuffer,256,"readFsPartData::error - Unable to open file for reading '%s' \n", filename); + BLI_snprintf(debugStrBuffer, sizeof(debugStrBuffer),"readFsPartData::error - Unable to open file for reading '%s' \n", filename); // XXX bad level call elbeemDebugOut(debugStrBuffer); return; } @@ -3937,7 +3932,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) gzclose( gzf ); totpart = psys->totpart = activeParts; - snprintf(debugStrBuffer,256,"readFsPartData::done - particles:%d, active:%d, file:%d, mask:%d \n", psys->totpart,activeParts,fileParts,readMask); + BLI_snprintf(debugStrBuffer,sizeof(debugStrBuffer),"readFsPartData::done - particles:%d, active:%d, file:%d, mask:%d \n", psys->totpart,activeParts,fileParts,readMask); // bad level call // XXX elbeemDebugOut(debugStrBuffer); diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 0f0afe30392..a56010a5ccf 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -917,14 +917,14 @@ static int ptcache_path(PTCacheID *pid, char *filename) if (i > 6) file[i-6] = '\0'; - snprintf(filename, MAX_PTCACHE_PATH, "//"PTCACHE_PATH"%s", file); /* add blend file name to pointcache dir */ + BLI_snprintf(filename, MAX_PTCACHE_PATH, "//"PTCACHE_PATH"%s", file); /* add blend file name to pointcache dir */ BLI_path_abs(filename, blendfilename); return BLI_add_slash(filename); /* new strlen() */ } /* use the temp path. this is weak but better then not using point cache at all */ /* btempdir is assumed to exist and ALWAYS has a trailing slash */ - snprintf(filename, MAX_PTCACHE_PATH, "%s"PTCACHE_PATH"%d", btempdir, abs(getpid())); + BLI_snprintf(filename, MAX_PTCACHE_PATH, "%s"PTCACHE_PATH"%d", btempdir, abs(getpid())); return BLI_add_slash(filename); /* new strlen() */ } @@ -948,7 +948,7 @@ static int ptcache_filename(PTCacheID *pid, char *filename, int cfra, short do_p idname = (pid->ob->id.name+2); /* convert chars to hex so they are always a valid filename */ while('\0' != *idname) { - snprintf(newname, MAX_PTCACHE_FILE, "%02X", (char)(*idname++)); + BLI_snprintf(newname, MAX_PTCACHE_FILE, "%02X", (char)(*idname++)); newname+=2; len += 2; } @@ -967,12 +967,12 @@ static int ptcache_filename(PTCacheID *pid, char *filename, int cfra, short do_p if(pid->cache->flag & PTCACHE_EXTERNAL) { if(pid->cache->index >= 0) - snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ + BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ else - snprintf(newname, MAX_PTCACHE_FILE, "_%06d"PTCACHE_EXT, cfra); /* always 6 chars */ + BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d"PTCACHE_EXT, cfra); /* always 6 chars */ } else { - snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ + BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */ } len += 16; } @@ -2002,7 +2002,7 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, unsigned int cfra) if (dir==NULL) return; - snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); + BLI_snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); while ((de = readdir(dir)) != NULL) { if (strstr(de->d_name, ext)) { /* do we have the right extension?*/ @@ -2204,7 +2204,7 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra if (dir==NULL) return; - snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); + BLI_snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); while ((de = readdir(dir)) != NULL) { if (strstr(de->d_name, ext)) { /* do we have the right extension?*/ @@ -2904,7 +2904,7 @@ void BKE_ptcache_disk_cache_rename(PTCacheID *pid, char *from, char *to) return; } - snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); + BLI_snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index); /* put new name into cache */ strcpy(pid->cache->name, to); @@ -2960,7 +2960,7 @@ void BKE_ptcache_load_external(PTCacheID *pid) return; if(cache->index >= 0) - snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, cache->index); + BLI_snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, cache->index); else strcpy(ext, PTCACHE_EXT); diff --git a/source/blender/blenkernel/intern/report.c b/source/blender/blenkernel/intern/report.c index f84d98a31b4..4926edaeec2 100644 --- a/source/blender/blenkernel/intern/report.c +++ b/source/blender/blenkernel/intern/report.c @@ -44,12 +44,6 @@ #include #include -#ifdef _WIN32 -#ifndef vsnprintf -#define vsnprintf _vsnprintf -#endif -#endif - static const char *report_type_str(int type) { switch(type) { diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 40e02d65323..9ef30bdd49b 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -78,11 +78,6 @@ # include "AUD_C-API.h" #endif -#ifdef WIN32 -#define snprintf _snprintf -#endif - - static ImBuf* seq_render_strip_stack( SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown); @@ -1193,7 +1188,7 @@ static void seq_open_anim_file(Sequence * seq) static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, char * name) { int frameno; - char dir[FILE_MAXDIR]; + char dir[PROXY_MAXFILE]; int render_size = context.preview_render_size; if (!seq->strip->proxy) { @@ -1211,7 +1206,7 @@ static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, if (seq->flag & (SEQ_USE_PROXY_CUSTOM_DIR|SEQ_USE_PROXY_CUSTOM_FILE)) { strcpy(dir, seq->strip->proxy->dir); } else if (seq->type == SEQ_IMAGE) { - snprintf(dir, PROXY_MAXFILE, "%s/BL_proxy", seq->strip->dir); + BLI_snprintf(dir, PROXY_MAXFILE, "%s/BL_proxy", seq->strip->dir); } else { return FALSE; } @@ -1232,14 +1227,14 @@ static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, /* generate a separate proxy directory for each preview size */ if (seq->type == SEQ_IMAGE) { - snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir, + BLI_snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir, context.preview_render_size, give_stripelem(seq, cfra)->name); frameno = 1; } else { frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs; - snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, + BLI_snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, context.preview_render_size); } diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c index a9792bc44fa..72fe1c19884 100644 --- a/source/blender/blenkernel/intern/unit.c +++ b/source/blender/blenkernel/intern/unit.c @@ -34,6 +34,7 @@ #include "BKE_unit.h" #include "BLI_math.h" +#include "BLI_string.h" #include "BLI_winstuff.h" @@ -344,7 +345,7 @@ static int unit_as_string(char *str, int len_max, double value, int prec, bUnitC /* Convert to a string */ { - len= snprintf(str, len_max, "%.*lf", prec, value_conv); + len= BLI_snprintf(str, len_max, "%.*lf", prec, value_conv); if(len >= len_max) len= len_max; @@ -495,7 +496,7 @@ static int unit_scale_str(char *str, int len_max, char *str_tmp, double scale_pr len_name = strlen(replace_str); len_move= (len - (found_ofs+len_name)) + 1; /* 1+ to copy the string terminator */ - len_num= snprintf(str_tmp, TEMP_STR_SIZE, "*%lg"SEP_STR, unit->scalar/scale_pref); /* # removed later */ + len_num= BLI_snprintf(str_tmp, TEMP_STR_SIZE, "*%lg"SEP_STR, unit->scalar/scale_pref); /* # removed later */ if(len_num > len_max) len_num= len_max; @@ -629,12 +630,12 @@ int bUnit_ReplaceString(char *str, int len_max, char *str_prev, double scale_pre /* add the unit prefix and re-run, use brackets incase there was an expression given */ - if(snprintf(str_tmp, sizeof(str_tmp), "(%s)%s", str, unit->name) < sizeof(str_tmp)) { + if(BLI_snprintf(str_tmp, sizeof(str_tmp), "(%s)%s", str, unit->name) < sizeof(str_tmp)) { strncpy(str, str_tmp, len_max); return bUnit_ReplaceString(str, len_max, NULL, scale_pref, system, type); } else { - /* snprintf would not fit into str_tmp, cant do much in this case + /* BLI_snprintf would not fit into str_tmp, cant do much in this case * check for this because otherwise bUnit_ReplaceString could call its self forever */ return 0; } @@ -705,7 +706,7 @@ void bUnit_ToUnitAltName(char *str, int len_max, char *orig_str, int system, int /* print the alt_name */ if(unit->name_alt) - len_name= snprintf(str, len_max, "%s", unit->name_alt); + len_name= BLI_snprintf(str, len_max, "%s", unit->name_alt); else len_name= 0; diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 24e0fe95a1f..13875ff19f7 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -39,10 +39,6 @@ #include #include -#if defined(WIN32) && (!(defined snprintf)) -#define snprintf _snprintf -#endif - #include "MEM_guardedalloc.h" #include "DNA_scene_types.h" @@ -652,7 +648,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report fmt->audio_codec = ffmpeg_audio_codec; - snprintf(of->filename, sizeof(of->filename), "%s", name); + BLI_snprintf(of->filename, sizeof(of->filename), "%s", name); /* set the codec to the user's selection */ switch(ffmpeg_type) { case FFMPEG_AVI: diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c index 41eedef8835..67e27063fd0 100644 --- a/source/blender/blenlib/intern/storage.c +++ b/source/blender/blenlib/intern/storage.c @@ -338,7 +338,7 @@ void BLI_adddirstrings(void) if ( pwuser ) { BLI_strncpy(file->owner, pwuser->pw_name, sizeof(file->owner)); } else { - snprintf(file->owner, sizeof(file->owner), "%d", file->s.st_uid); + BLI_snprintf(file->owner, sizeof(file->owner), "%d", file->s.st_uid); } } #endif diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 4a86de51d9c..363e98d7a4b 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10081,7 +10081,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) !(seq->flag & SEQ_USE_PROXY_CUSTOM_DIR)) { - snprintf(seq->strip->proxy->dir, + BLI_snprintf(seq->strip->proxy->dir, FILE_MAXDIR, "%s/BL_proxy", seq->strip->dir); } diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 37309f1e07c..bd53de20871 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -41,12 +41,6 @@ #include #include -#ifdef WIN32 /* Windos */ -#ifndef snprintf -#define snprintf _snprintf -#endif -#endif - #include "MEM_guardedalloc.h" /* types */ @@ -155,8 +149,8 @@ static int fluid_is_animated_mesh(FluidsimSettings *fss) #if 0 /* helper function */ void fluidsimGetGeometryObjFilename(Object *ob, char *dst) { //, char *srcname) { - //snprintf(dst,FILE_MAXFILE, "%s_cfgdata_%s.bobj.gz", srcname, ob->id.name); - snprintf(dst,FILE_MAXFILE, "fluidcfgdata_%s.bobj.gz", ob->id.name); + //BLI_snprintf(dst,FILE_MAXFILE, "%s_cfgdata_%s.bobj.gz", srcname, ob->id.name); + BLI_snprintf(dst,FILE_MAXFILE, "fluidcfgdata_%s.bobj.gz", ob->id.name); } #endif @@ -888,7 +882,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) if(getenv(strEnvName)) { int dlevel = atoi(getenv(strEnvName)); elbeemSetDebugLevel(dlevel); - snprintf(debugStrBuffer,256,"fluidsimBake::msg: Debug messages activated due to envvar '%s'\n",strEnvName); + BLI_snprintf(debugStrBuffer,256,"fluidsimBake::msg: Debug messages activated due to envvar '%s'\n",strEnvName); elbeemDebugOut(debugStrBuffer); } @@ -925,7 +919,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) /* rough check of settings... */ if(domainSettings->previewresxyz > domainSettings->resolutionxyz) { - snprintf(debugStrBuffer,256,"fluidsimBake::warning - Preview (%d) >= Resolution (%d)... setting equal.\n", domainSettings->previewresxyz , domainSettings->resolutionxyz); + BLI_snprintf(debugStrBuffer,256,"fluidsimBake::warning - Preview (%d) >= Resolution (%d)... setting equal.\n", domainSettings->previewresxyz , domainSettings->resolutionxyz); elbeemDebugOut(debugStrBuffer); domainSettings->previewresxyz = domainSettings->resolutionxyz; } @@ -945,7 +939,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) } else { gridlevels = domainSettings->maxRefine; } - snprintf(debugStrBuffer,256,"fluidsimBake::msg: Baking %s, refine: %d\n", fsDomain->id.name , gridlevels ); + BLI_snprintf(debugStrBuffer,256,"fluidsimBake::msg: Baking %s, refine: %d\n", fsDomain->id.name , gridlevels ); elbeemDebugOut(debugStrBuffer); @@ -997,7 +991,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain) /* ******** init domain object's matrix ******** */ copy_m4_m4(domainMat, fsDomain->obmat); if(!invert_m4_m4(invDomMat, domainMat)) { - snprintf(debugStrBuffer,256,"fluidsimBake::error - Invalid obj matrix?\n"); + BLI_snprintf(debugStrBuffer,256,"fluidsimBake::error - Invalid obj matrix?\n"); elbeemDebugOut(debugStrBuffer); BKE_report(reports, RPT_ERROR, "Invalid object matrix."); diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index 52c5100900d..c8fa049f5eb 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -169,7 +169,7 @@ static void id_drop_copy(wmDrag *drag, wmDropBox *drop) BLI_strescape(id_esc, id->name+2, sizeof(id_esc)); - snprintf(text, sizeof(text), "bpy.data.%s[\"%s\"]", BKE_idcode_to_name_plural(GS(id->name)), id_esc); + BLI_snprintf(text, sizeof(text), "bpy.data.%s[\"%s\"]", BKE_idcode_to_name_plural(GS(id->name)), id_esc); /* copy drag path to properties */ RNA_string_set(drop->ptr, "text", text); @@ -186,7 +186,7 @@ static int path_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(eve static void path_drop_copy(wmDrag *drag, wmDropBox *drop) { char pathname[FILE_MAXDIR+FILE_MAXFILE+2]; - snprintf(pathname, sizeof(pathname), "\"%s\"", drag->path); + BLI_snprintf(pathname, sizeof(pathname), "\"%s\"", drag->path); RNA_string_set(drop->ptr, "text", pathname); } diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 0583f328371..0c9c7877ddc 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -468,10 +468,10 @@ static void nla_draw_strip_text (AnimData *adt, NlaTrack *nlt, NlaStrip *strip, /* just print the name and the range */ if (strip->flag & NLASTRIP_FLAG_TEMP_META) { - sprintf(str, "%d) Temp-Meta", index); + BLI_snprintf(str, sizeof(str), "%d) Temp-Meta", index); } else { - sprintf(str, strip->name); + BLI_strncpy(str, strip->name, sizeof(str)); } /* set text color - if colors (see above) are light, draw black text, otherwise draw white */ @@ -514,7 +514,7 @@ static void nla_draw_strip_frames_text(NlaTrack *UNUSED(nlt), NlaStrip *strip, V { const float ytol = 1.0f; /* small offset to vertical positioning of text, for legibility */ const char col[4] = {220, 220, 220, 255}; /* light grey */ - char str[16] = ""; + char str[32] = ""; /* Always draw times above the strip, whereas sequencer drew below + above. @@ -524,11 +524,11 @@ static void nla_draw_strip_frames_text(NlaTrack *UNUSED(nlt), NlaStrip *strip, V * while also preserving some accuracy, since we do use floats */ /* start frame */ - sprintf(str, "%.1f", strip->start); + BLI_snprintf(str, sizeof(str), "%.1f", strip->start); UI_view2d_text_cache_add(v2d, strip->start-1.0f, ymaxc+ytol, str, col); /* end frame */ - sprintf(str, "%.1f", strip->end); + BLI_snprintf(str, sizeof(str), "%.1f", strip->end); UI_view2d_text_cache_add(v2d, strip->end, ymaxc+ytol, str, col); } @@ -730,9 +730,9 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie special = ICON_ACTION; if (act) - sprintf(name, "%s", act->id.name+2); + BLI_snprintf(name, sizeof(name), "%s", act->id.name+2); else - sprintf(name, ""); + BLI_strncpy(name, "", sizeof(name)); // draw manually still doDraw= 1; diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 77498835d57..360f3dbf63f 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -59,15 +59,6 @@ #include #include -#ifdef _WIN32 -#ifndef vsnprintf -#define vsnprintf _vsnprintf -#endif -#ifndef snprintf -#define snprintf _snprintf -#endif -#endif - extern char datatoc_gpu_shader_material_glsl[]; extern char datatoc_gpu_shader_vertex_glsl[]; @@ -168,24 +159,6 @@ struct GPUPass { struct GPUShader *shader; }; -/* Strings utility */ - -static void BLI_dynstr_printf(DynStr *dynstr, const char *format, ...) -{ - va_list args; - int retval; - char str[2048]; - - va_start(args, format); - retval = vsnprintf(str, sizeof(str), format, args); - va_end(args); - - if (retval >= sizeof(str)) - fprintf(stderr, "BLI_dynstr_printf: limit exceeded\n"); - else - BLI_dynstr_append(dynstr, str); -} - /* GLSL code parsing for finding function definitions. * These are stored in a hash for lookup when creating a material. */ @@ -318,7 +291,7 @@ static char *gpu_generate_function_prototyps(GHash *hash) name = BLI_ghashIterator_getValue(ghi); function = BLI_ghashIterator_getValue(ghi); - BLI_dynstr_printf(ds, "void %s(", name); + BLI_dynstr_appendf(ds, "void %s(", name); for(a=0; atotparam; a++) { if(function->paramqual[a] == FUNCTION_QUAL_OUT) BLI_dynstr_append(ds, "out "); @@ -334,7 +307,7 @@ static char *gpu_generate_function_prototyps(GHash *hash) else BLI_dynstr_append(ds, GPU_DATATYPE_STR[function->paramtype[a]]); - //BLI_dynstr_printf(ds, " param%d", a); + //BLI_dynstr_appendf(ds, " param%d", a); if(a != function->totparam-1) BLI_dynstr_append(ds, ", "); @@ -390,42 +363,42 @@ static void codegen_convert_datatype(DynStr *ds, int from, int to, const char *t { char name[1024]; - snprintf(name, sizeof(name), "%s%d", tmp, id); + BLI_snprintf(name, sizeof(name), "%s%d", tmp, id); if (from == to) { BLI_dynstr_append(ds, name); } else if (to == GPU_FLOAT) { if (from == GPU_VEC4) - BLI_dynstr_printf(ds, "dot(%s.rgb, vec3(0.35, 0.45, 0.2))", name); + BLI_dynstr_appendf(ds, "dot(%s.rgb, vec3(0.35, 0.45, 0.2))", name); else if (from == GPU_VEC3) - BLI_dynstr_printf(ds, "dot(%s, vec3(0.33))", name); + BLI_dynstr_appendf(ds, "dot(%s, vec3(0.33))", name); else if (from == GPU_VEC2) - BLI_dynstr_printf(ds, "%s.r", name); + BLI_dynstr_appendf(ds, "%s.r", name); } else if (to == GPU_VEC2) { if (from == GPU_VEC4) - BLI_dynstr_printf(ds, "vec2(dot(%s.rgb, vec3(0.35, 0.45, 0.2)), %s.a)", name, name); + BLI_dynstr_appendf(ds, "vec2(dot(%s.rgb, vec3(0.35, 0.45, 0.2)), %s.a)", name, name); else if (from == GPU_VEC3) - BLI_dynstr_printf(ds, "vec2(dot(%s.rgb, vec3(0.33)), 1.0)", name); + BLI_dynstr_appendf(ds, "vec2(dot(%s.rgb, vec3(0.33)), 1.0)", name); else if (from == GPU_FLOAT) - BLI_dynstr_printf(ds, "vec2(%s, 1.0)", name); + BLI_dynstr_appendf(ds, "vec2(%s, 1.0)", name); } else if (to == GPU_VEC3) { if (from == GPU_VEC4) - BLI_dynstr_printf(ds, "%s.rgb", name); + BLI_dynstr_appendf(ds, "%s.rgb", name); else if (from == GPU_VEC2) - BLI_dynstr_printf(ds, "vec3(%s.r, %s.r, %s.r)", name, name, name); + BLI_dynstr_appendf(ds, "vec3(%s.r, %s.r, %s.r)", name, name, name); else if (from == GPU_FLOAT) - BLI_dynstr_printf(ds, "vec3(%s, %s, %s)", name, name, name); + BLI_dynstr_appendf(ds, "vec3(%s, %s, %s)", name, name, name); } else { if (from == GPU_VEC3) - BLI_dynstr_printf(ds, "vec4(%s, 1.0)", name); + BLI_dynstr_appendf(ds, "vec4(%s, 1.0)", name); else if (from == GPU_VEC2) - BLI_dynstr_printf(ds, "vec4(%s.r, %s.r, %s.r, %s.g)", name, name, name, name); + BLI_dynstr_appendf(ds, "vec4(%s.r, %s.r, %s.r, %s.g)", name, name, name, name); else if (from == GPU_FLOAT) - BLI_dynstr_printf(ds, "vec4(%s, %s, %s, 1.0)", name, name, name); + BLI_dynstr_appendf(ds, "vec4(%s, %s, %s, 1.0)", name, name, name); } } @@ -433,10 +406,10 @@ static void codegen_print_datatype(DynStr *ds, int type, float *data) { int i; - BLI_dynstr_printf(ds, "%s(", GPU_DATATYPE_STR[type]); + BLI_dynstr_appendf(ds, "%s(", GPU_DATATYPE_STR[type]); for(i=0; isource == GPU_SOURCE_TEX) || (input->source == GPU_SOURCE_TEX_PIXEL)) { /* create exactly one sampler for each texture */ if (codegen_input_has_texture(input) && input->bindtex) - BLI_dynstr_printf(ds, "uniform %s samp%d;\n", + BLI_dynstr_appendf(ds, "uniform %s samp%d;\n", (input->textype == GPU_TEX1D)? "sampler1D": (input->textype == GPU_TEX2D)? "sampler2D": "sampler2DShadow", input->texid); @@ -580,11 +553,11 @@ static void codegen_print_uniforms_functions(DynStr *ds, ListBase *nodes) name = GPU_builtin_name(input->builtin); if(gpu_str_prefix(name, "unf")) { - BLI_dynstr_printf(ds, "uniform %s %s;\n", + BLI_dynstr_appendf(ds, "uniform %s %s;\n", GPU_DATATYPE_STR[input->type], name); } else { - BLI_dynstr_printf(ds, "varying %s %s;\n", + BLI_dynstr_appendf(ds, "varying %s %s;\n", GPU_DATATYPE_STR[input->type], name); } } @@ -592,19 +565,19 @@ static void codegen_print_uniforms_functions(DynStr *ds, ListBase *nodes) else if (input->source == GPU_SOURCE_VEC_UNIFORM) { if(input->dynamicvec) { /* only create uniforms for dynamic vectors */ - BLI_dynstr_printf(ds, "uniform %s unf%d;\n", + BLI_dynstr_appendf(ds, "uniform %s unf%d;\n", GPU_DATATYPE_STR[input->type], input->id); } else { /* for others use const so the compiler can do folding */ - BLI_dynstr_printf(ds, "const %s cons%d = ", + BLI_dynstr_appendf(ds, "const %s cons%d = ", GPU_DATATYPE_STR[input->type], input->id); codegen_print_datatype(ds, input->type, input->vec); BLI_dynstr_append(ds, ";\n"); } } else if (input->source == GPU_SOURCE_ATTRIB && input->attribfirst) { - BLI_dynstr_printf(ds, "varying %s var%d;\n", + BLI_dynstr_appendf(ds, "varying %s var%d;\n", GPU_DATATYPE_STR[input->type], input->attribid); } } @@ -624,8 +597,8 @@ static void codegen_declare_tmps(DynStr *ds, ListBase *nodes) for (input=node->inputs.first; input; input=input->next) { if (input->source == GPU_SOURCE_TEX_PIXEL) { if (codegen_input_has_texture(input) && input->definetex) { - BLI_dynstr_printf(ds, "\tvec4 tex%d = texture2D(", input->texid); - BLI_dynstr_printf(ds, "samp%d, gl_TexCoord[%d].st);\n", + BLI_dynstr_appendf(ds, "\tvec4 tex%d = texture2D(", input->texid); + BLI_dynstr_appendf(ds, "samp%d, gl_TexCoord[%d].st);\n", input->texid, input->texid); } } @@ -633,7 +606,7 @@ static void codegen_declare_tmps(DynStr *ds, ListBase *nodes) /* declare temporary variables for node output storage */ for (output=node->outputs.first; output; output=output->next) - BLI_dynstr_printf(ds, "\t%s tmp%d;\n", + BLI_dynstr_appendf(ds, "\t%s tmp%d;\n", GPU_DATATYPE_STR[output->type], output->id); } @@ -647,13 +620,13 @@ static void codegen_call_functions(DynStr *ds, ListBase *nodes, GPUOutput *final GPUOutput *output; for (node=nodes->first; node; node=node->next) { - BLI_dynstr_printf(ds, "\t%s(", node->name); + BLI_dynstr_appendf(ds, "\t%s(", node->name); for (input=node->inputs.first; input; input=input->next) { if (input->source == GPU_SOURCE_TEX) { - BLI_dynstr_printf(ds, "samp%d", input->texid); + BLI_dynstr_appendf(ds, "samp%d", input->texid); if (input->link) - BLI_dynstr_printf(ds, ", gl_TexCoord[%d].st", input->texid); + BLI_dynstr_appendf(ds, ", gl_TexCoord[%d].st", input->texid); } else if (input->source == GPU_SOURCE_TEX_PIXEL) { if (input->link && input->link->output) @@ -664,21 +637,21 @@ static void codegen_call_functions(DynStr *ds, ListBase *nodes, GPUOutput *final "tex", input->texid); } else if(input->source == GPU_SOURCE_BUILTIN) - BLI_dynstr_printf(ds, "%s", GPU_builtin_name(input->builtin)); + BLI_dynstr_appendf(ds, "%s", GPU_builtin_name(input->builtin)); else if(input->source == GPU_SOURCE_VEC_UNIFORM) { if(input->dynamicvec) - BLI_dynstr_printf(ds, "unf%d", input->id); + BLI_dynstr_appendf(ds, "unf%d", input->id); else - BLI_dynstr_printf(ds, "cons%d", input->id); + BLI_dynstr_appendf(ds, "cons%d", input->id); } else if (input->source == GPU_SOURCE_ATTRIB) - BLI_dynstr_printf(ds, "var%d", input->attribid); + BLI_dynstr_appendf(ds, "var%d", input->attribid); BLI_dynstr_append(ds, ", "); } for (output=node->outputs.first; output; output=output->next) { - BLI_dynstr_printf(ds, "tmp%d", output->id); + BLI_dynstr_appendf(ds, "tmp%d", output->id); if (output->next) BLI_dynstr_append(ds, ", "); } @@ -702,7 +675,7 @@ static char *code_generate_fragment(ListBase *nodes, GPUOutput *output, const ch codegen_print_uniforms_functions(ds, nodes); //if(G.f & G_DEBUG) - // BLI_dynstr_printf(ds, "/* %s */\n", name); + // BLI_dynstr_appendf(ds, "/* %s */\n", name); BLI_dynstr_append(ds, "void main(void)\n"); BLI_dynstr_append(ds, "{\n"); @@ -731,9 +704,9 @@ static char *code_generate_vertex(ListBase *nodes) for (node=nodes->first; node; node=node->next) { for (input=node->inputs.first; input; input=input->next) { if (input->source == GPU_SOURCE_ATTRIB && input->attribfirst) { - BLI_dynstr_printf(ds, "attribute %s att%d;\n", + BLI_dynstr_appendf(ds, "attribute %s att%d;\n", GPU_DATATYPE_STR[input->type], input->attribid); - BLI_dynstr_printf(ds, "varying %s var%d;\n", + BLI_dynstr_appendf(ds, "varying %s var%d;\n", GPU_DATATYPE_STR[input->type], input->attribid); } } @@ -747,11 +720,11 @@ static char *code_generate_vertex(ListBase *nodes) if (input->source == GPU_SOURCE_ATTRIB && input->attribfirst) { if(input->attribtype == CD_TANGENT) /* silly exception */ { - BLI_dynstr_printf(ds, "\tvar%d.xyz = normalize((gl_ModelViewMatrix * vec4(att%d.xyz, 0)).xyz);\n", input->attribid, input->attribid); - BLI_dynstr_printf(ds, "\tvar%d.w = att%d.w;\n", input->attribid, input->attribid); + BLI_dynstr_appendf(ds, "\tvar%d.xyz = normalize((gl_ModelViewMatrix * vec4(att%d.xyz, 0)).xyz);\n", input->attribid, input->attribid); + BLI_dynstr_appendf(ds, "\tvar%d.w = att%d.w;\n", input->attribid, input->attribid); } else - BLI_dynstr_printf(ds, "\tvar%d = att%d;\n", input->attribid, input->attribid); + BLI_dynstr_appendf(ds, "\tvar%d = att%d;\n", input->attribid, input->attribid); } BLI_dynstr_append(ds, "}\n\n"); @@ -799,9 +772,9 @@ static void GPU_nodes_extract_dynamic_inputs(GPUPass *pass, ListBase *nodes) continue; if (input->ima || input->tex) - snprintf(input->shadername, sizeof(input->shadername), "samp%d", input->texid); + BLI_snprintf(input->shadername, sizeof(input->shadername), "samp%d", input->texid); else - snprintf(input->shadername, sizeof(input->shadername), "unf%d", input->id); + BLI_snprintf(input->shadername, sizeof(input->shadername), "unf%d", input->id); /* pass non-dynamic uniforms to opengl */ extract = 0; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4abcbc684e2..e1c38a82142 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1251,7 +1251,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) #if 0 // gives python decoding errors while generating docs :( char error_str[256]; - snprintf(error_str, sizeof(error_str), "RNA Warning: Current value \"%d\" matches no enum in '%s', '%s', '%s'", val, RNA_struct_identifier(ptr->type), ptr_name, RNA_property_identifier(prop)); + BLI_snprintf(error_str, sizeof(error_str), "RNA Warning: Current value \"%d\" matches no enum in '%s', '%s', '%s'", val, RNA_struct_identifier(ptr->type), ptr_name, RNA_property_identifier(prop)); PyErr_Warn(PyExc_RuntimeWarning, error_str); #endif -- cgit v1.2.3 From 947d4a654b7ec3b7f413f2132a0524ab2e2e5c9e Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 30 Aug 2011 10:09:10 +0000 Subject: Fix for [#25062] Sound Actuator - Positional Audio. Now all sounds that are not mono but have 3D checked automatically get reduced to mono during BGE conversion time. Also removed the now unneeded function sound_get_channels and added a missing header file to audaspace's CMakeLists.txt. --- source/blender/blenkernel/BKE_sound.h | 2 -- source/blender/blenkernel/intern/sound.c | 10 ---------- 2 files changed, 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index e1b6ff02bc4..fac5bf1cfd2 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -134,8 +134,6 @@ void sound_free_waveform(struct bSound* sound); void sound_read_waveform(struct bSound* sound); -int sound_get_channels(struct bSound* sound); - void sound_update_scene(struct Scene* scene); void* sound_get_factory(void* sound); diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 985fef974d3..cdb509ab8e1 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -641,15 +641,6 @@ void sound_read_waveform(struct bSound* sound) } } -int sound_get_channels(struct bSound* sound) -{ - AUD_SoundInfo info; - - info = AUD_getInfo(sound->playback_handle); - - return info.specs.channels; -} - void sound_update_scene(struct Scene* scene) { Object* ob; @@ -769,6 +760,5 @@ void sound_seek_scene(struct bContext *UNUSED(C)) {} float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; } int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } -int sound_get_channels(struct bSound* UNUSED(sound)) { return 1; } #endif // WITH_AUDASPACE -- cgit v1.2.3 From b20c9b0ba368d5685d3c996572780befe852b889 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 30 Aug 2011 10:49:58 +0000 Subject: minor edits, pep8 - also correct float -> double promotion for blf. --- source/blender/blenfont/intern/blf.c | 30 ++++++++++++++--------------- source/blender/editors/space_nla/nla_edit.c | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c index c0e62b1c0c7..fc812d652b3 100644 --- a/source/blender/blenfont/intern/blf.c +++ b/source/blender/blenfont/intern/blf.c @@ -369,28 +369,28 @@ void BLF_position(int fontid, float x, float y, float z) za= 1.0f; } - remainder= x - floor(x); - if (remainder > 0.4 && remainder < 0.6) { - if (remainder < 0.5) - x -= 0.1 * xa; + remainder= x - floorf(x); + if (remainder > 0.4f && remainder < 0.6f) { + if (remainder < 0.5f) + x -= 0.1f * xa; else - x += 0.1 * xa; + x += 0.1f * xa; } - remainder= y - floor(y); - if (remainder > 0.4 && remainder < 0.6) { - if (remainder < 0.5) - y -= 0.1 * ya; + remainder= y - floorf(y); + if (remainder > 0.4f && remainder < 0.6f) { + if (remainder < 0.5f) + y -= 0.1f * ya; else - y += 0.1 * ya; + y += 0.1f * ya; } - remainder= z - floor(z); - if (remainder > 0.4 && remainder < 0.6) { - if (remainder < 0.5) - z -= 0.1 * za; + remainder= z - floorf(z); + if (remainder > 0.4f && remainder < 0.6f) { + if (remainder < 0.5f) + z -= 0.1f * za; else - z += 0.1 * za; + z += 0.1f * za; } font->pos[0]= x; diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 1894a9fd651..08026e8a1d2 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -1858,7 +1858,7 @@ static int nlaedit_snap_exec (bContext *C, wmOperator *op) strip->start= (float)CFRA; break; case NLAEDIT_SNAP_NEAREST_FRAME: /* to nearest frame */ - strip->start= floorf(start+0.5); + strip->start= floorf(start+0.5f); break; case NLAEDIT_SNAP_NEAREST_SECOND: /* to nearest second */ strip->start= floorf(start/secf + 0.5f) * secf; -- cgit v1.2.3 From 131c2a3208842f36c1958d6f9ff19dde5c2bd76c Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 30 Aug 2011 14:41:23 +0000 Subject: Fix for [#28425] when user prefs -> editing -> align to == "view" newly inserted objects do not show the applied rotation in the tools panel Patch by Andrew Wiggin, thanks! :) --- source/blender/editors/object/object_add.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 5212bf32834..fa529374bf7 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -276,8 +276,10 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, floa RNA_boolean_set(op->ptr, "view_align", view_align); } - if (view_align) + if (view_align) { ED_object_rotation_from_view(C, rot); + RNA_float_set_array(op->ptr, "rotation", rot); + } else RNA_float_get_array(op->ptr, "rotation", rot); -- cgit v1.2.3 From 9eb9d9b7d2492b12cf61859597093980b565694c Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 30 Aug 2011 15:30:38 +0000 Subject: Fix #28427: smooth faces flash momentarily when extruded using "extrude and move on normals" tool (E key) Update normals just after extrude -- topology is changing when extruding and normals for non-extruded faces should be recalculated after this. --- source/blender/editors/mesh/editmesh_lib.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index b7ed6ec14ca..0afa2d01702 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -1141,6 +1141,9 @@ short extrudeflag_face_indiv(EditMesh *em, short UNUSED(flag), float *UNUSED(nor EM_select_flush(em); + /* step 5; update normals after extrude */ + recalc_editnormals(em); + return 'n'; } @@ -1206,6 +1209,9 @@ short extrudeflag_edges_indiv(EditMesh *em, short flag, float *nor) if(eed->v1->f & eed->v2->f & flag) eed->f |= flag; } + /* update normals after extrude */ + recalc_editnormals(em); + if(is_zero_v3(nor)) return 'g'; // g is grab return 'n'; // n is for normal constraint } @@ -1485,6 +1491,9 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short UNUSED(flag), EM_select_flush(em); + /* step 8; update normals after extrude */ + recalc_editnormals(em); + if(is_zero_v3(nor)) return 'g'; // grab return 'n'; // normal constraint } -- cgit v1.2.3 From c6f994062e4f871aa2f81c289b49ac7245b3056c Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 30 Aug 2011 15:43:00 +0000 Subject: Check for potential crasher. Reported and suggested in [#27687] by Dean Giberson. Couldn't redo crash myself, but better safe than sorry :) --- source/blender/collada/ExtraHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/ExtraHandler.cpp b/source/blender/collada/ExtraHandler.cpp index a60ef8b2ea5..820665ad757 100644 --- a/source/blender/collada/ExtraHandler.cpp +++ b/source/blender/collada/ExtraHandler.cpp @@ -56,7 +56,7 @@ bool ExtraHandler::textData(const char* text, size_t textLength) { char buf[1024]; - if(currentElement.length() == 0) return false; + if(currentElement.length() == 0 || currentExtraTags == 0) return false; BLI_snprintf(buf, textLength+1, "%s", text); currentExtraTags->addTag(currentElement, std::string(buf)); -- cgit v1.2.3 From 5ac81bfe9c523c2ea0dcbc55bc8454c2e12239e0 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Tue, 30 Aug 2011 19:38:32 +0000 Subject: SVN maintenance. --- source/blender/collada/AnimationExporter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 267ad4be887..d277dad8e8c 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -160,4 +160,4 @@ protected: char* extract_transform_name(char *rna_path); std::string getObjectBoneName ( Object *ob,const FCurve * fcu); -}; \ No newline at end of file +}; -- cgit v1.2.3 From c58a0c5eb814db1be08c0e8a4353ad5606a23d30 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 30 Aug 2011 23:08:38 +0000 Subject: catch exception and report an error when failing to write exr files - was crashing with debug builds. --- source/blender/editors/space_image/image_ops.c | 2 +- .../blender/imbuf/intern/openexr/openexr_api.cpp | 15 +++++++-- .../blender/imbuf/intern/openexr/openexr_multi.h | 4 +-- source/blender/imbuf/intern/writeimage.c | 1 - source/blender/render/extern/include/RE_pipeline.h | 4 +-- source/blender/render/intern/source/pipeline.c | 39 ++++++++++++++++------ 6 files changed, 46 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index d58b78ff6a7..f96a8ea4d84 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -1069,7 +1069,7 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI Scene *scene= CTX_data_scene(C); RenderResult *rr= BKE_image_acquire_renderresult(scene, ima); if(rr) { - RE_WriteRenderResult(rr, simopts->filepath, simopts->quality); + RE_WriteRenderResult(op->reports, rr, simopts->filepath, simopts->quality); ok= TRUE; } else { diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index 7b528ed9624..88f6508d356 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -487,7 +487,7 @@ void IMB_exr_add_channel(void *handle, const char *layname, const char *passname } /* only used for writing temp. render results (not image files) */ -void IMB_exr_begin_write(void *handle, const char *filename, int width, int height, int compress) +int IMB_exr_begin_write(void *handle, const char *filename, int width, int height, int compress) { ExrHandle *data= (ExrHandle *)handle; Header header (width, height); @@ -504,8 +504,17 @@ void IMB_exr_begin_write(void *handle, const char *filename, int width, int heig /* header.lineOrder() = DECREASING_Y; this crashes in windows for file read! */ header.insert ("BlenderMultiChannel", StringAttribute ("Blender V2.55.1 and newer")); - - data->ofile = new OutputFile(filename, header); + + /* avoid crash/abort when we dont have permission to write here */ + try { + data->ofile = new OutputFile(filename, header); + } + catch (const std::exception &exc) { + std::cerr << "IMB_exr_begin_write: ERROR: " << exc.what() << std::endl; + data->ofile = NULL; + } + + return (data->ofile != NULL); } void IMB_exrtile_begin_write(void *handle, const char *filename, int mipmap, int width, int height, int tilex, int tiley) diff --git a/source/blender/imbuf/intern/openexr/openexr_multi.h b/source/blender/imbuf/intern/openexr/openexr_multi.h index 3d95bb7c306..58c5e0f2a3e 100644 --- a/source/blender/imbuf/intern/openexr/openexr_multi.h +++ b/source/blender/imbuf/intern/openexr/openexr_multi.h @@ -50,7 +50,7 @@ void * IMB_exr_get_handle (void); void IMB_exr_add_channel (void *handle, const char *layname, const char *passname, int xstride, int ystride, float *rect); int IMB_exr_begin_read (void *handle, const char *filename, int *width, int *height); -void IMB_exr_begin_write (void *handle, const char *filename, int width, int height, int compress); +int IMB_exr_begin_write (void *handle, const char *filename, int width, int height, int compress); void IMB_exrtile_begin_write (void *handle, const char *filename, int mipmap, int width, int height, int tilex, int tiley); void IMB_exr_set_channel (void *handle, const char *layname, const char *passname, int xstride, int ystride, float *rect); @@ -75,7 +75,7 @@ void * IMB_exr_get_handle (void) {return NULL;} void IMB_exr_add_channel (void *handle, const char *layname, const char *channame, int xstride, int ystride, float *rect) { (void)handle; (void)layname; (void)channame; (void)xstride; (void)ystride; (void)rect; } int IMB_exr_begin_read (void *handle, const char *filename, int *width, int *height) { (void)handle; (void)filename; (void)width; (void)height; return 0;} -void IMB_exr_begin_write (void *handle, const char *filename, int width, int height, int compress) { (void)handle; (void)filename; (void)width; (void)height; (void)compress; } +int IMB_exr_begin_write (void *handle, const char *filename, int width, int height, int compress) { (void)handle; (void)filename; (void)width; (void)height; (void)compress; return 0;} void IMB_exrtile_begin_write (void *handle, const char *filename, int mipmap, int width, int height, int tilex, int tiley) { (void)handle; (void)filename; (void)mipmap; (void)width; (void)height; (void)tilex; (void)tiley; } void IMB_exr_set_channel (void *handle, char *layname, const char *channame, int xstride, int ystride, float *rect) { (void)handle; (void)layname; (void)channame; (void)xstride; (void)ystride; (void)rect; } diff --git a/source/blender/imbuf/intern/writeimage.c b/source/blender/imbuf/intern/writeimage.c index cd660e11f26..b933e6d93ee 100644 --- a/source/blender/imbuf/intern/writeimage.c +++ b/source/blender/imbuf/intern/writeimage.c @@ -55,7 +55,6 @@ short IMB_saveiff(struct ImBuf *ibuf, const char *name, int flags) if(ibuf->rect==NULL && ibuf->rect_float) IMB_rect_from_float(ibuf); } - /* TODO. have const char for image write funcs */ return type->save(ibuf, name, flags); } } diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 0736bed4faf..97ffcd95473 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -227,8 +227,8 @@ void RE_SetReports(struct Render *re, struct ReportList *reports); /* main preview render call */ void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene); -void RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode); -void RE_WriteRenderResult(RenderResult *rr, const char *filename, int compress); +int RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode); +int RE_WriteRenderResult(struct ReportList *reports, RenderResult *rr, const char *filename, int compress); struct RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty); extern const float default_envmap_layout[]; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 0d5f8c77f6b..77b637b5129 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -824,11 +824,12 @@ static char *make_pass_name(RenderPass *rpass, int chan) /* filename already made absolute */ /* called from within UI, saves both rendered result as a file-read result */ -void RE_WriteRenderResult(RenderResult *rr, const char *filename, int compress) +int RE_WriteRenderResult(ReportList *reports, RenderResult *rr, const char *filename, int compress) { RenderLayer *rl; RenderPass *rpass; void *exrhandle= IMB_exr_get_handle(); + int success; BLI_make_existing_file(filename); @@ -864,11 +865,20 @@ void RE_WriteRenderResult(RenderResult *rr, const char *filename, int compress) } } } - - IMB_exr_begin_write(exrhandle, filename, rr->rectx, rr->recty, compress); - - IMB_exr_write_channels(exrhandle); + + /* when the filename has no permissions, this can fail */ + if(IMB_exr_begin_write(exrhandle, filename, rr->rectx, rr->recty, compress)) { + IMB_exr_write_channels(exrhandle); + success= TRUE; + } + else { + /* TODO, get the error from openexr's exception */ + BKE_report(reports, RPT_ERROR, "Error Writing Render Result, see console"); + success= FALSE; + } IMB_exr_close(exrhandle); + + return success; } /* callbacks for RE_MultilayerConvert */ @@ -992,9 +1002,10 @@ static int read_render_result_from_file(const char *filename, RenderResult *rr) } /* only for temp buffer files, makes exact copy of render result */ -static void read_render_result(Render *re, int sample) +static int read_render_result(Render *re, int sample) { char str[FILE_MAX]; + int success; BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); @@ -1004,10 +1015,18 @@ static void read_render_result(Render *re, int sample) render_unique_exr_name(re, str, sample); printf("read exr tmp file: %s\n", str); - if(!read_render_result_from_file(str, re->result)) + if(read_render_result_from_file(str, re->result)) { + success= TRUE; + } + else { printf("cannot read: %s\n", str); + success= FALSE; + + } BLI_rw_mutex_unlock(&re->resultmutex); + + return success; } /* *************************************************** */ @@ -2981,7 +3000,7 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, c if(re->r.imtype==R_MULTILAYER) { if(re->result) { - RE_WriteRenderResult(re->result, name, scene->r.quality); + RE_WriteRenderResult(re->reports, re->result, name, scene->r.quality); printf("Saved: %s", name); } } @@ -3198,7 +3217,7 @@ void RE_PreviewRender(Render *re, Main *bmain, Scene *sce) /* note; repeated win/disprect calc... solve that nicer, also in compo */ /* only the temp file! */ -void RE_ReadRenderResult(Scene *scene, Scene *scenode) +int RE_ReadRenderResult(Scene *scene, Scene *scenode) { Render *re; int winx, winy; @@ -3232,7 +3251,7 @@ void RE_ReadRenderResult(Scene *scene, Scene *scenode) RE_InitState(re, NULL, &scene->r, NULL, winx, winy, &disprect); re->scene= scene; - read_render_result(re, 0); + return read_render_result(re, 0); } void RE_set_max_threads(int threads) -- cgit v1.2.3 From 2883e035c87a4236629d9a89ea0a6e80b525e7d3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 30 Aug 2011 23:37:46 +0000 Subject: fix for error in my recent change to image save. - relative path wasn't being made absolute. - saving renders was always defaulting to multilayer exr, now use the output format set. --- source/blender/editors/space_image/image_ops.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index f96a8ea4d84..68f9e4d033e 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -960,20 +960,19 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, if(ibuf) { Image *ima= sima->image; - RenderResult *rr= BKE_image_acquire_renderresult(scene, ima); simopts->planes= ibuf->depth; - /* cant save multilayer sequence, ima->rr isn't valid for a specific frame */ - if(rr && !(ima->source==IMA_SRC_SEQUENCE && ima->type==IMA_TYPE_MULTILAYER)) - simopts->imtype= R_MULTILAYER; - else if(ima->type==IMA_TYPE_R_RESULT) + if(ELEM(ima->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE)) { simopts->imtype= scene->r.imtype; - else if (ima->source == IMA_SRC_GENERATED) + simopts->planes= scene->r.planes; + } + else if (ima->source == IMA_SRC_GENERATED) { simopts->imtype= R_PNG; - else + } + else { simopts->imtype= BKE_ftype_to_imtype(ibuf->ftype); - + } simopts->subimtype= scene->r.subimtype; /* XXX - this is lame, we need to make these available too! */ simopts->quality= ibuf->ftype & 0xff; @@ -1000,8 +999,6 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, } BLI_path_abs(simopts->filepath, G.main->name); } - /* cleanup */ - BKE_image_release_renderresult(scene, ima); } ED_space_image_release_buffer(sima, lock); @@ -1016,7 +1013,10 @@ static void save_image_options_from_op(SaveImageOptions *simopts, wmOperator *op // if (RNA_property_is_set(op->ptr, "subimtype")) simopts->subimtype= RNA_enum_get(op->ptr, "subimtype"); // XXX if (RNA_property_is_set(op->ptr, "file_quality")) simopts->quality= RNA_int_get(op->ptr, "file_quality"); - if (RNA_property_is_set(op->ptr, "filepath")) RNA_string_get(op->ptr, "filepath", simopts->filepath); + if (RNA_property_is_set(op->ptr, "filepath")) { + RNA_string_get(op->ptr, "filepath", simopts->filepath); + BLI_path_abs(simopts->filepath, G.main->name); + } } static void save_image_options_to_op(SaveImageOptions *simopts, wmOperator *op) -- cgit v1.2.3 From 79249f8aede5c5481c625335b5ef7bd9b4cf28cc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 31 Aug 2011 01:05:40 +0000 Subject: fix [#28430] Image with Stampinfo does not get saved correctly with alpha --- source/blender/blenfont/intern/blf_font.c | 9 ++++++++- source/blender/blenpluginapi/iff.h | 2 +- source/blender/imbuf/IMB_imbuf.h | 2 +- source/blender/imbuf/intern/rectop.c | 10 +++++++++- 4 files changed, 19 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c index 708b3708ab7..fb6505fe935 100644 --- a/source/blender/blenfont/intern/blf_font.c +++ b/source/blender/blenfont/intern/blf_font.c @@ -213,7 +213,7 @@ void blf_font_buffer(FontBLF *font, const char *str) { unsigned char *cbuf; unsigned int c; - unsigned char b_col_char[3]; + unsigned char b_col_char[4]; GlyphBLF *g, *g_prev; FT_Vector delta; FT_UInt glyph_index; @@ -232,6 +232,7 @@ void blf_font_buffer(FontBLF *font, const char *str) b_col_char[0]= font->b_col[0] * 255; b_col_char[1]= font->b_col[1] * 255; b_col_char[2]= font->b_col[2] * 255; + b_col_char[3]= font->b_col[3] * 255; while (str[i]) { int pen_y; @@ -296,16 +297,19 @@ void blf_font_buffer(FontBLF *font, const char *str) a= *(g->bitmap + x + (yb * g->pitch)) / 255.0f; if(a > 0.0f) { + float alphatest; fbuf= font->b_fbuf + font->bch * ((chx + x) + ((pen_y + y)*font->bw)); if (a >= 1.0f) { fbuf[0]= font->b_col[0]; fbuf[1]= font->b_col[1]; fbuf[2]= font->b_col[2]; + fbuf[3]= (alphatest= (fbuf[3] + (font->b_col[3]))) < 1.0f ? alphatest : 1.0f; } else { fbuf[0]= (font->b_col[0]*a) + (fbuf[0] * (1-a)); fbuf[1]= (font->b_col[1]*a) + (fbuf[1] * (1-a)); fbuf[2]= (font->b_col[2]*a) + (fbuf[2] * (1-a)); + fbuf[3]= (alphatest= (fbuf[3] + (font->b_col[3]*a))) < 1.0f ? alphatest : 1.0f; } } } @@ -324,16 +328,19 @@ void blf_font_buffer(FontBLF *font, const char *str) a= *(g->bitmap + x + (yb * g->pitch)) / 255.0f; if(a > 0.0f) { + int alphatest; cbuf= font->b_cbuf + font->bch * ((chx + x) + ((pen_y + y)*font->bw)); if (a >= 1.0f) { cbuf[0]= b_col_char[0]; cbuf[1]= b_col_char[1]; cbuf[2]= b_col_char[2]; + cbuf[3]= (alphatest= ((int)cbuf[3] + (int)b_col_char[3])) < 255 ? alphatest : 255; } else { cbuf[0]= (b_col_char[0]*a) + (cbuf[0] * (1-a)); cbuf[1]= (b_col_char[1]*a) + (cbuf[1] * (1-a)); cbuf[2]= (b_col_char[2]*a) + (cbuf[2] * (1-a)); + cbuf[3]= (alphatest= ((int)cbuf[3] + (int)((font->b_col[3]*a)*255.0f))) < 255 ? alphatest : 255; } } } diff --git a/source/blender/blenpluginapi/iff.h b/source/blender/blenpluginapi/iff.h index 77cdf889ea5..d29853f7d15 100644 --- a/source/blender/blenpluginapi/iff.h +++ b/source/blender/blenpluginapi/iff.h @@ -115,7 +115,7 @@ LIBIMPORT void IMB_rectcpy(struct ImBuf *dbuf, struct ImBuf *sbuf, LIBIMPORT void IMB_rectfill(struct ImBuf *drect, const float col[4]); LIBIMPORT void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, int y2); -LIBIMPORT void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2); +LIBIMPORT void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], int x1, int y1, int x2, int y2); LIBIMPORT void IMB_rectfill_alpha(struct ImBuf *drect, const float value); #endif /* IFF_H */ diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index 1fbe8e01fd4..2c926f2d94b 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -499,7 +499,7 @@ void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, i void IMB_rectfill_alpha(struct ImBuf *ibuf, const float value); /* this should not be here, really, we needed it for operating on render data, IMB_rectfill_area calls it */ -void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2); +void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], int x1, int y1, int x2, int y2); /* defined in metadata.c */ int IMB_metadata_change_field(struct ImBuf *img, const char *key, const char *field); diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c index 844478e03cb..db2ae3a5114 100644 --- a/source/blender/imbuf/intern/rectop.c +++ b/source/blender/imbuf/intern/rectop.c @@ -482,7 +482,7 @@ void IMB_rectfill(struct ImBuf *drect, const float col[4]) } -void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2) +void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], int x1, int y1, int x2, int y2) { int i, j; float a; /* alpha */ @@ -509,6 +509,8 @@ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, unsigned char *pixel; unsigned char chr=0, chg=0, chb=0; float fr=0, fg=0, fb=0; + + const int alphaint= FTOCHAR(a); if (a == 1.0f) { chr = FTOCHAR(col[0]); @@ -527,10 +529,13 @@ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, pixel[0] = chr; pixel[1] = chg; pixel[2] = chb; + pixel[3] = 255; } else { + int alphatest; pixel[0] = (char)((fr + ((float)pixel[0]*aich))*255.0f); pixel[1] = (char)((fg + ((float)pixel[1]*aich))*255.0f); pixel[2] = (char)((fb + ((float)pixel[2]*aich))*255.0f); + pixel[3] = (char)((alphatest= ((int)pixel[3] + alphaint)) < 255 ? alphatest : 255); } } } @@ -546,10 +551,13 @@ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, pixel[0] = col[0]; pixel[1] = col[1]; pixel[2] = col[2]; + pixel[3] = 1.0f; } else { + float alphatest; pixel[0] = (col[0]*a) + (pixel[0]*ai); pixel[1] = (col[1]*a) + (pixel[1]*ai); pixel[2] = (col[2]*a) + (pixel[2]*ai); + pixel[3] = (alphatest= (pixel[3] + a)) < 1.0f ? alphatest : 1.0f; } } } -- cgit v1.2.3 From 471c005137540dd4c348c2f8e93146c0dff37a3f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 31 Aug 2011 01:07:55 +0000 Subject: typo fix: end of lines ;; --> ; --- source/blender/blenkernel/intern/collision.c | 2 +- source/blender/blenlib/intern/math_matrix.c | 2 +- source/blender/editors/space_logic/logic_window.c | 2 +- source/blender/editors/space_view3d/view3d_edit.c | 2 +- source/blender/python/intern/bpy_intern_string.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c index e2a1b0dfb33..a63e91cc8be 100644 --- a/source/blender/blenkernel/intern/collision.c +++ b/source/blender/blenkernel/intern/collision.c @@ -1091,7 +1091,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM VECADDMUL(cloth1->verts[collpair->ap1].impulse, pimpulse, w1*2.0); VECADDMUL(cloth1->verts[collpair->ap2].impulse, pimpulse, w2*2.0); - VECADDMUL(cloth1->verts[collpair->ap3].impulse, pimpulse, w3*2.0);; + VECADDMUL(cloth1->verts[collpair->ap3].impulse, pimpulse, w3*2.0); cloth1->verts[collpair->ap1].impulse_count++; cloth1->verts[collpair->ap2].impulse_count++; cloth1->verts[collpair->ap3].impulse_count++; diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index 5edf6e28d4c..3c79a77707a 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -820,7 +820,7 @@ void normalize_m4_m4(float rmat[][4], float mat[][4]) len= normalize_v3_v3(rmat[1], mat[1]); if(len!=0.0f) rmat[1][3]= mat[1][3] / len; len= normalize_v3_v3(rmat[2], mat[2]); - if(len!=0.0f) rmat[2][3]= mat[2][3] / len;; + if(len!=0.0f) rmat[2][3]= mat[2][3] / len; } void adjoint_m3_m3(float m1[][3], float m[][3]) diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index 882d89fcd33..920e93cc0fc 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3677,7 +3677,7 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr) { Object *ob = (Object *)ptr->id.data; PointerRNA settings_ptr; - uiLayout *row, *subrow, *col;; + uiLayout *row, *subrow, *col; RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index e9ed5dac3de..19e8d42db2d 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -3475,7 +3475,7 @@ void ED_view3d_from_m4(float mat[][4], float ofs[3], float quat[4], float *dist) copy_m3_m4(nmat, mat); normalize_m3(nmat); - mul_m3_v3(nmat, vec);; + mul_m3_v3(nmat, vec); sub_v3_v3(ofs, vec); } } diff --git a/source/blender/python/intern/bpy_intern_string.c b/source/blender/python/intern/bpy_intern_string.c index 6fc861b2a0d..7c80653496f 100644 --- a/source/blender/python/intern/bpy_intern_string.c +++ b/source/blender/python/intern/bpy_intern_string.c @@ -40,7 +40,7 @@ PyObject *bpy_intern_str___slots__; void bpy_intern_string_init(void) { bpy_intern_str_register= PyUnicode_FromString("register"); - bpy_intern_str_unregister= PyUnicode_FromString("unregister");; + bpy_intern_str_unregister= PyUnicode_FromString("unregister"); bpy_intern_str_bl_rna= PyUnicode_FromString("bl_rna"); bpy_intern_str_order= PyUnicode_FromString("order"); bpy_intern_str_attr= PyUnicode_FromString("attr"); -- cgit v1.2.3 From d0d82c69e96e96845a59ad625900a94187dac621 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 31 Aug 2011 09:37:14 +0000 Subject: COLLADA: Take parent bone length and direction instead of using bone pointing up with length 1. Looks much nicer and less confusing on larger armatures now. --- source/blender/collada/ArmatureImporter.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 1e7879b352f..2ec8ae540d2 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -310,9 +310,10 @@ void ArmatureImporter::fix_leaf_bones( ) LeafBone& leaf = *it; // pointing up - float vec[3] = {0.0f, 0.0f, 1.0f}; + float vec[3] = {0.0f, 0.0f, 0.1f}; - //mul_v3_fl(vec, leaf_bone_length); + // if parent: take parent length and direction + if(leaf.bone->parent) sub_v3_v3v3(vec, leaf.bone->parent->tail, leaf.bone->parent->head); copy_v3_v3(leaf.bone->tail, leaf.bone->head); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); -- cgit v1.2.3 From fde215025eff7f3581435bfdb90fb9d354538d07 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 31 Aug 2011 10:43:22 +0000 Subject: patch [#28218] During-render callback functionality from Jesse Kaukonen (gekko) --- text from the patch. Recently Campbell Barton added callback functionality for Python's usage, but this only includes pre- and post-render callbacks. There are no callbacks for the duration of the render. This patch adds the few lines required for executing a callback while Blender Render is working. The callback resides in the rendering pipeline stats function, so whenever statistics are printed, the callback is executed. This functionality is required if one wants to: 1) Observe what is happening while Blender is rendering via the command line 2) Add custom statistics that Blender prints while the renderer works 3) The user wants to continue executing his Python script without the code halting at bpy.ops.render.render() Personally I'm currently using this for printing out more detailed progress reports at Renderfarm.fi (such as CPU time, time spent rendering, total progress in regards to the entire rendering process). Tested on Windows, Linux and OS X. Example on how to use the callback: def statscall(context): print("Thanks for calling!") bpy.app.handlers.render_stats.append(statscall) bpy.ops.render.render(animation=False, write_still=True) --- source/blender/blenlib/BLI_callbacks.h | 1 + source/blender/python/intern/bpy_app_handlers.c | 5 +++-- source/blender/render/intern/source/pipeline.c | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h index 1735848e774..f20cef9c3ea 100644 --- a/source/blender/blenlib/BLI_callbacks.h +++ b/source/blender/blenlib/BLI_callbacks.h @@ -42,6 +42,7 @@ struct ID; typedef enum { BLI_CB_EVT_RENDER_PRE, BLI_CB_EVT_RENDER_POST, + BLI_CB_EVT_RENDER_STATS, BLI_CB_EVT_LOAD_PRE, BLI_CB_EVT_LOAD_POST, BLI_CB_EVT_SAVE_PRE, diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c index 26d9ca76e3f..e7e46160199 100644 --- a/source/blender/python/intern/bpy_app_handlers.c +++ b/source/blender/python/intern/bpy_app_handlers.c @@ -42,9 +42,10 @@ static PyTypeObject BlenderAppCbType; static PyStructSequence_Field app_cb_info_fields[]= { {(char *)"render_pre", NULL}, {(char *)"render_post", NULL}, - {(char *)"load_pre", NULL}, + {(char *)"render_stats", NULL}, + {(char *)"load_pre", NULL}, {(char *)"load_post", NULL}, - {(char *)"save_pre", NULL}, + {(char *)"save_pre", NULL}, {(char *)"save_post", NULL}, {NULL} }; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 77b637b5129..24c55332bff 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -173,6 +173,9 @@ static void stats_background(void *UNUSED(arg), RenderStats *rs) else fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->totlamp); } + + BLI_exec_cb(rs, (ID *)rs, BLI_CB_EVT_RENDER_STATS); + fputc('\n', stdout); fflush(stdout); } -- cgit v1.2.3 From a22dc764bbb68bf05ddfd567c27229fbf1a63271 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 1 Sep 2011 01:13:50 +0000 Subject: fix for error in patch from r39821. --- source/blender/render/intern/source/pipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 24c55332bff..68190014041 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -174,7 +174,7 @@ static void stats_background(void *UNUSED(arg), RenderStats *rs) fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->totlamp); } - BLI_exec_cb(rs, (ID *)rs, BLI_CB_EVT_RENDER_STATS); + BLI_exec_cb(G.main, NULL, BLI_CB_EVT_RENDER_STATS); fputc('\n', stdout); fflush(stdout); -- cgit v1.2.3 From 00143a3d557d87dda2bb7074dfe2b1a3acf5f28f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 1 Sep 2011 01:48:50 +0000 Subject: spaces -> tabs (configure you're editors right!) --- source/blender/blenkernel/intern/collision.c | 4 +- source/blender/blenlib/intern/math_geom.c | 2 +- source/blender/editors/object/object_bake.c | 2 +- source/blender/editors/space_node/drawnode.c | 2 +- source/blender/editors/space_view3d/view3d_view.c | 4 +- source/blender/imbuf/intern/anim_movie.c | 2 +- source/blender/imbuf/intern/indexer_dv.c | 256 +++++++++++----------- source/blender/python/generic/bgl.c | 6 +- source/blender/render/intern/source/pipeline.c | 6 +- source/blender/render/intern/source/zbuf.c | 14 +- 10 files changed, 148 insertions(+), 150 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c index a63e91cc8be..ed073f03270 100644 --- a/source/blender/blenkernel/intern/collision.c +++ b/source/blender/blenkernel/intern/collision.c @@ -1487,8 +1487,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, sdis = clmd->coll_parms->distance_repel + epsilon2 + FLT_EPSILON; - /*apply a repulsion force, to help the solver along. - this is kindof crude, it only tests one vert of the triangle*/ + /* apply a repulsion force, to help the solver along. + * this is kindof crude, it only tests one vert of the triangle */ if (isect_ray_plane_v3(cloth->verts[collpair->ap1].tx, n2, collmd->current_xnew[collpair->bp1].co, collmd->current_xnew[collpair->bp2].co, collmd->current_xnew[collpair->bp3].co, &l, 0)) diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 5b5de3ab3b6..8f025880a86 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -1968,7 +1968,7 @@ void resolve_tri_uv(float uv[2], const float st[2], const float st0[2], const fl void resolve_quad_uv(float uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2]) { const double signed_area= (st0[0]*st1[1] - st0[1]*st1[0]) + (st1[0]*st2[1] - st1[1]*st2[0]) + - (st2[0]*st3[1] - st2[1]*st3[0]) + (st3[0]*st0[1] - st3[1]*st0[0]); + (st2[0]*st3[1] - st2[1]*st3[0]) + (st3[0]*st0[1] - st3[1]*st0[0]); /* X is 2D cross product (determinant) A= (p0-p) X (p0-p3)*/ diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index ee162464c70..07c006a7995 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -159,7 +159,7 @@ typedef struct { static void multiresbake_get_normal(const MResolvePixelData *data, float norm[], const int face_num, const int vert_index) { unsigned int indices[]= {data->mface[face_num].v1, data->mface[face_num].v2, - data->mface[face_num].v3, data->mface[face_num].v4}; + data->mface[face_num].v3, data->mface[face_num].v4}; const int smoothnormal= (data->mface[face_num].flag & ME_SMOOTH); if(!smoothnormal) { /* flat */ diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index c32d05e9c30..0474d1f3bb1 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1385,7 +1385,7 @@ static void node_texture_set_butfunc(bNodeType *ntype) default: ntype->uifunc= NULL; } - if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; + if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } /* ******* init draw callbacks for all tree types, only called in usiblender.c, once ************* */ diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index c48459108eb..44ae6837aa2 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -625,8 +625,8 @@ void ED_view3d_win_to_3d(ARegion *ar, const float depth_pt[3], const float mval[ } } else { - const float dx= (2.0f * mval[0] / (float)ar->winx) - 1.0f; - const float dy= (2.0f * mval[1] / (float)ar->winy) - 1.0f; + const float dx= (2.0f * mval[0] / (float)ar->winx) - 1.0f; + const float dy= (2.0f * mval[1] / (float)ar->winy) - 1.0f; line_sta[0]= (rv3d->persinv[0][0] * dx) + (rv3d->persinv[1][0] * dy) + rv3d->viewinv[3][0]; line_sta[1]= (rv3d->persinv[0][1] * dx) + (rv3d->persinv[1][1] * dy) + rv3d->viewinv[3][1]; line_sta[2]= (rv3d->persinv[0][2] * dx) + (rv3d->persinv[1][2] * dy) + rv3d->viewinv[3][2]; diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 7b172008bee..c4fe1523e90 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -922,7 +922,7 @@ static int ffmpeg_decode_video_frame(struct anim * anim) static void ffmpeg_decode_video_frame_scan( struct anim * anim, int64_t pts_to_search) { - /* there seem to exist *very* silly GOP lengths out in the wild... */ + /* there seem to exist *very* silly GOP lengths out in the wild... */ int count = 1000; av_log(anim->pFormatCtx, diff --git a/source/blender/imbuf/intern/indexer_dv.c b/source/blender/imbuf/intern/indexer_dv.c index 2def0d042b7..d1202136d56 100644 --- a/source/blender/imbuf/intern/indexer_dv.c +++ b/source/blender/imbuf/intern/indexer_dv.c @@ -30,8 +30,8 @@ #include typedef struct indexer_dv_bitstream { - unsigned char* buffer; - int bit_pos; + unsigned char* buffer; + int bit_pos; } indexer_dv_bitstream; static indexer_dv_bitstream bitstream_new(unsigned char* buffer_) @@ -57,41 +57,41 @@ static unsigned long bitstream_get_bits(indexer_dv_bitstream * This, int num) } static int parse_num(indexer_dv_bitstream * b, int numbits) { - return bitstream_get_bits(b, numbits); + return bitstream_get_bits(b, numbits); } static int parse_bcd(indexer_dv_bitstream * b, int n) { - char s[256]; + char s[256]; char * p = s + (n+3)/4; *p-- = 0; - while (n > 4) { - char a; - int v = bitstream_get_bits(b, 4); + while (n > 4) { + char a; + int v = bitstream_get_bits(b, 4); - n -= 4; + n -= 4; a = '0' + v; - if (a > '9') { - bitstream_get_bits(b, n); + if (a > '9') { + bitstream_get_bits(b, n); return -1; - } + } *p-- = a; - } - if (n) { - char a; - int v = bitstream_get_bits(b, n); - a = '0' + v; - if (a > '9') { + } + if (n) { + char a; + int v = bitstream_get_bits(b, n); + a = '0' + v; + if (a > '9') { return -1; - } - *p-- = a; - } + } + *p-- = a; + } - return atol(s); + return atol(s); } typedef struct indexer_dv_context @@ -125,124 +125,124 @@ typedef struct indexer_dv_context static void parse_packet(indexer_dv_context * This, unsigned char * p) { - indexer_dv_bitstream b; - int type = p[0]; + indexer_dv_bitstream b; + int type = p[0]; b = bitstream_new(p + 1); - switch (type) { - case 0x62: // Record date - parse_num(&b, 8); - This->rec_curr_day = parse_bcd(&b, 6); - parse_num(&b, 2); - This->rec_curr_month = parse_bcd(&b, 5); - parse_num(&b, 3); - This->rec_curr_year = parse_bcd(&b, 8); - if (This->rec_curr_year < 25) { - This->rec_curr_year += 2000; - } else { - This->rec_curr_year += 1900; - } - This->got_record_date = 1; - break; - case 0x63: // Record time - This->rec_curr_frame = parse_bcd(&b, 6); - parse_num(&b, 2); - This->rec_curr_second = parse_bcd(&b, 7); - parse_num(&b, 1); - This->rec_curr_minute = parse_bcd(&b, 7); - parse_num(&b, 1); - This->rec_curr_hour = parse_bcd(&b, 6); - This->got_record_time = 1; - break; - } + switch (type) { + case 0x62: // Record date + parse_num(&b, 8); + This->rec_curr_day = parse_bcd(&b, 6); + parse_num(&b, 2); + This->rec_curr_month = parse_bcd(&b, 5); + parse_num(&b, 3); + This->rec_curr_year = parse_bcd(&b, 8); + if (This->rec_curr_year < 25) { + This->rec_curr_year += 2000; + } else { + This->rec_curr_year += 1900; + } + This->got_record_date = 1; + break; + case 0x63: // Record time + This->rec_curr_frame = parse_bcd(&b, 6); + parse_num(&b, 2); + This->rec_curr_second = parse_bcd(&b, 7); + parse_num(&b, 1); + This->rec_curr_minute = parse_bcd(&b, 7); + parse_num(&b, 1); + This->rec_curr_hour = parse_bcd(&b, 6); + This->got_record_time = 1; + break; + } } static void parse_header_block(indexer_dv_context * This, unsigned char* target) { int i; - for (i = 3; i < 80; i += 5) { - if (target[i] != 0xff) { - parse_packet(This, target + i); - } - } + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } } static void parse_subcode_blocks( - indexer_dv_context * This, unsigned char* target) + indexer_dv_context * This, unsigned char* target) { int i,j; - for (j = 0; j < 2; j++) { - for (i = 3; i < 80; i += 5) { - if (target[i] != 0xff) { - parse_packet(This, target + i); - } - } - } + for (j = 0; j < 2; j++) { + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } + } } static void parse_vaux_blocks( - indexer_dv_context * This, unsigned char* target) + indexer_dv_context * This, unsigned char* target) { int i,j; - for (j = 0; j < 3; j++) { - for (i = 3; i < 80; i += 5) { - if (target[i] != 0xff) { - parse_packet(This, target + i); - } - } - target += 80; - } + for (j = 0; j < 3; j++) { + for (i = 3; i < 80; i += 5) { + if (target[i] != 0xff) { + parse_packet(This, target + i); + } + } + target += 80; + } } static void parse_audio_headers( - indexer_dv_context * This, unsigned char* target) + indexer_dv_context * This, unsigned char* target) { int i; - for(i = 0; i < 9; i++) { - if (target[3] != 0xff) { - parse_packet(This, target + 3); - } - target += 16 * 80; - } + for(i = 0; i < 9; i++) { + if (target[3] != 0xff) { + parse_packet(This, target + 3); + } + target += 16 * 80; + } } static void parse_frame(indexer_dv_context * This, - unsigned char * framebuffer, int isPAL) + unsigned char * framebuffer, int isPAL) { - int numDIFseq = isPAL ? 12 : 10; - unsigned char* target = framebuffer; + int numDIFseq = isPAL ? 12 : 10; + unsigned char* target = framebuffer; int ds; - for (ds = 0; ds < numDIFseq; ds++) { - parse_header_block(This, target); - target += 1 * 80; - parse_subcode_blocks(This, target); - target += 2 * 80; - parse_vaux_blocks(This, target); - target += 3 * 80; - parse_audio_headers(This, target); - target += 144 * 80; - } + for (ds = 0; ds < numDIFseq; ds++) { + parse_header_block(This, target); + target += 1 * 80; + parse_subcode_blocks(This, target); + target += 2 * 80; + parse_vaux_blocks(This, target); + target += 3 * 80; + parse_audio_headers(This, target); + target += 144 * 80; + } } static void inc_frame(int * frame, time_t * t, int isPAL) { - if ((isPAL && *frame >= 25) || (!isPAL && *frame >= 30)) { - fprintf(stderr, "Ouchie: inc_frame: invalid_frameno: %d\n", - *frame); - } - (*frame)++; - if (isPAL && *frame >= 25) { - (*t)++; - *frame = 0; - } else if (!isPAL && *frame >= 30) { - (*t)++; - *frame = 0; - } + if ((isPAL && *frame >= 25) || (!isPAL && *frame >= 30)) { + fprintf(stderr, "Ouchie: inc_frame: invalid_frameno: %d\n", + *frame); + } + (*frame)++; + if (isPAL && *frame >= 25) { + (*t)++; + *frame = 0; + } else if (!isPAL && *frame >= 30) { + (*t)++; + *frame = 0; + } } static void write_index(indexer_dv_context * This, anim_index_entry * entry) @@ -256,36 +256,36 @@ static void fill_gap(indexer_dv_context * This, int isPAL) { int i; - for (i = 0; i < This->fsize; i++) { - if (This->gap_start == This->ref_time_read && - This->gap_frame == This->curr_frame) { - fprintf(stderr, - "indexer_dv::fill_gap: " - "can't seek backwards !\n"); - break; - } - inc_frame(&This->gap_frame, &This->gap_start, isPAL); - } - - while (This->gap_start != This->ref_time_read || + for (i = 0; i < This->fsize; i++) { + if (This->gap_start == This->ref_time_read && + This->gap_frame == This->curr_frame) { + fprintf(stderr, + "indexer_dv::fill_gap: " + "can't seek backwards !\n"); + break; + } + inc_frame(&This->gap_frame, &This->gap_start, isPAL); + } + + while (This->gap_start != This->ref_time_read || This->gap_frame != This->curr_frame) { - inc_frame(&This->gap_frame, &This->gap_start, isPAL); + inc_frame(&This->gap_frame, &This->gap_start, isPAL); This->frameno_offset++; - } + } - for (i = 0; i < This->fsize; i++) { + for (i = 0; i < This->fsize; i++) { write_index(This, This->backbuffer + i); - } - This->fsize = 0; + } + This->fsize = 0; } static void proc_frame(indexer_dv_context * This, - unsigned char* UNUSED(framebuffer), int isPAL) + unsigned char* UNUSED(framebuffer), int isPAL) { struct tm recDate; time_t t; - if (!This->got_record_date || !This->got_record_time) { + if (!This->got_record_date || !This->got_record_time) { return; } @@ -329,9 +329,9 @@ static void proc_frame(indexer_dv_context * This, } static void indexer_dv_proc_frame(anim_index_builder * idx, - unsigned char * buffer, - int UNUSED(data_size), - struct anim_index_entry * entry) + unsigned char * buffer, + int UNUSED(data_size), + struct anim_index_entry * entry) { int isPAL; @@ -354,7 +354,7 @@ static void indexer_dv_proc_frame(anim_index_builder * idx, int i; fprintf(stderr, "indexer_dv::indexer_dv_proc_frame: " - "backbuffer overrun, emergency flush"); + "backbuffer overrun, emergency flush"); for (i = 0; i < This->fsize; i++) { write_index(This, This->backbuffer+i); @@ -378,8 +378,8 @@ static void indexer_dv_delete(anim_index_builder * idx) void IMB_indexer_dv_new(anim_index_builder * idx) { - indexer_dv_context * rv = MEM_callocN( - sizeof(indexer_dv_context), "index_dv builder context"); + indexer_dv_context * rv = MEM_callocN( + sizeof(indexer_dv_context), "index_dv builder context"); rv->ref_time_read = -1; rv->curr_frame = -1; diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 09432e0b316..ae8069cf3c5 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -52,11 +52,9 @@ static int Buffer_len(Buffer *self); static PyObject *Buffer_item(Buffer *self, int i); static PyObject *Buffer_slice(Buffer *self, int begin, int end); static int Buffer_ass_item(Buffer *self, int i, PyObject *v); -static int Buffer_ass_slice(Buffer *self, int begin, int end, - PyObject *seq); +static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq); static PyObject *Buffer_subscript(Buffer *self, PyObject *item); -static int Buffer_ass_subscript(Buffer *self, PyObject *item, - PyObject *value); +static int Buffer_ass_subscript(Buffer *self, PyObject *item, PyObject *value); static PySequenceMethods Buffer_SeqMethods = { (lenfunc) Buffer_len, /*sq_length */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 68190014041..49e5e7b989d 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -641,9 +641,9 @@ static RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int render_layer_add_pass(rr, rl, 3, SCE_PASS_REFRACT); if(srl->passflag & SCE_PASS_INDEXOB) render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXOB); - if(srl->passflag & SCE_PASS_INDEXMA) - render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXMA); - if(srl->passflag & SCE_PASS_MIST) + if(srl->passflag & SCE_PASS_INDEXMA) + render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXMA); + if(srl->passflag & SCE_PASS_MIST) render_layer_add_pass(rr, rl, 1, SCE_PASS_MIST); if(rl->passflag & SCE_PASS_RAYHITS) render_layer_add_pass(rr, rl, 4, SCE_PASS_RAYHITS); diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 04e4ce2c647..925f8529dfa 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -4115,13 +4115,13 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas add_transp_obindex(rlpp[a], od, obr->ob); } } - if(addpassflag & SCE_PASS_INDEXMA) { - ObjectRen *obr= R.objectinstance[zrow[totface-1].obi].obr; - if(obr->ob) { - for(a= 0; aob); - } - } + if(addpassflag & SCE_PASS_INDEXMA) { + ObjectRen *obr= R.objectinstance[zrow[totface-1].obi].obr; + if(obr->ob) { + for(a= 0; aob); + } + } /* for each mask-sample we alpha-under colors. then in end it's added using filter */ memset(samp_shr, 0, sizeof(ShadeResult)*osa); -- cgit v1.2.3 From 473292dcd7f0f51b91316fc59cdf7d97d11435a5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 1 Sep 2011 09:46:07 +0000 Subject: fix for building without audaspace, since pepper merge --- source/blender/blenkernel/intern/sound.c | 12 ++++++++++++ source/blender/editors/sound/sound_ops.c | 17 +++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index cdb509ab8e1..50a7b4a7a73 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -760,5 +760,17 @@ void sound_seek_scene(struct bContext *UNUSED(C)) {} float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; } int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } +void sound_read_waveform(struct bSound* sound) { (void)sound; } +void sound_init_main(struct Main *bmain) { (void)bmain; } +void sound_set_cfra(int cfra) { (void)cfra; } +void sound_update_sequencer(struct Main* main, struct bSound* sound) { (void)main; (void)sound; } +void sound_update_scene(struct Scene* scene) { (void)scene; } +void sound_update_scene_sound(void* handle, struct bSound* sound) { (void)handle; (void)sound; } +void sound_update_scene_listener(struct Scene *scene) { (void)scene; } +void sound_update_fps(struct Scene *scene) { (void)scene; } +void sound_set_scene_sound_volume(void* handle, float volume, char animated) { (void)handle; (void)volume; (void)animated; } +void sound_set_scene_sound_pan(void* handle, float pan, char animated) { (void)handle; (void)pan; (void)animated; } +void sound_set_scene_volume(struct Scene *scene, float volume) { (void)scene; (void)volume; } +void sound_set_scene_sound_pitch(void* handle, float pitch, char animated) { (void)handle; (void)pitch; (void)animated; } #endif // WITH_AUDASPACE diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index e66abffbfd1..70884d47c23 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -221,6 +221,7 @@ void SOUND_OT_open_mono(wmOperatorType *ot) static int mixdown_exec(bContext *C, wmOperator *op) { +#ifdef WITH_AUDASPACE char path[FILE_MAX]; char filename[FILE_MAX]; Scene *scene; @@ -254,7 +255,10 @@ static int mixdown_exec(bContext *C, wmOperator *op) BKE_report(op->reports, RPT_ERROR, result); return OPERATOR_CANCELLED; } - +#else // WITH_AUDASPACE + (void)C; + (void)op; +#endif // WITH_AUDASPACE return OPERATOR_FINISHED; } @@ -278,6 +282,7 @@ static int mixdown_draw_check_prop(PropertyRNA *prop) ); } +#ifdef WITH_AUDASPACE static void mixdown_draw(bContext *C, wmOperator *op) { static EnumPropertyItem pcm_format_items[] = { @@ -429,9 +434,11 @@ static void mixdown_draw(bContext *C, wmOperator *op) /* main draw call */ uiDefAutoButsRNA(layout, &ptr, mixdown_draw_check_prop, '\0'); } +#endif // WITH_AUDASPACE void SOUND_OT_mixdown(wmOperatorType *ot) { +#ifdef WITH_AUDASPACE static EnumPropertyItem format_items[] = { {AUD_FORMAT_U8, "U8", 0, "U8", "8 bit unsigned"}, {AUD_FORMAT_S16, "S16", 0, "S16", "16 bit signed"}, @@ -469,6 +476,8 @@ void SOUND_OT_mixdown(wmOperatorType *ot) {AUD_CODEC_VORBIS, "VORBIS", 0, "Vorbis", "Xiph.Org Vorbis Codec"}, {0, NULL, 0, NULL, NULL}}; +#endif // WITH_AUDASPACE + /* identifiers */ ot->name= "Mixdown"; ot->description= "Mixes the scene's audio to a sound file"; @@ -477,18 +486,22 @@ void SOUND_OT_mixdown(wmOperatorType *ot) /* api callbacks */ ot->exec= mixdown_exec; ot->invoke= mixdown_invoke; - ot->ui= mixdown_draw; +#ifdef WITH_AUDASPACE + ot->ui= mixdown_draw; +#endif /* flags */ ot->flag= OPTYPE_REGISTER; /* properties */ WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH); +#ifdef WITH_AUDASPACE RNA_def_int(ot->srna, "accuracy", 1024, 1, 16777216, "Accuracy", "Sample accuracy. Important for animation data. The lower the value, the more accurate.", 1, 16777216); RNA_def_enum(ot->srna, "container", container_items, AUD_CONTAINER_FLAC, "Container", "File format"); RNA_def_enum(ot->srna, "codec", codec_items, AUD_CODEC_FLAC, "Codec", "Audio Codec"); RNA_def_enum(ot->srna, "format", format_items, AUD_FORMAT_S16, "Format", "Sample format"); RNA_def_int(ot->srna, "bitrate", 192, 32, 512, "Bitrate", "Bitrate in kbit/s", 32, 512); +#endif // WITH_AUDASPACE } /* ******************************************************* */ -- cgit v1.2.3 From a8e49cd55a9cb5ca43dfb3d97c4ad0968a469b45 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 1 Sep 2011 09:47:21 +0000 Subject: use a fixed 32byte buffer for getting an rna string from python. gives a slight speedup when drawing heavy UI's --- source/blender/python/intern/bpy_rna.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index e1c38a82142..6de3c040c18 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1298,7 +1298,9 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) { int subtype= RNA_property_subtype(prop); const char *buf; - buf= RNA_property_string_get_alloc(ptr, prop, NULL, -1); + char buf_fixed[32]; + + buf= RNA_property_string_get_alloc(ptr, prop, buf_fixed, sizeof(buf_fixed)); #ifdef USE_STRING_COERCE /* only file paths get special treatment, they may contain non utf-8 chars */ if(ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { @@ -1310,7 +1312,9 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) #else // USE_STRING_COERCE ret= PyUnicode_FromString(buf); #endif // USE_STRING_COERCE - MEM_freeN((void *)buf); + if(buf_fixed != buf) { + MEM_freeN((void *)buf); + } break; } case PROP_ENUM: -- cgit v1.2.3 From 1f7b41775bcc8832355c13785c299156a870c749 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 03:32:57 +0000 Subject: minor warning fixes, also correct some float -> double promotions in shadeoutput.c --- source/blender/blenkernel/intern/nla.c | 4 +++- source/blender/blenkernel/intern/sound.c | 2 ++ source/blender/render/intern/source/shadeoutput.c | 28 +++++++++++------------ 3 files changed, 19 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 25f824bba19..53ccd55bde8 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -341,7 +341,7 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act) } /* Add a NLA Strip referencing the given speaker's sound */ -NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker) +NlaStrip *add_nla_soundstrip (Scene *UNUSED(scene), Speaker *speaker) { NlaStrip *strip = MEM_callocN(sizeof(NlaStrip), "NlaSoundStrip"); @@ -359,6 +359,8 @@ NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker) #endif { strip->end = 10.0f; + /* quiet compiler warnings */ + (void)speaker; } /* general settings */ diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 50a7b4a7a73..74f4830b86c 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -39,8 +39,10 @@ #include "BKE_sequencer.h" #include "BKE_scene.h" +#ifdef WITH_AUDASPACE // evil global ;-) static int sound_cfra; +#endif struct bSound* sound_new_file(struct Main *bmain, const char *filename) { diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index 7f921d21041..30632586b04 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -282,10 +282,10 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens) else if(ok1==0 || ok2==0) return; /* at least 1 visible interesction point */ - if(t1<0.0f && t2<0.0f) return; + if(t1<0.0 && t2<0.0) return; - if(t1<0.0f) t1= 0.0f; - if(t2<0.0f) t2= 0.0f; + if(t1<0.0) t1= 0.0; + if(t2<0.0) t2= 0.0; if(t1==t2) return; @@ -423,8 +423,8 @@ float fresnel_fac(float *view, float *vn, float grad, float fac) static double saacos_d(double fac) { - if(fac<= -1.0f) return M_PI; - else if(fac>=1.0f) return 0.0; + if(fac<= -1.0) return M_PI; + else if(fac>=1.0) return 0.0; else return acos(fac); } @@ -590,7 +590,7 @@ static float CookTorr_Spec(float *n, float *l, float *v, int hard, int tangent) i= spec(nh, hard); - i= i/(0.1+nv); + i= i/(0.1f+nv); return i; } @@ -896,7 +896,7 @@ static void ramp_diffuse_result(float *diff, ShadeInput *shi) if(ma->ramp_col) { if(ma->rampin_col==MA_RAMP_IN_RESULT) { - fac= 0.3*diff[0] + 0.58*diff[1] + 0.12*diff[2]; + fac= 0.3f*diff[0] + 0.58f*diff[1] + 0.12f*diff[2]; do_colorband(ma->ramp_col, fac, col); /* blending method */ @@ -926,7 +926,7 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa /* input */ switch(ma->rampin_col) { case MA_RAMP_IN_ENERGY: - fac= 0.3*r + 0.58*g + 0.12*b; + fac= 0.3f*r + 0.58f*g + 0.12f*b; break; case MA_RAMP_IN_SHADER: fac= is; @@ -966,7 +966,7 @@ static void ramp_spec_result(float *specr, float *specg, float *specb, ShadeInpu float fac; if(ma->ramp_spec && (ma->rampin_spec==MA_RAMP_IN_RESULT)) { - fac= 0.3*(*specr) + 0.58*(*specg) + 0.12*(*specb); + fac= 0.3f*(*specr) + 0.58f*(*specg) + 0.12f*(*specb); do_colorband(ma->ramp_spec, fac, col); /* blending method */ @@ -1213,7 +1213,7 @@ float lamp_get_visibility(LampRen *lar, float *co, float *lv, float *dist) } } } - if (visifac <= 0.001) visifac = 0.0f; + if (visifac <= 0.001f) visifac = 0.0f; return visifac; } } @@ -1231,7 +1231,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int view= shi->view; - if (lar->energy == 0.0) return; + if (lar->energy == 0.0f) return; /* only shadow lamps shouldn't affect shadow-less materials at all */ if ((lar->mode & LA_ONLYSHADOW) && (!(ma->mode & MA_SHADOW) || !(R.r.mode & R_SHADOW))) return; @@ -1359,7 +1359,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int /* 'is' is diffuse */ if((ma->shade_flag & MA_CUBIC) && is>0.0f && is<1.0f) - is= 3.0*is*is - 2.0*is*is*is; // nicer termination of shades + is= 3.0f*is*is - 2.0f*is*is*is; // nicer termination of shades i= is*phongcorr; @@ -1388,7 +1388,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int lamp_get_shadow(lar, shi, inp, shadfac, shi->depth); /* warning, here it skips the loop */ - if((lar->mode & LA_ONLYSHADOW) && i>0.0) { + if((lar->mode & LA_ONLYSHADOW) && i>0.0f) { shadfac[3]= i*lar->energy*(1.0f-shadfac[3]); shr->shad[0] -= shadfac[3]*shi->r*(1.0f-lashdw[0]); @@ -1448,7 +1448,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int t= vn[0]*lv[0]+vn[1]*lv[1]+vn[2]*lv[2]; if(lar->type==LA_HEMI) { - t= 0.5*t+0.5; + t= 0.5f*t+0.5f; } t= shadfac[3]*shi->spec*spec(t, shi->har); -- cgit v1.2.3 From dc463db6c27242af464140582bc6708802d601e8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 03:42:16 +0000 Subject: Credits generator which cross references with the patch tracker to credit the original authors. the script has a unix-name <> real-name mapping which is not totally complete since I couldn't find everyones real names. In this case the commit name is credited. Also added a link to the credits page in the splash. --- source/blender/windowmanager/intern/wm_operators.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index a4efa8fff84..c053022681b 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1259,11 +1259,12 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar split = uiLayoutSplit(layout, 0, 0); col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NONE); - uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-259/"); + uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment"); + uiItemStringO(col, "Credits", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/credits"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-259"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.5/Manual"); - uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); - uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // + uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org"); + uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community"); if(strcmp(STRINGIFY(BLENDER_VERSION_CYCLE), "release")==0) { BLI_snprintf(url, sizeof(url), "http://www.blender.org/documentation/blender_python_api_%d_%d" STRINGIFY(BLENDER_VERSION_CHAR) "_release", BLENDER_VERSION/100, BLENDER_VERSION%100); } -- cgit v1.2.3 From dc7f56455c8a6e045a7a8ab683376ccc91ab8b93 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 04:34:58 +0000 Subject: fix for error in recent commit, when audaspace is enabled --- source/blender/blenkernel/intern/nla.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 53ccd55bde8..6ce80342dd6 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -341,7 +341,7 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act) } /* Add a NLA Strip referencing the given speaker's sound */ -NlaStrip *add_nla_soundstrip (Scene *UNUSED(scene), Speaker *speaker) +NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker) { NlaStrip *strip = MEM_callocN(sizeof(NlaStrip), "NlaSoundStrip"); @@ -360,6 +360,7 @@ NlaStrip *add_nla_soundstrip (Scene *UNUSED(scene), Speaker *speaker) { strip->end = 10.0f; /* quiet compiler warnings */ + (void)scene; (void)speaker; } -- cgit v1.2.3 From e6ff3df5b980ebda24f14d0d211bb0739aa64f12 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 07:51:19 +0000 Subject: fix for keymap search, was using uninitialized memory when the keymaps operator couldn't be found. --- source/blender/makesrna/intern/rna_wm.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 93adf808f83..4c07a89a42f 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -680,20 +680,14 @@ static void rna_wmKeyMapItem_name_get(PointerRNA *ptr, char *value) { wmKeyMapItem *kmi= ptr->data; wmOperatorType *ot= WM_operatortype_find(kmi->idname, 1); - - if (ot) - strcpy(value, ot->name); + strcpy(value, ot ? ot->name : kmi->idname); } static int rna_wmKeyMapItem_name_length(PointerRNA *ptr) { wmKeyMapItem *kmi= ptr->data; wmOperatorType *ot= WM_operatortype_find(kmi->idname, 1); - - if (ot) - return strlen(ot->name); - else - return 0; + return strlen(ot ? ot->name : kmi->idname); } static int rna_KeyMapItem_userdefined_get(PointerRNA *ptr) @@ -1652,7 +1646,9 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_string_funcs(prop, "rna_wmKeyMapItem_idname_get", "rna_wmKeyMapItem_idname_length", "rna_wmKeyMapItem_idname_set"); RNA_def_struct_name_property(srna, prop); RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); - + + /* this is infact the operator name, but if the operator can't be found we + * fallback on the operator ID */ prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Name", "Name of operator to call on input event"); -- cgit v1.2.3 From 1d9ddcd319908f6442b02623f7782413ecefa40a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 08:01:01 +0000 Subject: tweak to WM_operatortype_find to perform better when called with empty strings (as the keymap editor does a lot) --- source/blender/windowmanager/intern/wm_operators.c | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index c053022681b..0e0203543a4 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -108,21 +108,28 @@ static GHash *global_ops_hash= NULL; wmOperatorType *WM_operatortype_find(const char *idname, int quiet) { - wmOperatorType *ot; - - char idname_bl[OP_MAX_TYPENAME]; // XXX, needed to support python style names without the _OT_ syntax - WM_operator_bl_idname(idname_bl, idname); + if(idname[0]) { + wmOperatorType *ot; + + /* needed to support python style names without the _OT_ syntax */ + char idname_bl[OP_MAX_TYPENAME]; + WM_operator_bl_idname(idname_bl, idname); - if (idname_bl[0]) { ot= BLI_ghash_lookup(global_ops_hash, idname_bl); if(ot) { return ot; } + + if(!quiet) { + printf("search for unknown operator '%s', '%s'\n", idname_bl, idname); + } } - - if(!quiet) - printf("search for unknown operator %s, %s\n", idname_bl, idname); - + else { + if(!quiet) { + printf("search for empty operator\n"); + } + } + return NULL; } -- cgit v1.2.3 From 8276989f63267c906fcf933dcf557bc35fa1cb8c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 08:20:30 +0000 Subject: fix [#28460] SEGFAULT when trying to make empty display as image --- source/blender/editors/animation/anim_filter.c | 47 ++++++++++++++------------ 1 file changed, 26 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 8010a41ccb3..bb710a32794 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1177,29 +1177,34 @@ static size_t animfilter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDo /* determine what animation data from AnimData block should get displayed */ static size_t animfilter_block_data (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *id, int filter_mode) { - IdAdtTemplate *iat = (IdAdtTemplate*)id; AnimData *adt = BKE_animdata_from_id(id); size_t items = 0; - - /* NOTE: this macro is used instead of inlining the logic here, since this sort of filtering is still needed - * in a few places in he rest of the code still - notably for the few cases where special mode-based - * different types of data expanders are required. - */ - ANIMDATA_FILTER_CASES(iat, - { /* AnimData */ - /* specifically filter animdata block */ - ANIMCHANNEL_NEW_CHANNEL(adt, ANIMTYPE_ANIMDATA, id); - }, - { /* NLA */ - items += animfilter_nla(ac, anim_data, ads, adt, filter_mode, id); - }, - { /* Drivers */ - items += animfilter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, id); - }, - { /* Keyframes */ - items += animfilter_action(ac, anim_data, ads, adt->action, filter_mode, id); - }); - + + /* image object datablocks have no anim-data so check for NULL */ + if(adt) { + IdAdtTemplate *iat = (IdAdtTemplate*)id; + + /* NOTE: this macro is used instead of inlining the logic here, since this sort of filtering is still needed + * in a few places in he rest of the code still - notably for the few cases where special mode-based + * different types of data expanders are required. + */ + ANIMDATA_FILTER_CASES(iat, + { /* AnimData */ + /* specifically filter animdata block */ + ANIMCHANNEL_NEW_CHANNEL(adt, ANIMTYPE_ANIMDATA, id); + }, + { /* NLA */ + items += animfilter_nla(ac, anim_data, ads, adt, filter_mode, id); + }, + { /* Drivers */ + items += animfilter_fcurves(anim_data, ads, adt->drivers.first, NULL, filter_mode, id); + }, + { /* Keyframes */ + items += animfilter_action(ac, anim_data, ads, adt->action, filter_mode, id); + } + ); + } + return items; } -- cgit v1.2.3 From 612e2d4dbe0e8dfe5b4d4fee49040ec38107ada3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 08:35:46 +0000 Subject: patch [#28473] Outliner Simple Todo from Julien DUROURE (julien) --- * right click --> rename, as proposed on http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Simple_Todos * implementation of Toggle visibility/rendarability/selectability on right click on Groups ( was in menu, but not implemented ) --- .../blender/editors/space_outliner/outliner_draw.c | 2 +- .../blender/editors/space_outliner/outliner_edit.c | 64 ++++++++++++++++------ .../editors/space_outliner/outliner_intern.h | 8 +++ .../editors/space_outliner/outliner_tools.c | 42 ++++++++++++-- 4 files changed, 94 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 0cb05fa2115..95a315272b9 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -236,7 +236,7 @@ static int group_select_flag(Group *gr) return 0; } -static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) +void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) { Scene *scene = (Scene *)poin; GroupObject *gob; diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c index fbd5281b1d9..2b451a48748 100644 --- a/source/blender/editors/space_outliner/outliner_edit.c +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -218,6 +218,34 @@ void OUTLINER_OT_item_openclose(wmOperatorType *ot) /* Rename --------------------------------------------------- */ +void do_item_rename(ARegion *ar, TreeElement *te, TreeStoreElem *tselem, ReportList *reports) +{ + /* can't rename rna datablocks entries */ + if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) + ; + else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) + BKE_report(reports, RPT_WARNING, "Cannot edit builtin name"); + else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) + BKE_report(reports, RPT_WARNING, "Cannot edit sequence name"); + else if(tselem->id->lib) { + // XXX error_libdata(); + } + else if(te->idcode == ID_LI && te->parent) { + BKE_report(reports, RPT_WARNING, "Cannot edit the path of an indirectly linked library"); + } + else { + tselem->flag |= TSE_TEXTBUT; + ED_region_tag_redraw(ar); + } +} + +void item_rename_cb(bContext *C, Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + ARegion *ar= CTX_wm_region(C); + ReportList *reports= CTX_wm_reports(C); // XXX + do_item_rename(ar, te, tselem, reports) ; +} + static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) { ReportList *reports= CTX_wm_reports(C); // XXX @@ -228,23 +256,7 @@ static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, T /* name and first icon */ if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - /* can't rename rna datablocks entries */ - if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) - ; - else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) - BKE_report(reports, RPT_WARNING, "Cannot edit builtin name"); - else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) - BKE_report(reports, RPT_WARNING, "Cannot edit sequence name"); - else if(tselem->id->lib) { - // XXX error_libdata(); - } - else if(te->idcode == ID_LI && te->parent) { - BKE_report(reports, RPT_WARNING, "Cannot edit the path of an indirectly linked library"); - } - else { - tselem->flag |= TSE_TEXTBUT; - ED_region_tag_redraw(ar); - } + do_item_rename(ar, te, tselem, reports) ; } return 1; } @@ -377,6 +389,12 @@ void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, Tre } } +void group_toggle_visibility_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + restrictbutton_gr_restrict_flag(scene, group, OB_RESTRICT_VIEW); +} + static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceOops *soops= CTX_wm_space_outliner(C); @@ -417,6 +435,12 @@ void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeEleme } } +void group_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + restrictbutton_gr_restrict_flag(scene, group, OB_RESTRICT_SELECT); +} + static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceOops *soops= CTX_wm_space_outliner(C); @@ -457,6 +481,12 @@ void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeEleme } } +void group_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + restrictbutton_gr_restrict_flag(scene, group, OB_RESTRICT_RENDER); +} + static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceOops *soops= CTX_wm_space_outliner(C); diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index 9da09144125..2ddb5707623 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -139,6 +139,7 @@ void outliner_build_tree(struct Main *mainvar, struct Scene *scene, struct Space /* outliner_draw.c ---------------------------------------------- */ void draw_outliner(const struct bContext *C); +void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag); /* outliner_select.c -------------------------------------------- */ int tree_element_type_active(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set); @@ -158,6 +159,13 @@ void object_toggle_visibility_cb(struct bContext *C, struct Scene *scene, TreeEl void object_toggle_selectability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); void object_toggle_renderability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); + +void group_toggle_visibility_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void group_toggle_selectability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void group_toggle_renderability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); + +void item_rename_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); + /* ...................................................... */ void OUTLINER_OT_item_activate(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 3ae158bd275..70dfbfe3830 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -510,6 +510,7 @@ static EnumPropertyItem prop_object_op_types[] = { {6, "TOGVIS", 0, "Toggle Visible", ""}, {7, "TOGSEL", 0, "Toggle Selectable", ""}, {8, "TOGREN", 0, "Toggle Renderable", ""}, + {9, "RENAME", 0, "Rename", ""}, {0, NULL, 0, NULL, NULL} }; @@ -567,6 +568,10 @@ static int outliner_object_operation_exec(bContext *C, wmOperator *op) str= "Toggle Renderability"; WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); } + else if(event==9) { + outliner_do_object_operation(C, scene, soops, &soops->tree, item_rename_cb); + str= "Rename Object"; + } ED_undo_push(C, str); @@ -600,6 +605,7 @@ static EnumPropertyItem prop_group_op_types[] = { {4, "TOGVIS", 0, "Toggle Visible", ""}, {5, "TOGSEL", 0, "Toggle Selectable", ""}, {6, "TOGREN", 0, "Toggle Renderable", ""}, + {7, "RENAME", 0, "Rename", ""}, {0, NULL, 0, NULL, NULL} }; @@ -608,6 +614,7 @@ static int outliner_group_operation_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); SpaceOops *soops= CTX_wm_space_outliner(C); int event; + const char *str= NULL; /* check for invalid states */ if (soops == NULL) @@ -617,18 +624,35 @@ static int outliner_group_operation_exec(bContext *C, wmOperator *op) if(event==1) { outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); - ED_undo_push(C, "Unlink group"); + str= "Unlink group"; } else if(event==2) { outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); + str= "Localized Data"; } else if(event==3) { outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); - ED_undo_push(C, "Link Group Objects to Scene"); + str= "Link Group Objects to Scene"; + } + else if(event==4) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_toggle_visibility_cb); + str= "Toggle Visibility"; + } + else if(event==5) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_toggle_selectability_cb); + str= "Toggle Selectability"; + } + else if(event==6) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_toggle_renderability_cb); + str= "Toggle Renderability"; + } + else if(event==7) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, item_rename_cb); + str= "Rename"; } + ED_undo_push(C, str); WM_event_add_notifier(C, NC_GROUP, NULL); return OPERATOR_FINISHED; @@ -662,7 +686,8 @@ typedef enum eOutlinerIdOpTypes { OUTLINER_IDOP_SINGLE, OUTLINER_IDOP_FAKE_ADD, - OUTLINER_IDOP_FAKE_CLEAR + OUTLINER_IDOP_FAKE_CLEAR, + OUTLINER_IDOP_RENAME } eOutlinerIdOpTypes; // TODO: implement support for changing the ID-block used @@ -672,6 +697,7 @@ static EnumPropertyItem prop_id_op_types[] = { {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, {OUTLINER_IDOP_FAKE_ADD, "ADD_FAKE", 0, "Add Fake User", "Ensure datablock gets saved even if it isn't in use (e.g. for motion and material libraries)"}, {OUTLINER_IDOP_FAKE_CLEAR, "CLEAR_FAKE", 0, "Clear Fake User", ""}, + {OUTLINER_IDOP_RENAME, "RENAME", 0, "Rename", ""}, {0, NULL, 0, NULL, NULL} }; @@ -765,6 +791,14 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op) ED_undo_push(C, "Clear Fake User"); } break; + case OUTLINER_IDOP_RENAME: + /* rename */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, item_rename_cb); + + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + ED_undo_push(C, "Rename"); + + break; default: // invalid - unhandled -- cgit v1.2.3 From 7a496bfbcf3c5a25d4101cf427ca980327ed3e8a Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 09:39:21 +0000 Subject: Partial fix for #28441: Tab width in texteditor ignored if used tabs as spaces Scroll to cursor when displaying text datablock was changed. This behavior was lost in 2.5x. --- source/blender/editors/space_text/space_text.c | 5 +++++ source/blender/editors/space_text/text_draw.c | 19 +++++++++++++------ source/blender/editors/space_text/text_intern.h | 1 + source/blender/makesrna/intern/rna_space.c | 3 ++- 4 files changed, 21 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index c7d4d78422e..47f051e1ec4 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -154,6 +154,11 @@ static void text_listener(ScrArea *sa, wmNotifier *wmn) case NA_REMOVED: ED_area_tag_redraw(sa); break; + case NA_SELECTED: + if(st->text && st->text == wmn->reference) + text_scroll_to_cursor(st, sa); + + break; } break; diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c index 28230b7a48b..066404f23ba 100644 --- a/source/blender/editors/space_text/text_draw.c +++ b/source/blender/editors/space_text/text_draw.c @@ -1821,12 +1821,10 @@ void text_update_character_width(SpaceText *st) /* Moves the view to the cursor location, also used to make sure the view isnt outside the file */ -void text_update_cursor_moved(bContext *C) +void text_scroll_to_cursor(SpaceText *st, ScrArea *sa) { - ScrArea *sa= CTX_wm_area(C); - SpaceText *st= CTX_wm_space_text(C); Text *text; - ARegion *ar; + ARegion *ar= NULL; int i, x, winx= 0; if(ELEM3(NULL, st, st->text, st->text->curl)) return; @@ -1834,8 +1832,10 @@ void text_update_cursor_moved(bContext *C) text= st->text; for(ar=sa->regionbase.first; ar; ar= ar->next) - if(ar->regiontype==RGN_TYPE_WINDOW) + if(ar->regiontype==RGN_TYPE_WINDOW) { winx= ar->winx; + break; + } winx -= TXT_SCROLL_WIDTH; @@ -1844,7 +1844,7 @@ void text_update_cursor_moved(bContext *C) i= txt_get_span(text->lines.first, text->sell); if(st->wordwrap) { int offl, offc; - wrap_offset(st, CTX_wm_region(C), text->sell, text->selc, &offl, &offc); + wrap_offset(st, ar, text->sell, text->selc, &offl, &offc); i+= offl; } @@ -1865,3 +1865,10 @@ void text_update_cursor_moved(bContext *C) if(st->left <0) st->left= 0; } +void text_update_cursor_moved(bContext *C) +{ + ScrArea *sa= CTX_wm_area(C); + SpaceText *st= CTX_wm_space_text(C); + + text_scroll_to_cursor(st, sa); +} diff --git a/source/blender/editors/space_text/text_intern.h b/source/blender/editors/space_text/text_intern.h index cb55f41acb5..b34c7815f35 100644 --- a/source/blender/editors/space_text/text_intern.h +++ b/source/blender/editors/space_text/text_intern.h @@ -55,6 +55,7 @@ int text_font_width(struct SpaceText *st, const char *str); void text_update_line_edited(struct TextLine *line); void text_update_edited(struct Text *text); void text_update_character_width(struct SpaceText *st); +void text_scroll_to_cursor(struct SpaceText *st, struct ScrArea *sa); void text_update_cursor_moved(struct bContext *C); /* TXT_OFFSET used to be 35 when the scrollbar was on the left... */ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 8f3097e5589..7a7debe1bf5 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -591,7 +591,8 @@ static void rna_SpaceTextEditor_text_set(PointerRNA *ptr, PointerRNA value) SpaceText *st= (SpaceText*)(ptr->data); st->text= value.data; - st->top= 0; + + WM_main_add_notifier(NC_TEXT|NA_SELECTED, st->text); } static void rna_SpaceTextEditor_updateEdited(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) -- cgit v1.2.3 From 15afd240e04ef3f220b6133cc920d964dbcfcf85 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 2 Sep 2011 10:43:51 +0000 Subject: paranoid check that RNA string functions set the string, would have helped solve keymap search bug. disabled in release mode. --- source/blender/makesrna/intern/rna_access.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 0d4e31cdaf2..ad79771416d 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2216,8 +2216,17 @@ char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fi else buf= MEM_mallocN(sizeof(char)*(length+1), "RNA_string_get_alloc"); +#ifndef NDEBUG + /* safety check to ensure the string is actually set */ + buf[length]= 255; +#endif + RNA_property_string_get(ptr, prop, buf); +#ifndef NDEBUG + BLI_assert(buf[length] == '\0'); +#endif + return buf; } -- cgit v1.2.3 From 3386563368f1e489a40e86671933af385e4073f9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 2 Sep 2011 12:26:57 +0000 Subject: Bugfix [#28435] Key Visual transform and Parenting not working After reviewing this code, it seems that this case can work after all. However, several things needed to be tweaked: 1) Removed check which stopped parented objects from getting the visual keying coordinates determined. This actually wasn't doing anything, given that this case would never occur as... 2) Tweaked the visualkey_can_use() function to also consider parenting as a cause for visual-keying to be necessary. --- source/blender/editors/animation/keyframing.c | 73 ++++++++++++++------------- 1 file changed, 38 insertions(+), 35 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 4e87409b7fd..53c9fc4d82c 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -530,6 +530,7 @@ static short visualkey_can_use (PointerRNA *ptr, PropertyRNA *prop) { bConstraint *con= NULL; short searchtype= VISUALKEY_NONE; + short has_parent = FALSE; char *identifier= NULL; /* validate data */ @@ -548,6 +549,7 @@ static short visualkey_can_use (PointerRNA *ptr, PropertyRNA *prop) con= ob->constraints.first; identifier= (char *)RNA_property_identifier(prop); + has_parent= (ob->parent != NULL); } else if (ptr->type == &RNA_PoseBone) { /* Pose Channel */ @@ -555,10 +557,11 @@ static short visualkey_can_use (PointerRNA *ptr, PropertyRNA *prop) con= pchan->constraints.first; identifier= (char *)RNA_property_identifier(prop); + has_parent= (pchan->parent != NULL); } /* check if any data to search using */ - if (ELEM(NULL, con, identifier)) + if (ELEM(NULL, con, identifier) && (has_parent == FALSE)) return 0; /* location or rotation identifiers only... */ @@ -573,7 +576,12 @@ static short visualkey_can_use (PointerRNA *ptr, PropertyRNA *prop) /* only search if a searchtype and initial constraint are available */ - if (searchtype && con) { + if (searchtype) { + /* parent is always matching */ + if (has_parent) + return 1; + + /* constraints */ for (; con; con= con->next) { /* only consider constraint if it is not disabled, and has influence */ if (con->flag & CONSTRAINT_DISABLE) continue; @@ -645,39 +653,34 @@ static float visualkey_get_value (PointerRNA *ptr, PropertyRNA *prop, int array_ if (ptr->type == &RNA_Object) { Object *ob= (Object *)ptr->data; - /* parented objects are not supported, as the effects of the parent - * are included in the matrix, which kindof beats the point - */ - if (ob->parent == NULL) { - /* only Location or Rotation keyframes are supported now */ - if (strstr(identifier, "location")) { - return ob->obmat[3][array_index]; - } - else if (strstr(identifier, "rotation_euler")) { - float eul[3]; - - mat4_to_eulO(eul, ob->rotmode, ob->obmat); - return eul[array_index]; - } - else if (strstr(identifier, "rotation_quaternion")) { - float trimat[3][3], quat[4]; - - copy_m3_m4(trimat, ob->obmat); - mat3_to_quat_is_ok(quat, trimat); - - return quat[array_index]; - } - else if (strstr(identifier, "rotation_axis_angle")) { - float axis[3], angle; - - mat4_to_axis_angle(axis, &angle, ob->obmat); - - /* w = 0, x,y,z = 1,2,3 */ - if (array_index == 0) - return angle; - else - return axis[array_index - 1]; - } + /* only Location or Rotation keyframes are supported now */ + if (strstr(identifier, "location")) { + return ob->obmat[3][array_index]; + } + else if (strstr(identifier, "rotation_euler")) { + float eul[3]; + + mat4_to_eulO(eul, ob->rotmode, ob->obmat); + return eul[array_index]; + } + else if (strstr(identifier, "rotation_quaternion")) { + float trimat[3][3], quat[4]; + + copy_m3_m4(trimat, ob->obmat); + mat3_to_quat_is_ok(quat, trimat); + + return quat[array_index]; + } + else if (strstr(identifier, "rotation_axis_angle")) { + float axis[3], angle; + + mat4_to_axis_angle(axis, &angle, ob->obmat); + + /* w = 0, x,y,z = 1,2,3 */ + if (array_index == 0) + return angle; + else + return axis[array_index - 1]; } } else if (ptr->type == &RNA_PoseBone) { -- cgit v1.2.3 From 6b4bdf621f2830ceff2c44f871523a312422a338 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 13:23:44 +0000 Subject: Fix #28467: Crash while deleting objects in outliner too fast Cleanup tree when handling object delete from outliner. Prevents handling the same tree item twice when clicking fast. --- source/blender/editors/space_outliner/outliner_intern.h | 1 + source/blender/editors/space_outliner/outliner_tools.c | 9 +++++++++ source/blender/editors/space_outliner/outliner_tree.c | 6 ++++++ 3 files changed, 16 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index 2ddb5707623..61507d1ffe5 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -129,6 +129,7 @@ typedef struct TreeElement { /* outliner_tree.c ----------------------------------------------- */ void outliner_free_tree(ListBase *lb); +void outliner_cleanup_tree(struct SpaceOops *soops); TreeElement *outliner_find_tse(struct SpaceOops *soops, TreeStoreElem *tse); TreeElement *outliner_find_id(struct SpaceOops *soops, ListBase *lb, struct ID *id); diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 70dfbfe3830..b3170f9cd1e 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -287,6 +287,8 @@ static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeSto if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); if(base) { + SpaceOops *soops= CTX_wm_space_outliner(C); + // check also library later if(scene->obedit==base->object) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); @@ -294,6 +296,13 @@ static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeSto ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); te->directdata= NULL; tselem->id= NULL; + + /* XXX: tree management normally happens from draw_outliner(), but when + you're clicking to fast on Delete object from context menu in + outliner several mouse events can be handled in one cycle without + handling notifiers/redraw which leads to deleting the same object twice. + cleanup tree here to prevent such cases. */ + outliner_cleanup_tree(soops); } } diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index 0b07c824f3e..8904dcc360f 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -222,6 +222,12 @@ void outliner_free_tree(ListBase *lb) } } +void outliner_cleanup_tree(SpaceOops *soops) +{ + outliner_free_tree(&soops->tree); + outliner_storage_cleanup(soops); +} + /* Find ith item from the treestore */ static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) { -- cgit v1.2.3 From 2fb2075c5b3495fede6980b4f9247f9e89c39d39 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 15:19:30 +0000 Subject: Fix #28280: Insert Hook wrong index Use quite easy and stupid approach like it used for shape keys: re-make editmesh (editcurve or editlattice) before creating index array for hook or storing vertex index in parenting object. Even if hook was added in "current" edit mode, it should be re-mapped on loading edit data because topology could be changed after it was created. Such kind of re-loading edit structures is the easiest way for now to update keyindexes to relevant state. Also, fixed bug with not re-mapping indices for vertex-parented objects. Really old error, not sure why it wasn't noticed yet. --- source/blender/editors/mesh/editmesh.c | 2 +- source/blender/editors/object/object_hook.c | 21 ++++++++++++++++---- source/blender/editors/object/object_relations.c | 25 ++++++++++++++++++++---- 3 files changed, 39 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index 4377fb03632..e371c346f36 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1099,7 +1099,7 @@ void load_editMesh(Scene *scene, Object *obedit) int j; for (ob=G.main->object.first; ob; ob=ob->id.next) { - if (ob->parent==ob && ELEM(ob->partype, PARVERT1,PARVERT3)) { + if (ob->parent==obedit && ELEM(ob->partype, PARVERT1,PARVERT3)) { /* duplicate code from below, make it function later...? */ if (!vertMap) { diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index bb32869469a..266556773f0 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -64,6 +64,7 @@ #include "ED_curve.h" #include "ED_mesh.h" +#include "ED_lattice.h" #include "ED_screen.h" #include "WM_types.h" @@ -292,7 +293,7 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo return totvert; } -static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char *name, float *cent_r) +static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int **indexar, char *name, float *cent_r) { *indexar= NULL; *tot= 0; @@ -302,7 +303,12 @@ static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char case OB_MESH: { Mesh *me= obedit->data; - EditMesh *em = BKE_mesh_get_editmesh(me); + EditMesh *em; + + load_editMesh(scene, obedit); + make_editMesh(scene, obedit); + + em = BKE_mesh_get_editmesh(me); /* check selected vertices first */ if( return_editmesh_indexar(em, tot, indexar, cent_r)) { @@ -316,10 +322,17 @@ static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char } case OB_CURVE: case OB_SURF: + load_editNurb(obedit); + make_editNurb(obedit); + return return_editcurve_indexar(obedit, tot, indexar, cent_r); case OB_LATTICE: { Lattice *lt= obedit->data; + + load_editLatt(obedit); + make_editLatt(obedit); + return return_editlattice_indexar(lt->editlatt->latt, tot, indexar, cent_r); } default: @@ -427,7 +440,7 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o int tot, ok, *indexar; char name[32]; - ok = object_hook_index_array(obedit, &tot, &indexar, name, cent); + ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent); if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group"); @@ -760,7 +773,7 @@ static int object_hook_assign_exec(bContext *C, wmOperator *op) /* assign functionality */ - if(!object_hook_index_array(ob, &tot, &indexar, name, cent)) { + if(!object_hook_index_array(CTX_data_scene(C), ob, &tot, &indexar, name, cent)) { BKE_report(op->reports, RPT_WARNING, "Requires selected vertices or active vertex group"); return OPERATOR_CANCELLED; } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index e9418ca9f9f..b9208e778c7 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -91,6 +91,8 @@ #include "ED_armature.h" #include "ED_curve.h" +#include "ED_lattice.h" +#include "ED_mesh.h" #include "ED_keyframing.h" #include "ED_object.h" #include "ED_screen.h" @@ -122,7 +124,12 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) if(obedit->type==OB_MESH) { Mesh *me= obedit->data; - EditMesh *em = BKE_mesh_get_editmesh(me); + EditMesh *em; + + load_editMesh(scene, obedit); + make_editMesh(scene, obedit); + + em = BKE_mesh_get_editmesh(me); eve= em->verts.first; while(eve) { @@ -140,7 +147,12 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) BKE_mesh_end_editmesh(me, em); } else if(ELEM(obedit->type, OB_SURF, OB_CURVE)) { - ListBase *editnurb= curve_get_editcurve(obedit); + ListBase *editnurb; + + load_editNurb(obedit); + make_editNurb(obedit); + + editnurb= curve_get_editcurve(obedit); cu= obedit->data; @@ -180,8 +192,13 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) } } else if(obedit->type==OB_LATTICE) { - Lattice *lt= obedit->data; - + Lattice *lt; + + load_editLatt(obedit); + make_editLatt(obedit); + + lt= obedit->data; + a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; bp= lt->editlatt->latt->def; while(a--) { -- cgit v1.2.3 From 87cb3f8519c942e19b20ac2b6bbe82fd28b95b3c Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 17:58:09 +0000 Subject: Fix crash caused by recently added assert about if string was set properly. Memory Estimate is actually 31 characters length, str[31] is a null-terminator. Return length of 31 for memory estimate property. Returning proper length would lead to slowdown because of 2x iteration through vertices. --- source/blender/makesrna/intern/rna_fluidsim.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c index 1ba2e32502f..ccb24d7dd9b 100644 --- a/source/blender/makesrna/intern/rna_fluidsim.c +++ b/source/blender/makesrna/intern/rna_fluidsim.c @@ -184,7 +184,11 @@ static void rna_DomainFluidSettings_memory_estimate_get(PointerRNA *ptr, char *v static int rna_DomainFluidSettings_memory_estimate_length(PointerRNA *ptr) { - return 32; +#ifdef DISABLE_ELBEEM + return 0; +#else + return 31; +#endif } static char *rna_FluidSettings_path(PointerRNA *ptr) -- cgit v1.2.3 From 5193526aebccceb5fb6420e6a703f9b974247078 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 18:05:07 +0000 Subject: Add missed notifier when toggling object's force field. --- source/blender/editors/object/object_edit.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 61734bc51a2..79cbfb6574b 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1411,6 +1411,8 @@ static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op)) else ob->pd->forcefield = 0; + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL); + return OPERATOR_FINISHED; } -- cgit v1.2.3 From 8e3d1084b2a73aaa308ceda7a2e777e3d1990690 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 2 Sep 2011 19:25:32 +0000 Subject: Fix for grid lines drawing outside of histogram widget. --- source/blender/editors/interface/interface_draw.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index 76ed9891b8e..2267f04aab4 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -770,7 +770,11 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol) glColor4f(0.f, 0.f, 0.f, 0.3f); uiSetRoundBox(15); uiDrawBox(GL_POLYGON, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f); - + + /* need scissor test, histogram can draw outside of boundary */ + glGetIntegerv(GL_VIEWPORT, scissor); + glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1)); + glColor4f(1.f, 1.f, 1.f, 0.08f); /* draw grid lines here */ for (i=1; i<4; i++) { @@ -778,10 +782,6 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol) fdrawline(rect.xmin+(i/4.f)*w, rect.ymin, rect.xmin+(i/4.f)*w, rect.ymax); } - /* need scissor test, histogram can draw outside of boundary */ - glGetIntegerv(GL_VIEWPORT, scissor); - glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1)); - if (hist->mode == HISTO_MODE_LUMA) histogram_draw_one(1.0, 1.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_luma, res); else { -- cgit v1.2.3 From 0cd5dce245762b3fb3fd195dde3bd9ddaeb48970 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 3 Sep 2011 02:15:49 +0000 Subject: whitespace edits --- source/blender/python/intern/bpy_rna.c | 300 ++++++++++++++++----------------- 1 file changed, 150 insertions(+), 150 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 6de3c040c18..d10c8c843e8 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -4631,28 +4631,28 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject /* note: tp_base member is set to &PyType_Type on init */ PyTypeObject pyrna_struct_meta_idprop_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_struct_meta_idprop", /* tp_name */ - sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's - 0, /* tp_itemsize */ + "bpy_struct_meta_idprop", /* tp_name */ + sizeof(PyHeapTypeObject), /* tp_basicsize */ // XXX, would be PyTypeObject, but subtypes of Type must be PyHeapTypeObject's + 0, /* tp_itemsize */ /* methods */ - NULL, /* tp_dealloc */ + NULL, /* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ - NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* deprecated in python 3.0! */ - NULL, /* tp_repr */ + NULL, /* getattrfunc tp_getattr; */ + NULL, /* setattrfunc tp_setattr; */ + NULL, /* tp_compare */ /* deprecated in python 3.0! */ + NULL, /* tp_repr */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - NULL, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ - NULL, /* ternaryfunc tp_call; */ - NULL, /* reprfunc tp_str; */ - NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */ - (setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */ + NULL, /* hashfunc tp_hash; */ + NULL, /* ternaryfunc tp_call; */ + NULL, /* reprfunc tp_str; */ + NULL /*(getattrofunc) pyrna_struct_meta_idprop_getattro*/, /* getattrofunc tp_getattro; */ + (setattrofunc) pyrna_struct_meta_idprop_setattro, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -4660,7 +4660,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -4670,7 +4670,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { /*** Assigned meaning in release 2.1 ***/ /*** rich comparisons ***/ - NULL, /* richcmpfunc tp_richcompare; */ + NULL, /* richcmpfunc tp_richcompare; */ /*** weak reference enabler ***/ 0, /* long tp_weaklistoffset; */ @@ -4681,9 +4681,9 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - NULL, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL, /* struct PyGetSetDef *tp_getset; */ + NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ @@ -4691,7 +4691,7 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ @@ -4709,45 +4709,45 @@ PyTypeObject pyrna_struct_meta_idprop_Type= { /*-----------------------BPy_StructRNA method def------------------------------*/ PyTypeObject pyrna_struct_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_struct", /* tp_name */ - sizeof(BPy_StructRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_struct", /* tp_name */ + sizeof(BPy_StructRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ (destructor) pyrna_struct_dealloc,/* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ - NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ - (reprfunc) pyrna_struct_repr, /* tp_repr */ + NULL, /* getattrfunc tp_getattr; */ + NULL, /* setattrfunc tp_setattr; */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + (reprfunc) pyrna_struct_repr, /* tp_repr */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - &pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */ - &pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */ + &pyrna_struct_as_sequence, /* PySequenceMethods *tp_as_sequence; */ + &pyrna_struct_as_mapping, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - (hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */ - NULL, /* ternaryfunc tp_call; */ + (hashfunc) pyrna_struct_hash, /* hashfunc tp_hash; */ + NULL, /* ternaryfunc tp_call; */ (reprfunc) pyrna_struct_str, /* reprfunc tp_str; */ - (getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */ - (setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */ + (getattrofunc) pyrna_struct_getattro, /* getattrofunc tp_getattro; */ + (setattrofunc) pyrna_struct_setattro, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ /*** Flags to define presence of optional/expanded features ***/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* long tp_flags; */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ #ifdef USE_PYRNA_STRUCT_REFERENCE - (traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */ + (traverseproc) pyrna_struct_traverse, /* traverseproc tp_traverse; */ /* delete references to contained objects */ - (inquiry)pyrna_struct_clear, /* inquiry tp_clear; */ + (inquiry)pyrna_struct_clear, /* inquiry tp_clear; */ #else NULL, /* traverseproc tp_traverse; */ @@ -4757,11 +4757,11 @@ PyTypeObject pyrna_struct_Type= { /*** Assigned meaning in release 2.1 ***/ /*** rich comparisons ***/ - (richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */ + (richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */ /*** weak reference enabler ***/ #ifdef USE_WEAKREFS - offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */ + offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */ #else 0, #endif @@ -4771,9 +4771,9 @@ PyTypeObject pyrna_struct_Type= { NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */ + pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - pyrna_struct_getseters, /* struct PyGetSetDef *tp_getset; */ + pyrna_struct_getseters, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ @@ -4781,7 +4781,7 @@ PyTypeObject pyrna_struct_Type= { 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - pyrna_struct_new, /* newfunc tp_new; */ + pyrna_struct_new, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ @@ -4798,32 +4798,32 @@ PyTypeObject pyrna_struct_Type= { /*-----------------------BPy_PropertyRNA method def------------------------------*/ PyTypeObject pyrna_prop_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_prop", /* tp_name */ - sizeof(BPy_PropertyRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_prop", /* tp_name */ + sizeof(BPy_PropertyRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ (destructor) pyrna_prop_dealloc, /* tp_dealloc */ - NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* printfunc tp_print; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ - (reprfunc) pyrna_prop_repr, /* tp_repr */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + (reprfunc) pyrna_prop_repr, /* tp_repr */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - NULL, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - (hashfunc) pyrna_prop_hash, /* hashfunc tp_hash; */ + (hashfunc) pyrna_prop_hash, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ (reprfunc) pyrna_prop_str, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - NULL, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -4831,7 +4831,7 @@ PyTypeObject pyrna_prop_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -4852,11 +4852,11 @@ PyTypeObject pyrna_prop_Type= { /*** Added in release 2.2 ***/ /* Iterators */ - NULL, /* getiterfunc tp_iter; */ + NULL, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */ + pyrna_prop_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ pyrna_prop_getseters, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ @@ -4866,7 +4866,7 @@ PyTypeObject pyrna_prop_Type= { 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - pyrna_prop_new, /* newfunc tp_new; */ + pyrna_prop_new, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ @@ -4888,34 +4888,34 @@ PyTypeObject pyrna_prop_array_Type= { /* methods */ (destructor)pyrna_prop_array_dealloc, /* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL,/* subclassed */ /* tp_repr */ /* Method suites for standard classes */ - &pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */ - &pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */ - &pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */ + &pyrna_prop_array_as_number, /* PyNumberMethods *tp_as_number; */ + &pyrna_prop_array_as_sequence, /* PySequenceMethods *tp_as_sequence; */ + &pyrna_prop_array_as_mapping, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + NULL, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - (getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ + (getattrofunc) pyrna_prop_array_getattro, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ /*** Flags to define presence of optional/expanded features ***/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -4925,7 +4925,7 @@ PyTypeObject pyrna_prop_array_Type= { /*** Assigned meaning in release 2.1 ***/ /*** rich comparisons ***/ - NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */ + NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */ /*** weak reference enabler ***/ #ifdef USE_WEAKREFS @@ -4939,22 +4939,22 @@ PyTypeObject pyrna_prop_array_Type= { NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - pyrna_prop_array_methods, /* struct PyMethodDef *tp_methods; */ + pyrna_prop_array_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ - &pyrna_prop_Type, /* struct _typeobject *tp_base; */ + NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ + &pyrna_prop_Type, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrsetfunc tp_descr_set; */ 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ NULL, /* inquiry tp_is_gc; */ - NULL, /* PyObject *tp_bases; */ + NULL, /* PyObject *tp_bases; */ /* method resolution order */ NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_cache; */ @@ -4965,32 +4965,32 @@ PyTypeObject pyrna_prop_array_Type= { PyTypeObject pyrna_prop_collection_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_prop_collection", /* tp_name */ - sizeof(BPy_PropertyRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_prop_collection", /* tp_name */ + sizeof(BPy_PropertyRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ (destructor)pyrna_prop_dealloc, /* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL, /* subclassed */ /* tp_repr */ /* Method suites for standard classes */ &pyrna_prop_collection_as_number, /* PyNumberMethods *tp_as_number; */ - &pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */ - &pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */ + &pyrna_prop_collection_as_sequence, /* PySequenceMethods *tp_as_sequence; */ + &pyrna_prop_collection_as_mapping, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + NULL, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - (getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */ - (setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */ + (getattrofunc) pyrna_prop_collection_getattro, /* getattrofunc tp_getattro; */ + (setattrofunc) pyrna_prop_collection_setattro, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -4998,7 +4998,7 @@ PyTypeObject pyrna_prop_collection_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -5012,33 +5012,33 @@ PyTypeObject pyrna_prop_collection_Type= { /*** weak reference enabler ***/ #ifdef USE_WEAKREFS - offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ + offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ #else 0, #endif /*** Added in release 2.2 ***/ /* Iterators */ - (getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */ + (getiterfunc)pyrna_prop_collection_iter, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - pyrna_prop_collection_methods, /* struct PyMethodDef *tp_methods; */ + pyrna_prop_collection_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ - &pyrna_prop_Type, /* struct _typeobject *tp_base; */ + NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ + &pyrna_prop_Type, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrsetfunc tp_descr_set; */ 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ NULL, /* inquiry tp_is_gc; */ - NULL, /* PyObject *tp_bases; */ + NULL, /* PyObject *tp_bases; */ /* method resolution order */ NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_cache; */ @@ -5050,32 +5050,32 @@ PyTypeObject pyrna_prop_collection_Type= { /* only for add/remove/move methods */ static PyTypeObject pyrna_prop_collection_idprop_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_prop_collection_idprop", /* tp_name */ - sizeof(BPy_PropertyRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_prop_collection_idprop", /* tp_name */ + sizeof(BPy_PropertyRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ (destructor)pyrna_prop_dealloc, /* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ - NULL, /* subclassed */ /* tp_repr */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + NULL, /* subclassed */ /* tp_repr */ /* Method suites for standard classes */ - NULL, /* PyNumberMethods *tp_as_number; */ - NULL, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + NULL, /* PyNumberMethods *tp_as_number; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + NULL, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - NULL, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -5083,7 +5083,7 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -5097,33 +5097,33 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= { /*** weak reference enabler ***/ #ifdef USE_WEAKREFS - offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ + offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */ #else 0, #endif /*** Added in release 2.2 ***/ /* Iterators */ - NULL, /* getiterfunc tp_iter; */ + NULL, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ pyrna_prop_collection_idprop_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ - &pyrna_prop_collection_Type, /* struct _typeobject *tp_base; */ + NULL /*pyrna_prop_getseters*/, /* struct PyGetSetDef *tp_getset; */ + &pyrna_prop_collection_Type,/* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrsetfunc tp_descr_set; */ 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ NULL, /* inquiry tp_is_gc; */ - NULL, /* PyObject *tp_bases; */ + NULL, /* PyObject *tp_bases; */ /* method resolution order */ NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_cache; */ @@ -5135,32 +5135,32 @@ static PyTypeObject pyrna_prop_collection_idprop_Type= { /*-----------------------BPy_PropertyRNA method def------------------------------*/ PyTypeObject pyrna_func_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_func", /* tp_name */ - sizeof(BPy_FunctionRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_func", /* tp_name */ + sizeof(BPy_FunctionRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ - NULL, /* tp_dealloc */ - NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* tp_dealloc */ + NULL, /* printfunc tp_print; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ - (reprfunc) pyrna_func_repr, /* tp_repr */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + (reprfunc) pyrna_func_repr, /* tp_repr */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - NULL, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ - (ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */ - NULL, /* reprfunc tp_str; */ + NULL, /* hashfunc tp_hash; */ + (ternaryfunc)pyrna_func_call, /* ternaryfunc tp_call; */ + NULL, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - NULL, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ + NULL, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -5168,7 +5168,7 @@ PyTypeObject pyrna_func_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -5178,7 +5178,7 @@ PyTypeObject pyrna_func_Type= { /*** Assigned meaning in release 2.1 ***/ /*** rich comparisons ***/ - NULL, /* richcmpfunc tp_richcompare; */ + NULL, /* richcmpfunc tp_richcompare; */ /*** weak reference enabler ***/ #ifdef USE_WEAKREFS @@ -5189,13 +5189,13 @@ PyTypeObject pyrna_func_Type= { /*** Added in release 2.2 ***/ /* Iterators */ - NULL, /* getiterfunc tp_iter; */ + NULL, /* getiterfunc tp_iter; */ NULL, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - NULL, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL, /* struct PyGetSetDef *tp_getset; */ + NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ @@ -5203,7 +5203,7 @@ PyTypeObject pyrna_func_Type= { 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ @@ -5231,32 +5231,32 @@ static PyObject *pyrna_prop_collection_iter_next(BPy_PropertyCollectionIterRNA * PyTypeObject pyrna_prop_collection_iter_Type= { PyVarObject_HEAD_INIT(NULL, 0) - "bpy_prop_collection_iter", /* tp_name */ - sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */ - 0, /* tp_itemsize */ + "bpy_prop_collection_iter", /* tp_name */ + sizeof(BPy_PropertyCollectionIterRNA), /* tp_basicsize */ + 0, /* tp_itemsize */ /* methods */ (destructor)pyrna_prop_collection_iter_dealloc, /* tp_dealloc */ NULL, /* printfunc tp_print; */ - NULL, /* getattrfunc tp_getattr; */ + NULL, /* getattrfunc tp_getattr; */ NULL, /* setattrfunc tp_setattr; */ - NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ + NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */ NULL,/* subclassed */ /* tp_repr */ /* Method suites for standard classes */ NULL, /* PyNumberMethods *tp_as_number; */ - NULL, /* PySequenceMethods *tp_as_sequence; */ - NULL, /* PyMappingMethods *tp_as_mapping; */ + NULL, /* PySequenceMethods *tp_as_sequence; */ + NULL, /* PyMappingMethods *tp_as_mapping; */ /* More standard operations (here for binary compatibility) */ - NULL, /* hashfunc tp_hash; */ + NULL, /* hashfunc tp_hash; */ NULL, /* ternaryfunc tp_call; */ NULL, /* reprfunc tp_str; */ /* will only use these if this is a subtype of a py class */ - PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */ - NULL, /* setattrofunc tp_setattro; */ + PyObject_GenericGetAttr, /* getattrofunc tp_getattro; */ + NULL, /* setattrofunc tp_setattro; */ /* Functions to access object as input/output buffer */ NULL, /* PyBufferProcs *tp_as_buffer; */ @@ -5264,7 +5264,7 @@ PyTypeObject pyrna_prop_collection_iter_Type= { /*** Flags to define presence of optional/expanded features ***/ Py_TPFLAGS_DEFAULT, /* long tp_flags; */ - NULL, /* char *tp_doc; Documentation string */ + NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ /* call function for all accessible objects */ NULL, /* traverseproc tp_traverse; */ @@ -5278,19 +5278,19 @@ PyTypeObject pyrna_prop_collection_iter_Type= { /*** weak reference enabler ***/ #ifdef USE_WEAKREFS - offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */ + offsetof(BPy_PropertyCollectionIterRNA, in_weakreflist), /* long tp_weaklistoffset; */ #else 0, #endif /*** Added in release 2.2 ***/ /* Iterators */ - PyObject_SelfIter, /* getiterfunc tp_iter; */ - (iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */ + PyObject_SelfIter, /* getiterfunc tp_iter; */ + (iternextfunc) pyrna_prop_collection_iter_next, /* iternextfunc tp_iternext; */ /*** Attribute descriptor and subclassing stuff ***/ - NULL, /* struct PyMethodDef *tp_methods; */ + NULL, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL, /* struct PyGetSetDef *tp_getset; */ + NULL, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ @@ -5298,12 +5298,12 @@ PyTypeObject pyrna_prop_collection_iter_Type= { 0, /* long tp_dictoffset; */ NULL, /* initproc tp_init; */ NULL, /* allocfunc tp_alloc; */ - NULL, /* newfunc tp_new; */ + NULL, /* newfunc tp_new; */ /* Low-level free-memory routine */ NULL, /* freefunc tp_free; */ /* For PyObject_IS_GC */ NULL, /* inquiry tp_is_gc; */ - NULL, /* PyObject *tp_bases; */ + NULL, /* PyObject *tp_bases; */ /* method resolution order */ NULL, /* PyObject *tp_mro; */ NULL, /* PyObject *tp_cache; */ -- cgit v1.2.3 From 8cc307b4f2d2e1321ab8ec1baee6697ae3b0a967 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 3 Sep 2011 06:46:31 +0000 Subject: PyC_ExceptionBuffer is now threadsafe, used for converting exceptions into reports. --- source/blender/python/generic/py_capi_utils.c | 79 ++++++--------------------- 1 file changed, 18 insertions(+), 61 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index 81aea8571f8..b7e67ec5a93 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -208,77 +208,34 @@ PyObject *PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...) return item; } -/* returns the exception string as a new PyUnicode object, depends on external StringIO module */ +/* returns the exception string as a new PyUnicode object, depends on external traceback module */ PyObject *PyC_ExceptionBuffer(void) { - PyObject *stdout_backup = PySys_GetObject("stdout"); /* borrowed */ - PyObject *stderr_backup = PySys_GetObject("stderr"); /* borrowed */ - PyObject *string_io = NULL; - PyObject *string_io_buf = NULL; - PyObject *string_io_mod= NULL; - PyObject *string_io_getvalue= NULL; - - PyObject *error_type, *error_value, *error_traceback; - - if (!PyErr_Occurred()) - return NULL; - - PyErr_Fetch(&error_type, &error_value, &error_traceback); - - PyErr_Clear(); - - /* import io - * string_io = io.StringIO() - */ - - if(! (string_io_mod= PyImport_ImportModule("io")) ) { + PyObject *traceback_mod= NULL; + PyObject *format_tb_func= NULL; + PyObject *ret= NULL; + + if(! (traceback_mod= PyImport_ImportModule("traceback")) ) { goto error_cleanup; } - else if (! (string_io = PyObject_CallMethod(string_io_mod, (char *)"StringIO", NULL))) { + else if (! (format_tb_func= PyObject_GetAttrString(traceback_mod, "format_exc"))) { goto error_cleanup; } - else if (! (string_io_getvalue= PyObject_GetAttrString(string_io, "getvalue"))) { - goto error_cleanup; + + ret= PyObject_CallObject(format_tb_func, NULL); + + if(ret == Py_None) { + Py_DECREF(ret); + ret= NULL; } - - Py_INCREF(stdout_backup); // since these were borrowed we dont want them freed when replaced. - Py_INCREF(stderr_backup); - - PySys_SetObject("stdout", string_io); // both of these are free'd when restoring - PySys_SetObject("stderr", string_io); - - PyErr_Restore(error_type, error_value, error_traceback); - PyErr_Print(); /* print the error */ - PyErr_Clear(); - - string_io_buf = PyObject_CallObject(string_io_getvalue, NULL); - - PySys_SetObject("stdout", stdout_backup); - PySys_SetObject("stderr", stderr_backup); - - Py_DECREF(stdout_backup); /* now sys owns the ref again */ - Py_DECREF(stderr_backup); - - Py_DECREF(string_io_mod); - Py_DECREF(string_io_getvalue); - Py_DECREF(string_io); /* free the original reference */ - - PyErr_Clear(); - return string_io_buf; - - + error_cleanup: /* could not import the module so print the error and close */ - Py_XDECREF(string_io_mod); - Py_XDECREF(string_io); - - PyErr_Restore(error_type, error_value, error_traceback); - PyErr_Print(); /* print the error */ - PyErr_Clear(); - - return NULL; -} + Py_XDECREF(traceback_mod); + Py_XDECREF(format_tb_func); + return ret; +} /* string conversion, escape non-unicode chars, coerce must be set to NULL */ const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce) -- cgit v1.2.3 From a6a14d0a1e2dcc1aa5535a96339245bb645fba58 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sat, 3 Sep 2011 08:18:43 +0000 Subject: == CustomData == * Added comments for each entry in the LAYERTYPEINFO array noting the number and name of the layer type; was hard to tell before which entry was what --- source/blender/blenkernel/intern/customdata.c | 28 +++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 8d19322c0db..c342bbc917f 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -808,41 +808,65 @@ static void layerDefault_mcol(void *data, int count) static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { + /* 0: CD_MVERT */ {sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 1: CD_MSTICKY */ {sizeof(MSticky), "MSticky", 1, NULL, NULL, NULL, layerInterp_msticky, NULL, NULL}, + /* 2: CD_MDEFORMVERT */ {sizeof(MDeformVert), "MDeformVert", 1, NULL, layerCopy_mdeformvert, layerFree_mdeformvert, layerInterp_mdeformvert, NULL, NULL}, + /* 3: CD_MEDGE */ {sizeof(MEdge), "MEdge", 1, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 4: CD_MFACE */ {sizeof(MFace), "MFace", 1, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 5: CD_MTFACE */ {sizeof(MTFace), "MTFace", 1, "UVTex", layerCopy_tface, NULL, layerInterp_tface, layerSwap_tface, layerDefault_tface}, + /* 6: CD_MCOL */ /* 4 MCol structs per face */ {sizeof(MCol)*4, "MCol", 4, "Col", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, + /* 7: CD_ORIGINDEX */ {sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 8: CD_NORMAL */ /* 3 floats per normal vector */ {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 9: CD_FLAGS */ {sizeof(int), "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 10: CD_PROP_FLT */ {sizeof(MFloatProperty), "MFloatProperty",1,"Float",NULL,NULL,NULL,NULL}, + /* 11: CD_PROP_INT */ {sizeof(MIntProperty), "MIntProperty",1,"Int",NULL,NULL,NULL,NULL}, + /* 12: CD_PROP_STR */ {sizeof(MStringProperty), "MStringProperty",1,"String",NULL,NULL,NULL,NULL}, + /* 13: CD_ORIGSPACE */ {sizeof(OrigSpaceFace), "OrigSpaceFace", 1, "UVTex", layerCopy_origspace_face, NULL, layerInterp_origspace_face, layerSwap_origspace_face, layerDefault_origspace_face}, + /* 14: CD_ORCO */ {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 15: CD_MTEXPOLY */ {sizeof(MTexPoly), "MTexPoly", 1, "Face Texture", NULL, NULL, NULL, NULL, NULL}, + /* 16: CD_MLOOPUV */ {sizeof(MLoopUV), "MLoopUV", 1, "UV coord", NULL, NULL, layerInterp_mloopuv, NULL, NULL}, + /* 17: CD_MLOOPCOL */ {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol}, + /* 18: CD_TANGENT */ {sizeof(float)*4*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, + /* 19: CD_MDISPS */ {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps, layerValidate_mdisps}, + /* 20: CD_WEIGHT_MCOL */ {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, - {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, + /* 21: CD_ID_MCOL */ + {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, - {sizeof(MCol)*4, "MCol", 4, "TexturedCol", NULL, NULL, layerInterp_mcol, + /* 22: CD_TEXTURE_MCOL */ + {sizeof(MCol)*4, "MCol", 4, "TexturedCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, + /* 23: CD_CLOTH_ORCO */ {sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL} }; -- cgit v1.2.3 From a01ffbbddb40c8f14f10aa5edf0cd1ba5dcc6942 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 3 Sep 2011 09:43:20 +0000 Subject: minor edits to build on openbsd --- source/blender/blenloader/BLO_sys_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h index d56723ec1c5..2114fc34bf1 100644 --- a/source/blender/blenloader/BLO_sys_types.h +++ b/source/blender/blenloader/BLO_sys_types.h @@ -83,7 +83,7 @@ typedef unsigned long uintptr_t; #define _UINTPTR_T_DEFINED #endif -#elif defined(__linux__) || defined(__NetBSD__) +#elif defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) /* Linux-i386, Linux-Alpha, Linux-ppc */ #include -- cgit v1.2.3 From 451136e7c0860b5240d4fcec50c95cd4790b8e2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 3 Sep 2011 15:36:36 +0000 Subject: warning fixes --- source/blender/blenkernel/intern/mesh_validate.c | 2 +- source/blender/collada/DocumentExporter.cpp | 7 ++----- source/blender/collada/ExtraTags.cpp | 12 ++++-------- source/blender/makesrna/intern/rna_scene_api.c | 2 +- 4 files changed, 8 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c index 9c916d517c5..70398594872 100644 --- a/source/blender/blenkernel/intern/mesh_validate.c +++ b/source/blender/blenkernel/intern/mesh_validate.c @@ -166,7 +166,7 @@ int BKE_mesh_validate_arrays(Mesh *me, MVert *UNUSED(mverts), unsigned int totve } if(BLI_edgehash_haskey(edge_hash, med->v1, med->v2)) { - PRINT(" edge %u: is a duplicate of, %u\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, med->v1, med->v2))); + PRINT(" edge %u: is a duplicate of, %d\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, med->v1, med->v2))); remove= do_fixes; } diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 285ab283b37..6e780889d16 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -328,9 +328,7 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename, bool //scale = RNA_struct_find_property(&unit_settings, "scale_length"); std::string unitname = "meter"; - float linearmeasure = 1.0f; - - linearmeasure = RNA_float_get(&unit_settings, "scale_length"); + float linearmeasure = RNA_float_get(&unit_settings, "scale_length"); switch(RNA_property_enum_get(&unit_settings, system)) { case USER_UNIT_NONE: @@ -368,8 +366,7 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename, bool asset.setUnit(unitname, linearmeasure); asset.setUpAxisType(COLLADASW::Asset::Z_UP); - // TODO: need an Author field in userpref - if(strlen(U.author) > 0) { + if(U.author[0] != '\0') { asset.getContributor().mAuthor = U.author; } else { diff --git a/source/blender/collada/ExtraTags.cpp b/source/blender/collada/ExtraTags.cpp index 653d4a377cd..f0c6d2228b1 100644 --- a/source/blender/collada/ExtraTags.cpp +++ b/source/blender/collada/ExtraTags.cpp @@ -90,32 +90,28 @@ std::string ExtraTags::asString( std::string tag, bool *ok) void ExtraTags::setData(std::string tag, short *data) { bool ok = false; - int tmp = 0; - tmp = asInt(tag, &ok); + int tmp = asInt(tag, &ok); if(ok) *data = (short)tmp; } void ExtraTags::setData(std::string tag, int *data) { bool ok = false; - int tmp = 0; - tmp = asInt(tag, &ok); + int tmp = asInt(tag, &ok); if(ok) *data = tmp; } void ExtraTags::setData(std::string tag, float *data) { bool ok = false; - float tmp = 0.0f; - tmp = asFloat(tag, &ok); + float tmp = asFloat(tag, &ok); if(ok) *data = tmp; } void ExtraTags::setData(std::string tag, char *data) { bool ok = false; - int tmp = 0; - tmp = asInt(tag, &ok); + int tmp = asInt(tag, &ok); if(ok) *data = (char)tmp; } diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index 1220c4f34a1..fd7987c18a2 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -111,7 +111,7 @@ void RNA_api_scene(StructRNA *srna) #ifdef WITH_COLLADA /* don't remove this, as COLLADA exporting cannot be done through operators in render() callback. */ func= RNA_def_function(srna, "collada_export", "rna_Scene_collada_export"); - parm= RNA_def_string(func, "filepath", "", FILE_MAX, "File Path", "File path to write Collada file."); + RNA_def_string(func, "filepath", "", FILE_MAX, "File Path", "File path to write Collada file."); parm= RNA_def_boolean(func, "selected", 0, "Export only selected", "Export only selected elements."); RNA_def_property_flag(parm, PROP_REQUIRED); RNA_def_property_subtype(parm, PROP_FILEPATH); /* allow non utf8 */ -- cgit v1.2.3 From 1764f2135d3c1780c4ead12fae3eb97ac2de5a7d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 4 Sep 2011 00:15:59 +0000 Subject: Some whitespace changes --- source/blender/collada/AnimationExporter.cpp | 1694 +++++++++++++------------- source/blender/collada/AnimationImporter.cpp | 388 +++--- source/blender/collada/AnimationImporter.h | 10 +- source/blender/collada/ArmatureExporter.cpp | 2 +- source/blender/collada/ArmatureImporter.cpp | 4 +- source/blender/collada/ArmatureImporter.h | 4 +- source/blender/collada/MeshImporter.cpp | 2 +- source/blender/collada/SkinInfo.cpp | 6 +- source/blender/collada/TransformWriter.cpp | 2 +- 9 files changed, 1055 insertions(+), 1057 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 8a0a39da558..4c20d1cf6c1 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -1,26 +1,26 @@ /* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed. - * - * ***** END GPL LICENSE BLOCK ***** - */ +* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +* Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed. +* +* ***** END GPL LICENSE BLOCK ***** +*/ #include "GeometryExporter.h" #include "AnimationExporter.h" @@ -30,10 +30,10 @@ template void forEachObjectInScene(Scene *sce, Functor &f) { Base *base= (Base*) sce->base.first; - + while(base) { Object *ob = base->object; - + f(ob); base= base->next; @@ -61,7 +61,7 @@ void AnimationExporter::operator() (Object *ob) bool isMatAnim = false; //Export transform animations - if(ob->adt && ob->adt->action) + if(ob->adt && ob->adt->action) { fcu = (FCurve*)ob->adt->action->curves.first; @@ -72,21 +72,21 @@ void AnimationExporter::operator() (Object *ob) for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); } - + while (fcu) { //for armature animations as objects if ( ob->type == OB_ARMATURE ) transformName = fcu->rna_path; else transformName = extract_transform_name( fcu->rna_path ); - + if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| (!strcmp(transformName, "rotation_quaternion"))) dae_animation(ob ,fcu, transformName, false); fcu = fcu->next; } - + } //Export Lamp parameter animations @@ -94,8 +94,8 @@ void AnimationExporter::operator() (Object *ob) { fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - + transformName = extract_transform_name( fcu->rna_path ); + if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))|| (!strcmp(transformName, "distance")) ) dae_animation(ob , fcu, transformName, true ); @@ -108,8 +108,8 @@ void AnimationExporter::operator() (Object *ob) { fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); while (fcu) { - transformName = extract_transform_name( fcu->rna_path ); - + transformName = extract_transform_name( fcu->rna_path ); + if ((!strcmp(transformName, "lens"))|| (!strcmp(transformName, "ortho_scale"))|| (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) @@ -129,7 +129,7 @@ void AnimationExporter::operator() (Object *ob) fcu = (FCurve*)ma->adt->action->curves.first; while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - + if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))|| (!strcmp(transformName, "ior"))) @@ -137,384 +137,384 @@ void AnimationExporter::operator() (Object *ob) fcu = fcu->next; } } - + } } - //euler sources from quternion sources - float * AnimationExporter::get_eul_source_for_quat(Object *ob ) +//euler sources from quternion sources +float * AnimationExporter::get_eul_source_for_quat(Object *ob ) +{ + FCurve *fcu = (FCurve*)ob->adt->action->curves.first; + const int keys = fcu->totvert; + float *quat = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 4, "quat output source values"); + float *eul = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 3, "quat output source values"); + float temp_quat[4]; + float temp_eul[3]; + while(fcu) { - FCurve *fcu = (FCurve*)ob->adt->action->curves.first; - const int keys = fcu->totvert; - float *quat = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 4, "quat output source values"); - float *eul = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 3, "quat output source values"); - float temp_quat[4]; - float temp_eul[3]; - while(fcu) - { - char * transformName = extract_transform_name( fcu->rna_path ); - - if( !strcmp(transformName, "rotation_quaternion") ) { - for ( int i = 0 ; i < fcu->totvert ; i++){ - *(quat + ( i * 4 ) + fcu->array_index) = fcu->bezt[i].vec[1][1]; - } - } - fcu = fcu->next; + char * transformName = extract_transform_name( fcu->rna_path ); + + if( !strcmp(transformName, "rotation_quaternion") ) { + for ( int i = 0 ; i < fcu->totvert ; i++){ + *(quat + ( i * 4 ) + fcu->array_index) = fcu->bezt[i].vec[1][1]; } + } + fcu = fcu->next; + } - for ( int i = 0 ; i < keys ; i++){ - for ( int j = 0;j<4;j++) - temp_quat[j] = quat[(i*4)+j]; + for ( int i = 0 ; i < keys ; i++){ + for ( int j = 0;j<4;j++) + temp_quat[j] = quat[(i*4)+j]; - quat_to_eul(temp_eul,temp_quat); + quat_to_eul(temp_eul,temp_quat); - for (int k = 0;k<3;k++) - eul[i*3 + k] = temp_eul[k]; - - } - MEM_freeN(quat); - return eul; + for (int k = 0;k<3;k++) + eul[i*3 + k] = temp_eul[k]; } + MEM_freeN(quat); + return eul; + +} + +//Get proper name for bones +std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) +{ + //hard-way to derive the bone name from rna_path. Must find more compact method + std::string rna_path = std::string(fcu->rna_path); - //Get proper name for bones - std::string AnimationExporter::getObjectBoneName( Object* ob,const FCurve* fcu ) + char* boneName = strtok((char *)rna_path.c_str(), "\""); + boneName = strtok(NULL,"\""); + + if( boneName != NULL ) + return /*id_name(ob) + "_" +*/ std::string(boneName); + else + return id_name(ob); +} + +//convert f-curves to animation curves and write +void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material * ma ) +{ + const char *axis_name = NULL; + char anim_id[200]; + + bool has_tangents = false; + bool quatRotation = false; + + if ( !strcmp(transformName, "rotation_quaternion") ) { - //hard-way to derive the bone name from rna_path. Must find more compact method - std::string rna_path = std::string(fcu->rna_path); - - char* boneName = strtok((char *)rna_path.c_str(), "\""); - boneName = strtok(NULL,"\""); - - if( boneName != NULL ) - return /*id_name(ob) + "_" +*/ std::string(boneName); - else - return id_name(ob); + fprintf(stderr, "quaternion rotation curves are not supported. rotation curve will not be exported\n"); + quatRotation = true; + return; } - //convert f-curves to animation curves and write - void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformName , bool is_param, Material * ma ) + //axis names for colors + else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| + (!strcmp(transformName, "alpha"))) { - const char *axis_name = NULL; - char anim_id[200]; - - bool has_tangents = false; - bool quatRotation = false; - - if ( !strcmp(transformName, "rotation_quaternion") ) - { - fprintf(stderr, "quaternion rotation curves are not supported. rotation curve will not be exported\n"); - quatRotation = true; - return; - } - - //axis names for colors - else if ( !strcmp(transformName, "color")||!strcmp(transformName, "specular_color")||!strcmp(transformName, "diffuse_color")|| - (!strcmp(transformName, "alpha"))) - { - const char *axis_names[] = {"R", "G", "B"}; - if (fcu->array_index < 3) + const char *axis_names[] = {"R", "G", "B"}; + if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; - } + } - //axis names for transforms - else if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || - (!strcmp(transformName, "rotation_euler"))||(!strcmp(transformName, "rotation_quaternion"))) - { - const char *axis_names[] = {"X", "Y", "Z"}; - if (fcu->array_index < 3) + //axis names for transforms + else if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || + (!strcmp(transformName, "rotation_euler"))||(!strcmp(transformName, "rotation_quaternion"))) + { + const char *axis_names[] = {"X", "Y", "Z"}; + if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; - } + } - //no axis name. single parameter. - else{ - axis_name = ""; - } - - std::string ob_name = std::string("null"); - - //Create anim Id - if (ob->type == OB_ARMATURE) - { - ob_name = getObjectBoneName( ob , fcu); - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char*)translate_id(ob_name).c_str(), - transformName, axis_name); - } - else - { - if (ma) - ob_name = id_name(ob) + "_material"; - else - ob_name = id_name(ob); - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - fcu->rna_path, axis_name); - } - - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); + //no axis name. single parameter. + else{ + axis_name = ""; + } - // create input source - std::string input_id = create_source_from_fcurve(COLLADASW::InputSemantic::INPUT, fcu, anim_id, axis_name); + std::string ob_name = std::string("null"); - // create output source - std::string output_id ; - - //quat rotations are skipped for now, because of complications with determining axis. - if(quatRotation) - { - float * eul = get_eul_source_for_quat(ob); - float * eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); - for ( int i = 0 ; i< fcu->totvert ; i++) - eul_axis[i] = eul[i*3 + fcu->array_index]; - output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); - MEM_freeN(eul); - MEM_freeN(eul_axis); - } - else - { - output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); - } - // create interpolations source - std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents); - - // handle tangents (if required) - std::string intangent_id; - std::string outtangent_id; - - if (has_tangents) { - // create in_tangent source - intangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::IN_TANGENT, fcu, anim_id, axis_name); - - // create out_tangent source - outtangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUT_TANGENT, fcu, anim_id, axis_name); - } + //Create anim Id + if (ob->type == OB_ARMATURE) + { + ob_name = getObjectBoneName( ob , fcu); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char*)translate_id(ob_name).c_str(), + transformName, axis_name); + } + else + { + if (ma) + ob_name = id_name(ob) + "_material"; + else + ob_name = id_name(ob); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + fcu->rna_path, axis_name); + } - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; - COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); - std::string empty; - sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); - sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); - // this input is required - sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + // create input source + std::string input_id = create_source_from_fcurve(COLLADASW::InputSemantic::INPUT, fcu, anim_id, axis_name); - if (has_tangents) { - sampler.addInput(COLLADASW::InputSemantic::IN_TANGENT, COLLADABU::URI(empty, intangent_id)); - sampler.addInput(COLLADASW::InputSemantic::OUT_TANGENT, COLLADABU::URI(empty, outtangent_id)); - } + // create output source + std::string output_id ; - addSampler(sampler); + //quat rotations are skipped for now, because of complications with determining axis. + if(quatRotation) + { + float * eul = get_eul_source_for_quat(ob); + float * eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); + for ( int i = 0 ; i< fcu->totvert ; i++) + eul_axis[i] = eul[i*3 + fcu->array_index]; + output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); + MEM_freeN(eul); + MEM_freeN(eul_axis); + } + else + { + output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); + } + // create interpolations source + std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents); - std::string target ; + // handle tangents (if required) + std::string intangent_id; + std::string outtangent_id; - if ( !is_param ) - target = translate_id(ob_name) - + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); - else - { - if ( ob->type == OB_LAMP ) - target = get_light_id(ob) - + "/" + get_light_param_sid(fcu->rna_path, -1, axis_name, true); + if (has_tangents) { + // create in_tangent source + intangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::IN_TANGENT, fcu, anim_id, axis_name); - if ( ob->type == OB_CAMERA ) - target = get_camera_id(ob) - + "/" + get_camera_param_sid(fcu->rna_path, -1, axis_name, true); + // create out_tangent source + outtangent_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUT_TANGENT, fcu, anim_id, axis_name); + } - if( ma ) - target = translate_id(id_name(ma)) + "-effect" - +"/common/" /*profile common is only supported */ + get_transform_sid(fcu->rna_path, -1, axis_name, true); - } - addChannel(COLLADABU::URI(empty, sampler_id), target); + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); - closeAnimation(); + if (has_tangents) { + sampler.addInput(COLLADASW::InputSemantic::IN_TANGENT, COLLADABU::URI(empty, intangent_id)); + sampler.addInput(COLLADASW::InputSemantic::OUT_TANGENT, COLLADABU::URI(empty, outtangent_id)); } + addSampler(sampler); + + std::string target ; - - //write bone animations in transform matrix sources - void AnimationExporter::write_bone_animation_matrix(Object *ob_arm, Bone *bone) + if ( !is_param ) + target = translate_id(ob_name) + + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); + else { - if (!ob_arm->adt) - return; - - //This will only export animations of bones in deform group. - /*if(!is_bone_deform_group(bone)) - return;*/ - - sample_and_write_bone_animation_matrix(ob_arm, bone); - - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) - write_bone_animation_matrix(ob_arm, child); + if ( ob->type == OB_LAMP ) + target = get_light_id(ob) + + "/" + get_light_param_sid(fcu->rna_path, -1, axis_name, true); + + if ( ob->type == OB_CAMERA ) + target = get_camera_id(ob) + + "/" + get_camera_param_sid(fcu->rna_path, -1, axis_name, true); + + if( ma ) + target = translate_id(id_name(ma)) + "-effect" + +"/common/" /*profile common is only supported */ + get_transform_sid(fcu->rna_path, -1, axis_name, true); } + addChannel(COLLADABU::URI(empty, sampler_id), target); - bool AnimationExporter::is_bone_deform_group(Bone * bone) + closeAnimation(); +} + + + +//write bone animations in transform matrix sources +void AnimationExporter::write_bone_animation_matrix(Object *ob_arm, Bone *bone) +{ + if (!ob_arm->adt) + return; + + //This will only export animations of bones in deform group. + /*if(!is_bone_deform_group(bone)) + return;*/ + + sample_and_write_bone_animation_matrix(ob_arm, bone); + + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + write_bone_animation_matrix(ob_arm, child); +} + +bool AnimationExporter::is_bone_deform_group(Bone * bone) +{ + bool is_def; + //Check if current bone is deform + if((bone->flag & BONE_NO_DEFORM) == 0 ) return true; + //Check child bones + else { - bool is_def; - //Check if current bone is deform - if((bone->flag & BONE_NO_DEFORM) == 0 ) return true; - //Check child bones - else - { - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next){ - //loop through all the children until deform bone is found, and then return - is_def = is_bone_deform_group(child); - if (is_def) return true; - } + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next){ + //loop through all the children until deform bone is found, and then return + is_def = is_bone_deform_group(child); + if (is_def) return true; } - //no deform bone found in children also - return false; } + //no deform bone found in children also + return false; +} - void AnimationExporter::sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone) - { - bArmature *arm = (bArmature*)ob_arm->data; - int flag = arm->flag; - std::vector fra; - //char prefix[256]; - - FCurve* fcu = (FCurve*)ob_arm->adt->action->curves.first; - while(fcu) - { - std::string bone_name = getObjectBoneName(ob_arm,fcu); - int val = BLI_strcasecmp((char*)bone_name.c_str(),bone->name); - if(val==0) break; - fcu = fcu->next; - } +void AnimationExporter::sample_and_write_bone_animation_matrix(Object *ob_arm, Bone *bone) +{ + bArmature *arm = (bArmature*)ob_arm->data; + int flag = arm->flag; + std::vector fra; + //char prefix[256]; - if(!(fcu)) return; - bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); - if (!pchan) - return; - - find_frames(ob_arm, fra); + FCurve* fcu = (FCurve*)ob_arm->adt->action->curves.first; + while(fcu) + { + std::string bone_name = getObjectBoneName(ob_arm,fcu); + int val = BLI_strcasecmp((char*)bone_name.c_str(),bone->name); + if(val==0) break; + fcu = fcu->next; + } - if (flag & ARM_RESTPOS) { - arm->flag &= ~ARM_RESTPOS; - where_is_pose(scene, ob_arm); - } + if(!(fcu)) return; + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); + if (!pchan) + return; - if (fra.size()) { - dae_baked_animation(fra ,ob_arm, bone ); - } + find_frames(ob_arm, fra); - if (flag & ARM_RESTPOS) - arm->flag = flag; + if (flag & ARM_RESTPOS) { + arm->flag &= ~ARM_RESTPOS; where_is_pose(scene, ob_arm); } - void AnimationExporter::dae_baked_animation(std::vector &fra, Object *ob_arm , Bone *bone) - { - std::string ob_name = id_name(ob_arm); - std::string bone_name = bone->name; - char anim_id[200]; - - if (!fra.size()) - return; + if (fra.size()) { + dae_baked_animation(fra ,ob_arm, bone ); + } - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - (char*)translate_id(bone_name).c_str(), "pose_matrix"); + if (flag & ARM_RESTPOS) + arm->flag = flag; + where_is_pose(scene, ob_arm); +} - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); +void AnimationExporter::dae_baked_animation(std::vector &fra, Object *ob_arm , Bone *bone) +{ + std::string ob_name = id_name(ob_arm); + std::string bone_name = bone->name; + char anim_id[200]; - // create input source - std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, false, anim_id, ""); + if (!fra.size()) + return; - // create output source - std::string output_id; - output_id = create_4x4_source( fra, ob_arm , bone , anim_id); + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + (char*)translate_id(bone_name).c_str(), "pose_matrix"); - // create interpolations source - std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, ""); + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; - COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); - std::string empty; - sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); - sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + // create input source + std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, false, anim_id, ""); - // TODO create in/out tangents source + // create output source + std::string output_id; + output_id = create_4x4_source( fra, ob_arm , bone , anim_id); - // this input is required - sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + // create interpolations source + std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, ""); - addSampler(sampler); + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); - std::string target = translate_id(bone_name) + "/transform"; - addChannel(COLLADABU::URI(empty, sampler_id), target); + // TODO create in/out tangents source - closeAnimation(); - } + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); - // dae_bone_animation -> add_bone_animation - // (blend this into dae_bone_animation) - void AnimationExporter::dae_bone_animation(std::vector &fra, float *values, int tm_type, int axis, std::string ob_name, std::string bone_name) - { - const char *axis_names[] = {"X", "Y", "Z"}; - const char *axis_name = NULL; - char anim_id[200]; - bool is_rot = tm_type == 0; - - if (!fra.size()) - return; + addSampler(sampler); - char rna_path[200]; - BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].%s", bone_name.c_str(), - tm_type == 0 ? "rotation_quaternion" : (tm_type == 1 ? "scale" : "location")); + std::string target = translate_id(bone_name) + "/transform"; + addChannel(COLLADABU::URI(empty, sampler_id), target); - if (axis > -1) - axis_name = axis_names[axis]; - - std::string transform_sid = get_transform_sid(NULL, tm_type, axis_name, false); - - BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), - (char*)translate_id(bone_name).c_str(), (char*)transform_sid.c_str()); + closeAnimation(); +} - openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); +// dae_bone_animation -> add_bone_animation +// (blend this into dae_bone_animation) +void AnimationExporter::dae_bone_animation(std::vector &fra, float *values, int tm_type, int axis, std::string ob_name, std::string bone_name) +{ + const char *axis_names[] = {"X", "Y", "Z"}; + const char *axis_name = NULL; + char anim_id[200]; + bool is_rot = tm_type == 0; - // create input source - std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, is_rot, anim_id, axis_name); + if (!fra.size()) + return; - // create output source - std::string output_id; - if (axis == -1) - output_id = create_xyz_source(values, fra.size(), anim_id); - else - output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, values, fra.size(), is_rot, anim_id, axis_name); + char rna_path[200]; + BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].%s", bone_name.c_str(), + tm_type == 0 ? "rotation_quaternion" : (tm_type == 1 ? "scale" : "location")); - // create interpolations source - std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, axis_name); + if (axis > -1) + axis_name = axis_names[axis]; - std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; - COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); - std::string empty; - sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); - sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); + std::string transform_sid = get_transform_sid(NULL, tm_type, axis_name, false); - // TODO create in/out tangents source + BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char*)translate_id(ob_name).c_str(), + (char*)translate_id(bone_name).c_str(), (char*)transform_sid.c_str()); - // this input is required - sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING); - addSampler(sampler); + // create input source + std::string input_id = create_source_from_vector(COLLADASW::InputSemantic::INPUT, fra, is_rot, anim_id, axis_name); - std::string target = translate_id(ob_name + "_" + bone_name) + "/" + transform_sid; - addChannel(COLLADABU::URI(empty, sampler_id), target); + // create output source + std::string output_id; + if (axis == -1) + output_id = create_xyz_source(values, fra.size(), anim_id); + else + output_id = create_source_from_array(COLLADASW::InputSemantic::OUTPUT, values, fra.size(), is_rot, anim_id, axis_name); - closeAnimation(); - } + // create interpolations source + std::string interpolation_id = fake_interpolation_source(fra.size(), anim_id, axis_name); - float AnimationExporter::convert_time(float frame) - { - return FRA2TIME(frame); - } + std::string sampler_id = std::string(anim_id) + SAMPLER_ID_SUFFIX; + COLLADASW::LibraryAnimations::Sampler sampler(sw, sampler_id); + std::string empty; + sampler.addInput(COLLADASW::InputSemantic::INPUT, COLLADABU::URI(empty, input_id)); + sampler.addInput(COLLADASW::InputSemantic::OUTPUT, COLLADABU::URI(empty, output_id)); - float AnimationExporter::convert_angle(float angle) - { - return COLLADABU::Math::Utils::radToDegF(angle); - } + // TODO create in/out tangents source - std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) - { - switch(semantic) { + // this input is required + sampler.addInput(COLLADASW::InputSemantic::INTERPOLATION, COLLADABU::URI(empty, interpolation_id)); + + addSampler(sampler); + + std::string target = translate_id(ob_name + "_" + bone_name) + "/" + transform_sid; + addChannel(COLLADABU::URI(empty, sampler_id), target); + + closeAnimation(); +} + +float AnimationExporter::convert_time(float frame) +{ + return FRA2TIME(frame); +} + +float AnimationExporter::convert_angle(float angle) +{ + return COLLADABU::Math::Utils::radToDegF(angle); +} + +std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) +{ + switch(semantic) { case COLLADASW::InputSemantic::INPUT: return INPUT_SOURCE_ID_SUFFIX; case COLLADASW::InputSemantic::OUTPUT: @@ -527,14 +527,14 @@ void AnimationExporter::operator() (Object *ob) return OUTTANGENT_SOURCE_ID_SUFFIX; default: break; - } - return ""; } + return ""; +} - void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, - COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis, bool transform) - { - switch(semantic) { +void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, + COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis, bool transform) +{ + switch(semantic) { case COLLADASW::InputSemantic::INPUT: param.push_back("TIME"); break; @@ -547,14 +547,14 @@ void AnimationExporter::operator() (Object *ob) param.push_back(axis); } else - if ( transform ) - { - param.push_back("TRANSFORM"); - }else{ //assumes if axis isn't specified all axises are added - param.push_back("X"); - param.push_back("Y"); - param.push_back("Z"); - } + if ( transform ) + { + param.push_back("TRANSFORM"); + }else{ //assumes if axis isn't specified all axises are added + param.push_back("X"); + param.push_back("Y"); + param.push_back("Z"); + } } break; case COLLADASW::InputSemantic::IN_TANGENT: @@ -564,12 +564,12 @@ void AnimationExporter::operator() (Object *ob) break; default: break; - } } +} - void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length) - { - switch (semantic) { +void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length) +{ + switch (semantic) { case COLLADASW::InputSemantic::INPUT: *length = 1; values[0] = convert_time(bezt->vec[1][0]); @@ -583,9 +583,9 @@ void AnimationExporter::operator() (Object *ob) values[0] = bezt->vec[1][1]; } break; - + case COLLADASW::InputSemantic::IN_TANGENT: - *length = 2; + *length = 2; values[0] = convert_time(bezt->vec[0][0]); if (bezt->ipo != BEZT_IPO_BEZ) { // We're in a mixed interpolation scenario, set zero as it's irrelevant but value might contain unused data @@ -598,7 +598,7 @@ void AnimationExporter::operator() (Object *ob) values[1] = bezt->vec[0][1]; } break; - + case COLLADASW::InputSemantic::OUT_TANGENT: *length = 2; values[0] = convert_time(bezt->vec[2][0]); @@ -617,283 +617,283 @@ void AnimationExporter::operator() (Object *ob) default: *length = 0; break; - } } +} - std::string AnimationExporter::create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); - bool is_angle = false; - - if (strstr(fcu->rna_path, "rotation")) is_angle = true; - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(fcu->totvert); - - switch (semantic) { +std::string AnimationExporter::create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name) +{ + std::string source_id = anim_id + get_semantic_suffix(semantic); + + //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); + bool is_angle = false; + + if (strstr(fcu->rna_path, "rotation")) is_angle = true; + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fcu->totvert); + + switch (semantic) { case COLLADASW::InputSemantic::INPUT: case COLLADASW::InputSemantic::OUTPUT: - source.setAccessorStride(1); + source.setAccessorStride(1); break; case COLLADASW::InputSemantic::IN_TANGENT: case COLLADASW::InputSemantic::OUT_TANGENT: - source.setAccessorStride(2); + source.setAccessorStride(2); break; - } - - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_angle, axis_name, false); + } - source.prepareToAppendValues(); - for (unsigned int i = 0; i < fcu->totvert; i++) { - float values[3]; // be careful! - int length = 0; - get_source_values(&fcu->bezt[i], semantic, is_angle, values, &length); - for (int j = 0; j < length; j++) - source.appendValues(values[j]); - } + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_angle, axis_name, false); - source.finish(); + source.prepareToAppendValues(); - return source_id; + for (unsigned int i = 0; i < fcu->totvert; i++) { + float values[3]; // be careful! + int length = 0; + get_source_values(&fcu->bezt[i], semantic, is_angle, values, &length); + for (int j = 0; j < length; j++) + source.appendValues(values[j]); } - //Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) - std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name, false); - - source.prepareToAppendValues(); - - for (int i = 0; i < tot; i++) { - float val = v[i]; - ////if (semantic == COLLADASW::InputSemantic::INPUT) - // val = convert_time(val); - //else - if (is_rot) - val *= 180.0f / M_PI; - source.appendValues(val); - } + source.finish(); - source.finish(); + return source_id; +} - return source_id; +//Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified ) +std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name) +{ + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_rot, axis_name, false); + + source.prepareToAppendValues(); + + for (int i = 0; i < tot; i++) { + float val = v[i]; + ////if (semantic == COLLADASW::InputSemantic::INPUT) + // val = convert_time(val); + //else + if (is_rot) + val *= 180.0f / M_PI; + source.appendValues(val); } -// only used for sources with INPUT semantic - std::string AnimationExporter::create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(fra.size()); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, is_rot, axis_name, false); - - source.prepareToAppendValues(); - - std::vector::iterator it; - for (it = fra.begin(); it != fra.end(); it++) { - float val = *it; - //if (semantic == COLLADASW::InputSemantic::INPUT) - val = convert_time(val); - /*else if (is_rot) - val = convert_angle(val);*/ - source.appendValues(val); - } - source.finish(); + source.finish(); - return source_id; + return source_id; +} +// only used for sources with INPUT semantic +std::string AnimationExporter::create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector &fra, bool is_rot, const std::string& anim_id, const char *axis_name) +{ + std::string source_id = anim_id + get_semantic_suffix(semantic); + + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fra.size()); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, is_rot, axis_name, false); + + source.prepareToAppendValues(); + + std::vector::iterator it; + for (it = fra.begin(); it != fra.end(); it++) { + float val = *it; + //if (semantic == COLLADASW::InputSemantic::INPUT) + val = convert_time(val); + /*else if (is_rot) + val = convert_angle(val);*/ + source.appendValues(val); } - std::string AnimationExporter::create_4x4_source(std::vector &frames , Object * ob_arm, Bone *bone , const std::string& anim_id) - { - COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; - std::string source_id = anim_id + get_semantic_suffix(semantic); + source.finish(); - COLLADASW::Float4x4Source source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(frames.size()); - source.setAccessorStride(16); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, false, NULL, true); + return source_id; +} - source.prepareToAppendValues(); - - bPoseChannel *parchan = NULL; - bPoseChannel *pchan = NULL; - bPose *pose = ob_arm->pose; +std::string AnimationExporter::create_4x4_source(std::vector &frames , Object * ob_arm, Bone *bone , const std::string& anim_id) +{ + COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; + std::string source_id = anim_id + get_semantic_suffix(semantic); - pchan = get_pose_channel(pose, bone->name); + COLLADASW::Float4x4Source source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(frames.size()); + source.setAccessorStride(16); - if (!pchan) - return ""; + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, false, NULL, true); - parchan = pchan->parent; + source.prepareToAppendValues(); - enable_fcurves(ob_arm->adt->action, bone->name); + bPoseChannel *parchan = NULL; + bPoseChannel *pchan = NULL; + bPose *pose = ob_arm->pose; - std::vector::iterator it; - int j = 0; - for (it = frames.begin(); it != frames.end(); it++) { - float mat[4][4], ipar[4][4]; + pchan = get_pose_channel(pose, bone->name); - float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + if (!pchan) + return ""; - BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); - where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + parchan = pchan->parent; - // compute bone local mat - if (bone->parent) { - invert_m4_m4(ipar, parchan->pose_mat); - mul_m4_m4m4(mat, pchan->pose_mat, ipar); - } - else - copy_m4_m4(mat, pchan->pose_mat); - UnitConverter converter; + enable_fcurves(ob_arm->adt->action, bone->name); - float outmat[4][4]; - converter.mat4_to_dae(outmat,mat); + std::vector::iterator it; + int j = 0; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - source.appendValues(outmat); - + BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); - j++; + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); } + else + copy_m4_m4(mat, pchan->pose_mat); + UnitConverter converter; - enable_fcurves(ob_arm->adt->action, NULL); + float outmat[4][4]; + converter.mat4_to_dae(outmat,mat); - source.finish(); - return source_id; - } - // only used for sources with OUTPUT semantic ( locations and scale) - std::string AnimationExporter::create_xyz_source(float *v, int tot, const std::string& anim_id) - { - COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; - std::string source_id = anim_id + get_semantic_suffix(semantic); - - COLLADASW::FloatSourceF source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(3); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - add_source_parameters(param, semantic, false, NULL, false); - - source.prepareToAppendValues(); - - for (int i = 0; i < tot; i++) { - source.appendValues(*v, *(v + 1), *(v + 2)); - v += 3; - } + source.appendValues(outmat); - source.finish(); - return source_id; + j++; } - std::string AnimationExporter::create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents) - { - std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + enable_fcurves(ob_arm->adt->action, NULL); - COLLADASW::NameSource source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(fcu->totvert); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - param.push_back("INTERPOLATION"); + source.finish(); - source.prepareToAppendValues(); + return source_id; +} +// only used for sources with OUTPUT semantic ( locations and scale) +std::string AnimationExporter::create_xyz_source(float *v, int tot, const std::string& anim_id) +{ + COLLADASW::InputSemantic::Semantics semantic = COLLADASW::InputSemantic::OUTPUT; + std::string source_id = anim_id + get_semantic_suffix(semantic); - *has_tangents = false; + COLLADASW::FloatSourceF source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(3); - for (unsigned int i = 0; i < fcu->totvert; i++) { - if (fcu->bezt[i].ipo==BEZT_IPO_BEZ) { - source.appendValues(BEZIER_NAME); - *has_tangents = true; - } else if (fcu->bezt[i].ipo==BEZT_IPO_CONST) { - source.appendValues(STEP_NAME); - } else { // BEZT_IPO_LIN - source.appendValues(LINEAR_NAME); - } - } - // unsupported? -- HERMITE, CARDINAL, BSPLINE, NURBS + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + add_source_parameters(param, semantic, false, NULL, false); - source.finish(); + source.prepareToAppendValues(); - return source_id; + for (int i = 0; i < tot; i++) { + source.appendValues(*v, *(v + 1), *(v + 2)); + v += 3; } - std::string AnimationExporter::fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) - { - std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + source.finish(); + + return source_id; +} + +std::string AnimationExporter::create_interpolation_source(FCurve *fcu, const std::string& anim_id, const char *axis_name, bool *has_tangents) +{ + std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + + COLLADASW::NameSource source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(fcu->totvert); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + param.push_back("INTERPOLATION"); - COLLADASW::NameSource source(mSW); - source.setId(source_id); - source.setArrayId(source_id + ARRAY_ID_SUFFIX); - source.setAccessorCount(tot); - source.setAccessorStride(1); - - COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); - param.push_back("INTERPOLATION"); + source.prepareToAppendValues(); - source.prepareToAppendValues(); + *has_tangents = false; - for (int i = 0; i < tot; i++) { + for (unsigned int i = 0; i < fcu->totvert; i++) { + if (fcu->bezt[i].ipo==BEZT_IPO_BEZ) { + source.appendValues(BEZIER_NAME); + *has_tangents = true; + } else if (fcu->bezt[i].ipo==BEZT_IPO_CONST) { + source.appendValues(STEP_NAME); + } else { // BEZT_IPO_LIN source.appendValues(LINEAR_NAME); } + } + // unsupported? -- HERMITE, CARDINAL, BSPLINE, NURBS + + source.finish(); + + return source_id; +} + +std::string AnimationExporter::fake_interpolation_source(int tot, const std::string& anim_id, const char *axis_name) +{ + std::string source_id = anim_id + get_semantic_suffix(COLLADASW::InputSemantic::INTERPOLATION); + + COLLADASW::NameSource source(mSW); + source.setId(source_id); + source.setArrayId(source_id + ARRAY_ID_SUFFIX); + source.setAccessorCount(tot); + source.setAccessorStride(1); + + COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList(); + param.push_back("INTERPOLATION"); - source.finish(); + source.prepareToAppendValues(); - return source_id; + for (int i = 0; i < tot; i++) { + source.appendValues(LINEAR_NAME); } - std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) - { - std::string tm_name; - // when given rna_path, determine tm_type from it - if (rna_path) { - char *name = extract_transform_name(rna_path); - - if (!strcmp(name, "color")) - tm_type = 1; - else if (!strcmp(name, "spot_size")) - tm_type = 2; - else if (!strcmp(name, "spot_blend")) - tm_type = 3; - else if (!strcmp(name, "distance")) - tm_type = 4; - else - tm_type = -1; - } + source.finish(); - switch (tm_type) { + return source_id; +} + +std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) +{ + std::string tm_name; + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (!strcmp(name, "color")) + tm_type = 1; + else if (!strcmp(name, "spot_size")) + tm_type = 2; + else if (!strcmp(name, "spot_blend")) + tm_type = 3; + else if (!strcmp(name, "distance")) + tm_type = 4; + else + tm_type = -1; + } + + switch (tm_type) { case 1: tm_name = "color"; break; @@ -906,43 +906,43 @@ void AnimationExporter::operator() (Object *ob) case 4: tm_name = "blender/blender_dist"; break; - + default: tm_name = ""; break; - } - - if (tm_name.size()) { - if (axis_name != "") - return tm_name + "." + std::string(axis_name); - else - return tm_name; - } + } - return std::string(""); + if (tm_name.size()) { + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; } - - std::string AnimationExporter::get_camera_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) - { - std::string tm_name; - // when given rna_path, determine tm_type from it - if (rna_path) { - char *name = extract_transform_name(rna_path); - - if (!strcmp(name, "lens")) - tm_type = 0; - else if (!strcmp(name, "ortho_scale")) - tm_type = 1; - else if (!strcmp(name, "clip_end")) - tm_type = 2; - else if (!strcmp(name, "clip_start")) - tm_type = 3; - - else - tm_type = -1; - } - switch (tm_type) { + return std::string(""); +} + +std::string AnimationExporter::get_camera_param_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) +{ + std::string tm_name; + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (!strcmp(name, "lens")) + tm_type = 0; + else if (!strcmp(name, "ortho_scale")) + tm_type = 1; + else if (!strcmp(name, "clip_end")) + tm_type = 2; + else if (!strcmp(name, "clip_start")) + tm_type = 3; + + else + tm_type = -1; + } + + switch (tm_type) { case 0: tm_name = "xfov"; break; @@ -955,56 +955,56 @@ void AnimationExporter::operator() (Object *ob) case 3: tm_name = "znear"; break; - + default: tm_name = ""; break; - } - - if (tm_name.size()) { - if (axis_name != "") - return tm_name + "." + std::string(axis_name); - else - return tm_name; - } + } - return std::string(""); + if (tm_name.size()) { + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; } - // Assign sid of the animated parameter or transform - // for rotation, axis name is always appended and the value of append_axis is ignored - std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) - { - std::string tm_name; - bool is_rotation =false; - // when given rna_path, determine tm_type from it - if (rna_path) { - char *name = extract_transform_name(rna_path); - - if (!strcmp(name, "rotation_euler")) - tm_type = 0; - else if (!strcmp(name, "rotation_quaternion")) - tm_type = 1; - else if (!strcmp(name, "scale")) - tm_type = 2; - else if (!strcmp(name, "location")) - tm_type = 3; - else if (!strcmp(name, "specular_hardness")) - tm_type = 4; - else if (!strcmp(name, "specular_color")) - tm_type = 5; - else if (!strcmp(name, "diffuse_color")) - tm_type = 6; - else if (!strcmp(name, "alpha")) - tm_type = 7; - else if (!strcmp(name, "ior")) - tm_type = 8; - - else - tm_type = -1; - } + return std::string(""); +} + +// Assign sid of the animated parameter or transform +// for rotation, axis name is always appended and the value of append_axis is ignored +std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, const char *axis_name, bool append_axis) +{ + std::string tm_name; + bool is_rotation =false; + // when given rna_path, determine tm_type from it + if (rna_path) { + char *name = extract_transform_name(rna_path); + + if (!strcmp(name, "rotation_euler")) + tm_type = 0; + else if (!strcmp(name, "rotation_quaternion")) + tm_type = 1; + else if (!strcmp(name, "scale")) + tm_type = 2; + else if (!strcmp(name, "location")) + tm_type = 3; + else if (!strcmp(name, "specular_hardness")) + tm_type = 4; + else if (!strcmp(name, "specular_color")) + tm_type = 5; + else if (!strcmp(name, "diffuse_color")) + tm_type = 6; + else if (!strcmp(name, "alpha")) + tm_type = 7; + else if (!strcmp(name, "ior")) + tm_type = 8; - switch (tm_type) { + else + tm_type = -1; + } + + switch (tm_type) { case 0: case 1: tm_name = "rotation"; @@ -1031,173 +1031,173 @@ void AnimationExporter::operator() (Object *ob) case 8: tm_name = "index_of_refraction"; break; - + default: tm_name = ""; break; - } - - if (tm_name.size()) { - if (is_rotation) - return tm_name + std::string(axis_name) + ".ANGLE"; - else - if (axis_name != "") - return tm_name + "." + std::string(axis_name); - else - return tm_name; - } - - return std::string(""); } - char* AnimationExporter::extract_transform_name(char *rna_path) - { - char *dot = strrchr(rna_path, '.'); - return dot ? (dot + 1) : rna_path; + if (tm_name.size()) { + if (is_rotation) + return tm_name + std::string(axis_name) + ".ANGLE"; + else + if (axis_name != "") + return tm_name + "." + std::string(axis_name); + else + return tm_name; } - //find keyframes of all the objects animations - void AnimationExporter::find_frames(Object *ob, std::vector &fra) - { - FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + return std::string(""); +} - for (; fcu; fcu = fcu->next) { - - for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; // - if (std::find(fra.begin(), fra.end(), f) == fra.end()) - fra.push_back(f); - } - } +char* AnimationExporter::extract_transform_name(char *rna_path) +{ + char *dot = strrchr(rna_path, '.'); + return dot ? (dot + 1) : rna_path; +} - // keep the keys in ascending order - std::sort(fra.begin(), fra.end()); - } +//find keyframes of all the objects animations +void AnimationExporter::find_frames(Object *ob, std::vector &fra) +{ + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; - + for (; fcu; fcu = fcu->next) { - // enable fcurves driving a specific bone, disable all the rest - // if bone_name = NULL enable all fcurves - void AnimationExporter::enable_fcurves(bAction *act, char *bone_name) - { - FCurve *fcu; - char prefix[200]; - - if (bone_name) - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone_name); - - for (fcu = (FCurve*)act->curves.first; fcu; fcu = fcu->next) { - if (bone_name) { - if (!strncmp(fcu->rna_path, prefix, strlen(prefix))) - fcu->flag &= ~FCURVE_DISABLED; - else - fcu->flag |= FCURVE_DISABLED; - } - else { - fcu->flag &= ~FCURVE_DISABLED; - } + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; + if (std::find(fra.begin(), fra.end(), f) == fra.end()) + fra.push_back(f); } } - - bool AnimationExporter::hasAnimations(Scene *sce) - { - Base *base= (Base*) sce->base.first; - - while(base) { - Object *ob = base->object; - - FCurve *fcu = 0; - //Check for object transform animations - if(ob->adt && ob->adt->action) - fcu = (FCurve*)ob->adt->action->curves.first; - //Check for Lamp parameter animations - else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) - fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); - //Check for Camera parameter animations - else if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) - fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); - - //Check Material Effect parameter animations. - for(int a = 0; a < ob->totcol; a++) - { - Material *ma = give_current_material(ob, a+1); - if (!ma) continue; - if(ma->adt && ma->adt->action) - { - fcu = (FCurve*)ma->adt->action->curves.first; - } - } - if ( fcu) - return true; - base= base->next; + // keep the keys in ascending order + std::sort(fra.begin(), fra.end()); +} + + + +// enable fcurves driving a specific bone, disable all the rest +// if bone_name = NULL enable all fcurves +void AnimationExporter::enable_fcurves(bAction *act, char *bone_name) +{ + FCurve *fcu; + char prefix[200]; + + if (bone_name) + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone_name); + + for (fcu = (FCurve*)act->curves.first; fcu; fcu = fcu->next) { + if (bone_name) { + if (!strncmp(fcu->rna_path, prefix, strlen(prefix))) + fcu->flag &= ~FCURVE_DISABLED; + else + fcu->flag |= FCURVE_DISABLED; + } + else { + fcu->flag &= ~FCURVE_DISABLED; } - return false; } +} - //------------------------------- Not used in the new system.-------------------------------------------------------- - void AnimationExporter::find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) - { - if (rotmode > 0) - find_frames(ob, fra, prefix, "rotation_euler"); - else if (rotmode == ROT_MODE_QUAT) - find_frames(ob, fra, prefix, "rotation_quaternion"); - /*else if (rotmode == ROT_MODE_AXISANGLE) - ;*/ - } +bool AnimationExporter::hasAnimations(Scene *sce) +{ + Base *base= (Base*) sce->base.first; - void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) - { - FCurve *fcu= (FCurve*)ob->adt->action->curves.first; - - for (; fcu; fcu = fcu->next) { - if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) - continue; - - char *name = extract_transform_name(fcu->rna_path); - if (!strcmp(name, tm_name)) { - for (unsigned int i = 0; i < fcu->totvert; i++) { - float f = fcu->bezt[i].vec[1][0]; // - if (std::find(fra.begin(), fra.end(), f) == fra.end()) - fra.push_back(f); - } + while(base) { + Object *ob = base->object; + + FCurve *fcu = 0; + //Check for object transform animations + if(ob->adt && ob->adt->action) + fcu = (FCurve*)ob->adt->action->curves.first; + //Check for Lamp parameter animations + else if( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) + fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); + //Check for Camera parameter animations + else if( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) + fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); + + //Check Material Effect parameter animations. + for(int a = 0; a < ob->totcol; a++) + { + Material *ma = give_current_material(ob, a+1); + if (!ma) continue; + if(ma->adt && ma->adt->action) + { + fcu = (FCurve*)ma->adt->action->curves.first; } } - // keep the keys in ascending order - std::sort(fra.begin(), fra.end()); + if ( fcu) + return true; + base= base->next; } + return false; +} - void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) - { - if (!ob_arm->adt) - return; - - //write bone animations for 3 transform types - //i=0 --> rotations - //i=1 --> scale - //i=2 --> location - for (int i = 0; i < 3; i++) - sample_and_write_bone_animation(ob_arm, bone, i); - - for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) - write_bone_animation(ob_arm, child); +//------------------------------- Not used in the new system.-------------------------------------------------------- +void AnimationExporter::find_rotation_frames(Object *ob, std::vector &fra, const char *prefix, int rotmode) +{ + if (rotmode > 0) + find_frames(ob, fra, prefix, "rotation_euler"); + else if (rotmode == ROT_MODE_QUAT) + find_frames(ob, fra, prefix, "rotation_quaternion"); + /*else if (rotmode == ROT_MODE_AXISANGLE) + ;*/ +} + +void AnimationExporter::find_frames(Object *ob, std::vector &fra, const char *prefix, const char *tm_name) +{ + FCurve *fcu= (FCurve*)ob->adt->action->curves.first; + + for (; fcu; fcu = fcu->next) { + if (prefix && strncmp(prefix, fcu->rna_path, strlen(prefix))) + continue; + + char *name = extract_transform_name(fcu->rna_path); + if (!strcmp(name, tm_name)) { + for (unsigned int i = 0; i < fcu->totvert; i++) { + float f = fcu->bezt[i].vec[1][0]; + if (std::find(fra.begin(), fra.end(), f) == fra.end()) + fra.push_back(f); + } + } } - void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) - { - bArmature *arm = (bArmature*)ob_arm->data; - int flag = arm->flag; - std::vector fra; - char prefix[256]; + // keep the keys in ascending order + std::sort(fra.begin(), fra.end()); +} - BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); +void AnimationExporter::write_bone_animation(Object *ob_arm, Bone *bone) +{ + if (!ob_arm->adt) + return; + + //write bone animations for 3 transform types + //i=0 --> rotations + //i=1 --> scale + //i=2 --> location + for (int i = 0; i < 3; i++) + sample_and_write_bone_animation(ob_arm, bone, i); + + for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) + write_bone_animation(ob_arm, child); +} - bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); - if (!pchan) - return; - //Fill frame array with key frame values framed at @param:transform_type - switch (transform_type) { +void AnimationExporter::sample_and_write_bone_animation(Object *ob_arm, Bone *bone, int transform_type) +{ + bArmature *arm = (bArmature*)ob_arm->data; + int flag = arm->flag; + std::vector fra; + char prefix[256]; + + BLI_snprintf(prefix, sizeof(prefix), "pose.bones[\"%s\"]", bone->name); + + bPoseChannel *pchan = get_pose_channel(ob_arm->pose, bone->name); + if (!pchan) + return; + //Fill frame array with key frame values framed at @param:transform_type + switch (transform_type) { case 0: find_rotation_frames(ob_arm, fra, prefix, pchan->rotmode); break; @@ -1209,77 +1209,77 @@ void AnimationExporter::operator() (Object *ob) break; default: return; - } + } - // exit rest position - if (flag & ARM_RESTPOS) { - arm->flag &= ~ARM_RESTPOS; - where_is_pose(scene, ob_arm); - } - //v array will hold all values which will be exported. - if (fra.size()) { - float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); - sample_animation(values, fra, transform_type, bone, ob_arm, pchan); - - if (transform_type == 0) { - // write x, y, z curves separately if it is rotation - float *axisValues = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); - - for (int i = 0; i < 3; i++) { - for (unsigned int j = 0; j < fra.size(); j++) - axisValues[j] = values[j * 3 + i]; - - dae_bone_animation(fra, axisValues, transform_type, i, id_name(ob_arm), bone->name); - } - MEM_freeN(axisValues); - } - else { - // write xyz at once if it is location or scale - dae_bone_animation(fra, values, transform_type, -1, id_name(ob_arm), bone->name); - } + // exit rest position + if (flag & ARM_RESTPOS) { + arm->flag &= ~ARM_RESTPOS; + where_is_pose(scene, ob_arm); + } + //v array will hold all values which will be exported. + if (fra.size()) { + float *values = (float*)MEM_callocN(sizeof(float) * 3 * fra.size(), "temp. anim frames"); + sample_animation(values, fra, transform_type, bone, ob_arm, pchan); - MEM_freeN(values); + if (transform_type == 0) { + // write x, y, z curves separately if it is rotation + float *axisValues = (float*)MEM_callocN(sizeof(float) * fra.size(), "temp. anim frames"); + + for (int i = 0; i < 3; i++) { + for (unsigned int j = 0; j < fra.size(); j++) + axisValues[j] = values[j * 3 + i]; + + dae_bone_animation(fra, axisValues, transform_type, i, id_name(ob_arm), bone->name); + } + MEM_freeN(axisValues); + } + else { + // write xyz at once if it is location or scale + dae_bone_animation(fra, values, transform_type, -1, id_name(ob_arm), bone->name); } - // restore restpos - if (flag & ARM_RESTPOS) - arm->flag = flag; - where_is_pose(scene, ob_arm); + MEM_freeN(values); } - void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) - { - bPoseChannel *parchan = NULL; - bPose *pose = ob_arm->pose; + // restore restpos + if (flag & ARM_RESTPOS) + arm->flag = flag; + where_is_pose(scene, ob_arm); +} - pchan = get_pose_channel(pose, bone->name); +void AnimationExporter::sample_animation(float *v, std::vector &frames, int type, Bone *bone, Object *ob_arm, bPoseChannel *pchan) +{ + bPoseChannel *parchan = NULL; + bPose *pose = ob_arm->pose; - if (!pchan) - return; + pchan = get_pose_channel(pose, bone->name); - parchan = pchan->parent; + if (!pchan) + return; - enable_fcurves(ob_arm->adt->action, bone->name); + parchan = pchan->parent; - std::vector::iterator it; - for (it = frames.begin(); it != frames.end(); it++) { - float mat[4][4], ipar[4][4]; + enable_fcurves(ob_arm->adt->action, bone->name); - float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); + std::vector::iterator it; + for (it = frames.begin(); it != frames.end(); it++) { + float mat[4][4], ipar[4][4]; + float ctime = bsystem_time(scene, ob_arm, *it, 0.0f); - BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); - where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); - // compute bone local mat - if (bone->parent) { - invert_m4_m4(ipar, parchan->pose_mat); - mul_m4_m4m4(mat, pchan->pose_mat, ipar); - } - else - copy_m4_m4(mat, pchan->pose_mat); + BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM); + where_is_pose_bone(scene, ob_arm, pchan, ctime, 1); + + // compute bone local mat + if (bone->parent) { + invert_m4_m4(ipar, parchan->pose_mat); + mul_m4_m4m4(mat, pchan->pose_mat, ipar); + } + else + copy_m4_m4(mat, pchan->pose_mat); - switch (type) { + switch (type) { case 0: mat4_to_eul(v, mat); break; @@ -1289,12 +1289,10 @@ void AnimationExporter::operator() (Object *ob) case 2: copy_v3_v3(v, mat[3]); break; - } - - v += 3; } - enable_fcurves(ob_arm->adt->action, NULL); + v += 3; } - + enable_fcurves(ob_arm->adt->action, NULL); +} diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 4a3cd5eeb06..db32664f736 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -89,17 +89,17 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) { COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - + if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER || curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_STEP ) { - COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); - COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); + COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); } float fps = (float)FPS; size_t dim = curve->getOutDimension(); unsigned int i; - + std::vector& fcurves = curve_map[curve->getUniqueId()]; switch (dim) { @@ -110,18 +110,18 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) { for (i = 0; i < dim; i++ ) { FCurve *fcu = (FCurve*)MEM_callocN(sizeof(FCurve), "FCurve"); - + fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); // fcu->rna_path = BLI_strdupn(path, strlen(path)); fcu->array_index = 0; fcu->totvert = curve->getKeyCount(); - + // create beztriple for each key for (unsigned int j = 0; j < curve->getKeyCount(); j++) { BezTriple bez; memset(&bez, 0, sizeof(BezTriple)); - + // input, output bez.vec[1][0] = bc_get_float_value(input, j) * fps; bez.vec[1][1] = bc_get_float_value(output, j * dim + i); @@ -131,20 +131,20 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_STEP) { COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); - COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); // intangent - bez.vec[0][0] = bc_get_float_value(intan, (j * 2 * dim ) + (2 * i)) * fps; - bez.vec[0][1] = bc_get_float_value(intan, (j * 2 * dim )+ (2 * i) + 1); + bez.vec[0][0] = bc_get_float_value(intan, (j * 2 * dim ) + (2 * i)) * fps; + bez.vec[0][1] = bc_get_float_value(intan, (j * 2 * dim )+ (2 * i) + 1); - // outtangent - bez.vec[2][0] = bc_get_float_value(outtan, (j * 2 * dim ) + (2 * i)) * fps; - bez.vec[2][1] = bc_get_float_value(outtan, (j * 2 * dim )+ (2 * i) + 1); - if(curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER) + // outtangent + bez.vec[2][0] = bc_get_float_value(outtan, (j * 2 * dim ) + (2 * i)) * fps; + bez.vec[2][1] = bc_get_float_value(outtan, (j * 2 * dim )+ (2 * i) + 1); + if(curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER) bez.ipo = BEZT_IPO_BEZ; - else - bez.ipo = BEZT_IPO_CONST; - //bez.h1 = bez.h2 = HD_AUTO; + else + bez.ipo = BEZT_IPO_CONST; + //bez.h1 = bez.h2 = HD_AUTO; } else { @@ -153,7 +153,7 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) } // bez.ipo = U.ipo_new; /* use default interpolation mode here... */ bez.f1 = bez.f2 = bez.f3 = SELECT; - + insert_bezt_fcurve(fcu, &bez, 0); } @@ -306,9 +306,9 @@ bool AnimationImporter::write_animation(const COLLADAFW::Animation* anim) bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* animlist) { const COLLADAFW::UniqueId& animlist_id = animlist->getUniqueId(); - + animlist_map[animlist_id] = animlist; - + #if 0 // should not happen @@ -317,10 +317,10 @@ bool AnimationImporter::write_animation_list(const COLLADAFW::AnimationList* ani } // for bones rna_path is like: pose.bones["bone-name"].rotation - + #endif - + return true; } @@ -433,7 +433,7 @@ virtual void AnimationImporter::change_eul_to_quat(Object *ob, bAction *act) //sets the rna_path and array index to curve void AnimationImporter::modify_fcurve(std::vector* curves , char* rna_path , int array_index ) -{ +{ std::vector::iterator it; int i; for (it = curves->begin(), i = 0; it != curves->end(); it++, i++) { @@ -450,18 +450,18 @@ void AnimationImporter::modify_fcurve(std::vector* curves , char* rna_p void AnimationImporter::find_frames( std::vector* frames , std::vector* curves) { std::vector::iterator iter; - for (iter = curves->begin(); iter != curves->end(); iter++) { - FCurve *fcu = *iter; - - for (unsigned int k = 0; k < fcu->totvert; k++) { - //get frame value from bezTriple - float fra = fcu->bezt[k].vec[1][0]; - //if frame already not added add frame to frames - if (std::find(frames->begin(), frames->end(), fra) == frames->end()) - frames->push_back(fra); - - } + for (iter = curves->begin(); iter != curves->end(); iter++) { + FCurve *fcu = *iter; + + for (unsigned int k = 0; k < fcu->totvert; k++) { + //get frame value from bezTriple + float fra = fcu->bezt[k].vec[1][0]; + //if frame already not added add frame to frames + if (std::find(frames->begin(), frames->end(), fra) == frames->end()) + frames->push_back(fra); + } + } } //creates the rna_paths and array indices of fcurves from animations using transformation and bound animation class of each animation. @@ -472,18 +472,18 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * COLLADAFW::Transformation::TransformationType tm_type = transform->getTransformationType(); bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; - + //to check if the no of curves are valid bool xyz = ((tm_type == COLLADAFW::Transformation::TRANSLATE ||tm_type == COLLADAFW::Transformation::SCALE) && binding->animationClass == COLLADAFW::AnimationList::POSITION_XYZ); - - + + if (!((!xyz && curves->size() == 1) || (xyz && curves->size() == 3) || is_matrix)) { fprintf(stderr, "expected %d curves, got %d\n", xyz ? 3 : 1, (int)curves->size()); return; } - + char rna_path[100]; - + switch (tm_type) { case COLLADAFW::Transformation::TRANSLATE: case COLLADAFW::Transformation::SCALE: @@ -495,80 +495,80 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * BLI_strncpy(rna_path, loc ? "location" : "scale", sizeof(rna_path)); switch (binding->animationClass) { - case COLLADAFW::AnimationList::POSITION_X: - modify_fcurve(curves, rna_path, 0 ); - break; - case COLLADAFW::AnimationList::POSITION_Y: - modify_fcurve(curves, rna_path, 1 ); - break; - case COLLADAFW::AnimationList::POSITION_Z: - modify_fcurve(curves, rna_path, 2 ); - break; - case COLLADAFW::AnimationList::POSITION_XYZ: - modify_fcurve(curves, rna_path, -1 ); - break; - default: - fprintf(stderr, "AnimationClass %d is not supported for %s.\n", - binding->animationClass, loc ? "TRANSLATE" : "SCALE"); - } - break; + case COLLADAFW::AnimationList::POSITION_X: + modify_fcurve(curves, rna_path, 0 ); + break; + case COLLADAFW::AnimationList::POSITION_Y: + modify_fcurve(curves, rna_path, 1 ); + break; + case COLLADAFW::AnimationList::POSITION_Z: + modify_fcurve(curves, rna_path, 2 ); + break; + case COLLADAFW::AnimationList::POSITION_XYZ: + modify_fcurve(curves, rna_path, -1 ); + break; + default: + fprintf(stderr, "AnimationClass %d is not supported for %s.\n", + binding->animationClass, loc ? "TRANSLATE" : "SCALE"); + } + break; } - - + + case COLLADAFW::Transformation::ROTATE: { if (is_joint) BLI_snprintf(rna_path, sizeof(rna_path), "%s.rotation_euler", joint_path); else BLI_strncpy(rna_path, "rotation_euler", sizeof(rna_path)); - std::vector::iterator iter; + std::vector::iterator iter; for (iter = curves->begin(); iter != curves->end(); iter++) { FCurve* fcu = *iter; - + //if transform is rotation the fcurves values must be turned in to radian. if (is_rotation) fcurve_deg_to_rad(fcu); } COLLADAFW::Rotate* rot = (COLLADAFW::Rotate*)transform; COLLADABU::Math::Vector3& axis = rot->getRotationAxis(); - + switch (binding->animationClass) { - case COLLADAFW::AnimationList::ANGLE: - if (COLLADABU::Math::Vector3::UNIT_X == axis) { - modify_fcurve(curves, rna_path, 0 ); - } - else if (COLLADABU::Math::Vector3::UNIT_Y == axis) { - modify_fcurve(curves, rna_path, 1 ); - } - else if (COLLADABU::Math::Vector3::UNIT_Z == axis) { - modify_fcurve(curves, rna_path, 2 ); - } - break; - case COLLADAFW::AnimationList::AXISANGLE: - // TODO convert axis-angle to quat? or XYZ? - default: - fprintf(stderr, "AnimationClass %d is not supported for ROTATE transformation.\n", - binding->animationClass); - } + case COLLADAFW::AnimationList::ANGLE: + if (COLLADABU::Math::Vector3::UNIT_X == axis) { + modify_fcurve(curves, rna_path, 0 ); + } + else if (COLLADABU::Math::Vector3::UNIT_Y == axis) { + modify_fcurve(curves, rna_path, 1 ); + } + else if (COLLADABU::Math::Vector3::UNIT_Z == axis) { + modify_fcurve(curves, rna_path, 2 ); + } break; + case COLLADAFW::AnimationList::AXISANGLE: + // TODO convert axis-angle to quat? or XYZ? + default: + fprintf(stderr, "AnimationClass %d is not supported for ROTATE transformation.\n", + binding->animationClass); + } + break; } - + case COLLADAFW::Transformation::MATRIX: /*{ - COLLADAFW::Matrix* mat = (COLLADAFW::Matrix*)transform; - COLLADABU::Math::Matrix4 mat4 = mat->getMatrix(); - switch (binding->animationClass) { - case COLLADAFW::AnimationList::TRANSFORM: - - } + COLLADAFW::Matrix* mat = (COLLADAFW::Matrix*)transform; + COLLADABU::Math::Matrix4 mat4 = mat->getMatrix(); + switch (binding->animationClass) { + case COLLADAFW::AnimationList::TRANSFORM: + + } }*/ break; case COLLADAFW::Transformation::SKEW: case COLLADAFW::Transformation::LOOKAT: fprintf(stderr, "Animation of SKEW and LOOKAT transformations is not supported yet.\n"); break; - } - + } + } //creates the rna_paths and array indices of fcurves from animations using color and bound animation class of each animation. @@ -576,15 +576,15 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list { char rna_path[100]; BLI_strncpy(rna_path,anim_type, sizeof(rna_path)); - + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - //all the curves belonging to the current binding - std::vector animcurves; + //all the curves belonging to the current binding + std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - - switch (bindings[j].animationClass) { + animcurves = curve_map[bindings[j].animation]; + + switch (bindings[j].animationClass) { case COLLADAFW::AnimationList::COLOR_R: modify_fcurve(&animcurves, rna_path, 0 ); break; @@ -598,13 +598,13 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list case COLLADAFW::AnimationList::COLOR_RGBA: // to do-> set intensity modify_fcurve(&animcurves, rna_path, -1 ); break; - + default: fprintf(stderr, "AnimationClass %d is not supported for %s.\n", - bindings[j].animationClass, "COLOR" ); + bindings[j].animationClass, "COLOR" ); } - std::vector::iterator iter; + std::vector::iterator iter; //Add the curves of the current animation to the object for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { FCurve * fcu = *iter; @@ -612,7 +612,7 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list } } - + } void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type) @@ -625,7 +625,7 @@ void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& list const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); //all the curves belonging to the current binding - std::vector animcurves; + std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { animcurves = curve_map[bindings[j].animation]; @@ -671,28 +671,28 @@ void AnimationImporter::apply_matrix_curves( Object * ob, std::vector& copy_m4_m4(rest, bone->arm_mat); invert_m4_m4(irest, rest); } - // new curves to assign matrix transform animation + // new curves to assign matrix transform animation FCurve *newcu[10]; // if tm_type is matrix, then create 10 curves: 4 rot, 3 loc, 3 scale unsigned int totcu = 10 ; - const char *tm_str = NULL; + const char *tm_str = NULL; char rna_path[200]; for (int i = 0; i < totcu; i++) { int axis = i; - if (i < 4) { - tm_str = "rotation_quaternion"; - axis = i; - } - else if (i < 7) { - tm_str = "location"; - axis = i - 4; - } - else { - tm_str = "scale"; - axis = i - 7; - } - + if (i < 4) { + tm_str = "rotation_quaternion"; + axis = i; + } + else if (i < 7) { + tm_str = "location"; + axis = i - 4; + } + else { + tm_str = "scale"; + axis = i - 7; + } + if (is_joint) BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, tm_str); @@ -702,11 +702,11 @@ void AnimationImporter::apply_matrix_curves( Object * ob, std::vector& newcu[i]->totvert = frames.size(); } - if (frames.size() == 0) + if (frames.size() == 0) return; -std::sort(frames.begin(), frames.end()); - + std::sort(frames.begin(), frames.end()); + std::vector::iterator it; // sample values at each frame @@ -717,7 +717,7 @@ std::sort(frames.begin(), frames.end()); float matfra[4][4]; unit_m4(matfra); - + // calc object-space mat evaluate_transform_at_frame(matfra, node, fra); @@ -743,23 +743,23 @@ std::sort(frames.begin(), frames.end()); } float rot[4], loc[3], scale[3]; - - mat4_to_quat(rot, mat); - /*for ( int i = 0 ; i < 4 ; i ++ ) - { - rot[i] = rot[i] * (180 / M_PI); - }*/ - copy_v3_v3(loc, mat[3]); - mat4_to_size(scale, mat); - + + mat4_to_quat(rot, mat); + /*for ( int i = 0 ; i < 4 ; i ++ ) + { + rot[i] = rot[i] * (180 / M_PI); + }*/ + copy_v3_v3(loc, mat[3]); + mat4_to_size(scale, mat); + // add keys for (int i = 0; i < totcu; i++) { - if (i < 4) - add_bezt(newcu[i], fra, rot[i]); - else if (i < 7) - add_bezt(newcu[i], fra, loc[i - 4]); - else - add_bezt(newcu[i], fra, scale[i - 7]); + if (i < 4) + add_bezt(newcu[i], fra, rot[i]); + else if (i < 7) + add_bezt(newcu[i], fra, loc[i - 4]); + else + add_bezt(newcu[i], fra, scale[i - 7]); } } verify_adt_action((ID*)&ob->id, 1); @@ -774,13 +774,13 @@ std::sort(frames.begin(), frames.end()); BLI_addtail(curves, newcu[i]); } - if (is_joint) { - bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); - chan->rotmode = ROT_MODE_QUAT; - } - else { - ob->rotmode = ROT_MODE_QUAT; - } + if (is_joint) { + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_QUAT; + } + else { + ob->rotmode = ROT_MODE_QUAT; + } return; @@ -804,24 +804,24 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , bAction * act; bActionGroup *grp = NULL; - + if ( (animType->transform) != 0 ) { - const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; - char joint_path[200]; + const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + char joint_path[200]; if ( is_joint ) - armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); - - + armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + + if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); else act = ob->adt->action; - - //Get the list of animation curves of the object - ListBase *AnimCurves = &(act->curves); + + //Get the list of animation curves of the object + ListBase *AnimCurves = &(act->curves); const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); - + //for each transformation in node for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { COLLADAFW::Transformation *transform = nodeTransforms[i]; @@ -829,10 +829,10 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; bool is_matrix = tm_type == COLLADAFW::Transformation::MATRIX; - + const COLLADAFW::UniqueId& listid = transform->getAnimationList(); - - //check if transformation has animations + + //check if transformation has animations if (animlist_map.find(listid) == animlist_map.end()) continue ; else { @@ -840,25 +840,25 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); //all the curves belonging to the current binding - std::vector animcurves; + std::vector animcurves; for (unsigned int j = 0; j < bindings.getCount(); j++) { - animcurves = curve_map[bindings[j].animation]; - if ( is_matrix ) - apply_matrix_curves(ob, animcurves, root , node, transform ); - else { + animcurves = curve_map[bindings[j].animation]; + if ( is_matrix ) + apply_matrix_curves(ob, animcurves, root , node, transform ); + else { //calculate rnapaths and array index of fcurves according to transformation and animation class - Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); - - std::vector::iterator iter; - //Add the curves of the current animation to the object - for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { - FCurve * fcu = *iter; - if ((ob->type == OB_ARMATURE)) - add_bone_fcurve( ob, node , fcu ); - else - BLI_addtail(AnimCurves, fcu); - } + Assign_transform_animations(transform, &bindings[j], &animcurves, is_joint, joint_path ); + + std::vector::iterator iter; + //Add the curves of the current animation to the object + for (iter = animcurves.begin(); iter != animcurves.end(); iter++) { + FCurve * fcu = *iter; + if ((ob->type == OB_ARMATURE)) + add_bone_fcurve( ob, node , fcu ); + else + BLI_addtail(AnimCurves, fcu); } + } } } if (is_rotation) { @@ -880,7 +880,7 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , Lamp * lamp = (Lamp*) ob->data; if (!lamp->adt || !lamp->adt->action) act = verify_adt_action((ID*)&lamp->id, 1); - else act = lamp->adt->action; + else act = lamp->adt->action; ListBase *AnimCurves = &(act->curves); const COLLADAFW::InstanceLightPointerArray& nodeLights = node->getInstanceLights(); @@ -892,23 +892,23 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , { const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); - + Assign_color_animations(listid, AnimCurves, "color"); } if ((animType->light & LIGHT_FOA) != 0 ) { const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& listid = foa->getAnimationList(); - + Assign_float_animations( listid ,AnimCurves, "spot_size"); } if ( (animType->light & LIGHT_FOE) != 0 ) { const COLLADAFW::AnimatableFloat *foe = &(light->getFallOffExponent()); const COLLADAFW::UniqueId& listid = foe->getAnimationList(); - + Assign_float_animations( listid ,AnimCurves, "spot_blend"); - + } } } @@ -918,7 +918,7 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , Camera * camera = (Camera*) ob->data; if (!camera->adt || !camera->adt->action) act = verify_adt_action((ID*)&camera->id, 1); - else act = camera->adt->action; + else act = camera->adt->action; ListBase *AnimCurves = &(act->curves); const COLLADAFW::InstanceCameraPointerArray& nodeCameras= node->getInstanceCameras(); @@ -957,12 +957,12 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , } } if ( animType->material != 0){ - Material *ma = give_current_material(ob, 1); - if (!ma->adt || !ma->adt->action) act = verify_adt_action((ID*)&ma->id, 1); - else act = ma->adt->action; + Material *ma = give_current_material(ob, 1); + if (!ma->adt || !ma->adt->action) act = verify_adt_action((ID*)&ma->id, 1); + else act = ma->adt->action; ListBase *AnimCurves = &(act->curves); - + const COLLADAFW::InstanceGeometryPointerArray& nodeGeoms = node->getInstanceGeometries(); for (unsigned int i = 0; i < nodeGeoms.getCount(); i++) { const COLLADAFW::MaterialBindingArray& matBinds = nodeGeoms[i]->getMaterialBindings(); @@ -988,7 +988,7 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); Assign_color_animations( listid, AnimCurves , "specular_color" ); } - + if((animType->material & MATERIAL_DIFF_COLOR) != 0){ const COLLADAFW::ColorOrTexture *cot = &(efc->getDiffuse()); const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); @@ -1005,15 +1005,15 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD std::map FW_object_map) { AnimMix *types = new AnimMix(); - + const COLLADAFW::TransformationPointerArray& nodeTransforms = node->getTransformations(); - + //for each transformation in node for (unsigned int i = 0; i < nodeTransforms.getCount(); i++) { COLLADAFW::Transformation *transform = nodeTransforms[i]; const COLLADAFW::UniqueId& listid = transform->getAnimationList(); - - //check if transformation has animations + + //check if transformation has animations if (animlist_map.find(listid) == animlist_map.end()) continue ; else { @@ -1028,9 +1028,9 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD types->light = setAnimType(&(light->getColor()),(types->light), LIGHT_COLOR); types->light = setAnimType(&(light->getFallOffAngle()),(types->light), LIGHT_FOA); types->light = setAnimType(&(light->getFallOffExponent()),(types->light), LIGHT_FOE); - + if ( types->light != 0) break; - + } const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras(); @@ -1039,9 +1039,9 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) { - types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XFOV); + types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XFOV); } - else + else { types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XMAG); } @@ -1063,7 +1063,7 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); - // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); + // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); } } @@ -1101,7 +1101,7 @@ void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW:: const COLLADAFW::AnimationList *animlist = animlist_map[listid]; const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); - + if (bindings.getCount()) { //for each AnimationBinding get the fcurves which animate the transform for (unsigned int j = 0; j < bindings.getCount(); j++) { @@ -1113,7 +1113,7 @@ void AnimationImporter::find_frames_old(std::vector * frames, COLLADAFW:: for (iter = curves.begin(); iter != curves.end(); iter++) { FCurve *fcu = *iter; - + //if transform is rotation the fcurves values must be turned in to radian. if (is_rotation) fcurve_deg_to_rad(fcu); @@ -1448,9 +1448,9 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); if (type != COLLADAFW::Transformation::ROTATE && - type != COLLADAFW::Transformation::SCALE && - type != COLLADAFW::Transformation::TRANSLATE && - type != COLLADAFW::Transformation::MATRIX) { + type != COLLADAFW::Transformation::SCALE && + type != COLLADAFW::Transformation::TRANSLATE && + type != COLLADAFW::Transformation::MATRIX) { fprintf(stderr, "animation of transformation %d is not supported yet\n", type); return false; } @@ -1572,7 +1572,7 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float COLLADAFW::Matrix tm(matrix); dae_matrix_to_mat4(&tm, mat); - + std::vector::iterator it; return true; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 18303eb2f0b..ed9a2171c87 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -88,7 +88,7 @@ private: void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated); int typeFlag; - + enum lightAnim { // INANIMATE = 0, @@ -144,7 +144,7 @@ public: #if 0 virtual void change_eul_to_quat(Object *ob, bAction *act); #endif - + void translate_Animations( COLLADAFW::Node * Node , std::map& root_map, std::map& object_map , @@ -161,7 +161,7 @@ public: void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type); void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type); - + int setAnimType ( const COLLADAFW::Animatable * prop , int type, int addition); void modify_fcurve(std::vector* curves , char* rna_path , int array_index ); @@ -206,5 +206,5 @@ public: void extra_data_importer(std::string elementName); }; - - #endif + +#endif diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 92d06bb639f..de01c000373 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -188,7 +188,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) { add_bone_node(child, ob_arm); } - node.end(); + node.end(); //} } diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 2ec8ae540d2..27aee133557 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -87,7 +87,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p if ( it != finished_joints.end()) return; float mat[4][4]; - float obmat[4][4]; + float obmat[4][4]; // object-space get_node_mat(obmat, node, NULL, NULL); @@ -296,7 +296,7 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: et->setData("tip_z",&z); float vec[3] = {x,y,z}; copy_v3_v3(leaf.bone->tail, leaf.bone->head); - add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); + add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); }else leaf_bones.push_back(leaf); } diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index 4f4aed210f2..a197e612a87 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -115,7 +115,7 @@ private: void fix_leaf_bones(); - void set_pose ( Object * ob_arm , COLLADAFW::Node * root_node ,char * parentname, float parent_mat[][4]); + void set_pose ( Object * ob_arm , COLLADAFW::Node * root_node ,char * parentname, float parent_mat[][4]); #if 0 @@ -171,7 +171,7 @@ public: // gives a world-space mat bool get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint); - + void set_tags_map( TagsMap& tags_map); }; diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index 760fb2359a4..6032109b809 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -411,7 +411,7 @@ int MeshImporter::count_new_tris(COLLADAFW::Mesh *mesh, Mesh *me) } // TODO: import uv set names -void MeshImporter::read_faces(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris) //TODO:: Refactor. Possibly replace by iterators +void MeshImporter::read_faces(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris) //TODO:: Refactor. Possibly replace by iterators { unsigned int i; diff --git a/source/blender/collada/SkinInfo.cpp b/source/blender/collada/SkinInfo.cpp index ce0d561c524..1d890415ebe 100644 --- a/source/blender/collada/SkinInfo.cpp +++ b/source/blender/collada/SkinInfo.cpp @@ -266,9 +266,9 @@ void SkinInfo::link_armature(bContext *C, Object *ob, std::mapmat4_to_dae_double(dmat,local); + converter->mat4_to_dae_double(dmat,local); TransformBase::decompose(local, loc, rot, NULL, scale); if ( node.getType() == COLLADASW::Node::JOINT) -- cgit v1.2.3 From cbc812b757068c65effd90bdd4b08d7f4e25c342 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 4 Sep 2011 01:13:44 +0000 Subject: Fix [#28322] COLLADA imports messed up UVs Reported by Chad Gleason Imported index order could put mface->v4==0. We already know amount of verts, so use that instead. --- source/blender/collada/MeshImporter.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index 6032109b809..e9086f05628 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -220,8 +220,8 @@ void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, if (quad) uvs.getUV(indices[index + 3], mtface->uv[3]); -#ifdef COLLADA_DEBUG - /*if (quad) { +#if 1 // #ifdef COLLADA_DEBUG + if (quad) { fprintf(stderr, "face uv:\n" "((%d, %d, %d, %d))\n" "((%.1f, %.1f), (%.1f, %.1f), (%.1f, %.1f), (%.1f, %.1f))\n", @@ -248,7 +248,7 @@ void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, mtface->uv[0][0], mtface->uv[0][1], mtface->uv[1][0], mtface->uv[1][1], mtface->uv[2][0], mtface->uv[2][1]); - }*/ + } #endif } @@ -587,7 +587,7 @@ void MeshImporter::read_faces(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris) //T for (k = 0; k < index_list_array.getCount(); k++) { // get mtface by face index and uv set index MTFace *mtface = (MTFace*)CustomData_get_layer_n(&me->fdata, CD_MTFACE, k); - set_face_uv(&mtface[face_index], uvs, *index_list_array[k], index, mface->v4 != 0); + set_face_uv(&mtface[face_index], uvs, *index_list_array[k], index, vcount == 4); } #endif -- cgit v1.2.3 From caa1acb6b1d6b908e34be31c4b9bd026066b820f Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 4 Sep 2011 02:12:03 +0000 Subject: Prevent potential crasher, commonEffects could be empty. --- source/blender/collada/AnimationImporter.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index db32664f736..29c356ed8f0 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -1059,12 +1059,14 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD const COLLADAFW::UniqueId & matuid = matBinds[j].getReferencedMaterial(); const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) (FW_object_map[matuid]); const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); - COLLADAFW::EffectCommon *efc = commonEffects[0]; - types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); - types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); - types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); - // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); - types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); + if(!commonEffects.empty()) { + COLLADAFW::EffectCommon *efc = commonEffects[0]; + types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); + types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); + types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); + // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); + types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); + } } } return types; -- cgit v1.2.3 From 317908a330184799eecfe34ed47648d5323b43de Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 4 Sep 2011 11:13:41 +0000 Subject: Fix #28423: Screw-modifier crash in cunjunction with subsurf modifier Problems was caused by angle=2*pi and steps=2 in screw modifier. Such configuration produced duplicated geometry to close object and it was confusing for subsurf cache. Restrict steps=2 for screw modifier now, so now 3<=steps<=512. --- source/blender/makesrna/intern/rna_modifier.c | 2 +- source/blender/modifiers/intern/MOD_screw.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 37a629f46d0..22fdfcea29c 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2366,7 +2366,7 @@ static void rna_def_modifier_screw(BlenderRNA *brna) prop= RNA_def_property(srna, "steps", PROP_INT, PROP_UNSIGNED); RNA_def_property_range(prop, 2, 10000); - RNA_def_property_ui_range(prop, 2, 512, 1, 0); + RNA_def_property_ui_range(prop, 3, 512, 1, 0); RNA_def_property_ui_text(prop, "Steps", "Number of steps in the revolution"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index c5fdf465a0a..486c98f82a0 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -275,7 +275,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, if (fabsf(screw_ofs) <= (FLT_EPSILON*100.0f) && fabsf(fabsf(angle) - ((float)M_PI * 2.0f)) <= (FLT_EPSILON*100.0f)) { close= 1; step_tot--; - if(step_tot < 2) step_tot= 2; + if(step_tot < 3) step_tot= 3; maxVerts = totvert * step_tot; /* -1 because we're joining back up */ maxEdges = (totvert * step_tot) + /* these are the edges between new verts */ @@ -286,7 +286,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, } else { close= 0; - if(step_tot < 2) step_tot= 2; + if(step_tot < 3) step_tot= 3; maxVerts = totvert * step_tot; /* -1 because we're joining back up */ maxEdges = (totvert * (step_tot-1)) + /* these are the edges between new verts */ -- cgit v1.2.3 From 7f5c5f8ecaf6d366293cadbd8db08d4516a9499f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 4 Sep 2011 11:38:53 +0000 Subject: Fix #28500: Reshape in multires modifier makes blender crash Multires doesn't store displacement for base mesh and reshaping when multires subdivision level is set to zero is crappy. Add report that reshape can't work with base level and cancel reshape operator. --- source/blender/editors/object/object_modifier.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index c96d7c1fd10..8813b0027cd 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -1066,7 +1066,12 @@ static int multires_reshape_exec(bContext *C, wmOperator *op) if (!mmd) return OPERATOR_CANCELLED; - + + if(mmd->lvl==0) { + BKE_report(op->reports, RPT_ERROR, "Reshape can work only with higher levels of subdivisions."); + return OPERATOR_CANCELLED; + } + CTX_DATA_BEGIN(C, Object*, selob, selected_editable_objects) { if(selob->type == OB_MESH && selob != ob) { secondob= selob; -- cgit v1.2.3 From 1cada203bcae3a65f34e5631f8e8e1ae22ce4415 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 4 Sep 2011 14:31:23 +0000 Subject: [#27884] Collada import: materials mismatch when 2 instance_geometry reference the same material Reported by David Roy Multi-materials used on different meshes would get ignored (resulting in white faces in textured view). --- source/blender/collada/MeshImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index e9086f05628..01eff8069c1 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -796,7 +796,7 @@ MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmateri std::multimap::iterator it; it=materials_mapped_to_geom.find(*geom_uid); while(it!=materials_mapped_to_geom.end()) { - if(it->second == ma_uid) return NULL; // do nothing if already found + if(it->second == ma_uid && it->first == *geom_uid) return NULL; // do nothing if already found it++; } // first time we get geom_uid, ma_uid pair. Save for later check. -- cgit v1.2.3 From f1eab8e85365a91592bf0f369d173e4b9854619d Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 4 Sep 2011 15:53:12 +0000 Subject: Fix #28503: Selecting a Grease Pencil from the Properties panel does not update 3D View Added missing notifiers. --- source/blender/makesrna/intern/rna_nodetree.c | 1 + source/blender/makesrna/intern/rna_object.c | 1 + source/blender/makesrna/intern/rna_scene.c | 1 + source/blender/makesrna/intern/rna_space.c | 1 + 4 files changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 56492a52da9..d6e475fdbad 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -2736,6 +2736,7 @@ static void rna_def_nodetree(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_struct_type(prop, "GreasePencil"); RNA_def_property_ui_text(prop, "Grease Pencil Data", "Grease Pencil datablock"); + RNA_def_property_update(prop, NC_NODE, NULL); prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index ad323b0aba4..4e2be7682f8 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2297,6 +2297,7 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_struct_type(prop, "GreasePencil"); RNA_def_property_ui_text(prop, "Grease Pencil Data", "Grease Pencil datablock"); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); /* pose */ prop= RNA_def_property(srna, "pose_library", PROP_POINTER, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index cc1e7d9390b..3c60a3b4cd7 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -3517,6 +3517,7 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_struct_type(prop, "GreasePencil"); RNA_def_property_ui_text(prop, "Grease Pencil Data", "Grease Pencil datablock"); + RNA_def_property_update(prop, NC_SCENE, NULL); /* Transform Orientations */ prop= RNA_def_property(srna, "orientations", PROP_COLLECTION, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 7a7debe1bf5..35360910015 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1622,6 +1622,7 @@ static void rna_def_space_image(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_struct_type(prop, "GreasePencil"); RNA_def_property_ui_text(prop, "Grease Pencil", "Grease pencil data for this space"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); prop= RNA_def_property(srna, "use_grease_pencil", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DISPGP); -- cgit v1.2.3 From 5c5b9cf4d793e4169147201dae701ab7aef36c86 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 4 Sep 2011 22:14:28 +0000 Subject: Remove NULL-checks, as they might cause infinite loops while reading a DAE containing unsupported data, i.e. geometry. --- source/blender/collada/DocumentImporter.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 3a92c95e7ee..1a91e185bac 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -410,18 +410,15 @@ void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *paren while (geom_done < geom.getCount()) { ob = mesh_importer.create_mesh_object(node, geom[geom_done], false, uid_material_map, material_texture_mapping_map); - if ( ob != NULL ) - ++geom_done; + ++geom_done; } while (camera_done < camera.getCount()) { ob = create_camera_object(camera[camera_done], sce); - if ( ob != NULL ) - ++camera_done; + ++camera_done; } while (lamp_done < lamp.getCount()) { ob = create_lamp_object(lamp[lamp_done], sce); - if ( ob != NULL ) - ++lamp_done; + ++lamp_done; } while (controller_done < controller.getCount()) { COLLADAFW::InstanceGeometry *geom = (COLLADAFW::InstanceGeometry*)controller[controller_done]; -- cgit v1.2.3 From 3b09c331faae4406d619bfb1fab28a01c77097b4 Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Mon, 5 Sep 2011 05:42:49 +0000 Subject: Adding noise module by default in driver_namespace http://www.pasteall.org/blend/8677 --- source/blender/python/intern/bpy_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index d68fd9a9111..f3ef55d29c4 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -76,6 +76,13 @@ int bpy_pydriver_create_dict(void) Py_DECREF(mod); } + /* add noise to global namespace */ + mod= PyImport_ImportModuleLevel((char *)"noise", NULL, NULL, NULL, 0); + if (mod) { + PyDict_SetItemString(bpy_pydriver_Dict, "noise", mod); + Py_DECREF(mod); + } + return 0; } -- cgit v1.2.3 From 919bd181b764b0cf76b7e0fee76a07cc8126fc9a Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 5 Sep 2011 08:20:11 +0000 Subject: Partial revert commit 39878 "Fix #28280: Insert Hook wrong index" Such load/make edit structures introduced regression into iterators via object's geometry (vertices, edges, control points and so) when adding hooks in the body of this iterator. Fix for wrong index should be non-destructable for geometry. This will fix #28506: Unusual behavior in curves. --- source/blender/editors/object/object_hook.c | 21 ++++---------------- source/blender/editors/object/object_relations.c | 25 ++++-------------------- 2 files changed, 8 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 266556773f0..bb32869469a 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -64,7 +64,6 @@ #include "ED_curve.h" #include "ED_mesh.h" -#include "ED_lattice.h" #include "ED_screen.h" #include "WM_types.h" @@ -293,7 +292,7 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo return totvert; } -static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int **indexar, char *name, float *cent_r) +static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char *name, float *cent_r) { *indexar= NULL; *tot= 0; @@ -303,12 +302,7 @@ static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int * case OB_MESH: { Mesh *me= obedit->data; - EditMesh *em; - - load_editMesh(scene, obedit); - make_editMesh(scene, obedit); - - em = BKE_mesh_get_editmesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); /* check selected vertices first */ if( return_editmesh_indexar(em, tot, indexar, cent_r)) { @@ -322,17 +316,10 @@ static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int * } case OB_CURVE: case OB_SURF: - load_editNurb(obedit); - make_editNurb(obedit); - return return_editcurve_indexar(obedit, tot, indexar, cent_r); case OB_LATTICE: { Lattice *lt= obedit->data; - - load_editLatt(obedit); - make_editLatt(obedit); - return return_editlattice_indexar(lt->editlatt->latt, tot, indexar, cent_r); } default: @@ -440,7 +427,7 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o int tot, ok, *indexar; char name[32]; - ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent); + ok = object_hook_index_array(obedit, &tot, &indexar, name, cent); if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group"); @@ -773,7 +760,7 @@ static int object_hook_assign_exec(bContext *C, wmOperator *op) /* assign functionality */ - if(!object_hook_index_array(CTX_data_scene(C), ob, &tot, &indexar, name, cent)) { + if(!object_hook_index_array(ob, &tot, &indexar, name, cent)) { BKE_report(op->reports, RPT_WARNING, "Requires selected vertices or active vertex group"); return OPERATOR_CANCELLED; } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index b9208e778c7..e9418ca9f9f 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -91,8 +91,6 @@ #include "ED_armature.h" #include "ED_curve.h" -#include "ED_lattice.h" -#include "ED_mesh.h" #include "ED_keyframing.h" #include "ED_object.h" #include "ED_screen.h" @@ -124,12 +122,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) if(obedit->type==OB_MESH) { Mesh *me= obedit->data; - EditMesh *em; - - load_editMesh(scene, obedit); - make_editMesh(scene, obedit); - - em = BKE_mesh_get_editmesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); eve= em->verts.first; while(eve) { @@ -147,12 +140,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) BKE_mesh_end_editmesh(me, em); } else if(ELEM(obedit->type, OB_SURF, OB_CURVE)) { - ListBase *editnurb; - - load_editNurb(obedit); - make_editNurb(obedit); - - editnurb= curve_get_editcurve(obedit); + ListBase *editnurb= curve_get_editcurve(obedit); cu= obedit->data; @@ -192,13 +180,8 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) } } else if(obedit->type==OB_LATTICE) { - Lattice *lt; - - load_editLatt(obedit); - make_editLatt(obedit); - - lt= obedit->data; - + Lattice *lt= obedit->data; + a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; bp= lt->editlatt->latt->def; while(a--) { -- cgit v1.2.3 From d91587752c1a27e0569dec4ea24a682e7ea51007 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 13:19:19 +0000 Subject: Fix #28504: lib linking errors were not shown when opening a file from the splash screen. --- source/blender/windowmanager/intern/wm_event_system.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 27586525253..5711ec899bf 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -437,9 +437,18 @@ static void wm_operator_print(bContext *C, wmOperator *op) static void wm_operator_reports(bContext *C, wmOperator *op, int retval, int popup) { - if(popup) - if(op->reports->list.first) + if(popup) { + if(op->reports->list.first) { + /* FIXME, temp setting window, see other call to uiPupMenuReports for why */ + wmWindow *win_prev= CTX_wm_window(C); + if(win_prev==NULL) + CTX_wm_window_set(C, CTX_wm_manager(C)->windows.first); + uiPupMenuReports(C, op->reports); + + CTX_wm_window_set(C, win_prev); + } + } if(retval & OPERATOR_FINISHED) { if(G.f & G_DEBUG) -- cgit v1.2.3 From cc1c8268f755adfcf02085251e095b0589548719 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 5 Sep 2011 15:03:31 +0000 Subject: Left debug print accidently enabled. --- source/blender/collada/MeshImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index 01eff8069c1..15bd9c48f12 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -220,7 +220,7 @@ void MeshImporter::set_face_uv(MTFace *mtface, UVDataWrapper &uvs, if (quad) uvs.getUV(indices[index + 3], mtface->uv[3]); -#if 1 // #ifdef COLLADA_DEBUG +#ifdef COLLADA_DEBUG if (quad) { fprintf(stderr, "face uv:\n" "((%d, %d, %d, %d))\n" -- cgit v1.2.3 From 59dbd53e72ae25edf247e49ea1e291af277fecc4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 15:55:53 +0000 Subject: Fix #28389: UILayout.menu function didn't emboss menu button correct in the 3d view tools region. --- source/blender/editors/interface/interface_layout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index ef88bb0bbb6..a2e65f5e4ec 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1404,7 +1404,7 @@ static void ui_item_menu(uiLayout *layout, const char *name, int icon, uiMenuCre if(layout->root->type == UI_LAYOUT_HEADER) uiBlockSetEmboss(block, UI_EMBOSS); - else if(layout->root->type == UI_LAYOUT_PANEL) { + else if(ELEM(layout->root->type, UI_LAYOUT_PANEL, UI_LAYOUT_TOOLBAR)) { but->type= MENU; but->flag |= UI_TEXT_LEFT; } -- cgit v1.2.3 From 419042af55ddb789f29771886e0bb090ad757cad Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 16:25:42 +0000 Subject: Fix #28394: clouds texture error with high noise depth and blender original noise, patch from Campbell, --- source/blender/blenlib/intern/noise.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c index 9bc666dc971..9efe8dc9739 100644 --- a/source/blender/blenlib/intern/noise.c +++ b/source/blender/blenlib/intern/noise.c @@ -263,13 +263,21 @@ static float newPerlinU(float x, float y, float z) static float orgBlenderNoise(float x, float y, float z) { register float cn1, cn2, cn3, cn4, cn5, cn6, i, *h; - float ox, oy, oz, jx, jy, jz; + float fx, fy, fz, ox, oy, oz, jx, jy, jz; float n= 0.5; int ix, iy, iz, b00, b01, b10, b11, b20, b21; - ox= (x- (ix= (int)floor(x)) ); - oy= (y- (iy= (int)floor(y)) ); - oz= (z- (iz= (int)floor(z)) ); + fx= floor(x); + fy= floor(y); + fz= floor(z); + + ox= x- fx; + oy= y- fy; + oz= z- fz; + + ix= (int)fx; + iy= (int)fy; + iz= (int)fz; jx= ox-1; jy= oy-1; -- cgit v1.2.3 From 76ddf6d2ee97bf51290492d4c692dd8ca031182c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 17:57:04 +0000 Subject: Fix #28404: certain keyboard shortcuts not shown in menus, e.g. move operators in graph editor > channel menu. Problem was these did not inherit operator execution context correctly. Fix found by Sergey, also needed to fix logic operators which were not working when invoked instead of executed. --- source/blender/editors/interface/interface_layout.c | 2 +- source/blender/editors/space_logic/logic_ops.c | 6 +++--- source/blender/windowmanager/intern/wm_event_system.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index a2e65f5e4ec..803da55cea6 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1526,7 +1526,7 @@ static void menu_item_enum_opname_menu(bContext *UNUSED(C), uiLayout *layout, vo { MenuItemLevel *lvl= (MenuItemLevel*)(((uiBut*)arg)->func_argN); - uiLayoutSetOperatorContext(layout, WM_OP_EXEC_REGION_WIN); + uiLayoutSetOperatorContext(layout, lvl->opcontext); uiItemsEnumO(layout, lvl->opname, lvl->propname); } diff --git a/source/blender/editors/space_logic/logic_ops.c b/source/blender/editors/space_logic/logic_ops.c index 638bfe57608..60e9595b77a 100644 --- a/source/blender/editors/space_logic/logic_ops.c +++ b/source/blender/editors/space_logic/logic_ops.c @@ -322,7 +322,7 @@ static void LOGIC_OT_sensor_add(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, SENS_ALWAYS, "Type", "Type of sensor to add"); + ot->prop= prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, SENS_ALWAYS, "Type", "Type of sensor to add"); RNA_def_enum_funcs(prop, rna_Sensor_type_itemf); RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Sensor to add"); RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Sensor to"); @@ -437,7 +437,7 @@ static void LOGIC_OT_controller_add(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - RNA_def_enum(ot->srna, "type", controller_type_items, CONT_LOGIC_AND, "Type", "Type of controller to add"); + ot->prop= RNA_def_enum(ot->srna, "type", controller_type_items, CONT_LOGIC_AND, "Type", "Type of controller to add"); RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Controller to add"); RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Controller to"); } @@ -539,7 +539,7 @@ static void LOGIC_OT_actuator_add(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, CONT_LOGIC_AND, "Type", "Type of actuator to add"); + ot->prop= prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, CONT_LOGIC_AND, "Type", "Type of actuator to add"); RNA_def_enum_funcs(prop, rna_Actuator_type_itemf); RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Actuator to add"); RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Actuator to"); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 5711ec899bf..8861f128c4b 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -886,8 +886,8 @@ static int wm_operator_call_internal(bContext *C, wmOperatorType *ot, PointerRNA CTX_wm_region_set(C, NULL); CTX_wm_area_set(C, NULL); retval= wm_operator_invoke(C, ot, event, properties, reports, poll_only); - CTX_wm_region_set(C, ar); CTX_wm_area_set(C, area); + CTX_wm_region_set(C, ar); return retval; } -- cgit v1.2.3 From a6d9a5a972595c898e596deb95eb683430621188 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 19:27:21 +0000 Subject: Code cleanup: warning fixes. --- source/blender/blenlib/BLI_math_inline.h | 2 +- source/blender/collada/AnimationExporter.cpp | 8 +- source/blender/collada/AnimationImporter.cpp | 11 +-- source/blender/collada/AnimationImporter.h | 4 +- source/blender/collada/ArmatureImporter.cpp | 5 -- source/blender/collada/DocumentImporter.cpp | 4 +- source/blender/collada/TransformReader.cpp | 1 - source/blender/editors/space_logic/logic_window.c | 34 -------- source/blender/imbuf/intern/cineon/cineonlib.c | 5 +- source/blender/imbuf/intern/cineon/logImageCore.h | 4 + source/blender/makesrna/intern/rna_actuator.c | 95 ----------------------- source/blender/makesrna/intern/rna_particle.c | 16 ++-- source/blender/makesrna/intern/rna_texture.c | 2 +- 13 files changed, 29 insertions(+), 162 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_inline.h b/source/blender/blenlib/BLI_math_inline.h index 0f8493e25a6..122b2679d5b 100644 --- a/source/blender/blenlib/BLI_math_inline.h +++ b/source/blender/blenlib/BLI_math_inline.h @@ -45,7 +45,7 @@ extern "C" { #define MALWAYS_INLINE MINLINE #else #define MINLINE static inline -#define MALWAYS_INLINE static __attribute__((always_inline)) +#define MALWAYS_INLINE static inline __attribute__((always_inline)) #endif #else #define MINLINE diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 4c20d1cf6c1..498ccb5709d 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -643,6 +643,8 @@ std::string AnimationExporter::create_source_from_fcurve(COLLADASW::InputSemanti case COLLADASW::InputSemantic::OUT_TANGENT: source.setAccessorStride(2); break; + default: + break; } @@ -913,7 +915,7 @@ std::string AnimationExporter::get_light_param_sid(char *rna_path, int tm_type, } if (tm_name.size()) { - if (axis_name != "") + if (axis_name[0]) return tm_name + "." + std::string(axis_name); else return tm_name; @@ -962,7 +964,7 @@ std::string AnimationExporter::get_camera_param_sid(char *rna_path, int tm_type, } if (tm_name.size()) { - if (axis_name != "") + if (axis_name[0]) return tm_name + "." + std::string(axis_name); else return tm_name; @@ -1041,7 +1043,7 @@ std::string AnimationExporter::get_transform_sid(char *rna_path, int tm_type, co if (is_rotation) return tm_name + std::string(axis_name) + ".ANGLE"; else - if (axis_name != "") + if (axis_name[0]) return tm_name + "." + std::string(axis_name); else return tm_name; diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 29c356ed8f0..43428f57d4f 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -90,12 +90,6 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - if( curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER || - curve->getInterpolationType() == COLLADAFW::AnimationCurve::INTERPOLATION_STEP ) { - COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); - COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); - } - float fps = (float)FPS; size_t dim = curve->getOutDimension(); unsigned int i; @@ -572,7 +566,7 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation * } //creates the rna_paths and array indices of fcurves from animations using color and bound animation class of each animation. -void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type) +void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,const char * anim_type) { char rna_path[100]; BLI_strncpy(rna_path,anim_type, sizeof(rna_path)); @@ -615,7 +609,7 @@ void AnimationImporter:: Assign_color_animations(const COLLADAFW::UniqueId& list } -void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type) +void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const char * anim_type) { char rna_path[100]; if (animlist_map.find(listid) == animlist_map.end()) return ; @@ -803,7 +797,6 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , } bAction * act; - bActionGroup *grp = NULL; if ( (animType->transform) != 0 ) { diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index ed9a2171c87..9e8f7b42069 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -159,8 +159,8 @@ public: const COLLADAFW::AnimationList::AnimationBinding * binding, std::vector* curves, bool is_joint, char * joint_path); - void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type); - void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type); + void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const char * anim_type); + void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const char * anim_type); int setAnimType ( const COLLADAFW::Animatable * prop , int type, int addition); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 27aee133557..19fa54c5044 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -95,8 +95,6 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node)); totbone++; - bPoseChannel *pchan = get_pose_channel(ob_arm->pose, (char*)bc_get_joint_name(node)); - if (parent) bone->parent = parent; float angle = 0; @@ -280,8 +278,6 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: copy_m4_m4(leaf.mat, mat); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); - float vec[3]; - TagsMap::iterator etit; ExtraTags *et = 0; etit = uid_tags_map.find(node->getUniqueId().toAscii()); @@ -579,7 +575,6 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node float mat[4][4]; float obmat[4][4]; - bArmature * arm = (bArmature * ) ob_arm-> data ; float ax[3]; float angle = NULL; diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 1a91e185bac..586c6ccfe82 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -240,15 +240,15 @@ void DocumentImporter::translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW root_map[node->getUniqueId()] = root_map[par->getUniqueId()]; } - COLLADAFW::Transformation::TransformationType types[] = { + /*COLLADAFW::Transformation::TransformationType types[] = { COLLADAFW::Transformation::ROTATE, COLLADAFW::Transformation::SCALE, COLLADAFW::Transformation::TRANSLATE, COLLADAFW::Transformation::MATRIX }; + Object *ob;*/ unsigned int i; - Object *ob; //for (i = 0; i < 4; i++) //ob = diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp index 0fd0c85aa09..625a0220830 100644 --- a/source/blender/collada/TransformReader.cpp +++ b/source/blender/collada/TransformReader.cpp @@ -37,7 +37,6 @@ void TransformReader::get_node_mat(float mat[][4], COLLADAFW::Node *node, std::m { float cur[4][4]; float copy[4][4]; - float eul[3]; unit_m4(mat); diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index 920e93cc0fc..20b001965aa 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3989,40 +3989,6 @@ static void draw_actuator_game(uiLayout *layout, PointerRNA *ptr) uiItemR(layout, ptr, "filename", 0, NULL, ICON_NONE); } -/* The IPO/Fcurve actuator has been deprecated, so this is no longer used */ -static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr) -{ - Object *ob; - PointerRNA settings_ptr; - uiLayout *row, *subrow, *col; - - ob = (Object *)ptr->id.data; - RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr); - - row= uiLayoutRow(layout, 0); - uiItemR(row, ptr, "play_type", 0, "", ICON_NONE); - subrow= uiLayoutRow(row, 1); - uiItemR(subrow, ptr, "use_force", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); - uiItemR(subrow, ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); - - col = uiLayoutColumn(subrow, 0); - uiLayoutSetActive(col, (RNA_boolean_get(ptr, "use_additive") || RNA_boolean_get(ptr, "use_force"))); - uiItemR(col, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); - - row= uiLayoutRow(layout, 0); - if((RNA_enum_get(ptr, "play_type") == ACT_IPO_FROM_PROP)) - uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, ICON_NONE); - - else { - uiItemR(row, ptr, "frame_start", 0, NULL, ICON_NONE); - uiItemR(row, ptr, "frame_end", 0, NULL, ICON_NONE); - } - uiItemR(row, ptr, "apply_to_children", 0, NULL, ICON_NONE); - - row= uiLayoutRow(layout, 0); - uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NONE); -} - static void draw_actuator_message(uiLayout *layout, PointerRNA *ptr, bContext *C) { Object *ob; diff --git a/source/blender/imbuf/intern/cineon/cineonlib.c b/source/blender/imbuf/intern/cineon/cineonlib.c index 922cfcf9629..b4da39ac41e 100644 --- a/source/blender/imbuf/intern/cineon/cineonlib.c +++ b/source/blender/imbuf/intern/cineon/cineonlib.c @@ -36,6 +36,9 @@ #include /* htonl() */ #endif #include /* memset */ + +#include "BLI_utildefines.h" + #include "cin_debug_stuff.h" #include "logmemfile.h" @@ -288,7 +291,7 @@ initCineonGenericHeader(CineonFile* cineon, CineonGenericHeader* header, const c } static void -dumpCineonGenericHeader(CineonGenericHeader* header) { +UNUSED_FUNCTION(dumpCineonGenericHeader)(CineonGenericHeader* header) { dumpCineonFileInfo(&header->fileInfo); dumpCineonImageInfo(&header->imageInfo); dumpCineonFormatInfo(&header->formatInfo); diff --git a/source/blender/imbuf/intern/cineon/logImageCore.h b/source/blender/imbuf/intern/cineon/logImageCore.h index f05c19c4f47..cbc7cb9d64a 100644 --- a/source/blender/imbuf/intern/cineon/logImageCore.h +++ b/source/blender/imbuf/intern/cineon/logImageCore.h @@ -38,8 +38,12 @@ extern "C" { #endif #include "BLO_sys_types.h" // for intptr_t support + +#ifdef _MSC_VER #undef ntohl #undef htonl +#endif + 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); diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index 5eccba16c3d..3d0e177c94e 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -323,30 +323,6 @@ static void rna_Actuator_constraint_detect_material_set(struct PointerRNA *ptr, } } -static void rna_FcurveActuator_add_set(struct PointerRNA *ptr, int value) -{ - bActuator *act = (bActuator *)ptr->data; - bIpoActuator *ia = act->data; - - if(value == 1){ - ia->flag &= ~ACT_IPOFORCE; - ia->flag |= ACT_IPOADD; - }else - ia->flag &= ~ACT_IPOADD; -} - -static void rna_FcurveActuator_force_set(struct PointerRNA *ptr, int value) -{ - bActuator *act = (bActuator *)ptr->data; - bIpoActuator *ia = act->data; - - if(value == 1){ - ia->flag &= ~ACT_IPOADD; - ia->flag |= ACT_IPOFORCE; - }else - ia->flag &= ~ACT_IPOFORCE; -} - static void rna_ActionActuator_add_set(struct PointerRNA *ptr, int value) { bActuator *act = (bActuator *)ptr->data; @@ -858,77 +834,6 @@ static void rna_def_object_actuator(BlenderRNA *brna) RNA_def_property_update(prop, NC_LOGIC, NULL); } -/* The fcurve actuator has been replace with the action actuator, so this is no longer used */ -static void rna_def_fcurve_actuator(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - static EnumPropertyItem prop_type_items[] ={ - {ACT_IPO_PLAY, "PLAY", 0, "Play", ""}, - {ACT_IPO_PINGPONG, "PINGPONG", 0, "Ping Pong", ""}, - {ACT_IPO_FLIPPER, "FLIPPER", 0, "Flipper", ""}, - {ACT_IPO_LOOP_STOP, "STOP", 0, "Loop Stop", ""}, - {ACT_IPO_LOOP_END, "END", 0, "Loop End", ""}, -// {ACT_IPO_KEY2KEY, "IPOCHILD", 0, "Key to Key", ""}, - {ACT_IPO_FROM_PROP, "PROP", 0, "Property", ""}, - {0, NULL, 0, NULL, NULL}}; - - srna= RNA_def_struct(brna, "FCurveActuator", "Actuator"); - RNA_def_struct_ui_text(srna, "F-Curve Actuator", "Actuator to animate the object"); - RNA_def_struct_sdna_from(srna, "bIpoActuator", "data"); - - prop= RNA_def_property(srna, "play_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_type_items); - RNA_def_property_ui_text(prop, "F-Curve Type", "Specify the way you want to play the animation"); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "frame_start", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "sta"); - RNA_def_property_ui_range(prop, 1.0, MAXFRAME, 100, 2); - RNA_def_property_ui_text(prop, "Start Frame", ""); - RNA_def_property_update(prop, NC_SCENE, NULL); - - prop= RNA_def_property(srna, "frame_end", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "end"); - RNA_def_property_ui_range(prop, 1.0, MAXFRAME, 100, 2); - RNA_def_property_ui_text(prop, "End Frame", ""); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "property", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_ui_text(prop, "Property", "Use this property to define the F-Curve position"); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "frame_property", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "frameProp"); - RNA_def_property_ui_text(prop, "Frame Property", "Assign the action's current frame number to this property"); - - /* booleans */ - prop= RNA_def_property(srna, "use_additive", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOADD); - RNA_def_property_boolean_funcs(prop, NULL, "rna_FcurveActuator_add_set"); - RNA_def_property_ui_text(prop, "Add", "F-Curve is added to the current loc/rot/scale in global or local coordinate according to Local flag"); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "use_force", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOFORCE); - RNA_def_property_boolean_funcs(prop, NULL, "rna_FcurveActuator_force_set"); - RNA_def_property_ui_text(prop, "Force", "Apply F-Curve as a global or local force depending on the local option (dynamic objects only)"); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "use_local", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOLOCAL); - RNA_def_property_ui_text(prop, "L", "Let the F-Curve act in local coordinates, used in Force and Add mode"); - RNA_def_property_update(prop, NC_LOGIC, NULL); - - prop= RNA_def_property(srna, "apply_to_children", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOCHILD); - RNA_def_property_ui_text(prop, "Child", "Update F-Curve on all children Objects as well"); - RNA_def_property_update(prop, NC_LOGIC, NULL); -} - static void rna_def_camera_actuator(BlenderRNA *brna) { StructRNA *srna; diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index ba91fc3536b..77fa975761f 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -51,34 +51,34 @@ #include "WM_types.h" #include "WM_api.h" -static EnumPropertyItem part_from_items[] = { +EnumPropertyItem part_from_items[] = { {PART_FROM_VERT, "VERT", 0, "Verts", ""}, {PART_FROM_FACE, "FACE", 0, "Faces", ""}, {PART_FROM_VOLUME, "VOLUME", 0, "Volume", ""}, {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_reactor_from_items[] = { +EnumPropertyItem part_reactor_from_items[] = { {PART_FROM_VERT, "VERT", 0, "Verts", ""}, {PART_FROM_FACE, "FACE", 0, "Faces", ""}, {PART_FROM_VOLUME, "VOLUME", 0, "Volume", ""}, {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_dist_items[] = { +EnumPropertyItem part_dist_items[] = { {PART_DISTR_JIT, "JIT", 0, "Jittered", ""}, {PART_DISTR_RAND, "RAND", 0, "Random", ""}, {PART_DISTR_GRID, "GRID", 0, "Grid", ""}, {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_hair_dist_items[] = { +EnumPropertyItem part_hair_dist_items[] = { {PART_DISTR_JIT, "JIT", 0, "Jittered", ""}, {PART_DISTR_RAND, "RAND", 0, "Random", ""}, {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_draw_as_items[] = { +EnumPropertyItem part_draw_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_REND, "RENDER", 0, "Rendered", ""}, {PART_DRAW_DOT, "DOT", 0, "Point", ""}, @@ -88,14 +88,14 @@ static EnumPropertyItem part_draw_as_items[] = { {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_hair_draw_as_items[] = { +EnumPropertyItem part_hair_draw_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_REND, "RENDER", 0, "Rendered", ""}, {PART_DRAW_PATH, "PATH", 0, "Path", ""}, {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_ren_as_items[] = { +EnumPropertyItem part_ren_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_HALO, "HALO", 0, "Halo", ""}, {PART_DRAW_LINE, "LINE", 0, "Line", ""}, @@ -106,7 +106,7 @@ static EnumPropertyItem part_ren_as_items[] = { {0, NULL, 0, NULL, NULL} }; -static EnumPropertyItem part_hair_ren_as_items[] = { +EnumPropertyItem part_hair_ren_as_items[] = { {PART_DRAW_NOT, "NONE", 0, "None", ""}, {PART_DRAW_PATH, "PATH", 0, "Path", ""}, {PART_DRAW_OB, "OBJECT", 0, "Object", ""}, diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index a1ce77b061d..503212201c4 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -48,7 +48,7 @@ #include "BKE_node.h" -static EnumPropertyItem texture_filter_items[] = { +EnumPropertyItem texture_filter_items[] = { {TXF_BOX, "BOX", 0, "Box", ""}, {TXF_EWA, "EWA", 0, "EWA", ""}, {TXF_FELINE, "FELINE", 0, "FELINE", ""}, -- cgit v1.2.3 From 59a823c48aec80a48b39e27f8474302caf2dbf26 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 19:34:27 +0000 Subject: Code cleanup: remove context from RNA update functions, only one left. --- source/blender/blenkernel/BKE_sound.h | 9 +- source/blender/blenkernel/intern/sequencer.c | 3 +- source/blender/blenkernel/intern/sound.c | 34 ++--- source/blender/editors/animation/anim_ops.c | 4 +- source/blender/editors/include/ED_sequencer.h | 4 - source/blender/editors/screen/screen_ops.c | 17 ++- source/blender/editors/sound/sound_ops.c | 2 +- source/blender/editors/space_graph/graph_ops.c | 4 +- .../editors/space_sequencer/sequencer_edit.c | 2 +- .../editors/space_sequencer/space_sequencer.c | 138 +++++++++++++-------- source/blender/makesrna/intern/rna_scene.c | 8 +- source/blender/makesrna/intern/rna_screen.c | 5 +- source/blender/makesrna/intern/rna_space.c | 16 +-- source/blender/makesrna/intern/rna_wm.c | 5 +- 14 files changed, 141 insertions(+), 110 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index fac5bf1cfd2..3728dd41089 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -39,7 +39,6 @@ struct PackedFile; struct bSound; -struct bContext; struct ListBase; struct Main; struct Sequence; @@ -65,12 +64,12 @@ struct bSound* sound_new_file(struct Main *main, const char *filename); // XXX unused currently #if 0 -struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source); +struct bSound* sound_new_buffer(struct Main *bmain, struct bSound *source); -struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, float start, float end); +struct bSound* sound_new_limiter(struct Main *bmain, struct bSound *source, float start, float end); #endif -void sound_delete(struct bContext *C, struct bSound* sound); +void sound_delete(struct Main *bmain, struct bSound* sound); void sound_cache(struct bSound* sound); @@ -124,7 +123,7 @@ void sound_play_scene(struct Scene *scene); void sound_stop_scene(struct Scene *scene); -void sound_seek_scene(struct bContext *C); +void sound_seek_scene(struct Main *bmain, struct Scene *scene); float sound_sync_scene(struct Scene *scene); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 9ef30bdd49b..dbb2e7860c5 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3603,6 +3603,7 @@ Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo #ifdef WITH_AUDASPACE Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); /* only for sound */ Editing *ed= seq_give_editing(scene, TRUE); bSound *sound; @@ -3624,7 +3625,7 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo info = AUD_getInfo(sound->playback_handle); if (info.specs.channels == AUD_CHANNELS_INVALID) { - sound_delete(C, sound); + sound_delete(bmain, sound); //if(op) // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); return NULL; diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 74f4830b86c..ff518d69e21 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -203,7 +203,7 @@ void sound_exit(void) // XXX unused currently #if 0 -struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source) +struct bSound* sound_new_buffer(struct Main *bmain, struct bSound *source) { bSound* sound = NULL; @@ -211,23 +211,23 @@ struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source) strcpy(name, "buf_"); strcpy(name + 4, source->id.name); - sound = alloc_libblock(&CTX_data_main(C)->sound, ID_SO, name); + sound = alloc_libblock(&bmain->sound, ID_SO, name); sound->child_sound = source; sound->type = SOUND_TYPE_BUFFER; - sound_load(CTX_data_main(C), sound); + sound_load(bmain, sound); if(!sound->playback_handle) { - free_libblock(&CTX_data_main(C)->sound, sound); + free_libblock(&bmain->sound, sound); sound = NULL; } return sound; } -struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, float start, float end) +struct bSound* sound_new_limiter(struct Main *bmain, struct bSound *source, float start, float end) { bSound* sound = NULL; @@ -235,18 +235,18 @@ struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, floa strcpy(name, "lim_"); strcpy(name + 4, source->id.name); - sound = alloc_libblock(&CTX_data_main(C)->sound, ID_SO, name); + sound = alloc_libblock(&bmain->sound, ID_SO, name); sound->child_sound = source; sound->start = start; sound->end = end; sound->type = SOUND_TYPE_LIMITER; - sound_load(CTX_data_main(C), sound); + sound_load(bmain, sound); if(!sound->playback_handle) { - free_libblock(&CTX_data_main(C)->sound, sound); + free_libblock(&bmain->sound, sound); sound = NULL; } @@ -254,13 +254,13 @@ struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, floa } #endif -void sound_delete(struct bContext *C, struct bSound* sound) +void sound_delete(struct Main *bmain, struct bSound* sound) { if(sound) { sound_free(sound); - free_libblock(&CTX_data_main(C)->sound, sound); + free_libblock(&bmain->sound, sound); } } @@ -538,10 +538,11 @@ void sound_stop_scene(struct Scene *scene) } } -void sound_seek_scene(struct bContext *C) +void sound_seek_scene(struct Main *bmain, struct Scene *scene) { - struct Scene *scene = CTX_data_scene(C); AUD_Status status; + bScreen *screen; + int animation_playing; AUD_lock(); @@ -560,7 +561,12 @@ void sound_seek_scene(struct bContext *C) AUD_pause(scene->sound_scene_handle); } - if(scene->audio.flag & AUDIO_SCRUB && !CTX_wm_screen(C)->animtimer) + animation_playing = 0; + for(screen=bmain->screen.first; screen; screen=screen->id.next) + if(screen->animtimer) + animation_playing = 1; + + if(scene->audio.flag & AUDIO_SCRUB && !animation_playing) { if(scene->audio.flag & AUDIO_SYNC) { @@ -758,7 +764,7 @@ void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), i static void sound_start_play_scene(struct Scene *UNUSED(scene)) {} void sound_play_scene(struct Scene *UNUSED(scene)) {} void sound_stop_scene(struct Scene *UNUSED(scene)) {} -void sound_seek_scene(struct bContext *UNUSED(C)) {} +void sound_seek_scene(struct Main *UNUSED(bmain), struct Scene *UNUSED(scene)) {} float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; } int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c index eaba8343f4d..aa61afbac78 100644 --- a/source/blender/editors/animation/anim_ops.c +++ b/source/blender/editors/animation/anim_ops.c @@ -41,6 +41,7 @@ #include "BKE_context.h" #include "BKE_global.h" +#include "BKE_main.h" #include "BKE_sound.h" #include "UI_view2d.h" @@ -76,6 +77,7 @@ static int change_frame_poll(bContext *C) /* Set the new frame number */ static void change_frame_apply(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); /* set the new frame number */ @@ -84,7 +86,7 @@ static void change_frame_apply(bContext *C, wmOperator *op) SUBFRA = 0.f; /* do updates */ - sound_seek_scene(C); + sound_seek_scene(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); } diff --git a/source/blender/editors/include/ED_sequencer.h b/source/blender/editors/include/ED_sequencer.h index cd22a5c6ca4..5be1403c97b 100644 --- a/source/blender/editors/include/ED_sequencer.h +++ b/source/blender/editors/include/ED_sequencer.h @@ -31,8 +31,4 @@ #define SEQ_ZOOM_FAC(szoom) ((szoom) > 0.0f)? (szoom) : ((szoom) == 0.0f)? (1.0f) : (-1.0f/(szoom)) - -/* in space_sequencer.c, for rna update function */ -void ED_sequencer_update_view(bContext *C, int view); - #endif /* ED_SEQUENCER_H */ diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 66a67d7c4f2..b199f54cde1 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1732,14 +1732,16 @@ static void SCREEN_OT_region_scale(wmOperatorType *ot) /* function to be called outside UI context, or for redo */ static int frame_offset_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); int delta; delta = RNA_int_get(op->ptr, "delta"); - CTX_data_scene(C)->r.cfra += delta; - CTX_data_scene(C)->r.subframe = 0.f; + scene->r.cfra += delta; + scene->r.subframe = 0.f; - sound_seek_scene(C); + sound_seek_scene(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, CTX_data_scene(C)); @@ -1764,6 +1766,7 @@ static void SCREEN_OT_frame_offset(wmOperatorType *ot) /* function to be called outside UI context, or for redo */ static int frame_jump_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); wmTimer *animtimer= CTX_wm_screen(C)->animtimer; @@ -1787,7 +1790,7 @@ static int frame_jump_exec(bContext *C, wmOperator *op) else CFRA= PSFRA; - sound_seek_scene(C); + sound_seek_scene(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); } @@ -1816,6 +1819,7 @@ static void SCREEN_OT_frame_jump(wmOperatorType *ot) /* function to be called outside UI context, or for redo */ static int keyframe_jump_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); Object *ob= CTX_data_active_object(C); bDopeSheet ads= {NULL}; @@ -1870,7 +1874,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op) /* free temp stuff */ BLI_dlrbTree_free(&keys); - sound_seek_scene(C); + sound_seek_scene(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); @@ -2796,6 +2800,7 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), wmEvent *e bScreen *screen= CTX_wm_screen(C); if(screen->animtimer && screen->animtimer==event->customdata) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); wmTimer *wt= screen->animtimer; ScreenAnimData *sad= wt->customdata; @@ -2872,7 +2877,7 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), wmEvent *e } if (sad->flag & ANIMPLAY_FLAG_JUMPED) - sound_seek_scene(C); + sound_seek_scene(bmain, scene); /* since we follow drawflags, we can't send notifier but tag regions ourselves */ ED_update_for_newframe(CTX_data_main(C), scene, screen, 1); diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 70884d47c23..72dbbd9da9a 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -119,7 +119,7 @@ static int open_exec(bContext *C, wmOperator *op) info = AUD_getInfo(sound->playback_handle); if (info.specs.channels == AUD_CHANNELS_INVALID) { - sound_delete(C, sound); + sound_delete(bmain, sound); if(op->customdata) MEM_freeN(op->customdata); BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); return OPERATOR_CANCELLED; diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 0d7cdf94bc7..46918407447 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -41,6 +41,7 @@ #include "BLI_utildefines.h" #include "BKE_context.h" +#include "BKE_main.h" #include "BKE_sound.h" #include "UI_view2d.h" @@ -70,6 +71,7 @@ /* Set the new frame number */ static void graphview_cursor_apply(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); SpaceIpo *sipo= CTX_wm_space_graph(C); @@ -78,7 +80,7 @@ static void graphview_cursor_apply(bContext *C, wmOperator *op) */ CFRA= RNA_int_get(op->ptr, "frame"); SUBFRA=0.f; - sound_seek_scene(C); + sound_seek_scene(bmain, scene); /* set the cursor value */ sipo->cursorVal= RNA_float_get(op->ptr, "value"); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index df347506e74..e7673651546 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2174,7 +2174,7 @@ static int sequencer_view_toggle_exec(bContext *C, wmOperator *UNUSED(op)) sseq->view++; if (sseq->view > SEQ_VIEW_SEQUENCE_PREVIEW) sseq->view = SEQ_VIEW_SEQUENCE; - ED_sequencer_update_view(C, sseq->view); + ED_area_tag_refresh(CTX_wm_area(C)); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 36471c7ffcf..5a0369ef80b 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -98,61 +98,6 @@ static ARegion *sequencer_find_region(ScrArea *sa, short type) return ar; } -void ED_sequencer_update_view(bContext *C, int view) -{ - ScrArea *sa= CTX_wm_area(C); - - ARegion *ar_main= sequencer_find_region(sa, RGN_TYPE_WINDOW); - ARegion *ar_preview= sequencer_find_region(sa, RGN_TYPE_PREVIEW); - - switch (view) { - case SEQ_VIEW_SEQUENCE: - if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) { - ar_main->flag &= ~RGN_FLAG_HIDDEN; - ar_main->v2d.flag &= ~V2D_IS_INITIALISED; - } - if (ar_preview && !(ar_preview->flag & RGN_FLAG_HIDDEN)) { - ar_preview->flag |= RGN_FLAG_HIDDEN; - ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; - WM_event_remove_handlers(C, &ar_preview->handlers); - } - if (ar_main) ar_main->alignment= RGN_ALIGN_NONE; - if (ar_preview) ar_preview->alignment= RGN_ALIGN_NONE; - break; - case SEQ_VIEW_PREVIEW: - if (ar_main && !(ar_main->flag & RGN_FLAG_HIDDEN)) { - ar_main->flag |= RGN_FLAG_HIDDEN; - ar_main->v2d.flag &= ~V2D_IS_INITIALISED; - WM_event_remove_handlers(C, &ar_main->handlers); - } - if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) { - ar_preview->flag &= ~RGN_FLAG_HIDDEN; - ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; - ar_preview->v2d.cur = ar_preview->v2d.tot; - } - if (ar_main) ar_main->alignment= RGN_ALIGN_NONE; - if (ar_preview) ar_preview->alignment= RGN_ALIGN_NONE; - break; - case SEQ_VIEW_SEQUENCE_PREVIEW: - if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) { - ar_main->flag &= ~RGN_FLAG_HIDDEN; - ar_main->v2d.flag &= ~V2D_IS_INITIALISED; - } - if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) { - ar_preview->flag &= ~RGN_FLAG_HIDDEN; - ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; - ar_preview->v2d.cur = ar_preview->v2d.tot; - } - if (ar_main) ar_main->alignment= RGN_ALIGN_NONE; - if (ar_preview) ar_preview->alignment= RGN_ALIGN_TOP; - break; - } - - ED_area_initialize(CTX_wm_manager(C), CTX_wm_window(C), sa); - ED_area_tag_redraw(sa); -} - - /* ******************** default callbacks for sequencer space ***************** */ static SpaceLink *sequencer_new(const bContext *C) @@ -256,6 +201,88 @@ static void sequencer_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(s } +static void sequencer_refresh(const bContext *C, ScrArea *sa) +{ + wmWindowManager *wm= CTX_wm_manager(C); + wmWindow *window= CTX_wm_window(C); + SpaceSeq *sseq= (SpaceSeq *)sa->spacedata.first; + ARegion *ar_main= sequencer_find_region(sa, RGN_TYPE_WINDOW); + ARegion *ar_preview= sequencer_find_region(sa, RGN_TYPE_PREVIEW); + int view_changed= 0; + + switch (sseq->view) { + case SEQ_VIEW_SEQUENCE: + if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) { + ar_main->flag &= ~RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + view_changed= 1; + } + if (ar_preview && !(ar_preview->flag & RGN_FLAG_HIDDEN)) { + ar_preview->flag |= RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + WM_event_remove_handlers((bContext*)C, &ar_preview->handlers); + view_changed= 1; + } + if (ar_main && ar_main->alignment != RGN_ALIGN_TOP) { + ar_main->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } + if (ar_preview && ar_preview->alignment != RGN_ALIGN_TOP) { + ar_preview->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } + break; + case SEQ_VIEW_PREVIEW: + if (ar_main && !(ar_main->flag & RGN_FLAG_HIDDEN)) { + ar_main->flag |= RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + WM_event_remove_handlers((bContext*)C, &ar_main->handlers); + view_changed= 1; + } + if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) { + ar_preview->flag &= ~RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + ar_preview->v2d.cur = ar_preview->v2d.tot; + view_changed= 1; + } + if (ar_main && ar_main->alignment != RGN_ALIGN_TOP) { + ar_main->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } + if (ar_preview && ar_preview->alignment != RGN_ALIGN_TOP) { + ar_preview->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } + break; + case SEQ_VIEW_SEQUENCE_PREVIEW: + if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) { + ar_main->flag &= ~RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + view_changed= 1; + } + if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) { + ar_preview->flag &= ~RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + ar_preview->v2d.cur = ar_preview->v2d.tot; + view_changed= 1; + } + if (ar_main && ar_main->alignment != RGN_ALIGN_TOP) { + ar_main->alignment= RGN_ALIGN_NONE; + view_changed= 1; + } + if (ar_preview && ar_preview->alignment != RGN_ALIGN_TOP) { + ar_preview->alignment= RGN_ALIGN_TOP; + view_changed= 1; + } + break; + } + + if(view_changed) { + ED_area_initialize(wm, window, sa); + ED_area_tag_redraw(sa); + } +} + static SpaceLink *sequencer_duplicate(SpaceLink *sl) { SpaceSeq *sseqn= MEM_dupallocN(sl); @@ -516,6 +543,7 @@ void ED_spacetype_sequencer(void) st->operatortypes= sequencer_operatortypes; st->keymap= sequencer_keymap; st->dropboxes= sequencer_dropboxes; + st->refresh= sequencer_refresh; /* regions: main window */ art= MEM_callocN(sizeof(ARegionType), "spacetype sequencer region"); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 3c60a3b4cd7..8c2f473c65e 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -439,11 +439,10 @@ static void rna_Scene_preview_range_end_frame_set(PointerRNA *ptr, int value) data->r.pefra= value; } -static void rna_Scene_frame_update(bContext *C, PointerRNA *UNUSED(ptr)) +static void rna_Scene_frame_update(Main *bmain, Scene *UNUSED(current_scene), PointerRNA *ptr) { - //Scene *scene= ptr->id.data; - //ED_update_for_newframe(C); - sound_seek_scene(C); + Scene *scene= (Scene*)ptr->id.data; + sound_seek_scene(bmain, scene); } static PointerRNA rna_Scene_active_keying_set_get(PointerRNA *ptr) @@ -3298,7 +3297,6 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_range(prop, MINAFRAME, MAXFRAME); RNA_def_property_int_funcs(prop, NULL, "rna_Scene_current_frame_set", NULL); RNA_def_property_ui_text(prop, "Current Frame", "Current Frame, to update animation data from python frame_set() instead"); - RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_frame_update"); prop= RNA_def_property(srna, "frame_subframe", PROP_FLOAT, PROP_TIME); diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index be4adb405e2..59707f05e6f 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -68,13 +68,13 @@ static void rna_Screen_scene_set(PointerRNA *ptr, PointerRNA value) sc->newscene= value.data; } -static void rna_Screen_scene_update(bContext *C, PointerRNA *ptr) +static void rna_Screen_scene_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { bScreen *sc= (bScreen*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(sc->newscene) { - WM_event_add_notifier(C, NC_SCENE|ND_SCENEBROWSE, sc->newscene); + WM_main_add_notifier(NC_SCENE|ND_SCENEBROWSE, sc->newscene); sc->newscene= NULL; } } @@ -231,7 +231,6 @@ static void rna_def_screen(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_NULL); RNA_def_property_pointer_funcs(prop, NULL, "rna_Screen_scene_set", NULL, NULL); RNA_def_property_ui_text(prop, "Scene", "Active scene to be edited in the screen"); - RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, 0, "rna_Screen_scene_update"); /* collections */ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 35360910015..35115b40d59 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -805,10 +805,9 @@ static void rna_SpaceDopeSheetEditor_mode_update(Main *UNUSED(bmain), Scene *sce /* Space Graph Editor */ -static void rna_SpaceGraphEditor_display_mode_update(bContext *C, PointerRNA *UNUSED(ptr)) +static void rna_SpaceGraphEditor_display_mode_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { - //SpaceIpo *sipo= (SpaceIpo*)(ptr->data); - ScrArea *sa= CTX_wm_area(C); + ScrArea *sa= rna_area_from_space(ptr); /* after changing view mode, must force recalculation of F-Curve colors * which can only be achieved using refresh as opposed to redraw @@ -822,11 +821,10 @@ static int rna_SpaceGraphEditor_has_ghost_curves_get(PointerRNA *ptr) return (sipo->ghostCurves.first != NULL); } -static void rna_Sequencer_display_mode_update(bContext *C, PointerRNA *ptr) +static void rna_Sequencer_view_type_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { - int view = RNA_enum_get(ptr, "view_type"); - - ED_sequencer_update_view(C, view); + ScrArea *sa= rna_area_from_space(ptr); + ED_area_tag_refresh(sa); } static float rna_BackgroundImage_opacity_get(PointerRNA *ptr) @@ -1689,8 +1687,7 @@ static void rna_def_space_sequencer(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "view"); RNA_def_property_enum_items(prop, view_type_items); RNA_def_property_ui_text(prop, "View Type", "The type of the Sequencer view (sequencer, preview or both)"); - RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); - RNA_def_property_update(prop, 0, "rna_Sequencer_display_mode_update"); + RNA_def_property_update(prop, 0, "rna_Sequencer_view_type_update"); /* display type, fairly important */ prop= RNA_def_property(srna, "display_mode", PROP_ENUM, PROP_NONE); @@ -1987,7 +1984,6 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, mode_items); RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed"); - RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, "rna_SpaceGraphEditor_display_mode_update"); /* display */ diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 4c07a89a42f..a595b121d1a 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -482,13 +482,13 @@ static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value) win->newscreen= value.data; } -static void rna_Window_screen_update(bContext *C, PointerRNA *ptr) +static void rna_Window_screen_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { wmWindow *win= (wmWindow*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(win->newscreen) { - WM_event_add_notifier(C, NC_SCREEN|ND_SCREENBROWSE, win->newscreen); + WM_main_add_notifier(NC_SCREEN|ND_SCREENBROWSE, win->newscreen); win->newscreen= NULL; } } @@ -1454,7 +1454,6 @@ static void rna_def_window(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Screen", "Active screen showing in the window"); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_pointer_funcs(prop, NULL, "rna_Window_screen_set", NULL, NULL); - RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, 0, "rna_Window_screen_update"); } -- cgit v1.2.3 From 6e9ff495eb082aeb49e6a1da23a7827d3fcd0fde Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 5 Sep 2011 20:41:58 +0000 Subject: Add parser error handler. OpenCOLLADA is a validating parser, so is pretty strict about document form. The added error handler will print out any errors the parser finds. A pop-up will be shown too, advising the user to check the console for the error log. --- source/blender/collada/CMakeLists.txt | 2 + source/blender/collada/DocumentImporter.cpp | 9 ++- source/blender/collada/ErrorHandler.cpp | 90 ++++++++++++++++++++++ source/blender/collada/ErrorHandler.h | 58 ++++++++++++++ source/blender/collada/collada.cpp | 4 +- source/blender/windowmanager/intern/wm_operators.c | 4 +- 6 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 source/blender/collada/ErrorHandler.cpp create mode 100644 source/blender/collada/ErrorHandler.h (limited to 'source/blender') diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index ffe3d5f4f85..d73373aa901 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -51,6 +51,7 @@ set(SRC DocumentExporter.cpp DocumentImporter.cpp EffectExporter.cpp + ErrorHandler.cpp ExtraHandler.cpp ExtraTags.cpp GeometryExporter.cpp @@ -74,6 +75,7 @@ set(SRC DocumentExporter.h DocumentImporter.h EffectExporter.h + ErrorHandler.h ExtraHandler.h ExtraTags.h GeometryExporter.h diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 586c6ccfe82..366837421e3 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -76,6 +76,7 @@ #include "MEM_guardedalloc.h" #include "ExtraHandler.h" +#include "ErrorHandler.h" #include "DocumentImporter.h" #include "TransformReader.h" @@ -113,17 +114,19 @@ DocumentImporter::~DocumentImporter() bool DocumentImporter::import() { - /** TODO Add error handler (implement COLLADASaxFWL::IErrorHandler */ - COLLADASaxFWL::Loader loader; + ErrorHandler errorHandler; + COLLADASaxFWL::Loader loader(&errorHandler); COLLADAFW::Root root(&loader, this); ExtraHandler *ehandler = new ExtraHandler(this, &(this->anim_importer)); loader.registerExtraDataCallbackHandler(ehandler); - if (!root.loadDocument(mFilename)) return false; + if(errorHandler.hasError()) + return false; + /** TODO set up scene graph and such here */ mImportStage = Controller; diff --git a/source/blender/collada/ErrorHandler.cpp b/source/blender/collada/ErrorHandler.cpp new file mode 100644 index 00000000000..7108dbad18a --- /dev/null +++ b/source/blender/collada/ErrorHandler.cpp @@ -0,0 +1,90 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Nathan Letwory. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/collada/ErrorHandler.cpp + * \ingroup collada + */ +#include "ErrorHandler.h" +#include + +#include "COLLADASaxFWLIError.h" +#include "COLLADASaxFWLSaxParserError.h" +#include "COLLADASaxFWLSaxFWLError.h" + +#include "GeneratedSaxParserParserError.h" + +#include + +//-------------------------------------------------------------------- +ErrorHandler::ErrorHandler() : mError(false) +{ +} + +//-------------------------------------------------------------------- +ErrorHandler::~ErrorHandler() +{ +} + +//-------------------------------------------------------------------- +bool ErrorHandler::handleError( const COLLADASaxFWL::IError* error ) +{ + if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXPARSER ) + { + COLLADASaxFWL::SaxParserError* saxParserError = (COLLADASaxFWL::SaxParserError*) error; + const GeneratedSaxParser::ParserError& parserError = saxParserError->getError(); + + // Workaround to avoid wrong error + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_MIN_OCCURS_UNMATCHED) + { + if ( strcmp(parserError.getElement(), "effect") == 0 ) + { + return false; + } + } + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_SEQUENCE_PREVIOUS_SIBLING_NOT_PRESENT) + { + if ( (strcmp(parserError.getElement(), "extra") == 0) + && (strcmp(parserError.getAdditionalText().c_str(), "sibling: fx_profile_abstract") == 0)) + { + return false; + } + } + + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_COULD_NOT_OPEN_FILE) + { + std::cout << "Couldn't open file" << std::endl; + mError = true; + } + + std::cout << "Schema validation error: " << parserError.getErrorMessage() << std::endl; + mError = true; + } + else if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXFWL ) + { + COLLADASaxFWL::SaxFWLError* saxFWLError = (COLLADASaxFWL::SaxFWLError*) error; + std::cout << "Sax FWL Error: " << saxFWLError->getErrorMessage() << std::endl; + mError = true; + } + return false; +} diff --git a/source/blender/collada/ErrorHandler.h b/source/blender/collada/ErrorHandler.h new file mode 100644 index 00000000000..4064abb89f6 --- /dev/null +++ b/source/blender/collada/ErrorHandler.h @@ -0,0 +1,58 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Nathan Letwory. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/collada/ErrorHandler.h + * \ingroup collada + */ + +#include +#include +#include +#include // sort() + +#include "COLLADASaxFWLIErrorHandler.h" + +/** \brief Handler class for parser errors + */ +class ErrorHandler : public COLLADASaxFWL::IErrorHandler +{ +public: + /** Constructor. */ + ErrorHandler(); + + /** Destructor. */ + virtual ~ErrorHandler(); + /** handle any error thrown by the parser. */ + bool virtual handleError(const COLLADASaxFWL::IError* error); + /** True if there was an error during parsing. */ + bool hasError() { return mError; } +private: + /** Disable default copy ctor. */ + ErrorHandler( const ErrorHandler& pre ); + /** Disable default assignment operator. */ + const ErrorHandler& operator= ( const ErrorHandler& pre ); + /** Hold error status. */ + bool mError; +}; + diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index c15e608c360..4caca20531f 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -46,9 +46,9 @@ extern "C" int collada_import(bContext *C, const char *filepath) { DocumentImporter imp (C, filepath); - imp.import(); + if(imp.import()) return 1; - return 1; + return 0; } int collada_export(Scene *sce, const char *filepath, int selected) diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 0e0203543a4..68a4eebf93f 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2082,7 +2082,9 @@ static int wm_collada_import_exec(bContext *C, wmOperator *op) } RNA_string_get(op->ptr, "filepath", filename); - collada_import(C, filename); + if(collada_import(C, filename)) return OPERATOR_FINISHED; + + BKE_report(op->reports, RPT_ERROR, "Errors found during parsing COLLADA document. Please see console for error log."); return OPERATOR_FINISHED; } -- cgit v1.2.3 From 8e0fe8bff72e2dc2926618577eaffdd3417a8304 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Mon, 5 Sep 2011 21:01:50 +0000 Subject: Merged the particles-2010 branch with node improvements into trunk. This branch adds mostly organizational improvements to the node system by renaming the node folders and files. A couple of internal features have been added too. Detailed information can be found on the wiki page: http://wiki.blender.org/index.php/User:Phonybone/Particles2010 --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_node.h | 344 +- source/blender/blenkernel/intern/material.c | 9 +- source/blender/blenkernel/intern/node.c | 3503 +++++--------------- source/blender/blenkernel/intern/texture.c | 4 +- source/blender/blenlib/BLI_math_matrix.h | 3 + source/blender/blenlib/BLI_math_vector.h | 1 + source/blender/blenlib/intern/math_matrix.c | 18 + source/blender/blenlib/intern/math_vector.c | 8 + source/blender/blenloader/CMakeLists.txt | 1 + source/blender/blenloader/SConscript | 2 +- source/blender/blenloader/intern/readfile.c | 255 +- source/blender/blenloader/intern/writefile.c | 26 +- source/blender/editors/include/ED_node.h | 5 +- source/blender/editors/sculpt_paint/paint_image.c | 5 +- source/blender/editors/sculpt_paint/sculpt.c | 5 +- source/blender/editors/space_node/drawnode.c | 750 ++++- source/blender/editors/space_node/node_buttons.c | 4 +- source/blender/editors/space_node/node_draw.c | 679 +--- source/blender/editors/space_node/node_edit.c | 672 ++-- source/blender/editors/space_node/node_header.c | 192 +- source/blender/editors/space_node/node_intern.h | 15 +- source/blender/editors/space_node/node_ops.c | 3 +- source/blender/editors/space_node/node_select.c | 24 +- source/blender/editors/space_node/node_state.c | 34 +- source/blender/editors/space_node/space_node.c | 22 +- .../editors/transform/transform_conversions.c | 19 +- source/blender/gpu/SConscript | 2 +- source/blender/makesdna/DNA_node_types.h | 171 +- source/blender/makesrna/RNA_access.h | 8 +- source/blender/makesrna/RNA_enum_types.h | 2 + source/blender/makesrna/RNA_types.h | 5 +- source/blender/makesrna/SConscript | 1 + source/blender/makesrna/intern/rna_access.c | 11 + source/blender/makesrna/intern/rna_main_api.c | 4 +- source/blender/makesrna/intern/rna_nodetree.c | 439 ++- .../blender/makesrna/intern/rna_nodetree_types.h | 10 +- source/blender/makesrna/intern/rna_object.c | 14 +- source/blender/makesrna/intern/rna_rna.c | 36 + source/blender/makesrna/intern/rna_space.c | 33 +- source/blender/modifiers/CMakeLists.txt | 1 + source/blender/modifiers/SConscript | 2 +- source/blender/nodes/CMP_node.h | 117 - source/blender/nodes/CMakeLists.txt | 230 +- source/blender/nodes/NOD_composite.h | 123 + source/blender/nodes/NOD_shader.h | 78 + source/blender/nodes/NOD_socket.h | 89 + source/blender/nodes/NOD_texture.h | 88 + source/blender/nodes/SConscript | 8 +- source/blender/nodes/SHD_node.h | 72 - source/blender/nodes/TEX_node.h | 82 - .../blender/nodes/composite/node_composite_tree.c | 811 +++++ .../blender/nodes/composite/node_composite_util.c | 1413 ++++++++ .../blender/nodes/composite/node_composite_util.h | 210 ++ .../composite/nodes/node_composite_alphaOver.c | 163 + .../composite/nodes/node_composite_bilateralblur.c | 271 ++ .../nodes/composite/nodes/node_composite_blur.c | 736 ++++ .../composite/nodes/node_composite_brightness.c | 110 + .../composite/nodes/node_composite_channelMatte.c | 217 ++ .../composite/nodes/node_composite_chromaMatte.c | 207 ++ .../composite/nodes/node_composite_colorMatte.c | 143 + .../composite/nodes/node_composite_colorSpill.c | 341 ++ .../composite/nodes/node_composite_colorbalance.c | 201 ++ .../nodes/composite/nodes/node_composite_common.c | 373 +++ .../composite/nodes/node_composite_composite.c | 113 + .../nodes/composite/nodes/node_composite_crop.c | 129 + .../nodes/composite/nodes/node_composite_curves.c | 209 ++ .../nodes/composite/nodes/node_composite_defocus.c | 892 +++++ .../composite/nodes/node_composite_diffMatte.c | 151 + .../nodes/composite/nodes/node_composite_dilate.c | 163 + .../nodes/node_composite_directionalblur.c | 146 + .../composite/nodes/node_composite_displace.c | 199 ++ .../composite/nodes/node_composite_distanceMatte.c | 148 + .../nodes/composite/nodes/node_composite_filter.c | 239 ++ .../nodes/composite/nodes/node_composite_flip.c | 106 + .../nodes/composite/nodes/node_composite_gamma.c | 90 + .../nodes/composite/nodes/node_composite_glare.c | 506 +++ .../composite/nodes/node_composite_hueSatVal.c | 122 + .../composite/nodes/node_composite_huecorrect.c | 170 + .../nodes/composite/nodes/node_composite_idMask.c | 125 + .../nodes/composite/nodes/node_composite_image.c | 452 +++ .../nodes/composite/nodes/node_composite_invert.c | 135 + .../composite/nodes/node_composite_lensdist.c | 207 ++ .../nodes/composite/nodes/node_composite_levels.c | 339 ++ .../composite/nodes/node_composite_lummaMatte.c | 125 + .../nodes/composite/nodes/node_composite_mapUV.c | 180 + .../composite/nodes/node_composite_mapValue.c | 103 + .../nodes/composite/nodes/node_composite_math.c | 214 ++ .../nodes/composite/nodes/node_composite_mixrgb.c | 99 + .../nodes/composite/nodes/node_composite_normal.c | 109 + .../composite/nodes/node_composite_normalize.c | 117 + .../composite/nodes/node_composite_outputFile.c | 127 + .../composite/nodes/node_composite_premulkey.c | 78 + .../nodes/composite/nodes/node_composite_rgb.c | 77 + .../nodes/composite/nodes/node_composite_rotate.c | 142 + .../nodes/composite/nodes/node_composite_scale.c | 134 + .../composite/nodes/node_composite_sepcombHSVA.c | 187 ++ .../composite/nodes/node_composite_sepcombRGBA.c | 162 + .../composite/nodes/node_composite_sepcombYCCA.c | 313 ++ .../composite/nodes/node_composite_sepcombYUVA.c | 187 ++ .../composite/nodes/node_composite_setalpha.c | 89 + .../composite/nodes/node_composite_splitViewer.c | 171 + .../nodes/composite/nodes/node_composite_texture.c | 160 + .../nodes/composite/nodes/node_composite_tonemap.c | 179 + .../composite/nodes/node_composite_translate.c | 76 + .../composite/nodes/node_composite_valToRgb.c | 152 + .../nodes/composite/nodes/node_composite_value.c | 72 + .../nodes/composite/nodes/node_composite_vecBlur.c | 113 + .../nodes/composite/nodes/node_composite_viewer.c | 148 + .../composite/nodes/node_composite_zcombine.c | 238 ++ .../blender/nodes/intern/CMP_nodes/CMP_alphaOver.c | 163 - .../nodes/intern/CMP_nodes/CMP_bilateralblur.c | 271 -- source/blender/nodes/intern/CMP_nodes/CMP_blur.c | 736 ---- .../nodes/intern/CMP_nodes/CMP_brightness.c | 110 - .../nodes/intern/CMP_nodes/CMP_channelMatte.c | 217 -- .../nodes/intern/CMP_nodes/CMP_chromaMatte.c | 207 -- .../nodes/intern/CMP_nodes/CMP_colorMatte.c | 143 - .../nodes/intern/CMP_nodes/CMP_colorSpill.c | 341 -- .../nodes/intern/CMP_nodes/CMP_colorbalance.c | 201 -- .../blender/nodes/intern/CMP_nodes/CMP_composite.c | 113 - source/blender/nodes/intern/CMP_nodes/CMP_crop.c | 129 - source/blender/nodes/intern/CMP_nodes/CMP_curves.c | 209 -- .../blender/nodes/intern/CMP_nodes/CMP_defocus.c | 892 ----- .../blender/nodes/intern/CMP_nodes/CMP_diffMatte.c | 151 - source/blender/nodes/intern/CMP_nodes/CMP_dilate.c | 163 - .../nodes/intern/CMP_nodes/CMP_directionalblur.c | 146 - .../blender/nodes/intern/CMP_nodes/CMP_displace.c | 199 -- .../nodes/intern/CMP_nodes/CMP_distanceMatte.c | 148 - source/blender/nodes/intern/CMP_nodes/CMP_filter.c | 239 -- source/blender/nodes/intern/CMP_nodes/CMP_flip.c | 106 - source/blender/nodes/intern/CMP_nodes/CMP_gamma.c | 90 - source/blender/nodes/intern/CMP_nodes/CMP_glare.c | 506 --- .../blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c | 122 - .../nodes/intern/CMP_nodes/CMP_huecorrect.c | 170 - source/blender/nodes/intern/CMP_nodes/CMP_idMask.c | 125 - source/blender/nodes/intern/CMP_nodes/CMP_image.c | 452 --- source/blender/nodes/intern/CMP_nodes/CMP_invert.c | 135 - .../blender/nodes/intern/CMP_nodes/CMP_lensdist.c | 207 -- source/blender/nodes/intern/CMP_nodes/CMP_levels.c | 350 -- .../nodes/intern/CMP_nodes/CMP_lummaMatte.c | 125 - source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c | 180 - .../blender/nodes/intern/CMP_nodes/CMP_mapValue.c | 103 - source/blender/nodes/intern/CMP_nodes/CMP_math.c | 215 -- source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c | 99 - source/blender/nodes/intern/CMP_nodes/CMP_normal.c | 97 - .../blender/nodes/intern/CMP_nodes/CMP_normalize.c | 117 - .../nodes/intern/CMP_nodes/CMP_outputFile.c | 127 - .../blender/nodes/intern/CMP_nodes/CMP_premulkey.c | 78 - source/blender/nodes/intern/CMP_nodes/CMP_rgb.c | 64 - source/blender/nodes/intern/CMP_nodes/CMP_rotate.c | 142 - source/blender/nodes/intern/CMP_nodes/CMP_scale.c | 134 - .../nodes/intern/CMP_nodes/CMP_sepcombHSVA.c | 187 -- .../nodes/intern/CMP_nodes/CMP_sepcombRGBA.c | 162 - .../nodes/intern/CMP_nodes/CMP_sepcombYCCA.c | 313 -- .../nodes/intern/CMP_nodes/CMP_sepcombYUVA.c | 187 -- .../blender/nodes/intern/CMP_nodes/CMP_setalpha.c | 89 - .../nodes/intern/CMP_nodes/CMP_splitViewer.c | 171 - .../blender/nodes/intern/CMP_nodes/CMP_texture.c | 160 - .../blender/nodes/intern/CMP_nodes/CMP_tonemap.c | 179 - .../blender/nodes/intern/CMP_nodes/CMP_translate.c | 76 - .../blender/nodes/intern/CMP_nodes/CMP_valToRgb.c | 152 - source/blender/nodes/intern/CMP_nodes/CMP_value.c | 62 - .../blender/nodes/intern/CMP_nodes/CMP_vecBlur.c | 113 - source/blender/nodes/intern/CMP_nodes/CMP_viewer.c | 150 - .../blender/nodes/intern/CMP_nodes/CMP_zcombine.c | 238 -- source/blender/nodes/intern/CMP_util.c | 1413 -------- source/blender/nodes/intern/CMP_util.h | 211 -- source/blender/nodes/intern/SHD_nodes/SHD_camera.c | 76 - source/blender/nodes/intern/SHD_nodes/SHD_curves.c | 142 - .../blender/nodes/intern/SHD_nodes/SHD_dynamic.c | 792 ----- source/blender/nodes/intern/SHD_nodes/SHD_geom.c | 153 - .../blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c | 99 - source/blender/nodes/intern/SHD_nodes/SHD_invert.c | 90 - .../blender/nodes/intern/SHD_nodes/SHD_mapping.c | 104 - .../blender/nodes/intern/SHD_nodes/SHD_material.c | 336 -- source/blender/nodes/intern/SHD_nodes/SHD_math.c | 256 -- source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c | 91 - source/blender/nodes/intern/SHD_nodes/SHD_normal.c | 83 - source/blender/nodes/intern/SHD_nodes/SHD_output.c | 96 - source/blender/nodes/intern/SHD_nodes/SHD_rgb.c | 70 - .../nodes/intern/SHD_nodes/SHD_sepcombRGB.c | 112 - .../blender/nodes/intern/SHD_nodes/SHD_squeeze.c | 81 - .../blender/nodes/intern/SHD_nodes/SHD_texture.c | 149 - .../blender/nodes/intern/SHD_nodes/SHD_valToRgb.c | 129 - source/blender/nodes/intern/SHD_nodes/SHD_value.c | 71 - .../blender/nodes/intern/SHD_nodes/SHD_vectMath.c | 150 - source/blender/nodes/intern/SHD_util.c | 219 -- source/blender/nodes/intern/SHD_util.h | 125 - source/blender/nodes/intern/TEX_nodes/TEX_at.c | 72 - source/blender/nodes/intern/TEX_nodes/TEX_bricks.c | 133 - .../blender/nodes/intern/TEX_nodes/TEX_checker.c | 83 - .../blender/nodes/intern/TEX_nodes/TEX_compose.c | 71 - source/blender/nodes/intern/TEX_nodes/TEX_coord.c | 65 - source/blender/nodes/intern/TEX_nodes/TEX_curves.c | 127 - .../blender/nodes/intern/TEX_nodes/TEX_decompose.c | 92 - .../blender/nodes/intern/TEX_nodes/TEX_distance.c | 76 - .../blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c | 106 - source/blender/nodes/intern/TEX_nodes/TEX_image.c | 112 - source/blender/nodes/intern/TEX_nodes/TEX_invert.c | 78 - source/blender/nodes/intern/TEX_nodes/TEX_math.c | 201 -- source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c | 79 - source/blender/nodes/intern/TEX_nodes/TEX_output.c | 173 - source/blender/nodes/intern/TEX_nodes/TEX_proc.c | 325 -- source/blender/nodes/intern/TEX_nodes/TEX_rotate.c | 109 - source/blender/nodes/intern/TEX_nodes/TEX_scale.c | 82 - .../blender/nodes/intern/TEX_nodes/TEX_texture.c | 103 - .../blender/nodes/intern/TEX_nodes/TEX_translate.c | 78 - .../blender/nodes/intern/TEX_nodes/TEX_valToNor.c | 94 - .../blender/nodes/intern/TEX_nodes/TEX_valToRgb.c | 116 - source/blender/nodes/intern/TEX_nodes/TEX_viewer.c | 70 - source/blender/nodes/intern/TEX_util.c | 214 -- source/blender/nodes/intern/TEX_util.h | 126 - source/blender/nodes/intern/node_common.c | 982 ++++++ source/blender/nodes/intern/node_common.h | 65 + source/blender/nodes/intern/node_exec.c | 308 ++ source/blender/nodes/intern/node_exec.h | 89 + source/blender/nodes/intern/node_socket.c | 428 +++ source/blender/nodes/intern/node_util.c | 18 +- source/blender/nodes/intern/node_util.h | 13 + source/blender/nodes/shader/node_shader_tree.c | 212 ++ source/blender/nodes/shader/node_shader_util.c | 287 ++ source/blender/nodes/shader/node_shader_util.h | 130 + .../nodes/shader/nodes/node_shader_camera.c | 76 + .../nodes/shader/nodes/node_shader_common.c | 327 ++ .../nodes/shader/nodes/node_shader_curves.c | 142 + .../nodes/shader/nodes/node_shader_dynamic.c | 792 +++++ .../blender/nodes/shader/nodes/node_shader_geom.c | 153 + .../nodes/shader/nodes/node_shader_hueSatVal.c | 99 + .../nodes/shader/nodes/node_shader_invert.c | 90 + .../nodes/shader/nodes/node_shader_mapping.c | 104 + .../nodes/shader/nodes/node_shader_material.c | 336 ++ .../blender/nodes/shader/nodes/node_shader_math.c | 256 ++ .../nodes/shader/nodes/node_shader_mixRgb.c | 91 + .../nodes/shader/nodes/node_shader_normal.c | 95 + .../nodes/shader/nodes/node_shader_output.c | 96 + .../blender/nodes/shader/nodes/node_shader_rgb.c | 84 + .../nodes/shader/nodes/node_shader_sepcombRGB.c | 112 + .../nodes/shader/nodes/node_shader_squeeze.c | 81 + .../nodes/shader/nodes/node_shader_texture.c | 149 + .../nodes/shader/nodes/node_shader_valToRgb.c | 129 + .../blender/nodes/shader/nodes/node_shader_value.c | 82 + .../nodes/shader/nodes/node_shader_vectMath.c | 150 + source/blender/nodes/texture/node_texture_tree.c | 237 ++ source/blender/nodes/texture/node_texture_util.c | 172 + source/blender/nodes/texture/node_texture_util.h | 123 + .../blender/nodes/texture/nodes/node_texture_at.c | 72 + .../nodes/texture/nodes/node_texture_bricks.c | 134 + .../nodes/texture/nodes/node_texture_checker.c | 83 + .../nodes/texture/nodes/node_texture_common.c | 271 ++ .../nodes/texture/nodes/node_texture_compose.c | 71 + .../nodes/texture/nodes/node_texture_coord.c | 65 + .../nodes/texture/nodes/node_texture_curves.c | 127 + .../nodes/texture/nodes/node_texture_decompose.c | 92 + .../nodes/texture/nodes/node_texture_distance.c | 76 + .../nodes/texture/nodes/node_texture_hueSatVal.c | 106 + .../nodes/texture/nodes/node_texture_image.c | 112 + .../nodes/texture/nodes/node_texture_invert.c | 78 + .../nodes/texture/nodes/node_texture_math.c | 201 ++ .../nodes/texture/nodes/node_texture_mixRgb.c | 79 + .../nodes/texture/nodes/node_texture_output.c | 173 + .../nodes/texture/nodes/node_texture_proc.c | 326 ++ .../nodes/texture/nodes/node_texture_rotate.c | 109 + .../nodes/texture/nodes/node_texture_scale.c | 82 + .../nodes/texture/nodes/node_texture_texture.c | 103 + .../nodes/texture/nodes/node_texture_translate.c | 78 + .../nodes/texture/nodes/node_texture_valToNor.c | 94 + .../nodes/texture/nodes/node_texture_valToRgb.c | 116 + .../nodes/texture/nodes/node_texture_viewer.c | 70 + .../blender/render/intern/source/render_texture.c | 6 +- 269 files changed, 26817 insertions(+), 22829 deletions(-) delete mode 100644 source/blender/nodes/CMP_node.h create mode 100644 source/blender/nodes/NOD_composite.h create mode 100644 source/blender/nodes/NOD_shader.h create mode 100644 source/blender/nodes/NOD_socket.h create mode 100644 source/blender/nodes/NOD_texture.h delete mode 100644 source/blender/nodes/SHD_node.h delete mode 100644 source/blender/nodes/TEX_node.h create mode 100644 source/blender/nodes/composite/node_composite_tree.c create mode 100644 source/blender/nodes/composite/node_composite_util.c create mode 100644 source/blender/nodes/composite/node_composite_util.h create mode 100644 source/blender/nodes/composite/nodes/node_composite_alphaOver.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_bilateralblur.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_blur.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_brightness.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_channelMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_chromaMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_colorMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_colorSpill.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_colorbalance.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_common.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_composite.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_crop.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_curves.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_defocus.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_diffMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_dilate.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_directionalblur.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_displace.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_distanceMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_filter.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_flip.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_gamma.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_glare.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_hueSatVal.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_huecorrect.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_idMask.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_image.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_invert.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_lensdist.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_levels.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_lummaMatte.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_mapUV.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_mapValue.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_math.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_mixrgb.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_normal.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_normalize.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_outputFile.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_premulkey.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_rgb.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_rotate.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_scale.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_setalpha.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_splitViewer.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_texture.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_tonemap.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_translate.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_valToRgb.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_value.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_vecBlur.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_viewer.c create mode 100644 source/blender/nodes/composite/nodes/node_composite_zcombine.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_blur.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_brightness.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_composite.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_crop.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_curves.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_defocus.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_dilate.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_displace.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_filter.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_flip.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_gamma.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_glare.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_idMask.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_image.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_invert.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_levels.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_math.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_normal.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_normalize.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_rgb.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_rotate.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_scale.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_texture.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_translate.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_value.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_viewer.c delete mode 100644 source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c delete mode 100644 source/blender/nodes/intern/CMP_util.c delete mode 100644 source/blender/nodes/intern/CMP_util.h delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_camera.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_curves.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_geom.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_invert.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_mapping.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_material.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_math.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_normal.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_output.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_rgb.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_texture.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_value.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c delete mode 100644 source/blender/nodes/intern/SHD_util.c delete mode 100644 source/blender/nodes/intern/SHD_util.h delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_at.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_bricks.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_checker.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_compose.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_coord.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_curves.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_decompose.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_distance.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_image.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_invert.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_math.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_output.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_proc.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_rotate.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_scale.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_texture.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_translate.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c delete mode 100644 source/blender/nodes/intern/TEX_nodes/TEX_viewer.c delete mode 100644 source/blender/nodes/intern/TEX_util.c delete mode 100644 source/blender/nodes/intern/TEX_util.h create mode 100644 source/blender/nodes/intern/node_common.c create mode 100644 source/blender/nodes/intern/node_common.h create mode 100644 source/blender/nodes/intern/node_exec.c create mode 100644 source/blender/nodes/intern/node_exec.h create mode 100644 source/blender/nodes/intern/node_socket.c create mode 100644 source/blender/nodes/shader/node_shader_tree.c create mode 100644 source/blender/nodes/shader/node_shader_util.c create mode 100644 source/blender/nodes/shader/node_shader_util.h create mode 100644 source/blender/nodes/shader/nodes/node_shader_camera.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_common.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_curves.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_dynamic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_geom.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_hueSatVal.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_invert.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_mapping.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_material.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_math.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_mixRgb.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_normal.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_rgb.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_squeeze.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_texture.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_valToRgb.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_value.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_vectMath.c create mode 100644 source/blender/nodes/texture/node_texture_tree.c create mode 100644 source/blender/nodes/texture/node_texture_util.c create mode 100644 source/blender/nodes/texture/node_texture_util.h create mode 100644 source/blender/nodes/texture/nodes/node_texture_at.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_bricks.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_checker.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_common.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_compose.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_coord.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_curves.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_decompose.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_distance.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_hueSatVal.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_image.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_invert.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_math.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_mixRgb.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_output.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_proc.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_rotate.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_scale.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_texture.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_translate.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_valToNor.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_valToRgb.c create mode 100644 source/blender/nodes/texture/nodes/node_texture_viewer.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 0f19cfbc481..742240d53b5 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,7 +44,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 259 -#define BLENDER_SUBVERSION 1 +#define BLENDER_SUBVERSION 2 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index e44b5d96852..7207fb7d0fb 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -37,6 +37,10 @@ * \ingroup bke */ +#include "DNA_listBase.h" + +#include "RNA_types.h" + /* not very important, but the stack solver likes to know a maximum */ #define MAX_SOCKET 64 @@ -46,63 +50,151 @@ struct bNodeLink; struct bNodeSocket; struct bNodeStack; struct bNodeTree; +struct bNodeTreeExec; struct GPUMaterial; struct GPUNode; struct GPUNodeStack; struct ID; struct ListBase; struct Main; +struct uiBlock; +struct uiLayout; struct MTex; struct PointerRNA; struct rctf; struct RenderData; struct Scene; struct Tex; -struct uiLayout; - +struct SpaceNode; +struct ARegion; +struct Object; /* ************** NODE TYPE DEFINITIONS ***** */ -typedef struct bNodeSocketType { +/** Compact definition of a node socket. + * Can be used to quickly define a list of static sockets for a node, + * which are added to each new node of that type. + * + * \deprecated New nodes should add default sockets in the initialization + * function instead. This struct is mostly kept for old nodes and should + * be removed some time. + */ +typedef struct bNodeSocketTemplate { int type, limit; - const char *name; - float val1, val2, val3, val4; /* default alloc value for inputs */ - float min, max; /* default range for inputs */ + char name[32]; + float val1, val2, val3, val4; /* default alloc value for inputs */ + float min, max; + PropertySubType subtype; /* after this line is used internal only */ - struct bNodeSocket *sock; /* used during verify_types */ + struct bNodeSocket *sock; /* used to hold verified socket */ +} bNodeSocketTemplate; + +typedef void (*NodeSocketButtonFunction)(const struct bContext *C, struct uiBlock *block, + struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock, + const char *name, int x, int y, int width); + +/** Defines a socket type. + * Defines the appearance and behavior of a socket in the UI. + */ +typedef struct bNodeSocketType { + int type; + char ui_name[32]; + char ui_description[128]; + int ui_icon; + char ui_color[4]; + + const char *value_structname; + int value_structsize; + + NodeSocketButtonFunction buttonfunc; } bNodeSocketType; +/** Template for creating a node. + * Stored required parameters to make a new node of a specific type. + */ +typedef struct bNodeTemplate { + int type; + + /* group tree */ + struct bNodeTree *ngroup; +} bNodeTemplate; + +/** Defines a node type. + * Initial attributes and constants for a node as well as callback functions + * implementing the node behavior. + */ typedef struct bNodeType { void *next,*prev; + short needs_free; /* set for allocated types that need to be freed */ + int type; - const char *name; /* can be allocated too */ + char name[32]; float width, minwidth, maxwidth; + float height, minheight, maxheight; short nclass, flag; - bNodeSocketType *inputs, *outputs; + /* templates for static sockets */ + bNodeSocketTemplate *inputs, *outputs; char storagename[64]; /* struct name for DNA */ - void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **); - - /* this line is set on startup of blender */ + /// Main draw function for the node. + void (*drawfunc)(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node); + /// Updates the node geometry attributes according to internal state before actual drawing. + void (*drawupdatefunc)(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node); + /// Draw the option buttons on the node. void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + /// Additional parameters in the side panel. void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr); + /// Optional custom label function for the node header. const char *(*labelfunc)(struct bNode *); - - void (*initfunc)(struct bNode *); - void (*freestoragefunc)(struct bNode *); - void (*copystoragefunc)(struct bNode *, struct bNode *); + /// Optional custom resize handle polling. + int (*resize_area_func)(struct bNode *node, int x, int y); - /* for use with dynamic typedefs */ - ID *id; - void *pynode; /* holds pointer to python script */ - void *pydict; /* holds pointer to python script dictionary (scope)*/ - + /// Called when the node is updated in the editor. + void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node); + /// Check and update if internal ID data has changed. + void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id); + + /// Initialize a new node instance of this type after creation. + void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp); + /// Free the custom storage data. + void (*freestoragefunc)(struct bNode *node); + /// Make a copy of the custom storage data. + void (*copystoragefunc)(struct bNode *node, struct bNode *target); + + /// Create a template from an existing node. + struct bNodeTemplate (*templatefunc)(struct bNode *); + /** If a node can be made from the template in the given node tree. + * \example Node groups can not be created inside their own node tree. + */ + int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp); + + /// Initialize a node tree associated to this node type. + void (*inittreefunc)(struct bNodeTree *ntree); + /// Update a node tree associated to this node type. + void (*updatetreefunc)(struct bNodeTree *ntree); + + /* group edit callbacks for operators */ + /* XXX this is going to be changed as required by the UI */ + struct bNodeTree *(*group_edit_get)(struct bNode *node); + struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit); + void (*group_edit_clear)(struct bNode *node); + + + /* **** execution callbacks **** */ + void *(*initexecfunc)(struct bNode *node); + void (*freeexecfunc)(struct bNode *node, void *nodedata); + void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **); + /* XXX this alternative exec function has been added to avoid changing all node types. + * when a final generic version of execution code is defined, this will be changed anyway + */ + void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **); /* gpu */ int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out); - + /* extended gpu function */ + int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node, void *nodedata, struct GPUNodeStack *in, struct GPUNodeStack *out); } bNodeType; /* node->exec, now in use for composites (#define for break is same as ready yes) */ @@ -113,72 +205,124 @@ typedef struct bNodeType { #define NODE_FREEBUFS 8 #define NODE_SKIPPED 16 +/* sim_exec return value */ +#define NODE_EXEC_FINISHED 0 +#define NODE_EXEC_SUSPEND 1 + /* nodetype->nclass, for add-menu and themes */ -#define NODE_CLASS_INPUT 0 -#define NODE_CLASS_OUTPUT 1 -#define NODE_CLASS_OP_COLOR 3 -#define NODE_CLASS_OP_VECTOR 4 -#define NODE_CLASS_OP_FILTER 5 -#define NODE_CLASS_GROUP 6 -#define NODE_CLASS_FILE 7 -#define NODE_CLASS_CONVERTOR 8 -#define NODE_CLASS_MATTE 9 -#define NODE_CLASS_DISTORT 10 -#define NODE_CLASS_OP_DYNAMIC 11 -#define NODE_CLASS_PATTERN 12 -#define NODE_CLASS_TEXTURE 13 +#define NODE_CLASS_INPUT 0 +#define NODE_CLASS_OUTPUT 1 +#define NODE_CLASS_OP_COLOR 3 +#define NODE_CLASS_OP_VECTOR 4 +#define NODE_CLASS_OP_FILTER 5 +#define NODE_CLASS_GROUP 6 +#define NODE_CLASS_FILE 7 +#define NODE_CLASS_CONVERTOR 8 +#define NODE_CLASS_MATTE 9 +#define NODE_CLASS_DISTORT 10 +#define NODE_CLASS_OP_DYNAMIC 11 +#define NODE_CLASS_PATTERN 12 +#define NODE_CLASS_TEXTURE 13 +#define NODE_CLASS_EXECUTION 14 +#define NODE_CLASS_GETDATA 15 +#define NODE_CLASS_SETDATA 16 +#define NODE_CLASS_MATH 17 +#define NODE_CLASS_MATH_VECTOR 18 +#define NODE_CLASS_MATH_ROTATION 19 +#define NODE_CLASS_PARTICLES 25 +#define NODE_CLASS_TRANSFORM 30 +#define NODE_CLASS_COMBINE 31 +#define NODE_CLASS_LAYOUT 100 /* enum values for input/output */ #define SOCK_IN 1 #define SOCK_OUT 2 +struct bNodeTreeExec; + +typedef void (*bNodeTreeCallback)(void *calldata, struct ID *owner_id, struct bNodeTree *ntree); +typedef struct bNodeTreeType +{ + int type; /* type identifier */ + char idname[64]; /* id name for RNA identification */ + + ListBase node_types; /* type definitions */ + + /* callbacks */ + void (*free_cache)(struct bNodeTree *ntree); + void (*free_node_cache)(struct bNodeTree *ntree, struct bNode *node); + void (*foreach_nodetree)(struct Main *main, void *calldata, bNodeTreeCallback func); /* iteration over all node trees */ + + /* calls allowing threaded composite */ + void (*localize)(struct bNodeTree *localtree, struct bNodeTree *ntree); + void (*local_sync)(struct bNodeTree *localtree, struct bNodeTree *ntree); + void (*local_merge)(struct bNodeTree *localtree, struct bNodeTree *ntree); + + /* Tree update. Overrides nodetype->updatetreefunc! */ + void (*update)(struct bNodeTree *ntree); + /* Node update. Overrides nodetype->updatefunc! */ + void (*update_node)(struct bNodeTree *ntree, struct bNode *node); + + int (*validate_link)(struct bNodeTree *ntree, struct bNodeLink *link); +} bNodeTreeType; + /* ************** GENERIC API, TREES *************** */ -void ntreeVerifyTypes(struct bNodeTree *ntree); +struct bNodeTreeType *ntreeGetType(int type); +struct bNodeType *ntreeGetNodeType(struct bNodeTree *ntree); +struct bNodeSocketType *ntreeGetSocketType(int type); -struct bNodeTree *ntreeAddTree(const char *name, int type, const short is_group); +struct bNodeTree *ntreeAddTree(const char *name, int type, int nodetype); void ntreeInitTypes(struct bNodeTree *ntree); -//void ntreeMakeGroupSockets(struct bNodeTree *ntree); -void ntreeUpdateType(struct bNodeTree *ntree, struct bNodeType *ntype); void ntreeFreeTree(struct bNodeTree *ntree); struct bNodeTree *ntreeCopyTree(struct bNodeTree *ntree); void ntreeSwitchID(struct bNodeTree *ntree, struct ID *sce_from, struct ID *sce_to); void ntreeMakeLocal(struct bNodeTree *ntree); +int ntreeHasType(struct bNodeTree *ntree, int type); void ntreeSocketUseFlags(struct bNodeTree *ntree); -void ntreeSolveOrder(struct bNodeTree *ntree); +void ntreeUpdateTree(struct bNodeTree *ntree); +/* XXX Currently each tree update call does call to ntreeVerifyNodes too. + * Some day this should be replaced by a decent depsgraph automatism! + */ +void ntreeVerifyNodes(struct Main *main, struct ID *id); -void ntreeBeginExecTree(struct bNodeTree *ntree); -void ntreeExecTree(struct bNodeTree *ntree, void *callerdata, int thread); -void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews); -void ntreeEndExecTree(struct bNodeTree *ntree); +void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, int *totnodes); +/* XXX old trees handle output flags automatically based on special output node types and last active selection. + * new tree types have a per-output socket flag to indicate the final output to use explicitly. + */ +void ntreeSetOutput(struct bNodeTree *ntree); void ntreeInitPreview(struct bNodeTree *, int xsize, int ysize); void ntreeClearPreview(struct bNodeTree *ntree); void ntreeFreeCache(struct bNodeTree *ntree); - - /* calls allowing threaded composite */ + +int ntreeNodeExists(struct bNodeTree *ntree, struct bNode *testnode); +int ntreeOutputExists(struct bNode *node, struct bNodeSocket *testsock); struct bNodeTree *ntreeLocalize(struct bNodeTree *ntree); void ntreeLocalSync(struct bNodeTree *localtree, struct bNodeTree *ntree); void ntreeLocalMerge(struct bNodeTree *localtree, struct bNodeTree *ntree); /* ************** GENERIC API, NODES *************** */ -void nodeVerifyType(struct bNodeTree *ntree, struct bNode *node); +struct bNodeSocket *nodeAddSocket(struct bNodeTree *ntree, struct bNode *node, int in_out, const char *name, int type); +struct bNodeSocket *nodeInsertSocket(struct bNodeTree *ntree, struct bNode *node, int in_out, struct bNodeSocket *next_sock, const char *name, int type); +void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock); +void nodeRemoveAllSockets(struct bNodeTree *ntree, struct bNode *node); void nodeAddToPreview(struct bNode *, float *, int, int, int); +struct bNode *nodeAddNode(struct bNodeTree *ntree, struct bNodeTemplate *ntemp); void nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node); void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node); -void nodeAddSockets(struct bNode *node, struct bNodeType *ntype); -struct bNode *nodeAddNodeType(struct bNodeTree *ntree, int type, struct bNodeTree *ngroup, struct ID *id); -void nodeRegisterType(struct ListBase *typelist, const struct bNodeType *ntype) ; -void nodeUpdateType(struct bNodeTree *ntree, struct bNode* node, struct bNodeType *ntype); + +void nodeRegisterType(struct ListBase *typelist, struct bNodeType *ntype) ; void nodeMakeDynamicType(struct bNode *node); int nodeDynamicUnlinkText(struct ID *txtid); + void nodeFreeNode(struct bNodeTree *ntree, struct bNode *node); struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node); @@ -186,6 +330,10 @@ struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, s void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link); void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock); +void nodeSpaceCoords(struct bNode *node, float *locx, float *locy); +void nodeAttachNode(struct bNode *node, struct bNode *parent); +void nodeDetachNode(struct bNode *node); + struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name); int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex, int *in_out); @@ -202,41 +350,71 @@ void NodeTagChanged(struct bNodeTree *ntree, struct bNode *node); int NodeTagIDChanged(struct bNodeTree *ntree, struct ID *id); void ntreeClearTags(struct bNodeTree *ntree); -/* ************** Groups ****************** */ - -struct bNode *nodeMakeGroupFromSelected(struct bNodeTree *ntree); -int nodeGroupUnGroup(struct bNodeTree *ntree, struct bNode *gnode); - -void nodeGroupVerify(struct bNodeTree *ngroup); -void nodeGroupSocketUseFlags(struct bNodeTree *ngroup); - -void nodeGroupCopy(struct bNode *gnode); +void nodeFreePreview(struct bNode *node); -struct bNodeSocket *nodeGroupAddSocket(struct bNodeTree *ngroup, const char *name, int type, int in_out); -struct bNodeSocket *nodeGroupExposeSocket(struct bNodeTree *ngroup, struct bNodeSocket *sock, int in_out); -void nodeGroupExposeAllSockets(struct bNodeTree *ngroup); -void nodeGroupRemoveSocket(struct bNodeTree *ngroup, struct bNodeSocket *gsock, int in_out); +/* ************** NODE TYPE ACCESS *************** */ -/* ************** COMMON NODES *************** */ +struct bNodeTemplate nodeMakeTemplate(struct bNode *node); +int nodeValid(struct bNodeTree *ntree, struct bNodeTemplate *ntemp); +const char* nodeLabel(struct bNode *node); +struct bNodeTree *nodeGroupEditGet(struct bNode *node); +struct bNodeTree *nodeGroupEditSet(struct bNode *node, int edit); +void nodeGroupEditClear(struct bNode *node); /* Init a new node type struct with default values and callbacks */ -void node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass, short flag, - struct bNodeSocketType *inputs, struct bNodeSocketType *outputs); +void node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass, short flag); +void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs); void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth); -void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNode *)); +void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp)); +void node_type_valid(struct bNodeType *ntype, int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp)); void node_type_storage(struct bNodeType *ntype, const char *storagename, void (*freestoragefunc)(struct bNode *), void (*copystoragefunc)(struct bNode *, struct bNode *)); +void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *)); +void node_type_template(struct bNodeType *ntype, struct bNodeTemplate (*templatefunc)(struct bNode *)); +void node_type_update(struct bNodeType *ntype, + void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node), + void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id)); +void node_type_tree(struct bNodeType *ntype, + void (*inittreefunc)(struct bNodeTree *), + void (*updatetreefunc)(struct bNodeTree *)); +void node_type_group_edit(struct bNodeType *ntype, + struct bNodeTree *(*group_edit_get)(struct bNode *node), + struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit), + void (*group_edit_clear)(struct bNode *node)); + void node_type_exec(struct bNodeType *ntype, void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **)); +void node_type_exec_new(struct bNodeType *ntype, + void *(*initexecfunc)(struct bNode *node), + void (*freeexecfunc)(struct bNode *node, void *nodedata), + void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **)); void node_type_gpu(struct bNodeType *ntype, int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out)); -void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *)); +void node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node, void *nodedata, struct GPUNodeStack *in, struct GPUNodeStack *out)); + +/* ************** COMMON NODES *************** */ #define NODE_GROUP 2 -#define NODE_GROUP_MENU 1000 -#define NODE_DYNAMIC_MENU 4000 +#define NODE_FORLOOP 3 +#define NODE_WHILELOOP 4 +#define NODE_FRAME 5 +#define NODE_GROUP_MENU 10000 +#define NODE_DYNAMIC_MENU 20000 + +/* look up a socket on a group node by the internal group socket */ +struct bNodeSocket *node_group_find_input(struct bNode *gnode, struct bNodeSocket *gsock); +struct bNodeSocket *node_group_find_output(struct bNode *gnode, struct bNodeSocket *gsock); + +struct bNodeSocket *node_group_add_socket(struct bNodeTree *ngroup, const char *name, int type, int in_out); +struct bNodeSocket *node_group_expose_socket(struct bNodeTree *ngroup, struct bNodeSocket *sock, int in_out); +void node_group_expose_all_sockets(struct bNodeTree *ngroup); +void node_group_remove_socket(struct bNodeTree *ngroup, struct bNodeSocket *gsock, int in_out); -void register_node_type_group(ListBase *lb); +struct bNode *node_group_make_from_selected(struct bNodeTree *ntree); +int node_group_ungroup(struct bNodeTree *ntree, struct bNode *gnode); + +/* in node_common.c */ +void register_node_type_frame(ListBase *lb); /* ************** SHADER NODES *************** */ @@ -286,11 +464,10 @@ struct ShadeResult; #define NODE_DYNAMIC_REPARSE 6 /* 64 */ #define NODE_DYNAMIC_SET 15 /* sign */ -/* the type definitions array */ -extern struct ListBase node_all_shaders; - /* API */ +struct bNodeTreeExec *ntreeShaderBeginExecTree(struct bNodeTree *ntree); +void ntreeShaderEndExecTree(struct bNodeTreeExec *exec); void ntreeShaderExecTree(struct bNodeTree *ntree, struct ShadeInput *shi, struct ShadeResult *shr); void ntreeShaderGetTexcoMode(struct bNodeTree *ntree, int osa, short *texco, int *mode); void nodeShaderSynchronizeID(struct bNode *node, int copyto); @@ -415,11 +592,11 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat); #define CMP_SCALE_RENDERPERCENT 3 -/* the type definitions array */ -extern struct ListBase node_all_composit; - /* API */ struct CompBuf; +struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree); +void ntreeCompositEndExecTree(struct bNodeTreeExec *exec); +void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews); void ntreeCompositTagRender(struct Scene *sce); int ntreeCompositTagAnimated(struct bNodeTree *ntree); void ntreeCompositTagGenerators(struct bNodeTree *ntree); @@ -459,23 +636,22 @@ struct TexResult; #define TEX_NODE_PROC 500 #define TEX_NODE_PROC_MAX 600 -extern struct ListBase node_all_textures; - /* API */ int ntreeTexTagAnimated(struct bNodeTree *ntree); void ntreeTexSetPreviewFlag(int); -int ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, int osatex, short thread, struct Tex *tex, short which_output, int cfra, int preview, struct ShadeInput *shi, struct MTex *mtex); void ntreeTexCheckCyclics(struct bNodeTree *ntree); char* ntreeTexOutputMenu(struct bNodeTree *ntree); +struct bNodeTreeExec *ntreeTexBeginExecTree(struct bNodeTree *ntree); +void ntreeTexEndExecTree(struct bNodeTreeExec *exec); +int ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, int osatex, short thread, struct Tex *tex, short which_output, int cfra, int preview, struct ShadeInput *shi, struct MTex *mtex); + -/**/ +/*************************************************/ void init_nodesystem(void); void free_nodesystem(void); -/**/ - void clear_scene_in_nodes(struct Main *bmain, struct Scene *sce); #endif diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 29615986191..36631d5af90 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -925,7 +925,8 @@ void init_render_material(Material *mat, int r_mode, float *amb) if(mat->nodetree && mat->use_nodes) { init_render_nodetree(mat->nodetree, mat, r_mode, amb); - ntreeBeginExecTree(mat->nodetree); /* has internal flag to detect it only does it once */ + if (!mat->nodetree->execdata) + mat->nodetree->execdata = ntreeShaderBeginExecTree(mat->nodetree); } } @@ -957,8 +958,10 @@ void init_render_materials(Main *bmain, int r_mode, float *amb) /* only needed for nodes now */ void end_render_material(Material *mat) { - if(mat && mat->nodetree && mat->use_nodes) - ntreeEndExecTree(mat->nodetree); /* has internal flag to detect it only does it once */ + if(mat && mat->nodetree && mat->use_nodes) { + if (mat->nodetree->execdata) + ntreeShaderEndExecTree(mat->nodetree->execdata); + } } void end_render_materials(Main *bmain) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 5f1a6c911bc..6f34383101d 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -46,84 +46,107 @@ #include #include "DNA_anim_types.h" -#include "DNA_action_types.h" #include "DNA_node_types.h" +#include "DNA_scene_types.h" +#include "DNA_action_types.h" +#include "BLI_string.h" +#include "BLI_math.h" #include "BLI_listbase.h" - -#include "RNA_access.h" +#include "BLI_path_util.h" +#include "BLI_utildefines.h" #include "BKE_animsys.h" #include "BKE_action.h" #include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_library.h" +#include "BKE_main.h" #include "BKE_node.h" #include "BKE_utildefines.h" +#include "BKE_utildefines.h" -#include "PIL_time.h" - -#include "CMP_node.h" -#include "intern/CMP_util.h" /* stupid include path... */ +#include "BLI_listbase.h" -#include "SHD_node.h" -#include "TEX_node.h" -#include "intern/TEX_util.h" +#include "RNA_access.h" -#include "GPU_material.h" +#include "NOD_socket.h" +#include "NOD_composite.h" +#include "NOD_shader.h" +#include "NOD_texture.h" -static ListBase empty_list = {NULL, NULL}; -ListBase node_all_composit = {NULL, NULL}; -ListBase node_all_shaders = {NULL, NULL}; -ListBase node_all_textures = {NULL, NULL}; -/* ************** Type stuff ********** */ +bNodeTreeType *ntreeGetType(int type) +{ + static bNodeTreeType *types[NUM_NTREE_TYPES]; + static int types_init = 1; + if (types_init) { + types[NTREE_SHADER] = &ntreeType_Shader; + types[NTREE_COMPOSIT] = &ntreeType_Composite; + types[NTREE_TEXTURE] = &ntreeType_Texture; + types_init = 0; + } + + if(type >= 0 && type < NUM_NTREE_TYPES) { + return types[type]; + } + else { + return NULL; + } +} -static bNodeType *node_get_type(bNodeTree *ntree, int type, ID *id) +static bNodeType *node_get_type(bNodeTree *ntree, int type) { - bNodeType *ntype = ntree->alltypes.first; + bNodeType *ntype = ntreeGetType(ntree->type)->node_types.first; for(; ntype; ntype= ntype->next) - if(ntype->type==type && id==ntype->id ) + if(ntype->type==type) return ntype; return NULL; } -void ntreeInitTypes(bNodeTree *ntree) +bNodeType *ntreeGetNodeType(bNodeTree *ntree) { - bNode *node, *next; - - if(ntree->type==NTREE_SHADER) - ntree->alltypes= node_all_shaders; - else if(ntree->type==NTREE_COMPOSIT) - ntree->alltypes= node_all_composit; - else if(ntree->type==NTREE_TEXTURE) - ntree->alltypes= node_all_textures; + return node_get_type(ntree, ntree->nodetype); +} + +bNodeSocketType *ntreeGetSocketType(int type) +{ + static bNodeSocketType *types[NUM_SOCKET_TYPES]= {NULL}; + static int types_init = 1; + + if (types_init) { + node_socket_type_init(types); + types_init= 0; + } + + if(type < NUM_SOCKET_TYPES) { + return types[type]; + } else { - ntree->alltypes= empty_list; - printf("Error: no type definitions for nodes\n"); + return NULL; } +} + +void ntreeInitTypes(bNodeTree *ntree) +{ + bNode *node, *next; for(node= ntree->nodes.first; node; node= next) { next= node->next; + + node->typeinfo= node_get_type(ntree, node->type); + if(node->type==NODE_DYNAMIC) { - bNodeType *stype= NULL; - if(node->id==NULL) { /* empty script node */ - stype= node_get_type(ntree, node->type, NULL); - } else { /* not an empty script node */ - stype= node_get_type(ntree, node->type, node->id); - if(!stype) { - stype= node_get_type(ntree, node->type, NULL); - /* needed info if the pynode script fails now: */ - if (node->id) node->storage= ntree; - } else { - node->custom1= 0; - node->custom1= BSET(node->custom1,NODE_DYNAMIC_ADDEXIST); - } + /* needed info if the pynode script fails now: */ + node->storage= ntree; + if(node->id!=NULL) { /* not an empty script node */ + node->custom1= 0; + node->custom1= BSET(node->custom1,NODE_DYNAMIC_ADDEXIST); } - node->typeinfo= stype; - if(node->typeinfo) - node->typeinfo->initfunc(node); - } else { - node->typeinfo= node_get_type(ntree, node->type, NULL); +// if(node->typeinfo) +// node->typeinfo->initfunc(node); } if(node->typeinfo==NULL) { @@ -135,66 +158,51 @@ void ntreeInitTypes(bNodeTree *ntree) ntree->init |= NTREE_TYPE_INIT; } -/* updates node with (modified) bNodeType.. this should be done for all trees */ -void ntreeUpdateType(bNodeTree *ntree, bNodeType *ntype) +static bNodeSocket *make_socket(bNodeTree *ntree, int in_out, const char *name, int type) { - bNode *node; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo== ntype) { - nodeUpdateType(ntree, node, ntype); - } - } + bNodeSocketType *stype= ntreeGetSocketType(type); + bNodeSocket *sock; + + sock= MEM_callocN(sizeof(bNodeSocket), "sock"); + + BLI_strncpy(sock->name, name, NODE_MAXSTR); + sock->limit = (in_out==SOCK_IN ? 1 : 0xFFF); + sock->type= type; + sock->storage = NULL; + + if (stype->value_structsize > 0) + sock->default_value = MEM_callocN(stype->value_structsize, "default socket value"); + + return sock; } -/* only used internal... we depend on type definitions! */ -static bNodeSocket *node_add_socket_type(ListBase *lb, bNodeSocketType *stype) +bNodeSocket *nodeAddSocket(bNodeTree *ntree, bNode *node, int in_out, const char *name, int type) { - bNodeSocket *sock= MEM_callocN(sizeof(bNodeSocket), "sock"); + bNodeSocket *sock = make_socket(ntree, in_out, name, type); + if (in_out==SOCK_IN) + BLI_addtail(&node->inputs, sock); + else if (in_out==SOCK_OUT) + BLI_addtail(&node->outputs, sock); - BLI_strncpy(sock->name, stype->name, NODE_MAXSTR); - if(stype->limit==0) sock->limit= 0xFFF; - else sock->limit= stype->limit; - sock->type= stype->type; + ntree->update |= NTREE_UPDATE_NODES; - sock->ns.vec[0]= stype->val1; - sock->ns.vec[1]= stype->val2; - sock->ns.vec[2]= stype->val3; - sock->ns.vec[3]= stype->val4; - sock->ns.min= stype->min; - sock->ns.max= stype->max; - - if(lb) - BLI_addtail(lb, sock); - return sock; } -static bNodeSocket *node_add_group_socket(ListBase *lb, bNodeSocket *gsock) +bNodeSocket *nodeInsertSocket(bNodeTree *ntree, bNode *node, int in_out, bNodeSocket *next_sock, const char *name, int type) { - bNodeSocket *sock= MEM_callocN(sizeof(bNodeSocket), "sock"); + bNodeSocket *sock = make_socket(ntree, in_out, name, type); + if (in_out==SOCK_IN) + BLI_insertlinkbefore(&node->inputs, next_sock, sock); + else if (in_out==SOCK_OUT) + BLI_insertlinkbefore(&node->outputs, next_sock, sock); - /* make a copy of the group socket */ - *sock = *gsock; - sock->link = NULL; - sock->next = sock->prev = NULL; - sock->new_sock = NULL; - sock->ns.data = NULL; + ntree->update |= NTREE_UPDATE_NODES; - sock->own_index = gsock->own_index; - sock->groupsock = gsock; - /* XXX hack: group socket input/output roles are inverted internally, - * need to change the limit value when making actual node sockets from them. - */ - sock->limit = (gsock->limit==1 ? 0xFFF : 1); - - if(lb) - BLI_addtail(lb, sock); - return sock; } -static void node_rem_socket(bNodeTree *ntree, ListBase *lb, bNodeSocket *sock) +void nodeRemoveSocket(bNodeTree *ntree, bNode *node, bNodeSocket *sock) { bNodeLink *link, *next; @@ -205,428 +213,42 @@ static void node_rem_socket(bNodeTree *ntree, ListBase *lb, bNodeSocket *sock) } } - BLI_remlink(lb, sock); - MEM_freeN(sock); -} - -static bNodeSocket *verify_socket(ListBase *lb, bNodeSocketType *stype) -{ - bNodeSocket *sock; - - for(sock= lb->first; sock; sock= sock->next) { - if(strncmp(sock->name, stype->name, NODE_MAXSTR)==0) - break; - } - if(sock) { - sock->type= stype->type; /* in future, read this from tydefs! */ - if(stype->limit==0) sock->limit= 0xFFF; - else sock->limit= stype->limit; - - sock->ns.min= stype->min; - sock->ns.max= stype->max; - - BLI_remlink(lb, sock); - - return sock; - } - else { - return node_add_socket_type(NULL, stype); - } -} - -static bNodeSocket *verify_group_socket(ListBase *lb, bNodeSocket *gsock) -{ - bNodeSocket *sock; - - for(sock= lb->first; sock; sock= sock->next) { - if(sock->own_index==gsock->own_index) - break; - } - if(sock) { - sock->groupsock = gsock; - - strcpy(sock->name, gsock->name); - sock->type= gsock->type; - - /* XXX hack: group socket input/output roles are inverted internally, - * need to change the limit value when making actual node sockets from them. - */ - sock->limit = (gsock->limit==1 ? 0xFFF : 1); - - sock->ns.min= gsock->ns.min; - sock->ns.max= gsock->ns.max; - - BLI_remlink(lb, sock); - - return sock; - } - else { - return node_add_group_socket(NULL, gsock); - } -} - -static void verify_socket_list(bNodeTree *ntree, ListBase *lb, bNodeSocketType *stype_first) -{ - bNodeSocketType *stype; - - /* no inputs anymore? */ - if(stype_first==NULL) { - while(lb->first) - node_rem_socket(ntree, lb, lb->first); - } - else { - /* step by step compare */ - stype= stype_first; - while(stype->type != -1) { - stype->sock= verify_socket(lb, stype); - stype++; - } - /* leftovers are removed */ - while(lb->first) - node_rem_socket(ntree, lb, lb->first); - /* and we put back the verified sockets */ - stype= stype_first; - while(stype->type != -1) { - BLI_addtail(lb, stype->sock); - stype++; - } - } -} - -static void verify_group_socket_list(bNodeTree *ntree, ListBase *lb, ListBase *glb) -{ - bNodeSocket *gsock; - - /* step by step compare */ - for (gsock= glb->first; gsock; gsock=gsock->next) { - /* abusing new_sock pointer for verification here! only used inside this function */ - gsock->new_sock= verify_group_socket(lb, gsock); - } - /* leftovers are removed */ - while(lb->first) - node_rem_socket(ntree, lb, lb->first); - /* and we put back the verified sockets */ - for (gsock= glb->first; gsock; gsock=gsock->next) { - BLI_addtail(lb, gsock->new_sock); - gsock->new_sock = NULL; - } -} - -void nodeVerifyType(bNodeTree *ntree, bNode *node) -{ - /* node groups don't have static sock lists, but use external sockets from the tree instead */ - if (node->type==NODE_GROUP) { - bNodeTree *ngroup= (bNodeTree*)node->id; - if (ngroup) { - verify_group_socket_list(ntree, &node->inputs, &ngroup->inputs); - verify_group_socket_list(ntree, &node->outputs, &ngroup->outputs); - } - } - else { - bNodeType *ntype= node->typeinfo; - if(ntype) { - verify_socket_list(ntree, &node->inputs, ntype->inputs); - verify_socket_list(ntree, &node->outputs, ntype->outputs); - } - } -} - -void ntreeVerifyTypes(bNodeTree *ntree) -{ - bNode *node; - - /* if((ntree->init & NTREE_TYPE_INIT)==0) */ - ntreeInitTypes(ntree); - - /* check inputs and outputs, and remove or insert them */ - for(node= ntree->nodes.first; node; node= node->next) - nodeVerifyType(ntree, node); + /* this is fast, this way we don't need an in_out argument */ + BLI_remlink(&node->inputs, sock); + BLI_remlink(&node->outputs, sock); -} - -/* ************** Group stuff ********** */ - -/* XXX group typeinfo struct is used directly in ntreeMakeOwnType, needs cleanup */ -static bNodeType ntype_group; - -/* groups display their internal tree name as label */ -static const char *group_label(bNode *node) -{ - return (node->id)? node->id->name+2: "Missing Datablock"; -} - -void register_node_type_group(ListBase *lb) -{ - node_type_base(&ntype_group, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS, NULL, NULL); - node_type_size(&ntype_group, 120, 60, 200); - node_type_label(&ntype_group, group_label); + if (sock->default_value) + MEM_freeN(sock->default_value); + MEM_freeN(sock); - nodeRegisterType(lb, &ntype_group); + ntree->update |= NTREE_UPDATE_NODES; } -static bNodeSocket *find_group_node_input(bNode *gnode, bNodeSocket *gsock) +void nodeRemoveAllSockets(bNodeTree *ntree, bNode *node) { bNodeSocket *sock; - for (sock=gnode->inputs.first; sock; sock=sock->next) - if (sock->groupsock == gsock) - return sock; - return NULL; -} - -static bNodeSocket *find_group_node_output(bNode *gnode, bNodeSocket *gsock) -{ - bNodeSocket *sock; - for (sock=gnode->outputs.first; sock; sock=sock->next) - if (sock->groupsock == gsock) - return sock; - return NULL; -} - -bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) -{ - bNodeLink *link, *linkn; - bNode *node, *gnode, *nextn; - bNodeTree *ngroup; - bNodeSocket *gsock; - ListBase anim_basepaths = {NULL, NULL}; - float min[2], max[2]; - int totnode=0; - - INIT_MINMAX2(min, max); - - /* is there something to group? also do some clearing */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->flag & NODE_SELECT) { - /* no groups in groups */ - if(node->type==NODE_GROUP) - return NULL; - DO_MINMAX2( (&node->locx), min, max); - totnode++; - } - node->done= 0; - } - if(totnode==0) return NULL; - - /* check if all connections are OK, no unselected node has both - inputs and outputs to a selection */ - for(link= ntree->links.first; link; link= link->next) { - if(link->fromnode && link->tonode && link->fromnode->flag & NODE_SELECT) - link->tonode->done |= 1; - if(link->fromnode && link->tonode && link->tonode->flag & NODE_SELECT) - link->fromnode->done |= 2; - } - - for(node= ntree->nodes.first; node; node= node->next) { - if((node->flag & NODE_SELECT)==0) - if(node->done==3) - break; - } - if(node) - return NULL; + bNodeLink *link, *next; - /* OK! new nodetree */ - ngroup= ntreeAddTree("NodeGroup", ntree->type, TRUE); - - /* move nodes over */ - for(node= ntree->nodes.first; node; node= nextn) { - nextn= node->next; - if(node->flag & NODE_SELECT) { - /* keep track of this node's RNA "base" path (the part of the pat identifying the node) - * if the old nodetree has animation data which potentially covers this node - */ - if (ntree->adt) { - PointerRNA ptr; - char *path; - - RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); - path = RNA_path_from_ID_to_struct(&ptr); - - if (path) - BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); - } - - /* change node-collection membership */ - BLI_remlink(&ntree->nodes, node); - BLI_addtail(&ngroup->nodes, node); - - node->locx-= 0.5f*(min[0]+max[0]); - node->locy-= 0.5f*(min[1]+max[1]); - } - } - - /* move animation data over */ - if (ntree->adt) { - LinkData *ld, *ldn=NULL; - - BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths); - - /* paths + their wrappers need to be freed */ - for (ld = anim_basepaths.first; ld; ld = ldn) { - ldn = ld->next; - - MEM_freeN(ld->data); - BLI_freelinkN(&anim_basepaths, ld); + for(link= ntree->links.first; link; link= next) { + next= link->next; + if(link->fromnode==node || link->tonode==node) { + nodeRemLink(ntree, link); } } - /* make group node */ - gnode= nodeAddNodeType(ntree, NODE_GROUP, ngroup, NULL); - gnode->locx= 0.5f*(min[0]+max[0]); - gnode->locy= 0.5f*(min[1]+max[1]); + for (sock=node->inputs.first; sock; sock=sock->next) + if (sock->default_value) + MEM_freeN(sock->default_value); + BLI_freelistN(&node->inputs); + for (sock=node->outputs.first; sock; sock=sock->next) + if (sock->default_value) + MEM_freeN(sock->default_value); - /* relink external sockets */ - for(link= ntree->links.first; link; link= linkn) { - linkn= link->next; - - if(link->fromnode && link->tonode && (link->fromnode->flag & link->tonode->flag & NODE_SELECT)) { - BLI_remlink(&ntree->links, link); - BLI_addtail(&ngroup->links, link); - } - else if(link->tonode && (link->tonode->flag & NODE_SELECT)) { - gsock = nodeGroupExposeSocket(ngroup, link->tosock, SOCK_IN); - link->tosock->link = nodeAddLink(ngroup, NULL, gsock, link->tonode, link->tosock); - link->tosock = node_add_group_socket(&gnode->inputs, gsock); - link->tonode = gnode; - } - else if(link->fromnode && (link->fromnode->flag & NODE_SELECT)) { - /* search for existing group node socket */ - for (gsock=ngroup->outputs.first; gsock; gsock=gsock->next) - if (gsock->link && gsock->link->fromsock==link->fromsock) - break; - if (!gsock) { - gsock = nodeGroupExposeSocket(ngroup, link->fromsock, SOCK_OUT); - gsock->link = nodeAddLink(ngroup, link->fromnode, link->fromsock, NULL, gsock); - link->fromsock = node_add_group_socket(&gnode->outputs, gsock); - } - else - link->fromsock = find_group_node_output(gnode, gsock); - link->fromnode = gnode; - } - } - - /* update node levels */ - ntreeSolveOrder(ntree); - - return gnode; -} - -/* here's a nasty little one, need to check users... */ -/* should become callbackable... */ -void nodeGroupVerify(bNodeTree *ngroup) -{ - /* group changed, so we rebuild the type definition */ -// ntreeMakeGroupSockets(ngroup); + BLI_freelistN(&node->outputs); - if(ngroup->type==NTREE_SHADER) { - Material *ma; - for(ma= G.main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) { - bNode *node; - for(node= ma->nodetree->nodes.first; node; node= node->next) - if(node->id == (ID *)ngroup) - nodeVerifyType(ma->nodetree, node); - } - } - } - else if(ngroup->type==NTREE_COMPOSIT) { - Scene *sce; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - bNode *node; - for(node= sce->nodetree->nodes.first; node; node= node->next) - if(node->id == (ID *)ngroup) - nodeVerifyType(sce->nodetree, node); - } - } - } - else if(ngroup->type==NTREE_TEXTURE) { - Tex *tx; - for(tx= G.main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) { - bNode *node; - for(node= tx->nodetree->nodes.first; node; node= node->next) - if(node->id == (ID *)ngroup) - nodeVerifyType(tx->nodetree, node); - } - } - } + ntree->update |= NTREE_UPDATE_NODES; } -/* also to check all users of groups. Now only used in editor for hide/unhide */ -/* should become callbackable? */ -void nodeGroupSocketUseFlags(bNodeTree *ngroup) -{ - bNode *node; - bNodeSocket *sock; - - /* clear flags */ - for(node= ngroup->nodes.first; node; node= node->next) { - for(sock= node->inputs.first; sock; sock= sock->next) - sock->flag &= ~SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - sock->flag &= ~SOCK_IN_USE; - } - - /* tag all thats in use */ - if(ngroup->type==NTREE_SHADER) { - Material *ma; - for(ma= G.main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) { - for(node= ma->nodetree->nodes.first; node; node= node->next) { - if(node->id==&ngroup->id) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(ma->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } - } - else if(ngroup->type==NTREE_COMPOSIT) { - Scene *sce; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - for(node= sce->nodetree->nodes.first; node; node= node->next) { - if(node->id==(ID *)ngroup) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(sce->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } - } - else if(ngroup->type==NTREE_TEXTURE) { - Tex *tx; - for(tx= G.main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) { - for(node= tx->nodetree->nodes.first; node; node= node->next) { - if(node->id==(ID *)ngroup) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(tx->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } - } - -} /* finds a node based on its name */ bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name) { @@ -669,341 +291,70 @@ int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockin return 0; } -/* returns 1 if its OK */ -int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) +/* ************** Add stuff ********** */ +static void node_add_sockets_from_type(bNodeTree *ntree, bNode *node, bNodeType *ntype) { - bNodeLink *link, *linkn; - bNode *node, *nextn; - bNodeTree *ngroup, *wgroup; - ListBase anim_basepaths = {NULL, NULL}; - - ngroup= (bNodeTree *)gnode->id; - if(ngroup==NULL) return 0; - - /* clear new pointers, set in copytree */ - for(node= ntree->nodes.first; node; node= node->next) - node->new_node= NULL; - - /* wgroup is a temporary copy of the NodeTree we're merging in - * - all of wgroup's nodes are transferred across to their new home - * - ngroup (i.e. the source NodeTree) is left unscathed - */ - wgroup= ntreeCopyTree(ngroup); - - /* add the nodes into the ntree */ - for(node= wgroup->nodes.first; node; node= nextn) { - nextn= node->next; - - /* keep track of this node's RNA "base" path (the part of the pat identifying the node) - * if the old nodetree has animation data which potentially covers this node - */ - if (wgroup->adt) { - PointerRNA ptr; - char *path; - - RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr); - path = RNA_path_from_ID_to_struct(&ptr); + bNodeSocketTemplate *sockdef; + bNodeSocket *sock; + + if(ntype->inputs) { + sockdef= ntype->inputs; + while(sockdef->type != -1) { + sock = node_add_input_from_template(ntree, node, sockdef); - if (path) - BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); - } - - /* migrate node */ - BLI_remlink(&wgroup->nodes, node); - BLI_addtail(&ntree->nodes, node); - - node->locx+= gnode->locx; - node->locy+= gnode->locy; - - node->flag |= NODE_SELECT; - } - - /* restore external links to and from the gnode */ - for(link= ntree->links.first; link; link= link->next) { - if (link->fromnode==gnode) { - if (link->fromsock->groupsock) { - bNodeSocket *gsock= link->fromsock->groupsock; - if (gsock->link) { - if (gsock->link->fromnode) { - /* NB: using the new internal copies here! the groupsock pointer still maps to the old tree */ - link->fromnode = (gsock->link->fromnode ? gsock->link->fromnode->new_node : NULL); - link->fromsock = gsock->link->fromsock->new_sock; - } - else { - /* group output directly maps to group input */ - bNodeSocket *insock= find_group_node_input(gnode, gsock->link->fromsock); - if (insock->link) { - link->fromnode = insock->link->fromnode; - link->fromsock = insock->link->fromsock; - } - } - } - else { - /* constant group output: copy the stack value to the external socket. - * the link is kept here until all possible external users have been fixed. - */ - QUATCOPY(link->tosock->ns.vec, gsock->ns.vec); - } - } - } - } - /* remove internal output links, these are not used anymore */ - for(link=wgroup->links.first; link; link= linkn) { - linkn = link->next; - if (!link->tonode) - nodeRemLink(wgroup, link); - } - /* restore links from internal nodes */ - for(link= wgroup->links.first; link; link= link->next) { - /* indicates link to group input */ - if (!link->fromnode) { - /* NB: can't use find_group_node_input here, - * because gnode sockets still point to the old tree! - */ - bNodeSocket *insock; - for (insock= gnode->inputs.first; insock; insock= insock->next) - if (insock->groupsock->new_sock == link->fromsock) - break; - if (insock->link) { - link->fromnode = insock->link->fromnode; - link->fromsock = insock->link->fromsock; - } - else { - /* uses group constant input. copy the input value and remove the dead link. */ - QUATCOPY(link->tosock->ns.vec, insock->ns.vec); - nodeRemLink(wgroup, link); - } + sockdef++; } } - - /* add internal links to the ntree */ - for(link= wgroup->links.first; link; link= linkn) { - linkn= link->next; - BLI_remlink(&wgroup->links, link); - BLI_addtail(&ntree->links, link); - } - - /* and copy across the animation */ - if (wgroup->adt) { - LinkData *ld, *ldn=NULL; - bAction *waction; - - /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */ - waction = wgroup->adt->action = copy_action(wgroup->adt->action); - - /* now perform the moving */ - BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths); - - /* paths + their wrappers need to be freed */ - for (ld = anim_basepaths.first; ld; ld = ldn) { - ldn = ld->next; + if(ntype->outputs) { + sockdef= ntype->outputs; + while(sockdef->type != -1) { + sock = node_add_output_from_template(ntree, node, sockdef); - MEM_freeN(ld->data); - BLI_freelinkN(&anim_basepaths, ld); + sockdef++; } - - /* free temp action too */ - free_libblock(&G.main->action, waction); } - - /* delete the group instance. this also removes old input links! */ - nodeFreeNode(ntree, gnode); - - /* free the group tree (takes care of user count) */ - free_libblock(&G.main->nodetree, wgroup); - - /* solve order goes fine, but the level tags not... doing it twice works for now. solve this once */ - /* XXX is this still necessary with new groups? it may have been caused by non-updated sock->link pointers. lukas */ - ntreeSolveOrder(ntree); - ntreeSolveOrder(ntree); - - return 1; } -void nodeGroupCopy(bNode *gnode) -{ - bNodeSocket *sock; - - gnode->id->us--; - gnode->id= (ID *)ntreeCopyTree((bNodeTree *)gnode->id); - - /* new_sock was set in nodeCopyNode */ - for(sock=gnode->inputs.first; sock; sock=sock->next) - if(sock->groupsock) - sock->groupsock= sock->groupsock->new_sock; - - for(sock=gnode->outputs.first; sock; sock=sock->next) - if(sock->groupsock) - sock->groupsock= sock->groupsock->new_sock; -} - -bNodeSocket *nodeGroupAddSocket(bNodeTree *ngroup, const char *name, int type, int in_out) -{ - bNodeSocket *gsock = MEM_callocN(sizeof(bNodeSocket), "bNodeSocket"); - - strncpy(gsock->name, name, sizeof(gsock->name)); - gsock->type = type; - gsock->ns.sockettype = type; - gsock->ns.min = INT_MIN; - gsock->ns.max = INT_MAX; - zero_v4(gsock->ns.vec); - gsock->ns.data = NULL; - gsock->flag = 0; - - gsock->next = gsock->prev = NULL; - gsock->new_sock = NULL; - gsock->link = NULL; - gsock->ns.data = NULL; - /* assign new unique index */ - gsock->own_index = ngroup->cur_index++; - gsock->limit = (in_out==SOCK_IN ? 0xFFF : 1); - - BLI_addtail(in_out==SOCK_IN ? &ngroup->inputs : &ngroup->outputs, gsock); - - return gsock; -} - -bNodeSocket *nodeGroupExposeSocket(bNodeTree *ngroup, bNodeSocket *sock, int in_out) -{ - bNodeSocket *gsock= nodeGroupAddSocket(ngroup, sock->name, sock->type, in_out); - /* initialize the default socket value */ - QUATCOPY(gsock->ns.vec, sock->ns.vec); - return gsock; -} - -void nodeGroupExposeAllSockets(bNodeTree *ngroup) -{ - bNode *node; - bNodeSocket *sock, *gsock; - - for (node=ngroup->nodes.first; node; node=node->next) { - for (sock=node->inputs.first; sock; sock=sock->next) { - if (!sock->link && !(sock->flag & SOCK_HIDDEN)) { - gsock = nodeGroupAddSocket(ngroup, sock->name, sock->type, SOCK_IN); - /* initialize the default socket value */ - QUATCOPY(gsock->ns.vec, sock->ns.vec); - sock->link = nodeAddLink(ngroup, NULL, gsock, node, sock); - } - } - for (sock=node->outputs.first; sock; sock=sock->next) { - if (nodeCountSocketLinks(ngroup, sock)==0 && !(sock->flag & SOCK_HIDDEN)) { - gsock = nodeGroupAddSocket(ngroup, sock->name, sock->type, SOCK_OUT); - /* initialize the default socket value */ - QUATCOPY(gsock->ns.vec, sock->ns.vec); - gsock->link = nodeAddLink(ngroup, node, sock, NULL, gsock); - } - } - } -} - -void nodeGroupRemoveSocket(bNodeTree *ngroup, bNodeSocket *gsock, int in_out) -{ - nodeRemSocketLinks(ngroup, gsock); - switch (in_out) { - case SOCK_IN: BLI_remlink(&ngroup->inputs, gsock); break; - case SOCK_OUT: BLI_remlink(&ngroup->outputs, gsock); break; - } - MEM_freeN(gsock); -} - -/* ************** Add stuff ********** */ -void nodeAddSockets(bNode *node, bNodeType *ntype) -{ - if (node->type==NODE_GROUP) { - bNodeTree *ntree= (bNodeTree*)node->id; - if (ntree) { - bNodeSocket *gsock; - for (gsock=ntree->inputs.first; gsock; gsock=gsock->next) - node_add_group_socket(&node->inputs, gsock); - for (gsock=ntree->outputs.first; gsock; gsock=gsock->next) - node_add_group_socket(&node->outputs, gsock); - } - } - else { - bNodeSocketType *stype; - - if(ntype->inputs) { - stype= ntype->inputs; - while(stype->type != -1) { - node_add_socket_type(&node->inputs, stype); - stype++; - } - } - if(ntype->outputs) { - stype= ntype->outputs; - while(stype->type != -1) { - node_add_socket_type(&node->outputs, stype); - stype++; - } - } - } -} - -/* Find the first available, non-duplicate name for a given node */ -void nodeUniqueName(bNodeTree *ntree, bNode *node) +/* Find the first available, non-duplicate name for a given node */ +void nodeUniqueName(bNodeTree *ntree, bNode *node) { BLI_uniquename(&ntree->nodes, node, "Node", '.', offsetof(bNode, name), sizeof(node->name)); } -bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id) +bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp) { - bNode *node= NULL; - bNodeType *ntype= NULL; - - if (ngroup && BLI_findindex(&G.main->nodetree, ngroup)==-1) { - printf("nodeAddNodeType() error: '%s' not in main->nodetree\n", ngroup->id.name); - return NULL; - } - - if(type>=NODE_DYNAMIC_MENU) { - int a=0, idx= type-NODE_DYNAMIC_MENU; - ntype= ntree->alltypes.first; - while(ntype) { - if(ntype->type==NODE_DYNAMIC) { - if(a==idx) - break; - a++; - } - ntype= ntype->next; - } - } else - ntype= node_get_type(ntree, type, id); - + bNode *node; + bNodeType *ntype; + + ntype= node_get_type(ntree, ntemp->type); if(ntype == NULL) { - printf("nodeAddNodeType() error: '%d' type invalid\n", type); + printf("nodeAddNodeType() error: '%d' type invalid\n", ntemp->type); return NULL; } - - node= MEM_callocN(sizeof(bNode), "new node"); - BLI_addtail(&ntree->nodes, node); - node->typeinfo= ntype; - if(type>=NODE_DYNAMIC_MENU) - node->custom2= type; /* for node_dynamic_init */ - - if(ngroup) - BLI_strncpy(node->name, ngroup->id.name+2, NODE_MAXSTR); - else if(type>NODE_DYNAMIC_MENU) { - BLI_strncpy(node->name, ntype->id->name+2, NODE_MAXSTR); - } - else - BLI_strncpy(node->name, ntype->name, NODE_MAXSTR); - - nodeUniqueName(ntree, node); + /* validity check */ + if (!nodeValid(ntree, ntemp)) + return NULL; + node= MEM_callocN(sizeof(bNode), "new node"); node->type= ntype->type; + node->typeinfo= ntype; node->flag= NODE_SELECT|ntype->flag; node->width= ntype->width; - node->miniwidth= 42.0f; /* small value only, allows print of first chars */ - - if(type==NODE_GROUP) - node->id= (ID *)ngroup; - - /* need init handler later? */ - /* got it-bob*/ + node->miniwidth= 42.0f; + node->height= ntype->height; + + node_add_sockets_from_type(ntree, node, ntype); + if(ntype->initfunc!=NULL) - ntype->initfunc(node); + ntype->initfunc(ntree, node, ntemp); - nodeAddSockets(node, ntype); + /* initialize the node name with the node label */ + BLI_strncpy(node->name, nodeLabel(node), NODE_MAXSTR); + nodeUniqueName(ntree, node); + + BLI_addtail(&ntree->nodes, node); + + ntree->update |= NTREE_UPDATE_NODES; return node; } @@ -1011,9 +362,9 @@ bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id) void nodeMakeDynamicType(bNode *node) { /* find SH_DYNAMIC_NODE ntype */ - bNodeType *ntype= node_all_shaders.first; + bNodeType *ntype= ntreeGetType(NTREE_SHADER)->node_types.first; while(ntype) { - if(ntype->type==NODE_DYNAMIC && ntype->id==NULL) + if(ntype->type==NODE_DYNAMIC) break; ntype= ntype->next; } @@ -1023,17 +374,11 @@ void nodeMakeDynamicType(bNode *node) /*node->typeinfo= MEM_dupallocN(ntype);*/ bNodeType *newtype= MEM_callocN(sizeof(bNodeType), "dynamic bNodeType"); *newtype= *ntype; - newtype->name= BLI_strdup(ntype->name); + strcpy(newtype->name, ntype->name); node->typeinfo= newtype; } } -void nodeUpdateType(bNodeTree *ntree, bNode* node, bNodeType *ntype) -{ - verify_socket_list(ntree, &node->inputs, ntype->inputs); - verify_socket_list(ntree, &node->outputs, ntype->outputs); -} - /* keep socket listorder identical, for copying links */ /* ntree is the target tree */ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node) @@ -1045,19 +390,23 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node) nodeUniqueName(ntree, nnode); BLI_addtail(&ntree->nodes, nnode); - + BLI_duplicatelist(&nnode->inputs, &node->inputs); oldsock= node->inputs.first; for(sock= nnode->inputs.first; sock; sock= sock->next, oldsock= oldsock->next) { oldsock->new_sock= sock; + sock->stack_index= 0; + + sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL); } BLI_duplicatelist(&nnode->outputs, &node->outputs); oldsock= node->outputs.first; for(sock= nnode->outputs.first; sock; sock= sock->next, oldsock= oldsock->next) { - sock->stack_index= 0; - sock->ns.data= NULL; oldsock->new_sock= sock; + sock->stack_index= 0; + + sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL); } /* don't increase node->id users, freenode doesn't decrement either */ @@ -1069,10 +418,11 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node) nnode->new_node= NULL; nnode->preview= NULL; + ntree->update |= NTREE_UPDATE_NODES; + return nnode; } -/* fromsock and tosock can be NULL */ /* also used via rna api, so we check for proper input output direction */ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, bNode *tonode, bNodeSocket *tosock) { @@ -1095,6 +445,21 @@ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, from= -1; /* OK but flip */ } } + else { + /* check tree sockets */ + for(sock= ntree->inputs.first; sock; sock= sock->next) + if(sock==fromsock) + break; + if(sock) + from= 1; /* OK */ + else { + for(sock= ntree->outputs.first; sock; sock= sock->next) + if(sock==fromsock) + break; + if(sock) + from= -1; /* OK but flip */ + } + } if(tonode) { for(sock= tonode->inputs.first; sock; sock= sock->next) if(sock==tosock) @@ -1109,8 +474,22 @@ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, to= -1; /* OK but flip */ } } + else { + /* check tree sockets */ + for(sock= ntree->outputs.first; sock; sock= sock->next) + if(sock==tosock) + break; + if(sock) + to= 1; /* OK */ + else { + for(sock= ntree->inputs.first; sock; sock= sock->next) + if(sock==tosock) + break; + if(sock) + to= -1; /* OK but flip */ + } + } - /* this allows NULL sockets to work */ if(from >= 0 && to >= 0) { link= MEM_callocN(sizeof(bNodeLink), "link"); BLI_addtail(&ntree->links, link); @@ -1128,6 +507,8 @@ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, link->tosock= fromsock; } + ntree->update |= NTREE_UPDATE_LINKS; + return link; } @@ -1137,6 +518,8 @@ void nodeRemLink(bNodeTree *ntree, bNodeLink *link) if(link->tosock) link->tosock->link= NULL; MEM_freeN(link); + + ntree->update |= NTREE_UPDATE_LINKS; } void nodeRemSocketLinks(bNodeTree *ntree, bNodeSocket *sock) @@ -1149,26 +532,73 @@ void nodeRemSocketLinks(bNodeTree *ntree, bNodeSocket *sock) nodeRemLink(ntree, link); } } + + ntree->update |= NTREE_UPDATE_LINKS; } +/* transforms node location to area coords */ +void nodeSpaceCoords(bNode *node, float *locx, float *locy) +{ + if (node->parent) { + nodeSpaceCoords(node->parent, locx, locy); + *locx += node->locx; + *locy += node->locy; + } + else { + *locx = node->locx; + *locy = node->locy; + } +} -bNodeTree *ntreeAddTree(const char *name, int type, const short is_group) +void nodeAttachNode(bNode *node, bNode *parent) { - bNodeTree *ntree; + float parentx, parenty; + + node->parent = parent; + /* transform to parent space */ + nodeSpaceCoords(parent, &parentx, &parenty); + node->locx -= parentx; + node->locy -= parenty; +} - if (is_group) - ntree= alloc_libblock(&G.main->nodetree, ID_NT, name); - else { +void nodeDetachNode(struct bNode *node) +{ + float parentx, parenty; + + if (node->parent) { + /* transform to "global" (area) space */ + nodeSpaceCoords(node->parent, &parentx, &parenty); + node->locx += parentx; + node->locy += parenty; + node->parent = NULL; + } +} + +bNodeTree *ntreeAddTree(const char *name, int type, int nodetype) +{ + bNodeTree *ntree; + bNodeType *ntype; + + /* trees are created as local trees if they of compositor, material or texture type, + * node groups and other tree types are created as library data. + */ + if (ELEM3(type, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE) && nodetype==0) { ntree= MEM_callocN(sizeof(bNodeTree), "new node tree"); *( (short *)ntree->id.name )= ID_NT; /* not "type", as that is ntree->type */ BLI_strncpy(ntree->id.name+2, name, sizeof(ntree->id.name)); } - + else + ntree= alloc_libblock(&G.main->nodetree, ID_NT, name); + ntree->type= type; - ntree->alltypes.first = NULL; - ntree->alltypes.last = NULL; - + ntree->nodetype = nodetype; + ntreeInitTypes(ntree); + + ntype = node_get_type(ntree, ntree->nodetype); + if (ntype && ntype->inittreefunc) + ntype->inittreefunc(ntree); + return ntree; } @@ -1199,9 +629,7 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree) id_us_plus((ID *)newtree->gpd); /* in case a running nodetree is copied */ - newtree->init &= ~(NTREE_EXEC_INIT); - newtree->threadstack= NULL; - newtree->stack= NULL; + newtree->execdata= NULL; newtree->nodes.first= newtree->nodes.last= NULL; newtree->links.first= newtree->links.last= NULL; @@ -1210,7 +638,10 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree) for(node= ntree->nodes.first; node; node= node->next) { node->new_node= NULL; nnode= nodeCopyNode(newtree, node); /* sets node->new */ - if(node==last) break; + + /* make sure we don't copy new nodes again! */ + if (node==last) + break; } /* socket definition for group usage */ @@ -1218,14 +649,15 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree) for(gsock= newtree->inputs.first, oldgsock= ntree->inputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) { oldgsock->new_sock= gsock; gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL); + gsock->default_value = (oldgsock->default_value ? MEM_dupallocN(oldgsock->default_value) : NULL); } - BLI_duplicatelist(&newtree->outputs, &ntree->outputs); for(gsock= newtree->outputs.first, oldgsock= ntree->outputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) { oldgsock->new_sock= gsock; gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL); + gsock->default_value = (oldgsock->default_value ? MEM_dupallocN(oldgsock->default_value) : NULL); } - + /* copy links */ BLI_duplicatelist(&newtree->links, &ntree->links); for(link= newtree->links.first; link; link= link->next) { @@ -1237,7 +669,13 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree) if (link->tosock) link->tosock->link = link; } - + + /* update node->parent pointers */ + for (node=newtree->nodes.first; node; node=node->next) { + if (node->parent) + node->parent = node->parent->new_node; + } + return newtree; } @@ -1256,7 +694,7 @@ void ntreeSwitchID(bNodeTree *ntree, ID *id_from, ID *id_to) /* *************** preview *********** */ /* if node->preview, then we assume the rect to exist */ -static void node_free_preview(bNode *node) +void nodeFreePreview(bNode *node) { if(node->preview) { if(node->preview->rect) @@ -1360,7 +798,6 @@ void nodeAddToPreview(bNode *node, float *col, int x, int y, int do_manage) } } - /* ************** Free stuff ********** */ /* goes over entire tree */ @@ -1395,50 +832,84 @@ void nodeUnlinkNode(bNodeTree *ntree, bNode *node) } } -static void composit_free_node_cache(bNode *node) +static void node_unlink_attached(bNodeTree *ntree, bNode *parent) { - bNodeSocket *sock; - - for(sock= node->outputs.first; sock; sock= sock->next) { - if(sock->ns.data) { - free_compbuf(sock->ns.data); - sock->ns.data= NULL; - } + bNode *node; + for (node=ntree->nodes.first; node; node=node->next) { + if (node->parent == parent) + nodeDetachNode(node); } } void nodeFreeNode(bNodeTree *ntree, bNode *node) { + bNodeTreeType *treetype= ntreeGetType(ntree->type); + bNodeSocket *sock, *nextsock; + + /* remove all references to this node */ nodeUnlinkNode(ntree, node); + node_unlink_attached(ntree, node); + BLI_remlink(&ntree->nodes, node); /* since it is called while free database, node->id is undefined */ - if(ntree->type==NTREE_COMPOSIT) - composit_free_node_cache(node); - BLI_freelistN(&node->inputs); - BLI_freelistN(&node->outputs); + if (treetype->free_node_cache) + treetype->free_node_cache(ntree, node); - node_free_preview(node); + for (sock=node->inputs.first; sock; sock = nextsock) { + nextsock = sock->next; + if (sock->default_value) + MEM_freeN(sock->default_value); + MEM_freeN(sock); + } + for (sock=node->outputs.first; sock; sock = nextsock) { + nextsock = sock->next; + if (sock->default_value) + MEM_freeN(sock->default_value); + MEM_freeN(sock); + } + + nodeFreePreview(node); if(node->typeinfo && node->typeinfo->freestoragefunc) { node->typeinfo->freestoragefunc(node); } MEM_freeN(node); + + ntree->update |= NTREE_UPDATE_NODES; } /* do not free ntree itself here, free_libblock calls this function too */ void ntreeFreeTree(bNodeTree *ntree) { bNode *node, *next; + bNodeSocket *sock; if(ntree==NULL) return; - ntreeEndExecTree(ntree); /* checks for if it is still initialized */ + /* XXX hack! node trees should not store execution graphs at all. + * This should be removed when old tree types no longer require it. + * Currently the execution data for texture nodes remains in the tree + * after execution, until the node tree is updated or freed. + */ + if (ntree->execdata) { + switch (ntree->type) { + case NTREE_COMPOSIT: + ntreeCompositEndExecTree(ntree->execdata); + break; + case NTREE_SHADER: + ntreeShaderEndExecTree(ntree->execdata); + break; + case NTREE_TEXTURE: + ntreeTexEndExecTree(ntree->execdata); + break; + } + } BKE_free_animdata((ID *)ntree); - + id_us_min((ID *)ntree->gpd); BLI_freelistN(&ntree->links); /* do first, then unlink_node goes fast */ @@ -1448,25 +919,120 @@ void ntreeFreeTree(bNodeTree *ntree) nodeFreeNode(ntree, node); } + for (sock=ntree->inputs.first; sock; sock=sock->next) + if (sock->default_value) + MEM_freeN(sock->default_value); BLI_freelistN(&ntree->inputs); + for (sock=ntree->outputs.first; sock; sock=sock->next) + if (sock->default_value) + MEM_freeN(sock->default_value); BLI_freelistN(&ntree->outputs); } void ntreeFreeCache(bNodeTree *ntree) { - bNode *node; + bNodeTreeType *treetype; if(ntree==NULL) return; + + treetype= ntreeGetType(ntree->type); + if (treetype->free_cache) + treetype->free_cache(ntree); +} - if(ntree->type==NTREE_COMPOSIT) - for(node= ntree->nodes.first; node; node= node->next) - composit_free_node_cache(node); +void ntreeSetOutput(bNodeTree *ntree) +{ + bNode *node; + + /* find the active outputs, might become tree type dependant handler */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) { + bNode *tnode; + int output= 0; + + /* we need a check for which output node should be tagged like this, below an exception */ + if(node->type==CMP_NODE_OUTPUT_FILE) + continue; + + /* there is more types having output class, each one is checked */ + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) { + if(tnode->typeinfo->nclass==NODE_CLASS_OUTPUT) { + + if(ntree->type==NTREE_COMPOSIT) { + + /* same type, exception for viewer */ + if(tnode->type==node->type || + (ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) && + ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))) { + if(tnode->flag & NODE_DO_OUTPUT) { + output++; + if(output>1) + tnode->flag &= ~NODE_DO_OUTPUT; + } + } + } + else { + /* same type */ + if(tnode->type==node->type) { + if(tnode->flag & NODE_DO_OUTPUT) { + output++; + if(output>1) + tnode->flag &= ~NODE_DO_OUTPUT; + } + } + } + } + } + if(output==0) + node->flag |= NODE_DO_OUTPUT; + } + } + + /* here we could recursively set which nodes have to be done, + might be different for editor or for "real" use... */ +} + +typedef struct MakeLocalCallData { + ID *group_id; + ID *new_id; + int lib, local; +} MakeLocalCallData; + +static void ntreeMakeLocal_CheckLocal(void *calldata, ID *owner_id, bNodeTree *ntree) +{ + MakeLocalCallData *cd= (MakeLocalCallData*)calldata; + bNode *node; + + /* find if group is in tree */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->id == cd->group_id) { + if(owner_id->lib) cd->lib= 1; + else cd->local= 1; + } + } +} +static void ntreeMakeLocal_LinkNew(void *calldata, ID *owner_id, bNodeTree *ntree) +{ + MakeLocalCallData *cd= (MakeLocalCallData*)calldata; + bNode *node; + + /* find if group is in tree */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->id == cd->group_id) { + if(owner_id->lib==NULL) { + node->id= cd->new_id; + cd->new_id->us++; + cd->group_id->us--; + } + } + } } void ntreeMakeLocal(bNodeTree *ntree) { - int local=0, lib=0; + bNodeTreeType *treetype= ntreeGetType(ntree->type); + MakeLocalCallData cd; /* - only lib users: do nothing * - only local users: set flag @@ -1475,138 +1041,146 @@ void ntreeMakeLocal(bNodeTree *ntree) if(ntree->id.lib==NULL) return; if(ntree->id.us==1) { - ntree->id.lib= NULL; + ntree->id.lib= 0; ntree->id.flag= LIB_LOCAL; - new_id(NULL, (ID *)ntree, NULL); + new_id(0, (ID *)ntree, 0); return; } /* now check users of groups... again typedepending, callback... */ - if(ntree->type==NTREE_SHADER) { - Material *ma; - for(ma= G.main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= ma->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(ma->id.lib) lib= 1; - else local= 1; - } - } - } - } + cd.group_id = &ntree->id; + cd.new_id = NULL; + cd.local = 0; + cd.lib = 0; + + treetype->foreach_nodetree(G.main, &cd, &ntreeMakeLocal_CheckLocal); + + /* if all users are local, we simply make tree local */ + if(cd.local && cd.lib==0) { + ntree->id.lib= NULL; + ntree->id.flag= LIB_LOCAL; + new_id(0, (ID *)ntree, 0); } - else if(ntree->type==NTREE_COMPOSIT) { - Scene *sce; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= sce->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(sce->id.lib) lib= 1; - else local= 1; - } - } - } - } - } - else if(ntree->type==NTREE_TEXTURE) { - Tex *tx; - for(tx= G.main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= tx->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(tx->id.lib) lib= 1; - else local= 1; - } - } - } - } - } - - /* if all users are local, we simply make tree local */ - if(local && lib==0) { - ntree->id.lib= NULL; - ntree->id.flag= LIB_LOCAL; - new_id(NULL, (ID *)ntree, NULL); - } - else if(local && lib) { + else if(cd.local && cd.lib) { /* this is the mixed case, we copy the tree and assign it to local users */ bNodeTree *newtree= ntreeCopyTree(ntree); newtree->id.us= 0; - if(ntree->type==NTREE_SHADER) { - Material *ma; - for(ma= G.main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= ma->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(ma->id.lib==NULL) { - node->id= &newtree->id; - newtree->id.us++; - ntree->id.us--; - } - } - } - } - } - } - else if(ntree->type==NTREE_COMPOSIT) { - Scene *sce; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= sce->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(sce->id.lib==NULL) { - node->id= &newtree->id; - newtree->id.us++; - ntree->id.us--; - } - } - } - } - } - } - else if(ntree->type==NTREE_TEXTURE) { - Tex *tx; - for(tx= G.main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) { - bNode *node; - - /* find if group is in tree */ - for(node= tx->nodetree->nodes.first; node; node= node->next) { - if(node->id == (ID *)ntree) { - if(tx->id.lib==NULL) { - node->id= &newtree->id; - newtree->id.us++; - ntree->id.us--; - } - } - } - } + + cd.new_id = &newtree->id; + treetype->foreach_nodetree(G.main, &cd, &ntreeMakeLocal_LinkNew); + } +} + +int ntreeNodeExists(bNodeTree *ntree, bNode *testnode) +{ + bNode *node= ntree->nodes.first; + for(; node; node= node->next) + if(node==testnode) + return 1; + return 0; +} + +int ntreeOutputExists(bNode *node, bNodeSocket *testsock) +{ + bNodeSocket *sock= node->outputs.first; + for(; sock; sock= sock->next) + if(sock==testsock) + return 1; + return 0; +} + +/* returns localized tree for execution in threads */ +bNodeTree *ntreeLocalize(bNodeTree *ntree) +{ + bNodeTreeType *ntreetype= ntreeGetType(ntree->type); + + bNodeTree *ltree; + bNode *node; + + bAction *action_backup= NULL, *tmpact_backup= NULL; + + /* Workaround for copying an action on each render! + * set action to NULL so animdata actions dont get copied */ + AnimData *adt= BKE_animdata_from_id(&ntree->id); + + if(adt) { + action_backup= adt->action; + tmpact_backup= adt->tmpact; + + adt->action= NULL; + adt->tmpact= NULL; + } + + /* node copy func */ + ltree= ntreeCopyTree(ntree); + + if(adt) { + AnimData *ladt= BKE_animdata_from_id(<ree->id); + + adt->action= ladt->action= action_backup; + adt->tmpact= ladt->tmpact= tmpact_backup; + + if(action_backup) action_backup->id.us++; + if(tmpact_backup) tmpact_backup->id.us++; + + } + /* end animdata uglyness */ + + /* ensures only a single output node is enabled */ + ntreeSetOutput(ntree); + + for(node= ntree->nodes.first; node; node= node->next) { + /* store new_node pointer to original */ + node->new_node->new_node= node; + } + + if (ntreetype->localize) + ntreetype->localize(ltree, ntree); + + return ltree; +} + +/* sync local composite with real tree */ +/* local tree is supposed to be running, be careful moving previews! */ +/* is called by jobs manager, outside threads, so it doesnt happen during draw */ +void ntreeLocalSync(bNodeTree *localtree, bNodeTree *ntree) +{ + bNodeTreeType *ntreetype= ntreeGetType(ntree->type); + + if (ntreetype->local_sync) + ntreetype->local_sync(localtree, ntree); +} + +/* merge local tree results back, and free local tree */ +/* we have to assume the editor already changed completely */ +void ntreeLocalMerge(bNodeTree *localtree, bNodeTree *ntree) +{ + bNodeTreeType *ntreetype= ntreeGetType(ntree->type); + bNode *lnode; + + /* move over the compbufs and previews */ + for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { + if(ntreeNodeExists(ntree, lnode->new_node)) { + if(lnode->preview && lnode->preview->rect) { + nodeFreePreview(lnode->new_node); + lnode->new_node->preview= lnode->preview; + lnode->preview= NULL; } } } -} + if (ntreetype->local_merge) + ntreetype->local_merge(localtree, ntree); + + ntreeFreeTree(localtree); + MEM_freeN(localtree); +} /* ************ find stuff *************** */ -static int ntreeHasType(bNodeTree *ntree, int type) +int ntreeHasType(bNodeTree *ntree, int type) { bNode *node; @@ -1735,1662 +1309,360 @@ void nodeSetActive(bNodeTree *ntree, bNode *node) tnode->flag &= ~NODE_ACTIVE_ID; } } - - node->flag |= NODE_ACTIVE; - if(node->id) - node->flag |= NODE_ACTIVE_ID; -} - -/* use flags are not persistant yet, groups might need different tagging, so we do it each time - when we need to get this info */ -void ntreeSocketUseFlags(bNodeTree *ntree) -{ - bNode *node; - bNodeSocket *sock; - bNodeLink *link; - - /* clear flags */ - for(node= ntree->nodes.first; node; node= node->next) { - for(sock= node->inputs.first; sock; sock= sock->next) - sock->flag &= ~SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - sock->flag &= ~SOCK_IN_USE; - } - - /* tag all thats in use */ - for(link= ntree->links.first; link; link= link->next) { - - if(link->fromsock) // FIXME, see below - link->fromsock->flag |= SOCK_IN_USE; - if(link->tosock) // FIXME This can be NULL, when dragging a new link in the UI, should probably copy the node tree for preview render - campbell - link->tosock->flag |= SOCK_IN_USE; - } -} - -/* ************** dependency stuff *********** */ - -/* node is guaranteed to be not checked before */ -static int node_recurs_check(bNode *node, bNode ***nsort) -{ - bNode *fromnode; - bNodeSocket *sock; - int level = 0xFFF; - - node->done= 1; - - for(sock= node->inputs.first; sock; sock= sock->next) { - if(sock->link) { - fromnode= sock->link->fromnode; - if(fromnode) { - if (fromnode->done==0) - fromnode->level= node_recurs_check(fromnode, nsort); - if (fromnode->level <= level) - level = fromnode->level - 1; - } - } - } - **nsort= node; - (*nsort)++; - - return level; -} - - -static void ntreeSetOutput(bNodeTree *ntree) -{ - bNode *node; - - /* find the active outputs, might become tree type dependant handler */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) { - bNode *tnode; - int output= 0; - - /* we need a check for which output node should be tagged like this, below an exception */ - if(node->type==CMP_NODE_OUTPUT_FILE) - continue; - - /* there is more types having output class, each one is checked */ - for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) { - if(tnode->typeinfo->nclass==NODE_CLASS_OUTPUT) { - - if(ntree->type==NTREE_COMPOSIT) { - - /* same type, exception for viewer */ - if(tnode->type==node->type || - (ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) && - ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))) { - if(tnode->flag & NODE_DO_OUTPUT) { - output++; - if(output>1) - tnode->flag &= ~NODE_DO_OUTPUT; - } - } - } - else { - /* same type */ - if(tnode->type==node->type) { - if(tnode->flag & NODE_DO_OUTPUT) { - output++; - if(output>1) - tnode->flag &= ~NODE_DO_OUTPUT; - } - } - } - } - } - if(output==0) - node->flag |= NODE_DO_OUTPUT; - } - } - - /* here we could recursively set which nodes have to be done, - might be different for editor or for "real" use... */ -} - -void ntreeSolveOrder(bNodeTree *ntree) -{ - bNode *node, **nodesort, **nsort; - bNodeSocket *sock; - bNodeLink *link; - int a, totnode=0; - - /* the solve-order is called on each tree change, so we should be sure no exec can be running */ - ntreeEndExecTree(ntree); - - /* set links pointers the input sockets, to find dependencies */ - /* first clear data */ - for(node= ntree->nodes.first; node; node= node->next) { - node->done= 0; - totnode++; - for(sock= node->inputs.first; sock; sock= sock->next) - sock->link= NULL; - } - /* clear group socket links */ - for(sock= ntree->outputs.first; sock; sock= sock->next) - sock->link= NULL; - if(totnode==0) - return; - - for(link= ntree->links.first; link; link= link->next) { - link->tosock->link= link; - } - - nsort= nodesort= MEM_callocN(totnode*sizeof(void *), "sorted node array"); - - /* recursive check */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->done==0) { - node->level= node_recurs_check(node, &nsort); - } - } - - /* re-insert nodes in order, first a paranoia check */ - for(a=0; anodes.first= ntree->nodes.last= NULL; - for(a=0; anodes, nodesort[a]); - } - - MEM_freeN(nodesort); - - ntreeSetOutput(ntree); -} - - -/* Should be callback! */ -/* Do not call execs here */ -void NodeTagChanged(bNodeTree *ntree, bNode *node) -{ - if(ntree->type==NTREE_COMPOSIT) { - bNodeSocket *sock; - - for(sock= node->outputs.first; sock; sock= sock->next) { - if(sock->ns.data) { - //free_compbuf(sock->ns.data); - //sock->ns.data= NULL; - } - } - node->need_exec= 1; - } -} - -int NodeTagIDChanged(bNodeTree *ntree, ID *id) -{ - int change = FALSE; - - if(ELEM(NULL, id, ntree)) - return change; - - if(ntree->type==NTREE_COMPOSIT) { - bNode *node; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->id==id) { - change= TRUE; - NodeTagChanged(ntree, node); - } - } - } - - return change; -} - - - -/* ******************* executing ************* */ - -/* for a given socket, find the actual stack entry */ -static bNodeStack *get_socket_stack(bNodeStack *stack, bNodeSocket *sock, bNodeStack **gin) -{ - switch (sock->stack_type) { - case SOCK_STACK_LOCAL: - return stack + sock->stack_index; - case SOCK_STACK_EXTERN: - return (gin ? gin[sock->stack_index] : NULL); - case SOCK_STACK_CONST: - return sock->stack_ptr; - } - return NULL; -} - -/* see notes at ntreeBeginExecTree */ -static void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out, bNodeStack **gin) -{ - bNodeSocket *sock; - - /* build pointer stack */ - if (in) { - for(sock= node->inputs.first; sock; sock= sock->next) { - *(in++) = get_socket_stack(stack, sock, gin); - } - } - - if (out) { - for(sock= node->outputs.first; sock; sock= sock->next) { - *(out++) = get_socket_stack(stack, sock, gin); - } - } -} - -static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNodeStack **in) -{ - bNode *node; - bNodeTree *ntree= (bNodeTree *)gnode->id; - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - - if(ntree==NULL) return; - - stack+= gnode->stack_index; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->execfunc) { - node_get_stack(node, stack, nsin, nsout, in); - - /* for groups, only execute outputs for edited group */ - if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) { - if(node->type==CMP_NODE_OUTPUT_FILE || (gnode->flag & NODE_GROUP_EDIT)) - node->typeinfo->execfunc(data, node, nsin, nsout); - } - else - node->typeinfo->execfunc(data, node, nsin, nsout); - } - } - - /* free internal buffers */ - if (ntree->type==NTREE_COMPOSIT) { - bNodeSocket *sock; - bNodeStack *ns; - - /* clear hasoutput on all local stack data, - * only the group output will be used from now on - */ - for (node=ntree->nodes.first; node; node=node->next) { - for (sock=node->outputs.first; sock; sock=sock->next) { - if (sock->stack_type==SOCK_STACK_LOCAL) { - ns= get_socket_stack(stack, sock, in); - ns->hasoutput = 0; - } - } - } - /* use the hasoutput flag to tag external sockets */ - for (sock=ntree->outputs.first; sock; sock=sock->next) { - if (sock->stack_type==SOCK_STACK_LOCAL) { - ns= get_socket_stack(stack, sock, in); - ns->hasoutput = 1; - } - } - /* now free all stacks that are not used from outside */ - for (node=ntree->nodes.first; node; node=node->next) { - for (sock=node->outputs.first; sock; sock=sock->next) { - if (sock->stack_type==SOCK_STACK_LOCAL ) { - ns= get_socket_stack(stack, sock, in); - if (ns->hasoutput==0 && ns->data) { - free_compbuf(ns->data); - ns->data = NULL; - } - } - } - } - } -} - -static int set_stack_indexes_default(bNode *node, int index) -{ - bNodeSocket *sock; - - for (sock=node->inputs.first; sock; sock=sock->next) { - if (sock->link && sock->link->fromsock) { - sock->stack_type = sock->link->fromsock->stack_type; - sock->stack_index = sock->link->fromsock->stack_index; - sock->stack_ptr = sock->link->fromsock->stack_ptr; - } - else { - sock->stack_type = SOCK_STACK_CONST; - sock->stack_index = -1; - sock->stack_ptr = &sock->ns; - } - } - - for (sock=node->outputs.first; sock; sock=sock->next) { - sock->stack_type = SOCK_STACK_LOCAL; - sock->stack_index = index++; - sock->stack_ptr = NULL; - } - - return index; -} - -static int ntree_begin_exec_tree(bNodeTree *ntree); -static int set_stack_indexes_group(bNode *node, int index) -{ - bNodeTree *ngroup= (bNodeTree*)node->id; - bNodeSocket *sock; - - if(ngroup && (ngroup->init & NTREE_TYPE_INIT)==0) - ntreeInitTypes(ngroup); - - node->stack_index = index; - if(ngroup) - index += ntree_begin_exec_tree(ngroup); - - for (sock=node->inputs.first; sock; sock=sock->next) { - if (sock->link && sock->link->fromsock) { - sock->stack_type = sock->link->fromsock->stack_type; - sock->stack_index = sock->link->fromsock->stack_index; - sock->stack_ptr = sock->link->fromsock->stack_ptr; - } - else { - sock->stack_type = SOCK_STACK_CONST; - sock->stack_index = -1; - sock->stack_ptr = &sock->ns; - } - } - - /* identify group node outputs from internal group sockets */ - for(sock= node->outputs.first; sock; sock= sock->next) { - if (sock->groupsock) { - bNodeSocket *insock, *gsock = sock->groupsock; - switch (gsock->stack_type) { - case SOCK_STACK_EXTERN: - /* extern stack is resolved for this group node instance */ - insock= find_group_node_input(node, gsock->link->fromsock); - sock->stack_type = insock->stack_type; - sock->stack_index = insock->stack_index; - sock->stack_ptr = insock->stack_ptr; - break; - case SOCK_STACK_LOCAL: - sock->stack_type = SOCK_STACK_LOCAL; - /* local stack index must be offset by group node instance */ - sock->stack_index = gsock->stack_index + node->stack_index; - sock->stack_ptr = NULL; - break; - case SOCK_STACK_CONST: - sock->stack_type = SOCK_STACK_CONST; - sock->stack_index = -1; - sock->stack_ptr = gsock->stack_ptr; - break; - } - } - else { - sock->stack_type = SOCK_STACK_LOCAL; - sock->stack_index = index++; - sock->stack_ptr = NULL; - } - } - - return index; -} - -/* recursively called for groups */ -/* we set all trees on own local indices, but put a total counter - in the groups, so each instance of a group has own stack */ -static int ntree_begin_exec_tree(bNodeTree *ntree) -{ - bNode *node; - bNodeSocket *gsock; - int index= 0, i; - - if((ntree->init & NTREE_TYPE_INIT)==0) - ntreeInitTypes(ntree); - - /* group inputs are numbered 0..totinputs, so external stack can easily be addressed */ - i = 0; - for(gsock=ntree->inputs.first; gsock; gsock = gsock->next) { - gsock->stack_type = SOCK_STACK_EXTERN; - gsock->stack_index = i++; - gsock->stack_ptr = NULL; - } - - /* create indices for stack, check preview */ - for(node= ntree->nodes.first; node; node= node->next) { - /* XXX can this be done by a generic one-for-all function? - * otherwise should use node-type callback. - */ - if(node->type==NODE_GROUP) - index = set_stack_indexes_group(node, index); - else - index = set_stack_indexes_default(node, index); - } - - /* group outputs */ - for(gsock=ntree->outputs.first; gsock; gsock = gsock->next) { - if (gsock->link && gsock->link->fromsock) { - gsock->stack_type = gsock->link->fromsock->stack_type; - gsock->stack_index = gsock->link->fromsock->stack_index; - gsock->stack_ptr = gsock->link->fromsock->stack_ptr; - } - else { - gsock->stack_type = SOCK_STACK_CONST; - gsock->stack_index = -1; - gsock->stack_ptr = &gsock->ns; - } - } - - return index; -} - -/* copy socket compbufs to stack, initialize usage of curve nodes */ -static void composit_begin_exec(bNodeTree *ntree, bNodeStack *stack) -{ - bNode *node; - bNodeSocket *sock; - - for(node= ntree->nodes.first; node; node= node->next) { - - /* initialize needed for groups */ - node->exec= 0; - - for(sock= node->outputs.first; sock; sock= sock->next) { - bNodeStack *ns= get_socket_stack(stack, sock, NULL); - if(ns && sock->ns.data) { - ns->data= sock->ns.data; - sock->ns.data= NULL; - } - } - - /* cannot initialize them while using in threads */ - if(ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT)) { - curvemapping_initialize(node->storage); - if(node->type==CMP_NODE_CURVE_RGB) - curvemapping_premultiply(node->storage, 0); - } - if(node->type==NODE_GROUP && node->id) - composit_begin_exec((bNodeTree *)node->id, stack + node->stack_index); - - } -} - -/* copy stack compbufs to sockets */ -static void composit_end_exec(bNodeTree *ntree, bNodeStack *stack) -{ - bNode *node; - bNodeStack *ns; - - for(node= ntree->nodes.first; node; node= node->next) { - bNodeSocket *sock; - - for(sock= node->outputs.first; sock; sock= sock->next) { - ns = get_socket_stack(stack, sock, NULL); - if(ns && ns->data) { - sock->ns.data= ns->data; - ns->data= NULL; - } - } - - if(node->type==CMP_NODE_CURVE_RGB) - curvemapping_premultiply(node->storage, 1); - - if(node->type==NODE_GROUP && node->id) - composit_end_exec((bNodeTree *)node->id, stack + node->stack_index); - - node->need_exec= 0; - } -} - -static void group_tag_used_outputs(bNode *gnode, bNodeStack *stack, bNodeStack **gin) -{ - bNodeTree *ntree= (bNodeTree *)gnode->id; - bNode *node; - bNodeSocket *sock; - - stack+= gnode->stack_index; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->execfunc) { - for(sock= node->inputs.first; sock; sock= sock->next) { - bNodeStack *ns = get_socket_stack(stack, sock, gin); - ns->hasoutput= 1; - } - } - - /* non-composite trees do all nodes by default */ - if (ntree->type!=NTREE_COMPOSIT) - node->need_exec = 1; - - for(sock= node->inputs.first; sock; sock= sock->next) { - bNodeStack *ns = get_socket_stack(stack, sock, gin); - if (ns) { - ns->hasoutput = 1; - - /* sock type is needed to detect rgba or value or vector types */ - if(sock->link && sock->link->fromsock) - ns->sockettype= sock->link->fromsock->type; - else - sock->ns.sockettype= sock->type; - } - - if(sock->link) { - bNodeLink *link= sock->link; - /* this is the test for a cyclic case */ - if(link->fromnode && link->tonode) { - if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF); - else { - node->need_exec= 0; - } - } - } - } - - /* set stack types (for local stack entries) */ - for(sock= node->outputs.first; sock; sock= sock->next) { - bNodeStack *ns = get_socket_stack(stack, sock, gin); - if (ns) - ns->sockettype = sock->type; - } - } -} - -/* notes below are ancient! (ton) */ -/* stack indices make sure all nodes only write in allocated data, for making it thread safe */ -/* only root tree gets the stack, to enable instances to have own stack entries */ -/* per tree (and per group) unique indices are created */ -/* the index_ext we need to be able to map from groups to the group-node own stack */ - -typedef struct bNodeThreadStack { - struct bNodeThreadStack *next, *prev; - bNodeStack *stack; - int used; -} bNodeThreadStack; - -static bNodeThreadStack *ntreeGetThreadStack(bNodeTree *ntree, int thread) -{ - ListBase *lb= &ntree->threadstack[thread]; - bNodeThreadStack *nts; - - for(nts=lb->first; nts; nts=nts->next) { - if(!nts->used) { - nts->used= 1; - return nts; - } - } - nts= MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack"); - nts->stack= MEM_dupallocN(ntree->stack); - nts->used= 1; - BLI_addtail(lb, nts); - - return nts; -} - -static void ntreeReleaseThreadStack(bNodeThreadStack *nts) -{ - nts->used= 0; -} - -/* free texture delegates */ -static void tex_end_exec(bNodeTree *ntree) -{ - bNodeThreadStack *nts; - bNodeStack *ns; - int th, a; - - if(ntree->threadstack) { - for(th=0; ththreadstack[th].first; nts; nts=nts->next) { - for(ns= nts->stack, a=0; astacksize; a++, ns++) { - if(ns->data) { - MEM_freeN(ns->data); - ns->data= NULL; - } - } - } - } - } -} - -void ntreeBeginExecTree(bNodeTree *ntree) -{ - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - - /* let's make it sure */ - if(ntree->init & NTREE_EXEC_INIT) - return; - - /* allocate the thread stack listbase array */ - if(ntree->type!=NTREE_COMPOSIT) - ntree->threadstack= MEM_callocN(BLENDER_MAX_THREADS*sizeof(ListBase), "thread stack array"); - - /* goes recursive over all groups */ - ntree->stacksize= ntree_begin_exec_tree(ntree); - - if(ntree->stacksize) { - bNode *node; - bNodeStack *ns; - int a; - - /* allocate the base stack */ - ns=ntree->stack= MEM_callocN(ntree->stacksize*sizeof(bNodeStack), "node stack"); - - /* tag inputs, the get_stack() gives own socket stackdata if not in use */ - for(a=0; astacksize; a++, ns++) ns->hasinput= 1; - - /* tag used outputs, so we know when we can skip operations */ - for(node= ntree->nodes.first; node; node= node->next) { - bNodeSocket *sock; - - /* non-composite trees do all nodes by default */ - if(ntree->type!=NTREE_COMPOSIT) - node->need_exec= 1; - - for(sock= node->inputs.first; sock; sock= sock->next) { - ns = get_socket_stack(ntree->stack, sock, NULL); - if (ns) { - ns->hasoutput = 1; - - /* sock type is needed to detect rgba or value or vector types */ - if(sock->link && sock->link->fromsock) - ns->sockettype= sock->link->fromsock->type; - else - sock->ns.sockettype= sock->type; - } - - if(sock->link) { - bNodeLink *link= sock->link; - /* this is the test for a cyclic case */ - if(link->fromnode && link->tonode) { - if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF); - else { - node->need_exec= 0; - } - } - } - } - - /* set stack types (for local stack entries) */ - for(sock= node->outputs.first; sock; sock= sock->next) { - ns = get_socket_stack(ntree->stack, sock, NULL); - if (ns) - ns->sockettype = sock->type; - } - - if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, ntree->stack, nsin, NULL, NULL); - group_tag_used_outputs(node, ntree->stack, nsin); - } - } - - if(ntree->type==NTREE_COMPOSIT) - composit_begin_exec(ntree, ntree->stack); - - /* ensures only a single output node is enabled, texnode allows multiple though */ - if(ntree->type!=NTREE_TEXTURE) - ntreeSetOutput(ntree); - - } - - ntree->init |= NTREE_EXEC_INIT; -} - -void ntreeEndExecTree(bNodeTree *ntree) -{ - bNodeStack *ns; - - if(ntree->init & NTREE_EXEC_INIT) { - bNodeThreadStack *nts; - int a; - - /* another callback candidate! */ - if(ntree->type==NTREE_COMPOSIT) { - composit_end_exec(ntree, ntree->stack); - - for(ns= ntree->stack, a=0; astacksize; a++, ns++) { - if(ns->data) { - printf("freed leftover buffer from stack\n"); - free_compbuf(ns->data); - ns->data= NULL; - } - } - } - else if(ntree->type==NTREE_TEXTURE) - tex_end_exec(ntree); - - if(ntree->stack) { - MEM_freeN(ntree->stack); - ntree->stack= NULL; - } - - if(ntree->threadstack) { - for(a=0; athreadstack[a].first; nts; nts=nts->next) - if (nts->stack) MEM_freeN(nts->stack); - BLI_freelistN(&ntree->threadstack[a]); - } - - MEM_freeN(ntree->threadstack); - ntree->threadstack= NULL; - } - - ntree->init &= ~NTREE_EXEC_INIT; - } -} - -/* nodes are presorted, so exec is in order of list */ -void ntreeExecTree(bNodeTree *ntree, void *callerdata, int thread) -{ - bNode *node; - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *stack; - bNodeThreadStack *nts = NULL; - - /* only when initialized */ - if((ntree->init & NTREE_EXEC_INIT)==0) - ntreeBeginExecTree(ntree); - - /* composite does 1 node per thread, so no multiple stacks needed */ - if(ntree->type==NTREE_COMPOSIT) { - stack= ntree->stack; - } - else { - nts= ntreeGetThreadStack(ntree, thread); - stack= nts->stack; - } - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->need_exec) { - if(node->typeinfo->execfunc) { - node_get_stack(node, stack, nsin, nsout, NULL); - node->typeinfo->execfunc(callerdata, node, nsin, nsout); - } - else if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, stack, nsin, NULL, NULL); - node_group_execute(stack, callerdata, node, nsin); - } - } - } - - if(nts) - ntreeReleaseThreadStack(nts); -} - - -/* ***************************** threaded version for execute composite nodes ************* */ -/* these are nodes without input, only giving values */ -/* or nodes with only value inputs */ -static int node_only_value(bNode *node) -{ - bNodeSocket *sock; - - if(ELEM3(node->type, CMP_NODE_TIME, CMP_NODE_VALUE, CMP_NODE_RGB)) - return 1; - - /* doing this for all node types goes wrong. memory free errors */ - if(node->inputs.first && node->type==CMP_NODE_MAP_VALUE) { - int retval= 1; - for(sock= node->inputs.first; sock; sock= sock->next) { - if(sock->link && sock->link->fromnode) - retval &= node_only_value(sock->link->fromnode); - } - return retval; - } - return 0; -} - - -/* not changing info, for thread callback */ -typedef struct ThreadData { - bNodeStack *stack; - RenderData *rd; -} ThreadData; - -static void *exec_composite_node(void *node_v) -{ - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - bNode *node= node_v; - ThreadData *thd= (ThreadData *)node->threaddata; - - node_get_stack(node, thd->stack, nsin, nsout, NULL); - - if((node->flag & NODE_MUTED) && (!node_only_value(node))) { - /* viewers we execute, for feedback to user */ - if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) - node->typeinfo->execfunc(thd->rd, node, nsin, nsout); - else - node_compo_pass_on(node, nsin, nsout); - } - else if(node->typeinfo->execfunc) { - node->typeinfo->execfunc(thd->rd, node, nsin, nsout); - } - else if(node->type==NODE_GROUP && node->id) { - node_group_execute(thd->stack, thd->rd, node, nsin); - } - - node->exec |= NODE_READY; - return NULL; -} - -/* return total of executable nodes, for timecursor */ -/* only compositor uses it */ -static int setExecutableNodes(bNodeTree *ntree, ThreadData *thd) -{ - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - bNode *node; - bNodeSocket *sock; - int totnode= 0, group_edit= 0; - - /* note; do not add a dependency sort here, the stack was created already */ - - /* if we are in group edit, viewer nodes get skipped when group has viewer */ - for(node= ntree->nodes.first; node; node= node->next) - if(node->type==NODE_GROUP && (node->flag & NODE_GROUP_EDIT)) - if(ntreeHasType((bNodeTree *)node->id, CMP_NODE_VIEWER)) - group_edit= 1; - - for(node= ntree->nodes.first; node; node= node->next) { - int a; - - node_get_stack(node, thd->stack, nsin, nsout, NULL); - - /* test the outputs */ - /* skip value-only nodes (should be in type!) */ - if(!node_only_value(node)) { - for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { - if(nsout[a]->data==NULL && nsout[a]->hasoutput) { - node->need_exec= 1; - break; - } - } - } - - /* test the inputs */ - for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { - /* skip viewer nodes in bg render or group edit */ - if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) && (G.background || group_edit)) - node->need_exec= 0; - /* is sock in use? */ - else if(sock->link) { - bNodeLink *link= sock->link; - - /* this is the test for a cyclic case */ - if(link->fromnode==NULL || link->tonode==NULL); - else if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) { - if(link->fromnode->need_exec) { - node->need_exec= 1; - break; - } - } - else { - node->need_exec= 0; - printf("Node %s skipped, cyclic dependency\n", node->name); - } - } - } - - if(node->need_exec) { - - /* free output buffers */ - for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { - if(nsout[a]->data) { - free_compbuf(nsout[a]->data); - nsout[a]->data= NULL; - } - } - totnode++; - /* printf("node needs exec %s\n", node->name); */ - - /* tag for getExecutableNode() */ - node->exec= 0; - } - else { - /* tag for getExecutableNode() */ - node->exec= NODE_READY|NODE_FINISHED|NODE_SKIPPED; - - } - } - - /* last step: set the stack values for only-value nodes */ - /* just does all now, compared to a full buffer exec this is nothing */ - if(totnode) { - for(node= ntree->nodes.first; node; node= node->next) { - if(node->need_exec==0 && node_only_value(node)) { - if(node->typeinfo->execfunc) { - node_get_stack(node, thd->stack, nsin, nsout, NULL); - node->typeinfo->execfunc(thd->rd, node, nsin, nsout); - } - } - } - } - - return totnode; -} - -/* while executing tree, free buffers from nodes that are not needed anymore */ -static void freeExecutableNode(bNodeTree *ntree) -{ - /* node outputs can be freed when: - - not a render result or image node - - when node outputs go to nodes all being set NODE_FINISHED - */ - bNode *node; - bNodeSocket *sock; - - /* set exec flag for finished nodes that might need freed */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type!=CMP_NODE_R_LAYERS) - if(node->exec & NODE_FINISHED) - node->exec |= NODE_FREEBUFS; - } - /* clear this flag for input links that are not done yet */ - for(node= ntree->nodes.first; node; node= node->next) { - if((node->exec & NODE_FINISHED)==0) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link && sock->link->fromnode) - sock->link->fromnode->exec &= ~NODE_FREEBUFS; - } - } - /* now we can free buffers */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->exec & NODE_FREEBUFS) { - for(sock= node->outputs.first; sock; sock= sock->next) { - bNodeStack *ns= get_socket_stack(ntree->stack, sock, NULL); - if(ns && ns->data) { - free_compbuf(ns->data); - ns->data= NULL; - // printf("freed buf node %s \n", node->name); - } - } - } - } -} - -static bNode *getExecutableNode(bNodeTree *ntree) -{ - bNode *node; - bNodeSocket *sock; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->exec==0) { - - /* input sockets should be ready */ - for(sock= node->inputs.first; sock; sock= sock->next) { - if(sock->link && sock->link->fromnode) - if((sock->link->fromnode->exec & NODE_READY)==0) - break; - } - if(sock==NULL) - return node; - } - } - return NULL; -} - -/* check if texture nodes need exec or end */ -static void ntree_composite_texnode(bNodeTree *ntree, int init) -{ - bNode *node; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type==CMP_NODE_TEXTURE && node->id) { - Tex *tex= (Tex *)node->id; - if(tex->nodetree && tex->use_nodes) { - /* has internal flag to detect it only does it once */ - if(init) - ntreeBeginExecTree(tex->nodetree); - else - ntreeEndExecTree(tex->nodetree); - } - } - } - -} - -/* optimized tree execute test for compositing */ -void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) -{ - bNode *node; - ListBase threads; - ThreadData thdata; - int totnode, curnode, rendering= 1; - - if(ntree==NULL) return; - - if(do_preview) - ntreeInitPreview(ntree, 0, 0); - - ntreeBeginExecTree(ntree); - ntree_composite_texnode(ntree, 1); - - /* prevent unlucky accidents */ - if(G.background) - rd->scemode &= ~R_COMP_CROP; - - /* setup callerdata for thread callback */ - thdata.rd= rd; - thdata.stack= ntree->stack; - - /* fixed seed, for example noise texture */ - BLI_srandom(rd->cfra); - - /* sets need_exec tags in nodes */ - curnode = totnode= setExecutableNodes(ntree, &thdata); - - BLI_init_threads(&threads, exec_composite_node, rd->threads); - - while(rendering) { - - if(BLI_available_threads(&threads)) { - node= getExecutableNode(ntree); - if(node) { - if(ntree->progress && totnode) - ntree->progress(ntree->prh, (1.0f - curnode/(float)totnode)); - if(ntree->stats_draw) { - char str[64]; - sprintf(str, "Compositing %d %s", curnode, node->name); - ntree->stats_draw(ntree->sdh, str); - } - curnode--; - - node->threaddata = &thdata; - node->exec= NODE_PROCESSING; - BLI_insert_thread(&threads, node); - } - else - PIL_sleep_ms(50); - } - else - PIL_sleep_ms(50); - - rendering= 0; - /* test for ESC */ - if(ntree->test_break && ntree->test_break(ntree->tbh)) { - for(node= ntree->nodes.first; node; node= node->next) - node->exec |= NODE_READY; - } - - /* check for ready ones, and if we need to continue */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->exec & NODE_READY) { - if((node->exec & NODE_FINISHED)==0) { - BLI_remove_thread(&threads, node); /* this waits for running thread to finish btw */ - node->exec |= NODE_FINISHED; - - /* freeing unused buffers */ - if(rd->scemode & R_COMP_FREE) - freeExecutableNode(ntree); - } - } - else rendering= 1; - } - } - - BLI_end_threads(&threads); - - ntreeEndExecTree(ntree); -} - - -/* ********** copy composite tree entirely, to allow threaded exec ******************* */ -/* ***************** do NOT execute this in a thread! ****************** */ - -/* returns localized tree for execution in threads */ -/* local tree then owns all compbufs (for composite) */ -bNodeTree *ntreeLocalize(bNodeTree *ntree) -{ - bNodeTree *ltree; - bNode *node; - bNodeSocket *sock; - - bAction *action_backup= NULL, *tmpact_backup= NULL; - - /* Workaround for copying an action on each render! - * set action to NULL so animdata actions dont get copied */ - AnimData *adt= BKE_animdata_from_id(&ntree->id); - - if(adt) { - action_backup= adt->action; - tmpact_backup= adt->tmpact; - - adt->action= NULL; - adt->tmpact= NULL; - } - - /* node copy func */ - ltree= ntreeCopyTree(ntree); - - if(adt) { - AnimData *ladt= BKE_animdata_from_id(<ree->id); - - adt->action= ladt->action= action_backup; - adt->tmpact= ladt->tmpact= tmpact_backup; - - if(action_backup) action_backup->id.us++; - if(tmpact_backup) tmpact_backup->id.us++; - - } - /* end animdata uglyness */ - - /* ensures only a single output node is enabled */ - ntreeSetOutput(ltree); - - for(node= ntree->nodes.first; node; node= node->next) { - - /* store new_node pointer to original */ - node->new_node->new_node= node; - - if(ntree->type==NTREE_COMPOSIT) { - /* ensure new user input gets handled ok, only composites (texture nodes will break, for painting since it uses no tags) */ - node->need_exec= 0; - - /* move over the compbufs */ - /* right after ntreeCopyTree() oldsock pointers are valid */ - - if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { - if(node->id) { - if(node->flag & NODE_DO_OUTPUT) - node->new_node->id= (ID *)copy_image((Image *)node->id); - else - node->new_node->id= NULL; - } - } - - for(sock= node->outputs.first; sock; sock= sock->next) { - - sock->new_sock->ns.data= sock->ns.data; - compbuf_set_node(sock->new_sock->ns.data, node->new_node); - - sock->ns.data= NULL; - sock->new_sock->new_sock= sock; - } - } - } - - return ltree; -} - -static int node_exists(bNodeTree *ntree, bNode *testnode) -{ - bNode *node= ntree->nodes.first; - for(; node; node= node->next) - if(node==testnode) - return 1; - return 0; -} - -static int outsocket_exists(bNode *node, bNodeSocket *testsock) -{ - bNodeSocket *sock= node->outputs.first; - for(; sock; sock= sock->next) - if(sock==testsock) - return 1; - return 0; -} - - -/* sync local composite with real tree */ -/* local composite is supposed to be running, be careful moving previews! */ -/* is called by jobs manager, outside threads, so it doesnt happen during draw */ -void ntreeLocalSync(bNodeTree *localtree, bNodeTree *ntree) -{ - bNode *lnode; - - if(ntree->type==NTREE_COMPOSIT) { - /* move over the compbufs and previews */ - for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { - if( (lnode->exec & NODE_READY) && !(lnode->exec & NODE_SKIPPED) ) { - if(node_exists(ntree, lnode->new_node)) { - - if(lnode->preview && lnode->preview->rect) { - node_free_preview(lnode->new_node); - lnode->new_node->preview= lnode->preview; - lnode->preview= NULL; - } - } - } - } - } - else if(ELEM(ntree->type, NTREE_SHADER, NTREE_TEXTURE)) { - /* copy over contents of previews */ - for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { - if(node_exists(ntree, lnode->new_node)) { - bNode *node= lnode->new_node; - - if(node->preview && node->preview->rect) { - if(lnode->preview && lnode->preview->rect) { - int xsize= node->preview->xsize; - int ysize= node->preview->ysize; - memcpy(node->preview->rect, lnode->preview->rect, 4*xsize + xsize*ysize*sizeof(char)*4); - } - } - } - } - } -} - -/* merge local tree results back, and free local tree */ -/* we have to assume the editor already changed completely */ -void ntreeLocalMerge(bNodeTree *localtree, bNodeTree *ntree) -{ - bNode *lnode; - bNodeSocket *lsock; - - /* move over the compbufs and previews */ - for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { - if(node_exists(ntree, lnode->new_node)) { - - if(lnode->preview && lnode->preview->rect) { - node_free_preview(lnode->new_node); - lnode->new_node->preview= lnode->preview; - lnode->preview= NULL; - } - - if(ELEM(lnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { - if(lnode->id && (lnode->flag & NODE_DO_OUTPUT)) { - /* image_merge does sanity check for pointers */ - BKE_image_merge((Image *)lnode->new_node->id, (Image *)lnode->id); - } - } - - for(lsock= lnode->outputs.first; lsock; lsock= lsock->next) { - if(outsocket_exists(lnode->new_node, lsock->new_sock)) { - lsock->new_sock->ns.data= lsock->ns.data; - compbuf_set_node(lsock->new_sock->ns.data, lnode->new_node); - lsock->ns.data= NULL; - lsock->new_sock= NULL; - } - } - } - } - ntreeFreeTree(localtree); - MEM_freeN(localtree); + + node->flag |= NODE_ACTIVE; + if(node->id) + node->flag |= NODE_ACTIVE_ID; } -/* *********************************************** */ - -/* GPU material from shader nodes */ - -static void gpu_from_node_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs) +/* use flags are not persistant yet, groups might need different tagging, so we do it each time + when we need to get this info */ +void ntreeSocketUseFlags(bNodeTree *ntree) { + bNode *node; bNodeSocket *sock; - int i; - - for (sock=sockets->first, i=0; sock; sock=sock->next, i++) { - memset(&gs[i], 0, sizeof(gs[i])); - - QUATCOPY(gs[i].vec, ns[i]->vec); - gs[i].link= ns[i]->data; - - if (sock->type == SOCK_VALUE) - gs[i].type= GPU_FLOAT; - else if (sock->type == SOCK_VECTOR) - gs[i].type= GPU_VEC3; - else if (sock->type == SOCK_RGBA) - gs[i].type= GPU_VEC4; - else - gs[i].type= GPU_NONE; - - gs[i].name = ""; - gs[i].hasinput= ns[i]->hasinput && ns[i]->data; - gs[i].hasoutput= ns[i]->hasoutput && ns[i]->data; - gs[i].sockettype= ns[i]->sockettype; + bNodeLink *link; + + /* clear flags */ + for(node= ntree->nodes.first; node; node= node->next) { + for(sock= node->inputs.first; sock; sock= sock->next) + sock->flag &= ~SOCK_IN_USE; + for(sock= node->outputs.first; sock; sock= sock->next) + sock->flag &= ~SOCK_IN_USE; + } + + /* tag all thats in use */ + for(link= ntree->links.first; link; link= link->next) { + + if(link->fromsock) // FIXME, see below + link->fromsock->flag |= SOCK_IN_USE; + if(link->tosock) // FIXME This can be NULL, when dragging a new link in the UI, should probably copy the node tree for preview render - campbell + link->tosock->flag |= SOCK_IN_USE; } - - gs[i].type= GPU_NONE; } -static void data_from_gpu_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs) +/* ************** dependency stuff *********** */ + +/* node is guaranteed to be not checked before */ +static int node_get_deplist_recurs(bNode *node, bNode ***nsort) { + bNode *fromnode; bNodeSocket *sock; - int i; - - for (sock=sockets->first, i=0; sock; sock=sock->next, i++) { - ns[i]->data= gs[i].link; - ns[i]->sockettype= gs[i].sockettype; + int level = 0xFFF; + + node->done= 1; + + /* check linked nodes */ + for(sock= node->inputs.first; sock; sock= sock->next) { + if(sock->link) { + fromnode= sock->link->fromnode; + if(fromnode) { + if (fromnode->done==0) + fromnode->level= node_get_deplist_recurs(fromnode, nsort); + if (fromnode->level <= level) + level = fromnode->level - 1; + } + } + } + + /* check parent node */ + if (node->parent) { + if (node->parent->done==0) + node->parent->level= node_get_deplist_recurs(node->parent, nsort); + if (node->parent->level <= level) + level = node->parent->level - 1; + } + + if (nsort) { + **nsort= node; + (*nsort)++; } + + return level; } -static void gpu_node_group_execute(bNodeStack *stack, GPUMaterial *mat, bNode *gnode, bNodeStack **in) +void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, int *totnodes) { - bNode *node; - bNodeTree *ntree= (bNodeTree *)gnode->id; - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1]; - int doit = 0; + bNode *node, **nsort; - if(ntree==NULL) return; + *totnodes=0; - stack+= gnode->stack_index; - + /* first clear data */ for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->gpufunc) { - node_get_stack(node, stack, nsin, nsout, in); - - doit = 0; - - /* for groups, only execute outputs for edited group */ - if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) { - if(gnode->flag & NODE_GROUP_EDIT) - if(node->flag & NODE_DO_OUTPUT) - doit = 1; - } - else - doit = 1; - - if(doit) { - gpu_from_node_stack(&node->inputs, nsin, gpuin); - gpu_from_node_stack(&node->outputs, nsout, gpuout); - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) - data_from_gpu_stack(&node->outputs, nsout, gpuout); - } + node->done= 0; + (*totnodes)++; + } + if(*totnodes==0) { + *deplist = NULL; + return; + } + + nsort= *deplist= MEM_callocN((*totnodes)*sizeof(bNode*), "sorted node array"); + + /* recursive check */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->done==0) { + node->level= node_get_deplist_recurs(node, &nsort); } } } -void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) +static void ntree_update_link_pointers(bNodeTree *ntree) { bNode *node; - bNodeStack *stack; - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1]; - - if((ntree->init & NTREE_EXEC_INIT)==0) - ntreeBeginExecTree(ntree); - - stack= ntree->stack; - + bNodeSocket *sock; + bNodeLink *link; + + /* first clear data */ for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->gpufunc) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_from_node_stack(&node->inputs, nsin, gpuin); - gpu_from_node_stack(&node->outputs, nsout, gpuout); - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) - data_from_gpu_stack(&node->outputs, nsout, gpuout); - } - else if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_node_group_execute(stack, mat, node, nsin); - } + for(sock= node->inputs.first; sock; sock= sock->next) + sock->link= NULL; } + /* clear socket links */ + for(sock= ntree->outputs.first; sock; sock= sock->next) + sock->link= NULL; - ntreeEndExecTree(ntree); + for(link= ntree->links.first; link; link= link->next) { + if (link->tosock) + link->tosock->link= link; + } } -/* **************** call to switch lamploop for material node ************ */ - -void (*node_shader_lamp_loop)(struct ShadeInput *, struct ShadeResult *); - -void set_node_shader_lamp_loop(void (*lamp_loop_func)(ShadeInput *, ShadeResult *)) +void ntree_validate_links(bNodeTree *ntree) { - node_shader_lamp_loop= lamp_loop_func; + bNodeTreeType *ntreetype = ntreeGetType(ntree->type); + bNodeLink *link; + + for (link = ntree->links.first; link; link = link->next) { + link->flag |= NODE_LINK_VALID; + if (link->fromnode && link->tonode && link->fromnode->level <= link->tonode->level) + link->flag &= ~NODE_LINK_VALID; + else if (ntreetype->validate_link) { + if (!ntreetype->validate_link(ntree, link)) + link->flag &= ~NODE_LINK_VALID; + } + } } -/* clumsy checking... should do dynamic outputs once */ -static void force_hidden_passes(bNode *node, int passflag) -{ - bNodeSocket *sock; - - for(sock= node->outputs.first; sock; sock= sock->next) - sock->flag &= ~SOCK_UNAVAIL; - - sock= BLI_findlink(&node->outputs, RRES_OUT_Z); - if(!(passflag & SCE_PASS_Z)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_NORMAL); - if(!(passflag & SCE_PASS_NORMAL)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_VEC); - if(!(passflag & SCE_PASS_VECTOR)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_UV); - if(!(passflag & SCE_PASS_UV)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_RGBA); - if(!(passflag & SCE_PASS_RGBA)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_DIFF); - if(!(passflag & SCE_PASS_DIFFUSE)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_SPEC); - if(!(passflag & SCE_PASS_SPEC)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_SHADOW); - if(!(passflag & SCE_PASS_SHADOW)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_AO); - if(!(passflag & SCE_PASS_AO)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_REFLECT); - if(!(passflag & SCE_PASS_REFLECT)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_REFRACT); - if(!(passflag & SCE_PASS_REFRACT)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_INDIRECT); - if(!(passflag & SCE_PASS_INDIRECT)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXOB); - if(!(passflag & SCE_PASS_INDEXOB)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXMA); - if(!(passflag & SCE_PASS_INDEXMA)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); - if(!(passflag & SCE_PASS_MIST)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_EMIT); - if(!(passflag & SCE_PASS_EMIT)) sock->flag |= SOCK_UNAVAIL; - sock= BLI_findlink(&node->outputs, RRES_OUT_ENV); - if(!(passflag & SCE_PASS_ENVIRONMENT)) sock->flag |= SOCK_UNAVAIL; - -} - -/* based on rules, force sockets hidden always */ -void ntreeCompositForceHidden(bNodeTree *ntree, Scene *curscene) +static void ntree_verify_nodes_cb(void *calldata, struct ID *UNUSED(owner_id), struct bNodeTree *ntree) { + ID *id= (ID*)calldata; bNode *node; - if(ntree==NULL) return; - - for(node= ntree->nodes.first; node; node= node->next) { - if( node->type==CMP_NODE_R_LAYERS) { - Scene *sce= node->id?(Scene *)node->id:curscene; - SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1); - if(srl) - force_hidden_passes(node, srl->passflag); - } - else if( node->type==CMP_NODE_IMAGE) { - Image *ima= (Image *)node->id; - if(ima) { - if(ima->rr) { - ImageUser *iuser= node->storage; - RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer); - if(rl) - force_hidden_passes(node, rl->passflag); - else - force_hidden_passes(node, 0); - } - else if(ima->type!=IMA_TYPE_MULTILAYER) { /* if ->rr not yet read we keep inputs */ - force_hidden_passes(node, RRES_OUT_Z); - } - else - force_hidden_passes(node, 0); - } - else - force_hidden_passes(node, 0); - } - } - + for (node=ntree->nodes.first; node; node=node->next) + if (node->typeinfo->verifyfunc) + node->typeinfo->verifyfunc(ntree, node, id); } -/* called from render pipeline, to tag render input and output */ -/* need to do all scenes, to prevent errors when you re-render 1 scene */ -void ntreeCompositTagRender(Scene *curscene) +void ntreeVerifyNodes(struct Main *main, struct ID *id) { - Scene *sce; + bNodeTreeType *ntreetype; + bNodeTree *ntree; + int n; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - bNode *node; - - for(node= sce->nodetree->nodes.first; node; node= node->next) { - if(node->id==(ID *)curscene || node->type==CMP_NODE_COMPOSITE) - NodeTagChanged(sce->nodetree, node); - else if(node->type==CMP_NODE_TEXTURE) /* uses scene sizex/sizey */ - NodeTagChanged(sce->nodetree, node); - } - } + for (n=0; n < NUM_NTREE_TYPES; ++n) { + ntreetype= ntreeGetType(n); + if (ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, id, ntree_verify_nodes_cb); } + for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) + ntree_verify_nodes_cb(id, NULL, ntree); } -static int node_animation_properties(bNodeTree *ntree, bNode *node) +void ntreeUpdateTree(bNodeTree *ntree) { - bNodeSocket *sock; - const ListBase *lb; - Link *link; - PointerRNA ptr; - PropertyRNA *prop; - - /* check to see if any of the node's properties have fcurves */ - RNA_pointer_create((ID *)ntree, &RNA_Node, node, &ptr); - lb = RNA_struct_type_properties(ptr.type); - - for (link=lb->first; link; link=link->next) { - int driven, len=1, index; - prop = (PropertyRNA *)link; - - if (RNA_property_array_check(prop)) - len = RNA_property_array_length(&ptr, prop); - - for (index=0; indextype); + bNode *node; + bNode **deplist; + int totnodes, n; + + ntree_update_link_pointers(ntree); - /* now check node sockets */ - for (sock = node->inputs.first; sock; sock=sock->next) { - int driven, len=1, index; + /* also updates the node level! */ + ntreeGetDependencyList(ntree, &deplist, &totnodes); + + if (deplist) { + /* update individual nodes */ + for (n=0; n < totnodes; ++n) { + node = deplist[n]; + if (ntreetype->update_node) + ntreetype->update_node(ntree, node); + else if (node->typeinfo->updatefunc) + node->typeinfo->updatefunc(ntree, node); + } - RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr); - prop = RNA_struct_find_property(&ptr, "default_value"); + MEM_freeN(deplist); - if (RNA_property_array_check(prop)) - len = RNA_property_array_length(&ptr, prop); + /* ensures only a single output node is enabled, texnode allows multiple though */ + if(ntree->type!=NTREE_TEXTURE) + ntreeSetOutput(ntree); - for (index=0; indexupdate & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES)) { + ntree_validate_links(ntree); + } + + /* update tree */ + if (ntreetype->update) + ntreetype->update(ntree); + else { + bNodeType *ntype= node_get_type(ntree, ntree->nodetype); + if (ntype && ntype->updatetreefunc) + ntype->updatetreefunc(ntree); + } + + /* XXX hack, should be done by depsgraph!! */ + ntreeVerifyNodes(G.main, &ntree->id); + + /* clear the update flag */ + ntree->update = 0; +} - return 0; +void NodeTagChanged(bNodeTree *ntree, bNode *node) +{ + bNodeTreeType *ntreetype = ntreeGetType(ntree->type); + + if (ntreetype->update_node) + ntreetype->update_node(ntree, node); + else if (node->typeinfo->updatefunc) + node->typeinfo->updatefunc(ntree, node); } -/* tags nodes that have animation capabilities */ -int ntreeCompositTagAnimated(bNodeTree *ntree) +int NodeTagIDChanged(bNodeTree *ntree, ID *id) { + bNodeTreeType *ntreetype = ntreeGetType(ntree->type); bNode *node; - int tagged= 0; - - if(ntree==NULL) return 0; + int change = FALSE; + + if(ELEM(NULL, id, ntree)) + return change; - for(node= ntree->nodes.first; node; node= node->next) { - - tagged = node_animation_properties(ntree, node); - - /* otherwise always tag these node types */ - if(node->type==CMP_NODE_IMAGE) { - Image *ima= (Image *)node->id; - if(ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) { - NodeTagChanged(ntree, node); - tagged= 1; + if (ntreetype->update_node) { + for(node= ntree->nodes.first; node; node= node->next) { + if(node->id==id) { + change = TRUE; + ntreetype->update_node(ntree, node); } } - else if(node->type==CMP_NODE_TIME) { - NodeTagChanged(ntree, node); - tagged= 1; - } - /* here was tag render layer, but this is called after a render, so re-composites fail */ - else if(node->type==NODE_GROUP) { - if( ntreeCompositTagAnimated((bNodeTree *)node->id) ) { - NodeTagChanged(ntree, node); + } + else { + for(node= ntree->nodes.first; node; node= node->next) { + if(node->id==id) { + change = TRUE; + if (node->typeinfo->updatefunc) + node->typeinfo->updatefunc(ntree, node); } } } - return tagged; + return change; } -/* called from image window preview */ -void ntreeCompositTagGenerators(bNodeTree *ntree) +/* ************* node type access ********** */ + +int nodeValid(bNodeTree *ntree, bNodeTemplate *ntemp) { - bNode *node; - - if(ntree==NULL) return; - - for(node= ntree->nodes.first; node; node= node->next) { - if( ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE)) - NodeTagChanged(ntree, node); + bNodeType *ntype= node_get_type(ntree, ntemp->type); + if (ntype) { + if (ntype->validfunc) + return ntype->validfunc(ntree, ntemp); + else + return 1; } + else + return 0; } -/* XXX after render animation system gets a refresh, this call allows composite to end clean */ -void ntreeClearTags(bNodeTree *ntree) +const char* nodeLabel(bNode *node) { - bNode *node; - - if(ntree==NULL) return; - - for(node= ntree->nodes.first; node; node= node->next) { - node->need_exec= 0; - if(node->type==NODE_GROUP) - ntreeClearTags((bNodeTree *)node->id); - } + if (node->label[0]!='\0') + return node->label; + else if (node->typeinfo->labelfunc) + return node->typeinfo->labelfunc(node); + else + return node->typeinfo->name; } +struct bNodeTree *nodeGroupEditGet(struct bNode *node) +{ + if (node->typeinfo->group_edit_get) + return node->typeinfo->group_edit_get(node); + else + return NULL; +} -int ntreeTexTagAnimated(bNodeTree *ntree) +struct bNodeTree *nodeGroupEditSet(struct bNode *node, int edit) { - bNode *node; - - if(ntree==NULL) return 0; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type==TEX_NODE_CURVE_TIME) { - NodeTagChanged(ntree, node); - return 1; - } - else if(node->type==NODE_GROUP) { - if( ntreeTexTagAnimated((bNodeTree *)node->id) ) { - return 1; - } - } - } - - return 0; + if (node->typeinfo->group_edit_set) + return node->typeinfo->group_edit_set(node, edit); + else if (node->typeinfo->group_edit_get) + return node->typeinfo->group_edit_get(node); + else + return NULL; +} + +void nodeGroupEditClear(struct bNode *node) +{ + if (node->typeinfo->group_edit_clear) + node->typeinfo->group_edit_clear(node); } -/* ************* node definition init ********** */ +struct bNodeTemplate nodeMakeTemplate(struct bNode *node) +{ + bNodeTemplate ntemp; + if (node->typeinfo->templatefunc) + return node->typeinfo->templatefunc(node); + else { + ntemp.type = node->type; + return ntemp; + } +} -void node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag, - struct bNodeSocketType *inputs, struct bNodeSocketType *outputs) +void node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag) { memset(ntype, 0, sizeof(bNodeType)); ntype->type = type; - ntype->name = name; + BLI_strncpy(ntype->name, name, sizeof(ntype->name)); ntype->nclass = nclass; ntype->flag = flag; - ntype->inputs = inputs; - ntype->outputs = outputs; - /* default size values */ ntype->width = 140; ntype->minwidth = 100; ntype->maxwidth = 320; + ntype->height = 100; + ntype->minheight = 30; + ntype->maxheight = FLT_MAX; +} + +void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs) +{ + ntype->inputs = inputs; + ntype->outputs = outputs; } -void node_type_init(bNodeType *ntype, void (*initfunc)(struct bNode *)) +void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp)) { ntype->initfunc = initfunc; } +void node_type_valid(struct bNodeType *ntype, int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp)) +{ + ntype->validfunc = validfunc; +} + void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth) { ntype->width = width; ntype->minwidth = minwidth; - ntype->maxwidth = maxwidth; + if (maxwidth <= minwidth) + ntype->maxwidth = FLT_MAX; + else + ntype->maxwidth = maxwidth; } void node_type_storage(bNodeType *ntype, const char *storagename, void (*freestoragefunc)(struct bNode *), void (*copystoragefunc)(struct bNode *, struct bNode *)) @@ -3403,47 +1675,92 @@ void node_type_storage(bNodeType *ntype, const char *storagename, void (*freesto ntype->freestoragefunc = freestoragefunc; } +void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *)) +{ + ntype->labelfunc = labelfunc; +} + +void node_type_template(struct bNodeType *ntype, struct bNodeTemplate (*templatefunc)(struct bNode *)) +{ + ntype->templatefunc = templatefunc; +} + +void node_type_update(struct bNodeType *ntype, + void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node), + void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id)) +{ + ntype->updatefunc = updatefunc; + ntype->verifyfunc = verifyfunc; +} + +void node_type_tree(struct bNodeType *ntype, void (*inittreefunc)(struct bNodeTree *), void (*updatetreefunc)(struct bNodeTree *)) +{ + ntype->inittreefunc = inittreefunc; + ntype->updatetreefunc = updatetreefunc; +} + +void node_type_group_edit(struct bNodeType *ntype, + struct bNodeTree *(*group_edit_get)(struct bNode *node), + struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit), + void (*group_edit_clear)(struct bNode *node)) +{ + ntype->group_edit_get = group_edit_get; + ntype->group_edit_set = group_edit_set; + ntype->group_edit_clear = group_edit_clear; +} + void node_type_exec(struct bNodeType *ntype, void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **)) { ntype->execfunc = execfunc; } +void node_type_exec_new(struct bNodeType *ntype, + void *(*initexecfunc)(struct bNode *node), + void (*freeexecfunc)(struct bNode *node, void *nodedata), + void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **)) +{ + ntype->initexecfunc = initexecfunc; + ntype->freeexecfunc = freeexecfunc; + ntype->newexecfunc = newexecfunc; +} + void node_type_gpu(struct bNodeType *ntype, int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out)) { ntype->gpufunc = gpufunc; } -void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *)) +void node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node, void *nodedata, struct GPUNodeStack *in, struct GPUNodeStack *out)) { - ntype->labelfunc = labelfunc; + ntype->gpuextfunc = gpuextfunc; } -static bNodeType *is_nodetype_registered(ListBase *typelist, int type, ID *id) + +static bNodeType *is_nodetype_registered(ListBase *typelist, int type) { bNodeType *ntype= typelist->first; for(;ntype; ntype= ntype->next ) - if(ntype->type==type && ntype->id==id) + if(ntype->type==type) return ntype; return NULL; } -/* type can be from a static array, we make copy for duplicate types (like group) */ -void nodeRegisterType(ListBase *typelist, const bNodeType *ntype) +void nodeRegisterType(ListBase *typelist, bNodeType *ntype) { - bNodeType *found= is_nodetype_registered(typelist, ntype->type, ntype->id); + bNodeType *found= is_nodetype_registered(typelist, ntype->type); - if(found==NULL) { - bNodeType *ntypen= MEM_callocN(sizeof(bNodeType), "node type"); - *ntypen= *ntype; - BLI_addtail(typelist, ntypen); - } + if(found==NULL) + BLI_addtail(typelist, ntype); } static void registerCompositNodes(ListBase *ntypelist) { - register_node_type_group(ntypelist); + register_node_type_frame(ntypelist); + + register_node_type_cmp_group(ntypelist); +// register_node_type_cmp_forloop(ntypelist); +// register_node_type_cmp_whileloop(ntypelist); register_node_type_cmp_rlayers(ntypelist); register_node_type_cmp_image(ntypelist); @@ -3519,7 +1836,11 @@ static void registerCompositNodes(ListBase *ntypelist) static void registerShaderNodes(ListBase *ntypelist) { - register_node_type_group(ntypelist); + register_node_type_frame(ntypelist); + + register_node_type_sh_group(ntypelist); +// register_node_type_sh_forloop(ntypelist); +// register_node_type_sh_whileloop(ntypelist); register_node_type_sh_output(ntypelist); register_node_type_sh_mix_rgb(ntypelist); @@ -3548,7 +1869,11 @@ static void registerShaderNodes(ListBase *ntypelist) static void registerTextureNodes(ListBase *ntypelist) { - register_node_type_group(ntypelist); + register_node_type_frame(ntypelist); + + register_node_type_tex_group(ntypelist); +// register_node_type_tex_forloop(ntypelist); +// register_node_type_tex_whileloop(ntypelist); register_node_type_tex_math(ntypelist); register_node_type_tex_mix_rgb(ntypelist); @@ -3589,53 +1914,47 @@ static void registerTextureNodes(ListBase *ntypelist) register_node_type_tex_proc_distnoise(ntypelist); } -static void remove_dynamic_typeinfos(ListBase *list) +static void free_dynamic_typeinfo(bNodeType *ntype) { - bNodeType *ntype= list->first; - bNodeType *next= NULL; - while(ntype) { - next= ntype->next; - if(ntype->type==NODE_DYNAMIC && ntype->id!=NULL) { - BLI_remlink(list, ntype); - if(ntype->inputs) { - bNodeSocketType *sock= ntype->inputs; - while(sock->type!=-1) { - MEM_freeN((void *)sock->name); - sock++; - } - MEM_freeN(ntype->inputs); - } - if(ntype->outputs) { - bNodeSocketType *sock= ntype->outputs; - while(sock->type!=-1) { - MEM_freeN((void *)sock->name); - sock++; - } - MEM_freeN(ntype->outputs); - } - if(ntype->name) { - MEM_freeN((void *)ntype->name); - } - MEM_freeN(ntype); + if(ntype->type==NODE_DYNAMIC) { + if(ntype->inputs) { + MEM_freeN(ntype->inputs); + } + if(ntype->outputs) { + MEM_freeN(ntype->outputs); } - ntype= next; + if(ntype->name) { + MEM_freeN((void *)ntype->name); + } + } +} + +static void free_typeinfos(ListBase *list) +{ + bNodeType *ntype, *next; + for(ntype=list->first; ntype; ntype=next) { + next = ntype->next; + + if(ntype->type==NODE_DYNAMIC) + free_dynamic_typeinfo(ntype); + + if(ntype->needs_free) + MEM_freeN(ntype); } } void init_nodesystem(void) { - registerCompositNodes(&node_all_composit); - registerShaderNodes(&node_all_shaders); - registerTextureNodes(&node_all_textures); + registerCompositNodes(&ntreeGetType(NTREE_COMPOSIT)->node_types); + registerShaderNodes(&ntreeGetType(NTREE_SHADER)->node_types); + registerTextureNodes(&ntreeGetType(NTREE_TEXTURE)->node_types); } void free_nodesystem(void) { - /*remove_dynamic_typeinfos(&node_all_composit);*/ /* unused for now */ - BLI_freelistN(&node_all_composit); - remove_dynamic_typeinfos(&node_all_shaders); - BLI_freelistN(&node_all_shaders); - BLI_freelistN(&node_all_textures); + free_typeinfos(&ntreeGetType(NTREE_COMPOSIT)->node_types); + free_typeinfos(&ntreeGetType(NTREE_SHADER)->node_types); + free_typeinfos(&ntreeGetType(NTREE_TEXTURE)->node_types); } /* called from unlink_scene, when deleting a scene goes over all scenes diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 493baebd197..6119a855366 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -766,7 +766,9 @@ Tex *copy_texture(Tex *tex) if(tex->preview) texn->preview = BKE_previewimg_copy(tex->preview); if(tex->nodetree) { - ntreeEndExecTree(tex->nodetree); + if (tex->nodetree->execdata) { + ntreeTexEndExecTree(tex->nodetree->execdata); + } texn->nodetree= ntreeCopyTree(tex->nodetree); } diff --git a/source/blender/blenlib/BLI_math_matrix.h b/source/blender/blenlib/BLI_math_matrix.h index d8719f399ae..18955c158c6 100644 --- a/source/blender/blenlib/BLI_math_matrix.h +++ b/source/blender/blenlib/BLI_math_matrix.h @@ -66,6 +66,9 @@ void swap_m4m4(float A[4][4], float B[4][4]); void add_m3_m3m3(float R[3][3], float A[3][3], float B[3][3]); void add_m4_m4m4(float R[4][4], float A[4][4], float B[4][4]); +void sub_m3_m3m3(float R[3][3], float A[3][3], float B[3][3]); +void sub_m4_m4m4(float R[4][4], float A[4][4], float B[4][4]); + void mul_m3_m3m3(float R[3][3], float A[3][3], float B[3][3]); void mul_m4_m4m4(float R[4][4], float A[4][4], float B[4][4]); void mul_m4_m3m4(float R[4][4], float A[3][3], float B[4][4]); diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index c8b598a1e85..d30168c8657 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -124,6 +124,7 @@ void interp_v3_v3v3v3(float p[3], const float v1[3], const float v2[3], const fl void interp_v3_v3v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float w[4]); void interp_v4_v4v4(float r[4], const float a[4], const float b[4], const float t); void interp_v4_v4v4v4(float p[4], const float v1[4], const float v2[4], const float v3[4], const float w[3]); +void interp_v4_v4v4v4v4(float p[4], const float v1[4], const float v2[4], const float v3[4], const float v4[4], const float w[4]); void mid_v3_v3v3(float r[3], const float a[3], const float b[3]); diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index 3c79a77707a..e2f594376cb 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -451,6 +451,24 @@ void add_m4_m4m4(float m1[][4], float m2[][4], float m3[][4]) m1[i][j]= m2[i][j] + m3[i][j]; } +void sub_m3_m3m3(float m1[][3], float m2[][3], float m3[][3]) +{ + int i, j; + + for(i=0;i<3;i++) + for(j=0;j<3;j++) + m1[i][j]= m2[i][j] - m3[i][j]; +} + +void sub_m4_m4m4(float m1[][4], float m2[][4], float m3[][4]) +{ + int i, j; + + for(i=0;i<4;i++) + for(j=0;j<4;j++) + m1[i][j]= m2[i][j] - m3[i][j]; +} + int invert_m3(float m[3][3]) { float tmp[3][3]; diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c index 15d671e38d7..7dbceff46e4 100644 --- a/source/blender/blenlib/intern/math_vector.c +++ b/source/blender/blenlib/intern/math_vector.c @@ -96,6 +96,14 @@ void interp_v4_v4v4v4(float p[4], const float v1[4], const float v2[4], const fl p[3] = v1[3]*w[0] + v2[3]*w[1] + v3[3]*w[2]; } +void interp_v4_v4v4v4v4(float p[4], const float v1[4], const float v2[4], const float v3[4], const float v4[4], const float w[4]) +{ + p[0] = v1[0]*w[0] + v2[0]*w[1] + v3[0]*w[2] + v4[0]*w[3]; + p[1] = v1[1]*w[0] + v2[1]*w[1] + v3[1]*w[2] + v4[1]*w[3]; + p[2] = v1[2]*w[0] + v2[2]*w[1] + v3[2]*w[2] + v4[2]*w[3]; + p[3] = v1[3]*w[0] + v2[3]*w[1] + v3[3]*w[2] + v4[3]*w[3]; +} + void mid_v3_v3v3(float v[3], const float v1[3], const float v2[3]) { v[0]= 0.5f*(v1[0] + v2[0]); diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt index 4088481c844..ab00a8e90dd 100644 --- a/source/blender/blenloader/CMakeLists.txt +++ b/source/blender/blenloader/CMakeLists.txt @@ -30,6 +30,7 @@ set(INC ../blenlib ../makesdna ../makesrna + ../nodes ../render/extern/include ../../../intern/guardedalloc ) diff --git a/source/blender/blenloader/SConscript b/source/blender/blenloader/SConscript index be9908d84e6..d5d2df3ea35 100644 --- a/source/blender/blenloader/SConscript +++ b/source/blender/blenloader/SConscript @@ -5,7 +5,7 @@ sources = env.Glob('intern/*.c') incs = '. #/intern/guardedalloc ../blenlib ../blenkernel' incs += ' ../makesdna ../editors/include' -incs += ' ../render/extern/include ../makesrna' +incs += ' ../render/extern/include ../makesrna ../nodes' incs += ' ' + env['BF_ZLIB_INC'] diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 363e98d7a4b..355fc14705a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -134,6 +134,8 @@ #include "BKE_utildefines.h" // SWITCH_INT DATA ENDB DNA1 O_BINARY GLOB USER TEST REND #include "BKE_sound.h" +#include "NOD_socket.h" + //XXX #include "BIF_butspace.h" // badlevel, for do_versions, patching event codes //XXX #include "BIF_filelist.h" // badlevel too, where to move this? - elubie //XXX #include "BIF_previewrender.h" // bedlelvel, for struct RenderInfo @@ -2052,10 +2054,21 @@ static void lib_link_nodetree(FileData *fd, Main *main) } } +static void lib_nodetree_init_types_cb(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree) +{ + bNode *node; + + ntreeInitTypes(ntree); + + /* XXX could be replaced by do_versions for new nodes */ + for (node=ntree->nodes.first; node; node=node->next) + node_verify_socket_templates(ntree, node); +} + /* updates group node socket own_index so that * external links to/from the group node are preserved. */ -static void lib_node_do_versions_group(bNode *gnode) +static void lib_node_do_versions_group_indices(bNode *gnode) { bNodeTree *ngroup= (bNodeTree*)gnode->id; bNode *intnode; @@ -2088,92 +2101,101 @@ static void lib_node_do_versions_group(bNode *gnode) } /* updates external links for all group nodes in a tree */ -static void lib_nodetree_do_versions_group(bNodeTree *ntree) +static void lib_nodetree_do_versions_group_indices_cb(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree) { bNode *node; for (node=ntree->nodes.first; node; node=node->next) { if (node->type==NODE_GROUP) { bNodeTree *ngroup= (bNodeTree*)node->id; - if (ngroup && (ngroup->flag & NTREE_DO_VERSIONS)) - lib_node_do_versions_group(node); + if (ngroup && (ngroup->flag & NTREE_DO_VERSIONS_GROUP_EXPOSE)) + lib_node_do_versions_group_indices(node); } } } +/* make an update call for the tree */ +static void lib_nodetree_do_versions_update_cb(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree) +{ + if (ntree->update) + ntreeUpdateTree(ntree); +} + /* verify types for nodes and groups, all data has to be read */ /* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic * typedefs*/ static void lib_verify_nodetree(Main *main, int UNUSED(open)) { - Scene *sce; - Material *ma; - Tex *tx; bNodeTree *ntree; - + int i; + bNodeTreeType *ntreetype; + /* this crashes blender on undo/redo if(open==1) { reinit_nodesystem(); }*/ - /* now create the own typeinfo structs an verify nodes */ - /* here we still assume no groups in groups */ - for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { - ntreeVerifyTypes(ntree); /* internal nodes, no groups! */ + /* set node->typeinfo pointers */ + for (i=0; i < NUM_NTREE_TYPES; ++i) { + ntreetype= ntreeGetType(i); + if (ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, NULL, lib_nodetree_init_types_cb); } + for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) + ntreeInitTypes(ntree); { - /*int has_old_groups=0;*/ /*UNUSED*/ + int has_old_groups=0; /* XXX this should actually be part of do_versions, but since we need * finished library linking, it is not possible there. Instead in do_versions * we have set the NTREE_DO_VERSIONS flag, so at this point we can do the * actual group node updates. */ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { - if (ntree->flag & NTREE_DO_VERSIONS) { + if (ntree->flag & NTREE_DO_VERSIONS_GROUP_EXPOSE) { /* this adds copies and links from all unlinked internal sockets to group inputs/outputs. */ - nodeGroupExposeAllSockets(ntree); - /*has_old_groups = 1;*/ /*UNUSED*/ + node_group_expose_all_sockets(ntree); + has_old_groups = 1; } } - /* now verify all types in material trees, groups are set OK now */ - for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) - lib_nodetree_do_versions_group(ma->nodetree); - } - /* and scene trees */ - for(sce= main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) - lib_nodetree_do_versions_group(sce->nodetree); - } - /* and texture trees */ - for(tx= main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) - lib_nodetree_do_versions_group(tx->nodetree); + + if (has_old_groups) { + for (i=0; i < NUM_NTREE_TYPES; ++i) { + ntreetype= ntreeGetType(i); + if (ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, NULL, lib_nodetree_do_versions_group_indices_cb); + } } for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) - ntree->flag &= ~NTREE_DO_VERSIONS; + ntree->flag &= ~NTREE_DO_VERSIONS_GROUP_EXPOSE; } - - /* now verify all types in material trees, groups are set OK now */ - for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) - ntreeVerifyTypes(ma->nodetree); - } - /* and scene trees */ - for(sce= main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) - ntreeVerifyTypes(sce->nodetree); + + /* verify all group user nodes */ + for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { + ntreeVerifyNodes(main, &ntree->id); } - /* and texture trees */ - for(tx= main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) - ntreeVerifyTypes(tx->nodetree); + + /* make update calls where necessary */ + { + for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) + if (ntree->update) + ntreeUpdateTree(ntree); + for (i=0; i < NUM_NTREE_TYPES; ++i) { + ntreetype= ntreeGetType(i); + if (ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, NULL, lib_nodetree_do_versions_update_cb); + } } } - +static void direct_link_node_socket(FileData *fd, bNodeSocket *sock) +{ + sock->link= newdataadr(fd, sock->link); + sock->storage= newdataadr(fd, sock->storage); + sock->default_value= newdataadr(fd, sock->default_value); + sock->cache= NULL; +} /* ntree itself has been read! */ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) @@ -2185,6 +2207,7 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) ntree->init= 0; /* to set callbacks and force setting types */ ntree->progress= NULL; + ntree->execdata= NULL; ntree->adt= newdataadr(fd, ntree->adt); direct_link_animdata(fd, ntree->adt); @@ -2197,9 +2220,11 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) node->typeinfo= NULL; } + link_list(fd, &node->inputs); + link_list(fd, &node->outputs); + node->storage= newdataadr(fd, node->storage); if(node->storage) { - /* could be handlerized at some point */ if(ntree->type==NTREE_SHADER && (node->type==SH_NODE_CURVE_VEC || node->type==SH_NODE_CURVE_RGB)) direct_link_curvemapping(fd, node->storage); @@ -2216,8 +2241,6 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) ((ImageUser *)node->storage)->ok= 1; } } - link_list(fd, &node->inputs); - link_list(fd, &node->outputs); } link_list(fd, &ntree->links); @@ -2227,15 +2250,19 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) /* and we connect the rest */ for(node= ntree->nodes.first; node; node= node->next) { + node->parent = newdataadr(fd, node->parent); node->preview= newimaadr(fd, node->preview); node->lasty= 0; + for(sock= node->inputs.first; sock; sock= sock->next) - sock->link= newdataadr(fd, sock->link); + direct_link_node_socket(fd, sock); for(sock= node->outputs.first; sock; sock= sock->next) - sock->ns.data= NULL; + direct_link_node_socket(fd, sock); } + for(sock= ntree->inputs.first; sock; sock= sock->next) + direct_link_node_socket(fd, sock); for(sock= ntree->outputs.first; sock; sock= sock->next) - sock->link= newdataadr(fd, sock->link); + direct_link_node_socket(fd, sock); for(link= ntree->links.first; link; link= link->next) { link->fromnode= newdataadr(fd, link->fromnode); @@ -4957,15 +4984,22 @@ static void lib_link_screen(FileData *fd, Main *main) SpaceNode *snode= (SpaceNode *)sl; snode->id= newlibadr(fd, sc->id.lib, snode->id); + snode->edittree= NULL; - /* internal data, a bit patchy */ - if(snode->id) { - if(GS(snode->id->name)==ID_MA) - snode->nodetree= ((Material *)snode->id)->nodetree; - else if(GS(snode->id->name)==ID_SCE) - snode->nodetree= ((Scene *)snode->id)->nodetree; - else if(GS(snode->id->name)==ID_TE) - snode->nodetree= ((Tex *)snode->id)->nodetree; + if (ELEM3(snode->treetype, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE)) { + /* internal data, a bit patchy */ + snode->nodetree= NULL; + if(snode->id) { + if(GS(snode->id->name)==ID_MA) + snode->nodetree= ((Material *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_SCE) + snode->nodetree= ((Scene *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_TE) + snode->nodetree= ((Tex *)snode->id)->nodetree; + } + } + else { + snode->nodetree= newlibadr_us(fd, sc->id.lib, snode->nodetree); } snode->linkdrag.first = snode->linkdrag.last = NULL; @@ -5185,15 +5219,19 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) snode->id= restore_pointer_by_name(newmain, snode->id, 1); snode->edittree= NULL; - if(snode->id==NULL) + if (ELEM3(snode->treetype, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE)) { snode->nodetree= NULL; + if(snode->id) { + if(GS(snode->id->name)==ID_MA) + snode->nodetree= ((Material *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_SCE) + snode->nodetree= ((Scene *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_TE) + snode->nodetree= ((Tex *)snode->id)->nodetree; + } + } else { - if(GS(snode->id->name)==ID_MA) - snode->nodetree= ((Material *)snode->id)->nodetree; - else if(GS(snode->id->name)==ID_SCE) - snode->nodetree= ((Scene *)snode->id)->nodetree; - else if(GS(snode->id->name)==ID_TE) - snode->nodetree= ((Tex *)snode->id)->nodetree; + snode->nodetree= restore_pointer_by_name(newmain, &snode->nodetree->id, 1); } } } @@ -5422,7 +5460,6 @@ static void direct_link_screen(FileData *fd, bScreen *sc) snode->gpd= newdataadr(fd, snode->gpd); direct_link_gpencil(fd, snode->gpd); } - snode->nodetree= snode->edittree= NULL; } else if(sl->spacetype==SPACE_TIME) { SpaceTime *stime= (SpaceTime *)sl; @@ -6931,6 +6968,53 @@ static void do_version_bone_roll_256(Bone *bone) do_version_bone_roll_256(child); } +static void do_versions_socket_default_value(bNodeSocket *sock) +{ + bNodeSocketValueFloat *valfloat; + bNodeSocketValueVector *valvector; + bNodeSocketValueRGBA *valrgba; + + if (sock->default_value) + return; + + switch (sock->type) { + case SOCK_FLOAT: + valfloat = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueFloat), "default socket value"); + valfloat->value = sock->ns.vec[0]; + valfloat->min = sock->ns.min; + valfloat->max = sock->ns.max; + valfloat->subtype = PROP_NONE; + break; + case SOCK_VECTOR: + valvector = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueVector), "default socket value"); + copy_v3_v3(valvector->value, sock->ns.vec); + valvector->min = sock->ns.min; + valvector->max = sock->ns.max; + valvector->subtype = PROP_NONE; + break; + case SOCK_RGBA: + valrgba = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueRGBA), "default socket value"); + copy_v4_v4(valrgba->value, sock->ns.vec); + break; + } +} + +static void do_versions_nodetree_default_value(bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + for (node=ntree->nodes.first; node; node=node->next) { + for (sock=node->inputs.first; sock; sock=sock->next) + do_versions_socket_default_value(sock); + for (sock=node->outputs.first; sock; sock=sock->next) + do_versions_socket_default_value(sock); + } + for (sock=ntree->inputs.first; sock; sock=sock->next) + do_versions_socket_default_value(sock); + for (sock=ntree->outputs.first; sock; sock=sock->next) + do_versions_socket_default_value(sock); +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -11582,7 +11666,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) * is done in lib_verify_nodetree, because at this point the internal * nodes may not be up-to-date! (missing lib-link) */ - ntree->flag |= NTREE_DO_VERSIONS; + ntree->flag |= NTREE_DO_VERSIONS_GROUP_EXPOSE; } } @@ -11707,10 +11791,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if(tex->pd) { if (tex->pd->falloff_speed_scale == 0.0f) tex->pd->falloff_speed_scale = 100.0f; - + if (!tex->pd->falloff_curve) { tex->pd->falloff_curve = curvemapping_add(1, 0, 0, 1, 1); - + tex->pd->falloff_curve->preset = CURVE_PRESET_LINE; tex->pd->falloff_curve->cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE; curvemap_reset(tex->pd->falloff_curve->cm, &tex->pd->falloff_curve->clipr, tex->pd->falloff_curve->preset, CURVEMAP_SLOPE_POSITIVE); @@ -11861,6 +11945,35 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } + if (main->versionfile < 259 || (main->versionfile == 259 && main->subversionfile < 2)){ + { + /* Convert default socket values from bNodeStack */ + Scene *sce; + Material *mat; + Tex *tex; + bNodeTree *ntree; + for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) { + do_versions_nodetree_default_value(ntree); + ntree->update |= NTREE_UPDATE; + } + for (sce=main->scene.first; sce; sce=sce->id.next) + if (sce->nodetree) { + do_versions_nodetree_default_value(sce->nodetree); + sce->nodetree->update |= NTREE_UPDATE; + } + for (mat=main->mat.first; mat; mat=mat->id.next) + if (mat->nodetree) { + do_versions_nodetree_default_value(mat->nodetree); + mat->nodetree->update |= NTREE_UPDATE; + } + for (tex=main->tex.first; tex; tex=tex->id.next) + if (tex->nodetree) { + do_versions_nodetree_default_value(tex->nodetree); + tex->nodetree->update |= NTREE_UPDATE; + } + } + } + /* put compatibility code here until next subversion bump */ { diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 406a9bdc02e..b982630ec41 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -642,6 +642,14 @@ static void write_curvemapping(WriteData *wd, CurveMapping *cumap) writestruct(wd, DATA, "CurveMapPoint", cumap->cm[a].totpoint, cumap->cm[a].curve); } +static void write_node_socket(WriteData *wd, bNodeSocket *sock) +{ + bNodeSocketType *stype= ntreeGetSocketType(sock->type); + writestruct(wd, DATA, "bNodeSocket", 1, sock); + if (sock->default_value) + writestruct(wd, DATA, stype->value_structname, 1, sock->default_value); +} + /* this is only direct data, tree itself should have been written */ static void write_nodetree(WriteData *wd, bNodeTree *ntree) { @@ -657,6 +665,12 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree) writestruct(wd, DATA, "bNode", 1, node); for(node= ntree->nodes.first; node; node= node->next) { + for(sock= node->inputs.first; sock; sock= sock->next) + write_node_socket(wd, sock); + for(sock= node->outputs.first; sock; sock= sock->next) + write_node_socket(wd, sock); + + if(node->storage && node->type!=NODE_DYNAMIC) { /* could be handlerized at some point, now only 1 exception still */ if(ntree->type==NTREE_SHADER && (node->type==SH_NODE_CURVE_VEC || node->type==SH_NODE_CURVE_RGB)) @@ -665,13 +679,9 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree) write_curvemapping(wd, node->storage); else if(ntree->type==NTREE_TEXTURE && (node->type==TEX_NODE_CURVE_RGB || node->type==TEX_NODE_CURVE_TIME) ) write_curvemapping(wd, node->storage); - else + else writestruct(wd, DATA, node->typeinfo->storagename, 1, node->storage); } - for(sock= node->inputs.first; sock; sock= sock->next) - writestruct(wd, DATA, "bNodeSocket", 1, sock); - for(sock= node->outputs.first; sock; sock= sock->next) - writestruct(wd, DATA, "bNodeSocket", 1, sock); } for(link= ntree->links.first; link; link= link->next) @@ -679,9 +689,9 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree) /* external sockets */ for(sock= ntree->inputs.first; sock; sock= sock->next) - writestruct(wd, DATA, "bNodeSocket", 1, sock); + write_node_socket(wd, sock); for(sock= ntree->outputs.first; sock; sock= sock->next) - writestruct(wd, DATA, "bNodeSocket", 1, sock); + write_node_socket(wd, sock); } static void current_screen_compat(Main *mainvar, bScreen **screen) @@ -933,7 +943,7 @@ static void write_particlesystems(WriteData *wd, ListBase *particles) writestruct(wd, DATA, "ClothSimSettings", 1, psys->clmd->sim_parms); writestruct(wd, DATA, "ClothCollSettings", 1, psys->clmd->coll_parms); } - + write_pointcaches(wd, &psys->ptcaches); } } diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index cc4dd6330fb..1cbf45960d3 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -39,6 +39,7 @@ struct Material; struct Scene; struct Tex; struct bContext; +struct bNodeTree; struct bNode; struct bNodeTree; struct ScrArea; @@ -47,6 +48,7 @@ struct ScrArea; void ED_init_node_butfuncs(void); /* node_draw.c */ +void ED_node_tree_update(struct SpaceNode *snode, struct Scene *scene); void ED_node_changed_update(struct ID *id, struct bNode *node); void ED_node_generic_update(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node); @@ -57,8 +59,9 @@ void ED_node_texture_default(struct Tex *tex); void ED_node_link_intersect_test(struct ScrArea *sa, int test); void ED_node_link_insert(struct ScrArea *sa); -void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node); +void ED_node_update_hierarchy(struct bContext *C, struct bNodeTree *ntree); +void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node); /* node ops.c */ void ED_operatormacros_node(void); diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index d69c1d9c447..9539706468f 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -60,6 +60,7 @@ #include "DNA_brush_types.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_texture_types.h" @@ -4663,7 +4664,7 @@ static void paint_brush_init_tex(Brush *brush) if(brush) { MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ } } @@ -4805,7 +4806,7 @@ static void paint_brush_exit_tex(Brush *brush) if(brush) { MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeEndExecTree(mtex->tex->nodetree); + ntreeTexEndExecTree(mtex->tex->nodetree->execdata); } } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 2ee49f71a78..bf34a3b8c9f 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -48,6 +48,7 @@ #include "BLI_rand.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_brush_types.h" @@ -3273,7 +3274,7 @@ static void sculpt_brush_init_tex(Sculpt *sd, SculptSession *ss) /* init mtex nodes */ if(mtex->tex && mtex->tex->nodetree) - ntreeBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ /* TODO: Shouldn't really have to do this at the start of every stroke, but sculpt would need some sort of notification when @@ -3454,7 +3455,7 @@ static void sculpt_brush_exit_tex(Sculpt *sd) MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeEndExecTree(mtex->tex->nodetree); + ntreeTexEndExecTree(mtex->tex->nodetree->execdata); } static void sculpt_stroke_done(bContext *C, struct PaintStroke *UNUSED(stroke)) diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 0474d1f3bb1..890b04dce91 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -53,9 +53,10 @@ #include "BKE_image.h" #include "BKE_library.h" #include "BKE_main.h" +#include "BKE_node.h" -#include "CMP_node.h" -#include "SHD_node.h" +#include "NOD_composite.h" +#include "NOD_shader.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -81,6 +82,141 @@ #include "node_intern.h" +// XXX interface.h +extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select); + +/* ****************** SOCKET BUTTON DRAW FUNCTIONS ***************** */ + +static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v) +{ + SpaceNode *snode= snode_v; + + if(snode->treetype==NTREE_SHADER) { + nodeShaderSynchronizeID(node_v, 1); + // allqueue(REDRAWBUTSSHADING, 0); + } +} + +void node_socket_button_default(const bContext *C, uiBlock *block, + bNodeTree *ntree, bNode *node, bNodeSocket *sock, + const char *name, int x, int y, int width) +{ + PointerRNA ptr; + uiBut *bt; + + RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr); + + bt = uiDefButR(block, NUM, B_NODE_EXEC, name, + x, y+1, width, NODE_DY-2, + &ptr, "default_value", 0, 0, 0, -1, -1, NULL); + if (node) + uiButSetFunc(bt, node_sync_cb, CTX_wm_space_node(C), node); +} + +typedef struct SocketComponentMenuArgs { + PointerRNA ptr; + int x, y, width; + uiButHandleFunc cb; + void *arg1, *arg2; +} SocketComponentMenuArgs; +/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */ +static uiBlock *socket_component_menu(bContext *C, ARegion *ar, void *args_v) +{ + SocketComponentMenuArgs *args= (SocketComponentMenuArgs*)args_v; + uiBlock *block; + uiLayout *layout; + + block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS); + uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN); + + layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, NODE_DY, U.uistyles.first), 0); + + uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NONE); + + return block; +} +void node_socket_button_components(const bContext *C, uiBlock *block, + bNodeTree *ntree, bNode *node, bNodeSocket *sock, + const char *name, int x, int y, int width) +{ + PointerRNA ptr; + SocketComponentMenuArgs *args; + + RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr); + + args= MEM_callocN(sizeof(SocketComponentMenuArgs), "SocketComponentMenuArgs"); + + args->ptr = ptr; + args->x = x; + args->y = y; + args->width = width; + args->cb = node_sync_cb; + args->arg1 = CTX_wm_space_node(C); + args->arg2 = node; + + uiDefBlockButN(block, socket_component_menu, args, name, x, y+1, width, NODE_DY-2, ""); +} + +void node_socket_button_color(const bContext *C, uiBlock *block, + bNodeTree *ntree, bNode *node, bNodeSocket *sock, + const char *name, int x, int y, int width) +{ + PointerRNA ptr; + uiBut *bt; + int labelw= width - 40; + + RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr); + + bt=uiDefButR(block, COL, B_NODE_EXEC, "", + x, y+2, (labelw>0 ? 40 : width), NODE_DY-2, + &ptr, "default_value", 0, 0, 0, -1, -1, NULL); + if (node) + uiButSetFunc(bt, node_sync_cb, CTX_wm_space_node(C), node); + + if (name[0]!='\0' && labelw>0) + uiDefBut(block, LABEL, 0, name, x + 40, y+2, labelw, NODE_DY-2, NULL, 0, 0, 0, 0, ""); +} + +/* ****************** BASE DRAW FUNCTIONS FOR NEW OPERATOR NODES ***************** */ + +void node_draw_socket_new(bNodeSocket *sock, float size) +{ + float x=sock->locx, y=sock->locy; + + /* 16 values of sin function */ + static float si[16] = { + 0.00000000f, 0.39435585f,0.72479278f,0.93775213f, + 0.99871650f,0.89780453f,0.65137248f,0.29936312f, + -0.10116832f,-0.48530196f,-0.79077573f,-0.96807711f, + -0.98846832f,-0.84864425f,-0.57126821f,-0.20129852f + }; + /* 16 values of cos function */ + static float co[16] ={ + 1.00000000f,0.91895781f,0.68896691f,0.34730525f, + -0.05064916f,-0.44039415f,-0.75875812f,-0.95413925f, + -0.99486932f,-0.87434661f,-0.61210598f,-0.25065253f, + 0.15142777f,0.52896401f,0.82076344f,0.97952994f, + }; + int a; + + glColor3ub(180, 180, 180); + + glBegin(GL_POLYGON); + for(a=0; a<16; a++) + glVertex2f(x+size*si[a], y+size*co[a]); + glEnd(); + + glColor4ub(0, 0, 0, 150); + glEnable(GL_BLEND); + glEnable( GL_LINE_SMOOTH ); + glBegin(GL_LINE_LOOP); + for(a=0; a<16; a++) + glVertex2f(x+size*si[a], y+size*co[a]); + glEnd(); + glDisable( GL_LINE_SMOOTH ); + glDisable(GL_BLEND); +} + /* ****************** BUTTON CALLBACKS FOR ALL TREES ***************** */ static void node_buts_value(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -192,11 +328,12 @@ static void node_buts_normal(uiLayout *layout, bContext *UNUSED(C), PointerRNA * bNode *node= ptr->data; rctf *butr= &node->butr; bNodeSocket *sock= node->outputs.first; /* first socket stores normal */ + float *nor= ((bNodeSocketValueVector*)sock->default_value)->value; uiBut *bt; bt= uiDefButF(block, BUT_NORMAL, B_NODE_EXEC, "", (short)butr->xmin, (short)butr->xmin, butr->xmax-butr->xmin, butr->xmax-butr->xmin, - sock->ns.vec, 0.0f, 1.0f, 0, 0, ""); + nor, 0.0f, 1.0f, 0, 0, ""); uiButSetFunc(bt, node_normal_cb, ntree, node); } #if 0 // not used in 2.5x yet @@ -287,6 +424,470 @@ static void node_buts_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *pt uiItemR(layout, ptr, "operation", 0, "", ICON_NONE); } +static int node_resize_area_default(bNode *node, int x, int y) +{ + if (node->flag & NODE_HIDDEN) { + rctf totr= node->totr; + /* right part of node */ + totr.xmin= node->totr.xmax-20.0f; + return BLI_in_rctf(&totr, x, y); + } + else { + /* rect we're interested in is just the bottom right corner */ + rctf totr= node->totr; + /* bottom right corner */ + totr.xmin= totr.xmax-10.0f; + totr.ymax= totr.ymin+10.0f; + return BLI_in_rctf(&totr, x, y); + } +} + +/* ****************** BUTTON CALLBACKS FOR COMMON NODES ***************** */ + +/* width of socket columns in group display */ +#define NODE_GROUP_FRAME 120 + +/* based on settings in node, sets drawing rect info. each redraw! */ +/* note: this assumes only 1 group at a time is drawn (linked data) */ +/* in node->totr the entire boundbox for the group is stored */ +static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode) +{ + if (!(gnode->flag & NODE_GROUP_EDIT)) { + node_update_default(C, ntree, gnode); + } + else { + bNodeTree *ngroup= (bNodeTree *)gnode->id; + bNode *node; + bNodeSocket *sock, *gsock; + float locx, locy; + rctf *rect= &gnode->totr; + float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; + int counter; + int dy; + + /* get "global" coords */ + nodeSpaceCoords(gnode, &locx, &locy); + + /* center them, is a bit of abuse of locx and locy though */ + node_update_nodetree(C, ngroup, locx, locy); + + rect->xmin = rect->xmax = locx; + rect->ymin = rect->ymax = locy; + + counter= 1; + for(node= ngroup->nodes.first; node; node= node->next) { + if(counter) { + *rect= node->totr; + counter= 0; + } + else + BLI_union_rctf(rect, &node->totr); + } + + /* add some room for links to group sockets */ + rect->xmin -= 4*NODE_DY; + rect->xmax += 4*NODE_DY; + rect->ymin-= NODE_DY; + rect->ymax+= NODE_DY; + + /* input sockets */ + dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->inputs)-1); + gsock=ngroup->inputs.first; + sock=gnode->inputs.first; + while (gsock || sock) { + while (sock && !sock->groupsock) { + sock->locx = rect->xmin - node_group_frame; + sock->locy = dy; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + sock = sock->next; + } + while (gsock && (!sock || sock->groupsock!=gsock)) { + gsock->locx = rect->xmin; + gsock->locy = dy; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + gsock = gsock->next; + } + while (sock && gsock && sock->groupsock==gsock) { + gsock->locx = rect->xmin; + sock->locx = rect->xmin - node_group_frame; + sock->locy = gsock->locy = dy; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + sock = sock->next; + gsock = gsock->next; + } + } + + /* output sockets */ + dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->outputs)-1); + gsock=ngroup->outputs.first; + sock=gnode->outputs.first; + while (gsock || sock) { + while (sock && !sock->groupsock) { + sock->locx = rect->xmax + node_group_frame; + sock->locy = dy - NODE_DYS; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + sock = sock->next; + } + while (gsock && (!sock || sock->groupsock!=gsock)) { + gsock->locx = rect->xmax; + gsock->locy = dy - NODE_DYS; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + gsock = gsock->next; + } + while (sock && gsock && sock->groupsock==gsock) { + gsock->locx = rect->xmax; + sock->locx = rect->xmax + node_group_frame; + sock->locy = gsock->locy = dy - NODE_DYS; + + /* prevent long socket lists from growing out of the group box */ + if (dy-3*NODE_DYS < rect->ymin) + rect->ymin = dy-3*NODE_DYS; + if (dy+3*NODE_DYS > rect->ymax) + rect->ymax = dy+3*NODE_DYS; + dy -= 2*NODE_DY; + + sock = sock->next; + gsock = gsock->next; + } + } + } +} + +static void update_group_input_cb(bContext *UNUSED(C), void *UNUSED(snode_v), void *ngroup_v) +{ + bNodeTree *ngroup= (bNodeTree*)ngroup_v; + + ngroup->update |= NTREE_UPDATE_GROUP_IN; + ntreeUpdateTree(ngroup); +} + +static void update_group_output_cb(bContext *UNUSED(C), void *UNUSED(snode_v), void *ngroup_v) +{ + bNodeTree *ngroup= (bNodeTree*)ngroup_v; + + ngroup->update |= NTREE_UPDATE_GROUP_OUT; + ntreeUpdateTree(ngroup); +} + +static void draw_group_socket_name(SpaceNode *snode, bNode *gnode, bNodeSocket *sock, int in_out, float xoffset, float yoffset) +{ + bNodeTree *ngroup= (bNodeTree*)gnode->id; + uiBut *bt; + + if (sock->flag & SOCK_DYNAMIC) { + bt = uiDefBut(gnode->block, TEX, 0, "", + sock->locx+xoffset, sock->locy+1+yoffset, 72, NODE_DY, + sock->name, 0, 31, 0, 0, ""); + if (in_out==SOCK_IN) + uiButSetFunc(bt, update_group_input_cb, snode, ngroup); + else + uiButSetFunc(bt, update_group_output_cb, snode, ngroup); + } + else { + uiDefBut(gnode->block, LABEL, 0, sock->name, + sock->locx+xoffset, sock->locy+1+yoffset, 72, NODE_DY, + NULL, 0, 31, 0, 0, ""); + } +} + +static void draw_group_socket(const bContext *C, SpaceNode *snode, bNodeTree *ntree, bNode *gnode, bNodeSocket *sock, bNodeSocket *gsock, int index, int in_out) +{ + bNodeTree *ngroup= (bNodeTree*)gnode->id; + bNodeSocketType *stype= ntreeGetSocketType(gsock ? gsock->type : sock->type); + uiBut *bt; + float offset; + int draw_value; + float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; + float socket_size= NODE_SOCKSIZE*U.dpi/72; + float arrowbutw= 0.8f*UI_UNIT_X; + /* layout stuff for buttons on group left frame */ + float colw= 0.6f*node_group_frame; + float col1= 6; + float col2= col1 + colw+6; + float col3= node_group_frame - arrowbutw - 6; + /* layout stuff for buttons on group right frame */ + float cor1= 6; + float cor2= cor1 + arrowbutw + 6; + float cor3= cor2 + arrowbutw + 6; + + /* node and group socket circles */ + if (sock) + node_socket_circle_draw(ntree, sock, socket_size); + if (gsock) + node_socket_circle_draw(ngroup, gsock, socket_size); + + /* socket name */ + offset = (in_out==SOCK_IN ? col1 : cor3); + if (!gsock) + offset += (in_out==SOCK_IN ? node_group_frame : -node_group_frame); + + /* draw both name and value button if: + * 1) input: not internal + * 2) output: (node type uses const outputs) and (group output is unlinked) + */ + switch (in_out) { + case SOCK_IN: + draw_value = !(gsock && (gsock->flag & SOCK_INTERNAL)); + break; + case SOCK_OUT: + if (gnode->typeinfo->flag & NODE_CONST_OUTPUT) + draw_value = !(gsock && gsock->link); + else + draw_value = 0; + break; + } + if (draw_value) { + /* both name and value buttons */ + if (gsock) { + draw_group_socket_name(snode, gnode, gsock, in_out, offset, 0); + if (stype->buttonfunc) + stype->buttonfunc(C, gnode->block, ngroup, NULL, gsock, "", gsock->locx+offset, gsock->locy-NODE_DY, colw); + } + else { + draw_group_socket_name(snode, gnode, sock, in_out, offset, 0); + if (stype->buttonfunc) + stype->buttonfunc(C, gnode->block, ngroup, NULL, sock, "", sock->locx+offset, sock->locy-NODE_DY, colw); + } + } + else { + /* only name, no value button */ + if (gsock) + draw_group_socket_name(snode, gnode, gsock, in_out, offset, -NODE_DYS); + else + draw_group_socket_name(snode, gnode, sock, in_out, offset, -NODE_DYS); + } + + if (gsock && (gsock->flag & SOCK_DYNAMIC)) { + /* up/down buttons */ + offset = (in_out==SOCK_IN ? col2 : cor2); + uiBlockSetDirection(gnode->block, UI_TOP); + uiBlockBeginAlign(gnode->block); + bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP, + gsock->locx+offset, gsock->locy, arrowbutw, arrowbutw, ""); + if (!gsock->prev || !(gsock->prev->flag & SOCK_DYNAMIC)) + uiButSetFlag(bt, UI_BUT_DISABLED); + RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); + RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out); + bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN, + gsock->locx+offset, gsock->locy-arrowbutw, arrowbutw, arrowbutw, ""); + if (!gsock->next || !(gsock->next->flag & SOCK_DYNAMIC)) + uiButSetFlag(bt, UI_BUT_DISABLED); + RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); + RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out); + uiBlockEndAlign(gnode->block); + uiBlockSetDirection(gnode->block, 0); + + /* remove button */ + offset = (in_out==SOCK_IN ? col3 : col1); + uiBlockSetEmboss(gnode->block, UI_EMBOSSN); + bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X, + gsock->locx+offset, gsock->locy-0.5f*arrowbutw, arrowbutw, arrowbutw, ""); + RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); + RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out); + uiBlockSetEmboss(gnode->block, UI_EMBOSS); + } +} + +/* groups are, on creation, centered around 0,0 */ +static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *gnode) +{ + if (!(gnode->flag & NODE_GROUP_EDIT)) { + node_draw_default(C, ar, snode, ntree, gnode); + } + else { + bNodeTree *ngroup= (bNodeTree *)gnode->id; + bNodeSocket *sock, *gsock; + uiLayout *layout; + PointerRNA ptr; + rctf rect= gnode->totr; + float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; + float group_header= 26*U.dpi/72; + + int index; + + /* backdrop header */ + glEnable(GL_BLEND); + uiSetRoundBox(3); + UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70); + uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymax, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); + + /* backdrop body */ + UI_ThemeColorShadeAlpha(TH_BACK, -8, -70); + uiSetRoundBox(0); + uiDrawBox(GL_POLYGON, rect.xmin, rect.ymin, rect.xmax, rect.ymax, BASIS_RAD); + + /* input column */ + UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); + uiSetRoundBox(8); + uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymin, rect.xmin, rect.ymax, BASIS_RAD); + + /* output column */ + UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); + uiSetRoundBox(4); + uiDrawBox(GL_POLYGON, rect.xmax, rect.ymin, rect.xmax+node_group_frame, rect.ymax, BASIS_RAD); + + /* input column separator */ + glColor4ub(200, 200, 200, 140); + glBegin(GL_LINES); + glVertex2f(rect.xmin, rect.ymin); + glVertex2f(rect.xmin, rect.ymax); + glEnd(); + + /* output column separator */ + glColor4ub(200, 200, 200, 140); + glBegin(GL_LINES); + glVertex2f(rect.xmax, rect.ymin); + glVertex2f(rect.xmax, rect.ymax); + glEnd(); + + /* group node outline */ + uiSetRoundBox(15); + glColor4ub(200, 200, 200, 140); + glEnable( GL_LINE_SMOOTH ); + uiDrawBox(GL_LINE_LOOP, rect.xmin-node_group_frame, rect.ymin, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); + glDisable( GL_LINE_SMOOTH ); + glDisable(GL_BLEND); + + /* backdrop title */ + UI_ThemeColor(TH_TEXT_HI); + + layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+group_header), + MIN2((int)(rect.xmax - rect.xmin-18.0f), node_group_frame+20), group_header, U.uistyles.first); + RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr); + uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL); + uiBlockLayoutResolve(gnode->block, NULL, NULL); + + /* draw the internal tree nodes and links */ + node_draw_nodetree(C, ar, snode, ngroup); + + /* group sockets */ + gsock=ngroup->inputs.first; + sock=gnode->inputs.first; + index = 0; + while (gsock || sock) { + while (sock && !sock->groupsock) { + draw_group_socket(C, snode, ntree, gnode, sock, NULL, index, SOCK_IN); + sock = sock->next; + } + while (gsock && (!sock || sock->groupsock!=gsock)) { + draw_group_socket(C, snode, ntree, gnode, NULL, gsock, index, SOCK_IN); + gsock = gsock->next; + ++index; + } + while (sock && gsock && sock->groupsock==gsock) { + draw_group_socket(C, snode, ntree, gnode, sock, gsock, index, SOCK_IN); + sock = sock->next; + gsock = gsock->next; + ++index; + } + } + gsock=ngroup->outputs.first; + sock=gnode->outputs.first; + index = 0; + while (gsock || sock) { + while (sock && !sock->groupsock) { + draw_group_socket(C, snode, ntree, gnode, sock, NULL, index, SOCK_OUT); + sock = sock->next; + } + while (gsock && (!sock || sock->groupsock!=gsock)) { + draw_group_socket(C, snode, ntree, gnode, NULL, gsock, index, SOCK_OUT); + gsock = gsock->next; + ++index; + } + while (sock && gsock && sock->groupsock==gsock) { + draw_group_socket(C, snode, ntree, gnode, sock, gsock, index, SOCK_OUT); + sock = sock->next; + gsock = gsock->next; + ++index; + } + } + + uiEndBlock(C, gnode->block); + uiDrawBlock(C, gnode->block); + gnode->block= NULL; + } +} + +static void node_common_buts_whileloop(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "max_iterations", 0, NULL, 0); +} + +static void node_update_frame(const bContext *UNUSED(C), bNodeTree *UNUSED(ntree), bNode *node) +{ + float locx, locy; + + /* get "global" coords */ + nodeSpaceCoords(node, &locx, &locy); + + node->prvr.xmin= locx + NODE_DYS; + node->prvr.xmax= locx + node->width- NODE_DYS; + + node->totr.xmin= locx; + node->totr.xmax= locx + node->width; + node->totr.ymax= locy; + node->totr.ymin= locy - node->height; +} + +static void node_common_set_butfunc(bNodeType *ntype) +{ + switch(ntype->type) { + case NODE_GROUP: +// ntype->uifunc= node_common_buts_group; + ntype->drawfunc= node_draw_group; + ntype->drawupdatefunc= node_update_group; + break; + case NODE_FORLOOP: +// ntype->uifunc= node_common_buts_group; + ntype->drawfunc= node_draw_group; + ntype->drawupdatefunc= node_update_group; + break; + case NODE_WHILELOOP: + ntype->uifunc= node_common_buts_whileloop; + ntype->drawfunc= node_draw_group; + ntype->drawupdatefunc= node_update_group; + break; + case NODE_FRAME: + ntype->drawupdatefunc= node_update_frame; + break; + } +} + /* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */ static void node_browse_text_cb(bContext *C, void *ntree_v, void *node_v) @@ -470,8 +1071,6 @@ static void node_shader_set_butfunc(bNodeType *ntype) case NODE_DYNAMIC: ntype->uifunc= node_shader_buts_dynamic; break; - default: - ntype->uifunc= NULL; } if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } @@ -1225,8 +1824,6 @@ static void node_composit_set_butfunc(bNodeType *ntype) case CMP_NODE_SEPYCCA: ntype->uifunc=node_composit_buts_ycc; break; - default: - ntype->uifunc= NULL; } if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; @@ -1381,9 +1978,6 @@ static void node_texture_set_butfunc(bNodeType *ntype) case TEX_NODE_OUTPUT: ntype->uifunc = node_texture_buts_output; break; - - default: - ntype->uifunc= NULL; } if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } @@ -1392,24 +1986,60 @@ static void node_texture_set_butfunc(bNodeType *ntype) void ED_init_node_butfuncs(void) { + bNodeTreeType *treetype; bNodeType *ntype; - - /* shader nodes */ - ntype= node_all_shaders.first; - while(ntype) { - node_shader_set_butfunc(ntype); - ntype= ntype->next; - } - /* composit nodes */ - ntype= node_all_composit.first; - while(ntype) { - node_composit_set_butfunc(ntype); - ntype= ntype->next; + bNodeSocketType *stype; + int i; + + /* node type ui functions */ + for (i=0; i < NUM_NTREE_TYPES; ++i) { + treetype = ntreeGetType(i); + if (treetype) { + for (ntype= treetype->node_types.first; ntype; ntype= ntype->next) { + /* default ui functions */ + ntype->drawfunc = node_draw_default; + ntype->drawupdatefunc = node_update_default; + ntype->uifunc = NULL; + ntype->uifuncbut = NULL; + ntype->resize_area_func = node_resize_area_default; + + node_common_set_butfunc(ntype); + + switch (i) { + case NTREE_COMPOSIT: + node_composit_set_butfunc(ntype); + break; + case NTREE_SHADER: + node_shader_set_butfunc(ntype); + break; + case NTREE_TEXTURE: + node_texture_set_butfunc(ntype); + break; + } + } + } } - ntype = node_all_textures.first; - while(ntype) { - node_texture_set_butfunc(ntype); - ntype= ntype->next; + + /* socket type ui functions */ + for (i=0; i < NUM_SOCKET_TYPES; ++i) { + stype = ntreeGetSocketType(i); + if (stype) { + switch(stype->type) { + case SOCK_FLOAT: + case SOCK_INT: + case SOCK_BOOLEAN: + stype->buttonfunc = node_socket_button_default; + break; + case SOCK_VECTOR: + stype->buttonfunc = node_socket_button_components; + break; + case SOCK_RGBA: + stype->buttonfunc = node_socket_button_color; + break; + default: + stype->buttonfunc = NULL; + } + } } } @@ -1840,6 +2470,69 @@ void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int t } } +static void node_link_straight_points(View2D *UNUSED(v2d), SpaceNode *snode, bNodeLink *link, float coord_array[][2]) +{ + if(link->fromsock) { + coord_array[0][0]= link->fromsock->locx; + coord_array[0][1]= link->fromsock->locy; + } + else { + if(snode==NULL) return; + coord_array[0][0]= snode->mx; + coord_array[0][1]= snode->my; + } + if(link->tosock) { + coord_array[1][0]= link->tosock->locx; + coord_array[1][1]= link->tosock->locy; + } + else { + if(snode==NULL) return; + coord_array[1][0]= snode->mx; + coord_array[1][1]= snode->my; + } +} + +void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 ) +{ + float coord_array[2][2]; + float linew; + int i; + + node_link_straight_points(v2d, snode, link, coord_array); + + /* store current linewidth */ + glGetFloatv(GL_LINE_WIDTH, &linew); + + glEnable(GL_LINE_SMOOTH); + + if(do_triple) { + UI_ThemeColorShadeAlpha(th_col3, -80, -120); + glLineWidth(4.0f); + + glBegin(GL_LINES); + glVertex2fv(coord_array[0]); + glVertex2fv(coord_array[1]); + glEnd(); + } + + UI_ThemeColor(th_col1); + glLineWidth(1.5f); + + glBegin(GL_LINE_STRIP); + for (i=0; i < LINK_RESOL; ++i) { + float t= (float)i/(float)(LINK_RESOL-1); + if(do_shaded) + UI_ThemeColorBlend(th_col1, th_col2, t); + glVertex2f((1.0f-t)*coord_array[0][0]+t*coord_array[1][0], (1.0f-t)*coord_array[0][1]+t*coord_array[1][1]); + } + glEnd(); + + glDisable(GL_LINE_SMOOTH); + + /* restore previuos linewidth */ + glLineWidth(linew); +} + /* note; this is used for fake links in groups too */ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) { @@ -1868,7 +2561,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) } else { /* check cyclic */ - if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) { + if((link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) && (link->flag & NODE_LINK_VALID)) { /* special indicated link, on drop-node */ if(link->flag & NODE_LINKFLAG_HILITE) { th_col1= th_col2= TH_ACTIVE; @@ -1890,6 +2583,5 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) } node_draw_link_bezier(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3); +// node_draw_link_straight(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3); } - - diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c index 4b989a78fab..7b14e35e8fe 100644 --- a/source/blender/editors/space_node/node_buttons.c +++ b/source/blender/editors/space_node/node_buttons.c @@ -116,10 +116,12 @@ static void active_node_panel(const bContext *C, Panel *pa) uiItemS(layout); uiItemR(layout, &ptr, "name", 0, NULL, ICON_NODE); uiItemS(layout); - + /* draw this node's settings */ if (node->typeinfo && node->typeinfo->uifuncbut) node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr); + else if (node->typeinfo && node->typeinfo->uifunc) + node->typeinfo->uifunc(layout, (bContext *)C, &ptr); } /* ******************* node buttons registration ************** */ diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 950b3c72fe7..ec118bb3ca2 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -70,8 +70,8 @@ #include "RNA_access.h" -#include "CMP_node.h" -#include "SHD_node.h" +#include "NOD_composite.h" +#include "NOD_shader.h" #include "node_intern.h" @@ -81,6 +81,15 @@ // XXX interface.h extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select); +/* XXX update functions for node editor are a mess, needs a clear concept */ +void ED_node_tree_update(SpaceNode *snode, Scene *scene) +{ + snode_set_context(snode, scene); + + if(snode->nodetree && snode->nodetree->id.us==0) + snode->nodetree->id.us= 1; +} + void ED_node_changed_update(ID *id, bNode *node) { bNodeTree *nodetree, *edittree; @@ -123,24 +132,25 @@ static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup) return 0; } +typedef struct NodeUpdateCalldata { + bNodeTree *ntree; + bNode *node; +} NodeUpdateCalldata; +static void node_generic_update_cb(void *calldata, ID *owner_id, bNodeTree *ntree) +{ + NodeUpdateCalldata *cd= (NodeUpdateCalldata*)calldata; + /* check if nodetree uses the group stored in calldata */ + if (has_nodetree(ntree, cd->ntree)) + ED_node_changed_update(owner_id, cd->node); +} void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node) { - Material *ma; - Tex *tex; - Scene *sce; - + bNodeTreeType *tti= ntreeGetType(ntree->type); + NodeUpdateCalldata cd; + cd.ntree = ntree; + cd.node = node; /* look through all datablocks, to support groups */ - for(ma=bmain->mat.first; ma; ma=ma->id.next) - if(ma->nodetree && ma->use_nodes && has_nodetree(ma->nodetree, ntree)) - ED_node_changed_update(&ma->id, node); - - for(tex=bmain->tex.first; tex; tex=tex->id.next) - if(tex->nodetree && tex->use_nodes && has_nodetree(tex->nodetree, ntree)) - ED_node_changed_update(&tex->id, node); - - for(sce=bmain->scene.first; sce; sce=sce->id.next) - if(sce->nodetree && sce->use_nodes && has_nodetree(sce->nodetree, ntree)) - ED_node_changed_update(&sce->id, node); + tti->foreach_nodetree(bmain, &cd, node_generic_update_cb); if(ntree->type == NTREE_TEXTURE) ntreeTexCheckCyclics(ntree); @@ -204,14 +214,19 @@ static void node_uiblocks_init(const bContext *C, bNodeTree *ntree) } /* based on settings in node, sets drawing rect info. each redraw! */ -static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) +static void node_update_basis(const bContext *C, bNodeTree *ntree, bNode *node) { uiLayout *layout; PointerRNA ptr; bNodeSocket *nsock; - float dy= node->locy; + float locx, locy; + float dy= locy; int buty; + /* get "global" coords */ + nodeSpaceCoords(node, &locx, &locy); + dy= locy; + /* header */ dy-= NODE_DY; @@ -222,14 +237,14 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) /* output sockets */ for(nsock= node->outputs.first; nsock; nsock= nsock->next) { if(!(nsock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - nsock->locx= node->locx + node->width; + nsock->locx= locx + node->width; nsock->locy= dy - NODE_DYS; dy-= NODE_DY; } } - node->prvr.xmin= node->locx + NODE_DYS; - node->prvr.xmax= node->locx + node->width- NODE_DYS; + node->prvr.xmin= locx + NODE_DYS; + node->prvr.xmax= locx + node->width- NODE_DYS; /* preview rect? */ if(node->flag & NODE_PREVIEW) { @@ -286,21 +301,22 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) node->butr.ymax= 0; RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); - + layout= uiBlockLayout(node->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, - node->locx+NODE_DYS, dy, node->butr.xmax, NODE_DY, U.uistyles.first); - + locx+NODE_DYS, dy, node->butr.xmax, NODE_DY, U.uistyles.first); + node->typeinfo->uifunc(layout, (bContext *)C, &ptr); + uiBlockEndAlign(node->block); uiBlockLayoutResolve(node->block, NULL, &buty); - + dy= buty - NODE_DYS/2; } /* input sockets */ for(nsock= node->inputs.first; nsock; nsock= nsock->next) { if(!(nsock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - nsock->locx= node->locx; + nsock->locx= locx; nsock->locy= dy - NODE_DYS; dy-= NODE_DY; } @@ -310,19 +326,23 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) if(node->inputs.first || (node->flag & (NODE_OPTIONS|NODE_PREVIEW))==0 ) dy-= NODE_DYS/2; - node->totr.xmin= node->locx; - node->totr.xmax= node->locx + node->width; - node->totr.ymax= node->locy; - node->totr.ymin= MIN2(dy, node->locy-2*NODE_DY); + node->totr.xmin= locx; + node->totr.xmax= locx + node->width; + node->totr.ymax= locy; + node->totr.ymin= MIN2(dy, locy-2*NODE_DY); } /* based on settings in node, sets drawing rect info. each redraw! */ static void node_update_hidden(bNode *node) { bNodeSocket *nsock; + float locx, locy; float rad, drad, hiddenrad= HIDDEN_RAD; int totin=0, totout=0, tot; + /* get "global" coords */ + nodeSpaceCoords(node, &locx, &locy); + /* calculate minimal radius */ for(nsock= node->inputs.first; nsock; nsock= nsock->next) if(!(nsock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) @@ -336,9 +356,9 @@ static void node_update_hidden(bNode *node) hiddenrad += 5.0f*(float)(tot-4); } - node->totr.xmin= node->locx; - node->totr.xmax= node->locx + 3*hiddenrad + node->miniwidth; - node->totr.ymax= node->locy + (hiddenrad - 0.5f*NODE_DY); + node->totr.xmin= locx; + node->totr.xmax= locx + 3*hiddenrad + node->miniwidth; + node->totr.ymax= locy + (hiddenrad - 0.5f*NODE_DY); node->totr.ymin= node->totr.ymax - 2*hiddenrad; /* output sockets */ @@ -364,6 +384,14 @@ static void node_update_hidden(bNode *node) } } +void node_update_default(const bContext *C, bNodeTree *ntree, bNode *node) +{ + if(node->flag & NODE_HIDDEN) + node_update_hidden(node); + else + node_update_basis(C, ntree, node); +} + static int node_get_colorid(bNode *node) { if(node->typeinfo->nclass==NODE_CLASS_INPUT) @@ -383,138 +411,42 @@ static int node_get_colorid(bNode *node) return TH_NODE; } -/* based on settings in node, sets drawing rect info. each redraw! */ -/* note: this assumes only 1 group at a time is drawn (linked data) */ -/* in node->totr the entire boundbox for the group is stored */ -static void node_update_group(const bContext *C, bNodeTree *UNUSED(ntree), bNode *gnode) -{ - bNodeTree *ngroup= (bNodeTree *)gnode->id; - bNode *node; - bNodeSocket *sock, *gsock; - rctf *rect= &gnode->totr; - float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; - int counter; - int dy; - - rect->xmin = rect->xmax = gnode->locx; - rect->ymin = rect->ymax = gnode->locy; - - /* center them, is a bit of abuse of locx and locy though */ - for(node= ngroup->nodes.first; node; node= node->next) { - node->locx+= gnode->locx; - node->locy+= gnode->locy; - - if(node->flag & NODE_HIDDEN) - node_update_hidden(node); - else - node_update(C, ngroup, node); - node->locx-= gnode->locx; - node->locy-= gnode->locy; - } - counter= 1; - for(node= ngroup->nodes.first; node; node= node->next) { - if(counter) { - *rect= node->totr; - counter= 0; - } - else - BLI_union_rctf(rect, &node->totr); - } - - /* add some room for links to group sockets */ - rect->xmin -= 4*NODE_DY; - rect->xmax += 4*NODE_DY; - rect->ymin-= NODE_DY; - rect->ymax+= NODE_DY; - - /* input sockets */ - dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->inputs)-1); - for(gsock=ngroup->inputs.first, sock=gnode->inputs.first; gsock; gsock=gsock->next, sock=sock->next) { - gsock->locx = rect->xmin; - sock->locx = rect->xmin - node_group_frame; - sock->locy = gsock->locy = dy; - - /* prevent long socket lists from growing out of the group box */ - if (dy-3*NODE_DYS < rect->ymin) - rect->ymin = dy-3*NODE_DYS; - if (dy+3*NODE_DYS > rect->ymax) - rect->ymax = dy+3*NODE_DYS; - - dy -= 2*NODE_DY; - } - - /* output sockets */ - dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->outputs)-1); - for(gsock=ngroup->outputs.first, sock=gnode->outputs.first; gsock; gsock=gsock->next, sock=sock->next) { - gsock->locx = rect->xmax; - sock->locx = rect->xmax + node_group_frame; - sock->locy = gsock->locy = dy - NODE_DYS; - - /* prevent long socket lists from growing out of the group box */ - if (dy-3*NODE_DYS < rect->ymin) - rect->ymin = dy-3*NODE_DYS; - if (dy+3*NODE_DYS > rect->ymax) - rect->ymax = dy+3*NODE_DYS; - - dy -= 2*NODE_DY; - } -} - /* note: in cmp_util.c is similar code, for node_compo_pass_on() */ /* note: in node_edit.c is similar code, for untangle node */ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node) { - bNodeSocket *valsock= NULL, *colsock= NULL, *vecsock= NULL; - bNodeSocket *sock; + static int types[]= { SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA }; bNodeLink link= {NULL}; - int a; + int i; - /* connect the first value buffer in with first value out */ - /* connect the first RGBA buffer in with first RGBA out */ + /* connect the first input of each type with first output of the same type */ - /* test the inputs */ - for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { - if(nodeCountSocketLinks(snode->edittree, sock)) { - if(sock->type==SOCK_VALUE && valsock==NULL) valsock= sock; - if(sock->type==SOCK_VECTOR && vecsock==NULL) vecsock= sock; - if(sock->type==SOCK_RGBA && colsock==NULL) colsock= sock; - } - } - - /* outputs, draw lines */ glEnable(GL_BLEND); glEnable( GL_LINE_SMOOTH ); - if(valsock || colsock || vecsock) { - for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { - if(nodeCountSocketLinks(snode->edittree, sock)) { - link.tosock= sock; - - if(sock->type==SOCK_VALUE && valsock) { - link.fromsock= valsock; - node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE); - valsock= NULL; - } - if(sock->type==SOCK_VECTOR && vecsock) { - link.fromsock= vecsock; - node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE); - vecsock= NULL; - } - if(sock->type==SOCK_RGBA && colsock) { - link.fromsock= colsock; - node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE); - colsock= NULL; - } + link.fromnode = link.tonode = node; + for (i=0; i < 3; ++i) { + /* find input socket */ + for (link.fromsock=node->inputs.first; link.fromsock; link.fromsock=link.fromsock->next) + if (link.fromsock->type==types[i] && nodeCountSocketLinks(snode->edittree, link.fromsock)) + break; + if (link.fromsock) { + for (link.tosock=node->outputs.first; link.tosock; link.tosock=link.tosock->next) + if (link.tosock->type==types[i] && nodeCountSocketLinks(snode->edittree, link.tosock)) + break; + + if (link.tosock) { + node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE); } } } + glDisable(GL_BLEND); glDisable( GL_LINE_SMOOTH ); } -/* nice AA filled circle */ /* this might have some more generic use */ -static void circle_draw(float x, float y, float size, int col[3]) +static void node_circle_draw(float x, float y, float size, char *col) { /* 16 values of sin function */ static float si[16] = { @@ -550,37 +482,10 @@ static void circle_draw(float x, float y, float size, int col[3]) glDisable(GL_BLEND); } -static void socket_circle_draw(bNodeSocket *sock, float size) -{ - int col[3]; - - if(sock->type==-1) { - col[0]= 0; col[1]= 0; col[2]= 0; - } - else if(sock->type==SOCK_VALUE) { - col[0]= 160; col[1]= 160; col[2]= 160; - } - else if(sock->type==SOCK_VECTOR) { - col[0]= 100; col[1]= 100; col[2]= 200; - } - else if(sock->type==SOCK_RGBA) { - col[0]= 200; col[1]= 200; col[2]= 40; - } - else { - col[0]= 100; col[1]= 200; col[2]= 100; - } - - circle_draw(sock->locx, sock->locy, size, col); -} - -static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v) +void node_socket_circle_draw(bNodeTree *UNUSED(ntree), bNodeSocket *sock, float size) { - SpaceNode *snode= snode_v; - - if(snode->treetype==NTREE_SHADER) { - nodeShaderSynchronizeID(node_v, 1); - // allqueue(REDRAWBUTSSHADING, 0); - } + bNodeSocketType *stype = ntreeGetSocketType(sock->type); + node_circle_draw(sock->locx, sock->locy, size, stype->ui_color); } /* ************** Socket callbacks *********** */ @@ -639,83 +544,6 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv) } -typedef struct SocketVectorMenuArgs { - PointerRNA ptr; - int x, y, width; - uiButHandleFunc cb; - void *arg1, *arg2; -} SocketVectorMenuArgs; - -/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */ -static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *args_v) -{ - SocketVectorMenuArgs *args= (SocketVectorMenuArgs*)args_v; - uiBlock *block; - uiLayout *layout; - - block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS); - uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN); - - layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, NODE_DY, U.uistyles.first), 0); - - uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NONE); - - return block; -} - -static void node_draw_socket_button(bNodeTree *ntree, bNodeSocket *sock, const char *name, - uiBlock *block, int x, int y, int width, - uiButHandleFunc cb, void *arg1, void *arg2) -{ - uiBut *bt= NULL; - PointerRNA ptr; - int labelw; - SocketVectorMenuArgs *args; - - RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr); - - switch (sock->type) { - case SOCK_VALUE: - bt=uiDefButR(block, NUM, B_NODE_EXEC, name, - x, y+1, width, NODE_DY-2, - &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL); - if (cb) - uiButSetFunc(bt, cb, arg1, arg2); - break; - - case SOCK_VECTOR: - args= MEM_callocN(sizeof(SocketVectorMenuArgs), "SocketVectorMenuArgs"); - - args->ptr = ptr; - args->x = x; - args->y = y; - args->width = width; - args->cb = cb; - args->arg1 = arg1; - args->arg2 = arg2; - - uiDefBlockButN(block, socket_vector_menu, args, name, - x, y+1, width, NODE_DY-2, - ""); - break; - - case SOCK_RGBA: - labelw= width - 40; - - bt=uiDefButR(block, COL, B_NODE_EXEC, "", - x, y+2, (labelw>0 ? 40 : width), NODE_DY-2, - &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL); - if (cb) - uiButSetFunc(bt, cb, arg1, arg2); - - if (name[0]!='\0' && labelw>0) - uiDefBut(block, LABEL, 0, name, - x + 40, y+2, labelw, NODE_DY-2, - NULL, 0, 0, 0, 0, ""); - break; - } -} - static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node) { bNodeSocket *sock; @@ -809,13 +637,8 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN else UI_ThemeColor(TH_TEXT); */ - if (node->label[0]!='\0') - BLI_strncpy(showname, node->label, sizeof(showname)); - else if (node->typeinfo->labelfunc) - BLI_strncpy(showname, node->typeinfo->labelfunc(node), sizeof(showname)); - else - BLI_strncpy(showname, node->typeinfo->name, sizeof(showname)); - + BLI_strncpy(showname, nodeLabel(node), sizeof(showname)); + //if(node->flag & NODE_MUTED) // sprintf(showname, "[%s]", showname); @@ -855,37 +678,45 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN /* socket inputs, buttons */ for(sock= node->inputs.first; sock; sock= sock->next) { - if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - socket_circle_draw(sock, socket_size); - - if(node->block && sock->link==NULL) { - node_draw_socket_button(ntree, sock, sock->name, node->block, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, node_sync_cb, snode, node); - } - else { - uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f), - (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); - } + bNodeSocketType *stype= ntreeGetSocketType(sock->type); + + if(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)) + continue; + + node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE); + + if (sock->link) { + uiDefBut(node->block, LABEL, 0, sock->name, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, NODE_DY, + NULL, 0, 0, 0, 0, ""); + } + else { + if (stype->buttonfunc) + stype->buttonfunc(C, node->block, ntree, node, sock, sock->name, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY); } } /* socket outputs */ for(sock= node->outputs.first; sock; sock= sock->next) { - if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - float slen; - int ofs= 0; - - socket_circle_draw(sock, socket_size); - - UI_ThemeColor(TH_TEXT); - slen= snode->aspect*UI_GetStringWidth(sock->name); - while(slen > node->width) { - ofs++; - slen= snode->aspect*UI_GetStringWidth(sock->name+ofs); - } - - uiDefBut(node->block, LABEL, 0, sock->name+ofs, (short)(sock->locx-15.0f-slen), (short)(sock->locy-9.0f), - (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); + PointerRNA sockptr; + float slen; + int ofs; + + RNA_pointer_create((ID*)ntree, &RNA_NodeSocket, sock, &sockptr); + + if(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)) + continue; + + node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE); + + ofs= 0; + UI_ThemeColor(TH_TEXT); + slen= snode->aspect*UI_GetStringWidth(sock->name); + while(slen > node->width) { + ofs++; + slen= snode->aspect*UI_GetStringWidth(sock->name+ofs); } + uiDefBut(node->block, LABEL, 0, sock->name+ofs, (short)(sock->locx-15.0f-slen), (short)(sock->locy-9.0f), + (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); } /* preview */ @@ -956,12 +787,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b UI_ThemeColor(TH_TEXT); if(node->miniwidth>0.0f) { - if (node->label[0]!='\0') - BLI_strncpy(showname, node->label, sizeof(showname)); - else if (node->typeinfo->labelfunc) - BLI_strncpy(showname, node->typeinfo->labelfunc(node), sizeof(showname)); - else - BLI_strncpy(showname, node->typeinfo->name, sizeof(showname)); + BLI_strncpy(showname, nodeLabel(node), sizeof(showname)); //if(node->flag & NODE_MUTED) // sprintf(showname, "[%s]", showname); @@ -984,12 +810,12 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b /* sockets */ for(sock= node->inputs.first; sock; sock= sock->next) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) - socket_circle_draw(sock, socket_size); + node_socket_circle_draw(snode->nodetree, sock, socket_size); } for(sock= node->outputs.first; sock; sock= sock->next) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) - socket_circle_draw(sock, socket_size); + node_socket_circle_draw(snode->nodetree, sock, socket_size); } uiEndBlock(C, node->block); @@ -997,7 +823,43 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b node->block= NULL; } -static void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree) +void node_draw_default(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node) +{ + if(node->flag & NODE_HIDDEN) + node_draw_hidden(C, ar, snode, node); + else + node_draw_basis(C, ar, snode, ntree, node); +} + +static void node_update(const bContext *C, bNodeTree *ntree, bNode *node) +{ + if (node->typeinfo->drawupdatefunc) + node->typeinfo->drawupdatefunc(C, ntree, node); +} + +void node_update_nodetree(const bContext *C, bNodeTree *ntree, float offsetx, float offsety) +{ + bNode *node; + + for(node= ntree->nodes.first; node; node= node->next) { + /* XXX little hack */ + node->locx += offsetx; + node->locy += offsety; + + node_update(C, ntree, node); + + node->locx -= offsetx; + node->locy -= offsety; + } +} + +static void node_draw(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node) +{ + if (node->typeinfo->drawfunc) + node->typeinfo->drawfunc(C, ar, snode, ntree, node); +} + +void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree) { bNode *node; bNodeLink *link; @@ -1013,212 +875,11 @@ static void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); - /* not selected first */ - for(a=0, node= ntree->nodes.first; node; node= node->next, a++) { + /* draw nodes, last nodes in front */ + for(a=0, node= ntree->nodes.first; node; node=node->next, a++) { node->nr= a; /* index of node in list, used for exec event code */ - if(!(node->flag & SELECT)) { - if(node->flag & NODE_GROUP_EDIT); - else if(node->flag & NODE_HIDDEN) - node_draw_hidden(C, ar, snode, node); - else - node_draw_basis(C, ar, snode, ntree, node); - } - } - - /* selected */ - for(node= ntree->nodes.first; node; node= node->next) { - if(node->flag & SELECT) { - if(node->flag & NODE_GROUP_EDIT); - else if(node->flag & NODE_HIDDEN) - node_draw_hidden(C, ar, snode, node); - else - node_draw_basis(C, ar, snode, ntree, node); - } - } -} - -static void group_verify_cb(bContext *UNUSED(C), void *UNUSED(snode_v), void *ngroup_v) -{ - bNodeTree *ngroup= (bNodeTree*)ngroup_v; - - nodeGroupVerify(ngroup); -} - -/* groups are, on creation, centered around 0,0 */ -static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *gnode) -{ - bNodeTree *ngroup= (bNodeTree *)gnode->id; - bNodeSocket *sock; - uiLayout *layout; - PointerRNA ptr; - uiBut *bt; - rctf rect= gnode->totr; - float socket_size= NODE_SOCKSIZE*U.dpi/72; - float node_group_frame= U.dpi*NODE_GROUP_FRAME/72; - float group_header= 26*U.dpi/72; - float arrowbutw= 0.8f*UI_UNIT_X; - /* layout stuff for buttons on group left frame */ - float col1= 6, colw1= 0.6f*node_group_frame; - float col2= col1 + colw1+6; - float col3= node_group_frame - arrowbutw - 6; - /* layout stuff for buttons on group right frame */ - float cor1= 6; - float cor2= cor1 + arrowbutw + 6; - float cor3= cor2 + arrowbutw + 6, corw3= node_group_frame - cor3-6; - - int index; - - /* backdrop header */ - glEnable(GL_BLEND); - uiSetRoundBox(3); - UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70); - uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymax, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); - - /* backdrop body */ - UI_ThemeColorShadeAlpha(TH_BACK, -8, -70); - uiSetRoundBox(0); - uiDrawBox(GL_POLYGON, rect.xmin, rect.ymin, rect.xmax, rect.ymax, BASIS_RAD); - - /* input column */ - UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); - uiSetRoundBox(8); - uiDrawBox(GL_POLYGON, rect.xmin-node_group_frame, rect.ymin, rect.xmin, rect.ymax, BASIS_RAD); - - /* output column */ - UI_ThemeColorShadeAlpha(TH_BACK, 10, -50); - uiSetRoundBox(4); - uiDrawBox(GL_POLYGON, rect.xmax, rect.ymin, rect.xmax+node_group_frame, rect.ymax, BASIS_RAD); - - /* input column separator */ - glColor4ub(200, 200, 200, 140); - glBegin(GL_LINES); - glVertex2f(rect.xmin, rect.ymin); - glVertex2f(rect.xmin, rect.ymax); - glEnd(); - - /* output column separator */ - glColor4ub(200, 200, 200, 140); - glBegin(GL_LINES); - glVertex2f(rect.xmax, rect.ymin); - glVertex2f(rect.xmax, rect.ymax); - glEnd(); - - /* group node outline */ - uiSetRoundBox(15); - glColor4ub(200, 200, 200, 140); - glEnable( GL_LINE_SMOOTH ); - uiDrawBox(GL_LINE_LOOP, rect.xmin-node_group_frame, rect.ymin, rect.xmax+node_group_frame, rect.ymax+group_header, BASIS_RAD); - glDisable( GL_LINE_SMOOTH ); - glDisable(GL_BLEND); - - /* backdrop title */ - UI_ThemeColor(TH_TEXT_HI); - - layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+group_header), - MIN2((int)(rect.xmax - rect.xmin-18.0f), node_group_frame+20), group_header, U.uistyles.first); - RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr); - uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL); - uiBlockLayoutResolve(gnode->block, NULL, NULL); - - /* draw the internal tree nodes and links */ - node_draw_nodetree(C, ar, snode, ngroup); - - /* group sockets */ - for(sock=ngroup->inputs.first, index=0; sock; sock=sock->next, ++index) { - float locx= sock->locx - node_group_frame; - - socket_circle_draw(sock, socket_size); - /* small hack to use socket_circle_draw function with offset */ - sock->locx -= node_group_frame; - socket_circle_draw(sock, socket_size); - sock->locx += node_group_frame; - - bt = uiDefBut(gnode->block, TEX, 0, "", - locx+col1, sock->locy+1, colw1, NODE_DY, - sock->name, 0, 31, 0, 0, ""); - uiButSetFunc(bt, group_verify_cb, snode, ngroup); - - node_draw_socket_button(ngroup, sock, "", gnode->block, - locx+col1, sock->locy-NODE_DY, colw1, - NULL, NULL, NULL); - - uiBlockSetDirection(gnode->block, UI_TOP); - uiBlockBeginAlign(gnode->block); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP, - locx+col2, sock->locy, arrowbutw, arrowbutw, ""); - if (!sock->prev) - uiButSetFlag(bt, UI_BUT_DISABLED); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN, - locx+col2, sock->locy-arrowbutw, arrowbutw, arrowbutw, ""); - if (!sock->next) - uiButSetFlag(bt, UI_BUT_DISABLED); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN); - uiBlockEndAlign(gnode->block); - uiBlockSetDirection(gnode->block, 0); - - uiBlockSetEmboss(gnode->block, UI_EMBOSSN); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X, - locx+col3, sock->locy-0.5f*arrowbutw, arrowbutw, arrowbutw, ""); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN); - uiBlockSetEmboss(gnode->block, UI_EMBOSS); - } - - for(sock=ngroup->outputs.first, index=0; sock; sock=sock->next, ++index) { - float locx= sock->locx; - - socket_circle_draw(sock, socket_size); - /* small hack to use socket_circle_draw function with offset */ - sock->locx += node_group_frame; - socket_circle_draw(sock, socket_size); - sock->locx -= node_group_frame; - - uiBlockSetEmboss(gnode->block, UI_EMBOSSN); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X, - locx+col1, sock->locy-0.5f*arrowbutw, arrowbutw, arrowbutw, ""); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT); - uiBlockSetEmboss(gnode->block, UI_EMBOSS); - - uiBlockSetDirection(gnode->block, UI_TOP); - uiBlockBeginAlign(gnode->block); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP, - locx+cor2, sock->locy, arrowbutw, arrowbutw, ""); - if (!sock->prev) - uiButSetFlag(bt, UI_BUT_DISABLED); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT); - bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN, - locx+cor2, sock->locy-arrowbutw, arrowbutw, arrowbutw, ""); - if (!sock->next) - uiButSetFlag(bt, UI_BUT_DISABLED); - RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index); - RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT); - uiBlockEndAlign(gnode->block); - uiBlockSetDirection(gnode->block, 0); - - if (sock->link) { - bt = uiDefBut(gnode->block, TEX, 0, "", - locx+cor3, sock->locy-NODE_DYS+1, corw3, NODE_DY, - sock->name, 0, 31, 0, 0, ""); - uiButSetFunc(bt, group_verify_cb, snode, ngroup); - } - else { - bt = uiDefBut(gnode->block, TEX, 0, "", - locx+cor3, sock->locy+1, corw3, NODE_DY, - sock->name, 0, 31, 0, 0, ""); - uiButSetFunc(bt, group_verify_cb, snode, ngroup); - - node_draw_socket_button(ngroup, sock, "", gnode->block, locx+cor3, sock->locy-NODE_DY, corw3, NULL, NULL, NULL); - } + node_draw(C, ar, snode, ntree, node); } - - uiEndBlock(C, gnode->block); - uiDrawBlock(C, gnode->block); - gnode->block= NULL; } void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d) @@ -1260,27 +921,19 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d) if(node->flag & NODE_GROUP_EDIT) node_uiblocks_init(C, (bNodeTree *)node->id); } - - node_uiblocks_init(C, snode->nodetree); + node_uiblocks_init(C, snode->nodetree); - /* for now, we set drawing coordinates on each redraw */ - for(node= snode->nodetree->nodes.first; node; node= node->next) { - if(node->flag & NODE_GROUP_EDIT) - node_update_group(C, snode->nodetree, node); - else if(node->flag & NODE_HIDDEN) - node_update_hidden(node); - else - node_update(C, snode->nodetree, node); - } - + node_update_nodetree(C, snode->nodetree, 0.0f, 0.0f); node_draw_nodetree(C, ar, snode, snode->nodetree); - + + #if 0 /* active group */ for(node= snode->nodetree->nodes.first; node; node= node->next) { if(node->flag & NODE_GROUP_EDIT) node_draw_group(C, ar, snode, snode->nodetree, node); } + #endif } /* temporary links */ diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 508cb82ee1b..214f375855d 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -40,9 +40,11 @@ #include "MEM_guardedalloc.h" +#include "DNA_ID.h" #include "DNA_object_types.h" #include "DNA_material_types.h" #include "DNA_node_types.h" +#include "DNA_particle_types.h" #include "DNA_scene_types.h" #include "BLI_math.h" @@ -58,11 +60,17 @@ #include "BKE_main.h" #include "BKE_node.h" #include "BKE_material.h" +#include "BKE_modifier.h" #include "BKE_paint.h" #include "BKE_screen.h" #include "BKE_texture.h" #include "BKE_report.h" + +#include "BLI_math.h" +#include "BLI_blenlib.h" +#include "BLI_storage_types.h" + #include "RE_pipeline.h" #include "IMB_imbuf_types.h" @@ -74,11 +82,13 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "WM_api.h" #include "WM_types.h" #include "UI_interface.h" +#include "UI_resources.h" #include "UI_view2d.h" #include "IMB_imbuf.h" @@ -88,9 +98,9 @@ #include "node_intern.h" static EnumPropertyItem socket_in_out_items[] = { - { SOCK_IN, "IN", 0, "In", "" }, - { SOCK_OUT, "OUT", 0, "Out", "" }, - { 0, NULL, 0, NULL, NULL} + { SOCK_IN, "SOCK_IN", 0, "Input", "" }, + { SOCK_OUT, "SOCK_OUT", 0, "Output", "" }, + { 0, NULL, 0, NULL, NULL }, }; /* ***************** composite job manager ********************** */ @@ -227,7 +237,7 @@ static bNode *editnode_get_active(bNodeTree *ntree) /* check for edited group */ for(node= ntree->nodes.first; node; node= node->next) - if(node->flag & NODE_GROUP_EDIT) + if(nodeGroupEditGet(node)) break; if(node) return nodeGetActive((bNodeTree *)node->id); @@ -258,7 +268,7 @@ bNode *node_tree_get_editgroup(bNodeTree *nodetree) /* get the groupnode */ for(gnode= nodetree->nodes.first; gnode; gnode= gnode->next) - if(gnode->flag & NODE_GROUP_EDIT) + if(nodeGroupEditGet(gnode)) break; return gnode; } @@ -269,6 +279,7 @@ void ED_node_shader_default(Material *ma) { bNode *in, *out; bNodeSocket *fromsock, *tosock; + bNodeTemplate ntemp; /* but lets check it anyway */ if(ma->nodetree) { @@ -277,12 +288,14 @@ void ED_node_shader_default(Material *ma) return; } - ma->nodetree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE); + ma->nodetree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, 0); - out= nodeAddNodeType(ma->nodetree, SH_NODE_OUTPUT, NULL, NULL); + ntemp.type = SH_NODE_OUTPUT; + out= nodeAddNode(ma->nodetree, &ntemp); out->locx= 300.0f; out->locy= 300.0f; - in= nodeAddNodeType(ma->nodetree, SH_NODE_MATERIAL, NULL, NULL); + ntemp.type = SH_NODE_MATERIAL; + in= nodeAddNode(ma->nodetree, &ntemp); in->locx= 10.0f; in->locy= 300.0f; nodeSetActive(ma->nodetree, in); @@ -291,7 +304,7 @@ void ED_node_shader_default(Material *ma) tosock= out->inputs.first; nodeAddLink(ma->nodetree, in, fromsock, out, tosock); - ntreeSolveOrder(ma->nodetree); /* needed for pointers */ + ntreeUpdateTree(ma->nodetree); } /* assumes nothing being done in ntree yet, sets the default in/out node */ @@ -300,6 +313,7 @@ void ED_node_composit_default(Scene *sce) { bNode *in, *out; bNodeSocket *fromsock, *tosock; + bNodeTemplate ntemp; /* but lets check it anyway */ if(sce->nodetree) { @@ -308,14 +322,16 @@ void ED_node_composit_default(Scene *sce) return; } - sce->nodetree= ntreeAddTree("Compositing Nodetree", NTREE_COMPOSIT, FALSE); + sce->nodetree= ntreeAddTree("Compositing Nodetree", NTREE_COMPOSIT, 0); - out= nodeAddNodeType(sce->nodetree, CMP_NODE_COMPOSITE, NULL, NULL); + ntemp.type = CMP_NODE_COMPOSITE; + out= nodeAddNode(sce->nodetree, &ntemp); out->locx= 300.0f; out->locy= 400.0f; out->id= &sce->id; id_us_plus(out->id); - in= nodeAddNodeType(sce->nodetree, CMP_NODE_R_LAYERS, NULL, NULL); + ntemp.type = CMP_NODE_R_LAYERS; + in= nodeAddNode(sce->nodetree, &ntemp); in->locx= 10.0f; in->locy= 400.0f; in->id= &sce->id; id_us_plus(in->id); @@ -326,7 +342,7 @@ void ED_node_composit_default(Scene *sce) tosock= out->inputs.first; nodeAddLink(sce->nodetree, in, fromsock, out, tosock); - ntreeSolveOrder(sce->nodetree); /* needed for pointers */ + ntreeUpdateTree(sce->nodetree); // XXX ntreeCompositForceHidden(sce->nodetree); } @@ -337,6 +353,7 @@ void ED_node_texture_default(Tex *tx) { bNode *in, *out; bNodeSocket *fromsock, *tosock; + bNodeTemplate ntemp; /* but lets check it anyway */ if(tx->nodetree) { @@ -345,12 +362,14 @@ void ED_node_texture_default(Tex *tx) return; } - tx->nodetree= ntreeAddTree("Texture Nodetree", NTREE_TEXTURE, FALSE); + tx->nodetree= ntreeAddTree("Texture Nodetree", NTREE_TEXTURE, 0); - out= nodeAddNodeType(tx->nodetree, TEX_NODE_OUTPUT, NULL, NULL); + ntemp.type = TEX_NODE_OUTPUT; + out= nodeAddNode(tx->nodetree, &ntemp); out->locx= 300.0f; out->locy= 300.0f; - in= nodeAddNodeType(tx->nodetree, TEX_NODE_CHECKER, NULL, NULL); + ntemp.type = TEX_NODE_CHECKER; + in= nodeAddNode(tx->nodetree, &ntemp); in->locx= 10.0f; in->locy= 300.0f; nodeSetActive(tx->nodetree, in); @@ -358,43 +377,53 @@ void ED_node_texture_default(Tex *tx) tosock= out->inputs.first; nodeAddLink(tx->nodetree, in, fromsock, out, tosock); - ntreeSolveOrder(tx->nodetree); /* needed for pointers */ + ntreeUpdateTree(tx->nodetree); } /* id is supposed to contain a node tree */ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype) { - bNode *node= NULL; - short idtype= GS(id->name); - - if(idtype == ID_MA) { - *ntree= ((Material*)id)->nodetree; - if(treetype) *treetype= NTREE_SHADER; - } - else if(idtype == ID_SCE) { - *ntree= ((Scene*)id)->nodetree; - if(treetype) *treetype= NTREE_COMPOSIT; - } - else if(idtype == ID_TE) { - *ntree= ((Tex*)id)->nodetree; - if(treetype) *treetype= NTREE_TEXTURE; + if (id) { + bNode *node= NULL; + short idtype= GS(id->name); + + if(idtype == ID_NT) { + *ntree= (bNodeTree*)id; + if(treetype) *treetype= (*ntree)->type; + } + else if(idtype == ID_MA) { + *ntree= ((Material*)id)->nodetree; + if(treetype) *treetype= NTREE_SHADER; + } + else if(idtype == ID_SCE) { + *ntree= ((Scene*)id)->nodetree; + if(treetype) *treetype= NTREE_COMPOSIT; + } + else if(idtype == ID_TE) { + *ntree= ((Tex*)id)->nodetree; + if(treetype) *treetype= NTREE_TEXTURE; + } + else { + if(treetype) *treetype= 0; + return; + } + + /* find editable group */ + if(edittree) { + if(*ntree) + for(node= (*ntree)->nodes.first; node; node= node->next) + if(nodeGroupEditGet(node)) + break; + + if(node && node->id) + *edittree= (bNodeTree *)node->id; + else + *edittree= *ntree; + } } else { + *ntree= NULL; if(treetype) *treetype= 0; - return; - } - - /* find editable group */ - if(edittree) { - if(*ntree) - for(node= (*ntree)->nodes.first; node; node= node->next) - if(node->flag & NODE_GROUP_EDIT) - break; - - if(node && node->id) - *edittree= (bNodeTree *)node->id; - else - *edittree= *ntree; } } @@ -403,8 +432,6 @@ void snode_set_context(SpaceNode *snode, Scene *scene) { Object *ob= OBACT; - snode->nodetree= NULL; - snode->edittree= NULL; snode->id= snode->from= NULL; if(snode->treetype==NTREE_SHADER) { @@ -418,7 +445,6 @@ void snode_set_context(SpaceNode *snode, Scene *scene) } } else if(snode->treetype==NTREE_COMPOSIT) { - snode->from= NULL; snode->id= &scene->id; /* bit clumsy but reliable way to see if we draw first time */ @@ -461,9 +487,14 @@ void snode_set_context(SpaceNode *snode, Scene *scene) } } } + else { + if (snode->nodetree && snode->nodetree->type == snode->treetype) + snode->id = &snode->nodetree->id; + else + snode->id = NULL; + } - if(snode->id) - node_tree_from_ID(snode->id, &snode->nodetree, &snode->edittree, NULL); + node_tree_from_ID(snode->id, &snode->nodetree, &snode->edittree, NULL); } static void snode_tag_changed(SpaceNode *snode, bNode *node) @@ -574,17 +605,199 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) } } -/* when links in groups change, inputs/outputs change, nodes added/deleted... */ -void node_tree_verify_groups(bNodeTree *nodetree) +static int compare_nodes(bNode *a, bNode *b) { - bNode *gnode; + bNode *parent; - gnode= node_tree_get_editgroup(nodetree); + /* if one is an ancestor of the other */ + /* XXX there might be a better sorting algorithm for stable topological sort, this is O(n^2) worst case */ + for (parent = a->parent; parent; parent=parent->parent) { + if (parent==b) + return 1; + } + for (parent = b->parent; parent; parent=parent->parent) { + if (parent==a) + return 0; + } + + /* if one of the nodes is in the background and the other not */ + if ((a->flag & NODE_BACKGROUND) && !(b->typeinfo->flag & NODE_BACKGROUND)) + return 0; + else if (!(a->flag & NODE_BACKGROUND) && (b->typeinfo->flag & NODE_BACKGROUND)) + return 1; - /* does all materials */ - if(gnode) - nodeGroupVerify((bNodeTree *)gnode->id); + /* if one has a higher selection state (active > selected > nothing) */ + if (!(b->flag & NODE_ACTIVE) && (a->flag & NODE_ACTIVE)) + return 1; + else if (!(b->flag & NODE_SELECT) && ((a->flag & NODE_ACTIVE) || (a->flag & NODE_SELECT))) + return 1; + return 0; +} +/* Sorts nodes by selection: unselected nodes first, then selected, + * then the active node at the very end. Relative order is kept intact! + */ +void node_sort(bNodeTree *ntree) +{ + /* merge sort is the algorithm of choice here */ + bNode *first_a, *first_b, *node_a, *node_b, *tmp; + int totnodes= BLI_countlist(&ntree->nodes); + int k, a, b; + + k = 1; + while (k < totnodes) { + first_a = first_b = ntree->nodes.first; + + do { + /* setup first_b pointer */ + for (b=0; b < k && first_b; ++b) { + first_b = first_b->next; + } + /* all batches merged? */ + if (first_b==NULL) + break; + + /* merge batches */ + node_a = first_a; + node_b = first_b; + a = b = 0; + while (a < k && b < k && node_b) { + if (compare_nodes(node_a, node_b)==0) { + node_a = node_a->next; + ++a; + } + else { + tmp = node_b; + node_b = node_b->next; + ++b; + BLI_remlink(&ntree->nodes, tmp); + BLI_insertlinkbefore(&ntree->nodes, node_a, tmp); + } + } + + /* setup first pointers for next batch */ + first_b = node_b; + for (; b < k; ++b) { + /* all nodes sorted? */ + if (first_b==NULL) + break; + first_b = first_b->next; + } + first_a = first_b; + } while (first_b); + + k = k << 1; + } +} + +static int inside_rctf(rctf *bounds, rctf *rect) +{ + return (bounds->xmin <= rect->xmin && bounds->xmax >= rect->xmax + && bounds->ymin <= rect->ymin && bounds->ymax >= rect->ymax); +} + +static void node_frame_attach_nodes(bNodeTree *UNUSED(ntree), bNode *frame) +{ + bNode *node; + + /* only check nodes on top of the frame for attaching */ + for (node=frame->next; node; node=node->next) { + if (node->parent==frame) { + /* detach nodes that went outside the frame */ + if (!inside_rctf(&frame->totr, &node->totr)) + nodeDetachNode(node); + } + else if (node->flag & NODE_SELECT && node->parent==NULL) { + /* attach selected, still unparented nodes */ + if (inside_rctf(&frame->totr, &node->totr)) + nodeAttachNode(node, frame); + } + } +} + +void ED_node_update_hierarchy(bContext *UNUSED(C), bNodeTree *ntree) +{ + bNode *node; + + /* XXX This does not work due to layout functions relying on node->block, + * which only exists during actual drawing. Can we rely on valid totr rects? + */ + /* make sure nodes have correct bounding boxes after transform */ +// node_update_nodetree(C, ntree, 0.0f, 0.0f); + + /* all selected nodes are re-parented */ + for (node=ntree->nodes.last; node; node=node->prev) { + if (node->flag & NODE_SELECT && node->parent) + nodeDetachNode(node); + } + + /* update higher Z-level nodes first */ + for (node=ntree->nodes.last; node; node=node->prev) { + /* XXX callback? */ + if (node->type==NODE_FRAME) + node_frame_attach_nodes(ntree, node); + } +} + +/* ***************** generic operator functions for nodes ***************** */ + +static int edit_node_poll(bContext *C) +{ + return ED_operator_node_active(C); +} + +static void edit_node_properties(wmOperatorType *ot) +{ + /* XXX could node be a context pointer? */ + RNA_def_string(ot->srna, "node", "", 32, "Node", ""); + RNA_def_int(ot->srna, "socket", 0, 0, MAX_SOCKET, "Socket", "", 0, MAX_SOCKET); + RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Side", ""); +} + +static int edit_node_invoke_properties(bContext *C, wmOperator *op) +{ + if (!RNA_property_is_set(op->ptr, "node")) { + bNode *node= CTX_data_pointer_get_type(C, "node", &RNA_Node).data; + if (!node) + return 0; + else + RNA_string_set(op->ptr, "node", node->name); + } + + if (!RNA_property_is_set(op->ptr, "in_out")) + RNA_enum_set(op->ptr, "in_out", SOCK_IN); + + if (!RNA_property_is_set(op->ptr, "socket")) + RNA_int_set(op->ptr, "socket", 0); + + return 1; +} + +static void edit_node_properties_get(wmOperator *op, bNodeTree *ntree, bNode **rnode, bNodeSocket **rsock, int *rin_out) +{ + bNode *node; + bNodeSocket *sock; + char nodename[32]; + int sockindex; + int in_out; + + RNA_string_get(op->ptr, "node", nodename); + node = nodeFindNodebyName(ntree, nodename); + + in_out = RNA_enum_get(op->ptr, "in_out"); + + sockindex = RNA_int_get(op->ptr, "socket"); + switch (in_out) { + case SOCK_IN: sock = BLI_findlink(&node->inputs, sockindex); break; + case SOCK_OUT: sock = BLI_findlink(&node->outputs, sockindex); break; + } + + if (rnode) + *rnode = node; + if (rsock) + *rsock = sock; + if (rin_out) + *rin_out = in_out; } /* ***************** Edit Group operator ************* */ @@ -594,8 +807,8 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode) bNode *node; /* make sure nothing has group editing on */ - for(node= snode->nodetree->nodes.first; node; node= node->next) - node->flag &= ~NODE_GROUP_EDIT; + for(node=snode->nodetree->nodes.first; node; node=node->next) + nodeGroupEditClear(node); if(gnode==NULL) { /* with NULL argument we do a toggle */ @@ -603,34 +816,30 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode) gnode= nodeGetActive(snode->nodetree); } - if(gnode && gnode->type==NODE_GROUP && gnode->id) { - if(gnode->id->lib) - ntreeMakeLocal((bNodeTree *)gnode->id); - - gnode->flag |= NODE_GROUP_EDIT; - snode->edittree= (bNodeTree *)gnode->id; + if (gnode) { + snode->edittree = nodeGroupEditSet(gnode, 1); /* deselect all other nodes, so we can also do grabbing of entire subtree */ for(node= snode->nodetree->nodes.first; node; node= node->next) node->flag &= ~SELECT; gnode->flag |= SELECT; - } else snode->edittree= snode->nodetree; - - ntreeSolveOrder(snode->nodetree); } static int node_group_edit_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceNode *snode = CTX_wm_space_node(C); - bNode *gnode; ED_preview_kill_jobs(C); - gnode= nodeGetActive(snode->edittree); - snode_make_group_editable(snode, gnode); + if (snode->nodetree==snode->edittree) { + bNode *gnode= nodeGetActive(snode->nodetree); + snode_make_group_editable(snode, gnode); + } + else + snode_make_group_editable(snode, NULL); WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); @@ -643,7 +852,8 @@ static int node_group_edit_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(e bNode *gnode; gnode= nodeGetActive(snode->edittree); - if(gnode && gnode->type==NODE_GROUP && gnode->id && gnode->id->lib) { + /* XXX callback? */ + if(gnode && gnode->id && GS(gnode->id->name)==ID_NT && gnode->id->lib) { uiPupMenuOkee(C, op->type->idname, "Make group local?"); return OPERATOR_CANCELLED; } @@ -674,7 +884,7 @@ static int node_group_socket_add_exec(bContext *C, wmOperator *op) SpaceNode *snode = CTX_wm_space_node(C); int in_out= -1; char name[32]= ""; - int type= SOCK_VALUE; + int type= SOCK_FLOAT; bNodeTree *ngroup= snode->edittree; bNodeSocket *sock; @@ -691,9 +901,10 @@ static int node_group_socket_add_exec(bContext *C, wmOperator *op) else return OPERATOR_CANCELLED; - sock = nodeGroupAddSocket(ngroup, name, type, in_out); + /* using placeholder subtype first */ + sock = node_group_add_socket(ngroup, name, type, in_out); - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(ngroup); snode_notify(C, snode); @@ -716,7 +927,7 @@ void NODE_OT_group_socket_add(wmOperatorType *ot) RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output"); RNA_def_string(ot->srna, "name", "", 32, "Name", "Group socket name"); - RNA_def_enum(ot->srna, "type", node_socket_type_items, SOCK_VALUE, "Type", "Type of the group socket"); + RNA_def_enum(ot->srna, "type", node_socket_type_items, SOCK_FLOAT, "Type", "Type of the group socket"); } /* ***************** Remove Group Socket operator ************* */ @@ -743,8 +954,8 @@ static int node_group_socket_remove_exec(bContext *C, wmOperator *op) sock = (bNodeSocket*)BLI_findlink(in_out==SOCK_IN ? &ngroup->inputs : &ngroup->outputs, index); if (sock) { - nodeGroupRemoveSocket(ngroup, sock, in_out); - node_tree_verify_groups(snode->nodetree); + node_group_remove_socket(ngroup, sock, in_out); + ntreeUpdateTree(ngroup); snode_notify(C, snode); } @@ -801,6 +1012,8 @@ static int node_group_socket_move_up_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; BLI_remlink(&ngroup->inputs, sock); BLI_insertlinkbefore(&ngroup->inputs, prev, sock); + + ngroup->update |= NTREE_UPDATE_GROUP_IN; } else if (in_out==SOCK_OUT) { sock = (bNodeSocket*)BLI_findlink(&ngroup->outputs, index); @@ -810,8 +1023,10 @@ static int node_group_socket_move_up_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; BLI_remlink(&ngroup->outputs, sock); BLI_insertlinkbefore(&ngroup->outputs, prev, sock); + + ngroup->update |= NTREE_UPDATE_GROUP_OUT; } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(ngroup); snode_notify(C, snode); @@ -867,6 +1082,8 @@ static int node_group_socket_move_down_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; BLI_remlink(&ngroup->inputs, sock); BLI_insertlinkafter(&ngroup->inputs, next, sock); + + ngroup->update |= NTREE_UPDATE_GROUP_IN; } else if (in_out==SOCK_OUT) { sock = (bNodeSocket*)BLI_findlink(&ngroup->outputs, index); @@ -876,8 +1093,10 @@ static int node_group_socket_move_down_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; BLI_remlink(&ngroup->outputs, sock); BLI_insertlinkafter(&ngroup->outputs, next, sock); + + ngroup->update |= NTREE_UPDATE_GROUP_OUT; } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(ngroup); snode_notify(C, snode); @@ -924,7 +1143,7 @@ static int node_group_ungroup_exec(bContext *C, wmOperator *op) BKE_report(op->reports, RPT_WARNING, "Not a group"); return OPERATOR_CANCELLED; } - else if(!nodeGroupUnGroup(snode->edittree, gnode)) { + else if(!node_group_ungroup(snode->edittree, gnode)) { BKE_report(op->reports, RPT_WARNING, "Can't ungroup"); return OPERATOR_CANCELLED; } @@ -952,70 +1171,16 @@ void NODE_OT_group_ungroup(wmOperatorType *ot) /* ************************** Node generic ************** */ -/* allows to walk the list in order of visibility */ -bNode *next_node(bNodeTree *ntree) -{ - static bNode *current=NULL, *last= NULL; - - if(ntree) { - /* set current to the first selected node */ - for(current= ntree->nodes.last; current; current= current->prev) - if(current->flag & NODE_SELECT) - break; - - /* set last to the first unselected node */ - for(last= ntree->nodes.last; last; last= last->prev) - if((last->flag & NODE_SELECT)==0) - break; - - if(current==NULL) - current= last; - - return NULL; - } - /* no nodes, or we are ready */ - if(current==NULL) - return NULL; - - /* now we walk the list backwards, but we always return current */ - if(current->flag & NODE_SELECT) { - bNode *node= current; - - /* find previous selected */ - current= current->prev; - while(current && (current->flag & NODE_SELECT)==0) - current= current->prev; - - /* find first unselected */ - if(current==NULL) - current= last; - - return node; - } - else { - bNode *node= current; - - /* find previous unselected */ - current= current->prev; - while(current && (current->flag & NODE_SELECT)) - current= current->prev; - - return node; - } - - return NULL; -} - /* is rct in visible part of node? */ static bNode *visible_node(SpaceNode *snode, rctf *rct) { - bNode *tnode; + bNode *node; - for(next_node(snode->edittree); (tnode=next_node(NULL));) { - if(BLI_isect_rctf(&tnode->totr, rct, NULL)) + for(node=snode->edittree->nodes.last; node; node=node->prev) { + if(BLI_isect_rctf(&node->totr, rct, NULL)) break; } - return tnode; + return node; } /* **************************** */ @@ -1318,8 +1483,9 @@ void NODE_OT_backimage_sample(wmOperatorType *ot) /* ********************** size widget operator ******************** */ typedef struct NodeSizeWidget { - float mxstart; - float oldwidth; + float mxstart, mystart; + float oldwidth, oldheight; + float oldminiwidth; } NodeSizeWidget; static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event) @@ -1338,13 +1504,16 @@ static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event) if (node) { if(node->flag & NODE_HIDDEN) { - node->miniwidth= nsw->oldwidth + mx - nsw->mxstart; + node->miniwidth= nsw->oldminiwidth + mx - nsw->mxstart; CLAMP(node->miniwidth, 0.0f, 100.0f); } else { node->width= nsw->oldwidth + mx - nsw->mxstart; CLAMP(node->width, UI_DPI_FAC*node->typeinfo->minwidth, UI_DPI_FAC*node->typeinfo->maxwidth); } + /* height works the other way round ... */ + node->height= nsw->oldheight - my + nsw->mystart; + CLAMP(node->height, node->typeinfo->minheight, node->typeinfo->maxheight); } ED_region_tag_redraw(ar); @@ -1358,6 +1527,8 @@ static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event) MEM_freeN(nsw); op->customdata= NULL; + ED_node_update_hierarchy(C, snode->edittree); + return OPERATOR_FINISHED; } @@ -1371,35 +1542,21 @@ static int node_resize_invoke(bContext *C, wmOperator *op, wmEvent *event) bNode *node= editnode_get_active(snode->edittree); if(node) { - rctf totr; - /* convert mouse coordinates to v2d space */ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->mx, &snode->my); - totr= node->totr; - - if(node->flag & NODE_HIDDEN) { - /* right part of node */ - totr.xmin= node->totr.xmax-20.0f; - } - else { - /* bottom right corner */ - totr.xmin= totr.xmax-10.0f; - totr.ymax= totr.ymin+10.0f; - } - - if(BLI_in_rctf(&totr, snode->mx, snode->my)) { + if(node->typeinfo->resize_area_func(node, snode->mx, snode->my)) { NodeSizeWidget *nsw= MEM_callocN(sizeof(NodeSizeWidget), "size widget op data"); op->customdata= nsw; nsw->mxstart= snode->mx; + nsw->mystart= snode->my; /* store old */ - if(node->flag & NODE_HIDDEN) - nsw->oldwidth= node->miniwidth; - else - nsw->oldwidth= node->width; + nsw->oldwidth= node->width; + nsw->oldheight= node->height; + nsw->oldminiwidth= node->miniwidth; /* add modal handler */ WM_event_add_modal_handler(C, op); @@ -1598,7 +1755,7 @@ static void node_link_viewer(SpaceNode *snode, bNode *tonode) link->fromnode= tonode; link->fromsock= sock; } - ntreeSolveOrder(snode->edittree); + ntreeUpdateTree(snode->edittree); snode_tag_changed(snode, node); } } @@ -1905,6 +2062,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list"); bNodeListItem *nli; bNode *node; + bNodeLink *link; int i, numlinks=0; for(node= snode->edittree->nodes.first; node; node= node->next) { @@ -1941,7 +2099,15 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) /* then we can connect */ if (replace) nodeRemSocketLinks(snode->edittree, sock_to); - nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to); + + link = nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to); + /* validate the new link */ + ntreeUpdateTree(snode->edittree); + if (!(link->flag & NODE_LINK_VALID)) { + nodeRemLink(snode->edittree, link); + continue; + } + snode_tag_changed(snode, node_to); ++numlinks; break; @@ -1949,8 +2115,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) } if (numlinks > 0) { - node_tree_verify_groups(snode->nodetree); - ntreeSolveOrder(snode->edittree); + ntreeUpdateTree(snode->edittree); } BLI_freelistN(nodelist); @@ -1958,28 +2123,13 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) } /* can be called from menus too, but they should do own undopush and redraws */ -bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, int type, float locx, float locy) +bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate *ntemp, float locx, float locy) { bNode *node= NULL, *gnode; node_deselectall(snode); - if(type>=NODE_DYNAMIC_MENU) { - node= nodeAddNodeType(snode->edittree, type, NULL, NULL); - } - else if(type>=NODE_GROUP_MENU) { - if(snode->edittree!=snode->nodetree) { - // XXX error("Can not add a Group in a Group"); - return NULL; - } - else { - bNodeTree *ngroup= BLI_findlink(&bmain->nodetree, type-NODE_GROUP_MENU); - if(ngroup) - node= nodeAddNodeType(snode->edittree, NODE_GROUP, ngroup, NULL); - } - } - else - node= nodeAddNodeType(snode->edittree, type, NULL, NULL); + node = nodeAddNode(snode->edittree, ntemp); /* generics */ if(node) { @@ -1993,7 +2143,7 @@ bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, int type, floa node->locy -= gnode->locy; } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); ED_node_set_active(bmain, snode->edittree, node); if(snode->nodetree->type==NTREE_COMPOSIT) { @@ -2025,6 +2175,7 @@ static int node_duplicate_exec(bContext *C, wmOperator *op) bNode *node, *newnode, *lastnode; bNodeLink *link, *newlink, *lastlink; int keep_inputs = RNA_boolean_get(op->ptr, "keep_inputs"); + bNodeSocket *sock; ED_preview_kill_jobs(C); @@ -2094,9 +2245,8 @@ static int node_duplicate_exec(bContext *C, wmOperator *op) break; } - ntreeSolveOrder(ntree); + ntreeUpdateTree(snode->edittree); - node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -2185,17 +2335,25 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) if( link->tosock!= tsock && (!tnode || (tnode!=node && link->tonode!=tnode)) ) { link->tonode= tnode; link->tosock= tsock; - if (link->prev==NULL && link->next==NULL) + if (link->prev==NULL && link->next==NULL) { BLI_addtail(&snode->edittree->links, link); - ntreeSolveOrder(snode->edittree); /* for interactive red line warning */ + } + + snode->edittree->update |= NTREE_UPDATE_LINKS; + ntreeUpdateTree(snode->edittree); } } } else { - BLI_remlink(&snode->edittree->links, link); - link->prev = link->next = NULL; - link->tonode= NULL; - link->tosock= NULL; + if (link->tonode || link->tosock) { + BLI_remlink(&snode->edittree->links, link); + link->prev = link->next = NULL; + link->tonode= NULL; + link->tosock= NULL; + + snode->edittree->update |= NTREE_UPDATE_LINKS; + ntreeUpdateTree(snode->edittree); + } } } else { @@ -2205,18 +2363,25 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) if( link->fromsock!= tsock && (!tnode || (tnode!=node && link->fromnode!=tnode)) ) { link->fromnode= tnode; link->fromsock= tsock; - if (link->prev==NULL && link->next==NULL) + if (link->prev==NULL && link->next==NULL) { BLI_addtail(&snode->edittree->links, link); - ntreeSolveOrder(snode->edittree); /* for interactive red line warning */ + } + + snode->edittree->update |= NTREE_UPDATE_LINKS; + ntreeUpdateTree(snode->edittree); } } } } else { - BLI_remlink(&snode->edittree->links, link); - link->prev = link->next = NULL; - link->fromnode= NULL; - link->fromsock= NULL; + if (link->tonode || link->tosock) { + BLI_remlink(&snode->edittree->links, link); + link->prev = link->next = NULL; + link->fromnode= NULL; + link->fromsock= NULL; + snode->edittree->update |= NTREE_UPDATE_LINKS; + ntreeUpdateTree(snode->edittree); + } } } /* hilight target sockets only */ @@ -2244,23 +2409,26 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) { /* automatically add new group socket */ if (link->tonode && link->tosock) { - link->fromsock = nodeGroupExposeSocket(snode->edittree, link->tosock, SOCK_IN); + link->fromsock = node_group_expose_socket(snode->edittree, link->tosock, SOCK_IN); link->fromnode = NULL; - if (link->prev==NULL && link->next==NULL) + if (link->prev==NULL && link->next==NULL) { BLI_addtail(&snode->edittree->links, link); + } + snode->edittree->update |= NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_LINKS; } else if (link->fromnode && link->fromsock) { - link->tosock = nodeGroupExposeSocket(snode->edittree, link->fromsock, SOCK_OUT); + link->tosock = node_group_expose_socket(snode->edittree, link->fromsock, SOCK_OUT); link->tonode = NULL; - if (link->prev==NULL && link->next==NULL) + if (link->prev==NULL && link->next==NULL) { BLI_addtail(&snode->edittree->links, link); + } + snode->edittree->update |= NTREE_UPDATE_GROUP_OUT | NTREE_UPDATE_LINKS; } } else nodeRemLink(snode->edittree, link); - ntreeSolveOrder(snode->edittree); - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -2335,7 +2503,7 @@ static int node_link_invoke(bContext *C, wmOperator *op, wmEvent *event) ED_preview_kill_jobs(C); nldrag->in_out= node_link_init(snode, nldrag); - + if(nldrag->in_out) { op->customdata= nldrag; @@ -2408,7 +2576,7 @@ static int node_make_link_exec(bContext *C, wmOperator *op) snode_autoconnect(snode, 1, replace); - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -2482,8 +2650,7 @@ static int cut_links_exec(bContext *C, wmOperator *op) } } - ntreeSolveOrder(snode->edittree); - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -2608,7 +2775,7 @@ void ED_node_link_insert(ScrArea *sa) link->flag &= ~NODE_LINKFLAG_HILITE; nodeAddLink(snode->edittree, select, socket_best_match(&select->outputs, sockto->type), node, sockto); - ntreeSolveOrder(snode->edittree); /* needed for pointers */ + ntreeUpdateTree(snode->edittree); /* needed for pointers */ snode_tag_changed(snode, select); ED_node_changed_update(snode->id, select); } @@ -2819,14 +2986,14 @@ static int node_group_make_exec(bContext *C, wmOperator *op) ED_preview_kill_jobs(C); - gnode= nodeMakeGroupFromSelected(snode->nodetree); + gnode= node_group_make_from_selected(snode->nodetree); if(gnode==NULL) { BKE_report(op->reports, RPT_WARNING, "Can not make Group"); return OPERATOR_CANCELLED; } else { nodeSetActive(snode->nodetree, gnode); - ntreeSolveOrder(snode->nodetree); + ntreeUpdateTree(snode->nodetree); } snode_notify(C, snode); @@ -2972,7 +3139,7 @@ static int node_socket_toggle_exec(bContext *C, wmOperator *UNUSED(op)) } } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); @@ -3056,7 +3223,7 @@ static int node_delete_exec(bContext *C, wmOperator *UNUSED(op)) } } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -3126,7 +3293,7 @@ static void node_delete_reconnect(bNodeTree* tree, bNode* node) deliveringvecsocket = link->fromsock; } break; - case SOCK_VALUE: + case SOCK_FLOAT: if (valsocket == NULL) { valsocket = link->tosock; deliveringvalnode = link->fromnode; @@ -3147,7 +3314,7 @@ static void node_delete_reconnect(bNodeTree* tree, bNode* node) numberOfConnectedOutputSockets ++; if (!first) first = link; switch(sock->type) { - case SOCK_VALUE: + case SOCK_FLOAT: if (deliveringvalsocket) { link->fromnode = deliveringvalnode; link->fromsock = deliveringvalsocket; @@ -3205,7 +3372,7 @@ static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op)) } } - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); snode_notify(C, snode); snode_dag_update(C, snode); @@ -3235,7 +3402,7 @@ static int node_show_cycles_exec(bContext *C, wmOperator *UNUSED(op)) SpaceNode *snode= CTX_wm_space_node(C); /* this is just a wrapper around this call... */ - ntreeSolveOrder(snode->edittree); + ntreeUpdateTree(snode->nodetree); snode_notify(C, snode); return OPERATOR_FINISHED; @@ -3265,7 +3432,9 @@ static int node_add_file_exec(bContext *C, wmOperator *op) SpaceNode *snode= CTX_wm_space_node(C); bNode *node; Image *ima= NULL; - int ntype=0; + bNodeTemplate ntemp; + + ntemp.type = -1; /* check input variables */ if (RNA_property_is_set(op->ptr, "filepath")) @@ -3297,11 +3466,14 @@ static int node_add_file_exec(bContext *C, wmOperator *op) node_deselectall(snode); if (snode->nodetree->type==NTREE_COMPOSIT) - ntype = CMP_NODE_IMAGE; + ntemp.type = CMP_NODE_IMAGE; + if (ntemp.type < 0) + return OPERATOR_CANCELLED; + ED_preview_kill_jobs(C); - node = node_add_node(snode, bmain, scene, ntype, snode->mx, snode->my); + node = node_add_node(snode, bmain, scene, &ntemp, snode->mx, snode->my); if (!node) { BKE_report(op->reports, RPT_WARNING, "Could not add an image node."); @@ -3350,5 +3522,67 @@ void NODE_OT_add_file(wmOperatorType *ot) RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Datablock name to assign."); } +/********************** New node tree operator *********************/ +static int new_node_tree_exec(bContext *C, wmOperator *op) +{ + SpaceNode *snode; + bNodeTree *ntree; + PointerRNA ptr, idptr; + PropertyRNA *prop; + int treetype; + char treename[MAX_ID_NAME-2] = "NodeTree"; + + /* retrieve state */ + snode= CTX_wm_space_node(C); + + if (RNA_property_is_set(op->ptr, "type")) + treetype = RNA_enum_get(op->ptr, "type"); + else + treetype = snode->treetype; + + if (RNA_property_is_set(op->ptr, "name")) + RNA_string_get(op->ptr, "name", treename); + + ntree = ntreeAddTree(treename, treetype, 0); + if(!ntree) + return OPERATOR_CANCELLED; + + /* hook into UI */ + uiIDContextProperty(C, &ptr, &prop); + if(prop) { + RNA_id_pointer_create(&ntree->id, &idptr); + RNA_property_pointer_set(&ptr, prop, idptr); + /* RNA_property_pointer_set increases the user count, + * fixed here as the editor is the initial user. + */ + --ntree->id.us; + RNA_property_update(C, &ptr, prop); + } + else if(snode) { + Scene *scene= CTX_data_scene(C); + snode->nodetree = ntree; + + ED_node_tree_update(snode, scene); + } + + return OPERATOR_FINISHED; +} + +void NODE_OT_new_node_tree(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "New node tree"; + ot->idname= "NODE_OT_new_node_tree"; + + /* api callbacks */ + ot->exec= new_node_tree_exec; + ot->poll= ED_operator_node_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_enum(ot->srna, "type", nodetree_type_items, NTREE_COMPOSIT, "Tree Type", ""); + RNA_def_string(ot->srna, "name", "NodeTree", MAX_ID_NAME-2, "Name", ""); +} diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 634e49dc515..5c921d40344 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -45,24 +45,26 @@ #include "BLI_utildefines.h" #include "BKE_context.h" +#include "BKE_global.h" #include "BKE_screen.h" #include "BKE_node.h" #include "BKE_main.h" +#include "RNA_access.h" + #include "WM_api.h" #include "WM_types.h" - #include "UI_interface.h" -#include "UI_resources.h" #include "UI_interface_icons.h" +#include "UI_resources.h" #include "UI_view2d.h" #include "node_intern.h" /* ************************ add menu *********************** */ -static void do_node_add(bContext *C, void *UNUSED(arg), int event) +static void do_node_add(bContext *C, bNodeTemplate *ntemp) { Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); @@ -89,7 +91,7 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) else node->flag &= ~NODE_TEST; } - node= node_add_node(snode, bmain, scene, event, snode->mx, snode->my); + node= node_add_node(snode, bmain, scene, ntemp, snode->mx, snode->my); /* select previous selection before autoconnect */ for(node= snode->edittree->nodes.first; node; node= node->next) { @@ -105,69 +107,111 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) snode_dag_update(C, snode); } -static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) +static void do_node_add_static(bContext *C, void *UNUSED(arg), int event) +{ + bNodeTemplate ntemp; + ntemp.type = event; + do_node_add(C, &ntemp); +} + +static void do_node_add_group(bContext *C, void *UNUSED(arg), int event) +{ + SpaceNode *snode= CTX_wm_space_node(C); + bNodeTemplate ntemp; + + if (event>=0) { + ntemp.ngroup= BLI_findlink(&G.main->nodetree, event); + ntemp.type = ntemp.ngroup->nodetype; + } + else { + ntemp.type = -event; + switch (ntemp.type) { + case NODE_GROUP: + ntemp.ngroup = ntreeAddTree("Group", snode->treetype, ntemp.type); + break; + case NODE_FORLOOP: + ntemp.ngroup = ntreeAddTree("For Loop", snode->treetype, ntemp.type); + break; + case NODE_WHILELOOP: + ntemp.ngroup = ntreeAddTree("While Loop", snode->treetype, ntemp.type); + break; + default: + ntemp.ngroup = NULL; + } + } + if (!ntemp.ngroup) + return; + + do_node_add(C, &ntemp); +} + +#if 0 /* disabled */ +static void do_node_add_dynamic(bContext *C, void *UNUSED(arg), int event) +{ + bNodeTemplate ntemp; + ntemp.type = NODE_DYNAMIC; + do_node_add(C, &ntemp); +} +#endif + +static int node_tree_has_type(int treetype, int nodetype) +{ + bNodeTreeType *ttype= ntreeGetType(treetype); + bNodeType *ntype; + for (ntype=ttype->node_types.first; ntype; ntype=ntype->next) { + if (ntype->type==nodetype) + return 1; + } + return 0; +} + +static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) { Main *bmain= CTX_data_main(C); SpaceNode *snode= CTX_wm_space_node(C); bNodeTree *ntree; int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass); - int tot= 0, a; + int event; ntree = snode->nodetree; - + if(!ntree) { uiItemS(layout); return; } - - /* mostly taken from toolbox.c, node_add_sublevel() */ - if(nodeclass==NODE_CLASS_GROUP) { - bNodeTree *ngroup= bmain->nodetree.first; - for(; ngroup; ngroup= ngroup->id.next) - if(ngroup->type==ntree->type) - tot++; - } - else { - bNodeType *type = ntree->alltypes.first; - while(type) { - if(type->nclass == nodeclass) - tot++; - type= type->next; - } - } - if(tot==0) { + if (nodeclass==NODE_CLASS_GROUP) { + bNodeTree *ngroup; + + uiLayoutSetFunc(layout, do_node_add_group, NULL); + + /* XXX hack: negative numbers used for empty group types */ + if (node_tree_has_type(ntree->type, NODE_GROUP)) + uiItemV(layout, "New Group", 0, -NODE_GROUP); + if (node_tree_has_type(ntree->type, NODE_FORLOOP)) + uiItemV(layout, "New For Loop", 0, -NODE_FORLOOP); + if (node_tree_has_type(ntree->type, NODE_WHILELOOP)) + uiItemV(layout, "New While Loop", 0, -NODE_WHILELOOP); uiItemS(layout); - return; - } - - uiLayoutSetFunc(layout, do_node_add, NULL); - - if(nodeclass==NODE_CLASS_GROUP) { - bNodeTree *ngroup= bmain->nodetree.first; - - for(tot=0, a=0; ngroup; ngroup= ngroup->id.next, tot++) { - if(ngroup->type==ntree->type) { - uiItemV(layout, ngroup->id.name+2, ICON_NONE, NODE_GROUP_MENU+tot); - a++; + + for(ngroup=bmain->nodetree.first, event=0; ngroup; ngroup= ngroup->id.next, ++event) { + /* only use group trees */ + if (ngroup->type==ntree->type && ELEM3(ngroup->nodetype, NODE_GROUP, NODE_FORLOOP, NODE_WHILELOOP)) { + uiItemV(layout, ngroup->id.name+2, 0, event); } } } + else if (nodeclass==NODE_DYNAMIC) { + /* disabled */ + } else { - bNodeType *type; - int script=0; - - for(a=0, type= ntree->alltypes.first; type; type=type->next) { - if(type->nclass == nodeclass && type->name) { - if(type->type == NODE_DYNAMIC) { - uiItemV(layout, type->name, ICON_NONE, NODE_DYNAMIC_MENU+script); - script++; - } - else - uiItemV(layout, type->name, ICON_NONE, type->type); - - a++; - } + bNodeType *ntype; + + uiLayoutSetFunc(layout, do_node_add_static, NULL); + + for (ntype=ntreeGetType(ntree->type)->node_types.first; ntype; ntype=ntype->next) { + if(ntype->nclass==nodeclass && ntype->name) + uiItemV(layout, ntype->name, 0, ntype->type); } } } @@ -181,34 +225,34 @@ static void node_menu_add(const bContext *C, Menu *menu) uiLayoutSetActive(layout, 0); if(snode->treetype==NTREE_SHADER) { - uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); - uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - uiItemMenuF(layout, "Dynamic", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); + uiItemMenuF(layout, "Input", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); + uiItemMenuF(layout, "Output", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); + uiItemMenuF(layout, "Color", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); + uiItemMenuF(layout, "Vector", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); + uiItemMenuF(layout, "Convertor", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); + uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); + uiItemMenuF(layout, "Dynamic", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); } else if(snode->treetype==NTREE_COMPOSIT) { - uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); - uiItemMenuF(layout, "Filter", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_FILTER)); - uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, "Matte", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE)); - uiItemMenuF(layout, "Distort", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); - uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); + uiItemMenuF(layout, "Input", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); + uiItemMenuF(layout, "Output", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); + uiItemMenuF(layout, "Color", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); + uiItemMenuF(layout, "Vector", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); + uiItemMenuF(layout, "Filter", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_FILTER)); + uiItemMenuF(layout, "Convertor", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); + uiItemMenuF(layout, "Matte", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE)); + uiItemMenuF(layout, "Distort", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); + uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); } else if(snode->treetype==NTREE_TEXTURE) { - uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, "Patterns", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_PATTERN)); - uiItemMenuF(layout, "Textures", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); - uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, "Distort", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); - uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); + uiItemMenuF(layout, "Input", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); + uiItemMenuF(layout, "Output", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); + uiItemMenuF(layout, "Color", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); + uiItemMenuF(layout, "Patterns", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_PATTERN)); + uiItemMenuF(layout, "Textures", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); + uiItemMenuF(layout, "Convertor", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); + uiItemMenuF(layout, "Distort", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); + uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); } } diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index 4cfde22b8a0..3751d8efae8 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -33,6 +33,8 @@ #ifndef ED_NODE_INTERN_H #define ED_NODE_INTERN_H +#include "UI_interface.h" + /* internal exports only */ struct ARegion; @@ -40,6 +42,7 @@ struct ARegionType; struct View2D; struct bContext; struct wmWindowManager; +struct bNodeTemplate; struct bNode; struct bNodeSocket; struct bNodeLink; @@ -64,6 +67,11 @@ void node_header_buttons(const bContext *C, ARegion *ar); void node_menus_register(void); /* node_draw.c */ +void node_socket_circle_draw(struct bNodeTree *ntree, struct bNodeSocket *sock, float size); +void node_draw_default(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node); +void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node); +void node_update_nodetree(const struct bContext *C, struct bNodeTree *ntree, float offsetx, float offsety); +void node_draw_nodetree(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree); void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d); /* node_buttons.c */ @@ -90,6 +98,7 @@ void NODE_OT_select_same_type_prev(wmOperatorType *ot); void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link); void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 ); int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, float coord_array[][2], int resol); +void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 ); void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage); void draw_nodespace_color_info(struct ARegion *ar, int color_manage, int channels, int x, int y, char *cp, float *fp); @@ -97,10 +106,10 @@ void draw_nodespace_color_info(struct ARegion *ar, int color_manage, int channel void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype); void snode_notify(bContext *C, SpaceNode *snode); void snode_dag_update(bContext *C, SpaceNode *snode); -bNode *next_node(bNodeTree *ntree); -bNode *node_add_node(SpaceNode *snode, struct Main *bmain, Scene *scene, int type, float locx, float locy); +bNode *node_add_node(struct SpaceNode *snode, struct Main *bmain, struct Scene *scene, struct bNodeTemplate *ntemp, float locx, float locy); void snode_set_context(SpaceNode *snode, Scene *scene); void snode_make_group_editable(SpaceNode *snode, bNode *gnode); +void node_sort(struct bNodeTree *ntree); void node_deselectall(SpaceNode *snode); int node_select_same_type(SpaceNode *snode); int node_select_same_type_np(SpaceNode *snode, int dir); @@ -146,6 +155,8 @@ void NODE_OT_backimage_sample(wmOperatorType *ot); void NODE_OT_add_file(struct wmOperatorType *ot); +void NODE_OT_new_node_tree(struct wmOperatorType *ot); + extern const char *node_context_dir[]; // XXXXXX diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 4bb0283690b..153d703ddf6 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -96,6 +96,8 @@ void node_operatortypes(void) WM_operatortype_append(NODE_OT_backimage_sample); WM_operatortype_append(NODE_OT_add_file); + + WM_operatortype_append(NODE_OT_new_node_tree); } void ED_operatormacros_node(void) @@ -193,6 +195,5 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "NODE_OT_read_fullsamplelayers", RKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "NODE_OT_render_changed", ZKEY, KM_PRESS, 0, 0); - transform_keymap_for_space(keyconf, keymap, SPACE_NODE); } diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c index ca673277739..3d8b1676ea5 100644 --- a/source/blender/editors/space_node/node_select.c +++ b/source/blender/editors/space_node/node_select.c @@ -62,7 +62,7 @@ static bNode *node_under_mouse(bNodeTree *ntree, int mx, int my) { bNode *node; - for(next_node(ntree); (node=next_node(NULL));) { + for(node=ntree->nodes.last; node; node=node->prev) { /* node body (header and scale are in other operators) */ if (BLI_in_rctf(&node->totr, mx, my)) return node; @@ -93,8 +93,10 @@ static bNode *node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, cons } else node->flag ^= SELECT; - + ED_node_set_active(bmain, snode->edittree, node); + + node_sort(snode->edittree); } return node; @@ -182,6 +184,8 @@ static int node_borderselect_exec(bContext *C, wmOperator *op) } } + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; @@ -252,6 +256,8 @@ static int node_select_all_exec(bContext *C, wmOperator *UNUSED(op)) node->flag |= NODE_SELECT; } + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; } @@ -292,6 +298,8 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op)) node->flag |= NODE_SELECT; } + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; } @@ -332,6 +340,8 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op)) node->flag |= NODE_SELECT; } + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; } @@ -358,6 +368,9 @@ static int node_select_same_type_exec(bContext *C, wmOperator *UNUSED(op)) SpaceNode *snode = CTX_wm_space_node(C); node_select_same_type(snode); + + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; } @@ -384,7 +397,11 @@ static int node_select_same_type_next_exec(bContext *C, wmOperator *UNUSED(op)) SpaceNode *snode = CTX_wm_space_node(C); node_select_same_type_np(snode, 0); + + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); + return OPERATOR_FINISHED; } @@ -408,6 +425,9 @@ static int node_select_same_type_prev_exec(bContext *C, wmOperator *UNUSED(op)) SpaceNode *snode = CTX_wm_space_node(C); node_select_same_type_np(snode, 1); + + node_sort(snode->edittree); + WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c index 601ffbd313d..c4567bea648 100644 --- a/source/blender/editors/space_node/node_state.c +++ b/source/blender/editors/space_node/node_state.c @@ -69,30 +69,14 @@ void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set) sock->flag &= ~SOCK_HIDDEN; } else { - bNode *gnode= node_tree_get_editgroup(snode->nodetree); - - /* hiding inside group should not break links in other group users */ - if(gnode) { - nodeGroupSocketUseFlags((bNodeTree *)gnode->id); - for(sock= node->inputs.first; sock; sock= sock->next) - if(!(sock->flag & SOCK_IN_USE)) - if(sock->link==NULL) - sock->flag |= SOCK_HIDDEN; - for(sock= node->outputs.first; sock; sock= sock->next) - if(!(sock->flag & SOCK_IN_USE)) - if(nodeCountSocketLinks(snode->edittree, sock)==0) - sock->flag |= SOCK_HIDDEN; + /* hide unused sockets */ + for(sock= node->inputs.first; sock; sock= sock->next) { + if(sock->link==NULL) + sock->flag |= SOCK_HIDDEN; } - else { - /* hide unused sockets */ - for(sock= node->inputs.first; sock; sock= sock->next) { - if(sock->link==NULL) - sock->flag |= SOCK_HIDDEN; - } - for(sock= node->outputs.first; sock; sock= sock->next) { - if(nodeCountSocketLinks(snode->edittree, sock)==0) - sock->flag |= SOCK_HIDDEN; - } + for(sock= node->outputs.first; sock; sock= sock->next) { + if(nodeCountSocketLinks(snode->edittree, sock)==0) + sock->flag |= SOCK_HIDDEN; } } } @@ -100,7 +84,7 @@ void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set) static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node) { node_set_hidden_sockets(snode, node, !node_has_hidden_sockets(node)); - node_tree_verify_groups(snode->nodetree); + ntreeUpdateTree(snode->edittree); } static int do_header_node(SpaceNode *snode, bNode *node, float mx, float my) @@ -168,7 +152,7 @@ static int node_toggle_visibility(SpaceNode *snode, ARegion *ar, const int mval[ UI_view2d_region_to_view(&ar->v2d, mval[0], mval[1], &mx, &my); - for(next_node(snode->edittree); (node=next_node(NULL));) { + for(node=snode->edittree->nodes.last; node; node=node->prev) { if(node->flag & NODE_HIDDEN) { if(do_header_hidden_node(node, mx, my)) { ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 3c5f4a163a2..0990afa4fe6 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -439,14 +439,30 @@ static int node_context(const bContext *C, const char *member, bContextDataResul else if(CTX_data_equals(member, "selected_nodes")) { bNode *node; - for(next_node(snode->edittree); (node=next_node(NULL));) { - if(node->flag & NODE_SELECT) { - CTX_data_list_add(result, &snode->edittree->id, &RNA_Node, node); + if(snode->edittree) { + for(node=snode->edittree->nodes.last; node; node=node->prev) { + if(node->flag & NODE_SELECT) { + CTX_data_list_add(result, &snode->edittree->id, &RNA_Node, node); + } } } CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION); return 1; } + else if(CTX_data_equals(member, "active_node")) { + bNode *node; + + if(snode->edittree) { + for(node=snode->edittree->nodes.last; node; node=node->prev) { + if(node->flag & NODE_ACTIVE) { + CTX_data_pointer_set(result, &snode->edittree->id, &RNA_Node, node); + break; + } + } + } + CTX_data_type_set(result, CTX_DATA_TYPE_POINTER); + return 1; + } return 0; } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 7b43d0955a7..cae64899aeb 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4771,12 +4771,14 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } else if (t->spacetype == SPACE_NODE) { + SpaceNode *snode= (SpaceNode *)t->sa->spacedata.first; + ED_node_update_hierarchy(C, snode->edittree); + if(cancelled == 0) ED_node_link_insert(t->sa); /* clear link line */ ED_node_link_intersect_test(t->sa, 0); - } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; @@ -5194,6 +5196,11 @@ static void NodeToTransData(TransData *td, TransData2D *td2d, bNode *node) td2d->loc2d = &node->locx; /* current location */ td->flag = 0; + /* exclude nodes whose parent is also transformed */ + if (node->parent && (node->parent->flag & NODE_TRANSFORM)) { + td->flag |= TD_SKIP; + } + td->loc = td2d->loc; VECCOPY(td->center, td->loc); VECCOPY(td->iloc, td->loc); @@ -5214,6 +5221,16 @@ static void createTransNodeData(bContext *C, TransInfo *t) { TransData *td; TransData2D *td2d; + SpaceNode *snode= t->sa->spacedata.first; + bNode *node; + + /* set transform flags on nodes */ + for (node=snode->edittree->nodes.first; node; node=node->next) { + if ((node->flag & NODE_SELECT) || (node->parent && (node->parent->flag & NODE_TRANSFORM))) + node->flag |= NODE_TRANSFORM; + else + node->flag &= ~NODE_TRANSFORM; + } t->total= CTX_DATA_COUNT(C, selected_nodes); diff --git a/source/blender/gpu/SConscript b/source/blender/gpu/SConscript index b48e1d5a8e2..adb52d577a1 100644 --- a/source/blender/gpu/SConscript +++ b/source/blender/gpu/SConscript @@ -5,7 +5,7 @@ sources = env.Glob('intern/*.c') defs = [ 'GLEW_STATIC' ] -incs = '../blenlib ../blenkernel ../makesdna ../include ../blenloader' +incs = '../blenlib ../blenkernel ../makesdna ../makesrna ../include ../blenloader' incs += ' #/extern/glew/include #intern/guardedalloc #intern/smoke/extern ../imbuf .' if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index efaf30b02f6..3a51a6a56a4 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -38,26 +38,29 @@ #include "DNA_vec_types.h" #include "DNA_listBase.h" +struct ID; struct ListBase; struct SpaceNode; struct bNodeLink; struct bNodeType; -struct bNodeGroup; +struct bNodeTreeExec; struct AnimData; struct bGPdata; struct uiBlock; #define NODE_MAXSTR 32 - typedef struct bNodeStack { float vec[4]; - float min, max; /* min/max for values (UI writes it, execute might use it) */ + float min, max; void *data; short hasinput; /* when input has link, tagged before executing */ short hasoutput; /* when output is linked, tagged before executing */ short datatype; /* type of data pointer */ short sockettype; /* type of socket stack comes from, to remap linking different sockets */ + short is_copy; /* data is a copy of external data (no freeing) */ + short external; /* data is used by external nodes (no freeing) */ + short pad[2]; } bNodeStack; /* ns->datatype, shadetree only */ @@ -68,50 +71,58 @@ typedef struct bNodeSocket { struct bNodeSocket *next, *prev, *new_sock; char name[32]; - bNodeStack ns; /* custom data for inputs, only UI writes in this */ + + void *storage; /* custom storage */ short type, flag; short limit; /* max. number of links */ - - /* stack data info (only during execution!) */ - short stack_type; /* type of stack reference */ - /* XXX only one of stack_ptr or stack_index is used (depending on stack_type). - * could store the index in the pointer with SET_INT_IN_POINTER (a bit ugly). - * (union won't work here, not supported by DNA) - */ - struct bNodeStack *stack_ptr; /* constant input value */ - short stack_index; /* local stack index or external input number */ short pad1; float locx, locy; - /* internal data to retrieve relations and groups */ + void *default_value; /* default input value used for unlinked sockets */ + + /* execution data */ + short stack_index; /* local stack index */ + short pad2; + int pad3; + void *cache; /* cached data from execution */ + /* internal data to retrieve relations and groups */ int own_index; /* group socket identifiers, to find matching pairs after reading files */ - struct bNodeSocket *groupsock; int to_index; /* XXX deprecated, only used for restoring old group node links */ - int pad2; + struct bNodeSocket *groupsock; - struct bNodeLink *link; /* a link pointer, set in nodeSolveOrder() */ + struct bNodeLink *link; /* a link pointer, set in ntreeUpdateTree */ + + /* DEPRECATED only needed for do_versions */ + bNodeStack ns; /* custom data for inputs, only UI writes in this */ } bNodeSocket; /* sock->type */ -#define SOCK_VALUE 0 -#define SOCK_VECTOR 1 -#define SOCK_RGBA 2 +#define SOCK_FLOAT 0 +#define SOCK_VECTOR 1 +#define SOCK_RGBA 2 +#define SOCK_INT 3 +#define SOCK_BOOLEAN 4 +#define SOCK_MESH 5 +#define NUM_SOCKET_TYPES 6 /* must be last! */ + +/* socket side (input/output) */ +#define SOCK_IN 1 +#define SOCK_OUT 2 /* sock->flag, first bit is select */ - /* hidden is user defined, to hide unused */ + /* hidden is user defined, to hide unused */ #define SOCK_HIDDEN 2 - /* only used now for groups... */ -#define SOCK_IN_USE 4 - /* unavailable is for dynamic sockets */ + /* only used now for groups... */ +#define SOCK_IN_USE 4 /* XXX deprecated */ + /* unavailable is for dynamic sockets */ #define SOCK_UNAVAIL 8 - -/* sock->stack_type */ -#define SOCK_STACK_LOCAL 1 /* part of the local tree stack */ -#define SOCK_STACK_EXTERN 2 /* use input stack pointer */ -#define SOCK_STACK_CONST 3 /* use pointer to constant input value */ + /* dynamic socket (can be modified by user) */ +#define SOCK_DYNAMIC 16 + /* group socket should not be exposed */ +#define SOCK_INTERNAL 32 typedef struct bNodePreview { unsigned char *rect; @@ -119,7 +130,6 @@ typedef struct bNodePreview { int pad; } bNodePreview; - /* limit data in bNode to what we want to see saved? */ typedef struct bNode { struct bNode *next, *prev, *new_node; @@ -132,11 +142,14 @@ typedef struct bNode { short nr; /* number of this node in list, used for UI exec events */ ListBase inputs, outputs; + struct bNode *parent; /* parent node */ struct ID *id; /* optional link to libdata */ void *storage; /* custom data, must be struct, for storage in file */ float locx, locy; /* root offset for drawing */ - float width, miniwidth; + float width, height; /* node custom width and height */ + float miniwidth; /* node width if hidden */ + int pad; char label[32]; /* custom user-defined label */ short custom1, custom2; /* to be abused for buttons */ float custom3, custom4; @@ -151,7 +164,6 @@ typedef struct bNode { struct uiBlock *block; /* runtime during drawing */ struct bNodeType *typeinfo; /* lookup of callbacks and defaults */ - } bNode; /* node->flag */ @@ -163,11 +175,17 @@ typedef struct bNode { #define NODE_ACTIVE_ID 32 #define NODE_DO_OUTPUT 64 #define NODE_GROUP_EDIT 128 - /* free test flag, undefined */ + /* free test flag, undefined */ #define NODE_TEST 256 - /* composite: don't do node but pass on buffer(s) */ + /* composite: don't do node but pass on buffer(s) */ #define NODE_MUTED 512 -#define NODE_CUSTOM_NAME 1024 /* deprecated! */ +#define NODE_CUSTOM_NAME 1024 /* deprecated! */ + /* group node types: use const outputs by default */ +#define NODE_CONST_OUTPUT (1<<11) + /* node is always behind others */ +#define NODE_BACKGROUND (1<<12) + /* automatic flag for nodes included in transforms */ +#define NODE_TRANSFORM (1<<13) typedef struct bNodeLink { struct bNodeLink *next, *prev; @@ -175,13 +193,13 @@ typedef struct bNodeLink { bNode *fromnode, *tonode; bNodeSocket *fromsock, *tosock; - int flag, pad; - + int flag; + int pad; } bNodeLink; - /* link->flag */ -#define NODE_LINKFLAG_HILITE 1 +#define NODE_LINK_VALID 1 /* link has been successfully validated */ +#define NODE_LINKFLAG_HILITE 2 /* the basis for a Node tree, all links and nodes reside internal here */ /* only re-usable node trees are in the library though, materials and textures allocate own tree struct */ @@ -193,19 +211,24 @@ typedef struct bNodeTree { ListBase nodes, links; - bNodeStack *stack; /* stack is only while executing, no read/write in file */ - struct ListBase *threadstack; /* same as above */ - int type, init; /* set init on fileread */ - int stacksize; /* amount of elements in stack */ int cur_index; /* sockets in groups have unique identifiers, adding new sockets always will increase this counter */ - int flag, pad; + int flag; + int update; /* update flags */ + + int nodetype; /* specific node type this tree is used for */ - ListBase alltypes; /* type definitions */ ListBase inputs, outputs; /* external sockets for group nodes */ - - int pad2[2]; + + /* execution data */ + /* XXX It would be preferable to completely move this data out of the underlying node tree, + * so node tree execution could finally run independent of the tree itself. This would allow node trees + * to be merely linked by other data (materials, textures, etc.), as ID data is supposed to. + * Execution data is generated from the tree once at execution start and can then be used + * as long as necessary, even while the tree is being modified. + */ + struct bNodeTreeExec *execdata; /* callbacks */ void (*progress)(void *, float progress); @@ -216,20 +239,59 @@ typedef struct bNodeTree { } bNodeTree; /* ntree->type, index */ -#define NTREE_SHADER 0 -#define NTREE_COMPOSIT 1 -#define NTREE_TEXTURE 2 +#define NTREE_SHADER 0 +#define NTREE_COMPOSIT 1 +#define NTREE_TEXTURE 2 +#define NUM_NTREE_TYPES 3 /* ntree->init, flag */ -#define NTREE_TYPE_INIT 1 -#define NTREE_EXEC_INIT 2 +#define NTREE_TYPE_INIT 1 /* ntree->flag */ #define NTREE_DS_EXPAND 1 /* for animation editors */ -/* XXX not nice, but needed as a temporary flag +/* XXX not nice, but needed as a temporary flags * for group updates after library linking. */ -#define NTREE_DO_VERSIONS 1024 +#define NTREE_DO_VERSIONS_GROUP_EXPOSE 1024 + +/* ntree->update */ +#define NTREE_UPDATE 0xFFFF /* generic update flag (includes all others) */ +#define NTREE_UPDATE_LINKS 1 /* links have been added or removed */ +#define NTREE_UPDATE_NODES 2 /* nodes or sockets have been added or removed */ +#define NTREE_UPDATE_GROUP_IN 16 /* group inputs have changed */ +#define NTREE_UPDATE_GROUP_OUT 32 /* group outputs have changed */ +#define NTREE_UPDATE_GROUP 48 /* group has changed (generic flag including all other group flags) */ + + +/* socket value structs for input buttons */ + +typedef struct bNodeSocketValueInt { + int subtype; /* RNA subtype */ + int value; + int min, max; +} bNodeSocketValueInt; + +typedef struct bNodeSocketValueFloat { + int subtype; /* RNA subtype */ + float value; + float min, max; +} bNodeSocketValueFloat; + +typedef struct bNodeSocketValueBoolean { + char value; + char pad[3]; +} bNodeSocketValueBoolean; + +typedef struct bNodeSocketValueVector { + int subtype; /* RNA subtype */ + float value[3]; + float min, max; +} bNodeSocketValueVector; + +typedef struct bNodeSocketValueRGBA { + float value[4]; +} bNodeSocketValueRGBA; + /* data structs, for node->storage */ @@ -354,7 +416,6 @@ typedef struct TexNodeOutput { char name[32]; } TexNodeOutput; - /* comp channel matte */ #define CMP_NODE_CHANNEL_MATTE_CS_RGB 1 #define CMP_NODE_CHANNEL_MATTE_CS_HSV 2 diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 259c7de5cd4..477ee2fe43e 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -327,10 +327,13 @@ extern StructRNA RNA_NearSensor; extern StructRNA RNA_NlaStrip; extern StructRNA RNA_NlaTrack; extern StructRNA RNA_Node; +extern StructRNA RNA_NodeForLoop; extern StructRNA RNA_NodeGroup; extern StructRNA RNA_NodeLink; extern StructRNA RNA_NodeSocket; +extern StructRNA RNA_NodeSocketPanel; extern StructRNA RNA_NodeTree; +extern StructRNA RNA_NodeWhileLoop; extern StructRNA RNA_NoiseTexture; extern StructRNA RNA_NorController; extern StructRNA RNA_Object; @@ -376,7 +379,6 @@ extern StructRNA RNA_PropertyGroupItem; extern StructRNA RNA_PropertySensor; extern StructRNA RNA_PythonConstraint; extern StructRNA RNA_PythonController; -extern StructRNA RNA_RGBANodeSocket; extern StructRNA RNA_RadarSensor; extern StructRNA RNA_RandomSensor; extern StructRNA RNA_RaySensor; @@ -553,9 +555,7 @@ extern StructRNA RNA_UserPreferencesFilePaths; extern StructRNA RNA_UserPreferencesSystem; extern StructRNA RNA_UserPreferencesView; extern StructRNA RNA_UserSolidLight; -extern StructRNA RNA_ValueNodeSocket; extern StructRNA RNA_VectorFont; -extern StructRNA RNA_VectorNodeSocket; extern StructRNA RNA_VertexGroup; extern StructRNA RNA_VertexGroupElement; extern StructRNA RNA_VertexPaint; @@ -599,6 +599,8 @@ extern const PointerRNA PointerRNA_NULL; /* Structs */ +StructRNA *RNA_struct_find(const char *identifier); + const char *RNA_struct_identifier(StructRNA *type); const char *RNA_struct_ui_name(StructRNA *type); const char *RNA_struct_ui_description(StructRNA *type); diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index 0b63bb02436..2300b72910d 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -102,10 +102,12 @@ extern EnumPropertyItem transform_mode_types[]; extern EnumPropertyItem posebone_rotmode_items[]; extern EnumPropertyItem property_type_items[]; +extern EnumPropertyItem property_subtype_items[]; extern EnumPropertyItem property_unit_items[]; extern EnumPropertyItem viewport_shade_items[]; +extern EnumPropertyItem nodetree_type_items[]; extern EnumPropertyItem node_socket_type_items[]; extern EnumPropertyItem node_math_items[]; diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index f8199074f27..4a18518dde9 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -99,7 +99,10 @@ typedef enum PropertyUnit { #define RNA_ENUM_BITFLAG_SIZE 32 -/* also update enums in bpy_props.c when adding items here */ +/* also update enums in bpy_props.c when adding items here + * watch it: these values are written to files as part of + * node socket button subtypes! + */ typedef enum PropertySubType { PROP_NONE = 0, diff --git a/source/blender/makesrna/SConscript b/source/blender/makesrna/SConscript index 1cb24630fbe..10b20fc795a 100644 --- a/source/blender/makesrna/SConscript +++ b/source/blender/makesrna/SConscript @@ -9,6 +9,7 @@ objs += o incs = '#/intern/guardedalloc #/intern/memutil #/intern/audaspace/intern ../blenkernel ../blenlib ../makesdna intern .' incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont ../blenloader' incs += ' ../render/extern/include' +incs += ' ../nodes' incs += ' #/extern/glew/include' defs = [] diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index ad79771416d..936f2e5e40c 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -475,6 +475,17 @@ static const char *rna_ensure_property_name(PropertyRNA *prop) /* Structs */ +StructRNA *RNA_struct_find(const char *identifier) +{ + StructRNA *type; + if (identifier) { + for (type = BLENDER_RNA.structs.first; type; type = type->cont.next) + if (strcmp(type->identifier, identifier)==0) + return type; + } + return NULL; +} + const char *RNA_struct_identifier(StructRNA *type) { return type->identifier; diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index d69cb2063ab..1ba6905ea37 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -214,9 +214,7 @@ void rna_Main_materials_remove(Main *bmain, ReportList *reports, struct Material struct bNodeTree *rna_Main_nodetree_new(Main *UNUSED(bmain), const char *name, int type) { - bNodeTree *tree = ntreeAddTree(name, type, TRUE); - -// ntreeMakeGroupSockets(tree); + bNodeTree *tree = ntreeAddTree(name, type, NODE_GROUP); id_us_min(&tree->id); return tree; diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index d6e475fdbad..49a0458977a 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -30,13 +30,17 @@ #include #include +#include "RNA_access.h" #include "RNA_define.h" #include "RNA_enum_types.h" #include "rna_internal.h" +#include "rna_internal_types.h" #include "DNA_material_types.h" +#include "DNA_mesh_types.h" #include "DNA_node_types.h" +#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_texture_types.h" @@ -53,9 +57,16 @@ #include "MEM_guardedalloc.h" +EnumPropertyItem nodetree_type_items[] = { + {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes" }, + {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes" }, + {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes" }, + {0, NULL, 0, NULL, NULL} +}; + EnumPropertyItem node_socket_type_items[] = { - {SOCK_VALUE, "VALUE", 0, "Value", ""}, + {SOCK_FLOAT, "VALUE", 0, "Value", ""}, {SOCK_VECTOR, "VECTOR", 0, "Vector", ""}, {SOCK_RGBA, "RGBA", 0, "RGBA", ""}, {0, NULL, 0, NULL, NULL}}; @@ -99,6 +110,41 @@ EnumPropertyItem node_filter_items[] = { {6, "SHADOW", 0, "Shadow", ""}, {0, NULL, 0, NULL, NULL}}; + +/* Add any new socket value subtype here. + * When adding a new subtype here, make sure you also add it + * to the subtype definitions in DNA_node_types.h. + * This macro is used by the RNA and the internal converter functions + * to define all socket subtypes. The SUBTYPE macro must be defined + * before using this macro, and undefined afterwards. + */ +#define NODE_DEFINE_SUBTYPES_INT \ +SUBTYPE(INT, Int, NONE, None) \ +SUBTYPE(INT, Int, UNSIGNED, Unsigned) + +#define NODE_DEFINE_SUBTYPES_FLOAT \ +SUBTYPE(FLOAT, Float, NONE, None) \ +SUBTYPE(FLOAT, Float, UNSIGNED, Unsigned) \ +SUBTYPE(FLOAT, Float, PERCENTAGE, Percentage) \ +SUBTYPE(FLOAT, Float, FACTOR, Factor) \ +SUBTYPE(FLOAT, Float, ANGLE, Angle) \ +SUBTYPE(FLOAT, Float, TIME, Time) \ +SUBTYPE(FLOAT, Float, DISTANCE, Distance) + +#define NODE_DEFINE_SUBTYPES_VECTOR \ +SUBTYPE(VECTOR, Vector, NONE, None) \ +SUBTYPE(VECTOR, Vector, TRANSLATION, Translation) \ +SUBTYPE(VECTOR, Vector, DIRECTION, Direction) \ +SUBTYPE(VECTOR, Vector, VELOCITY, Velocity) \ +SUBTYPE(VECTOR, Vector, ACCELERATION, Acceleration) \ +SUBTYPE(VECTOR, Vector, EULER, Euler) \ +SUBTYPE(VECTOR, Vector, XYZ, XYZ) + +#define NODE_DEFINE_SUBTYPES \ +NODE_DEFINE_SUBTYPES_INT \ +NODE_DEFINE_SUBTYPES_FLOAT \ +NODE_DEFINE_SUBTYPES_VECTOR + #ifdef RNA_RUNTIME #include "BLI_linklist.h" @@ -121,32 +167,18 @@ static StructRNA *rna_Node_refine(struct PointerRNA *ptr) #include "rna_nodetree_types.h" - #undef DefNode - case NODE_GROUP: return &RNA_NodeGroup; + case NODE_FORLOOP: + return &RNA_NodeForLoop; + case NODE_WHILELOOP: + return &RNA_NodeWhileLoop; default: return &RNA_Node; } } -static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) -{ - bNodeSocket *ns= (bNodeSocket*)ptr->data; - - switch(ns->type) { - case SOCK_VALUE: - return &RNA_ValueNodeSocket; - case SOCK_VECTOR: - return &RNA_VectorNodeSocket; - case SOCK_RGBA: - return &RNA_RGBANodeSocket; - default: - return &RNA_UnknownType; - } -} - static StructRNA *rna_NodeTree_refine(struct PointerRNA *ptr) { bNodeTree *ntree= (bNodeTree*)ptr->data; @@ -170,6 +202,46 @@ static char *rna_Node_path(PointerRNA *ptr) return BLI_sprintfN("nodes[\"%s\"]", node->name); } +static StructRNA *rna_NodeSocket_refine(PointerRNA *ptr) +{ + bNodeSocket *sock= (bNodeSocket*)ptr->data; + + if (sock->default_value) { + /* This returns the refined socket type with the full definition + * of the default input value with type and subtype. + */ + + #define SUBTYPE(socktype, stypename, id, idname) \ + { \ + bNodeSocketValue##stypename *value= (bNodeSocketValue##stypename*)sock->default_value; \ + if (value->subtype==PROP_##id) \ + return &RNA_NodeSocket##stypename##idname; \ + } + + switch (sock->type) { + case SOCK_FLOAT: + NODE_DEFINE_SUBTYPES_FLOAT + break; + case SOCK_INT: + NODE_DEFINE_SUBTYPES_INT + break; + case SOCK_BOOLEAN: + return &RNA_NodeSocketBoolean; + break; + case SOCK_VECTOR: + NODE_DEFINE_SUBTYPES_VECTOR + break; + case SOCK_RGBA: + return &RNA_NodeSocketRGBA; + break; + } + + #undef SUBTYPE + } + + return &RNA_NodeSocket; +} + static char *rna_NodeSocket_path(PointerRNA *ptr) { bNodeTree *ntree= (bNodeTree*)ptr->id.data; @@ -275,7 +347,7 @@ static void rna_NodeGroup_update(Main *bmain, Scene *scene, PointerRNA *ptr) bNodeTree *ntree= (bNodeTree*)ptr->id.data; bNode *node= (bNode*)ptr->data; - nodeGroupVerify((bNodeTree *)node->id); + ntreeUpdateTree((bNodeTree *)node->id); node_update(bmain, scene, ntree, node); } @@ -313,18 +385,42 @@ static void rna_NodeGroupSocket_update(Main *bmain, Scene *scene, PointerRNA *pt bNodeSocket *sock= (bNodeSocket*)ptr->data; bNode *node; - nodeGroupVerify(ntree); + ntreeUpdateTree(ntree); if (nodeFindNode(ntree, sock, &node, NULL, NULL)) node_update(bmain, scene, ntree, node); } -static void rna_NodeSocket_defvalue_range(PointerRNA *ptr, float *min, float *max) +static void rna_NodeLink_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + bNodeTree *ntree= (bNodeTree*)ptr->id.data; + + ntree->update |= NTREE_UPDATE_LINKS; + ntreeUpdateTree(ntree); +} + +static void rna_NodeSocketInt_range(PointerRNA *ptr, int *min, int *max) { bNodeSocket *sock= (bNodeSocket*)ptr->data; + bNodeSocketValueInt *val= (bNodeSocketValueInt*)sock->default_value; + *min = val->min; + *max = val->max; +} - *min = sock->ns.min; - *max = sock->ns.max; +static void rna_NodeSocketFloat_range(PointerRNA *ptr, float *min, float *max) +{ + bNodeSocket *sock= (bNodeSocket*)ptr->data; + bNodeSocketValueFloat *val= (bNodeSocketValueFloat*)sock->default_value; + *min = val->min; + *max = val->max; +} + +static void rna_NodeSocketVector_range(PointerRNA *ptr, float *min, float *max) +{ + bNodeSocket *sock= (bNodeSocket*)ptr->data; + bNodeSocketValueVector *val= (bNodeSocketValueVector*)sock->default_value; + *min = val->min; + *max = val->max; } static void rna_Node_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -454,18 +550,22 @@ static EnumPropertyItem *rna_Node_channel_itemf(bContext *UNUSED(C), PointerRNA static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *UNUSED(C), ReportList *reports, int type, bNodeTree *group) { bNode *node; + bNodeTemplate ntemp; if (type == NODE_GROUP && group == NULL) { BKE_reportf(reports, RPT_ERROR, "node type \'GROUP\' missing group argument"); return NULL; } - node = nodeAddNodeType(ntree, type, group, NULL); - + + ntemp.type = type; + ntemp.ngroup = group; + node = nodeAddNode(ntree, &ntemp); + if (node == NULL) { BKE_reportf(reports, RPT_ERROR, "Unable to create node"); } else { - nodeGroupVerify(ntree); /* update group node socket links*/ + ntreeUpdateTree(ntree); /* update group node socket links*/ NodeTagChanged(ntree, node); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); @@ -495,7 +595,7 @@ static bNode *rna_NodeTree_node_composite_new(bNodeTree *ntree, bContext *C, Rep } ntreeCompositForceHidden(ntree, CTX_data_scene(C)); - ntreeSolveOrder(ntree); + ntreeUpdateTree(ntree); } return node; @@ -523,7 +623,7 @@ static void rna_NodeTree_node_remove(bNodeTree *ntree, ReportList *reports, bNod id_us_min(node->id); nodeFreeNode(ntree, node); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntreeUpdateTree(ntree); /* update group node socket links*/ WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); } @@ -551,9 +651,7 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, b if(ret) { NodeTagChanged(ntree, tonode); - nodeGroupVerify(ntree); /* update group node socket links*/ - - ntreeSolveOrder(ntree); + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); } @@ -567,8 +665,7 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, bNod } else { nodeRemLink(ntree, link); - ntreeSolveOrder(ntree); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); } @@ -577,9 +674,10 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, bNod static bNodeSocket *rna_NodeTree_input_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type) { /* XXX should check if tree is a group here! no good way to do this currently. */ - bNodeSocket *gsock= nodeGroupAddSocket(ntree, name, type, SOCK_IN); + bNodeSocket *gsock= node_group_add_socket(ntree, name, type, SOCK_IN); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntree->update |= NTREE_UPDATE_GROUP_IN; + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); return gsock; } @@ -587,9 +685,10 @@ static bNodeSocket *rna_NodeTree_input_new(bNodeTree *ntree, ReportList *UNUSED( static bNodeSocket *rna_NodeTree_output_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type) { /* XXX should check if tree is a group here! no good way to do this currently. */ - bNodeSocket *gsock= nodeGroupAddSocket(ntree, name, type, SOCK_OUT); + bNodeSocket *gsock= node_group_add_socket(ntree, name, type, SOCK_OUT); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntree->update |= NTREE_UPDATE_GROUP_OUT; + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); return gsock; } @@ -606,11 +705,12 @@ static bNodeSocket *rna_NodeTree_input_expose(bNodeTree *ntree, ReportList *repo BKE_reportf(reports, RPT_ERROR, "Socket is not an input"); else { /* XXX should check if tree is a group here! no good way to do this currently. */ - gsock = nodeGroupAddSocket(ntree, sock->name, sock->type, SOCK_IN); + gsock = node_group_add_socket(ntree, sock->name, sock->type, SOCK_IN); if (add_link) nodeAddLink(ntree, NULL, gsock, node, sock); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntree->update |= NTREE_UPDATE_GROUP_IN; + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); return gsock; } @@ -629,11 +729,12 @@ static bNodeSocket *rna_NodeTree_output_expose(bNodeTree *ntree, ReportList *rep BKE_reportf(reports, RPT_ERROR, "Socket is not an output"); else { /* XXX should check if tree is a group here! no good way to do this currently. */ - gsock = nodeGroupAddSocket(ntree, sock->name, sock->type, SOCK_OUT); + gsock = node_group_add_socket(ntree, sock->name, sock->type, SOCK_OUT); if (add_link) nodeAddLink(ntree, node, sock, NULL, gsock); - nodeGroupVerify(ntree); /* update group node socket links*/ + ntree->update |= NTREE_UPDATE_GROUP_OUT; + ntreeUpdateTree(ntree); WM_main_add_notifier(NC_NODE|NA_EDITED, ntree); return gsock; } @@ -668,14 +769,16 @@ static EnumPropertyItem node_ycc_items[] = { { 2, "JFIF", 0, "Jpeg", ""}, {0, NULL, 0, NULL, NULL}}; -#define MaxNodes 1000 +#define MaxNodes 50000 enum { Category_GroupNode, + Category_LoopNode, + Category_LayoutNode, Category_ShaderNode, Category_CompositorNode, - Category_TextureNode + Category_TextureNode, }; typedef struct NodeInfo @@ -715,9 +818,10 @@ static void init(void) #include "rna_nodetree_types.h" - #undef DefNode - reg_node(NODE_GROUP, Category_GroupNode, "GROUP", "NodeGroup", "Node", "Group", ""); + reg_node(NODE_FORLOOP, Category_LoopNode, "FORLOOP", "NodeForLoop", "Node", "ForLoop", ""); + reg_node(NODE_WHILELOOP, Category_LoopNode, "WHILELOOP", "NodeWhileLoop", "Node", "WhileLoop", ""); + reg_node(NODE_FRAME, Category_LayoutNode, "FRAME", "NodeFrame", "Node", "Frame", ""); } static StructRNA* def_node(BlenderRNA *brna, int node_id) @@ -793,6 +897,41 @@ static void def_group(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroup_update"); } +static void def_forloop(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "NodeTree"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Node Tree", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroup_update"); +} + +static void def_whileloop(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "NodeTree"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Node Tree", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroup_update"); + + prop = RNA_def_property(srna, "max_iterations", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "custom1"); + RNA_def_property_range(prop, 0.0f, 10000000.0f); + RNA_def_property_ui_text(prop, "Max. Iterations", "Limit for number of iterations"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroup_update"); +} + +static void def_frame(StructRNA *srna) +{ +// PropertyRNA *prop; + +} static void def_math(StructRNA *srna) { @@ -2510,94 +2649,112 @@ static void rna_def_node_socket(BlenderRNA *brna) srna = RNA_def_struct(brna, "NodeSocket", NULL); RNA_def_struct_ui_text(srna, "Node Socket", "Input or output socket of a node"); - RNA_def_struct_refine_func(srna, "rna_NodeSocketType_refine"); RNA_def_struct_sdna(srna, "bNodeSocket"); + RNA_def_struct_refine_func(srna, "rna_NodeSocket_refine"); RNA_def_struct_ui_icon(srna, ICON_PLUG); RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); + prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, node_socket_type_items); + RNA_def_property_enum_default(prop, 0); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Type", "Node Socket type"); + prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); /* XXX must be editable for group sockets. if necessary use a special rna definition for these */ // RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Name", "Socket name"); RNA_def_struct_name_property(srna, prop); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroupSocket_update"); - - /* can add back if there is any use in reading them */ -#if 0 - prop = RNA_def_property(srna, "min", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "ns.min"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Minimum Value", ""); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); - - prop = RNA_def_property(srna, "max", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "ns.max"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Maximum Value", ""); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); -#endif - - prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_enum_items(prop, node_socket_type_items); - RNA_def_property_ui_text(prop, "Type", "Node Socket type"); } -static void rna_def_node_socket_value(BlenderRNA *brna) +static void rna_def_node_socket_subtype(BlenderRNA *brna, int type, int subtype, const char *name, const char *ui_name) { StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ValueNodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "Value Node Socket", "Input or output socket of a node"); + PropertyRNA *prop=NULL; + PropertySubType propsubtype= PROP_NONE; + + #define SUBTYPE(socktype, stypename, id, idname) { PROP_##id, #id, 0, #idname, ""}, + static EnumPropertyItem subtype_items[] = { + NODE_DEFINE_SUBTYPES + {0, NULL, 0, NULL, NULL} + }; + #undef SUBTYPE + + #define SUBTYPE(socktype, stypename, id, idname) if (subtype==PROP_##id) propsubtype = PROP_##id; + NODE_DEFINE_SUBTYPES + #undef SUBTYPE + + srna = RNA_def_struct(brna, name, "NodeSocket"); + RNA_def_struct_ui_text(srna, ui_name, "Input or output socket of a node"); RNA_def_struct_sdna(srna, "bNodeSocket"); RNA_def_struct_ui_icon(srna, ICON_PLUG); RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); - - prop = RNA_def_property(srna, "default_value", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "ns.vec"); - RNA_def_property_array(prop, 1); - RNA_def_property_ui_text(prop, "Default Value", "Default value of the socket when no link is attached"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); - RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); -} - -static void rna_def_node_socket_vector(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "VectorNodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "Vector Node Socket", "Input or output socket of a node"); - RNA_def_struct_sdna(srna, "bNodeSocket"); - RNA_def_struct_ui_icon(srna, ICON_PLUG); - RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); - - prop = RNA_def_property(srna, "default_value", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "ns.vec"); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Default Value", "Default value of the socket when no link is attached"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); - RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); -} - -static void rna_def_node_socket_rgba(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "RGBANodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "RGBA Node Socket", "Input or output socket of a node"); - RNA_def_struct_sdna(srna, "bNodeSocket"); - RNA_def_struct_ui_icon(srna, ICON_PLUG); - RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); - - prop = RNA_def_property(srna, "default_value", PROP_FLOAT, PROP_COLOR); - RNA_def_property_float_sdna(prop, NULL, "ns.vec"); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Default Value", "Default value of the socket when no link is attached"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); - RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); + + switch (type) { + case SOCK_INT: + RNA_def_struct_sdna_from(srna, "bNodeSocketValueInt", "default_value"); + + prop = RNA_def_property(srna, "subtype", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "subtype"); + RNA_def_property_enum_items(prop, subtype_items); + RNA_def_property_ui_text(prop, "Subtype", "Subtype defining the socket value details"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + + prop = RNA_def_property(srna, "default_value", PROP_INT, propsubtype); + RNA_def_property_int_sdna(prop, NULL, "value"); + RNA_def_property_int_funcs(prop, NULL, NULL, "rna_NodeSocketInt_range"); + RNA_def_property_ui_text(prop, "Default Value", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + break; + case SOCK_FLOAT: + RNA_def_struct_sdna_from(srna, "bNodeSocketValueFloat", "default_value"); + + prop = RNA_def_property(srna, "subtype", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "subtype"); + RNA_def_property_enum_items(prop, subtype_items); + RNA_def_property_ui_text(prop, "Subtype", "Subtype defining the socket value details"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + + prop = RNA_def_property(srna, "default_value", PROP_FLOAT, propsubtype); + RNA_def_property_float_sdna(prop, NULL, "value"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocketFloat_range"); + RNA_def_property_ui_text(prop, "Default Value", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + break; + case SOCK_BOOLEAN: + RNA_def_struct_sdna_from(srna, "bNodeSocketValueBoolean", "default_value"); + + prop = RNA_def_property(srna, "default_value", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "value", 1); + RNA_def_property_ui_text(prop, "Default Value", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + break; + case SOCK_VECTOR: + RNA_def_struct_sdna_from(srna, "bNodeSocketValueVector", "default_value"); + + prop = RNA_def_property(srna, "subtype", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "subtype"); + RNA_def_property_enum_items(prop, subtype_items); + RNA_def_property_ui_text(prop, "Subtype", "Subtype defining the socket value details"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + + prop = RNA_def_property(srna, "default_value", PROP_FLOAT, propsubtype); + RNA_def_property_float_sdna(prop, NULL, "value"); + RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocketVector_range"); + RNA_def_property_ui_text(prop, "Default Value", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + break; + case SOCK_RGBA: + RNA_def_struct_sdna_from(srna, "bNodeSocketValueRGBA", "default_value"); + + prop = RNA_def_property(srna, "default_value", PROP_FLOAT, PROP_COLOR); + RNA_def_property_float_sdna(prop, NULL, "value"); + RNA_def_property_ui_text(prop, "Default Value", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeSocket_update"); + break; + } } static void rna_def_node(BlenderRNA *brna) @@ -2625,6 +2782,11 @@ static void rna_def_node(BlenderRNA *brna) RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Node_name_set"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + prop = RNA_def_property(srna, "label", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "label"); + RNA_def_property_ui_text(prop, "Label", "Optional custom node label"); + RNA_def_property_update(prop, NC_NODE, "rna_Node_update"); + prop = RNA_def_property(srna, "inputs", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "inputs", NULL); RNA_def_property_struct_type(prop, "NodeSocket"); @@ -2634,18 +2796,19 @@ static void rna_def_node(BlenderRNA *brna) RNA_def_property_collection_sdna(prop, NULL, "outputs", NULL); RNA_def_property_struct_type(prop, "NodeSocket"); RNA_def_property_ui_text(prop, "Outputs", ""); - - prop = RNA_def_property(srna, "label", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "label"); - RNA_def_property_ui_text(prop, "Label", "Optional custom node label"); - RNA_def_property_update(prop, NC_NODE, "rna_Node_update"); + + prop = RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "parent"); + RNA_def_property_struct_type(prop, "Node"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Parent", "Parent this node is attached to"); } static void rna_def_node_link(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; - + srna = RNA_def_struct(brna, "NodeLink", NULL); RNA_def_struct_ui_text(srna, "NodeLink", "Link between nodes in a node tree"); RNA_def_struct_sdna(srna, "bNodeLink"); @@ -2687,7 +2850,7 @@ static void rna_def_group_sockets_api(BlenderRNA *brna, PropertyRNA *cprop, int RNA_def_function_ui_description(func, "Add a socket to the group tree."); RNA_def_function_flag(func, FUNC_USE_REPORTS); RNA_def_string(func, "name", "Socket", 32, "Name", "Name of the socket"); - RNA_def_enum(func, "type", node_socket_type_items, SOCK_VALUE, "Type", "Type of socket"); + RNA_def_enum(func, "type", node_socket_type_items, SOCK_FLOAT, "Type", "Type of socket"); /* return value */ parm= RNA_def_pointer(func, "socket", "NodeSocket", "", "New socket."); RNA_def_function_return(func, parm); @@ -2708,12 +2871,6 @@ static void rna_def_nodetree(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; - static EnumPropertyItem nodetree_type_items[] = { - {NTREE_SHADER, "SHADER", 0, "Shader", ""}, - {NTREE_COMPOSIT, "COMPOSITE", 0, "Composite", ""}, - {NTREE_TEXTURE, "TEXTURE", 0, "Texture", ""}, - {0, NULL, 0, NULL, NULL}}; - srna = RNA_def_struct(brna, "NodeTree", "ID"); RNA_def_struct_ui_text(srna, "Node Tree", "Node tree consisting of linked nodes used for materials, textures and compositing"); RNA_def_struct_sdna(srna, "bNodeTree"); @@ -2826,15 +2983,23 @@ void RNA_def_nodetree(BlenderRNA *brna) { init(); rna_def_nodetree(brna); + rna_def_node_socket(brna); - rna_def_node_socket_value(brna); - rna_def_node_socket_vector(brna); - rna_def_node_socket_rgba(brna); + + /* Generate RNA definitions for all socket subtypes */ + #define SUBTYPE(socktype, stypename, id, idname) \ + rna_def_node_socket_subtype(brna, SOCK_##socktype, PROP_##id, "NodeSocket"#stypename#idname, #idname" "#stypename" Node Socket"); + NODE_DEFINE_SUBTYPES + #undef SUBTYPE + rna_def_node_socket_subtype(brna, SOCK_BOOLEAN, 0, "NodeSocketBoolean", "Boolean Node Socket"); + rna_def_node_socket_subtype(brna, SOCK_RGBA, 0, "NodeSocketRGBA", "RGBA Node Socket"); + rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); rna_def_compositor_node(brna); rna_def_texture_node(brna); + rna_def_composite_nodetree(brna); rna_def_shader_nodetree(brna); rna_def_texture_nodetree(brna); @@ -2843,10 +3008,14 @@ void RNA_def_nodetree(BlenderRNA *brna) #include "rna_nodetree_types.h" - #undef DefNode - define_specific_node(brna, NODE_GROUP, def_group); + define_specific_node(brna, NODE_FORLOOP, def_forloop); + define_specific_node(brna, NODE_WHILELOOP, def_whileloop); + define_specific_node(brna, NODE_FRAME, def_frame); } +/* clean up macro definition */ +#undef NODE_DEFINE_SUBTYPES + #endif diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d48df85697a..a624d1d6403 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -26,7 +26,12 @@ * \ingroup RNA */ - + +/* Empty definitions for undefined macros to avoid warnings */ +#ifndef DefNode +#define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) +#endif + /* Tree type Node ID RNA def function Enum name Struct name UI Name UI Description */ DefNode( ShaderNode, SH_NODE_OUTPUT, 0, "OUTPUT", Output, "Output", "" ) DefNode( ShaderNode, SH_NODE_MATERIAL, def_sh_material, "MATERIAL", Material, "Material", "" ) @@ -138,3 +143,6 @@ DefNode( TextureNode, TEX_NODE_DECOMPOSE, 0, "DECOM DefNode( TextureNode, TEX_NODE_VALTONOR, 0, "VALTONOR", ValToNor, "Val to Nor", "" ) DefNode( TextureNode, TEX_NODE_SCALE, 0, "SCALE", Scale, "Scale", "" ) + +/* undefine macros */ +#undef DefNode diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 4e2be7682f8..83efd9d1a9f 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -132,6 +132,7 @@ EnumPropertyItem object_type_curve_items[] = { #include "DNA_key_types.h" #include "DNA_constraint_types.h" #include "DNA_lattice_types.h" +#include "DNA_node_types.h" #include "BKE_armature.h" #include "BKE_bullet.h" @@ -2035,18 +2036,19 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Matrix", "Inverse of object's parent matrix at time of parenting"); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); - /* collections */ + /* modifiers */ + prop= RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE); + RNA_def_property_struct_type(prop, "Modifier"); + RNA_def_property_ui_text(prop, "Modifiers", "Modifiers affecting the geometric data of the object"); + rna_def_object_modifiers(brna, prop); + + /* constraints */ prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "Constraint"); RNA_def_property_ui_text(prop, "Constraints", "Constraints affecting the transformation of the object"); // RNA_def_property_collection_funcs(prop, 0, 0, 0, 0, 0, 0, 0, "constraints__add", "constraints__remove"); rna_def_object_constraints(brna, prop); - prop= RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE); - RNA_def_property_struct_type(prop, "Modifier"); - RNA_def_property_ui_text(prop, "Modifiers", "Modifiers affecting the geometric data of the object"); - rna_def_object_modifiers(brna, prop); - /* game engine */ prop= RNA_def_property(srna, "game", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index e063f8ec85a..7f85a2fa1d7 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -46,6 +46,42 @@ EnumPropertyItem property_type_items[] = { {PROP_COLLECTION, "COLLECTION", 0, "Collection", ""}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem property_subtype_items[] = { + {PROP_NONE, "NONE", 0, "None", ""}, + + /* strings */ + {PROP_FILEPATH, "FILEPATH", 0, "File Path", ""}, + {PROP_DIRPATH, "DIRPATH", 0, "Directory Path", ""}, + {PROP_FILENAME, "FILENAME", 0, "File Name", ""}, + + /* numbers */ + {PROP_UNSIGNED, "UNSIGNED", 0, "Unsigned", ""}, + {PROP_PERCENTAGE, "PERCENTAGE", 0, "Percentage", ""}, + {PROP_FACTOR, "FACTOR", 0, "Factor", ""}, + {PROP_ANGLE, "ANGLE", 0, "Angle", ""}, + {PROP_TIME, "TIME", 0, "Time", ""}, + {PROP_DISTANCE, "DISTANCE", 0, "Distance", ""}, + + /* number arrays */ + {PROP_COLOR, "COLOR", 0, "Color", ""}, + {PROP_TRANSLATION, "TRANSLATION", 0, "Translation", ""}, + {PROP_DIRECTION, "DIRECTION", 0, "Direction", ""}, + {PROP_VELOCITY, "VELOCITY", 0, "Velocity", ""}, + {PROP_ACCELERATION, "ACCELERATION", 0, "Acceleration", ""}, + {PROP_MATRIX, "MATRIX", 0, "Matrix", ""}, + {PROP_EULER, "EULER", 0, "Euler Angles", ""}, + {PROP_QUATERNION, "QUATERNION", 0, "Quaternion", ""}, + {PROP_AXISANGLE, "AXISANGLE", 0, "Axis-Angle", ""}, + {PROP_XYZ, "XYZ", 0, "XYZ", ""}, + {PROP_XYZ_LENGTH, "XYZ_LENGTH", 0, "XYZ Length", ""}, + {PROP_COLOR_GAMMA, "COLOR_GAMMA", 0, "Color", ""}, + {PROP_COORDS, "COORDS", 0, "Coordinates", ""}, + + /* booleans */ + {PROP_LAYER, "LAYER", 0, "Layer", ""}, + {PROP_LAYER_MEMBER, "LAYER_MEMBER", 0, "Layer Member", ""}, + {0, NULL, 0, NULL, NULL}}; + EnumPropertyItem property_unit_items[] = { {PROP_UNIT_NONE, "NONE", 0, "None", ""}, {PROP_UNIT_LENGTH, "LENGTH", 0, "Length", ""}, diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 35115b40d59..249cdb28ae1 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -48,6 +48,8 @@ #include "WM_api.h" #include "WM_types.h" +#include "RNA_enum_types.h" + EnumPropertyItem space_type_items[] = { {SPACE_EMPTY, "EMPTY", 0, "Empty", ""}, {SPACE_VIEW3D, "VIEW_3D", 0, "3D View", ""}, @@ -119,6 +121,7 @@ EnumPropertyItem viewport_shade_items[] = { #include "BKE_paint.h" #include "ED_image.h" +#include "ED_node.h" #include "ED_screen.h" #include "ED_view3d.h" #include "ED_sequencer.h" @@ -839,6 +842,24 @@ static void rna_BackgroundImage_opacity_set(PointerRNA *ptr, float value) bgpic->blend = 1.0f - value; } +/* Space Node Editor */ + +static int rna_SpaceNodeEditor_node_tree_poll(PointerRNA *ptr, PointerRNA value) +{ + SpaceNode *snode= (SpaceNode*)ptr->data; + bNodeTree *ntree= (bNodeTree*)value.data; + + /* exclude group trees, only trees of the active type */ + return (ntree->nodetype==0 && ntree->type == snode->treetype); +} + +static void rna_SpaceNodeEditor_node_tree_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + SpaceNode *snode= (SpaceNode*)ptr->data; + + ED_node_tree_update(snode, scene); +} + static EnumPropertyItem *rna_SpaceProperties_texture_context_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { Scene *scene = CTX_data_scene(C); @@ -2414,12 +2435,6 @@ static void rna_def_space_node(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; - static EnumPropertyItem tree_type_items[] = { - {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes"}, - {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes"}, - {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes"}, - {0, NULL, 0, NULL, NULL}}; - static EnumPropertyItem texture_type_items[] = { {SNODE_TEX_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Edit texture nodes from Object"}, {SNODE_TEX_WORLD, "WORLD", ICON_WORLD_DATA, "World", "Edit texture nodes from World"}, @@ -2438,7 +2453,7 @@ static void rna_def_space_node(BlenderRNA *brna) prop= RNA_def_property(srna, "tree_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "treetype"); - RNA_def_property_enum_items(prop, tree_type_items); + RNA_def_property_enum_items(prop, nodetree_type_items); RNA_def_property_ui_text(prop, "Tree Type", "Node tree type to display and edit"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL); @@ -2459,8 +2474,10 @@ static void rna_def_space_node(BlenderRNA *brna) prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_SpaceNodeEditor_node_tree_poll"); + RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Node Tree", "Node tree being displayed and edited"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, "rna_SpaceNodeEditor_node_tree_update"); prop= RNA_def_property(srna, "show_backdrop", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_BACKDRAW); diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt index d1f153265ac..1d942de348b 100644 --- a/source/blender/modifiers/CMakeLists.txt +++ b/source/blender/modifiers/CMakeLists.txt @@ -32,6 +32,7 @@ set(INC ../blenlib ../blenloader ../makesdna + ../makesrna ../render/extern/include ../../../intern/elbeem/extern ../../../intern/guardedalloc diff --git a/source/blender/modifiers/SConscript b/source/blender/modifiers/SConscript index d1bb95761ff..66dd00f0248 100644 --- a/source/blender/modifiers/SConscript +++ b/source/blender/modifiers/SConscript @@ -6,7 +6,7 @@ sources = env.Glob('intern/*.c') incs = '. ./intern' incs += ' #/intern/guardedalloc #/intern/decimation/extern #/intern/bsp/extern #/intern/elbeem/extern' incs += ' ../render/extern/include ../blenloader' -incs += ' ../include ../blenlib ../makesdna ../blenkernel ../blenkernel/intern' +incs += ' ../include ../blenlib ../makesdna ../makesrna ../blenkernel ../blenkernel/intern' incs += ' ' + env['BF_ZLIB_INC'] diff --git a/source/blender/nodes/CMP_node.h b/source/blender/nodes/CMP_node.h deleted file mode 100644 index 65c9236710f..00000000000 --- a/source/blender/nodes/CMP_node.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software(ListBase *lb); you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation(ListBase *lb); either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY(ListBase *lb); 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(ListBase *lb); if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file CMP_node.h - * \ingroup nodes - */ - -#ifndef CMP_NODE_H -#define CMP_NODE_H - -#include "BKE_node.h" - - -/* ****************** types array for all composite nodes ****************** */ - -void register_node_type_cmp_rlayers(ListBase *lb); -void register_node_type_cmp_image(ListBase *lb); -void register_node_type_cmp_texture(ListBase *lb); -void register_node_type_cmp_value(ListBase *lb); -void register_node_type_cmp_rgb(ListBase *lb); -void register_node_type_cmp_curve_time(ListBase *lb); - -void register_node_type_cmp_composite(ListBase *lb); -void register_node_type_cmp_viewer(ListBase *lb); -void register_node_type_cmp_splitviewer(ListBase *lb); -void register_node_type_cmp_output_file(ListBase *lb); -void register_node_type_cmp_view_levels(ListBase *lb); - -void register_node_type_cmp_curve_rgb(ListBase *lb); -void register_node_type_cmp_mix_rgb(ListBase *lb); -void register_node_type_cmp_hue_sat(ListBase *lb); -void register_node_type_cmp_brightcontrast(ListBase *lb); -void register_node_type_cmp_gamma(ListBase *lb); -void register_node_type_cmp_invert(ListBase *lb); -void register_node_type_cmp_alphaover(ListBase *lb); -void register_node_type_cmp_zcombine(ListBase *lb); -void register_node_type_cmp_colorbalance(ListBase *lb); -void register_node_type_cmp_huecorrect(ListBase *lb); - -void register_node_type_cmp_normal(ListBase *lb); -void register_node_type_cmp_curve_vec(ListBase *lb); -void register_node_type_cmp_map_value(ListBase *lb); -void register_node_type_cmp_normalize(ListBase *lb); - -void register_node_type_cmp_filter(ListBase *lb); -void register_node_type_cmp_blur(ListBase *lb); -void register_node_type_cmp_dblur(ListBase *lb); -void register_node_type_cmp_bilateralblur(ListBase *lb); -void register_node_type_cmp_vecblur(ListBase *lb); -void register_node_type_cmp_dilateerode(ListBase *lb); -void register_node_type_cmp_defocus(ListBase *lb); - -void register_node_type_cmp_valtorgb(ListBase *lb); -void register_node_type_cmp_rgbtobw(ListBase *lb); -void register_node_type_cmp_setalpha(ListBase *lb); -void register_node_type_cmp_idmask(ListBase *lb); -void register_node_type_cmp_math(ListBase *lb); -void register_node_type_cmp_seprgba(ListBase *lb); -void register_node_type_cmp_combrgba(ListBase *lb); -void register_node_type_cmp_sephsva(ListBase *lb); -void register_node_type_cmp_combhsva(ListBase *lb); -void register_node_type_cmp_sepyuva(ListBase *lb); -void register_node_type_cmp_combyuva(ListBase *lb); -void register_node_type_cmp_sepycca(ListBase *lb); -void register_node_type_cmp_combycca(ListBase *lb); -void register_node_type_cmp_premulkey(ListBase *lb); - -void register_node_type_cmp_diff_matte(ListBase *lb); -void register_node_type_cmp_distance_matte(ListBase *lb); -void register_node_type_cmp_chroma_matte(ListBase *lb); -void register_node_type_cmp_color_matte(ListBase *lb); -void register_node_type_cmp_channel_matte(ListBase *lb); -void register_node_type_cmp_color_spill(ListBase *lb); -void register_node_type_cmp_luma_matte(ListBase *lb); - -void register_node_type_cmp_translate(ListBase *lb); -void register_node_type_cmp_rotate(ListBase *lb); -void register_node_type_cmp_scale(ListBase *lb); -void register_node_type_cmp_flip(ListBase *lb); -void register_node_type_cmp_crop(ListBase *lb); -void register_node_type_cmp_displace(ListBase *lb); -void register_node_type_cmp_mapuv(ListBase *lb); - -void register_node_type_cmp_glare(ListBase *lb); -void register_node_type_cmp_tonemap(ListBase *lb); -void register_node_type_cmp_lensdist(ListBase *lb); - -#endif diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index c3bd37c18ee..82848c6a5d7 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -38,117 +38,137 @@ set(INC set(INC_SYS ${GLEW_INCLUDE_PATH} + intern + composite + shader + texture ) set(SRC - intern/CMP_nodes/CMP_alphaOver.c - intern/CMP_nodes/CMP_bilateralblur.c - intern/CMP_nodes/CMP_blur.c - intern/CMP_nodes/CMP_brightness.c - intern/CMP_nodes/CMP_channelMatte.c - intern/CMP_nodes/CMP_chromaMatte.c - intern/CMP_nodes/CMP_colorMatte.c - intern/CMP_nodes/CMP_colorSpill.c - intern/CMP_nodes/CMP_colorbalance.c - intern/CMP_nodes/CMP_composite.c - intern/CMP_nodes/CMP_crop.c - intern/CMP_nodes/CMP_curves.c - intern/CMP_nodes/CMP_defocus.c - intern/CMP_nodes/CMP_diffMatte.c - intern/CMP_nodes/CMP_dilate.c - intern/CMP_nodes/CMP_directionalblur.c - intern/CMP_nodes/CMP_displace.c - intern/CMP_nodes/CMP_distanceMatte.c - intern/CMP_nodes/CMP_filter.c - intern/CMP_nodes/CMP_flip.c - intern/CMP_nodes/CMP_gamma.c - intern/CMP_nodes/CMP_glare.c - intern/CMP_nodes/CMP_hueSatVal.c - intern/CMP_nodes/CMP_huecorrect.c - intern/CMP_nodes/CMP_idMask.c - intern/CMP_nodes/CMP_image.c - intern/CMP_nodes/CMP_invert.c - intern/CMP_nodes/CMP_lensdist.c - intern/CMP_nodes/CMP_levels.c - intern/CMP_nodes/CMP_lummaMatte.c - intern/CMP_nodes/CMP_mapUV.c - intern/CMP_nodes/CMP_mapValue.c - intern/CMP_nodes/CMP_math.c - intern/CMP_nodes/CMP_mixrgb.c - intern/CMP_nodes/CMP_normal.c - intern/CMP_nodes/CMP_normalize.c - intern/CMP_nodes/CMP_outputFile.c - intern/CMP_nodes/CMP_premulkey.c - intern/CMP_nodes/CMP_rgb.c - intern/CMP_nodes/CMP_rotate.c - intern/CMP_nodes/CMP_scale.c - intern/CMP_nodes/CMP_sepcombHSVA.c - intern/CMP_nodes/CMP_sepcombRGBA.c - intern/CMP_nodes/CMP_sepcombYCCA.c - intern/CMP_nodes/CMP_sepcombYUVA.c - intern/CMP_nodes/CMP_setalpha.c - intern/CMP_nodes/CMP_splitViewer.c - intern/CMP_nodes/CMP_texture.c - intern/CMP_nodes/CMP_tonemap.c - intern/CMP_nodes/CMP_translate.c - intern/CMP_nodes/CMP_valToRgb.c - intern/CMP_nodes/CMP_value.c - intern/CMP_nodes/CMP_vecBlur.c - intern/CMP_nodes/CMP_viewer.c - intern/CMP_nodes/CMP_zcombine.c - intern/CMP_util.c - intern/SHD_nodes/SHD_camera.c - intern/SHD_nodes/SHD_curves.c - intern/SHD_nodes/SHD_dynamic.c - intern/SHD_nodes/SHD_geom.c - intern/SHD_nodes/SHD_hueSatVal.c - intern/SHD_nodes/SHD_invert.c - intern/SHD_nodes/SHD_mapping.c - intern/SHD_nodes/SHD_material.c - intern/SHD_nodes/SHD_math.c - intern/SHD_nodes/SHD_mixRgb.c - intern/SHD_nodes/SHD_normal.c - intern/SHD_nodes/SHD_output.c - intern/SHD_nodes/SHD_rgb.c - intern/SHD_nodes/SHD_sepcombRGB.c - intern/SHD_nodes/SHD_squeeze.c - intern/SHD_nodes/SHD_texture.c - intern/SHD_nodes/SHD_valToRgb.c - intern/SHD_nodes/SHD_value.c - intern/SHD_nodes/SHD_vectMath.c - intern/SHD_util.c - intern/TEX_nodes/TEX_at.c - intern/TEX_nodes/TEX_bricks.c - intern/TEX_nodes/TEX_checker.c - intern/TEX_nodes/TEX_compose.c - intern/TEX_nodes/TEX_coord.c - intern/TEX_nodes/TEX_curves.c - intern/TEX_nodes/TEX_decompose.c - intern/TEX_nodes/TEX_distance.c - intern/TEX_nodes/TEX_hueSatVal.c - intern/TEX_nodes/TEX_image.c - intern/TEX_nodes/TEX_invert.c - intern/TEX_nodes/TEX_math.c - intern/TEX_nodes/TEX_mixRgb.c - intern/TEX_nodes/TEX_output.c - intern/TEX_nodes/TEX_proc.c - intern/TEX_nodes/TEX_rotate.c - intern/TEX_nodes/TEX_scale.c - intern/TEX_nodes/TEX_texture.c - intern/TEX_nodes/TEX_translate.c - intern/TEX_nodes/TEX_valToNor.c - intern/TEX_nodes/TEX_valToRgb.c - intern/TEX_nodes/TEX_viewer.c - intern/TEX_util.c + composite/nodes/node_composite_alphaOver.c + composite/nodes/node_composite_bilateralblur.c + composite/nodes/node_composite_blur.c + composite/nodes/node_composite_brightness.c + composite/nodes/node_composite_channelMatte.c + composite/nodes/node_composite_chromaMatte.c + composite/nodes/node_composite_colorMatte.c + composite/nodes/node_composite_colorSpill.c + composite/nodes/node_composite_colorbalance.c + composite/nodes/node_composite_common.c + composite/nodes/node_composite_composite.c + composite/nodes/node_composite_crop.c + composite/nodes/node_composite_curves.c + composite/nodes/node_composite_defocus.c + composite/nodes/node_composite_diffMatte.c + composite/nodes/node_composite_dilate.c + composite/nodes/node_composite_directionalblur.c + composite/nodes/node_composite_displace.c + composite/nodes/node_composite_distanceMatte.c + composite/nodes/node_composite_filter.c + composite/nodes/node_composite_flip.c + composite/nodes/node_composite_gamma.c + composite/nodes/node_composite_glare.c + composite/nodes/node_composite_hueSatVal.c + composite/nodes/node_composite_huecorrect.c + composite/nodes/node_composite_idMask.c + composite/nodes/node_composite_image.c + composite/nodes/node_composite_invert.c + composite/nodes/node_composite_lensdist.c + composite/nodes/node_composite_levels.c + composite/nodes/node_composite_lummaMatte.c + composite/nodes/node_composite_mapUV.c + composite/nodes/node_composite_mapValue.c + composite/nodes/node_composite_math.c + composite/nodes/node_composite_mixrgb.c + composite/nodes/node_composite_normal.c + composite/nodes/node_composite_normalize.c + composite/nodes/node_composite_outputFile.c + composite/nodes/node_composite_premulkey.c + composite/nodes/node_composite_rgb.c + composite/nodes/node_composite_rotate.c + composite/nodes/node_composite_scale.c + composite/nodes/node_composite_sepcombHSVA.c + composite/nodes/node_composite_sepcombRGBA.c + composite/nodes/node_composite_sepcombYCCA.c + composite/nodes/node_composite_sepcombYUVA.c + composite/nodes/node_composite_setalpha.c + composite/nodes/node_composite_splitViewer.c + composite/nodes/node_composite_texture.c + composite/nodes/node_composite_tonemap.c + composite/nodes/node_composite_translate.c + composite/nodes/node_composite_valToRgb.c + composite/nodes/node_composite_value.c + composite/nodes/node_composite_vecBlur.c + composite/nodes/node_composite_viewer.c + composite/nodes/node_composite_zcombine.c + composite/node_composite_tree.c + composite/node_composite_util.c + + shader/nodes/node_shader_camera.c + shader/nodes/node_shader_common.c + shader/nodes/node_shader_curves.c + shader/nodes/node_shader_dynamic.c + shader/nodes/node_shader_geom.c + shader/nodes/node_shader_hueSatVal.c + shader/nodes/node_shader_invert.c + shader/nodes/node_shader_mapping.c + shader/nodes/node_shader_material.c + shader/nodes/node_shader_math.c + shader/nodes/node_shader_mixRgb.c + shader/nodes/node_shader_normal.c + shader/nodes/node_shader_output.c + shader/nodes/node_shader_rgb.c + shader/nodes/node_shader_sepcombRGB.c + shader/nodes/node_shader_squeeze.c + shader/nodes/node_shader_texture.c + shader/nodes/node_shader_valToRgb.c + shader/nodes/node_shader_value.c + shader/nodes/node_shader_vectMath.c + shader/node_shader_tree.c + shader/node_shader_util.c + + texture/nodes/node_texture_at.c + texture/nodes/node_texture_bricks.c + texture/nodes/node_texture_checker.c + texture/nodes/node_texture_common.c + texture/nodes/node_texture_compose.c + texture/nodes/node_texture_coord.c + texture/nodes/node_texture_curves.c + texture/nodes/node_texture_decompose.c + texture/nodes/node_texture_distance.c + texture/nodes/node_texture_hueSatVal.c + texture/nodes/node_texture_image.c + texture/nodes/node_texture_invert.c + texture/nodes/node_texture_math.c + texture/nodes/node_texture_mixRgb.c + texture/nodes/node_texture_output.c + texture/nodes/node_texture_proc.c + texture/nodes/node_texture_rotate.c + texture/nodes/node_texture_scale.c + texture/nodes/node_texture_texture.c + texture/nodes/node_texture_translate.c + texture/nodes/node_texture_valToNor.c + texture/nodes/node_texture_valToRgb.c + texture/nodes/node_texture_viewer.c + texture/node_texture_tree.c + texture/node_texture_util.c + intern/node_util.c + intern/node_exec.c + intern/node_common.c + intern/node_socket.c + + composite/node_composite_util.h + shader/node_shader_util.h + texture/node_texture_util.h - CMP_node.h - SHD_node.h - TEX_node.h - intern/CMP_util.h - intern/SHD_util.h - intern/TEX_util.h + NOD_composite.h + NOD_shader.h + NOD_texture.h + NOD_socket.h intern/node_util.h + intern/node_exec.h + intern/node_common.h ) if(WITH_PYTHON) diff --git a/source/blender/nodes/NOD_composite.h b/source/blender/nodes/NOD_composite.h new file mode 100644 index 00000000000..ab56199079e --- /dev/null +++ b/source/blender/nodes/NOD_composite.h @@ -0,0 +1,123 @@ +/* + * $Id: CMP_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software(ListBase *lb); you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation(ListBase *lb); either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY(ListBase *lb); 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(ListBase *lb); if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file NOD_composite.h + * \ingroup nodes + */ + +#ifndef NOD_composite_H +#define NOD_composite_H + +#include "BKE_node.h" + +extern bNodeTreeType ntreeType_Composite; + + +/* ****************** types array for all composite nodes ****************** */ + +void register_node_type_cmp_group(ListBase *lb); +void register_node_type_cmp_forloop(ListBase *lb); +void register_node_type_cmp_whileloop(ListBase *lb); + +void register_node_type_cmp_rlayers(ListBase *lb); +void register_node_type_cmp_image(ListBase *lb); +void register_node_type_cmp_texture(ListBase *lb); +void register_node_type_cmp_value(ListBase *lb); +void register_node_type_cmp_rgb(ListBase *lb); +void register_node_type_cmp_curve_time(ListBase *lb); + +void register_node_type_cmp_composite(ListBase *lb); +void register_node_type_cmp_viewer(ListBase *lb); +void register_node_type_cmp_splitviewer(ListBase *lb); +void register_node_type_cmp_output_file(ListBase *lb); +void register_node_type_cmp_view_levels(ListBase *lb); + +void register_node_type_cmp_curve_rgb(ListBase *lb); +void register_node_type_cmp_mix_rgb(ListBase *lb); +void register_node_type_cmp_hue_sat(ListBase *lb); +void register_node_type_cmp_brightcontrast(ListBase *lb); +void register_node_type_cmp_gamma(ListBase *lb); +void register_node_type_cmp_invert(ListBase *lb); +void register_node_type_cmp_alphaover(ListBase *lb); +void register_node_type_cmp_zcombine(ListBase *lb); +void register_node_type_cmp_colorbalance(ListBase *lb); +void register_node_type_cmp_huecorrect(ListBase *lb); + +void register_node_type_cmp_normal(ListBase *lb); +void register_node_type_cmp_curve_vec(ListBase *lb); +void register_node_type_cmp_map_value(ListBase *lb); +void register_node_type_cmp_normalize(ListBase *lb); + +void register_node_type_cmp_filter(ListBase *lb); +void register_node_type_cmp_blur(ListBase *lb); +void register_node_type_cmp_dblur(ListBase *lb); +void register_node_type_cmp_bilateralblur(ListBase *lb); +void register_node_type_cmp_vecblur(ListBase *lb); +void register_node_type_cmp_dilateerode(ListBase *lb); +void register_node_type_cmp_defocus(ListBase *lb); + +void register_node_type_cmp_valtorgb(ListBase *lb); +void register_node_type_cmp_rgbtobw(ListBase *lb); +void register_node_type_cmp_setalpha(ListBase *lb); +void register_node_type_cmp_idmask(ListBase *lb); +void register_node_type_cmp_math(ListBase *lb); +void register_node_type_cmp_seprgba(ListBase *lb); +void register_node_type_cmp_combrgba(ListBase *lb); +void register_node_type_cmp_sephsva(ListBase *lb); +void register_node_type_cmp_combhsva(ListBase *lb); +void register_node_type_cmp_sepyuva(ListBase *lb); +void register_node_type_cmp_combyuva(ListBase *lb); +void register_node_type_cmp_sepycca(ListBase *lb); +void register_node_type_cmp_combycca(ListBase *lb); +void register_node_type_cmp_premulkey(ListBase *lb); + +void register_node_type_cmp_diff_matte(ListBase *lb); +void register_node_type_cmp_distance_matte(ListBase *lb); +void register_node_type_cmp_chroma_matte(ListBase *lb); +void register_node_type_cmp_color_matte(ListBase *lb); +void register_node_type_cmp_channel_matte(ListBase *lb); +void register_node_type_cmp_color_spill(ListBase *lb); +void register_node_type_cmp_luma_matte(ListBase *lb); + +void register_node_type_cmp_translate(ListBase *lb); +void register_node_type_cmp_rotate(ListBase *lb); +void register_node_type_cmp_scale(ListBase *lb); +void register_node_type_cmp_flip(ListBase *lb); +void register_node_type_cmp_crop(ListBase *lb); +void register_node_type_cmp_displace(ListBase *lb); +void register_node_type_cmp_mapuv(ListBase *lb); + +void register_node_type_cmp_glare(ListBase *lb); +void register_node_type_cmp_tonemap(ListBase *lb); +void register_node_type_cmp_lensdist(ListBase *lb); + +#endif diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h new file mode 100644 index 00000000000..5bc0c381f0b --- /dev/null +++ b/source/blender/nodes/NOD_shader.h @@ -0,0 +1,78 @@ +/* + * $Id: SHD_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * + * ***** 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. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file NOD_shader.h + * \ingroup nodes + */ + +#ifndef NOD_SHADER_H +#define NOD_SHADER_H + +#include "BKE_node.h" + +extern struct bNodeTreeType ntreeType_Shader; + + +/* the type definitions array */ +/* ****************** types array for all shaders ****************** */ + +void register_node_type_sh_group(ListBase *lb); +void register_node_type_sh_forloop(ListBase *lb); +void register_node_type_sh_whileloop(ListBase *lb); + +void register_node_type_sh_output(ListBase *lb); +void register_node_type_sh_material(ListBase *lb); +void register_node_type_sh_camera(ListBase *lb); +void register_node_type_sh_value(ListBase *lb); +void register_node_type_sh_rgb(ListBase *lb); +void register_node_type_sh_mix_rgb(ListBase *lb); +void register_node_type_sh_valtorgb(ListBase *lb); +void register_node_type_sh_rgbtobw(ListBase *lb); +void register_node_type_sh_texture(ListBase *lb); +void register_node_type_sh_normal(ListBase *lb); +void register_node_type_sh_geom(ListBase *lb); +void register_node_type_sh_mapping(ListBase *lb); +void register_node_type_sh_curve_vec(ListBase *lb); +void register_node_type_sh_curve_rgb(ListBase *lb); +void register_node_type_sh_math(ListBase *lb); +void register_node_type_sh_vect_math(ListBase *lb); +void register_node_type_sh_squeeze(ListBase *lb); +void register_node_type_sh_dynamic(ListBase *lb); +void register_node_type_sh_material_ext(ListBase *lb); +void register_node_type_sh_invert(ListBase *lb); +void register_node_type_sh_seprgb(ListBase *lb); +void register_node_type_sh_combrgb(ListBase *lb); +void register_node_type_sh_hue_sat(ListBase *lb); + +#endif + + diff --git a/source/blender/nodes/NOD_socket.h b/source/blender/nodes/NOD_socket.h new file mode 100644 index 00000000000..92e8a8e058d --- /dev/null +++ b/source/blender/nodes/NOD_socket.h @@ -0,0 +1,89 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Lukas Toenne + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file NOD_socket.h + * \ingroup nodes + */ + + +#ifndef NOD_SOCKET_H_ +#define NOD_SOCKET_H_ + +#include "DNA_listBase.h" + +#include "BLI_utildefines.h" + +#include "BKE_node.h" + +#include "RNA_types.h" + +struct bNodeTree; +struct bNode; +struct bNodeStack; + +void node_socket_type_init(struct bNodeSocketType *types[]); + +struct bNodeSocket *nodeAddInputInt(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, int value, int min, int max); +struct bNodeSocket *nodeAddOutputInt(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *nodeAddInputFloat(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, float value, float min, float max); +struct bNodeSocket *nodeAddOutputFloat(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *nodeAddInputBoolean(struct bNodeTree *ntree, struct bNode *node, const char *name, char value); +struct bNodeSocket *nodeAddOutputBoolean(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *nodeAddInputVector(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, float x, float y, float z, float min, float max); +struct bNodeSocket *nodeAddOutputVector(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *nodeAddInputRGBA(struct bNodeTree *ntree, struct bNode *node, const char *name, float r, float g, float b, float a); +struct bNodeSocket *nodeAddOutputRGBA(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *nodeAddInputMesh(struct bNodeTree *ntree, struct bNode *node, const char *name); +struct bNodeSocket *nodeAddOutputMesh(struct bNodeTree *ntree, struct bNode *node, const char *name); + +struct bNodeSocket *node_add_input_from_template(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketTemplate *stemp); +struct bNodeSocket *node_add_output_from_template(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketTemplate *stemp); + +void node_verify_socket_templates(struct bNodeTree *ntree, struct bNode *node); + + +/* Socket Converters */ + +#define SOCK_VECTOR_X 1 +#define SOCK_VECTOR_Y 2 +#define SOCK_VECTOR_Z 3 + +#define SOCK_RGBA_R 1 +#define SOCK_RGBA_G 2 +#define SOCK_RGBA_B 3 +#define SOCK_RGBA_A 4 + +#define SOCK_MESH_VERT_CO 1 +#define SOCK_MESH_VERT_NO 2 + +#endif diff --git a/source/blender/nodes/NOD_texture.h b/source/blender/nodes/NOD_texture.h new file mode 100644 index 00000000000..6f30685aff1 --- /dev/null +++ b/source/blender/nodes/NOD_texture.h @@ -0,0 +1,88 @@ +/* + * $Id: TEX_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * + * ***** 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. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file NOD_texture.h + * \ingroup nodes + */ + +#ifndef NOD_TEXTURE_H +#define NOD_TEXTURE_H + +#include "BKE_node.h" + +extern bNodeTreeType ntreeType_Texture; + + +/* ****************** types array for all texture nodes ****************** */ + +void register_node_type_tex_group(ListBase *lb); +void register_node_type_tex_forloop(ListBase *lb); +void register_node_type_tex_whileloop(ListBase *lb); + +void register_node_type_tex_math(ListBase *lb); +void register_node_type_tex_mix_rgb(ListBase *lb); +void register_node_type_tex_valtorgb(ListBase *lb); +void register_node_type_tex_valtonor(ListBase *lb); +void register_node_type_tex_rgbtobw(ListBase *lb); +void register_node_type_tex_output(ListBase *lb); +void register_node_type_tex_viewer(ListBase *lb); +void register_node_type_tex_checker(ListBase *lb); +void register_node_type_tex_texture(ListBase *lb); +void register_node_type_tex_bricks(ListBase *lb); +void register_node_type_tex_image(ListBase *lb); +void register_node_type_tex_curve_rgb(ListBase *lb); +void register_node_type_tex_curve_time(ListBase *lb); +void register_node_type_tex_invert(ListBase *lb); +void register_node_type_tex_hue_sat(ListBase *lb); +void register_node_type_tex_coord(ListBase *lb); +void register_node_type_tex_distance(ListBase *lb); + +void register_node_type_tex_rotate(ListBase *lb); +void register_node_type_tex_translate(ListBase *lb); +void register_node_type_tex_scale(ListBase *lb); +void register_node_type_tex_at(ListBase *lb); + +void register_node_type_tex_compose(ListBase *lb); +void register_node_type_tex_decompose(ListBase *lb); + +void register_node_type_tex_proc_voronoi(ListBase *lb); +void register_node_type_tex_proc_blend(ListBase *lb); +void register_node_type_tex_proc_magic(ListBase *lb); +void register_node_type_tex_proc_marble(ListBase *lb); +void register_node_type_tex_proc_clouds(ListBase *lb); +void register_node_type_tex_proc_wood(ListBase *lb); +void register_node_type_tex_proc_musgrave(ListBase *lb); +void register_node_type_tex_proc_noise(ListBase *lb); +void register_node_type_tex_proc_stucci(ListBase *lb); +void register_node_type_tex_proc_distnoise(ListBase *lb); + +#endif diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript index 8d17c6f5e16..0cbc7b80933 100644 --- a/source/blender/nodes/SConscript +++ b/source/blender/nodes/SConscript @@ -2,11 +2,11 @@ Import ('env') sources = env.Glob('intern/*.c') -cmpsources = env.Glob('intern/CMP_nodes/*.c') -shdsources = env.Glob('intern/SHD_nodes/*.c') -texsources = env.Glob('intern/TEX_nodes/*.c') - +cmpsources = env.Glob('composite/*.c') + env.Glob('composite/nodes/*.c') +shdsources = env.Glob('shader/*.c') + env.Glob('shader/nodes/*.c') +texsources = env.Glob('texture/*.c') + env.Glob('texture/nodes/*.c') incs = '. ./intern ' +incs += './composite ./shader ./texture ' incs += '#/intern/guardedalloc ../editors/include ../blenlib ../makesdna' incs += ' ../render/extern/include ../makesrna ' incs += ' ../imbuf ../avi ' diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h deleted file mode 100644 index 80e5eec6893..00000000000 --- a/source/blender/nodes/SHD_node.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * $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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file SHD_node.h - * \ingroup nodes - */ - -#ifndef SHD_NODE_H -#define SHD_NODE_H - -#include "BKE_node.h" - - -/* the type definitions array */ -/* ****************** types array for all shaders ****************** */ - -void register_node_type_sh_output(ListBase *lb); -void register_node_type_sh_material(ListBase *lb); -void register_node_type_sh_camera(ListBase *lb); -void register_node_type_sh_value(ListBase *lb); -void register_node_type_sh_rgb(ListBase *lb); -void register_node_type_sh_mix_rgb(ListBase *lb); -void register_node_type_sh_valtorgb(ListBase *lb); -void register_node_type_sh_rgbtobw(ListBase *lb); -void register_node_type_sh_texture(ListBase *lb); -void register_node_type_sh_normal(ListBase *lb); -void register_node_type_sh_geom(ListBase *lb); -void register_node_type_sh_mapping(ListBase *lb); -void register_node_type_sh_curve_vec(ListBase *lb); -void register_node_type_sh_curve_rgb(ListBase *lb); -void register_node_type_sh_math(ListBase *lb); -void register_node_type_sh_vect_math(ListBase *lb); -void register_node_type_sh_squeeze(ListBase *lb); -void register_node_type_sh_dynamic(ListBase *lb); -void register_node_type_sh_material_ext(ListBase *lb); -void register_node_type_sh_invert(ListBase *lb); -void register_node_type_sh_seprgb(ListBase *lb); -void register_node_type_sh_combrgb(ListBase *lb); -void register_node_type_sh_hue_sat(ListBase *lb); - -#endif - - diff --git a/source/blender/nodes/TEX_node.h b/source/blender/nodes/TEX_node.h deleted file mode 100644 index 23a6b4427af..00000000000 --- a/source/blender/nodes/TEX_node.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * $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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file TEX_node.h - * \ingroup nodes - */ - -#ifndef TEX_NODE_H -#define TEX_NODE_H - -#include "BKE_node.h" - - -/* ****************** types array for all texture nodes ****************** */ - -void register_node_type_tex_math(ListBase *lb); -void register_node_type_tex_mix_rgb(ListBase *lb); -void register_node_type_tex_valtorgb(ListBase *lb); -void register_node_type_tex_valtonor(ListBase *lb); -void register_node_type_tex_rgbtobw(ListBase *lb); -void register_node_type_tex_output(ListBase *lb); -void register_node_type_tex_viewer(ListBase *lb); -void register_node_type_tex_checker(ListBase *lb); -void register_node_type_tex_texture(ListBase *lb); -void register_node_type_tex_bricks(ListBase *lb); -void register_node_type_tex_image(ListBase *lb); -void register_node_type_tex_curve_rgb(ListBase *lb); -void register_node_type_tex_curve_time(ListBase *lb); -void register_node_type_tex_invert(ListBase *lb); -void register_node_type_tex_hue_sat(ListBase *lb); -void register_node_type_tex_coord(ListBase *lb); -void register_node_type_tex_distance(ListBase *lb); - -void register_node_type_tex_rotate(ListBase *lb); -void register_node_type_tex_translate(ListBase *lb); -void register_node_type_tex_scale(ListBase *lb); -void register_node_type_tex_at(ListBase *lb); - -void register_node_type_tex_compose(ListBase *lb); -void register_node_type_tex_decompose(ListBase *lb); - -void register_node_type_tex_proc_voronoi(ListBase *lb); -void register_node_type_tex_proc_blend(ListBase *lb); -void register_node_type_tex_proc_magic(ListBase *lb); -void register_node_type_tex_proc_marble(ListBase *lb); -void register_node_type_tex_proc_clouds(ListBase *lb); -void register_node_type_tex_proc_wood(ListBase *lb); -void register_node_type_tex_proc_musgrave(ListBase *lb); -void register_node_type_tex_proc_noise(ListBase *lb); -void register_node_type_tex_proc_stucci(ListBase *lb); -void register_node_type_tex_proc_distnoise(ListBase *lb); - -#endif diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c new file mode 100644 index 00000000000..1a2fb04be8c --- /dev/null +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -0,0 +1,811 @@ +/** + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/node_composite_tree.c + * \ingroup nodes + */ + + +#include + +#include "DNA_anim_types.h" +#include "DNA_scene_types.h" +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_threads.h" + +#include "BKE_animsys.h" +#include "BKE_colortools.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_main.h" +#include "BKE_node.h" +#include "BKE_utildefines.h" + +#include "node_exec.h" +#include "node_util.h" + +#include "PIL_time.h" + +#include "RNA_access.h" + +#include "NOD_composite.h" +#include "node_composite_util.h" + +static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) +{ + Scene *sce; + for(sce= main->scene.first; sce; sce= sce->id.next) { + if(sce->nodetree) { + func(calldata, &sce->id, sce->nodetree); + } + } +} + +static void free_node_cache(bNodeTree *UNUSED(ntree), bNode *node) +{ + bNodeSocket *sock; + + for(sock= node->outputs.first; sock; sock= sock->next) { + if(sock->cache) { + free_compbuf(sock->cache); + sock->cache= NULL; + } + } +} + +static void free_cache(bNodeTree *ntree) +{ + bNode *node; + for(node= ntree->nodes.first; node; node= node->next) + free_node_cache(ntree, node); +} + +static void update_node(bNodeTree *ntree, bNode *node) +{ + bNodeSocket *sock; + + for(sock= node->outputs.first; sock; sock= sock->next) { + if(sock->cache) { + //free_compbuf(sock->cache); + //sock->cache= NULL; + } + } + node->need_exec= 1; + + /* individual node update call */ + if (node->typeinfo->updatefunc) + node->typeinfo->updatefunc(ntree, node); +} + +/* local tree then owns all compbufs */ +static void localize(bNodeTree *UNUSED(localtree), bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + + for(node= ntree->nodes.first; node; node= node->next) { + /* ensure new user input gets handled ok */ + node->need_exec= 0; + + /* move over the compbufs */ + /* right after ntreeCopyTree() oldsock pointers are valid */ + + if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { + if(node->id) { + if(node->flag & NODE_DO_OUTPUT) + node->new_node->id= (ID *)copy_image((Image *)node->id); + else + node->new_node->id= NULL; + } + } + + for(sock= node->outputs.first; sock; sock= sock->next) { + sock->new_sock->cache= sock->cache; + compbuf_set_node(sock->new_sock->cache, node->new_node); + + sock->cache= NULL; + sock->new_sock->new_sock= sock; + } + } +} + +static void local_sync(bNodeTree *localtree, bNodeTree *ntree) +{ + bNode *lnode; + + /* move over the compbufs and previews */ + for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { + if( (lnode->exec & NODE_READY) && !(lnode->exec & NODE_SKIPPED) ) { + if(ntreeNodeExists(ntree, lnode->new_node)) { + + if(lnode->preview && lnode->preview->rect) { + nodeFreePreview(lnode->new_node); + lnode->new_node->preview= lnode->preview; + lnode->preview= NULL; + } + } + } + } +} + +static void local_merge(bNodeTree *localtree, bNodeTree *ntree) +{ + bNode *lnode; + bNodeSocket *lsock; + + /* move over the compbufs and previews */ + for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { + if(ntreeNodeExists(ntree, lnode->new_node)) { + if(ELEM(lnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { + if(lnode->id && (lnode->flag & NODE_DO_OUTPUT)) { + /* image_merge does sanity check for pointers */ + BKE_image_merge((Image *)lnode->new_node->id, (Image *)lnode->id); + } + } + + for(lsock= lnode->outputs.first; lsock; lsock= lsock->next) { + if(ntreeOutputExists(lnode->new_node, lsock->new_sock)) { + lsock->new_sock->cache= lsock->cache; + compbuf_set_node(lsock->new_sock->cache, lnode->new_node); + lsock->cache= NULL; + lsock->new_sock= NULL; + } + } + } + } +} + +bNodeTreeType ntreeType_Composite = { + /* type */ NTREE_COMPOSIT, + /* idname */ "NTCompositing Nodetree", + + /* node_types */ { NULL, NULL }, + + /* free_cache */ free_cache, + /* free_node_cache */ free_node_cache, + /* foreach_nodetree */ foreach_nodetree, + /* localize */ localize, + /* local_sync */ local_sync, + /* local_merge */ local_merge, + /* update */ NULL, + /* update_node */ update_node +}; + + +struct bNodeTreeExec *ntreeCompositBeginExecTree(bNodeTree *ntree) +{ + bNodeTreeExec *exec; + bNode *node; + bNodeSocket *sock; + + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + + /* ensures only a single output node is enabled */ + ntreeSetOutput(ntree); + + exec = ntree_exec_begin(ntree); + + for(node= exec->nodetree->nodes.first; node; node= node->next) { + /* initialize needed for groups */ + node->exec= 0; + + for(sock= node->outputs.first; sock; sock= sock->next) { + bNodeStack *ns= node_get_socket_stack(exec->stack, sock); + if(ns && sock->cache) { + ns->data= sock->cache; + sock->cache= NULL; + } + } + /* cannot initialize them while using in threads */ + if(ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT)) { + curvemapping_initialize(node->storage); + if(node->type==CMP_NODE_CURVE_RGB) + curvemapping_premultiply(node->storage, 0); + } + } + + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + * which only store the ntree pointer. Should be fixed at some point! + */ + ntree->execdata = exec; + + return exec; +} + +void ntreeCompositEndExecTree(bNodeTreeExec *exec) +{ + if(exec) { + bNodeTree *ntree= exec->nodetree; + bNode *node; + bNodeStack *ns; + + for(node= exec->nodetree->nodes.first; node; node= node->next) { + bNodeSocket *sock; + + for(sock= node->outputs.first; sock; sock= sock->next) { + ns = node_get_socket_stack(exec->stack, sock); + if(ns && ns->data) { + sock->cache= ns->data; + ns->data= NULL; + } + } + if(node->type==CMP_NODE_CURVE_RGB) + curvemapping_premultiply(node->storage, 1); + + node->need_exec= 0; + } + + ntree_exec_end(exec); + + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } +} + +/* ***************************** threaded version for execute composite nodes ************* */ +/* these are nodes without input, only giving values */ +/* or nodes with only value inputs */ +static int node_only_value(bNode *node) +{ + bNodeSocket *sock; + + if(ELEM3(node->type, CMP_NODE_TIME, CMP_NODE_VALUE, CMP_NODE_RGB)) + return 1; + + /* doing this for all node types goes wrong. memory free errors */ + if(node->inputs.first && node->type==CMP_NODE_MAP_VALUE) { + int retval= 1; + for(sock= node->inputs.first; sock; sock= sock->next) { + if(sock->link) + retval &= node_only_value(sock->link->fromnode); + } + return retval; + } + return 0; +} + +/* not changing info, for thread callback */ +typedef struct ThreadData { + bNodeStack *stack; + RenderData *rd; +} ThreadData; + +static void *exec_composite_node(void *nodeexec_v) +{ + bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeExec *nodeexec= nodeexec_v; + bNode *node= nodeexec->node; + ThreadData *thd= (ThreadData *)node->threaddata; + + node_get_stack(node, thd->stack, nsin, nsout); + + if((node->flag & NODE_MUTED) && (!node_only_value(node))) { + /* viewers we execute, for feedback to user */ + if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) + node->typeinfo->execfunc(thd->rd, node, nsin, nsout); + else + node_compo_pass_on(node, nsin, nsout); + } + else if(node->typeinfo->execfunc) + node->typeinfo->execfunc(thd->rd, node, nsin, nsout); + else if (node->typeinfo->newexecfunc) + node->typeinfo->newexecfunc(thd->rd, 0, node, nodeexec->data, nsin, nsout); + + node->exec |= NODE_READY; + return 0; +} + +/* return total of executable nodes, for timecursor */ +static int setExecutableNodes(bNodeTree *ntree, ThreadData *thd) +{ + bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ + bNode *node; + bNodeSocket *sock; + int totnode= 0, group_edit= 0; + + /* note; do not add a dependency sort here, the stack was created already */ + + /* if we are in group edit, viewer nodes get skipped when group has viewer */ + for(node= ntree->nodes.first; node; node= node->next) + if(node->type==NODE_GROUP && (node->flag & NODE_GROUP_EDIT)) + if(ntreeHasType((bNodeTree *)node->id, CMP_NODE_VIEWER)) + group_edit= 1; + + for(node= ntree->nodes.first; node; node= node->next) { + int a; + + node_get_stack(node, thd->stack, nsin, nsout); + + /* test the outputs */ + /* skip value-only nodes (should be in type!) */ + if(!node_only_value(node)) { + for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { + if(nsout[a]->data==NULL && nsout[a]->hasoutput) { + node->need_exec= 1; + break; + } + } + } + + /* test the inputs */ + for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { + /* skip viewer nodes in bg render or group edit */ + if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) && (G.background || group_edit)) + node->need_exec= 0; + /* is sock in use? */ + else if(sock->link) { + bNodeLink *link= sock->link; + + /* this is the test for a cyclic case */ + if(link->fromnode==NULL || link->tonode==NULL); + else if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) { + if(link->fromnode->need_exec) { + node->need_exec= 1; + break; + } + } + else { + node->need_exec= 0; + printf("Node %s skipped, cyclic dependency\n", node->name); + } + } + } + + if(node->need_exec) { + + /* free output buffers */ + for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { + if(nsout[a]->data) { + free_compbuf(nsout[a]->data); + nsout[a]->data= NULL; + } + } + totnode++; + /* printf("node needs exec %s\n", node->name); */ + + /* tag for getExecutableNode() */ + node->exec= 0; + } + else { + /* tag for getExecutableNode() */ + node->exec= NODE_READY|NODE_FINISHED|NODE_SKIPPED; + + } + } + + /* last step: set the stack values for only-value nodes */ + /* just does all now, compared to a full buffer exec this is nothing */ + if(totnode) { + for(node= ntree->nodes.first; node; node= node->next) { + if(node->need_exec==0 && node_only_value(node)) { + if(node->typeinfo->execfunc) { + node_get_stack(node, thd->stack, nsin, nsout); + node->typeinfo->execfunc(thd->rd, node, nsin, nsout); + } + } + } + } + + return totnode; +} + +/* while executing tree, free buffers from nodes that are not needed anymore */ +static void freeExecutableNode(bNodeTree *ntree, bNodeTreeExec *exec) +{ + /* node outputs can be freed when: + - not a render result or image node + - when node outputs go to nodes all being set NODE_FINISHED + */ + bNode *node; + bNodeSocket *sock; + + /* set exec flag for finished nodes that might need freed */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type!=CMP_NODE_R_LAYERS) + if(node->exec & NODE_FINISHED) + node->exec |= NODE_FREEBUFS; + } + /* clear this flag for input links that are not done yet */ + for(node= ntree->nodes.first; node; node= node->next) { + if((node->exec & NODE_FINISHED)==0) { + for(sock= node->inputs.first; sock; sock= sock->next) + if(sock->link) + sock->link->fromnode->exec &= ~NODE_FREEBUFS; + } + } + /* now we can free buffers */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->exec & NODE_FREEBUFS) { + for(sock= node->outputs.first; sock; sock= sock->next) { + bNodeStack *ns= node_get_socket_stack(exec->stack, sock); + if(ns && ns->data) { + free_compbuf(ns->data); + ns->data= NULL; + // printf("freed buf node %s \n", node->name); + } + } + } + } +} + +static bNodeExec *getExecutableNode(bNodeTreeExec *exec) +{ + bNodeExec *nodeexec; + bNodeSocket *sock; + int n; + + for(n=0, nodeexec=exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + if(nodeexec->node->exec==0) { + /* input sockets should be ready */ + for(sock= nodeexec->node->inputs.first; sock; sock= sock->next) { + if(sock->link && sock->link->fromnode) + if((sock->link->fromnode->exec & NODE_READY)==0) + break; + } + if(sock==NULL) + return nodeexec; + } + } + return NULL; +} + +/* check if texture nodes need exec or end */ +static void ntree_composite_texnode(bNodeTree *ntree, int init) +{ + bNode *node; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==CMP_NODE_TEXTURE && node->id) { + Tex *tex= (Tex *)node->id; + if(tex->nodetree && tex->use_nodes) { + /* has internal flag to detect it only does it once */ + if(init) { + if (!tex->nodetree->execdata) + tex->nodetree->execdata = ntreeTexBeginExecTree(tex->nodetree); + } + else + ntreeTexEndExecTree(tex->nodetree->execdata); + tex->nodetree->execdata = NULL; + } + } + } + +} + +/* optimized tree execute test for compositing */ +void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) +{ + bNodeExec *nodeexec; + bNode *node; + ListBase threads; + ThreadData thdata; + int totnode, curnode, rendering= 1, n; + bNodeTreeExec *exec= NULL; + + if(ntree==NULL) return; + + if(do_preview) + ntreeInitPreview(ntree, 0, 0); + + if (!ntree->execdata) + exec = ntreeCompositBeginExecTree(ntree); + ntree_composite_texnode(ntree, 1); + + /* prevent unlucky accidents */ + if(G.background) + rd->scemode &= ~R_COMP_CROP; + + /* setup callerdata for thread callback */ + thdata.rd= rd; + thdata.stack= exec->stack; + + /* fixed seed, for example noise texture */ + BLI_srandom(rd->cfra); + + /* sets need_exec tags in nodes */ + curnode = totnode= setExecutableNodes(ntree, &thdata); + + BLI_init_threads(&threads, exec_composite_node, rd->threads); + + while(rendering) { + + if(BLI_available_threads(&threads)) { + nodeexec= getExecutableNode(exec); + if(nodeexec) { + node = nodeexec->node; + if(ntree->progress && totnode) + ntree->progress(ntree->prh, (1.0 - curnode/(float)totnode)); + if(ntree->stats_draw) { + char str[64]; + sprintf(str, "Compositing %d %s", curnode, node->name); + ntree->stats_draw(ntree->sdh, str); + } + curnode--; + + node->threaddata = &thdata; + node->exec= NODE_PROCESSING; + BLI_insert_thread(&threads, nodeexec); + } + else + PIL_sleep_ms(50); + } + else + PIL_sleep_ms(50); + + rendering= 0; + /* test for ESC */ + if(ntree->test_break && ntree->test_break(ntree->tbh)) { + for(node= ntree->nodes.first; node; node= node->next) + node->exec |= NODE_READY; + } + + /* check for ready ones, and if we need to continue */ + for(n=0, nodeexec=exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + node = nodeexec->node; + if(node->exec & NODE_READY) { + if((node->exec & NODE_FINISHED)==0) { + BLI_remove_thread(&threads, nodeexec); /* this waits for running thread to finish btw */ + node->exec |= NODE_FINISHED; + + /* freeing unused buffers */ + if(rd->scemode & R_COMP_FREE) + freeExecutableNode(ntree, exec); + } + } + else rendering= 1; + } + } + + BLI_end_threads(&threads); + + ntreeCompositEndExecTree(exec); +} + +/* *********************************************** */ + +/* clumsy checking... should do dynamic outputs once */ +static void force_hidden_passes(bNode *node, int passflag) +{ + bNodeSocket *sock; + + for(sock= node->outputs.first; sock; sock= sock->next) + sock->flag &= ~SOCK_UNAVAIL; + + sock= BLI_findlink(&node->outputs, RRES_OUT_Z); + if(!(passflag & SCE_PASS_Z)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_NORMAL); + if(!(passflag & SCE_PASS_NORMAL)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_VEC); + if(!(passflag & SCE_PASS_VECTOR)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_UV); + if(!(passflag & SCE_PASS_UV)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_RGBA); + if(!(passflag & SCE_PASS_RGBA)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_DIFF); + if(!(passflag & SCE_PASS_DIFFUSE)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_SPEC); + if(!(passflag & SCE_PASS_SPEC)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_SHADOW); + if(!(passflag & SCE_PASS_SHADOW)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_AO); + if(!(passflag & SCE_PASS_AO)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_REFLECT); + if(!(passflag & SCE_PASS_REFLECT)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_REFRACT); + if(!(passflag & SCE_PASS_REFRACT)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_INDIRECT); + if(!(passflag & SCE_PASS_INDIRECT)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXOB); + if(!(passflag & SCE_PASS_INDEXOB)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_INDEXMA); + if(!(passflag & SCE_PASS_INDEXMA)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_MIST); + if(!(passflag & SCE_PASS_MIST)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_EMIT); + if(!(passflag & SCE_PASS_EMIT)) sock->flag |= SOCK_UNAVAIL; + sock= BLI_findlink(&node->outputs, RRES_OUT_ENV); + if(!(passflag & SCE_PASS_ENVIRONMENT)) sock->flag |= SOCK_UNAVAIL; + +} + +/* based on rules, force sockets hidden always */ +void ntreeCompositForceHidden(bNodeTree *ntree, Scene *curscene) +{ + bNode *node; + + if(ntree==NULL) return; + + for(node= ntree->nodes.first; node; node= node->next) { + if( node->type==CMP_NODE_R_LAYERS) { + Scene *sce= node->id?(Scene *)node->id:curscene; + SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1); + if(srl) + force_hidden_passes(node, srl->passflag); + } + else if( node->type==CMP_NODE_IMAGE) { + Image *ima= (Image *)node->id; + if(ima) { + if(ima->rr) { + ImageUser *iuser= node->storage; + RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer); + if(rl) + force_hidden_passes(node, rl->passflag); + else + force_hidden_passes(node, 0); + } + else if(ima->type!=IMA_TYPE_MULTILAYER) { /* if ->rr not yet read we keep inputs */ + force_hidden_passes(node, RRES_OUT_Z); + } + else + force_hidden_passes(node, 0); + } + else + force_hidden_passes(node, 0); + } + } + +} + +/* called from render pipeline, to tag render input and output */ +/* need to do all scenes, to prevent errors when you re-render 1 scene */ +void ntreeCompositTagRender(Scene *curscene) +{ + Scene *sce; + + for(sce= G.main->scene.first; sce; sce= sce->id.next) { + if(sce->nodetree) { + bNode *node; + + for(node= sce->nodetree->nodes.first; node; node= node->next) { + if(node->id==(ID *)curscene || node->type==CMP_NODE_COMPOSITE) + NodeTagChanged(sce->nodetree, node); + else if(node->type==CMP_NODE_TEXTURE) /* uses scene sizex/sizey */ + NodeTagChanged(sce->nodetree, node); + } + } + } +} + +static int node_animation_properties(bNodeTree *ntree, bNode *node) +{ + bNodeSocket *sock; + const ListBase *lb; + Link *link; + PointerRNA ptr; + PropertyRNA *prop; + + /* check to see if any of the node's properties have fcurves */ + RNA_pointer_create((ID *)ntree, &RNA_Node, node, &ptr); + lb = RNA_struct_type_properties(ptr.type); + + for (link=lb->first; link; link=link->next) { + int driven, len=1, index; + prop = (PropertyRNA *)link; + + if (RNA_property_array_check(prop)) + len = RNA_property_array_length(&ptr, prop); + + for (index=0; indexinputs.first; sock; sock=sock->next) { + int driven, len=1, index; + + RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr); + prop = RNA_struct_find_property(&ptr, "default_value"); + if (prop) { + if (RNA_property_array_check(prop)) + len = RNA_property_array_length(&ptr, prop); + + for (index=0; indexnodes.first; node; node= node->next) { + + tagged = node_animation_properties(ntree, node); + + /* otherwise always tag these node types */ + if(node->type==CMP_NODE_IMAGE) { + Image *ima= (Image *)node->id; + if(ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) { + NodeTagChanged(ntree, node); + tagged= 1; + } + } + else if(node->type==CMP_NODE_TIME) { + NodeTagChanged(ntree, node); + tagged= 1; + } + /* here was tag render layer, but this is called after a render, so re-composites fail */ + else if(node->type==NODE_GROUP) { + if( ntreeCompositTagAnimated((bNodeTree *)node->id) ) { + NodeTagChanged(ntree, node); + } + } + } + + return tagged; +} + + +/* called from image window preview */ +void ntreeCompositTagGenerators(bNodeTree *ntree) +{ + bNode *node; + + if(ntree==NULL) return; + + for(node= ntree->nodes.first; node; node= node->next) { + if( ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE)) + NodeTagChanged(ntree, node); + } +} + +/* XXX after render animation system gets a refresh, this call allows composite to end clean */ +void ntreeClearTags(bNodeTree *ntree) +{ + bNode *node; + + if(ntree==NULL) return; + + for(node= ntree->nodes.first; node; node= node->next) { + node->need_exec= 0; + if(node->type==NODE_GROUP) + ntreeClearTags((bNodeTree *)node->id); + } +} diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c new file mode 100644 index 00000000000..f7759775af0 --- /dev/null +++ b/source/blender/nodes/composite/node_composite_util.c @@ -0,0 +1,1413 @@ +/* + * $Id: CMP_util.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/node_composite_util.c + * \ingroup nodes + */ + + +#include "node_composite_util.h" + +CompBuf *alloc_compbuf(int sizex, int sizey, int type, int alloc) +{ + CompBuf *cbuf= MEM_callocN(sizeof(CompBuf), "compbuf"); + + cbuf->x= sizex; + cbuf->y= sizey; + cbuf->xrad= sizex/2; + cbuf->yrad= sizey/2; + + cbuf->type= type; + if(alloc) { + if(cbuf->type==CB_RGBA) + cbuf->rect= MEM_mapallocN(4*sizeof(float)*sizex*sizey, "compbuf RGBA rect"); + else if(cbuf->type==CB_VEC3) + cbuf->rect= MEM_mapallocN(3*sizeof(float)*sizex*sizey, "compbuf Vector3 rect"); + else if(cbuf->type==CB_VEC2) + cbuf->rect= MEM_mapallocN(2*sizeof(float)*sizex*sizey, "compbuf Vector2 rect"); + else + cbuf->rect= MEM_mapallocN(sizeof(float)*sizex*sizey, "compbuf Fac rect"); + cbuf->malloc= 1; + } + cbuf->disprect.xmin= 0; + cbuf->disprect.ymin= 0; + cbuf->disprect.xmax= sizex; + cbuf->disprect.ymax= sizey; + + return cbuf; +} + +CompBuf *dupalloc_compbuf(CompBuf *cbuf) +{ + CompBuf *dupbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); + if(dupbuf) { + memcpy(dupbuf->rect, cbuf->rect, cbuf->type*sizeof(float)*cbuf->x*cbuf->y); + + dupbuf->xof= cbuf->xof; + dupbuf->yof= cbuf->yof; + } + return dupbuf; +} + +/* instead of reference counting, we create a list */ +CompBuf *pass_on_compbuf(CompBuf *cbuf) +{ + CompBuf *dupbuf= (cbuf)? alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 0): NULL; + CompBuf *lastbuf; + + if(dupbuf) { + dupbuf->rect= cbuf->rect; + dupbuf->xof= cbuf->xof; + dupbuf->yof= cbuf->yof; + dupbuf->malloc= 0; + + /* get last buffer in list, and append dupbuf */ + for(lastbuf= cbuf; lastbuf; lastbuf= lastbuf->next) + if(lastbuf->next==NULL) + break; + lastbuf->next= dupbuf; + dupbuf->prev= lastbuf; + } + return dupbuf; +} + + +void free_compbuf(CompBuf *cbuf) +{ + /* check referencing, then remove from list and set malloc tag */ + if(cbuf->prev || cbuf->next) { + if(cbuf->prev) + cbuf->prev->next= cbuf->next; + if(cbuf->next) + cbuf->next->prev= cbuf->prev; + if(cbuf->malloc) { + if(cbuf->prev) + cbuf->prev->malloc= 1; + else + cbuf->next->malloc= 1; + cbuf->malloc= 0; + } + } + + if(cbuf->malloc && cbuf->rect) + MEM_freeN(cbuf->rect); + + MEM_freeN(cbuf); +} + +void print_compbuf(char *str, CompBuf *cbuf) +{ + printf("Compbuf %s %d %d %p\n", str, cbuf->x, cbuf->y, (void *)cbuf->rect); + +} + +void compbuf_set_node(CompBuf *cbuf, bNode *node) +{ + if (cbuf) cbuf->node = node; +} + +/* used for disabling node (similar code in node_draw.c for disable line and node_edit for untangling nodes) */ +void node_compo_pass_on(bNode *node, bNodeStack **nsin, bNodeStack **nsout) +{ + CompBuf *valbuf= NULL, *colbuf= NULL, *vecbuf= NULL; + bNodeSocket *sock; + int a; + + /* connect the first value buffer in with first value out */ + /* connect the first RGBA buffer in with first RGBA out */ + + /* test the inputs */ + for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { + if(nsin[a]->data) { + CompBuf *cbuf= nsin[a]->data; + if(cbuf->type==1 && valbuf==NULL) valbuf= cbuf; + if(cbuf->type==3 && vecbuf==NULL) vecbuf= cbuf; + if(cbuf->type==4 && colbuf==NULL) colbuf= cbuf; + } + } + + /* outputs */ + if(valbuf || colbuf || vecbuf) { + for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { + if(nsout[a]->hasoutput) { + if(sock->type==SOCK_FLOAT && valbuf) { + nsout[a]->data= pass_on_compbuf(valbuf); + valbuf= NULL; + } + if(sock->type==SOCK_VECTOR && vecbuf) { + nsout[a]->data= pass_on_compbuf(vecbuf); + vecbuf= NULL; + } + if(sock->type==SOCK_RGBA && colbuf) { + nsout[a]->data= pass_on_compbuf(colbuf); + colbuf= NULL; + } + } + } + } +} + + +CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, int type) +{ + CompBuf *cbuf; + rcti disprect= *drect; + float *outfp; + int dx, y; + + if(disprect.xmax>rectx) disprect.xmax= rectx; + if(disprect.ymax>recty) disprect.ymax= recty; + if(disprect.xmin>= disprect.xmax) return NULL; + if(disprect.ymin>= disprect.ymax) return NULL; + + cbuf= alloc_compbuf(disprect.xmax-disprect.xmin, disprect.ymax-disprect.ymin, type, 1); + outfp= cbuf->rect; + rectf += type*(disprect.ymin*rectx + disprect.xmin); + dx= type*cbuf->x; + for(y=cbuf->y; y>0; y--, outfp+=dx, rectf+=type*rectx) + memcpy(outfp, rectf, sizeof(float)*dx); + + return cbuf; +} + +CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy) +{ + CompBuf *outbuf; + float *rectf, *newrectf, *rf; + int x, y, c, pixsize= inbuf->type; + int ofsx, ofsy, stepx, stepy; + + if(inbuf->x==newx && inbuf->y==newy) + return dupalloc_compbuf(inbuf); + + outbuf= alloc_compbuf(newx, newy, inbuf->type, 1); + newrectf= outbuf->rect; + + stepx = (65536.0 * (inbuf->x - 1.0) / (newx - 1.0)) + 0.5; + stepy = (65536.0 * (inbuf->y - 1.0) / (newy - 1.0)) + 0.5; + ofsy = 32768; + + for (y = newy; y > 0 ; y--){ + rectf = inbuf->rect; + rectf += pixsize * (ofsy >> 16) * inbuf->x; + + ofsy += stepy; + ofsx = 32768; + + for (x = newx ; x>0 ; x--) { + + rf= rectf + pixsize*(ofsx >> 16); + for(c=0; ctype!=type) { + CompBuf *outbuf; + float *inrf, *outrf; + int x; + + outbuf= alloc_compbuf(inbuf->x, inbuf->y, type, 1); + + /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ + outbuf->xof= inbuf->xof; + outbuf->yof= inbuf->yof; + + if(inbuf->rect_procedural) { + outbuf->rect_procedural= inbuf->rect_procedural; + VECCOPY(outbuf->procedural_size, inbuf->procedural_size); + VECCOPY(outbuf->procedural_offset, inbuf->procedural_offset); + outbuf->procedural_type= inbuf->procedural_type; + outbuf->node= inbuf->node; + return outbuf; + } + + inrf= inbuf->rect; + outrf= outbuf->rect; + x= inbuf->x*inbuf->y; + + if(type==CB_VAL) { + if(inbuf->type==CB_VEC2) { + for(; x>0; x--, outrf+= 1, inrf+= 2) + *outrf= 0.5f*(inrf[0]+inrf[1]); + } + else if(inbuf->type==CB_VEC3) { + for(; x>0; x--, outrf+= 1, inrf+= 3) + *outrf= 0.333333f*(inrf[0]+inrf[1]+inrf[2]); + } + else if(inbuf->type==CB_RGBA) { + for(; x>0; x--, outrf+= 1, inrf+= 4) + *outrf= inrf[0]*0.35f + inrf[1]*0.45f + inrf[2]*0.2f; + } + } + else if(type==CB_VEC2) { + if(inbuf->type==CB_VAL) { + for(; x>0; x--, outrf+= 2, inrf+= 1) { + outrf[0]= inrf[0]; + outrf[1]= inrf[0]; + } + } + else if(inbuf->type==CB_VEC3) { + for(; x>0; x--, outrf+= 2, inrf+= 3) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + } + } + else if(inbuf->type==CB_RGBA) { + for(; x>0; x--, outrf+= 2, inrf+= 4) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + } + } + } + else if(type==CB_VEC3) { + if(inbuf->type==CB_VAL) { + for(; x>0; x--, outrf+= 3, inrf+= 1) { + outrf[0]= inrf[0]; + outrf[1]= inrf[0]; + outrf[2]= inrf[0]; + } + } + else if(inbuf->type==CB_VEC2) { + for(; x>0; x--, outrf+= 3, inrf+= 2) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + outrf[2]= 0.0f; + } + } + else if(inbuf->type==CB_RGBA) { + for(; x>0; x--, outrf+= 3, inrf+= 4) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + outrf[2]= inrf[2]; + } + } + } + else if(type==CB_RGBA) { + if(inbuf->type==CB_VAL) { + for(; x>0; x--, outrf+= 4, inrf+= 1) { + outrf[0]= inrf[0]; + outrf[1]= inrf[0]; + outrf[2]= inrf[0]; + outrf[3]= 1.0f; + } + } + else if(inbuf->type==CB_VEC2) { + for(; x>0; x--, outrf+= 4, inrf+= 2) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + outrf[2]= 0.0f; + outrf[3]= 1.0f; + } + } + else if(inbuf->type==CB_VEC3) { + for(; x>0; x--, outrf+= 4, inrf+= 3) { + outrf[0]= inrf[0]; + outrf[1]= inrf[1]; + outrf[2]= inrf[2]; + outrf[3]= 1.0f; + } + } + } + + return outbuf; + } + return inbuf; +} + +static float *compbuf_get_pixel(CompBuf *cbuf, float *defcol, float *use, int x, int y, int xrad, int yrad) +{ + if(cbuf) { + if(cbuf->rect_procedural) { + cbuf->rect_procedural(cbuf, use, (float)x/(float)xrad, (float)y/(float)yrad); + return use; + } + else { + static float col[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + + /* map coords */ + x-= cbuf->xof; + y-= cbuf->yof; + + if(y<-cbuf->yrad || y>= -cbuf->yrad+cbuf->y) return col; + if(x<-cbuf->xrad || x>= -cbuf->xrad+cbuf->x) return col; + + return cbuf->rect + cbuf->type*( (cbuf->yrad+y)*cbuf->x + (cbuf->xrad+x) ); + } + } + else return defcol; +} + +/* **************************************************** */ + +/* Pixel-to-Pixel operation, 1 Image in, 1 out */ +void composit1_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, + void (*func)(bNode *, float *, float *), + int src_type) +{ + CompBuf *src_use; + float *outfp=out->rect, *srcfp; + float color[4]; /* local color if compbuf is procedural */ + int xrad, yrad, x, y; + + src_use= typecheck_compbuf(src_buf, src_type); + + xrad= out->xrad; + yrad= out->yrad; + + for(y= -yrad; y<-yrad+out->y; y++) { + for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { + srcfp= compbuf_get_pixel(src_use, src_col, color, x, y, xrad, yrad); + func(node, outfp, srcfp); + } + } + + if(src_use!=src_buf) + free_compbuf(src_use); +} + +/* Pixel-to-Pixel operation, 2 Images in, 1 out */ +void composit2_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, + CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *), + int src_type, int fac_type) +{ + CompBuf *src_use, *fac_use; + float *outfp=out->rect, *srcfp, *facfp; + float color[4]; /* local color if compbuf is procedural */ + int xrad, yrad, x, y; + + src_use= typecheck_compbuf(src_buf, src_type); + fac_use= typecheck_compbuf(fac_buf, fac_type); + + xrad= out->xrad; + yrad= out->yrad; + + for(y= -yrad; y<-yrad+out->y; y++) { + for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { + srcfp= compbuf_get_pixel(src_use, src_col, color, x, y, xrad, yrad); + facfp= compbuf_get_pixel(fac_use, fac, color, x, y, xrad, yrad); + + func(node, outfp, srcfp, facfp); + } + } + if(src_use!=src_buf) + free_compbuf(src_use); + if(fac_use!=fac_buf) + free_compbuf(fac_use); +} + +/* Pixel-to-Pixel operation, 3 Images in, 1 out */ +void composit3_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *src2_buf, float *src2_col, + CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *, float *), + int src1_type, int src2_type, int fac_type) +{ + CompBuf *src1_use, *src2_use, *fac_use; + float *outfp=out->rect, *src1fp, *src2fp, *facfp; + float color[4]; /* local color if compbuf is procedural */ + int xrad, yrad, x, y; + + src1_use= typecheck_compbuf(src1_buf, src1_type); + src2_use= typecheck_compbuf(src2_buf, src2_type); + fac_use= typecheck_compbuf(fac_buf, fac_type); + + xrad= out->xrad; + yrad= out->yrad; + + for(y= -yrad; y<-yrad+out->y; y++) { + for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { + src1fp= compbuf_get_pixel(src1_use, src1_col, color, x, y, xrad, yrad); + src2fp= compbuf_get_pixel(src2_use, src2_col, color, x, y, xrad, yrad); + facfp= compbuf_get_pixel(fac_use, fac, color, x, y, xrad, yrad); + + func(node, outfp, src1fp, src2fp, facfp); + } + } + + if(src1_use!=src1_buf) + free_compbuf(src1_use); + if(src2_use!=src2_buf) + free_compbuf(src2_use); + if(fac_use!=fac_buf) + free_compbuf(fac_use); +} + +/* Pixel-to-Pixel operation, 4 Images in, 1 out */ +void composit4_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *fac1_buf, float *fac1, + CompBuf *src2_buf, float *src2_col, CompBuf *fac2_buf, float *fac2, + void (*func)(bNode *, float *, float *, float *, float *, float *), + int src1_type, int fac1_type, int src2_type, int fac2_type) +{ + CompBuf *src1_use, *src2_use, *fac1_use, *fac2_use; + float *outfp=out->rect, *src1fp, *src2fp, *fac1fp, *fac2fp; + float color[4]; /* local color if compbuf is procedural */ + int xrad, yrad, x, y; + + src1_use= typecheck_compbuf(src1_buf, src1_type); + src2_use= typecheck_compbuf(src2_buf, src2_type); + fac1_use= typecheck_compbuf(fac1_buf, fac1_type); + fac2_use= typecheck_compbuf(fac2_buf, fac2_type); + + xrad= out->xrad; + yrad= out->yrad; + + for(y= -yrad; y<-yrad+out->y; y++) { + for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { + src1fp= compbuf_get_pixel(src1_use, src1_col, color, x, y, xrad, yrad); + src2fp= compbuf_get_pixel(src2_use, src2_col, color, x, y, xrad, yrad); + fac1fp= compbuf_get_pixel(fac1_use, fac1, color, x, y, xrad, yrad); + fac2fp= compbuf_get_pixel(fac2_use, fac2, color, x, y, xrad, yrad); + + func(node, outfp, src1fp, fac1fp, src2fp, fac2fp); + } + } + + if(src1_use!=src1_buf) + free_compbuf(src1_use); + if(src2_use!=src2_buf) + free_compbuf(src2_use); + if(fac1_use!=fac1_buf) + free_compbuf(fac1_use); + if(fac2_use!=fac2_buf) + free_compbuf(fac2_use); +} + + +CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel) +{ + CompBuf *valbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); + float *valf, *rectf; + int tot; + + /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ + valbuf->xof= cbuf->xof; + valbuf->yof= cbuf->yof; + + valf= valbuf->rect; + + /* defaults to returning alpha channel */ + if ((channel < CHAN_R) || (channel > CHAN_A)) channel = CHAN_A; + + rectf= cbuf->rect + channel; + + for(tot= cbuf->x*cbuf->y; tot>0; tot--, valf++, rectf+=4) + *valf= *rectf; + + return valbuf; +} + +static CompBuf *generate_procedural_preview(CompBuf *cbuf, int newx, int newy) +{ + CompBuf *outbuf; + float *outfp; + int xrad, yrad, x, y; + + outbuf= alloc_compbuf(newx, newy, CB_RGBA, 1); + + outfp= outbuf->rect; + xrad= outbuf->xrad; + yrad= outbuf->yrad; + + for(y= -yrad; y<-yrad+outbuf->y; y++) + for(x= -xrad; x<-xrad+outbuf->x; x++, outfp+=outbuf->type) + cbuf->rect_procedural(cbuf, outfp, (float)x/(float)xrad, (float)y/(float)yrad); + + return outbuf; +} + +void generate_preview(void *data, bNode *node, CompBuf *stackbuf) +{ + RenderData *rd= data; + bNodePreview *preview= node->preview; + int xsize, ysize; + int color_manage= rd->color_mgt_flag & R_COLOR_MANAGEMENT; + unsigned char *rect; + + if(preview && stackbuf) { + CompBuf *cbuf, *stackbuf_use; + + if(stackbuf->rect==NULL && stackbuf->rect_procedural==NULL) return; + + stackbuf_use= typecheck_compbuf(stackbuf, CB_RGBA); + + if(stackbuf->x > stackbuf->y) { + xsize= 140; + ysize= (140*stackbuf->y)/stackbuf->x; + } + else { + ysize= 140; + xsize= (140*stackbuf->x)/stackbuf->y; + } + + if(stackbuf_use->rect_procedural) + cbuf= generate_procedural_preview(stackbuf_use, xsize, ysize); + else + cbuf= scalefast_compbuf(stackbuf_use, xsize, ysize); + + /* convert to byte for preview */ + rect= MEM_callocN(sizeof(unsigned char)*4*xsize*ysize, "bNodePreview.rect"); + + if(color_manage) + floatbuf_to_srgb_byte(cbuf->rect, rect, 0, xsize, 0, ysize, xsize); + else + floatbuf_to_byte(cbuf->rect, rect, 0, xsize, 0, ysize, xsize); + + free_compbuf(cbuf); + if(stackbuf_use!=stackbuf) + free_compbuf(stackbuf_use); + + BLI_lock_thread(LOCK_PREVIEW); + + if(preview->rect) + MEM_freeN(preview->rect); + preview->xsize= xsize; + preview->ysize= ysize; + preview->rect= rect; + + BLI_unlock_thread(LOCK_PREVIEW); + } +} + +void do_rgba_to_yuva(bNode *UNUSED(node), float *out, float *in) +{ + rgb_to_yuv(in[0],in[1],in[2], &out[0], &out[1], &out[2]); + out[3]=in[3]; +} + +void do_rgba_to_hsva(bNode *UNUSED(node), float *out, float *in) +{ + rgb_to_hsv(in[0],in[1],in[2], &out[0], &out[1], &out[2]); + out[3]=in[3]; +} + +void do_rgba_to_ycca(bNode *UNUSED(node), float *out, float *in) +{ + rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + out[3]=in[3]; +} + +void do_yuva_to_rgba(bNode *UNUSED(node), float *out, float *in) +{ + yuv_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2]); + out[3]=in[3]; +} + +void do_hsva_to_rgba(bNode *UNUSED(node), float *out, float *in) +{ + hsv_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2]); + out[3]=in[3]; +} + +void do_ycca_to_rgba(bNode *UNUSED(node), float *out, float *in) +{ + ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + out[3]=in[3]; +} + +void do_copy_rgba(bNode *UNUSED(node), float *out, float *in) +{ + QUATCOPY(out, in); +} + +void do_copy_rgb(bNode *UNUSED(node), float *out, float *in) +{ + VECCOPY(out, in); + out[3]= 1.0f; +} + +void do_copy_value(bNode *UNUSED(node), float *out, float *in) +{ + out[0]= in[0]; +} + +void do_copy_a_rgba(bNode *UNUSED(node), float *out, float *in, float *fac) +{ + VECCOPY(out, in); + out[3]= *fac; +} + +/* only accepts RGBA buffers */ +void gamma_correct_compbuf(CompBuf *img, int inversed) +{ + float *drect; + int x; + + if(img->type!=CB_RGBA) return; + + drect= img->rect; + if(inversed) { + for(x=img->x*img->y; x>0; x--, drect+=4) { + if(drect[0]>0.0f) drect[0]= sqrt(drect[0]); else drect[0]= 0.0f; + if(drect[1]>0.0f) drect[1]= sqrt(drect[1]); else drect[1]= 0.0f; + if(drect[2]>0.0f) drect[2]= sqrt(drect[2]); else drect[2]= 0.0f; + } + } + else { + for(x=img->x*img->y; x>0; x--, drect+=4) { + if(drect[0]>0.0f) drect[0]*= drect[0]; else drect[0]= 0.0f; + if(drect[1]>0.0f) drect[1]*= drect[1]; else drect[1]= 0.0f; + if(drect[2]>0.0f) drect[2]*= drect[2]; else drect[2]= 0.0f; + } + } +} + +void premul_compbuf(CompBuf *img, int inversed) +{ + float *drect; + int x; + + if(img->type!=CB_RGBA) return; + + drect= img->rect; + if(inversed) { + for(x=img->x*img->y; x>0; x--, drect+=4) { + if(fabs(drect[3]) < 1e-5f) { + drect[0]= 0.0f; + drect[1]= 0.0f; + drect[2]= 0.0f; + } + else { + drect[0] /= drect[3]; + drect[1] /= drect[3]; + drect[2] /= drect[3]; + } + } + } + else { + for(x=img->x*img->y; x>0; x--, drect+=4) { + drect[0] *= drect[3]; + drect[1] *= drect[3]; + drect[2] *= drect[3]; + } + } +} + + + +/* + * 2D Fast Hartley Transform, used for convolution + */ + +typedef float fREAL; + +// returns next highest power of 2 of x, as well it's log2 in L2 +static unsigned int nextPow2(unsigned int x, unsigned int* L2) +{ + unsigned int pw, x_notpow2 = x & (x-1); + *L2 = 0; + while (x>>=1) ++(*L2); + pw = 1 << (*L2); + if (x_notpow2) { (*L2)++; pw<<=1; } + return pw; +} + +//------------------------------------------------------------------------------ + +// from FXT library by Joerg Arndt, faster in order bitreversal +// use: r = revbin_upd(r, h) where h = N>>1 +static unsigned int revbin_upd(unsigned int r, unsigned int h) +{ + while (!((r^=h)&h)) h >>= 1; + return r; +} +//------------------------------------------------------------------------------ +static void FHT(fREAL* data, unsigned int M, unsigned int inverse) +{ + double tt, fc, dc, fs, ds, a = M_PI; + fREAL t1, t2; + int n2, bd, bl, istep, k, len = 1 << M, n = 1; + + int i, j = 0; + unsigned int Nh = len >> 1; + for (i=1;i<(len-1);++i) { + j = revbin_upd(j, Nh); + if (j>i) { + t1 = data[i]; + data[i] = data[j]; + data[j] = t1; + } + } + + do { + fREAL* data_n = &data[n]; + + istep = n << 1; + for (k=0; k> 1; + if (n>2) { + fc = dc = cos(a); + fs = ds = sqrt(1.0 - fc*fc); //sin(a); + bd = n-2; + for (bl=1; bl1) { + for (k=n2; k log2 of width/height, + nzp -> the row where zero pad data starts, + inverse -> see above */ +static void FHT2D(fREAL *data, unsigned int Mx, unsigned int My, + unsigned int nzp, unsigned int inverse) +{ + unsigned int i, j, Nx, Ny, maxy; + fREAL t; + + Nx = 1 << Mx; + Ny = 1 << My; + + // rows (forward transform skips 0 pad data) + maxy = inverse ? Ny : nzp; + for (j=0; j0; i++) { + #define pred(k) (((k & Nym) << Mx) + (k >> My)) + for (j=pred(i); j>i; j=pred(j)); + if (j < i) continue; + for (k=i, j=pred(i); j!=i; k=j, j=pred(j), stm--) + { t=data[j], data[j]=data[k], data[k]=t; } + #undef pred + stm--; + } + } + // swap Mx/My & Nx/Ny + i = Nx, Nx = Ny, Ny = i; + i = Mx, Mx = My, My = i; + + // now columns == transposed rows + for (j=0; j> 1); j++) { + unsigned int jm = (Ny - j) & (Ny-1); + unsigned int ji = j << Mx; + unsigned int jmi = jm << Mx; + for (i=0; i<=(Nx >> 1); i++) { + unsigned int im = (Nx - i) & (Nx-1); + fREAL A = data[ji + i]; + fREAL B = data[jmi + i]; + fREAL C = data[ji + im]; + fREAL D = data[jmi + im]; + fREAL E = (fREAL)0.5*((A + D) - (B + C)); + data[ji + i] = A - E; + data[jmi + i] = B + E; + data[ji + im] = C + E; + data[jmi + im] = D - E; + } + } + +} + +//------------------------------------------------------------------------------ + +/* 2D convolution calc, d1 *= d2, M/N - > log2 of width/height */ +static void fht_convolve(fREAL* d1, fREAL* d2, unsigned int M, unsigned int N) +{ + fREAL a, b; + unsigned int i, j, k, L, mj, mL; + unsigned int m = 1 << M, n = 1 << N; + unsigned int m2 = 1 << (M-1), n2 = 1 << (N-1); + unsigned int mn2 = m << (N-1); + + d1[0] *= d2[0]; + d1[mn2] *= d2[mn2]; + d1[m2] *= d2[m2]; + d1[m2 + mn2] *= d2[m2 + mn2]; + for (i=1; ix, in1->y, in1->type, 1); + + // convolution result width & height + w2 = 2*in2->x - 1; + h2 = 2*in2->y - 1; + // FFT pow2 required size & log2 + w2 = nextPow2(w2, &log2_w); + h2 = nextPow2(h2, &log2_h); + + // alloc space + data1 = (fREAL*)MEM_callocN(3*w2*h2*sizeof(fREAL), "convolve_fast FHT data1"); + data2 = (fREAL*)MEM_callocN(w2*h2*sizeof(fREAL), "convolve_fast FHT data2"); + + // normalize convolutor + wt[0] = wt[1] = wt[2] = 0.f; + for (y=0; yy; y++) { + colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; + for (x=0; xx; x++) + fRGB_add(wt, colp[x]); + } + if (wt[0] != 0.f) wt[0] = 1.f/wt[0]; + if (wt[1] != 0.f) wt[1] = 1.f/wt[1]; + if (wt[2] != 0.f) wt[2] = 1.f/wt[2]; + for (y=0; yy; y++) { + colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; + for (x=0; xx; x++) + fRGB_colormult(colp[x], wt); + } + + // copy image data, unpacking interleaved RGBA into separate channels + // only need to calc data1 once + + // block add-overlap + hw = in2->x >> 1; + hh = in2->y >> 1; + xbsz = (w2 + 1) - in2->x; + ybsz = (h2 + 1) - in2->y; + nxb = in1->x / xbsz; + if (in1->x % xbsz) nxb++; + nyb = in1->y / ybsz; + if (in1->y % ybsz) nyb++; + for (ybl=0; ybl data1 + for (y=0; yy; y++) { + fp = &data1ch[y*w2]; + colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; + for (x=0; xx; x++) + fp[x] = colp[x][ch]; + } + } + + // in1, channel ch -> data2 + memset(data2, 0, w2*h2*sizeof(fREAL)); + for (y=0; y= in1->y) continue; + fp = &data2[y*w2]; + colp = (fRGB*)&in1->rect[yy*in1->x*in1->type]; + for (x=0; x= in1->x) continue; + fp[x] = colp[xx][ch]; + } + } + + // forward FHT + // zero pad data start is different for each == height+1 + if (!in2done) FHT2D(data1ch, log2_w, log2_h, in2->y+1, 0); + FHT2D(data2, log2_w, log2_h, in2->y+1, 0); + + // FHT2D transposed data, row/col now swapped + // convolve & inverse FHT + fht_convolve(data2, data1ch, log2_h, log2_w); + FHT2D(data2, log2_h, log2_w, 0, 1); + // data again transposed, so in order again + + // overlap-add result + for (y=0; y<(int)h2; y++) { + const int yy = ybl*ybsz + y - hh; + if ((yy < 0) || (yy >= in1->y)) continue; + fp = &data2[y*w2]; + colp = (fRGB*)&rdst->rect[yy*in1->x*in1->type]; + for (x=0; x<(int)w2; x++) { + const int xx = xbl*xbsz + x - hw; + if ((xx < 0) || (xx >= in1->x)) continue; + colp[xx][ch] += fp[x]; + } + } + + } + in2done = 1; + } + } + + MEM_freeN(data2); + MEM_freeN(data1); + memcpy(dst->rect, rdst->rect, sizeof(float)*dst->x*dst->y*dst->type); + free_compbuf(rdst); +} + + +/* + * + * Utility functions qd_* should probably be intergrated better with other functions here. + * + */ +// sets fcol to pixelcolor at (x, y) +void qd_getPixel(CompBuf* src, int x, int y, float* col) +{ + if(src->rect_procedural) { + float bc[4]; + src->rect_procedural(src, bc, (float)x/(float)src->xrad, (float)y/(float)src->yrad); + + switch(src->type){ + /* these fallthrough to get all the channels */ + case CB_RGBA: col[3]=bc[3]; + case CB_VEC3: col[2]=bc[2]; + case CB_VEC2: col[1]=bc[1]; + case CB_VAL: col[0]=bc[0]; + } + } + else if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { + float* bc = &src->rect[(x + y*src->x)*src->type]; + switch(src->type){ + /* these fallthrough to get all the channels */ + case CB_RGBA: col[3]=bc[3]; + case CB_VEC3: col[2]=bc[2]; + case CB_VEC2: col[1]=bc[1]; + case CB_VAL: col[0]=bc[0]; + } + } + else { + switch(src->type){ + /* these fallthrough to get all the channels */ + case CB_RGBA: col[3]=0.0; + case CB_VEC3: col[2]=0.0; + case CB_VEC2: col[1]=0.0; + case CB_VAL: col[0]=0.0; + } + } +} + +// sets pixel (x, y) to color col +void qd_setPixel(CompBuf* src, int x, int y, float* col) +{ + if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { + float* bc = &src->rect[(x + y*src->x)*src->type]; + switch(src->type){ + /* these fallthrough to get all the channels */ + case CB_RGBA: bc[3]=col[3]; + case CB_VEC3: bc[2]=col[2]; + case CB_VEC2: bc[1]=col[1]; + case CB_VAL: bc[0]=col[0]; + } + } +} + +// adds fcol to pixelcolor (x, y) +void qd_addPixel(CompBuf* src, int x, int y, float* col) +{ + if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { + float* bc = &src->rect[(x + y*src->x)*src->type]; + bc[0] += col[0], bc[1] += col[1], bc[2] += col[2]; + } +} + +// multiplies pixel by factor value f +void qd_multPixel(CompBuf* src, int x, int y, float f) +{ + if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { + float* bc = &src->rect[(x + y*src->x)*src->type]; + bc[0] *= f, bc[1] *= f, bc[2] *= f; + } +} + +// bilinear interpolation with wraparound +void qd_getPixelLerpWrap(CompBuf* src, float u, float v, float* col) +{ + const float ufl = floor(u), vfl = floor(v); + const int nx = (int)ufl % src->x, ny = (int)vfl % src->y; + const int x1 = (nx < 0) ? (nx + src->x) : nx; + const int y1 = (ny < 0) ? (ny + src->y) : ny; + const int x2 = (x1 + 1) % src->x, y2 = (y1 + 1) % src->y; + const float* c00 = &src->rect[(x1 + y1*src->x)*src->type]; + const float* c10 = &src->rect[(x2 + y1*src->x)*src->type]; + const float* c01 = &src->rect[(x1 + y2*src->x)*src->type]; + const float* c11 = &src->rect[(x2 + y2*src->x)*src->type]; + const float uf = u - ufl, vf = v - vfl; + const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; + col[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; + if (src->type != CB_VAL) { + col[1] = w00*c00[1] + w10*c10[1] + w01*c01[1] + w11*c11[1]; + col[2] = w00*c00[2] + w10*c10[2] + w01*c01[2] + w11*c11[2]; + col[3] = w00*c00[3] + w10*c10[3] + w01*c01[3] + w11*c11[3]; + } +} + +// as above, without wrap around +void qd_getPixelLerp(CompBuf* src, float u, float v, float* col) +{ + const float ufl = floor(u), vfl = floor(v); + const int x1 = (int)ufl, y1 = (int)vfl; + const int x2 = (int)ceil(u), y2 = (int)ceil(v); + if ((x2 >= 0) && (y2 >= 0) && (x1 < src->x) && (y1 < src->y)) { + const float B[4] = {0,0,0,0}; + const int ox1 = (x1 < 0), oy1 = (y1 < 0), ox2 = (x2 >= src->x), oy2 = (y2 >= src->y); + const float* c00 = (ox1 || oy1) ? B : &src->rect[(x1 + y1*src->x)*src->type]; + const float* c10 = (ox2 || oy1) ? B : &src->rect[(x2 + y1*src->x)*src->type]; + const float* c01 = (ox1 || oy2) ? B : &src->rect[(x1 + y2*src->x)*src->type]; + const float* c11 = (ox2 || oy2) ? B : &src->rect[(x2 + y2*src->x)*src->type]; + const float uf = u - ufl, vf = v - vfl; + const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; + col[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; + if (src->type != CB_VAL) { + col[1] = w00*c00[1] + w10*c10[1] + w01*c01[1] + w11*c11[1]; + col[2] = w00*c00[2] + w10*c10[2] + w01*c01[2] + w11*c11[2]; + col[3] = w00*c00[3] + w10*c10[3] + w01*c01[3] + w11*c11[3]; + } + } + else col[0] = col[1] = col[2] = col[3] = 0.f; +} + +// as above, sampling only one channel +void qd_getPixelLerpChan(CompBuf* src, float u, float v, int chan, float* out) +{ + const float ufl = floor(u), vfl = floor(v); + const int x1 = (int)ufl, y1 = (int)vfl; + const int x2 = (int)ceil(u), y2 = (int)ceil(v); + if (chan >= src->type) chan = 0; + if ((x2 >= 0) && (y2 >= 0) && (x1 < src->x) && (y1 < src->y)) { + const float B[4] = {0,0,0,0}; + const int ox1 = (x1 < 0), oy1 = (y1 < 0), ox2 = (x2 >= src->x), oy2 = (y2 >= src->y); + const float* c00 = (ox1 || oy1) ? B : &src->rect[(x1 + y1*src->x)*src->type + chan]; + const float* c10 = (ox2 || oy1) ? B : &src->rect[(x2 + y1*src->x)*src->type + chan]; + const float* c01 = (ox1 || oy2) ? B : &src->rect[(x1 + y2*src->x)*src->type + chan]; + const float* c11 = (ox2 || oy2) ? B : &src->rect[(x2 + y2*src->x)*src->type + chan]; + const float uf = u - ufl, vf = v - vfl; + const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; + out[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; + } + else *out = 0.f; +} + + +CompBuf* qd_downScaledCopy(CompBuf* src, int scale) +{ + CompBuf* fbuf; + if (scale <= 1) + fbuf = dupalloc_compbuf(src); + else { + int nw = src->x/scale, nh = src->y/scale; + if ((2*(src->x % scale)) > scale) nw++; + if ((2*(src->y % scale)) > scale) nh++; + fbuf = alloc_compbuf(nw, nh, src->type, 1); + { + int x, y, xx, yy, sx, sy, mx, my; + float colsum[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + float fscale = 1.f/(float)(scale*scale); + for (y=0; yrect[y*fbuf->x*fbuf->type]; + yy = y*scale; + my = yy + scale; + if (my > src->y) my = src->y; + for (x=0; x src->x) mx = src->x; + colsum[0] = colsum[1] = colsum[2] = 0.f; + for (sy=yy; syrect[sy*src->x*src->type]; + for (sx=xx; sx 3)) xy = 3; + + // XXX The YVV macro defined below explicitely expects sources of at least 3x3 pixels, + // so just skiping blur along faulty direction if src's def is below that limit! + if (src->x < 3) xy &= ~(int) 1; + if (src->y < 3) xy &= ~(int) 2; + if (xy < 1) return; + + // see "Recursive Gabor Filtering" by Young/VanVliet + // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 + if (sigma >= 3.556) + q = 0.9804*(sigma - 3.556) + 2.5091; + else // sigma >= 0.5 + q = (0.0561*sigma + 0.5784)*sigma - 0.2568; + q2 = q*q; + sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q); + // no gabor filtering here, so no complex multiplies, just the regular coefs. + // all negated here, so as not to have to recalc Triggs/Sdika matrix + cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc; + cf[2] = -q2*(3.38246 + 3.0*q)/sc; + // 0 & 3 unchanged + cf[3] = q2*q/sc; + cf[0] = 1.0 - cf[1] - cf[2] - cf[3]; + + // Triggs/Sdika border corrections, + // it seems to work, not entirely sure if it is actually totally correct, + // Besides J.M.Geusebroek's anigauss.c (see http://www.science.uva.nl/~mark), + // found one other implementation by Cristoph Lampert, + // but neither seem to be quite the same, result seems to be ok sofar anyway. + // Extra scale factor here to not have to do it in filter, + // though maybe this had something to with the precision errors + sc = cf[0]/((1.0 + cf[1] - cf[2] + cf[3])*(1.0 - cf[1] - cf[2] - cf[3])*(1.0 + cf[2] + (cf[1] - cf[3])*cf[3])); + tsM[0] = sc*(-cf[3]*cf[1] + 1.0 - cf[3]*cf[3] - cf[2]); + tsM[1] = sc*((cf[3] + cf[1])*(cf[2] + cf[3]*cf[1])); + tsM[2] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); + tsM[3] = sc*(cf[1] + cf[3]*cf[2]); + tsM[4] = sc*(-(cf[2] - 1.0)*(cf[2] + cf[3]*cf[1])); + tsM[5] = sc*(-(cf[3]*cf[1] + cf[3]*cf[3] + cf[2] - 1.0)*cf[3]); + tsM[6] = sc*(cf[3]*cf[1] + cf[2] + cf[1]*cf[1] - cf[2]*cf[2]); + tsM[7] = sc*(cf[1]*cf[2] + cf[3]*cf[2]*cf[2] - cf[1]*cf[3]*cf[3] - cf[3]*cf[3]*cf[3] - cf[3]*cf[2] + cf[3]); + tsM[8] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); + +#define YVV(L)\ +{\ + W[0] = cf[0]*X[0] + cf[1]*X[0] + cf[2]*X[0] + cf[3]*X[0];\ + W[1] = cf[0]*X[1] + cf[1]*W[0] + cf[2]*X[0] + cf[3]*X[0];\ + W[2] = cf[0]*X[2] + cf[1]*W[1] + cf[2]*W[0] + cf[3]*X[0];\ + for (i=3; i=0; i--)\ + Y[i] = cf[0]*W[i] + cf[1]*Y[i+1] + cf[2]*Y[i+2] + cf[3]*Y[i+3];\ +} + + // intermediate buffers + sz = MAX2(src->x, src->y); + X = MEM_callocN(sz*sizeof(double), "IIR_gauss X buf"); + Y = MEM_callocN(sz*sizeof(double), "IIR_gauss Y buf"); + W = MEM_callocN(sz*sizeof(double), "IIR_gauss W buf"); + if (xy & 1) { // H + for (y=0; yy; ++y) { + const int yx = y*src->x; + for (x=0; xx; ++x) + X[x] = src->rect[(x + yx)*src->type + chan]; + YVV(src->x); + for (x=0; xx; ++x) + src->rect[(x + yx)*src->type + chan] = Y[x]; + } + } + if (xy & 2) { // V + for (x=0; xx; ++x) { + for (y=0; yy; ++y) + X[y] = src->rect[(x + y*src->x)*src->type + chan]; + YVV(src->y); + for (y=0; yy; ++y) + src->rect[(x + y*src->x)*src->type + chan] = Y[y]; + } + } + + MEM_freeN(X); + MEM_freeN(W); + MEM_freeN(Y); +#undef YVV +} + diff --git a/source/blender/nodes/composite/node_composite_util.h b/source/blender/nodes/composite/node_composite_util.h new file mode 100644 index 00000000000..e3158b2a286 --- /dev/null +++ b/source/blender/nodes/composite/node_composite_util.h @@ -0,0 +1,210 @@ +/* + * $Id: CMP_util.h 35562 2011-03-15 20:10:32Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/node_composite_util.h + * \ingroup nodes + */ + + +#ifndef NODE_COMPOSITE_UTIL_H_ +#define NODE_COMPOSITE_UTIL_H_ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_camera_types.h" /* qdn: defocus node, need camera info */ +#include "DNA_color_types.h" +#include "DNA_ID.h" +#include "DNA_image_types.h" +#include "DNA_material_types.h" +#include "DNA_node_types.h" +#include "DNA_object_types.h" +#include "DNA_scene_types.h" +#include "DNA_texture_types.h" + +#include "BLI_math.h" +#include "BLI_blenlib.h" +#include "BLI_rand.h" +#include "BLI_threads.h" +#include "BLI_utildefines.h" +#include "BLI_utildefines.h" + +#include "BKE_blender.h" +#include "BKE_colortools.h" +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_material.h" +#include "BKE_node.h" +#include "BKE_texture.h" + +#include "BKE_library.h" +#include "BKE_object.h" + +#include "node_util.h" + +#include "IMB_imbuf_types.h" +#include "IMB_imbuf.h" + +#include "RE_pipeline.h" +#include "RE_shader_ext.h" +#include "RE_render_ext.h" + +/* *************************** operations support *************************** */ + +/* general signal that's in output sockets, and goes over the wires */ +typedef struct CompBuf { + float *rect; + int x, y, xrad, yrad; + short type, malloc; + rcti disprect; /* cropped part of image */ + int xof, yof; /* relative to center of target image */ + + void (*rect_procedural)(struct CompBuf *, float *, float, float); + float procedural_size[3], procedural_offset[3]; + int procedural_type; + bNode *node; /* only in use for procedural bufs */ + + struct CompBuf *next, *prev; /* for pass-on, works nicer than reference counting */ +} CompBuf; + +/* defines also used for pixel size */ +#define CB_RGBA 4 +#define CB_VEC4 4 +#define CB_VEC3 3 +#define CB_VEC2 2 +#define CB_VAL 1 + +/* defines for RGBA channels */ +#define CHAN_R 0 +#define CHAN_G 1 +#define CHAN_B 2 +#define CHAN_A 3 + + + +CompBuf *alloc_compbuf(int sizex, int sizey, int type, int alloc); +CompBuf *dupalloc_compbuf(CompBuf *cbuf); +CompBuf *pass_on_compbuf(CompBuf *cbuf); +void free_compbuf(CompBuf *cbuf); +void print_compbuf(char *str, CompBuf *cbuf); +void compbuf_set_node(struct CompBuf *cbuf, struct bNode *node); +void node_compo_pass_on(struct bNode *node, struct bNodeStack **nsin, struct bNodeStack **nsout); + +CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, int type); +CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy); +CompBuf *typecheck_compbuf(CompBuf *inbuf, int type); +void typecheck_compbuf_color(float *out, float *in, int outtype, int intype); + +/* **************************************************** */ + +/* Pixel-to-Pixel operation, 1 Image in, 1 out */ +void composit1_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, + void (*func)(bNode *, float *, float *), + int src_type); +/* Pixel-to-Pixel operation, 2 Images in, 1 out */ +void composit2_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, + CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *), + int src_type, int fac_type); + +/* Pixel-to-Pixel operation, 3 Images in, 1 out */ +void composit3_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *src2_buf, float *src2_col, + CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *, float *), + int src1_type, int src2_type, int fac_type); + +/* Pixel-to-Pixel operation, 4 Images in, 1 out */ +void composit4_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *fac1_buf, float *fac1, + CompBuf *src2_buf, float *src2_col, CompBuf *fac2_buf, float *fac2, + void (*func)(bNode *, float *, float *, float *, float *, float *), + int src1_type, int fac1_type, int src2_type, int fac2_type); + +CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel); +void generate_preview(void *data, bNode *node, CompBuf *stackbuf); + +void do_copy_rgba(bNode *node, float *out, float *in); +void do_copy_rgb(bNode *node, float *out, float *in); +void do_copy_value(bNode *node, float *out, float *in); +void do_copy_a_rgba(bNode *node, float *out, float *in, float *fac); + +void do_rgba_to_yuva(bNode *node, float *out, float *in); +void do_rgba_to_hsva(bNode *node, float *out, float *in); +void do_rgba_to_ycca(bNode *node, float *out, float *in); +void do_yuva_to_rgba(bNode *node, float *out, float *in); +void do_hsva_to_rgba(bNode *node, float *out, float *in); +void do_ycca_to_rgba(bNode *node, float *out, float *in); + +void gamma_correct_compbuf(CompBuf *img, int inversed); +void premul_compbuf(CompBuf *img, int inversed); +void convolve(CompBuf* dst, CompBuf* in1, CompBuf* in2); + +extern void node_ID_title_cb(void *node_v, void *unused_v); + + +/* utility functions used by glare, tonemap and lens distortion */ +/* soms macros for color handling */ +typedef float fRGB[4]; +/* clear color */ +#define fRGB_clear(c) { c[0]=c[1]=c[2]=0.f; } +/* copy c2 to c1 */ +#define fRGB_copy(c1, c2) { c1[0]=c2[0]; c1[1]=c2[1]; c1[2]=c2[2]; c1[3]=c2[3]; } +/* add c2 to c1 */ +#define fRGB_add(c1, c2) { c1[0]+=c2[0]; c1[1]+=c2[1]; c1[2]+=c2[2]; } +/* subtract c2 from c1 */ +#define fRGB_sub(c1, c2) { c1[0]-=c2[0]; c1[1]-=c2[1]; c1[2]-=c2[2]; } +/* multiply c by float value s */ +#define fRGB_mult(c, s) { c[0]*=s; c[1]*=s; c[2]*=s; } +/* multiply c2 by s and add to c1 */ +#define fRGB_madd(c1, c2, s) { c1[0]+=c2[0]*s; c1[1]+=c2[1]*s; c1[2]+=c2[2]*s; } +/* multiply c2 by color c1 */ +#define fRGB_colormult(c, cs) { c[0]*=cs[0]; c[1]*=cs[1]; c[2]*=cs[2]; } +/* multiply c2 by color c3 and add to c1 */ +#define fRGB_colormadd(c1, c2, c3) { c1[0]+=c2[0]*c3[0]; c1[1]+=c2[1]*c3[1]; c1[2]+=c2[2]*c3[2]; } +/* multiply c2 by color rgb, rgb as separate arguments */ +#define fRGB_rgbmult(c, r, g, b) { c[0]*=(r); c[1]*=(g); c[2]*=(b); } +/* swap colors c1 & c2 */ +#define fRGB_swap(c1, c2) { float _t=c1[0]; c1[0]=c2[0]; c2[0]=_t;\ + _t=c1[1]; c1[1]=c2[1]; c2[1]=_t;\ + _t=c1[2]; c1[2]=c2[2]; c2[2]=_t;\ + _t=c1[3]; c1[3]=c2[3]; c3[3]=_t;} + +void qd_getPixel(CompBuf* src, int x, int y, float* col); +void qd_setPixel(CompBuf* src, int x, int y, float* col); +void qd_addPixel(CompBuf* src, int x, int y, float* col); +void qd_multPixel(CompBuf* src, int x, int y, float f); +void qd_getPixelLerpWrap(CompBuf* src, float u, float v, float* col); +void qd_getPixelLerp(CompBuf* src, float u, float v, float* col); +void qd_getPixelLerpChan(CompBuf* src, float u, float v, int chan, float* out); +CompBuf* qd_downScaledCopy(CompBuf* src, int scale); +void IIR_gauss(CompBuf* src, float sigma, int chan, int xy); +/* end utility funcs */ + +#endif diff --git a/source/blender/nodes/composite/nodes/node_composite_alphaOver.c b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c new file mode 100644 index 00000000000..400bdd92b6f --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c @@ -0,0 +1,163 @@ +/* + * $Id: CMP_alphaOver.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_alphaOver.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** ALPHAOVER ******************** */ +static bNodeSocketTemplate cmp_node_alphaover_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_alphaover_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_alphaover_premul(bNode *UNUSED(node), float *out, float *src, float *over, float *fac) +{ + + if(over[3]<=0.0f) { + QUATCOPY(out, src); + } + else if(fac[0]==1.0f && over[3]>=1.0f) { + QUATCOPY(out, over); + } + else { + float mul= 1.0f - fac[0]*over[3]; + + out[0]= (mul*src[0]) + fac[0]*over[0]; + out[1]= (mul*src[1]) + fac[0]*over[1]; + out[2]= (mul*src[2]) + fac[0]*over[2]; + out[3]= (mul*src[3]) + fac[0]*over[3]; + } +} + +/* result will be still premul, but the over part is premulled */ +static void do_alphaover_key(bNode *UNUSED(node), float *out, float *src, float *over, float *fac) +{ + + if(over[3]<=0.0f) { + QUATCOPY(out, src); + } + else if(fac[0]==1.0f && over[3]>=1.0f) { + QUATCOPY(out, over); + } + else { + float premul= fac[0]*over[3]; + float mul= 1.0f - premul; + + out[0]= (mul*src[0]) + premul*over[0]; + out[1]= (mul*src[1]) + premul*over[1]; + out[2]= (mul*src[2]) + premul*over[2]; + out[3]= (mul*src[3]) + fac[0]*over[3]; + } +} + +/* result will be still premul, but the over part is premulled */ +static void do_alphaover_mixed(bNode *node, float *out, float *src, float *over, float *fac) +{ + + if(over[3]<=0.0f) { + QUATCOPY(out, src); + } + else if(fac[0]==1.0f && over[3]>=1.0f) { + QUATCOPY(out, over); + } + else { + NodeTwoFloats *ntf= node->storage; + float addfac= 1.0f - ntf->x + over[3]*ntf->x; + float premul= fac[0]*addfac; + float mul= 1.0f - fac[0]*over[3]; + + out[0]= (mul*src[0]) + premul*over[0]; + out[1]= (mul*src[1]) + premul*over[1]; + out[2]= (mul*src[2]) + premul*over[2]; + out[3]= (mul*src[3]) + fac[0]*over[3]; + } +} + + + + +static void node_composit_exec_alphaover(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: col col */ + /* stack order out: col */ + if(out[0]->hasoutput==0) + return; + + /* input no image? then only color operation */ + if(in[1]->data==NULL && in[2]->data==NULL) { + do_alphaover_premul(node, out[0]->vec, in[1]->vec, in[2]->vec, in[0]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[1]->data?in[1]->data:in[2]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + NodeTwoFloats *ntf= node->storage; + + if(ntf->x != 0.0f) + composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_mixed, CB_RGBA, CB_RGBA, CB_VAL); + else if(node->custom1) + composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_key, CB_RGBA, CB_RGBA, CB_VAL); + else + composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_premul, CB_RGBA, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + } +} + +static void node_alphaover_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats"); +} + +void register_node_type_cmp_alphaover(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_ALPHAOVER, "AlphaOver", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_alphaover_in, cmp_node_alphaover_out); + node_type_size(&ntype, 80, 40, 120); + node_type_init(&ntype, node_alphaover_init); + node_type_storage(&ntype, "NodeTwoFloats", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_alphaover); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c new file mode 100644 index 00000000000..e7a9ee12ca1 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c @@ -0,0 +1,271 @@ +/* + * + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Vilem Novak + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_bilateralblur.c + * \ingroup cmpnodes + */ + +#include "node_composite_util.h" + +/* **************** BILATERALBLUR ******************** */ +static bNodeSocketTemplate cmp_node_bilateralblur_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_RGBA, 1, "Determinator", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_bilateralblur_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +#define INIT_C3\ + mean0 = 1; mean1[0] = src[0];mean1[1] = src[1];mean1[2] = src[2];mean1[3] = src[3]; + +/* finds color distances */ +#define COLOR_DISTANCE_C3(c1, c2)\ + ((c1[0] - c2[0])*(c1[0] - c2[0]) + \ + (c1[1] - c2[1])*(c1[1] - c2[1]) + \ + (c1[2] - c2[2])*(c1[2] - c2[2]) + \ + (c1[3] - c2[3])*(c1[3] - c2[3])) + +/* this is the main kernel function for comparing color distances + and adding them weighted to the final color */ +#define KERNEL_ELEMENT_C3(k)\ + temp_color = src + deltas[k];\ + ref_color = ref + deltas[k];\ + w = weight_tab[k] + COLOR_DISTANCE_C3(ref, ref_color )*i2sigma_color;\ + w = 1./(w*w + 1); \ + mean0 += w;\ + mean1[0] += temp_color[0]*w; \ + mean1[1] += temp_color[1]*w; \ + mean1[2] += temp_color[2]*w; \ + mean1[3] += temp_color[3]*w; + +/* write blurred values to image */ +#define UPDATE_OUTPUT_C3\ + mean0 = 1./mean0;\ + dest[x*pix + 0] = mean1[0]*mean0; \ + dest[x*pix + 1] = mean1[1]*mean0; \ + dest[x*pix + 2] = mean1[2]*mean0; \ + dest[x*pix + 3] = mean1[3]*mean0; + +/* initializes deltas for fast access to neighbour pixels */ +#define INIT_3X3_DELTAS( deltas, step, nch ) \ + ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \ + (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \ + (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \ + (deltas)[6] = (step), (deltas)[7] = (step) + (nch)); + + +/* code of this node was heavily inspired by the smooth function of opencv library. +The main change is an optional image input */ +static void node_composit_exec_bilateralblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + NodeBilateralBlurData *nbbd= node->storage; + CompBuf *new, *source, *img= in[0]->data , *refimg= in[1]->data; + double mean0, w, i2sigma_color, i2sigma_space; + double mean1[4]; + double weight_tab[8]; + float *src, *dest, *ref, *temp_color, *ref_color; + float sigma_color, sigma_space; + int imgx, imgy, x, y, pix, i, step; + int deltas[8]; + short found_determinator= 0; + + if(img == NULL || out[0]->hasoutput == 0) + return; + + if(img->type != CB_RGBA) { + img= typecheck_compbuf(in[0]->data, CB_RGBA); + } + + imgx= img->x; + imgy= img->y; + pix= img->type; + step= pix * imgx; + + if(refimg) { + if(refimg->x == imgx && refimg->y == imgy) { + if(ELEM3(refimg->type, CB_VAL, CB_VEC2, CB_VEC3)) { + refimg= typecheck_compbuf(in[1]->data, CB_RGBA); + found_determinator= 1; + } + } + } + else { + refimg= img; + } + + /* allocs */ + source= dupalloc_compbuf(img); + new= alloc_compbuf(imgx, imgy, pix, 1); + + /* accept image offsets from other nodes */ + new->xof= img->xof; + new->yof= img->yof; + + /* bilateral code properties */ + sigma_color= nbbd->sigma_color; + sigma_space= nbbd->sigma_space; + + i2sigma_color= 1. / (sigma_color * sigma_color); + i2sigma_space= 1. / (sigma_space * sigma_space); + + INIT_3X3_DELTAS(deltas, step, pix); + + weight_tab[0] = weight_tab[2] = weight_tab[4] = weight_tab[6] = i2sigma_space; + weight_tab[1] = weight_tab[3] = weight_tab[5] = weight_tab[7] = i2sigma_space * 2; + + /* iterations */ + for(i= 0; i < nbbd->iter; i++) { + src= source->rect; + ref= refimg->rect; + dest= new->rect; + /*goes through image, there are more loops for 1st/last line and all other lines*/ + /*kernel element accumulates surrounding colors, which are then written with the update_output function*/ + for(x= 0; x < imgx; x++, src+= pix, ref+= pix) { + INIT_C3; + + KERNEL_ELEMENT_C3(6); + + if(x > 0) { + KERNEL_ELEMENT_C3(5); + KERNEL_ELEMENT_C3(4); + } + + if(x < imgx - 1) { + KERNEL_ELEMENT_C3(7); + KERNEL_ELEMENT_C3(0); + } + + UPDATE_OUTPUT_C3; + } + + dest+= step; + + for(y= 1; y < imgy - 1; y++, dest+= step, src+= pix, ref+= pix) { + x= 0; + + INIT_C3; + + KERNEL_ELEMENT_C3(0); + KERNEL_ELEMENT_C3(1); + KERNEL_ELEMENT_C3(2); + KERNEL_ELEMENT_C3(6); + KERNEL_ELEMENT_C3(7); + + UPDATE_OUTPUT_C3; + + src+= pix; + ref+= pix; + + for(x= 1; x < imgx - 1; x++, src+= pix, ref+= pix) { + INIT_C3; + + KERNEL_ELEMENT_C3(0); + KERNEL_ELEMENT_C3(1); + KERNEL_ELEMENT_C3(2); + KERNEL_ELEMENT_C3(3); + KERNEL_ELEMENT_C3(4); + KERNEL_ELEMENT_C3(5); + KERNEL_ELEMENT_C3(6); + KERNEL_ELEMENT_C3(7); + + UPDATE_OUTPUT_C3; + } + + INIT_C3; + + KERNEL_ELEMENT_C3(2); + KERNEL_ELEMENT_C3(3); + KERNEL_ELEMENT_C3(4); + KERNEL_ELEMENT_C3(5); + KERNEL_ELEMENT_C3(6); + + UPDATE_OUTPUT_C3; + } + + for(x= 0; x < imgx; x++, src+= pix, ref+= pix) { + INIT_C3; + + KERNEL_ELEMENT_C3(2); + + if(x > 0) { + KERNEL_ELEMENT_C3(3); + KERNEL_ELEMENT_C3(4); + } + if(x < imgx - 1) { + KERNEL_ELEMENT_C3(1); + KERNEL_ELEMENT_C3(0); + } + + UPDATE_OUTPUT_C3; + } + + if(node->exec & NODE_BREAK) break; + + SWAP(CompBuf, *source, *new); + } + + if(img != in[0]->data) + free_compbuf(img); + + if(found_determinator == 1) { + if(refimg != in[1]->data) + free_compbuf(refimg); + } + + out[0]->data= source; + + free_compbuf(new); +} + +static void node_composit_init_bilateralblur(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeBilateralBlurData *nbbd= MEM_callocN(sizeof(NodeBilateralBlurData), "node bilateral blur data"); + node->storage= nbbd; + nbbd->sigma_color= 0.3; + nbbd->sigma_space= 5.0; +} + +void register_node_type_cmp_bilateralblur(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_BILATERALBLUR, "Bilateral Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_bilateralblur_in, cmp_node_bilateralblur_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_bilateralblur); + node_type_storage(&ntype, "NodeBilateralBlurData", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_bilateralblur); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_blur.c b/source/blender/nodes/composite/nodes/node_composite_blur.c new file mode 100644 index 00000000000..7b1a9623845 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_blur.c @@ -0,0 +1,736 @@ +/* + * $Id: CMP_blur.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva, + * Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_blur.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** BLUR ******************** */ +static bNodeSocketTemplate cmp_node_blur_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_blur_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static float *make_gausstab(int filtertype, int rad) +{ + float *gausstab, sum, val; + int i, n; + + n = 2 * rad + 1; + + gausstab = (float *) MEM_mallocN(n * sizeof(float), "gauss"); + + sum = 0.0f; + for (i = -rad; i <= rad; i++) { + val= RE_filter_value(filtertype, (float)i/(float)rad); + sum += val; + gausstab[i+rad] = val; + } + + sum= 1.0f/sum; + for(i=0; istorage; + CompBuf *work; + register float sum, val; + float rval, gval, bval, aval; + float *gausstab, *gausstabcent; + int rad, imgx= img->x, imgy= img->y; + int x, y, pix= img->type; + int i, bigstep; + float *src, *dest; + + /* helper image */ + work= alloc_compbuf(imgx, imgy, img->type, 1); /* allocs */ + + /* horizontal */ + if(nbd->sizex == 0) { + memcpy(work->rect, img->rect, sizeof(float) * img->type * imgx * imgy); + } + else { + rad = scale*(float)nbd->sizex; + if(rad>imgx/2) + rad= imgx/2; + else if(rad<1) + rad= 1; + + gausstab= make_gausstab(nbd->filtertype, rad); + gausstabcent= gausstab+rad; + + for (y = 0; y < imgy; y++) { + float *srcd= img->rect + pix*(y*img->x); + + dest = work->rect + pix*(y * img->x); + + for (x = 0; x < imgx ; x++) { + int minr= x-rad<0?-x:-rad; + int maxr= x+rad>imgx?imgx-x:rad; + + src= srcd + pix*(x+minr); + + sum= gval = rval= bval= aval= 0.0f; + for (i= minr; i < maxr; i++) { + val= gausstabcent[i]; + sum+= val; + rval += val * (*src++); + if(pix==4) { + gval += val * (*src++); + bval += val * (*src++); + aval += val * (*src++); + } + } + sum= 1.0f/sum; + *dest++ = rval*sum; + if(pix==4) { + *dest++ = gval*sum; + *dest++ = bval*sum; + *dest++ = aval*sum; + } + } + if(node->exec & NODE_BREAK) + break; + } + + /* vertical */ + MEM_freeN(gausstab); + } + + if(nbd->sizey == 0) { + memcpy(new->rect, work->rect, sizeof(float) * img->type * imgx * imgy); + } + else { + rad = scale*(float)nbd->sizey; + if(rad>imgy/2) + rad= imgy/2; + else if(rad<1) + rad= 1; + + gausstab= make_gausstab(nbd->filtertype, rad); + gausstabcent= gausstab+rad; + + bigstep = pix*imgx; + for (x = 0; x < imgx; x++) { + float *srcd= work->rect + pix*x; + + dest = new->rect + pix*x; + + for (y = 0; y < imgy ; y++) { + int minr= y-rad<0?-y:-rad; + int maxr= y+rad>imgy?imgy-y:rad; + + src= srcd + bigstep*(y+minr); + + sum= gval = rval= bval= aval= 0.0f; + for (i= minr; i < maxr; i++) { + val= gausstabcent[i]; + sum+= val; + rval += val * src[0]; + if(pix==4) { + gval += val * src[1]; + bval += val * src[2]; + aval += val * src[3]; + } + src += bigstep; + } + sum= 1.0f/sum; + dest[0] = rval*sum; + if(pix==4) { + dest[1] = gval*sum; + dest[2] = bval*sum; + dest[3] = aval*sum; + } + dest+= bigstep; + } + if(node->exec & NODE_BREAK) + break; + } + MEM_freeN(gausstab); + } + + free_compbuf(work); +} + +/* reference has to be mapped 0-1, and equal in size */ +static void bloom_with_reference(CompBuf *new, CompBuf *img, CompBuf *UNUSED(ref), float UNUSED(fac), NodeBlurData *nbd) +{ + CompBuf *wbuf; + register float val; + float radxf, radyf; + float **maintabs; + float *gausstabx, *gausstabcenty; + float *gausstaby, *gausstabcentx; + int radx, rady, imgx= img->x, imgy= img->y; + int x, y; + int i, j; + float *src, *dest, *wb; + + wbuf= alloc_compbuf(imgx, imgy, CB_VAL, 1); + + /* horizontal */ + radx = (float)nbd->sizex; + if(radx>imgx/2) + radx= imgx/2; + else if(radx<1) + radx= 1; + + /* vertical */ + rady = (float)nbd->sizey; + if(rady>imgy/2) + rady= imgy/2; + else if(rady<1) + rady= 1; + + x= MAX2(radx, rady); + maintabs= MEM_mallocN(x*sizeof(void *), "gauss array"); + for(i= 0; irect; + src= img->rect; + + radxf= (float)radx; + radyf= (float)rady; + + for (y = 0; y < imgy; y++) { + for (x = 0; x < imgx ; x++, src+=4) {//, refd++) { + +// int refradx= (int)(refd[0]*radxf); +// int refrady= (int)(refd[0]*radyf); + + int refradx= (int)(radxf*0.3f*src[3]*(src[0]+src[1]+src[2])); + int refrady= (int)(radyf*0.3f*src[3]*(src[0]+src[1]+src[2])); + + if(refradx>radx) refradx= radx; + else if(refradx<1) refradx= 1; + if(refrady>rady) refrady= rady; + else if(refrady<1) refrady= 1; + + if(refradx==1 && refrady==1) { + wb= wbuf->rect + ( y*imgx + x); + dest= new->rect + 4*( y*imgx + x); + wb[0]+= 1.0f; + dest[0] += src[0]; + dest[1] += src[1]; + dest[2] += src[2]; + dest[3] += src[3]; + } + else { + int minxr= x-refradx<0?-x:-refradx; + int maxxr= x+refradx>imgx?imgx-x:refradx; + int minyr= y-refrady<0?-y:-refrady; + int maxyr= y+refrady>imgy?imgy-y:refrady; + + float *destd= new->rect + 4*( (y + minyr)*imgx + x + minxr); + float *wbufd= wbuf->rect + ( (y + minyr)*imgx + x + minxr); + + gausstabx= maintabs[refradx-1]; + gausstabcentx= gausstabx+refradx; + gausstaby= maintabs[refrady-1]; + gausstabcenty= gausstaby+refrady; + + for (i= minyr; i < maxyr; i++, destd+= 4*imgx, wbufd+= imgx) { + dest= destd; + wb= wbufd; + for (j= minxr; j < maxxr; j++, dest+=4, wb++) { + + val= gausstabcenty[i]*gausstabcentx[j]; + wb[0]+= val; + dest[0] += val * src[0]; + dest[1] += val * src[1]; + dest[2] += val * src[2]; + dest[3] += val * src[3]; + } + } + } + } + } + + x= imgx*imgy; + dest= new->rect; + wb= wbuf->rect; + while(x--) { + val= 1.0f/wb[0]; + dest[0]*= val; + dest[1]*= val; + dest[2]*= val; + dest[3]*= val; + wb++; + dest+= 4; + } + + free_compbuf(wbuf); + + x= MAX2(radx, rady); + for(i= 0; i0.33f) { + fj= (fj-0.33f)/0.66f; + if(fi+fj>1.0f) + return 0.0f; + else + return 1.0f; + } + else return 1.0f; +} +#endif + +/* uses full filter, no horizontal/vertical optimize possible */ +/* both images same type, either 1 or 4 channels */ +static void bokeh_single_image(bNode *node, CompBuf *new, CompBuf *img, float fac) +{ + NodeBlurData *nbd= node->storage; + register float val; + float radxf, radyf; + float *gausstab, *dgauss; + int radx, rady, imgx= img->x, imgy= img->y; + int x, y, pix= img->type; + int i, j, n; + float *src= NULL, *dest, *srcd= NULL; + + /* horizontal */ + radxf = fac*(float)nbd->sizex; + if(radxf>imgx/2.0f) + radxf= imgx/2.0f; + else if(radxf<1.0f) + radxf= 1.0f; + + /* vertical */ + radyf = fac*(float)nbd->sizey; + if(radyf>imgy/2.0f) + radyf= imgy/2.0f; + else if(radyf<1.0f) + radyf= 1.0f; + + radx= ceil(radxf); + rady= ceil(radyf); + + n = (2*radx+1)*(2*rady+1); + + /* create a full filter image */ + gausstab= MEM_mallocN(sizeof(float)*n, "filter tab"); + dgauss= gausstab; + val= 0.0f; + for(j=-rady; j<=rady; j++) { + for(i=-radx; i<=radx; i++, dgauss++) { + float fj= (float)j/radyf; + float fi= (float)i/radxf; + float dist= sqrt(fj*fj + fi*fi); + + //*dgauss= hexagon_filter(fi, fj); + *dgauss= RE_filter_value(nbd->filtertype, dist); + + val+= *dgauss; + } + } + + if(val!=0.0f) { + val= 1.0f/val; + for(j= n -1; j>=0; j--) + gausstab[j]*= val; + } + else gausstab[4]= 1.0f; + + for (y = -rady+1; y < imgy+rady-1; y++) { + + if(y<=0) srcd= img->rect; + else if(yrect + pix*(imgy-1)*imgx; + + for (x = -radx+1; x < imgx+radx-1 ; x++) { + int minxr= x-radx<0?-x:-radx; + int maxxr= x+radx>=imgx?imgx-x-1:radx; + int minyr= y-rady<0?-y:-rady; + int maxyr= y+rady>imgy-1?imgy-y-1:rady; + + float *destd= new->rect + pix*( (y + minyr)*imgx + x + minxr); + float *dgausd= gausstab + (minyr+rady)*(2*radx+1) + minxr+radx; + + if(x<=0) src= srcd; + else if(x1) { + dest[1] += val * src[1]; + dest[2] += val * src[2]; + dest[3] += val * src[3]; + } + } + } + } + } + if(node->exec & NODE_BREAK) + break; + } + + MEM_freeN(gausstab); +} + + +/* reference has to be mapped 0-1, and equal in size */ +static void blur_with_reference(bNode *node, CompBuf *new, CompBuf *img, CompBuf *ref) +{ + NodeBlurData *nbd= node->storage; + CompBuf *blurbuf, *ref_use; + register float sum, val; + float rval, gval, bval, aval, radxf, radyf; + float **maintabs; + float *gausstabx, *gausstabcenty; + float *gausstaby, *gausstabcentx; + int radx, rady, imgx= img->x, imgy= img->y; + int x, y, pix= img->type; + int i, j; + float *src, *dest, *refd, *blurd; + + if(ref->x!=img->x && ref->y!=img->y) + return; + + ref_use= typecheck_compbuf(ref, CB_VAL); + + /* trick is; we blur the reference image... but only works with clipped values*/ + blurbuf= alloc_compbuf(imgx, imgy, CB_VAL, 1); + blurd= blurbuf->rect; + refd= ref_use->rect; + for(x= imgx*imgy; x>0; x--, refd++, blurd++) { + if(refd[0]<0.0f) blurd[0]= 0.0f; + else if(refd[0]>1.0f) blurd[0]= 1.0f; + else blurd[0]= refd[0]; + } + + blur_single_image(node, blurbuf, blurbuf, 1.0f); + + /* horizontal */ + radx = (float)nbd->sizex; + if(radx>imgx/2) + radx= imgx/2; + else if(radx<1) + radx= 1; + + /* vertical */ + rady = (float)nbd->sizey; + if(rady>imgy/2) + rady= imgy/2; + else if(rady<1) + rady= 1; + + x= MAX2(radx, rady); + maintabs= MEM_mallocN(x*sizeof(void *), "gauss array"); + for(i= 0; ifiltertype, i+1); + + refd= blurbuf->rect; + dest= new->rect; + radxf= (float)radx; + radyf= (float)rady; + + for (y = 0; y < imgy; y++) { + for (x = 0; x < imgx ; x++, dest+=pix, refd++) { + int refradx= (int)(refd[0]*radxf); + int refrady= (int)(refd[0]*radyf); + + if(refradx>radx) refradx= radx; + else if(refradx<1) refradx= 1; + if(refrady>rady) refrady= rady; + else if(refrady<1) refrady= 1; + + if(refradx==1 && refrady==1) { + src= img->rect + pix*( y*imgx + x); + if(pix==1) + dest[0]= src[0]; + else + QUATCOPY(dest, src); + } + else { + int minxr= x-refradx<0?-x:-refradx; + int maxxr= x+refradx>imgx?imgx-x:refradx; + int minyr= y-refrady<0?-y:-refrady; + int maxyr= y+refrady>imgy?imgy-y:refrady; + + float *srcd= img->rect + pix*( (y + minyr)*imgx + x + minxr); + + gausstabx= maintabs[refradx-1]; + gausstabcentx= gausstabx+refradx; + gausstaby= maintabs[refrady-1]; + gausstabcenty= gausstaby+refrady; + + sum= gval = rval= bval= aval= 0.0f; + + for (i= minyr; i < maxyr; i++, srcd+= pix*imgx) { + src= srcd; + for (j= minxr; j < maxxr; j++, src+=pix) { + + val= gausstabcenty[i]*gausstabcentx[j]; + sum+= val; + rval += val * src[0]; + if(pix>1) { + gval += val * src[1]; + bval += val * src[2]; + aval += val * src[3]; + } + } + } + sum= 1.0f/sum; + dest[0] = rval*sum; + if(pix>1) { + dest[1] = gval*sum; + dest[2] = bval*sum; + dest[3] = aval*sum; + } + } + } + if(node->exec & NODE_BREAK) + break; + } + + free_compbuf(blurbuf); + + x= MAX2(radx, rady); + for(i= 0; idata; + NodeBlurData *nbd= node->storage; + + if(img==NULL) return; + + /* store image in size that is needed for absolute/relative conversions on ui level */ + nbd->image_in_width= img->x; + nbd->image_in_height= img->y; + + if(out[0]->hasoutput==0) return; + + if(nbd->relative) { + if (nbd->aspect==CMP_NODE_BLUR_ASPECT_NONE) { + nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_width); + nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_height); + } + else if (nbd->aspect==CMP_NODE_BLUR_ASPECT_Y) { + nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_width); + nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_width); + } + else if (nbd->aspect==CMP_NODE_BLUR_ASPECT_X) { + nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_height); + nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_height); + } + } + + if (nbd->sizex==0 && nbd->sizey==0) { + new= pass_on_compbuf(img); + out[0]->data= new; + } + else if (nbd->filtertype == R_FILTER_FAST_GAUSS) { + CompBuf *new, *img = in[0]->data; + // TODO: can this be mapped with reference, too? + const float sx = ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = ((float)nbd->sizey*in[1]->vec[0])/2.0f; + int c; + + if ((img==NULL) || (out[0]->hasoutput==0)) return; + + if (img->type == CB_VEC2) + new = typecheck_compbuf(img, CB_VAL); + else if (img->type == CB_VEC3) + new = typecheck_compbuf(img, CB_RGBA); + else + new = dupalloc_compbuf(img); + + if ((sx == sy) && (sx > 0.f)) { + for (c=0; ctype; ++c) + IIR_gauss(new, sx, c, 3); + } + else { + if (sx > 0.f) { + for (c=0; ctype; ++c) + IIR_gauss(new, sx, c, 1); + } + if (sy > 0.f) { + for (c=0; ctype; ++c) + IIR_gauss(new, sy, c, 2); + } + } + out[0]->data = new; + + } else { + /* All non fast gauss blur methods */ + if(img->type==CB_VEC2 || img->type==CB_VEC3) { + img= typecheck_compbuf(in[0]->data, CB_RGBA); + } + + /* if fac input, we do it different */ + if(in[1]->data) { + CompBuf *gammabuf; + + /* make output size of input image */ + new= alloc_compbuf(img->x, img->y, img->type, 1); /* allocs */ + + /* accept image offsets from other nodes */ + new->xof = img->xof; + new->yof = img->yof; + + if(nbd->gamma) { + gammabuf= dupalloc_compbuf(img); + gamma_correct_compbuf(gammabuf, 0); + } + else gammabuf= img; + + blur_with_reference(node, new, gammabuf, in[1]->data); + + if(nbd->gamma) { + gamma_correct_compbuf(new, 1); + free_compbuf(gammabuf); + } + if(node->exec & NODE_BREAK) { + free_compbuf(new); + new= NULL; + } + out[0]->data= new; + } + else { + + if(in[1]->vec[0]<=0.001f) { /* time node inputs can be a tiny value */ + new= pass_on_compbuf(img); + } + else { + CompBuf *gammabuf; + + /* make output size of input image */ + new= alloc_compbuf(img->x, img->y, img->type, 1); /* allocs */ + + /* accept image offsets from other nodes */ + new->xof = img->xof; + new->yof = img->yof; + + if(nbd->gamma) { + gammabuf= dupalloc_compbuf(img); + gamma_correct_compbuf(gammabuf, 0); + } + else gammabuf= img; + + if(nbd->bokeh) + bokeh_single_image(node, new, gammabuf, in[1]->vec[0]); + else if(1) + blur_single_image(node, new, gammabuf, in[1]->vec[0]); + else /* bloom experimental... */ + bloom_with_reference(new, gammabuf, NULL, in[1]->vec[0], nbd); + + if(nbd->gamma) { + gamma_correct_compbuf(new, 1); + free_compbuf(gammabuf); + } + if(node->exec & NODE_BREAK) { + free_compbuf(new); + new= NULL; + } + } + out[0]->data= new; + } + if(img!=in[0]->data) + free_compbuf(img); + } + + generate_preview(data, node, out[0]->data); +} + +static void node_composit_init_blur(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= MEM_callocN(sizeof(NodeBlurData), "node blur data"); +} + +void register_node_type_cmp_blur(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_BLUR, "Blur", NODE_CLASS_OP_FILTER, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_blur_in, cmp_node_blur_out); + node_type_size(&ntype, 120, 80, 200); + node_type_init(&ntype, node_composit_init_blur); + node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_blur); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_brightness.c b/source/blender/nodes/composite/nodes/node_composite_brightness.c new file mode 100644 index 00000000000..1a5cf956a52 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_brightness.c @@ -0,0 +1,110 @@ +/* +* $Id: CMP_brightness.c 36593 2011-05-10 11:19:26Z lukastoenne $ +* +* ***** BEGIN GPL LICENSE BLOCK ***** +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +* The Original Code is Copyright (C) 2006 Blender Foundation. +* All rights reserved. +* +* The Original Code is: all of this file. +* +* Contributor(s): none yet. +* +* ***** END GPL LICENSE BLOCK ***** + +*/ + +/** \file blender/nodes/composite/nodes/node_composite_brightness.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Brigh and contrsast ******************** */ + +static bNodeSocketTemplate cmp_node_brightcontrast_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Bright", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Contrast", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_brightcontrast_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_brightnesscontrast(bNode *UNUSED(node), float *out, float *in, float *in_brightness, float *in_contrast) +{ + float i; + int c; + float a, b, v; + float brightness = (*in_brightness) / 100.0f; + float contrast = *in_contrast; + float delta = contrast / 200.0f; + a = 1.0f - delta * 2.0f; + /* + * The algorithm is by Werner D. Streidt + * (http://visca.com/ffactory/archives/5-99/msg00021.html) + * Extracted of OpenCV demhist.c + */ + if( contrast > 0 ) +{ + a = 1.0f / a; + b = a * (brightness - delta); + } + else + { + delta *= -1; + b = a * (brightness + delta); + } + + for(c=0; c<3; c++){ + i = in[c]; + v = a*i + b; + out[c] = v; + } +} + +static void node_composit_exec_brightcontrast(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(out[0]->hasoutput==0) + return; + + if(in[0]->data) { + CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + stackbuf= dupalloc_compbuf(cbuf); + composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, do_brightnesscontrast, CB_RGBA, CB_VAL, CB_VAL); + out[0]->data = stackbuf; + if(cbuf != in[0]->data) + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_brightcontrast(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_BRIGHTCONTRAST, "Bright/Contrast", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_brightcontrast_in, cmp_node_brightcontrast_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_brightcontrast); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c new file mode 100644 index 00000000000..afdbe82aebc --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c @@ -0,0 +1,217 @@ +/* + * $Id: CMP_channelMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_channelMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* ******************* Channel Matte Node ********************************* */ +static bNodeSocketTemplate cmp_node_channel_matte_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_channel_matte_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +static void do_normalized_rgba_to_ycca2(bNode *UNUSED(node), float *out, float *in) +{ + /*normalize to the range 0.0 to 1.0) */ + rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + out[0]=(out[0])/255.0; + out[1]=(out[1])/255.0; + out[2]=(out[2])/255.0; + out[3]=in[3]; +} + +static void do_normalized_ycca_to_rgba2(bNode *UNUSED(node), float *out, float *in) +{ + /*un-normalize the normalize from above */ + in[0]=in[0]*255.0; + in[1]=in[1]*255.0; + in[2]=in[2]*255.0; + ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + out[3]=in[3]; +} + + +static void do_channel_matte(bNode *node, float *out, float *in) +{ + NodeChroma *c=(NodeChroma *)node->storage; + float alpha=0.0; + + switch(c->algorithm) { + case 0: { /* Alpha=key_channel-limit channel */ + int key_channel=node->custom2-1; + int limit_channel=c->channel-1; + alpha=in[key_channel]-in[limit_channel]; + break; + } + case 1: { /* Alpha=G-MAX(R, B) */ + switch(node->custom2) { + case 1: { + alpha=in[0]-MAX2(in[1],in[2]); + break; + } + case 2: { + alpha=in[1]-MAX2(in[0],in[2]); + break; + } + case 3: { + alpha=in[2]-MAX2(in[0],in[1]); + break; + } + default: + break; + } + break; + } + default: + break; + } + + /*flip because 0.0 is transparent, not 1.0*/ + alpha=1-alpha; + + /* test range*/ + if(alpha>c->t1) { + alpha=in[3]; /*whatever it was prior */ + } + else if(alphat2){ + alpha=0.0; + } + else {/*blend */ + alpha=(alpha-c->t2)/(c->t1-c->t2); + } + + + /* don't make something that was more transparent less transparent */ + if (alphahasinput==0) return; + if(in[0]->data==NULL) return; + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + + cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); + + outbuf=dupalloc_compbuf(cbuf); + + /*convert to colorspace*/ + switch(node->custom1) { + case CMP_NODE_CHANNEL_MATTE_CS_RGB: + break; + case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ + composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_hsva, CB_RGBA); + break; + case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/ + composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_yuva, CB_RGBA); + break; + case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/ + composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_normalized_rgba_to_ycca2, CB_RGBA); + break; + default: + break; + } + + /*use the selected channel information to do the key */ + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_channel_matte, CB_RGBA); + + /*convert back to RGB colorspace in place*/ + switch(node->custom1) { + case CMP_NODE_CHANNEL_MATTE_CS_RGB: /*RGB*/ + break; + case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_hsva_to_rgba, CB_RGBA); + break; + case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/ + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_yuva_to_rgba, CB_RGBA); + break; + case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/ + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_normalized_ycca_to_rgba2, CB_RGBA); + break; + default: + break; + } + + generate_preview(data, node, outbuf); + out[0]->data=outbuf; + if(out[1]->hasoutput) + out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + +} + +static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); + node->storage=c; + c->t1= 1.0f; + c->t2= 0.0f; + c->t3= 0.0f; + c->fsize= 0.0f; + c->fstrength= 0.0f; + c->algorithm=1; /*max channel limiting */ + c->channel=1; /* limit by red */ + node->custom1= 1; /* RGB channel */ + node->custom2= 2; /* Green Channel */ +} + +void register_node_type_cmp_channel_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_CHANNEL_MATTE, "Channel Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_channel_matte_in, cmp_node_channel_matte_out); + node_type_size(&ntype, 200, 80, 250); + node_type_init(&ntype, node_composit_init_channel_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_channel_matte); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c new file mode 100644 index 00000000000..db5e6d93856 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c @@ -0,0 +1,207 @@ +/* + * $Id: CMP_chromaMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_chromaMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* ******************* Chroma Key ********************************************************** */ +static bNodeSocketTemplate cmp_node_chroma_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_chroma_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +static void do_rgba_to_ycca_normalized(bNode *UNUSED(node), float *out, float *in) +{ + rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + + //normalize to 0..1.0 + out[0]=out[0]/255.0; + out[1]=out[1]/255.0; + out[2]=out[2]/255.0; + + //rescale to -1.0..1.0 + out[0]=(out[0]*2.0)-1.0; + out[1]=(out[1]*2.0)-1.0; + out[2]=(out[2]*2.0)-1.0; + +// out[0]=((out[0])-16)/255.0; +// out[1]=((out[1])-128)/255.0; +// out[2]=((out[2])-128)/255.0; + out[3]=in[3]; +} + +static void do_ycca_to_rgba_normalized(bNode *UNUSED(node), float *out, float *in) +{ + /*un-normalize the normalize from above */ + in[0]=(in[0]+1.0)/2.0; + in[1]=(in[1]+1.0)/2.0; + in[2]=(in[2]+1.0)/2.0; + + in[0]=(in[0]*255.0); + in[1]=(in[1]*255.0); + in[2]=(in[2]*255.0); + + // in[0]=(in[0]*255.0)+16; +// in[1]=(in[1]*255.0)+128; +// in[2]=(in[2]*255.0)+128; + ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); + out[3]=in[3]; +} + +static void do_chroma_key(bNode *node, float *out, float *in) +{ + NodeChroma *c; + float x, z, alpha; + float theta, beta, angle, angle2; + float kfg; + + c=node->storage; + + /* Algorithm from book "Video Demistified," does not include the spill reduction part */ + + /* find theta, the angle that the color space should be rotated based on key*/ + theta=atan2(c->key[2], c->key[1]); + + /*rotate the cb and cr into x/z space */ + x=in[1]*cos(theta)+in[2]*sin(theta); + z=in[2]*cos(theta)-in[1]*sin(theta); + + /*if within the acceptance angle */ + angle=c->t1*M_PI/180.0; /* convert to radians */ + + /* if kfg is <0 then the pixel is outside of the key color */ + kfg=x-(fabs(z)/tan(angle/2.0)); + + out[0]=in[0]; + out[1]=in[1]; + out[2]=in[2]; + + if(kfg>0.0) { /* found a pixel that is within key color */ + alpha=(1.0-kfg)*(c->fstrength); + + beta=atan2(z,x); + angle2=c->t2*M_PI/180.0; + + /* if beta is within the cutoff angle */ + if(fabs(beta)<(angle2/2.0)) { + alpha=0.0; + } + + /* don't make something that was more transparent less transparent */ + if (alphahasinput==0) return; + if(in[0]->data==NULL) return; + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + + cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + + chromabuf= dupalloc_compbuf(cbuf); + + c=node->storage; + + /*convert rgbbuf to normalized chroma space*/ + composit1_pixel_processor(node, chromabuf, cbuf, in[0]->vec, do_rgba_to_ycca_normalized, CB_RGBA); + /*convert key to normalized chroma color space */ + do_rgba_to_ycca_normalized(node, c->key, in[1]->vec); + + /*per pixel chroma key*/ + composit1_pixel_processor(node, chromabuf, chromabuf, in[0]->vec, do_chroma_key, CB_RGBA); + + /*convert back*/ + composit1_pixel_processor(node, chromabuf, chromabuf, in[0]->vec, do_ycca_to_rgba_normalized, CB_RGBA); + + out[0]->data= chromabuf; + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(chromabuf, CHAN_A); + + generate_preview(data, node, chromabuf); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); +} + + +static void node_composit_init_chroma_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); + node->storage= c; + c->t1= 30.0f; + c->t2= 10.0f; + c->t3= 0.0f; + c->fsize= 0.0f; + c->fstrength= 1.0f; +} + +void register_node_type_cmp_chroma_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_CHROMA_MATTE, "Chroma Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_chroma_in, cmp_node_chroma_out); + node_type_size(&ntype, 200, 80, 300); + node_type_init(&ntype, node_composit_init_chroma_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_chroma_matte); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_colorMatte.c b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c new file mode 100644 index 00000000000..7f687240daf --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c @@ -0,0 +1,143 @@ +/* + * $Id: CMP_colorMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_colorMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* ******************* Color Key ********************************************************** */ +static bNodeSocketTemplate cmp_node_color_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_color_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +static void do_color_key(bNode *node, float *out, float *in) +{ + float h_wrap; + NodeChroma *c; + c=node->storage; + + + VECCOPY(out, in); + + if( + /* do hue last because it needs to wrap, and does some more checks */ + + /* sat */ (fabs(in[1]-c->key[1]) < c->t2) && + /* val */ (fabs(in[2]-c->key[2]) < c->t3) && + + /* multiply by 2 because it wraps on both sides of the hue, + * otherwise 0.5 would key all hue's */ + + /* hue */ ((h_wrap= 2.0f * fabs(in[0]-c->key[0])) < c->t1 || (2.0f - h_wrap) < c->t1) + ) { + out[3]=0.0; /*make transparent*/ + } + + else { /*pixel is outside key color */ + out[3]=in[3]; /* make pixel just as transparent as it was before */ + } +} + +static void node_composit_exec_color_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *cbuf; + CompBuf *colorbuf; + NodeChroma *c; + + if(in[0]->hasinput==0) return; + if(in[0]->data==NULL) return; + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + + cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + + colorbuf= dupalloc_compbuf(cbuf); + + c=node->storage; + + /*convert rgbbuf to hsv*/ + composit1_pixel_processor(node, colorbuf, cbuf, in[0]->vec, do_rgba_to_hsva, CB_RGBA); + + /*convert key to hsv*/ + do_rgba_to_hsva(node, c->key, in[1]->vec); + + + /*per pixel color key*/ + composit1_pixel_processor(node, colorbuf, colorbuf, in[0]->vec, do_color_key, CB_RGBA); + + /*convert back*/ + composit1_pixel_processor(node, colorbuf, colorbuf, in[0]->vec, do_hsva_to_rgba, CB_RGBA); + + out[0]->data= colorbuf; + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(colorbuf, CHAN_A); + + generate_preview(data, node, colorbuf); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); +} + +static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node color"); + node->storage= c; + c->t1= 0.01f; + c->t2= 0.1f; + c->t3= 0.1f; + c->fsize= 0.0f; + c->fstrength= 1.0f; +} + +void register_node_type_cmp_color_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COLOR_MATTE, "Color Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_color_in, cmp_node_color_out); + node_type_size(&ntype, 200, 80, 300); + node_type_init(&ntype, node_composit_init_color_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_color_matte); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c new file mode 100644 index 00000000000..18b6d806c82 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c @@ -0,0 +1,341 @@ +/* + * $Id: CMP_colorSpill.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb, Xavier Thomas + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_colorSpill.c + * \ingroup cmpnodes + */ + + + +#include "node_composite_util.h" + +#define avg(a,b) ((a+b)/2) + +/* ******************* Color Spill Supression ********************************* */ +static bNodeSocketTemplate cmp_node_color_spill_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_color_spill_out[]={ + {SOCK_RGBA,0,"Image"}, + {-1,0,""} +}; + +static void do_simple_spillmap_red(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[0]-( ncs->limscale * in[ncs->limchan] ); +} + +static void do_simple_spillmap_red_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[0]-( ncs->limscale * in[ncs->limchan])); +} + +static void do_simple_spillmap_green(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[1]-( ncs->limscale * in[ncs->limchan] ); +} + +static void do_simple_spillmap_green_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[1]-( ncs->limscale * in[ncs->limchan])); +} + +static void do_simple_spillmap_blue(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[2]-( ncs->limscale * in[ncs->limchan] ); +} + +static void do_simple_spillmap_blue_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[2]-( ncs->limscale * in[ncs->limchan])); +} + +static void do_average_spillmap_red(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[0]-(ncs->limscale * avg(in[1], in[2]) ); +} + +static void do_average_spillmap_red_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[0]-(ncs->limscale * avg(in[1], in[2]) )); +} + +static void do_average_spillmap_green(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[1]-(ncs->limscale * avg(in[0], in[2]) ); +} + +static void do_average_spillmap_green_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[0]-(ncs->limscale * avg(in[0], in[2]) )); +} + +static void do_average_spillmap_blue(bNode *node, float* out, float *in) +{ + NodeColorspill *ncs; + ncs=node->storage; + out[0]=in[2]-(ncs->limscale * avg(in[0], in[1]) ); +} + +static void do_average_spillmap_blue_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorspill *ncs; + ncs=node->storage; + + out[0] = *fac * (in[0]-(ncs->limscale * avg(in[0], in[1]) )); +} + +static void do_apply_spillmap_red(bNode *node, float* out, float *in, float *map) +{ + NodeColorspill *ncs; + ncs=node->storage; + if(map[0]>0) { + out[0]=in[0]-(ncs->uspillr*map[0]); + out[1]=in[1]+(ncs->uspillg*map[0]); + out[2]=in[2]+(ncs->uspillb*map[0]); + } + else { + out[0]=in[0]; + out[1]=in[1]; + out[2]=in[2]; + } +} + +static void do_apply_spillmap_green(bNode *node, float* out, float *in, float *map) +{ + NodeColorspill *ncs; + ncs=node->storage; + if(map[0]>0) { + out[0]=in[0]+(ncs->uspillr*map[0]); + out[1]=in[1]-(ncs->uspillg*map[0]); + out[2]=in[2]+(ncs->uspillb*map[0]); + } + else { + out[0]=in[0]; + out[1]=in[1]; + out[2]=in[2]; + } +} + +static void do_apply_spillmap_blue(bNode *node, float* out, float *in, float *map) +{ + NodeColorspill *ncs; + ncs=node->storage; + if(map[0]>0) { + out[0]=in[0]+(ncs->uspillr*map[0]); + out[1]=in[1]+(ncs->uspillg*map[0]); + out[2]=in[2]-(ncs->uspillb*map[0]); + } + else { + out[0]=in[0]; + out[1]=in[1]; + out[2]=in[2]; + } +} + +static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* Originally based on the information from the book "The Art and Science of Digital Composition" and + * discussions from vfxtalk.com .*/ + CompBuf *cbuf; + CompBuf *mask; + CompBuf *rgbbuf; + CompBuf *spillmap; + NodeColorspill *ncs; + ncs=node->storage; + + /* early out for missing connections */ + if(out[0]->hasoutput==0 ) return; + if(in[0]->hasinput==0) return; + if(in[0]->data==NULL) return; + + cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); + mask=typecheck_compbuf(in[1]->data, CB_VAL); + spillmap=alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); + rgbbuf=dupalloc_compbuf(cbuf); + + switch(node->custom1) + { + case 1: /*red spill*/ + { + switch(node->custom2) + { + case 0: /* simple limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_red, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_red_fac, CB_RGBA, CB_VAL); + } + break; + } + case 1: /* average limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_red, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_red_fac, CB_RGBA, CB_VAL); + } + break; + } + } + if(ncs->unspill==0) { + ncs->uspillr=1.0f; + ncs->uspillg=0.0f; + ncs->uspillb=0.0f; + } + composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_red, CB_RGBA, CB_VAL); + break; + } + case 2: /*green spill*/ + { + switch(node->custom2) + { + case 0: /* simple limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_green, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_green_fac, CB_RGBA, CB_VAL); + } + break; + } + case 1: /* average limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_green, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_green_fac, CB_RGBA, CB_VAL); + } + break; + } + } + if(ncs->unspill==0) { + ncs->uspillr=0.0f; + ncs->uspillg=1.0f; + ncs->uspillb=0.0f; + } + composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_green, CB_RGBA, CB_VAL); + break; + } + case 3: /*blue spill*/ + { + switch(node->custom2) + { + case 0: /* simple limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_blue, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_blue_fac, CB_RGBA, CB_VAL); + } + break; + } + case 1: /* average limit */ + { + if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_blue, CB_RGBA); + } else { + composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_blue_fac, CB_RGBA, CB_VAL); + } + break; + } + } + if(ncs->unspill==0) { + ncs->uspillr=0.0f; + ncs->uspillg=0.0f; + ncs->uspillb=1.0f; + } + composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_blue, CB_RGBA, CB_VAL); + break; + } + default: + break; + } + + out[0]->data=rgbbuf; + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + + free_compbuf(spillmap); +} + +static void node_composit_init_color_spill(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeColorspill *ncs= MEM_callocN(sizeof(NodeColorspill), "node colorspill"); + node->storage=ncs; + node->custom1= 2; /* green channel */ + node->custom2= 0; /* simple limit algo*/ + ncs->limchan= 0; /* limit by red */ + ncs->limscale= 1.0f; /* limit scaling factor */ + ncs->unspill=0; /* do not use unspill */ +} + +void register_node_type_cmp_color_spill(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COLOR_SPILL, "Color Spill", NODE_CLASS_MATTE, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_color_spill_in, cmp_node_color_spill_out); + node_type_size(&ntype, 140, 80, 200); + node_type_init(&ntype, node_composit_init_color_spill); + node_type_storage(&ntype, "NodeColorspill", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_color_spill); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_colorbalance.c b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c new file mode 100644 index 00000000000..7ebceb5c206 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c @@ -0,0 +1,201 @@ +/* + * + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Matt Ebb. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_colorbalance.c + * \ingroup cmpnodes + */ + + + +#include "node_composite_util.h" + + +/* ******************* Color Balance ********************************* */ +static bNodeSocketTemplate cmp_node_colorbalance_in[]={ + {SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_colorbalance_out[]={ + {SOCK_RGBA,0,"Image"}, + {-1,0,""} +}; + +/* this function implements ASC-CDL according to the spec at http://www.asctech.org/ + Slope + S = in * slope + Offset + O = S + offset + = (in * slope) + offset + Power + out = Clamp(O) ^ power + = Clamp((in * slope) + offset) ^ power + */ +DO_INLINE float colorbalance_cdl(float in, float offset, float power, float slope) +{ + float x = in * slope + offset; + + /* prevent NaN */ + CLAMP(x, 0.0, 1.0); + + return powf(x, power); +} + +/* note: lift_lgg is just 2-lift, gamma_inv is 1.0/gamma */ +DO_INLINE float colorbalance_lgg(float in, float lift_lgg, float gamma_inv, float gain) +{ + /* 1:1 match with the sequencer with linear/srgb conversions, the conversion isnt pretty + * but best keep it this way, sice testing for durian shows a similar calculation + * without lin/srgb conversions gives bad results (over-saturated shadows) with colors + * slightly below 1.0. some correction can be done but it ends up looking bad for shadows or lighter tones - campbell */ + float x= (((linearrgb_to_srgb(in) - 1.0f) * lift_lgg) + 1.0f) * gain; + + /* prevent NaN */ + if (x < 0.f) x = 0.f; + + return powf(srgb_to_linearrgb(x), gamma_inv); +} + +static void do_colorbalance_cdl(bNode *node, float* out, float *in) +{ + NodeColorBalance *n= (NodeColorBalance *)node->storage; + + out[0] = colorbalance_cdl(in[0], n->lift[0], n->gamma[0], n->gain[0]); + out[1] = colorbalance_cdl(in[1], n->lift[1], n->gamma[1], n->gain[1]); + out[2] = colorbalance_cdl(in[2], n->lift[2], n->gamma[2], n->gain[2]); + out[3] = in[3]; +} + +static void do_colorbalance_cdl_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorBalance *n= (NodeColorBalance *)node->storage; + const float mfac= 1.0f - *fac; + + out[0] = mfac*in[0] + *fac * colorbalance_cdl(in[0], n->lift[0], n->gamma[0], n->gain[0]); + out[1] = mfac*in[1] + *fac * colorbalance_cdl(in[1], n->lift[1], n->gamma[1], n->gain[1]); + out[2] = mfac*in[2] + *fac * colorbalance_cdl(in[2], n->lift[2], n->gamma[2], n->gain[2]); + out[3] = in[3]; +} + +static void do_colorbalance_lgg(bNode *node, float* out, float *in) +{ + NodeColorBalance *n= (NodeColorBalance *)node->storage; + + out[0] = colorbalance_lgg(in[0], n->lift_lgg[0], n->gamma_inv[0], n->gain[0]); + out[1] = colorbalance_lgg(in[1], n->lift_lgg[1], n->gamma_inv[1], n->gain[1]); + out[2] = colorbalance_lgg(in[2], n->lift_lgg[2], n->gamma_inv[2], n->gain[2]); + out[3] = in[3]; +} + +static void do_colorbalance_lgg_fac(bNode *node, float* out, float *in, float *fac) +{ + NodeColorBalance *n= (NodeColorBalance *)node->storage; + const float mfac= 1.0f - *fac; + + out[0] = mfac*in[0] + *fac * colorbalance_lgg(in[0], n->lift_lgg[0], n->gamma_inv[0], n->gain[0]); + out[1] = mfac*in[1] + *fac * colorbalance_lgg(in[1], n->lift_lgg[1], n->gamma_inv[1], n->gain[1]); + out[2] = mfac*in[2] + *fac * colorbalance_lgg(in[2], n->lift_lgg[2], n->gamma_inv[2], n->gain[2]); + out[3] = in[3]; +} + +static void node_composit_exec_colorbalance(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *cbuf= in[1]->data; + CompBuf *stackbuf; + + /* stack order input: fac, image */ + /* stack order output: image */ + if(out[0]->hasoutput==0) return; + + if(in[0]->vec[0] == 0.f && in[0]->data == NULL) { + out[0]->data = pass_on_compbuf(cbuf); + return; + } + + { + NodeColorBalance *n= (NodeColorBalance *)node->storage; + int c; + + for (c = 0; c < 3; c++) { + n->lift_lgg[c] = 2.0f - n->lift[c]; + n->gamma_inv[c] = (n->gamma[c] != 0.0f) ? 1.0f/n->gamma[c] : 1000000.0f; + } + } + + if (cbuf) { + stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* create output based on image input */ + + if (node->custom1 == 0) { + /* lift gamma gain */ + if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_colorbalance_lgg, CB_RGBA); + } + else { + composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_colorbalance_lgg_fac, CB_RGBA, CB_VAL); + } + } else { + /* offset/power/slope : ASC-CDL */ + if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) { + composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_colorbalance_cdl, CB_RGBA); + } + else { + composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_colorbalance_cdl_fac, CB_RGBA, CB_VAL); + } + + } + + out[0]->data=stackbuf; + } +} + +static void node_composit_init_colorbalance(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeColorBalance *n= node->storage= MEM_callocN(sizeof(NodeColorBalance), "node colorbalance"); + + n->lift[0] = n->lift[1] = n->lift[2] = 1.0f; + n->gamma[0] = n->gamma[1] = n->gamma[2] = 1.0f; + n->gain[0] = n->gain[1] = n->gain[2] = 1.0f; +} + +void register_node_type_cmp_colorbalance(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COLORBALANCE, "Color Balance", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_colorbalance_in, cmp_node_colorbalance_out); + node_type_size(&ntype, 400, 200, 400); + node_type_init(&ntype, node_composit_init_colorbalance); + node_type_storage(&ntype, "NodeColorBalance", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_colorbalance); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_common.c b/source/blender/nodes/composite/nodes/node_composite_common.c new file mode 100644 index 00000000000..ab8cf663ef2 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_common.c @@ -0,0 +1,373 @@ +/* + * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva, + * Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_common.c + * \ingroup cmpnodes + */ + + +#include "DNA_node_types.h" + +#include "BKE_node.h" + +#include "node_composite_util.h" +#include "node_common.h" +#include "node_exec.h" + +#if 0 +static void PRINT_BUFFERS(bNodeTreeExec *exec) +{ + bNodeTree *ntree= exec->nodetree; + bNode *node; + bNodeSocket *sock; + bNodeStack *ns; + int i; + + printf("-------------- DEBUG --------------\n"); + for (sock=ntree->inputs.first, i=0; sock; sock=sock->next, ++i) { + ns = node_get_socket_stack(exec->stack, sock); + printf("%d. Tree Input %s", i, sock->name); + if (ns->external) + printf(" (external)"); + printf(": data=%p\n", ns->data); + } + for (sock=ntree->outputs.first, i=0; sock; sock=sock->next, ++i) { + ns = node_get_socket_stack(exec->stack, sock); + printf("%d. Tree Output %s", i, sock->name); + if (ns->external) + printf(" (external)"); + printf(": data=%p\n", ns->data); + } + for (node=ntree->nodes.first; node; node=node->next) { + printf("Node %s:\n", node->name); + for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) { + ns = node_get_socket_stack(exec->stack, sock); + printf("\t%d. Input %s", i, sock->name); + if (ns->external) + printf(" (external)"); + printf(": data=%p\n", ns->data); + } + for (sock=node->outputs.first, i=0; sock; sock=sock->next, ++i) { + ns = node_get_socket_stack(exec->stack, sock); + printf("\t%d. Output %s", i, sock->name); + if (ns->external) + printf(" (external)"); + printf(": data=%p\n", ns->data); + } + } +} +#endif + +static void copy_stack(bNodeStack *to, bNodeStack *from) +{ + if (to != from) { + copy_v4_v4(to->vec, from->vec); + to->data = from->data; + to->datatype = from->datatype; + + /* tag as copy to prevent freeing */ + to->is_copy = 1; + } +} + +static void move_stack(bNodeStack *to, bNodeStack *from) +{ + if (to != from) { + copy_v4_v4(to->vec, from->vec); + to->data = from->data; + to->datatype = from->datatype; + to->is_copy = from->is_copy; + + zero_v4(from->vec); + from->data = NULL; + from->datatype = 0; + from->is_copy = 0; + } +} + +/**** GROUP ****/ + +static void *group_initexec(bNode *node) +{ + bNodeTree *ngroup= (bNodeTree*)node->id; + bNodeTreeExec *exec; + bNodeSocket *sock; + bNodeStack *ns; + + /* initialize the internal node tree execution */ + exec = ntreeCompositBeginExecTree(ngroup); + + /* tag group outputs as external to prevent freeing */ + for (sock=ngroup->outputs.first; sock; sock=sock->next) { + if (!(sock->flag & SOCK_INTERNAL)) { + ns = node_get_socket_stack(exec->stack, sock); + ns->external = 1; + } + } + + return exec; +} + +static void group_freeexec(bNode *UNUSED(node), void *nodedata) +{ + bNodeTreeExec *gexec= (bNodeTreeExec*)nodedata; + + ntreeCompositEndExecTree(gexec); +} + +/* Copy inputs to the internal stack. + * This is a shallow copy, no buffers are duplicated here! + */ +static void group_copy_inputs(bNode *node, bNodeStack **in, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->inputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + copy_stack(ns, in[a]); + } + } +} + +/* Copy internal results to the external outputs. + */ +static void group_move_outputs(bNode *node, bNodeStack **out, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->outputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + move_stack(out[a], ns); + } + } +} + +/* Free internal buffers */ +static void group_free_internal(bNodeTreeExec *gexec) { + bNodeStack *ns; + int i; + + for (i=0, ns=gexec->stack; i < gexec->stacksize; ++i, ++ns) { + if (!ns->external && !ns->is_copy) { + if (ns->data) { + free_compbuf(ns->data); + ns->data = NULL; + } + } + } +} + +static void group_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + group_copy_inputs(node, in, exec->stack); + ntreeExecNodes(exec, data, thread); + group_free_internal(exec); + group_move_outputs(node, out, exec->stack); +} + +void register_node_type_cmp_group(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_group_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_group_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, group_execute); + + nodeRegisterType(lb, &ntype); +} + + +/**** FOR LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +/* Move the results from the previous iteration back to the input sockets. */ +static void loop_iteration_reset(bNodeTree *ngroup, bNodeStack *gstack) +{ + bNodeSocket *gin, *gout; + bNodeStack *nsin, *nsout; + + gin = ngroup->inputs.first; + gout = ngroup->outputs.first; + + while (gin && gout) { + /* skip static (non-looping) sockets */ + while (gin && !(gin->flag & SOCK_DYNAMIC)) + gin=gin->next; + while (gout && !(gout->flag & SOCK_DYNAMIC)) + gout=gout->next; + + if (gin && gout) { + nsin = node_get_socket_stack(gstack, gin); + nsout = node_get_socket_stack(gstack, gout); + + move_stack(nsin, nsout); + + gin=gin->next; + gout=gout->next; + } + } +} + +static void forloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + int totiterations= (int)in[0]->vec[0]; + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + /* "Iteration" socket */ + sock = exec->nodetree->inputs.first; + ns = node_get_socket_stack(exec->stack, sock); + + group_copy_inputs(node, in, exec->stack); + for (iteration=0; iteration < totiterations; ++iteration) { + /* first input contains current iteration counter */ + ns->vec[0] = (float)iteration; + + if (iteration > 0) + loop_iteration_reset(exec->nodetree, exec->stack); + ntreeExecNodes(exec, data, thread); + group_free_internal(exec); + } + group_move_outputs(node, out, exec->stack); +} + +void register_node_type_cmp_forloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_FORLOOP, "For", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_forloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_forloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_forloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, forloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif + + +/**** WHILE LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +static void whileloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + int condition= (in[0]->vec[0] > 0.0f); + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + /* "Condition" socket */ + sock = exec->nodetree->outputs.first; + ns = node_get_socket_stack(exec->stack, sock); + + iteration = 0; + group_copy_inputs(node, in, exec->stack); + while (condition && iteration < node->custom1) { + if (iteration > 0) + loop_iteration_reset(exec->nodetree, exec->stack); + ntreeExecNodes(exec, data, thread); + group_free_internal(exec); + +// PRINT_BUFFERS(exec); + + condition = (ns->vec[0] > 0.0f); + ++iteration; + } + group_move_outputs(node, out, exec->stack); +} + +void register_node_type_cmp_whileloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_WHILELOOP, "While", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_whileloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_whileloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_whileloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, whileloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif diff --git a/source/blender/nodes/composite/nodes/node_composite_composite.c b/source/blender/nodes/composite/nodes/node_composite_composite.c new file mode 100644 index 00000000000..be6246b42d8 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_composite.c @@ -0,0 +1,113 @@ +/* + * $Id: CMP_composite.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_composite.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + + +/* **************** COMPOSITE ******************** */ +static bNodeSocketTemplate cmp_node_composite_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; + +/* applies to render pipeline */ +static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + /* image assigned to output */ + /* stack order input sockets: col, alpha, z */ + + if(node->flag & NODE_DO_OUTPUT) { /* only one works on out */ + Scene *scene= (Scene *)node->id; + RenderData *rd= data; + + if(scene && (rd->scemode & R_DOCOMP)) { + Render *re= RE_GetRender(scene->id.name); + RenderResult *rr= RE_AcquireResultWrite(re); + if(rr) { + CompBuf *outbuf, *zbuf=NULL; + + if(rr->rectf) + MEM_freeN(rr->rectf); + outbuf= alloc_compbuf(rr->rectx, rr->recty, CB_RGBA, 1); + + if(in[1]->data==NULL) + composit1_pixel_processor(node, outbuf, in[0]->data, in[0]->vec, do_copy_rgba, CB_RGBA); + else + composit2_pixel_processor(node, outbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); + + if(in[2]->data) { + if(rr->rectz) + MEM_freeN(rr->rectz); + zbuf= alloc_compbuf(rr->rectx, rr->recty, CB_VAL, 1); + composit1_pixel_processor(node, zbuf, in[2]->data, in[2]->vec, do_copy_value, CB_VAL); + rr->rectz= zbuf->rect; + zbuf->malloc= 0; + free_compbuf(zbuf); + } + generate_preview(data, node, outbuf); + + /* we give outbuf to rr... */ + rr->rectf= outbuf->rect; + outbuf->malloc= 0; + free_compbuf(outbuf); + + /* signal for imageviewer to refresh (it converts to byte rects...) */ + BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE); + + RE_ReleaseResult(re); + return; + } + else + RE_ReleaseResult(re); + } + } + if(in[0]->data) + generate_preview(data, node, in[0]->data); +} + +void register_node_type_cmp_composite(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COMPOSITE, "Composite", NODE_CLASS_OUTPUT, NODE_PREVIEW); + node_type_socket_templates(&ntype, cmp_node_composite_in, NULL); + node_type_size(&ntype, 80, 60, 200); + node_type_exec(&ntype, node_composit_exec_composite); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_crop.c b/source/blender/nodes/composite/nodes/node_composite_crop.c new file mode 100644 index 00000000000..332ecf39616 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_crop.c @@ -0,0 +1,129 @@ +/* + * + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_crop.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Crop ******************** */ + +static bNodeSocketTemplate cmp_node_crop_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_crop_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_composit_exec_crop(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(in[0]->data) { + NodeTwoXYs *ntxy= node->storage; + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf; + int x, y; + float *srcfp, *outfp; + rcti outputrect; + + if(node->custom2) { + ntxy->x1= cbuf->x* ntxy->fac_x1; + ntxy->x2= cbuf->x* ntxy->fac_x2; + ntxy->y1= cbuf->y* ntxy->fac_y1; + ntxy->y2= cbuf->y* ntxy->fac_y2; + } + + /* check input image size */ + if(cbuf->x <= ntxy->x1 + 1) + ntxy->x1= cbuf->x - 1; + + if(cbuf->y <= ntxy->y1 + 1) + ntxy->y1= cbuf->y - 1; + + if(cbuf->x <= ntxy->x2 + 1) + ntxy->x2= cbuf->x - 1; + + if(cbuf->y <= ntxy->y2 + 1) + ntxy->y2= cbuf->y - 1; + + /* figure out the minimums and maximums */ + outputrect.xmax=MAX2(ntxy->x1, ntxy->x2) + 1; + outputrect.xmin=MIN2(ntxy->x1, ntxy->x2); + outputrect.ymax=MAX2(ntxy->y1, ntxy->y2) + 1; + outputrect.ymin=MIN2(ntxy->y1, ntxy->y2); + + if(node->custom1) { + /* this option crops the image size too */ + stackbuf= get_cropped_compbuf(&outputrect, cbuf->rect, cbuf->x, cbuf->y, cbuf->type); + } + else { + /* this option won't crop the size of the image as well */ + /* allocate memory for the output image */ + stackbuf = alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); + + /* select the cropped part of the image and set it to the output */ + for(y=outputrect.ymin; yrect + (y * cbuf->x + outputrect.xmin) * cbuf->type; + outfp= stackbuf->rect + (y * stackbuf->x + outputrect.xmin) * stackbuf->type; + for(x=outputrect.xmin; xtype, srcfp+= cbuf->type) + memcpy(outfp, srcfp, sizeof(float)*stackbuf->type); + } + } + + out[0]->data= stackbuf; + } +} + +static void node_composit_init_crop(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTwoXYs *nxy= MEM_callocN(sizeof(NodeTwoXYs), "node xy data"); + node->storage= nxy; + nxy->x1= 0; + nxy->x2= 0; + nxy->y1= 0; + nxy->y2= 0; +} + +void register_node_type_cmp_crop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_CROP, "Crop", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_crop_in, cmp_node_crop_out); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, node_composit_init_crop); + node_type_storage(&ntype, "NodeTwoXYs", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_crop); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.c b/source/blender/nodes/composite/nodes/node_composite_curves.c new file mode 100644 index 00000000000..a830b595321 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_curves.c @@ -0,0 +1,209 @@ +/* + * $Id: CMP_curves.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Björn C. Schaefer + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_curves.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** CURVE Time ******************** */ + +/* custom1 = sfra, custom2 = efra */ +static bNodeSocketTemplate cmp_node_time_out[]= { + { SOCK_FLOAT, 0, "Fac"}, + { -1, 0, "" } +}; + +static void node_composit_exec_curves_time(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + RenderData *rd= data; + /* stack order output: fac */ + float fac= 0.0f; + + if(node->custom1 < node->custom2) + fac= (rd->cfra - node->custom1)/(float)(node->custom2-node->custom1); + + fac= curvemapping_evaluateF(node->storage, 0, fac); + out[0]->vec[0]= CLAMPIS(fac, 0.0f, 1.0f); +} + + +static void node_composit_init_curves_time(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1= 1; + node->custom2= 250; + node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); +} + +void register_node_type_cmp_curve_time(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_TIME, "Time", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, cmp_node_time_out); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, node_composit_init_curves_time); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_composit_exec_curves_time); + + nodeRegisterType(lb, &ntype); +} + + + + +/* **************** CURVE VEC ******************** */ +static bNodeSocketTemplate cmp_node_curve_vec_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_curve_vec_out[]= { + { SOCK_VECTOR, 0, "Vector"}, + { -1, 0, "" } +}; + +static void node_composit_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order input: vec */ + /* stack order output: vec */ + + curvemapping_evaluate_premulRGBF(node->storage, out[0]->vec, in[0]->vec); +} + +static void node_composit_init_curve_vec(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f); +} + +void register_node_type_cmp_curve_vec(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_curve_vec_in, cmp_node_curve_vec_out); + node_type_size(&ntype, 200, 140, 320); + node_type_init(&ntype, node_composit_init_curve_vec); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_composit_exec_curve_vec); + + nodeRegisterType(lb, &ntype); +} + + +/* **************** CURVE RGB ******************** */ +static bNodeSocketTemplate cmp_node_curve_rgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 1, "Black Level", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 1, "White Level", 1.0f, 1.0f, 1.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_curve_rgb_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_curves(bNode *node, float *out, float *in) +{ + curvemapping_evaluate_premulRGBF(node->storage, out, in); + out[3]= in[3]; +} + +static void do_curves_fac(bNode *node, float *out, float *in, float *fac) +{ + + if(*fac>=1.0) + curvemapping_evaluate_premulRGBF(node->storage, out, in); + else if(*fac<=0.0) { + VECCOPY(out, in); + } + else { + float col[4], mfac= 1.0f-*fac; + curvemapping_evaluate_premulRGBF(node->storage, col, in); + out[0]= mfac*in[0] + *fac*col[0]; + out[1]= mfac*in[1] + *fac*col[1]; + out[2]= mfac*in[2] + *fac*col[2]; + } + out[3]= in[3]; +} + +static void node_composit_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order input: fac, image, black level, white level */ + /* stack order output: image */ + + if(out[0]->hasoutput==0) + return; + + /* input no image? then only color operation */ + if(in[1]->data==NULL) { + curvemapping_evaluateRGBF(node->storage, out[0]->vec, in[1]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[1]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + curvemapping_set_black_white(node->storage, in[2]->vec, in[3]->vec); + + if(in[0]->vec[0] == 1.0) + composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_curves, CB_RGBA); + else + composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_curves_fac, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + } + +} + +static void node_composit_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); +} + +void register_node_type_cmp_curve_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_curve_rgb_in, cmp_node_curve_rgb_out); + node_type_size(&ntype, 200, 140, 320); + node_type_init(&ntype, node_composit_init_curve_rgb); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_composit_exec_curve_rgb); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_defocus.c b/source/blender/nodes/composite/nodes/node_composite_defocus.c new file mode 100644 index 00000000000..a218bfb009d --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_defocus.c @@ -0,0 +1,892 @@ +/* + * $Id: CMP_defocus.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_defocus.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* ************ qdn: Defocus node ****************** */ +static bNodeSocketTemplate cmp_node_defocus_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_defocus_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + + +// line coefs for point sampling & scancon. data. +typedef struct BokehCoeffs { + float x0, y0, dx, dy; + float ls_x, ls_y; + float min_x, min_y, max_x, max_y; +} BokehCoeffs; + +// returns array of BokehCoeffs +// returns length of array in 'len_bkh', +// radius squared of inscribed disk in 'inradsq', needed in getWeight() test, +// BKH[8] is the data returned for the bokeh shape & bkh_b[4] is it's 2d bound +static void makeBokeh(char bktype, char ro, int* len_bkh, float* inradsq, BokehCoeffs BKH[8], float bkh_b[4]) +{ + float x0, x1, y0, y1, dx, dy, iDxy; + float w = MAX2(1e-5f, ro)*M_PI/180.f; // never reported stangely enough, but a zero offset causes missing center line... + float wi = (360.f/bktype)*M_PI/180.f; + int i, ov, nv; + + // bktype must be at least 3 & <= 8 + bktype = (bktype<3) ? 3 : ((bktype>8) ? 8 : bktype); + *len_bkh = bktype; + *inradsq = -1.f; + + for (i=0; i<(*len_bkh); i++) { + x0 = cos(w); + y0 = sin(w); + w += wi; + x1 = cos(w); + y1 = sin(w); + if ((*inradsq)<0.f) { + // radius squared of inscribed disk + float idx=(x0+x1)*0.5f, idy=(y0+y1)*0.5f; + *inradsq = idx*idx + idy*idy; + } + BKH[i].x0 = x0; + BKH[i].y0 = y0; + dx = x1-x0, dy = y1-y0; + iDxy = 1.f / sqrt(dx*dx + dy*dy); + dx *= iDxy; + dy *= iDxy; + BKH[i].dx = dx; + BKH[i].dy = dy; + } + + // precalc scanconversion data + // bokeh bound, not transformed, for scanconvert + bkh_b[0] = bkh_b[2] = 1e10f; // xmin/ymin + bkh_b[1] = bkh_b[3] = -1e10f; // xmax/ymax + ov = (*len_bkh) - 1; + for (nv=0; nv<(*len_bkh); nv++) { + bkh_b[0] = MIN2(bkh_b[0], BKH[nv].x0); // xmin + bkh_b[1] = MAX2(bkh_b[1], BKH[nv].x0); // xmax + bkh_b[2] = MIN2(bkh_b[2], BKH[nv].y0); // ymin + bkh_b[3] = MAX2(bkh_b[3], BKH[nv].y0); // ymax + BKH[nv].min_x = MIN2(BKH[ov].x0, BKH[nv].x0); + BKH[nv].max_x = MAX2(BKH[ov].x0, BKH[nv].x0); + BKH[nv].min_y = MIN2(BKH[ov].y0, BKH[nv].y0); + BKH[nv].max_y = MAX2(BKH[ov].y0, BKH[nv].y0); + dy = BKH[nv].y0 - BKH[ov].y0; + BKH[nv].ls_x = (BKH[nv].x0 - BKH[ov].x0) / ((dy==0.f) ? 1.f : dy); + BKH[nv].ls_y = (BKH[nv].ls_x==0.f) ? 1.f : (1.f/BKH[nv].ls_x); + ov = nv; + } +} + +// test if u/v inside shape & returns weight value +static float getWeight(BokehCoeffs* BKH, int len_bkh, float u, float v, float rad, float inradsq) +{ + BokehCoeffs* bc = BKH; + float cdist, irad = (rad==0.f) ? 1.f : (1.f/rad); + u *= irad; + v *= irad; + + // early out test1: if point outside outer unit disk, it cannot be inside shape + cdist = u*u + v*v; + if (cdist>1.f) return 0.f; + + // early out test2: if point inside or on inner disk, point must be inside shape + if (cdist<=inradsq) return 1.f; + + while (len_bkh--) { + if ((bc->dy*(u - bc->x0) - bc->dx*(v - bc->y0)) > 0.f) return 0.f; + bc++; + } + return 1.f; +} + +// QMC.seq. for sampling, A.Keller, EMS +static float RI_vdC(unsigned int bits, unsigned int r) +{ + bits = ( bits << 16) | ( bits >> 16); + bits = ((bits & 0x00ff00ff) << 8) | ((bits & 0xff00ff00) >> 8); + bits = ((bits & 0x0f0f0f0f) << 4) | ((bits & 0xf0f0f0f0) >> 4); + bits = ((bits & 0x33333333) << 2) | ((bits & 0xcccccccc) >> 2); + bits = ((bits & 0x55555555) << 1) | ((bits & 0xaaaaaaaa) >> 1); + bits ^= r; + return (float)((double)bits / 4294967296.0); +} + +// single channel IIR gaussian filtering +// much faster than anything else, constant time independent of width +// should extend to multichannel and make this a node, could be useful +static void IIR_gauss_single(CompBuf* buf, float sigma) +{ + double q, q2, sc, cf[4], tsM[9], tsu[3], tsv[3]; + float *X, *Y, *W; + int i, x, y, sz; + + // single channel only for now + if (buf->type != CB_VAL) return; + + // <0.5 not valid, though can have a possibly useful sort of sharpening effect + if (sigma < 0.5) return; + + // see "Recursive Gabor Filtering" by Young/VanVliet + // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 + if (sigma >= 3.556) + q = 0.9804*(sigma - 3.556) + 2.5091; + else // sigma >= 0.5 + q = (0.0561*sigma + 0.5784)*sigma - 0.2568; + q2 = q*q; + sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q); + // no gabor filtering here, so no complex multiplies, just the regular coefs. + // all negated here, so as not to have to recalc Triggs/Sdika matrix + cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc; + cf[2] = -q2*(3.38246 + 3.0*q)/sc; + // 0 & 3 unchanged + cf[3] = q2*q/sc; + cf[0] = 1.0 - cf[1] - cf[2] - cf[3]; + + // Triggs/Sdika border corrections, + // it seems to work, not entirely sure if it is actually totally correct, + // Besides J.M.Geusebroek's anigauss.c (see http://www.science.uva.nl/~mark), + // found one other implementation by Cristoph Lampert, + // but neither seem to be quite the same, result seems to be ok sofar anyway. + // Extra scale factor here to not have to do it in filter, + // though maybe this had something to with the precision errors + sc = cf[0]/((1.0 + cf[1] - cf[2] + cf[3])*(1.0 - cf[1] - cf[2] - cf[3])*(1.0 + cf[2] + (cf[1] - cf[3])*cf[3])); + tsM[0] = sc*(-cf[3]*cf[1] + 1.0 - cf[3]*cf[3] - cf[2]); + tsM[1] = sc*((cf[3] + cf[1])*(cf[2] + cf[3]*cf[1])); + tsM[2] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); + tsM[3] = sc*(cf[1] + cf[3]*cf[2]); + tsM[4] = sc*(-(cf[2] - 1.0)*(cf[2] + cf[3]*cf[1])); + tsM[5] = sc*(-(cf[3]*cf[1] + cf[3]*cf[3] + cf[2] - 1.0)*cf[3]); + tsM[6] = sc*(cf[3]*cf[1] + cf[2] + cf[1]*cf[1] - cf[2]*cf[2]); + tsM[7] = sc*(cf[1]*cf[2] + cf[3]*cf[2]*cf[2] - cf[1]*cf[3]*cf[3] - cf[3]*cf[3]*cf[3] - cf[3]*cf[2] + cf[3]); + tsM[8] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); + +#define YVV(L)\ +{\ + W[0] = cf[0]*X[0] + cf[1]*X[0] + cf[2]*X[0] + cf[3]*X[0];\ + W[1] = cf[0]*X[1] + cf[1]*W[0] + cf[2]*X[0] + cf[3]*X[0];\ + W[2] = cf[0]*X[2] + cf[1]*W[1] + cf[2]*W[0] + cf[3]*X[0];\ + for (i=3; i=0; i--)\ + Y[i] = cf[0]*W[i] + cf[1]*Y[i+1] + cf[2]*Y[i+2] + cf[3]*Y[i+3];\ +} + + // intermediate buffers + sz = MAX2(buf->x, buf->y); + Y = MEM_callocN(sz*sizeof(float), "IIR_gauss Y buf"); + W = MEM_callocN(sz*sizeof(float), "IIR_gauss W buf"); + // H + for (y=0; yy; y++) { + X = &buf->rect[y*buf->x]; + YVV(buf->x); + memcpy(X, Y, sizeof(float)*buf->x); + } + // V + X = MEM_callocN(buf->y*sizeof(float), "IIR_gauss X buf"); + for (x=0; xx; x++) { + for (y=0; yy; y++) + X[y] = buf->rect[x + y*buf->x]; + YVV(buf->y); + for (y=0; yy; y++) + buf->rect[x + y*buf->x] = Y[y]; + } + MEM_freeN(X); + + MEM_freeN(W); + MEM_freeN(Y); +#undef YVV +} + +static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf, float inpval, int no_zbuf) +{ + NodeDefocus *nqd = node->storage; + CompBuf *wts; // weights buffer + CompBuf *crad; // CoC radius buffer + BokehCoeffs BKH[8]; // bokeh shape data, here never > 8 pts. + float bkh_b[4] = {0}; // shape 2D bound + float cam_fdist=1, cam_invfdist=1, cam_lens=35; + float dof_sp, maxfgc, bk_hn_theta=0, inradsq=0; + int y, len_bkh=0, ydone=0; + float aspect, aperture; + int minsz; + //float bcrad, nmaxc, scf; + + // get some required params from the current scene camera + // (ton) this is wrong, needs fixed + Scene *scene= (Scene*)node->id; + Object* camob = (scene)? scene->camera: NULL; + if (camob && camob->type==OB_CAMERA) { + Camera* cam = (Camera*)camob->data; + cam_lens = cam->lens; + cam_fdist = dof_camera(camob); + if (cam_fdist==0.0) cam_fdist = 1e10f; /* if the dof is 0.0 then set it be be far away */ + cam_invfdist = 1.f/cam_fdist; + } + + // guess work here.. best match with raytraced result + minsz = MIN2(img->x, img->y); + dof_sp = (float)minsz / (16.f / cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov); + + // aperture + aspect = (img->x > img->y) ? (img->y / (float)img->x) : (img->x / (float)img->y); + aperture = 0.5f*(cam_lens / (aspect*32.f)) / nqd->fstop; + + // if not disk, make bokeh coefficients and other needed data + if (nqd->bktype!=0) { + makeBokeh(nqd->bktype, nqd->rotation, &len_bkh, &inradsq, BKH, bkh_b); + bk_hn_theta = 0.5 * nqd->bktype * sin(2.0 * M_PI / nqd->bktype); // weight factor + } + + // accumulated weights + wts = alloc_compbuf(img->x, img->y, CB_VAL, 1); + // CoC radius buffer + crad = alloc_compbuf(img->x, img->y, CB_VAL, 1); + + // if 'no_zbuf' flag set (which is always set if input is not an image), + // values are instead interpreted directly as blur radius values + if (no_zbuf) { + // to prevent *reaaallly* big radius values and impossible calculation times, + // limit the maximum to half the image width or height, whichever is smaller + float maxr = 0.5f*(float)MIN2(img->x, img->y); + unsigned int p; + + for (p=0; p<(unsigned int)(img->x*img->y); p++) { + crad->rect[p] = zbuf ? (zbuf->rect[p]*nqd->scale) : inpval; + // bug #5921, limit minimum + crad->rect[p] = MAX2(1e-5f, crad->rect[p]); + crad->rect[p] = MIN2(crad->rect[p], maxr); + // if maxblur!=0, limit maximum + if (nqd->maxblur != 0.f) crad->rect[p] = MIN2(crad->rect[p], nqd->maxblur); + } + } + else { + float wt; + + // actual zbuffer. + // separate foreground from background CoC's + // then blur background and blend in again with foreground, + // improves the 'blurred foreground overlapping in-focus midground' sharp boundary problem. + // wts buffer here used for blendmask + maxfgc = 0.f; // maximum foreground CoC radius + for (y=0; yy; y++) { + unsigned int p = y * img->x; + int x; + for (x=0; xx; x++) { + unsigned int px = p + x; + float iZ = (zbuf->rect[px]==0.f) ? 0.f : (1.f/zbuf->rect[px]); + crad->rect[px] = 0.5f*(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); + if (crad->rect[px] <= 0.f) { + wts->rect[px] = 1.f; + crad->rect[px] = -crad->rect[px]; + if (crad->rect[px] > maxfgc) maxfgc = crad->rect[px]; + } + else crad->rect[px] = wts->rect[px] = 0; + } + } + + // fast blur... + // bug #6656 part 1, probably when previous node_composite.c was split into separate files, it was not properly updated + // to include recent cvs commits (well, at least not defocus node), so this part was missing... + wt = aperture*128.f; + IIR_gauss_single(crad, wt); + IIR_gauss_single(wts, wt); + + // bug #6656 part 2a, although foreground blur is not based anymore on closest object, + // the rescaling op below was still based on that anyway, and unlike the comment in below code, + // the difference is therefore not always that small at all... + // so for now commented out, not sure if this is going to cause other future problems, lets just wait and see... + /* + // find new maximum to scale it back to original + // (could skip this, not strictly necessary, in general, difference is quite small, but just in case...) + nmaxc = 0; + for (p=0; p<(img->x*img->y); p++) + if (crad->rect[p] > nmaxc) nmaxc = crad->rect[p]; + // rescale factor + scf = (nmaxc==0.f) ? 1.f: (maxfgc / nmaxc); + */ + + // and blend... + for (y=0; yy; y++) { + unsigned int p = y*img->x; + int x; + + for (x=0; xx; x++) { + unsigned px = p + x; + if (zbuf->rect[px]!=0.f) { + float iZ = (zbuf->rect[px]==0.f) ? 0.f : (1.f/zbuf->rect[px]); + + // bug #6656 part 2b, do not rescale + /* + bcrad = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); + // scale crad back to original maximum and blend + crad->rect[px] = bcrad + wts->rect[px]*(scf*crad->rect[px] - bcrad); + */ + crad->rect[px] = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); + + // 'bug' #6615, limit minimum radius to 1 pixel, not really a solution, but somewhat mitigates the problem + crad->rect[px] = MAX2(crad->rect[px], 0.5f); + // if maxblur!=0, limit maximum + if (nqd->maxblur != 0.f) crad->rect[px] = MIN2(crad->rect[px], nqd->maxblur); + } + else crad->rect[px] = 0.f; + // clear weights for next part + wts->rect[px] = 0.f; + } + // esc set by main calling process + if(node->exec & NODE_BREAK) + break; + } + } + + //------------------------------------------------------------------ + // main loop +#ifndef __APPLE__ /* can crash on Mac, see bug #22856, disabled for now */ +#ifdef __INTEL_COMPILER /* icc doesn't like the compound statement -- internal error: 0_1506 */ + #pragma omp parallel for private(y) if(!nqd->preview) schedule(guided) +#else + #pragma omp parallel for private(y) if(!nqd->preview && img->y*img->x > 16384) schedule(guided) +#endif +#endif + for (y=0; yy; y++) { + unsigned int p, p4, zp, cp, cp4; + float *ctcol, u, v, ct_crad, cR2=0; + int x, sx, sy; + + // some sort of visual feedback would be nice, or at least this text in the renderwin header + // but for now just print some info in the console every 8 scanlines. + #pragma omp critical + { + if (((ydone & 7)==0) || (ydone==(img->y-1))) { + if(G.background==0) { + printf("\rdefocus: Processing Line %d of %d ... ", ydone+1, img->y); + fflush(stdout); + } + } + + ydone++; + } + + // esc set by main calling process. don't break because openmp doesn't + // allow it, just continue and do nothing + if(node->exec & NODE_BREAK) + continue; + + zp = y * img->x; + for (x=0; xx; x++) { + cp = zp + x; + cp4 = cp * img->type; + + // Circle of Confusion radius for current pixel + cR2 = ct_crad = crad->rect[cp]; + // skip if zero (border render) + if (ct_crad==0.f) { + // related to bug #5921, forgot output image when skipping 0 radius values + new->rect[cp4] = img->rect[cp4]; + if (new->type != CB_VAL) { + new->rect[cp4+1] = img->rect[cp4+1]; + new->rect[cp4+2] = img->rect[cp4+2]; + new->rect[cp4+3] = img->rect[cp4+3]; + } + continue; + } + cR2 *= cR2; + + // pixel color + ctcol = &img->rect[cp4]; + + if (!nqd->preview) { + int xs, xe, ys, ye; + float lwt, wtcol[4] = {0}, aacol[4] = {0}; + float wt; + + // shape weight + if (nqd->bktype==0) // disk + wt = 1.f/((float)M_PI*cR2); + else + wt = 1.f/(cR2*bk_hn_theta); + + // weighted color + wtcol[0] = wt*ctcol[0]; + if (new->type != CB_VAL) { + wtcol[1] = wt*ctcol[1]; + wtcol[2] = wt*ctcol[2]; + wtcol[3] = wt*ctcol[3]; + } + + // macro for background blur overlap test + // unfortunately, since this is done per pixel, + // it has a very significant negative impact on processing time... + // (eg. aa disk blur without test: 112 sec, vs with test: 176 sec...) + // iff center blur radius > threshold + // and if overlap pixel in focus, do nothing, else add color/weigbt + // (threshold constant is dependant on amount of blur) + #define TESTBG1(c, w) {\ + if (ct_crad > nqd->bthresh) {\ + if (crad->rect[p] > nqd->bthresh) {\ + new->rect[p] += c[0];\ + wts->rect[p] += w;\ + }\ + }\ + else {\ + new->rect[p] += c[0];\ + wts->rect[p] += w;\ + }\ + } + #define TESTBG4(c, w) {\ + if (ct_crad > nqd->bthresh) {\ + if (crad->rect[p] > nqd->bthresh) {\ + new->rect[p4] += c[0];\ + new->rect[p4+1] += c[1];\ + new->rect[p4+2] += c[2];\ + new->rect[p4+3] += c[3];\ + wts->rect[p] += w;\ + }\ + }\ + else {\ + new->rect[p4] += c[0];\ + new->rect[p4+1] += c[1];\ + new->rect[p4+2] += c[2];\ + new->rect[p4+3] += c[3];\ + wts->rect[p] += w;\ + }\ + } + if (nqd->bktype == 0) { + // Disk + int _x, i, j, di; + float Dj, T; + // AA pixel + #define AAPIX(a, b) {\ + int _ny = b;\ + if ((_ny >= 0) && (_ny < new->y)) {\ + int _nx = a;\ + if ((_nx >=0) && (_nx < new->x)) {\ + p = _ny*new->x + _nx;\ + if (new->type==CB_VAL) {\ + TESTBG1(aacol, lwt);\ + }\ + else {\ + p4 = p * new->type;\ + TESTBG4(aacol, lwt);\ + }\ + }\ + }\ + } + // circle scanline + #define CSCAN(a, b) {\ + int _ny = y + b;\ + if ((_ny >= 0) && (_ny < new->y)) {\ + xs = x - a + 1;\ + if (xs < 0) xs = 0;\ + xe = x + a;\ + if (xe > new->x) xe = new->x;\ + p = _ny*new->x + xs;\ + if (new->type==CB_VAL) {\ + for (_x=xs; _xtype;\ + for (_x=xs; _xtype) TESTBG4(wtcol, wt);\ + }\ + }\ + } + i = ceil(ct_crad); + j = 0; + T = 0; + while (i > j) { + Dj = sqrt(cR2 - j*j); + Dj -= floor(Dj); + di = 0; + if (Dj > T) { i--; di = 1; } + T = Dj; + aacol[0] = wtcol[0]*Dj; + if (new->type != CB_VAL) { + aacol[1] = wtcol[1]*Dj; + aacol[2] = wtcol[2]*Dj; + aacol[3] = wtcol[3]*Dj; + } + lwt = wt*Dj; + if (i!=j) { + // outer pixels + AAPIX(x+j, y+i); + AAPIX(x+j, y-i); + if (j) { + AAPIX(x-j, y+i); // BL + AAPIX(x-j, y-i); // TL + } + if (di) { // only when i changed, interior of outer section + CSCAN(j, i); // bottom + CSCAN(j, -i); // top + } + } + // lower mid section + AAPIX(x+i, y+j); + if (i) AAPIX(x-i, y+j); + CSCAN(i, j); + // upper mid section + if (j) { + AAPIX(x+i, y-j); + if (i) AAPIX(x-i, y-j); + CSCAN(i, -j); + } + j++; + } + #undef CSCAN + #undef AAPIX + } + else { + // n-agonal + int ov, nv; + float mind, maxd, lwt; + ys = MAX2((int)floor(bkh_b[2]*ct_crad + y), 0); + ye = MIN2((int)ceil(bkh_b[3]*ct_crad + y), new->y - 1); + for (sy=ys; sy<=ye; sy++) { + float fxs = 1e10f, fxe = -1e10f; + float yf = (sy - y)/ct_crad; + int found = 0; + ov = len_bkh - 1; + mind = maxd = 0; + for (nv=0; nv= yf) && (BKH[nv].min_y <= yf)) { + float tx = BKH[ov].x0 + BKH[nv].ls_x*(yf - BKH[ov].y0); + if (tx < fxs) { fxs = tx; mind = BKH[nv].ls_x; } + if (tx > fxe) { fxe = tx; maxd = BKH[nv].ls_x; } + if (++found == 2) break; + } + ov = nv; + } + if (found) { + fxs = fxs*ct_crad + x; + fxe = fxe*ct_crad + x; + xs = (int)floor(fxs), xe = (int)ceil(fxe); + // AA hack for first and last x pixel, near vertical edges only + if (fabs(mind) <= 1.f) { + if ((xs >= 0) && (xs < new->x)) { + lwt = 1.f-(fxs - xs); + aacol[0] = wtcol[0]*lwt; + p = xs + sy*new->x; + if (new->type==CB_VAL) { + lwt *= wt; + TESTBG1(aacol, lwt); + } + else { + p4 = p * new->type; + aacol[1] = wtcol[1]*lwt; + aacol[2] = wtcol[2]*lwt; + aacol[3] = wtcol[3]*lwt; + lwt *= wt; + TESTBG4(aacol, lwt); + } + } + } + if (fabs(maxd) <= 1.f) { + if ((xe >= 0) && (xe < new->x)) { + lwt = 1.f-(xe - fxe); + aacol[0] = wtcol[0]*lwt; + p = xe + sy*new->x; + if (new->type==CB_VAL) { + lwt *= wt; + TESTBG1(aacol, lwt); + } + else { + p4 = p * new->type; + aacol[1] = wtcol[1]*lwt; + aacol[2] = wtcol[2]*lwt; + aacol[3] = wtcol[3]*lwt; + lwt *= wt; + TESTBG4(aacol, lwt); + } + } + } + xs = MAX2(xs+1, 0); + xe = MIN2(xe, new->x); + // remaining interior scanline + p = sy*new->x + xs; + if (new->type==CB_VAL) { + for (sx=xs; sxtype; + for (sx=xs; sxtype) TESTBG4(wtcol, wt); + } + } + } + + // now traverse in opposite direction, y scanlines, + // but this time only draw the near horizontal edges, + // applying same AA hack as above + xs = MAX2((int)floor(bkh_b[0]*ct_crad + x), 0); + xe = MIN2((int)ceil(bkh_b[1]*ct_crad + x), img->x - 1); + for (sx=xs; sx<=xe; sx++) { + float xf = (sx - x)/ct_crad; + float fys = 1e10f, fye = -1e10f; + int found = 0; + ov = len_bkh - 1; + mind = maxd = 0; + for (nv=0; nv= xf) && (BKH[nv].min_x <= xf)) { + float ty = BKH[ov].y0 + BKH[nv].ls_y*(xf - BKH[ov].x0); + if (ty < fys) { fys = ty; mind = BKH[nv].ls_y; } + if (ty > fye) { fye = ty; maxd = BKH[nv].ls_y; } + if (++found == 2) break; + } + ov = nv; + } + if (found) { + fys = fys*ct_crad + y; + fye = fye*ct_crad + y; + // near horizontal edges only, line slope <= 1 + if (fabs(mind) <= 1.f) { + int iys = (int)floor(fys); + if ((iys >= 0) && (iys < new->y)) { + lwt = 1.f - (fys - iys); + aacol[0] = wtcol[0]*lwt; + p = sx + iys*new->x; + if (new->type==CB_VAL) { + lwt *= wt; + TESTBG1(aacol, lwt); + } + else { + p4 = p * new->type; + aacol[1] = wtcol[1]*lwt; + aacol[2] = wtcol[2]*lwt; + aacol[3] = wtcol[3]*lwt; + lwt *= wt; + TESTBG4(aacol, lwt); + } + } + } + if (fabs(maxd) <= 1.f) { + int iye = ceil(fye); + if ((iye >= 0) && (iye < new->y)) { + lwt = 1.f - (iye - fye); + aacol[0] = wtcol[0]*lwt; + p = sx + iye*new->x; + if (new->type==CB_VAL) { + lwt *= wt; + TESTBG1(aacol, lwt); + } + else { + p4 = p * new->type; + aacol[1] = wtcol[1]*lwt; + aacol[2] = wtcol[2]*lwt; + aacol[3] = wtcol[3]*lwt; + lwt *= wt; + TESTBG4(aacol, lwt); + } + } + } + } + } + + } + #undef TESTBG4 + #undef TESTBG1 + + } + else { + // sampled, simple rejection sampling here, good enough + unsigned int maxsam, s, ui = BLI_rand()*BLI_rand(); + float wcor, cpr = BLI_frand(), lwt; + if (no_zbuf) + maxsam = nqd->samples; // no zbuffer input, use sample value directly + else { + // depth adaptive sampling hack, the more out of focus, the more samples taken, 16 minimum. + maxsam = (int)(0.5f + nqd->samples*(1.f-(float)exp(-fabs(zbuf->rect[cp] - cam_fdist)))); + if (maxsam < 16) maxsam = 16; + } + wcor = 1.f/(float)maxsam; + for (s=0; s= new->x) || (sy<0) || (sy >= new->y)) continue; + p = sx + sy*new->x; + p4 = p * new->type; + if (nqd->bktype==0) // Disk + lwt = ((u*u + v*v)<=cR2) ? wcor : 0.f; + else // AA not needed here + lwt = wcor * getWeight(BKH, len_bkh, u, v, ct_crad, inradsq); + // prevent background bleeding onto in-focus pixels, user-option + if (ct_crad > nqd->bthresh) { // if center blur > threshold + if (crad->rect[p] > nqd->bthresh) { // if overlap pixel in focus, do nothing, else add color/weigbt + new->rect[p4] += ctcol[0] * lwt; + if (new->type != CB_VAL) { + new->rect[p4+1] += ctcol[1] * lwt; + new->rect[p4+2] += ctcol[2] * lwt; + new->rect[p4+3] += ctcol[3] * lwt; + } + wts->rect[p] += lwt; + } + } + else { + new->rect[p4] += ctcol[0] * lwt; + if (new->type != CB_VAL) { + new->rect[p4+1] += ctcol[1] * lwt; + new->rect[p4+2] += ctcol[2] * lwt; + new->rect[p4+3] += ctcol[3] * lwt; + } + wts->rect[p] += lwt; + } + } + } + + } + } + + // finally, normalize + for (y=0; yy; y++) { + unsigned int p = y * new->x; + unsigned int p4 = p * new->type; + int x; + + for (x=0; xx; x++) { + float dv = (wts->rect[p]==0.f) ? 1.f : (1.f/wts->rect[p]); + new->rect[p4] *= dv; + if (new->type!=CB_VAL) { + new->rect[p4+1] *= dv; + new->rect[p4+2] *= dv; + new->rect[p4+3] *= dv; + } + p++; + p4 += new->type; + } + } + + free_compbuf(crad); + free_compbuf(wts); + + printf("Done\n"); +} + + +static void node_composit_exec_defocus(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *new, *old, *zbuf_use = NULL, *img = in[0]->data, *zbuf = in[1]->data; + NodeDefocus *nqd = node->storage; + int no_zbuf = nqd->no_zbuf; + + if ((img==NULL) || (out[0]->hasoutput==0)) return; + + // if image not valid type or fstop==infinite (128), nothing to do, pass in to out + if (((img->type!=CB_RGBA) && (img->type!=CB_VAL)) || ((no_zbuf==0) && (nqd->fstop==128.f))) { + out[0]->data = pass_on_compbuf(img); + return; + } + + if (zbuf!=NULL) { + // Zbuf input, check to make sure, single channel, same size + // doesn't have to be actual zbuffer, but must be value type + if ((zbuf->x != img->x) || (zbuf->y != img->y)) { + // could do a scale here instead... + printf("Z input must be same size as image !\n"); + return; + } + zbuf_use = typecheck_compbuf(zbuf, CB_VAL); + } + else no_zbuf = 1; // no zbuffer input + + // ok, process + old = img; + if (nqd->gamco) { + // gamma correct, blender func is simplified, fixed value & RGBA only, + // should make user param. also depremul and premul afterwards, gamma + // correction can't work with premul alpha + old = dupalloc_compbuf(img); + premul_compbuf(old, 1); + gamma_correct_compbuf(old, 0); + premul_compbuf(old, 0); + } + + new = alloc_compbuf(old->x, old->y, old->type, 1); + defocus_blur(node, new, old, zbuf_use, in[1]->vec[0]*nqd->scale, no_zbuf); + + if (nqd->gamco) { + premul_compbuf(new, 1); + gamma_correct_compbuf(new, 1); + premul_compbuf(new, 0); + free_compbuf(old); + } + if(node->exec & NODE_BREAK) { + free_compbuf(new); + new= NULL; + } + out[0]->data = new; + if (zbuf_use && (zbuf_use != zbuf)) free_compbuf(zbuf_use); +} + +static void node_composit_init_defocus(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + /* qdn: defocus node */ + NodeDefocus *nbd = MEM_callocN(sizeof(NodeDefocus), "node defocus data"); + nbd->bktype = 0; + nbd->rotation = 0.f; + nbd->preview = 1; + nbd->gamco = 0; + nbd->samples = 16; + nbd->fstop = 128.f; + nbd->maxblur = 0; + nbd->bthresh = 1.f; + nbd->scale = 1.f; + nbd->no_zbuf = 1; + node->storage = nbd; +} + +void register_node_type_cmp_defocus(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DEFOCUS, "Defocus", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_defocus_in, cmp_node_defocus_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_defocus); + node_type_storage(&ntype, "NodeDefocus", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_defocus); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_diffMatte.c b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c new file mode 100644 index 00000000000..a0fff88f5dc --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c @@ -0,0 +1,151 @@ +/* + * $Id: CMP_diffMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_diffMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* ******************* channel Difference Matte ********************************* */ +static bNodeSocketTemplate cmp_node_diff_matte_in[]={ + {SOCK_RGBA,1,"Image 1", 0.8f, 0.8f, 0.8f, 1.0f}, + {SOCK_RGBA,1,"Image 2", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_diff_matte_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +static void do_diff_matte(bNode *node, float *outColor, float *inColor1, float *inColor2) +{ + NodeChroma *c= (NodeChroma *)node->storage; + float tolerence=c->t1; + float falloff=c->t2; + float difference; + float alpha; + + difference= fabs(inColor2[0]-inColor1[0])+ + fabs(inColor2[1]-inColor1[1])+ + fabs(inColor2[2]-inColor1[2]); + + /*average together the distances*/ + difference=difference/3.0; + + VECCOPY(outColor, inColor1); + + /*make 100% transparent*/ + if(difference < tolerence) { + outColor[3]=0.0; + } + /*in the falloff region, make partially transparent */ + else if(difference < falloff+tolerence) { + difference=difference-tolerence; + alpha=difference/falloff; + /*only change if more transparent than before */ + if(alpha < inColor1[3]) { + outColor[3]=alpha; + } + else { /* leave as before */ + outColor[3]=inColor1[3]; + } + } + else { + /*foreground object*/ + outColor[3]= inColor1[3]; + } +} + +static void node_composit_exec_diff_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *outbuf=0; + CompBuf *imbuf1=0; + CompBuf *imbuf2=0; + NodeChroma *c; + + /*is anything connected?*/ + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + + /*must have an image imput*/ + if(in[0]->data==NULL) return; + + + imbuf1=typecheck_compbuf(in[0]->data, CB_RGBA); + + /* if there's an image, use that, if not use the color */ + if(in[1]->data) { + imbuf2=typecheck_compbuf(in[1]->data, CB_RGBA); + } + + c=node->storage; + outbuf=dupalloc_compbuf(imbuf1); + + /* note, processor gets a keyvals array passed on as buffer constant */ + composit2_pixel_processor(node, outbuf, imbuf1, in[0]->vec, imbuf2, in[1]->vec, do_diff_matte, CB_RGBA, CB_RGBA); + + out[0]->data=outbuf; + if(out[1]->hasoutput) + out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); + generate_preview(data, node, outbuf); + + if(imbuf1!=in[0]->data) + free_compbuf(imbuf1); + + if(imbuf2!=in[1]->data) + free_compbuf(imbuf2); +} + +static void node_composit_init_diff_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); + node->storage= c; + c->t1= 0.1f; + c->t2= 0.1f; +} + +void register_node_type_cmp_diff_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DIFF_MATTE, "Difference Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_diff_matte_in, cmp_node_diff_matte_out); + node_type_size(&ntype, 200, 80, 250); + node_type_init(&ntype, node_composit_init_diff_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_diff_matte); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_dilate.c b/source/blender/nodes/composite/nodes/node_composite_dilate.c new file mode 100644 index 00000000000..ef47fdbfef0 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_dilate.c @@ -0,0 +1,163 @@ +/* + * $Id: CMP_dilate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_dilate.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Dilate/Erode ******************** */ + +static bNodeSocketTemplate cmp_node_dilateerode_in[]= { + { SOCK_FLOAT, 1, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_dilateerode_out[]= { + { SOCK_FLOAT, 0, "Mask"}, + { -1, 0, "" } +}; + +static void morpho_dilate(CompBuf *cbuf) +{ + int x, y; + float *p, *rectf = cbuf->rect; + + for (y=0; y < cbuf->y; y++) { + for (x=0; x < cbuf->x-1; x++) { + p = rectf + cbuf->x*y + x; + *p = MAX2(*p, *(p + 1)); + } + } + + for (y=0; y < cbuf->y; y++) { + for (x=cbuf->x-1; x >= 1; x--) { + p = rectf + cbuf->x*y + x; + *p = MAX2(*p, *(p - 1)); + } + } + + for (x=0; x < cbuf->x; x++) { + for (y=0; y < cbuf->y-1; y++) { + p = rectf + cbuf->x*y + x; + *p = MAX2(*p, *(p + cbuf->x)); + } + } + + for (x=0; x < cbuf->x; x++) { + for (y=cbuf->y-1; y >= 1; y--) { + p = rectf + cbuf->x*y + x; + *p = MAX2(*p, *(p - cbuf->x)); + } + } +} + +static void morpho_erode(CompBuf *cbuf) +{ + int x, y; + float *p, *rectf = cbuf->rect; + + for (y=0; y < cbuf->y; y++) { + for (x=0; x < cbuf->x-1; x++) { + p = rectf + cbuf->x*y + x; + *p = MIN2(*p, *(p + 1)); + } + } + + for (y=0; y < cbuf->y; y++) { + for (x=cbuf->x-1; x >= 1; x--) { + p = rectf + cbuf->x*y + x; + *p = MIN2(*p, *(p - 1)); + } + } + + for (x=0; x < cbuf->x; x++) { + for (y=0; y < cbuf->y-1; y++) { + p = rectf + cbuf->x*y + x; + *p = MIN2(*p, *(p + cbuf->x)); + } + } + + for (x=0; x < cbuf->x; x++) { + for (y=cbuf->y-1; y >= 1; y--) { + p = rectf + cbuf->x*y + x; + *p = MIN2(*p, *(p - cbuf->x)); + } + } + +} + +static void node_composit_exec_dilateerode(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: mask */ + /* stack order out: mask */ + if(out[0]->hasoutput==0) + return; + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + out[0]->vec[0] = out[0]->vec[1] = out[0]->vec[2] = 0.0f; + out[0]->vec[3] = 0.0f; + } + else { + /* make output size of input image */ + CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_VAL); + CompBuf *stackbuf= dupalloc_compbuf(cbuf); + short i; + + if (node->custom2 > 0) { // positive, dilate + for (i = 0; i < node->custom2; i++) + morpho_dilate(stackbuf); + } else if (node->custom2 < 0) { // negative, erode + for (i = 0; i > node->custom2; i--) + morpho_erode(stackbuf); + } + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_dilateerode(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DILATEERODE, "Dilate/Erode", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_dilateerode_in, cmp_node_dilateerode_out); + node_type_size(&ntype, 130, 100, 320); + node_type_exec(&ntype, node_composit_exec_dilateerode); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_directionalblur.c b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c new file mode 100644 index 00000000000..3d541120a61 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c @@ -0,0 +1,146 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Alfredo de Greef (eeshlo) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_directionalblur.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +static bNodeSocketTemplate cmp_node_dblur_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_dblur_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static CompBuf *dblur(bNode *node, CompBuf *img, int iterations, int wrap, + float center_x, float center_y, float dist, float angle, float spin, float zoom) +{ + if ((dist != 0.f) || (spin != 0.f) || (zoom != 0.f)) { + void (*getpix)(CompBuf*, float, float, float*) = wrap ? qd_getPixelLerpWrap : qd_getPixelLerp; + const float a= angle * (float)M_PI / 180.f; + const float itsc= 1.f / pow(2.f, (float)iterations); + float D; + float center_x_pix, center_y_pix; + float tx, ty; + float sc, rot; + CompBuf *tmp; + int i, j; + + tmp= dupalloc_compbuf(img); + + D= dist * sqrtf(img->x * img->x + img->y * img->y); + center_x_pix= center_x * img->x; + center_y_pix= center_y * img->y; + + tx= itsc * D * cos(a); + ty= -itsc * D * sin(a); + sc= itsc * zoom; + rot= itsc * spin * (float)M_PI / 180.f; + + /* blur the image */ + for(i= 0; i < iterations; ++i) { + const float cs= cos(rot), ss= sin(rot); + const float isc= 1.f / (1.f + sc); + unsigned int x, y; + float col[4]= {0,0,0,0}; + + for(y= 0; y < img->y; ++y) { + const float v= isc * (y - center_y_pix) + ty; + + for(x= 0; x < img->x; ++x) { + const float u= isc * (x - center_x_pix) + tx; + unsigned int p= (x + y * img->x) * img->type; + + getpix(tmp, cs * u + ss * v + center_x_pix, cs * v - ss * u + center_y_pix, col); + + /* mix img and transformed tmp */ + for(j= 0; j < 4; ++j) + img->rect[p + j]= AVG2(img->rect[p + j], col[j]); + } + } + + /* copy img to tmp */ + if(i != (iterations - 1)) + memcpy(tmp->rect, img->rect, sizeof(float) * img->x * img->y * img->type); + + /* double transformations */ + tx *= 2.f, ty *= 2.f; + sc *= 2.f, rot *= 2.f; + + if(node->exec & NODE_BREAK) break; + } + + free_compbuf(tmp); + } + + return img; +} + +static void node_composit_exec_dblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + NodeDBlurData *ndbd= node->storage; + CompBuf *new, *img= in[0]->data; + + if((img == NULL) || (out[0]->hasoutput == 0)) return; + + if (img->type != CB_RGBA) + new = typecheck_compbuf(img, CB_RGBA); + else + new = dupalloc_compbuf(img); + + out[0]->data= dblur(node, new, ndbd->iter, ndbd->wrap, ndbd->center_x, ndbd->center_y, ndbd->distance, ndbd->angle, ndbd->spin, ndbd->zoom); +} + +static void node_composit_init_dblur(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeDBlurData *ndbd= MEM_callocN(sizeof(NodeDBlurData), "node dblur data"); + node->storage= ndbd; + ndbd->center_x= 0.5; + ndbd->center_y= 0.5; +} + +void register_node_type_cmp_dblur(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DBLUR, "Directional Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_dblur_in, cmp_node_dblur_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_dblur); + node_type_storage(&ntype, "NodeDBlurData", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_dblur); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_displace.c b/source/blender/nodes/composite/nodes/node_composite_displace.c new file mode 100644 index 00000000000..4688553d27f --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_displace.c @@ -0,0 +1,199 @@ +/* + * $Id: CMP_displace.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_displace.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Displace ******************** */ + +static bNodeSocketTemplate cmp_node_displace_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_VECTOR, 1, "Vector", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_TRANSLATION}, + { SOCK_FLOAT, 1, "X Scale", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Y Scale", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_displace_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +/* minimum distance (in pixels) a pixel has to be displaced + * in order to take effect */ +#define DISPLACE_EPSILON 0.01 + +static void do_displace(bNode *node, CompBuf *stackbuf, CompBuf *cbuf, CompBuf *vecbuf, float *UNUSED(veccol), CompBuf *xbuf, CompBuf *ybuf, float *xscale, float *yscale) +{ + ImBuf *ibuf; + int x, y; + float p_dx, p_dy; /* main displacement in pixel space */ + float d_dx, d_dy; + float dxt, dyt; + float u, v; + float xs, ys; + float vec[3], vecdx[3], vecdy[3]; + float col[3]; + + ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + ibuf->rect_float= cbuf->rect; + + for(y=0; y < stackbuf->y; y++) { + for(x=0; x < stackbuf->x; x++) { + /* calc pixel coordinates */ + qd_getPixel(vecbuf, x-vecbuf->xof, y-vecbuf->yof, vec); + + if (xbuf) + qd_getPixel(xbuf, x-xbuf->xof, y-xbuf->yof, &xs); + else + xs = xscale[0]; + + if (ybuf) + qd_getPixel(ybuf, x-ybuf->xof, y-ybuf->yof, &ys); + else + ys = yscale[0]; + + /* clamp x and y displacement to triple image resolution - + * to prevent hangs from huge values mistakenly plugged in eg. z buffers */ + CLAMP(xs, -stackbuf->x*4, stackbuf->x*4); + CLAMP(ys, -stackbuf->y*4, stackbuf->y*4); + + p_dx = vec[0] * xs; + p_dy = vec[1] * ys; + + /* if no displacement, then just copy this pixel */ + if (fabsf(p_dx) < DISPLACE_EPSILON && fabsf(p_dy) < DISPLACE_EPSILON) { + qd_getPixel(cbuf, x-cbuf->xof, y-cbuf->yof, col); + qd_setPixel(stackbuf, x, y, col); + continue; + } + + /* displaced pixel in uv coords, for image sampling */ + u = (x - cbuf->xof - p_dx + 0.5f) / (float)stackbuf->x; + v = (y - cbuf->yof - p_dy + 0.5f) / (float)stackbuf->y; + + + /* calc derivatives */ + qd_getPixel(vecbuf, x-vecbuf->xof+1, y-vecbuf->yof, vecdx); + qd_getPixel(vecbuf, x-vecbuf->xof, y-vecbuf->yof+1, vecdy); + d_dx = vecdx[0] * xs; + d_dy = vecdy[0] * ys; + + /* clamp derivatives to minimum displacement distance in UV space */ + dxt = p_dx - d_dx; + dyt = p_dy - d_dy; + + dxt = signf(dxt)*maxf(fabsf(dxt), DISPLACE_EPSILON)/(float)stackbuf->x; + dyt = signf(dyt)*maxf(fabsf(dyt), DISPLACE_EPSILON)/(float)stackbuf->y; + + ibuf_sample(ibuf, u, v, dxt, dyt, col); + qd_setPixel(stackbuf, x, y, col); + + if(node->exec & NODE_BREAK) break; + } + + if(node->exec & NODE_BREAK) break; + } + IMB_freeImBuf(ibuf); + + +/* simple method for reference, linear interpolation */ +/* + int x, y; + float dx, dy; + float u, v; + float vec[3]; + float col[3]; + + for(y=0; y < stackbuf->y; y++) { + for(x=0; x < stackbuf->x; x++) { + qd_getPixel(vecbuf, x, y, vec); + + dx = vec[0] * (xscale[0]); + dy = vec[1] * (yscale[0]); + + u = (x - dx + 0.5f) / (float)stackbuf->x; + v = (y - dy + 0.5f) / (float)stackbuf->y; + + qd_getPixelLerp(cbuf, u*cbuf->x - 0.5f, v*cbuf->y - 0.5f, col); + qd_setPixel(stackbuf, x, y, col); + } + } +*/ +} + + +static void node_composit_exec_displace(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(out[0]->hasoutput==0) + return; + + if(in[0]->data && in[1]->data) { + CompBuf *cbuf= in[0]->data; + CompBuf *vecbuf= in[1]->data; + CompBuf *xbuf= in[2]->data; + CompBuf *ybuf= in[3]->data; + CompBuf *stackbuf; + + cbuf= typecheck_compbuf(cbuf, CB_RGBA); + vecbuf= typecheck_compbuf(vecbuf, CB_VEC3); + xbuf= typecheck_compbuf(xbuf, CB_VAL); + ybuf= typecheck_compbuf(ybuf, CB_VAL); + + stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + do_displace(node, stackbuf, cbuf, vecbuf, in[1]->vec, xbuf, ybuf, in[2]->vec, in[3]->vec); + + out[0]->data= stackbuf; + + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + if(vecbuf!=in[1]->data) + free_compbuf(vecbuf); + } +} + +void register_node_type_cmp_displace(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DISPLACE, "Displace", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_displace_in, cmp_node_displace_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_displace); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c new file mode 100644 index 00000000000..c895eab391c --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c @@ -0,0 +1,148 @@ +/* + * $Id: CMP_distanceMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_distanceMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* ******************* channel Distance Matte ********************************* */ +static bNodeSocketTemplate cmp_node_distance_matte_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_distance_matte_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +/* note, keyvals is passed on from caller as stack array */ +/* might have been nicer as temp struct though... */ +static void do_distance_matte(bNode *node, float *out, float *in) +{ + NodeChroma *c= (NodeChroma *)node->storage; + float tolerence=c->t1; + float falloff=c->t2; + float distance; + float alpha; + + distance=sqrt((c->key[0]-in[0])*(c->key[0]-in[0]) + + (c->key[1]-in[1])*(c->key[1]-in[1]) + + (c->key[2]-in[2])*(c->key[2]-in[2])); + + VECCOPY(out, in); + + /*make 100% transparent */ + if(distance < tolerence) { + out[3]=0.0; + } + /*in the falloff region, make partially transparent */ + else if(distance < falloff+tolerence){ + distance=distance-tolerence; + alpha=distance/falloff; + /*only change if more transparent than before */ + if(alpha < in[3]) { + out[3]=alpha; + } + else { /* leave as before */ + out[3]=in[3]; + } + } + else { + out[3]=in[3]; + } +} + +static void node_composit_exec_distance_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* + Loosely based on the Sequencer chroma key plug-in, but enhanced to work in other color spaces and + uses a different difference function (suggested in forums of vfxtalk.com). + */ + CompBuf *workbuf; + CompBuf *inbuf; + NodeChroma *c; + + /*is anything connected?*/ + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + /*must have an image imput*/ + if(in[0]->data==NULL) return; + + inbuf=typecheck_compbuf(in[0]->data, CB_RGBA); + + c=node->storage; + workbuf=dupalloc_compbuf(inbuf); + + /*use the input color*/ + c->key[0]= in[1]->vec[0]; + c->key[1]= in[1]->vec[1]; + c->key[2]= in[1]->vec[2]; + + /* note, processor gets a keyvals array passed on as buffer constant */ + composit1_pixel_processor(node, workbuf, workbuf, in[0]->vec, do_distance_matte, CB_RGBA); + + + out[0]->data=workbuf; + if(out[1]->hasoutput) + out[1]->data=valbuf_from_rgbabuf(workbuf, CHAN_A); + generate_preview(data, node, workbuf); + + if(inbuf!=in[0]->data) + free_compbuf(inbuf); +} + +static void node_composit_init_distance_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); + node->storage= c; + c->t1= 0.1f; + c->t2= 0.1f; +} + +void register_node_type_cmp_distance_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_DIST_MATTE, "Distance Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_distance_matte_in, cmp_node_distance_matte_out); + node_type_size(&ntype, 200, 80, 250); + node_type_init(&ntype, node_composit_init_distance_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_distance_matte); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.c b/source/blender/nodes/composite/nodes/node_composite_filter.c new file mode 100644 index 00000000000..6beeec49c63 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_filter.c @@ -0,0 +1,239 @@ +/* + * $Id: CMP_filter.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_filter.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** FILTER ******************** */ +static bNodeSocketTemplate cmp_node_filter_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_filter_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac) +{ + float *row1, *row2, *row3; + float *fp, f1, f2, mfac= 1.0f-fac; + int rowlen, x, y, c, pix= in->type; + + rowlen= in->x; + + for(y=0; yy; y++) { + /* setup rows */ + if(y==0) row1= in->rect; + else row1= in->rect + pix*(y-1)*rowlen; + + row2= in->rect + y*pix*rowlen; + + if(y==in->y-1) row3= row2; + else row3= row2 + pix*rowlen; + + fp= out->rect + pix*y*rowlen; + + if(pix==CB_RGBA) { + QUATCOPY(fp, row2); + fp+= pix; + + for(x=2; xtype; + + rowlen= in->x; + + for(y=0; yy; y++) { + /* setup rows */ + if(y==0) row1= in->rect; + else row1= in->rect + pixlen*(y-1)*rowlen; + + row2= in->rect + y*pixlen*rowlen; + + if(y==in->y-1) row3= row2; + else row3= row2 + pixlen*rowlen; + + fp= out->rect + pixlen*(y)*rowlen; + + if(pixlen==1) { + fp[0]= row2[0]; + fp+= 1; + + for(x=2; xhasoutput==0) return; + + /* stack order in: Image */ + /* stack order out: Image */ + + if(in[1]->data) { + /* make output size of first available input image */ + CompBuf *cbuf= in[1]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); /* allocs */ + + /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ + stackbuf->xof= cbuf->xof; + stackbuf->yof= cbuf->yof; + + switch(node->custom1) { + case CMP_FILT_SOFT: + do_filter3(stackbuf, cbuf, soft, in[0]->vec[0]); + break; + case CMP_FILT_SHARP: + do_filter3(stackbuf, cbuf, sharp, in[0]->vec[0]); + break; + case CMP_FILT_LAPLACE: + do_filter3(stackbuf, cbuf, laplace, in[0]->vec[0]); + break; + case CMP_FILT_SOBEL: + do_filter_edge(stackbuf, cbuf, sobel, in[0]->vec[0]); + break; + case CMP_FILT_PREWITT: + do_filter_edge(stackbuf, cbuf, prewitt, in[0]->vec[0]); + break; + case CMP_FILT_KIRSCH: + do_filter_edge(stackbuf, cbuf, kirsch, in[0]->vec[0]); + break; + case CMP_FILT_SHADOW: + do_filter3(stackbuf, cbuf, shadow, in[0]->vec[0]); + break; + } + + out[0]->data= stackbuf; + + generate_preview(data, node, out[0]->data); + } +} + + +void register_node_type_cmp_filter(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_FILTER, "Filter", NODE_CLASS_OP_FILTER, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_filter_in, cmp_node_filter_out); + node_type_size(&ntype, 80, 40, 120); + node_type_label(&ntype, node_filter_label); + node_type_exec(&ntype, node_composit_exec_filter); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_flip.c b/source/blender/nodes/composite/nodes/node_composite_flip.c new file mode 100644 index 00000000000..026130641a3 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_flip.c @@ -0,0 +1,106 @@ +/* + * $Id: CMP_flip.c 36333 2011-04-26 09:27:43Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_flip.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Flip ******************** */ +static bNodeSocketTemplate cmp_node_flip_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_flip_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_composit_exec_flip(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(in[0]->data) { + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); /* note, this returns zero'd image */ + int i, src_pix, src_width, src_height, srcydelt, outydelt, x, y; + float *srcfp, *outfp; + + src_pix= cbuf->type; + src_width= cbuf->x; + src_height= cbuf->y; + srcfp= cbuf->rect; + outfp= stackbuf->rect; + srcydelt= src_width*src_pix; + outydelt= srcydelt; + + if(node->custom1) { /*set up output pointer for y flip*/ + outfp+= (src_height-1)*outydelt; + outydelt= -outydelt; + } + + for(y=0; ycustom1 == 1) { /* no x flip so just copy line*/ + memcpy(outfp, srcfp, sizeof(float) * src_pix * src_width); + srcfp+=srcydelt; + } + else { + outfp += (src_width-1)*src_pix; + for(x=0; xdata= stackbuf; + + } +} + +void register_node_type_cmp_flip(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_FLIP, "Flip", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_flip_in, cmp_node_flip_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_flip); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_gamma.c b/source/blender/nodes/composite/nodes/node_composite_gamma.c new file mode 100644 index 00000000000..d191f649f1f --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_gamma.c @@ -0,0 +1,90 @@ +/* +* $Id: CMP_gamma.c 36593 2011-05-10 11:19:26Z lukastoenne $ +* +* ***** BEGIN GPL LICENSE BLOCK ***** +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +* The Original Code is Copyright (C) 2006 Blender Foundation. +* All rights reserved. +* +* The Original Code is: all of this file. +* +* Contributor(s): none yet. +* +* ***** END GPL LICENSE BLOCK ***** + +*/ + +/** \file blender/nodes/composite/nodes/node_composite_gamma.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Gamma Tools ******************** */ + +static bNodeSocketTemplate cmp_node_gamma_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Gamma", 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f, PROP_UNSIGNED}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_gamma_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_gamma(bNode *UNUSED(node), float *out, float *in, float *fac) +{ + int i=0; + for(i=0; i<3; i++) { + /* check for negative to avoid nan's */ + out[i] = (in[i] > 0.0f)? pow(in[i],fac[0]): in[i]; + } + out[3] = in[3]; +} +static void node_composit_exec_gamma(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: Fac, Image */ + /* stack order out: Image */ + if(out[0]->hasoutput==0) return; + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + do_gamma(node, out[0]->vec, in[0]->vec, in[1]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); // allocs + + composit2_pixel_processor(node, stackbuf, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_gamma, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_gamma(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_gamma_in, cmp_node_gamma_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_gamma); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_glare.c b/source/blender/nodes/composite/nodes/node_composite_glare.c new file mode 100644 index 00000000000..0890b9ba24b --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_glare.c @@ -0,0 +1,506 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Alfredo de Greef (eeshlo) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_glare.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +static bNodeSocketTemplate cmp_node_glare_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_glare_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + + +// mix two images, src buffer does not have to be same size, +static void mixImages(CompBuf *dst, CompBuf *src, float mix) +{ + int x, y; + fRGB c1, c2, *dcolp, *scolp; + const float mf = 2.f - 2.f*fabsf(mix - 0.5f); + if ((dst->x == src->x) && (dst->y == src->y)) { + for (y=0; yy; y++) { + dcolp = (fRGB*)&dst->rect[y*dst->x*dst->type]; + scolp = (fRGB*)&src->rect[y*dst->x*dst->type]; + for (x=0; xx; x++) { + fRGB_copy(c1, dcolp[x]); + fRGB_copy(c2, scolp[x]); + c1[0] += mix*(c2[0] - c1[0]); + c1[1] += mix*(c2[1] - c1[1]); + c1[2] += mix*(c2[2] - c1[2]); + if (c1[0] < 0.f) c1[0] = 0.f; + if (c1[1] < 0.f) c1[1] = 0.f; + if (c1[2] < 0.f) c1[2] = 0.f; + fRGB_mult(c1, mf); + fRGB_copy(dcolp[x], c1); + } + } + } + else { + float xr = src->x / (float)dst->x; + float yr = src->y / (float)dst->y; + for (y=0; yy; y++) { + dcolp = (fRGB*)&dst->rect[y*dst->x*dst->type]; + for (x=0; xx; x++) { + fRGB_copy(c1, dcolp[x]); + qd_getPixelLerp(src, (x + 0.5f)*xr - 0.5f, (y + 0.5f)*yr - 0.5f, c2); + c1[0] += mix*(c2[0] - c1[0]); + c1[1] += mix*(c2[1] - c1[1]); + c1[2] += mix*(c2[2] - c1[2]); + if (c1[0] < 0.f) c1[0] = 0.f; + if (c1[1] < 0.f) c1[1] = 0.f; + if (c1[2] < 0.f) c1[2] = 0.f; + fRGB_mult(c1, mf); + fRGB_copy(dcolp[x], c1); + } + } + } +} + + +// adds src to dst image, must be of same size +static void addImage(CompBuf* dst, CompBuf* src, float scale) +{ + if ((dst->x == src->x) && (dst->y == src->y)) { + int p = dst->x*dst->y*dst->type; + float *dcol = dst->rect, *scol = src->rect; + while (p--) *dcol++ += *scol++ * scale; + } +} + + +// returns possibly downscaled copy of all pixels above threshold +static CompBuf* BTP(CompBuf* src, float threshold, int scaledown) +{ + int x, y; + CompBuf* bsrc = qd_downScaledCopy(src, scaledown); + float* cr = bsrc->rect; + for (y=0; yy; ++y) + for (x=0; xx; ++x, cr+=4) { + if ((0.212671f*cr[0] + 0.71516f*cr[1] + 0.072169f*cr[2]) >= threshold) { + cr[0] -= threshold, cr[1] -= threshold, cr[2] -= threshold; + cr[0] = MAX2(cr[0], 0.f); + cr[1] = MAX2(cr[1], 0.f); + cr[2] = MAX2(cr[2], 0.f); + } + else cr[0] = cr[1] = cr[2] = 0.f; + } + return bsrc; +} + +//-------------------------------------------------------------------------------------------- +// simple 4-point star filter + +static void star4(NodeGlare* ndg, CompBuf* dst, CompBuf* src) +{ + int x, y, i, xm, xp, ym, yp; + float c[4] = {0,0,0,0}, tc[4] = {0,0,0,0}; + CompBuf *tbuf1, *tbuf2, *tsrc; + const float f1 = 1.f - ndg->fade, f2 = (1.f - f1)*0.5f; + //const float t3 = ndg->threshold*3.f; + const float sc = (float)(1 << ndg->quality); + const float isc = 1.f/sc; + + tsrc = BTP(src, ndg->threshold, (int)sc); + + tbuf1 = dupalloc_compbuf(tsrc); + tbuf2 = dupalloc_compbuf(tsrc); + + for (i=0; iiter; i++) { + // (x || x-1, y-1) to (x || x+1, y+1) + // F + for (y=0; yy; y++) { + ym = y - i; + yp = y + i; + for (x=0; xx; x++) { + xm = x - i; + xp = x + i; + qd_getPixel(tbuf1, x, y, c); + fRGB_mult(c, f1); + qd_getPixel(tbuf1, (ndg->angle ? xm : x), ym, tc); + fRGB_madd(c, tc, f2); + qd_getPixel(tbuf1, (ndg->angle ? xp : x), yp, tc); + fRGB_madd(c, tc, f2); + qd_setPixel(tbuf1, x, y, c); + } + } + // B + for (y=tbuf1->y-1; y>=0; y--) { + ym = y - i; + yp = y + i; + for (x=tbuf1->x-1; x>=0; x--) { + xm = x - i; + xp = x + i; + qd_getPixel(tbuf1, x, y, c); + fRGB_mult(c, f1); + qd_getPixel(tbuf1, (ndg->angle ? xm : x), ym, tc); + fRGB_madd(c, tc, f2); + qd_getPixel(tbuf1, (ndg->angle ? xp : x), yp, tc); + fRGB_madd(c, tc, f2); + qd_setPixel(tbuf1, x, y, c); + } + } + // (x-1, y || y+1) to (x+1, y || y-1) + // F + for (y=0; yy; y++) { + ym = y - i; + yp = y + i; + for (x=0; xx; x++) { + xm = x - i; + xp = x + i; + qd_getPixel(tbuf2, x, y, c); + fRGB_mult(c, f1); + qd_getPixel(tbuf2, xm, (ndg->angle ? yp : y), tc); + fRGB_madd(c, tc, f2); + qd_getPixel(tbuf2, xp, (ndg->angle ? ym : y), tc); + fRGB_madd(c, tc, f2); + qd_setPixel(tbuf2, x, y, c); + } + } + // B + for (y=tbuf2->y-1; y>=0; y--) { + ym = y - i; + yp = y + i; + for (x=tbuf2->x-1; x>=0; x--) { + xm = x - i; + xp = x + i; + qd_getPixel(tbuf2, x, y, c); + fRGB_mult(c, f1); + qd_getPixel(tbuf2, xm, (ndg->angle ? yp : y), tc); + fRGB_madd(c, tc, f2); + qd_getPixel(tbuf2, xp, (ndg->angle ? ym : y), tc); + fRGB_madd(c, tc, f2); + qd_setPixel(tbuf2, x, y, c); + } + } + } + + for (y=0; yy; ++y) + for (x=0; xx; ++x) { + unsigned int p = (x + y*tbuf1->x)*tbuf1->type; + tbuf1->rect[p] += tbuf2->rect[p]; + tbuf1->rect[p+1] += tbuf2->rect[p+1]; + tbuf1->rect[p+2] += tbuf2->rect[p+2]; + } + + for (y=0; yy; ++y) { + const float m = 0.5f + 0.5f*ndg->mix; + for (x=0; xx; ++x) { + unsigned int p = (x + y*dst->x)*dst->type; + qd_getPixelLerp(tbuf1, x*isc, y*isc, tc); + dst->rect[p] = src->rect[p] + m*(tc[0] - src->rect[p]); + dst->rect[p+1] = src->rect[p+1] + m*(tc[1] - src->rect[p+1]); + dst->rect[p+2] = src->rect[p+2] + m*(tc[2] - src->rect[p+2]); + } + } + + free_compbuf(tbuf1); + free_compbuf(tbuf2); + free_compbuf(tsrc); +} + +//-------------------------------------------------------------------------------------------- +// streak filter + +static void streaks(NodeGlare* ndg, CompBuf* dst, CompBuf* src) +{ + CompBuf *bsrc, *tsrc, *tdst, *sbuf; + int x, y, n; + unsigned int nump=0; + fRGB c1, c2, c3, c4; + float a, ang = 360.f/(float)ndg->angle; + + bsrc = BTP(src, ndg->threshold, 1 << ndg->quality); + tsrc = dupalloc_compbuf(bsrc); // sample from buffer + tdst = alloc_compbuf(tsrc->x, tsrc->y, tsrc->type, 1); // sample to buffer + sbuf = alloc_compbuf(tsrc->x, tsrc->y, tsrc->type, 1); // streak sum buffer + + + for (a=0.f; a<360.f; a+=ang) { + const float an = (a + (float)ndg->angle_ofs)*(float)M_PI/180.f; + const float vx = cos((double)an), vy = sin((double)an); + for (n=0; niter; ++n) { + const float p4 = pow(4.0, (double)n); + const float vxp = vx*p4, vyp = vy*p4; + const float wt = pow((double)ndg->fade, (double)p4); + const float cmo = 1.f - pow((double)ndg->colmod, (double)n+1); // colormodulation amount relative to current pass + float* tdstcol = tdst->rect; + for (y=0; yy; ++y) { + for (x=0; xx; ++x, tdstcol+=4) { + // first pass no offset, always same for every pass, exact copy, + // otherwise results in uneven brightness, only need once + if (n==0) qd_getPixel(tsrc, x, y, c1); else c1[0]=c1[1]=c1[2]=0; + qd_getPixelLerp(tsrc, x + vxp, y + vyp, c2); + qd_getPixelLerp(tsrc, x + vxp*2.f, y + vyp*2.f, c3); + qd_getPixelLerp(tsrc, x + vxp*3.f, y + vyp*3.f, c4); + // modulate color to look vaguely similar to a color spectrum + fRGB_rgbmult(c2, 1.f, cmo, cmo); + fRGB_rgbmult(c3, cmo, cmo, 1.f); + fRGB_rgbmult(c4, cmo, 1.f, cmo); + tdstcol[0] = 0.5f*(tdstcol[0] + c1[0] + wt*(c2[0] + wt*(c3[0] + wt*c4[0]))); + tdstcol[1] = 0.5f*(tdstcol[1] + c1[1] + wt*(c2[1] + wt*(c3[1] + wt*c4[1]))); + tdstcol[2] = 0.5f*(tdstcol[2] + c1[2] + wt*(c2[2] + wt*(c3[2] + wt*c4[2]))); + } + } + memcpy(tsrc->rect, tdst->rect, sizeof(float)*tdst->x*tdst->y*tdst->type); + } + + addImage(sbuf, tsrc, 1.f/(float)(6 - ndg->iter)); + memset(tdst->rect, 0, tdst->x*tdst->y*tdst->type*sizeof(float)); + memcpy(tsrc->rect, bsrc->rect, bsrc->x*bsrc->y*bsrc->type*sizeof(float)); + nump++; + } + + mixImages(dst, sbuf, 0.5f + 0.5f*ndg->mix); + + free_compbuf(tsrc); + free_compbuf(tdst); + free_compbuf(sbuf); + free_compbuf(bsrc); +} + + +//-------------------------------------------------------------------------------------------- +// Ghosts (lensflare) + +static float smoothMask(float x, float y) +{ + float t; + x = 2.f*x - 1.f, y = 2.f*y - 1.f; + if ((t = 1.f - sqrtf(x*x + y*y)) <= 0.f) return 0.f; + return t; +} + +static void ghosts(NodeGlare* ndg, CompBuf* dst, CompBuf* src) +{ + // colormodulation and scale factors (cm & scalef) for 16 passes max: 64 + int x, y, n, p, np; + fRGB c, tc, cm[64]; + float sc, isc, u, v, sm, s, t, ofs, scalef[64]; + CompBuf *tbuf1, *tbuf2, *gbuf; + const float cmo = 1.f - ndg->colmod; + const int qt = 1 << ndg->quality; + const float s1 = 4.f/(float)qt, s2 = 2.f*s1; + + gbuf = BTP(src, ndg->threshold, qt); + tbuf1 = dupalloc_compbuf(gbuf); + IIR_gauss(tbuf1, s1, 0, 3); + IIR_gauss(tbuf1, s1, 1, 3); + IIR_gauss(tbuf1, s1, 2, 3); + tbuf2 = dupalloc_compbuf(tbuf1); + IIR_gauss(tbuf2, s2, 0, 3); + IIR_gauss(tbuf2, s2, 1, 3); + IIR_gauss(tbuf2, s2, 2, 3); + + if (ndg->iter & 1) ofs = 0.5f; else ofs = 0.f; + for (x=0; x<(ndg->iter*4); x++) { + y = x & 3; + cm[x][0] = cm[x][1] = cm[x][2] = 1; + if (y==1) fRGB_rgbmult(cm[x], 1.f, cmo, cmo); + if (y==2) fRGB_rgbmult(cm[x], cmo, cmo, 1.f); + if (y==3) fRGB_rgbmult(cm[x], cmo, 1.f, cmo); + scalef[x] = 2.1f*(1.f-(x+ofs)/(float)(ndg->iter*4)); + if (x & 1) scalef[x] = -0.99f/scalef[x]; + } + + sc = 2.13; + isc = -0.97; + for (y=0; yy; y++) { + v = (float)(y+0.5f) / (float)gbuf->y; + for (x=0; xx; x++) { + u = (float)(x+0.5f) / (float)gbuf->x; + s = (u-0.5f)*sc + 0.5f, t = (v-0.5f)*sc + 0.5f; + qd_getPixelLerp(tbuf1, s*gbuf->x, t*gbuf->y, c); + sm = smoothMask(s, t); + fRGB_mult(c, sm); + s = (u-0.5f)*isc + 0.5f, t = (v-0.5f)*isc + 0.5f; + qd_getPixelLerp(tbuf2, s*gbuf->x - 0.5f, t*gbuf->y - 0.5f, tc); + sm = smoothMask(s, t); + fRGB_madd(c, tc, sm); + qd_setPixel(gbuf, x, y, c); + } + } + + memset(tbuf1->rect, 0, tbuf1->x*tbuf1->y*tbuf1->type*sizeof(float)); + for (n=1; niter; n++) { + for (y=0; yy; y++) { + v = (float)(y+0.5f) / (float)gbuf->y; + for (x=0; xx; x++) { + u = (float)(x+0.5f) / (float)gbuf->x; + tc[0] = tc[1] = tc[2] = 0.f; + for (p=0;p<4;p++) { + np = (n<<2) + p; + s = (u-0.5f)*scalef[np] + 0.5f; + t = (v-0.5f)*scalef[np] + 0.5f; + qd_getPixelLerp(gbuf, s*gbuf->x - 0.5f, t*gbuf->y - 0.5f, c); + fRGB_colormult(c, cm[np]); + sm = smoothMask(s, t)*0.25f; + fRGB_madd(tc, c, sm); + } + p = (x + y*tbuf1->x)*tbuf1->type; + tbuf1->rect[p] += tc[0]; + tbuf1->rect[p+1] += tc[1]; + tbuf1->rect[p+2] += tc[2]; + } + } + memcpy(gbuf->rect, tbuf1->rect, tbuf1->x*tbuf1->y*tbuf1->type*sizeof(float)); + } + + free_compbuf(tbuf1); + free_compbuf(tbuf2); + + mixImages(dst, gbuf, 0.5f + 0.5f*ndg->mix); + free_compbuf(gbuf); +} + +//-------------------------------------------------------------------------------------------- +// Fog glow (convolution with kernel of exponential falloff) + +static void fglow(NodeGlare* ndg, CompBuf* dst, CompBuf* src) +{ + int x, y; + float scale, u, v, r, w, d; + fRGB fcol; + CompBuf *tsrc, *ckrn; + unsigned int sz = 1 << ndg->size; + const float cs_r = 1.f, cs_g = 1.f, cs_b = 1.f; + + // temp. src image + tsrc = BTP(src, ndg->threshold, 1 << ndg->quality); + // make the convolution kernel + ckrn = alloc_compbuf(sz, sz, CB_RGBA, 1); + + scale = 0.25f*sqrtf(sz*sz); + + for (y=0; ymix); + free_compbuf(tsrc); +} + +//-------------------------------------------------------------------------------------------- + +static void node_composit_exec_glare(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *new, *src, *img = in[0]->data; + NodeGlare* ndg = node->storage; + + if ((img == NULL) || (out[0]->hasoutput == 0)) return; + + if (img->type != CB_RGBA) { + new = typecheck_compbuf(img, CB_RGBA); + src = typecheck_compbuf(img, CB_RGBA); + } else { + new = dupalloc_compbuf(img); + src = dupalloc_compbuf(img); + } + + { + int x, y; + for (y=0; yy; ++y) { + fRGB* col = (fRGB*)&new->rect[y*new->x*new->type]; + for (x=0; xx; ++x) { + col[x][0] = MAX2(col[x][0], 0.f); + col[x][1] = MAX2(col[x][1], 0.f); + col[x][2] = MAX2(col[x][2], 0.f); + } + } + } + + switch (ndg->type) { + case 0: + star4(ndg, new, src); + break; + case 1: + fglow(ndg, new, src); + break; + case 3: + ghosts(ndg, new, src); + break; + case 2: + default: + streaks(ndg, new, src); + break; + } + + free_compbuf(src); + out[0]->data = new; +} + +static void node_composit_init_glare(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeGlare *ndg = MEM_callocN(sizeof(NodeGlare), "node glare data"); + ndg->quality = 1; + ndg->type = 2; + ndg->iter = 3; + ndg->colmod = 0.25; + ndg->mix = 0; + ndg->threshold = 1; + ndg->angle = 4; + ndg->angle_ofs = 0; + ndg->fade = 0.9; + ndg->size = 8; + node->storage = ndg; +} + +void register_node_type_cmp_glare(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_GLARE, "Glare", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_glare_in, cmp_node_glare_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_glare); + node_type_storage(&ntype, "NodeGlare", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_glare); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c new file mode 100644 index 00000000000..525728ade31 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c @@ -0,0 +1,122 @@ +/* + * $Id: CMP_hueSatVal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_hueSatVal.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Hue Saturation ******************** */ +static bNodeSocketTemplate cmp_node_hue_sat_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_hue_sat_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_hue_sat_fac(bNode *node, float *out, float *in, float *fac) +{ + NodeHueSat *nhs= node->storage; + + if(*fac!=0.0f && (nhs->hue!=0.5f || nhs->sat!=1.0 || nhs->val!=1.0)) { + float col[3], hsv[3], mfac= 1.0f - *fac; + + rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); + hsv[0]+= (nhs->hue - 0.5f); + if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; + hsv[1]*= nhs->sat; + hsv[2]*= nhs->val; + hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); + + out[0]= mfac*in[0] + *fac*col[0]; + out[1]= mfac*in[1] + *fac*col[1]; + out[2]= mfac*in[2] + *fac*col[2]; + out[3]= in[3]; + } + else { + QUATCOPY(out, in); + } +} + +static void node_composit_exec_hue_sat(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: Fac, Image */ + /* stack order out: Image */ + if(out[0]->hasoutput==0) return; + + /* input no image? then only color operation */ + if(in[1]->data==NULL) { + do_hue_sat_fac(node, out[0]->vec, in[1]->vec, in[0]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= dupalloc_compbuf(in[1]->data); + CompBuf *stackbuf=typecheck_compbuf(cbuf,CB_RGBA); + + composit2_pixel_processor(node, stackbuf, stackbuf, in[1]->vec, in[0]->data, in[0]->vec, do_hue_sat_fac, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + + /* get rid of intermediary cbuf if it's extra */ + if(stackbuf!=cbuf) + free_compbuf(cbuf); + } +} + +static void node_composit_init_hue_sat(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeHueSat *nhs= MEM_callocN(sizeof(NodeHueSat), "node hue sat"); + node->storage= nhs; + nhs->hue= 0.5f; + nhs->sat= 1.0f; + nhs->val= 1.0f; +} + +void register_node_type_cmp_hue_sat(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_hue_sat_in, cmp_node_hue_sat_out); + node_type_size(&ntype, 150, 80, 250); + node_type_init(&ntype, node_composit_init_hue_sat); + node_type_storage(&ntype, "NodeHueSat", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_hue_sat); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.c b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c new file mode 100644 index 00000000000..edf26aed882 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c @@ -0,0 +1,170 @@ +/* + * $Id: CMP_huecorrect.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Matt Ebb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_huecorrect.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +static bNodeSocketTemplate cmp_node_huecorrect_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_huecorrect_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_huecorrect(bNode *node, float *out, float *in) +{ + float hsv[3], f; + + rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); + + /* adjust hue, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 0, hsv[0]); + hsv[0] += f-0.5f; + + /* adjust saturation, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 1, hsv[0]); + hsv[1] *= (f * 2.f); + + /* adjust value, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 2, hsv[0]); + hsv[2] *= (f * 2.f); + + hsv[0] = hsv[0] - floor(hsv[0]); /* mod 1.0 */ + CLAMP(hsv[1], 0.f, 1.f); + + /* convert back to rgb */ + hsv_to_rgb(hsv[0], hsv[1], hsv[2], out, out+1, out+2); + + out[3]= in[3]; +} + +static void do_huecorrect_fac(bNode *node, float *out, float *in, float *fac) +{ + float hsv[3], rgb[3], f; + const float mfac = 1.f-*fac; + + rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); + + /* adjust hue, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 0, hsv[0]); + hsv[0] += f-0.5f; + + /* adjust saturation, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 1, hsv[0]); + hsv[1] *= (f * 2.f); + + /* adjust value, scaling returned default 0.5 up to 1 */ + f = curvemapping_evaluateF(node->storage, 2, hsv[0]); + hsv[2] *= (f * 2.f); + + hsv[0] = hsv[0] - floor(hsv[0]); /* mod 1.0 */ + CLAMP(hsv[1], 0.f, 1.f); + + /* convert back to rgb */ + hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); + + out[0]= mfac*in[0] + *fac*rgb[0]; + out[1]= mfac*in[1] + *fac*rgb[1]; + out[2]= mfac*in[2] + *fac*rgb[2]; + out[3]= in[3]; +} + +static void node_composit_exec_huecorrect(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *cbuf= in[1]->data; + CompBuf *stackbuf; + + /* stack order input: fac, image, black level, white level */ + /* stack order output: image */ + + if(out[0]->hasoutput==0) + return; + + if(in[0]->vec[0] == 0.f && in[0]->data == NULL) { + out[0]->data = pass_on_compbuf(cbuf); + return; + } + + /* input no image? then only color operation */ + if(in[1]->data==NULL) { + do_huecorrect_fac(node, out[0]->vec, in[1]->vec, in[0]->vec); + } + + if (cbuf) { + stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* make output size of input image */ + + if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) + composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_huecorrect, CB_RGBA); + else + composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_huecorrect_fac, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + } + +} + +static void node_composit_init_huecorrect(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + CurveMapping *cumapping = node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); + int c; + + cumapping->preset = CURVE_PRESET_MID9; + + for (c=0; c<3; c++) { + CurveMap *cuma = &cumapping->cm[c]; + curvemap_reset(cuma, &cumapping->clipr, cumapping->preset, CURVEMAP_SLOPE_POSITIVE); + } + + /* default to showing Saturation */ + cumapping->cur = 1; +} + +void register_node_type_cmp_huecorrect(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_HUECORRECT, "Hue Correct", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_huecorrect_in, cmp_node_huecorrect_out); + node_type_size(&ntype, 320, 140, 400); + node_type_init(&ntype, node_composit_init_huecorrect); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_composit_exec_huecorrect); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_idMask.c b/source/blender/nodes/composite/nodes/node_composite_idMask.c new file mode 100644 index 00000000000..97d84997697 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_idMask.c @@ -0,0 +1,125 @@ +/* + * $Id: CMP_idMask.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_idMask.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** ID Mask ******************** */ + +static bNodeSocketTemplate cmp_node_idmask_in[]= { + { SOCK_FLOAT, 1, "ID value", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_idmask_out[]= { + { SOCK_FLOAT, 0, "Alpha"}, + { -1, 0, "" } +}; + +/* stackbuf should be zeroed */ +static void do_idmask(CompBuf *stackbuf, CompBuf *cbuf, float idnr) +{ + float *rect; + int x; + char *abuf= MEM_mapallocN(cbuf->x*cbuf->y, "anti ali buf"); + + rect= cbuf->rect; + for(x= cbuf->x*cbuf->y - 1; x>=0; x--) + if(rect[x]==idnr) + abuf[x]= 255; + + antialias_tagbuf(cbuf->x, cbuf->y, abuf); + + rect= stackbuf->rect; + for(x= cbuf->x*cbuf->y - 1; x>=0; x--) + if(abuf[x]>1) + rect[x]= (1.0f/255.0f)*(float)abuf[x]; + + MEM_freeN(abuf); +} + +/* full sample version */ +static void do_idmask_fsa(CompBuf *stackbuf, CompBuf *cbuf, float idnr) +{ + float *rect, *rs; + int x; + + rect= cbuf->rect; + rs= stackbuf->rect; + for(x= cbuf->x*cbuf->y - 1; x>=0; x--) + if(rect[x]==idnr) + rs[x]= 1.0f; + +} + + +static void node_composit_exec_idmask(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + RenderData *rd= data; + + if(out[0]->hasoutput==0) + return; + + if(in[0]->data) { + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf; + + if(cbuf->type!=CB_VAL) + return; + + stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */; + + if(rd->scemode & R_FULL_SAMPLE) + do_idmask_fsa(stackbuf, cbuf, (float)node->custom1); + else + do_idmask(stackbuf, cbuf, (float)node->custom1); + + out[0]->data= stackbuf; + } +} + + +void register_node_type_cmp_idmask(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_ID_MASK, "ID Mask", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_idmask_in, cmp_node_idmask_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_idmask); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c new file mode 100644 index 00000000000..1278202d5b5 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -0,0 +1,452 @@ +/* + * $Id: CMP_image.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_image.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** IMAGE (and RenderResult, multilayer image) ******************** */ + +static bNodeSocketTemplate cmp_node_rlayers_out[]= { + { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "UV", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Speed", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Diffuse", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Specular", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Shadow", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "AO", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Reflect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Refract", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Indirect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "IndexOB", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "IndexMA", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Emit", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Environment",0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + + +/* note: this function is used for multilayer too, to ensure uniform + handling with BKE_image_get_ibuf() */ +static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *iuser) +{ + ImBuf *ibuf; + CompBuf *stackbuf; + int type; + + float *rect; + int alloc= FALSE; + + ibuf= BKE_image_get_ibuf(ima, iuser); + if(ibuf==NULL || (ibuf->rect==NULL && ibuf->rect_float==NULL)) { + return NULL; + } + + if (ibuf->rect_float == NULL) { + IMB_float_from_rect(ibuf); + } + + /* now we need a float buffer from the image with matching color management */ + /* XXX weak code, multilayer is excluded from this */ + if(ibuf->channels == 4 && ima->rr==NULL) { + if(rd->color_mgt_flag & R_COLOR_MANAGEMENT) { + if(ibuf->profile != IB_PROFILE_NONE) { + rect= ibuf->rect_float; + } + else { + rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image"); + srgb_to_linearrgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y); + alloc= TRUE; + } + } + else { + if(ibuf->profile == IB_PROFILE_NONE) { + rect= ibuf->rect_float; + } + else { + rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image"); + linearrgb_to_srgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y); + alloc= TRUE; + } + } + } + else { + /* non-rgba passes can't use color profiles */ + rect= ibuf->rect_float; + } + /* done coercing into the correct color management */ + + + type= ibuf->channels; + + if(rd->scemode & R_COMP_CROP) { + stackbuf= get_cropped_compbuf(&rd->disprect, rect, ibuf->x, ibuf->y, type); + if(alloc) + MEM_freeN(rect); + } + else { + /* we put imbuf copy on stack, cbuf knows rect is from other ibuf when freed! */ + stackbuf= alloc_compbuf(ibuf->x, ibuf->y, type, FALSE); + stackbuf->rect= rect; + stackbuf->malloc= alloc; + } + + /*code to respect the premul flag of images; I'm + not sure if this is a good idea for multilayer images, + since it never worked before for them. + if (type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { + //premul the image + int i; + float *pixel = stackbuf->rect; + + for (i=0; ix*stackbuf->y; i++, pixel += 4) { + pixel[0] *= pixel[3]; + pixel[1] *= pixel[3]; + pixel[2] *= pixel[3]; + } + } + */ + return stackbuf; +} + +static CompBuf *node_composit_get_zimage(bNode *node, RenderData *rd) +{ + ImBuf *ibuf= BKE_image_get_ibuf((Image *)node->id, node->storage); + CompBuf *zbuf= NULL; + + if(ibuf && ibuf->zbuf_float) { + if(rd->scemode & R_COMP_CROP) { + zbuf= get_cropped_compbuf(&rd->disprect, ibuf->zbuf_float, ibuf->x, ibuf->y, CB_VAL); + } + else { + zbuf= alloc_compbuf(ibuf->x, ibuf->y, CB_VAL, 0); + zbuf->rect= ibuf->zbuf_float; + } + } + return zbuf; +} + +/* check if layer is available, returns pass buffer */ +static CompBuf *compbuf_multilayer_get(RenderData *rd, RenderLayer *rl, Image *ima, ImageUser *iuser, int passtype) +{ + RenderPass *rpass; + short index; + + for(index=0, rpass= rl->passes.first; rpass; rpass= rpass->next, index++) + if(rpass->passtype==passtype) + break; + + if(rpass) { + CompBuf *cbuf; + + iuser->pass= index; + BKE_image_multilayer_index(ima->rr, iuser); + cbuf= node_composit_get_image(rd, ima, iuser); + + return cbuf; + } + return NULL; +} + +static void outputs_multilayer_get(RenderData *rd, RenderLayer *rl, bNodeStack **out, Image *ima, ImageUser *iuser) +{ + if(out[RRES_OUT_Z]->hasoutput) + out[RRES_OUT_Z]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_Z); + if(out[RRES_OUT_VEC]->hasoutput) + out[RRES_OUT_VEC]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_VECTOR); + if(out[RRES_OUT_NORMAL]->hasoutput) + out[RRES_OUT_NORMAL]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_NORMAL); + if(out[RRES_OUT_UV]->hasoutput) + out[RRES_OUT_UV]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_UV); + + if(out[RRES_OUT_RGBA]->hasoutput) + out[RRES_OUT_RGBA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_RGBA); + if(out[RRES_OUT_DIFF]->hasoutput) + out[RRES_OUT_DIFF]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_DIFFUSE); + if(out[RRES_OUT_SPEC]->hasoutput) + out[RRES_OUT_SPEC]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_SPEC); + if(out[RRES_OUT_SHADOW]->hasoutput) + out[RRES_OUT_SHADOW]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_SHADOW); + if(out[RRES_OUT_AO]->hasoutput) + out[RRES_OUT_AO]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_AO); + if(out[RRES_OUT_REFLECT]->hasoutput) + out[RRES_OUT_REFLECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_REFLECT); + if(out[RRES_OUT_REFRACT]->hasoutput) + out[RRES_OUT_REFRACT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_REFRACT); + if(out[RRES_OUT_INDIRECT]->hasoutput) + out[RRES_OUT_INDIRECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDIRECT); + if(out[RRES_OUT_INDEXOB]->hasoutput) + out[RRES_OUT_INDEXOB]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXOB); + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXMA); + if(out[RRES_OUT_MIST]->hasoutput) + out[RRES_OUT_MIST]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_MIST); + if(out[RRES_OUT_EMIT]->hasoutput) + out[RRES_OUT_EMIT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_EMIT); + if(out[RRES_OUT_ENV]->hasoutput) + out[RRES_OUT_ENV]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_ENVIRONMENT); +} + + +static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + + /* image assigned to output */ + /* stack order input sockets: col, alpha */ + if(node->id) { + RenderData *rd= data; + Image *ima= (Image *)node->id; + ImageUser *iuser= (ImageUser *)node->storage; + CompBuf *stackbuf= NULL; + + /* first set the right frame number in iuser */ + BKE_image_user_calc_frame(iuser, rd->cfra, 0); + + /* force a load, we assume iuser index will be set OK anyway */ + if(ima->type==IMA_TYPE_MULTILAYER) + BKE_image_get_ibuf(ima, iuser); + + if(ima->type==IMA_TYPE_MULTILAYER && ima->rr) { + RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer); + + if(rl) { + out[0]->data= stackbuf= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_COMBINED); + + /* go over all layers */ + outputs_multilayer_get(rd, rl, out, ima, iuser); + } + } + else { + stackbuf= node_composit_get_image(rd, ima, iuser); + + if (stackbuf) { + /*respect image premul option*/ + if (stackbuf->type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { + int i; + float *pixel; + + /*first duplicate stackbuf->rect, since it's just a pointer + to the source imbuf, and we don't want to change that.*/ + stackbuf->rect = MEM_dupallocN(stackbuf->rect); + + /* since stackbuf now has allocated memory, rather than just a pointer, + * mark it as allocated so it can be freed properly */ + stackbuf->malloc=1; + + /*premul the image*/ + pixel = stackbuf->rect; + for (i=0; ix*stackbuf->y; i++, pixel += 4) { + pixel[0] *= pixel[3]; + pixel[1] *= pixel[3]; + pixel[2] *= pixel[3]; + } + } + + /* put image on stack */ + out[0]->data= stackbuf; + + if(out[2]->hasoutput) + out[2]->data= node_composit_get_zimage(node, rd); + } + } + + /* alpha and preview for both types */ + if(stackbuf) { + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); + + generate_preview(data, node, stackbuf); + } + } +} + +static void node_composit_init_image(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); + node->storage= iuser; + iuser->frames= 1; + iuser->sfra= 1; + iuser->fie_ima= 2; + iuser->ok= 1; +} + +void register_node_type_cmp_image(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_IMAGE, "Image", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, cmp_node_rlayers_out); + node_type_size(&ntype, 120, 80, 300); + node_type_init(&ntype, node_composit_init_image); + node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_image); + + nodeRegisterType(lb, &ntype); +} + + +/* **************** RENDER RESULT ******************** */ + +static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, int recty, int passcode) +{ + float *fp= RE_RenderLayerGetPass(rl, passcode); + if(fp) { + CompBuf *buf; + int buftype= CB_VEC3; + + if(ELEM4(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_INDEXMA)) + buftype= CB_VAL; + else if(passcode==SCE_PASS_VECTOR) + buftype= CB_VEC4; + else if(ELEM(passcode, SCE_PASS_COMBINED, SCE_PASS_RGBA)) + buftype= CB_RGBA; + + if(rd->scemode & R_COMP_CROP) + buf= get_cropped_compbuf(&rd->disprect, fp, rectx, recty, buftype); + else { + buf= alloc_compbuf(rectx, recty, buftype, 0); + buf->rect= fp; + } + return buf; + } + return NULL; +} + +static void node_composit_rlayers_out(RenderData *rd, RenderLayer *rl, bNodeStack **out, int rectx, int recty) +{ + if(out[RRES_OUT_Z]->hasoutput) + out[RRES_OUT_Z]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_Z); + if(out[RRES_OUT_VEC]->hasoutput) + out[RRES_OUT_VEC]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_VECTOR); + if(out[RRES_OUT_NORMAL]->hasoutput) + out[RRES_OUT_NORMAL]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_NORMAL); + if(out[RRES_OUT_UV]->hasoutput) + out[RRES_OUT_UV]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_UV); + + if(out[RRES_OUT_RGBA]->hasoutput) + out[RRES_OUT_RGBA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_RGBA); + if(out[RRES_OUT_DIFF]->hasoutput) + out[RRES_OUT_DIFF]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_DIFFUSE); + if(out[RRES_OUT_SPEC]->hasoutput) + out[RRES_OUT_SPEC]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_SPEC); + if(out[RRES_OUT_SHADOW]->hasoutput) + out[RRES_OUT_SHADOW]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_SHADOW); + if(out[RRES_OUT_AO]->hasoutput) + out[RRES_OUT_AO]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_AO); + if(out[RRES_OUT_REFLECT]->hasoutput) + out[RRES_OUT_REFLECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_REFLECT); + if(out[RRES_OUT_REFRACT]->hasoutput) + out[RRES_OUT_REFRACT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_REFRACT); + if(out[RRES_OUT_INDIRECT]->hasoutput) + out[RRES_OUT_INDIRECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDIRECT); + if(out[RRES_OUT_INDEXOB]->hasoutput) + out[RRES_OUT_INDEXOB]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXOB); + if(out[RRES_OUT_INDEXMA]->hasoutput) + out[RRES_OUT_INDEXMA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXMA); + if(out[RRES_OUT_MIST]->hasoutput) + out[RRES_OUT_MIST]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_MIST); + if(out[RRES_OUT_EMIT]->hasoutput) + out[RRES_OUT_EMIT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_EMIT); + if(out[RRES_OUT_ENV]->hasoutput) + out[RRES_OUT_ENV]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_ENVIRONMENT); +} + +static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + Scene *sce= (Scene *)node->id; + Render *re= (sce)? RE_GetRender(sce->id.name): NULL; + RenderData *rd= data; + RenderResult *rr= NULL; + + if(re) + rr= RE_AcquireResultRead(re); + + if(rr) { + SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1); + if(srl) { + RenderLayer *rl= RE_GetRenderLayer(rr, srl->name); + if(rl && rl->rectf) { + CompBuf *stackbuf; + + /* we put render rect on stack, cbuf knows rect is from other ibuf when freed! */ + if(rd->scemode & R_COMP_CROP) + stackbuf= get_cropped_compbuf(&rd->disprect, rl->rectf, rr->rectx, rr->recty, CB_RGBA); + else { + stackbuf= alloc_compbuf(rr->rectx, rr->recty, CB_RGBA, 0); + stackbuf->rect= rl->rectf; + } + if(stackbuf==NULL) { + printf("Error; Preview Panel in UV Window returns zero sized image\n"); + } + else { + stackbuf->xof= rr->xof; + stackbuf->yof= rr->yof; + + /* put on stack */ + out[RRES_OUT_IMAGE]->data= stackbuf; + + if(out[RRES_OUT_ALPHA]->hasoutput) + out[RRES_OUT_ALPHA]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); + + node_composit_rlayers_out(rd, rl, out, rr->rectx, rr->recty); + + generate_preview(data, node, stackbuf); + } + } + } + } + + if(re) + RE_ReleaseResult(re); +} + + +void register_node_type_cmp_rlayers(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_R_LAYERS, "Render Layers", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, cmp_node_rlayers_out); + node_type_size(&ntype, 150, 100, 300); + node_type_exec(&ntype, node_composit_exec_rlayers); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_invert.c b/source/blender/nodes/composite/nodes/node_composite_invert.c new file mode 100644 index 00000000000..1f7589cae8f --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_invert.c @@ -0,0 +1,135 @@ +/* + * $Id: CMP_invert.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_invert.c + * \ingroup cmpnodes + */ + +#include "node_composite_util.h" + +/* **************** INVERT ******************** */ +static bNodeSocketTemplate cmp_node_invert_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_invert_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void do_invert(bNode *node, float *out, float *in) +{ + if(node->custom1 & CMP_CHAN_RGB) { + out[0] = 1.0f - in[0]; + out[1] = 1.0f - in[1]; + out[2] = 1.0f - in[2]; + } else + VECCOPY(out, in); + + if(node->custom1 & CMP_CHAN_A) + out[3] = 1.0f - in[3]; + else + out[3] = in[3]; +} + +static void do_invert_fac(bNode *node, float *out, float *in, float *fac) +{ + float col[4], facm; + + do_invert(node, col, in); + + /* blend inverted result against original input with fac */ + facm = 1.0 - fac[0]; + + if(node->custom1 & CMP_CHAN_RGB) { + col[0] = fac[0]*col[0] + (facm*in[0]); + col[1] = fac[0]*col[1] + (facm*in[1]); + col[2] = fac[0]*col[2] + (facm*in[2]); + } + if(node->custom1 & CMP_CHAN_A) + col[3] = fac[0]*col[3] + (facm*in[3]); + + QUATCOPY(out, col); +} + +static void node_composit_exec_invert(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: fac, Image, Image */ + /* stack order out: Image */ + float *fac= in[0]->vec; + + if(out[0]->hasoutput==0) return; + + /* input no image? then only color operation */ + if(in[1]->data==NULL && in[0]->data==NULL) { + do_invert_fac(node, out[0]->vec, in[1]->vec, fac); + } + else { + /* make output size of first available input image, or then size of fac */ + CompBuf *cbuf= in[1]->data?in[1]->data:in[0]->data; + + /* if neither RGB or A toggled on, pass through */ + if (node->custom1 != 0) { + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + if (fac[0] < 1.0f || in[0]->data!=NULL) + composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, fac, do_invert_fac, CB_RGBA, CB_VAL); + else + composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_invert, CB_RGBA); + out[0]->data= stackbuf; + return; + + } else { + out[0]->data = pass_on_compbuf(cbuf); + return; + } + } +} + +static void node_composit_init_invert(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1 |= CMP_CHAN_RGB; +} + +/* custom1 = mix type */ +void register_node_type_cmp_invert(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_invert_in, cmp_node_invert_out); + node_type_size(&ntype, 120, 120, 140); + node_type_init(&ntype, node_composit_init_invert); + node_type_exec(&ntype, node_composit_exec_invert); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_lensdist.c b/source/blender/nodes/composite/nodes/node_composite_lensdist.c new file mode 100644 index 00000000000..85578deecbb --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_lensdist.c @@ -0,0 +1,207 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Alfredo de Greef (eeshlo) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_lensdist.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +static bNodeSocketTemplate cmp_node_lensdist_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Distort", 0.f, 0.f, 0.f, 0.f, -0.999f, 1.f, PROP_NONE}, + { SOCK_FLOAT, 1, "Dispersion", 0.f, 0.f, 0.f, 0.f, 0.f, 1.f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_lensdist_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +/* assumes *dst is type RGBA */ +static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb, int jit, int proj, int fit) +{ + int x, y, z; + const float cx = 0.5f*(float)dst->x, cy = 0.5f*(float)dst->y; + + if (proj) { + // shift + CompBuf *tsrc = dupalloc_compbuf(src); + + for (z=0; ztype; ++z) + IIR_gauss(tsrc, (kr+0.5f)*(kr+0.5f), z, 1); + kr *= 20.f; + + for (y=0; yy; y++) { + fRGB *colp = (fRGB*)&dst->rect[y*dst->x*dst->type]; + const float v = (y + 0.5f)/(float)dst->y; + + for (x=0; xx; x++) { + const float u = (x + 0.5f)/(float)dst->x; + + qd_getPixelLerpChan(tsrc, (u*dst->x + kr) - 0.5f, v*dst->y - 0.5f, 0, colp[x]); + if (tsrc->type == CB_VAL) + colp[x][1] = tsrc->rect[x + y*tsrc->x]; + else + colp[x][1] = tsrc->rect[(x + y*tsrc->x)*tsrc->type + 1]; + qd_getPixelLerpChan(tsrc, (u*dst->x - kr) - 0.5f, v*dst->y - 0.5f, 2, colp[x]+2); + + /* set alpha */ + colp[x][3]= 1.0f; + } + } + free_compbuf(tsrc); + } + else { + // Spherical + // Scale factor to make bottom/top & right/left sides fit in window after deform + // so in the case of pincushion (kn < 0), corners will be outside window. + // Now also optionally scales image such that black areas are not visible when distort factor is positive + // (makes distorted corners match window corners, but really only valid if mk<=0.5) + const float mk = MAX3(kr, kg, kb); + const float sc = (fit && (mk > 0.f)) ? (1.f/(1.f + 2.f*mk)) : (1.f/(1.f + mk)); + const float drg = 4.f*(kg - kr), dgb = 4.f*(kb - kg); + + kr *= 4.f, kg *= 4.f, kb *= 4.f; + + for (y=0; yy; y++) { + fRGB *colp = (fRGB*)&dst->rect[y*dst->x*dst->type]; + const float v = sc*((y + 0.5f) - cy)/cy; + + for (x=0; xx; x++) { + int dr = 0, dg = 0, db = 0; + float d, t, ln[6] = {0, 0, 0, 0, 0, 0}; + fRGB c1, tc = {0, 0, 0, 0}; + const float u = sc*((x + 0.5f) - cx)/cx; + int sta = 0, mid = 0, end = 0; + + if ((t = 1.f - kr*(u*u + v*v)) >= 0.f) { + d = 1.f/(1.f + sqrtf(t)); + ln[0] = (u*d + 0.5f)*dst->x - 0.5f, ln[1] = (v*d + 0.5f)*dst->y - 0.5f; + sta = 1; + } + if ((t = 1.f - kg*(u*u + v*v)) >= 0.f) { + d = 1.f/(1.f + sqrtf(t)); + ln[2] = (u*d + 0.5f)*dst->x - 0.5f, ln[3] = (v*d + 0.5f)*dst->y - 0.5f; + mid = 1; + } + if ((t = 1.f - kb*(u*u + v*v)) >= 0.f) { + d = 1.f/(1.f + sqrtf(t)); + ln[4] = (u*d + 0.5f)*dst->x - 0.5f, ln[5] = (v*d + 0.5f)*dst->y - 0.5f; + end = 1; + } + + if (sta && mid && end) { + // RG + const int dx = ln[2] - ln[0], dy = ln[3] - ln[1]; + const float dsf = sqrtf(dx*dx + dy*dy) + 1.f; + const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf); + const float sd = 1.f/(float)ds; + + for (z=0; zx - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1); + if (src->type == CB_VAL) c1[1] = c1[2] = c1[0]; + tc[0] += (1.f-tz)*c1[0], tc[1] += tz*c1[1]; + dr++, dg++; + } + // GB + { + const int dx = ln[4] - ln[2], dy = ln[5] - ln[3]; + const float dsf = sqrtf(dx*dx + dy*dy) + 1.f; + const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf); + const float sd = 1.f/(float)ds; + + for (z=0; zx - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1); + if (src->type == CB_VAL) c1[1] = c1[2] = c1[0]; + tc[1] += (1.f-tz)*c1[1], tc[2] += tz*c1[2]; + dg++, db++; + } + } + } + + if (dr) colp[x][0] = 2.f*tc[0] / (float)dr; + if (dg) colp[x][1] = 2.f*tc[1] / (float)dg; + if (db) colp[x][2] = 2.f*tc[2] / (float)db; + + /* set alpha */ + colp[x][3]= 1.0f; + } + } + } +} + + +static void node_composit_exec_lensdist(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *new, *img = in[0]->data; + NodeLensDist *nld = node->storage; + const float k = MAX2(MIN2(in[1]->vec[0], 1.f), -0.999f); + // smaller dispersion range for somewhat more control + const float d = 0.25f*MAX2(MIN2(in[2]->vec[0], 1.f), 0.f); + const float kr = MAX2(MIN2((k+d), 1.f), -0.999f), kb = MAX2(MIN2((k-d), 1.f), -0.999f); + + if ((img==NULL) || (out[0]->hasoutput==0)) return; + + new = alloc_compbuf(img->x, img->y, CB_RGBA, 1); + + lensDistort(new, img, (nld->proj ? d : kr), k, kb, nld->jit, nld->proj, nld->fit); + + out[0]->data = new; +} + + +static void node_composit_init_lensdist(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeLensDist *nld = MEM_callocN(sizeof(NodeLensDist), "node lensdist data"); + nld->jit = nld->proj = nld->fit = 0; + node->storage = nld; +} + + +void register_node_type_cmp_lensdist(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_LENSDIST, "Lens Distortion", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_lensdist_in, cmp_node_lensdist_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_lensdist); + node_type_storage(&ntype, "NodeLensDist", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_lensdist); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_levels.c b/source/blender/nodes/composite/nodes/node_composite_levels.c new file mode 100644 index 00000000000..673ffe4cbef --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_levels.c @@ -0,0 +1,339 @@ +/* + * $Id: CMP_levels.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_levels.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** LEVELS ******************** */ +static bNodeSocketTemplate cmp_node_view_levels_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_view_levels_out[]={ + {SOCK_FLOAT, 0,"Mean"}, + {SOCK_FLOAT, 0,"Std Dev"}, + {-1,0,""} +}; + +static void rgb_tobw(float r, float g, float b, float* out) +{ + *out= r*0.35f + g*0.45f + b*0.2f; +} + +static void fill_bins(bNode* node, CompBuf* in, int* bins) +{ + float value[4]; + int ivalue=0; + int x,y; + + /*fill bins */ + for(y=0; yy; y++) { + for(x=0; xx; x++) { + + /* get the pixel */ + qd_getPixel(in, x, y, value); + + if(value[3] > 0.0) { /* don't count transparent pixels */ + switch(node->custom1) { + case 1: { /* all colors */ + rgb_tobw(value[0],value[1],value[2], &value[0]); + value[0]=value[0]*255; /* scale to 0-255 range */ + ivalue=(int)value[0]; + break; + } + case 2: { /* red channel */ + value[0]=value[0]*255; /* scale to 0-255 range */ + ivalue=(int)value[0]; + break; + } + case 3: { /* green channel */ + value[1]=value[1]*255; /* scale to 0-255 range */ + ivalue=(int)value[1]; + break; + } + case 4: /*blue channel */ + { + value[2]=value[2]*255; /* scale to 0-255 range */ + ivalue=(int)value[2]; + break; + } + case 5: /* luminence */ + { + rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); + value[0]=value[0]*255; /* scale to 0-255 range */ + ivalue=(int)value[0]; + break; + } + } /*end switch */ + + /*clip*/ + if(ivalue<0) ivalue=0; + if(ivalue>255) ivalue=255; + + /*put in the correct bin*/ + bins[ivalue]+=1; + } /*end if alpha */ + } + } +} + +static float brightness_mean(bNode* node, CompBuf* in) +{ + float sum=0.0; + int numPixels=0.0; + int x,y; + float value[4]; + + for(x=0; x< in->x; x++) { + for(y=0; y < in->y; y++) { + + /* get the pixel */ + qd_getPixel(in, x, y, value); + + if(value[3] > 0.0) { /* don't count transparent pixels */ + numPixels++; + switch(node->custom1) + { + case 1: + { + rgb_tobw(value[0],value[1],value[2], &value[0]); + sum+=value[0]; + break; + } + case 2: + { + sum+=value[0]; + break; + } + case 3: + { + sum+=value[1]; + break; + } + case 4: + { + sum+=value[2]; + break; + } + case 5: + { + rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); + sum+=value[0]; + break; + } + } + } + } + } + + return sum/numPixels; +} + +static float brightness_standard_deviation(bNode* node, CompBuf* in, float mean) +{ + float sum=0.0; + int numPixels=0.0; + int x,y; + float value[4]; + + for(x=0; x< in->x; x++) { + for(y=0; y < in->y; y++) { + + /* get the pixel */ + qd_getPixel(in, x, y, value); + + if(value[3] > 0.0) { /* don't count transparent pixels */ + numPixels++; + switch(node->custom1) + { + case 1: + { + rgb_tobw(value[0],value[1],value[2], &value[0]); + sum+=(value[0]-mean)*(value[0]-mean); + break; + } + case 2: + { + sum+=value[0]; + sum+=(value[0]-mean)*(value[0]-mean); + break; + } + case 3: + { + sum+=value[1]; + sum+=(value[1]-mean)*(value[1]-mean); + break; + } + case 4: + { + sum+=value[2]; + sum+=(value[2]-mean)*(value[2]-mean); + break; + } + case 5: + { + rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); + sum+=(value[0]-mean)*(value[0]-mean); + break; + } + } + } + } + } + + + return sqrt(sum/(float)(numPixels-1)); +} + +static void draw_histogram(bNode *node, CompBuf *out, int* bins) +{ + int x,y; + float color[4]; + float value; + int max; + + /* find max value */ + max=0; + for(x=0; x<256; x++) { + if(bins[x]>max) max=bins[x]; + } + + /*draw histogram in buffer */ + for(x=0; xx; x++) { + for(y=0;yy; y++) { + + /* get normalized value (0..255) */ + value=((float)bins[x]/(float)max)*255.0; + + if(y < (int)value) { /*if the y value is below the height of the bar for this line then draw with the color */ + switch (node->custom1) { + case 1: { /* draw in black */ + color[0]=0.0; color[1]=0.0; color[2]=0.0; color[3]=1.0; + break; + } + case 2: { /* draw in red */ + color[0]=1.0; color[1]=0.0; color[2]=0.0; color[3]=1.0; + break; + } + case 3: { /* draw in green */ + color[0]=0.0; color[1]=1.0; color[2]=0.0; color[3]=1.0; + break; + } + case 4: { /* draw in blue */ + color[0]=0.0; color[1]=0.0; color[2]=1.0; color[3]=1.0; + break; + } + case 5: { /* draw in white */ + color[0]=1.0; color[1]=1.0; color[2]=1.0; color[3]=1.0; + break; + } + } + } + else{ + color[0]=0.8; color[1]=0.8; color[2]=0.8; color[3]=1.0; + } + + /* set the color */ + qd_setPixel(out, x, y, color); + } + } +} + +static void node_composit_exec_view_levels(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf* cbuf; + CompBuf* histogram; + float mean, std_dev; + int bins[256]; + int x; + + if(in[0]->hasinput==0) return; + if(in[0]->data==NULL) return; + + histogram=alloc_compbuf(256, 256, CB_RGBA, 1); + cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); + + /*initalize bins*/ + for(x=0; x<256; x++) { + bins[x]=0; + } + + /*fill bins */ + fill_bins(node, in[0]->data, bins); + + /* draw the histogram chart */ + draw_histogram(node, histogram, bins); + + /* calculate the average brightness and contrast */ + mean=brightness_mean(node, in[0]->data); + std_dev=brightness_standard_deviation(node, in[0]->data, mean); + + /* Printf debuging ;) + printf("Mean: %f\n", mean); + printf("Std Dev: %f\n", std_dev); + */ + + if(out[0]->hasoutput) + out[0]->vec[0]= mean; + if(out[1]->hasoutput) + out[1]->vec[0]= std_dev; + + generate_preview(data, node, histogram); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + free_compbuf(histogram); +} + +static void node_composit_init_view_levels(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1=1; /*All channels*/ +} + +void register_node_type_cmp_view_levels(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_VIEW_LEVELS, "Levels", NODE_CLASS_OUTPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_socket_templates(&ntype, cmp_node_view_levels_in, cmp_node_view_levels_out); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, node_composit_init_view_levels); + node_type_storage(&ntype, "ImageUser", NULL, NULL); + node_type_exec(&ntype, node_composit_exec_view_levels); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c new file mode 100644 index 00000000000..bc7676934fa --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c @@ -0,0 +1,125 @@ +/* + * $Id: CMP_lummaMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Bob Holcomb . + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_lummaMatte.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* ******************* Luma Matte Node ********************************* */ +static bNodeSocketTemplate cmp_node_luma_matte_in[]={ + {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f}, + {-1,0,""} +}; + +static bNodeSocketTemplate cmp_node_luma_matte_out[]={ + {SOCK_RGBA,0,"Image"}, + {SOCK_FLOAT,0,"Matte"}, + {-1,0,""} +}; + +static void do_luma_matte(bNode *node, float *out, float *in) +{ + NodeChroma *c=(NodeChroma *)node->storage; + float alpha; + + alpha=0.0; + + /* test range*/ + if(in[0]>c->t1) { + alpha=1.0; + } + else if(in[0]t2){ + alpha=0.0; + } + else {/*blend */ + alpha=(in[0]-c->t2)/(c->t1-c->t2); + } + + /* don't make something that was more transparent less transparent */ + if (alphahasinput==0) return; + if(in[0]->data==NULL) return; + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; + + cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); + + outbuf=dupalloc_compbuf(cbuf); + + composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_yuva, CB_RGBA); + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_luma_matte, CB_RGBA); + composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_yuva_to_rgba, CB_RGBA); + + generate_preview(data, node, outbuf); + out[0]->data=outbuf; + if (out[1]->hasoutput) + out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); + if(cbuf!=in[0]->data) + free_compbuf(cbuf); +} + +static void node_composit_init_luma_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); + node->storage=c; + c->t1= 1.0f; + c->t2= 0.0f; +} + +void register_node_type_cmp_luma_matte(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_LUMA_MATTE, "Luminance Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_luma_matte_in, cmp_node_luma_matte_out); + node_type_size(&ntype, 200, 80, 250); + node_type_init(&ntype, node_composit_init_luma_matte); + node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_luma_matte); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_mapUV.c b/source/blender/nodes/composite/nodes/node_composite_mapUV.c new file mode 100644 index 00000000000..2d92c26b554 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_mapUV.c @@ -0,0 +1,180 @@ +/* + * $Id: CMP_mapUV.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_mapUV.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Map UV ******************** */ + +static bNodeSocketTemplate cmp_node_mapuv_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_VECTOR, 1, "UV", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_mapuv_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +/* foreach UV, use these values to read in cbuf and write to stackbuf */ +/* stackbuf should be zeroed */ +static void do_mapuv(CompBuf *stackbuf, CompBuf *cbuf, CompBuf *uvbuf, float threshold) +{ + ImBuf *ibuf; + float *out= stackbuf->rect, *uv, *uvnext, *uvprev; + float dx, dy, alpha; + int x, y, sx, sy, row= 3*stackbuf->x; + + /* ibuf needed for sampling */ + ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + ibuf->rect_float= cbuf->rect; + + /* vars for efficient looping */ + uv= uvbuf->rect; + uvnext= uv+row; + uvprev= uv-row; + sx= stackbuf->x; + sy= stackbuf->y; + + for(y=0; y0 && x0 && y 0.20f) dx= 0.20f; + if(dy > 0.20f) dy= 0.20f; + + ibuf_sample(ibuf, uv[0], uv[1], dx, dy, out); + /* premul */ + if(alpha<1.0f) { + out[0]*= alpha; + out[1]*= alpha; + out[2]*= alpha; + out[3]*= alpha; + } + } + } + } + } + + IMB_freeImBuf(ibuf); +} + + +static void node_composit_exec_mapuv(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(out[0]->hasoutput==0) + return; + + if(in[0]->data && in[1]->data) { + CompBuf *cbuf= in[0]->data; + CompBuf *uvbuf= in[1]->data; + CompBuf *stackbuf; + + cbuf= typecheck_compbuf(cbuf, CB_RGBA); + uvbuf= typecheck_compbuf(uvbuf, CB_VEC3); + stackbuf= alloc_compbuf(uvbuf->x, uvbuf->y, CB_RGBA, 1); /* allocs */; + + do_mapuv(stackbuf, cbuf, uvbuf, 0.05f*(float)node->custom1); + + out[0]->data= stackbuf; + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + if(uvbuf!=in[1]->data) + free_compbuf(uvbuf); + } +} + +void register_node_type_cmp_mapuv(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_MAP_UV, "Map UV", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_mapuv_in, cmp_node_mapuv_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_mapuv); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.c b/source/blender/nodes/composite/nodes/node_composite_mapValue.c new file mode 100644 index 00000000000..0d38aca4ce3 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.c @@ -0,0 +1,103 @@ +/* + * $Id: CMP_mapValue.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_mapValue.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** MAP VALUE ******************** */ +static bNodeSocketTemplate cmp_node_map_value_in[]= { + { SOCK_FLOAT, 1, "Value", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_map_value_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void do_map_value(bNode *node, float *out, float *src) +{ + TexMapping *texmap= node->storage; + + out[0]= (src[0] + texmap->loc[0])*texmap->size[0]; + if(texmap->flag & TEXMAP_CLIP_MIN) + if(out[0]min[0]) + out[0]= texmap->min[0]; + if(texmap->flag & TEXMAP_CLIP_MAX) + if(out[0]>texmap->max[0]) + out[0]= texmap->max[0]; +} + +static void node_composit_exec_map_value(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: valbuf */ + /* stack order out: valbuf */ + if(out[0]->hasoutput==0) return; + + /* input no image? then only value operation */ + if(in[0]->data==NULL) { + do_map_value(node, out[0]->vec, in[0]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ + + composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_map_value, CB_VAL); + + out[0]->data= stackbuf; + } +} + + +static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= add_mapping(); +} + +void register_node_type_cmp_map_value(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_MAP_VALUE, "Map Value", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_map_value_in, cmp_node_map_value_out); + node_type_size(&ntype, 100, 60, 150); + node_type_init(&ntype, node_composit_init_map_value); + node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_map_value); + + nodeRegisterType(lb, &ntype); +} + + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_math.c b/source/blender/nodes/composite/nodes/node_composite_math.c new file mode 100644 index 00000000000..2489491fdd8 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_math.c @@ -0,0 +1,214 @@ +/* + * $Id: CMP_math.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_math.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** SCALAR MATH ******************** */ +static bNodeSocketTemplate cmp_node_math_in[]= { + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_math_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void do_math(bNode *node, float *out, float *in, float *in2) +{ + switch(node->custom1) + { + case 0: /* Add */ + out[0]= in[0] + in2[0]; + break; + case 1: /* Subtract */ + out[0]= in[0] - in2[0]; + break; + case 2: /* Multiply */ + out[0]= in[0] * in2[0]; + break; + case 3: /* Divide */ + { + if(in2[0]==0) /* We don't want to divide by zero. */ + out[0]= 0.0; + else + out[0]= in[0] / in2[0]; + } + break; + case 4: /* Sine */ + out[0]= sin(in[0]); + break; + case 5: /* Cosine */ + out[0]= cos(in[0]); + break; + case 6: /* Tangent */ + out[0]= tan(in[0]); + break; + case 7: /* Arc-Sine */ + { + /* Can't do the impossible... */ + if(in[0] <= 1 && in[0] >= -1 ) + out[0]= asin(in[0]); + else + out[0]= 0.0; + } + break; + case 8: /* Arc-Cosine */ + { + /* Can't do the impossible... */ + if( in[0] <= 1 && in[0] >= -1 ) + out[0]= acos(in[0]); + else + out[0]= 0.0; + } + break; + case 9: /* Arc-Tangent */ + out[0]= atan(in[0]); + break; + case 10: /* Power */ + { + /* Only raise negative numbers by full integers */ + if( in[0] >= 0 ) { + out[0]= pow(in[0], in2[0]); + } else { + float y_mod_1 = fmod(in2[0], 1); + /* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */ + if (y_mod_1 > 0.999 || y_mod_1 < 0.001) { + out[0]= pow(in[0], floor(in2[0] + 0.5)); + } else { + out[0] = 0.0; + } + } + } + break; + case 11: /* Logarithm */ + { + /* Don't want any imaginary numbers... */ + if( in[0] > 0 && in2[0] > 0 ) + out[0]= log(in[0]) / log(in2[0]); + else + out[0]= 0.0; + } + break; + case 12: /* Minimum */ + { + if( in[0] < in2[0] ) + out[0]= in[0]; + else + out[0]= in2[0]; + } + break; + case 13: /* Maximum */ + { + if( in[0] > in2[0] ) + out[0]= in[0]; + else + out[0]= in2[0]; + } + break; + case 14: /* Round */ + { + /* round by the second value */ + if( in2[0] != 0.0f ) + out[0]= floorf(in[0] / in2[0] + 0.5f) * in2[0]; + else + out[0]= floorf(in[0] + 0.5f); + } + break; + case 15: /* Less Than */ + { + if( in[0] < in2[0] ) + out[0]= 1.0f; + else + out[0]= 0.0f; + } + break; + case 16: /* Greater Than */ + { + if( in[0] > in2[0] ) + out[0]= 1.0f; + else + out[0]= 0.0f; + } + break; + } +} + +static void node_composit_exec_math(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *cbuf=in[0]->data; + CompBuf *cbuf2=in[1]->data; + CompBuf *stackbuf; + + /* check for inputs and outputs for early out*/ + if(out[0]->hasoutput==0) return; + + /* no image-color operation */ + if(in[0]->data==NULL && in[1]->data==NULL) { + do_math(node, out[0]->vec, in[0]->vec, in[1]->vec); + return; + } + + /*create output based on first input */ + if(cbuf) { + stackbuf=alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); + } + /* and if it doesn't exist use the second input since we + know that one of them must exist at this point*/ + else { + stackbuf=alloc_compbuf(cbuf2->x, cbuf2->y, CB_VAL, 1); + } + + /* operate in case there's valid size */ + composit2_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_math, CB_VAL, CB_VAL); + out[0]->data= stackbuf; +} + +void register_node_type_cmp_math(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_math_in, cmp_node_math_out); + node_type_size(&ntype, 120, 110, 160); + node_type_label(&ntype, node_math_label); + node_type_exec(&ntype, node_composit_exec_math); + + nodeRegisterType(lb, &ntype); +} + + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.c b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c new file mode 100644 index 00000000000..a5dcfcc44da --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c @@ -0,0 +1,99 @@ +/* + * $Id: CMP_mixrgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_mixrgb.c + * \ingroup cmpnodes + */ + +#include "node_composite_util.h" + +/* **************** MIX RGB ******************** */ +static bNodeSocketTemplate cmp_node_mix_rgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 5.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_mix_rgb_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_mix_rgb(bNode *node, float *out, float *in1, float *in2, float *fac) +{ + float col[3]; + + VECCOPY(col, in1); + if(node->custom2) + ramp_blend(node->custom1, col, col+1, col+2, in2[3]*fac[0], in2); + else + ramp_blend(node->custom1, col, col+1, col+2, fac[0], in2); + VECCOPY(out, col); + out[3]= in1[3]; +} + +static void node_composit_exec_mix_rgb(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: fac, Image, Image */ + /* stack order out: Image */ + float *fac= in[0]->vec; + + if(out[0]->hasoutput==0) return; + + /* input no image? then only color operation */ + if(in[1]->data==NULL && in[2]->data==NULL) { + do_mix_rgb(node, out[0]->vec, in[1]->vec, in[2]->vec, fac); + } + else { + /* make output size of first available input image */ + CompBuf *cbuf= in[1]->data?in[1]->data:in[2]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, fac, do_mix_rgb, CB_RGBA, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + + generate_preview(data, node, out[0]->data); + } +} + +/* custom1 = mix type */ +void register_node_type_cmp_mix_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_mix_rgb_in, cmp_node_mix_rgb_out); + node_type_size(&ntype, 110, 60, 120); + node_type_label(&ntype, node_blend_label); + node_type_exec(&ntype, node_composit_exec_mix_rgb); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_normal.c b/source/blender/nodes/composite/nodes/node_composite_normal.c new file mode 100644 index 00000000000..5f3c848903c --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_normal.c @@ -0,0 +1,109 @@ +/* + * $Id: CMP_normal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_normal.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** NORMAL ******************** */ +static bNodeSocketTemplate cmp_node_normal_in[]= { + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_DIRECTION}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate cmp_node_normal_out[]= { + { SOCK_VECTOR, 0, "Normal"}, + { SOCK_FLOAT, 0, "Dot"}, + { -1, 0, "" } +}; + +static void do_normal(bNode *node, float *out, float *in) +{ + bNodeSocket *sock= node->outputs.first; + float *nor= ((bNodeSocketValueVector*)sock->default_value)->value; + + /* render normals point inside... the widget points outside */ + out[0]= -INPR(nor, in); +} + +/* generates normal, does dot product */ +static void node_composit_exec_normal(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float *nor= ((bNodeSocketValueVector*)sock->default_value)->value; + /* stack order input: normal */ + /* stack order output: normal, value */ + + /* input no image? then only vector op */ + if(in[0]->data==NULL) { + VECCOPY(out[0]->vec, nor); + /* render normals point inside... the widget points outside */ + out[1]->vec[0]= -INPR(out[0]->vec, in[0]->vec); + } + else if(out[1]->hasoutput) { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ + + composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_normal, CB_VEC3); + + out[1]->data= stackbuf; + } + + +} + +static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + float *nor= ((bNodeSocketValueVector*)sock->default_value)->value; + + nor[0] = 0.0f; + nor[1] = 0.0f; + nor[2] = 1.0f; +} + +void register_node_type_cmp_normal(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_normal_in, cmp_node_normal_out); + node_type_init(&ntype, init); + node_type_size(&ntype, 100, 60, 200); + node_type_exec(&ntype, node_composit_exec_normal); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_normalize.c b/source/blender/nodes/composite/nodes/node_composite_normalize.c new file mode 100644 index 00000000000..1c5c3b57b80 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_normalize.c @@ -0,0 +1,117 @@ +/* + * $Id: CMP_normalize.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): gsr b3d, and a very minor edit from Robert Holcomb + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_normalize.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** NORMALIZE single channel, useful for Z buffer ******************** */ +static bNodeSocketTemplate cmp_node_normalize_in[]= { + { SOCK_FLOAT, 1, "Value", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_normalize_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void do_normalize(bNode *UNUSED(node), float *out, float *src, float *min, float *mult) +{ + float res; + res = (src[0] - min[0]) * mult[0]; + if (res > 1.0f) { + out[0] = 1.0f; + } + else if (res < 0.0f) { + out[0] = 0.0f; + } + else { + out[0] = res; + } +} + +/* The code below assumes all data is inside range +- this, and that input buffer is single channel */ +#define BLENDER_ZMAX 10000.0f + +static void node_composit_exec_normalize(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: valbuf */ + /* stack order out: valbuf */ + if(out[0]->hasoutput==0) return; + + /* Input has no image buffer? Then pass the value */ + if(in[0]->data==NULL) { + QUATCOPY(out[0]->vec, in[0]->vec); + } + else { + float min = 1.0f+BLENDER_ZMAX; + float max = -1.0f-BLENDER_ZMAX; + float mult = 1.0f; + float *val; + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + int tot= cbuf->x*cbuf->y; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ + + for (val = cbuf->rect; tot; tot--, val++) { + if ((*val > max) && (*val <= BLENDER_ZMAX)) { + max = *val; + } + if ((*val < min) && (*val >= -BLENDER_ZMAX)) { + min = *val; + } + } + /* In the rare case of flat buffer, which would cause a divide by 0, just pass the input to the output */ + if ((max-min) != 0.0f) { + mult = 1.0f/(max-min); + composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, NULL, &min, NULL, &mult, do_normalize, CB_VAL, CB_VAL, CB_VAL); + } else { + memcpy(stackbuf->rect, cbuf->rect, sizeof(float) * cbuf->x * cbuf->y); + } + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_normalize(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_NORMALIZE, "Normalize", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_normalize_in, cmp_node_normalize_out); + node_type_size(&ntype, 100, 60, 150); + node_type_exec(&ntype, node_composit_exec_normalize); + node_type_storage(&ntype, "TexMapping", NULL, NULL); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c new file mode 100644 index 00000000000..13391a4a790 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c @@ -0,0 +1,127 @@ +/* + * $Id: CMP_outputFile.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_outputFile.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** OUTPUT FILE ******************** */ +static bNodeSocketTemplate cmp_node_output_file_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Z", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static void node_composit_exec_output_file(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + /* image assigned to output */ + /* stack order input sockets: col, alpha */ + + if(in[0]->data) { + RenderData *rd= data; + NodeImageFile *nif= node->storage; + if(nif->sfra!=nif->efra && (rd->cfrasfra || rd->cfra>nif->efra)) { + return; /* BAIL OUT RETURN */ + } + else if (!G.rendering) { + /* only output files when rendering a sequence - + * otherwise, it overwrites the output files just + * scrubbing through the timeline when the compositor updates */ + return; + } else { + CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + ImBuf *ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + char string[256]; + + ibuf->rect_float= cbuf->rect; + ibuf->dither= rd->dither_intensity; + + if (rd->color_mgt_flag & R_COLOR_MANAGEMENT) + ibuf->profile = IB_PROFILE_LINEAR_RGB; + + if(in[1]->data) { + CompBuf *zbuf= in[1]->data; + if(zbuf->type==CB_VAL && zbuf->x==cbuf->x && zbuf->y==cbuf->y) { + nif->subimtype|= R_OPENEXR_ZBUF; + ibuf->zbuf_float= zbuf->rect; + } + } + + BKE_makepicstring(string, nif->name, rd->cfra, nif->imtype, (rd->scemode & R_EXTENSION), TRUE); + + if(0 == BKE_write_ibuf(ibuf, string, nif->imtype, nif->subimtype, nif->imtype==R_OPENEXR?nif->codec:nif->quality)) + printf("Cannot save Node File Output to %s\n", string); + else + printf("Saved: %s\n", string); + + IMB_freeImBuf(ibuf); + + generate_preview(data, node, cbuf); + + if(in[0]->data != cbuf) + free_compbuf(cbuf); + } + } +} + +static void node_composit_init_output_file(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + Scene *scene= (Scene *)node->id; + NodeImageFile *nif= MEM_callocN(sizeof(NodeImageFile), "node image file"); + node->storage= nif; + + if(scene) { + BLI_strncpy(nif->name, scene->r.pic, sizeof(nif->name)); + nif->imtype= scene->r.imtype; + nif->subimtype= scene->r.subimtype; + nif->quality= scene->r.quality; + nif->sfra= scene->r.sfra; + nif->efra= scene->r.efra; + } +} + +void register_node_type_cmp_output_file(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_OUTPUT_FILE, "File Output", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_output_file_in, NULL); + node_type_size(&ntype, 140, 80, 300); + node_type_init(&ntype, node_composit_init_output_file); + node_type_storage(&ntype, "NodeImageFile", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_output_file); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_premulkey.c b/source/blender/nodes/composite/nodes/node_composite_premulkey.c new file mode 100644 index 00000000000..066a8a81891 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_premulkey.c @@ -0,0 +1,78 @@ +/* +* $Id: CMP_premulkey.c 36333 2011-04-26 09:27:43Z lukastoenne $ +* +* ***** BEGIN GPL LICENSE BLOCK ***** +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +* The Original Code is Copyright (C) 2006 Blender Foundation. +* All rights reserved. +* +* The Original Code is: all of this file. +* +* Contributor(s): none yet. +* +* ***** END GPL LICENSE BLOCK ***** + +*/ + +/** \file blender/nodes/composite/nodes/node_composite_premulkey.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Premul and Key Alpha Convert ******************** */ + +static bNodeSocketTemplate cmp_node_premulkey_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_premulkey_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_composit_exec_premulkey(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(out[0]->hasoutput==0) + return; + + if(in[0]->data) { + CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + + stackbuf= dupalloc_compbuf(cbuf); + premul_compbuf(stackbuf, node->custom1 == 1); + + out[0]->data = stackbuf; + if(cbuf != in[0]->data) + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_premulkey(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_PREMULKEY, "Alpha Convert", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_premulkey_in, cmp_node_premulkey_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_premulkey); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.c b/source/blender/nodes/composite/nodes/node_composite_rgb.c new file mode 100644 index 00000000000..41a13487edd --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_rgb.c @@ -0,0 +1,77 @@ +/* + * $Id: CMP_rgb.c 36333 2011-04-26 09:27:43Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_rgb.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** RGB ******************** */ +static bNodeSocketTemplate cmp_node_rgb_out[]= { + { SOCK_RGBA, 0, "RGBA", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; + +static void node_composit_init_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value; + /* uses the default value of the output socket, must be initialized here */ + col[0] = 0.5f; + col[1] = 0.5f; + col[2] = 0.5f; + col[3] = 1.0f; +} + +static void node_composit_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value; + + QUATCOPY(out[0]->vec, col); +} + +void register_node_type_cmp_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, cmp_node_rgb_out); + node_type_init(&ntype, node_composit_init_rgb); + node_type_size(&ntype, 140, 80, 140); + node_type_exec(&ntype, node_composit_exec_rgb); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.c b/source/blender/nodes/composite/nodes/node_composite_rotate.c new file mode 100644 index 00000000000..4ece562c508 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_rotate.c @@ -0,0 +1,142 @@ +/* + * $Id: CMP_rotate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_rotate.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Rotate ******************** */ + +static bNodeSocketTemplate cmp_node_rotate_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Degr", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f, PROP_ANGLE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_rotate_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +/* only supports RGBA nodes now */ +static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + + if(out[0]->hasoutput==0) + return; + + if(in[0]->data) { + CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* note, this returns zero'd image */ + float rad, u, v, s, c, centx, centy, miny, maxy, minx, maxx; + int x, y, yo, xo; + ImBuf *ibuf, *obuf; + + rad= (M_PI*in[1]->vec[0])/180.0f; + + s= sin(rad); + c= cos(rad); + centx= cbuf->x/2; + centy= cbuf->y/2; + + minx= -centx; + maxx= -centx + (float)cbuf->x; + miny= -centy; + maxy= -centy + (float)cbuf->y; + + + ibuf=IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + obuf=IMB_allocImBuf(stackbuf->x, stackbuf->y, 32, 0); + + if(ibuf && obuf){ + ibuf->rect_float=cbuf->rect; + obuf->rect_float=stackbuf->rect; + + for(y=miny; ycustom1) { + case 0: + neareast_interpolation(ibuf, obuf, u, v, xo, yo); + break ; + case 1: + bilinear_interpolation(ibuf, obuf, u, v, xo, yo); + break; + case 2: + bicubic_interpolation(ibuf, obuf, u, v, xo, yo); + break; + } + + } + } + + /* rotate offset vector too, but why negative rad, ehh?? Has to be replaced with [3][3] matrix once (ton) */ + s= sin(-rad); + c= cos(-rad); + centx= (float)cbuf->xof; centy= (float)cbuf->yof; + stackbuf->xof= (int)( c*centx + s*centy); + stackbuf->yof= (int)(-s*centx + c*centy); + + IMB_freeImBuf(ibuf); + IMB_freeImBuf(obuf); + } + + /* pass on output and free */ + out[0]->data= stackbuf; + if(cbuf!=in[0]->data) { + free_compbuf(cbuf); + } + } +} + +static void node_composit_init_rotate(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1= 1; /* Bilinear Filter*/ +} + +void register_node_type_cmp_rotate(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_ROTATE, "Rotate", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_rotate_in, cmp_node_rotate_out); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, node_composit_init_rotate); + node_type_exec(&ntype, node_composit_exec_rotate); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_scale.c b/source/blender/nodes/composite/nodes/node_composite_scale.c new file mode 100644 index 00000000000..4ba654e82d4 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_scale.c @@ -0,0 +1,134 @@ +/* + * $Id: CMP_scale.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_scale.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** Scale ******************** */ + +#define CMP_SCALE_MAX 12000 + +static bNodeSocketTemplate cmp_node_scale_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "X", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, CMP_SCALE_MAX, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Y", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, CMP_SCALE_MAX, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_scale_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +/* only supports RGBA nodes now */ +/* node->custom1 stores if input values are absolute or relative scale */ +static void node_composit_exec_scale(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(out[0]->hasoutput==0) + return; + + if(in[0]->data) { + RenderData *rd= data; + CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + ImBuf *ibuf; + int newx, newy; + + if(node->custom1==CMP_SCALE_RELATIVE) { + newx= MAX2((int)(in[1]->vec[0]*cbuf->x), 1); + newy= MAX2((int)(in[2]->vec[0]*cbuf->y), 1); + } + else if(node->custom1==CMP_SCALE_SCENEPERCENT) { + newx = cbuf->x * (rd->size / 100.0f); + newy = cbuf->y * (rd->size / 100.0f); + } + else if (node->custom1==CMP_SCALE_RENDERPERCENT) { + newx= (rd->xsch * rd->size)/100; + newy= (rd->ysch * rd->size)/100; + } else { /* CMP_SCALE_ABSOLUTE */ + newx= MAX2((int)in[1]->vec[0], 1); + newy= MAX2((int)in[2]->vec[0], 1); + } + newx= MIN2(newx, CMP_SCALE_MAX); + newy= MIN2(newy, CMP_SCALE_MAX); + + ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + if(ibuf) { + ibuf->rect_float= cbuf->rect; + IMB_scaleImBuf(ibuf, newx, newy); + + if(ibuf->rect_float == cbuf->rect) { + /* no scaling happened. */ + stackbuf= pass_on_compbuf(in[0]->data); + } + else { + stackbuf= alloc_compbuf(newx, newy, CB_RGBA, 0); + stackbuf->rect= ibuf->rect_float; + stackbuf->malloc= 1; + } + + ibuf->rect_float= NULL; + ibuf->mall &= ~IB_rectfloat; + IMB_freeImBuf(ibuf); + + /* also do the translation vector */ + stackbuf->xof = (int)(((float)newx/(float)cbuf->x) * (float)cbuf->xof); + stackbuf->yof = (int)(((float)newy/(float)cbuf->y) * (float)cbuf->yof); + } + else { + stackbuf= dupalloc_compbuf(cbuf); + printf("Scaling to %dx%d failed\n", newx, newy); + } + + out[0]->data= stackbuf; + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_scale(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SCALE, "Scale", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_scale_in, cmp_node_scale_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_scale); + + nodeRegisterType(lb, &ntype); +} + + + + + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c new file mode 100644 index 00000000000..5460427fd73 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c @@ -0,0 +1,187 @@ +/* + * $Id: CMP_sepcombHSVA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_sepcombHSVA.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** SEPARATE HSVA ******************** */ +static bNodeSocketTemplate cmp_node_sephsva_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_sephsva_out[]= { + { SOCK_FLOAT, 0, "H"}, + { SOCK_FLOAT, 0, "S"}, + { SOCK_FLOAT, 0, "V"}, + { SOCK_FLOAT, 0, "A"}, + { -1, 0, "" } +}; + +static void do_sephsva(bNode *UNUSED(node), float *out, float *in) +{ + float h, s, v; + + rgb_to_hsv(in[0], in[1], in[2], &h, &s, &v); + + out[0]= h; + out[1]= s; + out[2]= v; + out[3]= in[3]; +} + +static void node_composit_exec_sephsva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: bw channels */ + /* stack order in: col */ + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + float h, s, v; + + rgb_to_hsv(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &h, &s, &v); + + out[0]->vec[0] = h; + out[1]->vec[0] = s; + out[2]->vec[0] = v; + out[3]->vec[0] = in[0]->vec[3]; + } + else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { + /* create new buffer so input buffer doesn't get corrupted */ + CompBuf *cbuf= dupalloc_compbuf(in[0]->data); + CompBuf *cbuf2= typecheck_compbuf(cbuf, CB_RGBA); + + /* convert the RGB stackbuf to an HSV representation */ + composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sephsva, CB_RGBA); + + /* separate each of those channels */ + if(out[0]->hasoutput) + out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); + if(out[2]->hasoutput) + out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); + if(out[3]->hasoutput) + out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); + + /*not used anymore */ + if(cbuf2!=cbuf) + free_compbuf(cbuf2); + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_sephsva(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SEPHSVA, "Separate HSVA", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, cmp_node_sephsva_in, cmp_node_sephsva_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_sephsva); + + nodeRegisterType(lb, &ntype); +} + + +/* **************** COMBINE HSVA ******************** */ +static bNodeSocketTemplate cmp_node_combhsva_in[]= { + { SOCK_FLOAT, 1, "H", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "S", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_combhsva_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_comb_hsva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + float r,g,b; + hsv_to_rgb(in1[0], in2[0], in3[0], &r, &g, &b); + + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = in4[0]; +} + +static void node_composit_exec_combhsva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: 1 rgba channels */ + /* stack order in: 4 value channels */ + + /* input no image? then only color operation */ + if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { + out[0]->vec[0] = in[0]->vec[0]; + out[0]->vec[1] = in[1]->vec[0]; + out[0]->vec[2] = in[2]->vec[0]; + out[0]->vec[3] = in[3]->vec[0]; + } + else { + /* make output size of first available input image */ + CompBuf *cbuf; + CompBuf *stackbuf; + + /* allocate a CompBuf the size of the first available input */ + if (in[0]->data) cbuf = in[0]->data; + else if (in[1]->data) cbuf = in[1]->data; + else if (in[2]->data) cbuf = in[2]->data; + else cbuf = in[3]->data; + + stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_comb_hsva, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_combhsva(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COMBHSVA, "Combine HSVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_combhsva_in, cmp_node_combhsva_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_combhsva); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c new file mode 100644 index 00000000000..a074d895acb --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c @@ -0,0 +1,162 @@ +/* + * $Id: CMP_sepcombRGBA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_sepcombRGBA.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** SEPARATE RGBA ******************** */ +static bNodeSocketTemplate cmp_node_seprgba_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_seprgba_out[]= { + { SOCK_FLOAT, 0, "R"}, + { SOCK_FLOAT, 0, "G"}, + { SOCK_FLOAT, 0, "B"}, + { SOCK_FLOAT, 0, "A"}, + { -1, 0, "" } +}; + +static void node_composit_exec_seprgba(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) +{ + /* stack order out: bw channels */ + /* stack order in: col */ + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + out[0]->vec[0] = in[0]->vec[0]; + out[1]->vec[0] = in[0]->vec[1]; + out[2]->vec[0] = in[0]->vec[2]; + out[3]->vec[0] = in[0]->vec[3]; + } + else { + /* make sure we get right rgba buffer */ + CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + + /* don't do any pixel processing, just copy the stack directly (faster, I presume) */ + if(out[0]->hasoutput) + out[0]->data= valbuf_from_rgbabuf(cbuf, CHAN_R); + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(cbuf, CHAN_G); + if(out[2]->hasoutput) + out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B); + if(out[3]->hasoutput) + out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + + } +} + +void register_node_type_cmp_seprgba(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SEPRGBA, "Separate RGBA", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, cmp_node_seprgba_in, cmp_node_seprgba_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_seprgba); + + nodeRegisterType(lb, &ntype); +} + + + +/* **************** COMBINE RGBA ******************** */ +static bNodeSocketTemplate cmp_node_combrgba_in[]= { + { SOCK_FLOAT, 1, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_combrgba_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_combrgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + out[0] = in1[0]; + out[1] = in2[0]; + out[2] = in3[0]; + out[3] = in4[0]; +} + +static void node_composit_exec_combrgba(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: 1 rgba channels */ + /* stack order in: 4 value channels */ + + /* input no image? then only color operation */ + if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { + out[0]->vec[0] = in[0]->vec[0]; + out[0]->vec[1] = in[1]->vec[0]; + out[0]->vec[2] = in[2]->vec[0]; + out[0]->vec[3] = in[3]->vec[0]; + } + else { + /* make output size of first available input image */ + CompBuf *cbuf; + CompBuf *stackbuf; + + /* allocate a CompBuf the size of the first available input */ + if (in[0]->data) cbuf = in[0]->data; + else if (in[1]->data) cbuf = in[1]->data; + else if (in[2]->data) cbuf = in[2]->data; + else cbuf = in[3]->data; + + stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_combrgba, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_combrgba(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COMBRGBA, "Combine RGBA", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_combrgba_in, cmp_node_combrgba_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_combrgba); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c new file mode 100644 index 00000000000..61e88418e59 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c @@ -0,0 +1,313 @@ +/* + * $Id: CMP_sepcombYCCA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_sepcombYCCA.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** SEPARATE YCCA ******************** */ +static bNodeSocketTemplate cmp_node_sepycca_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_sepycca_out[]= { + { SOCK_FLOAT, 0, "Y"}, + { SOCK_FLOAT, 0, "Cb"}, + { SOCK_FLOAT, 0, "Cr"}, + { SOCK_FLOAT, 0, "A"}, + { -1, 0, "" } +}; + +static void do_sepycca_601(bNode *UNUSED(node), float *out, float *in) +{ + float y, cb, cr; + + rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_ITU_BT601); + + /*divided by 255 to normalize for viewing in */ + out[0]= y/255.0; + out[1]= cb/255.0; + out[2]= cr/255.0; + out[3]= in[3]; +} + +static void do_sepycca_709(bNode *UNUSED(node), float *out, float *in) +{ + float y, cb, cr; + + rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_ITU_BT709); + + /*divided by 255 to normalize for viewing in */ + out[0]= y/255.0; + out[1]= cb/255.0; + out[2]= cr/255.0; + out[3]= in[3]; +} + +static void do_sepycca_jfif(bNode *UNUSED(node), float *out, float *in) +{ + float y, cb, cr; + + rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_JFIF_0_255); + + /*divided by 255 to normalize for viewing in */ + out[0]= y/255.0; + out[1]= cb/255.0; + out[2]= cr/255.0; + out[3]= in[3]; +} + +static void node_composit_exec_sepycca(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + float y, cb, cr; + + switch(node->custom1) + { + case 1: + rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_ITU_BT709); + break; + case 2: + rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_JFIF_0_255); + break; + case 0: + default: + rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_ITU_BT601); + break; + } + + /*divided by 255 to normalize for viewing in */ + out[0]->vec[0] = y/255.0; + out[1]->vec[0] = cb/255.0; + out[2]->vec[0] = cr/255.0; + out[3]->vec[0] = in[0]->vec[3]; + } + else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { + /* make copy of buffer so input buffer doesn't get corrupted */ + CompBuf *cbuf= dupalloc_compbuf(in[0]->data); + CompBuf *cbuf2=typecheck_compbuf(cbuf, CB_RGBA); + + /* convert the RGB stackbuf to an HSV representation */ + switch(node->custom1) + { + case 1: + composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_709, CB_RGBA); + break; + case 2: + composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_jfif, CB_RGBA); + break; + case 0: + default: + composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_601, CB_RGBA); + break; + } + + /* separate each of those channels */ + if(out[0]->hasoutput) + out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); + if(out[2]->hasoutput) + out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); + if(out[3]->hasoutput) + out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); + + /*not used anymore */ + if(cbuf2!=cbuf) + free_compbuf(cbuf2); + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_sepycca(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SEPYCCA, "Separate YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_sepycca_in, cmp_node_sepycca_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_sepycca); + + nodeRegisterType(lb, &ntype); +} + + + +/* **************** COMBINE YCCA ******************** */ +static bNodeSocketTemplate cmp_node_combycca_in[]= { + { SOCK_FLOAT, 1, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Cb", 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Cr", 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_combycca_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_comb_ycca_601(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + float r,g,b; + float y, cb, cr; + + /*need to un-normalize the data*/ + y=in1[0]*255; + cb=in2[0]*255; + cr=in3[0]*255; + + ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_ITU_BT601); + + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = in4[0]; +} + +static void do_comb_ycca_709(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + float r,g,b; + float y, cb, cr; + + /*need to un-normalize the data*/ + y=in1[0]*255; + cb=in2[0]*255; + cr=in3[0]*255; + + ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_ITU_BT709); + + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = in4[0]; +} + +static void do_comb_ycca_jfif(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + float r,g,b; + float y, cb, cr; + + /*need to un-normalize the data*/ + y=in1[0]*255; + cb=in2[0]*255; + cr=in3[0]*255; + + ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_JFIF_0_255); + + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = in4[0]; +} + +static void node_composit_exec_combycca(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: 1 ycca channels */ + /* stack order in: 4 value channels */ + + /* input no image? then only color operation */ + if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { + float y = in[0]->vec[0] * 255; + float cb = in[1]->vec[0] * 255; + float cr = in[2]->vec[0] * 255; + + switch(node->custom1) + { + case 1: + ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_ITU_BT709); + break; + case 2: + ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_JFIF_0_255); + break; + case 0: + default: + ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_ITU_BT601); + break; + } + + out[0]->vec[3] = in[3]->vec[0]; + } + else { + /* make output size of first available input image */ + CompBuf *cbuf; + CompBuf *stackbuf; + + /* allocate a CompBuf the size of the first available input */ + if (in[0]->data) cbuf = in[0]->data; + else if (in[1]->data) cbuf = in[1]->data; + else if (in[2]->data) cbuf = in[2]->data; + else cbuf = in[3]->data; + + stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + + switch(node->custom1) + { + case 1: + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_comb_ycca_709, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + break; + + case 2: + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_comb_ycca_jfif, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + break; + case 0: + default: + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_comb_ycca_601, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + break; + } + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_combycca(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COMBYCCA, "Combine YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_combycca_in, cmp_node_combycca_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_combycca); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c new file mode 100644 index 00000000000..14f086300c0 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c @@ -0,0 +1,187 @@ +/* + * $Id: CMP_sepcombYUVA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_sepcombYUVA.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** SEPARATE YUVA ******************** */ +static bNodeSocketTemplate cmp_node_sepyuva_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_sepyuva_out[]= { + { SOCK_FLOAT, 0, "Y"}, + { SOCK_FLOAT, 0, "U"}, + { SOCK_FLOAT, 0, "V"}, + { SOCK_FLOAT, 0, "A"}, + { -1, 0, "" } +}; + +static void do_sepyuva(bNode *UNUSED(node), float *out, float *in) +{ + float y, u, v; + + rgb_to_yuv(in[0], in[1], in[2], &y, &u, &v); + + out[0]= y; + out[1]= u; + out[2]= v; + out[3]= in[3]; +} + +static void node_composit_exec_sepyuva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: bw channels */ + /* stack order in: col */ + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + float y, u, v; + + rgb_to_yuv(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &u, &v); + + out[0]->vec[0] = y; + out[1]->vec[0] = u; + out[2]->vec[0] = v; + out[3]->vec[0] = in[0]->vec[3]; + } + else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { + /* make copy of buffer so input image doesn't get corrupted */ + CompBuf *cbuf= dupalloc_compbuf(in[0]->data); + CompBuf *cbuf2=typecheck_compbuf(cbuf, CB_RGBA); + + /* convert the RGB stackbuf to an YUV representation */ + composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepyuva, CB_RGBA); + + /* separate each of those channels */ + if(out[0]->hasoutput) + out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); + if(out[2]->hasoutput) + out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); + if(out[3]->hasoutput) + out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); + + /*not used anymore */ + if(cbuf2!=cbuf) + free_compbuf(cbuf2); + free_compbuf(cbuf); + } +} + +void register_node_type_cmp_sepyuva(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SEPYUVA, "Separate YUVA", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, cmp_node_sepyuva_in, cmp_node_sepyuva_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_sepyuva); + + nodeRegisterType(lb, &ntype); +} + + + +/* **************** COMBINE YUVA ******************** */ +static bNodeSocketTemplate cmp_node_combyuva_in[]= { + { SOCK_FLOAT, 1, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "U", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_combyuva_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void do_comb_yuva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) +{ + float r,g,b; + yuv_to_rgb(in1[0], in2[0], in3[0], &r, &g, &b); + + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = in4[0]; +} + +static void node_composit_exec_combyuva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: 1 rgba channels */ + /* stack order in: 4 value channels */ + + /* input no image? then only color operation */ + if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { + out[0]->vec[0] = in[0]->vec[0]; + out[0]->vec[1] = in[1]->vec[0]; + out[0]->vec[2] = in[2]->vec[0]; + out[0]->vec[3] = in[3]->vec[0]; + } + else { + /* make output size of first available input image */ + CompBuf *cbuf; + CompBuf *stackbuf; + + /* allocate a CompBuf the size of the first available input */ + if (in[0]->data) cbuf = in[0]->data; + else if (in[1]->data) cbuf = in[1]->data; + else if (in[2]->data) cbuf = in[2]->data; + else cbuf = in[3]->data; + + stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, + in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, + do_comb_yuva, CB_VAL, CB_VAL, CB_VAL, CB_VAL); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_combyuva(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_COMBYUVA, "Combine YUVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_combyuva_in, cmp_node_combyuva_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_composit_exec_combyuva); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_setalpha.c b/source/blender/nodes/composite/nodes/node_composite_setalpha.c new file mode 100644 index 00000000000..781d6f11614 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_setalpha.c @@ -0,0 +1,89 @@ +/* + * $Id: CMP_setalpha.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_setalpha.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** SET ALPHA ******************** */ +static bNodeSocketTemplate cmp_node_setalpha_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_setalpha_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_composit_exec_setalpha(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: RGBA image */ + /* stack order in: col, alpha */ + + /* input no image? then only color operation */ + if(in[0]->data==NULL && in[1]->data==NULL) { + out[0]->vec[0] = in[0]->vec[0]; + out[0]->vec[1] = in[0]->vec[1]; + out[0]->vec[2] = in[0]->vec[2]; + out[0]->vec[3] = in[1]->vec[0]; + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data?in[0]->data:in[1]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + if(in[1]->data==NULL && in[1]->vec[0]==1.0f) { + /* pass on image */ + composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_copy_rgb, CB_RGBA); + } + else { + /* send an compbuf or a value to set as alpha - composit2_pixel_processor handles choosing the right one */ + composit2_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); + } + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_setalpha(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SETALPHA, "Set Alpha", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_setalpha_in, cmp_node_setalpha_out); + node_type_size(&ntype, 120, 40, 140); + node_type_exec(&ntype, node_composit_exec_setalpha); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_splitViewer.c b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c new file mode 100644 index 00000000000..d78faf69e26 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c @@ -0,0 +1,171 @@ +/* + * $Id: CMP_splitViewer.c 36340 2011-04-26 13:24:20Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_splitViewer.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** SPLIT VIEWER ******************** */ +static bNodeSocketTemplate cmp_node_splitviewer_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void do_copy_split_rgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *fac) +{ + if(*fac==0.0f) { + QUATCOPY(out, in1); + } + else { + QUATCOPY(out, in2); + } +} + +static void node_composit_exec_splitviewer(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + /* image assigned to output */ + /* stack order input sockets: image image */ + + if(in[0]->data==NULL || in[1]->data==NULL) + return; + + if(node->id && (node->flag & NODE_DO_OUTPUT)) { /* only one works on out */ + Image *ima= (Image *)node->id; + RenderData *rd= data; + ImBuf *ibuf; + CompBuf *cbuf, *buf1, *buf2, *mask; + int x, y; + float offset; + void *lock; + + buf1= typecheck_compbuf(in[0]->data, CB_RGBA); + buf2= typecheck_compbuf(in[1]->data, CB_RGBA); + + BKE_image_user_calc_frame(node->storage, rd->cfra, 0); + + /* always returns for viewer image, but we check nevertheless */ + ibuf= BKE_image_acquire_ibuf(ima, node->storage, &lock); + if(ibuf==NULL) { + printf("node_composit_exec_viewer error\n"); + BKE_image_release_ibuf(ima, lock); + return; + } + + /* free all in ibuf */ + imb_freerectImBuf(ibuf); + imb_freerectfloatImBuf(ibuf); + IMB_freezbuffloatImBuf(ibuf); + + /* make ibuf, and connect to ima */ + ibuf->x= buf1->x; + ibuf->y= buf1->y; + imb_addrectfloatImBuf(ibuf); + + ima->ok= IMA_OK_LOADED; + + /* output buf */ + cbuf= alloc_compbuf(buf1->x, buf1->y, CB_RGBA, 0); /* no alloc*/ + cbuf->rect= ibuf->rect_float; + + /* mask buf */ + mask= alloc_compbuf(buf1->x, buf1->y, CB_VAL, 1); + + + /* Check which offset mode is selected and limit offset if needed */ + if(node->custom2 == 0) { + offset = buf1->x / 100.0f * node->custom1; + CLAMP(offset, 0, buf1->x); + } + else { + offset = buf1->y / 100.0f * node->custom1; + CLAMP(offset, 0, buf1->y); + } + + if(node->custom2 == 0) { + for(y=0; yy; y++) { + float *fac= mask->rect + y*buf1->x; + for(x=offset; x>0; x--, fac++) + *fac= 1.0f; + } + } + else { + for(y=0; yrect + y*buf1->x; + for(x=buf1->x; x>0; x--, fac++) + *fac= 1.0f; + } + } + + composit3_pixel_processor(node, cbuf, buf1, in[0]->vec, buf2, in[1]->vec, mask, NULL, do_copy_split_rgba, CB_RGBA, CB_RGBA, CB_VAL); + + BKE_image_release_ibuf(ima, lock); + + generate_preview(data, node, cbuf); + free_compbuf(cbuf); + free_compbuf(mask); + + if(in[0]->data != buf1) + free_compbuf(buf1); + if(in[1]->data != buf2) + free_compbuf(buf2); + } +} + +static void node_composit_init_splitviewer(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); + node->storage= iuser; + iuser->sfra= 1; + iuser->fie_ima= 2; + iuser->ok= 1; + node->custom1= 50; /* default 50% split */ +} + +void register_node_type_cmp_splitviewer(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_SPLITVIEWER, "SplitViewer", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_splitviewer_in, NULL); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, node_composit_init_splitviewer); + node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_splitviewer); + + nodeRegisterType(lb, &ntype); +} + + + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_texture.c b/source/blender/nodes/composite/nodes/node_composite_texture.c new file mode 100644 index 00000000000..bdeef74c617 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_texture.c @@ -0,0 +1,160 @@ +/* + * $Id: CMP_texture.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_texture.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** TEXTURE ******************** */ +static bNodeSocketTemplate cmp_node_texture_in[]= { + { SOCK_VECTOR, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f, PROP_TRANSLATION}, + { SOCK_VECTOR, 1, "Scale", 1.0f, 1.0f, 1.0f, 1.0f, -10.0f, 10.0f, PROP_XYZ}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_texture_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { SOCK_RGBA , 0, "Color"}, + { -1, 0, "" } +}; + +/* called without rect allocated */ +static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco) +{ + bNode *node= cbuf->node; + TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL}; + float vec[3], *size, nor[3]={0.0f, 0.0f, 0.0f}, col[4]; + int retval, type= cbuf->procedural_type; + + size= cbuf->procedural_size; + + vec[0]= size[0]*(xco + cbuf->procedural_offset[0]); + vec[1]= size[1]*(yco + cbuf->procedural_offset[1]); + vec[2]= size[2]*cbuf->procedural_offset[2]; + + retval= multitex_ext((Tex *)node->id, vec, NULL, NULL, 0, &texres); + + if(type==CB_VAL) { + if(texres.talpha) + col[0]= texres.ta; + else + col[0]= texres.tin; + } + else if(type==CB_RGBA) { + if(texres.talpha) + col[3]= texres.ta; + else + col[3]= texres.tin; + + if((retval & TEX_RGB)) { + col[0]= texres.tr; + col[1]= texres.tg; + col[2]= texres.tb; + } + else col[0]= col[1]= col[2]= col[3]; + } + else { + VECCOPY(col, nor); + } + + typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type); +} + +/* texture node outputs get a small rect, to make sure all other nodes accept it */ +/* only the pixel-processor nodes do something with it though */ +static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* outputs: value, color, normal */ + + if(node->id) { + RenderData *rd= data; + short sizex, sizey; + + /* first make the preview image */ + CompBuf *prevbuf= alloc_compbuf(140, 140, CB_RGBA, 1); /* alloc */ + + prevbuf->rect_procedural= texture_procedural; + prevbuf->node= node; + VECCOPY(prevbuf->procedural_offset, in[0]->vec); + VECCOPY(prevbuf->procedural_size, in[1]->vec); + prevbuf->procedural_type= CB_RGBA; + composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA); + + generate_preview(data, node, prevbuf); + free_compbuf(prevbuf); + + /* texture procedural buffer type doesnt work well, we now render a buffer in scene size */ + sizex = (rd->size*rd->xsch)/100; + sizey = (rd->size*rd->ysch)/100; + + if(out[0]->hasoutput) { + CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_VAL, 1); /* alloc */ + + stackbuf->rect_procedural= texture_procedural; + stackbuf->node= node; + VECCOPY(stackbuf->procedural_offset, in[0]->vec); + VECCOPY(stackbuf->procedural_size, in[1]->vec); + stackbuf->procedural_type= CB_VAL; + composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_value, CB_VAL); + stackbuf->rect_procedural= NULL; + + out[0]->data= stackbuf; + } + if(out[1]->hasoutput) { + CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_RGBA, 1); /* alloc */ + + stackbuf->rect_procedural= texture_procedural; + stackbuf->node= node; + VECCOPY(stackbuf->procedural_offset, in[0]->vec); + VECCOPY(stackbuf->procedural_size, in[1]->vec); + stackbuf->procedural_type= CB_RGBA; + composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_rgba, CB_RGBA); + stackbuf->rect_procedural= NULL; + + out[1]->data= stackbuf; + } + } +} + +void register_node_type_cmp_texture(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_socket_templates(&ntype, cmp_node_texture_in, cmp_node_texture_out); + node_type_size(&ntype, 120, 80, 240); + node_type_exec(&ntype, node_composit_exec_texture); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/composite/nodes/node_composite_tonemap.c b/source/blender/nodes/composite/nodes/node_composite_tonemap.c new file mode 100644 index 00000000000..31ffed08c95 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_tonemap.c @@ -0,0 +1,179 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Alfredo de Greef (eeshlo) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_tonemap.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +static bNodeSocketTemplate cmp_node_tonemap_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_tonemap_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + + +static float avgLogLum(CompBuf *src, float* auto_key, float* Lav, float* Cav) +{ + float lsum = 0; + int p = src->x*src->y; + fRGB* bc = (fRGB*)src->rect; + float avl, maxl = -1e10f, minl = 1e10f; + const float sc = 1.f/(src->x*src->y); + *Lav = 0.f; + while (p--) { + float L = 0.212671f*bc[0][0] + 0.71516f*bc[0][1] + 0.072169f*bc[0][2]; + *Lav += L; + fRGB_add(Cav, bc[0]); + lsum += (float)log((double)MAX2(L, 0.0) + 1e-5); + maxl = (L > maxl) ? L : maxl; + minl = (L < minl) ? L : minl; + bc++; + } + *Lav *= sc; + fRGB_mult(Cav, sc); + maxl = log((double)maxl + 1e-5); minl = log((double)minl + 1e-5f); avl = lsum*sc; + *auto_key = (maxl > minl) ? ((maxl - avl) / (maxl - minl)) : 1.f; + return exp((double)avl); +} + + +static void tonemap(NodeTonemap* ntm, CompBuf* dst, CompBuf* src) +{ + int x, y; + float dr, dg, db, al, igm = (ntm->gamma==0.f) ? 1 : (1.f / ntm->gamma); + float auto_key, Lav, Cav[3] = {0, 0, 0}; + + al = avgLogLum(src, &auto_key, &Lav, Cav); + al = (al == 0.f) ? 0.f : (ntm->key / al); + + if (ntm->type == 1) { + // Reinhard/Devlin photoreceptor + const float f = exp((double)-ntm->f); + const float m = (ntm->m > 0.f) ? ntm->m : (0.3f + 0.7f*pow((double)auto_key, 1.4)); + const float ic = 1.f - ntm->c, ia = 1.f - ntm->a; + if (ntm->m == 0.f) printf("tonemap node, M: %g\n", m); + for (y=0; yy; ++y) { + fRGB* sp = (fRGB*)&src->rect[y*src->x*src->type]; + fRGB* dp = (fRGB*)&dst->rect[y*src->x*src->type]; + for (x=0; xx; ++x) { + const float L = 0.212671f*sp[x][0] + 0.71516f*sp[x][1] + 0.072169f*sp[x][2]; + float I_l = sp[x][0] + ic*(L - sp[x][0]); + float I_g = Cav[0] + ic*(Lav - Cav[0]); + float I_a = I_l + ia*(I_g - I_l); + dp[x][0] /= (dp[x][0] + pow((double)f*I_a, (double)m)); + I_l = sp[x][1] + ic*(L - sp[x][1]); + I_g = Cav[1] + ic*(Lav - Cav[1]); + I_a = I_l + ia*(I_g - I_l); + dp[x][1] /= (dp[x][1] + pow((double)f*I_a,(double)m)); + I_l = sp[x][2] + ic*(L - sp[x][2]); + I_g = Cav[2] + ic*(Lav - Cav[2]); + I_a = I_l + ia*(I_g - I_l); + dp[x][2] /= (dp[x][2] + pow((double)f*I_a, (double)m)); + } + } + return; + } + + // Reinhard simple photographic tm (simplest, not using whitepoint var) + for (y=0; yy; y++) { + fRGB* sp = (fRGB*)&src->rect[y*src->x*src->type]; + fRGB* dp = (fRGB*)&dst->rect[y*src->x*src->type]; + for (x=0; xx; x++) { + fRGB_copy(dp[x], sp[x]); + fRGB_mult(dp[x], al); + dr = dp[x][0] + ntm->offset; + dg = dp[x][1] + ntm->offset; + db = dp[x][2] + ntm->offset; + dp[x][0] /= ((dr == 0.f) ? 1.f : dr); + dp[x][1] /= ((dg == 0.f) ? 1.f : dg); + dp[x][2] /= ((db == 0.f) ? 1.f : db); + if (igm != 0.f) { + dp[x][0] = pow((double)MAX2(dp[x][0], 0.), igm); + dp[x][1] = pow((double)MAX2(dp[x][1], 0.), igm); + dp[x][2] = pow((double)MAX2(dp[x][2], 0.), igm); + } + } + } +} + + +static void node_composit_exec_tonemap(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + CompBuf *new, *img = in[0]->data; + + if ((img==NULL) || (out[0]->hasoutput==0)) return; + + if (img->type != CB_RGBA) + img = typecheck_compbuf(img, CB_RGBA); + + new = dupalloc_compbuf(img); + + tonemap(node->storage, new, img); + + out[0]->data = new; + + if(img!=in[0]->data) + free_compbuf(img); +} + +static void node_composit_init_tonemap(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTonemap *ntm = MEM_callocN(sizeof(NodeTonemap), "node tonemap data"); + ntm->type = 1; + ntm->key = 0.18; + ntm->offset = 1; + ntm->gamma = 1; + ntm->f = 0; + ntm->m = 0; // actual value is set according to input + // default a of 1 works well with natural HDR images, but not always so for cgi. + // Maybe should use 0 or at least lower initial value instead + ntm->a = 1; + ntm->c = 0; + node->storage = ntm; +} + +void register_node_type_cmp_tonemap(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_TONEMAP, "Tonemap", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_tonemap_in, cmp_node_tonemap_out); + node_type_size(&ntype, 150, 120, 200); + node_type_init(&ntype, node_composit_init_tonemap); + node_type_storage(&ntype, "NodeTonemap", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_tonemap); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/composite/nodes/node_composite_translate.c b/source/blender/nodes/composite/nodes/node_composite_translate.c new file mode 100644 index 00000000000..a07dfb936ae --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_translate.c @@ -0,0 +1,76 @@ +/* + * $Id: CMP_translate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_translate.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Translate ******************** */ + +static bNodeSocketTemplate cmp_node_translate_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "X", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Y", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_translate_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_composit_exec_translate(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) +{ + if(in[0]->data) { + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= pass_on_compbuf(cbuf); + + stackbuf->xof+= (int)floor(in[1]->vec[0]); + stackbuf->yof+= (int)floor(in[2]->vec[0]); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_translate(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_TRANSLATE, "Translate", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_translate_in, cmp_node_translate_out); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, node_composit_exec_translate); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_valToRgb.c b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c new file mode 100644 index 00000000000..9481d769557 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c @@ -0,0 +1,152 @@ +/* + * $Id: CMP_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_valToRgb.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** VALTORGB ******************** */ +static bNodeSocketTemplate cmp_node_valtorgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_valtorgb_out[]= { + { SOCK_RGBA, 0, "Image"}, + { SOCK_FLOAT, 0, "Alpha"}, + { -1, 0, "" } +}; + +static void do_colorband_composit(bNode *node, float *out, float *in) +{ + do_colorband(node->storage, in[0], out); +} + +static void node_composit_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: fac */ + /* stack order out: col, alpha */ + + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) + return; + + if(node->storage) { + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + do_colorband(node->storage, in[0]->vec[0], out[0]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + + composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_colorband_composit, CB_VAL); + + out[0]->data= stackbuf; + + if(out[1]->hasoutput) + out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); + + } + } +} + +static void node_composit_init_valtorgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= add_colorband(1); +} + +void register_node_type_cmp_valtorgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_valtorgb_in, cmp_node_valtorgb_out); + node_type_size(&ntype, 240, 200, 300); + node_type_init(&ntype, node_composit_init_valtorgb); + node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_valtorgb); + + nodeRegisterType(lb, &ntype); +} + + + +/* **************** RGBTOBW ******************** */ +static bNodeSocketTemplate cmp_node_rgbtobw_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_rgbtobw_out[]= { + { SOCK_FLOAT, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void do_rgbtobw(bNode *UNUSED(node), float *out, float *in) +{ + out[0]= in[0]*0.35f + in[1]*0.45f + in[2]*0.2f; +} + +static void node_composit_exec_rgbtobw(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order out: bw */ + /* stack order in: col */ + + if(out[0]->hasoutput==0) + return; + + /* input no image? then only color operation */ + if(in[0]->data==NULL) { + do_rgbtobw(node, out[0]->vec, in[0]->vec); + } + else { + /* make output size of input image */ + CompBuf *cbuf= in[0]->data; + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ + + composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_rgbtobw, CB_RGBA); + + out[0]->data= stackbuf; + } +} + +void register_node_type_cmp_rgbtobw(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, cmp_node_rgbtobw_in, cmp_node_rgbtobw_out); + node_type_size(&ntype, 80, 40, 120); + node_type_exec(&ntype, node_composit_exec_rgbtobw); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_value.c b/source/blender/nodes/composite/nodes/node_composite_value.c new file mode 100644 index 00000000000..e99b665f2ae --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_value.c @@ -0,0 +1,72 @@ +/* + * $Id: CMP_value.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_value.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + +/* **************** VALUE ******************** */ +static bNodeSocketTemplate cmp_node_value_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void node_composit_init_value(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + bNodeSocketValueFloat *dval= (bNodeSocketValueFloat*)sock->default_value; + /* uses the default value of the output socket, must be initialized here */ + dval->value = 0.5f; +} + +static void node_composit_exec_value(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float val= ((bNodeSocketValueFloat*)sock->default_value)->value; + + out[0]->vec[0]= val; +} + +void register_node_type_cmp_value(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, cmp_node_value_out); + node_type_init(&ntype, node_composit_init_value); + node_type_size(&ntype, 80, 40, 120); + node_type_exec(&ntype, node_composit_exec_value); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_vecBlur.c b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c new file mode 100644 index 00000000000..e730728d077 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c @@ -0,0 +1,113 @@ +/* + * $Id: CMP_vecBlur.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_vecBlur.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** VECTOR BLUR ******************** */ +static bNodeSocketTemplate cmp_node_vecblur_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Z", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Speed", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_VELOCITY}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_vecblur_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + + + +static void node_composit_exec_vecblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + NodeBlurData *nbd= node->storage; + CompBuf *new, *img= in[0]->data, *vecbuf= in[2]->data, *zbuf= in[1]->data; + + if(img==NULL || vecbuf==NULL || zbuf==NULL || out[0]->hasoutput==0) + return; + if(vecbuf->x!=img->x || vecbuf->y!=img->y) { + printf("ERROR: cannot do different sized vecbuf yet\n"); + return; + } + if(vecbuf->type!=CB_VEC4) { + printf("ERROR: input should be vecbuf\n"); + return; + } + if(zbuf->type!=CB_VAL) { + printf("ERROR: input should be zbuf\n"); + return; + } + if(zbuf->x!=img->x || zbuf->y!=img->y) { + printf("ERROR: cannot do different sized zbuf yet\n"); + return; + } + + /* allow the input image to be of another type */ + img= typecheck_compbuf(in[0]->data, CB_RGBA); + + new= dupalloc_compbuf(img); + + /* call special zbuffer version */ + RE_zbuf_accumulate_vecblur(nbd, img->x, img->y, new->rect, img->rect, vecbuf->rect, zbuf->rect); + + out[0]->data= new; + + if(img!=in[0]->data) + free_compbuf(img); +} + +static void node_composit_init_vecblur(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeBlurData *nbd= MEM_callocN(sizeof(NodeBlurData), "node blur data"); + node->storage= nbd; + nbd->samples= 32; + nbd->fac= 1.0f; +} + +/* custom1: itterations, custom2: maxspeed (0 = nolimit) */ +void register_node_type_cmp_vecblur(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_VECBLUR, "Vector Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_vecblur_in, cmp_node_vecblur_out); + node_type_size(&ntype, 120, 80, 200); + node_type_init(&ntype, node_composit_init_vecblur); + node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_vecblur); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.c b/source/blender/nodes/composite/nodes/node_composite_viewer.c new file mode 100644 index 00000000000..bcfb45411f1 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_viewer.c @@ -0,0 +1,148 @@ +/* + * $Id: CMP_viewer.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_viewer.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** VIEWER ******************** */ +static bNodeSocketTemplate cmp_node_viewer_in[]= { + { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + + +static void node_composit_exec_viewer(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + /* image assigned to output */ + /* stack order input sockets: col, alpha, z */ + + if(node->id && (node->flag & NODE_DO_OUTPUT)) { /* only one works on out */ + RenderData *rd= data; + Image *ima= (Image *)node->id; + ImBuf *ibuf; + CompBuf *cbuf, *tbuf; + int rectx, recty; + void *lock; + + BKE_image_user_calc_frame(node->storage, rd->cfra, 0); + + /* always returns for viewer image, but we check nevertheless */ + ibuf= BKE_image_acquire_ibuf(ima, node->storage, &lock); + if(ibuf==NULL) { + printf("node_composit_exec_viewer error\n"); + BKE_image_release_ibuf(ima, lock); + return; + } + + /* free all in ibuf */ + imb_freerectImBuf(ibuf); + imb_freerectfloatImBuf(ibuf); + IMB_freezbuffloatImBuf(ibuf); + + /* get size */ + tbuf= in[0]->data?in[0]->data:(in[1]->data?in[1]->data:in[2]->data); + if(tbuf==NULL) { + rectx= 320; recty= 256; + } + else { + rectx= tbuf->x; + recty= tbuf->y; + } + + /* make ibuf, and connect to ima */ + ibuf->x= rectx; + ibuf->y= recty; + imb_addrectfloatImBuf(ibuf); + + ima->ok= IMA_OK_LOADED; + + /* now we combine the input with ibuf */ + cbuf= alloc_compbuf(rectx, recty, CB_RGBA, 0); /* no alloc*/ + cbuf->rect= ibuf->rect_float; + + /* when no alpha, we can simply copy */ + if(in[1]->data==NULL) { + composit1_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, do_copy_rgba, CB_RGBA); + } + else + composit2_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); + + /* zbuf option */ + if(in[2]->data) { + CompBuf *zbuf= alloc_compbuf(rectx, recty, CB_VAL, 1); + ibuf->zbuf_float= zbuf->rect; + ibuf->mall |= IB_zbuffloat; + + composit1_pixel_processor(node, zbuf, in[2]->data, in[2]->vec, do_copy_value, CB_VAL); + + /* free compbuf, but not the rect */ + zbuf->malloc= 0; + free_compbuf(zbuf); + } + + BKE_image_release_ibuf(ima, lock); + + generate_preview(data, node, cbuf); + free_compbuf(cbuf); + + } + else if(in[0]->data) { + generate_preview(data, node, in[0]->data); + } +} + +static void node_composit_init_viewer(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); + node->storage= iuser; + iuser->sfra= 1; + iuser->fie_ima= 2; + iuser->ok= 1; +} + +void register_node_type_cmp_viewer(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_VIEWER, "Viewer", NODE_CLASS_OUTPUT, NODE_PREVIEW); + node_type_socket_templates(&ntype, cmp_node_viewer_in, NULL); + node_type_size(&ntype, 80, 60, 200); + node_type_init(&ntype, node_composit_init_viewer); + node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_composit_exec_viewer); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/composite/nodes/node_composite_zcombine.c b/source/blender/nodes/composite/nodes/node_composite_zcombine.c new file mode 100644 index 00000000000..dfed26be343 --- /dev/null +++ b/source/blender/nodes/composite/nodes/node_composite_zcombine.c @@ -0,0 +1,238 @@ +/* + * $Id: CMP_zcombine.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/composite/nodes/node_composite_zcombine.c + * \ingroup cmpnodes + */ + + +#include "node_composite_util.h" + + +/* **************** Z COMBINE ******************** */ + /* lazy coder note: node->custom2 is abused to send signal */ +static bNodeSocketTemplate cmp_node_zcombine_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 10000.0f, PROP_NONE}, + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { SOCK_FLOAT, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 10000.0f, PROP_NONE}, + { -1, 0, "" } +}; +static bNodeSocketTemplate cmp_node_zcombine_out[]= { + { SOCK_RGBA, 0, "Image"}, + { SOCK_FLOAT, 0, "Z"}, + { -1, 0, "" } +}; + +static void do_zcombine(bNode *node, float *out, float *src1, float *z1, float *src2, float *z2) +{ + float alpha; + float malpha; + + if(*z1 <= *z2) { + if (node->custom1) { + // use alpha in combine operation + alpha= src1[3]; + malpha= 1.0f - alpha; + out[0]= malpha*src2[0] + alpha*src1[0]; + out[1]= malpha*src2[1] + alpha*src1[1]; + out[2]= malpha*src2[2] + alpha*src1[2]; + out[3]= malpha*src2[3] + alpha*src1[3]; + } + else { + // do combination based solely on z value + QUATCOPY(out, src1); + } + } + else { + if (node->custom1) { + // use alpha in combine operation + alpha= src2[3]; + malpha= 1.0f - alpha; + out[0]= malpha*src1[0] + alpha*src2[0]; + out[1]= malpha*src1[1] + alpha*src2[1]; + out[2]= malpha*src1[2] + alpha*src2[2]; + out[3]= malpha*src1[3] + alpha*src2[3]; + } + else { + // do combination based solely on z value + QUATCOPY(out, src1); + } + + if(node->custom2) + *z1= *z2; + } +} + +static void do_zcombine_mask(bNode *node, float *out, float *z1, float *z2) +{ + if(*z1 > *z2) { + *out= 1.0f; + if(node->custom2) + *z1= *z2; + } +} + +static void do_zcombine_add(bNode *node, float *out, float *col1, float *col2, float *acol) +{ + float alpha; + float malpha; + + if (node->custom1) { + // use alpha in combine operation, antialiased mask in used here just as hint for the z value + if (*acol>0.0f) { + alpha= col2[3]; + malpha= 1.0f - alpha; + + + out[0]= malpha*col1[0] + alpha*col2[0]; + out[1]= malpha*col1[1] + alpha*col2[1]; + out[2]= malpha*col1[2] + alpha*col2[2]; + out[3]= malpha*col1[3] + alpha*col2[3]; + } + else { + alpha= col1[3]; + malpha= 1.0f - alpha; + + + out[0]= malpha*col2[0] + alpha*col1[0]; + out[1]= malpha*col2[1] + alpha*col1[1]; + out[2]= malpha*col2[2] + alpha*col1[2]; + out[3]= malpha*col2[3] + alpha*col1[3]; + } + } + else { + // do combination based solely on z value but with antialiased mask + alpha = *acol; + malpha= 1.0f - alpha; + + out[0]= malpha*col1[0] + alpha*col2[0]; + out[1]= malpha*col1[1] + alpha*col2[1]; + out[2]= malpha*col1[2] + alpha*col2[2]; + out[3]= malpha*col1[3] + alpha*col2[3]; + } +} + +static void node_composit_exec_zcombine(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + RenderData *rd= data; + CompBuf *cbuf= in[0]->data; + CompBuf *zbuf; + + /* stack order in: col z col z */ + /* stack order out: col z */ + if(out[0]->hasoutput==0 && out[1]->hasoutput==0) + return; + + /* no input image; do nothing now */ + if(in[0]->data==NULL) { + return; + } + + if(out[1]->hasoutput) { + /* copy or make a buffer for for the first z value, here we write result in */ + if(in[1]->data) + zbuf= dupalloc_compbuf(in[1]->data); + else { + float *zval; + int tot= cbuf->x*cbuf->y; + + zbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); + for(zval= zbuf->rect; tot; tot--, zval++) + *zval= in[1]->vec[0]; + } + /* lazy coder hack */ + node->custom2= 1; + out[1]->data= zbuf; + } + else { + node->custom2= 0; + zbuf= in[1]->data; + } + + if(rd->scemode & R_FULL_SAMPLE) { + /* make output size of first input image */ + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); // allocs + + composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, zbuf, in[1]->vec, in[2]->data, in[2]->vec, + in[3]->data, in[3]->vec, do_zcombine, CB_RGBA, CB_VAL, CB_RGBA, CB_VAL); + + out[0]->data= stackbuf; + } + else { + /* make output size of first input image */ + CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ + CompBuf *mbuf; + float *fp; + int x; + char *aabuf; + + + /* make a mask based on comparison, optionally write zvalue */ + mbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); + composit2_pixel_processor(node, mbuf, zbuf, in[1]->vec, in[3]->data, in[3]->vec, do_zcombine_mask, CB_VAL, CB_VAL); + + /* convert to char */ + aabuf= MEM_mallocN(cbuf->x*cbuf->y, "aa buf"); + fp= mbuf->rect; + for(x= cbuf->x*cbuf->y-1; x>=0; x--) + if(fp[x]==0.0f) aabuf[x]= 0; + else aabuf[x]= 255; + + antialias_tagbuf(cbuf->x, cbuf->y, aabuf); + + /* convert to float */ + fp= mbuf->rect; + for(x= cbuf->x*cbuf->y-1; x>=0; x--) + if(aabuf[x]>1) + fp[x]= (1.0f/255.0f)*(float)aabuf[x]; + + composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[2]->data, in[2]->vec, mbuf, NULL, + do_zcombine_add, CB_RGBA, CB_RGBA, CB_VAL); + /* free */ + free_compbuf(mbuf); + MEM_freeN(aabuf); + + out[0]->data= stackbuf; + } + +} + +void register_node_type_cmp_zcombine(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, CMP_NODE_ZCOMBINE, "Z Combine", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, cmp_node_zcombine_in, cmp_node_zcombine_out); + node_type_size(&ntype, 80, 40, 120); + node_type_exec(&ntype, node_composit_exec_zcombine); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c b/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c deleted file mode 100644 index 9dcdfaf21e6..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_alphaOver.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** ALPHAOVER ******************** */ -static bNodeSocketType cmp_node_alphaover_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_alphaover_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_alphaover_premul(bNode *UNUSED(node), float *out, float *src, float *over, float *fac) -{ - - if(over[3]<=0.0f) { - QUATCOPY(out, src); - } - else if(fac[0]==1.0f && over[3]>=1.0f) { - QUATCOPY(out, over); - } - else { - float mul= 1.0f - fac[0]*over[3]; - - out[0]= (mul*src[0]) + fac[0]*over[0]; - out[1]= (mul*src[1]) + fac[0]*over[1]; - out[2]= (mul*src[2]) + fac[0]*over[2]; - out[3]= (mul*src[3]) + fac[0]*over[3]; - } -} - -/* result will be still premul, but the over part is premulled */ -static void do_alphaover_key(bNode *UNUSED(node), float *out, float *src, float *over, float *fac) -{ - - if(over[3]<=0.0f) { - QUATCOPY(out, src); - } - else if(fac[0]==1.0f && over[3]>=1.0f) { - QUATCOPY(out, over); - } - else { - float premul= fac[0]*over[3]; - float mul= 1.0f - premul; - - out[0]= (mul*src[0]) + premul*over[0]; - out[1]= (mul*src[1]) + premul*over[1]; - out[2]= (mul*src[2]) + premul*over[2]; - out[3]= (mul*src[3]) + fac[0]*over[3]; - } -} - -/* result will be still premul, but the over part is premulled */ -static void do_alphaover_mixed(bNode *node, float *out, float *src, float *over, float *fac) -{ - - if(over[3]<=0.0f) { - QUATCOPY(out, src); - } - else if(fac[0]==1.0f && over[3]>=1.0f) { - QUATCOPY(out, over); - } - else { - NodeTwoFloats *ntf= node->storage; - float addfac= 1.0f - ntf->x + over[3]*ntf->x; - float premul= fac[0]*addfac; - float mul= 1.0f - fac[0]*over[3]; - - out[0]= (mul*src[0]) + premul*over[0]; - out[1]= (mul*src[1]) + premul*over[1]; - out[2]= (mul*src[2]) + premul*over[2]; - out[3]= (mul*src[3]) + fac[0]*over[3]; - } -} - - - - -static void node_composit_exec_alphaover(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: col col */ - /* stack order out: col */ - if(out[0]->hasoutput==0) - return; - - /* input no image? then only color operation */ - if(in[1]->data==NULL && in[2]->data==NULL) { - do_alphaover_premul(node, out[0]->vec, in[1]->vec, in[2]->vec, in[0]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[1]->data?in[1]->data:in[2]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - NodeTwoFloats *ntf= node->storage; - - if(ntf->x != 0.0f) - composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_mixed, CB_RGBA, CB_RGBA, CB_VAL); - else if(node->custom1) - composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_key, CB_RGBA, CB_RGBA, CB_VAL); - else - composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, in[0]->vec, do_alphaover_premul, CB_RGBA, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - } -} - -static void node_alphaover_init(bNode* node) -{ - node->storage= MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats"); -} - -void register_node_type_cmp_alphaover(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_ALPHAOVER, "AlphaOver", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_alphaover_in, cmp_node_alphaover_out); - node_type_size(&ntype, 80, 40, 120); - node_type_init(&ntype, node_alphaover_init); - node_type_storage(&ntype, "NodeTwoFloats", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_alphaover); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c b/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c deleted file mode 100644 index c106b437e17..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c +++ /dev/null @@ -1,271 +0,0 @@ -/* - * - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Vilem Novak - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c - * \ingroup cmpnodes - */ - -#include "../CMP_util.h" - -/* **************** BILATERALBLUR ******************** */ -static bNodeSocketType cmp_node_bilateralblur_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Determinator", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_bilateralblur_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -#define INIT_C3\ - mean0 = 1; mean1[0] = src[0];mean1[1] = src[1];mean1[2] = src[2];mean1[3] = src[3]; - -/* finds color distances */ -#define COLOR_DISTANCE_C3(c1, c2)\ - ((c1[0] - c2[0])*(c1[0] - c2[0]) + \ - (c1[1] - c2[1])*(c1[1] - c2[1]) + \ - (c1[2] - c2[2])*(c1[2] - c2[2]) + \ - (c1[3] - c2[3])*(c1[3] - c2[3])) - -/* this is the main kernel function for comparing color distances - and adding them weighted to the final color */ -#define KERNEL_ELEMENT_C3(k)\ - temp_color = src + deltas[k];\ - ref_color = ref + deltas[k];\ - w = weight_tab[k] + COLOR_DISTANCE_C3(ref, ref_color )*i2sigma_color;\ - w = 1./(w*w + 1); \ - mean0 += w;\ - mean1[0] += temp_color[0]*w; \ - mean1[1] += temp_color[1]*w; \ - mean1[2] += temp_color[2]*w; \ - mean1[3] += temp_color[3]*w; - -/* write blurred values to image */ -#define UPDATE_OUTPUT_C3\ - mean0 = 1./mean0;\ - dest[x*pix + 0] = mean1[0]*mean0; \ - dest[x*pix + 1] = mean1[1]*mean0; \ - dest[x*pix + 2] = mean1[2]*mean0; \ - dest[x*pix + 3] = mean1[3]*mean0; - -/* initializes deltas for fast access to neighbour pixels */ -#define INIT_3X3_DELTAS( deltas, step, nch ) \ - ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \ - (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \ - (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \ - (deltas)[6] = (step), (deltas)[7] = (step) + (nch)); - - -/* code of this node was heavily inspired by the smooth function of opencv library. -The main change is an optional image input */ -static void node_composit_exec_bilateralblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - NodeBilateralBlurData *nbbd= node->storage; - CompBuf *new, *source, *img= in[0]->data , *refimg= in[1]->data; - double mean0, w, i2sigma_color, i2sigma_space; - double mean1[4]; - double weight_tab[8]; - float *src, *dest, *ref, *temp_color, *ref_color; - float sigma_color, sigma_space; - int imgx, imgy, x, y, pix, i, step; - int deltas[8]; - short found_determinator= 0; - - if(img == NULL || out[0]->hasoutput == 0) - return; - - if(img->type != CB_RGBA) { - img= typecheck_compbuf(in[0]->data, CB_RGBA); - } - - imgx= img->x; - imgy= img->y; - pix= img->type; - step= pix * imgx; - - if(refimg) { - if(refimg->x == imgx && refimg->y == imgy) { - if(ELEM3(refimg->type, CB_VAL, CB_VEC2, CB_VEC3)) { - refimg= typecheck_compbuf(in[1]->data, CB_RGBA); - found_determinator= 1; - } - } - } - else { - refimg= img; - } - - /* allocs */ - source= dupalloc_compbuf(img); - new= alloc_compbuf(imgx, imgy, pix, 1); - - /* accept image offsets from other nodes */ - new->xof= img->xof; - new->yof= img->yof; - - /* bilateral code properties */ - sigma_color= nbbd->sigma_color; - sigma_space= nbbd->sigma_space; - - i2sigma_color= 1. / (sigma_color * sigma_color); - i2sigma_space= 1. / (sigma_space * sigma_space); - - INIT_3X3_DELTAS(deltas, step, pix); - - weight_tab[0] = weight_tab[2] = weight_tab[4] = weight_tab[6] = i2sigma_space; - weight_tab[1] = weight_tab[3] = weight_tab[5] = weight_tab[7] = i2sigma_space * 2; - - /* iterations */ - for(i= 0; i < nbbd->iter; i++) { - src= source->rect; - ref= refimg->rect; - dest= new->rect; - /*goes through image, there are more loops for 1st/last line and all other lines*/ - /*kernel element accumulates surrounding colors, which are then written with the update_output function*/ - for(x= 0; x < imgx; x++, src+= pix, ref+= pix) { - INIT_C3; - - KERNEL_ELEMENT_C3(6); - - if(x > 0) { - KERNEL_ELEMENT_C3(5); - KERNEL_ELEMENT_C3(4); - } - - if(x < imgx - 1) { - KERNEL_ELEMENT_C3(7); - KERNEL_ELEMENT_C3(0); - } - - UPDATE_OUTPUT_C3; - } - - dest+= step; - - for(y= 1; y < imgy - 1; y++, dest+= step, src+= pix, ref+= pix) { - x= 0; - - INIT_C3; - - KERNEL_ELEMENT_C3(0); - KERNEL_ELEMENT_C3(1); - KERNEL_ELEMENT_C3(2); - KERNEL_ELEMENT_C3(6); - KERNEL_ELEMENT_C3(7); - - UPDATE_OUTPUT_C3; - - src+= pix; - ref+= pix; - - for(x= 1; x < imgx - 1; x++, src+= pix, ref+= pix) { - INIT_C3; - - KERNEL_ELEMENT_C3(0); - KERNEL_ELEMENT_C3(1); - KERNEL_ELEMENT_C3(2); - KERNEL_ELEMENT_C3(3); - KERNEL_ELEMENT_C3(4); - KERNEL_ELEMENT_C3(5); - KERNEL_ELEMENT_C3(6); - KERNEL_ELEMENT_C3(7); - - UPDATE_OUTPUT_C3; - } - - INIT_C3; - - KERNEL_ELEMENT_C3(2); - KERNEL_ELEMENT_C3(3); - KERNEL_ELEMENT_C3(4); - KERNEL_ELEMENT_C3(5); - KERNEL_ELEMENT_C3(6); - - UPDATE_OUTPUT_C3; - } - - for(x= 0; x < imgx; x++, src+= pix, ref+= pix) { - INIT_C3; - - KERNEL_ELEMENT_C3(2); - - if(x > 0) { - KERNEL_ELEMENT_C3(3); - KERNEL_ELEMENT_C3(4); - } - if(x < imgx - 1) { - KERNEL_ELEMENT_C3(1); - KERNEL_ELEMENT_C3(0); - } - - UPDATE_OUTPUT_C3; - } - - if(node->exec & NODE_BREAK) break; - - SWAP(CompBuf, *source, *new); - } - - if(img != in[0]->data) - free_compbuf(img); - - if(found_determinator == 1) { - if(refimg != in[1]->data) - free_compbuf(refimg); - } - - out[0]->data= source; - - free_compbuf(new); -} - -static void node_composit_init_bilateralblur(bNode* node) -{ - NodeBilateralBlurData *nbbd= MEM_callocN(sizeof(NodeBilateralBlurData), "node bilateral blur data"); - node->storage= nbbd; - nbbd->sigma_color= 0.3; - nbbd->sigma_space= 5.0; -} - -void register_node_type_cmp_bilateralblur(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_BILATERALBLUR, "Bilateral Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_bilateralblur_in, cmp_node_bilateralblur_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_bilateralblur); - node_type_storage(&ntype, "NodeBilateralBlurData", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_bilateralblur); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c deleted file mode 100644 index 718578a921b..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c +++ /dev/null @@ -1,736 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva, - * Juho Vepsäläinen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_blur.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** BLUR ******************** */ -static bNodeSocketType cmp_node_blur_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_blur_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static float *make_gausstab(int filtertype, int rad) -{ - float *gausstab, sum, val; - int i, n; - - n = 2 * rad + 1; - - gausstab = (float *) MEM_mallocN(n * sizeof(float), "gauss"); - - sum = 0.0f; - for (i = -rad; i <= rad; i++) { - val= RE_filter_value(filtertype, (float)i/(float)rad); - sum += val; - gausstab[i+rad] = val; - } - - sum= 1.0f/sum; - for(i=0; istorage; - CompBuf *work; - register float sum, val; - float rval, gval, bval, aval; - float *gausstab, *gausstabcent; - int rad, imgx= img->x, imgy= img->y; - int x, y, pix= img->type; - int i, bigstep; - float *src, *dest; - - /* helper image */ - work= alloc_compbuf(imgx, imgy, img->type, 1); /* allocs */ - - /* horizontal */ - if(nbd->sizex == 0) { - memcpy(work->rect, img->rect, sizeof(float) * img->type * imgx * imgy); - } - else { - rad = scale*(float)nbd->sizex; - if(rad>imgx/2) - rad= imgx/2; - else if(rad<1) - rad= 1; - - gausstab= make_gausstab(nbd->filtertype, rad); - gausstabcent= gausstab+rad; - - for (y = 0; y < imgy; y++) { - float *srcd= img->rect + pix*(y*img->x); - - dest = work->rect + pix*(y * img->x); - - for (x = 0; x < imgx ; x++) { - int minr= x-rad<0?-x:-rad; - int maxr= x+rad>imgx?imgx-x:rad; - - src= srcd + pix*(x+minr); - - sum= gval = rval= bval= aval= 0.0f; - for (i= minr; i < maxr; i++) { - val= gausstabcent[i]; - sum+= val; - rval += val * (*src++); - if(pix==4) { - gval += val * (*src++); - bval += val * (*src++); - aval += val * (*src++); - } - } - sum= 1.0f/sum; - *dest++ = rval*sum; - if(pix==4) { - *dest++ = gval*sum; - *dest++ = bval*sum; - *dest++ = aval*sum; - } - } - if(node->exec & NODE_BREAK) - break; - } - - /* vertical */ - MEM_freeN(gausstab); - } - - if(nbd->sizey == 0) { - memcpy(new->rect, work->rect, sizeof(float) * img->type * imgx * imgy); - } - else { - rad = scale*(float)nbd->sizey; - if(rad>imgy/2) - rad= imgy/2; - else if(rad<1) - rad= 1; - - gausstab= make_gausstab(nbd->filtertype, rad); - gausstabcent= gausstab+rad; - - bigstep = pix*imgx; - for (x = 0; x < imgx; x++) { - float *srcd= work->rect + pix*x; - - dest = new->rect + pix*x; - - for (y = 0; y < imgy ; y++) { - int minr= y-rad<0?-y:-rad; - int maxr= y+rad>imgy?imgy-y:rad; - - src= srcd + bigstep*(y+minr); - - sum= gval = rval= bval= aval= 0.0f; - for (i= minr; i < maxr; i++) { - val= gausstabcent[i]; - sum+= val; - rval += val * src[0]; - if(pix==4) { - gval += val * src[1]; - bval += val * src[2]; - aval += val * src[3]; - } - src += bigstep; - } - sum= 1.0f/sum; - dest[0] = rval*sum; - if(pix==4) { - dest[1] = gval*sum; - dest[2] = bval*sum; - dest[3] = aval*sum; - } - dest+= bigstep; - } - if(node->exec & NODE_BREAK) - break; - } - MEM_freeN(gausstab); - } - - free_compbuf(work); -} - -/* reference has to be mapped 0-1, and equal in size */ -static void bloom_with_reference(CompBuf *new, CompBuf *img, CompBuf *UNUSED(ref), float UNUSED(fac), NodeBlurData *nbd) -{ - CompBuf *wbuf; - register float val; - float radxf, radyf; - float **maintabs; - float *gausstabx, *gausstabcenty; - float *gausstaby, *gausstabcentx; - int radx, rady, imgx= img->x, imgy= img->y; - int x, y; - int i, j; - float *src, *dest, *wb; - - wbuf= alloc_compbuf(imgx, imgy, CB_VAL, 1); - - /* horizontal */ - radx = (float)nbd->sizex; - if(radx>imgx/2) - radx= imgx/2; - else if(radx<1) - radx= 1; - - /* vertical */ - rady = (float)nbd->sizey; - if(rady>imgy/2) - rady= imgy/2; - else if(rady<1) - rady= 1; - - x= MAX2(radx, rady); - maintabs= MEM_mallocN(x*sizeof(void *), "gauss array"); - for(i= 0; irect; - src= img->rect; - - radxf= (float)radx; - radyf= (float)rady; - - for (y = 0; y < imgy; y++) { - for (x = 0; x < imgx ; x++, src+=4) {//, refd++) { - -// int refradx= (int)(refd[0]*radxf); -// int refrady= (int)(refd[0]*radyf); - - int refradx= (int)(radxf*0.3f*src[3]*(src[0]+src[1]+src[2])); - int refrady= (int)(radyf*0.3f*src[3]*(src[0]+src[1]+src[2])); - - if(refradx>radx) refradx= radx; - else if(refradx<1) refradx= 1; - if(refrady>rady) refrady= rady; - else if(refrady<1) refrady= 1; - - if(refradx==1 && refrady==1) { - wb= wbuf->rect + ( y*imgx + x); - dest= new->rect + 4*( y*imgx + x); - wb[0]+= 1.0f; - dest[0] += src[0]; - dest[1] += src[1]; - dest[2] += src[2]; - dest[3] += src[3]; - } - else { - int minxr= x-refradx<0?-x:-refradx; - int maxxr= x+refradx>imgx?imgx-x:refradx; - int minyr= y-refrady<0?-y:-refrady; - int maxyr= y+refrady>imgy?imgy-y:refrady; - - float *destd= new->rect + 4*( (y + minyr)*imgx + x + minxr); - float *wbufd= wbuf->rect + ( (y + minyr)*imgx + x + minxr); - - gausstabx= maintabs[refradx-1]; - gausstabcentx= gausstabx+refradx; - gausstaby= maintabs[refrady-1]; - gausstabcenty= gausstaby+refrady; - - for (i= minyr; i < maxyr; i++, destd+= 4*imgx, wbufd+= imgx) { - dest= destd; - wb= wbufd; - for (j= minxr; j < maxxr; j++, dest+=4, wb++) { - - val= gausstabcenty[i]*gausstabcentx[j]; - wb[0]+= val; - dest[0] += val * src[0]; - dest[1] += val * src[1]; - dest[2] += val * src[2]; - dest[3] += val * src[3]; - } - } - } - } - } - - x= imgx*imgy; - dest= new->rect; - wb= wbuf->rect; - while(x--) { - val= 1.0f/wb[0]; - dest[0]*= val; - dest[1]*= val; - dest[2]*= val; - dest[3]*= val; - wb++; - dest+= 4; - } - - free_compbuf(wbuf); - - x= MAX2(radx, rady); - for(i= 0; i0.33f) { - fj= (fj-0.33f)/0.66f; - if(fi+fj>1.0f) - return 0.0f; - else - return 1.0f; - } - else return 1.0f; -} -#endif - -/* uses full filter, no horizontal/vertical optimize possible */ -/* both images same type, either 1 or 4 channels */ -static void bokeh_single_image(bNode *node, CompBuf *new, CompBuf *img, float fac) -{ - NodeBlurData *nbd= node->storage; - register float val; - float radxf, radyf; - float *gausstab, *dgauss; - int radx, rady, imgx= img->x, imgy= img->y; - int x, y, pix= img->type; - int i, j, n; - float *src= NULL, *dest, *srcd= NULL; - - /* horizontal */ - radxf = fac*(float)nbd->sizex; - if(radxf>imgx/2.0f) - radxf= imgx/2.0f; - else if(radxf<1.0f) - radxf= 1.0f; - - /* vertical */ - radyf = fac*(float)nbd->sizey; - if(radyf>imgy/2.0f) - radyf= imgy/2.0f; - else if(radyf<1.0f) - radyf= 1.0f; - - radx= ceil(radxf); - rady= ceil(radyf); - - n = (2*radx+1)*(2*rady+1); - - /* create a full filter image */ - gausstab= MEM_mallocN(sizeof(float)*n, "filter tab"); - dgauss= gausstab; - val= 0.0f; - for(j=-rady; j<=rady; j++) { - for(i=-radx; i<=radx; i++, dgauss++) { - float fj= (float)j/radyf; - float fi= (float)i/radxf; - float dist= sqrt(fj*fj + fi*fi); - - //*dgauss= hexagon_filter(fi, fj); - *dgauss= RE_filter_value(nbd->filtertype, dist); - - val+= *dgauss; - } - } - - if(val!=0.0f) { - val= 1.0f/val; - for(j= n -1; j>=0; j--) - gausstab[j]*= val; - } - else gausstab[4]= 1.0f; - - for (y = -rady+1; y < imgy+rady-1; y++) { - - if(y<=0) srcd= img->rect; - else if(yrect + pix*(imgy-1)*imgx; - - for (x = -radx+1; x < imgx+radx-1 ; x++) { - int minxr= x-radx<0?-x:-radx; - int maxxr= x+radx>=imgx?imgx-x-1:radx; - int minyr= y-rady<0?-y:-rady; - int maxyr= y+rady>imgy-1?imgy-y-1:rady; - - float *destd= new->rect + pix*( (y + minyr)*imgx + x + minxr); - float *dgausd= gausstab + (minyr+rady)*(2*radx+1) + minxr+radx; - - if(x<=0) src= srcd; - else if(x1) { - dest[1] += val * src[1]; - dest[2] += val * src[2]; - dest[3] += val * src[3]; - } - } - } - } - } - if(node->exec & NODE_BREAK) - break; - } - - MEM_freeN(gausstab); -} - - -/* reference has to be mapped 0-1, and equal in size */ -static void blur_with_reference(bNode *node, CompBuf *new, CompBuf *img, CompBuf *ref) -{ - NodeBlurData *nbd= node->storage; - CompBuf *blurbuf, *ref_use; - register float sum, val; - float rval, gval, bval, aval, radxf, radyf; - float **maintabs; - float *gausstabx, *gausstabcenty; - float *gausstaby, *gausstabcentx; - int radx, rady, imgx= img->x, imgy= img->y; - int x, y, pix= img->type; - int i, j; - float *src, *dest, *refd, *blurd; - - if(ref->x!=img->x && ref->y!=img->y) - return; - - ref_use= typecheck_compbuf(ref, CB_VAL); - - /* trick is; we blur the reference image... but only works with clipped values*/ - blurbuf= alloc_compbuf(imgx, imgy, CB_VAL, 1); - blurd= blurbuf->rect; - refd= ref_use->rect; - for(x= imgx*imgy; x>0; x--, refd++, blurd++) { - if(refd[0]<0.0f) blurd[0]= 0.0f; - else if(refd[0]>1.0f) blurd[0]= 1.0f; - else blurd[0]= refd[0]; - } - - blur_single_image(node, blurbuf, blurbuf, 1.0f); - - /* horizontal */ - radx = (float)nbd->sizex; - if(radx>imgx/2) - radx= imgx/2; - else if(radx<1) - radx= 1; - - /* vertical */ - rady = (float)nbd->sizey; - if(rady>imgy/2) - rady= imgy/2; - else if(rady<1) - rady= 1; - - x= MAX2(radx, rady); - maintabs= MEM_mallocN(x*sizeof(void *), "gauss array"); - for(i= 0; ifiltertype, i+1); - - refd= blurbuf->rect; - dest= new->rect; - radxf= (float)radx; - radyf= (float)rady; - - for (y = 0; y < imgy; y++) { - for (x = 0; x < imgx ; x++, dest+=pix, refd++) { - int refradx= (int)(refd[0]*radxf); - int refrady= (int)(refd[0]*radyf); - - if(refradx>radx) refradx= radx; - else if(refradx<1) refradx= 1; - if(refrady>rady) refrady= rady; - else if(refrady<1) refrady= 1; - - if(refradx==1 && refrady==1) { - src= img->rect + pix*( y*imgx + x); - if(pix==1) - dest[0]= src[0]; - else - QUATCOPY(dest, src); - } - else { - int minxr= x-refradx<0?-x:-refradx; - int maxxr= x+refradx>imgx?imgx-x:refradx; - int minyr= y-refrady<0?-y:-refrady; - int maxyr= y+refrady>imgy?imgy-y:refrady; - - float *srcd= img->rect + pix*( (y + minyr)*imgx + x + minxr); - - gausstabx= maintabs[refradx-1]; - gausstabcentx= gausstabx+refradx; - gausstaby= maintabs[refrady-1]; - gausstabcenty= gausstaby+refrady; - - sum= gval = rval= bval= aval= 0.0f; - - for (i= minyr; i < maxyr; i++, srcd+= pix*imgx) { - src= srcd; - for (j= minxr; j < maxxr; j++, src+=pix) { - - val= gausstabcenty[i]*gausstabcentx[j]; - sum+= val; - rval += val * src[0]; - if(pix>1) { - gval += val * src[1]; - bval += val * src[2]; - aval += val * src[3]; - } - } - } - sum= 1.0f/sum; - dest[0] = rval*sum; - if(pix>1) { - dest[1] = gval*sum; - dest[2] = bval*sum; - dest[3] = aval*sum; - } - } - } - if(node->exec & NODE_BREAK) - break; - } - - free_compbuf(blurbuf); - - x= MAX2(radx, rady); - for(i= 0; idata; - NodeBlurData *nbd= node->storage; - - if(img==NULL) return; - - /* store image in size that is needed for absolute/relative conversions on ui level */ - nbd->image_in_width= img->x; - nbd->image_in_height= img->y; - - if(out[0]->hasoutput==0) return; - - if(nbd->relative) { - if (nbd->aspect==CMP_NODE_BLUR_ASPECT_NONE) { - nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_width); - nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_height); - } - else if (nbd->aspect==CMP_NODE_BLUR_ASPECT_Y) { - nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_width); - nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_width); - } - else if (nbd->aspect==CMP_NODE_BLUR_ASPECT_X) { - nbd->sizex= (int)(nbd->percentx*0.01f*nbd->image_in_height); - nbd->sizey= (int)(nbd->percenty*0.01f*nbd->image_in_height); - } - } - - if (nbd->sizex==0 && nbd->sizey==0) { - new= pass_on_compbuf(img); - out[0]->data= new; - } - else if (nbd->filtertype == R_FILTER_FAST_GAUSS) { - CompBuf *new, *img = in[0]->data; - // TODO: can this be mapped with reference, too? - const float sx = ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = ((float)nbd->sizey*in[1]->vec[0])/2.0f; - int c; - - if ((img==NULL) || (out[0]->hasoutput==0)) return; - - if (img->type == CB_VEC2) - new = typecheck_compbuf(img, CB_VAL); - else if (img->type == CB_VEC3) - new = typecheck_compbuf(img, CB_RGBA); - else - new = dupalloc_compbuf(img); - - if ((sx == sy) && (sx > 0.f)) { - for (c=0; ctype; ++c) - IIR_gauss(new, sx, c, 3); - } - else { - if (sx > 0.f) { - for (c=0; ctype; ++c) - IIR_gauss(new, sx, c, 1); - } - if (sy > 0.f) { - for (c=0; ctype; ++c) - IIR_gauss(new, sy, c, 2); - } - } - out[0]->data = new; - - } else { - /* All non fast gauss blur methods */ - if(img->type==CB_VEC2 || img->type==CB_VEC3) { - img= typecheck_compbuf(in[0]->data, CB_RGBA); - } - - /* if fac input, we do it different */ - if(in[1]->data) { - CompBuf *gammabuf; - - /* make output size of input image */ - new= alloc_compbuf(img->x, img->y, img->type, 1); /* allocs */ - - /* accept image offsets from other nodes */ - new->xof = img->xof; - new->yof = img->yof; - - if(nbd->gamma) { - gammabuf= dupalloc_compbuf(img); - gamma_correct_compbuf(gammabuf, 0); - } - else gammabuf= img; - - blur_with_reference(node, new, gammabuf, in[1]->data); - - if(nbd->gamma) { - gamma_correct_compbuf(new, 1); - free_compbuf(gammabuf); - } - if(node->exec & NODE_BREAK) { - free_compbuf(new); - new= NULL; - } - out[0]->data= new; - } - else { - - if(in[1]->vec[0]<=0.001f) { /* time node inputs can be a tiny value */ - new= pass_on_compbuf(img); - } - else { - CompBuf *gammabuf; - - /* make output size of input image */ - new= alloc_compbuf(img->x, img->y, img->type, 1); /* allocs */ - - /* accept image offsets from other nodes */ - new->xof = img->xof; - new->yof = img->yof; - - if(nbd->gamma) { - gammabuf= dupalloc_compbuf(img); - gamma_correct_compbuf(gammabuf, 0); - } - else gammabuf= img; - - if(nbd->bokeh) - bokeh_single_image(node, new, gammabuf, in[1]->vec[0]); - else if(1) - blur_single_image(node, new, gammabuf, in[1]->vec[0]); - else /* bloom experimental... */ - bloom_with_reference(new, gammabuf, NULL, in[1]->vec[0], nbd); - - if(nbd->gamma) { - gamma_correct_compbuf(new, 1); - free_compbuf(gammabuf); - } - if(node->exec & NODE_BREAK) { - free_compbuf(new); - new= NULL; - } - } - out[0]->data= new; - } - if(img!=in[0]->data) - free_compbuf(img); - } - - generate_preview(data, node, out[0]->data); -} - -static void node_composit_init_blur(bNode* node) -{ - node->storage= MEM_callocN(sizeof(NodeBlurData), "node blur data"); -} - -void register_node_type_cmp_blur(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_BLUR, "Blur", NODE_CLASS_OP_FILTER, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_blur_in, cmp_node_blur_out); - node_type_size(&ntype, 120, 80, 200); - node_type_init(&ntype, node_composit_init_blur); - node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_blur); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c b/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c deleted file mode 100644 index 50a8d05b03d..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c +++ /dev/null @@ -1,110 +0,0 @@ -/* -* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -* -* The Original Code is Copyright (C) 2006 Blender Foundation. -* All rights reserved. -* -* The Original Code is: all of this file. -* -* Contributor(s): none yet. -* -* ***** END GPL LICENSE BLOCK ***** - -*/ - -/** \file blender/nodes/intern/CMP_nodes/CMP_brightness.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Brigh and contrsast ******************** */ - -static bNodeSocketType cmp_node_brightcontrast_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Bright", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Contrast", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_brightcontrast_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_brightnesscontrast(bNode *UNUSED(node), float *out, float *in, float *in_brightness, float *in_contrast) -{ - float i; - int c; - float a, b, v; - float brightness = (*in_brightness) / 100.0f; - float contrast = *in_contrast; - float delta = contrast / 200.0f; - a = 1.0f - delta * 2.0f; - /* - * The algorithm is by Werner D. Streidt - * (http://visca.com/ffactory/archives/5-99/msg00021.html) - * Extracted of OpenCV demhist.c - */ - if( contrast > 0 ) -{ - a = 1.0f / a; - b = a * (brightness - delta); - } - else - { - delta *= -1; - b = a * (brightness + delta); - } - - for(c=0; c<3; c++){ - i = in[c]; - v = a*i + b; - out[c] = v; - } -} - -static void node_composit_exec_brightcontrast(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(out[0]->hasoutput==0) - return; - - if(in[0]->data) { - CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - stackbuf= dupalloc_compbuf(cbuf); - composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, do_brightnesscontrast, CB_RGBA, CB_VAL, CB_VAL); - out[0]->data = stackbuf; - if(cbuf != in[0]->data) - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_brightcontrast(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_BRIGHTCONTRAST, "Bright/Contrast", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_brightcontrast_in, cmp_node_brightcontrast_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_brightcontrast); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c deleted file mode 100644 index e395716f36d..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_channelMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* ******************* Channel Matte Node ********************************* */ -static bNodeSocketType cmp_node_channel_matte_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_channel_matte_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_normalized_rgba_to_ycca2(bNode *UNUSED(node), float *out, float *in) -{ - /*normalize to the range 0.0 to 1.0) */ - rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - out[0]=(out[0])/255.0; - out[1]=(out[1])/255.0; - out[2]=(out[2])/255.0; - out[3]=in[3]; -} - -static void do_normalized_ycca_to_rgba2(bNode *UNUSED(node), float *out, float *in) -{ - /*un-normalize the normalize from above */ - in[0]=in[0]*255.0; - in[1]=in[1]*255.0; - in[2]=in[2]*255.0; - ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - out[3]=in[3]; -} - - -static void do_channel_matte(bNode *node, float *out, float *in) -{ - NodeChroma *c=(NodeChroma *)node->storage; - float alpha=0.0; - - switch(c->algorithm) { - case 0: { /* Alpha=key_channel-limit channel */ - int key_channel=node->custom2-1; - int limit_channel=c->channel-1; - alpha=in[key_channel]-in[limit_channel]; - break; - } - case 1: { /* Alpha=G-MAX(R, B) */ - switch(node->custom2) { - case 1: { - alpha=in[0]-MAX2(in[1],in[2]); - break; - } - case 2: { - alpha=in[1]-MAX2(in[0],in[2]); - break; - } - case 3: { - alpha=in[2]-MAX2(in[0],in[1]); - break; - } - default: - break; - } - break; - } - default: - break; - } - - /*flip because 0.0 is transparent, not 1.0*/ - alpha=1-alpha; - - /* test range*/ - if(alpha>c->t1) { - alpha=in[3]; /*whatever it was prior */ - } - else if(alphat2){ - alpha=0.0; - } - else {/*blend */ - alpha=(alpha-c->t2)/(c->t1-c->t2); - } - - - /* don't make something that was more transparent less transparent */ - if (alphahasinput==0) return; - if(in[0]->data==NULL) return; - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - - cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); - - outbuf=dupalloc_compbuf(cbuf); - - /*convert to colorspace*/ - switch(node->custom1) { - case CMP_NODE_CHANNEL_MATTE_CS_RGB: - break; - case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ - composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_hsva, CB_RGBA); - break; - case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/ - composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_yuva, CB_RGBA); - break; - case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/ - composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_normalized_rgba_to_ycca2, CB_RGBA); - break; - default: - break; - } - - /*use the selected channel information to do the key */ - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_channel_matte, CB_RGBA); - - /*convert back to RGB colorspace in place*/ - switch(node->custom1) { - case CMP_NODE_CHANNEL_MATTE_CS_RGB: /*RGB*/ - break; - case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_hsva_to_rgba, CB_RGBA); - break; - case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/ - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_yuva_to_rgba, CB_RGBA); - break; - case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/ - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_normalized_ycca_to_rgba2, CB_RGBA); - break; - default: - break; - } - - generate_preview(data, node, outbuf); - out[0]->data=outbuf; - if(out[1]->hasoutput) - out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - -} - -static void node_composit_init_channel_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); - node->storage=c; - c->t1= 1.0f; - c->t2= 0.0f; - c->t3= 0.0f; - c->fsize= 0.0f; - c->fstrength= 0.0f; - c->algorithm=1; /*max channel limiting */ - c->channel=1; /* limit by red */ - node->custom1= 1; /* RGB channel */ - node->custom2= 2; /* Green Channel */ -} - -void register_node_type_cmp_channel_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_CHANNEL_MATTE, "Channel Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_channel_matte_in, cmp_node_channel_matte_out); - node_type_size(&ntype, 200, 80, 250); - node_type_init(&ntype, node_composit_init_channel_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_channel_matte); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c deleted file mode 100644 index 03230f2e212..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* ******************* Chroma Key ********************************************************** */ -static bNodeSocketType cmp_node_chroma_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_chroma_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_rgba_to_ycca_normalized(bNode *UNUSED(node), float *out, float *in) -{ - rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - - //normalize to 0..1.0 - out[0]=out[0]/255.0; - out[1]=out[1]/255.0; - out[2]=out[2]/255.0; - - //rescale to -1.0..1.0 - out[0]=(out[0]*2.0)-1.0; - out[1]=(out[1]*2.0)-1.0; - out[2]=(out[2]*2.0)-1.0; - -// out[0]=((out[0])-16)/255.0; -// out[1]=((out[1])-128)/255.0; -// out[2]=((out[2])-128)/255.0; - out[3]=in[3]; -} - -static void do_ycca_to_rgba_normalized(bNode *UNUSED(node), float *out, float *in) -{ - /*un-normalize the normalize from above */ - in[0]=(in[0]+1.0)/2.0; - in[1]=(in[1]+1.0)/2.0; - in[2]=(in[2]+1.0)/2.0; - - in[0]=(in[0]*255.0); - in[1]=(in[1]*255.0); - in[2]=(in[2]*255.0); - - // in[0]=(in[0]*255.0)+16; -// in[1]=(in[1]*255.0)+128; -// in[2]=(in[2]*255.0)+128; - ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - out[3]=in[3]; -} - -static void do_chroma_key(bNode *node, float *out, float *in) -{ - NodeChroma *c; - float x, z, alpha; - float theta, beta, angle, angle2; - float kfg; - - c=node->storage; - - /* Algorithm from book "Video Demistified," does not include the spill reduction part */ - - /* find theta, the angle that the color space should be rotated based on key*/ - theta=atan2(c->key[2], c->key[1]); - - /*rotate the cb and cr into x/z space */ - x=in[1]*cos(theta)+in[2]*sin(theta); - z=in[2]*cos(theta)-in[1]*sin(theta); - - /*if within the acceptance angle */ - angle=c->t1*M_PI/180.0; /* convert to radians */ - - /* if kfg is <0 then the pixel is outside of the key color */ - kfg=x-(fabs(z)/tan(angle/2.0)); - - out[0]=in[0]; - out[1]=in[1]; - out[2]=in[2]; - - if(kfg>0.0) { /* found a pixel that is within key color */ - alpha=(1.0-kfg)*(c->fstrength); - - beta=atan2(z,x); - angle2=c->t2*M_PI/180.0; - - /* if beta is within the cutoff angle */ - if(fabs(beta)<(angle2/2.0)) { - alpha=0.0; - } - - /* don't make something that was more transparent less transparent */ - if (alphahasinput==0) return; - if(in[0]->data==NULL) return; - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - - cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - - chromabuf= dupalloc_compbuf(cbuf); - - c=node->storage; - - /*convert rgbbuf to normalized chroma space*/ - composit1_pixel_processor(node, chromabuf, cbuf, in[0]->vec, do_rgba_to_ycca_normalized, CB_RGBA); - /*convert key to normalized chroma color space */ - do_rgba_to_ycca_normalized(node, c->key, in[1]->vec); - - /*per pixel chroma key*/ - composit1_pixel_processor(node, chromabuf, chromabuf, in[0]->vec, do_chroma_key, CB_RGBA); - - /*convert back*/ - composit1_pixel_processor(node, chromabuf, chromabuf, in[0]->vec, do_ycca_to_rgba_normalized, CB_RGBA); - - out[0]->data= chromabuf; - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(chromabuf, CHAN_A); - - generate_preview(data, node, chromabuf); - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); -} - - -static void node_composit_init_chroma_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); - node->storage= c; - c->t1= 30.0f; - c->t2= 10.0f; - c->t3= 0.0f; - c->fsize= 0.0f; - c->fstrength= 1.0f; -} - -void register_node_type_cmp_chroma_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_CHROMA_MATTE, "Chroma Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_chroma_in, cmp_node_chroma_out); - node_type_size(&ntype, 200, 80, 300); - node_type_init(&ntype, node_composit_init_chroma_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_chroma_matte); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c deleted file mode 100644 index 55d77a902b9..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_colorMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* ******************* Color Key ********************************************************** */ -static bNodeSocketType cmp_node_color_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_color_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_color_key(bNode *node, float *out, float *in) -{ - float h_wrap; - NodeChroma *c; - c=node->storage; - - - VECCOPY(out, in); - - if( - /* do hue last because it needs to wrap, and does some more checks */ - - /* sat */ (fabs(in[1]-c->key[1]) < c->t2) && - /* val */ (fabs(in[2]-c->key[2]) < c->t3) && - - /* multiply by 2 because it wraps on both sides of the hue, - * otherwise 0.5 would key all hue's */ - - /* hue */ ((h_wrap= 2.0f * fabs(in[0]-c->key[0])) < c->t1 || (2.0f - h_wrap) < c->t1) - ) { - out[3]=0.0; /*make transparent*/ - } - - else { /*pixel is outside key color */ - out[3]=in[3]; /* make pixel just as transparent as it was before */ - } -} - -static void node_composit_exec_color_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *cbuf; - CompBuf *colorbuf; - NodeChroma *c; - - if(in[0]->hasinput==0) return; - if(in[0]->data==NULL) return; - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - - cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - - colorbuf= dupalloc_compbuf(cbuf); - - c=node->storage; - - /*convert rgbbuf to hsv*/ - composit1_pixel_processor(node, colorbuf, cbuf, in[0]->vec, do_rgba_to_hsva, CB_RGBA); - - /*convert key to hsv*/ - do_rgba_to_hsva(node, c->key, in[1]->vec); - - - /*per pixel color key*/ - composit1_pixel_processor(node, colorbuf, colorbuf, in[0]->vec, do_color_key, CB_RGBA); - - /*convert back*/ - composit1_pixel_processor(node, colorbuf, colorbuf, in[0]->vec, do_hsva_to_rgba, CB_RGBA); - - out[0]->data= colorbuf; - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(colorbuf, CHAN_A); - - generate_preview(data, node, colorbuf); - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); -} - -static void node_composit_init_color_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node color"); - node->storage= c; - c->t1= 0.01f; - c->t2= 0.1f; - c->t3= 0.1f; - c->fsize= 0.0f; - c->fstrength= 1.0f; -} - -void register_node_type_cmp_color_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COLOR_MATTE, "Color Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_color_in, cmp_node_color_out); - node_type_size(&ntype, 200, 80, 300); - node_type_init(&ntype, node_composit_init_color_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_color_matte); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c deleted file mode 100644 index 905d97709c3..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c +++ /dev/null @@ -1,341 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb, Xavier Thomas - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_colorSpill.c - * \ingroup cmpnodes - */ - - - -#include "../CMP_util.h" - -#define avg(a,b) ((a+b)/2) - -/* ******************* Color Spill Supression ********************************* */ -static bNodeSocketType cmp_node_color_spill_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_color_spill_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_simple_spillmap_red(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[0]-( ncs->limscale * in[ncs->limchan] ); -} - -static void do_simple_spillmap_red_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[0]-( ncs->limscale * in[ncs->limchan])); -} - -static void do_simple_spillmap_green(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[1]-( ncs->limscale * in[ncs->limchan] ); -} - -static void do_simple_spillmap_green_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[1]-( ncs->limscale * in[ncs->limchan])); -} - -static void do_simple_spillmap_blue(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[2]-( ncs->limscale * in[ncs->limchan] ); -} - -static void do_simple_spillmap_blue_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[2]-( ncs->limscale * in[ncs->limchan])); -} - -static void do_average_spillmap_red(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[0]-(ncs->limscale * avg(in[1], in[2]) ); -} - -static void do_average_spillmap_red_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[0]-(ncs->limscale * avg(in[1], in[2]) )); -} - -static void do_average_spillmap_green(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[1]-(ncs->limscale * avg(in[0], in[2]) ); -} - -static void do_average_spillmap_green_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[0]-(ncs->limscale * avg(in[0], in[2]) )); -} - -static void do_average_spillmap_blue(bNode *node, float* out, float *in) -{ - NodeColorspill *ncs; - ncs=node->storage; - out[0]=in[2]-(ncs->limscale * avg(in[0], in[1]) ); -} - -static void do_average_spillmap_blue_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorspill *ncs; - ncs=node->storage; - - out[0] = *fac * (in[0]-(ncs->limscale * avg(in[0], in[1]) )); -} - -static void do_apply_spillmap_red(bNode *node, float* out, float *in, float *map) -{ - NodeColorspill *ncs; - ncs=node->storage; - if(map[0]>0) { - out[0]=in[0]-(ncs->uspillr*map[0]); - out[1]=in[1]+(ncs->uspillg*map[0]); - out[2]=in[2]+(ncs->uspillb*map[0]); - } - else { - out[0]=in[0]; - out[1]=in[1]; - out[2]=in[2]; - } -} - -static void do_apply_spillmap_green(bNode *node, float* out, float *in, float *map) -{ - NodeColorspill *ncs; - ncs=node->storage; - if(map[0]>0) { - out[0]=in[0]+(ncs->uspillr*map[0]); - out[1]=in[1]-(ncs->uspillg*map[0]); - out[2]=in[2]+(ncs->uspillb*map[0]); - } - else { - out[0]=in[0]; - out[1]=in[1]; - out[2]=in[2]; - } -} - -static void do_apply_spillmap_blue(bNode *node, float* out, float *in, float *map) -{ - NodeColorspill *ncs; - ncs=node->storage; - if(map[0]>0) { - out[0]=in[0]+(ncs->uspillr*map[0]); - out[1]=in[1]+(ncs->uspillg*map[0]); - out[2]=in[2]-(ncs->uspillb*map[0]); - } - else { - out[0]=in[0]; - out[1]=in[1]; - out[2]=in[2]; - } -} - -static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* Originally based on the information from the book "The Art and Science of Digital Composition" and - * discussions from vfxtalk.com .*/ - CompBuf *cbuf; - CompBuf *mask; - CompBuf *rgbbuf; - CompBuf *spillmap; - NodeColorspill *ncs; - ncs=node->storage; - - /* early out for missing connections */ - if(out[0]->hasoutput==0 ) return; - if(in[0]->hasinput==0) return; - if(in[0]->data==NULL) return; - - cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); - mask=typecheck_compbuf(in[1]->data, CB_VAL); - spillmap=alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); - rgbbuf=dupalloc_compbuf(cbuf); - - switch(node->custom1) - { - case 1: /*red spill*/ - { - switch(node->custom2) - { - case 0: /* simple limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_red, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_red_fac, CB_RGBA, CB_VAL); - } - break; - } - case 1: /* average limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_red, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_red_fac, CB_RGBA, CB_VAL); - } - break; - } - } - if(ncs->unspill==0) { - ncs->uspillr=1.0f; - ncs->uspillg=0.0f; - ncs->uspillb=0.0f; - } - composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_red, CB_RGBA, CB_VAL); - break; - } - case 2: /*green spill*/ - { - switch(node->custom2) - { - case 0: /* simple limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_green, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_green_fac, CB_RGBA, CB_VAL); - } - break; - } - case 1: /* average limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_green, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_green_fac, CB_RGBA, CB_VAL); - } - break; - } - } - if(ncs->unspill==0) { - ncs->uspillr=0.0f; - ncs->uspillg=1.0f; - ncs->uspillb=0.0f; - } - composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_green, CB_RGBA, CB_VAL); - break; - } - case 3: /*blue spill*/ - { - switch(node->custom2) - { - case 0: /* simple limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_simple_spillmap_blue, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_simple_spillmap_blue_fac, CB_RGBA, CB_VAL); - } - break; - } - case 1: /* average limit */ - { - if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, spillmap, cbuf, in[0]->vec, do_average_spillmap_blue, CB_RGBA); - } else { - composit2_pixel_processor(node, spillmap, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_average_spillmap_blue_fac, CB_RGBA, CB_VAL); - } - break; - } - } - if(ncs->unspill==0) { - ncs->uspillr=0.0f; - ncs->uspillg=0.0f; - ncs->uspillb=1.0f; - } - composit2_pixel_processor(node, rgbbuf, cbuf, in[0]->vec, spillmap, NULL, do_apply_spillmap_blue, CB_RGBA, CB_VAL); - break; - } - default: - break; - } - - out[0]->data=rgbbuf; - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - - free_compbuf(spillmap); -} - -static void node_composit_init_color_spill(bNode *node) -{ - NodeColorspill *ncs= MEM_callocN(sizeof(NodeColorspill), "node colorspill"); - node->storage=ncs; - node->custom1= 2; /* green channel */ - node->custom2= 0; /* simple limit algo*/ - ncs->limchan= 0; /* limit by red */ - ncs->limscale= 1.0f; /* limit scaling factor */ - ncs->unspill=0; /* do not use unspill */ -} - -void register_node_type_cmp_color_spill(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COLOR_SPILL, "Color Spill", NODE_CLASS_MATTE, NODE_OPTIONS, - cmp_node_color_spill_in, cmp_node_color_spill_out); - node_type_size(&ntype, 140, 80, 200); - node_type_init(&ntype, node_composit_init_color_spill); - node_type_storage(&ntype, "NodeColorspill", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_color_spill); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c deleted file mode 100644 index 4074ea2fa29..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - * - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Matt Ebb. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_colorbalance.c - * \ingroup cmpnodes - */ - - - -#include "../CMP_util.h" - - -/* ******************* Color Balance ********************************* */ -static bNodeSocketType cmp_node_colorbalance_in[]={ - {SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_colorbalance_out[]={ - {SOCK_RGBA,0,"Image", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - {-1,0,""} -}; - -/* this function implements ASC-CDL according to the spec at http://www.asctech.org/ - Slope - S = in * slope - Offset - O = S + offset - = (in * slope) + offset - Power - out = Clamp(O) ^ power - = Clamp((in * slope) + offset) ^ power - */ -DO_INLINE float colorbalance_cdl(float in, float offset, float power, float slope) -{ - float x = in * slope + offset; - - /* prevent NaN */ - CLAMP(x, 0.0, 1.0); - - return powf(x, power); -} - -/* note: lift_lgg is just 2-lift, gamma_inv is 1.0/gamma */ -DO_INLINE float colorbalance_lgg(float in, float lift_lgg, float gamma_inv, float gain) -{ - /* 1:1 match with the sequencer with linear/srgb conversions, the conversion isnt pretty - * but best keep it this way, sice testing for durian shows a similar calculation - * without lin/srgb conversions gives bad results (over-saturated shadows) with colors - * slightly below 1.0. some correction can be done but it ends up looking bad for shadows or lighter tones - campbell */ - float x= (((linearrgb_to_srgb(in) - 1.0f) * lift_lgg) + 1.0f) * gain; - - /* prevent NaN */ - if (x < 0.f) x = 0.f; - - return powf(srgb_to_linearrgb(x), gamma_inv); -} - -static void do_colorbalance_cdl(bNode *node, float* out, float *in) -{ - NodeColorBalance *n= (NodeColorBalance *)node->storage; - - out[0] = colorbalance_cdl(in[0], n->lift[0], n->gamma[0], n->gain[0]); - out[1] = colorbalance_cdl(in[1], n->lift[1], n->gamma[1], n->gain[1]); - out[2] = colorbalance_cdl(in[2], n->lift[2], n->gamma[2], n->gain[2]); - out[3] = in[3]; -} - -static void do_colorbalance_cdl_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorBalance *n= (NodeColorBalance *)node->storage; - const float mfac= 1.0f - *fac; - - out[0] = mfac*in[0] + *fac * colorbalance_cdl(in[0], n->lift[0], n->gamma[0], n->gain[0]); - out[1] = mfac*in[1] + *fac * colorbalance_cdl(in[1], n->lift[1], n->gamma[1], n->gain[1]); - out[2] = mfac*in[2] + *fac * colorbalance_cdl(in[2], n->lift[2], n->gamma[2], n->gain[2]); - out[3] = in[3]; -} - -static void do_colorbalance_lgg(bNode *node, float* out, float *in) -{ - NodeColorBalance *n= (NodeColorBalance *)node->storage; - - out[0] = colorbalance_lgg(in[0], n->lift_lgg[0], n->gamma_inv[0], n->gain[0]); - out[1] = colorbalance_lgg(in[1], n->lift_lgg[1], n->gamma_inv[1], n->gain[1]); - out[2] = colorbalance_lgg(in[2], n->lift_lgg[2], n->gamma_inv[2], n->gain[2]); - out[3] = in[3]; -} - -static void do_colorbalance_lgg_fac(bNode *node, float* out, float *in, float *fac) -{ - NodeColorBalance *n= (NodeColorBalance *)node->storage; - const float mfac= 1.0f - *fac; - - out[0] = mfac*in[0] + *fac * colorbalance_lgg(in[0], n->lift_lgg[0], n->gamma_inv[0], n->gain[0]); - out[1] = mfac*in[1] + *fac * colorbalance_lgg(in[1], n->lift_lgg[1], n->gamma_inv[1], n->gain[1]); - out[2] = mfac*in[2] + *fac * colorbalance_lgg(in[2], n->lift_lgg[2], n->gamma_inv[2], n->gain[2]); - out[3] = in[3]; -} - -static void node_composit_exec_colorbalance(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *cbuf= in[1]->data; - CompBuf *stackbuf; - - /* stack order input: fac, image */ - /* stack order output: image */ - if(out[0]->hasoutput==0) return; - - if(in[0]->vec[0] == 0.f && in[0]->data == NULL) { - out[0]->data = pass_on_compbuf(cbuf); - return; - } - - { - NodeColorBalance *n= (NodeColorBalance *)node->storage; - int c; - - for (c = 0; c < 3; c++) { - n->lift_lgg[c] = 2.0f - n->lift[c]; - n->gamma_inv[c] = (n->gamma[c] != 0.0f) ? 1.0f/n->gamma[c] : 1000000.0f; - } - } - - if (cbuf) { - stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* create output based on image input */ - - if (node->custom1 == 0) { - /* lift gamma gain */ - if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_colorbalance_lgg, CB_RGBA); - } - else { - composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_colorbalance_lgg_fac, CB_RGBA, CB_VAL); - } - } else { - /* offset/power/slope : ASC-CDL */ - if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) { - composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_colorbalance_cdl, CB_RGBA); - } - else { - composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_colorbalance_cdl_fac, CB_RGBA, CB_VAL); - } - - } - - out[0]->data=stackbuf; - } -} - -static void node_composit_init_colorbalance(bNode *node) -{ - NodeColorBalance *n= node->storage= MEM_callocN(sizeof(NodeColorBalance), "node colorbalance"); - - n->lift[0] = n->lift[1] = n->lift[2] = 1.0f; - n->gamma[0] = n->gamma[1] = n->gamma[2] = 1.0f; - n->gain[0] = n->gain[1] = n->gain[2] = 1.0f; -} - -void register_node_type_cmp_colorbalance(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COLORBALANCE, "Color Balance", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_colorbalance_in, cmp_node_colorbalance_out); - node_type_size(&ntype, 400, 200, 400); - node_type_init(&ntype, node_composit_init_colorbalance); - node_type_storage(&ntype, "NodeColorBalance", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_colorbalance); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c b/source/blender/nodes/intern/CMP_nodes/CMP_composite.c deleted file mode 100644 index fb68f56ae64..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_composite.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - - -/* **************** COMPOSITE ******************** */ -static bNodeSocketType cmp_node_composite_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* applies to render pipeline */ -static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - /* image assigned to output */ - /* stack order input sockets: col, alpha, z */ - - if(node->flag & NODE_DO_OUTPUT) { /* only one works on out */ - Scene *scene= (Scene *)node->id; - RenderData *rd= data; - - if(scene && (rd->scemode & R_DOCOMP)) { - Render *re= RE_GetRender(scene->id.name); - RenderResult *rr= RE_AcquireResultWrite(re); - if(rr) { - CompBuf *outbuf, *zbuf=NULL; - - if(rr->rectf) - MEM_freeN(rr->rectf); - outbuf= alloc_compbuf(rr->rectx, rr->recty, CB_RGBA, 1); - - if(in[1]->data==NULL) - composit1_pixel_processor(node, outbuf, in[0]->data, in[0]->vec, do_copy_rgba, CB_RGBA); - else - composit2_pixel_processor(node, outbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); - - if(in[2]->data) { - if(rr->rectz) - MEM_freeN(rr->rectz); - zbuf= alloc_compbuf(rr->rectx, rr->recty, CB_VAL, 1); - composit1_pixel_processor(node, zbuf, in[2]->data, in[2]->vec, do_copy_value, CB_VAL); - rr->rectz= zbuf->rect; - zbuf->malloc= 0; - free_compbuf(zbuf); - } - generate_preview(data, node, outbuf); - - /* we give outbuf to rr... */ - rr->rectf= outbuf->rect; - outbuf->malloc= 0; - free_compbuf(outbuf); - - /* signal for imageviewer to refresh (it converts to byte rects...) */ - BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE); - - RE_ReleaseResult(re); - return; - } - else - RE_ReleaseResult(re); - } - } - if(in[0]->data) - generate_preview(data, node, in[0]->data); -} - -void register_node_type_cmp_composite(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COMPOSITE, "Composite", NODE_CLASS_OUTPUT, NODE_PREVIEW, - cmp_node_composite_in, NULL); - node_type_size(&ntype, 80, 60, 200); - node_type_exec(&ntype, node_composit_exec_composite); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_crop.c b/source/blender/nodes/intern/CMP_nodes/CMP_crop.c deleted file mode 100644 index 0331217f0cb..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_crop.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Juho Vepsäläinen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_crop.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Crop ******************** */ - -static bNodeSocketType cmp_node_crop_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_crop_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_crop(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(in[0]->data) { - NodeTwoXYs *ntxy= node->storage; - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf; - int x, y; - float *srcfp, *outfp; - rcti outputrect; - - if(node->custom2) { - ntxy->x1= cbuf->x* ntxy->fac_x1; - ntxy->x2= cbuf->x* ntxy->fac_x2; - ntxy->y1= cbuf->y* ntxy->fac_y1; - ntxy->y2= cbuf->y* ntxy->fac_y2; - } - - /* check input image size */ - if(cbuf->x <= ntxy->x1 + 1) - ntxy->x1= cbuf->x - 1; - - if(cbuf->y <= ntxy->y1 + 1) - ntxy->y1= cbuf->y - 1; - - if(cbuf->x <= ntxy->x2 + 1) - ntxy->x2= cbuf->x - 1; - - if(cbuf->y <= ntxy->y2 + 1) - ntxy->y2= cbuf->y - 1; - - /* figure out the minimums and maximums */ - outputrect.xmax=MAX2(ntxy->x1, ntxy->x2) + 1; - outputrect.xmin=MIN2(ntxy->x1, ntxy->x2); - outputrect.ymax=MAX2(ntxy->y1, ntxy->y2) + 1; - outputrect.ymin=MIN2(ntxy->y1, ntxy->y2); - - if(node->custom1) { - /* this option crops the image size too */ - stackbuf= get_cropped_compbuf(&outputrect, cbuf->rect, cbuf->x, cbuf->y, cbuf->type); - } - else { - /* this option won't crop the size of the image as well */ - /* allocate memory for the output image */ - stackbuf = alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); - - /* select the cropped part of the image and set it to the output */ - for(y=outputrect.ymin; yrect + (y * cbuf->x + outputrect.xmin) * cbuf->type; - outfp= stackbuf->rect + (y * stackbuf->x + outputrect.xmin) * stackbuf->type; - for(x=outputrect.xmin; xtype, srcfp+= cbuf->type) - memcpy(outfp, srcfp, sizeof(float)*stackbuf->type); - } - } - - out[0]->data= stackbuf; - } -} - -static void node_composit_init_crop(bNode* node) -{ - NodeTwoXYs *nxy= MEM_callocN(sizeof(NodeTwoXYs), "node xy data"); - node->storage= nxy; - nxy->x1= 0; - nxy->x2= 0; - nxy->y1= 0; - nxy->y2= 0; -} - -void register_node_type_cmp_crop(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_CROP, "Crop", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_crop_in, cmp_node_crop_out); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, node_composit_init_crop); - node_type_storage(&ntype, "NodeTwoXYs", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_crop); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c b/source/blender/nodes/intern/CMP_nodes/CMP_curves.c deleted file mode 100644 index 921c5e21fea..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Björn C. Schaefer - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_curves.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** CURVE Time ******************** */ - -/* custom1 = sfra, custom2 = efra */ -static bNodeSocketType cmp_node_time_out[]= { - { SOCK_VALUE, 0, "Fac", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_curves_time(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - RenderData *rd= data; - /* stack order output: fac */ - float fac= 0.0f; - - if(node->custom1 < node->custom2) - fac= (rd->cfra - node->custom1)/(float)(node->custom2-node->custom1); - - fac= curvemapping_evaluateF(node->storage, 0, fac); - out[0]->vec[0]= CLAMPIS(fac, 0.0f, 1.0f); -} - - -static void node_composit_init_curves_time(bNode* node) -{ - node->custom1= 1; - node->custom2= 250; - node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); -} - -void register_node_type_cmp_curve_time(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_TIME, "Time", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, cmp_node_time_out); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, node_composit_init_curves_time); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_composit_exec_curves_time); - - nodeRegisterType(lb, &ntype); -} - - - - -/* **************** CURVE VEC ******************** */ -static bNodeSocketType cmp_node_curve_vec_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_curve_vec_out[]= { - { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order input: vec */ - /* stack order output: vec */ - - curvemapping_evaluate_premulRGBF(node->storage, out[0]->vec, in[0]->vec); -} - -static void node_composit_init_curve_vec(bNode* node) -{ - node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f); -} - -void register_node_type_cmp_curve_vec(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - cmp_node_curve_vec_in, cmp_node_curve_vec_out); - node_type_size(&ntype, 200, 140, 320); - node_type_init(&ntype, node_composit_init_curve_vec); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_composit_exec_curve_vec); - - nodeRegisterType(lb, &ntype); -} - - -/* **************** CURVE RGB ******************** */ -static bNodeSocketType cmp_node_curve_rgb_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 1, "Black Level", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 1, "White Level", 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_curve_rgb_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_curves(bNode *node, float *out, float *in) -{ - curvemapping_evaluate_premulRGBF(node->storage, out, in); - out[3]= in[3]; -} - -static void do_curves_fac(bNode *node, float *out, float *in, float *fac) -{ - - if(*fac>=1.0) - curvemapping_evaluate_premulRGBF(node->storage, out, in); - else if(*fac<=0.0) { - VECCOPY(out, in); - } - else { - float col[4], mfac= 1.0f-*fac; - curvemapping_evaluate_premulRGBF(node->storage, col, in); - out[0]= mfac*in[0] + *fac*col[0]; - out[1]= mfac*in[1] + *fac*col[1]; - out[2]= mfac*in[2] + *fac*col[2]; - } - out[3]= in[3]; -} - -static void node_composit_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order input: fac, image, black level, white level */ - /* stack order output: image */ - - if(out[0]->hasoutput==0) - return; - - /* input no image? then only color operation */ - if(in[1]->data==NULL) { - curvemapping_evaluateRGBF(node->storage, out[0]->vec, in[1]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[1]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - curvemapping_set_black_white(node->storage, in[2]->vec, in[3]->vec); - - if(in[0]->vec[0] == 1.0) - composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_curves, CB_RGBA); - else - composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_curves_fac, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - } - -} - -static void node_composit_init_curve_rgb(bNode* node) -{ - node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); -} - -void register_node_type_cmp_curve_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_curve_rgb_in, cmp_node_curve_rgb_out); - node_type_size(&ntype, 200, 140, 320); - node_type_init(&ntype, node_composit_init_curve_rgb); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_composit_exec_curve_rgb); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c deleted file mode 100644 index f249e2cff6c..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c +++ /dev/null @@ -1,892 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_defocus.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* ************ qdn: Defocus node ****************** */ -static bNodeSocketType cmp_node_defocus_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_defocus_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -// line coefs for point sampling & scancon. data. -typedef struct BokehCoeffs { - float x0, y0, dx, dy; - float ls_x, ls_y; - float min_x, min_y, max_x, max_y; -} BokehCoeffs; - -// returns array of BokehCoeffs -// returns length of array in 'len_bkh', -// radius squared of inscribed disk in 'inradsq', needed in getWeight() test, -// BKH[8] is the data returned for the bokeh shape & bkh_b[4] is it's 2d bound -static void makeBokeh(char bktype, char ro, int* len_bkh, float* inradsq, BokehCoeffs BKH[8], float bkh_b[4]) -{ - float x0, x1, y0, y1, dx, dy, iDxy; - float w = MAX2(1e-5f, ro)*M_PI/180.f; // never reported stangely enough, but a zero offset causes missing center line... - float wi = (360.f/bktype)*M_PI/180.f; - int i, ov, nv; - - // bktype must be at least 3 & <= 8 - bktype = (bktype<3) ? 3 : ((bktype>8) ? 8 : bktype); - *len_bkh = bktype; - *inradsq = -1.f; - - for (i=0; i<(*len_bkh); i++) { - x0 = cos(w); - y0 = sin(w); - w += wi; - x1 = cos(w); - y1 = sin(w); - if ((*inradsq)<0.f) { - // radius squared of inscribed disk - float idx=(x0+x1)*0.5f, idy=(y0+y1)*0.5f; - *inradsq = idx*idx + idy*idy; - } - BKH[i].x0 = x0; - BKH[i].y0 = y0; - dx = x1-x0, dy = y1-y0; - iDxy = 1.f / sqrt(dx*dx + dy*dy); - dx *= iDxy; - dy *= iDxy; - BKH[i].dx = dx; - BKH[i].dy = dy; - } - - // precalc scanconversion data - // bokeh bound, not transformed, for scanconvert - bkh_b[0] = bkh_b[2] = 1e10f; // xmin/ymin - bkh_b[1] = bkh_b[3] = -1e10f; // xmax/ymax - ov = (*len_bkh) - 1; - for (nv=0; nv<(*len_bkh); nv++) { - bkh_b[0] = MIN2(bkh_b[0], BKH[nv].x0); // xmin - bkh_b[1] = MAX2(bkh_b[1], BKH[nv].x0); // xmax - bkh_b[2] = MIN2(bkh_b[2], BKH[nv].y0); // ymin - bkh_b[3] = MAX2(bkh_b[3], BKH[nv].y0); // ymax - BKH[nv].min_x = MIN2(BKH[ov].x0, BKH[nv].x0); - BKH[nv].max_x = MAX2(BKH[ov].x0, BKH[nv].x0); - BKH[nv].min_y = MIN2(BKH[ov].y0, BKH[nv].y0); - BKH[nv].max_y = MAX2(BKH[ov].y0, BKH[nv].y0); - dy = BKH[nv].y0 - BKH[ov].y0; - BKH[nv].ls_x = (BKH[nv].x0 - BKH[ov].x0) / ((dy==0.f) ? 1.f : dy); - BKH[nv].ls_y = (BKH[nv].ls_x==0.f) ? 1.f : (1.f/BKH[nv].ls_x); - ov = nv; - } -} - -// test if u/v inside shape & returns weight value -static float getWeight(BokehCoeffs* BKH, int len_bkh, float u, float v, float rad, float inradsq) -{ - BokehCoeffs* bc = BKH; - float cdist, irad = (rad==0.f) ? 1.f : (1.f/rad); - u *= irad; - v *= irad; - - // early out test1: if point outside outer unit disk, it cannot be inside shape - cdist = u*u + v*v; - if (cdist>1.f) return 0.f; - - // early out test2: if point inside or on inner disk, point must be inside shape - if (cdist<=inradsq) return 1.f; - - while (len_bkh--) { - if ((bc->dy*(u - bc->x0) - bc->dx*(v - bc->y0)) > 0.f) return 0.f; - bc++; - } - return 1.f; -} - -// QMC.seq. for sampling, A.Keller, EMS -static float RI_vdC(unsigned int bits, unsigned int r) -{ - bits = ( bits << 16) | ( bits >> 16); - bits = ((bits & 0x00ff00ff) << 8) | ((bits & 0xff00ff00) >> 8); - bits = ((bits & 0x0f0f0f0f) << 4) | ((bits & 0xf0f0f0f0) >> 4); - bits = ((bits & 0x33333333) << 2) | ((bits & 0xcccccccc) >> 2); - bits = ((bits & 0x55555555) << 1) | ((bits & 0xaaaaaaaa) >> 1); - bits ^= r; - return (float)((double)bits / 4294967296.0); -} - -// single channel IIR gaussian filtering -// much faster than anything else, constant time independent of width -// should extend to multichannel and make this a node, could be useful -static void IIR_gauss_single(CompBuf* buf, float sigma) -{ - double q, q2, sc, cf[4], tsM[9], tsu[3], tsv[3]; - float *X, *Y, *W; - int i, x, y, sz; - - // single channel only for now - if (buf->type != CB_VAL) return; - - // <0.5 not valid, though can have a possibly useful sort of sharpening effect - if (sigma < 0.5) return; - - // see "Recursive Gabor Filtering" by Young/VanVliet - // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 - if (sigma >= 3.556) - q = 0.9804*(sigma - 3.556) + 2.5091; - else // sigma >= 0.5 - q = (0.0561*sigma + 0.5784)*sigma - 0.2568; - q2 = q*q; - sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q); - // no gabor filtering here, so no complex multiplies, just the regular coefs. - // all negated here, so as not to have to recalc Triggs/Sdika matrix - cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc; - cf[2] = -q2*(3.38246 + 3.0*q)/sc; - // 0 & 3 unchanged - cf[3] = q2*q/sc; - cf[0] = 1.0 - cf[1] - cf[2] - cf[3]; - - // Triggs/Sdika border corrections, - // it seems to work, not entirely sure if it is actually totally correct, - // Besides J.M.Geusebroek's anigauss.c (see http://www.science.uva.nl/~mark), - // found one other implementation by Cristoph Lampert, - // but neither seem to be quite the same, result seems to be ok sofar anyway. - // Extra scale factor here to not have to do it in filter, - // though maybe this had something to with the precision errors - sc = cf[0]/((1.0 + cf[1] - cf[2] + cf[3])*(1.0 - cf[1] - cf[2] - cf[3])*(1.0 + cf[2] + (cf[1] - cf[3])*cf[3])); - tsM[0] = sc*(-cf[3]*cf[1] + 1.0 - cf[3]*cf[3] - cf[2]); - tsM[1] = sc*((cf[3] + cf[1])*(cf[2] + cf[3]*cf[1])); - tsM[2] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); - tsM[3] = sc*(cf[1] + cf[3]*cf[2]); - tsM[4] = sc*(-(cf[2] - 1.0)*(cf[2] + cf[3]*cf[1])); - tsM[5] = sc*(-(cf[3]*cf[1] + cf[3]*cf[3] + cf[2] - 1.0)*cf[3]); - tsM[6] = sc*(cf[3]*cf[1] + cf[2] + cf[1]*cf[1] - cf[2]*cf[2]); - tsM[7] = sc*(cf[1]*cf[2] + cf[3]*cf[2]*cf[2] - cf[1]*cf[3]*cf[3] - cf[3]*cf[3]*cf[3] - cf[3]*cf[2] + cf[3]); - tsM[8] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); - -#define YVV(L)\ -{\ - W[0] = cf[0]*X[0] + cf[1]*X[0] + cf[2]*X[0] + cf[3]*X[0];\ - W[1] = cf[0]*X[1] + cf[1]*W[0] + cf[2]*X[0] + cf[3]*X[0];\ - W[2] = cf[0]*X[2] + cf[1]*W[1] + cf[2]*W[0] + cf[3]*X[0];\ - for (i=3; i=0; i--)\ - Y[i] = cf[0]*W[i] + cf[1]*Y[i+1] + cf[2]*Y[i+2] + cf[3]*Y[i+3];\ -} - - // intermediate buffers - sz = MAX2(buf->x, buf->y); - Y = MEM_callocN(sz*sizeof(float), "IIR_gauss Y buf"); - W = MEM_callocN(sz*sizeof(float), "IIR_gauss W buf"); - // H - for (y=0; yy; y++) { - X = &buf->rect[y*buf->x]; - YVV(buf->x); - memcpy(X, Y, sizeof(float)*buf->x); - } - // V - X = MEM_callocN(buf->y*sizeof(float), "IIR_gauss X buf"); - for (x=0; xx; x++) { - for (y=0; yy; y++) - X[y] = buf->rect[x + y*buf->x]; - YVV(buf->y); - for (y=0; yy; y++) - buf->rect[x + y*buf->x] = Y[y]; - } - MEM_freeN(X); - - MEM_freeN(W); - MEM_freeN(Y); -#undef YVV -} - -static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf, float inpval, int no_zbuf) -{ - NodeDefocus *nqd = node->storage; - CompBuf *wts; // weights buffer - CompBuf *crad; // CoC radius buffer - BokehCoeffs BKH[8]; // bokeh shape data, here never > 8 pts. - float bkh_b[4] = {0}; // shape 2D bound - float cam_fdist=1, cam_invfdist=1, cam_lens=35; - float dof_sp, maxfgc, bk_hn_theta=0, inradsq=0; - int y, len_bkh=0, ydone=0; - float aspect, aperture; - int minsz; - //float bcrad, nmaxc, scf; - - // get some required params from the current scene camera - // (ton) this is wrong, needs fixed - Scene *scene= (Scene*)node->id; - Object* camob = (scene)? scene->camera: NULL; - if (camob && camob->type==OB_CAMERA) { - Camera* cam = (Camera*)camob->data; - cam_lens = cam->lens; - cam_fdist = dof_camera(camob); - if (cam_fdist==0.0) cam_fdist = 1e10f; /* if the dof is 0.0 then set it be be far away */ - cam_invfdist = 1.f/cam_fdist; - } - - // guess work here.. best match with raytraced result - minsz = MIN2(img->x, img->y); - dof_sp = (float)minsz / (16.f / cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov); - - // aperture - aspect = (img->x > img->y) ? (img->y / (float)img->x) : (img->x / (float)img->y); - aperture = 0.5f*(cam_lens / (aspect*32.f)) / nqd->fstop; - - // if not disk, make bokeh coefficients and other needed data - if (nqd->bktype!=0) { - makeBokeh(nqd->bktype, nqd->rotation, &len_bkh, &inradsq, BKH, bkh_b); - bk_hn_theta = 0.5 * nqd->bktype * sin(2.0 * M_PI / nqd->bktype); // weight factor - } - - // accumulated weights - wts = alloc_compbuf(img->x, img->y, CB_VAL, 1); - // CoC radius buffer - crad = alloc_compbuf(img->x, img->y, CB_VAL, 1); - - // if 'no_zbuf' flag set (which is always set if input is not an image), - // values are instead interpreted directly as blur radius values - if (no_zbuf) { - // to prevent *reaaallly* big radius values and impossible calculation times, - // limit the maximum to half the image width or height, whichever is smaller - float maxr = 0.5f*(float)MIN2(img->x, img->y); - unsigned int p; - - for (p=0; p<(unsigned int)(img->x*img->y); p++) { - crad->rect[p] = zbuf ? (zbuf->rect[p]*nqd->scale) : inpval; - // bug #5921, limit minimum - crad->rect[p] = MAX2(1e-5f, crad->rect[p]); - crad->rect[p] = MIN2(crad->rect[p], maxr); - // if maxblur!=0, limit maximum - if (nqd->maxblur != 0.f) crad->rect[p] = MIN2(crad->rect[p], nqd->maxblur); - } - } - else { - float wt; - - // actual zbuffer. - // separate foreground from background CoC's - // then blur background and blend in again with foreground, - // improves the 'blurred foreground overlapping in-focus midground' sharp boundary problem. - // wts buffer here used for blendmask - maxfgc = 0.f; // maximum foreground CoC radius - for (y=0; yy; y++) { - unsigned int p = y * img->x; - int x; - for (x=0; xx; x++) { - unsigned int px = p + x; - float iZ = (zbuf->rect[px]==0.f) ? 0.f : (1.f/zbuf->rect[px]); - crad->rect[px] = 0.5f*(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); - if (crad->rect[px] <= 0.f) { - wts->rect[px] = 1.f; - crad->rect[px] = -crad->rect[px]; - if (crad->rect[px] > maxfgc) maxfgc = crad->rect[px]; - } - else crad->rect[px] = wts->rect[px] = 0; - } - } - - // fast blur... - // bug #6656 part 1, probably when previous node_composite.c was split into separate files, it was not properly updated - // to include recent cvs commits (well, at least not defocus node), so this part was missing... - wt = aperture*128.f; - IIR_gauss_single(crad, wt); - IIR_gauss_single(wts, wt); - - // bug #6656 part 2a, although foreground blur is not based anymore on closest object, - // the rescaling op below was still based on that anyway, and unlike the comment in below code, - // the difference is therefore not always that small at all... - // so for now commented out, not sure if this is going to cause other future problems, lets just wait and see... - /* - // find new maximum to scale it back to original - // (could skip this, not strictly necessary, in general, difference is quite small, but just in case...) - nmaxc = 0; - for (p=0; p<(img->x*img->y); p++) - if (crad->rect[p] > nmaxc) nmaxc = crad->rect[p]; - // rescale factor - scf = (nmaxc==0.f) ? 1.f: (maxfgc / nmaxc); - */ - - // and blend... - for (y=0; yy; y++) { - unsigned int p = y*img->x; - int x; - - for (x=0; xx; x++) { - unsigned px = p + x; - if (zbuf->rect[px]!=0.f) { - float iZ = (zbuf->rect[px]==0.f) ? 0.f : (1.f/zbuf->rect[px]); - - // bug #6656 part 2b, do not rescale - /* - bcrad = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); - // scale crad back to original maximum and blend - crad->rect[px] = bcrad + wts->rect[px]*(scf*crad->rect[px] - bcrad); - */ - crad->rect[px] = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f)); - - // 'bug' #6615, limit minimum radius to 1 pixel, not really a solution, but somewhat mitigates the problem - crad->rect[px] = MAX2(crad->rect[px], 0.5f); - // if maxblur!=0, limit maximum - if (nqd->maxblur != 0.f) crad->rect[px] = MIN2(crad->rect[px], nqd->maxblur); - } - else crad->rect[px] = 0.f; - // clear weights for next part - wts->rect[px] = 0.f; - } - // esc set by main calling process - if(node->exec & NODE_BREAK) - break; - } - } - - //------------------------------------------------------------------ - // main loop -#ifndef __APPLE__ /* can crash on Mac, see bug #22856, disabled for now */ -#ifdef __INTEL_COMPILER /* icc doesn't like the compound statement -- internal error: 0_1506 */ - #pragma omp parallel for private(y) if(!nqd->preview) schedule(guided) -#else - #pragma omp parallel for private(y) if(!nqd->preview && img->y*img->x > 16384) schedule(guided) -#endif -#endif - for (y=0; yy; y++) { - unsigned int p, p4, zp, cp, cp4; - float *ctcol, u, v, ct_crad, cR2=0; - int x, sx, sy; - - // some sort of visual feedback would be nice, or at least this text in the renderwin header - // but for now just print some info in the console every 8 scanlines. - #pragma omp critical - { - if (((ydone & 7)==0) || (ydone==(img->y-1))) { - if(G.background==0) { - printf("\rdefocus: Processing Line %d of %d ... ", ydone+1, img->y); - fflush(stdout); - } - } - - ydone++; - } - - // esc set by main calling process. don't break because openmp doesn't - // allow it, just continue and do nothing - if(node->exec & NODE_BREAK) - continue; - - zp = y * img->x; - for (x=0; xx; x++) { - cp = zp + x; - cp4 = cp * img->type; - - // Circle of Confusion radius for current pixel - cR2 = ct_crad = crad->rect[cp]; - // skip if zero (border render) - if (ct_crad==0.f) { - // related to bug #5921, forgot output image when skipping 0 radius values - new->rect[cp4] = img->rect[cp4]; - if (new->type != CB_VAL) { - new->rect[cp4+1] = img->rect[cp4+1]; - new->rect[cp4+2] = img->rect[cp4+2]; - new->rect[cp4+3] = img->rect[cp4+3]; - } - continue; - } - cR2 *= cR2; - - // pixel color - ctcol = &img->rect[cp4]; - - if (!nqd->preview) { - int xs, xe, ys, ye; - float lwt, wtcol[4] = {0}, aacol[4] = {0}; - float wt; - - // shape weight - if (nqd->bktype==0) // disk - wt = 1.f/((float)M_PI*cR2); - else - wt = 1.f/(cR2*bk_hn_theta); - - // weighted color - wtcol[0] = wt*ctcol[0]; - if (new->type != CB_VAL) { - wtcol[1] = wt*ctcol[1]; - wtcol[2] = wt*ctcol[2]; - wtcol[3] = wt*ctcol[3]; - } - - // macro for background blur overlap test - // unfortunately, since this is done per pixel, - // it has a very significant negative impact on processing time... - // (eg. aa disk blur without test: 112 sec, vs with test: 176 sec...) - // iff center blur radius > threshold - // and if overlap pixel in focus, do nothing, else add color/weigbt - // (threshold constant is dependant on amount of blur) - #define TESTBG1(c, w) {\ - if (ct_crad > nqd->bthresh) {\ - if (crad->rect[p] > nqd->bthresh) {\ - new->rect[p] += c[0];\ - wts->rect[p] += w;\ - }\ - }\ - else {\ - new->rect[p] += c[0];\ - wts->rect[p] += w;\ - }\ - } - #define TESTBG4(c, w) {\ - if (ct_crad > nqd->bthresh) {\ - if (crad->rect[p] > nqd->bthresh) {\ - new->rect[p4] += c[0];\ - new->rect[p4+1] += c[1];\ - new->rect[p4+2] += c[2];\ - new->rect[p4+3] += c[3];\ - wts->rect[p] += w;\ - }\ - }\ - else {\ - new->rect[p4] += c[0];\ - new->rect[p4+1] += c[1];\ - new->rect[p4+2] += c[2];\ - new->rect[p4+3] += c[3];\ - wts->rect[p] += w;\ - }\ - } - if (nqd->bktype == 0) { - // Disk - int _x, i, j, di; - float Dj, T; - // AA pixel - #define AAPIX(a, b) {\ - int _ny = b;\ - if ((_ny >= 0) && (_ny < new->y)) {\ - int _nx = a;\ - if ((_nx >=0) && (_nx < new->x)) {\ - p = _ny*new->x + _nx;\ - if (new->type==CB_VAL) {\ - TESTBG1(aacol, lwt);\ - }\ - else {\ - p4 = p * new->type;\ - TESTBG4(aacol, lwt);\ - }\ - }\ - }\ - } - // circle scanline - #define CSCAN(a, b) {\ - int _ny = y + b;\ - if ((_ny >= 0) && (_ny < new->y)) {\ - xs = x - a + 1;\ - if (xs < 0) xs = 0;\ - xe = x + a;\ - if (xe > new->x) xe = new->x;\ - p = _ny*new->x + xs;\ - if (new->type==CB_VAL) {\ - for (_x=xs; _xtype;\ - for (_x=xs; _xtype) TESTBG4(wtcol, wt);\ - }\ - }\ - } - i = ceil(ct_crad); - j = 0; - T = 0; - while (i > j) { - Dj = sqrt(cR2 - j*j); - Dj -= floor(Dj); - di = 0; - if (Dj > T) { i--; di = 1; } - T = Dj; - aacol[0] = wtcol[0]*Dj; - if (new->type != CB_VAL) { - aacol[1] = wtcol[1]*Dj; - aacol[2] = wtcol[2]*Dj; - aacol[3] = wtcol[3]*Dj; - } - lwt = wt*Dj; - if (i!=j) { - // outer pixels - AAPIX(x+j, y+i); - AAPIX(x+j, y-i); - if (j) { - AAPIX(x-j, y+i); // BL - AAPIX(x-j, y-i); // TL - } - if (di) { // only when i changed, interior of outer section - CSCAN(j, i); // bottom - CSCAN(j, -i); // top - } - } - // lower mid section - AAPIX(x+i, y+j); - if (i) AAPIX(x-i, y+j); - CSCAN(i, j); - // upper mid section - if (j) { - AAPIX(x+i, y-j); - if (i) AAPIX(x-i, y-j); - CSCAN(i, -j); - } - j++; - } - #undef CSCAN - #undef AAPIX - } - else { - // n-agonal - int ov, nv; - float mind, maxd, lwt; - ys = MAX2((int)floor(bkh_b[2]*ct_crad + y), 0); - ye = MIN2((int)ceil(bkh_b[3]*ct_crad + y), new->y - 1); - for (sy=ys; sy<=ye; sy++) { - float fxs = 1e10f, fxe = -1e10f; - float yf = (sy - y)/ct_crad; - int found = 0; - ov = len_bkh - 1; - mind = maxd = 0; - for (nv=0; nv= yf) && (BKH[nv].min_y <= yf)) { - float tx = BKH[ov].x0 + BKH[nv].ls_x*(yf - BKH[ov].y0); - if (tx < fxs) { fxs = tx; mind = BKH[nv].ls_x; } - if (tx > fxe) { fxe = tx; maxd = BKH[nv].ls_x; } - if (++found == 2) break; - } - ov = nv; - } - if (found) { - fxs = fxs*ct_crad + x; - fxe = fxe*ct_crad + x; - xs = (int)floor(fxs), xe = (int)ceil(fxe); - // AA hack for first and last x pixel, near vertical edges only - if (fabs(mind) <= 1.f) { - if ((xs >= 0) && (xs < new->x)) { - lwt = 1.f-(fxs - xs); - aacol[0] = wtcol[0]*lwt; - p = xs + sy*new->x; - if (new->type==CB_VAL) { - lwt *= wt; - TESTBG1(aacol, lwt); - } - else { - p4 = p * new->type; - aacol[1] = wtcol[1]*lwt; - aacol[2] = wtcol[2]*lwt; - aacol[3] = wtcol[3]*lwt; - lwt *= wt; - TESTBG4(aacol, lwt); - } - } - } - if (fabs(maxd) <= 1.f) { - if ((xe >= 0) && (xe < new->x)) { - lwt = 1.f-(xe - fxe); - aacol[0] = wtcol[0]*lwt; - p = xe + sy*new->x; - if (new->type==CB_VAL) { - lwt *= wt; - TESTBG1(aacol, lwt); - } - else { - p4 = p * new->type; - aacol[1] = wtcol[1]*lwt; - aacol[2] = wtcol[2]*lwt; - aacol[3] = wtcol[3]*lwt; - lwt *= wt; - TESTBG4(aacol, lwt); - } - } - } - xs = MAX2(xs+1, 0); - xe = MIN2(xe, new->x); - // remaining interior scanline - p = sy*new->x + xs; - if (new->type==CB_VAL) { - for (sx=xs; sxtype; - for (sx=xs; sxtype) TESTBG4(wtcol, wt); - } - } - } - - // now traverse in opposite direction, y scanlines, - // but this time only draw the near horizontal edges, - // applying same AA hack as above - xs = MAX2((int)floor(bkh_b[0]*ct_crad + x), 0); - xe = MIN2((int)ceil(bkh_b[1]*ct_crad + x), img->x - 1); - for (sx=xs; sx<=xe; sx++) { - float xf = (sx - x)/ct_crad; - float fys = 1e10f, fye = -1e10f; - int found = 0; - ov = len_bkh - 1; - mind = maxd = 0; - for (nv=0; nv= xf) && (BKH[nv].min_x <= xf)) { - float ty = BKH[ov].y0 + BKH[nv].ls_y*(xf - BKH[ov].x0); - if (ty < fys) { fys = ty; mind = BKH[nv].ls_y; } - if (ty > fye) { fye = ty; maxd = BKH[nv].ls_y; } - if (++found == 2) break; - } - ov = nv; - } - if (found) { - fys = fys*ct_crad + y; - fye = fye*ct_crad + y; - // near horizontal edges only, line slope <= 1 - if (fabs(mind) <= 1.f) { - int iys = (int)floor(fys); - if ((iys >= 0) && (iys < new->y)) { - lwt = 1.f - (fys - iys); - aacol[0] = wtcol[0]*lwt; - p = sx + iys*new->x; - if (new->type==CB_VAL) { - lwt *= wt; - TESTBG1(aacol, lwt); - } - else { - p4 = p * new->type; - aacol[1] = wtcol[1]*lwt; - aacol[2] = wtcol[2]*lwt; - aacol[3] = wtcol[3]*lwt; - lwt *= wt; - TESTBG4(aacol, lwt); - } - } - } - if (fabs(maxd) <= 1.f) { - int iye = ceil(fye); - if ((iye >= 0) && (iye < new->y)) { - lwt = 1.f - (iye - fye); - aacol[0] = wtcol[0]*lwt; - p = sx + iye*new->x; - if (new->type==CB_VAL) { - lwt *= wt; - TESTBG1(aacol, lwt); - } - else { - p4 = p * new->type; - aacol[1] = wtcol[1]*lwt; - aacol[2] = wtcol[2]*lwt; - aacol[3] = wtcol[3]*lwt; - lwt *= wt; - TESTBG4(aacol, lwt); - } - } - } - } - } - - } - #undef TESTBG4 - #undef TESTBG1 - - } - else { - // sampled, simple rejection sampling here, good enough - unsigned int maxsam, s, ui = BLI_rand()*BLI_rand(); - float wcor, cpr = BLI_frand(), lwt; - if (no_zbuf) - maxsam = nqd->samples; // no zbuffer input, use sample value directly - else { - // depth adaptive sampling hack, the more out of focus, the more samples taken, 16 minimum. - maxsam = (int)(0.5f + nqd->samples*(1.f-(float)exp(-fabs(zbuf->rect[cp] - cam_fdist)))); - if (maxsam < 16) maxsam = 16; - } - wcor = 1.f/(float)maxsam; - for (s=0; s= new->x) || (sy<0) || (sy >= new->y)) continue; - p = sx + sy*new->x; - p4 = p * new->type; - if (nqd->bktype==0) // Disk - lwt = ((u*u + v*v)<=cR2) ? wcor : 0.f; - else // AA not needed here - lwt = wcor * getWeight(BKH, len_bkh, u, v, ct_crad, inradsq); - // prevent background bleeding onto in-focus pixels, user-option - if (ct_crad > nqd->bthresh) { // if center blur > threshold - if (crad->rect[p] > nqd->bthresh) { // if overlap pixel in focus, do nothing, else add color/weigbt - new->rect[p4] += ctcol[0] * lwt; - if (new->type != CB_VAL) { - new->rect[p4+1] += ctcol[1] * lwt; - new->rect[p4+2] += ctcol[2] * lwt; - new->rect[p4+3] += ctcol[3] * lwt; - } - wts->rect[p] += lwt; - } - } - else { - new->rect[p4] += ctcol[0] * lwt; - if (new->type != CB_VAL) { - new->rect[p4+1] += ctcol[1] * lwt; - new->rect[p4+2] += ctcol[2] * lwt; - new->rect[p4+3] += ctcol[3] * lwt; - } - wts->rect[p] += lwt; - } - } - } - - } - } - - // finally, normalize - for (y=0; yy; y++) { - unsigned int p = y * new->x; - unsigned int p4 = p * new->type; - int x; - - for (x=0; xx; x++) { - float dv = (wts->rect[p]==0.f) ? 1.f : (1.f/wts->rect[p]); - new->rect[p4] *= dv; - if (new->type!=CB_VAL) { - new->rect[p4+1] *= dv; - new->rect[p4+2] *= dv; - new->rect[p4+3] *= dv; - } - p++; - p4 += new->type; - } - } - - free_compbuf(crad); - free_compbuf(wts); - - printf("Done\n"); -} - - -static void node_composit_exec_defocus(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *new, *old, *zbuf_use = NULL, *img = in[0]->data, *zbuf = in[1]->data; - NodeDefocus *nqd = node->storage; - int no_zbuf = nqd->no_zbuf; - - if ((img==NULL) || (out[0]->hasoutput==0)) return; - - // if image not valid type or fstop==infinite (128), nothing to do, pass in to out - if (((img->type!=CB_RGBA) && (img->type!=CB_VAL)) || ((no_zbuf==0) && (nqd->fstop==128.f))) { - out[0]->data = pass_on_compbuf(img); - return; - } - - if (zbuf!=NULL) { - // Zbuf input, check to make sure, single channel, same size - // doesn't have to be actual zbuffer, but must be value type - if ((zbuf->x != img->x) || (zbuf->y != img->y)) { - // could do a scale here instead... - printf("Z input must be same size as image !\n"); - return; - } - zbuf_use = typecheck_compbuf(zbuf, CB_VAL); - } - else no_zbuf = 1; // no zbuffer input - - // ok, process - old = img; - if (nqd->gamco) { - // gamma correct, blender func is simplified, fixed value & RGBA only, - // should make user param. also depremul and premul afterwards, gamma - // correction can't work with premul alpha - old = dupalloc_compbuf(img); - premul_compbuf(old, 1); - gamma_correct_compbuf(old, 0); - premul_compbuf(old, 0); - } - - new = alloc_compbuf(old->x, old->y, old->type, 1); - defocus_blur(node, new, old, zbuf_use, in[1]->vec[0]*nqd->scale, no_zbuf); - - if (nqd->gamco) { - premul_compbuf(new, 1); - gamma_correct_compbuf(new, 1); - premul_compbuf(new, 0); - free_compbuf(old); - } - if(node->exec & NODE_BREAK) { - free_compbuf(new); - new= NULL; - } - out[0]->data = new; - if (zbuf_use && (zbuf_use != zbuf)) free_compbuf(zbuf_use); -} - -static void node_composit_init_defocus(bNode* node) -{ - /* qdn: defocus node */ - NodeDefocus *nbd = MEM_callocN(sizeof(NodeDefocus), "node defocus data"); - nbd->bktype = 0; - nbd->rotation = 0.f; - nbd->preview = 1; - nbd->gamco = 0; - nbd->samples = 16; - nbd->fstop = 128.f; - nbd->maxblur = 0; - nbd->bthresh = 1.f; - nbd->scale = 1.f; - nbd->no_zbuf = 1; - node->storage = nbd; -} - -void register_node_type_cmp_defocus(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DEFOCUS, "Defocus", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_defocus_in, cmp_node_defocus_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_defocus); - node_type_storage(&ntype, "NodeDefocus", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_defocus); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c deleted file mode 100644 index 296053298da..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_diffMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* ******************* channel Difference Matte ********************************* */ -static bNodeSocketType cmp_node_diff_matte_in[]={ - {SOCK_RGBA,1,"Image 1", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA,1,"Image 2", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_diff_matte_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_diff_matte(bNode *node, float *outColor, float *inColor1, float *inColor2) -{ - NodeChroma *c= (NodeChroma *)node->storage; - float tolerence=c->t1; - float falloff=c->t2; - float difference; - float alpha; - - difference= fabs(inColor2[0]-inColor1[0])+ - fabs(inColor2[1]-inColor1[1])+ - fabs(inColor2[2]-inColor1[2]); - - /*average together the distances*/ - difference=difference/3.0; - - VECCOPY(outColor, inColor1); - - /*make 100% transparent*/ - if(difference < tolerence) { - outColor[3]=0.0; - } - /*in the falloff region, make partially transparent */ - else if(difference < falloff+tolerence) { - difference=difference-tolerence; - alpha=difference/falloff; - /*only change if more transparent than before */ - if(alpha < inColor1[3]) { - outColor[3]=alpha; - } - else { /* leave as before */ - outColor[3]=inColor1[3]; - } - } - else { - /*foreground object*/ - outColor[3]= inColor1[3]; - } -} - -static void node_composit_exec_diff_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *outbuf=0; - CompBuf *imbuf1=0; - CompBuf *imbuf2=0; - NodeChroma *c; - - /*is anything connected?*/ - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - - /*must have an image imput*/ - if(in[0]->data==NULL) return; - - - imbuf1=typecheck_compbuf(in[0]->data, CB_RGBA); - - /* if there's an image, use that, if not use the color */ - if(in[1]->data) { - imbuf2=typecheck_compbuf(in[1]->data, CB_RGBA); - } - - c=node->storage; - outbuf=dupalloc_compbuf(imbuf1); - - /* note, processor gets a keyvals array passed on as buffer constant */ - composit2_pixel_processor(node, outbuf, imbuf1, in[0]->vec, imbuf2, in[1]->vec, do_diff_matte, CB_RGBA, CB_RGBA); - - out[0]->data=outbuf; - if(out[1]->hasoutput) - out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); - generate_preview(data, node, outbuf); - - if(imbuf1!=in[0]->data) - free_compbuf(imbuf1); - - if(imbuf2!=in[1]->data) - free_compbuf(imbuf2); -} - -static void node_composit_init_diff_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); - node->storage= c; - c->t1= 0.1f; - c->t2= 0.1f; -} - -void register_node_type_cmp_diff_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DIFF_MATTE, "Difference Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_diff_matte_in, cmp_node_diff_matte_out); - node_type_size(&ntype, 200, 80, 250); - node_type_init(&ntype, node_composit_init_diff_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_diff_matte); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c b/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c deleted file mode 100644 index f5d16ff0ab8..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_dilate.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Dilate/Erode ******************** */ - -static bNodeSocketType cmp_node_dilateerode_in[]= { - { SOCK_VALUE, 1, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_dilateerode_out[]= { - { SOCK_VALUE, 0, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void morpho_dilate(CompBuf *cbuf) -{ - int x, y; - float *p, *rectf = cbuf->rect; - - for (y=0; y < cbuf->y; y++) { - for (x=0; x < cbuf->x-1; x++) { - p = rectf + cbuf->x*y + x; - *p = MAX2(*p, *(p + 1)); - } - } - - for (y=0; y < cbuf->y; y++) { - for (x=cbuf->x-1; x >= 1; x--) { - p = rectf + cbuf->x*y + x; - *p = MAX2(*p, *(p - 1)); - } - } - - for (x=0; x < cbuf->x; x++) { - for (y=0; y < cbuf->y-1; y++) { - p = rectf + cbuf->x*y + x; - *p = MAX2(*p, *(p + cbuf->x)); - } - } - - for (x=0; x < cbuf->x; x++) { - for (y=cbuf->y-1; y >= 1; y--) { - p = rectf + cbuf->x*y + x; - *p = MAX2(*p, *(p - cbuf->x)); - } - } -} - -static void morpho_erode(CompBuf *cbuf) -{ - int x, y; - float *p, *rectf = cbuf->rect; - - for (y=0; y < cbuf->y; y++) { - for (x=0; x < cbuf->x-1; x++) { - p = rectf + cbuf->x*y + x; - *p = MIN2(*p, *(p + 1)); - } - } - - for (y=0; y < cbuf->y; y++) { - for (x=cbuf->x-1; x >= 1; x--) { - p = rectf + cbuf->x*y + x; - *p = MIN2(*p, *(p - 1)); - } - } - - for (x=0; x < cbuf->x; x++) { - for (y=0; y < cbuf->y-1; y++) { - p = rectf + cbuf->x*y + x; - *p = MIN2(*p, *(p + cbuf->x)); - } - } - - for (x=0; x < cbuf->x; x++) { - for (y=cbuf->y-1; y >= 1; y--) { - p = rectf + cbuf->x*y + x; - *p = MIN2(*p, *(p - cbuf->x)); - } - } - -} - -static void node_composit_exec_dilateerode(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: mask */ - /* stack order out: mask */ - if(out[0]->hasoutput==0) - return; - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - out[0]->vec[0] = out[0]->vec[1] = out[0]->vec[2] = 0.0f; - out[0]->vec[3] = 0.0f; - } - else { - /* make output size of input image */ - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_VAL); - CompBuf *stackbuf= dupalloc_compbuf(cbuf); - short i; - - if (node->custom2 > 0) { // positive, dilate - for (i = 0; i < node->custom2; i++) - morpho_dilate(stackbuf); - } else if (node->custom2 < 0) { // negative, erode - for (i = 0; i > node->custom2; i--) - morpho_erode(stackbuf); - } - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_dilateerode(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DILATEERODE, "Dilate/Erode", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_dilateerode_in, cmp_node_dilateerode_out); - node_type_size(&ntype, 130, 100, 320); - node_type_exec(&ntype, node_composit_exec_dilateerode); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c b/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c deleted file mode 100644 index 2a8bbcc9ad5..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Alfredo de Greef (eeshlo) - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_directionalblur.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -static bNodeSocketType cmp_node_dblur_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.f, 0.f, 1.f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_dblur_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static CompBuf *dblur(bNode *node, CompBuf *img, int iterations, int wrap, - float center_x, float center_y, float dist, float angle, float spin, float zoom) -{ - if ((dist != 0.f) || (spin != 0.f) || (zoom != 0.f)) { - void (*getpix)(CompBuf*, float, float, float*) = wrap ? qd_getPixelLerpWrap : qd_getPixelLerp; - const float a= angle * (float)M_PI / 180.f; - const float itsc= 1.f / pow(2.f, (float)iterations); - float D; - float center_x_pix, center_y_pix; - float tx, ty; - float sc, rot; - CompBuf *tmp; - int i, j; - - tmp= dupalloc_compbuf(img); - - D= dist * sqrtf(img->x * img->x + img->y * img->y); - center_x_pix= center_x * img->x; - center_y_pix= center_y * img->y; - - tx= itsc * D * cos(a); - ty= -itsc * D * sin(a); - sc= itsc * zoom; - rot= itsc * spin * (float)M_PI / 180.f; - - /* blur the image */ - for(i= 0; i < iterations; ++i) { - const float cs= cos(rot), ss= sin(rot); - const float isc= 1.f / (1.f + sc); - unsigned int x, y; - float col[4]= {0,0,0,0}; - - for(y= 0; y < img->y; ++y) { - const float v= isc * (y - center_y_pix) + ty; - - for(x= 0; x < img->x; ++x) { - const float u= isc * (x - center_x_pix) + tx; - unsigned int p= (x + y * img->x) * img->type; - - getpix(tmp, cs * u + ss * v + center_x_pix, cs * v - ss * u + center_y_pix, col); - - /* mix img and transformed tmp */ - for(j= 0; j < 4; ++j) - img->rect[p + j]= AVG2(img->rect[p + j], col[j]); - } - } - - /* copy img to tmp */ - if(i != (iterations - 1)) - memcpy(tmp->rect, img->rect, sizeof(float) * img->x * img->y * img->type); - - /* double transformations */ - tx *= 2.f, ty *= 2.f; - sc *= 2.f, rot *= 2.f; - - if(node->exec & NODE_BREAK) break; - } - - free_compbuf(tmp); - } - - return img; -} - -static void node_composit_exec_dblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - NodeDBlurData *ndbd= node->storage; - CompBuf *new, *img= in[0]->data; - - if((img == NULL) || (out[0]->hasoutput == 0)) return; - - if (img->type != CB_RGBA) - new = typecheck_compbuf(img, CB_RGBA); - else - new = dupalloc_compbuf(img); - - out[0]->data= dblur(node, new, ndbd->iter, ndbd->wrap, ndbd->center_x, ndbd->center_y, ndbd->distance, ndbd->angle, ndbd->spin, ndbd->zoom); -} - -static void node_composit_init_dblur(bNode* node) -{ - NodeDBlurData *ndbd= MEM_callocN(sizeof(NodeDBlurData), "node dblur data"); - node->storage= ndbd; - ndbd->center_x= 0.5; - ndbd->center_y= 0.5; -} - -void register_node_type_cmp_dblur(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DBLUR, "Directional Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_dblur_in, cmp_node_dblur_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_dblur); - node_type_storage(&ntype, "NodeDBlurData", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_dblur); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c b/source/blender/nodes/intern/CMP_nodes/CMP_displace.c deleted file mode 100644 index 9139edf8560..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_displace.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Displace ******************** */ - -static bNodeSocketType cmp_node_displace_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Vector", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "X Scale", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, - { SOCK_VALUE, 1, "Y Scale", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_displace_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* minimum distance (in pixels) a pixel has to be displaced - * in order to take effect */ -#define DISPLACE_EPSILON 0.01 - -static void do_displace(bNode *node, CompBuf *stackbuf, CompBuf *cbuf, CompBuf *vecbuf, float *UNUSED(veccol), CompBuf *xbuf, CompBuf *ybuf, float *xscale, float *yscale) -{ - ImBuf *ibuf; - int x, y; - float p_dx, p_dy; /* main displacement in pixel space */ - float d_dx, d_dy; - float dxt, dyt; - float u, v; - float xs, ys; - float vec[3], vecdx[3], vecdy[3]; - float col[3]; - - ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - ibuf->rect_float= cbuf->rect; - - for(y=0; y < stackbuf->y; y++) { - for(x=0; x < stackbuf->x; x++) { - /* calc pixel coordinates */ - qd_getPixel(vecbuf, x-vecbuf->xof, y-vecbuf->yof, vec); - - if (xbuf) - qd_getPixel(xbuf, x-xbuf->xof, y-xbuf->yof, &xs); - else - xs = xscale[0]; - - if (ybuf) - qd_getPixel(ybuf, x-ybuf->xof, y-ybuf->yof, &ys); - else - ys = yscale[0]; - - /* clamp x and y displacement to triple image resolution - - * to prevent hangs from huge values mistakenly plugged in eg. z buffers */ - CLAMP(xs, -stackbuf->x*4, stackbuf->x*4); - CLAMP(ys, -stackbuf->y*4, stackbuf->y*4); - - p_dx = vec[0] * xs; - p_dy = vec[1] * ys; - - /* if no displacement, then just copy this pixel */ - if (fabsf(p_dx) < DISPLACE_EPSILON && fabsf(p_dy) < DISPLACE_EPSILON) { - qd_getPixel(cbuf, x-cbuf->xof, y-cbuf->yof, col); - qd_setPixel(stackbuf, x, y, col); - continue; - } - - /* displaced pixel in uv coords, for image sampling */ - u = (x - cbuf->xof - p_dx + 0.5f) / (float)stackbuf->x; - v = (y - cbuf->yof - p_dy + 0.5f) / (float)stackbuf->y; - - - /* calc derivatives */ - qd_getPixel(vecbuf, x-vecbuf->xof+1, y-vecbuf->yof, vecdx); - qd_getPixel(vecbuf, x-vecbuf->xof, y-vecbuf->yof+1, vecdy); - d_dx = vecdx[0] * xs; - d_dy = vecdy[0] * ys; - - /* clamp derivatives to minimum displacement distance in UV space */ - dxt = p_dx - d_dx; - dyt = p_dy - d_dy; - - dxt = signf(dxt)*maxf(fabsf(dxt), DISPLACE_EPSILON)/(float)stackbuf->x; - dyt = signf(dyt)*maxf(fabsf(dyt), DISPLACE_EPSILON)/(float)stackbuf->y; - - ibuf_sample(ibuf, u, v, dxt, dyt, col); - qd_setPixel(stackbuf, x, y, col); - - if(node->exec & NODE_BREAK) break; - } - - if(node->exec & NODE_BREAK) break; - } - IMB_freeImBuf(ibuf); - - -/* simple method for reference, linear interpolation */ -/* - int x, y; - float dx, dy; - float u, v; - float vec[3]; - float col[3]; - - for(y=0; y < stackbuf->y; y++) { - for(x=0; x < stackbuf->x; x++) { - qd_getPixel(vecbuf, x, y, vec); - - dx = vec[0] * (xscale[0]); - dy = vec[1] * (yscale[0]); - - u = (x - dx + 0.5f) / (float)stackbuf->x; - v = (y - dy + 0.5f) / (float)stackbuf->y; - - qd_getPixelLerp(cbuf, u*cbuf->x - 0.5f, v*cbuf->y - 0.5f, col); - qd_setPixel(stackbuf, x, y, col); - } - } -*/ -} - - -static void node_composit_exec_displace(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(out[0]->hasoutput==0) - return; - - if(in[0]->data && in[1]->data) { - CompBuf *cbuf= in[0]->data; - CompBuf *vecbuf= in[1]->data; - CompBuf *xbuf= in[2]->data; - CompBuf *ybuf= in[3]->data; - CompBuf *stackbuf; - - cbuf= typecheck_compbuf(cbuf, CB_RGBA); - vecbuf= typecheck_compbuf(vecbuf, CB_VEC3); - xbuf= typecheck_compbuf(xbuf, CB_VAL); - ybuf= typecheck_compbuf(ybuf, CB_VAL); - - stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - do_displace(node, stackbuf, cbuf, vecbuf, in[1]->vec, xbuf, ybuf, in[2]->vec, in[3]->vec); - - out[0]->data= stackbuf; - - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - if(vecbuf!=in[1]->data) - free_compbuf(vecbuf); - } -} - -void register_node_type_cmp_displace(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DISPLACE, "Displace", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_displace_in, cmp_node_displace_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_displace); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c deleted file mode 100644 index 5f7613464c1..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* ******************* channel Distance Matte ********************************* */ -static bNodeSocketType cmp_node_distance_matte_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA,1,"Key Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_distance_matte_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -/* note, keyvals is passed on from caller as stack array */ -/* might have been nicer as temp struct though... */ -static void do_distance_matte(bNode *node, float *out, float *in) -{ - NodeChroma *c= (NodeChroma *)node->storage; - float tolerence=c->t1; - float falloff=c->t2; - float distance; - float alpha; - - distance=sqrt((c->key[0]-in[0])*(c->key[0]-in[0]) + - (c->key[1]-in[1])*(c->key[1]-in[1]) + - (c->key[2]-in[2])*(c->key[2]-in[2])); - - VECCOPY(out, in); - - /*make 100% transparent */ - if(distance < tolerence) { - out[3]=0.0; - } - /*in the falloff region, make partially transparent */ - else if(distance < falloff+tolerence){ - distance=distance-tolerence; - alpha=distance/falloff; - /*only change if more transparent than before */ - if(alpha < in[3]) { - out[3]=alpha; - } - else { /* leave as before */ - out[3]=in[3]; - } - } - else { - out[3]=in[3]; - } -} - -static void node_composit_exec_distance_matte(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* - Loosely based on the Sequencer chroma key plug-in, but enhanced to work in other color spaces and - uses a different difference function (suggested in forums of vfxtalk.com). - */ - CompBuf *workbuf; - CompBuf *inbuf; - NodeChroma *c; - - /*is anything connected?*/ - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - /*must have an image imput*/ - if(in[0]->data==NULL) return; - - inbuf=typecheck_compbuf(in[0]->data, CB_RGBA); - - c=node->storage; - workbuf=dupalloc_compbuf(inbuf); - - /*use the input color*/ - c->key[0]= in[1]->vec[0]; - c->key[1]= in[1]->vec[1]; - c->key[2]= in[1]->vec[2]; - - /* note, processor gets a keyvals array passed on as buffer constant */ - composit1_pixel_processor(node, workbuf, workbuf, in[0]->vec, do_distance_matte, CB_RGBA); - - - out[0]->data=workbuf; - if(out[1]->hasoutput) - out[1]->data=valbuf_from_rgbabuf(workbuf, CHAN_A); - generate_preview(data, node, workbuf); - - if(inbuf!=in[0]->data) - free_compbuf(inbuf); -} - -static void node_composit_init_distance_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); - node->storage= c; - c->t1= 0.1f; - c->t2= 0.1f; -} - -void register_node_type_cmp_distance_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_DIST_MATTE, "Distance Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_distance_matte_in, cmp_node_distance_matte_out); - node_type_size(&ntype, 200, 80, 250); - node_type_init(&ntype, node_composit_init_distance_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_distance_matte); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c b/source/blender/nodes/intern/CMP_nodes/CMP_filter.c deleted file mode 100644 index 915cb01d2d4..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_filter.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** FILTER ******************** */ -static bNodeSocketType cmp_node_filter_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_filter_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac) -{ - float *row1, *row2, *row3; - float *fp, f1, f2, mfac= 1.0f-fac; - int rowlen, x, y, c, pix= in->type; - - rowlen= in->x; - - for(y=0; yy; y++) { - /* setup rows */ - if(y==0) row1= in->rect; - else row1= in->rect + pix*(y-1)*rowlen; - - row2= in->rect + y*pix*rowlen; - - if(y==in->y-1) row3= row2; - else row3= row2 + pix*rowlen; - - fp= out->rect + pix*y*rowlen; - - if(pix==CB_RGBA) { - QUATCOPY(fp, row2); - fp+= pix; - - for(x=2; xtype; - - rowlen= in->x; - - for(y=0; yy; y++) { - /* setup rows */ - if(y==0) row1= in->rect; - else row1= in->rect + pixlen*(y-1)*rowlen; - - row2= in->rect + y*pixlen*rowlen; - - if(y==in->y-1) row3= row2; - else row3= row2 + pixlen*rowlen; - - fp= out->rect + pixlen*(y)*rowlen; - - if(pixlen==1) { - fp[0]= row2[0]; - fp+= 1; - - for(x=2; xhasoutput==0) return; - - /* stack order in: Image */ - /* stack order out: Image */ - - if(in[1]->data) { - /* make output size of first available input image */ - CompBuf *cbuf= in[1]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); /* allocs */ - - /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ - stackbuf->xof= cbuf->xof; - stackbuf->yof= cbuf->yof; - - switch(node->custom1) { - case CMP_FILT_SOFT: - do_filter3(stackbuf, cbuf, soft, in[0]->vec[0]); - break; - case CMP_FILT_SHARP: - do_filter3(stackbuf, cbuf, sharp, in[0]->vec[0]); - break; - case CMP_FILT_LAPLACE: - do_filter3(stackbuf, cbuf, laplace, in[0]->vec[0]); - break; - case CMP_FILT_SOBEL: - do_filter_edge(stackbuf, cbuf, sobel, in[0]->vec[0]); - break; - case CMP_FILT_PREWITT: - do_filter_edge(stackbuf, cbuf, prewitt, in[0]->vec[0]); - break; - case CMP_FILT_KIRSCH: - do_filter_edge(stackbuf, cbuf, kirsch, in[0]->vec[0]); - break; - case CMP_FILT_SHADOW: - do_filter3(stackbuf, cbuf, shadow, in[0]->vec[0]); - break; - } - - out[0]->data= stackbuf; - - generate_preview(data, node, out[0]->data); - } -} - - -void register_node_type_cmp_filter(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_FILTER, "Filter", NODE_CLASS_OP_FILTER, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_filter_in, cmp_node_filter_out); - node_type_size(&ntype, 80, 40, 120); - node_type_label(&ntype, node_filter_label); - node_type_exec(&ntype, node_composit_exec_filter); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c b/source/blender/nodes/intern/CMP_nodes/CMP_flip.c deleted file mode 100644 index b5fd7b46e03..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_flip.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Flip ******************** */ -static bNodeSocketType cmp_node_flip_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_flip_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_flip(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(in[0]->data) { - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); /* note, this returns zero'd image */ - int i, src_pix, src_width, src_height, srcydelt, outydelt, x, y; - float *srcfp, *outfp; - - src_pix= cbuf->type; - src_width= cbuf->x; - src_height= cbuf->y; - srcfp= cbuf->rect; - outfp= stackbuf->rect; - srcydelt= src_width*src_pix; - outydelt= srcydelt; - - if(node->custom1) { /*set up output pointer for y flip*/ - outfp+= (src_height-1)*outydelt; - outydelt= -outydelt; - } - - for(y=0; ycustom1 == 1) { /* no x flip so just copy line*/ - memcpy(outfp, srcfp, sizeof(float) * src_pix * src_width); - srcfp+=srcydelt; - } - else { - outfp += (src_width-1)*src_pix; - for(x=0; xdata= stackbuf; - - } -} - -void register_node_type_cmp_flip(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_FLIP, "Flip", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_flip_in, cmp_node_flip_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_flip); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c b/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c deleted file mode 100644 index 261257d3b5f..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c +++ /dev/null @@ -1,90 +0,0 @@ -/* -* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -* -* The Original Code is Copyright (C) 2006 Blender Foundation. -* All rights reserved. -* -* The Original Code is: all of this file. -* -* Contributor(s): none yet. -* -* ***** END GPL LICENSE BLOCK ***** - -*/ - -/** \file blender/nodes/intern/CMP_nodes/CMP_gamma.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Gamma Tools ******************** */ - -static bNodeSocketType cmp_node_gamma_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Gamma", 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_gamma_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_gamma(bNode *UNUSED(node), float *out, float *in, float *fac) -{ - int i=0; - for(i=0; i<3; i++) { - /* check for negative to avoid nan's */ - out[i] = (in[i] > 0.0f)? pow(in[i],fac[0]): in[i]; - } - out[3] = in[3]; -} -static void node_composit_exec_gamma(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: Fac, Image */ - /* stack order out: Image */ - if(out[0]->hasoutput==0) return; - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - do_gamma(node, out[0]->vec, in[0]->vec, in[1]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); // allocs - - composit2_pixel_processor(node, stackbuf, cbuf, in[0]->vec, in[1]->data, in[1]->vec, do_gamma, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_gamma(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_gamma_in, cmp_node_gamma_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_gamma); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c b/source/blender/nodes/intern/CMP_nodes/CMP_glare.c deleted file mode 100644 index 2e0822a4511..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c +++ /dev/null @@ -1,506 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Alfredo de Greef (eeshlo) - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_glare.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -static bNodeSocketType cmp_node_glare_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_glare_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -// mix two images, src buffer does not have to be same size, -static void mixImages(CompBuf *dst, CompBuf *src, float mix) -{ - int x, y; - fRGB c1, c2, *dcolp, *scolp; - const float mf = 2.f - 2.f*fabsf(mix - 0.5f); - if ((dst->x == src->x) && (dst->y == src->y)) { - for (y=0; yy; y++) { - dcolp = (fRGB*)&dst->rect[y*dst->x*dst->type]; - scolp = (fRGB*)&src->rect[y*dst->x*dst->type]; - for (x=0; xx; x++) { - fRGB_copy(c1, dcolp[x]); - fRGB_copy(c2, scolp[x]); - c1[0] += mix*(c2[0] - c1[0]); - c1[1] += mix*(c2[1] - c1[1]); - c1[2] += mix*(c2[2] - c1[2]); - if (c1[0] < 0.f) c1[0] = 0.f; - if (c1[1] < 0.f) c1[1] = 0.f; - if (c1[2] < 0.f) c1[2] = 0.f; - fRGB_mult(c1, mf); - fRGB_copy(dcolp[x], c1); - } - } - } - else { - float xr = src->x / (float)dst->x; - float yr = src->y / (float)dst->y; - for (y=0; yy; y++) { - dcolp = (fRGB*)&dst->rect[y*dst->x*dst->type]; - for (x=0; xx; x++) { - fRGB_copy(c1, dcolp[x]); - qd_getPixelLerp(src, (x + 0.5f)*xr - 0.5f, (y + 0.5f)*yr - 0.5f, c2); - c1[0] += mix*(c2[0] - c1[0]); - c1[1] += mix*(c2[1] - c1[1]); - c1[2] += mix*(c2[2] - c1[2]); - if (c1[0] < 0.f) c1[0] = 0.f; - if (c1[1] < 0.f) c1[1] = 0.f; - if (c1[2] < 0.f) c1[2] = 0.f; - fRGB_mult(c1, mf); - fRGB_copy(dcolp[x], c1); - } - } - } -} - - -// adds src to dst image, must be of same size -static void addImage(CompBuf* dst, CompBuf* src, float scale) -{ - if ((dst->x == src->x) && (dst->y == src->y)) { - int p = dst->x*dst->y*dst->type; - float *dcol = dst->rect, *scol = src->rect; - while (p--) *dcol++ += *scol++ * scale; - } -} - - -// returns possibly downscaled copy of all pixels above threshold -static CompBuf* BTP(CompBuf* src, float threshold, int scaledown) -{ - int x, y; - CompBuf* bsrc = qd_downScaledCopy(src, scaledown); - float* cr = bsrc->rect; - for (y=0; yy; ++y) - for (x=0; xx; ++x, cr+=4) { - if ((0.212671f*cr[0] + 0.71516f*cr[1] + 0.072169f*cr[2]) >= threshold) { - cr[0] -= threshold, cr[1] -= threshold, cr[2] -= threshold; - cr[0] = MAX2(cr[0], 0.f); - cr[1] = MAX2(cr[1], 0.f); - cr[2] = MAX2(cr[2], 0.f); - } - else cr[0] = cr[1] = cr[2] = 0.f; - } - return bsrc; -} - -//-------------------------------------------------------------------------------------------- -// simple 4-point star filter - -static void star4(NodeGlare* ndg, CompBuf* dst, CompBuf* src) -{ - int x, y, i, xm, xp, ym, yp; - float c[4] = {0,0,0,0}, tc[4] = {0,0,0,0}; - CompBuf *tbuf1, *tbuf2, *tsrc; - const float f1 = 1.f - ndg->fade, f2 = (1.f - f1)*0.5f; - //const float t3 = ndg->threshold*3.f; - const float sc = (float)(1 << ndg->quality); - const float isc = 1.f/sc; - - tsrc = BTP(src, ndg->threshold, (int)sc); - - tbuf1 = dupalloc_compbuf(tsrc); - tbuf2 = dupalloc_compbuf(tsrc); - - for (i=0; iiter; i++) { - // (x || x-1, y-1) to (x || x+1, y+1) - // F - for (y=0; yy; y++) { - ym = y - i; - yp = y + i; - for (x=0; xx; x++) { - xm = x - i; - xp = x + i; - qd_getPixel(tbuf1, x, y, c); - fRGB_mult(c, f1); - qd_getPixel(tbuf1, (ndg->angle ? xm : x), ym, tc); - fRGB_madd(c, tc, f2); - qd_getPixel(tbuf1, (ndg->angle ? xp : x), yp, tc); - fRGB_madd(c, tc, f2); - qd_setPixel(tbuf1, x, y, c); - } - } - // B - for (y=tbuf1->y-1; y>=0; y--) { - ym = y - i; - yp = y + i; - for (x=tbuf1->x-1; x>=0; x--) { - xm = x - i; - xp = x + i; - qd_getPixel(tbuf1, x, y, c); - fRGB_mult(c, f1); - qd_getPixel(tbuf1, (ndg->angle ? xm : x), ym, tc); - fRGB_madd(c, tc, f2); - qd_getPixel(tbuf1, (ndg->angle ? xp : x), yp, tc); - fRGB_madd(c, tc, f2); - qd_setPixel(tbuf1, x, y, c); - } - } - // (x-1, y || y+1) to (x+1, y || y-1) - // F - for (y=0; yy; y++) { - ym = y - i; - yp = y + i; - for (x=0; xx; x++) { - xm = x - i; - xp = x + i; - qd_getPixel(tbuf2, x, y, c); - fRGB_mult(c, f1); - qd_getPixel(tbuf2, xm, (ndg->angle ? yp : y), tc); - fRGB_madd(c, tc, f2); - qd_getPixel(tbuf2, xp, (ndg->angle ? ym : y), tc); - fRGB_madd(c, tc, f2); - qd_setPixel(tbuf2, x, y, c); - } - } - // B - for (y=tbuf2->y-1; y>=0; y--) { - ym = y - i; - yp = y + i; - for (x=tbuf2->x-1; x>=0; x--) { - xm = x - i; - xp = x + i; - qd_getPixel(tbuf2, x, y, c); - fRGB_mult(c, f1); - qd_getPixel(tbuf2, xm, (ndg->angle ? yp : y), tc); - fRGB_madd(c, tc, f2); - qd_getPixel(tbuf2, xp, (ndg->angle ? ym : y), tc); - fRGB_madd(c, tc, f2); - qd_setPixel(tbuf2, x, y, c); - } - } - } - - for (y=0; yy; ++y) - for (x=0; xx; ++x) { - unsigned int p = (x + y*tbuf1->x)*tbuf1->type; - tbuf1->rect[p] += tbuf2->rect[p]; - tbuf1->rect[p+1] += tbuf2->rect[p+1]; - tbuf1->rect[p+2] += tbuf2->rect[p+2]; - } - - for (y=0; yy; ++y) { - const float m = 0.5f + 0.5f*ndg->mix; - for (x=0; xx; ++x) { - unsigned int p = (x + y*dst->x)*dst->type; - qd_getPixelLerp(tbuf1, x*isc, y*isc, tc); - dst->rect[p] = src->rect[p] + m*(tc[0] - src->rect[p]); - dst->rect[p+1] = src->rect[p+1] + m*(tc[1] - src->rect[p+1]); - dst->rect[p+2] = src->rect[p+2] + m*(tc[2] - src->rect[p+2]); - } - } - - free_compbuf(tbuf1); - free_compbuf(tbuf2); - free_compbuf(tsrc); -} - -//-------------------------------------------------------------------------------------------- -// streak filter - -static void streaks(NodeGlare* ndg, CompBuf* dst, CompBuf* src) -{ - CompBuf *bsrc, *tsrc, *tdst, *sbuf; - int x, y, n; - unsigned int nump=0; - fRGB c1, c2, c3, c4; - float a, ang = 360.f/(float)ndg->angle; - - bsrc = BTP(src, ndg->threshold, 1 << ndg->quality); - tsrc = dupalloc_compbuf(bsrc); // sample from buffer - tdst = alloc_compbuf(tsrc->x, tsrc->y, tsrc->type, 1); // sample to buffer - sbuf = alloc_compbuf(tsrc->x, tsrc->y, tsrc->type, 1); // streak sum buffer - - - for (a=0.f; a<360.f; a+=ang) { - const float an = (a + (float)ndg->angle_ofs)*(float)M_PI/180.f; - const float vx = cos((double)an), vy = sin((double)an); - for (n=0; niter; ++n) { - const float p4 = pow(4.0, (double)n); - const float vxp = vx*p4, vyp = vy*p4; - const float wt = pow((double)ndg->fade, (double)p4); - const float cmo = 1.f - pow((double)ndg->colmod, (double)n+1); // colormodulation amount relative to current pass - float* tdstcol = tdst->rect; - for (y=0; yy; ++y) { - for (x=0; xx; ++x, tdstcol+=4) { - // first pass no offset, always same for every pass, exact copy, - // otherwise results in uneven brightness, only need once - if (n==0) qd_getPixel(tsrc, x, y, c1); else c1[0]=c1[1]=c1[2]=0; - qd_getPixelLerp(tsrc, x + vxp, y + vyp, c2); - qd_getPixelLerp(tsrc, x + vxp*2.f, y + vyp*2.f, c3); - qd_getPixelLerp(tsrc, x + vxp*3.f, y + vyp*3.f, c4); - // modulate color to look vaguely similar to a color spectrum - fRGB_rgbmult(c2, 1.f, cmo, cmo); - fRGB_rgbmult(c3, cmo, cmo, 1.f); - fRGB_rgbmult(c4, cmo, 1.f, cmo); - tdstcol[0] = 0.5f*(tdstcol[0] + c1[0] + wt*(c2[0] + wt*(c3[0] + wt*c4[0]))); - tdstcol[1] = 0.5f*(tdstcol[1] + c1[1] + wt*(c2[1] + wt*(c3[1] + wt*c4[1]))); - tdstcol[2] = 0.5f*(tdstcol[2] + c1[2] + wt*(c2[2] + wt*(c3[2] + wt*c4[2]))); - } - } - memcpy(tsrc->rect, tdst->rect, sizeof(float)*tdst->x*tdst->y*tdst->type); - } - - addImage(sbuf, tsrc, 1.f/(float)(6 - ndg->iter)); - memset(tdst->rect, 0, tdst->x*tdst->y*tdst->type*sizeof(float)); - memcpy(tsrc->rect, bsrc->rect, bsrc->x*bsrc->y*bsrc->type*sizeof(float)); - nump++; - } - - mixImages(dst, sbuf, 0.5f + 0.5f*ndg->mix); - - free_compbuf(tsrc); - free_compbuf(tdst); - free_compbuf(sbuf); - free_compbuf(bsrc); -} - - -//-------------------------------------------------------------------------------------------- -// Ghosts (lensflare) - -static float smoothMask(float x, float y) -{ - float t; - x = 2.f*x - 1.f, y = 2.f*y - 1.f; - if ((t = 1.f - sqrtf(x*x + y*y)) <= 0.f) return 0.f; - return t; -} - -static void ghosts(NodeGlare* ndg, CompBuf* dst, CompBuf* src) -{ - // colormodulation and scale factors (cm & scalef) for 16 passes max: 64 - int x, y, n, p, np; - fRGB c, tc, cm[64]; - float sc, isc, u, v, sm, s, t, ofs, scalef[64]; - CompBuf *tbuf1, *tbuf2, *gbuf; - const float cmo = 1.f - ndg->colmod; - const int qt = 1 << ndg->quality; - const float s1 = 4.f/(float)qt, s2 = 2.f*s1; - - gbuf = BTP(src, ndg->threshold, qt); - tbuf1 = dupalloc_compbuf(gbuf); - IIR_gauss(tbuf1, s1, 0, 3); - IIR_gauss(tbuf1, s1, 1, 3); - IIR_gauss(tbuf1, s1, 2, 3); - tbuf2 = dupalloc_compbuf(tbuf1); - IIR_gauss(tbuf2, s2, 0, 3); - IIR_gauss(tbuf2, s2, 1, 3); - IIR_gauss(tbuf2, s2, 2, 3); - - if (ndg->iter & 1) ofs = 0.5f; else ofs = 0.f; - for (x=0; x<(ndg->iter*4); x++) { - y = x & 3; - cm[x][0] = cm[x][1] = cm[x][2] = 1; - if (y==1) fRGB_rgbmult(cm[x], 1.f, cmo, cmo); - if (y==2) fRGB_rgbmult(cm[x], cmo, cmo, 1.f); - if (y==3) fRGB_rgbmult(cm[x], cmo, 1.f, cmo); - scalef[x] = 2.1f*(1.f-(x+ofs)/(float)(ndg->iter*4)); - if (x & 1) scalef[x] = -0.99f/scalef[x]; - } - - sc = 2.13; - isc = -0.97; - for (y=0; yy; y++) { - v = (float)(y+0.5f) / (float)gbuf->y; - for (x=0; xx; x++) { - u = (float)(x+0.5f) / (float)gbuf->x; - s = (u-0.5f)*sc + 0.5f, t = (v-0.5f)*sc + 0.5f; - qd_getPixelLerp(tbuf1, s*gbuf->x, t*gbuf->y, c); - sm = smoothMask(s, t); - fRGB_mult(c, sm); - s = (u-0.5f)*isc + 0.5f, t = (v-0.5f)*isc + 0.5f; - qd_getPixelLerp(tbuf2, s*gbuf->x - 0.5f, t*gbuf->y - 0.5f, tc); - sm = smoothMask(s, t); - fRGB_madd(c, tc, sm); - qd_setPixel(gbuf, x, y, c); - } - } - - memset(tbuf1->rect, 0, tbuf1->x*tbuf1->y*tbuf1->type*sizeof(float)); - for (n=1; niter; n++) { - for (y=0; yy; y++) { - v = (float)(y+0.5f) / (float)gbuf->y; - for (x=0; xx; x++) { - u = (float)(x+0.5f) / (float)gbuf->x; - tc[0] = tc[1] = tc[2] = 0.f; - for (p=0;p<4;p++) { - np = (n<<2) + p; - s = (u-0.5f)*scalef[np] + 0.5f; - t = (v-0.5f)*scalef[np] + 0.5f; - qd_getPixelLerp(gbuf, s*gbuf->x - 0.5f, t*gbuf->y - 0.5f, c); - fRGB_colormult(c, cm[np]); - sm = smoothMask(s, t)*0.25f; - fRGB_madd(tc, c, sm); - } - p = (x + y*tbuf1->x)*tbuf1->type; - tbuf1->rect[p] += tc[0]; - tbuf1->rect[p+1] += tc[1]; - tbuf1->rect[p+2] += tc[2]; - } - } - memcpy(gbuf->rect, tbuf1->rect, tbuf1->x*tbuf1->y*tbuf1->type*sizeof(float)); - } - - free_compbuf(tbuf1); - free_compbuf(tbuf2); - - mixImages(dst, gbuf, 0.5f + 0.5f*ndg->mix); - free_compbuf(gbuf); -} - -//-------------------------------------------------------------------------------------------- -// Fog glow (convolution with kernel of exponential falloff) - -static void fglow(NodeGlare* ndg, CompBuf* dst, CompBuf* src) -{ - int x, y; - float scale, u, v, r, w, d; - fRGB fcol; - CompBuf *tsrc, *ckrn; - unsigned int sz = 1 << ndg->size; - const float cs_r = 1.f, cs_g = 1.f, cs_b = 1.f; - - // temp. src image - tsrc = BTP(src, ndg->threshold, 1 << ndg->quality); - // make the convolution kernel - ckrn = alloc_compbuf(sz, sz, CB_RGBA, 1); - - scale = 0.25f*sqrtf(sz*sz); - - for (y=0; ymix); - free_compbuf(tsrc); -} - -//-------------------------------------------------------------------------------------------- - -static void node_composit_exec_glare(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *new, *src, *img = in[0]->data; - NodeGlare* ndg = node->storage; - - if ((img == NULL) || (out[0]->hasoutput == 0)) return; - - if (img->type != CB_RGBA) { - new = typecheck_compbuf(img, CB_RGBA); - src = typecheck_compbuf(img, CB_RGBA); - } else { - new = dupalloc_compbuf(img); - src = dupalloc_compbuf(img); - } - - { - int x, y; - for (y=0; yy; ++y) { - fRGB* col = (fRGB*)&new->rect[y*new->x*new->type]; - for (x=0; xx; ++x) { - col[x][0] = MAX2(col[x][0], 0.f); - col[x][1] = MAX2(col[x][1], 0.f); - col[x][2] = MAX2(col[x][2], 0.f); - } - } - } - - switch (ndg->type) { - case 0: - star4(ndg, new, src); - break; - case 1: - fglow(ndg, new, src); - break; - case 3: - ghosts(ndg, new, src); - break; - case 2: - default: - streaks(ndg, new, src); - break; - } - - free_compbuf(src); - out[0]->data = new; -} - -static void node_composit_init_glare(bNode* node) -{ - NodeGlare *ndg = MEM_callocN(sizeof(NodeGlare), "node glare data"); - ndg->quality = 1; - ndg->type = 2; - ndg->iter = 3; - ndg->colmod = 0.25; - ndg->mix = 0; - ndg->threshold = 1; - ndg->angle = 4; - ndg->angle_ofs = 0; - ndg->fade = 0.9; - ndg->size = 8; - node->storage = ndg; -} - -void register_node_type_cmp_glare(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_GLARE, "Glare", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_glare_in, cmp_node_glare_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_glare); - node_type_storage(&ntype, "NodeGlare", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_glare); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c b/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c deleted file mode 100644 index 7b5511c699c..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Hue Saturation ******************** */ -static bNodeSocketType cmp_node_hue_sat_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_hue_sat_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_hue_sat_fac(bNode *node, float *out, float *in, float *fac) -{ - NodeHueSat *nhs= node->storage; - - if(*fac!=0.0f && (nhs->hue!=0.5f || nhs->sat!=1.0 || nhs->val!=1.0)) { - float col[3], hsv[3], mfac= 1.0f - *fac; - - rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); - hsv[0]+= (nhs->hue - 0.5f); - if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; - hsv[1]*= nhs->sat; - hsv[2]*= nhs->val; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); - - out[0]= mfac*in[0] + *fac*col[0]; - out[1]= mfac*in[1] + *fac*col[1]; - out[2]= mfac*in[2] + *fac*col[2]; - out[3]= in[3]; - } - else { - QUATCOPY(out, in); - } -} - -static void node_composit_exec_hue_sat(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: Fac, Image */ - /* stack order out: Image */ - if(out[0]->hasoutput==0) return; - - /* input no image? then only color operation */ - if(in[1]->data==NULL) { - do_hue_sat_fac(node, out[0]->vec, in[1]->vec, in[0]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= dupalloc_compbuf(in[1]->data); - CompBuf *stackbuf=typecheck_compbuf(cbuf,CB_RGBA); - - composit2_pixel_processor(node, stackbuf, stackbuf, in[1]->vec, in[0]->data, in[0]->vec, do_hue_sat_fac, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - - /* get rid of intermediary cbuf if it's extra */ - if(stackbuf!=cbuf) - free_compbuf(cbuf); - } -} - -static void node_composit_init_hue_sat(bNode* node) -{ - NodeHueSat *nhs= MEM_callocN(sizeof(NodeHueSat), "node hue sat"); - node->storage= nhs; - nhs->hue= 0.5f; - nhs->sat= 1.0f; - nhs->val= 1.0f; -} - -void register_node_type_cmp_hue_sat(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_hue_sat_in, cmp_node_hue_sat_out); - node_type_size(&ntype, 150, 80, 250); - node_type_init(&ntype, node_composit_init_hue_sat); - node_type_storage(&ntype, "NodeHueSat", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_hue_sat); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c b/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c deleted file mode 100644 index edf6c454285..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Matt Ebb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_huecorrect.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -static bNodeSocketType cmp_node_huecorrect_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_huecorrect_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_huecorrect(bNode *node, float *out, float *in) -{ - float hsv[3], f; - - rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); - - /* adjust hue, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 0, hsv[0]); - hsv[0] += f-0.5f; - - /* adjust saturation, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 1, hsv[0]); - hsv[1] *= (f * 2.f); - - /* adjust value, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 2, hsv[0]); - hsv[2] *= (f * 2.f); - - hsv[0] = hsv[0] - floor(hsv[0]); /* mod 1.0 */ - CLAMP(hsv[1], 0.f, 1.f); - - /* convert back to rgb */ - hsv_to_rgb(hsv[0], hsv[1], hsv[2], out, out+1, out+2); - - out[3]= in[3]; -} - -static void do_huecorrect_fac(bNode *node, float *out, float *in, float *fac) -{ - float hsv[3], rgb[3], f; - const float mfac = 1.f-*fac; - - rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); - - /* adjust hue, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 0, hsv[0]); - hsv[0] += f-0.5f; - - /* adjust saturation, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 1, hsv[0]); - hsv[1] *= (f * 2.f); - - /* adjust value, scaling returned default 0.5 up to 1 */ - f = curvemapping_evaluateF(node->storage, 2, hsv[0]); - hsv[2] *= (f * 2.f); - - hsv[0] = hsv[0] - floor(hsv[0]); /* mod 1.0 */ - CLAMP(hsv[1], 0.f, 1.f); - - /* convert back to rgb */ - hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); - - out[0]= mfac*in[0] + *fac*rgb[0]; - out[1]= mfac*in[1] + *fac*rgb[1]; - out[2]= mfac*in[2] + *fac*rgb[2]; - out[3]= in[3]; -} - -static void node_composit_exec_huecorrect(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *cbuf= in[1]->data; - CompBuf *stackbuf; - - /* stack order input: fac, image, black level, white level */ - /* stack order output: image */ - - if(out[0]->hasoutput==0) - return; - - if(in[0]->vec[0] == 0.f && in[0]->data == NULL) { - out[0]->data = pass_on_compbuf(cbuf); - return; - } - - /* input no image? then only color operation */ - if(in[1]->data==NULL) { - do_huecorrect_fac(node, out[0]->vec, in[1]->vec, in[0]->vec); - } - - if (cbuf) { - stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* make output size of input image */ - - if ((in[0]->data==NULL) && (in[0]->vec[0] >= 1.f)) - composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_huecorrect, CB_RGBA); - else - composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_huecorrect_fac, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - } - -} - -static void node_composit_init_huecorrect(bNode* node) -{ - CurveMapping *cumapping = node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); - int c; - - cumapping->preset = CURVE_PRESET_MID9; - - for (c=0; c<3; c++) { - CurveMap *cuma = &cumapping->cm[c]; - curvemap_reset(cuma, &cumapping->clipr, cumapping->preset, CURVEMAP_SLOPE_POSITIVE); - } - - /* default to showing Saturation */ - cumapping->cur = 1; -} - -void register_node_type_cmp_huecorrect(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_HUECORRECT, "Hue Correct", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_huecorrect_in, cmp_node_huecorrect_out); - node_type_size(&ntype, 320, 140, 400); - node_type_init(&ntype, node_composit_init_huecorrect); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_composit_exec_huecorrect); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c b/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c deleted file mode 100644 index 72d0de7d15e..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_idMask.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** ID Mask ******************** */ - -static bNodeSocketType cmp_node_idmask_in[]= { - { SOCK_VALUE, 1, "ID value", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_idmask_out[]= { - { SOCK_VALUE, 0, "Alpha", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* stackbuf should be zeroed */ -static void do_idmask(CompBuf *stackbuf, CompBuf *cbuf, float idnr) -{ - float *rect; - int x; - char *abuf= MEM_mapallocN(cbuf->x*cbuf->y, "anti ali buf"); - - rect= cbuf->rect; - for(x= cbuf->x*cbuf->y - 1; x>=0; x--) - if(rect[x]==idnr) - abuf[x]= 255; - - antialias_tagbuf(cbuf->x, cbuf->y, abuf); - - rect= stackbuf->rect; - for(x= cbuf->x*cbuf->y - 1; x>=0; x--) - if(abuf[x]>1) - rect[x]= (1.0f/255.0f)*(float)abuf[x]; - - MEM_freeN(abuf); -} - -/* full sample version */ -static void do_idmask_fsa(CompBuf *stackbuf, CompBuf *cbuf, float idnr) -{ - float *rect, *rs; - int x; - - rect= cbuf->rect; - rs= stackbuf->rect; - for(x= cbuf->x*cbuf->y - 1; x>=0; x--) - if(rect[x]==idnr) - rs[x]= 1.0f; - -} - - -static void node_composit_exec_idmask(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - RenderData *rd= data; - - if(out[0]->hasoutput==0) - return; - - if(in[0]->data) { - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf; - - if(cbuf->type!=CB_VAL) - return; - - stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */; - - if(rd->scemode & R_FULL_SAMPLE) - do_idmask_fsa(stackbuf, cbuf, (float)node->custom1); - else - do_idmask(stackbuf, cbuf, (float)node->custom1); - - out[0]->data= stackbuf; - } -} - - -void register_node_type_cmp_idmask(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_ID_MASK, "ID Mask", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_idmask_in, cmp_node_idmask_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_idmask); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c deleted file mode 100644 index a5f256054cd..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ /dev/null @@ -1,452 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_image.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** IMAGE (and RenderResult, multilayer image) ******************** */ - -static bNodeSocketType cmp_node_rlayers_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "UV", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "Speed", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Diffuse", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Specular", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Shadow", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "AO", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Reflect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Refract", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Indirect", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "IndexOB", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "IndexMA", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Mist", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Emit", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Environment",0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -/* note: this function is used for multilayer too, to ensure uniform - handling with BKE_image_get_ibuf() */ -static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *iuser) -{ - ImBuf *ibuf; - CompBuf *stackbuf; - int type; - - float *rect; - int alloc= FALSE; - - ibuf= BKE_image_get_ibuf(ima, iuser); - if(ibuf==NULL || (ibuf->rect==NULL && ibuf->rect_float==NULL)) { - return NULL; - } - - if (ibuf->rect_float == NULL) { - IMB_float_from_rect(ibuf); - } - - /* now we need a float buffer from the image with matching color management */ - /* XXX weak code, multilayer is excluded from this */ - if(ibuf->channels == 4 && ima->rr==NULL) { - if(rd->color_mgt_flag & R_COLOR_MANAGEMENT) { - if(ibuf->profile != IB_PROFILE_NONE) { - rect= ibuf->rect_float; - } - else { - rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image"); - srgb_to_linearrgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y); - alloc= TRUE; - } - } - else { - if(ibuf->profile == IB_PROFILE_NONE) { - rect= ibuf->rect_float; - } - else { - rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image"); - linearrgb_to_srgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y); - alloc= TRUE; - } - } - } - else { - /* non-rgba passes can't use color profiles */ - rect= ibuf->rect_float; - } - /* done coercing into the correct color management */ - - - type= ibuf->channels; - - if(rd->scemode & R_COMP_CROP) { - stackbuf= get_cropped_compbuf(&rd->disprect, rect, ibuf->x, ibuf->y, type); - if(alloc) - MEM_freeN(rect); - } - else { - /* we put imbuf copy on stack, cbuf knows rect is from other ibuf when freed! */ - stackbuf= alloc_compbuf(ibuf->x, ibuf->y, type, FALSE); - stackbuf->rect= rect; - stackbuf->malloc= alloc; - } - - /*code to respect the premul flag of images; I'm - not sure if this is a good idea for multilayer images, - since it never worked before for them. - if (type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { - //premul the image - int i; - float *pixel = stackbuf->rect; - - for (i=0; ix*stackbuf->y; i++, pixel += 4) { - pixel[0] *= pixel[3]; - pixel[1] *= pixel[3]; - pixel[2] *= pixel[3]; - } - } - */ - return stackbuf; -} - -static CompBuf *node_composit_get_zimage(bNode *node, RenderData *rd) -{ - ImBuf *ibuf= BKE_image_get_ibuf((Image *)node->id, node->storage); - CompBuf *zbuf= NULL; - - if(ibuf && ibuf->zbuf_float) { - if(rd->scemode & R_COMP_CROP) { - zbuf= get_cropped_compbuf(&rd->disprect, ibuf->zbuf_float, ibuf->x, ibuf->y, CB_VAL); - } - else { - zbuf= alloc_compbuf(ibuf->x, ibuf->y, CB_VAL, 0); - zbuf->rect= ibuf->zbuf_float; - } - } - return zbuf; -} - -/* check if layer is available, returns pass buffer */ -static CompBuf *compbuf_multilayer_get(RenderData *rd, RenderLayer *rl, Image *ima, ImageUser *iuser, int passtype) -{ - RenderPass *rpass; - short index; - - for(index=0, rpass= rl->passes.first; rpass; rpass= rpass->next, index++) - if(rpass->passtype==passtype) - break; - - if(rpass) { - CompBuf *cbuf; - - iuser->pass= index; - BKE_image_multilayer_index(ima->rr, iuser); - cbuf= node_composit_get_image(rd, ima, iuser); - - return cbuf; - } - return NULL; -} - -static void outputs_multilayer_get(RenderData *rd, RenderLayer *rl, bNodeStack **out, Image *ima, ImageUser *iuser) -{ - if(out[RRES_OUT_Z]->hasoutput) - out[RRES_OUT_Z]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_Z); - if(out[RRES_OUT_VEC]->hasoutput) - out[RRES_OUT_VEC]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_VECTOR); - if(out[RRES_OUT_NORMAL]->hasoutput) - out[RRES_OUT_NORMAL]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_NORMAL); - if(out[RRES_OUT_UV]->hasoutput) - out[RRES_OUT_UV]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_UV); - - if(out[RRES_OUT_RGBA]->hasoutput) - out[RRES_OUT_RGBA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_RGBA); - if(out[RRES_OUT_DIFF]->hasoutput) - out[RRES_OUT_DIFF]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_DIFFUSE); - if(out[RRES_OUT_SPEC]->hasoutput) - out[RRES_OUT_SPEC]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_SPEC); - if(out[RRES_OUT_SHADOW]->hasoutput) - out[RRES_OUT_SHADOW]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_SHADOW); - if(out[RRES_OUT_AO]->hasoutput) - out[RRES_OUT_AO]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_AO); - if(out[RRES_OUT_REFLECT]->hasoutput) - out[RRES_OUT_REFLECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_REFLECT); - if(out[RRES_OUT_REFRACT]->hasoutput) - out[RRES_OUT_REFRACT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_REFRACT); - if(out[RRES_OUT_INDIRECT]->hasoutput) - out[RRES_OUT_INDIRECT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDIRECT); - if(out[RRES_OUT_INDEXOB]->hasoutput) - out[RRES_OUT_INDEXOB]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXOB); - if(out[RRES_OUT_INDEXMA]->hasoutput) - out[RRES_OUT_INDEXMA]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_INDEXMA); - if(out[RRES_OUT_MIST]->hasoutput) - out[RRES_OUT_MIST]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_MIST); - if(out[RRES_OUT_EMIT]->hasoutput) - out[RRES_OUT_EMIT]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_EMIT); - if(out[RRES_OUT_ENV]->hasoutput) - out[RRES_OUT_ENV]->data= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_ENVIRONMENT); -} - - -static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - - /* image assigned to output */ - /* stack order input sockets: col, alpha */ - if(node->id) { - RenderData *rd= data; - Image *ima= (Image *)node->id; - ImageUser *iuser= (ImageUser *)node->storage; - CompBuf *stackbuf= NULL; - - /* first set the right frame number in iuser */ - BKE_image_user_calc_frame(iuser, rd->cfra, 0); - - /* force a load, we assume iuser index will be set OK anyway */ - if(ima->type==IMA_TYPE_MULTILAYER) - BKE_image_get_ibuf(ima, iuser); - - if(ima->type==IMA_TYPE_MULTILAYER && ima->rr) { - RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer); - - if(rl) { - out[0]->data= stackbuf= compbuf_multilayer_get(rd, rl, ima, iuser, SCE_PASS_COMBINED); - - /* go over all layers */ - outputs_multilayer_get(rd, rl, out, ima, iuser); - } - } - else { - stackbuf= node_composit_get_image(rd, ima, iuser); - - if (stackbuf) { - /*respect image premul option*/ - if (stackbuf->type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { - int i; - float *pixel; - - /*first duplicate stackbuf->rect, since it's just a pointer - to the source imbuf, and we don't want to change that.*/ - stackbuf->rect = MEM_dupallocN(stackbuf->rect); - - /* since stackbuf now has allocated memory, rather than just a pointer, - * mark it as allocated so it can be freed properly */ - stackbuf->malloc=1; - - /*premul the image*/ - pixel = stackbuf->rect; - for (i=0; ix*stackbuf->y; i++, pixel += 4) { - pixel[0] *= pixel[3]; - pixel[1] *= pixel[3]; - pixel[2] *= pixel[3]; - } - } - - /* put image on stack */ - out[0]->data= stackbuf; - - if(out[2]->hasoutput) - out[2]->data= node_composit_get_zimage(node, rd); - } - } - - /* alpha and preview for both types */ - if(stackbuf) { - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); - - generate_preview(data, node, stackbuf); - } - } -} - -static void node_composit_init_image(bNode* node) -{ - ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); - node->storage= iuser; - iuser->frames= 1; - iuser->sfra= 1; - iuser->fie_ima= 2; - iuser->ok= 1; -} - -void register_node_type_cmp_image(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_IMAGE, "Image", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS, - NULL, cmp_node_rlayers_out); - node_type_size(&ntype, 120, 80, 300); - node_type_init(&ntype, node_composit_init_image); - node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_image); - - nodeRegisterType(lb, &ntype); -} - - -/* **************** RENDER RESULT ******************** */ - -static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, int recty, int passcode) -{ - float *fp= RE_RenderLayerGetPass(rl, passcode); - if(fp) { - CompBuf *buf; - int buftype= CB_VEC3; - - if(ELEM4(passcode, SCE_PASS_Z, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_INDEXMA)) - buftype= CB_VAL; - else if(passcode==SCE_PASS_VECTOR) - buftype= CB_VEC4; - else if(ELEM(passcode, SCE_PASS_COMBINED, SCE_PASS_RGBA)) - buftype= CB_RGBA; - - if(rd->scemode & R_COMP_CROP) - buf= get_cropped_compbuf(&rd->disprect, fp, rectx, recty, buftype); - else { - buf= alloc_compbuf(rectx, recty, buftype, 0); - buf->rect= fp; - } - return buf; - } - return NULL; -} - -static void node_composit_rlayers_out(RenderData *rd, RenderLayer *rl, bNodeStack **out, int rectx, int recty) -{ - if(out[RRES_OUT_Z]->hasoutput) - out[RRES_OUT_Z]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_Z); - if(out[RRES_OUT_VEC]->hasoutput) - out[RRES_OUT_VEC]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_VECTOR); - if(out[RRES_OUT_NORMAL]->hasoutput) - out[RRES_OUT_NORMAL]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_NORMAL); - if(out[RRES_OUT_UV]->hasoutput) - out[RRES_OUT_UV]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_UV); - - if(out[RRES_OUT_RGBA]->hasoutput) - out[RRES_OUT_RGBA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_RGBA); - if(out[RRES_OUT_DIFF]->hasoutput) - out[RRES_OUT_DIFF]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_DIFFUSE); - if(out[RRES_OUT_SPEC]->hasoutput) - out[RRES_OUT_SPEC]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_SPEC); - if(out[RRES_OUT_SHADOW]->hasoutput) - out[RRES_OUT_SHADOW]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_SHADOW); - if(out[RRES_OUT_AO]->hasoutput) - out[RRES_OUT_AO]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_AO); - if(out[RRES_OUT_REFLECT]->hasoutput) - out[RRES_OUT_REFLECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_REFLECT); - if(out[RRES_OUT_REFRACT]->hasoutput) - out[RRES_OUT_REFRACT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_REFRACT); - if(out[RRES_OUT_INDIRECT]->hasoutput) - out[RRES_OUT_INDIRECT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDIRECT); - if(out[RRES_OUT_INDEXOB]->hasoutput) - out[RRES_OUT_INDEXOB]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXOB); - if(out[RRES_OUT_INDEXMA]->hasoutput) - out[RRES_OUT_INDEXMA]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_INDEXMA); - if(out[RRES_OUT_MIST]->hasoutput) - out[RRES_OUT_MIST]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_MIST); - if(out[RRES_OUT_EMIT]->hasoutput) - out[RRES_OUT_EMIT]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_EMIT); - if(out[RRES_OUT_ENV]->hasoutput) - out[RRES_OUT_ENV]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_ENVIRONMENT); -} - -static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - Scene *sce= (Scene *)node->id; - Render *re= (sce)? RE_GetRender(sce->id.name): NULL; - RenderData *rd= data; - RenderResult *rr= NULL; - - if(re) - rr= RE_AcquireResultRead(re); - - if(rr) { - SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1); - if(srl) { - RenderLayer *rl= RE_GetRenderLayer(rr, srl->name); - if(rl && rl->rectf) { - CompBuf *stackbuf; - - /* we put render rect on stack, cbuf knows rect is from other ibuf when freed! */ - if(rd->scemode & R_COMP_CROP) - stackbuf= get_cropped_compbuf(&rd->disprect, rl->rectf, rr->rectx, rr->recty, CB_RGBA); - else { - stackbuf= alloc_compbuf(rr->rectx, rr->recty, CB_RGBA, 0); - stackbuf->rect= rl->rectf; - } - if(stackbuf==NULL) { - printf("Error; Preview Panel in UV Window returns zero sized image\n"); - } - else { - stackbuf->xof= rr->xof; - stackbuf->yof= rr->yof; - - /* put on stack */ - out[RRES_OUT_IMAGE]->data= stackbuf; - - if(out[RRES_OUT_ALPHA]->hasoutput) - out[RRES_OUT_ALPHA]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); - - node_composit_rlayers_out(rd, rl, out, rr->rectx, rr->recty); - - generate_preview(data, node, stackbuf); - } - } - } - } - - if(re) - RE_ReleaseResult(re); -} - - -void register_node_type_cmp_rlayers(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_R_LAYERS, "Render Layers", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS, - NULL, cmp_node_rlayers_out); - node_type_size(&ntype, 150, 100, 300); - node_type_exec(&ntype, node_composit_exec_rlayers); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_invert.c b/source/blender/nodes/intern/CMP_nodes/CMP_invert.c deleted file mode 100644 index 27b0324dfe0..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_invert.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_invert.c - * \ingroup cmpnodes - */ - -#include "../CMP_util.h" - -/* **************** INVERT ******************** */ -static bNodeSocketType cmp_node_invert_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_invert_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_invert(bNode *node, float *out, float *in) -{ - if(node->custom1 & CMP_CHAN_RGB) { - out[0] = 1.0f - in[0]; - out[1] = 1.0f - in[1]; - out[2] = 1.0f - in[2]; - } else - VECCOPY(out, in); - - if(node->custom1 & CMP_CHAN_A) - out[3] = 1.0f - in[3]; - else - out[3] = in[3]; -} - -static void do_invert_fac(bNode *node, float *out, float *in, float *fac) -{ - float col[4], facm; - - do_invert(node, col, in); - - /* blend inverted result against original input with fac */ - facm = 1.0 - fac[0]; - - if(node->custom1 & CMP_CHAN_RGB) { - col[0] = fac[0]*col[0] + (facm*in[0]); - col[1] = fac[0]*col[1] + (facm*in[1]); - col[2] = fac[0]*col[2] + (facm*in[2]); - } - if(node->custom1 & CMP_CHAN_A) - col[3] = fac[0]*col[3] + (facm*in[3]); - - QUATCOPY(out, col); -} - -static void node_composit_exec_invert(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: fac, Image, Image */ - /* stack order out: Image */ - float *fac= in[0]->vec; - - if(out[0]->hasoutput==0) return; - - /* input no image? then only color operation */ - if(in[1]->data==NULL && in[0]->data==NULL) { - do_invert_fac(node, out[0]->vec, in[1]->vec, fac); - } - else { - /* make output size of first available input image, or then size of fac */ - CompBuf *cbuf= in[1]->data?in[1]->data:in[0]->data; - - /* if neither RGB or A toggled on, pass through */ - if (node->custom1 != 0) { - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - if (fac[0] < 1.0f || in[0]->data!=NULL) - composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, fac, do_invert_fac, CB_RGBA, CB_VAL); - else - composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_invert, CB_RGBA); - out[0]->data= stackbuf; - return; - - } else { - out[0]->data = pass_on_compbuf(cbuf); - return; - } - } -} - -static void node_composit_init_invert(bNode *node) -{ - node->custom1 |= CMP_CHAN_RGB; -} - -/* custom1 = mix type */ -void register_node_type_cmp_invert(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_invert_in, cmp_node_invert_out); - node_type_size(&ntype, 120, 120, 140); - node_type_init(&ntype, node_composit_init_invert); - node_type_exec(&ntype, node_composit_exec_invert); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c b/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c deleted file mode 100644 index 3a005210c6a..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Alfredo de Greef (eeshlo) - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_lensdist.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -static bNodeSocketType cmp_node_lensdist_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Distort", 0.f, 0.f, 0.f, 0.f, -0.999f, 1.f}, - { SOCK_VALUE, 1, "Dispersion", 0.f, 0.f, 0.f, 0.f, 0.f, 1.f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_lensdist_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* assumes *dst is type RGBA */ -static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb, int jit, int proj, int fit) -{ - int x, y, z; - const float cx = 0.5f*(float)dst->x, cy = 0.5f*(float)dst->y; - - if (proj) { - // shift - CompBuf *tsrc = dupalloc_compbuf(src); - - for (z=0; ztype; ++z) - IIR_gauss(tsrc, (kr+0.5f)*(kr+0.5f), z, 1); - kr *= 20.f; - - for (y=0; yy; y++) { - fRGB *colp = (fRGB*)&dst->rect[y*dst->x*dst->type]; - const float v = (y + 0.5f)/(float)dst->y; - - for (x=0; xx; x++) { - const float u = (x + 0.5f)/(float)dst->x; - - qd_getPixelLerpChan(tsrc, (u*dst->x + kr) - 0.5f, v*dst->y - 0.5f, 0, colp[x]); - if (tsrc->type == CB_VAL) - colp[x][1] = tsrc->rect[x + y*tsrc->x]; - else - colp[x][1] = tsrc->rect[(x + y*tsrc->x)*tsrc->type + 1]; - qd_getPixelLerpChan(tsrc, (u*dst->x - kr) - 0.5f, v*dst->y - 0.5f, 2, colp[x]+2); - - /* set alpha */ - colp[x][3]= 1.0f; - } - } - free_compbuf(tsrc); - } - else { - // Spherical - // Scale factor to make bottom/top & right/left sides fit in window after deform - // so in the case of pincushion (kn < 0), corners will be outside window. - // Now also optionally scales image such that black areas are not visible when distort factor is positive - // (makes distorted corners match window corners, but really only valid if mk<=0.5) - const float mk = MAX3(kr, kg, kb); - const float sc = (fit && (mk > 0.f)) ? (1.f/(1.f + 2.f*mk)) : (1.f/(1.f + mk)); - const float drg = 4.f*(kg - kr), dgb = 4.f*(kb - kg); - - kr *= 4.f, kg *= 4.f, kb *= 4.f; - - for (y=0; yy; y++) { - fRGB *colp = (fRGB*)&dst->rect[y*dst->x*dst->type]; - const float v = sc*((y + 0.5f) - cy)/cy; - - for (x=0; xx; x++) { - int dr = 0, dg = 0, db = 0; - float d, t, ln[6] = {0, 0, 0, 0, 0, 0}; - fRGB c1, tc = {0, 0, 0, 0}; - const float u = sc*((x + 0.5f) - cx)/cx; - int sta = 0, mid = 0, end = 0; - - if ((t = 1.f - kr*(u*u + v*v)) >= 0.f) { - d = 1.f/(1.f + sqrtf(t)); - ln[0] = (u*d + 0.5f)*dst->x - 0.5f, ln[1] = (v*d + 0.5f)*dst->y - 0.5f; - sta = 1; - } - if ((t = 1.f - kg*(u*u + v*v)) >= 0.f) { - d = 1.f/(1.f + sqrtf(t)); - ln[2] = (u*d + 0.5f)*dst->x - 0.5f, ln[3] = (v*d + 0.5f)*dst->y - 0.5f; - mid = 1; - } - if ((t = 1.f - kb*(u*u + v*v)) >= 0.f) { - d = 1.f/(1.f + sqrtf(t)); - ln[4] = (u*d + 0.5f)*dst->x - 0.5f, ln[5] = (v*d + 0.5f)*dst->y - 0.5f; - end = 1; - } - - if (sta && mid && end) { - // RG - const int dx = ln[2] - ln[0], dy = ln[3] - ln[1]; - const float dsf = sqrtf(dx*dx + dy*dy) + 1.f; - const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf); - const float sd = 1.f/(float)ds; - - for (z=0; zx - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1); - if (src->type == CB_VAL) c1[1] = c1[2] = c1[0]; - tc[0] += (1.f-tz)*c1[0], tc[1] += tz*c1[1]; - dr++, dg++; - } - // GB - { - const int dx = ln[4] - ln[2], dy = ln[5] - ln[3]; - const float dsf = sqrtf(dx*dx + dy*dy) + 1.f; - const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf); - const float sd = 1.f/(float)ds; - - for (z=0; zx - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1); - if (src->type == CB_VAL) c1[1] = c1[2] = c1[0]; - tc[1] += (1.f-tz)*c1[1], tc[2] += tz*c1[2]; - dg++, db++; - } - } - } - - if (dr) colp[x][0] = 2.f*tc[0] / (float)dr; - if (dg) colp[x][1] = 2.f*tc[1] / (float)dg; - if (db) colp[x][2] = 2.f*tc[2] / (float)db; - - /* set alpha */ - colp[x][3]= 1.0f; - } - } - } -} - - -static void node_composit_exec_lensdist(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *new, *img = in[0]->data; - NodeLensDist *nld = node->storage; - const float k = MAX2(MIN2(in[1]->vec[0], 1.f), -0.999f); - // smaller dispersion range for somewhat more control - const float d = 0.25f*MAX2(MIN2(in[2]->vec[0], 1.f), 0.f); - const float kr = MAX2(MIN2((k+d), 1.f), -0.999f), kb = MAX2(MIN2((k-d), 1.f), -0.999f); - - if ((img==NULL) || (out[0]->hasoutput==0)) return; - - new = alloc_compbuf(img->x, img->y, CB_RGBA, 1); - - lensDistort(new, img, (nld->proj ? d : kr), k, kb, nld->jit, nld->proj, nld->fit); - - out[0]->data = new; -} - - -static void node_composit_init_lensdist(bNode* node) -{ - NodeLensDist *nld = MEM_callocN(sizeof(NodeLensDist), "node lensdist data"); - nld->jit = nld->proj = nld->fit = 0; - node->storage = nld; -} - - -void register_node_type_cmp_lensdist(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_LENSDIST, "Lens Distortion", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_lensdist_in, cmp_node_lensdist_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_lensdist); - node_type_storage(&ntype, "NodeLensDist", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_lensdist); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_levels.c b/source/blender/nodes/intern/CMP_nodes/CMP_levels.c deleted file mode 100644 index 2c9f7d97f09..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_levels.c +++ /dev/null @@ -1,350 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_levels.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** LEVELS ******************** */ -static bNodeSocketType cmp_node_view_levels_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_view_levels_out[]={ - {SOCK_VALUE, 0,"Mean",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE, 0,"Std Dev",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void rgb_tobw(float r, float g, float b, float* out) -{ - *out= r*0.35f + g*0.45f + b*0.2f; -} - -static void fill_bins(bNode* node, CompBuf* in, int* bins, int colorcor) -{ - float value[4]; - int ivalue=0; - int x,y; - - /*fill bins */ - for(y=0; yy; y++) { - for(x=0; xx; x++) { - - /* get the pixel */ - qd_getPixel(in, x, y, value); - - if(value[3] > 0.0) { /* don't count transparent pixels */ - switch(node->custom1) { - case 1: { /* all colors */ - if(colorcor) - linearrgb_to_srgb_v3_v3(&value[0],&value[0]); - rgb_tobw(value[0],value[1],value[2], &value[0]); - value[0]=value[0]*255; /* scale to 0-255 range */ - ivalue=(int)value[0]; - break; - } - case 2: { /* red channel */ - if(colorcor) - value[0]=linearrgb_to_srgb(value[0]); - value[0]=value[0]*255; /* scale to 0-255 range */ - ivalue=(int)value[0]; - break; - } - case 3: { /* green channel */ - if(colorcor) - value[1]=linearrgb_to_srgb(value[1]); - value[1]=value[1]*255; /* scale to 0-255 range */ - ivalue=(int)value[1]; - break; - } - case 4: /*blue channel */ - { - if(colorcor) - value[2]=linearrgb_to_srgb(value[2]); - value[2]=value[2]*255; /* scale to 0-255 range */ - ivalue=(int)value[2]; - break; - } - case 5: /* luminence */ - { - if(colorcor) - linearrgb_to_srgb_v3_v3(&value[0],&value[0]); - rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); - value[0]=value[0]*255; /* scale to 0-255 range */ - ivalue=(int)value[0]; - break; - } - } /*end switch */ - - /*clip*/ - if(ivalue<0) ivalue=0; - if(ivalue>255) ivalue=255; - - /*put in the correct bin*/ - bins[ivalue]+=1; - } /*end if alpha */ - } - } -} - -static float brightness_mean(bNode* node, CompBuf* in) -{ - float sum=0.0; - int numPixels=0.0; - int x,y; - float value[4]; - - for(x=0; x< in->x; x++) { - for(y=0; y < in->y; y++) { - - /* get the pixel */ - qd_getPixel(in, x, y, value); - - if(value[3] > 0.0) { /* don't count transparent pixels */ - numPixels++; - switch(node->custom1) - { - case 1: - { - rgb_tobw(value[0],value[1],value[2], &value[0]); - sum+=value[0]; - break; - } - case 2: - { - sum+=value[0]; - break; - } - case 3: - { - sum+=value[1]; - break; - } - case 4: - { - sum+=value[2]; - break; - } - case 5: - { - rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); - sum+=value[0]; - break; - } - } - } - } - } - - return sum/numPixels; -} - -static float brightness_standard_deviation(bNode* node, CompBuf* in, float mean) -{ - float sum=0.0; - int numPixels=0.0; - int x,y; - float value[4]; - - for(x=0; x< in->x; x++) { - for(y=0; y < in->y; y++) { - - /* get the pixel */ - qd_getPixel(in, x, y, value); - - if(value[3] > 0.0) { /* don't count transparent pixels */ - numPixels++; - switch(node->custom1) - { - case 1: - { - rgb_tobw(value[0],value[1],value[2], &value[0]); - sum+=(value[0]-mean)*(value[0]-mean); - break; - } - case 2: - { - sum+=value[0]; - sum+=(value[0]-mean)*(value[0]-mean); - break; - } - case 3: - { - sum+=value[1]; - sum+=(value[1]-mean)*(value[1]-mean); - break; - } - case 4: - { - sum+=value[2]; - sum+=(value[2]-mean)*(value[2]-mean); - break; - } - case 5: - { - rgb_to_yuv(value[0],value[1],value[2], &value[0], &value[1], &value[2]); - sum+=(value[0]-mean)*(value[0]-mean); - break; - } - } - } - } - } - - - return sqrt(sum/(float)(numPixels-1)); -} - -static void draw_histogram(bNode *node, CompBuf *out, int* bins) -{ - int x,y; - float color[4]; - float value; - int max; - - /* find max value */ - max=0; - for(x=0; x<256; x++) { - if(bins[x]>max) max=bins[x]; - } - - /*draw histogram in buffer */ - for(x=0; xx; x++) { - for(y=0;yy; y++) { - - /* get normalized value (0..255) */ - value=((float)bins[x]/(float)max)*255.0; - - if(y < (int)value) { /*if the y value is below the height of the bar for this line then draw with the color */ - switch (node->custom1) { - case 1: { /* draw in black */ - color[0]=0.0; color[1]=0.0; color[2]=0.0; color[3]=1.0; - break; - } - case 2: { /* draw in red */ - color[0]=1.0; color[1]=0.0; color[2]=0.0; color[3]=1.0; - break; - } - case 3: { /* draw in green */ - color[0]=0.0; color[1]=1.0; color[2]=0.0; color[3]=1.0; - break; - } - case 4: { /* draw in blue */ - color[0]=0.0; color[1]=0.0; color[2]=1.0; color[3]=1.0; - break; - } - case 5: { /* draw in white */ - color[0]=1.0; color[1]=1.0; color[2]=1.0; color[3]=1.0; - break; - } - } - } - else{ - color[0]=0.8; color[1]=0.8; color[2]=0.8; color[3]=1.0; - } - - /* set the color */ - qd_setPixel(out, x, y, color); - } - } -} - -static void node_composit_exec_view_levels(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf* cbuf; - CompBuf* histogram; - RenderData *rd=data; - float mean, std_dev; - int bins[256]; - int x; - - if(in[0]->hasinput==0) return; - if(in[0]->data==NULL) return; - - histogram=alloc_compbuf(256, 256, CB_RGBA, 1); - cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); - - /*initalize bins*/ - for(x=0; x<256; x++) { - bins[x]=0; - } - - /*fill bins */ - fill_bins(node, in[0]->data, bins, rd->color_mgt_flag & R_COLOR_MANAGEMENT); - - /* draw the histogram chart */ - draw_histogram(node, histogram, bins); - - /* calculate the average brightness and contrast */ - mean=brightness_mean(node, in[0]->data); - std_dev=brightness_standard_deviation(node, in[0]->data, mean); - - /* Printf debuging ;) - printf("Mean: %f\n", mean); - printf("Std Dev: %f\n", std_dev); - */ - - if(out[0]->hasoutput) - out[0]->vec[0]= mean; - if(out[1]->hasoutput) - out[1]->vec[0]= std_dev; - - generate_preview(data, node, histogram); - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - free_compbuf(histogram); -} - -static void node_composit_init_view_levels(bNode* node) -{ - node->custom1=1; /*All channels*/ -} - -void register_node_type_cmp_view_levels(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_VIEW_LEVELS, "Levels", NODE_CLASS_OUTPUT, NODE_OPTIONS|NODE_PREVIEW, - cmp_node_view_levels_in, cmp_node_view_levels_out); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, node_composit_init_view_levels); - node_type_storage(&ntype, "ImageUser", NULL, NULL); - node_type_exec(&ntype, node_composit_exec_view_levels); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c deleted file mode 100644 index 34e58791932..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Bob Holcomb . - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* ******************* Luma Matte Node ********************************* */ -static bNodeSocketType cmp_node_luma_matte_in[]={ - {SOCK_RGBA,1,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static bNodeSocketType cmp_node_luma_matte_out[]={ - {SOCK_RGBA,0,"Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_VALUE,0,"Matte",0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {-1,0,""} -}; - -static void do_luma_matte(bNode *node, float *out, float *in) -{ - NodeChroma *c=(NodeChroma *)node->storage; - float alpha; - - alpha=0.0; - - /* test range*/ - if(in[0]>c->t1) { - alpha=1.0; - } - else if(in[0]t2){ - alpha=0.0; - } - else {/*blend */ - alpha=(in[0]-c->t2)/(c->t1-c->t2); - } - - /* don't make something that was more transparent less transparent */ - if (alphahasinput==0) return; - if(in[0]->data==NULL) return; - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return; - - cbuf=typecheck_compbuf(in[0]->data, CB_RGBA); - - outbuf=dupalloc_compbuf(cbuf); - - composit1_pixel_processor(node, outbuf, cbuf, in[1]->vec, do_rgba_to_yuva, CB_RGBA); - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_luma_matte, CB_RGBA); - composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_yuva_to_rgba, CB_RGBA); - - generate_preview(data, node, outbuf); - out[0]->data=outbuf; - if (out[1]->hasoutput) - out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A); - if(cbuf!=in[0]->data) - free_compbuf(cbuf); -} - -static void node_composit_init_luma_matte(bNode *node) -{ - NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma"); - node->storage=c; - c->t1= 1.0f; - c->t2= 0.0f; -} - -void register_node_type_cmp_luma_matte(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_LUMA_MATTE, "Luminance Key", NODE_CLASS_MATTE, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_luma_matte_in, cmp_node_luma_matte_out); - node_type_size(&ntype, 200, 80, 250); - node_type_init(&ntype, node_composit_init_luma_matte); - node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_luma_matte); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c deleted file mode 100644 index 6b2c561b14a..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_mapUV.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Map UV ******************** */ - -static bNodeSocketType cmp_node_mapuv_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "UV", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_mapuv_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* foreach UV, use these values to read in cbuf and write to stackbuf */ -/* stackbuf should be zeroed */ -static void do_mapuv(CompBuf *stackbuf, CompBuf *cbuf, CompBuf *uvbuf, float threshold) -{ - ImBuf *ibuf; - float *out= stackbuf->rect, *uv, *uvnext, *uvprev; - float dx, dy, alpha; - int x, y, sx, sy, row= 3*stackbuf->x; - - /* ibuf needed for sampling */ - ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - ibuf->rect_float= cbuf->rect; - - /* vars for efficient looping */ - uv= uvbuf->rect; - uvnext= uv+row; - uvprev= uv-row; - sx= stackbuf->x; - sy= stackbuf->y; - - for(y=0; y0 && x0 && y 0.20f) dx= 0.20f; - if(dy > 0.20f) dy= 0.20f; - - ibuf_sample(ibuf, uv[0], uv[1], dx, dy, out); - /* premul */ - if(alpha<1.0f) { - out[0]*= alpha; - out[1]*= alpha; - out[2]*= alpha; - out[3]*= alpha; - } - } - } - } - } - - IMB_freeImBuf(ibuf); -} - - -static void node_composit_exec_mapuv(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(out[0]->hasoutput==0) - return; - - if(in[0]->data && in[1]->data) { - CompBuf *cbuf= in[0]->data; - CompBuf *uvbuf= in[1]->data; - CompBuf *stackbuf; - - cbuf= typecheck_compbuf(cbuf, CB_RGBA); - uvbuf= typecheck_compbuf(uvbuf, CB_VEC3); - stackbuf= alloc_compbuf(uvbuf->x, uvbuf->y, CB_RGBA, 1); /* allocs */; - - do_mapuv(stackbuf, cbuf, uvbuf, 0.05f*(float)node->custom1); - - out[0]->data= stackbuf; - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - if(uvbuf!=in[1]->data) - free_compbuf(uvbuf); - } -} - -void register_node_type_cmp_mapuv(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_MAP_UV, "Map UV", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_mapuv_in, cmp_node_mapuv_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_mapuv); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c deleted file mode 100644 index f14e0fbd804..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_mapValue.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** MAP VALUE ******************** */ -static bNodeSocketType cmp_node_map_value_in[]= { - { SOCK_VALUE, 1, "Value", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_map_value_out[]= { - { SOCK_VALUE, 0, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_map_value(bNode *node, float *out, float *src) -{ - TexMapping *texmap= node->storage; - - out[0]= (src[0] + texmap->loc[0])*texmap->size[0]; - if(texmap->flag & TEXMAP_CLIP_MIN) - if(out[0]min[0]) - out[0]= texmap->min[0]; - if(texmap->flag & TEXMAP_CLIP_MAX) - if(out[0]>texmap->max[0]) - out[0]= texmap->max[0]; -} - -static void node_composit_exec_map_value(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: valbuf */ - /* stack order out: valbuf */ - if(out[0]->hasoutput==0) return; - - /* input no image? then only value operation */ - if(in[0]->data==NULL) { - do_map_value(node, out[0]->vec, in[0]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ - - composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_map_value, CB_VAL); - - out[0]->data= stackbuf; - } -} - - -static void node_composit_init_map_value(bNode* node) -{ - node->storage= add_mapping(); -} - -void register_node_type_cmp_map_value(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_MAP_VALUE, "Map Value", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - cmp_node_map_value_in, cmp_node_map_value_out); - node_type_size(&ntype, 100, 60, 150); - node_type_init(&ntype, node_composit_init_map_value); - node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_map_value); - - nodeRegisterType(lb, &ntype); -} - - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_math.c b/source/blender/nodes/intern/CMP_nodes/CMP_math.c deleted file mode 100644 index b7a67f3563b..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_math.c +++ /dev/null @@ -1,215 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_math.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** SCALAR MATH ******************** */ -static bNodeSocketType cmp_node_math_in[]= { - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f}, - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_math_out[]= { - { SOCK_VALUE, 0, "Value", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_math(bNode *node, float *out, float *in, float *in2) -{ - switch(node->custom1) - { - case 0: /* Add */ - out[0]= in[0] + in2[0]; - break; - case 1: /* Subtract */ - out[0]= in[0] - in2[0]; - break; - case 2: /* Multiply */ - out[0]= in[0] * in2[0]; - break; - case 3: /* Divide */ - { - if(in2[0]==0) /* We don't want to divide by zero. */ - out[0]= 0.0; - else - out[0]= in[0] / in2[0]; - } - break; - case 4: /* Sine */ - out[0]= sin(in[0]); - break; - case 5: /* Cosine */ - out[0]= cos(in[0]); - break; - case 6: /* Tangent */ - out[0]= tan(in[0]); - break; - case 7: /* Arc-Sine */ - { - /* Can't do the impossible... */ - if(in[0] <= 1 && in[0] >= -1 ) - out[0]= asin(in[0]); - else - out[0]= 0.0; - } - break; - case 8: /* Arc-Cosine */ - { - /* Can't do the impossible... */ - if( in[0] <= 1 && in[0] >= -1 ) - out[0]= acos(in[0]); - else - out[0]= 0.0; - } - break; - case 9: /* Arc-Tangent */ - out[0]= atan(in[0]); - break; - case 10: /* Power */ - { - /* Only raise negative numbers by full integers */ - if( in[0] >= 0 ) { - out[0]= pow(in[0], in2[0]); - } else { - float y_mod_1 = fmod(in2[0], 1); - /* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */ - if (y_mod_1 > 0.999 || y_mod_1 < 0.001) { - out[0]= pow(in[0], floor(in2[0] + 0.5)); - } else { - out[0] = 0.0; - } - } - } - break; - case 11: /* Logarithm */ - { - /* Don't want any imaginary numbers... */ - if( in[0] > 0 && in2[0] > 0 ) - out[0]= log(in[0]) / log(in2[0]); - else - out[0]= 0.0; - } - break; - case 12: /* Minimum */ - { - if( in[0] < in2[0] ) - out[0]= in[0]; - else - out[0]= in2[0]; - } - break; - case 13: /* Maximum */ - { - if( in[0] > in2[0] ) - out[0]= in[0]; - else - out[0]= in2[0]; - } - break; - case 14: /* Round */ - { - /* round by the second value */ - if( in2[0] != 0.0f ) - out[0]= floorf(in[0] / in2[0] + 0.5f) * in2[0]; - else - out[0]= floorf(in[0] + 0.5f); - - } - break; - case 15: /* Less Than */ - { - if( in[0] < in2[0] ) - out[0]= 1.0f; - else - out[0]= 0.0f; - } - break; - case 16: /* Greater Than */ - { - if( in[0] > in2[0] ) - out[0]= 1.0f; - else - out[0]= 0.0f; - } - break; - } -} - -static void node_composit_exec_math(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *cbuf=in[0]->data; - CompBuf *cbuf2=in[1]->data; - CompBuf *stackbuf; - - /* check for inputs and outputs for early out*/ - if(out[0]->hasoutput==0) return; - - /* no image-color operation */ - if(in[0]->data==NULL && in[1]->data==NULL) { - do_math(node, out[0]->vec, in[0]->vec, in[1]->vec); - return; - } - - /*create output based on first input */ - if(cbuf) { - stackbuf=alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); - } - /* and if it doesn't exist use the second input since we - know that one of them must exist at this point*/ - else { - stackbuf=alloc_compbuf(cbuf2->x, cbuf2->y, CB_VAL, 1); - } - - /* operate in case there's valid size */ - composit2_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_math, CB_VAL, CB_VAL); - out[0]->data= stackbuf; -} - -void register_node_type_cmp_math(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_math_in, cmp_node_math_out); - node_type_size(&ntype, 120, 110, 160); - node_type_label(&ntype, node_math_label); - node_type_exec(&ntype, node_composit_exec_math); - - nodeRegisterType(lb, &ntype); -} - - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c deleted file mode 100644 index d2454b37c29..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_mixrgb.c - * \ingroup cmpnodes - */ - -#include "../CMP_util.h" - -/* **************** MIX RGB ******************** */ -static bNodeSocketType cmp_node_mix_rgb_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 5.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_mix_rgb_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_mix_rgb(bNode *node, float *out, float *in1, float *in2, float *fac) -{ - float col[3]; - - VECCOPY(col, in1); - if(node->custom2) - ramp_blend(node->custom1, col, col+1, col+2, in2[3]*fac[0], in2); - else - ramp_blend(node->custom1, col, col+1, col+2, fac[0], in2); - VECCOPY(out, col); - out[3]= in1[3]; -} - -static void node_composit_exec_mix_rgb(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: fac, Image, Image */ - /* stack order out: Image */ - float *fac= in[0]->vec; - - if(out[0]->hasoutput==0) return; - - /* input no image? then only color operation */ - if(in[1]->data==NULL && in[2]->data==NULL) { - do_mix_rgb(node, out[0]->vec, in[1]->vec, in[2]->vec, fac); - } - else { - /* make output size of first available input image */ - CompBuf *cbuf= in[1]->data?in[1]->data:in[2]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - composit3_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[0]->data, fac, do_mix_rgb, CB_RGBA, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - - generate_preview(data, node, out[0]->data); - } -} - -/* custom1 = mix type */ -void register_node_type_cmp_mix_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_mix_rgb_in, cmp_node_mix_rgb_out); - node_type_size(&ntype, 110, 60, 120); - node_type_label(&ntype, node_blend_label); - node_type_exec(&ntype, node_composit_exec_mix_rgb); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c b/source/blender/nodes/intern/CMP_nodes/CMP_normal.c deleted file mode 100644 index f53d3041947..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_normal.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** NORMAL ******************** */ -static bNodeSocketType cmp_node_normal_in[]= { - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType cmp_node_normal_out[]= { - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VALUE, 0, "Dot", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_normal(bNode *node, float *out, float *in) -{ - bNodeSocket *sock= node->outputs.first; - float *nor= sock->ns.vec; - - /* render normals point inside... the widget points outside */ - out[0]= -INPR(nor, in); -} - -/* generates normal, does dot product */ -static void node_composit_exec_normal(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - /* stack order input: normal */ - /* stack order output: normal, value */ - - /* input no image? then only vector op */ - if(in[0]->data==NULL) { - VECCOPY(out[0]->vec, sock->ns.vec); - /* render normals point inside... the widget points outside */ - out[1]->vec[0]= -INPR(out[0]->vec, in[0]->vec); - } - else if(out[1]->hasoutput) { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ - - composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_normal, CB_VEC3); - - out[1]->data= stackbuf; - } - - -} - -void register_node_type_cmp_normal(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - cmp_node_normal_in, cmp_node_normal_out); - node_type_size(&ntype, 100, 60, 200); - node_type_exec(&ntype, node_composit_exec_normal); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c b/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c deleted file mode 100644 index 22ebd924f09..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): gsr b3d, and a very minor edit from Robert Holcomb - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_normalize.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** NORMALIZE single channel, useful for Z buffer ******************** */ -static bNodeSocketType cmp_node_normalize_in[]= { - { SOCK_VALUE, 1, "Value", 1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_normalize_out[]= { - { SOCK_VALUE, 0, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_normalize(bNode *UNUSED(node), float *out, float *src, float *min, float *mult) -{ - float res; - res = (src[0] - min[0]) * mult[0]; - if (res > 1.0f) { - out[0] = 1.0f; - } - else if (res < 0.0f) { - out[0] = 0.0f; - } - else { - out[0] = res; - } -} - -/* The code below assumes all data is inside range +- this, and that input buffer is single channel */ -#define BLENDER_ZMAX 10000.0f - -static void node_composit_exec_normalize(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: valbuf */ - /* stack order out: valbuf */ - if(out[0]->hasoutput==0) return; - - /* Input has no image buffer? Then pass the value */ - if(in[0]->data==NULL) { - QUATCOPY(out[0]->vec, in[0]->vec); - } - else { - float min = 1.0f+BLENDER_ZMAX; - float max = -1.0f-BLENDER_ZMAX; - float mult = 1.0f; - float *val; - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - int tot= cbuf->x*cbuf->y; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ - - for (val = cbuf->rect; tot; tot--, val++) { - if ((*val > max) && (*val <= BLENDER_ZMAX)) { - max = *val; - } - if ((*val < min) && (*val >= -BLENDER_ZMAX)) { - min = *val; - } - } - /* In the rare case of flat buffer, which would cause a divide by 0, just pass the input to the output */ - if ((max-min) != 0.0f) { - mult = 1.0f/(max-min); - composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, NULL, &min, NULL, &mult, do_normalize, CB_VAL, CB_VAL, CB_VAL); - } else { - memcpy(stackbuf->rect, cbuf->rect, sizeof(float) * cbuf->x * cbuf->y); - } - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_normalize(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_NORMALIZE, "Normalize", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - cmp_node_normalize_in, cmp_node_normalize_out); - node_type_size(&ntype, 100, 60, 150); - node_type_exec(&ntype, node_composit_exec_normalize); - node_type_storage(&ntype, "TexMapping", NULL, NULL); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c b/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c deleted file mode 100644 index 1d52e694ea9..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_outputFile.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** OUTPUT FILE ******************** */ -static bNodeSocketType cmp_node_output_file_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_output_file(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - /* image assigned to output */ - /* stack order input sockets: col, alpha */ - - if(in[0]->data) { - RenderData *rd= data; - NodeImageFile *nif= node->storage; - if(nif->sfra!=nif->efra && (rd->cfrasfra || rd->cfra>nif->efra)) { - return; /* BAIL OUT RETURN */ - } - else if (!G.rendering) { - /* only output files when rendering a sequence - - * otherwise, it overwrites the output files just - * scrubbing through the timeline when the compositor updates */ - return; - } else { - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - ImBuf *ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - char string[256]; - - ibuf->rect_float= cbuf->rect; - ibuf->dither= rd->dither_intensity; - - if (rd->color_mgt_flag & R_COLOR_MANAGEMENT) - ibuf->profile = IB_PROFILE_LINEAR_RGB; - - if(in[1]->data) { - CompBuf *zbuf= in[1]->data; - if(zbuf->type==CB_VAL && zbuf->x==cbuf->x && zbuf->y==cbuf->y) { - nif->subimtype|= R_OPENEXR_ZBUF; - ibuf->zbuf_float= zbuf->rect; - } - } - - BKE_makepicstring(string, nif->name, rd->cfra, nif->imtype, (rd->scemode & R_EXTENSION), TRUE); - - if(0 == BKE_write_ibuf(ibuf, string, nif->imtype, nif->subimtype, nif->imtype==R_OPENEXR?nif->codec:nif->quality)) - printf("Cannot save Node File Output to %s\n", string); - else - printf("Saved: %s\n", string); - - IMB_freeImBuf(ibuf); - - generate_preview(data, node, cbuf); - - if(in[0]->data != cbuf) - free_compbuf(cbuf); - } - } -} - -static void node_composit_init_output_file(bNode *node) -{ - Scene *scene= (Scene *)node->id; - NodeImageFile *nif= MEM_callocN(sizeof(NodeImageFile), "node image file"); - node->storage= nif; - - if(scene) { - BLI_strncpy(nif->name, scene->r.pic, sizeof(nif->name)); - nif->imtype= scene->r.imtype; - nif->subimtype= scene->r.subimtype; - nif->quality= scene->r.quality; - nif->sfra= scene->r.sfra; - nif->efra= scene->r.efra; - } -} - -void register_node_type_cmp_output_file(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_OUTPUT_FILE, "File Output", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_output_file_in, NULL); - node_type_size(&ntype, 140, 80, 300); - node_type_init(&ntype, node_composit_init_output_file); - node_type_storage(&ntype, "NodeImageFile", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_output_file); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c b/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c deleted file mode 100644 index 15d2ac25180..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -* $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -* -* The Original Code is Copyright (C) 2006 Blender Foundation. -* All rights reserved. -* -* The Original Code is: all of this file. -* -* Contributor(s): none yet. -* -* ***** END GPL LICENSE BLOCK ***** - -*/ - -/** \file blender/nodes/intern/CMP_nodes/CMP_premulkey.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Premul and Key Alpha Convert ******************** */ - -static bNodeSocketType cmp_node_premulkey_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_premulkey_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_premulkey(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(out[0]->hasoutput==0) - return; - - if(in[0]->data) { - CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - - stackbuf= dupalloc_compbuf(cbuf); - premul_compbuf(stackbuf, node->custom1 == 1); - - out[0]->data = stackbuf; - if(cbuf != in[0]->data) - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_premulkey(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_PREMULKEY, "Alpha Convert", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_premulkey_in, cmp_node_premulkey_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_premulkey); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c deleted file mode 100644 index 36b7988c4e0..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_rgb.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** RGB ******************** */ -static bNodeSocketType cmp_node_rgb_out[]= { - { SOCK_RGBA, 0, "RGBA", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - - QUATCOPY(out[0]->vec, sock->ns.vec); -} - -void register_node_type_cmp_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, cmp_node_rgb_out); - node_type_size(&ntype, 140, 80, 140); - node_type_exec(&ntype, node_composit_exec_rgb); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c deleted file mode 100644 index eccac4f0e6d..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_rotate.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Rotate ******************** */ - -static bNodeSocketType cmp_node_rotate_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Degr", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_rotate_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* only supports RGBA nodes now */ -static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - - if(out[0]->hasoutput==0) - return; - - if(in[0]->data) { - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* note, this returns zero'd image */ - float rad, u, v, s, c, centx, centy, miny, maxy, minx, maxx; - int x, y, yo, xo; - ImBuf *ibuf, *obuf; - - rad= (M_PI*in[1]->vec[0])/180.0f; - - s= sin(rad); - c= cos(rad); - centx= cbuf->x/2; - centy= cbuf->y/2; - - minx= -centx; - maxx= -centx + (float)cbuf->x; - miny= -centy; - maxy= -centy + (float)cbuf->y; - - - ibuf=IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - obuf=IMB_allocImBuf(stackbuf->x, stackbuf->y, 32, 0); - - if(ibuf && obuf){ - ibuf->rect_float=cbuf->rect; - obuf->rect_float=stackbuf->rect; - - for(y=miny; ycustom1) { - case 0: - neareast_interpolation(ibuf, obuf, u, v, xo, yo); - break ; - case 1: - bilinear_interpolation(ibuf, obuf, u, v, xo, yo); - break; - case 2: - bicubic_interpolation(ibuf, obuf, u, v, xo, yo); - break; - } - - } - } - - /* rotate offset vector too, but why negative rad, ehh?? Has to be replaced with [3][3] matrix once (ton) */ - s= sin(-rad); - c= cos(-rad); - centx= (float)cbuf->xof; centy= (float)cbuf->yof; - stackbuf->xof= (int)( c*centx + s*centy); - stackbuf->yof= (int)(-s*centx + c*centy); - - IMB_freeImBuf(ibuf); - IMB_freeImBuf(obuf); - } - - /* pass on output and free */ - out[0]->data= stackbuf; - if(cbuf!=in[0]->data) { - free_compbuf(cbuf); - } - } -} - -static void node_composit_init_rotate(bNode *node) -{ - node->custom1= 1; /* Bilinear Filter*/ -} - -void register_node_type_cmp_rotate(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_ROTATE, "Rotate", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_rotate_in, cmp_node_rotate_out); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, node_composit_init_rotate); - node_type_exec(&ntype, node_composit_exec_rotate); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c b/source/blender/nodes/intern/CMP_nodes/CMP_scale.c deleted file mode 100644 index b6030cc5a5f..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_scale.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** Scale ******************** */ - -#define CMP_SCALE_MAX 12000 - -static bNodeSocketType cmp_node_scale_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "X", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, CMP_SCALE_MAX}, - { SOCK_VALUE, 1, "Y", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, CMP_SCALE_MAX}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_scale_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* only supports RGBA nodes now */ -/* node->custom1 stores if input values are absolute or relative scale */ -static void node_composit_exec_scale(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(out[0]->hasoutput==0) - return; - - if(in[0]->data) { - RenderData *rd= data; - CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - ImBuf *ibuf; - int newx, newy; - - if(node->custom1==CMP_SCALE_RELATIVE) { - newx= MAX2((int)(in[1]->vec[0]*cbuf->x), 1); - newy= MAX2((int)(in[2]->vec[0]*cbuf->y), 1); - } - else if(node->custom1==CMP_SCALE_SCENEPERCENT) { - newx = cbuf->x * (rd->size / 100.0f); - newy = cbuf->y * (rd->size / 100.0f); - } - else if (node->custom1==CMP_SCALE_RENDERPERCENT) { - newx= (rd->xsch * rd->size)/100; - newy= (rd->ysch * rd->size)/100; - } else { /* CMP_SCALE_ABSOLUTE */ - newx= MAX2((int)in[1]->vec[0], 1); - newy= MAX2((int)in[2]->vec[0], 1); - } - newx= MIN2(newx, CMP_SCALE_MAX); - newy= MIN2(newy, CMP_SCALE_MAX); - - ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - if(ibuf) { - ibuf->rect_float= cbuf->rect; - IMB_scaleImBuf(ibuf, newx, newy); - - if(ibuf->rect_float == cbuf->rect) { - /* no scaling happened. */ - stackbuf= pass_on_compbuf(in[0]->data); - } - else { - stackbuf= alloc_compbuf(newx, newy, CB_RGBA, 0); - stackbuf->rect= ibuf->rect_float; - stackbuf->malloc= 1; - } - - ibuf->rect_float= NULL; - ibuf->mall &= ~IB_rectfloat; - IMB_freeImBuf(ibuf); - - /* also do the translation vector */ - stackbuf->xof = (int)(((float)newx/(float)cbuf->x) * (float)cbuf->xof); - stackbuf->yof = (int)(((float)newy/(float)cbuf->y) * (float)cbuf->yof); - } - else { - stackbuf= dupalloc_compbuf(cbuf); - printf("Scaling to %dx%d failed\n", newx, newy); - } - - out[0]->data= stackbuf; - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_scale(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SCALE, "Scale", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_scale_in, cmp_node_scale_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_scale); - - nodeRegisterType(lb, &ntype); -} - - - - - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c deleted file mode 100644 index 87c4ed1dac0..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** SEPARATE HSVA ******************** */ -static bNodeSocketType cmp_node_sephsva_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_sephsva_out[]= { - { SOCK_VALUE, 0, "H", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "S", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "A", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_sephsva(bNode *UNUSED(node), float *out, float *in) -{ - float h, s, v; - - rgb_to_hsv(in[0], in[1], in[2], &h, &s, &v); - - out[0]= h; - out[1]= s; - out[2]= v; - out[3]= in[3]; -} - -static void node_composit_exec_sephsva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: bw channels */ - /* stack order in: col */ - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - float h, s, v; - - rgb_to_hsv(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &h, &s, &v); - - out[0]->vec[0] = h; - out[1]->vec[0] = s; - out[2]->vec[0] = v; - out[3]->vec[0] = in[0]->vec[3]; - } - else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { - /* create new buffer so input buffer doesn't get corrupted */ - CompBuf *cbuf= dupalloc_compbuf(in[0]->data); - CompBuf *cbuf2= typecheck_compbuf(cbuf, CB_RGBA); - - /* convert the RGB stackbuf to an HSV representation */ - composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sephsva, CB_RGBA); - - /* separate each of those channels */ - if(out[0]->hasoutput) - out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); - if(out[2]->hasoutput) - out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); - if(out[3]->hasoutput) - out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); - - /*not used anymore */ - if(cbuf2!=cbuf) - free_compbuf(cbuf2); - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_sephsva(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SEPHSVA, "Separate HSVA", NODE_CLASS_CONVERTOR, 0, - cmp_node_sephsva_in, cmp_node_sephsva_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_sephsva); - - nodeRegisterType(lb, &ntype); -} - - -/* **************** COMBINE HSVA ******************** */ -static bNodeSocketType cmp_node_combhsva_in[]= { - { SOCK_VALUE, 1, "H", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "S", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_combhsva_out[]= { - { SOCK_RGBA, 0, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_comb_hsva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - float r,g,b; - hsv_to_rgb(in1[0], in2[0], in3[0], &r, &g, &b); - - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = in4[0]; -} - -static void node_composit_exec_combhsva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: 1 rgba channels */ - /* stack order in: 4 value channels */ - - /* input no image? then only color operation */ - if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { - out[0]->vec[0] = in[0]->vec[0]; - out[0]->vec[1] = in[1]->vec[0]; - out[0]->vec[2] = in[2]->vec[0]; - out[0]->vec[3] = in[3]->vec[0]; - } - else { - /* make output size of first available input image */ - CompBuf *cbuf; - CompBuf *stackbuf; - - /* allocate a CompBuf the size of the first available input */ - if (in[0]->data) cbuf = in[0]->data; - else if (in[1]->data) cbuf = in[1]->data; - else if (in[2]->data) cbuf = in[2]->data; - else cbuf = in[3]->data; - - stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_comb_hsva, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_combhsva(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COMBHSVA, "Combine HSVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_combhsva_in, cmp_node_combhsva_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_combhsva); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c deleted file mode 100644 index 11afd1eaaef..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** SEPARATE RGBA ******************** */ -static bNodeSocketType cmp_node_seprgba_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_seprgba_out[]= { - { SOCK_VALUE, 0, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "A", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_seprgba(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) -{ - /* stack order out: bw channels */ - /* stack order in: col */ - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - out[0]->vec[0] = in[0]->vec[0]; - out[1]->vec[0] = in[0]->vec[1]; - out[2]->vec[0] = in[0]->vec[2]; - out[3]->vec[0] = in[0]->vec[3]; - } - else { - /* make sure we get right rgba buffer */ - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - - /* don't do any pixel processing, just copy the stack directly (faster, I presume) */ - if(out[0]->hasoutput) - out[0]->data= valbuf_from_rgbabuf(cbuf, CHAN_R); - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(cbuf, CHAN_G); - if(out[2]->hasoutput) - out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B); - if(out[3]->hasoutput) - out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A); - - if(cbuf!=in[0]->data) - free_compbuf(cbuf); - - } -} - -void register_node_type_cmp_seprgba(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SEPRGBA, "Separate RGBA", NODE_CLASS_CONVERTOR, 0, - cmp_node_seprgba_in, cmp_node_seprgba_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_seprgba); - - nodeRegisterType(lb, &ntype); -} - - - -/* **************** COMBINE RGBA ******************** */ -static bNodeSocketType cmp_node_combrgba_in[]= { - { SOCK_VALUE, 1, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_combrgba_out[]= { - { SOCK_RGBA, 0, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_combrgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - out[0] = in1[0]; - out[1] = in2[0]; - out[2] = in3[0]; - out[3] = in4[0]; -} - -static void node_composit_exec_combrgba(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: 1 rgba channels */ - /* stack order in: 4 value channels */ - - /* input no image? then only color operation */ - if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { - out[0]->vec[0] = in[0]->vec[0]; - out[0]->vec[1] = in[1]->vec[0]; - out[0]->vec[2] = in[2]->vec[0]; - out[0]->vec[3] = in[3]->vec[0]; - } - else { - /* make output size of first available input image */ - CompBuf *cbuf; - CompBuf *stackbuf; - - /* allocate a CompBuf the size of the first available input */ - if (in[0]->data) cbuf = in[0]->data; - else if (in[1]->data) cbuf = in[1]->data; - else if (in[2]->data) cbuf = in[2]->data; - else cbuf = in[3]->data; - - stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_combrgba, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_combrgba(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COMBRGBA, "Combine RGBA", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_combrgba_in, cmp_node_combrgba_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_combrgba); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c deleted file mode 100644 index 81591602dae..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** SEPARATE YCCA ******************** */ -static bNodeSocketType cmp_node_sepycca_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_sepycca_out[]= { - { SOCK_VALUE, 0, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Cb", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Cr", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "A", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_sepycca_601(bNode *UNUSED(node), float *out, float *in) -{ - float y, cb, cr; - - rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_ITU_BT601); - - /*divided by 255 to normalize for viewing in */ - out[0]= y/255.0; - out[1]= cb/255.0; - out[2]= cr/255.0; - out[3]= in[3]; -} - -static void do_sepycca_709(bNode *UNUSED(node), float *out, float *in) -{ - float y, cb, cr; - - rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_ITU_BT709); - - /*divided by 255 to normalize for viewing in */ - out[0]= y/255.0; - out[1]= cb/255.0; - out[2]= cr/255.0; - out[3]= in[3]; -} - -static void do_sepycca_jfif(bNode *UNUSED(node), float *out, float *in) -{ - float y, cb, cr; - - rgb_to_ycc(in[0], in[1], in[2], &y, &cb, &cr, BLI_YCC_JFIF_0_255); - - /*divided by 255 to normalize for viewing in */ - out[0]= y/255.0; - out[1]= cb/255.0; - out[2]= cr/255.0; - out[3]= in[3]; -} - -static void node_composit_exec_sepycca(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - float y, cb, cr; - - switch(node->custom1) - { - case 1: - rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_ITU_BT709); - break; - case 2: - rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_JFIF_0_255); - break; - case 0: - default: - rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_ITU_BT601); - break; - } - - /*divided by 255 to normalize for viewing in */ - out[0]->vec[0] = y/255.0; - out[1]->vec[0] = cb/255.0; - out[2]->vec[0] = cr/255.0; - out[3]->vec[0] = in[0]->vec[3]; - } - else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { - /* make copy of buffer so input buffer doesn't get corrupted */ - CompBuf *cbuf= dupalloc_compbuf(in[0]->data); - CompBuf *cbuf2=typecheck_compbuf(cbuf, CB_RGBA); - - /* convert the RGB stackbuf to an HSV representation */ - switch(node->custom1) - { - case 1: - composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_709, CB_RGBA); - break; - case 2: - composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_jfif, CB_RGBA); - break; - case 0: - default: - composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_601, CB_RGBA); - break; - } - - /* separate each of those channels */ - if(out[0]->hasoutput) - out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); - if(out[2]->hasoutput) - out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); - if(out[3]->hasoutput) - out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); - - /*not used anymore */ - if(cbuf2!=cbuf) - free_compbuf(cbuf2); - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_sepycca(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SEPYCCA, "Separate YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_sepycca_in, cmp_node_sepycca_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_sepycca); - - nodeRegisterType(lb, &ntype); -} - - - -/* **************** COMBINE YCCA ******************** */ -static bNodeSocketType cmp_node_combycca_in[]= { - { SOCK_VALUE, 1, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Cb", 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Cr", 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_combycca_out[]= { - { SOCK_RGBA, 0, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_comb_ycca_601(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - float r,g,b; - float y, cb, cr; - - /*need to un-normalize the data*/ - y=in1[0]*255; - cb=in2[0]*255; - cr=in3[0]*255; - - ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_ITU_BT601); - - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = in4[0]; -} - -static void do_comb_ycca_709(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - float r,g,b; - float y, cb, cr; - - /*need to un-normalize the data*/ - y=in1[0]*255; - cb=in2[0]*255; - cr=in3[0]*255; - - ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_ITU_BT709); - - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = in4[0]; -} - -static void do_comb_ycca_jfif(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - float r,g,b; - float y, cb, cr; - - /*need to un-normalize the data*/ - y=in1[0]*255; - cb=in2[0]*255; - cr=in3[0]*255; - - ycc_to_rgb(y,cb,cr, &r, &g, &b, BLI_YCC_JFIF_0_255); - - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = in4[0]; -} - -static void node_composit_exec_combycca(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: 1 ycca channels */ - /* stack order in: 4 value channels */ - - /* input no image? then only color operation */ - if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { - float y = in[0]->vec[0] * 255; - float cb = in[1]->vec[0] * 255; - float cr = in[2]->vec[0] * 255; - - switch(node->custom1) - { - case 1: - ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_ITU_BT709); - break; - case 2: - ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_JFIF_0_255); - break; - case 0: - default: - ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_ITU_BT601); - break; - } - - out[0]->vec[3] = in[3]->vec[0]; - } - else { - /* make output size of first available input image */ - CompBuf *cbuf; - CompBuf *stackbuf; - - /* allocate a CompBuf the size of the first available input */ - if (in[0]->data) cbuf = in[0]->data; - else if (in[1]->data) cbuf = in[1]->data; - else if (in[2]->data) cbuf = in[2]->data; - else cbuf = in[3]->data; - - stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - - switch(node->custom1) - { - case 1: - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_comb_ycca_709, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - break; - - case 2: - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_comb_ycca_jfif, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - break; - case 0: - default: - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_comb_ycca_601, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - break; - } - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_combycca(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COMBYCCA, "Combine YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_combycca_in, cmp_node_combycca_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_combycca); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c deleted file mode 100644 index 8687e307df3..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** SEPARATE YUVA ******************** */ -static bNodeSocketType cmp_node_sepyuva_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_sepyuva_out[]= { - { SOCK_VALUE, 0, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "U", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "A", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_sepyuva(bNode *UNUSED(node), float *out, float *in) -{ - float y, u, v; - - rgb_to_yuv(in[0], in[1], in[2], &y, &u, &v); - - out[0]= y; - out[1]= u; - out[2]= v; - out[3]= in[3]; -} - -static void node_composit_exec_sepyuva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: bw channels */ - /* stack order in: col */ - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - float y, u, v; - - rgb_to_yuv(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &u, &v); - - out[0]->vec[0] = y; - out[1]->vec[0] = u; - out[2]->vec[0] = v; - out[3]->vec[0] = in[0]->vec[3]; - } - else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) { - /* make copy of buffer so input image doesn't get corrupted */ - CompBuf *cbuf= dupalloc_compbuf(in[0]->data); - CompBuf *cbuf2=typecheck_compbuf(cbuf, CB_RGBA); - - /* convert the RGB stackbuf to an YUV representation */ - composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepyuva, CB_RGBA); - - /* separate each of those channels */ - if(out[0]->hasoutput) - out[0]->data= valbuf_from_rgbabuf(cbuf2, CHAN_R); - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(cbuf2, CHAN_G); - if(out[2]->hasoutput) - out[2]->data= valbuf_from_rgbabuf(cbuf2, CHAN_B); - if(out[3]->hasoutput) - out[3]->data= valbuf_from_rgbabuf(cbuf2, CHAN_A); - - /*not used anymore */ - if(cbuf2!=cbuf) - free_compbuf(cbuf2); - free_compbuf(cbuf); - } -} - -void register_node_type_cmp_sepyuva(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SEPYUVA, "Separate YUVA", NODE_CLASS_CONVERTOR, 0, - cmp_node_sepyuva_in, cmp_node_sepyuva_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_sepyuva); - - nodeRegisterType(lb, &ntype); -} - - - -/* **************** COMBINE YUVA ******************** */ -static bNodeSocketType cmp_node_combyuva_in[]= { - { SOCK_VALUE, 1, "Y", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "U", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "V", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "A", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_combyuva_out[]= { - { SOCK_RGBA, 0, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_comb_yuva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4) -{ - float r,g,b; - yuv_to_rgb(in1[0], in2[0], in3[0], &r, &g, &b); - - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = in4[0]; -} - -static void node_composit_exec_combyuva(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: 1 rgba channels */ - /* stack order in: 4 value channels */ - - /* input no image? then only color operation */ - if((in[0]->data==NULL) && (in[1]->data==NULL) && (in[2]->data==NULL) && (in[3]->data==NULL)) { - out[0]->vec[0] = in[0]->vec[0]; - out[0]->vec[1] = in[1]->vec[0]; - out[0]->vec[2] = in[2]->vec[0]; - out[0]->vec[3] = in[3]->vec[0]; - } - else { - /* make output size of first available input image */ - CompBuf *cbuf; - CompBuf *stackbuf; - - /* allocate a CompBuf the size of the first available input */ - if (in[0]->data) cbuf = in[0]->data; - else if (in[1]->data) cbuf = in[1]->data; - else if (in[2]->data) cbuf = in[2]->data; - else cbuf = in[3]->data; - - stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, - in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, - do_comb_yuva, CB_VAL, CB_VAL, CB_VAL, CB_VAL); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_combyuva(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_COMBYUVA, "Combine YUVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_combyuva_in, cmp_node_combyuva_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_composit_exec_combyuva); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c b/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c deleted file mode 100644 index bb8533a79f6..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_setalpha.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** SET ALPHA ******************** */ -static bNodeSocketType cmp_node_setalpha_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_setalpha_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_setalpha(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: RGBA image */ - /* stack order in: col, alpha */ - - /* input no image? then only color operation */ - if(in[0]->data==NULL && in[1]->data==NULL) { - out[0]->vec[0] = in[0]->vec[0]; - out[0]->vec[1] = in[0]->vec[1]; - out[0]->vec[2] = in[0]->vec[2]; - out[0]->vec[3] = in[1]->vec[0]; - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data?in[0]->data:in[1]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - if(in[1]->data==NULL && in[1]->vec[0]==1.0f) { - /* pass on image */ - composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_copy_rgb, CB_RGBA); - } - else { - /* send an compbuf or a value to set as alpha - composit2_pixel_processor handles choosing the right one */ - composit2_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); - } - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_setalpha(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SETALPHA, "Set Alpha", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_setalpha_in, cmp_node_setalpha_out); - node_type_size(&ntype, 120, 40, 140); - node_type_exec(&ntype, node_composit_exec_setalpha); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c deleted file mode 100644 index 13cb3bcfed5..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_splitViewer.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** SPLIT VIEWER ******************** */ -static bNodeSocketType cmp_node_splitviewer_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_copy_split_rgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *fac) -{ - if(*fac==0.0f) { - QUATCOPY(out, in1); - } - else { - QUATCOPY(out, in2); - } -} - -static void node_composit_exec_splitviewer(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - /* image assigned to output */ - /* stack order input sockets: image image */ - - if(in[0]->data==NULL || in[1]->data==NULL) - return; - - if(node->id && (node->flag & NODE_DO_OUTPUT)) { /* only one works on out */ - Image *ima= (Image *)node->id; - RenderData *rd= data; - ImBuf *ibuf; - CompBuf *cbuf, *buf1, *buf2, *mask; - int x, y; - float offset; - void *lock; - - buf1= typecheck_compbuf(in[0]->data, CB_RGBA); - buf2= typecheck_compbuf(in[1]->data, CB_RGBA); - - BKE_image_user_calc_frame(node->storage, rd->cfra, 0); - - /* always returns for viewer image, but we check nevertheless */ - ibuf= BKE_image_acquire_ibuf(ima, node->storage, &lock); - if(ibuf==NULL) { - printf("node_composit_exec_viewer error\n"); - BKE_image_release_ibuf(ima, lock); - return; - } - - /* free all in ibuf */ - imb_freerectImBuf(ibuf); - imb_freerectfloatImBuf(ibuf); - IMB_freezbuffloatImBuf(ibuf); - - /* make ibuf, and connect to ima */ - ibuf->x= buf1->x; - ibuf->y= buf1->y; - imb_addrectfloatImBuf(ibuf); - - ima->ok= IMA_OK_LOADED; - - /* output buf */ - cbuf= alloc_compbuf(buf1->x, buf1->y, CB_RGBA, 0); /* no alloc*/ - cbuf->rect= ibuf->rect_float; - - /* mask buf */ - mask= alloc_compbuf(buf1->x, buf1->y, CB_VAL, 1); - - - /* Check which offset mode is selected and limit offset if needed */ - if(node->custom2 == 0) { - offset = buf1->x / 100.0f * node->custom1; - CLAMP(offset, 0, buf1->x); - } - else { - offset = buf1->y / 100.0f * node->custom1; - CLAMP(offset, 0, buf1->y); - } - - if(node->custom2 == 0) { - for(y=0; yy; y++) { - float *fac= mask->rect + y*buf1->x; - for(x=offset; x>0; x--, fac++) - *fac= 1.0f; - } - } - else { - for(y=0; yrect + y*buf1->x; - for(x=buf1->x; x>0; x--, fac++) - *fac= 1.0f; - } - } - - composit3_pixel_processor(node, cbuf, buf1, in[0]->vec, buf2, in[1]->vec, mask, NULL, do_copy_split_rgba, CB_RGBA, CB_RGBA, CB_VAL); - - BKE_image_release_ibuf(ima, lock); - - generate_preview(data, node, cbuf); - free_compbuf(cbuf); - free_compbuf(mask); - - if(in[0]->data != buf1) - free_compbuf(buf1); - if(in[1]->data != buf2) - free_compbuf(buf2); - } -} - -static void node_composit_init_splitviewer(bNode* node) -{ - ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); - node->storage= iuser; - iuser->sfra= 1; - iuser->fie_ima= 2; - iuser->ok= 1; - node->custom1= 50; /* default 50% split */ -} - -void register_node_type_cmp_splitviewer(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_SPLITVIEWER, "SplitViewer", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS, - cmp_node_splitviewer_in, NULL); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, node_composit_init_splitviewer); - node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_splitviewer); - - nodeRegisterType(lb, &ntype); -} - - - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c deleted file mode 100644 index 46e71b8b8e5..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_texture.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** TEXTURE ******************** */ -static bNodeSocketType cmp_node_texture_in[]= { - { SOCK_VECTOR, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f}, - { SOCK_VECTOR, 1, "Scale", 1.0f, 1.0f, 1.0f, 1.0f, -10.0f, 10.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_texture_out[]= { - { SOCK_VALUE, 0, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA , 0, "Color", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* called without rect allocated */ -static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco) -{ - bNode *node= cbuf->node; - TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL}; - float vec[3], *size, nor[3]={0.0f, 0.0f, 0.0f}, col[4]; - int retval, type= cbuf->procedural_type; - - size= cbuf->procedural_size; - - vec[0]= size[0]*(xco + cbuf->procedural_offset[0]); - vec[1]= size[1]*(yco + cbuf->procedural_offset[1]); - vec[2]= size[2]*cbuf->procedural_offset[2]; - - retval= multitex_ext((Tex *)node->id, vec, NULL, NULL, 0, &texres); - - if(type==CB_VAL) { - if(texres.talpha) - col[0]= texres.ta; - else - col[0]= texres.tin; - } - else if(type==CB_RGBA) { - if(texres.talpha) - col[3]= texres.ta; - else - col[3]= texres.tin; - - if((retval & TEX_RGB)) { - col[0]= texres.tr; - col[1]= texres.tg; - col[2]= texres.tb; - } - else col[0]= col[1]= col[2]= col[3]; - } - else { - VECCOPY(col, nor); - } - - typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type); -} - -/* texture node outputs get a small rect, to make sure all other nodes accept it */ -/* only the pixel-processor nodes do something with it though */ -static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* outputs: value, color, normal */ - - if(node->id) { - RenderData *rd= data; - short sizex, sizey; - - /* first make the preview image */ - CompBuf *prevbuf= alloc_compbuf(140, 140, CB_RGBA, 1); /* alloc */ - - prevbuf->rect_procedural= texture_procedural; - prevbuf->node= node; - VECCOPY(prevbuf->procedural_offset, in[0]->vec); - VECCOPY(prevbuf->procedural_size, in[1]->vec); - prevbuf->procedural_type= CB_RGBA; - composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA); - - generate_preview(data, node, prevbuf); - free_compbuf(prevbuf); - - /* texture procedural buffer type doesnt work well, we now render a buffer in scene size */ - sizex = (rd->size*rd->xsch)/100; - sizey = (rd->size*rd->ysch)/100; - - if(out[0]->hasoutput) { - CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_VAL, 1); /* alloc */ - - stackbuf->rect_procedural= texture_procedural; - stackbuf->node= node; - VECCOPY(stackbuf->procedural_offset, in[0]->vec); - VECCOPY(stackbuf->procedural_size, in[1]->vec); - stackbuf->procedural_type= CB_VAL; - composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_value, CB_VAL); - stackbuf->rect_procedural= NULL; - - out[0]->data= stackbuf; - } - if(out[1]->hasoutput) { - CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_RGBA, 1); /* alloc */ - - stackbuf->rect_procedural= texture_procedural; - stackbuf->node= node; - VECCOPY(stackbuf->procedural_offset, in[0]->vec); - VECCOPY(stackbuf->procedural_size, in[1]->vec); - stackbuf->procedural_type= CB_RGBA; - composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_rgba, CB_RGBA); - stackbuf->rect_procedural= NULL; - - out[1]->data= stackbuf; - } - } -} - -void register_node_type_cmp_texture(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW, - cmp_node_texture_in, cmp_node_texture_out); - node_type_size(&ntype, 120, 80, 240); - node_type_exec(&ntype, node_composit_exec_texture); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c b/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c deleted file mode 100644 index f15811ec790..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Alfredo de Greef (eeshlo) - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_tonemap.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -static bNodeSocketType cmp_node_tonemap_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_tonemap_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -static float avgLogLum(CompBuf *src, float* auto_key, float* Lav, float* Cav) -{ - float lsum = 0; - int p = src->x*src->y; - fRGB* bc = (fRGB*)src->rect; - float avl, maxl = -1e10f, minl = 1e10f; - const float sc = 1.f/(src->x*src->y); - *Lav = 0.f; - while (p--) { - float L = 0.212671f*bc[0][0] + 0.71516f*bc[0][1] + 0.072169f*bc[0][2]; - *Lav += L; - fRGB_add(Cav, bc[0]); - lsum += (float)log((double)MAX2(L, 0.0) + 1e-5); - maxl = (L > maxl) ? L : maxl; - minl = (L < minl) ? L : minl; - bc++; - } - *Lav *= sc; - fRGB_mult(Cav, sc); - maxl = log((double)maxl + 1e-5); minl = log((double)minl + 1e-5f); avl = lsum*sc; - *auto_key = (maxl > minl) ? ((maxl - avl) / (maxl - minl)) : 1.f; - return exp((double)avl); -} - - -static void tonemap(NodeTonemap* ntm, CompBuf* dst, CompBuf* src) -{ - int x, y; - float dr, dg, db, al, igm = (ntm->gamma==0.f) ? 1 : (1.f / ntm->gamma); - float auto_key, Lav, Cav[3] = {0, 0, 0}; - - al = avgLogLum(src, &auto_key, &Lav, Cav); - al = (al == 0.f) ? 0.f : (ntm->key / al); - - if (ntm->type == 1) { - // Reinhard/Devlin photoreceptor - const float f = exp((double)-ntm->f); - const float m = (ntm->m > 0.f) ? ntm->m : (0.3f + 0.7f*pow((double)auto_key, 1.4)); - const float ic = 1.f - ntm->c, ia = 1.f - ntm->a; - if (ntm->m == 0.f) printf("tonemap node, M: %g\n", m); - for (y=0; yy; ++y) { - fRGB* sp = (fRGB*)&src->rect[y*src->x*src->type]; - fRGB* dp = (fRGB*)&dst->rect[y*src->x*src->type]; - for (x=0; xx; ++x) { - const float L = 0.212671f*sp[x][0] + 0.71516f*sp[x][1] + 0.072169f*sp[x][2]; - float I_l = sp[x][0] + ic*(L - sp[x][0]); - float I_g = Cav[0] + ic*(Lav - Cav[0]); - float I_a = I_l + ia*(I_g - I_l); - dp[x][0] /= (dp[x][0] + pow((double)f*I_a, (double)m)); - I_l = sp[x][1] + ic*(L - sp[x][1]); - I_g = Cav[1] + ic*(Lav - Cav[1]); - I_a = I_l + ia*(I_g - I_l); - dp[x][1] /= (dp[x][1] + pow((double)f*I_a,(double)m)); - I_l = sp[x][2] + ic*(L - sp[x][2]); - I_g = Cav[2] + ic*(Lav - Cav[2]); - I_a = I_l + ia*(I_g - I_l); - dp[x][2] /= (dp[x][2] + pow((double)f*I_a, (double)m)); - } - } - return; - } - - // Reinhard simple photographic tm (simplest, not using whitepoint var) - for (y=0; yy; y++) { - fRGB* sp = (fRGB*)&src->rect[y*src->x*src->type]; - fRGB* dp = (fRGB*)&dst->rect[y*src->x*src->type]; - for (x=0; xx; x++) { - fRGB_copy(dp[x], sp[x]); - fRGB_mult(dp[x], al); - dr = dp[x][0] + ntm->offset; - dg = dp[x][1] + ntm->offset; - db = dp[x][2] + ntm->offset; - dp[x][0] /= ((dr == 0.f) ? 1.f : dr); - dp[x][1] /= ((dg == 0.f) ? 1.f : dg); - dp[x][2] /= ((db == 0.f) ? 1.f : db); - if (igm != 0.f) { - dp[x][0] = pow((double)MAX2(dp[x][0], 0.), igm); - dp[x][1] = pow((double)MAX2(dp[x][1], 0.), igm); - dp[x][2] = pow((double)MAX2(dp[x][2], 0.), igm); - } - } - } -} - - -static void node_composit_exec_tonemap(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - CompBuf *new, *img = in[0]->data; - - if ((img==NULL) || (out[0]->hasoutput==0)) return; - - if (img->type != CB_RGBA) - img = typecheck_compbuf(img, CB_RGBA); - - new = dupalloc_compbuf(img); - - tonemap(node->storage, new, img); - - out[0]->data = new; - - if(img!=in[0]->data) - free_compbuf(img); -} - -static void node_composit_init_tonemap(bNode* node) -{ - NodeTonemap *ntm = MEM_callocN(sizeof(NodeTonemap), "node tonemap data"); - ntm->type = 1; - ntm->key = 0.18; - ntm->offset = 1; - ntm->gamma = 1; - ntm->f = 0; - ntm->m = 0; // actual value is set according to input - // default a of 1 works well with natural HDR images, but not always so for cgi. - // Maybe should use 0 or at least lower initial value instead - ntm->a = 1; - ntm->c = 0; - node->storage = ntm; -} - -void register_node_type_cmp_tonemap(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_TONEMAP, "Tonemap", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_tonemap_in, cmp_node_tonemap_out); - node_type_size(&ntype, 150, 120, 200); - node_type_init(&ntype, node_composit_init_tonemap); - node_type_storage(&ntype, "NodeTonemap", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_tonemap); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c b/source/blender/nodes/intern/CMP_nodes/CMP_translate.c deleted file mode 100644 index eb69523e7a9..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_translate.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Translate ******************** */ - -static bNodeSocketType cmp_node_translate_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "X", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, - { SOCK_VALUE, 1, "Y", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_translate_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_translate(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) -{ - if(in[0]->data) { - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= pass_on_compbuf(cbuf); - - stackbuf->xof+= (int)floor(in[1]->vec[0]); - stackbuf->yof+= (int)floor(in[2]->vec[0]); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_translate(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_TRANSLATE, "Translate", NODE_CLASS_DISTORT, NODE_OPTIONS, - cmp_node_translate_in, cmp_node_translate_out); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, node_composit_exec_translate); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c deleted file mode 100644 index 1e1c8c61b46..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_valToRgb.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** VALTORGB ******************** */ -static bNodeSocketType cmp_node_valtorgb_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_valtorgb_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_colorband_composit(bNode *node, float *out, float *in) -{ - do_colorband(node->storage, in[0], out); -} - -static void node_composit_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: fac */ - /* stack order out: col, alpha */ - - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) - return; - - if(node->storage) { - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - do_colorband(node->storage, in[0]->vec[0], out[0]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - - composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_colorband_composit, CB_VAL); - - out[0]->data= stackbuf; - - if(out[1]->hasoutput) - out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A); - - } - } -} - -static void node_composit_init_valtorgb(bNode* node) -{ - node->storage= add_colorband(1); -} - -void register_node_type_cmp_valtorgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - cmp_node_valtorgb_in, cmp_node_valtorgb_out); - node_type_size(&ntype, 240, 200, 300); - node_type_init(&ntype, node_composit_init_valtorgb); - node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_valtorgb); - - nodeRegisterType(lb, &ntype); -} - - - -/* **************** RGBTOBW ******************** */ -static bNodeSocketType cmp_node_rgbtobw_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_rgbtobw_out[]= { - { SOCK_VALUE, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void do_rgbtobw(bNode *UNUSED(node), float *out, float *in) -{ - out[0]= in[0]*0.35f + in[1]*0.45f + in[2]*0.2f; -} - -static void node_composit_exec_rgbtobw(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order out: bw */ - /* stack order in: col */ - - if(out[0]->hasoutput==0) - return; - - /* input no image? then only color operation */ - if(in[0]->data==NULL) { - do_rgbtobw(node, out[0]->vec, in[0]->vec); - } - else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); /* allocs */ - - composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_rgbtobw, CB_RGBA); - - out[0]->data= stackbuf; - } -} - -void register_node_type_cmp_rgbtobw(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0, - cmp_node_rgbtobw_in, cmp_node_rgbtobw_out); - node_type_size(&ntype, 80, 40, 120); - node_type_exec(&ntype, node_composit_exec_rgbtobw); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_value.c b/source/blender/nodes/intern/CMP_nodes/CMP_value.c deleted file mode 100644 index 46762065bb4..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_value.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_value.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - -/* **************** VALUE ******************** */ -static bNodeSocketType cmp_node_value_out[]= { - { SOCK_VALUE, 0, "Value", 0.5f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, - { -1, 0, "" } -}; - -static void node_composit_exec_value(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - - out[0]->vec[0]= sock->ns.vec[0]; -} - -void register_node_type_cmp_value(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, cmp_node_value_out); - node_type_size(&ntype, 80, 40, 120); - node_type_exec(&ntype, node_composit_exec_value); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c b/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c deleted file mode 100644 index c43bfa2435a..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_vecBlur.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** VECTOR BLUR ******************** */ -static bNodeSocketType cmp_node_vecblur_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Speed", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_vecblur_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - - -static void node_composit_exec_vecblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - NodeBlurData *nbd= node->storage; - CompBuf *new, *img= in[0]->data, *vecbuf= in[2]->data, *zbuf= in[1]->data; - - if(img==NULL || vecbuf==NULL || zbuf==NULL || out[0]->hasoutput==0) - return; - if(vecbuf->x!=img->x || vecbuf->y!=img->y) { - printf("ERROR: cannot do different sized vecbuf yet\n"); - return; - } - if(vecbuf->type!=CB_VEC4) { - printf("ERROR: input should be vecbuf\n"); - return; - } - if(zbuf->type!=CB_VAL) { - printf("ERROR: input should be zbuf\n"); - return; - } - if(zbuf->x!=img->x || zbuf->y!=img->y) { - printf("ERROR: cannot do different sized zbuf yet\n"); - return; - } - - /* allow the input image to be of another type */ - img= typecheck_compbuf(in[0]->data, CB_RGBA); - - new= dupalloc_compbuf(img); - - /* call special zbuffer version */ - RE_zbuf_accumulate_vecblur(nbd, img->x, img->y, new->rect, img->rect, vecbuf->rect, zbuf->rect); - - out[0]->data= new; - - if(img!=in[0]->data) - free_compbuf(img); -} - -static void node_composit_init_vecblur(bNode* node) -{ - NodeBlurData *nbd= MEM_callocN(sizeof(NodeBlurData), "node blur data"); - node->storage= nbd; - nbd->samples= 32; - nbd->fac= 1.0f; -} - -/* custom1: itterations, custom2: maxspeed (0 = nolimit) */ -void register_node_type_cmp_vecblur(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_VECBLUR, "Vector Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS, - cmp_node_vecblur_in, cmp_node_vecblur_out); - node_type_size(&ntype, 120, 80, 200); - node_type_init(&ntype, node_composit_init_vecblur); - node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_vecblur); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c deleted file mode 100644 index c4e719efbf9..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_viewer.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** VIEWER ******************** */ -static bNodeSocketType cmp_node_viewer_in[]= { - { SOCK_RGBA, 1, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -static void node_composit_exec_viewer(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - /* image assigned to output */ - /* stack order input sockets: col, alpha, z */ - - if(node->id && (node->flag & NODE_DO_OUTPUT)) { /* only one works on out */ - RenderData *rd= data; - Image *ima= (Image *)node->id; - ImBuf *ibuf; - CompBuf *cbuf, *tbuf; - int rectx, recty; - void *lock; - - BKE_image_user_calc_frame(node->storage, rd->cfra, 0); - - /* always returns for viewer image, but we check nevertheless */ - ibuf= BKE_image_acquire_ibuf(ima, node->storage, &lock); - if(ibuf==NULL) { - printf("node_composit_exec_viewer error\n"); - BKE_image_release_ibuf(ima, lock); - return; - } - - /* free all in ibuf */ - imb_freerectImBuf(ibuf); - imb_freerectfloatImBuf(ibuf); - IMB_freezbuffloatImBuf(ibuf); - - /* get size */ - tbuf= in[0]->data?in[0]->data:(in[1]->data?in[1]->data:in[2]->data); - if(tbuf==NULL) { - rectx= 320; recty= 256; - } - else { - rectx= tbuf->x; - recty= tbuf->y; - } - - /* make ibuf, and connect to ima */ - ibuf->x= rectx; - ibuf->y= recty; - imb_addrectfloatImBuf(ibuf); - - ima->ok= IMA_OK_LOADED; - - /* now we combine the input with ibuf */ - cbuf= alloc_compbuf(rectx, recty, CB_RGBA, 0); /* no alloc*/ - cbuf->rect= ibuf->rect_float; - - /* when no alpha, we can simply copy */ - if(in[1]->data==NULL) { - composit1_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, do_copy_rgba, CB_RGBA); - } - else - composit2_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, do_copy_a_rgba, CB_RGBA, CB_VAL); - - /* zbuf option */ - if(in[2]->data) { - CompBuf *zbuf= alloc_compbuf(rectx, recty, CB_VAL, 1); - ibuf->zbuf_float= zbuf->rect; - ibuf->mall |= IB_zbuffloat; - - composit1_pixel_processor(node, zbuf, in[2]->data, in[2]->vec, do_copy_value, CB_VAL); - - /* free compbuf, but not the rect */ - zbuf->malloc= 0; - free_compbuf(zbuf); - } - - BKE_image_release_ibuf(ima, lock); - - generate_preview(data, node, cbuf); - free_compbuf(cbuf); - - } - else if(in[0]->data) { - generate_preview(data, node, in[0]->data); - } -} - -static void node_composit_init_viewer(bNode* node) -{ - ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); - node->storage= iuser; - iuser->sfra= 1; - iuser->fie_ima= 2; - iuser->ok= 1; -} - -void register_node_type_cmp_viewer(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_VIEWER, "Viewer", NODE_CLASS_OUTPUT, NODE_PREVIEW, - cmp_node_viewer_in, NULL); - node_type_size(&ntype, 80, 60, 200); - node_type_init(&ntype, node_composit_init_viewer); - node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_composit_exec_viewer); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c b/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c deleted file mode 100644 index 0fae0fcd4d5..00000000000 --- a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_nodes/CMP_zcombine.c - * \ingroup cmpnodes - */ - - -#include "../CMP_util.h" - - -/* **************** Z COMBINE ******************** */ - /* lazy coder note: node->custom2 is abused to send signal */ -static bNodeSocketType cmp_node_zcombine_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 10000.0f}, - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 10000.0f}, - { -1, 0, "" } -}; -static bNodeSocketType cmp_node_zcombine_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Z", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 10000.0f}, - { -1, 0, "" } -}; - -static void do_zcombine(bNode *node, float *out, float *src1, float *z1, float *src2, float *z2) -{ - float alpha; - float malpha; - - if(*z1 <= *z2) { - if (node->custom1) { - // use alpha in combine operation - alpha= src1[3]; - malpha= 1.0f - alpha; - out[0]= malpha*src2[0] + alpha*src1[0]; - out[1]= malpha*src2[1] + alpha*src1[1]; - out[2]= malpha*src2[2] + alpha*src1[2]; - out[3]= malpha*src2[3] + alpha*src1[3]; - } - else { - // do combination based solely on z value - QUATCOPY(out, src1); - } - } - else { - if (node->custom1) { - // use alpha in combine operation - alpha= src2[3]; - malpha= 1.0f - alpha; - out[0]= malpha*src1[0] + alpha*src2[0]; - out[1]= malpha*src1[1] + alpha*src2[1]; - out[2]= malpha*src1[2] + alpha*src2[2]; - out[3]= malpha*src1[3] + alpha*src2[3]; - } - else { - // do combination based solely on z value - QUATCOPY(out, src1); - } - - if(node->custom2) - *z1= *z2; - } -} - -static void do_zcombine_mask(bNode *node, float *out, float *z1, float *z2) -{ - if(*z1 > *z2) { - *out= 1.0f; - if(node->custom2) - *z1= *z2; - } -} - -static void do_zcombine_add(bNode *node, float *out, float *col1, float *col2, float *acol) -{ - float alpha; - float malpha; - - if (node->custom1) { - // use alpha in combine operation, antialiased mask in used here just as hint for the z value - if (*acol>0.0f) { - alpha= col2[3]; - malpha= 1.0f - alpha; - - - out[0]= malpha*col1[0] + alpha*col2[0]; - out[1]= malpha*col1[1] + alpha*col2[1]; - out[2]= malpha*col1[2] + alpha*col2[2]; - out[3]= malpha*col1[3] + alpha*col2[3]; - } - else { - alpha= col1[3]; - malpha= 1.0f - alpha; - - - out[0]= malpha*col2[0] + alpha*col1[0]; - out[1]= malpha*col2[1] + alpha*col1[1]; - out[2]= malpha*col2[2] + alpha*col1[2]; - out[3]= malpha*col2[3] + alpha*col1[3]; - } - } - else { - // do combination based solely on z value but with antialiased mask - alpha = *acol; - malpha= 1.0f - alpha; - - out[0]= malpha*col1[0] + alpha*col2[0]; - out[1]= malpha*col1[1] + alpha*col2[1]; - out[2]= malpha*col1[2] + alpha*col2[2]; - out[3]= malpha*col1[3] + alpha*col2[3]; - } -} - -static void node_composit_exec_zcombine(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - RenderData *rd= data; - CompBuf *cbuf= in[0]->data; - CompBuf *zbuf; - - /* stack order in: col z col z */ - /* stack order out: col z */ - if(out[0]->hasoutput==0 && out[1]->hasoutput==0) - return; - - /* no input image; do nothing now */ - if(in[0]->data==NULL) { - return; - } - - if(out[1]->hasoutput) { - /* copy or make a buffer for for the first z value, here we write result in */ - if(in[1]->data) - zbuf= dupalloc_compbuf(in[1]->data); - else { - float *zval; - int tot= cbuf->x*cbuf->y; - - zbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); - for(zval= zbuf->rect; tot; tot--, zval++) - *zval= in[1]->vec[0]; - } - /* lazy coder hack */ - node->custom2= 1; - out[1]->data= zbuf; - } - else { - node->custom2= 0; - zbuf= in[1]->data; - } - - if(rd->scemode & R_FULL_SAMPLE) { - /* make output size of first input image */ - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); // allocs - - composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, zbuf, in[1]->vec, in[2]->data, in[2]->vec, - in[3]->data, in[3]->vec, do_zcombine, CB_RGBA, CB_VAL, CB_RGBA, CB_VAL); - - out[0]->data= stackbuf; - } - else { - /* make output size of first input image */ - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - CompBuf *mbuf; - float *fp; - int x; - char *aabuf; - - - /* make a mask based on comparison, optionally write zvalue */ - mbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); - composit2_pixel_processor(node, mbuf, zbuf, in[1]->vec, in[3]->data, in[3]->vec, do_zcombine_mask, CB_VAL, CB_VAL); - - /* convert to char */ - aabuf= MEM_mallocN(cbuf->x*cbuf->y, "aa buf"); - fp= mbuf->rect; - for(x= cbuf->x*cbuf->y-1; x>=0; x--) - if(fp[x]==0.0f) aabuf[x]= 0; - else aabuf[x]= 255; - - antialias_tagbuf(cbuf->x, cbuf->y, aabuf); - - /* convert to float */ - fp= mbuf->rect; - for(x= cbuf->x*cbuf->y-1; x>=0; x--) - if(aabuf[x]>1) - fp[x]= (1.0f/255.0f)*(float)aabuf[x]; - - composit3_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[2]->data, in[2]->vec, mbuf, NULL, - do_zcombine_add, CB_RGBA, CB_RGBA, CB_VAL); - /* free */ - free_compbuf(mbuf); - MEM_freeN(aabuf); - - out[0]->data= stackbuf; - } - -} - -void register_node_type_cmp_zcombine(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, CMP_NODE_ZCOMBINE, "Z Combine", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - cmp_node_zcombine_in, cmp_node_zcombine_out); - node_type_size(&ntype, 80, 40, 120); - node_type_exec(&ntype, node_composit_exec_zcombine); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c deleted file mode 100644 index a763f34a644..00000000000 --- a/source/blender/nodes/intern/CMP_util.c +++ /dev/null @@ -1,1413 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_util.c - * \ingroup nodes - */ - - -#include "CMP_util.h" - -CompBuf *alloc_compbuf(int sizex, int sizey, int type, int alloc) -{ - CompBuf *cbuf= MEM_callocN(sizeof(CompBuf), "compbuf"); - - cbuf->x= sizex; - cbuf->y= sizey; - cbuf->xrad= sizex/2; - cbuf->yrad= sizey/2; - - cbuf->type= type; - if(alloc) { - if(cbuf->type==CB_RGBA) - cbuf->rect= MEM_mapallocN(4*sizeof(float)*sizex*sizey, "compbuf RGBA rect"); - else if(cbuf->type==CB_VEC3) - cbuf->rect= MEM_mapallocN(3*sizeof(float)*sizex*sizey, "compbuf Vector3 rect"); - else if(cbuf->type==CB_VEC2) - cbuf->rect= MEM_mapallocN(2*sizeof(float)*sizex*sizey, "compbuf Vector2 rect"); - else - cbuf->rect= MEM_mapallocN(sizeof(float)*sizex*sizey, "compbuf Fac rect"); - cbuf->malloc= 1; - } - cbuf->disprect.xmin= 0; - cbuf->disprect.ymin= 0; - cbuf->disprect.xmax= sizex; - cbuf->disprect.ymax= sizey; - - return cbuf; -} - -CompBuf *dupalloc_compbuf(CompBuf *cbuf) -{ - CompBuf *dupbuf= alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 1); - if(dupbuf) { - memmove(dupbuf->rect, cbuf->rect, cbuf->type*sizeof(float)*cbuf->x*cbuf->y); - - dupbuf->xof= cbuf->xof; - dupbuf->yof= cbuf->yof; - } - return dupbuf; -} - -/* instead of reference counting, we create a list */ -CompBuf *pass_on_compbuf(CompBuf *cbuf) -{ - CompBuf *dupbuf= (cbuf)? alloc_compbuf(cbuf->x, cbuf->y, cbuf->type, 0): NULL; - CompBuf *lastbuf; - - if(dupbuf) { - dupbuf->rect= cbuf->rect; - dupbuf->xof= cbuf->xof; - dupbuf->yof= cbuf->yof; - dupbuf->malloc= 0; - - /* get last buffer in list, and append dupbuf */ - for(lastbuf= cbuf; lastbuf; lastbuf= lastbuf->next) - if(lastbuf->next==NULL) - break; - lastbuf->next= dupbuf; - dupbuf->prev= lastbuf; - } - return dupbuf; -} - - -void free_compbuf(CompBuf *cbuf) -{ - /* check referencing, then remove from list and set malloc tag */ - if(cbuf->prev || cbuf->next) { - if(cbuf->prev) - cbuf->prev->next= cbuf->next; - if(cbuf->next) - cbuf->next->prev= cbuf->prev; - if(cbuf->malloc) { - if(cbuf->prev) - cbuf->prev->malloc= 1; - else - cbuf->next->malloc= 1; - cbuf->malloc= 0; - } - } - - if(cbuf->malloc && cbuf->rect) - MEM_freeN(cbuf->rect); - - MEM_freeN(cbuf); -} - -void print_compbuf(char *str, CompBuf *cbuf) -{ - printf("Compbuf %s %d %d %p\n", str, cbuf->x, cbuf->y, (void *)cbuf->rect); - -} - -void compbuf_set_node(CompBuf *cbuf, bNode *node) -{ - if (cbuf) cbuf->node = node; -} - -/* used for disabling node (similar code in node_draw.c for disable line and node_edit for untangling nodes) */ -void node_compo_pass_on(bNode *node, bNodeStack **nsin, bNodeStack **nsout) -{ - CompBuf *valbuf= NULL, *colbuf= NULL, *vecbuf= NULL; - bNodeSocket *sock; - int a; - - /* connect the first value buffer in with first value out */ - /* connect the first RGBA buffer in with first RGBA out */ - - /* test the inputs */ - for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { - if(nsin[a]->data) { - CompBuf *cbuf= nsin[a]->data; - if(cbuf->type==1 && valbuf==NULL) valbuf= cbuf; - if(cbuf->type==3 && vecbuf==NULL) vecbuf= cbuf; - if(cbuf->type==4 && colbuf==NULL) colbuf= cbuf; - } - } - - /* outputs */ - if(valbuf || colbuf || vecbuf) { - for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { - if(nsout[a]->hasoutput) { - if(sock->type==SOCK_VALUE && valbuf) { - nsout[a]->data= pass_on_compbuf(valbuf); - valbuf= NULL; - } - if(sock->type==SOCK_VECTOR && vecbuf) { - nsout[a]->data= pass_on_compbuf(vecbuf); - vecbuf= NULL; - } - if(sock->type==SOCK_RGBA && colbuf) { - nsout[a]->data= pass_on_compbuf(colbuf); - colbuf= NULL; - } - } - } - } -} - - -CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, int type) -{ - CompBuf *cbuf; - rcti disprect= *drect; - float *outfp; - int dx, y; - - if(disprect.xmax>rectx) disprect.xmax= rectx; - if(disprect.ymax>recty) disprect.ymax= recty; - if(disprect.xmin>= disprect.xmax) return NULL; - if(disprect.ymin>= disprect.ymax) return NULL; - - cbuf= alloc_compbuf(disprect.xmax-disprect.xmin, disprect.ymax-disprect.ymin, type, 1); - outfp= cbuf->rect; - rectf += type*(disprect.ymin*rectx + disprect.xmin); - dx= type*cbuf->x; - for(y=cbuf->y; y>0; y--, outfp+=dx, rectf+=type*rectx) - memcpy(outfp, rectf, sizeof(float)*dx); - - return cbuf; -} - -CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy) -{ - CompBuf *outbuf; - float *rectf, *newrectf, *rf; - int x, y, c, pixsize= inbuf->type; - int ofsx, ofsy, stepx, stepy; - - if(inbuf->x==newx && inbuf->y==newy) - return dupalloc_compbuf(inbuf); - - outbuf= alloc_compbuf(newx, newy, inbuf->type, 1); - newrectf= outbuf->rect; - - stepx = (65536.0 * (inbuf->x - 1.0) / (newx - 1.0)) + 0.5; - stepy = (65536.0 * (inbuf->y - 1.0) / (newy - 1.0)) + 0.5; - ofsy = 32768; - - for (y = newy; y > 0 ; y--){ - rectf = inbuf->rect; - rectf += pixsize * (ofsy >> 16) * inbuf->x; - - ofsy += stepy; - ofsx = 32768; - - for (x = newx ; x>0 ; x--) { - - rf= rectf + pixsize*(ofsx >> 16); - for(c=0; ctype!=type) { - CompBuf *outbuf; - float *inrf, *outrf; - int x; - - outbuf= alloc_compbuf(inbuf->x, inbuf->y, type, 1); - - /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ - outbuf->xof= inbuf->xof; - outbuf->yof= inbuf->yof; - - if(inbuf->rect_procedural) { - outbuf->rect_procedural= inbuf->rect_procedural; - VECCOPY(outbuf->procedural_size, inbuf->procedural_size); - VECCOPY(outbuf->procedural_offset, inbuf->procedural_offset); - outbuf->procedural_type= inbuf->procedural_type; - outbuf->node= inbuf->node; - return outbuf; - } - - inrf= inbuf->rect; - outrf= outbuf->rect; - x= inbuf->x*inbuf->y; - - if(type==CB_VAL) { - if(inbuf->type==CB_VEC2) { - for(; x>0; x--, outrf+= 1, inrf+= 2) - *outrf= 0.5f*(inrf[0]+inrf[1]); - } - else if(inbuf->type==CB_VEC3) { - for(; x>0; x--, outrf+= 1, inrf+= 3) - *outrf= 0.333333f*(inrf[0]+inrf[1]+inrf[2]); - } - else if(inbuf->type==CB_RGBA) { - for(; x>0; x--, outrf+= 1, inrf+= 4) - *outrf= inrf[0]*0.35f + inrf[1]*0.45f + inrf[2]*0.2f; - } - } - else if(type==CB_VEC2) { - if(inbuf->type==CB_VAL) { - for(; x>0; x--, outrf+= 2, inrf+= 1) { - outrf[0]= inrf[0]; - outrf[1]= inrf[0]; - } - } - else if(inbuf->type==CB_VEC3) { - for(; x>0; x--, outrf+= 2, inrf+= 3) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - } - } - else if(inbuf->type==CB_RGBA) { - for(; x>0; x--, outrf+= 2, inrf+= 4) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - } - } - } - else if(type==CB_VEC3) { - if(inbuf->type==CB_VAL) { - for(; x>0; x--, outrf+= 3, inrf+= 1) { - outrf[0]= inrf[0]; - outrf[1]= inrf[0]; - outrf[2]= inrf[0]; - } - } - else if(inbuf->type==CB_VEC2) { - for(; x>0; x--, outrf+= 3, inrf+= 2) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - outrf[2]= 0.0f; - } - } - else if(inbuf->type==CB_RGBA) { - for(; x>0; x--, outrf+= 3, inrf+= 4) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - outrf[2]= inrf[2]; - } - } - } - else if(type==CB_RGBA) { - if(inbuf->type==CB_VAL) { - for(; x>0; x--, outrf+= 4, inrf+= 1) { - outrf[0]= inrf[0]; - outrf[1]= inrf[0]; - outrf[2]= inrf[0]; - outrf[3]= 1.0f; - } - } - else if(inbuf->type==CB_VEC2) { - for(; x>0; x--, outrf+= 4, inrf+= 2) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - outrf[2]= 0.0f; - outrf[3]= 1.0f; - } - } - else if(inbuf->type==CB_VEC3) { - for(; x>0; x--, outrf+= 4, inrf+= 3) { - outrf[0]= inrf[0]; - outrf[1]= inrf[1]; - outrf[2]= inrf[2]; - outrf[3]= 1.0f; - } - } - } - - return outbuf; - } - return inbuf; -} - -static float *compbuf_get_pixel(CompBuf *cbuf, float *defcol, float *use, int x, int y, int xrad, int yrad) -{ - if(cbuf) { - if(cbuf->rect_procedural) { - cbuf->rect_procedural(cbuf, use, (float)x/(float)xrad, (float)y/(float)yrad); - return use; - } - else { - static float col[4]= {0.0f, 0.0f, 0.0f, 0.0f}; - - /* map coords */ - x-= cbuf->xof; - y-= cbuf->yof; - - if(y<-cbuf->yrad || y>= -cbuf->yrad+cbuf->y) return col; - if(x<-cbuf->xrad || x>= -cbuf->xrad+cbuf->x) return col; - - return cbuf->rect + cbuf->type*( (cbuf->yrad+y)*cbuf->x + (cbuf->xrad+x) ); - } - } - else return defcol; -} - -/* **************************************************** */ - -/* Pixel-to-Pixel operation, 1 Image in, 1 out */ -void composit1_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, - void (*func)(bNode *, float *, float *), - int src_type) -{ - CompBuf *src_use; - float *outfp=out->rect, *srcfp; - float color[4]; /* local color if compbuf is procedural */ - int xrad, yrad, x, y; - - src_use= typecheck_compbuf(src_buf, src_type); - - xrad= out->xrad; - yrad= out->yrad; - - for(y= -yrad; y<-yrad+out->y; y++) { - for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { - srcfp= compbuf_get_pixel(src_use, src_col, color, x, y, xrad, yrad); - func(node, outfp, srcfp); - } - } - - if(src_use!=src_buf) - free_compbuf(src_use); -} - -/* Pixel-to-Pixel operation, 2 Images in, 1 out */ -void composit2_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, - CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *), - int src_type, int fac_type) -{ - CompBuf *src_use, *fac_use; - float *outfp=out->rect, *srcfp, *facfp; - float color[4]; /* local color if compbuf is procedural */ - int xrad, yrad, x, y; - - src_use= typecheck_compbuf(src_buf, src_type); - fac_use= typecheck_compbuf(fac_buf, fac_type); - - xrad= out->xrad; - yrad= out->yrad; - - for(y= -yrad; y<-yrad+out->y; y++) { - for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { - srcfp= compbuf_get_pixel(src_use, src_col, color, x, y, xrad, yrad); - facfp= compbuf_get_pixel(fac_use, fac, color, x, y, xrad, yrad); - - func(node, outfp, srcfp, facfp); - } - } - if(src_use!=src_buf) - free_compbuf(src_use); - if(fac_use!=fac_buf) - free_compbuf(fac_use); -} - -/* Pixel-to-Pixel operation, 3 Images in, 1 out */ -void composit3_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *src2_buf, float *src2_col, - CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *, float *), - int src1_type, int src2_type, int fac_type) -{ - CompBuf *src1_use, *src2_use, *fac_use; - float *outfp=out->rect, *src1fp, *src2fp, *facfp; - float color[4]; /* local color if compbuf is procedural */ - int xrad, yrad, x, y; - - src1_use= typecheck_compbuf(src1_buf, src1_type); - src2_use= typecheck_compbuf(src2_buf, src2_type); - fac_use= typecheck_compbuf(fac_buf, fac_type); - - xrad= out->xrad; - yrad= out->yrad; - - for(y= -yrad; y<-yrad+out->y; y++) { - for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { - src1fp= compbuf_get_pixel(src1_use, src1_col, color, x, y, xrad, yrad); - src2fp= compbuf_get_pixel(src2_use, src2_col, color, x, y, xrad, yrad); - facfp= compbuf_get_pixel(fac_use, fac, color, x, y, xrad, yrad); - - func(node, outfp, src1fp, src2fp, facfp); - } - } - - if(src1_use!=src1_buf) - free_compbuf(src1_use); - if(src2_use!=src2_buf) - free_compbuf(src2_use); - if(fac_use!=fac_buf) - free_compbuf(fac_use); -} - -/* Pixel-to-Pixel operation, 4 Images in, 1 out */ -void composit4_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *fac1_buf, float *fac1, - CompBuf *src2_buf, float *src2_col, CompBuf *fac2_buf, float *fac2, - void (*func)(bNode *, float *, float *, float *, float *, float *), - int src1_type, int fac1_type, int src2_type, int fac2_type) -{ - CompBuf *src1_use, *src2_use, *fac1_use, *fac2_use; - float *outfp=out->rect, *src1fp, *src2fp, *fac1fp, *fac2fp; - float color[4]; /* local color if compbuf is procedural */ - int xrad, yrad, x, y; - - src1_use= typecheck_compbuf(src1_buf, src1_type); - src2_use= typecheck_compbuf(src2_buf, src2_type); - fac1_use= typecheck_compbuf(fac1_buf, fac1_type); - fac2_use= typecheck_compbuf(fac2_buf, fac2_type); - - xrad= out->xrad; - yrad= out->yrad; - - for(y= -yrad; y<-yrad+out->y; y++) { - for(x= -xrad; x<-xrad+out->x; x++, outfp+=out->type) { - src1fp= compbuf_get_pixel(src1_use, src1_col, color, x, y, xrad, yrad); - src2fp= compbuf_get_pixel(src2_use, src2_col, color, x, y, xrad, yrad); - fac1fp= compbuf_get_pixel(fac1_use, fac1, color, x, y, xrad, yrad); - fac2fp= compbuf_get_pixel(fac2_use, fac2, color, x, y, xrad, yrad); - - func(node, outfp, src1fp, fac1fp, src2fp, fac2fp); - } - } - - if(src1_use!=src1_buf) - free_compbuf(src1_use); - if(src2_use!=src2_buf) - free_compbuf(src2_use); - if(fac1_use!=fac1_buf) - free_compbuf(fac1_use); - if(fac2_use!=fac2_buf) - free_compbuf(fac2_use); -} - - -CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel) -{ - CompBuf *valbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); - float *valf, *rectf; - int tot; - - /* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */ - valbuf->xof= cbuf->xof; - valbuf->yof= cbuf->yof; - - valf= valbuf->rect; - - /* defaults to returning alpha channel */ - if ((channel < CHAN_R) || (channel > CHAN_A)) channel = CHAN_A; - - rectf= cbuf->rect + channel; - - for(tot= cbuf->x*cbuf->y; tot>0; tot--, valf++, rectf+=4) - *valf= *rectf; - - return valbuf; -} - -static CompBuf *generate_procedural_preview(CompBuf *cbuf, int newx, int newy) -{ - CompBuf *outbuf; - float *outfp; - int xrad, yrad, x, y; - - outbuf= alloc_compbuf(newx, newy, CB_RGBA, 1); - - outfp= outbuf->rect; - xrad= outbuf->xrad; - yrad= outbuf->yrad; - - for(y= -yrad; y<-yrad+outbuf->y; y++) - for(x= -xrad; x<-xrad+outbuf->x; x++, outfp+=outbuf->type) - cbuf->rect_procedural(cbuf, outfp, (float)x/(float)xrad, (float)y/(float)yrad); - - return outbuf; -} - -void generate_preview(void *data, bNode *node, CompBuf *stackbuf) -{ - RenderData *rd= data; - bNodePreview *preview= node->preview; - int xsize, ysize; - int color_manage= rd->color_mgt_flag & R_COLOR_MANAGEMENT; - unsigned char *rect; - - if(preview && stackbuf) { - CompBuf *cbuf, *stackbuf_use; - - if(stackbuf->rect==NULL && stackbuf->rect_procedural==NULL) return; - - stackbuf_use= typecheck_compbuf(stackbuf, CB_RGBA); - - if(stackbuf->x > stackbuf->y) { - xsize= 140; - ysize= (140*stackbuf->y)/stackbuf->x; - } - else { - ysize= 140; - xsize= (140*stackbuf->x)/stackbuf->y; - } - - if(stackbuf_use->rect_procedural) - cbuf= generate_procedural_preview(stackbuf_use, xsize, ysize); - else - cbuf= scalefast_compbuf(stackbuf_use, xsize, ysize); - - /* convert to byte for preview */ - rect= MEM_callocN(sizeof(unsigned char)*4*xsize*ysize, "bNodePreview.rect"); - - if(color_manage) - floatbuf_to_srgb_byte(cbuf->rect, rect, 0, xsize, 0, ysize, xsize); - else - floatbuf_to_byte(cbuf->rect, rect, 0, xsize, 0, ysize, xsize); - - free_compbuf(cbuf); - if(stackbuf_use!=stackbuf) - free_compbuf(stackbuf_use); - - BLI_lock_thread(LOCK_PREVIEW); - - if(preview->rect) - MEM_freeN(preview->rect); - preview->xsize= xsize; - preview->ysize= ysize; - preview->rect= rect; - - BLI_unlock_thread(LOCK_PREVIEW); - } -} - -void do_rgba_to_yuva(bNode *UNUSED(node), float *out, float *in) -{ - rgb_to_yuv(in[0],in[1],in[2], &out[0], &out[1], &out[2]); - out[3]=in[3]; -} - -void do_rgba_to_hsva(bNode *UNUSED(node), float *out, float *in) -{ - rgb_to_hsv(in[0],in[1],in[2], &out[0], &out[1], &out[2]); - out[3]=in[3]; -} - -void do_rgba_to_ycca(bNode *UNUSED(node), float *out, float *in) -{ - rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - out[3]=in[3]; -} - -void do_yuva_to_rgba(bNode *UNUSED(node), float *out, float *in) -{ - yuv_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2]); - out[3]=in[3]; -} - -void do_hsva_to_rgba(bNode *UNUSED(node), float *out, float *in) -{ - hsv_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2]); - out[3]=in[3]; -} - -void do_ycca_to_rgba(bNode *UNUSED(node), float *out, float *in) -{ - ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601); - out[3]=in[3]; -} - -void do_copy_rgba(bNode *UNUSED(node), float *out, float *in) -{ - QUATCOPY(out, in); -} - -void do_copy_rgb(bNode *UNUSED(node), float *out, float *in) -{ - VECCOPY(out, in); - out[3]= 1.0f; -} - -void do_copy_value(bNode *UNUSED(node), float *out, float *in) -{ - out[0]= in[0]; -} - -void do_copy_a_rgba(bNode *UNUSED(node), float *out, float *in, float *fac) -{ - VECCOPY(out, in); - out[3]= *fac; -} - -/* only accepts RGBA buffers */ -void gamma_correct_compbuf(CompBuf *img, int inversed) -{ - float *drect; - int x; - - if(img->type!=CB_RGBA) return; - - drect= img->rect; - if(inversed) { - for(x=img->x*img->y; x>0; x--, drect+=4) { - if(drect[0]>0.0f) drect[0]= sqrt(drect[0]); else drect[0]= 0.0f; - if(drect[1]>0.0f) drect[1]= sqrt(drect[1]); else drect[1]= 0.0f; - if(drect[2]>0.0f) drect[2]= sqrt(drect[2]); else drect[2]= 0.0f; - } - } - else { - for(x=img->x*img->y; x>0; x--, drect+=4) { - if(drect[0]>0.0f) drect[0]*= drect[0]; else drect[0]= 0.0f; - if(drect[1]>0.0f) drect[1]*= drect[1]; else drect[1]= 0.0f; - if(drect[2]>0.0f) drect[2]*= drect[2]; else drect[2]= 0.0f; - } - } -} - -void premul_compbuf(CompBuf *img, int inversed) -{ - float *drect; - int x; - - if(img->type!=CB_RGBA) return; - - drect= img->rect; - if(inversed) { - for(x=img->x*img->y; x>0; x--, drect+=4) { - if(fabs(drect[3]) < 1e-5f) { - drect[0]= 0.0f; - drect[1]= 0.0f; - drect[2]= 0.0f; - } - else { - drect[0] /= drect[3]; - drect[1] /= drect[3]; - drect[2] /= drect[3]; - } - } - } - else { - for(x=img->x*img->y; x>0; x--, drect+=4) { - drect[0] *= drect[3]; - drect[1] *= drect[3]; - drect[2] *= drect[3]; - } - } -} - - - -/* - * 2D Fast Hartley Transform, used for convolution - */ - -typedef float fREAL; - -// returns next highest power of 2 of x, as well it's log2 in L2 -static unsigned int nextPow2(unsigned int x, unsigned int* L2) -{ - unsigned int pw, x_notpow2 = x & (x-1); - *L2 = 0; - while (x>>=1) ++(*L2); - pw = 1 << (*L2); - if (x_notpow2) { (*L2)++; pw<<=1; } - return pw; -} - -//------------------------------------------------------------------------------ - -// from FXT library by Joerg Arndt, faster in order bitreversal -// use: r = revbin_upd(r, h) where h = N>>1 -static unsigned int revbin_upd(unsigned int r, unsigned int h) -{ - while (!((r^=h)&h)) h >>= 1; - return r; -} -//------------------------------------------------------------------------------ -static void FHT(fREAL* data, unsigned int M, unsigned int inverse) -{ - double tt, fc, dc, fs, ds, a = M_PI; - fREAL t1, t2; - int n2, bd, bl, istep, k, len = 1 << M, n = 1; - - int i, j = 0; - unsigned int Nh = len >> 1; - for (i=1;i<(len-1);++i) { - j = revbin_upd(j, Nh); - if (j>i) { - t1 = data[i]; - data[i] = data[j]; - data[j] = t1; - } - } - - do { - fREAL* data_n = &data[n]; - - istep = n << 1; - for (k=0; k> 1; - if (n>2) { - fc = dc = cos(a); - fs = ds = sqrt(1.0 - fc*fc); //sin(a); - bd = n-2; - for (bl=1; bl1) { - for (k=n2; k log2 of width/height, - nzp -> the row where zero pad data starts, - inverse -> see above */ -static void FHT2D(fREAL *data, unsigned int Mx, unsigned int My, - unsigned int nzp, unsigned int inverse) -{ - unsigned int i, j, Nx, Ny, maxy; - fREAL t; - - Nx = 1 << Mx; - Ny = 1 << My; - - // rows (forward transform skips 0 pad data) - maxy = inverse ? Ny : nzp; - for (j=0; j0; i++) { - #define pred(k) (((k & Nym) << Mx) + (k >> My)) - for (j=pred(i); j>i; j=pred(j)); - if (j < i) continue; - for (k=i, j=pred(i); j!=i; k=j, j=pred(j), stm--) - { t=data[j], data[j]=data[k], data[k]=t; } - #undef pred - stm--; - } - } - // swap Mx/My & Nx/Ny - i = Nx, Nx = Ny, Ny = i; - i = Mx, Mx = My, My = i; - - // now columns == transposed rows - for (j=0; j> 1); j++) { - unsigned int jm = (Ny - j) & (Ny-1); - unsigned int ji = j << Mx; - unsigned int jmi = jm << Mx; - for (i=0; i<=(Nx >> 1); i++) { - unsigned int im = (Nx - i) & (Nx-1); - fREAL A = data[ji + i]; - fREAL B = data[jmi + i]; - fREAL C = data[ji + im]; - fREAL D = data[jmi + im]; - fREAL E = (fREAL)0.5*((A + D) - (B + C)); - data[ji + i] = A - E; - data[jmi + i] = B + E; - data[ji + im] = C + E; - data[jmi + im] = D - E; - } - } - -} - -//------------------------------------------------------------------------------ - -/* 2D convolution calc, d1 *= d2, M/N - > log2 of width/height */ -static void fht_convolve(fREAL* d1, fREAL* d2, unsigned int M, unsigned int N) -{ - fREAL a, b; - unsigned int i, j, k, L, mj, mL; - unsigned int m = 1 << M, n = 1 << N; - unsigned int m2 = 1 << (M-1), n2 = 1 << (N-1); - unsigned int mn2 = m << (N-1); - - d1[0] *= d2[0]; - d1[mn2] *= d2[mn2]; - d1[m2] *= d2[m2]; - d1[m2 + mn2] *= d2[m2 + mn2]; - for (i=1; ix, in1->y, in1->type, 1); - - // convolution result width & height - w2 = 2*in2->x - 1; - h2 = 2*in2->y - 1; - // FFT pow2 required size & log2 - w2 = nextPow2(w2, &log2_w); - h2 = nextPow2(h2, &log2_h); - - // alloc space - data1 = (fREAL*)MEM_callocN(3*w2*h2*sizeof(fREAL), "convolve_fast FHT data1"); - data2 = (fREAL*)MEM_callocN(w2*h2*sizeof(fREAL), "convolve_fast FHT data2"); - - // normalize convolutor - wt[0] = wt[1] = wt[2] = 0.f; - for (y=0; yy; y++) { - colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; - for (x=0; xx; x++) - fRGB_add(wt, colp[x]); - } - if (wt[0] != 0.f) wt[0] = 1.f/wt[0]; - if (wt[1] != 0.f) wt[1] = 1.f/wt[1]; - if (wt[2] != 0.f) wt[2] = 1.f/wt[2]; - for (y=0; yy; y++) { - colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; - for (x=0; xx; x++) - fRGB_colormult(colp[x], wt); - } - - // copy image data, unpacking interleaved RGBA into separate channels - // only need to calc data1 once - - // block add-overlap - hw = in2->x >> 1; - hh = in2->y >> 1; - xbsz = (w2 + 1) - in2->x; - ybsz = (h2 + 1) - in2->y; - nxb = in1->x / xbsz; - if (in1->x % xbsz) nxb++; - nyb = in1->y / ybsz; - if (in1->y % ybsz) nyb++; - for (ybl=0; ybl data1 - for (y=0; yy; y++) { - fp = &data1ch[y*w2]; - colp = (fRGB*)&in2->rect[y*in2->x*in2->type]; - for (x=0; xx; x++) - fp[x] = colp[x][ch]; - } - } - - // in1, channel ch -> data2 - memset(data2, 0, w2*h2*sizeof(fREAL)); - for (y=0; y= in1->y) continue; - fp = &data2[y*w2]; - colp = (fRGB*)&in1->rect[yy*in1->x*in1->type]; - for (x=0; x= in1->x) continue; - fp[x] = colp[xx][ch]; - } - } - - // forward FHT - // zero pad data start is different for each == height+1 - if (!in2done) FHT2D(data1ch, log2_w, log2_h, in2->y+1, 0); - FHT2D(data2, log2_w, log2_h, in2->y+1, 0); - - // FHT2D transposed data, row/col now swapped - // convolve & inverse FHT - fht_convolve(data2, data1ch, log2_h, log2_w); - FHT2D(data2, log2_h, log2_w, 0, 1); - // data again transposed, so in order again - - // overlap-add result - for (y=0; y<(int)h2; y++) { - const int yy = ybl*ybsz + y - hh; - if ((yy < 0) || (yy >= in1->y)) continue; - fp = &data2[y*w2]; - colp = (fRGB*)&rdst->rect[yy*in1->x*in1->type]; - for (x=0; x<(int)w2; x++) { - const int xx = xbl*xbsz + x - hw; - if ((xx < 0) || (xx >= in1->x)) continue; - colp[xx][ch] += fp[x]; - } - } - - } - in2done = 1; - } - } - - MEM_freeN(data2); - MEM_freeN(data1); - memcpy(dst->rect, rdst->rect, sizeof(float)*dst->x*dst->y*dst->type); - free_compbuf(rdst); -} - - -/* - * - * Utility functions qd_* should probably be intergrated better with other functions here. - * - */ -// sets fcol to pixelcolor at (x, y) -void qd_getPixel(CompBuf* src, int x, int y, float* col) -{ - if(src->rect_procedural) { - float bc[4]; - src->rect_procedural(src, bc, (float)x/(float)src->xrad, (float)y/(float)src->yrad); - - switch(src->type){ - /* these fallthrough to get all the channels */ - case CB_RGBA: col[3]=bc[3]; - case CB_VEC3: col[2]=bc[2]; - case CB_VEC2: col[1]=bc[1]; - case CB_VAL: col[0]=bc[0]; - } - } - else if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { - float* bc = &src->rect[(x + y*src->x)*src->type]; - switch(src->type){ - /* these fallthrough to get all the channels */ - case CB_RGBA: col[3]=bc[3]; - case CB_VEC3: col[2]=bc[2]; - case CB_VEC2: col[1]=bc[1]; - case CB_VAL: col[0]=bc[0]; - } - } - else { - switch(src->type){ - /* these fallthrough to get all the channels */ - case CB_RGBA: col[3]=0.0; - case CB_VEC3: col[2]=0.0; - case CB_VEC2: col[1]=0.0; - case CB_VAL: col[0]=0.0; - } - } -} - -// sets pixel (x, y) to color col -void qd_setPixel(CompBuf* src, int x, int y, float* col) -{ - if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { - float* bc = &src->rect[(x + y*src->x)*src->type]; - switch(src->type){ - /* these fallthrough to get all the channels */ - case CB_RGBA: bc[3]=col[3]; - case CB_VEC3: bc[2]=col[2]; - case CB_VEC2: bc[1]=col[1]; - case CB_VAL: bc[0]=col[0]; - } - } -} - -// adds fcol to pixelcolor (x, y) -void qd_addPixel(CompBuf* src, int x, int y, float* col) -{ - if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { - float* bc = &src->rect[(x + y*src->x)*src->type]; - bc[0] += col[0], bc[1] += col[1], bc[2] += col[2]; - } -} - -// multiplies pixel by factor value f -void qd_multPixel(CompBuf* src, int x, int y, float f) -{ - if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { - float* bc = &src->rect[(x + y*src->x)*src->type]; - bc[0] *= f, bc[1] *= f, bc[2] *= f; - } -} - -// bilinear interpolation with wraparound -void qd_getPixelLerpWrap(CompBuf* src, float u, float v, float* col) -{ - const float ufl = floor(u), vfl = floor(v); - const int nx = (int)ufl % src->x, ny = (int)vfl % src->y; - const int x1 = (nx < 0) ? (nx + src->x) : nx; - const int y1 = (ny < 0) ? (ny + src->y) : ny; - const int x2 = (x1 + 1) % src->x, y2 = (y1 + 1) % src->y; - const float* c00 = &src->rect[(x1 + y1*src->x)*src->type]; - const float* c10 = &src->rect[(x2 + y1*src->x)*src->type]; - const float* c01 = &src->rect[(x1 + y2*src->x)*src->type]; - const float* c11 = &src->rect[(x2 + y2*src->x)*src->type]; - const float uf = u - ufl, vf = v - vfl; - const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; - col[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; - if (src->type != CB_VAL) { - col[1] = w00*c00[1] + w10*c10[1] + w01*c01[1] + w11*c11[1]; - col[2] = w00*c00[2] + w10*c10[2] + w01*c01[2] + w11*c11[2]; - col[3] = w00*c00[3] + w10*c10[3] + w01*c01[3] + w11*c11[3]; - } -} - -// as above, without wrap around -void qd_getPixelLerp(CompBuf* src, float u, float v, float* col) -{ - const float ufl = floor(u), vfl = floor(v); - const int x1 = (int)ufl, y1 = (int)vfl; - const int x2 = (int)ceil(u), y2 = (int)ceil(v); - if ((x2 >= 0) && (y2 >= 0) && (x1 < src->x) && (y1 < src->y)) { - const float B[4] = {0,0,0,0}; - const int ox1 = (x1 < 0), oy1 = (y1 < 0), ox2 = (x2 >= src->x), oy2 = (y2 >= src->y); - const float* c00 = (ox1 || oy1) ? B : &src->rect[(x1 + y1*src->x)*src->type]; - const float* c10 = (ox2 || oy1) ? B : &src->rect[(x2 + y1*src->x)*src->type]; - const float* c01 = (ox1 || oy2) ? B : &src->rect[(x1 + y2*src->x)*src->type]; - const float* c11 = (ox2 || oy2) ? B : &src->rect[(x2 + y2*src->x)*src->type]; - const float uf = u - ufl, vf = v - vfl; - const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; - col[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; - if (src->type != CB_VAL) { - col[1] = w00*c00[1] + w10*c10[1] + w01*c01[1] + w11*c11[1]; - col[2] = w00*c00[2] + w10*c10[2] + w01*c01[2] + w11*c11[2]; - col[3] = w00*c00[3] + w10*c10[3] + w01*c01[3] + w11*c11[3]; - } - } - else col[0] = col[1] = col[2] = col[3] = 0.f; -} - -// as above, sampling only one channel -void qd_getPixelLerpChan(CompBuf* src, float u, float v, int chan, float* out) -{ - const float ufl = floor(u), vfl = floor(v); - const int x1 = (int)ufl, y1 = (int)vfl; - const int x2 = (int)ceil(u), y2 = (int)ceil(v); - if (chan >= src->type) chan = 0; - if ((x2 >= 0) && (y2 >= 0) && (x1 < src->x) && (y1 < src->y)) { - const float B[4] = {0,0,0,0}; - const int ox1 = (x1 < 0), oy1 = (y1 < 0), ox2 = (x2 >= src->x), oy2 = (y2 >= src->y); - const float* c00 = (ox1 || oy1) ? B : &src->rect[(x1 + y1*src->x)*src->type + chan]; - const float* c10 = (ox2 || oy1) ? B : &src->rect[(x2 + y1*src->x)*src->type + chan]; - const float* c01 = (ox1 || oy2) ? B : &src->rect[(x1 + y2*src->x)*src->type + chan]; - const float* c11 = (ox2 || oy2) ? B : &src->rect[(x2 + y2*src->x)*src->type + chan]; - const float uf = u - ufl, vf = v - vfl; - const float w00=(1.f-uf)*(1.f-vf), w10=uf*(1.f-vf), w01=(1.f-uf)*vf, w11=uf*vf; - out[0] = w00*c00[0] + w10*c10[0] + w01*c01[0] + w11*c11[0]; - } - else *out = 0.f; -} - - -CompBuf* qd_downScaledCopy(CompBuf* src, int scale) -{ - CompBuf* fbuf; - if (scale <= 1) - fbuf = dupalloc_compbuf(src); - else { - int nw = src->x/scale, nh = src->y/scale; - if ((2*(src->x % scale)) > scale) nw++; - if ((2*(src->y % scale)) > scale) nh++; - fbuf = alloc_compbuf(nw, nh, src->type, 1); - { - int x, y, xx, yy, sx, sy, mx, my; - float colsum[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - float fscale = 1.f/(float)(scale*scale); - for (y=0; yrect[y*fbuf->x*fbuf->type]; - yy = y*scale; - my = yy + scale; - if (my > src->y) my = src->y; - for (x=0; x src->x) mx = src->x; - colsum[0] = colsum[1] = colsum[2] = 0.f; - for (sy=yy; syrect[sy*src->x*src->type]; - for (sx=xx; sx 3)) xy = 3; - - // XXX The YVV macro defined below explicitely expects sources of at least 3x3 pixels, - // so just skiping blur along faulty direction if src's def is below that limit! - if (src->x < 3) xy &= ~(int) 1; - if (src->y < 3) xy &= ~(int) 2; - if (xy < 1) return; - - // see "Recursive Gabor Filtering" by Young/VanVliet - // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200 - if (sigma >= 3.556) - q = 0.9804*(sigma - 3.556) + 2.5091; - else // sigma >= 0.5 - q = (0.0561*sigma + 0.5784)*sigma - 0.2568; - q2 = q*q; - sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q); - // no gabor filtering here, so no complex multiplies, just the regular coefs. - // all negated here, so as not to have to recalc Triggs/Sdika matrix - cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc; - cf[2] = -q2*(3.38246 + 3.0*q)/sc; - // 0 & 3 unchanged - cf[3] = q2*q/sc; - cf[0] = 1.0 - cf[1] - cf[2] - cf[3]; - - // Triggs/Sdika border corrections, - // it seems to work, not entirely sure if it is actually totally correct, - // Besides J.M.Geusebroek's anigauss.c (see http://www.science.uva.nl/~mark), - // found one other implementation by Cristoph Lampert, - // but neither seem to be quite the same, result seems to be ok sofar anyway. - // Extra scale factor here to not have to do it in filter, - // though maybe this had something to with the precision errors - sc = cf[0]/((1.0 + cf[1] - cf[2] + cf[3])*(1.0 - cf[1] - cf[2] - cf[3])*(1.0 + cf[2] + (cf[1] - cf[3])*cf[3])); - tsM[0] = sc*(-cf[3]*cf[1] + 1.0 - cf[3]*cf[3] - cf[2]); - tsM[1] = sc*((cf[3] + cf[1])*(cf[2] + cf[3]*cf[1])); - tsM[2] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); - tsM[3] = sc*(cf[1] + cf[3]*cf[2]); - tsM[4] = sc*(-(cf[2] - 1.0)*(cf[2] + cf[3]*cf[1])); - tsM[5] = sc*(-(cf[3]*cf[1] + cf[3]*cf[3] + cf[2] - 1.0)*cf[3]); - tsM[6] = sc*(cf[3]*cf[1] + cf[2] + cf[1]*cf[1] - cf[2]*cf[2]); - tsM[7] = sc*(cf[1]*cf[2] + cf[3]*cf[2]*cf[2] - cf[1]*cf[3]*cf[3] - cf[3]*cf[3]*cf[3] - cf[3]*cf[2] + cf[3]); - tsM[8] = sc*(cf[3]*(cf[1] + cf[3]*cf[2])); - -#define YVV(L)\ -{\ - W[0] = cf[0]*X[0] + cf[1]*X[0] + cf[2]*X[0] + cf[3]*X[0];\ - W[1] = cf[0]*X[1] + cf[1]*W[0] + cf[2]*X[0] + cf[3]*X[0];\ - W[2] = cf[0]*X[2] + cf[1]*W[1] + cf[2]*W[0] + cf[3]*X[0];\ - for (i=3; i=0; i--)\ - Y[i] = cf[0]*W[i] + cf[1]*Y[i+1] + cf[2]*Y[i+2] + cf[3]*Y[i+3];\ -} - - // intermediate buffers - sz = MAX2(src->x, src->y); - X = MEM_callocN(sz*sizeof(double), "IIR_gauss X buf"); - Y = MEM_callocN(sz*sizeof(double), "IIR_gauss Y buf"); - W = MEM_callocN(sz*sizeof(double), "IIR_gauss W buf"); - if (xy & 1) { // H - for (y=0; yy; ++y) { - const int yx = y*src->x; - for (x=0; xx; ++x) - X[x] = src->rect[(x + yx)*src->type + chan]; - YVV(src->x); - for (x=0; xx; ++x) - src->rect[(x + yx)*src->type + chan] = Y[x]; - } - } - if (xy & 2) { // V - for (x=0; xx; ++x) { - for (y=0; yy; ++y) - X[y] = src->rect[(x + y*src->x)*src->type + chan]; - YVV(src->y); - for (y=0; yy; ++y) - src->rect[(x + y*src->x)*src->type + chan] = Y[y]; - } - } - - MEM_freeN(X); - MEM_freeN(W); - MEM_freeN(Y); -#undef YVV -} - diff --git a/source/blender/nodes/intern/CMP_util.h b/source/blender/nodes/intern/CMP_util.h deleted file mode 100644 index 3f37eae2af9..00000000000 --- a/source/blender/nodes/intern/CMP_util.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/CMP_util.h - * \ingroup nodes - */ - - -#ifndef CMP_NODE_UTILS_H_ -#define CMP_NODE_UTILS_H_ - -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_camera_types.h" /* qdn: defocus node, need camera info */ -#include "DNA_color_types.h" -#include "DNA_ID.h" -#include "DNA_image_types.h" -#include "DNA_material_types.h" -#include "DNA_node_types.h" -#include "DNA_object_types.h" -#include "DNA_scene_types.h" -#include "DNA_texture_types.h" - -#include "BLI_math.h" -#include "BLI_blenlib.h" -#include "BLI_rand.h" -#include "BLI_threads.h" -#include "BLI_utildefines.h" -#include "BLI_utildefines.h" - -#include "BKE_blender.h" -#include "BKE_colortools.h" -#include "BKE_global.h" -#include "BKE_image.h" -#include "BKE_main.h" -#include "BKE_material.h" -#include "BKE_node.h" -#include "BKE_texture.h" - -#include "BKE_library.h" -#include "BKE_object.h" - -#include "../CMP_node.h" -#include "node_util.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "RE_pipeline.h" -#include "RE_shader_ext.h" -#include "RE_render_ext.h" - -/* *************************** operations support *************************** */ - -/* general signal that's in output sockets, and goes over the wires */ -typedef struct CompBuf { - float *rect; - int x, y, xrad, yrad; - short type, malloc; - rcti disprect; /* cropped part of image */ - int xof, yof; /* relative to center of target image */ - - void (*rect_procedural)(struct CompBuf *, float *, float, float); - float procedural_size[3], procedural_offset[3]; - int procedural_type; - bNode *node; /* only in use for procedural bufs */ - - struct CompBuf *next, *prev; /* for pass-on, works nicer than reference counting */ -} CompBuf; - -/* defines also used for pixel size */ -#define CB_RGBA 4 -#define CB_VEC4 4 -#define CB_VEC3 3 -#define CB_VEC2 2 -#define CB_VAL 1 - -/* defines for RGBA channels */ -#define CHAN_R 0 -#define CHAN_G 1 -#define CHAN_B 2 -#define CHAN_A 3 - - - -CompBuf *alloc_compbuf(int sizex, int sizey, int type, int alloc); -CompBuf *dupalloc_compbuf(CompBuf *cbuf); -CompBuf *pass_on_compbuf(CompBuf *cbuf); -void free_compbuf(CompBuf *cbuf); -void print_compbuf(char *str, CompBuf *cbuf); -void compbuf_set_node(struct CompBuf *cbuf, struct bNode *node); -void node_compo_pass_on(struct bNode *node, struct bNodeStack **nsin, struct bNodeStack **nsout); - -CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, int type); -CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy); -CompBuf *typecheck_compbuf(CompBuf *inbuf, int type); -void typecheck_compbuf_color(float *out, float *in, int outtype, int intype); - -/* **************************************************** */ - -/* Pixel-to-Pixel operation, 1 Image in, 1 out */ -void composit1_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, - void (*func)(bNode *, float *, float *), - int src_type); -/* Pixel-to-Pixel operation, 2 Images in, 1 out */ -void composit2_pixel_processor(bNode *node, CompBuf *out, CompBuf *src_buf, float *src_col, - CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *), - int src_type, int fac_type); - -/* Pixel-to-Pixel operation, 3 Images in, 1 out */ -void composit3_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *src2_buf, float *src2_col, - CompBuf *fac_buf, float *fac, void (*func)(bNode *, float *, float *, float *, float *), - int src1_type, int src2_type, int fac_type); - -/* Pixel-to-Pixel operation, 4 Images in, 1 out */ -void composit4_pixel_processor(bNode *node, CompBuf *out, CompBuf *src1_buf, float *src1_col, CompBuf *fac1_buf, float *fac1, - CompBuf *src2_buf, float *src2_col, CompBuf *fac2_buf, float *fac2, - void (*func)(bNode *, float *, float *, float *, float *, float *), - int src1_type, int fac1_type, int src2_type, int fac2_type); - -CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel); -void generate_preview(void *data, bNode *node, CompBuf *stackbuf); - -void do_copy_rgba(bNode *node, float *out, float *in); -void do_copy_rgb(bNode *node, float *out, float *in); -void do_copy_value(bNode *node, float *out, float *in); -void do_copy_a_rgba(bNode *node, float *out, float *in, float *fac); - -void do_rgba_to_yuva(bNode *node, float *out, float *in); -void do_rgba_to_hsva(bNode *node, float *out, float *in); -void do_rgba_to_ycca(bNode *node, float *out, float *in); -void do_yuva_to_rgba(bNode *node, float *out, float *in); -void do_hsva_to_rgba(bNode *node, float *out, float *in); -void do_ycca_to_rgba(bNode *node, float *out, float *in); - -void gamma_correct_compbuf(CompBuf *img, int inversed); -void premul_compbuf(CompBuf *img, int inversed); -void convolve(CompBuf* dst, CompBuf* in1, CompBuf* in2); - -extern void node_ID_title_cb(void *node_v, void *unused_v); - - -/* utility functions used by glare, tonemap and lens distortion */ -/* soms macros for color handling */ -typedef float fRGB[4]; -/* clear color */ -#define fRGB_clear(c) { c[0]=c[1]=c[2]=0.f; } -/* copy c2 to c1 */ -#define fRGB_copy(c1, c2) { c1[0]=c2[0]; c1[1]=c2[1]; c1[2]=c2[2]; c1[3]=c2[3]; } -/* add c2 to c1 */ -#define fRGB_add(c1, c2) { c1[0]+=c2[0]; c1[1]+=c2[1]; c1[2]+=c2[2]; } -/* subtract c2 from c1 */ -#define fRGB_sub(c1, c2) { c1[0]-=c2[0]; c1[1]-=c2[1]; c1[2]-=c2[2]; } -/* multiply c by float value s */ -#define fRGB_mult(c, s) { c[0]*=s; c[1]*=s; c[2]*=s; } -/* multiply c2 by s and add to c1 */ -#define fRGB_madd(c1, c2, s) { c1[0]+=c2[0]*s; c1[1]+=c2[1]*s; c1[2]+=c2[2]*s; } -/* multiply c2 by color c1 */ -#define fRGB_colormult(c, cs) { c[0]*=cs[0]; c[1]*=cs[1]; c[2]*=cs[2]; } -/* multiply c2 by color c3 and add to c1 */ -#define fRGB_colormadd(c1, c2, c3) { c1[0]+=c2[0]*c3[0]; c1[1]+=c2[1]*c3[1]; c1[2]+=c2[2]*c3[2]; } -/* multiply c2 by color rgb, rgb as separate arguments */ -#define fRGB_rgbmult(c, r, g, b) { c[0]*=(r); c[1]*=(g); c[2]*=(b); } -/* swap colors c1 & c2 */ -#define fRGB_swap(c1, c2) { float _t=c1[0]; c1[0]=c2[0]; c2[0]=_t;\ - _t=c1[1]; c1[1]=c2[1]; c2[1]=_t;\ - _t=c1[2]; c1[2]=c2[2]; c2[2]=_t;\ - _t=c1[3]; c1[3]=c2[3]; c3[3]=_t;} - -void qd_getPixel(CompBuf* src, int x, int y, float* col); -void qd_setPixel(CompBuf* src, int x, int y, float* col); -void qd_addPixel(CompBuf* src, int x, int y, float* col); -void qd_multPixel(CompBuf* src, int x, int y, float f); -void qd_getPixelLerpWrap(CompBuf* src, float u, float v, float* col); -void qd_getPixelLerp(CompBuf* src, float u, float v, float* col); -void qd_getPixelLerpChan(CompBuf* src, float u, float v, int chan, float* out); -CompBuf* qd_downScaledCopy(CompBuf* src, int scale); -void IIR_gauss(CompBuf* src, float sigma, int chan, int xy); -/* end utility funcs */ - -#endif diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c b/source/blender/nodes/intern/SHD_nodes/SHD_camera.c deleted file mode 100644 index eea572bf271..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_camera.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** CAMERA INFO ******************** */ -static bNodeSocketType sh_node_camera_out[]= { - { SOCK_VECTOR, 0, "View Vector", 1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f}, /* None of these actually */ - { SOCK_VALUE, 0, "View Z Depth", 0.f, 0.0f, 0.0f, 0.0f, 0.0f, 99999999999.0f}, /* have any limits on their */ - { SOCK_VALUE, 0, "View Distance", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 99999999999.0f}, /* values. */ - { -1, 0, "" } -}; - - -static void node_shader_exec_camera(void *data, bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **out) -{ - if(data) { - ShadeInput *shi= ((ShaderCallData *)data)->shi; /* Data we need for shading. */ - - VECCOPY(out[0]->vec, shi->co); /* get view vector */ - out[1]->vec[0]= fabs(shi->co[2]); /* get view z-depth */ - out[2]->vec[0]= normalize_v3(out[0]->vec); /* get view distance */ - } -} - -static int gpu_shader_camera(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "camera", in, out, GPU_builtin(GPU_VIEW_POSITION)); -} - -void register_node_type_sh_camera(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_CAMERA, "Camera Data", NODE_CLASS_INPUT, 0, - NULL, sh_node_camera_out); - node_type_size(&ntype, 95, 95, 120); - node_type_storage(&ntype, "node_camera", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_camera); - node_type_gpu(&ntype, gpu_shader_camera); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c b/source/blender/nodes/intern/SHD_nodes/SHD_curves.c deleted file mode 100644 index a39a639897e..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_curves.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - - -/* **************** CURVE VEC ******************** */ -static bNodeSocketType sh_node_curve_vec_in[]= { - { SOCK_VALUE, 0, "Fac", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_curve_vec_out[]= { - { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - float vec[3]; - - /* stack order input: vec */ - /* stack order output: vec */ - nodestack_get_vec(vec, SOCK_VECTOR, in[1]); - curvemapping_evaluate3F(node->storage, out[0]->vec, vec); -} - -static void node_shader_init_curve_vec(bNode* node) -{ - node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f); -} - -static int gpu_shader_curve_vec(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - float *array; - int size; - - curvemapping_table_RGBA(node->storage, &array, &size); - return GPU_stack_link(mat, "curves_vec", in, out, GPU_texture(size, array)); -} - -void register_node_type_sh_curve_vec(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - sh_node_curve_vec_in, sh_node_curve_vec_out); - node_type_size(&ntype, 200, 140, 320); - node_type_init(&ntype, node_shader_init_curve_vec); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_shader_exec_curve_vec); - node_type_gpu(&ntype, gpu_shader_curve_vec); - - nodeRegisterType(lb, &ntype); -} - - -/* **************** CURVE RGB ******************** */ -static bNodeSocketType sh_node_curve_rgb_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_curve_rgb_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - float vec[3]; - - /* stack order input: vec */ - /* stack order output: vec */ - nodestack_get_vec(vec, SOCK_VECTOR, in[1]); - curvemapping_evaluateRGBF(node->storage, out[0]->vec, vec); - if(in[0]->vec[0] != 1.0f) { - interp_v3_v3v3(out[0]->vec, vec, out[0]->vec, *in[0]->vec); - } -} - -static void node_shader_init_curve_rgb(bNode *node) -{ - node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); -} - -static int gpu_shader_curve_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - float *array; - int size; - curvemapping_table_RGBA(node->storage, &array, &size); - return GPU_stack_link(mat, "curves_rgb", in, out, GPU_texture(size, array)); -} - -void register_node_type_sh_curve_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - sh_node_curve_rgb_in, sh_node_curve_rgb_out); - node_type_size(&ntype, 200, 140, 320); - node_type_init(&ntype, node_shader_init_curve_rgb); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_shader_exec_curve_rgb); - node_type_gpu(&ntype, gpu_shader_curve_rgb); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c deleted file mode 100644 index d5e5d5eeb93..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c +++ /dev/null @@ -1,792 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2007 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Nathan Letwory - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_dynamic.c - * \ingroup shdnodes - */ - - -/* TODO, support python3.x */ -#undef WITH_PYTHON - -#ifdef WITH_PYTHON -#include -#include -#include -#endif - -#include "DNA_text_types.h" -#include "BKE_text.h" - - -// XXX -#if 0 -#ifdef WITH_PYTHON -#include "api2_2x/Node.h" -#include "api2_2x/gen_utils.h" -#include "BPY_extern.h" -#endif -#endif - -#include "../SHD_util.h" - -// XXX -#if 0 -static void node_dynamic_setup(bNode *node); -static void node_dynamic_exec_cb(void *data, bNode *node, bNodeStack **in, bNodeStack **out); -static void node_dynamic_free_storage_cb(bNode *node); - -#ifdef WITH_PYTHON -static PyObject *init_dynamicdict(void) { - PyObject *newscriptdict, *item; - PyGILState_STATE gilstate = PyGILState_Ensure(); - - newscriptdict= PyDict_New(); - - PyDict_SetItemString(newscriptdict, "__builtins__", PyEval_GetBuiltins()); - item= PyString_FromString("__main__"); - PyDict_SetItemString(newscriptdict, "__name__", item); - Py_DECREF(item); - - PyGILState_Release(gilstate); - - return newscriptdict; -} -#endif - -static bNodeType *node_dynamic_find_typeinfo(ListBase *list, ID *id) -{ - bNodeType *ntype = list->first; - - while(ntype) { - if (ntype->type == NODE_DYNAMIC && ntype->id == id) - break; - ntype = ntype->next; - } - - return ntype; /* NULL if doesn't exist */ -} - -static void node_dynamic_free_typeinfo_sockets(bNodeType *tinfo) -{ - bNodeSocketType *sock; - - if (!tinfo) return; - - if (tinfo->inputs) { - sock = tinfo->inputs; - while (sock->type != -1) { - MEM_freeN(sock->name); - sock++; - } - MEM_freeN(tinfo->inputs); - tinfo->inputs = NULL; - } - if (tinfo->outputs) { - sock = tinfo->outputs; - while (sock->type != -1) { - MEM_freeN(sock->name); - sock++; - } - MEM_freeN(tinfo->outputs); - tinfo->outputs = NULL; - } -} - -static void node_dynamic_free_typeinfo(bNodeType *tinfo) -{ - if (!tinfo) return; - - node_dynamic_free_typeinfo_sockets(tinfo); - - if (tinfo->name) { MEM_freeN(tinfo->name); } - - MEM_freeN(tinfo); -} - -static void node_dynamic_free_sockets(bNode *node) -{ - BLI_freelistN(&node->inputs); - BLI_freelistN(&node->outputs); -} - -/* For now we just remove the socket links. It's the safest - * route, since an update in the script may change completely the - * inputs and outputs. Trying to recreate the node links would be - * nicer for pynode authors, though. */ -static void node_dynamic_update_socket_links(bNode *node, bNodeTree *ntree) -{ - if (ntree) { - nodeVerifyType(ntree, node); - } - else { - Material *ma; - - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - bNode *nd; - for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { - if (nd == node) nodeVerifyType(ma->nodetree, node); - } - } - } - } -} - -static void node_dynamic_free_storage_cb(bNode *node) -{ -#ifdef WITH_PYTHON - NodeScriptDict *nsd; - PyObject *pydict; - BPy_Node *pynode; - - if (!node->storage) return; - nsd = (NodeScriptDict *)(node->storage); - pydict = nsd->dict; - if (pydict) { - Py_DECREF(pydict); - } - pynode = nsd->node; - if (pynode) { - Py_DECREF(pynode); - } -#endif - MEM_freeN(node->storage); - node->storage = NULL; -} - -/* Disable pynode when its script fails */ -static void node_dynamic_disable(bNode *node) -{ - node->custom1 = 0; - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ERROR); -} - -/* Disable all pynodes using the given text (script) id */ -static void node_dynamic_disable_all_by_id(ID *id) -{ -#ifdef WITH_PYTHON - Material *ma; /* XXX hardcoded for shaders */ - - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - bNode *nd; - bNodeTree *ntree = ma->nodetree; - for (nd= ntree->nodes.first; nd; nd= nd->next) { - if (nd->id == id) { - nd->custom1 = 0; - nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_ERROR); - } - } - } - } -#endif -} - -static void node_rem_socklist_links(bNodeTree *ntree, ListBase *lb) -{ - bNodeLink *link, *next; - bNodeSocket *sock; - - if (!lb) return; - - for (sock= lb->first; sock; sock= sock->next) { - for (link= ntree->links.first; link; link= next) { - next= link->next; - if (link->fromsock==sock || link->tosock==sock) { - nodeRemLink(ntree, link); - } - } - } -} - -/* XXX hardcoded for shaders */ -static void node_dynamic_rem_all_links(bNodeType *tinfo) -{ - Material *ma; - int in, out; - - in = tinfo->inputs ? 1 : 0; - out = tinfo->outputs ? 1 : 0; - - if (!in && !out) return; - - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - bNode *nd; - bNodeTree *ntree = ma->nodetree; - for (nd= ntree->nodes.first; nd; nd= nd->next) { - if (nd->typeinfo == tinfo) { - if (in) - node_rem_socklist_links(ntree, &nd->inputs); - if (out) - node_rem_socklist_links(ntree, &nd->outputs); - } - } - } - } -} - -/* node_dynamic_reset: clean a pynode, getting rid of all - * data dynamically created for it. */ -static void node_dynamic_reset(bNode *node, int unlink_text) -{ - bNodeType *tinfo, *tinfo_default; - Material *ma; - - tinfo = node->typeinfo; - tinfo_default = node_dynamic_find_typeinfo(&node_all_shaders, NULL); - - if ((tinfo == tinfo_default) && unlink_text) { - ID *textID = node->id; - /* already at default (empty) state, which happens if this node's - * script failed to parse at the first stage: definition. We're here - * because its text was removed from Blender. */ - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - bNode *nd; - for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { - if (nd->id == textID) { - nd->id = NULL; - nd->custom1 = 0; - nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_NEW); - BLI_strncpy(nd->name, "Dynamic", 8); - return; - } - } - } - } - } - - node_dynamic_rem_all_links(tinfo); - node_dynamic_free_typeinfo_sockets(tinfo); - - /* reset all other XXX shader nodes sharing this typeinfo */ - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - bNode *nd; - for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { - if (nd->typeinfo == tinfo) { - node_dynamic_free_storage_cb(nd); - node_dynamic_free_sockets(nd); - //node_dynamic_update_socket_links(nd, ma->nodetree); - nd->typeinfo = tinfo_default; - if (unlink_text) { - nd->id = NULL; - nd->custom1 = 0; - nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_NEW); - BLI_strncpy(nd->name, "Dynamic", 8); - } - } - } - } - } - - /* XXX hardcoded for shaders: */ - if (tinfo->id) { BLI_remlink(&node_all_shaders, tinfo); } - node_dynamic_free_typeinfo(tinfo); -} - -/* Special case of the above function: for working pynodes - * that were saved on a .blend but fail for some reason when - * the file is opened. We need this because pynodes are initialized - * before G.main. */ -static void node_dynamic_reset_loaded(bNode *node) -{ - bNodeType *tinfo = node->typeinfo; - - node_dynamic_rem_all_links(tinfo); - node_dynamic_free_typeinfo_sockets(tinfo); - node_dynamic_free_storage_cb(node); - /* XXX hardcoded for shaders: */ - if (tinfo->id) { BLI_remlink(&node_all_shaders, tinfo); } - - node_dynamic_free_typeinfo(tinfo); - node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, NULL); -} - -int nodeDynamicUnlinkText(ID *txtid) { - Material *ma; - bNode *nd; - - /* find one node that uses this text */ - for (ma= G.main->mat.first; ma; ma= ma->id.next) { - if (ma->nodetree) { - for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { - if ((nd->type == NODE_DYNAMIC) && (nd->id == txtid)) { - node_dynamic_reset(nd, 1); /* found, reset all */ - return 1; - } - } - } - } - return 0; /* no pynodes used this text */ -} - -static void node_dynamic_pyerror_print(bNode *node) -{ -#ifdef WITH_PYTHON - PyGILState_STATE gilstate = PyGILState_Ensure(); - - fprintf(stderr, "\nError in dynamic node script \"%s\":\n", node->name); - if (PyErr_Occurred()) { - PyErr_Print(); - PyErr_Clear(); - PySys_SetObject("last_traceback", NULL); - } - else { fprintf(stderr, "Not a valid dynamic node Python script.\n"); } - - PyGILState_Release(gilstate); -#endif -} - -static void node_dynamic_register_type(bNode *node) -{ - nodeRegisterType(&node_all_shaders, node->typeinfo); - /* nodeRegisterType copied it to a new one, so we - * free the typeinfo itself, but not what it - * points to: */ - MEM_freeN(node->typeinfo); - node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, node->id); - MEM_freeN(node->typeinfo->name); - node->typeinfo->name = BLI_strdup(node->name); -} - -#ifdef WITH_PYTHON -/* node_dynamic_get_pynode: - * Find the pynode definition from the script */ -static PyObject *node_dynamic_get_pynode(PyObject *dict) -{ - PyObject *key= NULL; - Py_ssize_t pos = 0; - PyObject *value = NULL; - - /* script writer specified a node? */ - value = PyDict_GetItemString(dict, "__node__"); - - if (value) { - if (PyObject_TypeCheck(value, &PyType_Type)) { - Py_INCREF(value); - return value; - } - else { - PyErr_SetString(PyExc_TypeError, - "expected class object derived from Scripted node"); - return NULL; - } - } - - /* case not, search for it in the script's global dictionary */ - while (PyDict_Next(dict, &pos, &key, &value)) { - /* skip names we know belong to other available objects */ - if (strcmp("Socket", PyString_AsString(key)) == 0) - continue; - else if (strcmp("Scripted", PyString_AsString(key)) == 0) - continue; - /* naive: we grab the first ob of type 'type': */ - else if (PyObject_TypeCheck(value, &PyType_Type)) { - Py_INCREF(value); - return value; - } - } - - PyErr_SetString(PyExc_TypeError, - "no PyNode definition found in the script!"); - return NULL; -} -#endif /* WITH_PYTHON */ - -static int node_dynamic_parse(struct bNode *node) -{ -#ifndef WITH_PYTHON - return -1; -#else - PyObject *dict= NULL; - PyObject *pynode_data= NULL; - PyObject *pynode= NULL; - PyObject *args= NULL; - NodeScriptDict *nsd = NULL; - PyObject *pyresult = NULL; - char *buf = NULL; - int is_valid_script = 0; - PyGILState_STATE gilstate; - - if (!node->id || !node->storage) - return 0; - - /* READY, no need to be here */ - if (BTST(node->custom1, NODE_DYNAMIC_READY)) - return 0; - - /* for threading */ - gilstate = PyGILState_Ensure(); - - nsd = (NodeScriptDict *)node->storage; - - dict = (PyObject *)(nsd->dict); - buf = txt_to_buf((Text *)node->id); - - pyresult = PyRun_String(buf, Py_file_input, dict, dict); - - MEM_freeN(buf); - - if (!pyresult) { - if (BTST(node->custom1, NODE_DYNAMIC_LOADED)) { - node_dynamic_disable(node); - } else { - node_dynamic_disable_all_by_id(node->id); - } - node_dynamic_pyerror_print(node); - PyGILState_Release(gilstate); - return -1; - } - - Py_DECREF(pyresult); - - pynode_data = node_dynamic_get_pynode(dict); - - if (pynode_data) { - BPy_NodeSocketLists *socklists = Node_CreateSocketLists(node); - - args = Py_BuildValue("(O)", socklists); - - /* init it to get the input and output sockets */ - pynode = PyObject_Call(pynode_data, args, NULL); - - Py_DECREF(pynode_data); - Py_DECREF(socklists); - Py_DECREF(args); - - if (!PyErr_Occurred() && pynode && pytype_is_pynode(pynode)) { - InitNode((BPy_Node *)(pynode), node); - nsd->node = pynode; - node->typeinfo->execfunc = node_dynamic_exec_cb; - is_valid_script = 1; - - /* for NEW, LOADED, REPARSE */ - if (BNTST(node->custom1, NODE_DYNAMIC_ADDEXIST)) { - node->typeinfo->pydict = dict; - node->typeinfo->pynode = pynode; - node->typeinfo->id = node->id; - if (BNTST(node->custom1, NODE_DYNAMIC_LOADED)) - nodeAddSockets(node, node->typeinfo); - if (BNTST(node->custom1, NODE_DYNAMIC_REPARSE)) - node_dynamic_register_type(node); - } - - node->custom1 = 0; - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_READY); - } - } - - PyGILState_Release(gilstate); - - if (!is_valid_script) { /* not a valid pynode script */ - node_dynamic_disable_all_by_id(node->id); - node_dynamic_pyerror_print(node); - return -1; - } - - return 0; -#endif -} - -/* node_dynamic_setup: prepare for execution (state: NODE_DYNAMIC_READY) - * pynodes already linked to a script (node->id != NULL). */ -static void node_dynamic_setup(bNode *node) -{ -#ifdef WITH_PYTHON - NodeScriptDict *nsd = NULL; - bNodeTree *nodetree = NULL; - bNodeType *ntype = NULL; - PyGILState_STATE gilstate; - - /* Possible cases: - * NEW - * ADDEXIST - * LOADED - * REPARSE - * ERROR - * READY - */ - - /* NEW, but not linked to a script: link default (empty) typeinfo */ - if (!node->id) { - node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, - NULL); - return; - } - - /* READY, no need to be here */ - if (BTST(node->custom1, NODE_DYNAMIC_READY)) - return; - - gilstate = PyGILState_Ensure(); - - /* ERROR, reset to (empty) defaults */ - if (BCLR(node->custom1, NODE_DYNAMIC_ERROR) == 0) { - node_dynamic_reset(node, 0); - PyGILState_Release(gilstate); - return; - } - - /* User asked to update this pynode, prepare it for reparsing */ - if (BTST(node->custom1, NODE_DYNAMIC_REPARSE)) { - int needs_parsing = 1; - - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_NEW); - - if (BTST(node->custom1, NODE_DYNAMIC_ERROR)) { - node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_REPARSE); - ntype = node_dynamic_find_typeinfo(&node_all_shaders, node->id); - - if (ntype) { - node->typeinfo = ntype; - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); - node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_ERROR); - needs_parsing = 0; - } - else { nodeMakeDynamicType(node); } - - } else { - node_dynamic_rem_all_links(node->typeinfo); - node_dynamic_free_typeinfo_sockets(node->typeinfo); - node_dynamic_update_socket_links(node, NULL); - node_dynamic_free_storage_cb(node); - } - - if (needs_parsing) { - nsd = MEM_callocN(sizeof(NodeScriptDict), "node script dictionary"); - nsd->dict = init_dynamicdict(); - node->storage = nsd; - /* prepared, now reparse: */ - node_dynamic_parse(node); - PyGILState_Release(gilstate); - return; - } - } - else if (BTST(node->custom1, NODE_DYNAMIC_LOADED)) { - /* when loading from a .blend we don't have G.main yet, so we - * quickly abuse node->storage in ntreeInitTypes (node.c) to have - * our nodetree ptr (needed if a pynode script that worked before - * saving the .blend for some reason fails upon loading): */ - nodetree = (bNodeTree *)node->storage; - node->storage = NULL; - } - - if (node->storage) - fprintf(stderr, "\nDEBUG: PYNODES ERROR: non NULL node->storage in node_dynamic_setup()\n"); - - nsd = MEM_callocN(sizeof(NodeScriptDict), "node script dictionary"); - node->storage = nsd; - - /* NEW, LOADED or REPARSE */ - if (BNTST(node->custom1, NODE_DYNAMIC_ADDEXIST)) { - /* check if there's already a bNodeType linked to this script */ - /* (XXX hardcoded for shader nodes for now) */ - ntype = node_dynamic_find_typeinfo(&node_all_shaders, node->id); - - if (ntype) { /* if so, reuse it */ - node->typeinfo = ntype; - /* so this is actually an ADDEXIST type */ - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); - } - else { /* create bNodeType for this pynode */ - nodeMakeDynamicType(node); - nsd->dict = init_dynamicdict(); - if ((node_dynamic_parse(node) == -1) && nodetree) { - node_dynamic_reset_loaded(node); - } - PyGILState_Release(gilstate); - return; - } - } - - /* ADDEXIST: new pynode linked to an already registered dynamic type, - * we just reuse existing py dict and pynode */ - nsd->dict = node->typeinfo->pydict; - nsd->node = node->typeinfo->pynode; - - Py_INCREF((PyObject *)(nsd->dict)); - Py_INCREF((PyObject *)(nsd->node)); - - if (BTST(node->custom1, NODE_DYNAMIC_NEW)) { - nodeAddSockets(node, node->typeinfo); - node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_NEW); - } - - node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_ADDEXIST); - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_READY); - - PyGILState_Release(gilstate); -#endif /* WITH_PYTHON */ - return; -} - -/* node_dynamic_init_cb callback: called when a pynode is created. - * The pynode type is passed via node->custom2. It can be: - * 0: for loaded empty nodes - * NODE_DYNAMIC_MENU: for the default Dynamic node type - * > NODE_DYNAMIC_MENU: for the new types defined by scripts -*/ -static void node_dynamic_init_cb(bNode *node) { - int type = node->custom2; - - node->custom2 = 0; - - if (type >= NODE_DYNAMIC_MENU) { - node->custom1 = 0; - - if (type == NODE_DYNAMIC_MENU) { - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_NEW); - return; - } - - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); - node->id = node->typeinfo->id; - } - - node_dynamic_setup(node); -} - -/* node_dynamic_copy_cb: pynode copy callback */ -static void node_dynamic_copy_cb(bNode *orig_node, bNode *new_node) -{ -#ifndef WITH_PYTHON - return; -#else - NodeScriptDict *nsd; - PyGILState_STATE gilstate; - - if (!orig_node->storage) return; - - nsd = (NodeScriptDict *)(orig_node->storage); - new_node->storage = MEM_dupallocN(orig_node->storage); - - gilstate = PyGILState_Ensure(); - - if (nsd->node) - Py_INCREF((PyObject *)(nsd->node)); - if (nsd->dict) - Py_INCREF((PyObject *)(nsd->dict)); - - PyGILState_Release(gilstate); -#endif -} - -/* node_dynamic_exec_cb: the execution callback called per pixel - * during rendering. */ -static void node_dynamic_exec_cb(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { -#ifndef WITH_PYTHON - return; -#else - BPy_Node *mynode = NULL; - NodeScriptDict *nsd = NULL; - PyObject *pyresult = NULL; - PyObject *args = NULL; - ShadeInput *shi; - PyGILState_STATE gilstate; - - if (!node->id) - return; - - /*if (G.scene->r.threads > 1) - return;*/ - - if (BTST2(node->custom1, NODE_DYNAMIC_NEW, NODE_DYNAMIC_REPARSE)) { - node_dynamic_setup(node); - return; - } - - if (BTST(node->custom1, NODE_DYNAMIC_ERROR)) { - if (node->storage) node_dynamic_setup(node); - return; - } - - if (BTST(node->custom1, NODE_DYNAMIC_READY)) { - nsd = (NodeScriptDict *)node->storage; - mynode = (BPy_Node *)(nsd->node); - - - if (mynode && PyCallable_Check((PyObject *)mynode)) { - - gilstate = PyGILState_Ensure(); - - mynode->node = node; - shi = ((ShaderCallData *)data)->shi; - - Node_SetStack(mynode, in, NODE_INPUTSTACK); - Node_SetStack(mynode, out, NODE_OUTPUTSTACK); - Node_SetShi(mynode, shi); - - args=Py_BuildValue("()"); - pyresult= PyObject_Call((PyObject *)mynode, args, NULL); - Py_DECREF(args); - - if (!pyresult) { - PyGILState_Release(gilstate); - node_dynamic_disable_all_by_id(node->id); - node_dynamic_pyerror_print(node); - node_dynamic_setup(node); - return; - } - Py_DECREF(pyresult); - PyGILState_Release(gilstate); - } - } -#endif -} - -void register_node_type_sh_dynamic(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, NODE_OPTIONS, NULL, NULL); - node_type_size(&ntype, 150, 60, 300); - node_type_init(&ntype, node_dynamic_init_cb); - node_type_storage(&ntype, "NodeScriptDict", node_dynamic_free_storage_cb, node_dynamic_copy_cb); - node_type_exec(&ntype, node_dynamic_exec_cb); - - nodeRegisterType(lb, &ntype); -} - -#else - -void register_node_type_sh_dynamic(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, 0, NULL, NULL); - - nodeRegisterType(lb, &ntype); -} - -#endif - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c deleted file mode 100644 index 379f54bec57..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_geom.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -#include "DNA_customdata_types.h" - -/* **************** GEOMETRY ******************** */ - -/* output socket type definition */ -static bNodeSocketType sh_node_geom_out[]= { - { SOCK_VECTOR, 0, "Global", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, /* btw; uses no limit */ - { SOCK_VECTOR, 0, "Local", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VECTOR, 0, "View", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VECTOR, 0, "Orco", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VECTOR, 0, "UV", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 0, "Vertex Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Front/Back", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* node execute callback */ -static void node_shader_exec_geom(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - if(data) { - ShadeInput *shi= ((ShaderCallData *)data)->shi; - NodeGeometry *ngeo= (NodeGeometry*)node->storage; - ShadeInputUV *suv= &shi->uv[shi->actuv]; - static float defaultvcol[4] = {1.0f, 1.0f, 1.0f, 1.0f}; - int i; - - if(ngeo->uvname[0]) { - /* find uv layer by name */ - for(i = 0; i < shi->totuv; i++) { - if(strcmp(shi->uv[i].name, ngeo->uvname)==0) { - suv= &shi->uv[i]; - break; - } - } - } - - /* out: global, local, view, orco, uv, normal, vertex color */ - VECCOPY(out[GEOM_OUT_GLOB]->vec, shi->gl); - VECCOPY(out[GEOM_OUT_LOCAL]->vec, shi->co); - VECCOPY(out[GEOM_OUT_VIEW]->vec, shi->view); - VECCOPY(out[GEOM_OUT_ORCO]->vec, shi->lo); - VECCOPY(out[GEOM_OUT_UV]->vec, suv->uv); - VECCOPY(out[GEOM_OUT_NORMAL]->vec, shi->vno); - - if (shi->totcol) { - /* find vertex color layer by name */ - ShadeInputCol *scol= &shi->col[0]; - - if(ngeo->colname[0]) { - for(i = 0; i < shi->totcol; i++) { - if(strcmp(shi->col[i].name, ngeo->colname)==0) { - scol= &shi->col[i]; - break; - } - } - } - - VECCOPY(out[GEOM_OUT_VCOL]->vec, scol->col); - out[GEOM_OUT_VCOL]->vec[3]= 1.0f; - } - else - memcpy(out[GEOM_OUT_VCOL]->vec, defaultvcol, sizeof(defaultvcol)); - - if(shi->osatex) { - out[GEOM_OUT_GLOB]->data= shi->dxgl; - out[GEOM_OUT_GLOB]->datatype= NS_OSA_VECTORS; - out[GEOM_OUT_LOCAL]->data= shi->dxco; - out[GEOM_OUT_LOCAL]->datatype= NS_OSA_VECTORS; - out[GEOM_OUT_VIEW]->data= &shi->dxview; - out[GEOM_OUT_VIEW]->datatype= NS_OSA_VALUES; - out[GEOM_OUT_ORCO]->data= shi->dxlo; - out[GEOM_OUT_ORCO]->datatype= NS_OSA_VECTORS; - out[GEOM_OUT_UV]->data= suv->dxuv; - out[GEOM_OUT_UV]->datatype= NS_OSA_VECTORS; - out[GEOM_OUT_NORMAL]->data= shi->dxno; - out[GEOM_OUT_NORMAL]->datatype= NS_OSA_VECTORS; - } - - /* front/back, normal flipping was stored */ - out[GEOM_OUT_FRONTBACK]->vec[0]= (shi->flippednor)? 0.0f: 1.0f; - } -} - -static void node_shader_init_geometry(bNode *node) -{ - node->storage= MEM_callocN(sizeof(NodeGeometry), "NodeGeometry"); -} - -static int gpu_shader_geom(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - NodeGeometry *ngeo= (NodeGeometry*)node->storage; - GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); - GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ngeo->uvname); - GPUNodeLink *mcol = GPU_attribute(CD_MCOL, ngeo->colname); - - return GPU_stack_link(mat, "geom", in, out, - GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), - GPU_builtin(GPU_INVERSE_VIEW_MATRIX), orco, mtface, mcol); -} - -/* node type definition */ -void register_node_type_sh_geom(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, sh_node_geom_out); - node_type_size(&ntype, 120, 80, 160); - node_type_init(&ntype, node_shader_init_geometry); - node_type_storage(&ntype, "NodeGeometry", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_geom); - node_type_gpu(&ntype, gpu_shader_geom); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c deleted file mode 100644 index 91fd995dbbe..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Juho Vepsäläinen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - - -/* **************** Hue Saturation ******************** */ -static bNodeSocketType sh_node_hue_sat_in[]= { - { SOCK_VALUE, 1, "Hue", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Saturation", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f}, - { SOCK_VALUE, 1, "Value", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f}, - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_hue_sat_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* note: it would be possible to use CMP version for both nodes */ -static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float *hue, float *sat, float *val, float *in, float *fac) -{ - if(*fac!=0.0f && (*hue!=0.5f || *sat!=1.0f || *val!=1.0f)) { - float col[3], hsv[3], mfac= 1.0f - *fac; - - rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); - hsv[0]+= (*hue - 0.5f); - if(hsv[0]>1.0f) hsv[0]-=1.0f; else if(hsv[0]<0.0f) hsv[0]+= 1.0f; - hsv[1]*= *sat; - hsv[2]*= *val; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); - - out[0]= mfac*in[0] + *fac*col[0]; - out[1]= mfac*in[1] + *fac*col[1]; - out[2]= mfac*in[2] + *fac*col[2]; - } - else { - QUATCOPY(out, in); - } -} - -static void node_shader_exec_hue_sat(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - do_hue_sat_fac(node, out[0]->vec, in[0]->vec, in[1]->vec, in[2]->vec, in[4]->vec, in[3]->vec); -} - - -static int gpu_shader_hue_sat(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "hue_sat", in, out); -} - -void register_node_type_sh_hue_sat(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - sh_node_hue_sat_in, sh_node_hue_sat_out); - node_type_size(&ntype, 150, 80, 250); - node_type_exec(&ntype, node_shader_exec_hue_sat); - node_type_gpu(&ntype, gpu_shader_hue_sat); - - nodeRegisterType(lb, &ntype); -} - - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c b/source/blender/nodes/intern/SHD_nodes/SHD_invert.c deleted file mode 100644 index f8d6e54859e..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_invert.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - - - -/* **************** INVERT ******************** */ -static bNodeSocketType sh_node_invert_in[]= { - { SOCK_VALUE, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_invert_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_invert(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, -bNodeStack **out) -{ - float col[3], facm; - - col[0] = 1.0f - in[1]->vec[0]; - col[1] = 1.0f - in[1]->vec[1]; - col[2] = 1.0f - in[1]->vec[2]; - - /* if fac, blend result against original input */ - if (in[0]->vec[0] < 1.0f) { - facm = 1.0f - in[0]->vec[0]; - - col[0] = in[0]->vec[0]*col[0] + (facm*in[1]->vec[0]); - col[1] = in[0]->vec[0]*col[1] + (facm*in[1]->vec[1]); - col[2] = in[0]->vec[0]*col[2] + (facm*in[1]->vec[2]); - } - - VECCOPY(out[0]->vec, col); -} - -static int gpu_shader_invert(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "invert", in, out); -} - -void register_node_type_sh_invert(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - sh_node_invert_in, sh_node_invert_out); - node_type_size(&ntype, 90, 80, 100); - node_type_exec(&ntype, node_shader_exec_invert); - node_type_gpu(&ntype, gpu_shader_invert); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c b/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c deleted file mode 100644 index eb300301ce2..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_mapping.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** MAPPING ******************** */ -static bNodeSocketType sh_node_mapping_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_mapping_out[]= { - { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -/* do the regular mapping options for blender textures */ -static void node_shader_exec_mapping(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - TexMapping *texmap= node->storage; - float *vec= out[0]->vec; - - /* stack order input: vector */ - /* stack order output: vector */ - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - mul_m4_v3(texmap->mat, vec); - - if(texmap->flag & TEXMAP_CLIP_MIN) { - if(vec[0]min[0]) vec[0]= texmap->min[0]; - if(vec[1]min[1]) vec[1]= texmap->min[1]; - if(vec[2]min[2]) vec[2]= texmap->min[2]; - } - if(texmap->flag & TEXMAP_CLIP_MAX) { - if(vec[0]>texmap->max[0]) vec[0]= texmap->max[0]; - if(vec[1]>texmap->max[1]) vec[1]= texmap->max[1]; - if(vec[2]>texmap->max[2]) vec[2]= texmap->max[2]; - } -} - - -static void node_shader_init_mapping(bNode *node) -{ - node->storage= add_mapping(); -} - -static int gpu_shader_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - TexMapping *texmap= node->storage; - float domin= (texmap->flag & TEXMAP_CLIP_MIN) != 0; - float domax= (texmap->flag & TEXMAP_CLIP_MAX) != 0; - GPUNodeLink *tmat = GPU_uniform((float*)texmap->mat); - GPUNodeLink *tmin = GPU_uniform(texmap->min); - GPUNodeLink *tmax = GPU_uniform(texmap->max); - GPUNodeLink *tdomin = GPU_uniform(&domin); - GPUNodeLink *tdomax = GPU_uniform(&domax); - - return GPU_stack_link(mat, "mapping", in, out, tmat, tmin, tmax, tdomin, tdomax); -} - -void register_node_type_sh_mapping(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MAPPING, "Mapping", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - sh_node_mapping_in, sh_node_mapping_out); - node_type_size(&ntype, 240, 160, 320); - node_type_init(&ntype, node_shader_init_mapping); - node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_mapping); - node_type_gpu(&ntype, gpu_shader_mapping); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c deleted file mode 100644 index f78dd9ec727..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c +++ /dev/null @@ -1,336 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_material.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** MATERIAL ******************** */ - -static bNodeSocketType sh_node_material_in[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Spec", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Refl", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_material_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -/* **************** EXTENDED MATERIAL ******************** */ - -static bNodeSocketType sh_node_material_ext_in[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Spec", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Refl", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 1, "Mirror", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Ambient", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Emit", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "SpecTra", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Ray Mirror", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Alpha", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Translucency", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_material_ext_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_RGBA, 0, "Diffuse", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "Spec", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 0, "AO", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(data && node->id) { - ShadeResult shrnode; - ShadeInput *shi; - ShaderCallData *shcd= data; - float col[4]; - bNodeSocket *sock; - char hasinput[NUM_MAT_IN]= {'\0'}; - int i; - - /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily - * the constant input stack values (e.g. in case material node is inside a group). - * we just want to know if a node input uses external data or the material setting. - * this is an ugly hack, but so is this node as a whole. - */ - for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) - hasinput[i] = (sock->link != NULL); - - shi= shcd->shi; - shi->mat= (Material *)node->id; - - /* copy all relevant material vars, note, keep this synced with render_types.h */ - memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); - shi->har= shi->mat->har; - - /* write values */ - if(hasinput[MAT_IN_COLOR]) - nodestack_get_vec(&shi->r, SOCK_VECTOR, in[MAT_IN_COLOR]); - - if(hasinput[MAT_IN_SPEC]) - nodestack_get_vec(&shi->specr, SOCK_VECTOR, in[MAT_IN_SPEC]); - - if(hasinput[MAT_IN_REFL]) - nodestack_get_vec(&shi->refl, SOCK_VALUE, in[MAT_IN_REFL]); - - /* retrieve normal */ - if(hasinput[MAT_IN_NORMAL]) { - nodestack_get_vec(shi->vn, SOCK_VECTOR, in[MAT_IN_NORMAL]); - normalize_v3(shi->vn); - } - else - VECCOPY(shi->vn, shi->vno); - - /* custom option to flip normal */ - if(node->custom1 & SH_NODE_MAT_NEG) { - shi->vn[0]= -shi->vn[0]; - shi->vn[1]= -shi->vn[1]; - shi->vn[2]= -shi->vn[2]; - } - - if (node->type == SH_NODE_MATERIAL_EXT) { - if(hasinput[MAT_IN_MIR]) - nodestack_get_vec(&shi->mirr, SOCK_VECTOR, in[MAT_IN_MIR]); - if(hasinput[MAT_IN_AMB]) - nodestack_get_vec(&shi->amb, SOCK_VALUE, in[MAT_IN_AMB]); - if(hasinput[MAT_IN_EMIT]) - nodestack_get_vec(&shi->emit, SOCK_VALUE, in[MAT_IN_EMIT]); - if(hasinput[MAT_IN_SPECTRA]) - nodestack_get_vec(&shi->spectra, SOCK_VALUE, in[MAT_IN_SPECTRA]); - if(hasinput[MAT_IN_RAY_MIRROR]) - nodestack_get_vec(&shi->ray_mirror, SOCK_VALUE, in[MAT_IN_RAY_MIRROR]); - if(hasinput[MAT_IN_ALPHA]) - nodestack_get_vec(&shi->alpha, SOCK_VALUE, in[MAT_IN_ALPHA]); - if(hasinput[MAT_IN_TRANSLUCENCY]) - nodestack_get_vec(&shi->translucency, SOCK_VALUE, in[MAT_IN_TRANSLUCENCY]); - } - - shi->nodes= 1; /* temp hack to prevent trashadow recursion */ - node_shader_lamp_loop(shi, &shrnode); /* clears shrnode */ - shi->nodes= 0; - - /* write to outputs */ - if(node->custom1 & SH_NODE_MAT_DIFF) { - VECCOPY(col, shrnode.combined); - if(!(node->custom1 & SH_NODE_MAT_SPEC)) { - sub_v3_v3(col, shrnode.spec); - } - } - else if(node->custom1 & SH_NODE_MAT_SPEC) { - VECCOPY(col, shrnode.spec); - } - else - col[0]= col[1]= col[2]= 0.0f; - - col[3]= shrnode.alpha; - - if(shi->do_preview) - nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage); - - VECCOPY(out[MAT_OUT_COLOR]->vec, col); - out[MAT_OUT_ALPHA]->vec[0]= shrnode.alpha; - - if(node->custom1 & SH_NODE_MAT_NEG) { - shi->vn[0]= -shi->vn[0]; - shi->vn[1]= -shi->vn[1]; - shi->vn[2]= -shi->vn[2]; - } - - VECCOPY(out[MAT_OUT_NORMAL]->vec, shi->vn); - - /* Extended material options */ - if (node->type == SH_NODE_MATERIAL_EXT) { - /* Shadow, Reflect, Refract, Radiosity, Speed seem to cause problems inside - * a node tree :( */ - VECCOPY(out[MAT_OUT_DIFFUSE]->vec, shrnode.diff); - VECCOPY(out[MAT_OUT_SPEC]->vec, shrnode.spec); - VECCOPY(out[MAT_OUT_AO]->vec, shrnode.ao); - } - - /* copy passes, now just active node */ - if(node->flag & NODE_ACTIVE_ID) { - float combined[4], alpha; - - copy_v4_v4(combined, shcd->shr->combined); - alpha= shcd->shr->alpha; - - *(shcd->shr)= shrnode; - - copy_v4_v4(shcd->shr->combined, combined); - shcd->shr->alpha= alpha; - } - } -} - - -static void node_shader_init_material(bNode* node) -{ - node->custom1= SH_NODE_MAT_DIFF|SH_NODE_MAT_SPEC; -} - -/* XXX this is also done as a local static function in gpu_codegen.c, - * but we need this to hack around the crappy material node. - */ -static GPUNodeLink *gpu_get_input_link(GPUNodeStack *in) -{ - if (in->link) - return in->link; - else - return GPU_uniform(in->vec); -} - -static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - if(node->id) { - GPUShadeInput shi; - GPUShadeResult shr; - bNodeSocket *sock; - char hasinput[NUM_MAT_IN]= {'\0'}; - int i; - - /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily - * the constant input stack values (e.g. in case material node is inside a group). - * we just want to know if a node input uses external data or the material setting. - */ - for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) - hasinput[i] = (sock->link != NULL); - - GPU_shadeinput_set(mat, (Material*)node->id, &shi); - - /* write values */ - if(hasinput[MAT_IN_COLOR]) - shi.rgb = gpu_get_input_link(&in[MAT_IN_COLOR]); - - if(hasinput[MAT_IN_SPEC]) - shi.specrgb = gpu_get_input_link(&in[MAT_IN_SPEC]); - - if(hasinput[MAT_IN_REFL]) - shi.refl = gpu_get_input_link(&in[MAT_IN_REFL]); - - /* retrieve normal */ - if(hasinput[MAT_IN_NORMAL]) { - GPUNodeLink *tmp; - shi.vn = gpu_get_input_link(&in[MAT_IN_NORMAL]); - GPU_link(mat, "vec_math_normalize", shi.vn, &shi.vn, &tmp); - } - - /* custom option to flip normal */ - if(node->custom1 & SH_NODE_MAT_NEG) - GPU_link(mat, "vec_math_negate", shi.vn, &shi.vn); - - if (node->type == SH_NODE_MATERIAL_EXT) { - if(hasinput[MAT_IN_AMB]) - shi.amb= gpu_get_input_link(&in[MAT_IN_AMB]); - if(hasinput[MAT_IN_EMIT]) - shi.emit= gpu_get_input_link(&in[MAT_IN_EMIT]); - if(hasinput[MAT_IN_ALPHA]) - shi.alpha= gpu_get_input_link(&in[MAT_IN_ALPHA]); - } - - GPU_shaderesult_set(&shi, &shr); /* clears shr */ - - /* write to outputs */ - if(node->custom1 & SH_NODE_MAT_DIFF) { - out[MAT_OUT_COLOR].link= shr.combined; - - if(!(node->custom1 & SH_NODE_MAT_SPEC)) { - GPUNodeLink *link; - GPU_link(mat, "vec_math_sub", shr.combined, shr.spec, &out[MAT_OUT_COLOR].link, &link); - } - } - else if(node->custom1 & SH_NODE_MAT_SPEC) { - out[MAT_OUT_COLOR].link= shr.spec; - } - else - GPU_link(mat, "set_rgb_zero", &out[MAT_OUT_COLOR].link); - - GPU_link(mat, "mtex_alpha_to_col", out[MAT_OUT_COLOR].link, shr.alpha, &out[MAT_OUT_COLOR].link); - - out[MAT_OUT_ALPHA].link = shr.alpha; // - - if(node->custom1 & SH_NODE_MAT_NEG) - GPU_link(mat, "vec_math_negate", shi.vn, &shi.vn); - out[MAT_OUT_NORMAL].link = shi.vn; - - if (node->type == SH_NODE_MATERIAL_EXT) { - out[MAT_OUT_DIFFUSE].link = shr.diff; - out[MAT_OUT_SPEC].link = shr.spec; - } - - return 1; - } - - return 0; -} - -void register_node_type_sh_material(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MATERIAL, "Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW, - sh_node_material_in, sh_node_material_out); - node_type_size(&ntype, 120, 80, 240); - node_type_init(&ntype, node_shader_init_material); - node_type_exec(&ntype, node_shader_exec_material); - node_type_gpu(&ntype, gpu_shader_material); - - nodeRegisterType(lb, &ntype); -} - - -void register_node_type_sh_material_ext(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MATERIAL_EXT, "Extended Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW, - sh_node_material_ext_in, sh_node_material_ext_out); - node_type_size(&ntype, 120, 80, 240); - node_type_init(&ntype, node_shader_init_material); - node_type_exec(&ntype, node_shader_exec_material); - node_type_gpu(&ntype, gpu_shader_material); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_math.c b/source/blender/nodes/intern/SHD_nodes/SHD_math.c deleted file mode 100644 index dd0a564dc4b..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_math.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_math.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - - -/* **************** SCALAR MATH ******************** */ -static bNodeSocketType sh_node_math_in[]= { - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_math_out[]= { - { SOCK_VALUE, 0, "Value", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_math(void *UNUSED(data), bNode *node, bNodeStack **in, -bNodeStack **out) -{ - switch(node->custom1){ - - case 0: /* Add */ - out[0]->vec[0]= in[0]->vec[0] + in[1]->vec[0]; - break; - case 1: /* Subtract */ - out[0]->vec[0]= in[0]->vec[0] - in[1]->vec[0]; - break; - case 2: /* Multiply */ - out[0]->vec[0]= in[0]->vec[0] * in[1]->vec[0]; - break; - case 3: /* Divide */ - { - if(in[1]->vec[0]==0) /* We don't want to divide by zero. */ - out[0]->vec[0]= 0.0; - else - out[0]->vec[0]= in[0]->vec[0] / in[1]->vec[0]; - } - break; - case 4: /* Sine */ - { - if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= sin(in[0]->vec[0]); - else - out[0]->vec[0]= sin(in[1]->vec[0]); - } - break; - case 5: /* Cosine */ - { - if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= cos(in[0]->vec[0]); - else - out[0]->vec[0]= cos(in[1]->vec[0]); - } - break; - case 6: /* Tangent */ - { - if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= tan(in[0]->vec[0]); - else - out[0]->vec[0]= tan(in[1]->vec[0]); - } - break; - case 7: /* Arc-Sine */ - { - if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ - /* Can't do the impossible... */ - if( in[0]->vec[0] <= 1 && in[0]->vec[0] >= -1 ) - out[0]->vec[0]= asin(in[0]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - else { - /* Can't do the impossible... */ - if( in[1]->vec[0] <= 1 && in[1]->vec[0] >= -1 ) - out[0]->vec[0]= asin(in[1]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - } - break; - case 8: /* Arc-Cosine */ - { - if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ - /* Can't do the impossible... */ - if( in[0]->vec[0] <= 1 && in[0]->vec[0] >= -1 ) - out[0]->vec[0]= acos(in[0]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - else { - /* Can't do the impossible... */ - if( in[1]->vec[0] <= 1 && in[1]->vec[0] >= -1 ) - out[0]->vec[0]= acos(in[1]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - } - break; - case 9: /* Arc-Tangent */ - { - if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= atan(in[0]->vec[0]); - else - out[0]->vec[0]= atan(in[1]->vec[0]); - } - break; - case 10: /* Power */ - { - /* Don't want any imaginary numbers... */ - if( in[0]->vec[0] >= 0 ) - out[0]->vec[0]= pow(in[0]->vec[0], in[1]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - break; - case 11: /* Logarithm */ - { - /* Don't want any imaginary numbers... */ - if( in[0]->vec[0] > 0 && in[1]->vec[0] > 0 ) - out[0]->vec[0]= log(in[0]->vec[0]) / log(in[1]->vec[0]); - else - out[0]->vec[0]= 0.0; - } - break; - case 12: /* Minimum */ - { - if( in[0]->vec[0] < in[1]->vec[0] ) - out[0]->vec[0]= in[0]->vec[0]; - else - out[0]->vec[0]= in[1]->vec[0]; - } - break; - case 13: /* Maximum */ - { - if( in[0]->vec[0] > in[1]->vec[0] ) - out[0]->vec[0]= in[0]->vec[0]; - else - out[0]->vec[0]= in[1]->vec[0]; - } - break; - case 14: /* Round */ - { - if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= (in[0]->vec[0]<0)?(int)(in[0]->vec[0] - 0.5f):(int)(in[0]->vec[0] + 0.5f); - else - out[0]->vec[0]= (in[1]->vec[0]<0)?(int)(in[1]->vec[0] - 0.5f):(int)(in[1]->vec[0] + 0.5f); - } - break; - case 15: /* Less Than */ - { - if( in[0]->vec[0] < in[1]->vec[0] ) - out[0]->vec[0]= 1.0f; - else - out[0]->vec[0]= 0.0f; - } - break; - case 16: /* Greater Than */ - { - if( in[0]->vec[0] > in[1]->vec[0] ) - out[0]->vec[0]= 1.0f; - else - out[0]->vec[0]= 0.0f; - } - break; - } -} - -static int gpu_shader_math(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - static const char *names[] = {"math_add", "math_subtract", "math_multiply", - "math_divide", "math_sine", "math_cosine", "math_tangent", "math_asin", - "math_acos", "math_atan", "math_pow", "math_log", "math_min", "math_max", - "math_round", "math_less_than", "math_greater_than"}; - - switch (node->custom1) { - case 0: - case 1: - case 2: - case 3: - case 10: - case 11: - case 12: - case 13: - case 15: - case 16: - GPU_stack_link(mat, names[node->custom1], NULL, out, - GPU_socket(&in[0]), GPU_socket(&in[1])); - break; - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 14: - if(in[0].hasinput || !in[1].hasinput) - GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[0])); - else - GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[1])); - break; - default: - return 0; - } - - return 1; -} - -void register_node_type_sh_math(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - sh_node_math_in, sh_node_math_out); - node_type_size(&ntype, 120, 110, 160); - node_type_label(&ntype, node_math_label); - node_type_storage(&ntype, "node_math", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_math); - node_type_gpu(&ntype, gpu_shader_math); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c deleted file mode 100644 index 8b3033a98ca..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_mixRgb.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** MIX RGB ******************** */ -static bNodeSocketType sh_node_mix_rgb_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Color1", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA, 1, "Color2", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_mix_rgb_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_mix_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: fac, col1, col2 */ - /* stack order out: col */ - float col[3]; - float fac; - float vec[3]; - - nodestack_get_vec(&fac, SOCK_VALUE, in[0]); - CLAMP(fac, 0.0f, 1.0f); - - nodestack_get_vec(col, SOCK_VECTOR, in[1]); - nodestack_get_vec(vec, SOCK_VECTOR, in[2]); - - ramp_blend(node->custom1, col, col+1, col+2, fac, vec); - VECCOPY(out[0]->vec, col); -} - -static int gpu_shader_mix_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - static const char *names[] = {"mix_blend", "mix_add", "mix_mult", "mix_sub", - "mix_screen", "mix_div", "mix_diff", "mix_dark", "mix_light", - "mix_overlay", "mix_dodge", "mix_burn", "mix_hue", "mix_sat", - "mix_val", "mix_color", "mix_soft", "mix_linear"}; - - return GPU_stack_link(mat, names[node->custom1], in, out); -} - - -void register_node_type_sh_mix_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - sh_node_mix_rgb_in, sh_node_mix_rgb_out); - node_type_size(&ntype, 100, 60, 150); - node_type_label(&ntype, node_blend_label); - node_type_exec(&ntype, node_shader_exec_mix_rgb); - node_type_gpu(&ntype, gpu_shader_mix_rgb); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c b/source/blender/nodes/intern/SHD_nodes/SHD_normal.c deleted file mode 100644 index a4e39935cea..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_normal.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** NORMAL ******************** */ -static bNodeSocketType sh_node_normal_in[]= { - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_normal_out[]= { - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { SOCK_VALUE, 0, "Dot", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* generates normal, does dot product */ -static void node_shader_exec_normal(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - float vec[3]; - - /* stack order input: normal */ - /* stack order output: normal, value */ - - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - - VECCOPY(out[0]->vec, sock->ns.vec); - /* render normals point inside... the widget points outside */ - out[1]->vec[0]= -INPR(out[0]->vec, vec); -} - -static int gpu_shader_normal(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - bNodeSocket *sock= node->outputs.first; - GPUNodeLink *vec = GPU_uniform(sock->ns.vec); - - return GPU_stack_link(mat, "normal", in, out, vec); -} - -void register_node_type_sh_normal(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, NODE_OPTIONS, - sh_node_normal_in, sh_node_normal_out); - node_type_exec(&ntype, node_shader_exec_normal); - node_type_gpu(&ntype, gpu_shader_normal); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output.c b/source/blender/nodes/intern/SHD_nodes/SHD_output.c deleted file mode 100644 index e42caabff34..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_output.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** OUTPUT ******************** */ -static bNodeSocketType sh_node_output_in[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_output(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - if(data) { - ShadeInput *shi= ((ShaderCallData *)data)->shi; - float col[4]; - - /* stack order input sockets: col, alpha, normal */ - nodestack_get_vec(col, SOCK_VECTOR, in[0]); - nodestack_get_vec(col+3, SOCK_VALUE, in[1]); - - if(shi->do_preview) { - nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage); - node->lasty= shi->ys; - } - - if(node->flag & NODE_DO_OUTPUT) { - ShadeResult *shr= ((ShaderCallData *)data)->shr; - - QUATCOPY(shr->combined, col); - shr->alpha= col[3]; - - // VECCOPY(shr->nor, in[3]->vec); - } - } -} - -static int gpu_shader_output(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - GPUNodeLink *outlink; - - /*if(in[1].hasinput) - GPU_material_enable_alpha(mat);*/ - - GPU_stack_link(mat, "output_node", in, out, &outlink); - GPU_material_output_link(mat, outlink); - - return 1; -} - -void register_node_type_sh_output(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_OUTPUT, "Output", NODE_CLASS_OUTPUT, NODE_PREVIEW, - sh_node_output_in, NULL); - node_type_size(&ntype, 80, 60, 200); - node_type_exec(&ntype, node_shader_exec_output); - node_type_gpu(&ntype, gpu_shader_output); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c deleted file mode 100644 index 3d7f401b055..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_rgb.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** RGB ******************** */ -static bNodeSocketType sh_node_rgb_out[]= { - { SOCK_RGBA, 0, "Color", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - - VECCOPY(out[0]->vec, sock->ns.vec); -} - -static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - bNodeSocket *sock= node->outputs.first; - GPUNodeLink *vec = GPU_uniform(sock->ns.vec); - - return GPU_stack_link(mat, "set_rgba", in, out, vec); -} - -void register_node_type_sh_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, sh_node_rgb_out); - node_type_size(&ntype, 140, 80, 140); - node_type_exec(&ntype, node_shader_exec_rgb); - node_type_gpu(&ntype, gpu_shader_rgb); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c b/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c deleted file mode 100644 index e4fa0b02521..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Juho Vepsäläinen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** SEPARATE RGBA ******************** */ -static bNodeSocketType sh_node_seprgb_in[]= { - { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_seprgb_out[]= { - { SOCK_VALUE, 0, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_seprgb(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) -{ - out[0]->vec[0] = in[0]->vec[0]; - out[1]->vec[0] = in[0]->vec[1]; - out[2]->vec[0] = in[0]->vec[2]; -} - -static int gpu_shader_seprgb(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "separate_rgb", in, out); -} - -void register_node_type_sh_seprgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_SEPRGB, "Separate RGB", NODE_CLASS_CONVERTOR, 0, - sh_node_seprgb_in, sh_node_seprgb_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_shader_exec_seprgb); - node_type_gpu(&ntype, gpu_shader_seprgb); - - nodeRegisterType(lb, &ntype); -} - - - -/* **************** COMBINE RGB ******************** */ -static bNodeSocketType sh_node_combrgb_in[]= { - { SOCK_VALUE, 1, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_combrgb_out[]= { - { SOCK_RGBA, 0, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_combrgb(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) -{ - out[0]->vec[0] = in[0]->vec[0]; - out[0]->vec[1] = in[1]->vec[0]; - out[0]->vec[2] = in[2]->vec[0]; -} - -static int gpu_shader_combrgb(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "combine_rgb", in, out); -} - -void register_node_type_sh_combrgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_COMBRGB, "Combine RGB", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - sh_node_combrgb_in, sh_node_combrgb_out); - node_type_size(&ntype, 80, 40, 140); - node_type_exec(&ntype, node_shader_exec_combrgb); - node_type_gpu(&ntype, gpu_shader_combrgb); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c b/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c deleted file mode 100644 index 80693ff08f0..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_squeeze.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** VALUE SQUEEZE ******************** */ -static bNodeSocketType sh_node_squeeze_in[]= { - { SOCK_VALUE, 1, "Value", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Width", 1.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Center", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_squeeze_out[]= { - { SOCK_VALUE, 0, "Value", 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_squeeze(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, -bNodeStack **out) -{ - float vec[3]; - - nodestack_get_vec(vec, SOCK_VALUE, in[0]); - nodestack_get_vec(vec+1, SOCK_VALUE, in[1]); - nodestack_get_vec(vec+2, SOCK_VALUE, in[2]); - - out[0]->vec[0] = 1.0f / (1.0f + pow(2.71828183,-((vec[0]-vec[2])*vec[1]))) ; -} - -static int gpu_shader_squeeze(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "squeeze", in, out); -} - -void register_node_type_sh_squeeze(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_SQUEEZE, "Squeeze Value", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - sh_node_squeeze_in, sh_node_squeeze_out); - node_type_size(&ntype, 120, 110, 160); - node_type_storage(&ntype, "node_squeeze", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_squeeze); - node_type_gpu(&ntype, gpu_shader_squeeze); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c b/source/blender/nodes/intern/SHD_nodes/SHD_texture.c deleted file mode 100644 index 249e4eeca5d..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_texture.c - * \ingroup shdnodes - */ - - -#include "DNA_texture_types.h" - -#include "../SHD_util.h" - -/* **************** TEXTURE ******************** */ -static bNodeSocketType sh_node_texture_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, /* no limit */ - { -1, 0, "" } -}; -static bNodeSocketType sh_node_texture_out[]= { - { SOCK_VALUE, 0, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_RGBA , 0, "Color", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - if(data && node->id) { - ShadeInput *shi= ((ShaderCallData *)data)->shi; - TexResult texres; - float vec[3], nor[3]={0.0f, 0.0f, 0.0f}; - int retval; - short which_output = node->custom1; - - short thread = shi->thread; - - /* out: value, color, normal */ - - /* we should find out if a normal as output is needed, for now we do all */ - texres.nor= nor; - texres.tr= texres.tg= texres.tb= 0.0f; - - if(in[0]->hasinput) { - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - - if(in[0]->datatype==NS_OSA_VECTORS) { - float *fp= in[0]->data; - retval= multitex_nodes((Tex *)node->id, vec, fp, fp+3, shi->osatex, &texres, thread, which_output, NULL, NULL); - } - else if(in[0]->datatype==NS_OSA_VALUES) { - float *fp= in[0]->data; - float dxt[3], dyt[3]; - - dxt[0]= fp[0]; dxt[1]= dxt[2]= 0.0f; - dyt[0]= fp[1]; dyt[1]= dyt[2]= 0.0f; - retval= multitex_nodes((Tex *)node->id, vec, dxt, dyt, shi->osatex, &texres, thread, which_output, NULL, NULL); - } - else - retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL); - } - else { - VECCOPY(vec, shi->lo); - retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL); - } - - /* stupid exception */ - if( ((Tex *)node->id)->type==TEX_STUCCI) { - texres.tin= 0.5f + 0.7f*texres.nor[0]; - CLAMP(texres.tin, 0.0f, 1.0f); - } - - /* intensity and color need some handling */ - if(texres.talpha) - out[0]->vec[0]= texres.ta; - else - out[0]->vec[0]= texres.tin; - - if((retval & TEX_RGB)==0) { - out[1]->vec[0]= out[0]->vec[0]; - out[1]->vec[1]= out[0]->vec[0]; - out[1]->vec[2]= out[0]->vec[0]; - out[1]->vec[3]= 1.0f; - } - else { - out[1]->vec[0]= texres.tr; - out[1]->vec[1]= texres.tg; - out[1]->vec[2]= texres.tb; - out[1]->vec[3]= 1.0f; - } - - VECCOPY(out[2]->vec, nor); - - if(shi->do_preview) - nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys, shi->do_manage); - - } -} - -static int gpu_shader_texture(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - Tex *tex = (Tex*)node->id; - - if(tex && tex->type == TEX_IMAGE && tex->ima) { - GPUNodeLink *texlink = GPU_image(tex->ima, NULL); - return GPU_stack_link(mat, "texture_image", in, out, texlink); - } - else - return 0; -} - -void register_node_type_sh_texture(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW, - sh_node_texture_in, sh_node_texture_out); - node_type_size(&ntype, 120, 80, 240); - node_type_exec(&ntype, node_shader_exec_texture); - node_type_gpu(&ntype, gpu_shader_texture); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c deleted file mode 100644 index 86f832c12ee..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_valToRgb.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** VALTORGB ******************** */ -static bNodeSocketType sh_node_valtorgb_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_valtorgb_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - /* stack order in: fac */ - /* stack order out: col, alpha */ - - if(node->storage) { - float fac; - nodestack_get_vec(&fac, SOCK_VALUE, in[0]); - - do_colorband(node->storage, fac, out[0]->vec); - out[1]->vec[0]= out[0]->vec[3]; - } -} - -static void node_shader_init_valtorgb(bNode *node) -{ - node->storage= add_colorband(1); -} - -static int gpu_shader_valtorgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - float *array; - int size; - - colorband_table_RGBA(node->storage, &array, &size); - return GPU_stack_link(mat, "valtorgb", in, out, GPU_texture(size, array)); -} - -void register_node_type_sh_valtorgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - sh_node_valtorgb_in, sh_node_valtorgb_out); - node_type_size(&ntype, 240, 200, 300); - node_type_init(&ntype, node_shader_init_valtorgb); - node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_valtorgb); - node_type_gpu(&ntype, gpu_shader_valtorgb); - - nodeRegisterType(lb, &ntype); -} - - -/* **************** RGBTOBW ******************** */ -static bNodeSocketType sh_node_rgbtobw_in[]= { - { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType sh_node_rgbtobw_out[]= { - { SOCK_VALUE, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -static void node_shader_exec_rgbtobw(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) -{ - /* stack order out: bw */ - /* stack order in: col */ - - out[0]->vec[0]= in[0]->vec[0]*0.35f + in[0]->vec[1]*0.45f + in[0]->vec[2]*0.2f; -} - -static int gpu_shader_rgbtobw(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "rgbtobw", in, out); -} - -void register_node_type_sh_rgbtobw(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0, - sh_node_rgbtobw_in, sh_node_rgbtobw_out); - node_type_size(&ntype, 80, 40, 120); - node_type_exec(&ntype, node_shader_exec_rgbtobw); - node_type_gpu(&ntype, gpu_shader_rgbtobw); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_value.c b/source/blender/nodes/intern/SHD_nodes/SHD_value.c deleted file mode 100644 index 29a75bbf36d..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_value.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_value.c - * \ingroup shdnodes - */ - - -#include "../SHD_util.h" - -/* **************** VALUE ******************** */ -static bNodeSocketType sh_node_value_out[]= { - { SOCK_VALUE, 0, "Value", 0.5f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_value(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) -{ - bNodeSocket *sock= node->outputs.first; - - out[0]->vec[0]= sock->ns.vec[0]; -} - -static int gpu_shader_value(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - bNodeSocket *sock= node->outputs.first; - GPUNodeLink *vec = GPU_uniform(sock->ns.vec); - - return GPU_stack_link(mat, "set_value", in, out, vec); -} - -void register_node_type_sh_value(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, sh_node_value_out); - node_type_size(&ntype, 80, 50, 120); - node_type_exec(&ntype, node_shader_exec_value); - node_type_gpu(&ntype, gpu_shader_value); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c deleted file mode 100644 index 9979e488a71..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_nodes/SHD_vectMath.c - * \ingroup shdnodes - */ - - - -#include "../SHD_util.h" - - -/* **************** VECTOR MATH ******************** */ -static bNodeSocketType sh_node_vect_math_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_vect_math_out[]= { - { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 0, "Value", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_vect_math(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) -{ - float vec1[3], vec2[3]; - - nodestack_get_vec(vec1, SOCK_VECTOR, in[0]); - nodestack_get_vec(vec2, SOCK_VECTOR, in[1]); - - if(node->custom1 == 0) { /* Add */ - out[0]->vec[0]= vec1[0] + vec2[0]; - out[0]->vec[1]= vec1[1] + vec2[1]; - out[0]->vec[2]= vec1[2] + vec2[2]; - - out[1]->vec[0]= (fabs(out[0]->vec[0]) + fabs(out[0]->vec[0]) + fabs(out[0]->vec[0])) / 3; - } - else if(node->custom1 == 1) { /* Subtract */ - out[0]->vec[0]= vec1[0] - vec2[0]; - out[0]->vec[1]= vec1[1] - vec2[1]; - out[0]->vec[2]= vec1[2] - vec2[2]; - - out[1]->vec[0]= (fabs(out[0]->vec[0]) + fabs(out[0]->vec[0]) + fabs(out[0]->vec[0])) / 3; - } - else if(node->custom1 == 2) { /* Average */ - out[0]->vec[0]= vec1[0] + vec2[0]; - out[0]->vec[1]= vec1[1] + vec2[1]; - out[0]->vec[2]= vec1[2] + vec2[2]; - - out[1]->vec[0] = normalize_v3( out[0]->vec ); - } - else if(node->custom1 == 3) { /* Dot product */ - out[1]->vec[0]= (vec1[0] * vec2[0]) + (vec1[1] * vec2[1]) + (vec1[2] * vec2[2]); - } - else if(node->custom1 == 4) { /* Cross product */ - out[0]->vec[0]= (vec1[1] * vec2[2]) - (vec1[2] * vec2[1]); - out[0]->vec[1]= (vec1[2] * vec2[0]) - (vec1[0] * vec2[2]); - out[0]->vec[2]= (vec1[0] * vec2[1]) - (vec1[1] * vec2[0]); - - out[1]->vec[0] = normalize_v3( out[0]->vec ); - } - else if(node->custom1 == 5) { /* Normalize */ - if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ - out[0]->vec[0]= vec1[0]; - out[0]->vec[1]= vec1[1]; - out[0]->vec[2]= vec1[2]; - } - else { - out[0]->vec[0]= vec2[0]; - out[0]->vec[1]= vec2[1]; - out[0]->vec[2]= vec2[2]; - } - - out[1]->vec[0] = normalize_v3( out[0]->vec ); - } - -} - -static int gpu_shader_vect_math(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -{ - static const char *names[] = {"vec_math_add", "vec_math_sub", - "vec_math_average", "vec_math_dot", "vec_math_cross", - "vec_math_normalize"}; - - switch (node->custom1) { - case 0: - case 1: - case 2: - case 3: - case 4: - GPU_stack_link(mat, names[node->custom1], NULL, out, - GPU_socket(&in[0]), GPU_socket(&in[1])); - break; - case 5: - if(in[0].hasinput || !in[1].hasinput) - GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[0])); - else - GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[1])); - break; - default: - return 0; - } - - return 1; -} - -void register_node_type_sh_vect_math(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_VECT_MATH, "Vector Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - sh_node_vect_math_in, sh_node_vect_math_out); - node_type_size(&ntype, 80, 75, 140); - node_type_label(&ntype, node_vect_math_label); - node_type_storage(&ntype, "node_vect_math", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_vect_math); - node_type_gpu(&ntype, gpu_shader_vect_math); - - nodeRegisterType(lb, &ntype); -} - - diff --git a/source/blender/nodes/intern/SHD_util.c b/source/blender/nodes/intern/SHD_util.c deleted file mode 100644 index 190f68ce19a..00000000000 --- a/source/blender/nodes/intern/SHD_util.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_util.c - * \ingroup nodes - */ - - -#include "SHD_util.h" - - - - - -/* ****** */ - -void nodestack_get_vec(float *in, short type_in, bNodeStack *ns) -{ - float *from= ns->vec; - - if(type_in==SOCK_VALUE) { - if(ns->sockettype==SOCK_VALUE) - *in= *from; - else - *in= 0.333333f*(from[0]+from[1]+from[2]); - } - else if(type_in==SOCK_VECTOR) { - if(ns->sockettype==SOCK_VALUE) { - in[0]= from[0]; - in[1]= from[0]; - in[2]= from[0]; - } - else { - VECCOPY(in, from); - } - } - else { /* type_in==SOCK_RGBA */ - if(ns->sockettype==SOCK_RGBA) { - QUATCOPY(in, from); - } - else if(ns->sockettype==SOCK_VALUE) { - in[0]= from[0]; - in[1]= from[0]; - in[2]= from[0]; - in[3]= 1.0f; - } - else { - VECCOPY(in, from); - in[3]= 1.0f; - } - } -} - - -/* ******************* execute and parse ************ */ - -void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) -{ - ShaderCallData scd; - /* - @note: preserve material from ShadeInput for material id, nodetree execs change it - fix for bug "[#28012] Mat ID messy with shader nodes" - */ - Material *mat = shi->mat; - /* convert caller data to struct */ - scd.shi= shi; - scd.shr= shr; - - /* each material node has own local shaderesult, with optional copying */ - memset(shr, 0, sizeof(ShadeResult)); - - ntreeExecTree(ntree, &scd, shi->thread); /* threads */ - // @note: set material back to preserved material - shi->mat = mat; - /* better not allow negative for now */ - if(shr->combined[0]<0.0f) shr->combined[0]= 0.0f; - if(shr->combined[1]<0.0f) shr->combined[1]= 0.0f; - if(shr->combined[2]<0.0f) shr->combined[2]= 0.0f; - -} - -/* go over all used Geometry and Texture nodes, and return a texco flag */ -/* no group inside needed, this function is called for groups too */ -void ntreeShaderGetTexcoMode(bNodeTree *ntree, int r_mode, short *texco, int *mode) -{ - bNode *node; - bNodeSocket *sock; - int a; - - ntreeSocketUseFlags(ntree); - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type==SH_NODE_TEXTURE) { - if((r_mode & R_OSA) && node->id) { - Tex *tex= (Tex *)node->id; - if ELEM3(tex->type, TEX_IMAGE, TEX_PLUGIN, TEX_ENVMAP) - *texco |= TEXCO_OSA|NEED_UV; - } - /* usability exception... without input we still give the node orcos */ - sock= node->inputs.first; - if(sock==NULL || sock->link==NULL) - *texco |= TEXCO_ORCO|NEED_UV; - } - else if(node->type==SH_NODE_GEOMETRY) { - /* note; sockets always exist for the given type! */ - for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { - if(sock->flag & SOCK_IN_USE) { - switch(a) { - case GEOM_OUT_GLOB: - *texco |= TEXCO_GLOB|NEED_UV; break; - case GEOM_OUT_VIEW: - *texco |= TEXCO_VIEW|NEED_UV; break; - case GEOM_OUT_ORCO: - *texco |= TEXCO_ORCO|NEED_UV; break; - case GEOM_OUT_UV: - *texco |= TEXCO_UV|NEED_UV; break; - case GEOM_OUT_NORMAL: - *texco |= TEXCO_NORM|NEED_UV; break; - case GEOM_OUT_VCOL: - *texco |= NEED_UV; *mode |= MA_VERTEXCOL; break; - } - } - } - } - } -} - -/* nodes that use ID data get synced with local data */ -void nodeShaderSynchronizeID(bNode *node, int copyto) -{ - if(node->id==NULL) return; - - if(ELEM(node->type, SH_NODE_MATERIAL, SH_NODE_MATERIAL_EXT)) { - bNodeSocket *sock; - Material *ma= (Material *)node->id; - int a; - - /* hrmf, case in loop isnt super fast, but we dont edit 100s of material at same time either! */ - for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { - if(!(sock->flag & SOCK_HIDDEN)) { - if(copyto) { - switch(a) { - case MAT_IN_COLOR: - VECCOPY(&ma->r, sock->ns.vec); break; - case MAT_IN_SPEC: - VECCOPY(&ma->specr, sock->ns.vec); break; - case MAT_IN_REFL: - ma->ref= sock->ns.vec[0]; break; - case MAT_IN_MIR: - VECCOPY(&ma->mirr, sock->ns.vec); break; - case MAT_IN_AMB: - ma->amb= sock->ns.vec[0]; break; - case MAT_IN_EMIT: - ma->emit= sock->ns.vec[0]; break; - case MAT_IN_SPECTRA: - ma->spectra= sock->ns.vec[0]; break; - case MAT_IN_RAY_MIRROR: - ma->ray_mirror= sock->ns.vec[0]; break; - case MAT_IN_ALPHA: - ma->alpha= sock->ns.vec[0]; break; - case MAT_IN_TRANSLUCENCY: - ma->translucency= sock->ns.vec[0]; break; - } - } - else { - switch(a) { - case MAT_IN_COLOR: - VECCOPY(sock->ns.vec, &ma->r); break; - case MAT_IN_SPEC: - VECCOPY(sock->ns.vec, &ma->specr); break; - case MAT_IN_REFL: - sock->ns.vec[0]= ma->ref; break; - case MAT_IN_MIR: - VECCOPY(sock->ns.vec, &ma->mirr); break; - case MAT_IN_AMB: - sock->ns.vec[0]= ma->amb; break; - case MAT_IN_EMIT: - sock->ns.vec[0]= ma->emit; break; - case MAT_IN_SPECTRA: - sock->ns.vec[0]= ma->spectra; break; - case MAT_IN_RAY_MIRROR: - sock->ns.vec[0]= ma->ray_mirror; break; - case MAT_IN_ALPHA: - sock->ns.vec[0]= ma->alpha; break; - case MAT_IN_TRANSLUCENCY: - sock->ns.vec[0]= ma->translucency; break; - } - } - } - } - } - -} diff --git a/source/blender/nodes/intern/SHD_util.h b/source/blender/nodes/intern/SHD_util.h deleted file mode 100644 index e6b1377067d..00000000000 --- a/source/blender/nodes/intern/SHD_util.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/SHD_util.h - * \ingroup nodes - */ - - -#ifndef SHD_NODE_UTIL_H_ -#define SHD_NODE_UTIL_H_ - -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_color_types.h" -#include "DNA_ID.h" -#include "DNA_image_types.h" -#include "DNA_material_types.h" -#include "DNA_node_types.h" -#include "DNA_object_types.h" -#include "DNA_scene_types.h" -#include "DNA_texture_types.h" - -#include "BKE_blender.h" -#include "BKE_colortools.h" -#include "BKE_global.h" -#include "BKE_image.h" -#include "BKE_main.h" -#include "BKE_material.h" -#include "BKE_node.h" -#include "BKE_texture.h" - -#include "BKE_library.h" - -#include "../SHD_node.h" -#include "node_util.h" - -#include "BLI_math.h" -#include "BLI_blenlib.h" -#include "BLI_rand.h" -#include "BLI_threads.h" -#include "BLI_utildefines.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "RE_pipeline.h" -#include "RE_shader_ext.h" - -#include "GPU_material.h" - -/* ********* exec data struct, remains internal *********** */ - -typedef struct ShaderCallData { - ShadeInput *shi; /* from render pipe */ - ShadeResult *shr; /* from render pipe */ -} ShaderCallData; - -/* output socket defines */ -#define GEOM_OUT_GLOB 0 -#define GEOM_OUT_LOCAL 1 -#define GEOM_OUT_VIEW 2 -#define GEOM_OUT_ORCO 3 -#define GEOM_OUT_UV 4 -#define GEOM_OUT_NORMAL 5 -#define GEOM_OUT_VCOL 6 -#define GEOM_OUT_FRONTBACK 7 - - -/* input socket defines */ -#define MAT_IN_COLOR 0 -#define MAT_IN_SPEC 1 -#define MAT_IN_REFL 2 -#define MAT_IN_NORMAL 3 -#define MAT_IN_MIR 4 -#define MAT_IN_AMB 5 -#define MAT_IN_EMIT 6 -#define MAT_IN_SPECTRA 7 -#define MAT_IN_RAY_MIRROR 8 -#define MAT_IN_ALPHA 9 -#define MAT_IN_TRANSLUCENCY 10 -#define NUM_MAT_IN 11 /* for array size */ - -/* output socket defines */ -#define MAT_OUT_COLOR 0 -#define MAT_OUT_ALPHA 1 -#define MAT_OUT_NORMAL 2 -#define MAT_OUT_DIFFUSE 3 -#define MAT_OUT_SPEC 4 -#define MAT_OUT_AO 5 - - -extern void node_ID_title_cb(void *node_v, void *unused_v); -void nodestack_get_vec(float *in, short type_in, bNodeStack *ns); - -#endif diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_at.c b/source/blender/nodes/intern/TEX_nodes/TEX_at.c deleted file mode 100644 index d5980b786b0..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_at.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): R Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_at.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Texture", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VECTOR, 1, "Coordinates", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Texture", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - TexParams np = *p; - float new_co[3]; - np.co = new_co; - - tex_input_vec(new_co, in[1], p, thread); - tex_input_rgba(out, in[0], &np, thread); -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_at(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_AT, "At", NODE_CLASS_DISTORT, 0, - inputs, outputs); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c b/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c deleted file mode 100644 index 0eb982496a9..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_bricks.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -#include - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Bricks 1", 0.596f, 0.282f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Bricks 2", 0.632f, 0.504f, 0.05f, 1.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Mortar", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Thickness", 0.02f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Bias", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { SOCK_VALUE, 1, "Brick Width", 0.5f, 0.0f, 0.0f, 0.0f, 0.001f, 99.0f }, - { SOCK_VALUE, 1, "Row Height", 0.25f, 0.0f, 0.0f, 0.0f, 0.001f, 99.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void init(bNode *node) { - node->custom3 = 0.5; /* offset */ - node->custom4 = 1.0; /* squash */ -} - -static float noise(int n) /* fast integer noise */ -{ - int nn; - n = (n >> 13) ^ n; - nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff; - return 0.5f * ((float)nn / 1073741824.0f); -} - -static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - float *co = p->co; - - float x = co[0]; - float y = co[1]; - - int bricknum, rownum; - float offset = 0; - float ins_x, ins_y; - float tint; - - float bricks1[4]; - float bricks2[4]; - float mortar[4]; - - float mortar_thickness = tex_input_value(in[3], p, thread); - float bias = tex_input_value(in[4], p, thread); - float brick_width = tex_input_value(in[5], p, thread); - float row_height = tex_input_value(in[6], p, thread); - - tex_input_rgba(bricks1, in[0], p, thread); - tex_input_rgba(bricks2, in[1], p, thread); - tex_input_rgba(mortar, in[2], p, thread); - - rownum = (int)floor(y / row_height); - - if( node->custom1 && node->custom2 ) { - brick_width *= ((int)(rownum) % node->custom2 ) ? 1.0f : node->custom4; /* squash */ - offset = ((int)(rownum) % node->custom1 ) ? 0 : (brick_width*node->custom3); /* offset */ - } - - bricknum = (int)floor((x+offset) / brick_width); - - ins_x = (x+offset) - brick_width*bricknum; - ins_y = y - row_height*rownum; - - tint = noise((rownum << 16) + (bricknum & 0xFFFF)) + bias; - CLAMP(tint,0.0f,1.0f); - - if( ins_x < mortar_thickness || ins_y < mortar_thickness || - ins_x > (brick_width - mortar_thickness) || - ins_y > (row_height - mortar_thickness) ) { - QUATCOPY( out, mortar ); - } else { - QUATCOPY( out, bricks1 ); - ramp_blend( MA_RAMP_BLEND, out, out+1, out+2, tint, bricks2 ); - } -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_bricks(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_BRICKS, "Bricks", NODE_CLASS_PATTERN, NODE_PREVIEW|NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 150, 60, 150); - node_type_init(&ntype, init); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_checker.c b/source/blender/nodes/intern/TEX_nodes/TEX_checker.c deleted file mode 100644 index c6c25ba1a8a..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_checker.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_checker.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" -#include - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color1", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Color2", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Size", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 100.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float x = p->co[0]; - float y = p->co[1]; - float z = p->co[2]; - float sz = tex_input_value(in[2], p, thread); - - /* 0.00001 because of unit sized stuff */ - int xi = (int)fabs(floor(0.00001f + x / sz)); - int yi = (int)fabs(floor(0.00001f + y / sz)); - int zi = (int)fabs(floor(0.00001f + z / sz)); - - if( (xi % 2 == yi % 2) == (zi % 2) ) { - tex_input_rgba(out, in[0], p, thread); - } else { - tex_input_rgba(out, in[1], p, thread); - } -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_checker(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_CHECKER, "Checker", NODE_CLASS_PATTERN, NODE_PREVIEW|NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 100, 60, 150); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_compose.c b/source/blender/nodes/intern/TEX_nodes/TEX_compose.c deleted file mode 100644 index 6eae78ec3de..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_compose.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_compose.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_VALUE, 1, "Red", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Green", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Blue", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - int i; - for(i = 0; i < 4; i++) - out[i] = tex_input_value(in[i], p, thread); -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_compose(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_COMPOSE, "Compose RGBA", NODE_CLASS_OP_COLOR, 0, - inputs, outputs); - node_type_size(&ntype, 100, 60, 150); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_coord.c b/source/blender/nodes/intern/TEX_nodes/TEX_coord.c deleted file mode 100644 index 3c46971f0d4..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_coord.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Mathias Panzenböck (panzi) . - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_coord.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType outputs[]= { - { SOCK_VECTOR, 0, "Coordinates", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { -1, 0, "" } -}; - -static void vectorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **UNUSED(in), short UNUSED(thread)) -{ - out[0] = p->co[0]; - out[1] = p->co[1]; - out[2] = p->co[2]; -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &vectorfn, data); -} - -void register_node_type_tex_coord(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_COORD, "Coordinates", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, outputs); - node_type_size(&ntype, 120, 110, 160); - node_type_storage(&ntype, "node_coord", NULL, NULL); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_curves.c b/source/blender/nodes/intern/TEX_nodes/TEX_curves.c deleted file mode 100644 index b7af6c748ff..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_curves.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_curves.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -/* **************** CURVE Time ******************** */ - -/* custom1 = sfra, custom2 = efra */ -static bNodeSocketType time_outputs[]= { - { SOCK_VALUE, 0, "Value", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void time_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNUSED(in), short UNUSED(thread)) -{ - /* stack order output: fac */ - float fac= 0.0f; - - if(node->custom1 < node->custom2) - fac = (p->cfra - node->custom1)/(float)(node->custom2-node->custom1); - - fac = curvemapping_evaluateF(node->storage, 0, fac); - out[0] = CLAMPIS(fac, 0.0f, 1.0f); -} - -static void time_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &time_colorfn, data); -} - - -static void time_init(bNode* node) -{ - node->custom1= 1; - node->custom2= 250; - node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); -} - -void register_node_type_tex_curve_time(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_CURVE_TIME, "Time", NODE_CLASS_INPUT, NODE_OPTIONS, - NULL, time_outputs); - node_type_size(&ntype, 140, 100, 320); - node_type_init(&ntype, time_init); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, time_exec); - - nodeRegisterType(lb, &ntype); -} - -/* **************** CURVE RGB ******************** */ -static bNodeSocketType rgb_inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType rgb_outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f}, - { -1, 0, "" } -}; - -static void rgb_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - float cin[4]; - tex_input_rgba(cin, in[0], p, thread); - - curvemapping_evaluateRGBF(node->storage, out, cin); - out[3] = cin[3]; -} - -static void rgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &rgb_colorfn, data); -} - -static void rgb_init(bNode *node) -{ - node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); -} - -void register_node_type_tex_curve_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - rgb_inputs, rgb_outputs); - node_type_size(&ntype, 200, 140, 320); - node_type_init(&ntype, rgb_init); - node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, rgb_exec); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c b/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c deleted file mode 100644 index f27d8c98716..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_decompose.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" -#include - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_VALUE, 0, "Red", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 0, "Green", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 0, "Blue", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void valuefn_r(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - tex_input_rgba(out, in[0], p, thread); - *out = out[0]; -} - -static void valuefn_g(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - tex_input_rgba(out, in[0], p, thread); - *out = out[1]; -} - -static void valuefn_b(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - tex_input_rgba(out, in[0], p, thread); - *out = out[2]; -} - -static void valuefn_a(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - tex_input_rgba(out, in[0], p, thread); - *out = out[3]; -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &valuefn_r, data); - tex_output(node, in, out[1], &valuefn_g, data); - tex_output(node, in, out[2], &valuefn_b, data); - tex_output(node, in, out[3], &valuefn_a, data); -} - -void register_node_type_tex_decompose(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_DECOMPOSE, "Decompose RGBA", NODE_CLASS_OP_COLOR, 0, - inputs, outputs); - node_type_size(&ntype, 100, 60, 150); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_distance.c b/source/blender/nodes/intern/TEX_nodes/TEX_distance.c deleted file mode 100644 index b460844ba4a..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_distance.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Mathias Panzenböck (panzi) . - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_distance.c - * \ingroup texnodes - */ - - -#include -#include "BLI_math.h" -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_VECTOR, 1, "Coordinate 1", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { SOCK_VECTOR, 1, "Coordinate 2", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_VALUE, 0, "Value", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void valuefn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float co1[3], co2[3]; - - tex_input_vec(co1, in[0], p, thread); - tex_input_vec(co2, in[1], p, thread); - - *out = len_v3v3(co2, co1); -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &valuefn, data); -} - -void register_node_type_tex_distance(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_DISTANCE, "Distance", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 120, 110, 160); - node_type_storage(&ntype, "node_distance", NULL, NULL); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c b/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c deleted file mode 100644 index 471d8db2c03..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Juho Vepsäläinen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - - -static bNodeSocketType inputs[]= { - { SOCK_VALUE, 1, "Hue", 0.0f, 0.0f, 0.0f, 0.0f, -0.5f, 0.5f }, - { SOCK_VALUE, 1, "Saturation", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f }, - { SOCK_VALUE, 1, "Value", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f }, - { SOCK_VALUE, 1, "Factor", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float hue, float sat, float val, float *in, float fac) -{ - if(fac != 0 && (hue != 0.5f || sat != 1 || val != 1)) { - float col[3], hsv[3], mfac= 1.0f - fac; - - rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); - hsv[0]+= (hue - 0.5f); - if(hsv[0]>1.0f) hsv[0]-=1.0f; else if(hsv[0]<0.0f) hsv[0]+= 1.0f; - hsv[1]*= sat; - if(hsv[1]>1.0f) hsv[1]= 1.0f; else if(hsv[1]<0.0f) hsv[1]= 0.0f; - hsv[2]*= val; - if(hsv[2]>1.0f) hsv[2]= 1.0f; else if(hsv[2]<0.0f) hsv[2]= 0.0f; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); - - out[0]= mfac*in[0] + fac*col[0]; - out[1]= mfac*in[1] + fac*col[1]; - out[2]= mfac*in[2] + fac*col[2]; - } - else { - QUATCOPY(out, in); - } -} - -static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - float hue = tex_input_value(in[0], p, thread); - float sat = tex_input_value(in[1], p, thread); - float val = tex_input_value(in[2], p, thread); - float fac = tex_input_value(in[3], p, thread); - - float col[4]; - tex_input_rgba(col, in[4], p, thread); - - hue += 0.5f; /* [-.5, .5] -> [0, 1] */ - - do_hue_sat_fac(node, out, hue, sat, val, col, fac); - - out[3] = col[3]; -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_hue_sat(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 150, 80, 250); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_image.c b/source/blender/nodes/intern/TEX_nodes/TEX_image.c deleted file mode 100644 index a54ca4bb119..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_image.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_image.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNUSED(in), short UNUSED(thread)) -{ - float x = p->co[0]; - float y = p->co[1]; - Image *ima= (Image *)node->id; - ImageUser *iuser= (ImageUser *)node->storage; - - if( ima ) { - ImBuf *ibuf = BKE_image_get_ibuf(ima, iuser); - if( ibuf ) { - float xsize, ysize; - float xoff, yoff; - int px, py; - - float *result; - - xsize = ibuf->x / 2; - ysize = ibuf->y / 2; - xoff = yoff = -1; - - px = (int)( (x-xoff) * xsize ); - py = (int)( (y-yoff) * ysize ); - - if( (!xsize) || (!ysize) ) return; - - if( !ibuf->rect_float ) { - BLI_lock_thread(LOCK_IMAGE); - if( !ibuf->rect_float ) - IMB_float_from_rect(ibuf); - BLI_unlock_thread(LOCK_IMAGE); - } - - while( px < 0 ) px += ibuf->x; - while( py < 0 ) py += ibuf->y; - while( px >= ibuf->x ) px -= ibuf->x; - while( py >= ibuf->y ) py -= ibuf->y; - - result = ibuf->rect_float + py*ibuf->x*4 + px*4; - QUATCOPY( out, result ); - } - } -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -static void init(bNode* node) -{ - ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); - node->storage= iuser; - iuser->sfra= 1; - iuser->fie_ima= 2; - iuser->ok= 1; -} - -void register_node_type_tex_image(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_IMAGE, "Image", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS, - NULL, outputs); - node_type_size(&ntype, 120, 80, 300); - node_type_init(&ntype, init); - node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_invert.c b/source/blender/nodes/intern/TEX_nodes/TEX_invert.c deleted file mode 100644 index e908bdcff07..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_invert.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_invert.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -/* **************** INVERT ******************** */ -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float col[4]; - - tex_input_rgba(col, in[0], p, thread); - - col[0] = 1.0f - col[0]; - col[1] = 1.0f - col[1]; - col[2] = 1.0f - col[2]; - - VECCOPY(out, col); - out[3] = col[3]; -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_invert(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 90, 80, 100); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_math.c b/source/blender/nodes/intern/TEX_nodes/TEX_math.c deleted file mode 100644 index 18468bdd55c..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_math.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_math.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - - -/* **************** SCALAR MATH ******************** */ -static bNodeSocketType inputs[]= { - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_VALUE, 0, "Value", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - float in0 = tex_input_value(in[0], p, thread); - float in1 = tex_input_value(in[1], p, thread); - - switch(node->custom1){ - - case 0: /* Add */ - *out= in0 + in1; - break; - case 1: /* Subtract */ - *out= in0 - in1; - break; - case 2: /* Multiply */ - *out= in0 * in1; - break; - case 3: /* Divide */ - { - if(in1==0) /* We don't want to divide by zero. */ - *out= 0.0; - else - *out= in0 / in1; - } - break; - case 4: /* Sine */ - { - *out= sin(in0); - } - break; - case 5: /* Cosine */ - { - *out= cos(in0); - } - break; - case 6: /* Tangent */ - { - *out= tan(in0); - } - break; - case 7: /* Arc-Sine */ - { - /* Can't do the impossible... */ - if( in0 <= 1 && in0 >= -1 ) - *out= asin(in0); - else - *out= 0.0; - } - break; - case 8: /* Arc-Cosine */ - { - /* Can't do the impossible... */ - if( in0 <= 1 && in0 >= -1 ) - *out= acos(in0); - else - *out= 0.0; - } - break; - case 9: /* Arc-Tangent */ - { - *out= atan(in0); - } - break; - case 10: /* Power */ - { - /* Only raise negative numbers by full integers */ - if( in0 >= 0 ) { - out[0]= pow(in0, in1); - } else { - float y_mod_1 = fmod(in1, 1); - if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) { - *out = pow(in0, floor(in1 + 0.5f)); - } else { - *out = 0.0; - } - } - } - break; - case 11: /* Logarithm */ - { - /* Don't want any imaginary numbers... */ - if( in0 > 0 && in1 > 0 ) - *out= log(in0) / log(in1); - else - *out= 0.0; - } - break; - case 12: /* Minimum */ - { - if( in0 < in1 ) - *out= in0; - else - *out= in1; - } - break; - case 13: /* Maximum */ - { - if( in0 > in1 ) - *out= in0; - else - *out= in1; - } - break; - case 14: /* Round */ - { - *out= (in0<0)?(int)(in0 - 0.5f):(int)(in0 + 0.5f); - } - break; - - case 15: /* Less Than */ - { - if( in0 < in1 ) - *out= 1.0f; - else - *out= 0.0f; - } - break; - - case 16: /* Greater Than */ - { - if( in0 > in1 ) - *out= 1.0f; - else - *out= 0.0f; - } - break; - - default: - fprintf(stderr, - "%s:%d: unhandeld value in switch statement: %d\n", - __FILE__, __LINE__, node->custom1); - } -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &valuefn, data); -} - -void register_node_type_tex_math(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 120, 110, 160); - node_type_label(&ntype, node_math_label); - node_type_storage(&ntype, "node_math", NULL, NULL); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c b/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c deleted file mode 100644 index c7668c27b99..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_mixRgb.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -/* **************** MIX RGB ******************** */ -static bNodeSocketType inputs[]= { - { SOCK_VALUE, 1, "Factor", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Color1", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f }, - { SOCK_RGBA , 1, "Color2", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - float fac = tex_input_value(in[0], p, thread); - float col1[4], col2[4]; - - tex_input_rgba(col1, in[1], p, thread); - tex_input_rgba(col2, in[2], p, thread); - - CLAMP(fac, 0.0f, 1.0f); - - QUATCOPY(out, col1); - ramp_blend(node->custom1, out, out+1, out+2, fac, col2); -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_mix_rgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 100, 60, 150); - node_type_label(&ntype, node_blend_label); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_output.c b/source/blender/nodes/intern/TEX_nodes/TEX_output.c deleted file mode 100644 index 046ad724507..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_output.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_output.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -/* **************** COMPOSITE ******************** */ -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -/* applies to render pipeline */ -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - TexCallData *cdata = (TexCallData *)data; - TexResult *target = cdata->target; - - if(cdata->do_preview) { - TexParams params; - params_from_cdata(¶ms, cdata); - - if(in[1] && in[1]->hasinput && !in[0]->hasinput) - tex_input_rgba(&target->tr, in[1], ¶ms, cdata->thread); - else - tex_input_rgba(&target->tr, in[0], ¶ms, cdata->thread); - tex_do_preview(node, params.co, &target->tr); - } - else { - /* 0 means don't care, so just use first */ - if(cdata->which_output == node->custom1 || (cdata->which_output == 0 && node->custom1 == 1)) { - TexParams params; - params_from_cdata(¶ms, cdata); - - tex_input_rgba(&target->tr, in[0], ¶ms, cdata->thread); - - target->tin = (target->tr + target->tg + target->tb) / 3.0f; - target->talpha = 1; - - if(target->nor) { - if(in[1] && in[1]->hasinput) - tex_input_vec(target->nor, in[1], ¶ms, cdata->thread); - else - target->nor = NULL; - } - } - } -} - -static void unique_name(bNode *node) -{ - TexNodeOutput *tno = (TexNodeOutput *)node->storage; - char *new_name = NULL; - int new_len = 0; - int suffix; - bNode *i; - char *name = tno->name; - - i = node; - while(i->prev) i = i->prev; - for(; i; i=i->next) { - if( - i == node || - i->type != TEX_NODE_OUTPUT || - strcmp(name, ((TexNodeOutput*)(i->storage))->name) - ) - continue; - - if(!new_name) { - int len = strlen(name); - if(len >= 4 && sscanf(name + len - 4, ".%03d", &suffix) == 1) { - new_len = len; - } else { - suffix = 0; - new_len = len + 4; - if(new_len > 31) - new_len = 31; - } - - new_name = MEM_mallocN(new_len + 1, "new_name"); - strcpy(new_name, name); - name = new_name; - } - sprintf(new_name + new_len - 4, ".%03d", ++suffix); - } - - if(new_name) { - strcpy(tno->name, new_name); - MEM_freeN(new_name); - } -} - -static void assign_index(struct bNode *node) -{ - bNode *tnode; - int index = 1; - - tnode = node; - while(tnode->prev) - tnode = tnode->prev; - - check_index: - for(; tnode; tnode= tnode->next) - if(tnode->type == TEX_NODE_OUTPUT && tnode != node) - if(tnode->custom1 == index) { - index ++; - goto check_index; - } - - node->custom1 = index; -} - -static void init(bNode *node) -{ - TexNodeOutput *tno = MEM_callocN(sizeof(TexNodeOutput), "TEX_output"); - node->storage= tno; - - strcpy(tno->name, "Default"); - unique_name(node); - assign_index(node); -} - -static void copy(bNode *orig, bNode *new) -{ - node_copy_standard_storage(orig, new); - unique_name(new); - assign_index(new); -} - -void register_node_type_tex_output(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_OUTPUT, "Output", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS, - inputs, NULL); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, init); - node_type_storage(&ntype, "TexNodeOutput", node_free_standard_storage, copy); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_proc.c b/source/blender/nodes/intern/TEX_nodes/TEX_proc.c deleted file mode 100644 index 294c1f7322f..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_proc.c +++ /dev/null @@ -1,325 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_proc.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -#include "RE_shader_ext.h" - -/* - In this file: wrappers to use procedural textures as nodes -*/ - - -static bNodeSocketType outputs_both[]= { - { SOCK_RGBA, 0, "Color", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs_color_only[]= { - { SOCK_RGBA, 0, "Color", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -/* Inputs common to all, #defined because nodes will need their own inputs too */ -#define I 2 /* count */ -#define COMMON_INPUTS \ - { SOCK_RGBA, 1, "Color 1", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, \ - { SOCK_RGBA, 1, "Color 2", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f } - -/* Calls multitex and copies the result to the outputs. Called by xxx_exec, which handles inputs. */ -static void do_proc(float *result, TexParams *p, float *col1, float *col2, char is_normal, Tex *tex, short thread) -{ - TexResult texres; - int textype; - - if(is_normal) { - texres.nor = result; - } - else - texres.nor = NULL; - - textype = multitex_nodes(tex, p->co, p->dxt, p->dyt, p->osatex, - &texres, thread, 0, p->shi, p->mtex); - - if(is_normal) - return; - - if(textype & TEX_RGB) { - QUATCOPY(result, &texres.tr); - } - else { - QUATCOPY(result, col1); - ramp_blend(MA_RAMP_BLEND, result, result+1, result+2, texres.tin, col2); - } -} - -typedef void (*MapFn) (Tex *tex, bNodeStack **in, TexParams *p, short thread); - -static void texfn( - float *result, - TexParams *p, - bNode *node, - bNodeStack **in, - char is_normal, - MapFn map_inputs, - short thread) -{ - Tex tex = *((Tex*)(node->storage)); - float col1[4], col2[4]; - tex_input_rgba(col1, in[0], p, thread); - tex_input_rgba(col2, in[1], p, thread); - - map_inputs(&tex, in, p, thread); - - do_proc(result, p, col1, col2, is_normal, &tex, thread); -} - -static int count_outputs(bNode *node) -{ - bNodeSocket *sock; - int num = 0; - for(sock= node->outputs.first; sock; sock= sock->next) { - num++; - } - return num; -} - -/* Boilerplate generators */ - -#define ProcNoInputs(name) \ - static void name##_map_inputs(Tex *UNUSED(tex), bNodeStack **UNUSED(in), TexParams *UNUSED(p), short UNUSED(thread)) \ - {} - -#define ProcDef(name) \ - static void name##_colorfn(float *result, TexParams *p, bNode *node, bNodeStack **in, short thread) \ - { \ - texfn(result, p, node, in, 0, &name##_map_inputs, thread); \ - } \ - static void name##_normalfn(float *result, TexParams *p, bNode *node, bNodeStack **in, short thread) \ - { \ - texfn(result, p, node, in, 1, &name##_map_inputs, thread); \ - } \ - static void name##_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) \ - { \ - int outs = count_outputs(node); \ - if(outs >= 1) tex_output(node, in, out[0], &name##_colorfn, data); \ - if(outs >= 2) tex_output(node, in, out[1], &name##_normalfn, data); \ - } - - -/* --- VORONOI -- */ -static bNodeSocketType voronoi_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "W1", 1.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f }, - { SOCK_VALUE, 1, "W2", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f }, - { SOCK_VALUE, 1, "W3", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f }, - { SOCK_VALUE, 1, "W4", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f }, - - { SOCK_VALUE, 1, "iScale", 1.0f, 0.0f, 0.0f, 0.0f, 0.01f, 10.0f }, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 4.0f }, - - { -1, 0, "" } -}; -static void voronoi_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->vn_w1 = tex_input_value(in[I+0], p, thread); - tex->vn_w2 = tex_input_value(in[I+1], p, thread); - tex->vn_w3 = tex_input_value(in[I+2], p, thread); - tex->vn_w4 = tex_input_value(in[I+3], p, thread); - - tex->ns_outscale = tex_input_value(in[I+4], p, thread); - tex->noisesize = tex_input_value(in[I+5], p, thread); -} -ProcDef(voronoi) - -/* --- BLEND -- */ -static bNodeSocketType blend_inputs[]= { - COMMON_INPUTS, - { -1, 0, "" } -}; -ProcNoInputs(blend) -ProcDef(blend) - -/* -- MAGIC -- */ -static bNodeSocketType magic_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f }, - { -1, 0, "" } -}; -static void magic_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->turbul = tex_input_value(in[I+0], p, thread); -} -ProcDef(magic) - -/* --- MARBLE --- */ -static bNodeSocketType marble_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f }, - { -1, 0, "" } -}; -static void marble_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->noisesize = tex_input_value(in[I+0], p, thread); - tex->turbul = tex_input_value(in[I+1], p, thread); -} -ProcDef(marble) - -/* --- CLOUDS --- */ -static bNodeSocketType clouds_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { -1, 0, "" } -}; -static void clouds_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->noisesize = tex_input_value(in[I+0], p, thread); -} -ProcDef(clouds) - -/* --- DISTORTED NOISE --- */ -static bNodeSocketType distnoise_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { SOCK_VALUE, 1, "Distortion", 1.00f, 0.0f, 0.0f, 0.0f, 0.0000f, 10.0f }, - { -1, 0, "" } -}; -static void distnoise_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->noisesize = tex_input_value(in[I+0], p, thread); - tex->dist_amount = tex_input_value(in[I+1], p, thread); -} -ProcDef(distnoise) - -/* --- WOOD --- */ -static bNodeSocketType wood_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f }, - { -1, 0, "" } -}; -static void wood_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->noisesize = tex_input_value(in[I+0], p, thread); - tex->turbul = tex_input_value(in[I+1], p, thread); -} -ProcDef(wood) - -/* --- MUSGRAVE --- */ -static bNodeSocketType musgrave_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "H", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { SOCK_VALUE, 1, "Lacunarity", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6.0f }, - { SOCK_VALUE, 1, "Octaves", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 8.0f }, - - { SOCK_VALUE, 1, "iScale", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f }, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { -1, 0, "" } -}; -static void musgrave_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->mg_H = tex_input_value(in[I+0], p, thread); - tex->mg_lacunarity = tex_input_value(in[I+1], p, thread); - tex->mg_octaves = tex_input_value(in[I+2], p, thread); - tex->ns_outscale = tex_input_value(in[I+3], p, thread); - tex->noisesize = tex_input_value(in[I+4], p, thread); -} -ProcDef(musgrave) - -/* --- NOISE --- */ -static bNodeSocketType noise_inputs[]= { - COMMON_INPUTS, - { -1, 0, "" } -}; -ProcNoInputs(noise) -ProcDef(noise) - -/* --- STUCCI --- */ -static bNodeSocketType stucci_inputs[]= { - COMMON_INPUTS, - { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f }, - { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f }, - { -1, 0, "" } -}; -static void stucci_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) -{ - tex->noisesize = tex_input_value(in[I+0], p, thread); - tex->turbul = tex_input_value(in[I+1], p, thread); -} -ProcDef(stucci) - -/* --- */ - -static void init(bNode *node) -{ - Tex *tex = MEM_callocN(sizeof(Tex), "Tex"); - node->storage= tex; - - default_tex(tex); - tex->type = node->type - TEX_NODE_PROC; - - if(tex->type == TEX_WOOD) - tex->stype = TEX_BANDNOISE; - -} - -/* Node type definitions */ -#define TexDef(TEXTYPE, outputs, name, Name) \ -void register_node_type_tex_proc_##name(ListBase *lb) \ -{ \ - static bNodeType ntype; \ - \ - node_type_base(&ntype, TEX_NODE_PROC+TEXTYPE, Name, NODE_CLASS_TEXTURE, NODE_PREVIEW|NODE_OPTIONS, name##_inputs, outputs); \ - node_type_size(&ntype, 140, 80, 140); \ - node_type_init(&ntype, init); \ - node_type_storage(&ntype, "Tex", node_free_standard_storage, node_copy_standard_storage); \ - node_type_exec(&ntype, name##_exec); \ - \ - nodeRegisterType(lb, &ntype); \ -} - -#define C outputs_color_only -#define CV outputs_both - -TexDef(TEX_VORONOI, CV, voronoi, "Voronoi" ) -TexDef(TEX_BLEND, C, blend, "Blend" ) -TexDef(TEX_MAGIC, C, magic, "Magic" ) -TexDef(TEX_MARBLE, CV, marble, "Marble" ) -TexDef(TEX_CLOUDS, CV, clouds, "Clouds" ) -TexDef(TEX_WOOD, CV, wood, "Wood" ) -TexDef(TEX_MUSGRAVE, CV, musgrave, "Musgrave" ) -TexDef(TEX_NOISE, C, noise, "Noise" ) -TexDef(TEX_STUCCI, CV, stucci, "Stucci" ) -TexDef(TEX_DISTNOISE, CV, distnoise, "Distorted Noise" ) diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c b/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c deleted file mode 100644 index 1be6152a2b3..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_rotate.c - * \ingroup texnodes - */ - - -#include - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Turns", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f }, - { SOCK_VECTOR, 1, "Axis", 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 1.0f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void rotate(float new_co[3], float a, float ax[3], float co[3]) -{ - float para[3]; - float perp[3]; - float cp[3]; - - float cos_a = cos(a * (float)(2*M_PI)); - float sin_a = sin(a * (float)(2*M_PI)); - - // x' = xcosa + n(n.x)(1-cosa) + (x*n)sina - - mul_v3_v3fl(perp, co, cos_a); - mul_v3_v3fl(para, ax, dot_v3v3(co, ax)*(1 - cos_a)); - - cross_v3_v3v3(cp, ax, co); - mul_v3_fl(cp, sin_a); - - new_co[0] = para[0] + perp[0] + cp[0]; - new_co[1] = para[1] + perp[1] + cp[1]; - new_co[2] = para[2] + perp[2] + cp[2]; -} - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float new_co[3], new_dxt[3], new_dyt[3], a, ax[3]; - - a= tex_input_value(in[1], p, thread); - tex_input_vec(ax, in[2], p, thread); - - rotate(new_co, a, ax, p->co); - if (p->osatex) { - rotate(new_dxt, a, ax, p->dxt); - rotate(new_dyt, a, ax, p->dyt); - } - - { - TexParams np = *p; - np.co = new_co; - np.dxt = new_dxt; - np.dyt = new_dyt; - tex_input_rgba(out, in[0], &np, thread); - } -} -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_rotate(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_ROTATE, "Rotate", NODE_CLASS_DISTORT, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 140, 100, 320); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_scale.c b/source/blender/nodes/intern/TEX_nodes/TEX_scale.c deleted file mode 100644 index cfffcfda2e5..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_scale.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_scale.c - * \ingroup texnodes - */ - - -#include -#include "../TEX_util.h" - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VECTOR, 1, "Scale", 1.0f, 1.0f, 1.0f, 0.0f, -10.0f, 10.0f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float scale[3], new_co[3], new_dxt[3], new_dyt[3]; - TexParams np = *p; - - np.co = new_co; - np.dxt = new_dxt; - np.dyt = new_dyt; - - tex_input_vec(scale, in[1], p, thread); - - mul_v3_v3v3(new_co, p->co, scale); - if (p->osatex) { - mul_v3_v3v3(new_dxt, p->dxt, scale); - mul_v3_v3v3(new_dyt, p->dyt, scale); - } - - tex_input_rgba(out, in[0], &np, thread); -} -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_scale(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_SCALE, "Scale", NODE_CLASS_DISTORT, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 90, 80, 100); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c deleted file mode 100644 index c58595866af..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_texture.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -#include "RE_shader_ext.h" - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color1", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_RGBA, 1, "Color2", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - Tex *nodetex = (Tex *)node->id; - static float red[] = {1,0,0,1}; - static float white[] = {1,1,1,1}; - float co[3], dxt[3], dyt[3]; - - copy_v3_v3(co, p->co); - copy_v3_v3(dxt, p->dxt); - copy_v3_v3(dyt, p->dyt); - - if(node->custom2 || node->need_exec==0) { - /* this node refers to its own texture tree! */ - QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red ); - } - else if(nodetex) { - TexResult texres; - int textype; - float nor[] = {0,0,0}; - float col1[4], col2[4]; - - tex_input_rgba(col1, in[0], p, thread); - tex_input_rgba(col2, in[1], p, thread); - - texres.nor = nor; - textype = multitex_nodes(nodetex, co, dxt, dyt, p->osatex, - &texres, thread, 0, p->shi, p->mtex); - - if(textype & TEX_RGB) { - QUATCOPY(out, &texres.tr); - } - else { - QUATCOPY(out, col1); - ramp_blend(MA_RAMP_BLEND, out, out+1, out+2, texres.tin, col2); - } - } -} - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_texture(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 120, 80, 240); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_translate.c b/source/blender/nodes/intern/TEX_nodes/TEX_translate.c deleted file mode 100644 index 8f7d6d837d7..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_translate.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_translate.c - * \ingroup texnodes - */ - - -#include -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float offset[3], new_co[3]; - TexParams np = *p; - np.co = new_co; - - tex_input_vec(offset, in[1], p, thread); - - new_co[0] = p->co[0] + offset[0]; - new_co[1] = p->co[1] + offset[1]; - new_co[2] = p->co[2] + offset[2]; - - tex_input_rgba(out, in[0], &np, thread); -} -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &colorfn, data); -} - -void register_node_type_tex_translate(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_TRANSLATE, "Translate", NODE_CLASS_DISTORT, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 90, 80, 100); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c deleted file mode 100644 index e430c0c9a95..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Jucas. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_valToNor.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -static bNodeSocketType inputs[]= { - { SOCK_VALUE, 1, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { SOCK_VALUE, 1, "Nabla", 0.025f, 0.0f, 0.0f, 0.0f, 0.001f, 0.1f }, - { -1, 0, "" } -}; - -static bNodeSocketType outputs[]= { - { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; - -static void normalfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float new_co[3]; - float *co = p->co; - - float nabla = tex_input_value(in[1], p, thread); - float val; - float nor[3]; - - TexParams np = *p; - np.co = new_co; - - val = tex_input_value(in[0], p, thread); - - new_co[0] = co[0] + nabla; - new_co[1] = co[1]; - new_co[2] = co[2]; - nor[0] = tex_input_value(in[0], &np, thread); - - new_co[0] = co[0]; - new_co[1] = co[1] + nabla; - nor[1] = tex_input_value(in[0], &np, thread); - - new_co[1] = co[1]; - new_co[2] = co[2] + nabla; - nor[2] = tex_input_value(in[0], &np, thread); - - out[0] = val-nor[0]; - out[1] = val-nor[1]; - out[2] = val-nor[2]; -} -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &normalfn, data); -} - -void register_node_type_tex_valtonor(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_VALTONOR, "Value to Normal", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - inputs, outputs); - node_type_size(&ntype, 90, 80, 100); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c deleted file mode 100644 index 8f59828081c..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_valToRgb.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" - -/* **************** VALTORGB ******************** */ -static bNodeSocketType valtorgb_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType valtorgb_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void valtorgb_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) -{ - if(node->storage) { - float fac = tex_input_value(in[0], p, thread); - - do_colorband(node->storage, fac, out); - } -} - -static void valtorgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &valtorgb_colorfn, data); -} - -static void valtorgb_init(bNode *node) -{ - node->storage = add_colorband(1); -} - -void register_node_type_tex_valtorgb(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS, - valtorgb_in, valtorgb_out); - node_type_size(&ntype, 240, 200, 300); - node_type_init(&ntype, valtorgb_init); - node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, valtorgb_exec); - - nodeRegisterType(lb, &ntype); -} - -/* **************** RGBTOBW ******************** */ -static bNodeSocketType rgbtobw_in[]= { - { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; -static bNodeSocketType rgbtobw_out[]= { - { SOCK_VALUE, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - - -static void rgbtobw_valuefn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) -{ - float cin[4]; - tex_input_rgba(cin, in[0], p, thread); - - *out = cin[0] * 0.35f + cin[1] * 0.45f + cin[2] * 0.2f; -} - -static void rgbtobw_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - tex_output(node, in, out[0], &rgbtobw_valuefn, data); -} - -void register_node_type_tex_rgbtobw(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0, - rgbtobw_in, rgbtobw_out); - node_type_size(&ntype, 80, 40, 120); - node_type_exec(&ntype, rgbtobw_exec); - - nodeRegisterType(lb, &ntype); -} - diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c b/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c deleted file mode 100644 index e917e525e17..00000000000 --- a/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): Robin Allen - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_nodes/TEX_viewer.c - * \ingroup texnodes - */ - - -#include "../TEX_util.h" -#include "TEX_node.h" -#include - -static bNodeSocketType inputs[]= { - { SOCK_RGBA, 1, "Color", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f }, - { -1, 0, "" } -}; -static bNodeSocketType outputs[]= { - { -1, 0, "" } -}; - -static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) -{ - TexCallData *cdata = (TexCallData *)data; - - if(cdata->do_preview) { - TexParams params; - float col[4]; - params_from_cdata(¶ms, cdata); - - tex_input_rgba(col, in[0], ¶ms, cdata->thread); - tex_do_preview(node, params.previewco, col); - } -} - -void register_node_type_tex_viewer(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, TEX_NODE_VIEWER, "Viewer", NODE_CLASS_OUTPUT, NODE_PREVIEW, - inputs, outputs); - node_type_size(&ntype, 100, 60, 150); - node_type_exec(&ntype, exec); - - nodeRegisterType(lb, &ntype); -} diff --git a/source/blender/nodes/intern/TEX_util.c b/source/blender/nodes/intern/TEX_util.c deleted file mode 100644 index b5e27ca2ccb..00000000000 --- a/source/blender/nodes/intern/TEX_util.c +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_util.c - * \ingroup nodes - */ - - -/* - HOW TEXTURE NODES WORK - - In contrast to Shader nodes, which place a color into the output - stack when executed, Texture nodes place a TexDelegate* there. To - obtain a color value from this, a node further up the chain reads - the TexDelegate* from its input stack, and uses tex_call_delegate to - retrieve the color from the delegate. - - comments: (ton) - - This system needs recode, a node system should rely on the stack, and - callbacks for nodes only should evaluate own node, not recursively go - over other previous ones. -*/ - -#include -#include "TEX_util.h" - -#define PREV_RES 128 /* default preview resolution */ - -void tex_call_delegate(TexDelegate *dg, float *out, TexParams *params, short thread) -{ - if(dg->node->need_exec) { - dg->fn(out, params, dg->node, dg->in, thread); - - if(dg->cdata->do_preview) - tex_do_preview(dg->node, params->previewco, out); - } -} - -static void tex_input(float *out, int sz, bNodeStack *in, TexParams *params, short thread) -{ - TexDelegate *dg = in->data; - if(dg) { - tex_call_delegate(dg, in->vec, params, thread); - - if(in->hasoutput && in->sockettype == SOCK_VALUE) - in->vec[1] = in->vec[2] = in->vec[0]; - } - memcpy(out, in->vec, sz * sizeof(float)); -} - -void tex_input_vec(float *out, bNodeStack *in, TexParams *params, short thread) -{ - tex_input(out, 3, in, params, thread); -} - -void tex_input_rgba(float *out, bNodeStack *in, TexParams *params, short thread) -{ - tex_input(out, 4, in, params, thread); - - if(in->hasoutput && in->sockettype == SOCK_VALUE) - { - out[1] = out[2] = out[0]; - out[3] = 1; - } - - if(in->hasoutput && in->sockettype == SOCK_VECTOR) { - out[0] = out[0] * .5f + .5f; - out[1] = out[1] * .5f + .5f; - out[2] = out[2] * .5f + .5f; - out[3] = 1; - } -} - -float tex_input_value(bNodeStack *in, TexParams *params, short thread) -{ - float out[4]; - tex_input_vec(out, in, params, thread); - return out[0]; -} - -void params_from_cdata(TexParams *out, TexCallData *in) -{ - out->co = in->co; - out->dxt = in->dxt; - out->dyt = in->dyt; - out->previewco = in->co; - out->osatex = in->osatex; - out->cfra = in->cfra; - out->shi = in->shi; - out->mtex = in->mtex; -} - -void tex_do_preview(bNode *node, float *co, float *col) -{ - bNodePreview *preview= node->preview; - - if(preview) { - int xs= ((co[0] + 1.0f)*0.5f)*preview->xsize; - int ys= ((co[1] + 1.0f)*0.5f)*preview->ysize; - - nodeAddToPreview(node, col, xs, ys, 0); /* 0 = no color management */ - } -} - -void tex_output(bNode *node, bNodeStack **in, bNodeStack *out, TexFn texfn, TexCallData *cdata) -{ - TexDelegate *dg; - if(!out->data) - /* Freed in tex_end_exec (node.c) */ - dg = out->data = MEM_mallocN(sizeof(TexDelegate), "tex delegate"); - else - dg = out->data; - - dg->cdata= cdata; - dg->fn = texfn; - dg->node = node; - memcpy(dg->in, in, MAX_SOCKET * sizeof(bNodeStack*)); - dg->type = out->sockettype; -} - -void ntreeTexCheckCyclics(struct bNodeTree *ntree) -{ - bNode *node; - for(node= ntree->nodes.first; node; node= node->next) { - - if(node->type == TEX_NODE_TEXTURE && node->id) - { - /* custom2 stops the node from rendering */ - if(node->custom1) { - node->custom2 = 1; - node->custom1 = 0; - } else { - Tex *tex = (Tex *)node->id; - - node->custom2 = 0; - - node->custom1 = 1; - if(tex->use_nodes && tex->nodetree) { - ntreeTexCheckCyclics(tex->nodetree); - } - node->custom1 = 0; - } - } - - } -} - -int ntreeTexExecTree( - bNodeTree *nodes, - TexResult *texres, - float *co, - float *dxt, float *dyt, - int osatex, - short thread, - Tex *UNUSED(tex), - short which_output, - int cfra, - int preview, - ShadeInput *shi, - MTex *mtex -){ - TexCallData data; - float *nor= texres->nor; - int retval = TEX_INT; - - data.co = co; - data.dxt = dxt; - data.dyt = dyt; - data.osatex = osatex; - data.target = texres; - data.do_preview = preview; - data.thread = thread; - data.which_output = which_output; - data.cfra= cfra; - data.mtex= mtex; - data.shi= shi; - - ntreeExecTree(nodes, &data, thread); - - if(texres->nor) retval |= TEX_NOR; - retval |= TEX_RGB; - /* confusing stuff; the texture output node sets this to NULL to indicate no normal socket was set - however, the texture code checks this for other reasons (namely, a normal is required for material) */ - texres->nor= nor; - - return retval; -} - diff --git a/source/blender/nodes/intern/TEX_util.h b/source/blender/nodes/intern/TEX_util.h deleted file mode 100644 index 0875bcd52bf..00000000000 --- a/source/blender/nodes/intern/TEX_util.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/nodes/intern/TEX_util.h - * \ingroup nodes - */ - - -#ifndef TEX_NODE_UTIL_H_ -#define TEX_NODE_UTIL_H_ - -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_color_types.h" -#include "DNA_ipo_types.h" -#include "DNA_ID.h" -#include "DNA_image_types.h" -#include "DNA_material_types.h" -#include "DNA_node_types.h" -#include "DNA_object_types.h" -#include "DNA_scene_types.h" -#include "DNA_texture_types.h" - -#include "BKE_blender.h" -#include "BKE_colortools.h" -#include "BKE_global.h" -#include "BKE_image.h" -#include "BKE_main.h" -#include "BKE_material.h" -#include "BKE_node.h" -#include "BKE_texture.h" - -#include "BKE_library.h" - -#include "../SHD_node.h" -#include "node_util.h" - -#include "BLI_math.h" -#include "BLI_blenlib.h" -#include "BLI_rand.h" -#include "BLI_threads.h" -#include "BLI_utildefines.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "RE_pipeline.h" -#include "RE_shader_ext.h" - -typedef struct TexCallData { - TexResult *target; - float *co; - float *dxt, *dyt; - int osatex; - char do_preview; - short thread; - short which_output; - int cfra; - - ShadeInput *shi; - MTex *mtex; -} TexCallData; - -typedef struct TexParams { - float *co; - float *dxt, *dyt; - float *previewco; - int cfra; - int osatex; - - /* optional. we don't really want these here, but image - textures need to do mapping & color correction */ - ShadeInput *shi; - MTex *mtex; -} TexParams; - -typedef void(*TexFn) (float *out, TexParams *params, bNode *node, bNodeStack **in, short thread); - -typedef struct TexDelegate { - TexCallData *cdata; - TexFn fn; - bNode *node; - bNodeStack *in[MAX_SOCKET]; - int type; -} TexDelegate; - -void tex_call_delegate(TexDelegate*, float *out, TexParams *params, short thread); - -void tex_input_rgba(float *out, bNodeStack *in, TexParams *params, short thread); -void tex_input_vec(float *out, bNodeStack *in, TexParams *params, short thread); -float tex_input_value(bNodeStack *in, TexParams *params, short thread); - -void tex_output(bNode *node, bNodeStack **in, bNodeStack *out, TexFn texfn, TexCallData *data); -void tex_do_preview(bNode *node, float *coord, float *col); - -void params_from_cdata(TexParams *out, TexCallData *in); - -#endif diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c new file mode 100644 index 00000000000..76203c52293 --- /dev/null +++ b/source/blender/nodes/intern/node_common.c @@ -0,0 +1,982 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Lukas Toenne. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/intern/node_common.c + * \ingroup nodes + */ + + +#include + +#include "DNA_action_types.h" +#include "DNA_anim_types.h" +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_string.h" +#include "BLI_utildefines.h" + +#include "BKE_action.h" +#include "BKE_animsys.h" +#include "BKE_global.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BLI_math.h" +#include "BKE_node.h" +#include "BKE_utildefines.h" + +#include "RNA_access.h" +#include "RNA_types.h" + +#include "MEM_guardedalloc.h" + +#include "node_common.h" +#include "node_exec.h" +#include "NOD_socket.h" + +/**** Group ****/ + +bNodeSocket *node_group_find_input(bNode *gnode, bNodeSocket *gsock) +{ + bNodeSocket *sock; + for (sock=gnode->inputs.first; sock; sock=sock->next) + if (sock->groupsock == gsock) + return sock; + return NULL; +} + +bNodeSocket *node_group_find_output(bNode *gnode, bNodeSocket *gsock) +{ + bNodeSocket *sock; + for (sock=gnode->outputs.first; sock; sock=sock->next) + if (sock->groupsock == gsock) + return sock; + return NULL; +} + +bNodeSocket *node_group_add_extern_socket(bNodeTree *UNUSED(ntree), ListBase *lb, int in_out, bNodeSocket *gsock) +{ + bNodeSocket *sock; + + if (gsock->flag & SOCK_INTERNAL) + return NULL; + + sock= MEM_callocN(sizeof(bNodeSocket), "sock"); + + /* make a copy of the group socket */ + *sock = *gsock; + sock->link = NULL; + sock->next = sock->prev = NULL; + sock->new_sock = NULL; + + /* group sockets are dynamically added */ + sock->flag |= SOCK_DYNAMIC; + + sock->own_index = gsock->own_index; + sock->groupsock = gsock; + sock->limit = (in_out==SOCK_IN ? 1 : 0xFFF); + + if (gsock->default_value) + sock->default_value = MEM_dupallocN(gsock->default_value); + + if(lb) + BLI_addtail(lb, sock); + + return sock; +} + +bNode *node_group_make_from_selected(bNodeTree *ntree) +{ + bNodeLink *link, *linkn; + bNode *node, *gnode, *nextn; + bNodeTree *ngroup; + bNodeSocket *gsock; + ListBase anim_basepaths = {NULL, NULL}; + float min[2], max[2]; + int totnode=0; + bNodeTemplate ntemp; + + INIT_MINMAX2(min, max); + + /* is there something to group? also do some clearing */ + for(node= ntree->nodes.first; node; node= node->next) { + if(node->flag & NODE_SELECT) { + /* no groups in groups */ + if(node->type==NODE_GROUP) + return NULL; + DO_MINMAX2( (&node->locx), min, max); + totnode++; + } + node->done= 0; + } + if(totnode==0) return NULL; + + /* check if all connections are OK, no unselected node has both + inputs and outputs to a selection */ + for(link= ntree->links.first; link; link= link->next) { + if(link->fromnode && link->tonode && link->fromnode->flag & NODE_SELECT) + link->tonode->done |= 1; + if(link->fromnode && link->tonode && link->tonode->flag & NODE_SELECT) + link->fromnode->done |= 2; + } + + for(node= ntree->nodes.first; node; node= node->next) { + if((node->flag & NODE_SELECT)==0) + if(node->done==3) + break; + } + if(node) + return NULL; + + /* OK! new nodetree */ + ngroup= ntreeAddTree("NodeGroup", ntree->type, NODE_GROUP); + + /* move nodes over */ + for(node= ntree->nodes.first; node; node= nextn) { + nextn= node->next; + if(node->flag & NODE_SELECT) { + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (ntree->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* change node-collection membership */ + BLI_remlink(&ntree->nodes, node); + BLI_addtail(&ngroup->nodes, node); + + node->locx-= 0.5f*(min[0]+max[0]); + node->locy-= 0.5f*(min[1]+max[1]); + } + } + + /* move animation data over */ + if (ntree->adt) { + LinkData *ld, *ldn=NULL; + + BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ldn) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + } + + /* make group node */ + ntemp.type = NODE_GROUP; + ntemp.ngroup = ngroup; + gnode= nodeAddNode(ntree, &ntemp); + gnode->locx= 0.5f*(min[0]+max[0]); + gnode->locy= 0.5f*(min[1]+max[1]); + + /* relink external sockets */ + for(link= ntree->links.first; link; link= linkn) { + linkn= link->next; + + if(link->fromnode && link->tonode && (link->fromnode->flag & link->tonode->flag & NODE_SELECT)) { + BLI_remlink(&ntree->links, link); + BLI_addtail(&ngroup->links, link); + } + else if(link->tonode && (link->tonode->flag & NODE_SELECT)) { + gsock = node_group_expose_socket(ngroup, link->tosock, SOCK_IN); + link->tosock->link = nodeAddLink(ngroup, NULL, gsock, link->tonode, link->tosock); + link->tosock = node_group_add_extern_socket(ntree, &gnode->inputs, SOCK_IN, gsock); + link->tonode = gnode; + } + else if(link->fromnode && (link->fromnode->flag & NODE_SELECT)) { + /* search for existing group node socket */ + for (gsock=ngroup->outputs.first; gsock; gsock=gsock->next) + if (gsock->link && gsock->link->fromsock==link->fromsock) + break; + if (!gsock) { + gsock = node_group_expose_socket(ngroup, link->fromsock, SOCK_OUT); + gsock->link = nodeAddLink(ngroup, link->fromnode, link->fromsock, NULL, gsock); + link->fromsock = node_group_add_extern_socket(ntree, &gnode->outputs, SOCK_OUT, gsock); + } + else + link->fromsock = node_group_find_output(gnode, gsock); + link->fromnode = gnode; + } + } + + ngroup->update |= NTREE_UPDATE; + ntreeUpdateTree(ngroup); + ntree->update |= NTREE_UPDATE_NODES|NTREE_UPDATE_LINKS; + ntreeUpdateTree(ntree); + + return gnode; +} + +/* XXX This is a makeshift function to have useful initial group socket values. + * In the end this should be implemented by a flexible socket data conversion system, + * which is yet to be implemented. The idea is that beside default standard conversions, + * such as int-to-float, it should be possible to quickly select a conversion method or + * a chain of conversions for each input, whenever there is more than one option. + * E.g. a vector-to-float conversion could use either of the x/y/z components or + * the vector length. + * + * In the interface this could be implemented by a pseudo-script textbox on linked inputs, + * with quick selection from a predefined list of conversion options. Some Examples: + * - vector component 'z' (vector->float): "z" + * - greyscale color (float->color): "grey" + * - color luminance (color->float): "lum" + * - matrix column 2 length (matrix->vector->float): "col[1].len" + * - mesh vertex coordinate 'y' (mesh->vertex->vector->float): "vertex.co.y" + * + * The actual conversion is then done by a series of conversion functions, + * which are defined in the socket type structs. + */ +static void convert_socket_value(bNodeSocket *from, bNodeSocket *to) +{ + /* XXX only one of these pointers is valid! just putting them here for convenience */ + bNodeSocketValueFloat *fromfloat= (bNodeSocketValueFloat*)from->default_value; + bNodeSocketValueInt *fromint= (bNodeSocketValueInt*)from->default_value; + bNodeSocketValueBoolean *frombool= (bNodeSocketValueBoolean*)from->default_value; + bNodeSocketValueVector *fromvector= (bNodeSocketValueVector*)from->default_value; + bNodeSocketValueRGBA *fromrgba= (bNodeSocketValueRGBA*)from->default_value; + + bNodeSocketValueFloat *tofloat= (bNodeSocketValueFloat*)to->default_value; + bNodeSocketValueInt *toint= (bNodeSocketValueInt*)to->default_value; + bNodeSocketValueBoolean *tobool= (bNodeSocketValueBoolean*)to->default_value; + bNodeSocketValueVector *tovector= (bNodeSocketValueVector*)to->default_value; + bNodeSocketValueRGBA *torgba= (bNodeSocketValueRGBA*)to->default_value; + + switch (from->type) { + case SOCK_FLOAT: + switch (to->type) { + case SOCK_FLOAT: + tofloat->value = fromfloat->value; + break; + case SOCK_INT: + toint->value = (int)fromfloat->value; + break; + case SOCK_BOOLEAN: + tobool->value = (fromfloat->value > 0.0f); + break; + case SOCK_VECTOR: + tovector->value[0] = tovector->value[1] = tovector->value[2] = fromfloat->value; + break; + case SOCK_RGBA: + torgba->value[0] = torgba->value[1] = torgba->value[2] = torgba->value[3] = fromfloat->value; + break; + } + break; + case SOCK_INT: + switch (to->type) { + case SOCK_FLOAT: + tofloat->value = (float)fromint->value; + break; + case SOCK_INT: + toint->value = fromint->value; + break; + case SOCK_BOOLEAN: + tobool->value = (fromint->value > 0); + break; + case SOCK_VECTOR: + tovector->value[0] = tovector->value[1] = tovector->value[2] = (float)fromint->value; + break; + case SOCK_RGBA: + torgba->value[0] = torgba->value[1] = torgba->value[2] = torgba->value[3] = (float)fromint->value; + break; + } + break; + case SOCK_BOOLEAN: + switch (to->type) { + case SOCK_FLOAT: + tofloat->value = (float)frombool->value; + break; + case SOCK_INT: + toint->value = (int)frombool->value; + break; + case SOCK_BOOLEAN: + tobool->value = frombool->value; + break; + case SOCK_VECTOR: + tovector->value[0] = tovector->value[1] = tovector->value[2] = (float)frombool->value; + break; + case SOCK_RGBA: + torgba->value[0] = torgba->value[1] = torgba->value[2] = torgba->value[3] = (float)frombool->value; + break; + } + break; + case SOCK_VECTOR: + switch (to->type) { + case SOCK_FLOAT: + tofloat->value = fromvector->value[0]; + break; + case SOCK_INT: + toint->value = (int)fromvector->value[0]; + break; + case SOCK_BOOLEAN: + tobool->value = (fromvector->value[0] > 0.0f); + break; + case SOCK_VECTOR: + copy_v3_v3(tovector->value, fromvector->value); + break; + case SOCK_RGBA: + copy_v3_v3(torgba->value, fromvector->value); + torgba->value[3] = 1.0f; + break; + } + break; + case SOCK_RGBA: + switch (to->type) { + case SOCK_FLOAT: + tofloat->value = fromrgba->value[0]; + break; + case SOCK_INT: + toint->value = (int)fromrgba->value[0]; + break; + case SOCK_BOOLEAN: + tobool->value = (fromrgba->value[0] > 0.0f); + break; + case SOCK_VECTOR: + copy_v3_v3(tovector->value, fromrgba->value); + break; + case SOCK_RGBA: + copy_v4_v4(torgba->value, fromrgba->value); + break; + } + break; + } +} + +static void copy_socket_value(bNodeSocket *from, bNodeSocket *to) +{ + /* XXX only one of these pointers is valid! just putting them here for convenience */ + bNodeSocketValueFloat *fromfloat= (bNodeSocketValueFloat*)from->default_value; + bNodeSocketValueInt *fromint= (bNodeSocketValueInt*)from->default_value; + bNodeSocketValueBoolean *frombool= (bNodeSocketValueBoolean*)from->default_value; + bNodeSocketValueVector *fromvector= (bNodeSocketValueVector*)from->default_value; + bNodeSocketValueRGBA *fromrgba= (bNodeSocketValueRGBA*)from->default_value; + + bNodeSocketValueFloat *tofloat= (bNodeSocketValueFloat*)to->default_value; + bNodeSocketValueInt *toint= (bNodeSocketValueInt*)to->default_value; + bNodeSocketValueBoolean *tobool= (bNodeSocketValueBoolean*)to->default_value; + bNodeSocketValueVector *tovector= (bNodeSocketValueVector*)to->default_value; + bNodeSocketValueRGBA *torgba= (bNodeSocketValueRGBA*)to->default_value; + + if (from->type != to->type) + return; + + switch (from->type) { + case SOCK_FLOAT: + *tofloat = *fromfloat; + break; + case SOCK_INT: + *toint = *fromint; + break; + case SOCK_BOOLEAN: + *tobool = *frombool; + break; + case SOCK_VECTOR: + *tovector = *fromvector; + break; + case SOCK_RGBA: + *torgba = *fromrgba; + break; + } +} + +/* returns 1 if its OK */ +int node_group_ungroup(bNodeTree *ntree, bNode *gnode) +{ + bNodeLink *link, *linkn; + bNode *node, *nextn; + bNodeTree *ngroup, *wgroup; + ListBase anim_basepaths = {NULL, NULL}; + + ngroup= (bNodeTree *)gnode->id; + if(ngroup==NULL) return 0; + + /* clear new pointers, set in copytree */ + for(node= ntree->nodes.first; node; node= node->next) + node->new_node= NULL; + + /* wgroup is a temporary copy of the NodeTree we're merging in + * - all of wgroup's nodes are transferred across to their new home + * - ngroup (i.e. the source NodeTree) is left unscathed + */ + wgroup= ntreeCopyTree(ngroup); + + /* add the nodes into the ntree */ + for(node= wgroup->nodes.first; node; node= nextn) { + nextn= node->next; + + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (wgroup->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* migrate node */ + BLI_remlink(&wgroup->nodes, node); + BLI_addtail(&ntree->nodes, node); + + node->locx+= gnode->locx; + node->locy+= gnode->locy; + + node->flag |= NODE_SELECT; + } + + /* restore external links to and from the gnode */ + for(link= ntree->links.first; link; link= link->next) { + if (link->fromnode==gnode) { + if (link->fromsock->groupsock) { + bNodeSocket *gsock= link->fromsock->groupsock; + if (gsock->link) { + if (gsock->link->fromnode) { + /* NB: using the new internal copies here! the groupsock pointer still maps to the old tree */ + link->fromnode = (gsock->link->fromnode ? gsock->link->fromnode->new_node : NULL); + link->fromsock = gsock->link->fromsock->new_sock; + } + else { + /* group output directly maps to group input */ + bNodeSocket *insock= node_group_find_input(gnode, gsock->link->fromsock); + if (insock->link) { + link->fromnode = insock->link->fromnode; + link->fromsock = insock->link->fromsock; + } + } + } + else { + /* copy the default input value from the group socket default to the external socket */ + convert_socket_value(gsock, link->tosock); + } + } + } + } + /* remove internal output links, these are not used anymore */ + for(link=wgroup->links.first; link; link= linkn) { + linkn = link->next; + if (!link->tonode) + nodeRemLink(wgroup, link); + } + /* restore links from internal nodes */ + for(link= wgroup->links.first; link; link= link->next) { + /* indicates link to group input */ + if (!link->fromnode) { + /* NB: can't use find_group_node_input here, + * because gnode sockets still point to the old tree! + */ + bNodeSocket *insock; + for (insock= gnode->inputs.first; insock; insock= insock->next) + if (insock->groupsock->new_sock == link->fromsock) + break; + if (insock->link) { + link->fromnode = insock->link->fromnode; + link->fromsock = insock->link->fromsock; + } + else { + /* copy the default input value from the group node socket default to the internal socket */ + convert_socket_value(insock, link->tosock); + nodeRemLink(wgroup, link); + } + } + } + + /* add internal links to the ntree */ + for(link= wgroup->links.first; link; link= linkn) { + linkn= link->next; + BLI_remlink(&wgroup->links, link); + BLI_addtail(&ntree->links, link); + } + + /* and copy across the animation */ + if (wgroup->adt) { + LinkData *ld, *ldn=NULL; + bAction *waction; + + /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */ + waction = wgroup->adt->action = copy_action(wgroup->adt->action); + + /* now perform the moving */ + BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ldn) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + + /* free temp action too */ + free_libblock(&G.main->action, waction); + } + + /* delete the group instance. this also removes old input links! */ + nodeFreeNode(ntree, gnode); + + /* free the group tree (takes care of user count) */ + free_libblock(&G.main->nodetree, wgroup); + + ntree->update |= NTREE_UPDATE_NODES|NTREE_UPDATE_LINKS; + ntreeUpdateTree(ntree); + + return 1; +} + +bNodeSocket *node_group_add_socket(bNodeTree *ngroup, const char *name, int type, int in_out) +{ + bNodeSocketType *stype = ntreeGetSocketType(type); + bNodeSocket *gsock = MEM_callocN(sizeof(bNodeSocket), "bNodeSocket"); + + strncpy(gsock->name, name, sizeof(gsock->name)); + gsock->type = type; + /* group sockets are dynamically added */ + gsock->flag |= SOCK_DYNAMIC; + + gsock->next = gsock->prev = NULL; + gsock->new_sock = NULL; + gsock->link = NULL; + /* assign new unique index */ + gsock->own_index = ngroup->cur_index++; + gsock->limit = (in_out==SOCK_IN ? 0xFFF : 1); + + if (stype->value_structsize > 0) + gsock->default_value = MEM_callocN(stype->value_structsize, "default socket value"); + + BLI_addtail(in_out==SOCK_IN ? &ngroup->inputs : &ngroup->outputs, gsock); + + ngroup->update |= (in_out==SOCK_IN ? NTREE_UPDATE_GROUP_IN : NTREE_UPDATE_GROUP_OUT); + + return gsock; +} + +bNodeSocket *node_group_expose_socket(bNodeTree *ngroup, bNodeSocket *sock, int in_out) +{ + bNodeSocket *gsock= node_group_add_socket(ngroup, sock->name, sock->type, in_out); + + /* initialize the default value. */ + copy_socket_value(sock, gsock); + + return gsock; +} + +void node_group_expose_all_sockets(bNodeTree *ngroup) +{ + bNode *node; + bNodeSocket *sock, *gsock; + + for (node=ngroup->nodes.first; node; node=node->next) { + for (sock=node->inputs.first; sock; sock=sock->next) { + if (!sock->link && !(sock->flag & SOCK_HIDDEN)) { + gsock = node_group_add_socket(ngroup, sock->name, sock->type, SOCK_IN); + + /* initialize the default value. */ + copy_socket_value(sock, gsock); + + sock->link = nodeAddLink(ngroup, NULL, gsock, node, sock); + } + } + for (sock=node->outputs.first; sock; sock=sock->next) { + if (nodeCountSocketLinks(ngroup, sock)==0 && !(sock->flag & SOCK_HIDDEN)) { + gsock = node_group_add_socket(ngroup, sock->name, sock->type, SOCK_OUT); + + /* initialize the default value. */ + copy_socket_value(sock, gsock); + + gsock->link = nodeAddLink(ngroup, node, sock, NULL, gsock); + } + } + } +} + +void node_group_remove_socket(bNodeTree *ngroup, bNodeSocket *gsock, int in_out) +{ + nodeRemSocketLinks(ngroup, gsock); + + switch (in_out) { + case SOCK_IN: + BLI_remlink(&ngroup->inputs, gsock); + ngroup->update |= NTREE_UPDATE_GROUP_IN; + break; + case SOCK_OUT: + BLI_remlink(&ngroup->outputs, gsock); + ngroup->update |= NTREE_UPDATE_GROUP_OUT; + break; + } + + if (gsock->default_value) + MEM_freeN(gsock->default_value); + + MEM_freeN(gsock); +} + +/* groups display their internal tree name as label */ +const char *node_group_label(bNode *node) +{ + return (node->id)? node->id->name+2: "Missing Datablock"; +} + +int node_group_valid(bNodeTree *ntree, bNodeTemplate *ntemp) +{ + bNodeTemplate childtemp; + bNode *node; + + /* regular groups cannot be recursive */ + if (ntree == ntemp->ngroup) + return 0; + + /* make sure all children are valid */ + for (node=ntemp->ngroup->nodes.first; node; node=node->next) { + childtemp = nodeMakeTemplate(node); + if (!nodeValid(ntree, &childtemp)) + return 0; + } + + return 1; +} + +bNodeTemplate node_group_template(bNode *node) +{ + bNodeTemplate ntemp; + ntemp.type = NODE_GROUP; + ntemp.ngroup = (bNodeTree*)node->id; + return ntemp; +} + +void node_group_init(bNodeTree *ntree, bNode *node, bNodeTemplate *ntemp) +{ + node->id = (ID*)ntemp->ngroup; + + /* NB: group socket input/output roles are inverted internally! + * Group "inputs" work as outputs in links and vice versa. + */ + if (ntemp->ngroup) { + bNodeSocket *gsock; + for (gsock=ntemp->ngroup->inputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->inputs, SOCK_IN, gsock); + for (gsock=ntemp->ngroup->outputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->outputs, SOCK_OUT, gsock); + } +} + +static bNodeSocket *group_verify_socket(bNodeTree *ntree, ListBase *lb, int in_out, bNodeSocket *gsock) +{ + bNodeSocket *sock; + + /* group sockets tagged as internal are not exposed ever */ + if (gsock->flag & SOCK_INTERNAL) + return NULL; + + for(sock= lb->first; sock; sock= sock->next) { + if(sock->own_index==gsock->own_index) + break; + } + if(sock) { + sock->groupsock = gsock; + + strcpy(sock->name, gsock->name); + sock->type= gsock->type; + + /* XXX hack: group socket input/output roles are inverted internally, + * need to change the limit value when making actual node sockets from them. + */ + sock->limit = (in_out==SOCK_IN ? 1 : 0xFFF); + + BLI_remlink(lb, sock); + + return sock; + } + else { + return node_group_add_extern_socket(ntree, NULL, in_out, gsock); + } +} + +static void group_verify_socket_list(bNodeTree *ntree, bNode *node, ListBase *lb, int in_out, ListBase *glb) +{ + bNodeSocket *sock, *nextsock, *gsock; + + /* step by step compare */ + for (gsock= glb->first; gsock; gsock=gsock->next) { + /* abusing new_sock pointer for verification here! only used inside this function */ + gsock->new_sock= group_verify_socket(ntree, lb, in_out, gsock); + } + /* leftovers are removed */ + for (sock=lb->first; sock; sock=nextsock) { + nextsock=sock->next; + if (sock->flag & SOCK_DYNAMIC) + nodeRemoveSocket(ntree, node, sock); + } + /* and we put back the verified sockets */ + for (gsock= glb->first; gsock; gsock=gsock->next) { + if (gsock->new_sock) { + BLI_addtail(lb, gsock->new_sock); + gsock->new_sock = NULL; + } + } +} + +/* make sure all group node in ntree, which use ngroup, are sync'd */ +void node_group_verify(struct bNodeTree *ntree, struct bNode *node, struct ID *id) +{ + /* check inputs and outputs, and remove or insert them */ + if (node->id==id) { + bNodeTree *ngroup= (bNodeTree*)node->id; + group_verify_socket_list(ntree, node, &node->inputs, SOCK_IN, &ngroup->inputs); + group_verify_socket_list(ntree, node, &node->outputs, SOCK_OUT, &ngroup->outputs); + } +} + +struct bNodeTree *node_group_edit_get(bNode *node) +{ + if (node->flag & NODE_GROUP_EDIT) + return (bNodeTree*)node->id; + else + return NULL; +} + +struct bNodeTree *node_group_edit_set(bNode *node, int edit) +{ + if (edit) { + bNodeTree *ngroup= (bNodeTree*)node->id; + if (ngroup) { + if(ngroup->id.lib) + ntreeMakeLocal(ngroup); + + node->flag |= NODE_GROUP_EDIT; + } + return ngroup; + } + else { + node->flag &= ~NODE_GROUP_EDIT; + return NULL; + } +} + +void node_group_edit_clear(bNode *node) +{ + bNodeTree *ngroup= (bNodeTree*)node->id; + bNode *inode; + + node->flag &= ~NODE_GROUP_EDIT; + + if (ngroup) + for (inode=ngroup->nodes.first; inode; inode=inode->next) + nodeGroupEditClear(inode); +} + +void node_group_link(bNodeTree *ntree, bNodeSocket *sock, int in_out) +{ + node_group_expose_socket(ntree, sock, in_out); +} + +/**** For Loop ****/ + +/* Essentially a group node with slightly different behavior. + * The internal tree is executed several times, with each output being re-used + * as an input in the next iteration. For this purpose, input and output socket + * lists are kept identical! + */ + +bNodeTemplate node_forloop_template(bNode *node) +{ + bNodeTemplate ntemp; + ntemp.type = NODE_FORLOOP; + ntemp.ngroup = (bNodeTree*)node->id; + return ntemp; +} + +void node_forloop_init(bNodeTree *ntree, bNode *node, bNodeTemplate *ntemp) +{ + bNodeSocket *sock; + + node->id = (ID*)ntemp->ngroup; + + sock = nodeAddInputFloat(ntree, node, "Iterations", PROP_UNSIGNED, 1, 0, 10000); + + /* NB: group socket input/output roles are inverted internally! + * Group "inputs" work as outputs in links and vice versa. + */ + if (ntemp->ngroup) { + bNodeSocket *gsock; + for (gsock=ntemp->ngroup->inputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->inputs, SOCK_IN, gsock); + for (gsock=ntemp->ngroup->outputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->outputs, SOCK_OUT, gsock); + } +} + +void node_forloop_init_tree(bNodeTree *ntree) +{ + bNodeSocket *sock; + sock = node_group_add_socket(ntree, "Iteration", SOCK_FLOAT, SOCK_IN); + sock->flag |= SOCK_INTERNAL; +} + +static void loop_sync(bNodeTree *ntree, int sync_in_out) +{ + bNodeSocket *sock, *sync, *nsync, *mirror; + ListBase *sync_lb; + + if (sync_in_out==SOCK_IN) { + sock = ntree->outputs.first; + + sync = ntree->inputs.first; + sync_lb = &ntree->inputs; + } + else { + sock = ntree->inputs.first; + + sync = ntree->outputs.first; + sync_lb = &ntree->outputs; + } + + /* NB: the sock->storage pointer is used here directly to store the own_index int + * out the mirrored socket counterpart! + */ + + while (sock) { + /* skip static and internal sockets on the sync side (preserves socket order!) */ + while (sync && ((sync->flag & SOCK_INTERNAL) || !(sync->flag & SOCK_DYNAMIC))) + sync = sync->next; + + if (!(sync->flag & SOCK_INTERNAL) && (sync->flag & SOCK_DYNAMIC)) { + if (sock->storage==NULL) { + /* if mirror index is 0, the sockets is newly added and a new mirror must be created. */ + mirror = node_group_expose_socket(ntree, sock, sync_in_out); + /* store the mirror index */ + sock->storage = SET_INT_IN_POINTER(mirror->own_index); + mirror->storage = SET_INT_IN_POINTER(sock->own_index); + /* move mirror to the right place */ + BLI_remlink(sync_lb, mirror); + if (sync) + BLI_insertlinkbefore(sync_lb, sync, mirror); + else + BLI_addtail(sync_lb, mirror); + } + else { + /* look up the mirror socket */ + for (mirror=sync; mirror; mirror=mirror->next) + if (mirror->own_index == GET_INT_FROM_POINTER(sock->storage)) + break; + /* make sure the name is the same (only for identification by user, no deeper meaning) */ + strcpy(mirror->name, sock->name); + /* fix the socket order if necessary */ + if (mirror != sync) { + BLI_remlink(sync_lb, mirror); + BLI_insertlinkbefore(sync_lb, sync, mirror); + } + else + sync = sync->next; + } + } + + sock = sock->next; + } + + /* remaining sockets in sync_lb are leftovers from deleted sockets, remove them */ + while (sync) { + nsync = sync->next; + if (!(sync->flag & SOCK_INTERNAL) && (sync->flag & SOCK_DYNAMIC)) + node_group_remove_socket(ntree, sync, sync_in_out); + sync = nsync; + } +} + +void node_loop_update_tree(bNodeTree *ngroup) +{ + /* make sure inputs & outputs are identical */ + if (ngroup->update & NTREE_UPDATE_GROUP_IN) + loop_sync(ngroup, SOCK_OUT); + if (ngroup->update & NTREE_UPDATE_GROUP_OUT) + loop_sync(ngroup, SOCK_IN); +} + +void node_whileloop_init(bNodeTree *ntree, bNode *node, bNodeTemplate *ntemp) +{ + bNodeSocket *sock; + + node->id = (ID*)ntemp->ngroup; + + sock = nodeAddInputFloat(ntree, node, "Condition", PROP_NONE, 1, 0, 1); + + /* max iterations */ + node->custom1 = 10000; + + /* NB: group socket input/output roles are inverted internally! + * Group "inputs" work as outputs in links and vice versa. + */ + if (ntemp->ngroup) { + bNodeSocket *gsock; + for (gsock=ntemp->ngroup->inputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->inputs, SOCK_IN, gsock); + for (gsock=ntemp->ngroup->outputs.first; gsock; gsock=gsock->next) + node_group_add_extern_socket(ntree, &node->outputs, SOCK_OUT, gsock); + } +} + +void node_whileloop_init_tree(bNodeTree *ntree) +{ + bNodeSocket *sock; + sock = node_group_add_socket(ntree, "Condition", SOCK_FLOAT, SOCK_OUT); + sock->flag |= SOCK_INTERNAL; +} + +bNodeTemplate node_whileloop_template(bNode *node) +{ + bNodeTemplate ntemp; + ntemp.type = NODE_WHILELOOP; + ntemp.ngroup = (bNodeTree*)node->id; + return ntemp; +} + +/**** FRAME ****/ + +void register_node_type_frame(ListBase *lb) +{ + /* frame type is used for all tree types, needs dynamic allocation */ + bNodeType *ntype= MEM_callocN(sizeof(bNodeType), "frame node type"); + + node_type_base(ntype, NODE_FRAME, "Frame", NODE_CLASS_LAYOUT, NODE_BACKGROUND); + node_type_size(ntype, 150, 100, 0); + + ntype->needs_free = 1; + nodeRegisterType(lb, ntype); +} diff --git a/source/blender/nodes/intern/node_common.h b/source/blender/nodes/intern/node_common.h new file mode 100644 index 00000000000..31a13d8168d --- /dev/null +++ b/source/blender/nodes/intern/node_common.h @@ -0,0 +1,65 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Lukas Toenne. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/intern/node_common.h + * \ingroup nodes + */ + + +#ifndef NODE_COMMON_H_ +#define NODE_COMMON_H_ + +#include "DNA_listBase.h" + +struct bNodeTree; + +struct bNodeSocket *node_group_add_extern_socket(struct bNodeTree *ntree, ListBase *lb, int in_out, struct bNodeSocket *gsock); + +void node_group_init(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp); +void node_forloop_init(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp); +void node_whileloop_init(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp); + +void node_forloop_init_tree(struct bNodeTree *ntree); +void node_whileloop_init_tree(struct bNodeTree *ntree); + +const char *node_group_label(struct bNode *node); + +struct bNodeTemplate node_group_template(struct bNode *node); +struct bNodeTemplate node_forloop_template(struct bNode *node); +struct bNodeTemplate node_whileloop_template(struct bNode *node); + +int node_group_valid(struct bNodeTree *ntree, struct bNodeTemplate *ntemp); +void node_group_verify(struct bNodeTree *ntree, struct bNode *node, struct ID *id); + +struct bNodeTree *node_group_edit_get(struct bNode *node); +struct bNodeTree *node_group_edit_set(struct bNode *node, int edit); +void node_group_edit_clear(bNode *node); + +void node_loop_update_tree(struct bNodeTree *ngroup); + +#endif diff --git a/source/blender/nodes/intern/node_exec.c b/source/blender/nodes/intern/node_exec.c new file mode 100644 index 00000000000..0d688438cf9 --- /dev/null +++ b/source/blender/nodes/intern/node_exec.c @@ -0,0 +1,308 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Nathan Letwory. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/intern/node_exec.c + * \ingroup nodes + */ + + +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#include "BKE_node.h" + +#include "MEM_guardedalloc.h" + +#include "node_exec.h" + + +/* for a given socket, find the actual stack entry */ +bNodeStack *node_get_socket_stack(bNodeStack *stack, bNodeSocket *sock) +{ + return stack + sock->stack_index; +} + +void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out) +{ + bNodeSocket *sock; + + /* build pointer stack */ + if (in) { + for(sock= node->inputs.first; sock; sock= sock->next) { + *(in++) = node_get_socket_stack(stack, sock); + } + } + + if (out) { + for(sock= node->outputs.first; sock; sock= sock->next) { + *(out++) = node_get_socket_stack(stack, sock); + } + } +} + +void node_init_input_index(bNodeSocket *sock, int *index) +{ + if (sock->link && sock->link->fromsock) { + sock->stack_index = sock->link->fromsock->stack_index; + } + else { + sock->stack_index = (*index)++; + } +} + +void node_init_output_index(bNodeSocket *sock, int *index) +{ + sock->stack_index = (*index)++; +} + +/* basic preparation of socket stacks */ +static struct bNodeStack *setup_stack(bNodeStack *stack, bNodeSocket *sock) +{ + bNodeStack *ns = node_get_socket_stack(stack, sock); + float null_value[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + + /* don't mess with remote socket stacks, these are initialized by other nodes! */ + if (sock->link) + return ns; + + ns->sockettype = sock->type; + + if (sock->default_value) { + switch (sock->type) { + case SOCK_FLOAT: + ns->vec[0] = ((bNodeSocketValueFloat*)sock->default_value)->value; + break; + case SOCK_VECTOR: + copy_v3_v3(ns->vec, ((bNodeSocketValueVector*)sock->default_value)->value); + break; + case SOCK_RGBA: + copy_v4_v4(ns->vec, ((bNodeSocketValueRGBA*)sock->default_value)->value); + break; + } + } + else { + switch (sock->type) { + case SOCK_FLOAT: + ns->vec[0] = 0.0f; + break; + case SOCK_VECTOR: + copy_v3_v3(ns->vec, null_value); + break; + case SOCK_RGBA: + copy_v4_v4(ns->vec, null_value); + break; + } + } + + return ns; +} + +bNodeTreeExec *ntree_exec_begin(bNodeTree *ntree) +{ + bNodeTreeExec *exec; + bNode *node; + bNodeExec *nodeexec; + bNodeSocket *sock, *gsock; + bNodeStack *ns; + int index= 0; + bNode **nodelist; + int totnodes, n; + + if((ntree->init & NTREE_TYPE_INIT)==0) + ntreeInitTypes(ntree); + + /* get a dependency-sorted list of nodes */ + ntreeGetDependencyList(ntree, &nodelist, &totnodes); + + /* XXX could let callbacks do this for specialized data */ + exec = MEM_callocN(sizeof(bNodeTreeExec), "node tree execution data"); + /* backpointer to node tree */ + exec->nodetree = ntree; + + /* group inputs essentially work as outputs */ + for(gsock=ntree->inputs.first; gsock; gsock = gsock->next) + node_init_output_index(gsock, &index); + /* set stack indexes */ + for(n=0; n < totnodes; ++n) { + node = nodelist[n]; + + node->stack_index = index; + + /* init node socket stack indexes */ + for (sock=node->inputs.first; sock; sock=sock->next) + node_init_input_index(sock, &index); + for (sock=node->outputs.first; sock; sock=sock->next) + node_init_output_index(sock, &index); + } + /* group outputs essentially work as inputs */ + for(gsock=ntree->outputs.first; gsock; gsock = gsock->next) + node_init_input_index(gsock, &index); + + /* allocated exec data pointers for nodes */ + exec->totnodes = totnodes; + exec->nodeexec = MEM_callocN(exec->totnodes * sizeof(bNodeExec), "node execution data"); + /* allocate data pointer for node stack */ + exec->stacksize = index; + exec->stack = MEM_callocN(exec->stacksize * sizeof(bNodeStack), "bNodeStack"); + + /* prepare group tree inputs */ + for (sock=ntree->inputs.first; sock; sock=sock->next) { + ns = setup_stack(exec->stack, sock); + if (ns->hasoutput) + ns->hasinput = 1; + } + /* prepare all internal nodes for execution */ + for(n=0, nodeexec= exec->nodeexec; n < totnodes; ++n, ++nodeexec) { + node = nodeexec->node = nodelist[n]; + + /* tag inputs */ + for (sock=node->inputs.first; sock; sock=sock->next) { + /* disable the node if an input link is invalid */ + if(sock->link && !(sock->link->flag & NODE_LINK_VALID)) + node->need_exec= 0; + + ns = setup_stack(exec->stack, sock); + if (ns->hasoutput) + ns->hasinput = 1; + } + + /* tag all outputs */ + for (sock=node->outputs.first; sock; sock=sock->next) { + ns = setup_stack(exec->stack, sock); + ns->hasoutput = 1; + } + + if(node->typeinfo->initexecfunc) + nodeexec->data = node->typeinfo->initexecfunc(node); + } + /* prepare group tree outputs */ + for (sock=ntree->outputs.first; sock; sock=sock->next) { + ns = setup_stack(exec->stack, sock); + ns->hasoutput = 1; + } + + if (nodelist) + MEM_freeN(nodelist); + + return exec; +} + +void ntree_exec_end(bNodeTreeExec *exec) +{ + bNodeExec *nodeexec; + int n; + + if (exec->stack) + MEM_freeN(exec->stack); + + for(n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + if (nodeexec->node->typeinfo->freeexecfunc) + nodeexec->node->typeinfo->freeexecfunc(nodeexec->node, nodeexec->data); + } + + if (exec->nodeexec) + MEM_freeN(exec->nodeexec); + + MEM_freeN(exec); +} + +/**** Compositor/Material/Texture trees ****/ + +bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread) +{ + ListBase *lb= &exec->threadstack[thread]; + bNodeThreadStack *nts; + + for(nts=lb->first; nts; nts=nts->next) { + if(!nts->used) { + nts->used= 1; + break; + } + } + + if (!nts) { + nts= MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack"); + nts->stack= MEM_dupallocN(exec->stack); + nts->used= 1; + BLI_addtail(lb, nts); + } + + return nts; +} + +void ntreeReleaseThreadStack(bNodeThreadStack *nts) +{ + nts->used = 0; +} + +void ntreeExecNodes(bNodeTreeExec *exec, void *callerdata, int thread) +{ + bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeExec *nodeexec; + bNode *node; + int n; + + /* nodes are presorted, so exec is in order of list */ + + for(n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + node = nodeexec->node; + if(node->need_exec) { + node_get_stack(node, exec->stack, nsin, nsout); + if(node->typeinfo->execfunc) + node->typeinfo->execfunc(callerdata, node, nsin, nsout); + else if (node->typeinfo->newexecfunc) + node->typeinfo->newexecfunc(callerdata, thread, node, nodeexec->data, nsin, nsout); + } + } +} + +void ntreeExecThreadNodes(bNodeTreeExec *exec, bNodeThreadStack *nts, void *callerdata, int thread) +{ + bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeExec *nodeexec; + bNode *node; + int n; + + /* nodes are presorted, so exec is in order of list */ + + for(n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + node = nodeexec->node; + if(node->need_exec) { + node_get_stack(node, nts->stack, nsin, nsout); + if(node->typeinfo->execfunc) + node->typeinfo->execfunc(callerdata, node, nsin, nsout); + else if (node->typeinfo->newexecfunc) + node->typeinfo->newexecfunc(callerdata, thread, node, nodeexec->data, nsin, nsout); + } + } +} diff --git a/source/blender/nodes/intern/node_exec.h b/source/blender/nodes/intern/node_exec.h new file mode 100644 index 00000000000..457e119613b --- /dev/null +++ b/source/blender/nodes/intern/node_exec.h @@ -0,0 +1,89 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Nathan Letwory. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/intern/node_exec.h + * \ingroup nodes + */ + + +#ifndef NODE_EXEC_H_ +#define NODE_EXEC_H_ + +#include "DNA_listBase.h" + +#include "BLI_utildefines.h" + +#include "BKE_node.h" + +#include "RNA_types.h" + +struct bNodeTree; +struct bNode; +struct bNodeStack; + +/* Node execution data */ +typedef struct bNodeExec { + struct bNode *node; /* backpointer to node */ + void *data; /* custom data storage */ +} bNodeExec; + +/* Execution Data for each instance of node tree execution */ +typedef struct bNodeTreeExec { + struct bNodeTree *nodetree; /* backpointer to node tree */ + + int totnodes; /* total node count */ + struct bNodeExec *nodeexec; /* per-node execution data */ + + int stacksize; + struct bNodeStack *stack; /* socket data stack */ + /* only used by material and texture trees to keep one stack for each thread */ + ListBase *threadstack; /* one instance of the stack for each thread */ +} bNodeTreeExec; + +/* stores one stack copy for each thread (material and texture trees) */ +typedef struct bNodeThreadStack { + struct bNodeThreadStack *next, *prev; + struct bNodeStack *stack; + int used; +} bNodeThreadStack; + +struct bNodeStack *node_get_socket_stack(struct bNodeStack *stack, struct bNodeSocket *sock); +void node_get_stack(struct bNode *node, struct bNodeStack *stack, struct bNodeStack **in, struct bNodeStack **out); +void node_init_input_index(struct bNodeSocket *sock, int *index); +void node_init_output_index(struct bNodeSocket *sock, int *index); + +struct bNodeTreeExec *ntree_exec_begin(struct bNodeTree *ntree); +void ntree_exec_end(struct bNodeTreeExec *exec); + +void ntreeExecNodes(struct bNodeTreeExec *exec, void *callerdata, int thread); + +struct bNodeThreadStack *ntreeGetThreadStack(struct bNodeTreeExec *exec, int thread); +void ntreeReleaseThreadStack(struct bNodeThreadStack *nts); +void ntreeExecThreadNodes(struct bNodeTreeExec *exec, struct bNodeThreadStack *nts, void *callerdata, int thread); + +#endif diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c new file mode 100644 index 00000000000..ef8b3e797ce --- /dev/null +++ b/source/blender/nodes/intern/node_socket.c @@ -0,0 +1,428 @@ +/** + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Lukas Toennne + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/intern/node_socket.c + * \ingroup nodes + */ + + +#include "DNA_node_types.h" + +#include "DNA_mesh_types.h" +#include "DNA_meshdata_types.h" +#include "DNA_object_types.h" +#include "DNA_scene_types.h" + +#include "BLI_listbase.h" +#include "BLI_math.h" +#include "BLI_utildefines.h" + +#include "BKE_DerivedMesh.h" +#include "BKE_node.h" + +#include "RNA_access.h" +#include "RNA_types.h" + +#include "MEM_guardedalloc.h" + +#include "NOD_socket.h" + +/****************** FLOAT ******************/ + +static bNodeSocketType node_socket_type_float = { + /* type */ SOCK_FLOAT, + /* ui_name */ "Float", + /* ui_description */ "Floating Point", + /* ui_icon */ 0, + /* ui_color */ {160,160,160,255}, + + /* value_structname */ "bNodeSocketValueFloat", + /* value_structsize */ sizeof(bNodeSocketValueFloat), + + /* buttonfunc */ NULL, +}; + +/****************** VECTOR ******************/ + +static bNodeSocketType node_socket_type_vector = { + /* type */ SOCK_VECTOR, + /* ui_name */ "Vector", + /* ui_description */ "3-dimensional floating point vector", + /* ui_icon */ 0, + /* ui_color */ {100,100,200,255}, + + /* value_structname */ "bNodeSocketValueVector", + /* value_structsize */ sizeof(bNodeSocketValueVector), + + /* buttonfunc */ NULL, +}; + +/****************** RGBA ******************/ + +static bNodeSocketType node_socket_type_rgba = { + /* type */ SOCK_RGBA, + /* ui_name */ "RGBA", + /* ui_description */ "RGBA color", + /* ui_icon */ 0, + /* ui_color */ {200,200,40,255}, + + /* value_structname */ "bNodeSocketValueRGBA", + /* value_structsize */ sizeof(bNodeSocketValueRGBA), + + /* buttonfunc */ NULL, +}; + +/****************** INT ******************/ + +static bNodeSocketType node_socket_type_int = { + /* type */ SOCK_INT, + /* ui_name */ "Int", + /* ui_description */ "Integer", + /* ui_icon */ 0, + /* ui_color */ {17,133,37,255}, + + /* value_structname */ "bNodeSocketValueInt", + /* value_structsize */ sizeof(bNodeSocketValueInt), + + /* buttonfunc */ NULL, +}; + +/****************** BOOLEAN ******************/ + +static bNodeSocketType node_socket_type_boolean = { + /* type */ SOCK_BOOLEAN, + /* ui_name */ "Boolean", + /* ui_description */ "Boolean", + /* ui_icon */ 0, + /* ui_color */ {158,139,63,255}, + + /* value_structname */ "bNodeSocketValueBoolean", + /* value_structsize */ sizeof(bNodeSocketValueBoolean), + + /* buttonfunc */ NULL, +}; + +/****************** MESH ******************/ + +static bNodeSocketType node_socket_type_mesh = { + /* type */ SOCK_MESH, + /* ui_name */ "Mesh", + /* ui_description */ "Mesh geometry data", + /* ui_icon */ 0, + /* ui_color */ {255,133,7,255}, + + /* value_structname */ NULL, + /* value_structsize */ 0, + + /* buttonfunc */ NULL, +}; + + +void node_socket_type_init(bNodeSocketType *types[]) +{ + #define INIT_TYPE(name) types[node_socket_type_##name.type] = &node_socket_type_##name; + + INIT_TYPE(float); + INIT_TYPE(vector); + INIT_TYPE(rgba); + INIT_TYPE(int); + INIT_TYPE(boolean); + INIT_TYPE(mesh); + + #undef INIT_TYPE +} + +struct bNodeSocket *nodeAddInputInt(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, + int value, int min, int max) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_INT); + bNodeSocketValueInt *dval= (bNodeSocketValueInt*)sock->default_value; + dval->subtype = subtype; + dval->value = value; + dval->min = min; + dval->max = max; + return sock; +} +struct bNodeSocket *nodeAddOutputInt(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_INT); + return sock; +} + +struct bNodeSocket *nodeAddInputFloat(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, + float value, float min, float max) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_FLOAT); + bNodeSocketValueFloat *dval= (bNodeSocketValueFloat*)sock->default_value; + dval->subtype = subtype; + dval->value = value; + dval->min = min; + dval->max = max; + return sock; +} +struct bNodeSocket *nodeAddOutputFloat(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_FLOAT); + return sock; +} + +struct bNodeSocket *nodeAddInputBoolean(struct bNodeTree *ntree, struct bNode *node, const char *name, char value) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_BOOLEAN); + bNodeSocketValueBoolean *dval= (bNodeSocketValueBoolean*)sock->default_value; + dval->value = value; + return sock; +} +struct bNodeSocket *nodeAddOutputBoolean(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_BOOLEAN); + return sock; +} + +struct bNodeSocket *nodeAddInputVector(struct bNodeTree *ntree, struct bNode *node, const char *name, PropertySubType subtype, + float x, float y, float z, float min, float max) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_VECTOR); + bNodeSocketValueVector *dval= (bNodeSocketValueVector*)sock->default_value; + dval->subtype = subtype; + dval->value[0] = x; + dval->value[1] = y; + dval->value[2] = z; + dval->min = min; + dval->max = max; + return sock; +} +struct bNodeSocket *nodeAddOutputVector(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_VECTOR); + return sock; +} + +struct bNodeSocket *nodeAddInputRGBA(struct bNodeTree *ntree, struct bNode *node, const char *name, + float r, float g, float b, float a) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_RGBA); + bNodeSocketValueRGBA *dval= (bNodeSocketValueRGBA*)sock->default_value; + dval->value[0] = r; + dval->value[1] = g; + dval->value[2] = b; + dval->value[3] = a; + return sock; +} +struct bNodeSocket *nodeAddOutputRGBA(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_RGBA); + return sock; +} + +struct bNodeSocket *nodeAddInputMesh(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_MESH); + return sock; +} +struct bNodeSocket *nodeAddOutputMesh(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_MESH); + return sock; +} + +struct bNodeSocket *node_add_input_from_template(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketTemplate *stemp) +{ + bNodeSocket *sock; + switch (stemp->type) { + case SOCK_INT: + sock = nodeAddInputInt(ntree, node, stemp->name, stemp->subtype, (int)stemp->val1, (int)stemp->min, (int)stemp->max); + break; + case SOCK_FLOAT: + sock = nodeAddInputFloat(ntree, node, stemp->name, stemp->subtype, stemp->val1, stemp->min, stemp->max); + break; + case SOCK_BOOLEAN: + sock = nodeAddInputBoolean(ntree, node, stemp->name, (char)stemp->val1); + break; + case SOCK_VECTOR: + sock = nodeAddInputVector(ntree, node, stemp->name, stemp->subtype, stemp->val1, stemp->val2, stemp->val3, stemp->min, stemp->max); + break; + case SOCK_RGBA: + sock = nodeAddInputRGBA(ntree, node, stemp->name, stemp->val1, stemp->val2, stemp->val3, stemp->val4); + break; + case SOCK_MESH: + sock = nodeAddInputMesh(ntree, node, stemp->name); + break; + default: + sock = nodeAddSocket(ntree, node, SOCK_IN, stemp->name, stemp->type); + } + return sock; +} + +struct bNodeSocket *node_add_output_from_template(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketTemplate *stemp) +{ + bNodeSocket *sock; + switch (stemp->type) { + case SOCK_INT: + sock = nodeAddOutputInt(ntree, node, stemp->name); + break; + case SOCK_FLOAT: + sock = nodeAddOutputFloat(ntree, node, stemp->name); + break; + case SOCK_BOOLEAN: + sock = nodeAddOutputBoolean(ntree, node, stemp->name); + break; + case SOCK_VECTOR: + sock = nodeAddOutputVector(ntree, node, stemp->name); + break; + case SOCK_RGBA: + sock = nodeAddOutputRGBA(ntree, node, stemp->name); + break; + case SOCK_MESH: + sock = nodeAddOutputMesh(ntree, node, stemp->name); + break; + default: + sock = nodeAddSocket(ntree, node, SOCK_OUT, stemp->name, stemp->type); + } + return sock; +} + +static bNodeSocket *verify_socket_template(bNodeTree *ntree, bNode *node, int in_out, ListBase *socklist, bNodeSocketTemplate *stemp) +{ + bNodeSocket *sock; + + for(sock= socklist->first; sock; sock= sock->next) { + if(!(sock->flag & SOCK_DYNAMIC) && strncmp(sock->name, stemp->name, NODE_MAXSTR)==0) + break; + } + if(sock) { + sock->type= stemp->type; /* in future, read this from tydefs! */ + if(stemp->limit==0) sock->limit= 0xFFF; + else sock->limit= stemp->limit; + + /* Copy the property range and subtype parameters in case the template changed. + * NOT copying the actual value here, only button behavior changes! + */ + switch (sock->type) { + case SOCK_FLOAT: + { + bNodeSocketValueFloat *dval= sock->default_value; + dval->min = stemp->min; + dval->max = stemp->max; + dval->subtype = stemp->subtype; + } + break; + case SOCK_INT: + { + bNodeSocketValueInt *dval= sock->default_value; + dval->min = stemp->min; + dval->max = stemp->max; + dval->subtype = stemp->subtype; + } + break; + case SOCK_VECTOR: + { + bNodeSocketValueVector *dval= sock->default_value; + dval->min = stemp->min; + dval->max = stemp->max; + dval->subtype = stemp->subtype; + } + break; + } + + BLI_remlink(socklist, sock); + + return sock; + } + else { + /* no socket for this template found, make a new one */ + if (in_out==SOCK_IN) + sock = node_add_input_from_template(ntree, node, stemp); + else + sock = node_add_output_from_template(ntree, node, stemp); + /* remove the new socket from the node socket list first, + * will be added back after verification. + */ + BLI_remlink(socklist, sock); + } + + return sock; +} + +static void verify_socket_template_list(bNodeTree *ntree, bNode *node, int in_out, ListBase *socklist, bNodeSocketTemplate *stemp_first) +{ + bNodeSocket *sock; + bNodeSocketTemplate *stemp; + + /* no inputs anymore? */ + if(stemp_first==NULL) { + while(socklist->first) { + sock = (bNodeSocket*)socklist->first; + if (!(sock->flag & SOCK_DYNAMIC)) + nodeRemoveSocket(ntree, node, socklist->first); + } + } + else { + /* step by step compare */ + stemp= stemp_first; + while(stemp->type != -1) { + stemp->sock= verify_socket_template(ntree, node, in_out, socklist, stemp); + stemp++; + } + /* leftovers are removed */ + while(socklist->first) { + sock = (bNodeSocket*)socklist->first; + if (!(sock->flag & SOCK_DYNAMIC)) + nodeRemoveSocket(ntree, node, socklist->first); + } + + /* and we put back the verified sockets */ + stemp= stemp_first; + if (socklist->first) { + /* some dynamic sockets left, store the list start + * so we can add static sockets infront of it. + */ + sock = socklist->first; + while(stemp->type != -1) { + /* put static sockets infront of dynamic */ + BLI_insertlinkbefore(socklist, sock, stemp->sock); + stemp++; + } + } + else { + while(stemp->type != -1) { + BLI_addtail(socklist, stemp->sock); + stemp++; + } + } + } +} + +void node_verify_socket_templates(bNodeTree *ntree, bNode *node) +{ + bNodeType *ntype= node->typeinfo; + if(ntype) { + verify_socket_template_list(ntree, node, SOCK_IN, &node->inputs, ntype->inputs); + verify_socket_template_list(ntree, node, SOCK_OUT, &node->outputs, ntype->outputs); + } +} diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c index 1cc8c282179..bdf53df06af 100644 --- a/source/blender/nodes/intern/node_util.c +++ b/source/blender/nodes/intern/node_util.c @@ -32,12 +32,24 @@ */ -#include "CMP_util.h" -#include "SHD_util.h" +#include "DNA_action_types.h" +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_utildefines.h" + +#include "BKE_colortools.h" +#include "BKE_node.h" #include "RNA_access.h" #include "RNA_enum_types.h" +#include "MEM_guardedalloc.h" + +#include "node_util.h" + +/**** Storage Data ****/ + void node_free_curves(bNode *node) { curvemapping_free(node->storage); @@ -58,6 +70,8 @@ void node_copy_standard_storage(bNode *orig_node, bNode *new_node) new_node->storage= MEM_dupallocN(orig_node->storage); } +/**** Labels ****/ + const char *node_blend_label(bNode *node) { const char *name; diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h index 5a78fc07883..8d38d57f577 100644 --- a/source/blender/nodes/intern/node_util.h +++ b/source/blender/nodes/intern/node_util.h @@ -35,14 +35,27 @@ #ifndef NODE_UTIL_H_ #define NODE_UTIL_H_ +#include "DNA_listBase.h" + +#include "BKE_node.h" + #include "MEM_guardedalloc.h" +#include "NOD_socket.h" + +struct bNodeTree; +struct bNode; + +/**** Storage Data ****/ + extern void node_free_curves(struct bNode *node); extern void node_free_standard_storage(struct bNode *node); extern void node_copy_curves(struct bNode *orig_node, struct bNode *new_node); extern void node_copy_standard_storage(struct bNode *orig_node, struct bNode *new_node); +/**** Labels ****/ + const char *node_blend_label(struct bNode *node); const char *node_math_label(struct bNode *node); const char *node_vect_math_label(struct bNode *node); diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c new file mode 100644 index 00000000000..620da7553b3 --- /dev/null +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -0,0 +1,212 @@ +/** + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/node_shader_tree.c + * \ingroup nodes + */ + + +#include + +#include "DNA_material_types.h" +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_math.h" +#include "BLI_threads.h" +#include "BLI_utildefines.h" + +#include "BKE_global.h" +#include "BKE_main.h" +#include "BKE_node.h" +#include "BKE_utildefines.h" + +#include "GPU_material.h" + +#include "RE_shader_ext.h" + +#include "node_exec.h" +#include "node_util.h" +#include "node_shader_util.h" + +static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) +{ + Material *ma; + for(ma= main->mat.first; ma; ma= ma->id.next) { + if(ma->nodetree) { + func(calldata, &ma->id, ma->nodetree); + } + } +} + +static void local_sync(bNodeTree *localtree, bNodeTree *ntree) +{ + bNode *lnode; + + /* copy over contents of previews */ + for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { + if(ntreeNodeExists(ntree, lnode->new_node)) { + bNode *node= lnode->new_node; + + if(node->preview && node->preview->rect) { + if(lnode->preview && lnode->preview->rect) { + int xsize= node->preview->xsize; + int ysize= node->preview->ysize; + memcpy(node->preview->rect, lnode->preview->rect, 4*xsize + xsize*ysize*sizeof(char)*4); + } + } + } + } +} + +bNodeTreeType ntreeType_Shader = { + /* type */ NTREE_SHADER, + /* id_name */ "NTShader Nodetree", + + /* node_types */ { NULL, NULL }, + + /* free_cache */ NULL, + /* free_node_cache */ NULL, + /* foreach_nodetree */ foreach_nodetree, + /* localize */ NULL, + /* local_sync */ local_sync, + /* local_merge */ NULL, + /* update */ NULL, + /* update_node */ NULL +}; + +/* GPU material from shader nodes */ + +void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) +{ + bNodeTreeExec *exec; + + if(!ntree->execdata) + exec = ntreeShaderBeginExecTree(ntree); + + ntreeExecGPUNodes(exec, mat, 1); + + ntreeShaderEndExecTree(exec); +} + +/* **************** call to switch lamploop for material node ************ */ + +void (*node_shader_lamp_loop)(struct ShadeInput *, struct ShadeResult *); + +void set_node_shader_lamp_loop(void (*lamp_loop_func)(ShadeInput *, ShadeResult *)) +{ + node_shader_lamp_loop= lamp_loop_func; +} + + +bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree) +{ + bNodeTreeExec *exec; + bNode *node; + + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + + /* ensures only a single output node is enabled */ + ntreeSetOutput(ntree); + + /* common base initialization */ + exec = ntree_exec_begin(ntree); + + /* allocate the thread stack listbase array */ + exec->threadstack= MEM_callocN(BLENDER_MAX_THREADS*sizeof(ListBase), "thread stack array"); + + for(node= exec->nodetree->nodes.first; node; node= node->next) + node->need_exec= 1; + + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + * which only store the ntree pointer. Should be fixed at some point! + */ + ntree->execdata = exec; + + return exec; +} + +void ntreeShaderEndExecTree(bNodeTreeExec *exec) +{ + if(exec) { + bNodeTree *ntree= exec->nodetree; + bNodeThreadStack *nts; + int a; + + if(exec->threadstack) { + for(a=0; athreadstack[a].first; nts; nts=nts->next) + if (nts->stack) MEM_freeN(nts->stack); + BLI_freelistN(&exec->threadstack[a]); + } + + MEM_freeN(exec->threadstack); + exec->threadstack= NULL; + } + + ntree_exec_end(exec); + + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } +} + +void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) +{ + ShaderCallData scd; + /* + @note: preserve material from ShadeInput for material id, nodetree execs change it + fix for bug "[#28012] Mat ID messy with shader nodes" + */ + Material *mat = shi->mat; bNodeThreadStack *nts = NULL; + bNodeTreeExec *exec = ntree->execdata; + + /* convert caller data to struct */ + scd.shi= shi; + scd.shr= shr; + + /* each material node has own local shaderesult, with optional copying */ + memset(shr, 0, sizeof(ShadeResult)); + + if (!exec) + exec = ntree->execdata = ntreeShaderBeginExecTree(exec->nodetree); + + nts= ntreeGetThreadStack(exec, shi->thread); + ntreeExecThreadNodes(exec, nts, &scd, shi->thread); + ntreeReleaseThreadStack(nts); + + // @note: set material back to preserved material + shi->mat = mat; + /* better not allow negative for now */ + if(shr->combined[0]<0.0f) shr->combined[0]= 0.0f; + if(shr->combined[1]<0.0f) shr->combined[1]= 0.0f; + if(shr->combined[2]<0.0f) shr->combined[2]= 0.0f; +} diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c new file mode 100644 index 00000000000..cf910ba3f64 --- /dev/null +++ b/source/blender/nodes/shader/node_shader_util.c @@ -0,0 +1,287 @@ +/* + * $Id: SHD_util.c 36549 2011-05-08 14:23:38Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/node_shader_util.c + * \ingroup nodes + */ + + +#include "DNA_node_types.h" + +#include "node_shader_util.h" + +#include "node_exec.h" + +/* ****** */ + +void nodestack_get_vec(float *in, short type_in, bNodeStack *ns) +{ + float *from= ns->vec; + + if(type_in==SOCK_FLOAT) { + if(ns->sockettype==SOCK_FLOAT) + *in= *from; + else + *in= 0.333333f*(from[0]+from[1]+from[2]); + } + else if(type_in==SOCK_VECTOR) { + if(ns->sockettype==SOCK_FLOAT) { + in[0]= from[0]; + in[1]= from[0]; + in[2]= from[0]; + } + else { + VECCOPY(in, from); + } + } + else { /* type_in==SOCK_RGBA */ + if(ns->sockettype==SOCK_RGBA) { + QUATCOPY(in, from); + } + else if(ns->sockettype==SOCK_FLOAT) { + in[0]= from[0]; + in[1]= from[0]; + in[2]= from[0]; + in[3]= 1.0f; + } + else { + VECCOPY(in, from); + in[3]= 1.0f; + } + } +} + + +/* ******************* execute and parse ************ */ + +/* go over all used Geometry and Texture nodes, and return a texco flag */ +/* no group inside needed, this function is called for groups too */ +void ntreeShaderGetTexcoMode(bNodeTree *ntree, int r_mode, short *texco, int *mode) +{ + bNode *node; + bNodeSocket *sock; + int a; + + ntreeSocketUseFlags(ntree); + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==SH_NODE_TEXTURE) { + if((r_mode & R_OSA) && node->id) { + Tex *tex= (Tex *)node->id; + if ELEM3(tex->type, TEX_IMAGE, TEX_PLUGIN, TEX_ENVMAP) + *texco |= TEXCO_OSA|NEED_UV; + } + /* usability exception... without input we still give the node orcos */ + sock= node->inputs.first; + if(sock==NULL || sock->link==NULL) + *texco |= TEXCO_ORCO|NEED_UV; + } + else if(node->type==SH_NODE_GEOMETRY) { + /* note; sockets always exist for the given type! */ + for(a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { + if(sock->flag & SOCK_IN_USE) { + switch(a) { + case GEOM_OUT_GLOB: + *texco |= TEXCO_GLOB|NEED_UV; break; + case GEOM_OUT_VIEW: + *texco |= TEXCO_VIEW|NEED_UV; break; + case GEOM_OUT_ORCO: + *texco |= TEXCO_ORCO|NEED_UV; break; + case GEOM_OUT_UV: + *texco |= TEXCO_UV|NEED_UV; break; + case GEOM_OUT_NORMAL: + *texco |= TEXCO_NORM|NEED_UV; break; + case GEOM_OUT_VCOL: + *texco |= NEED_UV; *mode |= MA_VERTEXCOL; break; + } + } + } + } + } +} + +/* nodes that use ID data get synced with local data */ +void nodeShaderSynchronizeID(bNode *node, int copyto) +{ + if(node->id==NULL) return; + + if(ELEM(node->type, SH_NODE_MATERIAL, SH_NODE_MATERIAL_EXT)) { + bNodeSocket *sock; + Material *ma= (Material *)node->id; + int a; + + /* hrmf, case in loop isnt super fast, but we dont edit 100s of material at same time either! */ + for(a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { + if(!(sock->flag & SOCK_HIDDEN)) { + if(copyto) { + switch(a) { + case MAT_IN_COLOR: + VECCOPY(&ma->r, ((bNodeSocketValueRGBA*)sock->default_value)->value); break; + case MAT_IN_SPEC: + VECCOPY(&ma->specr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break; + case MAT_IN_REFL: + ma->ref= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_MIR: + VECCOPY(&ma->mirr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break; + case MAT_IN_AMB: + ma->amb= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_EMIT: + ma->emit= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_SPECTRA: + ma->spectra= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_RAY_MIRROR: + ma->ray_mirror= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_ALPHA: + ma->alpha= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + case MAT_IN_TRANSLUCENCY: + ma->translucency= ((bNodeSocketValueFloat*)sock->default_value)->value; break; + } + } + else { + switch(a) { + case MAT_IN_COLOR: + VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->r); break; + case MAT_IN_SPEC: + VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->specr); break; + case MAT_IN_REFL: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->ref; break; + case MAT_IN_MIR: + VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->mirr); break; + case MAT_IN_AMB: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->amb; break; + case MAT_IN_EMIT: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->emit; break; + case MAT_IN_SPECTRA: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->spectra; break; + case MAT_IN_RAY_MIRROR: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->ray_mirror; break; + case MAT_IN_ALPHA: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->alpha; break; + case MAT_IN_TRANSLUCENCY: + ((bNodeSocketValueFloat*)sock->default_value)->value= ma->translucency; break; + } + } + } + } + } + +} + + +void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, bNodeStack *ns) +{ + memset(gs, 0, sizeof(*gs)); + + QUATCOPY(gs->vec, ns->vec); + gs->link= ns->data; + + if (type == SOCK_FLOAT) + gs->type= GPU_FLOAT; + else if (type == SOCK_VECTOR) + gs->type= GPU_VEC3; + else if (type == SOCK_RGBA) + gs->type= GPU_VEC4; + else + gs->type= GPU_NONE; + + gs->name = ""; + gs->hasinput= ns->hasinput && ns->data; + gs->hasoutput= ns->hasoutput && ns->data; + gs->sockettype= ns->sockettype; +} + +void node_data_from_gpu_stack(bNodeStack *ns, GPUNodeStack *gs) +{ + ns->data= gs->link; + ns->sockettype= gs->sockettype; +} + +static void gpu_stack_from_data_list(GPUNodeStack *gs, ListBase *sockets, bNodeStack **ns) +{ + bNodeSocket *sock; + int i; + + for (sock=sockets->first, i=0; sock; sock=sock->next, i++) + node_gpu_stack_from_data(&gs[i], sock->type, ns[i]); + + gs[i].type= GPU_NONE; +} + +static void data_from_gpu_stack_list(ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs) +{ + bNodeSocket *sock; + int i; + + for (sock=sockets->first, i=0; sock; sock=sock->next, i++) + node_data_from_gpu_stack(ns[i], &gs[i]); +} + +void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs) +{ + bNodeExec *nodeexec; + bNode *node; + int n; + bNodeStack *stack; + bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ + bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ + GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1]; + int doit; + + stack= exec->stack; + + for(n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) { + node = nodeexec->node; + + doit = 0; + /* for groups, only execute outputs for edited group */ + if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) { + if(do_outputs && (node->flag & NODE_DO_OUTPUT)) + doit = 1; + } + else + doit = 1; + + if (doit) { + if(node->typeinfo->gpufunc) { + node_get_stack(node, stack, nsin, nsout); + gpu_stack_from_data_list(gpuin, &node->inputs, nsin); + gpu_stack_from_data_list(gpuout, &node->outputs, nsout); + if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) + data_from_gpu_stack_list(&node->outputs, nsout, gpuout); + } + else if(node->typeinfo->gpuextfunc) { + node_get_stack(node, stack, nsin, nsout); + gpu_stack_from_data_list(gpuin, &node->inputs, nsin); + gpu_stack_from_data_list(gpuout, &node->outputs, nsout); + if(node->typeinfo->gpuextfunc(mat, node, nodeexec->data, gpuin, gpuout)) + data_from_gpu_stack_list(&node->outputs, nsout, gpuout); + } + } + } +} diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h new file mode 100644 index 00000000000..1cc04d95d6f --- /dev/null +++ b/source/blender/nodes/shader/node_shader_util.h @@ -0,0 +1,130 @@ +/* + * $Id: SHD_util.h 36549 2011-05-08 14:23:38Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/node_shader_util.h + * \ingroup nodes + */ + + +#ifndef NODE_SHADER_UTIL_H_ +#define NODE_SHADER_UTIL_H_ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_color_types.h" +#include "DNA_ID.h" +#include "DNA_image_types.h" +#include "DNA_material_types.h" +#include "DNA_node_types.h" +#include "DNA_object_types.h" +#include "DNA_scene_types.h" +#include "DNA_texture_types.h" + +#include "BKE_blender.h" +#include "BKE_colortools.h" +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_material.h" +#include "BKE_node.h" +#include "BKE_texture.h" + +#include "BKE_library.h" + +#include "NOD_shader.h" +#include "node_util.h" + +#include "BLI_math.h" +#include "BLI_blenlib.h" +#include "BLI_rand.h" +#include "BLI_threads.h" +#include "BLI_utildefines.h" + +#include "IMB_imbuf_types.h" +#include "IMB_imbuf.h" + +#include "RE_pipeline.h" +#include "RE_shader_ext.h" + +#include "GPU_material.h" + +/* ********* exec data struct, remains internal *********** */ + +typedef struct ShaderCallData { + ShadeInput *shi; /* from render pipe */ + ShadeResult *shr; /* from render pipe */ +} ShaderCallData; + +/* output socket defines */ +#define GEOM_OUT_GLOB 0 +#define GEOM_OUT_LOCAL 1 +#define GEOM_OUT_VIEW 2 +#define GEOM_OUT_ORCO 3 +#define GEOM_OUT_UV 4 +#define GEOM_OUT_NORMAL 5 +#define GEOM_OUT_VCOL 6 +#define GEOM_OUT_FRONTBACK 7 + + +/* input socket defines */ +#define MAT_IN_COLOR 0 +#define MAT_IN_SPEC 1 +#define MAT_IN_REFL 2 +#define MAT_IN_NORMAL 3 +#define MAT_IN_MIR 4 +#define MAT_IN_AMB 5 +#define MAT_IN_EMIT 6 +#define MAT_IN_SPECTRA 7 +#define MAT_IN_RAY_MIRROR 8 +#define MAT_IN_ALPHA 9 +#define MAT_IN_TRANSLUCENCY 10 +#define NUM_MAT_IN 11 /* for array size */ + +/* output socket defines */ +#define MAT_OUT_COLOR 0 +#define MAT_OUT_ALPHA 1 +#define MAT_OUT_NORMAL 2 +#define MAT_OUT_DIFFUSE 3 +#define MAT_OUT_SPEC 4 +#define MAT_OUT_AO 5 + + +extern void node_ID_title_cb(void *node_v, void *unused_v); +void nodestack_get_vec(float *in, short type_in, bNodeStack *ns); + +void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, struct bNodeStack *ns); +void node_data_from_gpu_stack(struct bNodeStack *ns, struct GPUNodeStack *gs); + +void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct GPUMaterial *mat, int do_outputs); + +#endif diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.c b/source/blender/nodes/shader/nodes/node_shader_camera.c new file mode 100644 index 00000000000..ecb7c486dc4 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_camera.c @@ -0,0 +1,76 @@ +/* + * $Id: SHD_camera.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_camera.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** CAMERA INFO ******************** */ +static bNodeSocketTemplate sh_node_camera_out[]= { + { SOCK_VECTOR, 0, "View Vector"}, + { SOCK_FLOAT, 0, "View Z Depth"}, + { SOCK_FLOAT, 0, "View Distance"}, + { -1, 0, "" } +}; + + +static void node_shader_exec_camera(void *data, bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **out) +{ + if(data) { + ShadeInput *shi= ((ShaderCallData *)data)->shi; /* Data we need for shading. */ + + VECCOPY(out[0]->vec, shi->co); /* get view vector */ + out[1]->vec[0]= fabs(shi->co[2]); /* get view z-depth */ + out[2]->vec[0]= normalize_v3(out[0]->vec); /* get view distance */ + } +} + +static int gpu_shader_camera(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "camera", in, out, GPU_builtin(GPU_VIEW_POSITION)); +} + +void register_node_type_sh_camera(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_CAMERA, "Camera Data", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, NULL, sh_node_camera_out); + node_type_size(&ntype, 95, 95, 120); + node_type_storage(&ntype, "node_camera", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_camera); + node_type_gpu(&ntype, gpu_shader_camera); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_common.c b/source/blender/nodes/shader/nodes/node_shader_common.c new file mode 100644 index 00000000000..ab3638436f1 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -0,0 +1,327 @@ +/* + * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva, + * Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_common.c + * \ingroup shdnodes + */ + + +#include "DNA_node_types.h" + +#include "BKE_node.h" + +#include "node_shader_util.h" +#include "node_common.h" +#include "node_exec.h" + +static void copy_stack(bNodeStack *to, bNodeStack *from) +{ + if (to != from) { + copy_v4_v4(to->vec, from->vec); + to->data = from->data; + to->datatype = from->datatype; + + /* tag as copy to prevent freeing */ + to->is_copy = 1; + } +} + +static void move_stack(bNodeStack *to, bNodeStack *from) +{ + if (to != from) { + copy_v4_v4(to->vec, from->vec); + to->data = from->data; + to->datatype = from->datatype; + to->is_copy = from->is_copy; + + zero_v4(from->vec); + from->data = NULL; + from->datatype = 0; + from->is_copy = 0; + } +} + +/**** GROUP ****/ + +static void *group_initexec(bNode *node) +{ + bNodeTree *ngroup= (bNodeTree*)node->id; + bNodeTreeExec *exec; + + /* initialize the internal node tree execution */ + exec = ntreeShaderBeginExecTree(ngroup); + + return exec; +} + +static void group_freeexec(bNode *UNUSED(node), void *nodedata) +{ + bNodeTreeExec*gexec= (bNodeTreeExec*)nodedata; + + ntreeShaderEndExecTree(gexec); +} + +/* Copy inputs to the internal stack. + */ +static void group_copy_inputs(bNode *node, bNodeStack **in, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->inputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + copy_stack(ns, in[a]); + } + } +} + +/* Copy internal results to the external outputs. + */ +static void group_move_outputs(bNode *node, bNodeStack **out, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->outputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + move_stack(out[a], ns); + } + } +} + +static void group_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + group_copy_inputs(node, in, nts->stack); + ntreeExecThreadNodes(exec, nts, data, thread); + group_move_outputs(node, out, nts->stack); + + ntreeReleaseThreadStack(nts); +} + +static void group_gpu_copy_inputs(bNode *node, GPUNodeStack *in, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->inputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + /* convert the external gpu stack back to internal node stack data */ + node_data_from_gpu_stack(ns, &in[a]); + } + } +} + +/* Copy internal results to the external outputs. + */ +static void group_gpu_move_outputs(bNode *node, GPUNodeStack *out, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->outputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + /* convert the node stack data result back to gpu stack */ + node_gpu_stack_from_data(&out[a], sock->type, ns); + } + } +} + +static int gpu_group_execute(GPUMaterial *mat, bNode *node, void *nodedata, GPUNodeStack *in, GPUNodeStack *out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + + group_gpu_copy_inputs(node, in, exec->stack); + ntreeExecGPUNodes(exec, mat, (node->flag & NODE_GROUP_EDIT)); + group_gpu_move_outputs(node, out, exec->stack); + + return 1; +} + +void register_node_type_sh_group(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_group_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_group_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, group_execute); + node_type_gpu_ext(&ntype, gpu_group_execute); + + nodeRegisterType(lb, &ntype); +} + + +/**** FOR LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +static void forloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + int iterations= (int)in[0]->vec[0]; + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + /* "Iteration" socket */ + sock = exec->nodetree->inputs.first; + ns = node_get_socket_stack(nts->stack, sock); + +// group_copy_inputs(node, in, nts->stack); + for (iteration=0; iteration < iterations; ++iteration) { + /* first input contains current iteration counter */ + ns->vec[0] = (float)iteration; + ns->vec[1]=ns->vec[2]=ns->vec[3] = 0.0f; + +// if (iteration > 0) +// loop_init_iteration(exec->nodetree, nts->stack); +// ntreeExecThreadNodes(exec, nts, data, thread); + } +// loop_copy_outputs(node, in, out, exec->stack); + + ntreeReleaseThreadStack(nts); +} + +void register_node_type_sh_forloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_FORLOOP, "For", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_forloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_forloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_forloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, forloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif + +/**** WHILE LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +static void whileloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + int condition= (in[0]->vec[0] > 0.0f); + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + /* "Condition" socket */ + sock = exec->nodetree->outputs.first; + ns = node_get_socket_stack(nts->stack, sock); + + iteration = 0; +// group_copy_inputs(node, in, nts->stack); + while (condition && iteration < node->custom1) { +// if (iteration > 0) +// loop_init_iteration(exec->nodetree, nts->stack); +// ntreeExecThreadNodes(exec, nts, data, thread); + + condition = (ns->vec[0] > 0.0f); + ++iteration; + } +// loop_copy_outputs(node, in, out, exec->stack); + + ntreeReleaseThreadStack(nts); +} + +void register_node_type_sh_whileloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_WHILELOOP, "While", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_whileloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_whileloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_whileloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, whileloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.c b/source/blender/nodes/shader/nodes/node_shader_curves.c new file mode 100644 index 00000000000..ded867ec441 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_curves.c @@ -0,0 +1,142 @@ +/* + * $Id: SHD_curves.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_curves.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + + +/* **************** CURVE VEC ******************** */ +static bNodeSocketTemplate sh_node_curve_vec_in[]= { + { SOCK_FLOAT, 0, "Fac", 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_curve_vec_out[]= { + { SOCK_VECTOR, 0, "Vector"}, + { -1, 0, "" } +}; + +static void node_shader_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + float vec[3]; + + /* stack order input: vec */ + /* stack order output: vec */ + nodestack_get_vec(vec, SOCK_VECTOR, in[1]); + curvemapping_evaluate3F(node->storage, out[0]->vec, vec); +} + +static void node_shader_init_curve_vec(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f); +} + +static int gpu_shader_curve_vec(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + float *array; + int size; + + curvemapping_table_RGBA(node->storage, &array, &size); + return GPU_stack_link(mat, "curves_vec", in, out, GPU_texture(size, array)); +} + +void register_node_type_sh_curve_vec(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_curve_vec_in, sh_node_curve_vec_out); + node_type_size(&ntype, 200, 140, 320); + node_type_init(&ntype, node_shader_init_curve_vec); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_shader_exec_curve_vec); + node_type_gpu(&ntype, gpu_shader_curve_vec); + + nodeRegisterType(lb, &ntype); +} + + +/* **************** CURVE RGB ******************** */ +static bNodeSocketTemplate sh_node_curve_rgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_curve_rgb_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void node_shader_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + float vec[3]; + + /* stack order input: vec */ + /* stack order output: vec */ + nodestack_get_vec(vec, SOCK_VECTOR, in[1]); + curvemapping_evaluateRGBF(node->storage, out[0]->vec, vec); + if(in[0]->vec[0] != 1.0f) { + interp_v3_v3v3(out[0]->vec, vec, out[0]->vec, *in[0]->vec); + } +} + +static void node_shader_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); +} + +static int gpu_shader_curve_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + float *array; + int size; + curvemapping_table_RGBA(node->storage, &array, &size); + return GPU_stack_link(mat, "curves_rgb", in, out, GPU_texture(size, array)); +} + +void register_node_type_sh_curve_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_curve_rgb_in, sh_node_curve_rgb_out); + node_type_size(&ntype, 200, 140, 320); + node_type_init(&ntype, node_shader_init_curve_rgb); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, node_shader_exec_curve_rgb); + node_type_gpu(&ntype, gpu_shader_curve_rgb); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_dynamic.c b/source/blender/nodes/shader/nodes/node_shader_dynamic.c new file mode 100644 index 00000000000..6490ee00787 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_dynamic.c @@ -0,0 +1,792 @@ +/* + * $Id: SHD_dynamic.c 35927 2011-03-31 20:59:55Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Nathan Letwory + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_dynamic.c + * \ingroup shdnodes + */ + + +/* TODO, support python3.x */ +#undef WITH_PYTHON + +#ifdef WITH_PYTHON +#include +#include +#include +#endif + +#include "DNA_text_types.h" +#include "BKE_text.h" + + +// XXX +#if 0 +#ifdef WITH_PYTHON +#include "api2_2x/Node.h" +#include "api2_2x/gen_utils.h" +#include "BPY_extern.h" +#endif +#endif + +#include "node_shader_util.h" + +// XXX +#if 0 +static void node_dynamic_setup(bNode *node); +static void node_dynamic_exec_cb(void *data, bNode *node, bNodeStack **in, bNodeStack **out); +static void node_dynamic_free_storage_cb(bNode *node); + +#ifdef WITH_PYTHON +static PyObject *init_dynamicdict(void) { + PyObject *newscriptdict, *item; + PyGILState_STATE gilstate = PyGILState_Ensure(); + + newscriptdict= PyDict_New(); + + PyDict_SetItemString(newscriptdict, "__builtins__", PyEval_GetBuiltins()); + item= PyString_FromString("__main__"); + PyDict_SetItemString(newscriptdict, "__name__", item); + Py_DECREF(item); + + PyGILState_Release(gilstate); + + return newscriptdict; +} +#endif + +static bNodeType *node_dynamic_find_typeinfo(ListBase *list, ID *id) +{ + bNodeType *ntype = list->first; + + while(ntype) { + if (ntype->type == NODE_DYNAMIC && ntype->id == id) + break; + ntype = ntype->next; + } + + return ntype; /* NULL if doesn't exist */ +} + +static void node_dynamic_free_typeinfo_sockets(bNodeType *tinfo) +{ + bNodeSocketTemplate *sock; + + if (!tinfo) return; + + if (tinfo->inputs) { + sock = tinfo->inputs; + while (sock->type != -1) { + MEM_freeN(sock->name); + sock++; + } + MEM_freeN(tinfo->inputs); + tinfo->inputs = NULL; + } + if (tinfo->outputs) { + sock = tinfo->outputs; + while (sock->type != -1) { + MEM_freeN(sock->name); + sock++; + } + MEM_freeN(tinfo->outputs); + tinfo->outputs = NULL; + } +} + +static void node_dynamic_free_typeinfo(bNodeType *tinfo) +{ + if (!tinfo) return; + + node_dynamic_free_typeinfo_sockets(tinfo); + + if (tinfo->name) { MEM_freeN(tinfo->name); } + + MEM_freeN(tinfo); +} + +static void node_dynamic_free_sockets(bNode *node) +{ + BLI_freelistN(&node->inputs); + BLI_freelistN(&node->outputs); +} + +/* For now we just remove the socket links. It's the safest + * route, since an update in the script may change completely the + * inputs and outputs. Trying to recreate the node links would be + * nicer for pynode authors, though. */ +static void node_dynamic_update_socket_links(bNode *node, bNodeTree *ntree) +{ + if (ntree) { + nodeVerifyType(ntree, node); + } + else { + Material *ma; + + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + bNode *nd; + for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { + if (nd == node) nodeVerifyType(ma->nodetree, node); + } + } + } + } +} + +static void node_dynamic_free_storage_cb(bNode *node) +{ +#ifdef WITH_PYTHON + NodeScriptDict *nsd; + PyObject *pydict; + BPy_Node *pynode; + + if (!node->storage) return; + nsd = (NodeScriptDict *)(node->storage); + pydict = nsd->dict; + if (pydict) { + Py_DECREF(pydict); + } + pynode = nsd->node; + if (pynode) { + Py_DECREF(pynode); + } +#endif + MEM_freeN(node->storage); + node->storage = NULL; +} + +/* Disable pynode when its script fails */ +static void node_dynamic_disable(bNode *node) +{ + node->custom1 = 0; + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ERROR); +} + +/* Disable all pynodes using the given text (script) id */ +static void node_dynamic_disable_all_by_id(ID *id) +{ +#ifdef WITH_PYTHON + Material *ma; /* XXX hardcoded for shaders */ + + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + bNode *nd; + bNodeTree *ntree = ma->nodetree; + for (nd= ntree->nodes.first; nd; nd= nd->next) { + if (nd->id == id) { + nd->custom1 = 0; + nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_ERROR); + } + } + } + } +#endif +} + +static void node_rem_socklist_links(bNodeTree *ntree, ListBase *lb) +{ + bNodeLink *link, *next; + bNodeSocket *sock; + + if (!lb) return; + + for (sock= lb->first; sock; sock= sock->next) { + for (link= ntree->links.first; link; link= next) { + next= link->next; + if (link->fromsock==sock || link->tosock==sock) { + nodeRemLink(ntree, link); + } + } + } +} + +/* XXX hardcoded for shaders */ +static void node_dynamic_rem_all_links(bNodeType *tinfo) +{ + Material *ma; + int in, out; + + in = tinfo->inputs ? 1 : 0; + out = tinfo->outputs ? 1 : 0; + + if (!in && !out) return; + + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + bNode *nd; + bNodeTree *ntree = ma->nodetree; + for (nd= ntree->nodes.first; nd; nd= nd->next) { + if (nd->typeinfo == tinfo) { + if (in) + node_rem_socklist_links(ntree, &nd->inputs); + if (out) + node_rem_socklist_links(ntree, &nd->outputs); + } + } + } + } +} + +/* node_dynamic_reset: clean a pynode, getting rid of all + * data dynamically created for it. */ +static void node_dynamic_reset(bNode *node, int unlink_text) +{ + bNodeType *tinfo, *tinfo_default; + Material *ma; + + tinfo = node->typeinfo; + tinfo_default = node_dynamic_find_typeinfo(&node_all_shaders, NULL); + + if ((tinfo == tinfo_default) && unlink_text) { + ID *textID = node->id; + /* already at default (empty) state, which happens if this node's + * script failed to parse at the first stage: definition. We're here + * because its text was removed from Blender. */ + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + bNode *nd; + for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { + if (nd->id == textID) { + nd->id = NULL; + nd->custom1 = 0; + nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_NEW); + BLI_strncpy(nd->name, "Dynamic", 8); + return; + } + } + } + } + } + + node_dynamic_rem_all_links(tinfo); + node_dynamic_free_typeinfo_sockets(tinfo); + + /* reset all other XXX shader nodes sharing this typeinfo */ + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + bNode *nd; + for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { + if (nd->typeinfo == tinfo) { + node_dynamic_free_storage_cb(nd); + node_dynamic_free_sockets(nd); + //node_dynamic_update_socket_links(nd, ma->nodetree); + nd->typeinfo = tinfo_default; + if (unlink_text) { + nd->id = NULL; + nd->custom1 = 0; + nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_NEW); + BLI_strncpy(nd->name, "Dynamic", 8); + } + } + } + } + } + + /* XXX hardcoded for shaders: */ + if (tinfo->id) { BLI_remlink(&node_all_shaders, tinfo); } + node_dynamic_free_typeinfo(tinfo); +} + +/* Special case of the above function: for working pynodes + * that were saved on a .blend but fail for some reason when + * the file is opened. We need this because pynodes are initialized + * before G.main. */ +static void node_dynamic_reset_loaded(bNode *node) +{ + bNodeType *tinfo = node->typeinfo; + + node_dynamic_rem_all_links(tinfo); + node_dynamic_free_typeinfo_sockets(tinfo); + node_dynamic_free_storage_cb(node); + /* XXX hardcoded for shaders: */ + if (tinfo->id) { BLI_remlink(&node_all_shaders, tinfo); } + + node_dynamic_free_typeinfo(tinfo); + node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, NULL); +} + +int nodeDynamicUnlinkText(ID *txtid) { + Material *ma; + bNode *nd; + + /* find one node that uses this text */ + for (ma= G.main->mat.first; ma; ma= ma->id.next) { + if (ma->nodetree) { + for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) { + if ((nd->type == NODE_DYNAMIC) && (nd->id == txtid)) { + node_dynamic_reset(nd, 1); /* found, reset all */ + return 1; + } + } + } + } + return 0; /* no pynodes used this text */ +} + +static void node_dynamic_pyerror_print(bNode *node) +{ +#ifdef WITH_PYTHON + PyGILState_STATE gilstate = PyGILState_Ensure(); + + fprintf(stderr, "\nError in dynamic node script \"%s\":\n", node->name); + if (PyErr_Occurred()) { + PyErr_Print(); + PyErr_Clear(); + PySys_SetObject("last_traceback", NULL); + } + else { fprintf(stderr, "Not a valid dynamic node Python script.\n"); } + + PyGILState_Release(gilstate); +#endif +} + +static void node_dynamic_register_type(bNode *node) +{ + nodeRegisterType(&node_all_shaders, node->typeinfo); + /* nodeRegisterType copied it to a new one, so we + * free the typeinfo itself, but not what it + * points to: */ + MEM_freeN(node->typeinfo); + node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, node->id); + MEM_freeN(node->typeinfo->name); + node->typeinfo->name = BLI_strdup(node->name); +} + +#ifdef WITH_PYTHON +/* node_dynamic_get_pynode: + * Find the pynode definition from the script */ +static PyObject *node_dynamic_get_pynode(PyObject *dict) +{ + PyObject *key= NULL; + Py_ssize_t pos = 0; + PyObject *value = NULL; + + /* script writer specified a node? */ + value = PyDict_GetItemString(dict, "__node__"); + + if (value) { + if (PyObject_TypeCheck(value, &PyType_Type)) { + Py_INCREF(value); + return value; + } + else { + PyErr_SetString(PyExc_TypeError, + "expected class object derived from Scripted node"); + return NULL; + } + } + + /* case not, search for it in the script's global dictionary */ + while (PyDict_Next(dict, &pos, &key, &value)) { + /* skip names we know belong to other available objects */ + if (strcmp("Socket", PyString_AsString(key)) == 0) + continue; + else if (strcmp("Scripted", PyString_AsString(key)) == 0) + continue; + /* naive: we grab the first ob of type 'type': */ + else if (PyObject_TypeCheck(value, &PyType_Type)) { + Py_INCREF(value); + return value; + } + } + + PyErr_SetString(PyExc_TypeError, + "no PyNode definition found in the script!"); + return NULL; +} +#endif /* WITH_PYTHON */ + +static int node_dynamic_parse(struct bNode *node) +{ +#ifndef WITH_PYTHON + return -1; +#else + PyObject *dict= NULL; + PyObject *pynode_data= NULL; + PyObject *pynode= NULL; + PyObject *args= NULL; + NodeScriptDict *nsd = NULL; + PyObject *pyresult = NULL; + char *buf = NULL; + int is_valid_script = 0; + PyGILState_STATE gilstate; + + if (!node->id || !node->storage) + return 0; + + /* READY, no need to be here */ + if (BTST(node->custom1, NODE_DYNAMIC_READY)) + return 0; + + /* for threading */ + gilstate = PyGILState_Ensure(); + + nsd = (NodeScriptDict *)node->storage; + + dict = (PyObject *)(nsd->dict); + buf = txt_to_buf((Text *)node->id); + + pyresult = PyRun_String(buf, Py_file_input, dict, dict); + + MEM_freeN(buf); + + if (!pyresult) { + if (BTST(node->custom1, NODE_DYNAMIC_LOADED)) { + node_dynamic_disable(node); + } else { + node_dynamic_disable_all_by_id(node->id); + } + node_dynamic_pyerror_print(node); + PyGILState_Release(gilstate); + return -1; + } + + Py_DECREF(pyresult); + + pynode_data = node_dynamic_get_pynode(dict); + + if (pynode_data) { + BPy_NodeSocketLists *socklists = Node_CreateSocketLists(node); + + args = Py_BuildValue("(O)", socklists); + + /* init it to get the input and output sockets */ + pynode = PyObject_Call(pynode_data, args, NULL); + + Py_DECREF(pynode_data); + Py_DECREF(socklists); + Py_DECREF(args); + + if (!PyErr_Occurred() && pynode && pytype_is_pynode(pynode)) { + InitNode((BPy_Node *)(pynode), node); + nsd->node = pynode; + node->typeinfo->execfunc = node_dynamic_exec_cb; + is_valid_script = 1; + + /* for NEW, LOADED, REPARSE */ + if (BNTST(node->custom1, NODE_DYNAMIC_ADDEXIST)) { + node->typeinfo->pydict = dict; + node->typeinfo->pynode = pynode; + node->typeinfo->id = node->id; + if (BNTST(node->custom1, NODE_DYNAMIC_LOADED)) + nodeAddSockets(node, node->typeinfo); + if (BNTST(node->custom1, NODE_DYNAMIC_REPARSE)) + node_dynamic_register_type(node); + } + + node->custom1 = 0; + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_READY); + } + } + + PyGILState_Release(gilstate); + + if (!is_valid_script) { /* not a valid pynode script */ + node_dynamic_disable_all_by_id(node->id); + node_dynamic_pyerror_print(node); + return -1; + } + + return 0; +#endif +} + +/* node_dynamic_setup: prepare for execution (state: NODE_DYNAMIC_READY) + * pynodes already linked to a script (node->id != NULL). */ +static void node_dynamic_setup(bNode *node) +{ +#ifdef WITH_PYTHON + NodeScriptDict *nsd = NULL; + bNodeTree *nodetree = NULL; + bNodeType *ntype = NULL; + PyGILState_STATE gilstate; + + /* Possible cases: + * NEW + * ADDEXIST + * LOADED + * REPARSE + * ERROR + * READY + */ + + /* NEW, but not linked to a script: link default (empty) typeinfo */ + if (!node->id) { + node->typeinfo = node_dynamic_find_typeinfo(&node_all_shaders, + NULL); + return; + } + + /* READY, no need to be here */ + if (BTST(node->custom1, NODE_DYNAMIC_READY)) + return; + + gilstate = PyGILState_Ensure(); + + /* ERROR, reset to (empty) defaults */ + if (BCLR(node->custom1, NODE_DYNAMIC_ERROR) == 0) { + node_dynamic_reset(node, 0); + PyGILState_Release(gilstate); + return; + } + + /* User asked to update this pynode, prepare it for reparsing */ + if (BTST(node->custom1, NODE_DYNAMIC_REPARSE)) { + int needs_parsing = 1; + + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_NEW); + + if (BTST(node->custom1, NODE_DYNAMIC_ERROR)) { + node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_REPARSE); + ntype = node_dynamic_find_typeinfo(&node_all_shaders, node->id); + + if (ntype) { + node->typeinfo = ntype; + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); + node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_ERROR); + needs_parsing = 0; + } + else { nodeMakeDynamicType(node); } + + } else { + node_dynamic_rem_all_links(node->typeinfo); + node_dynamic_free_typeinfo_sockets(node->typeinfo); + node_dynamic_update_socket_links(node, NULL); + node_dynamic_free_storage_cb(node); + } + + if (needs_parsing) { + nsd = MEM_callocN(sizeof(NodeScriptDict), "node script dictionary"); + nsd->dict = init_dynamicdict(); + node->storage = nsd; + /* prepared, now reparse: */ + node_dynamic_parse(node); + PyGILState_Release(gilstate); + return; + } + } + else if (BTST(node->custom1, NODE_DYNAMIC_LOADED)) { + /* when loading from a .blend we don't have G.main yet, so we + * quickly abuse node->storage in ntreeInitTypes (node.c) to have + * our nodetree ptr (needed if a pynode script that worked before + * saving the .blend for some reason fails upon loading): */ + nodetree = (bNodeTree *)node->storage; + node->storage = NULL; + } + + if (node->storage) + fprintf(stderr, "\nDEBUG: PYNODES ERROR: non NULL node->storage in node_dynamic_setup()\n"); + + nsd = MEM_callocN(sizeof(NodeScriptDict), "node script dictionary"); + node->storage = nsd; + + /* NEW, LOADED or REPARSE */ + if (BNTST(node->custom1, NODE_DYNAMIC_ADDEXIST)) { + /* check if there's already a bNodeType linked to this script */ + /* (XXX hardcoded for shader nodes for now) */ + ntype = node_dynamic_find_typeinfo(&node_all_shaders, node->id); + + if (ntype) { /* if so, reuse it */ + node->typeinfo = ntype; + /* so this is actually an ADDEXIST type */ + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); + } + else { /* create bNodeType for this pynode */ + nodeMakeDynamicType(node); + nsd->dict = init_dynamicdict(); + if ((node_dynamic_parse(node) == -1) && nodetree) { + node_dynamic_reset_loaded(node); + } + PyGILState_Release(gilstate); + return; + } + } + + /* ADDEXIST: new pynode linked to an already registered dynamic type, + * we just reuse existing py dict and pynode */ + nsd->dict = node->typeinfo->pydict; + nsd->node = node->typeinfo->pynode; + + Py_INCREF((PyObject *)(nsd->dict)); + Py_INCREF((PyObject *)(nsd->node)); + + if (BTST(node->custom1, NODE_DYNAMIC_NEW)) { + nodeAddSockets(node, node->typeinfo); + node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_NEW); + } + + node->custom1 = BCLR(node->custom1, NODE_DYNAMIC_ADDEXIST); + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_READY); + + PyGILState_Release(gilstate); +#endif /* WITH_PYTHON */ + return; +} + +/* node_dynamic_init_cb callback: called when a pynode is created. + * The pynode type is passed via node->custom2. It can be: + * 0: for loaded empty nodes + * NODE_DYNAMIC_MENU: for the default Dynamic node type + * > NODE_DYNAMIC_MENU: for the new types defined by scripts +*/ +static void node_dynamic_init_cb(bNode *node) { + int type = node->custom2; + + node->custom2 = 0; + + if (type >= NODE_DYNAMIC_MENU) { + node->custom1 = 0; + + if (type == NODE_DYNAMIC_MENU) { + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_NEW); + return; + } + + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); + node->id = node->typeinfo->id; + } + + node_dynamic_setup(node); +} + +/* node_dynamic_copy_cb: pynode copy callback */ +static void node_dynamic_copy_cb(bNode *orig_node, bNode *new_node) +{ +#ifndef WITH_PYTHON + return; +#else + NodeScriptDict *nsd; + PyGILState_STATE gilstate; + + if (!orig_node->storage) return; + + nsd = (NodeScriptDict *)(orig_node->storage); + new_node->storage = MEM_dupallocN(orig_node->storage); + + gilstate = PyGILState_Ensure(); + + if (nsd->node) + Py_INCREF((PyObject *)(nsd->node)); + if (nsd->dict) + Py_INCREF((PyObject *)(nsd->dict)); + + PyGILState_Release(gilstate); +#endif +} + +/* node_dynamic_exec_cb: the execution callback called per pixel + * during rendering. */ +static void node_dynamic_exec_cb(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { +#ifndef WITH_PYTHON + return; +#else + BPy_Node *mynode = NULL; + NodeScriptDict *nsd = NULL; + PyObject *pyresult = NULL; + PyObject *args = NULL; + ShadeInput *shi; + PyGILState_STATE gilstate; + + if (!node->id) + return; + + /*if (G.scene->r.threads > 1) + return;*/ + + if (BTST2(node->custom1, NODE_DYNAMIC_NEW, NODE_DYNAMIC_REPARSE)) { + node_dynamic_setup(node); + return; + } + + if (BTST(node->custom1, NODE_DYNAMIC_ERROR)) { + if (node->storage) node_dynamic_setup(node); + return; + } + + if (BTST(node->custom1, NODE_DYNAMIC_READY)) { + nsd = (NodeScriptDict *)node->storage; + mynode = (BPy_Node *)(nsd->node); + + + if (mynode && PyCallable_Check((PyObject *)mynode)) { + + gilstate = PyGILState_Ensure(); + + mynode->node = node; + shi = ((ShaderCallData *)data)->shi; + + Node_SetStack(mynode, in, NODE_INPUTSTACK); + Node_SetStack(mynode, out, NODE_OUTPUTSTACK); + Node_SetShi(mynode, shi); + + args=Py_BuildValue("()"); + pyresult= PyObject_Call((PyObject *)mynode, args, NULL); + Py_DECREF(args); + + if (!pyresult) { + PyGILState_Release(gilstate); + node_dynamic_disable_all_by_id(node->id); + node_dynamic_pyerror_print(node); + node_dynamic_setup(node); + return; + } + Py_DECREF(pyresult); + PyGILState_Release(gilstate); + } + } +#endif +} + +void register_node_type_sh_dynamic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, NODE_OPTIONS, NULL, NULL); + node_type_size(&ntype, 150, 60, 300); + node_type_init(&ntype, node_dynamic_init_cb); + node_type_storage(&ntype, "NodeScriptDict", node_dynamic_free_storage_cb, node_dynamic_copy_cb); + node_type_exec(&ntype, node_dynamic_exec_cb); + + nodeRegisterType(lb, &ntype); +} + +#else + +void register_node_type_sh_dynamic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, 0); + + nodeRegisterType(lb, &ntype); +} + +#endif + + diff --git a/source/blender/nodes/shader/nodes/node_shader_geom.c b/source/blender/nodes/shader/nodes/node_shader_geom.c new file mode 100644 index 00000000000..b88c5979b54 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_geom.c @@ -0,0 +1,153 @@ +/* + * $Id: SHD_geom.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_geom.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +#include "DNA_customdata_types.h" + +/* **************** GEOMETRY ******************** */ + +/* output socket type definition */ +static bNodeSocketTemplate sh_node_geom_out[]= { + { SOCK_VECTOR, 0, "Global"}, + { SOCK_VECTOR, 0, "Local"}, + { SOCK_VECTOR, 0, "View"}, + { SOCK_VECTOR, 0, "Orco"}, + { SOCK_VECTOR, 0, "UV"}, + { SOCK_VECTOR, 0, "Normal"}, + { SOCK_RGBA, 0, "Vertex Color"}, + { SOCK_FLOAT, 0, "Front/Back"}, + { -1, 0, "" } +}; + +/* node execute callback */ +static void node_shader_exec_geom(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + if(data) { + ShadeInput *shi= ((ShaderCallData *)data)->shi; + NodeGeometry *ngeo= (NodeGeometry*)node->storage; + ShadeInputUV *suv= &shi->uv[shi->actuv]; + static float defaultvcol[4] = {1.0f, 1.0f, 1.0f, 1.0f}; + int i; + + if(ngeo->uvname[0]) { + /* find uv layer by name */ + for(i = 0; i < shi->totuv; i++) { + if(strcmp(shi->uv[i].name, ngeo->uvname)==0) { + suv= &shi->uv[i]; + break; + } + } + } + + /* out: global, local, view, orco, uv, normal, vertex color */ + VECCOPY(out[GEOM_OUT_GLOB]->vec, shi->gl); + VECCOPY(out[GEOM_OUT_LOCAL]->vec, shi->co); + VECCOPY(out[GEOM_OUT_VIEW]->vec, shi->view); + VECCOPY(out[GEOM_OUT_ORCO]->vec, shi->lo); + VECCOPY(out[GEOM_OUT_UV]->vec, suv->uv); + VECCOPY(out[GEOM_OUT_NORMAL]->vec, shi->vno); + + if (shi->totcol) { + /* find vertex color layer by name */ + ShadeInputCol *scol= &shi->col[0]; + + if(ngeo->colname[0]) { + for(i = 0; i < shi->totcol; i++) { + if(strcmp(shi->col[i].name, ngeo->colname)==0) { + scol= &shi->col[i]; + break; + } + } + } + + VECCOPY(out[GEOM_OUT_VCOL]->vec, scol->col); + out[GEOM_OUT_VCOL]->vec[3]= 1.0f; + } + else + memcpy(out[GEOM_OUT_VCOL]->vec, defaultvcol, sizeof(defaultvcol)); + + if(shi->osatex) { + out[GEOM_OUT_GLOB]->data= shi->dxgl; + out[GEOM_OUT_GLOB]->datatype= NS_OSA_VECTORS; + out[GEOM_OUT_LOCAL]->data= shi->dxco; + out[GEOM_OUT_LOCAL]->datatype= NS_OSA_VECTORS; + out[GEOM_OUT_VIEW]->data= &shi->dxview; + out[GEOM_OUT_VIEW]->datatype= NS_OSA_VALUES; + out[GEOM_OUT_ORCO]->data= shi->dxlo; + out[GEOM_OUT_ORCO]->datatype= NS_OSA_VECTORS; + out[GEOM_OUT_UV]->data= suv->dxuv; + out[GEOM_OUT_UV]->datatype= NS_OSA_VECTORS; + out[GEOM_OUT_NORMAL]->data= shi->dxno; + out[GEOM_OUT_NORMAL]->datatype= NS_OSA_VECTORS; + } + + /* front/back, normal flipping was stored */ + out[GEOM_OUT_FRONTBACK]->vec[0]= (shi->flippednor)? 0.0f: 1.0f; + } +} + +static void node_shader_init_geometry(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= MEM_callocN(sizeof(NodeGeometry), "NodeGeometry"); +} + +static int gpu_shader_geom(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + NodeGeometry *ngeo= (NodeGeometry*)node->storage; + GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); + GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ngeo->uvname); + GPUNodeLink *mcol = GPU_attribute(CD_MCOL, ngeo->colname); + + return GPU_stack_link(mat, "geom", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX), orco, mtface, mcol); +} + +/* node type definition */ +void register_node_type_sh_geom(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, sh_node_geom_out); + node_type_size(&ntype, 120, 80, 160); + node_type_init(&ntype, node_shader_init_geometry); + node_type_storage(&ntype, "NodeGeometry", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_geom); + node_type_gpu(&ntype, gpu_shader_geom); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c new file mode 100644 index 00000000000..ef1434b82ca --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c @@ -0,0 +1,99 @@ +/* + * + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_hueSatVal.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + + +/* **************** Hue Saturation ******************** */ +static bNodeSocketTemplate sh_node_hue_sat_in[]= { + { SOCK_FLOAT, 1, "Hue", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Saturation", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Value", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_hue_sat_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +/* note: it would be possible to use CMP version for both nodes */ +static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float *hue, float *sat, float *val, float *in, float *fac) +{ + if(*fac!=0.0f && (*hue!=0.5f || *sat!=1.0f || *val!=1.0f)) { + float col[3], hsv[3], mfac= 1.0f - *fac; + + rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); + hsv[0]+= (*hue - 0.5f); + if(hsv[0]>1.0f) hsv[0]-=1.0f; else if(hsv[0]<0.0f) hsv[0]+= 1.0f; + hsv[1]*= *sat; + hsv[2]*= *val; + hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); + + out[0]= mfac*in[0] + *fac*col[0]; + out[1]= mfac*in[1] + *fac*col[1]; + out[2]= mfac*in[2] + *fac*col[2]; + } + else { + QUATCOPY(out, in); + } +} + +static void node_shader_exec_hue_sat(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + do_hue_sat_fac(node, out[0]->vec, in[0]->vec, in[1]->vec, in[2]->vec, in[4]->vec, in[3]->vec); +} + + +static int gpu_shader_hue_sat(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "hue_sat", in, out); +} + +void register_node_type_sh_hue_sat(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_hue_sat_in, sh_node_hue_sat_out); + node_type_size(&ntype, 150, 80, 250); + node_type_exec(&ntype, node_shader_exec_hue_sat); + node_type_gpu(&ntype, gpu_shader_hue_sat); + + nodeRegisterType(lb, &ntype); +} + + + diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.c b/source/blender/nodes/shader/nodes/node_shader_invert.c new file mode 100644 index 00000000000..bd7e571f073 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_invert.c @@ -0,0 +1,90 @@ +/* + * $Id: SHD_invert.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_invert.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + + + +/* **************** INVERT ******************** */ +static bNodeSocketTemplate sh_node_invert_in[]= { + { SOCK_FLOAT, 1, "Fac", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_invert_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void node_shader_exec_invert(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, +bNodeStack **out) +{ + float col[3], facm; + + col[0] = 1.0f - in[1]->vec[0]; + col[1] = 1.0f - in[1]->vec[1]; + col[2] = 1.0f - in[1]->vec[2]; + + /* if fac, blend result against original input */ + if (in[0]->vec[0] < 1.0f) { + facm = 1.0f - in[0]->vec[0]; + + col[0] = in[0]->vec[0]*col[0] + (facm*in[1]->vec[0]); + col[1] = in[0]->vec[0]*col[1] + (facm*in[1]->vec[1]); + col[2] = in[0]->vec[0]*col[2] + (facm*in[1]->vec[2]); + } + + VECCOPY(out[0]->vec, col); +} + +static int gpu_shader_invert(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "invert", in, out); +} + +void register_node_type_sh_invert(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_invert_in, sh_node_invert_out); + node_type_size(&ntype, 90, 80, 100); + node_type_exec(&ntype, node_shader_exec_invert); + node_type_gpu(&ntype, gpu_shader_invert); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c new file mode 100644 index 00000000000..21cea4853ad --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -0,0 +1,104 @@ +/* + * $Id: SHD_mapping.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_mapping.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** MAPPING ******************** */ +static bNodeSocketTemplate sh_node_mapping_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_mapping_out[]= { + { SOCK_VECTOR, 0, "Vector"}, + { -1, 0, "" } +}; + +/* do the regular mapping options for blender textures */ +static void node_shader_exec_mapping(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + TexMapping *texmap= node->storage; + float *vec= out[0]->vec; + + /* stack order input: vector */ + /* stack order output: vector */ + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + mul_m4_v3(texmap->mat, vec); + + if(texmap->flag & TEXMAP_CLIP_MIN) { + if(vec[0]min[0]) vec[0]= texmap->min[0]; + if(vec[1]min[1]) vec[1]= texmap->min[1]; + if(vec[2]min[2]) vec[2]= texmap->min[2]; + } + if(texmap->flag & TEXMAP_CLIP_MAX) { + if(vec[0]>texmap->max[0]) vec[0]= texmap->max[0]; + if(vec[1]>texmap->max[1]) vec[1]= texmap->max[1]; + if(vec[2]>texmap->max[2]) vec[2]= texmap->max[2]; + } +} + + +static void node_shader_init_mapping(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= add_mapping(); +} + +static int gpu_shader_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + TexMapping *texmap= node->storage; + float domin= (texmap->flag & TEXMAP_CLIP_MIN) != 0; + float domax= (texmap->flag & TEXMAP_CLIP_MAX) != 0; + GPUNodeLink *tmat = GPU_uniform((float*)texmap->mat); + GPUNodeLink *tmin = GPU_uniform(texmap->min); + GPUNodeLink *tmax = GPU_uniform(texmap->max); + GPUNodeLink *tdomin = GPU_uniform(&domin); + GPUNodeLink *tdomax = GPU_uniform(&domax); + + return GPU_stack_link(mat, "mapping", in, out, tmat, tmin, tmax, tdomin, tdomax); +} + +void register_node_type_sh_mapping(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MAPPING, "Mapping", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_mapping_in, sh_node_mapping_out); + node_type_size(&ntype, 240, 160, 320); + node_type_init(&ntype, node_shader_init_mapping); + node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_mapping); + node_type_gpu(&ntype, gpu_shader_mapping); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/shader/nodes/node_shader_material.c b/source/blender/nodes/shader/nodes/node_shader_material.c new file mode 100644 index 00000000000..a0bfd430506 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_material.c @@ -0,0 +1,336 @@ +/* + * $Id: SHD_material.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_material.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** MATERIAL ******************** */ + +static bNodeSocketTemplate sh_node_material_in[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 1, "Spec", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Refl", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_DIRECTION}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_material_out[]= { + { SOCK_RGBA, 0, "Color"}, + { SOCK_FLOAT, 0, "Alpha"}, + { SOCK_VECTOR, 0, "Normal"}, + { -1, 0, "" } +}; + +/* **************** EXTENDED MATERIAL ******************** */ + +static bNodeSocketTemplate sh_node_material_ext_in[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 1, "Spec", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Refl", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_DIRECTION}, + { SOCK_RGBA, 1, "Mirror", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Ambient", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Emit", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, + { SOCK_FLOAT, 1, "SpecTra", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Ray Mirror", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_FLOAT, 1, "Alpha", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, + { SOCK_FLOAT, 1, "Translucency", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_material_ext_out[]= { + { SOCK_RGBA, 0, "Color"}, + { SOCK_FLOAT, 0, "Alpha"}, + { SOCK_VECTOR, 0, "Normal"}, + { SOCK_RGBA, 0, "Diffuse"}, + { SOCK_RGBA, 0, "Spec"}, + { SOCK_RGBA, 0, "AO"}, + { -1, 0, "" } +}; + +static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(data && node->id) { + ShadeResult shrnode; + ShadeInput *shi; + ShaderCallData *shcd= data; + float col[4]; + bNodeSocket *sock; + char hasinput[NUM_MAT_IN]= {'\0'}; + int i; + + /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily + * the constant input stack values (e.g. in case material node is inside a group). + * we just want to know if a node input uses external data or the material setting. + * this is an ugly hack, but so is this node as a whole. + */ + for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) + hasinput[i] = (sock->link != NULL); + + shi= shcd->shi; + shi->mat= (Material *)node->id; + + /* copy all relevant material vars, note, keep this synced with render_types.h */ + memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); + shi->har= shi->mat->har; + + /* write values */ + if(hasinput[MAT_IN_COLOR]) + nodestack_get_vec(&shi->r, SOCK_VECTOR, in[MAT_IN_COLOR]); + + if(hasinput[MAT_IN_SPEC]) + nodestack_get_vec(&shi->specr, SOCK_VECTOR, in[MAT_IN_SPEC]); + + if(hasinput[MAT_IN_REFL]) + nodestack_get_vec(&shi->refl, SOCK_FLOAT, in[MAT_IN_REFL]); + + /* retrieve normal */ + if(hasinput[MAT_IN_NORMAL]) { + nodestack_get_vec(shi->vn, SOCK_VECTOR, in[MAT_IN_NORMAL]); + normalize_v3(shi->vn); + } + else + VECCOPY(shi->vn, shi->vno); + + /* custom option to flip normal */ + if(node->custom1 & SH_NODE_MAT_NEG) { + shi->vn[0]= -shi->vn[0]; + shi->vn[1]= -shi->vn[1]; + shi->vn[2]= -shi->vn[2]; + } + + if (node->type == SH_NODE_MATERIAL_EXT) { + if(hasinput[MAT_IN_MIR]) + nodestack_get_vec(&shi->mirr, SOCK_VECTOR, in[MAT_IN_MIR]); + if(hasinput[MAT_IN_AMB]) + nodestack_get_vec(&shi->amb, SOCK_FLOAT, in[MAT_IN_AMB]); + if(hasinput[MAT_IN_EMIT]) + nodestack_get_vec(&shi->emit, SOCK_FLOAT, in[MAT_IN_EMIT]); + if(hasinput[MAT_IN_SPECTRA]) + nodestack_get_vec(&shi->spectra, SOCK_FLOAT, in[MAT_IN_SPECTRA]); + if(hasinput[MAT_IN_RAY_MIRROR]) + nodestack_get_vec(&shi->ray_mirror, SOCK_FLOAT, in[MAT_IN_RAY_MIRROR]); + if(hasinput[MAT_IN_ALPHA]) + nodestack_get_vec(&shi->alpha, SOCK_FLOAT, in[MAT_IN_ALPHA]); + if(hasinput[MAT_IN_TRANSLUCENCY]) + nodestack_get_vec(&shi->translucency, SOCK_FLOAT, in[MAT_IN_TRANSLUCENCY]); + } + + shi->nodes= 1; /* temp hack to prevent trashadow recursion */ + node_shader_lamp_loop(shi, &shrnode); /* clears shrnode */ + shi->nodes= 0; + + /* write to outputs */ + if(node->custom1 & SH_NODE_MAT_DIFF) { + VECCOPY(col, shrnode.combined); + if(!(node->custom1 & SH_NODE_MAT_SPEC)) { + sub_v3_v3(col, shrnode.spec); + } + } + else if(node->custom1 & SH_NODE_MAT_SPEC) { + VECCOPY(col, shrnode.spec); + } + else + col[0]= col[1]= col[2]= 0.0f; + + col[3]= shrnode.alpha; + + if(shi->do_preview) + nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage); + + VECCOPY(out[MAT_OUT_COLOR]->vec, col); + out[MAT_OUT_ALPHA]->vec[0]= shrnode.alpha; + + if(node->custom1 & SH_NODE_MAT_NEG) { + shi->vn[0]= -shi->vn[0]; + shi->vn[1]= -shi->vn[1]; + shi->vn[2]= -shi->vn[2]; + } + + VECCOPY(out[MAT_OUT_NORMAL]->vec, shi->vn); + + /* Extended material options */ + if (node->type == SH_NODE_MATERIAL_EXT) { + /* Shadow, Reflect, Refract, Radiosity, Speed seem to cause problems inside + * a node tree :( */ + VECCOPY(out[MAT_OUT_DIFFUSE]->vec, shrnode.diff); + VECCOPY(out[MAT_OUT_SPEC]->vec, shrnode.spec); + VECCOPY(out[MAT_OUT_AO]->vec, shrnode.ao); + } + + /* copy passes, now just active node */ + if(node->flag & NODE_ACTIVE_ID) { + float combined[4], alpha; + + copy_v4_v4(combined, shcd->shr->combined); + alpha= shcd->shr->alpha; + + *(shcd->shr)= shrnode; + + copy_v4_v4(shcd->shr->combined, combined); + shcd->shr->alpha= alpha; + } + } +} + + +static void node_shader_init_material(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1= SH_NODE_MAT_DIFF|SH_NODE_MAT_SPEC; +} + +/* XXX this is also done as a local static function in gpu_codegen.c, + * but we need this to hack around the crappy material node. + */ +static GPUNodeLink *gpu_get_input_link(GPUNodeStack *in) +{ + if (in->link) + return in->link; + else + return GPU_uniform(in->vec); +} + +static int gpu_shader_material(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + if(node->id) { + GPUShadeInput shi; + GPUShadeResult shr; + bNodeSocket *sock; + char hasinput[NUM_MAT_IN]= {'\0'}; + int i; + + /* note: cannot use the in[]->hasinput flags directly, as these are not necessarily + * the constant input stack values (e.g. in case material node is inside a group). + * we just want to know if a node input uses external data or the material setting. + */ + for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) + hasinput[i] = (sock->link != NULL); + + GPU_shadeinput_set(mat, (Material*)node->id, &shi); + + /* write values */ + if(hasinput[MAT_IN_COLOR]) + shi.rgb = gpu_get_input_link(&in[MAT_IN_COLOR]); + + if(hasinput[MAT_IN_SPEC]) + shi.specrgb = gpu_get_input_link(&in[MAT_IN_SPEC]); + + if(hasinput[MAT_IN_REFL]) + shi.refl = gpu_get_input_link(&in[MAT_IN_REFL]); + + /* retrieve normal */ + if(hasinput[MAT_IN_NORMAL]) { + GPUNodeLink *tmp; + shi.vn = gpu_get_input_link(&in[MAT_IN_NORMAL]); + GPU_link(mat, "vec_math_normalize", shi.vn, &shi.vn, &tmp); + } + + /* custom option to flip normal */ + if(node->custom1 & SH_NODE_MAT_NEG) + GPU_link(mat, "vec_math_negate", shi.vn, &shi.vn); + + if (node->type == SH_NODE_MATERIAL_EXT) { + if(hasinput[MAT_IN_AMB]) + shi.amb= gpu_get_input_link(&in[MAT_IN_AMB]); + if(hasinput[MAT_IN_EMIT]) + shi.emit= gpu_get_input_link(&in[MAT_IN_EMIT]); + if(hasinput[MAT_IN_ALPHA]) + shi.alpha= gpu_get_input_link(&in[MAT_IN_ALPHA]); + } + + GPU_shaderesult_set(&shi, &shr); /* clears shr */ + + /* write to outputs */ + if(node->custom1 & SH_NODE_MAT_DIFF) { + out[MAT_OUT_COLOR].link= shr.combined; + + if(!(node->custom1 & SH_NODE_MAT_SPEC)) { + GPUNodeLink *link; + GPU_link(mat, "vec_math_sub", shr.combined, shr.spec, &out[MAT_OUT_COLOR].link, &link); + } + } + else if(node->custom1 & SH_NODE_MAT_SPEC) { + out[MAT_OUT_COLOR].link= shr.spec; + } + else + GPU_link(mat, "set_rgb_zero", &out[MAT_OUT_COLOR].link); + + GPU_link(mat, "mtex_alpha_to_col", out[MAT_OUT_COLOR].link, shr.alpha, &out[MAT_OUT_COLOR].link); + + out[MAT_OUT_ALPHA].link = shr.alpha; // + + if(node->custom1 & SH_NODE_MAT_NEG) + GPU_link(mat, "vec_math_negate", shi.vn, &shi.vn); + out[MAT_OUT_NORMAL].link = shi.vn; + + if (node->type == SH_NODE_MATERIAL_EXT) { + out[MAT_OUT_DIFFUSE].link = shr.diff; + out[MAT_OUT_SPEC].link = shr.spec; + } + + return 1; + } + + return 0; +} + +void register_node_type_sh_material(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MATERIAL, "Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_socket_templates(&ntype, sh_node_material_in, sh_node_material_out); + node_type_size(&ntype, 120, 80, 240); + node_type_init(&ntype, node_shader_init_material); + node_type_exec(&ntype, node_shader_exec_material); + node_type_gpu(&ntype, gpu_shader_material); + + nodeRegisterType(lb, &ntype); +} + + +void register_node_type_sh_material_ext(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MATERIAL_EXT, "Extended Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_socket_templates(&ntype, sh_node_material_ext_in, sh_node_material_ext_out); + node_type_size(&ntype, 120, 80, 240); + node_type_init(&ntype, node_shader_init_material); + node_type_exec(&ntype, node_shader_exec_material); + node_type_gpu(&ntype, gpu_shader_material); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c new file mode 100644 index 00000000000..0618598379f --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -0,0 +1,256 @@ +/* + * $Id: SHD_math.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_math.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + + +/* **************** SCALAR MATH ******************** */ +static bNodeSocketTemplate sh_node_math_in[]= { + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_math_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void node_shader_exec_math(void *UNUSED(data), bNode *node, bNodeStack **in, +bNodeStack **out) +{ + switch(node->custom1){ + + case 0: /* Add */ + out[0]->vec[0]= in[0]->vec[0] + in[1]->vec[0]; + break; + case 1: /* Subtract */ + out[0]->vec[0]= in[0]->vec[0] - in[1]->vec[0]; + break; + case 2: /* Multiply */ + out[0]->vec[0]= in[0]->vec[0] * in[1]->vec[0]; + break; + case 3: /* Divide */ + { + if(in[1]->vec[0]==0) /* We don't want to divide by zero. */ + out[0]->vec[0]= 0.0; + else + out[0]->vec[0]= in[0]->vec[0] / in[1]->vec[0]; + } + break; + case 4: /* Sine */ + { + if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= sin(in[0]->vec[0]); + else + out[0]->vec[0]= sin(in[1]->vec[0]); + } + break; + case 5: /* Cosine */ + { + if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= cos(in[0]->vec[0]); + else + out[0]->vec[0]= cos(in[1]->vec[0]); + } + break; + case 6: /* Tangent */ + { + if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= tan(in[0]->vec[0]); + else + out[0]->vec[0]= tan(in[1]->vec[0]); + } + break; + case 7: /* Arc-Sine */ + { + if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ + /* Can't do the impossible... */ + if( in[0]->vec[0] <= 1 && in[0]->vec[0] >= -1 ) + out[0]->vec[0]= asin(in[0]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + else { + /* Can't do the impossible... */ + if( in[1]->vec[0] <= 1 && in[1]->vec[0] >= -1 ) + out[0]->vec[0]= asin(in[1]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + } + break; + case 8: /* Arc-Cosine */ + { + if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ + /* Can't do the impossible... */ + if( in[0]->vec[0] <= 1 && in[0]->vec[0] >= -1 ) + out[0]->vec[0]= acos(in[0]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + else { + /* Can't do the impossible... */ + if( in[1]->vec[0] <= 1 && in[1]->vec[0] >= -1 ) + out[0]->vec[0]= acos(in[1]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + } + break; + case 9: /* Arc-Tangent */ + { + if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= atan(in[0]->vec[0]); + else + out[0]->vec[0]= atan(in[1]->vec[0]); + } + break; + case 10: /* Power */ + { + /* Don't want any imaginary numbers... */ + if( in[0]->vec[0] >= 0 ) + out[0]->vec[0]= pow(in[0]->vec[0], in[1]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + break; + case 11: /* Logarithm */ + { + /* Don't want any imaginary numbers... */ + if( in[0]->vec[0] > 0 && in[1]->vec[0] > 0 ) + out[0]->vec[0]= log(in[0]->vec[0]) / log(in[1]->vec[0]); + else + out[0]->vec[0]= 0.0; + } + break; + case 12: /* Minimum */ + { + if( in[0]->vec[0] < in[1]->vec[0] ) + out[0]->vec[0]= in[0]->vec[0]; + else + out[0]->vec[0]= in[1]->vec[0]; + } + break; + case 13: /* Maximum */ + { + if( in[0]->vec[0] > in[1]->vec[0] ) + out[0]->vec[0]= in[0]->vec[0]; + else + out[0]->vec[0]= in[1]->vec[0]; + } + break; + case 14: /* Round */ + { + if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= (in[0]->vec[0]<0)?(int)(in[0]->vec[0] - 0.5f):(int)(in[0]->vec[0] + 0.5f); + else + out[0]->vec[0]= (in[1]->vec[0]<0)?(int)(in[1]->vec[0] - 0.5f):(int)(in[1]->vec[0] + 0.5f); + } + break; + case 15: /* Less Than */ + { + if( in[0]->vec[0] < in[1]->vec[0] ) + out[0]->vec[0]= 1.0f; + else + out[0]->vec[0]= 0.0f; + } + break; + case 16: /* Greater Than */ + { + if( in[0]->vec[0] > in[1]->vec[0] ) + out[0]->vec[0]= 1.0f; + else + out[0]->vec[0]= 0.0f; + } + break; + } +} + +static int gpu_shader_math(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + static const char *names[] = {"math_add", "math_subtract", "math_multiply", + "math_divide", "math_sine", "math_cosine", "math_tangent", "math_asin", + "math_acos", "math_atan", "math_pow", "math_log", "math_min", "math_max", + "math_round", "math_less_than", "math_greater_than"}; + + switch (node->custom1) { + case 0: + case 1: + case 2: + case 3: + case 10: + case 11: + case 12: + case 13: + case 15: + case 16: + GPU_stack_link(mat, names[node->custom1], NULL, out, + GPU_socket(&in[0]), GPU_socket(&in[1])); + break; + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 14: + if(in[0].hasinput || !in[1].hasinput) + GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[0])); + else + GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[1])); + break; + default: + return 0; + } + + return 1; +} + +void register_node_type_sh_math(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_math_in, sh_node_math_out); + node_type_size(&ntype, 120, 110, 160); + node_type_label(&ntype, node_math_label); + node_type_storage(&ntype, "node_math", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_math); + node_type_gpu(&ntype, gpu_shader_math); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c new file mode 100644 index 00000000000..a89faa66fc0 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c @@ -0,0 +1,91 @@ +/* + * $Id: SHD_mixRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_mixRgb.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** MIX RGB ******************** */ +static bNodeSocketTemplate sh_node_mix_rgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { SOCK_RGBA, 1, "Color1", 0.5f, 0.5f, 0.5f, 1.0f}, + { SOCK_RGBA, 1, "Color2", 0.5f, 0.5f, 0.5f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_mix_rgb_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void node_shader_exec_mix_rgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: fac, col1, col2 */ + /* stack order out: col */ + float col[3]; + float fac; + float vec[3]; + + nodestack_get_vec(&fac, SOCK_FLOAT, in[0]); + CLAMP(fac, 0.0f, 1.0f); + + nodestack_get_vec(col, SOCK_VECTOR, in[1]); + nodestack_get_vec(vec, SOCK_VECTOR, in[2]); + + ramp_blend(node->custom1, col, col+1, col+2, fac, vec); + VECCOPY(out[0]->vec, col); +} + +static int gpu_shader_mix_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + static const char *names[] = {"mix_blend", "mix_add", "mix_mult", "mix_sub", + "mix_screen", "mix_div", "mix_diff", "mix_dark", "mix_light", + "mix_overlay", "mix_dodge", "mix_burn", "mix_hue", "mix_sat", + "mix_val", "mix_color", "mix_soft", "mix_linear"}; + + return GPU_stack_link(mat, names[node->custom1], in, out); +} + + +void register_node_type_sh_mix_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_mix_rgb_in, sh_node_mix_rgb_out); + node_type_size(&ntype, 100, 60, 150); + node_type_label(&ntype, node_blend_label); + node_type_exec(&ntype, node_shader_exec_mix_rgb); + node_type_gpu(&ntype, gpu_shader_mix_rgb); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_normal.c b/source/blender/nodes/shader/nodes/node_shader_normal.c new file mode 100644 index 00000000000..099a9bed10d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_normal.c @@ -0,0 +1,95 @@ +/* + * $Id: SHD_normal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_normal.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** NORMAL ******************** */ +static bNodeSocketTemplate sh_node_normal_in[]= { + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_normal_out[]= { + { SOCK_VECTOR, 0, "Normal"}, + { SOCK_FLOAT, 0, "Dot"}, + { -1, 0, "" } +}; + +static void node_shader_init_normal(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + bNodeSocketValueVector *dval= (bNodeSocketValueVector*)sock->default_value; + + /* output value is used for normal vector */ + dval->value[0] = 0.0f; + dval->value[1] = 0.0f; + dval->value[2] = 1.0f; +} + +/* generates normal, does dot product */ +static void node_shader_exec_normal(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float vec[3]; + + /* stack order input: normal */ + /* stack order output: normal, value */ + + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + + VECCOPY(out[0]->vec, ((bNodeSocketValueVector*)sock->default_value)->value); + /* render normals point inside... the widget points outside */ + out[1]->vec[0]= -INPR(out[0]->vec, vec); +} + +static int gpu_shader_normal(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + bNodeSocket *sock= node->outputs.first; + GPUNodeLink *vec = GPU_uniform(((bNodeSocketValueVector*)sock->default_value)->value); + + return GPU_stack_link(mat, "normal", in, out, vec); +} + +void register_node_type_sh_normal(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_normal_in, sh_node_normal_out); + node_type_init(&ntype, node_shader_init_normal); + node_type_exec(&ntype, node_shader_exec_normal); + node_type_gpu(&ntype, gpu_shader_normal); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/shader/nodes/node_shader_output.c b/source/blender/nodes/shader/nodes/node_shader_output.c new file mode 100644 index 00000000000..638af7d4eb3 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output.c @@ -0,0 +1,96 @@ +/* + * $Id: SHD_output.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_output.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** OUTPUT ******************** */ +static bNodeSocketTemplate sh_node_output_in[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; + +static void node_shader_exec_output(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + if(data) { + ShadeInput *shi= ((ShaderCallData *)data)->shi; + float col[4]; + + /* stack order input sockets: col, alpha, normal */ + nodestack_get_vec(col, SOCK_VECTOR, in[0]); + nodestack_get_vec(col+3, SOCK_FLOAT, in[1]); + + if(shi->do_preview) { + nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage); + node->lasty= shi->ys; + } + + if(node->flag & NODE_DO_OUTPUT) { + ShadeResult *shr= ((ShaderCallData *)data)->shr; + + QUATCOPY(shr->combined, col); + shr->alpha= col[3]; + + // VECCOPY(shr->nor, in[3]->vec); + } + } +} + +static int gpu_shader_output(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *outlink; + + /*if(in[1].hasinput) + GPU_material_enable_alpha(mat);*/ + + GPU_stack_link(mat, "output_node", in, out, &outlink); + GPU_material_output_link(mat, outlink); + + return 1; +} + +void register_node_type_sh_output(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT, "Output", NODE_CLASS_OUTPUT, NODE_PREVIEW); + node_type_socket_templates(&ntype, sh_node_output_in, NULL); + node_type_size(&ntype, 80, 60, 200); + node_type_exec(&ntype, node_shader_exec_output); + node_type_gpu(&ntype, gpu_shader_output); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb.c b/source/blender/nodes/shader/nodes/node_shader_rgb.c new file mode 100644 index 00000000000..c9bb78b45dd --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_rgb.c @@ -0,0 +1,84 @@ +/* + * $Id: SHD_rgb.c 36481 2011-05-04 11:42:25Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_rgb.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** RGB ******************** */ +static bNodeSocketTemplate sh_node_rgb_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void node_shader_init_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + bNodeSocketValueRGBA *dval= (bNodeSocketValueRGBA*)sock->default_value; + /* uses the default value of the output socket, must be initialized here */ + dval->value[0] = 0.5f; + dval->value[1] = 0.5f; + dval->value[2] = 0.5f; + dval->value[3] = 1.0f; +} + +static void node_shader_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value; + + VECCOPY(out[0]->vec, col); +} + +static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + bNodeSocket *sock= node->outputs.first; + float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value; + GPUNodeLink *vec = GPU_uniform(col); + + return GPU_stack_link(mat, "set_rgba", in, out, vec); +} + +void register_node_type_sh_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, sh_node_rgb_out); + node_type_init(&ntype, node_shader_init_rgb); + node_type_size(&ntype, 140, 80, 140); + node_type_exec(&ntype, node_shader_exec_rgb); + node_type_gpu(&ntype, gpu_shader_rgb); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c new file mode 100644 index 00000000000..9528aca2574 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c @@ -0,0 +1,112 @@ +/* + * + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_sepcombRGB.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** SEPARATE RGBA ******************** */ +static bNodeSocketTemplate sh_node_seprgb_in[]= { + { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_seprgb_out[]= { + { SOCK_FLOAT, 0, "R"}, + { SOCK_FLOAT, 0, "G"}, + { SOCK_FLOAT, 0, "B"}, + { -1, 0, "" } +}; + +static void node_shader_exec_seprgb(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) +{ + out[0]->vec[0] = in[0]->vec[0]; + out[1]->vec[0] = in[0]->vec[1]; + out[2]->vec[0] = in[0]->vec[2]; +} + +static int gpu_shader_seprgb(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "separate_rgb", in, out); +} + +void register_node_type_sh_seprgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_SEPRGB, "Separate RGB", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, sh_node_seprgb_in, sh_node_seprgb_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_shader_exec_seprgb); + node_type_gpu(&ntype, gpu_shader_seprgb); + + nodeRegisterType(lb, &ntype); +} + + + +/* **************** COMBINE RGB ******************** */ +static bNodeSocketTemplate sh_node_combrgb_in[]= { + { SOCK_FLOAT, 1, "R", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, + { SOCK_FLOAT, 1, "G", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, + { SOCK_FLOAT, 1, "B", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_combrgb_out[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void node_shader_exec_combrgb(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) +{ + out[0]->vec[0] = in[0]->vec[0]; + out[0]->vec[1] = in[1]->vec[0]; + out[0]->vec[2] = in[2]->vec[0]; +} + +static int gpu_shader_combrgb(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "combine_rgb", in, out); +} + +void register_node_type_sh_combrgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_COMBRGB, "Combine RGB", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_combrgb_in, sh_node_combrgb_out); + node_type_size(&ntype, 80, 40, 140); + node_type_exec(&ntype, node_shader_exec_combrgb); + node_type_gpu(&ntype, gpu_shader_combrgb); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_squeeze.c b/source/blender/nodes/shader/nodes/node_shader_squeeze.c new file mode 100644 index 00000000000..305639dff21 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_squeeze.c @@ -0,0 +1,81 @@ +/* + * $Id: SHD_squeeze.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_squeeze.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** VALUE SQUEEZE ******************** */ +static bNodeSocketTemplate sh_node_squeeze_in[]= { + { SOCK_FLOAT, 1, "Value", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Width", 1.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Center", 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_squeeze_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void node_shader_exec_squeeze(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, +bNodeStack **out) +{ + float vec[3]; + + nodestack_get_vec(vec, SOCK_FLOAT, in[0]); + nodestack_get_vec(vec+1, SOCK_FLOAT, in[1]); + nodestack_get_vec(vec+2, SOCK_FLOAT, in[2]); + + out[0]->vec[0] = 1.0f / (1.0f + pow(2.71828183,-((vec[0]-vec[2])*vec[1]))) ; +} + +static int gpu_shader_squeeze(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "squeeze", in, out); +} + +void register_node_type_sh_squeeze(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_SQUEEZE, "Squeeze Value", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_squeeze_in, sh_node_squeeze_out); + node_type_size(&ntype, 120, 110, 160); + node_type_storage(&ntype, "node_squeeze", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_squeeze); + node_type_gpu(&ntype, gpu_shader_squeeze); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c new file mode 100644 index 00000000000..a4957d8f683 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_texture.c @@ -0,0 +1,149 @@ +/* + * $Id: SHD_texture.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_texture.c + * \ingroup shdnodes + */ + + +#include "DNA_texture_types.h" + +#include "node_shader_util.h" + +/* **************** TEXTURE ******************** */ +static bNodeSocketTemplate sh_node_texture_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, /* no limit */ + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_texture_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { SOCK_RGBA , 0, "Color"}, + { SOCK_VECTOR, 0, "Normal"}, + { -1, 0, "" } +}; + +static void node_shader_exec_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + if(data && node->id) { + ShadeInput *shi= ((ShaderCallData *)data)->shi; + TexResult texres; + float vec[3], nor[3]={0.0f, 0.0f, 0.0f}; + int retval; + short which_output = node->custom1; + + short thread = shi->thread; + + /* out: value, color, normal */ + + /* we should find out if a normal as output is needed, for now we do all */ + texres.nor= nor; + texres.tr= texres.tg= texres.tb= 0.0f; + + if(in[0]->hasinput) { + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + + if(in[0]->datatype==NS_OSA_VECTORS) { + float *fp= in[0]->data; + retval= multitex_nodes((Tex *)node->id, vec, fp, fp+3, shi->osatex, &texres, thread, which_output, NULL, NULL); + } + else if(in[0]->datatype==NS_OSA_VALUES) { + float *fp= in[0]->data; + float dxt[3], dyt[3]; + + dxt[0]= fp[0]; dxt[1]= dxt[2]= 0.0f; + dyt[0]= fp[1]; dyt[1]= dyt[2]= 0.0f; + retval= multitex_nodes((Tex *)node->id, vec, dxt, dyt, shi->osatex, &texres, thread, which_output, NULL, NULL); + } + else + retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL); + } + else { + VECCOPY(vec, shi->lo); + retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL); + } + + /* stupid exception */ + if( ((Tex *)node->id)->type==TEX_STUCCI) { + texres.tin= 0.5f + 0.7f*texres.nor[0]; + CLAMP(texres.tin, 0.0f, 1.0f); + } + + /* intensity and color need some handling */ + if(texres.talpha) + out[0]->vec[0]= texres.ta; + else + out[0]->vec[0]= texres.tin; + + if((retval & TEX_RGB)==0) { + out[1]->vec[0]= out[0]->vec[0]; + out[1]->vec[1]= out[0]->vec[0]; + out[1]->vec[2]= out[0]->vec[0]; + out[1]->vec[3]= 1.0f; + } + else { + out[1]->vec[0]= texres.tr; + out[1]->vec[1]= texres.tg; + out[1]->vec[2]= texres.tb; + out[1]->vec[3]= 1.0f; + } + + VECCOPY(out[2]->vec, nor); + + if(shi->do_preview) + nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys, shi->do_manage); + + } +} + +static int gpu_shader_texture(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Tex *tex = (Tex*)node->id; + + if(tex && tex->type == TEX_IMAGE && tex->ima) { + GPUNodeLink *texlink = GPU_image(tex->ima, NULL); + return GPU_stack_link(mat, "texture_image", in, out, texlink); + } + else + return 0; +} + +void register_node_type_sh_texture(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_socket_templates(&ntype, sh_node_texture_in, sh_node_texture_out); + node_type_size(&ntype, 120, 80, 240); + node_type_exec(&ntype, node_shader_exec_texture); + node_type_gpu(&ntype, gpu_shader_texture); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c new file mode 100644 index 00000000000..9353143095a --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c @@ -0,0 +1,129 @@ +/* + * $Id: SHD_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_valToRgb.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** VALTORGB ******************** */ +static bNodeSocketTemplate sh_node_valtorgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_valtorgb_out[]= { + { SOCK_RGBA, 0, "Color"}, + { SOCK_FLOAT, 0, "Alpha"}, + { -1, 0, "" } +}; + +static void node_shader_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + /* stack order in: fac */ + /* stack order out: col, alpha */ + + if(node->storage) { + float fac; + nodestack_get_vec(&fac, SOCK_FLOAT, in[0]); + + do_colorband(node->storage, fac, out[0]->vec); + out[1]->vec[0]= out[0]->vec[3]; + } +} + +static void node_shader_init_valtorgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= add_colorband(1); +} + +static int gpu_shader_valtorgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + float *array; + int size; + + colorband_table_RGBA(node->storage, &array, &size); + return GPU_stack_link(mat, "valtorgb", in, out, GPU_texture(size, array)); +} + +void register_node_type_sh_valtorgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_valtorgb_in, sh_node_valtorgb_out); + node_type_size(&ntype, 240, 200, 300); + node_type_init(&ntype, node_shader_init_valtorgb); + node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_valtorgb); + node_type_gpu(&ntype, gpu_shader_valtorgb); + + nodeRegisterType(lb, &ntype); +} + + +/* **************** RGBTOBW ******************** */ +static bNodeSocketTemplate sh_node_rgbtobw_in[]= { + { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate sh_node_rgbtobw_out[]= { + { SOCK_FLOAT, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + + +static void node_shader_exec_rgbtobw(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out) +{ + /* stack order out: bw */ + /* stack order in: col */ + + out[0]->vec[0]= in[0]->vec[0]*0.35f + in[0]->vec[1]*0.45f + in[0]->vec[2]*0.2f; +} + +static int gpu_shader_rgbtobw(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "rgbtobw", in, out); +} + +void register_node_type_sh_rgbtobw(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out); + node_type_size(&ntype, 80, 40, 120); + node_type_exec(&ntype, node_shader_exec_rgbtobw); + node_type_gpu(&ntype, gpu_shader_rgbtobw); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_value.c b/source/blender/nodes/shader/nodes/node_shader_value.c new file mode 100644 index 00000000000..21ff565306d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_value.c @@ -0,0 +1,82 @@ +/* + * $Id: SHD_value.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_value.c + * \ingroup shdnodes + */ + + +#include "node_shader_util.h" + +/* **************** VALUE ******************** */ +static bNodeSocketTemplate sh_node_value_out[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void node_shader_init_value(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) +{ + bNodeSocket *sock= node->outputs.first; + bNodeSocketValueFloat *dval= (bNodeSocketValueFloat*)sock->default_value; + /* uses the default value of the output socket, must be initialized here */ + dval->value = 0.5f; +} + +static void node_shader_exec_value(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ + bNodeSocket *sock= node->outputs.first; + float val= ((bNodeSocketValueFloat*)sock->default_value)->value; + + out[0]->vec[0]= val; +} + +static int gpu_shader_value(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + bNodeSocket *sock= node->outputs.first; + float *val= &((bNodeSocketValueFloat*)sock->default_value)->value; + GPUNodeLink *vec = GPU_uniform(val); + + return GPU_stack_link(mat, "set_value", in, out, vec); +} + +void register_node_type_sh_value(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, sh_node_value_out); + node_type_init(&ntype, node_shader_init_value); + node_type_size(&ntype, 80, 50, 120); + node_type_exec(&ntype, node_shader_exec_value); + node_type_gpu(&ntype, gpu_shader_value); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c new file mode 100644 index 00000000000..c6a081431a2 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -0,0 +1,150 @@ +/* + * $Id: SHD_vectMath.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/shader/nodes/node_shader_vectMath.c + * \ingroup shdnodes + */ + + + +#include "node_shader_util.h" + + +/* **************** VECTOR MATH ******************** */ +static bNodeSocketTemplate sh_node_vect_math_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_vect_math_out[]= { + { SOCK_VECTOR, 0, "Vector"}, + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void node_shader_exec_vect_math(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +{ + float vec1[3], vec2[3]; + + nodestack_get_vec(vec1, SOCK_VECTOR, in[0]); + nodestack_get_vec(vec2, SOCK_VECTOR, in[1]); + + if(node->custom1 == 0) { /* Add */ + out[0]->vec[0]= vec1[0] + vec2[0]; + out[0]->vec[1]= vec1[1] + vec2[1]; + out[0]->vec[2]= vec1[2] + vec2[2]; + + out[1]->vec[0]= (fabs(out[0]->vec[0]) + fabs(out[0]->vec[0]) + fabs(out[0]->vec[0])) / 3; + } + else if(node->custom1 == 1) { /* Subtract */ + out[0]->vec[0]= vec1[0] - vec2[0]; + out[0]->vec[1]= vec1[1] - vec2[1]; + out[0]->vec[2]= vec1[2] - vec2[2]; + + out[1]->vec[0]= (fabs(out[0]->vec[0]) + fabs(out[0]->vec[0]) + fabs(out[0]->vec[0])) / 3; + } + else if(node->custom1 == 2) { /* Average */ + out[0]->vec[0]= vec1[0] + vec2[0]; + out[0]->vec[1]= vec1[1] + vec2[1]; + out[0]->vec[2]= vec1[2] + vec2[2]; + + out[1]->vec[0] = normalize_v3( out[0]->vec ); + } + else if(node->custom1 == 3) { /* Dot product */ + out[1]->vec[0]= (vec1[0] * vec2[0]) + (vec1[1] * vec2[1]) + (vec1[2] * vec2[2]); + } + else if(node->custom1 == 4) { /* Cross product */ + out[0]->vec[0]= (vec1[1] * vec2[2]) - (vec1[2] * vec2[1]); + out[0]->vec[1]= (vec1[2] * vec2[0]) - (vec1[0] * vec2[2]); + out[0]->vec[2]= (vec1[0] * vec2[1]) - (vec1[1] * vec2[0]); + + out[1]->vec[0] = normalize_v3( out[0]->vec ); + } + else if(node->custom1 == 5) { /* Normalize */ + if(in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ + out[0]->vec[0]= vec1[0]; + out[0]->vec[1]= vec1[1]; + out[0]->vec[2]= vec1[2]; + } + else { + out[0]->vec[0]= vec2[0]; + out[0]->vec[1]= vec2[1]; + out[0]->vec[2]= vec2[2]; + } + + out[1]->vec[0] = normalize_v3( out[0]->vec ); + } + +} + +static int gpu_shader_vect_math(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + static const char *names[] = {"vec_math_add", "vec_math_sub", + "vec_math_average", "vec_math_dot", "vec_math_cross", + "vec_math_normalize"}; + + switch (node->custom1) { + case 0: + case 1: + case 2: + case 3: + case 4: + GPU_stack_link(mat, names[node->custom1], NULL, out, + GPU_socket(&in[0]), GPU_socket(&in[1])); + break; + case 5: + if(in[0].hasinput || !in[1].hasinput) + GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[0])); + else + GPU_stack_link(mat, names[node->custom1], NULL, out, GPU_socket(&in[1])); + break; + default: + return 0; + } + + return 1; +} + +void register_node_type_sh_vect_math(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VECT_MATH, "Vector Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, sh_node_vect_math_in, sh_node_vect_math_out); + node_type_size(&ntype, 80, 75, 140); + node_type_label(&ntype, node_vect_math_label); + node_type_storage(&ntype, "node_vect_math", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_vect_math); + node_type_gpu(&ntype, gpu_shader_vect_math); + + nodeRegisterType(lb, &ntype); +} + + diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c new file mode 100644 index 00000000000..75a57c64f2f --- /dev/null +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -0,0 +1,237 @@ +/** + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/node_texture_tree.c + * \ingroup nodes + */ + + +#include + +#include "DNA_texture_types.h" +#include "DNA_node_types.h" + +#include "BLI_listbase.h" +#include "BLI_threads.h" +#include "BLI_utildefines.h" + +#include "BKE_global.h" +#include "BKE_main.h" +#include "BKE_node.h" + +#include "node_exec.h" +#include "node_util.h" +#include "NOD_texture.h" +#include "node_texture_util.h" + +#include "RE_pipeline.h" +#include "RE_shader_ext.h" + + +static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) +{ + Tex *tx; + for(tx= main->tex.first; tx; tx= tx->id.next) { + if(tx->nodetree) { + func(calldata, &tx->id, tx->nodetree); + } + } +} + +static void local_sync(bNodeTree *localtree, bNodeTree *ntree) +{ + bNode *lnode; + + /* copy over contents of previews */ + for(lnode= localtree->nodes.first; lnode; lnode= lnode->next) { + if(ntreeNodeExists(ntree, lnode->new_node)) { + bNode *node= lnode->new_node; + + if(node->preview && node->preview->rect) { + if(lnode->preview && lnode->preview->rect) { + int xsize= node->preview->xsize; + int ysize= node->preview->ysize; + memcpy(node->preview->rect, lnode->preview->rect, 4*xsize + xsize*ysize*sizeof(char)*4); + } + } + } + } +} + +bNodeTreeType ntreeType_Texture = { + /* type */ NTREE_TEXTURE, + /* id_name */ "NTTexture Nodetree", + + /* node_types */ { NULL, NULL }, + + /* free_cache */ NULL, + /* free_node_cache */ NULL, + /* foreach_nodetree */ foreach_nodetree, + /* localize */ NULL, + /* local_sync */ local_sync, + /* local_merge */ NULL, + /* update */ NULL, + /* update_node */ NULL +}; + +int ntreeTexTagAnimated(bNodeTree *ntree) +{ + bNode *node; + + if(ntree==NULL) return 0; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==TEX_NODE_CURVE_TIME) { + NodeTagChanged(ntree, node); + return 1; + } + else if(node->type==NODE_GROUP) { + if( ntreeTexTagAnimated((bNodeTree *)node->id) ) { + return 1; + } + } + } + + return 0; +} + +bNodeTreeExec *ntreeTexBeginExecTree(bNodeTree *ntree) +{ + bNodeTreeExec *exec; + bNode *node; + + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + + /* common base initialization */ + exec = ntree_exec_begin(ntree); + + /* allocate the thread stack listbase array */ + exec->threadstack= MEM_callocN(BLENDER_MAX_THREADS*sizeof(ListBase), "thread stack array"); + + for(node= exec->nodetree->nodes.first; node; node= node->next) + node->need_exec= 1; + + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + * which only store the ntree pointer. Should be fixed at some point! + */ + ntree->execdata = exec; + + return exec; +} + +/* free texture delegates */ +static void tex_free_delegates(bNodeTreeExec *exec) +{ + bNodeThreadStack *nts; + bNodeStack *ns; + int th, a; + + for(th=0; ththreadstack[th].first; nts; nts=nts->next) + for(ns= nts->stack, a=0; astacksize; a++, ns++) + if(ns->data && !ns->is_copy) + MEM_freeN(ns->data); +} + +void ntreeTexEndExecTree(bNodeTreeExec *exec) +{ + if(exec) { + bNodeTree *ntree= exec->nodetree; + bNodeThreadStack *nts; + int a; + + if(exec->threadstack) { + tex_free_delegates(exec); + + for(a=0; athreadstack[a].first; nts; nts=nts->next) + if (nts->stack) MEM_freeN(nts->stack); + BLI_freelistN(&exec->threadstack[a]); + } + + MEM_freeN(exec->threadstack); + exec->threadstack= NULL; + } + + ntree_exec_end(exec); + + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } +} + +int ntreeTexExecTree( + bNodeTree *nodes, + TexResult *texres, + float *co, + float *dxt, float *dyt, + int osatex, + short thread, + Tex *UNUSED(tex), + short which_output, + int cfra, + int preview, + ShadeInput *shi, + MTex *mtex +){ + TexCallData data; + float *nor= texres->nor; + int retval = TEX_INT; + bNodeThreadStack *nts = NULL; + bNodeTreeExec *exec= nodes->execdata; + + data.co = co; + data.dxt = dxt; + data.dyt = dyt; + data.osatex = osatex; + data.target = texres; + data.do_preview = preview; + data.thread = thread; + data.which_output = which_output; + data.cfra= cfra; + data.mtex= mtex; + data.shi= shi; + + if (!exec) + exec = ntreeTexBeginExecTree(nodes); + + nts= ntreeGetThreadStack(exec, thread); + ntreeExecThreadNodes(exec, nts, &data, thread); + ntreeReleaseThreadStack(nts); + + if(texres->nor) retval |= TEX_NOR; + retval |= TEX_RGB; + /* confusing stuff; the texture output node sets this to NULL to indicate no normal socket was set + however, the texture code checks this for other reasons (namely, a normal is required for material) */ + texres->nor= nor; + + return retval; +} diff --git a/source/blender/nodes/texture/node_texture_util.c b/source/blender/nodes/texture/node_texture_util.c new file mode 100644 index 00000000000..5aedd8681ab --- /dev/null +++ b/source/blender/nodes/texture/node_texture_util.c @@ -0,0 +1,172 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/node_texture_util.c + * \ingroup nodes + */ + + +/* + HOW TEXTURE NODES WORK + + In contrast to Shader nodes, which place a color into the output + stack when executed, Texture nodes place a TexDelegate* there. To + obtain a color value from this, a node further up the chain reads + the TexDelegate* from its input stack, and uses tex_call_delegate to + retrieve the color from the delegate. + + comments: (ton) + + This system needs recode, a node system should rely on the stack, and + callbacks for nodes only should evaluate own node, not recursively go + over other previous ones. +*/ + +#include +#include "node_texture_util.h" + +#define PREV_RES 128 /* default preview resolution */ + +static void tex_call_delegate(TexDelegate *dg, float *out, TexParams *params, short thread) +{ + if(dg->node->need_exec) { + dg->fn(out, params, dg->node, dg->in, thread); + + if(dg->cdata->do_preview) + tex_do_preview(dg->node, params->previewco, out); + } +} + +static void tex_input(float *out, int sz, bNodeStack *in, TexParams *params, short thread) +{ + TexDelegate *dg = in->data; + if(dg) { + tex_call_delegate(dg, in->vec, params, thread); + + if(in->hasoutput && in->sockettype == SOCK_FLOAT) + in->vec[1] = in->vec[2] = in->vec[0]; + } + memcpy(out, in->vec, sz * sizeof(float)); +} + +void tex_input_vec(float *out, bNodeStack *in, TexParams *params, short thread) +{ + tex_input(out, 3, in, params, thread); +} + +void tex_input_rgba(float *out, bNodeStack *in, TexParams *params, short thread) +{ + tex_input(out, 4, in, params, thread); + + if(in->hasoutput && in->sockettype == SOCK_FLOAT) + { + out[1] = out[2] = out[0]; + out[3] = 1; + } + + if(in->hasoutput && in->sockettype == SOCK_VECTOR) { + out[0] = out[0] * .5f + .5f; + out[1] = out[1] * .5f + .5f; + out[2] = out[2] * .5f + .5f; + out[3] = 1; + } +} + +float tex_input_value(bNodeStack *in, TexParams *params, short thread) +{ + float out[4]; + tex_input_vec(out, in, params, thread); + return out[0]; +} + +void params_from_cdata(TexParams *out, TexCallData *in) +{ + out->co = in->co; + out->dxt = in->dxt; + out->dyt = in->dyt; + out->previewco = in->co; + out->osatex = in->osatex; + out->cfra = in->cfra; + out->shi = in->shi; + out->mtex = in->mtex; +} + +void tex_do_preview(bNode *node, float *co, float *col) +{ + bNodePreview *preview= node->preview; + + if(preview) { + int xs= ((co[0] + 1.0f)*0.5f)*preview->xsize; + int ys= ((co[1] + 1.0f)*0.5f)*preview->ysize; + + nodeAddToPreview(node, col, xs, ys, 0); /* 0 = no color management */ + } +} + +void tex_output(bNode *node, bNodeStack **in, bNodeStack *out, TexFn texfn, TexCallData *cdata) +{ + TexDelegate *dg; + if(!out->data) + /* Freed in tex_end_exec (node.c) */ + dg = out->data = MEM_mallocN(sizeof(TexDelegate), "tex delegate"); + else + dg = out->data; + + dg->cdata= cdata; + dg->fn = texfn; + dg->node = node; + memcpy(dg->in, in, MAX_SOCKET * sizeof(bNodeStack*)); + dg->type = out->sockettype; +} + +void ntreeTexCheckCyclics(struct bNodeTree *ntree) +{ + bNode *node; + for(node= ntree->nodes.first; node; node= node->next) { + + if(node->type == TEX_NODE_TEXTURE && node->id) + { + /* custom2 stops the node from rendering */ + if(node->custom1) { + node->custom2 = 1; + node->custom1 = 0; + } else { + Tex *tex = (Tex *)node->id; + + node->custom2 = 0; + + node->custom1 = 1; + if(tex->use_nodes && tex->nodetree) { + ntreeTexCheckCyclics(tex->nodetree); + } + node->custom1 = 0; + } + } + + } +} diff --git a/source/blender/nodes/texture/node_texture_util.h b/source/blender/nodes/texture/node_texture_util.h new file mode 100644 index 00000000000..867b4142052 --- /dev/null +++ b/source/blender/nodes/texture/node_texture_util.h @@ -0,0 +1,123 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/node_texture_util.h + * \ingroup nodes + */ + + +#ifndef NODE_TEXTURE_UTIL_H_ +#define NODE_TEXTURE_UTIL_H_ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_color_types.h" +#include "DNA_ipo_types.h" +#include "DNA_ID.h" +#include "DNA_image_types.h" +#include "DNA_material_types.h" +#include "DNA_node_types.h" +#include "DNA_object_types.h" +#include "DNA_scene_types.h" +#include "DNA_texture_types.h" + +#include "BKE_blender.h" +#include "BKE_colortools.h" +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_material.h" +#include "BKE_node.h" +#include "BKE_texture.h" + +#include "BKE_library.h" + +#include "node_util.h" + +#include "BLI_math.h" +#include "BLI_blenlib.h" +#include "BLI_rand.h" +#include "BLI_threads.h" +#include "BLI_utildefines.h" + +#include "IMB_imbuf_types.h" +#include "IMB_imbuf.h" + +#include "RE_pipeline.h" +#include "RE_shader_ext.h" + +typedef struct TexCallData { + TexResult *target; + float *co; + float *dxt, *dyt; + int osatex; + char do_preview; + short thread; + short which_output; + int cfra; + + ShadeInput *shi; + MTex *mtex; +} TexCallData; + +typedef struct TexParams { + float *co; + float *dxt, *dyt; + float *previewco; + int cfra; + int osatex; + + /* optional. we don't really want these here, but image + textures need to do mapping & color correction */ + ShadeInput *shi; + MTex *mtex; +} TexParams; + +typedef void(*TexFn) (float *out, TexParams *params, bNode *node, bNodeStack **in, short thread); + +typedef struct TexDelegate { + TexCallData *cdata; + TexFn fn; + bNode *node; + bNodeStack *in[MAX_SOCKET]; + int type; +} TexDelegate; + +void tex_input_rgba(float *out, bNodeStack *in, TexParams *params, short thread); +void tex_input_vec(float *out, bNodeStack *in, TexParams *params, short thread); +float tex_input_value(bNodeStack *in, TexParams *params, short thread); + +void tex_output(bNode *node, bNodeStack **in, bNodeStack *out, TexFn texfn, TexCallData *data); +void tex_do_preview(bNode *node, float *coord, float *col); + +void params_from_cdata(TexParams *out, TexCallData *in); + +#endif diff --git a/source/blender/nodes/texture/nodes/node_texture_at.c b/source/blender/nodes/texture/nodes/node_texture_at.c new file mode 100644 index 00000000000..f3275f2bcdf --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_at.c @@ -0,0 +1,72 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): R Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_at.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Texture", 0.0f, 0.0f, 0.0f, 1.0f }, + { SOCK_VECTOR, 1, "Coordinates", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_NONE }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Texture" }, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + TexParams np = *p; + float new_co[3]; + np.co = new_co; + + tex_input_vec(new_co, in[1], p, thread); + tex_input_rgba(out, in[0], &np, thread); +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_at(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_AT, "At", NODE_CLASS_DISTORT, 0); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_bricks.c b/source/blender/nodes/texture/nodes/node_texture_bricks.c new file mode 100644 index 00000000000..060ed791871 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_bricks.c @@ -0,0 +1,134 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_bricks.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +#include + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Bricks 1", 0.596f, 0.282f, 0.0f, 1.0f }, + { SOCK_RGBA, 1, "Bricks 2", 0.632f, 0.504f, 0.05f, 1.0f }, + { SOCK_RGBA, 1, "Mortar", 0.0f, 0.0f, 0.0f, 1.0f }, + { SOCK_FLOAT, 1, "Thickness", 0.02f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Bias", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_NONE }, + { SOCK_FLOAT, 1, "Brick Width", 0.5f, 0.0f, 0.0f, 0.0f, 0.001f, 99.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Row Height", 0.25f, 0.0f, 0.0f, 0.0f, 0.001f, 99.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom3 = 0.5; /* offset */ + node->custom4 = 1.0; /* squash */ +} + +static float noise(int n) /* fast integer noise */ +{ + int nn; + n = (n >> 13) ^ n; + nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff; + return 0.5f * ((float)nn / 1073741824.0f); +} + +static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + float *co = p->co; + + float x = co[0]; + float y = co[1]; + + int bricknum, rownum; + float offset = 0; + float ins_x, ins_y; + float tint; + + float bricks1[4]; + float bricks2[4]; + float mortar[4]; + + float mortar_thickness = tex_input_value(in[3], p, thread); + float bias = tex_input_value(in[4], p, thread); + float brick_width = tex_input_value(in[5], p, thread); + float row_height = tex_input_value(in[6], p, thread); + + tex_input_rgba(bricks1, in[0], p, thread); + tex_input_rgba(bricks2, in[1], p, thread); + tex_input_rgba(mortar, in[2], p, thread); + + rownum = (int)floor(y / row_height); + + if( node->custom1 && node->custom2 ) { + brick_width *= ((int)(rownum) % node->custom2 ) ? 1.0f : node->custom4; /* squash */ + offset = ((int)(rownum) % node->custom1 ) ? 0 : (brick_width*node->custom3); /* offset */ + } + + bricknum = (int)floor((x+offset) / brick_width); + + ins_x = (x+offset) - brick_width*bricknum; + ins_y = y - row_height*rownum; + + tint = noise((rownum << 16) + (bricknum & 0xFFFF)) + bias; + CLAMP(tint,0.0f,1.0f); + + if( ins_x < mortar_thickness || ins_y < mortar_thickness || + ins_x > (brick_width - mortar_thickness) || + ins_y > (row_height - mortar_thickness) ) { + QUATCOPY( out, mortar ); + } else { + QUATCOPY( out, bricks1 ); + ramp_blend( MA_RAMP_BLEND, out, out+1, out+2, tint, bricks2 ); + } +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_bricks(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_BRICKS, "Bricks", NODE_CLASS_PATTERN, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 150, 60, 150); + node_type_init(&ntype, init); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_checker.c b/source/blender/nodes/texture/nodes/node_texture_checker.c new file mode 100644 index 00000000000..916ee80d66b --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_checker.c @@ -0,0 +1,83 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_checker.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" +#include + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color1", 1.0f, 0.0f, 0.0f, 1.0f }, + { SOCK_RGBA, 1, "Color2", 1.0f, 1.0f, 1.0f, 1.0f }, + { SOCK_FLOAT, 1, "Size", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 100.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float x = p->co[0]; + float y = p->co[1]; + float z = p->co[2]; + float sz = tex_input_value(in[2], p, thread); + + /* 0.00001 because of unit sized stuff */ + int xi = (int)fabs(floor(0.00001f + x / sz)); + int yi = (int)fabs(floor(0.00001f + y / sz)); + int zi = (int)fabs(floor(0.00001f + z / sz)); + + if( (xi % 2 == yi % 2) == (zi % 2) ) { + tex_input_rgba(out, in[0], p, thread); + } else { + tex_input_rgba(out, in[1], p, thread); + } +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_checker(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_CHECKER, "Checker", NODE_CLASS_PATTERN, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 100, 60, 150); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_common.c b/source/blender/nodes/texture/nodes/node_texture_common.c new file mode 100644 index 00000000000..cb5102bae4e --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_common.c @@ -0,0 +1,271 @@ +/* + * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva, + * Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_common.c + * \ingroup texnodes + */ + + +#include "DNA_node_types.h" + +#include "BKE_node.h" + +#include "node_texture_util.h" +#include "node_common.h" +#include "node_exec.h" + +static void copy_stack(bNodeStack *to, bNodeStack *from) +{ + if (to != from) { + copy_v4_v4(to->vec, from->vec); + to->data = from->data; + to->datatype = from->datatype; + + /* tag as copy to prevent freeing */ + to->is_copy = 1; + } +} + +/**** GROUP ****/ + +static void *group_initexec(bNode *node) +{ + bNodeTree *ngroup= (bNodeTree*)node->id; + void *exec; + + /* initialize the internal node tree execution */ + exec = ntreeTexBeginExecTree(ngroup); + + return exec; +} + +static void group_freeexec(bNode *UNUSED(node), void *nodedata) +{ + bNodeTreeExec*gexec= (bNodeTreeExec*)nodedata; + + ntreeTexEndExecTree(gexec); +} + +/* Copy inputs to the internal stack. + * This is a shallow copy, no buffers are duplicated here! + */ +static void group_copy_inputs(bNode *node, bNodeStack **in, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->inputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + copy_stack(ns, in[a]); + } + } +} + +/* Copy internal results to the external outputs. + */ +static void group_copy_outputs(bNode *node, bNodeStack **out, bNodeStack *gstack) +{ + bNodeSocket *sock; + bNodeStack *ns; + int a; + for (sock=node->outputs.first, a=0; sock; sock=sock->next, ++a) { + if (sock->groupsock) { + ns = node_get_socket_stack(gstack, sock->groupsock); + copy_stack(out[a], ns); + } + } +} + +static void group_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + group_copy_inputs(node, in, nts->stack); + ntreeExecThreadNodes(exec, nts, data, thread); + group_copy_outputs(node, out, nts->stack); + + ntreeReleaseThreadStack(nts); +} + +void register_node_type_tex_group(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_group_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_group_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, group_execute); + + nodeRegisterType(lb, &ntype); +} + + +/**** FOR LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +static void forloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + int iterations= (int)in[0]->vec[0]; + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + /* "Iteration" socket */ + sock = exec->nodetree->inputs.first; + ns = node_get_socket_stack(nts->stack, sock); + +// group_copy_inputs(node, in, nts->stack); + for (iteration=0; iteration < iterations; ++iteration) { + /* first input contains current iteration counter */ + ns->vec[0] = (float)iteration; + ns->vec[1]=ns->vec[2]=ns->vec[3] = 0.0f; + +// if (iteration > 0) +// loop_init_iteration(exec->nodetree, nts->stack); +// ntreeExecThreadNodes(exec, nts, data, thread); + } +// loop_copy_outputs(node, in, out, exec->stack); + + ntreeReleaseThreadStack(nts); +} + +void register_node_type_tex_forloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_FORLOOP, "For", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_forloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_forloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_forloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, forloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif + +/**** WHILE LOOP ****/ + +#if 0 /* XXX loop nodes don't work nicely with current trees */ +static void whileloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out) +{ + bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; + bNodeThreadStack *nts; + int condition= (in[0]->vec[0] > 0.0f); + bNodeSocket *sock; + bNodeStack *ns; + int iteration; + + /* XXX same behavior as trunk: all nodes inside group are executed. + * it's stupid, but just makes it work. compo redesign will do this better. + */ + { + bNode *inode; + for (inode=exec->nodetree->nodes.first; inode; inode=inode->next) + inode->need_exec = 1; + } + + nts = ntreeGetThreadStack(exec, thread); + + /* "Condition" socket */ + sock = exec->nodetree->outputs.first; + ns = node_get_socket_stack(nts->stack, sock); + + iteration = 0; +// group_copy_inputs(node, in, nts->stack); + while (condition && iteration < node->custom1) { +// if (iteration > 0) +// loop_init_iteration(exec->nodetree, nts->stack); +// ntreeExecThreadNodes(exec, nts, data, thread); + + condition = (ns->vec[0] > 0.0f); + ++iteration; + } +// loop_copy_outputs(node, in, out, exec->stack); + + ntreeReleaseThreadStack(nts); +} + +void register_node_type_tex_whileloop(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, NODE_WHILELOOP, "While", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_label(&ntype, node_group_label); + node_type_init(&ntype, node_whileloop_init); + node_type_valid(&ntype, node_group_valid); + node_type_template(&ntype, node_whileloop_template); + node_type_update(&ntype, NULL, node_group_verify); + node_type_tree(&ntype, node_whileloop_init_tree, node_loop_update_tree); + node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear); + node_type_exec_new(&ntype, group_initexec, group_freeexec, whileloop_execute); + + nodeRegisterType(lb, &ntype); +} +#endif diff --git a/source/blender/nodes/texture/nodes/node_texture_compose.c b/source/blender/nodes/texture/nodes/node_texture_compose.c new file mode 100644 index 00000000000..a11769173a3 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_compose.c @@ -0,0 +1,71 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_compose.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_FLOAT, 1, "Red", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Green", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Blue", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + int i; + for(i = 0; i < 4; i++) + out[i] = tex_input_value(in[i], p, thread); +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_compose(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_COMPOSE, "Compose RGBA", NODE_CLASS_OP_COLOR, 0); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 100, 60, 150); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_coord.c b/source/blender/nodes/texture/nodes/node_texture_coord.c new file mode 100644 index 00000000000..b2d9cecc164 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_coord.c @@ -0,0 +1,65 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Mathias Panzenböck (panzi) . + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_coord.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate outputs[]= { + { SOCK_VECTOR, 0, "Coordinates" }, + { -1, 0, "" } +}; + +static void vectorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **UNUSED(in), short UNUSED(thread)) +{ + out[0] = p->co[0]; + out[1] = p->co[1]; + out[2] = p->co[2]; +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &vectorfn, data); +} + +void register_node_type_tex_coord(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_COORD, "Coordinates", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, outputs); + node_type_size(&ntype, 120, 110, 160); + node_type_storage(&ntype, "node_coord", NULL, NULL); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_curves.c b/source/blender/nodes/texture/nodes/node_texture_curves.c new file mode 100644 index 00000000000..af6d880cc18 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_curves.c @@ -0,0 +1,127 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_curves.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +/* **************** CURVE Time ******************** */ + +/* custom1 = sfra, custom2 = efra */ +static bNodeSocketTemplate time_outputs[]= { + { SOCK_FLOAT, 0, "Value" }, + { -1, 0, "" } +}; + +static void time_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNUSED(in), short UNUSED(thread)) +{ + /* stack order output: fac */ + float fac= 0.0f; + + if(node->custom1 < node->custom2) + fac = (p->cfra - node->custom1)/(float)(node->custom2-node->custom1); + + fac = curvemapping_evaluateF(node->storage, 0, fac); + out[0] = CLAMPIS(fac, 0.0f, 1.0f); +} + +static void time_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &time_colorfn, data); +} + + +static void time_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->custom1= 1; + node->custom2= 250; + node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); +} + +void register_node_type_tex_curve_time(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_CURVE_TIME, "Time", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, time_outputs); + node_type_size(&ntype, 140, 100, 320); + node_type_init(&ntype, time_init); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, time_exec); + + nodeRegisterType(lb, &ntype); +} + +/* **************** CURVE RGB ******************** */ +static bNodeSocketTemplate rgb_inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate rgb_outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void rgb_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + float cin[4]; + tex_input_rgba(cin, in[0], p, thread); + + curvemapping_evaluateRGBF(node->storage, out, cin); + out[3] = cin[3]; +} + +static void rgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &rgb_colorfn, data); +} + +static void rgb_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); +} + +void register_node_type_tex_curve_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, rgb_inputs, rgb_outputs); + node_type_size(&ntype, 200, 140, 320); + node_type_init(&ntype, rgb_init); + node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); + node_type_exec(&ntype, rgb_exec); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/texture/nodes/node_texture_decompose.c b/source/blender/nodes/texture/nodes/node_texture_decompose.c new file mode 100644 index 00000000000..312765f866e --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_decompose.c @@ -0,0 +1,92 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_decompose.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" +#include + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_FLOAT, 0, "Red" }, + { SOCK_FLOAT, 0, "Green" }, + { SOCK_FLOAT, 0, "Blue" }, + { SOCK_FLOAT, 0, "Alpha" }, + { -1, 0, "" } +}; + +static void valuefn_r(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + tex_input_rgba(out, in[0], p, thread); + *out = out[0]; +} + +static void valuefn_g(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + tex_input_rgba(out, in[0], p, thread); + *out = out[1]; +} + +static void valuefn_b(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + tex_input_rgba(out, in[0], p, thread); + *out = out[2]; +} + +static void valuefn_a(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + tex_input_rgba(out, in[0], p, thread); + *out = out[3]; +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &valuefn_r, data); + tex_output(node, in, out[1], &valuefn_g, data); + tex_output(node, in, out[2], &valuefn_b, data); + tex_output(node, in, out[3], &valuefn_a, data); +} + +void register_node_type_tex_decompose(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_DECOMPOSE, "Decompose RGBA", NODE_CLASS_OP_COLOR, 0); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 100, 60, 150); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_distance.c b/source/blender/nodes/texture/nodes/node_texture_distance.c new file mode 100644 index 00000000000..fe524baaa96 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_distance.c @@ -0,0 +1,76 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Mathias Panzenböck (panzi) . + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_distance.c + * \ingroup texnodes + */ + + +#include +#include "BLI_math.h" +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_VECTOR, 1, "Coordinate 1", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_NONE }, + { SOCK_VECTOR, 1, "Coordinate 2", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_NONE }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_FLOAT, 0, "Value" }, + { -1, 0, "" } +}; + +static void valuefn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float co1[3], co2[3]; + + tex_input_vec(co1, in[0], p, thread); + tex_input_vec(co2, in[1], p, thread); + + *out = len_v3v3(co2, co1); +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &valuefn, data); +} + +void register_node_type_tex_distance(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_DISTANCE, "Distance", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 120, 110, 160); + node_type_storage(&ntype, "node_distance", NULL, NULL); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c b/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c new file mode 100644 index 00000000000..ebc2501cee3 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c @@ -0,0 +1,106 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Juho Vepsäläinen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_hueSatVal.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + + +static bNodeSocketTemplate inputs[]= { + { SOCK_FLOAT, 1, "Hue", 0.0f, 0.0f, 0.0f, 0.0f, -0.5f, 0.5f, PROP_NONE }, + { SOCK_FLOAT, 1, "Saturation", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, PROP_FACTOR }, + { SOCK_FLOAT, 1, "Value", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, PROP_FACTOR }, + { SOCK_FLOAT, 1, "Factor", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR }, + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float hue, float sat, float val, float *in, float fac) +{ + if(fac != 0 && (hue != 0.5f || sat != 1 || val != 1)) { + float col[3], hsv[3], mfac= 1.0f - fac; + + rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2); + hsv[0]+= (hue - 0.5f); + if(hsv[0]>1.0f) hsv[0]-=1.0f; else if(hsv[0]<0.0f) hsv[0]+= 1.0f; + hsv[1]*= sat; + if(hsv[1]>1.0f) hsv[1]= 1.0f; else if(hsv[1]<0.0f) hsv[1]= 0.0f; + hsv[2]*= val; + if(hsv[2]>1.0f) hsv[2]= 1.0f; else if(hsv[2]<0.0f) hsv[2]= 0.0f; + hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2); + + out[0]= mfac*in[0] + fac*col[0]; + out[1]= mfac*in[1] + fac*col[1]; + out[2]= mfac*in[2] + fac*col[2]; + } + else { + QUATCOPY(out, in); + } +} + +static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + float hue = tex_input_value(in[0], p, thread); + float sat = tex_input_value(in[1], p, thread); + float val = tex_input_value(in[2], p, thread); + float fac = tex_input_value(in[3], p, thread); + + float col[4]; + tex_input_rgba(col, in[4], p, thread); + + hue += 0.5f; /* [-.5, .5] -> [0, 1] */ + + do_hue_sat_fac(node, out, hue, sat, val, col, fac); + + out[3] = col[3]; +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_hue_sat(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 150, 80, 250); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_image.c b/source/blender/nodes/texture/nodes/node_texture_image.c new file mode 100644 index 00000000000..1359cf4275f --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_image.c @@ -0,0 +1,112 @@ +/* + * $Id: TEX_image.c 36481 2011-05-04 11:42:25Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_image.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Image"}, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNUSED(in), short UNUSED(thread)) +{ + float x = p->co[0]; + float y = p->co[1]; + Image *ima= (Image *)node->id; + ImageUser *iuser= (ImageUser *)node->storage; + + if( ima ) { + ImBuf *ibuf = BKE_image_get_ibuf(ima, iuser); + if( ibuf ) { + float xsize, ysize; + float xoff, yoff; + int px, py; + + float *result; + + xsize = ibuf->x / 2; + ysize = ibuf->y / 2; + xoff = yoff = -1; + + px = (int)( (x-xoff) * xsize ); + py = (int)( (y-yoff) * ysize ); + + if( (!xsize) || (!ysize) ) return; + + if( !ibuf->rect_float ) { + BLI_lock_thread(LOCK_IMAGE); + if( !ibuf->rect_float ) + IMB_float_from_rect(ibuf); + BLI_unlock_thread(LOCK_IMAGE); + } + + while( px < 0 ) px += ibuf->x; + while( py < 0 ) py += ibuf->y; + while( px >= ibuf->x ) px -= ibuf->x; + while( py >= ibuf->y ) py -= ibuf->y; + + result = ibuf->rect_float + py*ibuf->x*4 + px*4; + QUATCOPY( out, result ); + } + } +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); + node->storage= iuser; + iuser->sfra= 1; + iuser->fie_ima= 2; + iuser->ok= 1; +} + +void register_node_type_tex_image(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_IMAGE, "Image", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, NULL, outputs); + node_type_size(&ntype, 120, 80, 300); + node_type_init(&ntype, init); + node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_invert.c b/source/blender/nodes/texture/nodes/node_texture_invert.c new file mode 100644 index 00000000000..8ba4f292fec --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_invert.c @@ -0,0 +1,78 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_invert.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +/* **************** INVERT ******************** */ +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float col[4]; + + tex_input_rgba(col, in[0], p, thread); + + col[0] = 1.0f - col[0]; + col[1] = 1.0f - col[1]; + col[2] = 1.0f - col[2]; + + VECCOPY(out, col); + out[3] = col[3]; +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_invert(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 90, 80, 100); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/texture/nodes/node_texture_math.c b/source/blender/nodes/texture/nodes/node_texture_math.c new file mode 100644 index 00000000000..182bc37978f --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_math.c @@ -0,0 +1,201 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_math.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + + +/* **************** SCALAR MATH ******************** */ +static bNodeSocketTemplate inputs[]= { + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_FLOAT, 0, "Value"}, + { -1, 0, "" } +}; + +static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + float in0 = tex_input_value(in[0], p, thread); + float in1 = tex_input_value(in[1], p, thread); + + switch(node->custom1){ + + case 0: /* Add */ + *out= in0 + in1; + break; + case 1: /* Subtract */ + *out= in0 - in1; + break; + case 2: /* Multiply */ + *out= in0 * in1; + break; + case 3: /* Divide */ + { + if(in1==0) /* We don't want to divide by zero. */ + *out= 0.0; + else + *out= in0 / in1; + } + break; + case 4: /* Sine */ + { + *out= sin(in0); + } + break; + case 5: /* Cosine */ + { + *out= cos(in0); + } + break; + case 6: /* Tangent */ + { + *out= tan(in0); + } + break; + case 7: /* Arc-Sine */ + { + /* Can't do the impossible... */ + if( in0 <= 1 && in0 >= -1 ) + *out= asin(in0); + else + *out= 0.0; + } + break; + case 8: /* Arc-Cosine */ + { + /* Can't do the impossible... */ + if( in0 <= 1 && in0 >= -1 ) + *out= acos(in0); + else + *out= 0.0; + } + break; + case 9: /* Arc-Tangent */ + { + *out= atan(in0); + } + break; + case 10: /* Power */ + { + /* Only raise negative numbers by full integers */ + if( in0 >= 0 ) { + out[0]= pow(in0, in1); + } else { + float y_mod_1 = fmod(in1, 1); + if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) { + *out = pow(in0, floor(in1 + 0.5f)); + } else { + *out = 0.0; + } + } + } + break; + case 11: /* Logarithm */ + { + /* Don't want any imaginary numbers... */ + if( in0 > 0 && in1 > 0 ) + *out= log(in0) / log(in1); + else + *out= 0.0; + } + break; + case 12: /* Minimum */ + { + if( in0 < in1 ) + *out= in0; + else + *out= in1; + } + break; + case 13: /* Maximum */ + { + if( in0 > in1 ) + *out= in0; + else + *out= in1; + } + break; + case 14: /* Round */ + { + *out= (in0<0)?(int)(in0 - 0.5f):(int)(in0 + 0.5f); + } + break; + + case 15: /* Less Than */ + { + if( in0 < in1 ) + *out= 1.0f; + else + *out= 0.0f; + } + break; + + case 16: /* Greater Than */ + { + if( in0 > in1 ) + *out= 1.0f; + else + *out= 0.0f; + } + break; + + default: + fprintf(stderr, + "%s:%d: unhandeld value in switch statement: %d\n", + __FILE__, __LINE__, node->custom1); + } +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &valuefn, data); +} + +void register_node_type_tex_math(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 120, 110, 160); + node_type_label(&ntype, node_math_label); + node_type_storage(&ntype, "node_math", NULL, NULL); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/texture/nodes/node_texture_mixRgb.c b/source/blender/nodes/texture/nodes/node_texture_mixRgb.c new file mode 100644 index 00000000000..8baac682b18 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_mixRgb.c @@ -0,0 +1,79 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_mixRgb.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +/* **************** MIX RGB ******************** */ +static bNodeSocketTemplate inputs[]= { + { SOCK_FLOAT, 1, "Factor", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR }, + { SOCK_RGBA, 1, "Color1", 0.5f, 0.5f, 0.5f, 1.0f }, + { SOCK_RGBA , 1, "Color2", 0.5f, 0.5f, 0.5f, 1.0f }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + float fac = tex_input_value(in[0], p, thread); + float col1[4], col2[4]; + + tex_input_rgba(col1, in[1], p, thread); + tex_input_rgba(col2, in[2], p, thread); + + CLAMP(fac, 0.0f, 1.0f); + + QUATCOPY(out, col1); + ramp_blend(node->custom1, out, out+1, out+2, fac, col2); +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_mix_rgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 100, 60, 150); + node_type_label(&ntype, node_blend_label); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_output.c b/source/blender/nodes/texture/nodes/node_texture_output.c new file mode 100644 index 00000000000..c321f5738a1 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_output.c @@ -0,0 +1,173 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_output.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +/* **************** COMPOSITE ******************** */ +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, PROP_DIRECTION}, + { -1, 0, "" } +}; + +/* applies to render pipeline */ +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + TexCallData *cdata = (TexCallData *)data; + TexResult *target = cdata->target; + + if(cdata->do_preview) { + TexParams params; + params_from_cdata(¶ms, cdata); + + if(in[1] && in[1]->hasinput && !in[0]->hasinput) + tex_input_rgba(&target->tr, in[1], ¶ms, cdata->thread); + else + tex_input_rgba(&target->tr, in[0], ¶ms, cdata->thread); + tex_do_preview(node, params.co, &target->tr); + } + else { + /* 0 means don't care, so just use first */ + if(cdata->which_output == node->custom1 || (cdata->which_output == 0 && node->custom1 == 1)) { + TexParams params; + params_from_cdata(¶ms, cdata); + + tex_input_rgba(&target->tr, in[0], ¶ms, cdata->thread); + + target->tin = (target->tr + target->tg + target->tb) / 3.0f; + target->talpha = 1; + + if(target->nor) { + if(in[1] && in[1]->hasinput) + tex_input_vec(target->nor, in[1], ¶ms, cdata->thread); + else + target->nor = NULL; + } + } + } +} + +static void unique_name(bNode *node) +{ + TexNodeOutput *tno = (TexNodeOutput *)node->storage; + char *new_name = NULL; + int new_len = 0; + int suffix; + bNode *i; + char *name = tno->name; + + i = node; + while(i->prev) i = i->prev; + for(; i; i=i->next) { + if( + i == node || + i->type != TEX_NODE_OUTPUT || + strcmp(name, ((TexNodeOutput*)(i->storage))->name) + ) + continue; + + if(!new_name) { + int len = strlen(name); + if(len >= 4 && sscanf(name + len - 4, ".%03d", &suffix) == 1) { + new_len = len; + } else { + suffix = 0; + new_len = len + 4; + if(new_len > 31) + new_len = 31; + } + + new_name = MEM_mallocN(new_len + 1, "new_name"); + strcpy(new_name, name); + name = new_name; + } + sprintf(new_name + new_len - 4, ".%03d", ++suffix); + } + + if(new_name) { + strcpy(tno->name, new_name); + MEM_freeN(new_name); + } +} + +static void assign_index(struct bNode *node) +{ + bNode *tnode; + int index = 1; + + tnode = node; + while(tnode->prev) + tnode = tnode->prev; + + check_index: + for(; tnode; tnode= tnode->next) + if(tnode->type == TEX_NODE_OUTPUT && tnode != node) + if(tnode->custom1 == index) { + index ++; + goto check_index; + } + + node->custom1 = index; +} + +static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + TexNodeOutput *tno = MEM_callocN(sizeof(TexNodeOutput), "TEX_output"); + node->storage= tno; + + strcpy(tno->name, "Default"); + unique_name(node); + assign_index(node); +} + +static void copy(bNode *orig, bNode *new) +{ + node_copy_standard_storage(orig, new); + unique_name(new); + assign_index(new); +} + +void register_node_type_tex_output(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_OUTPUT, "Output", NODE_CLASS_OUTPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, NULL); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, init); + node_type_storage(&ntype, "TexNodeOutput", node_free_standard_storage, copy); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_proc.c b/source/blender/nodes/texture/nodes/node_texture_proc.c new file mode 100644 index 00000000000..8b4c25d85c9 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_proc.c @@ -0,0 +1,326 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_proc.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +#include "RE_shader_ext.h" + +/* + In this file: wrappers to use procedural textures as nodes +*/ + + +static bNodeSocketTemplate outputs_both[]= { + { SOCK_RGBA, 0, "Color", 1.0f, 0.0f, 0.0f, 1.0f }, + { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, PROP_DIRECTION }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs_color_only[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +/* Inputs common to all, #defined because nodes will need their own inputs too */ +#define I 2 /* count */ +#define COMMON_INPUTS \ + { SOCK_RGBA, 1, "Color 1", 0.0f, 0.0f, 0.0f, 1.0f }, \ + { SOCK_RGBA, 1, "Color 2", 1.0f, 1.0f, 1.0f, 1.0f } + +/* Calls multitex and copies the result to the outputs. Called by xxx_exec, which handles inputs. */ +static void do_proc(float *result, TexParams *p, float *col1, float *col2, char is_normal, Tex *tex, short thread) +{ + TexResult texres; + int textype; + + if(is_normal) { + texres.nor = result; + } + else + texres.nor = NULL; + + textype = multitex_nodes(tex, p->co, p->dxt, p->dyt, p->osatex, + &texres, thread, 0, p->shi, p->mtex); + + if(is_normal) + return; + + if(textype & TEX_RGB) { + QUATCOPY(result, &texres.tr); + } + else { + QUATCOPY(result, col1); + ramp_blend(MA_RAMP_BLEND, result, result+1, result+2, texres.tin, col2); + } +} + +typedef void (*MapFn) (Tex *tex, bNodeStack **in, TexParams *p, short thread); + +static void texfn( + float *result, + TexParams *p, + bNode *node, + bNodeStack **in, + char is_normal, + MapFn map_inputs, + short thread) +{ + Tex tex = *((Tex*)(node->storage)); + float col1[4], col2[4]; + tex_input_rgba(col1, in[0], p, thread); + tex_input_rgba(col2, in[1], p, thread); + + map_inputs(&tex, in, p, thread); + + do_proc(result, p, col1, col2, is_normal, &tex, thread); +} + +static int count_outputs(bNode *node) +{ + bNodeSocket *sock; + int num = 0; + for(sock= node->outputs.first; sock; sock= sock->next) { + num++; + } + return num; +} + +/* Boilerplate generators */ + +#define ProcNoInputs(name) \ + static void name##_map_inputs(Tex *UNUSED(tex), bNodeStack **UNUSED(in), TexParams *UNUSED(p), short UNUSED(thread)) \ + {} + +#define ProcDef(name) \ + static void name##_colorfn(float *result, TexParams *p, bNode *node, bNodeStack **in, short thread) \ + { \ + texfn(result, p, node, in, 0, &name##_map_inputs, thread); \ + } \ + static void name##_normalfn(float *result, TexParams *p, bNode *node, bNodeStack **in, short thread) \ + { \ + texfn(result, p, node, in, 1, &name##_map_inputs, thread); \ + } \ + static void name##_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) \ + { \ + int outs = count_outputs(node); \ + if(outs >= 1) tex_output(node, in, out[0], &name##_colorfn, data); \ + if(outs >= 2) tex_output(node, in, out[1], &name##_normalfn, data); \ + } + + +/* --- VORONOI -- */ +static bNodeSocketTemplate voronoi_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "W1", 1.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f, PROP_NONE }, + { SOCK_FLOAT, 1, "W2", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f, PROP_NONE }, + { SOCK_FLOAT, 1, "W3", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f, PROP_NONE }, + { SOCK_FLOAT, 1, "W4", 0.0f, 0.0f, 0.0f, 0.0f, -2.0f, 2.0f, PROP_NONE }, + + { SOCK_FLOAT, 1, "iScale", 1.0f, 0.0f, 0.0f, 0.0f, 0.01f, 10.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 4.0f, PROP_UNSIGNED }, + + { -1, 0, "" } +}; +static void voronoi_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->vn_w1 = tex_input_value(in[I+0], p, thread); + tex->vn_w2 = tex_input_value(in[I+1], p, thread); + tex->vn_w3 = tex_input_value(in[I+2], p, thread); + tex->vn_w4 = tex_input_value(in[I+3], p, thread); + + tex->ns_outscale = tex_input_value(in[I+4], p, thread); + tex->noisesize = tex_input_value(in[I+5], p, thread); +} +ProcDef(voronoi) + +/* --- BLEND -- */ +static bNodeSocketTemplate blend_inputs[]= { + COMMON_INPUTS, + { -1, 0, "" } +}; +ProcNoInputs(blend) +ProcDef(blend) + +/* -- MAGIC -- */ +static bNodeSocketTemplate magic_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void magic_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->turbul = tex_input_value(in[I+0], p, thread); +} +ProcDef(magic) + +/* --- MARBLE --- */ +static bNodeSocketTemplate marble_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void marble_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->noisesize = tex_input_value(in[I+0], p, thread); + tex->turbul = tex_input_value(in[I+1], p, thread); +} +ProcDef(marble) + +/* --- CLOUDS --- */ +static bNodeSocketTemplate clouds_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void clouds_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->noisesize = tex_input_value(in[I+0], p, thread); +} +ProcDef(clouds) + +/* --- DISTORTED NOISE --- */ +static bNodeSocketTemplate distnoise_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Distortion", 1.00f, 0.0f, 0.0f, 0.0f, 0.0000f, 10.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void distnoise_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->noisesize = tex_input_value(in[I+0], p, thread); + tex->dist_amount = tex_input_value(in[I+1], p, thread); +} +ProcDef(distnoise) + +/* --- WOOD --- */ +static bNodeSocketTemplate wood_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void wood_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->noisesize = tex_input_value(in[I+0], p, thread); + tex->turbul = tex_input_value(in[I+1], p, thread); +} +ProcDef(wood) + +/* --- MUSGRAVE --- */ +static bNodeSocketTemplate musgrave_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "H", 1.0f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Lacunarity", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Octaves", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 8.0f, PROP_UNSIGNED }, + + { SOCK_FLOAT, 1, "iScale", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void musgrave_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->mg_H = tex_input_value(in[I+0], p, thread); + tex->mg_lacunarity = tex_input_value(in[I+1], p, thread); + tex->mg_octaves = tex_input_value(in[I+2], p, thread); + tex->ns_outscale = tex_input_value(in[I+3], p, thread); + tex->noisesize = tex_input_value(in[I+4], p, thread); +} +ProcDef(musgrave) + +/* --- NOISE --- */ +static bNodeSocketTemplate noise_inputs[]= { + COMMON_INPUTS, + { -1, 0, "" } +}; +ProcNoInputs(noise) +ProcDef(noise) + +/* --- STUCCI --- */ +static bNodeSocketTemplate stucci_inputs[]= { + COMMON_INPUTS, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0001f, 2.0f, PROP_UNSIGNED }, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 200.0f, PROP_UNSIGNED }, + { -1, 0, "" } +}; +static void stucci_map_inputs(Tex *tex, bNodeStack **in, TexParams *p, short thread) +{ + tex->noisesize = tex_input_value(in[I+0], p, thread); + tex->turbul = tex_input_value(in[I+1], p, thread); +} +ProcDef(stucci) + +/* --- */ + +static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + Tex *tex = MEM_callocN(sizeof(Tex), "Tex"); + node->storage= tex; + + default_tex(tex); + tex->type = node->type - TEX_NODE_PROC; + + if(tex->type == TEX_WOOD) + tex->stype = TEX_BANDNOISE; + +} + +/* Node type definitions */ +#define TexDef(TEXTYPE, outputs, name, Name) \ +void register_node_type_tex_proc_##name(ListBase *lb) \ +{ \ + static bNodeType ntype; \ + \ + node_type_base(&ntype, TEX_NODE_PROC+TEXTYPE, Name, NODE_CLASS_TEXTURE, NODE_PREVIEW|NODE_OPTIONS); \ + node_type_socket_templates(&ntype, name##_inputs, outputs); \ + node_type_size(&ntype, 140, 80, 140); \ + node_type_init(&ntype, init); \ + node_type_storage(&ntype, "Tex", node_free_standard_storage, node_copy_standard_storage); \ + node_type_exec(&ntype, name##_exec); \ + \ + nodeRegisterType(lb, &ntype); \ +} + +#define C outputs_color_only +#define CV outputs_both + +TexDef(TEX_VORONOI, CV, voronoi, "Voronoi" ) +TexDef(TEX_BLEND, C, blend, "Blend" ) +TexDef(TEX_MAGIC, C, magic, "Magic" ) +TexDef(TEX_MARBLE, CV, marble, "Marble" ) +TexDef(TEX_CLOUDS, CV, clouds, "Clouds" ) +TexDef(TEX_WOOD, CV, wood, "Wood" ) +TexDef(TEX_MUSGRAVE, CV, musgrave, "Musgrave" ) +TexDef(TEX_NOISE, C, noise, "Noise" ) +TexDef(TEX_STUCCI, CV, stucci, "Stucci" ) +TexDef(TEX_DISTNOISE, CV, distnoise, "Distorted Noise" ) diff --git a/source/blender/nodes/texture/nodes/node_texture_rotate.c b/source/blender/nodes/texture/nodes/node_texture_rotate.c new file mode 100644 index 00000000000..a788b9cbbde --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_rotate.c @@ -0,0 +1,109 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_rotate.c + * \ingroup texnodes + */ + + +#include + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Turns", 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_NONE }, + { SOCK_VECTOR, 1, "Axis", 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 1.0f, PROP_DIRECTION }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void rotate(float new_co[3], float a, float ax[3], float co[3]) +{ + float para[3]; + float perp[3]; + float cp[3]; + + float cos_a = cos(a * (float)(2*M_PI)); + float sin_a = sin(a * (float)(2*M_PI)); + + // x' = xcosa + n(n.x)(1-cosa) + (x*n)sina + + mul_v3_v3fl(perp, co, cos_a); + mul_v3_v3fl(para, ax, dot_v3v3(co, ax)*(1 - cos_a)); + + cross_v3_v3v3(cp, ax, co); + mul_v3_fl(cp, sin_a); + + new_co[0] = para[0] + perp[0] + cp[0]; + new_co[1] = para[1] + perp[1] + cp[1]; + new_co[2] = para[2] + perp[2] + cp[2]; +} + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float new_co[3], new_dxt[3], new_dyt[3], a, ax[3]; + + a= tex_input_value(in[1], p, thread); + tex_input_vec(ax, in[2], p, thread); + + rotate(new_co, a, ax, p->co); + if (p->osatex) { + rotate(new_dxt, a, ax, p->dxt); + rotate(new_dyt, a, ax, p->dyt); + } + + { + TexParams np = *p; + np.co = new_co; + np.dxt = new_dxt; + np.dyt = new_dyt; + tex_input_rgba(out, in[0], &np, thread); + } +} +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_rotate(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_ROTATE, "Rotate", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 140, 100, 320); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_scale.c b/source/blender/nodes/texture/nodes/node_texture_scale.c new file mode 100644 index 00000000000..136dde0d52f --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_scale.c @@ -0,0 +1,82 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_scale.c + * \ingroup texnodes + */ + + +#include +#include "node_texture_util.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f }, + { SOCK_VECTOR, 1, "Scale", 1.0f, 1.0f, 1.0f, 0.0f, -10.0f, 10.0f, PROP_FACTOR }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float scale[3], new_co[3], new_dxt[3], new_dyt[3]; + TexParams np = *p; + + np.co = new_co; + np.dxt = new_dxt; + np.dyt = new_dyt; + + tex_input_vec(scale, in[1], p, thread); + + mul_v3_v3v3(new_co, p->co, scale); + if (p->osatex) { + mul_v3_v3v3(new_dxt, p->dxt, scale); + mul_v3_v3v3(new_dyt, p->dyt, scale); + } + + tex_input_rgba(out, in[0], &np, thread); +} +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_scale(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_SCALE, "Scale", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 90, 80, 100); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_texture.c b/source/blender/nodes/texture/nodes/node_texture_texture.c new file mode 100644 index 00000000000..10b9b8979f8 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_texture.c @@ -0,0 +1,103 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_texture.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +#include "RE_shader_ext.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color1", 1.0f, 1.0f, 1.0f, 1.0f }, + { SOCK_RGBA, 1, "Color2", 0.0f, 0.0f, 0.0f, 1.0f }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color" }, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + Tex *nodetex = (Tex *)node->id; + static float red[] = {1,0,0,1}; + static float white[] = {1,1,1,1}; + float co[3], dxt[3], dyt[3]; + + copy_v3_v3(co, p->co); + copy_v3_v3(dxt, p->dxt); + copy_v3_v3(dyt, p->dyt); + + if(node->custom2 || node->need_exec==0) { + /* this node refers to its own texture tree! */ + QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red ); + } + else if(nodetex) { + TexResult texres; + int textype; + float nor[] = {0,0,0}; + float col1[4], col2[4]; + + tex_input_rgba(col1, in[0], p, thread); + tex_input_rgba(col2, in[1], p, thread); + + texres.nor = nor; + textype = multitex_nodes(nodetex, co, dxt, dyt, p->osatex, + &texres, thread, 0, p->shi, p->mtex); + + if(textype & TEX_RGB) { + QUATCOPY(out, &texres.tr); + } + else { + QUATCOPY(out, col1); + ramp_blend(MA_RAMP_BLEND, out, out+1, out+2, texres.tin, col2); + } + } +} + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_texture(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 120, 80, 240); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_translate.c b/source/blender/nodes/texture/nodes/node_texture_translate.c new file mode 100644 index 00000000000..395404a9411 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_translate.c @@ -0,0 +1,78 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_translate.c + * \ingroup texnodes + */ + + +#include +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f, PROP_TRANSLATION }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float offset[3], new_co[3]; + TexParams np = *p; + np.co = new_co; + + tex_input_vec(offset, in[1], p, thread); + + new_co[0] = p->co[0] + offset[0]; + new_co[1] = p->co[1] + offset[1]; + new_co[2] = p->co[2] + offset[2]; + + tex_input_rgba(out, in[0], &np, thread); +} +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &colorfn, data); +} + +void register_node_type_tex_translate(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_TRANSLATE, "Translate", NODE_CLASS_DISTORT, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 90, 80, 100); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_valToNor.c b/source/blender/nodes/texture/nodes/node_texture_valToNor.c new file mode 100644 index 00000000000..62b457bc862 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_valToNor.c @@ -0,0 +1,94 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Jucas. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_valToNor.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +static bNodeSocketTemplate inputs[]= { + { SOCK_FLOAT, 1, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE }, + { SOCK_FLOAT, 1, "Nabla", 0.025f, 0.0f, 0.0f, 0.0f, 0.001f, 0.1f, PROP_UNSIGNED }, + { -1, 0, "" } +}; + +static bNodeSocketTemplate outputs[]= { + { SOCK_VECTOR, 0, "Normal" }, + { -1, 0, "" } +}; + +static void normalfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float new_co[3]; + float *co = p->co; + + float nabla = tex_input_value(in[1], p, thread); + float val; + float nor[3]; + + TexParams np = *p; + np.co = new_co; + + val = tex_input_value(in[0], p, thread); + + new_co[0] = co[0] + nabla; + new_co[1] = co[1]; + new_co[2] = co[2]; + nor[0] = tex_input_value(in[0], &np, thread); + + new_co[0] = co[0]; + new_co[1] = co[1] + nabla; + nor[1] = tex_input_value(in[0], &np, thread); + + new_co[1] = co[1]; + new_co[2] = co[2] + nabla; + nor[2] = tex_input_value(in[0], &np, thread); + + out[0] = val-nor[0]; + out[1] = val-nor[1]; + out[2] = val-nor[2]; +} +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &normalfn, data); +} + +void register_node_type_tex_valtonor(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_VALTONOR, "Value to Normal", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 90, 80, 100); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/nodes/texture/nodes/node_texture_valToRgb.c b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c new file mode 100644 index 00000000000..caca6fa97a4 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c @@ -0,0 +1,116 @@ +/* + * $Id: TEX_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_valToRgb.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" + +/* **************** VALTORGB ******************** */ +static bNodeSocketTemplate valtorgb_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + { -1, 0, "" } +}; +static bNodeSocketTemplate valtorgb_out[]= { + { SOCK_RGBA, 0, "Color"}, + { -1, 0, "" } +}; + +static void valtorgb_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread) +{ + if(node->storage) { + float fac = tex_input_value(in[0], p, thread); + + do_colorband(node->storage, fac, out); + } +} + +static void valtorgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &valtorgb_colorfn, data); +} + +static void valtorgb_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + node->storage = add_colorband(1); +} + +void register_node_type_tex_valtorgb(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_socket_templates(&ntype, valtorgb_in, valtorgb_out); + node_type_size(&ntype, 240, 200, 300); + node_type_init(&ntype, valtorgb_init); + node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, valtorgb_exec); + + nodeRegisterType(lb, &ntype); +} + +/* **************** RGBTOBW ******************** */ +static bNodeSocketTemplate rgbtobw_in[]= { + { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; +static bNodeSocketTemplate rgbtobw_out[]= { + { SOCK_FLOAT, 0, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + + +static void rgbtobw_valuefn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread) +{ + float cin[4]; + tex_input_rgba(cin, in[0], p, thread); + + *out = cin[0] * 0.35f + cin[1] * 0.45f + cin[2] * 0.2f; +} + +static void rgbtobw_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + tex_output(node, in, out[0], &rgbtobw_valuefn, data); +} + +void register_node_type_tex_rgbtobw(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); + node_type_socket_templates(&ntype, rgbtobw_in, rgbtobw_out); + node_type_size(&ntype, 80, 40, 120); + node_type_exec(&ntype, rgbtobw_exec); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/texture/nodes/node_texture_viewer.c b/source/blender/nodes/texture/nodes/node_texture_viewer.c new file mode 100644 index 00000000000..01734f56937 --- /dev/null +++ b/source/blender/nodes/texture/nodes/node_texture_viewer.c @@ -0,0 +1,70 @@ +/* + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Robin Allen + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/nodes/texture/nodes/node_texture_viewer.c + * \ingroup texnodes + */ + + +#include "node_texture_util.h" +#include "NOD_texture.h" +#include + +static bNodeSocketTemplate inputs[]= { + { SOCK_RGBA, 1, "Color", 1.0f, 0.0f, 0.0f, 1.0f }, + { -1, 0, "" } +}; +static bNodeSocketTemplate outputs[]= { + { -1, 0, "" } +}; + +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + TexCallData *cdata = (TexCallData *)data; + + if(cdata->do_preview) { + TexParams params; + float col[4]; + params_from_cdata(¶ms, cdata); + + tex_input_rgba(col, in[0], ¶ms, cdata->thread); + tex_do_preview(node, params.previewco, col); + } +} + +void register_node_type_tex_viewer(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, TEX_NODE_VIEWER, "Viewer", NODE_CLASS_OUTPUT, NODE_PREVIEW); + node_type_socket_templates(&ntype, inputs, outputs); + node_type_size(&ntype, 100, 60, 150); + node_type_exec(&ntype, exec); + + nodeRegisterType(lb, &ntype); +} diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index fbbb33d0172..e35b3e53f5b 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -125,7 +125,7 @@ static void init_render_texture(Render *re, Tex *tex) } if(tex->nodetree && tex->use_nodes) { - ntreeBeginExecTree(tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(tex->nodetree); /* has internal flag to detect it only does it once */ } } @@ -144,8 +144,8 @@ void init_render_textures(Render *re) static void end_render_texture(Tex *tex) { - if(tex && tex->use_nodes && tex->nodetree) - ntreeEndExecTree(tex->nodetree); + if(tex && tex->use_nodes && tex->nodetree && tex->nodetree->execdata) + ntreeTexEndExecTree(tex->nodetree->execdata); } void end_render_textures(Render *re) -- cgit v1.2.3 From 271f069b8531b1fa01539dcab4675ff3b8e4485b Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Mon, 5 Sep 2011 22:04:30 +0000 Subject: SVN maintenance. --- source/blender/nodes/NOD_composite.h | 2 +- source/blender/nodes/NOD_shader.h | 2 +- source/blender/nodes/NOD_socket.h | 1 + source/blender/nodes/NOD_texture.h | 2 +- source/blender/nodes/composite/node_composite_tree.c | 2 ++ source/blender/nodes/composite/node_composite_util.c | 2 +- source/blender/nodes/composite/node_composite_util.h | 2 +- source/blender/nodes/composite/nodes/node_composite_alphaOver.c | 2 +- source/blender/nodes/composite/nodes/node_composite_bilateralblur.c | 2 +- source/blender/nodes/composite/nodes/node_composite_blur.c | 2 +- source/blender/nodes/composite/nodes/node_composite_brightness.c | 2 +- source/blender/nodes/composite/nodes/node_composite_channelMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_chromaMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_colorMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_colorSpill.c | 2 +- source/blender/nodes/composite/nodes/node_composite_colorbalance.c | 2 +- source/blender/nodes/composite/nodes/node_composite_common.c | 2 +- source/blender/nodes/composite/nodes/node_composite_composite.c | 2 +- source/blender/nodes/composite/nodes/node_composite_crop.c | 2 +- source/blender/nodes/composite/nodes/node_composite_curves.c | 2 +- source/blender/nodes/composite/nodes/node_composite_defocus.c | 2 +- source/blender/nodes/composite/nodes/node_composite_diffMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_dilate.c | 2 +- source/blender/nodes/composite/nodes/node_composite_directionalblur.c | 1 + source/blender/nodes/composite/nodes/node_composite_displace.c | 2 +- source/blender/nodes/composite/nodes/node_composite_distanceMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_filter.c | 2 +- source/blender/nodes/composite/nodes/node_composite_flip.c | 2 +- source/blender/nodes/composite/nodes/node_composite_gamma.c | 2 +- source/blender/nodes/composite/nodes/node_composite_glare.c | 1 + source/blender/nodes/composite/nodes/node_composite_hueSatVal.c | 2 +- source/blender/nodes/composite/nodes/node_composite_huecorrect.c | 2 +- source/blender/nodes/composite/nodes/node_composite_idMask.c | 2 +- source/blender/nodes/composite/nodes/node_composite_image.c | 2 +- source/blender/nodes/composite/nodes/node_composite_invert.c | 2 +- source/blender/nodes/composite/nodes/node_composite_lensdist.c | 1 + source/blender/nodes/composite/nodes/node_composite_levels.c | 2 +- source/blender/nodes/composite/nodes/node_composite_lummaMatte.c | 2 +- source/blender/nodes/composite/nodes/node_composite_mapUV.c | 2 +- source/blender/nodes/composite/nodes/node_composite_mapValue.c | 2 +- source/blender/nodes/composite/nodes/node_composite_math.c | 2 +- source/blender/nodes/composite/nodes/node_composite_mixrgb.c | 2 +- source/blender/nodes/composite/nodes/node_composite_normal.c | 2 +- source/blender/nodes/composite/nodes/node_composite_normalize.c | 2 +- source/blender/nodes/composite/nodes/node_composite_outputFile.c | 2 +- source/blender/nodes/composite/nodes/node_composite_premulkey.c | 2 +- source/blender/nodes/composite/nodes/node_composite_rgb.c | 2 +- source/blender/nodes/composite/nodes/node_composite_rotate.c | 2 +- source/blender/nodes/composite/nodes/node_composite_scale.c | 2 +- source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c | 2 +- source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c | 2 +- source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c | 2 +- source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c | 2 +- source/blender/nodes/composite/nodes/node_composite_setalpha.c | 2 +- source/blender/nodes/composite/nodes/node_composite_splitViewer.c | 2 +- source/blender/nodes/composite/nodes/node_composite_texture.c | 2 +- source/blender/nodes/composite/nodes/node_composite_tonemap.c | 1 + source/blender/nodes/composite/nodes/node_composite_translate.c | 2 +- source/blender/nodes/composite/nodes/node_composite_valToRgb.c | 2 +- source/blender/nodes/composite/nodes/node_composite_value.c | 2 +- source/blender/nodes/composite/nodes/node_composite_vecBlur.c | 2 +- source/blender/nodes/composite/nodes/node_composite_viewer.c | 2 +- source/blender/nodes/composite/nodes/node_composite_zcombine.c | 2 +- source/blender/nodes/intern/node_common.c | 1 + source/blender/nodes/intern/node_common.h | 1 + source/blender/nodes/intern/node_exec.c | 1 + source/blender/nodes/intern/node_exec.h | 1 + source/blender/nodes/intern/node_socket.c | 1 + source/blender/nodes/shader/node_shader_tree.c | 2 ++ source/blender/nodes/shader/node_shader_util.c | 2 +- source/blender/nodes/shader/node_shader_util.h | 2 +- source/blender/nodes/shader/nodes/node_shader_camera.c | 2 +- source/blender/nodes/shader/nodes/node_shader_common.c | 2 +- source/blender/nodes/shader/nodes/node_shader_curves.c | 2 +- source/blender/nodes/shader/nodes/node_shader_dynamic.c | 2 +- source/blender/nodes/shader/nodes/node_shader_geom.c | 2 +- source/blender/nodes/shader/nodes/node_shader_hueSatVal.c | 2 +- source/blender/nodes/shader/nodes/node_shader_invert.c | 2 +- source/blender/nodes/shader/nodes/node_shader_mapping.c | 2 +- source/blender/nodes/shader/nodes/node_shader_material.c | 2 +- source/blender/nodes/shader/nodes/node_shader_math.c | 2 +- source/blender/nodes/shader/nodes/node_shader_mixRgb.c | 2 +- source/blender/nodes/shader/nodes/node_shader_normal.c | 2 +- source/blender/nodes/shader/nodes/node_shader_output.c | 2 +- source/blender/nodes/shader/nodes/node_shader_rgb.c | 2 +- source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c | 2 +- source/blender/nodes/shader/nodes/node_shader_squeeze.c | 2 +- source/blender/nodes/shader/nodes/node_shader_texture.c | 2 +- source/blender/nodes/shader/nodes/node_shader_valToRgb.c | 2 +- source/blender/nodes/shader/nodes/node_shader_value.c | 2 +- source/blender/nodes/shader/nodes/node_shader_vectMath.c | 2 +- source/blender/nodes/texture/node_texture_tree.c | 2 ++ source/blender/nodes/texture/node_texture_util.c | 1 + source/blender/nodes/texture/node_texture_util.h | 1 + source/blender/nodes/texture/nodes/node_texture_at.c | 1 + source/blender/nodes/texture/nodes/node_texture_bricks.c | 1 + source/blender/nodes/texture/nodes/node_texture_checker.c | 1 + source/blender/nodes/texture/nodes/node_texture_common.c | 2 +- source/blender/nodes/texture/nodes/node_texture_compose.c | 1 + source/blender/nodes/texture/nodes/node_texture_coord.c | 1 + source/blender/nodes/texture/nodes/node_texture_curves.c | 1 + source/blender/nodes/texture/nodes/node_texture_decompose.c | 1 + source/blender/nodes/texture/nodes/node_texture_distance.c | 1 + source/blender/nodes/texture/nodes/node_texture_hueSatVal.c | 1 + source/blender/nodes/texture/nodes/node_texture_image.c | 2 +- source/blender/nodes/texture/nodes/node_texture_invert.c | 1 + source/blender/nodes/texture/nodes/node_texture_math.c | 1 + source/blender/nodes/texture/nodes/node_texture_mixRgb.c | 1 + source/blender/nodes/texture/nodes/node_texture_output.c | 1 + source/blender/nodes/texture/nodes/node_texture_proc.c | 1 + source/blender/nodes/texture/nodes/node_texture_rotate.c | 1 + source/blender/nodes/texture/nodes/node_texture_scale.c | 1 + source/blender/nodes/texture/nodes/node_texture_texture.c | 1 + source/blender/nodes/texture/nodes/node_texture_translate.c | 1 + source/blender/nodes/texture/nodes/node_texture_valToNor.c | 1 + source/blender/nodes/texture/nodes/node_texture_valToRgb.c | 2 +- source/blender/nodes/texture/nodes/node_texture_viewer.c | 1 + 117 files changed, 120 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/NOD_composite.h b/source/blender/nodes/NOD_composite.h index ab56199079e..11ffcc9027f 100644 --- a/source/blender/nodes/NOD_composite.h +++ b/source/blender/nodes/NOD_composite.h @@ -1,5 +1,5 @@ /* - * $Id: CMP_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index 5bc0c381f0b..6c5ea79e1ee 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -1,5 +1,5 @@ /* - * $Id: SHD_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/NOD_socket.h b/source/blender/nodes/NOD_socket.h index 92e8a8e058d..9ddf159cd9c 100644 --- a/source/blender/nodes/NOD_socket.h +++ b/source/blender/nodes/NOD_socket.h @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/NOD_texture.h b/source/blender/nodes/NOD_texture.h index 6f30685aff1..d098c241583 100644 --- a/source/blender/nodes/NOD_texture.h +++ b/source/blender/nodes/NOD_texture.h @@ -1,5 +1,5 @@ /* - * $Id: TEX_node.h 36550 2011-05-08 16:08:08Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index 1a2fb04be8c..0ea62b0aa5f 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -1,4 +1,6 @@ /** + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c index f7759775af0..78f97c5289e 100644 --- a/source/blender/nodes/composite/node_composite_util.c +++ b/source/blender/nodes/composite/node_composite_util.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_util.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/node_composite_util.h b/source/blender/nodes/composite/node_composite_util.h index e3158b2a286..57ebe2191dd 100644 --- a/source/blender/nodes/composite/node_composite_util.h +++ b/source/blender/nodes/composite/node_composite_util.h @@ -1,5 +1,5 @@ /* - * $Id: CMP_util.h 35562 2011-03-15 20:10:32Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_alphaOver.c b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c index 400bdd92b6f..551f716e72b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_alphaOver.c +++ b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_alphaOver.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c index e7a9ee12ca1..e8e6e164983 100644 --- a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c +++ b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c @@ -1,5 +1,5 @@ /* - * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_blur.c b/source/blender/nodes/composite/nodes/node_composite_blur.c index 7b1a9623845..cd37404e677 100644 --- a/source/blender/nodes/composite/nodes/node_composite_blur.c +++ b/source/blender/nodes/composite/nodes/node_composite_blur.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_blur.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_brightness.c b/source/blender/nodes/composite/nodes/node_composite_brightness.c index 1a5cf956a52..55d890e6d31 100644 --- a/source/blender/nodes/composite/nodes/node_composite_brightness.c +++ b/source/blender/nodes/composite/nodes/node_composite_brightness.c @@ -1,5 +1,5 @@ /* -* $Id: CMP_brightness.c 36593 2011-05-10 11:19:26Z lukastoenne $ +* $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c index afdbe82aebc..1e3992a7185 100644 --- a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_channelMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c index db5e6d93856..49c90e85621 100644 --- a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_chromaMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_colorMatte.c b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c index 7f687240daf..b17052ed542 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_colorMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c index 18b6d806c82..418d6802cec 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c +++ b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_colorSpill.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_colorbalance.c b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c index 7ebceb5c206..6bce18c14ef 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorbalance.c +++ b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c @@ -1,5 +1,5 @@ /* - * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_common.c b/source/blender/nodes/composite/nodes/node_composite_common.c index ab8cf663ef2..fbff8198dde 100644 --- a/source/blender/nodes/composite/nodes/node_composite_common.c +++ b/source/blender/nodes/composite/nodes/node_composite_common.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_composite.c b/source/blender/nodes/composite/nodes/node_composite_composite.c index be6246b42d8..492e5c28459 100644 --- a/source/blender/nodes/composite/nodes/node_composite_composite.c +++ b/source/blender/nodes/composite/nodes/node_composite_composite.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_composite.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_crop.c b/source/blender/nodes/composite/nodes/node_composite_crop.c index 332ecf39616..b8c539b6d66 100644 --- a/source/blender/nodes/composite/nodes/node_composite_crop.c +++ b/source/blender/nodes/composite/nodes/node_composite_crop.c @@ -1,5 +1,5 @@ /* - * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.c b/source/blender/nodes/composite/nodes/node_composite_curves.c index a830b595321..58074eaca57 100644 --- a/source/blender/nodes/composite/nodes/node_composite_curves.c +++ b/source/blender/nodes/composite/nodes/node_composite_curves.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_curves.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_defocus.c b/source/blender/nodes/composite/nodes/node_composite_defocus.c index a218bfb009d..84a084591c5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_defocus.c +++ b/source/blender/nodes/composite/nodes/node_composite_defocus.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_defocus.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_diffMatte.c b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c index a0fff88f5dc..23bcf57e2bc 100644 --- a/source/blender/nodes/composite/nodes/node_composite_diffMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_diffMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_dilate.c b/source/blender/nodes/composite/nodes/node_composite_dilate.c index ef47fdbfef0..c774045a12f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_dilate.c +++ b/source/blender/nodes/composite/nodes/node_composite_dilate.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_dilate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_directionalblur.c b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c index 3d541120a61..1a5e3150f53 100644 --- a/source/blender/nodes/composite/nodes/node_composite_directionalblur.c +++ b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_displace.c b/source/blender/nodes/composite/nodes/node_composite_displace.c index 4688553d27f..28d220eb4c9 100644 --- a/source/blender/nodes/composite/nodes/node_composite_displace.c +++ b/source/blender/nodes/composite/nodes/node_composite_displace.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_displace.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c index c895eab391c..b186be5500b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_distanceMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.c b/source/blender/nodes/composite/nodes/node_composite_filter.c index 6beeec49c63..64a4c69b671 100644 --- a/source/blender/nodes/composite/nodes/node_composite_filter.c +++ b/source/blender/nodes/composite/nodes/node_composite_filter.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_filter.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_flip.c b/source/blender/nodes/composite/nodes/node_composite_flip.c index 026130641a3..931aacbe6fd 100644 --- a/source/blender/nodes/composite/nodes/node_composite_flip.c +++ b/source/blender/nodes/composite/nodes/node_composite_flip.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_flip.c 36333 2011-04-26 09:27:43Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_gamma.c b/source/blender/nodes/composite/nodes/node_composite_gamma.c index d191f649f1f..f1dd3d40c09 100644 --- a/source/blender/nodes/composite/nodes/node_composite_gamma.c +++ b/source/blender/nodes/composite/nodes/node_composite_gamma.c @@ -1,5 +1,5 @@ /* -* $Id: CMP_gamma.c 36593 2011-05-10 11:19:26Z lukastoenne $ +* $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_glare.c b/source/blender/nodes/composite/nodes/node_composite_glare.c index 0890b9ba24b..98a41e4af69 100644 --- a/source/blender/nodes/composite/nodes/node_composite_glare.c +++ b/source/blender/nodes/composite/nodes/node_composite_glare.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c index 525728ade31..1d060726b67 100644 --- a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c +++ b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_hueSatVal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.c b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c index edf26aed882..13a606e2c68 100644 --- a/source/blender/nodes/composite/nodes/node_composite_huecorrect.c +++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_huecorrect.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_idMask.c b/source/blender/nodes/composite/nodes/node_composite_idMask.c index 97d84997697..43f78a90add 100644 --- a/source/blender/nodes/composite/nodes/node_composite_idMask.c +++ b/source/blender/nodes/composite/nodes/node_composite_idMask.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_idMask.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c index 1278202d5b5..6149947233e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.c +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_image.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_invert.c b/source/blender/nodes/composite/nodes/node_composite_invert.c index 1f7589cae8f..fa64c9ec1b1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_invert.c +++ b/source/blender/nodes/composite/nodes/node_composite_invert.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_invert.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_lensdist.c b/source/blender/nodes/composite/nodes/node_composite_lensdist.c index 85578deecbb..7d6c945a9e3 100644 --- a/source/blender/nodes/composite/nodes/node_composite_lensdist.c +++ b/source/blender/nodes/composite/nodes/node_composite_lensdist.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_levels.c b/source/blender/nodes/composite/nodes/node_composite_levels.c index 673ffe4cbef..e34788ff62b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_levels.c +++ b/source/blender/nodes/composite/nodes/node_composite_levels.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_levels.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c index bc7676934fa..cac2a386801 100644 --- a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_lummaMatte.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_mapUV.c b/source/blender/nodes/composite/nodes/node_composite_mapUV.c index 2d92c26b554..b1cae62274b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapUV.c +++ b/source/blender/nodes/composite/nodes/node_composite_mapUV.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_mapUV.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.c b/source/blender/nodes/composite/nodes/node_composite_mapValue.c index 0d38aca4ce3..95e0f3dadd1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapValue.c +++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_mapValue.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_math.c b/source/blender/nodes/composite/nodes/node_composite_math.c index 2489491fdd8..a8a631bdbad 100644 --- a/source/blender/nodes/composite/nodes/node_composite_math.c +++ b/source/blender/nodes/composite/nodes/node_composite_math.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_math.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.c b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c index a5dcfcc44da..eaab24d628a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mixrgb.c +++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_mixrgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_normal.c b/source/blender/nodes/composite/nodes/node_composite_normal.c index 5f3c848903c..adf087019dc 100644 --- a/source/blender/nodes/composite/nodes/node_composite_normal.c +++ b/source/blender/nodes/composite/nodes/node_composite_normal.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_normal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_normalize.c b/source/blender/nodes/composite/nodes/node_composite_normalize.c index 1c5c3b57b80..3a913b1a0a2 100644 --- a/source/blender/nodes/composite/nodes/node_composite_normalize.c +++ b/source/blender/nodes/composite/nodes/node_composite_normalize.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_normalize.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c index 13391a4a790..20203f66b5a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c +++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_outputFile.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_premulkey.c b/source/blender/nodes/composite/nodes/node_composite_premulkey.c index 066a8a81891..a3f958e04d9 100644 --- a/source/blender/nodes/composite/nodes/node_composite_premulkey.c +++ b/source/blender/nodes/composite/nodes/node_composite_premulkey.c @@ -1,5 +1,5 @@ /* -* $Id: CMP_premulkey.c 36333 2011-04-26 09:27:43Z lukastoenne $ +* $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.c b/source/blender/nodes/composite/nodes/node_composite_rgb.c index 41a13487edd..b9287a4978e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rgb.c +++ b/source/blender/nodes/composite/nodes/node_composite_rgb.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_rgb.c 36333 2011-04-26 09:27:43Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.c b/source/blender/nodes/composite/nodes/node_composite_rotate.c index 4ece562c508..2bbb77cd1da 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rotate.c +++ b/source/blender/nodes/composite/nodes/node_composite_rotate.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_rotate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_scale.c b/source/blender/nodes/composite/nodes/node_composite_scale.c index 4ba654e82d4..b6ad36f957f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_scale.c +++ b/source/blender/nodes/composite/nodes/node_composite_scale.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_scale.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c index 5460427fd73..6b1813d2142 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_sepcombHSVA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c index a074d895acb..a60f6b81c95 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_sepcombRGBA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c index 61e88418e59..5e042f54fb0 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_sepcombYCCA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c index 14f086300c0..70bc36a020d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_sepcombYUVA.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_setalpha.c b/source/blender/nodes/composite/nodes/node_composite_setalpha.c index 781d6f11614..8264d4d4dea 100644 --- a/source/blender/nodes/composite/nodes/node_composite_setalpha.c +++ b/source/blender/nodes/composite/nodes/node_composite_setalpha.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_setalpha.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_splitViewer.c b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c index d78faf69e26..e73caa542b7 100644 --- a/source/blender/nodes/composite/nodes/node_composite_splitViewer.c +++ b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_splitViewer.c 36340 2011-04-26 13:24:20Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_texture.c b/source/blender/nodes/composite/nodes/node_composite_texture.c index bdeef74c617..1dbbd56d2f1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_texture.c +++ b/source/blender/nodes/composite/nodes/node_composite_texture.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_texture.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_tonemap.c b/source/blender/nodes/composite/nodes/node_composite_tonemap.c index 31ffed08c95..ba2dc9c5c79 100644 --- a/source/blender/nodes/composite/nodes/node_composite_tonemap.c +++ b/source/blender/nodes/composite/nodes/node_composite_tonemap.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_translate.c b/source/blender/nodes/composite/nodes/node_composite_translate.c index a07dfb936ae..872667a4e17 100644 --- a/source/blender/nodes/composite/nodes/node_composite_translate.c +++ b/source/blender/nodes/composite/nodes/node_composite_translate.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_translate.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_valToRgb.c b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c index 9481d769557..edd315e5a92 100644 --- a/source/blender/nodes/composite/nodes/node_composite_valToRgb.c +++ b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_value.c b/source/blender/nodes/composite/nodes/node_composite_value.c index e99b665f2ae..0bb558cfa9d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_value.c +++ b/source/blender/nodes/composite/nodes/node_composite_value.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_value.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_vecBlur.c b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c index e730728d077..26fcffa93ac 100644 --- a/source/blender/nodes/composite/nodes/node_composite_vecBlur.c +++ b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_vecBlur.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.c b/source/blender/nodes/composite/nodes/node_composite_viewer.c index bcfb45411f1..8b052c5db35 100644 --- a/source/blender/nodes/composite/nodes/node_composite_viewer.c +++ b/source/blender/nodes/composite/nodes/node_composite_viewer.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_viewer.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/composite/nodes/node_composite_zcombine.c b/source/blender/nodes/composite/nodes/node_composite_zcombine.c index dfed26be343..220b770198a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_zcombine.c +++ b/source/blender/nodes/composite/nodes/node_composite_zcombine.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_zcombine.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c index 76203c52293..07f3eb943cc 100644 --- a/source/blender/nodes/intern/node_common.c +++ b/source/blender/nodes/intern/node_common.c @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/node_common.h b/source/blender/nodes/intern/node_common.h index 31a13d8168d..2723c595380 100644 --- a/source/blender/nodes/intern/node_common.h +++ b/source/blender/nodes/intern/node_common.h @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/node_exec.c b/source/blender/nodes/intern/node_exec.c index 0d688438cf9..608347bc258 100644 --- a/source/blender/nodes/intern/node_exec.c +++ b/source/blender/nodes/intern/node_exec.c @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/node_exec.h b/source/blender/nodes/intern/node_exec.h index 457e119613b..567c6ae56cf 100644 --- a/source/blender/nodes/intern/node_exec.h +++ b/source/blender/nodes/intern/node_exec.h @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index ef8b3e797ce..3ea34dd094a 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -1,4 +1,5 @@ /** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index 620da7553b3..8cb1ebeb15f 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -1,4 +1,6 @@ /** + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index cf910ba3f64..01dd0f7d5a1 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_util.c 36549 2011-05-08 14:23:38Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h index 1cc04d95d6f..4c929c93517 100644 --- a/source/blender/nodes/shader/node_shader_util.h +++ b/source/blender/nodes/shader/node_shader_util.h @@ -1,5 +1,5 @@ /* - * $Id: SHD_util.h 36549 2011-05-08 14:23:38Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.c b/source/blender/nodes/shader/nodes/node_shader_camera.c index ecb7c486dc4..c1e737fcb53 100644 --- a/source/blender/nodes/shader/nodes/node_shader_camera.c +++ b/source/blender/nodes/shader/nodes/node_shader_camera.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_camera.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_common.c b/source/blender/nodes/shader/nodes/node_shader_common.c index ab3638436f1..aa8e8241bf8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_common.c +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.c b/source/blender/nodes/shader/nodes/node_shader_curves.c index ded867ec441..9dedeba6d39 100644 --- a/source/blender/nodes/shader/nodes/node_shader_curves.c +++ b/source/blender/nodes/shader/nodes/node_shader_curves.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_curves.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_dynamic.c b/source/blender/nodes/shader/nodes/node_shader_dynamic.c index 6490ee00787..5aae54d858b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_dynamic.c +++ b/source/blender/nodes/shader/nodes/node_shader_dynamic.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_dynamic.c 35927 2011-03-31 20:59:55Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_geom.c b/source/blender/nodes/shader/nodes/node_shader_geom.c index b88c5979b54..585d1e59d15 100644 --- a/source/blender/nodes/shader/nodes/node_shader_geom.c +++ b/source/blender/nodes/shader/nodes/node_shader_geom.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_geom.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c index ef1434b82ca..f4f69cf56fe 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c @@ -1,5 +1,5 @@ /* - * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.c b/source/blender/nodes/shader/nodes/node_shader_invert.c index bd7e571f073..5347d98b42e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.c +++ b/source/blender/nodes/shader/nodes/node_shader_invert.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_invert.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c index 21cea4853ad..05432708b29 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.c +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_mapping.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_material.c b/source/blender/nodes/shader/nodes/node_shader_material.c index a0bfd430506..984bfed3ff9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_material.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_material.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index 0618598379f..592779d6803 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_math.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c index a89faa66fc0..a9e4f2129be 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_mixRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_normal.c b/source/blender/nodes/shader/nodes/node_shader_normal.c index 099a9bed10d..1ce7c61c593 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal.c +++ b/source/blender/nodes/shader/nodes/node_shader_normal.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_normal.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_output.c b/source/blender/nodes/shader/nodes/node_shader_output.c index 638af7d4eb3..94990bd9cf1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output.c +++ b/source/blender/nodes/shader/nodes/node_shader_output.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_output.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb.c b/source/blender/nodes/shader/nodes/node_shader_rgb.c index c9bb78b45dd..d612e5c228f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_rgb.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_rgb.c 36481 2011-05-04 11:42:25Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c index 9528aca2574..15a8a4952fb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c @@ -1,5 +1,5 @@ /* - * + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_squeeze.c b/source/blender/nodes/shader/nodes/node_shader_squeeze.c index 305639dff21..b9eb116b866 100644 --- a/source/blender/nodes/shader/nodes/node_shader_squeeze.c +++ b/source/blender/nodes/shader/nodes/node_shader_squeeze.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_squeeze.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c index a4957d8f683..09716820800 100644 --- a/source/blender/nodes/shader/nodes/node_shader_texture.c +++ b/source/blender/nodes/shader/nodes/node_shader_texture.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_texture.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c index 9353143095a..5c1d3096a6e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_value.c b/source/blender/nodes/shader/nodes/node_shader_value.c index 21ff565306d..bbd3f8fc242 100644 --- a/source/blender/nodes/shader/nodes/node_shader_value.c +++ b/source/blender/nodes/shader/nodes/node_shader_value.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_value.c 36536 2011-05-07 13:27:27Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c index c6a081431a2..ca31d879e3e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vectMath.c +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -1,5 +1,5 @@ /* - * $Id: SHD_vectMath.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 75a57c64f2f..3ea15a316ab 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -1,4 +1,6 @@ /** + * $Id$ + * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/nodes/texture/node_texture_util.c b/source/blender/nodes/texture/node_texture_util.c index 5aedd8681ab..7b8f42aa925 100644 --- a/source/blender/nodes/texture/node_texture_util.c +++ b/source/blender/nodes/texture/node_texture_util.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/node_texture_util.h b/source/blender/nodes/texture/node_texture_util.h index 867b4142052..ccaf5df9897 100644 --- a/source/blender/nodes/texture/node_texture_util.h +++ b/source/blender/nodes/texture/node_texture_util.h @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_at.c b/source/blender/nodes/texture/nodes/node_texture_at.c index f3275f2bcdf..34993a93092 100644 --- a/source/blender/nodes/texture/nodes/node_texture_at.c +++ b/source/blender/nodes/texture/nodes/node_texture_at.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_bricks.c b/source/blender/nodes/texture/nodes/node_texture_bricks.c index 060ed791871..a9a82fe4d65 100644 --- a/source/blender/nodes/texture/nodes/node_texture_bricks.c +++ b/source/blender/nodes/texture/nodes/node_texture_bricks.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_checker.c b/source/blender/nodes/texture/nodes/node_texture_checker.c index 916ee80d66b..7762c9ef992 100644 --- a/source/blender/nodes/texture/nodes/node_texture_checker.c +++ b/source/blender/nodes/texture/nodes/node_texture_checker.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_common.c b/source/blender/nodes/texture/nodes/node_texture_common.c index cb5102bae4e..afb24226416 100644 --- a/source/blender/nodes/texture/nodes/node_texture_common.c +++ b/source/blender/nodes/texture/nodes/node_texture_common.c @@ -1,5 +1,5 @@ /* - * $Id: CMP_blur.c 35562 2011-03-15 20:10:32Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_compose.c b/source/blender/nodes/texture/nodes/node_texture_compose.c index a11769173a3..d224ae793e2 100644 --- a/source/blender/nodes/texture/nodes/node_texture_compose.c +++ b/source/blender/nodes/texture/nodes/node_texture_compose.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_coord.c b/source/blender/nodes/texture/nodes/node_texture_coord.c index b2d9cecc164..2bfa2ff2314 100644 --- a/source/blender/nodes/texture/nodes/node_texture_coord.c +++ b/source/blender/nodes/texture/nodes/node_texture_coord.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_curves.c b/source/blender/nodes/texture/nodes/node_texture_curves.c index af6d880cc18..dd65f979bbe 100644 --- a/source/blender/nodes/texture/nodes/node_texture_curves.c +++ b/source/blender/nodes/texture/nodes/node_texture_curves.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_decompose.c b/source/blender/nodes/texture/nodes/node_texture_decompose.c index 312765f866e..016ee5498d8 100644 --- a/source/blender/nodes/texture/nodes/node_texture_decompose.c +++ b/source/blender/nodes/texture/nodes/node_texture_decompose.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_distance.c b/source/blender/nodes/texture/nodes/node_texture_distance.c index fe524baaa96..ef3f701d8f3 100644 --- a/source/blender/nodes/texture/nodes/node_texture_distance.c +++ b/source/blender/nodes/texture/nodes/node_texture_distance.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c b/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c index ebc2501cee3..cd7ebb18018 100644 --- a/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c +++ b/source/blender/nodes/texture/nodes/node_texture_hueSatVal.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_image.c b/source/blender/nodes/texture/nodes/node_texture_image.c index 1359cf4275f..6e749a80d99 100644 --- a/source/blender/nodes/texture/nodes/node_texture_image.c +++ b/source/blender/nodes/texture/nodes/node_texture_image.c @@ -1,5 +1,5 @@ /* - * $Id: TEX_image.c 36481 2011-05-04 11:42:25Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_invert.c b/source/blender/nodes/texture/nodes/node_texture_invert.c index 8ba4f292fec..d18bb86d5fa 100644 --- a/source/blender/nodes/texture/nodes/node_texture_invert.c +++ b/source/blender/nodes/texture/nodes/node_texture_invert.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_math.c b/source/blender/nodes/texture/nodes/node_texture_math.c index 182bc37978f..04f399069c1 100644 --- a/source/blender/nodes/texture/nodes/node_texture_math.c +++ b/source/blender/nodes/texture/nodes/node_texture_math.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_mixRgb.c b/source/blender/nodes/texture/nodes/node_texture_mixRgb.c index 8baac682b18..933a0302df8 100644 --- a/source/blender/nodes/texture/nodes/node_texture_mixRgb.c +++ b/source/blender/nodes/texture/nodes/node_texture_mixRgb.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_output.c b/source/blender/nodes/texture/nodes/node_texture_output.c index c321f5738a1..3095e224446 100644 --- a/source/blender/nodes/texture/nodes/node_texture_output.c +++ b/source/blender/nodes/texture/nodes/node_texture_output.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_proc.c b/source/blender/nodes/texture/nodes/node_texture_proc.c index 8b4c25d85c9..237e4d6923d 100644 --- a/source/blender/nodes/texture/nodes/node_texture_proc.c +++ b/source/blender/nodes/texture/nodes/node_texture_proc.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_rotate.c b/source/blender/nodes/texture/nodes/node_texture_rotate.c index a788b9cbbde..afba9f199f9 100644 --- a/source/blender/nodes/texture/nodes/node_texture_rotate.c +++ b/source/blender/nodes/texture/nodes/node_texture_rotate.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_scale.c b/source/blender/nodes/texture/nodes/node_texture_scale.c index 136dde0d52f..e3aee35977a 100644 --- a/source/blender/nodes/texture/nodes/node_texture_scale.c +++ b/source/blender/nodes/texture/nodes/node_texture_scale.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_texture.c b/source/blender/nodes/texture/nodes/node_texture_texture.c index 10b9b8979f8..96d6325671a 100644 --- a/source/blender/nodes/texture/nodes/node_texture_texture.c +++ b/source/blender/nodes/texture/nodes/node_texture_texture.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_translate.c b/source/blender/nodes/texture/nodes/node_texture_translate.c index 395404a9411..b970bfbff76 100644 --- a/source/blender/nodes/texture/nodes/node_texture_translate.c +++ b/source/blender/nodes/texture/nodes/node_texture_translate.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_valToNor.c b/source/blender/nodes/texture/nodes/node_texture_valToNor.c index 62b457bc862..523f416568c 100644 --- a/source/blender/nodes/texture/nodes/node_texture_valToNor.c +++ b/source/blender/nodes/texture/nodes/node_texture_valToNor.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_valToRgb.c b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c index caca6fa97a4..6398a398b32 100644 --- a/source/blender/nodes/texture/nodes/node_texture_valToRgb.c +++ b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c @@ -1,5 +1,5 @@ /* - * $Id: TEX_valToRgb.c 36593 2011-05-10 11:19:26Z lukastoenne $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/texture/nodes/node_texture_viewer.c b/source/blender/nodes/texture/nodes/node_texture_viewer.c index 01734f56937..b0aa74a83b2 100644 --- a/source/blender/nodes/texture/nodes/node_texture_viewer.c +++ b/source/blender/nodes/texture/nodes/node_texture_viewer.c @@ -1,4 +1,5 @@ /* + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From 0991bed4139e4a77ba81514ad1dfb6a852a41fa5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 5 Sep 2011 23:40:52 +0000 Subject: fix some complier warnings and add -Wundef to CMake's default GCC warnings. --- source/blender/blenkernel/intern/node.c | 2 +- source/blender/editors/space_node/node_draw.c | 2 +- source/blender/editors/space_node/node_edit.c | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 6f34383101d..481893b86a8 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -158,7 +158,7 @@ void ntreeInitTypes(bNodeTree *ntree) ntree->init |= NTREE_TYPE_INIT; } -static bNodeSocket *make_socket(bNodeTree *ntree, int in_out, const char *name, int type) +static bNodeSocket *make_socket(bNodeTree *UNUSED(ntree), int in_out, const char *name, int type) { bNodeSocketType *stype= ntreeGetSocketType(type); bNodeSocket *sock; diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index ec118bb3ca2..6be8978cb5b 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -549,7 +549,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN bNodeSocket *sock; rctf *rct= &node->totr; float iconofs; - float socket_size= NODE_SOCKSIZE*U.dpi/72; + /* float socket_size= NODE_SOCKSIZE*U.dpi/72; */ /* UNUSED */ float iconbutw= 0.8f*UI_UNIT_X; int color_id= node_get_colorid(node); char showname[128]; /* 128 used below */ diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 214f375855d..b5633d50997 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2175,7 +2175,6 @@ static int node_duplicate_exec(bContext *C, wmOperator *op) bNode *node, *newnode, *lastnode; bNodeLink *link, *newlink, *lastlink; int keep_inputs = RNA_boolean_get(op->ptr, "keep_inputs"); - bNodeSocket *sock; ED_preview_kill_jobs(C); -- cgit v1.2.3 From bf5a6531a61638b74b9e80e055e00c2b97483fdf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 5 Sep 2011 23:46:08 +0000 Subject: replace define '#if FFTW3==1' --> '#ifdef WITH_FFTW3' --- source/blender/makesrna/intern/CMakeLists.txt | 2 +- source/blender/makesrna/intern/SConscript | 2 +- source/blender/makesrna/intern/rna_smoke.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 0307b5222d7..c2b46a3b69a 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -200,7 +200,7 @@ if(NOT WITH_MOD_FLUID) endif() if(WITH_FFTW3) - add_definitions(-DFFTW3=1) + add_definitions(-DWITH_FFTW3) endif() if(WITH_SDL) diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript index 24c892b96c4..5c2580e4b90 100644 --- a/source/blender/makesrna/intern/SConscript +++ b/source/blender/makesrna/intern/SConscript @@ -71,7 +71,7 @@ if env['WITH_BF_GAMEENGINE']: defs.append('WITH_GAMEENGINE') if env['WITH_BF_FFTW3']: - defs.append('FFTW3=1') + defs.append('WITH_FFTW3') if env['WITH_BF_SDL']: defs.append('WITH_SDL') diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c index d439c2551f1..93ffa62a4c6 100644 --- a/source/blender/makesrna/intern/rna_smoke.c +++ b/source/blender/makesrna/intern/rna_smoke.c @@ -121,7 +121,7 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna) static EnumPropertyItem prop_noise_type_items[] = { {MOD_SMOKE_NOISEWAVE, "NOISEWAVE", 0, "Wavelet", ""}, -#if FFTW3 == 1 +#ifdef WITH_FFTW3 {MOD_SMOKE_NOISEFFT, "NOISEFFT", 0, "FFT", ""}, #endif /* {MOD_SMOKE_NOISECURL, "NOISECURL", 0, "Curl", ""}, */ -- cgit v1.2.3 From a41f45946f8bf7b58e2b6bc048bfa30015e4ba2f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 6 Sep 2011 07:08:20 +0000 Subject: fix for error in strinc.c's BLI_strescape --- source/blender/blenlib/intern/string.c | 4 +++- source/blender/makesrna/intern/rna_access.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index c4ed44f0cdb..ae5fa40f3b9 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -129,7 +129,7 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) while(len < maxlen) { switch(*src) { case '\0': - break; + goto escape_finish; case '\\': case '"': @@ -154,6 +154,8 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) len++; } +escape_finish: + *dst= '\0'; return len; diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 936f2e5e40c..e7d0c5cdec2 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4407,7 +4407,7 @@ char *RNA_property_as_string(bContext *C, PointerRNA *ptr, PropertyRNA *prop) buf= MEM_mallocN(sizeof(char)*(length+1), "RNA_property_as_string"); buf_esc= MEM_mallocN(sizeof(char)*(length*2+1), "RNA_property_as_string esc"); RNA_property_string_get(ptr, prop, buf); - BLI_strescape(buf_esc, buf, length*2); + BLI_strescape(buf_esc, buf, length*2+1); MEM_freeN(buf); BLI_dynstr_appendf(dynstr, "\"%s\"", buf_esc); MEM_freeN(buf_esc); -- cgit v1.2.3 From c94fe5e2995873536cbdb180652b1aa027e4ef8d Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 6 Sep 2011 07:59:18 +0000 Subject: Grease pencil: non-blocking sketch sessions - Implement own undo stack for grease pencil, so now there'll be no keymaps conflicts. - Supported redo's during sketch session. - Get rid of flag stored in Globals -- use undo stack to check if grease pencil session is active. --- source/blender/blenkernel/BKE_global.h | 2 +- source/blender/editors/gpencil/CMakeLists.txt | 1 + source/blender/editors/gpencil/drawgpencil.c | 2 +- source/blender/editors/gpencil/gpencil_intern.h | 6 + source/blender/editors/gpencil/gpencil_paint.c | 136 ++++++++++--------- source/blender/editors/gpencil/gpencil_undo.c | 168 ++++++++++++++++++++++++ source/blender/editors/include/ED_gpencil.h | 4 + source/blender/editors/util/undo.c | 6 + 8 files changed, 263 insertions(+), 62 deletions(-) create mode 100644 source/blender/editors/gpencil/gpencil_undo.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index 17876c6ec9d..0e48673f1b1 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -111,7 +111,7 @@ typedef struct Global { #define G_SCRIPT_OVERRIDE_PREF (1 << 14) /* when this flag is set ignore the userprefs */ /* #define G_NOFROZEN (1 << 17) also removed */ -#define G_GREASEPENCIL (1 << 17) +/* #define G_GREASEPENCIL (1 << 17) also removed */ /* #define G_AUTOMATKEYS (1 << 30) also removed */ diff --git a/source/blender/editors/gpencil/CMakeLists.txt b/source/blender/editors/gpencil/CMakeLists.txt index 7a2f196fd6d..b312f397939 100644 --- a/source/blender/editors/gpencil/CMakeLists.txt +++ b/source/blender/editors/gpencil/CMakeLists.txt @@ -42,6 +42,7 @@ set(SRC gpencil_edit.c gpencil_ops.c gpencil_paint.c + gpencil_undo.c gpencil_intern.h ) diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index 440d5ee7c4d..cfa9585868e 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -644,7 +644,7 @@ static void gp_draw_data (bGPdata *gpd, int offsx, int offsy, int winx, int winy /* Check if may need to draw the active stroke cache, only if this layer is the active layer * that is being edited. (Stroke buffer is currently stored in gp-data) */ - if ((G.f & G_GREASEPENCIL) && (gpl->flag & GP_LAYER_ACTIVE) && + if (ED_gpencil_session_active() && (gpl->flag & GP_LAYER_ACTIVE) && (gpf->flag & GP_FRAME_PAINT)) { /* Buffer stroke needs to be drawn with a different linestyle to help differentiate them from normal strokes. */ diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h index c31de8d30a7..db4315a8ca6 100644 --- a/source/blender/editors/gpencil/gpencil_intern.h +++ b/source/blender/editors/gpencil/gpencil_intern.h @@ -37,6 +37,7 @@ /* ***************************************************** */ /* Operator Defines */ +struct bGPdata; struct wmOperatorType; /* drawing ---------- */ @@ -61,6 +62,11 @@ void GPENCIL_OT_active_frame_delete(struct wmOperatorType *ot); void GPENCIL_OT_convert(struct wmOperatorType *ot); +/* undo stack ---------- */ + +void gpencil_undo_init(struct bGPdata *gpd); +void gpencil_undo_push(struct bGPdata *gpd); +void gpencil_undo_finish(void); /******************************************************* */ /* FILTERED ACTION DATA - TYPES ---> XXX DEPRECEATED OLD ANIM SYSTEM CODE! */ diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 04565eab155..df5fa65c980 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -152,7 +152,7 @@ static int gpencil_draw_poll (bContext *C) /* check if current context can support GPencil data */ if (gpencil_data_get_pointers(C, NULL) != NULL) { /* check if Grease Pencil isn't already running */ - if ((G.f & G_GREASEPENCIL) == 0) + if (ED_gpencil_session_active() == 0) return 1; else CTX_wm_operator_poll_msg_set(C, "Grease Pencil operator is already active"); @@ -893,8 +893,10 @@ static void gp_session_validatebuffer (tGPsdata *p) /* clear memory of buffer (or allocate it if starting a new session) */ if (gpd->sbuffer) memset(gpd->sbuffer, 0, sizeof(tGPspoint)*GP_STROKE_BUFFER_MAX); - else + else { + //printf("\t\tGP - allocate sbuffer\n"); gpd->sbuffer= MEM_callocN(sizeof(tGPspoint)*GP_STROKE_BUFFER_MAX, "gp_session_strokebuffer"); + } /* reset indices */ gpd->sbuffer_size = 0; @@ -1051,8 +1053,11 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->gpd= *gpd_ptr; } - /* set edit flags - so that buffer will get drawn */ - G.f |= G_GREASEPENCIL; + if(ED_gpencil_session_active()==0) { + /* initialize undo stack, + also, existing undo stack would make buffer drawn */ + gpencil_undo_init(p->gpd); + } /* clear out buffer (stored in gp-data), in case something contaminated it */ gp_session_validatebuffer(p); @@ -1078,6 +1083,7 @@ static void gp_session_cleanup (tGPsdata *p) /* free stroke buffer */ if (gpd->sbuffer) { + //printf("\t\tGP - free sbuffer\n"); MEM_freeN(gpd->sbuffer); gpd->sbuffer= NULL; } @@ -1247,7 +1253,8 @@ static void gp_paint_strokeend (tGPsdata *p) static void gp_paint_cleanup (tGPsdata *p) { /* finish off a stroke */ - gp_paint_strokeend(p); + if(p->gpd) + gp_paint_strokeend(p); /* "unlock" frame */ if (p->gpf) @@ -1260,8 +1267,8 @@ static void gpencil_draw_exit (bContext *C, wmOperator *op) { tGPsdata *p= op->customdata; - /* clear edit flags */ - G.f &= ~G_GREASEPENCIL; + /* clear undo stack */ + gpencil_undo_finish(); /* restore cursor to indicate end of drawing */ WM_cursor_restore(CTX_wm_window(C)); @@ -1592,6 +1599,7 @@ static int gpencil_draw_invoke (bContext *C, wmOperator *op, wmEvent *event) //printf("\tGP - hotkey invoked... waiting for click-drag\n"); } + WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL, NULL); /* add a modal handler for this operator, so that we can then draw continuous strokes */ WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; @@ -1609,16 +1617,60 @@ static int gpencil_area_exists(bContext *C, ScrArea *satest) return 0; } +static tGPsdata *gpencil_stroke_begin(bContext *C, wmOperator *op) +{ + tGPsdata *p= op->customdata; + + /* we must check that we're still within the area that we're set up to work from + * otherwise we could crash (see bug #20586) + */ + if (CTX_wm_area(C) != p->sa) { + printf("\t\t\tGP - wrong area execution abort! \n"); + p->status= GP_STATUS_ERROR; + } + + /* free pointer used by previous stroke */ + if(p) + MEM_freeN(p); + + //printf("\t\tGP - start stroke \n"); + + /* we may need to set up paint env again if we're resuming */ + // XXX: watch it with the paintmode! in future, it'd be nice to allow changing paint-mode when in sketching-sessions + // XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support + + gpencil_draw_init(C, op); + + p= op->customdata; + + if(p->status != GP_STATUS_ERROR) + p->status= GP_STATUS_PAINTING; + + return op->customdata; +} + +static void gpencil_stroke_end(wmOperator *op) +{ + tGPsdata *p= op->customdata; + + gp_paint_cleanup(p); + + gpencil_undo_push(p->gpd); + + gp_session_cleanup(p); + + p->status= GP_STATUS_IDLING; + + p->gpd= NULL; + p->gpl= NULL; + p->gpf= NULL; +} + /* events handling during interactive drawing part of operator */ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) { tGPsdata *p= op->customdata; - //int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ - /* currently, grease pencil conflicts with such operators as undo and set object mode - which makes behavior of operator totally unpredictable and crash for some cases. - the only way to solve this proper is to ger rid of pointers to data which can - chage stored in operator custom data (sergey) */ - int estate = OPERATOR_RUNNING_MODAL; + int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ // if (event->type == NDOF_MOTION) // return OPERATOR_PASS_THROUGH; @@ -1652,11 +1704,13 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) if (GPENCIL_SKETCH_SESSIONS_ON(p->scene)) { /* end stroke only, and then wait to resume painting soon */ //printf("\t\tGP - end stroke only\n"); - gp_paint_cleanup(p); - p->status= GP_STATUS_IDLING; + gpencil_stroke_end(op); /* we've just entered idling state, so this event was processed (but no others yet) */ estate = OPERATOR_RUNNING_MODAL; + + /* stroke could be smoothed, send notifier to refresh screen */ + ED_region_tag_redraw(p->ar); } else { //printf("\t\tGP - end of stroke + op\n"); @@ -1664,35 +1718,19 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) estate = OPERATOR_FINISHED; } } - else { + else if (event->val == KM_PRESS) { /* not painting, so start stroke (this should be mouse-button down) */ - /* we must check that we're still within the area that we're set up to work from - * otherwise we could crash (see bug #20586) - */ - if (CTX_wm_area(C) != p->sa) { - //printf("\t\t\tGP - wrong area execution abort! \n"); - p->status= GP_STATUS_ERROR; + p= gpencil_stroke_begin(C, op); + + if (p->status == GP_STATUS_ERROR) { estate = OPERATOR_CANCELLED; } - else { - //printf("\t\tGP - start stroke \n"); - p->status= GP_STATUS_PAINTING; - - /* we may need to set up paint env again if we're resuming */ - // XXX: watch it with the paintmode! in future, it'd be nice to allow changing paint-mode when in sketching-sessions - // XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support - gp_paint_initstroke(p, p->paintmode); - - if (p->status == GP_STATUS_ERROR) { - estate = OPERATOR_CANCELLED; - } - } + } else { + p->status = GP_STATUS_IDLING; } } - - /* handle mode-specific events */ if (p->status == GP_STATUS_PAINTING) { /* handle painting mouse-movements? */ @@ -1704,7 +1742,7 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) /* finish painting operation if anything went wrong just now */ if (p->status == GP_STATUS_ERROR) { - //printf("\t\t\t\tGP - add error done! \n"); + printf("\t\t\t\tGP - add error done! \n"); estate = OPERATOR_CANCELLED; } else { @@ -1721,28 +1759,6 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) estate = OPERATOR_RUNNING_MODAL; } } - else if (p->status == GP_STATUS_IDLING) { - /* standard undo/redo shouldn't be allowed to execute or else it causes crashes, so catch it here */ - // FIXME: this is a hardcoded hotkey that can't be changed - // TODO: catch redo as well, but how? - if (event->type == ZKEY && event->val == KM_RELEASE) { - /* oskey = cmd key on macs as they seem to use cmd-z for undo as well? */ - if ((event->ctrl) || (event->oskey)) { - /* just delete last stroke, which will look like undo to the end user */ - //printf("caught attempted undo event... deleting last stroke \n"); - gpencil_frame_delete_laststroke(p->gpl, p->gpf); - /* undoing the last line can free p->gpf - * note, could do this in a bit more of an elegant way then a search but it at least prevents a crash */ - if(BLI_findindex(&p->gpl->frames, p->gpf) == -1) { - p->gpf= NULL; - } - - /* event handled, so force refresh */ - ED_region_tag_redraw(p->ar); /* just active area for now, since doing whole screen is too slow */ - estate = OPERATOR_RUNNING_MODAL; - } - } - } /* gpencil modal operator stores area, which can be removed while using it (like fullscreen) */ if(0==gpencil_area_exists(C, p->sa)) diff --git a/source/blender/editors/gpencil/gpencil_undo.c b/source/blender/editors/gpencil/gpencil_undo.c new file mode 100644 index 00000000000..1154975e3cc --- /dev/null +++ b/source/blender/editors/gpencil/gpencil_undo.c @@ -0,0 +1,168 @@ +/* + * $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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2011 Blender Foundation. + * All rights reserved. + * + * + * Contributor(s): Blender Foundation, + * Sergey Sharybin + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_gpencil_types.h" +#include "DNA_listBase.h" +#include "DNA_windowmanager_types.h" + +#include "BKE_context.h" +#include "BKE_gpencil.h" + +#include "BLI_listbase.h" + +#include "ED_gpencil.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "gpencil_intern.h" + +#define MAXUNDONAME 64 + +typedef struct bGPundonode { + struct bGPundonode *next, *prev; + + char name[MAXUNDONAME]; + struct bGPdata *gpd; +} bGPundonode; + +static ListBase undo_nodes = {NULL, NULL}; +static bGPundonode *cur_node = NULL; + +int ED_gpencil_session_active(void) +{ + return undo_nodes.first != NULL; +} + +int ED_undo_gpencil_step(bContext *C, int step, const char *name) +{ + bGPdata **gpd_ptr= NULL, *new_gpd= NULL; + + gpd_ptr= gpencil_data_get_pointers(C, NULL); + + if(step==1) { /* undo */ + //printf("\t\tGP - undo step\n"); + if(cur_node->prev) { + if(!name || strcmp(cur_node->name, name) == 0) { + cur_node= cur_node->prev; + new_gpd= cur_node->gpd; + } + } + } + else if (step==-1) { + //printf("\t\tGP - redo step\n"); + if(cur_node->next) { + if(!name || strcmp(cur_node->name, name) == 0) { + cur_node= cur_node->next; + new_gpd= cur_node->gpd; + } + } + } + + if(new_gpd) { + if(gpd_ptr) { + if(*gpd_ptr) { + bGPdata *gpd= *gpd_ptr; + bGPDlayer *gpl, *gpld; + + free_gpencil_layers(&gpd->layers); + + /* copy layers */ + gpd->layers.first= gpd->layers.last= NULL; + + for (gpl= new_gpd->layers.first; gpl; gpl= gpl->next) { + /* make a copy of source layer and its data */ + gpld= gpencil_layer_duplicate(gpl); + BLI_addtail(&gpd->layers, gpld); + } + } + } + } + + WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + +void gpencil_undo_init(bGPdata *gpd) +{ + gpencil_undo_push(gpd); +} + +void gpencil_undo_push(bGPdata *gpd) +{ + bGPundonode *undo_node; + + //printf("\t\tGP - undo push\n"); + + if(cur_node) { + /* remove all un-done nodes from stack */ + undo_node= cur_node->next; + + while(undo_node) { + bGPundonode *next_node= undo_node->next; + + free_gpencil_data(undo_node->gpd); + MEM_freeN(undo_node->gpd); + + BLI_freelinkN(&undo_nodes, undo_node); + + undo_node= next_node; + } + } + + /* create new undo node */ + undo_node= MEM_callocN(sizeof(bGPundonode), "gpencil undo node"); + undo_node->gpd= gpencil_data_duplicate(gpd); + + cur_node= undo_node; + + BLI_addtail(&undo_nodes, undo_node); +} + +void gpencil_undo_finish(void) +{ + bGPundonode *undo_node= undo_nodes.first; + + while(undo_node) { + free_gpencil_data(undo_node->gpd); + MEM_freeN(undo_node->gpd); + + undo_node= undo_node->next; + } + + BLI_freelistN(&undo_nodes); + + cur_node= NULL; +} diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index 07dcc959e32..bfd16487ae5 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -106,4 +106,8 @@ void paste_gpdata(void); void snap_gplayer_frames(struct bGPDlayer *gpl, short mode); void mirror_gplayer_frames(struct bGPDlayer *gpl, short mode); +/* ------------ Grease-Pencil Undo System ------------------ */ +int ED_gpencil_session_active(void); +int ED_undo_gpencil_step(struct bContext *C, int step, const char *name); + #endif /* ED_GPENCIL_H */ diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index a2381a208ef..c1aca61f795 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -54,6 +54,7 @@ #include "ED_armature.h" #include "ED_particle.h" #include "ED_curve.h" +#include "ED_gpencil.h" #include "ED_mball.h" #include "ED_mesh.h" #include "ED_object.h" @@ -126,6 +127,11 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) Object *obact= CTX_data_active_object(C); ScrArea *sa= CTX_wm_area(C); + /* grease pencil can be can be used in plenty of spaces, so check it first */ + if(ED_gpencil_session_active()) { + return ED_undo_gpencil_step(C, step, undoname); + } + if(sa && sa->spacetype==SPACE_IMAGE) { SpaceImage *sima= (SpaceImage *)sa->spacedata.first; -- cgit v1.2.3 From 82f7a5e3a25492eb58a0c0ec1933309c37d17e28 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Tue, 6 Sep 2011 08:28:06 +0000 Subject: Fix for #28517, group nodes losing all links from older files. The reason was that group nodes tried to reconstruct sockets from the template lists, which are empty. Now the verification function checks if there are any sockets in the template lists, which are always empty for group nodes. --- source/blender/nodes/intern/node_socket.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index 3ea34dd094a..aabaf5b86de 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -422,7 +422,11 @@ static void verify_socket_template_list(bNodeTree *ntree, bNode *node, int in_ou void node_verify_socket_templates(bNodeTree *ntree, bNode *node) { bNodeType *ntype= node->typeinfo; - if(ntype) { + /* XXX Small trick: don't try to match socket lists when there are no templates. + * This also prevents group node sockets from being removed, without the need to explicitly + * check the node type here. + */ + if(ntype && ((ntype->inputs && ntype->inputs[0].type>=0) || (ntype->outputs && ntype->outputs[0].type>=0))) { verify_socket_template_list(ntree, node, SOCK_IN, &node->inputs, ntype->inputs); verify_socket_template_list(ntree, node, SOCK_OUT, &node->outputs, ntype->outputs); } -- cgit v1.2.3 From 32287bebe82615b8500ef0196b7b780745147835 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 6 Sep 2011 08:30:17 +0000 Subject: New grease pencil mode: poly line drawing - It's like sketch mode for lines, but you're specifying line knots by clicking on position you want to add next knot. - View can be navigated between knots creation. - Holding LMB down and sliding mouse will lead to new segment preview so it can be created more accurate. Additional change: fixed GP->Bezier conversion. Last point used to be ignored in this operator. --- source/blender/editors/gpencil/gpencil_edit.c | 4 +- source/blender/editors/gpencil/gpencil_intern.h | 1 + source/blender/editors/gpencil/gpencil_ops.c | 3 + source/blender/editors/gpencil/gpencil_paint.c | 130 +++++++++++++++++++----- 4 files changed, 109 insertions(+), 29 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 9dc764b7aac..1cd8b1f05db 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -511,8 +511,8 @@ static void gp_stroke_to_bezier (bContext *C, bGPDlayer *gpl, bGPDstroke *gps, C copy_v3_v3(p3d_prev, p3d_cur); copy_v3_v3(p3d_cur, p3d_next); - if (i + 1 < tot) { - gp_strokepoint_convertcoords(C, gps, pt+1, p3d_next, subrect); + if (i + 2 < tot) { + gp_strokepoint_convertcoords(C, gps, pt + 2, p3d_next, subrect); } } diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h index db4315a8ca6..8000af54f53 100644 --- a/source/blender/editors/gpencil/gpencil_intern.h +++ b/source/blender/editors/gpencil/gpencil_intern.h @@ -49,6 +49,7 @@ typedef enum eGPencil_PaintModes { GP_PAINTMODE_DRAW = 0, GP_PAINTMODE_ERASER, GP_PAINTMODE_DRAW_STRAIGHT, + GP_PAINTMODE_DRAW_POLY } eGPencil_PaintModes; /* buttons editing --- */ diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c index e1e4c8d5457..150e0ba90e4 100644 --- a/source/blender/editors/gpencil/gpencil_ops.c +++ b/source/blender/editors/gpencil/gpencil_ops.c @@ -59,6 +59,9 @@ void ED_keymap_gpencil(wmKeyConfig *keyconf) /* draw - straight lines */ kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, DKEY); RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT); + /* draw - poly lines */ + kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", RIGHTMOUSE, KM_PRESS, KM_CTRL, DKEY); + RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_POLY); /* erase */ kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", RIGHTMOUSE, KM_PRESS, 0, DKEY); RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER); diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index df5fa65c980..460408c6269 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -124,6 +124,7 @@ enum { /* Runtime flags */ enum { GP_PAINTFLAG_FIRSTRUN = (1<<0), /* operator just started */ + GP_PAINTFLAG_STROKEADDED = (1<<1) /* stroke was already added during draw session */ }; /* ------ */ @@ -375,6 +376,43 @@ static short gp_stroke_addpoint (tGPsdata *p, const int mval[2], float pressure) else return GP_STROKEADD_NORMAL; } + else if (p->paintmode == GP_PAINTMODE_DRAW_POLY) { + /* get pointer to destination point */ + pt= (tGPspoint *)(gpd->sbuffer); + + /* store settings */ + pt->x= mval[0]; + pt->y= mval[1]; + pt->pressure= pressure; + + /* if there's stroke fir this poly line session add (or replace last) point + to stroke. This allows to draw lines more interactively (see new segment + during mouse slide, i.e.) */ + if (p->flags & GP_PAINTFLAG_STROKEADDED) { + bGPDstroke *gps= p->gpf->strokes.last; + bGPDspoint *pts; + + /* first time point is adding to temporary buffer -- need to allocate new point in stroke */ + if (gpd->sbuffer_size == 0) { + gps->points = MEM_reallocN(gps->points, sizeof(bGPDspoint)*(gps->totpoints+1)); + gps->totpoints++; + } + + pts = &gps->points[gps->totpoints-1]; + + /* convert screen-coordinates to appropriate coordinates (and store them) */ + gp_stroke_convertcoords(p, &pt->x, &pts->x, NULL); + + /* copy pressure */ + pts->pressure= pt->pressure; + } + + /* increment counters */ + if (gpd->sbuffer_size == 0) + gpd->sbuffer_size++; + + return GP_STROKEADD_NORMAL; + } /* return invalid state for now... */ return GP_STROKEADD_INVALID; @@ -395,7 +433,7 @@ static void gp_stroke_smooth (tGPsdata *p) int i=0, cmx=gpd->sbuffer_size; /* only smooth if smoothing is enabled, and we're not doing a straight line */ - if (!(U.gp_settings & GP_PAINT_DOSMOOTH) || (p->paintmode == GP_PAINTMODE_DRAW_STRAIGHT)) + if (!(U.gp_settings & GP_PAINT_DOSMOOTH) || ELEM(p->paintmode, GP_PAINTMODE_DRAW_STRAIGHT, GP_PAINTMODE_DRAW_POLY)) return; /* don't try if less than 2 points in buffer */ @@ -527,17 +565,28 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) return; } + /* special case for poly line -- for already added stroke during session + coordinates are getting added to stroke immediatelly to allow more + interactive behavior */ + if (p->paintmode == GP_PAINTMODE_DRAW_POLY) { + if (p->flags & GP_PAINTFLAG_STROKEADDED) + return; + } + /* allocate memory for a new stroke */ gps= MEM_callocN(sizeof(bGPDstroke), "gp_stroke"); - /* allocate enough memory for a continuous array for storage points */ - pt= gps->points= MEM_callocN(sizeof(bGPDspoint)*totelem, "gp_stroke_points"); - /* copy appropriate settings for stroke */ gps->totpoints= totelem; gps->thickness= p->gpl->thickness; gps->flag= gpd->sbuffer_sflag; + /* allocate enough memory for a continuous array for storage points */ + gps->points= MEM_callocN(sizeof(bGPDspoint)*gps->totpoints, "gp_stroke_points"); + + /* set pointer to first non-initialized point */ + pt= gps->points + (gps->totpoints - totelem); + /* copy points from the buffer to the stroke */ if (p->paintmode == GP_PAINTMODE_DRAW_STRAIGHT) { /* straight lines only -> only endpoints */ @@ -565,6 +614,16 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) pt->pressure= ptc->pressure; } } + else if (p->paintmode == GP_PAINTMODE_DRAW_POLY) { + /* first point */ + ptc= gpd->sbuffer; + + /* convert screen-coordinates to appropriate coordinates (and store them) */ + gp_stroke_convertcoords(p, &ptc->x, &pt->x, NULL); + + /* copy pressure */ + pt->pressure= ptc->pressure; + } else { float *depth_arr= NULL; @@ -643,6 +702,8 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) MEM_freeN(depth_arr); } + p->flags |= GP_PAINTFLAG_STROKEADDED; + /* add stroke to frame */ BLI_addtail(&p->gpf->strokes, gps); } @@ -891,8 +952,10 @@ static void gp_session_validatebuffer (tGPsdata *p) bGPdata *gpd= p->gpd; /* clear memory of buffer (or allocate it if starting a new session) */ - if (gpd->sbuffer) + if (gpd->sbuffer) { + //printf("\t\tGP - reset sbuffer\n"); memset(gpd->sbuffer, 0, sizeof(tGPspoint)*GP_STROKE_BUFFER_MAX); + } else { //printf("\t\tGP - allocate sbuffer\n"); gpd->sbuffer= MEM_callocN(sizeof(tGPspoint)*GP_STROKE_BUFFER_MAX, "gp_session_strokebuffer"); @@ -905,24 +968,21 @@ static void gp_session_validatebuffer (tGPsdata *p) gpd->sbuffer_sflag= 0; } -/* init new painting session */ -static tGPsdata *gp_session_initpaint (bContext *C) +/* (re)init new painting data */ +static int gp_session_initdata (bContext *C, tGPsdata *p) { - tGPsdata *p = NULL; bGPdata **gpd_ptr = NULL; ScrArea *curarea= CTX_wm_area(C); ARegion *ar= CTX_wm_region(C); /* make sure the active view (at the starting time) is a 3d-view */ if (curarea == NULL) { + p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: No active view for painting \n"); - return NULL; + return 0; } - /* create new context data */ - p= MEM_callocN(sizeof(tGPsdata), "GPencil Drawing Data"); - /* pass on current scene and window */ p->scene= CTX_data_scene(C); p->win= CTX_wm_window(C); @@ -944,7 +1004,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: 3D-View active region doesn't have any region data, so cannot be drawable \n"); - return p; + return 0; } #if 0 // XXX will this sort of antiquated stuff be restored? @@ -953,7 +1013,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: In active view, Grease Pencil not shown \n"); - return p; + return 0; } #endif } @@ -974,7 +1034,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: In active view, Grease Pencil not shown \n"); - return; + return 0; } #endif } @@ -994,13 +1054,13 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: In active view (sequencer), active mode doesn't support Grease Pencil \n"); - return; + return 0; } if ((sseq->flag & SEQ_DRAW_GPENCIL)==0) { p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: In active view, Grease Pencil not shown \n"); - return; + return 0; } } break; @@ -1021,7 +1081,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: In active view, Grease Pencil not shown \n"); - return p; + return 0; } #endif } @@ -1033,7 +1093,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: Active view not appropriate for Grease Pencil drawing \n"); - return p; + return 0; } break; } @@ -1044,7 +1104,7 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->status= GP_STATUS_ERROR; if (G.f & G_DEBUG) printf("Error: Current context doesn't allow for any Grease Pencil data \n"); - return p; + return 0; } else { /* if no existing GPencil block exists, add one */ @@ -1067,6 +1127,19 @@ static tGPsdata *gp_session_initpaint (bContext *C) p->im2d_settings.sizex= 1; p->im2d_settings.sizey= 1; #endif + + return 1; +} + +/* init new painting session */ +static tGPsdata *gp_session_initpaint (bContext *C) +{ + tGPsdata *p = NULL; + + /* create new context data */ + p= MEM_callocN(sizeof(tGPsdata), "GPencil Drawing Data"); + + gp_session_initdata(C, p); /* return context data for running paint operator */ return p; @@ -1629,17 +1702,14 @@ static tGPsdata *gpencil_stroke_begin(bContext *C, wmOperator *op) p->status= GP_STATUS_ERROR; } - /* free pointer used by previous stroke */ - if(p) - MEM_freeN(p); - //printf("\t\tGP - start stroke \n"); /* we may need to set up paint env again if we're resuming */ // XXX: watch it with the paintmode! in future, it'd be nice to allow changing paint-mode when in sketching-sessions // XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support - gpencil_draw_init(C, op); + if (gp_session_initdata(C, p)) + gp_paint_initstroke(p, p->paintmode); p= op->customdata; @@ -1698,10 +1768,15 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) if (ELEM(event->type, LEFTMOUSE, RIGHTMOUSE)) { /* if painting, end stroke */ if (p->status == GP_STATUS_PAINTING) { + int sketch= 0; /* basically, this should be mouse-button up = end stroke * BUT what happens next depends on whether we 'painting sessions' is enabled */ - if (GPENCIL_SKETCH_SESSIONS_ON(p->scene)) { + sketch|= GPENCIL_SKETCH_SESSIONS_ON(p->scene); + /* polyline drawig is also 'sketching' -- all knots should be added during one session */ + sketch|= p->paintmode == GP_PAINTMODE_DRAW_POLY; + + if (sketch) { /* end stroke only, and then wait to resume painting soon */ //printf("\t\tGP - end stroke only\n"); gpencil_stroke_end(op); @@ -1710,7 +1785,7 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) estate = OPERATOR_RUNNING_MODAL; /* stroke could be smoothed, send notifier to refresh screen */ - ED_region_tag_redraw(p->ar); + WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); } else { //printf("\t\tGP - end of stroke + op\n"); @@ -1794,6 +1869,7 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) static EnumPropertyItem prop_gpencil_drawmodes[] = { {GP_PAINTMODE_DRAW, "DRAW", 0, "Draw Freehand", ""}, {GP_PAINTMODE_DRAW_STRAIGHT, "DRAW_STRAIGHT", 0, "Draw Straight Lines", ""}, + {GP_PAINTMODE_DRAW_POLY, "DRAW_POLY", 0, "Dtaw Poly Line", ""}, {GP_PAINTMODE_ERASER, "ERASER", 0, "Eraser", ""}, {0, NULL, 0, NULL, NULL} }; -- cgit v1.2.3 From 7062788017cfb2841596d15f7c37612312692195 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 6 Sep 2011 10:49:55 +0000 Subject: texture evaluation function (like we had in 2.4x api), requested by Lee. eg: red, green, blue, intensity = texture.evaluate(vec) --- source/blender/makesrna/intern/rna_internal.h | 1 + source/blender/makesrna/intern/rna_texture.c | 2 + source/blender/makesrna/intern/rna_texture_api.c | 54 ++++++++++++++++++------ 3 files changed, 45 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 9e98f166875..78b8c67d92c 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -261,6 +261,7 @@ void RNA_api_wm(struct StructRNA *srna); void RNA_api_sensor(struct StructRNA *srna); void RNA_api_controller(struct StructRNA *srna); void RNA_api_actuator(struct StructRNA *srna); +void RNA_api_texture(struct StructRNA *srna); void RNA_api_environment_map(struct StructRNA *srna); /* main collection functions */ diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 503212201c4..890be76c49a 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -1820,6 +1820,8 @@ static void rna_def_texture(BlenderRNA *brna) rna_def_texture_pointdensity(brna); rna_def_texture_voxeldata(brna); /* XXX add more types here .. */ + + RNA_api_texture(srna); } void RNA_def_texture(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_texture_api.c b/source/blender/makesrna/intern/rna_texture_api.c index 8d4b73f1f0c..8c63d5da8fd 100644 --- a/source/blender/makesrna/intern/rna_texture_api.c +++ b/source/blender/makesrna/intern/rna_texture_api.c @@ -43,6 +43,7 @@ #include "BKE_context.h" #include "BKE_global.h" #include "RE_pipeline.h" +#include "RE_shader_ext.h" void save_envmap(struct EnvMap *env, bContext *C, ReportList *reports, const char* filepath, struct Scene *scene, float layout[12]) { @@ -67,30 +68,59 @@ void clear_envmap(struct EnvMap *env, bContext *C) } } +void texture_evaluate(struct Tex *tex, float value[3], float color_r[3]) +{ + TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL}; + multitex_ext(tex, value, NULL, NULL, 1, &texres); + + color_r[0] = texres.tr; + color_r[1] = texres.tg; + color_r[2] = texres.tb; + color_r[3] = texres.tin; +} + #else +void RNA_api_texture(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "evaluate", "texture_evaluate"); + RNA_def_function_ui_description(func, "Evaluate the texture at the coordinates given"); + + parm= RNA_def_float_vector(func, "value", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_REQUIRED); + + /* return location and normal */ + parm= RNA_def_float_vector(func, "result", 4, NULL, -FLT_MAX, FLT_MAX, "Result", NULL, -1e4, 1e4); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_output(func, parm); + +} + void RNA_api_environment_map(StructRNA *srna) { FunctionRNA *func; PropertyRNA *parm; - + static const float default_layout[] = { 0,0, 1,0, 2,0, 0,1, 1,1, 2,1 }; - + func= RNA_def_function(srna, "clear", "clear_envmap"); - RNA_def_function_ui_description(func, "Discard the environment map and free it from memory."); - RNA_def_function_flag(func, FUNC_USE_CONTEXT); + RNA_def_function_ui_description(func, "Discard the environment map and free it from memory."); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); func= RNA_def_function(srna,"save", "save_envmap"); - RNA_def_function_ui_description(func, "Save the environment map to disc using the scene render settings."); - RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); - - parm= RNA_def_string_file_name(func,"filepath","",FILE_MAX,"File path","Location of the output file"); - RNA_def_property_flag(parm, PROP_REQUIRED); - - RNA_def_pointer(func, "scene", "Scene", "", "Overrides the scene from which image parameters are taken."); + RNA_def_function_ui_description(func, "Save the environment map to disc using the scene render settings."); + RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); + + parm= RNA_def_string_file_name(func,"filepath","",FILE_MAX,"File path","Location of the output file"); + RNA_def_property_flag(parm, PROP_REQUIRED); + + RNA_def_pointer(func, "scene", "Scene", "", "Overrides the scene from which image parameters are taken."); - parm = RNA_def_float_array(func, "layout", 12, default_layout, 0.0f, 0.0f, "File layout", "Flat array describing the X,Y position of each cube face in the output image, where 1 is the size of a face. Order is [+Z -Z +Y -X -Y +X]. Use -1 to skip a face.", 0.0f, 0.0f); + parm = RNA_def_float_array(func, "layout", 12, default_layout, 0.0f, 0.0f, "File layout", "Flat array describing the X,Y position of each cube face in the output image, where 1 is the size of a face. Order is [+Z -Z +Y -X -Y +X]. Use -1 to skip a face.", 0.0f, 0.0f); } #endif -- cgit v1.2.3 From aabd702dbdbba5af116f37c401f6a17f0ac714ca Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 6 Sep 2011 11:17:29 +0000 Subject: fix link issues with MinGW - a substitute declaration(correctByteOrder) for itoln that was not present in MinGW was being used. Duplicated the declaration from (tried including but gave some errors) and added the appropriate link library, wsock32, according to MinGW documentation. --- source/blender/blenloader/BLO_sys_types.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h index 2114fc34bf1..4b3902dca43 100644 --- a/source/blender/blenloader/BLO_sys_types.h +++ b/source/blender/blenloader/BLO_sys_types.h @@ -93,7 +93,8 @@ typedef unsigned long uintptr_t; #include #elif defined(FREE_WINDOWS) - +/* define htoln here, there must be a syntax error in winsock2.h in MinGW */ +unsigned long __attribute__((__stdcall__)) htonl(unsigned long); #include #else @@ -105,8 +106,14 @@ typedef unsigned long uintptr_t; #ifdef _WIN32 +#ifndef FREE_WINDOWS +#ifndef htonl #define htonl(x) correctByteOrder(x) +#endif +#ifndef ntohl #define ntohl(x) correctByteOrder(x) +#endif +#endif #elif defined (__FreeBSD__) || defined (__OpenBSD__) #include #elif defined (__APPLE__) -- cgit v1.2.3 From c6002873fa5b967ce30b9fc827fb6abc0931ef3c Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Tue, 6 Sep 2011 11:38:44 +0000 Subject: Backward compatibility fix for SOCK_DYNAMICS flag on group sockets. This is currently only needed for displaying the up/down buttons of group sockets. All regular group sockets should have this flag to indicate they are added by the user. More complex "group-type" trees may use non-dynamic sockets in the future for sockets that are not supposed to be manipulated. --- source/blender/blenloader/intern/readfile.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 355fc14705a..66e38f1c5f8 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -7015,6 +7015,15 @@ static void do_versions_nodetree_default_value(bNodeTree *ntree) do_versions_socket_default_value(sock); } +static void do_versions_nodetree_dynamic_sockets(bNodeTree *ntree) +{ + bNodeSocket *sock; + for (sock=ntree->inputs.first; sock; sock=sock->next) + sock->flag |= SOCK_DYNAMIC; + for (sock=ntree->outputs.first; sock; sock=sock->next) + sock->flag |= SOCK_DYNAMIC; +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -11972,6 +11981,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main) tex->nodetree->update |= NTREE_UPDATE; } } + + /* add SOCK_DYNAMIC flag to existing group sockets */ + { + bNodeTree *ntree; + /* only need to do this for trees in main, local trees are not used as groups */ + for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) { + do_versions_nodetree_dynamic_sockets(ntree); + ntree->update |= NTREE_UPDATE; + } + } } /* put compatibility code here until next subversion bump */ -- cgit v1.2.3 From 71abf218f0dcc8e2b038de3672a8332fd3e544af Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Tue, 6 Sep 2011 11:42:20 +0000 Subject: Fix for wrong offset of the input socket column in group node tree display. --- source/blender/editors/space_node/drawnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 890b04dce91..0d2ec7c646f 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -637,7 +637,7 @@ static void draw_group_socket(const bContext *C, SpaceNode *snode, bNodeTree *nt float arrowbutw= 0.8f*UI_UNIT_X; /* layout stuff for buttons on group left frame */ float colw= 0.6f*node_group_frame; - float col1= 6; + float col1= 6 - node_group_frame; float col2= col1 + colw+6; float col3= node_group_frame - arrowbutw - 6; /* layout stuff for buttons on group right frame */ -- cgit v1.2.3 From 0c15f834e49b2e1c43c0e06f1fd8a7e7f5faa83f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 6 Sep 2011 14:02:28 +0000 Subject: Fix for poly line grease pencil and surface drawing. --- source/blender/editors/gpencil/gpencil_paint.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 460408c6269..a23f2064a9e 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -400,6 +400,15 @@ static short gp_stroke_addpoint (tGPsdata *p, const int mval[2], float pressure) pts = &gps->points[gps->totpoints-1]; + /* special case for poly lines: normally, depth is needed only when creating new stroke from buffer, + but poly lines are converting to stroke instantly, so initialize depth buffer before converting coordinates */ + if (gpencil_project_check(p)) { + View3D *v3d= p->sa->spacedata.first; + + view3d_region_operator_needs_opengl(p->win, p->ar); + ED_view3d_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0); + } + /* convert screen-coordinates to appropriate coordinates (and store them) */ gp_stroke_convertcoords(p, &pt->x, &pts->x, NULL); -- cgit v1.2.3 From d4ce95d1dc9103c018b17f42872d231cece33383 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 6 Sep 2011 14:59:55 +0000 Subject: Fix #28524: Push/Pull Assert when using Operator Panel to Alter Distance value Some transform operators (like push/pull, shrink/fatten, to sphere and so) were creating "value" as single scalar value. This used to confuse RNA_float_get_array used in initTransform. Use RNA_float_get_array for array values and RNA_float_get for scalar value in transform initi function. --- source/blender/editors/transform/transform.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 09507194969..1796bd4e928 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1678,7 +1678,14 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int if (RNA_property_is_set(op->ptr, "value")) { float values[4]= {0}; /* incase value isn't length 4, avoid uninitialized memory */ - RNA_float_get_array(op->ptr, "value", values); + PropertyRNA *prop= RNA_struct_find_property(op->ptr, "value"); + + if(RNA_property_array_check(prop)) { + RNA_float_get_array(op->ptr, "value", values); + } else { + values[0]= RNA_float_get(op->ptr, "value"); + } + QUATCOPY(t->values, values); QUATCOPY(t->auto_values, values); t->flag |= T_AUTOVALUES; -- cgit v1.2.3 From e79d16270bc29f44431689fdb1b362b1866ab8c3 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 6 Sep 2011 15:44:44 +0000 Subject: Ambient Occlusion: * Increase max. samples from 32 to 128. --- source/blender/makesrna/intern/rna_world.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 72b54dce473..11ec327c306 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -360,7 +360,7 @@ static void rna_def_lighting(BlenderRNA *brna) prop= RNA_def_property(srna, "samples", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "aosamp"); - RNA_def_property_range(prop, 1, 32); + RNA_def_property_range(prop, 1, 128); RNA_def_property_ui_text(prop, "Samples", "Amount of ray samples. Higher values give smoother results and longer rendering times"); RNA_def_property_update(prop, 0, "rna_World_update"); -- cgit v1.2.3 From 884fc84793be1c5fdd6643ad267331381f8e1c6b Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Tue, 6 Sep 2011 16:32:51 +0000 Subject: Fix for multiple parallel group node executions. This would previously break because begin/end functions for each tree type still have some checks of the ntree->execdata pointer in them, despite the intended use of execdata instances instead of trees themselves for execution data storage. This is an artifact of the old execution system that required these checks to be made in the functions to avoid multiple execution of top-level trees. Now these functions take an additional argument, so group nodes can prevent them from setting and checking the nodetree->execdata pointers. --- source/blender/blenkernel/BKE_node.h | 12 +++--- source/blender/blenkernel/intern/material.c | 4 +- source/blender/blenkernel/intern/node.c | 6 +-- source/blender/blenkernel/intern/texture.c | 2 +- source/blender/editors/sculpt_paint/paint_image.c | 4 +- source/blender/editors/sculpt_paint/sculpt.c | 4 +- .../blender/nodes/composite/node_composite_tree.c | 47 ++++++++++++++-------- .../nodes/composite/nodes/node_composite_common.c | 6 +-- source/blender/nodes/shader/node_shader_tree.c | 44 ++++++++++++-------- .../nodes/shader/nodes/node_shader_common.c | 4 +- source/blender/nodes/texture/node_texture_tree.c | 40 +++++++++++------- .../nodes/texture/nodes/node_texture_common.c | 4 +- .../blender/render/intern/source/render_texture.c | 4 +- 13 files changed, 110 insertions(+), 71 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 7207fb7d0fb..1de3c295f4d 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -466,8 +466,8 @@ struct ShadeResult; /* API */ -struct bNodeTreeExec *ntreeShaderBeginExecTree(struct bNodeTree *ntree); -void ntreeShaderEndExecTree(struct bNodeTreeExec *exec); +struct bNodeTreeExec *ntreeShaderBeginExecTree(struct bNodeTree *ntree, int use_tree_data); +void ntreeShaderEndExecTree(struct bNodeTreeExec *exec, int use_tree_data); void ntreeShaderExecTree(struct bNodeTree *ntree, struct ShadeInput *shi, struct ShadeResult *shr); void ntreeShaderGetTexcoMode(struct bNodeTree *ntree, int osa, short *texco, int *mode); void nodeShaderSynchronizeID(struct bNode *node, int copyto); @@ -594,8 +594,8 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat); /* API */ struct CompBuf; -struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree); -void ntreeCompositEndExecTree(struct bNodeTreeExec *exec); +struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree, int use_tree_data); +void ntreeCompositEndExecTree(struct bNodeTreeExec *exec, int use_tree_data); void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews); void ntreeCompositTagRender(struct Scene *sce); int ntreeCompositTagAnimated(struct bNodeTree *ntree); @@ -642,8 +642,8 @@ void ntreeTexSetPreviewFlag(int); void ntreeTexCheckCyclics(struct bNodeTree *ntree); char* ntreeTexOutputMenu(struct bNodeTree *ntree); -struct bNodeTreeExec *ntreeTexBeginExecTree(struct bNodeTree *ntree); -void ntreeTexEndExecTree(struct bNodeTreeExec *exec); +struct bNodeTreeExec *ntreeTexBeginExecTree(struct bNodeTree *ntree, int use_tree_data); +void ntreeTexEndExecTree(struct bNodeTreeExec *exec, int use_tree_data); int ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, int osatex, short thread, struct Tex *tex, short which_output, int cfra, int preview, struct ShadeInput *shi, struct MTex *mtex); diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 36631d5af90..aab8e1abbea 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -926,7 +926,7 @@ void init_render_material(Material *mat, int r_mode, float *amb) init_render_nodetree(mat->nodetree, mat, r_mode, amb); if (!mat->nodetree->execdata) - mat->nodetree->execdata = ntreeShaderBeginExecTree(mat->nodetree); + mat->nodetree->execdata = ntreeShaderBeginExecTree(mat->nodetree, 1); } } @@ -960,7 +960,7 @@ void end_render_material(Material *mat) { if(mat && mat->nodetree && mat->use_nodes) { if (mat->nodetree->execdata) - ntreeShaderEndExecTree(mat->nodetree->execdata); + ntreeShaderEndExecTree(mat->nodetree->execdata, 1); } } diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 481893b86a8..cd1a6e61151 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -897,13 +897,13 @@ void ntreeFreeTree(bNodeTree *ntree) if (ntree->execdata) { switch (ntree->type) { case NTREE_COMPOSIT: - ntreeCompositEndExecTree(ntree->execdata); + ntreeCompositEndExecTree(ntree->execdata, 1); break; case NTREE_SHADER: - ntreeShaderEndExecTree(ntree->execdata); + ntreeShaderEndExecTree(ntree->execdata, 1); break; case NTREE_TEXTURE: - ntreeTexEndExecTree(ntree->execdata); + ntreeTexEndExecTree(ntree->execdata, 1); break; } } diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 6119a855366..38165182d83 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -767,7 +767,7 @@ Tex *copy_texture(Tex *tex) if(tex->nodetree) { if (tex->nodetree->execdata) { - ntreeTexEndExecTree(tex->nodetree->execdata); + ntreeTexEndExecTree(tex->nodetree->execdata, 1); } texn->nodetree= ntreeCopyTree(tex->nodetree); } diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 9539706468f..79a3251cdf1 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -4664,7 +4664,7 @@ static void paint_brush_init_tex(Brush *brush) if(brush) { MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeTexBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ } } @@ -4806,7 +4806,7 @@ static void paint_brush_exit_tex(Brush *brush) if(brush) { MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeTexEndExecTree(mtex->tex->nodetree->execdata); + ntreeTexEndExecTree(mtex->tex->nodetree->execdata, 1); } } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index bf34a3b8c9f..ced3dd00a9c 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -3274,7 +3274,7 @@ static void sculpt_brush_init_tex(Sculpt *sd, SculptSession *ss) /* init mtex nodes */ if(mtex->tex && mtex->tex->nodetree) - ntreeTexBeginExecTree(mtex->tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ /* TODO: Shouldn't really have to do this at the start of every stroke, but sculpt would need some sort of notification when @@ -3455,7 +3455,7 @@ static void sculpt_brush_exit_tex(Sculpt *sd) MTex *mtex= &brush->mtex; if(mtex->tex && mtex->tex->nodetree) - ntreeTexEndExecTree(mtex->tex->nodetree->execdata); + ntreeTexEndExecTree(mtex->tex->nodetree->execdata, 1); } static void sculpt_stroke_done(bContext *C, struct PaintStroke *UNUSED(stroke)) diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index 0ea62b0aa5f..4fc5e23e26a 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -200,17 +200,22 @@ bNodeTreeType ntreeType_Composite = { }; -struct bNodeTreeExec *ntreeCompositBeginExecTree(bNodeTree *ntree) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +struct bNodeTreeExec *ntreeCompositBeginExecTree(bNodeTree *ntree, int use_tree_data) { bNodeTreeExec *exec; bNode *node; bNodeSocket *sock; - /* XXX hack: prevent exec data from being generated twice. - * this should be handled by the renderer! - */ - if (ntree->execdata) - return ntree->execdata; + if (use_tree_data) { + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + } /* ensures only a single output node is enabled */ ntreeSetOutput(ntree); @@ -236,15 +241,20 @@ struct bNodeTreeExec *ntreeCompositBeginExecTree(bNodeTree *ntree) } } - /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + if (use_tree_data) { + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, * which only store the ntree pointer. Should be fixed at some point! */ - ntree->execdata = exec; + ntree->execdata = exec; + } return exec; } -void ntreeCompositEndExecTree(bNodeTreeExec *exec) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +void ntreeCompositEndExecTree(bNodeTreeExec *exec, int use_tree_data) { if(exec) { bNodeTree *ntree= exec->nodetree; @@ -269,8 +279,10 @@ void ntreeCompositEndExecTree(bNodeTreeExec *exec) ntree_exec_end(exec); - /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ - ntree->execdata = NULL; + if (use_tree_data) { + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } } } @@ -495,10 +507,10 @@ static void ntree_composite_texnode(bNodeTree *ntree, int init) /* has internal flag to detect it only does it once */ if(init) { if (!tex->nodetree->execdata) - tex->nodetree->execdata = ntreeTexBeginExecTree(tex->nodetree); + tex->nodetree->execdata = ntreeTexBeginExecTree(tex->nodetree, 1); } else - ntreeTexEndExecTree(tex->nodetree->execdata); + ntreeTexEndExecTree(tex->nodetree->execdata, 1); tex->nodetree->execdata = NULL; } } @@ -521,8 +533,10 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) if(do_preview) ntreeInitPreview(ntree, 0, 0); - if (!ntree->execdata) - exec = ntreeCompositBeginExecTree(ntree); + if (!ntree->execdata) { + /* XXX this is the top-level tree, so we use the ntree->execdata pointer. */ + exec = ntreeCompositBeginExecTree(ntree, 1); + } ntree_composite_texnode(ntree, 1); /* prevent unlucky accidents */ @@ -592,7 +606,8 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) BLI_end_threads(&threads); - ntreeCompositEndExecTree(exec); + /* XXX top-level tree uses the ntree->execdata pointer */ + ntreeCompositEndExecTree(exec, 1); } /* *********************************************** */ diff --git a/source/blender/nodes/composite/nodes/node_composite_common.c b/source/blender/nodes/composite/nodes/node_composite_common.c index fbff8198dde..8067f7e92be 100644 --- a/source/blender/nodes/composite/nodes/node_composite_common.c +++ b/source/blender/nodes/composite/nodes/node_composite_common.c @@ -122,7 +122,7 @@ static void *group_initexec(bNode *node) bNodeStack *ns; /* initialize the internal node tree execution */ - exec = ntreeCompositBeginExecTree(ngroup); + exec = ntreeCompositBeginExecTree(ngroup, 0); /* tag group outputs as external to prevent freeing */ for (sock=ngroup->outputs.first; sock; sock=sock->next) { @@ -135,11 +135,11 @@ static void *group_initexec(bNode *node) return exec; } -static void group_freeexec(bNode *UNUSED(node), void *nodedata) +static void group_freeexec(bNode *node, void *nodedata) { bNodeTreeExec *gexec= (bNodeTreeExec*)nodedata; - ntreeCompositEndExecTree(gexec); + ntreeCompositEndExecTree(gexec, 0); } /* Copy inputs to the internal stack. diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index 8cb1ebeb15f..642e4be10d7 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -108,11 +108,11 @@ void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) bNodeTreeExec *exec; if(!ntree->execdata) - exec = ntreeShaderBeginExecTree(ntree); + exec = ntreeShaderBeginExecTree(ntree, 1); ntreeExecGPUNodes(exec, mat, 1); - ntreeShaderEndExecTree(exec); + ntreeShaderEndExecTree(exec, 1); } /* **************** call to switch lamploop for material node ************ */ @@ -125,16 +125,21 @@ void set_node_shader_lamp_loop(void (*lamp_loop_func)(ShadeInput *, ShadeResult } -bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree, int use_tree_data) { bNodeTreeExec *exec; bNode *node; - /* XXX hack: prevent exec data from being generated twice. - * this should be handled by the renderer! - */ - if (ntree->execdata) - return ntree->execdata; + if (use_tree_data) { + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + } /* ensures only a single output node is enabled */ ntreeSetOutput(ntree); @@ -148,15 +153,20 @@ bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree) for(node= exec->nodetree->nodes.first; node; node= node->next) node->need_exec= 1; - /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, - * which only store the ntree pointer. Should be fixed at some point! - */ - ntree->execdata = exec; + if (use_tree_data) { + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + * which only store the ntree pointer. Should be fixed at some point! + */ + ntree->execdata = exec; + } return exec; } -void ntreeShaderEndExecTree(bNodeTreeExec *exec) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +void ntreeShaderEndExecTree(bNodeTreeExec *exec, int use_tree_data) { if(exec) { bNodeTree *ntree= exec->nodetree; @@ -176,8 +186,10 @@ void ntreeShaderEndExecTree(bNodeTreeExec *exec) ntree_exec_end(exec); - /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ - ntree->execdata = NULL; + if (use_tree_data) { + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } } } @@ -199,7 +211,7 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) memset(shr, 0, sizeof(ShadeResult)); if (!exec) - exec = ntree->execdata = ntreeShaderBeginExecTree(exec->nodetree); + exec = ntree->execdata = ntreeShaderBeginExecTree(exec->nodetree, 1); nts= ntreeGetThreadStack(exec, shi->thread); ntreeExecThreadNodes(exec, nts, &scd, shi->thread); diff --git a/source/blender/nodes/shader/nodes/node_shader_common.c b/source/blender/nodes/shader/nodes/node_shader_common.c index aa8e8241bf8..2dd15ab1e99 100644 --- a/source/blender/nodes/shader/nodes/node_shader_common.c +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -76,7 +76,7 @@ static void *group_initexec(bNode *node) bNodeTreeExec *exec; /* initialize the internal node tree execution */ - exec = ntreeShaderBeginExecTree(ngroup); + exec = ntreeShaderBeginExecTree(ngroup, 0); return exec; } @@ -85,7 +85,7 @@ static void group_freeexec(bNode *UNUSED(node), void *nodedata) { bNodeTreeExec*gexec= (bNodeTreeExec*)nodedata; - ntreeShaderEndExecTree(gexec); + ntreeShaderEndExecTree(gexec, 0); } /* Copy inputs to the internal stack. diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 3ea15a316ab..603aa7ceb77 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -121,16 +121,21 @@ int ntreeTexTagAnimated(bNodeTree *ntree) return 0; } -bNodeTreeExec *ntreeTexBeginExecTree(bNodeTree *ntree) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +bNodeTreeExec *ntreeTexBeginExecTree(bNodeTree *ntree, int use_tree_data) { bNodeTreeExec *exec; bNode *node; - /* XXX hack: prevent exec data from being generated twice. - * this should be handled by the renderer! - */ - if (ntree->execdata) - return ntree->execdata; + if (use_tree_data) { + /* XXX hack: prevent exec data from being generated twice. + * this should be handled by the renderer! + */ + if (ntree->execdata) + return ntree->execdata; + } /* common base initialization */ exec = ntree_exec_begin(ntree); @@ -141,10 +146,12 @@ bNodeTreeExec *ntreeTexBeginExecTree(bNodeTree *ntree) for(node= exec->nodetree->nodes.first; node; node= node->next) node->need_exec= 1; - /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, - * which only store the ntree pointer. Should be fixed at some point! - */ - ntree->execdata = exec; + if (use_tree_data) { + /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes, + * which only store the ntree pointer. Should be fixed at some point! + */ + ntree->execdata = exec; + } return exec; } @@ -163,7 +170,10 @@ static void tex_free_delegates(bNodeTreeExec *exec) MEM_freeN(ns->data); } -void ntreeTexEndExecTree(bNodeTreeExec *exec) +/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes. + * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees. + */ +void ntreeTexEndExecTree(bNodeTreeExec *exec, int use_tree_data) { if(exec) { bNodeTree *ntree= exec->nodetree; @@ -185,8 +195,10 @@ void ntreeTexEndExecTree(bNodeTreeExec *exec) ntree_exec_end(exec); - /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ - ntree->execdata = NULL; + if (use_tree_data) { + /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ + ntree->execdata = NULL; + } } } @@ -223,7 +235,7 @@ int ntreeTexExecTree( data.shi= shi; if (!exec) - exec = ntreeTexBeginExecTree(nodes); + exec = ntreeTexBeginExecTree(nodes, 1); nts= ntreeGetThreadStack(exec, thread); ntreeExecThreadNodes(exec, nts, &data, thread); diff --git a/source/blender/nodes/texture/nodes/node_texture_common.c b/source/blender/nodes/texture/nodes/node_texture_common.c index afb24226416..1b46b830909 100644 --- a/source/blender/nodes/texture/nodes/node_texture_common.c +++ b/source/blender/nodes/texture/nodes/node_texture_common.c @@ -61,7 +61,7 @@ static void *group_initexec(bNode *node) void *exec; /* initialize the internal node tree execution */ - exec = ntreeTexBeginExecTree(ngroup); + exec = ntreeTexBeginExecTree(ngroup, 0); return exec; } @@ -70,7 +70,7 @@ static void group_freeexec(bNode *UNUSED(node), void *nodedata) { bNodeTreeExec*gexec= (bNodeTreeExec*)nodedata; - ntreeTexEndExecTree(gexec); + ntreeTexEndExecTree(gexec, 0); } /* Copy inputs to the internal stack. diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index e35b3e53f5b..cf1fae81eb5 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -125,7 +125,7 @@ static void init_render_texture(Render *re, Tex *tex) } if(tex->nodetree && tex->use_nodes) { - ntreeTexBeginExecTree(tex->nodetree); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(tex->nodetree, 1); /* has internal flag to detect it only does it once */ } } @@ -145,7 +145,7 @@ void init_render_textures(Render *re) static void end_render_texture(Tex *tex) { if(tex && tex->use_nodes && tex->nodetree && tex->nodetree->execdata) - ntreeTexEndExecTree(tex->nodetree->execdata); + ntreeTexEndExecTree(tex->nodetree->execdata, 1); } void end_render_textures(Render *re) -- cgit v1.2.3